From 82b97ead4d9ec474679ae9bdd184c0708339e12a Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Thu, 14 Jun 2018 11:26:06 -0500 Subject: [PATCH 001/755] Removed fishing and skulltulla rewards from logic. --- README.md | 5 +++++ Rules.py | 14 +++++++------- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index b46cbc74b..91a811254 100644 --- a/README.md +++ b/README.md @@ -385,3 +385,8 @@ Create a compressed version of the output ROM file. (default: False) ``` Open the graphical user interface. Preloads selections with set command line parameters. + +# Notable Changes on this fork + +-Removed Fishing minigame from logic +-Removed Skulltulla rewards from logic \ No newline at end of file diff --git a/Rules.py b/Rules.py index 6dce69c1a..0eb45983c 100644 --- a/Rules.py +++ b/Rules.py @@ -68,11 +68,11 @@ def global_rules(world): set_rule(world.get_location('Anju as Adult'), lambda state: state.is_adult()) set_rule(world.get_location('Man on Roof'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) set_rule(world.get_location('Impa House Freestanding PoH'), lambda state: (state.has('Progressive Hookshot') and state.is_adult()) or state.has('Bomb Bag')) - set_rule(world.get_location('10 Gold Skulltulla Reward'), lambda state: state.has('Gold Skulltulla Token', 10)) - set_rule(world.get_location('20 Gold Skulltulla Reward'), lambda state: state.has('Gold Skulltulla Token', 20)) - set_rule(world.get_location('30 Gold Skulltulla Reward'), lambda state: state.has('Gold Skulltulla Token', 30) and state.guarantee_hint()) - set_rule(world.get_location('40 Gold Skulltulla Reward'), lambda state: state.has('Gold Skulltulla Token', 40) and state.guarantee_hint()) - set_rule(world.get_location('50 Gold Skulltulla Reward'), lambda state: state.has('Gold Skulltulla Token', 50) and state.guarantee_hint()) + set_rule(world.get_location('10 Gold Skulltulla Reward'), lambda state: False) + set_rule(world.get_location('20 Gold Skulltulla Reward'), lambda state: False) + set_rule(world.get_location('30 Gold Skulltulla Reward'), lambda state: False) + set_rule(world.get_location('40 Gold Skulltulla Reward'), lambda state: False) + set_rule(world.get_location('50 Gold Skulltulla Reward'), lambda state: False) set_rule(world.get_location('Heart Piece Grave Chest'), lambda state: state.has('Suns Song')) set_rule(world.get_entrance('Composer Grave'), lambda state: state.has('Zeldas Lullaby')) set_rule(world.get_location('Composer Grave Chest'), lambda state: state.has_fire_source()) @@ -179,8 +179,8 @@ def global_rules(world): set_rule(world.get_entrance('Temple Warp Pad'), lambda state: state.has('Prelude of Light')) set_rule(world.get_location('Sheik at Temple'), lambda state: state.has('Forest Medallion') and state.is_adult()) set_rule(world.get_location('Diving in the Lab'), lambda state: state.has('Progressive Scale', 2)) - set_rule(world.get_location('Child Fishing'), lambda state: state.has('Kokiri Sword')) - set_rule(world.get_location('Adult Fishing'), lambda state: state.is_adult() and (state.has('Progressive Hookshot') or state.has('Magic Bean'))) + set_rule(world.get_location('Child Fishing'), lambda state: False) + set_rule(world.get_location('Adult Fishing'), lambda state: False) set_rule(world.get_location('Lake Hylia Freestanding PoH'), lambda state: state.is_adult() and (state.has('Progressive Hookshot') or state.has('Magic Bean'))) set_rule(world.get_location('Lake Hylia Sun'), lambda state: state.has('Progressive Hookshot', 2) and state.has('Bow') and state.is_adult()) set_rule(world.get_entrance('Crater Hover Boots'), lambda state: state.is_adult() and state.has('Hover Boots')) From e9a48c1cbed98fee11b435020a554871cd911d20 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Thu, 14 Jun 2018 11:35:51 -0500 Subject: [PATCH 002/755] Removed trade quests from logic. --- README.md | 5 +++-- Rules.py | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 91a811254..4be98b0e4 100644 --- a/README.md +++ b/README.md @@ -388,5 +388,6 @@ Open the graphical user interface. Preloads selections with set command line par # Notable Changes on this fork --Removed Fishing minigame from logic --Removed Skulltulla rewards from logic \ No newline at end of file +- Removed Fishing minigame from logic +- Removed Skulltulla rewards from logic +- Removed Forest Stage and Biggoron rewards from logic (trade quests) \ No newline at end of file diff --git a/Rules.py b/Rules.py index 0eb45983c..b0e1b8065 100644 --- a/Rules.py +++ b/Rules.py @@ -63,8 +63,8 @@ def global_rules(world): set_rule(world.get_location('Skull Kid'), lambda state: state.has('Sarias Song')) set_rule(world.get_location('Ocarina Memory Game'), lambda state: state.has('Fairy Ocarina') or state.has('Ocarina of Time')) set_rule(world.get_location('Target in Woods'), lambda state: state.has('Slingshot')) - set_rule(world.get_location('Deku Theater Skull Mask'), lambda state: state.has('Zeldas Letter')) - set_rule(world.get_location('Deku Theater Mask of Truth'), lambda state: state.has('Zeldas Letter') and state.has('Sarias Song') and state.has('Kokiri Emerald') and state.has('Goron Ruby') and state.has('Zora Sapphire') and state.guarantee_hint()) #Must befriend Skull Kid to sell Skull Mask, all stones to spawn running man. + set_rule(world.get_location('Deku Theater Skull Mask'), lambda state: False) + set_rule(world.get_location('Deku Theater Mask of Truth'), lambda state: False) set_rule(world.get_location('Anju as Adult'), lambda state: state.is_adult()) set_rule(world.get_location('Man on Roof'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) set_rule(world.get_location('Impa House Freestanding PoH'), lambda state: (state.has('Progressive Hookshot') and state.is_adult()) or state.has('Bomb Bag')) @@ -92,7 +92,7 @@ def global_rules(world): set_rule(world.get_location('Bottom of the Well Behind Right Grate'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Lens of Truth') and state.has('Magic Meter')) set_rule(world.get_entrance('Death Mountain Entrance'), lambda state: state.has('Zeldas Letter') or state.is_adult()) set_rule(world.get_location('Death Mountain Bombable Chest'), lambda state: state.can_blast()) - set_rule(world.get_location('Biggoron'), lambda state: state.can_blast() and state.is_adult() and state.can_finish_adult_trades() and state.guarantee_hint()) + set_rule(world.get_location('Biggoron'), lambda state: False) set_rule(world.get_location('Goron City Leftmost Maze Chest'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade', 2) or state.has('Hammer'))) set_rule(world.get_location('Goron City Left Maze Chest'), lambda state: state.can_blast() or (state.has('Progressive Strength Upgrade', 2) and state.is_adult())) set_rule(world.get_location('Goron City Right Maze Chest'), lambda state: state.can_blast() or (state.has('Progressive Strength Upgrade', 2) and state.is_adult())) From baf68ff9bb133cd1b55b0503d2f647c5a5cf37cc Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Thu, 14 Jun 2018 12:52:16 -0400 Subject: [PATCH 003/755] Remove DC slingshot requirements --- Rules.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Rules.py b/Rules.py index 0eb45983c..5cd24083d 100644 --- a/Rules.py +++ b/Rules.py @@ -104,8 +104,8 @@ def global_rules(world): set_rule(world.get_entrance('Dodongos Cavern Rocks'), lambda state: state.can_blast() or state.has('Progressive Strength Upgrade') or state.is_adult()) set_rule(world.get_entrance('Dodongos Cavern Lobby'), lambda state: state.can_blast() or state.has('Progressive Strength Upgrade')) set_rule(world.get_entrance('Dodongos Cavern Left Door'), lambda state: state.has('Bomb Bag') or state.has('Progressive Strength Upgrade') or (state.has('Dins Fire') and state.has('Magic Meter'))) - set_rule(world.get_entrance('Dodongos Cavern Slingshot Target'), lambda state: state.has('Slingshot') or ((state.has('Bow') or state.has('Hover Boots')) and state.is_adult())) - set_rule(world.get_location('Dodongos Cavern End of Bridge Chest'), lambda state: state.has('Bomb Bag') or ((state.has('Bow') or state.has('Hover Boots')) and state.is_adult() and state.has('Hammer'))) + set_rule(world.get_entrance('Dodongos Cavern Slingshot Target'), lambda state: state.has('Slingshot') or state.is_adult()) + set_rule(world.get_location('Dodongos Cavern End of Bridge Chest'), lambda state: state.has('Bomb Bag') or (state.is_adult() and state.has('Hammer'))) set_rule(world.get_entrance('Dodongos Cavern Bomb Drop'), lambda state: state.has('Bomb Bag')) set_rule(world.get_location('Song from Saria'), lambda state: state.has('Zeldas Letter')) set_rule(world.get_entrance('Mountain Summit Fairy'), lambda state: state.can_blast()) From 14cf1d9fb7d56a42f3ba23f0965799f8f4f13b18 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Thu, 14 Jun 2018 12:52:36 -0400 Subject: [PATCH 004/755] Remove Man of Roof reqs --- Rules.py | 1 - 1 file changed, 1 deletion(-) diff --git a/Rules.py b/Rules.py index 5cd24083d..fe218f6fb 100644 --- a/Rules.py +++ b/Rules.py @@ -66,7 +66,6 @@ def global_rules(world): set_rule(world.get_location('Deku Theater Skull Mask'), lambda state: state.has('Zeldas Letter')) set_rule(world.get_location('Deku Theater Mask of Truth'), lambda state: state.has('Zeldas Letter') and state.has('Sarias Song') and state.has('Kokiri Emerald') and state.has('Goron Ruby') and state.has('Zora Sapphire') and state.guarantee_hint()) #Must befriend Skull Kid to sell Skull Mask, all stones to spawn running man. set_rule(world.get_location('Anju as Adult'), lambda state: state.is_adult()) - set_rule(world.get_location('Man on Roof'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) set_rule(world.get_location('Impa House Freestanding PoH'), lambda state: (state.has('Progressive Hookshot') and state.is_adult()) or state.has('Bomb Bag')) set_rule(world.get_location('10 Gold Skulltulla Reward'), lambda state: False) set_rule(world.get_location('20 Gold Skulltulla Reward'), lambda state: False) From 2b58e57fe8e3eef076cd8c5cdd88adc7176c09ea Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Thu, 14 Jun 2018 12:53:06 -0400 Subject: [PATCH 005/755] Remove most Lens of Truth reqs still need for chest game and wasteland --- Rules.py | 31 ++++++++++++------------------- 1 file changed, 12 insertions(+), 19 deletions(-) diff --git a/Rules.py b/Rules.py index fe218f6fb..f2b0d8849 100644 --- a/Rules.py +++ b/Rules.py @@ -76,19 +76,15 @@ def global_rules(world): set_rule(world.get_entrance('Composer Grave'), lambda state: state.has('Zeldas Lullaby')) set_rule(world.get_location('Composer Grave Chest'), lambda state: state.has_fire_source()) set_rule(world.get_entrance('Bottom of the Well'), lambda state: state.has('Song of Storms')) - set_rule(world.get_location('Bottom of the Well Front Left Hidden Wall'), lambda state: state.has('Lens of Truth') and state.has('Magic Meter')) set_rule(world.get_location('Bottom of the Well Front Center Bombable'), lambda state: state.has('Bomb Bag')) - set_rule(world.get_location('Bottom of the Well Right Bottom Hidden Wall'), lambda state: state.has('Lens of Truth') and state.has('Magic Meter')) - set_rule(world.get_location('Bottom of the Well Center Large Chest'), lambda state: state.has('Lens of Truth') and state.has('Magic Meter')) - set_rule(world.get_location('Bottom of the Well Center Small Chest'), lambda state: state.has('Lens of Truth') and state.has('Magic Meter')) set_rule(world.get_location('Bottom of the Well Back Left Bombable'), lambda state: state.has('Bomb Bag')) set_rule(world.get_location('Bottom of the Well Defeat Boss'), lambda state: state.has('Zeldas Lullaby') and state.has('Kokiri Sword')) #Sword not strictly necessary but frankly being forced to do this with sticks isn't fair - set_rule(world.get_location('Bottom of the Well Invisible Chest'), lambda state: state.has('Zeldas Lullaby') and state.has('Lens of Truth') and state.has('Magic Meter')) + set_rule(world.get_location('Bottom of the Well Invisible Chest'), lambda state: state.has('Zeldas Lullaby')) set_rule(world.get_location('Bottom of the Well Underwater Front Chest'), lambda state: state.has('Zeldas Lullaby')) set_rule(world.get_location('Bottom of the Well Underwater Left Chest'), lambda state: state.has('Zeldas Lullaby')) set_rule(world.get_location('Bottom of the Well Basement Chest'), lambda state: state.has('Bomb Bag')) - set_rule(world.get_location('Bottom of the Well Locked Pits'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Lens of Truth') and state.has('Magic Meter')) #These pits are really unfair. - set_rule(world.get_location('Bottom of the Well Behind Right Grate'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Lens of Truth') and state.has('Magic Meter')) + set_rule(world.get_location('Bottom of the Well Locked Pits'), lambda state: state.has('Small Key (Bottom of the Well)', 3)) #These pits are really unfair. + set_rule(world.get_location('Bottom of the Well Behind Right Grate'), lambda state: state.has('Small Key (Bottom of the Well)', 3)) set_rule(world.get_entrance('Death Mountain Entrance'), lambda state: state.has('Zeldas Letter') or state.is_adult()) set_rule(world.get_location('Death Mountain Bombable Chest'), lambda state: state.can_blast()) set_rule(world.get_location('Biggoron'), lambda state: state.can_blast() and state.is_adult() and state.can_finish_adult_trades() and state.guarantee_hint()) @@ -227,7 +223,7 @@ def global_rules(world): set_rule(world.get_location('Water Temple River Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and state.has('Song of Time') and state.has('Bow') and (state.has('Zeldas Lullaby') or world.keysanity)) set_rule(world.get_location('Sheik in Kakariko'), lambda state: state.has('Forest Medallion') and state.has('Fire Medallion') and state.has('Water Medallion')) set_rule(world.get_entrance('Graveyard Warp Pad'), lambda state: state.has('Nocturne of Shadow')) - set_rule(world.get_entrance('Shadow Temple Entrance'), lambda state: state.has('Dins Fire') and state.has('Magic Meter') and state.has('Lens of Truth') and state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot'))) + set_rule(world.get_entrance('Shadow Temple Entrance'), lambda state: state.has('Dins Fire') and state.has('Magic Meter') and state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot'))) set_rule(world.get_entrance('Shadow Temple First Pit'), lambda state: state.has('Hover Boots')) set_rule(world.get_entrance('Shadow Temple Bomb Wall'), lambda state: state.has('Bomb Bag') and state.has('Small Key (Shadow Temple)', 1)) set_rule(world.get_entrance('Shadow Temple Hookshot Target'), lambda state: state.has('Progressive Hookshot') and state.has('Small Key (Shadow Temple)', 3)) @@ -258,11 +254,11 @@ def global_rules(world): set_rule(world.get_entrance('Gerudo Training Grounds Maze Ledge'), lambda state: state.has('Song of Time')) set_rule(world.get_entrance('Gerudo Training Grounds Right Hookshot Target'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) set_rule(world.get_entrance('Gerudo Training Grounds Hammer Target'), lambda state: state.has('Hammer') and state.has('Bow') and state.is_adult()) - set_rule(world.get_entrance('Gerudo Training Grounds Hidden Hookshot Target'), lambda state: state.has('Progressive Hookshot') and state.has('Lens of Truth') and state.has('Magic Meter') and state.is_adult()) + set_rule(world.get_entrance('Gerudo Training Grounds Hidden Hookshot Target'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) set_rule(world.get_location('Gerudo Training Grounds Lobby Left Chest'), lambda state: state.has('Bow') and state.is_adult()) set_rule(world.get_location('Gerudo Training Grounds Lobby Right Chest'), lambda state: state.has('Bow') and state.is_adult()) set_rule(world.get_location('Gerudo Training Grounds Beamos Chest'), lambda state: state.has('Bomb Bag')) - set_rule(world.get_location('Gerudo Training Grounds Hidden Ceiling Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 3) and state.has('Lens of Truth') and state.has('Magic Meter')) + set_rule(world.get_location('Gerudo Training Grounds Hidden Ceiling Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 3) ) set_rule(world.get_location('Gerudo Training Grounds Maze Path First Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 4)) set_rule(world.get_location('Gerudo Training Grounds Maze Path Second Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 6)) set_rule(world.get_location('Gerudo Training Grounds Maze Path Third Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 7)) @@ -272,10 +268,10 @@ def global_rules(world): set_rule(world.get_location('Gerudo Training Grounds Hammer Room Switch Chest'), lambda state: state.has('Hammer') and state.is_adult()) set_rule(world.get_location('Gerudo Training Grounds Eye Statue Chest'), lambda state: state.has('Bow') and state.is_adult()) set_rule(world.get_location('Gerudo Training Grounds Near Scarecrow Chest'), lambda state: state.has('Bow') and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Heavy Block First Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.has('Lens of Truth') and state.has('Magic Meter') and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Heavy Block Second Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.has('Lens of Truth') and state.has('Magic Meter') and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Heavy Block Third Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.has('Lens of Truth') and state.has('Magic Meter') and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Heavy Block Fourth Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.has('Lens of Truth') and state.has('Magic Meter') and state.is_adult()) + set_rule(world.get_location('Gerudo Training Grounds Heavy Block First Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.is_adult()) + set_rule(world.get_location('Gerudo Training Grounds Heavy Block Second Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.is_adult()) + set_rule(world.get_location('Gerudo Training Grounds Heavy Block Third Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.is_adult()) + set_rule(world.get_location('Gerudo Training Grounds Heavy Block Fourth Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.is_adult()) set_rule(world.get_entrance('Spirit Temple Crawl Passage'), lambda state: state.has('Requiem of Spirit')) set_rule(world.get_entrance('Spirit Temple Silver Block'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.is_adult()) set_rule(world.get_entrance('Child Spirit Temple Passthrough'), lambda state: state.has('Bomb Bag') and state.has('Small Key (Spirit Temple)', 1)) @@ -297,8 +293,6 @@ def global_rules(world): set_rule(world.get_location('Mirror Shield Chest'), lambda state: state.has('Small Key (Spirit Temple)', 4) and state.has('Progressive Strength Upgrade', 2) and state.is_adult()) set_rule(world.get_location('Silver Gauntlets Chest'), lambda state: (state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Hookshot', 2)) or state.has('Small Key (Spirit Temple)', 5)) set_rule(world.get_location('Spirit Temple Near Four Armos Chest'), lambda state: state.has('Mirror Shield')) - set_rule(world.get_location('Spirit Temple Hallway Left Invisible Chest'), lambda state: state.has('Magic Meter') and state.has('Lens of Truth')) - set_rule(world.get_location('Spirit Temple Hallway Right Invisible Chest'), lambda state: state.has('Magic Meter') and state.has('Lens of Truth')) set_rule(world.get_location('Spirit Temple Boss Key Chest'), lambda state: state.has('Zeldas Lullaby') and state.has('Bow') and state.has('Progressive Hookshot') and state.can_blast()) set_rule(world.get_location('Spirit Temple Topmost Chest'), lambda state: state.has('Mirror Shield')) set_rule(world.get_location('Twinrova'), lambda state: state.has('Mirror Shield') and state.has('Bomb Bag') and state.has('Progressive Hookshot') and state.has('Boss Key (Spirit Temple)')) @@ -314,9 +308,8 @@ def global_rules(world): set_rule(world.get_location('Ganons Castle Shadow Trial Second Chest'), lambda state: (state.has('Magic Meter') and state.has('Bow') and state.has('Fire Arrows')) or (state.has('Progressive Hookshot', 2) and state.has('Hover Boots'))) set_rule(world.get_location('Ganons Castle Spirit Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and state.has('Mirror Shield') and state.has('Bomb Bag') and state.has('Progressive Hookshot')) set_rule(world.get_location('Ganons Castle Spirit Trial First Chest'), lambda state: state.has('Progressive Hookshot') and (state.has('Magic Meter') or state.has('Bomb Bag'))) - set_rule(world.get_location('Ganons Castle Spirit Trial Second Chest'), lambda state: state.has('Progressive Hookshot') and state.has('Magic Meter') and state.has('Bomb Bag') and state.has('Lens of Truth')) + set_rule(world.get_location('Ganons Castle Spirit Trial Second Chest'), lambda state: state.has('Progressive Hookshot') and state.has('Bomb Bag')) set_rule(world.get_location('Ganons Castle Light Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Progressive Hookshot') and state.has('Light Arrows') and state.has('Small Key (Ganons Castle)', 2)) - set_rule(world.get_location('Ganons Castle Light Trail Invisible Enemies Chest'), lambda state: state.has('Magic Meter') and state.has('Lens of Truth')) set_rule(world.get_location('Ganons Castle Light Trial Lullaby Chest'), lambda state: state.has('Zeldas Lullaby') and state.has('Small Key (Ganons Castle)', 1)) set_rule(world.get_location('Ganon'), lambda state: state.has('Boss Key (Ganons Castle)')) set_rule(world.get_entrance('Kokiri Forest Storms Grotto'), lambda state: state.has('Song of Storms')) @@ -393,7 +386,7 @@ def global_rules(world): set_rule(world.get_location('GS75'), lambda state: state.has('Progressive Hookshot', 2)) set_rule(world.get_location('GS76'), lambda state: state.has('Progressive Hookshot', 2)) set_rule(world.get_location('GS77'), lambda state: state.has('Progressive Hookshot', 2) and ((state.has('Bomb Bag') and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and state.has('Small Key (Water Temple)', 6)) #5 keys would be better but it wouldn't be compatible with the key for key scenarios, 6 will be identical pre-keysanity. - set_rule(world.get_location('GS78'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang') and (state.has('Progressive Strength Upgrade') or state.has('Bomb Bag') or (state.has('Lens of Truth') and state.has('Magic Meter')))) + set_rule(world.get_location('GS78'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang')) set_rule(world.get_location('GS79'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang')) set_rule(world.get_location('GS80'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang')) set_rule(world.get_location('GS81'), lambda state: state.has('Progressive Hookshot')) From 8fd7112fe638f0726f89f9ecfa8513541d4020f3 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Thu, 14 Jun 2018 12:00:09 -0500 Subject: [PATCH 006/755] Child deadhand can be killed without a sword. Zora tunic required for fountain HP and training grounds water room. --- README.md | 4 +++- Rules.py | 6 +++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 4be98b0e4..d173642bf 100644 --- a/README.md +++ b/README.md @@ -390,4 +390,6 @@ Open the graphical user interface. Preloads selections with set command line par - Removed Fishing minigame from logic - Removed Skulltulla rewards from logic -- Removed Forest Stage and Biggoron rewards from logic (trade quests) \ No newline at end of file +- Removed Forest Stage and Biggoron rewards from logic (trade quests) +- Child Dead Hand fight no longer requires a sword +- Underwater room in Training Grounds and underwater Zora Fountain now require Zora Tunic \ No newline at end of file diff --git a/Rules.py b/Rules.py index b0e1b8065..84948f096 100644 --- a/Rules.py +++ b/Rules.py @@ -83,7 +83,7 @@ def global_rules(world): set_rule(world.get_location('Bottom of the Well Center Large Chest'), lambda state: state.has('Lens of Truth') and state.has('Magic Meter')) set_rule(world.get_location('Bottom of the Well Center Small Chest'), lambda state: state.has('Lens of Truth') and state.has('Magic Meter')) set_rule(world.get_location('Bottom of the Well Back Left Bombable'), lambda state: state.has('Bomb Bag')) - set_rule(world.get_location('Bottom of the Well Defeat Boss'), lambda state: state.has('Zeldas Lullaby') and state.has('Kokiri Sword')) #Sword not strictly necessary but frankly being forced to do this with sticks isn't fair + set_rule(world.get_location('Bottom of the Well Defeat Boss'), lambda state: state.has('Zeldas Lullaby')) #Sword not strictly necessary but frankly being forced to do this with sticks isn't fair set_rule(world.get_location('Bottom of the Well Invisible Chest'), lambda state: state.has('Zeldas Lullaby') and state.has('Lens of Truth') and state.has('Magic Meter')) set_rule(world.get_location('Bottom of the Well Underwater Front Chest'), lambda state: state.has('Zeldas Lullaby')) set_rule(world.get_location('Bottom of the Well Underwater Left Chest'), lambda state: state.has('Zeldas Lullaby')) @@ -212,7 +212,7 @@ def global_rules(world): set_rule(world.get_entrance('Crater Access'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade') or state.has('Bomb Bag'))) set_rule(world.get_entrance('Lake Warp Pad'), lambda state: state.has('Serenade of Water')) set_rule(world.get_location('King Zora Thawed'), lambda state: state.has_bottle() and (state.can_reach('Ice Cavern') or state.can_reach('Ganons Castle Water Trial') or state.has('Progressive Wallet', 2))) - set_rule(world.get_location('Zoras Fountain Bottom Freestanding PoH'), lambda state: state.has('Iron Boots')) + set_rule(world.get_location('Zoras Fountain Bottom Freestanding PoH'), lambda state: state.has('Iron Boots') and state.has('Zora Tunic')) set_rule(world.get_entrance('Water Temple Entrance'), lambda state: state.is_adult() and (state.has('Zora Tunic') or (state.has('Progressive Wallet', 2) and state.has_bottle() and state.has('Zeldas Lullaby'))) and state.has('Iron Boots') and state.has('Progressive Hookshot')) set_rule(world.get_entrance('Water Temple Central Pillar'), lambda state: (state.has('Bow') or (state.has('Dins Fire') and state.has('Magic Meter')) or state.has('Small Key (Water Temple)', 5)) and state.has('Zeldas Lullaby')) set_rule(world.get_entrance('Water Temple Upper Locked Door'), lambda state: state.has('Small Key (Water Temple)', 5) and (state.has('Zeldas Lullaby') or world.keysanity)) @@ -269,7 +269,7 @@ def global_rules(world): set_rule(world.get_location('Gerudo Training Grounds Maze Path Third Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 7)) set_always_allow(world.get_location('Gerudo Training Grounds Maze Path Final Chest'), lambda state, item: item.name == 'Small Key (Gerudo Training Grounds)') set_rule(world.get_location('Gerudo Training Grounds Maze Path Final Chest'), lambda state: (state.has('Small Key (Gerudo Training Grounds)', 9)) or (item_name(state, 'Gerudo Training Grounds Maze Path Final Chest') == 'Small Key (Gerudo Training Grounds)' and state.has('Small Key (Gerudo Training Grounds)', 8))) #Allow key for key - set_rule(world.get_location('Gerudo Training Grounds Underwater Silver Rupee Chest'), lambda state: state.has('Progressive Hookshot') and state.has('Song of Time') and state.has('Iron Boots') and state.is_adult()) + set_rule(world.get_location('Gerudo Training Grounds Underwater Silver Rupee Chest'), lambda state: state.has('Progressive Hookshot') and state.has('Song of Time') and state.has('Iron Boots') and state.has('Zora Tunic') and state.is_adult()) set_rule(world.get_location('Gerudo Training Grounds Hammer Room Switch Chest'), lambda state: state.has('Hammer') and state.is_adult()) set_rule(world.get_location('Gerudo Training Grounds Eye Statue Chest'), lambda state: state.has('Bow') and state.is_adult()) set_rule(world.get_location('Gerudo Training Grounds Near Scarecrow Chest'), lambda state: state.has('Bow') and state.is_adult()) From e25bf2fa7ce226833122f17fd8dc600205e0ef59 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Thu, 14 Jun 2018 13:03:32 -0400 Subject: [PATCH 007/755] update readme --- README.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 91a811254..1c45e26d3 100644 --- a/README.md +++ b/README.md @@ -388,5 +388,8 @@ Open the graphical user interface. Preloads selections with set command line par # Notable Changes on this fork --Removed Fishing minigame from logic --Removed Skulltulla rewards from logic \ No newline at end of file +- Removed Fishing minigame from logic +- Removed Skulltulla rewards from logic +- Removed Man of Roof requirements +- Removed most Lens of Truth requirements +- Added the DC jump to skip the slighshot room to logic \ No newline at end of file From 131cec701ffae01c1229fab4cfdf4009ef0a9e83 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Thu, 14 Jun 2018 16:27:18 -0500 Subject: [PATCH 008/755] 10 Big Poes are now out of logic. Added special tunic color option for only. --- Gui.py | 6 +++--- README.md | 1 + Rom.py | 4 +++- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/Gui.py b/Gui.py index 705fcaef6..f9acb2d7f 100644 --- a/Gui.py +++ b/Gui.py @@ -117,19 +117,19 @@ def RomSelect(): colorVars[2].set('Zora Blue') kokiriFrame = Frame(dropDownFrame) - kokiriOptionMenu = OptionMenu(kokiriFrame, colorVars[0], 'Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Purple', 'Yellow', 'Orange', 'Pink', 'Gray', 'Brown', 'Gold', 'Silver', 'Beige', 'Teal', 'Royal Blue', 'Sonic Blue', 'Blood Red', 'Blood Orange', 'NES Green', 'Dark Green', 'Random', 'True Random') + kokiriOptionMenu = OptionMenu(kokiriFrame, colorVars[0], 'Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Purple', 'Yellow', 'Orange', 'Pink', 'Gray', 'Brown', 'Gold', 'Silver', 'Beige', 'Teal', 'Royal Blue', 'Sonic Blue', 'Blood Red', 'Blood Orange', 'NES Green', 'Dark Green', 'Only', 'Random', 'True Random') kokiriOptionMenu.pack(side=RIGHT) kokiriLabel = Label(kokiriFrame, text='Kokiri Tunic Color') kokiriLabel.pack(side=LEFT) goronFrame = Frame(dropDownFrame) - goronOptionMenu = OptionMenu(goronFrame, colorVars[1], 'Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Purple', 'Yellow', 'Orange', 'Pink', 'Gray', 'Brown', 'Gold', 'Silver', 'Beige', 'Teal', 'Royal Blue', 'Sonic Blue', 'Blood Red', 'Blood Orange', 'NES Green', 'Dark Green', 'Random', 'True Random') + goronOptionMenu = OptionMenu(goronFrame, colorVars[1], 'Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Purple', 'Yellow', 'Orange', 'Pink', 'Gray', 'Brown', 'Gold', 'Silver', 'Beige', 'Teal', 'Royal Blue', 'Sonic Blue', 'Blood Red', 'Blood Orange', 'NES Green', 'Dark Green', 'Only', 'Random', 'True Random') goronOptionMenu.pack(side=RIGHT) goronLabel = Label(goronFrame, text='Goron Tunic Color') goronLabel.pack(side=LEFT) zoraFrame = Frame(dropDownFrame) - zoraOptionMenu = OptionMenu(zoraFrame, colorVars[2], 'Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Purple', 'Yellow', 'Orange', 'Pink', 'Gray', 'Brown', 'Gold', 'Silver', 'Beige', 'Teal', 'Royal Blue', 'Sonic Blue', 'Blood Red', 'Blood Orange', 'NES Green', 'Dark Green', 'Random', 'True Random') + zoraOptionMenu = OptionMenu(zoraFrame, colorVars[2], 'Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Purple', 'Yellow', 'Orange', 'Pink', 'Gray', 'Brown', 'Gold', 'Silver', 'Beige', 'Teal', 'Royal Blue', 'Sonic Blue', 'Blood Red', 'Blood Orange', 'NES Green', 'Dark Green', 'Only', 'Random', 'True Random') zoraOptionMenu.pack(side=RIGHT) zoraLabel = Label(zoraFrame, text='Zora Tunic Color') zoraLabel.pack(side=LEFT) diff --git a/README.md b/README.md index 4c20675d7..988039559 100644 --- a/README.md +++ b/README.md @@ -390,6 +390,7 @@ Open the graphical user interface. Preloads selections with set command line par - Removed Fishing minigame from logic - Removed Skulltulla rewards from logic +- Removed 10 Big Poes reward from logic - Removed Forest Stage and Biggoron rewards from logic (trade quests) - Removed Man of Roof requirements - Added the DC jump to skip the slighshot room to logic diff --git a/Rom.py b/Rom.py index ef1716ec2..6fb625be8 100644 --- a/Rom.py +++ b/Rom.py @@ -1002,7 +1002,7 @@ def patch_rom(world, rom): Tunics.append(0x00B6DA38) # Kokiri Tunic Tunics.append(0x00B6DA3B) # Goron Tunic Tunics.append(0x00B6DA3E) # Zora Tunic - colorList = ['Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Purple', 'Yellow', 'Orange', 'Pink', 'Gray', 'Brown', 'Gold', 'Silver', 'Beige', 'Teal', 'Royal Blue', 'Sonic Blue', 'Blood Red', 'Blood Orange', 'NES Green', 'Dark Green'] + colorList = ['Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Purple', 'Yellow', 'Orange', 'Pink', 'Gray', 'Brown', 'Gold', 'Silver', 'Beige', 'Teal', 'Royal Blue', 'Sonic Blue', 'Blood Red', 'Blood Orange', 'NES Green', 'Dark Green', 'Only'] randomColors = random.choices(colorList, k=3) for i in range(len(Tunics)): @@ -1055,6 +1055,8 @@ def patch_rom(world, rom): color = [0x00, 0x25, 0x18] elif thisColor == 'True Random': color = randColor + elif thisColor == 'Only': + color = [50, 190, 200] rom.write_bytes(Tunics[i], color) #Low health beep From 9cb68582ef99e38e9f147d8ec4de2e10fabafc37 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Thu, 14 Jun 2018 19:57:43 -0500 Subject: [PATCH 009/755] Actually added 10 poes change. --- Rules.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Rules.py b/Rules.py index e2090de12..dd376a5a4 100644 --- a/Rules.py +++ b/Rules.py @@ -115,7 +115,7 @@ def global_rules(world): set_rule(world.get_location('Bombchu Bowling Bomb Bag'), lambda state: state.has('Bomb Bag')) set_rule(world.get_location('Bombchu Bowling Piece of Heart'), lambda state: state.has('Bomb Bag')) set_rule(world.get_location('Adult Shooting Gallery'), lambda state: state.has('Bow') and state.is_adult()) - set_rule(world.get_location('10 Big Poes'), lambda state: state.has('Bow') and state.has('Epona') and state.has_bottle() and state.is_adult() and state.guarantee_hint()) + set_rule(world.get_location('10 Big Poes'), lambda state: False) set_rule(world.get_location('Treasure Chest Game'), lambda state: state.has('Lens of Truth') and state.has('Magic Meter')) set_rule(world.get_entrance('Lost Woods Dive Warp'), lambda state: state.can_dive() and (world.open_forest or (state.has('Slingshot') and state.has('Kokiri Sword')))) set_rule(world.get_entrance('Zora River Dive Warp'), lambda state: state.can_dive()) From 9a0569df4b5237a2a7d608d2612a00b63f72b2c8 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Thu, 14 Jun 2018 23:48:13 -0400 Subject: [PATCH 010/755] Gossip stone do not require stone of agony --- Rom.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Rom.py b/Rom.py index 6fb625be8..c885af3cc 100644 --- a/Rom.py +++ b/Rom.py @@ -858,8 +858,7 @@ def patch_rom(world, rom): rom.write_bytes(0x3480820, Block_code) # Gossip stones resond to stone of agony - Block_code = [0x3C, 0x01, 0x80, 0x12, 0x80, 0x21, 0xA6, 0x75, 0x30, 0x21, 0x00, 0x20, - 0x03, 0xE0, 0x00, 0x08] + Block_code = [0x24, 0x01, 0x00, 0x20, 0x03, 0xE0, 0x00, 0x08] rom.write_bytes(0x3480840, Block_code) # Set up Rainbow Bridge conditions From d90a5f5543fcacdfb37a85e1ef7c28f79fba58b9 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Fri, 15 Jun 2018 04:20:18 -0400 Subject: [PATCH 011/755] cleaned up item event list --- ItemList.py | 52 +++++++++++++++++++++------------------------------- 1 file changed, 21 insertions(+), 31 deletions(-) diff --git a/ItemList.py b/ItemList.py index f75ccb1c7..df8aaf5dd 100644 --- a/ItemList.py +++ b/ItemList.py @@ -23,44 +23,34 @@ ['GS81', 'GS82', 'GS83', 'GS84', 'GS85', 'GS86', 'GS87', 'GS88', 'GS89', 'GS90', 'GS91', 'GS92', 'GS93', 'GS94', 'GS95', 'GS96', 'GS97', 'GS98', 'GS99', 'GS100']) tradeitems = ['Pocket Egg', 'Pocket Cucco', 'Cojiro', 'Odd Mushroom', 'Poachers Saw', 'Broken Sword', 'Prescription', 'Eyeball Frog', 'Eyedrops', 'Claim Check'] +eventlocations = { + 'Ganon': 'Triforce', + 'Gift from Saria': 'Fairy Ocarina', + 'Zeldas Letter': 'Zeldas Letter', + 'Magic Bean Salesman': 'Magic Bean', + 'King Zora Moves': 'Bottle', + 'Ocarina of Time': 'Ocarina of Time', + 'Master Sword Pedestal': 'Master Sword', + 'Epona': 'Epona', + 'Gerudo Fortress Carpenter Rescue': 'Gerudo Membership Card', + 'Ganons Castle Forest Trial Clear': 'Forest Trial Clear', + 'Ganons Castle Fire Trial Clear': 'Fire Trial Clear', + 'Ganons Castle Water Trial Clear': 'Water Trial Clear', + 'Ganons Castle Shadow Trial Clear': 'Shadow Trial Clear', + 'Ganons Castle Spirit Trial Clear': 'Spirit Trial Clear', + 'Ganons Castle Light Trial Clear': 'Light Trial Clear' +} + #total_items_to_place = 5 def generate_itempool(world): - for location in skulltulla_locations: world.push_item(location, ItemFactory('Gold Skulltulla Token'), False) world.get_location(location).event = True - world.push_item('Ganon', ItemFactory('Triforce'), False) - world.get_location('Ganon').event = True - world.push_item('Gift from Saria', ItemFactory('Fairy Ocarina'), False) - world.get_location('Gift from Saria').event = True - world.push_item('Zeldas Letter', ItemFactory('Zeldas Letter'), False) - world.get_location('Zeldas Letter').event = True - world.push_item('Magic Bean Salesman', ItemFactory('Magic Bean'), False) - world.get_location('Magic Bean Salesman').event = True - world.push_item('King Zora Moves', ItemFactory('Bottle'), False) - world.get_location('King Zora Moves').event = True - world.push_item('Ocarina of Time', ItemFactory('Ocarina of Time'), False) - world.get_location('Ocarina of Time').event = True - world.push_item('Master Sword Pedestal', ItemFactory('Master Sword'), False) - world.get_location('Master Sword Pedestal').event = True - world.push_item('Epona', ItemFactory('Epona'), False) - world.get_location('Epona').event = True - world.push_item('Gerudo Fortress Carpenter Rescue', ItemFactory('Gerudo Membership Card'), False) - world.get_location('Gerudo Fortress Carpenter Rescue').event = True - world.push_item('Ganons Castle Forest Trial Clear', ItemFactory('Forest Trial Clear'), False) - world.get_location('Ganons Castle Forest Trial Clear').event = True - world.push_item('Ganons Castle Fire Trial Clear', ItemFactory('Fire Trial Clear'), False) - world.get_location('Ganons Castle Fire Trial Clear').event = True - world.push_item('Ganons Castle Water Trial Clear', ItemFactory('Water Trial Clear'), False) - world.get_location('Ganons Castle Water Trial Clear').event = True - world.push_item('Ganons Castle Shadow Trial Clear', ItemFactory('Shadow Trial Clear'), False) - world.get_location('Ganons Castle Shadow Trial Clear').event = True - world.push_item('Ganons Castle Spirit Trial Clear', ItemFactory('Spirit Trial Clear'), False) - world.get_location('Ganons Castle Spirit Trial Clear').event = True - world.push_item('Ganons Castle Light Trial Clear', ItemFactory('Light Trial Clear'), False) - world.get_location('Ganons Castle Light Trial Clear').event = True + for location, item in eventlocations.items(): + world.push_item(location, ItemFactory(item), False) + world.get_location(location).event = True # set up item pool (pool, placed_items) = get_pool_core(world.place_dungeon_items) From d2b08370bffa4e923d553addb7629b474231d83b Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Fri, 15 Jun 2018 04:24:02 -0400 Subject: [PATCH 012/755] Added gooditems and requiredganonitems list --- Hints.py | 113 +++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 102 insertions(+), 11 deletions(-) diff --git a/Hints.py b/Hints.py index 815c39c59..42dd6f204 100644 --- a/Hints.py +++ b/Hints.py @@ -1,13 +1,104 @@ -import io -import hashlib -import logging -import os -import struct -import random - -from HintList import getHint, getHintGroup, Hint -from Utils import local_path - +import io +import hashlib +import logging +import os +import struct +import random + +from HintList import getHint, getHintGroup, Hint +from Utils import local_path +from Items import ItemFactory +from ItemList import eventlocations + +requiredganonitems = [ + 'Bottle', + 'Bottle with Milk', + 'Bottle with Red Potion', + 'Bottle with Green Potion', + 'Bottle with Blue Potion', + 'Bottle with Fairy', + 'Bottle with Fish', + 'Bottle with Blue Fire', + 'Bottle with Bugs', + 'Bottle with Poe', + 'Hammer', + 'Goron Tunic', + 'Progressive Strength Upgrade', + 'Bomb Bag', + 'Progressive Hookshot', + 'Mirror Shield', + 'Magic Meter', + 'Bow', + 'Light Arrows', +] + +gooditems = [ + 'Bow', + 'Progressive Hookshot', + 'Hammer', + 'Slingshot', + 'Boomerang', + 'Bomb Bag', + 'Lens of Truth', + 'Dins Fire', + 'Farores Wind', + 'Nayrus Love', + 'Fire Arrows', + 'Ice Arrows', + 'Light Arrows', + 'Bottle', + 'Bottle with Letter', + 'Bottle with Milk', + 'Bottle with Red Potion', + 'Bottle with Green Potion', + 'Bottle with Blue Potion', + 'Bottle with Fairy', + 'Bottle with Fish', + 'Bottle with Blue Fire', + 'Bottle with Bugs', + 'Bottle with Poe', + 'Pocket Egg', + 'Pocket Cucco', + 'Cojiro', + 'Odd Mushroom', + 'Odd Potion', + 'Poachers Saw', + 'Broken Sword', + 'Prescription', + 'Eyeball Frog', + 'Eyedrops', + 'Claim Check', + 'Kokiri Sword', + 'Biggoron Sword', + 'Deku Shield', + 'Hylian Shield', + 'Mirror Shield', + 'Goron Tunic', + 'Zora Tunic', + 'Iron Boots', + 'Hover Boots', + 'Progressive Strength Upgrade', + 'Progressive Scale', + 'Progressive Wallet', + 'Deku Stick Capacity', + 'Deku Nut Capacity', + 'Magic Meter', + 'Double Defense', + 'Stone of Agony', + 'Zeldas Lullaby', + 'Eponas Song', + 'Suns Song', + 'Sarias Song', + 'Song of Time', + 'Song of Storms', + 'Minuet of Forest', + 'Prelude of Light', + 'Bolero of Fire', + 'Serenade of Water', + 'Nocturne of Shadow', + 'Requiem of Spirit', +] + #builds out general hints based on location and whether an item is required or not def buildGossipHints(world, rom): stoneAddresses = [0x938e4c, 0x938EA8, 0x938F04, 0x938F60, 0x938FBC, 0x939018, 0x939074, 0x9390D0, 0x93912C, 0x939188, @@ -173,4 +264,4 @@ def getBytes(string): byte = int('0x' + char, 16) byteCode.extend([byte]) return byteCode - + From 68ae05d646ac710eb5bb8e8054f7f8ef721aac15 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Fri, 15 Jun 2018 04:25:16 -0400 Subject: [PATCH 013/755] added buildHintString function --- Hints.py | 39 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/Hints.py b/Hints.py index 42dd6f204..69fcf736e 100644 --- a/Hints.py +++ b/Hints.py @@ -96,9 +96,42 @@ 'Bolero of Fire', 'Serenade of Water', 'Nocturne of Shadow', - 'Requiem of Spirit', -] - + 'Requiem of Spirit', +] + + +# build a formatted string with linebreaks appropriate textboxes +def buildHintString(hintString): + formatString = "" + splitHintString = hintString.split() + lineLength = 0 + + if len(hintString) < 77: + hintString = "They say that " + hintString + elif len(hintString) < 82: + hintString = "They say " + hintString + elif len(hintString) > 91: + print('Too many characters in hint') + hintString = hintString[:91] + + for word in splitHintString: + # let's assume words are not 35 or more char long + if lineLength + len(word) + 1 <= 35: + # add a space if line is not empty + if lineLength != 0: + lineLength = lineLength + 1 + formatString = formatString + ' ' + + # append word + formatString = formatString + word + lineLength = lineLength + len(word) + else: + # word won'd fit, add to a new line + formatString = formatString + '&' + word + lineLength = len(word) + + return formatString + #builds out general hints based on location and whether an item is required or not def buildGossipHints(world, rom): stoneAddresses = [0x938e4c, 0x938EA8, 0x938F04, 0x938F60, 0x938FBC, 0x939018, 0x939074, 0x9390D0, 0x93912C, 0x939188, From ae4269939a9de39dc06d2b6951e327c3a5c979f0 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Fri, 15 Jun 2018 04:26:26 -0400 Subject: [PATCH 014/755] added utility functions for dungeon items --- Hints.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Hints.py b/Hints.py index 69fcf736e..9bacf3fdf 100644 --- a/Hints.py +++ b/Hints.py @@ -132,6 +132,17 @@ def buildHintString(hintString): return formatString + +def getItemGenericName(item): + if item.type == 'Map' or item.type == 'Compass' or item.type == 'BossKey' or item.type == 'SmallKey': + return item.type + else: + return item.name + +def isDungeonItem(item): + return item.type == 'Map' or item.type == 'Compass' or item.type == 'BossKey' or item.type == 'SmallKey' + + #builds out general hints based on location and whether an item is required or not def buildGossipHints(world, rom): stoneAddresses = [0x938e4c, 0x938EA8, 0x938F04, 0x938F60, 0x938FBC, 0x939018, 0x939074, 0x9390D0, 0x93912C, 0x939188, From 872d4d6d84f191e62de020e05121a8515f13f924 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Fri, 15 Jun 2018 04:27:52 -0400 Subject: [PATCH 015/755] select from required non-ganon's castle items --- Hints.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Hints.py b/Hints.py index 9bacf3fdf..7a2ac7a21 100644 --- a/Hints.py +++ b/Hints.py @@ -151,7 +151,17 @@ def buildGossipHints(world, rom): 0x939914, 0x939970] #address for gossip stone text boxes, byte limit is 92 - alwaysLocations = getHintGroup('alwaysLocation')#These location will always have a hint somewhere in the world. + # get list of required items that are not events or needed for Ganon's Castle + requiredItems = [(location, item) for _,sphere in world.spoiler.playthrough.items() for location,item in sphere.items() + if ItemFactory(item).type != 'Event' and not location in eventlocations and not item in requiredganonitems] + + # add required non-ganon items for hints (good hints) + for location,item in random.sample(requiredItems, random.randint(2,4)): + if random.choice([True, False]): + print(item) + else: + print(location) + sometimesSpace = (int((len(stoneAddresses) - len(alwaysLocations)*2)/2)) sometimesLocations = getHintGroup('location')#A random selection of these locations will be in the hint pool. From d8ce97e59da0eb2756b8bbfd344533d76593a5f8 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Fri, 15 Jun 2018 04:28:29 -0400 Subject: [PATCH 016/755] select all required hints --- Hints.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Hints.py b/Hints.py index 7a2ac7a21..c18b6977c 100644 --- a/Hints.py +++ b/Hints.py @@ -162,6 +162,17 @@ def buildGossipHints(world, rom): else: print(location) + # Don't repeat hints + checkedLocations = [] + + # Add required location hints + alwaysLocations = getHintGroup('alwaysLocation') + for hint in alwaysLocations: + for locationWorld in world.get_locations(): + if hint.name == locationWorld.name: + checkedLocations.append(hint.name) + print(locationWorld.name, ',', locationWorld.item.name) + sometimesSpace = (int((len(stoneAddresses) - len(alwaysLocations)*2)/2)) sometimesLocations = getHintGroup('location')#A random selection of these locations will be in the hint pool. From 6be56ec061e2bf03478cf2027875d8a9fb92fcdb Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Fri, 15 Jun 2018 04:29:23 -0400 Subject: [PATCH 017/755] select from good hint locations --- Hints.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Hints.py b/Hints.py index c18b6977c..2c6d9842d 100644 --- a/Hints.py +++ b/Hints.py @@ -173,6 +173,19 @@ def buildGossipHints(world, rom): checkedLocations.append(hint.name) print(locationWorld.name, ',', locationWorld.item.name) + # Add good location hints + sometimesLocations = getHintGroup('location') + for _ in range(0, random.randint(9,11) - len(alwaysLocations)): + hint = random.choice(sometimesLocations) + # Repick if location isn't new + while hint.name in checkedLocations or hint.name in alwaysLocations: + hint = random.choice(sometimesLocations) + + for locationWorld in world.get_locations(): + if hint.name == locationWorld.name: + checkedLocations.append(locationWorld.name) + print(locationWorld.name, ',', locationWorld.item.name) + sometimesSpace = (int((len(stoneAddresses) - len(alwaysLocations)*2)/2)) sometimesLocations = getHintGroup('location')#A random selection of these locations will be in the hint pool. From 79037209b5ef32c4ec0b7c933a5459ecf95060df Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Fri, 15 Jun 2018 04:29:55 -0400 Subject: [PATCH 018/755] select from dungeon locations --- Hints.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Hints.py b/Hints.py index 2c6d9842d..cb69fbb9f 100644 --- a/Hints.py +++ b/Hints.py @@ -186,6 +186,19 @@ def buildGossipHints(world, rom): checkedLocations.append(locationWorld.name) print(locationWorld.name, ',', locationWorld.item.name) + # add bad dungeon locations hints + for dungeon in random.sample(world.dungeons, random.randint(3,5)): + # Choose a randome dungeon location that is a non-dungeon item + locationWorld = random.choice([location for region in dungeon.regions for location in world.get_region(region).locations + if location.item.type != 'Event' and \ + not location.name in eventlocations and \ + not isDungeonItem(location.item) and \ + location.item.name != 'Gold Skulltulla Token' and\ + location.item.type != 'Song']) + + checkedLocations.append(locationWorld.name) + print(dungeon.name, ",", locationWorld.item.name) + sometimesSpace = (int((len(stoneAddresses) - len(alwaysLocations)*2)/2)) sometimesLocations = getHintGroup('location')#A random selection of these locations will be in the hint pool. From a86c438abfcd162bbb7b56bb52becbfd50fa097b Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Fri, 15 Jun 2018 04:30:13 -0400 Subject: [PATCH 019/755] select from overworld locations --- Hints.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/Hints.py b/Hints.py index cb69fbb9f..385f7c423 100644 --- a/Hints.py +++ b/Hints.py @@ -199,6 +199,21 @@ def buildGossipHints(world, rom): checkedLocations.append(locationWorld.name) print(dungeon.name, ",", locationWorld.item.name) + # add bad overworld locations hints + # only choose location if it is new and a proper item from the overworld + overworldlocations = [locationWorld for locationWorld in world.get_locations() + if not locationWorld.name in checkedLocations and \ + not locationWorld.name in alwaysLocations and \ + not locationWorld.name in sometimesLocations and \ + locationWorld.item.type != 'Event' and \ + not locationWorld.name in eventlocations and \ + locationWorld.item.name != 'Gold Skulltulla Token' and \ + not locationWorld.parent_region.dungeon and \ + not locationWorld.name in checkedLocations] + for locationWorld in random.sample(overworldlocations, random.randint(4,6)): + checkedLocations.append(locationWorld.name) + print(locationWorld.parent_region.name, ',', locationWorld.item.name) + sometimesSpace = (int((len(stoneAddresses) - len(alwaysLocations)*2)/2)) sometimesLocations = getHintGroup('location')#A random selection of these locations will be in the hint pool. From cc89d855d46922c71048b60a8e878ccc015ce22f Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Fri, 15 Jun 2018 04:30:34 -0400 Subject: [PATCH 020/755] select from good item locations --- Hints.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Hints.py b/Hints.py index 385f7c423..80ab75cfd 100644 --- a/Hints.py +++ b/Hints.py @@ -214,6 +214,15 @@ def buildGossipHints(world, rom): checkedLocations.append(locationWorld.name) print(locationWorld.parent_region.name, ',', locationWorld.item.name) + # add good item hints + # only choose location if it is new and a good item + gooditemlocations = [locationWorld for locationWorld in world.get_locations() + if not locationWorld.name in checkedLocations and \ + locationWorld.item.name in gooditems] + for locationWorld in random.sample(gooditemlocations, random.randint(1,3)): + checkedLocations.append(locationWorld.name) + print(locationWorld.parent_region.name, ',', locationWorld.item.name) + sometimesSpace = (int((len(stoneAddresses) - len(alwaysLocations)*2)/2)) sometimesLocations = getHintGroup('location')#A random selection of these locations will be in the hint pool. From 6052fb0530f5923dce0927faaebef979fe27e470 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Fri, 15 Jun 2018 04:44:39 -0400 Subject: [PATCH 021/755] item hints can be not at the end of the hint --- HintList.py | 194 ++++++++++++++++++++++++++-------------------------- 1 file changed, 98 insertions(+), 96 deletions(-) diff --git a/HintList.py b/HintList.py index c5681d979..f753cfda3 100644 --- a/HintList.py +++ b/HintList.py @@ -33,102 +33,102 @@ def getHintGroup(string): # & is a new line # @ will print the player name # # sets color to white (currently only used for dungeon reward hints). -hintTable = {'Hammer': (" the dragon smasher.", 'item'), - 'Magic Meter': (" pixie dust.", 'item'), - 'Double Defense': (" a white outline", 'item'), - 'Progressive Hookshot': (" Dampe's Keepsake.", 'item'), - 'Progressive Strength Upgrade': (" power gloves.", 'item'), - 'Hover Boots': (" butter boots.", 'item'), - 'Master Sword': (" evil's bane.", 'item'), - 'Mirror Shield': (" the reflective rampart.", 'item'), - 'Farores Wind': (" teleportation.", 'item'), - 'Nayrus Love': (" a safe space.", 'item'), - 'Ice Arrows': (" the refrigerator rocket.", 'item'), - 'Lens of Truth': (" the perjurless porthole.", 'item'), - 'Dins Fire': (" an inferno.", 'item'), - 'Fairy Ocarina': (" a brown flute.", 'item'), - 'Goron Tunic': (" ruby robes.", 'item'), - 'Zora Tunic': (" a sapphire suit.", 'item'), - 'Iron Boots': (" sink shoes.", 'item'), - 'Zeldas Letter': (" a signed banana.", 'item'), - 'Zeldas Lullaby': (" a song of royal slumber.", 'item'), - 'Nocturne of Shadow': (" a song of spooky spirits.", 'item'), - 'Bow': (" an archery enabler.", 'item'), - 'Bomb Bag': (" an explosive container.", 'item'), - 'Sarias Song': (" a song of dancing gorons.", 'item'), - 'Song of Time': (" a song 7 years long.", 'item'), - 'Song of Storms': (" Rain Dance.", 'item'), - 'Minuet of Forest': (" the song of tall trees.", 'item'), - 'Requiem of Spirit': (" a song of sandy statues.", 'item'), - 'Slingshot': (" a seed shooter.", 'item'), - 'Boomerang': (" a banana.", 'item'), - 'Fire Arrows': (" the furnace firearm.", 'item'), - 'Ocarina of Time': (" blue flute.", 'item'), - 'Bottle': (" a fairy prison.", 'item'), - 'Bottle with Letter': (" a call for help.", 'item'), - 'Bottle with Milk': (" cow juice.", 'item'), - 'Bottle with Red Potion': (" a vitality vial.", 'item'), - 'Bottle with Green Potion': (" a magic mixture.", 'item'), - 'Bottle with Blue Potion': (" an all-cure antidote.", 'item'), - 'Bottle with Fairy': (" an imprisoned fairy.", 'item'), - 'Bottle with Fish': (" an aquarium.", 'item'), - 'Bottle with Blue Fire': (" a conflagration canteen.", 'item'), - 'Bottle with Bugs': (" a terrarium.", 'item'), - 'Bottle with Poe': (" a spooky ghost.", 'item'), - 'Progressive Scale': (" Zora Flippers.", 'item'), - 'Stone of Agony': (" an empty chest.", 'item'), - 'Eponas Song': (" an equestrian etude.", 'item'), - 'Epona': (" a horse.", 'item'), - 'Gerudo Membership Card': (" a GT subscription.", 'item'), - 'Progressive Wallet': (" a mo' money holder.", 'item'), - 'Bolero of Fire': (" a song of lethal lava.", 'item'), - 'Suns Song': (" Sunny Day.", 'item'), - 'Deku Shield': (" a wooden ward.", 'item'), - 'Hylian Shield': (" a steel safeguard.", 'item'), - 'Deku Stick Capacity': (" a bundle of sticks.", 'item'), - 'Deku Nut Capacity': (" more nuts.", 'item'), - 'Prelude of Light': (" a luminous prologue melody.", 'item'), - 'Serenade of Water': (" a song of a damp ditch.", 'item'), - 'Heart Container': (" a lot of love.", 'item'), - 'Piece of Heart': (" love.", 'item'), - 'Recovery Heart': (" a free heal.", 'item'), - 'Rupee (1)': (" rare riches.", 'item'), - 'Rupees (5)': (" a common coin.", 'item'), - 'Rupees (20)': (" couch cash.", 'item'), - 'Rupees (50)': (" big bucks.", 'item'), - 'Rupees (200)': (" a juicy jackpot.", 'item'), - 'Light Arrows': (" the shining shot.", 'item'), - 'Kokiri Sword': (" a butter knife.", 'item'), - 'Biggoron Sword': (" a shield disabler.", 'item'), - 'Pocket Egg': (" a cucco container.", 'item'), - 'Pocket Cucco': (" a little clucker.", 'item'), - 'Cojiro': (" a cerulean capon.", 'item'), - 'Odd Mushroom': (" a powder ingredient.", 'item'), - 'Odd Potion': (" granny's goodies.", 'item'), - 'Poachers Saw': (" a tree killer.", 'item'), - 'Broken Sword': (" a shattered slicer.", 'item'), - 'Prescription': (" a pill pamphlet", 'item'), - 'Eyeball Frog': (" a perceiving polliwog.", 'item'), - 'Eyedrops': (" a vision vial.", 'item'), - 'Claim Check': (" a three day wait.", 'item'), - 'Map': (" a dungeon atlas.", 'item'), - 'Compass': (" a treasure tracker.", 'item'), - 'BossKey': (" a master of unlocking.", 'item'), - 'SmallKey': (" a tool for unlocking.", 'item'), - 'useless': (" something worthless.", 'item'), - 'Arrows (5)': (" danger darts.", 'item'), - 'Arrows (10)': (" danger darts.", 'item'), - 'Arrows (30)': (" danger darts.", 'item'), - 'Bombs (5)': (" explosives.", 'item'), - 'Bombs (10)': (" explosives.", 'item'), - 'Bombs (20)': (" lots-o-explosives.", 'item'), - 'Ice Trap': (" a gift from Ganon.", 'item'), - 'Magic Bean': (" wizardly legumes.", 'item'), - 'Bombchus (5)': (" mice bombs.", 'item'), - 'Bombchus (10)': (" mice bombs.", 'item'), - 'Bombchus (20)': (" mice bombs.", 'item'), - 'Deku Nuts (5)': (" some nuts.", 'item'), - 'Deku Nuts (10)': (" lots-o-nuts.", 'item'), +hintTable = {'Hammer': ("the dragon smasher", 'item'), + 'Magic Meter': ("pixie dust", 'item'), + 'Double Defense': ("a white outline", 'item'), + 'Progressive Hookshot': ("Dampe's Keepsake", 'item'), + 'Progressive Strength Upgrade': ("power gloves", 'item'), + 'Hover Boots': ("butter boots", 'item'), + 'Master Sword': ("evil's bane", 'item'), + 'Mirror Shield': ("the reflective rampart", 'item'), + 'Farores Wind': ("teleportation", 'item'), + 'Nayrus Love': ("a safe space", 'item'), + 'Ice Arrows': ("the refrigerator rocket", 'item'), + 'Lens of Truth': ("the perjurless porthole", 'item'), + 'Dins Fire': ("an inferno", 'item'), + 'Fairy Ocarina': ("a brown flute", 'item'), + 'Goron Tunic': ("ruby robes", 'item'), + 'Zora Tunic': ("a sapphire suit", 'item'), + 'Iron Boots': ("sink shoes", 'item'), + 'Zeldas Letter': ("a signed banana", 'item'), + 'Zeldas Lullaby': ("a song of royal slumber", 'item'), + 'Nocturne of Shadow': ("a song of spooky spirits", 'item'), + 'Bow': ("an archery enabler", 'item'), + 'Bomb Bag': ("an explosive container", 'item'), + 'Sarias Song': ("a song of dancing gorons", 'item'), + 'Song of Time': ("a song 7 years long", 'item'), + 'Song of Storms': ("Rain Dance", 'item'), + 'Minuet of Forest': ("the song of tall trees", 'item'), + 'Requiem of Spirit': ("a song of sandy statues", 'item'), + 'Slingshot': ("a seed shooter", 'item'), + 'Boomerang': ("a banana", 'item'), + 'Fire Arrows': ("the furnace firearm", 'item'), + 'Ocarina of Time': ("blue flute", 'item'), + 'Bottle': ("a fairy prison", 'item'), + 'Bottle with Letter': ("a call for help", 'item'), + 'Bottle with Milk': ("cow juice", 'item'), + 'Bottle with Red Potion': ("a vitality vial", 'item'), + 'Bottle with Green Potion': ("a magic mixture", 'item'), + 'Bottle with Blue Potion': ("an all-cure antidote", 'item'), + 'Bottle with Fairy': ("an imprisoned fairy", 'item'), + 'Bottle with Fish': ("an aquarium", 'item'), + 'Bottle with Blue Fire': ("a conflagration canteen", 'item'), + 'Bottle with Bugs': ("a terrarium", 'item'), + 'Bottle with Poe': ("a spooky ghost", 'item'), + 'Progressive Scale': ("Zora Flippers", 'item'), + 'Stone of Agony': ("an empty chest", 'item'), + 'Eponas Song': ("an equestrian etude", 'item'), + 'Epona': ("a horse", 'item'), + 'Gerudo Membership Card': ("a GT subscription", 'item'), + 'Progressive Wallet': ("a mo' money holder", 'item'), + 'Bolero of Fire': ("a song of lethal lava", 'item'), + 'Suns Song': ("Sunny Day", 'item'), + 'Deku Shield': ("a wooden ward", 'item'), + 'Hylian Shield': ("a steel safeguard", 'item'), + 'Deku Stick Capacity': ("a bundle of sticks", 'item'), + 'Deku Nut Capacity': ("more nuts", 'item'), + 'Prelude of Light': ("a luminous prologue melody", 'item'), + 'Serenade of Water': ("a song of a damp ditch", 'item'), + 'Heart Container': ("a lot of love", 'item'), + 'Piece of Heart': ("love", 'item'), + 'Recovery Heart': ("a free heal", 'item'), + 'Rupee (1)': ("rare riches", 'item'), + 'Rupees (5)': ("a common coin", 'item'), + 'Rupees (20)': ("couch cash", 'item'), + 'Rupees (50)': ("big bucks", 'item'), + 'Rupees (200)': ("a juicy jackpot", 'item'), + 'Light Arrows': ("the shining shot", 'item'), + 'Kokiri Sword': ("a butter knife", 'item'), + 'Biggoron Sword': ("a shield disabler", 'item'), + 'Pocket Egg': ("a cucco container", 'item'), + 'Pocket Cucco': ("a little clucker", 'item'), + 'Cojiro': ("a cerulean capon", 'item'), + 'Odd Mushroom': ("a powder ingredient", 'item'), + 'Odd Potion': ("granny's goodies", 'item'), + 'Poachers Saw': ("a tree killer", 'item'), + 'Broken Sword': ("a shattered slicer", 'item'), + 'Prescription': ("a pill pamphlet", 'item'), + 'Eyeball Frog': ("a perceiving polliwog", 'item'), + 'Eyedrops': ("a vision vial", 'item'), + 'Claim Check': ("a three day wait", 'item'), + 'Map': ("a dungeon atlas", 'item'), + 'Compass': ("a treasure tracker", 'item'), + 'BossKey': ("a master of unlocking", 'item'), + 'SmallKey': ("a tool for unlocking", 'item'), + 'useless': ("something worthless", 'item'), + 'Arrows (5)': ("danger darts", 'item'), + 'Arrows (10)': ("danger darts", 'item'), + 'Arrows (30)': ("danger darts", 'item'), + 'Bombs (5)': ("explosives", 'item'), + 'Bombs (10)': ("explosives", 'item'), + 'Bombs (20)': ("lots-o-explosives", 'item'), + 'Ice Trap': ("a gift from Ganon", 'item'), + 'Magic Bean': ("wizardly legumes", 'item'), + 'Bombchus (5)': ("mice bombs", 'item'), + 'Bombchus (10)': ("mice bombs", 'item'), + 'Bombchus (20)': ("mice bombs", 'item'), + 'Deku Nuts (5)': ("some nuts", 'item'), + 'Deku Nuts (10)': ("lots-o-nuts", 'item'), #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box '10 Big Poes': ("They say that 10 Big Poes leads&to", 'alwaysLocation'), 'Deku Theater Mask of Truth': ("They say that the Mask of Truth&yields", 'alwaysLocation'), @@ -241,3 +241,5 @@ def getHintGroup(string): '2009': ("Many tricks are up my sleeve,&to save yourself&you'd better leave!", 'ganonLine'), '2010': ("After what you did to&Koholint Island how can&you call me the bad guy?", 'ganonLine'), '2011': ("Today let's begin down&'The Hero is Defeated' timeline.", 'ganonLine')} + + From e272b3d579543f6e6b33f4ee71c7fbb689ce3dba Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Fri, 15 Jun 2018 05:14:17 -0400 Subject: [PATCH 022/755] add dungeon name hints --- HintList.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/HintList.py b/HintList.py index f753cfda3..8807b7ac9 100644 --- a/HintList.py +++ b/HintList.py @@ -216,6 +216,21 @@ def getHintGroup(string): '1041': ("You were almost a @&sandwich.", 'junkHint'), '1042': ("I'm a helpful hint Gossip Stone!^See I'm helping.", 'junkHint'), #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box + 'Deku Tree': ("an ancient tree", 'dungeon'), + 'Dodongos Cavern': ("an immense cavern", 'dungeon'), + 'Jabu Jabus Belly': ("the belly of a deity", 'dungeon'), + 'Forest Temple': ("a deep forest", 'dungeon'), + 'Fire Temple': ("a high mountain", 'dungeon'), + 'Water Temple': ("a vast lake", 'dungeon'), + 'Shadow Temple': ("the house of the dead", 'dungeon'), + 'Spirit Temple': ("the goddess of the sand", 'dungeon'), + 'Ice Cavern': ("a frozen maze", 'dungeon'), + 'Bottom of the Well': ("a shadow\'s prison", 'dungeon'), + 'Gerudo Training Grounds': ("the test of theives", 'dungeon'), + 'Ganons Castle': ("a conquered citadel", 'dungeon'), + #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box + 'Spiritual Stone Text Start': ("Ye who owns 3 Spiritual Stones...^", 'boss'), + 'Spiritual Stone Text End': ("Stand with the Ocarina of Time&and play the Song of Time.", 'boss'), 'Queen Gohma': ("One inside an #ancient tree#...^", 'boss'), 'King Dodongo': ("One within an #immense cavern#...^", 'boss'), 'Barinade': ("One in the #belly of a deity#...^", 'boss'), From 5bc9422a3f4f6c3e0d9c9750ebcea655eed0d80a Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Fri, 15 Jun 2018 05:14:38 -0400 Subject: [PATCH 023/755] fixed buildhintstring --- Hints.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Hints.py b/Hints.py index 80ab75cfd..567f2a956 100644 --- a/Hints.py +++ b/Hints.py @@ -102,10 +102,6 @@ # build a formatted string with linebreaks appropriate textboxes def buildHintString(hintString): - formatString = "" - splitHintString = hintString.split() - lineLength = 0 - if len(hintString) < 77: hintString = "They say that " + hintString elif len(hintString) < 82: @@ -113,6 +109,11 @@ def buildHintString(hintString): elif len(hintString) > 91: print('Too many characters in hint') hintString = hintString[:91] + hintString = hintString.capitalize() + + formatString = "" + splitHintString = hintString.split() + lineLength = 0 for word in splitHintString: # let's assume words are not 35 or more char long From 93d9672e5578e931a5d45e7aca1f56c25b499071 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Fri, 15 Jun 2018 05:15:39 -0400 Subject: [PATCH 024/755] generating proper hint text --- Hints.py | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/Hints.py b/Hints.py index 567f2a956..fec7a9d7f 100644 --- a/Hints.py +++ b/Hints.py @@ -159,9 +159,9 @@ def buildGossipHints(world, rom): # add required non-ganon items for hints (good hints) for location,item in random.sample(requiredItems, random.randint(2,4)): if random.choice([True, False]): - print(item) + print(buildHintString(getHint(item).text + " will lead to the Triforce.")) else: - print(location) + print(buildHintString(world.get_location(location).parent_region.name + " has a Piece of the Triforce.")) # Don't repeat hints checkedLocations = [] @@ -172,7 +172,7 @@ def buildGossipHints(world, rom): for locationWorld in world.get_locations(): if hint.name == locationWorld.name: checkedLocations.append(hint.name) - print(locationWorld.name, ',', locationWorld.item.name) + print(getHint(locationWorld.name).text + " " + getHint(getItemGenericName(locationWorld.item)).text + ".") # Add good location hints sometimesLocations = getHintGroup('location') @@ -185,7 +185,7 @@ def buildGossipHints(world, rom): for locationWorld in world.get_locations(): if hint.name == locationWorld.name: checkedLocations.append(locationWorld.name) - print(locationWorld.name, ',', locationWorld.item.name) + print(getHint(locationWorld.name).text + " " + getHint(getItemGenericName(locationWorld.item)).text + ".") # add bad dungeon locations hints for dungeon in random.sample(world.dungeons, random.randint(3,5)): @@ -198,7 +198,7 @@ def buildGossipHints(world, rom): location.item.type != 'Song']) checkedLocations.append(locationWorld.name) - print(dungeon.name, ",", locationWorld.item.name) + print(buildHintString(getHint(dungeon.name).text + " hordes " + getHint(getItemGenericName(locationWorld.item)).text + ".")) # add bad overworld locations hints # only choose location if it is new and a proper item from the overworld @@ -213,7 +213,7 @@ def buildGossipHints(world, rom): not locationWorld.name in checkedLocations] for locationWorld in random.sample(overworldlocations, random.randint(4,6)): checkedLocations.append(locationWorld.name) - print(locationWorld.parent_region.name, ',', locationWorld.item.name) + print(buildHintString(getHint(getItemGenericName(locationWorld.item)).text + " can be found at " + locationWorld.parent_region.name + ".")) # add good item hints # only choose location if it is new and a good item @@ -221,10 +221,14 @@ def buildGossipHints(world, rom): if not locationWorld.name in checkedLocations and \ locationWorld.item.name in gooditems] for locationWorld in random.sample(gooditemlocations, random.randint(1,3)): - checkedLocations.append(locationWorld.name) - print(locationWorld.parent_region.name, ',', locationWorld.item.name) + checkedLocations.append(locationWorld.name) + if locationWorld.parent_region.dungeon: + print(buildHintString(getHint(locationWorld.parent_region.dungeon.name).text + " hordes " + getHint(getItemGenericName(locationWorld.item)).text + ".")) + else: + print(buildHintString(getHint(getItemGenericName(locationWorld.item)).text + " can be found at " + locationWorld.parent_region.name + ".")) + sometimesSpace = (int((len(stoneAddresses) - len(alwaysLocations)*2)/2)) sometimesLocations = getHintGroup('location')#A random selection of these locations will be in the hint pool. random.shuffle(sometimesLocations) From 96c248a2f023233a10f2549febe57238619699bd Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Fri, 15 Jun 2018 06:54:38 -0400 Subject: [PATCH 025/755] Hints are written to rom --- Hints.py | 292 +++++++++++++++++++++++++++---------------------------- 1 file changed, 142 insertions(+), 150 deletions(-) diff --git a/Hints.py b/Hints.py index fec7a9d7f..93150e053 100644 --- a/Hints.py +++ b/Hints.py @@ -1,101 +1,101 @@ -import io -import hashlib -import logging -import os -import struct -import random - -from HintList import getHint, getHintGroup, Hint -from Utils import local_path -from Items import ItemFactory -from ItemList import eventlocations - -requiredganonitems = [ - 'Bottle', - 'Bottle with Milk', - 'Bottle with Red Potion', - 'Bottle with Green Potion', - 'Bottle with Blue Potion', - 'Bottle with Fairy', - 'Bottle with Fish', - 'Bottle with Blue Fire', - 'Bottle with Bugs', - 'Bottle with Poe', - 'Hammer', - 'Goron Tunic', - 'Progressive Strength Upgrade', - 'Bomb Bag', - 'Progressive Hookshot', - 'Mirror Shield', - 'Magic Meter', - 'Bow', - 'Light Arrows', -] - -gooditems = [ - 'Bow', - 'Progressive Hookshot', - 'Hammer', - 'Slingshot', - 'Boomerang', - 'Bomb Bag', - 'Lens of Truth', - 'Dins Fire', - 'Farores Wind', - 'Nayrus Love', - 'Fire Arrows', - 'Ice Arrows', - 'Light Arrows', - 'Bottle', - 'Bottle with Letter', - 'Bottle with Milk', - 'Bottle with Red Potion', - 'Bottle with Green Potion', - 'Bottle with Blue Potion', - 'Bottle with Fairy', - 'Bottle with Fish', - 'Bottle with Blue Fire', - 'Bottle with Bugs', - 'Bottle with Poe', - 'Pocket Egg', - 'Pocket Cucco', - 'Cojiro', - 'Odd Mushroom', - 'Odd Potion', - 'Poachers Saw', - 'Broken Sword', - 'Prescription', - 'Eyeball Frog', - 'Eyedrops', - 'Claim Check', - 'Kokiri Sword', - 'Biggoron Sword', - 'Deku Shield', - 'Hylian Shield', - 'Mirror Shield', - 'Goron Tunic', - 'Zora Tunic', - 'Iron Boots', - 'Hover Boots', - 'Progressive Strength Upgrade', - 'Progressive Scale', - 'Progressive Wallet', - 'Deku Stick Capacity', - 'Deku Nut Capacity', - 'Magic Meter', - 'Double Defense', - 'Stone of Agony', - 'Zeldas Lullaby', - 'Eponas Song', - 'Suns Song', - 'Sarias Song', - 'Song of Time', - 'Song of Storms', - 'Minuet of Forest', - 'Prelude of Light', - 'Bolero of Fire', - 'Serenade of Water', - 'Nocturne of Shadow', +import io +import hashlib +import logging +import os +import struct +import random + +from HintList import getHint, getHintGroup, Hint +from Utils import local_path +from Items import ItemFactory +from ItemList import eventlocations + +requiredganonitems = [ + 'Bottle', + 'Bottle with Milk', + 'Bottle with Red Potion', + 'Bottle with Green Potion', + 'Bottle with Blue Potion', + 'Bottle with Fairy', + 'Bottle with Fish', + 'Bottle with Blue Fire', + 'Bottle with Bugs', + 'Bottle with Poe', + 'Hammer', + 'Goron Tunic', + 'Progressive Strength Upgrade', + 'Bomb Bag', + 'Progressive Hookshot', + 'Mirror Shield', + 'Magic Meter', + 'Bow', + 'Light Arrows', +] + +gooditems = [ + 'Bow', + 'Progressive Hookshot', + 'Hammer', + 'Slingshot', + 'Boomerang', + 'Bomb Bag', + 'Lens of Truth', + 'Dins Fire', + 'Farores Wind', + 'Nayrus Love', + 'Fire Arrows', + 'Ice Arrows', + 'Light Arrows', + 'Bottle', + 'Bottle with Letter', + 'Bottle with Milk', + 'Bottle with Red Potion', + 'Bottle with Green Potion', + 'Bottle with Blue Potion', + 'Bottle with Fairy', + 'Bottle with Fish', + 'Bottle with Blue Fire', + 'Bottle with Bugs', + 'Bottle with Poe', + 'Pocket Egg', + 'Pocket Cucco', + 'Cojiro', + 'Odd Mushroom', + 'Odd Potion', + 'Poachers Saw', + 'Broken Sword', + 'Prescription', + 'Eyeball Frog', + 'Eyedrops', + 'Claim Check', + 'Kokiri Sword', + 'Biggoron Sword', + 'Deku Shield', + 'Hylian Shield', + 'Mirror Shield', + 'Goron Tunic', + 'Zora Tunic', + 'Iron Boots', + 'Hover Boots', + 'Progressive Strength Upgrade', + 'Progressive Scale', + 'Progressive Wallet', + 'Deku Stick Capacity', + 'Deku Nut Capacity', + 'Magic Meter', + 'Double Defense', + 'Stone of Agony', + 'Zeldas Lullaby', + 'Eponas Song', + 'Suns Song', + 'Sarias Song', + 'Song of Time', + 'Song of Storms', + 'Minuet of Forest', + 'Prelude of Light', + 'Bolero of Fire', + 'Serenade of Water', + 'Nocturne of Shadow', 'Requiem of Spirit', ] @@ -140,10 +140,18 @@ def getItemGenericName(item): else: return item.name + def isDungeonItem(item): return item.type == 'Map' or item.type == 'Compass' or item.type == 'BossKey' or item.type == 'SmallKey' +def writeHintToRom(hint, stoneAddress, rom): + hintBytes = getBytes(hint) + endText(hintBytes) + rom.write_bytes(stoneAddress, hintBytes) + + + #builds out general hints based on location and whether an item is required or not def buildGossipHints(world, rom): stoneAddresses = [0x938e4c, 0x938EA8, 0x938F04, 0x938F60, 0x938FBC, 0x939018, 0x939074, 0x9390D0, 0x93912C, 0x939188, @@ -151,6 +159,12 @@ def buildGossipHints(world, rom): 0x93957C, 0x9395D8, 0x939634, 0x939690, 0x9396EC, 0x939748, 0x9397A4, 0x939800, 0x93985C, 0x9398B8, 0x939914, 0x939970] #address for gossip stone text boxes, byte limit is 92 + #hopefully fixes weird VC error where the last character from a previous text box would sometimes spill over into the next box. + for address in range(stoneAddresses[0], 0x9399D8): + rom.write_byte(address, 0x08) + + #shuffles the stone addresses for randomization, always locations will be placed first and twice + random.shuffle(stoneAddresses) # get list of required items that are not events or needed for Ganon's Castle requiredItems = [(location, item) for _,sphere in world.spoiler.playthrough.items() for location,item in sphere.items() @@ -159,9 +173,15 @@ def buildGossipHints(world, rom): # add required non-ganon items for hints (good hints) for location,item in random.sample(requiredItems, random.randint(2,4)): if random.choice([True, False]): - print(buildHintString(getHint(item).text + " will lead to the Triforce.")) + writeHintToRom(buildHintString(getHint(item).text + " will lead to the Triforce."),\ + stoneAddresses.pop(0), rom) else: - print(buildHintString(world.get_location(location).parent_region.name + " has a Piece of the Triforce.")) + if world.get_location(location).parent_region.dungeon: + writeHintToRom(buildHintString(getHint(world.get_location(location).parent_region.dungeon.name).text + \ + " a Piece of the Triforce."), stoneAddresses.pop(0), rom) + else: + writeHintToRom(buildHintString(world.get_location(location).parent_region.name + " has a Piece of the Triforce."),\ + stoneAddresses.pop(0), rom) # Don't repeat hints checkedLocations = [] @@ -171,8 +191,11 @@ def buildGossipHints(world, rom): for hint in alwaysLocations: for locationWorld in world.get_locations(): if hint.name == locationWorld.name: - checkedLocations.append(hint.name) - print(getHint(locationWorld.name).text + " " + getHint(getItemGenericName(locationWorld.item)).text + ".") + checkedLocations.append(hint.name) + writeHintToRom(getHint(locationWorld.name).text + " " + \ + getHint(getItemGenericName(locationWorld.item)).text + ".",\ + stoneAddresses.pop(0), rom) + # Add good location hints sometimesLocations = getHintGroup('location') @@ -185,7 +208,9 @@ def buildGossipHints(world, rom): for locationWorld in world.get_locations(): if hint.name == locationWorld.name: checkedLocations.append(locationWorld.name) - print(getHint(locationWorld.name).text + " " + getHint(getItemGenericName(locationWorld.item)).text + ".") + writeHintToRom(getHint(locationWorld.name).text + " " + \ + getHint(getItemGenericName(locationWorld.item)).text + ".",\ + stoneAddresses.pop(0), rom) # add bad dungeon locations hints for dungeon in random.sample(world.dungeons, random.randint(3,5)): @@ -198,7 +223,9 @@ def buildGossipHints(world, rom): location.item.type != 'Song']) checkedLocations.append(locationWorld.name) - print(buildHintString(getHint(dungeon.name).text + " hordes " + getHint(getItemGenericName(locationWorld.item)).text + ".")) + writeHintToRom(buildHintString(getHint(dungeon.name).text + \ + " hordes " + getHint(getItemGenericName(locationWorld.item)).text + "."),\ + stoneAddresses.pop(0), rom) # add bad overworld locations hints # only choose location if it is new and a proper item from the overworld @@ -213,7 +240,9 @@ def buildGossipHints(world, rom): not locationWorld.name in checkedLocations] for locationWorld in random.sample(overworldlocations, random.randint(4,6)): checkedLocations.append(locationWorld.name) - print(buildHintString(getHint(getItemGenericName(locationWorld.item)).text + " can be found at " + locationWorld.parent_region.name + ".")) + writeHintToRom(buildHintString(getHint(getItemGenericName(locationWorld.item)).text + \ + " can be found at " + locationWorld.parent_region.name + "."),\ + stoneAddresses.pop(0), rom) # add good item hints # only choose location if it is new and a good item @@ -223,52 +252,15 @@ def buildGossipHints(world, rom): for locationWorld in random.sample(gooditemlocations, random.randint(1,3)): checkedLocations.append(locationWorld.name) if locationWorld.parent_region.dungeon: - print(buildHintString(getHint(locationWorld.parent_region.dungeon.name).text + " hordes " + getHint(getItemGenericName(locationWorld.item)).text + ".")) + writeHintToRom(buildHintString(getHint(locationWorld.parent_region.dungeon.name).text + \ + " hordes " + getHint(getItemGenericName(locationWorld.item)).text + "."),\ + stoneAddresses.pop(0), rom) else: - print(buildHintString(getHint(getItemGenericName(locationWorld.item)).text + " can be found at " + locationWorld.parent_region.name + ".")) - - - - sometimesSpace = (int((len(stoneAddresses) - len(alwaysLocations)*2)/2)) - sometimesLocations = getHintGroup('location')#A random selection of these locations will be in the hint pool. - random.shuffle(sometimesLocations) - sometimesLocations = sometimesLocations[0:sometimesSpace] - hintList = alwaysLocations - hintList.extend(alwaysLocations) - hintList.extend(sometimesLocations) - - locationData = [] - for hint in hintList: - for locationWorld in world.get_locations(): - if hint.name == locationWorld.name: - locationData.extend([locationWorld]) - - #hopefully fixes weird VC error where the last character from a previous text box would sometimes spill over into the next box. - for address in range(stoneAddresses[0], 0x9399D8): - rom.write_byte(address, 0x08) - - #shuffles the stone addresses for randomization, always locations will be placed first and twice - random.shuffle(stoneAddresses) - - #loops through shuffled locations and addresses and builds hint. - while locationData: - currentLoc = locationData.pop(0) - Block_code = getBytes((getHint(currentLoc.name).text)) - if currentLoc.item.type == 'Map' or currentLoc.item.type == 'Compass' or currentLoc.item.type == 'BossKey' or currentLoc.item.type == 'SmallKey': - Block_code.extend(getBytes((getHint(currentLoc.item.type).text))) - else: - Block_code.extend(getBytes((getHint(currentLoc.item.name).text))) - endText(Block_code) - - if len(Block_code) > 92: - print('Too many characters in hint') - Block_code = getBytes("I am Error.") - Block_code.extend(getBytes(currentLoc.name)) - Block_code.extend(getBytes('&')) - Block_code.extend(getBytes(currentLoc.item.name)) - - rom.write_bytes(stoneAddresses.pop(0), Block_code) + writeHintToRom(buildHintString(getHint(getItemGenericName(locationWorld.item)).text + \ + " can be found at " + locationWorld.parent_region.name + "."),\ + stoneAddresses.pop(0), rom) + # fill the remaining hints with junk junkHints = getHintGroup('junkHint') random.shuffle(junkHints) while stoneAddresses: @@ -384,4 +376,4 @@ def getBytes(string): byte = int('0x' + char, 16) byteCode.extend([byte]) return byteCode - + From 17741bdfb5608f57a7260f914bfef4626c029f50 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Fri, 15 Jun 2018 08:18:12 -0500 Subject: [PATCH 026/755] Refactored Gui and added options for the new hint system. --- BaseClasses.py | 4 +- Gui.py | 119 ++++++++++++++++++++++++++++++----------------- Main.py | 4 +- OoTRandomizer.py | 7 +++ Rom.py | 6 ++- 5 files changed, 94 insertions(+), 46 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 1b3b54c20..394af6f81 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -6,7 +6,7 @@ class World(object): - def __init__(self, bridge, open_forest, open_door_of_time, place_dungeon_items, check_beatable_only, hints, colors, healthSFX): + def __init__(self, bridge, open_forest, open_door_of_time, place_dungeon_items, check_beatable_only, hints, always_hints, colors, healthSFX, custom_logic): self.shuffle = 'vanilla' self.bridge = bridge self.dungeons = [] @@ -25,6 +25,8 @@ def __init__(self, bridge, open_forest, open_door_of_time, place_dungeon_items, self.open_forest = open_forest self.open_door_of_time = open_door_of_time self.hints = hints + self.always_hints = always_hints + self.custom_logic = custom_logic self.colors = colors self.healthSFX = healthSFX self.keysanity = False diff --git a/Gui.py b/Gui.py index f9acb2d7f..fea507de9 100644 --- a/Gui.py +++ b/Gui.py @@ -50,31 +50,63 @@ def open_readme(): rightHalfFrame = Frame(topFrame) checkBoxFrame = Frame(rightHalfFrame) - createSpoilerVar = IntVar() - createSpoilerCheckbutton = Checkbutton(checkBoxFrame, text="Create Spoiler Log", variable=createSpoilerVar) - suppressRomVar = IntVar() - suppressRomCheckbutton = Checkbutton(checkBoxFrame, text="Do not create patched Rom", variable=suppressRomVar) - compressRomVar = IntVar() - compressRomCheckbutton = Checkbutton(checkBoxFrame, text="Compress patched Rom", variable=compressRomVar) - openForestVar = IntVar() - openForestCheckbutton = Checkbutton(checkBoxFrame, text="Open Forest", variable=openForestVar) - openDoorVar = IntVar() - openDoorCheckbutton = Checkbutton(checkBoxFrame, text="Open Door of Time", variable=openDoorVar) - dungeonItemsVar = IntVar() - dungeonItemsCheckbutton = Checkbutton(checkBoxFrame, text="Place Dungeon Items (Compasses/Maps)", onvalue=0, offvalue=1, variable=dungeonItemsVar) - beatableOnlyVar = IntVar() - beatableOnlyCheckbutton = Checkbutton(checkBoxFrame, text="Only ensure seed is beatable, not all items must be reachable", variable=beatableOnlyVar) - hintsVar = IntVar() - hintsCheckbutton = Checkbutton(checkBoxFrame, text="Gossip Stone Hints with Stone of Agony", variable=hintsVar) - - createSpoilerCheckbutton.pack(expand=True, anchor=W) - suppressRomCheckbutton.pack(expand=True, anchor=W) - compressRomCheckbutton.pack(expand=True, anchor=W) - openForestCheckbutton.pack(expand=True, anchor=W) - openDoorCheckbutton.pack(expand=True, anchor=W) - dungeonItemsCheckbutton.pack(expand=True, anchor=W) - beatableOnlyCheckbutton.pack(expand=True, anchor=W) - hintsCheckbutton.pack(expand=True, anchor=W) + # refactoring repeated code for checkboxes... + checkboxInfo = { + "create_spoiler": { "text": "Create Spoiler Log", "default": "checked" }, + "suppress_rom": { "text": "Do not create patched Rom", "default": "unchecked" }, + "compress_rom": { "text": "Compress patched Rom", "default": "checked" }, + "open_forest": { "text": "Open Forest", "default": "checked" }, + "open_door_of_time": { "text": "Open Door of Time", "default": "checked" }, + "nodungeonitems": { "text": "Removed Maps and Compasses", "default": "checked" }, + "beatableonly": { "text": "Only ensure seed is beatable", "default": "checked" }, + "hints": { "text": "Gossip Stones have useful hints", "default": "checked" }, + "always_hints": { "text": "Gossip Stones can always be read", "default": "checked" }, + "custom_logic": { "text": "Use this fork's custom logic", "default": "checked" }, + } + + # create the checkboxes + checkboxes = {} # this isn't used later currently, but I'm holding on to the pointers in case it matters later on + checkboxVars = {} + for var_name, info in checkboxInfo.items(): + # determine the initial value of the checkbox + default_value = 1 if info["default"] == "checked" else 0 + # create a variable to access the box's state + checkboxVars[var_name] = IntVar(value=default_value) + # create the checkbox + checkboxes[var_name] = Checkbutton(checkBoxFrame, text=info["text"], variable=checkboxVars[var_name]) + checkboxes[var_name].pack(expand=True, anchor=W) + + # createSpoilerVar = IntVar() + # createSpoilerCheckbutton = Checkbutton(checkBoxFrame, text="Create Spoiler Log", variable=createSpoilerVar) + # suppressRomVar = IntVar() + # suppressRomCheckbutton = Checkbutton(checkBoxFrame, text="Do not create patched Rom", variable=suppressRomVar) + # compressRomVar = IntVar() + # compressRomCheckbutton = Checkbutton(checkBoxFrame, text="Compress patched Rom", variable=compressRomVar) + # openForestVar = IntVar() + # openForestCheckbutton = Checkbutton(checkBoxFrame, text="Open Forest", variable=openForestVar) + # openDoorVar = IntVar() + # openDoorCheckbutton = Checkbutton(checkBoxFrame, text="Open Door of Time", variable=openDoorVar) + # dungeonItemsVar = IntVar() + # dungeonItemsCheckbutton = Checkbutton(checkBoxFrame, text="Place Dungeon Items (Compasses/Maps)", onvalue=0, offvalue=1, variable=dungeonItemsVar) + # beatableOnlyVar = IntVar() + # beatableOnlyCheckbutton = Checkbutton(checkBoxFrame, text="Only ensure seed is beatable, not all items must be reachable", variable=beatableOnlyVar) + # hintsVar = IntVar() + # hintsCheckbutton = Checkbutton(checkBoxFrame, text="Gossip Stone Hints with Stone of Agony", variable=hintsVar) + # alwaysHintsVar = IntVar() + # alwaysHintsCheckbutton = Checkbutton(checkBoxFrame, text="Gossip Stone Always Respond", variable=alwaysHintsVar) + # useCustomLogic = IntVar(value=1) + # useCustomLogicCheckbutton = Checkbutton(checkBoxFrame, text="Use Custom Logic", variable=useCustomLogic) + + # createSpoilerCheckbutton.pack(expand=True, anchor=W) + # suppressRomCheckbutton.pack(expand=True, anchor=W) + # compressRomCheckbutton.pack(expand=True, anchor=W) + # openForestCheckbutton.pack(expand=True, anchor=W) + # openDoorCheckbutton.pack(expand=True, anchor=W) + # dungeonItemsCheckbutton.pack(expand=True, anchor=W) + # beatableOnlyCheckbutton.pack(expand=True, anchor=W) + # hintsCheckbutton.pack(expand=True, anchor=W) + # alwaysHintsCheckbutton.pack(expand=True, anchor=W) + # useCustomLogicCheckbutton.pack(expand=True, anchor=W) fileDialogFrame = Frame(rightHalfFrame) @@ -167,14 +199,16 @@ def generateRom(): guiargs.goroncolor = colorVars[1].get() guiargs.zoracolor = colorVars[2].get() guiargs.healthSFX = lowHealthSFXVar.get() - guiargs.create_spoiler = bool(createSpoilerVar.get()) - guiargs.suppress_rom = bool(suppressRomVar.get()) - guiargs.compress_rom = bool(compressRomVar.get()) - guiargs.open_forest = bool(openForestVar.get()) - guiargs.open_door_of_time = bool(openDoorVar.get()) - guiargs.nodungeonitems = bool(dungeonItemsVar.get()) - guiargs.beatableonly = bool(beatableOnlyVar.get()) - guiargs.hints = bool(hintsVar.get()) + guiargs.create_spoiler = bool(checkboxVars["create_spoiler"].get()) + guiargs.suppress_rom = bool(checkboxVars["suppress_rom"].get()) + guiargs.compress_rom = bool(checkboxVars["compress_rom"].get()) + guiargs.open_forest = bool(checkboxVars["open_forest"].get()) + guiargs.open_door_of_time = bool(checkboxVars["open_door_of_time"].get()) + guiargs.nodungeonitems = bool(checkboxVars["nodungeonitems"].get()) + guiargs.beatableonly = bool(checkboxVars["beatableonly"].get()) + guiargs.hints = bool(checkboxVars["hints"].get()) + guiargs.always_hints = bool(checkboxVars["always_hints"].get()) + guiargs.custom_logic = bool(checkboxVars["custom_logic"].get()) guiargs.rom = romVar.get() try: if guiargs.count is not None: @@ -206,15 +240,16 @@ def generateRom(): if args is not None: # load values from commandline args - createSpoilerVar.set(int(args.create_spoiler)) - suppressRomVar.set(int(args.suppress_rom)) - compressRomVar.set(int(args.compress_rom)) - if args.nodungeonitems: - dungeonItemsVar.set(int(not args.nodungeonitems)) - openForestVar.set(int(args.open_forest)) - openDoorVar.set(int(args.open_door_of_time)) - beatableOnlyVar.set(int(args.beatableonly)) - hintsVar.set(int(args.hints)) + checkboxVars["create_spoiler"].set(int(args.create_spoiler)) + checkboxVars["suppress_rom"].set(int(args.suppress_rom)) + checkboxVars["compress_rom"].set(int(args.compress_rom)) + checkboxVars["open_forest"].set(int(args.open_forest)) + checkboxVars["open_door_of_time"].set(int(args.open_door_of_time)) + checkboxVars["nodungeonitems"].set(int(args.nodungeonitems)) + checkboxVars["beatableonly"].set(int(args.beatableonly)) + checkboxVars["hints"].set(int(args.hints)) + checkboxVars["always_hints"].set(int(args.always_hints)) + checkboxVars["custom_logic"].set(int(args.custom_logic)) if args.count: countVar.set(str(args.count)) if args.seed: diff --git a/Main.py b/Main.py index 7960a009c..5bab6d6fd 100644 --- a/Main.py +++ b/Main.py @@ -23,7 +23,7 @@ def main(args, seed=None): start = time.clock() # initialize the world - world = World(args.bridge, args.open_forest, args.open_door_of_time, not args.nodungeonitems, args.beatableonly, args.hints, [args.kokiricolor, args.goroncolor, args.zoracolor], args.healthSFX) + world = World(args.bridge, args.open_forest, args.open_door_of_time, not args.nodungeonitems, args.beatableonly, args.hints, args.always_hints, [args.kokiricolor, args.goroncolor, args.zoracolor], args.healthSFX, args.custom_logic) logger = logging.getLogger('') if seed is None: random.seed(None) @@ -94,7 +94,7 @@ def main(args, seed=None): def copy_world(world): # ToDo: Not good yet - ret = World(world.bridge, world.open_forest, world.open_door_of_time, world.place_dungeon_items, world.check_beatable_only, world.hints, world.colors, world.healthSFX) + ret = World(world.bridge, world.open_forest, world.open_door_of_time, world.place_dungeon_items, world.check_beatable_only, world.hints, world.always_hints, world.colors, world.healthSFX, world.custom_logic) ret.seed = world.seed ret.can_take_damage = world.can_take_damage create_regions(ret) diff --git a/OoTRandomizer.py b/OoTRandomizer.py index 21e5da2ce..3a0ace5e6 100644 --- a/OoTRandomizer.py +++ b/OoTRandomizer.py @@ -59,6 +59,9 @@ def start(): in inconvenient locations if the Stone of Agony is in the player's inventory. ''', action='store_true') + parser.add_argument('--always_hints', help='''\ + Gossip Stones can be read any time. + ''', action='store_true') parser.add_argument('--kokiricolor', default='Kokiri Green', const='medallions', nargs='?', choices=['Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Purple', 'Yellow', 'Orange', 'Pink', 'Gray', 'Brown', 'Gold', 'Silver', 'Beige', 'Teal', 'Royal Blue', 'Sonic Blue', 'Blood Red', 'Blood Orange', 'NES Green', 'Dark Green', 'Random', 'True Random'], help='''\ Choose the color for Link's Kokiri Tunic. (default: %(default)s) @@ -87,6 +90,10 @@ def start(): Random: Replace the sound effect with a random sound from this list. None: Eliminate heart beeps. ''') + parser.add_argument('--custom_logic', help='''\ + Removes a number of bad locations from logic, + and adds a number allowed tricks + ''', action='store_true') parser.add_argument('--suppress_rom', help='Do not create an output rom file.', action='store_true') parser.add_argument('--compress_rom', help='Create a compressed version of the output rom file.', action='store_true') parser.add_argument('--gui', help='Launch the GUI', action='store_true') diff --git a/Rom.py b/Rom.py index c885af3cc..93d0a56be 100644 --- a/Rom.py +++ b/Rom.py @@ -858,7 +858,11 @@ def patch_rom(world, rom): rom.write_bytes(0x3480820, Block_code) # Gossip stones resond to stone of agony - Block_code = [0x24, 0x01, 0x00, 0x20, 0x03, 0xE0, 0x00, 0x08] + Block_code = [0x3C, 0x01, 0x80, 0x12, 0x80, 0x21, 0xA6, 0x75, 0x30, 0x21, 0x00, 0x20, + 0x03, 0xE0, 0x00, 0x08] + # Gossip stones always respond + if(world.always_hints): + Block_code = [0x24, 0x01, 0x00, 0x20, 0x03, 0xE0, 0x00, 0x08] rom.write_bytes(0x3480840, Block_code) # Set up Rainbow Bridge conditions From f4b10c565dbb960bfd31e387a4253c13cfef2c1d Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Fri, 15 Jun 2018 10:29:11 -0500 Subject: [PATCH 027/755] Hint options are now exclusive. Reworking GUI to better suit our changes. --- BaseClasses.py | 15 ++++-- Gui.py | 125 +++++++++++++++++++++++++---------------------- Main.py | 6 +-- OoTRandomizer.py | 22 ++++----- Rom.py | 9 ++-- 5 files changed, 97 insertions(+), 80 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 394af6f81..c53e8bf13 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -6,7 +6,7 @@ class World(object): - def __init__(self, bridge, open_forest, open_door_of_time, place_dungeon_items, check_beatable_only, hints, always_hints, colors, healthSFX, custom_logic): + def __init__(self, bridge, open_forest, open_door_of_time, place_dungeon_items, check_beatable_only, hints, colors, healthSFX, custom_logic): self.shuffle = 'vanilla' self.bridge = bridge self.dungeons = [] @@ -25,7 +25,6 @@ def __init__(self, bridge, open_forest, open_door_of_time, place_dungeon_items, self.open_forest = open_forest self.open_door_of_time = open_door_of_time self.hints = hints - self.always_hints = always_hints self.custom_logic = custom_logic self.colors = colors self.healthSFX = healthSFX @@ -344,7 +343,13 @@ def has_fire_source(self): return ((self.has('Dins Fire') or (self.has('Bow') and self.has('Fire Arrows') and self.is_adult())) and self.has('Magic Meter')) def guarantee_hint(self): - return(self.has('Stone of Agony') or not self.world.hints) + if(self.world.hints == 'mask'): + # has the mask of truth + return self.has('Zeldas Letter') and self.has('Sarias Song') and self.has('Kokiri Emerald') and self.has('Goron Ruby') and self.has('Zora Sapphire') + elif(self.world.hints == 'agony'): + # has the stone of agony + return self.has('Stone of Agony') + return True def collect(self, item, event=False, location=None): if location: @@ -598,7 +603,8 @@ def parse_data(self): 'forest': self.world.open_forest, 'door': self.world.open_door_of_time, 'completeable': not self.world.check_beatable_only, - 'dungeonitems': self.world.place_dungeon_items} + 'dungeonitems': self.world.place_dungeon_items, + 'hints': self.world.hints} def to_file(self, filename): self.parse_data() @@ -609,6 +615,7 @@ def to_file(self, filename): outfile.write('Open Door of Time: %s\n' % ('Yes' if self.metadata['door'] else 'No')) outfile.write('All Locations Accessible: %s\n' % ('Yes' if self.metadata['completeable'] else 'No, some locations may be unreachable')) outfile.write('Maps and Compasses in Dungeons: %s\n' % ('Yes' if self.metadata['dungeonitems'] else 'No')) + outfile.write('Hints: %s\n' % self.metadata['hints']) outfile.write('\n\nEntrances:\n\n') outfile.write('\n'.join(['%s %s %s' % (entry['entrance'], '<=>' if entry['direction'] == 'both' else '<=' if entry['direction'] == 'exit' else '=>', entry['exit']) for entry in self.entrances])) outfile.write('\n\nLocations:\n\n') diff --git a/Gui.py b/Gui.py index fea507de9..5d7225cbd 100644 --- a/Gui.py +++ b/Gui.py @@ -5,7 +5,7 @@ import random import os import shutil -from tkinter import Checkbutton, OptionMenu, Toplevel, LabelFrame, PhotoImage, Tk, LEFT, RIGHT, BOTTOM, TOP, StringVar, IntVar, Frame, Label, W, E, X, Entry, Spinbox, Button, filedialog, messagebox, ttk +from tkinter import Checkbutton, OptionMenu, Toplevel, LabelFrame, Radiobutton, PhotoImage, Tk, LEFT, RIGHT, BOTTOM, TOP, StringVar, IntVar, Frame, Label, W, E, X, N, S, NW, Entry, Spinbox, Button, filedialog, messagebox, ttk from urllib.parse import urlparse from urllib.request import urlopen @@ -25,24 +25,24 @@ def guiMain(args=None): adjustWindow = ttk.Frame(notebook) customWindow = ttk.Frame(notebook) notebook.add(randomizerWindow, text='Randomize') - notebook.pack() # Shared Controls - farBottomFrame = Frame(mainWindow) + farTopFrame = Frame(mainWindow) def open_output(): open_file(output_path('')) - openOutputButton = Button(farBottomFrame, text='Open Output Directory', command=open_output) + openOutputButton = Button(farTopFrame, text='Open Output Directory', command=open_output) if os.path.exists(local_path('README.html')): def open_readme(): open_file(local_path('README.html')) - openReadmeButton = Button(farBottomFrame, text='Open Documentation', command=open_readme) + openReadmeButton = Button(farTopFrame, text='Open Documentation', command=open_readme) openReadmeButton.pack(side=LEFT) - farBottomFrame.pack(side=BOTTOM, fill=X, padx=5, pady=5) + farTopFrame.pack(side=TOP, fill=X, padx=5, pady=2) + notebook.pack(padx=5, pady=5) # randomizer controls @@ -52,16 +52,14 @@ def open_readme(): # refactoring repeated code for checkboxes... checkboxInfo = { - "create_spoiler": { "text": "Create Spoiler Log", "default": "checked" }, - "suppress_rom": { "text": "Do not create patched Rom", "default": "unchecked" }, - "compress_rom": { "text": "Compress patched Rom", "default": "checked" }, - "open_forest": { "text": "Open Forest", "default": "checked" }, - "open_door_of_time": { "text": "Open Door of Time", "default": "checked" }, - "nodungeonitems": { "text": "Removed Maps and Compasses", "default": "checked" }, - "beatableonly": { "text": "Only ensure seed is beatable", "default": "checked" }, - "hints": { "text": "Gossip Stones have useful hints", "default": "checked" }, - "always_hints": { "text": "Gossip Stones can always be read", "default": "checked" }, - "custom_logic": { "text": "Use this fork's custom logic", "default": "checked" }, + "create_spoiler": { "text": "Create Spoiler Log", "group": "output", "default": "checked" }, + "suppress_rom": { "text": "Do not create patched Rom", "group": "output", "default": "unchecked" }, + "compress_rom": { "text": "Compress patched Rom", "group": "output", "default": "checked" }, + "open_forest": { "text": "Open Forest", "group": "output", "default": "checked" }, + "open_door_of_time": { "text": "Open Door of Time", "group": "output", "default": "checked" }, + "nodungeonitems": { "text": "Remove Maps and Compasses", "group": "output", "default": "checked" }, + "beatableonly": { "text": "Only ensure seed is beatable", "group": "output", "default": "checked" }, + "custom_logic": { "text": "Use this fork's custom logic", "group": "output", "default": "checked" }, } # create the checkboxes @@ -76,37 +74,6 @@ def open_readme(): checkboxes[var_name] = Checkbutton(checkBoxFrame, text=info["text"], variable=checkboxVars[var_name]) checkboxes[var_name].pack(expand=True, anchor=W) - # createSpoilerVar = IntVar() - # createSpoilerCheckbutton = Checkbutton(checkBoxFrame, text="Create Spoiler Log", variable=createSpoilerVar) - # suppressRomVar = IntVar() - # suppressRomCheckbutton = Checkbutton(checkBoxFrame, text="Do not create patched Rom", variable=suppressRomVar) - # compressRomVar = IntVar() - # compressRomCheckbutton = Checkbutton(checkBoxFrame, text="Compress patched Rom", variable=compressRomVar) - # openForestVar = IntVar() - # openForestCheckbutton = Checkbutton(checkBoxFrame, text="Open Forest", variable=openForestVar) - # openDoorVar = IntVar() - # openDoorCheckbutton = Checkbutton(checkBoxFrame, text="Open Door of Time", variable=openDoorVar) - # dungeonItemsVar = IntVar() - # dungeonItemsCheckbutton = Checkbutton(checkBoxFrame, text="Place Dungeon Items (Compasses/Maps)", onvalue=0, offvalue=1, variable=dungeonItemsVar) - # beatableOnlyVar = IntVar() - # beatableOnlyCheckbutton = Checkbutton(checkBoxFrame, text="Only ensure seed is beatable, not all items must be reachable", variable=beatableOnlyVar) - # hintsVar = IntVar() - # hintsCheckbutton = Checkbutton(checkBoxFrame, text="Gossip Stone Hints with Stone of Agony", variable=hintsVar) - # alwaysHintsVar = IntVar() - # alwaysHintsCheckbutton = Checkbutton(checkBoxFrame, text="Gossip Stone Always Respond", variable=alwaysHintsVar) - # useCustomLogic = IntVar(value=1) - # useCustomLogicCheckbutton = Checkbutton(checkBoxFrame, text="Use Custom Logic", variable=useCustomLogic) - - # createSpoilerCheckbutton.pack(expand=True, anchor=W) - # suppressRomCheckbutton.pack(expand=True, anchor=W) - # compressRomCheckbutton.pack(expand=True, anchor=W) - # openForestCheckbutton.pack(expand=True, anchor=W) - # openDoorCheckbutton.pack(expand=True, anchor=W) - # dungeonItemsCheckbutton.pack(expand=True, anchor=W) - # beatableOnlyCheckbutton.pack(expand=True, anchor=W) - # hintsCheckbutton.pack(expand=True, anchor=W) - # alwaysHintsCheckbutton.pack(expand=True, anchor=W) - # useCustomLogicCheckbutton.pack(expand=True, anchor=W) fileDialogFrame = Frame(rightHalfFrame) @@ -131,14 +98,57 @@ def RomSelect(): dropDownFrame = Frame(topFrame) + # radio list has a name, a list of options, and a default option + bridge_requirements_data = { + "name": "Rainbow Bridge Requirement", + "options": [ + { "value": "dungeons", "description": "All dungeons" }, + { "value": "medallions", "description": "All medallions" }, + { "value": "vanilla", "description": "Vanilla requirements" }, + { "value": "open", "description": "Always open" }, + ], + "default": "medallions", + "wraplength": 180, + } + hint_options_data = { + "name": "Gossip Stones", + "options": [ + { "value": "none", "description": "Default Behavior" }, + { "value": "mask", "description": "Have useful hints; read with the Mask of Truth" }, + { "value": "agony", "description": "Have useful hints; read with Stone of Agony" }, + { "value": "always", "description": "Have useful hints; can always be read" }, + ], + "default": "always", + "wraplength": 140, + } - bridgeFrame = Frame(dropDownFrame) - bridgeVar = StringVar() - bridgeVar.set('medallions') - bridgeOptionMenu = OptionMenu(bridgeFrame, bridgeVar, 'medallions', 'vanilla', 'dungeons', 'open') - bridgeOptionMenu.pack(side=RIGHT) - bridgeLabel = Label(bridgeFrame, text='Rainbow Bridge Requirement') - bridgeLabel.pack(side=LEFT) + # adds a LabelFrame containing a list of radio buttons based on the given data + # returns the label_frame, and a variable associated with it + def MakeRadioList(parent, data): + # create a frame to hold the radio buttons + lable_frame = LabelFrame(parent, text=data["name"], labelanchor=NW) + # create a variable to hold the result of the user's decision + radio_var = StringVar(value=data["default"]); + # add the radio buttons + for option in data["options"]: + radio_button = Radiobutton(lable_frame, text=option["description"], value=option["value"], variable=radio_var, + justify=LEFT, wraplength=data["wraplength"]) + radio_button.pack(side=TOP, anchor=W) + # return the frame so it can be packed, and the var so it can be used + return (lable_frame, radio_var) + + (bridgeFrame, bridgeVar) = MakeRadioList(dropDownFrame, bridge_requirements_data) + (hintsFrame, hintsVar) = MakeRadioList(dropDownFrame, hint_options_data) + #bridgeFrame.pack(side=TOP, anchor=E) + + + # bridgeFrame = Frame(dropDownFrame) + # bridgeVar = StringVar() + # bridgeVar.set('medallions') + # bridgeOptionMenu = OptionMenu(bridgeFrame, bridgeVar, 'medallions', 'vanilla', 'dungeons', 'open') + # bridgeOptionMenu.pack(side=RIGHT) + # bridgeLabel = Label(bridgeFrame, text='Rainbow Bridge Requirement') + # bridgeLabel.pack(side=LEFT) colorVars = [] colorVars.append(StringVar()) @@ -176,6 +186,7 @@ def RomSelect(): lowHealthSFXLabel.pack(side=LEFT) bridgeFrame.pack(expand=True, anchor=E) + hintsFrame.pack(expand=True, anchor=E) kokiriFrame.pack(expand=True, anchor=E) goronFrame.pack(expand=True, anchor=E) zoraFrame.pack(expand=True, anchor=E) @@ -206,8 +217,7 @@ def generateRom(): guiargs.open_door_of_time = bool(checkboxVars["open_door_of_time"].get()) guiargs.nodungeonitems = bool(checkboxVars["nodungeonitems"].get()) guiargs.beatableonly = bool(checkboxVars["beatableonly"].get()) - guiargs.hints = bool(checkboxVars["hints"].get()) - guiargs.always_hints = bool(checkboxVars["always_hints"].get()) + guiargs.hints = hintsVar.get() guiargs.custom_logic = bool(checkboxVars["custom_logic"].get()) guiargs.rom = romVar.get() try: @@ -247,9 +257,8 @@ def generateRom(): checkboxVars["open_door_of_time"].set(int(args.open_door_of_time)) checkboxVars["nodungeonitems"].set(int(args.nodungeonitems)) checkboxVars["beatableonly"].set(int(args.beatableonly)) - checkboxVars["hints"].set(int(args.hints)) - checkboxVars["always_hints"].set(int(args.always_hints)) checkboxVars["custom_logic"].set(int(args.custom_logic)) + hintsVar.set(args.hints) if args.count: countVar.set(str(args.count)) if args.seed: diff --git a/Main.py b/Main.py index 5bab6d6fd..5a61cba99 100644 --- a/Main.py +++ b/Main.py @@ -17,13 +17,13 @@ from ItemList import generate_itempool from Utils import output_path -__version__ = '1.0.0' +__version__ = '1.0.0 f.LUM' def main(args, seed=None): start = time.clock() # initialize the world - world = World(args.bridge, args.open_forest, args.open_door_of_time, not args.nodungeonitems, args.beatableonly, args.hints, args.always_hints, [args.kokiricolor, args.goroncolor, args.zoracolor], args.healthSFX, args.custom_logic) + world = World(args.bridge, args.open_forest, args.open_door_of_time, not args.nodungeonitems, args.beatableonly, args.hints, [args.kokiricolor, args.goroncolor, args.zoracolor], args.healthSFX, args.custom_logic) logger = logging.getLogger('') if seed is None: random.seed(None) @@ -94,7 +94,7 @@ def main(args, seed=None): def copy_world(world): # ToDo: Not good yet - ret = World(world.bridge, world.open_forest, world.open_door_of_time, world.place_dungeon_items, world.check_beatable_only, world.hints, world.always_hints, world.colors, world.healthSFX, world.custom_logic) + ret = World(world.bridge, world.open_forest, world.open_door_of_time, world.place_dungeon_items, world.check_beatable_only, world.hints, world.colors, world.healthSFX, world.custom_logic) ret.seed = world.seed ret.can_take_damage = world.can_take_damage create_regions(ret) diff --git a/OoTRandomizer.py b/OoTRandomizer.py index 3a0ace5e6..ecfa664ff 100644 --- a/OoTRandomizer.py +++ b/OoTRandomizer.py @@ -54,29 +54,29 @@ def start(): ensure all locations are reachable. This only has an effect on the restrictive algorithm currently. ''', action='store_true') - parser.add_argument('--hints', help='''\ - Gossip Stones provide helpful hints about which items are - in inconvenient locations if the Stone of Agony is in - the player's inventory. - ''', action='store_true') - parser.add_argument('--always_hints', help='''\ - Gossip Stones can be read any time. - ''', action='store_true') - parser.add_argument('--kokiricolor', default='Kokiri Green', const='medallions', nargs='?', choices=['Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Purple', 'Yellow', 'Orange', 'Pink', 'Gray', 'Brown', 'Gold', 'Silver', 'Beige', 'Teal', 'Royal Blue', 'Sonic Blue', 'Blood Red', 'Blood Orange', 'NES Green', 'Dark Green', 'Random', 'True Random'], + parser.add_argument('--hints', default='none', const='always', nargs='?', choices=['none', 'mask', 'agony', 'always'], + help='''\ + Choose how Gossip Stones behave + none: Default behavior + mask: Have useful hints that are read with the Mask of Truth (untested) + agony: Have useful hints that are read with Stone of Agony + always: Have useful hints which can always be read + ''') + parser.add_argument('--kokiricolor', default='Kokiri Green', const='Kokiri Green', nargs='?', choices=['Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Purple', 'Yellow', 'Orange', 'Pink', 'Gray', 'Brown', 'Gold', 'Silver', 'Beige', 'Teal', 'Royal Blue', 'Sonic Blue', 'Blood Red', 'Blood Orange', 'NES Green', 'Dark Green', 'Random', 'True Random'], help='''\ Choose the color for Link's Kokiri Tunic. (default: %(default)s) Color: Make the Kokiri Tunic this color. Random: Choose a random color from this list of colors. True Random: Choose a random color from any color the N64 can draw. ''') - parser.add_argument('--goroncolor', default='Goron Red', const='medallions', nargs='?', choices=['Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Purple', 'Yellow', 'Orange', 'Pink', 'Gray', 'Brown', 'Gold', 'Silver', 'Beige', 'Teal', 'Royal Blue', 'Sonic Blue', 'Blood Red', 'Blood Orange', 'NES Green', 'Dark Green', 'Random', 'True Random'], + parser.add_argument('--goroncolor', default='Goron Red', const='Goron Red', nargs='?', choices=['Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Purple', 'Yellow', 'Orange', 'Pink', 'Gray', 'Brown', 'Gold', 'Silver', 'Beige', 'Teal', 'Royal Blue', 'Sonic Blue', 'Blood Red', 'Blood Orange', 'NES Green', 'Dark Green', 'Random', 'True Random'], help='''\ Choose the color for Link's Goron Tunic. (default: %(default)s) Color: Make the Goron Tunic this color. Random: Choose a random color from this list of colors. True Random: Choose a random color from any color the N64 can draw. ''') - parser.add_argument('--zoracolor', default='Zora Blue', const='medallions', nargs='?', choices=['Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Purple', 'Yellow', 'Orange', 'Pink', 'Gray', 'Brown', 'Gold', 'Silver', 'Beige', 'Teal', 'Royal Blue', 'Sonic Blue', 'Blood Red', 'Blood Orange', 'NES Green', 'Dark Green', 'Random', 'True Random'], + parser.add_argument('--zoracolor', default='Zora Blue', const='Zora Blue', nargs='?', choices=['Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Purple', 'Yellow', 'Orange', 'Pink', 'Gray', 'Brown', 'Gold', 'Silver', 'Beige', 'Teal', 'Royal Blue', 'Sonic Blue', 'Blood Red', 'Blood Orange', 'NES Green', 'Dark Green', 'Random', 'True Random'], help='''\ Choose the color for Link's Zora Tunic. (default: %(default)s) Color: Make the Zora Tunic this color. diff --git a/Rom.py b/Rom.py index 93d0a56be..8d5cf34e7 100644 --- a/Rom.py +++ b/Rom.py @@ -861,7 +861,7 @@ def patch_rom(world, rom): Block_code = [0x3C, 0x01, 0x80, 0x12, 0x80, 0x21, 0xA6, 0x75, 0x30, 0x21, 0x00, 0x20, 0x03, 0xE0, 0x00, 0x08] # Gossip stones always respond - if(world.always_hints): + if(world.hints == 'always'): Block_code = [0x24, 0x01, 0x00, 0x20, 0x03, 0xE0, 0x00, 0x08] rom.write_bytes(0x3480840, Block_code) @@ -885,9 +885,10 @@ def patch_rom(world, rom): rom.write_bytes(0x34806BC, [0x34, 0xA5, 0x00, 0x08]) # Sets hooks for gossip stone changes - if world.hints: - rom.write_bytes(0xEE7B84, [0x0C, 0x10, 0x02, 0x10]) - rom.write_bytes(0xEE7B8C, [0x24, 0x02, 0x00, 0x20]) + if world.hints != 'none': + if world.hints != 'mask': + rom.write_bytes(0xEE7B84, [0x0C, 0x10, 0x02, 0x10]) + rom.write_bytes(0xEE7B8C, [0x24, 0x02, 0x00, 0x20]) address = 0xB85B11 offset = 0xBE4C for i in range(0,33): From 64772277f59c68bcbe6ec8ed662b8c44098a0533 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Fri, 15 Jun 2018 12:10:55 -0500 Subject: [PATCH 028/755] Heavily refactored most of the GUI code and layout. --- Gui.py | 294 +++++++++++++++++++++++------------------------ OoTRandomizer.py | 7 +- Rom.py | 33 +++++- 3 files changed, 181 insertions(+), 153 deletions(-) diff --git a/Gui.py b/Gui.py index 5d7225cbd..8fe8e43d4 100644 --- a/Gui.py +++ b/Gui.py @@ -12,7 +12,7 @@ from GuiUtils import ToolTips, set_icon, BackgroundTaskProgress from Main import main, __version__ as ESVersion from Utils import is_bundled, local_path, output_path, open_file - +from Rom import get_tunic_color_options def guiMain(args=None): mainWindow = Tk() @@ -44,38 +44,133 @@ def open_readme(): farTopFrame.pack(side=TOP, fill=X, padx=5, pady=2) notebook.pack(padx=5, pady=5) - # randomizer controls + # adds a LabelFrame containing a list of radio buttons based on the given data + # returns the label_frame, and a variable associated with it + def MakeRadioList(parent, data): + # create a frame to hold the radio buttons + lable_frame = LabelFrame(parent, text=data["name"], labelanchor=NW) + # create a variable to hold the result of the user's decision + radio_var = StringVar(value=data["default"]); + # add the radio buttons + for option in data["options"]: + radio_button = Radiobutton(lable_frame, text=option["description"], value=option["value"], variable=radio_var, + justify=LEFT, wraplength=data["wraplength"]) + radio_button.pack(side=TOP, anchor=W) + # return the frame so it can be packed, and the var so it can be used + return (lable_frame, radio_var) - topFrame = Frame(randomizerWindow) - rightHalfFrame = Frame(topFrame) - checkBoxFrame = Frame(rightHalfFrame) + ####################### + # randomizer controls # + ####################### - # refactoring repeated code for checkboxes... + # data + ######## + + # checkboxes information checkboxInfo = { "create_spoiler": { "text": "Create Spoiler Log", "group": "output", "default": "checked" }, "suppress_rom": { "text": "Do not create patched Rom", "group": "output", "default": "unchecked" }, "compress_rom": { "text": "Compress patched Rom", "group": "output", "default": "checked" }, - "open_forest": { "text": "Open Forest", "group": "output", "default": "checked" }, - "open_door_of_time": { "text": "Open Door of Time", "group": "output", "default": "checked" }, - "nodungeonitems": { "text": "Remove Maps and Compasses", "group": "output", "default": "checked" }, - "beatableonly": { "text": "Only ensure seed is beatable", "group": "output", "default": "checked" }, - "custom_logic": { "text": "Use this fork's custom logic", "group": "output", "default": "checked" }, + "open_forest": { "text": "Open Forest", "group": "logic", "default": "checked" }, + "open_door_of_time": { "text": "Open Door of Time", "group": "logic", "default": "checked" }, + "nodungeonitems": { "text": "Remove Maps and Compasses", "group": "logic", "default": "checked" }, + "beatableonly": { "text": "Only ensure seed is beatable", "group": "logic", "default": "checked" }, + "custom_logic": { "text": "Use this fork's custom logic", "group": "logic", "default": "checked" }, + } + # radio list has a name, a list of options, and a default option + bridge_requirements_data = { + "name": "Rainbow Bridge Requirement", + "options": [ + { "value": "dungeons", "description": "All dungeons" }, + { "value": "medallions", "description": "All medallions" }, + { "value": "vanilla", "description": "Vanilla requirements" }, + { "value": "open", "description": "Always open" }, + ], + "default": "medallions", + "wraplength": 180, } + hint_options_data = { + "name": "Gossip Stones", + "options": [ + { "value": "none", "description": "Default Behavior" }, + { "value": "mask", "description": "Have useful hints; read with the Mask of Truth" }, + { "value": "agony", "description": "Have useful hints; read with Stone of Agony" }, + { "value": "always", "description": "Have useful hints; can always be read" }, + ], + "default": "always", + "wraplength": 140, + } + # dropdown info + color_options = get_tunic_color_options() + dropdownInfo = { + "kokiricolor": { "name": "Kokiri Tunic Color", "default": "Kokiri Green", "options": color_options }, + "goroncolor": { "name": "Goron Tunic Color", "default": "Goron Red", "options": color_options }, + "zoracolor": { "name": "Zora Tunic Color", "default": "Zora Blue", "options": color_options }, + "healthSFX": { "name": "Low Health SFX", "default": "Default", "options": ['Default', 'Softer Beep', 'Rupee', 'Timer', 'Tamborine', 'Recovery Heart', 'Carrot Refill', 'Navi - Hey!', 'Zelda - Gasp', 'Cluck', 'Mweep!', 'Random', 'None'] }, + } + + # hold the results of the user's decisions here + resultVars = {} + + # hierarchy + ############ + + checkAndRadioFrame = Frame(randomizerWindow) + if True: # just indenting for hierarchy clarity + outputOptionsFrame = LabelFrame(checkAndRadioFrame, text='Output', labelanchor=NW) + logicOptionsFrame = LabelFrame(checkAndRadioFrame, text='Logic', labelanchor=NW) + (rainbowBridgeFrame, resultVars['bridge']) = MakeRadioList(checkAndRadioFrame, bridge_requirements_data) + (hintsFrame, resultVars['hints']) = MakeRadioList(checkAndRadioFrame, hint_options_data) + + aestheticFrame = LabelFrame(randomizerWindow, text='Aesthetic', labelanchor=NW) + + generateSeedFrame = Frame(randomizerWindow) + + # build gui + ############ # create the checkboxes checkboxes = {} # this isn't used later currently, but I'm holding on to the pointers in case it matters later on - checkboxVars = {} for var_name, info in checkboxInfo.items(): # determine the initial value of the checkbox default_value = 1 if info["default"] == "checked" else 0 # create a variable to access the box's state - checkboxVars[var_name] = IntVar(value=default_value) + resultVars[var_name] = IntVar(value=default_value) # create the checkbox - checkboxes[var_name] = Checkbutton(checkBoxFrame, text=info["text"], variable=checkboxVars[var_name]) + parent = { 'output': outputOptionsFrame, 'logic': logicOptionsFrame }[info["group"]] # sorry, this is gross; I was reaching my limit + checkboxes[var_name] = Checkbutton(parent, text=info["text"], variable=resultVars[var_name]) checkboxes[var_name].pack(expand=True, anchor=W) + # create the dropdowns + dropdownFrames = {} + for var_name, info in dropdownInfo.items(): + # create the variable to store the user's decision + resultVars[var_name] = StringVar(value=info['default']) + # create the option menu + dropdownFrames[var_name] = Frame(aestheticFrame) + dropdown = OptionMenu(dropdownFrames[var_name], resultVars[var_name], *(info['options'])) + dropdown.pack(side=BOTTOM, anchor=E) + # label the option + label = Label(dropdownFrames[var_name], text=info['name'], width=18) + label.pack(side=TOP, anchor=NW) + # pack the frame + dropdownFrames[var_name].pack(expand=True, side=LEFT, anchor=N) - fileDialogFrame = Frame(rightHalfFrame) + # pack the hierarchy + outputOptionsFrame.pack(expand=True, anchor=N, side=LEFT, padx=5) + logicOptionsFrame.pack(expand=True, anchor=N, side=LEFT, padx=5) + rainbowBridgeFrame.pack(expand=True, anchor=N, side=LEFT, padx=5) + hintsFrame.pack(expand=True, anchor=N, side=LEFT, padx=5) + + checkAndRadioFrame.pack(side=TOP, anchor=N) + + aestheticFrame.pack(anchor=W, padx=5) + + + + # didn't refactor the rest, sorry + + fileDialogFrame = Frame(generateSeedFrame) romDialogFrame = Frame(fileDialogFrame) baseRomLabel = Label(romDialogFrame, text='Base Rom') @@ -93,132 +188,34 @@ def RomSelect(): romDialogFrame.pack() - checkBoxFrame.pack() - fileDialogFrame.pack() + fileDialogFrame.pack(side=LEFT, padx=5) - dropDownFrame = Frame(topFrame) - - # radio list has a name, a list of options, and a default option - bridge_requirements_data = { - "name": "Rainbow Bridge Requirement", - "options": [ - { "value": "dungeons", "description": "All dungeons" }, - { "value": "medallions", "description": "All medallions" }, - { "value": "vanilla", "description": "Vanilla requirements" }, - { "value": "open", "description": "Always open" }, - ], - "default": "medallions", - "wraplength": 180, - } - hint_options_data = { - "name": "Gossip Stones", - "options": [ - { "value": "none", "description": "Default Behavior" }, - { "value": "mask", "description": "Have useful hints; read with the Mask of Truth" }, - { "value": "agony", "description": "Have useful hints; read with Stone of Agony" }, - { "value": "always", "description": "Have useful hints; can always be read" }, - ], - "default": "always", - "wraplength": 140, - } - - # adds a LabelFrame containing a list of radio buttons based on the given data - # returns the label_frame, and a variable associated with it - def MakeRadioList(parent, data): - # create a frame to hold the radio buttons - lable_frame = LabelFrame(parent, text=data["name"], labelanchor=NW) - # create a variable to hold the result of the user's decision - radio_var = StringVar(value=data["default"]); - # add the radio buttons - for option in data["options"]: - radio_button = Radiobutton(lable_frame, text=option["description"], value=option["value"], variable=radio_var, - justify=LEFT, wraplength=data["wraplength"]) - radio_button.pack(side=TOP, anchor=W) - # return the frame so it can be packed, and the var so it can be used - return (lable_frame, radio_var) - (bridgeFrame, bridgeVar) = MakeRadioList(dropDownFrame, bridge_requirements_data) - (hintsFrame, hintsVar) = MakeRadioList(dropDownFrame, hint_options_data) - #bridgeFrame.pack(side=TOP, anchor=E) - - - # bridgeFrame = Frame(dropDownFrame) - # bridgeVar = StringVar() - # bridgeVar.set('medallions') - # bridgeOptionMenu = OptionMenu(bridgeFrame, bridgeVar, 'medallions', 'vanilla', 'dungeons', 'open') - # bridgeOptionMenu.pack(side=RIGHT) - # bridgeLabel = Label(bridgeFrame, text='Rainbow Bridge Requirement') - # bridgeLabel.pack(side=LEFT) - - colorVars = [] - colorVars.append(StringVar()) - colorVars.append(StringVar()) - colorVars.append(StringVar()) - colorVars[0].set('Kokiri Green') - colorVars[1].set('Goron Red') - colorVars[2].set('Zora Blue') - - kokiriFrame = Frame(dropDownFrame) - kokiriOptionMenu = OptionMenu(kokiriFrame, colorVars[0], 'Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Purple', 'Yellow', 'Orange', 'Pink', 'Gray', 'Brown', 'Gold', 'Silver', 'Beige', 'Teal', 'Royal Blue', 'Sonic Blue', 'Blood Red', 'Blood Orange', 'NES Green', 'Dark Green', 'Only', 'Random', 'True Random') - kokiriOptionMenu.pack(side=RIGHT) - kokiriLabel = Label(kokiriFrame, text='Kokiri Tunic Color') - kokiriLabel.pack(side=LEFT) - - goronFrame = Frame(dropDownFrame) - goronOptionMenu = OptionMenu(goronFrame, colorVars[1], 'Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Purple', 'Yellow', 'Orange', 'Pink', 'Gray', 'Brown', 'Gold', 'Silver', 'Beige', 'Teal', 'Royal Blue', 'Sonic Blue', 'Blood Red', 'Blood Orange', 'NES Green', 'Dark Green', 'Only', 'Random', 'True Random') - goronOptionMenu.pack(side=RIGHT) - goronLabel = Label(goronFrame, text='Goron Tunic Color') - goronLabel.pack(side=LEFT) - - zoraFrame = Frame(dropDownFrame) - zoraOptionMenu = OptionMenu(zoraFrame, colorVars[2], 'Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Purple', 'Yellow', 'Orange', 'Pink', 'Gray', 'Brown', 'Gold', 'Silver', 'Beige', 'Teal', 'Royal Blue', 'Sonic Blue', 'Blood Red', 'Blood Orange', 'NES Green', 'Dark Green', 'Only', 'Random', 'True Random') - zoraOptionMenu.pack(side=RIGHT) - zoraLabel = Label(zoraFrame, text='Zora Tunic Color') - zoraLabel.pack(side=LEFT) - - lowHealthSFXVar = StringVar() - lowHealthSFXVar.set('Default') - - lowHealthSFXFrame = Frame(dropDownFrame) - lowHealthSFXOptionMenu = OptionMenu(lowHealthSFXFrame, lowHealthSFXVar, 'Default', 'Softer Beep', 'Rupee', 'Timer', 'Tamborine', 'Recovery Heart', 'Carrot Refill', 'Navi - Hey!', 'Zelda - Gasp', 'Cluck', 'Mweep!', 'Random', 'None') - lowHealthSFXOptionMenu.pack(side=RIGHT) - lowHealthSFXLabel = Label(lowHealthSFXFrame, text='Low Health SFX') - lowHealthSFXLabel.pack(side=LEFT) - - bridgeFrame.pack(expand=True, anchor=E) - hintsFrame.pack(expand=True, anchor=E) - kokiriFrame.pack(expand=True, anchor=E) - goronFrame.pack(expand=True, anchor=E) - zoraFrame.pack(expand=True, anchor=E) - lowHealthSFXFrame.pack(expand=True, anchor=E) - - bottomFrame = Frame(randomizerWindow) - - seedLabel = Label(bottomFrame, text='Seed #') + seedLabel = Label(generateSeedFrame, text='Seed #') seedVar = StringVar() - seedEntry = Entry(bottomFrame, textvariable=seedVar) - countLabel = Label(bottomFrame, text='Count') + seedEntry = Entry(generateSeedFrame, textvariable=seedVar) + countLabel = Label(generateSeedFrame, text='Count') countVar = StringVar() - countSpinbox = Spinbox(bottomFrame, from_=1, to=100, textvariable=countVar) + countSpinbox = Spinbox(generateSeedFrame, from_=1, to=100, textvariable=countVar) def generateRom(): guiargs = Namespace guiargs.seed = int(seedVar.get()) if seedVar.get() else None guiargs.count = int(countVar.get()) if countVar.get() != '1' else None - guiargs.bridge = bridgeVar.get() - guiargs.kokiricolor = colorVars[0].get() - guiargs.goroncolor = colorVars[1].get() - guiargs.zoracolor = colorVars[2].get() - guiargs.healthSFX = lowHealthSFXVar.get() - guiargs.create_spoiler = bool(checkboxVars["create_spoiler"].get()) - guiargs.suppress_rom = bool(checkboxVars["suppress_rom"].get()) - guiargs.compress_rom = bool(checkboxVars["compress_rom"].get()) - guiargs.open_forest = bool(checkboxVars["open_forest"].get()) - guiargs.open_door_of_time = bool(checkboxVars["open_door_of_time"].get()) - guiargs.nodungeonitems = bool(checkboxVars["nodungeonitems"].get()) - guiargs.beatableonly = bool(checkboxVars["beatableonly"].get()) - guiargs.hints = hintsVar.get() - guiargs.custom_logic = bool(checkboxVars["custom_logic"].get()) + guiargs.bridge = resultVars["bridge"].get() + guiargs.kokiricolor = resultVars["kokiricolor"].get() + guiargs.goroncolor = resultVars["goroncolor"].get() + guiargs.zoracolor = resultVars["zoracolor"].get() + guiargs.healthSFX = resultVars["healthSFX"].get() + guiargs.create_spoiler = bool(resultVars["create_spoiler"].get()) + guiargs.suppress_rom = bool(resultVars["suppress_rom"].get()) + guiargs.compress_rom = bool(resultVars["compress_rom"].get()) + guiargs.open_forest = bool(resultVars["open_forest"].get()) + guiargs.open_door_of_time = bool(resultVars["open_door_of_time"].get()) + guiargs.nodungeonitems = bool(resultVars["nodungeonitems"].get()) + guiargs.beatableonly = bool(resultVars["beatableonly"].get()) + guiargs.custom_logic = bool(resultVars["custom_logic"].get()) + guiargs.hints = resultVars["hints"].get() guiargs.rom = romVar.get() try: if guiargs.count is not None: @@ -233,7 +230,7 @@ def generateRom(): else: messagebox.showinfo(title="Success", message="Rom patched successfully") - generateButton = Button(bottomFrame, text='Generate Patched Rom', command=generateRom) + generateButton = Button(generateSeedFrame, text='Generate Patched Rom', command=generateRom) seedLabel.pack(side=LEFT) seedEntry.pack(side=LEFT) @@ -243,29 +240,28 @@ def generateRom(): openOutputButton.pack(side=RIGHT) - dropDownFrame.pack(side=LEFT) - rightHalfFrame.pack(side=RIGHT) - topFrame.pack(side=TOP) - bottomFrame.pack(side=BOTTOM) + generateSeedFrame.pack(side=BOTTOM, anchor=S, padx=5, pady=10) if args is not None: # load values from commandline args - checkboxVars["create_spoiler"].set(int(args.create_spoiler)) - checkboxVars["suppress_rom"].set(int(args.suppress_rom)) - checkboxVars["compress_rom"].set(int(args.compress_rom)) - checkboxVars["open_forest"].set(int(args.open_forest)) - checkboxVars["open_door_of_time"].set(int(args.open_door_of_time)) - checkboxVars["nodungeonitems"].set(int(args.nodungeonitems)) - checkboxVars["beatableonly"].set(int(args.beatableonly)) - checkboxVars["custom_logic"].set(int(args.custom_logic)) - hintsVar.set(args.hints) + resultVars["create_spoiler"].set(int(args.create_spoiler)) + resultVars["suppress_rom"].set(int(args.suppress_rom)) + resultVars["compress_rom"].set(int(args.compress_rom)) + resultVars["open_forest"].set(int(args.open_forest)) + resultVars["open_door_of_time"].set(int(args.open_door_of_time)) + resultVars["nodungeonitems"].set(int(args.nodungeonitems)) + resultVars["beatableonly"].set(int(args.beatableonly)) + resultVars["custom_logic"].set(int(args.custom_logic)) + resultVars["hints"].set(args.hints) if args.count: countVar.set(str(args.count)) if args.seed: seedVar.set(str(args.seed)) - bridgeVar.set(args.bridge) - colorVars.set([args.kokiricolor, args.goroncolor, args.zoracolor]) - lowHealthSFXVar.set(args.healthSFX) + resultVars["bridge"].set(args.bridge) + resultVars["kokiricolor"].set(args.kokiricolor) + resultVars["goroncolor"].set(args.goroncolor) + resultVars["zoracolor"].set(args.zoracolor) + resultVars["healthSFX"].set(args.healthSFX) romVar.set(args.rom) mainWindow.mainloop() diff --git a/OoTRandomizer.py b/OoTRandomizer.py index ecfa664ff..b5135e697 100644 --- a/OoTRandomizer.py +++ b/OoTRandomizer.py @@ -9,6 +9,7 @@ from Gui import guiMain from Main import main from Utils import is_bundled, close_console +from Rom import get_tunic_color_options class ArgumentDefaultsHelpFormatter(argparse.RawTextHelpFormatter): @@ -62,21 +63,21 @@ def start(): agony: Have useful hints that are read with Stone of Agony always: Have useful hints which can always be read ''') - parser.add_argument('--kokiricolor', default='Kokiri Green', const='Kokiri Green', nargs='?', choices=['Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Purple', 'Yellow', 'Orange', 'Pink', 'Gray', 'Brown', 'Gold', 'Silver', 'Beige', 'Teal', 'Royal Blue', 'Sonic Blue', 'Blood Red', 'Blood Orange', 'NES Green', 'Dark Green', 'Random', 'True Random'], + parser.add_argument('--kokiricolor', default='Kokiri Green', const='Kokiri Green', nargs='?', choices=get_tunic_color_options(), help='''\ Choose the color for Link's Kokiri Tunic. (default: %(default)s) Color: Make the Kokiri Tunic this color. Random: Choose a random color from this list of colors. True Random: Choose a random color from any color the N64 can draw. ''') - parser.add_argument('--goroncolor', default='Goron Red', const='Goron Red', nargs='?', choices=['Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Purple', 'Yellow', 'Orange', 'Pink', 'Gray', 'Brown', 'Gold', 'Silver', 'Beige', 'Teal', 'Royal Blue', 'Sonic Blue', 'Blood Red', 'Blood Orange', 'NES Green', 'Dark Green', 'Random', 'True Random'], + parser.add_argument('--goroncolor', default='Goron Red', const='Goron Red', nargs='?', choices=get_tunic_color_options(), help='''\ Choose the color for Link's Goron Tunic. (default: %(default)s) Color: Make the Goron Tunic this color. Random: Choose a random color from this list of colors. True Random: Choose a random color from any color the N64 can draw. ''') - parser.add_argument('--zoracolor', default='Zora Blue', const='Zora Blue', nargs='?', choices=['Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Purple', 'Yellow', 'Orange', 'Pink', 'Gray', 'Brown', 'Gold', 'Silver', 'Beige', 'Teal', 'Royal Blue', 'Sonic Blue', 'Blood Red', 'Blood Orange', 'NES Green', 'Dark Green', 'Random', 'True Random'], + parser.add_argument('--zoracolor', default='Zora Blue', const='Zora Blue', nargs='?', choices=get_tunic_color_options(), help='''\ Choose the color for Link's Zora Tunic. (default: %(default)s) Color: Make the Zora Tunic this color. diff --git a/Rom.py b/Rom.py index 8d5cf34e7..f20ca5c3e 100644 --- a/Rom.py +++ b/Rom.py @@ -12,6 +12,37 @@ from Items import ItemFactory, item_data from TextArray import text_array +TunicColors = { + "Kokiri Green": [0x1E, 0x69, 0x1B], + "Goron Red": [0x64, 0x14, 0x00], + "Zora Blue": [0x00, 0x3C, 0x64], + "Black": [0x30, 0x30, 0x30], + "White": [0xF0, 0xF0, 0xFF], + "Purple": [0x95, 0x30, 0x80], + "Yellow": [0xE0, 0xD8, 0x60], + "Orange": [0xE0, 0x79, 0x40], + "Pink": [0xFF, 0x90, 0xB3], + "Gray": [0xA0, 0xA0, 0xB0], + "Brown": [0x95, 0x59, 0x0A], + "Gold": [0xD8, 0xB0, 0x60], + "Silver": [0xD0, 0xF0, 0xFF], + "Beige": [0xC0, 0xA0, 0xA0], + "Teal": [0x30, 0xD0, 0xB0], + "Royal Blue": [0x40, 0x00, 0x90], + "Sonic Blue": [0x50, 0x90, 0xE0], + "Blood Red": [0x30, 0x10, 0x10], + "Blood Orange": [0xF0, 0x30, 0x30], + "NES Green": [0x00, 0xD0, 0x00], + "Dark Green": [0x00, 0x25, 0x18], + "Only": [50, 190, 200], +} + +def get_tunic_colors(): + return list(TunicColors.keys()) + +def get_tunic_color_options(): + return get_tunic_colors() + ["Random", "True Random"] + class LocalRom(object): def __init__(self, file, patch=True): @@ -1006,7 +1037,7 @@ def patch_rom(world, rom): Tunics.append(0x00B6DA38) # Kokiri Tunic Tunics.append(0x00B6DA3B) # Goron Tunic Tunics.append(0x00B6DA3E) # Zora Tunic - colorList = ['Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Purple', 'Yellow', 'Orange', 'Pink', 'Gray', 'Brown', 'Gold', 'Silver', 'Beige', 'Teal', 'Royal Blue', 'Sonic Blue', 'Blood Red', 'Blood Orange', 'NES Green', 'Dark Green', 'Only'] + colorList = get_tunic_colors() randomColors = random.choices(colorList, k=3) for i in range(len(Tunics)): From 9f1f58911b916aa580e69151088639807ac83a01 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Fri, 15 Jun 2018 19:59:14 -0400 Subject: [PATCH 029/755] Changed hints distribution, removed required item hints --- Hints.py | 48 +++++++++++------------------------------------- 1 file changed, 11 insertions(+), 37 deletions(-) diff --git a/Hints.py b/Hints.py index 93150e053..9c6d71083 100644 --- a/Hints.py +++ b/Hints.py @@ -10,28 +10,6 @@ from Items import ItemFactory from ItemList import eventlocations -requiredganonitems = [ - 'Bottle', - 'Bottle with Milk', - 'Bottle with Red Potion', - 'Bottle with Green Potion', - 'Bottle with Blue Potion', - 'Bottle with Fairy', - 'Bottle with Fish', - 'Bottle with Blue Fire', - 'Bottle with Bugs', - 'Bottle with Poe', - 'Hammer', - 'Goron Tunic', - 'Progressive Strength Upgrade', - 'Bomb Bag', - 'Progressive Hookshot', - 'Mirror Shield', - 'Magic Meter', - 'Bow', - 'Light Arrows', -] - gooditems = [ 'Bow', 'Progressive Hookshot', @@ -168,20 +146,16 @@ def buildGossipHints(world, rom): # get list of required items that are not events or needed for Ganon's Castle requiredItems = [(location, item) for _,sphere in world.spoiler.playthrough.items() for location,item in sphere.items() - if ItemFactory(item).type != 'Event' and not location in eventlocations and not item in requiredganonitems] + if ItemFactory(item).type != 'Event' and not location in eventlocations] # add required non-ganon items for hints (good hints) - for location,item in random.sample(requiredItems, random.randint(2,4)): - if random.choice([True, False]): - writeHintToRom(buildHintString(getHint(item).text + " will lead to the Triforce."),\ - stoneAddresses.pop(0), rom) + for location,item in random.sample(requiredItems, random.randint(3,4)): + if world.get_location(location).parent_region.dungeon: + writeHintToRom(buildHintString(getHint(world.get_location(location).parent_region.dungeon.name).text + \ + " is on the way of the hero."), stoneAddresses.pop(0), rom) else: - if world.get_location(location).parent_region.dungeon: - writeHintToRom(buildHintString(getHint(world.get_location(location).parent_region.dungeon.name).text + \ - " a Piece of the Triforce."), stoneAddresses.pop(0), rom) - else: - writeHintToRom(buildHintString(world.get_location(location).parent_region.name + " has a Piece of the Triforce."),\ - stoneAddresses.pop(0), rom) + writeHintToRom(buildHintString(world.get_location(location).parent_region.name + " is on the way of the hero."),\ + stoneAddresses.pop(0), rom) # Don't repeat hints checkedLocations = [] @@ -199,7 +173,7 @@ def buildGossipHints(world, rom): # Add good location hints sometimesLocations = getHintGroup('location') - for _ in range(0, random.randint(9,11) - len(alwaysLocations)): + for _ in range(0, random.randint(9,10) - len(alwaysLocations)): hint = random.choice(sometimesLocations) # Repick if location isn't new while hint.name in checkedLocations or hint.name in alwaysLocations: @@ -213,7 +187,7 @@ def buildGossipHints(world, rom): stoneAddresses.pop(0), rom) # add bad dungeon locations hints - for dungeon in random.sample(world.dungeons, random.randint(3,5)): + for dungeon in random.sample(world.dungeons, random.randint(3,4)): # Choose a randome dungeon location that is a non-dungeon item locationWorld = random.choice([location for region in dungeon.regions for location in world.get_region(region).locations if location.item.type != 'Event' and \ @@ -238,7 +212,7 @@ def buildGossipHints(world, rom): locationWorld.item.name != 'Gold Skulltulla Token' and \ not locationWorld.parent_region.dungeon and \ not locationWorld.name in checkedLocations] - for locationWorld in random.sample(overworldlocations, random.randint(4,6)): + for locationWorld in random.sample(overworldlocations, random.randint(3,4)): checkedLocations.append(locationWorld.name) writeHintToRom(buildHintString(getHint(getItemGenericName(locationWorld.item)).text + \ " can be found at " + locationWorld.parent_region.name + "."),\ @@ -249,7 +223,7 @@ def buildGossipHints(world, rom): gooditemlocations = [locationWorld for locationWorld in world.get_locations() if not locationWorld.name in checkedLocations and \ locationWorld.item.name in gooditems] - for locationWorld in random.sample(gooditemlocations, random.randint(1,3)): + for locationWorld in random.sample(gooditemlocations, random.randint(3,5)): checkedLocations.append(locationWorld.name) if locationWorld.parent_region.dungeon: writeHintToRom(buildHintString(getHint(locationWorld.parent_region.dungeon.name).text + \ From a7bebf3999c261532b6f130464afc45093816177 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Sat, 16 Jun 2018 11:17:38 -0500 Subject: [PATCH 030/755] Commiting an unsaved change. --- Rom.py | 59 ++++++++++------------------------------------------------ 1 file changed, 10 insertions(+), 49 deletions(-) diff --git a/Rom.py b/Rom.py index f20ca5c3e..3c0991107 100644 --- a/Rom.py +++ b/Rom.py @@ -1041,57 +1041,18 @@ def patch_rom(world, rom): randomColors = random.choices(colorList, k=3) for i in range(len(Tunics)): - if world.colors[i] == 'Random': - thisColor = randomColors[i] - else: - thisColor = world.colors[i] + # get the color option + thisColor = world.colors[i] + # handle true random randColor = [random.getrandbits(8), random.getrandbits(8), random.getrandbits(8)] - if thisColor == 'Kokiri Green': - color = [0x1E, 0x69, 0x1B] - elif thisColor == 'Goron Red': - color = [0x64, 0x14, 0x00] - elif thisColor == 'Zora Blue': - color = [0x00, 0x3C, 0x64] - elif thisColor == 'Black': - color = [0x30, 0x30, 0x30] - elif thisColor == 'White': - color = [0xF0, 0xF0, 0xFF] - elif thisColor == 'Purple': - color = [0x95, 0x30, 0x80] - elif thisColor == 'Yellow': - color = [0xE0, 0xD8, 0x60] - elif thisColor == 'Orange': - color = [0xE0, 0x79, 0x40] - elif thisColor == 'Pink': - color = [0xFF, 0x90, 0xB3] - elif thisColor == 'Gray': - color = [0xA0, 0xA0, 0xB0] - elif thisColor == 'Brown': - color = [0x95, 0x59, 0x0A] - elif thisColor == 'Gold': - color = [0xD8, 0xB0, 0x60] - elif thisColor == 'Silver': - color = [0xD0, 0xF0, 0xFF] - elif thisColor == 'Beige': - color = [0xC0, 0xA0, 0xA0] - elif thisColor == 'Teal': - color = [0x30, 0xD0, 0xB0] - elif thisColor == 'Royal Blue': - color = [0x40, 0x00, 0x90] - elif thisColor == 'Sonic Blue': - color = [0x50, 0x90, 0xE0] - elif thisColor == 'Blood Red': - color = [0x30, 0x10, 0x10] - elif thisColor == 'Blood Orange': - color = [0xF0, 0x30, 0x30] - elif thisColor == 'NES Green': - color = [0x00, 0xD0, 0x00] - elif thisColor == 'Dark Green': - color = [0x00, 0x25, 0x18] - elif thisColor == 'True Random': + if thisColor == 'True Random': color = randColor - elif thisColor == 'Only': - color = [50, 190, 200] + else: + # handle random + if world.colors[i] == 'Random': + thisColor = randomColors[i] + # grab the color from the list + color = TunicColors[thisColor] rom.write_bytes(Tunics[i], color) #Low health beep From a871417317ff37e98f897e9e953316ae883a71c8 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Sat, 16 Jun 2018 12:06:07 -0500 Subject: [PATCH 031/755] Implemented custom logic flag. --- HintList.py | 23 ++++++++-- Hints.py | 4 +- Rules.py | 127 +++++++++++++++++++++++++++++++++++++++------------- 3 files changed, 118 insertions(+), 36 deletions(-) diff --git a/HintList.py b/HintList.py index 8807b7ac9..bb46ef82b 100644 --- a/HintList.py +++ b/HintList.py @@ -20,11 +20,12 @@ def getHint(string): ret = Hint(hint, text, type) return ret -def getHintGroup(string): +def getHintGroup(string, shouldExclude=False): ret = [] for hint in hintTable: text, type = hintTable[hint] - if type == string: + if type == string and \ + not (shouldExclude and hint in hintExclusions): ret.append(Hint(hint, text, type)) return ret @@ -255,6 +256,20 @@ def getHintGroup(string): '2008': ("I've learned this spell,&it's really neat,&I'll keep it later&for your treat!", 'ganonLine'), '2009': ("Many tricks are up my sleeve,&to save yourself&you'd better leave!", 'ganonLine'), '2010': ("After what you did to&Koholint Island how can&you call me the bad guy?", 'ganonLine'), - '2011': ("Today let's begin down&'The Hero is Defeated' timeline.", 'ganonLine')} - + '2011': ("Today let's begin down&'The Hero is Defeated' timeline.", 'ganonLine'), +} +# exclusions from the list for custom logic +hintExclusions = [ + 'Deku Theater Skull Mask', + 'Deku Theater Mask of Truth', + 'Biggoron', + 'Child Fishing', + 'Adult Fishing', + '10 Gold Skulltulla Reward', + '20 Gold Skulltulla Reward', + '30 Gold Skulltulla Reward', + '40 Gold Skulltulla Reward', + '50 Gold Skulltulla Reward', + '10 Big Poes', +] \ No newline at end of file diff --git a/Hints.py b/Hints.py index 9c6d71083..ca5de23ce 100644 --- a/Hints.py +++ b/Hints.py @@ -161,7 +161,7 @@ def buildGossipHints(world, rom): checkedLocations = [] # Add required location hints - alwaysLocations = getHintGroup('alwaysLocation') + alwaysLocations = getHintGroup('alwaysLocation', world.custom_logic) for hint in alwaysLocations: for locationWorld in world.get_locations(): if hint.name == locationWorld.name: @@ -172,7 +172,7 @@ def buildGossipHints(world, rom): # Add good location hints - sometimesLocations = getHintGroup('location') + sometimesLocations = getHintGroup('location', world.custom_logic) for _ in range(0, random.randint(9,10) - len(alwaysLocations)): hint = random.choice(sometimesLocations) # Repick if location isn't new diff --git a/Rules.py b/Rules.py index dd376a5a4..0e4ebac66 100644 --- a/Rules.py +++ b/Rules.py @@ -63,31 +63,36 @@ def global_rules(world): set_rule(world.get_location('Skull Kid'), lambda state: state.has('Sarias Song')) set_rule(world.get_location('Ocarina Memory Game'), lambda state: state.has('Fairy Ocarina') or state.has('Ocarina of Time')) set_rule(world.get_location('Target in Woods'), lambda state: state.has('Slingshot')) - set_rule(world.get_location('Deku Theater Skull Mask'), lambda state: False) - set_rule(world.get_location('Deku Theater Mask of Truth'), lambda state: False) + set_rule(world.get_location('Deku Theater Skull Mask'), lambda state: state.has('Zeldas Letter')) + set_rule(world.get_location('Deku Theater Mask of Truth'), lambda state: state.has('Zeldas Letter') and state.has('Sarias Song') and state.has('Kokiri Emerald') and state.has('Goron Ruby') and state.has('Zora Sapphire') and state.guarantee_hint()) #Must befriend Skull Kid to sell Skull Mask, all stones to spawn running man. set_rule(world.get_location('Anju as Adult'), lambda state: state.is_adult()) + set_rule(world.get_location('Man on Roof'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) set_rule(world.get_location('Impa House Freestanding PoH'), lambda state: (state.has('Progressive Hookshot') and state.is_adult()) or state.has('Bomb Bag')) - set_rule(world.get_location('10 Gold Skulltulla Reward'), lambda state: False) - set_rule(world.get_location('20 Gold Skulltulla Reward'), lambda state: False) - set_rule(world.get_location('30 Gold Skulltulla Reward'), lambda state: False) - set_rule(world.get_location('40 Gold Skulltulla Reward'), lambda state: False) - set_rule(world.get_location('50 Gold Skulltulla Reward'), lambda state: False) + set_rule(world.get_location('10 Gold Skulltulla Reward'), lambda state: state.has('Gold Skulltulla Token', 10)) + set_rule(world.get_location('20 Gold Skulltulla Reward'), lambda state: state.has('Gold Skulltulla Token', 20)) + set_rule(world.get_location('30 Gold Skulltulla Reward'), lambda state: state.has('Gold Skulltulla Token', 30) and state.guarantee_hint()) + set_rule(world.get_location('40 Gold Skulltulla Reward'), lambda state: state.has('Gold Skulltulla Token', 40) and state.guarantee_hint()) + set_rule(world.get_location('50 Gold Skulltulla Reward'), lambda state: state.has('Gold Skulltulla Token', 50) and state.guarantee_hint()) set_rule(world.get_location('Heart Piece Grave Chest'), lambda state: state.has('Suns Song')) set_rule(world.get_entrance('Composer Grave'), lambda state: state.has('Zeldas Lullaby')) set_rule(world.get_location('Composer Grave Chest'), lambda state: state.has_fire_source()) set_rule(world.get_entrance('Bottom of the Well'), lambda state: state.has('Song of Storms')) + set_rule(world.get_location('Bottom of the Well Front Left Hidden Wall'), lambda state: state.has('Lens of Truth') and state.has('Magic Meter')) set_rule(world.get_location('Bottom of the Well Front Center Bombable'), lambda state: state.has('Bomb Bag')) + set_rule(world.get_location('Bottom of the Well Right Bottom Hidden Wall'), lambda state: state.has('Lens of Truth') and state.has('Magic Meter')) + set_rule(world.get_location('Bottom of the Well Center Large Chest'), lambda state: state.has('Lens of Truth') and state.has('Magic Meter')) + set_rule(world.get_location('Bottom of the Well Center Small Chest'), lambda state: state.has('Lens of Truth') and state.has('Magic Meter')) set_rule(world.get_location('Bottom of the Well Back Left Bombable'), lambda state: state.has('Bomb Bag')) - set_rule(world.get_location('Bottom of the Well Defeat Boss'), lambda state: state.has('Zeldas Lullaby')) #Sword not strictly necessary but frankly being forced to do this with sticks isn't fair - set_rule(world.get_location('Bottom of the Well Invisible Chest'), lambda state: state.has('Zeldas Lullaby')) + set_rule(world.get_location('Bottom of the Well Defeat Boss'), lambda state: state.has('Zeldas Lullaby') and state.has('Kokiri Sword')) #Sword not strictly necessary but frankly being forced to do this with sticks isn't fair + set_rule(world.get_location('Bottom of the Well Invisible Chest'), lambda state: state.has('Zeldas Lullaby') and state.has('Lens of Truth') and state.has('Magic Meter')) set_rule(world.get_location('Bottom of the Well Underwater Front Chest'), lambda state: state.has('Zeldas Lullaby')) set_rule(world.get_location('Bottom of the Well Underwater Left Chest'), lambda state: state.has('Zeldas Lullaby')) set_rule(world.get_location('Bottom of the Well Basement Chest'), lambda state: state.has('Bomb Bag')) - set_rule(world.get_location('Bottom of the Well Locked Pits'), lambda state: state.has('Small Key (Bottom of the Well)', 3)) #These pits are really unfair. - set_rule(world.get_location('Bottom of the Well Behind Right Grate'), lambda state: state.has('Small Key (Bottom of the Well)', 3)) + set_rule(world.get_location('Bottom of the Well Locked Pits'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Lens of Truth') and state.has('Magic Meter')) #These pits are really unfair. + set_rule(world.get_location('Bottom of the Well Behind Right Grate'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Lens of Truth') and state.has('Magic Meter')) set_rule(world.get_entrance('Death Mountain Entrance'), lambda state: state.has('Zeldas Letter') or state.is_adult()) set_rule(world.get_location('Death Mountain Bombable Chest'), lambda state: state.can_blast()) - set_rule(world.get_location('Biggoron'), lambda state: False) + set_rule(world.get_location('Biggoron'), lambda state: state.can_blast() and state.is_adult() and state.can_finish_adult_trades() and state.guarantee_hint()) set_rule(world.get_location('Goron City Leftmost Maze Chest'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade', 2) or state.has('Hammer'))) set_rule(world.get_location('Goron City Left Maze Chest'), lambda state: state.can_blast() or (state.has('Progressive Strength Upgrade', 2) and state.is_adult())) set_rule(world.get_location('Goron City Right Maze Chest'), lambda state: state.can_blast() or (state.has('Progressive Strength Upgrade', 2) and state.is_adult())) @@ -99,8 +104,8 @@ def global_rules(world): set_rule(world.get_entrance('Dodongos Cavern Rocks'), lambda state: state.can_blast() or state.has('Progressive Strength Upgrade') or state.is_adult()) set_rule(world.get_entrance('Dodongos Cavern Lobby'), lambda state: state.can_blast() or state.has('Progressive Strength Upgrade')) set_rule(world.get_entrance('Dodongos Cavern Left Door'), lambda state: state.has('Bomb Bag') or state.has('Progressive Strength Upgrade') or (state.has('Dins Fire') and state.has('Magic Meter'))) - set_rule(world.get_entrance('Dodongos Cavern Slingshot Target'), lambda state: state.has('Slingshot') or state.is_adult()) - set_rule(world.get_location('Dodongos Cavern End of Bridge Chest'), lambda state: state.has('Bomb Bag') or (state.is_adult() and state.has('Hammer'))) + set_rule(world.get_entrance('Dodongos Cavern Slingshot Target'), lambda state: state.has('Slingshot') or ((state.has('Bow') or state.has('Hover Boots')) and state.is_adult())) + set_rule(world.get_location('Dodongos Cavern End of Bridge Chest'), lambda state: state.has('Bomb Bag') or ((state.has('Bow') or state.has('Hover Boots')) and state.is_adult() and state.has('Hammer'))) set_rule(world.get_entrance('Dodongos Cavern Bomb Drop'), lambda state: state.has('Bomb Bag')) set_rule(world.get_location('Song from Saria'), lambda state: state.has('Zeldas Letter')) set_rule(world.get_entrance('Mountain Summit Fairy'), lambda state: state.can_blast()) @@ -115,7 +120,7 @@ def global_rules(world): set_rule(world.get_location('Bombchu Bowling Bomb Bag'), lambda state: state.has('Bomb Bag')) set_rule(world.get_location('Bombchu Bowling Piece of Heart'), lambda state: state.has('Bomb Bag')) set_rule(world.get_location('Adult Shooting Gallery'), lambda state: state.has('Bow') and state.is_adult()) - set_rule(world.get_location('10 Big Poes'), lambda state: False) + set_rule(world.get_location('10 Big Poes'), lambda state: state.has('Bow') and state.has('Epona') and state.has_bottle() and state.is_adult() and state.guarantee_hint()) set_rule(world.get_location('Treasure Chest Game'), lambda state: state.has('Lens of Truth') and state.has('Magic Meter')) set_rule(world.get_entrance('Lost Woods Dive Warp'), lambda state: state.can_dive() and (world.open_forest or (state.has('Slingshot') and state.has('Kokiri Sword')))) set_rule(world.get_entrance('Zora River Dive Warp'), lambda state: state.can_dive()) @@ -174,8 +179,8 @@ def global_rules(world): set_rule(world.get_entrance('Temple Warp Pad'), lambda state: state.has('Prelude of Light')) set_rule(world.get_location('Sheik at Temple'), lambda state: state.has('Forest Medallion') and state.is_adult()) set_rule(world.get_location('Diving in the Lab'), lambda state: state.has('Progressive Scale', 2)) - set_rule(world.get_location('Child Fishing'), lambda state: False) - set_rule(world.get_location('Adult Fishing'), lambda state: False) + set_rule(world.get_location('Child Fishing'), lambda state: state.has('Kokiri Sword')) + set_rule(world.get_location('Adult Fishing'), lambda state: state.is_adult() and (state.has('Progressive Hookshot') or state.has('Magic Bean'))) set_rule(world.get_location('Lake Hylia Freestanding PoH'), lambda state: state.is_adult() and (state.has('Progressive Hookshot') or state.has('Magic Bean'))) set_rule(world.get_location('Lake Hylia Sun'), lambda state: state.has('Progressive Hookshot', 2) and state.has('Bow') and state.is_adult()) set_rule(world.get_entrance('Crater Hover Boots'), lambda state: state.is_adult() and state.has('Hover Boots')) @@ -207,7 +212,7 @@ def global_rules(world): set_rule(world.get_entrance('Crater Access'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade') or state.has('Bomb Bag'))) set_rule(world.get_entrance('Lake Warp Pad'), lambda state: state.has('Serenade of Water')) set_rule(world.get_location('King Zora Thawed'), lambda state: state.has_bottle() and (state.can_reach('Ice Cavern') or state.can_reach('Ganons Castle Water Trial') or state.has('Progressive Wallet', 2))) - set_rule(world.get_location('Zoras Fountain Bottom Freestanding PoH'), lambda state: state.has('Iron Boots') and state.has('Zora Tunic')) + set_rule(world.get_location('Zoras Fountain Bottom Freestanding PoH'), lambda state: state.has('Iron Boots')) set_rule(world.get_entrance('Water Temple Entrance'), lambda state: state.is_adult() and (state.has('Zora Tunic') or (state.has('Progressive Wallet', 2) and state.has_bottle() and state.has('Zeldas Lullaby'))) and state.has('Iron Boots') and state.has('Progressive Hookshot')) set_rule(world.get_entrance('Water Temple Central Pillar'), lambda state: (state.has('Bow') or (state.has('Dins Fire') and state.has('Magic Meter')) or state.has('Small Key (Water Temple)', 5)) and state.has('Zeldas Lullaby')) set_rule(world.get_entrance('Water Temple Upper Locked Door'), lambda state: state.has('Small Key (Water Temple)', 5) and (state.has('Zeldas Lullaby') or world.keysanity)) @@ -223,7 +228,7 @@ def global_rules(world): set_rule(world.get_location('Water Temple River Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and state.has('Song of Time') and state.has('Bow') and (state.has('Zeldas Lullaby') or world.keysanity)) set_rule(world.get_location('Sheik in Kakariko'), lambda state: state.has('Forest Medallion') and state.has('Fire Medallion') and state.has('Water Medallion')) set_rule(world.get_entrance('Graveyard Warp Pad'), lambda state: state.has('Nocturne of Shadow')) - set_rule(world.get_entrance('Shadow Temple Entrance'), lambda state: state.has('Dins Fire') and state.has('Magic Meter') and state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot'))) + set_rule(world.get_entrance('Shadow Temple Entrance'), lambda state: state.has('Dins Fire') and state.has('Magic Meter') and state.has('Lens of Truth') and state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot'))) set_rule(world.get_entrance('Shadow Temple First Pit'), lambda state: state.has('Hover Boots')) set_rule(world.get_entrance('Shadow Temple Bomb Wall'), lambda state: state.has('Bomb Bag') and state.has('Small Key (Shadow Temple)', 1)) set_rule(world.get_entrance('Shadow Temple Hookshot Target'), lambda state: state.has('Progressive Hookshot') and state.has('Small Key (Shadow Temple)', 3)) @@ -254,24 +259,24 @@ def global_rules(world): set_rule(world.get_entrance('Gerudo Training Grounds Maze Ledge'), lambda state: state.has('Song of Time')) set_rule(world.get_entrance('Gerudo Training Grounds Right Hookshot Target'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) set_rule(world.get_entrance('Gerudo Training Grounds Hammer Target'), lambda state: state.has('Hammer') and state.has('Bow') and state.is_adult()) - set_rule(world.get_entrance('Gerudo Training Grounds Hidden Hookshot Target'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) + set_rule(world.get_entrance('Gerudo Training Grounds Hidden Hookshot Target'), lambda state: state.has('Progressive Hookshot') and state.has('Lens of Truth') and state.has('Magic Meter') and state.is_adult()) set_rule(world.get_location('Gerudo Training Grounds Lobby Left Chest'), lambda state: state.has('Bow') and state.is_adult()) set_rule(world.get_location('Gerudo Training Grounds Lobby Right Chest'), lambda state: state.has('Bow') and state.is_adult()) set_rule(world.get_location('Gerudo Training Grounds Beamos Chest'), lambda state: state.has('Bomb Bag')) - set_rule(world.get_location('Gerudo Training Grounds Hidden Ceiling Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 3) ) + set_rule(world.get_location('Gerudo Training Grounds Hidden Ceiling Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 3) and state.has('Lens of Truth') and state.has('Magic Meter')) set_rule(world.get_location('Gerudo Training Grounds Maze Path First Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 4)) set_rule(world.get_location('Gerudo Training Grounds Maze Path Second Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 6)) set_rule(world.get_location('Gerudo Training Grounds Maze Path Third Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 7)) set_always_allow(world.get_location('Gerudo Training Grounds Maze Path Final Chest'), lambda state, item: item.name == 'Small Key (Gerudo Training Grounds)') set_rule(world.get_location('Gerudo Training Grounds Maze Path Final Chest'), lambda state: (state.has('Small Key (Gerudo Training Grounds)', 9)) or (item_name(state, 'Gerudo Training Grounds Maze Path Final Chest') == 'Small Key (Gerudo Training Grounds)' and state.has('Small Key (Gerudo Training Grounds)', 8))) #Allow key for key - set_rule(world.get_location('Gerudo Training Grounds Underwater Silver Rupee Chest'), lambda state: state.has('Progressive Hookshot') and state.has('Song of Time') and state.has('Iron Boots') and state.has('Zora Tunic') and state.is_adult()) + set_rule(world.get_location('Gerudo Training Grounds Underwater Silver Rupee Chest'), lambda state: state.has('Progressive Hookshot') and state.has('Song of Time') and state.has('Iron Boots') and state.is_adult()) set_rule(world.get_location('Gerudo Training Grounds Hammer Room Switch Chest'), lambda state: state.has('Hammer') and state.is_adult()) set_rule(world.get_location('Gerudo Training Grounds Eye Statue Chest'), lambda state: state.has('Bow') and state.is_adult()) set_rule(world.get_location('Gerudo Training Grounds Near Scarecrow Chest'), lambda state: state.has('Bow') and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Heavy Block First Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Heavy Block Second Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Heavy Block Third Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Heavy Block Fourth Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.is_adult()) + set_rule(world.get_location('Gerudo Training Grounds Heavy Block First Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.has('Lens of Truth') and state.has('Magic Meter') and state.is_adult()) + set_rule(world.get_location('Gerudo Training Grounds Heavy Block Second Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.has('Lens of Truth') and state.has('Magic Meter') and state.is_adult()) + set_rule(world.get_location('Gerudo Training Grounds Heavy Block Third Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.has('Lens of Truth') and state.has('Magic Meter') and state.is_adult()) + set_rule(world.get_location('Gerudo Training Grounds Heavy Block Fourth Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.has('Lens of Truth') and state.has('Magic Meter') and state.is_adult()) set_rule(world.get_entrance('Spirit Temple Crawl Passage'), lambda state: state.has('Requiem of Spirit')) set_rule(world.get_entrance('Spirit Temple Silver Block'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.is_adult()) set_rule(world.get_entrance('Child Spirit Temple Passthrough'), lambda state: state.has('Bomb Bag') and state.has('Small Key (Spirit Temple)', 1)) @@ -293,6 +298,8 @@ def global_rules(world): set_rule(world.get_location('Mirror Shield Chest'), lambda state: state.has('Small Key (Spirit Temple)', 4) and state.has('Progressive Strength Upgrade', 2) and state.is_adult()) set_rule(world.get_location('Silver Gauntlets Chest'), lambda state: (state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Hookshot', 2)) or state.has('Small Key (Spirit Temple)', 5)) set_rule(world.get_location('Spirit Temple Near Four Armos Chest'), lambda state: state.has('Mirror Shield')) + set_rule(world.get_location('Spirit Temple Hallway Left Invisible Chest'), lambda state: state.has('Magic Meter') and state.has('Lens of Truth')) + set_rule(world.get_location('Spirit Temple Hallway Right Invisible Chest'), lambda state: state.has('Magic Meter') and state.has('Lens of Truth')) set_rule(world.get_location('Spirit Temple Boss Key Chest'), lambda state: state.has('Zeldas Lullaby') and state.has('Bow') and state.has('Progressive Hookshot') and state.can_blast()) set_rule(world.get_location('Spirit Temple Topmost Chest'), lambda state: state.has('Mirror Shield')) set_rule(world.get_location('Twinrova'), lambda state: state.has('Mirror Shield') and state.has('Bomb Bag') and state.has('Progressive Hookshot') and state.has('Boss Key (Spirit Temple)')) @@ -308,8 +315,9 @@ def global_rules(world): set_rule(world.get_location('Ganons Castle Shadow Trial Second Chest'), lambda state: (state.has('Magic Meter') and state.has('Bow') and state.has('Fire Arrows')) or (state.has('Progressive Hookshot', 2) and state.has('Hover Boots'))) set_rule(world.get_location('Ganons Castle Spirit Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and state.has('Mirror Shield') and state.has('Bomb Bag') and state.has('Progressive Hookshot')) set_rule(world.get_location('Ganons Castle Spirit Trial First Chest'), lambda state: state.has('Progressive Hookshot') and (state.has('Magic Meter') or state.has('Bomb Bag'))) - set_rule(world.get_location('Ganons Castle Spirit Trial Second Chest'), lambda state: state.has('Progressive Hookshot') and state.has('Bomb Bag')) + set_rule(world.get_location('Ganons Castle Spirit Trial Second Chest'), lambda state: state.has('Progressive Hookshot') and state.has('Magic Meter') and state.has('Bomb Bag') and state.has('Lens of Truth')) set_rule(world.get_location('Ganons Castle Light Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Progressive Hookshot') and state.has('Light Arrows') and state.has('Small Key (Ganons Castle)', 2)) + set_rule(world.get_location('Ganons Castle Light Trail Invisible Enemies Chest'), lambda state: state.has('Magic Meter') and state.has('Lens of Truth')) set_rule(world.get_location('Ganons Castle Light Trial Lullaby Chest'), lambda state: state.has('Zeldas Lullaby') and state.has('Small Key (Ganons Castle)', 1)) set_rule(world.get_location('Ganon'), lambda state: state.has('Boss Key (Ganons Castle)')) set_rule(world.get_entrance('Kokiri Forest Storms Grotto'), lambda state: state.has('Song of Storms')) @@ -339,9 +347,9 @@ def global_rules(world): set_rule(world.get_location('GS7'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) set_rule(world.get_location('GS9'), lambda state: state.has('Slingshot') or state.has('Bomb Bag') or state.has('Boomerang') or (state.has('Dins Fire') and state.has('Magic Meter'))) set_rule(world.get_location('GS11'), lambda state: state.has('Boomerang') and state.has('Bomb Bag')) - set_rule(world.get_location('GS12'), lambda state: state.has('Boomerang') or (state.has('Progressive Hookshot') and state.is_adult())) + set_rule(world.get_location('GS12'), lambda state: (state.has('Boomerang') and state.has('Bomb Bag')) or (state.has('Progressive Hookshot') and state.is_adult())) set_rule(world.get_location('GS13'), lambda state: (state.has('Hammer') and state.has_fire_source() and state.has('Progressive Hookshot') and state.is_adult()) or (state.has('Boomerang') and state.has('Bomb Bag') and state.has('Dins Fire') and state.has('Magic Meter'))) - set_rule(world.get_location('GS16'), lambda state: state.has('Boomerang')) + set_rule(world.get_location('GS16'), lambda state: state.has('Boomerang') and state.has('Bomb Bag')) set_rule(world.get_location('GS20'), lambda state: state.has('Boomerang')) set_rule(world.get_location('GS21'), lambda state: state.has('Boomerang')) set_rule(world.get_location('GS26'), lambda state: state.has('Slingshot') or state.has('Bomb Bag')) @@ -386,7 +394,7 @@ def global_rules(world): set_rule(world.get_location('GS75'), lambda state: state.has('Progressive Hookshot', 2)) set_rule(world.get_location('GS76'), lambda state: state.has('Progressive Hookshot', 2)) set_rule(world.get_location('GS77'), lambda state: state.has('Progressive Hookshot', 2) and ((state.has('Bomb Bag') and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and state.has('Small Key (Water Temple)', 6)) #5 keys would be better but it wouldn't be compatible with the key for key scenarios, 6 will be identical pre-keysanity. - set_rule(world.get_location('GS78'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang')) + set_rule(world.get_location('GS78'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang') and (state.has('Progressive Strength Upgrade') or state.has('Bomb Bag') or (state.has('Lens of Truth') and state.has('Magic Meter')))) set_rule(world.get_location('GS79'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang')) set_rule(world.get_location('GS80'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang')) set_rule(world.get_location('GS81'), lambda state: state.has('Progressive Hookshot')) @@ -406,6 +414,65 @@ def global_rules(world): set_rule(world.get_location('GS99'), lambda state: state.has('Song of Time') and (state.has('Bow') or state.has('Progressive Hookshot') or state.has('Bomb Bag'))) set_rule(world.get_location('GS100'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.has('Small Key (Spirit Temple)', 3) and state.is_adult() and (state.has('Progressive Hookshot') or state.has('Hover Boots'))) + # update the logic with custom rules for this fork + + if world.custom_logic: + # remove trade quests + set_rule(world.get_location('Deku Theater Skull Mask'), lambda state: False) + set_rule(world.get_location('Deku Theater Mask of Truth'), lambda state: False) + set_rule(world.get_location('Biggoron'), lambda state: False) + + # remove skulltullas and poes + set_rule(world.get_location('10 Gold Skulltulla Reward'), lambda state: False) + set_rule(world.get_location('20 Gold Skulltulla Reward'), lambda state: False) + set_rule(world.get_location('30 Gold Skulltulla Reward'), lambda state: False) + set_rule(world.get_location('40 Gold Skulltulla Reward'), lambda state: False) + set_rule(world.get_location('50 Gold Skulltulla Reward'), lambda state: False) + set_rule(world.get_location('10 Big Poes'), lambda state: False) + + # remove finishing + set_rule(world.get_location('Child Fishing'), lambda state: False) + set_rule(world.get_location('Adult Fishing'), lambda state: False) + + # remove DC slingshot requirement + set_rule(world.get_entrance('Dodongos Cavern Slingshot Target'), lambda state: state.has('Slingshot') or state.is_adult()) + set_rule(world.get_location('Dodongos Cavern End of Bridge Chest'), lambda state: state.has('Bomb Bag') or (state.is_adult() and state.has('Hammer'))) + + # remove man on roof requirement + set_rule(world.get_location('Man on Roof'), lambda state: True) + + # remove most lens of truth requirements + set_rule(world.get_location('Bottom of the Well Front Left Hidden Wall'), lambda state: True) + set_rule(world.get_location('Bottom of the Well Right Bottom Hidden Wall'), lambda state: True) + set_rule(world.get_location('Bottom of the Well Center Large Chest'), lambda state: True) + set_rule(world.get_location('Bottom of the Well Center Small Chest'), lambda state: True) + set_rule(world.get_location('Bottom of the Well Invisible Chest'), lambda state: state.has('Zeldas Lullaby')) + set_rule(world.get_location('Bottom of the Well Locked Pits'), lambda state: state.has('Small Key (Bottom of the Well)', 3)) + set_rule(world.get_location('Bottom of the Well Behind Right Grate'), lambda state: state.has('Small Key (Bottom of the Well)', 3)) + set_rule(world.get_location('GS78'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang')) + + set_rule(world.get_entrance('Shadow Temple Entrance'), lambda state: state.has('Dins Fire') and state.has('Magic Meter') and state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot'))) + + set_rule(world.get_entrance('Gerudo Training Grounds Hidden Hookshot Target'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) + set_rule(world.get_location('Gerudo Training Grounds Hidden Ceiling Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 3) ) + set_rule(world.get_location('Gerudo Training Grounds Heavy Block First Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.is_adult()) + set_rule(world.get_location('Gerudo Training Grounds Heavy Block Second Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.is_adult()) + set_rule(world.get_location('Gerudo Training Grounds Heavy Block Third Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.is_adult()) + set_rule(world.get_location('Gerudo Training Grounds Heavy Block Fourth Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.is_adult()) + + set_rule(world.get_location('Spirit Temple Hallway Left Invisible Chest'), lambda state: True) + set_rule(world.get_location('Spirit Temple Hallway Right Invisible Chest'), lambda state: True) + + set_rule(world.get_location('Ganons Castle Spirit Trial Second Chest'), lambda state: state.has('Progressive Hookshot') and state.has('Bomb Bag')) + set_rule(world.get_location('Ganons Castle Light Trail Invisible Enemies Chest'), lambda state: True) + + # child deadhand without sword + set_rule(world.get_location('Bottom of the Well Defeat Boss'), lambda state: state.has('Zeldas Lullaby')) + + # adding some zora tunic requirements + set_rule(world.get_location('Zoras Fountain Bottom Freestanding PoH'), lambda state: state.has('Iron Boots') and state.has('Zora Tunic')) + set_rule(world.get_location('Gerudo Training Grounds Underwater Silver Rupee Chest'), lambda state: state.has('Progressive Hookshot') and state.has('Song of Time') and state.has('Iron Boots') and state.has('Zora Tunic') and state.is_adult()) + for location in world.get_locations(): if location.type != 'Chest': forbid_item(location, 'Ice Trap') From c8402c3bfdf1108e1ff190fdf45e82de9df3f97b Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Fri, 22 Jun 2018 05:16:20 -0500 Subject: [PATCH 032/755] Tweaked Only tunic color. --- Rom.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Rom.py b/Rom.py index 3c0991107..b4c45edc8 100644 --- a/Rom.py +++ b/Rom.py @@ -34,7 +34,7 @@ "Blood Orange": [0xF0, 0x30, 0x30], "NES Green": [0x00, 0xD0, 0x00], "Dark Green": [0x00, 0x25, 0x18], - "Only": [50, 190, 200], + "Only": [80, 140, 240], } def get_tunic_colors(): From c86f539bed5ea52844d985bc91978cb86fd71621 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Fri, 22 Jun 2018 11:13:24 -0500 Subject: [PATCH 033/755] Basic text randomization implemented. --- BaseClasses.py | 3 +- Gui.py | 14 ++- Main.py | 4 +- Messages.py | 221 +++++++++++++++++++++++++++++++++++++++++++++++ OoTRandomizer.py | 4 + Rom.py | 5 ++ 6 files changed, 245 insertions(+), 6 deletions(-) create mode 100644 Messages.py diff --git a/BaseClasses.py b/BaseClasses.py index c53e8bf13..ecd1facc3 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -6,7 +6,7 @@ class World(object): - def __init__(self, bridge, open_forest, open_door_of_time, place_dungeon_items, check_beatable_only, hints, colors, healthSFX, custom_logic): + def __init__(self, bridge, open_forest, open_door_of_time, place_dungeon_items, check_beatable_only, hints, colors, healthSFX, custom_logic, shuffle_text): self.shuffle = 'vanilla' self.bridge = bridge self.dungeons = [] @@ -26,6 +26,7 @@ def __init__(self, bridge, open_forest, open_door_of_time, place_dungeon_items, self.open_door_of_time = open_door_of_time self.hints = hints self.custom_logic = custom_logic + self.shuffle_text = shuffle_text self.colors = colors self.healthSFX = healthSFX self.keysanity = False diff --git a/Gui.py b/Gui.py index 8fe8e43d4..722f0796d 100644 --- a/Gui.py +++ b/Gui.py @@ -76,6 +76,7 @@ def MakeRadioList(parent, data): "nodungeonitems": { "text": "Remove Maps and Compasses", "group": "logic", "default": "checked" }, "beatableonly": { "text": "Only ensure seed is beatable", "group": "logic", "default": "checked" }, "custom_logic": { "text": "Use this fork's custom logic", "group": "logic", "default": "checked" }, + "shuffle_text": { "text": "Shuffle text", "group": "other", "default": "unchecked" }, } # radio list has a name, a list of options, and a default option bridge_requirements_data = { @@ -117,7 +118,10 @@ def MakeRadioList(parent, data): checkAndRadioFrame = Frame(randomizerWindow) if True: # just indenting for hierarchy clarity - outputOptionsFrame = LabelFrame(checkAndRadioFrame, text='Output', labelanchor=NW) + leftSideChecks = Frame(checkAndRadioFrame) + if True: # just indenting for hierarchy clarity + outputOptionsFrame = LabelFrame(leftSideChecks, text='Output', labelanchor=NW) + otherOptionsFrame = LabelFrame(leftSideChecks, text='Other', labelanchor=NW) logicOptionsFrame = LabelFrame(checkAndRadioFrame, text='Logic', labelanchor=NW) (rainbowBridgeFrame, resultVars['bridge']) = MakeRadioList(checkAndRadioFrame, bridge_requirements_data) (hintsFrame, resultVars['hints']) = MakeRadioList(checkAndRadioFrame, hint_options_data) @@ -137,7 +141,7 @@ def MakeRadioList(parent, data): # create a variable to access the box's state resultVars[var_name] = IntVar(value=default_value) # create the checkbox - parent = { 'output': outputOptionsFrame, 'logic': logicOptionsFrame }[info["group"]] # sorry, this is gross; I was reaching my limit + parent = { 'output': outputOptionsFrame, 'logic': logicOptionsFrame, 'other': otherOptionsFrame }[info["group"]] # sorry, this is gross; I was reaching my limit checkboxes[var_name] = Checkbutton(parent, text=info["text"], variable=resultVars[var_name]) checkboxes[var_name].pack(expand=True, anchor=W) @@ -157,7 +161,9 @@ def MakeRadioList(parent, data): dropdownFrames[var_name].pack(expand=True, side=LEFT, anchor=N) # pack the hierarchy - outputOptionsFrame.pack(expand=True, anchor=N, side=LEFT, padx=5) + outputOptionsFrame.pack(expand=True, anchor=E, side=TOP) + otherOptionsFrame.pack(expand=True, anchor=W, side=BOTTOM) + leftSideChecks.pack(expand=True, anchor=N, side=LEFT, padx=5) logicOptionsFrame.pack(expand=True, anchor=N, side=LEFT, padx=5) rainbowBridgeFrame.pack(expand=True, anchor=N, side=LEFT, padx=5) hintsFrame.pack(expand=True, anchor=N, side=LEFT, padx=5) @@ -215,6 +221,7 @@ def generateRom(): guiargs.nodungeonitems = bool(resultVars["nodungeonitems"].get()) guiargs.beatableonly = bool(resultVars["beatableonly"].get()) guiargs.custom_logic = bool(resultVars["custom_logic"].get()) + guiargs.shuffle_text = bool(resultVars["shuffle_text"].get()) guiargs.hints = resultVars["hints"].get() guiargs.rom = romVar.get() try: @@ -252,6 +259,7 @@ def generateRom(): resultVars["nodungeonitems"].set(int(args.nodungeonitems)) resultVars["beatableonly"].set(int(args.beatableonly)) resultVars["custom_logic"].set(int(args.custom_logic)) + resultVars["shuffle_text"].set(int(args.shuffle_text)) resultVars["hints"].set(args.hints) if args.count: countVar.set(str(args.count)) diff --git a/Main.py b/Main.py index 5a61cba99..6a08ef279 100644 --- a/Main.py +++ b/Main.py @@ -23,7 +23,7 @@ def main(args, seed=None): start = time.clock() # initialize the world - world = World(args.bridge, args.open_forest, args.open_door_of_time, not args.nodungeonitems, args.beatableonly, args.hints, [args.kokiricolor, args.goroncolor, args.zoracolor], args.healthSFX, args.custom_logic) + world = World(args.bridge, args.open_forest, args.open_door_of_time, not args.nodungeonitems, args.beatableonly, args.hints, [args.kokiricolor, args.goroncolor, args.zoracolor], args.healthSFX, args.custom_logic, args.shuffle_text) logger = logging.getLogger('') if seed is None: random.seed(None) @@ -94,7 +94,7 @@ def main(args, seed=None): def copy_world(world): # ToDo: Not good yet - ret = World(world.bridge, world.open_forest, world.open_door_of_time, world.place_dungeon_items, world.check_beatable_only, world.hints, world.colors, world.healthSFX, world.custom_logic) + ret = World(world.bridge, world.open_forest, world.open_door_of_time, world.place_dungeon_items, world.check_beatable_only, world.hints, world.colors, world.healthSFX, world.custom_logic, world.shuffle_text) ret.seed = world.seed ret.can_take_damage = world.can_take_damage create_regions(ret) diff --git a/Messages.py b/Messages.py new file mode 100644 index 000000000..9563a9354 --- /dev/null +++ b/Messages.py @@ -0,0 +1,221 @@ +# text details: https://wiki.cloudmodding.com/oot/Text_Format + +import random + +TABLE_START = 0xB849EC +TEXT_START = 0x92D000 + +# reads len bytes from the rom starting at offset +def read_bytes(rom, offset, len): + return rom.buffer[offset : offset + len] + +# name of type, followed by number of additional bytes to read, follwed by a function that prints the code +CONTROL_CODES = { + 0x01: ('line-break', 0, lambda _: '\n' ), + 0x02: ('end', 0, lambda _: '' ), + 0x04: ('box-break', 0, lambda _: '\n▼\n' ), + 0x05: ('color', 1, lambda d: '' ), + 0x06: ('gap', 1, lambda d: '<' + str(d) + 'px gap>' ), + 0x07: ('goto', 2, lambda d: '' ), + 0x08: ('instant', 0, lambda _: '' ), + 0x09: ('un-instant', 0, lambda _: '' ), + 0x0A: ('keep-open', 0, lambda _: '' ), + 0x0B: ('event', 0, lambda _: '' ), + 0x0C: ('box-break-delay', 1, lambda d: '\n▼\n' ), + 0x0E: ('fade-out', 1, lambda d: '' ), + 0x0F: ('name', 0, lambda _: '' ), + 0x10: ('ocarina', 0, lambda _: '' ), + 0x12: ('sound', 2, lambda d: '' ), + 0x13: ('icon', 1, lambda d: '' ), + 0x14: ('speed', 1, lambda d: '' ), + 0x15: ('background', 3, lambda d: '' ), + 0x16: ('marathon', 0, lambda _: '' ), + 0x17: ('race', 0, lambda _: '' ), + 0x18: ('points', 0, lambda _: '' ), + 0x19: ('skulltula', 0, lambda _: '' ), + 0x1A: ('unskippable', 0, lambda _: '' ), + 0x1B: ('two-choice', 0, lambda _: '' ), + 0x1C: ('three-choice', 0, lambda _: '' ), + 0x1D: ('fish', 0, lambda _: '' ), + 0x1E: ('high-score', 1, lambda d: '' ), + 0x1F: ('time', 0, lambda _: '' ), +} + +SPECIAL_CHARACTERS = { + 0x96: 'é', + 0x9F: '[A]', + 0xA0: '[B]', + 0xA1: '[C]', + 0xA2: '[L]', + 0xA3: '[R]', + 0xA4: '[Z]', + 0xA5: '[C Up]', + 0xA6: '[C Down]', + 0xA7: '[C Left]', + 0xA8: '[C Right]', + 0xA9: '[Triangle]', + 0xAA: '[Control Stick]', +} + +def display_code_list(codes): + message = "" + for code in codes: + message += str(code) + return message + +# holds a single character or control code of a string +class Text_Code(): + + def display(self): + if self.code in CONTROL_CODES: + return CONTROL_CODES[self.code][2](self.data) + elif self.code in SPECIAL_CHARACTERS: + return SPECIAL_CHARACTERS[self.code] + elif self.code >= 0x7F: + return '?' + else: + return chr(self.code) + + def __init__(self, code, data): + self.code = code + if code in CONTROL_CODES: + self.type = CONTROL_CODES[code][0] + else: + self.type = 'character' + self.data = data + + __str__ = __repr__ = display + +# holds a single message, and all its data +class Message(): + + def display(self): + meta_data = ["#" + str(self.count), + "ID: 0x" + "{:04x}".format(self.id), + "Offset: 0x" + "{:06x}".format(self.offset), + "Length: 0x" + "{:04x}".format(self.length), + "Box Type: " + str(self.box_type), + "Postion: " + str(self.position)] + return ', '.join(meta_data) + '\n' + self.text + + def parse_text(self): + self.text_codes = [] + + index = 0 + while index < self.length: + next_char = self.raw_text[index] + data = next_char + index += 1 + if next_char in CONTROL_CODES: + extra_bytes = CONTROL_CODES[next_char][1] + if extra_bytes > 0: + data = int.from_bytes(self.raw_text[index : index + extra_bytes], byteorder='big', signed=False) + index += extra_bytes + text_code = Text_Code(next_char, data) + self.text_codes.append(text_code) + if next_char == 0x02: # message end code + break + if next_char == 0x07: # goto + self.has_goto = True + self.is_basic = False + if next_char == 0x0A: # keep-open + self.has_keep_open = True + self.is_basic = False + if next_char == 0x0B: # event + self.has_event = True + self.is_basic = False + if next_char == 0x10: # ocarina + self.has_ocarina = True + self.is_basic = False + if next_char == 0x1B: # two choice + self.has_two_choice = True + self.is_basic = False + if next_char == 0x1C: # three choice + self.has_three_choice = True + self.is_basic = False + self.text = display_code_list(self.text_codes) + + # read a single message + def __init__(self, rom, offset, count): + + entry = read_bytes(rom, offset, 8) + next = read_bytes(rom, offset + 8, 8) + opts = entry[2] + + self.count = count + self.id = int.from_bytes(entry[0:2], byteorder='big', signed=False) + self.box_type = (opts & 0xF0) >> 4 + self.position = (opts & 0x0F) + self.offset = int.from_bytes(entry[5:8], byteorder='big', signed=False) + self.length = int.from_bytes(next[5:8], byteorder='big', signed=False) - self.offset + + self.has_goto = False + self.has_keep_open = False + self.has_event = False + self.has_ocarina = False + self.has_two_choice = False + self.has_three_choice = False + self.is_basic = True + + self.raw_text = read_bytes(rom, TEXT_START + self.offset, self.length) + self.parse_text() + + __str__ = __repr__ = display + +# reads each of the game's messages into a list of Message objects +def read_messages(rom): + + offset = TABLE_START + count = 0 + messages = [] + while True: + entry = read_bytes(rom, offset, 8) + id = int.from_bytes(entry[0:2], byteorder='big', signed=False) + + if id == 0xFFFD: + offset += 8 + continue # this is only here to give an ending offset + if id == 0xFFFF: + break # this marks the end of the table + + messages.append( Message(rom, offset, count) ) + + count += 1 + offset += 8 + + return messages + +# shuffles the messages in the game, making sure to keep various message types in their own group +def shuffle_messages(rom): + + messages = read_messages(rom) + + have_goto = list( filter( lambda m: m.has_goto, messages) ) # not shuffled yet + have_keep_open = list( filter( lambda m: m.has_keep_open, messages) ) + have_event = list( filter( lambda m: m.has_event, messages) ) + have_ocarina = list( filter( lambda m: m.has_ocarina, messages) ) + have_two_choice = list( filter( lambda m: m.has_two_choice, messages) ) + have_three_choice = list( filter( lambda m: m.has_three_choice, messages) ) + basic_messages = list( filter( lambda m: m.is_basic, messages) ) + + + def shuffle_group(group): + permutation = list( range( len(group) ) ) + random.shuffle(permutation) + + for index_from, index_to in enumerate(permutation): + message_id = group[index_from].id + rom_location = TABLE_START + 8 * group[index_to].count + # print('0x' + "{:04x}".format(message_id) + " at #" + str(group[index_to].count) + " -> 0x" + "{:06x}".format(rom_location) ) + id_bytes = [(message_id >> 8) & 0xFF, message_id & 0xFF] + rom.write_bytes(rom_location, id_bytes) + + # need to use 'list' to force 'map' to actually run through + list( map( shuffle_group, [ + have_keep_open, + have_event, + have_ocarina, + have_two_choice, + have_three_choice, + basic_messages, + ])) \ No newline at end of file diff --git a/OoTRandomizer.py b/OoTRandomizer.py index b5135e697..f80717559 100644 --- a/OoTRandomizer.py +++ b/OoTRandomizer.py @@ -95,6 +95,10 @@ def start(): Removes a number of bad locations from logic, and adds a number allowed tricks ''', action='store_true') + parser.add_argument('--shuffle_text', help='''\ + Messages will be shuffled. + It's hilarious, but make sure you really know what people are actually asking for... + ''', action='store_true') parser.add_argument('--suppress_rom', help='Do not create an output rom file.', action='store_true') parser.add_argument('--compress_rom', help='Create a compressed version of the output rom file.', action='store_true') parser.add_argument('--gui', help='Launch the GUI', action='store_true') diff --git a/Rom.py b/Rom.py index b4c45edc8..6c7c4bd10 100644 --- a/Rom.py +++ b/Rom.py @@ -11,6 +11,7 @@ from Utils import local_path, output_path from Items import ItemFactory, item_data from TextArray import text_array +from Messages import shuffle_messages TunicColors = { "Kokiri Green": [0x1E, 0x69, 0x1B], @@ -1090,6 +1091,10 @@ def patch_rom(world, rom): healthSFX = [0x00, 0x00, 0x00, 0x00] address = 0xADBA14 rom.write_bytes(address, healthSFX) + + # shuffle text + if world.shuffle_text: + shuffle_messages(rom) return rom From 776604280903973c5bc036f797867198ae44b3ba Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Fri, 22 Jun 2018 12:45:36 -0500 Subject: [PATCH 034/755] Navi color options and randomization. --- BaseClasses.py | 3 ++- Gui.py | 45 +++++++++++++++++++++++++++++++++------------ Main.py | 14 ++++++++++++-- OoTRandomizer.py | 28 ++++++++++++++++++++++++++++ Rom.py | 43 +++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 118 insertions(+), 15 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index ecd1facc3..75bdc0bd9 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -6,7 +6,7 @@ class World(object): - def __init__(self, bridge, open_forest, open_door_of_time, place_dungeon_items, check_beatable_only, hints, colors, healthSFX, custom_logic, shuffle_text): + def __init__(self, bridge, open_forest, open_door_of_time, place_dungeon_items, check_beatable_only, hints, colors, navi_colors, healthSFX, custom_logic, shuffle_text): self.shuffle = 'vanilla' self.bridge = bridge self.dungeons = [] @@ -28,6 +28,7 @@ def __init__(self, bridge, open_forest, open_door_of_time, place_dungeon_items, self.custom_logic = custom_logic self.shuffle_text = shuffle_text self.colors = colors + self.navi_colors = navi_colors self.healthSFX = healthSFX self.keysanity = False self.can_take_damage = True diff --git a/Gui.py b/Gui.py index 722f0796d..d8c2fb9af 100644 --- a/Gui.py +++ b/Gui.py @@ -12,7 +12,7 @@ from GuiUtils import ToolTips, set_icon, BackgroundTaskProgress from Main import main, __version__ as ESVersion from Utils import is_bundled, local_path, output_path, open_file -from Rom import get_tunic_color_options +from Rom import get_tunic_color_options, get_navi_color_options def guiMain(args=None): mainWindow = Tk() @@ -103,11 +103,16 @@ def MakeRadioList(parent, data): } # dropdown info color_options = get_tunic_color_options() + navi_options = get_navi_color_options() dropdownInfo = { - "kokiricolor": { "name": "Kokiri Tunic Color", "default": "Kokiri Green", "options": color_options }, - "goroncolor": { "name": "Goron Tunic Color", "default": "Goron Red", "options": color_options }, - "zoracolor": { "name": "Zora Tunic Color", "default": "Zora Blue", "options": color_options }, - "healthSFX": { "name": "Low Health SFX", "default": "Default", "options": ['Default', 'Softer Beep', 'Rupee', 'Timer', 'Tamborine', 'Recovery Heart', 'Carrot Refill', 'Navi - Hey!', 'Zelda - Gasp', 'Cluck', 'Mweep!', 'Random', 'None'] }, + "kokiricolor": { "name": "Kokiri Tunic Color", "default": "Kokiri Green", "options": color_options, "row": "top" }, + "goroncolor": { "name": "Goron Tunic Color", "default": "Goron Red", "options": color_options, "row": "top" }, + "zoracolor": { "name": "Zora Tunic Color", "default": "Zora Blue", "options": color_options, "row": "top" }, + "healthSFX": { "name": "Low Health SFX", "default": "Default", "options": ['Default', 'Softer Beep', 'Rupee', 'Timer', 'Tamborine', 'Recovery Heart', 'Carrot Refill', 'Navi - Hey!', 'Zelda - Gasp', 'Cluck', 'Mweep!', 'Random', 'None'], "row": "top" }, + "navicolordefault": { "name": "Navi Idle", "default": "White", "options": navi_options, "row": "bottom" }, + "navicolorenemy": { "name": "Navi Targeting Enemy", "default": "Yellow", "options": navi_options, "row": "bottom" }, + "navicolornpc": { "name": "Navi Targeting NPC", "default": "Light Blue", "options": navi_options, "row": "bottom" }, + "navicolorprop": { "name": "Navi Targeting Prop", "default": "Green", "options": navi_options, "row": "bottom" }, } # hold the results of the user's decisions here @@ -127,6 +132,9 @@ def MakeRadioList(parent, data): (hintsFrame, resultVars['hints']) = MakeRadioList(checkAndRadioFrame, hint_options_data) aestheticFrame = LabelFrame(randomizerWindow, text='Aesthetic', labelanchor=NW) + if True: # just indenting for hierarchy clarity + aestheticTopFrame = Frame(aestheticFrame) + aestheticBottomFrame = Frame(aestheticFrame) generateSeedFrame = Frame(randomizerWindow) @@ -151,18 +159,20 @@ def MakeRadioList(parent, data): # create the variable to store the user's decision resultVars[var_name] = StringVar(value=info['default']) # create the option menu - dropdownFrames[var_name] = Frame(aestheticFrame) - dropdown = OptionMenu(dropdownFrames[var_name], resultVars[var_name], *(info['options'])) - dropdown.pack(side=BOTTOM, anchor=E) + parent = { 'top': aestheticTopFrame, 'bottom': aestheticBottomFrame }[info["row"]] + dropdownFrames[var_name] = Frame(parent) + # dropdown = OptionMenu(dropdownFrames[var_name], resultVars[var_name], *(info['options'])) + dropdown = ttk.Combobox(dropdownFrames[var_name], textvariable=resultVars[var_name], values=info['options'], state='readonly') + dropdown.pack(side=BOTTOM, anchor=W) # label the option - label = Label(dropdownFrames[var_name], text=info['name'], width=18) - label.pack(side=TOP, anchor=NW) + label = Label(dropdownFrames[var_name], text=info['name']) + label.pack(side=TOP, anchor=W) # pack the frame - dropdownFrames[var_name].pack(expand=True, side=LEFT, anchor=N) + dropdownFrames[var_name].pack(expand=True, side=LEFT, anchor=N, padx=3, pady=3) # pack the hierarchy outputOptionsFrame.pack(expand=True, anchor=E, side=TOP) - otherOptionsFrame.pack(expand=True, anchor=W, side=BOTTOM) + otherOptionsFrame.pack(expand=True, anchor=W, side=BOTTOM, pady=6) leftSideChecks.pack(expand=True, anchor=N, side=LEFT, padx=5) logicOptionsFrame.pack(expand=True, anchor=N, side=LEFT, padx=5) rainbowBridgeFrame.pack(expand=True, anchor=N, side=LEFT, padx=5) @@ -170,6 +180,8 @@ def MakeRadioList(parent, data): checkAndRadioFrame.pack(side=TOP, anchor=N) + aestheticTopFrame.pack(expand=True, anchor=W, side=TOP) + aestheticBottomFrame.pack(expand=True, anchor=W, side=BOTTOM) aestheticFrame.pack(anchor=W, padx=5) @@ -213,6 +225,11 @@ def generateRom(): guiargs.goroncolor = resultVars["goroncolor"].get() guiargs.zoracolor = resultVars["zoracolor"].get() guiargs.healthSFX = resultVars["healthSFX"].get() + guiargs.navicolordefault = resultVars["navicolordefault"].get() + guiargs.navicolorenemy = resultVars["navicolorenemy"].get() + guiargs.navicolornpc = resultVars["navicolornpc"].get() + guiargs.navicolorprop = resultVars["navicolorprop"].get() + guiargs.create_spoiler = bool(resultVars["create_spoiler"].get()) guiargs.suppress_rom = bool(resultVars["suppress_rom"].get()) guiargs.compress_rom = bool(resultVars["compress_rom"].get()) @@ -270,6 +287,10 @@ def generateRom(): resultVars["goroncolor"].set(args.goroncolor) resultVars["zoracolor"].set(args.zoracolor) resultVars["healthSFX"].set(args.healthSFX) + resultVars["navicolordefault"].set(args.navicolordefault) + resultVars["navicolorenemy"].set(args.navicolorenemy) + resultVars["navicolornpc"].set(args.navicolornpc) + resultVars["navicolorprop"].set(args.navicolorprop) romVar.set(args.rom) mainWindow.mainloop() diff --git a/Main.py b/Main.py index 6a08ef279..0e090b67a 100644 --- a/Main.py +++ b/Main.py @@ -23,7 +23,17 @@ def main(args, seed=None): start = time.clock() # initialize the world - world = World(args.bridge, args.open_forest, args.open_door_of_time, not args.nodungeonitems, args.beatableonly, args.hints, [args.kokiricolor, args.goroncolor, args.zoracolor], args.healthSFX, args.custom_logic, args.shuffle_text) + world = World(args.bridge, + args.open_forest, + args.open_door_of_time, + not args.nodungeonitems, + args.beatableonly, + args.hints, + [args.kokiricolor, args.goroncolor, args.zoracolor], + [args.navicolordefault, args.navicolorenemy, args.navicolornpc, args.navicolorprop], + args.healthSFX, + args.custom_logic, + args.shuffle_text) logger = logging.getLogger('') if seed is None: random.seed(None) @@ -94,7 +104,7 @@ def main(args, seed=None): def copy_world(world): # ToDo: Not good yet - ret = World(world.bridge, world.open_forest, world.open_door_of_time, world.place_dungeon_items, world.check_beatable_only, world.hints, world.colors, world.healthSFX, world.custom_logic, world.shuffle_text) + ret = World(world.bridge,world.open_forest, world.open_door_of_time, world.place_dungeon_items, world.check_beatable_only, world.hints, world.colors, world.navi_colors, world.healthSFX, world.custom_logic, world.shuffle_text) ret.seed = world.seed ret.can_take_damage = world.can_take_damage create_regions(ret) diff --git a/OoTRandomizer.py b/OoTRandomizer.py index f80717559..af0bb8553 100644 --- a/OoTRandomizer.py +++ b/OoTRandomizer.py @@ -91,6 +91,34 @@ def start(): Random: Replace the sound effect with a random sound from this list. None: Eliminate heart beeps. ''') + parser.add_argument('--navicolordefault', default='White', const='White', nargs='?', choices=get_navi_color_options(), + help='''\ + Choose the color for Navi when she is idle. (default: %(default)s) + Color: Make the Navi this color. + Random: Choose a random color from this list of colors. + True Random: Choose a random color from any color the N64 can draw. + ''') + parser.add_argument('--navicolorenemy', default='Yellow', const='Yellow', nargs='?', choices=get_navi_color_options(), + help='''\ + Choose the color for Navi when she is targeting an enemy. (default: %(default)s) + Color: Make the Navi this color. + Random: Choose a random color from this list of colors. + True Random: Choose a random color from any color the N64 can draw. + ''') + parser.add_argument('--navicolornpc', default='Light Blue', const='Light Blue', nargs='?', choices=get_navi_color_options(), + help='''\ + Choose the color for Navi when she is targeting an NPC. (default: %(default)s) + Color: Make the Navi this color. + Random: Choose a random color from this list of colors. + True Random: Choose a random color from any color the N64 can draw. + ''') + parser.add_argument('--navicolorprop', default='Green', const='Green', nargs='?', choices=get_navi_color_options(), + help='''\ + Choose the color for Navi when she is targeting a prop. (default: %(default)s) + Color: Make the Navi this color. + Random: Choose a random color from this list of colors. + True Random: Choose a random color from any color the N64 can draw. + ''') parser.add_argument('--custom_logic', help='''\ Removes a number of bad locations from logic, and adds a number allowed tricks diff --git a/Rom.py b/Rom.py index 6c7c4bd10..5a6a10050 100644 --- a/Rom.py +++ b/Rom.py @@ -38,12 +38,28 @@ "Only": [80, 140, 240], } +NaviColors = { + "White": [0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00], + "Green": [0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00], + "Light Blue": [0x96, 0x96, 0xFF, 0xFF, 0x96, 0x96, 0xFF, 0x00], + "Yellow": [0xFF, 0xFF, 0x00, 0xFF, 0xC8, 0x9B, 0x00, 0x00], + "Red": [0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00], + "Magenta": [0xFF, 0x00, 0xFF, 0xFF, 0xC8, 0x00, 0x9B, 0x00], + "Black": [0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00], +} + def get_tunic_colors(): return list(TunicColors.keys()) def get_tunic_color_options(): return get_tunic_colors() + ["Random", "True Random"] +def get_navi_colors(): + return list(NaviColors.keys()) + +def get_navi_color_options(): + return get_navi_colors() + ["Random", "True Random"] + class LocalRom(object): def __init__(self, file, patch=True): @@ -1056,6 +1072,33 @@ def patch_rom(world, rom): color = TunicColors[thisColor] rom.write_bytes(Tunics[i], color) + # patch navi colors + Navi = [] + Navi.append([0x00B5E184]) # Default + Navi.append([0x00B5E19C, 0x00B5E1BC]) # Enemy, Boss + Navi.append([0x00B5E194]) # NPC + Navi.append([0x00B5E174, 0x00B5E17C, 0x00B5E18C, 0x00B5E1A4, 0x00B5E1AC, 0x00B5E1B4, 0x00B5E1C4, 0x00B5E1CC, 0x00B5E1D4]) # Everything else + naviList = get_navi_colors() + randomColors = random.choices(naviList, k=4) + + for i in range(len(Navi)): + # do everything in the inner loop so that "true random" changes even for subcategories + for j in range(len(Navi[i])): + # get the color option + thisColor = world.navi_colors[i] + # handle true random + randColor = [random.getrandbits(8), random.getrandbits(8), random.getrandbits(8), 0xFF, + random.getrandbits(8), random.getrandbits(8), random.getrandbits(8), 0x00] + if thisColor == 'True Random': + color = randColor + else: + # handle random + if world.navi_colors[i] == 'Random': + thisColor = randomColors[i] + # grab the color from the list + color = NaviColors[thisColor] + rom.write_bytes(Navi[i][j], color) + #Low health beep healthSFXList = ['Default', 'Softer Beep', 'Rupee', 'Timer', 'Tamborine', 'Recovery Heart', 'Carrot Refill', 'Navi - Hey!', 'Zelda - Gasp', 'Cluck', 'Mweep!', 'None'] randomSFX = random.choice(healthSFXList) From 4bb1058e46ea37ca395063f421381dc8416cb3b2 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Fri, 22 Jun 2018 13:57:22 -0500 Subject: [PATCH 035/755] Hints can now be exempt from text shuffle. --- BaseClasses.py | 4 ++-- Gui.py | 21 +++++++++++++++------ Main.py | 4 ++-- Messages.py | 34 +++++++++++++++++++--------------- OoTRandomizer.py | 11 +++++++---- Rom.py | 10 ++++++---- 6 files changed, 51 insertions(+), 33 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 75bdc0bd9..ffa97fea5 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -6,7 +6,7 @@ class World(object): - def __init__(self, bridge, open_forest, open_door_of_time, place_dungeon_items, check_beatable_only, hints, colors, navi_colors, healthSFX, custom_logic, shuffle_text): + def __init__(self, bridge, open_forest, open_door_of_time, place_dungeon_items, check_beatable_only, hints, colors, navi_colors, healthSFX, custom_logic, text_shuffle): self.shuffle = 'vanilla' self.bridge = bridge self.dungeons = [] @@ -26,7 +26,7 @@ def __init__(self, bridge, open_forest, open_door_of_time, place_dungeon_items, self.open_door_of_time = open_door_of_time self.hints = hints self.custom_logic = custom_logic - self.shuffle_text = shuffle_text + self.text_shuffle = text_shuffle self.colors = colors self.navi_colors = navi_colors self.healthSFX = healthSFX diff --git a/Gui.py b/Gui.py index d8c2fb9af..a8e2d7bb1 100644 --- a/Gui.py +++ b/Gui.py @@ -76,7 +76,6 @@ def MakeRadioList(parent, data): "nodungeonitems": { "text": "Remove Maps and Compasses", "group": "logic", "default": "checked" }, "beatableonly": { "text": "Only ensure seed is beatable", "group": "logic", "default": "checked" }, "custom_logic": { "text": "Use this fork's custom logic", "group": "logic", "default": "checked" }, - "shuffle_text": { "text": "Shuffle text", "group": "other", "default": "unchecked" }, } # radio list has a name, a list of options, and a default option bridge_requirements_data = { @@ -101,6 +100,16 @@ def MakeRadioList(parent, data): "default": "always", "wraplength": 140, } + text_shuffle_data = { + "name": "Text Shuffle", + "options": [ + { "value": "none", "description": "No text shuffle" }, + { "value": "except_hints", "description": "Text is shuffled (except hints)" }, + { "value": "complete", "description": "Text is shuffled (completely)" }, + ], + "default": "none", + "wraplength": 240, + } # dropdown info color_options = get_tunic_color_options() navi_options = get_navi_color_options() @@ -126,7 +135,7 @@ def MakeRadioList(parent, data): leftSideChecks = Frame(checkAndRadioFrame) if True: # just indenting for hierarchy clarity outputOptionsFrame = LabelFrame(leftSideChecks, text='Output', labelanchor=NW) - otherOptionsFrame = LabelFrame(leftSideChecks, text='Other', labelanchor=NW) + (textShuffleBridgeFrame, resultVars['text_shuffle']) = MakeRadioList(leftSideChecks, text_shuffle_data) logicOptionsFrame = LabelFrame(checkAndRadioFrame, text='Logic', labelanchor=NW) (rainbowBridgeFrame, resultVars['bridge']) = MakeRadioList(checkAndRadioFrame, bridge_requirements_data) (hintsFrame, resultVars['hints']) = MakeRadioList(checkAndRadioFrame, hint_options_data) @@ -149,7 +158,7 @@ def MakeRadioList(parent, data): # create a variable to access the box's state resultVars[var_name] = IntVar(value=default_value) # create the checkbox - parent = { 'output': outputOptionsFrame, 'logic': logicOptionsFrame, 'other': otherOptionsFrame }[info["group"]] # sorry, this is gross; I was reaching my limit + parent = { 'output': outputOptionsFrame, 'logic': logicOptionsFrame }[info["group"]] # sorry, this is gross; I was reaching my limit checkboxes[var_name] = Checkbutton(parent, text=info["text"], variable=resultVars[var_name]) checkboxes[var_name].pack(expand=True, anchor=W) @@ -172,7 +181,7 @@ def MakeRadioList(parent, data): # pack the hierarchy outputOptionsFrame.pack(expand=True, anchor=E, side=TOP) - otherOptionsFrame.pack(expand=True, anchor=W, side=BOTTOM, pady=6) + textShuffleBridgeFrame.pack(expand=True, anchor=W, side=BOTTOM, pady=6) leftSideChecks.pack(expand=True, anchor=N, side=LEFT, padx=5) logicOptionsFrame.pack(expand=True, anchor=N, side=LEFT, padx=5) rainbowBridgeFrame.pack(expand=True, anchor=N, side=LEFT, padx=5) @@ -238,7 +247,7 @@ def generateRom(): guiargs.nodungeonitems = bool(resultVars["nodungeonitems"].get()) guiargs.beatableonly = bool(resultVars["beatableonly"].get()) guiargs.custom_logic = bool(resultVars["custom_logic"].get()) - guiargs.shuffle_text = bool(resultVars["shuffle_text"].get()) + guiargs.text_shuffle = resultVars["text_shuffle"].get() guiargs.hints = resultVars["hints"].get() guiargs.rom = romVar.get() try: @@ -276,7 +285,7 @@ def generateRom(): resultVars["nodungeonitems"].set(int(args.nodungeonitems)) resultVars["beatableonly"].set(int(args.beatableonly)) resultVars["custom_logic"].set(int(args.custom_logic)) - resultVars["shuffle_text"].set(int(args.shuffle_text)) + resultVars["text_shuffle"].set(int(args.text_shuffle)) resultVars["hints"].set(args.hints) if args.count: countVar.set(str(args.count)) diff --git a/Main.py b/Main.py index 0e090b67a..1f56e3392 100644 --- a/Main.py +++ b/Main.py @@ -33,7 +33,7 @@ def main(args, seed=None): [args.navicolordefault, args.navicolorenemy, args.navicolornpc, args.navicolorprop], args.healthSFX, args.custom_logic, - args.shuffle_text) + args.text_shuffle) logger = logging.getLogger('') if seed is None: random.seed(None) @@ -104,7 +104,7 @@ def main(args, seed=None): def copy_world(world): # ToDo: Not good yet - ret = World(world.bridge,world.open_forest, world.open_door_of_time, world.place_dungeon_items, world.check_beatable_only, world.hints, world.colors, world.navi_colors, world.healthSFX, world.custom_logic, world.shuffle_text) + ret = World(world.bridge,world.open_forest, world.open_door_of_time, world.place_dungeon_items, world.check_beatable_only, world.hints, world.colors, world.navi_colors, world.healthSFX, world.custom_logic, world.text_shuffle) ret.seed = world.seed ret.can_take_damage = world.can_take_damage create_regions(ret) diff --git a/Messages.py b/Messages.py index 9563a9354..470cc02b1 100644 --- a/Messages.py +++ b/Messages.py @@ -57,6 +57,11 @@ def read_bytes(rom, offset, len): 0xAA: '[Control Stick]', } +GOSSIP_STONE_MESSAGES = list( range(0x0401, 0x0421) ) # ids of the actual hints +GOSSIP_STONE_MESSAGES += [0x2053, 0x2054] # shared initial stone messages +TEMPLE_HINTS_MESSAGES = [0x7057, 0x707A] # dungeon reward hints from the temple of time pedestal + + def display_code_list(codes): message = "" for code in codes: @@ -117,24 +122,21 @@ def parse_text(self): break if next_char == 0x07: # goto self.has_goto = True - self.is_basic = False if next_char == 0x0A: # keep-open self.has_keep_open = True - self.is_basic = False if next_char == 0x0B: # event self.has_event = True - self.is_basic = False if next_char == 0x10: # ocarina self.has_ocarina = True - self.is_basic = False if next_char == 0x1B: # two choice self.has_two_choice = True - self.is_basic = False if next_char == 0x1C: # three choice self.has_three_choice = True - self.is_basic = False self.text = display_code_list(self.text_codes) + def is_basic(self): + return not (self.has_goto or self.has_keep_open or self.has_event or self.has_ocarina or self.has_two_choice or self.has_three_choice) + # read a single message def __init__(self, rom, offset, count): @@ -155,7 +157,6 @@ def __init__(self, rom, offset, count): self.has_ocarina = False self.has_two_choice = False self.has_three_choice = False - self.is_basic = True self.raw_text = read_bytes(rom, TEXT_START + self.offset, self.length) self.parse_text() @@ -186,17 +187,20 @@ def read_messages(rom): return messages # shuffles the messages in the game, making sure to keep various message types in their own group -def shuffle_messages(rom): +def shuffle_messages(rom, except_hints=True): messages = read_messages(rom) + + def is_not_exempt(m): + return not ( except_hints and m.id in (GOSSIP_STONE_MESSAGES + TEMPLE_HINTS_MESSAGES) ) - have_goto = list( filter( lambda m: m.has_goto, messages) ) # not shuffled yet - have_keep_open = list( filter( lambda m: m.has_keep_open, messages) ) - have_event = list( filter( lambda m: m.has_event, messages) ) - have_ocarina = list( filter( lambda m: m.has_ocarina, messages) ) - have_two_choice = list( filter( lambda m: m.has_two_choice, messages) ) - have_three_choice = list( filter( lambda m: m.has_three_choice, messages) ) - basic_messages = list( filter( lambda m: m.is_basic, messages) ) + have_goto = list( filter( lambda m: is_not_exempt(m) and m.has_goto, messages) ) # not shuffled yet + have_keep_open = list( filter( lambda m: is_not_exempt(m) and m.has_keep_open, messages) ) + have_event = list( filter( lambda m: is_not_exempt(m) and m.has_event, messages) ) + have_ocarina = list( filter( lambda m: is_not_exempt(m) and m.has_ocarina, messages) ) + have_two_choice = list( filter( lambda m: is_not_exempt(m) and m.has_two_choice, messages) ) + have_three_choice = list( filter( lambda m: is_not_exempt(m) and m.has_three_choice, messages) ) + basic_messages = list( filter( lambda m: is_not_exempt(m) and m.is_basic(), messages) ) def shuffle_group(group): diff --git a/OoTRandomizer.py b/OoTRandomizer.py index af0bb8553..918e95738 100644 --- a/OoTRandomizer.py +++ b/OoTRandomizer.py @@ -123,10 +123,13 @@ def start(): Removes a number of bad locations from logic, and adds a number allowed tricks ''', action='store_true') - parser.add_argument('--shuffle_text', help='''\ - Messages will be shuffled. - It's hilarious, but make sure you really know what people are actually asking for... - ''', action='store_true') + parser.add_argument('--text_shuffle', default='none', const='none', nargs='?', choices=['none', 'except_hints', 'complete'], + help='''\ + Choose how to shuffle the game's messages. + none: Default behavior + except_hints: All text except Gossip Stone hints and Dungeon reward hints is shuffled. + complete: All text is shuffled + ''') parser.add_argument('--suppress_rom', help='Do not create an output rom file.', action='store_true') parser.add_argument('--compress_rom', help='Create a compressed version of the output rom file.', action='store_true') parser.add_argument('--gui', help='Launch the GUI', action='store_true') diff --git a/Rom.py b/Rom.py index 5a6a10050..f721d11bd 100644 --- a/Rom.py +++ b/Rom.py @@ -1048,6 +1048,12 @@ def patch_rom(world, rom): rom.write_bytes(0xCA3EA2, [item_data[item.name][3][0], item_data[item.name][3][1]]) rom.write_bytes(0xCA3EA6, [item_data[item.name][3][2], item_data[item.name][3][3]]) + # text shuffle + if world.text_shuffle == 'except_hints': + shuffle_messages(rom, True) + elif world.text_shuffle == 'complete': + shuffle_messages(rom, False) + # patch tunic colors # Custom color tunic stuff Tunics = [] @@ -1134,10 +1140,6 @@ def patch_rom(world, rom): healthSFX = [0x00, 0x00, 0x00, 0x00] address = 0xADBA14 rom.write_bytes(address, healthSFX) - - # shuffle text - if world.shuffle_text: - shuffle_messages(rom) return rom From 0b98f7baa00e6c7b5a5e4a228cf84464e3042295 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Sat, 23 Jun 2018 17:11:21 -0500 Subject: [PATCH 036/755] Added ocarina song randomization. --- BaseClasses.py | 3 +- Gui.py | 20 +++- Main.py | 5 +- OcarinaSongs.py | 279 +++++++++++++++++++++++++++++++++++++++++++++++ OoTRandomizer.py | 3 + Rom.py | 4 + 6 files changed, 306 insertions(+), 8 deletions(-) create mode 100644 OcarinaSongs.py diff --git a/BaseClasses.py b/BaseClasses.py index ffa97fea5..cffcfaebd 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -6,7 +6,7 @@ class World(object): - def __init__(self, bridge, open_forest, open_door_of_time, place_dungeon_items, check_beatable_only, hints, colors, navi_colors, healthSFX, custom_logic, text_shuffle): + def __init__(self, bridge, open_forest, open_door_of_time, place_dungeon_items, check_beatable_only, hints, colors, navi_colors, healthSFX, custom_logic, text_shuffle, ocarina_songs): self.shuffle = 'vanilla' self.bridge = bridge self.dungeons = [] @@ -27,6 +27,7 @@ def __init__(self, bridge, open_forest, open_door_of_time, place_dungeon_items, self.hints = hints self.custom_logic = custom_logic self.text_shuffle = text_shuffle + self.ocarina_songs = ocarina_songs self.colors = colors self.navi_colors = navi_colors self.healthSFX = healthSFX diff --git a/Gui.py b/Gui.py index a8e2d7bb1..6915c8486 100644 --- a/Gui.py +++ b/Gui.py @@ -76,6 +76,7 @@ def MakeRadioList(parent, data): "nodungeonitems": { "text": "Remove Maps and Compasses", "group": "logic", "default": "checked" }, "beatableonly": { "text": "Only ensure seed is beatable", "group": "logic", "default": "checked" }, "custom_logic": { "text": "Use this fork's custom logic", "group": "logic", "default": "checked" }, + "ocarina_songs": { "text": "Randomize ocarina song notes", "group": "other", "default": "unchecked" }, } # radio list has a name, a list of options, and a default option bridge_requirements_data = { @@ -135,8 +136,11 @@ def MakeRadioList(parent, data): leftSideChecks = Frame(checkAndRadioFrame) if True: # just indenting for hierarchy clarity outputOptionsFrame = LabelFrame(leftSideChecks, text='Output', labelanchor=NW) - (textShuffleBridgeFrame, resultVars['text_shuffle']) = MakeRadioList(leftSideChecks, text_shuffle_data) - logicOptionsFrame = LabelFrame(checkAndRadioFrame, text='Logic', labelanchor=NW) + (textShuffleFrame, resultVars['text_shuffle']) = MakeRadioList(leftSideChecks, text_shuffle_data) + leftMiddleChecks = Frame(checkAndRadioFrame) + if True: # just indenting for hierarchy clarity + logicOptionsFrame = LabelFrame(leftMiddleChecks, text='Logic', labelanchor=NW) + otherOptionsFrame = LabelFrame(leftMiddleChecks, text='Other', labelanchor=NW) (rainbowBridgeFrame, resultVars['bridge']) = MakeRadioList(checkAndRadioFrame, bridge_requirements_data) (hintsFrame, resultVars['hints']) = MakeRadioList(checkAndRadioFrame, hint_options_data) @@ -158,7 +162,7 @@ def MakeRadioList(parent, data): # create a variable to access the box's state resultVars[var_name] = IntVar(value=default_value) # create the checkbox - parent = { 'output': outputOptionsFrame, 'logic': logicOptionsFrame }[info["group"]] # sorry, this is gross; I was reaching my limit + parent = { 'output': outputOptionsFrame, 'logic': logicOptionsFrame, 'other': otherOptionsFrame}[info["group"]] # sorry, this is gross; I was reaching my limit checkboxes[var_name] = Checkbutton(parent, text=info["text"], variable=resultVars[var_name]) checkboxes[var_name].pack(expand=True, anchor=W) @@ -181,9 +185,13 @@ def MakeRadioList(parent, data): # pack the hierarchy outputOptionsFrame.pack(expand=True, anchor=E, side=TOP) - textShuffleBridgeFrame.pack(expand=True, anchor=W, side=BOTTOM, pady=6) + textShuffleFrame.pack(expand=True, anchor=W, side=BOTTOM, pady=6) leftSideChecks.pack(expand=True, anchor=N, side=LEFT, padx=5) - logicOptionsFrame.pack(expand=True, anchor=N, side=LEFT, padx=5) + + logicOptionsFrame.pack(expand=True, anchor=E, side=TOP) + otherOptionsFrame.pack(expand=True, anchor=E, side=BOTTOM, pady=5) + leftMiddleChecks.pack(expand=True, anchor=N, side=LEFT, padx=5) + rainbowBridgeFrame.pack(expand=True, anchor=N, side=LEFT, padx=5) hintsFrame.pack(expand=True, anchor=N, side=LEFT, padx=5) @@ -248,6 +256,7 @@ def generateRom(): guiargs.beatableonly = bool(resultVars["beatableonly"].get()) guiargs.custom_logic = bool(resultVars["custom_logic"].get()) guiargs.text_shuffle = resultVars["text_shuffle"].get() + guiargs.ocarina_songs = resultVars["ocarina_songs"].get() guiargs.hints = resultVars["hints"].get() guiargs.rom = romVar.get() try: @@ -286,6 +295,7 @@ def generateRom(): resultVars["beatableonly"].set(int(args.beatableonly)) resultVars["custom_logic"].set(int(args.custom_logic)) resultVars["text_shuffle"].set(int(args.text_shuffle)) + resultVars["ocarina_songs"].set(int(args.ocarina_songs)) resultVars["hints"].set(args.hints) if args.count: countVar.set(str(args.count)) diff --git a/Main.py b/Main.py index 1f56e3392..336e75e45 100644 --- a/Main.py +++ b/Main.py @@ -33,7 +33,8 @@ def main(args, seed=None): [args.navicolordefault, args.navicolorenemy, args.navicolornpc, args.navicolorprop], args.healthSFX, args.custom_logic, - args.text_shuffle) + args.text_shuffle, + args.ocarina_songs) logger = logging.getLogger('') if seed is None: random.seed(None) @@ -104,7 +105,7 @@ def main(args, seed=None): def copy_world(world): # ToDo: Not good yet - ret = World(world.bridge,world.open_forest, world.open_door_of_time, world.place_dungeon_items, world.check_beatable_only, world.hints, world.colors, world.navi_colors, world.healthSFX, world.custom_logic, world.text_shuffle) + ret = World(world.bridge,world.open_forest, world.open_door_of_time, world.place_dungeon_items, world.check_beatable_only, world.hints, world.colors, world.navi_colors, world.healthSFX, world.custom_logic, world.text_shuffle, world.ocarina_songs) ret.seed = world.seed ret.can_take_damage = world.can_take_damage create_regions(ret) diff --git a/OcarinaSongs.py b/OcarinaSongs.py new file mode 100644 index 000000000..a16951f22 --- /dev/null +++ b/OcarinaSongs.py @@ -0,0 +1,279 @@ +PLAYBACK_START = 0xB781DC +PLAYBACK_LENGTH = 0xA0 +ACTIVATION_START = 0xB78E5C +ACTIVATION_LENGTH = 0x09 + +ACTIVATION_TO_PLAYBACK_NOTE = { + 0: 0x02, # A + 1: 0x05, # Down + 2: 0x09, # Right + 3: 0x0B, # Left + 4: 0x0E, # Up + 0xFF: 0xFF, # Rest +} + +import random + +# checks if one list is a sublist of the other (in either direction) +# python is magic..... +def subsong(song1, song2): + # convert both lists to strings + s1 = ''.join( map(chr, song1.activation)) + s2 = ''.join( map(chr, song2.activation)) + # check if either is a substring of the other + return (s1 in s2) or (s2 in s1) + +# give random durations and volumes to the notes +def random_playback(activation): + playback = [] + for note_index, note in enumerate(activation): + duration = random.randint(0x8, 0x20) + # make final note longer on average + if( note_index + 1 >= len(activation) ): + duration = random.randint(0x10, 0x30) + volume = random.randint(0x40, 0x60) + playback.append( {'note': note, 'duration': duration, 'volume': volume} ) + # randomly rest + if( random.random() < 0.1 ): + duration = random.randint(0x8, 0x18) + playback.append( {'note': 0xFF, 'duration': duration, 'volume': 0} ) + return playback + +# gives random volume and duration to the notes of piece +def random_piece_playback(piece): + playback = [] + for note in piece: + duration = random.randint(0x8, 0x20) + volume = random.randint(0x40, 0x60) + playback.append( {'note': note, 'duration': duration, 'volume': volume} ) + return playback + +# takes the volume/duration of playback, and notes of piece, and creates a playback piece +# assumes the lists are the same length +def copy_playback_info(playback, piece): + return [ { 'note': n, 'volume': p['volume'], 'duration': p['duration']} for (p, n) in zip(playback, piece) ] + +def identity(x): + return x + +def random_piece(count, allowed=range(0,5)): + return random.choices(allowed, k=count) + +def invert_piece(piece): + return [4 - note for note in piece] + +def reverse_piece(piece): + return piece[::-1] + +def clamp(val, low, high): + return max(low, min(high, val)) + +def transpose_piece(amount): + def transpose(piece): + return [clamp(note + amount, 0, 4) for note in piece] + return transpose + +def compose(f, g): + return lambda x: f(g(x)) + +def add_transform_to_piece(piece, transform): + return piece + transform(piece) + +def repeat(piece): + return 2 * piece + +# a Song contains it's simple note data, as well as the data to be stored into the rom +class Song(): + + def two_piece_playback(self, piece, extra_position='none', activation_transform=identity, playback_transform=identity): + piece_length = len(piece) + piece2 = activation_transform( piece ) + # add playback parameters + playback_piece1 = random_piece_playback(piece) + playback_piece2 = copy_playback_info(playback_transform(playback_piece1), piece2) + if extra_position == 'none': + self.length = 2 * piece_length + self.activation = piece + piece2 + # add a rest between + duration = random.randint(0x8, 0x18) + rest = {'note': 0xFF, 'duration': duration, 'volume': 0} + self.playback = playback_piece1 + [rest] + playback_piece2 + else: + self.length = 2 * piece_length + 1 + extra = random_piece(1) + extra_playback = random_piece_playback(extra) + if extra_position == 'start': + self.activation = extra + piece + piece2 + self.playback = extra_playback + playback_piece1 + playback_piece2 + elif extra_position == 'middle': + self.activation = piece + extra + piece2 + self.playback = playback_piece1 + extra_playback + playback_piece2 + elif extra_position == 'end': + self.activation = piece + piece2 + extra + self.playback = playback_piece1 + playback_piece2 + extra_playback + + # add rests between repeated notes in the playback so that they work in-game + def break_repeated_notes(self): + new_playback = [] + for note_index, note in enumerate(self.playback): + new_playback.append(note) + if ( note_index + 1 < len(self.playback) ) and \ + ( self.playback[note_index]['note'] == self.playback[note_index + 1]['note'] ): + new_playback.append( {'note': 0xFF, 'duration': 0x08, 'volume': 0} ) + self.playback = new_playback + + # create the list of bytes that will be written into the rom for the activation + def format_activation_data(self): + # data is 1 byte for the song length, + # len bytes for the song, and the remainder is padding + padding = [0] * (ACTIVATION_LENGTH - (self.length + 1)) + self.activation_data = [self.length] + self.activation + padding + + # create the list of byte that will be written in to the rom for the playback + def format_playback_data(self): + self.playback_data = [] + + for note in self.playback: + pitch = ACTIVATION_TO_PLAYBACK_NOTE[ note['note'] ] + self.playback_data += [pitch, 0, 0, note['duration'], note['volume'], 0, 0, 0] + # add a rest at the end + self.playback_data += [0xFF, 0, 0, 0, 0x40, 0, 0, 0] + # pad the rest of the song + padding = [0] * (PLAYBACK_LENGTH - len(self.playback_data)) + self.playback_data += padding + + def display(self): + activation_string = 'Activation Data:\n\t' + ' '.join( map( "{:02x}".format, self.activation_data) ) + # break playback into groups of 8... + index = 0 + broken_up_playback = [] + while index < len(self.playback_data): + broken_up_playback.append( self.playback_data[index:index + 8]) + index += 8 + playback_string = 'Playback Data:\n\t' + '\n\t'.join( map( lambda line: ' '.join( map( "{:02x}".format, line) ), broken_up_playback ) ) + return activation_string + '\n' + playback_string + + # create a song, based on a given scheme + def __init__(self, rand_song=True, piece_size=3, extra_position='none', starting_range=range(0,5), activation_transform=identity, playback_transform=identity): + if rand_song: + self.length = random.randint(4, 8) + self.activation = random.choices(range(0,5), k=self.length) + self.playback = random_playback(self.activation) + else: + if extra_position != 'none': + piece_size = 3 + piece = random_piece(piece_size, starting_range) + self.two_piece_playback(piece, extra_position, activation_transform, playback_transform) + + self.break_repeated_notes() + self.format_activation_data() + self.format_playback_data() + + __str__ = __repr__ = display + +# randomly choose song parameters +def get_random_song(): + + rand_song = random.choices([True, False], [1, 9])[0] + piece_size = random.choices([3, 4], [5, 2])[0] + extra_position = random.choices(['none', 'start', 'middle', 'end'], [12, 1, 1, 1])[0] + activation_transform = identity + playback_transform = identity + weight_damage = 0 + should_transpose = random.choices([True, False], [1, 4])[0] + starting_range=range(0,5) + if should_transpose: + weight_damage = 2 + direction = random.choices(['up', 'down'], [1, 1])[0] + if direction == 'up': + starting_range=range(0,4) + activation_transform = transpose_piece(1) + elif direction == 'down': + starting_range=range(1,5) + activation_transform = transpose_piece(-1) + should_invert = random.choices([True, False], [3 - weight_damage, 6])[0] + if should_invert: + weight_damage += 1 + activation_transform = compose(invert_piece, activation_transform) + should_reflect = random.choices([True, False], [5 - weight_damage, 4])[0] + if should_reflect: + activation_transform = compose(reverse_piece, activation_transform) + playback_transform = reverse_piece + + + # print([rand_song, piece_size, extra_position, starting_range, should_transpose, should_invert, should_reflect]) + + song = Song(rand_song, piece_size, extra_position, starting_range, activation_transform, playback_transform) + + # rate its difficulty + difficulty = 0 + difficulty = piece_size * 12 + if extra_position != 'none': + difficulty += 12 + if should_transpose: + difficulty += 25 + if should_reflect: + difficulty += 10 + if should_invert: + difficulty += 20 + if rand_song: + difficulty = 11 * len(song.activation) + + song.difficulty = difficulty + return song + + +# create a list of 12 songs, none of which are sub-strings of any other song +def generate_song_list(): + + songs = [] + + for _ in range(12): + while True: + # generate a completely random song + song = get_random_song() + # test the song against all existing songs + is_good = True + for other_song in songs: + if subsong(song, other_song): + is_good = False + if is_good: + songs.append(song) + break + + # sort the songs by length + songs.sort(key=lambda s: s.difficulty) + return songs + + + +# replace the playback and activation requirements for the ocarina songs +def replace_songs(rom): + songs = generate_song_list() + + #print('\n\n'.join(map(str, songs))) + + song_order = [ + 8, # zelda's lullaby + 6, # saria's song + 7, # epona's song + 11, # song of storms + 10, # song of time + 9, # sun's song + 5, # prelude of light + 0, # minuet of forest + 1, # bolero of fire + 2, # serenade of water + 3, # requiem of spirit + 4, # nocturne of shadow + ] + + # write the songs to the activation table + for index, song in enumerate(songs): + cur_offset = ACTIVATION_START + song_order[index] * ACTIVATION_LENGTH + rom.write_bytes(cur_offset, song.activation_data) + + # write the songs to the playback table + for song_index, song in enumerate(songs): + song_offset = PLAYBACK_START + song_order[song_index] * PLAYBACK_LENGTH + rom.write_bytes(song_offset, song.playback_data) \ No newline at end of file diff --git a/OoTRandomizer.py b/OoTRandomizer.py index 918e95738..1b449a27b 100644 --- a/OoTRandomizer.py +++ b/OoTRandomizer.py @@ -130,6 +130,9 @@ def start(): except_hints: All text except Gossip Stone hints and Dungeon reward hints is shuffled. complete: All text is shuffled ''') + parser.add_argument('--ocarina_songs', help='''\ + Randomizes the notes need to play for each ocarina song. + ''', action='store_true') parser.add_argument('--suppress_rom', help='Do not create an output rom file.', action='store_true') parser.add_argument('--compress_rom', help='Create a compressed version of the output rom file.', action='store_true') parser.add_argument('--gui', help='Launch the GUI', action='store_true') diff --git a/Rom.py b/Rom.py index f721d11bd..1e46ad88b 100644 --- a/Rom.py +++ b/Rom.py @@ -12,6 +12,7 @@ from Items import ItemFactory, item_data from TextArray import text_array from Messages import shuffle_messages +from OcarinaSongs import replace_songs TunicColors = { "Kokiri Green": [0x1E, 0x69, 0x1B], @@ -1054,6 +1055,9 @@ def patch_rom(world, rom): elif world.text_shuffle == 'complete': shuffle_messages(rom, False) + if world.ocarina_songs: + replace_songs(rom) + # patch tunic colors # Custom color tunic stuff Tunics = [] From f73837abfaeeac9525c39b56d7817c424d235c35 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Sat, 23 Jun 2018 17:52:37 -0500 Subject: [PATCH 037/755] Updated the readme finally. --- README.md | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d4d8cd1a0..455bc61c6 100644 --- a/README.md +++ b/README.md @@ -390,8 +390,13 @@ Create a compressed version of the output ROM file. (default: False) Open the graphical user interface. Preloads selections with set command line parameters. + # Notable Changes on this fork +## Optional Logic changes ("Use") + +These logic changes are applied by checking "Use this fork's logic" in the "Logic" box + - Removed Fishing minigame from logic - Removed Skulltulla rewards from logic - Removed 10 Big Poes reward from logic @@ -400,4 +405,16 @@ Open the graphical user interface. Preloads selections with set command line par - Added the DC jump to skip the slighshot room to logic - Child Dead Hand fight no longer requires a sword - Underwater room in Training Grounds and underwater Zora Fountain now require Zora Tunic -- Removed most Lens of Truth requirements +- Removed most Lens of Truth requirements (exceptions are Wasteland and Chest Minigame) + +## Changed hint system + +The hint system has been changed to include different kinds of hints (such as saying a location has something good, but not saying what item it is, or saying a specific item is somewhere in a dungeon, instead of giving the specific location, and so on.) An option has been added to allow talking to gossip stones from the start. Yes, this makes the Stone of Agony completely useless. + +## Text shuffle + +You can shuffle most of the text in the game. This is hilarious, but can get really confusing when buying from shops and such, so make sure you really know what people are actually asking for. + +## Ocarina song randomization + +You can randomize the note pattern that is required to activate each song. The new songs will be properly taught to you when you learn them, and can always be checked on the quest status screen like normal. \ No newline at end of file From 8cc0145f344b7af70e77a08d8d9d727117132dd4 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Sat, 23 Jun 2018 17:54:15 -0500 Subject: [PATCH 038/755] Fixed a typo in the readme. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 455bc61c6..d26e61f02 100644 --- a/README.md +++ b/README.md @@ -393,7 +393,7 @@ Open the graphical user interface. Preloads selections with set command line par # Notable Changes on this fork -## Optional Logic changes ("Use") +## Optional Logic changes These logic changes are applied by checking "Use this fork's logic" in the "Logic" box From 15dd5cf984035946517e1d2500a5dae464d637cb Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Sat, 23 Jun 2018 17:57:44 -0500 Subject: [PATCH 039/755] Added Navi colors to the readme. --- README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d26e61f02..28d69cb0d 100644 --- a/README.md +++ b/README.md @@ -393,6 +393,8 @@ Open the graphical user interface. Preloads selections with set command line par # Notable Changes on this fork +The GUI has been changed, and a number of default options have changed. Aside from these, the following were added or majorly changed: + ## Optional Logic changes These logic changes are applied by checking "Use this fork's logic" in the "Logic" box @@ -417,4 +419,8 @@ You can shuffle most of the text in the game. This is hilarious, but can get rea ## Ocarina song randomization -You can randomize the note pattern that is required to activate each song. The new songs will be properly taught to you when you learn them, and can always be checked on the quest status screen like normal. \ No newline at end of file +You can randomize the note pattern that is required to activate each song. The new songs will be properly taught to you when you learn them, and can always be checked on the quest status screen like normal. + +## Navi color options + +Similar to the tunic color options, you can change Navi's color for each of her different kinds of targets. \ No newline at end of file From 73bdbf050599478c44b55aa0e7f7f195b8b4f903 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Sun, 24 Jun 2018 03:50:23 -0500 Subject: [PATCH 040/755] Fixed song of time to play long enough to activate SoT blocks. --- OcarinaSongs.py | 38 +++++++++++++++++++++++++++++++++----- 1 file changed, 33 insertions(+), 5 deletions(-) diff --git a/OcarinaSongs.py b/OcarinaSongs.py index a16951f22..1beeb5dff 100644 --- a/OcarinaSongs.py +++ b/OcarinaSongs.py @@ -85,6 +85,28 @@ def repeat(piece): # a Song contains it's simple note data, as well as the data to be stored into the rom class Song(): + def increase_duration_to(self, duration): + if self.total_duration >= duration: + return + + duration_needed = duration - self.total_duration + last_note_duration = self.playback[-1]['duration'] + last_note_adds = 0x7F - last_note_duration + + if last_note_adds >= duration_needed: + self.playback[-1]['duration'] += duration_needed + self.format_playback_data() + return + else: + self.playback[-1]['duration'] = 0x7F + duration_needed -= last_note_adds + while duration_needed >= 0x7F: + self.playback.append( {'note': 0xFF, 'duration': 0x7F, 'volume': 0} ) + duration_needed -= 0x7F + self.playback.append( {'note': 0xFF, 'duration': duration_needed, 'volume': 0} ) + self.format_playback_data() + + def two_piece_playback(self, piece, extra_position='none', activation_transform=identity, playback_transform=identity): piece_length = len(piece) piece2 = activation_transform( piece ) @@ -133,11 +155,13 @@ def format_activation_data(self): def format_playback_data(self): self.playback_data = [] + self.total_duration = 0 for note in self.playback: pitch = ACTIVATION_TO_PLAYBACK_NOTE[ note['note'] ] self.playback_data += [pitch, 0, 0, note['duration'], note['volume'], 0, 0, 0] + self.total_duration += note['duration'] # add a rest at the end - self.playback_data += [0xFF, 0, 0, 0, 0x40, 0, 0, 0] + self.playback_data += [0xFF, 0, 0, 0, 0x5A, 0, 0, 0] # pad the rest of the song padding = [0] * (PLAYBACK_LENGTH - len(self.playback_data)) self.playback_data += padding @@ -268,12 +292,16 @@ def replace_songs(rom): 4, # nocturne of shadow ] - # write the songs to the activation table for index, song in enumerate(songs): + + # fix the song of time + if song_order[index] == 10: + song.increase_duration_to(260) + + # write the song to the activation table cur_offset = ACTIVATION_START + song_order[index] * ACTIVATION_LENGTH rom.write_bytes(cur_offset, song.activation_data) - # write the songs to the playback table - for song_index, song in enumerate(songs): - song_offset = PLAYBACK_START + song_order[song_index] * PLAYBACK_LENGTH + # write the songs to the playback table + song_offset = PLAYBACK_START + song_order[index] * PLAYBACK_LENGTH rom.write_bytes(song_offset, song.playback_data) \ No newline at end of file From d7097ec7757824ed007d247a66c6f48d79e0a9c1 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Sun, 24 Jun 2018 04:49:57 -0500 Subject: [PATCH 041/755] Fixed some bugs and potential bugs with text shuffle. --- Messages.py | 11 +++++++++-- Rom.py | 7 ++++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/Messages.py b/Messages.py index 470cc02b1..9022f95e1 100644 --- a/Messages.py +++ b/Messages.py @@ -126,6 +126,8 @@ def parse_text(self): self.has_keep_open = True if next_char == 0x0B: # event self.has_event = True + if next_char == 0x0E: # fade out + self.has_fade = True if next_char == 0x10: # ocarina self.has_ocarina = True if next_char == 0x1B: # two choice @@ -135,7 +137,7 @@ def parse_text(self): self.text = display_code_list(self.text_codes) def is_basic(self): - return not (self.has_goto or self.has_keep_open or self.has_event or self.has_ocarina or self.has_two_choice or self.has_three_choice) + return not (self.has_goto or self.has_keep_open or self.has_event or self.has_fade or self.has_ocarina or self.has_two_choice or self.has_three_choice) # read a single message def __init__(self, rom, offset, count): @@ -154,6 +156,7 @@ def __init__(self, rom, offset, count): self.has_goto = False self.has_keep_open = False self.has_event = False + self.has_fade = False self.has_ocarina = False self.has_two_choice = False self.has_three_choice = False @@ -192,11 +195,14 @@ def shuffle_messages(rom, except_hints=True): messages = read_messages(rom) def is_not_exempt(m): - return not ( except_hints and m.id in (GOSSIP_STONE_MESSAGES + TEMPLE_HINTS_MESSAGES) ) + exempt_as_too_short = (m.length < 4) + exempt_as_hint = ( except_hints and m.id in (GOSSIP_STONE_MESSAGES + TEMPLE_HINTS_MESSAGES) ) + return not ( exempt_as_too_short or exempt_as_hint ) have_goto = list( filter( lambda m: is_not_exempt(m) and m.has_goto, messages) ) # not shuffled yet have_keep_open = list( filter( lambda m: is_not_exempt(m) and m.has_keep_open, messages) ) have_event = list( filter( lambda m: is_not_exempt(m) and m.has_event, messages) ) + have_fade = list( filter( lambda m: is_not_exempt(m) and m.has_fade, messages) ) have_ocarina = list( filter( lambda m: is_not_exempt(m) and m.has_ocarina, messages) ) have_two_choice = list( filter( lambda m: is_not_exempt(m) and m.has_two_choice, messages) ) have_three_choice = list( filter( lambda m: is_not_exempt(m) and m.has_three_choice, messages) ) @@ -218,6 +224,7 @@ def shuffle_group(group): list( map( shuffle_group, [ have_keep_open, have_event, + have_fade, have_ocarina, have_two_choice, have_three_choice, diff --git a/Rom.py b/Rom.py index b2a5b25d0..83f4546bc 100644 --- a/Rom.py +++ b/Rom.py @@ -11,7 +11,7 @@ from Utils import local_path, output_path from Items import ItemFactory, item_data from TextArray import text_array -from Messages import shuffle_messages +from Messages import shuffle_messages, read_messages from OcarinaSongs import replace_songs TunicColors = { @@ -1060,6 +1060,11 @@ def patch_rom(world, rom): shuffle_messages(rom, True) elif world.text_shuffle == 'complete': shuffle_messages(rom, False) + # output a text dump, for testing... + # with open('text_dump_' + str(world.seed) + '.txt', 'w', encoding='utf-16') as f: + # messages = read_messages(rom) + # for m in messages: + # f.write(str(m) + '\n\n') if world.ocarina_songs: replace_songs(rom) From ca36e34d6e49b5de2279cb5e4b5254cf853d30b8 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Sun, 24 Jun 2018 07:35:17 -0500 Subject: [PATCH 042/755] Rearanged aesthetic box in GUI. --- Gui.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/Gui.py b/Gui.py index 4a64eafa6..d76ecb3f3 100644 --- a/Gui.py +++ b/Gui.py @@ -119,7 +119,7 @@ def MakeRadioList(parent, data): "kokiricolor": { "name": "Kokiri Tunic Color", "default": "Kokiri Green", "options": color_options, "row": "top" }, "goroncolor": { "name": "Goron Tunic Color", "default": "Goron Red", "options": color_options, "row": "top" }, "zoracolor": { "name": "Zora Tunic Color", "default": "Zora Blue", "options": color_options, "row": "top" }, - "healthSFX": { "name": "Low Health SFX", "default": "Default", "options": ['Default', 'Softer Beep', 'Rupee', 'Timer', 'Tamborine', 'Recovery Heart', 'Carrot Refill', 'Navi - Hey!', 'Zelda - Gasp', 'Cluck', 'Mweep!', 'Random', 'None'], "row": "top" }, + "healthSFX": { "name": "Low Health SFX", "default": "Default", "options": ['Default', 'Softer Beep', 'Rupee', 'Timer', 'Tamborine', 'Recovery Heart', 'Carrot Refill', 'Navi - Hey!', 'Zelda - Gasp', 'Cluck', 'Mweep!', 'Random', 'None'], "row": "right" }, "navicolordefault": { "name": "Navi Idle", "default": "White", "options": navi_options, "row": "bottom" }, "navicolorenemy": { "name": "Navi Targeting Enemy", "default": "Yellow", "options": navi_options, "row": "bottom" }, "navicolornpc": { "name": "Navi Targeting NPC", "default": "Light Blue", "options": navi_options, "row": "bottom" }, @@ -147,8 +147,12 @@ def MakeRadioList(parent, data): aestheticFrame = LabelFrame(randomizerWindow, text='Aesthetic', labelanchor=NW) if True: # just indenting for hierarchy clarity - aestheticTopFrame = Frame(aestheticFrame) - aestheticBottomFrame = Frame(aestheticFrame) + aestheticLeftFrame = Frame(aestheticFrame) + if True: # just indenting for hierarchy clarity + aestheticTopFrame = Frame(aestheticLeftFrame) + aestheticBottomFrame = Frame(aestheticLeftFrame) + aestheticRightFrame = Frame(aestheticFrame) + generateSeedFrame = Frame(randomizerWindow) @@ -173,7 +177,7 @@ def MakeRadioList(parent, data): # create the variable to store the user's decision resultVars[var_name] = StringVar(value=info['default']) # create the option menu - parent = { 'top': aestheticTopFrame, 'bottom': aestheticBottomFrame }[info["row"]] + parent = { 'top': aestheticTopFrame, 'bottom': aestheticBottomFrame, 'right': aestheticRightFrame}[info["row"]] dropdownFrames[var_name] = Frame(parent) # dropdown = OptionMenu(dropdownFrames[var_name], resultVars[var_name], *(info['options'])) dropdown = ttk.Combobox(dropdownFrames[var_name], textvariable=resultVars[var_name], values=info['options'], state='readonly') @@ -186,7 +190,7 @@ def MakeRadioList(parent, data): # pack the hierarchy outputOptionsFrame.pack(fill=BOTH, expand=True, anchor=E, side=TOP, pady=5) - textShuffleFrame.pack(fill=BOTH, expand=True, anchor=W, side=BOTTOM, pady=5) + textShuffleFrame.pack(fill=BOTH, expand=True, anchor=E, side=BOTTOM, pady=5) leftSideChecks.pack(fill=BOTH, expand=True, anchor=N, side=LEFT, padx=5) rainbowBridgeFrame.pack(fill=BOTH, expand=True, anchor=E, side=TOP, pady=5) @@ -198,8 +202,10 @@ def MakeRadioList(parent, data): checkAndRadioFrame.pack(side=TOP, anchor=N) - aestheticTopFrame.pack(fill=BOTH, expand=True, anchor=W, side=TOP) + aestheticTopFrame.pack(expand=True, anchor=W, side=TOP) aestheticBottomFrame.pack(fill=BOTH, expand=True, anchor=W, side=BOTTOM, pady=5) + aestheticRightFrame.pack(fill=BOTH, expand=True, anchor=N, side=RIGHT) + aestheticLeftFrame.pack(fill=BOTH, expand=True, anchor=N, side=LEFT) aestheticFrame.pack(fill=BOTH, anchor=W, padx=5) From 14905da89501a4a4cb502b833b3b1c530abeb448 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Mon, 25 Jun 2018 03:34:58 -0500 Subject: [PATCH 043/755] Improved text shuffle by removing id strings and properly handling goto and fade strings. --- Messages.py | 151 ++++++++++++++++++++++++++++++++++++++++------------ Rom.py | 10 ++-- 2 files changed, 122 insertions(+), 39 deletions(-) diff --git a/Messages.py b/Messages.py index 9022f95e1..c8e6410fb 100644 --- a/Messages.py +++ b/Messages.py @@ -60,6 +60,7 @@ def read_bytes(rom, offset, len): GOSSIP_STONE_MESSAGES = list( range(0x0401, 0x0421) ) # ids of the actual hints GOSSIP_STONE_MESSAGES += [0x2053, 0x2054] # shared initial stone messages TEMPLE_HINTS_MESSAGES = [0x7057, 0x707A] # dungeon reward hints from the temple of time pedestal +LIGHT_ARROW_HINT = [0x70CC] # ganondorf's light arrow hint line def display_code_list(codes): @@ -81,6 +82,18 @@ def display(self): else: return chr(self.code) + # writes the code to the given offset, and returns the offset of the next byte + def write(self, rom, offset): + rom.write_byte(TEXT_START + offset, self.code) + + extra_bytes = 0 + if self.code in CONTROL_CODES: + extra_bytes = CONTROL_CODES[self.code][1] + bytes_to_write = int.to_bytes(self.data, extra_bytes, byteorder='big', signed=False) + rom.write_bytes(TEXT_START + offset + 1, bytes_to_write) + + return offset + 1 + extra_bytes + def __init__(self, code, data): self.code = code if code in CONTROL_CODES: @@ -98,18 +111,28 @@ def display(self): meta_data = ["#" + str(self.count), "ID: 0x" + "{:04x}".format(self.id), "Offset: 0x" + "{:06x}".format(self.offset), - "Length: 0x" + "{:04x}".format(self.length), + "Length: 0x" + "{:04x}".format(self.unpadded_length) + "/0x" + "{:04x}".format(self.length), "Box Type: " + str(self.box_type), "Postion: " + str(self.position)] return ', '.join(meta_data) + '\n' + self.text + # check if this is an unused message that just contains it's own id as text + def is_id_message(self): + if self.unpadded_length == 5: + for i in range(4): + code = self.text_codes[i].code + if not (code in range(ord('0'),ord('9')+1) or code in range(ord('A'),ord('F')+1) or code in range(ord('a'),ord('f')+1) ): + return False + return True + return False + def parse_text(self): self.text_codes = [] index = 0 while index < self.length: next_char = self.raw_text[index] - data = next_char + data = 0 index += 1 if next_char in CONTROL_CODES: extra_bytes = CONTROL_CODES[next_char][1] @@ -122,34 +145,73 @@ def parse_text(self): break if next_char == 0x07: # goto self.has_goto = True + self.ending = text_code if next_char == 0x0A: # keep-open self.has_keep_open = True + self.ending = text_code if next_char == 0x0B: # event self.has_event = True + self.ending = text_code if next_char == 0x0E: # fade out self.has_fade = True + self.ending = text_code if next_char == 0x10: # ocarina self.has_ocarina = True + self.ending = text_code if next_char == 0x1B: # two choice self.has_two_choice = True if next_char == 0x1C: # three choice self.has_three_choice = True self.text = display_code_list(self.text_codes) + self.unpadded_length = index def is_basic(self): return not (self.has_goto or self.has_keep_open or self.has_event or self.has_fade or self.has_ocarina or self.has_two_choice or self.has_three_choice) + # writes a Message back into the rom, using the given index and offset to update the table + # returns the offset of the next message + def write(self, rom, index, offset, replace_ending=False, ending=None, always_allow_skip=True): + + # construct the table entry + id_bytes = int.to_bytes(self.id, 2, byteorder='big', signed=False) + offset_bytes = int.to_bytes(offset, 3, byteorder='big', signed=False) + entry = id_bytes + bytes([self.opts, 0x00, 0x07]) + offset_bytes + # write it back + entry_offset = TABLE_START + 8 * index + rom.write_bytes(entry_offset, entry) + + ending_codes = [0x02, 0x07, 0x0A, 0x0B, 0x0E, 0x10] + + # write the message + for code in self.text_codes: + # ignore ending codes if it's going to be replaced + if replace_ending and code.code in ending_codes: + pass + # ignore the "make unskippable flag" + elif always_allow_skip and code.code == 0x1A: + pass + else: + offset = code.write(rom, offset) + + if replace_ending: + if ending: + offset = ending.write(rom, offset) # write special ending + offset = Text_Code(0x02, 0).write(rom, offset) # write end code + + return offset + # read a single message - def __init__(self, rom, offset, count): + def __init__(self, rom, index): - entry = read_bytes(rom, offset, 8) - next = read_bytes(rom, offset + 8, 8) - opts = entry[2] + entry_offset = TABLE_START + 8 * index + entry = read_bytes(rom, entry_offset, 8) + next = read_bytes(rom, entry_offset + 8, 8) + self.opts = entry[2] - self.count = count + self.count = index self.id = int.from_bytes(entry[0:2], byteorder='big', signed=False) - self.box_type = (opts & 0xF0) >> 4 - self.position = (opts & 0x0F) + self.box_type = (self.opts & 0xF0) >> 4 + self.position = (self.opts & 0x0F) self.offset = int.from_bytes(entry[5:8], byteorder='big', signed=False) self.length = int.from_bytes(next[5:8], byteorder='big', signed=False) - self.offset @@ -160,6 +222,7 @@ def __init__(self, rom, offset, count): self.has_ocarina = False self.has_two_choice = False self.has_three_choice = False + self.ending = None self.raw_text = read_bytes(rom, TEXT_START + self.offset, self.length) self.parse_text() @@ -169,37 +232,61 @@ def __init__(self, rom, offset, count): # reads each of the game's messages into a list of Message objects def read_messages(rom): - offset = TABLE_START - count = 0 + table_offset = TABLE_START + index = 0 messages = [] while True: - entry = read_bytes(rom, offset, 8) + entry = read_bytes(rom, table_offset, 8) id = int.from_bytes(entry[0:2], byteorder='big', signed=False) if id == 0xFFFD: - offset += 8 + table_offset += 8 continue # this is only here to give an ending offset if id == 0xFFFF: break # this marks the end of the table - messages.append( Message(rom, offset, count) ) + messages.append( Message(rom, index) ) - count += 1 - offset += 8 + index += 1 + table_offset += 8 return messages +# wrtie the messages back +def repack_messages(rom, messages, permutation, always_allow_skip=True): + + # repack messages + offset = 0 + for old_index, new_index in enumerate(permutation): + old_message = messages[old_index] + new_message = messages[new_index] + remember_id = new_message.id + new_message.id = old_message.id + offset = new_message.write(rom, old_index, offset, True, old_message.ending, always_allow_skip) + new_message.id = remember_id + + # end the table + table_index = len(messages) + entry = bytes([0xFF, 0xFD, 0x00, 0x00, 0x07]) + int.to_bytes(offset, 3, byteorder='big', signed=False) + entry_offset = TABLE_START + 8 * table_index + rom.write_bytes(entry_offset, entry) + table_index += 1 + entry_offset = TABLE_START + 8 * table_index + rom.write_bytes(entry_offset, [0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]) + # shuffles the messages in the game, making sure to keep various message types in their own group -def shuffle_messages(rom, except_hints=True): +def shuffle_messages(rom, except_hints=True, always_allow_skip=True): messages = read_messages(rom) + permutation = [i for i, _ in enumerate(messages)] + def is_not_exempt(m): - exempt_as_too_short = (m.length < 4) - exempt_as_hint = ( except_hints and m.id in (GOSSIP_STONE_MESSAGES + TEMPLE_HINTS_MESSAGES) ) - return not ( exempt_as_too_short or exempt_as_hint ) + exaempt_as_id = m.is_id_message() + exempt_as_hint = ( except_hints and m.id in (GOSSIP_STONE_MESSAGES + TEMPLE_HINTS_MESSAGES + LIGHT_ARROW_HINT) ) + return not ( exaempt_as_id or exempt_as_hint ) - have_goto = list( filter( lambda m: is_not_exempt(m) and m.has_goto, messages) ) # not shuffled yet + have_goto = list( filter( lambda m: is_not_exempt(m) and m.has_goto, messages) ) have_keep_open = list( filter( lambda m: is_not_exempt(m) and m.has_keep_open, messages) ) have_event = list( filter( lambda m: is_not_exempt(m) and m.has_event, messages) ) have_fade = list( filter( lambda m: is_not_exempt(m) and m.has_fade, messages) ) @@ -210,23 +297,19 @@ def is_not_exempt(m): def shuffle_group(group): - permutation = list( range( len(group) ) ) - random.shuffle(permutation) + group_permutation = [i for i, _ in enumerate(group)] + random.shuffle(group_permutation) - for index_from, index_to in enumerate(permutation): - message_id = group[index_from].id - rom_location = TABLE_START + 8 * group[index_to].count - # print('0x' + "{:04x}".format(message_id) + " at #" + str(group[index_to].count) + " -> 0x" + "{:06x}".format(rom_location) ) - id_bytes = [(message_id >> 8) & 0xFF, message_id & 0xFF] - rom.write_bytes(rom_location, id_bytes) + for index_from, index_to in enumerate(group_permutation): + permutation[group[index_to].count] = group[index_from].count # need to use 'list' to force 'map' to actually run through list( map( shuffle_group, [ - have_keep_open, - have_event, - have_fade, + have_goto + have_keep_open + have_event + have_fade + basic_messages, have_ocarina, have_two_choice, have_three_choice, - basic_messages, - ])) \ No newline at end of file + ])) + + # write the messages back + repack_messages(rom, messages, permutation, always_allow_skip) \ No newline at end of file diff --git a/Rom.py b/Rom.py index 21a0699e5..b117b386c 100644 --- a/Rom.py +++ b/Rom.py @@ -1061,11 +1061,11 @@ def patch_rom(world, rom): shuffle_messages(rom, True) elif world.text_shuffle == 'complete': shuffle_messages(rom, False) - # output a text dump, for testing... - # with open('text_dump_' + str(world.seed) + '.txt', 'w', encoding='utf-16') as f: - # messages = read_messages(rom) - # for m in messages: - # f.write(str(m) + '\n\n') + # output a text dump, for testing... + # with open('text_dump_' + str(world.seed) + '.txt', 'w', encoding='utf-16') as f: + # messages = read_messages(rom) + # for m in messages: + # f.write(str(m) + '\n\n') if world.ocarina_songs: replace_songs(rom) From 093071bdd4172fa03acc16f4f3118e2ace6fbe9b Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Wed, 27 Jun 2018 02:24:42 -0500 Subject: [PATCH 044/755] Set up open gerudo fortress. --- Rom.py | 67 ++++++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 44 insertions(+), 23 deletions(-) diff --git a/Rom.py b/Rom.py index b117b386c..57c6868f6 100644 --- a/Rom.py +++ b/Rom.py @@ -876,29 +876,31 @@ def patch_rom(world, rom): rom.write_bytes(0xDBF428, [0x0C, 0x10, 0x03, 0x00]) #Set Fishing Hook # Write Initial Save File - Block_code = [0xA2, 0x28, 0x80, 0x20, 0x24, 0x05, 0x80, 0x02, 0x24, 0x0F, 0x00, 0x84, - 0x24, 0x18, 0x00, 0x01, 0x24, 0x19, 0x00, 0x08, 0x24, 0x08, 0x00, 0x80, - 0xA6, 0x25, 0x00, 0xD8, 0xA2, 0x2F, 0x00, 0xDA, 0xA2, 0x38, 0x01, 0x65, - 0xA2, 0x39, 0x09, 0xB6, 0xA2, 0x28, 0x0A, 0x24, 0xA2, 0x38, 0x0A, 0xCE, - 0xA2, 0x28, 0x0A, 0xCF, 0xA2, 0x28, 0x0A, 0xE8, 0x24, 0x05, 0x00, 0x20, - 0xA2, 0x25, 0x0B, 0x3F, 0xA2, 0x28, 0x0E, 0xDC, 0xA2, 0x25, 0x0E, 0xDD, - 0xA2, 0x25, 0x0E, 0xED, 0xA2, 0x38, 0x0E, 0xF9, 0xA2, 0x39, 0x0E, 0xDA, - 0xA2, 0x28, 0x0E, 0xE0, 0xA2, 0x38, 0x02, 0x0E, 0xA2, 0x39, 0x01, 0x49, - 0xA2, 0x39, 0x0E, 0xD6, 0x24, 0x05, 0x01, 0xFF, 0x24, 0x0F, 0x01, 0xFB, - 0x24, 0x18, 0x07, 0xFF, 0x24, 0x19, 0x00, 0x04, 0x24, 0x08, 0x00, 0x30, - 0xA6, 0x25, 0x0E, 0xE2, 0xA6, 0x2F, 0x0E, 0xE8, 0xA6, 0x38, 0x0E, 0xEA, - 0xA2, 0x28, 0x0E, 0xE7, 0xA2, 0x39, 0x0F, 0x1A, 0x24, 0x08, 0x10, 0x20, - 0x24, 0x19, 0x00, 0x2C, 0x24, 0x18, 0x00, 0x49, 0x24, 0x0F, 0x00, 0x02, - 0x24, 0x05, 0x00, 0x40, 0xA6, 0x28, 0x0E, 0xD4, 0x00, 0x00, 0x00, 0x00, - 0xA2, 0x38, 0x00, 0xF6, 0xA2, 0x2F, 0x00, 0x3F, 0xA2, 0x25, 0x0A, 0x42, - 0x92, 0x25, 0x0E, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xA2, 0x25, 0x0E, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x24, 0x08, 0x0F, 0x01, 0x24, 0x19, 0x00, 0x09, - 0x24, 0x18, 0x00, 0x03, 0x24, 0x0F, 0x00, 0x04, 0x24, 0x05, 0x00, 0x06, - 0xA6, 0x28, 0x01, 0x10, 0xA2, 0x39, 0x01, 0x2C, 0xA2, 0x38, 0x01, 0x2E, - 0xA2, 0x2F, 0x0F, 0x0A, 0xA2, 0x25, 0x0F, 0x21, 0x24, 0x05, 0x00, 0x00, - 0xA2, 0x25, 0x00, 0xA7, 0x24, 0x0F, 0x00, 0x21, 0xA2, 0x2F, 0x0E, 0xED, - 0x24, 0x0F, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x08] + # 0 1 2 3 4 5 6 7 8 9 A B C D E F + Block_code = [0xA2, 0x28, 0x80, 0x20, 0x24, 0x05, 0x80, 0x02, 0x24, 0x0F, 0x00, 0x84, 0x24, 0x18, 0x00, 0x01, # 0x3480600 + 0x24, 0x19, 0x00, 0x08, 0x24, 0x08, 0x00, 0x80, 0xA6, 0x25, 0x00, 0xD8, 0xA2, 0x2F, 0x00, 0xDA, # 0x3480610 + 0xA2, 0x38, 0x01, 0x65, 0xA2, 0x39, 0x09, 0xB6, 0xA2, 0x28, 0x0A, 0x24, 0xA2, 0x38, 0x0A, 0xCE, # 0x3480620 + 0xA2, 0x28, 0x0A, 0xCF, 0xA2, 0x28, 0x0A, 0xE8, 0x24, 0x05, 0x00, 0x20, 0xA2, 0x25, 0x0B, 0x3F, # 0x3480630 + 0xA2, 0x28, 0x0E, 0xDC, 0xA2, 0x25, 0x0E, 0xDD, 0xA2, 0x25, 0x0E, 0xED, 0xA2, 0x38, 0x0E, 0xF9, # 0x3480640 + 0xA2, 0x39, 0x0E, 0xDA, 0xA2, 0x28, 0x0E, 0xE0, 0xA2, 0x38, 0x02, 0x0E, 0xA2, 0x39, 0x01, 0x49, # 0x3480650 + 0xA2, 0x39, 0x0E, 0xD6, 0x24, 0x05, 0x01, 0xFF, 0x24, 0x0F, 0x01, 0xFB, 0x24, 0x18, 0x07, 0xFF, # 0x3480660 + 0x24, 0x19, 0x00, 0x04, 0x24, 0x08, 0x00, 0x30, 0xA6, 0x25, 0x0E, 0xE2, 0xA6, 0x2F, 0x0E, 0xE8, # 0x3480670 + 0xA6, 0x38, 0x0E, 0xEA, 0xA2, 0x28, 0x0E, 0xE7, 0xA2, 0x39, 0x0F, 0x1A, 0x24, 0x08, 0x10, 0x20, # 0x3480680 + 0x24, 0x19, 0x00, 0x2C, 0x24, 0x18, 0x00, 0x49, 0x24, 0x0F, 0x00, 0x02, 0x24, 0x05, 0x00, 0x40, # 0x3480690 + 0xA6, 0x28, 0x0E, 0xD4, 0x00, 0x00, 0x00, 0x00, 0xA2, 0x38, 0x00, 0xF6, 0xA2, 0x2F, 0x00, 0x3F, # 0x34806A0 + 0xA2, 0x25, 0x0A, 0x42, 0x92, 0x25, 0x0E, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # 0x34806B0 + 0xA2, 0x25, 0x0E, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # 0x34806C0 + 0x24, 0x08, 0x0F, 0x01, 0x24, 0x19, 0x00, 0x09, 0x24, 0x18, 0x00, 0x03, 0x24, 0x0F, 0x00, 0x04, # 0x34806D0 + 0x24, 0x05, 0x00, 0x06, 0xA6, 0x28, 0x01, 0x10, 0xA2, 0x39, 0x01, 0x2C, 0xA2, 0x38, 0x01, 0x2E, # 0x34806E0 + 0xA2, 0x2F, 0x0F, 0x0A, 0xA2, 0x25, 0x0F, 0x21, 0x24, 0x05, 0x00, 0x00, 0xA2, 0x25, 0x00, 0xA7, # 0x34806F0 + 0x24, 0x0F, 0x00, 0x21, 0xA2, 0x2F, 0x0E, 0xED, 0x24, 0x0F, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, # 0x3480700 + # load current stones # or with gerudo card # write it back # load nabooru states + 0x82, 0x25, 0x00, 0xA5, 0x34, 0xA5, 0x00, 0x00, 0xA2, 0x25, 0x00, 0xA5, 0x82, 0x25, 0x0E, 0xE7, # 0x3480710 + # or with carpenters # write it back # started gerudo fight # write the value + 0x34, 0xA5, 0x00, 0x00, 0xA2, 0x25, 0x0E, 0xE7, 0x24, 0x05, 0x00, 0x00, 0xA2, 0x25, 0x02, 0x29, # 0x3480720 + # yell/door unlock # write the value # picked up keys # write the value + 0x24, 0x05, 0x00, 0x00, 0xA6, 0x25, 0x02, 0x2A, 0x24, 0x05, 0x00, 0x00, 0xA2, 0x25, 0x02, 0x32, # 0x3480730 + 0x03, 0xE0, 0x00, 0x08] # 0x3480740 rom.write_bytes(0x3480600, Block_code) # Set up for Rainbow Bridge dungeons condition @@ -1046,6 +1048,8 @@ def patch_rom(world, rom): if location.name == 'Links Pocket': rom.write_byte(locationaddress, item_data[item.name][0]) rom.write_byte(secondaryaddress, item_data[item.name][1]) + # rom.write_byte(locationaddress, 0x1C) + # rom.write_byte(secondaryaddress, 0xA5) else: rom.write_byte(locationaddress, itemid) rom.write_byte(secondaryaddress, item_data[item.name][2]) @@ -1056,6 +1060,23 @@ def patch_rom(world, rom): rom.write_bytes(0xCA3EA2, [item_data[item.name][3][0], item_data[item.name][3][1]]) rom.write_bytes(0xCA3EA6, [item_data[item.name][3][2], item_data[item.name][3][3]]) + # open gerudo fortress + # TODO: make actual options + # TODO: update bridge crossing and card obtain rules with the option + # TODO: fast ganon effects Ganons Castle Tower rule + if False: + rom.write_byte(0x3480717, 0x40) # gerudo card itself + rom.write_byte(0x3480723, 0x0F) # carpenters are freed + rom.write_byte(0x348072B, 0x0F) # gerudo guard fight flags + rom.write_bytes(0x3480732, [0x01, 0xFE]) # heard yells/unlocked doors + rom.write_byte(0x348073B, 0xD4) # picked up keys/finished fights + if False: + rom.write_byte(0x3480723, 0x0E) # most carpenters are freed + rom.write_byte(0x348072B, 0x0D) # gerudo guard fight flags + rom.write_bytes(0x3480732, [0x01, 0xDC]) # heard yells/unlocked doors + rom.write_byte(0x348073B, 0xC4) # picked up keys/finished fights + + # text shuffle if world.text_shuffle == 'except_hints': shuffle_messages(rom, True) From 5becdad618a520d27887d2633e55aac05479cac3 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Wed, 27 Jun 2018 08:46:28 -0500 Subject: [PATCH 045/755] Reworked settings to make new settings easier to add. GUI is currently broken. --- BaseClasses.py | 28 ++-- Main.py | 41 ++---- OoTRandomizer.py | 149 ++------------------- Rom.py | 4 +- Settings.py | 327 +++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 367 insertions(+), 182 deletions(-) create mode 100644 Settings.py diff --git a/BaseClasses.py b/BaseClasses.py index 24abf0a87..7364b6888 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -6,13 +6,11 @@ class World(object): - def __init__(self, bridge, open_forest, open_door_of_time, place_dungeon_items, check_beatable_only, hints, fast_ganon, colors, navi_colors, healthSFX, custom_logic, text_shuffle, ocarina_songs): + def __init__(self, settings): self.shuffle = 'vanilla' - self.bridge = bridge self.dungeons = [] self.regions = [] self.itempool = [] - self.seed = None self.state = CollectionState(self) self._cached_locations = None self._entrance_cache = {} @@ -20,19 +18,19 @@ def __init__(self, bridge, open_forest, open_door_of_time, place_dungeon_items, self._entrance_cache = {} self._location_cache = {} self.required_locations = [] - self.check_beatable_only = check_beatable_only - self.place_dungeon_items = place_dungeon_items - self.open_forest = open_forest - self.open_door_of_time = open_door_of_time - self.hints = hints - self.custom_logic = custom_logic - self.text_shuffle = text_shuffle - self.ocarina_songs = ocarina_songs - self.colors = colors - self.navi_colors = navi_colors - self.healthSFX = healthSFX + + # dump settings directly into world's namespace + # this gives the world an attribute for every setting listed in Settings.py + self.settings = settings + self.__dict__.update(settings.__dict__) + # rename a few attributes... + self.place_dungeon_items = not self.nodungeonitems + self.check_beatable_only = self.beatableonly + # group a few others + self.tunic_colors = [self.kokiricolor, self.goroncolor, self.zoracolor] + self.navi_colors = [self.navicolordefault, self.navicolorenemy, self.navicolornpc, self.navicolorprop] + self.keysanity = False - self.fast_ganon = fast_ganon self.can_take_damage = True self.spoiler = Spoiler(self) diff --git a/Main.py b/Main.py index 89aff5699..d8710011a 100644 --- a/Main.py +++ b/Main.py @@ -19,35 +19,16 @@ __version__ = '2.0.0 f.LUM' -def main(args, seed=None): +def main(settings): start = time.clock() # initialize the world - world = World(args.bridge, - args.open_forest, - args.open_door_of_time, - not args.nodungeonitems, - args.beatableonly, - args.hints, - args.fast_ganon, - [args.kokiricolor, args.goroncolor, args.zoracolor], - [args.navicolordefault, args.navicolorenemy, args.navicolornpc, args.navicolorprop], - args.healthSFX, - args.custom_logic, - args.text_shuffle, - args.ocarina_songs) + world = World(settings) + logger = logging.getLogger('') - if seed is None: - random.seed(None) - world.seed = random.randint(0, 999999999) - else: - world.seed = int(seed) - random.seed(world.seed) - if args.create_spoiler: # Make game different if spoiler log is generated. - for i in range (0, 10): # Generate many random numbers to increase volatility. - new_base_seed = random.randint(0, 999999999) - random.seed(new_base_seed) + + random.seed(world.numeric_seed) logger.info('OoT Randomizer Version %s - Seed: %s\n\n', __version__, world.seed) @@ -84,13 +65,13 @@ def main(args, seed=None): logger.info('Patching ROM.') - outfilebase = 'OoT_%s%s%s%s%s_%s' % (world.bridge, "-openforest" if world.open_forest else "", "-opendoor" if world.open_door_of_time else "", "-fastganon" if world.fast_ganon else "", "-beatableonly" if world.check_beatable_only else "", world.seed) + outfilebase = 'OoT_%s_%s' % (world.settings_string, world.seed) - if not args.suppress_rom: - rom = LocalRom(args.rom) + if not settings.suppress_rom: + rom = LocalRom(settings.rom) patch_rom(world, rom) rom.write_to_file(output_path('%s.z64' % outfilebase)) - if args.compress_rom: + if settings.compress_rom: logger.info('Compressing ROM.') if platform.system() == 'Windows': subprocess.call(["Compress\Compress.exe", (output_path('%s.z64' % outfilebase)), (output_path('%s-comp.z64' % outfilebase))]) @@ -101,7 +82,7 @@ def main(args, seed=None): else: logger.info('OS not supported for compression') - if args.create_spoiler: + if settings.create_spoiler: world.spoiler.to_file(output_path('%s_Spoiler.txt' % outfilebase)) logger.info('Done. Enjoy.') @@ -111,7 +92,7 @@ def main(args, seed=None): def copy_world(world): # ToDo: Not good yet - ret = World(world.bridge, world.open_forest, world.open_door_of_time, world.place_dungeon_items, world.check_beatable_only, world.hints, world.fast_ganon, world.colors, world.navi_colors, world.healthSFX, world.custom_logic, world.text_shuffle, world.ocarina_songs) + ret = World(world.settings) ret.seed = world.seed ret.can_take_damage = world.can_take_damage create_regions(ret) diff --git a/OoTRandomizer.py b/OoTRandomizer.py index 601cf95af..9cf45ae67 100644 --- a/OoTRandomizer.py +++ b/OoTRandomizer.py @@ -9,7 +9,8 @@ from Gui import guiMain from Main import main from Utils import is_bundled, close_console -from Rom import get_tunic_color_options +from Rom import get_tunic_color_options, get_navi_color_options +from Settings import get_settings_from_command_line_args class ArgumentDefaultsHelpFormatter(argparse.RawTextHelpFormatter): @@ -19,130 +20,8 @@ def _get_help_string(self, action): def start(): - parser = argparse.ArgumentParser(formatter_class=ArgumentDefaultsHelpFormatter) - parser.add_argument('--create_spoiler', help='Output a Spoiler File', action='store_true') - parser.add_argument('--bridge', default='medallions', const='medallions', nargs='?', choices=['medallions', 'vanilla', 'dungeons', 'open'], - help='''\ - Select requirement to spawn the Rainbow Bridge to reach Ganon's Castle. (default: %(default)s) - Medallions: Collect all six medallions to create the bridge. - Vanilla: Collect only the Shadow and Spirit Medallions and then view the Light Arrow cutscene. - All Dungeons: Collect all spiritual stones and all medallions to create the bridge. - Open: The bridge will spawn without an item requirement. - ''') - parser.add_argument('--rom', default='ZOOTDEC.z64', help='Path to an OoT 1.0 rom to use as a base.') - parser.add_argument('--loglevel', default='info', const='info', nargs='?', choices=['error', 'info', 'warning', 'debug'], help='Select level of logging for output.') - parser.add_argument('--seed', help='Define seed number to generate.', type=int) - parser.add_argument('--count', help='''\ - Use to batch generate multiple seeds with same settings. - If --seed is provided, it will be used for the first seed, then - used to derive the next seed (i.e. generating 10 seeds with - --seed given will produce the same 10 (different) roms each - time). - ''', type=int) - parser.add_argument('--open_forest', help='''\ - Mido no longer blocks the path to the Deku Tree and - the Kokiri boy no longer blocks the path out of the forest. - ''', action='store_true') - parser.add_argument('--open_door_of_time', help='''\ - The Door of Time is open from the beginning of the game. - ''', action='store_true') - parser.add_argument('--fast_ganon', help='''\ - The barrier within Ganon's Castle leading to Ganon's Tower is dispelled from the - beginning of the game, the Boss Key is not required in Ganon's Tower, Ganondorf - gives a hint for the location of Light Arrows, and the tower collapse sequence - is removed. - ''', action='store_true') - parser.add_argument('--nodungeonitems', help='''\ - Remove Maps and Compasses from Itempool, replacing them by - empty slots. - ''', action='store_true') - parser.add_argument('--beatableonly', help='''\ - Only check if the game is beatable with placement. Do not - ensure all locations are reachable. This only has an effect - on the restrictive algorithm currently. - ''', action='store_true') - parser.add_argument('--hints', default='none', const='always', nargs='?', choices=['none', 'mask', 'agony', 'always'], - help='''\ - Choose how Gossip Stones behave - none: Default behavior - mask: Have useful hints that are read with the Mask of Truth (untested) - agony: Have useful hints that are read with Stone of Agony - always: Have useful hints which can always be read - ''') - parser.add_argument('--kokiricolor', default='Kokiri Green', const='Kokiri Green', nargs='?', choices=get_tunic_color_options(), - help='''\ - Choose the color for Link's Kokiri Tunic. (default: %(default)s) - Color: Make the Kokiri Tunic this color. - Random: Choose a random color from this list of colors. - True Random: Choose a random color from any color the N64 can draw. - ''') - parser.add_argument('--goroncolor', default='Goron Red', const='Goron Red', nargs='?', choices=get_tunic_color_options(), - help='''\ - Choose the color for Link's Goron Tunic. (default: %(default)s) - Color: Make the Goron Tunic this color. - Random: Choose a random color from this list of colors. - True Random: Choose a random color from any color the N64 can draw. - ''') - parser.add_argument('--zoracolor', default='Zora Blue', const='Zora Blue', nargs='?', choices=get_tunic_color_options(), - help='''\ - Choose the color for Link's Zora Tunic. (default: %(default)s) - Color: Make the Zora Tunic this color. - Random: Choose a random color from this list of colors. - True Random: Choose a random color from any color the N64 can draw. - ''') - parser.add_argument('--healthSFX', default='Default', const='Default', nargs='?', choices=['Default', 'Softer Beep', 'Rupee', 'Timer', 'Tamborine', 'Recovery Heart', 'Carrot Refill', 'Navi - Hey!', 'Zelda - Gasp', 'Cluck', 'Mweep!', 'Random', 'None'], - help='''\ - Select the sound effect that loops at low health. (default: %(default)s) - Sound: Replace the sound effect with the chosen sound. - Random: Replace the sound effect with a random sound from this list. - None: Eliminate heart beeps. - ''') - parser.add_argument('--navicolordefault', default='White', const='White', nargs='?', choices=get_navi_color_options(), - help='''\ - Choose the color for Navi when she is idle. (default: %(default)s) - Color: Make the Navi this color. - Random: Choose a random color from this list of colors. - True Random: Choose a random color from any color the N64 can draw. - ''') - parser.add_argument('--navicolorenemy', default='Yellow', const='Yellow', nargs='?', choices=get_navi_color_options(), - help='''\ - Choose the color for Navi when she is targeting an enemy. (default: %(default)s) - Color: Make the Navi this color. - Random: Choose a random color from this list of colors. - True Random: Choose a random color from any color the N64 can draw. - ''') - parser.add_argument('--navicolornpc', default='Light Blue', const='Light Blue', nargs='?', choices=get_navi_color_options(), - help='''\ - Choose the color for Navi when she is targeting an NPC. (default: %(default)s) - Color: Make the Navi this color. - Random: Choose a random color from this list of colors. - True Random: Choose a random color from any color the N64 can draw. - ''') - parser.add_argument('--navicolorprop', default='Green', const='Green', nargs='?', choices=get_navi_color_options(), - help='''\ - Choose the color for Navi when she is targeting a prop. (default: %(default)s) - Color: Make the Navi this color. - Random: Choose a random color from this list of colors. - True Random: Choose a random color from any color the N64 can draw. - ''') - parser.add_argument('--custom_logic', help='''\ - Removes a number of bad locations from logic, - and adds a number allowed tricks - ''', action='store_true') - parser.add_argument('--text_shuffle', default='none', const='none', nargs='?', choices=['none', 'except_hints', 'complete'], - help='''\ - Choose how to shuffle the game's messages. - none: Default behavior - except_hints: All text except Gossip Stone hints and Dungeon reward hints is shuffled. - complete: All text is shuffled - ''') - parser.add_argument('--ocarina_songs', help='''\ - Randomizes the notes need to play for each ocarina song. - ''', action='store_true') - parser.add_argument('--suppress_rom', help='Do not create an output rom file.', action='store_true') - parser.add_argument('--compress_rom', help='Create a compressed version of the output rom file.', action='store_true') - parser.add_argument('--gui', help='Launch the GUI', action='store_true') - args = parser.parse_args() + + settings, gui, args_loglevel = get_settings_from_command_line_args() if is_bundled() and len(sys.argv) == 1: # for the bundled builds, if we have no arguments, the user @@ -154,23 +33,23 @@ def start(): sys.exit(0) # ToDo: Validate files further than mere existance - if not os.path.isfile(args.rom): + if not os.path.isfile(settings.rom): input('Could not find valid base rom for patching at expected path %s. Please run with -h to see help for further information. \nPress Enter to exit.' % args.rom) sys.exit(1) # set up logger - loglevel = {'error': logging.ERROR, 'info': logging.INFO, 'warning': logging.WARNING, 'debug': logging.DEBUG}[args.loglevel] + loglevel = {'error': logging.ERROR, 'info': logging.INFO, 'warning': logging.WARNING, 'debug': logging.DEBUG}[args_loglevel] logging.basicConfig(format='%(message)s', level=loglevel) - if args.gui: - guiMain(args) - elif args.count is not None: - seed = args.seed - for _ in range(args.count): - main(seed=seed, args=args) - seed = random.randint(0, 999999999) + if gui: + guiMain(settings) + elif settings.count is not None: + orig_seed = settings.seed + for i in range(settings.count): + settings.update_seed(orig_seed + '-' + str(i)) + main(settings) else: - main(seed=args.seed, args=args) + main(settings) if __name__ == '__main__': start() diff --git a/Rom.py b/Rom.py index 57c6868f6..425dc1fc5 100644 --- a/Rom.py +++ b/Rom.py @@ -1102,14 +1102,14 @@ def patch_rom(world, rom): for i in range(len(Tunics)): # get the color option - thisColor = world.colors[i] + thisColor = world.tunic_colors[i] # handle true random randColor = [random.getrandbits(8), random.getrandbits(8), random.getrandbits(8)] if thisColor == 'True Random': color = randColor else: # handle random - if world.colors[i] == 'Random': + if world.tunic_colors[i] == 'Random': thisColor = randomColors[i] # grab the color from the list color = TunicColors[thisColor] diff --git a/Settings.py b/Settings.py new file mode 100644 index 000000000..23bbbbe57 --- /dev/null +++ b/Settings.py @@ -0,0 +1,327 @@ +import argparse +import textwrap +import string +import re +import random +import hashlib + +from Rom import get_tunic_color_options, get_navi_color_options + +class ArgumentDefaultsHelpFormatter(argparse.RawTextHelpFormatter): + + def _get_help_string(self, action): + return textwrap.dedent(action.help) + + +# 64 characters +letters = "abcdefghijklmnopqrstuvwxyz_ABCDEFGHIJKLMNOPQRSTUVWXYZ-0123456789" +index_to_letter = { i: letters[i] for i in range(64) } +letter_to_index = { v: k for k, v in index_to_letter.items() } + +def bit_string_to_text(bits): + # pad the bits array to be multiple of 6 + if len(bits) % 6 > 0: + bits += [0] * (6 - len(bits) % 6) + # convert to characters + result = "" + for i in range(0, len(bits), 6): + chunk = bits[i:i + 6] + value = 0 + for b in range(6): + value |= chunk[b] << b + result += index_to_letter[value] + return result + +def text_to_bit_string(text): + bits = [] + for c in text: + index = letter_to_index[c] + for b in range(6): + bits += [ (index >> b) & 1 ] + return bits + +# holds the info for a single setting +class Setting_Info(): + + def __init__(self, name, type, bitwidth=0, shared=False, args_params={}): + self.name = name # name of the setting, used as a key to retrieve the setting's value everywhere + self.type = type # type of the setting's value, used to properly convert types in GUI code + self.bitwidth = bitwidth # number of bits needed to store the setting, used in converting settings to a string + self.shared = shared # whether or not the setting is one that should be shared, used in converting settings to a string + self.args_params = args_params # parameters that should be pased to the command line argument parser's add_argument() function + +# holds the particular choices for a run's settings +class Settings(): + + def get_settings_string(self): + bits = [] + for setting in filter(lambda s: s.shared and s.bitwidth > 0, setting_infos): + value = self.__dict__[setting.name] + i_bits = [] + if setting.type == bool: + i_bits = [ 1 if value else 0 ] + if setting.type == str: + index = setting.args_params['choices'].index(value) + # https://stackoverflow.com/questions/10321978/integer-to-bitfield-as-a-list + i_bits = [1 if digit=='1' else 0 for digit in bin(index)[2:]] + i_bits.reverse() + # pad it + i_bits += [0] * ( setting.bitwidth - len(i_bits) ) + bits += i_bits + return bit_string_to_text(bits) + + def update_with_settings_string(self, text): + bits = text_to_bit_string(text) + + for setting in filter(lambda s: s.shared and s.bitwidth > 0, setting_infos): + cur_bits = bits[:setting.bitwidth] + bits = bits[setting.bitwidth:] + value = None + if setting.type == bool: + value = True if cur_bits[0] == 1 else False + if setting.type == str: + index = 0 + for b in range(setting.bitwidth): + index |= cur_bits[b] << b + value = setting.args_params['choices'][index] + print(setting.name + ': ' + str(value)) + self.__dict__[setting.name] = value + + self.settings_string = self.get_settings_string() + self.numeric_seed = self.get_numeric_seed() + + def get_numeric_seed(self): + # salt seed with the settings, and hash to get a numeric seed + full_string = self.settings_string + self.seed + return int(hashlib.sha256(full_string.encode('utf-8')).hexdigest(), 16) + + def sanatize_seed(self): + # leave only alphanumeric and some punctuation + self.seed = re.sub(r'[^a-zA-Z0-9_]', '', self.seed, re.UNICODE) + + def update_seed(self, seed): + self.seed = seed + self.sanatize_seed() + self.numeric_seed = self.get_numeric_seed() + + # add the settings as fields, and calculate information based on them + def __init__(self, settings_dict): + self.__dict__.update(settings_dict) + self.settings_string = self.get_settings_string() + if(self.seed is None): + # https://stackoverflow.com/questions/2257441/random-string-generation-with-upper-case-letters-and-digits-in-python + self.seed = ''.join(random.choices(string.ascii_uppercase + string.digits, k=10)) + self.sanatize_seed() + self.numeric_seed = self.get_numeric_seed() + + +# a list of the possible settings +setting_infos = [ + Setting_Info('rom', str, 0, False, { + 'default': 'ZOOTDEC.z64', + 'help': 'Path to an OoT 1.0 rom to use as a base.'}), + Setting_Info('seed', str, 0, False, { + 'help': 'Define seed number to generate.'}), + Setting_Info('count', int, 0, False, { + 'help': '''\ + Use to batch generate multiple seeds with same settings. + If --seed is provided, it will be used for the first seed, then + used to derive the next seed (i.e. generating 10 seeds with + --seed given will produce the same 10 (different) roms each + time). + ''', + 'type': int}), + Setting_Info('create_spoiler', bool, 1, True, { + 'help': 'Output a Spoiler File', + 'action': 'store_true'}), + Setting_Info('suppress_rom', bool, 0, False, { + 'help': 'Do not create an output rom file.', + 'action': 'store_true'}), + Setting_Info('compress_rom', bool, 0, False, { + 'help': 'Create a compressed version of the output rom file.', + 'action': 'store_true'}), + Setting_Info('bridge', str, 2, True, { + 'default': 'medallions', + 'const': 'medallions', + 'nargs': '?', + 'choices': ['medallions', 'vanilla', 'dungeons', 'open'], + 'help': '''\ + Select requirement to spawn the Rainbow Bridge to reach Ganon's Castle. (default: %(default)s) + Medallions: Collect all six medallions to create the bridge. + Vanilla: Collect only the Shadow and Spirit Medallions and then view the Light Arrow cutscene. + All Dungeons: Collect all spiritual stones and all medallions to create the bridge. + Open: The bridge will spawn without an item requirement. + '''}), + Setting_Info('open_forest', bool, 1, True, { + 'help': '''\ + Mido no longer blocks the path to the Deku Tree and + the Kokiri boy no longer blocks the path out of the forest. + ''', + 'action': 'store_true'}), + Setting_Info('open_door_of_time', bool, 1, True, { + 'help': '''\ + The Door of Time is open from the beginning of the game. + ''', + 'action': 'store_true'}), + Setting_Info('fast_ganon', bool, 1, True, { + 'help': '''\ + The barrier within Ganon's Castle leading to Ganon's Tower is dispelled from the + beginning of the game, the Boss Key is not required in Ganon's Tower, Ganondorf + gives a hint for the location of Light Arrows, and the tower collapse sequence + is removed. + ''', + 'action': 'store_true'}), + Setting_Info('nodungeonitems', bool, 1, True, { + 'help': '''\ + Remove Maps and Compasses from Itempool, replacing them by + empty slots. + ''', + 'action': 'store_true'}), + Setting_Info('beatableonly', bool, 1, True, { + 'help': '''\ + Only check if the game is beatable with placement. Do not + ensure all locations are reachable. This only has an effect + on the restrictive algorithm currently. + ''', + 'action': 'store_true'}), + Setting_Info('hints', str, 2, True, { + 'default': 'none', + 'const': 'always', + 'nargs': '?', + 'choices': ['none', 'mask', 'agony', 'always'], + 'help': '''\ + Choose how Gossip Stones behave + none: Default behavior + mask: Have useful hints that are read with the Mask of Truth (untested) + agony: Have useful hints that are read with Stone of Agony + always: Have useful hints which can always be read + '''}), + Setting_Info('custom_logic', bool, 1, True, { + 'help': '''\ + Removes a number of bad locations from logic, + and adds a number allowed tricks + ''', + 'action': 'store_true'}), + Setting_Info('text_shuffle', str, 2, True, { + 'default': 'none', + 'const': 'none', + 'nargs': '?', + 'choices': ['none', 'except_hints', 'complete'], + 'help': '''\ + Choose how to shuffle the game's messages. + none: Default behavior + except_hints: All text except Gossip Stone hints and Dungeon reward hints is shuffled. + complete: All text is shuffled + '''}), + Setting_Info('ocarina_songs', bool, 1, True, { + 'help': '''\ + Randomizes the notes need to play for each ocarina song. + ''', + 'action': 'store_true'}), + Setting_Info('kokiricolor', str, 0, False, { + 'default': 'Kokiri Green', + 'const': 'Kokiri Green', + 'nargs': '?', + 'choices': get_tunic_color_options(), + 'help': '''\ + Choose the color for Link's Kokiri Tunic. (default: %(default)s) + Color: Make the Kokiri Tunic this color. + Random: Choose a random color from this list of colors. + True Random: Choose a random color from any color the N64 can draw. + '''}), + Setting_Info('goroncolor', str, 0, False, { + 'default': 'Goron Red', + 'const': 'Goron Red', + 'nargs': '?', + 'choices': get_tunic_color_options(), + 'help': '''\ + Choose the color for Link's Goron Tunic. (default: %(default)s) + Color: Make the Goron Tunic this color. + Random: Choose a random color from this list of colors. + True Random: Choose a random color from any color the N64 can draw. + '''}), + Setting_Info('zoracolor', str, 0, False, { + 'default': 'Zora Blue', + 'const': 'Zora Blue', + 'nargs': '?', + 'choices': get_tunic_color_options(), + 'help': '''\ + Choose the color for Link's Zora Tunic. (default: %(default)s) + Color: Make the Zora Tunic this color. + Random: Choose a random color from this list of colors. + True Random: Choose a random color from any color the N64 can draw. + '''}), + Setting_Info('navicolordefault', str, 0, False, { + 'default': 'White', + 'const': 'White', + 'nargs': '?', + 'choices': get_navi_color_options(), + 'help': '''\ + Choose the color for Navi when she is idle. (default: %(default)s) + Color: Make the Navi this color. + Random: Choose a random color from this list of colors. + True Random: Choose a random color from any color the N64 can draw. + '''}), + Setting_Info('navicolorenemy', str, 0, False, { + 'default': 'Yellow', + 'const': 'Yellow', + 'nargs': '?', + 'choices': get_navi_color_options(), + 'help': '''\ + Choose the color for Navi when she is targeting an enemy. (default: %(default)s) + Color: Make the Navi this color. + Random: Choose a random color from this list of colors. + True Random: Choose a random color from any color the N64 can draw. + '''}), + Setting_Info('navicolornpc', str, 0, False, { + 'default': 'Light Blue', + 'const': 'Light Blue', + 'nargs': '?', + 'choices': get_navi_color_options(), + 'help': '''\ + Choose the color for Navi when she is targeting an NPC. (default: %(default)s) + Color: Make the Navi this color. + Random: Choose a random color from this list of colors. + True Random: Choose a random color from any color the N64 can draw. + '''}), + Setting_Info('navicolorprop', str, 0, False, { + 'default': 'Green', + 'const': 'Green', + 'nargs': '?', + 'choices': get_navi_color_options(), + 'help': '''\ + Choose the color for Navi when she is targeting a prop. (default: %(default)s) + Color: Make the Navi this color. + Random: Choose a random color from this list of colors. + True Random: Choose a random color from any color the N64 can draw. + '''}), + Setting_Info('healthSFX', str, 0, False, { + 'default': 'Default', + 'const': 'Default', + 'nargs': '?', + 'choices': ['Default', 'Softer Beep', 'Rupee', 'Timer', 'Tamborine', 'Recovery Heart', 'Carrot Refill', 'Navi - Hey!', 'Zelda - Gasp', 'Cluck', 'Mweep!', 'Random', 'None'], + 'help': '''\ + Select the sound effect that loops at low health. (default: %(default)s) + Sound: Replace the sound effect with the chosen sound. + Random: Replace the sound effect with a random sound from this list. + None: Eliminate heart beeps. + '''}), +] + +# gets the randomizer settings, whether to open the gui, and the logger level from command line arguments +def get_settings_from_command_line_args(): + parser = argparse.ArgumentParser(formatter_class=ArgumentDefaultsHelpFormatter) + for info in setting_infos: + parser.add_argument("--" + info.name, **info.args_params) + + parser.add_argument('--gui', help='Launch the GUI', action='store_true') + parser.add_argument('--loglevel', default='info', const='info', nargs='?', choices=['error', 'info', 'warning', 'debug'], help='Select level of logging for output.') + + args = parser.parse_args() + + result = {} + for info in setting_infos: + result[info.name] = vars(args)[info.name] + settings = Settings(result) + + return settings, args.gui, args.loglevel \ No newline at end of file From f919f65b86963552c7273e168fbfd46051cb1cb4 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Wed, 27 Jun 2018 08:51:58 -0500 Subject: [PATCH 046/755] Added command line option to import sharable settings with a single string. --- Settings.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Settings.py b/Settings.py index 23bbbbe57..ed5ca46ea 100644 --- a/Settings.py +++ b/Settings.py @@ -316,6 +316,7 @@ def get_settings_from_command_line_args(): parser.add_argument('--gui', help='Launch the GUI', action='store_true') parser.add_argument('--loglevel', default='info', const='info', nargs='?', choices=['error', 'info', 'warning', 'debug'], help='Select level of logging for output.') + parser.add_argument('--settings_string', help='Provide sharable settings using a settings string. This will override all flags that it specifies.') args = parser.parse_args() @@ -324,4 +325,7 @@ def get_settings_from_command_line_args(): result[info.name] = vars(args)[info.name] settings = Settings(result) + if args.settings_string is not None: + settings.update_with_settings_string(args.settings_string) + return settings, args.gui, args.loglevel \ No newline at end of file From 583869cfeef917f222b26cd5be7c31ec8fe840f7 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Wed, 27 Jun 2018 09:43:27 -0500 Subject: [PATCH 047/755] Updated gui to account for settings changes. --- Gui.py | 155 ++++++++++++++++++++++++++-------------------------- Settings.py | 20 +++---- 2 files changed, 88 insertions(+), 87 deletions(-) diff --git a/Gui.py b/Gui.py index d76ecb3f3..700fe5d3a 100644 --- a/Gui.py +++ b/Gui.py @@ -13,8 +13,57 @@ from Main import main, __version__ as ESVersion from Utils import is_bundled, local_path, output_path, open_file from Rom import get_tunic_color_options, get_navi_color_options - -def guiMain(args=None): +from Settings import Settings, setting_infos + + +def settings_to_guivars(settings, guivars): + for info in setting_infos: + name = info.name + if name not in guivars: + continue + guivar = guivars[name] + value = settings.__dict__[name] + # checkbox + if info.type == bool: + guivar.set( int(value) ) + # dropdown/radiobox + if info.type == str: + if value is None: + guivar.set( "" ) + else: + guivar.set( value ) + # text field for a number... + if info.type == int: + if value is None: + guivar.set( str(1) ) + else: + guivar.set( str(value) ) + +def guivars_to_settings(guivars): + result = {} + for info in setting_infos: + name = info.name + if name not in guivars: + result[name] = none + continue + guivar = guivars[name] + # checkbox + if info.type == bool: + result[name] = bool(guivar.get()) + # dropdown/radiobox + if info.type == str: + result[name] = guivar.get() + # text field for a number... + if info.type == int: + result[name] = int( guivar.get() ) + if result['seed'] == "": + result['seed'] = None + if result['count'] == 1: + result['count'] = None + + return Settings(result) + +def guiMain(settings=None): mainWindow = Tk() mainWindow.wm_title("OoT Randomizer %s" % ESVersion) @@ -127,7 +176,7 @@ def MakeRadioList(parent, data): } # hold the results of the user's decisions here - resultVars = {} + guivars = {} # hierarchy ############ @@ -137,13 +186,13 @@ def MakeRadioList(parent, data): leftSideChecks = Frame(checkAndRadioFrame) if True: # just indenting for hierarchy clarity outputOptionsFrame = LabelFrame(leftSideChecks, text='Output', labelanchor=NW) - (textShuffleFrame, resultVars['text_shuffle']) = MakeRadioList(leftSideChecks, text_shuffle_data) + (textShuffleFrame, guivars['text_shuffle']) = MakeRadioList(leftSideChecks, text_shuffle_data) leftMiddleChecks = Frame(checkAndRadioFrame) if True: # just indenting for hierarchy clarity - (rainbowBridgeFrame, resultVars['bridge']) = MakeRadioList(leftMiddleChecks, bridge_requirements_data) + (rainbowBridgeFrame, guivars['bridge']) = MakeRadioList(leftMiddleChecks, bridge_requirements_data) otherOptionsFrame = LabelFrame(leftMiddleChecks, text='Other', labelanchor=NW) logicOptionsFrame = LabelFrame(checkAndRadioFrame, text='Logic', labelanchor=NW) - (hintsFrame, resultVars['hints']) = MakeRadioList(checkAndRadioFrame, hint_options_data) + (hintsFrame, guivars['hints']) = MakeRadioList(checkAndRadioFrame, hint_options_data) aestheticFrame = LabelFrame(randomizerWindow, text='Aesthetic', labelanchor=NW) if True: # just indenting for hierarchy clarity @@ -165,22 +214,22 @@ def MakeRadioList(parent, data): # determine the initial value of the checkbox default_value = 1 if info["default"] == "checked" else 0 # create a variable to access the box's state - resultVars[var_name] = IntVar(value=default_value) + guivars[var_name] = IntVar(value=default_value) # create the checkbox parent = { 'output': outputOptionsFrame, 'logic': logicOptionsFrame, 'other': otherOptionsFrame}[info["group"]] # sorry, this is gross; I was reaching my limit - checkboxes[var_name] = Checkbutton(parent, text=info["text"], variable=resultVars[var_name]) + checkboxes[var_name] = Checkbutton(parent, text=info["text"], variable=guivars[var_name]) checkboxes[var_name].pack(expand=True, anchor=W) # create the dropdowns dropdownFrames = {} for var_name, info in dropdownInfo.items(): # create the variable to store the user's decision - resultVars[var_name] = StringVar(value=info['default']) + guivars[var_name] = StringVar(value=info['default']) # create the option menu parent = { 'top': aestheticTopFrame, 'bottom': aestheticBottomFrame, 'right': aestheticRightFrame}[info["row"]] dropdownFrames[var_name] = Frame(parent) - # dropdown = OptionMenu(dropdownFrames[var_name], resultVars[var_name], *(info['options'])) - dropdown = ttk.Combobox(dropdownFrames[var_name], textvariable=resultVars[var_name], values=info['options'], state='readonly') + # dropdown = OptionMenu(dropdownFrames[var_name], guivars[var_name], *(info['options'])) + dropdown = ttk.Combobox(dropdownFrames[var_name], textvariable=guivars[var_name], values=info['options'], state='readonly') dropdown.pack(side=BOTTOM, anchor=W) # label the option label = Label(dropdownFrames[var_name], text=info['name']) @@ -216,12 +265,12 @@ def MakeRadioList(parent, data): romDialogFrame = Frame(fileDialogFrame) baseRomLabel = Label(romDialogFrame, text='Base Rom') - romVar = StringVar() - romEntry = Entry(romDialogFrame, textvariable=romVar) + guivars['rom'] = StringVar() + romEntry = Entry(romDialogFrame, textvariable=guivars['rom']) def RomSelect(): rom = filedialog.askopenfilename(filetypes=[("Rom Files", (".z64", ".n64")), ("All Files", "*")]) - romVar.set(rom) + guivars['rom'].set(rom) romSelectButton = Button(romDialogFrame, text='Select Rom', command=RomSelect) baseRomLabel.pack(side=LEFT) @@ -234,47 +283,24 @@ def RomSelect(): seedLabel = Label(generateSeedFrame, text='Seed #') - seedVar = StringVar() - seedEntry = Entry(generateSeedFrame, textvariable=seedVar) + guivars['seed'] = StringVar() + seedEntry = Entry(generateSeedFrame, textvariable=guivars['seed']) countLabel = Label(generateSeedFrame, text='Count') - countVar = StringVar() - countSpinbox = Spinbox(generateSeedFrame, from_=1, to=100, textvariable=countVar) + guivars['count'] = StringVar() + countSpinbox = Spinbox(generateSeedFrame, from_=1, to=100, textvariable=guivars['count']) + def generateRom(): - guiargs = Namespace - guiargs.seed = int(seedVar.get()) if seedVar.get() else None - guiargs.count = int(countVar.get()) if countVar.get() != '1' else None - guiargs.bridge = resultVars["bridge"].get() - guiargs.kokiricolor = resultVars["kokiricolor"].get() - guiargs.goroncolor = resultVars["goroncolor"].get() - guiargs.zoracolor = resultVars["zoracolor"].get() - guiargs.healthSFX = resultVars["healthSFX"].get() - guiargs.navicolordefault = resultVars["navicolordefault"].get() - guiargs.navicolorenemy = resultVars["navicolorenemy"].get() - guiargs.navicolornpc = resultVars["navicolornpc"].get() - guiargs.navicolorprop = resultVars["navicolorprop"].get() - - guiargs.create_spoiler = bool(resultVars["create_spoiler"].get()) - guiargs.suppress_rom = bool(resultVars["suppress_rom"].get()) - guiargs.compress_rom = bool(resultVars["compress_rom"].get()) - guiargs.open_forest = bool(resultVars["open_forest"].get()) - guiargs.open_door_of_time = bool(resultVars["open_door_of_time"].get()) - guiargs.fast_ganon = bool(resultVars["fast_ganon"].get()) - guiargs.nodungeonitems = bool(resultVars["nodungeonitems"].get()) - guiargs.beatableonly = bool(resultVars["beatableonly"].get()) - guiargs.custom_logic = bool(resultVars["custom_logic"].get()) - guiargs.text_shuffle = resultVars["text_shuffle"].get() - guiargs.ocarina_songs = resultVars["ocarina_songs"].get() - guiargs.hints = resultVars["hints"].get() - guiargs.rom = romVar.get() + settings = guivars_to_settings(guivars) + try: - if guiargs.count is not None: - seed = guiargs.seed - for _ in range(guiargs.count): - main(seed=seed, args=guiargs) - seed = random.randint(0, 999999999) + if settings.count is not None: + orig_seed = settings.seed + for i in range(settings.count): + settings.update_seed(orig_seed + '-' + str(i)) + main(settings) else: - main(seed=guiargs.seed, args=guiargs) + main(settings) except Exception as e: messagebox.showerror(title="Error while creating seed", message=str(e)) else: @@ -292,34 +318,9 @@ def generateRom(): generateSeedFrame.pack(side=BOTTOM, anchor=S, padx=5, pady=10) - if args is not None: + if settings is not None: # load values from commandline args - resultVars["create_spoiler"].set(int(args.create_spoiler)) - resultVars["suppress_rom"].set(int(args.suppress_rom)) - resultVars["compress_rom"].set(int(args.compress_rom)) - resultVars["open_forest"].set(int(args.open_forest)) - resultVars["open_door_of_time"].set(int(args.open_door_of_time)) - resultVars["fast_ganon"].set(int(args.fast_ganon)) - resultVars["nodungeonitems"].set(int(args.nodungeonitems)) - resultVars["beatableonly"].set(int(args.beatableonly)) - resultVars["custom_logic"].set(int(args.custom_logic)) - resultVars["text_shuffle"].set(int(args.text_shuffle)) - resultVars["ocarina_songs"].set(int(args.ocarina_songs)) - resultVars["hints"].set(args.hints) - if args.count: - countVar.set(str(args.count)) - if args.seed: - seedVar.set(str(args.seed)) - resultVars["bridge"].set(args.bridge) - resultVars["kokiricolor"].set(args.kokiricolor) - resultVars["goroncolor"].set(args.goroncolor) - resultVars["zoracolor"].set(args.zoracolor) - resultVars["healthSFX"].set(args.healthSFX) - resultVars["navicolordefault"].set(args.navicolordefault) - resultVars["navicolorenemy"].set(args.navicolorenemy) - resultVars["navicolornpc"].set(args.navicolornpc) - resultVars["navicolorprop"].set(args.navicolorprop) - romVar.set(args.rom) + settings_to_guivars(settings, guivars) mainWindow.mainloop() diff --git a/Settings.py b/Settings.py index ed5ca46ea..6410a7026 100644 --- a/Settings.py +++ b/Settings.py @@ -13,21 +13,21 @@ def _get_help_string(self, action): return textwrap.dedent(action.help) -# 64 characters -letters = "abcdefghijklmnopqrstuvwxyz_ABCDEFGHIJKLMNOPQRSTUVWXYZ-0123456789" -index_to_letter = { i: letters[i] for i in range(64) } +# 32 characters +letters = "ABCDEFGHJKLMNPQRSTUVWXYZ23456789" +index_to_letter = { i: letters[i] for i in range(32) } letter_to_index = { v: k for k, v in index_to_letter.items() } def bit_string_to_text(bits): - # pad the bits array to be multiple of 6 - if len(bits) % 6 > 0: - bits += [0] * (6 - len(bits) % 6) + # pad the bits array to be multiple of 5 + if len(bits) % 5 > 0: + bits += [0] * (5 - len(bits) % 5) # convert to characters result = "" - for i in range(0, len(bits), 6): - chunk = bits[i:i + 6] + for i in range(0, len(bits), 5): + chunk = bits[i:i + 5] value = 0 - for b in range(6): + for b in range(5): value |= chunk[b] << b result += index_to_letter[value] return result @@ -36,7 +36,7 @@ def text_to_bit_string(text): bits = [] for c in text: index = letter_to_index[c] - for b in range(6): + for b in range(5): bits += [ (index >> b) & 1 ] return bits From 6feeeb8f89f68e4998f4437dda882b014171d6ff Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Wed, 27 Jun 2018 11:56:31 -0500 Subject: [PATCH 048/755] Added gerudo fortress options. Updated logic to take fast ganon into account. Added settings string importing for GUI. --- BaseClasses.py | 6 ++++++ Gui.py | 56 ++++++++++++++++++++++++++++++++++++++++++++------ Rom.py | 7 ++----- Rules.py | 8 ++++---- Settings.py | 14 +++++++++++-- 5 files changed, 74 insertions(+), 17 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 7364b6888..46c679019 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -605,9 +605,12 @@ def parse_data(self): 'bridge': self.world.bridge, 'forest': self.world.open_forest, 'door': self.world.open_door_of_time, + 'gerudo_fortress': self.world.gerudo_fortress, 'ganon': self.world.fast_ganon, 'completeable': not self.world.check_beatable_only, 'dungeonitems': self.world.place_dungeon_items, + 'text_shuffle': self.world.text_shuffle, + 'ocarina_songs': self.world.ocarina_songs, 'hints': self.world.hints} def to_file(self, filename): @@ -617,10 +620,13 @@ def to_file(self, filename): outfile.write('Rainbow Bridge Requirement: %s\n' % self.metadata['bridge']) outfile.write('Open Forest: %s\n' % ('Yes' if self.metadata['forest'] else 'No')) outfile.write('Open Door of Time: %s\n' % ('Yes' if self.metadata['door'] else 'No')) + outfile.write('Gerudo Fortress: %s\n' % self.metadata['gerudo_fortress']) outfile.write('Fast Ganon\'s Castle: %s\n' % ('Yes' if self.metadata['ganon'] else 'No')) outfile.write('All Locations Accessible: %s\n' % ('Yes' if self.metadata['completeable'] else 'No, some locations may be unreachable')) outfile.write('Maps and Compasses in Dungeons: %s\n' % ('Yes' if self.metadata['dungeonitems'] else 'No')) outfile.write('Hints: %s\n' % self.metadata['hints']) + outfile.write('Text Shuffle: %s\n' % self.metadata['text_shuffle']) + outfile.write('Random Ocarina Songs: %s\n' % ('Yes' if self.metadata['ocarina_songs'] else 'No')) outfile.write('\n\nLocations:\n\n') outfile.write('\n'.join(['%s: %s' % (location, item) for (location, item) in self.locations['other locations'].items()])) outfile.write('\n\nPlaythrough:\n\n') diff --git a/Gui.py b/Gui.py index 700fe5d3a..11f41ef3f 100644 --- a/Gui.py +++ b/Gui.py @@ -140,6 +140,16 @@ def MakeRadioList(parent, data): "default": "medallions", "wraplength": 180, } + gerudo_fortress_data = { + "name": "Gerudo Fortress", + "options": [ + { "value": "normal", "description": "Default Behavior" }, + { "value": "fast", "description": "Only rescue one carpenter" }, + { "value": "open", "description": "Start with Gerudo Card" }, + ], + "default": "fast", + "wraplength": 180, + } hint_options_data = { "name": "Gossip Stones", "options": [ @@ -190,9 +200,12 @@ def MakeRadioList(parent, data): leftMiddleChecks = Frame(checkAndRadioFrame) if True: # just indenting for hierarchy clarity (rainbowBridgeFrame, guivars['bridge']) = MakeRadioList(leftMiddleChecks, bridge_requirements_data) - otherOptionsFrame = LabelFrame(leftMiddleChecks, text='Other', labelanchor=NW) + (gerudoFrame, guivars['gerudo_fortress']) = MakeRadioList(leftMiddleChecks, gerudo_fortress_data) logicOptionsFrame = LabelFrame(checkAndRadioFrame, text='Logic', labelanchor=NW) - (hintsFrame, guivars['hints']) = MakeRadioList(checkAndRadioFrame, hint_options_data) + rightSideChecks = Frame(checkAndRadioFrame) + if True: # just indenting for hierarchy clarity + (hintsFrame, guivars['hints']) = MakeRadioList(rightSideChecks, hint_options_data) + otherOptionsFrame = LabelFrame(rightSideChecks, text='Other', labelanchor=NW) aestheticFrame = LabelFrame(randomizerWindow, text='Aesthetic', labelanchor=NW) if True: # just indenting for hierarchy clarity @@ -202,6 +215,7 @@ def MakeRadioList(parent, data): aestheticBottomFrame = Frame(aestheticLeftFrame) aestheticRightFrame = Frame(aestheticFrame) + settingsFrame = Frame(randomizerWindow) generateSeedFrame = Frame(randomizerWindow) @@ -243,11 +257,14 @@ def MakeRadioList(parent, data): leftSideChecks.pack(fill=BOTH, expand=True, anchor=N, side=LEFT, padx=5) rainbowBridgeFrame.pack(fill=BOTH, expand=True, anchor=E, side=TOP, pady=5) - otherOptionsFrame.pack(fill=BOTH, expand=True, anchor=E, side=BOTTOM, pady=5) + gerudoFrame.pack(fill=BOTH, expand=True, anchor=E, side=BOTTOM, pady=5) leftMiddleChecks.pack(fill=BOTH, expand=True, anchor=N, side=LEFT, padx=5) logicOptionsFrame.pack(fill=BOTH, expand=True, anchor=N, side=LEFT, padx=5, pady=5) - hintsFrame.pack(fill=BOTH, expand=True, anchor=N, side=LEFT, padx=5, pady=5) + + hintsFrame.pack(fill=BOTH, expand=True, anchor=E, side=TOP, pady=5) + otherOptionsFrame.pack(fill=BOTH, expand=True, anchor=E, side=BOTTOM, pady=5) + rightSideChecks.pack(fill=BOTH, expand=True, anchor=N, side=LEFT, padx=5) checkAndRadioFrame.pack(side=TOP, anchor=N) @@ -261,11 +278,38 @@ def MakeRadioList(parent, data): # didn't refactor the rest, sorry + settings_string_var = StringVar() + settingsEntry = Entry(settingsFrame, textvariable=settings_string_var) + + def show_settings(): + settings = guivars_to_settings(guivars) + settings_string_var.set( settings.get_settings_string() ) + + def import_settings(): + try: + settings = guivars_to_settings(guivars) + text = settings_string_var.get().upper() + settings.seed = guivars['seed'].get() + settings.update_with_settings_string(text) + settings_to_guivars(settings, guivars) + except Exception as e: + messagebox.showerror(title="Error", message="Invalid settings string") + + showSettingsButton = Button(settingsFrame, text='Show Settings String', command=show_settings) + importSettingsButton = Button(settingsFrame, text='Import Settings String', command=import_settings) + + showSettingsButton.pack(side=LEFT, padx=(6,10)) + settingsEntry.pack(side=LEFT) + importSettingsButton.pack(side=LEFT, padx=10) + + settingsFrame.pack(fill=BOTH, anchor=W, padx=5, pady=(10,0)) + + fileDialogFrame = Frame(generateSeedFrame) romDialogFrame = Frame(fileDialogFrame) baseRomLabel = Label(romDialogFrame, text='Base Rom') - guivars['rom'] = StringVar() + guivars['rom'] = StringVar(value='ZOOTDEC.z64') romEntry = Entry(romDialogFrame, textvariable=guivars['rom']) def RomSelect(): @@ -316,7 +360,7 @@ def generateRom(): openOutputButton.pack(side=RIGHT) - generateSeedFrame.pack(side=BOTTOM, anchor=S, padx=5, pady=10) + generateSeedFrame.pack(side=BOTTOM, anchor=W, padx=5, pady=10) if settings is not None: # load values from commandline args diff --git a/Rom.py b/Rom.py index 425dc1fc5..5fb55e0bd 100644 --- a/Rom.py +++ b/Rom.py @@ -1061,16 +1061,13 @@ def patch_rom(world, rom): rom.write_bytes(0xCA3EA6, [item_data[item.name][3][2], item_data[item.name][3][3]]) # open gerudo fortress - # TODO: make actual options - # TODO: update bridge crossing and card obtain rules with the option - # TODO: fast ganon effects Ganons Castle Tower rule - if False: + if world.gerudo_fortress == 'open': rom.write_byte(0x3480717, 0x40) # gerudo card itself rom.write_byte(0x3480723, 0x0F) # carpenters are freed rom.write_byte(0x348072B, 0x0F) # gerudo guard fight flags rom.write_bytes(0x3480732, [0x01, 0xFE]) # heard yells/unlocked doors rom.write_byte(0x348073B, 0xD4) # picked up keys/finished fights - if False: + elif world.gerudo_fortress == 'fast': rom.write_byte(0x3480723, 0x0E) # most carpenters are freed rom.write_byte(0x348072B, 0x0D) # gerudo guard fight flags rom.write_bytes(0x3480732, [0x01, 0xDC]) # heard yells/unlocked doors diff --git a/Rules.py b/Rules.py index 67ba5fa88..94ba34bb2 100644 --- a/Rules.py +++ b/Rules.py @@ -239,9 +239,9 @@ def global_rules(world): set_rule(world.get_location('Shadow Temple Freestanding Key'), lambda state: state.has('Small Key (Shadow Temple)', 2) and state.has('Progressive Hookshot')) set_rule(world.get_location('Bongo Bongo'), lambda state: state.has('Small Key (Shadow Temple)', 5) and (state.has('Bow') or state.has('Progressive Hookshot', 2)) and state.has('Boss Key (Shadow Temple)')) set_rule(world.get_location('Bongo Bongo Heart'), lambda state: state.has('Small Key (Shadow Temple)', 5) and (state.has('Bow') or state.has('Progressive Hookshot', 2)) and state.has('Boss Key (Shadow Temple)')) - set_rule(world.get_entrance('Bridge Crossing'), lambda state: (state.has('Epona') or state.has('Progressive Hookshot', 2)) and state.is_adult()) + set_rule(world.get_entrance('Bridge Crossing'), lambda state: (state.has('Epona') or state.has('Progressive Hookshot', 2) or world.gerudo_fortress == 'open') and state.is_adult()) set_rule(world.get_location('Gerudo Valley Hammer Rocks Chest'), lambda state: state.has('Hammer') and state.is_adult()) - set_rule(world.get_entrance('Fortress Entrance'), lambda state: (state.has('Bow') or state.has('Progressive Hookshot') or state.has('Hover Boots')) and state.is_adult()) + set_rule(world.get_entrance('Fortress Entrance'), lambda state: (state.has('Bow') or state.has('Progressive Hookshot') or state.has('Hover Boots') or world.gerudo_fortress == 'open' or world.gerudo_fortress == 'fast') and state.is_adult()) set_rule(world.get_entrance('Gerudo Training Grounds Entrance'), lambda state: state.has('Gerudo Membership Card') and state.is_adult()) set_rule(world.get_entrance('Haunted Wasteland Entrance'), lambda state: state.has('Gerudo Membership Card') and state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot', 2))) set_rule(world.get_entrance('Haunted Wasteland Crossing'), lambda state: state.has('Lens of Truth') and state.has('Magic Meter')) @@ -306,7 +306,7 @@ def global_rules(world): set_rule(world.get_location('Twinrova Heart'), lambda state: state.has('Mirror Shield') and state.has('Bomb Bag') and state.has('Progressive Hookshot') and state.has('Boss Key (Spirit Temple)')) set_rule(world.get_location('Zelda'), lambda state: state.has('Shadow Medallion') and state.has('Spirit Medallion')) set_rule(world.get_entrance('Ganons Castle Light Trial'), lambda state: state.has('Progressive Strength Upgrade', 3)) - set_rule(world.get_entrance('Ganons Castle Tower'), lambda state: state.has('Forest Trial Clear') and state.has('Fire Trial Clear') and state.has('Water Trial Clear') and state.has('Shadow Trial Clear') and state.has('Spirit Trial Clear') and state.has('Light Trial Clear')) + set_rule(world.get_entrance('Ganons Castle Tower'), lambda state: (state.has('Forest Trial Clear') and state.has('Fire Trial Clear') and state.has('Water Trial Clear') and state.has('Shadow Trial Clear') and state.has('Spirit Trial Clear') and state.has('Light Trial Clear')) or world.fast_ganon ) set_rule(world.get_location('Ganons Castle Forest Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and (state.has('Fire Arrows') or (state.has('Progressive Hookshot') and state.has('Dins Fire')))) set_rule(world.get_location('Ganons Castle Fire Trial Clear'), lambda state: state.has_GoronTunic() and state.has('Progressive Strength Upgrade', 3) and state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and state.has('Progressive Hookshot', 2)) set_rule(world.get_location('Ganons Castle Water Trial Clear'), lambda state: state.has_bottle() and state.has('Hammer') and state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows')) @@ -319,7 +319,7 @@ def global_rules(world): set_rule(world.get_location('Ganons Castle Light Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Progressive Hookshot') and state.has('Light Arrows') and state.has('Small Key (Ganons Castle)', 2)) set_rule(world.get_location('Ganons Castle Light Trail Invisible Enemies Chest'), lambda state: state.has('Magic Meter') and state.has('Lens of Truth')) set_rule(world.get_location('Ganons Castle Light Trial Lullaby Chest'), lambda state: state.has('Zeldas Lullaby') and state.has('Small Key (Ganons Castle)', 1)) - set_rule(world.get_location('Ganon'), lambda state: state.has('Boss Key (Ganons Castle)')) + set_rule(world.get_location('Ganon'), lambda state: state.has('Boss Key (Ganons Castle)') or (world.fast_ganon and state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows')) ) set_rule(world.get_entrance('Kokiri Forest Storms Grotto'), lambda state: state.has('Song of Storms')) set_rule(world.get_entrance('Lost Woods Generic Grotto'), lambda state: state.can_blast()) set_rule(world.get_entrance('Lost Woods Sales Grotto'), lambda state: state.has('Bomb Bag') or (state.has('Hammer') and state.is_adult() and (state.has('Minuet of Forest') or state.has('Sarias Song')))) diff --git a/Settings.py b/Settings.py index 6410a7026..6f87c2fe2 100644 --- a/Settings.py +++ b/Settings.py @@ -84,7 +84,6 @@ def update_with_settings_string(self, text): for b in range(setting.bitwidth): index |= cur_bits[b] << b value = setting.args_params['choices'][index] - print(setting.name + ': ' + str(value)) self.__dict__[setting.name] = value self.settings_string = self.get_settings_string() @@ -97,7 +96,7 @@ def get_numeric_seed(self): def sanatize_seed(self): # leave only alphanumeric and some punctuation - self.seed = re.sub(r'[^a-zA-Z0-9_]', '', self.seed, re.UNICODE) + self.seed = re.sub(r'[^a-zA-Z0-9_-]', '', self.seed, re.UNICODE) def update_seed(self, seed): self.seed = seed @@ -163,6 +162,17 @@ def __init__(self, settings_dict): The Door of Time is open from the beginning of the game. ''', 'action': 'store_true'}), + Setting_Info('gerudo_fortress', str, 2, True, { + 'default': 'normal', + 'const': 'normal', + 'nargs': '?', + 'choices': ['normal', 'fast', 'open'], + 'help': '''\ + Select how much of Gerudo Fortress is required. (default: %(default)s) + Normal: Free all four carpenters to get the Gerudo Card. + Fast: Free only the carpenter closest to Link's prison to get the Gerudo Card. + Open: Start with the Gerudo Card and all it's benefits. + '''}), Setting_Info('fast_ganon', bool, 1, True, { 'help': '''\ The barrier within Ganon's Castle leading to Ganon's Tower is dispelled from the From 042ed01d3e05ff0a97274106c656f2b3d37780e7 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Wed, 27 Jun 2018 12:06:55 -0500 Subject: [PATCH 049/755] Updated README. --- README.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 92237daf5..c1cb65b2c 100644 --- a/README.md +++ b/README.md @@ -396,7 +396,12 @@ Open the graphical user interface. Preloads selections with set command line par # Notable Changes on this fork -The GUI has been changed, and a number of default options have changed. Aside from these, the following were added or majorly changed: +The following were added or majorly changed on this fork: + +## GUI changes + +- Seeds can be text instead of just numbers +- Can get, share, and import a settings string to quickly set seed-changing options ## Optional Logic changes @@ -412,6 +417,13 @@ These logic changes are applied by checking "Use this fork's logic" in the "Logi - Underwater room in Training Grounds and underwater Zora Fountain now require Zora Tunic - Removed most Lens of Truth requirements (exceptions are Wasteland and Chest Minigame) +## Gerudo Fortress options + +Options for speeding up carpenter rescue portion of Gerudo Fortress + +- fast: Only the carpenter nearest to the prison Link is tossed into needs to be freed to obtain the Gerudo Card and get all of its benefits; the other three carpenters are freed from the start +- open: All carpenters are freed from the start, and you start with the Gerudo Card and all of its benefits (and thus the bridge across the valley is always built) + ## Changed hint system The hint system has been changed to include different kinds of hints (such as saying a location has something good, but not saying what item it is, or saying a specific item is somewhere in a dungeon, instead of giving the specific location, and so on.) An option has been added to allow talking to gossip stones from the start. Yes, this makes the Stone of Agony completely useless. From 99c5331d65a442cde141433528127e99a93ef0ba Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Wed, 27 Jun 2018 12:50:28 -0500 Subject: [PATCH 050/755] GUI settings are saved on close and loaded on open. Defaults are changed to match original defaults. --- Gui.py | 34 ++++++++++++++++++++++++---------- Settings.py | 11 +++++++++++ 2 files changed, 35 insertions(+), 10 deletions(-) diff --git a/Gui.py b/Gui.py index 11f41ef3f..9ce4acac4 100644 --- a/Gui.py +++ b/Gui.py @@ -119,13 +119,13 @@ def MakeRadioList(parent, data): checkboxInfo = { "create_spoiler": { "text": "Create Spoiler Log", "group": "output", "default": "checked" }, "suppress_rom": { "text": "Do not create patched Rom", "group": "output", "default": "unchecked" }, - "compress_rom": { "text": "Compress patched Rom", "group": "output", "default": "checked" }, - "open_forest": { "text": "Open Forest", "group": "logic", "default": "checked" }, - "open_door_of_time": { "text": "Open Door of Time", "group": "logic", "default": "checked" }, - "fast_ganon": { "text": "Skip most of Ganon's Castle", "group": "logic", "default": "checked" }, - "nodungeonitems": { "text": "Remove Maps and Compasses", "group": "logic", "default": "checked" }, - "beatableonly": { "text": "Only ensure seed is beatable", "group": "logic", "default": "checked" }, - "custom_logic": { "text": "Use this fork's custom logic", "group": "logic", "default": "checked" }, + "compress_rom": { "text": "Compress patched Rom", "group": "output", "default": "unchecked" }, + "open_forest": { "text": "Open Forest", "group": "logic", "default": "unchecked" }, + "open_door_of_time": { "text": "Open Door of Time", "group": "logic", "default": "unchecked" }, + "fast_ganon": { "text": "Skip most of Ganon's Castle", "group": "logic", "default": "unchecked" }, + "nodungeonitems": { "text": "Remove Maps and Compasses", "group": "logic", "default": "unchecked" }, + "beatableonly": { "text": "Only ensure seed is beatable", "group": "logic", "default": "unchecked" }, + "custom_logic": { "text": "Use this fork's custom logic", "group": "logic", "default": "unchecked" }, "ocarina_songs": { "text": "Randomize ocarina song notes", "group": "other", "default": "unchecked" }, } # radio list has a name, a list of options, and a default option @@ -147,7 +147,7 @@ def MakeRadioList(parent, data): { "value": "fast", "description": "Only rescue one carpenter" }, { "value": "open", "description": "Start with Gerudo Card" }, ], - "default": "fast", + "default": "normal", "wraplength": 180, } hint_options_data = { @@ -158,8 +158,8 @@ def MakeRadioList(parent, data): { "value": "agony", "description": "Have useful hints; read with Stone of Agony" }, { "value": "always", "description": "Have useful hints; can always be read" }, ], - "default": "always", - "wraplength": 140, + "default": "agony", + "wraplength": 170, } text_shuffle_data = { "name": "Text Shuffle", @@ -365,8 +365,22 @@ def generateRom(): if settings is not None: # load values from commandline args settings_to_guivars(settings, guivars) + else: + # try to load saved settings + # try: + with open('settings.sav') as f: + settings = Settings( json.load(f) ) + settings.update_seed("") + settings_to_guivars(settings, guivars) + # except: + # pass mainWindow.mainloop() + # save settings on close + with open('settings.sav', 'w') as outfile: + settings = guivars_to_settings(guivars) + json.dump(settings.__dict__, outfile) + if __name__ == '__main__': guiMain() diff --git a/Settings.py b/Settings.py index 6f87c2fe2..ee94cee48 100644 --- a/Settings.py +++ b/Settings.py @@ -106,6 +106,17 @@ def update_seed(self, seed): # add the settings as fields, and calculate information based on them def __init__(self, settings_dict): self.__dict__.update(settings_dict) + for info in setting_infos: + if info.name not in self.__dict__: + if info.type == bool: + self.__dict__[info.name] = False + if info.type == str: + if 'default' in info.args_params: + self.__dict__[info.name] = info.args_params['default'] + else: + self.__dict__[info.name] = "" + if info.type == int: + self.__dict__[info.name] = 1 self.settings_string = self.get_settings_string() if(self.seed is None): # https://stackoverflow.com/questions/2257441/random-string-generation-with-upper-case-letters-and-digits-in-python From 5d4aedf5ac797795ac36f84a0d827d6d8b166798 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Wed, 27 Jun 2018 12:52:41 -0500 Subject: [PATCH 051/755] Fixed error if settings.sav did not exist. --- Gui.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Gui.py b/Gui.py index 9ce4acac4..76e085693 100644 --- a/Gui.py +++ b/Gui.py @@ -367,13 +367,13 @@ def generateRom(): settings_to_guivars(settings, guivars) else: # try to load saved settings - # try: - with open('settings.sav') as f: - settings = Settings( json.load(f) ) - settings.update_seed("") - settings_to_guivars(settings, guivars) - # except: - # pass + try: + with open('settings.sav') as f: + settings = Settings( json.load(f) ) + settings.update_seed("") + settings_to_guivars(settings, guivars) + except: + pass mainWindow.mainloop() From aef37294773a88456a2023c502a628c6fe31c6d7 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Fri, 29 Jun 2018 02:58:27 -0500 Subject: [PATCH 052/755] Made map/compass replacement pool more interesting. Removed bottled blue fire from the pool. --- ItemList.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ItemList.py b/ItemList.py index df8aaf5dd..d09a3f2bb 100644 --- a/ItemList.py +++ b/ItemList.py @@ -11,9 +11,11 @@ alwaysitems = (['Kokiri Sword', 'Biggoron Sword', 'Boomerang', 'Lens of Truth', 'Hammer', 'Iron Boots', 'Goron Tunic', 'Zora Tunic', 'Hover Boots', 'Mirror Shield', 'Stone of Agony', 'Fire Arrows', 'Ice Arrows', 'Light Arrows', 'Dins Fire', 'Farores Wind', 'Nayrus Love', 'Rupee (1)'] + ['Progressive Hookshot'] * 2 + ['Deku Shield'] * 4 + ['Hylian Shield'] * 2 + ['Ice Trap'] * 6 + ['Progressive Strength Upgrade'] * 3 + ['Progressive Scale'] * 2 + ['Piece of Heart'] * 35 + ['Recovery Heart'] * 11 + ['Rupees (5)'] * 17 + ['Rupees (20)'] * 5 + ['Rupees (50)'] * 7 + ['Rupees (200)'] * 6 + ['Bow'] * 3 + ['Slingshot'] * 3 + ['Bomb Bag'] * 3 + ['Bottle with Letter'] + ['Heart Container'] * 8 + ['Piece of Heart (Treasure Chest Game)'] + ['Bombs (5)'] * 2 + ['Bombs (10)'] * 2 + ['Bombs (20)'] * 2 + ['Bombchus (5)'] + ['Bombchus (10)'] * 3 + ['Bombchus (20)'] + ['Arrows (5)'] + ['Arrows (10)'] * 6 + ['Arrows (30)'] * 6 + ['Deku Nuts (5)'] + ['Deku Nuts (10)'] + ['Progressive Wallet'] * 2 + ['Deku Stick Capacity'] * 2 + ['Deku Nut Capacity'] * 2 + ['Magic Meter'] * 2 + ['Double Defense']) -normal_bottles = ['Bottle', 'Bottle with Milk', 'Bottle with Red Potion', 'Bottle with Green Potion', 'Bottle with Blue Potion', 'Bottle with Fairy', 'Bottle with Fish', 'Bottle with Blue Fire', 'Bottle with Bugs', 'Bottle with Poe'] +# normal_bottles = ['Bottle', 'Bottle with Milk', 'Bottle with Red Potion', 'Bottle with Green Potion', 'Bottle with Blue Potion', 'Bottle with Fairy', 'Bottle with Fish', 'Bottle with Blue Fire', 'Bottle with Bugs', 'Bottle with Poe'] +normal_bottles = ['Bottle', 'Bottle with Milk', 'Bottle with Red Potion', 'Bottle with Green Potion', 'Bottle with Blue Potion', 'Bottle with Fairy', 'Bottle with Fish', 'Bottle with Bugs', 'Bottle with Poe'] normal_bottle_count = 3 -notmapcompass = ['Rupees (5)'] * 20 +# notmapcompass = ['Rupees (5)'] * 20 +notmapcompass = ['Bombs (5)'] * 4 + ['Arrows (5)'] * 3 + ['Deku Nuts (5)'] * 3 + ['Rupees (5)'] * 7 + ['Rupees (20)'] * 2 + ['Rupees (50)'] rewardlist = ['Kokiri Emerald', 'Goron Ruby', 'Zora Sapphire', 'Forest Medallion', 'Fire Medallion', 'Water Medallion', 'Spirit Medallion', 'Shadow Medallion', 'Light Medallion'] songlist = ['Zeldas Lullaby', 'Eponas Song', 'Suns Song', 'Sarias Song', 'Song of Time', 'Song of Storms', 'Minuet of Forest', 'Prelude of Light', 'Bolero of Fire', 'Serenade of Water', 'Nocturne of Shadow', 'Requiem of Spirit'] skulltulla_locations = (['GS1', 'GS2', 'GS3', 'GS4', 'GS5', 'GS6', 'GS7', 'GS8', 'GS9', 'GS10', 'GS11', 'GS12', 'GS13', 'GS14', 'GS15', 'GS16', 'GS17', 'GS18', 'GS19', 'GS20'] + From 631d84995c340e94403a49ad4e1876413727aaa5 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Fri, 29 Jun 2018 11:45:23 -0500 Subject: [PATCH 053/755] Preliminary keysanity implementation. Needs testing. --- ASM/src/extended_items.asm | 76 ++++++------ BaseClasses.py | 5 +- Gui.py | 3 +- Messages.py | 240 +++++++++++++++++++++++++++++++++---- Rom.py | 15 ++- Settings.py | 6 + data/base2current.json | 2 +- 7 files changed, 283 insertions(+), 64 deletions(-) diff --git a/ASM/src/extended_items.asm b/ASM/src/extended_items.asm index 18b4279b7..395f85f66 100755 --- a/ASM/src/extended_items.asm +++ b/ASM/src/extended_items.asm @@ -69,44 +69,44 @@ Item_Row 0x53, 0x41, 0x01, 0x7A, 0x00C6, no_upgrade, give_bottle, 0x1D, -1 ; 0x8 Item_Row 0x53, 0x41, 0x01, 0xF9, 0x00C6, no_upgrade, give_bottle, 0x1E, -1 ; 0x90 = Bottle with Big Poe Item_Row 0x53, 0x41, 0x01, 0x97, 0x00C6, no_upgrade, give_bottle, 0x20, -1 ; 0x91 = Bottle with Poe -Item_Row 0x53, 0x41, 0x0A, 0xC7, 0x00B9, no_upgrade, give_dungeon_item, 0x01, FOREST_ID ; 0x92 = Forest Temple Boss Key -Item_Row 0x53, 0x41, 0x0A, 0xC7, 0x00B9, no_upgrade, give_dungeon_item, 0x01, FIRE_ID ; 0x93 = Fire Temple Boss Key -Item_Row 0x53, 0x41, 0x0A, 0xC7, 0x00B9, no_upgrade, give_dungeon_item, 0x01, WATER_ID ; 0x94 = Water Temple Boss Key -Item_Row 0x53, 0x41, 0x0A, 0xC7, 0x00B9, no_upgrade, give_dungeon_item, 0x01, SPIRIT_ID ; 0x95 = Spirit Temple Boss Key -Item_Row 0x53, 0x41, 0x0A, 0xC7, 0x00B9, no_upgrade, give_dungeon_item, 0x01, SHADOW_ID ; 0x96 = Shadow Temple Boss Key -Item_Row 0x53, 0x41, 0x0A, 0xC7, 0x00B9, no_upgrade, give_dungeon_item, 0x01, TOWER_ID ; 0x97 = Ganon's Castle Boss Key - -Item_Row 0x53, 0x41, 0x0B, 0x67, 0x00B8, no_upgrade, give_dungeon_item, 0x02, DEKU_ID ; 0x98 = Deku Tree Compass -Item_Row 0x53, 0x41, 0x0B, 0x67, 0x00B8, no_upgrade, give_dungeon_item, 0x02, DODONGO_ID ; 0x99 = Dodongo's Cavern Compass -Item_Row 0x53, 0x41, 0x0B, 0x67, 0x00B8, no_upgrade, give_dungeon_item, 0x02, JABU_ID ; 0x9A = Jabu Jabu Compass -Item_Row 0x53, 0x41, 0x0B, 0x67, 0x00B8, no_upgrade, give_dungeon_item, 0x02, FOREST_ID ; 0x9B = Forest Temple Compass -Item_Row 0x53, 0x41, 0x0B, 0x67, 0x00B8, no_upgrade, give_dungeon_item, 0x02, FIRE_ID ; 0x9C = Fire Temple Compass -Item_Row 0x53, 0x41, 0x0B, 0x67, 0x00B8, no_upgrade, give_dungeon_item, 0x02, WATER_ID ; 0x9D = Water Temple Compass -Item_Row 0x53, 0x41, 0x0B, 0x67, 0x00B8, no_upgrade, give_dungeon_item, 0x02, SPIRIT_ID ; 0x9E = Spirit Temple Compass -Item_Row 0x53, 0x41, 0x0B, 0x67, 0x00B8, no_upgrade, give_dungeon_item, 0x02, SHADOW_ID ; 0x9F = Shadow Temple Compass -Item_Row 0x53, 0x41, 0x0B, 0x67, 0x00B8, no_upgrade, give_dungeon_item, 0x02, BOTW_ID ; 0xA0 = Bottom of the Well Compass -Item_Row 0x53, 0x41, 0x0B, 0x67, 0x00B8, no_upgrade, give_dungeon_item, 0x02, ICE_ID ; 0xA1 = Ice Cavern Compass - -Item_Row 0x53, 0x41, 0x1C, 0x66, 0x00C8, no_upgrade, give_dungeon_item, 0x04, DEKU_ID ; 0xA2 = Deku Tree Map -Item_Row 0x53, 0x41, 0x1C, 0x66, 0x00C8, no_upgrade, give_dungeon_item, 0x04, DODONGO_ID ; 0xA3 = Dodongo's Cavern Map -Item_Row 0x53, 0x41, 0x1C, 0x66, 0x00C8, no_upgrade, give_dungeon_item, 0x04, JABU_ID ; 0xA4 = Jabu Jabu Map -Item_Row 0x53, 0x41, 0x1C, 0x66, 0x00C8, no_upgrade, give_dungeon_item, 0x04, FOREST_ID ; 0xA5 = Forest Temple Map -Item_Row 0x53, 0x41, 0x1C, 0x66, 0x00C8, no_upgrade, give_dungeon_item, 0x04, FIRE_ID ; 0xA6 = Fire Temple Map -Item_Row 0x53, 0x41, 0x1C, 0x66, 0x00C8, no_upgrade, give_dungeon_item, 0x04, WATER_ID ; 0xA7 = Water Temple Map -Item_Row 0x53, 0x41, 0x1C, 0x66, 0x00C8, no_upgrade, give_dungeon_item, 0x04, SPIRIT_ID ; 0xA8 = Spirit Temple Map -Item_Row 0x53, 0x41, 0x1C, 0x66, 0x00C8, no_upgrade, give_dungeon_item, 0x04, SHADOW_ID ; 0xA9 = Shadow Temple Map -Item_Row 0x53, 0x41, 0x1C, 0x66, 0x00C8, no_upgrade, give_dungeon_item, 0x04, BOTW_ID ; 0xAA = Bottom of the Well Map -Item_Row 0x53, 0x41, 0x1C, 0x66, 0x00C8, no_upgrade, give_dungeon_item, 0x04, ICE_ID ; 0xAB = Ice Cavern Map - -Item_Row 0x53, 0x41, 0xFE, 0x60, 0x00AA, no_upgrade, give_small_key, FOREST_ID, -1 ; 0xAC = Forest Temple Small Key -Item_Row 0x53, 0x41, 0xFE, 0x60, 0x00AA, no_upgrade, give_small_key, FIRE_ID, -1 ; 0xAD = Fire Temple Small Key -Item_Row 0x53, 0x41, 0xFE, 0x60, 0x00AA, no_upgrade, give_small_key, WATER_ID, -1 ; 0xAE = Water Temple Small Key -Item_Row 0x53, 0x41, 0xFE, 0x60, 0x00AA, no_upgrade, give_small_key, SPIRIT_ID, -1 ; 0xAF = Spirit Temple Small Key -Item_Row 0x53, 0x41, 0xFE, 0x60, 0x00AA, no_upgrade, give_small_key, SHADOW_ID, -1 ; 0xB0 = Shadow Temple Small Key -Item_Row 0x53, 0x41, 0xFE, 0x60, 0x00AA, no_upgrade, give_small_key, BOTW_ID, -1 ; 0xB1 = Bottom of the Well Small Key -Item_Row 0x53, 0x41, 0xFE, 0x60, 0x00AA, no_upgrade, give_small_key, GTG_ID, -1 ; 0xB2 = Gerudo Training Small Key -Item_Row 0x53, 0x41, 0xFE, 0x60, 0x00AA, no_upgrade, give_small_key, FORT_ID, -1 ; 0xB3 = Gerudo Fortress Small Key -Item_Row 0x53, 0x41, 0xFE, 0x60, 0x00AA, no_upgrade, give_small_key, CASTLE_ID, -1 ; 0xB4 = Ganon's Castle Small Key +Item_Row 0x53, 0x41, 0x0A, 0x06, 0x00B9, no_upgrade, give_dungeon_item, 0x01, FOREST_ID ; 0x92 = Forest Temple Boss Key +Item_Row 0x53, 0x41, 0x0A, 0x1C, 0x00B9, no_upgrade, give_dungeon_item, 0x01, FIRE_ID ; 0x93 = Fire Temple Boss Key +Item_Row 0x53, 0x41, 0x0A, 0x1D, 0x00B9, no_upgrade, give_dungeon_item, 0x01, WATER_ID ; 0x94 = Water Temple Boss Key +Item_Row 0x53, 0x41, 0x0A, 0x1E, 0x00B9, no_upgrade, give_dungeon_item, 0x01, SPIRIT_ID ; 0x95 = Spirit Temple Boss Key +Item_Row 0x53, 0x41, 0x0A, 0x2A, 0x00B9, no_upgrade, give_dungeon_item, 0x01, SHADOW_ID ; 0x96 = Shadow Temple Boss Key +Item_Row 0x53, 0x41, 0x0A, 0x61, 0x00B9, no_upgrade, give_dungeon_item, 0x01, TOWER_ID ; 0x97 = Ganon's Castle Boss Key + +Item_Row 0x53, 0x41, 0x0B, 0x62, 0x00B8, no_upgrade, give_dungeon_item, 0x02, DEKU_ID ; 0x98 = Deku Tree Compass +Item_Row 0x53, 0x41, 0x0B, 0x63, 0x00B8, no_upgrade, give_dungeon_item, 0x02, DODONGO_ID ; 0x99 = Dodongo's Cavern Compass +Item_Row 0x53, 0x41, 0x0B, 0x64, 0x00B8, no_upgrade, give_dungeon_item, 0x02, JABU_ID ; 0x9A = Jabu Jabu Compass +Item_Row 0x53, 0x41, 0x0B, 0x65, 0x00B8, no_upgrade, give_dungeon_item, 0x02, FOREST_ID ; 0x9B = Forest Temple Compass +Item_Row 0x53, 0x41, 0x0B, 0x7C, 0x00B8, no_upgrade, give_dungeon_item, 0x02, FIRE_ID ; 0x9C = Fire Temple Compass +Item_Row 0x53, 0x41, 0x0B, 0x7D, 0x00B8, no_upgrade, give_dungeon_item, 0x02, WATER_ID ; 0x9D = Water Temple Compass +Item_Row 0x53, 0x41, 0x0B, 0x7E, 0x00B8, no_upgrade, give_dungeon_item, 0x02, SPIRIT_ID ; 0x9E = Spirit Temple Compass +Item_Row 0x53, 0x41, 0x0B, 0x7F, 0x00B8, no_upgrade, give_dungeon_item, 0x02, SHADOW_ID ; 0x9F = Shadow Temple Compass +Item_Row 0x53, 0x41, 0x0B, 0x85, 0x00B8, no_upgrade, give_dungeon_item, 0x02, BOTW_ID ; 0xA0 = Bottom of the Well Compass +Item_Row 0x53, 0x41, 0x0B, 0x87, 0x00B8, no_upgrade, give_dungeon_item, 0x02, ICE_ID ; 0xA1 = Ice Cavern Compass + +Item_Row 0x53, 0x41, 0x1C, 0x88, 0x00C8, no_upgrade, give_dungeon_item, 0x04, DEKU_ID ; 0xA2 = Deku Tree Map +Item_Row 0x53, 0x41, 0x1C, 0x89, 0x00C8, no_upgrade, give_dungeon_item, 0x04, DODONGO_ID ; 0xA3 = Dodongo's Cavern Map +Item_Row 0x53, 0x41, 0x1C, 0x8A, 0x00C8, no_upgrade, give_dungeon_item, 0x04, JABU_ID ; 0xA4 = Jabu Jabu Map +Item_Row 0x53, 0x41, 0x1C, 0x8B, 0x00C8, no_upgrade, give_dungeon_item, 0x04, FOREST_ID ; 0xA5 = Forest Temple Map +Item_Row 0x53, 0x41, 0x1C, 0x8C, 0x00C8, no_upgrade, give_dungeon_item, 0x04, FIRE_ID ; 0xA6 = Fire Temple Map +Item_Row 0x53, 0x41, 0x1C, 0x8E, 0x00C8, no_upgrade, give_dungeon_item, 0x04, WATER_ID ; 0xA7 = Water Temple Map +Item_Row 0x53, 0x41, 0x1C, 0x8F, 0x00C8, no_upgrade, give_dungeon_item, 0x04, SPIRIT_ID ; 0xA8 = Spirit Temple Map +Item_Row 0x53, 0x41, 0x1C, 0x90, 0x00C8, no_upgrade, give_dungeon_item, 0x04, SHADOW_ID ; 0xA9 = Shadow Temple Map +Item_Row 0x53, 0x41, 0x1C, 0x91, 0x00C8, no_upgrade, give_dungeon_item, 0x04, BOTW_ID ; 0xAA = Bottom of the Well Map +Item_Row 0x53, 0x41, 0x1C, 0x92, 0x00C8, no_upgrade, give_dungeon_item, 0x04, ICE_ID ; 0xAB = Ice Cavern Map + +Item_Row 0x53, 0x41, 0xFE, 0x93, 0x00AA, no_upgrade, give_small_key, FOREST_ID, -1 ; 0xAC = Forest Temple Small Key +Item_Row 0x53, 0x41, 0xFE, 0x94, 0x00AA, no_upgrade, give_small_key, FIRE_ID, -1 ; 0xAD = Fire Temple Small Key +Item_Row 0x53, 0x41, 0xFE, 0x95, 0x00AA, no_upgrade, give_small_key, WATER_ID, -1 ; 0xAE = Water Temple Small Key +Item_Row 0x53, 0x41, 0xFE, 0x97, 0x00AA, no_upgrade, give_small_key, SPIRIT_ID, -1 ; 0xAF = Spirit Temple Small Key +Item_Row 0x53, 0x41, 0xFE, 0x99, 0x00AA, no_upgrade, give_small_key, SHADOW_ID, -1 ; 0xB0 = Shadow Temple Small Key +Item_Row 0x53, 0x41, 0xFE, 0x9B, 0x00AA, no_upgrade, give_small_key, BOTW_ID, -1 ; 0xB1 = Bottom of the Well Small Key +Item_Row 0x53, 0x41, 0xFE, 0x9F, 0x00AA, no_upgrade, give_small_key, GTG_ID, -1 ; 0xB2 = Gerudo Training Small Key +Item_Row 0x53, 0x41, 0xFE, 0xA0, 0x00AA, no_upgrade, give_small_key, FORT_ID, -1 ; 0xB3 = Gerudo Fortress Small Key +Item_Row 0x53, 0x41, 0xFE, 0xA1, 0x00AA, no_upgrade, give_small_key, CASTLE_ID, -1 ; 0xB4 = Ganon's Castle Small Key Item_Row 0x53, 0x3D, 0x43, 0x0C, 0x00F8, no_upgrade, give_biggoron_sword, -1, -1 ; 0xB5 = Biggoron Sword diff --git a/BaseClasses.py b/BaseClasses.py index 46c679019..4dc56d977 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -30,7 +30,6 @@ def __init__(self, settings): self.tunic_colors = [self.kokiricolor, self.goroncolor, self.zoracolor] self.navi_colors = [self.navicolordefault, self.navicolorenemy, self.navicolornpc, self.navicolorprop] - self.keysanity = False self.can_take_damage = True self.spoiler = Spoiler(self) @@ -431,6 +430,8 @@ def can_reach(self, state): return False def can_fill(self, item): + if self.world.keysanity: + return True is_dungeon_item = item.key or item.map or item.compass if is_dungeon_item: return self.dungeon and self.dungeon.is_dungeon_item(item) @@ -607,6 +608,7 @@ def parse_data(self): 'door': self.world.open_door_of_time, 'gerudo_fortress': self.world.gerudo_fortress, 'ganon': self.world.fast_ganon, + 'keysanity': self.world.keysanity, 'completeable': not self.world.check_beatable_only, 'dungeonitems': self.world.place_dungeon_items, 'text_shuffle': self.world.text_shuffle, @@ -622,6 +624,7 @@ def to_file(self, filename): outfile.write('Open Door of Time: %s\n' % ('Yes' if self.metadata['door'] else 'No')) outfile.write('Gerudo Fortress: %s\n' % self.metadata['gerudo_fortress']) outfile.write('Fast Ganon\'s Castle: %s\n' % ('Yes' if self.metadata['ganon'] else 'No')) + outfile.write('Keysanity : %s\n' % ('Yes' if self.metadata['keysanity'] else 'No')) outfile.write('All Locations Accessible: %s\n' % ('Yes' if self.metadata['completeable'] else 'No, some locations may be unreachable')) outfile.write('Maps and Compasses in Dungeons: %s\n' % ('Yes' if self.metadata['dungeonitems'] else 'No')) outfile.write('Hints: %s\n' % self.metadata['hints']) diff --git a/Gui.py b/Gui.py index 76e085693..640c25cbc 100644 --- a/Gui.py +++ b/Gui.py @@ -44,7 +44,7 @@ def guivars_to_settings(guivars): for info in setting_infos: name = info.name if name not in guivars: - result[name] = none + result[name] = None continue guivar = guivars[name] # checkbox @@ -123,6 +123,7 @@ def MakeRadioList(parent, data): "open_forest": { "text": "Open Forest", "group": "logic", "default": "unchecked" }, "open_door_of_time": { "text": "Open Door of Time", "group": "logic", "default": "unchecked" }, "fast_ganon": { "text": "Skip most of Ganon's Castle", "group": "logic", "default": "unchecked" }, + "keysanity ": { "text": "Keysanity", "group": "logic", "default": "unchecked" }, "nodungeonitems": { "text": "Remove Maps and Compasses", "group": "logic", "default": "unchecked" }, "beatableonly": { "text": "Only ensure seed is beatable", "group": "logic", "default": "unchecked" }, "custom_logic": { "text": "Use this fork's custom logic", "group": "logic", "default": "unchecked" }, diff --git a/Messages.py b/Messages.py index c8e6410fb..24062b928 100644 --- a/Messages.py +++ b/Messages.py @@ -5,6 +5,8 @@ TABLE_START = 0xB849EC TEXT_START = 0x92D000 +SHOP_ITEM_START = 0xC022CC + # reads len bytes from the rom starting at offset def read_bytes(rom, offset, len): return rom.buffer[offset : offset + len] @@ -62,6 +64,53 @@ def read_bytes(rom, offset, len): TEMPLE_HINTS_MESSAGES = [0x7057, 0x707A] # dungeon reward hints from the temple of time pedestal LIGHT_ARROW_HINT = [0x70CC] # ganondorf's light arrow hint line +# messages for keysanity item pickup +# ids are in the space freed up by move_shop_item_messages() +KEYSANITY_MESSAGES = { + 0x06: 'Forest Temple Boss Key', + 0x1c: 'Fire Temple Boss Key', + 0x1d: 'Water Temple Boss Key', + 0x1e: 'Spirit Temple Boss Key', + 0x2a: 'Shadow Temple Boss Key', + 0x61: 'Ganon\'s Castle Boss Key', + 0x62: 'Deku Tree Compass', + 0x63: 'Dodongo\'s Cavern Compass', + 0x64: 'Jabu Jabu Compass', + 0x65: 'Forest Temple Compass', + 0x7c: 'Fire Temple Compass', + 0x7d: 'Water Temple Compass', + 0x7e: 'Spirit Temple Compass', + 0x7f: 'Shadow Temple Compass', + 0x85: 'Bottom of the Well Compass', + 0x87: 'Ice Cavern Compass', + 0x88: 'Deku Tree Map', + 0x89: 'Dodongo\'s Cavern Map', + 0x8a: 'Jabu Jabu Map', + 0x8b: 'Forest Temple Map', + 0x8c: 'Fire Temple Map', + 0x8e: 'Water Temple Map', + 0x8f: 'Spirit Temple Map', + 0x90: 'Shadow Temple Map', + 0x91: 'Bottom of the Well Map', + 0x92: 'Ice Cavern Map', + 0x93: 'Forest Temple Small Key', + 0x94: 'Fire Temple Small Key', + 0x95: 'Water Temple Small Key', + 0x97: 'Spirit Temple Small Key', + 0x99: 'Shadow Temple Small Key', + 0x9b: 'Bottom of the Well Small Key', + 0x9f: 'Gerudo Training Small Key', + 0xa0: 'Gerudo Fortress Small Key', + 0xa1: 'Ganon\'s Castle Small Key', +} + +# convert byte array to an integer +def bytes_to_int(bytes, signed=False): + return int.from_bytes(bytes, byteorder='big', signed=signed) + +# convert int to an array of bytes of the given width +def int_to_bytes(num, width, signed=False): + return int.to_bytes(num, width, byteorder='big', signed=signed) def display_code_list(codes): message = "" @@ -89,7 +138,7 @@ def write(self, rom, offset): extra_bytes = 0 if self.code in CONTROL_CODES: extra_bytes = CONTROL_CODES[self.code][1] - bytes_to_write = int.to_bytes(self.data, extra_bytes, byteorder='big', signed=False) + bytes_to_write = int_to_bytes(self.data, extra_bytes) rom.write_bytes(TEXT_START + offset + 1, bytes_to_write) return offset + 1 + extra_bytes @@ -108,7 +157,7 @@ def __init__(self, code, data): class Message(): def display(self): - meta_data = ["#" + str(self.count), + meta_data = ["#" + str(self.index), "ID: 0x" + "{:04x}".format(self.id), "Offset: 0x" + "{:06x}".format(self.offset), "Length: 0x" + "{:04x}".format(self.unpadded_length) + "/0x" + "{:04x}".format(self.length), @@ -137,7 +186,7 @@ def parse_text(self): if next_char in CONTROL_CODES: extra_bytes = CONTROL_CODES[next_char][1] if extra_bytes > 0: - data = int.from_bytes(self.raw_text[index : index + extra_bytes], byteorder='big', signed=False) + data = bytes_to_int(self.raw_text[index : index + extra_bytes]) index += extra_bytes text_code = Text_Code(next_char, data) self.text_codes.append(text_code) @@ -173,8 +222,8 @@ def is_basic(self): def write(self, rom, index, offset, replace_ending=False, ending=None, always_allow_skip=True): # construct the table entry - id_bytes = int.to_bytes(self.id, 2, byteorder='big', signed=False) - offset_bytes = int.to_bytes(offset, 3, byteorder='big', signed=False) + id_bytes = int_to_bytes(self.id, 2) + offset_bytes = int_to_bytes(offset, 3) entry = id_bytes + bytes([self.opts, 0x00, 0x07]) + offset_bytes # write it back entry_offset = TABLE_START + 8 * index @@ -200,20 +249,17 @@ def write(self, rom, index, offset, replace_ending=False, ending=None, always_al return offset - # read a single message - def __init__(self, rom, index): + def __init__(self, raw_text, index, id, opts, offset, length): - entry_offset = TABLE_START + 8 * index - entry = read_bytes(rom, entry_offset, 8) - next = read_bytes(rom, entry_offset + 8, 8) - self.opts = entry[2] + self.raw_text = raw_text - self.count = index - self.id = int.from_bytes(entry[0:2], byteorder='big', signed=False) + self.index = index + self.id = id + self.opts = opts self.box_type = (self.opts & 0xF0) >> 4 self.position = (self.opts & 0x0F) - self.offset = int.from_bytes(entry[5:8], byteorder='big', signed=False) - self.length = int.from_bytes(next[5:8], byteorder='big', signed=False) - self.offset + self.offset = offset + self.length = length self.has_goto = False self.has_keep_open = False @@ -224,11 +270,158 @@ def __init__(self, rom, index): self.has_three_choice = False self.ending = None - self.raw_text = read_bytes(rom, TEXT_START + self.offset, self.length) self.parse_text() + # read a single message from rom + @classmethod + def from_rom(cls, rom, index): + + entry_offset = TABLE_START + 8 * index + entry = read_bytes(rom, entry_offset, 8) + next = read_bytes(rom, entry_offset + 8, 8) + + id = bytes_to_int(entry[0:2]) + opts = entry[2] + offset = bytes_to_int(entry[5:8]) + length = bytes_to_int(next[5:8]) - offset + + raw_text = read_bytes(rom, TEXT_START + offset, length) + + return cls(raw_text, index, id, opts, offset, length) + + @classmethod + def from_string(cls, text, id=0, opts=0x00): + bytes = list(text.encode('utf-8')) + [0x02] + + return cls(bytes, 0, id, opts, 0, len(bytes) + 1) + + __str__ = __repr__ = display + +# wrapper for added a string message to a list of messages +def add_message(messages, text, id=0, opts=0x00): + messages.append( Message.from_string(text, id, opts) ) + +# holds a row in the shop item table (which contains pointers to the description and purchase messages) +class Shop_Item(): + + def display(self): + meta_data = ["#" + str(self.index), + "Item: 0x" + "{:04x}".format(self.get_item_id), + "Price: " + str(self.price), + "Amount: " + str(self.pieces), + "Object: 0x" + "{:04x}".format(self.object), + "Model: 0x" + "{:04x}".format(self.model), + "Description: 0x" + "{:04x}".format(self.description_message), + "Purchase: 0x" + "{:04x}".format(self.purchase_message),] + func_data = [ + "func1: 0x" + "{:08x}".format(self.func1), + "func2: 0x" + "{:08x}".format(self.func2), + "func3: 0x" + "{:08x}".format(self.func3), + "func4: 0x" + "{:08x}".format(self.func4),] + return ', '.join(meta_data) + '\n' + ', '.join(func_data) + + # write the shop item back + def write(self, rom, index): + + entry_offset = SHOP_ITEM_START + 0x20 * index + + bytes = [] + bytes += int_to_bytes(self.object, 2) + bytes += int_to_bytes(self.model, 2) + bytes += int_to_bytes(self.func1, 4) + bytes += int_to_bytes(self.price, 2) + bytes += int_to_bytes(self.pieces, 2) + bytes += int_to_bytes(self.description_message, 2) + bytes += int_to_bytes(self.purchase_message, 2) + bytes += [0x00, 0x00] + bytes += int_to_bytes(self.get_item_id, 2) + bytes += int_to_bytes(self.func2, 4) + bytes += int_to_bytes(self.func3, 4) + bytes += int_to_bytes(self.func4, 4) + + rom.write_bytes(entry_offset, bytes) + + # read a single message + def __init__(self, rom, index): + + entry_offset = SHOP_ITEM_START + 0x20 * index + entry = read_bytes(rom, entry_offset, 0x20) + + self.index = index + self.object = bytes_to_int(entry[0x00:0x02]) + self.model = bytes_to_int(entry[0x02:0x04]) + self.func1 = bytes_to_int(entry[0x04:0x08]) + self.price = bytes_to_int(entry[0x08:0x0A]) + self.pieces = bytes_to_int(entry[0x0A:0x0C]) + self.description_message = bytes_to_int(entry[0x0C:0x0E]) + self.purchase_message = bytes_to_int(entry[0x0E:0x10]) + # 0x10-0x11 is always 0000 padded apparently + self.get_item_id = bytes_to_int(entry[0x12:0x14]) + self.func2 = bytes_to_int(entry[0x14:0x18]) + self.func3 = bytes_to_int(entry[0x18:0x1C]) + self.func4 = bytes_to_int(entry[0x1C:0x20]) + __str__ = __repr__ = display +# reads each of the shop items +def read_shop_items(rom): + shop_items = [] + + for index in range(0x032): + shop_items.append( Shop_Item(rom, index) ) + + return shop_items + +# writes each of the shop item back into rom +def write_shop_items(rom, shop_items): + for s in shop_items: + s.write(rom, s.index) + +# returns a set of all message ids used for shop items +def get_shop_message_id_set(shop_items): + ids = set() + for shop in shop_items: + ids.add(shop.description_message) + ids.add(shop.purchase_message) + return ids + +# takes all messages used for shop items, and moves messages from the 00xx range into the unused 80xx range +def move_shop_item_messages(messages, shop_items): + # checks if a message id is in the item message range + def is_in_item_range(id): + bytes = int_to_bytes(id, 2) + return bytes[0] == 0x00 + # get the ids we want to move + ids = set( id for id in get_shop_message_id_set(shop_items) if is_in_item_range(id) ) + # update them in the message list + for id in ids: + # should be a singleton list, but in case something funky is going on, handle it as a list regardless + relevant_messages = [message for message in messages if message.id == id] + for message in relevant_messages: + message.id |= 0x8000 + # update them in the shop item list + for shop in shop_items: + if is_in_item_range(shop.description_message): + shop.description_message |= 0x8000 + if is_in_item_range(shop.purchase_message): + shop.purchase_message |= 0x8000 + + +# add the keysanity messages +# make sure to call this AFTER move_shop_item_messages() +def add_keysanity_messages(messages): + for id, text in KEYSANITY_MESSAGES.items(): + add_message(messages, text, id, 0x23) + +# run all keysanity related patching to add messages for dungeon specific items +def message_patch_for_keysanity(rom): + messages = read_messages(rom) + shop_items = read_shop_items(rom) + move_shop_item_messages(messages, shop_items) + add_keysanity_messages(messages) + repack_messages(rom, messages) + write_shop_items(rom, shop_items) + # reads each of the game's messages into a list of Message objects def read_messages(rom): @@ -237,7 +430,7 @@ def read_messages(rom): messages = [] while True: entry = read_bytes(rom, table_offset, 8) - id = int.from_bytes(entry[0:2], byteorder='big', signed=False) + id = bytes_to_int(entry[0:2]) if id == 0xFFFD: table_offset += 8 @@ -245,7 +438,7 @@ def read_messages(rom): if id == 0xFFFF: break # this marks the end of the table - messages.append( Message(rom, index) ) + messages.append( Message.from_rom(rom, index) ) index += 1 table_offset += 8 @@ -253,7 +446,10 @@ def read_messages(rom): return messages # wrtie the messages back -def repack_messages(rom, messages, permutation, always_allow_skip=True): +def repack_messages(rom, messages, permutation=None, always_allow_skip=True): + + if permutation is None: + permutation = range(len(messages)) # repack messages offset = 0 @@ -267,7 +463,7 @@ def repack_messages(rom, messages, permutation, always_allow_skip=True): # end the table table_index = len(messages) - entry = bytes([0xFF, 0xFD, 0x00, 0x00, 0x07]) + int.to_bytes(offset, 3, byteorder='big', signed=False) + entry = bytes([0xFF, 0xFD, 0x00, 0x00, 0x07]) + int_to_bytes(offset, 3) entry_offset = TABLE_START + 8 * table_index rom.write_bytes(entry_offset, entry) table_index += 1 @@ -301,7 +497,7 @@ def shuffle_group(group): random.shuffle(group_permutation) for index_from, index_to in enumerate(group_permutation): - permutation[group[index_to].count] = group[index_from].count + permutation[group[index_to].index] = group[index_from].index # need to use 'list' to force 'map' to actually run through list( map( shuffle_group, [ @@ -312,4 +508,4 @@ def shuffle_group(group): ])) # write the messages back - repack_messages(rom, messages, permutation, always_allow_skip) \ No newline at end of file + repack_messages(rom, messages, permutation, always_allow_skip) diff --git a/Rom.py b/Rom.py index 5fb55e0bd..73c9e525e 100644 --- a/Rom.py +++ b/Rom.py @@ -11,7 +11,7 @@ from Utils import local_path, output_path from Items import ItemFactory, item_data from TextArray import text_array -from Messages import shuffle_messages, read_messages +from Messages import shuffle_messages, read_messages, read_shop_items, message_patch_for_keysanity from OcarinaSongs import replace_songs TunicColors = { @@ -1074,6 +1074,19 @@ def patch_rom(world, rom): rom.write_byte(0x348073B, 0xC4) # picked up keys/finished fights + # keysanity messages + if world.keysanity: + message_patch_for_keysanity(rom) + # with open('keysanity_' + str(world.seed) + '_dump.txt', 'w', encoding='utf-16') as f: + # messages = read_messages(rom) + # shop_items = read_shop_items(rom) + # for m in messages: + # f.write(str(m) + '\n\n') + # f.write('\n\n\n\n\n') + # for s in shop_items: + # f.write(str(s) + '\n\n') + + # text shuffle if world.text_shuffle == 'except_hints': shuffle_messages(rom, True) diff --git a/Settings.py b/Settings.py index ee94cee48..694deec25 100644 --- a/Settings.py +++ b/Settings.py @@ -192,6 +192,12 @@ def __init__(self, settings_dict): is removed. ''', 'action': 'store_true'}), + Setting_Info('keysanity', bool, 1, True, { + 'help': '''\ + Small Keys, Boss Keys, Maps, and Compasses will be shuffled into the pool at + large, instead of just being restricted to their own dungeons. + ''', + 'action': 'store_true'}), Setting_Info('nodungeonitems', bool, 1, True, { 'help': '''\ Remove Maps and Compasses from Itempool, replacing them by diff --git a/data/base2current.json b/data/base2current.json index 2a621add8..50ddc03dc 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -1 +1 @@ -[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 20]}, {"11325064": [12, 16, 10, 236, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 11, 63]}, {"11427312": [12, 16, 11, 232]}, {"11881272": [12, 16, 11, 248]}, {"11882076": [12, 16, 11, 213]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 11, 30, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 11, 37, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 11, 44, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 11, 23, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 9, 228]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 9, 177]}, {"12427480": [12, 16, 9, 206]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 9, 210]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12428008": [36, 10, 255, 255]}, {"12474768": [12, 16, 10, 244, 0, 0, 0, 0]}, {"12491456": [12, 16, 9, 240]}, {"12491480": [12, 16, 9, 249]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 10, 193]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 11, 51]}, {"14357459": [118]}, {"14624335": [118]}, {"14872723": [52]}, {"15506663": [122]}, {"55055360": [90, 93, 92, 94, 81, 82, 83]}, {"55058464": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 72, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 100, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 140, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 180, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 220, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 4, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 32, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 60, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 88, 83, 65, 1, 67]}, {"55058613": [198, 21, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 68]}, {"55058629": [198, 22, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 69]}, {"55058645": [198, 23, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 70]}, {"55058661": [198, 24, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 71]}, {"55058677": [198, 25, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 93]}, {"55058693": [198, 28, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 122]}, {"55058709": [198, 29, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 249]}, {"55058725": [198, 30, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 151]}, {"55058741": [198, 32, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 10, 199]}, {"55058757": [185, 1, 3, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 199]}, {"55058773": [185, 1, 4, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 199]}, {"55058789": [185, 1, 5, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 199]}, {"55058805": [185, 1, 6, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 199]}, {"55058821": [185, 1, 7, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 199]}, {"55058837": [185, 1, 10, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 103]}, {"55058853": [184, 2]}, {"55058856": [128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 103]}, {"55058869": [184, 2, 1, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 103]}, {"55058885": [184, 2, 2, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 103]}, {"55058901": [184, 2, 3, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 103]}, {"55058917": [184, 2, 4, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 103]}, {"55058933": [184, 2, 5, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 103]}, {"55058949": [184, 2, 6, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 103]}, {"55058965": [184, 2, 7, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 103]}, {"55058981": [184, 2, 8, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 103]}, {"55058997": [184, 2, 9, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 102]}, {"55059013": [200, 4]}, {"55059016": [128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 102]}, {"55059029": [200, 4, 1, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 102]}, {"55059045": [200, 4, 2, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 102]}, {"55059061": [200, 4, 3, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 102]}, {"55059077": [200, 4, 4, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 102]}, {"55059093": [200, 4, 5, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 102]}, {"55059109": [200, 4, 6, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 102]}, {"55059125": [200, 4, 7, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 102]}, {"55059141": [200, 4, 8, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 102]}, {"55059157": [200, 4, 9, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 254, 96]}, {"55059173": [170, 3, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 96]}, {"55059189": [170, 4, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 96]}, {"55059205": [170, 5, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 96]}, {"55059221": [170, 6, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 96]}, {"55059237": [170, 7, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 96]}, {"55059253": [170, 8, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 96]}, {"55059269": [170, 11, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 96]}, {"55059285": [170, 12, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 96]}, {"55059301": [170, 13, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 61, 67, 12]}, {"55059317": [248, 255, 255, 128, 64, 37, 204, 128, 64, 36, 64, 77, 131, 9, 85]}, {"55059333": [183, 255, 255, 128, 64, 37, 196, 128, 64, 36, 64, 83, 146, 219, 230]}, {"55059349": [216, 255, 255, 128, 64, 37, 196, 128, 64, 37, 140, 83, 147, 218, 230]}, {"55059365": [216, 255, 255, 128, 64, 37, 196, 128, 64, 37, 140, 83, 148, 217, 230]}, {"55059381": [216, 255, 255, 128, 64, 37, 196, 128, 64, 37, 140, 83, 142, 224, 50]}, {"55059397": [206, 255, 255, 128, 64, 37, 196, 128, 64, 37, 168, 83, 143, 224, 50]}, {"55059413": [206, 255, 255, 128, 64, 37, 196, 128, 64, 37, 168, 83, 144, 224, 50]}, {"55059429": [206, 255, 255, 128, 64, 37, 196, 128, 64, 37, 168, 83, 140, 238, 52]}, {"55059445": [187, 255, 255, 128, 64, 37, 196, 128, 64, 36, 64, 83, 141, 238, 52]}, {"55059461": [187, 255, 255, 128, 64, 37, 196, 128, 64, 36, 64, 79, 65, 19, 233]}, {"55059477": [189, 255, 255, 128, 64, 38, 92, 128, 64, 36, 64, 79, 65, 226, 228]}, {"55059493": [205, 255, 255, 128, 64, 38, 124, 128, 64, 37, 116, 79, 65, 225, 232]}, {"55059509": [205, 255, 255, 128, 64, 38, 156, 128, 64, 36, 64, 3, 224]}, {"55059523": [8, 52, 162]}, {"55059528": [144, 136]}, {"55059531": [125, 52, 1]}, {"55059535": [255, 17, 1]}, {"55059539": [2, 52, 2]}, {"55059543": [8, 52, 2]}, {"55059547": [9, 3, 224]}, {"55059551": [8]}, {"55059556": [144, 136]}, {"55059559": [163, 49, 8]}, {"55059563": [192, 17]}, {"55059567": [5, 52, 2]}, {"55059571": [84, 52, 1]}, {"55059575": [64, 17, 1]}, {"55059579": [2, 52, 2]}, {"55059583": [53, 52, 2]}, {"55059587": [54, 3, 224]}, {"55059591": [8]}, {"55059596": [144, 136]}, {"55059599": [163, 49, 8]}, {"55059603": [24, 17]}, {"55059607": [5, 52, 2]}, {"55059611": [50, 52, 1]}, {"55059615": [8, 17, 1]}, {"55059619": [2, 52, 2]}, {"55059623": [51, 52, 2]}, {"55059627": [52, 3, 224]}, {"55059631": [8]}, {"55059636": [144, 136]}, {"55059639": [163, 49, 8]}, {"55059643": [3, 17]}, {"55059647": [5, 52, 2]}, {"55059651": [4, 52, 1]}, {"55059655": [1, 17, 1]}, {"55059659": [2, 52, 2]}, {"55059663": [48, 52, 2]}, {"55059667": [49, 3, 224]}, {"55059671": [8]}, {"55059676": [144, 136]}, {"55059679": [162, 49, 8]}, {"55059683": [192, 17]}, {"55059687": [5, 52, 2]}, {"55059691": [5, 52, 1]}, {"55059695": [64, 17, 1]}, {"55059699": [2, 52, 2]}, {"55059703": [96, 52, 2]}, {"55059707": [123, 3, 224]}, {"55059711": [8]}, {"55059716": [144, 136]}, {"55059719": [162, 49, 8]}, {"55059723": [48, 17]}, {"55059727": [2, 52, 2]}, {"55059731": [69, 52, 2]}, {"55059735": [70, 3, 224]}, {"55059739": [8]}, {"55059744": [144, 136]}, {"55059747": [162, 49, 8]}, {"55059751": [6, 17]}, {"55059755": [2, 52, 2]}, {"55059759": [55, 52, 2]}, {"55059763": [56, 3, 224]}, {"55059767": [8]}, {"55059772": [144, 136]}, {"55059775": [161, 49, 8]}, {"55059779": [32, 17]}, {"55059783": [2, 52, 2]}, {"55059787": [121, 52, 2]}, {"55059791": [122, 3, 224]}, {"55059795": [8]}, {"55059800": [144, 136]}, {"55059803": [161, 49, 8]}, {"55059807": [4, 17]}, {"55059811": [2, 52, 2]}, {"55059815": [119, 52, 2]}, {"55059819": [120, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [50, 17]}, {"55059835": [2, 52, 2]}, {"55059839": [192, 52, 2]}, {"55059843": [193, 3, 224]}, {"55059847": [8]}, {"55059852": [144, 136]}, {"55059855": [163, 49, 8]}, {"55059859": [3, 17]}, {"55059863": [2, 52, 2]}, {"55059867": [77, 52, 162]}, {"55059872": [3, 224]}, {"55059875": [8]}, {"55059880": [144, 136]}, {"55059883": [163, 49, 8]}, {"55059887": [24, 17]}, {"55059891": [2, 52, 2]}, {"55059895": [77, 52, 162]}, {"55059900": [3, 224]}, {"55059903": [8]}, {"55059908": [3, 224]}, {"55059911": [8]}, {"55059916": [52, 8]}, {"55059919": [1, 160, 136]}, {"55059923": [62, 3, 224]}, {"55059927": [8]}, {"55059932": [36, 136]}, {"55059935": [134, 36, 9, 255, 255, 37, 41]}, {"55059943": [1, 52, 1]}, {"55059947": [3]}, {"55059949": [41, 8, 42, 20, 32]}, {"55059955": [7]}, {"55059960": [1, 9, 80, 33, 145, 75]}, {"55059968": [52, 1]}, {"55059971": [255, 21, 97, 255, 247]}, {"55059980": [161, 69]}, {"55059984": [3, 224]}, {"55059987": [8]}, {"55059992": [36, 136]}, {"55059995": [168, 1, 6, 64, 33, 145, 9]}, {"55060004": [1, 37, 72, 37, 161, 9]}, {"55060012": [3, 224]}, {"55060015": [8]}, {"55060020": [36, 136]}, {"55060023": [188, 1, 5, 64, 33, 129, 9]}, {"55060032": [5, 33]}, {"55060035": [2]}, {"55060040": [52, 9]}, {"55060044": [37, 41]}, {"55060047": [1, 161, 9]}, {"55060052": [3, 224]}, {"55060055": [8]}, {"55060060": [52, 8]}, {"55060063": [1, 160, 136]}, {"55060067": [61, 52, 8]}, {"55060071": [20, 160, 136]}, {"55060075": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060087": [8]}, {"55060092": [52, 8]}, {"55060095": [1, 160, 136]}, {"55060099": [50, 160, 136]}, {"55060103": [58, 52, 8]}, {"55060107": [48, 164, 136, 19, 244, 160, 136]}, {"55060115": [51, 3, 224]}, {"55060119": [8]}, {"55060124": [52, 8]}, {"55060127": [2, 160, 136]}, {"55060131": [50, 52, 8]}, {"55060135": [1, 160, 136]}, {"55060139": [58, 160, 136]}, {"55060143": [60, 52, 8]}, {"55060147": [96, 164, 136, 19, 244, 160, 136]}, {"55060155": [51, 3, 224]}, {"55060159": [8]}, {"55060164": [48, 132]}, {"55060167": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060179": [140, 16, 129]}, {"55060183": [22, 145, 2]}, {"55060187": [117, 52, 1]}, {"55060191": [141, 16, 129]}, {"55060195": [19, 145, 2]}, {"55060199": [117, 16, 128]}, {"55060203": [17, 145, 2]}, {"55060207": [116, 52, 1]}, {"55060211": [138, 16, 129]}, {"55060215": [14, 145, 2]}, {"55060219": [116, 52, 1]}, {"55060223": [139, 16, 129]}, {"55060227": [11, 145, 2]}, {"55060231": [116, 52, 1]}, {"55060235": [88, 16, 129]}, {"55060239": [8, 52, 2]}, {"55060244": [52, 1]}, {"55060247": [120, 16, 129]}, {"55060251": [5, 52, 2]}, {"55060256": [52, 1]}, {"55060259": [121, 16, 129]}, {"55060263": [2, 52, 2]}, {"55060268": [52, 2]}, {"55060271": [255, 3, 224]}, {"55060275": [8]}, {"55060280": [143, 166]}, {"55060283": [48, 132, 197]}, {"55060287": [4, 8, 16, 9, 214]}, {"55060296": [143, 185]}, {"55060299": [44, 135, 37]}, {"55060303": [4, 8, 16, 9, 214]}, {"55060312": [60, 10, 128, 64, 37, 74, 32]}, {"55060320": [141, 75]}, {"55060323": [12, 17, 96]}, {"55060327": [2]}, {"55060332": [149, 69]}, {"55060335": [4, 60, 10, 128, 64, 37, 74, 32, 16, 161, 64]}, {"55060348": [60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060360": [3, 224]}, {"55060363": [8]}, {"55060368": [60, 8, 128, 64, 37, 8, 32]}, {"55060376": [141, 9]}, {"55060379": [12, 17, 32]}, {"55060383": [2]}, {"55060388": [129, 3]}, {"55060391": [2]}, {"55060393": [3, 15, 195]}, {"55060397": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55060411": [8]}, {"55060416": [144, 69]}, {"55060419": [3, 60, 8, 128, 64, 37, 8, 32]}, {"55060428": [141, 9]}, {"55060431": [12, 17, 32]}, {"55060435": [2]}, {"55060440": [145, 5]}, {"55060443": [3, 3, 224]}, {"55060447": [8]}, {"55060452": [143, 162]}, {"55060455": [36, 144, 69]}, {"55060460": [60, 8, 128, 64, 37, 8, 32]}, {"55060468": [141, 9]}, {"55060471": [12, 17, 32]}, {"55060475": [19]}, {"55060480": [145, 5]}, {"55060483": [1, 175, 164]}, {"55060488": [175, 165]}, {"55060491": [4, 175, 166]}, {"55060495": [8, 39, 189, 255, 232, 175, 191]}, {"55060503": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55060515": [6, 145, 6]}, {"55060519": [7, 141, 9]}, {"55060523": [8, 1, 32, 248, 9]}, {"55060532": [143, 191]}, {"55060535": [16, 39, 189]}, {"55060539": [24, 143, 164]}, {"55060544": [143, 165]}, {"55060547": [4, 143, 166]}, {"55060551": [8, 3, 224]}, {"55060555": [8]}, {"55060560": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55060571": [16, 175, 163]}, {"55060575": [20, 175, 191]}, {"55060579": [24, 12, 16, 10, 33]}, {"55060588": [143, 162]}, {"55060591": [16, 143, 163]}, {"55060595": [20, 143, 191]}, {"55060599": [24, 39, 189]}, {"55060603": [32, 3, 224]}, {"55060607": [8]}, {"55060612": [39, 189, 255, 232, 175, 191]}, {"55060619": [16, 60, 8, 128, 64, 37, 8, 32]}, {"55060628": [173]}, {"55060632": [173]}, {"55060635": [4, 173]}, {"55060639": [8, 173]}, {"55060643": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55060659": [42]}, {"55060665": [9, 15, 195, 1, 33, 32, 38]}, {"55060673": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 91]}, {"55060688": [4, 64]}, {"55060691": [34]}, {"55060696": [52, 68]}, {"55060700": [12, 16, 10, 160]}, {"55060708": [16, 96]}, {"55060711": [12]}, {"55060716": [60, 8, 128, 64, 37, 8, 32]}, {"55060724": [140, 105]}, {"55060728": [173, 9]}, {"55060732": [140, 105]}, {"55060735": [4, 173, 9]}, {"55060739": [4, 140, 105]}, {"55060743": [8, 173, 9]}, {"55060747": [8, 52, 9]}, {"55060751": [1, 173, 9]}, {"55060755": [12, 144, 98]}, {"55060760": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55060776": [52, 1]}, {"55060779": [10, 21, 65]}, {"55060783": [6]}, {"55060788": [149, 42]}, {"55060791": [28, 49, 74, 240, 31]}, {"55060797": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55060807": [28, 129, 9, 4, 36, 5, 33]}, {"55060815": [2]}, {"55060821": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55060831": [16, 39, 189]}, {"55060835": [24, 3, 224]}, {"55060839": [8]}, {"55060844": [39, 189, 255, 232, 175, 191]}, {"55060851": [16, 12, 16, 10, 105]}, {"55060860": [36, 1, 255, 255, 16, 65]}, {"55060867": [4]}, {"55060872": [52, 68]}, {"55060876": [12, 16, 10, 147]}, {"55060884": [143, 191]}, {"55060887": [16, 39, 189]}, {"55060891": [24, 3, 224]}, {"55060895": [8]}, {"55060900": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55060911": [164, 52, 8]}, {"55060916": [52, 137]}, {"55060920": [148, 170]}, {"55060924": [52, 1]}, {"55060927": [10, 21, 65]}, {"55060931": [14]}, {"55060936": [148, 171]}, {"55060939": [28, 52, 1]}, {"55060943": [16, 20, 65]}, {"55060947": [8]}, {"55060952": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55060963": [4]}, {"55060968": [36, 2, 255, 255, 16]}, {"55060975": [21]}, {"55060980": [52, 8]}, {"55060983": [1, 49, 105]}, {"55060987": [31, 52, 1]}, {"55060991": [21, 21, 65]}, {"55060995": [12]}, {"55061000": [52, 1]}, {"55061003": [62, 16, 129]}, {"55061007": [7]}, {"55061012": [52, 1]}, {"55061015": [66, 16, 129]}, {"55061019": [4]}, {"55061024": [36, 2, 255, 255, 16]}, {"55061031": [7]}, {"55061036": [52, 8]}, {"55061039": [2, 144, 169, 1, 65]}, {"55061045": [2, 18]}, {"55061049": [72, 16, 37]}, {"55061053": [2, 18]}, {"55061057": [73, 16, 37, 3, 224]}, {"55061063": [8]}, {"55061068": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061083": [4, 141, 9]}, {"55061088": [17, 32]}, {"55061091": [5]}, {"55061097": [9, 82, 2, 21, 68, 255, 250]}, {"55061108": [49, 34]}, {"55061111": [255, 3, 224]}, {"55061115": [8]}, {"55061120": [39, 189, 255, 224, 175, 176]}, {"55061127": [16, 175, 177]}, {"55061131": [20, 175, 191]}, {"55061135": [24, 52, 130]}, {"55061140": [52, 80]}, {"55061144": [38, 8, 255, 128, 5]}, {"55061151": [18]}, {"55061156": [60, 17, 128, 64, 38, 49, 32, 32, 52, 9]}, {"55061167": [16, 1, 9]}, {"55061171": [24]}, {"55061174": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061192": [142, 40]}, {"55061195": [12, 1]}, {"55061198": [248, 9]}, {"55061204": [20, 80, 255, 239]}, {"55061212": [54, 35]}, {"55061216": [16]}, {"55061219": [2]}, {"55061224": [52, 3]}, {"55061228": [143, 176]}, {"55061231": [16, 143, 177]}, {"55061235": [20, 143, 191]}, {"55061239": [24, 39, 189]}, {"55061243": [32, 3, 224]}, {"55061247": [8]}, {"55061252": [140, 136, 29, 44, 52, 9]}, {"55061259": [1]}, {"55061261": [9, 78]}, {"55061264": [1, 9, 16, 36, 16, 64]}, {"55061271": [36]}, {"55061276": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55061291": [164, 52, 1]}, {"55061295": [61, 17, 129]}, {"55061299": [10]}, {"55061305": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55061315": [25]}, {"55061320": [52, 13]}, {"55061323": [1, 161, 141, 29, 40, 37, 74]}, {"55061331": [3, 16]}, {"55061335": [9]}, {"55061340": [52, 12]}, {"55061343": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55061359": [14]}, {"55061364": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 20, 1, 1, 10, 64, 33, 129, 8]}, {"55061400": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061412": [52, 2]}, {"55061416": [3, 224]}, {"55061419": [8]}, {"55061424": [60, 8, 128, 64, 37, 8, 20]}, {"55061432": [129, 8]}, {"55061436": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061448": [3, 224]}, {"55061451": [8]}, {"55061456": [175, 164]}, {"55061459": [104, 175, 165]}, {"55061463": [108, 175, 166]}, {"55061467": [112, 175, 167]}, {"55061471": [116, 39, 189, 255, 232, 175, 163]}, {"55061479": [16, 175, 191]}, {"55061483": [20, 60, 8, 128, 64, 37, 8, 32, 16, 129, 8]}, {"55061496": [17]}, {"55061499": [14]}, {"55061504": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55061515": [1, 165, 42]}, {"55061520": [60, 9, 128, 65, 52, 10]}, {"55061527": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 33]}, {"55061556": [143, 163]}, {"55061559": [16, 143, 191]}, {"55061563": [20, 39, 189]}, {"55061567": [24, 143, 164]}, {"55061571": [104, 143, 165]}, {"55061575": [108, 143, 166]}, {"55061579": [112, 143, 167]}, {"55061583": [116, 132, 110, 19, 196, 3, 224]}, {"55061591": [8]}, {"55061596": [147, 25]}, {"55061599": [116, 52, 1]}, {"55061603": [255, 23, 33]}, {"55061607": [2]}, {"55061612": [52, 25]}, {"55061615": [44, 3, 224]}, {"55061619": [8, 167, 185]}, {"55061623": [154, 147, 44]}, {"55061627": [116, 52, 1]}, {"55061631": [255, 21, 129]}, {"55061635": [2]}, {"55061640": [52, 12]}, {"55061643": [44, 3, 224]}, {"55061647": [8]}, {"55061652": [145, 174]}, {"55061655": [116, 52, 1]}, {"55061659": [255, 21, 193]}, {"55061663": [2]}, {"55061668": [52, 14]}, {"55061671": [44, 3, 224]}, {"55061675": [8, 167, 174]}, {"55061679": [154, 145, 207]}, {"55061683": [116, 52, 1]}, {"55061687": [255, 21, 225]}, {"55061691": [2]}, {"55061696": [52, 15]}, {"55061699": [44, 3, 224]}, {"55061703": [8, 167, 175]}, {"55061707": [154, 60, 8, 128, 64, 37, 8, 32, 20, 142, 9]}, {"55061719": [104, 173, 9]}, {"55061724": [142, 9]}, {"55061727": [108, 173, 9]}, {"55061731": [4, 150, 9]}, {"55061735": [112, 165, 9]}, {"55061739": [8, 150, 9]}, {"55061743": [156, 165, 9]}, {"55061747": [10, 3, 224]}, {"55061751": [8, 142, 14]}, {"55061755": [4, 39, 189, 255, 224, 175, 176]}, {"55061763": [16, 175, 177]}, {"55061767": [20, 175, 191]}, {"55061771": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 20, 142, 8]}, {"55061791": [4, 17]}, {"55061795": [5]}, {"55061800": [12, 16, 11, 105]}, {"55061808": [16]}, {"55061811": [3]}, {"55061816": [12, 16, 11, 124]}, {"55061824": [12, 16, 11, 92, 52, 4]}, {"55061832": [12, 16, 11, 92, 52, 4]}, {"55061839": [1, 12, 16, 11, 92, 52, 4]}, {"55061847": [2, 143, 176]}, {"55061851": [16, 143, 177]}, {"55061855": [20, 143, 191]}, {"55061859": [24, 39, 189]}, {"55061863": [32, 3, 224]}, {"55061867": [8]}, {"55061872": [2, 4, 64, 33, 145, 9]}, {"55061879": [108, 52, 1]}, {"55061883": [255, 17, 33]}, {"55061887": [7]}, {"55061892": [2, 9, 72, 33, 145, 41]}, {"55061899": [116, 52, 1]}, {"55061903": [44, 17, 33]}, {"55061907": [2]}, {"55061912": [161, 9]}, {"55061915": [105, 3, 224]}, {"55061919": [8]}, {"55061924": [39, 189, 255, 232, 175, 191]}, {"55061931": [16, 142, 40]}, {"55061936": [174, 8]}, {"55061939": [64, 142, 40]}, {"55061943": [4, 174, 8]}, {"55061947": [68, 150, 40]}, {"55061951": [8, 166, 8]}, {"55061955": [72, 162]}, {"55061958": [15, 51, 146, 8]}, {"55061963": [74, 52, 1]}, {"55061967": [255, 21, 1]}, {"55061971": [3]}, {"55061976": [12, 16, 11, 138]}, {"55061984": [143, 191]}, {"55061987": [16, 39, 189]}, {"55061991": [24, 3, 224]}, {"55061995": [8]}, {"55062000": [142, 8]}, {"55062003": [64, 174, 8]}, {"55062007": [104, 142, 8]}, {"55062011": [68, 174, 8]}, {"55062015": [108, 150, 8]}, {"55062019": [72, 166, 8]}, {"55062023": [112, 146, 8]}, {"55062027": [104, 52, 1]}, {"55062031": [255, 21, 1]}, {"55062035": [3]}, {"55062040": [52, 8]}, {"55062043": [1, 162, 8, 15, 51, 3, 224]}, {"55062051": [8]}, {"55062056": [39, 189, 255, 232, 175, 191]}, {"55062063": [16, 150, 8]}, {"55062067": [156, 49, 8]}, {"55062071": [64, 17]}, {"55062075": [5]}, {"55062080": [150, 8]}, {"55062083": [112, 49, 8, 255, 15, 53, 8]}, {"55062091": [48, 166, 8]}, {"55062095": [112, 146, 40]}, {"55062099": [1, 162, 8]}, {"55062103": [105, 150, 40]}, {"55062107": [2, 166, 8]}, {"55062111": [106, 142, 40]}, {"55062115": [4, 174, 8]}, {"55062119": [108, 12, 16, 11, 164, 52, 4]}, {"55062128": [12, 16, 11, 164, 52, 4]}, {"55062135": [1, 12, 16, 11, 164, 52, 4]}, {"55062143": [2, 143, 191]}, {"55062147": [16, 39, 189]}, {"55062151": [24, 3, 224]}, {"55062155": [8]}, {"55062160": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 47, 60, 145, 10]}, {"55062175": [108, 52, 1]}, {"55062179": [255, 17, 65]}, {"55062183": [5]}, {"55062188": [1, 42, 72, 33, 145, 41]}, {"55062196": [21, 32]}, {"55062199": [28]}, {"55062204": [60, 9, 128, 64, 37, 41, 47, 47, 37, 41]}, {"55062215": [1, 145, 42]}, {"55062220": [17, 64]}, {"55062223": [19]}, {"55062228": [2, 10, 88, 33, 145, 107]}, {"55062235": [116, 52, 1]}, {"55062239": [255, 17, 97, 255, 248]}, {"55062248": [146, 12]}, {"55062251": [108, 17, 138, 255, 245]}, {"55062260": [146, 12]}, {"55062263": [109, 17, 138, 255, 242]}, {"55062272": [146, 12]}, {"55062275": [110, 17, 138, 255, 239]}, {"55062284": [161, 11]}, {"55062287": [105, 161, 10]}, {"55062291": [108, 16]}, {"55062295": [4]}, {"55062300": [52, 9]}, {"55062303": [255, 161, 9]}, {"55062307": [105, 161, 9]}, {"55062311": [108, 3, 224]}, {"55062315": [8]}, {"55062320": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55062333": [1, 1, 1, 1, 1]}, {"55062339": [1, 1, 1, 1, 1]}, {"55062345": [1]}, {"55062347": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55062357": [51, 8, 33, 32, 15]}, {"55062363": [71, 21, 234]}, {"55062367": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062379": [164]}, {"55062381": [15, 122, 3, 20, 64]}, {"55062387": [5, 52, 2, 72, 48, 21, 226]}, {"55062395": [7]}, {"55062400": [36, 25]}, {"55062403": [3, 16]}, {"55062407": [4, 52, 2, 99, 17, 21, 226]}, {"55062415": [2]}, {"55062420": [36, 25]}, {"55062423": [3, 3, 224]}, {"55062427": [8]}, {"55062432": [141, 173, 138, 160, 52, 2, 128]}, {"55062440": [16, 77]}, {"55062443": [2]}, {"55062448": [16]}, {"55062451": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55062467": [1, 16, 64]}, {"55062471": [2]}, {"55062476": [16]}, {"55062479": [2, 52, 2]}, {"55062483": [1, 161, 226, 28, 191, 3, 224]}, {"55062491": [8]}, {"55062497": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062511": [164]}, {"55062513": [15, 122, 3, 20, 64]}, {"55062519": [5, 52, 2, 72, 48, 21, 226]}, {"55062527": [7]}, {"55062532": [36, 25]}, {"55062535": [3, 16]}, {"55062539": [4, 52, 2, 99, 17, 21, 226]}, {"55062547": [2]}, {"55062552": [36, 25]}, {"55062555": [3, 3, 224]}, {"55062559": [8]}] \ No newline at end of file +[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 20]}, {"11325064": [12, 16, 10, 236, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 11, 63]}, {"11427312": [12, 16, 11, 232]}, {"11881272": [12, 16, 11, 248]}, {"11882076": [12, 16, 11, 213]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 11, 30, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 11, 37, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 11, 44, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 11, 23, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 9, 228]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 9, 177]}, {"12427480": [12, 16, 9, 206]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 9, 210]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12428008": [36, 10, 255, 255]}, {"12474768": [12, 16, 10, 244, 0, 0, 0, 0]}, {"12491456": [12, 16, 9, 240]}, {"12491480": [12, 16, 9, 249]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 10, 193]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 11, 51]}, {"14357459": [118]}, {"14624335": [118]}, {"14872723": [52]}, {"15506663": [122]}, {"55055360": [90, 93, 92, 94, 81, 82, 83]}, {"55058464": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 72, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 100, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 140, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 180, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 220, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 4, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 32, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 60, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 88, 83, 65, 1, 67]}, {"55058613": [198, 21, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 68]}, {"55058629": [198, 22, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 69]}, {"55058645": [198, 23, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 70]}, {"55058661": [198, 24, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 71]}, {"55058677": [198, 25, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 93]}, {"55058693": [198, 28, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 122]}, {"55058709": [198, 29, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 249]}, {"55058725": [198, 30, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 151]}, {"55058741": [198, 32, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 10, 6]}, {"55058757": [185, 1, 3, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 28]}, {"55058773": [185, 1, 4, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 29]}, {"55058789": [185, 1, 5, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 30]}, {"55058805": [185, 1, 6, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 42]}, {"55058821": [185, 1, 7, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 97]}, {"55058837": [185, 1, 10, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 98]}, {"55058853": [184, 2]}, {"55058856": [128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 99]}, {"55058869": [184, 2, 1, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 100]}, {"55058885": [184, 2, 2, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 101]}, {"55058901": [184, 2, 3, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 124]}, {"55058917": [184, 2, 4, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 125]}, {"55058933": [184, 2, 5, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 126]}, {"55058949": [184, 2, 6, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 127]}, {"55058965": [184, 2, 7, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 133]}, {"55058981": [184, 2, 8, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 135]}, {"55058997": [184, 2, 9, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 136]}, {"55059013": [200, 4]}, {"55059016": [128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 137]}, {"55059029": [200, 4, 1, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 138]}, {"55059045": [200, 4, 2, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 139]}, {"55059061": [200, 4, 3, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 140]}, {"55059077": [200, 4, 4, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 142]}, {"55059093": [200, 4, 5, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 143]}, {"55059109": [200, 4, 6, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 144]}, {"55059125": [200, 4, 7, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 145]}, {"55059141": [200, 4, 8, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 146]}, {"55059157": [200, 4, 9, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 254, 147]}, {"55059173": [170, 3, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 148]}, {"55059189": [170, 4, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 149]}, {"55059205": [170, 5, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 151]}, {"55059221": [170, 6, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 153]}, {"55059237": [170, 7, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 155]}, {"55059253": [170, 8, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 159]}, {"55059269": [170, 11, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 160]}, {"55059285": [170, 12, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 161]}, {"55059301": [170, 13, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 61, 67, 12]}, {"55059317": [248, 255, 255, 128, 64, 37, 204, 128, 64, 36, 64, 77, 131, 9, 85]}, {"55059333": [183, 255, 255, 128, 64, 37, 196, 128, 64, 36, 64, 83, 146, 219, 230]}, {"55059349": [216, 255, 255, 128, 64, 37, 196, 128, 64, 37, 140, 83, 147, 218, 230]}, {"55059365": [216, 255, 255, 128, 64, 37, 196, 128, 64, 37, 140, 83, 148, 217, 230]}, {"55059381": [216, 255, 255, 128, 64, 37, 196, 128, 64, 37, 140, 83, 142, 224, 50]}, {"55059397": [206, 255, 255, 128, 64, 37, 196, 128, 64, 37, 168, 83, 143, 224, 50]}, {"55059413": [206, 255, 255, 128, 64, 37, 196, 128, 64, 37, 168, 83, 144, 224, 50]}, {"55059429": [206, 255, 255, 128, 64, 37, 196, 128, 64, 37, 168, 83, 140, 238, 52]}, {"55059445": [187, 255, 255, 128, 64, 37, 196, 128, 64, 36, 64, 83, 141, 238, 52]}, {"55059461": [187, 255, 255, 128, 64, 37, 196, 128, 64, 36, 64, 79, 65, 19, 233]}, {"55059477": [189, 255, 255, 128, 64, 38, 92, 128, 64, 36, 64, 79, 65, 226, 228]}, {"55059493": [205, 255, 255, 128, 64, 38, 124, 128, 64, 37, 116, 79, 65, 225, 232]}, {"55059509": [205, 255, 255, 128, 64, 38, 156, 128, 64, 36, 64, 3, 224]}, {"55059523": [8, 52, 162]}, {"55059528": [144, 136]}, {"55059531": [125, 52, 1]}, {"55059535": [255, 17, 1]}, {"55059539": [2, 52, 2]}, {"55059543": [8, 52, 2]}, {"55059547": [9, 3, 224]}, {"55059551": [8]}, {"55059556": [144, 136]}, {"55059559": [163, 49, 8]}, {"55059563": [192, 17]}, {"55059567": [5, 52, 2]}, {"55059571": [84, 52, 1]}, {"55059575": [64, 17, 1]}, {"55059579": [2, 52, 2]}, {"55059583": [53, 52, 2]}, {"55059587": [54, 3, 224]}, {"55059591": [8]}, {"55059596": [144, 136]}, {"55059599": [163, 49, 8]}, {"55059603": [24, 17]}, {"55059607": [5, 52, 2]}, {"55059611": [50, 52, 1]}, {"55059615": [8, 17, 1]}, {"55059619": [2, 52, 2]}, {"55059623": [51, 52, 2]}, {"55059627": [52, 3, 224]}, {"55059631": [8]}, {"55059636": [144, 136]}, {"55059639": [163, 49, 8]}, {"55059643": [3, 17]}, {"55059647": [5, 52, 2]}, {"55059651": [4, 52, 1]}, {"55059655": [1, 17, 1]}, {"55059659": [2, 52, 2]}, {"55059663": [48, 52, 2]}, {"55059667": [49, 3, 224]}, {"55059671": [8]}, {"55059676": [144, 136]}, {"55059679": [162, 49, 8]}, {"55059683": [192, 17]}, {"55059687": [5, 52, 2]}, {"55059691": [5, 52, 1]}, {"55059695": [64, 17, 1]}, {"55059699": [2, 52, 2]}, {"55059703": [96, 52, 2]}, {"55059707": [123, 3, 224]}, {"55059711": [8]}, {"55059716": [144, 136]}, {"55059719": [162, 49, 8]}, {"55059723": [48, 17]}, {"55059727": [2, 52, 2]}, {"55059731": [69, 52, 2]}, {"55059735": [70, 3, 224]}, {"55059739": [8]}, {"55059744": [144, 136]}, {"55059747": [162, 49, 8]}, {"55059751": [6, 17]}, {"55059755": [2, 52, 2]}, {"55059759": [55, 52, 2]}, {"55059763": [56, 3, 224]}, {"55059767": [8]}, {"55059772": [144, 136]}, {"55059775": [161, 49, 8]}, {"55059779": [32, 17]}, {"55059783": [2, 52, 2]}, {"55059787": [121, 52, 2]}, {"55059791": [122, 3, 224]}, {"55059795": [8]}, {"55059800": [144, 136]}, {"55059803": [161, 49, 8]}, {"55059807": [4, 17]}, {"55059811": [2, 52, 2]}, {"55059815": [119, 52, 2]}, {"55059819": [120, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [50, 17]}, {"55059835": [2, 52, 2]}, {"55059839": [192, 52, 2]}, {"55059843": [193, 3, 224]}, {"55059847": [8]}, {"55059852": [144, 136]}, {"55059855": [163, 49, 8]}, {"55059859": [3, 17]}, {"55059863": [2, 52, 2]}, {"55059867": [77, 52, 162]}, {"55059872": [3, 224]}, {"55059875": [8]}, {"55059880": [144, 136]}, {"55059883": [163, 49, 8]}, {"55059887": [24, 17]}, {"55059891": [2, 52, 2]}, {"55059895": [77, 52, 162]}, {"55059900": [3, 224]}, {"55059903": [8]}, {"55059908": [3, 224]}, {"55059911": [8]}, {"55059916": [52, 8]}, {"55059919": [1, 160, 136]}, {"55059923": [62, 3, 224]}, {"55059927": [8]}, {"55059932": [36, 136]}, {"55059935": [134, 36, 9, 255, 255, 37, 41]}, {"55059943": [1, 52, 1]}, {"55059947": [3]}, {"55059949": [41, 8, 42, 20, 32]}, {"55059955": [7]}, {"55059960": [1, 9, 80, 33, 145, 75]}, {"55059968": [52, 1]}, {"55059971": [255, 21, 97, 255, 247]}, {"55059980": [161, 69]}, {"55059984": [3, 224]}, {"55059987": [8]}, {"55059992": [36, 136]}, {"55059995": [168, 1, 6, 64, 33, 145, 9]}, {"55060004": [1, 37, 72, 37, 161, 9]}, {"55060012": [3, 224]}, {"55060015": [8]}, {"55060020": [36, 136]}, {"55060023": [188, 1, 5, 64, 33, 129, 9]}, {"55060032": [5, 33]}, {"55060035": [2]}, {"55060040": [52, 9]}, {"55060044": [37, 41]}, {"55060047": [1, 161, 9]}, {"55060052": [3, 224]}, {"55060055": [8]}, {"55060060": [52, 8]}, {"55060063": [1, 160, 136]}, {"55060067": [61, 52, 8]}, {"55060071": [20, 160, 136]}, {"55060075": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060087": [8]}, {"55060092": [52, 8]}, {"55060095": [1, 160, 136]}, {"55060099": [50, 160, 136]}, {"55060103": [58, 52, 8]}, {"55060107": [48, 164, 136, 19, 244, 160, 136]}, {"55060115": [51, 3, 224]}, {"55060119": [8]}, {"55060124": [52, 8]}, {"55060127": [2, 160, 136]}, {"55060131": [50, 52, 8]}, {"55060135": [1, 160, 136]}, {"55060139": [58, 160, 136]}, {"55060143": [60, 52, 8]}, {"55060147": [96, 164, 136, 19, 244, 160, 136]}, {"55060155": [51, 3, 224]}, {"55060159": [8]}, {"55060164": [48, 132]}, {"55060167": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060179": [140, 16, 129]}, {"55060183": [22, 145, 2]}, {"55060187": [117, 52, 1]}, {"55060191": [141, 16, 129]}, {"55060195": [19, 145, 2]}, {"55060199": [117, 16, 128]}, {"55060203": [17, 145, 2]}, {"55060207": [116, 52, 1]}, {"55060211": [138, 16, 129]}, {"55060215": [14, 145, 2]}, {"55060219": [116, 52, 1]}, {"55060223": [139, 16, 129]}, {"55060227": [11, 145, 2]}, {"55060231": [116, 52, 1]}, {"55060235": [88, 16, 129]}, {"55060239": [8, 52, 2]}, {"55060244": [52, 1]}, {"55060247": [120, 16, 129]}, {"55060251": [5, 52, 2]}, {"55060256": [52, 1]}, {"55060259": [121, 16, 129]}, {"55060263": [2, 52, 2]}, {"55060268": [52, 2]}, {"55060271": [255, 3, 224]}, {"55060275": [8]}, {"55060280": [143, 166]}, {"55060283": [48, 132, 197]}, {"55060287": [4, 8, 16, 9, 214]}, {"55060296": [143, 185]}, {"55060299": [44, 135, 37]}, {"55060303": [4, 8, 16, 9, 214]}, {"55060312": [60, 10, 128, 64, 37, 74, 32]}, {"55060320": [141, 75]}, {"55060323": [12, 17, 96]}, {"55060327": [2]}, {"55060332": [149, 69]}, {"55060335": [4, 60, 10, 128, 64, 37, 74, 32, 16, 161, 64]}, {"55060348": [60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060360": [3, 224]}, {"55060363": [8]}, {"55060368": [60, 8, 128, 64, 37, 8, 32]}, {"55060376": [141, 9]}, {"55060379": [12, 17, 32]}, {"55060383": [2]}, {"55060388": [129, 3]}, {"55060391": [2]}, {"55060393": [3, 15, 195]}, {"55060397": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55060411": [8]}, {"55060416": [144, 69]}, {"55060419": [3, 60, 8, 128, 64, 37, 8, 32]}, {"55060428": [141, 9]}, {"55060431": [12, 17, 32]}, {"55060435": [2]}, {"55060440": [145, 5]}, {"55060443": [3, 3, 224]}, {"55060447": [8]}, {"55060452": [143, 162]}, {"55060455": [36, 144, 69]}, {"55060460": [60, 8, 128, 64, 37, 8, 32]}, {"55060468": [141, 9]}, {"55060471": [12, 17, 32]}, {"55060475": [19]}, {"55060480": [145, 5]}, {"55060483": [1, 175, 164]}, {"55060488": [175, 165]}, {"55060491": [4, 175, 166]}, {"55060495": [8, 39, 189, 255, 232, 175, 191]}, {"55060503": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55060515": [6, 145, 6]}, {"55060519": [7, 141, 9]}, {"55060523": [8, 1, 32, 248, 9]}, {"55060532": [143, 191]}, {"55060535": [16, 39, 189]}, {"55060539": [24, 143, 164]}, {"55060544": [143, 165]}, {"55060547": [4, 143, 166]}, {"55060551": [8, 3, 224]}, {"55060555": [8]}, {"55060560": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55060571": [16, 175, 163]}, {"55060575": [20, 175, 191]}, {"55060579": [24, 12, 16, 10, 33]}, {"55060588": [143, 162]}, {"55060591": [16, 143, 163]}, {"55060595": [20, 143, 191]}, {"55060599": [24, 39, 189]}, {"55060603": [32, 3, 224]}, {"55060607": [8]}, {"55060612": [39, 189, 255, 232, 175, 191]}, {"55060619": [16, 60, 8, 128, 64, 37, 8, 32]}, {"55060628": [173]}, {"55060632": [173]}, {"55060635": [4, 173]}, {"55060639": [8, 173]}, {"55060643": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55060659": [42]}, {"55060665": [9, 15, 195, 1, 33, 32, 38]}, {"55060673": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 91]}, {"55060688": [4, 64]}, {"55060691": [34]}, {"55060696": [52, 68]}, {"55060700": [12, 16, 10, 160]}, {"55060708": [16, 96]}, {"55060711": [12]}, {"55060716": [60, 8, 128, 64, 37, 8, 32]}, {"55060724": [140, 105]}, {"55060728": [173, 9]}, {"55060732": [140, 105]}, {"55060735": [4, 173, 9]}, {"55060739": [4, 140, 105]}, {"55060743": [8, 173, 9]}, {"55060747": [8, 52, 9]}, {"55060751": [1, 173, 9]}, {"55060755": [12, 144, 98]}, {"55060760": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55060776": [52, 1]}, {"55060779": [10, 21, 65]}, {"55060783": [6]}, {"55060788": [149, 42]}, {"55060791": [28, 49, 74, 240, 31]}, {"55060797": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55060807": [28, 129, 9, 4, 36, 5, 33]}, {"55060815": [2]}, {"55060821": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55060831": [16, 39, 189]}, {"55060835": [24, 3, 224]}, {"55060839": [8]}, {"55060844": [39, 189, 255, 232, 175, 191]}, {"55060851": [16, 12, 16, 10, 105]}, {"55060860": [36, 1, 255, 255, 16, 65]}, {"55060867": [4]}, {"55060872": [52, 68]}, {"55060876": [12, 16, 10, 147]}, {"55060884": [143, 191]}, {"55060887": [16, 39, 189]}, {"55060891": [24, 3, 224]}, {"55060895": [8]}, {"55060900": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55060911": [164, 52, 8]}, {"55060916": [52, 137]}, {"55060920": [148, 170]}, {"55060924": [52, 1]}, {"55060927": [10, 21, 65]}, {"55060931": [14]}, {"55060936": [148, 171]}, {"55060939": [28, 52, 1]}, {"55060943": [16, 20, 65]}, {"55060947": [8]}, {"55060952": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55060963": [4]}, {"55060968": [36, 2, 255, 255, 16]}, {"55060975": [21]}, {"55060980": [52, 8]}, {"55060983": [1, 49, 105]}, {"55060987": [31, 52, 1]}, {"55060991": [21, 21, 65]}, {"55060995": [12]}, {"55061000": [52, 1]}, {"55061003": [62, 16, 129]}, {"55061007": [7]}, {"55061012": [52, 1]}, {"55061015": [66, 16, 129]}, {"55061019": [4]}, {"55061024": [36, 2, 255, 255, 16]}, {"55061031": [7]}, {"55061036": [52, 8]}, {"55061039": [2, 144, 169, 1, 65]}, {"55061045": [2, 18]}, {"55061049": [72, 16, 37]}, {"55061053": [2, 18]}, {"55061057": [73, 16, 37, 3, 224]}, {"55061063": [8]}, {"55061068": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061083": [4, 141, 9]}, {"55061088": [17, 32]}, {"55061091": [5]}, {"55061097": [9, 82, 2, 21, 68, 255, 250]}, {"55061108": [49, 34]}, {"55061111": [255, 3, 224]}, {"55061115": [8]}, {"55061120": [39, 189, 255, 224, 175, 176]}, {"55061127": [16, 175, 177]}, {"55061131": [20, 175, 191]}, {"55061135": [24, 52, 130]}, {"55061140": [52, 80]}, {"55061144": [38, 8, 255, 128, 5]}, {"55061151": [18]}, {"55061156": [60, 17, 128, 64, 38, 49, 32, 32, 52, 9]}, {"55061167": [16, 1, 9]}, {"55061171": [24]}, {"55061174": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061192": [142, 40]}, {"55061195": [12, 1]}, {"55061198": [248, 9]}, {"55061204": [20, 80, 255, 239]}, {"55061212": [54, 35]}, {"55061216": [16]}, {"55061219": [2]}, {"55061224": [52, 3]}, {"55061228": [143, 176]}, {"55061231": [16, 143, 177]}, {"55061235": [20, 143, 191]}, {"55061239": [24, 39, 189]}, {"55061243": [32, 3, 224]}, {"55061247": [8]}, {"55061252": [140, 136, 29, 44, 52, 9]}, {"55061259": [1]}, {"55061261": [9, 78]}, {"55061264": [1, 9, 16, 36, 16, 64]}, {"55061271": [36]}, {"55061276": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55061291": [164, 52, 1]}, {"55061295": [61, 17, 129]}, {"55061299": [10]}, {"55061305": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55061315": [25]}, {"55061320": [52, 13]}, {"55061323": [1, 161, 141, 29, 40, 37, 74]}, {"55061331": [3, 16]}, {"55061335": [9]}, {"55061340": [52, 12]}, {"55061343": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55061359": [14]}, {"55061364": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 20, 1, 1, 10, 64, 33, 129, 8]}, {"55061400": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061412": [52, 2]}, {"55061416": [3, 224]}, {"55061419": [8]}, {"55061424": [60, 8, 128, 64, 37, 8, 20]}, {"55061432": [129, 8]}, {"55061436": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061448": [3, 224]}, {"55061451": [8]}, {"55061456": [175, 164]}, {"55061459": [104, 175, 165]}, {"55061463": [108, 175, 166]}, {"55061467": [112, 175, 167]}, {"55061471": [116, 39, 189, 255, 232, 175, 163]}, {"55061479": [16, 175, 191]}, {"55061483": [20, 60, 8, 128, 64, 37, 8, 32, 16, 129, 8]}, {"55061496": [17]}, {"55061499": [14]}, {"55061504": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55061515": [1, 165, 42]}, {"55061520": [60, 9, 128, 65, 52, 10]}, {"55061527": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 33]}, {"55061556": [143, 163]}, {"55061559": [16, 143, 191]}, {"55061563": [20, 39, 189]}, {"55061567": [24, 143, 164]}, {"55061571": [104, 143, 165]}, {"55061575": [108, 143, 166]}, {"55061579": [112, 143, 167]}, {"55061583": [116, 132, 110, 19, 196, 3, 224]}, {"55061591": [8]}, {"55061596": [147, 25]}, {"55061599": [116, 52, 1]}, {"55061603": [255, 23, 33]}, {"55061607": [2]}, {"55061612": [52, 25]}, {"55061615": [44, 3, 224]}, {"55061619": [8, 167, 185]}, {"55061623": [154, 147, 44]}, {"55061627": [116, 52, 1]}, {"55061631": [255, 21, 129]}, {"55061635": [2]}, {"55061640": [52, 12]}, {"55061643": [44, 3, 224]}, {"55061647": [8]}, {"55061652": [145, 174]}, {"55061655": [116, 52, 1]}, {"55061659": [255, 21, 193]}, {"55061663": [2]}, {"55061668": [52, 14]}, {"55061671": [44, 3, 224]}, {"55061675": [8, 167, 174]}, {"55061679": [154, 145, 207]}, {"55061683": [116, 52, 1]}, {"55061687": [255, 21, 225]}, {"55061691": [2]}, {"55061696": [52, 15]}, {"55061699": [44, 3, 224]}, {"55061703": [8, 167, 175]}, {"55061707": [154, 60, 8, 128, 64, 37, 8, 32, 20, 142, 9]}, {"55061719": [104, 173, 9]}, {"55061724": [142, 9]}, {"55061727": [108, 173, 9]}, {"55061731": [4, 150, 9]}, {"55061735": [112, 165, 9]}, {"55061739": [8, 150, 9]}, {"55061743": [156, 165, 9]}, {"55061747": [10, 3, 224]}, {"55061751": [8, 142, 14]}, {"55061755": [4, 39, 189, 255, 224, 175, 176]}, {"55061763": [16, 175, 177]}, {"55061767": [20, 175, 191]}, {"55061771": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 20, 142, 8]}, {"55061791": [4, 17]}, {"55061795": [5]}, {"55061800": [12, 16, 11, 105]}, {"55061808": [16]}, {"55061811": [3]}, {"55061816": [12, 16, 11, 124]}, {"55061824": [12, 16, 11, 92, 52, 4]}, {"55061832": [12, 16, 11, 92, 52, 4]}, {"55061839": [1, 12, 16, 11, 92, 52, 4]}, {"55061847": [2, 143, 176]}, {"55061851": [16, 143, 177]}, {"55061855": [20, 143, 191]}, {"55061859": [24, 39, 189]}, {"55061863": [32, 3, 224]}, {"55061867": [8]}, {"55061872": [2, 4, 64, 33, 145, 9]}, {"55061879": [108, 52, 1]}, {"55061883": [255, 17, 33]}, {"55061887": [7]}, {"55061892": [2, 9, 72, 33, 145, 41]}, {"55061899": [116, 52, 1]}, {"55061903": [44, 17, 33]}, {"55061907": [2]}, {"55061912": [161, 9]}, {"55061915": [105, 3, 224]}, {"55061919": [8]}, {"55061924": [39, 189, 255, 232, 175, 191]}, {"55061931": [16, 142, 40]}, {"55061936": [174, 8]}, {"55061939": [64, 142, 40]}, {"55061943": [4, 174, 8]}, {"55061947": [68, 150, 40]}, {"55061951": [8, 166, 8]}, {"55061955": [72, 162]}, {"55061958": [15, 51, 146, 8]}, {"55061963": [74, 52, 1]}, {"55061967": [255, 21, 1]}, {"55061971": [3]}, {"55061976": [12, 16, 11, 138]}, {"55061984": [143, 191]}, {"55061987": [16, 39, 189]}, {"55061991": [24, 3, 224]}, {"55061995": [8]}, {"55062000": [142, 8]}, {"55062003": [64, 174, 8]}, {"55062007": [104, 142, 8]}, {"55062011": [68, 174, 8]}, {"55062015": [108, 150, 8]}, {"55062019": [72, 166, 8]}, {"55062023": [112, 146, 8]}, {"55062027": [104, 52, 1]}, {"55062031": [255, 21, 1]}, {"55062035": [3]}, {"55062040": [52, 8]}, {"55062043": [1, 162, 8, 15, 51, 3, 224]}, {"55062051": [8]}, {"55062056": [39, 189, 255, 232, 175, 191]}, {"55062063": [16, 150, 8]}, {"55062067": [156, 49, 8]}, {"55062071": [64, 17]}, {"55062075": [5]}, {"55062080": [150, 8]}, {"55062083": [112, 49, 8, 255, 15, 53, 8]}, {"55062091": [48, 166, 8]}, {"55062095": [112, 146, 40]}, {"55062099": [1, 162, 8]}, {"55062103": [105, 150, 40]}, {"55062107": [2, 166, 8]}, {"55062111": [106, 142, 40]}, {"55062115": [4, 174, 8]}, {"55062119": [108, 12, 16, 11, 164, 52, 4]}, {"55062128": [12, 16, 11, 164, 52, 4]}, {"55062135": [1, 12, 16, 11, 164, 52, 4]}, {"55062143": [2, 143, 191]}, {"55062147": [16, 39, 189]}, {"55062151": [24, 3, 224]}, {"55062155": [8]}, {"55062160": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 47, 60, 145, 10]}, {"55062175": [108, 52, 1]}, {"55062179": [255, 17, 65]}, {"55062183": [5]}, {"55062188": [1, 42, 72, 33, 145, 41]}, {"55062196": [21, 32]}, {"55062199": [28]}, {"55062204": [60, 9, 128, 64, 37, 41, 47, 47, 37, 41]}, {"55062215": [1, 145, 42]}, {"55062220": [17, 64]}, {"55062223": [19]}, {"55062228": [2, 10, 88, 33, 145, 107]}, {"55062235": [116, 52, 1]}, {"55062239": [255, 17, 97, 255, 248]}, {"55062248": [146, 12]}, {"55062251": [108, 17, 138, 255, 245]}, {"55062260": [146, 12]}, {"55062263": [109, 17, 138, 255, 242]}, {"55062272": [146, 12]}, {"55062275": [110, 17, 138, 255, 239]}, {"55062284": [161, 11]}, {"55062287": [105, 161, 10]}, {"55062291": [108, 16]}, {"55062295": [4]}, {"55062300": [52, 9]}, {"55062303": [255, 161, 9]}, {"55062307": [105, 161, 9]}, {"55062311": [108, 3, 224]}, {"55062315": [8]}, {"55062320": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55062333": [1, 1, 1, 1, 1]}, {"55062339": [1, 1, 1, 1, 1]}, {"55062345": [1]}, {"55062347": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55062357": [51, 8, 33, 32, 15]}, {"55062363": [71, 21, 234]}, {"55062367": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062379": [164]}, {"55062381": [15, 122, 3, 20, 64]}, {"55062387": [5, 52, 2, 72, 48, 21, 226]}, {"55062395": [7]}, {"55062400": [36, 25]}, {"55062403": [3, 16]}, {"55062407": [4, 52, 2, 99, 17, 21, 226]}, {"55062415": [2]}, {"55062420": [36, 25]}, {"55062423": [3, 3, 224]}, {"55062427": [8]}, {"55062432": [141, 173, 138, 160, 52, 2, 128]}, {"55062440": [16, 77]}, {"55062443": [2]}, {"55062448": [16]}, {"55062451": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55062467": [1, 16, 64]}, {"55062471": [2]}, {"55062476": [16]}, {"55062479": [2, 52, 2]}, {"55062483": [1, 161, 226, 28, 191, 3, 224]}, {"55062491": [8]}, {"55062497": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062511": [164]}, {"55062513": [15, 122, 3, 20, 64]}, {"55062519": [5, 52, 2, 72, 48, 21, 226]}, {"55062527": [7]}, {"55062532": [36, 25]}, {"55062535": [3, 16]}, {"55062539": [4, 52, 2, 99, 17, 21, 226]}, {"55062547": [2]}, {"55062552": [36, 25]}, {"55062555": [3, 3, 224]}, {"55062559": [8]}] \ No newline at end of file From ce460f136a6e90517dff205b39fc459e5f98ab6c Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 29 Jun 2018 11:53:28 -0500 Subject: [PATCH 054/755] Added bombchus to logic --- BaseClasses.py | 10 ++- Rules.py | 182 +++++++++++++++++++++++++------------------------ 2 files changed, 100 insertions(+), 92 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 4dc56d977..52e324920 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -301,8 +301,14 @@ def item_count(self, item): def is_adult(self): return self.has('Master Sword') - def can_blast(self): - return self.has('Bomb Bag') or (self.is_adult() and self.has('Hammer')) + def has_bombchus(self): + return self.has('Bombchus') or (self.is_adult() and self.has('Progressive Wallet') and self.has('Gerudo Membership Card') and (self.has('Progressive Hookshot', 2) or self.has('Hover Boots'))) + + def has_explosives(self): + return self.has('Bomb Bag') or has_bombchus(self) + + def can_blast_or_smash(self): + return self.has('Bomb Bag') or (self.is_adult() and self.has('Hammer')) or has_bombchus(self) def can_dive(self): return self.has('Progressive Scale') diff --git a/Rules.py b/Rules.py index 94ba34bb2..e62f02cf5 100644 --- a/Rules.py +++ b/Rules.py @@ -67,7 +67,7 @@ def global_rules(world): set_rule(world.get_location('Deku Theater Mask of Truth'), lambda state: state.has('Zeldas Letter') and state.has('Sarias Song') and state.has('Kokiri Emerald') and state.has('Goron Ruby') and state.has('Zora Sapphire') and state.guarantee_hint()) #Must befriend Skull Kid to sell Skull Mask, all stones to spawn running man. set_rule(world.get_location('Anju as Adult'), lambda state: state.is_adult()) set_rule(world.get_location('Man on Roof'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('Impa House Freestanding PoH'), lambda state: (state.has('Progressive Hookshot') and state.is_adult()) or state.has('Bomb Bag')) + set_rule(world.get_location('Impa House Freestanding PoH'), lambda state: (state.has('Progressive Hookshot') and state.is_adult()) or state.has_explosives()) set_rule(world.get_location('10 Gold Skulltulla Reward'), lambda state: state.has('Gold Skulltulla Token', 10)) set_rule(world.get_location('20 Gold Skulltulla Reward'), lambda state: state.has('Gold Skulltulla Token', 20)) set_rule(world.get_location('30 Gold Skulltulla Reward'), lambda state: state.has('Gold Skulltulla Token', 30) and state.guarantee_hint()) @@ -78,47 +78,49 @@ def global_rules(world): set_rule(world.get_location('Composer Grave Chest'), lambda state: state.has_fire_source()) set_rule(world.get_entrance('Bottom of the Well'), lambda state: state.has('Song of Storms')) set_rule(world.get_location('Bottom of the Well Front Left Hidden Wall'), lambda state: state.has('Lens of Truth') and state.has('Magic Meter')) - set_rule(world.get_location('Bottom of the Well Front Center Bombable'), lambda state: state.has('Bomb Bag')) + set_rule(world.get_location('Bottom of the Well Front Center Bombable'), lambda state: state.has_explosives()) set_rule(world.get_location('Bottom of the Well Right Bottom Hidden Wall'), lambda state: state.has('Lens of Truth') and state.has('Magic Meter')) set_rule(world.get_location('Bottom of the Well Center Large Chest'), lambda state: state.has('Lens of Truth') and state.has('Magic Meter')) set_rule(world.get_location('Bottom of the Well Center Small Chest'), lambda state: state.has('Lens of Truth') and state.has('Magic Meter')) - set_rule(world.get_location('Bottom of the Well Back Left Bombable'), lambda state: state.has('Bomb Bag')) + set_rule(world.get_location('Bottom of the Well Back Left Bombable'), lambda state: state.has_explosives()) set_rule(world.get_location('Bottom of the Well Defeat Boss'), lambda state: state.has('Zeldas Lullaby') and state.has('Kokiri Sword')) #Sword not strictly necessary but frankly being forced to do this with sticks isn't fair set_rule(world.get_location('Bottom of the Well Invisible Chest'), lambda state: state.has('Zeldas Lullaby') and state.has('Lens of Truth') and state.has('Magic Meter')) set_rule(world.get_location('Bottom of the Well Underwater Front Chest'), lambda state: state.has('Zeldas Lullaby')) set_rule(world.get_location('Bottom of the Well Underwater Left Chest'), lambda state: state.has('Zeldas Lullaby')) - set_rule(world.get_location('Bottom of the Well Basement Chest'), lambda state: state.has('Bomb Bag')) + set_rule(world.get_location('Bottom of the Well Basement Chest'), lambda state: state.has_explosives()) set_rule(world.get_location('Bottom of the Well Locked Pits'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Lens of Truth') and state.has('Magic Meter')) #These pits are really unfair. set_rule(world.get_location('Bottom of the Well Behind Right Grate'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Lens of Truth') and state.has('Magic Meter')) set_rule(world.get_entrance('Death Mountain Entrance'), lambda state: state.has('Zeldas Letter') or state.is_adult()) - set_rule(world.get_location('Death Mountain Bombable Chest'), lambda state: state.can_blast()) - set_rule(world.get_location('Biggoron'), lambda state: state.can_blast() and state.is_adult() and state.can_finish_adult_trades() and state.guarantee_hint()) + set_rule(world.get_location('Death Mountain Bombable Chest'), lambda state: state.can_blast_or_smash()) + set_rule(world.get_location('Biggoron'), lambda state: state.can_blast_or_smash() and state.is_adult() and state.can_finish_adult_trades() and state.guarantee_hint()) set_rule(world.get_location('Goron City Leftmost Maze Chest'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade', 2) or state.has('Hammer'))) - set_rule(world.get_location('Goron City Left Maze Chest'), lambda state: state.can_blast() or (state.has('Progressive Strength Upgrade', 2) and state.is_adult())) - set_rule(world.get_location('Goron City Right Maze Chest'), lambda state: state.can_blast() or (state.has('Progressive Strength Upgrade', 2) and state.is_adult())) + set_rule(world.get_location('Goron City Left Maze Chest'), lambda state: state.can_blast_or_smash() or (state.has('Progressive Strength Upgrade', 2) and state.is_adult())) + set_rule(world.get_location('Goron City Right Maze Chest'), lambda state: state.can_blast_or_smash() or (state.has('Progressive Strength Upgrade', 2) and state.is_adult())) set_rule(world.get_location('Rolling Goron as Child'), lambda state: state.has('Bomb Bag')) set_rule(world.get_location('Goron City Pot Freestanding PoH'), lambda state: (state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) and (state.has('Zeldas Lullaby') or (state.has('Dins Fire') and state.has('Magic Meter')))) set_rule(world.get_entrance('Darunias Chamber'), lambda state: state.has('Zeldas Lullaby')) set_rule(world.get_location('Darunias Joy'), lambda state: state.has('Sarias Song')) - set_rule(world.get_entrance('Goron City from Woods'), lambda state: state.can_blast() and (world.open_forest or (state.has('Slingshot') and state.has('Kokiri Sword')))) - set_rule(world.get_entrance('Dodongos Cavern Rocks'), lambda state: state.can_blast() or state.has('Progressive Strength Upgrade') or state.is_adult()) - set_rule(world.get_entrance('Dodongos Cavern Lobby'), lambda state: state.can_blast() or state.has('Progressive Strength Upgrade')) - set_rule(world.get_entrance('Dodongos Cavern Left Door'), lambda state: state.has('Bomb Bag') or state.has('Progressive Strength Upgrade') or (state.has('Dins Fire') and state.has('Magic Meter'))) + set_rule(world.get_entrance('Goron City from Woods'), lambda state: state.can_blast_or_smash() and (world.open_forest or (state.has('Slingshot') and state.has('Kokiri Sword')))) + set_rule(world.get_entrance('Dodongos Cavern Rocks'), lambda state: state.can_blast_or_smash() or state.has('Progressive Strength Upgrade') or state.is_adult()) + set_rule(world.get_entrance('Dodongos Cavern Lobby'), lambda state: state.can_blast_or_smash() or state.has('Progressive Strength Upgrade')) + set_rule(world.get_entrance('Dodongos Cavern Left Door'), lambda state: state.has_explosives() or state.has('Progressive Strength Upgrade') or (state.has('Dins Fire') and state.has('Magic Meter'))) set_rule(world.get_entrance('Dodongos Cavern Slingshot Target'), lambda state: state.has('Slingshot') or ((state.has('Bow') or state.has('Hover Boots')) and state.is_adult())) - set_rule(world.get_location('Dodongos Cavern End of Bridge Chest'), lambda state: state.has('Bomb Bag') or ((state.has('Bow') or state.has('Hover Boots')) and state.is_adult() and state.has('Hammer'))) - set_rule(world.get_entrance('Dodongos Cavern Bomb Drop'), lambda state: state.has('Bomb Bag')) + set_rule(world.get_location('Dodongos Cavern End of Bridge Chest'), lambda state: state.has_explosives() or ((state.has('Bow') or state.has('Hover Boots')) and state.is_adult() and state.has('Hammer'))) + set_rule(world.get_entrance('Dodongos Cavern Bomb Drop'), lambda state: state.has_explosives()) + set_rule(world.get_location('King Dodongo'), lambda state: state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) + set_rule(world.get_location('King Dodongo Heart'), lambda state: state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) set_rule(world.get_location('Song from Saria'), lambda state: state.has('Zeldas Letter')) - set_rule(world.get_entrance('Mountain Summit Fairy'), lambda state: state.can_blast()) + set_rule(world.get_entrance('Mountain Summit Fairy'), lambda state: state.can_blast_or_smash()) set_rule(world.get_location('Crater Fairy Reward'), lambda state: state.has('Zeldas Lullaby')) set_rule(world.get_location('Mountain Summit Fairy Reward'), lambda state: state.has('Zeldas Lullaby')) - set_rule(world.get_entrance('Mountain Crater Entrance'), lambda state: state.can_blast()) - set_rule(world.get_entrance('Hyrule Castle Fairy'), lambda state: state.has('Bomb Bag')) + set_rule(world.get_entrance('Mountain Crater Entrance'), lambda state: state.can_blast_or_smash()) + set_rule(world.get_entrance('Hyrule Castle Fairy'), lambda state: state.has_explosives()) set_rule(world.get_location('Hyrule Castle Fairy Reward'), lambda state: state.has('Zeldas Lullaby')) set_rule(world.get_entrance('Ganons Castle Grounds'), lambda state: state.is_adult()) set_rule(world.get_entrance('Ganons Castle Fairy'), lambda state: state.has('Progressive Strength Upgrade', 3)) set_rule(world.get_location('Ganons Castle Fairy Reward'), lambda state: state.has('Zeldas Lullaby')) - set_rule(world.get_location('Bombchu Bowling Bomb Bag'), lambda state: state.has('Bomb Bag')) - set_rule(world.get_location('Bombchu Bowling Piece of Heart'), lambda state: state.has('Bomb Bag')) + set_rule(world.get_location('Bombchu Bowling Bomb Bag'), lambda state: state.has_explosives()) + set_rule(world.get_location('Bombchu Bowling Piece of Heart'), lambda state: state.has_explosives()) set_rule(world.get_location('Adult Shooting Gallery'), lambda state: state.has('Bow') and state.is_adult()) set_rule(world.get_location('10 Big Poes'), lambda state: state.has('Bow') and state.has('Epona') and state.has_bottle() and state.is_adult() and state.guarantee_hint()) set_rule(world.get_location('Treasure Chest Game'), lambda state: state.has('Lens of Truth') and state.has('Magic Meter')) @@ -127,9 +129,9 @@ def global_rules(world): set_rule(world.get_entrance('Lake Hylia Dive Warp'), lambda state: state.can_dive()) set_rule(world.get_entrance('Zoras Domain Dive Warp'), lambda state: state.can_dive()) set_rule(world.get_entrance('Zora River Waterfall'), lambda state: state.has('Zeldas Lullaby')) - set_rule(world.get_entrance('Zora River Rocks'), lambda state: state.has('Bomb Bag')) - set_rule(world.get_location('Zora River Lower Freestanding PoH'), lambda state: state.has('Bomb Bag') or state.has('Progressive Scale') or (state.has('Hover Boots') and state.is_adult())) - set_rule(world.get_location('Zora River Upper Freestanding PoH'), lambda state: state.has('Bomb Bag') or state.has('Progressive Scale') or (state.has('Hover Boots') and state.is_adult())) + set_rule(world.get_entrance('Zora River Rocks'), lambda state: state.has_explosives()) + set_rule(world.get_location('Zora River Lower Freestanding PoH'), lambda state: state.has_explosives() or state.has('Progressive Scale') or (state.has('Hover Boots') and state.is_adult())) + set_rule(world.get_location('Zora River Upper Freestanding PoH'), lambda state: state.has_explosives() or state.has('Progressive Scale') or (state.has('Hover Boots') and state.is_adult())) set_rule(world.get_location('Frog Ocarina Game'), lambda state: state.has('Zeldas Lullaby') and state.has('Sarias Song') and state.has('Suns Song') and state.has('Eponas Song') and state.has('Song of Time') and state.has('Song of Storms')) set_rule(world.get_location('Frogs in the Rain'), lambda state: state.has('Song of Storms')) set_rule(world.get_location('Underwater Bottle'), lambda state: state.can_dive()) @@ -139,9 +141,9 @@ def global_rules(world): set_rule(world.get_entrance('Zoras Domain Adult Access'), lambda state: state.has('Zeldas Lullaby')) set_rule(world.get_entrance('Zoras Fountain Adult Access'), lambda state: state.can_reach('Zoras Fountain')) set_rule(world.get_entrance('Jabu Jabus Belly'), lambda state: state.has_bottle()) - set_rule(world.get_entrance('Zoras Fountain Fairy'), lambda state: state.has('Bomb Bag')) + set_rule(world.get_entrance('Zoras Fountain Fairy'), lambda state: state.has_explosives()) set_rule(world.get_location('Zoras Fountain Fairy Reward'), lambda state: state.has('Zeldas Lullaby')) - set_rule(world.get_entrance('Jabu Jabus Belly Ceiling Switch'), lambda state: state.has('Slingshot') or state.has('Bomb Bag') or state.has('Boomerang')) + set_rule(world.get_entrance('Jabu Jabus Belly Ceiling Switch'), lambda state: state.has('Slingshot') or state.has_explosives() or state.has('Boomerang')) set_rule(world.get_entrance('Jabu Jabus Belly Tentacles'), lambda state: state.has('Boomerang')) set_rule(world.get_location('Ice Cavern Map Chest'), lambda state: state.has_bottle()) set_rule(world.get_location('Ice Cavern Compass Chest'), lambda state: state.has_bottle()) @@ -192,24 +194,24 @@ def global_rules(world): set_rule(world.get_entrance('Crater Fairy'), lambda state: state.is_adult() and state.has('Hammer')) set_rule(world.get_location('DM Crater Volcano Freestanding PoH'), lambda state: state.is_adult() and state.has('Magic Bean') and state.has('Bolero of Fire')) set_rule(world.get_entrance('Fire Temple Entrance'), lambda state: state.is_adult() and state.has_GoronTunic()) - set_rule(world.get_entrance('Fire Temple Early Climb'), lambda state: state.has('Small Key (Fire Temple)', 3) and state.has('Progressive Strength Upgrade') and (state.has('Bomb Bag') or ((state.has('Bow') or state.has('Progressive Hookshot')) and state.is_adult()))) + set_rule(world.get_entrance('Fire Temple Early Climb'), lambda state: state.has('Small Key (Fire Temple)', 3) and state.has('Progressive Strength Upgrade') and (state.has_explosives() or ((state.has('Bow') or state.has('Progressive Hookshot')) and state.is_adult()))) set_rule(world.get_entrance('Fire Temple Fire Maze Escape'), lambda state: state.has('Small Key (Fire Temple)', 7) or (state.has('Small Key (Fire Temple)', 6) and state.has('Hover Boots') and state.has('Hammer') and state.is_adult())) set_rule(world.get_location('Fire Temple Fire Dancer Chest'), lambda state: state.is_adult() and state.has('Hammer')) set_rule(world.get_location('Fire Temple Boss Key Chest'), lambda state: state.is_adult() and state.has('Hammer')) - set_rule(world.get_location('Fire Temple Big Lava Room Bombable Chest'), lambda state: state.has('Small Key (Fire Temple)', 1) and state.has('Bomb Bag')) + set_rule(world.get_location('Fire Temple Big Lava Room Bombable Chest'), lambda state: state.has('Small Key (Fire Temple)', 1) and state.has_explosives()) set_rule(world.get_location('Fire Temple Big Lava Room Open Chest'), lambda state: state.has('Small Key (Fire Temple)', 1)) set_rule(world.get_location('Fire Temple Map Chest'), lambda state: state.has('Small Key (Fire Temple)', 5) or (state.has('Small Key (Fire Temple)', 4) and state.is_adult() and state.has('Bow'))) set_rule(world.get_location('Fire Temple Boulder Maze Upper Chest'), lambda state: state.has('Small Key (Fire Temple)', 5)) - set_rule(world.get_location('Fire Temple Boulder Maze Bombable Pit'), lambda state: state.has('Small Key (Fire Temple)', 5) and state.has('Bomb Bag')) + set_rule(world.get_location('Fire Temple Boulder Maze Bombable Pit'), lambda state: state.has('Small Key (Fire Temple)', 5) and state.has_explosives()) set_rule(world.get_location('Fire Temple Scarecrow Chest'), lambda state: state.has('Small Key (Fire Temple)', 5) and state.has('Progressive Hookshot') and state.is_adult()) set_rule(world.get_location('Fire Temple Compass Chest'), lambda state: state.has('Small Key (Fire Temple)', 6)) set_rule(world.get_location('Fire Temple Highest Goron Chest'), lambda state: state.has('Song of Time') and state.has('Hammer') and state.is_adult()) - set_rule(world.get_location('Fire Temple Megaton Hammer Chest'), lambda state: state.has('Bomb Bag')) - set_rule(world.get_location('Volvagia'), lambda state: state.has('Hammer') and state.is_adult() and state.has('Boss Key (Fire Temple)') and (state.has('Hover Boots') or (state.can_reach('Fire Temple Upper') and (state.has('Song of Time') or state.has('Bomb Bag'))))) - set_rule(world.get_location('Volvagia Heart'), lambda state: state.has('Hammer') and state.is_adult() and state.has('Boss Key (Fire Temple)') and (state.has('Hover Boots') or (state.can_reach('Fire Temple Upper') and (state.has('Song of Time') or state.has('Bomb Bag'))))) + set_rule(world.get_location('Fire Temple Megaton Hammer Chest'), lambda state: state.has_explosives()) + set_rule(world.get_location('Volvagia'), lambda state: state.has('Hammer') and state.is_adult() and state.has('Boss Key (Fire Temple)') and (state.has('Hover Boots') or (state.can_reach('Fire Temple Upper') and (state.has('Song of Time') or state.has_explosives())))) + set_rule(world.get_location('Volvagia Heart'), lambda state: state.has('Hammer') and state.is_adult() and state.has('Boss Key (Fire Temple)') and (state.has('Hover Boots') or (state.can_reach('Fire Temple Upper') and (state.has('Song of Time') or state.has_explosives())))) set_rule(world.get_location('Sheik in Crater'), lambda state: state.is_adult()) - set_rule(world.get_location('Link the Goron'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade') or state.has('Bomb Bag') or state.has('Bow'))) - set_rule(world.get_entrance('Crater Access'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade') or state.has('Bomb Bag'))) + set_rule(world.get_location('Link the Goron'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade') or state.has_explosives() or state.has('Bow'))) + set_rule(world.get_entrance('Crater Access'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade') or state.can_blast_or_smash())) set_rule(world.get_entrance('Lake Warp Pad'), lambda state: state.has('Serenade of Water')) set_rule(world.get_location('King Zora Thawed'), lambda state: state.has_bottle() and (state.can_reach('Ice Cavern') or state.can_reach('Ganons Castle Water Trial') or state.has('Progressive Wallet', 2))) set_rule(world.get_location('Zoras Fountain Bottom Freestanding PoH'), lambda state: state.has('Iron Boots')) @@ -220,17 +222,17 @@ def global_rules(world): set_rule(world.get_location('Water Temple Dragon Chest'), lambda state: (state.has('Progressive Strength Upgrade') and state.has('Zeldas Lullaby')) or (state.has('Small Key (Water Temple)', 6) and (state.has('Zeldas Lullaby') or world.keysanity) and state.has('Song of Time') and state.has('Bow'))) set_rule(world.get_location('Water Temple Central Bow Target Chest'), lambda state: state.has('Bow') and state.has('Progressive Strength Upgrade') and state.has('Zeldas Lullaby') and (state.has('Hover Boots') or state.has('Progressive Hookshot', 2))) set_always_allow(world.get_location('Water Temple Boss Key Chest'), lambda item, state: item.name == 'Small Key (Water Temple)') - set_rule(world.get_location('Water Temple Boss Key Chest'), lambda state: (state.has('Small Key (Water Temple)', 6) and (state.has('Zeldas Lullaby') or world.keysanity) and ((state.has('Bomb Bag') and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and state.has('Progressive Hookshot', 2)) or item_name(state, 'Water Temple Boss Key Chest') == 'Small Key (Water Temple)') #If key for key, this lets the logic reduce the small key reqs for every other locked door. + set_rule(world.get_location('Water Temple Boss Key Chest'), lambda state: (state.has('Small Key (Water Temple)', 6) and (state.has('Zeldas Lullaby') or world.keysanity) and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and state.has('Progressive Hookshot', 2)) or item_name(state, 'Water Temple Boss Key Chest') == 'Small Key (Water Temple)') #If key for key, this lets the logic reduce the small key reqs for every other locked door. set_rule(world.get_location('Morpha'), lambda state: state.has('Boss Key (Water Temple)') and state.has('Progressive Hookshot', 2)) set_rule(world.get_location('Morpha Heart'), lambda state: state.has('Boss Key (Water Temple)') and state.has('Progressive Hookshot', 2)) - set_rule(world.get_location('Water Temple Cracked Wall Chest'), lambda state: state.has('Bomb Bag')) + set_rule(world.get_location('Water Temple Cracked Wall Chest'), lambda state: state.has_explosives()) set_rule(world.get_location('Water Temple Dark Link Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and (state.has('Zeldas Lullaby') or world.keysanity)) set_rule(world.get_location('Water Temple River Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and state.has('Song of Time') and state.has('Bow') and (state.has('Zeldas Lullaby') or world.keysanity)) set_rule(world.get_location('Sheik in Kakariko'), lambda state: state.has('Forest Medallion') and state.has('Fire Medallion') and state.has('Water Medallion')) set_rule(world.get_entrance('Graveyard Warp Pad'), lambda state: state.has('Nocturne of Shadow')) set_rule(world.get_entrance('Shadow Temple Entrance'), lambda state: state.has('Dins Fire') and state.has('Magic Meter') and state.has('Lens of Truth') and state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot'))) set_rule(world.get_entrance('Shadow Temple First Pit'), lambda state: state.has('Hover Boots')) - set_rule(world.get_entrance('Shadow Temple Bomb Wall'), lambda state: state.has('Bomb Bag') and state.has('Small Key (Shadow Temple)', 1)) + set_rule(world.get_entrance('Shadow Temple Bomb Wall'), lambda state: state.has_explosives() and state.has('Small Key (Shadow Temple)', 1)) set_rule(world.get_entrance('Shadow Temple Hookshot Target'), lambda state: state.has('Progressive Hookshot') and state.has('Small Key (Shadow Temple)', 3)) set_rule(world.get_entrance('Shadow Temple Boat'), lambda state: state.has('Zeldas Lullaby') and state.has('Small Key (Shadow Temple)', 4)) set_rule(world.get_location('Shadow Temple Falling Spikes Upper Chest'), lambda state: state.has('Progressive Strength Upgrade')) @@ -246,7 +248,7 @@ def global_rules(world): set_rule(world.get_entrance('Haunted Wasteland Entrance'), lambda state: state.has('Gerudo Membership Card') and state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot', 2))) set_rule(world.get_entrance('Haunted Wasteland Crossing'), lambda state: state.has('Lens of Truth') and state.has('Magic Meter')) set_rule(world.get_entrance('Colossus Warp Pad'), lambda state: state.has('Requiem of Spirit')) - set_rule(world.get_entrance('Colossus Fairy'), lambda state: state.has('Bomb Bag')) + set_rule(world.get_entrance('Colossus Fairy'), lambda state: state.has_explosives()) set_rule(world.get_location('Colossus Freestanding PoH'), lambda state: state.has('Requiem of Spirit') and state.has('Magic Bean') and state.is_adult()) set_rule(world.get_location('Desert Colossus Fairy Reward'), lambda state: state.has('Zeldas Lullaby')) set_rule(world.get_location('Gerudo Fortress Rooftop Chest'), lambda state: (state.has('Hover Boots') or state.has('Progressive Hookshot')) and state.is_adult()) @@ -254,7 +256,7 @@ def global_rules(world): set_rule(world.get_location('Horseback Archery 1500 Points'), lambda state: state.has('Gerudo Membership Card') and state.has('Epona') and state.has('Bow') and state.is_adult()) set_rule(world.get_location('Haunted Wasteland Structure Chest'), lambda state: state.has_fire_source()) set_rule(world.get_entrance('Gerudo Training Ground Left Silver Rupees'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_entrance('Gerudo Training Ground Beamos'), lambda state: state.has('Bomb Bag')) + set_rule(world.get_entrance('Gerudo Training Ground Beamos'), lambda state: state.has_explosives()) set_rule(world.get_entrance('Gerudo Training Grounds Right Locked Doors'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 9)) set_rule(world.get_entrance('Gerudo Training Grounds Maze Ledge'), lambda state: state.has('Song of Time')) set_rule(world.get_entrance('Gerudo Training Grounds Right Hookshot Target'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) @@ -262,7 +264,7 @@ def global_rules(world): set_rule(world.get_entrance('Gerudo Training Grounds Hidden Hookshot Target'), lambda state: state.has('Progressive Hookshot') and state.has('Lens of Truth') and state.has('Magic Meter') and state.is_adult()) set_rule(world.get_location('Gerudo Training Grounds Lobby Left Chest'), lambda state: state.has('Bow') and state.is_adult()) set_rule(world.get_location('Gerudo Training Grounds Lobby Right Chest'), lambda state: state.has('Bow') and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Beamos Chest'), lambda state: state.has('Bomb Bag')) + set_rule(world.get_location('Gerudo Training Grounds Beamos Chest'), lambda state: state.has_explosives()) set_rule(world.get_location('Gerudo Training Grounds Hidden Ceiling Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 3) and state.has('Lens of Truth') and state.has('Magic Meter')) set_rule(world.get_location('Gerudo Training Grounds Maze Path First Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 4)) set_rule(world.get_location('Gerudo Training Grounds Maze Path Second Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 6)) @@ -279,31 +281,31 @@ def global_rules(world): set_rule(world.get_location('Gerudo Training Grounds Heavy Block Fourth Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.has('Lens of Truth') and state.has('Magic Meter') and state.is_adult()) set_rule(world.get_entrance('Spirit Temple Crawl Passage'), lambda state: state.has('Requiem of Spirit')) set_rule(world.get_entrance('Spirit Temple Silver Block'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.is_adult()) - set_rule(world.get_entrance('Child Spirit Temple Passthrough'), lambda state: state.has('Bomb Bag') and state.has('Small Key (Spirit Temple)', 1)) + set_rule(world.get_entrance('Child Spirit Temple Passthrough'), lambda state: state.has_explosives() and state.has('Small Key (Spirit Temple)', 1)) set_rule(world.get_entrance('Adult Spirit Temple Passthrough'), lambda state: state.has('Small Key (Spirit Temple)', 1)) set_rule(world.get_entrance('Spirit Temple Central Locked Door'), lambda state: state.has('Small Key (Spirit Temple)', 4) and state.has('Progressive Strength Upgrade', 2) and state.is_adult()) - set_rule(world.get_entrance('Spirit Temple Final Locked Door'), lambda state: state.has('Small Key (Spirit Temple)', 5) and (state.has('Progressive Hookshot') or state.has('Bow') or state.has('Bomb Bag'))) + set_rule(world.get_entrance('Spirit Temple Final Locked Door'), lambda state: state.has('Small Key (Spirit Temple)', 5) and (state.has('Progressive Hookshot') or state.has('Bow') or state.has_explosives())) set_rule(world.get_location('Spirit Temple Child Left Chest'), lambda state: state.has('Boomerang') or state.has('Slingshot')) set_rule(world.get_location('Spirit Temple Child Right Chest'), lambda state: state.has('Boomerang') or state.has('Slingshot')) set_rule(world.get_location('Spirit Temple Compass Chest'), lambda state: state.has('Progressive Hookshot') and state.has('Zeldas Lullaby')) - set_rule(world.get_location('Spirit Temple Early Adult Right Chest'), lambda state: state.has('Bow') or state.has('Progressive Hookshot') or state.has('Bomb Bag')) #Bomb Bag option requires a very specific Bombchu use, Hover Boots can be skipped by jumping on top of the rolling rock. + set_rule(world.get_location('Spirit Temple Early Adult Right Chest'), lambda state: state.has('Bow') or state.has('Progressive Hookshot') or state.has_bombchus()) #requires a very specific Bombchu use, Hover Boots can be skipped by jumping on top of the rolling rock. set_rule(world.get_location('Spirit Temple First Mirror Right Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3)) set_rule(world.get_location('Spirit Temple First Mirror Left Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3)) set_rule(world.get_location('Spirit Temple Map Chest'), lambda state: (state.has('Small Key (Spirit Temple)', 5) and state.has('Requiem of Spirit')) or (state.has('Magic Meter') and (state.has('Dins Fire') or (state.has('Fire Arrows') and state.has('Bow') and state.has('Progressive Strength Upgrade', 2) and state.has('Small Key (Spirit Temple)', 3) and state.is_adult())))) - set_rule(world.get_location('Spirit Temple Child Climb East Chest'), lambda state: state.has('Bomb Bag') or ((state.has('Boomerang') or state.has('Slingshot')) and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 5) and state.has('Requiem of Spirit') and (state.has('Boomerang') or state.has('Slingshot')))) - set_rule(world.get_location('Spirit Temple Child Climb North Chest'), lambda state: state.has('Bomb Bag') or ((state.has('Boomerang') or state.has('Slingshot')) and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 5) and state.has('Requiem of Spirit') and (state.has('Boomerang') or state.has('Slingshot')))) - set_rule(world.get_location('Spirit Temple Sun Block Room Chest'), lambda state: (state.has('Small Key (Spirit Temple)', 5) and state.has('Bomb Bag') and state.has('Requiem of Spirit')) or (state.has_fire_source() and (state.has('Bomb Bag') or state.has('Small Key (Spirit Temple)', 2)))) + set_rule(world.get_location('Spirit Temple Child Climb East Chest'), lambda state: state.has_explosives() or ((state.has('Boomerang') or state.has('Slingshot')) and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 5) and state.has('Requiem of Spirit') and (state.has('Boomerang') or state.has('Slingshot')))) + set_rule(world.get_location('Spirit Temple Child Climb North Chest'), lambda state: state.has_explosives() or ((state.has('Boomerang') or state.has('Slingshot')) and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 5) and state.has('Requiem of Spirit') and (state.has('Boomerang') or state.has('Slingshot')))) + set_rule(world.get_location('Spirit Temple Sun Block Room Chest'), lambda state: (state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.has('Requiem of Spirit')) or (state.has_fire_source() and (state.has_explosives() or state.has('Small Key (Spirit Temple)', 2)))) set_rule(world.get_location('Spirit Temple Statue Hand Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.has('Zeldas Lullaby')) set_rule(world.get_location('Spirit Temple NE Main Room Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.has('Zeldas Lullaby') and state.has('Progressive Hookshot')) - set_rule(world.get_location('Mirror Shield Chest'), lambda state: state.has('Small Key (Spirit Temple)', 4) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.has('Bomb Bag')) - set_rule(world.get_location('Silver Gauntlets Chest'), lambda state: (state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Hookshot', 2) and state.has('Bomb Bag')) or state.has('Small Key (Spirit Temple)', 5)) - set_rule(world.get_location('Spirit Temple Near Four Armos Chest'), lambda state: state.has('Mirror Shield') and state.has('Bomb Bag')) - set_rule(world.get_location('Spirit Temple Hallway Left Invisible Chest'), lambda state: state.has('Magic Meter') and state.has('Lens of Truth') and state.has('Bomb Bag')) - set_rule(world.get_location('Spirit Temple Hallway Right Invisible Chest'), lambda state: state.has('Magic Meter') and state.has('Lens of Truth') and state.has('Bomb Bag')) - set_rule(world.get_location('Spirit Temple Boss Key Chest'), lambda state: state.has('Zeldas Lullaby') and state.has('Bow') and state.has('Progressive Hookshot') and state.can_blast()) + set_rule(world.get_location('Mirror Shield Chest'), lambda state: state.has('Small Key (Spirit Temple)', 4) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.has_explosives()) + set_rule(world.get_location('Silver Gauntlets Chest'), lambda state: (state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Hookshot', 2) and state.has_explosives()) or state.has('Small Key (Spirit Temple)', 5)) + set_rule(world.get_location('Spirit Temple Near Four Armos Chest'), lambda state: state.has('Mirror Shield') and state.has_bombchus()) + set_rule(world.get_location('Spirit Temple Hallway Left Invisible Chest'), lambda state: state.has('Magic Meter') and state.has('Lens of Truth') and state.has_explosives()) + set_rule(world.get_location('Spirit Temple Hallway Right Invisible Chest'), lambda state: state.has('Magic Meter') and state.has('Lens of Truth') and state.has_explosives()) + set_rule(world.get_location('Spirit Temple Boss Key Chest'), lambda state: state.has('Zeldas Lullaby') and state.has('Bow') and state.has('Progressive Hookshot') and state.can_blast_or_smash()) set_rule(world.get_location('Spirit Temple Topmost Chest'), lambda state: state.has('Mirror Shield')) - set_rule(world.get_location('Twinrova'), lambda state: state.has('Mirror Shield') and state.has('Bomb Bag') and state.has('Progressive Hookshot') and state.has('Boss Key (Spirit Temple)')) - set_rule(world.get_location('Twinrova Heart'), lambda state: state.has('Mirror Shield') and state.has('Bomb Bag') and state.has('Progressive Hookshot') and state.has('Boss Key (Spirit Temple)')) + set_rule(world.get_location('Twinrova'), lambda state: state.has('Mirror Shield') and state.has_explosives() and state.has('Progressive Hookshot') and state.has('Boss Key (Spirit Temple)')) + set_rule(world.get_location('Twinrova Heart'), lambda state: state.has('Mirror Shield') and state.has_explosives() and state.has('Progressive Hookshot') and state.has('Boss Key (Spirit Temple)')) set_rule(world.get_location('Zelda'), lambda state: state.has('Shadow Medallion') and state.has('Spirit Medallion')) set_rule(world.get_entrance('Ganons Castle Light Trial'), lambda state: state.has('Progressive Strength Upgrade', 3)) set_rule(world.get_entrance('Ganons Castle Tower'), lambda state: (state.has('Forest Trial Clear') and state.has('Fire Trial Clear') and state.has('Water Trial Clear') and state.has('Shadow Trial Clear') and state.has('Spirit Trial Clear') and state.has('Light Trial Clear')) or world.fast_ganon ) @@ -313,31 +315,31 @@ def global_rules(world): set_rule(world.get_location('Ganons Castle Shadow Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and state.has('Hammer') and (state.has('Fire Arrows') or state.has('Progressive Hookshot', 2)) and (state.has('Lens of Truth') or (state.has('Hover Boots') and state.has('Progressive Hookshot', 2)))) set_rule(world.get_location('Ganons Castle Shadow Trial First Chest'), lambda state: (state.has('Magic Meter') and state.has('Bow') and state.has('Fire Arrows')) or state.has('Progressive Hookshot') or state.has('Hover Boots') or state.has('Song of Time')) set_rule(world.get_location('Ganons Castle Shadow Trial Second Chest'), lambda state: (state.has('Magic Meter') and state.has('Bow') and state.has('Fire Arrows')) or (state.has('Progressive Hookshot', 2) and state.has('Hover Boots'))) - set_rule(world.get_location('Ganons Castle Spirit Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and state.has('Mirror Shield') and state.has('Bomb Bag') and state.has('Progressive Hookshot')) - set_rule(world.get_location('Ganons Castle Spirit Trial First Chest'), lambda state: state.has('Progressive Hookshot') and (state.has('Magic Meter') or state.has('Bomb Bag'))) - set_rule(world.get_location('Ganons Castle Spirit Trial Second Chest'), lambda state: state.has('Progressive Hookshot') and state.has('Magic Meter') and state.has('Bomb Bag') and state.has('Lens of Truth')) + set_rule(world.get_location('Ganons Castle Spirit Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and state.has('Mirror Shield') and state.has_bombchus() and state.has('Progressive Hookshot')) + set_rule(world.get_location('Ganons Castle Spirit Trial First Chest'), lambda state: state.has('Progressive Hookshot') and (state.has('Magic Meter') or state.has_explosives())) + set_rule(world.get_location('Ganons Castle Spirit Trial Second Chest'), lambda state: state.has('Progressive Hookshot') and state.has('Magic Meter') and state.has_bombchus() and state.has('Lens of Truth')) set_rule(world.get_location('Ganons Castle Light Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Progressive Hookshot') and state.has('Light Arrows') and state.has('Small Key (Ganons Castle)', 2)) set_rule(world.get_location('Ganons Castle Light Trail Invisible Enemies Chest'), lambda state: state.has('Magic Meter') and state.has('Lens of Truth')) set_rule(world.get_location('Ganons Castle Light Trial Lullaby Chest'), lambda state: state.has('Zeldas Lullaby') and state.has('Small Key (Ganons Castle)', 1)) set_rule(world.get_location('Ganon'), lambda state: state.has('Boss Key (Ganons Castle)') or (world.fast_ganon and state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows')) ) set_rule(world.get_entrance('Kokiri Forest Storms Grotto'), lambda state: state.has('Song of Storms')) - set_rule(world.get_entrance('Lost Woods Generic Grotto'), lambda state: state.can_blast()) - set_rule(world.get_entrance('Lost Woods Sales Grotto'), lambda state: state.has('Bomb Bag') or (state.has('Hammer') and state.is_adult() and (state.has('Minuet of Forest') or state.has('Sarias Song')))) - set_rule(world.get_entrance('Front of Meadow Grotto'), lambda state: state.has('Bomb Bag') or (state.has('Hammer') and state.is_adult() and (state.has('Minuet of Forest') or state.has('Sarias Song')))) - set_rule(world.get_entrance('Remote Southern Grotto'), lambda state: state.can_blast()) - set_rule(world.get_entrance('Field Near Lake Inside Fence Grotto'), lambda state: state.can_blast()) - set_rule(world.get_entrance('Field Valley Grotto'), lambda state: state.can_blast()) - set_rule(world.get_entrance('Field West Castle Town Grotto'), lambda state: state.can_blast()) - set_rule(world.get_entrance('Field Far West Castle Town Grotto'), lambda state: state.can_blast()) - set_rule(world.get_entrance('Field Kakariko Grotto'), lambda state: state.can_blast()) - set_rule(world.get_entrance('Field North Lon Lon Grotto'), lambda state: state.can_blast()) + set_rule(world.get_entrance('Lost Woods Generic Grotto'), lambda state: state.can_blast_or_smash()) + set_rule(world.get_entrance('Lost Woods Sales Grotto'), lambda state: state.has_explosives() or (state.has('Hammer') and state.is_adult() and (state.has('Minuet of Forest') or state.has('Sarias Song')))) + set_rule(world.get_entrance('Front of Meadow Grotto'), lambda state: state.has_explosives() or (state.has('Hammer') and state.is_adult() and (state.has('Minuet of Forest') or state.has('Sarias Song')))) + set_rule(world.get_entrance('Remote Southern Grotto'), lambda state: state.can_blast_or_smash()) + set_rule(world.get_entrance('Field Near Lake Inside Fence Grotto'), lambda state: state.can_blast_or_smash()) + set_rule(world.get_entrance('Field Valley Grotto'), lambda state: state.can_blast_or_smash()) + set_rule(world.get_entrance('Field West Castle Town Grotto'), lambda state: state.can_blast_or_smash()) + set_rule(world.get_entrance('Field Far West Castle Town Grotto'), lambda state: state.can_blast_or_smash()) + set_rule(world.get_entrance('Field Kakariko Grotto'), lambda state: state.can_blast_or_smash()) + set_rule(world.get_entrance('Field North Lon Lon Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Castle Storms Grotto'), lambda state: state.has('Song of Storms')) - set_rule(world.get_entrance('Kakariko Bombable Grotto'), lambda state: state.can_blast()) - set_rule(world.get_entrance('Mountain Bombable Grotto'), lambda state: state.can_blast()) + set_rule(world.get_entrance('Kakariko Bombable Grotto'), lambda state: state.can_blast_or_smash()) + set_rule(world.get_entrance('Mountain Bombable Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Mountain Storms Grotto'), lambda state: state.has('Song of Storms')) - set_rule(world.get_entrance('Top of Crater Grotto'), lambda state: state.can_blast()) - set_rule(world.get_entrance('Zora River Plateau Open Grotto'), lambda state: state.has('Bomb Bag') or state.has('Progressive Scale') or state.is_adult()) - set_rule(world.get_entrance('Zora River Plateau Bombable Grotto'), lambda state: state.can_blast()) + set_rule(world.get_entrance('Top of Crater Grotto'), lambda state: state.can_blast_or_smash()) + set_rule(world.get_entrance('Zora River Plateau Open Grotto'), lambda state: state.has_explosives() or state.has('Progressive Scale') or state.is_adult()) + set_rule(world.get_entrance('Zora River Plateau Bombable Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_location('Tektite Grotto Freestanding PoH'), lambda state: state.has('Progressive Scale', 2) or (state.has('Iron Boots') and state.is_adult())) set_rule(world.get_location('GS2'), lambda state: state.has_bottle()) set_rule(world.get_location('GS3'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) @@ -345,32 +347,32 @@ def global_rules(world): set_rule(world.get_location('GS5'), lambda state: state.has_bottle()) set_rule(world.get_location('GS6'), lambda state: state.has('Magic Bean')) set_rule(world.get_location('GS7'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('GS9'), lambda state: state.has('Slingshot') or state.has('Bomb Bag') or state.has('Boomerang') or (state.has('Dins Fire') and state.has('Magic Meter'))) - set_rule(world.get_location('GS11'), lambda state: state.has('Boomerang') and state.has('Bomb Bag')) - set_rule(world.get_location('GS12'), lambda state: (state.has('Boomerang') and state.has('Bomb Bag')) or (state.has('Progressive Hookshot') and state.is_adult())) - set_rule(world.get_location('GS13'), lambda state: (state.has('Hammer') and state.has_fire_source() and state.has('Progressive Hookshot') and state.is_adult()) or (state.has('Boomerang') and state.has('Bomb Bag') and state.has('Dins Fire') and state.has('Magic Meter'))) - set_rule(world.get_location('GS16'), lambda state: state.has('Boomerang') and state.has('Bomb Bag')) + set_rule(world.get_location('GS9'), lambda state: state.has('Slingshot') or state.has_explosives() or state.has('Boomerang') or (state.has('Dins Fire') and state.has('Magic Meter'))) + set_rule(world.get_location('GS11'), lambda state: state.has('Boomerang') and state.has_explosives()) + set_rule(world.get_location('GS12'), lambda state: (state.has('Boomerang') and state.has_explosives()) or (state.has('Progressive Hookshot') and state.is_adult())) + set_rule(world.get_location('GS13'), lambda state: (state.has('Hammer') and state.has_fire_source() and state.has('Progressive Hookshot') and state.is_adult()) or (state.has('Boomerang') and state.has_explosives() and state.has('Dins Fire') and state.has('Magic Meter'))) + set_rule(world.get_location('GS16'), lambda state: state.has('Boomerang') and state.has_explosives()) set_rule(world.get_location('GS20'), lambda state: state.has('Boomerang')) set_rule(world.get_location('GS21'), lambda state: state.has('Boomerang')) - set_rule(world.get_location('GS26'), lambda state: state.has('Slingshot') or state.has('Bomb Bag')) + set_rule(world.get_location('GS26'), lambda state: state.has('Slingshot') or state.has_explosives()) set_rule(world.get_location('GS27'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) set_rule(world.get_location('GS28'), lambda state: state.has('Boomerang')) set_rule(world.get_location('GS29'), lambda state: state.has_bottle()) - set_rule(world.get_location('GS30'), lambda state: state.has_bottle() and (state.has('Bomb Bag') or state.has('Progressive Strength Upgrade'))) - set_rule(world.get_location('GS31'), lambda state: state.can_blast()) + set_rule(world.get_location('GS30'), lambda state: state.has_bottle() and (state.has_explosives() or state.has('Progressive Strength Upgrade'))) + set_rule(world.get_location('GS31'), lambda state: state.can_blast_or_smash()) set_rule(world.get_location('GS32'), lambda state: state.has('Hammer') and state.is_adult()) set_rule(world.get_location('GS33'), lambda state: state.has('Hammer') and state.is_adult()) - set_rule(world.get_location('GS34'), lambda state: state.has('Bomb Bag')) + set_rule(world.get_location('GS34'), lambda state: state.has_explosives()) set_rule(world.get_location('GS35'), lambda state: state.is_adult()) set_rule(world.get_location('GS37'), lambda state: state.has('Bolero of Fire') and state.has_bottle()) - set_rule(world.get_location('GS39'), lambda state: state.has('Bomb Bag') or (state.has('Boomerang') or state.has('Slingshot') and state.has('Progressive Strength Upgrade')) or (state.has('Dins Fire') and state.has('Magic Meter')) or (state.is_adult and (state.has('Progressive Hookshot') or state.has('Bow') or state.has('Biggoron Sword')))) - set_rule(world.get_location('GS41'), lambda state: (state.has('Progressive Hookshot') and state.is_adult()) or (state.has('Boomerang') and (state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')))) + set_rule(world.get_location('GS39'), lambda state: state.has_explosives() or (state.has('Boomerang') or state.has('Slingshot') and state.has('Progressive Strength Upgrade')) or (state.has('Dins Fire') and state.has('Magic Meter')) or (state.is_adult and (state.has('Progressive Hookshot') or state.has('Bow') or state.has('Biggoron Sword')))) + set_rule(world.get_location('GS41'), lambda state: (state.has('Progressive Hookshot') and state.is_adult()) or (state.has('Boomerang') and (state.has_explosives() or state.has('Progressive Strength Upgrade')))) set_rule(world.get_location('GS42'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) set_rule(world.get_location('GS45'), lambda state: state.has('Progressive Hookshot')) set_rule(world.get_location('GS46'), lambda state: state.has('Progressive Hookshot')) set_rule(world.get_location('GS47'), lambda state: state.has('Progressive Hookshot') or state.has('Bow') or state.has('Magic Meter')) set_rule(world.get_location('GS49'), lambda state: state.has('Boomerang')) - set_rule(world.get_location('GS50'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.can_blast() and state.has('Progressive Hookshot')) + set_rule(world.get_location('GS50'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.can_blast_or_smash() and state.has('Progressive Hookshot')) # Jabu Jabu GS need no reqs becuase the access reqs for their zones cover them. set_rule(world.get_location('GS55'), lambda state: state.has_bottle()) set_rule(world.get_location('GS56'), lambda state: state.has('Boomerang')) @@ -382,19 +384,19 @@ def global_rules(world): set_rule(world.get_location('GS63'), lambda state: (state.has('Progressive Hookshot', 2) or (state.has('Progressive Hookshot') and state.can_reach('Forest Temple Outside Upper Ledge'))) and state.is_adult()) set_rule(world.get_location('GS64'), lambda state: state.has('Progressive Hookshot')) set_rule(world.get_location('GS65'), lambda state: state.has('Small Key (Fire Temple)', 1) and state.has('Song of Time')) - set_rule(world.get_location('GS66'), lambda state: state.has('Bomb Bag')) + set_rule(world.get_location('GS66'), lambda state: state.has_explosives()) set_rule(world.get_location('GS67'), lambda state: state.has('Small Key (Fire Temple)', 5) and state.has('Progressive Hookshot') and state.is_adult()) set_rule(world.get_location('GS68'), lambda state: state.has('Small Key (Fire Temple)', 5) and state.has('Progressive Hookshot') and state.is_adult()) set_rule(world.get_location('GS69'), lambda state: state.has('Hammer') and state.is_adult()) set_rule(world.get_location('GS70'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) set_rule(world.get_location('GS71'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) set_rule(world.get_location('GS72'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('GS73'), lambda state: state.has('Bomb Bag') and state.has('Magic Meter')) + set_rule(world.get_location('GS73'), lambda state: state.has_explosives() and state.has('Magic Meter')) set_rule(world.get_location('GS74'), lambda state: state.has('Song of Time') and state.has('Small Key (Water Temple)', 6)) set_rule(world.get_location('GS75'), lambda state: state.has('Progressive Hookshot', 2)) set_rule(world.get_location('GS76'), lambda state: state.has('Progressive Hookshot', 2)) - set_rule(world.get_location('GS77'), lambda state: state.has('Progressive Hookshot', 2) and ((state.has('Bomb Bag') and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and state.has('Small Key (Water Temple)', 6)) #5 keys would be better but it wouldn't be compatible with the key for key scenarios, 6 will be identical pre-keysanity. - set_rule(world.get_location('GS78'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang') and (state.has('Progressive Strength Upgrade') or state.has('Bomb Bag') or (state.has('Lens of Truth') and state.has('Magic Meter')))) + set_rule(world.get_location('GS77'), lambda state: state.has('Progressive Hookshot', 2) and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and state.has('Small Key (Water Temple)', 6)) #5 keys would be better but it wouldn't be compatible with the key for key scenarios, 6 will be identical pre-keysanity. + set_rule(world.get_location('GS78'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang') and (state.has('Progressive Strength Upgrade') or state.has_explosives() or (state.has('Lens of Truth') and state.has('Magic Meter')))) set_rule(world.get_location('GS79'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang')) set_rule(world.get_location('GS80'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang')) set_rule(world.get_location('GS81'), lambda state: state.has('Progressive Hookshot')) @@ -410,8 +412,8 @@ def global_rules(world): set_rule(world.get_location('GS94'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) set_rule(world.get_location('GS95'), lambda state: ((state.has('Magic Bean') and state.has('Requiem of Spirit')) or state.has('Progressive Hookshot', 2)) and state.is_adult()) set_rule(world.get_location('GS96'), lambda state: state.has('Boomerang')) - set_rule(world.get_location('GS98'), lambda state: (state.has('Boomerang') and state.has('Progressive Hookshot')) or (state.has('Boomerang') and state.has('Small Key (Spirit Temple)', 5) and state.has('Bomb Bag') and state.has('Requiem of Spirit')) or (state.has('Progressive Hookshot') and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.has('Small Key (Spirit Temple)', 3))) - set_rule(world.get_location('GS99'), lambda state: state.has('Song of Time') and (state.has('Bow') or state.has('Progressive Hookshot') or state.has('Bomb Bag'))) + set_rule(world.get_location('GS98'), lambda state: (state.has('Boomerang') and state.has('Progressive Hookshot')) or (state.has('Boomerang') and state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.has('Requiem of Spirit')) or (state.has('Progressive Hookshot') and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.has('Small Key (Spirit Temple)', 3))) + set_rule(world.get_location('GS99'), lambda state: state.has('Song of Time') and (state.has('Bow') or state.has('Progressive Hookshot') or state.has_explosives())) set_rule(world.get_location('GS100'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.has('Small Key (Spirit Temple)', 3) and state.is_adult() and (state.has('Progressive Hookshot') or state.has('Hover Boots'))) # update the logic with custom rules for this fork @@ -436,7 +438,7 @@ def global_rules(world): # remove DC slingshot requirement set_rule(world.get_entrance('Dodongos Cavern Slingshot Target'), lambda state: state.has('Slingshot') or state.is_adult()) - set_rule(world.get_location('Dodongos Cavern End of Bridge Chest'), lambda state: state.has('Bomb Bag') or (state.is_adult() and state.has('Hammer'))) + set_rule(world.get_location('Dodongos Cavern End of Bridge Chest'), lambda state: state.has_explosives() or (state.is_adult() and state.has('Hammer'))) # remove man on roof requirement set_rule(world.get_location('Man on Roof'), lambda state: True) @@ -463,7 +465,7 @@ def global_rules(world): set_rule(world.get_location('Spirit Temple Hallway Left Invisible Chest'), lambda state: True) set_rule(world.get_location('Spirit Temple Hallway Right Invisible Chest'), lambda state: True) - set_rule(world.get_location('Ganons Castle Spirit Trial Second Chest'), lambda state: state.has('Progressive Hookshot') and state.has('Bomb Bag')) + set_rule(world.get_location('Ganons Castle Spirit Trial Second Chest'), lambda state: state.has('Progressive Hookshot') and state.has_bombchus()) set_rule(world.get_location('Ganons Castle Light Trail Invisible Enemies Chest'), lambda state: True) # child deadhand without sword From b2acfd3d63f0aa0e7430e5ca2dc94aa05669e9e0 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Fri, 29 Jun 2018 11:56:21 -0500 Subject: [PATCH 055/755] Made bombchus advancement. --- Items.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Items.py b/Items.py index e23b46470..5645a8e55 100644 --- a/Items.py +++ b/Items.py @@ -89,9 +89,9 @@ def ItemFactory(items): 'Bombs (5)': (False, False, None, None, 0xBA), 'Bombs (10)': (False, False, None, None, 0xBB), 'Bombs (20)': (False, False, None, None, 0xBC), - 'Bombchus (5)': (False, False, None, 0x0D40, 0x6A), - 'Bombchus (10)': (False, False, None, 0x0060, 0x03), - 'Bombchus (20)': (False, False, None, 0x0D60, 0x6B), + 'Bombchus (5)': (True, False, None, 0x0D40, 0x6A), + 'Bombchus (10)': (True, False, None, 0x0060, 0x03), + 'Bombchus (20)': (True, False, None, 0x0D60, 0x6B), 'Deku Nuts (5)': (False, False, None, None, 0xBD), 'Deku Nuts (10)': (False, False, None, None, 0xBE), 'Rupee (1)': (False, False, None, 0x0980, 0x4C), From d8006ffa0e955c59ae119702e7a3467a2b2f1ad4 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Fri, 29 Jun 2018 12:01:27 -0500 Subject: [PATCH 056/755] Bombchus owned by having found a pack. --- BaseClasses.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BaseClasses.py b/BaseClasses.py index 52e324920..a25117e6c 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -302,7 +302,7 @@ def is_adult(self): return self.has('Master Sword') def has_bombchus(self): - return self.has('Bombchus') or (self.is_adult() and self.has('Progressive Wallet') and self.has('Gerudo Membership Card') and (self.has('Progressive Hookshot', 2) or self.has('Hover Boots'))) + return any(pritem.startswith('Bombchus') for pritem in self.prog_items) or (self.is_adult() and self.has('Progressive Wallet') and self.has('Gerudo Membership Card') and (self.has('Progressive Hookshot', 2) or self.has('Hover Boots'))) def has_explosives(self): return self.has('Bomb Bag') or has_bombchus(self) From 9753e647887d09af3e01963bdbf107b2297f7514 Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 29 Jun 2018 12:06:24 -0500 Subject: [PATCH 057/755] bombchu logic check more accurate --- BaseClasses.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BaseClasses.py b/BaseClasses.py index a25117e6c..ad8bdff62 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -302,7 +302,7 @@ def is_adult(self): return self.has('Master Sword') def has_bombchus(self): - return any(pritem.startswith('Bombchus') for pritem in self.prog_items) or (self.is_adult() and self.has('Progressive Wallet') and self.has('Gerudo Membership Card') and (self.has('Progressive Hookshot', 2) or self.has('Hover Boots'))) + return any(pritem.startswith('Bombchus') for pritem in self.prog_items) or (self.has('Progressive Wallet') and self.can_reach('Haunted Wasteland')) def has_explosives(self): return self.has('Bomb Bag') or has_bombchus(self) From c933a91b8b80cb281b23131211475457c9fe8410 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Fri, 29 Jun 2018 13:09:40 -0500 Subject: [PATCH 058/755] Changed bombchu shop to sell after finding chus, never sell out, and have an affordable pack. --- BaseClasses.py | 4 ++-- Gui.py | 2 +- Messages.py | 6 +----- Rom.py | 30 +++++++++++++++++++++++++----- 4 files changed, 29 insertions(+), 13 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index a25117e6c..e18374ec1 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -305,10 +305,10 @@ def has_bombchus(self): return any(pritem.startswith('Bombchus') for pritem in self.prog_items) or (self.is_adult() and self.has('Progressive Wallet') and self.has('Gerudo Membership Card') and (self.has('Progressive Hookshot', 2) or self.has('Hover Boots'))) def has_explosives(self): - return self.has('Bomb Bag') or has_bombchus(self) + return self.has('Bomb Bag') or self.has_bombchus() def can_blast_or_smash(self): - return self.has('Bomb Bag') or (self.is_adult() and self.has('Hammer')) or has_bombchus(self) + return self.has('Bomb Bag') or (self.is_adult() and self.has('Hammer')) or self.has_bombchus() def can_dive(self): return self.has('Progressive Scale') diff --git a/Gui.py b/Gui.py index 640c25cbc..9124e2429 100644 --- a/Gui.py +++ b/Gui.py @@ -123,7 +123,7 @@ def MakeRadioList(parent, data): "open_forest": { "text": "Open Forest", "group": "logic", "default": "unchecked" }, "open_door_of_time": { "text": "Open Door of Time", "group": "logic", "default": "unchecked" }, "fast_ganon": { "text": "Skip most of Ganon's Castle", "group": "logic", "default": "unchecked" }, - "keysanity ": { "text": "Keysanity", "group": "logic", "default": "unchecked" }, + "keysanity": { "text": "Keysanity", "group": "logic", "default": "unchecked" }, "nodungeonitems": { "text": "Remove Maps and Compasses", "group": "logic", "default": "unchecked" }, "beatableonly": { "text": "Only ensure seed is beatable", "group": "logic", "default": "unchecked" }, "custom_logic": { "text": "Use this fork's custom logic", "group": "logic", "default": "unchecked" }, diff --git a/Messages.py b/Messages.py index 24062b928..cad9200f1 100644 --- a/Messages.py +++ b/Messages.py @@ -414,13 +414,9 @@ def add_keysanity_messages(messages): add_message(messages, text, id, 0x23) # run all keysanity related patching to add messages for dungeon specific items -def message_patch_for_keysanity(rom): - messages = read_messages(rom) - shop_items = read_shop_items(rom) +def message_patch_for_keysanity(rom, messages, shop_items): move_shop_item_messages(messages, shop_items) add_keysanity_messages(messages) - repack_messages(rom, messages) - write_shop_items(rom, shop_items) # reads each of the game's messages into a list of Message objects def read_messages(rom): diff --git a/Rom.py b/Rom.py index 73c9e525e..ad9f1e1fa 100644 --- a/Rom.py +++ b/Rom.py @@ -11,7 +11,7 @@ from Utils import local_path, output_path from Items import ItemFactory, item_data from TextArray import text_array -from Messages import shuffle_messages, read_messages, read_shop_items, message_patch_for_keysanity +from Messages import * from OcarinaSongs import replace_songs TunicColors = { @@ -185,9 +185,10 @@ def patch_rom(world, rom): # Remove locked door to Boss Key Chest in Fire Temple rom.write_byte(0x22D82B7, 0x3F) - # Change Bombchu Shop check to Bomb Bag - rom.write_bytes(0xC6CEDA, [0x00, 0xA2]) - rom.write_byte(0xC6CEDF, 0x18) + # Change Bombchu Shop check to bombchus + rom.write_bytes(0xC6CED8, [0x80, 0x8A, 0x00, 0x7C, 0x24, 0x0B, 0x00, 0x09, 0x11, 0x4B, 0x00, 0x05]) + # Change Bombchu Shop to never sell out + rom.write_bytes(0xC019C0, [0x10, 0x00, 0x00, 0x30]) # Change Bowling Alley check to Bomb Bag (Part 1) rom.write_bytes(0x00E2D716, [0xA6, 0x72]) @@ -1074,9 +1075,24 @@ def patch_rom(world, rom): rom.write_byte(0x348073B, 0xC4) # picked up keys/finished fights + messages = read_messages(rom) + shop_items = read_shop_items(rom) + + # add a cheaper bombchu pack to the bombchu shop + # describe + add_message(messages, '\x08\x05\x41Bombchu (5 pieces) 60 Rupees\x01\x05\x40This looks like a toy mouse, but\x01it\'s actually a self-propelled time\x01bomb!\x09\x0A', 0x80FE, 0x03) + # purchase + add_message(messages, '\x08Bombchu 5 Pieces 60 Rupees\x01\x01\x1B\x05\x42Buy\x01Don\'t buy\x05\x40\x09', 0x80FF, 0x03) + rbl_bombchu = shop_items[0x0018] + rbl_bombchu.price = 60 + rbl_bombchu.pieces = 5 + rbl_bombchu.get_item_id = 0x006A + rbl_bombchu.description_message = 0x80FE + rbl_bombchu.purchase_message = 0x80FF + # keysanity messages if world.keysanity: - message_patch_for_keysanity(rom) + message_patch_for_keysanity(rom, messages, shop_items) # with open('keysanity_' + str(world.seed) + '_dump.txt', 'w', encoding='utf-16') as f: # messages = read_messages(rom) # shop_items = read_shop_items(rom) @@ -1087,6 +1103,10 @@ def patch_rom(world, rom): # f.write(str(s) + '\n\n') + repack_messages(rom, messages) + write_shop_items(rom, shop_items) + + # text shuffle if world.text_shuffle == 'except_hints': shuffle_messages(rom, True) From 4f7f4acdd0aa35231378246050c1e7f50bed6886 Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 29 Jun 2018 13:10:35 -0500 Subject: [PATCH 059/755] Added colors to dungeon item texts --- Messages.py | 70 ++++++++++++++++++++++++++--------------------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/Messages.py b/Messages.py index 24062b928..12e4cf81c 100644 --- a/Messages.py +++ b/Messages.py @@ -67,41 +67,41 @@ def read_bytes(rom, offset, len): # messages for keysanity item pickup # ids are in the space freed up by move_shop_item_messages() KEYSANITY_MESSAGES = { - 0x06: 'Forest Temple Boss Key', - 0x1c: 'Fire Temple Boss Key', - 0x1d: 'Water Temple Boss Key', - 0x1e: 'Spirit Temple Boss Key', - 0x2a: 'Shadow Temple Boss Key', - 0x61: 'Ganon\'s Castle Boss Key', - 0x62: 'Deku Tree Compass', - 0x63: 'Dodongo\'s Cavern Compass', - 0x64: 'Jabu Jabu Compass', - 0x65: 'Forest Temple Compass', - 0x7c: 'Fire Temple Compass', - 0x7d: 'Water Temple Compass', - 0x7e: 'Spirit Temple Compass', - 0x7f: 'Shadow Temple Compass', - 0x85: 'Bottom of the Well Compass', - 0x87: 'Ice Cavern Compass', - 0x88: 'Deku Tree Map', - 0x89: 'Dodongo\'s Cavern Map', - 0x8a: 'Jabu Jabu Map', - 0x8b: 'Forest Temple Map', - 0x8c: 'Fire Temple Map', - 0x8e: 'Water Temple Map', - 0x8f: 'Spirit Temple Map', - 0x90: 'Shadow Temple Map', - 0x91: 'Bottom of the Well Map', - 0x92: 'Ice Cavern Map', - 0x93: 'Forest Temple Small Key', - 0x94: 'Fire Temple Small Key', - 0x95: 'Water Temple Small Key', - 0x97: 'Spirit Temple Small Key', - 0x99: 'Shadow Temple Small Key', - 0x9b: 'Bottom of the Well Small Key', - 0x9f: 'Gerudo Training Small Key', - 0xa0: 'Gerudo Fortress Small Key', - 0xa1: 'Ganon\'s Castle Small Key', + 0x06: '\x13\x77\x08You got the \x05\x41Boss Key\x05\x40\x01for the \x05\x42Forest Temple\x05\x40!\x09', + 0x1c: '\x13\x77\x08You got the \x05\x41Boss Key\x05\x40\x01for the \x05\x41Fire Temple\x05\x40!\x09', + 0x1d: '\x13\x77\x08You got the \x05\x41Boss Key\x05\x40\x01for the \x05\x43Water Temple\x05\x40!\x09', + 0x1e: '\x13\x77\x08You got the \x05\x41Boss Key\x05\x40\x01for the \x05\x46Spirit Temple\x05\x40!\x09', + 0x2a: '\x13\x77\x08You got the \x05\x41Boss Key\x05\x40\x01for the \x05\x45Shadow Temple\x05\x40!\x09', + 0x61: '\x13\x77\x08You got the \x05\x41Boss Key\x05\x40\x01for \x05\x47Ganon\'s Castle\x05\x40!\x09', + 0x62: '\x13\x77\x08You found the \x05\x41Compass\x05\x40\x01for the \x05\x42Deku Tree\x05\x40!\x09', + 0x63: '\x13\x77\x08You found the \x05\x41Compass\x05\x40\x01for \x05\x41Dodongo\'s Cavern\x05\x40!\x09', + 0x64: '\x13\x77\x08You found the \x05\x41Compass\x05\x40\x01for \x05\x43Jabu Jabu\'s Belly\x05\x40!\x09', + 0x65: '\x13\x77\x08You found the \x05\x41Compass\x05\x40\x01for the \x05\x42Forest Temple\x05\x40!\x09', + 0x7c: '\x13\x77\x08You found the \x05\x41Compass\x05\x40\x01for the \x05\x41Fire Temple\x05\x40!\x09', + 0x7d: '\x13\x77\x08You found the \x05\x41Compass\x05\x40\x01for the \x05\x43Water Temple\x05\x40!\x09', + 0x7e: '\x13\x77\x08You found the \x05\x41Compass\x05\x40\x01for the \x05\x46Spirit Temple\x05\x40!\x09', + 0x7f: '\x13\x77\x08You found the \x05\x41Compass\x05\x40\x01for the \x05\x45Shadow Temple\x05\x40!\x09', + 0x85: '\x13\x77\x08You found the \x05\x41Compass\x05\x40\x01for the \x05\x45Bottom of the Well\x05\x40!\x09', + 0x87: '\x13\x77\x08You found the \x05\x41Compass\x05\x40\x01for the \x05\x44Ice Cavern\x05\x40!\x09', + 0x88: '\x13\x77\x08You found the \x05\x41Dungeon Map\x05\x40\x01for the \x05\x42Deku Tree\x05\x40!\x09', + 0x89: '\x13\x77\x08You found the \x05\x41Dungeon Map\x05\x40\x01for \x05\x41Dodongo\'s Cavern\x05\x40!\x09', + 0x8a: '\x13\x77\x08You found the \x05\x41Dungeon Map\x05\x40\x01for \x05\x43Jabu Jabu\'s Belly\x05\x40!\x09', + 0x8b: '\x13\x77\x08You found the \x05\x41Dungeon Map\x05\x40\x01for the \x05\x42Forest Temple\x05\x40!\x09', + 0x8c: '\x13\x77\x08You found the \x05\x41Dungeon Map\x05\x40\x01for the \x05\x41Fire Temple\x05\x40!\x09', + 0x8e: '\x13\x77\x08You found the \x05\x41Dungeon Map\x05\x40\x01for the \x05\x43Water Temple\x05\x40!\x09', + 0x8f: '\x13\x77\x08You found the \x05\x41Dungeon Map\x05\x40\x01for the \x05\x46Spirit Temple\x05\x40!\x09', + 0x90: '\x13\x77\x08You found the \x05\x41Dungeon Map\x05\x40\x01for the \x05\x45Shadow Temple\x05\x40!\x09', + 0x91: '\x13\x77\x08You found the \x05\x41Dungeon Map\x05\x40\x01for the \x05\x45Bottom of the Well\x05\x40!\x09', + 0x92: '\x13\x77\x08You found the \x05\x41Dungeon Map\x05\x40\x01for the \x05\x44Ice Cavern\x05\x40!\x09', + 0x93: '\x13\x77\x08You found a \x05\x41Small Key\x05\x40\x01for the \x05\x42Forest Temple\x05\x40!\x09', + 0x94: '\x13\x77\x08You found a \x05\x41Small Key\x05\x40\x01for the \x05\x41Fire Temple\x05\x40!\x09', + 0x95: '\x13\x77\x08You found a \x05\x41Small Key\x05\x40\x01for the \x05\x43Water Temple\x05\x40!\x09', + 0x97: '\x13\x77\x08You found a \x05\x41Small Key\x05\x40\x01for the \x05\x46Spirit Temple\x05\x40!\x09', + 0x99: '\x13\x77\x08You found a \x05\x41Small Key\x05\x40\x01for the \x05\x45Shadow Temple\x05\x40!\x09', + 0x9b: '\x13\x77\x08You found a \x05\x41Small Key\x05\x40\x01for the \x05\x45Bottom of the Well\x05\x40!\x09', + 0x9f: '\x13\x77\x08You found a \x05\x41Small Key\x05\x40\x01for the \x05\x46Gerudo Training\x01Grounds\x05\x40!\x09', + 0xa0: '\x13\x77\x08You found a \x05\x41Small Key\x05\x40\x01for the \x05\x46Gerudo Fortress\x05\x40!\x09', + 0xa1: '\x13\x77\x08You found a \x05\x41Small Key\x05\x40\x01for \x05\x47Ganon\'s Castle\x05\x40!\x09', } # convert byte array to an integer From 82b5e6e14419ae3657010afd3a16827df4f3f16c Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Fri, 29 Jun 2018 15:09:54 -0500 Subject: [PATCH 060/755] Bombchu bowling now checks for bombchus. --- Rom.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/Rom.py b/Rom.py index ad9f1e1fa..575441fce 100644 --- a/Rom.py +++ b/Rom.py @@ -190,13 +190,12 @@ def patch_rom(world, rom): # Change Bombchu Shop to never sell out rom.write_bytes(0xC019C0, [0x10, 0x00, 0x00, 0x30]) - # Change Bowling Alley check to Bomb Bag (Part 1) - rom.write_bytes(0x00E2D716, [0xA6, 0x72]) - rom.write_byte(0x00E2D723, 0x18) + # Change Bowling Alley check to bombchus (Part 1) + rom.write_bytes(0x00E2D714, [0x81, 0xEF, 0xA6, 0x4C]) + rom.write_bytes(0x00E2D720, [0x24, 0x18, 0x00, 0x09, 0x11, 0xF8, 0x00, 0x06]) - # Change Bowling Alley check to Bomb Bag (Part 2) - rom.write_bytes(0x00E2D892, [0xA6, 0x72]) - rom.write_byte(0x00E2D897, 0x18) + # Change Bowling Alley check to bombchus (Part 2) + rom.write_bytes(0x00E2D890, [0x81, 0x6B, 0xA6, 0x4C, 0x24, 0x0C, 0x00, 0x09, 0x51, 0x6C, 0x00, 0x0A]) # Change Bazaar check to Bomb Bag (Child?) rom.write_bytes(0x00C0082A, [0x00, 0x18]) From 02ecdb50122dce68b4fea74a3ca96218cf9535c0 Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 29 Jun 2018 16:49:30 -0500 Subject: [PATCH 061/755] Fixed dungeon item text icons --- Messages.py | 52 ++++++++++++++++++++++++++-------------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/Messages.py b/Messages.py index f1253fc44..3c7129d77 100644 --- a/Messages.py +++ b/Messages.py @@ -67,32 +67,32 @@ def read_bytes(rom, offset, len): # messages for keysanity item pickup # ids are in the space freed up by move_shop_item_messages() KEYSANITY_MESSAGES = { - 0x06: '\x13\x77\x08You got the \x05\x41Boss Key\x05\x40\x01for the \x05\x42Forest Temple\x05\x40!\x09', - 0x1c: '\x13\x77\x08You got the \x05\x41Boss Key\x05\x40\x01for the \x05\x41Fire Temple\x05\x40!\x09', - 0x1d: '\x13\x77\x08You got the \x05\x41Boss Key\x05\x40\x01for the \x05\x43Water Temple\x05\x40!\x09', - 0x1e: '\x13\x77\x08You got the \x05\x41Boss Key\x05\x40\x01for the \x05\x46Spirit Temple\x05\x40!\x09', - 0x2a: '\x13\x77\x08You got the \x05\x41Boss Key\x05\x40\x01for the \x05\x45Shadow Temple\x05\x40!\x09', - 0x61: '\x13\x77\x08You got the \x05\x41Boss Key\x05\x40\x01for \x05\x47Ganon\'s Castle\x05\x40!\x09', - 0x62: '\x13\x77\x08You found the \x05\x41Compass\x05\x40\x01for the \x05\x42Deku Tree\x05\x40!\x09', - 0x63: '\x13\x77\x08You found the \x05\x41Compass\x05\x40\x01for \x05\x41Dodongo\'s Cavern\x05\x40!\x09', - 0x64: '\x13\x77\x08You found the \x05\x41Compass\x05\x40\x01for \x05\x43Jabu Jabu\'s Belly\x05\x40!\x09', - 0x65: '\x13\x77\x08You found the \x05\x41Compass\x05\x40\x01for the \x05\x42Forest Temple\x05\x40!\x09', - 0x7c: '\x13\x77\x08You found the \x05\x41Compass\x05\x40\x01for the \x05\x41Fire Temple\x05\x40!\x09', - 0x7d: '\x13\x77\x08You found the \x05\x41Compass\x05\x40\x01for the \x05\x43Water Temple\x05\x40!\x09', - 0x7e: '\x13\x77\x08You found the \x05\x41Compass\x05\x40\x01for the \x05\x46Spirit Temple\x05\x40!\x09', - 0x7f: '\x13\x77\x08You found the \x05\x41Compass\x05\x40\x01for the \x05\x45Shadow Temple\x05\x40!\x09', - 0x85: '\x13\x77\x08You found the \x05\x41Compass\x05\x40\x01for the \x05\x45Bottom of the Well\x05\x40!\x09', - 0x87: '\x13\x77\x08You found the \x05\x41Compass\x05\x40\x01for the \x05\x44Ice Cavern\x05\x40!\x09', - 0x88: '\x13\x77\x08You found the \x05\x41Dungeon Map\x05\x40\x01for the \x05\x42Deku Tree\x05\x40!\x09', - 0x89: '\x13\x77\x08You found the \x05\x41Dungeon Map\x05\x40\x01for \x05\x41Dodongo\'s Cavern\x05\x40!\x09', - 0x8a: '\x13\x77\x08You found the \x05\x41Dungeon Map\x05\x40\x01for \x05\x43Jabu Jabu\'s Belly\x05\x40!\x09', - 0x8b: '\x13\x77\x08You found the \x05\x41Dungeon Map\x05\x40\x01for the \x05\x42Forest Temple\x05\x40!\x09', - 0x8c: '\x13\x77\x08You found the \x05\x41Dungeon Map\x05\x40\x01for the \x05\x41Fire Temple\x05\x40!\x09', - 0x8e: '\x13\x77\x08You found the \x05\x41Dungeon Map\x05\x40\x01for the \x05\x43Water Temple\x05\x40!\x09', - 0x8f: '\x13\x77\x08You found the \x05\x41Dungeon Map\x05\x40\x01for the \x05\x46Spirit Temple\x05\x40!\x09', - 0x90: '\x13\x77\x08You found the \x05\x41Dungeon Map\x05\x40\x01for the \x05\x45Shadow Temple\x05\x40!\x09', - 0x91: '\x13\x77\x08You found the \x05\x41Dungeon Map\x05\x40\x01for the \x05\x45Bottom of the Well\x05\x40!\x09', - 0x92: '\x13\x77\x08You found the \x05\x41Dungeon Map\x05\x40\x01for the \x05\x44Ice Cavern\x05\x40!\x09', + 0x06: '\x13\x74\x08You got the \x05\x41Boss Key\x05\x40\x01for the \x05\x42Forest Temple\x05\x40!\x09', + 0x1c: '\x13\x74\x08You got the \x05\x41Boss Key\x05\x40\x01for the \x05\x41Fire Temple\x05\x40!\x09', + 0x1d: '\x13\x74\x08You got the \x05\x41Boss Key\x05\x40\x01for the \x05\x43Water Temple\x05\x40!\x09', + 0x1e: '\x13\x74\x08You got the \x05\x41Boss Key\x05\x40\x01for the \x05\x46Spirit Temple\x05\x40!\x09', + 0x2a: '\x13\x74\x08You got the \x05\x41Boss Key\x05\x40\x01for the \x05\x45Shadow Temple\x05\x40!\x09', + 0x61: '\x13\x74\x08You got the \x05\x41Boss Key\x05\x40\x01for \x05\x47Ganon\'s Castle\x05\x40!\x09', + 0x62: '\x13\x75\x08You found the \x05\x41Compass\x05\x40\x01for the \x05\x42Deku Tree\x05\x40!\x09', + 0x63: '\x13\x75\x08You found the \x05\x41Compass\x05\x40\x01for \x05\x41Dodongo\'s Cavern\x05\x40!\x09', + 0x64: '\x13\x75\x08You found the \x05\x41Compass\x05\x40\x01for \x05\x43Jabu Jabu\'s Belly\x05\x40!\x09', + 0x65: '\x13\x75\x08You found the \x05\x41Compass\x05\x40\x01for the \x05\x42Forest Temple\x05\x40!\x09', + 0x7c: '\x13\x75\x08You found the \x05\x41Compass\x05\x40\x01for the \x05\x41Fire Temple\x05\x40!\x09', + 0x7d: '\x13\x75\x08You found the \x05\x41Compass\x05\x40\x01for the \x05\x43Water Temple\x05\x40!\x09', + 0x7e: '\x13\x75\x08You found the \x05\x41Compass\x05\x40\x01for the \x05\x46Spirit Temple\x05\x40!\x09', + 0x7f: '\x13\x75\x08You found the \x05\x41Compass\x05\x40\x01for the \x05\x45Shadow Temple\x05\x40!\x09', + 0x85: '\x13\x75\x08You found the \x05\x41Compass\x05\x40\x01for the \x05\x45Bottom of the Well\x05\x40!\x09', + 0x87: '\x13\x75\x08You found the \x05\x41Compass\x05\x40\x01for the \x05\x44Ice Cavern\x05\x40!\x09', + 0x88: '\x13\x76\x08You found the \x05\x41Dungeon Map\x05\x40\x01for the \x05\x42Deku Tree\x05\x40!\x09', + 0x89: '\x13\x76\x08You found the \x05\x41Dungeon Map\x05\x40\x01for \x05\x41Dodongo\'s Cavern\x05\x40!\x09', + 0x8a: '\x13\x76\x08You found the \x05\x41Dungeon Map\x05\x40\x01for \x05\x43Jabu Jabu\'s Belly\x05\x40!\x09', + 0x8b: '\x13\x76\x08You found the \x05\x41Dungeon Map\x05\x40\x01for the \x05\x42Forest Temple\x05\x40!\x09', + 0x8c: '\x13\x76\x08You found the \x05\x41Dungeon Map\x05\x40\x01for the \x05\x41Fire Temple\x05\x40!\x09', + 0x8e: '\x13\x76\x08You found the \x05\x41Dungeon Map\x05\x40\x01for the \x05\x43Water Temple\x05\x40!\x09', + 0x8f: '\x13\x76\x08You found the \x05\x41Dungeon Map\x05\x40\x01for the \x05\x46Spirit Temple\x05\x40!\x09', + 0x90: '\x13\x76\x08You found the \x05\x41Dungeon Map\x05\x40\x01for the \x05\x45Shadow Temple\x05\x40!\x09', + 0x91: '\x13\x76\x08You found the \x05\x41Dungeon Map\x05\x40\x01for the \x05\x45Bottom of the Well\x05\x40!\x09', + 0x92: '\x13\x76\x08You found the \x05\x41Dungeon Map\x05\x40\x01for the \x05\x44Ice Cavern\x05\x40!\x09', 0x93: '\x13\x77\x08You found a \x05\x41Small Key\x05\x40\x01for the \x05\x42Forest Temple\x05\x40!\x09', 0x94: '\x13\x77\x08You found a \x05\x41Small Key\x05\x40\x01for the \x05\x41Fire Temple\x05\x40!\x09', 0x95: '\x13\x77\x08You found a \x05\x41Small Key\x05\x40\x01for the \x05\x43Water Temple\x05\x40!\x09', From eda1e833bd2f8ca73b0f23c64ccc9929108178c1 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Sat, 30 Jun 2018 07:52:35 -0500 Subject: [PATCH 062/755] Fixed issue with some item get messages being pointed incorrectly. --- ASM/src/extended_items.asm | 10 +++++----- Messages.py | 20 ++++++++++++-------- data/base2current.json | 2 +- 3 files changed, 18 insertions(+), 14 deletions(-) diff --git a/ASM/src/extended_items.asm b/ASM/src/extended_items.asm index 395f85f66..954920ddd 100755 --- a/ASM/src/extended_items.asm +++ b/ASM/src/extended_items.asm @@ -84,7 +84,7 @@ Item_Row 0x53, 0x41, 0x0B, 0x7C, 0x00B8, no_upgrade, give_dungeon_item, 0x02, FI Item_Row 0x53, 0x41, 0x0B, 0x7D, 0x00B8, no_upgrade, give_dungeon_item, 0x02, WATER_ID ; 0x9D = Water Temple Compass Item_Row 0x53, 0x41, 0x0B, 0x7E, 0x00B8, no_upgrade, give_dungeon_item, 0x02, SPIRIT_ID ; 0x9E = Spirit Temple Compass Item_Row 0x53, 0x41, 0x0B, 0x7F, 0x00B8, no_upgrade, give_dungeon_item, 0x02, SHADOW_ID ; 0x9F = Shadow Temple Compass -Item_Row 0x53, 0x41, 0x0B, 0x85, 0x00B8, no_upgrade, give_dungeon_item, 0x02, BOTW_ID ; 0xA0 = Bottom of the Well Compass +Item_Row 0x53, 0x41, 0x0B, 0xA2, 0x00B8, no_upgrade, give_dungeon_item, 0x02, BOTW_ID ; 0xA0 = Bottom of the Well Compass Item_Row 0x53, 0x41, 0x0B, 0x87, 0x00B8, no_upgrade, give_dungeon_item, 0x02, ICE_ID ; 0xA1 = Ice Cavern Compass Item_Row 0x53, 0x41, 0x1C, 0x88, 0x00C8, no_upgrade, give_dungeon_item, 0x04, DEKU_ID ; 0xA2 = Deku Tree Map @@ -94,15 +94,15 @@ Item_Row 0x53, 0x41, 0x1C, 0x8B, 0x00C8, no_upgrade, give_dungeon_item, 0x04, FO Item_Row 0x53, 0x41, 0x1C, 0x8C, 0x00C8, no_upgrade, give_dungeon_item, 0x04, FIRE_ID ; 0xA6 = Fire Temple Map Item_Row 0x53, 0x41, 0x1C, 0x8E, 0x00C8, no_upgrade, give_dungeon_item, 0x04, WATER_ID ; 0xA7 = Water Temple Map Item_Row 0x53, 0x41, 0x1C, 0x8F, 0x00C8, no_upgrade, give_dungeon_item, 0x04, SPIRIT_ID ; 0xA8 = Spirit Temple Map -Item_Row 0x53, 0x41, 0x1C, 0x90, 0x00C8, no_upgrade, give_dungeon_item, 0x04, SHADOW_ID ; 0xA9 = Shadow Temple Map -Item_Row 0x53, 0x41, 0x1C, 0x91, 0x00C8, no_upgrade, give_dungeon_item, 0x04, BOTW_ID ; 0xAA = Bottom of the Well Map +Item_Row 0x53, 0x41, 0x1C, 0xA3, 0x00C8, no_upgrade, give_dungeon_item, 0x04, SHADOW_ID ; 0xA9 = Shadow Temple Map +Item_Row 0x53, 0x41, 0x1C, 0xA5, 0x00C8, no_upgrade, give_dungeon_item, 0x04, BOTW_ID ; 0xAA = Bottom of the Well Map Item_Row 0x53, 0x41, 0x1C, 0x92, 0x00C8, no_upgrade, give_dungeon_item, 0x04, ICE_ID ; 0xAB = Ice Cavern Map Item_Row 0x53, 0x41, 0xFE, 0x93, 0x00AA, no_upgrade, give_small_key, FOREST_ID, -1 ; 0xAC = Forest Temple Small Key Item_Row 0x53, 0x41, 0xFE, 0x94, 0x00AA, no_upgrade, give_small_key, FIRE_ID, -1 ; 0xAD = Fire Temple Small Key Item_Row 0x53, 0x41, 0xFE, 0x95, 0x00AA, no_upgrade, give_small_key, WATER_ID, -1 ; 0xAE = Water Temple Small Key -Item_Row 0x53, 0x41, 0xFE, 0x97, 0x00AA, no_upgrade, give_small_key, SPIRIT_ID, -1 ; 0xAF = Spirit Temple Small Key -Item_Row 0x53, 0x41, 0xFE, 0x99, 0x00AA, no_upgrade, give_small_key, SHADOW_ID, -1 ; 0xB0 = Shadow Temple Small Key +Item_Row 0x53, 0x41, 0xFE, 0xA6, 0x00AA, no_upgrade, give_small_key, SPIRIT_ID, -1 ; 0xAF = Spirit Temple Small Key +Item_Row 0x53, 0x41, 0xFE, 0xA9, 0x00AA, no_upgrade, give_small_key, SHADOW_ID, -1 ; 0xB0 = Shadow Temple Small Key Item_Row 0x53, 0x41, 0xFE, 0x9B, 0x00AA, no_upgrade, give_small_key, BOTW_ID, -1 ; 0xB1 = Bottom of the Well Small Key Item_Row 0x53, 0x41, 0xFE, 0x9F, 0x00AA, no_upgrade, give_small_key, GTG_ID, -1 ; 0xB2 = Gerudo Training Small Key Item_Row 0x53, 0x41, 0xFE, 0xA0, 0x00AA, no_upgrade, give_small_key, FORT_ID, -1 ; 0xB3 = Gerudo Fortress Small Key diff --git a/Messages.py b/Messages.py index 3c7129d77..36332dfcd 100644 --- a/Messages.py +++ b/Messages.py @@ -81,7 +81,7 @@ def read_bytes(rom, offset, len): 0x7d: '\x13\x75\x08You found the \x05\x41Compass\x05\x40\x01for the \x05\x43Water Temple\x05\x40!\x09', 0x7e: '\x13\x75\x08You found the \x05\x41Compass\x05\x40\x01for the \x05\x46Spirit Temple\x05\x40!\x09', 0x7f: '\x13\x75\x08You found the \x05\x41Compass\x05\x40\x01for the \x05\x45Shadow Temple\x05\x40!\x09', - 0x85: '\x13\x75\x08You found the \x05\x41Compass\x05\x40\x01for the \x05\x45Bottom of the Well\x05\x40!\x09', + 0xa2: '\x13\x75\x08You found the \x05\x41Compass\x05\x40\x01for the \x05\x45Bottom of the Well\x05\x40!\x09', 0x87: '\x13\x75\x08You found the \x05\x41Compass\x05\x40\x01for the \x05\x44Ice Cavern\x05\x40!\x09', 0x88: '\x13\x76\x08You found the \x05\x41Dungeon Map\x05\x40\x01for the \x05\x42Deku Tree\x05\x40!\x09', 0x89: '\x13\x76\x08You found the \x05\x41Dungeon Map\x05\x40\x01for \x05\x41Dodongo\'s Cavern\x05\x40!\x09', @@ -90,14 +90,14 @@ def read_bytes(rom, offset, len): 0x8c: '\x13\x76\x08You found the \x05\x41Dungeon Map\x05\x40\x01for the \x05\x41Fire Temple\x05\x40!\x09', 0x8e: '\x13\x76\x08You found the \x05\x41Dungeon Map\x05\x40\x01for the \x05\x43Water Temple\x05\x40!\x09', 0x8f: '\x13\x76\x08You found the \x05\x41Dungeon Map\x05\x40\x01for the \x05\x46Spirit Temple\x05\x40!\x09', - 0x90: '\x13\x76\x08You found the \x05\x41Dungeon Map\x05\x40\x01for the \x05\x45Shadow Temple\x05\x40!\x09', - 0x91: '\x13\x76\x08You found the \x05\x41Dungeon Map\x05\x40\x01for the \x05\x45Bottom of the Well\x05\x40!\x09', + 0xa3: '\x13\x76\x08You found the \x05\x41Dungeon Map\x05\x40\x01for the \x05\x45Shadow Temple\x05\x40!\x09', + 0xa5: '\x13\x76\x08You found the \x05\x41Dungeon Map\x05\x40\x01for the \x05\x45Bottom of the Well\x05\x40!\x09', 0x92: '\x13\x76\x08You found the \x05\x41Dungeon Map\x05\x40\x01for the \x05\x44Ice Cavern\x05\x40!\x09', 0x93: '\x13\x77\x08You found a \x05\x41Small Key\x05\x40\x01for the \x05\x42Forest Temple\x05\x40!\x09', 0x94: '\x13\x77\x08You found a \x05\x41Small Key\x05\x40\x01for the \x05\x41Fire Temple\x05\x40!\x09', 0x95: '\x13\x77\x08You found a \x05\x41Small Key\x05\x40\x01for the \x05\x43Water Temple\x05\x40!\x09', - 0x97: '\x13\x77\x08You found a \x05\x41Small Key\x05\x40\x01for the \x05\x46Spirit Temple\x05\x40!\x09', - 0x99: '\x13\x77\x08You found a \x05\x41Small Key\x05\x40\x01for the \x05\x45Shadow Temple\x05\x40!\x09', + 0xa6: '\x13\x77\x08You found a \x05\x41Small Key\x05\x40\x01for the \x05\x46Spirit Temple\x05\x40!\x09', + 0xa9: '\x13\x77\x08You found a \x05\x41Small Key\x05\x40\x01for the \x05\x45Shadow Temple\x05\x40!\x09', 0x9b: '\x13\x77\x08You found a \x05\x41Small Key\x05\x40\x01for the \x05\x45Bottom of the Well\x05\x40!\x09', 0x9f: '\x13\x77\x08You found a \x05\x41Small Key\x05\x40\x01for the \x05\x46Gerudo Training\x01Grounds\x05\x40!\x09', 0xa0: '\x13\x77\x08You found a \x05\x41Small Key\x05\x40\x01for the \x05\x46Gerudo Fortress\x05\x40!\x09', @@ -377,12 +377,16 @@ def write_shop_items(rom, shop_items): for s in shop_items: s.write(rom, s.index) +# these are unused shop items, and contain text ids that are used elsewhere, and should not be moved +SHOP_ITEM_EXCEPTIONS = [0x0A, 0x0B, 0x11, 0x12, 0x13, 0x14, 0x29] + # returns a set of all message ids used for shop items def get_shop_message_id_set(shop_items): ids = set() for shop in shop_items: - ids.add(shop.description_message) - ids.add(shop.purchase_message) + if shop.index not in SHOP_ITEM_EXCEPTIONS: + ids.add(shop.description_message) + ids.add(shop.purchase_message) return ids # takes all messages used for shop items, and moves messages from the 00xx range into the unused 80xx range @@ -475,7 +479,7 @@ def shuffle_messages(rom, except_hints=True, always_allow_skip=True): def is_not_exempt(m): exaempt_as_id = m.is_id_message() - exempt_as_hint = ( except_hints and m.id in (GOSSIP_STONE_MESSAGES + TEMPLE_HINTS_MESSAGES + LIGHT_ARROW_HINT) ) + exempt_as_hint = ( except_hints and m.id in (GOSSIP_STONE_MESSAGES + TEMPLE_HINTS_MESSAGES + LIGHT_ARROW_HINT + list(KEYSANITY_MESSAGES.keys()) ) ) return not ( exaempt_as_id or exempt_as_hint ) have_goto = list( filter( lambda m: is_not_exempt(m) and m.has_goto, messages) ) diff --git a/data/base2current.json b/data/base2current.json index 50ddc03dc..cbab5b70e 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -1 +1 @@ -[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 20]}, {"11325064": [12, 16, 10, 236, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 11, 63]}, {"11427312": [12, 16, 11, 232]}, {"11881272": [12, 16, 11, 248]}, {"11882076": [12, 16, 11, 213]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 11, 30, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 11, 37, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 11, 44, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 11, 23, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 9, 228]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 9, 177]}, {"12427480": [12, 16, 9, 206]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 9, 210]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12428008": [36, 10, 255, 255]}, {"12474768": [12, 16, 10, 244, 0, 0, 0, 0]}, {"12491456": [12, 16, 9, 240]}, {"12491480": [12, 16, 9, 249]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 10, 193]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 11, 51]}, {"14357459": [118]}, {"14624335": [118]}, {"14872723": [52]}, {"15506663": [122]}, {"55055360": [90, 93, 92, 94, 81, 82, 83]}, {"55058464": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 72, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 100, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 140, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 180, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 220, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 4, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 32, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 60, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 88, 83, 65, 1, 67]}, {"55058613": [198, 21, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 68]}, {"55058629": [198, 22, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 69]}, {"55058645": [198, 23, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 70]}, {"55058661": [198, 24, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 71]}, {"55058677": [198, 25, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 93]}, {"55058693": [198, 28, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 122]}, {"55058709": [198, 29, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 249]}, {"55058725": [198, 30, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 151]}, {"55058741": [198, 32, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 10, 6]}, {"55058757": [185, 1, 3, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 28]}, {"55058773": [185, 1, 4, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 29]}, {"55058789": [185, 1, 5, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 30]}, {"55058805": [185, 1, 6, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 42]}, {"55058821": [185, 1, 7, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 97]}, {"55058837": [185, 1, 10, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 98]}, {"55058853": [184, 2]}, {"55058856": [128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 99]}, {"55058869": [184, 2, 1, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 100]}, {"55058885": [184, 2, 2, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 101]}, {"55058901": [184, 2, 3, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 124]}, {"55058917": [184, 2, 4, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 125]}, {"55058933": [184, 2, 5, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 126]}, {"55058949": [184, 2, 6, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 127]}, {"55058965": [184, 2, 7, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 133]}, {"55058981": [184, 2, 8, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 135]}, {"55058997": [184, 2, 9, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 136]}, {"55059013": [200, 4]}, {"55059016": [128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 137]}, {"55059029": [200, 4, 1, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 138]}, {"55059045": [200, 4, 2, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 139]}, {"55059061": [200, 4, 3, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 140]}, {"55059077": [200, 4, 4, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 142]}, {"55059093": [200, 4, 5, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 143]}, {"55059109": [200, 4, 6, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 144]}, {"55059125": [200, 4, 7, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 145]}, {"55059141": [200, 4, 8, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 146]}, {"55059157": [200, 4, 9, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 254, 147]}, {"55059173": [170, 3, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 148]}, {"55059189": [170, 4, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 149]}, {"55059205": [170, 5, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 151]}, {"55059221": [170, 6, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 153]}, {"55059237": [170, 7, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 155]}, {"55059253": [170, 8, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 159]}, {"55059269": [170, 11, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 160]}, {"55059285": [170, 12, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 161]}, {"55059301": [170, 13, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 61, 67, 12]}, {"55059317": [248, 255, 255, 128, 64, 37, 204, 128, 64, 36, 64, 77, 131, 9, 85]}, {"55059333": [183, 255, 255, 128, 64, 37, 196, 128, 64, 36, 64, 83, 146, 219, 230]}, {"55059349": [216, 255, 255, 128, 64, 37, 196, 128, 64, 37, 140, 83, 147, 218, 230]}, {"55059365": [216, 255, 255, 128, 64, 37, 196, 128, 64, 37, 140, 83, 148, 217, 230]}, {"55059381": [216, 255, 255, 128, 64, 37, 196, 128, 64, 37, 140, 83, 142, 224, 50]}, {"55059397": [206, 255, 255, 128, 64, 37, 196, 128, 64, 37, 168, 83, 143, 224, 50]}, {"55059413": [206, 255, 255, 128, 64, 37, 196, 128, 64, 37, 168, 83, 144, 224, 50]}, {"55059429": [206, 255, 255, 128, 64, 37, 196, 128, 64, 37, 168, 83, 140, 238, 52]}, {"55059445": [187, 255, 255, 128, 64, 37, 196, 128, 64, 36, 64, 83, 141, 238, 52]}, {"55059461": [187, 255, 255, 128, 64, 37, 196, 128, 64, 36, 64, 79, 65, 19, 233]}, {"55059477": [189, 255, 255, 128, 64, 38, 92, 128, 64, 36, 64, 79, 65, 226, 228]}, {"55059493": [205, 255, 255, 128, 64, 38, 124, 128, 64, 37, 116, 79, 65, 225, 232]}, {"55059509": [205, 255, 255, 128, 64, 38, 156, 128, 64, 36, 64, 3, 224]}, {"55059523": [8, 52, 162]}, {"55059528": [144, 136]}, {"55059531": [125, 52, 1]}, {"55059535": [255, 17, 1]}, {"55059539": [2, 52, 2]}, {"55059543": [8, 52, 2]}, {"55059547": [9, 3, 224]}, {"55059551": [8]}, {"55059556": [144, 136]}, {"55059559": [163, 49, 8]}, {"55059563": [192, 17]}, {"55059567": [5, 52, 2]}, {"55059571": [84, 52, 1]}, {"55059575": [64, 17, 1]}, {"55059579": [2, 52, 2]}, {"55059583": [53, 52, 2]}, {"55059587": [54, 3, 224]}, {"55059591": [8]}, {"55059596": [144, 136]}, {"55059599": [163, 49, 8]}, {"55059603": [24, 17]}, {"55059607": [5, 52, 2]}, {"55059611": [50, 52, 1]}, {"55059615": [8, 17, 1]}, {"55059619": [2, 52, 2]}, {"55059623": [51, 52, 2]}, {"55059627": [52, 3, 224]}, {"55059631": [8]}, {"55059636": [144, 136]}, {"55059639": [163, 49, 8]}, {"55059643": [3, 17]}, {"55059647": [5, 52, 2]}, {"55059651": [4, 52, 1]}, {"55059655": [1, 17, 1]}, {"55059659": [2, 52, 2]}, {"55059663": [48, 52, 2]}, {"55059667": [49, 3, 224]}, {"55059671": [8]}, {"55059676": [144, 136]}, {"55059679": [162, 49, 8]}, {"55059683": [192, 17]}, {"55059687": [5, 52, 2]}, {"55059691": [5, 52, 1]}, {"55059695": [64, 17, 1]}, {"55059699": [2, 52, 2]}, {"55059703": [96, 52, 2]}, {"55059707": [123, 3, 224]}, {"55059711": [8]}, {"55059716": [144, 136]}, {"55059719": [162, 49, 8]}, {"55059723": [48, 17]}, {"55059727": [2, 52, 2]}, {"55059731": [69, 52, 2]}, {"55059735": [70, 3, 224]}, {"55059739": [8]}, {"55059744": [144, 136]}, {"55059747": [162, 49, 8]}, {"55059751": [6, 17]}, {"55059755": [2, 52, 2]}, {"55059759": [55, 52, 2]}, {"55059763": [56, 3, 224]}, {"55059767": [8]}, {"55059772": [144, 136]}, {"55059775": [161, 49, 8]}, {"55059779": [32, 17]}, {"55059783": [2, 52, 2]}, {"55059787": [121, 52, 2]}, {"55059791": [122, 3, 224]}, {"55059795": [8]}, {"55059800": [144, 136]}, {"55059803": [161, 49, 8]}, {"55059807": [4, 17]}, {"55059811": [2, 52, 2]}, {"55059815": [119, 52, 2]}, {"55059819": [120, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [50, 17]}, {"55059835": [2, 52, 2]}, {"55059839": [192, 52, 2]}, {"55059843": [193, 3, 224]}, {"55059847": [8]}, {"55059852": [144, 136]}, {"55059855": [163, 49, 8]}, {"55059859": [3, 17]}, {"55059863": [2, 52, 2]}, {"55059867": [77, 52, 162]}, {"55059872": [3, 224]}, {"55059875": [8]}, {"55059880": [144, 136]}, {"55059883": [163, 49, 8]}, {"55059887": [24, 17]}, {"55059891": [2, 52, 2]}, {"55059895": [77, 52, 162]}, {"55059900": [3, 224]}, {"55059903": [8]}, {"55059908": [3, 224]}, {"55059911": [8]}, {"55059916": [52, 8]}, {"55059919": [1, 160, 136]}, {"55059923": [62, 3, 224]}, {"55059927": [8]}, {"55059932": [36, 136]}, {"55059935": [134, 36, 9, 255, 255, 37, 41]}, {"55059943": [1, 52, 1]}, {"55059947": [3]}, {"55059949": [41, 8, 42, 20, 32]}, {"55059955": [7]}, {"55059960": [1, 9, 80, 33, 145, 75]}, {"55059968": [52, 1]}, {"55059971": [255, 21, 97, 255, 247]}, {"55059980": [161, 69]}, {"55059984": [3, 224]}, {"55059987": [8]}, {"55059992": [36, 136]}, {"55059995": [168, 1, 6, 64, 33, 145, 9]}, {"55060004": [1, 37, 72, 37, 161, 9]}, {"55060012": [3, 224]}, {"55060015": [8]}, {"55060020": [36, 136]}, {"55060023": [188, 1, 5, 64, 33, 129, 9]}, {"55060032": [5, 33]}, {"55060035": [2]}, {"55060040": [52, 9]}, {"55060044": [37, 41]}, {"55060047": [1, 161, 9]}, {"55060052": [3, 224]}, {"55060055": [8]}, {"55060060": [52, 8]}, {"55060063": [1, 160, 136]}, {"55060067": [61, 52, 8]}, {"55060071": [20, 160, 136]}, {"55060075": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060087": [8]}, {"55060092": [52, 8]}, {"55060095": [1, 160, 136]}, {"55060099": [50, 160, 136]}, {"55060103": [58, 52, 8]}, {"55060107": [48, 164, 136, 19, 244, 160, 136]}, {"55060115": [51, 3, 224]}, {"55060119": [8]}, {"55060124": [52, 8]}, {"55060127": [2, 160, 136]}, {"55060131": [50, 52, 8]}, {"55060135": [1, 160, 136]}, {"55060139": [58, 160, 136]}, {"55060143": [60, 52, 8]}, {"55060147": [96, 164, 136, 19, 244, 160, 136]}, {"55060155": [51, 3, 224]}, {"55060159": [8]}, {"55060164": [48, 132]}, {"55060167": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060179": [140, 16, 129]}, {"55060183": [22, 145, 2]}, {"55060187": [117, 52, 1]}, {"55060191": [141, 16, 129]}, {"55060195": [19, 145, 2]}, {"55060199": [117, 16, 128]}, {"55060203": [17, 145, 2]}, {"55060207": [116, 52, 1]}, {"55060211": [138, 16, 129]}, {"55060215": [14, 145, 2]}, {"55060219": [116, 52, 1]}, {"55060223": [139, 16, 129]}, {"55060227": [11, 145, 2]}, {"55060231": [116, 52, 1]}, {"55060235": [88, 16, 129]}, {"55060239": [8, 52, 2]}, {"55060244": [52, 1]}, {"55060247": [120, 16, 129]}, {"55060251": [5, 52, 2]}, {"55060256": [52, 1]}, {"55060259": [121, 16, 129]}, {"55060263": [2, 52, 2]}, {"55060268": [52, 2]}, {"55060271": [255, 3, 224]}, {"55060275": [8]}, {"55060280": [143, 166]}, {"55060283": [48, 132, 197]}, {"55060287": [4, 8, 16, 9, 214]}, {"55060296": [143, 185]}, {"55060299": [44, 135, 37]}, {"55060303": [4, 8, 16, 9, 214]}, {"55060312": [60, 10, 128, 64, 37, 74, 32]}, {"55060320": [141, 75]}, {"55060323": [12, 17, 96]}, {"55060327": [2]}, {"55060332": [149, 69]}, {"55060335": [4, 60, 10, 128, 64, 37, 74, 32, 16, 161, 64]}, {"55060348": [60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060360": [3, 224]}, {"55060363": [8]}, {"55060368": [60, 8, 128, 64, 37, 8, 32]}, {"55060376": [141, 9]}, {"55060379": [12, 17, 32]}, {"55060383": [2]}, {"55060388": [129, 3]}, {"55060391": [2]}, {"55060393": [3, 15, 195]}, {"55060397": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55060411": [8]}, {"55060416": [144, 69]}, {"55060419": [3, 60, 8, 128, 64, 37, 8, 32]}, {"55060428": [141, 9]}, {"55060431": [12, 17, 32]}, {"55060435": [2]}, {"55060440": [145, 5]}, {"55060443": [3, 3, 224]}, {"55060447": [8]}, {"55060452": [143, 162]}, {"55060455": [36, 144, 69]}, {"55060460": [60, 8, 128, 64, 37, 8, 32]}, {"55060468": [141, 9]}, {"55060471": [12, 17, 32]}, {"55060475": [19]}, {"55060480": [145, 5]}, {"55060483": [1, 175, 164]}, {"55060488": [175, 165]}, {"55060491": [4, 175, 166]}, {"55060495": [8, 39, 189, 255, 232, 175, 191]}, {"55060503": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55060515": [6, 145, 6]}, {"55060519": [7, 141, 9]}, {"55060523": [8, 1, 32, 248, 9]}, {"55060532": [143, 191]}, {"55060535": [16, 39, 189]}, {"55060539": [24, 143, 164]}, {"55060544": [143, 165]}, {"55060547": [4, 143, 166]}, {"55060551": [8, 3, 224]}, {"55060555": [8]}, {"55060560": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55060571": [16, 175, 163]}, {"55060575": [20, 175, 191]}, {"55060579": [24, 12, 16, 10, 33]}, {"55060588": [143, 162]}, {"55060591": [16, 143, 163]}, {"55060595": [20, 143, 191]}, {"55060599": [24, 39, 189]}, {"55060603": [32, 3, 224]}, {"55060607": [8]}, {"55060612": [39, 189, 255, 232, 175, 191]}, {"55060619": [16, 60, 8, 128, 64, 37, 8, 32]}, {"55060628": [173]}, {"55060632": [173]}, {"55060635": [4, 173]}, {"55060639": [8, 173]}, {"55060643": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55060659": [42]}, {"55060665": [9, 15, 195, 1, 33, 32, 38]}, {"55060673": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 91]}, {"55060688": [4, 64]}, {"55060691": [34]}, {"55060696": [52, 68]}, {"55060700": [12, 16, 10, 160]}, {"55060708": [16, 96]}, {"55060711": [12]}, {"55060716": [60, 8, 128, 64, 37, 8, 32]}, {"55060724": [140, 105]}, {"55060728": [173, 9]}, {"55060732": [140, 105]}, {"55060735": [4, 173, 9]}, {"55060739": [4, 140, 105]}, {"55060743": [8, 173, 9]}, {"55060747": [8, 52, 9]}, {"55060751": [1, 173, 9]}, {"55060755": [12, 144, 98]}, {"55060760": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55060776": [52, 1]}, {"55060779": [10, 21, 65]}, {"55060783": [6]}, {"55060788": [149, 42]}, {"55060791": [28, 49, 74, 240, 31]}, {"55060797": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55060807": [28, 129, 9, 4, 36, 5, 33]}, {"55060815": [2]}, {"55060821": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55060831": [16, 39, 189]}, {"55060835": [24, 3, 224]}, {"55060839": [8]}, {"55060844": [39, 189, 255, 232, 175, 191]}, {"55060851": [16, 12, 16, 10, 105]}, {"55060860": [36, 1, 255, 255, 16, 65]}, {"55060867": [4]}, {"55060872": [52, 68]}, {"55060876": [12, 16, 10, 147]}, {"55060884": [143, 191]}, {"55060887": [16, 39, 189]}, {"55060891": [24, 3, 224]}, {"55060895": [8]}, {"55060900": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55060911": [164, 52, 8]}, {"55060916": [52, 137]}, {"55060920": [148, 170]}, {"55060924": [52, 1]}, {"55060927": [10, 21, 65]}, {"55060931": [14]}, {"55060936": [148, 171]}, {"55060939": [28, 52, 1]}, {"55060943": [16, 20, 65]}, {"55060947": [8]}, {"55060952": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55060963": [4]}, {"55060968": [36, 2, 255, 255, 16]}, {"55060975": [21]}, {"55060980": [52, 8]}, {"55060983": [1, 49, 105]}, {"55060987": [31, 52, 1]}, {"55060991": [21, 21, 65]}, {"55060995": [12]}, {"55061000": [52, 1]}, {"55061003": [62, 16, 129]}, {"55061007": [7]}, {"55061012": [52, 1]}, {"55061015": [66, 16, 129]}, {"55061019": [4]}, {"55061024": [36, 2, 255, 255, 16]}, {"55061031": [7]}, {"55061036": [52, 8]}, {"55061039": [2, 144, 169, 1, 65]}, {"55061045": [2, 18]}, {"55061049": [72, 16, 37]}, {"55061053": [2, 18]}, {"55061057": [73, 16, 37, 3, 224]}, {"55061063": [8]}, {"55061068": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061083": [4, 141, 9]}, {"55061088": [17, 32]}, {"55061091": [5]}, {"55061097": [9, 82, 2, 21, 68, 255, 250]}, {"55061108": [49, 34]}, {"55061111": [255, 3, 224]}, {"55061115": [8]}, {"55061120": [39, 189, 255, 224, 175, 176]}, {"55061127": [16, 175, 177]}, {"55061131": [20, 175, 191]}, {"55061135": [24, 52, 130]}, {"55061140": [52, 80]}, {"55061144": [38, 8, 255, 128, 5]}, {"55061151": [18]}, {"55061156": [60, 17, 128, 64, 38, 49, 32, 32, 52, 9]}, {"55061167": [16, 1, 9]}, {"55061171": [24]}, {"55061174": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061192": [142, 40]}, {"55061195": [12, 1]}, {"55061198": [248, 9]}, {"55061204": [20, 80, 255, 239]}, {"55061212": [54, 35]}, {"55061216": [16]}, {"55061219": [2]}, {"55061224": [52, 3]}, {"55061228": [143, 176]}, {"55061231": [16, 143, 177]}, {"55061235": [20, 143, 191]}, {"55061239": [24, 39, 189]}, {"55061243": [32, 3, 224]}, {"55061247": [8]}, {"55061252": [140, 136, 29, 44, 52, 9]}, {"55061259": [1]}, {"55061261": [9, 78]}, {"55061264": [1, 9, 16, 36, 16, 64]}, {"55061271": [36]}, {"55061276": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55061291": [164, 52, 1]}, {"55061295": [61, 17, 129]}, {"55061299": [10]}, {"55061305": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55061315": [25]}, {"55061320": [52, 13]}, {"55061323": [1, 161, 141, 29, 40, 37, 74]}, {"55061331": [3, 16]}, {"55061335": [9]}, {"55061340": [52, 12]}, {"55061343": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55061359": [14]}, {"55061364": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 20, 1, 1, 10, 64, 33, 129, 8]}, {"55061400": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061412": [52, 2]}, {"55061416": [3, 224]}, {"55061419": [8]}, {"55061424": [60, 8, 128, 64, 37, 8, 20]}, {"55061432": [129, 8]}, {"55061436": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061448": [3, 224]}, {"55061451": [8]}, {"55061456": [175, 164]}, {"55061459": [104, 175, 165]}, {"55061463": [108, 175, 166]}, {"55061467": [112, 175, 167]}, {"55061471": [116, 39, 189, 255, 232, 175, 163]}, {"55061479": [16, 175, 191]}, {"55061483": [20, 60, 8, 128, 64, 37, 8, 32, 16, 129, 8]}, {"55061496": [17]}, {"55061499": [14]}, {"55061504": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55061515": [1, 165, 42]}, {"55061520": [60, 9, 128, 65, 52, 10]}, {"55061527": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 33]}, {"55061556": [143, 163]}, {"55061559": [16, 143, 191]}, {"55061563": [20, 39, 189]}, {"55061567": [24, 143, 164]}, {"55061571": [104, 143, 165]}, {"55061575": [108, 143, 166]}, {"55061579": [112, 143, 167]}, {"55061583": [116, 132, 110, 19, 196, 3, 224]}, {"55061591": [8]}, {"55061596": [147, 25]}, {"55061599": [116, 52, 1]}, {"55061603": [255, 23, 33]}, {"55061607": [2]}, {"55061612": [52, 25]}, {"55061615": [44, 3, 224]}, {"55061619": [8, 167, 185]}, {"55061623": [154, 147, 44]}, {"55061627": [116, 52, 1]}, {"55061631": [255, 21, 129]}, {"55061635": [2]}, {"55061640": [52, 12]}, {"55061643": [44, 3, 224]}, {"55061647": [8]}, {"55061652": [145, 174]}, {"55061655": [116, 52, 1]}, {"55061659": [255, 21, 193]}, {"55061663": [2]}, {"55061668": [52, 14]}, {"55061671": [44, 3, 224]}, {"55061675": [8, 167, 174]}, {"55061679": [154, 145, 207]}, {"55061683": [116, 52, 1]}, {"55061687": [255, 21, 225]}, {"55061691": [2]}, {"55061696": [52, 15]}, {"55061699": [44, 3, 224]}, {"55061703": [8, 167, 175]}, {"55061707": [154, 60, 8, 128, 64, 37, 8, 32, 20, 142, 9]}, {"55061719": [104, 173, 9]}, {"55061724": [142, 9]}, {"55061727": [108, 173, 9]}, {"55061731": [4, 150, 9]}, {"55061735": [112, 165, 9]}, {"55061739": [8, 150, 9]}, {"55061743": [156, 165, 9]}, {"55061747": [10, 3, 224]}, {"55061751": [8, 142, 14]}, {"55061755": [4, 39, 189, 255, 224, 175, 176]}, {"55061763": [16, 175, 177]}, {"55061767": [20, 175, 191]}, {"55061771": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 20, 142, 8]}, {"55061791": [4, 17]}, {"55061795": [5]}, {"55061800": [12, 16, 11, 105]}, {"55061808": [16]}, {"55061811": [3]}, {"55061816": [12, 16, 11, 124]}, {"55061824": [12, 16, 11, 92, 52, 4]}, {"55061832": [12, 16, 11, 92, 52, 4]}, {"55061839": [1, 12, 16, 11, 92, 52, 4]}, {"55061847": [2, 143, 176]}, {"55061851": [16, 143, 177]}, {"55061855": [20, 143, 191]}, {"55061859": [24, 39, 189]}, {"55061863": [32, 3, 224]}, {"55061867": [8]}, {"55061872": [2, 4, 64, 33, 145, 9]}, {"55061879": [108, 52, 1]}, {"55061883": [255, 17, 33]}, {"55061887": [7]}, {"55061892": [2, 9, 72, 33, 145, 41]}, {"55061899": [116, 52, 1]}, {"55061903": [44, 17, 33]}, {"55061907": [2]}, {"55061912": [161, 9]}, {"55061915": [105, 3, 224]}, {"55061919": [8]}, {"55061924": [39, 189, 255, 232, 175, 191]}, {"55061931": [16, 142, 40]}, {"55061936": [174, 8]}, {"55061939": [64, 142, 40]}, {"55061943": [4, 174, 8]}, {"55061947": [68, 150, 40]}, {"55061951": [8, 166, 8]}, {"55061955": [72, 162]}, {"55061958": [15, 51, 146, 8]}, {"55061963": [74, 52, 1]}, {"55061967": [255, 21, 1]}, {"55061971": [3]}, {"55061976": [12, 16, 11, 138]}, {"55061984": [143, 191]}, {"55061987": [16, 39, 189]}, {"55061991": [24, 3, 224]}, {"55061995": [8]}, {"55062000": [142, 8]}, {"55062003": [64, 174, 8]}, {"55062007": [104, 142, 8]}, {"55062011": [68, 174, 8]}, {"55062015": [108, 150, 8]}, {"55062019": [72, 166, 8]}, {"55062023": [112, 146, 8]}, {"55062027": [104, 52, 1]}, {"55062031": [255, 21, 1]}, {"55062035": [3]}, {"55062040": [52, 8]}, {"55062043": [1, 162, 8, 15, 51, 3, 224]}, {"55062051": [8]}, {"55062056": [39, 189, 255, 232, 175, 191]}, {"55062063": [16, 150, 8]}, {"55062067": [156, 49, 8]}, {"55062071": [64, 17]}, {"55062075": [5]}, {"55062080": [150, 8]}, {"55062083": [112, 49, 8, 255, 15, 53, 8]}, {"55062091": [48, 166, 8]}, {"55062095": [112, 146, 40]}, {"55062099": [1, 162, 8]}, {"55062103": [105, 150, 40]}, {"55062107": [2, 166, 8]}, {"55062111": [106, 142, 40]}, {"55062115": [4, 174, 8]}, {"55062119": [108, 12, 16, 11, 164, 52, 4]}, {"55062128": [12, 16, 11, 164, 52, 4]}, {"55062135": [1, 12, 16, 11, 164, 52, 4]}, {"55062143": [2, 143, 191]}, {"55062147": [16, 39, 189]}, {"55062151": [24, 3, 224]}, {"55062155": [8]}, {"55062160": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 47, 60, 145, 10]}, {"55062175": [108, 52, 1]}, {"55062179": [255, 17, 65]}, {"55062183": [5]}, {"55062188": [1, 42, 72, 33, 145, 41]}, {"55062196": [21, 32]}, {"55062199": [28]}, {"55062204": [60, 9, 128, 64, 37, 41, 47, 47, 37, 41]}, {"55062215": [1, 145, 42]}, {"55062220": [17, 64]}, {"55062223": [19]}, {"55062228": [2, 10, 88, 33, 145, 107]}, {"55062235": [116, 52, 1]}, {"55062239": [255, 17, 97, 255, 248]}, {"55062248": [146, 12]}, {"55062251": [108, 17, 138, 255, 245]}, {"55062260": [146, 12]}, {"55062263": [109, 17, 138, 255, 242]}, {"55062272": [146, 12]}, {"55062275": [110, 17, 138, 255, 239]}, {"55062284": [161, 11]}, {"55062287": [105, 161, 10]}, {"55062291": [108, 16]}, {"55062295": [4]}, {"55062300": [52, 9]}, {"55062303": [255, 161, 9]}, {"55062307": [105, 161, 9]}, {"55062311": [108, 3, 224]}, {"55062315": [8]}, {"55062320": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55062333": [1, 1, 1, 1, 1]}, {"55062339": [1, 1, 1, 1, 1]}, {"55062345": [1]}, {"55062347": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55062357": [51, 8, 33, 32, 15]}, {"55062363": [71, 21, 234]}, {"55062367": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062379": [164]}, {"55062381": [15, 122, 3, 20, 64]}, {"55062387": [5, 52, 2, 72, 48, 21, 226]}, {"55062395": [7]}, {"55062400": [36, 25]}, {"55062403": [3, 16]}, {"55062407": [4, 52, 2, 99, 17, 21, 226]}, {"55062415": [2]}, {"55062420": [36, 25]}, {"55062423": [3, 3, 224]}, {"55062427": [8]}, {"55062432": [141, 173, 138, 160, 52, 2, 128]}, {"55062440": [16, 77]}, {"55062443": [2]}, {"55062448": [16]}, {"55062451": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55062467": [1, 16, 64]}, {"55062471": [2]}, {"55062476": [16]}, {"55062479": [2, 52, 2]}, {"55062483": [1, 161, 226, 28, 191, 3, 224]}, {"55062491": [8]}, {"55062497": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062511": [164]}, {"55062513": [15, 122, 3, 20, 64]}, {"55062519": [5, 52, 2, 72, 48, 21, 226]}, {"55062527": [7]}, {"55062532": [36, 25]}, {"55062535": [3, 16]}, {"55062539": [4, 52, 2, 99, 17, 21, 226]}, {"55062547": [2]}, {"55062552": [36, 25]}, {"55062555": [3, 3, 224]}, {"55062559": [8]}] \ No newline at end of file +[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 20]}, {"11325064": [12, 16, 10, 236, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 11, 63]}, {"11427312": [12, 16, 11, 232]}, {"11881272": [12, 16, 11, 248]}, {"11882076": [12, 16, 11, 213]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 11, 30, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 11, 37, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 11, 44, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 11, 23, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 9, 228]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 9, 177]}, {"12427480": [12, 16, 9, 206]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 9, 210]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12428008": [36, 10, 255, 255]}, {"12474768": [12, 16, 10, 244, 0, 0, 0, 0]}, {"12491456": [12, 16, 9, 240]}, {"12491480": [12, 16, 9, 249]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 10, 193]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 11, 51]}, {"14357459": [118]}, {"14624335": [118]}, {"14872723": [52]}, {"15506663": [122]}, {"55055360": [90, 93, 92, 94, 81, 82, 83]}, {"55058464": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 72, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 100, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 140, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 180, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 220, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 4, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 32, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 60, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 88, 83, 65, 1, 67]}, {"55058613": [198, 21, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 68]}, {"55058629": [198, 22, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 69]}, {"55058645": [198, 23, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 70]}, {"55058661": [198, 24, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 71]}, {"55058677": [198, 25, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 93]}, {"55058693": [198, 28, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 122]}, {"55058709": [198, 29, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 249]}, {"55058725": [198, 30, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 151]}, {"55058741": [198, 32, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 10, 6]}, {"55058757": [185, 1, 3, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 28]}, {"55058773": [185, 1, 4, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 29]}, {"55058789": [185, 1, 5, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 30]}, {"55058805": [185, 1, 6, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 42]}, {"55058821": [185, 1, 7, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 97]}, {"55058837": [185, 1, 10, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 98]}, {"55058853": [184, 2]}, {"55058856": [128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 99]}, {"55058869": [184, 2, 1, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 100]}, {"55058885": [184, 2, 2, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 101]}, {"55058901": [184, 2, 3, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 124]}, {"55058917": [184, 2, 4, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 125]}, {"55058933": [184, 2, 5, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 126]}, {"55058949": [184, 2, 6, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 127]}, {"55058965": [184, 2, 7, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 162]}, {"55058981": [184, 2, 8, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 135]}, {"55058997": [184, 2, 9, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 136]}, {"55059013": [200, 4]}, {"55059016": [128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 137]}, {"55059029": [200, 4, 1, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 138]}, {"55059045": [200, 4, 2, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 139]}, {"55059061": [200, 4, 3, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 140]}, {"55059077": [200, 4, 4, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 142]}, {"55059093": [200, 4, 5, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 143]}, {"55059109": [200, 4, 6, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 163]}, {"55059125": [200, 4, 7, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 165]}, {"55059141": [200, 4, 8, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 146]}, {"55059157": [200, 4, 9, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 254, 147]}, {"55059173": [170, 3, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 148]}, {"55059189": [170, 4, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 149]}, {"55059205": [170, 5, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 166]}, {"55059221": [170, 6, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 169]}, {"55059237": [170, 7, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 155]}, {"55059253": [170, 8, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 159]}, {"55059269": [170, 11, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 160]}, {"55059285": [170, 12, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 161]}, {"55059301": [170, 13, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 61, 67, 12]}, {"55059317": [248, 255, 255, 128, 64, 37, 204, 128, 64, 36, 64, 77, 131, 9, 85]}, {"55059333": [183, 255, 255, 128, 64, 37, 196, 128, 64, 36, 64, 83, 146, 219, 230]}, {"55059349": [216, 255, 255, 128, 64, 37, 196, 128, 64, 37, 140, 83, 147, 218, 230]}, {"55059365": [216, 255, 255, 128, 64, 37, 196, 128, 64, 37, 140, 83, 148, 217, 230]}, {"55059381": [216, 255, 255, 128, 64, 37, 196, 128, 64, 37, 140, 83, 142, 224, 50]}, {"55059397": [206, 255, 255, 128, 64, 37, 196, 128, 64, 37, 168, 83, 143, 224, 50]}, {"55059413": [206, 255, 255, 128, 64, 37, 196, 128, 64, 37, 168, 83, 144, 224, 50]}, {"55059429": [206, 255, 255, 128, 64, 37, 196, 128, 64, 37, 168, 83, 140, 238, 52]}, {"55059445": [187, 255, 255, 128, 64, 37, 196, 128, 64, 36, 64, 83, 141, 238, 52]}, {"55059461": [187, 255, 255, 128, 64, 37, 196, 128, 64, 36, 64, 79, 65, 19, 233]}, {"55059477": [189, 255, 255, 128, 64, 38, 92, 128, 64, 36, 64, 79, 65, 226, 228]}, {"55059493": [205, 255, 255, 128, 64, 38, 124, 128, 64, 37, 116, 79, 65, 225, 232]}, {"55059509": [205, 255, 255, 128, 64, 38, 156, 128, 64, 36, 64, 3, 224]}, {"55059523": [8, 52, 162]}, {"55059528": [144, 136]}, {"55059531": [125, 52, 1]}, {"55059535": [255, 17, 1]}, {"55059539": [2, 52, 2]}, {"55059543": [8, 52, 2]}, {"55059547": [9, 3, 224]}, {"55059551": [8]}, {"55059556": [144, 136]}, {"55059559": [163, 49, 8]}, {"55059563": [192, 17]}, {"55059567": [5, 52, 2]}, {"55059571": [84, 52, 1]}, {"55059575": [64, 17, 1]}, {"55059579": [2, 52, 2]}, {"55059583": [53, 52, 2]}, {"55059587": [54, 3, 224]}, {"55059591": [8]}, {"55059596": [144, 136]}, {"55059599": [163, 49, 8]}, {"55059603": [24, 17]}, {"55059607": [5, 52, 2]}, {"55059611": [50, 52, 1]}, {"55059615": [8, 17, 1]}, {"55059619": [2, 52, 2]}, {"55059623": [51, 52, 2]}, {"55059627": [52, 3, 224]}, {"55059631": [8]}, {"55059636": [144, 136]}, {"55059639": [163, 49, 8]}, {"55059643": [3, 17]}, {"55059647": [5, 52, 2]}, {"55059651": [4, 52, 1]}, {"55059655": [1, 17, 1]}, {"55059659": [2, 52, 2]}, {"55059663": [48, 52, 2]}, {"55059667": [49, 3, 224]}, {"55059671": [8]}, {"55059676": [144, 136]}, {"55059679": [162, 49, 8]}, {"55059683": [192, 17]}, {"55059687": [5, 52, 2]}, {"55059691": [5, 52, 1]}, {"55059695": [64, 17, 1]}, {"55059699": [2, 52, 2]}, {"55059703": [96, 52, 2]}, {"55059707": [123, 3, 224]}, {"55059711": [8]}, {"55059716": [144, 136]}, {"55059719": [162, 49, 8]}, {"55059723": [48, 17]}, {"55059727": [2, 52, 2]}, {"55059731": [69, 52, 2]}, {"55059735": [70, 3, 224]}, {"55059739": [8]}, {"55059744": [144, 136]}, {"55059747": [162, 49, 8]}, {"55059751": [6, 17]}, {"55059755": [2, 52, 2]}, {"55059759": [55, 52, 2]}, {"55059763": [56, 3, 224]}, {"55059767": [8]}, {"55059772": [144, 136]}, {"55059775": [161, 49, 8]}, {"55059779": [32, 17]}, {"55059783": [2, 52, 2]}, {"55059787": [121, 52, 2]}, {"55059791": [122, 3, 224]}, {"55059795": [8]}, {"55059800": [144, 136]}, {"55059803": [161, 49, 8]}, {"55059807": [4, 17]}, {"55059811": [2, 52, 2]}, {"55059815": [119, 52, 2]}, {"55059819": [120, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [50, 17]}, {"55059835": [2, 52, 2]}, {"55059839": [192, 52, 2]}, {"55059843": [193, 3, 224]}, {"55059847": [8]}, {"55059852": [144, 136]}, {"55059855": [163, 49, 8]}, {"55059859": [3, 17]}, {"55059863": [2, 52, 2]}, {"55059867": [77, 52, 162]}, {"55059872": [3, 224]}, {"55059875": [8]}, {"55059880": [144, 136]}, {"55059883": [163, 49, 8]}, {"55059887": [24, 17]}, {"55059891": [2, 52, 2]}, {"55059895": [77, 52, 162]}, {"55059900": [3, 224]}, {"55059903": [8]}, {"55059908": [3, 224]}, {"55059911": [8]}, {"55059916": [52, 8]}, {"55059919": [1, 160, 136]}, {"55059923": [62, 3, 224]}, {"55059927": [8]}, {"55059932": [36, 136]}, {"55059935": [134, 36, 9, 255, 255, 37, 41]}, {"55059943": [1, 52, 1]}, {"55059947": [3]}, {"55059949": [41, 8, 42, 20, 32]}, {"55059955": [7]}, {"55059960": [1, 9, 80, 33, 145, 75]}, {"55059968": [52, 1]}, {"55059971": [255, 21, 97, 255, 247]}, {"55059980": [161, 69]}, {"55059984": [3, 224]}, {"55059987": [8]}, {"55059992": [36, 136]}, {"55059995": [168, 1, 6, 64, 33, 145, 9]}, {"55060004": [1, 37, 72, 37, 161, 9]}, {"55060012": [3, 224]}, {"55060015": [8]}, {"55060020": [36, 136]}, {"55060023": [188, 1, 5, 64, 33, 129, 9]}, {"55060032": [5, 33]}, {"55060035": [2]}, {"55060040": [52, 9]}, {"55060044": [37, 41]}, {"55060047": [1, 161, 9]}, {"55060052": [3, 224]}, {"55060055": [8]}, {"55060060": [52, 8]}, {"55060063": [1, 160, 136]}, {"55060067": [61, 52, 8]}, {"55060071": [20, 160, 136]}, {"55060075": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060087": [8]}, {"55060092": [52, 8]}, {"55060095": [1, 160, 136]}, {"55060099": [50, 160, 136]}, {"55060103": [58, 52, 8]}, {"55060107": [48, 164, 136, 19, 244, 160, 136]}, {"55060115": [51, 3, 224]}, {"55060119": [8]}, {"55060124": [52, 8]}, {"55060127": [2, 160, 136]}, {"55060131": [50, 52, 8]}, {"55060135": [1, 160, 136]}, {"55060139": [58, 160, 136]}, {"55060143": [60, 52, 8]}, {"55060147": [96, 164, 136, 19, 244, 160, 136]}, {"55060155": [51, 3, 224]}, {"55060159": [8]}, {"55060164": [48, 132]}, {"55060167": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060179": [140, 16, 129]}, {"55060183": [22, 145, 2]}, {"55060187": [117, 52, 1]}, {"55060191": [141, 16, 129]}, {"55060195": [19, 145, 2]}, {"55060199": [117, 16, 128]}, {"55060203": [17, 145, 2]}, {"55060207": [116, 52, 1]}, {"55060211": [138, 16, 129]}, {"55060215": [14, 145, 2]}, {"55060219": [116, 52, 1]}, {"55060223": [139, 16, 129]}, {"55060227": [11, 145, 2]}, {"55060231": [116, 52, 1]}, {"55060235": [88, 16, 129]}, {"55060239": [8, 52, 2]}, {"55060244": [52, 1]}, {"55060247": [120, 16, 129]}, {"55060251": [5, 52, 2]}, {"55060256": [52, 1]}, {"55060259": [121, 16, 129]}, {"55060263": [2, 52, 2]}, {"55060268": [52, 2]}, {"55060271": [255, 3, 224]}, {"55060275": [8]}, {"55060280": [143, 166]}, {"55060283": [48, 132, 197]}, {"55060287": [4, 8, 16, 9, 214]}, {"55060296": [143, 185]}, {"55060299": [44, 135, 37]}, {"55060303": [4, 8, 16, 9, 214]}, {"55060312": [60, 10, 128, 64, 37, 74, 32]}, {"55060320": [141, 75]}, {"55060323": [12, 17, 96]}, {"55060327": [2]}, {"55060332": [149, 69]}, {"55060335": [4, 60, 10, 128, 64, 37, 74, 32, 16, 161, 64]}, {"55060348": [60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060360": [3, 224]}, {"55060363": [8]}, {"55060368": [60, 8, 128, 64, 37, 8, 32]}, {"55060376": [141, 9]}, {"55060379": [12, 17, 32]}, {"55060383": [2]}, {"55060388": [129, 3]}, {"55060391": [2]}, {"55060393": [3, 15, 195]}, {"55060397": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55060411": [8]}, {"55060416": [144, 69]}, {"55060419": [3, 60, 8, 128, 64, 37, 8, 32]}, {"55060428": [141, 9]}, {"55060431": [12, 17, 32]}, {"55060435": [2]}, {"55060440": [145, 5]}, {"55060443": [3, 3, 224]}, {"55060447": [8]}, {"55060452": [143, 162]}, {"55060455": [36, 144, 69]}, {"55060460": [60, 8, 128, 64, 37, 8, 32]}, {"55060468": [141, 9]}, {"55060471": [12, 17, 32]}, {"55060475": [19]}, {"55060480": [145, 5]}, {"55060483": [1, 175, 164]}, {"55060488": [175, 165]}, {"55060491": [4, 175, 166]}, {"55060495": [8, 39, 189, 255, 232, 175, 191]}, {"55060503": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55060515": [6, 145, 6]}, {"55060519": [7, 141, 9]}, {"55060523": [8, 1, 32, 248, 9]}, {"55060532": [143, 191]}, {"55060535": [16, 39, 189]}, {"55060539": [24, 143, 164]}, {"55060544": [143, 165]}, {"55060547": [4, 143, 166]}, {"55060551": [8, 3, 224]}, {"55060555": [8]}, {"55060560": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55060571": [16, 175, 163]}, {"55060575": [20, 175, 191]}, {"55060579": [24, 12, 16, 10, 33]}, {"55060588": [143, 162]}, {"55060591": [16, 143, 163]}, {"55060595": [20, 143, 191]}, {"55060599": [24, 39, 189]}, {"55060603": [32, 3, 224]}, {"55060607": [8]}, {"55060612": [39, 189, 255, 232, 175, 191]}, {"55060619": [16, 60, 8, 128, 64, 37, 8, 32]}, {"55060628": [173]}, {"55060632": [173]}, {"55060635": [4, 173]}, {"55060639": [8, 173]}, {"55060643": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55060659": [42]}, {"55060665": [9, 15, 195, 1, 33, 32, 38]}, {"55060673": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 91]}, {"55060688": [4, 64]}, {"55060691": [34]}, {"55060696": [52, 68]}, {"55060700": [12, 16, 10, 160]}, {"55060708": [16, 96]}, {"55060711": [12]}, {"55060716": [60, 8, 128, 64, 37, 8, 32]}, {"55060724": [140, 105]}, {"55060728": [173, 9]}, {"55060732": [140, 105]}, {"55060735": [4, 173, 9]}, {"55060739": [4, 140, 105]}, {"55060743": [8, 173, 9]}, {"55060747": [8, 52, 9]}, {"55060751": [1, 173, 9]}, {"55060755": [12, 144, 98]}, {"55060760": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55060776": [52, 1]}, {"55060779": [10, 21, 65]}, {"55060783": [6]}, {"55060788": [149, 42]}, {"55060791": [28, 49, 74, 240, 31]}, {"55060797": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55060807": [28, 129, 9, 4, 36, 5, 33]}, {"55060815": [2]}, {"55060821": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55060831": [16, 39, 189]}, {"55060835": [24, 3, 224]}, {"55060839": [8]}, {"55060844": [39, 189, 255, 232, 175, 191]}, {"55060851": [16, 12, 16, 10, 105]}, {"55060860": [36, 1, 255, 255, 16, 65]}, {"55060867": [4]}, {"55060872": [52, 68]}, {"55060876": [12, 16, 10, 147]}, {"55060884": [143, 191]}, {"55060887": [16, 39, 189]}, {"55060891": [24, 3, 224]}, {"55060895": [8]}, {"55060900": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55060911": [164, 52, 8]}, {"55060916": [52, 137]}, {"55060920": [148, 170]}, {"55060924": [52, 1]}, {"55060927": [10, 21, 65]}, {"55060931": [14]}, {"55060936": [148, 171]}, {"55060939": [28, 52, 1]}, {"55060943": [16, 20, 65]}, {"55060947": [8]}, {"55060952": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55060963": [4]}, {"55060968": [36, 2, 255, 255, 16]}, {"55060975": [21]}, {"55060980": [52, 8]}, {"55060983": [1, 49, 105]}, {"55060987": [31, 52, 1]}, {"55060991": [21, 21, 65]}, {"55060995": [12]}, {"55061000": [52, 1]}, {"55061003": [62, 16, 129]}, {"55061007": [7]}, {"55061012": [52, 1]}, {"55061015": [66, 16, 129]}, {"55061019": [4]}, {"55061024": [36, 2, 255, 255, 16]}, {"55061031": [7]}, {"55061036": [52, 8]}, {"55061039": [2, 144, 169, 1, 65]}, {"55061045": [2, 18]}, {"55061049": [72, 16, 37]}, {"55061053": [2, 18]}, {"55061057": [73, 16, 37, 3, 224]}, {"55061063": [8]}, {"55061068": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061083": [4, 141, 9]}, {"55061088": [17, 32]}, {"55061091": [5]}, {"55061097": [9, 82, 2, 21, 68, 255, 250]}, {"55061108": [49, 34]}, {"55061111": [255, 3, 224]}, {"55061115": [8]}, {"55061120": [39, 189, 255, 224, 175, 176]}, {"55061127": [16, 175, 177]}, {"55061131": [20, 175, 191]}, {"55061135": [24, 52, 130]}, {"55061140": [52, 80]}, {"55061144": [38, 8, 255, 128, 5]}, {"55061151": [18]}, {"55061156": [60, 17, 128, 64, 38, 49, 32, 32, 52, 9]}, {"55061167": [16, 1, 9]}, {"55061171": [24]}, {"55061174": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061192": [142, 40]}, {"55061195": [12, 1]}, {"55061198": [248, 9]}, {"55061204": [20, 80, 255, 239]}, {"55061212": [54, 35]}, {"55061216": [16]}, {"55061219": [2]}, {"55061224": [52, 3]}, {"55061228": [143, 176]}, {"55061231": [16, 143, 177]}, {"55061235": [20, 143, 191]}, {"55061239": [24, 39, 189]}, {"55061243": [32, 3, 224]}, {"55061247": [8]}, {"55061252": [140, 136, 29, 44, 52, 9]}, {"55061259": [1]}, {"55061261": [9, 78]}, {"55061264": [1, 9, 16, 36, 16, 64]}, {"55061271": [36]}, {"55061276": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55061291": [164, 52, 1]}, {"55061295": [61, 17, 129]}, {"55061299": [10]}, {"55061305": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55061315": [25]}, {"55061320": [52, 13]}, {"55061323": [1, 161, 141, 29, 40, 37, 74]}, {"55061331": [3, 16]}, {"55061335": [9]}, {"55061340": [52, 12]}, {"55061343": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55061359": [14]}, {"55061364": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 20, 1, 1, 10, 64, 33, 129, 8]}, {"55061400": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061412": [52, 2]}, {"55061416": [3, 224]}, {"55061419": [8]}, {"55061424": [60, 8, 128, 64, 37, 8, 20]}, {"55061432": [129, 8]}, {"55061436": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061448": [3, 224]}, {"55061451": [8]}, {"55061456": [175, 164]}, {"55061459": [104, 175, 165]}, {"55061463": [108, 175, 166]}, {"55061467": [112, 175, 167]}, {"55061471": [116, 39, 189, 255, 232, 175, 163]}, {"55061479": [16, 175, 191]}, {"55061483": [20, 60, 8, 128, 64, 37, 8, 32, 16, 129, 8]}, {"55061496": [17]}, {"55061499": [14]}, {"55061504": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55061515": [1, 165, 42]}, {"55061520": [60, 9, 128, 65, 52, 10]}, {"55061527": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 33]}, {"55061556": [143, 163]}, {"55061559": [16, 143, 191]}, {"55061563": [20, 39, 189]}, {"55061567": [24, 143, 164]}, {"55061571": [104, 143, 165]}, {"55061575": [108, 143, 166]}, {"55061579": [112, 143, 167]}, {"55061583": [116, 132, 110, 19, 196, 3, 224]}, {"55061591": [8]}, {"55061596": [147, 25]}, {"55061599": [116, 52, 1]}, {"55061603": [255, 23, 33]}, {"55061607": [2]}, {"55061612": [52, 25]}, {"55061615": [44, 3, 224]}, {"55061619": [8, 167, 185]}, {"55061623": [154, 147, 44]}, {"55061627": [116, 52, 1]}, {"55061631": [255, 21, 129]}, {"55061635": [2]}, {"55061640": [52, 12]}, {"55061643": [44, 3, 224]}, {"55061647": [8]}, {"55061652": [145, 174]}, {"55061655": [116, 52, 1]}, {"55061659": [255, 21, 193]}, {"55061663": [2]}, {"55061668": [52, 14]}, {"55061671": [44, 3, 224]}, {"55061675": [8, 167, 174]}, {"55061679": [154, 145, 207]}, {"55061683": [116, 52, 1]}, {"55061687": [255, 21, 225]}, {"55061691": [2]}, {"55061696": [52, 15]}, {"55061699": [44, 3, 224]}, {"55061703": [8, 167, 175]}, {"55061707": [154, 60, 8, 128, 64, 37, 8, 32, 20, 142, 9]}, {"55061719": [104, 173, 9]}, {"55061724": [142, 9]}, {"55061727": [108, 173, 9]}, {"55061731": [4, 150, 9]}, {"55061735": [112, 165, 9]}, {"55061739": [8, 150, 9]}, {"55061743": [156, 165, 9]}, {"55061747": [10, 3, 224]}, {"55061751": [8, 142, 14]}, {"55061755": [4, 39, 189, 255, 224, 175, 176]}, {"55061763": [16, 175, 177]}, {"55061767": [20, 175, 191]}, {"55061771": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 20, 142, 8]}, {"55061791": [4, 17]}, {"55061795": [5]}, {"55061800": [12, 16, 11, 105]}, {"55061808": [16]}, {"55061811": [3]}, {"55061816": [12, 16, 11, 124]}, {"55061824": [12, 16, 11, 92, 52, 4]}, {"55061832": [12, 16, 11, 92, 52, 4]}, {"55061839": [1, 12, 16, 11, 92, 52, 4]}, {"55061847": [2, 143, 176]}, {"55061851": [16, 143, 177]}, {"55061855": [20, 143, 191]}, {"55061859": [24, 39, 189]}, {"55061863": [32, 3, 224]}, {"55061867": [8]}, {"55061872": [2, 4, 64, 33, 145, 9]}, {"55061879": [108, 52, 1]}, {"55061883": [255, 17, 33]}, {"55061887": [7]}, {"55061892": [2, 9, 72, 33, 145, 41]}, {"55061899": [116, 52, 1]}, {"55061903": [44, 17, 33]}, {"55061907": [2]}, {"55061912": [161, 9]}, {"55061915": [105, 3, 224]}, {"55061919": [8]}, {"55061924": [39, 189, 255, 232, 175, 191]}, {"55061931": [16, 142, 40]}, {"55061936": [174, 8]}, {"55061939": [64, 142, 40]}, {"55061943": [4, 174, 8]}, {"55061947": [68, 150, 40]}, {"55061951": [8, 166, 8]}, {"55061955": [72, 162]}, {"55061958": [15, 51, 146, 8]}, {"55061963": [74, 52, 1]}, {"55061967": [255, 21, 1]}, {"55061971": [3]}, {"55061976": [12, 16, 11, 138]}, {"55061984": [143, 191]}, {"55061987": [16, 39, 189]}, {"55061991": [24, 3, 224]}, {"55061995": [8]}, {"55062000": [142, 8]}, {"55062003": [64, 174, 8]}, {"55062007": [104, 142, 8]}, {"55062011": [68, 174, 8]}, {"55062015": [108, 150, 8]}, {"55062019": [72, 166, 8]}, {"55062023": [112, 146, 8]}, {"55062027": [104, 52, 1]}, {"55062031": [255, 21, 1]}, {"55062035": [3]}, {"55062040": [52, 8]}, {"55062043": [1, 162, 8, 15, 51, 3, 224]}, {"55062051": [8]}, {"55062056": [39, 189, 255, 232, 175, 191]}, {"55062063": [16, 150, 8]}, {"55062067": [156, 49, 8]}, {"55062071": [64, 17]}, {"55062075": [5]}, {"55062080": [150, 8]}, {"55062083": [112, 49, 8, 255, 15, 53, 8]}, {"55062091": [48, 166, 8]}, {"55062095": [112, 146, 40]}, {"55062099": [1, 162, 8]}, {"55062103": [105, 150, 40]}, {"55062107": [2, 166, 8]}, {"55062111": [106, 142, 40]}, {"55062115": [4, 174, 8]}, {"55062119": [108, 12, 16, 11, 164, 52, 4]}, {"55062128": [12, 16, 11, 164, 52, 4]}, {"55062135": [1, 12, 16, 11, 164, 52, 4]}, {"55062143": [2, 143, 191]}, {"55062147": [16, 39, 189]}, {"55062151": [24, 3, 224]}, {"55062155": [8]}, {"55062160": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 47, 60, 145, 10]}, {"55062175": [108, 52, 1]}, {"55062179": [255, 17, 65]}, {"55062183": [5]}, {"55062188": [1, 42, 72, 33, 145, 41]}, {"55062196": [21, 32]}, {"55062199": [28]}, {"55062204": [60, 9, 128, 64, 37, 41, 47, 47, 37, 41]}, {"55062215": [1, 145, 42]}, {"55062220": [17, 64]}, {"55062223": [19]}, {"55062228": [2, 10, 88, 33, 145, 107]}, {"55062235": [116, 52, 1]}, {"55062239": [255, 17, 97, 255, 248]}, {"55062248": [146, 12]}, {"55062251": [108, 17, 138, 255, 245]}, {"55062260": [146, 12]}, {"55062263": [109, 17, 138, 255, 242]}, {"55062272": [146, 12]}, {"55062275": [110, 17, 138, 255, 239]}, {"55062284": [161, 11]}, {"55062287": [105, 161, 10]}, {"55062291": [108, 16]}, {"55062295": [4]}, {"55062300": [52, 9]}, {"55062303": [255, 161, 9]}, {"55062307": [105, 161, 9]}, {"55062311": [108, 3, 224]}, {"55062315": [8]}, {"55062320": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55062333": [1, 1, 1, 1, 1]}, {"55062339": [1, 1, 1, 1, 1]}, {"55062345": [1]}, {"55062347": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55062357": [51, 8, 33, 32, 15]}, {"55062363": [71, 21, 234]}, {"55062367": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062379": [164]}, {"55062381": [15, 122, 3, 20, 64]}, {"55062387": [5, 52, 2, 72, 48, 21, 226]}, {"55062395": [7]}, {"55062400": [36, 25]}, {"55062403": [3, 16]}, {"55062407": [4, 52, 2, 99, 17, 21, 226]}, {"55062415": [2]}, {"55062420": [36, 25]}, {"55062423": [3, 3, 224]}, {"55062427": [8]}, {"55062432": [141, 173, 138, 160, 52, 2, 128]}, {"55062440": [16, 77]}, {"55062443": [2]}, {"55062448": [16]}, {"55062451": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55062467": [1, 16, 64]}, {"55062471": [2]}, {"55062476": [16]}, {"55062479": [2, 52, 2]}, {"55062483": [1, 161, 226, 28, 191, 3, 224]}, {"55062491": [8]}, {"55062497": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062511": [164]}, {"55062513": [15, 122, 3, 20, 64]}, {"55062519": [5, 52, 2, 72, 48, 21, 226]}, {"55062527": [7]}, {"55062532": [36, 25]}, {"55062535": [3, 16]}, {"55062539": [4, 52, 2, 99, 17, 21, 226]}, {"55062547": [2]}, {"55062552": [36, 25]}, {"55062555": [3, 3, 224]}, {"55062559": [8]}] \ No newline at end of file From baa6a1d837c5e8c8d305c96a56d2c0e2e20540dc Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Sat, 30 Jun 2018 08:02:28 -0500 Subject: [PATCH 063/755] Updated the README with bombchu and keysanity info. --- README.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/README.md b/README.md index c1cb65b2c..c4c18abab 100644 --- a/README.md +++ b/README.md @@ -424,6 +424,21 @@ Options for speeding up carpenter rescue portion of Gerudo Fortress - fast: Only the carpenter nearest to the prison Link is tossed into needs to be freed to obtain the Gerudo Card and get all of its benefits; the other three carpenters are freed from the start - open: All carpenters are freed from the start, and you start with the Gerudo Card and all of its benefits (and thus the bridge across the valley is always built) +## Bombchus + +Bombchus are now considered in logic. That is, once you've found bombchus, you can be expected to use them as explosives, hit switches, etc. to make progress in the seed. In order to have this make sense, the following changes were made: + +- The back alley bombchu shop will now stock bombchus once you have bombchus in your inventory (even if you have 0). All options in this shop no longer sell out, and the right shelf's bottom-left pack is a sale of 5 bombchus for 60 rupees. Thus, once you have found bombchus, you can always buy more. +- Bomchu Bowling is now playable only once you have bombchus in your inventory. This gives bombchus some unique power beyond the spirit trial, and also keeps them better self-contained (since you win bombchus from this mini-game). + +As a note, if you have access to the Wasteland carpet salesman and have a wallet upgrade, you can buy bombchus from him to get your first pack. + +## Keysanity + +Dungeon items (maps, compasses, small keys, boss keys) are shuffled into the item pool at large. + +This was actually mostly implemented, I just pulled the trigger... + ## Changed hint system The hint system has been changed to include different kinds of hints (such as saying a location has something good, but not saying what item it is, or saying a specific item is somewhere in a dungeon, instead of giving the specific location, and so on.) An option has been added to allow talking to gossip stones from the start. Yes, this makes the Stone of Agony completely useless. From 6e451598ab245303dd31d5e39093d81bc0c0cc5a Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Sat, 30 Jun 2018 08:05:27 -0500 Subject: [PATCH 064/755] Added GUI settings saving note in the README. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c4c18abab..cc4697c54 100644 --- a/README.md +++ b/README.md @@ -402,6 +402,7 @@ The following were added or majorly changed on this fork: - Seeds can be text instead of just numbers - Can get, share, and import a settings string to quickly set seed-changing options +- Options are saved when closing the GUI and loaded when opening it ## Optional Logic changes From 560c7abd0732f61f0825bea4e6f106fe6d630853 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Sat, 30 Jun 2018 11:14:17 -0500 Subject: [PATCH 065/755] Cut up our custom logic into detailed individual options, and added these in the GUI in a new tab. --- BaseClasses.py | 3 + Gui.py | 90 +++++++++++++++++++++++++++--- HintList.py | 45 +++++++++------ Hints.py | 8 +-- Rules.py | 147 ++++++++++++++++--------------------------------- Settings.py | 91 +++++++++++++++++++++++++++++- 6 files changed, 253 insertions(+), 131 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index acb972aca..803240718 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -316,6 +316,9 @@ def can_dive(self): def can_lift_rocks(self): return (self.has('Silver Gauntlets') or self.has('Gold Gauntlets')) and self.is_adult() + def can_see_with_lens(self): + return (self.has('Magic Meter') and self.has('Lens of Truth') and self.world.logic_lens == 'all') + def has_GoronTunic(self): return (self.has('Goron Tunic') or (self.has('Progressive Wallet') and (self.has('Bomb Bag') or self.has('Progressive Strength Upgrade') or self.has('Bow')))) diff --git a/Gui.py b/Gui.py index 9124e2429..1215385b5 100644 --- a/Gui.py +++ b/Gui.py @@ -71,9 +71,11 @@ def guiMain(settings=None): notebook = ttk.Notebook(mainWindow) randomizerWindow = ttk.Frame(notebook) + logicWindow = ttk.Frame(notebook) adjustWindow = ttk.Frame(notebook) customWindow = ttk.Frame(notebook) notebook.add(randomizerWindow, text='Randomize') + notebook.add(logicWindow, text='Detailed Logic') # Shared Controls @@ -100,11 +102,17 @@ def MakeRadioList(parent, data): lable_frame = LabelFrame(parent, text=data["name"], labelanchor=NW) # create a variable to hold the result of the user's decision radio_var = StringVar(value=data["default"]); + # setup orientation + side = TOP + anchor = W + if "horizontal" in data and data["horizontal"]: + side = LEFT + anchor = N # add the radio buttons for option in data["options"]: radio_button = Radiobutton(lable_frame, text=option["description"], value=option["value"], variable=radio_var, justify=LEFT, wraplength=data["wraplength"]) - radio_button.pack(side=TOP, anchor=W) + radio_button.pack(side=side, anchor=anchor) # return the frame so it can be packed, and the var so it can be used return (lable_frame, radio_var) @@ -120,14 +128,31 @@ def MakeRadioList(parent, data): "create_spoiler": { "text": "Create Spoiler Log", "group": "output", "default": "checked" }, "suppress_rom": { "text": "Do not create patched Rom", "group": "output", "default": "unchecked" }, "compress_rom": { "text": "Compress patched Rom", "group": "output", "default": "unchecked" }, + "open_forest": { "text": "Open Forest", "group": "logic", "default": "unchecked" }, "open_door_of_time": { "text": "Open Door of Time", "group": "logic", "default": "unchecked" }, "fast_ganon": { "text": "Skip most of Ganon's Castle", "group": "logic", "default": "unchecked" }, "keysanity": { "text": "Keysanity", "group": "logic", "default": "unchecked" }, "nodungeonitems": { "text": "Remove Maps and Compasses", "group": "logic", "default": "unchecked" }, "beatableonly": { "text": "Only ensure seed is beatable", "group": "logic", "default": "unchecked" }, - "custom_logic": { "text": "Use this fork's custom logic", "group": "logic", "default": "unchecked" }, + "ocarina_songs": { "text": "Randomize ocarina song notes", "group": "other", "default": "unchecked" }, + + "logic_no_big_poes": { "text": "No Big Poes", "group": "rewards", "default": "unchecked" }, + "logic_no_trade_skull_mask": { "text": "No Skull Mask reward", "group": "rewards", "default": "unchecked" }, + "logic_no_trade_mask_of_truth": { "text": "No Mask of Truth reward", "group": "rewards", "default": "unchecked" }, + "logic_no_trade_biggoron": { "text": "No Biggoron reward", "group": "rewards", "default": "unchecked" }, + "logic_no_child_fishing": { "text": "No Child Fishing", "group": "rewards", "default": "unchecked" }, + "logic_no_adult_fishing": { "text": "No Adult Fishing", "group": "rewards", "default": "unchecked" }, + "logic_no_memory_game": { "text": "No Lost Woods Memory Game", "group": "rewards", "default": "unchecked" }, + "logic_no_second_dampe_race": { "text": "No Racing Dampe a second time", "group": "rewards", "default": "unchecked" }, + "logic_no_1500_archery": { "text": "No 1500 Horseback Archery", "group": "rewards", "default": "unchecked" }, + + "logic_man_on_roof": { "text": "Man on Roof without Hookshot", "group": "tricks", "default": "unchecked" }, + "logic_child_deadhand": { "text": "Child Deadhand without Kokiri Sword", "group": "tricks", "default": "unchecked" }, + "logic_dc_jump": { "text": "Dodongo's Cavern spike trap room jump without Hover Boots", "group": "tricks", "default": "unchecked" }, + "logic_impa_house": { "text": "Impa House (cow cage) as adult with nothing", "group": "tricks", "default": "unchecked" }, + "logic_windmill_hp": { "text": "Windmill HP as adult with nothing", "group": "tricks", "default": "unchecked" }, } # radio list has a name, a list of options, and a default option bridge_requirements_data = { @@ -172,6 +197,30 @@ def MakeRadioList(parent, data): "default": "none", "wraplength": 240, } + skulltula_data = { + "name": "Number of maximum expected skulltula tokens", + "options": [ + { "value": "none", "description": "None" }, + { "value": "10", "description": "10" }, + { "value": "20", "description": "20" }, + { "value": "30", "description": "30" }, + { "value": "40", "description": "40" }, + { "value": "50", "description": "50" }, + ], + "default": "50", + "wraplength": 240, + "horizontal": True + } + lens_data = { + "name": "Lens of Truth", + "options": [ + { "value": "all", "description": "Expected everywhere it is expected in the base game" }, + { "value": "chest-wasteland", "description": "Expected only to cross the Wasteland and clear the Chest Minigame" }, + { "value": "chest", "description": "Expected for only the Chest Minigame" }, + ], + "default": "all", + "wraplength": 200, + } # dropdown info color_options = get_tunic_color_options() navi_options = get_navi_color_options() @@ -192,6 +241,8 @@ def MakeRadioList(parent, data): # hierarchy ############ + # Randomize tab + checkAndRadioFrame = Frame(randomizerWindow) if True: # just indenting for hierarchy clarity leftSideChecks = Frame(checkAndRadioFrame) @@ -216,9 +267,22 @@ def MakeRadioList(parent, data): aestheticBottomFrame = Frame(aestheticLeftFrame) aestheticRightFrame = Frame(aestheticFrame) - settingsFrame = Frame(randomizerWindow) + # Logic tab + logicLeftFrame = Frame(logicWindow) + if True: # just indenting for hierarchy clarity + (skulltulaFrame, guivars['logic_skulltulas']) = MakeRadioList(logicLeftFrame, skulltula_data) + rewardsFrame = LabelFrame(logicLeftFrame, text='Remove some specific locations', labelanchor=NW) + + logicRightFrame = Frame(logicWindow) + if True: # just indenting for hierarchy clarity + tricksFrame = LabelFrame(logicRightFrame, text='Specific expected tricks', labelanchor=NW) + (lensFrame, guivars['logic_lens']) = MakeRadioList(logicRightFrame, lens_data) + + # shared + settingsFrame = Frame(mainWindow) + + generateSeedFrame = Frame(mainWindow) - generateSeedFrame = Frame(randomizerWindow) # build gui ############ @@ -231,8 +295,9 @@ def MakeRadioList(parent, data): # create a variable to access the box's state guivars[var_name] = IntVar(value=default_value) # create the checkbox - parent = { 'output': outputOptionsFrame, 'logic': logicOptionsFrame, 'other': otherOptionsFrame}[info["group"]] # sorry, this is gross; I was reaching my limit - checkboxes[var_name] = Checkbutton(parent, text=info["text"], variable=guivars[var_name]) + parent = { 'output': outputOptionsFrame, 'logic': logicOptionsFrame, 'other': otherOptionsFrame, + 'rewards': rewardsFrame, 'tricks': tricksFrame}[info["group"]] # sorry, this is gross; I was reaching my limit + checkboxes[var_name] = Checkbutton(parent, text=info["text"], variable=guivars[var_name], justify=LEFT, wraplength=250) checkboxes[var_name].pack(expand=True, anchor=W) # create the dropdowns @@ -253,6 +318,8 @@ def MakeRadioList(parent, data): dropdownFrames[var_name].pack(expand=True, side=LEFT, anchor=N, padx=3, pady=3) # pack the hierarchy + + # Ranomize tab outputOptionsFrame.pack(fill=BOTH, expand=True, anchor=E, side=TOP, pady=5) textShuffleFrame.pack(fill=BOTH, expand=True, anchor=E, side=BOTTOM, pady=5) leftSideChecks.pack(fill=BOTH, expand=True, anchor=N, side=LEFT, padx=5) @@ -273,7 +340,16 @@ def MakeRadioList(parent, data): aestheticBottomFrame.pack(fill=BOTH, expand=True, anchor=W, side=BOTTOM, pady=5) aestheticRightFrame.pack(fill=BOTH, expand=True, anchor=N, side=RIGHT) aestheticLeftFrame.pack(fill=BOTH, expand=True, anchor=N, side=LEFT) - aestheticFrame.pack(fill=BOTH, anchor=W, padx=5) + aestheticFrame.pack(fill=BOTH, anchor=W, padx=5, pady=(0,5)) + + # Logic tab + skulltulaFrame.pack(anchor=W, side=TOP, pady=(5,0)) + rewardsFrame.pack(fill=BOTH, expand=True, anchor=W, side=TOP, pady=(5,0)) + logicLeftFrame.pack(fill=BOTH, expand=True, anchor=N, side=LEFT, pady=(0,5), padx=(5,0)) + + tricksFrame.pack(fill=BOTH, expand=True, anchor=W, side=TOP, pady=(5,0)) + lensFrame.pack(fill=BOTH, expand=True, anchor=W, side=TOP, pady=(5,0)) + logicRightFrame.pack(fill=BOTH, expand=True, anchor=N, side=LEFT, pady=(0,5), padx=(5, 230)) diff --git a/HintList.py b/HintList.py index 0756f7a24..13110c205 100644 --- a/HintList.py +++ b/HintList.py @@ -20,12 +20,11 @@ def getHint(string): ret = Hint(hint, text, type) return ret -def getHintGroup(string, shouldExclude=False): +def getHintGroup(string, world): ret = [] for hint in hintTable: text, type = hintTable[hint] - if type == string and \ - not (shouldExclude and hint in hintExclusions): + if type == string and not (hint in hintExclusions(world)): ret.append(Hint(hint, text, type)) return ret @@ -262,16 +261,30 @@ def getHintGroup(string, shouldExclude=False): } # exclusions from the list for custom logic -hintExclusions = [ - 'Deku Theater Skull Mask', - 'Deku Theater Mask of Truth', - 'Biggoron', - 'Child Fishing', - 'Adult Fishing', - '10 Gold Skulltulla Reward', - '20 Gold Skulltulla Reward', - '30 Gold Skulltulla Reward', - '40 Gold Skulltulla Reward', - '50 Gold Skulltulla Reward', - '10 Big Poes', -] \ No newline at end of file + +def hintExclusions(world): + expected_skulltulas = {'none': 0, '10': 10, '20': 20, '30': 30, '40': 40, '50': 50}[world.logic_skulltulas] + exclusions = [] + if world.logic_no_trade_skull_mask: + exclusions.append('Deku Theater Skull Mask') + if world.logic_no_trade_mask_of_truth: + exclusions.append('Deku Theater Mask of Truth') + if world.logic_no_trade_biggorn: + exclusions.append('Biggoron') + if world.logic_no_trade_child_fishing: + exclusions.append('Child Fishing') + if world.logic_no_trade_adult_fishing: + exclusions.append('Adult Fishing') + if world.logic_no_big_poes: + exclusions.append('10 Big Poes') + if expected_skulltulas < 50: + exclusions.append('50 Gold Skulltulla Reward') + if expected_skulltulas < 40: + exclusions.append('40 Gold Skulltulla Reward') + if expected_skulltulas < 30: + exclusions.append('30 Gold Skulltulla Reward') + if expected_skulltulas < 20: + exclusions.append('20 Gold Skulltulla Reward') + if expected_skulltulas < 10: + exclusions.append('10 Gold Skulltulla Reward') + return exclusions \ No newline at end of file diff --git a/Hints.py b/Hints.py index a4f58d295..bcf61766d 100644 --- a/Hints.py +++ b/Hints.py @@ -161,7 +161,7 @@ def buildGossipHints(world, rom): checkedLocations = [] # Add required location hints - alwaysLocations = getHintGroup('alwaysLocation', world.custom_logic) + alwaysLocations = getHintGroup('alwaysLocation', world) for hint in alwaysLocations: for locationWorld in world.get_locations(): if hint.name == locationWorld.name: @@ -172,7 +172,7 @@ def buildGossipHints(world, rom): # Add good location hints - sometimesLocations = getHintGroup('location', world.custom_logic) + sometimesLocations = getHintGroup('location', world) for _ in range(0, random.randint(9,10) - len(alwaysLocations)): hint = random.choice(sometimesLocations) # Repick if location isn't new @@ -235,7 +235,7 @@ def buildGossipHints(world, rom): stoneAddresses.pop(0), rom) # fill the remaining hints with junk - junkHints = getHintGroup('junkHint') + junkHints = getHintGroup('junkHint', world) random.shuffle(junkHints) while stoneAddresses: junkHint = junkHints.pop() @@ -313,7 +313,7 @@ def buildGanonText(world, rom): Block_code = [] # lines before battle, 160 characters max - ganonLines = getHintGroup('ganonLine') + ganonLines = getHintGroup('ganonLine', world) random.shuffle(ganonLines) Block_code = getBytes(ganonLines.pop().text) endText(Block_code) diff --git a/Rules.py b/Rules.py index e62f02cf5..e0590c3f3 100644 --- a/Rules.py +++ b/Rules.py @@ -50,6 +50,9 @@ def item_name(state, location): def global_rules(world): + + expected_skulltulas = {'none': 0, '10': 10, '20': 20, '30': 30, '40': 40, '50': 50}[world.logic_skulltulas] + # ganon can only carry triforce world.get_location('Ganon').item_rule = lambda item: item.name == 'Triforce' @@ -61,38 +64,38 @@ def global_rules(world): set_rule(world.get_entrance('Lost Woods Bridge'), lambda state: world.open_forest or (state.has('Slingshot') and state.has('Kokiri Sword'))) set_rule(world.get_entrance('Deku Tree Basement Path'), lambda state: state.has('Slingshot')) set_rule(world.get_location('Skull Kid'), lambda state: state.has('Sarias Song')) - set_rule(world.get_location('Ocarina Memory Game'), lambda state: state.has('Fairy Ocarina') or state.has('Ocarina of Time')) + set_rule(world.get_location('Ocarina Memory Game'), lambda state: (world.logic_no_memory_game) and (state.has('Fairy Ocarina') or state.has('Ocarina of Time'))) set_rule(world.get_location('Target in Woods'), lambda state: state.has('Slingshot')) - set_rule(world.get_location('Deku Theater Skull Mask'), lambda state: state.has('Zeldas Letter')) - set_rule(world.get_location('Deku Theater Mask of Truth'), lambda state: state.has('Zeldas Letter') and state.has('Sarias Song') and state.has('Kokiri Emerald') and state.has('Goron Ruby') and state.has('Zora Sapphire') and state.guarantee_hint()) #Must befriend Skull Kid to sell Skull Mask, all stones to spawn running man. + set_rule(world.get_location('Deku Theater Skull Mask'), lambda state: (not world.logic_no_trade_skull_mask) and state.has('Zeldas Letter')) + set_rule(world.get_location('Deku Theater Mask of Truth'), lambda state: (not world.logic_no_trade_mask_of_truth) and (state.has('Zeldas Letter') and state.has('Sarias Song') and state.has('Kokiri Emerald') and state.has('Goron Ruby') and state.has('Zora Sapphire') and state.guarantee_hint())) #Must befriend Skull Kid to sell Skull Mask, all stones to spawn running man. set_rule(world.get_location('Anju as Adult'), lambda state: state.is_adult()) - set_rule(world.get_location('Man on Roof'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('Impa House Freestanding PoH'), lambda state: (state.has('Progressive Hookshot') and state.is_adult()) or state.has_explosives()) - set_rule(world.get_location('10 Gold Skulltulla Reward'), lambda state: state.has('Gold Skulltulla Token', 10)) - set_rule(world.get_location('20 Gold Skulltulla Reward'), lambda state: state.has('Gold Skulltulla Token', 20)) - set_rule(world.get_location('30 Gold Skulltulla Reward'), lambda state: state.has('Gold Skulltulla Token', 30) and state.guarantee_hint()) - set_rule(world.get_location('40 Gold Skulltulla Reward'), lambda state: state.has('Gold Skulltulla Token', 40) and state.guarantee_hint()) - set_rule(world.get_location('50 Gold Skulltulla Reward'), lambda state: state.has('Gold Skulltulla Token', 50) and state.guarantee_hint()) + set_rule(world.get_location('Man on Roof'), lambda state: world.logic_man_on_roof or (state.has('Progressive Hookshot') and state.is_adult())) + set_rule(world.get_location('Impa House Freestanding PoH'), lambda state: ( (world.logic_impa_house or state.has('Progressive Hookshot')) and state.is_adult()) or state.has_explosives()) + set_rule(world.get_location('10 Gold Skulltulla Reward'), lambda state: (expected_skulltulas >= 10) and state.has('Gold Skulltulla Token', 10)) + set_rule(world.get_location('20 Gold Skulltulla Reward'), lambda state: (expected_skulltulas >= 20) and state.has('Gold Skulltulla Token', 20)) + set_rule(world.get_location('30 Gold Skulltulla Reward'), lambda state: (expected_skulltulas >= 30) and state.has('Gold Skulltulla Token', 30) and state.guarantee_hint()) + set_rule(world.get_location('40 Gold Skulltulla Reward'), lambda state: (expected_skulltulas >= 40) and state.has('Gold Skulltulla Token', 40) and state.guarantee_hint()) + set_rule(world.get_location('50 Gold Skulltulla Reward'), lambda state: (expected_skulltulas >= 50) and state.has('Gold Skulltulla Token', 50) and state.guarantee_hint()) set_rule(world.get_location('Heart Piece Grave Chest'), lambda state: state.has('Suns Song')) set_rule(world.get_entrance('Composer Grave'), lambda state: state.has('Zeldas Lullaby')) set_rule(world.get_location('Composer Grave Chest'), lambda state: state.has_fire_source()) set_rule(world.get_entrance('Bottom of the Well'), lambda state: state.has('Song of Storms')) - set_rule(world.get_location('Bottom of the Well Front Left Hidden Wall'), lambda state: state.has('Lens of Truth') and state.has('Magic Meter')) + set_rule(world.get_location('Bottom of the Well Front Left Hidden Wall'), lambda state: state.can_see_with_lens()) set_rule(world.get_location('Bottom of the Well Front Center Bombable'), lambda state: state.has_explosives()) - set_rule(world.get_location('Bottom of the Well Right Bottom Hidden Wall'), lambda state: state.has('Lens of Truth') and state.has('Magic Meter')) - set_rule(world.get_location('Bottom of the Well Center Large Chest'), lambda state: state.has('Lens of Truth') and state.has('Magic Meter')) - set_rule(world.get_location('Bottom of the Well Center Small Chest'), lambda state: state.has('Lens of Truth') and state.has('Magic Meter')) + set_rule(world.get_location('Bottom of the Well Right Bottom Hidden Wall'), lambda state: state.can_see_with_lens()) + set_rule(world.get_location('Bottom of the Well Center Large Chest'), lambda state: state.can_see_with_lens()) + set_rule(world.get_location('Bottom of the Well Center Small Chest'), lambda state: state.can_see_with_lens()) set_rule(world.get_location('Bottom of the Well Back Left Bombable'), lambda state: state.has_explosives()) - set_rule(world.get_location('Bottom of the Well Defeat Boss'), lambda state: state.has('Zeldas Lullaby') and state.has('Kokiri Sword')) #Sword not strictly necessary but frankly being forced to do this with sticks isn't fair - set_rule(world.get_location('Bottom of the Well Invisible Chest'), lambda state: state.has('Zeldas Lullaby') and state.has('Lens of Truth') and state.has('Magic Meter')) + set_rule(world.get_location('Bottom of the Well Defeat Boss'), lambda state: state.has('Zeldas Lullaby') and (state.has('Kokiri Sword') or world.logic_child_deadhand)) #Sword not strictly necessary but frankly being forced to do this with sticks isn't fair + set_rule(world.get_location('Bottom of the Well Invisible Chest'), lambda state: state.has('Zeldas Lullaby') and state.can_see_with_lens()) set_rule(world.get_location('Bottom of the Well Underwater Front Chest'), lambda state: state.has('Zeldas Lullaby')) set_rule(world.get_location('Bottom of the Well Underwater Left Chest'), lambda state: state.has('Zeldas Lullaby')) set_rule(world.get_location('Bottom of the Well Basement Chest'), lambda state: state.has_explosives()) - set_rule(world.get_location('Bottom of the Well Locked Pits'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Lens of Truth') and state.has('Magic Meter')) #These pits are really unfair. - set_rule(world.get_location('Bottom of the Well Behind Right Grate'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Lens of Truth') and state.has('Magic Meter')) + set_rule(world.get_location('Bottom of the Well Locked Pits'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.can_see_with_lens()) #These pits are really unfair. + set_rule(world.get_location('Bottom of the Well Behind Right Grate'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.can_see_with_lens()) set_rule(world.get_entrance('Death Mountain Entrance'), lambda state: state.has('Zeldas Letter') or state.is_adult()) set_rule(world.get_location('Death Mountain Bombable Chest'), lambda state: state.can_blast_or_smash()) - set_rule(world.get_location('Biggoron'), lambda state: state.can_blast_or_smash() and state.is_adult() and state.can_finish_adult_trades() and state.guarantee_hint()) + set_rule(world.get_location('Biggoron'), lambda state: (not world.logic_no_trade_biggoron) and (state.can_blast_or_smash() and state.is_adult() and state.can_finish_adult_trades() and state.guarantee_hint())) set_rule(world.get_location('Goron City Leftmost Maze Chest'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade', 2) or state.has('Hammer'))) set_rule(world.get_location('Goron City Left Maze Chest'), lambda state: state.can_blast_or_smash() or (state.has('Progressive Strength Upgrade', 2) and state.is_adult())) set_rule(world.get_location('Goron City Right Maze Chest'), lambda state: state.can_blast_or_smash() or (state.has('Progressive Strength Upgrade', 2) and state.is_adult())) @@ -104,8 +107,8 @@ def global_rules(world): set_rule(world.get_entrance('Dodongos Cavern Rocks'), lambda state: state.can_blast_or_smash() or state.has('Progressive Strength Upgrade') or state.is_adult()) set_rule(world.get_entrance('Dodongos Cavern Lobby'), lambda state: state.can_blast_or_smash() or state.has('Progressive Strength Upgrade')) set_rule(world.get_entrance('Dodongos Cavern Left Door'), lambda state: state.has_explosives() or state.has('Progressive Strength Upgrade') or (state.has('Dins Fire') and state.has('Magic Meter'))) - set_rule(world.get_entrance('Dodongos Cavern Slingshot Target'), lambda state: state.has('Slingshot') or ((state.has('Bow') or state.has('Hover Boots')) and state.is_adult())) - set_rule(world.get_location('Dodongos Cavern End of Bridge Chest'), lambda state: state.has_explosives() or ((state.has('Bow') or state.has('Hover Boots')) and state.is_adult() and state.has('Hammer'))) + set_rule(world.get_entrance('Dodongos Cavern Slingshot Target'), lambda state: state.has('Slingshot') or ((state.has('Bow') or state.has('Hover Boots') or world.logic_dc_jump) and state.is_adult())) + set_rule(world.get_location('Dodongos Cavern End of Bridge Chest'), lambda state: state.has_explosives() or ((state.has('Bow') or state.has('Hover Boots') or world.logic_dc_jump) and state.is_adult() and state.has('Hammer'))) set_rule(world.get_entrance('Dodongos Cavern Bomb Drop'), lambda state: state.has_explosives()) set_rule(world.get_location('King Dodongo'), lambda state: state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) set_rule(world.get_location('King Dodongo Heart'), lambda state: state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) @@ -122,7 +125,7 @@ def global_rules(world): set_rule(world.get_location('Bombchu Bowling Bomb Bag'), lambda state: state.has_explosives()) set_rule(world.get_location('Bombchu Bowling Piece of Heart'), lambda state: state.has_explosives()) set_rule(world.get_location('Adult Shooting Gallery'), lambda state: state.has('Bow') and state.is_adult()) - set_rule(world.get_location('10 Big Poes'), lambda state: state.has('Bow') and state.has('Epona') and state.has_bottle() and state.is_adult() and state.guarantee_hint()) + set_rule(world.get_location('10 Big Poes'), lambda state: (not world.logic_no_big_poes) and (state.has('Bow') and state.has('Epona') and state.has_bottle() and state.is_adult() and state.guarantee_hint())) set_rule(world.get_location('Treasure Chest Game'), lambda state: state.has('Lens of Truth') and state.has('Magic Meter')) set_rule(world.get_entrance('Lost Woods Dive Warp'), lambda state: state.can_dive() and (world.open_forest or (state.has('Slingshot') and state.has('Kokiri Sword')))) set_rule(world.get_entrance('Zora River Dive Warp'), lambda state: state.can_dive()) @@ -175,14 +178,15 @@ def global_rules(world): set_rule(world.get_location('Phantom Ganon'), lambda state: state.has('Boss Key (Forest Temple)')) set_rule(world.get_location('Phantom Ganon Heart'), lambda state: state.has('Boss Key (Forest Temple)')) set_rule(world.get_entrance('Dampes Grave'), lambda state: state.is_adult()) + set_rule(world.get_location('Dampe Race Freestanding PoH'), lambda state: not world.logic_no_second_dampe_race) set_rule(world.get_location('Graveyard Freestanding PoH'), lambda state: state.is_adult() and (state.has('Magic Bean') or state.has('Progressive Hookshot', 2))) set_rule(world.get_location('Song at Windmill'), lambda state: state.is_adult()) - set_rule(world.get_location('Windmill Freestanding PoH'), lambda state: (state.is_adult() and state.has('Song of Time')) or state.has('Boomerang')) + set_rule(world.get_location('Windmill Freestanding PoH'), lambda state: (state.is_adult() and ( world.logic_windmill_hp or state.has('Song of Time') )) or state.has('Boomerang')) set_rule(world.get_entrance('Temple Warp Pad'), lambda state: state.has('Prelude of Light')) set_rule(world.get_location('Sheik at Temple'), lambda state: state.has('Forest Medallion') and state.is_adult()) set_rule(world.get_location('Diving in the Lab'), lambda state: state.has('Progressive Scale', 2)) - set_rule(world.get_location('Child Fishing'), lambda state: state.has('Kokiri Sword')) - set_rule(world.get_location('Adult Fishing'), lambda state: state.is_adult() and (state.has('Progressive Hookshot') or state.has('Magic Bean'))) + set_rule(world.get_location('Child Fishing'), lambda state: (not world.logic_no_child_fishing) and state.has('Kokiri Sword')) + set_rule(world.get_location('Adult Fishing'), lambda state: (not world.logic_no_adult_fishing) and (state.is_adult() and (state.has('Progressive Hookshot') or state.has('Magic Bean')))) set_rule(world.get_location('Lake Hylia Freestanding PoH'), lambda state: state.is_adult() and (state.has('Progressive Hookshot') or state.has('Magic Bean'))) set_rule(world.get_location('Lake Hylia Sun'), lambda state: state.has('Progressive Hookshot', 2) and state.has('Bow') and state.is_adult()) set_rule(world.get_entrance('Crater Hover Boots'), lambda state: state.is_adult() and state.has('Hover Boots')) @@ -214,7 +218,7 @@ def global_rules(world): set_rule(world.get_entrance('Crater Access'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade') or state.can_blast_or_smash())) set_rule(world.get_entrance('Lake Warp Pad'), lambda state: state.has('Serenade of Water')) set_rule(world.get_location('King Zora Thawed'), lambda state: state.has_bottle() and (state.can_reach('Ice Cavern') or state.can_reach('Ganons Castle Water Trial') or state.has('Progressive Wallet', 2))) - set_rule(world.get_location('Zoras Fountain Bottom Freestanding PoH'), lambda state: state.has('Iron Boots')) + set_rule(world.get_location('Zoras Fountain Bottom Freestanding PoH'), lambda state: state.has('Iron Boots') and state.has('Zora Tunic')) set_rule(world.get_entrance('Water Temple Entrance'), lambda state: state.is_adult() and (state.has('Zora Tunic') or (state.has('Progressive Wallet', 2) and state.has_bottle() and state.has('Zeldas Lullaby'))) and state.has('Iron Boots') and state.has('Progressive Hookshot')) set_rule(world.get_entrance('Water Temple Central Pillar'), lambda state: (state.has('Bow') or (state.has('Dins Fire') and state.has('Magic Meter')) or state.has('Small Key (Water Temple)', 5)) and state.has('Zeldas Lullaby')) set_rule(world.get_entrance('Water Temple Upper Locked Door'), lambda state: state.has('Small Key (Water Temple)', 5) and (state.has('Zeldas Lullaby') or world.keysanity)) @@ -230,7 +234,7 @@ def global_rules(world): set_rule(world.get_location('Water Temple River Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and state.has('Song of Time') and state.has('Bow') and (state.has('Zeldas Lullaby') or world.keysanity)) set_rule(world.get_location('Sheik in Kakariko'), lambda state: state.has('Forest Medallion') and state.has('Fire Medallion') and state.has('Water Medallion')) set_rule(world.get_entrance('Graveyard Warp Pad'), lambda state: state.has('Nocturne of Shadow')) - set_rule(world.get_entrance('Shadow Temple Entrance'), lambda state: state.has('Dins Fire') and state.has('Magic Meter') and state.has('Lens of Truth') and state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot'))) + set_rule(world.get_entrance('Shadow Temple Entrance'), lambda state: state.has('Dins Fire') and state.can_see_with_lens() and state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot'))) set_rule(world.get_entrance('Shadow Temple First Pit'), lambda state: state.has('Hover Boots')) set_rule(world.get_entrance('Shadow Temple Bomb Wall'), lambda state: state.has_explosives() and state.has('Small Key (Shadow Temple)', 1)) set_rule(world.get_entrance('Shadow Temple Hookshot Target'), lambda state: state.has('Progressive Hookshot') and state.has('Small Key (Shadow Temple)', 3)) @@ -246,14 +250,14 @@ def global_rules(world): set_rule(world.get_entrance('Fortress Entrance'), lambda state: (state.has('Bow') or state.has('Progressive Hookshot') or state.has('Hover Boots') or world.gerudo_fortress == 'open' or world.gerudo_fortress == 'fast') and state.is_adult()) set_rule(world.get_entrance('Gerudo Training Grounds Entrance'), lambda state: state.has('Gerudo Membership Card') and state.is_adult()) set_rule(world.get_entrance('Haunted Wasteland Entrance'), lambda state: state.has('Gerudo Membership Card') and state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot', 2))) - set_rule(world.get_entrance('Haunted Wasteland Crossing'), lambda state: state.has('Lens of Truth') and state.has('Magic Meter')) + set_rule(world.get_entrance('Haunted Wasteland Crossing'), lambda state: (world.logic_lens == 'chest') or (state.has('Lens of Truth') and state.has('Magic Meter'))) set_rule(world.get_entrance('Colossus Warp Pad'), lambda state: state.has('Requiem of Spirit')) set_rule(world.get_entrance('Colossus Fairy'), lambda state: state.has_explosives()) set_rule(world.get_location('Colossus Freestanding PoH'), lambda state: state.has('Requiem of Spirit') and state.has('Magic Bean') and state.is_adult()) set_rule(world.get_location('Desert Colossus Fairy Reward'), lambda state: state.has('Zeldas Lullaby')) set_rule(world.get_location('Gerudo Fortress Rooftop Chest'), lambda state: (state.has('Hover Boots') or state.has('Progressive Hookshot')) and state.is_adult()) set_rule(world.get_location('Horseback Archery 1000 Points'), lambda state: state.has('Gerudo Membership Card') and state.has('Epona') and state.has('Bow') and state.is_adult()) - set_rule(world.get_location('Horseback Archery 1500 Points'), lambda state: state.has('Gerudo Membership Card') and state.has('Epona') and state.has('Bow') and state.is_adult()) + set_rule(world.get_location('Horseback Archery 1500 Points'), lambda state: (not world.logic_no_1500_archery) and (state.has('Gerudo Membership Card') and state.has('Epona') and state.has('Bow') and state.is_adult())) set_rule(world.get_location('Haunted Wasteland Structure Chest'), lambda state: state.has_fire_source()) set_rule(world.get_entrance('Gerudo Training Ground Left Silver Rupees'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) set_rule(world.get_entrance('Gerudo Training Ground Beamos'), lambda state: state.has_explosives()) @@ -261,24 +265,24 @@ def global_rules(world): set_rule(world.get_entrance('Gerudo Training Grounds Maze Ledge'), lambda state: state.has('Song of Time')) set_rule(world.get_entrance('Gerudo Training Grounds Right Hookshot Target'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) set_rule(world.get_entrance('Gerudo Training Grounds Hammer Target'), lambda state: state.has('Hammer') and state.has('Bow') and state.is_adult()) - set_rule(world.get_entrance('Gerudo Training Grounds Hidden Hookshot Target'), lambda state: state.has('Progressive Hookshot') and state.has('Lens of Truth') and state.has('Magic Meter') and state.is_adult()) + set_rule(world.get_entrance('Gerudo Training Grounds Hidden Hookshot Target'), lambda state: state.has('Progressive Hookshot') and state.can_see_with_lens() and state.is_adult()) set_rule(world.get_location('Gerudo Training Grounds Lobby Left Chest'), lambda state: state.has('Bow') and state.is_adult()) set_rule(world.get_location('Gerudo Training Grounds Lobby Right Chest'), lambda state: state.has('Bow') and state.is_adult()) set_rule(world.get_location('Gerudo Training Grounds Beamos Chest'), lambda state: state.has_explosives()) - set_rule(world.get_location('Gerudo Training Grounds Hidden Ceiling Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 3) and state.has('Lens of Truth') and state.has('Magic Meter')) + set_rule(world.get_location('Gerudo Training Grounds Hidden Ceiling Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 3) and state.can_see_with_lens()) set_rule(world.get_location('Gerudo Training Grounds Maze Path First Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 4)) set_rule(world.get_location('Gerudo Training Grounds Maze Path Second Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 6)) set_rule(world.get_location('Gerudo Training Grounds Maze Path Third Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 7)) set_rule(world.get_location('Gerudo Training Grounds Maze Path Final Chest'), lambda state: (state.has('Small Key (Gerudo Training Grounds)', 9)) or (item_name(state, 'Gerudo Training Grounds Maze Path Final Chest') == 'Small Key (Gerudo Training Grounds)' and state.has('Small Key (Gerudo Training Grounds)', 8))) #Allow key for key set_always_allow(world.get_location('Gerudo Training Grounds Maze Path Final Chest'), lambda item, state: item.name == 'Small Key (Gerudo Training Grounds)') - set_rule(world.get_location('Gerudo Training Grounds Underwater Silver Rupee Chest'), lambda state: state.has('Progressive Hookshot') and state.has('Song of Time') and state.has('Iron Boots') and state.is_adult()) + set_rule(world.get_location('Gerudo Training Grounds Underwater Silver Rupee Chest'), lambda state: state.has('Progressive Hookshot') and state.has('Song of Time') and state.has('Iron Boots') and state.has('Zora Tunic') and state.is_adult()) set_rule(world.get_location('Gerudo Training Grounds Hammer Room Switch Chest'), lambda state: state.has('Hammer') and state.is_adult()) set_rule(world.get_location('Gerudo Training Grounds Eye Statue Chest'), lambda state: state.has('Bow') and state.is_adult()) set_rule(world.get_location('Gerudo Training Grounds Near Scarecrow Chest'), lambda state: state.has('Bow') and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Heavy Block First Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.has('Lens of Truth') and state.has('Magic Meter') and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Heavy Block Second Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.has('Lens of Truth') and state.has('Magic Meter') and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Heavy Block Third Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.has('Lens of Truth') and state.has('Magic Meter') and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Heavy Block Fourth Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.has('Lens of Truth') and state.has('Magic Meter') and state.is_adult()) + set_rule(world.get_location('Gerudo Training Grounds Heavy Block First Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.can_see_with_lens() and state.is_adult()) + set_rule(world.get_location('Gerudo Training Grounds Heavy Block Second Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.can_see_with_lens() and state.is_adult()) + set_rule(world.get_location('Gerudo Training Grounds Heavy Block Third Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.can_see_with_lens() and state.is_adult()) + set_rule(world.get_location('Gerudo Training Grounds Heavy Block Fourth Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.can_see_with_lens() and state.is_adult()) set_rule(world.get_entrance('Spirit Temple Crawl Passage'), lambda state: state.has('Requiem of Spirit')) set_rule(world.get_entrance('Spirit Temple Silver Block'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.is_adult()) set_rule(world.get_entrance('Child Spirit Temple Passthrough'), lambda state: state.has_explosives() and state.has('Small Key (Spirit Temple)', 1)) @@ -300,8 +304,8 @@ def global_rules(world): set_rule(world.get_location('Mirror Shield Chest'), lambda state: state.has('Small Key (Spirit Temple)', 4) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.has_explosives()) set_rule(world.get_location('Silver Gauntlets Chest'), lambda state: (state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Hookshot', 2) and state.has_explosives()) or state.has('Small Key (Spirit Temple)', 5)) set_rule(world.get_location('Spirit Temple Near Four Armos Chest'), lambda state: state.has('Mirror Shield') and state.has_bombchus()) - set_rule(world.get_location('Spirit Temple Hallway Left Invisible Chest'), lambda state: state.has('Magic Meter') and state.has('Lens of Truth') and state.has_explosives()) - set_rule(world.get_location('Spirit Temple Hallway Right Invisible Chest'), lambda state: state.has('Magic Meter') and state.has('Lens of Truth') and state.has_explosives()) + set_rule(world.get_location('Spirit Temple Hallway Left Invisible Chest'), lambda state: state.can_see_with_lens() and state.has_explosives()) + set_rule(world.get_location('Spirit Temple Hallway Right Invisible Chest'), lambda state: state.can_see_with_lens() and state.has_explosives()) set_rule(world.get_location('Spirit Temple Boss Key Chest'), lambda state: state.has('Zeldas Lullaby') and state.has('Bow') and state.has('Progressive Hookshot') and state.can_blast_or_smash()) set_rule(world.get_location('Spirit Temple Topmost Chest'), lambda state: state.has('Mirror Shield')) set_rule(world.get_location('Twinrova'), lambda state: state.has('Mirror Shield') and state.has_explosives() and state.has('Progressive Hookshot') and state.has('Boss Key (Spirit Temple)')) @@ -312,14 +316,14 @@ def global_rules(world): set_rule(world.get_location('Ganons Castle Forest Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and (state.has('Fire Arrows') or (state.has('Progressive Hookshot') and state.has('Dins Fire')))) set_rule(world.get_location('Ganons Castle Fire Trial Clear'), lambda state: state.has_GoronTunic() and state.has('Progressive Strength Upgrade', 3) and state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and state.has('Progressive Hookshot', 2)) set_rule(world.get_location('Ganons Castle Water Trial Clear'), lambda state: state.has_bottle() and state.has('Hammer') and state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows')) - set_rule(world.get_location('Ganons Castle Shadow Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and state.has('Hammer') and (state.has('Fire Arrows') or state.has('Progressive Hookshot', 2)) and (state.has('Lens of Truth') or (state.has('Hover Boots') and state.has('Progressive Hookshot', 2)))) + set_rule(world.get_location('Ganons Castle Shadow Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and state.has('Hammer') and (state.has('Fire Arrows') or state.has('Progressive Hookshot', 2)) and (state.can_see_with_lens() or (state.has('Hover Boots') and state.has('Progressive Hookshot', 2)))) set_rule(world.get_location('Ganons Castle Shadow Trial First Chest'), lambda state: (state.has('Magic Meter') and state.has('Bow') and state.has('Fire Arrows')) or state.has('Progressive Hookshot') or state.has('Hover Boots') or state.has('Song of Time')) set_rule(world.get_location('Ganons Castle Shadow Trial Second Chest'), lambda state: (state.has('Magic Meter') and state.has('Bow') and state.has('Fire Arrows')) or (state.has('Progressive Hookshot', 2) and state.has('Hover Boots'))) set_rule(world.get_location('Ganons Castle Spirit Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and state.has('Mirror Shield') and state.has_bombchus() and state.has('Progressive Hookshot')) set_rule(world.get_location('Ganons Castle Spirit Trial First Chest'), lambda state: state.has('Progressive Hookshot') and (state.has('Magic Meter') or state.has_explosives())) - set_rule(world.get_location('Ganons Castle Spirit Trial Second Chest'), lambda state: state.has('Progressive Hookshot') and state.has('Magic Meter') and state.has_bombchus() and state.has('Lens of Truth')) + set_rule(world.get_location('Ganons Castle Spirit Trial Second Chest'), lambda state: state.has('Progressive Hookshot') and state.has('Magic Meter') and state.has_bombchus() and state.can_see_with_lens()) set_rule(world.get_location('Ganons Castle Light Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Progressive Hookshot') and state.has('Light Arrows') and state.has('Small Key (Ganons Castle)', 2)) - set_rule(world.get_location('Ganons Castle Light Trail Invisible Enemies Chest'), lambda state: state.has('Magic Meter') and state.has('Lens of Truth')) + set_rule(world.get_location('Ganons Castle Light Trail Invisible Enemies Chest'), lambda state: state.can_see_with_lens()) set_rule(world.get_location('Ganons Castle Light Trial Lullaby Chest'), lambda state: state.has('Zeldas Lullaby') and state.has('Small Key (Ganons Castle)', 1)) set_rule(world.get_location('Ganon'), lambda state: state.has('Boss Key (Ganons Castle)') or (world.fast_ganon and state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows')) ) set_rule(world.get_entrance('Kokiri Forest Storms Grotto'), lambda state: state.has('Song of Storms')) @@ -396,7 +400,7 @@ def global_rules(world): set_rule(world.get_location('GS75'), lambda state: state.has('Progressive Hookshot', 2)) set_rule(world.get_location('GS76'), lambda state: state.has('Progressive Hookshot', 2)) set_rule(world.get_location('GS77'), lambda state: state.has('Progressive Hookshot', 2) and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and state.has('Small Key (Water Temple)', 6)) #5 keys would be better but it wouldn't be compatible with the key for key scenarios, 6 will be identical pre-keysanity. - set_rule(world.get_location('GS78'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang') and (state.has('Progressive Strength Upgrade') or state.has_explosives() or (state.has('Lens of Truth') and state.has('Magic Meter')))) + set_rule(world.get_location('GS78'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang') and (state.has('Progressive Strength Upgrade') or state.has_explosives() or state.can_see_with_lens())) set_rule(world.get_location('GS79'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang')) set_rule(world.get_location('GS80'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang')) set_rule(world.get_location('GS81'), lambda state: state.has('Progressive Hookshot')) @@ -416,65 +420,6 @@ def global_rules(world): set_rule(world.get_location('GS99'), lambda state: state.has('Song of Time') and (state.has('Bow') or state.has('Progressive Hookshot') or state.has_explosives())) set_rule(world.get_location('GS100'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.has('Small Key (Spirit Temple)', 3) and state.is_adult() and (state.has('Progressive Hookshot') or state.has('Hover Boots'))) - # update the logic with custom rules for this fork - - if world.custom_logic: - # remove trade quests - set_rule(world.get_location('Deku Theater Skull Mask'), lambda state: False) - set_rule(world.get_location('Deku Theater Mask of Truth'), lambda state: False) - set_rule(world.get_location('Biggoron'), lambda state: False) - - # remove skulltullas and poes - set_rule(world.get_location('10 Gold Skulltulla Reward'), lambda state: False) - set_rule(world.get_location('20 Gold Skulltulla Reward'), lambda state: False) - set_rule(world.get_location('30 Gold Skulltulla Reward'), lambda state: False) - set_rule(world.get_location('40 Gold Skulltulla Reward'), lambda state: False) - set_rule(world.get_location('50 Gold Skulltulla Reward'), lambda state: False) - set_rule(world.get_location('10 Big Poes'), lambda state: False) - - # remove finishing - set_rule(world.get_location('Child Fishing'), lambda state: False) - set_rule(world.get_location('Adult Fishing'), lambda state: False) - - # remove DC slingshot requirement - set_rule(world.get_entrance('Dodongos Cavern Slingshot Target'), lambda state: state.has('Slingshot') or state.is_adult()) - set_rule(world.get_location('Dodongos Cavern End of Bridge Chest'), lambda state: state.has_explosives() or (state.is_adult() and state.has('Hammer'))) - - # remove man on roof requirement - set_rule(world.get_location('Man on Roof'), lambda state: True) - - # remove most lens of truth requirements - set_rule(world.get_location('Bottom of the Well Front Left Hidden Wall'), lambda state: True) - set_rule(world.get_location('Bottom of the Well Right Bottom Hidden Wall'), lambda state: True) - set_rule(world.get_location('Bottom of the Well Center Large Chest'), lambda state: True) - set_rule(world.get_location('Bottom of the Well Center Small Chest'), lambda state: True) - set_rule(world.get_location('Bottom of the Well Invisible Chest'), lambda state: state.has('Zeldas Lullaby')) - set_rule(world.get_location('Bottom of the Well Locked Pits'), lambda state: state.has('Small Key (Bottom of the Well)', 3)) - set_rule(world.get_location('Bottom of the Well Behind Right Grate'), lambda state: state.has('Small Key (Bottom of the Well)', 3)) - set_rule(world.get_location('GS78'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang')) - - set_rule(world.get_entrance('Shadow Temple Entrance'), lambda state: state.has('Dins Fire') and state.has('Magic Meter') and state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot'))) - - set_rule(world.get_entrance('Gerudo Training Grounds Hidden Hookshot Target'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Hidden Ceiling Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 3) ) - set_rule(world.get_location('Gerudo Training Grounds Heavy Block First Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Heavy Block Second Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Heavy Block Third Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Heavy Block Fourth Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.is_adult()) - - set_rule(world.get_location('Spirit Temple Hallway Left Invisible Chest'), lambda state: True) - set_rule(world.get_location('Spirit Temple Hallway Right Invisible Chest'), lambda state: True) - - set_rule(world.get_location('Ganons Castle Spirit Trial Second Chest'), lambda state: state.has('Progressive Hookshot') and state.has_bombchus()) - set_rule(world.get_location('Ganons Castle Light Trail Invisible Enemies Chest'), lambda state: True) - - # child deadhand without sword - set_rule(world.get_location('Bottom of the Well Defeat Boss'), lambda state: state.has('Zeldas Lullaby')) - - # adding some zora tunic requirements - set_rule(world.get_location('Zoras Fountain Bottom Freestanding PoH'), lambda state: state.has('Iron Boots') and state.has('Zora Tunic')) - set_rule(world.get_location('Gerudo Training Grounds Underwater Silver Rupee Chest'), lambda state: state.has('Progressive Hookshot') and state.has('Song of Time') and state.has('Iron Boots') and state.has('Zora Tunic') and state.is_adult()) - for location in world.get_locations(): if location.type != 'Chest': forbid_item(location, 'Ice Trap') diff --git a/Settings.py b/Settings.py index 694deec25..8c41e4966 100644 --- a/Settings.py +++ b/Settings.py @@ -223,12 +223,97 @@ def __init__(self, settings_dict): agony: Have useful hints that are read with Stone of Agony always: Have useful hints which can always be read '''}), - Setting_Info('custom_logic', bool, 1, True, { + Setting_Info('logic_skulltulas', str, 3, True, { + 'default': '50', + 'const': 'always', + 'nargs': '?', + 'choices': ['none', '10', '20', '30', '40', '50'], + 'help': '''\ + Choose the maximum number of gold skulltula tokens you will be expected to collect. + '''}), + Setting_Info('logic_no_big_poes', bool, 1, True, { + 'help': '''\ + You will not be expected to collect 10 big poes. + ''', + 'action': 'store_true'}), + Setting_Info('logic_no_child_fishing', bool, 1, True, { + 'help': '''\ + You will not be expected to obtain the child fishing reward. + ''', + 'action': 'store_true'}), + Setting_Info('logic_no_adult_fishing', bool, 1, True, { + 'help': '''\ + You will not be expected to obtain the adult fishing reward. + ''', + 'action': 'store_true'}), + Setting_Info('logic_no_trade_skull_mask', bool, 1, True, { + 'help': '''\ + You will not be expected to show the skull mask at the forest stage. + ''', + 'action': 'store_true'}), + Setting_Info('logic_no_trade_mask_of_truth', bool, 1, True, { + 'help': '''\ + You will not be expected to show the mask of truth at the forest stage. + ''', + 'action': 'store_true'}), + Setting_Info('logic_no_trade_biggoron', bool, 1, True, { + 'help': '''\ + You will not be expected to trade for biggoron's reward. + ''', + 'action': 'store_true'}), + Setting_Info('logic_no_1500_archery', bool, 1, True, { 'help': '''\ - Removes a number of bad locations from logic, - and adds a number allowed tricks + You will not be expected to win the 1500 point horseback archery reward. ''', 'action': 'store_true'}), + Setting_Info('logic_no_memory_game', bool, 1, True, { + 'help': '''\ + You will not be expected to play the memory game in lost woods with the skull kids. + ''', + 'action': 'store_true'}), + Setting_Info('logic_no_second_dampe_race', bool, 1, True, { + 'help': '''\ + You will not be expected to race Dampe a second time. + ''', + 'action': 'store_true'}), + Setting_Info('logic_man_on_roof', bool, 1, True, { + 'help': '''\ + The man on the roof will not require the hookshot in logic. + ''', + 'action': 'store_true'}), + Setting_Info('logic_child_deadhand', bool, 1, True, { + 'help': '''\ + Deadhand in the Bottom of the Well will not require the Kokiri sword in logic. + ''', + 'action': 'store_true'}), + Setting_Info('logic_dc_jump', bool, 1, True, { + 'help': '''\ + Jumping towards the bomb bag chest in Dodongo's Cavern as an adult + will not require hover boots in logic. + ''', + 'action': 'store_true'}), + Setting_Info('logic_impa_house', bool, 1, True, { + 'help': '''\ + Getting into the back of Impa's house (cow cage) as an adult will + not require hookshot in logic. + ''', + 'action': 'store_true'}), + Setting_Info('logic_windmill_hp', bool, 1, True, { + 'help': '''\ + Getting the heart piece in the windmill as an adult will require nothing in logic. + ''', + 'action': 'store_true'}), + Setting_Info('logic_lens', str, 3, True, { + 'default': 'all', + 'const': 'always', + 'nargs': '?', + 'choices': ['chest', 'chest-wasteland', 'all'], + 'help': '''\ + Choose what expects the Lens of Truth: + all: All lens spots expect the lens (except those that did not in the original game) + chest-wasteland: Only wasteland and chest minigame expect the lens + chest: Only the chest minigame expects the lens + '''}), Setting_Info('text_shuffle', str, 2, True, { 'default': 'none', 'const': 'none', From f701104465ebc1703896a7409f13e07e82d59b5c Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Sat, 30 Jun 2018 11:34:15 -0500 Subject: [PATCH 066/755] Fixed some typos and a logic bug involving the lens. Version number now affects seed. --- BaseClasses.py | 4 ++-- Gui.py | 8 ++++---- HintList.py | 6 +++--- Main.py | 3 +-- Settings.py | 4 +++- 5 files changed, 13 insertions(+), 12 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 803240718..30c81cff2 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -317,7 +317,7 @@ def can_lift_rocks(self): return (self.has('Silver Gauntlets') or self.has('Gold Gauntlets')) and self.is_adult() def can_see_with_lens(self): - return (self.has('Magic Meter') and self.has('Lens of Truth') and self.world.logic_lens == 'all') + return ((self.has('Magic Meter') and self.has('Lens of Truth')) or self.world.logic_lens != 'all') def has_GoronTunic(self): return (self.has('Goron Tunic') or (self.has('Progressive Wallet') and (self.has('Bomb Bag') or self.has('Progressive Strength Upgrade') or self.has('Bow')))) @@ -609,7 +609,7 @@ def parse_data(self): sort_order = {"Song": 0, "Boss": -1} spoiler_locations.sort(key=lambda item: sort_order.get(item.type, 1)) self.locations = {'other locations': OrderedDict([(str(location), str(location.item) if location.item is not None else 'Nothing') for location in spoiler_locations])} - from Main import __version__ as OoTRVersion + from Settings import __version__ as OoTRVersion self.metadata = {'version': OoTRVersion, 'seed': self.world.seed, 'bridge': self.world.bridge, diff --git a/Gui.py b/Gui.py index 1215385b5..6bc1192ac 100644 --- a/Gui.py +++ b/Gui.py @@ -10,10 +10,10 @@ from urllib.request import urlopen from GuiUtils import ToolTips, set_icon, BackgroundTaskProgress -from Main import main, __version__ as ESVersion +from Main import main from Utils import is_bundled, local_path, output_path, open_file from Rom import get_tunic_color_options, get_navi_color_options -from Settings import Settings, setting_infos +from Settings import Settings, setting_infos, __version__ as ESVersion def settings_to_guivars(settings, guivars): @@ -345,11 +345,11 @@ def MakeRadioList(parent, data): # Logic tab skulltulaFrame.pack(anchor=W, side=TOP, pady=(5,0)) rewardsFrame.pack(fill=BOTH, expand=True, anchor=W, side=TOP, pady=(5,0)) - logicLeftFrame.pack(fill=BOTH, expand=True, anchor=N, side=LEFT, pady=(0,5), padx=(5,0)) + logicLeftFrame.pack(fill=BOTH, expand=True, anchor=N, side=LEFT, pady=(0,5), padx=(5,5)) tricksFrame.pack(fill=BOTH, expand=True, anchor=W, side=TOP, pady=(5,0)) lensFrame.pack(fill=BOTH, expand=True, anchor=W, side=TOP, pady=(5,0)) - logicRightFrame.pack(fill=BOTH, expand=True, anchor=N, side=LEFT, pady=(0,5), padx=(5, 230)) + logicRightFrame.pack(fill=BOTH, expand=True, anchor=N, side=LEFT, pady=(0,5), padx=(0, 230)) diff --git a/HintList.py b/HintList.py index 13110c205..9cba48f7e 100644 --- a/HintList.py +++ b/HintList.py @@ -269,11 +269,11 @@ def hintExclusions(world): exclusions.append('Deku Theater Skull Mask') if world.logic_no_trade_mask_of_truth: exclusions.append('Deku Theater Mask of Truth') - if world.logic_no_trade_biggorn: + if world.logic_no_trade_biggoron: exclusions.append('Biggoron') - if world.logic_no_trade_child_fishing: + if world.logic_no_child_fishing: exclusions.append('Child Fishing') - if world.logic_no_trade_adult_fishing: + if world.logic_no_adult_fishing: exclusions.append('Adult Fishing') if world.logic_no_big_poes: exclusions.append('10 Big Poes') diff --git a/Main.py b/Main.py index d8710011a..f99d20112 100644 --- a/Main.py +++ b/Main.py @@ -16,8 +16,7 @@ from Fill import distribute_items_restrictive from ItemList import generate_itempool from Utils import output_path - -__version__ = '2.0.0 f.LUM' +from Settings import __version__ def main(settings): start = time.clock() diff --git a/Settings.py b/Settings.py index 8c41e4966..08ac9eb84 100644 --- a/Settings.py +++ b/Settings.py @@ -7,6 +7,8 @@ from Rom import get_tunic_color_options, get_navi_color_options +__version__ = '2.9.0 f.LUM' + class ArgumentDefaultsHelpFormatter(argparse.RawTextHelpFormatter): def _get_help_string(self, action): @@ -91,7 +93,7 @@ def update_with_settings_string(self, text): def get_numeric_seed(self): # salt seed with the settings, and hash to get a numeric seed - full_string = self.settings_string + self.seed + full_string = self.settings_string + __version__ + self.seed return int(hashlib.sha256(full_string.encode('utf-8')).hexdigest(), 16) def sanatize_seed(self): From be7194e2b725027e0cc0fbc41ad46a8efb99d5b9 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Sat, 30 Jun 2018 11:45:54 -0500 Subject: [PATCH 067/755] Some typos fixed, README is updated. --- BaseClasses.py | 2 +- README.md | 17 ++++++----------- Settings.py | 2 +- 3 files changed, 8 insertions(+), 13 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 30c81cff2..89ea7e788 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -633,7 +633,7 @@ def to_file(self, filename): outfile.write('Open Door of Time: %s\n' % ('Yes' if self.metadata['door'] else 'No')) outfile.write('Gerudo Fortress: %s\n' % self.metadata['gerudo_fortress']) outfile.write('Fast Ganon\'s Castle: %s\n' % ('Yes' if self.metadata['ganon'] else 'No')) - outfile.write('Keysanity : %s\n' % ('Yes' if self.metadata['keysanity'] else 'No')) + outfile.write('Keysanity: %s\n' % ('Yes' if self.metadata['keysanity'] else 'No')) outfile.write('All Locations Accessible: %s\n' % ('Yes' if self.metadata['completeable'] else 'No, some locations may be unreachable')) outfile.write('Maps and Compasses in Dungeons: %s\n' % ('Yes' if self.metadata['dungeonitems'] else 'No')) outfile.write('Hints: %s\n' % self.metadata['hints']) diff --git a/README.md b/README.md index cc4697c54..351997d98 100644 --- a/README.md +++ b/README.md @@ -406,17 +406,12 @@ The following were added or majorly changed on this fork: ## Optional Logic changes -These logic changes are applied by checking "Use this fork's logic" in the "Logic" box - -- Removed Fishing minigame from logic -- Removed Skulltulla rewards from logic -- Removed 10 Big Poes reward from logic -- Removed Forest Stage and Biggoron rewards from logic (trade quests) -- Removed Man of Roof requirements -- Added the DC jump to skip the slighshot room to logic -- Child Dead Hand fight no longer requires a sword -- Underwater room in Training Grounds and underwater Zora Fountain now require Zora Tunic -- Removed most Lens of Truth requirements (exceptions are Wasteland and Chest Minigame) +A bunch of optional logic changes can be applied from the "Detailed Logic" tab: + +- Number of maximum expected gold skulltula tokens can be set +- Some particularly annoying locations can be removed from logic. This only makes it so that getting the item at the location is never required, it does not mean the location's vanilla item is not shuffled into the pool. For example, checking "No Biggoron Reward" just means that you cannot be expected to complete the adult trade sequence, it does not mean that the Biggoron Sword cannot be found somewhere in the world. +- A handful of easy tricks (that require some knowledge) can be marked to be usable +- Lens of Truth requirements and expectations can be set ## Gerudo Fortress options diff --git a/Settings.py b/Settings.py index 08ac9eb84..bbb560cc3 100644 --- a/Settings.py +++ b/Settings.py @@ -305,7 +305,7 @@ def __init__(self, settings_dict): Getting the heart piece in the windmill as an adult will require nothing in logic. ''', 'action': 'store_true'}), - Setting_Info('logic_lens', str, 3, True, { + Setting_Info('logic_lens', str, 2, True, { 'default': 'all', 'const': 'always', 'nargs': '?', From 4e8988a200f3548aa66f6563c72d124c56adbdd9 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Sat, 30 Jun 2018 21:44:34 -0500 Subject: [PATCH 068/755] Possibly fixed credits softlock; needs testing. --- Messages.py | 4 ++++ Rom.py | 1 + 2 files changed, 5 insertions(+) diff --git a/Messages.py b/Messages.py index 36332dfcd..e4b65ee74 100644 --- a/Messages.py +++ b/Messages.py @@ -389,6 +389,10 @@ def get_shop_message_id_set(shop_items): ids.add(shop.purchase_message) return ids +# remove all messages that easy to tell are unused to create space in the message index table +def remove_unused_messages(messages): + messages[:] = [m for m in messages if not m.is_id_message()] + # takes all messages used for shop items, and moves messages from the 00xx range into the unused 80xx range def move_shop_item_messages(messages, shop_items): # checks if a message id is in the item message range diff --git a/Rom.py b/Rom.py index 575441fce..32d2eb57f 100644 --- a/Rom.py +++ b/Rom.py @@ -1076,6 +1076,7 @@ def patch_rom(world, rom): messages = read_messages(rom) shop_items = read_shop_items(rom) + remove_unused_messages(messages) # add a cheaper bombchu pack to the bombchu shop # describe From 7b8be416a3a3253fc95d7bc2c82ec7f607942755 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Sun, 1 Jul 2018 10:09:55 -0500 Subject: [PATCH 069/755] Fixed a bug where a seed with too few required items would crash during hint generation. Fixed a bug in logic involving fast ganon. --- Hints.py | 36 +++++++++++++++++++++++------------- Rules.py | 2 +- 2 files changed, 24 insertions(+), 14 deletions(-) diff --git a/Hints.py b/Hints.py index bcf61766d..9c45b98b1 100644 --- a/Hints.py +++ b/Hints.py @@ -149,7 +149,10 @@ def buildGossipHints(world, rom): if ItemFactory(item).type != 'Event' and not location in eventlocations] # add required non-ganon items for hints (good hints) - for location,item in random.sample(requiredItems, random.randint(3,4)): + requiredSample = requiredItems + if len(requiredItems) >= 4: + requiredSample = random.sample(requiredItems, random.randint(3,4)) + for location,item in requiredItems: if world.get_location(location).parent_region.dungeon: writeHintToRom(buildHintString(getHint(world.get_location(location).parent_region.dungeon.name).text + \ " is on the way of the hero."), stoneAddresses.pop(0), rom) @@ -173,18 +176,19 @@ def buildGossipHints(world, rom): # Add good location hints sometimesLocations = getHintGroup('location', world) - for _ in range(0, random.randint(9,10) - len(alwaysLocations)): - hint = random.choice(sometimesLocations) - # Repick if location isn't new - while hint.name in checkedLocations or hint.name in alwaysLocations: + if sometimesLocations: + for _ in range(0, random.randint(9,10) - len(alwaysLocations)): hint = random.choice(sometimesLocations) + # Repick if location isn't new + while hint.name in checkedLocations or hint.name in alwaysLocations: + hint = random.choice(sometimesLocations) - for locationWorld in world.get_locations(): - if hint.name == locationWorld.name: - checkedLocations.append(locationWorld.name) - writeHintToRom(getHint(locationWorld.name).text + " " + \ - getHint(getItemGenericName(locationWorld.item)).text + ".",\ - stoneAddresses.pop(0), rom) + for locationWorld in world.get_locations(): + if hint.name == locationWorld.name: + checkedLocations.append(locationWorld.name) + writeHintToRom(getHint(locationWorld.name).text + " " + \ + getHint(getItemGenericName(locationWorld.item)).text + ".",\ + stoneAddresses.pop(0), rom) # add bad dungeon locations hints for dungeon in random.sample(world.dungeons, random.randint(3,4)): @@ -212,7 +216,10 @@ def buildGossipHints(world, rom): locationWorld.item.name != 'Gold Skulltulla Token' and \ not locationWorld.parent_region.dungeon and \ not locationWorld.name in checkedLocations] - for locationWorld in random.sample(overworldlocations, random.randint(3,4)): + overworldSample = overworldlocations + if len(overworldSample) >= 4: + overworldSample = random.sample(overworldlocations, random.randint(3,4)) + for locationWorld in overworldSample: checkedLocations.append(locationWorld.name) writeHintToRom(buildHintString(getHint(getItemGenericName(locationWorld.item)).text + \ " can be found at " + locationWorld.parent_region.name + "."),\ @@ -223,7 +230,10 @@ def buildGossipHints(world, rom): gooditemlocations = [locationWorld for locationWorld in world.get_locations() if not locationWorld.name in checkedLocations and \ locationWorld.item.name in gooditems] - for locationWorld in random.sample(gooditemlocations, random.randint(3,5)): + gooditemSample = gooditemlocations + if len(gooditemSample) >= 5: + gooditemSample = random.sample(gooditemlocations, random.randint(3,5)) + for locationWorld in gooditemSample: checkedLocations.append(locationWorld.name) if locationWorld.parent_region.dungeon: writeHintToRom(buildHintString(getHint(locationWorld.parent_region.dungeon.name).text + \ diff --git a/Rules.py b/Rules.py index e0590c3f3..b911757ba 100644 --- a/Rules.py +++ b/Rules.py @@ -325,7 +325,7 @@ def global_rules(world): set_rule(world.get_location('Ganons Castle Light Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Progressive Hookshot') and state.has('Light Arrows') and state.has('Small Key (Ganons Castle)', 2)) set_rule(world.get_location('Ganons Castle Light Trail Invisible Enemies Chest'), lambda state: state.can_see_with_lens()) set_rule(world.get_location('Ganons Castle Light Trial Lullaby Chest'), lambda state: state.has('Zeldas Lullaby') and state.has('Small Key (Ganons Castle)', 1)) - set_rule(world.get_location('Ganon'), lambda state: state.has('Boss Key (Ganons Castle)') or (world.fast_ganon and state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows')) ) + set_rule(world.get_location('Ganon'), lambda state: (state.has('Boss Key (Ganons Castle)') or world.fast_ganon) and (state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows')) ) set_rule(world.get_entrance('Kokiri Forest Storms Grotto'), lambda state: state.has('Song of Storms')) set_rule(world.get_entrance('Lost Woods Generic Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Lost Woods Sales Grotto'), lambda state: state.has_explosives() or (state.has('Hammer') and state.is_adult() and (state.has('Minuet of Forest') or state.has('Sarias Song')))) From 3576e954c8d929d53eff593c6203440aa00e220b Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Sun, 1 Jul 2018 17:30:11 -0500 Subject: [PATCH 070/755] Fixed more potential crashes during hint generation. --- Hints.py | 2 +- Settings.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Hints.py b/Hints.py index 9c45b98b1..17b13e501 100644 --- a/Hints.py +++ b/Hints.py @@ -152,7 +152,7 @@ def buildGossipHints(world, rom): requiredSample = requiredItems if len(requiredItems) >= 4: requiredSample = random.sample(requiredItems, random.randint(3,4)) - for location,item in requiredItems: + for location,item in requiredSample: if world.get_location(location).parent_region.dungeon: writeHintToRom(buildHintString(getHint(world.get_location(location).parent_region.dungeon.name).text + \ " is on the way of the hero."), stoneAddresses.pop(0), rom) diff --git a/Settings.py b/Settings.py index bbb560cc3..889cfc358 100644 --- a/Settings.py +++ b/Settings.py @@ -7,7 +7,7 @@ from Rom import get_tunic_color_options, get_navi_color_options -__version__ = '2.9.0 f.LUM' +__version__ = '2.9.2 f.LUM' class ArgumentDefaultsHelpFormatter(argparse.RawTextHelpFormatter): From 081a04d3f19f963bbddf72a901ecf35040e62d09 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Mon, 2 Jul 2018 17:15:50 -0500 Subject: [PATCH 071/755] Refactored initial save code; working on testing it still. --- ASM/src/build.asm | 1 + ASM/src/config.asm | 19 +++- ASM/src/hacks.asm | 11 +++ Regions.py | 2 +- Rom.py | 217 +++++++++++++++++++++++++++++++---------- data/base2current.json | 2 +- 6 files changed, 198 insertions(+), 54 deletions(-) diff --git a/ASM/src/build.asm b/ASM/src/build.asm index d636834ad..fa31dc568 100755 --- a/ASM/src/build.asm +++ b/ASM/src/build.asm @@ -32,6 +32,7 @@ .include "menu.asm" .include "time_travel.asm" .include "song_fix.asm" +.include "initial_save.asm" .endarea .close diff --git a/ASM/src/config.asm b/ASM/src/config.asm index 58342eb94..53f7c9f97 100755 --- a/ASM/src/config.asm +++ b/ASM/src/config.asm @@ -14,11 +14,26 @@ ; II = Override ID (base item or flag) ; NN = New item ID -.area 0x400, 0 +.area 0x800, 0 ITEM_OVERRIDES: .endarea -; 0x03481400: Special items +; 0x03481800: Initial Save Data table: +; +; This table describes what extra data should be written when a new save file is created. It must be terminated with +; four 0x00 bytes (which will happen by default as long as you don't fill the allotted space). +; +; Row format (4 bytes): +; AAAATTVV +; AAAA = Offset from the start of the save data +; TT = Type (0x00 = or value with current value, 0x01 = set the byte to the given value) +; VV = Value to write to the save + +.area 0x400, 0 +INITIAL_SAVE_DATA: +.endarea + +; 0x03481C00: Special items LIGHT_ARROW_ITEM: .byte 0x5A diff --git a/ASM/src/hacks.asm b/ASM/src/hacks.asm index 27e31948d..b1d452892 100755 --- a/ASM/src/hacks.asm +++ b/ASM/src/hacks.asm @@ -275,3 +275,14 @@ ; addu at, at, s3 .org 0xB54B38 ; In memory: 800DEBD8 jal warp_song_fix + +;================================================================================================== +; Initial save +;================================================================================================== + +; Replaces: +; sb t0, 32(s1) +; sb a1, 33(s1) +.org 0xB06C2C ; In memory: ??? + jal write_initial_save + sb t0, 32(s1) \ No newline at end of file diff --git a/Regions.py b/Regions.py index c7db3c8cd..1881dbaa6 100644 --- a/Regions.py +++ b/Regions.py @@ -473,7 +473,7 @@ def _create_region(name, type, locations=None, exits=None): 'Ganons Castle Shadow Trial Clear': (None, None, None, 'Event', None, None), 'Ganons Castle Spirit Trial Clear': (None, None, None, 'Event', None, None), 'Ganons Castle Light Trial Clear': (None, None, None, 'Event', None, None), - 'Links Pocket': (0x34806FB, 0x34806FF, None, 'Boss', None, None), + 'Links Pocket': (0x34806FB, 0x34806FF, None, 'Boss', None, None), # I don't think the actually addresses matter here anymore, but they can't be None for some reason 'Queen Gohma': (0xCA315F, 0x2079571, 0x6C, 'Boss', None, None), 'King Dodongo': (0xCA30DF, 0x2223309, 0x6D, 'Boss', None, None), 'Barinade': (0xCA36EB, 0x2113C19, 0x6E, 'Boss', None, None), diff --git a/Rom.py b/Rom.py index 32d2eb57f..1d159c1cc 100644 --- a/Rom.py +++ b/Rom.py @@ -872,36 +872,132 @@ def patch_rom(world, rom): # Set hooks for various code # rom.write_bytes(0xBD6C94, ...) #Progressive Items Object Hook, unsure where this case is called - rom.write_bytes(0xB06C2C, [0x0C, 0x10, 0x01, 0x80]) #Save Writing Hook +# rom.write_bytes(0xB06C2C, [0x0C, 0x10, 0x01, 0x80]) #Save Writing Hook rom.write_bytes(0xDBF428, [0x0C, 0x10, 0x03, 0x00]) #Set Fishing Hook # Write Initial Save File # 0 1 2 3 4 5 6 7 8 9 A B C D E F - Block_code = [0xA2, 0x28, 0x80, 0x20, 0x24, 0x05, 0x80, 0x02, 0x24, 0x0F, 0x00, 0x84, 0x24, 0x18, 0x00, 0x01, # 0x3480600 - 0x24, 0x19, 0x00, 0x08, 0x24, 0x08, 0x00, 0x80, 0xA6, 0x25, 0x00, 0xD8, 0xA2, 0x2F, 0x00, 0xDA, # 0x3480610 - 0xA2, 0x38, 0x01, 0x65, 0xA2, 0x39, 0x09, 0xB6, 0xA2, 0x28, 0x0A, 0x24, 0xA2, 0x38, 0x0A, 0xCE, # 0x3480620 - 0xA2, 0x28, 0x0A, 0xCF, 0xA2, 0x28, 0x0A, 0xE8, 0x24, 0x05, 0x00, 0x20, 0xA2, 0x25, 0x0B, 0x3F, # 0x3480630 - 0xA2, 0x28, 0x0E, 0xDC, 0xA2, 0x25, 0x0E, 0xDD, 0xA2, 0x25, 0x0E, 0xED, 0xA2, 0x38, 0x0E, 0xF9, # 0x3480640 - 0xA2, 0x39, 0x0E, 0xDA, 0xA2, 0x28, 0x0E, 0xE0, 0xA2, 0x38, 0x02, 0x0E, 0xA2, 0x39, 0x01, 0x49, # 0x3480650 - 0xA2, 0x39, 0x0E, 0xD6, 0x24, 0x05, 0x01, 0xFF, 0x24, 0x0F, 0x01, 0xFB, 0x24, 0x18, 0x07, 0xFF, # 0x3480660 - 0x24, 0x19, 0x00, 0x04, 0x24, 0x08, 0x00, 0x30, 0xA6, 0x25, 0x0E, 0xE2, 0xA6, 0x2F, 0x0E, 0xE8, # 0x3480670 - 0xA6, 0x38, 0x0E, 0xEA, 0xA2, 0x28, 0x0E, 0xE7, 0xA2, 0x39, 0x0F, 0x1A, 0x24, 0x08, 0x10, 0x20, # 0x3480680 - 0x24, 0x19, 0x00, 0x2C, 0x24, 0x18, 0x00, 0x49, 0x24, 0x0F, 0x00, 0x02, 0x24, 0x05, 0x00, 0x40, # 0x3480690 - 0xA6, 0x28, 0x0E, 0xD4, 0x00, 0x00, 0x00, 0x00, 0xA2, 0x38, 0x00, 0xF6, 0xA2, 0x2F, 0x00, 0x3F, # 0x34806A0 - 0xA2, 0x25, 0x0A, 0x42, 0x92, 0x25, 0x0E, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # 0x34806B0 - 0xA2, 0x25, 0x0E, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # 0x34806C0 - 0x24, 0x08, 0x0F, 0x01, 0x24, 0x19, 0x00, 0x09, 0x24, 0x18, 0x00, 0x03, 0x24, 0x0F, 0x00, 0x04, # 0x34806D0 - 0x24, 0x05, 0x00, 0x06, 0xA6, 0x28, 0x01, 0x10, 0xA2, 0x39, 0x01, 0x2C, 0xA2, 0x38, 0x01, 0x2E, # 0x34806E0 - 0xA2, 0x2F, 0x0F, 0x0A, 0xA2, 0x25, 0x0F, 0x21, 0x24, 0x05, 0x00, 0x00, 0xA2, 0x25, 0x00, 0xA7, # 0x34806F0 - 0x24, 0x0F, 0x00, 0x21, 0xA2, 0x2F, 0x0E, 0xED, 0x24, 0x0F, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, # 0x3480700 - # load current stones # or with gerudo card # write it back # load nabooru states - 0x82, 0x25, 0x00, 0xA5, 0x34, 0xA5, 0x00, 0x00, 0xA2, 0x25, 0x00, 0xA5, 0x82, 0x25, 0x0E, 0xE7, # 0x3480710 - # or with carpenters # write it back # started gerudo fight # write the value - 0x34, 0xA5, 0x00, 0x00, 0xA2, 0x25, 0x0E, 0xE7, 0x24, 0x05, 0x00, 0x00, 0xA2, 0x25, 0x02, 0x29, # 0x3480720 - # yell/door unlock # write the value # picked up keys # write the value - 0x24, 0x05, 0x00, 0x00, 0xA6, 0x25, 0x02, 0x2A, 0x24, 0x05, 0x00, 0x00, 0xA2, 0x25, 0x02, 0x32, # 0x3480730 - 0x03, 0xE0, 0x00, 0x08] # 0x3480740 - rom.write_bytes(0x3480600, Block_code) + # Block_code = [0xA2, 0x28, 0x80, 0x20, 0x24, 0x05, 0x80, 0x02, 0x24, 0x0F, 0x00, 0x84, 0x24, 0x18, 0x00, 0x01, # 0x3480600 + # 0x24, 0x19, 0x00, 0x08, 0x24, 0x08, 0x00, 0x80, 0xA6, 0x25, 0x00, 0xD8, 0xA2, 0x2F, 0x00, 0xDA, # 0x3480610 + # 0xA2, 0x38, 0x01, 0x65, 0xA2, 0x39, 0x09, 0xB6, 0xA2, 0x28, 0x0A, 0x24, 0xA2, 0x38, 0x0A, 0xCE, # 0x3480620 + # 0xA2, 0x28, 0x0A, 0xCF, 0xA2, 0x28, 0x0A, 0xE8, 0x24, 0x05, 0x00, 0x20, 0xA2, 0x25, 0x0B, 0x3F, # 0x3480630 + # 0xA2, 0x28, 0x0E, 0xDC, 0xA2, 0x25, 0x0E, 0xDD, 0xA2, 0x25, 0x0E, 0xED, 0xA2, 0x38, 0x0E, 0xF9, # 0x3480640 + # 0xA2, 0x39, 0x0E, 0xDA, 0xA2, 0x28, 0x0E, 0xE0, 0xA2, 0x38, 0x02, 0x0E, 0xA2, 0x39, 0x01, 0x49, # 0x3480650 + # 0xA2, 0x39, 0x0E, 0xD6, 0x24, 0x05, 0x01, 0xFF, 0x24, 0x0F, 0x01, 0xFB, 0x24, 0x18, 0x07, 0xFF, # 0x3480660 + # 0x24, 0x19, 0x00, 0x04, 0x24, 0x08, 0x00, 0x30, 0xA6, 0x25, 0x0E, 0xE2, 0xA6, 0x2F, 0x0E, 0xE8, # 0x3480670 + # 0xA6, 0x38, 0x0E, 0xEA, 0xA2, 0x28, 0x0E, 0xE7, 0xA2, 0x39, 0x0F, 0x1A, 0x24, 0x08, 0x10, 0x20, # 0x3480680 + # 0x24, 0x19, 0x00, 0x2C, 0x24, 0x18, 0x00, 0x49, 0x24, 0x0F, 0x00, 0x02, 0x24, 0x05, 0x00, 0x40, # 0x3480690 + # 0xA6, 0x28, 0x0E, 0xD4, 0x00, 0x00, 0x00, 0x00, 0xA2, 0x38, 0x00, 0xF6, 0xA2, 0x2F, 0x00, 0x3F, # 0x34806A0 + # 0xA2, 0x25, 0x0A, 0x42, 0x92, 0x25, 0x0E, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # 0x34806B0 + # 0xA2, 0x25, 0x0E, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # 0x34806C0 + # 0x24, 0x08, 0x0F, 0x01, 0x24, 0x19, 0x00, 0x09, 0x24, 0x18, 0x00, 0x03, 0x24, 0x0F, 0x00, 0x04, # 0x34806D0 + # 0x24, 0x05, 0x00, 0x06, 0xA6, 0x28, 0x01, 0x10, 0xA2, 0x39, 0x01, 0x2C, 0xA2, 0x38, 0x01, 0x2E, # 0x34806E0 + # 0xA2, 0x2F, 0x0F, 0x0A, 0xA2, 0x25, 0x0F, 0x21, 0x24, 0x05, 0x00, 0x00, 0xA2, 0x25, 0x00, 0xA7, # 0x34806F0 + # 0x24, 0x0F, 0x00, 0x21, 0xA2, 0x2F, 0x0E, 0xED, 0x24, 0x0F, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, # 0x3480700 + # # load current stones # or with gerudo card # write it back # load nabooru states + # 0x82, 0x25, 0x00, 0xA5, 0x34, 0xA5, 0x00, 0x00, 0xA2, 0x25, 0x00, 0xA5, 0x82, 0x25, 0x0E, 0xE7, # 0x3480710 + # # or with carpenters # write it back # started gerudo fight # write the value + # 0x34, 0xA5, 0x00, 0x00, 0xA2, 0x25, 0x0E, 0xE7, 0x24, 0x05, 0x00, 0x00, 0xA2, 0x25, 0x02, 0x29, # 0x3480720 + # # yell/door unlock # write the value # picked up keys # write the value + # 0x24, 0x05, 0x00, 0x00, 0xA6, 0x25, 0x02, 0x2A, 0x24, 0x05, 0x00, 0x00, 0xA2, 0x25, 0x02, 0x32, # 0x3480730 + # 0x03, 0xE0, 0x00, 0x08] # 0x3480740 + # rom.write_bytes(0x3480600, Block_code) + + + # will be populated with data to be written to initial save + # see initial_save.asm and config.asm for more details on specifics + # or just use the following functions to add an entry to the table + initial_save_table = [] + + # will set the bits of value to the offset in the save (or'ing them with what is already there) + def write_bits_to_save(offset, value): + nonlocal initial_save_table + initial_save_table += [(offset & 0xFF00) >> 8, offset & 0xFF, 0x00, value] + + # will overwrite the byte at offset with the given value + def write_byte_to_save(offset, value): + nonlocal initial_save_table + initial_save_table += [(offset & 0xFF00) >> 8, offset & 0xFF, 0x01, value] + + + # Initial Save Data + write_bits_to_save(0x003F, 0x02) # Some Biggoron's Sword flag? + + write_bits_to_save(0x00D4 + 0x00 * 0x1C + 0x04 + 0x0, 0x80) # Deku tree switch flag (navi text?) + write_bits_to_save(0x00D4 + 0x00 * 0x1C + 0x04 + 0x1, 0x20) # Deku tree switch flag (navi text?) + write_bits_to_save(0x00D4 + 0x00 * 0x1C + 0x04 + 0x2, 0x80) # Deku tree switch flag (navi text?) + write_bits_to_save(0x00D4 + 0x00 * 0x1C + 0x04 + 0x2, 0x04) # Deku tree switch flag (navi text?) + write_bits_to_save(0x00D4 + 0x01 * 0x1C + 0x04 + 0x2, 0x40) # Dodongo's Cavern switch flag (navi text?) + write_bits_to_save(0x00D4 + 0x01 * 0x1C + 0x04 + 0x2, 0x08) # Dodongo's Cavern switch flag (navi text?) + write_bits_to_save(0x00D4 + 0x01 * 0x1C + 0x04 + 0x2, 0x01) # Dodongo's Cavern switch flag (navi text?) + write_bits_to_save(0x00D4 + 0x02 * 0x1C + 0x04 + 0x0, 0x08) # Inside Jabu-Jabu's Belly switch flag (ruto?) + write_bits_to_save(0x00D4 + 0x02 * 0x1C + 0x04 + 0x0, 0x04) # Inside Jabu-Jabu's Belly switch flag (ruto?) + write_bits_to_save(0x00D4 + 0x02 * 0x1C + 0x04 + 0x0, 0x02) # Inside Jabu-Jabu's Belly switch flag (ruto?) + write_bits_to_save(0x00D4 + 0x02 * 0x1C + 0x04 + 0x0, 0x01) # Inside Jabu-Jabu's Belly switch flag (ruto?) + write_bits_to_save(0x00D4 + 0x02 * 0x1C + 0x04 + 0x1, 0x01) # Inside Jabu-Jabu's Belly switch flag (ruto?) + write_bits_to_save(0x00D4 + 0x03 * 0x1C + 0x04 + 0x0, 0x08) # Forest Temple switch flag (poes?) + write_bits_to_save(0x00D4 + 0x03 * 0x1C + 0x04 + 0x0, 0x01) # Forest Temple switch flag (poes?) + write_bits_to_save(0x00D4 + 0x03 * 0x1C + 0x04 + 0x2, 0x02) # Forest Temple switch flag (poes?) + write_bits_to_save(0x00D4 + 0x03 * 0x1C + 0x04 + 0x2, 0x01) # Forest Temple switch flag (poes?) + write_bits_to_save(0x00D4 + 0x04 * 0x1C + 0x04 + 0x1, 0x08) # Fire Temple switch flag (First locked door?) + write_bits_to_save(0x00D4 + 0x05 * 0x1C + 0x04 + 0x1, 0x01) # Water temple switch flag (navi text?) + write_bits_to_save(0x00D4 + 0x0B * 0x1C + 0x04 + 0x2, 0x01) # Gerudo Training Ground switch flag (command text?) + write_bits_to_save(0x00D4 + 0x51 * 0x1C + 0x04 + 0x2, 0x08) # Hyrule Field switch flag (???) + write_bits_to_save(0x00D4 + 0x55 * 0x1C + 0x04 + 0x0, 0x80) # Kokiri Forest switch flag (???) + write_bits_to_save(0x00D4 + 0x56 * 0x1C + 0x04 + 0x2, 0x40) # Sacred Forest Meadow switch flag (???) + write_bits_to_save(0x00D4 + 0x5B * 0x1C + 0x04 + 0x2, 0x01) # Lost Woods switch flag (???) + write_bits_to_save(0x00D4 + 0x5B * 0x1C + 0x04 + 0x3, 0x01) # Lost Woods switch flag (???) + write_bits_to_save(0x00D4 + 0x5C * 0x1C + 0x04 + 0x0, 0x80) # Desert Colossus switch flag (???) + write_bits_to_save(0x00D4 + 0x5F * 0x1C + 0x04 + 0x3, 0x20) # Hyrule Castle switch flag (???) + + write_bits_to_save(0x0ED4, 0x10) # "Met Deku Tree" + write_bits_to_save(0x0ED5, 0x20) # "Deku Tree Opened Mouth" + write_bits_to_save(0x0ED6, 0x08) # "Rented Horse From Ingo" + write_bits_to_save(0x0EDA, 0x08) # "Began Nabooru Battle" + write_bits_to_save(0x0EDC, 0x80) # "Entered the Master Sword Chamber" + write_bits_to_save(0x0EDD, 0x20) # "Pulled Master Sword from Pedestal" + write_bits_to_save(0x0EE0, 0x80) # "Spoke to Kaepora Gaebora by Lost Woods" + write_bits_to_save(0x0EE7, 0x20) # "Nabooru Captured by Twinrova" + write_bits_to_save(0x0EE7, 0x10) # "Spoke to Nabooru in Spirit Temple" + write_bits_to_save(0x0EED, 0x20) # "Sheik, Spawned at Master Sword Pedestal as Adult" + write_bits_to_save(0x0EED, 0x01) # "Nabooru Ordered to Fight by Twinrova" + write_bits_to_save(0x0EF9, 0x01) # "Greeted by Saria" + write_bits_to_save(0x0F0A, 0x04) # "Spoke to Ingo Once as Adult" + write_bits_to_save(0x0F1A, 0x04) # "Met Darunia in Fire Temple" + + write_bits_to_save(0x0F21, 0x04) # "Ruto in JJ (M3) Talk First Time" + write_bits_to_save(0x0F21, 0x02) # "Ruto in JJ (M2) Meet Ruto" + + write_bits_to_save(0x0EE2, 0x01) # "Began Ganondorf Battle" + write_bits_to_save(0x0EE3, 0x80) # "Began Bongo Bongo Battle" + write_bits_to_save(0x0EE3, 0x40) # "Began Barinade Battle" + write_bits_to_save(0x0EE3, 0x20) # "Began Twinrova Battle" + write_bits_to_save(0x0EE3, 0x10) # "Began Morpha Battle" + write_bits_to_save(0x0EE3, 0x08) # "Began Volvagia Battle" + write_bits_to_save(0x0EE3, 0x04) # "Began Phantom Ganon Battle" + write_bits_to_save(0x0EE3, 0x02) # "Began King Dodongo Battle" + write_bits_to_save(0x0EE3, 0x01) # "Began Gohma Battle" + + write_bits_to_save(0x0EE8, 0x01) # "Entered Deku Tree" + write_bits_to_save(0x0EE9, 0x80) # "Entered Temple of Time" + write_bits_to_save(0x0EE9, 0x40) # "Entered Goron City" + write_bits_to_save(0x0EE9, 0x20) # "Entered Hyrule Castle" + write_bits_to_save(0x0EE9, 0x10) # "Entered Zora's Domain" + write_bits_to_save(0x0EE9, 0x08) # "Entered Kakariko Village" + write_bits_to_save(0x0EE9, 0x02) # "Entered Death Mountain Trail" + write_bits_to_save(0x0EE9, 0x01) # "Entered Hyrule Field" + write_bits_to_save(0x0EEA, 0x04) # "Entered Ganon's Castle (Exterior)" + write_bits_to_save(0x0EEA, 0x02) # "Entered Death Mountain Crater" + write_bits_to_save(0x0EEA, 0x01) # "Entered Desert Colossus" + write_bits_to_save(0x0EEB, 0x80) # "Entered Zora's Fountain" + write_bits_to_save(0x0EEB, 0x40) # "Entered Graveyard" + write_bits_to_save(0x0EEB, 0x20) # "Entered Jabu-Jabu's Belly" + write_bits_to_save(0x0EEB, 0x10) # "Entered Lon Lon Ranch" + write_bits_to_save(0x0EEB, 0x08) # "Entered Gerudo's Fortress" + write_bits_to_save(0x0EEB, 0x04) # "Entered Gerudo Valley" + write_bits_to_save(0x0EEB, 0x02) # "Entered Lake Hylia" + write_bits_to_save(0x0EEB, 0x01) # "Entered Dodongo's Cavern" + # Set up for Rainbow Bridge dungeons condition Block_code = [0x15, 0x41, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x80, 0xEA, 0x00, 0xA5, @@ -922,7 +1018,8 @@ def patch_rom(world, rom): 0x31, 0x4A, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00] rom.write_bytes(0xE2B454, Block_code) elif world.bridge == 'open': - rom.write_bytes(0x34806B8, [0x34, 0xA5, 0x00, 0x20]) + # rom.write_bytes(0x34806B8, [0x34, 0xA5, 0x00, 0x20]) + write_bits_to_save(0xEDC, 0x20) # "Rainbow Bridge Built by Sages" elif world.bridge == 'dungeons': Block_code = [0x80, 0xEA, 0x00, 0xA7, 0x24, 0x01, 0x00, 0x3F, 0x08, 0x10, 0x02, 0x08, 0x31, 0x4A, 0x00, 0x3F] @@ -930,17 +1027,51 @@ def patch_rom(world, rom): if world.open_forest: #rom.write_byte(0x2081148, 0x80) - rom.write_bytes(0x34806C4, [0x92, 0x25, 0x0E, 0xD5, 0x34, 0xA5, 0x00, 0x10, 0xA2, 0x25, 0x0E, 0xD5]) + # rom.write_bytes(0x34806C4, [0x92, 0x25, 0x0E, 0xD5, 0x34, 0xA5, 0x00, 0x10, 0xA2, 0x25, 0x0E, 0xD5]) + write_bits_to_save(0xED5, 0x10) # "Showed Mido Sword & Shield" if world.open_door_of_time: - rom.write_bytes(0x34806BC, [0x34, 0xA5, 0x00, 0x08]) + # rom.write_bytes(0x34806BC, [0x34, 0xA5, 0x00, 0x08]) + write_bits_to_save(0xEDC, 0x08) # "Opened the Door of Time" if world.fast_ganon: rom.write_bytes(0xD82A12, [0x05, 0x17]) # Sets exit from Ganondorf fight to entrance to Ganon fight - rom.write_byte(0x348066A, 0x21) # Flag Spirit Trial as clear - rom.write_byte(0x348066E, 0xFF) # Flag the other five trials as clear - rom.write_byte(0x3480703, 0x29) # The barrier is dispelled. - rom.write_bytes(0x348070C, [0xA2, 0x2F, 0x01, 0xF1]) # Remove Ganon's Castle Boss Key door + # rom.write_byte(0x348066A, 0x21) # Flag Spirit Trial as clear + write_bits_to_save(0x0EE8, 0x20) # "Completed Spirit Trial" + # rom.write_byte(0x348066E, 0xFF) # Flag the other five trials as clear + write_bits_to_save(0x0EEA, 0x80) # "Completed Light Trial" + write_bits_to_save(0x0EEA, 0x40) # "Completed Fire Trial" + write_bits_to_save(0x0EEA, 0x20) # "Completed Shadow Trial" + write_bits_to_save(0x0EEA, 0x10) # "Completed Water Trial" + write_bits_to_save(0x0EEA, 0x08) # "Completed Forest Trial" + # rom.write_byte(0x3480703, 0x29) # The barrier is dispelled. + write_bits_to_save(0x0EED, 0x08) # "Dispelled Ganon's Tower Barrier" + # rom.write_bytes(0x348070C, [0xA2, 0x2F, 0x01, 0xF1]) # Remove Ganon's Castle Boss Key door + write_bits_to_save(0x00D4 + 0x0A * 0x1C + 0x04 + 0x1, 0x10) # Ganon's Tower switch flag (unlock boss key door) + + # open gerudo fortress + if world.gerudo_fortress == 'open': + # rom.write_byte(0x3480717, 0x40) # gerudo card itself + write_bits_to_save(0x00A5, 0x40) # Give Gerudo Card + # rom.write_byte(0x3480723, 0x0F) # carpenters are freed + write_bits_to_save(0x0EE7, 0x0F) # Free all 4 carpenters + # rom.write_byte(0x348072B, 0x0F) # gerudo guard fight flags + write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x04 + 0x1, 0x0F) # Thieves' Hideout switch flags (started all fights) + write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x04 + 0x2, 0x01) # Thieves' Hideout switch flags (heard yells/unlocked doors) + write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x04 + 0x3, 0xFE) # Thieves' Hideout switch flags (heard yells/unlocked doors) + # rom.write_bytes(0x3480732, [0x01, 0xFE]) # heard yells/unlocked doors + # rom.write_byte(0x348073B, 0xD4) # picked up keys/finished fights + write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x0C + 0x2, 0xD4) # Thieves' Hideout collection flags (picked up keys, marks fights finished as well) + elif world.gerudo_fortress == 'fast': + # rom.write_byte(0x3480723, 0x0E) # most carpenters are freed + write_bits_to_save(0x0EE7, 0x0E) # Free 3 carpenters + # rom.write_byte(0x348072B, 0x0D) # gerudo guard fight flags + # rom.write_bytes(0x3480732, [0x01, 0xDC]) # heard yells/unlocked doors + write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x04 + 0x1, 0x0D) # Thieves' Hideout switch flags (started all fights) + write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x04 + 0x2, 0x01) # Thieves' Hideout switch flags (heard yells/unlocked doors) + write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x04 + 0x3, 0xDC) # Thieves' Hideout switch flags (heard yells/unlocked doors) + # rom.write_byte(0x348073B, 0xC4) # picked up keys/finished fights + write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x0C + 0x2, 0xC4) # Thieves' Hideout collection flags (picked up keys, marks fights finished as well) # Sets hooks for gossip stone changes if world.hints != 'none': @@ -1046,10 +1177,7 @@ def patch_rom(world, rom): rom.write_byte(0x218C589, item_data[item.name]) #Fix text box elif location.type == 'Boss': if location.name == 'Links Pocket': - rom.write_byte(locationaddress, item_data[item.name][0]) - rom.write_byte(secondaryaddress, item_data[item.name][1]) - # rom.write_byte(locationaddress, 0x1C) - # rom.write_byte(secondaryaddress, 0xA5) + write_bits_to_save(item_data[item.name][1], item_data[item.name][0]) else: rom.write_byte(locationaddress, itemid) rom.write_byte(secondaryaddress, item_data[item.name][2]) @@ -1060,19 +1188,8 @@ def patch_rom(world, rom): rom.write_bytes(0xCA3EA2, [item_data[item.name][3][0], item_data[item.name][3][1]]) rom.write_bytes(0xCA3EA6, [item_data[item.name][3][2], item_data[item.name][3][3]]) - # open gerudo fortress - if world.gerudo_fortress == 'open': - rom.write_byte(0x3480717, 0x40) # gerudo card itself - rom.write_byte(0x3480723, 0x0F) # carpenters are freed - rom.write_byte(0x348072B, 0x0F) # gerudo guard fight flags - rom.write_bytes(0x3480732, [0x01, 0xFE]) # heard yells/unlocked doors - rom.write_byte(0x348073B, 0xD4) # picked up keys/finished fights - elif world.gerudo_fortress == 'fast': - rom.write_byte(0x3480723, 0x0E) # most carpenters are freed - rom.write_byte(0x348072B, 0x0D) # gerudo guard fight flags - rom.write_bytes(0x3480732, [0x01, 0xDC]) # heard yells/unlocked doors - rom.write_byte(0x348073B, 0xC4) # picked up keys/finished fights - + # actually write the save table to rom + rom.write_bytes(0x3481800, initial_save_table) messages = read_messages(rom) shop_items = read_shop_items(rom) diff --git a/data/base2current.json b/data/base2current.json index cbab5b70e..d884e8972 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -1 +1 @@ -[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 20]}, {"11325064": [12, 16, 10, 236, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 11, 63]}, {"11427312": [12, 16, 11, 232]}, {"11881272": [12, 16, 11, 248]}, {"11882076": [12, 16, 11, 213]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 11, 30, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 11, 37, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 11, 44, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 11, 23, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 9, 228]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 9, 177]}, {"12427480": [12, 16, 9, 206]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 9, 210]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12428008": [36, 10, 255, 255]}, {"12474768": [12, 16, 10, 244, 0, 0, 0, 0]}, {"12491456": [12, 16, 9, 240]}, {"12491480": [12, 16, 9, 249]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 10, 193]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 11, 51]}, {"14357459": [118]}, {"14624335": [118]}, {"14872723": [52]}, {"15506663": [122]}, {"55055360": [90, 93, 92, 94, 81, 82, 83]}, {"55058464": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 72, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 100, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 140, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 180, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 220, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 4, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 32, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 60, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 88, 83, 65, 1, 67]}, {"55058613": [198, 21, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 68]}, {"55058629": [198, 22, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 69]}, {"55058645": [198, 23, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 70]}, {"55058661": [198, 24, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 71]}, {"55058677": [198, 25, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 93]}, {"55058693": [198, 28, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 122]}, {"55058709": [198, 29, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 249]}, {"55058725": [198, 30, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 151]}, {"55058741": [198, 32, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 10, 6]}, {"55058757": [185, 1, 3, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 28]}, {"55058773": [185, 1, 4, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 29]}, {"55058789": [185, 1, 5, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 30]}, {"55058805": [185, 1, 6, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 42]}, {"55058821": [185, 1, 7, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 97]}, {"55058837": [185, 1, 10, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 98]}, {"55058853": [184, 2]}, {"55058856": [128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 99]}, {"55058869": [184, 2, 1, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 100]}, {"55058885": [184, 2, 2, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 101]}, {"55058901": [184, 2, 3, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 124]}, {"55058917": [184, 2, 4, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 125]}, {"55058933": [184, 2, 5, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 126]}, {"55058949": [184, 2, 6, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 127]}, {"55058965": [184, 2, 7, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 162]}, {"55058981": [184, 2, 8, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 135]}, {"55058997": [184, 2, 9, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 136]}, {"55059013": [200, 4]}, {"55059016": [128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 137]}, {"55059029": [200, 4, 1, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 138]}, {"55059045": [200, 4, 2, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 139]}, {"55059061": [200, 4, 3, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 140]}, {"55059077": [200, 4, 4, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 142]}, {"55059093": [200, 4, 5, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 143]}, {"55059109": [200, 4, 6, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 163]}, {"55059125": [200, 4, 7, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 165]}, {"55059141": [200, 4, 8, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 146]}, {"55059157": [200, 4, 9, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 254, 147]}, {"55059173": [170, 3, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 148]}, {"55059189": [170, 4, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 149]}, {"55059205": [170, 5, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 166]}, {"55059221": [170, 6, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 169]}, {"55059237": [170, 7, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 155]}, {"55059253": [170, 8, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 159]}, {"55059269": [170, 11, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 160]}, {"55059285": [170, 12, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 161]}, {"55059301": [170, 13, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 61, 67, 12]}, {"55059317": [248, 255, 255, 128, 64, 37, 204, 128, 64, 36, 64, 77, 131, 9, 85]}, {"55059333": [183, 255, 255, 128, 64, 37, 196, 128, 64, 36, 64, 83, 146, 219, 230]}, {"55059349": [216, 255, 255, 128, 64, 37, 196, 128, 64, 37, 140, 83, 147, 218, 230]}, {"55059365": [216, 255, 255, 128, 64, 37, 196, 128, 64, 37, 140, 83, 148, 217, 230]}, {"55059381": [216, 255, 255, 128, 64, 37, 196, 128, 64, 37, 140, 83, 142, 224, 50]}, {"55059397": [206, 255, 255, 128, 64, 37, 196, 128, 64, 37, 168, 83, 143, 224, 50]}, {"55059413": [206, 255, 255, 128, 64, 37, 196, 128, 64, 37, 168, 83, 144, 224, 50]}, {"55059429": [206, 255, 255, 128, 64, 37, 196, 128, 64, 37, 168, 83, 140, 238, 52]}, {"55059445": [187, 255, 255, 128, 64, 37, 196, 128, 64, 36, 64, 83, 141, 238, 52]}, {"55059461": [187, 255, 255, 128, 64, 37, 196, 128, 64, 36, 64, 79, 65, 19, 233]}, {"55059477": [189, 255, 255, 128, 64, 38, 92, 128, 64, 36, 64, 79, 65, 226, 228]}, {"55059493": [205, 255, 255, 128, 64, 38, 124, 128, 64, 37, 116, 79, 65, 225, 232]}, {"55059509": [205, 255, 255, 128, 64, 38, 156, 128, 64, 36, 64, 3, 224]}, {"55059523": [8, 52, 162]}, {"55059528": [144, 136]}, {"55059531": [125, 52, 1]}, {"55059535": [255, 17, 1]}, {"55059539": [2, 52, 2]}, {"55059543": [8, 52, 2]}, {"55059547": [9, 3, 224]}, {"55059551": [8]}, {"55059556": [144, 136]}, {"55059559": [163, 49, 8]}, {"55059563": [192, 17]}, {"55059567": [5, 52, 2]}, {"55059571": [84, 52, 1]}, {"55059575": [64, 17, 1]}, {"55059579": [2, 52, 2]}, {"55059583": [53, 52, 2]}, {"55059587": [54, 3, 224]}, {"55059591": [8]}, {"55059596": [144, 136]}, {"55059599": [163, 49, 8]}, {"55059603": [24, 17]}, {"55059607": [5, 52, 2]}, {"55059611": [50, 52, 1]}, {"55059615": [8, 17, 1]}, {"55059619": [2, 52, 2]}, {"55059623": [51, 52, 2]}, {"55059627": [52, 3, 224]}, {"55059631": [8]}, {"55059636": [144, 136]}, {"55059639": [163, 49, 8]}, {"55059643": [3, 17]}, {"55059647": [5, 52, 2]}, {"55059651": [4, 52, 1]}, {"55059655": [1, 17, 1]}, {"55059659": [2, 52, 2]}, {"55059663": [48, 52, 2]}, {"55059667": [49, 3, 224]}, {"55059671": [8]}, {"55059676": [144, 136]}, {"55059679": [162, 49, 8]}, {"55059683": [192, 17]}, {"55059687": [5, 52, 2]}, {"55059691": [5, 52, 1]}, {"55059695": [64, 17, 1]}, {"55059699": [2, 52, 2]}, {"55059703": [96, 52, 2]}, {"55059707": [123, 3, 224]}, {"55059711": [8]}, {"55059716": [144, 136]}, {"55059719": [162, 49, 8]}, {"55059723": [48, 17]}, {"55059727": [2, 52, 2]}, {"55059731": [69, 52, 2]}, {"55059735": [70, 3, 224]}, {"55059739": [8]}, {"55059744": [144, 136]}, {"55059747": [162, 49, 8]}, {"55059751": [6, 17]}, {"55059755": [2, 52, 2]}, {"55059759": [55, 52, 2]}, {"55059763": [56, 3, 224]}, {"55059767": [8]}, {"55059772": [144, 136]}, {"55059775": [161, 49, 8]}, {"55059779": [32, 17]}, {"55059783": [2, 52, 2]}, {"55059787": [121, 52, 2]}, {"55059791": [122, 3, 224]}, {"55059795": [8]}, {"55059800": [144, 136]}, {"55059803": [161, 49, 8]}, {"55059807": [4, 17]}, {"55059811": [2, 52, 2]}, {"55059815": [119, 52, 2]}, {"55059819": [120, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [50, 17]}, {"55059835": [2, 52, 2]}, {"55059839": [192, 52, 2]}, {"55059843": [193, 3, 224]}, {"55059847": [8]}, {"55059852": [144, 136]}, {"55059855": [163, 49, 8]}, {"55059859": [3, 17]}, {"55059863": [2, 52, 2]}, {"55059867": [77, 52, 162]}, {"55059872": [3, 224]}, {"55059875": [8]}, {"55059880": [144, 136]}, {"55059883": [163, 49, 8]}, {"55059887": [24, 17]}, {"55059891": [2, 52, 2]}, {"55059895": [77, 52, 162]}, {"55059900": [3, 224]}, {"55059903": [8]}, {"55059908": [3, 224]}, {"55059911": [8]}, {"55059916": [52, 8]}, {"55059919": [1, 160, 136]}, {"55059923": [62, 3, 224]}, {"55059927": [8]}, {"55059932": [36, 136]}, {"55059935": [134, 36, 9, 255, 255, 37, 41]}, {"55059943": [1, 52, 1]}, {"55059947": [3]}, {"55059949": [41, 8, 42, 20, 32]}, {"55059955": [7]}, {"55059960": [1, 9, 80, 33, 145, 75]}, {"55059968": [52, 1]}, {"55059971": [255, 21, 97, 255, 247]}, {"55059980": [161, 69]}, {"55059984": [3, 224]}, {"55059987": [8]}, {"55059992": [36, 136]}, {"55059995": [168, 1, 6, 64, 33, 145, 9]}, {"55060004": [1, 37, 72, 37, 161, 9]}, {"55060012": [3, 224]}, {"55060015": [8]}, {"55060020": [36, 136]}, {"55060023": [188, 1, 5, 64, 33, 129, 9]}, {"55060032": [5, 33]}, {"55060035": [2]}, {"55060040": [52, 9]}, {"55060044": [37, 41]}, {"55060047": [1, 161, 9]}, {"55060052": [3, 224]}, {"55060055": [8]}, {"55060060": [52, 8]}, {"55060063": [1, 160, 136]}, {"55060067": [61, 52, 8]}, {"55060071": [20, 160, 136]}, {"55060075": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060087": [8]}, {"55060092": [52, 8]}, {"55060095": [1, 160, 136]}, {"55060099": [50, 160, 136]}, {"55060103": [58, 52, 8]}, {"55060107": [48, 164, 136, 19, 244, 160, 136]}, {"55060115": [51, 3, 224]}, {"55060119": [8]}, {"55060124": [52, 8]}, {"55060127": [2, 160, 136]}, {"55060131": [50, 52, 8]}, {"55060135": [1, 160, 136]}, {"55060139": [58, 160, 136]}, {"55060143": [60, 52, 8]}, {"55060147": [96, 164, 136, 19, 244, 160, 136]}, {"55060155": [51, 3, 224]}, {"55060159": [8]}, {"55060164": [48, 132]}, {"55060167": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060179": [140, 16, 129]}, {"55060183": [22, 145, 2]}, {"55060187": [117, 52, 1]}, {"55060191": [141, 16, 129]}, {"55060195": [19, 145, 2]}, {"55060199": [117, 16, 128]}, {"55060203": [17, 145, 2]}, {"55060207": [116, 52, 1]}, {"55060211": [138, 16, 129]}, {"55060215": [14, 145, 2]}, {"55060219": [116, 52, 1]}, {"55060223": [139, 16, 129]}, {"55060227": [11, 145, 2]}, {"55060231": [116, 52, 1]}, {"55060235": [88, 16, 129]}, {"55060239": [8, 52, 2]}, {"55060244": [52, 1]}, {"55060247": [120, 16, 129]}, {"55060251": [5, 52, 2]}, {"55060256": [52, 1]}, {"55060259": [121, 16, 129]}, {"55060263": [2, 52, 2]}, {"55060268": [52, 2]}, {"55060271": [255, 3, 224]}, {"55060275": [8]}, {"55060280": [143, 166]}, {"55060283": [48, 132, 197]}, {"55060287": [4, 8, 16, 9, 214]}, {"55060296": [143, 185]}, {"55060299": [44, 135, 37]}, {"55060303": [4, 8, 16, 9, 214]}, {"55060312": [60, 10, 128, 64, 37, 74, 32]}, {"55060320": [141, 75]}, {"55060323": [12, 17, 96]}, {"55060327": [2]}, {"55060332": [149, 69]}, {"55060335": [4, 60, 10, 128, 64, 37, 74, 32, 16, 161, 64]}, {"55060348": [60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060360": [3, 224]}, {"55060363": [8]}, {"55060368": [60, 8, 128, 64, 37, 8, 32]}, {"55060376": [141, 9]}, {"55060379": [12, 17, 32]}, {"55060383": [2]}, {"55060388": [129, 3]}, {"55060391": [2]}, {"55060393": [3, 15, 195]}, {"55060397": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55060411": [8]}, {"55060416": [144, 69]}, {"55060419": [3, 60, 8, 128, 64, 37, 8, 32]}, {"55060428": [141, 9]}, {"55060431": [12, 17, 32]}, {"55060435": [2]}, {"55060440": [145, 5]}, {"55060443": [3, 3, 224]}, {"55060447": [8]}, {"55060452": [143, 162]}, {"55060455": [36, 144, 69]}, {"55060460": [60, 8, 128, 64, 37, 8, 32]}, {"55060468": [141, 9]}, {"55060471": [12, 17, 32]}, {"55060475": [19]}, {"55060480": [145, 5]}, {"55060483": [1, 175, 164]}, {"55060488": [175, 165]}, {"55060491": [4, 175, 166]}, {"55060495": [8, 39, 189, 255, 232, 175, 191]}, {"55060503": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55060515": [6, 145, 6]}, {"55060519": [7, 141, 9]}, {"55060523": [8, 1, 32, 248, 9]}, {"55060532": [143, 191]}, {"55060535": [16, 39, 189]}, {"55060539": [24, 143, 164]}, {"55060544": [143, 165]}, {"55060547": [4, 143, 166]}, {"55060551": [8, 3, 224]}, {"55060555": [8]}, {"55060560": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55060571": [16, 175, 163]}, {"55060575": [20, 175, 191]}, {"55060579": [24, 12, 16, 10, 33]}, {"55060588": [143, 162]}, {"55060591": [16, 143, 163]}, {"55060595": [20, 143, 191]}, {"55060599": [24, 39, 189]}, {"55060603": [32, 3, 224]}, {"55060607": [8]}, {"55060612": [39, 189, 255, 232, 175, 191]}, {"55060619": [16, 60, 8, 128, 64, 37, 8, 32]}, {"55060628": [173]}, {"55060632": [173]}, {"55060635": [4, 173]}, {"55060639": [8, 173]}, {"55060643": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55060659": [42]}, {"55060665": [9, 15, 195, 1, 33, 32, 38]}, {"55060673": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 91]}, {"55060688": [4, 64]}, {"55060691": [34]}, {"55060696": [52, 68]}, {"55060700": [12, 16, 10, 160]}, {"55060708": [16, 96]}, {"55060711": [12]}, {"55060716": [60, 8, 128, 64, 37, 8, 32]}, {"55060724": [140, 105]}, {"55060728": [173, 9]}, {"55060732": [140, 105]}, {"55060735": [4, 173, 9]}, {"55060739": [4, 140, 105]}, {"55060743": [8, 173, 9]}, {"55060747": [8, 52, 9]}, {"55060751": [1, 173, 9]}, {"55060755": [12, 144, 98]}, {"55060760": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55060776": [52, 1]}, {"55060779": [10, 21, 65]}, {"55060783": [6]}, {"55060788": [149, 42]}, {"55060791": [28, 49, 74, 240, 31]}, {"55060797": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55060807": [28, 129, 9, 4, 36, 5, 33]}, {"55060815": [2]}, {"55060821": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55060831": [16, 39, 189]}, {"55060835": [24, 3, 224]}, {"55060839": [8]}, {"55060844": [39, 189, 255, 232, 175, 191]}, {"55060851": [16, 12, 16, 10, 105]}, {"55060860": [36, 1, 255, 255, 16, 65]}, {"55060867": [4]}, {"55060872": [52, 68]}, {"55060876": [12, 16, 10, 147]}, {"55060884": [143, 191]}, {"55060887": [16, 39, 189]}, {"55060891": [24, 3, 224]}, {"55060895": [8]}, {"55060900": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55060911": [164, 52, 8]}, {"55060916": [52, 137]}, {"55060920": [148, 170]}, {"55060924": [52, 1]}, {"55060927": [10, 21, 65]}, {"55060931": [14]}, {"55060936": [148, 171]}, {"55060939": [28, 52, 1]}, {"55060943": [16, 20, 65]}, {"55060947": [8]}, {"55060952": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55060963": [4]}, {"55060968": [36, 2, 255, 255, 16]}, {"55060975": [21]}, {"55060980": [52, 8]}, {"55060983": [1, 49, 105]}, {"55060987": [31, 52, 1]}, {"55060991": [21, 21, 65]}, {"55060995": [12]}, {"55061000": [52, 1]}, {"55061003": [62, 16, 129]}, {"55061007": [7]}, {"55061012": [52, 1]}, {"55061015": [66, 16, 129]}, {"55061019": [4]}, {"55061024": [36, 2, 255, 255, 16]}, {"55061031": [7]}, {"55061036": [52, 8]}, {"55061039": [2, 144, 169, 1, 65]}, {"55061045": [2, 18]}, {"55061049": [72, 16, 37]}, {"55061053": [2, 18]}, {"55061057": [73, 16, 37, 3, 224]}, {"55061063": [8]}, {"55061068": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061083": [4, 141, 9]}, {"55061088": [17, 32]}, {"55061091": [5]}, {"55061097": [9, 82, 2, 21, 68, 255, 250]}, {"55061108": [49, 34]}, {"55061111": [255, 3, 224]}, {"55061115": [8]}, {"55061120": [39, 189, 255, 224, 175, 176]}, {"55061127": [16, 175, 177]}, {"55061131": [20, 175, 191]}, {"55061135": [24, 52, 130]}, {"55061140": [52, 80]}, {"55061144": [38, 8, 255, 128, 5]}, {"55061151": [18]}, {"55061156": [60, 17, 128, 64, 38, 49, 32, 32, 52, 9]}, {"55061167": [16, 1, 9]}, {"55061171": [24]}, {"55061174": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061192": [142, 40]}, {"55061195": [12, 1]}, {"55061198": [248, 9]}, {"55061204": [20, 80, 255, 239]}, {"55061212": [54, 35]}, {"55061216": [16]}, {"55061219": [2]}, {"55061224": [52, 3]}, {"55061228": [143, 176]}, {"55061231": [16, 143, 177]}, {"55061235": [20, 143, 191]}, {"55061239": [24, 39, 189]}, {"55061243": [32, 3, 224]}, {"55061247": [8]}, {"55061252": [140, 136, 29, 44, 52, 9]}, {"55061259": [1]}, {"55061261": [9, 78]}, {"55061264": [1, 9, 16, 36, 16, 64]}, {"55061271": [36]}, {"55061276": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55061291": [164, 52, 1]}, {"55061295": [61, 17, 129]}, {"55061299": [10]}, {"55061305": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55061315": [25]}, {"55061320": [52, 13]}, {"55061323": [1, 161, 141, 29, 40, 37, 74]}, {"55061331": [3, 16]}, {"55061335": [9]}, {"55061340": [52, 12]}, {"55061343": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55061359": [14]}, {"55061364": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 20, 1, 1, 10, 64, 33, 129, 8]}, {"55061400": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061412": [52, 2]}, {"55061416": [3, 224]}, {"55061419": [8]}, {"55061424": [60, 8, 128, 64, 37, 8, 20]}, {"55061432": [129, 8]}, {"55061436": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061448": [3, 224]}, {"55061451": [8]}, {"55061456": [175, 164]}, {"55061459": [104, 175, 165]}, {"55061463": [108, 175, 166]}, {"55061467": [112, 175, 167]}, {"55061471": [116, 39, 189, 255, 232, 175, 163]}, {"55061479": [16, 175, 191]}, {"55061483": [20, 60, 8, 128, 64, 37, 8, 32, 16, 129, 8]}, {"55061496": [17]}, {"55061499": [14]}, {"55061504": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55061515": [1, 165, 42]}, {"55061520": [60, 9, 128, 65, 52, 10]}, {"55061527": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 33]}, {"55061556": [143, 163]}, {"55061559": [16, 143, 191]}, {"55061563": [20, 39, 189]}, {"55061567": [24, 143, 164]}, {"55061571": [104, 143, 165]}, {"55061575": [108, 143, 166]}, {"55061579": [112, 143, 167]}, {"55061583": [116, 132, 110, 19, 196, 3, 224]}, {"55061591": [8]}, {"55061596": [147, 25]}, {"55061599": [116, 52, 1]}, {"55061603": [255, 23, 33]}, {"55061607": [2]}, {"55061612": [52, 25]}, {"55061615": [44, 3, 224]}, {"55061619": [8, 167, 185]}, {"55061623": [154, 147, 44]}, {"55061627": [116, 52, 1]}, {"55061631": [255, 21, 129]}, {"55061635": [2]}, {"55061640": [52, 12]}, {"55061643": [44, 3, 224]}, {"55061647": [8]}, {"55061652": [145, 174]}, {"55061655": [116, 52, 1]}, {"55061659": [255, 21, 193]}, {"55061663": [2]}, {"55061668": [52, 14]}, {"55061671": [44, 3, 224]}, {"55061675": [8, 167, 174]}, {"55061679": [154, 145, 207]}, {"55061683": [116, 52, 1]}, {"55061687": [255, 21, 225]}, {"55061691": [2]}, {"55061696": [52, 15]}, {"55061699": [44, 3, 224]}, {"55061703": [8, 167, 175]}, {"55061707": [154, 60, 8, 128, 64, 37, 8, 32, 20, 142, 9]}, {"55061719": [104, 173, 9]}, {"55061724": [142, 9]}, {"55061727": [108, 173, 9]}, {"55061731": [4, 150, 9]}, {"55061735": [112, 165, 9]}, {"55061739": [8, 150, 9]}, {"55061743": [156, 165, 9]}, {"55061747": [10, 3, 224]}, {"55061751": [8, 142, 14]}, {"55061755": [4, 39, 189, 255, 224, 175, 176]}, {"55061763": [16, 175, 177]}, {"55061767": [20, 175, 191]}, {"55061771": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 20, 142, 8]}, {"55061791": [4, 17]}, {"55061795": [5]}, {"55061800": [12, 16, 11, 105]}, {"55061808": [16]}, {"55061811": [3]}, {"55061816": [12, 16, 11, 124]}, {"55061824": [12, 16, 11, 92, 52, 4]}, {"55061832": [12, 16, 11, 92, 52, 4]}, {"55061839": [1, 12, 16, 11, 92, 52, 4]}, {"55061847": [2, 143, 176]}, {"55061851": [16, 143, 177]}, {"55061855": [20, 143, 191]}, {"55061859": [24, 39, 189]}, {"55061863": [32, 3, 224]}, {"55061867": [8]}, {"55061872": [2, 4, 64, 33, 145, 9]}, {"55061879": [108, 52, 1]}, {"55061883": [255, 17, 33]}, {"55061887": [7]}, {"55061892": [2, 9, 72, 33, 145, 41]}, {"55061899": [116, 52, 1]}, {"55061903": [44, 17, 33]}, {"55061907": [2]}, {"55061912": [161, 9]}, {"55061915": [105, 3, 224]}, {"55061919": [8]}, {"55061924": [39, 189, 255, 232, 175, 191]}, {"55061931": [16, 142, 40]}, {"55061936": [174, 8]}, {"55061939": [64, 142, 40]}, {"55061943": [4, 174, 8]}, {"55061947": [68, 150, 40]}, {"55061951": [8, 166, 8]}, {"55061955": [72, 162]}, {"55061958": [15, 51, 146, 8]}, {"55061963": [74, 52, 1]}, {"55061967": [255, 21, 1]}, {"55061971": [3]}, {"55061976": [12, 16, 11, 138]}, {"55061984": [143, 191]}, {"55061987": [16, 39, 189]}, {"55061991": [24, 3, 224]}, {"55061995": [8]}, {"55062000": [142, 8]}, {"55062003": [64, 174, 8]}, {"55062007": [104, 142, 8]}, {"55062011": [68, 174, 8]}, {"55062015": [108, 150, 8]}, {"55062019": [72, 166, 8]}, {"55062023": [112, 146, 8]}, {"55062027": [104, 52, 1]}, {"55062031": [255, 21, 1]}, {"55062035": [3]}, {"55062040": [52, 8]}, {"55062043": [1, 162, 8, 15, 51, 3, 224]}, {"55062051": [8]}, {"55062056": [39, 189, 255, 232, 175, 191]}, {"55062063": [16, 150, 8]}, {"55062067": [156, 49, 8]}, {"55062071": [64, 17]}, {"55062075": [5]}, {"55062080": [150, 8]}, {"55062083": [112, 49, 8, 255, 15, 53, 8]}, {"55062091": [48, 166, 8]}, {"55062095": [112, 146, 40]}, {"55062099": [1, 162, 8]}, {"55062103": [105, 150, 40]}, {"55062107": [2, 166, 8]}, {"55062111": [106, 142, 40]}, {"55062115": [4, 174, 8]}, {"55062119": [108, 12, 16, 11, 164, 52, 4]}, {"55062128": [12, 16, 11, 164, 52, 4]}, {"55062135": [1, 12, 16, 11, 164, 52, 4]}, {"55062143": [2, 143, 191]}, {"55062147": [16, 39, 189]}, {"55062151": [24, 3, 224]}, {"55062155": [8]}, {"55062160": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 47, 60, 145, 10]}, {"55062175": [108, 52, 1]}, {"55062179": [255, 17, 65]}, {"55062183": [5]}, {"55062188": [1, 42, 72, 33, 145, 41]}, {"55062196": [21, 32]}, {"55062199": [28]}, {"55062204": [60, 9, 128, 64, 37, 41, 47, 47, 37, 41]}, {"55062215": [1, 145, 42]}, {"55062220": [17, 64]}, {"55062223": [19]}, {"55062228": [2, 10, 88, 33, 145, 107]}, {"55062235": [116, 52, 1]}, {"55062239": [255, 17, 97, 255, 248]}, {"55062248": [146, 12]}, {"55062251": [108, 17, 138, 255, 245]}, {"55062260": [146, 12]}, {"55062263": [109, 17, 138, 255, 242]}, {"55062272": [146, 12]}, {"55062275": [110, 17, 138, 255, 239]}, {"55062284": [161, 11]}, {"55062287": [105, 161, 10]}, {"55062291": [108, 16]}, {"55062295": [4]}, {"55062300": [52, 9]}, {"55062303": [255, 161, 9]}, {"55062307": [105, 161, 9]}, {"55062311": [108, 3, 224]}, {"55062315": [8]}, {"55062320": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55062333": [1, 1, 1, 1, 1]}, {"55062339": [1, 1, 1, 1, 1]}, {"55062345": [1]}, {"55062347": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55062357": [51, 8, 33, 32, 15]}, {"55062363": [71, 21, 234]}, {"55062367": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062379": [164]}, {"55062381": [15, 122, 3, 20, 64]}, {"55062387": [5, 52, 2, 72, 48, 21, 226]}, {"55062395": [7]}, {"55062400": [36, 25]}, {"55062403": [3, 16]}, {"55062407": [4, 52, 2, 99, 17, 21, 226]}, {"55062415": [2]}, {"55062420": [36, 25]}, {"55062423": [3, 3, 224]}, {"55062427": [8]}, {"55062432": [141, 173, 138, 160, 52, 2, 128]}, {"55062440": [16, 77]}, {"55062443": [2]}, {"55062448": [16]}, {"55062451": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55062467": [1, 16, 64]}, {"55062471": [2]}, {"55062476": [16]}, {"55062479": [2, 52, 2]}, {"55062483": [1, 161, 226, 28, 191, 3, 224]}, {"55062491": [8]}, {"55062497": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062511": [164]}, {"55062513": [15, 122, 3, 20, 64]}, {"55062519": [5, 52, 2, 72, 48, 21, 226]}, {"55062527": [7]}, {"55062532": [36, 25]}, {"55062535": [3, 16]}, {"55062539": [4, 52, 2, 99, 17, 21, 226]}, {"55062547": [2]}, {"55062552": [36, 25]}, {"55062555": [3, 3, 224]}, {"55062559": [8]}] \ No newline at end of file +[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 20]}, {"11325064": [12, 16, 10, 236, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 11, 63]}, {"11427312": [12, 16, 11, 232]}, {"11562028": [12, 16, 12, 9]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 11, 248]}, {"11882076": [12, 16, 11, 213]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 11, 30, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 11, 37, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 11, 44, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 11, 23, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 9, 228]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 9, 177]}, {"12427480": [12, 16, 9, 206]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 9, 210]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12428008": [36, 10, 255, 255]}, {"12474768": [12, 16, 10, 244, 0, 0, 0, 0]}, {"12491456": [12, 16, 9, 240]}, {"12491480": [12, 16, 9, 249]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 10, 193]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 11, 51]}, {"14357459": [118]}, {"14624335": [118]}, {"14872723": [52]}, {"15506663": [122]}, {"55057408": [90, 93, 92, 94, 81, 82, 83]}, {"55058464": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 72, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 100, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 140, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 180, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 220, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 4, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 32, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 60, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 88, 83, 65, 1, 67]}, {"55058613": [198, 21, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 68]}, {"55058629": [198, 22, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 69]}, {"55058645": [198, 23, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 70]}, {"55058661": [198, 24, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 71]}, {"55058677": [198, 25, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 93]}, {"55058693": [198, 28, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 122]}, {"55058709": [198, 29, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 249]}, {"55058725": [198, 30, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 151]}, {"55058741": [198, 32, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 10, 6]}, {"55058757": [185, 1, 3, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 28]}, {"55058773": [185, 1, 4, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 29]}, {"55058789": [185, 1, 5, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 30]}, {"55058805": [185, 1, 6, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 42]}, {"55058821": [185, 1, 7, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 97]}, {"55058837": [185, 1, 10, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 98]}, {"55058853": [184, 2]}, {"55058856": [128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 99]}, {"55058869": [184, 2, 1, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 100]}, {"55058885": [184, 2, 2, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 101]}, {"55058901": [184, 2, 3, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 124]}, {"55058917": [184, 2, 4, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 125]}, {"55058933": [184, 2, 5, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 126]}, {"55058949": [184, 2, 6, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 127]}, {"55058965": [184, 2, 7, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 162]}, {"55058981": [184, 2, 8, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 135]}, {"55058997": [184, 2, 9, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 136]}, {"55059013": [200, 4]}, {"55059016": [128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 137]}, {"55059029": [200, 4, 1, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 138]}, {"55059045": [200, 4, 2, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 139]}, {"55059061": [200, 4, 3, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 140]}, {"55059077": [200, 4, 4, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 142]}, {"55059093": [200, 4, 5, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 143]}, {"55059109": [200, 4, 6, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 163]}, {"55059125": [200, 4, 7, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 165]}, {"55059141": [200, 4, 8, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 146]}, {"55059157": [200, 4, 9, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 254, 147]}, {"55059173": [170, 3, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 148]}, {"55059189": [170, 4, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 149]}, {"55059205": [170, 5, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 166]}, {"55059221": [170, 6, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 169]}, {"55059237": [170, 7, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 155]}, {"55059253": [170, 8, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 159]}, {"55059269": [170, 11, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 160]}, {"55059285": [170, 12, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 161]}, {"55059301": [170, 13, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 61, 67, 12]}, {"55059317": [248, 255, 255, 128, 64, 37, 204, 128, 64, 36, 64, 77, 131, 9, 85]}, {"55059333": [183, 255, 255, 128, 64, 37, 196, 128, 64, 36, 64, 83, 146, 219, 230]}, {"55059349": [216, 255, 255, 128, 64, 37, 196, 128, 64, 37, 140, 83, 147, 218, 230]}, {"55059365": [216, 255, 255, 128, 64, 37, 196, 128, 64, 37, 140, 83, 148, 217, 230]}, {"55059381": [216, 255, 255, 128, 64, 37, 196, 128, 64, 37, 140, 83, 142, 224, 50]}, {"55059397": [206, 255, 255, 128, 64, 37, 196, 128, 64, 37, 168, 83, 143, 224, 50]}, {"55059413": [206, 255, 255, 128, 64, 37, 196, 128, 64, 37, 168, 83, 144, 224, 50]}, {"55059429": [206, 255, 255, 128, 64, 37, 196, 128, 64, 37, 168, 83, 140, 238, 52]}, {"55059445": [187, 255, 255, 128, 64, 37, 196, 128, 64, 36, 64, 83, 141, 238, 52]}, {"55059461": [187, 255, 255, 128, 64, 37, 196, 128, 64, 36, 64, 79, 65, 19, 233]}, {"55059477": [189, 255, 255, 128, 64, 38, 92, 128, 64, 36, 64, 79, 65, 226, 228]}, {"55059493": [205, 255, 255, 128, 64, 38, 124, 128, 64, 37, 116, 79, 65, 225, 232]}, {"55059509": [205, 255, 255, 128, 64, 38, 156, 128, 64, 36, 64, 3, 224]}, {"55059523": [8, 52, 162]}, {"55059528": [144, 136]}, {"55059531": [125, 52, 1]}, {"55059535": [255, 17, 1]}, {"55059539": [2, 52, 2]}, {"55059543": [8, 52, 2]}, {"55059547": [9, 3, 224]}, {"55059551": [8]}, {"55059556": [144, 136]}, {"55059559": [163, 49, 8]}, {"55059563": [192, 17]}, {"55059567": [5, 52, 2]}, {"55059571": [84, 52, 1]}, {"55059575": [64, 17, 1]}, {"55059579": [2, 52, 2]}, {"55059583": [53, 52, 2]}, {"55059587": [54, 3, 224]}, {"55059591": [8]}, {"55059596": [144, 136]}, {"55059599": [163, 49, 8]}, {"55059603": [24, 17]}, {"55059607": [5, 52, 2]}, {"55059611": [50, 52, 1]}, {"55059615": [8, 17, 1]}, {"55059619": [2, 52, 2]}, {"55059623": [51, 52, 2]}, {"55059627": [52, 3, 224]}, {"55059631": [8]}, {"55059636": [144, 136]}, {"55059639": [163, 49, 8]}, {"55059643": [3, 17]}, {"55059647": [5, 52, 2]}, {"55059651": [4, 52, 1]}, {"55059655": [1, 17, 1]}, {"55059659": [2, 52, 2]}, {"55059663": [48, 52, 2]}, {"55059667": [49, 3, 224]}, {"55059671": [8]}, {"55059676": [144, 136]}, {"55059679": [162, 49, 8]}, {"55059683": [192, 17]}, {"55059687": [5, 52, 2]}, {"55059691": [5, 52, 1]}, {"55059695": [64, 17, 1]}, {"55059699": [2, 52, 2]}, {"55059703": [96, 52, 2]}, {"55059707": [123, 3, 224]}, {"55059711": [8]}, {"55059716": [144, 136]}, {"55059719": [162, 49, 8]}, {"55059723": [48, 17]}, {"55059727": [2, 52, 2]}, {"55059731": [69, 52, 2]}, {"55059735": [70, 3, 224]}, {"55059739": [8]}, {"55059744": [144, 136]}, {"55059747": [162, 49, 8]}, {"55059751": [6, 17]}, {"55059755": [2, 52, 2]}, {"55059759": [55, 52, 2]}, {"55059763": [56, 3, 224]}, {"55059767": [8]}, {"55059772": [144, 136]}, {"55059775": [161, 49, 8]}, {"55059779": [32, 17]}, {"55059783": [2, 52, 2]}, {"55059787": [121, 52, 2]}, {"55059791": [122, 3, 224]}, {"55059795": [8]}, {"55059800": [144, 136]}, {"55059803": [161, 49, 8]}, {"55059807": [4, 17]}, {"55059811": [2, 52, 2]}, {"55059815": [119, 52, 2]}, {"55059819": [120, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [50, 17]}, {"55059835": [2, 52, 2]}, {"55059839": [192, 52, 2]}, {"55059843": [193, 3, 224]}, {"55059847": [8]}, {"55059852": [144, 136]}, {"55059855": [163, 49, 8]}, {"55059859": [3, 17]}, {"55059863": [2, 52, 2]}, {"55059867": [77, 52, 162]}, {"55059872": [3, 224]}, {"55059875": [8]}, {"55059880": [144, 136]}, {"55059883": [163, 49, 8]}, {"55059887": [24, 17]}, {"55059891": [2, 52, 2]}, {"55059895": [77, 52, 162]}, {"55059900": [3, 224]}, {"55059903": [8]}, {"55059908": [3, 224]}, {"55059911": [8]}, {"55059916": [52, 8]}, {"55059919": [1, 160, 136]}, {"55059923": [62, 3, 224]}, {"55059927": [8]}, {"55059932": [36, 136]}, {"55059935": [134, 36, 9, 255, 255, 37, 41]}, {"55059943": [1, 52, 1]}, {"55059947": [3]}, {"55059949": [41, 8, 42, 20, 32]}, {"55059955": [7]}, {"55059960": [1, 9, 80, 33, 145, 75]}, {"55059968": [52, 1]}, {"55059971": [255, 21, 97, 255, 247]}, {"55059980": [161, 69]}, {"55059984": [3, 224]}, {"55059987": [8]}, {"55059992": [36, 136]}, {"55059995": [168, 1, 6, 64, 33, 145, 9]}, {"55060004": [1, 37, 72, 37, 161, 9]}, {"55060012": [3, 224]}, {"55060015": [8]}, {"55060020": [36, 136]}, {"55060023": [188, 1, 5, 64, 33, 129, 9]}, {"55060032": [5, 33]}, {"55060035": [2]}, {"55060040": [52, 9]}, {"55060044": [37, 41]}, {"55060047": [1, 161, 9]}, {"55060052": [3, 224]}, {"55060055": [8]}, {"55060060": [52, 8]}, {"55060063": [1, 160, 136]}, {"55060067": [61, 52, 8]}, {"55060071": [20, 160, 136]}, {"55060075": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060087": [8]}, {"55060092": [52, 8]}, {"55060095": [1, 160, 136]}, {"55060099": [50, 160, 136]}, {"55060103": [58, 52, 8]}, {"55060107": [48, 164, 136, 19, 244, 160, 136]}, {"55060115": [51, 3, 224]}, {"55060119": [8]}, {"55060124": [52, 8]}, {"55060127": [2, 160, 136]}, {"55060131": [50, 52, 8]}, {"55060135": [1, 160, 136]}, {"55060139": [58, 160, 136]}, {"55060143": [60, 52, 8]}, {"55060147": [96, 164, 136, 19, 244, 160, 136]}, {"55060155": [51, 3, 224]}, {"55060159": [8]}, {"55060164": [48, 132]}, {"55060167": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060179": [140, 16, 129]}, {"55060183": [22, 145, 2]}, {"55060187": [117, 52, 1]}, {"55060191": [141, 16, 129]}, {"55060195": [19, 145, 2]}, {"55060199": [117, 16, 128]}, {"55060203": [17, 145, 2]}, {"55060207": [116, 52, 1]}, {"55060211": [138, 16, 129]}, {"55060215": [14, 145, 2]}, {"55060219": [116, 52, 1]}, {"55060223": [139, 16, 129]}, {"55060227": [11, 145, 2]}, {"55060231": [116, 52, 1]}, {"55060235": [88, 16, 129]}, {"55060239": [8, 52, 2]}, {"55060244": [52, 1]}, {"55060247": [120, 16, 129]}, {"55060251": [5, 52, 2]}, {"55060256": [52, 1]}, {"55060259": [121, 16, 129]}, {"55060263": [2, 52, 2]}, {"55060268": [52, 2]}, {"55060271": [255, 3, 224]}, {"55060275": [8]}, {"55060280": [143, 166]}, {"55060283": [48, 132, 197]}, {"55060287": [4, 8, 16, 9, 214]}, {"55060296": [143, 185]}, {"55060299": [44, 135, 37]}, {"55060303": [4, 8, 16, 9, 214]}, {"55060312": [60, 10, 128, 64, 37, 74, 32]}, {"55060320": [141, 75]}, {"55060323": [12, 17, 96]}, {"55060327": [2]}, {"55060332": [149, 69]}, {"55060335": [4, 60, 10, 128, 64, 37, 74, 32, 16, 161, 64]}, {"55060348": [60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060360": [3, 224]}, {"55060363": [8]}, {"55060368": [60, 8, 128, 64, 37, 8, 32]}, {"55060376": [141, 9]}, {"55060379": [12, 17, 32]}, {"55060383": [2]}, {"55060388": [129, 3]}, {"55060391": [2]}, {"55060393": [3, 15, 195]}, {"55060397": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55060411": [8]}, {"55060416": [144, 69]}, {"55060419": [3, 60, 8, 128, 64, 37, 8, 32]}, {"55060428": [141, 9]}, {"55060431": [12, 17, 32]}, {"55060435": [2]}, {"55060440": [145, 5]}, {"55060443": [3, 3, 224]}, {"55060447": [8]}, {"55060452": [143, 162]}, {"55060455": [36, 144, 69]}, {"55060460": [60, 8, 128, 64, 37, 8, 32]}, {"55060468": [141, 9]}, {"55060471": [12, 17, 32]}, {"55060475": [19]}, {"55060480": [145, 5]}, {"55060483": [1, 175, 164]}, {"55060488": [175, 165]}, {"55060491": [4, 175, 166]}, {"55060495": [8, 39, 189, 255, 232, 175, 191]}, {"55060503": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55060515": [6, 145, 6]}, {"55060519": [7, 141, 9]}, {"55060523": [8, 1, 32, 248, 9]}, {"55060532": [143, 191]}, {"55060535": [16, 39, 189]}, {"55060539": [24, 143, 164]}, {"55060544": [143, 165]}, {"55060547": [4, 143, 166]}, {"55060551": [8, 3, 224]}, {"55060555": [8]}, {"55060560": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55060571": [16, 175, 163]}, {"55060575": [20, 175, 191]}, {"55060579": [24, 12, 16, 10, 33]}, {"55060588": [143, 162]}, {"55060591": [16, 143, 163]}, {"55060595": [20, 143, 191]}, {"55060599": [24, 39, 189]}, {"55060603": [32, 3, 224]}, {"55060607": [8]}, {"55060612": [39, 189, 255, 232, 175, 191]}, {"55060619": [16, 60, 8, 128, 64, 37, 8, 32]}, {"55060628": [173]}, {"55060632": [173]}, {"55060635": [4, 173]}, {"55060639": [8, 173]}, {"55060643": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55060659": [42]}, {"55060665": [9, 15, 195, 1, 33, 32, 38]}, {"55060673": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 91]}, {"55060688": [4, 64]}, {"55060691": [34]}, {"55060696": [52, 68]}, {"55060700": [12, 16, 10, 160]}, {"55060708": [16, 96]}, {"55060711": [12]}, {"55060716": [60, 8, 128, 64, 37, 8, 32]}, {"55060724": [140, 105]}, {"55060728": [173, 9]}, {"55060732": [140, 105]}, {"55060735": [4, 173, 9]}, {"55060739": [4, 140, 105]}, {"55060743": [8, 173, 9]}, {"55060747": [8, 52, 9]}, {"55060751": [1, 173, 9]}, {"55060755": [12, 144, 98]}, {"55060760": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55060776": [52, 1]}, {"55060779": [10, 21, 65]}, {"55060783": [6]}, {"55060788": [149, 42]}, {"55060791": [28, 49, 74, 240, 31]}, {"55060797": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55060807": [28, 129, 9, 4, 36, 5, 33]}, {"55060815": [2]}, {"55060821": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55060831": [16, 39, 189]}, {"55060835": [24, 3, 224]}, {"55060839": [8]}, {"55060844": [39, 189, 255, 232, 175, 191]}, {"55060851": [16, 12, 16, 10, 105]}, {"55060860": [36, 1, 255, 255, 16, 65]}, {"55060867": [4]}, {"55060872": [52, 68]}, {"55060876": [12, 16, 10, 147]}, {"55060884": [143, 191]}, {"55060887": [16, 39, 189]}, {"55060891": [24, 3, 224]}, {"55060895": [8]}, {"55060900": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55060911": [164, 52, 8]}, {"55060916": [52, 137]}, {"55060920": [148, 170]}, {"55060924": [52, 1]}, {"55060927": [10, 21, 65]}, {"55060931": [14]}, {"55060936": [148, 171]}, {"55060939": [28, 52, 1]}, {"55060943": [16, 20, 65]}, {"55060947": [8]}, {"55060952": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55060963": [4]}, {"55060968": [36, 2, 255, 255, 16]}, {"55060975": [21]}, {"55060980": [52, 8]}, {"55060983": [1, 49, 105]}, {"55060987": [31, 52, 1]}, {"55060991": [21, 21, 65]}, {"55060995": [12]}, {"55061000": [52, 1]}, {"55061003": [62, 16, 129]}, {"55061007": [7]}, {"55061012": [52, 1]}, {"55061015": [66, 16, 129]}, {"55061019": [4]}, {"55061024": [36, 2, 255, 255, 16]}, {"55061031": [7]}, {"55061036": [52, 8]}, {"55061039": [2, 144, 169, 1, 65]}, {"55061045": [2, 18]}, {"55061049": [72, 16, 37]}, {"55061053": [2, 18]}, {"55061057": [73, 16, 37, 3, 224]}, {"55061063": [8]}, {"55061068": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061083": [4, 141, 9]}, {"55061088": [17, 32]}, {"55061091": [5]}, {"55061097": [9, 82, 2, 21, 68, 255, 250]}, {"55061108": [49, 34]}, {"55061111": [255, 3, 224]}, {"55061115": [8]}, {"55061120": [39, 189, 255, 224, 175, 176]}, {"55061127": [16, 175, 177]}, {"55061131": [20, 175, 191]}, {"55061135": [24, 52, 130]}, {"55061140": [52, 80]}, {"55061144": [38, 8, 255, 128, 5]}, {"55061151": [18]}, {"55061156": [60, 17, 128, 64, 38, 49, 32, 32, 52, 9]}, {"55061167": [16, 1, 9]}, {"55061171": [24]}, {"55061174": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061192": [142, 40]}, {"55061195": [12, 1]}, {"55061198": [248, 9]}, {"55061204": [20, 80, 255, 239]}, {"55061212": [54, 35]}, {"55061216": [16]}, {"55061219": [2]}, {"55061224": [52, 3]}, {"55061228": [143, 176]}, {"55061231": [16, 143, 177]}, {"55061235": [20, 143, 191]}, {"55061239": [24, 39, 189]}, {"55061243": [32, 3, 224]}, {"55061247": [8]}, {"55061252": [140, 136, 29, 44, 52, 9]}, {"55061259": [1]}, {"55061261": [9, 78]}, {"55061264": [1, 9, 16, 36, 16, 64]}, {"55061271": [36]}, {"55061276": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55061291": [164, 52, 1]}, {"55061295": [61, 17, 129]}, {"55061299": [10]}, {"55061305": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55061315": [25]}, {"55061320": [52, 13]}, {"55061323": [1, 161, 141, 29, 40, 37, 74]}, {"55061331": [3, 16]}, {"55061335": [9]}, {"55061340": [52, 12]}, {"55061343": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55061359": [14]}, {"55061364": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 1, 1, 10, 64, 33, 129, 8]}, {"55061400": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061412": [52, 2]}, {"55061416": [3, 224]}, {"55061419": [8]}, {"55061424": [60, 8, 128, 64, 37, 8, 28]}, {"55061432": [129, 8]}, {"55061436": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061448": [3, 224]}, {"55061451": [8]}, {"55061456": [175, 164]}, {"55061459": [104, 175, 165]}, {"55061463": [108, 175, 166]}, {"55061467": [112, 175, 167]}, {"55061471": [116, 39, 189, 255, 232, 175, 163]}, {"55061479": [16, 175, 191]}, {"55061483": [20, 60, 8, 128, 64, 37, 8, 32, 16, 129, 8]}, {"55061496": [17]}, {"55061499": [14]}, {"55061504": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55061515": [1, 165, 42]}, {"55061520": [60, 9, 128, 65, 52, 10]}, {"55061527": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 33]}, {"55061556": [143, 163]}, {"55061559": [16, 143, 191]}, {"55061563": [20, 39, 189]}, {"55061567": [24, 143, 164]}, {"55061571": [104, 143, 165]}, {"55061575": [108, 143, 166]}, {"55061579": [112, 143, 167]}, {"55061583": [116, 132, 110, 19, 196, 3, 224]}, {"55061591": [8]}, {"55061596": [147, 25]}, {"55061599": [116, 52, 1]}, {"55061603": [255, 23, 33]}, {"55061607": [2]}, {"55061612": [52, 25]}, {"55061615": [44, 3, 224]}, {"55061619": [8, 167, 185]}, {"55061623": [154, 147, 44]}, {"55061627": [116, 52, 1]}, {"55061631": [255, 21, 129]}, {"55061635": [2]}, {"55061640": [52, 12]}, {"55061643": [44, 3, 224]}, {"55061647": [8]}, {"55061652": [145, 174]}, {"55061655": [116, 52, 1]}, {"55061659": [255, 21, 193]}, {"55061663": [2]}, {"55061668": [52, 14]}, {"55061671": [44, 3, 224]}, {"55061675": [8, 167, 174]}, {"55061679": [154, 145, 207]}, {"55061683": [116, 52, 1]}, {"55061687": [255, 21, 225]}, {"55061691": [2]}, {"55061696": [52, 15]}, {"55061699": [44, 3, 224]}, {"55061703": [8, 167, 175]}, {"55061707": [154, 60, 8, 128, 64, 37, 8, 32, 20, 142, 9]}, {"55061719": [104, 173, 9]}, {"55061724": [142, 9]}, {"55061727": [108, 173, 9]}, {"55061731": [4, 150, 9]}, {"55061735": [112, 165, 9]}, {"55061739": [8, 150, 9]}, {"55061743": [156, 165, 9]}, {"55061747": [10, 3, 224]}, {"55061751": [8, 142, 14]}, {"55061755": [4, 39, 189, 255, 224, 175, 176]}, {"55061763": [16, 175, 177]}, {"55061767": [20, 175, 191]}, {"55061771": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 20, 142, 8]}, {"55061791": [4, 17]}, {"55061795": [5]}, {"55061800": [12, 16, 11, 105]}, {"55061808": [16]}, {"55061811": [3]}, {"55061816": [12, 16, 11, 124]}, {"55061824": [12, 16, 11, 92, 52, 4]}, {"55061832": [12, 16, 11, 92, 52, 4]}, {"55061839": [1, 12, 16, 11, 92, 52, 4]}, {"55061847": [2, 143, 176]}, {"55061851": [16, 143, 177]}, {"55061855": [20, 143, 191]}, {"55061859": [24, 39, 189]}, {"55061863": [32, 3, 224]}, {"55061867": [8]}, {"55061872": [2, 4, 64, 33, 145, 9]}, {"55061879": [108, 52, 1]}, {"55061883": [255, 17, 33]}, {"55061887": [7]}, {"55061892": [2, 9, 72, 33, 145, 41]}, {"55061899": [116, 52, 1]}, {"55061903": [44, 17, 33]}, {"55061907": [2]}, {"55061912": [161, 9]}, {"55061915": [105, 3, 224]}, {"55061919": [8]}, {"55061924": [39, 189, 255, 232, 175, 191]}, {"55061931": [16, 142, 40]}, {"55061936": [174, 8]}, {"55061939": [64, 142, 40]}, {"55061943": [4, 174, 8]}, {"55061947": [68, 150, 40]}, {"55061951": [8, 166, 8]}, {"55061955": [72, 162]}, {"55061958": [15, 51, 146, 8]}, {"55061963": [74, 52, 1]}, {"55061967": [255, 21, 1]}, {"55061971": [3]}, {"55061976": [12, 16, 11, 138]}, {"55061984": [143, 191]}, {"55061987": [16, 39, 189]}, {"55061991": [24, 3, 224]}, {"55061995": [8]}, {"55062000": [142, 8]}, {"55062003": [64, 174, 8]}, {"55062007": [104, 142, 8]}, {"55062011": [68, 174, 8]}, {"55062015": [108, 150, 8]}, {"55062019": [72, 166, 8]}, {"55062023": [112, 146, 8]}, {"55062027": [104, 52, 1]}, {"55062031": [255, 21, 1]}, {"55062035": [3]}, {"55062040": [52, 8]}, {"55062043": [1, 162, 8, 15, 51, 3, 224]}, {"55062051": [8]}, {"55062056": [39, 189, 255, 232, 175, 191]}, {"55062063": [16, 150, 8]}, {"55062067": [156, 49, 8]}, {"55062071": [64, 17]}, {"55062075": [5]}, {"55062080": [150, 8]}, {"55062083": [112, 49, 8, 255, 15, 53, 8]}, {"55062091": [48, 166, 8]}, {"55062095": [112, 146, 40]}, {"55062099": [1, 162, 8]}, {"55062103": [105, 150, 40]}, {"55062107": [2, 166, 8]}, {"55062111": [106, 142, 40]}, {"55062115": [4, 174, 8]}, {"55062119": [108, 12, 16, 11, 164, 52, 4]}, {"55062128": [12, 16, 11, 164, 52, 4]}, {"55062135": [1, 12, 16, 11, 164, 52, 4]}, {"55062143": [2, 143, 191]}, {"55062147": [16, 39, 189]}, {"55062151": [24, 3, 224]}, {"55062155": [8]}, {"55062160": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 47, 60, 145, 10]}, {"55062175": [108, 52, 1]}, {"55062179": [255, 17, 65]}, {"55062183": [5]}, {"55062188": [1, 42, 72, 33, 145, 41]}, {"55062196": [21, 32]}, {"55062199": [28]}, {"55062204": [60, 9, 128, 64, 37, 41, 47, 47, 37, 41]}, {"55062215": [1, 145, 42]}, {"55062220": [17, 64]}, {"55062223": [19]}, {"55062228": [2, 10, 88, 33, 145, 107]}, {"55062235": [116, 52, 1]}, {"55062239": [255, 17, 97, 255, 248]}, {"55062248": [146, 12]}, {"55062251": [108, 17, 138, 255, 245]}, {"55062260": [146, 12]}, {"55062263": [109, 17, 138, 255, 242]}, {"55062272": [146, 12]}, {"55062275": [110, 17, 138, 255, 239]}, {"55062284": [161, 11]}, {"55062287": [105, 161, 10]}, {"55062291": [108, 16]}, {"55062295": [4]}, {"55062300": [52, 9]}, {"55062303": [255, 161, 9]}, {"55062307": [105, 161, 9]}, {"55062311": [108, 3, 224]}, {"55062315": [8]}, {"55062320": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55062333": [1, 1, 1, 1, 1]}, {"55062339": [1, 1, 1, 1, 1]}, {"55062345": [1]}, {"55062347": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55062357": [51, 8, 33, 32, 15]}, {"55062363": [71, 21, 234]}, {"55062367": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062379": [164]}, {"55062381": [15, 122, 3, 20, 64]}, {"55062387": [5, 52, 2, 72, 48, 21, 226]}, {"55062395": [7]}, {"55062400": [36, 25]}, {"55062403": [3, 16]}, {"55062407": [4, 52, 2, 99, 17, 21, 226]}, {"55062415": [2]}, {"55062420": [36, 25]}, {"55062423": [3, 3, 224]}, {"55062427": [8]}, {"55062432": [141, 173, 138, 160, 52, 2, 128]}, {"55062440": [16, 77]}, {"55062443": [2]}, {"55062448": [16]}, {"55062451": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55062467": [1, 16, 64]}, {"55062471": [2]}, {"55062476": [16]}, {"55062479": [2, 52, 2]}, {"55062483": [1, 161, 226, 28, 191, 3, 224]}, {"55062491": [8]}, {"55062497": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062511": [164]}, {"55062513": [15, 122, 3, 20, 64]}, {"55062519": [5, 52, 2, 72, 48, 21, 226]}, {"55062527": [7]}, {"55062532": [36, 25]}, {"55062535": [3, 16]}, {"55062539": [4, 52, 2, 99, 17, 21, 226]}, {"55062547": [2]}, {"55062552": [36, 25]}, {"55062555": [3, 3, 224]}, {"55062559": [8]}, {"55062564": [162, 37]}, {"55062567": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55062579": [4, 142, 10]}, {"55062584": [17, 64]}, {"55062587": [11]}, {"55062593": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55062605": [24, 194, 2, 23]}, {"55062611": [3, 49, 89]}, {"55062615": [255, 129, 234]}, {"55062620": [3, 42, 200, 37, 8, 16, 12, 12, 161, 249]}, {"55062632": [3, 224]}, {"55062635": [8]}] \ No newline at end of file From 583118bd66817f79bced1a30c5c509d8ee1f0f3f Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Mon, 2 Jul 2018 17:29:04 -0500 Subject: [PATCH 072/755] Fixed a few incorrect flags, cleaned up comments. --- Rom.py | 52 ++-------------------------------------------------- 1 file changed, 2 insertions(+), 50 deletions(-) diff --git a/Rom.py b/Rom.py index 1d159c1cc..3dfad0244 100644 --- a/Rom.py +++ b/Rom.py @@ -871,38 +871,8 @@ def patch_rom(world, rom): rom.write_bytes(0x10, Block_code) # Set hooks for various code -# rom.write_bytes(0xBD6C94, ...) #Progressive Items Object Hook, unsure where this case is called -# rom.write_bytes(0xB06C2C, [0x0C, 0x10, 0x01, 0x80]) #Save Writing Hook rom.write_bytes(0xDBF428, [0x0C, 0x10, 0x03, 0x00]) #Set Fishing Hook - # Write Initial Save File - # 0 1 2 3 4 5 6 7 8 9 A B C D E F - # Block_code = [0xA2, 0x28, 0x80, 0x20, 0x24, 0x05, 0x80, 0x02, 0x24, 0x0F, 0x00, 0x84, 0x24, 0x18, 0x00, 0x01, # 0x3480600 - # 0x24, 0x19, 0x00, 0x08, 0x24, 0x08, 0x00, 0x80, 0xA6, 0x25, 0x00, 0xD8, 0xA2, 0x2F, 0x00, 0xDA, # 0x3480610 - # 0xA2, 0x38, 0x01, 0x65, 0xA2, 0x39, 0x09, 0xB6, 0xA2, 0x28, 0x0A, 0x24, 0xA2, 0x38, 0x0A, 0xCE, # 0x3480620 - # 0xA2, 0x28, 0x0A, 0xCF, 0xA2, 0x28, 0x0A, 0xE8, 0x24, 0x05, 0x00, 0x20, 0xA2, 0x25, 0x0B, 0x3F, # 0x3480630 - # 0xA2, 0x28, 0x0E, 0xDC, 0xA2, 0x25, 0x0E, 0xDD, 0xA2, 0x25, 0x0E, 0xED, 0xA2, 0x38, 0x0E, 0xF9, # 0x3480640 - # 0xA2, 0x39, 0x0E, 0xDA, 0xA2, 0x28, 0x0E, 0xE0, 0xA2, 0x38, 0x02, 0x0E, 0xA2, 0x39, 0x01, 0x49, # 0x3480650 - # 0xA2, 0x39, 0x0E, 0xD6, 0x24, 0x05, 0x01, 0xFF, 0x24, 0x0F, 0x01, 0xFB, 0x24, 0x18, 0x07, 0xFF, # 0x3480660 - # 0x24, 0x19, 0x00, 0x04, 0x24, 0x08, 0x00, 0x30, 0xA6, 0x25, 0x0E, 0xE2, 0xA6, 0x2F, 0x0E, 0xE8, # 0x3480670 - # 0xA6, 0x38, 0x0E, 0xEA, 0xA2, 0x28, 0x0E, 0xE7, 0xA2, 0x39, 0x0F, 0x1A, 0x24, 0x08, 0x10, 0x20, # 0x3480680 - # 0x24, 0x19, 0x00, 0x2C, 0x24, 0x18, 0x00, 0x49, 0x24, 0x0F, 0x00, 0x02, 0x24, 0x05, 0x00, 0x40, # 0x3480690 - # 0xA6, 0x28, 0x0E, 0xD4, 0x00, 0x00, 0x00, 0x00, 0xA2, 0x38, 0x00, 0xF6, 0xA2, 0x2F, 0x00, 0x3F, # 0x34806A0 - # 0xA2, 0x25, 0x0A, 0x42, 0x92, 0x25, 0x0E, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # 0x34806B0 - # 0xA2, 0x25, 0x0E, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # 0x34806C0 - # 0x24, 0x08, 0x0F, 0x01, 0x24, 0x19, 0x00, 0x09, 0x24, 0x18, 0x00, 0x03, 0x24, 0x0F, 0x00, 0x04, # 0x34806D0 - # 0x24, 0x05, 0x00, 0x06, 0xA6, 0x28, 0x01, 0x10, 0xA2, 0x39, 0x01, 0x2C, 0xA2, 0x38, 0x01, 0x2E, # 0x34806E0 - # 0xA2, 0x2F, 0x0F, 0x0A, 0xA2, 0x25, 0x0F, 0x21, 0x24, 0x05, 0x00, 0x00, 0xA2, 0x25, 0x00, 0xA7, # 0x34806F0 - # 0x24, 0x0F, 0x00, 0x21, 0xA2, 0x2F, 0x0E, 0xED, 0x24, 0x0F, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, # 0x3480700 - # # load current stones # or with gerudo card # write it back # load nabooru states - # 0x82, 0x25, 0x00, 0xA5, 0x34, 0xA5, 0x00, 0x00, 0xA2, 0x25, 0x00, 0xA5, 0x82, 0x25, 0x0E, 0xE7, # 0x3480710 - # # or with carpenters # write it back # started gerudo fight # write the value - # 0x34, 0xA5, 0x00, 0x00, 0xA2, 0x25, 0x0E, 0xE7, 0x24, 0x05, 0x00, 0x00, 0xA2, 0x25, 0x02, 0x29, # 0x3480720 - # # yell/door unlock # write the value # picked up keys # write the value - # 0x24, 0x05, 0x00, 0x00, 0xA6, 0x25, 0x02, 0x2A, 0x24, 0x05, 0x00, 0x00, 0xA2, 0x25, 0x02, 0x32, # 0x3480730 - # 0x03, 0xE0, 0x00, 0x08] # 0x3480740 - # rom.write_bytes(0x3480600, Block_code) - # will be populated with data to be written to initial save # see initial_save.asm and config.asm for more details on specifics @@ -919,12 +889,11 @@ def write_byte_to_save(offset, value): nonlocal initial_save_table initial_save_table += [(offset & 0xFF00) >> 8, offset & 0xFF, 0x01, value] - # Initial Save Data write_bits_to_save(0x003F, 0x02) # Some Biggoron's Sword flag? write_bits_to_save(0x00D4 + 0x00 * 0x1C + 0x04 + 0x0, 0x80) # Deku tree switch flag (navi text?) - write_bits_to_save(0x00D4 + 0x00 * 0x1C + 0x04 + 0x1, 0x20) # Deku tree switch flag (navi text?) + write_bits_to_save(0x00D4 + 0x00 * 0x1C + 0x04 + 0x1, 0x02) # Deku tree switch flag (navi text?) write_bits_to_save(0x00D4 + 0x00 * 0x1C + 0x04 + 0x2, 0x80) # Deku tree switch flag (navi text?) write_bits_to_save(0x00D4 + 0x00 * 0x1C + 0x04 + 0x2, 0x04) # Deku tree switch flag (navi text?) write_bits_to_save(0x00D4 + 0x01 * 0x1C + 0x04 + 0x2, 0x40) # Dodongo's Cavern switch flag (navi text?) @@ -946,7 +915,7 @@ def write_byte_to_save(offset, value): write_bits_to_save(0x00D4 + 0x55 * 0x1C + 0x04 + 0x0, 0x80) # Kokiri Forest switch flag (???) write_bits_to_save(0x00D4 + 0x56 * 0x1C + 0x04 + 0x2, 0x40) # Sacred Forest Meadow switch flag (???) write_bits_to_save(0x00D4 + 0x5B * 0x1C + 0x04 + 0x2, 0x01) # Lost Woods switch flag (???) - write_bits_to_save(0x00D4 + 0x5B * 0x1C + 0x04 + 0x3, 0x01) # Lost Woods switch flag (???) + write_bits_to_save(0x00D4 + 0x5B * 0x1C + 0x04 + 0x3, 0x80) # Lost Woods switch flag (???) write_bits_to_save(0x00D4 + 0x5C * 0x1C + 0x04 + 0x0, 0x80) # Desert Colossus switch flag (???) write_bits_to_save(0x00D4 + 0x5F * 0x1C + 0x04 + 0x3, 0x20) # Hyrule Castle switch flag (???) @@ -1018,7 +987,6 @@ def write_byte_to_save(offset, value): 0x31, 0x4A, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00] rom.write_bytes(0xE2B454, Block_code) elif world.bridge == 'open': - # rom.write_bytes(0x34806B8, [0x34, 0xA5, 0x00, 0x20]) write_bits_to_save(0xEDC, 0x20) # "Rainbow Bridge Built by Sages" elif world.bridge == 'dungeons': Block_code = [0x80, 0xEA, 0x00, 0xA7, 0x24, 0x01, 0x00, 0x3F, @@ -1026,51 +994,35 @@ def write_byte_to_save(offset, value): rom.write_bytes(0xE2B454, Block_code) if world.open_forest: - #rom.write_byte(0x2081148, 0x80) - # rom.write_bytes(0x34806C4, [0x92, 0x25, 0x0E, 0xD5, 0x34, 0xA5, 0x00, 0x10, 0xA2, 0x25, 0x0E, 0xD5]) write_bits_to_save(0xED5, 0x10) # "Showed Mido Sword & Shield" if world.open_door_of_time: - # rom.write_bytes(0x34806BC, [0x34, 0xA5, 0x00, 0x08]) write_bits_to_save(0xEDC, 0x08) # "Opened the Door of Time" if world.fast_ganon: rom.write_bytes(0xD82A12, [0x05, 0x17]) # Sets exit from Ganondorf fight to entrance to Ganon fight - # rom.write_byte(0x348066A, 0x21) # Flag Spirit Trial as clear write_bits_to_save(0x0EE8, 0x20) # "Completed Spirit Trial" - # rom.write_byte(0x348066E, 0xFF) # Flag the other five trials as clear write_bits_to_save(0x0EEA, 0x80) # "Completed Light Trial" write_bits_to_save(0x0EEA, 0x40) # "Completed Fire Trial" write_bits_to_save(0x0EEA, 0x20) # "Completed Shadow Trial" write_bits_to_save(0x0EEA, 0x10) # "Completed Water Trial" write_bits_to_save(0x0EEA, 0x08) # "Completed Forest Trial" - # rom.write_byte(0x3480703, 0x29) # The barrier is dispelled. write_bits_to_save(0x0EED, 0x08) # "Dispelled Ganon's Tower Barrier" - # rom.write_bytes(0x348070C, [0xA2, 0x2F, 0x01, 0xF1]) # Remove Ganon's Castle Boss Key door write_bits_to_save(0x00D4 + 0x0A * 0x1C + 0x04 + 0x1, 0x10) # Ganon's Tower switch flag (unlock boss key door) # open gerudo fortress if world.gerudo_fortress == 'open': - # rom.write_byte(0x3480717, 0x40) # gerudo card itself write_bits_to_save(0x00A5, 0x40) # Give Gerudo Card - # rom.write_byte(0x3480723, 0x0F) # carpenters are freed write_bits_to_save(0x0EE7, 0x0F) # Free all 4 carpenters - # rom.write_byte(0x348072B, 0x0F) # gerudo guard fight flags write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x04 + 0x1, 0x0F) # Thieves' Hideout switch flags (started all fights) write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x04 + 0x2, 0x01) # Thieves' Hideout switch flags (heard yells/unlocked doors) write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x04 + 0x3, 0xFE) # Thieves' Hideout switch flags (heard yells/unlocked doors) - # rom.write_bytes(0x3480732, [0x01, 0xFE]) # heard yells/unlocked doors - # rom.write_byte(0x348073B, 0xD4) # picked up keys/finished fights write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x0C + 0x2, 0xD4) # Thieves' Hideout collection flags (picked up keys, marks fights finished as well) elif world.gerudo_fortress == 'fast': - # rom.write_byte(0x3480723, 0x0E) # most carpenters are freed write_bits_to_save(0x0EE7, 0x0E) # Free 3 carpenters - # rom.write_byte(0x348072B, 0x0D) # gerudo guard fight flags - # rom.write_bytes(0x3480732, [0x01, 0xDC]) # heard yells/unlocked doors write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x04 + 0x1, 0x0D) # Thieves' Hideout switch flags (started all fights) write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x04 + 0x2, 0x01) # Thieves' Hideout switch flags (heard yells/unlocked doors) write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x04 + 0x3, 0xDC) # Thieves' Hideout switch flags (heard yells/unlocked doors) - # rom.write_byte(0x348073B, 0xC4) # picked up keys/finished fights write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x0C + 0x2, 0xC4) # Thieves' Hideout collection flags (picked up keys, marks fights finished as well) # Sets hooks for gossip stone changes From f4ebc04869e1f3d21e65d65264f87adfb3a90ad2 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Mon, 2 Jul 2018 19:46:48 -0500 Subject: [PATCH 073/755] Broke up fast ganon into multiple settings. It doesn't work yet though. --- BaseClasses.py | 15 ++++++++++++--- Gui.py | 46 ++++++++++++++++++++++++++++++++-------------- Hints.py | 2 +- ItemList.py | 8 ++++++++ Main.py | 1 + Rom.py | 21 +++++++++++++++------ Rules.py | 6 +++--- Settings.py | 21 ++++++++++++++++----- 8 files changed, 88 insertions(+), 32 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 89ea7e788..7ba8f9486 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -29,6 +29,15 @@ def __init__(self, settings): # group a few others self.tunic_colors = [self.kokiricolor, self.goroncolor, self.zoracolor] self.navi_colors = [self.navicolordefault, self.navicolorenemy, self.navicolornpc, self.navicolorprop] + # trials that can be skipped will be decided later + self.skipped_trials = { + 'Forest': False, + 'Fire': False, + 'Water': False, + 'Spirit': False, + 'Shadow': False, + 'Light': False + } self.can_take_damage = True self.spoiler = Spoiler(self) @@ -616,7 +625,7 @@ def parse_data(self): 'forest': self.world.open_forest, 'door': self.world.open_door_of_time, 'gerudo_fortress': self.world.gerudo_fortress, - 'ganon': self.world.fast_ganon, + 'trials': self.world.trials, 'keysanity': self.world.keysanity, 'completeable': not self.world.check_beatable_only, 'dungeonitems': self.world.place_dungeon_items, @@ -631,8 +640,8 @@ def to_file(self, filename): outfile.write('Rainbow Bridge Requirement: %s\n' % self.metadata['bridge']) outfile.write('Open Forest: %s\n' % ('Yes' if self.metadata['forest'] else 'No')) outfile.write('Open Door of Time: %s\n' % ('Yes' if self.metadata['door'] else 'No')) - outfile.write('Gerudo Fortress: %s\n' % self.metadata['gerudo_fortress']) - outfile.write('Fast Ganon\'s Castle: %s\n' % ('Yes' if self.metadata['ganon'] else 'No')) + outfile.write('Gerudo Fortress: %s\n' % self.metadata['gerudo_fortress'] ) + outfile.write('Trials: %s\n' % self.metadata['trials'] ) outfile.write('Keysanity: %s\n' % ('Yes' if self.metadata['keysanity'] else 'No')) outfile.write('All Locations Accessible: %s\n' % ('Yes' if self.metadata['completeable'] else 'No, some locations may be unreachable')) outfile.write('Maps and Compasses in Dungeons: %s\n' % ('Yes' if self.metadata['dungeonitems'] else 'No')) diff --git a/Gui.py b/Gui.py index 6bc1192ac..34758cd3c 100644 --- a/Gui.py +++ b/Gui.py @@ -112,7 +112,7 @@ def MakeRadioList(parent, data): for option in data["options"]: radio_button = Radiobutton(lable_frame, text=option["description"], value=option["value"], variable=radio_var, justify=LEFT, wraplength=data["wraplength"]) - radio_button.pack(side=side, anchor=anchor) + radio_button.pack(expand=True, side=side, anchor=anchor) # return the frame so it can be packed, and the var so it can be used return (lable_frame, radio_var) @@ -125,18 +125,19 @@ def MakeRadioList(parent, data): # checkboxes information checkboxInfo = { - "create_spoiler": { "text": "Create Spoiler Log", "group": "output", "default": "checked" }, - "suppress_rom": { "text": "Do not create patched Rom", "group": "output", "default": "unchecked" }, - "compress_rom": { "text": "Compress patched Rom", "group": "output", "default": "unchecked" }, + "create_spoiler": { "text": "Create Spoiler Log", "group": "output", "default": "checked" }, + "suppress_rom": { "text": "Do not create patched Rom", "group": "output", "default": "unchecked" }, + "compress_rom": { "text": "Compress patched Rom", "group": "output", "default": "unchecked" }, - "open_forest": { "text": "Open Forest", "group": "logic", "default": "unchecked" }, - "open_door_of_time": { "text": "Open Door of Time", "group": "logic", "default": "unchecked" }, - "fast_ganon": { "text": "Skip most of Ganon's Castle", "group": "logic", "default": "unchecked" }, - "keysanity": { "text": "Keysanity", "group": "logic", "default": "unchecked" }, - "nodungeonitems": { "text": "Remove Maps and Compasses", "group": "logic", "default": "unchecked" }, - "beatableonly": { "text": "Only ensure seed is beatable", "group": "logic", "default": "unchecked" }, + "open_forest": { "text": "Open Forest", "group": "logic", "default": "unchecked" }, + "open_door_of_time": { "text": "Open Door of Time", "group": "logic", "default": "unchecked" }, + "unlocked_ganondorf": { "text": "Remove Ganon's Boss Door Lock", "group": "logic", "default": "unchecked" }, + "no_escape_sequence": { "text": "Skip Tower Collapse Escape Sequence", "group": "logic", "default": "unchecked" }, + "keysanity": { "text": "Keysanity", "group": "logic", "default": "unchecked" }, + "nodungeonitems": { "text": "Remove Maps and Compasses", "group": "logic", "default": "unchecked" }, + "beatableonly": { "text": "Only ensure seed is beatable", "group": "logic", "default": "unchecked" }, - "ocarina_songs": { "text": "Randomize ocarina song notes", "group": "other", "default": "unchecked" }, + "ocarina_songs": { "text": "Randomize ocarina song notes", "group": "other", "default": "unchecked" }, "logic_no_big_poes": { "text": "No Big Poes", "group": "rewards", "default": "unchecked" }, "logic_no_trade_skull_mask": { "text": "No Skull Mask reward", "group": "rewards", "default": "unchecked" }, @@ -211,6 +212,21 @@ def MakeRadioList(parent, data): "wraplength": 240, "horizontal": True } + trials_data = { + "name": "Number of Ganon's Trials", + "options": [ + { "value": "0", "description": "0" }, + { "value": "1", "description": "1" }, + { "value": "2", "description": "2" }, + { "value": "3", "description": "3" }, + { "value": "4", "description": "4" }, + { "value": "5", "description": "5" }, + { "value": "6", "description": "6" }, + ], + "default": "6", + "wraplength": 240, + "horizontal": True + } lens_data = { "name": "Lens of Truth", "options": [ @@ -252,6 +268,7 @@ def MakeRadioList(parent, data): leftMiddleChecks = Frame(checkAndRadioFrame) if True: # just indenting for hierarchy clarity (rainbowBridgeFrame, guivars['bridge']) = MakeRadioList(leftMiddleChecks, bridge_requirements_data) + (trialsFrame, guivars['trials']) = MakeRadioList(leftMiddleChecks, trials_data) (gerudoFrame, guivars['gerudo_fortress']) = MakeRadioList(leftMiddleChecks, gerudo_fortress_data) logicOptionsFrame = LabelFrame(checkAndRadioFrame, text='Logic', labelanchor=NW) rightSideChecks = Frame(checkAndRadioFrame) @@ -297,7 +314,7 @@ def MakeRadioList(parent, data): # create the checkbox parent = { 'output': outputOptionsFrame, 'logic': logicOptionsFrame, 'other': otherOptionsFrame, 'rewards': rewardsFrame, 'tricks': tricksFrame}[info["group"]] # sorry, this is gross; I was reaching my limit - checkboxes[var_name] = Checkbutton(parent, text=info["text"], variable=guivars[var_name], justify=LEFT, wraplength=250) + checkboxes[var_name] = Checkbutton(parent, text=info["text"], variable=guivars[var_name], justify=LEFT, wraplength=170) checkboxes[var_name].pack(expand=True, anchor=W) # create the dropdowns @@ -325,6 +342,7 @@ def MakeRadioList(parent, data): leftSideChecks.pack(fill=BOTH, expand=True, anchor=N, side=LEFT, padx=5) rainbowBridgeFrame.pack(fill=BOTH, expand=True, anchor=E, side=TOP, pady=5) + trialsFrame.pack(fill=BOTH, expand=True, anchor=E, side=TOP, pady=5) gerudoFrame.pack(fill=BOTH, expand=True, anchor=E, side=BOTTOM, pady=5) leftMiddleChecks.pack(fill=BOTH, expand=True, anchor=N, side=LEFT, padx=5) @@ -343,13 +361,13 @@ def MakeRadioList(parent, data): aestheticFrame.pack(fill=BOTH, anchor=W, padx=5, pady=(0,5)) # Logic tab - skulltulaFrame.pack(anchor=W, side=TOP, pady=(5,0)) + skulltulaFrame.pack(fill=BOTH, anchor=W, side=TOP, pady=(5,0)) rewardsFrame.pack(fill=BOTH, expand=True, anchor=W, side=TOP, pady=(5,0)) logicLeftFrame.pack(fill=BOTH, expand=True, anchor=N, side=LEFT, pady=(0,5), padx=(5,5)) tricksFrame.pack(fill=BOTH, expand=True, anchor=W, side=TOP, pady=(5,0)) lensFrame.pack(fill=BOTH, expand=True, anchor=W, side=TOP, pady=(5,0)) - logicRightFrame.pack(fill=BOTH, expand=True, anchor=N, side=LEFT, pady=(0,5), padx=(0, 230)) + logicRightFrame.pack(fill=BOTH, expand=True, anchor=N, side=LEFT, pady=(0,5), padx=(0, 320)) diff --git a/Hints.py b/Hints.py index 17b13e501..af1f0f0c5 100644 --- a/Hints.py +++ b/Hints.py @@ -329,7 +329,7 @@ def buildGanonText(world, rom): endText(Block_code) rom.write_bytes(0x9611F1, Block_code) - if world.fast_ganon: + if world.trials == '0': for location in world.get_locations(): if location.item.name == 'Light Arrows': Block_code = getBytes(getHint('Light Arrow Location').text) diff --git a/ItemList.py b/ItemList.py index d09a3f2bb..0f74a303e 100644 --- a/ItemList.py +++ b/ItemList.py @@ -61,6 +61,7 @@ def generate_itempool(world): world.push_item(location, ItemFactory(item), False) world.get_location(location).event = True + choose_trials(world) fill_bosses(world) fill_songs(world) @@ -79,6 +80,13 @@ def get_pool_core(dungeon_items): return (pool, placed_items) +def choose_trials(world): + num_trials = int(world.trials) + choosen_trials = random.sample(['Forest', 'Fire', 'Water', 'Spirit', 'Shadow', 'Light'], num_trials) + for trial in world.skipped_trials: + if trial not in choosen_trials: + world.skipped_trials[trial] = True + def fill_bosses(world, bossCount=9): boss_rewards = ItemFactory(rewardlist) boss_locations = [world.get_location('Queen Gohma'), world.get_location('King Dodongo'), world.get_location('Barinade'), world.get_location('Phantom Ganon'), diff --git a/Main.py b/Main.py index f99d20112..0e4da4fe2 100644 --- a/Main.py +++ b/Main.py @@ -92,6 +92,7 @@ def main(settings): def copy_world(world): # ToDo: Not good yet ret = World(world.settings) + ret.trials = world.trials ret.seed = world.seed ret.can_take_damage = world.can_take_damage create_regions(ret) diff --git a/Rom.py b/Rom.py index 3dfad0244..1bb5ce4b2 100644 --- a/Rom.py +++ b/Rom.py @@ -999,16 +999,25 @@ def write_byte_to_save(offset, value): if world.open_door_of_time: write_bits_to_save(0xEDC, 0x08) # "Opened the Door of Time" - if world.fast_ganon: + # "fast-ganon" stuff + if world.no_escape_sequence: rom.write_bytes(0xD82A12, [0x05, 0x17]) # Sets exit from Ganondorf fight to entrance to Ganon fight - write_bits_to_save(0x0EE8, 0x20) # "Completed Spirit Trial" - write_bits_to_save(0x0EEA, 0x80) # "Completed Light Trial" + if world.unlocked_ganondorf: + write_bits_to_save(0x00D4 + 0x0A * 0x1C + 0x04 + 0x1, 0x10) # Ganon's Tower switch flag (unlock boss key door) + if world.skipped_trials['Forest']: + write_bits_to_save(0x0EEA, 0x08) # "Completed Forest Trial" + if world.skipped_trials['Fire']: write_bits_to_save(0x0EEA, 0x40) # "Completed Fire Trial" - write_bits_to_save(0x0EEA, 0x20) # "Completed Shadow Trial" + if world.skipped_trials['Water']: write_bits_to_save(0x0EEA, 0x10) # "Completed Water Trial" - write_bits_to_save(0x0EEA, 0x08) # "Completed Forest Trial" + if world.skipped_trials['Spirit']: + write_bits_to_save(0x0EE8, 0x20) # "Completed Spirit Trial" + if world.skipped_trials['Shadow']: + write_bits_to_save(0x0EEA, 0x20) # "Completed Shadow Trial" + if world.skipped_trials['Light']: + write_bits_to_save(0x0EEA, 0x80) # "Completed Light Trial" + if world.trials == '0': write_bits_to_save(0x0EED, 0x08) # "Dispelled Ganon's Tower Barrier" - write_bits_to_save(0x00D4 + 0x0A * 0x1C + 0x04 + 0x1, 0x10) # Ganon's Tower switch flag (unlock boss key door) # open gerudo fortress if world.gerudo_fortress == 'open': diff --git a/Rules.py b/Rules.py index b911757ba..502a0d250 100644 --- a/Rules.py +++ b/Rules.py @@ -234,7 +234,7 @@ def global_rules(world): set_rule(world.get_location('Water Temple River Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and state.has('Song of Time') and state.has('Bow') and (state.has('Zeldas Lullaby') or world.keysanity)) set_rule(world.get_location('Sheik in Kakariko'), lambda state: state.has('Forest Medallion') and state.has('Fire Medallion') and state.has('Water Medallion')) set_rule(world.get_entrance('Graveyard Warp Pad'), lambda state: state.has('Nocturne of Shadow')) - set_rule(world.get_entrance('Shadow Temple Entrance'), lambda state: state.has('Dins Fire') and state.can_see_with_lens() and state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot'))) + set_rule(world.get_entrance('Shadow Temple Entrance'), lambda state: state.has('Dins Fire') and state.has('Magic Meter') and state.can_see_with_lens() and state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot'))) set_rule(world.get_entrance('Shadow Temple First Pit'), lambda state: state.has('Hover Boots')) set_rule(world.get_entrance('Shadow Temple Bomb Wall'), lambda state: state.has_explosives() and state.has('Small Key (Shadow Temple)', 1)) set_rule(world.get_entrance('Shadow Temple Hookshot Target'), lambda state: state.has('Progressive Hookshot') and state.has('Small Key (Shadow Temple)', 3)) @@ -312,7 +312,7 @@ def global_rules(world): set_rule(world.get_location('Twinrova Heart'), lambda state: state.has('Mirror Shield') and state.has_explosives() and state.has('Progressive Hookshot') and state.has('Boss Key (Spirit Temple)')) set_rule(world.get_location('Zelda'), lambda state: state.has('Shadow Medallion') and state.has('Spirit Medallion')) set_rule(world.get_entrance('Ganons Castle Light Trial'), lambda state: state.has('Progressive Strength Upgrade', 3)) - set_rule(world.get_entrance('Ganons Castle Tower'), lambda state: (state.has('Forest Trial Clear') and state.has('Fire Trial Clear') and state.has('Water Trial Clear') and state.has('Shadow Trial Clear') and state.has('Spirit Trial Clear') and state.has('Light Trial Clear')) or world.fast_ganon ) + set_rule(world.get_entrance('Ganons Castle Tower'), lambda state: (world.skipped_trials['Forest'] or state.has('Forest Trial Clear')) and (world.skipped_trials['Fire'] or state.has('Fire Trial Clear')) and (world.skipped_trials['Water'] or state.has('Water Trial Clear')) and (world.skipped_trials['Shadow'] or state.has('Shadow Trial Clear')) and (world.skipped_trials['Spirit'] or state.has('Spirit Trial Clear')) and (world.skipped_trials['Light'] or state.has('Light Trial Clear'))) set_rule(world.get_location('Ganons Castle Forest Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and (state.has('Fire Arrows') or (state.has('Progressive Hookshot') and state.has('Dins Fire')))) set_rule(world.get_location('Ganons Castle Fire Trial Clear'), lambda state: state.has_GoronTunic() and state.has('Progressive Strength Upgrade', 3) and state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and state.has('Progressive Hookshot', 2)) set_rule(world.get_location('Ganons Castle Water Trial Clear'), lambda state: state.has_bottle() and state.has('Hammer') and state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows')) @@ -325,7 +325,7 @@ def global_rules(world): set_rule(world.get_location('Ganons Castle Light Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Progressive Hookshot') and state.has('Light Arrows') and state.has('Small Key (Ganons Castle)', 2)) set_rule(world.get_location('Ganons Castle Light Trail Invisible Enemies Chest'), lambda state: state.can_see_with_lens()) set_rule(world.get_location('Ganons Castle Light Trial Lullaby Chest'), lambda state: state.has('Zeldas Lullaby') and state.has('Small Key (Ganons Castle)', 1)) - set_rule(world.get_location('Ganon'), lambda state: (state.has('Boss Key (Ganons Castle)') or world.fast_ganon) and (state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows')) ) + set_rule(world.get_location('Ganon'), lambda state: (state.has('Boss Key (Ganons Castle)') or world.unlocked_ganondorf) and (state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows')) ) set_rule(world.get_entrance('Kokiri Forest Storms Grotto'), lambda state: state.has('Song of Storms')) set_rule(world.get_entrance('Lost Woods Generic Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Lost Woods Sales Grotto'), lambda state: state.has_explosives() or (state.has('Hammer') and state.is_adult() and (state.has('Minuet of Forest') or state.has('Sarias Song')))) diff --git a/Settings.py b/Settings.py index 889cfc358..1a17cf6bb 100644 --- a/Settings.py +++ b/Settings.py @@ -186,12 +186,23 @@ def __init__(self, settings_dict): Fast: Free only the carpenter closest to Link's prison to get the Gerudo Card. Open: Start with the Gerudo Card and all it's benefits. '''}), - Setting_Info('fast_ganon', bool, 1, True, { + Setting_Info('trials', str, 3, True, { + 'default': '6', + 'const': '6', + 'nargs': '?', + 'choices': ['0', '1', '2', '3', '4', '5', '6'], + 'help': '''\ + Select how many trials must be cleared to enter Ganon's Tower. + The trials you must complete will be selected randomly. + '''}), + Setting_Info('no_escape_sequence', bool, 1, True, { + 'help': '''\ + The tower collapse escape sequence between Ganondorf and Ganon will be skipped. + ''', + 'action': 'store_true'}), + Setting_Info('unlocked_ganondorf', bool, 1, True, { 'help': '''\ - The barrier within Ganon's Castle leading to Ganon's Tower is dispelled from the - beginning of the game, the Boss Key is not required in Ganon's Tower, Ganondorf - gives a hint for the location of Light Arrows, and the tower collapse sequence - is removed. + The Boss Key door in Ganon's Tower will start unlocked. ''', 'action': 'store_true'}), Setting_Info('keysanity', bool, 1, True, { From f5892fca04b380a53b4ff33bf570752828edf9cd Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Mon, 2 Jul 2018 21:05:28 -0500 Subject: [PATCH 074/755] Messages are now 4 byte aligned in hopes of better compatibility for console. --- Messages.py | 5 +++++ Rom.py | 17 +++++++++-------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/Messages.py b/Messages.py index e4b65ee74..d87acdca7 100644 --- a/Messages.py +++ b/Messages.py @@ -13,6 +13,7 @@ def read_bytes(rom, offset, len): # name of type, followed by number of additional bytes to read, follwed by a function that prints the code CONTROL_CODES = { + 0x00: ('pad', 0, lambda _: '' ), 0x01: ('line-break', 0, lambda _: '\n' ), 0x02: ('end', 0, lambda _: '' ), 0x04: ('box-break', 0, lambda _: '\n▼\n' ), @@ -247,6 +248,10 @@ def write(self, rom, index, offset, replace_ending=False, ending=None, always_al offset = ending.write(rom, offset) # write special ending offset = Text_Code(0x02, 0).write(rom, offset) # write end code + + while offset % 4 > 0: + offset = Text_Code(0x00, 0).write(rom, offset) # pad to 4 byte align + return offset def __init__(self, raw_text, index, id, opts, offset, length): diff --git a/Rom.py b/Rom.py index 32d2eb57f..80e978e94 100644 --- a/Rom.py +++ b/Rom.py @@ -1093,18 +1093,19 @@ def patch_rom(world, rom): # keysanity messages if world.keysanity: message_patch_for_keysanity(rom, messages, shop_items) - # with open('keysanity_' + str(world.seed) + '_dump.txt', 'w', encoding='utf-16') as f: - # messages = read_messages(rom) - # shop_items = read_shop_items(rom) - # for m in messages: - # f.write(str(m) + '\n\n') - # f.write('\n\n\n\n\n') - # for s in shop_items: - # f.write(str(s) + '\n\n') repack_messages(rom, messages) write_shop_items(rom, shop_items) + # output a text dump, for testing... + # with open('keysanity_' + str(world.seed) + '_dump.txt', 'w', encoding='utf-16') as f: + # messages = read_messages(rom) + # shop_items = read_shop_items(rom) + # for m in messages: + # f.write(str(m) + '\n\n') + # f.write('\n\n\n\n\n') + # for s in shop_items: + # f.write(str(s) + '\n\n') # text shuffle From 82d46e1e80839f6f5a23ba71b6b4cc7949766d04 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Mon, 2 Jul 2018 21:09:33 -0500 Subject: [PATCH 075/755] Fixed shadow temple entrance not expecting magic in logic. --- Rules.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Rules.py b/Rules.py index b911757ba..ce636d1e6 100644 --- a/Rules.py +++ b/Rules.py @@ -234,7 +234,7 @@ def global_rules(world): set_rule(world.get_location('Water Temple River Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and state.has('Song of Time') and state.has('Bow') and (state.has('Zeldas Lullaby') or world.keysanity)) set_rule(world.get_location('Sheik in Kakariko'), lambda state: state.has('Forest Medallion') and state.has('Fire Medallion') and state.has('Water Medallion')) set_rule(world.get_entrance('Graveyard Warp Pad'), lambda state: state.has('Nocturne of Shadow')) - set_rule(world.get_entrance('Shadow Temple Entrance'), lambda state: state.has('Dins Fire') and state.can_see_with_lens() and state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot'))) + set_rule(world.get_entrance('Shadow Temple Entrance'), lambda state: state.has('Dins Fire') and state.has('Magic Meter') and state.can_see_with_lens() and state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot'))) set_rule(world.get_entrance('Shadow Temple First Pit'), lambda state: state.has('Hover Boots')) set_rule(world.get_entrance('Shadow Temple Bomb Wall'), lambda state: state.has_explosives() and state.has('Small Key (Shadow Temple)', 1)) set_rule(world.get_entrance('Shadow Temple Hookshot Target'), lambda state: state.has('Progressive Hookshot') and state.has('Small Key (Shadow Temple)', 3)) From a80560c99c2998e8fef7388a3925a3956637f9a7 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Mon, 2 Jul 2018 23:10:37 -0500 Subject: [PATCH 076/755] Fixed bugs involving trials count. --- Main.py | 4 +++- Settings.py | 10 ++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/Main.py b/Main.py index 0e4da4fe2..e0fb270a9 100644 --- a/Main.py +++ b/Main.py @@ -92,7 +92,7 @@ def main(settings): def copy_world(world): # ToDo: Not good yet ret = World(world.settings) - ret.trials = world.trials + ret.skipped_trials = world.skipped_trials ret.seed = world.seed ret.can_take_damage = world.can_take_damage create_regions(ret) @@ -125,6 +125,8 @@ def copy_world(world): return ret def create_playthrough(world): + if world.check_beatable_only and not world.can_beat_game(): + raise RuntimeError('Uncopied is broken too.') # create a copy as we will modify it old_world = world world = copy_world(world) diff --git a/Settings.py b/Settings.py index 1a17cf6bb..1d826f141 100644 --- a/Settings.py +++ b/Settings.py @@ -200,6 +200,16 @@ def __init__(self, settings_dict): The tower collapse escape sequence between Ganondorf and Ganon will be skipped. ''', 'action': 'store_true'}), + # Setting_Info('no_courtyard_sequence', bool, 1, True, { + # 'help': '''\ + # The crawlspace into Hyrule Castle will take you straight to Zelda. + # ''', + # 'action': 'store_true'}), + # Setting_Info('only_one_big_poe', bool, 1, True, { + # 'help': '''\ + # The Poe buyer will give a reward for turning in a single Big Poe. + # ''', + # 'action': 'store_true'}), Setting_Info('unlocked_ganondorf', bool, 1, True, { 'help': '''\ The Boss Key door in Ganon's Tower will start unlocked. From cb1cb1641ee0f04eac22a1b1e49f8cd283b8e5b6 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Tue, 3 Jul 2018 07:21:00 -0500 Subject: [PATCH 077/755] Skipping guards and only one poe is implemented. --- Gui.py | 4 +++- Rom.py | 12 ++++++++++++ Settings.py | 20 ++++++++++---------- 3 files changed, 25 insertions(+), 11 deletions(-) diff --git a/Gui.py b/Gui.py index 34758cd3c..2638810f1 100644 --- a/Gui.py +++ b/Gui.py @@ -132,10 +132,12 @@ def MakeRadioList(parent, data): "open_forest": { "text": "Open Forest", "group": "logic", "default": "unchecked" }, "open_door_of_time": { "text": "Open Door of Time", "group": "logic", "default": "unchecked" }, "unlocked_ganondorf": { "text": "Remove Ganon's Boss Door Lock", "group": "logic", "default": "unchecked" }, - "no_escape_sequence": { "text": "Skip Tower Collapse Escape Sequence", "group": "logic", "default": "unchecked" }, "keysanity": { "text": "Keysanity", "group": "logic", "default": "unchecked" }, "nodungeonitems": { "text": "Remove Maps and Compasses", "group": "logic", "default": "unchecked" }, "beatableonly": { "text": "Only ensure seed is beatable", "group": "logic", "default": "unchecked" }, + "no_escape_sequence": { "text": "Skip Tower Collapse Escape Sequence", "group": "logic", "default": "unchecked" }, + "no_guard_stealth": { "text": "Skip Interior Castle Guard Stealth Sequence", "group": "logic", "default": "unchecked" }, + "only_one_big_poe": { "text": "Big Poe Reward only requires one Big Poe", "group": "logic", "default": "unchecked" }, "ocarina_songs": { "text": "Randomize ocarina song notes", "group": "other", "default": "unchecked" }, diff --git a/Rom.py b/Rom.py index 1bb5ce4b2..075ea12ec 100644 --- a/Rom.py +++ b/Rom.py @@ -1034,6 +1034,18 @@ def write_byte_to_save(offset, value): write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x04 + 0x3, 0xDC) # Thieves' Hideout switch flags (heard yells/unlocked doors) write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x0C + 0x2, 0xC4) # Thieves' Hideout collection flags (picked up keys, marks fights finished as well) + # skip castle guard stealth sequence + if world.no_guard_stealth: + # change the exit at child/day crawlspace to the end of zelda's goddess cutscene + rom.write_bytes(0x21F60DE, [0x05, 0xF0]) + + # sonly one big poe needs to be caught to get the buyer's reward + if world.only_one_big_poe: + # change the value checked (in code) from 1000 to 100 + rom.write_bytes(0xEE69CE, [0x00, 0x64]) + # TODO: update dialogue + + # Sets hooks for gossip stone changes if world.hints != 'none': if world.hints != 'mask': diff --git a/Settings.py b/Settings.py index 1d826f141..29166d881 100644 --- a/Settings.py +++ b/Settings.py @@ -200,16 +200,16 @@ def __init__(self, settings_dict): The tower collapse escape sequence between Ganondorf and Ganon will be skipped. ''', 'action': 'store_true'}), - # Setting_Info('no_courtyard_sequence', bool, 1, True, { - # 'help': '''\ - # The crawlspace into Hyrule Castle will take you straight to Zelda. - # ''', - # 'action': 'store_true'}), - # Setting_Info('only_one_big_poe', bool, 1, True, { - # 'help': '''\ - # The Poe buyer will give a reward for turning in a single Big Poe. - # ''', - # 'action': 'store_true'}), + Setting_Info('no_guard_stealth', bool, 1, True, { + 'help': '''\ + The crawlspace into Hyrule Castle will take you straight to Zelda. + ''', + 'action': 'store_true'}), + Setting_Info('only_one_big_poe', bool, 1, True, { + 'help': '''\ + The Poe buyer will give a reward for turning in a single Big Poe. + ''', + 'action': 'store_true'}), Setting_Info('unlocked_ganondorf', bool, 1, True, { 'help': '''\ The Boss Key door in Ganon's Tower will start unlocked. From 5c9a7b06362cca8fe92ab55421350a0f3e4fe7cf Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Tue, 3 Jul 2018 08:17:44 -0500 Subject: [PATCH 078/755] Edited poe buyer's dialogue to reflect the number of poes he wants you to sell him. --- Messages.py | 18 +++++++++++++++++- Rom.py | 34 ++++++++++++++++++---------------- Settings.py | 2 +- 3 files changed, 36 insertions(+), 18 deletions(-) diff --git a/Messages.py b/Messages.py index e4b65ee74..34fbe2fbe 100644 --- a/Messages.py +++ b/Messages.py @@ -297,9 +297,23 @@ def from_string(cls, text, id=0, opts=0x00): __str__ = __repr__ = display -# wrapper for added a string message to a list of messages +# wrapper for updating the text of a message, given its message id +# if the id does not exist in the list, this will silently do nothing +def update_message_by_id(messages, id, text): + # get the message index + index = next( (m.index for m in messages if m.id == id), -1) + # update if it was found + if index >= 0: + update_message_by_index(messages, index, text) + +# wrapper for updating the text of a message, given its index in the list +def update_message_by_index(messages, index, text): + messages[index] = Message.from_string(text, messages[index].id, messages[index].opts) + +# wrapper for adding a string message to a list of messages def add_message(messages, text, id=0, opts=0x00): messages.append( Message.from_string(text, id, opts) ) + messages[-1].index = len(messages) - 1 # holds a row in the shop item table (which contains pointers to the description and purchase messages) class Shop_Item(): @@ -392,6 +406,8 @@ def get_shop_message_id_set(shop_items): # remove all messages that easy to tell are unused to create space in the message index table def remove_unused_messages(messages): messages[:] = [m for m in messages if not m.is_id_message()] + for index, m in enumerate(messages): + m.index = index # takes all messages used for shop items, and moves messages from the 00xx range into the unused 80xx range def move_shop_item_messages(messages, shop_items): diff --git a/Rom.py b/Rom.py index 075ea12ec..ccf3b8e8b 100644 --- a/Rom.py +++ b/Rom.py @@ -1039,13 +1039,6 @@ def write_byte_to_save(offset, value): # change the exit at child/day crawlspace to the end of zelda's goddess cutscene rom.write_bytes(0x21F60DE, [0x05, 0xF0]) - # sonly one big poe needs to be caught to get the buyer's reward - if world.only_one_big_poe: - # change the value checked (in code) from 1000 to 100 - rom.write_bytes(0xEE69CE, [0x00, 0x64]) - # TODO: update dialogue - - # Sets hooks for gossip stone changes if world.hints != 'none': if world.hints != 'mask': @@ -1168,6 +1161,14 @@ def write_byte_to_save(offset, value): shop_items = read_shop_items(rom) remove_unused_messages(messages) + # only one big poe needs to be caught to get the buyer's reward + if world.only_one_big_poe: + # change the value checked (in code) from 1000 to 100 + rom.write_bytes(0xEE69CE, [0x00, 0x64]) + # update dialogue + update_message_by_id(messages, 0x70f7, "\x1AOh, you brought a Poe today!\x04\x1AHmmmm!\x04\x1AVery interesting!\x01This is a \x05\x41Big Poe\x05\x40!\x04\x1AI'll buy it for \x05\x4150 Rupees\x05\x40.\x04On top of that, I'll put \x05\x41100\x01points \x05\x40on your card.\x04\x1AIf you earn \x05\x41100 points\x05\x40, you'll\x01be a happy man! Heh heh.") + update_message_by_id(messages, 0x70f8, "\x1AWait a minute! WOW!\x04\x1AYou have earned \x05\x41100 points\x05\x40!\x04\x1AYoung man, you are a genuine\x01\x05\x41Ghost Hunter\x05\x40!\x04\x1AIs that what you expected me to\x01say? Heh heh heh!\x04\x1ABecause of you, I have extra\x01inventory of \x05\x41Big Poes\x05\x40, so this will\x01be the last time I can buy a \x01ghost.\x04\x1AYou're thinking about what I \x01promised would happen when you\x01earned 100 points. Heh heh.\x04\x1ADon't worry, I didn't forget.\x01Just take this.") + # add a cheaper bombchu pack to the bombchu shop # describe add_message(messages, '\x08\x05\x41Bombchu (5 pieces) 60 Rupees\x01\x05\x40This looks like a toy mouse, but\x01it\'s actually a self-propelled time\x01bomb!\x09\x0A', 0x80FE, 0x03) @@ -1183,19 +1184,20 @@ def write_byte_to_save(offset, value): # keysanity messages if world.keysanity: message_patch_for_keysanity(rom, messages, shop_items) - # with open('keysanity_' + str(world.seed) + '_dump.txt', 'w', encoding='utf-16') as f: - # messages = read_messages(rom) - # shop_items = read_shop_items(rom) - # for m in messages: - # f.write(str(m) + '\n\n') - # f.write('\n\n\n\n\n') - # for s in shop_items: - # f.write(str(s) + '\n\n') + repack_messages(rom, messages) write_shop_items(rom, shop_items) - + + # with open('keysanity_' + str(world.seed) + '_dump.txt', 'w', encoding='utf-16') as f: + # messages = read_messages(rom) + # shop_items = read_shop_items(rom) + # for m in messages: + # f.write(str(m) + '\n\n') + # f.write('\n\n\n\n\n') + # for s in shop_items: + # f.write(str(s) + '\n\n') # text shuffle if world.text_shuffle == 'except_hints': diff --git a/Settings.py b/Settings.py index 29166d881..c5439d5dc 100644 --- a/Settings.py +++ b/Settings.py @@ -7,7 +7,7 @@ from Rom import get_tunic_color_options, get_navi_color_options -__version__ = '2.9.2 f.LUM' +__version__ = '2.9.3 f.LUM' class ArgumentDefaultsHelpFormatter(argparse.RawTextHelpFormatter): From 72168440cfa7abba7e0dd0e319701ff4d15d4d5f Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Tue, 3 Jul 2018 08:34:08 -0500 Subject: [PATCH 079/755] Updated README. --- README.md | 409 +++--------------------------------------------------- 1 file changed, 16 insertions(+), 393 deletions(-) diff --git a/README.md b/README.md index 351997d98..5789fbe7c 100644 --- a/README.md +++ b/README.md @@ -1,398 +1,6 @@ # OoTRandomizer -This is a randomizer for _The Legend of Zelda: Ocarina of Time_ for the Nintendo 64. - -# Installation - -It is strongly suggested users get the latest release from here: https://github.com/AmazingAmpharos/OoT-Randomizer/releases . -Simply download the .msi installer and run it if you have a Windows machine. - -If you do not have Windows or you simply wish to run the script raw, clone this repository and either run '''Gui.py''' for a -graphical interface or '''OoTRandomizer.py''' for the command line version. Both require Python 3.5+. - -This randomizer requires The Legend of Zelda: Ocarina of Time version 1.0 NTSC-US version. Upon first being run, the randomizer will automatically -create a decompressed version of this ROM that can be used for input for slightly faster seed generation times. Please be sure your input ROM filename -is either a .n64 or .z64 file. For users playing via any means other than on real N64 hardware, the use of the "Compress patched ROM" flag is strongly -encouraged as uncompressed ROMs are impossible to inject for the Virtual Console and have random crashing problems on all emulators. - -For general use, the recommended emulator is RetroArch; it has been shown to work with minimal issues. Bizhawk and Mupen64plus are generally good choices -too. If you want to play on Project 64 for whatever reason, you can but you will need to set the rando to use 8 MB of RAM and will want to play with the -cheat code 8109C58A 0000 to partially fix Project 64's tragically poor handling of OoT's pause menu. Project 64 also has one particular crash that only -happens for some unknown settings configurations; we cannot support this. I cannot emphasize enough that it is a discouraged emulator to use. - -# General Description - -This program takes _The Legend of Zelda: Ocarina of Time_ and randomizes the locations of the items for a more dynamic play experience. -Proper logic is used to ensure every seed is possible to complete without the use of glitches and will be safe from the possibility of softlocks -with any possible usage of keys in dungeons. - -The items that randomize currently are all items within chests including those in grottos, items given as rewards by NPCs including from minigames and -Deku Scrub salesmen, the items given by freestanding Pieces of Heart, Heart Containers, and Keys, and the items obtained when getting the Bottle and the -Fire Arrows at Lake Hylia. All dungeons will always have the same number of Maps, Compasses, Small Keys, and Boss Keys they had in the original game, but -which chests within those dungeons have those things is random. The item pool will contain a Biggoron Sword that will not interfere with Medigoron's sale -of the Giant's Knife (which is always vanilla), and a randomly selected adult trading quest item other than the Odd Potion will be somewhere in the item pool. - -Certain types of items are now "progressive", meaning that no matter what order the player encounters these items they will function as a series of upgrades. -The following item types will be progressive chains: - --Hookshot to Longshot --Bomb Bag to Big Bomb Bag to Biggest Bomb Bag --Goron Bracelet to Silver Gauntlets to Gold Gauntlets --Slingshot to Big Bullet Bag to Biggest Bullet Bag --Bow to Big Quiver to Biggest Quiver --Silver Scale to Gold Scale --Adult Wallet to Giant's Wallet --Deku Stick Capacity Upgrades --Deku Nut Capacity Upgrades --Magic Meter to Double Magic - -To be more clear about which NPC items are shuffled, it's only the one time permanent item rewards for the most part like NPCs who originally gave Pieces of Heart -or inventory items. The only exception is that even though in vanilla the reward for 40 Gold Skulltulla Tokens was just 10 Bombchus that is still a randomized reward -in randomizer (but the 200 rupees for all 100 Gold Skulltulla Tokens is not randomized so the most tokens that could be required to complete a seed is 50). As a mercy -to the player, the Ocarina Memory Game in the Lost Woods will start on the final round as that minigame was very long originally, the three day wait on the Claim Check -is removed, Bombchu Bowling will have a fixed sequence of prizes that is of maximum convenience to the player, Dampe's Gravedigging Tour will always be won on the first -dig, and the fishing minigame is made much simpler (8 lb fish for child now, 10 lb for adult). Additionally, any NPC who gives a trading quest item either for the child -or for the adult other than Anju's initial gift as an adult does not have a randomized reward, and as a design decision, the Fairy Ocarina and Ocarina of Time are not -randomized. - -A special note is needed for the six Great Fairy Fountains scattered across Hyrule. All six of these fountains now give random item rewards, and the magic and life -upgrades can now be found as normal items scattered around the world. Happy hunting! - -The Ocarina songs are shuffled in a pool amongst themselves, and each learn spot will still have the original conditions it has always had. These conditions may not -have all been obvious, but here are some high points. Saria will teach her song after completing the events in the Castle Courtyard. The warp songs can mostly only -be learned by an adult, but the location for Requiem of Spirit is available for even a child if the Desert Colossus can be reached. The location for the Prelude of -Light requires the Forest Medallion, and the location for the Nocturne of Shadow requires the Forest Medallion, Fire Medallion, and Water Medallions. - -Speaking of Medallions, each boss in the eight main dungeons will drop a random Spiritual Stone or Medallion, and instead of the Light Medallion being granted by the -now removed "becoming an adult" cutscene, the player will start every seed with a random Spiritual Stone or Medallion. The pedestal in which the Spiritual Stones -rest in the Temple of Time has hint text pointing to the locations of the Spiritual Stones and Medallions. A child will be able to read hints for the Spiritual -Stones while an adult will be able to read hints for the Medallions. - -To be very clear on this point, while the rewards for up to 50 Gold Skulltulla Tokens are randomized, the tokens themselves are not. - -As a service to the player in this very long game, many cutscenes have been greatly shortened or removed and text is as often as possible either omitted or sped up. -We have been as thorough as our exploration of the game and various technical limitations will allow to make the parts of the game where you're watching and reading -as short as possible to make as much of your time with this randomizer as possible actual gameplay. I'm sure someone somewhere will miss the owl's interjections; to -that person, I'm sorry I guess? - -A few bugs or other undesirable behaviors in the original game have been fixed. Of note, obtaining the Poacher's Saw will no longer prevent the player from obtaining -the reward in the Deku Theater for showing the Mask of Truth, and becoming an adult will not automatically equip the child with the Kokiri Sword. Sheik will no longer -prevent the player from returning to childhood before obtaining the Forest Medallion. Princess Ruto will never disappear from Jabu Jabu's Belly, and the condition for -the Castle Courtyard being sealed off is now completing the events within as opposed to seeing the Ocarina of Time be thrown into the moat. - -One small detail that is important to know is that the locked door in the Fire Temple leading to the section with the Boss Key Chest is removed. This was necessary -due to the original design of the Fire Temple assuming that the player could not possibly have the Hammer before unlocking the doors leading into the depths of the -dungeon. This is obviously not true in randomizer, and of all possible solutions to this problem, this seemed the least disruptive. A full clear of the Fire Temple will -simply result in the player having one extra Small Key. - -To be clear about the logic rules of what can be where, the randomizer will ensure a glitchless path through the seed will exist, but the randomizer will not prevent -the use of glitches for those players who enjoy that sort of thing though we offer no guarantees that all glitches will have identical behavior to the original game. -Glitchless can still mean that clever or unintuitive strategies may be required involving the use of things like Hover Boots, the Hookshot, or Scarecrow's Song that -may not have been important options in the original game. The Lens of Truth is guaranteed available and useable before completion of the Treasure Chest Game is required -or before walking through any invisible objects or opening any invisible chests is required with the exception of the one invisible wall that is required to enter -the Bottom of the Well as the original game required passing that invisible wall to reach the Lens of Truth. - -One last detail is that the menu is now more like the Majora's Mask menu in that the player can move the cursor through empty spaces. This fixes a major problem from -the original game in that certain combinations of items would create menu shapes that would be impossible to fully menu through. - -# Quirks to Know - -While all the details of gameplay can't be detailed here, I want to inform you of a few non-obvious game sequences that are likely to get you stuck and one little -glitch we can do nothing about. - --The condition to open the Door of Time is merely playing the Song of Time; the Spiritual Stones are not required. If you enter the Temple of Time via the Prelude -of Light, playing the Song of Time will create a glitchy cutscene and will not open the door (but you're safe to exit and re-enter and open it properly). --The condition to spawn the Ocarina of Time and learn that song is the three Spiritual Stones. The condition to learn a song from Sheik in the Temple of Time is -possessing the Forest Medallion. The condition to learn a song from Sheik in Kakariko is possessing Forest, Fire, and Water Medallions. --The running man in Hyrule Field only spawns if you have all three Spiritual Stones. --Skull Kid will only buy the Skull Mask if you have played Saria's Song for him. --The center of Death Mountain Crater as an adult can be reached from the summit as an adult by going around to the left with Hover Boots or by jumping down to the right -and using a combination of the Longshot and Scarecrow's Song. This allows access to Sheik and the Fire Temple without a Bomb Bag. --A sword must be equipped to play the fishing minigame. A Slingshot is not required for child target shooting, but the adult does need the Bow. --Other than those minigames, the child can do anything that would seem to require the sword with Deku Sticks. You can buy as many as you want in the Kokiri Forest shop. --In the randomizer, possessing the Bomb Bag is the requirement to get bomb drops, buy bombs or Bombchus, or play Bombchu Bowling. --Only the Hookshot, not the Longshot, is needed to do everything on the rooftops of Kakariko. --Grottos can be opened with either Bombs or the Hammer. --The boulder maze in Goron City can be solved with the Hammer or partially with Bombs as is obvious, but less obvious is that it can be fully solved with Silver Gauntlets. --The large colored blocks only encountered by the adult require Goron Bracelet to push. --In a few places, out of sight Song of Time blocks can be summoned. The lava room in Gerudo Training Grounds, the beginning of Ganon's Castle Shadow Trial, and the last -hallway with a caged Goron in Fire Temple are the main cases. --Adult Link can fully clear Dodongo's Cavern. He can even skip the first section by virtue of being tall. --In the Forest Temple, you can reach the room with the Floormaster early by using Hover Boots in the block push room. --In the Fire Temple, you can reach the Boss Key door from the beginning with Hover Boots. --In the Water Temple, you can from the start with the water down jump to the middle platform level, very carefully aim the Hookshot to the target above, and pull yourself -to the highest level of the central platform. Then a very well spaced rolling jump can reach the water changing station to raise the water to the highest level. If you -make poor key choices in Water Temple, this may be what you need to do to untangle the situation. --In the Water Temple, Hover Boots can be used to reach the vanilla Boss Key chest without going through the room that requires Bombs and block pushing. Hover Boots can -also be used in this temple to avoid the Longshot requirement for the middle level chest that requires the Bow. --In the Shadow Temple, you can avoid the need for the Longshot in the room with the invisible spikes by backflipping onto the chest for extra height. --In the Shadow Temple, you can Hookshot the ladder to avoid pushing the block to get on the boat. --In the Shadow Temple, a combination of the scarecrow and the Longshot can be used to reach Bongo Bongo without needing the Bow. --In the Spirit Temple, the child can obtain the vanilla Map chest with Deku Sticks. No fire magic is needed. --In the Spirit Temple, you can collect the silver rupees without Hover Boots by jumping directly onto the rolling boulder or with a jump slash. --In the Spirit Temple, you can use the Longshot to cross from the hand with the Mirror Shield in vanilla to the other hand. --In Ganon's Castle Spirit Trial, the web can be burned with a precise shot through the torch by a normal arrow. Fire Arrows are not required. --While we guarantee tunics for Fire Temple and Water Temple, you can possibly force yourself to do without if you seriously let a Like Like eat the tunic and -then do not recover the tunic. It is almost always possible to do without, but it can make things really difficult on you. --Several Gold Skulltulla Tokens can be reached by clever/precise uses of jump slashes and spin attacks (possibly magic spin attacks). - -# Known issues - -Sadly for this 2.0 release a few known issues exist. These will hopefully be addressed in future versions. - --The fishing minigame sometimes refuses to allow you to catch fish when playing specifically on Bizhawk. Save and quit (NOT savestate) and return to fix the issue. --Draining the Bottom of the Well with Song of Storms sometimes crashes on specific configurations of Project 64. We aren't sure of the exact story, but this bug is -easily avoided by playing on a different emulator and probably also avoidable by changing your settings and maybe graphics plug-in. --There's a funny bug where sometimes obtaining Biggoron Sword displays a second erroneous text box. This has no gameplay consequence. --Executing the collection delay glitch on various NPCs may have unpredictable and undesirable consequences. In particular this can be devastating with Biggoron; -it is strongly suggested the player save before turning in the Claim Check. --Saving and quitting on the very first frame after becomming an adult when you would trigger the Light Arrow cutscene can have undesired consequences. Just don't -do that. - -# Settings - -## Rainbow Bridge - -This determines the condition under which the rainbow bridge to Ganon's Castle will spawn. - -### Medallions - -All six of the medallions are required to open Ganon's Castle. - -### Vanilla - -The rainbow bridge spawns under the same conditions it did in the original game, possession of the Light Arrows and having viewed the Zelda cutscene. - -### All Dungeons - -The rainbow bridge spawn requires all medallions and spiritual stones to be in the player's possession. - -### Open - -The rainbow bridge is always present. - -## Kokiri Tunic Color - -This determines the color of Link's default Kokiri Tunic. This only affects the color when he's wearing it, not the color of the icon in the menu. - -### Most Colors - -Simply get the particular color selected. Available colors are Kokiri Green, Goron Red, Zora Blue, Black, White, Purple, Yellow, Orange, Pink, Gray, -Brown, Gold, Silver, Beige, Teal, Royal Blue, Sonic Blue, Blood Red, Blood Orange, NES Green, and Dark Green. - -### Random - -Choose a random color from the set of pre-made colors. - -### True Random - -Generate a random color with numerically random RGB values. - -## Goron Tunic Color - -This determines the color of Link's Goron Tunic. This only affects the color when he's wearing it, not the color of the icon in the menu or when -holding it up after acquiring it. The options are identical to those for the Kokiri Tunic. - -## Zora Tunic Color - -This determines the color of Link's Zora Tunic. This only affects the color when he's wearing it, not the color of the icon in the menu or when -holding it up after acquiring it. The options are identical to those for the Kokiri Tunic. - -## Low Health SFX - -This determines which sound effect to play repeatedly when Link is very low on health. Several of these options are designed to be potentially -more pleasant to listen to while a few are designed to be more amusing. - -### Particular Sounds - -Set this particular sound for the heart beep. Available choices are Default, Softer Beep, Rupee, Timer, Tamborine, Recovery Heart, Carrot Refill, -Navi - Hey!, Zelda - Gasp, Cluck, and Mweep!. The last of these is indeed the sound a king might make when moving... very slowly. - -### None - -Disable low health heart beeps altogether. - -## Create Spoiler Log - -Output a Spoiler File. - -## Do not Create Patched Rom - -If set, will not produce a patched rom as output. Useful in conjunction with the spoiler log option to batch -generate spoilers for statistical analysis. - -## Compress patched Rom - -If set, the randomizer will additionally output a compressed ROM using Grant Man's bundled compressor. This compressor is the fastest -compressor out there and tuned specifically for this game, but in order to achieve its incredibly high speed, it does utilize every last bit -of CPU your computer will give it so your computer will slow to a crawl otherwise during the couple of minutes this will take. - -## Open Forest - -Mido does not need to see a sword and shield to reach the Deku Tree and the Kokiri boy blocking the exit to the forest is gone. -If this flag is not set, it is guaranteed that the Deku Tree can be completed without leaving the forest. - -## Open Door of Time - -The Door of Time is open from the beginning of the game. The Song of Time is only useful to move Song of Time blocks. - -## Skip most of Ganon's Castle - -The barrier protecting Ganon's Tower within Ganon's Castle is dispelled from the start, the Boss Key doors within Ganon's Tower are unlocked by -default, Ganondorf will provide a hint for the location of Light Arrows, and the collapsing tower sequence is skipped. - -## Place Dungeon Items - -If not set, Compasses and Maps are removed from the dungeon item pools and replaced by five rupee chests that may end up anywhere in the world. -This may lead to different amount of itempool items being placed in a dungeon than you are used to. - -## Only Ensure Seed Beatable - -If set, will only ensure that Ganon can be defeated, but not necessarily that all locations are reachable. - -## Gossip Stone Hints with Stone of Agony - -If set, the 32 Gossip Stones scattered across Hyrule will have various hints informing the player of which items are in various inconvenient locations. The -Stone of Agony is the condition to be able to talk to the Gossip Stones in this mode instead of the Mask of Truth out of mercy to the player. The nine locations -we regarded as the most generally inconvenient for all medallions play will always have hints, those hints will appear in two places, and the logic will guarantee -access to the Stone of Agony before those places must be checked. Those places are the rewards for 30, 40, and 50 Gold Skulltullas, both rewards from the fishing -minigame, the song from the Ocarina of Time, the item from showing the Mask of Truth in the Deku Theater, the item for defeating 10 Big Poes, and the item for -redeeming the Claim Check with Biggoron. There will be seven other hints that only exist once for other somewhat inconvenient places for which there is no -guarantee of Stone of Agony access, and there will be seven other sorts of remarks from the Gossip Stones in the hint pool that may bring a smile to your face but -will not provide you with unique information for your quest. The unreachable Gossip Stone in the Kokiri Forest is included in this 32 Gossip Stone hint shuffle as -well so be aware that one instance of a hint will seem to effectively vanish every seed. - -## Seed - -Can be used to set a seed number to generate. Using the same seed with same settings on the same version of the randomizer will always yield an identical output. - -## Count - -Use to batch generate multiple seeds with same settings. If a seed number is provided, it will be used for the first seed, then used to derive the next seed (i.e. generating 10 seeds with the same seed number given will produce the same 10 (different) roms each time). - -# Command Line Options - -``` --h, --help -``` - -Show the help message and exit. - -``` ---create_spoiler -``` - -Output a Spoiler File (default: False) - -``` ---bridge [{medallions,vanilla,dungeons,open}] -``` - -Select the condition to spawn the Rainbow Bridge to Ganon's Castle. (default: medallions) - -``` ---kokiricolor [{'Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Purple', 'Yellow', 'Orange', 'Pink', 'Gray', 'Brown', 'Gold', 'Silver', 'Beige', 'Teal', 'Royal Blue', 'Sonic Blue', 'Blood Red', 'Blood Orange', 'NES Green', 'Dark Green', 'Random', 'True Random'}] -``` - -Select the color of Link's Kokiri Tunic. (default: Kokiri Green) - -``` ---goroncolor [{'Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Purple', 'Yellow', 'Orange', 'Pink', 'Gray', 'Brown', 'Gold', 'Silver', 'Beige', 'Teal', 'Royal Blue', 'Sonic Blue', 'Blood Red', 'Blood Orange', 'NES Green', 'Dark Green', 'Random', 'True Random'}] -``` - -Select the color of Link's Goron Tunic. (default: Goron Red) - -``` ---zoracolor [{'Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Purple', 'Yellow', 'Orange', 'Pink', 'Gray', 'Brown', 'Gold', 'Silver', 'Beige', 'Teal', 'Royal Blue', 'Sonic Blue', 'Blood Red', 'Blood Orange', 'NES Green', 'Dark Green', 'Random', 'True Random'}] -``` - -Select the color of Link's Zora Tunic. (default: Zora Blue) - -``` ---healthSFX [{'Default', 'Softer Beep', 'Rupee', 'Timer', 'Tamborine', 'Recovery Heart', 'Carrot Refill', 'Navi - Hey!', 'Zelda - Gasp', 'Cluck', 'Mweep!', 'Random', 'None'}] -``` - -Select the sound effect that loops at low health. (default: Default) - -``` ---rom ROM -``` - -Path to a The Legend of Zelda: Ocarina of Time NTSC-US v1.0 ROM. (default: ZELOOTROMDEC.z64) - -``` ---loglevel [{error,info,warning,debug}] -``` - -Select level of logging for output. (default: info) - -``` ---seed SEED -``` - -Define seed number to generate. (default: None) - -``` ---count COUNT -``` - -Set the count option (default: None) - -``` ---open_forest -``` - -Set whether Kokiri children obstruct your path at the beginning of the game. (default: False) - -``` ---open_door_of_time -``` - -Set whether the Door of Time is open from the beginning of the game. (default: False) - -``` ---fast_ganon -``` - -Set whether most of Ganon's Castle can be skipped. (default: False) - -``` ---nodungeonitems -``` - -If set, Compasses and Maps are removed from the dungeon item pools and replaced by five rupee chests that may end up anywhere in the world. -This may lead to different amount of itempool items being placed in a dungeon than you are used to. (default: False) - -``` ---beatableonly -``` - -Enables the "Only Ensure Seed Beatable" option (default: False) - -``` ---hints -``` - -Gossip Stones provide helpful hints about which items are in inconvenient locations if the Stone of Agony is in the player's inventory. (default: False) - -``` ---suppress_rom -``` - -Enables the "Do not Create Patched Rom" option. (default: False) - -``` ---compress_rom -``` - -Create a compressed version of the output ROM file. (default: False) - -``` ---gui -``` - -Open the graphical user interface. Preloads selections with set command line parameters. - +Documentation for the core features of the randomizer from which this was forked can be found here: # Notable Changes on this fork @@ -413,6 +21,14 @@ A bunch of optional logic changes can be applied from the "Detailed Logic" tab: - A handful of easy tricks (that require some knowledge) can be marked to be usable - Lens of Truth requirements and expectations can be set +## Fast Ganon broken into components + +What was once called `fast-ganon` is now broken into 3 separate options: + +- `trials`: specify the number of trials you need to do to dispel the barrier on Ganon's Tower (0-6). The trials you need to complete will be selected randomly. +- `unlocked_ganondorf`: the boss key door in Ganon's Tower will be unlocked from the start. +- `no_escape_sequence`: the tower collapse escape sequence between the Ganondorf and Ganon fights will be skipped . + ## Gerudo Fortress options Options for speeding up carpenter rescue portion of Gerudo Fortress @@ -420,6 +36,13 @@ Options for speeding up carpenter rescue portion of Gerudo Fortress - fast: Only the carpenter nearest to the prison Link is tossed into needs to be freed to obtain the Gerudo Card and get all of its benefits; the other three carpenters are freed from the start - open: All carpenters are freed from the start, and you start with the Gerudo Card and all of its benefits (and thus the bridge across the valley is always built) +## Other Conveniences + +Options to skip some sequences that only pad the time of completing the game without ever really changing between seeds have been added: + +- `no_guard_stealth`: the stealth sequence between the crawlspace into Hyrule Castle and Zelda's courtyard will be skipped. +- `only_one_big_poe`: the poe buyer will give the reward after selling 1 Big Poe instead of 10. + ## Bombchus Bombchus are now considered in logic. That is, once you've found bombchus, you can be expected to use them as explosives, hit switches, etc. to make progress in the seed. In order to have this make sense, the following changes were made: From c9d03b02f7e2aec9c8bd035c88f20afa75d3552d Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Tue, 3 Jul 2018 08:42:57 -0500 Subject: [PATCH 080/755] Updated Gui --- Gui.py | 34 ++++++++++++++++++++-------------- README.md | 2 +- 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/Gui.py b/Gui.py index 2638810f1..d37fc7859 100644 --- a/Gui.py +++ b/Gui.py @@ -133,12 +133,13 @@ def MakeRadioList(parent, data): "open_door_of_time": { "text": "Open Door of Time", "group": "logic", "default": "unchecked" }, "unlocked_ganondorf": { "text": "Remove Ganon's Boss Door Lock", "group": "logic", "default": "unchecked" }, "keysanity": { "text": "Keysanity", "group": "logic", "default": "unchecked" }, - "nodungeonitems": { "text": "Remove Maps and Compasses", "group": "logic", "default": "unchecked" }, "beatableonly": { "text": "Only ensure seed is beatable", "group": "logic", "default": "unchecked" }, - "no_escape_sequence": { "text": "Skip Tower Collapse Escape Sequence", "group": "logic", "default": "unchecked" }, - "no_guard_stealth": { "text": "Skip Interior Castle Guard Stealth Sequence", "group": "logic", "default": "unchecked" }, - "only_one_big_poe": { "text": "Big Poe Reward only requires one Big Poe", "group": "logic", "default": "unchecked" }, + "no_escape_sequence": { "text": "Skip Tower Collapse Escape Sequence", "group": "convenience", "default": "unchecked" }, + "no_guard_stealth": { "text": "Skip Interior Castle Guard Stealth Sequence", "group": "convenience", "default": "unchecked" }, + "only_one_big_poe": { "text": "Big Poe Reward only requires one Big Poe", "group": "convenience", "default": "unchecked" }, + + "nodungeonitems": { "text": "Remove Maps and Compasses", "group": "other", "default": "unchecked" }, "ocarina_songs": { "text": "Randomize ocarina song notes", "group": "other", "default": "unchecked" }, "logic_no_big_poes": { "text": "No Big Poes", "group": "rewards", "default": "unchecked" }, @@ -272,7 +273,10 @@ def MakeRadioList(parent, data): (rainbowBridgeFrame, guivars['bridge']) = MakeRadioList(leftMiddleChecks, bridge_requirements_data) (trialsFrame, guivars['trials']) = MakeRadioList(leftMiddleChecks, trials_data) (gerudoFrame, guivars['gerudo_fortress']) = MakeRadioList(leftMiddleChecks, gerudo_fortress_data) - logicOptionsFrame = LabelFrame(checkAndRadioFrame, text='Logic', labelanchor=NW) + rightMiddleChecks = Frame(checkAndRadioFrame) + if True: # just indenting for hierarchy clarity + logicOptionsFrame = LabelFrame(rightMiddleChecks, text='Mode', labelanchor=NW) + convenienceOptionsFrame = LabelFrame(rightMiddleChecks, text='Conveniences', labelanchor=NW) rightSideChecks = Frame(checkAndRadioFrame) if True: # just indenting for hierarchy clarity (hintsFrame, guivars['hints']) = MakeRadioList(rightSideChecks, hint_options_data) @@ -314,7 +318,7 @@ def MakeRadioList(parent, data): # create a variable to access the box's state guivars[var_name] = IntVar(value=default_value) # create the checkbox - parent = { 'output': outputOptionsFrame, 'logic': logicOptionsFrame, 'other': otherOptionsFrame, + parent = { 'output': outputOptionsFrame, 'logic': logicOptionsFrame, 'other': otherOptionsFrame, 'convenience': convenienceOptionsFrame, 'rewards': rewardsFrame, 'tricks': tricksFrame}[info["group"]] # sorry, this is gross; I was reaching my limit checkboxes[var_name] = Checkbutton(parent, text=info["text"], variable=guivars[var_name], justify=LEFT, wraplength=170) checkboxes[var_name].pack(expand=True, anchor=W) @@ -339,19 +343,21 @@ def MakeRadioList(parent, data): # pack the hierarchy # Ranomize tab - outputOptionsFrame.pack(fill=BOTH, expand=True, anchor=E, side=TOP, pady=5) - textShuffleFrame.pack(fill=BOTH, expand=True, anchor=E, side=BOTTOM, pady=5) + outputOptionsFrame.pack(fill=BOTH, expand=True, anchor=E, side=TOP, pady=(5,1) ) + textShuffleFrame.pack(fill=BOTH, expand=True, anchor=E, side=BOTTOM, pady=(1,5) ) leftSideChecks.pack(fill=BOTH, expand=True, anchor=N, side=LEFT, padx=5) - rainbowBridgeFrame.pack(fill=BOTH, expand=True, anchor=E, side=TOP, pady=5) - trialsFrame.pack(fill=BOTH, expand=True, anchor=E, side=TOP, pady=5) - gerudoFrame.pack(fill=BOTH, expand=True, anchor=E, side=BOTTOM, pady=5) + rainbowBridgeFrame.pack(fill=BOTH, expand=True, anchor=E, side=TOP, pady=(5,1)) + trialsFrame.pack(fill=BOTH, expand=True, anchor=E, side=TOP, pady=1) + gerudoFrame.pack(fill=BOTH, expand=True, anchor=E, side=BOTTOM, pady=(1,5)) leftMiddleChecks.pack(fill=BOTH, expand=True, anchor=N, side=LEFT, padx=5) - logicOptionsFrame.pack(fill=BOTH, expand=True, anchor=N, side=LEFT, padx=5, pady=5) + logicOptionsFrame.pack(fill=BOTH, expand=True, anchor=E, side=TOP, pady=(5,1)) + convenienceOptionsFrame.pack(fill=BOTH, expand=True, anchor=E, side=BOTTOM, pady=(1,5)) + rightMiddleChecks.pack(fill=BOTH, expand=True, anchor=N, side=LEFT, padx=5) - hintsFrame.pack(fill=BOTH, expand=True, anchor=E, side=TOP, pady=5) - otherOptionsFrame.pack(fill=BOTH, expand=True, anchor=E, side=BOTTOM, pady=5) + hintsFrame.pack(fill=BOTH, expand=True, anchor=E, side=TOP, pady=(5,1)) + otherOptionsFrame.pack(fill=BOTH, expand=True, anchor=E, side=BOTTOM, pady=(1,5)) rightSideChecks.pack(fill=BOTH, expand=True, anchor=N, side=LEFT, padx=5) checkAndRadioFrame.pack(side=TOP, anchor=N) diff --git a/README.md b/README.md index 5789fbe7c..8a6e9b0a8 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ A bunch of optional logic changes can be applied from the "Detailed Logic" tab: ## Fast Ganon broken into components -What was once called `fast-ganon` is now broken into 3 separate options: +What was once called `fast_ganon` is now broken into 3 separate options: - `trials`: specify the number of trials you need to do to dispel the barrier on Ganon's Tower (0-6). The trials you need to complete will be selected randomly. - `unlocked_ganondorf`: the boss key door in Ganon's Tower will be unlocked from the start. From cfbb42fb47dc31eecf9e762f423fb04961bce739 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Tue, 3 Jul 2018 09:17:28 -0500 Subject: [PATCH 081/755] Spoiler now outputs all settings automatically. --- BaseClasses.py | 30 +++++------------------------- Settings.py | 12 ++++++++++++ 2 files changed, 17 insertions(+), 25 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 7ba8f9486..41e0aeed5 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -619,35 +619,15 @@ def parse_data(self): spoiler_locations.sort(key=lambda item: sort_order.get(item.type, 1)) self.locations = {'other locations': OrderedDict([(str(location), str(location.item) if location.item is not None else 'Nothing') for location in spoiler_locations])} from Settings import __version__ as OoTRVersion - self.metadata = {'version': OoTRVersion, - 'seed': self.world.seed, - 'bridge': self.world.bridge, - 'forest': self.world.open_forest, - 'door': self.world.open_door_of_time, - 'gerudo_fortress': self.world.gerudo_fortress, - 'trials': self.world.trials, - 'keysanity': self.world.keysanity, - 'completeable': not self.world.check_beatable_only, - 'dungeonitems': self.world.place_dungeon_items, - 'text_shuffle': self.world.text_shuffle, - 'ocarina_songs': self.world.ocarina_songs, - 'hints': self.world.hints} + self.version = OoTRVersion + self.settings = self.world.settings def to_file(self, filename): self.parse_data() with open(filename, 'w') as outfile: - outfile.write('OoT Randomizer Version %s - Seed: %s\n\n' % (self.metadata['version'], self.metadata['seed'])) - outfile.write('Rainbow Bridge Requirement: %s\n' % self.metadata['bridge']) - outfile.write('Open Forest: %s\n' % ('Yes' if self.metadata['forest'] else 'No')) - outfile.write('Open Door of Time: %s\n' % ('Yes' if self.metadata['door'] else 'No')) - outfile.write('Gerudo Fortress: %s\n' % self.metadata['gerudo_fortress'] ) - outfile.write('Trials: %s\n' % self.metadata['trials'] ) - outfile.write('Keysanity: %s\n' % ('Yes' if self.metadata['keysanity'] else 'No')) - outfile.write('All Locations Accessible: %s\n' % ('Yes' if self.metadata['completeable'] else 'No, some locations may be unreachable')) - outfile.write('Maps and Compasses in Dungeons: %s\n' % ('Yes' if self.metadata['dungeonitems'] else 'No')) - outfile.write('Hints: %s\n' % self.metadata['hints']) - outfile.write('Text Shuffle: %s\n' % self.metadata['text_shuffle']) - outfile.write('Random Ocarina Songs: %s\n' % ('Yes' if self.metadata['ocarina_songs'] else 'No')) + outfile.write('OoT Randomizer Version %s - Seed: %s\n\n' % (self.version, self.settings.seed)) + outfile.write('Settings (%s):\n%s' % (self.settings.get_settings_string(), self.settings.get_settings_display())) + outfile.write('\n\nLocations:\n\n') outfile.write('\n'.join(['%s: %s' % (location, item) for (location, item) in self.locations['other locations'].items()])) outfile.write('\n\nPlaythrough:\n\n') diff --git a/Settings.py b/Settings.py index c5439d5dc..305c2f3a7 100644 --- a/Settings.py +++ b/Settings.py @@ -55,6 +55,18 @@ def __init__(self, name, type, bitwidth=0, shared=False, args_params={}): # holds the particular choices for a run's settings class Settings(): + def get_settings_display(self): + padding = 0 + for setting in filter(lambda s: s.shared, setting_infos): + padding = max( len(setting.name), padding ) + padding += 2 + output = '' + for setting in filter(lambda s: s.shared, setting_infos): + name = setting.name + ': ' + ' ' * (padding - len(setting.name)) + val = str(self.__dict__[setting.name]) + output += name + val + '\n' + return output + def get_settings_string(self): bits = [] for setting in filter(lambda s: s.shared and s.bitwidth > 0, setting_infos): From 23cda755fcb5e407cfd0735ecdb6b6b4feb7f31e Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Tue, 3 Jul 2018 11:43:03 -0500 Subject: [PATCH 082/755] Refactored hint system to use Message framework instead of writing rom directly. --- Gui.py | 10 +-- Hints.py | 237 +++++++++++++++++++++++++++------------------------- Messages.py | 10 ++- Rom.py | 67 ++++++++------- 4 files changed, 169 insertions(+), 155 deletions(-) diff --git a/Gui.py b/Gui.py index d37fc7859..7e84229e6 100644 --- a/Gui.py +++ b/Gui.py @@ -438,9 +438,9 @@ def RomSelect(): def generateRom(): - settings = guivars_to_settings(guivars) + settings = guivars_to_settings(guivars) - try: + #try: if settings.count is not None: orig_seed = settings.seed for i in range(settings.count): @@ -448,9 +448,9 @@ def generateRom(): main(settings) else: main(settings) - except Exception as e: - messagebox.showerror(title="Error while creating seed", message=str(e)) - else: + #except Exception as e: + # messagebox.showerror(title="Error while creating seed", message=str(e)) + #else: messagebox.showinfo(title="Success", message="Rom patched successfully") generateButton = Button(generateSeedFrame, text='Generate Patched Rom', command=generateRom) diff --git a/Hints.py b/Hints.py index af1f0f0c5..10d914b3d 100644 --- a/Hints.py +++ b/Hints.py @@ -9,6 +9,7 @@ from Utils import local_path from Items import ItemFactory from ItemList import eventlocations +from Messages import update_message_by_id gooditems = [ 'Bow', @@ -123,26 +124,34 @@ def isDungeonItem(item): return item.type == 'Map' or item.type == 'Compass' or item.type == 'BossKey' or item.type == 'SmallKey' -def writeHintToRom(hint, stoneAddress, rom): - hintBytes = getBytes(hint) - endText(hintBytes) - rom.write_bytes(stoneAddress, hintBytes) +# def writeHintToRom(hint, stoneAddress, rom): +# hintBytes = getBytes(hint) +# endText(hintBytes) +# rom.write_bytes(stoneAddress, hintBytes) +def update_hint(messages, id, text): + update_message_by_id(messages, id, get_raw_text(text)) #builds out general hints based on location and whether an item is required or not -def buildGossipHints(world, rom): - stoneAddresses = [0x938e4c, 0x938EA8, 0x938F04, 0x938F60, 0x938FBC, 0x939018, 0x939074, 0x9390D0, 0x93912C, 0x939188, - 0x9391E4, 0x939240, 0x93929C, 0x9392F8, 0x939354, 0x9393B0, 0x93940C, 0x939468, 0x9394C4, 0x939520, - 0x93957C, 0x9395D8, 0x939634, 0x939690, 0x9396EC, 0x939748, 0x9397A4, 0x939800, 0x93985C, 0x9398B8, - 0x939914, 0x939970] #address for gossip stone text boxes, byte limit is 92 +def buildGossipHints(world, messages): + # stoneAddresses = [0x938e4c, 0x938EA8, 0x938F04, 0x938F60, 0x938FBC, 0x939018, 0x939074, 0x9390D0, 0x93912C, 0x939188, + # 0x9391E4, 0x939240, 0x93929C, 0x9392F8, 0x939354, 0x9393B0, 0x93940C, 0x939468, 0x9394C4, 0x939520, + # 0x93957C, 0x9395D8, 0x939634, 0x939690, 0x9396EC, 0x939748, 0x9397A4, 0x939800, 0x93985C, 0x9398B8, + # 0x939914, 0x939970] #address for gossip stone text boxes, byte limit is 92 + + + stoneIDs = [0x0401, 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407, 0x0408, + 0x0409, 0x040A, 0x040B, 0x040C, 0x040D, 0x040E, 0x040F, 0x0410, + 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, 0x0418, + 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, 0x0420] #hopefully fixes weird VC error where the last character from a previous text box would sometimes spill over into the next box. - for address in range(stoneAddresses[0], 0x9399D8): - rom.write_byte(address, 0x08) + # for address in range(stoneAddresses[0], 0x9399D8): + # rom.write_byte(address, 0x08) #shuffles the stone addresses for randomization, always locations will be placed first and twice - random.shuffle(stoneAddresses) + random.shuffle(stoneIDs) # get list of required items that are not events or needed for Ganon's Castle requiredItems = [(location, item) for _,sphere in world.spoiler.playthrough.items() for location,item in sphere.items() @@ -154,11 +163,10 @@ def buildGossipHints(world, rom): requiredSample = random.sample(requiredItems, random.randint(3,4)) for location,item in requiredSample: if world.get_location(location).parent_region.dungeon: - writeHintToRom(buildHintString(getHint(world.get_location(location).parent_region.dungeon.name).text + \ - " is on the way of the hero."), stoneAddresses.pop(0), rom) + update_hint(messages, stoneIDs.pop(0), buildHintString(getHint(world.get_location(location).parent_region.dungeon.name).text + \ + " is on the way of the hero.")) else: - writeHintToRom(buildHintString(world.get_location(location).parent_region.name + " is on the way of the hero."),\ - stoneAddresses.pop(0), rom) + update_hint(messages, stoneIDs.pop(0), buildHintString(world.get_location(location).parent_region.name + " is on the way of the hero.")) # Don't repeat hints checkedLocations = [] @@ -169,9 +177,8 @@ def buildGossipHints(world, rom): for locationWorld in world.get_locations(): if hint.name == locationWorld.name: checkedLocations.append(hint.name) - writeHintToRom(getHint(locationWorld.name).text + " " + \ - getHint(getItemGenericName(locationWorld.item)).text + ".",\ - stoneAddresses.pop(0), rom) + update_hint(messages, stoneIDs.pop(0), getHint(locationWorld.name).text + " " + \ + getHint(getItemGenericName(locationWorld.item)).text + ".") # Add good location hints @@ -186,9 +193,8 @@ def buildGossipHints(world, rom): for locationWorld in world.get_locations(): if hint.name == locationWorld.name: checkedLocations.append(locationWorld.name) - writeHintToRom(getHint(locationWorld.name).text + " " + \ - getHint(getItemGenericName(locationWorld.item)).text + ".",\ - stoneAddresses.pop(0), rom) + update_hint(messages, stoneIDs.pop(0), getHint(locationWorld.name).text + " " + \ + getHint(getItemGenericName(locationWorld.item)).text + ".") # add bad dungeon locations hints for dungeon in random.sample(world.dungeons, random.randint(3,4)): @@ -201,9 +207,8 @@ def buildGossipHints(world, rom): location.item.type != 'Song']) checkedLocations.append(locationWorld.name) - writeHintToRom(buildHintString(getHint(dungeon.name).text + \ - " hordes " + getHint(getItemGenericName(locationWorld.item)).text + "."),\ - stoneAddresses.pop(0), rom) + update_hint(messages, stoneIDs.pop(0), buildHintString(getHint(dungeon.name).text + \ + " hordes " + getHint(getItemGenericName(locationWorld.item)).text + ".")) # add bad overworld locations hints # only choose location if it is new and a proper item from the overworld @@ -221,9 +226,8 @@ def buildGossipHints(world, rom): overworldSample = random.sample(overworldlocations, random.randint(3,4)) for locationWorld in overworldSample: checkedLocations.append(locationWorld.name) - writeHintToRom(buildHintString(getHint(getItemGenericName(locationWorld.item)).text + \ - " can be found at " + locationWorld.parent_region.name + "."),\ - stoneAddresses.pop(0), rom) + update_hint(messages, stoneIDs.pop(0), buildHintString(getHint(getItemGenericName(locationWorld.item)).text + \ + " can be found at " + locationWorld.parent_region.name + ".")) # add good item hints # only choose location if it is new and a good item @@ -236,138 +240,147 @@ def buildGossipHints(world, rom): for locationWorld in gooditemSample: checkedLocations.append(locationWorld.name) if locationWorld.parent_region.dungeon: - writeHintToRom(buildHintString(getHint(locationWorld.parent_region.dungeon.name).text + \ - " hordes " + getHint(getItemGenericName(locationWorld.item)).text + "."),\ - stoneAddresses.pop(0), rom) + update_hint(messages, stoneIDs.pop(0), buildHintString(getHint(locationWorld.parent_region.dungeon.name).text + \ + " hordes " + getHint(getItemGenericName(locationWorld.item)).text + ".")) else: - writeHintToRom(buildHintString(getHint(getItemGenericName(locationWorld.item)).text + \ - " can be found at " + locationWorld.parent_region.name + "."),\ - stoneAddresses.pop(0), rom) + update_hint(messages, stoneIDs.pop(0), buildHintString(getHint(getItemGenericName(locationWorld.item)).text + \ + " can be found at " + locationWorld.parent_region.name + ".")) # fill the remaining hints with junk junkHints = getHintGroup('junkHint', world) random.shuffle(junkHints) - while stoneAddresses: - junkHint = junkHints.pop() - Block_code = getBytes(junkHint.text) - endText(Block_code) - rom.write_bytes(stoneAddresses.pop(0), Block_code) - - return rom + while stoneIDs: + # junkHint = junkHints.pop() + # Block_code = getBytes(junkHint.text) + # endText(Block_code) + # rom.write_bytes(stoneIDs.pop(0), Block_code) + update_hint( messages, stoneIDs.pop(0), junkHints.pop().text ) # builds boss reward text that is displayed at the temple of time altar for child and adult, pull based off of item in a fixed order. -def buildBossRewardHints(world, rom): +def buildBossRewardHints(world, messages): bossRewardsSpiritualStones = ['Kokiri Emerald', 'Goron Ruby', 'Zora Sapphire'] bossRewardsMedallions = ['Forest Medallion', 'Fire Medallion', 'Water Medallion', 'Shadow Medallion', 'Spirit Medallion', 'Light Medallion'] # text that appears at altar as a child. - Block_code = [] - Block_code = getBytes(getHint('Spiritual Stone Text Start').text) + text = '' + text += get_raw_text(getHint('Spiritual Stone Text Start').text) for reward in bossRewardsSpiritualStones: - buildBossString(Block_code, reward, world) + text += buildBossString(reward, world) + + text = setRewardColor(text) + text += get_raw_text(getHint('Spiritual Stone Text End').text) + text += '\x08' + + update_message_by_id(messages, 0x707a, text, 0x20) - Block_code = setRewardColor(Block_code) - Block_code.extend(getBytes(getHint('Spiritual Stone Text End').text)) - Block_code.extend([0x0B]) - endText(Block_code) - rom.write_bytes(0x95ED95, Block_code) # text that appears at altar as an adult. - Block_code = [] + start = 'When evil rules all, an awakening\x01voice from the Sacred Realm will\x01call those destined to be Sages,\x01who dwell in the \x05\x41five temples\x05\x40.\x04' + text = '' for reward in bossRewardsMedallions: - buildBossString(Block_code, reward, world) + text += buildBossString(reward, world) - Block_code = setRewardColor(Block_code) - Block_code.extend(getBytes(getHint('Medallion Text End').text)) - Block_code.extend([0x0B]) - endText(Block_code) - rom.write_bytes(0x95DB94, Block_code) - - return rom + text = setRewardColor(text) + text += get_raw_text(getHint('Medallion Text End').text) + text += '\x08' + + update_message_by_id(messages, 0x7057, start + text, 0x20) # pulls text string from hintlist for reward after sending the location to hintlist. -def buildBossString(Block_code, reward, world): +def buildBossString(reward, world): + text = '' for location in world.get_locations(): if location.item.name == reward: - Block_code.extend([0x08]) - Block_code.extend(getBytes(getHint(location.name).text)) - - return Block_code + text += '\x08' + get_raw_text(getHint(location.name).text) + return text # alternates through color set commands in child and adult boss reward hint strings setting the colors at the start of the string to correspond with the reward found at the location. # skips over color commands at the end of stings to set color back to white. -def setRewardColor(Block_code): - rewardColors = [0x42, 0x41, 0x43, 0x45, 0x46, 0x44] +def setRewardColor(text): + rewardColors = ['\x42', '\x41', '\x43', '\x45', '\x46', '\x44'] colorWhite = True - for i, byte in enumerate(Block_code): - if byte == 0x05 and colorWhite: - Block_code[i + 1] = rewardColors.pop(0) + for i, char in enumerate(text): + if char == '\x05' and colorWhite: + text = text[:i + 1] + rewardColors.pop(0) + text[i + 2:] colorWhite = False - elif byte == 0x05 and not colorWhite: + elif char == '\x05' and not colorWhite: colorWhite = True - return Block_code + return text # fun new lines for Ganon during the final battle -def buildGanonText(world, rom): - # reorganize text header files to make space for text - rom.write_bytes(0xB884B1, [0x03, 0x41, 0xED]) - rom.write_bytes(0xB884B9, [0x03, 0x41, 0xEE]) - rom.write_bytes(0xB884C1, [0x03, 0x41, 0xEF]) - rom.write_bytes(0xB884C9, [0x03, 0x42, 0x99]) +def buildGanonText(world, messages): + # empty now unused messages to make space for ganon lines + update_message_by_id(messages, 0x70C8, " ") + update_message_by_id(messages, 0x70C9, " ") + update_message_by_id(messages, 0x70CA, " ") + # rom.write_bytes(0xB884B1, [0x03, 0x41, 0xED]) + # rom.write_bytes(0xB884B9, [0x03, 0x41, 0xEE]) + # rom.write_bytes(0xB884C1, [0x03, 0x41, 0xEF]) + # rom.write_bytes(0xB884C9, [0x03, 0x42, 0x99]) # clear space for new text - for address in range(0x9611EC, 0x961349): - rom.write_byte(address, 0x08) + # for address in range(0x9611EC, 0x961349): + # rom.write_byte(address, 0x08) - Block_code = [] - # lines before battle, 160 characters max + text = '' + # lines before battle ganonLines = getHintGroup('ganonLine', world) random.shuffle(ganonLines) - Block_code = getBytes(ganonLines.pop().text) - endText(Block_code) - rom.write_bytes(0x9611F1, Block_code) + text = get_raw_text(ganonLines.pop().text) + update_message_by_id(messages, 0x70CB, text) + text = '' if world.trials == '0': for location in world.get_locations(): if location.item.name == 'Light Arrows': - Block_code = getBytes(getHint('Light Arrow Location').text) - Block_code.extend(getBytes(location.hint)) - Block_code.extend(getBytes('!')) + text = get_raw_text(getHint('Light Arrow Location').text) + text += get_raw_text(location.hint) + text += '!' break - endText(Block_code) else: - Block_code = getBytes(getHint('Validation Line').text) + text = get_raw_text(getHint('Validation Line').text) for location in world.get_locations(): if location.name == 'Ganons Tower Boss Key Chest': - Block_code.extend(getBytes((getHint(location.item.name).text))) - endText(Block_code) + text += get_raw_text(getHint(location.item.name).text) - rom.write_bytes(0x96129D, Block_code) - - return rom - -#sets the end of text byte in the text box. -def endText(byteArray): - return byteArray.extend([0x02]) - -# reads array of characters and converts them to an array of bytes. -def getBytes(string): - byteCode = [] + update_message_by_id(messages, 0x70CC, text) + +# #sets the end of text byte in the text box. +# def endText(byteArray): +# return byteArray.extend([0x02]) + +# # reads array of characters and converts them to an array of bytes. +# def getBytes(string): +# byteCode = [] +# for char in string: +# if char == '^': +# byteCode.extend([0x04])#box break +# elif char == '&': +# byteCode.extend([0x01])#new line +# elif char == '@': +# byteCode.extend([0x0F])#print player name +# elif char == '#': +# byteCode.extend([0x05, 0x40]) #sets color to white +# else: +# char = char.encode('utf-8') +# char = char.hex() +# byte = int('0x' + char, 16) +# byteCode.extend([byte]) +# return byteCode + +def get_raw_text(string): + text = '' for char in string: if char == '^': - byteCode.extend([0x04])#box break + text += '\x04' # box break elif char == '&': - byteCode.extend([0x01])#new line + text += '\x01' #new line elif char == '@': - byteCode.extend([0x0F])#print player name + text += '\x0F' #print player name elif char == '#': - byteCode.extend([0x05, 0x40]) #sets color to white + text += '\x05\x40' #sets color to white else: - char = char.encode('utf-8') - char = char.hex() - byte = int('0x' + char, 16) - byteCode.extend([byte]) - return byteCode - + text += char + return text \ No newline at end of file diff --git a/Messages.py b/Messages.py index 34fbe2fbe..2c3a6a792 100644 --- a/Messages.py +++ b/Messages.py @@ -299,16 +299,18 @@ def from_string(cls, text, id=0, opts=0x00): # wrapper for updating the text of a message, given its message id # if the id does not exist in the list, this will silently do nothing -def update_message_by_id(messages, id, text): +def update_message_by_id(messages, id, text, opts=None): # get the message index index = next( (m.index for m in messages if m.id == id), -1) # update if it was found if index >= 0: - update_message_by_index(messages, index, text) + update_message_by_index(messages, index, text, opts) # wrapper for updating the text of a message, given its index in the list -def update_message_by_index(messages, index, text): - messages[index] = Message.from_string(text, messages[index].id, messages[index].opts) +def update_message_by_index(messages, index, text, opts=None): + if opts is None: + opts = messages[index].opts + messages[index] = Message.from_string(text, messages[index].id, opts) # wrapper for adding a string message to a list of messages def add_message(messages, text, id=0, opts=0x00): diff --git a/Rom.py b/Rom.py index ccf3b8e8b..e5f4a0e62 100644 --- a/Rom.py +++ b/Rom.py @@ -1039,30 +1039,41 @@ def write_byte_to_save(offset, value): # change the exit at child/day crawlspace to the end of zelda's goddess cutscene rom.write_bytes(0x21F60DE, [0x05, 0xF0]) + + messages = read_messages(rom) + shop_items = read_shop_items(rom) + remove_unused_messages(messages) + + # only one big poe needs to be caught to get the buyer's reward + if world.only_one_big_poe: + # change the value checked (in code) from 1000 to 100 + rom.write_bytes(0xEE69CE, [0x00, 0x64]) + # update dialogue + update_message_by_id(messages, 0x70f7, "\x1AOh, you brought a Poe today!\x04\x1AHmmmm!\x04\x1AVery interesting!\x01This is a \x05\x41Big Poe\x05\x40!\x04\x1AI'll buy it for \x05\x4150 Rupees\x05\x40.\x04On top of that, I'll put \x05\x41100\x01points \x05\x40on your card.\x04\x1AIf you earn \x05\x41100 points\x05\x40, you'll\x01be a happy man! Heh heh.") + update_message_by_id(messages, 0x70f8, "\x1AWait a minute! WOW!\x04\x1AYou have earned \x05\x41100 points\x05\x40!\x04\x1AYoung man, you are a genuine\x01\x05\x41Ghost Hunter\x05\x40!\x04\x1AIs that what you expected me to\x01say? Heh heh heh!\x04\x1ABecause of you, I have extra\x01inventory of \x05\x41Big Poes\x05\x40, so this will\x01be the last time I can buy a \x01ghost.\x04\x1AYou're thinking about what I \x01promised would happen when you\x01earned 100 points. Heh heh.\x04\x1ADon't worry, I didn't forget.\x01Just take this.") + # Sets hooks for gossip stone changes if world.hints != 'none': if world.hints != 'mask': rom.write_bytes(0xEE7B84, [0x0C, 0x10, 0x02, 0x10]) rom.write_bytes(0xEE7B8C, [0x24, 0x02, 0x00, 0x20]) - address = 0xB85B11 - offset = 0xBE4C - for i in range(0,33): - offset_high = offset >> 8 - offset_low = offset & 0x00FF - rom.write_bytes(address, [0x00, offset_high, offset_low]) - offset = offset + 0x5C - address = address + 0x08 - buildGossipHints(world, rom) + # address = 0xB85B11 + # offset = 0xBE4C + # for i in range(0,33): + # offset_high = offset >> 8 + # offset_low = offset & 0x00FF + # rom.write_bytes(address, [0x00, offset_high, offset_low]) + # offset = offset + 0x5C + # address = address + 0x08 + buildGossipHints(world, messages) # Set hints for boss reward shuffle rom.write_bytes(0xE2ADB2, [0x70, 0x7A]) rom.write_bytes(0xE2ADB6, [0x70, 0x57]) - rom.write_byte(0xB8811E, 0x20) - rom.write_byte(0xB88236, 0x20) - buildBossRewardHints(world, rom) + buildBossRewardHints(world, messages) # build silly ganon lines - buildGanonText(world, rom) + buildGanonText(world, messages) # Write item overrides rom.write_bytes(0x3481000, get_override_table(world)) @@ -1157,18 +1168,6 @@ def write_byte_to_save(offset, value): # actually write the save table to rom rom.write_bytes(0x3481800, initial_save_table) - messages = read_messages(rom) - shop_items = read_shop_items(rom) - remove_unused_messages(messages) - - # only one big poe needs to be caught to get the buyer's reward - if world.only_one_big_poe: - # change the value checked (in code) from 1000 to 100 - rom.write_bytes(0xEE69CE, [0x00, 0x64]) - # update dialogue - update_message_by_id(messages, 0x70f7, "\x1AOh, you brought a Poe today!\x04\x1AHmmmm!\x04\x1AVery interesting!\x01This is a \x05\x41Big Poe\x05\x40!\x04\x1AI'll buy it for \x05\x4150 Rupees\x05\x40.\x04On top of that, I'll put \x05\x41100\x01points \x05\x40on your card.\x04\x1AIf you earn \x05\x41100 points\x05\x40, you'll\x01be a happy man! Heh heh.") - update_message_by_id(messages, 0x70f8, "\x1AWait a minute! WOW!\x04\x1AYou have earned \x05\x41100 points\x05\x40!\x04\x1AYoung man, you are a genuine\x01\x05\x41Ghost Hunter\x05\x40!\x04\x1AIs that what you expected me to\x01say? Heh heh heh!\x04\x1ABecause of you, I have extra\x01inventory of \x05\x41Big Poes\x05\x40, so this will\x01be the last time I can buy a \x01ghost.\x04\x1AYou're thinking about what I \x01promised would happen when you\x01earned 100 points. Heh heh.\x04\x1ADon't worry, I didn't forget.\x01Just take this.") - # add a cheaper bombchu pack to the bombchu shop # describe add_message(messages, '\x08\x05\x41Bombchu (5 pieces) 60 Rupees\x01\x05\x40This looks like a toy mouse, but\x01it\'s actually a self-propelled time\x01bomb!\x09\x0A', 0x80FE, 0x03) @@ -1189,15 +1188,15 @@ def write_byte_to_save(offset, value): repack_messages(rom, messages) write_shop_items(rom, shop_items) - - # with open('keysanity_' + str(world.seed) + '_dump.txt', 'w', encoding='utf-16') as f: - # messages = read_messages(rom) - # shop_items = read_shop_items(rom) - # for m in messages: - # f.write(str(m) + '\n\n') - # f.write('\n\n\n\n\n') - # for s in shop_items: - # f.write(str(s) + '\n\n') + + with open('keysanity_' + str(world.seed) + '_dump.txt', 'w', encoding='utf-16') as f: + messages = read_messages(rom) + shop_items = read_shop_items(rom) + for m in messages: + f.write(str(m) + '\n\n') + f.write('\n\n\n\n\n') + for s in shop_items: + f.write(str(s) + '\n\n') # text shuffle if world.text_shuffle == 'except_hints': From f297b099d0871892ce06212585ab6a1959efd315 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Tue, 3 Jul 2018 11:56:23 -0500 Subject: [PATCH 083/755] Added instant text to opening line of dungeon reward hints. --- Hints.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Hints.py b/Hints.py index 10d914b3d..7f11aa189 100644 --- a/Hints.py +++ b/Hints.py @@ -262,7 +262,7 @@ def buildBossRewardHints(world, messages): bossRewardsMedallions = ['Forest Medallion', 'Fire Medallion', 'Water Medallion', 'Shadow Medallion', 'Spirit Medallion', 'Light Medallion'] # text that appears at altar as a child. - text = '' + text = '\x08' text += get_raw_text(getHint('Spiritual Stone Text Start').text) for reward in bossRewardsSpiritualStones: text += buildBossString(reward, world) @@ -275,7 +275,7 @@ def buildBossRewardHints(world, messages): # text that appears at altar as an adult. - start = 'When evil rules all, an awakening\x01voice from the Sacred Realm will\x01call those destined to be Sages,\x01who dwell in the \x05\x41five temples\x05\x40.\x04' + start = '\x08When evil rules all, an awakening\x01voice from the Sacred Realm will\x01call those destined to be Sages,\x01who dwell in the \x05\x41five temples\x05\x40.\x04' text = '' for reward in bossRewardsMedallions: text += buildBossString(reward, world) From d7369dcfcfc9426c82f7033424b98ce0bf23229b Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Tue, 3 Jul 2018 12:01:54 -0500 Subject: [PATCH 084/755] Fixed bug involving reward hints only being readable once. Cleaned up comments a bit. --- Gui.py | 10 +++++----- Hints.py | 58 +++++--------------------------------------------------- Rom.py | 24 ++++++++--------------- 3 files changed, 18 insertions(+), 74 deletions(-) diff --git a/Gui.py b/Gui.py index 7e84229e6..d37fc7859 100644 --- a/Gui.py +++ b/Gui.py @@ -438,9 +438,9 @@ def RomSelect(): def generateRom(): - settings = guivars_to_settings(guivars) + settings = guivars_to_settings(guivars) - #try: + try: if settings.count is not None: orig_seed = settings.seed for i in range(settings.count): @@ -448,9 +448,9 @@ def generateRom(): main(settings) else: main(settings) - #except Exception as e: - # messagebox.showerror(title="Error while creating seed", message=str(e)) - #else: + except Exception as e: + messagebox.showerror(title="Error while creating seed", message=str(e)) + else: messagebox.showinfo(title="Success", message="Rom patched successfully") generateButton = Button(generateSeedFrame, text='Generate Patched Rom', command=generateRom) diff --git a/Hints.py b/Hints.py index 7f11aa189..0801f4a49 100644 --- a/Hints.py +++ b/Hints.py @@ -124,32 +124,18 @@ def isDungeonItem(item): return item.type == 'Map' or item.type == 'Compass' or item.type == 'BossKey' or item.type == 'SmallKey' -# def writeHintToRom(hint, stoneAddress, rom): -# hintBytes = getBytes(hint) -# endText(hintBytes) -# rom.write_bytes(stoneAddress, hintBytes) - def update_hint(messages, id, text): update_message_by_id(messages, id, get_raw_text(text)) #builds out general hints based on location and whether an item is required or not def buildGossipHints(world, messages): - # stoneAddresses = [0x938e4c, 0x938EA8, 0x938F04, 0x938F60, 0x938FBC, 0x939018, 0x939074, 0x9390D0, 0x93912C, 0x939188, - # 0x9391E4, 0x939240, 0x93929C, 0x9392F8, 0x939354, 0x9393B0, 0x93940C, 0x939468, 0x9394C4, 0x939520, - # 0x93957C, 0x9395D8, 0x939634, 0x939690, 0x9396EC, 0x939748, 0x9397A4, 0x939800, 0x93985C, 0x9398B8, - # 0x939914, 0x939970] #address for gossip stone text boxes, byte limit is 92 - stoneIDs = [0x0401, 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407, 0x0408, 0x0409, 0x040A, 0x040B, 0x040C, 0x040D, 0x040E, 0x040F, 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, 0x0420] - #hopefully fixes weird VC error where the last character from a previous text box would sometimes spill over into the next box. - # for address in range(stoneAddresses[0], 0x9399D8): - # rom.write_byte(address, 0x08) - #shuffles the stone addresses for randomization, always locations will be placed first and twice random.shuffle(stoneIDs) @@ -250,10 +236,6 @@ def buildGossipHints(world, messages): junkHints = getHintGroup('junkHint', world) random.shuffle(junkHints) while stoneIDs: - # junkHint = junkHints.pop() - # Block_code = getBytes(junkHint.text) - # endText(Block_code) - # rom.write_bytes(stoneIDs.pop(0), Block_code) update_hint( messages, stoneIDs.pop(0), junkHints.pop().text ) # builds boss reward text that is displayed at the temple of time altar for child and adult, pull based off of item in a fixed order. @@ -269,7 +251,7 @@ def buildBossRewardHints(world, messages): text = setRewardColor(text) text += get_raw_text(getHint('Spiritual Stone Text End').text) - text += '\x08' + text += '\x0B' update_message_by_id(messages, 0x707a, text, 0x20) @@ -282,7 +264,7 @@ def buildBossRewardHints(world, messages): text = setRewardColor(text) text += get_raw_text(getHint('Medallion Text End').text) - text += '\x08' + text += '\x0B' update_message_by_id(messages, 0x7057, start + text, 0x20) @@ -315,23 +297,16 @@ def buildGanonText(world, messages): update_message_by_id(messages, 0x70C8, " ") update_message_by_id(messages, 0x70C9, " ") update_message_by_id(messages, 0x70CA, " ") - # rom.write_bytes(0xB884B1, [0x03, 0x41, 0xED]) - # rom.write_bytes(0xB884B9, [0x03, 0x41, 0xEE]) - # rom.write_bytes(0xB884C1, [0x03, 0x41, 0xEF]) - # rom.write_bytes(0xB884C9, [0x03, 0x42, 0x99]) - # clear space for new text - # for address in range(0x9611EC, 0x961349): - # rom.write_byte(address, 0x08) - - text = '' # lines before battle + text = '\x08' ganonLines = getHintGroup('ganonLine', world) random.shuffle(ganonLines) text = get_raw_text(ganonLines.pop().text) update_message_by_id(messages, 0x70CB, text) - text = '' + # light arrow hint or validation chest item + text = '\x08' if world.trials == '0': for location in world.get_locations(): if location.item.name == 'Light Arrows': @@ -346,29 +321,6 @@ def buildGanonText(world, messages): text += get_raw_text(getHint(location.item.name).text) update_message_by_id(messages, 0x70CC, text) - -# #sets the end of text byte in the text box. -# def endText(byteArray): -# return byteArray.extend([0x02]) - -# # reads array of characters and converts them to an array of bytes. -# def getBytes(string): -# byteCode = [] -# for char in string: -# if char == '^': -# byteCode.extend([0x04])#box break -# elif char == '&': -# byteCode.extend([0x01])#new line -# elif char == '@': -# byteCode.extend([0x0F])#print player name -# elif char == '#': -# byteCode.extend([0x05, 0x40]) #sets color to white -# else: -# char = char.encode('utf-8') -# char = char.hex() -# byte = int('0x' + char, 16) -# byteCode.extend([byte]) -# return byteCode def get_raw_text(string): text = '' diff --git a/Rom.py b/Rom.py index e5f4a0e62..a496bfa51 100644 --- a/Rom.py +++ b/Rom.py @@ -1057,14 +1057,6 @@ def write_byte_to_save(offset, value): if world.hints != 'mask': rom.write_bytes(0xEE7B84, [0x0C, 0x10, 0x02, 0x10]) rom.write_bytes(0xEE7B8C, [0x24, 0x02, 0x00, 0x20]) - # address = 0xB85B11 - # offset = 0xBE4C - # for i in range(0,33): - # offset_high = offset >> 8 - # offset_low = offset & 0x00FF - # rom.write_bytes(address, [0x00, offset_high, offset_low]) - # offset = offset + 0x5C - # address = address + 0x08 buildGossipHints(world, messages) # Set hints for boss reward shuffle @@ -1189,14 +1181,14 @@ def write_byte_to_save(offset, value): repack_messages(rom, messages) write_shop_items(rom, shop_items) - with open('keysanity_' + str(world.seed) + '_dump.txt', 'w', encoding='utf-16') as f: - messages = read_messages(rom) - shop_items = read_shop_items(rom) - for m in messages: - f.write(str(m) + '\n\n') - f.write('\n\n\n\n\n') - for s in shop_items: - f.write(str(s) + '\n\n') + # with open('keysanity_' + str(world.seed) + '_dump.txt', 'w', encoding='utf-16') as f: + # messages = read_messages(rom) + # shop_items = read_shop_items(rom) + # for m in messages: + # f.write(str(m) + '\n\n') + # f.write('\n\n\n\n\n') + # for s in shop_items: + # f.write(str(s) + '\n\n') # text shuffle if world.text_shuffle == 'except_hints': From 6bda79e2dc02373162ef41dcbc223d47dc599bca Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Tue, 3 Jul 2018 16:47:29 -0400 Subject: [PATCH 085/755] Added no_epona_race option --- Gui.py | 1 + README.md | 1 + Rom.py | 5 +++++ Settings.py | 5 +++++ 4 files changed, 12 insertions(+) diff --git a/Gui.py b/Gui.py index d37fc7859..0516a4eda 100644 --- a/Gui.py +++ b/Gui.py @@ -137,6 +137,7 @@ def MakeRadioList(parent, data): "no_escape_sequence": { "text": "Skip Tower Collapse Escape Sequence", "group": "convenience", "default": "unchecked" }, "no_guard_stealth": { "text": "Skip Interior Castle Guard Stealth Sequence", "group": "convenience", "default": "unchecked" }, + "no_epona_race": { "text": "Skip Epona Race", "group": "convenience", "default": "unchecked" }, "only_one_big_poe": { "text": "Big Poe Reward only requires one Big Poe", "group": "convenience", "default": "unchecked" }, "nodungeonitems": { "text": "Remove Maps and Compasses", "group": "other", "default": "unchecked" }, diff --git a/README.md b/README.md index 8a6e9b0a8..58d936d6a 100644 --- a/README.md +++ b/README.md @@ -41,6 +41,7 @@ Options for speeding up carpenter rescue portion of Gerudo Fortress Options to skip some sequences that only pad the time of completing the game without ever really changing between seeds have been added: - `no_guard_stealth`: the stealth sequence between the crawlspace into Hyrule Castle and Zelda's courtyard will be skipped. +- `no_epona_race`: you can summon Epona with her song without racing Ingo. - `only_one_big_poe`: the poe buyer will give the reward after selling 1 Big Poe instead of 10. ## Bombchus diff --git a/Rom.py b/Rom.py index a496bfa51..451fa8b97 100644 --- a/Rom.py +++ b/Rom.py @@ -1034,6 +1034,11 @@ def write_byte_to_save(offset, value): write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x04 + 0x3, 0xDC) # Thieves' Hideout switch flags (heard yells/unlocked doors) write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x0C + 0x2, 0xC4) # Thieves' Hideout collection flags (picked up keys, marks fights finished as well) + # Skip Epona race + if world.no_epona_race: + write_bits_to_save(0x0ED6, 0x01) # "Obtained Epona" + + # skip castle guard stealth sequence if world.no_guard_stealth: # change the exit at child/day crawlspace to the end of zelda's goddess cutscene diff --git a/Settings.py b/Settings.py index 305c2f3a7..308dba912 100644 --- a/Settings.py +++ b/Settings.py @@ -217,6 +217,11 @@ def __init__(self, settings_dict): The crawlspace into Hyrule Castle will take you straight to Zelda. ''', 'action': 'store_true'}), + Setting_Info('no_epona_race', bool, 1, True, { + 'help': '''\ + Having Epona's song will allow you to summon epona without racing Ingo. + ''', + 'action': 'store_true'}), Setting_Info('only_one_big_poe', bool, 1, True, { 'help': '''\ The Poe buyer will give a reward for turning in a single Big Poe. From 8ec9bc1683ba8a234bfa80dcc4c08713f2f12338 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Tue, 3 Jul 2018 19:08:44 -0400 Subject: [PATCH 086/755] Fixed write int16, and added missing read and write func for rom object --- Messages.py | 14 +++++--------- Rom.py | 41 +++++++++++++++++++++++++++++++++++++---- 2 files changed, 42 insertions(+), 13 deletions(-) diff --git a/Messages.py b/Messages.py index 2c3a6a792..4a204b8b2 100644 --- a/Messages.py +++ b/Messages.py @@ -7,10 +7,6 @@ SHOP_ITEM_START = 0xC022CC -# reads len bytes from the rom starting at offset -def read_bytes(rom, offset, len): - return rom.buffer[offset : offset + len] - # name of type, followed by number of additional bytes to read, follwed by a function that prints the code CONTROL_CODES = { 0x01: ('line-break', 0, lambda _: '\n' ), @@ -277,15 +273,15 @@ def __init__(self, raw_text, index, id, opts, offset, length): def from_rom(cls, rom, index): entry_offset = TABLE_START + 8 * index - entry = read_bytes(rom, entry_offset, 8) - next = read_bytes(rom, entry_offset + 8, 8) + entry = rom.read_bytes(entry_offset, 8) + next = rom.read_bytes(entry_offset + 8, 8) id = bytes_to_int(entry[0:2]) opts = entry[2] offset = bytes_to_int(entry[5:8]) length = bytes_to_int(next[5:8]) - offset - raw_text = read_bytes(rom, TEXT_START + offset, length) + raw_text = rom.read_bytes(TEXT_START + offset, length) return cls(raw_text, index, id, opts, offset, length) @@ -361,7 +357,7 @@ def write(self, rom, index): def __init__(self, rom, index): entry_offset = SHOP_ITEM_START + 0x20 * index - entry = read_bytes(rom, entry_offset, 0x20) + entry = rom.read_bytes(entry_offset, 0x20) self.index = index self.object = bytes_to_int(entry[0x00:0x02]) @@ -451,7 +447,7 @@ def read_messages(rom): index = 0 messages = [] while True: - entry = read_bytes(rom, table_offset, 8) + entry = rom.read_bytes(table_offset, 8) id = bytes_to_int(entry[0:2]) if id == 0xFFFD: diff --git a/Rom.py b/Rom.py index 451fa8b97..0c9f84a9c 100644 --- a/Rom.py +++ b/Rom.py @@ -98,6 +98,20 @@ def __init__(self, file, patch=True): # extend to 64MB self.buffer.extend(bytearray([0x00] * (67108864 - len(self.buffer)))) + def read_byte(self, address): + return self.buffer[address] + + def read_bytes(self, address, len): + return self.buffer[address : address + len] + + def read_int16(self, address): + return bytes_as_int16(self.read_bytes(address, 2)) + + def read_int24(self, address): + return bytes_as_int24(self.read_bytes(address, 3)) + + def read_int32(self, address): + return bytes_as_int32(self.read_bytes(address, 4)) def write_byte(self, address, value): self.buffer[address] = value @@ -106,10 +120,13 @@ def write_bytes(self, startaddress, values): for i, value in enumerate(values): self.write_byte(startaddress + i, value) - def write_int16_to_rom(self, address, value): + def write_int16(self, address, value): self.write_bytes(address, int16_as_bytes(value)) - def write_int32_to_rom(self, address, value): + def write_int24(self, address, value): + self.write_bytes(address, int24_as_bytes(value)) + + def write_int32(self, address, value): self.write_bytes(address, int32_as_bytes(value)) def write_to_file(self, file): @@ -124,11 +141,27 @@ def read_rom(stream): def int16_as_bytes(value): value = value & 0xFFFF - return [value & 0xFF, (value >> 8) & 0xFF] + return [(value >> 8) & 0xFF, value & 0xFF] + +def int24_as_bytes(value): + value = value & 0xFFFFFFFF + return [(value >> 16) & 0xFF, (value >> 8) & 0xFF, value & 0xFF] def int32_as_bytes(value): value = value & 0xFFFFFFFF - return [value & 0xFF, (value >> 8) & 0xFF, (value >> 16) & 0xFF, (value >> 24) & 0xFF] + return [(value >> 24) & 0xFF, (value >> 16) & 0xFF, (value >> 8) & 0xFF, value & 0xFF] + +def bytes_as_int16(values): + return (values[0] << 8) | values[1] + +def bytes_as_int24(values): + return (values[0] << 16) | (values[1] << 8) | values[2] + +def bytes_as_int32(values): + return (values[0] << 24) | (values[1] << 16) | (values[2] << 8) | values[3] + + + def patch_rom(world, rom): with open(local_path('data/base2current.json'), 'r') as stream: From 9866777f66083dfc8dde90fba5a71302b34459fb Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Tue, 3 Jul 2018 19:16:53 -0400 Subject: [PATCH 087/755] Chest sizes are dependent on contents option --- Gui.py | 3 ++- Rom.py | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++ Settings.py | 11 +++++++++++ 3 files changed, 70 insertions(+), 1 deletion(-) diff --git a/Gui.py b/Gui.py index 0516a4eda..fc4c55092 100644 --- a/Gui.py +++ b/Gui.py @@ -142,6 +142,7 @@ def MakeRadioList(parent, data): "nodungeonitems": { "text": "Remove Maps and Compasses", "group": "other", "default": "unchecked" }, "ocarina_songs": { "text": "Randomize ocarina song notes", "group": "other", "default": "unchecked" }, + "correct_chest_sizes":{ "text": "Chests size matches contents", "group": "other", "default": "unchecked" }, "logic_no_big_poes": { "text": "No Big Poes", "group": "rewards", "default": "unchecked" }, "logic_no_trade_skull_mask": { "text": "No Skull Mask reward", "group": "rewards", "default": "unchecked" }, @@ -439,7 +440,7 @@ def RomSelect(): def generateRom(): - settings = guivars_to_settings(guivars) + settings = guivars_to_settings(guivars) try: if settings.count is not None: diff --git a/Rom.py b/Rom.py index 0c9f84a9c..edc5e7e5c 100644 --- a/Rom.py +++ b/Rom.py @@ -1108,6 +1108,12 @@ def write_byte_to_save(offset, value): # Write item overrides rom.write_bytes(0x3481000, get_override_table(world)) + # Update chest type sizes + if world.correct_chest_sizes: + for address, chestType in get_new_chest_type_table(world): + chestVal = rom.read_int16(address) & 0x0FFF + rom.write_int16(address, chestVal | chestType) + # Patch songs and boss rewards for location in world.get_locations(): item = location.item @@ -1354,3 +1360,54 @@ def get_override_entry(location): return [scene, 0x02, default, item_id] else: return [] + + +chestTypeMap = { + # small big boss + 0x0000: [0x5000, 0x0000, 0x2000], #Large + 0x1000: [0x7000, 0x1000, 0x1000], #Large, Appears, Clear Flag + 0x2000: [0x5000, 0x0000, 0x2000], #Boss Key’s Chest + 0x3000: [0x8000, 0x3000, 0x3000], #Large, Falling, Switch Flag + 0x4000: [0x6000, 0x4000, 0x4000], #Large, Invisible + 0x5000: [0x5000, 0x0000, 0x2000], #Small + 0x6000: [0x6000, 0x4000, 0x4000], #Small, Invisible + 0x7000: [0x7000, 0x1000, 0x1000], #Small, Appears, Clear Flag + 0x8000: [0x8000, 0x3000, 0x3000], #Small, Falling, Switch Flag + 0x9000: [0x9000, 0x9000, 0x9000], #Large, Appears, Zelda's Lullaby + 0xA000: [0xA000, 0xA000, 0xA000], #Large, Appears, Sun's Song Triggered + 0xB000: [0xB000, 0xB000, 0xB000], #Large, Appears, Switch Flag + 0xC000: [0x5000, 0x0000, 0x2000], #Large + 0xD000: [0x5000, 0x0000, 0x2000], #Large + 0xE000: [0x5000, 0x0000, 0x2000], #Large + 0xF000: [0x5000, 0x0000, 0x2000], #Large +} + +def get_new_chest_type_table(world): + chest_type_entries = [] + for location in world.get_locations(): + (address, chestType) = get_new_chest_type_entry(location) + if address != None: + chest_type_entries.append((address, chestType)) + return chest_type_entries + +def get_new_chest_type_entry(location): + address = location.address + scene = location.scene + default = location.default + item_id = location.item.index + + if None in [address, scene, default, item_id]: + return (None, None) + + itemType = 0 + if location.item.key: + itemType = 2 + elif location.item.advancement: + itemType = 1 + + if location.type == 'Chest': + chestType = default & 0xF000 + newChestType = chestTypeMap[chestType][itemType] + return (address, newChestType) + else: + return (None, None) \ No newline at end of file diff --git a/Settings.py b/Settings.py index 308dba912..c532a6da5 100644 --- a/Settings.py +++ b/Settings.py @@ -370,6 +370,17 @@ def __init__(self, settings_dict): Randomizes the notes need to play for each ocarina song. ''', 'action': 'store_true'}), + Setting_Info('correct_chest_sizes', bool, 1, True, { + 'help': '''\ + Updates the chest sizes to match their contents. + Small Chest = Useless Item + Big Chest = Progression Item + Boss Chest = Dungeon Item + ''', + 'action': 'store_true'}), + + + Setting_Info('kokiricolor', str, 0, False, { 'default': 'Kokiri Green', 'const': 'Kokiri Green', From 6d45a4bff89d101a805a199f4b755edc2384b219 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Tue, 3 Jul 2018 19:17:25 -0400 Subject: [PATCH 088/755] Make dungeon keys Advancement items --- Items.py | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/Items.py b/Items.py index 5645a8e55..e405b446a 100644 --- a/Items.py +++ b/Items.py @@ -111,14 +111,14 @@ def ItemFactory(items): 'Magic Bean': (True, False, None, 0x02C0, 0x16), 'Map': (False, False, 'Map', 0x0820, 0x41), 'Compass': (False, False, 'Compass', 0x0800, 0x40), - 'Boss Key': (False, False, 'BossKey', 0x07E0, 0x3F), - 'Small Key': (False, False, 'SmallKey', 0x0840, 0x42), - 'Boss Key (Forest Temple)': (False, False, 'BossKey', None, 0x92), - 'Boss Key (Fire Temple)': (False, False, 'BossKey', None, 0x93), - 'Boss Key (Water Temple)': (False, False, 'BossKey', None, 0x94), - 'Boss Key (Spirit Temple)': (False, False, 'BossKey', None, 0x95), - 'Boss Key (Shadow Temple)': (False, False, 'BossKey', None, 0x96), - 'Boss Key (Ganons Castle)': (False, False, 'BossKey', None, 0x97), + 'Boss Key': (True, False, 'BossKey', 0x07E0, 0x3F), + 'Small Key': (True, False, 'SmallKey', 0x0840, 0x42), + 'Boss Key (Forest Temple)': (True, False, 'BossKey', None, 0x92), + 'Boss Key (Fire Temple)': (True, False, 'BossKey', None, 0x93), + 'Boss Key (Water Temple)': (True, False, 'BossKey', None, 0x94), + 'Boss Key (Spirit Temple)': (True, False, 'BossKey', None, 0x95), + 'Boss Key (Shadow Temple)': (True, False, 'BossKey', None, 0x96), + 'Boss Key (Ganons Castle)': (True, False, 'BossKey', None, 0x97), 'Compass (Deku Tree)': (False, False, 'Compass', None, 0x98), 'Compass (Dodongos Cavern)': (False, False, 'Compass', None, 0x99), 'Compass (Jabu Jabus Belly)': (False, False, 'Compass', None, 0x9A), @@ -139,15 +139,15 @@ def ItemFactory(items): 'Map (Shadow Temple)': (False, False, 'Map', None, 0xA9), 'Map (Bottom of the Well)': (False, False, 'Map', None, 0xAA), 'Map (Ice Cavern)': (False, False, 'Map', None, 0xAB), - 'Small Key (Forest Temple)': (False, False, 'SmallKey', None, 0xAC), - 'Small Key (Fire Temple)': (False, False, 'SmallKey', None, 0xAD), - 'Small Key (Water Temple)': (False, False, 'SmallKey', None, 0xAE), - 'Small Key (Spirit Temple)': (False, False, 'SmallKey', None, 0xAF), - 'Small Key (Shadow Temple)': (False, False, 'SmallKey', None, 0xB0), - 'Small Key (Bottom of the Well)': (False, False, 'SmallKey', None, 0xB1), - 'Small Key (Gerudo Training Grounds)': (False, False, 'SmallKey', None, 0xB2), - 'Small Key (Gerudo Fortress)': (False, False, 'SmallKey', None, 0xB3), - 'Small Key (Ganons Castle)': (False, False, 'SmallKey', None, 0xB4), + 'Small Key (Forest Temple)': (True, False, 'SmallKey', None, 0xAC), + 'Small Key (Fire Temple)': (True, False, 'SmallKey', None, 0xAD), + 'Small Key (Water Temple)': (True, False, 'SmallKey', None, 0xAE), + 'Small Key (Spirit Temple)': (True, False, 'SmallKey', None, 0xAF), + 'Small Key (Shadow Temple)': (True, False, 'SmallKey', None, 0xB0), + 'Small Key (Bottom of the Well)': (True, False, 'SmallKey', None, 0xB1), + 'Small Key (Gerudo Training Grounds)': (True, False, 'SmallKey', None, 0xB2), + 'Small Key (Gerudo Fortress)': (True, False, 'SmallKey', None, 0xB3), + 'Small Key (Ganons Castle)': (True, False, 'SmallKey', None, 0xB4), 'Zeldas Letter': (True, False, None, None, None), 'Zeldas Lullaby': (True, False, 'Song', 0x0A, 0x5), 'Eponas Song': (True, False, 'Song', 0x09, 0x4), From 4a260c82ced93bf0816e9e6447cb2ef5a2ec757e Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Tue, 3 Jul 2018 20:18:06 -0400 Subject: [PATCH 089/755] Added option to shuffle malon's weird egg --- Gui.py | 1 + ItemList.py | 10 ++++++++-- Items.py | 1 + Regions.py | 3 ++- Rules.py | 3 ++- Settings.py | 6 ++++++ 6 files changed, 20 insertions(+), 4 deletions(-) diff --git a/Gui.py b/Gui.py index fc4c55092..80d4c5939 100644 --- a/Gui.py +++ b/Gui.py @@ -134,6 +134,7 @@ def MakeRadioList(parent, data): "unlocked_ganondorf": { "text": "Remove Ganon's Boss Door Lock", "group": "logic", "default": "unchecked" }, "keysanity": { "text": "Keysanity", "group": "logic", "default": "unchecked" }, "beatableonly": { "text": "Only ensure seed is beatable", "group": "logic", "default": "unchecked" }, + "shuffle_weird_egg": { "text": "Shuffle Weird Egg", "group": "logic", "default": "unchecked" }, "no_escape_sequence": { "text": "Skip Tower Collapse Escape Sequence", "group": "convenience", "default": "unchecked" }, "no_guard_stealth": { "text": "Skip Interior Castle Guard Stealth Sequence", "group": "convenience", "default": "unchecked" }, diff --git a/ItemList.py b/ItemList.py index 0f74a303e..f828f8bb2 100644 --- a/ItemList.py +++ b/ItemList.py @@ -50,12 +50,15 @@ def generate_itempool(world): world.push_item(location, ItemFactory('Gold Skulltulla Token'), False) world.get_location(location).event = True + if not world.shuffle_weird_egg: + eventlocations['Malon Egg'] = 'Weird Egg' + for location, item in eventlocations.items(): world.push_item(location, ItemFactory(item), False) world.get_location(location).event = True # set up item pool - (pool, placed_items) = get_pool_core(world.place_dungeon_items) + (pool, placed_items) = get_pool_core(world.place_dungeon_items, world.shuffle_weird_egg) world.itempool = ItemFactory(pool) for (location, item) in placed_items: world.push_item(location, ItemFactory(item), False) @@ -65,12 +68,15 @@ def generate_itempool(world): fill_bosses(world) fill_songs(world) -def get_pool_core(dungeon_items): +def get_pool_core(dungeon_items, shuffle_weird_egg): pool = [] placed_items = [] if not dungeon_items: pool.extend(notmapcompass) + if shuffle_weird_egg: + pool.append('Weird Egg') + pool.extend(alwaysitems) for _ in range(normal_bottle_count): bottle = random.choice(normal_bottles) diff --git a/Items.py b/Items.py index e405b446a..80831aa23 100644 --- a/Items.py +++ b/Items.py @@ -49,6 +49,7 @@ def ItemFactory(items): 'Bottle with Blue Fire': (True, False, None, None, 0x8E), 'Bottle with Bugs': (True, False, None, None, 0x8F), 'Bottle with Poe': (True, False, None, None, 0x91), + 'Weird Egg': (True, False, None, 0x08E0, 0x47), 'Pocket Egg': (True, False, None, 0x03A0, 0x1D), 'Pocket Cucco': (True, False, None, 0x03C0, 0x1E), 'Cojiro': (True, False, None, 0x01C0, 0x0E), diff --git a/Regions.py b/Regions.py index 1881dbaa6..890552eb3 100644 --- a/Regions.py +++ b/Regions.py @@ -53,7 +53,7 @@ def create_regions(world): 'Castle Town Bombchu Bowling', 'Castle Town Potion Shop', 'Castle Town Treasure Chest Game', 'Castle Town Bombchu Shop', 'Castle Town Dog Lady', 'Castle Town Man in Green House']), create_interior_region('Temple of Time', ['Zelda'], ['Temple of Time Exit', 'Door of Time']), create_interior_region('Beyond Door of Time', ['Master Sword Pedestal', 'Sheik at Temple'], ['Emerge as Adult']), - create_ow_region('Hyrule Castle Grounds', ['GS15'], ['Hyrule Castle Grounds Exit', 'Hyrule Castle Garden', 'Hyrule Castle Fairy', 'Castle Storms Grotto']), + create_ow_region('Hyrule Castle Grounds', ['Malon Egg', 'GS15'], ['Hyrule Castle Grounds Exit', 'Hyrule Castle Garden', 'Hyrule Castle Fairy', 'Castle Storms Grotto']), create_ow_region('Hyrule Castle Garden', ['Zeldas Letter', 'Impa at Castle'], ['Hyrule Castle Garden Exit']), create_interior_region('Hyrule Castle Fairy', ['Hyrule Castle Fairy Reward']), create_ow_region('Ganons Castle Grounds', ['GS17'], ['Ganons Castle Grounds Exit', 'Ganons Castle Fairy', 'Rainbow Bridge']), @@ -383,6 +383,7 @@ def _create_region(name, type, locations=None, exits=None): 'Sheik in Kakariko': (0x2000FE1, 0x2000FE1, 0x06, 'Song', None, None), 'Sheik at Colossus': (0x218C57D, 0x218C57D, 0x05, 'Song', None, None), 'Gift from Saria': (None, None, None, 'NPC', None, 'the Lost Woods'), + 'Malon Egg': (None, None, 0x47, 'NPC', 0x5F, 'Hyrule Castle'), 'Zeldas Letter': (None, None, None, 'NPC', None, 'Hyrule Castle'), 'Zelda': (0x3481400, None, 0x5A, 'NPC', 0x43, 'the Temple of Time'), 'Zoras Fountain Fairy Reward': (0x3481401, None, 0x5D, 'NPC', 0x3D, 'Zora\'s Fountain'), diff --git a/Rules.py b/Rules.py index 502a0d250..90b88bf23 100644 --- a/Rules.py +++ b/Rules.py @@ -119,6 +119,7 @@ def global_rules(world): set_rule(world.get_entrance('Mountain Crater Entrance'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Hyrule Castle Fairy'), lambda state: state.has_explosives()) set_rule(world.get_location('Hyrule Castle Fairy Reward'), lambda state: state.has('Zeldas Lullaby')) + set_rule(world.get_entrance('Hyrule Castle Garden'), lambda state: state.has('Weird Egg') or (not world.shuffle_weird_egg)) set_rule(world.get_entrance('Ganons Castle Grounds'), lambda state: state.is_adult()) set_rule(world.get_entrance('Ganons Castle Fairy'), lambda state: state.has('Progressive Strength Upgrade', 3)) set_rule(world.get_location('Ganons Castle Fairy Reward'), lambda state: state.has('Zeldas Lullaby')) @@ -422,4 +423,4 @@ def global_rules(world): for location in world.get_locations(): if location.type != 'Chest': - forbid_item(location, 'Ice Trap') + forbid_item(location, 'Ice Trap') \ No newline at end of file diff --git a/Settings.py b/Settings.py index c532a6da5..851aa655e 100644 --- a/Settings.py +++ b/Settings.py @@ -251,6 +251,12 @@ def __init__(self, settings_dict): on the restrictive algorithm currently. ''', 'action': 'store_true'}), + Setting_Info('shuffle_weird_egg', bool, 1, True, { + 'help': '''\ + Shuffles the Weird Egg item from Malon into the pool. + This means that you need to find the egg before going Zelda. + ''', + 'action': 'store_true'}), Setting_Info('hints', str, 2, True, { 'default': 'none', 'const': 'always', From 80a705b1ba0cd3da11019f2e308be0a26e76c007 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Tue, 3 Jul 2018 20:21:56 -0400 Subject: [PATCH 090/755] Fix merge adding punctuation in hints that shouldn't be there --- HintList.py | 188 ++++++++++++++++++++++++++-------------------------- 1 file changed, 94 insertions(+), 94 deletions(-) diff --git a/HintList.py b/HintList.py index 9cba48f7e..d9a189d15 100644 --- a/HintList.py +++ b/HintList.py @@ -33,103 +33,103 @@ def getHintGroup(string, world): # & is a new line # @ will print the player name # # sets color to white (currently only used for dungeon reward hints). -hintTable = {'Hammer': (" the dragon smasher.", 'item'), - 'Magic Meter': (" pixie dust.", 'item'), +hintTable = {'Hammer': (" the dragon smasher", 'item'), + 'Magic Meter': (" pixie dust", 'item'), 'Double Defense': (" a white outline", 'item'), - 'Progressive Hookshot': (" Dampe's Keepsake.", 'item'), - 'Progressive Strength Upgrade': (" power gloves.", 'item'), - 'Hover Boots': (" butter boots.", 'item'), - 'Master Sword': (" evil's bane.", 'item'), - 'Mirror Shield': (" the reflective rampart.", 'item'), - 'Farores Wind': (" teleportation.", 'item'), - 'Nayrus Love': (" a safe space.", 'item'), - 'Ice Arrows': (" the refrigerator rocket.", 'item'), - 'Lens of Truth': (" the perjurless porthole.", 'item'), - 'Dins Fire': (" an inferno.", 'item'), - 'Fairy Ocarina': (" a brown flute.", 'item'), - 'Goron Tunic': (" ruby robes.", 'item'), - 'Zora Tunic': (" a sapphire suit.", 'item'), - 'Iron Boots': (" sink shoes.", 'item'), - 'Zeldas Letter': (" a signed banana.", 'item'), - 'Zeldas Lullaby': (" a song of royal slumber.", 'item'), - 'Nocturne of Shadow': (" a song of spooky spirits.", 'item'), - 'Bow': (" an archery enabler.", 'item'), - 'Bomb Bag': (" an explosive container.", 'item'), - 'Sarias Song': (" a song of dancing gorons.", 'item'), - 'Song of Time': (" a song 7 years long.", 'item'), - 'Song of Storms': (" Rain Dance.", 'item'), - 'Minuet of Forest': (" the song of tall trees.", 'item'), - 'Requiem of Spirit': (" a song of sandy statues.", 'item'), - 'Slingshot': (" a seed shooter.", 'item'), - 'Boomerang': (" a banana.", 'item'), - 'Fire Arrows': (" the furnace firearm.", 'item'), - 'Ocarina of Time': (" blue flute.", 'item'), - 'Bottle': (" a fairy prison.", 'item'), - 'Bottle with Letter': (" a call for help.", 'item'), - 'Bottle with Milk': (" cow juice.", 'item'), - 'Bottle with Red Potion': (" a vitality vial.", 'item'), - 'Bottle with Green Potion': (" a magic mixture.", 'item'), - 'Bottle with Blue Potion': (" an all-cure antidote.", 'item'), - 'Bottle with Fairy': (" an imprisoned fairy.", 'item'), - 'Bottle with Fish': (" an aquarium.", 'item'), - 'Bottle with Blue Fire': (" a conflagration canteen.", 'item'), - 'Bottle with Bugs': (" a terrarium.", 'item'), - 'Bottle with Poe': (" a spooky ghost.", 'item'), - 'Progressive Scale': (" Zora Flippers.", 'item'), - 'Stone of Agony': (" an empty chest.", 'item'), - 'Eponas Song': (" an equestrian etude.", 'item'), - 'Epona': (" a horse.", 'item'), - 'Gerudo Membership Card': (" a GT subscription.", 'item'), - 'Progressive Wallet': (" a mo' money holder.", 'item'), - 'Bolero of Fire': (" a song of lethal lava.", 'item'), - 'Suns Song': (" Sunny Day.", 'item'), - 'Deku Shield': (" a wooden ward.", 'item'), - 'Hylian Shield': (" a steel safeguard.", 'item'), - 'Deku Stick Capacity': (" a bundle of sticks.", 'item'), - 'Deku Nut Capacity': (" more nuts.", 'item'), - 'Prelude of Light': (" a luminous prologue melody.", 'item'), - 'Serenade of Water': (" a song of a damp ditch.", 'item'), - 'Heart Container': (" a lot of love.", 'item'), - 'Piece of Heart': (" love.", 'item'), + 'Progressive Hookshot': (" Dampe's Keepsake", 'item'), + 'Progressive Strength Upgrade': (" power gloves", 'item'), + 'Hover Boots': (" butter boots", 'item'), + 'Master Sword': (" evil's bane", 'item'), + 'Mirror Shield': (" the reflective rampart", 'item'), + 'Farores Wind': (" teleportation", 'item'), + 'Nayrus Love': (" a safe space", 'item'), + 'Ice Arrows': (" the refrigerator rocket", 'item'), + 'Lens of Truth': (" the perjurless porthole", 'item'), + 'Dins Fire': (" an inferno", 'item'), + 'Fairy Ocarina': (" a brown flute", 'item'), + 'Goron Tunic': (" ruby robes", 'item'), + 'Zora Tunic': (" a sapphire suit", 'item'), + 'Iron Boots': (" sink shoes", 'item'), + 'Zeldas Letter': (" a signed banana", 'item'), + 'Zeldas Lullaby': (" a song of royal slumber", 'item'), + 'Nocturne of Shadow': (" a song of spooky spirits", 'item'), + 'Bow': (" an archery enabler", 'item'), + 'Bomb Bag': (" an explosive container", 'item'), + 'Sarias Song': (" a song of dancing gorons", 'item'), + 'Song of Time': (" a song 7 years long", 'item'), + 'Song of Storms': (" Rain Dance", 'item'), + 'Minuet of Forest': (" the song of tall trees", 'item'), + 'Requiem of Spirit': (" a song of sandy statues", 'item'), + 'Slingshot': (" a seed shooter", 'item'), + 'Boomerang': (" a banana", 'item'), + 'Fire Arrows': (" the furnace firearm", 'item'), + 'Ocarina of Time': (" blue flute", 'item'), + 'Bottle': (" a fairy prison", 'item'), + 'Bottle with Letter': (" a call for help", 'item'), + 'Bottle with Milk': (" cow juice", 'item'), + 'Bottle with Red Potion': (" a vitality vial", 'item'), + 'Bottle with Green Potion': (" a magic mixture", 'item'), + 'Bottle with Blue Potion': (" an all-cure antidote", 'item'), + 'Bottle with Fairy': (" an imprisoned fairy", 'item'), + 'Bottle with Fish': (" an aquarium", 'item'), + 'Bottle with Blue Fire': (" a conflagration canteen", 'item'), + 'Bottle with Bugs': (" a terrarium", 'item'), + 'Bottle with Poe': (" a spooky ghost", 'item'), + 'Progressive Scale': (" Zora Flippers", 'item'), + 'Stone of Agony': (" an empty chest", 'item'), + 'Eponas Song': (" an equestrian etude", 'item'), + 'Epona': (" a horse", 'item'), + 'Gerudo Membership Card': (" a GT subscription", 'item'), + 'Progressive Wallet': (" a mo' money holder", 'item'), + 'Bolero of Fire': (" a song of lethal lava", 'item'), + 'Suns Song': (" Sunny Day", 'item'), + 'Deku Shield': (" a wooden ward", 'item'), + 'Hylian Shield': (" a steel safeguard", 'item'), + 'Deku Stick Capacity': (" a bundle of sticks", 'item'), + 'Deku Nut Capacity': (" more nuts", 'item'), + 'Prelude of Light': (" a luminous prologue melody", 'item'), + 'Serenade of Water': (" a song of a damp ditch", 'item'), + 'Heart Container': (" a lot of love", 'item'), + 'Piece of Heart': (" love", 'item'), 'Piece of Heart (Treasure Chest Game)': (" WINNER!", 'item'), - 'Recovery Heart': (" a free heal.", 'item'), - 'Rupee (1)': (" rare riches.", 'item'), - 'Rupees (5)': (" a common coin.", 'item'), - 'Rupees (20)': (" couch cash.", 'item'), - 'Rupees (50)': (" big bucks.", 'item'), - 'Rupees (200)': (" a juicy jackpot.", 'item'), - 'Light Arrows': (" the shining shot.", 'item'), - 'Kokiri Sword': (" a butter knife.", 'item'), - 'Biggoron Sword': (" a shield disabler.", 'item'), - 'Pocket Egg': (" a cucco container.", 'item'), - 'Pocket Cucco': (" a little clucker.", 'item'), - 'Cojiro': (" a cerulean capon.", 'item'), - 'Odd Mushroom': (" a powder ingredient.", 'item'), - 'Odd Potion': (" granny's goodies.", 'item'), - 'Poachers Saw': (" a tree killer.", 'item'), - 'Broken Sword': (" a shattered slicer.", 'item'), + 'Recovery Heart': (" a free heal", 'item'), + 'Rupee (1)': (" rare riches", 'item'), + 'Rupees (5)': (" a common coin", 'item'), + 'Rupees (20)': (" couch cash", 'item'), + 'Rupees (50)': (" big bucks", 'item'), + 'Rupees (200)': (" a juicy jackpot", 'item'), + 'Light Arrows': (" the shining shot", 'item'), + 'Kokiri Sword': (" a butter knife", 'item'), + 'Biggoron Sword': (" a shield disabler", 'item'), + 'Pocket Egg': (" a cucco container", 'item'), + 'Pocket Cucco': (" a little clucker", 'item'), + 'Cojiro': (" a cerulean capon", 'item'), + 'Odd Mushroom': (" a powder ingredient", 'item'), + 'Odd Potion': (" granny's goodies", 'item'), + 'Poachers Saw': (" a tree killer", 'item'), + 'Broken Sword': (" a shattered slicer", 'item'), 'Prescription': (" a pill pamphlet", 'item'), - 'Eyeball Frog': (" a perceiving polliwog.", 'item'), - 'Eyedrops': (" a vision vial.", 'item'), - 'Claim Check': (" a three day wait.", 'item'), - 'Map': (" a dungeon atlas.", 'item'), - 'Compass': (" a treasure tracker.", 'item'), - 'BossKey': (" a master of unlocking.", 'item'), - 'SmallKey': (" a tool for unlocking.", 'item'), - 'useless': (" something worthless.", 'item'), - 'Arrows (5)': (" danger darts.", 'item'), - 'Arrows (10)': (" danger darts.", 'item'), - 'Arrows (30)': (" danger darts.", 'item'), - 'Bombs (5)': (" explosives.", 'item'), - 'Bombs (10)': (" explosives.", 'item'), - 'Bombs (20)': (" lots-o-explosives.", 'item'), - 'Ice Trap': (" a gift from Ganon.", 'item'), - 'Magic Bean': (" wizardly legumes.", 'item'), - 'Bombchus (5)': (" mice bombs.", 'item'), - 'Bombchus (10)': (" mice bombs.", 'item'), - 'Bombchus (20)': (" mice bombs.", 'item'), - 'Deku Nuts (5)': (" some nuts.", 'item'), - 'Deku Nuts (10)': (" lots-o-nuts.", 'item'), + 'Eyeball Frog': (" a perceiving polliwog", 'item'), + 'Eyedrops': (" a vision vial", 'item'), + 'Claim Check': (" a three day wait", 'item'), + 'Map': (" a dungeon atlas", 'item'), + 'Compass': (" a treasure tracker", 'item'), + 'BossKey': (" a master of unlocking", 'item'), + 'SmallKey': (" a tool for unlocking", 'item'), + 'useless': (" something worthless", 'item'), + 'Arrows (5)': (" danger darts", 'item'), + 'Arrows (10)': (" danger darts", 'item'), + 'Arrows (30)': (" danger darts", 'item'), + 'Bombs (5)': (" explosives", 'item'), + 'Bombs (10)': (" explosives", 'item'), + 'Bombs (20)': (" lots-o-explosives", 'item'), + 'Ice Trap': (" a gift from Ganon", 'item'), + 'Magic Bean': (" wizardly legumes", 'item'), + 'Bombchus (5)': (" mice bombs", 'item'), + 'Bombchus (10)': (" mice bombs", 'item'), + 'Bombchus (20)': (" mice bombs", 'item'), + 'Deku Nuts (5)': (" some nuts", 'item'), + 'Deku Nuts (10)': (" lots-o-nuts", 'item'), #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box '10 Big Poes': ("They say that 10 Big Poes leads&to", 'alwaysLocation'), 'Deku Theater Mask of Truth': ("They say that the Mask of Truth&yields", 'alwaysLocation'), From 1ef3816161ddc7d0a086b79356a6e45dbd18f996 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Tue, 3 Jul 2018 19:54:26 -0500 Subject: [PATCH 091/755] Fixed dungeon item messages being shop text if not keysanity. --- Messages.py | 2 +- Rom.py | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/Messages.py b/Messages.py index d87acdca7..d51d6afcd 100644 --- a/Messages.py +++ b/Messages.py @@ -427,7 +427,7 @@ def add_keysanity_messages(messages): add_message(messages, text, id, 0x23) # run all keysanity related patching to add messages for dungeon specific items -def message_patch_for_keysanity(rom, messages, shop_items): +def message_patch_for_dungeon_items(rom, messages, shop_items): move_shop_item_messages(messages, shop_items) add_keysanity_messages(messages) diff --git a/Rom.py b/Rom.py index 80e978e94..4cc6185de 100644 --- a/Rom.py +++ b/Rom.py @@ -1090,10 +1090,8 @@ def patch_rom(world, rom): rbl_bombchu.description_message = 0x80FE rbl_bombchu.purchase_message = 0x80FF - # keysanity messages - if world.keysanity: - message_patch_for_keysanity(rom, messages, shop_items) - + # give dungeon items the correct messages + message_patch_for_dungeon_items(rom, messages, shop_items) repack_messages(rom, messages) write_shop_items(rom, shop_items) From 7308b4e73ef8eb6e7c01418d289a4a8ad24d5365 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Tue, 3 Jul 2018 21:39:27 -0400 Subject: [PATCH 092/755] Fixed missing indent --- Gui.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gui.py b/Gui.py index 80d4c5939..3879527f0 100644 --- a/Gui.py +++ b/Gui.py @@ -441,7 +441,7 @@ def RomSelect(): def generateRom(): - settings = guivars_to_settings(guivars) + settings = guivars_to_settings(guivars) try: if settings.count is not None: From beea29948d8192cbe7e44a81cd10d0b6c1f727d2 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Wed, 4 Jul 2018 07:52:10 -0500 Subject: [PATCH 093/755] Added hint for weird egg (its bad pls change it) --- Gui.py | 2 +- HintList.py | 1 + Hints.py | 2 ++ 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Gui.py b/Gui.py index 80d4c5939..3879527f0 100644 --- a/Gui.py +++ b/Gui.py @@ -441,7 +441,7 @@ def RomSelect(): def generateRom(): - settings = guivars_to_settings(guivars) + settings = guivars_to_settings(guivars) try: if settings.count is not None: diff --git a/HintList.py b/HintList.py index d9a189d15..6a18e1a42 100644 --- a/HintList.py +++ b/HintList.py @@ -102,6 +102,7 @@ def getHintGroup(string, world): 'Kokiri Sword': (" a butter knife", 'item'), 'Biggoron Sword': (" a shield disabler", 'item'), 'Pocket Egg': (" a cucco container", 'item'), + 'Weird Egg': (" an unsigned egg", 'item'), 'Pocket Cucco': (" a little clucker", 'item'), 'Cojiro': (" a cerulean capon", 'item'), 'Odd Mushroom': (" a powder ingredient", 'item'), diff --git a/Hints.py b/Hints.py index 0801f4a49..cbe5cc13d 100644 --- a/Hints.py +++ b/Hints.py @@ -217,6 +217,8 @@ def buildGossipHints(world, messages): # add good item hints # only choose location if it is new and a good item + if world.shuffle_weird_egg: + gooditems.append('Weird Egg') gooditemlocations = [locationWorld for locationWorld in world.get_locations() if not locationWorld.name in checkedLocations and \ locationWorld.item.name in gooditems] From 0c3154fad9712bdefe0e1666e03c890a280d9f4f Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Wed, 4 Jul 2018 09:03:03 -0500 Subject: [PATCH 094/755] Added bombchu logic as an options. --- BaseClasses.py | 5 ++++- Gui.py | 3 ++- Rom.py | 54 +++++++++++++++++++++++++++++++------------------- Rules.py | 6 +++--- Settings.py | 8 ++++++++ 5 files changed, 51 insertions(+), 25 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 41e0aeed5..f8d47f8a5 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -311,7 +311,10 @@ def is_adult(self): return self.has('Master Sword') def has_bombchus(self): - return any(pritem.startswith('Bombchus') for pritem in self.prog_items) or (self.has('Progressive Wallet') and self.can_reach('Haunted Wasteland')) + return (self.world.bombchus_in_logic and \ + (any(pritem.startswith('Bombchus') for pritem in self.prog_items) \ + or (self.has('Progressive Wallet') and self.can_reach('Haunted Wasteland')))) \ + or (not self.world.bombchus_in_logic and self.has('Bomb Bag')) def has_explosives(self): return self.has('Bomb Bag') or self.has_bombchus() diff --git a/Gui.py b/Gui.py index 3879527f0..0eb60eb12 100644 --- a/Gui.py +++ b/Gui.py @@ -133,8 +133,9 @@ def MakeRadioList(parent, data): "open_door_of_time": { "text": "Open Door of Time", "group": "logic", "default": "unchecked" }, "unlocked_ganondorf": { "text": "Remove Ganon's Boss Door Lock", "group": "logic", "default": "unchecked" }, "keysanity": { "text": "Keysanity", "group": "logic", "default": "unchecked" }, - "beatableonly": { "text": "Only ensure seed is beatable", "group": "logic", "default": "unchecked" }, + "bombchus_in_logic": { "text": "Bombchus are considered in logic", "group": "logic", "default": "checked" }, "shuffle_weird_egg": { "text": "Shuffle Weird Egg", "group": "logic", "default": "unchecked" }, + "beatableonly": { "text": "Only ensure seed is beatable", "group": "logic", "default": "unchecked" }, "no_escape_sequence": { "text": "Skip Tower Collapse Escape Sequence", "group": "convenience", "default": "unchecked" }, "no_guard_stealth": { "text": "Skip Interior Castle Guard Stealth Sequence", "group": "convenience", "default": "unchecked" }, diff --git a/Rom.py b/Rom.py index edc5e7e5c..4a38074fe 100644 --- a/Rom.py +++ b/Rom.py @@ -218,17 +218,30 @@ def patch_rom(world, rom): # Remove locked door to Boss Key Chest in Fire Temple rom.write_byte(0x22D82B7, 0x3F) - # Change Bombchu Shop check to bombchus - rom.write_bytes(0xC6CED8, [0x80, 0x8A, 0x00, 0x7C, 0x24, 0x0B, 0x00, 0x09, 0x11, 0x4B, 0x00, 0x05]) - # Change Bombchu Shop to never sell out - rom.write_bytes(0xC019C0, [0x10, 0x00, 0x00, 0x30]) + if world.bombchus_in_logic: + # Change Bombchu Shop check to bombchus + rom.write_bytes(0xC6CED8, [0x80, 0x8A, 0x00, 0x7C, 0x24, 0x0B, 0x00, 0x09, 0x11, 0x4B, 0x00, 0x05]) + # Change Bombchu Shop to never sell out + rom.write_bytes(0xC019C0, [0x10, 0x00, 0x00, 0x30]) + + # Change Bowling Alley check to bombchus (Part 1) + rom.write_bytes(0x00E2D714, [0x81, 0xEF, 0xA6, 0x4C]) + rom.write_bytes(0x00E2D720, [0x24, 0x18, 0x00, 0x09, 0x11, 0xF8, 0x00, 0x06]) + + # Change Bowling Alley check to bombchus (Part 2) + rom.write_bytes(0x00E2D890, [0x81, 0x6B, 0xA6, 0x4C, 0x24, 0x0C, 0x00, 0x09, 0x51, 0x6C, 0x00, 0x0A]) + else: + # Change Bombchu Shop check to Bomb Bag + rom.write_bytes(0xC6CEDA, [0x00, 0xA2]) + rom.write_byte(0xC6CEDF, 0x18) - # Change Bowling Alley check to bombchus (Part 1) - rom.write_bytes(0x00E2D714, [0x81, 0xEF, 0xA6, 0x4C]) - rom.write_bytes(0x00E2D720, [0x24, 0x18, 0x00, 0x09, 0x11, 0xF8, 0x00, 0x06]) + # Change Bowling Alley check to Bomb Bag (Part 1) + rom.write_bytes(0x00E2D716, [0xA6, 0x72]) + rom.write_byte(0x00E2D723, 0x18) - # Change Bowling Alley check to bombchus (Part 2) - rom.write_bytes(0x00E2D890, [0x81, 0x6B, 0xA6, 0x4C, 0x24, 0x0C, 0x00, 0x09, 0x51, 0x6C, 0x00, 0x0A]) + # Change Bowling Alley check to Bomb Bag (Part 2) + rom.write_bytes(0x00E2D892, [0xA6, 0x72]) + rom.write_byte(0x00E2D897, 0x18) # Change Bazaar check to Bomb Bag (Child?) rom.write_bytes(0x00C0082A, [0x00, 0x18]) @@ -1204,17 +1217,18 @@ def write_byte_to_save(offset, value): # actually write the save table to rom rom.write_bytes(0x3481800, initial_save_table) - # add a cheaper bombchu pack to the bombchu shop - # describe - add_message(messages, '\x08\x05\x41Bombchu (5 pieces) 60 Rupees\x01\x05\x40This looks like a toy mouse, but\x01it\'s actually a self-propelled time\x01bomb!\x09\x0A', 0x80FE, 0x03) - # purchase - add_message(messages, '\x08Bombchu 5 Pieces 60 Rupees\x01\x01\x1B\x05\x42Buy\x01Don\'t buy\x05\x40\x09', 0x80FF, 0x03) - rbl_bombchu = shop_items[0x0018] - rbl_bombchu.price = 60 - rbl_bombchu.pieces = 5 - rbl_bombchu.get_item_id = 0x006A - rbl_bombchu.description_message = 0x80FE - rbl_bombchu.purchase_message = 0x80FF + if world.bombchus_in_logic: + # add a cheaper bombchu pack to the bombchu shop + # describe + add_message(messages, '\x08\x05\x41Bombchu (5 pieces) 60 Rupees\x01\x05\x40This looks like a toy mouse, but\x01it\'s actually a self-propelled time\x01bomb!\x09\x0A', 0x80FE, 0x03) + # purchase + add_message(messages, '\x08Bombchu 5 Pieces 60 Rupees\x01\x01\x1B\x05\x42Buy\x01Don\'t buy\x05\x40\x09', 0x80FF, 0x03) + rbl_bombchu = shop_items[0x0018] + rbl_bombchu.price = 60 + rbl_bombchu.pieces = 5 + rbl_bombchu.get_item_id = 0x006A + rbl_bombchu.description_message = 0x80FE + rbl_bombchu.purchase_message = 0x80FF # keysanity messages if world.keysanity: diff --git a/Rules.py b/Rules.py index 90b88bf23..55461d8dd 100644 --- a/Rules.py +++ b/Rules.py @@ -123,8 +123,8 @@ def global_rules(world): set_rule(world.get_entrance('Ganons Castle Grounds'), lambda state: state.is_adult()) set_rule(world.get_entrance('Ganons Castle Fairy'), lambda state: state.has('Progressive Strength Upgrade', 3)) set_rule(world.get_location('Ganons Castle Fairy Reward'), lambda state: state.has('Zeldas Lullaby')) - set_rule(world.get_location('Bombchu Bowling Bomb Bag'), lambda state: state.has_explosives()) - set_rule(world.get_location('Bombchu Bowling Piece of Heart'), lambda state: state.has_explosives()) + set_rule(world.get_location('Bombchu Bowling Bomb Bag'), lambda state: state.has_bombchus()) + set_rule(world.get_location('Bombchu Bowling Piece of Heart'), lambda state: state.has_bombchus()) set_rule(world.get_location('Adult Shooting Gallery'), lambda state: state.has('Bow') and state.is_adult()) set_rule(world.get_location('10 Big Poes'), lambda state: (not world.logic_no_big_poes) and (state.has('Bow') and state.has('Epona') and state.has_bottle() and state.is_adult() and state.guarantee_hint())) set_rule(world.get_location('Treasure Chest Game'), lambda state: state.has('Lens of Truth') and state.has('Magic Meter')) @@ -304,7 +304,7 @@ def global_rules(world): set_rule(world.get_location('Spirit Temple NE Main Room Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.has('Zeldas Lullaby') and state.has('Progressive Hookshot')) set_rule(world.get_location('Mirror Shield Chest'), lambda state: state.has('Small Key (Spirit Temple)', 4) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.has_explosives()) set_rule(world.get_location('Silver Gauntlets Chest'), lambda state: (state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Hookshot', 2) and state.has_explosives()) or state.has('Small Key (Spirit Temple)', 5)) - set_rule(world.get_location('Spirit Temple Near Four Armos Chest'), lambda state: state.has('Mirror Shield') and state.has_bombchus()) + set_rule(world.get_location('Spirit Temple Near Four Armos Chest'), lambda state: state.has('Mirror Shield') and state.has_explosives()) set_rule(world.get_location('Spirit Temple Hallway Left Invisible Chest'), lambda state: state.can_see_with_lens() and state.has_explosives()) set_rule(world.get_location('Spirit Temple Hallway Right Invisible Chest'), lambda state: state.can_see_with_lens() and state.has_explosives()) set_rule(world.get_location('Spirit Temple Boss Key Chest'), lambda state: state.has('Zeldas Lullaby') and state.has('Bow') and state.has('Progressive Hookshot') and state.can_blast_or_smash()) diff --git a/Settings.py b/Settings.py index 851aa655e..be8c773e1 100644 --- a/Settings.py +++ b/Settings.py @@ -187,6 +187,14 @@ def __init__(self, settings_dict): The Door of Time is open from the beginning of the game. ''', 'action': 'store_true'}), + Setting_Info('bombchus_in_logic', bool, 1, True, { + 'help': '''\ + Bombchus will be considered in logic. This has a few effects: + -Back alley shop will open once you've found Bombchus + -It will sell an affordable pack (5 for 60), and never sell out + -Bombchu Bowling will open once you've found Bombchus + ''', + 'action': 'store_true'}), Setting_Info('gerudo_fortress', str, 2, True, { 'default': 'normal', 'const': 'normal', From b76513c65199b4d6e8ca8b2b8f0261154ddd803c Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Thu, 5 Jul 2018 04:05:20 -0400 Subject: [PATCH 095/755] Setting_Info includes gui parameters. Added int type handling --- Settings.py | 752 +++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 595 insertions(+), 157 deletions(-) diff --git a/Settings.py b/Settings.py index 88325a190..02e3f99f5 100644 --- a/Settings.py +++ b/Settings.py @@ -45,12 +45,13 @@ def text_to_bit_string(text): # holds the info for a single setting class Setting_Info(): - def __init__(self, name, type, bitwidth=0, shared=False, args_params={}): + def __init__(self, name, type, bitwidth=0, shared=False, args_params={}, gui_params=None): self.name = name # name of the setting, used as a key to retrieve the setting's value everywhere self.type = type # type of the setting's value, used to properly convert types in GUI code self.bitwidth = bitwidth # number of bits needed to store the setting, used in converting settings to a string self.shared = shared # whether or not the setting is one that should be shared, used in converting settings to a string self.args_params = args_params # parameters that should be pased to the command line argument parser's add_argument() function + self.gui_params = gui_params # parameters that the gui uses to build the widget components # holds the particular choices for a run's settings class Settings(): @@ -79,6 +80,13 @@ def get_settings_string(self): # https://stackoverflow.com/questions/10321978/integer-to-bitfield-as-a-list i_bits = [1 if digit=='1' else 0 for digit in bin(index)[2:]] i_bits.reverse() + if setting.type == int: + value = value - ('min' in setting.gui_params and setting.gui_params['min'] or 0) + value = int(value / ('step' in setting.gui_params and setting.gui_params['step'] or 1)) + value = min(value, ('max' in setting.gui_params and setting.gui_params['max'] or value)) + # https://stackoverflow.com/questions/10321978/integer-to-bitfield-as-a-list + i_bits = [1 if digit=='1' else 0 for digit in bin(value)[2:]] + i_bits.reverse() # pad it i_bits += [0] * ( setting.bitwidth - len(i_bits) ) bits += i_bits @@ -98,6 +106,12 @@ def update_with_settings_string(self, text): for b in range(setting.bitwidth): index |= cur_bits[b] << b value = setting.args_params['choices'][index] + if setting.type == int: + value = 0 + for b in range(setting.bitwidth): + value |= cur_bits[b] << b + value = value * ('step' in setting.gui_params and setting.gui_params['step'] or 1) + value = value + ('min' in setting.gui_params and setting.gui_params['min'] or 0) self.__dict__[setting.name] = value self.settings_string = self.get_settings_string() @@ -155,47 +169,68 @@ def __init__(self, settings_dict): time). ''', 'type': int}), - Setting_Info('create_spoiler', bool, 1, True, { + Setting_Info('create_spoiler', bool, 1, True, + { 'help': 'Output a Spoiler File', - 'action': 'store_true'}), - Setting_Info('suppress_rom', bool, 0, False, { + 'action': 'store_true' + }, + { + 'text': 'Create Spoiler Log', + 'group': 'rom_tab', + 'widget': 'Checkbutton', + 'default': 'checked' + }), + Setting_Info('suppress_rom', bool, 0, False, + { 'help': 'Do not create an output rom file.', - 'action': 'store_true'}), - Setting_Info('compress_rom', bool, 0, False, { + 'action': 'store_true' + }, + { + 'text': 'Do not create patched Rom', + 'group': 'rom_tab', + 'widget': 'Checkbutton', + 'default': 'unchecked' + }), + Setting_Info('compress_rom', bool, 0, False, + { 'help': 'Create a compressed version of the output rom file.', - 'action': 'store_true'}), - Setting_Info('bridge', str, 2, True, { - 'default': 'medallions', - 'const': 'medallions', - 'nargs': '?', - 'choices': ['medallions', 'vanilla', 'dungeons', 'open'], - 'help': '''\ - Select requirement to spawn the Rainbow Bridge to reach Ganon's Castle. (default: %(default)s) - Medallions: Collect all six medallions to create the bridge. - Vanilla: Collect only the Shadow and Spirit Medallions and then view the Light Arrow cutscene. - All Dungeons: Collect all spiritual stones and all medallions to create the bridge. - Open: The bridge will spawn without an item requirement. - '''}), - Setting_Info('open_forest', bool, 1, True, { + 'action': 'store_true' + }, + { + 'text': 'Compress patched Rom', + 'group': 'rom_tab', + 'widget': 'Checkbutton', + 'default': 'unchecked' + }), + Setting_Info('open_forest', bool, 1, True, + { 'help': '''\ Mido no longer blocks the path to the Deku Tree and the Kokiri boy no longer blocks the path out of the forest. ''', - 'action': 'store_true'}), - Setting_Info('open_door_of_time', bool, 1, True, { + 'action': 'store_true' + }, + { + 'text': 'Open Forest', + 'group': 'open', + 'widget': 'Checkbutton', + 'default': 'unchecked' + }), + Setting_Info('open_door_of_time', bool, 1, True, + { 'help': '''\ The Door of Time is open from the beginning of the game. ''', - 'action': 'store_true'}), - Setting_Info('bombchus_in_logic', bool, 1, True, { - 'help': '''\ - Bombchus will be considered in logic. This has a few effects: - -Back alley shop will open once you've found Bombchus - -It will sell an affordable pack (5 for 60), and never sell out - -Bombchu Bowling will open once you've found Bombchus - ''', - 'action': 'store_true'}), - Setting_Info('gerudo_fortress', str, 2, True, { + 'action': 'store_true' + }, + { + 'text': 'Open Door of Time', + 'group': 'open', + 'widget': 'Checkbutton', + 'default': 'unchecked' + }), + Setting_Info('gerudo_fortress', str, 2, True, + { 'default': 'normal', 'const': 'normal', 'nargs': '?', @@ -205,8 +240,63 @@ def __init__(self, settings_dict): Normal: Free all four carpenters to get the Gerudo Card. Fast: Free only the carpenter closest to Link's prison to get the Gerudo Card. Open: Start with the Gerudo Card and all it's benefits. - '''}), - Setting_Info('trials', str, 3, True, { + ''' + }, + { + 'text': 'Gerudo Fortress', + 'group': 'open', + 'widget': 'Combobox', + 'default': 'Default Behavior', + 'options': { + 'Default Behavior': 'normal', + 'Rescue one carpenter': 'fast', + 'Start with Gerudo Card': 'open', + }, + }), + Setting_Info('bridge', str, 2, True, + { + 'default': 'medallions', + 'const': 'medallions', + 'nargs': '?', + 'choices': ['medallions', 'vanilla', 'dungeons', 'open'], + 'help': '''\ + Select requirement to spawn the Rainbow Bridge to reach Ganon's Castle. (default: %(default)s) + Medallions: Collect all six medallions to create the bridge. + Vanilla: Collect only the Shadow and Spirit Medallions and then view the Light Arrow cutscene. + All Dungeons: Collect all spiritual stones and all medallions to create the bridge. + Open: The bridge will spawn without an item requirement. + ''' + }, + { + 'text': 'Rainbow Bridge Requirement', + 'group': 'open', + 'widget': 'Combobox', + 'default': 'All medallions', + 'options': { + 'All dungeons': 'dungeons', + 'All medallions': 'medallions', + 'Vanilla requirements': 'vanilla', + 'Always open': 'open', + }, + }), + Setting_Info('bombchus_in_logic', bool, 1, True, + { + 'help': '''\ + Bombchus will be considered in logic. This has a few effects: + -Back alley shop will open once you've found Bombchus + -It will sell an affordable pack (5 for 60), and never sell out + -Bombchu Bowling will open once you've found Bombchus + ''', + 'action': 'store_true' + }, + { + 'text': 'Bombchus are considered in logic', + 'group': 'logic', + 'widget': 'Checkbutton', + 'default': 'checked' + }), + Setting_Info('trials', int, 3, True, + { 'default': '6', 'const': '6', 'nargs': '?', @@ -214,150 +304,345 @@ def __init__(self, settings_dict): 'help': '''\ Select how many trials must be cleared to enter Ganon's Tower. The trials you must complete will be selected randomly. - '''}), - Setting_Info('no_escape_sequence', bool, 1, True, { + ''' + }, + { + 'text': 'Number of Ganon\'s Trials', + 'group': 'open', + 'widget': 'Scale', + 'default': '6', + 'min': 0, + 'max': 6, + }), + Setting_Info('no_escape_sequence', bool, 1, True, + { 'help': '''\ The tower collapse escape sequence between Ganondorf and Ganon will be skipped. ''', - 'action': 'store_true'}), - Setting_Info('no_guard_stealth', bool, 1, True, { + 'action': 'store_true' + }, + { + 'text': 'Skip Tower Collapse Escape Sequence', + 'group': 'convenience', + 'widget': 'Checkbutton', + 'default': 'unchecked' + }), + Setting_Info('no_guard_stealth', bool, 1, True, + { 'help': '''\ The crawlspace into Hyrule Castle will take you straight to Zelda. ''', - 'action': 'store_true'}), - Setting_Info('no_epona_race', bool, 1, True, { + 'action': 'store_true' + }, + { + 'text': 'Skip Interior Castle Guard Stealth Sequence', + 'group': 'convenience', + 'widget': 'Checkbutton', + 'default': 'unchecked' + }), + Setting_Info('no_epona_race', bool, 1, True, + { 'help': '''\ Having Epona's song will allow you to summon epona without racing Ingo. ''', - 'action': 'store_true'}), - Setting_Info('only_one_big_poe', bool, 1, True, { + 'action': 'store_true' + }, + { + 'text': 'Skip Epona Race', + 'group': 'convenience', + 'widget': 'Checkbutton', + 'default': 'unchecked' + }), + Setting_Info('only_one_big_poe', bool, 1, True, + { 'help': '''\ The Poe buyer will give a reward for turning in a single Big Poe. ''', - 'action': 'store_true'}), - Setting_Info('unlocked_ganondorf', bool, 1, True, { + 'action': 'store_true' + }, + { + 'text': 'Big Poe Reward only requires one Big Poe', + 'group': 'convenience', + 'widget': 'Checkbutton', + 'default': 'unchecked' + }), + Setting_Info('unlocked_ganondorf', bool, 1, True, + { 'help': '''\ The Boss Key door in Ganon's Tower will start unlocked. ''', - 'action': 'store_true'}), - Setting_Info('keysanity', bool, 1, True, { + 'action': 'store_true' + }, + { + 'text': 'Remove Ganon\'s Boss Door Lock', + 'group': 'open', + 'widget': 'Checkbutton', + 'default': 'unchecked' + }), + Setting_Info('keysanity', bool, 1, True, + { 'help': '''\ Small Keys, Boss Keys, Maps, and Compasses will be shuffled into the pool at large, instead of just being restricted to their own dungeons. ''', - 'action': 'store_true'}), - Setting_Info('nodungeonitems', bool, 1, True, { + 'action': 'store_true' + }, + { + 'text': 'Keysanity', + 'group': 'logic', + 'widget': 'Checkbutton', + 'default': 'unchecked' + }), + Setting_Info('nodungeonitems', bool, 1, True, + { 'help': '''\ Remove Maps and Compasses from Itempool, replacing them by empty slots. ''', - 'action': 'store_true'}), - Setting_Info('beatableonly', bool, 1, True, { - 'help': '''\ - Only check if the game is beatable with placement. Do not - ensure all locations are reachable. This only has an effect - on the restrictive algorithm currently. + 'action': 'store_true' + }, + { + 'text': 'Remove Maps and Compasses', + 'group': 'other', + 'widget': 'Checkbutton', + 'default': 'unchecked' + }), + Setting_Info('all_reachable', bool, 1, True, + { + 'help': '''\ + When disabled, only check if the game is beatable with + placement. Do not ensure all locations are reachable. + This only has an effect on the restrictive algorithm + currently. ''', - 'action': 'store_true'}), - Setting_Info('shuffle_weird_egg', bool, 1, True, { + 'action': 'store_true' + }, + { + 'text': 'All Locations Reachable', + 'group': 'logic', + 'widget': 'Checkbutton', + 'default': 'checked' + }), + Setting_Info('shuffle_weird_egg', bool, 1, True, + { 'help': '''\ Shuffles the Weird Egg item from Malon into the pool. This means that you need to find the egg before going Zelda. ''', - 'action': 'store_true'}), - Setting_Info('hints', str, 2, True, { - 'default': 'none', - 'const': 'always', - 'nargs': '?', - 'choices': ['none', 'mask', 'agony', 'always'], - 'help': '''\ - Choose how Gossip Stones behave - none: Default behavior - mask: Have useful hints that are read with the Mask of Truth (untested) - agony: Have useful hints that are read with Stone of Agony - always: Have useful hints which can always be read - '''}), - Setting_Info('logic_skulltulas', str, 3, True, { + 'action': 'store_true' + }, + { + 'text': 'Shuffle Weird Egg', + 'group': 'logic', + 'widget': 'Checkbutton', + 'default': 'unchecked' + }), + Setting_Info('logic_skulltulas', int, 3, True, + { 'default': '50', 'const': 'always', 'nargs': '?', - 'choices': ['none', '10', '20', '30', '40', '50'], + 'choices': ['0', '10', '20', '30', '40', '50'], 'help': '''\ Choose the maximum number of gold skulltula tokens you will be expected to collect. - '''}), - Setting_Info('logic_no_big_poes', bool, 1, True, { + ''' + }, + { + 'text': 'Maximum expected skulltula tokens', + 'group': 'rewards', + 'widget': 'Scale', + 'default': '50', + 'min': 0, + 'max': 50, + 'step': 10, + + }), + Setting_Info('logic_no_big_poes', bool, 1, True, + { 'help': '''\ You will not be expected to collect 10 big poes. ''', - 'action': 'store_true'}), - Setting_Info('logic_no_child_fishing', bool, 1, True, { + 'action': 'store_true' + }, + { + 'text': 'No Big Poes', + 'group': 'rewards', + 'widget': 'Checkbutton', + 'default': 'unchecked' + }), + Setting_Info('logic_no_child_fishing', bool, 1, True, + { 'help': '''\ You will not be expected to obtain the child fishing reward. ''', - 'action': 'store_true'}), - Setting_Info('logic_no_adult_fishing', bool, 1, True, { + 'action': 'store_true' + }, + { + 'text': 'No Child Fishing', + 'group': 'rewards', + 'widget': 'Checkbutton', + 'default': 'unchecked' + }), + Setting_Info('logic_no_adult_fishing', bool, 1, True, + { 'help': '''\ You will not be expected to obtain the adult fishing reward. ''', - 'action': 'store_true'}), - Setting_Info('logic_no_trade_skull_mask', bool, 1, True, { + 'action': 'store_true' + }, + { + 'text': 'No Adult Fishing', + 'group': 'rewards', + 'widget': 'Checkbutton', + 'default': 'unchecked' + }), + Setting_Info('logic_no_trade_skull_mask', bool, 1, True, + { 'help': '''\ You will not be expected to show the skull mask at the forest stage. ''', - 'action': 'store_true'}), - Setting_Info('logic_no_trade_mask_of_truth', bool, 1, True, { + 'action': 'store_true' + }, + { + 'text': 'No Skull Mask reward', + 'group': 'rewards', + 'widget': 'Checkbutton', + 'default': 'unchecked' + }), + Setting_Info('logic_no_trade_mask_of_truth', bool, 1, True, + { 'help': '''\ You will not be expected to show the mask of truth at the forest stage. ''', - 'action': 'store_true'}), - Setting_Info('logic_no_trade_biggoron', bool, 1, True, { + 'action': 'store_true' + }, + { + 'text': 'No Mask of Truth reward', + 'group': 'rewards', + 'widget': 'Checkbutton', + 'default': 'unchecked' + }), + Setting_Info('logic_no_trade_biggoron', bool, 1, True, + { 'help': '''\ You will not be expected to trade for biggoron's reward. ''', - 'action': 'store_true'}), - Setting_Info('logic_no_1500_archery', bool, 1, True, { + 'action': 'store_true' + }, + { + 'text': 'No Biggoron reward', + 'group': 'rewards', + 'widget': 'Checkbutton', + 'default': 'unchecked' + }), + Setting_Info('logic_no_1500_archery', bool, 1, True, + { 'help': '''\ You will not be expected to win the 1500 point horseback archery reward. ''', - 'action': 'store_true'}), - Setting_Info('logic_no_memory_game', bool, 1, True, { + 'action': 'store_true' + }, + { + 'text': 'No 1500 Horseback Archery', + 'group': 'rewards', + 'widget': 'Checkbutton', + 'default': 'unchecked' + }), + Setting_Info('logic_no_memory_game', bool, 1, True, + { 'help': '''\ You will not be expected to play the memory game in lost woods with the skull kids. ''', - 'action': 'store_true'}), - Setting_Info('logic_no_second_dampe_race', bool, 1, True, { + 'action': 'store_true' + }, + { + 'text': 'No Lost Woods Memory Game', + 'group': 'rewards', + 'widget': 'Checkbutton', + 'default': 'unchecked' + }), + Setting_Info('logic_no_second_dampe_race', bool, 1, True, + { 'help': '''\ You will not be expected to race Dampe a second time. ''', - 'action': 'store_true'}), - Setting_Info('logic_man_on_roof', bool, 1, True, { + 'action': 'store_true' + }, + { + 'text': 'No Racing Dampe a second time', + 'group': 'rewards', + 'widget': 'Checkbutton', + 'default': 'unchecked' + }), + Setting_Info('logic_man_on_roof', bool, 1, True, + { 'help': '''\ The man on the roof will not require the hookshot in logic. ''', - 'action': 'store_true'}), - Setting_Info('logic_child_deadhand', bool, 1, True, { + 'action': 'store_true' + }, + { + 'text': 'Man on Roof without Hookshot', + 'group': 'tricks', + 'widget': 'Checkbutton', + 'default': 'unchecked' + }), + Setting_Info('logic_child_deadhand', bool, 1, True, + { 'help': '''\ Deadhand in the Bottom of the Well will not require the Kokiri sword in logic. ''', - 'action': 'store_true'}), - Setting_Info('logic_dc_jump', bool, 1, True, { + 'action': 'store_true' + }, + { + 'text': 'Child Deadhand without Kokiri Sword', + 'group': 'tricks', + 'widget': 'Checkbutton', + 'default': 'unchecked' + }), + Setting_Info('logic_dc_jump', bool, 1, True, + { 'help': '''\ Jumping towards the bomb bag chest in Dodongo's Cavern as an adult will not require hover boots in logic. ''', - 'action': 'store_true'}), - Setting_Info('logic_impa_house', bool, 1, True, { + 'action': 'store_true' + }, + { + 'text': 'Dodongo\'s Cavern spike trap room jump without Hover Boots', + 'group': 'tricks', + 'widget': 'Checkbutton', + 'default': 'unchecked' + }), + Setting_Info('logic_impa_house', bool, 1, True, + { 'help': '''\ Getting into the back of Impa's house (cow cage) as an adult will not require hookshot in logic. ''', - 'action': 'store_true'}), - Setting_Info('logic_windmill_hp', bool, 1, True, { + 'action': 'store_true' + }, + { + 'text': 'Impa House (cow cage) as adult with nothing', + 'group': 'tricks', + 'widget': 'Checkbutton', + 'default': 'unchecked' + }), + Setting_Info('logic_windmill_hp', bool, 1, True, + { 'help': '''\ Getting the heart piece in the windmill as an adult will require nothing in logic. ''', - 'action': 'store_true'}), - Setting_Info('logic_lens', str, 2, True, { + 'action': 'store_true' + }, + { + 'text': 'Windmill HP as adult with nothing', + 'group': 'tricks', + 'widget': 'Checkbutton', + 'default': 'unchecked' + }), + Setting_Info('logic_lens', str, 2, True, + { 'default': 'all', 'const': 'always', 'nargs': '?', @@ -367,122 +652,275 @@ def __init__(self, settings_dict): all: All lens spots expect the lens (except those that did not in the original game) chest-wasteland: Only wasteland and chest minigame expect the lens chest: Only the chest minigame expects the lens - '''}), - Setting_Info('text_shuffle', str, 2, True, { - 'default': 'none', - 'const': 'none', - 'nargs': '?', - 'choices': ['none', 'except_hints', 'complete'], - 'help': '''\ - Choose how to shuffle the game's messages. - none: Default behavior - except_hints: All text except Gossip Stone hints and Dungeon reward hints is shuffled. - complete: All text is shuffled - '''}), - Setting_Info('ocarina_songs', bool, 1, True, { + ''' + }, + { + 'text': 'Lens of Truth', + 'group': 'tricks', + 'widget': 'Combobox', + 'default': 'Required everywhere', + 'options': { + 'Required everywhere': 'all', + 'Wasteland and Chest Minigame': 'chest-wasteland', + 'Only Chest Minigame': 'chest', + }, + }), + Setting_Info('ocarina_songs', bool, 1, True, + { 'help': '''\ Randomizes the notes need to play for each ocarina song. ''', - 'action': 'store_true'}), - Setting_Info('correct_chest_sizes', bool, 1, True, { + 'action': 'store_true' + }, + { + 'text': 'Randomize ocarina song notes', + 'group': 'other', + 'widget': 'Checkbutton', + 'default': 'unchecked' + }), + Setting_Info('correct_chest_sizes', bool, 1, True, + { 'help': '''\ Updates the chest sizes to match their contents. Small Chest = Useless Item Big Chest = Progression Item Boss Chest = Dungeon Item ''', - 'action': 'store_true'}), + 'action': 'store_true' + }, + { + 'text': 'Chests size matches contents', + 'group': 'other', + 'widget': 'Checkbutton', + 'default': 'unchecked' + }), + Setting_Info('hints', str, 2, True, + { + 'default': 'none', + 'const': 'always', + 'nargs': '?', + 'choices': ['none', 'mask', 'agony', 'always'], + 'help': '''\ + Choose how Gossip Stones behave + none: Default behavior + mask: Have useful hints that are read with the Mask of Truth (untested) + agony: Have useful hints that are read with Stone of Agony + always: Have useful hints which can always be read + ''' + }, + { + 'text': 'Gossip Stones', + 'group': 'other', + 'widget': 'Combobox', + 'default': 'Hints; Need Stone of Agony', + 'options': { + 'No Hints': 'none', + 'Hints; Need Mask of Truth': 'mask', + 'Hints; Need Stone of Agony': 'agony', + 'Hints; Need Nothing': 'always', + }, + }), + Setting_Info('text_shuffle', str, 2, True, + { + 'default': 'none', + 'const': 'none', + 'nargs': '?', + 'choices': ['none', 'except_hints', 'complete'], + 'help': '''\ + Choose how to shuffle the game's messages. + none: Default behavior + except_hints: All text except Gossip Stone hints and Dungeon reward hints is shuffled. + complete: All text is shuffled + ''' + }, + { + 'text': 'Text Shuffle', + 'group': 'other', + 'widget': 'Combobox', + 'default': 'No text shuffled', + 'options': { + 'No text shuffled': 'none', + 'Shuffled except Hints': 'except_hints', + 'All text shuffled': 'complete', + }, + }), - Setting_Info('kokiricolor', str, 0, False, { + Setting_Info('kokiricolor', str, 0, False, + { 'default': 'Kokiri Green', 'const': 'Kokiri Green', 'nargs': '?', 'choices': get_tunic_color_options(), 'help': '''\ Choose the color for Link's Kokiri Tunic. (default: %(default)s) - Color: Make the Kokiri Tunic this color. - Random: Choose a random color from this list of colors. - True Random: Choose a random color from any color the N64 can draw. - '''}), - Setting_Info('goroncolor', str, 0, False, { + Color: Make the Kokiri Tunic this color. + Random Choice: Choose a random color from this list of colors. + Comepletely Random: Choose a random color from any color the N64 can draw. + ''' + }, + { + 'text': 'Kokiri Tunic Color', + 'group': 'tuniccolor', + 'widget': 'Combobox', + 'default': 'Kokiri Green', + 'options': get_tunic_color_options(), + }), + Setting_Info('goroncolor', str, 0, False, + { 'default': 'Goron Red', 'const': 'Goron Red', 'nargs': '?', 'choices': get_tunic_color_options(), 'help': '''\ Choose the color for Link's Goron Tunic. (default: %(default)s) - Color: Make the Goron Tunic this color. - Random: Choose a random color from this list of colors. - True Random: Choose a random color from any color the N64 can draw. - '''}), - Setting_Info('zoracolor', str, 0, False, { + Color: Make the Goron Tunic this color. + Random Choice: Choose a random color from this list of colors. + Comepletely Random: Choose a random color from any color the N64 can draw. + ''' + }, + { + 'text': 'Goron Tunic Color', + 'group': 'tuniccolor', + 'widget': 'Combobox', + 'default': 'Goron Red', + 'options': get_tunic_color_options(), + }), + Setting_Info('zoracolor', str, 0, False, + { 'default': 'Zora Blue', 'const': 'Zora Blue', 'nargs': '?', 'choices': get_tunic_color_options(), 'help': '''\ Choose the color for Link's Zora Tunic. (default: %(default)s) - Color: Make the Zora Tunic this color. - Random: Choose a random color from this list of colors. - True Random: Choose a random color from any color the N64 can draw. - '''}), - Setting_Info('navicolordefault', str, 0, False, { + Color: Make the Zora Tunic this color. + Random Choice: Choose a random color from this list of colors. + Comepletely Random: Choose a random color from any color the N64 can draw. + ''' + }, + { + 'text': 'Zora Tunic Color', + 'group': 'tuniccolor', + 'widget': 'Combobox', + 'default': 'Zora Blue', + 'options': get_tunic_color_options(), + }), + Setting_Info('navicolordefault', str, 0, False, + { 'default': 'White', 'const': 'White', 'nargs': '?', 'choices': get_navi_color_options(), 'help': '''\ Choose the color for Navi when she is idle. (default: %(default)s) - Color: Make the Navi this color. - Random: Choose a random color from this list of colors. - True Random: Choose a random color from any color the N64 can draw. - '''}), - Setting_Info('navicolorenemy', str, 0, False, { + Color: Make the Navi this color. + Random Chocie: Choose a random color from this list of colors. + Completely Random: Choose a random color from any color the N64 can draw. + ''' + }, + { + 'text': 'Navi Idle', + 'group': 'navicolor', + 'widget': 'Combobox', + 'default': 'White', + 'options': get_navi_color_options(), + }), + Setting_Info('navicolorenemy', str, 0, False, + { 'default': 'Yellow', 'const': 'Yellow', 'nargs': '?', 'choices': get_navi_color_options(), 'help': '''\ Choose the color for Navi when she is targeting an enemy. (default: %(default)s) - Color: Make the Navi this color. - Random: Choose a random color from this list of colors. - True Random: Choose a random color from any color the N64 can draw. - '''}), - Setting_Info('navicolornpc', str, 0, False, { + Color: Make the Navi this color. + Random Chocie: Choose a random color from this list of colors. + Completely Random: Choose a random color from any color the N64 can draw. + ''' + }, + { + 'text': 'Navi Targeting Enemy', + 'group': 'navicolor', + 'widget': 'Combobox', + 'default': 'Yellow', + 'options': get_navi_color_options(), + }), + Setting_Info('navicolornpc', str, 0, False, + { 'default': 'Light Blue', 'const': 'Light Blue', 'nargs': '?', 'choices': get_navi_color_options(), 'help': '''\ Choose the color for Navi when she is targeting an NPC. (default: %(default)s) - Color: Make the Navi this color. - Random: Choose a random color from this list of colors. - True Random: Choose a random color from any color the N64 can draw. - '''}), - Setting_Info('navicolorprop', str, 0, False, { + Color: Make the Navi this color. + Random Chocie: Choose a random color from this list of colors. + Completely Random: Choose a random color from any color the N64 can draw. + ''' + }, + { + 'text': 'Navi Targeting NPC', + 'group': 'navicolor', + 'widget': 'Combobox', + 'default': 'Light Blue', + 'options': get_navi_color_options(), + }), + Setting_Info('navicolorprop', str, 0, False, + { 'default': 'Green', 'const': 'Green', 'nargs': '?', 'choices': get_navi_color_options(), 'help': '''\ Choose the color for Navi when she is targeting a prop. (default: %(default)s) - Color: Make the Navi this color. - Random: Choose a random color from this list of colors. - True Random: Choose a random color from any color the N64 can draw. - '''}), - Setting_Info('healthSFX', str, 0, False, { + Color: Make the Navi this color. + Random Choice: Choose a random color from this list of colors. + Completely Random: Choose a random color from any color the N64 can draw. + ''' + }, + { + 'text': 'Navi Targeting Prop', + 'group': 'navicolor', + 'widget': 'Combobox', + 'default': 'Green', + 'options': get_navi_color_options(), + }), + Setting_Info('healthSFX', str, 0, False, + { 'default': 'Default', 'const': 'Default', 'nargs': '?', 'choices': ['Default', 'Softer Beep', 'Rupee', 'Timer', 'Tamborine', 'Recovery Heart', 'Carrot Refill', 'Navi - Hey!', 'Zelda - Gasp', 'Cluck', 'Mweep!', 'Random', 'None'], 'help': '''\ Select the sound effect that loops at low health. (default: %(default)s) - Sound: Replace the sound effect with the chosen sound. - Random: Replace the sound effect with a random sound from this list. - None: Eliminate heart beeps. - '''}), + Sound: Replace the sound effect with the chosen sound. + Random Chocie: Replace the sound effect with a random sound from this list. + None: Eliminate heart beeps. + ''' + }, + { + 'text': 'Low Health SFX', + 'group': 'lowhp', + 'widget': 'Combobox', + 'default': 'Default', + 'options': [ + 'Random Choice', + 'Default', + 'Softer Beep', + 'Rupee', + 'Timer', + 'Tamborine', + 'Recovery Heart', + 'Carrot Refill', + 'Navi - Hey!', + 'Zelda - Gasp', + 'Cluck', + 'Mweep!', + 'None', + ] + }), ] # gets the randomizer settings, whether to open the gui, and the logger level from command line arguments From 0b873e03c8f882d68b15f8dd040cc5f184c40796 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Thu, 5 Jul 2018 04:08:20 -0400 Subject: [PATCH 096/755] dropdown text need not match value --- Gui.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/Gui.py b/Gui.py index 0eb60eb12..0db01354e 100644 --- a/Gui.py +++ b/Gui.py @@ -31,7 +31,12 @@ def settings_to_guivars(settings, guivars): if value is None: guivar.set( "" ) else: - guivar.set( value ) + if info.gui_params and 'options' in info.gui_params: + for gui_text,gui_value in info.gui_params['options'].items(): + if gui_value == value: + guivar.set( gui_text ) + else: + guivar.set( value ) # text field for a number... if info.type == int: if value is None: @@ -52,7 +57,10 @@ def guivars_to_settings(guivars): result[name] = bool(guivar.get()) # dropdown/radiobox if info.type == str: - result[name] = guivar.get() + if info.gui_params and 'options' in info.gui_params: + result[name] = info.gui_params['options'][guivar.get()] + else: + result[name] = guivar.get() # text field for a number... if info.type == int: result[name] = int( guivar.get() ) From e871b961a58f38ef3c60d2e3b79f3f9bc73b21a9 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Thu, 5 Jul 2018 04:12:04 -0400 Subject: [PATCH 097/755] Settings up new option group structure --- Gui.py | 305 +++++++++------------------------------------------------ 1 file changed, 47 insertions(+), 258 deletions(-) diff --git a/Gui.py b/Gui.py index 0db01354e..9c785fd2a 100644 --- a/Gui.py +++ b/Gui.py @@ -5,7 +5,7 @@ import random import os import shutil -from tkinter import Checkbutton, OptionMenu, Toplevel, LabelFrame, Radiobutton, PhotoImage, Tk, BOTH, LEFT, RIGHT, BOTTOM, TOP, StringVar, IntVar, Frame, Label, W, E, X, N, S, NW, Entry, Spinbox, Button, filedialog, messagebox, ttk +from tkinter import Scale, Checkbutton, OptionMenu, Toplevel, LabelFrame, Radiobutton, PhotoImage, Tk, BOTH, LEFT, RIGHT, BOTTOM, TOP, StringVar, IntVar, Frame, Label, W, E, X, N, S, NW, Entry, Spinbox, Button, filedialog, messagebox, ttk, HORIZONTAL from urllib.parse import urlparse from urllib.request import urlopen @@ -72,18 +72,26 @@ def guivars_to_settings(guivars): return Settings(result) def guiMain(settings=None): + frames = {} + mainWindow = Tk() mainWindow.wm_title("OoT Randomizer %s" % ESVersion) set_icon(mainWindow) notebook = ttk.Notebook(mainWindow) - randomizerWindow = ttk.Frame(notebook) - logicWindow = ttk.Frame(notebook) + frames['rom_tab'] = ttk.Frame(notebook) + frames['rules_tab'] = ttk.Frame(notebook) + frames['logic_tab'] = ttk.Frame(notebook) + frames['other_tab'] = ttk.Frame(notebook) + frames['aesthetic_tab'] = ttk.Frame(notebook) adjustWindow = ttk.Frame(notebook) customWindow = ttk.Frame(notebook) - notebook.add(randomizerWindow, text='Randomize') - notebook.add(logicWindow, text='Detailed Logic') + notebook.add(frames['rom_tab'], text='ROM Options') + notebook.add(frames['rules_tab'], text='Main Rules') + notebook.add(frames['logic_tab'], text='Detailed Logic') + notebook.add(frames['other_tab'], text='Other') + notebook.add(frames['aesthetic_tab'], text='Aesthetics') # Shared Controls @@ -128,270 +136,29 @@ def MakeRadioList(parent, data): # randomizer controls # ####################### - # data - ######## - - # checkboxes information - checkboxInfo = { - "create_spoiler": { "text": "Create Spoiler Log", "group": "output", "default": "checked" }, - "suppress_rom": { "text": "Do not create patched Rom", "group": "output", "default": "unchecked" }, - "compress_rom": { "text": "Compress patched Rom", "group": "output", "default": "unchecked" }, - - "open_forest": { "text": "Open Forest", "group": "logic", "default": "unchecked" }, - "open_door_of_time": { "text": "Open Door of Time", "group": "logic", "default": "unchecked" }, - "unlocked_ganondorf": { "text": "Remove Ganon's Boss Door Lock", "group": "logic", "default": "unchecked" }, - "keysanity": { "text": "Keysanity", "group": "logic", "default": "unchecked" }, - "bombchus_in_logic": { "text": "Bombchus are considered in logic", "group": "logic", "default": "checked" }, - "shuffle_weird_egg": { "text": "Shuffle Weird Egg", "group": "logic", "default": "unchecked" }, - "beatableonly": { "text": "Only ensure seed is beatable", "group": "logic", "default": "unchecked" }, - - "no_escape_sequence": { "text": "Skip Tower Collapse Escape Sequence", "group": "convenience", "default": "unchecked" }, - "no_guard_stealth": { "text": "Skip Interior Castle Guard Stealth Sequence", "group": "convenience", "default": "unchecked" }, - "no_epona_race": { "text": "Skip Epona Race", "group": "convenience", "default": "unchecked" }, - "only_one_big_poe": { "text": "Big Poe Reward only requires one Big Poe", "group": "convenience", "default": "unchecked" }, - - "nodungeonitems": { "text": "Remove Maps and Compasses", "group": "other", "default": "unchecked" }, - "ocarina_songs": { "text": "Randomize ocarina song notes", "group": "other", "default": "unchecked" }, - "correct_chest_sizes":{ "text": "Chests size matches contents", "group": "other", "default": "unchecked" }, - - "logic_no_big_poes": { "text": "No Big Poes", "group": "rewards", "default": "unchecked" }, - "logic_no_trade_skull_mask": { "text": "No Skull Mask reward", "group": "rewards", "default": "unchecked" }, - "logic_no_trade_mask_of_truth": { "text": "No Mask of Truth reward", "group": "rewards", "default": "unchecked" }, - "logic_no_trade_biggoron": { "text": "No Biggoron reward", "group": "rewards", "default": "unchecked" }, - "logic_no_child_fishing": { "text": "No Child Fishing", "group": "rewards", "default": "unchecked" }, - "logic_no_adult_fishing": { "text": "No Adult Fishing", "group": "rewards", "default": "unchecked" }, - "logic_no_memory_game": { "text": "No Lost Woods Memory Game", "group": "rewards", "default": "unchecked" }, - "logic_no_second_dampe_race": { "text": "No Racing Dampe a second time", "group": "rewards", "default": "unchecked" }, - "logic_no_1500_archery": { "text": "No 1500 Horseback Archery", "group": "rewards", "default": "unchecked" }, - - "logic_man_on_roof": { "text": "Man on Roof without Hookshot", "group": "tricks", "default": "unchecked" }, - "logic_child_deadhand": { "text": "Child Deadhand without Kokiri Sword", "group": "tricks", "default": "unchecked" }, - "logic_dc_jump": { "text": "Dodongo's Cavern spike trap room jump without Hover Boots", "group": "tricks", "default": "unchecked" }, - "logic_impa_house": { "text": "Impa House (cow cage) as adult with nothing", "group": "tricks", "default": "unchecked" }, - "logic_windmill_hp": { "text": "Windmill HP as adult with nothing", "group": "tricks", "default": "unchecked" }, - } - # radio list has a name, a list of options, and a default option - bridge_requirements_data = { - "name": "Rainbow Bridge Requirement", - "options": [ - { "value": "dungeons", "description": "All dungeons" }, - { "value": "medallions", "description": "All medallions" }, - { "value": "vanilla", "description": "Vanilla requirements" }, - { "value": "open", "description": "Always open" }, - ], - "default": "medallions", - "wraplength": 180, - } - gerudo_fortress_data = { - "name": "Gerudo Fortress", - "options": [ - { "value": "normal", "description": "Default Behavior" }, - { "value": "fast", "description": "Only rescue one carpenter" }, - { "value": "open", "description": "Start with Gerudo Card" }, - ], - "default": "normal", - "wraplength": 180, - } - hint_options_data = { - "name": "Gossip Stones", - "options": [ - { "value": "none", "description": "Default Behavior" }, - { "value": "mask", "description": "Have useful hints; read with the Mask of Truth" }, - { "value": "agony", "description": "Have useful hints; read with Stone of Agony" }, - { "value": "always", "description": "Have useful hints; can always be read" }, - ], - "default": "agony", - "wraplength": 170, - } - text_shuffle_data = { - "name": "Text Shuffle", - "options": [ - { "value": "none", "description": "No text shuffle" }, - { "value": "except_hints", "description": "Text is shuffled (except hints)" }, - { "value": "complete", "description": "Text is shuffled (completely)" }, - ], - "default": "none", - "wraplength": 240, - } - skulltula_data = { - "name": "Number of maximum expected skulltula tokens", - "options": [ - { "value": "none", "description": "None" }, - { "value": "10", "description": "10" }, - { "value": "20", "description": "20" }, - { "value": "30", "description": "30" }, - { "value": "40", "description": "40" }, - { "value": "50", "description": "50" }, - ], - "default": "50", - "wraplength": 240, - "horizontal": True - } - trials_data = { - "name": "Number of Ganon's Trials", - "options": [ - { "value": "0", "description": "0" }, - { "value": "1", "description": "1" }, - { "value": "2", "description": "2" }, - { "value": "3", "description": "3" }, - { "value": "4", "description": "4" }, - { "value": "5", "description": "5" }, - { "value": "6", "description": "6" }, - ], - "default": "6", - "wraplength": 240, - "horizontal": True - } - lens_data = { - "name": "Lens of Truth", - "options": [ - { "value": "all", "description": "Expected everywhere it is expected in the base game" }, - { "value": "chest-wasteland", "description": "Expected only to cross the Wasteland and clear the Chest Minigame" }, - { "value": "chest", "description": "Expected for only the Chest Minigame" }, - ], - "default": "all", - "wraplength": 200, - } - # dropdown info - color_options = get_tunic_color_options() - navi_options = get_navi_color_options() - dropdownInfo = { - "kokiricolor": { "name": "Kokiri Tunic Color", "default": "Kokiri Green", "options": color_options, "row": "top" }, - "goroncolor": { "name": "Goron Tunic Color", "default": "Goron Red", "options": color_options, "row": "top" }, - "zoracolor": { "name": "Zora Tunic Color", "default": "Zora Blue", "options": color_options, "row": "top" }, - "healthSFX": { "name": "Low Health SFX", "default": "Default", "options": ['Default', 'Softer Beep', 'Rupee', 'Timer', 'Tamborine', 'Recovery Heart', 'Carrot Refill', 'Navi - Hey!', 'Zelda - Gasp', 'Cluck', 'Mweep!', 'Random', 'None'], "row": "right" }, - "navicolordefault": { "name": "Navi Idle", "default": "White", "options": navi_options, "row": "bottom" }, - "navicolorenemy": { "name": "Navi Targeting Enemy", "default": "Yellow", "options": navi_options, "row": "bottom" }, - "navicolornpc": { "name": "Navi Targeting NPC", "default": "Light Blue", "options": navi_options, "row": "bottom" }, - "navicolorprop": { "name": "Navi Targeting Prop", "default": "Green", "options": navi_options, "row": "bottom" }, - } - # hold the results of the user's decisions here guivars = {} # hierarchy ############ - # Randomize tab - - checkAndRadioFrame = Frame(randomizerWindow) - if True: # just indenting for hierarchy clarity - leftSideChecks = Frame(checkAndRadioFrame) - if True: # just indenting for hierarchy clarity - outputOptionsFrame = LabelFrame(leftSideChecks, text='Output', labelanchor=NW) - (textShuffleFrame, guivars['text_shuffle']) = MakeRadioList(leftSideChecks, text_shuffle_data) - leftMiddleChecks = Frame(checkAndRadioFrame) - if True: # just indenting for hierarchy clarity - (rainbowBridgeFrame, guivars['bridge']) = MakeRadioList(leftMiddleChecks, bridge_requirements_data) - (trialsFrame, guivars['trials']) = MakeRadioList(leftMiddleChecks, trials_data) - (gerudoFrame, guivars['gerudo_fortress']) = MakeRadioList(leftMiddleChecks, gerudo_fortress_data) - rightMiddleChecks = Frame(checkAndRadioFrame) - if True: # just indenting for hierarchy clarity - logicOptionsFrame = LabelFrame(rightMiddleChecks, text='Mode', labelanchor=NW) - convenienceOptionsFrame = LabelFrame(rightMiddleChecks, text='Conveniences', labelanchor=NW) - rightSideChecks = Frame(checkAndRadioFrame) - if True: # just indenting for hierarchy clarity - (hintsFrame, guivars['hints']) = MakeRadioList(rightSideChecks, hint_options_data) - otherOptionsFrame = LabelFrame(rightSideChecks, text='Other', labelanchor=NW) - - aestheticFrame = LabelFrame(randomizerWindow, text='Aesthetic', labelanchor=NW) - if True: # just indenting for hierarchy clarity - aestheticLeftFrame = Frame(aestheticFrame) - if True: # just indenting for hierarchy clarity - aestheticTopFrame = Frame(aestheticLeftFrame) - aestheticBottomFrame = Frame(aestheticLeftFrame) - aestheticRightFrame = Frame(aestheticFrame) + #Rules Tab + frames['open'] = LabelFrame(frames['rules_tab'], text='Open', labelanchor=NW) + frames['logic'] = LabelFrame(frames['rules_tab'], text='Logic', labelanchor=NW) # Logic tab - logicLeftFrame = Frame(logicWindow) - if True: # just indenting for hierarchy clarity - (skulltulaFrame, guivars['logic_skulltulas']) = MakeRadioList(logicLeftFrame, skulltula_data) - rewardsFrame = LabelFrame(logicLeftFrame, text='Remove some specific locations', labelanchor=NW) - - logicRightFrame = Frame(logicWindow) - if True: # just indenting for hierarchy clarity - tricksFrame = LabelFrame(logicRightFrame, text='Specific expected tricks', labelanchor=NW) - (lensFrame, guivars['logic_lens']) = MakeRadioList(logicRightFrame, lens_data) - - # shared - settingsFrame = Frame(mainWindow) + frames['rewards'] = LabelFrame(frames['logic_tab'], text='Remove Specific Locations', labelanchor=NW) + frames['tricks'] = LabelFrame(frames['logic_tab'], text='Specific expected tricks', labelanchor=NW) - generateSeedFrame = Frame(mainWindow) + #Other Tab + frames['convenience'] = LabelFrame(frames['other_tab'], text='Speed Ups', labelanchor=NW) + frames['other'] = LabelFrame(frames['other_tab'], text='Misc', labelanchor=NW) + #Aesthetics tab + frames['tuniccolor'] = LabelFrame(frames['aesthetic_tab'], text='Tunic Color', labelanchor=NW) + frames['navicolor'] = LabelFrame(frames['aesthetic_tab'], text='Navi Color', labelanchor=NW) + frames['lowhp'] = LabelFrame(frames['aesthetic_tab'], text='Low HP SFX', labelanchor=NW) - # build gui - ############ - - # create the checkboxes - checkboxes = {} # this isn't used later currently, but I'm holding on to the pointers in case it matters later on - for var_name, info in checkboxInfo.items(): - # determine the initial value of the checkbox - default_value = 1 if info["default"] == "checked" else 0 - # create a variable to access the box's state - guivars[var_name] = IntVar(value=default_value) - # create the checkbox - parent = { 'output': outputOptionsFrame, 'logic': logicOptionsFrame, 'other': otherOptionsFrame, 'convenience': convenienceOptionsFrame, - 'rewards': rewardsFrame, 'tricks': tricksFrame}[info["group"]] # sorry, this is gross; I was reaching my limit - checkboxes[var_name] = Checkbutton(parent, text=info["text"], variable=guivars[var_name], justify=LEFT, wraplength=170) - checkboxes[var_name].pack(expand=True, anchor=W) - - # create the dropdowns - dropdownFrames = {} - for var_name, info in dropdownInfo.items(): - # create the variable to store the user's decision - guivars[var_name] = StringVar(value=info['default']) - # create the option menu - parent = { 'top': aestheticTopFrame, 'bottom': aestheticBottomFrame, 'right': aestheticRightFrame}[info["row"]] - dropdownFrames[var_name] = Frame(parent) - # dropdown = OptionMenu(dropdownFrames[var_name], guivars[var_name], *(info['options'])) - dropdown = ttk.Combobox(dropdownFrames[var_name], textvariable=guivars[var_name], values=info['options'], state='readonly') - dropdown.pack(side=BOTTOM, anchor=W) - # label the option - label = Label(dropdownFrames[var_name], text=info['name']) - label.pack(side=TOP, anchor=W) - # pack the frame - dropdownFrames[var_name].pack(expand=True, side=LEFT, anchor=N, padx=3, pady=3) - - # pack the hierarchy - - # Ranomize tab - outputOptionsFrame.pack(fill=BOTH, expand=True, anchor=E, side=TOP, pady=(5,1) ) - textShuffleFrame.pack(fill=BOTH, expand=True, anchor=E, side=BOTTOM, pady=(1,5) ) - leftSideChecks.pack(fill=BOTH, expand=True, anchor=N, side=LEFT, padx=5) - - rainbowBridgeFrame.pack(fill=BOTH, expand=True, anchor=E, side=TOP, pady=(5,1)) - trialsFrame.pack(fill=BOTH, expand=True, anchor=E, side=TOP, pady=1) - gerudoFrame.pack(fill=BOTH, expand=True, anchor=E, side=BOTTOM, pady=(1,5)) - leftMiddleChecks.pack(fill=BOTH, expand=True, anchor=N, side=LEFT, padx=5) - - logicOptionsFrame.pack(fill=BOTH, expand=True, anchor=E, side=TOP, pady=(5,1)) - convenienceOptionsFrame.pack(fill=BOTH, expand=True, anchor=E, side=BOTTOM, pady=(1,5)) - rightMiddleChecks.pack(fill=BOTH, expand=True, anchor=N, side=LEFT, padx=5) - - hintsFrame.pack(fill=BOTH, expand=True, anchor=E, side=TOP, pady=(5,1)) - otherOptionsFrame.pack(fill=BOTH, expand=True, anchor=E, side=BOTTOM, pady=(1,5)) - rightSideChecks.pack(fill=BOTH, expand=True, anchor=N, side=LEFT, padx=5) - - checkAndRadioFrame.pack(side=TOP, anchor=N) - - aestheticTopFrame.pack(expand=True, anchor=W, side=TOP) - aestheticBottomFrame.pack(fill=BOTH, expand=True, anchor=W, side=BOTTOM, pady=5) - aestheticRightFrame.pack(fill=BOTH, expand=True, anchor=N, side=RIGHT) - aestheticLeftFrame.pack(fill=BOTH, expand=True, anchor=N, side=LEFT) - aestheticFrame.pack(fill=BOTH, anchor=W, padx=5, pady=(0,5)) - - # Logic tab - skulltulaFrame.pack(fill=BOTH, anchor=W, side=TOP, pady=(5,0)) - rewardsFrame.pack(fill=BOTH, expand=True, anchor=W, side=TOP, pady=(5,0)) - logicLeftFrame.pack(fill=BOTH, expand=True, anchor=N, side=LEFT, pady=(0,5), padx=(5,5)) - - tricksFrame.pack(fill=BOTH, expand=True, anchor=W, side=TOP, pady=(5,0)) - lensFrame.pack(fill=BOTH, expand=True, anchor=W, side=TOP, pady=(5,0)) - logicRightFrame.pack(fill=BOTH, expand=True, anchor=N, side=LEFT, pady=(0,5), padx=(0, 320)) - - - - # didn't refactor the rest, sorry settings_string_var = StringVar() settingsEntry = Entry(settingsFrame, textvariable=settings_string_var) @@ -449,6 +216,28 @@ def RomSelect(): countSpinbox = Spinbox(generateSeedFrame, from_=1, to=100, textvariable=guivars['count']) + # pack the hierarchy + + frames['open'].pack( fill=BOTH, expand=True, anchor=N, side=LEFT, pady=(5,1) ) + frames['logic'].pack( fill=BOTH, expand=True, anchor=N, side=LEFT, pady=(5,1) ) + + # Logic tab + frames['rewards'].pack(fill=BOTH, expand=True, anchor=N, side=LEFT, pady=(5,1) ) + frames['tricks'].pack( fill=BOTH, expand=True, anchor=N, side=LEFT, pady=(5,1) ) + + #Other Tab + frames['convenience'].pack(fill=BOTH, expand=True, anchor=N, side=LEFT, pady=(5,1) ) + frames['other'].pack( fill=BOTH, expand=True, anchor=N, side=LEFT, pady=(5,1) ) + + #Aesthetics tab + frames['navicolor'].pack( fill=BOTH, expand=True, anchor=N, side=RIGHT, pady=(5,1) ) + frames['tuniccolor'].pack(fill=BOTH, expand=True, anchor=W, side=TOP, pady=(5,1) ) + frames['lowhp'].pack( fill=BOTH, expand=True, anchor=W, side=BOTTOM, pady=(5,1) ) + + + notebook.pack(fill=BOTH, expand=True, padx=5, pady=5) + + def generateRom(): settings = guivars_to_settings(guivars) From a22590f2b653e72e52480fe7c7775a7dda95fceb Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Thu, 5 Jul 2018 04:12:59 -0400 Subject: [PATCH 098/755] Generate option widgets based on setting_info params --- Gui.py | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/Gui.py b/Gui.py index 9c785fd2a..fc4824f52 100644 --- a/Gui.py +++ b/Gui.py @@ -216,6 +216,57 @@ def RomSelect(): countSpinbox = Spinbox(generateSeedFrame, from_=1, to=100, textvariable=guivars['count']) + # build gui + ############ + + widgets = {} + + for info in setting_infos: + if info.gui_params: + if info.gui_params['widget'] == 'Checkbutton': + # determine the initial value of the checkbox + default_value = 1 if info.gui_params['default'] == "checked" else 0 + # create a variable to access the box's state + guivars[info.name] = IntVar(value=default_value) + # create the checkbox + widgets[info.name] = Checkbutton(frames[info.gui_params['group']], text=info.gui_params['text'], variable=guivars[info.name], justify=LEFT, wraplength=200, command=show_settings) + widgets[info.name].pack(expand=False, anchor=W) + elif info.gui_params['widget'] == 'Combobox': + # create the variable to store the user's decision + guivars[info.name] = StringVar(value=info.gui_params['default']) + # create the option menu + widgets[info.name] = Frame(frames[info.gui_params['group']]) + # dropdown = OptionMenu(widgets[info.name], guivars[info.name], *(info['options'])) + if isinstance(info.gui_params['options'], list): + info.gui_params['options'] = dict(zip(info.gui_params['options'], info.gui_params['options'])) + dropdown = ttk.Combobox(widgets[info.name], textvariable=guivars[info.name], values=list(info.gui_params['options'].keys()), state='readonly', width=30) + dropdown.bind("<>", show_settings) + dropdown.pack(side=BOTTOM, anchor=W) + # label the option + label = Label(widgets[info.name], text=info.gui_params['text']) + label.pack(side=LEFT, anchor=W, padx=5) + # pack the frame + widgets[info.name].pack(expand=False, side=TOP, anchor=W, padx=3, pady=3) + elif info.gui_params['widget'] == 'Scale': + # create the variable to store the user's decision + guivars[info.name] = IntVar(value=info.gui_params['default']) + # create the option menu + widgets[info.name] = Frame(frames[info.gui_params['group']]) + # dropdown = OptionMenu(widgets[info.name], guivars[info.name], *(info['options'])) + minval = 'min' in info.gui_params and info.gui_params['min'] or 0 + maxval = 'max' in info.gui_params and info.gui_params['max'] or 100 + stepval = 'step' in info.gui_params and info.gui_params['step'] or 1 + + + scale = Scale(widgets[info.name], variable=guivars[info.name], from_=minval, to=maxval, tickinterval=stepval, resolution=stepval, showvalue=0, orient=HORIZONTAL, sliderlength=15, length=200, command=show_settings) + scale.pack(side=BOTTOM, anchor=W) + # label the option + label = Label(widgets[info.name], text=info.gui_params['text']) + label.pack(side=LEFT, anchor=W, padx=5) + # pack the frame + widgets[info.name].pack(expand=False, side=TOP, anchor=W, padx=3, pady=3) + + # pack the hierarchy frames['open'].pack( fill=BOTH, expand=True, anchor=N, side=LEFT, pady=(5,1) ) From caf44af4381421ddf0333da84218b3daaded0668 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Thu, 5 Jul 2018 04:14:12 -0400 Subject: [PATCH 099/755] Move rom settings into rom tab. settings string auto updates --- Gui.py | 86 ++++++++++++++++++++++++++++++++++------------------------ 1 file changed, 51 insertions(+), 35 deletions(-) diff --git a/Gui.py b/Gui.py index fc4824f52..0c8043f70 100644 --- a/Gui.py +++ b/Gui.py @@ -93,23 +93,7 @@ def guiMain(settings=None): notebook.add(frames['other_tab'], text='Other') notebook.add(frames['aesthetic_tab'], text='Aesthetics') - # Shared Controls - - farTopFrame = Frame(mainWindow) - - def open_output(): - open_file(output_path('')) - - openOutputButton = Button(farTopFrame, text='Open Output Directory', command=open_output) - - if os.path.exists(local_path('README.html')): - def open_readme(): - open_file(local_path('README.html')) - openReadmeButton = Button(farTopFrame, text='Open Documentation', command=open_readme) - openReadmeButton.pack(side=LEFT) - - farTopFrame.pack(side=TOP, fill=X, padx=5, pady=2) - notebook.pack(padx=5, pady=5) + # Shared Controls # adds a LabelFrame containing a list of radio buttons based on the given data # returns the label_frame, and a variable associated with it @@ -160,14 +144,16 @@ def MakeRadioList(parent, data): frames['lowhp'] = LabelFrame(frames['aesthetic_tab'], text='Low HP SFX', labelanchor=NW) + # shared + settingsFrame = Frame(mainWindow) settings_string_var = StringVar() settingsEntry = Entry(settingsFrame, textvariable=settings_string_var) - def show_settings(): + def show_settings(event=None): settings = guivars_to_settings(guivars) settings_string_var.set( settings.get_settings_string() ) - def import_settings(): + def import_settings(event=None): try: settings = guivars_to_settings(guivars) text = settings_string_var.get().upper() @@ -177,17 +163,15 @@ def import_settings(): except Exception as e: messagebox.showerror(title="Error", message="Invalid settings string") - showSettingsButton = Button(settingsFrame, text='Show Settings String', command=show_settings) + label = Label(settingsFrame, text="Settings String") importSettingsButton = Button(settingsFrame, text='Import Settings String', command=import_settings) + label.pack(side=LEFT, anchor=W, padx=5) + settingsEntry.pack(side=LEFT, anchor=W) + importSettingsButton.pack(side=LEFT, anchor=W, padx=5) - showSettingsButton.pack(side=LEFT, padx=(6,10)) - settingsEntry.pack(side=LEFT) - importSettingsButton.pack(side=LEFT, padx=10) - - settingsFrame.pack(fill=BOTH, anchor=W, padx=5, pady=(10,0)) - fileDialogFrame = Frame(generateSeedFrame) + fileDialogFrame = Frame(frames['rom_tab']) romDialogFrame = Frame(fileDialogFrame) baseRomLabel = Label(romDialogFrame, text='Base Rom') @@ -200,20 +184,40 @@ def RomSelect(): romSelectButton = Button(romDialogFrame, text='Select Rom', command=RomSelect) baseRomLabel.pack(side=LEFT) - romEntry.pack(side=LEFT) + romEntry.pack(side=LEFT, padx=3) romSelectButton.pack(side=LEFT) romDialogFrame.pack() - fileDialogFrame.pack(side=LEFT, padx=5) + fileDialogFrame.pack(side=TOP, anchor=W, padx=5, pady=(5,1)) + def open_output(): + open_file(output_path('')) - seedLabel = Label(generateSeedFrame, text='Seed #') - guivars['seed'] = StringVar() - seedEntry = Entry(generateSeedFrame, textvariable=guivars['seed']) - countLabel = Label(generateSeedFrame, text='Count') + outputDialogFrame = Frame(frames['rom_tab']) + + openOutputButton = Button(outputDialogFrame, text='Open Output Directory', command=open_output) + openOutputButton.pack(side=LEFT, padx=5) + + if os.path.exists(local_path('README.html')): + def open_readme(): + open_file(local_path('README.html')) + openReadmeButton = Button(outputDialogFrame, text='Open Documentation', command=open_readme) + openReadmeButton.pack(side=LEFT, padx=5) + + outputDialogFrame.pack(side=TOP, anchor=W, pady=3) + + countDialogFrame = Frame(frames['rom_tab']) + countLabel = Label(countDialogFrame, text='Generation Count') guivars['count'] = StringVar() - countSpinbox = Spinbox(generateSeedFrame, from_=1, to=100, textvariable=guivars['count']) + countSpinbox = Spinbox(countDialogFrame, from_=1, to=100, textvariable=guivars['count'], width=3) + + countLabel.pack(side=LEFT) + countSpinbox.pack(side=LEFT, padx=3) + countDialogFrame.pack(side=TOP, anchor=W, padx=5, pady=(5,1)) + + + generateSeedFrame = Frame(mainWindow) # build gui @@ -289,6 +293,14 @@ def RomSelect(): notebook.pack(fill=BOTH, expand=True, padx=5, pady=5) + + # didn't refactor the rest, sorry + + + # create the option menu + + settingsFrame.pack(fill=BOTH, anchor=W, padx=5, pady=(10,0)) + def generateRom(): settings = guivars_to_settings(guivars) @@ -307,10 +319,11 @@ def generateRom(): generateButton = Button(generateSeedFrame, text='Generate Patched Rom', command=generateRom) + seedLabel = Label(generateSeedFrame, text='Seed #') + guivars['seed'] = StringVar() + seedEntry = Entry(generateSeedFrame, textvariable=guivars['seed']) seedLabel.pack(side=LEFT) seedEntry.pack(side=LEFT) - countLabel.pack(side=LEFT, padx=(5, 0)) - countSpinbox.pack(side=LEFT) generateButton.pack(side=LEFT, padx=(5, 0)) openOutputButton.pack(side=RIGHT) @@ -330,6 +343,8 @@ def generateRom(): except: pass + show_settings() + mainWindow.mainloop() # save settings on close @@ -337,5 +352,6 @@ def generateRom(): settings = guivars_to_settings(guivars) json.dump(settings.__dict__, outfile) + if __name__ == '__main__': guiMain() From e7d0958ca333abc05b0223391657e4fb6b4e35bf Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Thu, 5 Jul 2018 04:15:01 -0400 Subject: [PATCH 100/755] Rename Random' to 'Random Choice and True Random to Completely Random --- Rom.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Rom.py b/Rom.py index 12c5c3b00..486a1a2e4 100644 --- a/Rom.py +++ b/Rom.py @@ -53,13 +53,13 @@ def get_tunic_colors(): return list(TunicColors.keys()) def get_tunic_color_options(): - return get_tunic_colors() + ["Random", "True Random"] + return ["Random Choice", "Completely Random"] + get_tunic_colors() def get_navi_colors(): return list(NaviColors.keys()) def get_navi_color_options(): - return get_navi_colors() + ["Random", "True Random"] + return ["Random Choice", "Completely Random"] + get_navi_colors() class LocalRom(object): @@ -1282,11 +1282,11 @@ def write_byte_to_save(offset, value): thisColor = world.tunic_colors[i] # handle true random randColor = [random.getrandbits(8), random.getrandbits(8), random.getrandbits(8)] - if thisColor == 'True Random': + if thisColor == 'Completely Random': color = randColor else: # handle random - if world.tunic_colors[i] == 'Random': + if world.tunic_colors[i] == 'Random Choice': thisColor = randomColors[i] # grab the color from the list color = TunicColors[thisColor] @@ -1309,11 +1309,11 @@ def write_byte_to_save(offset, value): # handle true random randColor = [random.getrandbits(8), random.getrandbits(8), random.getrandbits(8), 0xFF, random.getrandbits(8), random.getrandbits(8), random.getrandbits(8), 0x00] - if thisColor == 'True Random': + if thisColor == 'Completely Random': color = randColor else: # handle random - if world.navi_colors[i] == 'Random': + if world.navi_colors[i] == 'Random Choice': thisColor = randomColors[i] # grab the color from the list color = NaviColors[thisColor] @@ -1324,7 +1324,7 @@ def write_byte_to_save(offset, value): randomSFX = random.choice(healthSFXList) address = 0xADBA1A - if world.healthSFX == 'Random': + if world.healthSFX == 'Random Choice': thisHealthSFX = randomSFX else: thisHealthSFX = world.healthSFX From f6c0ac2636a40a6034ba2540d15a82555164fd99 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Thu, 5 Jul 2018 04:15:32 -0400 Subject: [PATCH 101/755] Fix change to 'All location reachable' and Skulltula counts --- BaseClasses.py | 2 +- Rules.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index f8d47f8a5..19a7897a3 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -25,7 +25,7 @@ def __init__(self, settings): self.__dict__.update(settings.__dict__) # rename a few attributes... self.place_dungeon_items = not self.nodungeonitems - self.check_beatable_only = self.beatableonly + self.check_beatable_only = not self.all_reachable # group a few others self.tunic_colors = [self.kokiricolor, self.goroncolor, self.zoracolor] self.navi_colors = [self.navicolordefault, self.navicolorenemy, self.navicolornpc, self.navicolorprop] diff --git a/Rules.py b/Rules.py index 55461d8dd..756af08a5 100644 --- a/Rules.py +++ b/Rules.py @@ -51,7 +51,7 @@ def item_name(state, location): def global_rules(world): - expected_skulltulas = {'none': 0, '10': 10, '20': 20, '30': 30, '40': 40, '50': 50}[world.logic_skulltulas] + expected_skulltulas = world.logic_skulltulas # ganon can only carry triforce world.get_location('Ganon').item_rule = lambda item: item.name == 'Triforce' From 4b89f5e947d4d4d0202cdcbe1501682be08f295d Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Thu, 5 Jul 2018 04:20:35 -0400 Subject: [PATCH 102/755] Aesthetic options are not seed dependent --- Rom.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Rom.py b/Rom.py index 486a1a2e4..1f392127f 100644 --- a/Rom.py +++ b/Rom.py @@ -1268,6 +1268,9 @@ def write_byte_to_save(offset, value): if world.ocarina_songs: replace_songs(rom) + # re-seed for aesthetic effects. They shouldn't be affected by the generation seed + random.seed() + # patch tunic colors # Custom color tunic stuff Tunics = [] From c85fd75306b0fb11174495136dee80fa689940bc Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Thu, 5 Jul 2018 16:01:59 -0400 Subject: [PATCH 103/755] Added output directory option --- Gui.py | 32 +++++++++++++++++++++----------- Main.py | 15 ++++++++++----- Rom.py | 10 ++++++---- Settings.py | 3 +++ 4 files changed, 40 insertions(+), 20 deletions(-) diff --git a/Gui.py b/Gui.py index 0c8043f70..b1bd6ea22 100644 --- a/Gui.py +++ b/Gui.py @@ -11,7 +11,7 @@ from GuiUtils import ToolTips, set_icon, BackgroundTaskProgress from Main import main -from Utils import is_bundled, local_path, output_path, open_file +from Utils import is_bundled, local_path, default_output_path, open_file from Rom import get_tunic_color_options, get_navi_color_options from Settings import Settings, setting_infos, __version__ as ESVersion @@ -176,14 +176,15 @@ def import_settings(event=None): romDialogFrame = Frame(fileDialogFrame) baseRomLabel = Label(romDialogFrame, text='Base Rom') guivars['rom'] = StringVar(value='ZOOTDEC.z64') - romEntry = Entry(romDialogFrame, textvariable=guivars['rom']) + romEntry = Entry(romDialogFrame, textvariable=guivars['rom'], width=40) def RomSelect(): rom = filedialog.askopenfilename(filetypes=[("Rom Files", (".z64", ".n64")), ("All Files", "*")]) - guivars['rom'].set(rom) - romSelectButton = Button(romDialogFrame, text='Select Rom', command=RomSelect) + if rom != '': + guivars['rom'].set(rom) + romSelectButton = Button(romDialogFrame, text='Select Rom', command=RomSelect, width=10) - baseRomLabel.pack(side=LEFT) + baseRomLabel.pack(side=LEFT, padx=(40,0)) romEntry.pack(side=LEFT, padx=3) romSelectButton.pack(side=LEFT) @@ -193,11 +194,22 @@ def RomSelect(): def open_output(): open_file(output_path('')) + + def output_dir_select(): + rom = filedialog.askdirectory(initialdir = default_output_path(guivars['output_dir'].get())) + if rom != '': + guivars['output_dir'].set(rom) outputDialogFrame = Frame(frames['rom_tab']) + outputDirLabel = Label(outputDialogFrame, text='Output Directory') + guivars['output_dir'] = StringVar(value='') + outputDirEntry = Entry(outputDialogFrame, textvariable=guivars['output_dir'], width=40) + outputDirButton = Button(outputDialogFrame, text='Select Dir', command=output_dir_select, width=10) + outputDirLabel.pack(side=LEFT, padx=(3,0)) + outputDirEntry.pack(side=LEFT, padx=3) + outputDirButton.pack(side=LEFT) + outputDialogFrame.pack(side=TOP, anchor=W, padx=5, pady=(5,1)) - openOutputButton = Button(outputDialogFrame, text='Open Output Directory', command=open_output) - openOutputButton.pack(side=LEFT, padx=5) if os.path.exists(local_path('README.html')): def open_readme(): @@ -213,8 +225,8 @@ def open_readme(): countSpinbox = Spinbox(countDialogFrame, from_=1, to=100, textvariable=guivars['count'], width=3) countLabel.pack(side=LEFT) - countSpinbox.pack(side=LEFT, padx=3) - countDialogFrame.pack(side=TOP, anchor=W, padx=5, pady=(5,1)) + countSpinbox.pack(side=LEFT, padx=2) + countDialogFrame.pack(side=TOP, anchor=W, padx=5, pady=(1,1)) generateSeedFrame = Frame(mainWindow) @@ -326,8 +338,6 @@ def generateRom(): seedEntry.pack(side=LEFT) generateButton.pack(side=LEFT, padx=(5, 0)) - openOutputButton.pack(side=RIGHT) - generateSeedFrame.pack(side=BOTTOM, anchor=W, padx=5, pady=10) if settings is not None: diff --git a/Main.py b/Main.py index e0fb270a9..03f23f035 100644 --- a/Main.py +++ b/Main.py @@ -6,6 +6,7 @@ import random import subprocess import time +import os from BaseClasses import World, CollectionState, Item from Regions import create_regions @@ -15,7 +16,7 @@ from Dungeons import create_dungeons, fill_dungeons_restrictive from Fill import distribute_items_restrictive from ItemList import generate_itempool -from Utils import output_path +from Utils import default_output_path from Settings import __version__ def main(settings): @@ -67,13 +68,17 @@ def main(settings): outfilebase = 'OoT_%s_%s' % (world.settings_string, world.seed) if not settings.suppress_rom: - rom = LocalRom(settings.rom) + rom = LocalRom(settings) patch_rom(world, rom) - rom.write_to_file(output_path('%s.z64' % outfilebase)) + + output_dir = default_output_path(settings.output_dir) + rom_path = os.path.join(output_dir, '%s.z64' % outfilebase) + + rom.write_to_file(rom_path) if settings.compress_rom: logger.info('Compressing ROM.') if platform.system() == 'Windows': - subprocess.call(["Compress\Compress.exe", (output_path('%s.z64' % outfilebase)), (output_path('%s-comp.z64' % outfilebase))]) + subprocess.call(["Compress\\Compress.exe", rom_path, os.path.join(output_dir, '%s-comp.z64' % outfilebase)]) elif platform.system() == 'Linux': subprocess.call(["Compress/Compress", ('%s.z64' % outfilebase)]) elif platform.system() == 'Darwin': @@ -82,7 +87,7 @@ def main(settings): logger.info('OS not supported for compression') if settings.create_spoiler: - world.spoiler.to_file(output_path('%s_Spoiler.txt' % outfilebase)) + world.spoiler.to_file(os.path.join(output_dir, '%s_Spoiler.txt' % outfilebase)) logger.info('Done. Enjoy.') logger.debug('Total Time: %s', time.clock() - start) diff --git a/Rom.py b/Rom.py index 1f392127f..91d34e02f 100644 --- a/Rom.py +++ b/Rom.py @@ -8,7 +8,7 @@ import random from Hints import buildGossipHints, buildBossRewardHints, buildGanonText -from Utils import local_path, output_path +from Utils import local_path, default_output_path from Items import ItemFactory, item_data from TextArray import text_array from Messages import * @@ -63,7 +63,9 @@ def get_navi_color_options(): class LocalRom(object): - def __init__(self, file, patch=True): + def __init__(self, settings, patch=True): + file = settings.rom + decomp_file = os.path.join(default_output_path(settings.output_dir), 'ZOOTDEC.z64') validCRC = [] validCRC.append(bytearray([0xEC, 0x70, 0x11, 0xB7, 0x76, 0x16, 0xD7, 0x2B])) # Compressed @@ -82,8 +84,8 @@ def __init__(self, file, patch=True): raise RuntimeError('ROM is not a valid OoT 1.0 ROM.') if len(self.buffer) == 33554432: if platform.system() == 'Windows': - subprocess.call(["Decompress\Decompress.exe", file, output_path('ZOOTDEC.z64')]) - with open((output_path('ZOOTDEC.z64')), 'rb') as stream: + subprocess.call(["Decompress\\Decompress.exe", file, decomp_file]) + with open(decomp_file, 'rb') as stream: self.buffer = read_rom(stream) elif platform.system() == 'Linux': subprocess.call(["Decompress/Decompress", file]) diff --git a/Settings.py b/Settings.py index 02e3f99f5..e84d9d46d 100644 --- a/Settings.py +++ b/Settings.py @@ -158,6 +158,9 @@ def __init__(self, settings_dict): Setting_Info('rom', str, 0, False, { 'default': 'ZOOTDEC.z64', 'help': 'Path to an OoT 1.0 rom to use as a base.'}), + Setting_Info('output_dir', str, 0, False, { + 'default': '', + 'help': 'Path to output directory for rom generation.'}), Setting_Info('seed', str, 0, False, { 'help': 'Define seed number to generate.'}), Setting_Info('count', int, 0, False, { From d8a82478f941af73631d054471ccea5ac4973db4 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Thu, 5 Jul 2018 16:02:31 -0400 Subject: [PATCH 104/755] fix skulltula max count being improperly indexed --- HintList.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HintList.py b/HintList.py index 6a18e1a42..cd10bfe72 100644 --- a/HintList.py +++ b/HintList.py @@ -264,7 +264,7 @@ def getHintGroup(string, world): # exclusions from the list for custom logic def hintExclusions(world): - expected_skulltulas = {'none': 0, '10': 10, '20': 20, '30': 30, '40': 40, '50': 50}[world.logic_skulltulas] + expected_skulltulas = world.logic_skulltulas exclusions = [] if world.logic_no_trade_skull_mask: exclusions.append('Deku Theater Skull Mask') From 4594f16803b0acb593c1ee6b63a287f7e78828d5 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Thu, 5 Jul 2018 16:03:30 -0400 Subject: [PATCH 105/755] Added option for default targeting --- Rom.py | 4 ++++ Settings.py | 20 ++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/Rom.py b/Rom.py index 91d34e02f..12bbf90bb 100644 --- a/Rom.py +++ b/Rom.py @@ -1129,6 +1129,10 @@ def write_byte_to_save(offset, value): chestVal = rom.read_int16(address) & 0x0FFF rom.write_int16(address, chestVal | chestType) + # Set Default targeting option to Hold + if world.default_targeting == 'hold': + rom.write_bytes(0xB07200, [0x20, 0x0C, 0x00, 0x01 ]) + # Patch songs and boss rewards for location in world.get_locations(): item = location.item diff --git a/Settings.py b/Settings.py index e84d9d46d..13d87dd2c 100644 --- a/Settings.py +++ b/Settings.py @@ -747,6 +747,26 @@ def __init__(self, settings_dict): 'All text shuffled': 'complete', }, }), + Setting_Info('default_targeting', str, 1, True, + { + 'default': 'hold', + 'const': 'always', + 'nargs': '?', + 'choices': ['hold', 'switch'], + 'help': '''\ + Choose what the default targeting is. + ''' + }, + { + 'text': 'Default Targeting Option', + 'group': 'other', + 'widget': 'Combobox', + 'default': 'Hold', + 'options': { + 'Hold': 'hold', + 'Switch': 'switch', + }, + }), From 5245eae776ea573113f039ef25a3df4c37c6d868 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Thu, 5 Jul 2018 16:04:08 -0400 Subject: [PATCH 106/755] Updated some gui text --- Settings.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Settings.py b/Settings.py index 13d87dd2c..cfa2ef79c 100644 --- a/Settings.py +++ b/Settings.py @@ -189,7 +189,7 @@ def __init__(self, settings_dict): 'action': 'store_true' }, { - 'text': 'Do not create patched Rom', + 'text': 'Do not create Rom', 'group': 'rom_tab', 'widget': 'Checkbutton', 'default': 'unchecked' @@ -200,7 +200,7 @@ def __init__(self, settings_dict): 'action': 'store_true' }, { - 'text': 'Compress patched Rom', + 'text': 'Compress Rom. Improves stability but will take longer to generate', 'group': 'rom_tab', 'widget': 'Checkbutton', 'default': 'unchecked' From 7267d9473910a254c3dad008fd866ce2776f5693 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Thu, 5 Jul 2018 16:04:38 -0400 Subject: [PATCH 107/755] Changed handling of default output path --- Utils.py | 40 ++++++---------------------------------- 1 file changed, 6 insertions(+), 34 deletions(-) diff --git a/Utils.py b/Utils.py index e31664740..5194a126a 100644 --- a/Utils.py +++ b/Utils.py @@ -20,42 +20,14 @@ def local_path(path): local_path.cached_path = None -def output_path(path): - if output_path.cached_path is not None: - return os.path.join(output_path.cached_path, path) +def default_output_path(path): + if path == '': + path = os.path.join('.', 'Output') - if not is_bundled(): - output_path.cached_path = '.' - return os.path.join(output_path.cached_path, path) - else: - # has been packaged, so cannot use CWD for output. - if sys.platform == 'win32': - #windows - import ctypes.wintypes - CSIDL_PERSONAL = 5 # My Documents - SHGFP_TYPE_CURRENT = 0 # Get current, not default value - - buf = ctypes.create_unicode_buffer(ctypes.wintypes.MAX_PATH) - ctypes.windll.shell32.SHGetFolderPathW(None, CSIDL_PERSONAL, None, SHGFP_TYPE_CURRENT, buf) - - documents = buf.value - - elif sys.platform == 'darwin': - from AppKit import NSSearchPathForDirectoriesInDomains # pylint: disable=import-error - # http://developer.apple.com/DOCUMENTATION/Cocoa/Reference/Foundation/Miscellaneous/Foundation_Functions/Reference/reference.html#//apple_ref/c/func/NSSearchPathForDirectoriesInDomains - NSDocumentDirectory = 9 - NSUserDomainMask = 1 - # True for expanding the tilde into a fully qualified path - documents = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, True)[0] - else: - raise NotImplementedError('Not supported yet') - - output_path.cached_path = os.path.join(documents, 'OoTRandomizer') - if not os.path.exists(output_path.cached_path): - os.mkdir(output_path.cached_path) - return os.path.join(output_path.cached_path, path) + if not os.path.exists(path): + os.mkdir(path) + return path -output_path.cached_path = None def open_file(filename): if sys.platform == 'win32': From 2966018e8137a4fc919e0f7c5e55226c7d46ae06 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Thu, 5 Jul 2018 16:20:30 -0400 Subject: [PATCH 108/755] Updated readme --- README.md | 16 +++++++++++++++- Settings.py | 2 +- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 58d936d6a..42a68c3e9 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,7 @@ The following were added or majorly changed on this fork: - Seeds can be text instead of just numbers - Can get, share, and import a settings string to quickly set seed-changing options - Options are saved when closing the GUI and loaded when opening it +- Can set Output directory ## Optional Logic changes @@ -43,6 +44,7 @@ Options to skip some sequences that only pad the time of completing the game wit - `no_guard_stealth`: the stealth sequence between the crawlspace into Hyrule Castle and Zelda's courtyard will be skipped. - `no_epona_race`: you can summon Epona with her song without racing Ingo. - `only_one_big_poe`: the poe buyer will give the reward after selling 1 Big Poe instead of 10. +- `default_targeting`: set the default targeting mode to be either `switch` or `hold`. ## Bombchus @@ -53,6 +55,10 @@ Bombchus are now considered in logic. That is, once you've found bombchus, you c As a note, if you have access to the Wasteland carpet salesman and have a wallet upgrade, you can buy bombchus from him to get your first pack. +## Malon Egg + +The Weird Egg is shuffled into the pool. This means that Malon will give a random item and that you must find the Weird Egg (and hatch it) before being able to visit Zelda. + ## Keysanity Dungeon items (maps, compasses, small keys, boss keys) are shuffled into the item pool at large. @@ -73,4 +79,12 @@ You can randomize the note pattern that is required to activate each song. The n ## Navi color options -Similar to the tunic color options, you can change Navi's color for each of her different kinds of targets. \ No newline at end of file +Similar to the tunic color options, you can change Navi's color for each of her different kinds of targets. + +## Chest size matches contents + +`correct_chest_sizes`: Major items will appear in a large chest and other items in small chests. There are a few places that cannot be correctly updated: +- Chests in Generic Grottos +- Chests summoned by Zelda's Lullaby +- Chests summoned by Sun's Song Triggered +- Chests summoned by a switch that do not fall \ No newline at end of file diff --git a/Settings.py b/Settings.py index cfa2ef79c..388c4582b 100644 --- a/Settings.py +++ b/Settings.py @@ -7,7 +7,7 @@ from Rom import get_tunic_color_options, get_navi_color_options -__version__ = '2.9.4 f.LUM' +__version__ = '2.9.5 f.LUM' class ArgumentDefaultsHelpFormatter(argparse.RawTextHelpFormatter): From 6227b8ac060fbe3039cb007dc7469a2131cd7e36 Mon Sep 17 00:00:00 2001 From: Vincent Cunningham Date: Thu, 5 Jul 2018 16:57:37 -0400 Subject: [PATCH 109/755] Add Tatl and Tael color options --- Rom.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Rom.py b/Rom.py index 12c5c3b00..09972cd0e 100644 --- a/Rom.py +++ b/Rom.py @@ -47,6 +47,8 @@ "Red": [0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00], "Magenta": [0xFF, 0x00, 0xFF, 0xFF, 0xC8, 0x00, 0x9B, 0x00], "Black": [0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00], + "Tatl": [0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0x98, 0x00, 0x00], + "Tael": [0x49, 0x14, 0x6C, 0xFF, 0xFF, 0x00, 0x00, 0x00], } def get_tunic_colors(): From 900165c907230981c7d32a54550d5dbc62762d34 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Thu, 5 Jul 2018 18:03:04 -0400 Subject: [PATCH 110/755] version inc test --- Gui.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Gui.py b/Gui.py index b1bd6ea22..2d5dbf8a5 100644 --- a/Gui.py +++ b/Gui.py @@ -314,9 +314,9 @@ def open_readme(): settingsFrame.pack(fill=BOTH, anchor=W, padx=5, pady=(10,0)) def generateRom(): - settings = guivars_to_settings(guivars) + settings = guivars_to_settings(guivars) - try: + #try: if settings.count is not None: orig_seed = settings.seed for i in range(settings.count): @@ -324,9 +324,9 @@ def generateRom(): main(settings) else: main(settings) - except Exception as e: - messagebox.showerror(title="Error while creating seed", message=str(e)) - else: + #except Exception as e: + # messagebox.showerror(title="Error while creating seed", message=str(e)) + #else: messagebox.showinfo(title="Success", message="Rom patched successfully") generateButton = Button(generateSeedFrame, text='Generate Patched Rom', command=generateRom) From 80954689bb4ffeac1e4a57a1d9b354e20fc5c401 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Thu, 5 Jul 2018 18:33:13 -0400 Subject: [PATCH 111/755] added auto versioning --- BaseClasses.py | 2 +- Gui.py | 3 ++- Main.py | 2 +- Settings.py | 3 +-- version.py | 1 + 5 files changed, 6 insertions(+), 5 deletions(-) create mode 100644 version.py diff --git a/BaseClasses.py b/BaseClasses.py index 19a7897a3..5bc3120bb 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -2,6 +2,7 @@ from enum import Enum, unique import logging from collections import OrderedDict +from version import __version__ as OoTRVersion class World(object): @@ -621,7 +622,6 @@ def parse_data(self): sort_order = {"Song": 0, "Boss": -1} spoiler_locations.sort(key=lambda item: sort_order.get(item.type, 1)) self.locations = {'other locations': OrderedDict([(str(location), str(location.item) if location.item is not None else 'Nothing') for location in spoiler_locations])} - from Settings import __version__ as OoTRVersion self.version = OoTRVersion self.settings = self.world.settings diff --git a/Gui.py b/Gui.py index 2d5dbf8a5..2125dbfb3 100644 --- a/Gui.py +++ b/Gui.py @@ -13,7 +13,8 @@ from Main import main from Utils import is_bundled, local_path, default_output_path, open_file from Rom import get_tunic_color_options, get_navi_color_options -from Settings import Settings, setting_infos, __version__ as ESVersion +from Settings import Settings, setting_infos +from version import __version__ as ESVersion def settings_to_guivars(settings, guivars): diff --git a/Main.py b/Main.py index 03f23f035..ff577703f 100644 --- a/Main.py +++ b/Main.py @@ -17,7 +17,7 @@ from Fill import distribute_items_restrictive from ItemList import generate_itempool from Utils import default_output_path -from Settings import __version__ +from version import __version__ def main(settings): start = time.clock() diff --git a/Settings.py b/Settings.py index 388c4582b..47c9ea8d0 100644 --- a/Settings.py +++ b/Settings.py @@ -6,8 +6,7 @@ import hashlib from Rom import get_tunic_color_options, get_navi_color_options - -__version__ = '2.9.5 f.LUM' +from version import __version__ class ArgumentDefaultsHelpFormatter(argparse.RawTextHelpFormatter): diff --git a/version.py b/version.py new file mode 100644 index 000000000..a62c90fbf --- /dev/null +++ b/version.py @@ -0,0 +1 @@ +__version__ = '2.9.7 f.LUM' \ No newline at end of file From 90f702345ec8695ad621cbba0a97cf4ef2ba1661 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Thu, 5 Jul 2018 18:34:38 -0400 Subject: [PATCH 112/755] version inc test --- Gui.py | 10 +++++----- version.py | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Gui.py b/Gui.py index 2125dbfb3..354494d43 100644 --- a/Gui.py +++ b/Gui.py @@ -315,9 +315,9 @@ def open_readme(): settingsFrame.pack(fill=BOTH, anchor=W, padx=5, pady=(10,0)) def generateRom(): - settings = guivars_to_settings(guivars) + settings = guivars_to_settings(guivars) - #try: + try: if settings.count is not None: orig_seed = settings.seed for i in range(settings.count): @@ -325,9 +325,9 @@ def generateRom(): main(settings) else: main(settings) - #except Exception as e: - # messagebox.showerror(title="Error while creating seed", message=str(e)) - #else: + except Exception as e: + messagebox.showerror(title="Error while creating seed", message=str(e)) + else: messagebox.showinfo(title="Success", message="Rom patched successfully") generateButton = Button(generateSeedFrame, text='Generate Patched Rom', command=generateRom) diff --git a/version.py b/version.py index a62c90fbf..6cb1d741f 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.9.7 f.LUM' \ No newline at end of file +__version__ = '2.9.8 f.LUM' \ No newline at end of file From bb12104336a05250976c0f58c63a2acfc0e7e4fe Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Thu, 5 Jul 2018 19:27:37 -0500 Subject: [PATCH 113/755] Added Malon egg issue to the readme. --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 42a68c3e9..bc092bc52 100644 --- a/README.md +++ b/README.md @@ -59,6 +59,8 @@ As a note, if you have access to the Wasteland carpet salesman and have a wallet The Weird Egg is shuffled into the pool. This means that Malon will give a random item and that you must find the Weird Egg (and hatch it) before being able to visit Zelda. +Known Issue: With this setting, waking Talon before getting Malon's random item at Hyrule Castle will cause you to miss that item forever. + ## Keysanity Dungeon items (maps, compasses, small keys, boss keys) are shuffled into the item pool at large. From 963c424d841a27d7eb769eaa8df55900efbf1dc8 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Fri, 6 Jul 2018 00:40:22 -0400 Subject: [PATCH 114/755] Fix Song from Malon not checking for Zelda's Letter --- Rules.py | 1 + version.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Rules.py b/Rules.py index 756af08a5..478654d25 100644 --- a/Rules.py +++ b/Rules.py @@ -158,6 +158,7 @@ def global_rules(world): set_rule(world.get_location('Song from Ocarina of Time'), lambda state: state.has('Kokiri Emerald') and state.has('Goron Ruby') and state.has('Zora Sapphire') and state.guarantee_hint()) set_rule(world.get_entrance('Door of Time'), lambda state: state.has('Song of Time') or world.open_door_of_time) set_rule(world.get_location('Talons Chickens'), lambda state: state.has('Zeldas Letter')) + set_rule(world.get_location('Song from Malon'), lambda state: state.has('Zeldas Letter')) set_rule(world.get_location('Epona'), lambda state: state.has('Eponas Song') and state.is_adult()) set_rule(world.get_entrance('Adult Forest Warp Pad'), lambda state: state.has('Minuet of Forest') and state.is_adult()) set_rule(world.get_entrance('Child Forest Warp Pad'), lambda state: state.has('Minuet of Forest')) diff --git a/version.py b/version.py index 6cb1d741f..d101f5cd0 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.9.8 f.LUM' \ No newline at end of file +__version__ = '2.9.9 f.LUM' \ No newline at end of file From 52186790168443a162a866754a54375ed260e6e8 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Fri, 6 Jul 2018 00:46:02 -0400 Subject: [PATCH 115/755] Targeting option does not affect seed --- Settings.py | 4 ++-- version.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Settings.py b/Settings.py index 47c9ea8d0..7173204b1 100644 --- a/Settings.py +++ b/Settings.py @@ -746,7 +746,7 @@ def __init__(self, settings_dict): 'All text shuffled': 'complete', }, }), - Setting_Info('default_targeting', str, 1, True, + Setting_Info('default_targeting', str, 1, False, { 'default': 'hold', 'const': 'always', @@ -758,7 +758,7 @@ def __init__(self, settings_dict): }, { 'text': 'Default Targeting Option', - 'group': 'other', + 'group': 'rom_tab', 'widget': 'Combobox', 'default': 'Hold', 'options': { diff --git a/version.py b/version.py index d101f5cd0..a26be98ba 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.9.9 f.LUM' \ No newline at end of file +__version__ = '2.9.10 f.LUM' \ No newline at end of file From 74727881ebee52d46278e4f053daf37220b9bddc Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Fri, 6 Jul 2018 00:48:53 -0400 Subject: [PATCH 116/755] Removed excess spaces in some hints --- HintList.py | 194 ++++++++++++++++++++++++++-------------------------- Hints.py | 2 +- version.py | 2 +- 3 files changed, 99 insertions(+), 99 deletions(-) diff --git a/HintList.py b/HintList.py index cd10bfe72..3b3fe3c4f 100644 --- a/HintList.py +++ b/HintList.py @@ -33,104 +33,104 @@ def getHintGroup(string, world): # & is a new line # @ will print the player name # # sets color to white (currently only used for dungeon reward hints). -hintTable = {'Hammer': (" the dragon smasher", 'item'), - 'Magic Meter': (" pixie dust", 'item'), - 'Double Defense': (" a white outline", 'item'), - 'Progressive Hookshot': (" Dampe's Keepsake", 'item'), - 'Progressive Strength Upgrade': (" power gloves", 'item'), - 'Hover Boots': (" butter boots", 'item'), - 'Master Sword': (" evil's bane", 'item'), - 'Mirror Shield': (" the reflective rampart", 'item'), - 'Farores Wind': (" teleportation", 'item'), - 'Nayrus Love': (" a safe space", 'item'), - 'Ice Arrows': (" the refrigerator rocket", 'item'), - 'Lens of Truth': (" the perjurless porthole", 'item'), - 'Dins Fire': (" an inferno", 'item'), - 'Fairy Ocarina': (" a brown flute", 'item'), - 'Goron Tunic': (" ruby robes", 'item'), - 'Zora Tunic': (" a sapphire suit", 'item'), - 'Iron Boots': (" sink shoes", 'item'), - 'Zeldas Letter': (" a signed banana", 'item'), - 'Zeldas Lullaby': (" a song of royal slumber", 'item'), - 'Nocturne of Shadow': (" a song of spooky spirits", 'item'), - 'Bow': (" an archery enabler", 'item'), - 'Bomb Bag': (" an explosive container", 'item'), - 'Sarias Song': (" a song of dancing gorons", 'item'), - 'Song of Time': (" a song 7 years long", 'item'), - 'Song of Storms': (" Rain Dance", 'item'), - 'Minuet of Forest': (" the song of tall trees", 'item'), - 'Requiem of Spirit': (" a song of sandy statues", 'item'), - 'Slingshot': (" a seed shooter", 'item'), - 'Boomerang': (" a banana", 'item'), - 'Fire Arrows': (" the furnace firearm", 'item'), - 'Ocarina of Time': (" blue flute", 'item'), - 'Bottle': (" a fairy prison", 'item'), - 'Bottle with Letter': (" a call for help", 'item'), - 'Bottle with Milk': (" cow juice", 'item'), - 'Bottle with Red Potion': (" a vitality vial", 'item'), - 'Bottle with Green Potion': (" a magic mixture", 'item'), - 'Bottle with Blue Potion': (" an all-cure antidote", 'item'), - 'Bottle with Fairy': (" an imprisoned fairy", 'item'), - 'Bottle with Fish': (" an aquarium", 'item'), - 'Bottle with Blue Fire': (" a conflagration canteen", 'item'), - 'Bottle with Bugs': (" a terrarium", 'item'), - 'Bottle with Poe': (" a spooky ghost", 'item'), - 'Progressive Scale': (" Zora Flippers", 'item'), - 'Stone of Agony': (" an empty chest", 'item'), - 'Eponas Song': (" an equestrian etude", 'item'), - 'Epona': (" a horse", 'item'), - 'Gerudo Membership Card': (" a GT subscription", 'item'), - 'Progressive Wallet': (" a mo' money holder", 'item'), - 'Bolero of Fire': (" a song of lethal lava", 'item'), - 'Suns Song': (" Sunny Day", 'item'), - 'Deku Shield': (" a wooden ward", 'item'), - 'Hylian Shield': (" a steel safeguard", 'item'), - 'Deku Stick Capacity': (" a bundle of sticks", 'item'), - 'Deku Nut Capacity': (" more nuts", 'item'), - 'Prelude of Light': (" a luminous prologue melody", 'item'), - 'Serenade of Water': (" a song of a damp ditch", 'item'), - 'Heart Container': (" a lot of love", 'item'), - 'Piece of Heart': (" love", 'item'), - 'Piece of Heart (Treasure Chest Game)': (" WINNER!", 'item'), - 'Recovery Heart': (" a free heal", 'item'), - 'Rupee (1)': (" rare riches", 'item'), +hintTable = {'Hammer': ("the dragon smasher", 'item'), + 'Magic Meter': ("pixie dust", 'item'), + 'Double Defense': ("a white outline", 'item'), + 'Progressive Hookshot': ("Dampe's Keepsake", 'item'), + 'Progressive Strength Upgrade': ("power gloves", 'item'), + 'Hover Boots': ("butter boots", 'item'), + 'Master Sword': ("evil's bane", 'item'), + 'Mirror Shield': ("the reflective rampart", 'item'), + 'Farores Wind': ("teleportation", 'item'), + 'Nayrus Love': ("a safe space", 'item'), + 'Ice Arrows': ("the refrigerator rocket", 'item'), + 'Lens of Truth': ("the perjurless porthole", 'item'), + 'Dins Fire': ("an inferno", 'item'), + 'Fairy Ocarina': ("a brown flute", 'item'), + 'Goron Tunic': ("ruby robes", 'item'), + 'Zora Tunic': ("a sapphire suit", 'item'), + 'Iron Boots': ("sink shoes", 'item'), + 'Zeldas Letter': ("a signed banana", 'item'), + 'Zeldas Lullaby': ("a song of royal slumber", 'item'), + 'Nocturne of Shadow': ("a song of spooky spirits", 'item'), + 'Bow': ("an archery enabler", 'item'), + 'Bomb Bag': ("an explosive container", 'item'), + 'Sarias Song': ("a song of dancing gorons", 'item'), + 'Song of Time': ("a song 7 years long", 'item'), + 'Song of Storms': ("Rain Dance", 'item'), + 'Minuet of Forest': ("the song of tall trees", 'item'), + 'Requiem of Spirit': ("a song of sandy statues", 'item'), + 'Slingshot': ("a seed shooter", 'item'), + 'Boomerang': ("a banana", 'item'), + 'Fire Arrows': ("the furnace firearm", 'item'), + 'Ocarina of Time': ("blue flute", 'item'), + 'Bottle': ("a fairy prison", 'item'), + 'Bottle with Letter': ("a call for help", 'item'), + 'Bottle with Milk': ("cow juice", 'item'), + 'Bottle with Red Potion': ("a vitality vial", 'item'), + 'Bottle with Green Potion': ("a magic mixture", 'item'), + 'Bottle with Blue Potion': ("an all-cure antidote", 'item'), + 'Bottle with Fairy': ("an imprisoned fairy", 'item'), + 'Bottle with Fish': ("an aquarium", 'item'), + 'Bottle with Blue Fire': ("a conflagration canteen", 'item'), + 'Bottle with Bugs': ("a terrarium", 'item'), + 'Bottle with Poe': ("a spooky ghost", 'item'), + 'Progressive Scale': ("Zora Flippers", 'item'), + 'Stone of Agony': ("an empty chest", 'item'), + 'Eponas Song': ("an equestrian etude", 'item'), + 'Epona': ("a horse", 'item'), + 'Gerudo Membership Card': ("a GT subscription", 'item'), + 'Progressive Wallet': ("a mo' money holder", 'item'), + 'Bolero of Fire': ("a song of lethal lava", 'item'), + 'Suns Song': ("Sunny Day", 'item'), + 'Deku Shield': ("a wooden ward", 'item'), + 'Hylian Shield': ("a steel safeguard", 'item'), + 'Deku Stick Capacity': ("a bundle of sticks", 'item'), + 'Deku Nut Capacity': ("more nuts", 'item'), + 'Prelude of Light': ("a luminous prologue melody", 'item'), + 'Serenade of Water': ("a song of a damp ditch", 'item'), + 'Heart Container': ("a lot of love", 'item'), + 'Piece of Heart': ("love", 'item'), + 'Piece of Heart (Treasure Chest Game)': ("WINNER!", 'item'), + 'Recovery Heart': ("a free heal", 'item'), + 'Rupee (1)': ("rare riches", 'item'), 'Rupees (5)': (" a common coin", 'item'), - 'Rupees (20)': (" couch cash", 'item'), - 'Rupees (50)': (" big bucks", 'item'), - 'Rupees (200)': (" a juicy jackpot", 'item'), - 'Light Arrows': (" the shining shot", 'item'), - 'Kokiri Sword': (" a butter knife", 'item'), - 'Biggoron Sword': (" a shield disabler", 'item'), - 'Pocket Egg': (" a cucco container", 'item'), - 'Weird Egg': (" an unsigned egg", 'item'), - 'Pocket Cucco': (" a little clucker", 'item'), - 'Cojiro': (" a cerulean capon", 'item'), - 'Odd Mushroom': (" a powder ingredient", 'item'), - 'Odd Potion': (" granny's goodies", 'item'), - 'Poachers Saw': (" a tree killer", 'item'), - 'Broken Sword': (" a shattered slicer", 'item'), - 'Prescription': (" a pill pamphlet", 'item'), - 'Eyeball Frog': (" a perceiving polliwog", 'item'), - 'Eyedrops': (" a vision vial", 'item'), - 'Claim Check': (" a three day wait", 'item'), - 'Map': (" a dungeon atlas", 'item'), - 'Compass': (" a treasure tracker", 'item'), - 'BossKey': (" a master of unlocking", 'item'), - 'SmallKey': (" a tool for unlocking", 'item'), - 'useless': (" something worthless", 'item'), - 'Arrows (5)': (" danger darts", 'item'), - 'Arrows (10)': (" danger darts", 'item'), - 'Arrows (30)': (" danger darts", 'item'), - 'Bombs (5)': (" explosives", 'item'), - 'Bombs (10)': (" explosives", 'item'), - 'Bombs (20)': (" lots-o-explosives", 'item'), - 'Ice Trap': (" a gift from Ganon", 'item'), - 'Magic Bean': (" wizardly legumes", 'item'), - 'Bombchus (5)': (" mice bombs", 'item'), - 'Bombchus (10)': (" mice bombs", 'item'), - 'Bombchus (20)': (" mice bombs", 'item'), - 'Deku Nuts (5)': (" some nuts", 'item'), - 'Deku Nuts (10)': (" lots-o-nuts", 'item'), + 'Rupees (20)': ("couch cash", 'item'), + 'Rupees (50)': ("big bucks", 'item'), + 'Rupees (200)': ("a juicy jackpot", 'item'), + 'Light Arrows': ("the shining shot", 'item'), + 'Kokiri Sword': ("a butter knife", 'item'), + 'Biggoron Sword': ("a shield disabler", 'item'), + 'Pocket Egg': ("a cucco container", 'item'), + 'Weird Egg': ("an unsigned egg", 'item'), + 'Pocket Cucco': ("a little clucker", 'item'), + 'Cojiro': ("a cerulean capon", 'item'), + 'Odd Mushroom': ("a powder ingredient", 'item'), + 'Odd Potion': ("granny's goodies", 'item'), + 'Poachers Saw': ("a tree killer", 'item'), + 'Broken Sword': ("a shattered slicer", 'item'), + 'Prescription': ("a pill pamphlet", 'item'), + 'Eyeball Frog': ("a perceiving polliwog", 'item'), + 'Eyedrops': ("a vision vial", 'item'), + 'Claim Check': ("a three day wait", 'item'), + 'Map': ("a dungeon atlas", 'item'), + 'Compass': ("a treasure tracker", 'item'), + 'BossKey': ("a master of unlocking", 'item'), + 'SmallKey': ("a tool for unlocking", 'item'), + 'useless': ("something worthless", 'item'), + 'Arrows (5)': ("danger darts", 'item'), + 'Arrows (10)': ("danger darts", 'item'), + 'Arrows (30)': ("danger darts", 'item'), + 'Bombs (5)': ("explosives", 'item'), + 'Bombs (10)': ("explosives", 'item'), + 'Bombs (20)': ("lots-o-explosives", 'item'), + 'Ice Trap': ("a gift from Ganon", 'item'), + 'Magic Bean': ("wizardly legumes", 'item'), + 'Bombchus (5)': ("mice bombs", 'item'), + 'Bombchus (10)': ("mice bombs", 'item'), + 'Bombchus (20)': ("mice bombs", 'item'), + 'Deku Nuts (5)': ("some nuts", 'item'), + 'Deku Nuts (10)': ("lots-o-nuts", 'item'), #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box '10 Big Poes': ("They say that 10 Big Poes leads&to", 'alwaysLocation'), 'Deku Theater Mask of Truth': ("They say that the Mask of Truth&yields", 'alwaysLocation'), diff --git a/Hints.py b/Hints.py index cbe5cc13d..4e3ea9783 100644 --- a/Hints.py +++ b/Hints.py @@ -152,7 +152,7 @@ def buildGossipHints(world, messages): update_hint(messages, stoneIDs.pop(0), buildHintString(getHint(world.get_location(location).parent_region.dungeon.name).text + \ " is on the way of the hero.")) else: - update_hint(messages, stoneIDs.pop(0), buildHintString(world.get_location(location).parent_region.name + " is on the way of the hero.")) + update_hint(messages, stoneIDs.pop(0), buildHintString(world.get_location(location).parent_region.name + " is on the way of the hero.")) # Don't repeat hints checkedLocations = [] diff --git a/version.py b/version.py index a26be98ba..80bff5f86 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.9.10 f.LUM' \ No newline at end of file +__version__ = '2.9.11 f.LUM' \ No newline at end of file From 039603c13a25f568290cea294b1f2e65acfaf5c4 Mon Sep 17 00:00:00 2001 From: Tek022 Date: Thu, 5 Jul 2018 22:40:20 -0700 Subject: [PATCH 117/755] output_dir scope change allows spoiler log w/o ROM --- Main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Main.py b/Main.py index ff577703f..d89f520cb 100644 --- a/Main.py +++ b/Main.py @@ -66,12 +66,12 @@ def main(settings): logger.info('Patching ROM.') outfilebase = 'OoT_%s_%s' % (world.settings_string, world.seed) + output_dir = default_output_path(settings.output_dir) if not settings.suppress_rom: rom = LocalRom(settings) patch_rom(world, rom) - output_dir = default_output_path(settings.output_dir) rom_path = os.path.join(output_dir, '%s.z64' % outfilebase) rom.write_to_file(rom_path) From 654cf65c4e3d6a0f97b167004d7b6ff757dbaf2f Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Fri, 6 Jul 2018 18:40:07 -0400 Subject: [PATCH 118/755] Fixed Epona spwaning in Hyrule Field before having Epona's Song --- Rom.py | 2 +- version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Rom.py b/Rom.py index 0712a7dc5..fd42e6489 100644 --- a/Rom.py +++ b/Rom.py @@ -1087,7 +1087,7 @@ def write_byte_to_save(offset, value): # Skip Epona race if world.no_epona_race: write_bits_to_save(0x0ED6, 0x01) # "Obtained Epona" - + rom.write_int32(0xAD065C, 0x24020000) # 0C00A22D Don't auto spawn Epona in Hyrule Field # skip castle guard stealth sequence if world.no_guard_stealth: diff --git a/version.py b/version.py index 80bff5f86..86cce96fd 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.9.11 f.LUM' \ No newline at end of file +__version__ = '2.9.12 f.LUM' \ No newline at end of file From 1f7a41b9040fb8ef96e9a5f112804d9a0ea682b5 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Fri, 6 Jul 2018 18:11:44 -0500 Subject: [PATCH 119/755] Added initial_save.asm --- ASM/src/initial_save.asm | 34 ++++++++++++++++++++++++++++++++++ version.py | 2 +- 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 ASM/src/initial_save.asm diff --git a/ASM/src/initial_save.asm b/ASM/src/initial_save.asm new file mode 100644 index 000000000..893f4757f --- /dev/null +++ b/ASM/src/initial_save.asm @@ -0,0 +1,34 @@ +;=========================================== +; Writes extra data to the initial save file +;=========================================== +write_initial_save: + sb a1, 33(s1) ; this was the instruction we replaced to make room for the jump to this function + ; it is writing the Z at the end of ZELDAZ in the save file + ; s1 = pointer to the start of the save file + ; the only registers I have some confidence can be overridden here are: + ; a0, a1, a3, t2, t7, t8, t9, v0, v1, s0 + + ; loop over the save data table + li s0, (INITIAL_SAVE_DATA - 0x04) + +@@save_data_loop: + addiu s0, s0, 0x04 + lw t2, 0x00 (s0) ; t2 = override entry + beqz t2, @@return ; Reached end of save data table + nop + srl t7, t2, 16 + add t7, t7, s1 ; t7 = save data address + andi t8, t2, 0xFF00 + srl t8, t8, 8 ; t8 = write type + bnez t8, @@overwrite_type ; if type is 0, use 'or' type (set bits) otherwise use overwrite type (set byte) + andi t9, t2, 0xFF ; t9 = value to write + lb t2, 0x00 (t7) ; t2 = current saved value + or t9, t9, t2 ; t9 = given value | current saved value + +@@overwrite_type: + j @@save_data_loop + sb t9, 0x00 (t7) ; write the value into the save data + +@@return: + jr ra + nop \ No newline at end of file diff --git a/version.py b/version.py index 86cce96fd..21d85bb5b 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.9.12 f.LUM' \ No newline at end of file +__version__ = '2.9.13 f.LUM' \ No newline at end of file From d88f2fa1e8bd320fc412dbf44dc07de0ad9d20b0 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Sun, 8 Jul 2018 01:56:17 -0400 Subject: [PATCH 120/755] Added option to not remove chest cutscenes. made some items big chests --- ASM/src/extended_items.asm | 24 +++++------ ASM/src/hacks.asm | 6 --- Gui.py | 2 +- Rom.py | 87 ++++++++++++++++++++++++++++++++------ data/base2current.json | 2 +- version.py | 2 +- 6 files changed, 88 insertions(+), 35 deletions(-) diff --git a/ASM/src/extended_items.asm b/ASM/src/extended_items.asm index 954920ddd..7f649f982 100755 --- a/ASM/src/extended_items.asm +++ b/ASM/src/extended_items.asm @@ -98,19 +98,19 @@ Item_Row 0x53, 0x41, 0x1C, 0xA3, 0x00C8, no_upgrade, give_dungeon_item, 0x04, SH Item_Row 0x53, 0x41, 0x1C, 0xA5, 0x00C8, no_upgrade, give_dungeon_item, 0x04, BOTW_ID ; 0xAA = Bottom of the Well Map Item_Row 0x53, 0x41, 0x1C, 0x92, 0x00C8, no_upgrade, give_dungeon_item, 0x04, ICE_ID ; 0xAB = Ice Cavern Map -Item_Row 0x53, 0x41, 0xFE, 0x93, 0x00AA, no_upgrade, give_small_key, FOREST_ID, -1 ; 0xAC = Forest Temple Small Key -Item_Row 0x53, 0x41, 0xFE, 0x94, 0x00AA, no_upgrade, give_small_key, FIRE_ID, -1 ; 0xAD = Fire Temple Small Key -Item_Row 0x53, 0x41, 0xFE, 0x95, 0x00AA, no_upgrade, give_small_key, WATER_ID, -1 ; 0xAE = Water Temple Small Key -Item_Row 0x53, 0x41, 0xFE, 0xA6, 0x00AA, no_upgrade, give_small_key, SPIRIT_ID, -1 ; 0xAF = Spirit Temple Small Key -Item_Row 0x53, 0x41, 0xFE, 0xA9, 0x00AA, no_upgrade, give_small_key, SHADOW_ID, -1 ; 0xB0 = Shadow Temple Small Key -Item_Row 0x53, 0x41, 0xFE, 0x9B, 0x00AA, no_upgrade, give_small_key, BOTW_ID, -1 ; 0xB1 = Bottom of the Well Small Key -Item_Row 0x53, 0x41, 0xFE, 0x9F, 0x00AA, no_upgrade, give_small_key, GTG_ID, -1 ; 0xB2 = Gerudo Training Small Key -Item_Row 0x53, 0x41, 0xFE, 0xA0, 0x00AA, no_upgrade, give_small_key, FORT_ID, -1 ; 0xB3 = Gerudo Fortress Small Key -Item_Row 0x53, 0x41, 0xFE, 0xA1, 0x00AA, no_upgrade, give_small_key, CASTLE_ID, -1 ; 0xB4 = Ganon's Castle Small Key +Item_Row 0x53, 0x41, 0x02, 0x93, 0x00AA, no_upgrade, give_small_key, FOREST_ID, -1 ; 0xAC = Forest Temple Small Key +Item_Row 0x53, 0x41, 0x02, 0x94, 0x00AA, no_upgrade, give_small_key, FIRE_ID, -1 ; 0xAD = Fire Temple Small Key +Item_Row 0x53, 0x41, 0x02, 0x95, 0x00AA, no_upgrade, give_small_key, WATER_ID, -1 ; 0xAE = Water Temple Small Key +Item_Row 0x53, 0x41, 0x02, 0xA6, 0x00AA, no_upgrade, give_small_key, SPIRIT_ID, -1 ; 0xAF = Spirit Temple Small Key +Item_Row 0x53, 0x41, 0x02, 0xA9, 0x00AA, no_upgrade, give_small_key, SHADOW_ID, -1 ; 0xB0 = Shadow Temple Small Key +Item_Row 0x53, 0x41, 0x02, 0x9B, 0x00AA, no_upgrade, give_small_key, BOTW_ID, -1 ; 0xB1 = Bottom of the Well Small Key +Item_Row 0x53, 0x41, 0x02, 0x9F, 0x00AA, no_upgrade, give_small_key, GTG_ID, -1 ; 0xB2 = Gerudo Training Small Key +Item_Row 0x53, 0x41, 0x02, 0xA0, 0x00AA, no_upgrade, give_small_key, FORT_ID, -1 ; 0xB3 = Gerudo Fortress Small Key +Item_Row 0x53, 0x41, 0x02, 0xA1, 0x00AA, no_upgrade, give_small_key, CASTLE_ID, -1 ; 0xB4 = Ganon's Castle Small Key Item_Row 0x53, 0x3D, 0x43, 0x0C, 0x00F8, no_upgrade, give_biggoron_sword, -1, -1 ; 0xB5 = Biggoron Sword -Item_Row 0x4D, 0x83, 0x09, 0x55, 0x00B7, no_upgrade, no_effect, -1, -1 ; 0xB6 = Recovery Heart +Item_Row 0x4D, 0x83, 0xF7, 0x55, 0x00B7, no_upgrade, no_effect, -1, -1 ; 0xB6 = Recovery Heart Item_Row 0x53, 0x92, 0xDB, 0xE6, 0x00D8, arrows_to_rupee, no_effect, -1, -1 ; 0xB7 = Arrows (5) Item_Row 0x53, 0x93, 0xDA, 0xE6, 0x00D8, arrows_to_rupee, no_effect, -1, -1 ; 0xB8 = Arrows (10) Item_Row 0x53, 0x94, 0xD9, 0xE6, 0x00D8, arrows_to_rupee, no_effect, -1, -1 ; 0xB9 = Arrows (30) @@ -121,8 +121,8 @@ Item_Row 0x53, 0x8C, 0xEE, 0x34, 0x00BB, no_upgrade, no_effect, -1, -1 ; 0x Item_Row 0x53, 0x8D, 0xEE, 0x34, 0x00BB, no_upgrade, no_effect, -1, -1 ; 0xBE = Deku Nuts (10) Item_Row 0x4F, 0x41, 0x13, 0xE9, 0x00BD, no_upgrade, give_defense, -1, -1 ; 0xBF = Double Defense -Item_Row 0x4F, 0x41, 0xE2, 0xE4, 0x00CD, magic_upgrade, give_magic, -1, -1 ; 0xC0 = Progressive Magic Meter -Item_Row 0x4F, 0x41, 0xE1, 0xE8, 0x00CD, no_upgrade, double_magic, -1, -1 ; 0xC1 = Double Magic +Item_Row 0x4F, 0x41, 0x1E, 0xE4, 0x00CD, magic_upgrade, give_magic, -1, -1 ; 0xC0 = Progressive Magic Meter +Item_Row 0x4F, 0x41, 0x1F, 0xE8, 0x00CD, no_upgrade, double_magic, -1, -1 ; 0xC1 = Double Magic ;================================================================================================== ; Item upgrade functions diff --git a/ASM/src/hacks.asm b/ASM/src/hacks.asm index b1d452892..0a90addd8 100755 --- a/ASM/src/hacks.asm +++ b/ASM/src/hacks.asm @@ -1,9 +1,3 @@ -; Make all chest opening animations fast -; Replaces: -; lb t2, 0x0002 (t1) -.org 0xBDA2E8 ; In memory: 0x803952D8 - addiu t2, r0, -1 - ; Prevent Kokiri Sword from being added to inventory on game load ; Replaces: ; sh t9, 0x009C (v0) diff --git a/Gui.py b/Gui.py index 354494d43..a649efe8c 100644 --- a/Gui.py +++ b/Gui.py @@ -332,7 +332,7 @@ def generateRom(): generateButton = Button(generateSeedFrame, text='Generate Patched Rom', command=generateRom) - seedLabel = Label(generateSeedFrame, text='Seed #') + seedLabel = Label(generateSeedFrame, text='Seed') guivars['seed'] = StringVar() seedEntry = Entry(generateSeedFrame, textvariable=guivars['seed']) seedLabel.pack(side=LEFT) diff --git a/Rom.py b/Rom.py index fd42e6489..66b96b7bc 100644 --- a/Rom.py +++ b/Rom.py @@ -1017,6 +1017,10 @@ def write_byte_to_save(offset, value): write_bits_to_save(0x0EEB, 0x02) # "Entered Lake Hylia" write_bits_to_save(0x0EEB, 0x01) # "Entered Dodongo's Cavern" + # Make all chest opening animations fast + if world.fast_chests: + rom.write_int32(0xBDA2E8, 0x240AFFFF) # addiu t2, r0, -1 + # replaces # lb t2, 0x0002 (t1) # Set up for Rainbow Bridge dungeons condition Block_code = [0x15, 0x41, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x80, 0xEA, 0x00, 0xA5, @@ -1125,12 +1129,6 @@ def write_byte_to_save(offset, value): # Write item overrides rom.write_bytes(0x3481000, get_override_table(world)) - # Update chest type sizes - if world.correct_chest_sizes: - for address, chestType in get_new_chest_type_table(world): - chestVal = rom.read_int16(address) & 0x0FFF - rom.write_int16(address, chestVal | chestType) - # Set Default targeting option to Hold if world.default_targeting == 'hold': rom.write_bytes(0xB07200, [0x20, 0x0C, 0x00, 0x01 ]) @@ -1238,6 +1236,34 @@ def write_byte_to_save(offset, value): rbl_bombchu.description_message = 0x80FE rbl_bombchu.purchase_message = 0x80FF + #Fix bombchu chest animations + chestAnimations = { + 0x6A: 0x18, #0xD8 #Bombchu (5) + 0x03: 0x18, #0xD8 #Bombchu (10) + 0x6B: 0x18, #0xD8 #Bombchu (20) + } + for item_id, gfx_id in chestAnimations.items(): + rom.write_byte(0xBEEE8E + (item_id * 6) + 2, gfx_id) + + #Fix item chest animations + chestAnimations = { + 0x3D: 0xED, #0x13 #Heart Container + 0x3E: 0xEC, #0x14 #Piece of Heart + 0x42: 0x02, #0xFE #Small Key + 0x48: 0xF7, #0x09 #Recovery Heart + 0x4F: 0xED, #0x13 #Heart Container + } + for item_id, gfx_id in chestAnimations.items(): + rom.write_byte(0xBEEE8E + (item_id * 6) + 2, gfx_id) + + + + # Update chest type sizes + if world.correct_chest_sizes: + for address, chestType in get_new_chest_type_table(rom, world): + chestVal = rom.read_int16(address) & 0x0FFF + rom.write_int16(address, chestVal | chestType) + # give dungeon items the correct messages message_patch_for_dungeon_items(rom, messages, shop_items) @@ -1413,15 +1439,37 @@ def get_override_entry(location): 0xF000: [0x5000, 0x0000, 0x2000], #Large } -def get_new_chest_type_table(world): +chestAnimationExtendedFast = [ + 0xB6, # Recovery Heart + 0xB7, # Arrows (5) + 0xB8, # Arrows (10) + 0xB9, # Arrows (30) + 0xBA, # Bombs (5) + 0xBB, # Bombs (10) + 0xBC, # Bombs (20) + 0xBD, # Deku Nuts (5) + 0xBE, # Deku Nuts (10) +] + + +global smallCount +global bigCount +def get_new_chest_type_table(rom, world): + global smallCount + global bigCount chest_type_entries = [] + smallCount = 0 + bigCount = 0 for location in world.get_locations(): - (address, chestType) = get_new_chest_type_entry(location) + (address, chestType) = get_new_chest_type_entry(rom, location) if address != None: chest_type_entries.append((address, chestType)) + print(smallCount, bigCount) return chest_type_entries -def get_new_chest_type_entry(location): +def get_new_chest_type_entry(rom, location): + global smallCount + global bigCount address = location.address scene = location.scene default = location.default @@ -1430,11 +1478,22 @@ def get_new_chest_type_entry(location): if None in [address, scene, default, item_id]: return (None, None) - itemType = 0 - if location.item.key: - itemType = 2 - elif location.item.advancement: - itemType = 1 + itemType = 0 # Item animation + + if item_id >= 0x80: # if extended item, always big except from exception list + itemType = 0 if item_id in chestAnimationExtendedFast else 1 + elif rom.read_byte(0xBEEE8E + (item_id * 6) + 2) & 0x80: # get animation from rom, ice trap is big + itemType = 0 # No animation, small chest + else: + itemType = 1 # Long animation, big chest + # Don't use boss chests + + if itemType == 0: + smallCount = smallCount + 1 + print(location.item.name, item_id) + else: + bigCount = bigCount + 1 + if location.type == 'Chest': chestType = default & 0xF000 diff --git a/data/base2current.json b/data/base2current.json index d884e8972..c6b392abf 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -1 +1 @@ -[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 20]}, {"11325064": [12, 16, 10, 236, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 11, 63]}, {"11427312": [12, 16, 11, 232]}, {"11562028": [12, 16, 12, 9]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 11, 248]}, {"11882076": [12, 16, 11, 213]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 11, 30, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 11, 37, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 11, 44, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 11, 23, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 9, 228]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 9, 177]}, {"12427480": [12, 16, 9, 206]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 9, 210]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12428008": [36, 10, 255, 255]}, {"12474768": [12, 16, 10, 244, 0, 0, 0, 0]}, {"12491456": [12, 16, 9, 240]}, {"12491480": [12, 16, 9, 249]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 10, 193]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 11, 51]}, {"14357459": [118]}, {"14624335": [118]}, {"14872723": [52]}, {"15506663": [122]}, {"55057408": [90, 93, 92, 94, 81, 82, 83]}, {"55058464": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 72, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 100, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 140, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 180, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 220, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 4, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 32, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 60, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 88, 83, 65, 1, 67]}, {"55058613": [198, 21, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 68]}, {"55058629": [198, 22, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 69]}, {"55058645": [198, 23, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 70]}, {"55058661": [198, 24, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 71]}, {"55058677": [198, 25, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 93]}, {"55058693": [198, 28, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 122]}, {"55058709": [198, 29, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 249]}, {"55058725": [198, 30, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 151]}, {"55058741": [198, 32, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 10, 6]}, {"55058757": [185, 1, 3, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 28]}, {"55058773": [185, 1, 4, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 29]}, {"55058789": [185, 1, 5, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 30]}, {"55058805": [185, 1, 6, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 42]}, {"55058821": [185, 1, 7, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 97]}, {"55058837": [185, 1, 10, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 98]}, {"55058853": [184, 2]}, {"55058856": [128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 99]}, {"55058869": [184, 2, 1, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 100]}, {"55058885": [184, 2, 2, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 101]}, {"55058901": [184, 2, 3, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 124]}, {"55058917": [184, 2, 4, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 125]}, {"55058933": [184, 2, 5, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 126]}, {"55058949": [184, 2, 6, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 127]}, {"55058965": [184, 2, 7, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 162]}, {"55058981": [184, 2, 8, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 135]}, {"55058997": [184, 2, 9, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 136]}, {"55059013": [200, 4]}, {"55059016": [128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 137]}, {"55059029": [200, 4, 1, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 138]}, {"55059045": [200, 4, 2, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 139]}, {"55059061": [200, 4, 3, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 140]}, {"55059077": [200, 4, 4, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 142]}, {"55059093": [200, 4, 5, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 143]}, {"55059109": [200, 4, 6, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 163]}, {"55059125": [200, 4, 7, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 165]}, {"55059141": [200, 4, 8, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 146]}, {"55059157": [200, 4, 9, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 254, 147]}, {"55059173": [170, 3, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 148]}, {"55059189": [170, 4, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 149]}, {"55059205": [170, 5, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 166]}, {"55059221": [170, 6, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 169]}, {"55059237": [170, 7, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 155]}, {"55059253": [170, 8, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 159]}, {"55059269": [170, 11, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 160]}, {"55059285": [170, 12, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 161]}, {"55059301": [170, 13, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 61, 67, 12]}, {"55059317": [248, 255, 255, 128, 64, 37, 204, 128, 64, 36, 64, 77, 131, 9, 85]}, {"55059333": [183, 255, 255, 128, 64, 37, 196, 128, 64, 36, 64, 83, 146, 219, 230]}, {"55059349": [216, 255, 255, 128, 64, 37, 196, 128, 64, 37, 140, 83, 147, 218, 230]}, {"55059365": [216, 255, 255, 128, 64, 37, 196, 128, 64, 37, 140, 83, 148, 217, 230]}, {"55059381": [216, 255, 255, 128, 64, 37, 196, 128, 64, 37, 140, 83, 142, 224, 50]}, {"55059397": [206, 255, 255, 128, 64, 37, 196, 128, 64, 37, 168, 83, 143, 224, 50]}, {"55059413": [206, 255, 255, 128, 64, 37, 196, 128, 64, 37, 168, 83, 144, 224, 50]}, {"55059429": [206, 255, 255, 128, 64, 37, 196, 128, 64, 37, 168, 83, 140, 238, 52]}, {"55059445": [187, 255, 255, 128, 64, 37, 196, 128, 64, 36, 64, 83, 141, 238, 52]}, {"55059461": [187, 255, 255, 128, 64, 37, 196, 128, 64, 36, 64, 79, 65, 19, 233]}, {"55059477": [189, 255, 255, 128, 64, 38, 92, 128, 64, 36, 64, 79, 65, 226, 228]}, {"55059493": [205, 255, 255, 128, 64, 38, 124, 128, 64, 37, 116, 79, 65, 225, 232]}, {"55059509": [205, 255, 255, 128, 64, 38, 156, 128, 64, 36, 64, 3, 224]}, {"55059523": [8, 52, 162]}, {"55059528": [144, 136]}, {"55059531": [125, 52, 1]}, {"55059535": [255, 17, 1]}, {"55059539": [2, 52, 2]}, {"55059543": [8, 52, 2]}, {"55059547": [9, 3, 224]}, {"55059551": [8]}, {"55059556": [144, 136]}, {"55059559": [163, 49, 8]}, {"55059563": [192, 17]}, {"55059567": [5, 52, 2]}, {"55059571": [84, 52, 1]}, {"55059575": [64, 17, 1]}, {"55059579": [2, 52, 2]}, {"55059583": [53, 52, 2]}, {"55059587": [54, 3, 224]}, {"55059591": [8]}, {"55059596": [144, 136]}, {"55059599": [163, 49, 8]}, {"55059603": [24, 17]}, {"55059607": [5, 52, 2]}, {"55059611": [50, 52, 1]}, {"55059615": [8, 17, 1]}, {"55059619": [2, 52, 2]}, {"55059623": [51, 52, 2]}, {"55059627": [52, 3, 224]}, {"55059631": [8]}, {"55059636": [144, 136]}, {"55059639": [163, 49, 8]}, {"55059643": [3, 17]}, {"55059647": [5, 52, 2]}, {"55059651": [4, 52, 1]}, {"55059655": [1, 17, 1]}, {"55059659": [2, 52, 2]}, {"55059663": [48, 52, 2]}, {"55059667": [49, 3, 224]}, {"55059671": [8]}, {"55059676": [144, 136]}, {"55059679": [162, 49, 8]}, {"55059683": [192, 17]}, {"55059687": [5, 52, 2]}, {"55059691": [5, 52, 1]}, {"55059695": [64, 17, 1]}, {"55059699": [2, 52, 2]}, {"55059703": [96, 52, 2]}, {"55059707": [123, 3, 224]}, {"55059711": [8]}, {"55059716": [144, 136]}, {"55059719": [162, 49, 8]}, {"55059723": [48, 17]}, {"55059727": [2, 52, 2]}, {"55059731": [69, 52, 2]}, {"55059735": [70, 3, 224]}, {"55059739": [8]}, {"55059744": [144, 136]}, {"55059747": [162, 49, 8]}, {"55059751": [6, 17]}, {"55059755": [2, 52, 2]}, {"55059759": [55, 52, 2]}, {"55059763": [56, 3, 224]}, {"55059767": [8]}, {"55059772": [144, 136]}, {"55059775": [161, 49, 8]}, {"55059779": [32, 17]}, {"55059783": [2, 52, 2]}, {"55059787": [121, 52, 2]}, {"55059791": [122, 3, 224]}, {"55059795": [8]}, {"55059800": [144, 136]}, {"55059803": [161, 49, 8]}, {"55059807": [4, 17]}, {"55059811": [2, 52, 2]}, {"55059815": [119, 52, 2]}, {"55059819": [120, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [50, 17]}, {"55059835": [2, 52, 2]}, {"55059839": [192, 52, 2]}, {"55059843": [193, 3, 224]}, {"55059847": [8]}, {"55059852": [144, 136]}, {"55059855": [163, 49, 8]}, {"55059859": [3, 17]}, {"55059863": [2, 52, 2]}, {"55059867": [77, 52, 162]}, {"55059872": [3, 224]}, {"55059875": [8]}, {"55059880": [144, 136]}, {"55059883": [163, 49, 8]}, {"55059887": [24, 17]}, {"55059891": [2, 52, 2]}, {"55059895": [77, 52, 162]}, {"55059900": [3, 224]}, {"55059903": [8]}, {"55059908": [3, 224]}, {"55059911": [8]}, {"55059916": [52, 8]}, {"55059919": [1, 160, 136]}, {"55059923": [62, 3, 224]}, {"55059927": [8]}, {"55059932": [36, 136]}, {"55059935": [134, 36, 9, 255, 255, 37, 41]}, {"55059943": [1, 52, 1]}, {"55059947": [3]}, {"55059949": [41, 8, 42, 20, 32]}, {"55059955": [7]}, {"55059960": [1, 9, 80, 33, 145, 75]}, {"55059968": [52, 1]}, {"55059971": [255, 21, 97, 255, 247]}, {"55059980": [161, 69]}, {"55059984": [3, 224]}, {"55059987": [8]}, {"55059992": [36, 136]}, {"55059995": [168, 1, 6, 64, 33, 145, 9]}, {"55060004": [1, 37, 72, 37, 161, 9]}, {"55060012": [3, 224]}, {"55060015": [8]}, {"55060020": [36, 136]}, {"55060023": [188, 1, 5, 64, 33, 129, 9]}, {"55060032": [5, 33]}, {"55060035": [2]}, {"55060040": [52, 9]}, {"55060044": [37, 41]}, {"55060047": [1, 161, 9]}, {"55060052": [3, 224]}, {"55060055": [8]}, {"55060060": [52, 8]}, {"55060063": [1, 160, 136]}, {"55060067": [61, 52, 8]}, {"55060071": [20, 160, 136]}, {"55060075": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060087": [8]}, {"55060092": [52, 8]}, {"55060095": [1, 160, 136]}, {"55060099": [50, 160, 136]}, {"55060103": [58, 52, 8]}, {"55060107": [48, 164, 136, 19, 244, 160, 136]}, {"55060115": [51, 3, 224]}, {"55060119": [8]}, {"55060124": [52, 8]}, {"55060127": [2, 160, 136]}, {"55060131": [50, 52, 8]}, {"55060135": [1, 160, 136]}, {"55060139": [58, 160, 136]}, {"55060143": [60, 52, 8]}, {"55060147": [96, 164, 136, 19, 244, 160, 136]}, {"55060155": [51, 3, 224]}, {"55060159": [8]}, {"55060164": [48, 132]}, {"55060167": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060179": [140, 16, 129]}, {"55060183": [22, 145, 2]}, {"55060187": [117, 52, 1]}, {"55060191": [141, 16, 129]}, {"55060195": [19, 145, 2]}, {"55060199": [117, 16, 128]}, {"55060203": [17, 145, 2]}, {"55060207": [116, 52, 1]}, {"55060211": [138, 16, 129]}, {"55060215": [14, 145, 2]}, {"55060219": [116, 52, 1]}, {"55060223": [139, 16, 129]}, {"55060227": [11, 145, 2]}, {"55060231": [116, 52, 1]}, {"55060235": [88, 16, 129]}, {"55060239": [8, 52, 2]}, {"55060244": [52, 1]}, {"55060247": [120, 16, 129]}, {"55060251": [5, 52, 2]}, {"55060256": [52, 1]}, {"55060259": [121, 16, 129]}, {"55060263": [2, 52, 2]}, {"55060268": [52, 2]}, {"55060271": [255, 3, 224]}, {"55060275": [8]}, {"55060280": [143, 166]}, {"55060283": [48, 132, 197]}, {"55060287": [4, 8, 16, 9, 214]}, {"55060296": [143, 185]}, {"55060299": [44, 135, 37]}, {"55060303": [4, 8, 16, 9, 214]}, {"55060312": [60, 10, 128, 64, 37, 74, 32]}, {"55060320": [141, 75]}, {"55060323": [12, 17, 96]}, {"55060327": [2]}, {"55060332": [149, 69]}, {"55060335": [4, 60, 10, 128, 64, 37, 74, 32, 16, 161, 64]}, {"55060348": [60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060360": [3, 224]}, {"55060363": [8]}, {"55060368": [60, 8, 128, 64, 37, 8, 32]}, {"55060376": [141, 9]}, {"55060379": [12, 17, 32]}, {"55060383": [2]}, {"55060388": [129, 3]}, {"55060391": [2]}, {"55060393": [3, 15, 195]}, {"55060397": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55060411": [8]}, {"55060416": [144, 69]}, {"55060419": [3, 60, 8, 128, 64, 37, 8, 32]}, {"55060428": [141, 9]}, {"55060431": [12, 17, 32]}, {"55060435": [2]}, {"55060440": [145, 5]}, {"55060443": [3, 3, 224]}, {"55060447": [8]}, {"55060452": [143, 162]}, {"55060455": [36, 144, 69]}, {"55060460": [60, 8, 128, 64, 37, 8, 32]}, {"55060468": [141, 9]}, {"55060471": [12, 17, 32]}, {"55060475": [19]}, {"55060480": [145, 5]}, {"55060483": [1, 175, 164]}, {"55060488": [175, 165]}, {"55060491": [4, 175, 166]}, {"55060495": [8, 39, 189, 255, 232, 175, 191]}, {"55060503": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55060515": [6, 145, 6]}, {"55060519": [7, 141, 9]}, {"55060523": [8, 1, 32, 248, 9]}, {"55060532": [143, 191]}, {"55060535": [16, 39, 189]}, {"55060539": [24, 143, 164]}, {"55060544": [143, 165]}, {"55060547": [4, 143, 166]}, {"55060551": [8, 3, 224]}, {"55060555": [8]}, {"55060560": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55060571": [16, 175, 163]}, {"55060575": [20, 175, 191]}, {"55060579": [24, 12, 16, 10, 33]}, {"55060588": [143, 162]}, {"55060591": [16, 143, 163]}, {"55060595": [20, 143, 191]}, {"55060599": [24, 39, 189]}, {"55060603": [32, 3, 224]}, {"55060607": [8]}, {"55060612": [39, 189, 255, 232, 175, 191]}, {"55060619": [16, 60, 8, 128, 64, 37, 8, 32]}, {"55060628": [173]}, {"55060632": [173]}, {"55060635": [4, 173]}, {"55060639": [8, 173]}, {"55060643": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55060659": [42]}, {"55060665": [9, 15, 195, 1, 33, 32, 38]}, {"55060673": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 91]}, {"55060688": [4, 64]}, {"55060691": [34]}, {"55060696": [52, 68]}, {"55060700": [12, 16, 10, 160]}, {"55060708": [16, 96]}, {"55060711": [12]}, {"55060716": [60, 8, 128, 64, 37, 8, 32]}, {"55060724": [140, 105]}, {"55060728": [173, 9]}, {"55060732": [140, 105]}, {"55060735": [4, 173, 9]}, {"55060739": [4, 140, 105]}, {"55060743": [8, 173, 9]}, {"55060747": [8, 52, 9]}, {"55060751": [1, 173, 9]}, {"55060755": [12, 144, 98]}, {"55060760": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55060776": [52, 1]}, {"55060779": [10, 21, 65]}, {"55060783": [6]}, {"55060788": [149, 42]}, {"55060791": [28, 49, 74, 240, 31]}, {"55060797": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55060807": [28, 129, 9, 4, 36, 5, 33]}, {"55060815": [2]}, {"55060821": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55060831": [16, 39, 189]}, {"55060835": [24, 3, 224]}, {"55060839": [8]}, {"55060844": [39, 189, 255, 232, 175, 191]}, {"55060851": [16, 12, 16, 10, 105]}, {"55060860": [36, 1, 255, 255, 16, 65]}, {"55060867": [4]}, {"55060872": [52, 68]}, {"55060876": [12, 16, 10, 147]}, {"55060884": [143, 191]}, {"55060887": [16, 39, 189]}, {"55060891": [24, 3, 224]}, {"55060895": [8]}, {"55060900": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55060911": [164, 52, 8]}, {"55060916": [52, 137]}, {"55060920": [148, 170]}, {"55060924": [52, 1]}, {"55060927": [10, 21, 65]}, {"55060931": [14]}, {"55060936": [148, 171]}, {"55060939": [28, 52, 1]}, {"55060943": [16, 20, 65]}, {"55060947": [8]}, {"55060952": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55060963": [4]}, {"55060968": [36, 2, 255, 255, 16]}, {"55060975": [21]}, {"55060980": [52, 8]}, {"55060983": [1, 49, 105]}, {"55060987": [31, 52, 1]}, {"55060991": [21, 21, 65]}, {"55060995": [12]}, {"55061000": [52, 1]}, {"55061003": [62, 16, 129]}, {"55061007": [7]}, {"55061012": [52, 1]}, {"55061015": [66, 16, 129]}, {"55061019": [4]}, {"55061024": [36, 2, 255, 255, 16]}, {"55061031": [7]}, {"55061036": [52, 8]}, {"55061039": [2, 144, 169, 1, 65]}, {"55061045": [2, 18]}, {"55061049": [72, 16, 37]}, {"55061053": [2, 18]}, {"55061057": [73, 16, 37, 3, 224]}, {"55061063": [8]}, {"55061068": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061083": [4, 141, 9]}, {"55061088": [17, 32]}, {"55061091": [5]}, {"55061097": [9, 82, 2, 21, 68, 255, 250]}, {"55061108": [49, 34]}, {"55061111": [255, 3, 224]}, {"55061115": [8]}, {"55061120": [39, 189, 255, 224, 175, 176]}, {"55061127": [16, 175, 177]}, {"55061131": [20, 175, 191]}, {"55061135": [24, 52, 130]}, {"55061140": [52, 80]}, {"55061144": [38, 8, 255, 128, 5]}, {"55061151": [18]}, {"55061156": [60, 17, 128, 64, 38, 49, 32, 32, 52, 9]}, {"55061167": [16, 1, 9]}, {"55061171": [24]}, {"55061174": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061192": [142, 40]}, {"55061195": [12, 1]}, {"55061198": [248, 9]}, {"55061204": [20, 80, 255, 239]}, {"55061212": [54, 35]}, {"55061216": [16]}, {"55061219": [2]}, {"55061224": [52, 3]}, {"55061228": [143, 176]}, {"55061231": [16, 143, 177]}, {"55061235": [20, 143, 191]}, {"55061239": [24, 39, 189]}, {"55061243": [32, 3, 224]}, {"55061247": [8]}, {"55061252": [140, 136, 29, 44, 52, 9]}, {"55061259": [1]}, {"55061261": [9, 78]}, {"55061264": [1, 9, 16, 36, 16, 64]}, {"55061271": [36]}, {"55061276": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55061291": [164, 52, 1]}, {"55061295": [61, 17, 129]}, {"55061299": [10]}, {"55061305": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55061315": [25]}, {"55061320": [52, 13]}, {"55061323": [1, 161, 141, 29, 40, 37, 74]}, {"55061331": [3, 16]}, {"55061335": [9]}, {"55061340": [52, 12]}, {"55061343": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55061359": [14]}, {"55061364": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 1, 1, 10, 64, 33, 129, 8]}, {"55061400": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061412": [52, 2]}, {"55061416": [3, 224]}, {"55061419": [8]}, {"55061424": [60, 8, 128, 64, 37, 8, 28]}, {"55061432": [129, 8]}, {"55061436": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061448": [3, 224]}, {"55061451": [8]}, {"55061456": [175, 164]}, {"55061459": [104, 175, 165]}, {"55061463": [108, 175, 166]}, {"55061467": [112, 175, 167]}, {"55061471": [116, 39, 189, 255, 232, 175, 163]}, {"55061479": [16, 175, 191]}, {"55061483": [20, 60, 8, 128, 64, 37, 8, 32, 16, 129, 8]}, {"55061496": [17]}, {"55061499": [14]}, {"55061504": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55061515": [1, 165, 42]}, {"55061520": [60, 9, 128, 65, 52, 10]}, {"55061527": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 33]}, {"55061556": [143, 163]}, {"55061559": [16, 143, 191]}, {"55061563": [20, 39, 189]}, {"55061567": [24, 143, 164]}, {"55061571": [104, 143, 165]}, {"55061575": [108, 143, 166]}, {"55061579": [112, 143, 167]}, {"55061583": [116, 132, 110, 19, 196, 3, 224]}, {"55061591": [8]}, {"55061596": [147, 25]}, {"55061599": [116, 52, 1]}, {"55061603": [255, 23, 33]}, {"55061607": [2]}, {"55061612": [52, 25]}, {"55061615": [44, 3, 224]}, {"55061619": [8, 167, 185]}, {"55061623": [154, 147, 44]}, {"55061627": [116, 52, 1]}, {"55061631": [255, 21, 129]}, {"55061635": [2]}, {"55061640": [52, 12]}, {"55061643": [44, 3, 224]}, {"55061647": [8]}, {"55061652": [145, 174]}, {"55061655": [116, 52, 1]}, {"55061659": [255, 21, 193]}, {"55061663": [2]}, {"55061668": [52, 14]}, {"55061671": [44, 3, 224]}, {"55061675": [8, 167, 174]}, {"55061679": [154, 145, 207]}, {"55061683": [116, 52, 1]}, {"55061687": [255, 21, 225]}, {"55061691": [2]}, {"55061696": [52, 15]}, {"55061699": [44, 3, 224]}, {"55061703": [8, 167, 175]}, {"55061707": [154, 60, 8, 128, 64, 37, 8, 32, 20, 142, 9]}, {"55061719": [104, 173, 9]}, {"55061724": [142, 9]}, {"55061727": [108, 173, 9]}, {"55061731": [4, 150, 9]}, {"55061735": [112, 165, 9]}, {"55061739": [8, 150, 9]}, {"55061743": [156, 165, 9]}, {"55061747": [10, 3, 224]}, {"55061751": [8, 142, 14]}, {"55061755": [4, 39, 189, 255, 224, 175, 176]}, {"55061763": [16, 175, 177]}, {"55061767": [20, 175, 191]}, {"55061771": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 20, 142, 8]}, {"55061791": [4, 17]}, {"55061795": [5]}, {"55061800": [12, 16, 11, 105]}, {"55061808": [16]}, {"55061811": [3]}, {"55061816": [12, 16, 11, 124]}, {"55061824": [12, 16, 11, 92, 52, 4]}, {"55061832": [12, 16, 11, 92, 52, 4]}, {"55061839": [1, 12, 16, 11, 92, 52, 4]}, {"55061847": [2, 143, 176]}, {"55061851": [16, 143, 177]}, {"55061855": [20, 143, 191]}, {"55061859": [24, 39, 189]}, {"55061863": [32, 3, 224]}, {"55061867": [8]}, {"55061872": [2, 4, 64, 33, 145, 9]}, {"55061879": [108, 52, 1]}, {"55061883": [255, 17, 33]}, {"55061887": [7]}, {"55061892": [2, 9, 72, 33, 145, 41]}, {"55061899": [116, 52, 1]}, {"55061903": [44, 17, 33]}, {"55061907": [2]}, {"55061912": [161, 9]}, {"55061915": [105, 3, 224]}, {"55061919": [8]}, {"55061924": [39, 189, 255, 232, 175, 191]}, {"55061931": [16, 142, 40]}, {"55061936": [174, 8]}, {"55061939": [64, 142, 40]}, {"55061943": [4, 174, 8]}, {"55061947": [68, 150, 40]}, {"55061951": [8, 166, 8]}, {"55061955": [72, 162]}, {"55061958": [15, 51, 146, 8]}, {"55061963": [74, 52, 1]}, {"55061967": [255, 21, 1]}, {"55061971": [3]}, {"55061976": [12, 16, 11, 138]}, {"55061984": [143, 191]}, {"55061987": [16, 39, 189]}, {"55061991": [24, 3, 224]}, {"55061995": [8]}, {"55062000": [142, 8]}, {"55062003": [64, 174, 8]}, {"55062007": [104, 142, 8]}, {"55062011": [68, 174, 8]}, {"55062015": [108, 150, 8]}, {"55062019": [72, 166, 8]}, {"55062023": [112, 146, 8]}, {"55062027": [104, 52, 1]}, {"55062031": [255, 21, 1]}, {"55062035": [3]}, {"55062040": [52, 8]}, {"55062043": [1, 162, 8, 15, 51, 3, 224]}, {"55062051": [8]}, {"55062056": [39, 189, 255, 232, 175, 191]}, {"55062063": [16, 150, 8]}, {"55062067": [156, 49, 8]}, {"55062071": [64, 17]}, {"55062075": [5]}, {"55062080": [150, 8]}, {"55062083": [112, 49, 8, 255, 15, 53, 8]}, {"55062091": [48, 166, 8]}, {"55062095": [112, 146, 40]}, {"55062099": [1, 162, 8]}, {"55062103": [105, 150, 40]}, {"55062107": [2, 166, 8]}, {"55062111": [106, 142, 40]}, {"55062115": [4, 174, 8]}, {"55062119": [108, 12, 16, 11, 164, 52, 4]}, {"55062128": [12, 16, 11, 164, 52, 4]}, {"55062135": [1, 12, 16, 11, 164, 52, 4]}, {"55062143": [2, 143, 191]}, {"55062147": [16, 39, 189]}, {"55062151": [24, 3, 224]}, {"55062155": [8]}, {"55062160": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 47, 60, 145, 10]}, {"55062175": [108, 52, 1]}, {"55062179": [255, 17, 65]}, {"55062183": [5]}, {"55062188": [1, 42, 72, 33, 145, 41]}, {"55062196": [21, 32]}, {"55062199": [28]}, {"55062204": [60, 9, 128, 64, 37, 41, 47, 47, 37, 41]}, {"55062215": [1, 145, 42]}, {"55062220": [17, 64]}, {"55062223": [19]}, {"55062228": [2, 10, 88, 33, 145, 107]}, {"55062235": [116, 52, 1]}, {"55062239": [255, 17, 97, 255, 248]}, {"55062248": [146, 12]}, {"55062251": [108, 17, 138, 255, 245]}, {"55062260": [146, 12]}, {"55062263": [109, 17, 138, 255, 242]}, {"55062272": [146, 12]}, {"55062275": [110, 17, 138, 255, 239]}, {"55062284": [161, 11]}, {"55062287": [105, 161, 10]}, {"55062291": [108, 16]}, {"55062295": [4]}, {"55062300": [52, 9]}, {"55062303": [255, 161, 9]}, {"55062307": [105, 161, 9]}, {"55062311": [108, 3, 224]}, {"55062315": [8]}, {"55062320": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55062333": [1, 1, 1, 1, 1]}, {"55062339": [1, 1, 1, 1, 1]}, {"55062345": [1]}, {"55062347": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55062357": [51, 8, 33, 32, 15]}, {"55062363": [71, 21, 234]}, {"55062367": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062379": [164]}, {"55062381": [15, 122, 3, 20, 64]}, {"55062387": [5, 52, 2, 72, 48, 21, 226]}, {"55062395": [7]}, {"55062400": [36, 25]}, {"55062403": [3, 16]}, {"55062407": [4, 52, 2, 99, 17, 21, 226]}, {"55062415": [2]}, {"55062420": [36, 25]}, {"55062423": [3, 3, 224]}, {"55062427": [8]}, {"55062432": [141, 173, 138, 160, 52, 2, 128]}, {"55062440": [16, 77]}, {"55062443": [2]}, {"55062448": [16]}, {"55062451": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55062467": [1, 16, 64]}, {"55062471": [2]}, {"55062476": [16]}, {"55062479": [2, 52, 2]}, {"55062483": [1, 161, 226, 28, 191, 3, 224]}, {"55062491": [8]}, {"55062497": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062511": [164]}, {"55062513": [15, 122, 3, 20, 64]}, {"55062519": [5, 52, 2, 72, 48, 21, 226]}, {"55062527": [7]}, {"55062532": [36, 25]}, {"55062535": [3, 16]}, {"55062539": [4, 52, 2, 99, 17, 21, 226]}, {"55062547": [2]}, {"55062552": [36, 25]}, {"55062555": [3, 3, 224]}, {"55062559": [8]}, {"55062564": [162, 37]}, {"55062567": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55062579": [4, 142, 10]}, {"55062584": [17, 64]}, {"55062587": [11]}, {"55062593": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55062605": [24, 194, 2, 23]}, {"55062611": [3, 49, 89]}, {"55062615": [255, 129, 234]}, {"55062620": [3, 42, 200, 37, 8, 16, 12, 12, 161, 249]}, {"55062632": [3, 224]}, {"55062635": [8]}] \ No newline at end of file +[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 20]}, {"11325064": [12, 16, 10, 236, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 11, 63]}, {"11427312": [12, 16, 11, 232]}, {"11562028": [12, 16, 12, 9]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 11, 248]}, {"11882076": [12, 16, 11, 213]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 11, 30, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 11, 37, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 11, 44, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 11, 23, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 9, 228]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 9, 177]}, {"12427480": [12, 16, 9, 206]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 9, 210]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 10, 244, 0, 0, 0, 0]}, {"12491456": [12, 16, 9, 240]}, {"12491480": [12, 16, 9, 249]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 10, 193]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 11, 51]}, {"14357459": [118]}, {"14624335": [118]}, {"14872723": [52]}, {"15506663": [122]}, {"55057408": [90, 93, 92, 94, 81, 82, 83]}, {"55058464": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 72, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 100, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 140, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 180, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 220, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 4, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 32, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 60, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 88, 83, 65, 1, 67]}, {"55058613": [198, 21, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 68]}, {"55058629": [198, 22, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 69]}, {"55058645": [198, 23, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 70]}, {"55058661": [198, 24, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 71]}, {"55058677": [198, 25, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 93]}, {"55058693": [198, 28, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 122]}, {"55058709": [198, 29, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 249]}, {"55058725": [198, 30, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 151]}, {"55058741": [198, 32, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 10, 6]}, {"55058757": [185, 1, 3, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 28]}, {"55058773": [185, 1, 4, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 29]}, {"55058789": [185, 1, 5, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 30]}, {"55058805": [185, 1, 6, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 42]}, {"55058821": [185, 1, 7, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 97]}, {"55058837": [185, 1, 10, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 98]}, {"55058853": [184, 2]}, {"55058856": [128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 99]}, {"55058869": [184, 2, 1, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 100]}, {"55058885": [184, 2, 2, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 101]}, {"55058901": [184, 2, 3, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 124]}, {"55058917": [184, 2, 4, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 125]}, {"55058933": [184, 2, 5, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 126]}, {"55058949": [184, 2, 6, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 127]}, {"55058965": [184, 2, 7, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 162]}, {"55058981": [184, 2, 8, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 135]}, {"55058997": [184, 2, 9, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 136]}, {"55059013": [200, 4]}, {"55059016": [128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 137]}, {"55059029": [200, 4, 1, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 138]}, {"55059045": [200, 4, 2, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 139]}, {"55059061": [200, 4, 3, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 140]}, {"55059077": [200, 4, 4, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 142]}, {"55059093": [200, 4, 5, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 143]}, {"55059109": [200, 4, 6, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 163]}, {"55059125": [200, 4, 7, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 165]}, {"55059141": [200, 4, 8, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 146]}, {"55059157": [200, 4, 9, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 2, 147]}, {"55059173": [170, 3, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 2, 148]}, {"55059189": [170, 4, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 2, 149]}, {"55059205": [170, 5, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 2, 166]}, {"55059221": [170, 6, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 2, 169]}, {"55059237": [170, 7, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 2, 155]}, {"55059253": [170, 8, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 2, 159]}, {"55059269": [170, 11, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 2, 160]}, {"55059285": [170, 12, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 2, 161]}, {"55059301": [170, 13, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 61, 67, 12]}, {"55059317": [248, 255, 255, 128, 64, 37, 204, 128, 64, 36, 64, 77, 131, 247, 85]}, {"55059333": [183, 255, 255, 128, 64, 37, 196, 128, 64, 36, 64, 83, 146, 219, 230]}, {"55059349": [216, 255, 255, 128, 64, 37, 196, 128, 64, 37, 140, 83, 147, 218, 230]}, {"55059365": [216, 255, 255, 128, 64, 37, 196, 128, 64, 37, 140, 83, 148, 217, 230]}, {"55059381": [216, 255, 255, 128, 64, 37, 196, 128, 64, 37, 140, 83, 142, 224, 50]}, {"55059397": [206, 255, 255, 128, 64, 37, 196, 128, 64, 37, 168, 83, 143, 224, 50]}, {"55059413": [206, 255, 255, 128, 64, 37, 196, 128, 64, 37, 168, 83, 144, 224, 50]}, {"55059429": [206, 255, 255, 128, 64, 37, 196, 128, 64, 37, 168, 83, 140, 238, 52]}, {"55059445": [187, 255, 255, 128, 64, 37, 196, 128, 64, 36, 64, 83, 141, 238, 52]}, {"55059461": [187, 255, 255, 128, 64, 37, 196, 128, 64, 36, 64, 79, 65, 19, 233]}, {"55059477": [189, 255, 255, 128, 64, 38, 92, 128, 64, 36, 64, 79, 65, 30, 228]}, {"55059493": [205, 255, 255, 128, 64, 38, 124, 128, 64, 37, 116, 79, 65, 31, 232]}, {"55059509": [205, 255, 255, 128, 64, 38, 156, 128, 64, 36, 64, 3, 224]}, {"55059523": [8, 52, 162]}, {"55059528": [144, 136]}, {"55059531": [125, 52, 1]}, {"55059535": [255, 17, 1]}, {"55059539": [2, 52, 2]}, {"55059543": [8, 52, 2]}, {"55059547": [9, 3, 224]}, {"55059551": [8]}, {"55059556": [144, 136]}, {"55059559": [163, 49, 8]}, {"55059563": [192, 17]}, {"55059567": [5, 52, 2]}, {"55059571": [84, 52, 1]}, {"55059575": [64, 17, 1]}, {"55059579": [2, 52, 2]}, {"55059583": [53, 52, 2]}, {"55059587": [54, 3, 224]}, {"55059591": [8]}, {"55059596": [144, 136]}, {"55059599": [163, 49, 8]}, {"55059603": [24, 17]}, {"55059607": [5, 52, 2]}, {"55059611": [50, 52, 1]}, {"55059615": [8, 17, 1]}, {"55059619": [2, 52, 2]}, {"55059623": [51, 52, 2]}, {"55059627": [52, 3, 224]}, {"55059631": [8]}, {"55059636": [144, 136]}, {"55059639": [163, 49, 8]}, {"55059643": [3, 17]}, {"55059647": [5, 52, 2]}, {"55059651": [4, 52, 1]}, {"55059655": [1, 17, 1]}, {"55059659": [2, 52, 2]}, {"55059663": [48, 52, 2]}, {"55059667": [49, 3, 224]}, {"55059671": [8]}, {"55059676": [144, 136]}, {"55059679": [162, 49, 8]}, {"55059683": [192, 17]}, {"55059687": [5, 52, 2]}, {"55059691": [5, 52, 1]}, {"55059695": [64, 17, 1]}, {"55059699": [2, 52, 2]}, {"55059703": [96, 52, 2]}, {"55059707": [123, 3, 224]}, {"55059711": [8]}, {"55059716": [144, 136]}, {"55059719": [162, 49, 8]}, {"55059723": [48, 17]}, {"55059727": [2, 52, 2]}, {"55059731": [69, 52, 2]}, {"55059735": [70, 3, 224]}, {"55059739": [8]}, {"55059744": [144, 136]}, {"55059747": [162, 49, 8]}, {"55059751": [6, 17]}, {"55059755": [2, 52, 2]}, {"55059759": [55, 52, 2]}, {"55059763": [56, 3, 224]}, {"55059767": [8]}, {"55059772": [144, 136]}, {"55059775": [161, 49, 8]}, {"55059779": [32, 17]}, {"55059783": [2, 52, 2]}, {"55059787": [121, 52, 2]}, {"55059791": [122, 3, 224]}, {"55059795": [8]}, {"55059800": [144, 136]}, {"55059803": [161, 49, 8]}, {"55059807": [4, 17]}, {"55059811": [2, 52, 2]}, {"55059815": [119, 52, 2]}, {"55059819": [120, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [50, 17]}, {"55059835": [2, 52, 2]}, {"55059839": [192, 52, 2]}, {"55059843": [193, 3, 224]}, {"55059847": [8]}, {"55059852": [144, 136]}, {"55059855": [163, 49, 8]}, {"55059859": [3, 17]}, {"55059863": [2, 52, 2]}, {"55059867": [77, 52, 162]}, {"55059872": [3, 224]}, {"55059875": [8]}, {"55059880": [144, 136]}, {"55059883": [163, 49, 8]}, {"55059887": [24, 17]}, {"55059891": [2, 52, 2]}, {"55059895": [77, 52, 162]}, {"55059900": [3, 224]}, {"55059903": [8]}, {"55059908": [3, 224]}, {"55059911": [8]}, {"55059916": [52, 8]}, {"55059919": [1, 160, 136]}, {"55059923": [62, 3, 224]}, {"55059927": [8]}, {"55059932": [36, 136]}, {"55059935": [134, 36, 9, 255, 255, 37, 41]}, {"55059943": [1, 52, 1]}, {"55059947": [3]}, {"55059949": [41, 8, 42, 20, 32]}, {"55059955": [7]}, {"55059960": [1, 9, 80, 33, 145, 75]}, {"55059968": [52, 1]}, {"55059971": [255, 21, 97, 255, 247]}, {"55059980": [161, 69]}, {"55059984": [3, 224]}, {"55059987": [8]}, {"55059992": [36, 136]}, {"55059995": [168, 1, 6, 64, 33, 145, 9]}, {"55060004": [1, 37, 72, 37, 161, 9]}, {"55060012": [3, 224]}, {"55060015": [8]}, {"55060020": [36, 136]}, {"55060023": [188, 1, 5, 64, 33, 129, 9]}, {"55060032": [5, 33]}, {"55060035": [2]}, {"55060040": [52, 9]}, {"55060044": [37, 41]}, {"55060047": [1, 161, 9]}, {"55060052": [3, 224]}, {"55060055": [8]}, {"55060060": [52, 8]}, {"55060063": [1, 160, 136]}, {"55060067": [61, 52, 8]}, {"55060071": [20, 160, 136]}, {"55060075": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060087": [8]}, {"55060092": [52, 8]}, {"55060095": [1, 160, 136]}, {"55060099": [50, 160, 136]}, {"55060103": [58, 52, 8]}, {"55060107": [48, 164, 136, 19, 244, 160, 136]}, {"55060115": [51, 3, 224]}, {"55060119": [8]}, {"55060124": [52, 8]}, {"55060127": [2, 160, 136]}, {"55060131": [50, 52, 8]}, {"55060135": [1, 160, 136]}, {"55060139": [58, 160, 136]}, {"55060143": [60, 52, 8]}, {"55060147": [96, 164, 136, 19, 244, 160, 136]}, {"55060155": [51, 3, 224]}, {"55060159": [8]}, {"55060164": [48, 132]}, {"55060167": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060179": [140, 16, 129]}, {"55060183": [22, 145, 2]}, {"55060187": [117, 52, 1]}, {"55060191": [141, 16, 129]}, {"55060195": [19, 145, 2]}, {"55060199": [117, 16, 128]}, {"55060203": [17, 145, 2]}, {"55060207": [116, 52, 1]}, {"55060211": [138, 16, 129]}, {"55060215": [14, 145, 2]}, {"55060219": [116, 52, 1]}, {"55060223": [139, 16, 129]}, {"55060227": [11, 145, 2]}, {"55060231": [116, 52, 1]}, {"55060235": [88, 16, 129]}, {"55060239": [8, 52, 2]}, {"55060244": [52, 1]}, {"55060247": [120, 16, 129]}, {"55060251": [5, 52, 2]}, {"55060256": [52, 1]}, {"55060259": [121, 16, 129]}, {"55060263": [2, 52, 2]}, {"55060268": [52, 2]}, {"55060271": [255, 3, 224]}, {"55060275": [8]}, {"55060280": [143, 166]}, {"55060283": [48, 132, 197]}, {"55060287": [4, 8, 16, 9, 214]}, {"55060296": [143, 185]}, {"55060299": [44, 135, 37]}, {"55060303": [4, 8, 16, 9, 214]}, {"55060312": [60, 10, 128, 64, 37, 74, 32]}, {"55060320": [141, 75]}, {"55060323": [12, 17, 96]}, {"55060327": [2]}, {"55060332": [149, 69]}, {"55060335": [4, 60, 10, 128, 64, 37, 74, 32, 16, 161, 64]}, {"55060348": [60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060360": [3, 224]}, {"55060363": [8]}, {"55060368": [60, 8, 128, 64, 37, 8, 32]}, {"55060376": [141, 9]}, {"55060379": [12, 17, 32]}, {"55060383": [2]}, {"55060388": [129, 3]}, {"55060391": [2]}, {"55060393": [3, 15, 195]}, {"55060397": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55060411": [8]}, {"55060416": [144, 69]}, {"55060419": [3, 60, 8, 128, 64, 37, 8, 32]}, {"55060428": [141, 9]}, {"55060431": [12, 17, 32]}, {"55060435": [2]}, {"55060440": [145, 5]}, {"55060443": [3, 3, 224]}, {"55060447": [8]}, {"55060452": [143, 162]}, {"55060455": [36, 144, 69]}, {"55060460": [60, 8, 128, 64, 37, 8, 32]}, {"55060468": [141, 9]}, {"55060471": [12, 17, 32]}, {"55060475": [19]}, {"55060480": [145, 5]}, {"55060483": [1, 175, 164]}, {"55060488": [175, 165]}, {"55060491": [4, 175, 166]}, {"55060495": [8, 39, 189, 255, 232, 175, 191]}, {"55060503": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55060515": [6, 145, 6]}, {"55060519": [7, 141, 9]}, {"55060523": [8, 1, 32, 248, 9]}, {"55060532": [143, 191]}, {"55060535": [16, 39, 189]}, {"55060539": [24, 143, 164]}, {"55060544": [143, 165]}, {"55060547": [4, 143, 166]}, {"55060551": [8, 3, 224]}, {"55060555": [8]}, {"55060560": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55060571": [16, 175, 163]}, {"55060575": [20, 175, 191]}, {"55060579": [24, 12, 16, 10, 33]}, {"55060588": [143, 162]}, {"55060591": [16, 143, 163]}, {"55060595": [20, 143, 191]}, {"55060599": [24, 39, 189]}, {"55060603": [32, 3, 224]}, {"55060607": [8]}, {"55060612": [39, 189, 255, 232, 175, 191]}, {"55060619": [16, 60, 8, 128, 64, 37, 8, 32]}, {"55060628": [173]}, {"55060632": [173]}, {"55060635": [4, 173]}, {"55060639": [8, 173]}, {"55060643": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55060659": [42]}, {"55060665": [9, 15, 195, 1, 33, 32, 38]}, {"55060673": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 91]}, {"55060688": [4, 64]}, {"55060691": [34]}, {"55060696": [52, 68]}, {"55060700": [12, 16, 10, 160]}, {"55060708": [16, 96]}, {"55060711": [12]}, {"55060716": [60, 8, 128, 64, 37, 8, 32]}, {"55060724": [140, 105]}, {"55060728": [173, 9]}, {"55060732": [140, 105]}, {"55060735": [4, 173, 9]}, {"55060739": [4, 140, 105]}, {"55060743": [8, 173, 9]}, {"55060747": [8, 52, 9]}, {"55060751": [1, 173, 9]}, {"55060755": [12, 144, 98]}, {"55060760": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55060776": [52, 1]}, {"55060779": [10, 21, 65]}, {"55060783": [6]}, {"55060788": [149, 42]}, {"55060791": [28, 49, 74, 240, 31]}, {"55060797": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55060807": [28, 129, 9, 4, 36, 5, 33]}, {"55060815": [2]}, {"55060821": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55060831": [16, 39, 189]}, {"55060835": [24, 3, 224]}, {"55060839": [8]}, {"55060844": [39, 189, 255, 232, 175, 191]}, {"55060851": [16, 12, 16, 10, 105]}, {"55060860": [36, 1, 255, 255, 16, 65]}, {"55060867": [4]}, {"55060872": [52, 68]}, {"55060876": [12, 16, 10, 147]}, {"55060884": [143, 191]}, {"55060887": [16, 39, 189]}, {"55060891": [24, 3, 224]}, {"55060895": [8]}, {"55060900": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55060911": [164, 52, 8]}, {"55060916": [52, 137]}, {"55060920": [148, 170]}, {"55060924": [52, 1]}, {"55060927": [10, 21, 65]}, {"55060931": [14]}, {"55060936": [148, 171]}, {"55060939": [28, 52, 1]}, {"55060943": [16, 20, 65]}, {"55060947": [8]}, {"55060952": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55060963": [4]}, {"55060968": [36, 2, 255, 255, 16]}, {"55060975": [21]}, {"55060980": [52, 8]}, {"55060983": [1, 49, 105]}, {"55060987": [31, 52, 1]}, {"55060991": [21, 21, 65]}, {"55060995": [12]}, {"55061000": [52, 1]}, {"55061003": [62, 16, 129]}, {"55061007": [7]}, {"55061012": [52, 1]}, {"55061015": [66, 16, 129]}, {"55061019": [4]}, {"55061024": [36, 2, 255, 255, 16]}, {"55061031": [7]}, {"55061036": [52, 8]}, {"55061039": [2, 144, 169, 1, 65]}, {"55061045": [2, 18]}, {"55061049": [72, 16, 37]}, {"55061053": [2, 18]}, {"55061057": [73, 16, 37, 3, 224]}, {"55061063": [8]}, {"55061068": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061083": [4, 141, 9]}, {"55061088": [17, 32]}, {"55061091": [5]}, {"55061097": [9, 82, 2, 21, 68, 255, 250]}, {"55061108": [49, 34]}, {"55061111": [255, 3, 224]}, {"55061115": [8]}, {"55061120": [39, 189, 255, 224, 175, 176]}, {"55061127": [16, 175, 177]}, {"55061131": [20, 175, 191]}, {"55061135": [24, 52, 130]}, {"55061140": [52, 80]}, {"55061144": [38, 8, 255, 128, 5]}, {"55061151": [18]}, {"55061156": [60, 17, 128, 64, 38, 49, 32, 32, 52, 9]}, {"55061167": [16, 1, 9]}, {"55061171": [24]}, {"55061174": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061192": [142, 40]}, {"55061195": [12, 1]}, {"55061198": [248, 9]}, {"55061204": [20, 80, 255, 239]}, {"55061212": [54, 35]}, {"55061216": [16]}, {"55061219": [2]}, {"55061224": [52, 3]}, {"55061228": [143, 176]}, {"55061231": [16, 143, 177]}, {"55061235": [20, 143, 191]}, {"55061239": [24, 39, 189]}, {"55061243": [32, 3, 224]}, {"55061247": [8]}, {"55061252": [140, 136, 29, 44, 52, 9]}, {"55061259": [1]}, {"55061261": [9, 78]}, {"55061264": [1, 9, 16, 36, 16, 64]}, {"55061271": [36]}, {"55061276": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55061291": [164, 52, 1]}, {"55061295": [61, 17, 129]}, {"55061299": [10]}, {"55061305": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55061315": [25]}, {"55061320": [52, 13]}, {"55061323": [1, 161, 141, 29, 40, 37, 74]}, {"55061331": [3, 16]}, {"55061335": [9]}, {"55061340": [52, 12]}, {"55061343": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55061359": [14]}, {"55061364": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 1, 1, 10, 64, 33, 129, 8]}, {"55061400": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061412": [52, 2]}, {"55061416": [3, 224]}, {"55061419": [8]}, {"55061424": [60, 8, 128, 64, 37, 8, 28]}, {"55061432": [129, 8]}, {"55061436": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061448": [3, 224]}, {"55061451": [8]}, {"55061456": [175, 164]}, {"55061459": [104, 175, 165]}, {"55061463": [108, 175, 166]}, {"55061467": [112, 175, 167]}, {"55061471": [116, 39, 189, 255, 232, 175, 163]}, {"55061479": [16, 175, 191]}, {"55061483": [20, 60, 8, 128, 64, 37, 8, 32, 16, 129, 8]}, {"55061496": [17]}, {"55061499": [14]}, {"55061504": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55061515": [1, 165, 42]}, {"55061520": [60, 9, 128, 65, 52, 10]}, {"55061527": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 33]}, {"55061556": [143, 163]}, {"55061559": [16, 143, 191]}, {"55061563": [20, 39, 189]}, {"55061567": [24, 143, 164]}, {"55061571": [104, 143, 165]}, {"55061575": [108, 143, 166]}, {"55061579": [112, 143, 167]}, {"55061583": [116, 132, 110, 19, 196, 3, 224]}, {"55061591": [8]}, {"55061596": [147, 25]}, {"55061599": [116, 52, 1]}, {"55061603": [255, 23, 33]}, {"55061607": [2]}, {"55061612": [52, 25]}, {"55061615": [44, 3, 224]}, {"55061619": [8, 167, 185]}, {"55061623": [154, 147, 44]}, {"55061627": [116, 52, 1]}, {"55061631": [255, 21, 129]}, {"55061635": [2]}, {"55061640": [52, 12]}, {"55061643": [44, 3, 224]}, {"55061647": [8]}, {"55061652": [145, 174]}, {"55061655": [116, 52, 1]}, {"55061659": [255, 21, 193]}, {"55061663": [2]}, {"55061668": [52, 14]}, {"55061671": [44, 3, 224]}, {"55061675": [8, 167, 174]}, {"55061679": [154, 145, 207]}, {"55061683": [116, 52, 1]}, {"55061687": [255, 21, 225]}, {"55061691": [2]}, {"55061696": [52, 15]}, {"55061699": [44, 3, 224]}, {"55061703": [8, 167, 175]}, {"55061707": [154, 60, 8, 128, 64, 37, 8, 32, 20, 142, 9]}, {"55061719": [104, 173, 9]}, {"55061724": [142, 9]}, {"55061727": [108, 173, 9]}, {"55061731": [4, 150, 9]}, {"55061735": [112, 165, 9]}, {"55061739": [8, 150, 9]}, {"55061743": [156, 165, 9]}, {"55061747": [10, 3, 224]}, {"55061751": [8, 142, 14]}, {"55061755": [4, 39, 189, 255, 224, 175, 176]}, {"55061763": [16, 175, 177]}, {"55061767": [20, 175, 191]}, {"55061771": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 20, 142, 8]}, {"55061791": [4, 17]}, {"55061795": [5]}, {"55061800": [12, 16, 11, 105]}, {"55061808": [16]}, {"55061811": [3]}, {"55061816": [12, 16, 11, 124]}, {"55061824": [12, 16, 11, 92, 52, 4]}, {"55061832": [12, 16, 11, 92, 52, 4]}, {"55061839": [1, 12, 16, 11, 92, 52, 4]}, {"55061847": [2, 143, 176]}, {"55061851": [16, 143, 177]}, {"55061855": [20, 143, 191]}, {"55061859": [24, 39, 189]}, {"55061863": [32, 3, 224]}, {"55061867": [8]}, {"55061872": [2, 4, 64, 33, 145, 9]}, {"55061879": [108, 52, 1]}, {"55061883": [255, 17, 33]}, {"55061887": [7]}, {"55061892": [2, 9, 72, 33, 145, 41]}, {"55061899": [116, 52, 1]}, {"55061903": [44, 17, 33]}, {"55061907": [2]}, {"55061912": [161, 9]}, {"55061915": [105, 3, 224]}, {"55061919": [8]}, {"55061924": [39, 189, 255, 232, 175, 191]}, {"55061931": [16, 142, 40]}, {"55061936": [174, 8]}, {"55061939": [64, 142, 40]}, {"55061943": [4, 174, 8]}, {"55061947": [68, 150, 40]}, {"55061951": [8, 166, 8]}, {"55061955": [72, 162]}, {"55061958": [15, 51, 146, 8]}, {"55061963": [74, 52, 1]}, {"55061967": [255, 21, 1]}, {"55061971": [3]}, {"55061976": [12, 16, 11, 138]}, {"55061984": [143, 191]}, {"55061987": [16, 39, 189]}, {"55061991": [24, 3, 224]}, {"55061995": [8]}, {"55062000": [142, 8]}, {"55062003": [64, 174, 8]}, {"55062007": [104, 142, 8]}, {"55062011": [68, 174, 8]}, {"55062015": [108, 150, 8]}, {"55062019": [72, 166, 8]}, {"55062023": [112, 146, 8]}, {"55062027": [104, 52, 1]}, {"55062031": [255, 21, 1]}, {"55062035": [3]}, {"55062040": [52, 8]}, {"55062043": [1, 162, 8, 15, 51, 3, 224]}, {"55062051": [8]}, {"55062056": [39, 189, 255, 232, 175, 191]}, {"55062063": [16, 150, 8]}, {"55062067": [156, 49, 8]}, {"55062071": [64, 17]}, {"55062075": [5]}, {"55062080": [150, 8]}, {"55062083": [112, 49, 8, 255, 15, 53, 8]}, {"55062091": [48, 166, 8]}, {"55062095": [112, 146, 40]}, {"55062099": [1, 162, 8]}, {"55062103": [105, 150, 40]}, {"55062107": [2, 166, 8]}, {"55062111": [106, 142, 40]}, {"55062115": [4, 174, 8]}, {"55062119": [108, 12, 16, 11, 164, 52, 4]}, {"55062128": [12, 16, 11, 164, 52, 4]}, {"55062135": [1, 12, 16, 11, 164, 52, 4]}, {"55062143": [2, 143, 191]}, {"55062147": [16, 39, 189]}, {"55062151": [24, 3, 224]}, {"55062155": [8]}, {"55062160": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 47, 60, 145, 10]}, {"55062175": [108, 52, 1]}, {"55062179": [255, 17, 65]}, {"55062183": [5]}, {"55062188": [1, 42, 72, 33, 145, 41]}, {"55062196": [21, 32]}, {"55062199": [28]}, {"55062204": [60, 9, 128, 64, 37, 41, 47, 47, 37, 41]}, {"55062215": [1, 145, 42]}, {"55062220": [17, 64]}, {"55062223": [19]}, {"55062228": [2, 10, 88, 33, 145, 107]}, {"55062235": [116, 52, 1]}, {"55062239": [255, 17, 97, 255, 248]}, {"55062248": [146, 12]}, {"55062251": [108, 17, 138, 255, 245]}, {"55062260": [146, 12]}, {"55062263": [109, 17, 138, 255, 242]}, {"55062272": [146, 12]}, {"55062275": [110, 17, 138, 255, 239]}, {"55062284": [161, 11]}, {"55062287": [105, 161, 10]}, {"55062291": [108, 16]}, {"55062295": [4]}, {"55062300": [52, 9]}, {"55062303": [255, 161, 9]}, {"55062307": [105, 161, 9]}, {"55062311": [108, 3, 224]}, {"55062315": [8]}, {"55062320": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55062333": [1, 1, 1, 1, 1]}, {"55062339": [1, 1, 1, 1, 1]}, {"55062345": [1]}, {"55062347": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55062357": [51, 8, 33, 32, 15]}, {"55062363": [71, 21, 234]}, {"55062367": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062379": [164]}, {"55062381": [15, 122, 3, 20, 64]}, {"55062387": [5, 52, 2, 72, 48, 21, 226]}, {"55062395": [7]}, {"55062400": [36, 25]}, {"55062403": [3, 16]}, {"55062407": [4, 52, 2, 99, 17, 21, 226]}, {"55062415": [2]}, {"55062420": [36, 25]}, {"55062423": [3, 3, 224]}, {"55062427": [8]}, {"55062432": [141, 173, 138, 160, 52, 2, 128]}, {"55062440": [16, 77]}, {"55062443": [2]}, {"55062448": [16]}, {"55062451": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55062467": [1, 16, 64]}, {"55062471": [2]}, {"55062476": [16]}, {"55062479": [2, 52, 2]}, {"55062483": [1, 161, 226, 28, 191, 3, 224]}, {"55062491": [8]}, {"55062497": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062511": [164]}, {"55062513": [15, 122, 3, 20, 64]}, {"55062519": [5, 52, 2, 72, 48, 21, 226]}, {"55062527": [7]}, {"55062532": [36, 25]}, {"55062535": [3, 16]}, {"55062539": [4, 52, 2, 99, 17, 21, 226]}, {"55062547": [2]}, {"55062552": [36, 25]}, {"55062555": [3, 3, 224]}, {"55062559": [8]}, {"55062564": [162, 37]}, {"55062567": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55062579": [4, 142, 10]}, {"55062584": [17, 64]}, {"55062587": [11]}, {"55062593": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55062605": [24, 194, 2, 23]}, {"55062611": [3, 49, 89]}, {"55062615": [255, 129, 234]}, {"55062620": [3, 42, 200, 37, 8, 16, 12, 12, 161, 249]}, {"55062632": [3, 224]}, {"55062635": [8]}] \ No newline at end of file diff --git a/version.py b/version.py index 21d85bb5b..15c296cf5 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.9.13 f.LUM' \ No newline at end of file +__version__ = '2.9.14 f.LUM' \ No newline at end of file From f7d7ed8fee152fb2b227c54d36abc6e798f8b245 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Sun, 8 Jul 2018 01:56:52 -0400 Subject: [PATCH 121/755] Added chest cutscene setting --- Settings.py | 13 +++++++++++++ version.py | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/Settings.py b/Settings.py index 7173204b1..08b01c922 100644 --- a/Settings.py +++ b/Settings.py @@ -368,6 +368,19 @@ def __init__(self, settings_dict): 'widget': 'Checkbutton', 'default': 'unchecked' }), + Setting_Info('fast_chests', bool, 1, True, + { + 'help': '''\ + Makes all chests open without the large chest opening cutscene + ''', + 'action': 'store_true' + }, + { + 'text': 'Fast Chest Cutscenes', + 'group': 'convenience', + 'widget': 'Checkbutton', + 'default': 'checked' + }), Setting_Info('unlocked_ganondorf', bool, 1, True, { 'help': '''\ diff --git a/version.py b/version.py index 15c296cf5..726e4cbb5 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.9.14 f.LUM' \ No newline at end of file +__version__ = '2.9.15 f.LUM' \ No newline at end of file From f61294406076fc9570cf62547c4099f7ade38c9c Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Sun, 8 Jul 2018 01:57:20 -0400 Subject: [PATCH 122/755] Fixed setting 0 ganon trials not removing barrier --- Rom.py | 2 +- version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Rom.py b/Rom.py index 66b96b7bc..f6c2eca70 100644 --- a/Rom.py +++ b/Rom.py @@ -1070,7 +1070,7 @@ def write_byte_to_save(offset, value): write_bits_to_save(0x0EEA, 0x20) # "Completed Shadow Trial" if world.skipped_trials['Light']: write_bits_to_save(0x0EEA, 0x80) # "Completed Light Trial" - if world.trials == '0': + if world.trials == 0: write_bits_to_save(0x0EED, 0x08) # "Dispelled Ganon's Tower Barrier" # open gerudo fortress diff --git a/version.py b/version.py index 726e4cbb5..9c6375e7f 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.9.15 f.LUM' \ No newline at end of file +__version__ = '2.9.16 f.LUM' \ No newline at end of file From 32b0c848f01f2355bf8d191629e48065ad88182a Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Sun, 8 Jul 2018 01:40:57 -0500 Subject: [PATCH 123/755] Malon best girl. --- ASM/src/build.asm | 1 + ASM/src/malon.asm | 145 +++++++++++++++++++++++++++++++++++++++++ Rom.py | 9 ++- Rules.py | 2 +- data/base2current.json | 2 +- version.py | 2 +- 6 files changed, 157 insertions(+), 4 deletions(-) create mode 100644 ASM/src/malon.asm diff --git a/ASM/src/build.asm b/ASM/src/build.asm index fa31dc568..1a55bc8d8 100755 --- a/ASM/src/build.asm +++ b/ASM/src/build.asm @@ -9,6 +9,7 @@ ;================================================================================================== .include "hacks.asm" +.include "malon.asm" ;================================================================================================== ; New code region diff --git a/ASM/src/malon.asm b/ASM/src/malon.asm new file mode 100644 index 000000000..671d60225 --- /dev/null +++ b/ASM/src/malon.asm @@ -0,0 +1,145 @@ +;========================================================================================================== +; Hacks to make Malon fast, and allow you to always get her item at the vines, even if you've rescued Talon +;========================================================================================================== + +; 0xD7E344 starts a function that checks if Malon should spawn +; + 0x54 is after credits and age have been checked +; at this point, we have the following: +; a0 = pointer to the save context +; a1 = pointer to the global context +; a2 = 3 +; a3 = 1 +; v0 = not sure, but it's checked to be equal to 3 in the original code, probably has to do with credits +; v1 = the current scene number +; the function has pushed nothing to the stack (so nothing needs to be restored) +; we are expected to return 1 if Malon should spawn, and 0 if she should not + +.org 0xD7E398 + ; this is the state we need for Malon to move to Lon Lon Ranch + lhu t1,0x0ed6(a0) ; this half holds both the following flags + andi t0,t1,0x10 ; t0 = "Talon has fled castle" + andi t1,t1,0x04 ; t1 = "Obtained Malon's Item" + or t0,t0,t1 ; t0 = combination of the flags + li t1,0x14 ; t1 = 0x14 which is the value if both flags are set + +@@hyrule_check: ; she should spawn at castle until Talon has fled and Item has been given + li at,0x5f ; at = 0x5f (Hyrule Castle) + bne at,v1,@@lon_lon_check ; if not in Hyrule Castle, try Lon Lon instead + nop + beq t0,t1,@@lon_lon_check ; if Talon and Item, try Lon Lon instead + nop + li v0,1 + jr ra ; return true + nop + +@@lon_lon_check: ; she should spawn at Lon Lon only once Talon has fled and Item has been given + bne a2,v0,@@return_false ; this test is in the original code, it's probably for the credits + li at,0x63 ; at = 0x63 (Lon Lon Ranch) + bne at,v1,@@return_false ; if not in Lon Lon Ranch, return false + lw t2,0x10(a0) ; t2 = is night time + bnez t2,@@return_false ; Malon does not spawn at Ranch at night + nop + bne t0,t1,@@return_false ; make sure Talon has fled and Item has been given + li v0,1 + jr ra ; return true + nop + +@@return_false: + li v0,0 + jr ra ; return false + nop + + +; 0xD7E110 starts a function that decides which text id Malon should use when spoken to +; + 0x50 is after ocarina check and song check +; at this point, we have the following: +; a0 = pointer to the global context +; v1 = pointer to the save context +; the function needs to restore the stack and return pointer before returning +; we are expected to return a text id + +.org 0xD7E160 + lh t0,0xA4(a0) ; t0 = current scene number + li at,0x63 ; at = 0x63 (Lon Lon Ranch) + bne at,t0,@@not_in_ranch ; if not in Lon Lon, she's in Hyrule Castle + li v0,0x2049 ; v0 = 0x2049 ('... Let's sing together.') + b @@return + nop + +@@not_in_ranch: + lhu t1,0x0ed6(v1) ; this half holds the following flag + andi t1,t1,0x04 ; t1 = "Obtained Malon's Item" + bnez t1,@@return ; if we haven't obtained the item, give the item + li v0,0x2044 ; v = 0x2044 'Set the egg to C to incubate it...' + li v0,0x2043 ; v = 0x2043 '... Would you mind finding my dad? ... ' + +@@return: +return_from_the_other_function: + lw ra,20(sp) + addiu sp,sp,24 ; restore stack + jr ra ; return v0 (whatever text id was chosen) + nop + + + +; 0xD7E818 is a function that sets a value in Malon's actor that makes Link get the item from her (cb0) +; + 0x74 is where the flag/scene checks take place +; at this point, we have the following: +; a0 = pointer to the Malon actor +; a2 = pointer to the global context +; t1 = current scene number +; at = 0x5f (Hyrule Castle) + +.org 0xD7E88C +.area 0x5C, 0 + lui v0,0x8012 + bne t1,at,@@not_hyrule ; if scene is not Hyrule Castle + addiu v0,v0,-23088 ; v0 = 0x8012a5d0 # save context + lhu t2,0x0ed6(v0) ; this byte holds the two flags below + andi t3,t2,0x10 ; t3 = "Talon has fled castle" + andi t2,t2,0x04 ; t2 = "Obtained Malon's Item" + or t2,t2,t3 ; t2 = combination of the flags + li t3,0x14 ; t3 = 0x14 which is the value if both flags are set + bne t2,t3,@@not_hyrule ; check that both flags are true to continue this path + nop + b return_from_the_other_function + lw ra,20(sp) ; jump to return + +@@not_hyrule: + lui t4,0x8010 + lw t4,0x8c24(t4) ; t4 = *(0x80108c24) + lw t5,0xa4(v0) ; t5 = quest status + and t6,t5,t4 ; t6 = "Has Epona's Song" + bnez t6,return_from_the_other_function ; return if we already have epona's song + nop +.endarea + + +; 0xD7E670 is Malon's initialization function +; the original check sets event to cb0 if Talon has fled, or Epona's Song is owned, and sets cb1 otherwise +; instead, we will check if we are in Hyrule castle, or Epona's song is owned, for event cb0 + +; Replaces: +; addiu v0,v0,0xa5d0 +.org 0xD7E760 + lw t8,68(sp) ; t8 = global context + +; Replaces: +; lhu t8,3798(v0) +.org 0xD7E76C + lh t8,0xA4(t8) ; t8 = current scene number + +; Replaces: +; andi t9,t8,0x10 +; beqz t9,ev_egg +.org 0xD7E778 + li t9,0x5f ; t9 = 0x5f (Hyrule Castle) + beq t8,t9,ev_egg ; jump if the scene is Hyrule Castle + +; Replace: +; lw t1,164(v0) +.org 0xD7E788 + lw t1,0xA674(v0) ; t1 = quest status + +.org 0xD7E7A0 +ev_egg: \ No newline at end of file diff --git a/Rom.py b/Rom.py index fd42e6489..912e44d4f 100644 --- a/Rom.py +++ b/Rom.py @@ -984,6 +984,12 @@ def write_byte_to_save(offset, value): write_bits_to_save(0x0F0A, 0x04) # "Spoke to Ingo Once as Adult" write_bits_to_save(0x0F1A, 0x04) # "Met Darunia in Fire Temple" + write_bits_to_save(0x0ED7, 0x01) # "Spoke to Child Malon at Castle or Market" + write_bits_to_save(0x0ED7, 0x20) # "Spoke to Child Malon at Ranch" + write_bits_to_save(0x0ED7, 0x40) # "Invited to Sing With Child Malon" + write_bits_to_save(0x0F09, 0x10) # "Met Child Malon at Castle or Market" + write_bits_to_save(0x0F09, 0x20) # "Child Malon Said Epona Was Scared of You" + write_bits_to_save(0x0F21, 0x04) # "Ruto in JJ (M3) Talk First Time" write_bits_to_save(0x0F21, 0x02) # "Ruto in JJ (M2) Meet Ruto" @@ -1016,6 +1022,7 @@ def write_byte_to_save(offset, value): write_bits_to_save(0x0EEB, 0x04) # "Entered Gerudo Valley" write_bits_to_save(0x0EEB, 0x02) # "Entered Lake Hylia" write_bits_to_save(0x0EEB, 0x01) # "Entered Dodongo's Cavern" + write_bits_to_save(0x0F08, 0x08) # "Entered Hyrule Castle" # Set up for Rainbow Bridge dungeons condition @@ -1164,7 +1171,7 @@ def write_byte_to_save(offset, value): malon_fix_high = malon_fix >> 8 malon_fix_low = malon_fix & 0x00FF rom.write_bytes(0xD7E142, [malon_fix_high, malon_fix_low]) - #rom.write_bytes(0xD7E8D6, [malon_fix_high, malon_fix_low]) # I don't know what this does, may be useful? + rom.write_bytes(0xD7E8C2, [malon_fix_high, malon_fix_low]) # I really don't like hardcoding these addresses, but for now..... rom.write_bytes(0xD7E786, [malon_fix_high, malon_fix_low]) rom.write_byte(0x29BECB9, item_data[item.name]) #Fix text box elif location.name == 'Song from Composer Grave': diff --git a/Rules.py b/Rules.py index 478654d25..f50b17804 100644 --- a/Rules.py +++ b/Rules.py @@ -64,7 +64,7 @@ def global_rules(world): set_rule(world.get_entrance('Lost Woods Bridge'), lambda state: world.open_forest or (state.has('Slingshot') and state.has('Kokiri Sword'))) set_rule(world.get_entrance('Deku Tree Basement Path'), lambda state: state.has('Slingshot')) set_rule(world.get_location('Skull Kid'), lambda state: state.has('Sarias Song')) - set_rule(world.get_location('Ocarina Memory Game'), lambda state: (world.logic_no_memory_game) and (state.has('Fairy Ocarina') or state.has('Ocarina of Time'))) + set_rule(world.get_location('Ocarina Memory Game'), lambda state: (not world.logic_no_memory_game) and (state.has('Fairy Ocarina') or state.has('Ocarina of Time'))) set_rule(world.get_location('Target in Woods'), lambda state: state.has('Slingshot')) set_rule(world.get_location('Deku Theater Skull Mask'), lambda state: (not world.logic_no_trade_skull_mask) and state.has('Zeldas Letter')) set_rule(world.get_location('Deku Theater Mask of Truth'), lambda state: (not world.logic_no_trade_mask_of_truth) and (state.has('Zeldas Letter') and state.has('Sarias Song') and state.has('Kokiri Emerald') and state.has('Goron Ruby') and state.has('Zora Sapphire') and state.guarantee_hint())) #Must befriend Skull Kid to sell Skull Mask, all stones to spawn running man. diff --git a/data/base2current.json b/data/base2current.json index d884e8972..517bb2234 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -1 +1 @@ -[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 20]}, {"11325064": [12, 16, 10, 236, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 11, 63]}, {"11427312": [12, 16, 11, 232]}, {"11562028": [12, 16, 12, 9]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 11, 248]}, {"11882076": [12, 16, 11, 213]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 11, 30, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 11, 37, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 11, 44, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 11, 23, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 9, 228]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 9, 177]}, {"12427480": [12, 16, 9, 206]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 9, 210]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12428008": [36, 10, 255, 255]}, {"12474768": [12, 16, 10, 244, 0, 0, 0, 0]}, {"12491456": [12, 16, 9, 240]}, {"12491480": [12, 16, 9, 249]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 10, 193]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 11, 51]}, {"14357459": [118]}, {"14624335": [118]}, {"14872723": [52]}, {"15506663": [122]}, {"55057408": [90, 93, 92, 94, 81, 82, 83]}, {"55058464": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 72, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 100, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 140, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 180, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 220, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 4, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 32, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 60, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 88, 83, 65, 1, 67]}, {"55058613": [198, 21, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 68]}, {"55058629": [198, 22, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 69]}, {"55058645": [198, 23, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 70]}, {"55058661": [198, 24, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 71]}, {"55058677": [198, 25, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 93]}, {"55058693": [198, 28, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 122]}, {"55058709": [198, 29, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 249]}, {"55058725": [198, 30, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 151]}, {"55058741": [198, 32, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 10, 6]}, {"55058757": [185, 1, 3, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 28]}, {"55058773": [185, 1, 4, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 29]}, {"55058789": [185, 1, 5, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 30]}, {"55058805": [185, 1, 6, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 42]}, {"55058821": [185, 1, 7, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 97]}, {"55058837": [185, 1, 10, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 98]}, {"55058853": [184, 2]}, {"55058856": [128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 99]}, {"55058869": [184, 2, 1, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 100]}, {"55058885": [184, 2, 2, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 101]}, {"55058901": [184, 2, 3, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 124]}, {"55058917": [184, 2, 4, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 125]}, {"55058933": [184, 2, 5, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 126]}, {"55058949": [184, 2, 6, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 127]}, {"55058965": [184, 2, 7, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 162]}, {"55058981": [184, 2, 8, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 135]}, {"55058997": [184, 2, 9, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 136]}, {"55059013": [200, 4]}, {"55059016": [128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 137]}, {"55059029": [200, 4, 1, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 138]}, {"55059045": [200, 4, 2, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 139]}, {"55059061": [200, 4, 3, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 140]}, {"55059077": [200, 4, 4, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 142]}, {"55059093": [200, 4, 5, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 143]}, {"55059109": [200, 4, 6, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 163]}, {"55059125": [200, 4, 7, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 165]}, {"55059141": [200, 4, 8, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 146]}, {"55059157": [200, 4, 9, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 254, 147]}, {"55059173": [170, 3, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 148]}, {"55059189": [170, 4, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 149]}, {"55059205": [170, 5, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 166]}, {"55059221": [170, 6, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 169]}, {"55059237": [170, 7, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 155]}, {"55059253": [170, 8, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 159]}, {"55059269": [170, 11, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 160]}, {"55059285": [170, 12, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 161]}, {"55059301": [170, 13, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 61, 67, 12]}, {"55059317": [248, 255, 255, 128, 64, 37, 204, 128, 64, 36, 64, 77, 131, 9, 85]}, {"55059333": [183, 255, 255, 128, 64, 37, 196, 128, 64, 36, 64, 83, 146, 219, 230]}, {"55059349": [216, 255, 255, 128, 64, 37, 196, 128, 64, 37, 140, 83, 147, 218, 230]}, {"55059365": [216, 255, 255, 128, 64, 37, 196, 128, 64, 37, 140, 83, 148, 217, 230]}, {"55059381": [216, 255, 255, 128, 64, 37, 196, 128, 64, 37, 140, 83, 142, 224, 50]}, {"55059397": [206, 255, 255, 128, 64, 37, 196, 128, 64, 37, 168, 83, 143, 224, 50]}, {"55059413": [206, 255, 255, 128, 64, 37, 196, 128, 64, 37, 168, 83, 144, 224, 50]}, {"55059429": [206, 255, 255, 128, 64, 37, 196, 128, 64, 37, 168, 83, 140, 238, 52]}, {"55059445": [187, 255, 255, 128, 64, 37, 196, 128, 64, 36, 64, 83, 141, 238, 52]}, {"55059461": [187, 255, 255, 128, 64, 37, 196, 128, 64, 36, 64, 79, 65, 19, 233]}, {"55059477": [189, 255, 255, 128, 64, 38, 92, 128, 64, 36, 64, 79, 65, 226, 228]}, {"55059493": [205, 255, 255, 128, 64, 38, 124, 128, 64, 37, 116, 79, 65, 225, 232]}, {"55059509": [205, 255, 255, 128, 64, 38, 156, 128, 64, 36, 64, 3, 224]}, {"55059523": [8, 52, 162]}, {"55059528": [144, 136]}, {"55059531": [125, 52, 1]}, {"55059535": [255, 17, 1]}, {"55059539": [2, 52, 2]}, {"55059543": [8, 52, 2]}, {"55059547": [9, 3, 224]}, {"55059551": [8]}, {"55059556": [144, 136]}, {"55059559": [163, 49, 8]}, {"55059563": [192, 17]}, {"55059567": [5, 52, 2]}, {"55059571": [84, 52, 1]}, {"55059575": [64, 17, 1]}, {"55059579": [2, 52, 2]}, {"55059583": [53, 52, 2]}, {"55059587": [54, 3, 224]}, {"55059591": [8]}, {"55059596": [144, 136]}, {"55059599": [163, 49, 8]}, {"55059603": [24, 17]}, {"55059607": [5, 52, 2]}, {"55059611": [50, 52, 1]}, {"55059615": [8, 17, 1]}, {"55059619": [2, 52, 2]}, {"55059623": [51, 52, 2]}, {"55059627": [52, 3, 224]}, {"55059631": [8]}, {"55059636": [144, 136]}, {"55059639": [163, 49, 8]}, {"55059643": [3, 17]}, {"55059647": [5, 52, 2]}, {"55059651": [4, 52, 1]}, {"55059655": [1, 17, 1]}, {"55059659": [2, 52, 2]}, {"55059663": [48, 52, 2]}, {"55059667": [49, 3, 224]}, {"55059671": [8]}, {"55059676": [144, 136]}, {"55059679": [162, 49, 8]}, {"55059683": [192, 17]}, {"55059687": [5, 52, 2]}, {"55059691": [5, 52, 1]}, {"55059695": [64, 17, 1]}, {"55059699": [2, 52, 2]}, {"55059703": [96, 52, 2]}, {"55059707": [123, 3, 224]}, {"55059711": [8]}, {"55059716": [144, 136]}, {"55059719": [162, 49, 8]}, {"55059723": [48, 17]}, {"55059727": [2, 52, 2]}, {"55059731": [69, 52, 2]}, {"55059735": [70, 3, 224]}, {"55059739": [8]}, {"55059744": [144, 136]}, {"55059747": [162, 49, 8]}, {"55059751": [6, 17]}, {"55059755": [2, 52, 2]}, {"55059759": [55, 52, 2]}, {"55059763": [56, 3, 224]}, {"55059767": [8]}, {"55059772": [144, 136]}, {"55059775": [161, 49, 8]}, {"55059779": [32, 17]}, {"55059783": [2, 52, 2]}, {"55059787": [121, 52, 2]}, {"55059791": [122, 3, 224]}, {"55059795": [8]}, {"55059800": [144, 136]}, {"55059803": [161, 49, 8]}, {"55059807": [4, 17]}, {"55059811": [2, 52, 2]}, {"55059815": [119, 52, 2]}, {"55059819": [120, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [50, 17]}, {"55059835": [2, 52, 2]}, {"55059839": [192, 52, 2]}, {"55059843": [193, 3, 224]}, {"55059847": [8]}, {"55059852": [144, 136]}, {"55059855": [163, 49, 8]}, {"55059859": [3, 17]}, {"55059863": [2, 52, 2]}, {"55059867": [77, 52, 162]}, {"55059872": [3, 224]}, {"55059875": [8]}, {"55059880": [144, 136]}, {"55059883": [163, 49, 8]}, {"55059887": [24, 17]}, {"55059891": [2, 52, 2]}, {"55059895": [77, 52, 162]}, {"55059900": [3, 224]}, {"55059903": [8]}, {"55059908": [3, 224]}, {"55059911": [8]}, {"55059916": [52, 8]}, {"55059919": [1, 160, 136]}, {"55059923": [62, 3, 224]}, {"55059927": [8]}, {"55059932": [36, 136]}, {"55059935": [134, 36, 9, 255, 255, 37, 41]}, {"55059943": [1, 52, 1]}, {"55059947": [3]}, {"55059949": [41, 8, 42, 20, 32]}, {"55059955": [7]}, {"55059960": [1, 9, 80, 33, 145, 75]}, {"55059968": [52, 1]}, {"55059971": [255, 21, 97, 255, 247]}, {"55059980": [161, 69]}, {"55059984": [3, 224]}, {"55059987": [8]}, {"55059992": [36, 136]}, {"55059995": [168, 1, 6, 64, 33, 145, 9]}, {"55060004": [1, 37, 72, 37, 161, 9]}, {"55060012": [3, 224]}, {"55060015": [8]}, {"55060020": [36, 136]}, {"55060023": [188, 1, 5, 64, 33, 129, 9]}, {"55060032": [5, 33]}, {"55060035": [2]}, {"55060040": [52, 9]}, {"55060044": [37, 41]}, {"55060047": [1, 161, 9]}, {"55060052": [3, 224]}, {"55060055": [8]}, {"55060060": [52, 8]}, {"55060063": [1, 160, 136]}, {"55060067": [61, 52, 8]}, {"55060071": [20, 160, 136]}, {"55060075": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060087": [8]}, {"55060092": [52, 8]}, {"55060095": [1, 160, 136]}, {"55060099": [50, 160, 136]}, {"55060103": [58, 52, 8]}, {"55060107": [48, 164, 136, 19, 244, 160, 136]}, {"55060115": [51, 3, 224]}, {"55060119": [8]}, {"55060124": [52, 8]}, {"55060127": [2, 160, 136]}, {"55060131": [50, 52, 8]}, {"55060135": [1, 160, 136]}, {"55060139": [58, 160, 136]}, {"55060143": [60, 52, 8]}, {"55060147": [96, 164, 136, 19, 244, 160, 136]}, {"55060155": [51, 3, 224]}, {"55060159": [8]}, {"55060164": [48, 132]}, {"55060167": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060179": [140, 16, 129]}, {"55060183": [22, 145, 2]}, {"55060187": [117, 52, 1]}, {"55060191": [141, 16, 129]}, {"55060195": [19, 145, 2]}, {"55060199": [117, 16, 128]}, {"55060203": [17, 145, 2]}, {"55060207": [116, 52, 1]}, {"55060211": [138, 16, 129]}, {"55060215": [14, 145, 2]}, {"55060219": [116, 52, 1]}, {"55060223": [139, 16, 129]}, {"55060227": [11, 145, 2]}, {"55060231": [116, 52, 1]}, {"55060235": [88, 16, 129]}, {"55060239": [8, 52, 2]}, {"55060244": [52, 1]}, {"55060247": [120, 16, 129]}, {"55060251": [5, 52, 2]}, {"55060256": [52, 1]}, {"55060259": [121, 16, 129]}, {"55060263": [2, 52, 2]}, {"55060268": [52, 2]}, {"55060271": [255, 3, 224]}, {"55060275": [8]}, {"55060280": [143, 166]}, {"55060283": [48, 132, 197]}, {"55060287": [4, 8, 16, 9, 214]}, {"55060296": [143, 185]}, {"55060299": [44, 135, 37]}, {"55060303": [4, 8, 16, 9, 214]}, {"55060312": [60, 10, 128, 64, 37, 74, 32]}, {"55060320": [141, 75]}, {"55060323": [12, 17, 96]}, {"55060327": [2]}, {"55060332": [149, 69]}, {"55060335": [4, 60, 10, 128, 64, 37, 74, 32, 16, 161, 64]}, {"55060348": [60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060360": [3, 224]}, {"55060363": [8]}, {"55060368": [60, 8, 128, 64, 37, 8, 32]}, {"55060376": [141, 9]}, {"55060379": [12, 17, 32]}, {"55060383": [2]}, {"55060388": [129, 3]}, {"55060391": [2]}, {"55060393": [3, 15, 195]}, {"55060397": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55060411": [8]}, {"55060416": [144, 69]}, {"55060419": [3, 60, 8, 128, 64, 37, 8, 32]}, {"55060428": [141, 9]}, {"55060431": [12, 17, 32]}, {"55060435": [2]}, {"55060440": [145, 5]}, {"55060443": [3, 3, 224]}, {"55060447": [8]}, {"55060452": [143, 162]}, {"55060455": [36, 144, 69]}, {"55060460": [60, 8, 128, 64, 37, 8, 32]}, {"55060468": [141, 9]}, {"55060471": [12, 17, 32]}, {"55060475": [19]}, {"55060480": [145, 5]}, {"55060483": [1, 175, 164]}, {"55060488": [175, 165]}, {"55060491": [4, 175, 166]}, {"55060495": [8, 39, 189, 255, 232, 175, 191]}, {"55060503": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55060515": [6, 145, 6]}, {"55060519": [7, 141, 9]}, {"55060523": [8, 1, 32, 248, 9]}, {"55060532": [143, 191]}, {"55060535": [16, 39, 189]}, {"55060539": [24, 143, 164]}, {"55060544": [143, 165]}, {"55060547": [4, 143, 166]}, {"55060551": [8, 3, 224]}, {"55060555": [8]}, {"55060560": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55060571": [16, 175, 163]}, {"55060575": [20, 175, 191]}, {"55060579": [24, 12, 16, 10, 33]}, {"55060588": [143, 162]}, {"55060591": [16, 143, 163]}, {"55060595": [20, 143, 191]}, {"55060599": [24, 39, 189]}, {"55060603": [32, 3, 224]}, {"55060607": [8]}, {"55060612": [39, 189, 255, 232, 175, 191]}, {"55060619": [16, 60, 8, 128, 64, 37, 8, 32]}, {"55060628": [173]}, {"55060632": [173]}, {"55060635": [4, 173]}, {"55060639": [8, 173]}, {"55060643": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55060659": [42]}, {"55060665": [9, 15, 195, 1, 33, 32, 38]}, {"55060673": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 91]}, {"55060688": [4, 64]}, {"55060691": [34]}, {"55060696": [52, 68]}, {"55060700": [12, 16, 10, 160]}, {"55060708": [16, 96]}, {"55060711": [12]}, {"55060716": [60, 8, 128, 64, 37, 8, 32]}, {"55060724": [140, 105]}, {"55060728": [173, 9]}, {"55060732": [140, 105]}, {"55060735": [4, 173, 9]}, {"55060739": [4, 140, 105]}, {"55060743": [8, 173, 9]}, {"55060747": [8, 52, 9]}, {"55060751": [1, 173, 9]}, {"55060755": [12, 144, 98]}, {"55060760": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55060776": [52, 1]}, {"55060779": [10, 21, 65]}, {"55060783": [6]}, {"55060788": [149, 42]}, {"55060791": [28, 49, 74, 240, 31]}, {"55060797": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55060807": [28, 129, 9, 4, 36, 5, 33]}, {"55060815": [2]}, {"55060821": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55060831": [16, 39, 189]}, {"55060835": [24, 3, 224]}, {"55060839": [8]}, {"55060844": [39, 189, 255, 232, 175, 191]}, {"55060851": [16, 12, 16, 10, 105]}, {"55060860": [36, 1, 255, 255, 16, 65]}, {"55060867": [4]}, {"55060872": [52, 68]}, {"55060876": [12, 16, 10, 147]}, {"55060884": [143, 191]}, {"55060887": [16, 39, 189]}, {"55060891": [24, 3, 224]}, {"55060895": [8]}, {"55060900": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55060911": [164, 52, 8]}, {"55060916": [52, 137]}, {"55060920": [148, 170]}, {"55060924": [52, 1]}, {"55060927": [10, 21, 65]}, {"55060931": [14]}, {"55060936": [148, 171]}, {"55060939": [28, 52, 1]}, {"55060943": [16, 20, 65]}, {"55060947": [8]}, {"55060952": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55060963": [4]}, {"55060968": [36, 2, 255, 255, 16]}, {"55060975": [21]}, {"55060980": [52, 8]}, {"55060983": [1, 49, 105]}, {"55060987": [31, 52, 1]}, {"55060991": [21, 21, 65]}, {"55060995": [12]}, {"55061000": [52, 1]}, {"55061003": [62, 16, 129]}, {"55061007": [7]}, {"55061012": [52, 1]}, {"55061015": [66, 16, 129]}, {"55061019": [4]}, {"55061024": [36, 2, 255, 255, 16]}, {"55061031": [7]}, {"55061036": [52, 8]}, {"55061039": [2, 144, 169, 1, 65]}, {"55061045": [2, 18]}, {"55061049": [72, 16, 37]}, {"55061053": [2, 18]}, {"55061057": [73, 16, 37, 3, 224]}, {"55061063": [8]}, {"55061068": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061083": [4, 141, 9]}, {"55061088": [17, 32]}, {"55061091": [5]}, {"55061097": [9, 82, 2, 21, 68, 255, 250]}, {"55061108": [49, 34]}, {"55061111": [255, 3, 224]}, {"55061115": [8]}, {"55061120": [39, 189, 255, 224, 175, 176]}, {"55061127": [16, 175, 177]}, {"55061131": [20, 175, 191]}, {"55061135": [24, 52, 130]}, {"55061140": [52, 80]}, {"55061144": [38, 8, 255, 128, 5]}, {"55061151": [18]}, {"55061156": [60, 17, 128, 64, 38, 49, 32, 32, 52, 9]}, {"55061167": [16, 1, 9]}, {"55061171": [24]}, {"55061174": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061192": [142, 40]}, {"55061195": [12, 1]}, {"55061198": [248, 9]}, {"55061204": [20, 80, 255, 239]}, {"55061212": [54, 35]}, {"55061216": [16]}, {"55061219": [2]}, {"55061224": [52, 3]}, {"55061228": [143, 176]}, {"55061231": [16, 143, 177]}, {"55061235": [20, 143, 191]}, {"55061239": [24, 39, 189]}, {"55061243": [32, 3, 224]}, {"55061247": [8]}, {"55061252": [140, 136, 29, 44, 52, 9]}, {"55061259": [1]}, {"55061261": [9, 78]}, {"55061264": [1, 9, 16, 36, 16, 64]}, {"55061271": [36]}, {"55061276": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55061291": [164, 52, 1]}, {"55061295": [61, 17, 129]}, {"55061299": [10]}, {"55061305": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55061315": [25]}, {"55061320": [52, 13]}, {"55061323": [1, 161, 141, 29, 40, 37, 74]}, {"55061331": [3, 16]}, {"55061335": [9]}, {"55061340": [52, 12]}, {"55061343": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55061359": [14]}, {"55061364": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 1, 1, 10, 64, 33, 129, 8]}, {"55061400": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061412": [52, 2]}, {"55061416": [3, 224]}, {"55061419": [8]}, {"55061424": [60, 8, 128, 64, 37, 8, 28]}, {"55061432": [129, 8]}, {"55061436": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061448": [3, 224]}, {"55061451": [8]}, {"55061456": [175, 164]}, {"55061459": [104, 175, 165]}, {"55061463": [108, 175, 166]}, {"55061467": [112, 175, 167]}, {"55061471": [116, 39, 189, 255, 232, 175, 163]}, {"55061479": [16, 175, 191]}, {"55061483": [20, 60, 8, 128, 64, 37, 8, 32, 16, 129, 8]}, {"55061496": [17]}, {"55061499": [14]}, {"55061504": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55061515": [1, 165, 42]}, {"55061520": [60, 9, 128, 65, 52, 10]}, {"55061527": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 33]}, {"55061556": [143, 163]}, {"55061559": [16, 143, 191]}, {"55061563": [20, 39, 189]}, {"55061567": [24, 143, 164]}, {"55061571": [104, 143, 165]}, {"55061575": [108, 143, 166]}, {"55061579": [112, 143, 167]}, {"55061583": [116, 132, 110, 19, 196, 3, 224]}, {"55061591": [8]}, {"55061596": [147, 25]}, {"55061599": [116, 52, 1]}, {"55061603": [255, 23, 33]}, {"55061607": [2]}, {"55061612": [52, 25]}, {"55061615": [44, 3, 224]}, {"55061619": [8, 167, 185]}, {"55061623": [154, 147, 44]}, {"55061627": [116, 52, 1]}, {"55061631": [255, 21, 129]}, {"55061635": [2]}, {"55061640": [52, 12]}, {"55061643": [44, 3, 224]}, {"55061647": [8]}, {"55061652": [145, 174]}, {"55061655": [116, 52, 1]}, {"55061659": [255, 21, 193]}, {"55061663": [2]}, {"55061668": [52, 14]}, {"55061671": [44, 3, 224]}, {"55061675": [8, 167, 174]}, {"55061679": [154, 145, 207]}, {"55061683": [116, 52, 1]}, {"55061687": [255, 21, 225]}, {"55061691": [2]}, {"55061696": [52, 15]}, {"55061699": [44, 3, 224]}, {"55061703": [8, 167, 175]}, {"55061707": [154, 60, 8, 128, 64, 37, 8, 32, 20, 142, 9]}, {"55061719": [104, 173, 9]}, {"55061724": [142, 9]}, {"55061727": [108, 173, 9]}, {"55061731": [4, 150, 9]}, {"55061735": [112, 165, 9]}, {"55061739": [8, 150, 9]}, {"55061743": [156, 165, 9]}, {"55061747": [10, 3, 224]}, {"55061751": [8, 142, 14]}, {"55061755": [4, 39, 189, 255, 224, 175, 176]}, {"55061763": [16, 175, 177]}, {"55061767": [20, 175, 191]}, {"55061771": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 20, 142, 8]}, {"55061791": [4, 17]}, {"55061795": [5]}, {"55061800": [12, 16, 11, 105]}, {"55061808": [16]}, {"55061811": [3]}, {"55061816": [12, 16, 11, 124]}, {"55061824": [12, 16, 11, 92, 52, 4]}, {"55061832": [12, 16, 11, 92, 52, 4]}, {"55061839": [1, 12, 16, 11, 92, 52, 4]}, {"55061847": [2, 143, 176]}, {"55061851": [16, 143, 177]}, {"55061855": [20, 143, 191]}, {"55061859": [24, 39, 189]}, {"55061863": [32, 3, 224]}, {"55061867": [8]}, {"55061872": [2, 4, 64, 33, 145, 9]}, {"55061879": [108, 52, 1]}, {"55061883": [255, 17, 33]}, {"55061887": [7]}, {"55061892": [2, 9, 72, 33, 145, 41]}, {"55061899": [116, 52, 1]}, {"55061903": [44, 17, 33]}, {"55061907": [2]}, {"55061912": [161, 9]}, {"55061915": [105, 3, 224]}, {"55061919": [8]}, {"55061924": [39, 189, 255, 232, 175, 191]}, {"55061931": [16, 142, 40]}, {"55061936": [174, 8]}, {"55061939": [64, 142, 40]}, {"55061943": [4, 174, 8]}, {"55061947": [68, 150, 40]}, {"55061951": [8, 166, 8]}, {"55061955": [72, 162]}, {"55061958": [15, 51, 146, 8]}, {"55061963": [74, 52, 1]}, {"55061967": [255, 21, 1]}, {"55061971": [3]}, {"55061976": [12, 16, 11, 138]}, {"55061984": [143, 191]}, {"55061987": [16, 39, 189]}, {"55061991": [24, 3, 224]}, {"55061995": [8]}, {"55062000": [142, 8]}, {"55062003": [64, 174, 8]}, {"55062007": [104, 142, 8]}, {"55062011": [68, 174, 8]}, {"55062015": [108, 150, 8]}, {"55062019": [72, 166, 8]}, {"55062023": [112, 146, 8]}, {"55062027": [104, 52, 1]}, {"55062031": [255, 21, 1]}, {"55062035": [3]}, {"55062040": [52, 8]}, {"55062043": [1, 162, 8, 15, 51, 3, 224]}, {"55062051": [8]}, {"55062056": [39, 189, 255, 232, 175, 191]}, {"55062063": [16, 150, 8]}, {"55062067": [156, 49, 8]}, {"55062071": [64, 17]}, {"55062075": [5]}, {"55062080": [150, 8]}, {"55062083": [112, 49, 8, 255, 15, 53, 8]}, {"55062091": [48, 166, 8]}, {"55062095": [112, 146, 40]}, {"55062099": [1, 162, 8]}, {"55062103": [105, 150, 40]}, {"55062107": [2, 166, 8]}, {"55062111": [106, 142, 40]}, {"55062115": [4, 174, 8]}, {"55062119": [108, 12, 16, 11, 164, 52, 4]}, {"55062128": [12, 16, 11, 164, 52, 4]}, {"55062135": [1, 12, 16, 11, 164, 52, 4]}, {"55062143": [2, 143, 191]}, {"55062147": [16, 39, 189]}, {"55062151": [24, 3, 224]}, {"55062155": [8]}, {"55062160": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 47, 60, 145, 10]}, {"55062175": [108, 52, 1]}, {"55062179": [255, 17, 65]}, {"55062183": [5]}, {"55062188": [1, 42, 72, 33, 145, 41]}, {"55062196": [21, 32]}, {"55062199": [28]}, {"55062204": [60, 9, 128, 64, 37, 41, 47, 47, 37, 41]}, {"55062215": [1, 145, 42]}, {"55062220": [17, 64]}, {"55062223": [19]}, {"55062228": [2, 10, 88, 33, 145, 107]}, {"55062235": [116, 52, 1]}, {"55062239": [255, 17, 97, 255, 248]}, {"55062248": [146, 12]}, {"55062251": [108, 17, 138, 255, 245]}, {"55062260": [146, 12]}, {"55062263": [109, 17, 138, 255, 242]}, {"55062272": [146, 12]}, {"55062275": [110, 17, 138, 255, 239]}, {"55062284": [161, 11]}, {"55062287": [105, 161, 10]}, {"55062291": [108, 16]}, {"55062295": [4]}, {"55062300": [52, 9]}, {"55062303": [255, 161, 9]}, {"55062307": [105, 161, 9]}, {"55062311": [108, 3, 224]}, {"55062315": [8]}, {"55062320": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55062333": [1, 1, 1, 1, 1]}, {"55062339": [1, 1, 1, 1, 1]}, {"55062345": [1]}, {"55062347": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55062357": [51, 8, 33, 32, 15]}, {"55062363": [71, 21, 234]}, {"55062367": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062379": [164]}, {"55062381": [15, 122, 3, 20, 64]}, {"55062387": [5, 52, 2, 72, 48, 21, 226]}, {"55062395": [7]}, {"55062400": [36, 25]}, {"55062403": [3, 16]}, {"55062407": [4, 52, 2, 99, 17, 21, 226]}, {"55062415": [2]}, {"55062420": [36, 25]}, {"55062423": [3, 3, 224]}, {"55062427": [8]}, {"55062432": [141, 173, 138, 160, 52, 2, 128]}, {"55062440": [16, 77]}, {"55062443": [2]}, {"55062448": [16]}, {"55062451": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55062467": [1, 16, 64]}, {"55062471": [2]}, {"55062476": [16]}, {"55062479": [2, 52, 2]}, {"55062483": [1, 161, 226, 28, 191, 3, 224]}, {"55062491": [8]}, {"55062497": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062511": [164]}, {"55062513": [15, 122, 3, 20, 64]}, {"55062519": [5, 52, 2, 72, 48, 21, 226]}, {"55062527": [7]}, {"55062532": [36, 25]}, {"55062535": [3, 16]}, {"55062539": [4, 52, 2, 99, 17, 21, 226]}, {"55062547": [2]}, {"55062552": [36, 25]}, {"55062555": [3, 3, 224]}, {"55062559": [8]}, {"55062564": [162, 37]}, {"55062567": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55062579": [4, 142, 10]}, {"55062584": [17, 64]}, {"55062587": [11]}, {"55062593": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55062605": [24, 194, 2, 23]}, {"55062611": [3, 49, 89]}, {"55062615": [255, 129, 234]}, {"55062620": [3, 42, 200, 37, 8, 16, 12, 12, 161, 249]}, {"55062632": [3, 224]}, {"55062635": [8]}] \ No newline at end of file +[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 20]}, {"11325064": [12, 16, 10, 236, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 11, 63]}, {"11427312": [12, 16, 11, 232]}, {"11562028": [12, 16, 12, 9]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 11, 248]}, {"11882076": [12, 16, 11, 213]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 11, 30, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 11, 37, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 11, 44, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 11, 23, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 9, 228]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 9, 177]}, {"12427480": [12, 16, 9, 206]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 9, 210]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12428008": [36, 10, 255, 255]}, {"12474768": [12, 16, 10, 244, 0, 0, 0, 0]}, {"12491456": [12, 16, 9, 240]}, {"12491480": [12, 16, 9, 249]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 10, 193]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 11, 51]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149472": [143, 184, 0, 68]}, {"14149484": [135, 24, 0, 164]}, {"14149496": [52]}, {"14149499": [95]}, {"14149501": [25]}, {"14149514": [166, 116]}, {"14149779": [10]}, {"14149792": [49, 74]}, {"14149795": [4, 1, 75, 80, 37, 52, 11, 0, 20, 21, 75]}, {"14149807": [3, 0]}, {"14149811": [0, 16, 0, 254, 53, 143, 191, 0, 20, 60, 12, 128, 16, 141, 140, 140, 36, 140, 77, 0, 164, 1, 172, 112, 36, 21, 192, 254, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"14149851": [0, 0, 0, 0, 0, 0]}, {"14149859": [0, 0, 0]}, {"14149863": [0]}, {"14357459": [118]}, {"14624335": [118]}, {"14872723": [52]}, {"15506663": [122]}, {"55057408": [90, 93, 92, 94, 81, 82, 83]}, {"55058464": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 72, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 100, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 140, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 180, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 220, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 4, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 32, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 60, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 88, 83, 65, 1, 67]}, {"55058613": [198, 21, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 68]}, {"55058629": [198, 22, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 69]}, {"55058645": [198, 23, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 70]}, {"55058661": [198, 24, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 71]}, {"55058677": [198, 25, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 93]}, {"55058693": [198, 28, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 122]}, {"55058709": [198, 29, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 249]}, {"55058725": [198, 30, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 151]}, {"55058741": [198, 32, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 10, 6]}, {"55058757": [185, 1, 3, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 28]}, {"55058773": [185, 1, 4, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 29]}, {"55058789": [185, 1, 5, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 30]}, {"55058805": [185, 1, 6, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 42]}, {"55058821": [185, 1, 7, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 97]}, {"55058837": [185, 1, 10, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 98]}, {"55058853": [184, 2]}, {"55058856": [128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 99]}, {"55058869": [184, 2, 1, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 100]}, {"55058885": [184, 2, 2, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 101]}, {"55058901": [184, 2, 3, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 124]}, {"55058917": [184, 2, 4, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 125]}, {"55058933": [184, 2, 5, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 126]}, {"55058949": [184, 2, 6, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 127]}, {"55058965": [184, 2, 7, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 162]}, {"55058981": [184, 2, 8, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 135]}, {"55058997": [184, 2, 9, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 136]}, {"55059013": [200, 4]}, {"55059016": [128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 137]}, {"55059029": [200, 4, 1, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 138]}, {"55059045": [200, 4, 2, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 139]}, {"55059061": [200, 4, 3, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 140]}, {"55059077": [200, 4, 4, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 142]}, {"55059093": [200, 4, 5, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 143]}, {"55059109": [200, 4, 6, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 163]}, {"55059125": [200, 4, 7, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 165]}, {"55059141": [200, 4, 8, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 146]}, {"55059157": [200, 4, 9, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 254, 147]}, {"55059173": [170, 3, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 148]}, {"55059189": [170, 4, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 149]}, {"55059205": [170, 5, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 166]}, {"55059221": [170, 6, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 169]}, {"55059237": [170, 7, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 155]}, {"55059253": [170, 8, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 159]}, {"55059269": [170, 11, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 160]}, {"55059285": [170, 12, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 254, 161]}, {"55059301": [170, 13, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 61, 67, 12]}, {"55059317": [248, 255, 255, 128, 64, 37, 204, 128, 64, 36, 64, 77, 131, 9, 85]}, {"55059333": [183, 255, 255, 128, 64, 37, 196, 128, 64, 36, 64, 83, 146, 219, 230]}, {"55059349": [216, 255, 255, 128, 64, 37, 196, 128, 64, 37, 140, 83, 147, 218, 230]}, {"55059365": [216, 255, 255, 128, 64, 37, 196, 128, 64, 37, 140, 83, 148, 217, 230]}, {"55059381": [216, 255, 255, 128, 64, 37, 196, 128, 64, 37, 140, 83, 142, 224, 50]}, {"55059397": [206, 255, 255, 128, 64, 37, 196, 128, 64, 37, 168, 83, 143, 224, 50]}, {"55059413": [206, 255, 255, 128, 64, 37, 196, 128, 64, 37, 168, 83, 144, 224, 50]}, {"55059429": [206, 255, 255, 128, 64, 37, 196, 128, 64, 37, 168, 83, 140, 238, 52]}, {"55059445": [187, 255, 255, 128, 64, 37, 196, 128, 64, 36, 64, 83, 141, 238, 52]}, {"55059461": [187, 255, 255, 128, 64, 37, 196, 128, 64, 36, 64, 79, 65, 19, 233]}, {"55059477": [189, 255, 255, 128, 64, 38, 92, 128, 64, 36, 64, 79, 65, 226, 228]}, {"55059493": [205, 255, 255, 128, 64, 38, 124, 128, 64, 37, 116, 79, 65, 225, 232]}, {"55059509": [205, 255, 255, 128, 64, 38, 156, 128, 64, 36, 64, 3, 224]}, {"55059523": [8, 52, 162]}, {"55059528": [144, 136]}, {"55059531": [125, 52, 1]}, {"55059535": [255, 17, 1]}, {"55059539": [2, 52, 2]}, {"55059543": [8, 52, 2]}, {"55059547": [9, 3, 224]}, {"55059551": [8]}, {"55059556": [144, 136]}, {"55059559": [163, 49, 8]}, {"55059563": [192, 17]}, {"55059567": [5, 52, 2]}, {"55059571": [84, 52, 1]}, {"55059575": [64, 17, 1]}, {"55059579": [2, 52, 2]}, {"55059583": [53, 52, 2]}, {"55059587": [54, 3, 224]}, {"55059591": [8]}, {"55059596": [144, 136]}, {"55059599": [163, 49, 8]}, {"55059603": [24, 17]}, {"55059607": [5, 52, 2]}, {"55059611": [50, 52, 1]}, {"55059615": [8, 17, 1]}, {"55059619": [2, 52, 2]}, {"55059623": [51, 52, 2]}, {"55059627": [52, 3, 224]}, {"55059631": [8]}, {"55059636": [144, 136]}, {"55059639": [163, 49, 8]}, {"55059643": [3, 17]}, {"55059647": [5, 52, 2]}, {"55059651": [4, 52, 1]}, {"55059655": [1, 17, 1]}, {"55059659": [2, 52, 2]}, {"55059663": [48, 52, 2]}, {"55059667": [49, 3, 224]}, {"55059671": [8]}, {"55059676": [144, 136]}, {"55059679": [162, 49, 8]}, {"55059683": [192, 17]}, {"55059687": [5, 52, 2]}, {"55059691": [5, 52, 1]}, {"55059695": [64, 17, 1]}, {"55059699": [2, 52, 2]}, {"55059703": [96, 52, 2]}, {"55059707": [123, 3, 224]}, {"55059711": [8]}, {"55059716": [144, 136]}, {"55059719": [162, 49, 8]}, {"55059723": [48, 17]}, {"55059727": [2, 52, 2]}, {"55059731": [69, 52, 2]}, {"55059735": [70, 3, 224]}, {"55059739": [8]}, {"55059744": [144, 136]}, {"55059747": [162, 49, 8]}, {"55059751": [6, 17]}, {"55059755": [2, 52, 2]}, {"55059759": [55, 52, 2]}, {"55059763": [56, 3, 224]}, {"55059767": [8]}, {"55059772": [144, 136]}, {"55059775": [161, 49, 8]}, {"55059779": [32, 17]}, {"55059783": [2, 52, 2]}, {"55059787": [121, 52, 2]}, {"55059791": [122, 3, 224]}, {"55059795": [8]}, {"55059800": [144, 136]}, {"55059803": [161, 49, 8]}, {"55059807": [4, 17]}, {"55059811": [2, 52, 2]}, {"55059815": [119, 52, 2]}, {"55059819": [120, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [50, 17]}, {"55059835": [2, 52, 2]}, {"55059839": [192, 52, 2]}, {"55059843": [193, 3, 224]}, {"55059847": [8]}, {"55059852": [144, 136]}, {"55059855": [163, 49, 8]}, {"55059859": [3, 17]}, {"55059863": [2, 52, 2]}, {"55059867": [77, 52, 162]}, {"55059872": [3, 224]}, {"55059875": [8]}, {"55059880": [144, 136]}, {"55059883": [163, 49, 8]}, {"55059887": [24, 17]}, {"55059891": [2, 52, 2]}, {"55059895": [77, 52, 162]}, {"55059900": [3, 224]}, {"55059903": [8]}, {"55059908": [3, 224]}, {"55059911": [8]}, {"55059916": [52, 8]}, {"55059919": [1, 160, 136]}, {"55059923": [62, 3, 224]}, {"55059927": [8]}, {"55059932": [36, 136]}, {"55059935": [134, 36, 9, 255, 255, 37, 41]}, {"55059943": [1, 52, 1]}, {"55059947": [3]}, {"55059949": [41, 8, 42, 20, 32]}, {"55059955": [7]}, {"55059960": [1, 9, 80, 33, 145, 75]}, {"55059968": [52, 1]}, {"55059971": [255, 21, 97, 255, 247]}, {"55059980": [161, 69]}, {"55059984": [3, 224]}, {"55059987": [8]}, {"55059992": [36, 136]}, {"55059995": [168, 1, 6, 64, 33, 145, 9]}, {"55060004": [1, 37, 72, 37, 161, 9]}, {"55060012": [3, 224]}, {"55060015": [8]}, {"55060020": [36, 136]}, {"55060023": [188, 1, 5, 64, 33, 129, 9]}, {"55060032": [5, 33]}, {"55060035": [2]}, {"55060040": [52, 9]}, {"55060044": [37, 41]}, {"55060047": [1, 161, 9]}, {"55060052": [3, 224]}, {"55060055": [8]}, {"55060060": [52, 8]}, {"55060063": [1, 160, 136]}, {"55060067": [61, 52, 8]}, {"55060071": [20, 160, 136]}, {"55060075": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060087": [8]}, {"55060092": [52, 8]}, {"55060095": [1, 160, 136]}, {"55060099": [50, 160, 136]}, {"55060103": [58, 52, 8]}, {"55060107": [48, 164, 136, 19, 244, 160, 136]}, {"55060115": [51, 3, 224]}, {"55060119": [8]}, {"55060124": [52, 8]}, {"55060127": [2, 160, 136]}, {"55060131": [50, 52, 8]}, {"55060135": [1, 160, 136]}, {"55060139": [58, 160, 136]}, {"55060143": [60, 52, 8]}, {"55060147": [96, 164, 136, 19, 244, 160, 136]}, {"55060155": [51, 3, 224]}, {"55060159": [8]}, {"55060164": [48, 132]}, {"55060167": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060179": [140, 16, 129]}, {"55060183": [22, 145, 2]}, {"55060187": [117, 52, 1]}, {"55060191": [141, 16, 129]}, {"55060195": [19, 145, 2]}, {"55060199": [117, 16, 128]}, {"55060203": [17, 145, 2]}, {"55060207": [116, 52, 1]}, {"55060211": [138, 16, 129]}, {"55060215": [14, 145, 2]}, {"55060219": [116, 52, 1]}, {"55060223": [139, 16, 129]}, {"55060227": [11, 145, 2]}, {"55060231": [116, 52, 1]}, {"55060235": [88, 16, 129]}, {"55060239": [8, 52, 2]}, {"55060244": [52, 1]}, {"55060247": [120, 16, 129]}, {"55060251": [5, 52, 2]}, {"55060256": [52, 1]}, {"55060259": [121, 16, 129]}, {"55060263": [2, 52, 2]}, {"55060268": [52, 2]}, {"55060271": [255, 3, 224]}, {"55060275": [8]}, {"55060280": [143, 166]}, {"55060283": [48, 132, 197]}, {"55060287": [4, 8, 16, 9, 214]}, {"55060296": [143, 185]}, {"55060299": [44, 135, 37]}, {"55060303": [4, 8, 16, 9, 214]}, {"55060312": [60, 10, 128, 64, 37, 74, 32]}, {"55060320": [141, 75]}, {"55060323": [12, 17, 96]}, {"55060327": [2]}, {"55060332": [149, 69]}, {"55060335": [4, 60, 10, 128, 64, 37, 74, 32, 16, 161, 64]}, {"55060348": [60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060360": [3, 224]}, {"55060363": [8]}, {"55060368": [60, 8, 128, 64, 37, 8, 32]}, {"55060376": [141, 9]}, {"55060379": [12, 17, 32]}, {"55060383": [2]}, {"55060388": [129, 3]}, {"55060391": [2]}, {"55060393": [3, 15, 195]}, {"55060397": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55060411": [8]}, {"55060416": [144, 69]}, {"55060419": [3, 60, 8, 128, 64, 37, 8, 32]}, {"55060428": [141, 9]}, {"55060431": [12, 17, 32]}, {"55060435": [2]}, {"55060440": [145, 5]}, {"55060443": [3, 3, 224]}, {"55060447": [8]}, {"55060452": [143, 162]}, {"55060455": [36, 144, 69]}, {"55060460": [60, 8, 128, 64, 37, 8, 32]}, {"55060468": [141, 9]}, {"55060471": [12, 17, 32]}, {"55060475": [19]}, {"55060480": [145, 5]}, {"55060483": [1, 175, 164]}, {"55060488": [175, 165]}, {"55060491": [4, 175, 166]}, {"55060495": [8, 39, 189, 255, 232, 175, 191]}, {"55060503": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55060515": [6, 145, 6]}, {"55060519": [7, 141, 9]}, {"55060523": [8, 1, 32, 248, 9]}, {"55060532": [143, 191]}, {"55060535": [16, 39, 189]}, {"55060539": [24, 143, 164]}, {"55060544": [143, 165]}, {"55060547": [4, 143, 166]}, {"55060551": [8, 3, 224]}, {"55060555": [8]}, {"55060560": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55060571": [16, 175, 163]}, {"55060575": [20, 175, 191]}, {"55060579": [24, 12, 16, 10, 33]}, {"55060588": [143, 162]}, {"55060591": [16, 143, 163]}, {"55060595": [20, 143, 191]}, {"55060599": [24, 39, 189]}, {"55060603": [32, 3, 224]}, {"55060607": [8]}, {"55060612": [39, 189, 255, 232, 175, 191]}, {"55060619": [16, 60, 8, 128, 64, 37, 8, 32]}, {"55060628": [173]}, {"55060632": [173]}, {"55060635": [4, 173]}, {"55060639": [8, 173]}, {"55060643": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55060659": [42]}, {"55060665": [9, 15, 195, 1, 33, 32, 38]}, {"55060673": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 91]}, {"55060688": [4, 64]}, {"55060691": [34]}, {"55060696": [52, 68]}, {"55060700": [12, 16, 10, 160]}, {"55060708": [16, 96]}, {"55060711": [12]}, {"55060716": [60, 8, 128, 64, 37, 8, 32]}, {"55060724": [140, 105]}, {"55060728": [173, 9]}, {"55060732": [140, 105]}, {"55060735": [4, 173, 9]}, {"55060739": [4, 140, 105]}, {"55060743": [8, 173, 9]}, {"55060747": [8, 52, 9]}, {"55060751": [1, 173, 9]}, {"55060755": [12, 144, 98]}, {"55060760": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55060776": [52, 1]}, {"55060779": [10, 21, 65]}, {"55060783": [6]}, {"55060788": [149, 42]}, {"55060791": [28, 49, 74, 240, 31]}, {"55060797": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55060807": [28, 129, 9, 4, 36, 5, 33]}, {"55060815": [2]}, {"55060821": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55060831": [16, 39, 189]}, {"55060835": [24, 3, 224]}, {"55060839": [8]}, {"55060844": [39, 189, 255, 232, 175, 191]}, {"55060851": [16, 12, 16, 10, 105]}, {"55060860": [36, 1, 255, 255, 16, 65]}, {"55060867": [4]}, {"55060872": [52, 68]}, {"55060876": [12, 16, 10, 147]}, {"55060884": [143, 191]}, {"55060887": [16, 39, 189]}, {"55060891": [24, 3, 224]}, {"55060895": [8]}, {"55060900": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55060911": [164, 52, 8]}, {"55060916": [52, 137]}, {"55060920": [148, 170]}, {"55060924": [52, 1]}, {"55060927": [10, 21, 65]}, {"55060931": [14]}, {"55060936": [148, 171]}, {"55060939": [28, 52, 1]}, {"55060943": [16, 20, 65]}, {"55060947": [8]}, {"55060952": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55060963": [4]}, {"55060968": [36, 2, 255, 255, 16]}, {"55060975": [21]}, {"55060980": [52, 8]}, {"55060983": [1, 49, 105]}, {"55060987": [31, 52, 1]}, {"55060991": [21, 21, 65]}, {"55060995": [12]}, {"55061000": [52, 1]}, {"55061003": [62, 16, 129]}, {"55061007": [7]}, {"55061012": [52, 1]}, {"55061015": [66, 16, 129]}, {"55061019": [4]}, {"55061024": [36, 2, 255, 255, 16]}, {"55061031": [7]}, {"55061036": [52, 8]}, {"55061039": [2, 144, 169, 1, 65]}, {"55061045": [2, 18]}, {"55061049": [72, 16, 37]}, {"55061053": [2, 18]}, {"55061057": [73, 16, 37, 3, 224]}, {"55061063": [8]}, {"55061068": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061083": [4, 141, 9]}, {"55061088": [17, 32]}, {"55061091": [5]}, {"55061097": [9, 82, 2, 21, 68, 255, 250]}, {"55061108": [49, 34]}, {"55061111": [255, 3, 224]}, {"55061115": [8]}, {"55061120": [39, 189, 255, 224, 175, 176]}, {"55061127": [16, 175, 177]}, {"55061131": [20, 175, 191]}, {"55061135": [24, 52, 130]}, {"55061140": [52, 80]}, {"55061144": [38, 8, 255, 128, 5]}, {"55061151": [18]}, {"55061156": [60, 17, 128, 64, 38, 49, 32, 32, 52, 9]}, {"55061167": [16, 1, 9]}, {"55061171": [24]}, {"55061174": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061192": [142, 40]}, {"55061195": [12, 1]}, {"55061198": [248, 9]}, {"55061204": [20, 80, 255, 239]}, {"55061212": [54, 35]}, {"55061216": [16]}, {"55061219": [2]}, {"55061224": [52, 3]}, {"55061228": [143, 176]}, {"55061231": [16, 143, 177]}, {"55061235": [20, 143, 191]}, {"55061239": [24, 39, 189]}, {"55061243": [32, 3, 224]}, {"55061247": [8]}, {"55061252": [140, 136, 29, 44, 52, 9]}, {"55061259": [1]}, {"55061261": [9, 78]}, {"55061264": [1, 9, 16, 36, 16, 64]}, {"55061271": [36]}, {"55061276": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55061291": [164, 52, 1]}, {"55061295": [61, 17, 129]}, {"55061299": [10]}, {"55061305": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55061315": [25]}, {"55061320": [52, 13]}, {"55061323": [1, 161, 141, 29, 40, 37, 74]}, {"55061331": [3, 16]}, {"55061335": [9]}, {"55061340": [52, 12]}, {"55061343": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55061359": [14]}, {"55061364": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 1, 1, 10, 64, 33, 129, 8]}, {"55061400": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061412": [52, 2]}, {"55061416": [3, 224]}, {"55061419": [8]}, {"55061424": [60, 8, 128, 64, 37, 8, 28]}, {"55061432": [129, 8]}, {"55061436": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061448": [3, 224]}, {"55061451": [8]}, {"55061456": [175, 164]}, {"55061459": [104, 175, 165]}, {"55061463": [108, 175, 166]}, {"55061467": [112, 175, 167]}, {"55061471": [116, 39, 189, 255, 232, 175, 163]}, {"55061479": [16, 175, 191]}, {"55061483": [20, 60, 8, 128, 64, 37, 8, 32, 16, 129, 8]}, {"55061496": [17]}, {"55061499": [14]}, {"55061504": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55061515": [1, 165, 42]}, {"55061520": [60, 9, 128, 65, 52, 10]}, {"55061527": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 33]}, {"55061556": [143, 163]}, {"55061559": [16, 143, 191]}, {"55061563": [20, 39, 189]}, {"55061567": [24, 143, 164]}, {"55061571": [104, 143, 165]}, {"55061575": [108, 143, 166]}, {"55061579": [112, 143, 167]}, {"55061583": [116, 132, 110, 19, 196, 3, 224]}, {"55061591": [8]}, {"55061596": [147, 25]}, {"55061599": [116, 52, 1]}, {"55061603": [255, 23, 33]}, {"55061607": [2]}, {"55061612": [52, 25]}, {"55061615": [44, 3, 224]}, {"55061619": [8, 167, 185]}, {"55061623": [154, 147, 44]}, {"55061627": [116, 52, 1]}, {"55061631": [255, 21, 129]}, {"55061635": [2]}, {"55061640": [52, 12]}, {"55061643": [44, 3, 224]}, {"55061647": [8]}, {"55061652": [145, 174]}, {"55061655": [116, 52, 1]}, {"55061659": [255, 21, 193]}, {"55061663": [2]}, {"55061668": [52, 14]}, {"55061671": [44, 3, 224]}, {"55061675": [8, 167, 174]}, {"55061679": [154, 145, 207]}, {"55061683": [116, 52, 1]}, {"55061687": [255, 21, 225]}, {"55061691": [2]}, {"55061696": [52, 15]}, {"55061699": [44, 3, 224]}, {"55061703": [8, 167, 175]}, {"55061707": [154, 60, 8, 128, 64, 37, 8, 32, 20, 142, 9]}, {"55061719": [104, 173, 9]}, {"55061724": [142, 9]}, {"55061727": [108, 173, 9]}, {"55061731": [4, 150, 9]}, {"55061735": [112, 165, 9]}, {"55061739": [8, 150, 9]}, {"55061743": [156, 165, 9]}, {"55061747": [10, 3, 224]}, {"55061751": [8, 142, 14]}, {"55061755": [4, 39, 189, 255, 224, 175, 176]}, {"55061763": [16, 175, 177]}, {"55061767": [20, 175, 191]}, {"55061771": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 20, 142, 8]}, {"55061791": [4, 17]}, {"55061795": [5]}, {"55061800": [12, 16, 11, 105]}, {"55061808": [16]}, {"55061811": [3]}, {"55061816": [12, 16, 11, 124]}, {"55061824": [12, 16, 11, 92, 52, 4]}, {"55061832": [12, 16, 11, 92, 52, 4]}, {"55061839": [1, 12, 16, 11, 92, 52, 4]}, {"55061847": [2, 143, 176]}, {"55061851": [16, 143, 177]}, {"55061855": [20, 143, 191]}, {"55061859": [24, 39, 189]}, {"55061863": [32, 3, 224]}, {"55061867": [8]}, {"55061872": [2, 4, 64, 33, 145, 9]}, {"55061879": [108, 52, 1]}, {"55061883": [255, 17, 33]}, {"55061887": [7]}, {"55061892": [2, 9, 72, 33, 145, 41]}, {"55061899": [116, 52, 1]}, {"55061903": [44, 17, 33]}, {"55061907": [2]}, {"55061912": [161, 9]}, {"55061915": [105, 3, 224]}, {"55061919": [8]}, {"55061924": [39, 189, 255, 232, 175, 191]}, {"55061931": [16, 142, 40]}, {"55061936": [174, 8]}, {"55061939": [64, 142, 40]}, {"55061943": [4, 174, 8]}, {"55061947": [68, 150, 40]}, {"55061951": [8, 166, 8]}, {"55061955": [72, 162]}, {"55061958": [15, 51, 146, 8]}, {"55061963": [74, 52, 1]}, {"55061967": [255, 21, 1]}, {"55061971": [3]}, {"55061976": [12, 16, 11, 138]}, {"55061984": [143, 191]}, {"55061987": [16, 39, 189]}, {"55061991": [24, 3, 224]}, {"55061995": [8]}, {"55062000": [142, 8]}, {"55062003": [64, 174, 8]}, {"55062007": [104, 142, 8]}, {"55062011": [68, 174, 8]}, {"55062015": [108, 150, 8]}, {"55062019": [72, 166, 8]}, {"55062023": [112, 146, 8]}, {"55062027": [104, 52, 1]}, {"55062031": [255, 21, 1]}, {"55062035": [3]}, {"55062040": [52, 8]}, {"55062043": [1, 162, 8, 15, 51, 3, 224]}, {"55062051": [8]}, {"55062056": [39, 189, 255, 232, 175, 191]}, {"55062063": [16, 150, 8]}, {"55062067": [156, 49, 8]}, {"55062071": [64, 17]}, {"55062075": [5]}, {"55062080": [150, 8]}, {"55062083": [112, 49, 8, 255, 15, 53, 8]}, {"55062091": [48, 166, 8]}, {"55062095": [112, 146, 40]}, {"55062099": [1, 162, 8]}, {"55062103": [105, 150, 40]}, {"55062107": [2, 166, 8]}, {"55062111": [106, 142, 40]}, {"55062115": [4, 174, 8]}, {"55062119": [108, 12, 16, 11, 164, 52, 4]}, {"55062128": [12, 16, 11, 164, 52, 4]}, {"55062135": [1, 12, 16, 11, 164, 52, 4]}, {"55062143": [2, 143, 191]}, {"55062147": [16, 39, 189]}, {"55062151": [24, 3, 224]}, {"55062155": [8]}, {"55062160": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 47, 60, 145, 10]}, {"55062175": [108, 52, 1]}, {"55062179": [255, 17, 65]}, {"55062183": [5]}, {"55062188": [1, 42, 72, 33, 145, 41]}, {"55062196": [21, 32]}, {"55062199": [28]}, {"55062204": [60, 9, 128, 64, 37, 41, 47, 47, 37, 41]}, {"55062215": [1, 145, 42]}, {"55062220": [17, 64]}, {"55062223": [19]}, {"55062228": [2, 10, 88, 33, 145, 107]}, {"55062235": [116, 52, 1]}, {"55062239": [255, 17, 97, 255, 248]}, {"55062248": [146, 12]}, {"55062251": [108, 17, 138, 255, 245]}, {"55062260": [146, 12]}, {"55062263": [109, 17, 138, 255, 242]}, {"55062272": [146, 12]}, {"55062275": [110, 17, 138, 255, 239]}, {"55062284": [161, 11]}, {"55062287": [105, 161, 10]}, {"55062291": [108, 16]}, {"55062295": [4]}, {"55062300": [52, 9]}, {"55062303": [255, 161, 9]}, {"55062307": [105, 161, 9]}, {"55062311": [108, 3, 224]}, {"55062315": [8]}, {"55062320": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55062333": [1, 1, 1, 1, 1]}, {"55062339": [1, 1, 1, 1, 1]}, {"55062345": [1]}, {"55062347": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55062357": [51, 8, 33, 32, 15]}, {"55062363": [71, 21, 234]}, {"55062367": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062379": [164]}, {"55062381": [15, 122, 3, 20, 64]}, {"55062387": [5, 52, 2, 72, 48, 21, 226]}, {"55062395": [7]}, {"55062400": [36, 25]}, {"55062403": [3, 16]}, {"55062407": [4, 52, 2, 99, 17, 21, 226]}, {"55062415": [2]}, {"55062420": [36, 25]}, {"55062423": [3, 3, 224]}, {"55062427": [8]}, {"55062432": [141, 173, 138, 160, 52, 2, 128]}, {"55062440": [16, 77]}, {"55062443": [2]}, {"55062448": [16]}, {"55062451": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55062467": [1, 16, 64]}, {"55062471": [2]}, {"55062476": [16]}, {"55062479": [2, 52, 2]}, {"55062483": [1, 161, 226, 28, 191, 3, 224]}, {"55062491": [8]}, {"55062497": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062511": [164]}, {"55062513": [15, 122, 3, 20, 64]}, {"55062519": [5, 52, 2, 72, 48, 21, 226]}, {"55062527": [7]}, {"55062532": [36, 25]}, {"55062535": [3, 16]}, {"55062539": [4, 52, 2, 99, 17, 21, 226]}, {"55062547": [2]}, {"55062552": [36, 25]}, {"55062555": [3, 3, 224]}, {"55062559": [8]}, {"55062564": [162, 37]}, {"55062567": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55062579": [4, 142, 10]}, {"55062584": [17, 64]}, {"55062587": [11]}, {"55062593": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55062605": [24, 194, 2, 23]}, {"55062611": [3, 49, 89]}, {"55062615": [255, 129, 234]}, {"55062620": [3, 42, 200, 37, 8, 16, 12, 12, 161, 249]}, {"55062632": [3, 224]}, {"55062635": [8]}] \ No newline at end of file diff --git a/version.py b/version.py index 21d85bb5b..15c296cf5 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.9.13 f.LUM' \ No newline at end of file +__version__ = '2.9.14 f.LUM' \ No newline at end of file From 40e5ce20fc4152c36716d85d9c05b81a10b45d61 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Sun, 8 Jul 2018 01:47:40 -0500 Subject: [PATCH 124/755] Updated README with information on Malon changes. --- README.md | 6 +++++- version.py | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index bc092bc52..4a2276cc0 100644 --- a/README.md +++ b/README.md @@ -59,7 +59,11 @@ As a note, if you have access to the Wasteland carpet salesman and have a wallet The Weird Egg is shuffled into the pool. This means that Malon will give a random item and that you must find the Weird Egg (and hatch it) before being able to visit Zelda. -Known Issue: With this setting, waking Talon before getting Malon's random item at Hyrule Castle will cause you to miss that item forever. +Regardless of whether of not you use this option, Malon has been sped up in the following ways: +- Malon will never appear in the Castle Market, instead she will be waiting by the vines from the start of the game +- You do not need to talk to Malon twice to get her item. She will give it by talking only once +- The condition for Malon to move to Lon Lon Ranch is now obtaining her item and Talon fleeing the castle (instead of just Talon fleeing the castle) +- At Lon Lon Ranch, you no longer need to speak to Malon multiple times before she will teach you her song. You can simply walk up to her and pull out your Ocarina. ## Keysanity diff --git a/version.py b/version.py index 15c296cf5..726e4cbb5 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.9.14 f.LUM' \ No newline at end of file +__version__ = '2.9.15 f.LUM' \ No newline at end of file From 91bc94a48bfbb54d5f489749c64a2c9f74b06414 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Sun, 8 Jul 2018 01:51:16 -0500 Subject: [PATCH 125/755] More changes to the README regarding Malon. --- README.md | 2 +- version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4a2276cc0..90e380ff6 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ As a note, if you have access to the Wasteland carpet salesman and have a wallet ## Malon Egg -The Weird Egg is shuffled into the pool. This means that Malon will give a random item and that you must find the Weird Egg (and hatch it) before being able to visit Zelda. +The Weird Egg can be shuffled into the item pool with `shuffle_weird_egg`. This means that Malon will give a random item and that you must find the Weird Egg (and hatch it) before being able to visit Zelda. Regardless of whether of not you use this option, Malon has been sped up in the following ways: - Malon will never appear in the Castle Market, instead she will be waiting by the vines from the start of the game diff --git a/version.py b/version.py index 726e4cbb5..9c6375e7f 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.9.15 f.LUM' \ No newline at end of file +__version__ = '2.9.16 f.LUM' \ No newline at end of file From 05d5922e2b1921dc2e6c64713ff24c3f734d52b0 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Sun, 8 Jul 2018 17:06:44 -0500 Subject: [PATCH 126/755] Reworking text speed up (which speeds up shop text for text shuffle) --- Messages.py | 14 ++++- Rom.py | 146 +++------------------------------------------------- version.py | 2 +- 3 files changed, 21 insertions(+), 141 deletions(-) diff --git a/Messages.py b/Messages.py index 51d746811..36499e2eb 100644 --- a/Messages.py +++ b/Messages.py @@ -216,7 +216,7 @@ def is_basic(self): # writes a Message back into the rom, using the given index and offset to update the table # returns the offset of the next message - def write(self, rom, index, offset, replace_ending=False, ending=None, always_allow_skip=True): + def write(self, rom, index, offset, replace_ending=False, ending=None, always_allow_skip=True, speed_up_text=True): # construct the table entry id_bytes = int_to_bytes(self.id, 2) @@ -227,6 +227,12 @@ def write(self, rom, index, offset, replace_ending=False, ending=None, always_al rom.write_bytes(entry_offset, entry) ending_codes = [0x02, 0x07, 0x0A, 0x0B, 0x0E, 0x10] + box_breaks = [0x04, 0x0C] + slows_text = [0x09, 0x14] + + # speed the text + if speed_up_text: + offset = Text_Code(0x08, 0).write(rom, offset) # allow instant # write the message for code in self.text_codes: @@ -236,6 +242,12 @@ def write(self, rom, index, offset, replace_ending=False, ending=None, always_al # ignore the "make unskippable flag" elif always_allow_skip and code.code == 0x1A: pass + # ignore anything that slows down text + elif speed_up_text and code.code in slows_text: + pass + elif speed_up_text and code.code in box_breaks: + offset = Text_Code(0x04, 0).write(rom, offset) # un-delayed break + offset = Text_Code(0x08, 0).write(rom, offset) # allow instant else: offset = code.write(rom, offset) diff --git a/Rom.py b/Rom.py index 912e44d4f..de32d5337 100644 --- a/Rom.py +++ b/Rom.py @@ -766,126 +766,6 @@ def patch_rom(world, rom): for address in Wonder_text: rom.write_byte(address, 0xFE) - # Speed text - for address in text_array: - rom.write_byte(address, 0x08) - - # Speed Happy Mask shop text - rom.write_bytes(0x9602E4, [0x08, 0x48, 0x69, 0x79, 0x65, 0x65, 0x21, 0x01]) - rom.write_bytes(0x960344, [0x08, 0x08, 0x08, 0x08, 0x57]) - Block_code = [0x6D, 0x6F, 0x6E, 0x65, 0x79, 0x20, 0x05, 0x40, 0x62, 0x61, 0x63, 0x6B, - 0x20, 0x68, 0x65, 0x72, 0x65, 0x2E, 0x04, 0x08, 0x08] - rom.write_bytes(0x9603AB, Block_code) - Block_code = [0x73, 0x69, 0x67, 0x6E, 0x20, 0x01, 0x05, 0x40, 0x72, 0x69, 0x67, 0x68, - 0x74, 0x20, 0x6F, 0x76, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x72, 0x65, - 0x2E, 0x04, 0x08, 0x08] - rom.write_bytes(0x9603F8, Block_code) - rom.write_bytes(0x961160, [0x08, 0x08, 0x08, 0x08]) - rom.write_bytes(0x9611AF, [0x08, 0x08, 0x08, 0x08, 0x44]) - rom.write_bytes(0x9609F0, [0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x54]) - rom.write_bytes(0x960459, [0x08, 0x08]) - rom.write_bytes(0x9604C4, [0x08, 0x08, 0x41, 0x20, 0x6D, 0x61, 0x73, 0x6B, 0x20, 0x08, 0x08]) - rom.write_bytes(0x960513, [0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x54]) - Block_code = [0x08, 0x53, 0x6F, 0x6D, 0x65, 0x6F, 0x6E, 0x65, 0x20, 0x6D, 0x61, 0x79, - 0x20, 0x77, 0x61, 0x6E, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x01, 0x6D, - 0x61, 0x73, 0x6B, 0x2E, 0x04, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, - 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, - 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, - 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, - 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, - 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, - 0x08, 0x08, 0x08] - rom.write_bytes(0x960555, Block_code) - rom.write_bytes(0x9605F5, [0x08, 0x08]) - Block_code = [0x08, 0x50, 0x61, 0x79, 0x6D, 0x65, 0x6E, 0x74, 0x20, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x64, 0x21, 0x0B, 0x02] - rom.write_bytes(0x960718, Block_code) - Block_code = [0x08, 0x56, 0x65, 0x72, 0x79, 0x20, 0x77, 0x65, 0x6C, 0x6C, 0x20, 0x64, - 0x6F, 0x6E, 0x65, 0x21, 0x01, 0x41, 0x6C, 0x6C, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6D, 0x61, 0x73, 0x6B, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, - 0x6F, 0x6C, 0x64, 0x20, 0x6F, 0x75, 0x74, 0x2E, 0x01, 0x08, 0x08, 0x08, - 0x08, 0x08, 0x08, 0x08, 0x08] - rom.write_bytes(0x96078C, Block_code) - rom.write_bytes(0x960913, [0x04, 0x08, 0x08]) - Block_code = [0x08, 0x46, 0x72, 0x6F, 0x6D, 0x20, 0x6E, 0x6F, 0x77, 0x20, 0x6F, 0x6E, - 0x20, 0x79, 0x6F, 0x75, 0x20, 0x63, 0x61, 0x6E, 0x20, 0x62, 0x6F, 0x72, - 0x72, 0x6F, 0x77, 0x20, 0x61, 0x6E, 0x79, 0x01, 0x6D, 0x61, 0x73, 0x6B, - 0x20, 0x79, 0x6F, 0x75, 0x20, 0x77, 0x61, 0x6E, 0x74, 0x2E, 0x01, 0x4A, - 0x75, 0x73, 0x74, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x66, 0x61, 0x69, - 0x74, 0x68, 0x2E, 0x2E, 0x2E, 0x0B, 0x02] - rom.write_bytes(0x960924, Block_code) - Block_code = [0x08, 0x08, 0x08, 0x57, 0x65, 0x6C, 0x63, 0x6F, 0x6D, 0x65, 0x21, 0x01, - 0x57, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6D, 0x61, 0x73, 0x6B, 0x20, 0x63, - 0x61, 0x6E, 0x20, 0x49, 0x20, 0x6C, 0x65, 0x6E, 0x64, 0x20, 0x79, 0x6F, - 0x75, 0x3F, 0x0B, 0x02] - rom.write_bytes(0x960968, Block_code) - Block_code = [0x08, 0x57, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6D, - 0x61, 0x73, 0x6B, 0x20, 0x79, 0x6F, 0x75, 0x20, 0x63, 0x61, 0x6E, 0x20, - 0x73, 0x65, 0x65, 0x20, 0x69, 0x6E, 0x74, 0x6F, 0x20, 0x01, 0x08, 0x08, - 0x08, 0x20, 0x70, 0x65, 0x6F, 0x70, 0x6C, 0x65, 0x27, 0x73, 0x20, 0x6D, - 0x69, 0x6E, 0x64, 0x73, 0x2E, 0x20, 0x49, 0x74, 0x27, 0x73, 0x20, 0x75, - 0x73, 0x65, 0x66, 0x75, 0x6C, 0x2C, 0x01, 0x62, 0x75, 0x74, 0x20, 0x73, - 0x63, 0x61, 0x72, 0x79, 0x21, 0x04, 0x08] - rom.write_bytes(0x960A44, Block_code) - rom.write_byte(0x960AA3, 0x01) - rom.write_byte(0x960AC6, 0x01) - Happy_mask_turn_ins = [0x96066C, 0x961064, 0x9610B8, 0x96110C] #addresses with the same fix for lines upon returning profits from a sold mask - for address in Happy_mask_turn_ins: - rom.write_bytes(address, [0x08, 0x08, 0x08, 0x08, 0x47]) - - # Speed up various shops - rom.write_bytes(0x9550D0, [0x08, 0x48, 0x65, 0x79, 0x21, 0x08, 0x08, 0x08, 0x08]) - rom.write_bytes(0x93189C, [0x08, 0x4D, 0x79, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08]) - rom.write_bytes(0x95EC04, [0x08, 0x49, 0x74, 0x27, 0x73, 0x08, 0x08]) - Block_code = [0x08, 0x08, 0x08, 0x08, 0x57, 0x65, 0x20, 0x73, 0x65, 0x6C, 0x6C, 0x20, - 0x73, 0x68, 0x69, 0x65, 0x6C, 0x64, 0x73, 0x2C] - rom.write_bytes(0x941734, Block_code) - rom.write_bytes(0x949A94, [0x08, 0x59, 0x6F, 0x75, 0x27, 0x72, 0x65]) - rom.write_bytes(0x949B04, [0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x4F]) - rom.write_bytes(0x949B6A, [0x08, 0x08, 0x08, 0x08, 0x08, 0x4C]) - rom.write_bytes(0x949BC0, [0x08, 0x08, 0x08, 0x57]) - Block_code = [0x08, 0x08, 0x08, 0x08, 0x08, 0x57, 0x61, 0x6E, 0x74, 0x20, 0x74, 0x6F, - 0x20, 0x62, 0x79, 0x20, 0x66, 0x69, 0x73, 0x68, 0x3F, 0x20, 0x59, 0x6F, - 0x75, 0x27, 0x6C, 0x6C] - rom.write_bytes(0x94E57C, Block_code) - Block_code = [0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x54, 0x68, 0x61, 0x6E, 0x6B, 0x73, - 0x20, 0x74, 0x6F, 0x20, 0x79, 0x6F, 0x75, 0x2C, 0x20, 0x49, 0x27, 0x6D, - 0x20, 0x4F, 0x4B, 0x21] - rom.write_bytes(0x9498C8, Block_code) - rom.write_bytes(0x927E38, Block_code) - Block_code = [0x59, 0x6F, 0x75, 0x20, 0x68, 0x65, 0x61, 0x72, 0x64, 0x20, 0x61, 0x62, - 0x6F, 0x75, 0x74, 0x20, 0x75, 0x73, 0x20, 0x66, 0x72, 0x6F, 0x6D, 0x20, - 0x74, 0x68, 0x65, 0x01, 0x67, 0x75, 0x61, 0x72, 0x64, 0x20, 0x61, 0x74, - 0x20, 0x44, 0x65, 0x61, 0x74, 0x68, 0x20, 0x4D, 0x6F, 0x75, 0x6E, 0x74, - 0x61, 0x69, 0x6E, 0x20, 0x67, 0x61, 0x74, 0x65, 0x3F, 0x01, 0x08, 0x08, - 0x08, 0x08, 0x08] - rom.write_bytes(0x9650BC, Block_code) - Block_code = [0x08, 0x08, 0x08, 0x08, 0x57, 0x65, 0x20, 0x6D, 0x6F, 0x76, 0x65, 0x64, - 0x20, 0x68, 0x65, 0x72, 0x65, 0x20, 0x66, 0x72, 0x6F, 0x6D, 0x20, 0x43, - 0x61, 0x73, 0x74, 0x6C, 0x65, 0x20, 0x01, 0x54] - rom.write_bytes(0x9318F8, Block_code) - Block_code = [0x08, 0x41, 0x6E, 0x20, 0x6F, 0x6C, 0x64, 0x20, 0x77, 0x69, 0x74, 0x63, - 0x68, 0x20, 0x72, 0x75, 0x6E, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x50, - 0x6F, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x53, 0x68, 0x6F, 0x70, 0x01, 0x62, - 0x65, 0x68, 0x69, 0x6E, 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6F, - 0x6E, 0x65, 0x2E, 0x20, 0x59, 0x6F, 0x75, 0x20, 0x63, 0x61, 0x6E, 0x20, - 0x67, 0x65, 0x74, 0x20, 0x74, 0x6F, 0x01] - rom.write_bytes(0x954DA0, Block_code) - Block_code = [0x08, 0x45, 0x76, 0x65, 0x72, 0x79, 0x62, 0x6F, 0x64, 0x79, 0x20, 0x68, - 0x61, 0x73, 0x20, 0x63, 0x6F, 0x6D, 0x65, 0x20, 0x62, 0x61, 0x63, 0x6B, - 0x21, 0x01, 0x49, 0x74, 0x27, 0x73, 0x20, 0x62, 0x75, 0x73, 0x69, 0x6E, - 0x65, 0x73, 0x73, 0x20, 0x61, 0x73, 0x20, 0x75, 0x73, 0x75, 0x61, 0x6C, - 0x21, 0x0B, 0x02] - rom.write_bytes(0x94B57C, Block_code) - rom.write_bytes(0x94B3AC, [0x08, 0x4F, 0x68, 0x20, 0x6E, 0x6F, 0x21, 0x20]) - Block_code = [0x08, 0x08, 0x08, 0x08, 0x08, 0x44, 0x6F] - rom.write_bytes(0x94E5BC, Block_code) - rom.write_bytes(0x92CB2C, Block_code) - Block_code = [0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08] - rom.write_bytes(0x94E639, Block_code) - rom.write_bytes(0x92CBA9, Block_code) - rom.write_bytes(0x9650BC, [0x08, 0x08, 0x08, 0x08, 0x48]) - # Speed dig text for Dampe rom.write_bytes(0x9532F8, [0x08, 0x08, 0x08, 0x59]) @@ -1250,35 +1130,23 @@ def write_byte_to_save(offset, value): repack_messages(rom, messages) write_shop_items(rom, shop_items) - # output a text dump, for testing... - # with open('keysanity_' + str(world.seed) + '_dump.txt', 'w', encoding='utf-16') as f: - # messages = read_messages(rom) - # shop_items = read_shop_items(rom) - # for m in messages: - # f.write(str(m) + '\n\n') - # f.write('\n\n\n\n\n') - # for s in shop_items: - # f.write(str(s) + '\n\n') - - # with open('keysanity_' + str(world.seed) + '_dump.txt', 'w', encoding='utf-16') as f: - # messages = read_messages(rom) - # shop_items = read_shop_items(rom) - # for m in messages: - # f.write(str(m) + '\n\n') - # f.write('\n\n\n\n\n') - # for s in shop_items: - # f.write(str(s) + '\n\n') # text shuffle if world.text_shuffle == 'except_hints': shuffle_messages(rom, True) elif world.text_shuffle == 'complete': shuffle_messages(rom, False) + # output a text dump, for testing... - # with open('text_dump_' + str(world.seed) + '.txt', 'w', encoding='utf-16') as f: + + # with open('keysanity_' + str(world.seed) + '_dump.txt', 'w', encoding='utf-16') as f: # messages = read_messages(rom) + # shop_items = read_shop_items(rom) # for m in messages: # f.write(str(m) + '\n\n') + # f.write('\n\n\n\n\n') + # for s in shop_items: + # f.write(str(s) + '\n\n') if world.ocarina_songs: replace_songs(rom) diff --git a/version.py b/version.py index 9c6375e7f..49423e76f 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.9.16 f.LUM' \ No newline at end of file +__version__ = '2.9.17 f.LUM' \ No newline at end of file From 65b557f5830daab9cbf4a3578ad9fc7d392dc251 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Sun, 8 Jul 2018 18:19:58 -0500 Subject: [PATCH 127/755] Fixed text size being too big. --- Messages.py | 12 ++++++------ Rom.py | 1 - version.py | 2 +- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/Messages.py b/Messages.py index 36499e2eb..1b8b1df2d 100644 --- a/Messages.py +++ b/Messages.py @@ -230,7 +230,7 @@ def write(self, rom, index, offset, replace_ending=False, ending=None, always_al box_breaks = [0x04, 0x0C] slows_text = [0x09, 0x14] - # speed the text + # # speed the text if speed_up_text: offset = Text_Code(0x08, 0).write(rom, offset) # allow instant @@ -481,7 +481,7 @@ def read_messages(rom): return messages # wrtie the messages back -def repack_messages(rom, messages, permutation=None, always_allow_skip=True): +def repack_messages(rom, messages, permutation=None, always_allow_skip=True, speed_up_text=True): if permutation is None: permutation = range(len(messages)) @@ -493,7 +493,7 @@ def repack_messages(rom, messages, permutation=None, always_allow_skip=True): new_message = messages[new_index] remember_id = new_message.id new_message.id = old_message.id - offset = new_message.write(rom, old_index, offset, True, old_message.ending, always_allow_skip) + offset = new_message.write(rom, old_index, offset, True, old_message.ending, always_allow_skip, speed_up_text) new_message.id = remember_id # end the table @@ -513,9 +513,9 @@ def shuffle_messages(rom, except_hints=True, always_allow_skip=True): permutation = [i for i, _ in enumerate(messages)] def is_not_exempt(m): - exaempt_as_id = m.is_id_message() + exempt_as_id = m.is_id_message() exempt_as_hint = ( except_hints and m.id in (GOSSIP_STONE_MESSAGES + TEMPLE_HINTS_MESSAGES + LIGHT_ARROW_HINT + list(KEYSANITY_MESSAGES.keys()) ) ) - return not ( exaempt_as_id or exempt_as_hint ) + return not ( exempt_as_id or exempt_as_hint ) have_goto = list( filter( lambda m: is_not_exempt(m) and m.has_goto, messages) ) have_keep_open = list( filter( lambda m: is_not_exempt(m) and m.has_keep_open, messages) ) @@ -543,4 +543,4 @@ def shuffle_group(group): ])) # write the messages back - repack_messages(rom, messages, permutation, always_allow_skip) + repack_messages(rom, messages, permutation, always_allow_skip, False) diff --git a/Rom.py b/Rom.py index de32d5337..5223c2bed 100644 --- a/Rom.py +++ b/Rom.py @@ -10,7 +10,6 @@ from Hints import buildGossipHints, buildBossRewardHints, buildGanonText from Utils import local_path, default_output_path from Items import ItemFactory, item_data -from TextArray import text_array from Messages import * from OcarinaSongs import replace_songs diff --git a/version.py b/version.py index 49423e76f..945d34347 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.9.17 f.LUM' \ No newline at end of file +__version__ = '2.9.18 f.LUM' \ No newline at end of file From 0671023d6005bf9192dc3c959ff8712bcc51b2f1 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Sun, 8 Jul 2018 19:14:33 -0500 Subject: [PATCH 128/755] Fixed song playing messages softlocking I hope. --- Messages.py | 2 +- version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Messages.py b/Messages.py index 1b8b1df2d..9f25de333 100644 --- a/Messages.py +++ b/Messages.py @@ -228,7 +228,7 @@ def write(self, rom, index, offset, replace_ending=False, ending=None, always_al ending_codes = [0x02, 0x07, 0x0A, 0x0B, 0x0E, 0x10] box_breaks = [0x04, 0x0C] - slows_text = [0x09, 0x14] + slows_text = [0x14] # # speed the text if speed_up_text: diff --git a/version.py b/version.py index 945d34347..68253835c 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.9.18 f.LUM' \ No newline at end of file +__version__ = '2.9.19 f.LUM' \ No newline at end of file From dcefb7860a3759c0af56270f2bec37e37581901c Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Sun, 8 Jul 2018 19:34:21 -0500 Subject: [PATCH 129/755] Fixed text being too big again. --- Messages.py | 4 ++-- version.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Messages.py b/Messages.py index 9f25de333..9811a1107 100644 --- a/Messages.py +++ b/Messages.py @@ -228,7 +228,7 @@ def write(self, rom, index, offset, replace_ending=False, ending=None, always_al ending_codes = [0x02, 0x07, 0x0A, 0x0B, 0x0E, 0x10] box_breaks = [0x04, 0x0C] - slows_text = [0x14] + slows_text = [0x09, 0x14] # # speed the text if speed_up_text: @@ -243,7 +243,7 @@ def write(self, rom, index, offset, replace_ending=False, ending=None, always_al elif always_allow_skip and code.code == 0x1A: pass # ignore anything that slows down text - elif speed_up_text and code.code in slows_text: + elif speed_up_text and code.code in slows_text and not self.has_ocarina : pass elif speed_up_text and code.code in box_breaks: offset = Text_Code(0x04, 0).write(rom, offset) # un-delayed break diff --git a/version.py b/version.py index 68253835c..82b395a23 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.9.19 f.LUM' \ No newline at end of file +__version__ = '2.9.20 f.LUM' \ No newline at end of file From b32f121b464ced1cd07e4bff38d6bbbb3f87a8f5 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Sun, 8 Jul 2018 21:38:17 -0400 Subject: [PATCH 130/755] Chest addresses are now scanned from rom --- Rom.py | 156 ++++++++++++++++++++++++++++++++--------------------- version.py | 2 +- 2 files changed, 96 insertions(+), 62 deletions(-) diff --git a/Rom.py b/Rom.py index f6c2eca70..901133c86 100644 --- a/Rom.py +++ b/Rom.py @@ -1127,7 +1127,8 @@ def write_byte_to_save(offset, value): buildGanonText(world, messages) # Write item overrides - rom.write_bytes(0x3481000, get_override_table(world)) + override_table = get_override_table(world) + rom.write_bytes(0x3481000, sum(override_table, [])) # Set Default targeting option to Hold if world.default_targeting == 'hold': @@ -1256,13 +1257,8 @@ def write_byte_to_save(offset, value): for item_id, gfx_id in chestAnimations.items(): rom.write_byte(0xBEEE8E + (item_id * 6) + 2, gfx_id) - - # Update chest type sizes - if world.correct_chest_sizes: - for address, chestType in get_new_chest_type_table(rom, world): - chestVal = rom.read_int16(address) & 0x0FFF - rom.write_int16(address, chestVal | chestType) + update_chest_sizes(rom, override_table) # give dungeon items the correct messages message_patch_for_dungeon_items(rom, messages, shop_items) @@ -1399,7 +1395,7 @@ def get_override_table(world): for location in world.get_locations(): override_entries.append(get_override_entry(location)) override_entries.sort() - return sum(override_entries, []) + return override_entries def get_override_entry(location): scene = location.scene @@ -1440,64 +1436,102 @@ def get_override_entry(location): } chestAnimationExtendedFast = [ - 0xB6, # Recovery Heart - 0xB7, # Arrows (5) - 0xB8, # Arrows (10) - 0xB9, # Arrows (30) - 0xBA, # Bombs (5) - 0xBB, # Bombs (10) - 0xBC, # Bombs (20) - 0xBD, # Deku Nuts (5) - 0xBE, # Deku Nuts (10) + 0x87, # Progressive Nut Capacity + 0x88, # Progressive Stick Capacity + 0xB6, # Recovery Heart + 0xB7, # Arrows (5) + 0xB8, # Arrows (10) + 0xB9, # Arrows (30) + 0xBA, # Bombs (5) + 0xBB, # Bombs (10) + 0xBC, # Bombs (20) + 0xBD, # Deku Nuts (5) + 0xBE, # Deku Nuts (10) ] -global smallCount -global bigCount -def get_new_chest_type_table(rom, world): - global smallCount - global bigCount - chest_type_entries = [] - smallCount = 0 - bigCount = 0 - for location in world.get_locations(): - (address, chestType) = get_new_chest_type_entry(rom, location) - if address != None: - chest_type_entries.append((address, chestType)) - print(smallCount, bigCount) - return chest_type_entries - -def get_new_chest_type_entry(rom, location): - global smallCount - global bigCount - address = location.address - scene = location.scene - default = location.default - item_id = location.item.index - - if None in [address, scene, default, item_id]: - return (None, None) - - itemType = 0 # Item animation +def room_get_chests(rom, room_data, scene, chests, alternate=None): + room_start = alternate or room_data + command = 0 + while command != 0x14: # 0x14 = end header + command = rom.read_byte(room_data) + if command == 0x01: # actor list + actor_count = rom.read_byte(room_data + 1) + actor_list = room_start + (rom.read_int32(room_data + 4) & 0x00FFFFFF) + for _ in range(0, actor_count): + actor_id = rom.read_int16(actor_list); + actor_var = rom.read_int16(actor_list + 14) + if actor_id == 0x000A: #Chest Actor + chests[actor_list + 14] = [scene, actor_var & 0x001F] + actor_list = actor_list + 16 + if command == 0x18 and scene >= 81 and scene <= 99: # Alternate header list + header_list = room_start + (rom.read_int32(room_data + 4) & 0x00FFFFFF) + for alt_id in range(0,2): + header_data = room_start + (rom.read_int32(header_list + 4) & 0x00FFFFFF) + if header_data != 0 and not alternate: + room_get_chests(rom, header_data, scene, chests, room_start) + header_list = header_list + 4 + room_data = room_data + 8 + + +def scene_get_chests(rom, scene_data, scene, chests, alternate=None): + scene_start = alternate or scene_data + command = 0 + while command != 0x14: # 0x14 = end header + command = rom.read_byte(scene_data) + if command == 0x04: #room list + room_count = rom.read_byte(scene_data + 1) + room_list = scene_start + (rom.read_int32(scene_data + 4) & 0x00FFFFFF) + for _ in range(0, room_count): + room_data = rom.read_int32(room_list); + room_get_chests(rom, room_data, scene, chests) + room_list = room_list + 8 + if command == 0x18 and scene >= 81 and scene <= 99: # Alternate header list + header_list = scene_start + (rom.read_int32(scene_data + 4) & 0x00FFFFFF) + for alt_id in range(0,2): + header_data = scene_start + (rom.read_int32(header_list + 4) & 0x00FFFFFF) + if header_data != 0 and not alternate: + scene_get_chests(rom, header_data, scene, chests, scene_start) + header_list = header_list + 4 + + scene_data = scene_data + 8 + + +def get_chest_list(rom): + chests = {} + scene_table = 0x00B71440 + for scene in range(0x00, 0x65): + scene_data = rom.read_int32(scene_table + (scene * 0x14)); + scene_get_chests(rom, scene_data, scene, chests) + return chests + + +def get_override_itemid(override_table, scene, type, flags): + for entry in override_table: + if len(entry) == 4 and entry[0] == scene and entry[1] == type and entry[2] == flags: + return entry[3] + return None + +def update_chest_sizes(rom, override_table): + chest_list = get_chest_list(rom) + for address, [scene, flags] in chest_list.items(): + item_id = get_override_itemid(override_table, scene, 1, flags) + + if None in [address, scene, flags, item_id]: + continue - if item_id >= 0x80: # if extended item, always big except from exception list - itemType = 0 if item_id in chestAnimationExtendedFast else 1 - elif rom.read_byte(0xBEEE8E + (item_id * 6) + 2) & 0x80: # get animation from rom, ice trap is big - itemType = 0 # No animation, small chest - else: - itemType = 1 # Long animation, big chest - # Don't use boss chests - - if itemType == 0: - smallCount = smallCount + 1 - print(location.item.name, item_id) - else: - bigCount = bigCount + 1 + itemType = 0 # Item animation + if item_id >= 0x80: # if extended item, always big except from exception list + itemType = 0 if item_id in chestAnimationExtendedFast else 1 + elif rom.read_byte(0xBEEE8E + (item_id * 6) + 2) & 0x80: # get animation from rom, ice trap is big + itemType = 0 # No animation, small chest + else: + itemType = 1 # Long animation, big chest + # Don't use boss chests - if location.type == 'Chest': + default = rom.read_int16(address) chestType = default & 0xF000 newChestType = chestTypeMap[chestType][itemType] - return (address, newChestType) - else: - return (None, None) \ No newline at end of file + default = (default & 0x0FFF) | newChestType + rom.write_int16(address, default) diff --git a/version.py b/version.py index 9c6375e7f..49423e76f 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.9.16 f.LUM' \ No newline at end of file +__version__ = '2.9.17 f.LUM' \ No newline at end of file From 7c08c23e16d85966d80572fc5ad157a675e6ddcf Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Sun, 8 Jul 2018 21:40:06 -0400 Subject: [PATCH 131/755] Fix bottle models and deku nuts cutscene length --- ASM/src/extended_items.asm | 22 +++++++++++----------- data/base2current.json | 2 +- version.py | 2 +- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/ASM/src/extended_items.asm b/ASM/src/extended_items.asm index 7f649f982..2ec6b9af1 100755 --- a/ASM/src/extended_items.asm +++ b/ASM/src/extended_items.asm @@ -59,15 +59,15 @@ Item_Row -1, -1, -1, -1, -1, scale_upgrade, no_effect, -1, -1 ; 0x86 = Progr Item_Row -1, -1, -1, -1, -1, nut_upgrade, no_effect, -1, -1 ; 0x87 = Progressive Nut Capacity Item_Row -1, -1, -1, -1, -1, stick_upgrade, no_effect, -1, -1 ; 0x88 = Progressive Stick Capacity -Item_Row 0x53, 0x41, 0x01, 0x43, 0x00C6, no_upgrade, give_bottle, 0x15, -1 ; 0x89 = Bottle with Red Potion -Item_Row 0x53, 0x41, 0x01, 0x44, 0x00C6, no_upgrade, give_bottle, 0x16, -1 ; 0x8A = Bottle with Green Potion -Item_Row 0x53, 0x41, 0x01, 0x45, 0x00C6, no_upgrade, give_bottle, 0x17, -1 ; 0x8B = Bottle with Blue Potion -Item_Row 0x53, 0x41, 0x01, 0x46, 0x00C6, no_upgrade, give_bottle, 0x18, -1 ; 0x8C = Bottle with Fairy -Item_Row 0x53, 0x41, 0x01, 0x47, 0x00C6, no_upgrade, give_bottle, 0x19, -1 ; 0x8D = Bottle with Fish -Item_Row 0x53, 0x41, 0x01, 0x5D, 0x00C6, no_upgrade, give_bottle, 0x1C, -1 ; 0x8E = Bottle with Blue Fire -Item_Row 0x53, 0x41, 0x01, 0x7A, 0x00C6, no_upgrade, give_bottle, 0x1D, -1 ; 0x8F = Bottle with Bugs -Item_Row 0x53, 0x41, 0x01, 0xF9, 0x00C6, no_upgrade, give_bottle, 0x1E, -1 ; 0x90 = Bottle with Big Poe -Item_Row 0x53, 0x41, 0x01, 0x97, 0x00C6, no_upgrade, give_bottle, 0x20, -1 ; 0x91 = Bottle with Poe +Item_Row 0x53, 0x41, 0x38, 0x43, 0x00EB, no_upgrade, give_bottle, 0x15, -1 ; 0x89 = Bottle with Red Potion +Item_Row 0x53, 0x41, 0x37, 0x44, 0x00EB, no_upgrade, give_bottle, 0x16, -1 ; 0x8A = Bottle with Green Potion +Item_Row 0x53, 0x41, 0x39, 0x45, 0x00EB, no_upgrade, give_bottle, 0x17, -1 ; 0x8B = Bottle with Blue Potion +Item_Row 0x53, 0x41, 0x6B, 0x46, 0x0177, no_upgrade, give_bottle, 0x18, -1 ; 0x8C = Bottle with Fairy +Item_Row 0x53, 0x41, 0x3F, 0x47, 0x00F4, no_upgrade, give_bottle, 0x19, -1 ; 0x8D = Bottle with Fish +Item_Row 0x53, 0x41, 0x67, 0x5D, 0x0173, no_upgrade, give_bottle, 0x1C, -1 ; 0x8E = Bottle with Blue Fire +Item_Row 0x53, 0x41, 0x68, 0x7A, 0x0174, no_upgrade, give_bottle, 0x1D, -1 ; 0x8F = Bottle with Bugs +Item_Row 0x53, 0x41, 0x70, 0xF9, 0x0176, no_upgrade, give_bottle, 0x1E, -1 ; 0x90 = Bottle with Big Poe +Item_Row 0x53, 0x41, 0x6A, 0x97, 0x0176, no_upgrade, give_bottle, 0x20, -1 ; 0x91 = Bottle with Poe Item_Row 0x53, 0x41, 0x0A, 0x06, 0x00B9, no_upgrade, give_dungeon_item, 0x01, FOREST_ID ; 0x92 = Forest Temple Boss Key Item_Row 0x53, 0x41, 0x0A, 0x1C, 0x00B9, no_upgrade, give_dungeon_item, 0x01, FIRE_ID ; 0x93 = Fire Temple Boss Key @@ -117,8 +117,8 @@ Item_Row 0x53, 0x94, 0xD9, 0xE6, 0x00D8, arrows_to_rupee, no_effect, -1, -1 ; 0x Item_Row 0x53, 0x8E, 0xE0, 0x32, 0x00CE, bombs_to_rupee, no_effect, -1, -1 ; 0xBA = Bombs (5) Item_Row 0x53, 0x8F, 0xE0, 0x32, 0x00CE, bombs_to_rupee, no_effect, -1, -1 ; 0xBB = Bombs (10) Item_Row 0x53, 0x90, 0xE0, 0x32, 0x00CE, bombs_to_rupee, no_effect, -1, -1 ; 0xBC = Bombs (20) -Item_Row 0x53, 0x8C, 0xEE, 0x34, 0x00BB, no_upgrade, no_effect, -1, -1 ; 0xBD = Deku Nuts (5) -Item_Row 0x53, 0x8D, 0xEE, 0x34, 0x00BB, no_upgrade, no_effect, -1, -1 ; 0xBE = Deku Nuts (10) +Item_Row 0x4D, 0x8C, 0xEE, 0x34, 0x00BB, no_upgrade, no_effect, -1, -1 ; 0xBD = Deku Nuts (5) +Item_Row 0x4D, 0x8D, 0xEE, 0x34, 0x00BB, no_upgrade, no_effect, -1, -1 ; 0xBE = Deku Nuts (10) Item_Row 0x4F, 0x41, 0x13, 0xE9, 0x00BD, no_upgrade, give_defense, -1, -1 ; 0xBF = Double Defense Item_Row 0x4F, 0x41, 0x1E, 0xE4, 0x00CD, magic_upgrade, give_magic, -1, -1 ; 0xC0 = Progressive Magic Meter diff --git a/data/base2current.json b/data/base2current.json index c6b392abf..5c04fa470 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -1 +1 @@ -[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 20]}, {"11325064": [12, 16, 10, 236, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 11, 63]}, {"11427312": [12, 16, 11, 232]}, {"11562028": [12, 16, 12, 9]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 11, 248]}, {"11882076": [12, 16, 11, 213]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 11, 30, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 11, 37, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 11, 44, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 11, 23, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 9, 228]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 9, 177]}, {"12427480": [12, 16, 9, 206]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 9, 210]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 10, 244, 0, 0, 0, 0]}, {"12491456": [12, 16, 9, 240]}, {"12491480": [12, 16, 9, 249]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 10, 193]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 11, 51]}, {"14357459": [118]}, {"14624335": [118]}, {"14872723": [52]}, {"15506663": [122]}, {"55057408": [90, 93, 92, 94, 81, 82, 83]}, {"55058464": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 72, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 100, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 140, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 180, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 220, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 4, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 32, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 60, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 88, 83, 65, 1, 67]}, {"55058613": [198, 21, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 68]}, {"55058629": [198, 22, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 69]}, {"55058645": [198, 23, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 70]}, {"55058661": [198, 24, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 71]}, {"55058677": [198, 25, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 93]}, {"55058693": [198, 28, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 122]}, {"55058709": [198, 29, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 249]}, {"55058725": [198, 30, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 1, 151]}, {"55058741": [198, 32, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 10, 6]}, {"55058757": [185, 1, 3, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 28]}, {"55058773": [185, 1, 4, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 29]}, {"55058789": [185, 1, 5, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 30]}, {"55058805": [185, 1, 6, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 42]}, {"55058821": [185, 1, 7, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 97]}, {"55058837": [185, 1, 10, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 98]}, {"55058853": [184, 2]}, {"55058856": [128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 99]}, {"55058869": [184, 2, 1, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 100]}, {"55058885": [184, 2, 2, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 101]}, {"55058901": [184, 2, 3, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 124]}, {"55058917": [184, 2, 4, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 125]}, {"55058933": [184, 2, 5, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 126]}, {"55058949": [184, 2, 6, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 127]}, {"55058965": [184, 2, 7, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 162]}, {"55058981": [184, 2, 8, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 135]}, {"55058997": [184, 2, 9, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 136]}, {"55059013": [200, 4]}, {"55059016": [128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 137]}, {"55059029": [200, 4, 1, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 138]}, {"55059045": [200, 4, 2, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 139]}, {"55059061": [200, 4, 3, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 140]}, {"55059077": [200, 4, 4, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 142]}, {"55059093": [200, 4, 5, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 143]}, {"55059109": [200, 4, 6, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 163]}, {"55059125": [200, 4, 7, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 165]}, {"55059141": [200, 4, 8, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 146]}, {"55059157": [200, 4, 9, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 2, 147]}, {"55059173": [170, 3, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 2, 148]}, {"55059189": [170, 4, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 2, 149]}, {"55059205": [170, 5, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 2, 166]}, {"55059221": [170, 6, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 2, 169]}, {"55059237": [170, 7, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 2, 155]}, {"55059253": [170, 8, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 2, 159]}, {"55059269": [170, 11, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 2, 160]}, {"55059285": [170, 12, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 2, 161]}, {"55059301": [170, 13, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 61, 67, 12]}, {"55059317": [248, 255, 255, 128, 64, 37, 204, 128, 64, 36, 64, 77, 131, 247, 85]}, {"55059333": [183, 255, 255, 128, 64, 37, 196, 128, 64, 36, 64, 83, 146, 219, 230]}, {"55059349": [216, 255, 255, 128, 64, 37, 196, 128, 64, 37, 140, 83, 147, 218, 230]}, {"55059365": [216, 255, 255, 128, 64, 37, 196, 128, 64, 37, 140, 83, 148, 217, 230]}, {"55059381": [216, 255, 255, 128, 64, 37, 196, 128, 64, 37, 140, 83, 142, 224, 50]}, {"55059397": [206, 255, 255, 128, 64, 37, 196, 128, 64, 37, 168, 83, 143, 224, 50]}, {"55059413": [206, 255, 255, 128, 64, 37, 196, 128, 64, 37, 168, 83, 144, 224, 50]}, {"55059429": [206, 255, 255, 128, 64, 37, 196, 128, 64, 37, 168, 83, 140, 238, 52]}, {"55059445": [187, 255, 255, 128, 64, 37, 196, 128, 64, 36, 64, 83, 141, 238, 52]}, {"55059461": [187, 255, 255, 128, 64, 37, 196, 128, 64, 36, 64, 79, 65, 19, 233]}, {"55059477": [189, 255, 255, 128, 64, 38, 92, 128, 64, 36, 64, 79, 65, 30, 228]}, {"55059493": [205, 255, 255, 128, 64, 38, 124, 128, 64, 37, 116, 79, 65, 31, 232]}, {"55059509": [205, 255, 255, 128, 64, 38, 156, 128, 64, 36, 64, 3, 224]}, {"55059523": [8, 52, 162]}, {"55059528": [144, 136]}, {"55059531": [125, 52, 1]}, {"55059535": [255, 17, 1]}, {"55059539": [2, 52, 2]}, {"55059543": [8, 52, 2]}, {"55059547": [9, 3, 224]}, {"55059551": [8]}, {"55059556": [144, 136]}, {"55059559": [163, 49, 8]}, {"55059563": [192, 17]}, {"55059567": [5, 52, 2]}, {"55059571": [84, 52, 1]}, {"55059575": [64, 17, 1]}, {"55059579": [2, 52, 2]}, {"55059583": [53, 52, 2]}, {"55059587": [54, 3, 224]}, {"55059591": [8]}, {"55059596": [144, 136]}, {"55059599": [163, 49, 8]}, {"55059603": [24, 17]}, {"55059607": [5, 52, 2]}, {"55059611": [50, 52, 1]}, {"55059615": [8, 17, 1]}, {"55059619": [2, 52, 2]}, {"55059623": [51, 52, 2]}, {"55059627": [52, 3, 224]}, {"55059631": [8]}, {"55059636": [144, 136]}, {"55059639": [163, 49, 8]}, {"55059643": [3, 17]}, {"55059647": [5, 52, 2]}, {"55059651": [4, 52, 1]}, {"55059655": [1, 17, 1]}, {"55059659": [2, 52, 2]}, {"55059663": [48, 52, 2]}, {"55059667": [49, 3, 224]}, {"55059671": [8]}, {"55059676": [144, 136]}, {"55059679": [162, 49, 8]}, {"55059683": [192, 17]}, {"55059687": [5, 52, 2]}, {"55059691": [5, 52, 1]}, {"55059695": [64, 17, 1]}, {"55059699": [2, 52, 2]}, {"55059703": [96, 52, 2]}, {"55059707": [123, 3, 224]}, {"55059711": [8]}, {"55059716": [144, 136]}, {"55059719": [162, 49, 8]}, {"55059723": [48, 17]}, {"55059727": [2, 52, 2]}, {"55059731": [69, 52, 2]}, {"55059735": [70, 3, 224]}, {"55059739": [8]}, {"55059744": [144, 136]}, {"55059747": [162, 49, 8]}, {"55059751": [6, 17]}, {"55059755": [2, 52, 2]}, {"55059759": [55, 52, 2]}, {"55059763": [56, 3, 224]}, {"55059767": [8]}, {"55059772": [144, 136]}, {"55059775": [161, 49, 8]}, {"55059779": [32, 17]}, {"55059783": [2, 52, 2]}, {"55059787": [121, 52, 2]}, {"55059791": [122, 3, 224]}, {"55059795": [8]}, {"55059800": [144, 136]}, {"55059803": [161, 49, 8]}, {"55059807": [4, 17]}, {"55059811": [2, 52, 2]}, {"55059815": [119, 52, 2]}, {"55059819": [120, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [50, 17]}, {"55059835": [2, 52, 2]}, {"55059839": [192, 52, 2]}, {"55059843": [193, 3, 224]}, {"55059847": [8]}, {"55059852": [144, 136]}, {"55059855": [163, 49, 8]}, {"55059859": [3, 17]}, {"55059863": [2, 52, 2]}, {"55059867": [77, 52, 162]}, {"55059872": [3, 224]}, {"55059875": [8]}, {"55059880": [144, 136]}, {"55059883": [163, 49, 8]}, {"55059887": [24, 17]}, {"55059891": [2, 52, 2]}, {"55059895": [77, 52, 162]}, {"55059900": [3, 224]}, {"55059903": [8]}, {"55059908": [3, 224]}, {"55059911": [8]}, {"55059916": [52, 8]}, {"55059919": [1, 160, 136]}, {"55059923": [62, 3, 224]}, {"55059927": [8]}, {"55059932": [36, 136]}, {"55059935": [134, 36, 9, 255, 255, 37, 41]}, {"55059943": [1, 52, 1]}, {"55059947": [3]}, {"55059949": [41, 8, 42, 20, 32]}, {"55059955": [7]}, {"55059960": [1, 9, 80, 33, 145, 75]}, {"55059968": [52, 1]}, {"55059971": [255, 21, 97, 255, 247]}, {"55059980": [161, 69]}, {"55059984": [3, 224]}, {"55059987": [8]}, {"55059992": [36, 136]}, {"55059995": [168, 1, 6, 64, 33, 145, 9]}, {"55060004": [1, 37, 72, 37, 161, 9]}, {"55060012": [3, 224]}, {"55060015": [8]}, {"55060020": [36, 136]}, {"55060023": [188, 1, 5, 64, 33, 129, 9]}, {"55060032": [5, 33]}, {"55060035": [2]}, {"55060040": [52, 9]}, {"55060044": [37, 41]}, {"55060047": [1, 161, 9]}, {"55060052": [3, 224]}, {"55060055": [8]}, {"55060060": [52, 8]}, {"55060063": [1, 160, 136]}, {"55060067": [61, 52, 8]}, {"55060071": [20, 160, 136]}, {"55060075": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060087": [8]}, {"55060092": [52, 8]}, {"55060095": [1, 160, 136]}, {"55060099": [50, 160, 136]}, {"55060103": [58, 52, 8]}, {"55060107": [48, 164, 136, 19, 244, 160, 136]}, {"55060115": [51, 3, 224]}, {"55060119": [8]}, {"55060124": [52, 8]}, {"55060127": [2, 160, 136]}, {"55060131": [50, 52, 8]}, {"55060135": [1, 160, 136]}, {"55060139": [58, 160, 136]}, {"55060143": [60, 52, 8]}, {"55060147": [96, 164, 136, 19, 244, 160, 136]}, {"55060155": [51, 3, 224]}, {"55060159": [8]}, {"55060164": [48, 132]}, {"55060167": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060179": [140, 16, 129]}, {"55060183": [22, 145, 2]}, {"55060187": [117, 52, 1]}, {"55060191": [141, 16, 129]}, {"55060195": [19, 145, 2]}, {"55060199": [117, 16, 128]}, {"55060203": [17, 145, 2]}, {"55060207": [116, 52, 1]}, {"55060211": [138, 16, 129]}, {"55060215": [14, 145, 2]}, {"55060219": [116, 52, 1]}, {"55060223": [139, 16, 129]}, {"55060227": [11, 145, 2]}, {"55060231": [116, 52, 1]}, {"55060235": [88, 16, 129]}, {"55060239": [8, 52, 2]}, {"55060244": [52, 1]}, {"55060247": [120, 16, 129]}, {"55060251": [5, 52, 2]}, {"55060256": [52, 1]}, {"55060259": [121, 16, 129]}, {"55060263": [2, 52, 2]}, {"55060268": [52, 2]}, {"55060271": [255, 3, 224]}, {"55060275": [8]}, {"55060280": [143, 166]}, {"55060283": [48, 132, 197]}, {"55060287": [4, 8, 16, 9, 214]}, {"55060296": [143, 185]}, {"55060299": [44, 135, 37]}, {"55060303": [4, 8, 16, 9, 214]}, {"55060312": [60, 10, 128, 64, 37, 74, 32]}, {"55060320": [141, 75]}, {"55060323": [12, 17, 96]}, {"55060327": [2]}, {"55060332": [149, 69]}, {"55060335": [4, 60, 10, 128, 64, 37, 74, 32, 16, 161, 64]}, {"55060348": [60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060360": [3, 224]}, {"55060363": [8]}, {"55060368": [60, 8, 128, 64, 37, 8, 32]}, {"55060376": [141, 9]}, {"55060379": [12, 17, 32]}, {"55060383": [2]}, {"55060388": [129, 3]}, {"55060391": [2]}, {"55060393": [3, 15, 195]}, {"55060397": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55060411": [8]}, {"55060416": [144, 69]}, {"55060419": [3, 60, 8, 128, 64, 37, 8, 32]}, {"55060428": [141, 9]}, {"55060431": [12, 17, 32]}, {"55060435": [2]}, {"55060440": [145, 5]}, {"55060443": [3, 3, 224]}, {"55060447": [8]}, {"55060452": [143, 162]}, {"55060455": [36, 144, 69]}, {"55060460": [60, 8, 128, 64, 37, 8, 32]}, {"55060468": [141, 9]}, {"55060471": [12, 17, 32]}, {"55060475": [19]}, {"55060480": [145, 5]}, {"55060483": [1, 175, 164]}, {"55060488": [175, 165]}, {"55060491": [4, 175, 166]}, {"55060495": [8, 39, 189, 255, 232, 175, 191]}, {"55060503": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55060515": [6, 145, 6]}, {"55060519": [7, 141, 9]}, {"55060523": [8, 1, 32, 248, 9]}, {"55060532": [143, 191]}, {"55060535": [16, 39, 189]}, {"55060539": [24, 143, 164]}, {"55060544": [143, 165]}, {"55060547": [4, 143, 166]}, {"55060551": [8, 3, 224]}, {"55060555": [8]}, {"55060560": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55060571": [16, 175, 163]}, {"55060575": [20, 175, 191]}, {"55060579": [24, 12, 16, 10, 33]}, {"55060588": [143, 162]}, {"55060591": [16, 143, 163]}, {"55060595": [20, 143, 191]}, {"55060599": [24, 39, 189]}, {"55060603": [32, 3, 224]}, {"55060607": [8]}, {"55060612": [39, 189, 255, 232, 175, 191]}, {"55060619": [16, 60, 8, 128, 64, 37, 8, 32]}, {"55060628": [173]}, {"55060632": [173]}, {"55060635": [4, 173]}, {"55060639": [8, 173]}, {"55060643": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55060659": [42]}, {"55060665": [9, 15, 195, 1, 33, 32, 38]}, {"55060673": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 91]}, {"55060688": [4, 64]}, {"55060691": [34]}, {"55060696": [52, 68]}, {"55060700": [12, 16, 10, 160]}, {"55060708": [16, 96]}, {"55060711": [12]}, {"55060716": [60, 8, 128, 64, 37, 8, 32]}, {"55060724": [140, 105]}, {"55060728": [173, 9]}, {"55060732": [140, 105]}, {"55060735": [4, 173, 9]}, {"55060739": [4, 140, 105]}, {"55060743": [8, 173, 9]}, {"55060747": [8, 52, 9]}, {"55060751": [1, 173, 9]}, {"55060755": [12, 144, 98]}, {"55060760": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55060776": [52, 1]}, {"55060779": [10, 21, 65]}, {"55060783": [6]}, {"55060788": [149, 42]}, {"55060791": [28, 49, 74, 240, 31]}, {"55060797": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55060807": [28, 129, 9, 4, 36, 5, 33]}, {"55060815": [2]}, {"55060821": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55060831": [16, 39, 189]}, {"55060835": [24, 3, 224]}, {"55060839": [8]}, {"55060844": [39, 189, 255, 232, 175, 191]}, {"55060851": [16, 12, 16, 10, 105]}, {"55060860": [36, 1, 255, 255, 16, 65]}, {"55060867": [4]}, {"55060872": [52, 68]}, {"55060876": [12, 16, 10, 147]}, {"55060884": [143, 191]}, {"55060887": [16, 39, 189]}, {"55060891": [24, 3, 224]}, {"55060895": [8]}, {"55060900": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55060911": [164, 52, 8]}, {"55060916": [52, 137]}, {"55060920": [148, 170]}, {"55060924": [52, 1]}, {"55060927": [10, 21, 65]}, {"55060931": [14]}, {"55060936": [148, 171]}, {"55060939": [28, 52, 1]}, {"55060943": [16, 20, 65]}, {"55060947": [8]}, {"55060952": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55060963": [4]}, {"55060968": [36, 2, 255, 255, 16]}, {"55060975": [21]}, {"55060980": [52, 8]}, {"55060983": [1, 49, 105]}, {"55060987": [31, 52, 1]}, {"55060991": [21, 21, 65]}, {"55060995": [12]}, {"55061000": [52, 1]}, {"55061003": [62, 16, 129]}, {"55061007": [7]}, {"55061012": [52, 1]}, {"55061015": [66, 16, 129]}, {"55061019": [4]}, {"55061024": [36, 2, 255, 255, 16]}, {"55061031": [7]}, {"55061036": [52, 8]}, {"55061039": [2, 144, 169, 1, 65]}, {"55061045": [2, 18]}, {"55061049": [72, 16, 37]}, {"55061053": [2, 18]}, {"55061057": [73, 16, 37, 3, 224]}, {"55061063": [8]}, {"55061068": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061083": [4, 141, 9]}, {"55061088": [17, 32]}, {"55061091": [5]}, {"55061097": [9, 82, 2, 21, 68, 255, 250]}, {"55061108": [49, 34]}, {"55061111": [255, 3, 224]}, {"55061115": [8]}, {"55061120": [39, 189, 255, 224, 175, 176]}, {"55061127": [16, 175, 177]}, {"55061131": [20, 175, 191]}, {"55061135": [24, 52, 130]}, {"55061140": [52, 80]}, {"55061144": [38, 8, 255, 128, 5]}, {"55061151": [18]}, {"55061156": [60, 17, 128, 64, 38, 49, 32, 32, 52, 9]}, {"55061167": [16, 1, 9]}, {"55061171": [24]}, {"55061174": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061192": [142, 40]}, {"55061195": [12, 1]}, {"55061198": [248, 9]}, {"55061204": [20, 80, 255, 239]}, {"55061212": [54, 35]}, {"55061216": [16]}, {"55061219": [2]}, {"55061224": [52, 3]}, {"55061228": [143, 176]}, {"55061231": [16, 143, 177]}, {"55061235": [20, 143, 191]}, {"55061239": [24, 39, 189]}, {"55061243": [32, 3, 224]}, {"55061247": [8]}, {"55061252": [140, 136, 29, 44, 52, 9]}, {"55061259": [1]}, {"55061261": [9, 78]}, {"55061264": [1, 9, 16, 36, 16, 64]}, {"55061271": [36]}, {"55061276": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55061291": [164, 52, 1]}, {"55061295": [61, 17, 129]}, {"55061299": [10]}, {"55061305": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55061315": [25]}, {"55061320": [52, 13]}, {"55061323": [1, 161, 141, 29, 40, 37, 74]}, {"55061331": [3, 16]}, {"55061335": [9]}, {"55061340": [52, 12]}, {"55061343": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55061359": [14]}, {"55061364": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 1, 1, 10, 64, 33, 129, 8]}, {"55061400": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061412": [52, 2]}, {"55061416": [3, 224]}, {"55061419": [8]}, {"55061424": [60, 8, 128, 64, 37, 8, 28]}, {"55061432": [129, 8]}, {"55061436": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061448": [3, 224]}, {"55061451": [8]}, {"55061456": [175, 164]}, {"55061459": [104, 175, 165]}, {"55061463": [108, 175, 166]}, {"55061467": [112, 175, 167]}, {"55061471": [116, 39, 189, 255, 232, 175, 163]}, {"55061479": [16, 175, 191]}, {"55061483": [20, 60, 8, 128, 64, 37, 8, 32, 16, 129, 8]}, {"55061496": [17]}, {"55061499": [14]}, {"55061504": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55061515": [1, 165, 42]}, {"55061520": [60, 9, 128, 65, 52, 10]}, {"55061527": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 33]}, {"55061556": [143, 163]}, {"55061559": [16, 143, 191]}, {"55061563": [20, 39, 189]}, {"55061567": [24, 143, 164]}, {"55061571": [104, 143, 165]}, {"55061575": [108, 143, 166]}, {"55061579": [112, 143, 167]}, {"55061583": [116, 132, 110, 19, 196, 3, 224]}, {"55061591": [8]}, {"55061596": [147, 25]}, {"55061599": [116, 52, 1]}, {"55061603": [255, 23, 33]}, {"55061607": [2]}, {"55061612": [52, 25]}, {"55061615": [44, 3, 224]}, {"55061619": [8, 167, 185]}, {"55061623": [154, 147, 44]}, {"55061627": [116, 52, 1]}, {"55061631": [255, 21, 129]}, {"55061635": [2]}, {"55061640": [52, 12]}, {"55061643": [44, 3, 224]}, {"55061647": [8]}, {"55061652": [145, 174]}, {"55061655": [116, 52, 1]}, {"55061659": [255, 21, 193]}, {"55061663": [2]}, {"55061668": [52, 14]}, {"55061671": [44, 3, 224]}, {"55061675": [8, 167, 174]}, {"55061679": [154, 145, 207]}, {"55061683": [116, 52, 1]}, {"55061687": [255, 21, 225]}, {"55061691": [2]}, {"55061696": [52, 15]}, {"55061699": [44, 3, 224]}, {"55061703": [8, 167, 175]}, {"55061707": [154, 60, 8, 128, 64, 37, 8, 32, 20, 142, 9]}, {"55061719": [104, 173, 9]}, {"55061724": [142, 9]}, {"55061727": [108, 173, 9]}, {"55061731": [4, 150, 9]}, {"55061735": [112, 165, 9]}, {"55061739": [8, 150, 9]}, {"55061743": [156, 165, 9]}, {"55061747": [10, 3, 224]}, {"55061751": [8, 142, 14]}, {"55061755": [4, 39, 189, 255, 224, 175, 176]}, {"55061763": [16, 175, 177]}, {"55061767": [20, 175, 191]}, {"55061771": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 20, 142, 8]}, {"55061791": [4, 17]}, {"55061795": [5]}, {"55061800": [12, 16, 11, 105]}, {"55061808": [16]}, {"55061811": [3]}, {"55061816": [12, 16, 11, 124]}, {"55061824": [12, 16, 11, 92, 52, 4]}, {"55061832": [12, 16, 11, 92, 52, 4]}, {"55061839": [1, 12, 16, 11, 92, 52, 4]}, {"55061847": [2, 143, 176]}, {"55061851": [16, 143, 177]}, {"55061855": [20, 143, 191]}, {"55061859": [24, 39, 189]}, {"55061863": [32, 3, 224]}, {"55061867": [8]}, {"55061872": [2, 4, 64, 33, 145, 9]}, {"55061879": [108, 52, 1]}, {"55061883": [255, 17, 33]}, {"55061887": [7]}, {"55061892": [2, 9, 72, 33, 145, 41]}, {"55061899": [116, 52, 1]}, {"55061903": [44, 17, 33]}, {"55061907": [2]}, {"55061912": [161, 9]}, {"55061915": [105, 3, 224]}, {"55061919": [8]}, {"55061924": [39, 189, 255, 232, 175, 191]}, {"55061931": [16, 142, 40]}, {"55061936": [174, 8]}, {"55061939": [64, 142, 40]}, {"55061943": [4, 174, 8]}, {"55061947": [68, 150, 40]}, {"55061951": [8, 166, 8]}, {"55061955": [72, 162]}, {"55061958": [15, 51, 146, 8]}, {"55061963": [74, 52, 1]}, {"55061967": [255, 21, 1]}, {"55061971": [3]}, {"55061976": [12, 16, 11, 138]}, {"55061984": [143, 191]}, {"55061987": [16, 39, 189]}, {"55061991": [24, 3, 224]}, {"55061995": [8]}, {"55062000": [142, 8]}, {"55062003": [64, 174, 8]}, {"55062007": [104, 142, 8]}, {"55062011": [68, 174, 8]}, {"55062015": [108, 150, 8]}, {"55062019": [72, 166, 8]}, {"55062023": [112, 146, 8]}, {"55062027": [104, 52, 1]}, {"55062031": [255, 21, 1]}, {"55062035": [3]}, {"55062040": [52, 8]}, {"55062043": [1, 162, 8, 15, 51, 3, 224]}, {"55062051": [8]}, {"55062056": [39, 189, 255, 232, 175, 191]}, {"55062063": [16, 150, 8]}, {"55062067": [156, 49, 8]}, {"55062071": [64, 17]}, {"55062075": [5]}, {"55062080": [150, 8]}, {"55062083": [112, 49, 8, 255, 15, 53, 8]}, {"55062091": [48, 166, 8]}, {"55062095": [112, 146, 40]}, {"55062099": [1, 162, 8]}, {"55062103": [105, 150, 40]}, {"55062107": [2, 166, 8]}, {"55062111": [106, 142, 40]}, {"55062115": [4, 174, 8]}, {"55062119": [108, 12, 16, 11, 164, 52, 4]}, {"55062128": [12, 16, 11, 164, 52, 4]}, {"55062135": [1, 12, 16, 11, 164, 52, 4]}, {"55062143": [2, 143, 191]}, {"55062147": [16, 39, 189]}, {"55062151": [24, 3, 224]}, {"55062155": [8]}, {"55062160": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 47, 60, 145, 10]}, {"55062175": [108, 52, 1]}, {"55062179": [255, 17, 65]}, {"55062183": [5]}, {"55062188": [1, 42, 72, 33, 145, 41]}, {"55062196": [21, 32]}, {"55062199": [28]}, {"55062204": [60, 9, 128, 64, 37, 41, 47, 47, 37, 41]}, {"55062215": [1, 145, 42]}, {"55062220": [17, 64]}, {"55062223": [19]}, {"55062228": [2, 10, 88, 33, 145, 107]}, {"55062235": [116, 52, 1]}, {"55062239": [255, 17, 97, 255, 248]}, {"55062248": [146, 12]}, {"55062251": [108, 17, 138, 255, 245]}, {"55062260": [146, 12]}, {"55062263": [109, 17, 138, 255, 242]}, {"55062272": [146, 12]}, {"55062275": [110, 17, 138, 255, 239]}, {"55062284": [161, 11]}, {"55062287": [105, 161, 10]}, {"55062291": [108, 16]}, {"55062295": [4]}, {"55062300": [52, 9]}, {"55062303": [255, 161, 9]}, {"55062307": [105, 161, 9]}, {"55062311": [108, 3, 224]}, {"55062315": [8]}, {"55062320": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55062333": [1, 1, 1, 1, 1]}, {"55062339": [1, 1, 1, 1, 1]}, {"55062345": [1]}, {"55062347": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55062357": [51, 8, 33, 32, 15]}, {"55062363": [71, 21, 234]}, {"55062367": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062379": [164]}, {"55062381": [15, 122, 3, 20, 64]}, {"55062387": [5, 52, 2, 72, 48, 21, 226]}, {"55062395": [7]}, {"55062400": [36, 25]}, {"55062403": [3, 16]}, {"55062407": [4, 52, 2, 99, 17, 21, 226]}, {"55062415": [2]}, {"55062420": [36, 25]}, {"55062423": [3, 3, 224]}, {"55062427": [8]}, {"55062432": [141, 173, 138, 160, 52, 2, 128]}, {"55062440": [16, 77]}, {"55062443": [2]}, {"55062448": [16]}, {"55062451": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55062467": [1, 16, 64]}, {"55062471": [2]}, {"55062476": [16]}, {"55062479": [2, 52, 2]}, {"55062483": [1, 161, 226, 28, 191, 3, 224]}, {"55062491": [8]}, {"55062497": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062511": [164]}, {"55062513": [15, 122, 3, 20, 64]}, {"55062519": [5, 52, 2, 72, 48, 21, 226]}, {"55062527": [7]}, {"55062532": [36, 25]}, {"55062535": [3, 16]}, {"55062539": [4, 52, 2, 99, 17, 21, 226]}, {"55062547": [2]}, {"55062552": [36, 25]}, {"55062555": [3, 3, 224]}, {"55062559": [8]}, {"55062564": [162, 37]}, {"55062567": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55062579": [4, 142, 10]}, {"55062584": [17, 64]}, {"55062587": [11]}, {"55062593": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55062605": [24, 194, 2, 23]}, {"55062611": [3, 49, 89]}, {"55062615": [255, 129, 234]}, {"55062620": [3, 42, 200, 37, 8, 16, 12, 12, 161, 249]}, {"55062632": [3, 224]}, {"55062635": [8]}] \ No newline at end of file +[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 20]}, {"11325064": [12, 16, 10, 236, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 11, 63]}, {"11427312": [12, 16, 11, 232]}, {"11562028": [12, 16, 12, 9]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 11, 248]}, {"11882076": [12, 16, 11, 213]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 11, 30, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 11, 37, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 11, 44, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 11, 23, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 9, 228]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 9, 177]}, {"12427480": [12, 16, 9, 206]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 9, 210]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 10, 244, 0, 0, 0, 0]}, {"12491456": [12, 16, 9, 240]}, {"12491480": [12, 16, 9, 249]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 10, 193]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 11, 51]}, {"14357459": [118]}, {"14624335": [118]}, {"14872723": [52]}, {"15506663": [122]}, {"55057408": [90, 93, 92, 94, 81, 82, 83]}, {"55058464": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 72, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 100, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 140, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 180, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 220, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 4, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 32, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 60, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 88, 83, 65, 56, 67]}, {"55058613": [235, 21, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 55, 68]}, {"55058629": [235, 22, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 57, 69]}, {"55058645": [235, 23, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 63, 71]}, {"55058677": [244, 25, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 10, 6]}, {"55058757": [185, 1, 3, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 28]}, {"55058773": [185, 1, 4, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 29]}, {"55058789": [185, 1, 5, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 30]}, {"55058805": [185, 1, 6, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 42]}, {"55058821": [185, 1, 7, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 97]}, {"55058837": [185, 1, 10, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 98]}, {"55058853": [184, 2]}, {"55058856": [128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 99]}, {"55058869": [184, 2, 1, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 100]}, {"55058885": [184, 2, 2, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 101]}, {"55058901": [184, 2, 3, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 124]}, {"55058917": [184, 2, 4, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 125]}, {"55058933": [184, 2, 5, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 126]}, {"55058949": [184, 2, 6, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 127]}, {"55058965": [184, 2, 7, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 162]}, {"55058981": [184, 2, 8, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 135]}, {"55058997": [184, 2, 9, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 136]}, {"55059013": [200, 4]}, {"55059016": [128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 137]}, {"55059029": [200, 4, 1, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 138]}, {"55059045": [200, 4, 2, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 139]}, {"55059061": [200, 4, 3, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 140]}, {"55059077": [200, 4, 4, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 142]}, {"55059093": [200, 4, 5, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 143]}, {"55059109": [200, 4, 6, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 163]}, {"55059125": [200, 4, 7, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 165]}, {"55059141": [200, 4, 8, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 146]}, {"55059157": [200, 4, 9, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 2, 147]}, {"55059173": [170, 3, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 2, 148]}, {"55059189": [170, 4, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 2, 149]}, {"55059205": [170, 5, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 2, 166]}, {"55059221": [170, 6, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 2, 169]}, {"55059237": [170, 7, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 2, 155]}, {"55059253": [170, 8, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 2, 159]}, {"55059269": [170, 11, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 2, 160]}, {"55059285": [170, 12, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 2, 161]}, {"55059301": [170, 13, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 61, 67, 12]}, {"55059317": [248, 255, 255, 128, 64, 37, 204, 128, 64, 36, 64, 77, 131, 247, 85]}, {"55059333": [183, 255, 255, 128, 64, 37, 196, 128, 64, 36, 64, 83, 146, 219, 230]}, {"55059349": [216, 255, 255, 128, 64, 37, 196, 128, 64, 37, 140, 83, 147, 218, 230]}, {"55059365": [216, 255, 255, 128, 64, 37, 196, 128, 64, 37, 140, 83, 148, 217, 230]}, {"55059381": [216, 255, 255, 128, 64, 37, 196, 128, 64, 37, 140, 83, 142, 224, 50]}, {"55059397": [206, 255, 255, 128, 64, 37, 196, 128, 64, 37, 168, 83, 143, 224, 50]}, {"55059413": [206, 255, 255, 128, 64, 37, 196, 128, 64, 37, 168, 83, 144, 224, 50]}, {"55059429": [206, 255, 255, 128, 64, 37, 196, 128, 64, 37, 168, 77, 140, 238, 52]}, {"55059445": [187, 255, 255, 128, 64, 37, 196, 128, 64, 36, 64, 77, 141, 238, 52]}, {"55059461": [187, 255, 255, 128, 64, 37, 196, 128, 64, 36, 64, 79, 65, 19, 233]}, {"55059477": [189, 255, 255, 128, 64, 38, 92, 128, 64, 36, 64, 79, 65, 30, 228]}, {"55059493": [205, 255, 255, 128, 64, 38, 124, 128, 64, 37, 116, 79, 65, 31, 232]}, {"55059509": [205, 255, 255, 128, 64, 38, 156, 128, 64, 36, 64, 3, 224]}, {"55059523": [8, 52, 162]}, {"55059528": [144, 136]}, {"55059531": [125, 52, 1]}, {"55059535": [255, 17, 1]}, {"55059539": [2, 52, 2]}, {"55059543": [8, 52, 2]}, {"55059547": [9, 3, 224]}, {"55059551": [8]}, {"55059556": [144, 136]}, {"55059559": [163, 49, 8]}, {"55059563": [192, 17]}, {"55059567": [5, 52, 2]}, {"55059571": [84, 52, 1]}, {"55059575": [64, 17, 1]}, {"55059579": [2, 52, 2]}, {"55059583": [53, 52, 2]}, {"55059587": [54, 3, 224]}, {"55059591": [8]}, {"55059596": [144, 136]}, {"55059599": [163, 49, 8]}, {"55059603": [24, 17]}, {"55059607": [5, 52, 2]}, {"55059611": [50, 52, 1]}, {"55059615": [8, 17, 1]}, {"55059619": [2, 52, 2]}, {"55059623": [51, 52, 2]}, {"55059627": [52, 3, 224]}, {"55059631": [8]}, {"55059636": [144, 136]}, {"55059639": [163, 49, 8]}, {"55059643": [3, 17]}, {"55059647": [5, 52, 2]}, {"55059651": [4, 52, 1]}, {"55059655": [1, 17, 1]}, {"55059659": [2, 52, 2]}, {"55059663": [48, 52, 2]}, {"55059667": [49, 3, 224]}, {"55059671": [8]}, {"55059676": [144, 136]}, {"55059679": [162, 49, 8]}, {"55059683": [192, 17]}, {"55059687": [5, 52, 2]}, {"55059691": [5, 52, 1]}, {"55059695": [64, 17, 1]}, {"55059699": [2, 52, 2]}, {"55059703": [96, 52, 2]}, {"55059707": [123, 3, 224]}, {"55059711": [8]}, {"55059716": [144, 136]}, {"55059719": [162, 49, 8]}, {"55059723": [48, 17]}, {"55059727": [2, 52, 2]}, {"55059731": [69, 52, 2]}, {"55059735": [70, 3, 224]}, {"55059739": [8]}, {"55059744": [144, 136]}, {"55059747": [162, 49, 8]}, {"55059751": [6, 17]}, {"55059755": [2, 52, 2]}, {"55059759": [55, 52, 2]}, {"55059763": [56, 3, 224]}, {"55059767": [8]}, {"55059772": [144, 136]}, {"55059775": [161, 49, 8]}, {"55059779": [32, 17]}, {"55059783": [2, 52, 2]}, {"55059787": [121, 52, 2]}, {"55059791": [122, 3, 224]}, {"55059795": [8]}, {"55059800": [144, 136]}, {"55059803": [161, 49, 8]}, {"55059807": [4, 17]}, {"55059811": [2, 52, 2]}, {"55059815": [119, 52, 2]}, {"55059819": [120, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [50, 17]}, {"55059835": [2, 52, 2]}, {"55059839": [192, 52, 2]}, {"55059843": [193, 3, 224]}, {"55059847": [8]}, {"55059852": [144, 136]}, {"55059855": [163, 49, 8]}, {"55059859": [3, 17]}, {"55059863": [2, 52, 2]}, {"55059867": [77, 52, 162]}, {"55059872": [3, 224]}, {"55059875": [8]}, {"55059880": [144, 136]}, {"55059883": [163, 49, 8]}, {"55059887": [24, 17]}, {"55059891": [2, 52, 2]}, {"55059895": [77, 52, 162]}, {"55059900": [3, 224]}, {"55059903": [8]}, {"55059908": [3, 224]}, {"55059911": [8]}, {"55059916": [52, 8]}, {"55059919": [1, 160, 136]}, {"55059923": [62, 3, 224]}, {"55059927": [8]}, {"55059932": [36, 136]}, {"55059935": [134, 36, 9, 255, 255, 37, 41]}, {"55059943": [1, 52, 1]}, {"55059947": [3]}, {"55059949": [41, 8, 42, 20, 32]}, {"55059955": [7]}, {"55059960": [1, 9, 80, 33, 145, 75]}, {"55059968": [52, 1]}, {"55059971": [255, 21, 97, 255, 247]}, {"55059980": [161, 69]}, {"55059984": [3, 224]}, {"55059987": [8]}, {"55059992": [36, 136]}, {"55059995": [168, 1, 6, 64, 33, 145, 9]}, {"55060004": [1, 37, 72, 37, 161, 9]}, {"55060012": [3, 224]}, {"55060015": [8]}, {"55060020": [36, 136]}, {"55060023": [188, 1, 5, 64, 33, 129, 9]}, {"55060032": [5, 33]}, {"55060035": [2]}, {"55060040": [52, 9]}, {"55060044": [37, 41]}, {"55060047": [1, 161, 9]}, {"55060052": [3, 224]}, {"55060055": [8]}, {"55060060": [52, 8]}, {"55060063": [1, 160, 136]}, {"55060067": [61, 52, 8]}, {"55060071": [20, 160, 136]}, {"55060075": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060087": [8]}, {"55060092": [52, 8]}, {"55060095": [1, 160, 136]}, {"55060099": [50, 160, 136]}, {"55060103": [58, 52, 8]}, {"55060107": [48, 164, 136, 19, 244, 160, 136]}, {"55060115": [51, 3, 224]}, {"55060119": [8]}, {"55060124": [52, 8]}, {"55060127": [2, 160, 136]}, {"55060131": [50, 52, 8]}, {"55060135": [1, 160, 136]}, {"55060139": [58, 160, 136]}, {"55060143": [60, 52, 8]}, {"55060147": [96, 164, 136, 19, 244, 160, 136]}, {"55060155": [51, 3, 224]}, {"55060159": [8]}, {"55060164": [48, 132]}, {"55060167": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060179": [140, 16, 129]}, {"55060183": [22, 145, 2]}, {"55060187": [117, 52, 1]}, {"55060191": [141, 16, 129]}, {"55060195": [19, 145, 2]}, {"55060199": [117, 16, 128]}, {"55060203": [17, 145, 2]}, {"55060207": [116, 52, 1]}, {"55060211": [138, 16, 129]}, {"55060215": [14, 145, 2]}, {"55060219": [116, 52, 1]}, {"55060223": [139, 16, 129]}, {"55060227": [11, 145, 2]}, {"55060231": [116, 52, 1]}, {"55060235": [88, 16, 129]}, {"55060239": [8, 52, 2]}, {"55060244": [52, 1]}, {"55060247": [120, 16, 129]}, {"55060251": [5, 52, 2]}, {"55060256": [52, 1]}, {"55060259": [121, 16, 129]}, {"55060263": [2, 52, 2]}, {"55060268": [52, 2]}, {"55060271": [255, 3, 224]}, {"55060275": [8]}, {"55060280": [143, 166]}, {"55060283": [48, 132, 197]}, {"55060287": [4, 8, 16, 9, 214]}, {"55060296": [143, 185]}, {"55060299": [44, 135, 37]}, {"55060303": [4, 8, 16, 9, 214]}, {"55060312": [60, 10, 128, 64, 37, 74, 32]}, {"55060320": [141, 75]}, {"55060323": [12, 17, 96]}, {"55060327": [2]}, {"55060332": [149, 69]}, {"55060335": [4, 60, 10, 128, 64, 37, 74, 32, 16, 161, 64]}, {"55060348": [60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060360": [3, 224]}, {"55060363": [8]}, {"55060368": [60, 8, 128, 64, 37, 8, 32]}, {"55060376": [141, 9]}, {"55060379": [12, 17, 32]}, {"55060383": [2]}, {"55060388": [129, 3]}, {"55060391": [2]}, {"55060393": [3, 15, 195]}, {"55060397": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55060411": [8]}, {"55060416": [144, 69]}, {"55060419": [3, 60, 8, 128, 64, 37, 8, 32]}, {"55060428": [141, 9]}, {"55060431": [12, 17, 32]}, {"55060435": [2]}, {"55060440": [145, 5]}, {"55060443": [3, 3, 224]}, {"55060447": [8]}, {"55060452": [143, 162]}, {"55060455": [36, 144, 69]}, {"55060460": [60, 8, 128, 64, 37, 8, 32]}, {"55060468": [141, 9]}, {"55060471": [12, 17, 32]}, {"55060475": [19]}, {"55060480": [145, 5]}, {"55060483": [1, 175, 164]}, {"55060488": [175, 165]}, {"55060491": [4, 175, 166]}, {"55060495": [8, 39, 189, 255, 232, 175, 191]}, {"55060503": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55060515": [6, 145, 6]}, {"55060519": [7, 141, 9]}, {"55060523": [8, 1, 32, 248, 9]}, {"55060532": [143, 191]}, {"55060535": [16, 39, 189]}, {"55060539": [24, 143, 164]}, {"55060544": [143, 165]}, {"55060547": [4, 143, 166]}, {"55060551": [8, 3, 224]}, {"55060555": [8]}, {"55060560": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55060571": [16, 175, 163]}, {"55060575": [20, 175, 191]}, {"55060579": [24, 12, 16, 10, 33]}, {"55060588": [143, 162]}, {"55060591": [16, 143, 163]}, {"55060595": [20, 143, 191]}, {"55060599": [24, 39, 189]}, {"55060603": [32, 3, 224]}, {"55060607": [8]}, {"55060612": [39, 189, 255, 232, 175, 191]}, {"55060619": [16, 60, 8, 128, 64, 37, 8, 32]}, {"55060628": [173]}, {"55060632": [173]}, {"55060635": [4, 173]}, {"55060639": [8, 173]}, {"55060643": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55060659": [42]}, {"55060665": [9, 15, 195, 1, 33, 32, 38]}, {"55060673": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 91]}, {"55060688": [4, 64]}, {"55060691": [34]}, {"55060696": [52, 68]}, {"55060700": [12, 16, 10, 160]}, {"55060708": [16, 96]}, {"55060711": [12]}, {"55060716": [60, 8, 128, 64, 37, 8, 32]}, {"55060724": [140, 105]}, {"55060728": [173, 9]}, {"55060732": [140, 105]}, {"55060735": [4, 173, 9]}, {"55060739": [4, 140, 105]}, {"55060743": [8, 173, 9]}, {"55060747": [8, 52, 9]}, {"55060751": [1, 173, 9]}, {"55060755": [12, 144, 98]}, {"55060760": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55060776": [52, 1]}, {"55060779": [10, 21, 65]}, {"55060783": [6]}, {"55060788": [149, 42]}, {"55060791": [28, 49, 74, 240, 31]}, {"55060797": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55060807": [28, 129, 9, 4, 36, 5, 33]}, {"55060815": [2]}, {"55060821": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55060831": [16, 39, 189]}, {"55060835": [24, 3, 224]}, {"55060839": [8]}, {"55060844": [39, 189, 255, 232, 175, 191]}, {"55060851": [16, 12, 16, 10, 105]}, {"55060860": [36, 1, 255, 255, 16, 65]}, {"55060867": [4]}, {"55060872": [52, 68]}, {"55060876": [12, 16, 10, 147]}, {"55060884": [143, 191]}, {"55060887": [16, 39, 189]}, {"55060891": [24, 3, 224]}, {"55060895": [8]}, {"55060900": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55060911": [164, 52, 8]}, {"55060916": [52, 137]}, {"55060920": [148, 170]}, {"55060924": [52, 1]}, {"55060927": [10, 21, 65]}, {"55060931": [14]}, {"55060936": [148, 171]}, {"55060939": [28, 52, 1]}, {"55060943": [16, 20, 65]}, {"55060947": [8]}, {"55060952": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55060963": [4]}, {"55060968": [36, 2, 255, 255, 16]}, {"55060975": [21]}, {"55060980": [52, 8]}, {"55060983": [1, 49, 105]}, {"55060987": [31, 52, 1]}, {"55060991": [21, 21, 65]}, {"55060995": [12]}, {"55061000": [52, 1]}, {"55061003": [62, 16, 129]}, {"55061007": [7]}, {"55061012": [52, 1]}, {"55061015": [66, 16, 129]}, {"55061019": [4]}, {"55061024": [36, 2, 255, 255, 16]}, {"55061031": [7]}, {"55061036": [52, 8]}, {"55061039": [2, 144, 169, 1, 65]}, {"55061045": [2, 18]}, {"55061049": [72, 16, 37]}, {"55061053": [2, 18]}, {"55061057": [73, 16, 37, 3, 224]}, {"55061063": [8]}, {"55061068": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061083": [4, 141, 9]}, {"55061088": [17, 32]}, {"55061091": [5]}, {"55061097": [9, 82, 2, 21, 68, 255, 250]}, {"55061108": [49, 34]}, {"55061111": [255, 3, 224]}, {"55061115": [8]}, {"55061120": [39, 189, 255, 224, 175, 176]}, {"55061127": [16, 175, 177]}, {"55061131": [20, 175, 191]}, {"55061135": [24, 52, 130]}, {"55061140": [52, 80]}, {"55061144": [38, 8, 255, 128, 5]}, {"55061151": [18]}, {"55061156": [60, 17, 128, 64, 38, 49, 32, 32, 52, 9]}, {"55061167": [16, 1, 9]}, {"55061171": [24]}, {"55061174": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061192": [142, 40]}, {"55061195": [12, 1]}, {"55061198": [248, 9]}, {"55061204": [20, 80, 255, 239]}, {"55061212": [54, 35]}, {"55061216": [16]}, {"55061219": [2]}, {"55061224": [52, 3]}, {"55061228": [143, 176]}, {"55061231": [16, 143, 177]}, {"55061235": [20, 143, 191]}, {"55061239": [24, 39, 189]}, {"55061243": [32, 3, 224]}, {"55061247": [8]}, {"55061252": [140, 136, 29, 44, 52, 9]}, {"55061259": [1]}, {"55061261": [9, 78]}, {"55061264": [1, 9, 16, 36, 16, 64]}, {"55061271": [36]}, {"55061276": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55061291": [164, 52, 1]}, {"55061295": [61, 17, 129]}, {"55061299": [10]}, {"55061305": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55061315": [25]}, {"55061320": [52, 13]}, {"55061323": [1, 161, 141, 29, 40, 37, 74]}, {"55061331": [3, 16]}, {"55061335": [9]}, {"55061340": [52, 12]}, {"55061343": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55061359": [14]}, {"55061364": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 1, 1, 10, 64, 33, 129, 8]}, {"55061400": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061412": [52, 2]}, {"55061416": [3, 224]}, {"55061419": [8]}, {"55061424": [60, 8, 128, 64, 37, 8, 28]}, {"55061432": [129, 8]}, {"55061436": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061448": [3, 224]}, {"55061451": [8]}, {"55061456": [175, 164]}, {"55061459": [104, 175, 165]}, {"55061463": [108, 175, 166]}, {"55061467": [112, 175, 167]}, {"55061471": [116, 39, 189, 255, 232, 175, 163]}, {"55061479": [16, 175, 191]}, {"55061483": [20, 60, 8, 128, 64, 37, 8, 32, 16, 129, 8]}, {"55061496": [17]}, {"55061499": [14]}, {"55061504": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55061515": [1, 165, 42]}, {"55061520": [60, 9, 128, 65, 52, 10]}, {"55061527": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 33]}, {"55061556": [143, 163]}, {"55061559": [16, 143, 191]}, {"55061563": [20, 39, 189]}, {"55061567": [24, 143, 164]}, {"55061571": [104, 143, 165]}, {"55061575": [108, 143, 166]}, {"55061579": [112, 143, 167]}, {"55061583": [116, 132, 110, 19, 196, 3, 224]}, {"55061591": [8]}, {"55061596": [147, 25]}, {"55061599": [116, 52, 1]}, {"55061603": [255, 23, 33]}, {"55061607": [2]}, {"55061612": [52, 25]}, {"55061615": [44, 3, 224]}, {"55061619": [8, 167, 185]}, {"55061623": [154, 147, 44]}, {"55061627": [116, 52, 1]}, {"55061631": [255, 21, 129]}, {"55061635": [2]}, {"55061640": [52, 12]}, {"55061643": [44, 3, 224]}, {"55061647": [8]}, {"55061652": [145, 174]}, {"55061655": [116, 52, 1]}, {"55061659": [255, 21, 193]}, {"55061663": [2]}, {"55061668": [52, 14]}, {"55061671": [44, 3, 224]}, {"55061675": [8, 167, 174]}, {"55061679": [154, 145, 207]}, {"55061683": [116, 52, 1]}, {"55061687": [255, 21, 225]}, {"55061691": [2]}, {"55061696": [52, 15]}, {"55061699": [44, 3, 224]}, {"55061703": [8, 167, 175]}, {"55061707": [154, 60, 8, 128, 64, 37, 8, 32, 20, 142, 9]}, {"55061719": [104, 173, 9]}, {"55061724": [142, 9]}, {"55061727": [108, 173, 9]}, {"55061731": [4, 150, 9]}, {"55061735": [112, 165, 9]}, {"55061739": [8, 150, 9]}, {"55061743": [156, 165, 9]}, {"55061747": [10, 3, 224]}, {"55061751": [8, 142, 14]}, {"55061755": [4, 39, 189, 255, 224, 175, 176]}, {"55061763": [16, 175, 177]}, {"55061767": [20, 175, 191]}, {"55061771": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 20, 142, 8]}, {"55061791": [4, 17]}, {"55061795": [5]}, {"55061800": [12, 16, 11, 105]}, {"55061808": [16]}, {"55061811": [3]}, {"55061816": [12, 16, 11, 124]}, {"55061824": [12, 16, 11, 92, 52, 4]}, {"55061832": [12, 16, 11, 92, 52, 4]}, {"55061839": [1, 12, 16, 11, 92, 52, 4]}, {"55061847": [2, 143, 176]}, {"55061851": [16, 143, 177]}, {"55061855": [20, 143, 191]}, {"55061859": [24, 39, 189]}, {"55061863": [32, 3, 224]}, {"55061867": [8]}, {"55061872": [2, 4, 64, 33, 145, 9]}, {"55061879": [108, 52, 1]}, {"55061883": [255, 17, 33]}, {"55061887": [7]}, {"55061892": [2, 9, 72, 33, 145, 41]}, {"55061899": [116, 52, 1]}, {"55061903": [44, 17, 33]}, {"55061907": [2]}, {"55061912": [161, 9]}, {"55061915": [105, 3, 224]}, {"55061919": [8]}, {"55061924": [39, 189, 255, 232, 175, 191]}, {"55061931": [16, 142, 40]}, {"55061936": [174, 8]}, {"55061939": [64, 142, 40]}, {"55061943": [4, 174, 8]}, {"55061947": [68, 150, 40]}, {"55061951": [8, 166, 8]}, {"55061955": [72, 162]}, {"55061958": [15, 51, 146, 8]}, {"55061963": [74, 52, 1]}, {"55061967": [255, 21, 1]}, {"55061971": [3]}, {"55061976": [12, 16, 11, 138]}, {"55061984": [143, 191]}, {"55061987": [16, 39, 189]}, {"55061991": [24, 3, 224]}, {"55061995": [8]}, {"55062000": [142, 8]}, {"55062003": [64, 174, 8]}, {"55062007": [104, 142, 8]}, {"55062011": [68, 174, 8]}, {"55062015": [108, 150, 8]}, {"55062019": [72, 166, 8]}, {"55062023": [112, 146, 8]}, {"55062027": [104, 52, 1]}, {"55062031": [255, 21, 1]}, {"55062035": [3]}, {"55062040": [52, 8]}, {"55062043": [1, 162, 8, 15, 51, 3, 224]}, {"55062051": [8]}, {"55062056": [39, 189, 255, 232, 175, 191]}, {"55062063": [16, 150, 8]}, {"55062067": [156, 49, 8]}, {"55062071": [64, 17]}, {"55062075": [5]}, {"55062080": [150, 8]}, {"55062083": [112, 49, 8, 255, 15, 53, 8]}, {"55062091": [48, 166, 8]}, {"55062095": [112, 146, 40]}, {"55062099": [1, 162, 8]}, {"55062103": [105, 150, 40]}, {"55062107": [2, 166, 8]}, {"55062111": [106, 142, 40]}, {"55062115": [4, 174, 8]}, {"55062119": [108, 12, 16, 11, 164, 52, 4]}, {"55062128": [12, 16, 11, 164, 52, 4]}, {"55062135": [1, 12, 16, 11, 164, 52, 4]}, {"55062143": [2, 143, 191]}, {"55062147": [16, 39, 189]}, {"55062151": [24, 3, 224]}, {"55062155": [8]}, {"55062160": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 47, 60, 145, 10]}, {"55062175": [108, 52, 1]}, {"55062179": [255, 17, 65]}, {"55062183": [5]}, {"55062188": [1, 42, 72, 33, 145, 41]}, {"55062196": [21, 32]}, {"55062199": [28]}, {"55062204": [60, 9, 128, 64, 37, 41, 47, 47, 37, 41]}, {"55062215": [1, 145, 42]}, {"55062220": [17, 64]}, {"55062223": [19]}, {"55062228": [2, 10, 88, 33, 145, 107]}, {"55062235": [116, 52, 1]}, {"55062239": [255, 17, 97, 255, 248]}, {"55062248": [146, 12]}, {"55062251": [108, 17, 138, 255, 245]}, {"55062260": [146, 12]}, {"55062263": [109, 17, 138, 255, 242]}, {"55062272": [146, 12]}, {"55062275": [110, 17, 138, 255, 239]}, {"55062284": [161, 11]}, {"55062287": [105, 161, 10]}, {"55062291": [108, 16]}, {"55062295": [4]}, {"55062300": [52, 9]}, {"55062303": [255, 161, 9]}, {"55062307": [105, 161, 9]}, {"55062311": [108, 3, 224]}, {"55062315": [8]}, {"55062320": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55062333": [1, 1, 1, 1, 1]}, {"55062339": [1, 1, 1, 1, 1]}, {"55062345": [1]}, {"55062347": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55062357": [51, 8, 33, 32, 15]}, {"55062363": [71, 21, 234]}, {"55062367": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062379": [164]}, {"55062381": [15, 122, 3, 20, 64]}, {"55062387": [5, 52, 2, 72, 48, 21, 226]}, {"55062395": [7]}, {"55062400": [36, 25]}, {"55062403": [3, 16]}, {"55062407": [4, 52, 2, 99, 17, 21, 226]}, {"55062415": [2]}, {"55062420": [36, 25]}, {"55062423": [3, 3, 224]}, {"55062427": [8]}, {"55062432": [141, 173, 138, 160, 52, 2, 128]}, {"55062440": [16, 77]}, {"55062443": [2]}, {"55062448": [16]}, {"55062451": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55062467": [1, 16, 64]}, {"55062471": [2]}, {"55062476": [16]}, {"55062479": [2, 52, 2]}, {"55062483": [1, 161, 226, 28, 191, 3, 224]}, {"55062491": [8]}, {"55062497": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062511": [164]}, {"55062513": [15, 122, 3, 20, 64]}, {"55062519": [5, 52, 2, 72, 48, 21, 226]}, {"55062527": [7]}, {"55062532": [36, 25]}, {"55062535": [3, 16]}, {"55062539": [4, 52, 2, 99, 17, 21, 226]}, {"55062547": [2]}, {"55062552": [36, 25]}, {"55062555": [3, 3, 224]}, {"55062559": [8]}, {"55062564": [162, 37]}, {"55062567": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55062579": [4, 142, 10]}, {"55062584": [17, 64]}, {"55062587": [11]}, {"55062593": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55062605": [24, 194, 2, 23]}, {"55062611": [3, 49, 89]}, {"55062615": [255, 129, 234]}, {"55062620": [3, 42, 200, 37, 8, 16, 12, 12, 161, 249]}, {"55062632": [3, 224]}, {"55062635": [8]}] \ No newline at end of file diff --git a/version.py b/version.py index 49423e76f..945d34347 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.9.17 f.LUM' \ No newline at end of file +__version__ = '2.9.18 f.LUM' \ No newline at end of file From ec61c116ade8b58f67d1888cccb07fff0a79500c Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Sun, 8 Jul 2018 20:40:58 -0500 Subject: [PATCH 132/755] Fixed one more song text box. --- Messages.py | 6 ++++-- version.py | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Messages.py b/Messages.py index 9811a1107..aed980675 100644 --- a/Messages.py +++ b/Messages.py @@ -228,7 +228,7 @@ def write(self, rom, index, offset, replace_ending=False, ending=None, always_al ending_codes = [0x02, 0x07, 0x0A, 0x0B, 0x0E, 0x10] box_breaks = [0x04, 0x0C] - slows_text = [0x09, 0x14] + slows_text = [0x08, 0x09, 0x14] # # speed the text if speed_up_text: @@ -243,7 +243,7 @@ def write(self, rom, index, offset, replace_ending=False, ending=None, always_al elif always_allow_skip and code.code == 0x1A: pass # ignore anything that slows down text - elif speed_up_text and code.code in slows_text and not self.has_ocarina : + elif speed_up_text and code.code in slows_text: pass elif speed_up_text and code.code in box_breaks: offset = Text_Code(0x04, 0).write(rom, offset) # un-delayed break @@ -253,6 +253,8 @@ def write(self, rom, index, offset, replace_ending=False, ending=None, always_al if replace_ending: if ending: + if speed_up_text and ending.code == 0x10: # ocarina + offset = Text_Code(0x09, 0).write(rom, offset) # disallow instant text offset = ending.write(rom, offset) # write special ending offset = Text_Code(0x02, 0).write(rom, offset) # write end code diff --git a/version.py b/version.py index 82b395a23..90446cd29 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.9.20 f.LUM' \ No newline at end of file +__version__ = '2.9.21 f.LUM' \ No newline at end of file From 091b5b6188f6d50067574ad81197f26e0cd20f3f Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Mon, 9 Jul 2018 01:46:45 -0400 Subject: [PATCH 133/755] Fix bombchu crash --- Rom.py | 6 +++--- version.py | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Rom.py b/Rom.py index e6c18860d..38f86e6e4 100644 --- a/Rom.py +++ b/Rom.py @@ -1125,9 +1125,9 @@ def write_byte_to_save(offset, value): #Fix bombchu chest animations chestAnimations = { - 0x6A: 0x18, #0xD8 #Bombchu (5) - 0x03: 0x18, #0xD8 #Bombchu (10) - 0x6B: 0x18, #0xD8 #Bombchu (20) + 0x6A: 0x28, #0xD8 #Bombchu (5) + 0x03: 0x28, #0xD8 #Bombchu (10) + 0x6B: 0x28, #0xD8 #Bombchu (20) } for item_id, gfx_id in chestAnimations.items(): rom.write_byte(0xBEEE8E + (item_id * 6) + 2, gfx_id) diff --git a/version.py b/version.py index 169eda1a4..fec156266 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.10.1 f.LUM' +__version__ = '2.10.2 f.LUM' From ef9b88514bc417b0f095ec8f675b5db125f0f74c Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Mon, 9 Jul 2018 16:12:00 -0400 Subject: [PATCH 134/755] fix chest size option not working --- Rom.py | 3 ++- version.py | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Rom.py b/Rom.py index 38f86e6e4..407b09f4e 100644 --- a/Rom.py +++ b/Rom.py @@ -1144,7 +1144,8 @@ def write_byte_to_save(offset, value): rom.write_byte(0xBEEE8E + (item_id * 6) + 2, gfx_id) # Update chest type sizes - update_chest_sizes(rom, override_table) + if world.correct_chest_sizes: + update_chest_sizes(rom, override_table) # give dungeon items the correct messages message_patch_for_dungeon_items(rom, messages, shop_items) diff --git a/version.py b/version.py index fec156266..59d224d14 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.10.2 f.LUM' +__version__ = '2.10.3 f.LUM' From 2529ee7d08a88a0c0102ff3ac764f6ca537679a4 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Mon, 9 Jul 2018 16:56:01 -0400 Subject: [PATCH 135/755] Added progressive bombchus --- ASM/src/extended_items.asm | 21 +++++++++++++++++++++ ItemList.py | 15 ++++++++++----- Items.py | 1 + README.md | 1 + Settings.py | 14 ++++++++++++++ data/base2current.json | 2 +- version.py | 2 +- 7 files changed, 49 insertions(+), 7 deletions(-) diff --git a/ASM/src/extended_items.asm b/ASM/src/extended_items.asm index 2ec6b9af1..516ffdfb6 100755 --- a/ASM/src/extended_items.asm +++ b/ASM/src/extended_items.asm @@ -124,6 +124,8 @@ Item_Row 0x4F, 0x41, 0x13, 0xE9, 0x00BD, no_upgrade, give_defense, -1, -1 ; 0 Item_Row 0x4F, 0x41, 0x1E, 0xE4, 0x00CD, magic_upgrade, give_magic, -1, -1 ; 0xC0 = Progressive Magic Meter Item_Row 0x4F, 0x41, 0x1F, 0xE8, 0x00CD, no_upgrade, double_magic, -1, -1 ; 0xC1 = Double Magic +Item_Row -1, -1, -1, -1, -1, bombchu_upgrade, no_effect, -1, -1 ; 0xC2 = Progressive Bombchus + ;================================================================================================== ; Item upgrade functions ;================================================================================================== @@ -432,3 +434,22 @@ double_magic: sb t0, 0x33 (a0) ; Fill meter jr ra nop + +;================================================================================================== + +bombchu_upgrade: + lbu t0, 0x7C (a0) ; Load bomchu from inventory + beq t0, 0xFF, @@return + li v0, 0x6B ; Bombchu 20 pack + + lbu t0, 0x94 (a0) ; Load bombchu count from inventory + sltiu t0, t0, 0x06 + beqz t0, @@return ; if + li v0, 0x6A ; Bombchu 5 Pack + + li v0, 0x03 ; Bombchu 10 Pack + +@@return: + jr ra + nop + diff --git a/ItemList.py b/ItemList.py index f828f8bb2..a3a9fca16 100644 --- a/ItemList.py +++ b/ItemList.py @@ -10,7 +10,7 @@ alwaysitems = (['Kokiri Sword', 'Biggoron Sword', 'Boomerang', 'Lens of Truth', 'Hammer', 'Iron Boots', 'Goron Tunic', 'Zora Tunic', 'Hover Boots', 'Mirror Shield', 'Stone of Agony', 'Fire Arrows', 'Ice Arrows', 'Light Arrows', 'Dins Fire', 'Farores Wind', 'Nayrus Love', 'Rupee (1)'] + ['Progressive Hookshot'] * 2 + ['Deku Shield'] * 4 + ['Hylian Shield'] * 2 + ['Ice Trap'] * 6 + ['Progressive Strength Upgrade'] * 3 + ['Progressive Scale'] * 2 + ['Piece of Heart'] * 35 + ['Recovery Heart'] * 11 + ['Rupees (5)'] * 17 + ['Rupees (20)'] * 5 + ['Rupees (50)'] * 7 + ['Rupees (200)'] * 6 + ['Bow'] * 3 + ['Slingshot'] * 3 + ['Bomb Bag'] * 3 + ['Bottle with Letter'] + ['Heart Container'] * 8 + ['Piece of Heart (Treasure Chest Game)'] + - ['Bombs (5)'] * 2 + ['Bombs (10)'] * 2 + ['Bombs (20)'] * 2 + ['Bombchus (5)'] + ['Bombchus (10)'] * 3 + ['Bombchus (20)'] + ['Arrows (5)'] + ['Arrows (10)'] * 6 + ['Arrows (30)'] * 6 + ['Deku Nuts (5)'] + ['Deku Nuts (10)'] + ['Progressive Wallet'] * 2 + ['Deku Stick Capacity'] * 2 + ['Deku Nut Capacity'] * 2 + ['Magic Meter'] * 2 + ['Double Defense']) + ['Bombs (5)'] * 2 + ['Bombs (10)'] * 2 + ['Bombs (20)'] * 2 + ['Arrows (5)'] + ['Arrows (10)'] * 6 + ['Arrows (30)'] * 6 + ['Deku Nuts (5)'] + ['Deku Nuts (10)'] + ['Progressive Wallet'] * 2 + ['Deku Stick Capacity'] * 2 + ['Deku Nut Capacity'] * 2 + ['Magic Meter'] * 2 + ['Double Defense']) # normal_bottles = ['Bottle', 'Bottle with Milk', 'Bottle with Red Potion', 'Bottle with Green Potion', 'Bottle with Blue Potion', 'Bottle with Fairy', 'Bottle with Fish', 'Bottle with Blue Fire', 'Bottle with Bugs', 'Bottle with Poe'] normal_bottles = ['Bottle', 'Bottle with Milk', 'Bottle with Red Potion', 'Bottle with Green Potion', 'Bottle with Blue Potion', 'Bottle with Fairy', 'Bottle with Fish', 'Bottle with Bugs', 'Bottle with Poe'] normal_bottle_count = 3 @@ -58,7 +58,7 @@ def generate_itempool(world): world.get_location(location).event = True # set up item pool - (pool, placed_items) = get_pool_core(world.place_dungeon_items, world.shuffle_weird_egg) + (pool, placed_items) = get_pool_core(world) world.itempool = ItemFactory(pool) for (location, item) in placed_items: world.push_item(location, ItemFactory(item), False) @@ -68,15 +68,20 @@ def generate_itempool(world): fill_bosses(world) fill_songs(world) -def get_pool_core(dungeon_items, shuffle_weird_egg): +def get_pool_core(world): pool = [] placed_items = [] - if not dungeon_items: + if not world.place_dungeon_items: pool.extend(notmapcompass) - if shuffle_weird_egg: + if world.shuffle_weird_egg: pool.append('Weird Egg') + if world.progressive_bombchus: + pool.extend(['Progressive Bombchus'] * 5) + else: + pool.extend(['Bombchus (5)'] + ['Bombchus (10)'] * 3 + ['Bombchus (20)']) + pool.extend(alwaysitems) for _ in range(normal_bottle_count): bottle = random.choice(normal_bottles) diff --git a/Items.py b/Items.py index 80831aa23..33dca1fd3 100644 --- a/Items.py +++ b/Items.py @@ -93,6 +93,7 @@ def ItemFactory(items): 'Bombchus (5)': (True, False, None, 0x0D40, 0x6A), 'Bombchus (10)': (True, False, None, 0x0060, 0x03), 'Bombchus (20)': (True, False, None, 0x0D60, 0x6B), + 'Progressive Bombchus': (True, False, None, None, 0xC2), 'Deku Nuts (5)': (False, False, None, None, 0xBD), 'Deku Nuts (10)': (False, False, None, None, 0xBE), 'Rupee (1)': (False, False, None, 0x0980, 0x4C), diff --git a/README.md b/README.md index 90e380ff6..4314ec3df 100644 --- a/README.md +++ b/README.md @@ -45,6 +45,7 @@ Options to skip some sequences that only pad the time of completing the game wit - `no_epona_race`: you can summon Epona with her song without racing Ingo. - `only_one_big_poe`: the poe buyer will give the reward after selling 1 Big Poe instead of 10. - `default_targeting`: set the default targeting mode to be either `switch` or `hold`. +- `progressive_bombchus`: first bombchu pack is always 20. subsequent ones will give 10 if low, and 5 otherwise. ## Bombchus diff --git a/Settings.py b/Settings.py index 08b01c922..b019e36f2 100644 --- a/Settings.py +++ b/Settings.py @@ -422,6 +422,20 @@ def __init__(self, settings_dict): 'widget': 'Checkbutton', 'default': 'unchecked' }), + Setting_Info('progressive_bombchus', bool, 1, True, + { + 'help': '''\ + Bombchus amounts are progressive. 20 pack first time. + Other bombchus will give 10 when low on bombchus, otherwise 5. + ''', + 'action': 'store_true' + }, + { + 'text': 'Progressive Bombchus', + 'group': 'other', + 'widget': 'Checkbutton', + 'default': 'unchecked' + }), Setting_Info('all_reachable', bool, 1, True, { 'help': '''\ diff --git a/data/base2current.json b/data/base2current.json index cf4c4faf7..ee08f4870 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -1 +1 @@ -[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 20]}, {"11325064": [12, 16, 10, 236, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 11, 63]}, {"11427312": [12, 16, 11, 232]}, {"11562028": [12, 16, 12, 9]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 11, 248]}, {"11882076": [12, 16, 11, 213]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 11, 30, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 11, 37, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 11, 44, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 11, 23, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 9, 228]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 9, 177]}, {"12427480": [12, 16, 9, 206]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 9, 210]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 10, 244, 0, 0, 0, 0]}, {"12491456": [12, 16, 9, 240]}, {"12491480": [12, 16, 9, 249]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 10, 193]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 11, 51]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149472": [143, 184, 0, 68]}, {"14149484": [135, 24, 0, 164]}, {"14149496": [52]}, {"14149499": [95]}, {"14149501": [25]}, {"14149514": [166, 116]}, {"14149779": [10]}, {"14149792": [49, 74]}, {"14149795": [4, 1, 75, 80, 37, 52, 11, 0, 20, 21, 75]}, {"14149807": [3, 0]}, {"14149811": [0, 16, 0, 254, 53, 143, 191, 0, 20, 60, 12, 128, 16, 141, 140, 140, 36, 140, 77, 0, 164, 1, 172, 112, 36, 21, 192, 254, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"14149851": [0, 0, 0, 0, 0, 0]}, {"14149859": [0, 0, 0]}, {"14149863": [0]}, {"14357459": [118]}, {"14624335": [118]}, {"14872723": [52]}, {"15506663": [122]}, {"55057408": [90, 93, 92, 94, 81, 82, 83]}, {"55058464": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 72, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 100, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 140, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 180, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 36, 220, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 4, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 32, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 60, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 196, 128, 64, 37, 88, 83, 65, 56, 67]}, {"55058613": [235, 21, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 55, 68]}, {"55058629": [235, 22, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 57, 69]}, {"55058645": [235, 23, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 63, 71]}, {"55058677": [244, 25, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 37, 220, 128, 64, 36, 64, 83, 65, 10, 6]}, {"55058757": [185, 1, 3, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 28]}, {"55058773": [185, 1, 4, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 29]}, {"55058789": [185, 1, 5, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 30]}, {"55058805": [185, 1, 6, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 42]}, {"55058821": [185, 1, 7, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 10, 97]}, {"55058837": [185, 1, 10, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 98]}, {"55058853": [184, 2]}, {"55058856": [128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 99]}, {"55058869": [184, 2, 1, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 100]}, {"55058885": [184, 2, 2, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 101]}, {"55058901": [184, 2, 3, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 124]}, {"55058917": [184, 2, 4, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 125]}, {"55058933": [184, 2, 5, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 126]}, {"55058949": [184, 2, 6, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 127]}, {"55058965": [184, 2, 7, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 162]}, {"55058981": [184, 2, 8, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 11, 135]}, {"55058997": [184, 2, 9, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 136]}, {"55059013": [200, 4]}, {"55059016": [128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 137]}, {"55059029": [200, 4, 1, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 138]}, {"55059045": [200, 4, 2, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 139]}, {"55059061": [200, 4, 3, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 140]}, {"55059077": [200, 4, 4, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 142]}, {"55059093": [200, 4, 5, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 143]}, {"55059109": [200, 4, 6, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 163]}, {"55059125": [200, 4, 7, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 165]}, {"55059141": [200, 4, 8, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 28, 146]}, {"55059157": [200, 4, 9, 128, 64, 38, 24, 128, 64, 36, 64, 83, 65, 2, 147]}, {"55059173": [170, 3, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 2, 148]}, {"55059189": [170, 4, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 2, 149]}, {"55059205": [170, 5, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 2, 166]}, {"55059221": [170, 6, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 2, 169]}, {"55059237": [170, 7, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 2, 155]}, {"55059253": [170, 8, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 2, 159]}, {"55059269": [170, 11, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 2, 160]}, {"55059285": [170, 12, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 65, 2, 161]}, {"55059301": [170, 13, 255, 128, 64, 38, 52, 128, 64, 36, 64, 83, 61, 67, 12]}, {"55059317": [248, 255, 255, 128, 64, 37, 204, 128, 64, 36, 64, 77, 131, 247, 85]}, {"55059333": [183, 255, 255, 128, 64, 37, 196, 128, 64, 36, 64, 83, 146, 219, 230]}, {"55059349": [216, 255, 255, 128, 64, 37, 196, 128, 64, 37, 140, 83, 147, 218, 230]}, {"55059365": [216, 255, 255, 128, 64, 37, 196, 128, 64, 37, 140, 83, 148, 217, 230]}, {"55059381": [216, 255, 255, 128, 64, 37, 196, 128, 64, 37, 140, 83, 142, 224, 50]}, {"55059397": [206, 255, 255, 128, 64, 37, 196, 128, 64, 37, 168, 83, 143, 224, 50]}, {"55059413": [206, 255, 255, 128, 64, 37, 196, 128, 64, 37, 168, 83, 144, 224, 50]}, {"55059429": [206, 255, 255, 128, 64, 37, 196, 128, 64, 37, 168, 77, 140, 238, 52]}, {"55059445": [187, 255, 255, 128, 64, 37, 196, 128, 64, 36, 64, 77, 141, 238, 52]}, {"55059461": [187, 255, 255, 128, 64, 37, 196, 128, 64, 36, 64, 79, 65, 19, 233]}, {"55059477": [189, 255, 255, 128, 64, 38, 92, 128, 64, 36, 64, 79, 65, 30, 228]}, {"55059493": [205, 255, 255, 128, 64, 38, 124, 128, 64, 37, 116, 79, 65, 31, 232]}, {"55059509": [205, 255, 255, 128, 64, 38, 156, 128, 64, 36, 64, 3, 224]}, {"55059523": [8, 52, 162]}, {"55059528": [144, 136]}, {"55059531": [125, 52, 1]}, {"55059535": [255, 17, 1]}, {"55059539": [2, 52, 2]}, {"55059543": [8, 52, 2]}, {"55059547": [9, 3, 224]}, {"55059551": [8]}, {"55059556": [144, 136]}, {"55059559": [163, 49, 8]}, {"55059563": [192, 17]}, {"55059567": [5, 52, 2]}, {"55059571": [84, 52, 1]}, {"55059575": [64, 17, 1]}, {"55059579": [2, 52, 2]}, {"55059583": [53, 52, 2]}, {"55059587": [54, 3, 224]}, {"55059591": [8]}, {"55059596": [144, 136]}, {"55059599": [163, 49, 8]}, {"55059603": [24, 17]}, {"55059607": [5, 52, 2]}, {"55059611": [50, 52, 1]}, {"55059615": [8, 17, 1]}, {"55059619": [2, 52, 2]}, {"55059623": [51, 52, 2]}, {"55059627": [52, 3, 224]}, {"55059631": [8]}, {"55059636": [144, 136]}, {"55059639": [163, 49, 8]}, {"55059643": [3, 17]}, {"55059647": [5, 52, 2]}, {"55059651": [4, 52, 1]}, {"55059655": [1, 17, 1]}, {"55059659": [2, 52, 2]}, {"55059663": [48, 52, 2]}, {"55059667": [49, 3, 224]}, {"55059671": [8]}, {"55059676": [144, 136]}, {"55059679": [162, 49, 8]}, {"55059683": [192, 17]}, {"55059687": [5, 52, 2]}, {"55059691": [5, 52, 1]}, {"55059695": [64, 17, 1]}, {"55059699": [2, 52, 2]}, {"55059703": [96, 52, 2]}, {"55059707": [123, 3, 224]}, {"55059711": [8]}, {"55059716": [144, 136]}, {"55059719": [162, 49, 8]}, {"55059723": [48, 17]}, {"55059727": [2, 52, 2]}, {"55059731": [69, 52, 2]}, {"55059735": [70, 3, 224]}, {"55059739": [8]}, {"55059744": [144, 136]}, {"55059747": [162, 49, 8]}, {"55059751": [6, 17]}, {"55059755": [2, 52, 2]}, {"55059759": [55, 52, 2]}, {"55059763": [56, 3, 224]}, {"55059767": [8]}, {"55059772": [144, 136]}, {"55059775": [161, 49, 8]}, {"55059779": [32, 17]}, {"55059783": [2, 52, 2]}, {"55059787": [121, 52, 2]}, {"55059791": [122, 3, 224]}, {"55059795": [8]}, {"55059800": [144, 136]}, {"55059803": [161, 49, 8]}, {"55059807": [4, 17]}, {"55059811": [2, 52, 2]}, {"55059815": [119, 52, 2]}, {"55059819": [120, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [50, 17]}, {"55059835": [2, 52, 2]}, {"55059839": [192, 52, 2]}, {"55059843": [193, 3, 224]}, {"55059847": [8]}, {"55059852": [144, 136]}, {"55059855": [163, 49, 8]}, {"55059859": [3, 17]}, {"55059863": [2, 52, 2]}, {"55059867": [77, 52, 162]}, {"55059872": [3, 224]}, {"55059875": [8]}, {"55059880": [144, 136]}, {"55059883": [163, 49, 8]}, {"55059887": [24, 17]}, {"55059891": [2, 52, 2]}, {"55059895": [77, 52, 162]}, {"55059900": [3, 224]}, {"55059903": [8]}, {"55059908": [3, 224]}, {"55059911": [8]}, {"55059916": [52, 8]}, {"55059919": [1, 160, 136]}, {"55059923": [62, 3, 224]}, {"55059927": [8]}, {"55059932": [36, 136]}, {"55059935": [134, 36, 9, 255, 255, 37, 41]}, {"55059943": [1, 52, 1]}, {"55059947": [3]}, {"55059949": [41, 8, 42, 20, 32]}, {"55059955": [7]}, {"55059960": [1, 9, 80, 33, 145, 75]}, {"55059968": [52, 1]}, {"55059971": [255, 21, 97, 255, 247]}, {"55059980": [161, 69]}, {"55059984": [3, 224]}, {"55059987": [8]}, {"55059992": [36, 136]}, {"55059995": [168, 1, 6, 64, 33, 145, 9]}, {"55060004": [1, 37, 72, 37, 161, 9]}, {"55060012": [3, 224]}, {"55060015": [8]}, {"55060020": [36, 136]}, {"55060023": [188, 1, 5, 64, 33, 129, 9]}, {"55060032": [5, 33]}, {"55060035": [2]}, {"55060040": [52, 9]}, {"55060044": [37, 41]}, {"55060047": [1, 161, 9]}, {"55060052": [3, 224]}, {"55060055": [8]}, {"55060060": [52, 8]}, {"55060063": [1, 160, 136]}, {"55060067": [61, 52, 8]}, {"55060071": [20, 160, 136]}, {"55060075": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060087": [8]}, {"55060092": [52, 8]}, {"55060095": [1, 160, 136]}, {"55060099": [50, 160, 136]}, {"55060103": [58, 52, 8]}, {"55060107": [48, 164, 136, 19, 244, 160, 136]}, {"55060115": [51, 3, 224]}, {"55060119": [8]}, {"55060124": [52, 8]}, {"55060127": [2, 160, 136]}, {"55060131": [50, 52, 8]}, {"55060135": [1, 160, 136]}, {"55060139": [58, 160, 136]}, {"55060143": [60, 52, 8]}, {"55060147": [96, 164, 136, 19, 244, 160, 136]}, {"55060155": [51, 3, 224]}, {"55060159": [8]}, {"55060164": [48, 132]}, {"55060167": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060179": [140, 16, 129]}, {"55060183": [22, 145, 2]}, {"55060187": [117, 52, 1]}, {"55060191": [141, 16, 129]}, {"55060195": [19, 145, 2]}, {"55060199": [117, 16, 128]}, {"55060203": [17, 145, 2]}, {"55060207": [116, 52, 1]}, {"55060211": [138, 16, 129]}, {"55060215": [14, 145, 2]}, {"55060219": [116, 52, 1]}, {"55060223": [139, 16, 129]}, {"55060227": [11, 145, 2]}, {"55060231": [116, 52, 1]}, {"55060235": [88, 16, 129]}, {"55060239": [8, 52, 2]}, {"55060244": [52, 1]}, {"55060247": [120, 16, 129]}, {"55060251": [5, 52, 2]}, {"55060256": [52, 1]}, {"55060259": [121, 16, 129]}, {"55060263": [2, 52, 2]}, {"55060268": [52, 2]}, {"55060271": [255, 3, 224]}, {"55060275": [8]}, {"55060280": [143, 166]}, {"55060283": [48, 132, 197]}, {"55060287": [4, 8, 16, 9, 214]}, {"55060296": [143, 185]}, {"55060299": [44, 135, 37]}, {"55060303": [4, 8, 16, 9, 214]}, {"55060312": [60, 10, 128, 64, 37, 74, 32]}, {"55060320": [141, 75]}, {"55060323": [12, 17, 96]}, {"55060327": [2]}, {"55060332": [149, 69]}, {"55060335": [4, 60, 10, 128, 64, 37, 74, 32, 16, 161, 64]}, {"55060348": [60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060360": [3, 224]}, {"55060363": [8]}, {"55060368": [60, 8, 128, 64, 37, 8, 32]}, {"55060376": [141, 9]}, {"55060379": [12, 17, 32]}, {"55060383": [2]}, {"55060388": [129, 3]}, {"55060391": [2]}, {"55060393": [3, 15, 195]}, {"55060397": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55060411": [8]}, {"55060416": [144, 69]}, {"55060419": [3, 60, 8, 128, 64, 37, 8, 32]}, {"55060428": [141, 9]}, {"55060431": [12, 17, 32]}, {"55060435": [2]}, {"55060440": [145, 5]}, {"55060443": [3, 3, 224]}, {"55060447": [8]}, {"55060452": [143, 162]}, {"55060455": [36, 144, 69]}, {"55060460": [60, 8, 128, 64, 37, 8, 32]}, {"55060468": [141, 9]}, {"55060471": [12, 17, 32]}, {"55060475": [19]}, {"55060480": [145, 5]}, {"55060483": [1, 175, 164]}, {"55060488": [175, 165]}, {"55060491": [4, 175, 166]}, {"55060495": [8, 39, 189, 255, 232, 175, 191]}, {"55060503": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55060515": [6, 145, 6]}, {"55060519": [7, 141, 9]}, {"55060523": [8, 1, 32, 248, 9]}, {"55060532": [143, 191]}, {"55060535": [16, 39, 189]}, {"55060539": [24, 143, 164]}, {"55060544": [143, 165]}, {"55060547": [4, 143, 166]}, {"55060551": [8, 3, 224]}, {"55060555": [8]}, {"55060560": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55060571": [16, 175, 163]}, {"55060575": [20, 175, 191]}, {"55060579": [24, 12, 16, 10, 33]}, {"55060588": [143, 162]}, {"55060591": [16, 143, 163]}, {"55060595": [20, 143, 191]}, {"55060599": [24, 39, 189]}, {"55060603": [32, 3, 224]}, {"55060607": [8]}, {"55060612": [39, 189, 255, 232, 175, 191]}, {"55060619": [16, 60, 8, 128, 64, 37, 8, 32]}, {"55060628": [173]}, {"55060632": [173]}, {"55060635": [4, 173]}, {"55060639": [8, 173]}, {"55060643": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55060659": [42]}, {"55060665": [9, 15, 195, 1, 33, 32, 38]}, {"55060673": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 91]}, {"55060688": [4, 64]}, {"55060691": [34]}, {"55060696": [52, 68]}, {"55060700": [12, 16, 10, 160]}, {"55060708": [16, 96]}, {"55060711": [12]}, {"55060716": [60, 8, 128, 64, 37, 8, 32]}, {"55060724": [140, 105]}, {"55060728": [173, 9]}, {"55060732": [140, 105]}, {"55060735": [4, 173, 9]}, {"55060739": [4, 140, 105]}, {"55060743": [8, 173, 9]}, {"55060747": [8, 52, 9]}, {"55060751": [1, 173, 9]}, {"55060755": [12, 144, 98]}, {"55060760": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55060776": [52, 1]}, {"55060779": [10, 21, 65]}, {"55060783": [6]}, {"55060788": [149, 42]}, {"55060791": [28, 49, 74, 240, 31]}, {"55060797": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55060807": [28, 129, 9, 4, 36, 5, 33]}, {"55060815": [2]}, {"55060821": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55060831": [16, 39, 189]}, {"55060835": [24, 3, 224]}, {"55060839": [8]}, {"55060844": [39, 189, 255, 232, 175, 191]}, {"55060851": [16, 12, 16, 10, 105]}, {"55060860": [36, 1, 255, 255, 16, 65]}, {"55060867": [4]}, {"55060872": [52, 68]}, {"55060876": [12, 16, 10, 147]}, {"55060884": [143, 191]}, {"55060887": [16, 39, 189]}, {"55060891": [24, 3, 224]}, {"55060895": [8]}, {"55060900": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55060911": [164, 52, 8]}, {"55060916": [52, 137]}, {"55060920": [148, 170]}, {"55060924": [52, 1]}, {"55060927": [10, 21, 65]}, {"55060931": [14]}, {"55060936": [148, 171]}, {"55060939": [28, 52, 1]}, {"55060943": [16, 20, 65]}, {"55060947": [8]}, {"55060952": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55060963": [4]}, {"55060968": [36, 2, 255, 255, 16]}, {"55060975": [21]}, {"55060980": [52, 8]}, {"55060983": [1, 49, 105]}, {"55060987": [31, 52, 1]}, {"55060991": [21, 21, 65]}, {"55060995": [12]}, {"55061000": [52, 1]}, {"55061003": [62, 16, 129]}, {"55061007": [7]}, {"55061012": [52, 1]}, {"55061015": [66, 16, 129]}, {"55061019": [4]}, {"55061024": [36, 2, 255, 255, 16]}, {"55061031": [7]}, {"55061036": [52, 8]}, {"55061039": [2, 144, 169, 1, 65]}, {"55061045": [2, 18]}, {"55061049": [72, 16, 37]}, {"55061053": [2, 18]}, {"55061057": [73, 16, 37, 3, 224]}, {"55061063": [8]}, {"55061068": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061083": [4, 141, 9]}, {"55061088": [17, 32]}, {"55061091": [5]}, {"55061097": [9, 82, 2, 21, 68, 255, 250]}, {"55061108": [49, 34]}, {"55061111": [255, 3, 224]}, {"55061115": [8]}, {"55061120": [39, 189, 255, 224, 175, 176]}, {"55061127": [16, 175, 177]}, {"55061131": [20, 175, 191]}, {"55061135": [24, 52, 130]}, {"55061140": [52, 80]}, {"55061144": [38, 8, 255, 128, 5]}, {"55061151": [18]}, {"55061156": [60, 17, 128, 64, 38, 49, 32, 32, 52, 9]}, {"55061167": [16, 1, 9]}, {"55061171": [24]}, {"55061174": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061192": [142, 40]}, {"55061195": [12, 1]}, {"55061198": [248, 9]}, {"55061204": [20, 80, 255, 239]}, {"55061212": [54, 35]}, {"55061216": [16]}, {"55061219": [2]}, {"55061224": [52, 3]}, {"55061228": [143, 176]}, {"55061231": [16, 143, 177]}, {"55061235": [20, 143, 191]}, {"55061239": [24, 39, 189]}, {"55061243": [32, 3, 224]}, {"55061247": [8]}, {"55061252": [140, 136, 29, 44, 52, 9]}, {"55061259": [1]}, {"55061261": [9, 78]}, {"55061264": [1, 9, 16, 36, 16, 64]}, {"55061271": [36]}, {"55061276": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55061291": [164, 52, 1]}, {"55061295": [61, 17, 129]}, {"55061299": [10]}, {"55061305": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55061315": [25]}, {"55061320": [52, 13]}, {"55061323": [1, 161, 141, 29, 40, 37, 74]}, {"55061331": [3, 16]}, {"55061335": [9]}, {"55061340": [52, 12]}, {"55061343": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55061359": [14]}, {"55061364": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 1, 1, 10, 64, 33, 129, 8]}, {"55061400": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061412": [52, 2]}, {"55061416": [3, 224]}, {"55061419": [8]}, {"55061424": [60, 8, 128, 64, 37, 8, 28]}, {"55061432": [129, 8]}, {"55061436": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061448": [3, 224]}, {"55061451": [8]}, {"55061456": [175, 164]}, {"55061459": [104, 175, 165]}, {"55061463": [108, 175, 166]}, {"55061467": [112, 175, 167]}, {"55061471": [116, 39, 189, 255, 232, 175, 163]}, {"55061479": [16, 175, 191]}, {"55061483": [20, 60, 8, 128, 64, 37, 8, 32, 16, 129, 8]}, {"55061496": [17]}, {"55061499": [14]}, {"55061504": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55061515": [1, 165, 42]}, {"55061520": [60, 9, 128, 65, 52, 10]}, {"55061527": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 33]}, {"55061556": [143, 163]}, {"55061559": [16, 143, 191]}, {"55061563": [20, 39, 189]}, {"55061567": [24, 143, 164]}, {"55061571": [104, 143, 165]}, {"55061575": [108, 143, 166]}, {"55061579": [112, 143, 167]}, {"55061583": [116, 132, 110, 19, 196, 3, 224]}, {"55061591": [8]}, {"55061596": [147, 25]}, {"55061599": [116, 52, 1]}, {"55061603": [255, 23, 33]}, {"55061607": [2]}, {"55061612": [52, 25]}, {"55061615": [44, 3, 224]}, {"55061619": [8, 167, 185]}, {"55061623": [154, 147, 44]}, {"55061627": [116, 52, 1]}, {"55061631": [255, 21, 129]}, {"55061635": [2]}, {"55061640": [52, 12]}, {"55061643": [44, 3, 224]}, {"55061647": [8]}, {"55061652": [145, 174]}, {"55061655": [116, 52, 1]}, {"55061659": [255, 21, 193]}, {"55061663": [2]}, {"55061668": [52, 14]}, {"55061671": [44, 3, 224]}, {"55061675": [8, 167, 174]}, {"55061679": [154, 145, 207]}, {"55061683": [116, 52, 1]}, {"55061687": [255, 21, 225]}, {"55061691": [2]}, {"55061696": [52, 15]}, {"55061699": [44, 3, 224]}, {"55061703": [8, 167, 175]}, {"55061707": [154, 60, 8, 128, 64, 37, 8, 32, 20, 142, 9]}, {"55061719": [104, 173, 9]}, {"55061724": [142, 9]}, {"55061727": [108, 173, 9]}, {"55061731": [4, 150, 9]}, {"55061735": [112, 165, 9]}, {"55061739": [8, 150, 9]}, {"55061743": [156, 165, 9]}, {"55061747": [10, 3, 224]}, {"55061751": [8, 142, 14]}, {"55061755": [4, 39, 189, 255, 224, 175, 176]}, {"55061763": [16, 175, 177]}, {"55061767": [20, 175, 191]}, {"55061771": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 20, 142, 8]}, {"55061791": [4, 17]}, {"55061795": [5]}, {"55061800": [12, 16, 11, 105]}, {"55061808": [16]}, {"55061811": [3]}, {"55061816": [12, 16, 11, 124]}, {"55061824": [12, 16, 11, 92, 52, 4]}, {"55061832": [12, 16, 11, 92, 52, 4]}, {"55061839": [1, 12, 16, 11, 92, 52, 4]}, {"55061847": [2, 143, 176]}, {"55061851": [16, 143, 177]}, {"55061855": [20, 143, 191]}, {"55061859": [24, 39, 189]}, {"55061863": [32, 3, 224]}, {"55061867": [8]}, {"55061872": [2, 4, 64, 33, 145, 9]}, {"55061879": [108, 52, 1]}, {"55061883": [255, 17, 33]}, {"55061887": [7]}, {"55061892": [2, 9, 72, 33, 145, 41]}, {"55061899": [116, 52, 1]}, {"55061903": [44, 17, 33]}, {"55061907": [2]}, {"55061912": [161, 9]}, {"55061915": [105, 3, 224]}, {"55061919": [8]}, {"55061924": [39, 189, 255, 232, 175, 191]}, {"55061931": [16, 142, 40]}, {"55061936": [174, 8]}, {"55061939": [64, 142, 40]}, {"55061943": [4, 174, 8]}, {"55061947": [68, 150, 40]}, {"55061951": [8, 166, 8]}, {"55061955": [72, 162]}, {"55061958": [15, 51, 146, 8]}, {"55061963": [74, 52, 1]}, {"55061967": [255, 21, 1]}, {"55061971": [3]}, {"55061976": [12, 16, 11, 138]}, {"55061984": [143, 191]}, {"55061987": [16, 39, 189]}, {"55061991": [24, 3, 224]}, {"55061995": [8]}, {"55062000": [142, 8]}, {"55062003": [64, 174, 8]}, {"55062007": [104, 142, 8]}, {"55062011": [68, 174, 8]}, {"55062015": [108, 150, 8]}, {"55062019": [72, 166, 8]}, {"55062023": [112, 146, 8]}, {"55062027": [104, 52, 1]}, {"55062031": [255, 21, 1]}, {"55062035": [3]}, {"55062040": [52, 8]}, {"55062043": [1, 162, 8, 15, 51, 3, 224]}, {"55062051": [8]}, {"55062056": [39, 189, 255, 232, 175, 191]}, {"55062063": [16, 150, 8]}, {"55062067": [156, 49, 8]}, {"55062071": [64, 17]}, {"55062075": [5]}, {"55062080": [150, 8]}, {"55062083": [112, 49, 8, 255, 15, 53, 8]}, {"55062091": [48, 166, 8]}, {"55062095": [112, 146, 40]}, {"55062099": [1, 162, 8]}, {"55062103": [105, 150, 40]}, {"55062107": [2, 166, 8]}, {"55062111": [106, 142, 40]}, {"55062115": [4, 174, 8]}, {"55062119": [108, 12, 16, 11, 164, 52, 4]}, {"55062128": [12, 16, 11, 164, 52, 4]}, {"55062135": [1, 12, 16, 11, 164, 52, 4]}, {"55062143": [2, 143, 191]}, {"55062147": [16, 39, 189]}, {"55062151": [24, 3, 224]}, {"55062155": [8]}, {"55062160": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 47, 60, 145, 10]}, {"55062175": [108, 52, 1]}, {"55062179": [255, 17, 65]}, {"55062183": [5]}, {"55062188": [1, 42, 72, 33, 145, 41]}, {"55062196": [21, 32]}, {"55062199": [28]}, {"55062204": [60, 9, 128, 64, 37, 41, 47, 47, 37, 41]}, {"55062215": [1, 145, 42]}, {"55062220": [17, 64]}, {"55062223": [19]}, {"55062228": [2, 10, 88, 33, 145, 107]}, {"55062235": [116, 52, 1]}, {"55062239": [255, 17, 97, 255, 248]}, {"55062248": [146, 12]}, {"55062251": [108, 17, 138, 255, 245]}, {"55062260": [146, 12]}, {"55062263": [109, 17, 138, 255, 242]}, {"55062272": [146, 12]}, {"55062275": [110, 17, 138, 255, 239]}, {"55062284": [161, 11]}, {"55062287": [105, 161, 10]}, {"55062291": [108, 16]}, {"55062295": [4]}, {"55062300": [52, 9]}, {"55062303": [255, 161, 9]}, {"55062307": [105, 161, 9]}, {"55062311": [108, 3, 224]}, {"55062315": [8]}, {"55062320": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55062333": [1, 1, 1, 1, 1]}, {"55062339": [1, 1, 1, 1, 1]}, {"55062345": [1]}, {"55062347": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55062357": [51, 8, 33, 32, 15]}, {"55062363": [71, 21, 234]}, {"55062367": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062379": [164]}, {"55062381": [15, 122, 3, 20, 64]}, {"55062387": [5, 52, 2, 72, 48, 21, 226]}, {"55062395": [7]}, {"55062400": [36, 25]}, {"55062403": [3, 16]}, {"55062407": [4, 52, 2, 99, 17, 21, 226]}, {"55062415": [2]}, {"55062420": [36, 25]}, {"55062423": [3, 3, 224]}, {"55062427": [8]}, {"55062432": [141, 173, 138, 160, 52, 2, 128]}, {"55062440": [16, 77]}, {"55062443": [2]}, {"55062448": [16]}, {"55062451": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55062467": [1, 16, 64]}, {"55062471": [2]}, {"55062476": [16]}, {"55062479": [2, 52, 2]}, {"55062483": [1, 161, 226, 28, 191, 3, 224]}, {"55062491": [8]}, {"55062497": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062511": [164]}, {"55062513": [15, 122, 3, 20, 64]}, {"55062519": [5, 52, 2, 72, 48, 21, 226]}, {"55062527": [7]}, {"55062532": [36, 25]}, {"55062535": [3, 16]}, {"55062539": [4, 52, 2, 99, 17, 21, 226]}, {"55062547": [2]}, {"55062552": [36, 25]}, {"55062555": [3, 3, 224]}, {"55062559": [8]}, {"55062564": [162, 37]}, {"55062567": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55062579": [4, 142, 10]}, {"55062584": [17, 64]}, {"55062587": [11]}, {"55062593": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55062605": [24, 194, 2, 23]}, {"55062611": [3, 49, 89]}, {"55062615": [255, 129, 234]}, {"55062620": [3, 42, 200, 37, 8, 16, 12, 12, 161, 249]}, {"55062632": [3, 224]}, {"55062635": [8]}] \ No newline at end of file +[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 35]}, {"11325064": [12, 16, 10, 251, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 11, 78]}, {"11427312": [12, 16, 11, 247]}, {"11562028": [12, 16, 12, 24]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 12, 7]}, {"11882076": [12, 16, 11, 228]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 11, 45, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 11, 52, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 11, 59, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 11, 38, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 9, 243]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 9, 192]}, {"12427480": [12, 16, 9, 221]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 9, 225]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 11, 3, 0, 0, 0, 0]}, {"12491456": [12, 16, 9, 255]}, {"12491480": [12, 16, 10, 8]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 10, 208]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 11, 66]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149472": [143, 184, 0, 68]}, {"14149484": [135, 24, 0, 164]}, {"14149496": [52]}, {"14149499": [95]}, {"14149501": [25]}, {"14149514": [166, 116]}, {"14149779": [10]}, {"14149792": [49, 74]}, {"14149795": [4, 1, 75, 80, 37, 52, 11, 0, 20, 21, 75]}, {"14149807": [3, 0]}, {"14149811": [0, 16, 0, 254, 53, 143, 191, 0, 20, 60, 12, 128, 16, 141, 140, 140, 36, 140, 77, 0, 164, 1, 172, 112, 36, 21, 192, 254, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"14149851": [0, 0, 0, 0, 0, 0]}, {"14149859": [0, 0, 0]}, {"14149863": [0]}, {"14357459": [118]}, {"14624335": [118]}, {"14872723": [52]}, {"15506663": [122]}, {"55057408": [90, 93, 92, 94, 81, 82, 83]}, {"55058464": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 212, 128, 64, 36, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 212, 128, 64, 36, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 212, 128, 64, 36, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 212, 128, 64, 36, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 212, 128, 64, 36, 236, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 212, 128, 64, 37, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 212, 128, 64, 37, 48, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 212, 128, 64, 37, 76, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 212, 128, 64, 37, 104, 83, 65, 56, 67]}, {"55058613": [235, 21, 255, 128, 64, 37, 236, 128, 64, 36, 80, 83, 65, 55, 68]}, {"55058629": [235, 22, 255, 128, 64, 37, 236, 128, 64, 36, 80, 83, 65, 57, 69]}, {"55058645": [235, 23, 255, 128, 64, 37, 236, 128, 64, 36, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 37, 236, 128, 64, 36, 80, 83, 65, 63, 71]}, {"55058677": [244, 25, 255, 128, 64, 37, 236, 128, 64, 36, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 37, 236, 128, 64, 36, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 37, 236, 128, 64, 36, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 37, 236, 128, 64, 36, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 37, 236, 128, 64, 36, 80, 83, 65, 10, 6]}, {"55058757": [185, 1, 3, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 10, 28]}, {"55058773": [185, 1, 4, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 10, 29]}, {"55058789": [185, 1, 5, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 10, 30]}, {"55058805": [185, 1, 6, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 10, 42]}, {"55058821": [185, 1, 7, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 10, 97]}, {"55058837": [185, 1, 10, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 11, 98]}, {"55058853": [184, 2]}, {"55058856": [128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 11, 99]}, {"55058869": [184, 2, 1, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 11, 100]}, {"55058885": [184, 2, 2, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 11, 101]}, {"55058901": [184, 2, 3, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 11, 124]}, {"55058917": [184, 2, 4, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 11, 125]}, {"55058933": [184, 2, 5, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 11, 126]}, {"55058949": [184, 2, 6, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 11, 127]}, {"55058965": [184, 2, 7, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 11, 162]}, {"55058981": [184, 2, 8, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 11, 135]}, {"55058997": [184, 2, 9, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 28, 136]}, {"55059013": [200, 4]}, {"55059016": [128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 28, 137]}, {"55059029": [200, 4, 1, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 28, 138]}, {"55059045": [200, 4, 2, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 28, 139]}, {"55059061": [200, 4, 3, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 28, 140]}, {"55059077": [200, 4, 4, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 28, 142]}, {"55059093": [200, 4, 5, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 28, 143]}, {"55059109": [200, 4, 6, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 28, 163]}, {"55059125": [200, 4, 7, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 28, 165]}, {"55059141": [200, 4, 8, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 28, 146]}, {"55059157": [200, 4, 9, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 2, 147]}, {"55059173": [170, 3, 255, 128, 64, 38, 68, 128, 64, 36, 80, 83, 65, 2, 148]}, {"55059189": [170, 4, 255, 128, 64, 38, 68, 128, 64, 36, 80, 83, 65, 2, 149]}, {"55059205": [170, 5, 255, 128, 64, 38, 68, 128, 64, 36, 80, 83, 65, 2, 166]}, {"55059221": [170, 6, 255, 128, 64, 38, 68, 128, 64, 36, 80, 83, 65, 2, 169]}, {"55059237": [170, 7, 255, 128, 64, 38, 68, 128, 64, 36, 80, 83, 65, 2, 155]}, {"55059253": [170, 8, 255, 128, 64, 38, 68, 128, 64, 36, 80, 83, 65, 2, 159]}, {"55059269": [170, 11, 255, 128, 64, 38, 68, 128, 64, 36, 80, 83, 65, 2, 160]}, {"55059285": [170, 12, 255, 128, 64, 38, 68, 128, 64, 36, 80, 83, 65, 2, 161]}, {"55059301": [170, 13, 255, 128, 64, 38, 68, 128, 64, 36, 80, 83, 61, 67, 12]}, {"55059317": [248, 255, 255, 128, 64, 37, 220, 128, 64, 36, 80, 77, 131, 247, 85]}, {"55059333": [183, 255, 255, 128, 64, 37, 212, 128, 64, 36, 80, 83, 146, 219, 230]}, {"55059349": [216, 255, 255, 128, 64, 37, 212, 128, 64, 37, 156, 83, 147, 218, 230]}, {"55059365": [216, 255, 255, 128, 64, 37, 212, 128, 64, 37, 156, 83, 148, 217, 230]}, {"55059381": [216, 255, 255, 128, 64, 37, 212, 128, 64, 37, 156, 83, 142, 224, 50]}, {"55059397": [206, 255, 255, 128, 64, 37, 212, 128, 64, 37, 184, 83, 143, 224, 50]}, {"55059413": [206, 255, 255, 128, 64, 37, 212, 128, 64, 37, 184, 83, 144, 224, 50]}, {"55059429": [206, 255, 255, 128, 64, 37, 212, 128, 64, 37, 184, 77, 140, 238, 52]}, {"55059445": [187, 255, 255, 128, 64, 37, 212, 128, 64, 36, 80, 77, 141, 238, 52]}, {"55059461": [187, 255, 255, 128, 64, 37, 212, 128, 64, 36, 80, 79, 65, 19, 233]}, {"55059477": [189, 255, 255, 128, 64, 38, 108, 128, 64, 36, 80, 79, 65, 30, 228]}, {"55059493": [205, 255, 255, 128, 64, 38, 140, 128, 64, 37, 132, 79, 65, 31, 232]}, {"55059509": [205, 255, 255, 128, 64, 38, 172, 128, 64, 36, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 212, 128, 64, 38, 212, 3, 224]}, {"55059539": [8, 52, 162]}, {"55059544": [144, 136]}, {"55059547": [125, 52, 1]}, {"55059551": [255, 17, 1]}, {"55059555": [2, 52, 2]}, {"55059559": [8, 52, 2]}, {"55059563": [9, 3, 224]}, {"55059567": [8]}, {"55059572": [144, 136]}, {"55059575": [163, 49, 8]}, {"55059579": [192, 17]}, {"55059583": [5, 52, 2]}, {"55059587": [84, 52, 1]}, {"55059591": [64, 17, 1]}, {"55059595": [2, 52, 2]}, {"55059599": [53, 52, 2]}, {"55059603": [54, 3, 224]}, {"55059607": [8]}, {"55059612": [144, 136]}, {"55059615": [163, 49, 8]}, {"55059619": [24, 17]}, {"55059623": [5, 52, 2]}, {"55059627": [50, 52, 1]}, {"55059631": [8, 17, 1]}, {"55059635": [2, 52, 2]}, {"55059639": [51, 52, 2]}, {"55059643": [52, 3, 224]}, {"55059647": [8]}, {"55059652": [144, 136]}, {"55059655": [163, 49, 8]}, {"55059659": [3, 17]}, {"55059663": [5, 52, 2]}, {"55059667": [4, 52, 1]}, {"55059671": [1, 17, 1]}, {"55059675": [2, 52, 2]}, {"55059679": [48, 52, 2]}, {"55059683": [49, 3, 224]}, {"55059687": [8]}, {"55059692": [144, 136]}, {"55059695": [162, 49, 8]}, {"55059699": [192, 17]}, {"55059703": [5, 52, 2]}, {"55059707": [5, 52, 1]}, {"55059711": [64, 17, 1]}, {"55059715": [2, 52, 2]}, {"55059719": [96, 52, 2]}, {"55059723": [123, 3, 224]}, {"55059727": [8]}, {"55059732": [144, 136]}, {"55059735": [162, 49, 8]}, {"55059739": [48, 17]}, {"55059743": [2, 52, 2]}, {"55059747": [69, 52, 2]}, {"55059751": [70, 3, 224]}, {"55059755": [8]}, {"55059760": [144, 136]}, {"55059763": [162, 49, 8]}, {"55059767": [6, 17]}, {"55059771": [2, 52, 2]}, {"55059775": [55, 52, 2]}, {"55059779": [56, 3, 224]}, {"55059783": [8]}, {"55059788": [144, 136]}, {"55059791": [161, 49, 8]}, {"55059795": [32, 17]}, {"55059799": [2, 52, 2]}, {"55059803": [121, 52, 2]}, {"55059807": [122, 3, 224]}, {"55059811": [8]}, {"55059816": [144, 136]}, {"55059819": [161, 49, 8]}, {"55059823": [4, 17]}, {"55059827": [2, 52, 2]}, {"55059831": [119, 52, 2]}, {"55059835": [120, 3, 224]}, {"55059839": [8]}, {"55059844": [144, 136]}, {"55059847": [50, 17]}, {"55059851": [2, 52, 2]}, {"55059855": [192, 52, 2]}, {"55059859": [193, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [3, 17]}, {"55059879": [2, 52, 2]}, {"55059883": [77, 52, 162]}, {"55059888": [3, 224]}, {"55059891": [8]}, {"55059896": [144, 136]}, {"55059899": [163, 49, 8]}, {"55059903": [24, 17]}, {"55059907": [2, 52, 2]}, {"55059911": [77, 52, 162]}, {"55059916": [3, 224]}, {"55059919": [8]}, {"55059924": [3, 224]}, {"55059927": [8]}, {"55059932": [52, 8]}, {"55059935": [1, 160, 136]}, {"55059939": [62, 3, 224]}, {"55059943": [8]}, {"55059948": [36, 136]}, {"55059951": [134, 36, 9, 255, 255, 37, 41]}, {"55059959": [1, 52, 1]}, {"55059963": [3]}, {"55059965": [41, 8, 42, 20, 32]}, {"55059971": [7]}, {"55059976": [1, 9, 80, 33, 145, 75]}, {"55059984": [52, 1]}, {"55059987": [255, 21, 97, 255, 247]}, {"55059996": [161, 69]}, {"55060000": [3, 224]}, {"55060003": [8]}, {"55060008": [36, 136]}, {"55060011": [168, 1, 6, 64, 33, 145, 9]}, {"55060020": [1, 37, 72, 37, 161, 9]}, {"55060028": [3, 224]}, {"55060031": [8]}, {"55060036": [36, 136]}, {"55060039": [188, 1, 5, 64, 33, 129, 9]}, {"55060048": [5, 33]}, {"55060051": [2]}, {"55060056": [52, 9]}, {"55060060": [37, 41]}, {"55060063": [1, 161, 9]}, {"55060068": [3, 224]}, {"55060071": [8]}, {"55060076": [52, 8]}, {"55060079": [1, 160, 136]}, {"55060083": [61, 52, 8]}, {"55060087": [20, 160, 136]}, {"55060091": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060103": [8]}, {"55060108": [52, 8]}, {"55060111": [1, 160, 136]}, {"55060115": [50, 160, 136]}, {"55060119": [58, 52, 8]}, {"55060123": [48, 164, 136, 19, 244, 160, 136]}, {"55060131": [51, 3, 224]}, {"55060135": [8]}, {"55060140": [52, 8]}, {"55060143": [2, 160, 136]}, {"55060147": [50, 52, 8]}, {"55060151": [1, 160, 136]}, {"55060155": [58, 160, 136]}, {"55060159": [60, 52, 8]}, {"55060163": [96, 164, 136, 19, 244, 160, 136]}, {"55060171": [51, 3, 224]}, {"55060175": [8]}, {"55060180": [144, 136]}, {"55060183": [124, 52, 1]}, {"55060187": [255, 17, 1]}, {"55060191": [6, 52, 2]}, {"55060195": [107, 144, 136]}, {"55060199": [148, 45, 8]}, {"55060203": [6, 17]}, {"55060207": [2, 52, 2]}, {"55060211": [106, 52, 2]}, {"55060215": [3, 3, 224]}, {"55060219": [8]}, {"55060224": [48, 132]}, {"55060227": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060239": [140, 16, 129]}, {"55060243": [22, 145, 2]}, {"55060247": [117, 52, 1]}, {"55060251": [141, 16, 129]}, {"55060255": [19, 145, 2]}, {"55060259": [117, 16, 128]}, {"55060263": [17, 145, 2]}, {"55060267": [116, 52, 1]}, {"55060271": [138, 16, 129]}, {"55060275": [14, 145, 2]}, {"55060279": [116, 52, 1]}, {"55060283": [139, 16, 129]}, {"55060287": [11, 145, 2]}, {"55060291": [116, 52, 1]}, {"55060295": [88, 16, 129]}, {"55060299": [8, 52, 2]}, {"55060304": [52, 1]}, {"55060307": [120, 16, 129]}, {"55060311": [5, 52, 2]}, {"55060316": [52, 1]}, {"55060319": [121, 16, 129]}, {"55060323": [2, 52, 2]}, {"55060328": [52, 2]}, {"55060331": [255, 3, 224]}, {"55060335": [8]}, {"55060340": [143, 166]}, {"55060343": [48, 132, 197]}, {"55060347": [4, 8, 16, 9, 229]}, {"55060356": [143, 185]}, {"55060359": [44, 135, 37]}, {"55060363": [4, 8, 16, 9, 229]}, {"55060372": [60, 10, 128, 64, 37, 74, 32]}, {"55060380": [141, 75]}, {"55060383": [12, 17, 96]}, {"55060387": [2]}, {"55060392": [149, 69]}, {"55060395": [4, 60, 10, 128, 64, 37, 74, 32, 16, 161, 64]}, {"55060408": [60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060420": [3, 224]}, {"55060423": [8]}, {"55060428": [60, 8, 128, 64, 37, 8, 32]}, {"55060436": [141, 9]}, {"55060439": [12, 17, 32]}, {"55060443": [2]}, {"55060448": [129, 3]}, {"55060451": [2]}, {"55060453": [3, 15, 195]}, {"55060457": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55060471": [8]}, {"55060476": [144, 69]}, {"55060479": [3, 60, 8, 128, 64, 37, 8, 32]}, {"55060488": [141, 9]}, {"55060491": [12, 17, 32]}, {"55060495": [2]}, {"55060500": [145, 5]}, {"55060503": [3, 3, 224]}, {"55060507": [8]}, {"55060512": [143, 162]}, {"55060515": [36, 144, 69]}, {"55060520": [60, 8, 128, 64, 37, 8, 32]}, {"55060528": [141, 9]}, {"55060531": [12, 17, 32]}, {"55060535": [19]}, {"55060540": [145, 5]}, {"55060543": [1, 175, 164]}, {"55060548": [175, 165]}, {"55060551": [4, 175, 166]}, {"55060555": [8, 39, 189, 255, 232, 175, 191]}, {"55060563": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55060575": [6, 145, 6]}, {"55060579": [7, 141, 9]}, {"55060583": [8, 1, 32, 248, 9]}, {"55060592": [143, 191]}, {"55060595": [16, 39, 189]}, {"55060599": [24, 143, 164]}, {"55060604": [143, 165]}, {"55060607": [4, 143, 166]}, {"55060611": [8, 3, 224]}, {"55060615": [8]}, {"55060620": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55060631": [16, 175, 163]}, {"55060635": [20, 175, 191]}, {"55060639": [24, 12, 16, 10, 48]}, {"55060648": [143, 162]}, {"55060651": [16, 143, 163]}, {"55060655": [20, 143, 191]}, {"55060659": [24, 39, 189]}, {"55060663": [32, 3, 224]}, {"55060667": [8]}, {"55060672": [39, 189, 255, 232, 175, 191]}, {"55060679": [16, 60, 8, 128, 64, 37, 8, 32]}, {"55060688": [173]}, {"55060692": [173]}, {"55060695": [4, 173]}, {"55060699": [8, 173]}, {"55060703": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55060719": [42]}, {"55060725": [9, 15, 195, 1, 33, 32, 38]}, {"55060733": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 106]}, {"55060748": [4, 64]}, {"55060751": [34]}, {"55060756": [52, 68]}, {"55060760": [12, 16, 10, 175]}, {"55060768": [16, 96]}, {"55060771": [12]}, {"55060776": [60, 8, 128, 64, 37, 8, 32]}, {"55060784": [140, 105]}, {"55060788": [173, 9]}, {"55060792": [140, 105]}, {"55060795": [4, 173, 9]}, {"55060799": [4, 140, 105]}, {"55060803": [8, 173, 9]}, {"55060807": [8, 52, 9]}, {"55060811": [1, 173, 9]}, {"55060815": [12, 144, 98]}, {"55060820": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55060836": [52, 1]}, {"55060839": [10, 21, 65]}, {"55060843": [6]}, {"55060848": [149, 42]}, {"55060851": [28, 49, 74, 240, 31]}, {"55060857": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55060867": [28, 129, 9, 4, 36, 5, 33]}, {"55060875": [2]}, {"55060881": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55060891": [16, 39, 189]}, {"55060895": [24, 3, 224]}, {"55060899": [8]}, {"55060904": [39, 189, 255, 232, 175, 191]}, {"55060911": [16, 12, 16, 10, 120]}, {"55060920": [36, 1, 255, 255, 16, 65]}, {"55060927": [4]}, {"55060932": [52, 68]}, {"55060936": [12, 16, 10, 162]}, {"55060944": [143, 191]}, {"55060947": [16, 39, 189]}, {"55060951": [24, 3, 224]}, {"55060955": [8]}, {"55060960": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55060971": [164, 52, 8]}, {"55060976": [52, 137]}, {"55060980": [148, 170]}, {"55060984": [52, 1]}, {"55060987": [10, 21, 65]}, {"55060991": [14]}, {"55060996": [148, 171]}, {"55060999": [28, 52, 1]}, {"55061003": [16, 20, 65]}, {"55061007": [8]}, {"55061012": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061023": [4]}, {"55061028": [36, 2, 255, 255, 16]}, {"55061035": [21]}, {"55061040": [52, 8]}, {"55061043": [1, 49, 105]}, {"55061047": [31, 52, 1]}, {"55061051": [21, 21, 65]}, {"55061055": [12]}, {"55061060": [52, 1]}, {"55061063": [62, 16, 129]}, {"55061067": [7]}, {"55061072": [52, 1]}, {"55061075": [66, 16, 129]}, {"55061079": [4]}, {"55061084": [36, 2, 255, 255, 16]}, {"55061091": [7]}, {"55061096": [52, 8]}, {"55061099": [2, 144, 169, 1, 65]}, {"55061105": [2, 18]}, {"55061109": [72, 16, 37]}, {"55061113": [2, 18]}, {"55061117": [73, 16, 37, 3, 224]}, {"55061123": [8]}, {"55061128": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061143": [4, 141, 9]}, {"55061148": [17, 32]}, {"55061151": [5]}, {"55061157": [9, 82, 2, 21, 68, 255, 250]}, {"55061168": [49, 34]}, {"55061171": [255, 3, 224]}, {"55061175": [8]}, {"55061180": [39, 189, 255, 224, 175, 176]}, {"55061187": [16, 175, 177]}, {"55061191": [20, 175, 191]}, {"55061195": [24, 52, 130]}, {"55061200": [52, 80]}, {"55061204": [38, 8, 255, 128, 5]}, {"55061211": [18]}, {"55061216": [60, 17, 128, 64, 38, 49, 32, 32, 52, 9]}, {"55061227": [16, 1, 9]}, {"55061231": [24]}, {"55061234": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061252": [142, 40]}, {"55061255": [12, 1]}, {"55061258": [248, 9]}, {"55061264": [20, 80, 255, 239]}, {"55061272": [54, 35]}, {"55061276": [16]}, {"55061279": [2]}, {"55061284": [52, 3]}, {"55061288": [143, 176]}, {"55061291": [16, 143, 177]}, {"55061295": [20, 143, 191]}, {"55061299": [24, 39, 189]}, {"55061303": [32, 3, 224]}, {"55061307": [8]}, {"55061312": [140, 136, 29, 44, 52, 9]}, {"55061319": [1]}, {"55061321": [9, 78]}, {"55061324": [1, 9, 16, 36, 16, 64]}, {"55061331": [36]}, {"55061336": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55061351": [164, 52, 1]}, {"55061355": [61, 17, 129]}, {"55061359": [10]}, {"55061365": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55061375": [25]}, {"55061380": [52, 13]}, {"55061383": [1, 161, 141, 29, 40, 37, 74]}, {"55061391": [3, 16]}, {"55061395": [9]}, {"55061400": [52, 12]}, {"55061403": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55061419": [14]}, {"55061424": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 1, 1, 10, 64, 33, 129, 8]}, {"55061460": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061472": [52, 2]}, {"55061476": [3, 224]}, {"55061479": [8]}, {"55061484": [60, 8, 128, 64, 37, 8, 28]}, {"55061492": [129, 8]}, {"55061496": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061508": [3, 224]}, {"55061511": [8]}, {"55061516": [175, 164]}, {"55061519": [104, 175, 165]}, {"55061523": [108, 175, 166]}, {"55061527": [112, 175, 167]}, {"55061531": [116, 39, 189, 255, 232, 175, 163]}, {"55061539": [16, 175, 191]}, {"55061543": [20, 60, 8, 128, 64, 37, 8, 32, 16, 129, 8]}, {"55061556": [17]}, {"55061559": [14]}, {"55061564": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55061575": [1, 165, 42]}, {"55061580": [60, 9, 128, 65, 52, 10]}, {"55061587": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 48]}, {"55061616": [143, 163]}, {"55061619": [16, 143, 191]}, {"55061623": [20, 39, 189]}, {"55061627": [24, 143, 164]}, {"55061631": [104, 143, 165]}, {"55061635": [108, 143, 166]}, {"55061639": [112, 143, 167]}, {"55061643": [116, 132, 110, 19, 196, 3, 224]}, {"55061651": [8]}, {"55061656": [147, 25]}, {"55061659": [116, 52, 1]}, {"55061663": [255, 23, 33]}, {"55061667": [2]}, {"55061672": [52, 25]}, {"55061675": [44, 3, 224]}, {"55061679": [8, 167, 185]}, {"55061683": [154, 147, 44]}, {"55061687": [116, 52, 1]}, {"55061691": [255, 21, 129]}, {"55061695": [2]}, {"55061700": [52, 12]}, {"55061703": [44, 3, 224]}, {"55061707": [8]}, {"55061712": [145, 174]}, {"55061715": [116, 52, 1]}, {"55061719": [255, 21, 193]}, {"55061723": [2]}, {"55061728": [52, 14]}, {"55061731": [44, 3, 224]}, {"55061735": [8, 167, 174]}, {"55061739": [154, 145, 207]}, {"55061743": [116, 52, 1]}, {"55061747": [255, 21, 225]}, {"55061751": [2]}, {"55061756": [52, 15]}, {"55061759": [44, 3, 224]}, {"55061763": [8, 167, 175]}, {"55061767": [154, 60, 8, 128, 64, 37, 8, 32, 20, 142, 9]}, {"55061779": [104, 173, 9]}, {"55061784": [142, 9]}, {"55061787": [108, 173, 9]}, {"55061791": [4, 150, 9]}, {"55061795": [112, 165, 9]}, {"55061799": [8, 150, 9]}, {"55061803": [156, 165, 9]}, {"55061807": [10, 3, 224]}, {"55061811": [8, 142, 14]}, {"55061815": [4, 39, 189, 255, 224, 175, 176]}, {"55061823": [16, 175, 177]}, {"55061827": [20, 175, 191]}, {"55061831": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 20, 142, 8]}, {"55061851": [4, 17]}, {"55061855": [5]}, {"55061860": [12, 16, 11, 120]}, {"55061868": [16]}, {"55061871": [3]}, {"55061876": [12, 16, 11, 139]}, {"55061884": [12, 16, 11, 107, 52, 4]}, {"55061892": [12, 16, 11, 107, 52, 4]}, {"55061899": [1, 12, 16, 11, 107, 52, 4]}, {"55061907": [2, 143, 176]}, {"55061911": [16, 143, 177]}, {"55061915": [20, 143, 191]}, {"55061919": [24, 39, 189]}, {"55061923": [32, 3, 224]}, {"55061927": [8]}, {"55061932": [2, 4, 64, 33, 145, 9]}, {"55061939": [108, 52, 1]}, {"55061943": [255, 17, 33]}, {"55061947": [7]}, {"55061952": [2, 9, 72, 33, 145, 41]}, {"55061959": [116, 52, 1]}, {"55061963": [44, 17, 33]}, {"55061967": [2]}, {"55061972": [161, 9]}, {"55061975": [105, 3, 224]}, {"55061979": [8]}, {"55061984": [39, 189, 255, 232, 175, 191]}, {"55061991": [16, 142, 40]}, {"55061996": [174, 8]}, {"55061999": [64, 142, 40]}, {"55062003": [4, 174, 8]}, {"55062007": [68, 150, 40]}, {"55062011": [8, 166, 8]}, {"55062015": [72, 162]}, {"55062018": [15, 51, 146, 8]}, {"55062023": [74, 52, 1]}, {"55062027": [255, 21, 1]}, {"55062031": [3]}, {"55062036": [12, 16, 11, 153]}, {"55062044": [143, 191]}, {"55062047": [16, 39, 189]}, {"55062051": [24, 3, 224]}, {"55062055": [8]}, {"55062060": [142, 8]}, {"55062063": [64, 174, 8]}, {"55062067": [104, 142, 8]}, {"55062071": [68, 174, 8]}, {"55062075": [108, 150, 8]}, {"55062079": [72, 166, 8]}, {"55062083": [112, 146, 8]}, {"55062087": [104, 52, 1]}, {"55062091": [255, 21, 1]}, {"55062095": [3]}, {"55062100": [52, 8]}, {"55062103": [1, 162, 8, 15, 51, 3, 224]}, {"55062111": [8]}, {"55062116": [39, 189, 255, 232, 175, 191]}, {"55062123": [16, 150, 8]}, {"55062127": [156, 49, 8]}, {"55062131": [64, 17]}, {"55062135": [5]}, {"55062140": [150, 8]}, {"55062143": [112, 49, 8, 255, 15, 53, 8]}, {"55062151": [48, 166, 8]}, {"55062155": [112, 146, 40]}, {"55062159": [1, 162, 8]}, {"55062163": [105, 150, 40]}, {"55062167": [2, 166, 8]}, {"55062171": [106, 142, 40]}, {"55062175": [4, 174, 8]}, {"55062179": [108, 12, 16, 11, 179, 52, 4]}, {"55062188": [12, 16, 11, 179, 52, 4]}, {"55062195": [1, 12, 16, 11, 179, 52, 4]}, {"55062203": [2, 143, 191]}, {"55062207": [16, 39, 189]}, {"55062211": [24, 3, 224]}, {"55062215": [8]}, {"55062220": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 47, 120, 145, 10]}, {"55062235": [108, 52, 1]}, {"55062239": [255, 17, 65]}, {"55062243": [5]}, {"55062248": [1, 42, 72, 33, 145, 41]}, {"55062256": [21, 32]}, {"55062259": [28]}, {"55062264": [60, 9, 128, 64, 37, 41, 47, 107, 37, 41]}, {"55062275": [1, 145, 42]}, {"55062280": [17, 64]}, {"55062283": [19]}, {"55062288": [2, 10, 88, 33, 145, 107]}, {"55062295": [116, 52, 1]}, {"55062299": [255, 17, 97, 255, 248]}, {"55062308": [146, 12]}, {"55062311": [108, 17, 138, 255, 245]}, {"55062320": [146, 12]}, {"55062323": [109, 17, 138, 255, 242]}, {"55062332": [146, 12]}, {"55062335": [110, 17, 138, 255, 239]}, {"55062344": [161, 11]}, {"55062347": [105, 161, 10]}, {"55062351": [108, 16]}, {"55062355": [4]}, {"55062360": [52, 9]}, {"55062363": [255, 161, 9]}, {"55062367": [105, 161, 9]}, {"55062371": [108, 3, 224]}, {"55062375": [8]}, {"55062380": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55062393": [1, 1, 1, 1, 1]}, {"55062399": [1, 1, 1, 1, 1]}, {"55062405": [1]}, {"55062407": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55062417": [51, 8, 33, 32, 15]}, {"55062423": [71, 21, 234]}, {"55062427": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062439": [164]}, {"55062441": [15, 122, 3, 20, 64]}, {"55062447": [5, 52, 2, 72, 48, 21, 226]}, {"55062455": [7]}, {"55062460": [36, 25]}, {"55062463": [3, 16]}, {"55062467": [4, 52, 2, 99, 17, 21, 226]}, {"55062475": [2]}, {"55062480": [36, 25]}, {"55062483": [3, 3, 224]}, {"55062487": [8]}, {"55062492": [141, 173, 138, 160, 52, 2, 128]}, {"55062500": [16, 77]}, {"55062503": [2]}, {"55062508": [16]}, {"55062511": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55062527": [1, 16, 64]}, {"55062531": [2]}, {"55062536": [16]}, {"55062539": [2, 52, 2]}, {"55062543": [1, 161, 226, 28, 191, 3, 224]}, {"55062551": [8]}, {"55062557": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062571": [164]}, {"55062573": [15, 122, 3, 20, 64]}, {"55062579": [5, 52, 2, 72, 48, 21, 226]}, {"55062587": [7]}, {"55062592": [36, 25]}, {"55062595": [3, 16]}, {"55062599": [4, 52, 2, 99, 17, 21, 226]}, {"55062607": [2]}, {"55062612": [36, 25]}, {"55062615": [3, 3, 224]}, {"55062619": [8]}, {"55062624": [162, 37]}, {"55062627": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55062639": [4, 142, 10]}, {"55062644": [17, 64]}, {"55062647": [11]}, {"55062653": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55062665": [24, 194, 2, 23]}, {"55062671": [3, 49, 89]}, {"55062675": [255, 129, 234]}, {"55062680": [3, 42, 200, 37, 8, 16, 12, 27, 161, 249]}, {"55062692": [3, 224]}, {"55062695": [8]}] \ No newline at end of file diff --git a/version.py b/version.py index 59d224d14..f616a2d97 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.10.3 f.LUM' +__version__ = '2.10.4 f.LUM' From 228bd57281c134b90420fe05a7e96ed9f1f42e38 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Mon, 9 Jul 2018 18:27:00 -0400 Subject: [PATCH 136/755] Settings properly sets defaults --- Settings.py | 10 +++++----- version.py | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Settings.py b/Settings.py index b019e36f2..d7417ec8a 100644 --- a/Settings.py +++ b/Settings.py @@ -136,14 +136,14 @@ def __init__(self, settings_dict): for info in setting_infos: if info.name not in self.__dict__: if info.type == bool: - self.__dict__[info.name] = False + self.__dict__[info.name] = True if info.gui_params['default'] == 'checked' else False if info.type == str: if 'default' in info.args_params: - self.__dict__[info.name] = info.args_params['default'] + self.__dict__[info.name] = info.gui_params['default'] or info.args_params['default'] else: self.__dict__[info.name] = "" if info.type == int: - self.__dict__[info.name] = 1 + self.__dict__[info.name] = info.gui_params['default'] or 1 self.settings_string = self.get_settings_string() if(self.seed is None): # https://stackoverflow.com/questions/2257441/random-string-generation-with-upper-case-letters-and-digits-in-python @@ -312,7 +312,7 @@ def __init__(self, settings_dict): 'text': 'Number of Ganon\'s Trials', 'group': 'open', 'widget': 'Scale', - 'default': '6', + 'default': 6, 'min': 0, 'max': 6, }), @@ -480,7 +480,7 @@ def __init__(self, settings_dict): 'text': 'Maximum expected skulltula tokens', 'group': 'rewards', 'widget': 'Scale', - 'default': '50', + 'default': 50, 'min': 0, 'max': 50, 'step': 10, diff --git a/version.py b/version.py index f616a2d97..382753674 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.10.4 f.LUM' +__version__ = '2.10.5 f.LUM' From 57c8f441f98e04f6f69fcdd4830d841fea124e1c Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Mon, 9 Jul 2018 19:22:24 -0500 Subject: [PATCH 137/755] Looks like some more junk hints were added. --- HintList.py | 8 ++++---- version.py | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/HintList.py b/HintList.py index 3b3fe3c4f..c2b97fa69 100644 --- a/HintList.py +++ b/HintList.py @@ -132,7 +132,7 @@ def getHintGroup(string, world): 'Deku Nuts (5)': ("some nuts", 'item'), 'Deku Nuts (10)': ("lots-o-nuts", 'item'), #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box - '10 Big Poes': ("They say that 10 Big Poes leads&to", 'alwaysLocation'), + '10 Big Poes': ("They say that Big Poes leads&to", 'alwaysLocation'), 'Deku Theater Mask of Truth': ("They say that the Mask of Truth&yields", 'alwaysLocation'), '30 Gold Skulltulla Reward': ("They say that slaying&30 Gold Skulltullas&reveals", 'alwaysLocation'), '40 Gold Skulltulla Reward': ("They say that slaying&40 Gold Skulltullas&reveals", 'alwaysLocation'), @@ -180,13 +180,11 @@ def getHintGroup(string, world): '1002': ("They say that monarchy is a&terrible system of governance.", 'junkHint'), '1003': ("They say that Zelda is a poor&leader.", 'junkHint'), '1004': ("These hints can be quite useful.&This is an exception.", 'junkHint'), - '1005': ("The Stone of Agony is in your&inventory.", 'junkHint'), '1006': ("They say that all the Zora drowned&in Wind Waker.", 'junkHint'), '1007': ("They say that PJ64 is a terrible&emulator.", 'junkHint'), '1008': ("'Member when Ganon was a blue pig?^I 'member.", 'junkHint'), '1009': ("One who does not have Triforce&can't go in.", 'junkHint'), '1010': ("Save your future,&end the Happy Mask Salesmen.", 'junkHint'), - '1011': ("Early Agony equals likely&troll seed.", 'junkHint'), '1012': ("I'm stoned. Get it?", 'junkHint'), '1013': ("Hoot! Hoot! Would you like me to&repeat that?", 'junkHint'), '1014': ("Gorons are stupid.&They eat rocks.", 'junkHint'), @@ -194,7 +192,6 @@ def getHintGroup(string, world): '1016': ("The single rupee is a&unique item.", 'junkHint'), '1017': ("Without the Lens of Truth, the&Treasure Chest Mini-Game&is a 1 out of 32 chance.^Good luck!", 'junkHint'), '1018': ("Use bombs wisely.", 'junkHint'), - '1019': ("Bomchus are not considered&in logic.", 'junkHint'), '1021': ("I found you faker!", 'junkHint'), '1022': ("You're comparing&yourself to me?^Ha! You're not even good&enough to be my fake.", 'junkHint'), '1023': ("I'll make you eat those words.", 'junkHint'), @@ -217,6 +214,9 @@ def getHintGroup(string, world): '1040': ("There's a reason why I am special&inquisitor!", 'junkHint'), '1041': ("You were almost a @&sandwich.", 'junkHint'), '1042': ("I'm a helpful hint Gossip Stone!^See I'm helping.", 'junkHint'), + '1043': ("Dear @, please come to the castle.&I've baked a cake for you.&&Yours truly, pricess Zelda.", 'junkHint'), + '1044': ("I like shorts! They're comfy and&easy to wear!", 'junkHint'), + '1044': ("They say all toasters toast toast.", 'junkHint'), #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box 'Deku Tree': ("an ancient tree", 'dungeon'), 'Dodongos Cavern': ("an immense cavern", 'dungeon'), diff --git a/version.py b/version.py index 169eda1a4..fec156266 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.10.1 f.LUM' +__version__ = '2.10.2 f.LUM' From 4276b0e60c96043f5840a7bb4c1d18fee0cfdde9 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Tue, 10 Jul 2018 19:22:07 -0500 Subject: [PATCH 138/755] Changed malon.asm to avoid modifying any instructions that could be reallocated at runtime. --- ASM/src/malon.asm | 143 ++++++++++++++++++++++++++++------------- Rom.py | 2 +- data/base2current.json | 2 +- version.py | 2 +- 4 files changed, 100 insertions(+), 49 deletions(-) diff --git a/ASM/src/malon.asm b/ASM/src/malon.asm index 671d60225..602f0e25e 100644 --- a/ASM/src/malon.asm +++ b/ASM/src/malon.asm @@ -82,64 +82,115 @@ return_from_the_other_function: -; 0xD7E818 is a function that sets a value in Malon's actor that makes Link get the item from her (cb0) -; + 0x74 is where the flag/scene checks take place +; 0xD7E818 is a function that sets a value in Malon's actor that makes Link get the item from her (ev0) +; + 0x78 is where the flag/scene checks take place ; at this point, we have the following: ; a0 = pointer to the Malon actor ; a2 = pointer to the global context ; t1 = current scene number ; at = 0x5f (Hyrule Castle) - -.org 0xD7E88C -.area 0x5C, 0 - lui v0,0x8012 - bne t1,at,@@not_hyrule ; if scene is not Hyrule Castle - addiu v0,v0,-23088 ; v0 = 0x8012a5d0 # save context - lhu t2,0x0ed6(v0) ; this byte holds the two flags below - andi t3,t2,0x10 ; t3 = "Talon has fled castle" - andi t2,t2,0x04 ; t2 = "Obtained Malon's Item" - or t2,t2,t3 ; t2 = combination of the flags - li t3,0x14 ; t3 = 0x14 which is the value if both flags are set - bne t2,t3,@@not_hyrule ; check that both flags are true to continue this path +; v0 = pointer to save context + +.org 0xD7E890 + nop ;bne t1,at,@@not_hyrule ; if scene is not Hyrule Castle + addiu v0,v0,0xa5d0 ; v0 = 0x8012a5d0 # save context + lhu t2,0x0ed6(v0) ; this byte holds the two flags below + andi t3,t2,0x10 ; t3 = "Talon has fled castle" + b @@safe ; skip code that may have reallocations + andi t2,t2,0x04 ; t2 = "Obtained Malon's Item" + +@@unsafe: + jal 0x00020eb4 + nop nop - b return_from_the_other_function - lw ra,20(sp) ; jump to return + nop + lui v0,0x8012 + addiu v0,v0,0xa5d0 + +@@safe: + li t3,0x14 ; t3 = 0x14 which is the value if both flags are set + lui t6,0x8010 + or t2,t2,t3 ; t2 = combination of the flags + bne t2,t3,ev0_return ; check that both flags are true to continue this path @@not_hyrule: - lui t4,0x8010 - lw t4,0x8c24(t4) ; t4 = *(0x80108c24) - lw t5,0xa4(v0) ; t5 = quest status - and t6,t5,t4 ; t6 = "Has Epona's Song" - bnez t6,return_from_the_other_function ; return if we already have epona's song - nop -.endarea + +.org 0xD7E8E0 + bnezl t8,ev0_return ; return if we have Malon's song + +.org 0xD7E920 +ev0_return: + + + +; +; ; Replaces: +; ; addiu v0,v0,0xa5d0 +; .org 0xD7E760 +; lw t8,68(sp) ; t8 = global context +; +; ; Replaces: +; ; lhu t8,3798(v0) +; .org 0xD7E76C +; lh t8,0xA4(t8) ; t8 = current scene number +; +; ; Replaces: +; ; andi t9,t8,0x10 +; ; beqz t9,ev_egg +; .org 0xD7E778 +; li t9,0x5f ; t9 = 0x5f (Hyrule Castle) +; beq t8,t9,ev_egg ; jump if the scene is Hyrule Castle +; +; ; Replace: +; ; lw t1,164(v0) +; .org 0xD7E788 +; lw t1,0xA674(v0) ; t1 = quest status +; +; .org 0xD7E7A0 +; ev_egg: + + +; This is the hook to change Malon's event ev1 +; See malon_extra.asm for description of what this is changing +; Replaces: +; lui t2,0x8012 +; lhu t2,-19290(t2) +; andi t3,t2,0x40 +; beqzl t3,@@return_block +; lw ra,28(sp) +;.org 0xD7EA48 +; lw a1,44(sp) ; a1 = pointer to the global context +; jal malon_ev1_hack ; run the extra checks +; nop ; Note that malon_ev1_hack will be able to return +; nop ; to the return address of the current function +; nop ; (fixing the stack appropriately) + + ; 0xD7E670 is Malon's initialization function ; the original check sets event to cb0 if Talon has fled, or Epona's Song is owned, and sets cb1 otherwise ; instead, we will check if we are in Hyrule castle, or Epona's song is owned, for event cb0 +; note that we need to be insainly careful not to change any instructions that may be reallocated, +; or else it would cause issues and other changes would need to be made -; Replaces: -; addiu v0,v0,0xa5d0 -.org 0xD7E760 - lw t8,68(sp) ; t8 = global context - -; Replaces: -; lhu t8,3798(v0) .org 0xD7E76C - lh t8,0xA4(t8) ; t8 = current scene number - -; Replaces: -; andi t9,t8,0x10 -; beqz t9,ev_egg -.org 0xD7E778 - li t9,0x5f ; t9 = 0x5f (Hyrule Castle) - beq t8,t9,ev_egg ; jump if the scene is Hyrule Castle - -; Replace: -; lw t1,164(v0) -.org 0xD7E788 - lw t1,0xA674(v0) ; t1 = quest status - -.org 0xD7E7A0 -ev_egg: \ No newline at end of file + lw t8,68(sp) ; t8 = global context + lui t3,0x809f + lui t0,0x8010 + lh t8,0xA4(t8) ; t8 = current scene number + lw t1,164(v0) ; t1 = quest status + addiu t3,t3,4392 ; t3 = 0x809f1128 ( ev0 ) + lw t0,-29660(t0) ; t0 = malon's song mask + move a0,s0 ; a0 = actor pointer to set up function call + lui t4,0x809f + addiu t4,t4,4840 ; t4 = 0x809f12e8 ( ev1 ) + and t2,t0,t1 ; t2 = "Has Malon's Song" + bnez t2,@@set_ev0 ; if "Has Malon's Song", set event to ev0 + li t9,0x5f ; t9 = 0x5f (Hyrule Castle) + bne t9,t8,set_ev1 ; otherwise if not in Hyrule Castle, set event to ev1 +@@set_ev0: + sw t3,384(s0) ; write f_9f1128 to actor + 0x180 + +.org 0xD7E7B8 +set_ev1: \ No newline at end of file diff --git a/Rom.py b/Rom.py index 407b09f4e..83ae1e1c3 100644 --- a/Rom.py +++ b/Rom.py @@ -1049,7 +1049,7 @@ def write_byte_to_save(offset, value): malon_fix_high = malon_fix >> 8 malon_fix_low = malon_fix & 0x00FF rom.write_bytes(0xD7E142, [malon_fix_high, malon_fix_low]) - rom.write_bytes(0xD7E8C2, [malon_fix_high, malon_fix_low]) # I really don't like hardcoding these addresses, but for now..... + rom.write_bytes(0xD7E8D6, [malon_fix_high, malon_fix_low]) # I really don't like hardcoding these addresses, but for now..... rom.write_bytes(0xD7E786, [malon_fix_high, malon_fix_low]) rom.write_byte(0x29BECB9, item_data[item.name]) #Fix text box elif location.name == 'Song from Composer Grave': diff --git a/data/base2current.json b/data/base2current.json index ee08f4870..500668427 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -1 +1 @@ -[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 35]}, {"11325064": [12, 16, 10, 251, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 11, 78]}, {"11427312": [12, 16, 11, 247]}, {"11562028": [12, 16, 12, 24]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 12, 7]}, {"11882076": [12, 16, 11, 228]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 11, 45, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 11, 52, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 11, 59, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 11, 38, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 9, 243]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 9, 192]}, {"12427480": [12, 16, 9, 221]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 9, 225]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 11, 3, 0, 0, 0, 0]}, {"12491456": [12, 16, 9, 255]}, {"12491480": [12, 16, 10, 8]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 10, 208]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 11, 66]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149472": [143, 184, 0, 68]}, {"14149484": [135, 24, 0, 164]}, {"14149496": [52]}, {"14149499": [95]}, {"14149501": [25]}, {"14149514": [166, 116]}, {"14149779": [10]}, {"14149792": [49, 74]}, {"14149795": [4, 1, 75, 80, 37, 52, 11, 0, 20, 21, 75]}, {"14149807": [3, 0]}, {"14149811": [0, 16, 0, 254, 53, 143, 191, 0, 20, 60, 12, 128, 16, 141, 140, 140, 36, 140, 77, 0, 164, 1, 172, 112, 36, 21, 192, 254, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"14149851": [0, 0, 0, 0, 0, 0]}, {"14149859": [0, 0, 0]}, {"14149863": [0]}, {"14357459": [118]}, {"14624335": [118]}, {"14872723": [52]}, {"15506663": [122]}, {"55057408": [90, 93, 92, 94, 81, 82, 83]}, {"55058464": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 212, 128, 64, 36, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 212, 128, 64, 36, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 212, 128, 64, 36, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 212, 128, 64, 36, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 212, 128, 64, 36, 236, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 212, 128, 64, 37, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 212, 128, 64, 37, 48, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 212, 128, 64, 37, 76, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 212, 128, 64, 37, 104, 83, 65, 56, 67]}, {"55058613": [235, 21, 255, 128, 64, 37, 236, 128, 64, 36, 80, 83, 65, 55, 68]}, {"55058629": [235, 22, 255, 128, 64, 37, 236, 128, 64, 36, 80, 83, 65, 57, 69]}, {"55058645": [235, 23, 255, 128, 64, 37, 236, 128, 64, 36, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 37, 236, 128, 64, 36, 80, 83, 65, 63, 71]}, {"55058677": [244, 25, 255, 128, 64, 37, 236, 128, 64, 36, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 37, 236, 128, 64, 36, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 37, 236, 128, 64, 36, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 37, 236, 128, 64, 36, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 37, 236, 128, 64, 36, 80, 83, 65, 10, 6]}, {"55058757": [185, 1, 3, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 10, 28]}, {"55058773": [185, 1, 4, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 10, 29]}, {"55058789": [185, 1, 5, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 10, 30]}, {"55058805": [185, 1, 6, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 10, 42]}, {"55058821": [185, 1, 7, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 10, 97]}, {"55058837": [185, 1, 10, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 11, 98]}, {"55058853": [184, 2]}, {"55058856": [128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 11, 99]}, {"55058869": [184, 2, 1, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 11, 100]}, {"55058885": [184, 2, 2, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 11, 101]}, {"55058901": [184, 2, 3, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 11, 124]}, {"55058917": [184, 2, 4, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 11, 125]}, {"55058933": [184, 2, 5, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 11, 126]}, {"55058949": [184, 2, 6, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 11, 127]}, {"55058965": [184, 2, 7, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 11, 162]}, {"55058981": [184, 2, 8, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 11, 135]}, {"55058997": [184, 2, 9, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 28, 136]}, {"55059013": [200, 4]}, {"55059016": [128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 28, 137]}, {"55059029": [200, 4, 1, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 28, 138]}, {"55059045": [200, 4, 2, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 28, 139]}, {"55059061": [200, 4, 3, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 28, 140]}, {"55059077": [200, 4, 4, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 28, 142]}, {"55059093": [200, 4, 5, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 28, 143]}, {"55059109": [200, 4, 6, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 28, 163]}, {"55059125": [200, 4, 7, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 28, 165]}, {"55059141": [200, 4, 8, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 28, 146]}, {"55059157": [200, 4, 9, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 2, 147]}, {"55059173": [170, 3, 255, 128, 64, 38, 68, 128, 64, 36, 80, 83, 65, 2, 148]}, {"55059189": [170, 4, 255, 128, 64, 38, 68, 128, 64, 36, 80, 83, 65, 2, 149]}, {"55059205": [170, 5, 255, 128, 64, 38, 68, 128, 64, 36, 80, 83, 65, 2, 166]}, {"55059221": [170, 6, 255, 128, 64, 38, 68, 128, 64, 36, 80, 83, 65, 2, 169]}, {"55059237": [170, 7, 255, 128, 64, 38, 68, 128, 64, 36, 80, 83, 65, 2, 155]}, {"55059253": [170, 8, 255, 128, 64, 38, 68, 128, 64, 36, 80, 83, 65, 2, 159]}, {"55059269": [170, 11, 255, 128, 64, 38, 68, 128, 64, 36, 80, 83, 65, 2, 160]}, {"55059285": [170, 12, 255, 128, 64, 38, 68, 128, 64, 36, 80, 83, 65, 2, 161]}, {"55059301": [170, 13, 255, 128, 64, 38, 68, 128, 64, 36, 80, 83, 61, 67, 12]}, {"55059317": [248, 255, 255, 128, 64, 37, 220, 128, 64, 36, 80, 77, 131, 247, 85]}, {"55059333": [183, 255, 255, 128, 64, 37, 212, 128, 64, 36, 80, 83, 146, 219, 230]}, {"55059349": [216, 255, 255, 128, 64, 37, 212, 128, 64, 37, 156, 83, 147, 218, 230]}, {"55059365": [216, 255, 255, 128, 64, 37, 212, 128, 64, 37, 156, 83, 148, 217, 230]}, {"55059381": [216, 255, 255, 128, 64, 37, 212, 128, 64, 37, 156, 83, 142, 224, 50]}, {"55059397": [206, 255, 255, 128, 64, 37, 212, 128, 64, 37, 184, 83, 143, 224, 50]}, {"55059413": [206, 255, 255, 128, 64, 37, 212, 128, 64, 37, 184, 83, 144, 224, 50]}, {"55059429": [206, 255, 255, 128, 64, 37, 212, 128, 64, 37, 184, 77, 140, 238, 52]}, {"55059445": [187, 255, 255, 128, 64, 37, 212, 128, 64, 36, 80, 77, 141, 238, 52]}, {"55059461": [187, 255, 255, 128, 64, 37, 212, 128, 64, 36, 80, 79, 65, 19, 233]}, {"55059477": [189, 255, 255, 128, 64, 38, 108, 128, 64, 36, 80, 79, 65, 30, 228]}, {"55059493": [205, 255, 255, 128, 64, 38, 140, 128, 64, 37, 132, 79, 65, 31, 232]}, {"55059509": [205, 255, 255, 128, 64, 38, 172, 128, 64, 36, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 212, 128, 64, 38, 212, 3, 224]}, {"55059539": [8, 52, 162]}, {"55059544": [144, 136]}, {"55059547": [125, 52, 1]}, {"55059551": [255, 17, 1]}, {"55059555": [2, 52, 2]}, {"55059559": [8, 52, 2]}, {"55059563": [9, 3, 224]}, {"55059567": [8]}, {"55059572": [144, 136]}, {"55059575": [163, 49, 8]}, {"55059579": [192, 17]}, {"55059583": [5, 52, 2]}, {"55059587": [84, 52, 1]}, {"55059591": [64, 17, 1]}, {"55059595": [2, 52, 2]}, {"55059599": [53, 52, 2]}, {"55059603": [54, 3, 224]}, {"55059607": [8]}, {"55059612": [144, 136]}, {"55059615": [163, 49, 8]}, {"55059619": [24, 17]}, {"55059623": [5, 52, 2]}, {"55059627": [50, 52, 1]}, {"55059631": [8, 17, 1]}, {"55059635": [2, 52, 2]}, {"55059639": [51, 52, 2]}, {"55059643": [52, 3, 224]}, {"55059647": [8]}, {"55059652": [144, 136]}, {"55059655": [163, 49, 8]}, {"55059659": [3, 17]}, {"55059663": [5, 52, 2]}, {"55059667": [4, 52, 1]}, {"55059671": [1, 17, 1]}, {"55059675": [2, 52, 2]}, {"55059679": [48, 52, 2]}, {"55059683": [49, 3, 224]}, {"55059687": [8]}, {"55059692": [144, 136]}, {"55059695": [162, 49, 8]}, {"55059699": [192, 17]}, {"55059703": [5, 52, 2]}, {"55059707": [5, 52, 1]}, {"55059711": [64, 17, 1]}, {"55059715": [2, 52, 2]}, {"55059719": [96, 52, 2]}, {"55059723": [123, 3, 224]}, {"55059727": [8]}, {"55059732": [144, 136]}, {"55059735": [162, 49, 8]}, {"55059739": [48, 17]}, {"55059743": [2, 52, 2]}, {"55059747": [69, 52, 2]}, {"55059751": [70, 3, 224]}, {"55059755": [8]}, {"55059760": [144, 136]}, {"55059763": [162, 49, 8]}, {"55059767": [6, 17]}, {"55059771": [2, 52, 2]}, {"55059775": [55, 52, 2]}, {"55059779": [56, 3, 224]}, {"55059783": [8]}, {"55059788": [144, 136]}, {"55059791": [161, 49, 8]}, {"55059795": [32, 17]}, {"55059799": [2, 52, 2]}, {"55059803": [121, 52, 2]}, {"55059807": [122, 3, 224]}, {"55059811": [8]}, {"55059816": [144, 136]}, {"55059819": [161, 49, 8]}, {"55059823": [4, 17]}, {"55059827": [2, 52, 2]}, {"55059831": [119, 52, 2]}, {"55059835": [120, 3, 224]}, {"55059839": [8]}, {"55059844": [144, 136]}, {"55059847": [50, 17]}, {"55059851": [2, 52, 2]}, {"55059855": [192, 52, 2]}, {"55059859": [193, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [3, 17]}, {"55059879": [2, 52, 2]}, {"55059883": [77, 52, 162]}, {"55059888": [3, 224]}, {"55059891": [8]}, {"55059896": [144, 136]}, {"55059899": [163, 49, 8]}, {"55059903": [24, 17]}, {"55059907": [2, 52, 2]}, {"55059911": [77, 52, 162]}, {"55059916": [3, 224]}, {"55059919": [8]}, {"55059924": [3, 224]}, {"55059927": [8]}, {"55059932": [52, 8]}, {"55059935": [1, 160, 136]}, {"55059939": [62, 3, 224]}, {"55059943": [8]}, {"55059948": [36, 136]}, {"55059951": [134, 36, 9, 255, 255, 37, 41]}, {"55059959": [1, 52, 1]}, {"55059963": [3]}, {"55059965": [41, 8, 42, 20, 32]}, {"55059971": [7]}, {"55059976": [1, 9, 80, 33, 145, 75]}, {"55059984": [52, 1]}, {"55059987": [255, 21, 97, 255, 247]}, {"55059996": [161, 69]}, {"55060000": [3, 224]}, {"55060003": [8]}, {"55060008": [36, 136]}, {"55060011": [168, 1, 6, 64, 33, 145, 9]}, {"55060020": [1, 37, 72, 37, 161, 9]}, {"55060028": [3, 224]}, {"55060031": [8]}, {"55060036": [36, 136]}, {"55060039": [188, 1, 5, 64, 33, 129, 9]}, {"55060048": [5, 33]}, {"55060051": [2]}, {"55060056": [52, 9]}, {"55060060": [37, 41]}, {"55060063": [1, 161, 9]}, {"55060068": [3, 224]}, {"55060071": [8]}, {"55060076": [52, 8]}, {"55060079": [1, 160, 136]}, {"55060083": [61, 52, 8]}, {"55060087": [20, 160, 136]}, {"55060091": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060103": [8]}, {"55060108": [52, 8]}, {"55060111": [1, 160, 136]}, {"55060115": [50, 160, 136]}, {"55060119": [58, 52, 8]}, {"55060123": [48, 164, 136, 19, 244, 160, 136]}, {"55060131": [51, 3, 224]}, {"55060135": [8]}, {"55060140": [52, 8]}, {"55060143": [2, 160, 136]}, {"55060147": [50, 52, 8]}, {"55060151": [1, 160, 136]}, {"55060155": [58, 160, 136]}, {"55060159": [60, 52, 8]}, {"55060163": [96, 164, 136, 19, 244, 160, 136]}, {"55060171": [51, 3, 224]}, {"55060175": [8]}, {"55060180": [144, 136]}, {"55060183": [124, 52, 1]}, {"55060187": [255, 17, 1]}, {"55060191": [6, 52, 2]}, {"55060195": [107, 144, 136]}, {"55060199": [148, 45, 8]}, {"55060203": [6, 17]}, {"55060207": [2, 52, 2]}, {"55060211": [106, 52, 2]}, {"55060215": [3, 3, 224]}, {"55060219": [8]}, {"55060224": [48, 132]}, {"55060227": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060239": [140, 16, 129]}, {"55060243": [22, 145, 2]}, {"55060247": [117, 52, 1]}, {"55060251": [141, 16, 129]}, {"55060255": [19, 145, 2]}, {"55060259": [117, 16, 128]}, {"55060263": [17, 145, 2]}, {"55060267": [116, 52, 1]}, {"55060271": [138, 16, 129]}, {"55060275": [14, 145, 2]}, {"55060279": [116, 52, 1]}, {"55060283": [139, 16, 129]}, {"55060287": [11, 145, 2]}, {"55060291": [116, 52, 1]}, {"55060295": [88, 16, 129]}, {"55060299": [8, 52, 2]}, {"55060304": [52, 1]}, {"55060307": [120, 16, 129]}, {"55060311": [5, 52, 2]}, {"55060316": [52, 1]}, {"55060319": [121, 16, 129]}, {"55060323": [2, 52, 2]}, {"55060328": [52, 2]}, {"55060331": [255, 3, 224]}, {"55060335": [8]}, {"55060340": [143, 166]}, {"55060343": [48, 132, 197]}, {"55060347": [4, 8, 16, 9, 229]}, {"55060356": [143, 185]}, {"55060359": [44, 135, 37]}, {"55060363": [4, 8, 16, 9, 229]}, {"55060372": [60, 10, 128, 64, 37, 74, 32]}, {"55060380": [141, 75]}, {"55060383": [12, 17, 96]}, {"55060387": [2]}, {"55060392": [149, 69]}, {"55060395": [4, 60, 10, 128, 64, 37, 74, 32, 16, 161, 64]}, {"55060408": [60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060420": [3, 224]}, {"55060423": [8]}, {"55060428": [60, 8, 128, 64, 37, 8, 32]}, {"55060436": [141, 9]}, {"55060439": [12, 17, 32]}, {"55060443": [2]}, {"55060448": [129, 3]}, {"55060451": [2]}, {"55060453": [3, 15, 195]}, {"55060457": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55060471": [8]}, {"55060476": [144, 69]}, {"55060479": [3, 60, 8, 128, 64, 37, 8, 32]}, {"55060488": [141, 9]}, {"55060491": [12, 17, 32]}, {"55060495": [2]}, {"55060500": [145, 5]}, {"55060503": [3, 3, 224]}, {"55060507": [8]}, {"55060512": [143, 162]}, {"55060515": [36, 144, 69]}, {"55060520": [60, 8, 128, 64, 37, 8, 32]}, {"55060528": [141, 9]}, {"55060531": [12, 17, 32]}, {"55060535": [19]}, {"55060540": [145, 5]}, {"55060543": [1, 175, 164]}, {"55060548": [175, 165]}, {"55060551": [4, 175, 166]}, {"55060555": [8, 39, 189, 255, 232, 175, 191]}, {"55060563": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55060575": [6, 145, 6]}, {"55060579": [7, 141, 9]}, {"55060583": [8, 1, 32, 248, 9]}, {"55060592": [143, 191]}, {"55060595": [16, 39, 189]}, {"55060599": [24, 143, 164]}, {"55060604": [143, 165]}, {"55060607": [4, 143, 166]}, {"55060611": [8, 3, 224]}, {"55060615": [8]}, {"55060620": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55060631": [16, 175, 163]}, {"55060635": [20, 175, 191]}, {"55060639": [24, 12, 16, 10, 48]}, {"55060648": [143, 162]}, {"55060651": [16, 143, 163]}, {"55060655": [20, 143, 191]}, {"55060659": [24, 39, 189]}, {"55060663": [32, 3, 224]}, {"55060667": [8]}, {"55060672": [39, 189, 255, 232, 175, 191]}, {"55060679": [16, 60, 8, 128, 64, 37, 8, 32]}, {"55060688": [173]}, {"55060692": [173]}, {"55060695": [4, 173]}, {"55060699": [8, 173]}, {"55060703": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55060719": [42]}, {"55060725": [9, 15, 195, 1, 33, 32, 38]}, {"55060733": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 106]}, {"55060748": [4, 64]}, {"55060751": [34]}, {"55060756": [52, 68]}, {"55060760": [12, 16, 10, 175]}, {"55060768": [16, 96]}, {"55060771": [12]}, {"55060776": [60, 8, 128, 64, 37, 8, 32]}, {"55060784": [140, 105]}, {"55060788": [173, 9]}, {"55060792": [140, 105]}, {"55060795": [4, 173, 9]}, {"55060799": [4, 140, 105]}, {"55060803": [8, 173, 9]}, {"55060807": [8, 52, 9]}, {"55060811": [1, 173, 9]}, {"55060815": [12, 144, 98]}, {"55060820": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55060836": [52, 1]}, {"55060839": [10, 21, 65]}, {"55060843": [6]}, {"55060848": [149, 42]}, {"55060851": [28, 49, 74, 240, 31]}, {"55060857": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55060867": [28, 129, 9, 4, 36, 5, 33]}, {"55060875": [2]}, {"55060881": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55060891": [16, 39, 189]}, {"55060895": [24, 3, 224]}, {"55060899": [8]}, {"55060904": [39, 189, 255, 232, 175, 191]}, {"55060911": [16, 12, 16, 10, 120]}, {"55060920": [36, 1, 255, 255, 16, 65]}, {"55060927": [4]}, {"55060932": [52, 68]}, {"55060936": [12, 16, 10, 162]}, {"55060944": [143, 191]}, {"55060947": [16, 39, 189]}, {"55060951": [24, 3, 224]}, {"55060955": [8]}, {"55060960": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55060971": [164, 52, 8]}, {"55060976": [52, 137]}, {"55060980": [148, 170]}, {"55060984": [52, 1]}, {"55060987": [10, 21, 65]}, {"55060991": [14]}, {"55060996": [148, 171]}, {"55060999": [28, 52, 1]}, {"55061003": [16, 20, 65]}, {"55061007": [8]}, {"55061012": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061023": [4]}, {"55061028": [36, 2, 255, 255, 16]}, {"55061035": [21]}, {"55061040": [52, 8]}, {"55061043": [1, 49, 105]}, {"55061047": [31, 52, 1]}, {"55061051": [21, 21, 65]}, {"55061055": [12]}, {"55061060": [52, 1]}, {"55061063": [62, 16, 129]}, {"55061067": [7]}, {"55061072": [52, 1]}, {"55061075": [66, 16, 129]}, {"55061079": [4]}, {"55061084": [36, 2, 255, 255, 16]}, {"55061091": [7]}, {"55061096": [52, 8]}, {"55061099": [2, 144, 169, 1, 65]}, {"55061105": [2, 18]}, {"55061109": [72, 16, 37]}, {"55061113": [2, 18]}, {"55061117": [73, 16, 37, 3, 224]}, {"55061123": [8]}, {"55061128": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061143": [4, 141, 9]}, {"55061148": [17, 32]}, {"55061151": [5]}, {"55061157": [9, 82, 2, 21, 68, 255, 250]}, {"55061168": [49, 34]}, {"55061171": [255, 3, 224]}, {"55061175": [8]}, {"55061180": [39, 189, 255, 224, 175, 176]}, {"55061187": [16, 175, 177]}, {"55061191": [20, 175, 191]}, {"55061195": [24, 52, 130]}, {"55061200": [52, 80]}, {"55061204": [38, 8, 255, 128, 5]}, {"55061211": [18]}, {"55061216": [60, 17, 128, 64, 38, 49, 32, 32, 52, 9]}, {"55061227": [16, 1, 9]}, {"55061231": [24]}, {"55061234": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061252": [142, 40]}, {"55061255": [12, 1]}, {"55061258": [248, 9]}, {"55061264": [20, 80, 255, 239]}, {"55061272": [54, 35]}, {"55061276": [16]}, {"55061279": [2]}, {"55061284": [52, 3]}, {"55061288": [143, 176]}, {"55061291": [16, 143, 177]}, {"55061295": [20, 143, 191]}, {"55061299": [24, 39, 189]}, {"55061303": [32, 3, 224]}, {"55061307": [8]}, {"55061312": [140, 136, 29, 44, 52, 9]}, {"55061319": [1]}, {"55061321": [9, 78]}, {"55061324": [1, 9, 16, 36, 16, 64]}, {"55061331": [36]}, {"55061336": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55061351": [164, 52, 1]}, {"55061355": [61, 17, 129]}, {"55061359": [10]}, {"55061365": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55061375": [25]}, {"55061380": [52, 13]}, {"55061383": [1, 161, 141, 29, 40, 37, 74]}, {"55061391": [3, 16]}, {"55061395": [9]}, {"55061400": [52, 12]}, {"55061403": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55061419": [14]}, {"55061424": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 1, 1, 10, 64, 33, 129, 8]}, {"55061460": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061472": [52, 2]}, {"55061476": [3, 224]}, {"55061479": [8]}, {"55061484": [60, 8, 128, 64, 37, 8, 28]}, {"55061492": [129, 8]}, {"55061496": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061508": [3, 224]}, {"55061511": [8]}, {"55061516": [175, 164]}, {"55061519": [104, 175, 165]}, {"55061523": [108, 175, 166]}, {"55061527": [112, 175, 167]}, {"55061531": [116, 39, 189, 255, 232, 175, 163]}, {"55061539": [16, 175, 191]}, {"55061543": [20, 60, 8, 128, 64, 37, 8, 32, 16, 129, 8]}, {"55061556": [17]}, {"55061559": [14]}, {"55061564": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55061575": [1, 165, 42]}, {"55061580": [60, 9, 128, 65, 52, 10]}, {"55061587": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 48]}, {"55061616": [143, 163]}, {"55061619": [16, 143, 191]}, {"55061623": [20, 39, 189]}, {"55061627": [24, 143, 164]}, {"55061631": [104, 143, 165]}, {"55061635": [108, 143, 166]}, {"55061639": [112, 143, 167]}, {"55061643": [116, 132, 110, 19, 196, 3, 224]}, {"55061651": [8]}, {"55061656": [147, 25]}, {"55061659": [116, 52, 1]}, {"55061663": [255, 23, 33]}, {"55061667": [2]}, {"55061672": [52, 25]}, {"55061675": [44, 3, 224]}, {"55061679": [8, 167, 185]}, {"55061683": [154, 147, 44]}, {"55061687": [116, 52, 1]}, {"55061691": [255, 21, 129]}, {"55061695": [2]}, {"55061700": [52, 12]}, {"55061703": [44, 3, 224]}, {"55061707": [8]}, {"55061712": [145, 174]}, {"55061715": [116, 52, 1]}, {"55061719": [255, 21, 193]}, {"55061723": [2]}, {"55061728": [52, 14]}, {"55061731": [44, 3, 224]}, {"55061735": [8, 167, 174]}, {"55061739": [154, 145, 207]}, {"55061743": [116, 52, 1]}, {"55061747": [255, 21, 225]}, {"55061751": [2]}, {"55061756": [52, 15]}, {"55061759": [44, 3, 224]}, {"55061763": [8, 167, 175]}, {"55061767": [154, 60, 8, 128, 64, 37, 8, 32, 20, 142, 9]}, {"55061779": [104, 173, 9]}, {"55061784": [142, 9]}, {"55061787": [108, 173, 9]}, {"55061791": [4, 150, 9]}, {"55061795": [112, 165, 9]}, {"55061799": [8, 150, 9]}, {"55061803": [156, 165, 9]}, {"55061807": [10, 3, 224]}, {"55061811": [8, 142, 14]}, {"55061815": [4, 39, 189, 255, 224, 175, 176]}, {"55061823": [16, 175, 177]}, {"55061827": [20, 175, 191]}, {"55061831": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 20, 142, 8]}, {"55061851": [4, 17]}, {"55061855": [5]}, {"55061860": [12, 16, 11, 120]}, {"55061868": [16]}, {"55061871": [3]}, {"55061876": [12, 16, 11, 139]}, {"55061884": [12, 16, 11, 107, 52, 4]}, {"55061892": [12, 16, 11, 107, 52, 4]}, {"55061899": [1, 12, 16, 11, 107, 52, 4]}, {"55061907": [2, 143, 176]}, {"55061911": [16, 143, 177]}, {"55061915": [20, 143, 191]}, {"55061919": [24, 39, 189]}, {"55061923": [32, 3, 224]}, {"55061927": [8]}, {"55061932": [2, 4, 64, 33, 145, 9]}, {"55061939": [108, 52, 1]}, {"55061943": [255, 17, 33]}, {"55061947": [7]}, {"55061952": [2, 9, 72, 33, 145, 41]}, {"55061959": [116, 52, 1]}, {"55061963": [44, 17, 33]}, {"55061967": [2]}, {"55061972": [161, 9]}, {"55061975": [105, 3, 224]}, {"55061979": [8]}, {"55061984": [39, 189, 255, 232, 175, 191]}, {"55061991": [16, 142, 40]}, {"55061996": [174, 8]}, {"55061999": [64, 142, 40]}, {"55062003": [4, 174, 8]}, {"55062007": [68, 150, 40]}, {"55062011": [8, 166, 8]}, {"55062015": [72, 162]}, {"55062018": [15, 51, 146, 8]}, {"55062023": [74, 52, 1]}, {"55062027": [255, 21, 1]}, {"55062031": [3]}, {"55062036": [12, 16, 11, 153]}, {"55062044": [143, 191]}, {"55062047": [16, 39, 189]}, {"55062051": [24, 3, 224]}, {"55062055": [8]}, {"55062060": [142, 8]}, {"55062063": [64, 174, 8]}, {"55062067": [104, 142, 8]}, {"55062071": [68, 174, 8]}, {"55062075": [108, 150, 8]}, {"55062079": [72, 166, 8]}, {"55062083": [112, 146, 8]}, {"55062087": [104, 52, 1]}, {"55062091": [255, 21, 1]}, {"55062095": [3]}, {"55062100": [52, 8]}, {"55062103": [1, 162, 8, 15, 51, 3, 224]}, {"55062111": [8]}, {"55062116": [39, 189, 255, 232, 175, 191]}, {"55062123": [16, 150, 8]}, {"55062127": [156, 49, 8]}, {"55062131": [64, 17]}, {"55062135": [5]}, {"55062140": [150, 8]}, {"55062143": [112, 49, 8, 255, 15, 53, 8]}, {"55062151": [48, 166, 8]}, {"55062155": [112, 146, 40]}, {"55062159": [1, 162, 8]}, {"55062163": [105, 150, 40]}, {"55062167": [2, 166, 8]}, {"55062171": [106, 142, 40]}, {"55062175": [4, 174, 8]}, {"55062179": [108, 12, 16, 11, 179, 52, 4]}, {"55062188": [12, 16, 11, 179, 52, 4]}, {"55062195": [1, 12, 16, 11, 179, 52, 4]}, {"55062203": [2, 143, 191]}, {"55062207": [16, 39, 189]}, {"55062211": [24, 3, 224]}, {"55062215": [8]}, {"55062220": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 47, 120, 145, 10]}, {"55062235": [108, 52, 1]}, {"55062239": [255, 17, 65]}, {"55062243": [5]}, {"55062248": [1, 42, 72, 33, 145, 41]}, {"55062256": [21, 32]}, {"55062259": [28]}, {"55062264": [60, 9, 128, 64, 37, 41, 47, 107, 37, 41]}, {"55062275": [1, 145, 42]}, {"55062280": [17, 64]}, {"55062283": [19]}, {"55062288": [2, 10, 88, 33, 145, 107]}, {"55062295": [116, 52, 1]}, {"55062299": [255, 17, 97, 255, 248]}, {"55062308": [146, 12]}, {"55062311": [108, 17, 138, 255, 245]}, {"55062320": [146, 12]}, {"55062323": [109, 17, 138, 255, 242]}, {"55062332": [146, 12]}, {"55062335": [110, 17, 138, 255, 239]}, {"55062344": [161, 11]}, {"55062347": [105, 161, 10]}, {"55062351": [108, 16]}, {"55062355": [4]}, {"55062360": [52, 9]}, {"55062363": [255, 161, 9]}, {"55062367": [105, 161, 9]}, {"55062371": [108, 3, 224]}, {"55062375": [8]}, {"55062380": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55062393": [1, 1, 1, 1, 1]}, {"55062399": [1, 1, 1, 1, 1]}, {"55062405": [1]}, {"55062407": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55062417": [51, 8, 33, 32, 15]}, {"55062423": [71, 21, 234]}, {"55062427": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062439": [164]}, {"55062441": [15, 122, 3, 20, 64]}, {"55062447": [5, 52, 2, 72, 48, 21, 226]}, {"55062455": [7]}, {"55062460": [36, 25]}, {"55062463": [3, 16]}, {"55062467": [4, 52, 2, 99, 17, 21, 226]}, {"55062475": [2]}, {"55062480": [36, 25]}, {"55062483": [3, 3, 224]}, {"55062487": [8]}, {"55062492": [141, 173, 138, 160, 52, 2, 128]}, {"55062500": [16, 77]}, {"55062503": [2]}, {"55062508": [16]}, {"55062511": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55062527": [1, 16, 64]}, {"55062531": [2]}, {"55062536": [16]}, {"55062539": [2, 52, 2]}, {"55062543": [1, 161, 226, 28, 191, 3, 224]}, {"55062551": [8]}, {"55062557": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062571": [164]}, {"55062573": [15, 122, 3, 20, 64]}, {"55062579": [5, 52, 2, 72, 48, 21, 226]}, {"55062587": [7]}, {"55062592": [36, 25]}, {"55062595": [3, 16]}, {"55062599": [4, 52, 2, 99, 17, 21, 226]}, {"55062607": [2]}, {"55062612": [36, 25]}, {"55062615": [3, 3, 224]}, {"55062619": [8]}, {"55062624": [162, 37]}, {"55062627": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55062639": [4, 142, 10]}, {"55062644": [17, 64]}, {"55062647": [11]}, {"55062653": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55062665": [24, 194, 2, 23]}, {"55062671": [3, 49, 89]}, {"55062675": [255, 129, 234]}, {"55062680": [3, 42, 200, 37, 8, 16, 12, 27, 161, 249]}, {"55062692": [3, 224]}, {"55062695": [8]}] \ No newline at end of file +[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 35]}, {"11325064": [12, 16, 10, 251, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 11, 78]}, {"11427312": [12, 16, 11, 247]}, {"11562028": [12, 16, 12, 24]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 12, 7]}, {"11882076": [12, 16, 11, 228]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 11, 45, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 11, 52, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 11, 59, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 11, 38, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 9, 243]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 9, 192]}, {"12427480": [12, 16, 9, 221]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 9, 225]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 11, 3, 0, 0, 0, 0]}, {"12491456": [12, 16, 9, 255]}, {"12491480": [12, 16, 10, 8]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 10, 208]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 11, 66]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 140, 73]}, {"14149503": [164]}, {"14149512": [2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149856": [87]}, {"14149859": [15]}, {"14357459": [118]}, {"14624335": [118]}, {"14872723": [52]}, {"15506663": [122]}, {"55057408": [90, 93, 92, 94, 81, 82, 83]}, {"55058464": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 212, 128, 64, 36, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 212, 128, 64, 36, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 212, 128, 64, 36, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 212, 128, 64, 36, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 212, 128, 64, 36, 236, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 212, 128, 64, 37, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 212, 128, 64, 37, 48, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 212, 128, 64, 37, 76, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 212, 128, 64, 37, 104, 83, 65, 56, 67]}, {"55058613": [235, 21, 255, 128, 64, 37, 236, 128, 64, 36, 80, 83, 65, 55, 68]}, {"55058629": [235, 22, 255, 128, 64, 37, 236, 128, 64, 36, 80, 83, 65, 57, 69]}, {"55058645": [235, 23, 255, 128, 64, 37, 236, 128, 64, 36, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 37, 236, 128, 64, 36, 80, 83, 65, 63, 71]}, {"55058677": [244, 25, 255, 128, 64, 37, 236, 128, 64, 36, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 37, 236, 128, 64, 36, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 37, 236, 128, 64, 36, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 37, 236, 128, 64, 36, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 37, 236, 128, 64, 36, 80, 83, 65, 10, 6]}, {"55058757": [185, 1, 3, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 10, 28]}, {"55058773": [185, 1, 4, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 10, 29]}, {"55058789": [185, 1, 5, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 10, 30]}, {"55058805": [185, 1, 6, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 10, 42]}, {"55058821": [185, 1, 7, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 10, 97]}, {"55058837": [185, 1, 10, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 11, 98]}, {"55058853": [184, 2]}, {"55058856": [128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 11, 99]}, {"55058869": [184, 2, 1, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 11, 100]}, {"55058885": [184, 2, 2, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 11, 101]}, {"55058901": [184, 2, 3, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 11, 124]}, {"55058917": [184, 2, 4, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 11, 125]}, {"55058933": [184, 2, 5, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 11, 126]}, {"55058949": [184, 2, 6, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 11, 127]}, {"55058965": [184, 2, 7, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 11, 162]}, {"55058981": [184, 2, 8, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 11, 135]}, {"55058997": [184, 2, 9, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 28, 136]}, {"55059013": [200, 4]}, {"55059016": [128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 28, 137]}, {"55059029": [200, 4, 1, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 28, 138]}, {"55059045": [200, 4, 2, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 28, 139]}, {"55059061": [200, 4, 3, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 28, 140]}, {"55059077": [200, 4, 4, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 28, 142]}, {"55059093": [200, 4, 5, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 28, 143]}, {"55059109": [200, 4, 6, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 28, 163]}, {"55059125": [200, 4, 7, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 28, 165]}, {"55059141": [200, 4, 8, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 28, 146]}, {"55059157": [200, 4, 9, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 2, 147]}, {"55059173": [170, 3, 255, 128, 64, 38, 68, 128, 64, 36, 80, 83, 65, 2, 148]}, {"55059189": [170, 4, 255, 128, 64, 38, 68, 128, 64, 36, 80, 83, 65, 2, 149]}, {"55059205": [170, 5, 255, 128, 64, 38, 68, 128, 64, 36, 80, 83, 65, 2, 166]}, {"55059221": [170, 6, 255, 128, 64, 38, 68, 128, 64, 36, 80, 83, 65, 2, 169]}, {"55059237": [170, 7, 255, 128, 64, 38, 68, 128, 64, 36, 80, 83, 65, 2, 155]}, {"55059253": [170, 8, 255, 128, 64, 38, 68, 128, 64, 36, 80, 83, 65, 2, 159]}, {"55059269": [170, 11, 255, 128, 64, 38, 68, 128, 64, 36, 80, 83, 65, 2, 160]}, {"55059285": [170, 12, 255, 128, 64, 38, 68, 128, 64, 36, 80, 83, 65, 2, 161]}, {"55059301": [170, 13, 255, 128, 64, 38, 68, 128, 64, 36, 80, 83, 61, 67, 12]}, {"55059317": [248, 255, 255, 128, 64, 37, 220, 128, 64, 36, 80, 77, 131, 247, 85]}, {"55059333": [183, 255, 255, 128, 64, 37, 212, 128, 64, 36, 80, 83, 146, 219, 230]}, {"55059349": [216, 255, 255, 128, 64, 37, 212, 128, 64, 37, 156, 83, 147, 218, 230]}, {"55059365": [216, 255, 255, 128, 64, 37, 212, 128, 64, 37, 156, 83, 148, 217, 230]}, {"55059381": [216, 255, 255, 128, 64, 37, 212, 128, 64, 37, 156, 83, 142, 224, 50]}, {"55059397": [206, 255, 255, 128, 64, 37, 212, 128, 64, 37, 184, 83, 143, 224, 50]}, {"55059413": [206, 255, 255, 128, 64, 37, 212, 128, 64, 37, 184, 83, 144, 224, 50]}, {"55059429": [206, 255, 255, 128, 64, 37, 212, 128, 64, 37, 184, 77, 140, 238, 52]}, {"55059445": [187, 255, 255, 128, 64, 37, 212, 128, 64, 36, 80, 77, 141, 238, 52]}, {"55059461": [187, 255, 255, 128, 64, 37, 212, 128, 64, 36, 80, 79, 65, 19, 233]}, {"55059477": [189, 255, 255, 128, 64, 38, 108, 128, 64, 36, 80, 79, 65, 30, 228]}, {"55059493": [205, 255, 255, 128, 64, 38, 140, 128, 64, 37, 132, 79, 65, 31, 232]}, {"55059509": [205, 255, 255, 128, 64, 38, 172, 128, 64, 36, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 212, 128, 64, 38, 212, 3, 224]}, {"55059539": [8, 52, 162]}, {"55059544": [144, 136]}, {"55059547": [125, 52, 1]}, {"55059551": [255, 17, 1]}, {"55059555": [2, 52, 2]}, {"55059559": [8, 52, 2]}, {"55059563": [9, 3, 224]}, {"55059567": [8]}, {"55059572": [144, 136]}, {"55059575": [163, 49, 8]}, {"55059579": [192, 17]}, {"55059583": [5, 52, 2]}, {"55059587": [84, 52, 1]}, {"55059591": [64, 17, 1]}, {"55059595": [2, 52, 2]}, {"55059599": [53, 52, 2]}, {"55059603": [54, 3, 224]}, {"55059607": [8]}, {"55059612": [144, 136]}, {"55059615": [163, 49, 8]}, {"55059619": [24, 17]}, {"55059623": [5, 52, 2]}, {"55059627": [50, 52, 1]}, {"55059631": [8, 17, 1]}, {"55059635": [2, 52, 2]}, {"55059639": [51, 52, 2]}, {"55059643": [52, 3, 224]}, {"55059647": [8]}, {"55059652": [144, 136]}, {"55059655": [163, 49, 8]}, {"55059659": [3, 17]}, {"55059663": [5, 52, 2]}, {"55059667": [4, 52, 1]}, {"55059671": [1, 17, 1]}, {"55059675": [2, 52, 2]}, {"55059679": [48, 52, 2]}, {"55059683": [49, 3, 224]}, {"55059687": [8]}, {"55059692": [144, 136]}, {"55059695": [162, 49, 8]}, {"55059699": [192, 17]}, {"55059703": [5, 52, 2]}, {"55059707": [5, 52, 1]}, {"55059711": [64, 17, 1]}, {"55059715": [2, 52, 2]}, {"55059719": [96, 52, 2]}, {"55059723": [123, 3, 224]}, {"55059727": [8]}, {"55059732": [144, 136]}, {"55059735": [162, 49, 8]}, {"55059739": [48, 17]}, {"55059743": [2, 52, 2]}, {"55059747": [69, 52, 2]}, {"55059751": [70, 3, 224]}, {"55059755": [8]}, {"55059760": [144, 136]}, {"55059763": [162, 49, 8]}, {"55059767": [6, 17]}, {"55059771": [2, 52, 2]}, {"55059775": [55, 52, 2]}, {"55059779": [56, 3, 224]}, {"55059783": [8]}, {"55059788": [144, 136]}, {"55059791": [161, 49, 8]}, {"55059795": [32, 17]}, {"55059799": [2, 52, 2]}, {"55059803": [121, 52, 2]}, {"55059807": [122, 3, 224]}, {"55059811": [8]}, {"55059816": [144, 136]}, {"55059819": [161, 49, 8]}, {"55059823": [4, 17]}, {"55059827": [2, 52, 2]}, {"55059831": [119, 52, 2]}, {"55059835": [120, 3, 224]}, {"55059839": [8]}, {"55059844": [144, 136]}, {"55059847": [50, 17]}, {"55059851": [2, 52, 2]}, {"55059855": [192, 52, 2]}, {"55059859": [193, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [3, 17]}, {"55059879": [2, 52, 2]}, {"55059883": [77, 52, 162]}, {"55059888": [3, 224]}, {"55059891": [8]}, {"55059896": [144, 136]}, {"55059899": [163, 49, 8]}, {"55059903": [24, 17]}, {"55059907": [2, 52, 2]}, {"55059911": [77, 52, 162]}, {"55059916": [3, 224]}, {"55059919": [8]}, {"55059924": [3, 224]}, {"55059927": [8]}, {"55059932": [52, 8]}, {"55059935": [1, 160, 136]}, {"55059939": [62, 3, 224]}, {"55059943": [8]}, {"55059948": [36, 136]}, {"55059951": [134, 36, 9, 255, 255, 37, 41]}, {"55059959": [1, 52, 1]}, {"55059963": [3]}, {"55059965": [41, 8, 42, 20, 32]}, {"55059971": [7]}, {"55059976": [1, 9, 80, 33, 145, 75]}, {"55059984": [52, 1]}, {"55059987": [255, 21, 97, 255, 247]}, {"55059996": [161, 69]}, {"55060000": [3, 224]}, {"55060003": [8]}, {"55060008": [36, 136]}, {"55060011": [168, 1, 6, 64, 33, 145, 9]}, {"55060020": [1, 37, 72, 37, 161, 9]}, {"55060028": [3, 224]}, {"55060031": [8]}, {"55060036": [36, 136]}, {"55060039": [188, 1, 5, 64, 33, 129, 9]}, {"55060048": [5, 33]}, {"55060051": [2]}, {"55060056": [52, 9]}, {"55060060": [37, 41]}, {"55060063": [1, 161, 9]}, {"55060068": [3, 224]}, {"55060071": [8]}, {"55060076": [52, 8]}, {"55060079": [1, 160, 136]}, {"55060083": [61, 52, 8]}, {"55060087": [20, 160, 136]}, {"55060091": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060103": [8]}, {"55060108": [52, 8]}, {"55060111": [1, 160, 136]}, {"55060115": [50, 160, 136]}, {"55060119": [58, 52, 8]}, {"55060123": [48, 164, 136, 19, 244, 160, 136]}, {"55060131": [51, 3, 224]}, {"55060135": [8]}, {"55060140": [52, 8]}, {"55060143": [2, 160, 136]}, {"55060147": [50, 52, 8]}, {"55060151": [1, 160, 136]}, {"55060155": [58, 160, 136]}, {"55060159": [60, 52, 8]}, {"55060163": [96, 164, 136, 19, 244, 160, 136]}, {"55060171": [51, 3, 224]}, {"55060175": [8]}, {"55060180": [144, 136]}, {"55060183": [124, 52, 1]}, {"55060187": [255, 17, 1]}, {"55060191": [6, 52, 2]}, {"55060195": [107, 144, 136]}, {"55060199": [148, 45, 8]}, {"55060203": [6, 17]}, {"55060207": [2, 52, 2]}, {"55060211": [106, 52, 2]}, {"55060215": [3, 3, 224]}, {"55060219": [8]}, {"55060224": [48, 132]}, {"55060227": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060239": [140, 16, 129]}, {"55060243": [22, 145, 2]}, {"55060247": [117, 52, 1]}, {"55060251": [141, 16, 129]}, {"55060255": [19, 145, 2]}, {"55060259": [117, 16, 128]}, {"55060263": [17, 145, 2]}, {"55060267": [116, 52, 1]}, {"55060271": [138, 16, 129]}, {"55060275": [14, 145, 2]}, {"55060279": [116, 52, 1]}, {"55060283": [139, 16, 129]}, {"55060287": [11, 145, 2]}, {"55060291": [116, 52, 1]}, {"55060295": [88, 16, 129]}, {"55060299": [8, 52, 2]}, {"55060304": [52, 1]}, {"55060307": [120, 16, 129]}, {"55060311": [5, 52, 2]}, {"55060316": [52, 1]}, {"55060319": [121, 16, 129]}, {"55060323": [2, 52, 2]}, {"55060328": [52, 2]}, {"55060331": [255, 3, 224]}, {"55060335": [8]}, {"55060340": [143, 166]}, {"55060343": [48, 132, 197]}, {"55060347": [4, 8, 16, 9, 229]}, {"55060356": [143, 185]}, {"55060359": [44, 135, 37]}, {"55060363": [4, 8, 16, 9, 229]}, {"55060372": [60, 10, 128, 64, 37, 74, 32]}, {"55060380": [141, 75]}, {"55060383": [12, 17, 96]}, {"55060387": [2]}, {"55060392": [149, 69]}, {"55060395": [4, 60, 10, 128, 64, 37, 74, 32, 16, 161, 64]}, {"55060408": [60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060420": [3, 224]}, {"55060423": [8]}, {"55060428": [60, 8, 128, 64, 37, 8, 32]}, {"55060436": [141, 9]}, {"55060439": [12, 17, 32]}, {"55060443": [2]}, {"55060448": [129, 3]}, {"55060451": [2]}, {"55060453": [3, 15, 195]}, {"55060457": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55060471": [8]}, {"55060476": [144, 69]}, {"55060479": [3, 60, 8, 128, 64, 37, 8, 32]}, {"55060488": [141, 9]}, {"55060491": [12, 17, 32]}, {"55060495": [2]}, {"55060500": [145, 5]}, {"55060503": [3, 3, 224]}, {"55060507": [8]}, {"55060512": [143, 162]}, {"55060515": [36, 144, 69]}, {"55060520": [60, 8, 128, 64, 37, 8, 32]}, {"55060528": [141, 9]}, {"55060531": [12, 17, 32]}, {"55060535": [19]}, {"55060540": [145, 5]}, {"55060543": [1, 175, 164]}, {"55060548": [175, 165]}, {"55060551": [4, 175, 166]}, {"55060555": [8, 39, 189, 255, 232, 175, 191]}, {"55060563": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55060575": [6, 145, 6]}, {"55060579": [7, 141, 9]}, {"55060583": [8, 1, 32, 248, 9]}, {"55060592": [143, 191]}, {"55060595": [16, 39, 189]}, {"55060599": [24, 143, 164]}, {"55060604": [143, 165]}, {"55060607": [4, 143, 166]}, {"55060611": [8, 3, 224]}, {"55060615": [8]}, {"55060620": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55060631": [16, 175, 163]}, {"55060635": [20, 175, 191]}, {"55060639": [24, 12, 16, 10, 48]}, {"55060648": [143, 162]}, {"55060651": [16, 143, 163]}, {"55060655": [20, 143, 191]}, {"55060659": [24, 39, 189]}, {"55060663": [32, 3, 224]}, {"55060667": [8]}, {"55060672": [39, 189, 255, 232, 175, 191]}, {"55060679": [16, 60, 8, 128, 64, 37, 8, 32]}, {"55060688": [173]}, {"55060692": [173]}, {"55060695": [4, 173]}, {"55060699": [8, 173]}, {"55060703": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55060719": [42]}, {"55060725": [9, 15, 195, 1, 33, 32, 38]}, {"55060733": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 106]}, {"55060748": [4, 64]}, {"55060751": [34]}, {"55060756": [52, 68]}, {"55060760": [12, 16, 10, 175]}, {"55060768": [16, 96]}, {"55060771": [12]}, {"55060776": [60, 8, 128, 64, 37, 8, 32]}, {"55060784": [140, 105]}, {"55060788": [173, 9]}, {"55060792": [140, 105]}, {"55060795": [4, 173, 9]}, {"55060799": [4, 140, 105]}, {"55060803": [8, 173, 9]}, {"55060807": [8, 52, 9]}, {"55060811": [1, 173, 9]}, {"55060815": [12, 144, 98]}, {"55060820": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55060836": [52, 1]}, {"55060839": [10, 21, 65]}, {"55060843": [6]}, {"55060848": [149, 42]}, {"55060851": [28, 49, 74, 240, 31]}, {"55060857": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55060867": [28, 129, 9, 4, 36, 5, 33]}, {"55060875": [2]}, {"55060881": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55060891": [16, 39, 189]}, {"55060895": [24, 3, 224]}, {"55060899": [8]}, {"55060904": [39, 189, 255, 232, 175, 191]}, {"55060911": [16, 12, 16, 10, 120]}, {"55060920": [36, 1, 255, 255, 16, 65]}, {"55060927": [4]}, {"55060932": [52, 68]}, {"55060936": [12, 16, 10, 162]}, {"55060944": [143, 191]}, {"55060947": [16, 39, 189]}, {"55060951": [24, 3, 224]}, {"55060955": [8]}, {"55060960": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55060971": [164, 52, 8]}, {"55060976": [52, 137]}, {"55060980": [148, 170]}, {"55060984": [52, 1]}, {"55060987": [10, 21, 65]}, {"55060991": [14]}, {"55060996": [148, 171]}, {"55060999": [28, 52, 1]}, {"55061003": [16, 20, 65]}, {"55061007": [8]}, {"55061012": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061023": [4]}, {"55061028": [36, 2, 255, 255, 16]}, {"55061035": [21]}, {"55061040": [52, 8]}, {"55061043": [1, 49, 105]}, {"55061047": [31, 52, 1]}, {"55061051": [21, 21, 65]}, {"55061055": [12]}, {"55061060": [52, 1]}, {"55061063": [62, 16, 129]}, {"55061067": [7]}, {"55061072": [52, 1]}, {"55061075": [66, 16, 129]}, {"55061079": [4]}, {"55061084": [36, 2, 255, 255, 16]}, {"55061091": [7]}, {"55061096": [52, 8]}, {"55061099": [2, 144, 169, 1, 65]}, {"55061105": [2, 18]}, {"55061109": [72, 16, 37]}, {"55061113": [2, 18]}, {"55061117": [73, 16, 37, 3, 224]}, {"55061123": [8]}, {"55061128": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061143": [4, 141, 9]}, {"55061148": [17, 32]}, {"55061151": [5]}, {"55061157": [9, 82, 2, 21, 68, 255, 250]}, {"55061168": [49, 34]}, {"55061171": [255, 3, 224]}, {"55061175": [8]}, {"55061180": [39, 189, 255, 224, 175, 176]}, {"55061187": [16, 175, 177]}, {"55061191": [20, 175, 191]}, {"55061195": [24, 52, 130]}, {"55061200": [52, 80]}, {"55061204": [38, 8, 255, 128, 5]}, {"55061211": [18]}, {"55061216": [60, 17, 128, 64, 38, 49, 32, 32, 52, 9]}, {"55061227": [16, 1, 9]}, {"55061231": [24]}, {"55061234": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061252": [142, 40]}, {"55061255": [12, 1]}, {"55061258": [248, 9]}, {"55061264": [20, 80, 255, 239]}, {"55061272": [54, 35]}, {"55061276": [16]}, {"55061279": [2]}, {"55061284": [52, 3]}, {"55061288": [143, 176]}, {"55061291": [16, 143, 177]}, {"55061295": [20, 143, 191]}, {"55061299": [24, 39, 189]}, {"55061303": [32, 3, 224]}, {"55061307": [8]}, {"55061312": [140, 136, 29, 44, 52, 9]}, {"55061319": [1]}, {"55061321": [9, 78]}, {"55061324": [1, 9, 16, 36, 16, 64]}, {"55061331": [36]}, {"55061336": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55061351": [164, 52, 1]}, {"55061355": [61, 17, 129]}, {"55061359": [10]}, {"55061365": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55061375": [25]}, {"55061380": [52, 13]}, {"55061383": [1, 161, 141, 29, 40, 37, 74]}, {"55061391": [3, 16]}, {"55061395": [9]}, {"55061400": [52, 12]}, {"55061403": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55061419": [14]}, {"55061424": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 1, 1, 10, 64, 33, 129, 8]}, {"55061460": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061472": [52, 2]}, {"55061476": [3, 224]}, {"55061479": [8]}, {"55061484": [60, 8, 128, 64, 37, 8, 28]}, {"55061492": [129, 8]}, {"55061496": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061508": [3, 224]}, {"55061511": [8]}, {"55061516": [175, 164]}, {"55061519": [104, 175, 165]}, {"55061523": [108, 175, 166]}, {"55061527": [112, 175, 167]}, {"55061531": [116, 39, 189, 255, 232, 175, 163]}, {"55061539": [16, 175, 191]}, {"55061543": [20, 60, 8, 128, 64, 37, 8, 32, 16, 129, 8]}, {"55061556": [17]}, {"55061559": [14]}, {"55061564": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55061575": [1, 165, 42]}, {"55061580": [60, 9, 128, 65, 52, 10]}, {"55061587": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 48]}, {"55061616": [143, 163]}, {"55061619": [16, 143, 191]}, {"55061623": [20, 39, 189]}, {"55061627": [24, 143, 164]}, {"55061631": [104, 143, 165]}, {"55061635": [108, 143, 166]}, {"55061639": [112, 143, 167]}, {"55061643": [116, 132, 110, 19, 196, 3, 224]}, {"55061651": [8]}, {"55061656": [147, 25]}, {"55061659": [116, 52, 1]}, {"55061663": [255, 23, 33]}, {"55061667": [2]}, {"55061672": [52, 25]}, {"55061675": [44, 3, 224]}, {"55061679": [8, 167, 185]}, {"55061683": [154, 147, 44]}, {"55061687": [116, 52, 1]}, {"55061691": [255, 21, 129]}, {"55061695": [2]}, {"55061700": [52, 12]}, {"55061703": [44, 3, 224]}, {"55061707": [8]}, {"55061712": [145, 174]}, {"55061715": [116, 52, 1]}, {"55061719": [255, 21, 193]}, {"55061723": [2]}, {"55061728": [52, 14]}, {"55061731": [44, 3, 224]}, {"55061735": [8, 167, 174]}, {"55061739": [154, 145, 207]}, {"55061743": [116, 52, 1]}, {"55061747": [255, 21, 225]}, {"55061751": [2]}, {"55061756": [52, 15]}, {"55061759": [44, 3, 224]}, {"55061763": [8, 167, 175]}, {"55061767": [154, 60, 8, 128, 64, 37, 8, 32, 20, 142, 9]}, {"55061779": [104, 173, 9]}, {"55061784": [142, 9]}, {"55061787": [108, 173, 9]}, {"55061791": [4, 150, 9]}, {"55061795": [112, 165, 9]}, {"55061799": [8, 150, 9]}, {"55061803": [156, 165, 9]}, {"55061807": [10, 3, 224]}, {"55061811": [8, 142, 14]}, {"55061815": [4, 39, 189, 255, 224, 175, 176]}, {"55061823": [16, 175, 177]}, {"55061827": [20, 175, 191]}, {"55061831": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 20, 142, 8]}, {"55061851": [4, 17]}, {"55061855": [5]}, {"55061860": [12, 16, 11, 120]}, {"55061868": [16]}, {"55061871": [3]}, {"55061876": [12, 16, 11, 139]}, {"55061884": [12, 16, 11, 107, 52, 4]}, {"55061892": [12, 16, 11, 107, 52, 4]}, {"55061899": [1, 12, 16, 11, 107, 52, 4]}, {"55061907": [2, 143, 176]}, {"55061911": [16, 143, 177]}, {"55061915": [20, 143, 191]}, {"55061919": [24, 39, 189]}, {"55061923": [32, 3, 224]}, {"55061927": [8]}, {"55061932": [2, 4, 64, 33, 145, 9]}, {"55061939": [108, 52, 1]}, {"55061943": [255, 17, 33]}, {"55061947": [7]}, {"55061952": [2, 9, 72, 33, 145, 41]}, {"55061959": [116, 52, 1]}, {"55061963": [44, 17, 33]}, {"55061967": [2]}, {"55061972": [161, 9]}, {"55061975": [105, 3, 224]}, {"55061979": [8]}, {"55061984": [39, 189, 255, 232, 175, 191]}, {"55061991": [16, 142, 40]}, {"55061996": [174, 8]}, {"55061999": [64, 142, 40]}, {"55062003": [4, 174, 8]}, {"55062007": [68, 150, 40]}, {"55062011": [8, 166, 8]}, {"55062015": [72, 162]}, {"55062018": [15, 51, 146, 8]}, {"55062023": [74, 52, 1]}, {"55062027": [255, 21, 1]}, {"55062031": [3]}, {"55062036": [12, 16, 11, 153]}, {"55062044": [143, 191]}, {"55062047": [16, 39, 189]}, {"55062051": [24, 3, 224]}, {"55062055": [8]}, {"55062060": [142, 8]}, {"55062063": [64, 174, 8]}, {"55062067": [104, 142, 8]}, {"55062071": [68, 174, 8]}, {"55062075": [108, 150, 8]}, {"55062079": [72, 166, 8]}, {"55062083": [112, 146, 8]}, {"55062087": [104, 52, 1]}, {"55062091": [255, 21, 1]}, {"55062095": [3]}, {"55062100": [52, 8]}, {"55062103": [1, 162, 8, 15, 51, 3, 224]}, {"55062111": [8]}, {"55062116": [39, 189, 255, 232, 175, 191]}, {"55062123": [16, 150, 8]}, {"55062127": [156, 49, 8]}, {"55062131": [64, 17]}, {"55062135": [5]}, {"55062140": [150, 8]}, {"55062143": [112, 49, 8, 255, 15, 53, 8]}, {"55062151": [48, 166, 8]}, {"55062155": [112, 146, 40]}, {"55062159": [1, 162, 8]}, {"55062163": [105, 150, 40]}, {"55062167": [2, 166, 8]}, {"55062171": [106, 142, 40]}, {"55062175": [4, 174, 8]}, {"55062179": [108, 12, 16, 11, 179, 52, 4]}, {"55062188": [12, 16, 11, 179, 52, 4]}, {"55062195": [1, 12, 16, 11, 179, 52, 4]}, {"55062203": [2, 143, 191]}, {"55062207": [16, 39, 189]}, {"55062211": [24, 3, 224]}, {"55062215": [8]}, {"55062220": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 47, 120, 145, 10]}, {"55062235": [108, 52, 1]}, {"55062239": [255, 17, 65]}, {"55062243": [5]}, {"55062248": [1, 42, 72, 33, 145, 41]}, {"55062256": [21, 32]}, {"55062259": [28]}, {"55062264": [60, 9, 128, 64, 37, 41, 47, 107, 37, 41]}, {"55062275": [1, 145, 42]}, {"55062280": [17, 64]}, {"55062283": [19]}, {"55062288": [2, 10, 88, 33, 145, 107]}, {"55062295": [116, 52, 1]}, {"55062299": [255, 17, 97, 255, 248]}, {"55062308": [146, 12]}, {"55062311": [108, 17, 138, 255, 245]}, {"55062320": [146, 12]}, {"55062323": [109, 17, 138, 255, 242]}, {"55062332": [146, 12]}, {"55062335": [110, 17, 138, 255, 239]}, {"55062344": [161, 11]}, {"55062347": [105, 161, 10]}, {"55062351": [108, 16]}, {"55062355": [4]}, {"55062360": [52, 9]}, {"55062363": [255, 161, 9]}, {"55062367": [105, 161, 9]}, {"55062371": [108, 3, 224]}, {"55062375": [8]}, {"55062380": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55062393": [1, 1, 1, 1, 1]}, {"55062399": [1, 1, 1, 1, 1]}, {"55062405": [1]}, {"55062407": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55062417": [51, 8, 33, 32, 15]}, {"55062423": [71, 21, 234]}, {"55062427": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062439": [164]}, {"55062441": [15, 122, 3, 20, 64]}, {"55062447": [5, 52, 2, 72, 48, 21, 226]}, {"55062455": [7]}, {"55062460": [36, 25]}, {"55062463": [3, 16]}, {"55062467": [4, 52, 2, 99, 17, 21, 226]}, {"55062475": [2]}, {"55062480": [36, 25]}, {"55062483": [3, 3, 224]}, {"55062487": [8]}, {"55062492": [141, 173, 138, 160, 52, 2, 128]}, {"55062500": [16, 77]}, {"55062503": [2]}, {"55062508": [16]}, {"55062511": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55062527": [1, 16, 64]}, {"55062531": [2]}, {"55062536": [16]}, {"55062539": [2, 52, 2]}, {"55062543": [1, 161, 226, 28, 191, 3, 224]}, {"55062551": [8]}, {"55062557": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062571": [164]}, {"55062573": [15, 122, 3, 20, 64]}, {"55062579": [5, 52, 2, 72, 48, 21, 226]}, {"55062587": [7]}, {"55062592": [36, 25]}, {"55062595": [3, 16]}, {"55062599": [4, 52, 2, 99, 17, 21, 226]}, {"55062607": [2]}, {"55062612": [36, 25]}, {"55062615": [3, 3, 224]}, {"55062619": [8]}, {"55062624": [162, 37]}, {"55062627": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55062639": [4, 142, 10]}, {"55062644": [17, 64]}, {"55062647": [11]}, {"55062653": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55062665": [24, 194, 2, 23]}, {"55062671": [3, 49, 89]}, {"55062675": [255, 129, 234]}, {"55062680": [3, 42, 200, 37, 8, 16, 12, 27, 161, 249]}, {"55062692": [3, 224]}, {"55062695": [8]}] \ No newline at end of file diff --git a/version.py b/version.py index 72e40224d..3e618ce41 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.11.3 f.LUM' \ No newline at end of file +__version__ = '2.11.4 f.LUM' \ No newline at end of file From c8738c98415dd8c1c3b549bf0e48de15570d8bcb Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Wed, 11 Jul 2018 18:22:17 -0400 Subject: [PATCH 139/755] Fix bomb and arrow chest animation speed --- ASM/src/extended_items.asm | 12 ++++++------ Items.py | 2 +- version.py | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/ASM/src/extended_items.asm b/ASM/src/extended_items.asm index 516ffdfb6..844c6ed76 100755 --- a/ASM/src/extended_items.asm +++ b/ASM/src/extended_items.asm @@ -111,12 +111,12 @@ Item_Row 0x53, 0x41, 0x02, 0xA1, 0x00AA, no_upgrade, give_small_key, CASTLE_ID, Item_Row 0x53, 0x3D, 0x43, 0x0C, 0x00F8, no_upgrade, give_biggoron_sword, -1, -1 ; 0xB5 = Biggoron Sword Item_Row 0x4D, 0x83, 0xF7, 0x55, 0x00B7, no_upgrade, no_effect, -1, -1 ; 0xB6 = Recovery Heart -Item_Row 0x53, 0x92, 0xDB, 0xE6, 0x00D8, arrows_to_rupee, no_effect, -1, -1 ; 0xB7 = Arrows (5) -Item_Row 0x53, 0x93, 0xDA, 0xE6, 0x00D8, arrows_to_rupee, no_effect, -1, -1 ; 0xB8 = Arrows (10) -Item_Row 0x53, 0x94, 0xD9, 0xE6, 0x00D8, arrows_to_rupee, no_effect, -1, -1 ; 0xB9 = Arrows (30) -Item_Row 0x53, 0x8E, 0xE0, 0x32, 0x00CE, bombs_to_rupee, no_effect, -1, -1 ; 0xBA = Bombs (5) -Item_Row 0x53, 0x8F, 0xE0, 0x32, 0x00CE, bombs_to_rupee, no_effect, -1, -1 ; 0xBB = Bombs (10) -Item_Row 0x53, 0x90, 0xE0, 0x32, 0x00CE, bombs_to_rupee, no_effect, -1, -1 ; 0xBC = Bombs (20) +Item_Row 0x4D, 0x92, 0xDB, 0xE6, 0x00D8, arrows_to_rupee, no_effect, -1, -1 ; 0xB7 = Arrows (5) +Item_Row 0x4D, 0x93, 0xDA, 0xE6, 0x00D8, arrows_to_rupee, no_effect, -1, -1 ; 0xB8 = Arrows (10) +Item_Row 0x4D, 0x94, 0xD9, 0xE6, 0x00D8, arrows_to_rupee, no_effect, -1, -1 ; 0xB9 = Arrows (30) +Item_Row 0x4D, 0x8E, 0xE0, 0x32, 0x00CE, bombs_to_rupee, no_effect, -1, -1 ; 0xBA = Bombs (5) +Item_Row 0x4D, 0x8F, 0xE0, 0x32, 0x00CE, bombs_to_rupee, no_effect, -1, -1 ; 0xBB = Bombs (10) +Item_Row 0x4D, 0x90, 0xE0, 0x32, 0x00CE, bombs_to_rupee, no_effect, -1, -1 ; 0xBC = Bombs (20) Item_Row 0x4D, 0x8C, 0xEE, 0x34, 0x00BB, no_upgrade, no_effect, -1, -1 ; 0xBD = Deku Nuts (5) Item_Row 0x4D, 0x8D, 0xEE, 0x34, 0x00BB, no_upgrade, no_effect, -1, -1 ; 0xBE = Deku Nuts (10) diff --git a/Items.py b/Items.py index 33dca1fd3..e4dfdb3eb 100644 --- a/Items.py +++ b/Items.py @@ -93,7 +93,7 @@ def ItemFactory(items): 'Bombchus (5)': (True, False, None, 0x0D40, 0x6A), 'Bombchus (10)': (True, False, None, 0x0060, 0x03), 'Bombchus (20)': (True, False, None, 0x0D60, 0x6B), - 'Progressive Bombchus': (True, False, None, None, 0xC2), + 'Bombchus': (True, False, None, None, 0xC2), 'Deku Nuts (5)': (False, False, None, None, 0xBD), 'Deku Nuts (10)': (False, False, None, None, 0xBE), 'Rupee (1)': (False, False, None, 0x0980, 0x4C), diff --git a/version.py b/version.py index 3e618ce41..52efb891b 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.11.4 f.LUM' \ No newline at end of file +__version__ = '2.11.5 f.LUM' \ No newline at end of file From f2ea41888a9dc52d0f55ba85cfe21d9194b4b927 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Wed, 11 Jul 2018 18:24:25 -0400 Subject: [PATCH 140/755] Added option to shuffle fairy ocarina into pool --- ASM/src/config.asm | 2 + ASM/src/cutscenes.asm | 9 +++ ASM/src/extended_items.asm | 21 ++++++ ASM/src/hacks.asm | 10 ++- BaseClasses.py | 3 + ItemList.py | 9 ++- Items.py | 1 + Regions.py | 2 +- Rom.py | 6 +- Rules.py | 148 ++++++++++++++++++------------------- Settings.py | 15 ++++ data/base2current.json | 2 +- version.py | 2 +- 13 files changed, 147 insertions(+), 83 deletions(-) diff --git a/ASM/src/config.asm b/ASM/src/config.asm index 53f7c9f97..35e47eb2e 100755 --- a/ASM/src/config.asm +++ b/ASM/src/config.asm @@ -37,6 +37,8 @@ INITIAL_SAVE_DATA: LIGHT_ARROW_ITEM: .byte 0x5A +FAIRY_OCARINA_ITEM: +.byte 0x3B FAIRY_ITEMS: .byte 0x5D ; Zora's Domain .byte 0x5C ; Hyrule Castle diff --git a/ASM/src/cutscenes.asm b/ASM/src/cutscenes.asm index 6813ccd4f..8db70fdf7 100644 --- a/ASM/src/cutscenes.asm +++ b/ASM/src/cutscenes.asm @@ -64,3 +64,12 @@ override_light_arrow_cutscene: sb t0, 0x00 (t1) jr ra nop + +override_fairy_ocarina_cutscene: + li t0, FAIRY_OCARINA_ITEM + lb t0, 0x00 (t0) + li t1, PENDING_SPECIAL_ITEM + sb t0, 0x00 (t1) + jr ra + nop + diff --git a/ASM/src/extended_items.asm b/ASM/src/extended_items.asm index 844c6ed76..f4bcbe969 100755 --- a/ASM/src/extended_items.asm +++ b/ASM/src/extended_items.asm @@ -125,6 +125,7 @@ Item_Row 0x4F, 0x41, 0x1E, 0xE4, 0x00CD, magic_upgrade, give_magic, -1, -1 ; 0 Item_Row 0x4F, 0x41, 0x1F, 0xE8, 0x00CD, no_upgrade, double_magic, -1, -1 ; 0xC1 = Double Magic Item_Row -1, -1, -1, -1, -1, bombchu_upgrade, no_effect, -1, -1 ; 0xC2 = Progressive Bombchus +Item_Row 0x53, 0x41, 0x46, 0x4A, 0x010E, ocarina_upgrade, give_fairy_ocarina, -1, -1 ; 0xC3 = Progressive Ocarina ;================================================================================================== ; Item upgrade functions @@ -453,3 +454,23 @@ bombchu_upgrade: jr ra nop +;================================================================================================== + +ocarina_upgrade: + lbu t0, 0x7B (a0) ; Load ocarina from inventory + + beq t0, 0xFF, @@return + ori v0, a1, 0 ; Fairy Ocarina (unchanged) + + li v0, 0x0C ; Ocarina of Time + +@@return: + jr ra + nop + +give_fairy_ocarina: + ; a0 = save context + li t0, 0x07 + sb t0, 0x7B (a0) + jr ra + nop diff --git a/ASM/src/hacks.asm b/ASM/src/hacks.asm index 0a90addd8..f02782683 100755 --- a/ASM/src/hacks.asm +++ b/ASM/src/hacks.asm @@ -279,4 +279,12 @@ ; sb a1, 33(s1) .org 0xB06C2C ; In memory: ??? jal write_initial_save - sb t0, 32(s1) \ No newline at end of file + sb t0, 32(s1) + + +; Replaces +; addu t8,t0,t7 +; sb t6,0x74(t8) ; store to fairy ocarina slot +.org 0xAE6E48 + jal override_fairy_ocarina_cutscene + addu t8,t0,t7 diff --git a/BaseClasses.py b/BaseClasses.py index 5bc3120bb..c7c5eb428 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -311,6 +311,9 @@ def item_count(self, item): def is_adult(self): return self.has('Master Sword') + def can_play(self, song): + return (self.has('Ocarina') or self.has("Fairy Ocarina") or self.has("Ocarina of Time")) and self.has(song) + def has_bombchus(self): return (self.world.bombchus_in_logic and \ (any(pritem.startswith('Bombchus') for pritem in self.prog_items) \ diff --git a/ItemList.py b/ItemList.py index a3a9fca16..ac3532f88 100644 --- a/ItemList.py +++ b/ItemList.py @@ -27,11 +27,10 @@ eventlocations = { 'Ganon': 'Triforce', - 'Gift from Saria': 'Fairy Ocarina', 'Zeldas Letter': 'Zeldas Letter', 'Magic Bean Salesman': 'Magic Bean', 'King Zora Moves': 'Bottle', - 'Ocarina of Time': 'Ocarina of Time', + 'Ocarina of Time': 'Ocarina', 'Master Sword Pedestal': 'Master Sword', 'Epona': 'Epona', 'Gerudo Fortress Carpenter Rescue': 'Gerudo Membership Card', @@ -52,6 +51,8 @@ def generate_itempool(world): if not world.shuffle_weird_egg: eventlocations['Malon Egg'] = 'Weird Egg' + if not world.shuffle_fairy_ocarina: + eventlocations['Gift from Saria'] = 'Ocarina' for location, item in eventlocations.items(): world.push_item(location, ItemFactory(item), False) @@ -76,9 +77,11 @@ def get_pool_core(world): pool.extend(notmapcompass) if world.shuffle_weird_egg: pool.append('Weird Egg') + if world.shuffle_fairy_ocarina: + pool.append('Ocarina') if world.progressive_bombchus: - pool.extend(['Progressive Bombchus'] * 5) + pool.extend(['Bombchus'] * 5) else: pool.extend(['Bombchus (5)'] + ['Bombchus (10)'] * 3 + ['Bombchus (20)']) diff --git a/Items.py b/Items.py index e4dfdb3eb..acb31e084 100644 --- a/Items.py +++ b/Items.py @@ -38,6 +38,7 @@ def ItemFactory(items): 'Light Arrows': (True, False, None, 0x0B40, 0x5A), 'Fairy Ocarina': (True, False, None, 0x0760, 0x3B), 'Ocarina of Time': (True, False, None, 0x0180, 0x0C), + 'Ocarina': (True, False, None, 0x0180, 0xC3), 'Bottle': (True, False, None, 0x01E0, 0x0F), 'Bottle with Letter': (True, False, None, 0x02A0, 0x15), 'Bottle with Milk': (True, False, None, 0x0280, 0x14), diff --git a/Regions.py b/Regions.py index 890552eb3..2b15aa099 100644 --- a/Regions.py +++ b/Regions.py @@ -382,7 +382,7 @@ def _create_region(name, type, locations=None, exits=None): 'Sheik in Ice Cavern': (0x2BEC889, 0x2BEC889, 0x04, 'Song', None, None), 'Sheik in Kakariko': (0x2000FE1, 0x2000FE1, 0x06, 'Song', None, None), 'Sheik at Colossus': (0x218C57D, 0x218C57D, 0x05, 'Song', None, None), - 'Gift from Saria': (None, None, None, 'NPC', None, 'the Lost Woods'), + 'Gift from Saria': (None, None, 0x3B, 'NPC', 0x5B, 'the Lost Woods'), 'Malon Egg': (None, None, 0x47, 'NPC', 0x5F, 'Hyrule Castle'), 'Zeldas Letter': (None, None, None, 'NPC', None, 'Hyrule Castle'), 'Zelda': (0x3481400, None, 0x5A, 'NPC', 0x43, 'the Temple of Time'), diff --git a/Rom.py b/Rom.py index 83ae1e1c3..8fcae68cf 100644 --- a/Rom.py +++ b/Rom.py @@ -507,8 +507,8 @@ def patch_rom(world, rom): rom.write_bytes(0x31AA830, [0x00, 0x6F, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) #Light # Speed obtaining Fairy Ocarina - rom.write_bytes(0x2151230, [0x00, 0x72, 0x00, 0x3C, 0x00, 0x3D, 0x00, 0x3D]) - Block_code = [0x00, 0x4A, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, + rom.write_bytes(0x2150CD0, [0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x30]) + Block_code = [0xFF, 0xFF, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x3C, 0x00, 0x81, 0xFF, 0xFF] rom.write_bytes(0x2151240, Block_code) rom.write_bytes(0x2150E20, [0xFF, 0xFF, 0xFA, 0x4C]) @@ -989,6 +989,8 @@ def write_byte_to_save(offset, value): shop_items = read_shop_items(rom) remove_unused_messages(messages) + update_message_by_id(messages, 0x004A, "\x13\x07\x08You received the \x05\x41Fairy Ocarina\x05\x40!\x01This is a memento from Saria.") + # only one big poe needs to be caught to get the buyer's reward if world.only_one_big_poe: # change the value checked (in code) from 1000 to 100 diff --git a/Rules.py b/Rules.py index f50b17804..50afa7716 100644 --- a/Rules.py +++ b/Rules.py @@ -63,11 +63,11 @@ def global_rules(world): set_rule(world.get_entrance('Deku Tree'), lambda state: state.has('Kokiri Sword') or world.open_forest) set_rule(world.get_entrance('Lost Woods Bridge'), lambda state: world.open_forest or (state.has('Slingshot') and state.has('Kokiri Sword'))) set_rule(world.get_entrance('Deku Tree Basement Path'), lambda state: state.has('Slingshot')) - set_rule(world.get_location('Skull Kid'), lambda state: state.has('Sarias Song')) + set_rule(world.get_location('Skull Kid'), lambda state: state.can_play('Sarias Song') and state.has('Ocarina')) set_rule(world.get_location('Ocarina Memory Game'), lambda state: (not world.logic_no_memory_game) and (state.has('Fairy Ocarina') or state.has('Ocarina of Time'))) set_rule(world.get_location('Target in Woods'), lambda state: state.has('Slingshot')) set_rule(world.get_location('Deku Theater Skull Mask'), lambda state: (not world.logic_no_trade_skull_mask) and state.has('Zeldas Letter')) - set_rule(world.get_location('Deku Theater Mask of Truth'), lambda state: (not world.logic_no_trade_mask_of_truth) and (state.has('Zeldas Letter') and state.has('Sarias Song') and state.has('Kokiri Emerald') and state.has('Goron Ruby') and state.has('Zora Sapphire') and state.guarantee_hint())) #Must befriend Skull Kid to sell Skull Mask, all stones to spawn running man. + set_rule(world.get_location('Deku Theater Mask of Truth'), lambda state: (not world.logic_no_trade_mask_of_truth) and (state.has('Zeldas Letter') and state.can_play('Sarias Song') and state.has('Kokiri Emerald') and state.has('Goron Ruby') and state.has('Zora Sapphire') and state.guarantee_hint())) #Must befriend Skull Kid to sell Skull Mask, all stones to spawn running man. set_rule(world.get_location('Anju as Adult'), lambda state: state.is_adult()) set_rule(world.get_location('Man on Roof'), lambda state: world.logic_man_on_roof or (state.has('Progressive Hookshot') and state.is_adult())) set_rule(world.get_location('Impa House Freestanding PoH'), lambda state: ( (world.logic_impa_house or state.has('Progressive Hookshot')) and state.is_adult()) or state.has_explosives()) @@ -76,20 +76,20 @@ def global_rules(world): set_rule(world.get_location('30 Gold Skulltulla Reward'), lambda state: (expected_skulltulas >= 30) and state.has('Gold Skulltulla Token', 30) and state.guarantee_hint()) set_rule(world.get_location('40 Gold Skulltulla Reward'), lambda state: (expected_skulltulas >= 40) and state.has('Gold Skulltulla Token', 40) and state.guarantee_hint()) set_rule(world.get_location('50 Gold Skulltulla Reward'), lambda state: (expected_skulltulas >= 50) and state.has('Gold Skulltulla Token', 50) and state.guarantee_hint()) - set_rule(world.get_location('Heart Piece Grave Chest'), lambda state: state.has('Suns Song')) - set_rule(world.get_entrance('Composer Grave'), lambda state: state.has('Zeldas Lullaby')) + set_rule(world.get_location('Heart Piece Grave Chest'), lambda state: state.can_play('Suns Song')) + set_rule(world.get_entrance('Composer Grave'), lambda state: state.can_play('Zeldas Lullaby')) set_rule(world.get_location('Composer Grave Chest'), lambda state: state.has_fire_source()) - set_rule(world.get_entrance('Bottom of the Well'), lambda state: state.has('Song of Storms')) + set_rule(world.get_entrance('Bottom of the Well'), lambda state: state.can_play('Song of Storms')) set_rule(world.get_location('Bottom of the Well Front Left Hidden Wall'), lambda state: state.can_see_with_lens()) set_rule(world.get_location('Bottom of the Well Front Center Bombable'), lambda state: state.has_explosives()) set_rule(world.get_location('Bottom of the Well Right Bottom Hidden Wall'), lambda state: state.can_see_with_lens()) set_rule(world.get_location('Bottom of the Well Center Large Chest'), lambda state: state.can_see_with_lens()) set_rule(world.get_location('Bottom of the Well Center Small Chest'), lambda state: state.can_see_with_lens()) set_rule(world.get_location('Bottom of the Well Back Left Bombable'), lambda state: state.has_explosives()) - set_rule(world.get_location('Bottom of the Well Defeat Boss'), lambda state: state.has('Zeldas Lullaby') and (state.has('Kokiri Sword') or world.logic_child_deadhand)) #Sword not strictly necessary but frankly being forced to do this with sticks isn't fair - set_rule(world.get_location('Bottom of the Well Invisible Chest'), lambda state: state.has('Zeldas Lullaby') and state.can_see_with_lens()) - set_rule(world.get_location('Bottom of the Well Underwater Front Chest'), lambda state: state.has('Zeldas Lullaby')) - set_rule(world.get_location('Bottom of the Well Underwater Left Chest'), lambda state: state.has('Zeldas Lullaby')) + set_rule(world.get_location('Bottom of the Well Defeat Boss'), lambda state: state.can_play('Zeldas Lullaby') and (state.has('Kokiri Sword') or world.logic_child_deadhand)) #Sword not strictly necessary but frankly being forced to do this with sticks isn't fair + set_rule(world.get_location('Bottom of the Well Invisible Chest'), lambda state: state.can_play('Zeldas Lullaby') and state.can_see_with_lens()) + set_rule(world.get_location('Bottom of the Well Underwater Front Chest'), lambda state: state.can_play('Zeldas Lullaby')) + set_rule(world.get_location('Bottom of the Well Underwater Left Chest'), lambda state: state.can_play('Zeldas Lullaby')) set_rule(world.get_location('Bottom of the Well Basement Chest'), lambda state: state.has_explosives()) set_rule(world.get_location('Bottom of the Well Locked Pits'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.can_see_with_lens()) #These pits are really unfair. set_rule(world.get_location('Bottom of the Well Behind Right Grate'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.can_see_with_lens()) @@ -100,9 +100,9 @@ def global_rules(world): set_rule(world.get_location('Goron City Left Maze Chest'), lambda state: state.can_blast_or_smash() or (state.has('Progressive Strength Upgrade', 2) and state.is_adult())) set_rule(world.get_location('Goron City Right Maze Chest'), lambda state: state.can_blast_or_smash() or (state.has('Progressive Strength Upgrade', 2) and state.is_adult())) set_rule(world.get_location('Rolling Goron as Child'), lambda state: state.has('Bomb Bag')) - set_rule(world.get_location('Goron City Pot Freestanding PoH'), lambda state: (state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) and (state.has('Zeldas Lullaby') or (state.has('Dins Fire') and state.has('Magic Meter')))) - set_rule(world.get_entrance('Darunias Chamber'), lambda state: state.has('Zeldas Lullaby')) - set_rule(world.get_location('Darunias Joy'), lambda state: state.has('Sarias Song')) + set_rule(world.get_location('Goron City Pot Freestanding PoH'), lambda state: (state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) and (state.can_play('Zeldas Lullaby') or (state.has('Dins Fire') and state.has('Magic Meter')))) + set_rule(world.get_entrance('Darunias Chamber'), lambda state: state.can_play('Zeldas Lullaby')) + set_rule(world.get_location('Darunias Joy'), lambda state: state.can_play('Sarias Song')) set_rule(world.get_entrance('Goron City from Woods'), lambda state: state.can_blast_or_smash() and (world.open_forest or (state.has('Slingshot') and state.has('Kokiri Sword')))) set_rule(world.get_entrance('Dodongos Cavern Rocks'), lambda state: state.can_blast_or_smash() or state.has('Progressive Strength Upgrade') or state.is_adult()) set_rule(world.get_entrance('Dodongos Cavern Lobby'), lambda state: state.can_blast_or_smash() or state.has('Progressive Strength Upgrade')) @@ -114,15 +114,15 @@ def global_rules(world): set_rule(world.get_location('King Dodongo Heart'), lambda state: state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) set_rule(world.get_location('Song from Saria'), lambda state: state.has('Zeldas Letter')) set_rule(world.get_entrance('Mountain Summit Fairy'), lambda state: state.can_blast_or_smash()) - set_rule(world.get_location('Crater Fairy Reward'), lambda state: state.has('Zeldas Lullaby')) - set_rule(world.get_location('Mountain Summit Fairy Reward'), lambda state: state.has('Zeldas Lullaby')) + set_rule(world.get_location('Crater Fairy Reward'), lambda state: state.can_play('Zeldas Lullaby')) + set_rule(world.get_location('Mountain Summit Fairy Reward'), lambda state: state.can_play('Zeldas Lullaby')) set_rule(world.get_entrance('Mountain Crater Entrance'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Hyrule Castle Fairy'), lambda state: state.has_explosives()) - set_rule(world.get_location('Hyrule Castle Fairy Reward'), lambda state: state.has('Zeldas Lullaby')) + set_rule(world.get_location('Hyrule Castle Fairy Reward'), lambda state: state.can_play('Zeldas Lullaby')) set_rule(world.get_entrance('Hyrule Castle Garden'), lambda state: state.has('Weird Egg') or (not world.shuffle_weird_egg)) set_rule(world.get_entrance('Ganons Castle Grounds'), lambda state: state.is_adult()) set_rule(world.get_entrance('Ganons Castle Fairy'), lambda state: state.has('Progressive Strength Upgrade', 3)) - set_rule(world.get_location('Ganons Castle Fairy Reward'), lambda state: state.has('Zeldas Lullaby')) + set_rule(world.get_location('Ganons Castle Fairy Reward'), lambda state: state.can_play('Zeldas Lullaby')) set_rule(world.get_location('Bombchu Bowling Bomb Bag'), lambda state: state.has_bombchus()) set_rule(world.get_location('Bombchu Bowling Piece of Heart'), lambda state: state.has_bombchus()) set_rule(world.get_location('Adult Shooting Gallery'), lambda state: state.has('Bow') and state.is_adult()) @@ -132,21 +132,21 @@ def global_rules(world): set_rule(world.get_entrance('Zora River Dive Warp'), lambda state: state.can_dive()) set_rule(world.get_entrance('Lake Hylia Dive Warp'), lambda state: state.can_dive()) set_rule(world.get_entrance('Zoras Domain Dive Warp'), lambda state: state.can_dive()) - set_rule(world.get_entrance('Zora River Waterfall'), lambda state: state.has('Zeldas Lullaby')) + set_rule(world.get_entrance('Zora River Waterfall'), lambda state: state.can_play('Zeldas Lullaby')) set_rule(world.get_entrance('Zora River Rocks'), lambda state: state.has_explosives()) set_rule(world.get_location('Zora River Lower Freestanding PoH'), lambda state: state.has_explosives() or state.has('Progressive Scale') or (state.has('Hover Boots') and state.is_adult())) set_rule(world.get_location('Zora River Upper Freestanding PoH'), lambda state: state.has_explosives() or state.has('Progressive Scale') or (state.has('Hover Boots') and state.is_adult())) - set_rule(world.get_location('Frog Ocarina Game'), lambda state: state.has('Zeldas Lullaby') and state.has('Sarias Song') and state.has('Suns Song') and state.has('Eponas Song') and state.has('Song of Time') and state.has('Song of Storms')) - set_rule(world.get_location('Frogs in the Rain'), lambda state: state.has('Song of Storms')) + set_rule(world.get_location('Frog Ocarina Game'), lambda state: state.can_play('Zeldas Lullaby') and state.can_play('Sarias Song') and state.can_play('Suns Song') and state.can_play('Eponas Song') and state.can_play('Song of Time') and state.can_play('Song of Storms')) + set_rule(world.get_location('Frogs in the Rain'), lambda state: state.can_play('Song of Storms')) set_rule(world.get_location('Underwater Bottle'), lambda state: state.can_dive()) set_rule(world.get_location('King Zora Moves'), lambda state: state.has('Bottle with Letter')) set_rule(world.get_entrance('Behind King Zora'), lambda state: state.has('Bottle with Letter')) set_rule(world.get_entrance('Zora River Adult'), lambda state: state.is_adult()) - set_rule(world.get_entrance('Zoras Domain Adult Access'), lambda state: state.has('Zeldas Lullaby')) + set_rule(world.get_entrance('Zoras Domain Adult Access'), lambda state: state.can_play('Zeldas Lullaby')) set_rule(world.get_entrance('Zoras Fountain Adult Access'), lambda state: state.can_reach('Zoras Fountain')) set_rule(world.get_entrance('Jabu Jabus Belly'), lambda state: state.has_bottle()) set_rule(world.get_entrance('Zoras Fountain Fairy'), lambda state: state.has_explosives()) - set_rule(world.get_location('Zoras Fountain Fairy Reward'), lambda state: state.has('Zeldas Lullaby')) + set_rule(world.get_location('Zoras Fountain Fairy Reward'), lambda state: state.can_play('Zeldas Lullaby')) set_rule(world.get_entrance('Jabu Jabus Belly Ceiling Switch'), lambda state: state.has('Slingshot') or state.has_explosives() or state.has('Boomerang')) set_rule(world.get_entrance('Jabu Jabus Belly Tentacles'), lambda state: state.has('Boomerang')) set_rule(world.get_location('Ice Cavern Map Chest'), lambda state: state.has_bottle()) @@ -156,15 +156,15 @@ def global_rules(world): set_rule(world.get_location('Sheik in Ice Cavern'), lambda state: state.has_bottle() and state.is_adult()) set_rule(world.get_location('Ocarina of Time'), lambda state: state.has('Kokiri Emerald') and state.has('Goron Ruby') and state.has('Zora Sapphire') and state.guarantee_hint()) set_rule(world.get_location('Song from Ocarina of Time'), lambda state: state.has('Kokiri Emerald') and state.has('Goron Ruby') and state.has('Zora Sapphire') and state.guarantee_hint()) - set_rule(world.get_entrance('Door of Time'), lambda state: state.has('Song of Time') or world.open_door_of_time) + set_rule(world.get_entrance('Door of Time'), lambda state: state.can_play('Song of Time') or world.open_door_of_time) set_rule(world.get_location('Talons Chickens'), lambda state: state.has('Zeldas Letter')) set_rule(world.get_location('Song from Malon'), lambda state: state.has('Zeldas Letter')) - set_rule(world.get_location('Epona'), lambda state: state.has('Eponas Song') and state.is_adult()) - set_rule(world.get_entrance('Adult Forest Warp Pad'), lambda state: state.has('Minuet of Forest') and state.is_adult()) - set_rule(world.get_entrance('Child Forest Warp Pad'), lambda state: state.has('Minuet of Forest')) - set_rule(world.get_entrance('Adult Meadow Access'), lambda state: state.has('Sarias Song') and state.is_adult()) + set_rule(world.get_location('Epona'), lambda state: state.can_play('Eponas Song') and state.is_adult()) + set_rule(world.get_entrance('Adult Forest Warp Pad'), lambda state: state.can_play('Minuet of Forest') and state.is_adult()) + set_rule(world.get_entrance('Child Forest Warp Pad'), lambda state: state.can_play('Minuet of Forest')) + set_rule(world.get_entrance('Adult Meadow Access'), lambda state: state.can_play('Sarias Song') and state.is_adult()) set_rule(world.get_entrance('Forest Temple Entrance'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_entrance('Forest Temple Song of Time Block'), lambda state: state.has('Song of Time')) + set_rule(world.get_entrance('Forest Temple Song of Time Block'), lambda state: state.can_play('Song of Time')) set_rule(world.get_entrance('Forest Temple Lobby Eyeball Switch'), lambda state: state.has('Bow') and state.is_adult()) set_rule(world.get_entrance('Forest Temple Lobby Locked Door'), lambda state: state.has('Progressive Strength Upgrade') and state.has('Small Key (Forest Temple)', 1)) set_rule(world.get_entrance('Forest Temple Well Connection'), lambda state: ((state.has('Iron Boots') or state.has('Progressive Hookshot', 2)) and state.is_adult()) or state.has('Progressive Scale', 2)) #Longshot can grab some very high up vines to drain the well. @@ -183,8 +183,8 @@ def global_rules(world): set_rule(world.get_location('Dampe Race Freestanding PoH'), lambda state: not world.logic_no_second_dampe_race) set_rule(world.get_location('Graveyard Freestanding PoH'), lambda state: state.is_adult() and (state.has('Magic Bean') or state.has('Progressive Hookshot', 2))) set_rule(world.get_location('Song at Windmill'), lambda state: state.is_adult()) - set_rule(world.get_location('Windmill Freestanding PoH'), lambda state: (state.is_adult() and ( world.logic_windmill_hp or state.has('Song of Time') )) or state.has('Boomerang')) - set_rule(world.get_entrance('Temple Warp Pad'), lambda state: state.has('Prelude of Light')) + set_rule(world.get_location('Windmill Freestanding PoH'), lambda state: (state.is_adult() and ( world.logic_windmill_hp or state.can_play('Song of Time') )) or state.has('Boomerang')) + set_rule(world.get_entrance('Temple Warp Pad'), lambda state: state.can_play('Prelude of Light')) set_rule(world.get_location('Sheik at Temple'), lambda state: state.has('Forest Medallion') and state.is_adult()) set_rule(world.get_location('Diving in the Lab'), lambda state: state.has('Progressive Scale', 2)) set_rule(world.get_location('Child Fishing'), lambda state: (not world.logic_no_child_fishing) and state.has('Kokiri Sword')) @@ -196,9 +196,9 @@ def global_rules(world): set_rule(world.get_entrance('Crater Scarecrow'), lambda state: state.is_adult() and state.has('Progressive Hookshot', 2) and state.has_GoronTunic()) set_rule(world.get_entrance('Crater Bridge'), lambda state: state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot'))) set_rule(world.get_entrance('Crater Bridge Reverse'), lambda state: state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot'))) - set_rule(world.get_entrance('Crater Warp Pad'), lambda state: state.has('Bolero of Fire')) + set_rule(world.get_entrance('Crater Warp Pad'), lambda state: state.can_play('Bolero of Fire')) set_rule(world.get_entrance('Crater Fairy'), lambda state: state.is_adult() and state.has('Hammer')) - set_rule(world.get_location('DM Crater Volcano Freestanding PoH'), lambda state: state.is_adult() and state.has('Magic Bean') and state.has('Bolero of Fire')) + set_rule(world.get_location('DM Crater Volcano Freestanding PoH'), lambda state: state.is_adult() and state.has('Magic Bean') and state.can_play('Bolero of Fire')) set_rule(world.get_entrance('Fire Temple Entrance'), lambda state: state.is_adult() and state.has_GoronTunic()) set_rule(world.get_entrance('Fire Temple Early Climb'), lambda state: state.has('Small Key (Fire Temple)', 3) and state.has('Progressive Strength Upgrade') and (state.has_explosives() or ((state.has('Bow') or state.has('Progressive Hookshot')) and state.is_adult()))) set_rule(world.get_entrance('Fire Temple Fire Maze Escape'), lambda state: state.has('Small Key (Fire Temple)', 7) or (state.has('Small Key (Fire Temple)', 6) and state.has('Hover Boots') and state.has('Hammer') and state.is_adult())) @@ -211,36 +211,36 @@ def global_rules(world): set_rule(world.get_location('Fire Temple Boulder Maze Bombable Pit'), lambda state: state.has('Small Key (Fire Temple)', 5) and state.has_explosives()) set_rule(world.get_location('Fire Temple Scarecrow Chest'), lambda state: state.has('Small Key (Fire Temple)', 5) and state.has('Progressive Hookshot') and state.is_adult()) set_rule(world.get_location('Fire Temple Compass Chest'), lambda state: state.has('Small Key (Fire Temple)', 6)) - set_rule(world.get_location('Fire Temple Highest Goron Chest'), lambda state: state.has('Song of Time') and state.has('Hammer') and state.is_adult()) + set_rule(world.get_location('Fire Temple Highest Goron Chest'), lambda state: state.can_play('Song of Time') and state.has('Hammer') and state.is_adult()) set_rule(world.get_location('Fire Temple Megaton Hammer Chest'), lambda state: state.has_explosives()) - set_rule(world.get_location('Volvagia'), lambda state: state.has('Hammer') and state.is_adult() and state.has('Boss Key (Fire Temple)') and (state.has('Hover Boots') or (state.can_reach('Fire Temple Upper') and (state.has('Song of Time') or state.has_explosives())))) - set_rule(world.get_location('Volvagia Heart'), lambda state: state.has('Hammer') and state.is_adult() and state.has('Boss Key (Fire Temple)') and (state.has('Hover Boots') or (state.can_reach('Fire Temple Upper') and (state.has('Song of Time') or state.has_explosives())))) + set_rule(world.get_location('Volvagia'), lambda state: state.has('Hammer') and state.is_adult() and state.has('Boss Key (Fire Temple)') and (state.has('Hover Boots') or (state.can_reach('Fire Temple Upper') and (state.can_play('Song of Time') or state.has_explosives())))) + set_rule(world.get_location('Volvagia Heart'), lambda state: state.has('Hammer') and state.is_adult() and state.has('Boss Key (Fire Temple)') and (state.has('Hover Boots') or (state.can_reach('Fire Temple Upper') and (state.can_play('Song of Time') or state.has_explosives())))) set_rule(world.get_location('Sheik in Crater'), lambda state: state.is_adult()) set_rule(world.get_location('Link the Goron'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade') or state.has_explosives() or state.has('Bow'))) set_rule(world.get_entrance('Crater Access'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade') or state.can_blast_or_smash())) - set_rule(world.get_entrance('Lake Warp Pad'), lambda state: state.has('Serenade of Water')) + set_rule(world.get_entrance('Lake Warp Pad'), lambda state: state.can_play('Serenade of Water')) set_rule(world.get_location('King Zora Thawed'), lambda state: state.has_bottle() and (state.can_reach('Ice Cavern') or state.can_reach('Ganons Castle Water Trial') or state.has('Progressive Wallet', 2))) set_rule(world.get_location('Zoras Fountain Bottom Freestanding PoH'), lambda state: state.has('Iron Boots') and state.has('Zora Tunic')) - set_rule(world.get_entrance('Water Temple Entrance'), lambda state: state.is_adult() and (state.has('Zora Tunic') or (state.has('Progressive Wallet', 2) and state.has_bottle() and state.has('Zeldas Lullaby'))) and state.has('Iron Boots') and state.has('Progressive Hookshot')) - set_rule(world.get_entrance('Water Temple Central Pillar'), lambda state: (state.has('Bow') or (state.has('Dins Fire') and state.has('Magic Meter')) or state.has('Small Key (Water Temple)', 5)) and state.has('Zeldas Lullaby')) - set_rule(world.get_entrance('Water Temple Upper Locked Door'), lambda state: state.has('Small Key (Water Temple)', 5) and (state.has('Zeldas Lullaby') or world.keysanity)) - set_rule(world.get_location('Water Temple Torches Chest'), lambda state: (state.has('Bow') or (state.has('Dins Fire') and state.has('Magic Meter'))) and state.has('Zeldas Lullaby')) - set_rule(world.get_location('Water Temple Dragon Chest'), lambda state: (state.has('Progressive Strength Upgrade') and state.has('Zeldas Lullaby')) or (state.has('Small Key (Water Temple)', 6) and (state.has('Zeldas Lullaby') or world.keysanity) and state.has('Song of Time') and state.has('Bow'))) - set_rule(world.get_location('Water Temple Central Bow Target Chest'), lambda state: state.has('Bow') and state.has('Progressive Strength Upgrade') and state.has('Zeldas Lullaby') and (state.has('Hover Boots') or state.has('Progressive Hookshot', 2))) + set_rule(world.get_entrance('Water Temple Entrance'), lambda state: state.is_adult() and (state.has('Zora Tunic') or (state.has('Progressive Wallet', 2) and state.has_bottle() and state.can_play('Zeldas Lullaby'))) and state.has('Iron Boots') and state.has('Progressive Hookshot')) + set_rule(world.get_entrance('Water Temple Central Pillar'), lambda state: (state.has('Bow') or (state.has('Dins Fire') and state.has('Magic Meter')) or state.has('Small Key (Water Temple)', 5)) and state.can_play('Zeldas Lullaby')) + set_rule(world.get_entrance('Water Temple Upper Locked Door'), lambda state: state.has('Small Key (Water Temple)', 5) and (state.can_play('Zeldas Lullaby') or world.keysanity)) + set_rule(world.get_location('Water Temple Torches Chest'), lambda state: (state.has('Bow') or (state.has('Dins Fire') and state.has('Magic Meter'))) and state.can_play('Zeldas Lullaby')) + set_rule(world.get_location('Water Temple Dragon Chest'), lambda state: (state.has('Progressive Strength Upgrade') and state.can_play('Zeldas Lullaby')) or (state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity) and state.can_play('Song of Time') and state.has('Bow'))) + set_rule(world.get_location('Water Temple Central Bow Target Chest'), lambda state: state.has('Bow') and state.has('Progressive Strength Upgrade') and state.can_play('Zeldas Lullaby') and (state.has('Hover Boots') or state.has('Progressive Hookshot', 2))) set_always_allow(world.get_location('Water Temple Boss Key Chest'), lambda item, state: item.name == 'Small Key (Water Temple)') - set_rule(world.get_location('Water Temple Boss Key Chest'), lambda state: (state.has('Small Key (Water Temple)', 6) and (state.has('Zeldas Lullaby') or world.keysanity) and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and state.has('Progressive Hookshot', 2)) or item_name(state, 'Water Temple Boss Key Chest') == 'Small Key (Water Temple)') #If key for key, this lets the logic reduce the small key reqs for every other locked door. + set_rule(world.get_location('Water Temple Boss Key Chest'), lambda state: (state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity) and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and state.has('Progressive Hookshot', 2)) or item_name(state, 'Water Temple Boss Key Chest') == 'Small Key (Water Temple)') #If key for key, this lets the logic reduce the small key reqs for every other locked door. set_rule(world.get_location('Morpha'), lambda state: state.has('Boss Key (Water Temple)') and state.has('Progressive Hookshot', 2)) set_rule(world.get_location('Morpha Heart'), lambda state: state.has('Boss Key (Water Temple)') and state.has('Progressive Hookshot', 2)) set_rule(world.get_location('Water Temple Cracked Wall Chest'), lambda state: state.has_explosives()) - set_rule(world.get_location('Water Temple Dark Link Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and (state.has('Zeldas Lullaby') or world.keysanity)) - set_rule(world.get_location('Water Temple River Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and state.has('Song of Time') and state.has('Bow') and (state.has('Zeldas Lullaby') or world.keysanity)) + set_rule(world.get_location('Water Temple Dark Link Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity)) + set_rule(world.get_location('Water Temple River Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and state.can_play('Song of Time') and state.has('Bow') and (state.can_play('Zeldas Lullaby') or world.keysanity)) set_rule(world.get_location('Sheik in Kakariko'), lambda state: state.has('Forest Medallion') and state.has('Fire Medallion') and state.has('Water Medallion')) - set_rule(world.get_entrance('Graveyard Warp Pad'), lambda state: state.has('Nocturne of Shadow')) + set_rule(world.get_entrance('Graveyard Warp Pad'), lambda state: state.can_play('Nocturne of Shadow')) set_rule(world.get_entrance('Shadow Temple Entrance'), lambda state: state.has('Dins Fire') and state.has('Magic Meter') and state.can_see_with_lens() and state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot'))) set_rule(world.get_entrance('Shadow Temple First Pit'), lambda state: state.has('Hover Boots')) set_rule(world.get_entrance('Shadow Temple Bomb Wall'), lambda state: state.has_explosives() and state.has('Small Key (Shadow Temple)', 1)) set_rule(world.get_entrance('Shadow Temple Hookshot Target'), lambda state: state.has('Progressive Hookshot') and state.has('Small Key (Shadow Temple)', 3)) - set_rule(world.get_entrance('Shadow Temple Boat'), lambda state: state.has('Zeldas Lullaby') and state.has('Small Key (Shadow Temple)', 4)) + set_rule(world.get_entrance('Shadow Temple Boat'), lambda state: state.can_play('Zeldas Lullaby') and state.has('Small Key (Shadow Temple)', 4)) set_rule(world.get_location('Shadow Temple Falling Spikes Upper Chest'), lambda state: state.has('Progressive Strength Upgrade')) set_rule(world.get_location('Shadow Temple Falling Spikes Switch Chest'), lambda state: state.has('Progressive Strength Upgrade')) set_rule(world.get_location('Shadow Temple Invisible Spikes Chest'), lambda state: state.has('Small Key (Shadow Temple)', 2)) @@ -253,10 +253,10 @@ def global_rules(world): set_rule(world.get_entrance('Gerudo Training Grounds Entrance'), lambda state: state.has('Gerudo Membership Card') and state.is_adult()) set_rule(world.get_entrance('Haunted Wasteland Entrance'), lambda state: state.has('Gerudo Membership Card') and state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot', 2))) set_rule(world.get_entrance('Haunted Wasteland Crossing'), lambda state: (world.logic_lens == 'chest') or (state.has('Lens of Truth') and state.has('Magic Meter'))) - set_rule(world.get_entrance('Colossus Warp Pad'), lambda state: state.has('Requiem of Spirit')) + set_rule(world.get_entrance('Colossus Warp Pad'), lambda state: state.can_play('Requiem of Spirit')) set_rule(world.get_entrance('Colossus Fairy'), lambda state: state.has_explosives()) - set_rule(world.get_location('Colossus Freestanding PoH'), lambda state: state.has('Requiem of Spirit') and state.has('Magic Bean') and state.is_adult()) - set_rule(world.get_location('Desert Colossus Fairy Reward'), lambda state: state.has('Zeldas Lullaby')) + set_rule(world.get_location('Colossus Freestanding PoH'), lambda state: state.can_play('Requiem of Spirit') and state.has('Magic Bean') and state.is_adult()) + set_rule(world.get_location('Desert Colossus Fairy Reward'), lambda state: state.can_play('Zeldas Lullaby')) set_rule(world.get_location('Gerudo Fortress Rooftop Chest'), lambda state: (state.has('Hover Boots') or state.has('Progressive Hookshot')) and state.is_adult()) set_rule(world.get_location('Horseback Archery 1000 Points'), lambda state: state.has('Gerudo Membership Card') and state.has('Epona') and state.has('Bow') and state.is_adult()) set_rule(world.get_location('Horseback Archery 1500 Points'), lambda state: (not world.logic_no_1500_archery) and (state.has('Gerudo Membership Card') and state.has('Epona') and state.has('Bow') and state.is_adult())) @@ -264,7 +264,7 @@ def global_rules(world): set_rule(world.get_entrance('Gerudo Training Ground Left Silver Rupees'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) set_rule(world.get_entrance('Gerudo Training Ground Beamos'), lambda state: state.has_explosives()) set_rule(world.get_entrance('Gerudo Training Grounds Right Locked Doors'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 9)) - set_rule(world.get_entrance('Gerudo Training Grounds Maze Ledge'), lambda state: state.has('Song of Time')) + set_rule(world.get_entrance('Gerudo Training Grounds Maze Ledge'), lambda state: state.can_play('Song of Time')) set_rule(world.get_entrance('Gerudo Training Grounds Right Hookshot Target'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) set_rule(world.get_entrance('Gerudo Training Grounds Hammer Target'), lambda state: state.has('Hammer') and state.has('Bow') and state.is_adult()) set_rule(world.get_entrance('Gerudo Training Grounds Hidden Hookshot Target'), lambda state: state.has('Progressive Hookshot') and state.can_see_with_lens() and state.is_adult()) @@ -277,7 +277,7 @@ def global_rules(world): set_rule(world.get_location('Gerudo Training Grounds Maze Path Third Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 7)) set_rule(world.get_location('Gerudo Training Grounds Maze Path Final Chest'), lambda state: (state.has('Small Key (Gerudo Training Grounds)', 9)) or (item_name(state, 'Gerudo Training Grounds Maze Path Final Chest') == 'Small Key (Gerudo Training Grounds)' and state.has('Small Key (Gerudo Training Grounds)', 8))) #Allow key for key set_always_allow(world.get_location('Gerudo Training Grounds Maze Path Final Chest'), lambda item, state: item.name == 'Small Key (Gerudo Training Grounds)') - set_rule(world.get_location('Gerudo Training Grounds Underwater Silver Rupee Chest'), lambda state: state.has('Progressive Hookshot') and state.has('Song of Time') and state.has('Iron Boots') and state.has('Zora Tunic') and state.is_adult()) + set_rule(world.get_location('Gerudo Training Grounds Underwater Silver Rupee Chest'), lambda state: state.has('Progressive Hookshot') and state.can_play('Song of Time') and state.has('Iron Boots') and state.has('Zora Tunic') and state.is_adult()) set_rule(world.get_location('Gerudo Training Grounds Hammer Room Switch Chest'), lambda state: state.has('Hammer') and state.is_adult()) set_rule(world.get_location('Gerudo Training Grounds Eye Statue Chest'), lambda state: state.has('Bow') and state.is_adult()) set_rule(world.get_location('Gerudo Training Grounds Near Scarecrow Chest'), lambda state: state.has('Bow') and state.is_adult()) @@ -285,7 +285,7 @@ def global_rules(world): set_rule(world.get_location('Gerudo Training Grounds Heavy Block Second Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.can_see_with_lens() and state.is_adult()) set_rule(world.get_location('Gerudo Training Grounds Heavy Block Third Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.can_see_with_lens() and state.is_adult()) set_rule(world.get_location('Gerudo Training Grounds Heavy Block Fourth Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.can_see_with_lens() and state.is_adult()) - set_rule(world.get_entrance('Spirit Temple Crawl Passage'), lambda state: state.has('Requiem of Spirit')) + set_rule(world.get_entrance('Spirit Temple Crawl Passage'), lambda state: state.can_play('Requiem of Spirit')) set_rule(world.get_entrance('Spirit Temple Silver Block'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.is_adult()) set_rule(world.get_entrance('Child Spirit Temple Passthrough'), lambda state: state.has_explosives() and state.has('Small Key (Spirit Temple)', 1)) set_rule(world.get_entrance('Adult Spirit Temple Passthrough'), lambda state: state.has('Small Key (Spirit Temple)', 1)) @@ -293,22 +293,22 @@ def global_rules(world): set_rule(world.get_entrance('Spirit Temple Final Locked Door'), lambda state: state.has('Small Key (Spirit Temple)', 5) and (state.has('Progressive Hookshot') or state.has('Bow') or state.has_explosives())) set_rule(world.get_location('Spirit Temple Child Left Chest'), lambda state: state.has('Boomerang') or state.has('Slingshot')) set_rule(world.get_location('Spirit Temple Child Right Chest'), lambda state: state.has('Boomerang') or state.has('Slingshot')) - set_rule(world.get_location('Spirit Temple Compass Chest'), lambda state: state.has('Progressive Hookshot') and state.has('Zeldas Lullaby')) + set_rule(world.get_location('Spirit Temple Compass Chest'), lambda state: state.has('Progressive Hookshot') and state.can_play('Zeldas Lullaby')) set_rule(world.get_location('Spirit Temple Early Adult Right Chest'), lambda state: state.has('Bow') or state.has('Progressive Hookshot') or state.has_bombchus()) #requires a very specific Bombchu use, Hover Boots can be skipped by jumping on top of the rolling rock. set_rule(world.get_location('Spirit Temple First Mirror Right Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3)) set_rule(world.get_location('Spirit Temple First Mirror Left Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3)) - set_rule(world.get_location('Spirit Temple Map Chest'), lambda state: (state.has('Small Key (Spirit Temple)', 5) and state.has('Requiem of Spirit')) or (state.has('Magic Meter') and (state.has('Dins Fire') or (state.has('Fire Arrows') and state.has('Bow') and state.has('Progressive Strength Upgrade', 2) and state.has('Small Key (Spirit Temple)', 3) and state.is_adult())))) - set_rule(world.get_location('Spirit Temple Child Climb East Chest'), lambda state: state.has_explosives() or ((state.has('Boomerang') or state.has('Slingshot')) and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 5) and state.has('Requiem of Spirit') and (state.has('Boomerang') or state.has('Slingshot')))) - set_rule(world.get_location('Spirit Temple Child Climb North Chest'), lambda state: state.has_explosives() or ((state.has('Boomerang') or state.has('Slingshot')) and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 5) and state.has('Requiem of Spirit') and (state.has('Boomerang') or state.has('Slingshot')))) - set_rule(world.get_location('Spirit Temple Sun Block Room Chest'), lambda state: (state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.has('Requiem of Spirit')) or (state.has_fire_source() and (state.has_explosives() or state.has('Small Key (Spirit Temple)', 2)))) - set_rule(world.get_location('Spirit Temple Statue Hand Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.has('Zeldas Lullaby')) - set_rule(world.get_location('Spirit Temple NE Main Room Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.has('Zeldas Lullaby') and state.has('Progressive Hookshot')) + set_rule(world.get_location('Spirit Temple Map Chest'), lambda state: (state.has('Small Key (Spirit Temple)', 5) and state.can_play('Requiem of Spirit')) or (state.has('Magic Meter') and (state.has('Dins Fire') or (state.has('Fire Arrows') and state.has('Bow') and state.has('Progressive Strength Upgrade', 2) and state.has('Small Key (Spirit Temple)', 3) and state.is_adult())))) + set_rule(world.get_location('Spirit Temple Child Climb East Chest'), lambda state: state.has_explosives() or ((state.has('Boomerang') or state.has('Slingshot')) and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 5) and state.can_play('Requiem of Spirit') and (state.has('Boomerang') or state.has('Slingshot')))) + set_rule(world.get_location('Spirit Temple Child Climb North Chest'), lambda state: state.has_explosives() or ((state.has('Boomerang') or state.has('Slingshot')) and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 5) and state.can_play('Requiem of Spirit') and (state.has('Boomerang') or state.has('Slingshot')))) + set_rule(world.get_location('Spirit Temple Sun Block Room Chest'), lambda state: (state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit')) or (state.has_fire_source() and (state.has_explosives() or state.has('Small Key (Spirit Temple)', 2)))) + set_rule(world.get_location('Spirit Temple Statue Hand Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.can_play('Zeldas Lullaby')) + set_rule(world.get_location('Spirit Temple NE Main Room Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.can_play('Zeldas Lullaby') and state.has('Progressive Hookshot')) set_rule(world.get_location('Mirror Shield Chest'), lambda state: state.has('Small Key (Spirit Temple)', 4) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.has_explosives()) set_rule(world.get_location('Silver Gauntlets Chest'), lambda state: (state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Hookshot', 2) and state.has_explosives()) or state.has('Small Key (Spirit Temple)', 5)) set_rule(world.get_location('Spirit Temple Near Four Armos Chest'), lambda state: state.has('Mirror Shield') and state.has_explosives()) set_rule(world.get_location('Spirit Temple Hallway Left Invisible Chest'), lambda state: state.can_see_with_lens() and state.has_explosives()) set_rule(world.get_location('Spirit Temple Hallway Right Invisible Chest'), lambda state: state.can_see_with_lens() and state.has_explosives()) - set_rule(world.get_location('Spirit Temple Boss Key Chest'), lambda state: state.has('Zeldas Lullaby') and state.has('Bow') and state.has('Progressive Hookshot') and state.can_blast_or_smash()) + set_rule(world.get_location('Spirit Temple Boss Key Chest'), lambda state: state.can_play('Zeldas Lullaby') and state.has('Bow') and state.has('Progressive Hookshot') and state.can_blast_or_smash()) set_rule(world.get_location('Spirit Temple Topmost Chest'), lambda state: state.has('Mirror Shield')) set_rule(world.get_location('Twinrova'), lambda state: state.has('Mirror Shield') and state.has_explosives() and state.has('Progressive Hookshot') and state.has('Boss Key (Spirit Temple)')) set_rule(world.get_location('Twinrova Heart'), lambda state: state.has('Mirror Shield') and state.has_explosives() and state.has('Progressive Hookshot') and state.has('Boss Key (Spirit Temple)')) @@ -319,19 +319,19 @@ def global_rules(world): set_rule(world.get_location('Ganons Castle Fire Trial Clear'), lambda state: state.has_GoronTunic() and state.has('Progressive Strength Upgrade', 3) and state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and state.has('Progressive Hookshot', 2)) set_rule(world.get_location('Ganons Castle Water Trial Clear'), lambda state: state.has_bottle() and state.has('Hammer') and state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows')) set_rule(world.get_location('Ganons Castle Shadow Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and state.has('Hammer') and (state.has('Fire Arrows') or state.has('Progressive Hookshot', 2)) and (state.can_see_with_lens() or (state.has('Hover Boots') and state.has('Progressive Hookshot', 2)))) - set_rule(world.get_location('Ganons Castle Shadow Trial First Chest'), lambda state: (state.has('Magic Meter') and state.has('Bow') and state.has('Fire Arrows')) or state.has('Progressive Hookshot') or state.has('Hover Boots') or state.has('Song of Time')) + set_rule(world.get_location('Ganons Castle Shadow Trial First Chest'), lambda state: (state.has('Magic Meter') and state.has('Bow') and state.has('Fire Arrows')) or state.has('Progressive Hookshot') or state.has('Hover Boots') or state.can_play('Song of Time')) set_rule(world.get_location('Ganons Castle Shadow Trial Second Chest'), lambda state: (state.has('Magic Meter') and state.has('Bow') and state.has('Fire Arrows')) or (state.has('Progressive Hookshot', 2) and state.has('Hover Boots'))) set_rule(world.get_location('Ganons Castle Spirit Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and state.has('Mirror Shield') and state.has_bombchus() and state.has('Progressive Hookshot')) set_rule(world.get_location('Ganons Castle Spirit Trial First Chest'), lambda state: state.has('Progressive Hookshot') and (state.has('Magic Meter') or state.has_explosives())) set_rule(world.get_location('Ganons Castle Spirit Trial Second Chest'), lambda state: state.has('Progressive Hookshot') and state.has('Magic Meter') and state.has_bombchus() and state.can_see_with_lens()) set_rule(world.get_location('Ganons Castle Light Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Progressive Hookshot') and state.has('Light Arrows') and state.has('Small Key (Ganons Castle)', 2)) set_rule(world.get_location('Ganons Castle Light Trail Invisible Enemies Chest'), lambda state: state.can_see_with_lens()) - set_rule(world.get_location('Ganons Castle Light Trial Lullaby Chest'), lambda state: state.has('Zeldas Lullaby') and state.has('Small Key (Ganons Castle)', 1)) + set_rule(world.get_location('Ganons Castle Light Trial Lullaby Chest'), lambda state: state.can_play('Zeldas Lullaby') and state.has('Small Key (Ganons Castle)', 1)) set_rule(world.get_location('Ganon'), lambda state: (state.has('Boss Key (Ganons Castle)') or world.unlocked_ganondorf) and (state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows')) ) - set_rule(world.get_entrance('Kokiri Forest Storms Grotto'), lambda state: state.has('Song of Storms')) + set_rule(world.get_entrance('Kokiri Forest Storms Grotto'), lambda state: state.can_play('Song of Storms')) set_rule(world.get_entrance('Lost Woods Generic Grotto'), lambda state: state.can_blast_or_smash()) - set_rule(world.get_entrance('Lost Woods Sales Grotto'), lambda state: state.has_explosives() or (state.has('Hammer') and state.is_adult() and (state.has('Minuet of Forest') or state.has('Sarias Song')))) - set_rule(world.get_entrance('Front of Meadow Grotto'), lambda state: state.has_explosives() or (state.has('Hammer') and state.is_adult() and (state.has('Minuet of Forest') or state.has('Sarias Song')))) + set_rule(world.get_entrance('Lost Woods Sales Grotto'), lambda state: state.has_explosives() or (state.has('Hammer') and state.is_adult() and (state.can_play('Minuet of Forest') or state.can_play('Sarias Song')))) + set_rule(world.get_entrance('Front of Meadow Grotto'), lambda state: state.has_explosives() or (state.has('Hammer') and state.is_adult() and (state.can_play('Minuet of Forest') or state.can_play('Sarias Song')))) set_rule(world.get_entrance('Remote Southern Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Field Near Lake Inside Fence Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Field Valley Grotto'), lambda state: state.can_blast_or_smash()) @@ -339,10 +339,10 @@ def global_rules(world): set_rule(world.get_entrance('Field Far West Castle Town Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Field Kakariko Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Field North Lon Lon Grotto'), lambda state: state.can_blast_or_smash()) - set_rule(world.get_entrance('Castle Storms Grotto'), lambda state: state.has('Song of Storms')) + set_rule(world.get_entrance('Castle Storms Grotto'), lambda state: state.can_play('Song of Storms')) set_rule(world.get_entrance('Kakariko Bombable Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Mountain Bombable Grotto'), lambda state: state.can_blast_or_smash()) - set_rule(world.get_entrance('Mountain Storms Grotto'), lambda state: state.has('Song of Storms')) + set_rule(world.get_entrance('Mountain Storms Grotto'), lambda state: state.can_play('Song of Storms')) set_rule(world.get_entrance('Top of Crater Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Zora River Plateau Open Grotto'), lambda state: state.has_explosives() or state.has('Progressive Scale') or state.is_adult()) set_rule(world.get_entrance('Zora River Plateau Bombable Grotto'), lambda state: state.can_blast_or_smash()) @@ -370,7 +370,7 @@ def global_rules(world): set_rule(world.get_location('GS33'), lambda state: state.has('Hammer') and state.is_adult()) set_rule(world.get_location('GS34'), lambda state: state.has_explosives()) set_rule(world.get_location('GS35'), lambda state: state.is_adult()) - set_rule(world.get_location('GS37'), lambda state: state.has('Bolero of Fire') and state.has_bottle()) + set_rule(world.get_location('GS37'), lambda state: state.can_play('Bolero of Fire') and state.has_bottle()) set_rule(world.get_location('GS39'), lambda state: state.has_explosives() or (state.has('Boomerang') or state.has('Slingshot') and state.has('Progressive Strength Upgrade')) or (state.has('Dins Fire') and state.has('Magic Meter')) or (state.is_adult and (state.has('Progressive Hookshot') or state.has('Bow') or state.has('Biggoron Sword')))) set_rule(world.get_location('GS41'), lambda state: (state.has('Progressive Hookshot') and state.is_adult()) or (state.has('Boomerang') and (state.has_explosives() or state.has('Progressive Strength Upgrade')))) set_rule(world.get_location('GS42'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) @@ -389,7 +389,7 @@ def global_rules(world): set_rule(world.get_location('GS62'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) set_rule(world.get_location('GS63'), lambda state: (state.has('Progressive Hookshot', 2) or (state.has('Progressive Hookshot') and state.can_reach('Forest Temple Outside Upper Ledge'))) and state.is_adult()) set_rule(world.get_location('GS64'), lambda state: state.has('Progressive Hookshot')) - set_rule(world.get_location('GS65'), lambda state: state.has('Small Key (Fire Temple)', 1) and state.has('Song of Time')) + set_rule(world.get_location('GS65'), lambda state: state.has('Small Key (Fire Temple)', 1) and state.can_play('Song of Time')) set_rule(world.get_location('GS66'), lambda state: state.has_explosives()) set_rule(world.get_location('GS67'), lambda state: state.has('Small Key (Fire Temple)', 5) and state.has('Progressive Hookshot') and state.is_adult()) set_rule(world.get_location('GS68'), lambda state: state.has('Small Key (Fire Temple)', 5) and state.has('Progressive Hookshot') and state.is_adult()) @@ -398,7 +398,7 @@ def global_rules(world): set_rule(world.get_location('GS71'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) set_rule(world.get_location('GS72'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) set_rule(world.get_location('GS73'), lambda state: state.has_explosives() and state.has('Magic Meter')) - set_rule(world.get_location('GS74'), lambda state: state.has('Song of Time') and state.has('Small Key (Water Temple)', 6)) + set_rule(world.get_location('GS74'), lambda state: state.can_play('Song of Time') and state.has('Small Key (Water Temple)', 6)) set_rule(world.get_location('GS75'), lambda state: state.has('Progressive Hookshot', 2)) set_rule(world.get_location('GS76'), lambda state: state.has('Progressive Hookshot', 2)) set_rule(world.get_location('GS77'), lambda state: state.has('Progressive Hookshot', 2) and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and state.has('Small Key (Water Temple)', 6)) #5 keys would be better but it wouldn't be compatible with the key for key scenarios, 6 will be identical pre-keysanity. @@ -414,12 +414,12 @@ def global_rules(world): set_rule(world.get_location('GS89'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) set_rule(world.get_location('GS90'), lambda state: state.has('Progressive Hookshot') and state.has('Gerudo Membership Card') and state.is_adult()) set_rule(world.get_location('GS92'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('GS93'), lambda state: state.has_bottle() and state.has('Requiem of Spirit')) + set_rule(world.get_location('GS93'), lambda state: state.has_bottle() and state.can_play('Requiem of Spirit')) set_rule(world.get_location('GS94'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('GS95'), lambda state: ((state.has('Magic Bean') and state.has('Requiem of Spirit')) or state.has('Progressive Hookshot', 2)) and state.is_adult()) + set_rule(world.get_location('GS95'), lambda state: ((state.has('Magic Bean') and state.can_play('Requiem of Spirit')) or state.has('Progressive Hookshot', 2)) and state.is_adult()) set_rule(world.get_location('GS96'), lambda state: state.has('Boomerang')) - set_rule(world.get_location('GS98'), lambda state: (state.has('Boomerang') and state.has('Progressive Hookshot')) or (state.has('Boomerang') and state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.has('Requiem of Spirit')) or (state.has('Progressive Hookshot') and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.has('Small Key (Spirit Temple)', 3))) - set_rule(world.get_location('GS99'), lambda state: state.has('Song of Time') and (state.has('Bow') or state.has('Progressive Hookshot') or state.has_explosives())) + set_rule(world.get_location('GS98'), lambda state: (state.has('Boomerang') and state.has('Progressive Hookshot')) or (state.has('Boomerang') and state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit')) or (state.has('Progressive Hookshot') and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.has('Small Key (Spirit Temple)', 3))) + set_rule(world.get_location('GS99'), lambda state: state.can_play('Song of Time') and (state.has('Bow') or state.has('Progressive Hookshot') or state.has_explosives())) set_rule(world.get_location('GS100'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.has('Small Key (Spirit Temple)', 3) and state.is_adult() and (state.has('Progressive Hookshot') or state.has('Hover Boots'))) for location in world.get_locations(): diff --git a/Settings.py b/Settings.py index d7417ec8a..c4c595b1e 100644 --- a/Settings.py +++ b/Settings.py @@ -466,6 +466,21 @@ def __init__(self, settings_dict): 'widget': 'Checkbutton', 'default': 'unchecked' }), + Setting_Info('shuffle_fairy_ocarina', bool, 1, True, + { + 'help': '''\ + Shuffles the Fairy Ocarina item from Saria into the pool. + This means that you need to find the ocarina before playing songs. + You can still always recieve it from Ocarina of Time location + ''', + 'action': 'store_true' + }, + { + 'text': 'Shuffle Fairy Ocarina', + 'group': 'logic', + 'widget': 'Checkbutton', + 'default': 'unchecked' + }), Setting_Info('logic_skulltulas', int, 3, True, { 'default': '50', diff --git a/data/base2current.json b/data/base2current.json index 500668427..ca4bc94ea 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -1 +1 @@ -[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 35]}, {"11325064": [12, 16, 10, 251, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 11, 78]}, {"11427312": [12, 16, 11, 247]}, {"11562028": [12, 16, 12, 24]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 12, 7]}, {"11882076": [12, 16, 11, 228]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 11, 45, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 11, 52, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 11, 59, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 11, 38, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 9, 243]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 9, 192]}, {"12427480": [12, 16, 9, 221]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 9, 225]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 11, 3, 0, 0, 0, 0]}, {"12491456": [12, 16, 9, 255]}, {"12491480": [12, 16, 10, 8]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 10, 208]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 11, 66]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 140, 73]}, {"14149503": [164]}, {"14149512": [2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149856": [87]}, {"14149859": [15]}, {"14357459": [118]}, {"14624335": [118]}, {"14872723": [52]}, {"15506663": [122]}, {"55057408": [90, 93, 92, 94, 81, 82, 83]}, {"55058464": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 212, 128, 64, 36, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 212, 128, 64, 36, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 212, 128, 64, 36, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 212, 128, 64, 36, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 212, 128, 64, 36, 236, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 212, 128, 64, 37, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 212, 128, 64, 37, 48, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 212, 128, 64, 37, 76, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 212, 128, 64, 37, 104, 83, 65, 56, 67]}, {"55058613": [235, 21, 255, 128, 64, 37, 236, 128, 64, 36, 80, 83, 65, 55, 68]}, {"55058629": [235, 22, 255, 128, 64, 37, 236, 128, 64, 36, 80, 83, 65, 57, 69]}, {"55058645": [235, 23, 255, 128, 64, 37, 236, 128, 64, 36, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 37, 236, 128, 64, 36, 80, 83, 65, 63, 71]}, {"55058677": [244, 25, 255, 128, 64, 37, 236, 128, 64, 36, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 37, 236, 128, 64, 36, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 37, 236, 128, 64, 36, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 37, 236, 128, 64, 36, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 37, 236, 128, 64, 36, 80, 83, 65, 10, 6]}, {"55058757": [185, 1, 3, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 10, 28]}, {"55058773": [185, 1, 4, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 10, 29]}, {"55058789": [185, 1, 5, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 10, 30]}, {"55058805": [185, 1, 6, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 10, 42]}, {"55058821": [185, 1, 7, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 10, 97]}, {"55058837": [185, 1, 10, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 11, 98]}, {"55058853": [184, 2]}, {"55058856": [128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 11, 99]}, {"55058869": [184, 2, 1, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 11, 100]}, {"55058885": [184, 2, 2, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 11, 101]}, {"55058901": [184, 2, 3, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 11, 124]}, {"55058917": [184, 2, 4, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 11, 125]}, {"55058933": [184, 2, 5, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 11, 126]}, {"55058949": [184, 2, 6, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 11, 127]}, {"55058965": [184, 2, 7, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 11, 162]}, {"55058981": [184, 2, 8, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 11, 135]}, {"55058997": [184, 2, 9, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 28, 136]}, {"55059013": [200, 4]}, {"55059016": [128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 28, 137]}, {"55059029": [200, 4, 1, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 28, 138]}, {"55059045": [200, 4, 2, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 28, 139]}, {"55059061": [200, 4, 3, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 28, 140]}, {"55059077": [200, 4, 4, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 28, 142]}, {"55059093": [200, 4, 5, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 28, 143]}, {"55059109": [200, 4, 6, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 28, 163]}, {"55059125": [200, 4, 7, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 28, 165]}, {"55059141": [200, 4, 8, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 28, 146]}, {"55059157": [200, 4, 9, 128, 64, 38, 40, 128, 64, 36, 80, 83, 65, 2, 147]}, {"55059173": [170, 3, 255, 128, 64, 38, 68, 128, 64, 36, 80, 83, 65, 2, 148]}, {"55059189": [170, 4, 255, 128, 64, 38, 68, 128, 64, 36, 80, 83, 65, 2, 149]}, {"55059205": [170, 5, 255, 128, 64, 38, 68, 128, 64, 36, 80, 83, 65, 2, 166]}, {"55059221": [170, 6, 255, 128, 64, 38, 68, 128, 64, 36, 80, 83, 65, 2, 169]}, {"55059237": [170, 7, 255, 128, 64, 38, 68, 128, 64, 36, 80, 83, 65, 2, 155]}, {"55059253": [170, 8, 255, 128, 64, 38, 68, 128, 64, 36, 80, 83, 65, 2, 159]}, {"55059269": [170, 11, 255, 128, 64, 38, 68, 128, 64, 36, 80, 83, 65, 2, 160]}, {"55059285": [170, 12, 255, 128, 64, 38, 68, 128, 64, 36, 80, 83, 65, 2, 161]}, {"55059301": [170, 13, 255, 128, 64, 38, 68, 128, 64, 36, 80, 83, 61, 67, 12]}, {"55059317": [248, 255, 255, 128, 64, 37, 220, 128, 64, 36, 80, 77, 131, 247, 85]}, {"55059333": [183, 255, 255, 128, 64, 37, 212, 128, 64, 36, 80, 83, 146, 219, 230]}, {"55059349": [216, 255, 255, 128, 64, 37, 212, 128, 64, 37, 156, 83, 147, 218, 230]}, {"55059365": [216, 255, 255, 128, 64, 37, 212, 128, 64, 37, 156, 83, 148, 217, 230]}, {"55059381": [216, 255, 255, 128, 64, 37, 212, 128, 64, 37, 156, 83, 142, 224, 50]}, {"55059397": [206, 255, 255, 128, 64, 37, 212, 128, 64, 37, 184, 83, 143, 224, 50]}, {"55059413": [206, 255, 255, 128, 64, 37, 212, 128, 64, 37, 184, 83, 144, 224, 50]}, {"55059429": [206, 255, 255, 128, 64, 37, 212, 128, 64, 37, 184, 77, 140, 238, 52]}, {"55059445": [187, 255, 255, 128, 64, 37, 212, 128, 64, 36, 80, 77, 141, 238, 52]}, {"55059461": [187, 255, 255, 128, 64, 37, 212, 128, 64, 36, 80, 79, 65, 19, 233]}, {"55059477": [189, 255, 255, 128, 64, 38, 108, 128, 64, 36, 80, 79, 65, 30, 228]}, {"55059493": [205, 255, 255, 128, 64, 38, 140, 128, 64, 37, 132, 79, 65, 31, 232]}, {"55059509": [205, 255, 255, 128, 64, 38, 172, 128, 64, 36, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 212, 128, 64, 38, 212, 3, 224]}, {"55059539": [8, 52, 162]}, {"55059544": [144, 136]}, {"55059547": [125, 52, 1]}, {"55059551": [255, 17, 1]}, {"55059555": [2, 52, 2]}, {"55059559": [8, 52, 2]}, {"55059563": [9, 3, 224]}, {"55059567": [8]}, {"55059572": [144, 136]}, {"55059575": [163, 49, 8]}, {"55059579": [192, 17]}, {"55059583": [5, 52, 2]}, {"55059587": [84, 52, 1]}, {"55059591": [64, 17, 1]}, {"55059595": [2, 52, 2]}, {"55059599": [53, 52, 2]}, {"55059603": [54, 3, 224]}, {"55059607": [8]}, {"55059612": [144, 136]}, {"55059615": [163, 49, 8]}, {"55059619": [24, 17]}, {"55059623": [5, 52, 2]}, {"55059627": [50, 52, 1]}, {"55059631": [8, 17, 1]}, {"55059635": [2, 52, 2]}, {"55059639": [51, 52, 2]}, {"55059643": [52, 3, 224]}, {"55059647": [8]}, {"55059652": [144, 136]}, {"55059655": [163, 49, 8]}, {"55059659": [3, 17]}, {"55059663": [5, 52, 2]}, {"55059667": [4, 52, 1]}, {"55059671": [1, 17, 1]}, {"55059675": [2, 52, 2]}, {"55059679": [48, 52, 2]}, {"55059683": [49, 3, 224]}, {"55059687": [8]}, {"55059692": [144, 136]}, {"55059695": [162, 49, 8]}, {"55059699": [192, 17]}, {"55059703": [5, 52, 2]}, {"55059707": [5, 52, 1]}, {"55059711": [64, 17, 1]}, {"55059715": [2, 52, 2]}, {"55059719": [96, 52, 2]}, {"55059723": [123, 3, 224]}, {"55059727": [8]}, {"55059732": [144, 136]}, {"55059735": [162, 49, 8]}, {"55059739": [48, 17]}, {"55059743": [2, 52, 2]}, {"55059747": [69, 52, 2]}, {"55059751": [70, 3, 224]}, {"55059755": [8]}, {"55059760": [144, 136]}, {"55059763": [162, 49, 8]}, {"55059767": [6, 17]}, {"55059771": [2, 52, 2]}, {"55059775": [55, 52, 2]}, {"55059779": [56, 3, 224]}, {"55059783": [8]}, {"55059788": [144, 136]}, {"55059791": [161, 49, 8]}, {"55059795": [32, 17]}, {"55059799": [2, 52, 2]}, {"55059803": [121, 52, 2]}, {"55059807": [122, 3, 224]}, {"55059811": [8]}, {"55059816": [144, 136]}, {"55059819": [161, 49, 8]}, {"55059823": [4, 17]}, {"55059827": [2, 52, 2]}, {"55059831": [119, 52, 2]}, {"55059835": [120, 3, 224]}, {"55059839": [8]}, {"55059844": [144, 136]}, {"55059847": [50, 17]}, {"55059851": [2, 52, 2]}, {"55059855": [192, 52, 2]}, {"55059859": [193, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [3, 17]}, {"55059879": [2, 52, 2]}, {"55059883": [77, 52, 162]}, {"55059888": [3, 224]}, {"55059891": [8]}, {"55059896": [144, 136]}, {"55059899": [163, 49, 8]}, {"55059903": [24, 17]}, {"55059907": [2, 52, 2]}, {"55059911": [77, 52, 162]}, {"55059916": [3, 224]}, {"55059919": [8]}, {"55059924": [3, 224]}, {"55059927": [8]}, {"55059932": [52, 8]}, {"55059935": [1, 160, 136]}, {"55059939": [62, 3, 224]}, {"55059943": [8]}, {"55059948": [36, 136]}, {"55059951": [134, 36, 9, 255, 255, 37, 41]}, {"55059959": [1, 52, 1]}, {"55059963": [3]}, {"55059965": [41, 8, 42, 20, 32]}, {"55059971": [7]}, {"55059976": [1, 9, 80, 33, 145, 75]}, {"55059984": [52, 1]}, {"55059987": [255, 21, 97, 255, 247]}, {"55059996": [161, 69]}, {"55060000": [3, 224]}, {"55060003": [8]}, {"55060008": [36, 136]}, {"55060011": [168, 1, 6, 64, 33, 145, 9]}, {"55060020": [1, 37, 72, 37, 161, 9]}, {"55060028": [3, 224]}, {"55060031": [8]}, {"55060036": [36, 136]}, {"55060039": [188, 1, 5, 64, 33, 129, 9]}, {"55060048": [5, 33]}, {"55060051": [2]}, {"55060056": [52, 9]}, {"55060060": [37, 41]}, {"55060063": [1, 161, 9]}, {"55060068": [3, 224]}, {"55060071": [8]}, {"55060076": [52, 8]}, {"55060079": [1, 160, 136]}, {"55060083": [61, 52, 8]}, {"55060087": [20, 160, 136]}, {"55060091": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060103": [8]}, {"55060108": [52, 8]}, {"55060111": [1, 160, 136]}, {"55060115": [50, 160, 136]}, {"55060119": [58, 52, 8]}, {"55060123": [48, 164, 136, 19, 244, 160, 136]}, {"55060131": [51, 3, 224]}, {"55060135": [8]}, {"55060140": [52, 8]}, {"55060143": [2, 160, 136]}, {"55060147": [50, 52, 8]}, {"55060151": [1, 160, 136]}, {"55060155": [58, 160, 136]}, {"55060159": [60, 52, 8]}, {"55060163": [96, 164, 136, 19, 244, 160, 136]}, {"55060171": [51, 3, 224]}, {"55060175": [8]}, {"55060180": [144, 136]}, {"55060183": [124, 52, 1]}, {"55060187": [255, 17, 1]}, {"55060191": [6, 52, 2]}, {"55060195": [107, 144, 136]}, {"55060199": [148, 45, 8]}, {"55060203": [6, 17]}, {"55060207": [2, 52, 2]}, {"55060211": [106, 52, 2]}, {"55060215": [3, 3, 224]}, {"55060219": [8]}, {"55060224": [48, 132]}, {"55060227": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060239": [140, 16, 129]}, {"55060243": [22, 145, 2]}, {"55060247": [117, 52, 1]}, {"55060251": [141, 16, 129]}, {"55060255": [19, 145, 2]}, {"55060259": [117, 16, 128]}, {"55060263": [17, 145, 2]}, {"55060267": [116, 52, 1]}, {"55060271": [138, 16, 129]}, {"55060275": [14, 145, 2]}, {"55060279": [116, 52, 1]}, {"55060283": [139, 16, 129]}, {"55060287": [11, 145, 2]}, {"55060291": [116, 52, 1]}, {"55060295": [88, 16, 129]}, {"55060299": [8, 52, 2]}, {"55060304": [52, 1]}, {"55060307": [120, 16, 129]}, {"55060311": [5, 52, 2]}, {"55060316": [52, 1]}, {"55060319": [121, 16, 129]}, {"55060323": [2, 52, 2]}, {"55060328": [52, 2]}, {"55060331": [255, 3, 224]}, {"55060335": [8]}, {"55060340": [143, 166]}, {"55060343": [48, 132, 197]}, {"55060347": [4, 8, 16, 9, 229]}, {"55060356": [143, 185]}, {"55060359": [44, 135, 37]}, {"55060363": [4, 8, 16, 9, 229]}, {"55060372": [60, 10, 128, 64, 37, 74, 32]}, {"55060380": [141, 75]}, {"55060383": [12, 17, 96]}, {"55060387": [2]}, {"55060392": [149, 69]}, {"55060395": [4, 60, 10, 128, 64, 37, 74, 32, 16, 161, 64]}, {"55060408": [60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060420": [3, 224]}, {"55060423": [8]}, {"55060428": [60, 8, 128, 64, 37, 8, 32]}, {"55060436": [141, 9]}, {"55060439": [12, 17, 32]}, {"55060443": [2]}, {"55060448": [129, 3]}, {"55060451": [2]}, {"55060453": [3, 15, 195]}, {"55060457": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55060471": [8]}, {"55060476": [144, 69]}, {"55060479": [3, 60, 8, 128, 64, 37, 8, 32]}, {"55060488": [141, 9]}, {"55060491": [12, 17, 32]}, {"55060495": [2]}, {"55060500": [145, 5]}, {"55060503": [3, 3, 224]}, {"55060507": [8]}, {"55060512": [143, 162]}, {"55060515": [36, 144, 69]}, {"55060520": [60, 8, 128, 64, 37, 8, 32]}, {"55060528": [141, 9]}, {"55060531": [12, 17, 32]}, {"55060535": [19]}, {"55060540": [145, 5]}, {"55060543": [1, 175, 164]}, {"55060548": [175, 165]}, {"55060551": [4, 175, 166]}, {"55060555": [8, 39, 189, 255, 232, 175, 191]}, {"55060563": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55060575": [6, 145, 6]}, {"55060579": [7, 141, 9]}, {"55060583": [8, 1, 32, 248, 9]}, {"55060592": [143, 191]}, {"55060595": [16, 39, 189]}, {"55060599": [24, 143, 164]}, {"55060604": [143, 165]}, {"55060607": [4, 143, 166]}, {"55060611": [8, 3, 224]}, {"55060615": [8]}, {"55060620": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55060631": [16, 175, 163]}, {"55060635": [20, 175, 191]}, {"55060639": [24, 12, 16, 10, 48]}, {"55060648": [143, 162]}, {"55060651": [16, 143, 163]}, {"55060655": [20, 143, 191]}, {"55060659": [24, 39, 189]}, {"55060663": [32, 3, 224]}, {"55060667": [8]}, {"55060672": [39, 189, 255, 232, 175, 191]}, {"55060679": [16, 60, 8, 128, 64, 37, 8, 32]}, {"55060688": [173]}, {"55060692": [173]}, {"55060695": [4, 173]}, {"55060699": [8, 173]}, {"55060703": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55060719": [42]}, {"55060725": [9, 15, 195, 1, 33, 32, 38]}, {"55060733": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 106]}, {"55060748": [4, 64]}, {"55060751": [34]}, {"55060756": [52, 68]}, {"55060760": [12, 16, 10, 175]}, {"55060768": [16, 96]}, {"55060771": [12]}, {"55060776": [60, 8, 128, 64, 37, 8, 32]}, {"55060784": [140, 105]}, {"55060788": [173, 9]}, {"55060792": [140, 105]}, {"55060795": [4, 173, 9]}, {"55060799": [4, 140, 105]}, {"55060803": [8, 173, 9]}, {"55060807": [8, 52, 9]}, {"55060811": [1, 173, 9]}, {"55060815": [12, 144, 98]}, {"55060820": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55060836": [52, 1]}, {"55060839": [10, 21, 65]}, {"55060843": [6]}, {"55060848": [149, 42]}, {"55060851": [28, 49, 74, 240, 31]}, {"55060857": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55060867": [28, 129, 9, 4, 36, 5, 33]}, {"55060875": [2]}, {"55060881": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55060891": [16, 39, 189]}, {"55060895": [24, 3, 224]}, {"55060899": [8]}, {"55060904": [39, 189, 255, 232, 175, 191]}, {"55060911": [16, 12, 16, 10, 120]}, {"55060920": [36, 1, 255, 255, 16, 65]}, {"55060927": [4]}, {"55060932": [52, 68]}, {"55060936": [12, 16, 10, 162]}, {"55060944": [143, 191]}, {"55060947": [16, 39, 189]}, {"55060951": [24, 3, 224]}, {"55060955": [8]}, {"55060960": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55060971": [164, 52, 8]}, {"55060976": [52, 137]}, {"55060980": [148, 170]}, {"55060984": [52, 1]}, {"55060987": [10, 21, 65]}, {"55060991": [14]}, {"55060996": [148, 171]}, {"55060999": [28, 52, 1]}, {"55061003": [16, 20, 65]}, {"55061007": [8]}, {"55061012": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061023": [4]}, {"55061028": [36, 2, 255, 255, 16]}, {"55061035": [21]}, {"55061040": [52, 8]}, {"55061043": [1, 49, 105]}, {"55061047": [31, 52, 1]}, {"55061051": [21, 21, 65]}, {"55061055": [12]}, {"55061060": [52, 1]}, {"55061063": [62, 16, 129]}, {"55061067": [7]}, {"55061072": [52, 1]}, {"55061075": [66, 16, 129]}, {"55061079": [4]}, {"55061084": [36, 2, 255, 255, 16]}, {"55061091": [7]}, {"55061096": [52, 8]}, {"55061099": [2, 144, 169, 1, 65]}, {"55061105": [2, 18]}, {"55061109": [72, 16, 37]}, {"55061113": [2, 18]}, {"55061117": [73, 16, 37, 3, 224]}, {"55061123": [8]}, {"55061128": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061143": [4, 141, 9]}, {"55061148": [17, 32]}, {"55061151": [5]}, {"55061157": [9, 82, 2, 21, 68, 255, 250]}, {"55061168": [49, 34]}, {"55061171": [255, 3, 224]}, {"55061175": [8]}, {"55061180": [39, 189, 255, 224, 175, 176]}, {"55061187": [16, 175, 177]}, {"55061191": [20, 175, 191]}, {"55061195": [24, 52, 130]}, {"55061200": [52, 80]}, {"55061204": [38, 8, 255, 128, 5]}, {"55061211": [18]}, {"55061216": [60, 17, 128, 64, 38, 49, 32, 32, 52, 9]}, {"55061227": [16, 1, 9]}, {"55061231": [24]}, {"55061234": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061252": [142, 40]}, {"55061255": [12, 1]}, {"55061258": [248, 9]}, {"55061264": [20, 80, 255, 239]}, {"55061272": [54, 35]}, {"55061276": [16]}, {"55061279": [2]}, {"55061284": [52, 3]}, {"55061288": [143, 176]}, {"55061291": [16, 143, 177]}, {"55061295": [20, 143, 191]}, {"55061299": [24, 39, 189]}, {"55061303": [32, 3, 224]}, {"55061307": [8]}, {"55061312": [140, 136, 29, 44, 52, 9]}, {"55061319": [1]}, {"55061321": [9, 78]}, {"55061324": [1, 9, 16, 36, 16, 64]}, {"55061331": [36]}, {"55061336": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55061351": [164, 52, 1]}, {"55061355": [61, 17, 129]}, {"55061359": [10]}, {"55061365": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55061375": [25]}, {"55061380": [52, 13]}, {"55061383": [1, 161, 141, 29, 40, 37, 74]}, {"55061391": [3, 16]}, {"55061395": [9]}, {"55061400": [52, 12]}, {"55061403": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55061419": [14]}, {"55061424": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 1, 1, 10, 64, 33, 129, 8]}, {"55061460": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061472": [52, 2]}, {"55061476": [3, 224]}, {"55061479": [8]}, {"55061484": [60, 8, 128, 64, 37, 8, 28]}, {"55061492": [129, 8]}, {"55061496": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061508": [3, 224]}, {"55061511": [8]}, {"55061516": [175, 164]}, {"55061519": [104, 175, 165]}, {"55061523": [108, 175, 166]}, {"55061527": [112, 175, 167]}, {"55061531": [116, 39, 189, 255, 232, 175, 163]}, {"55061539": [16, 175, 191]}, {"55061543": [20, 60, 8, 128, 64, 37, 8, 32, 16, 129, 8]}, {"55061556": [17]}, {"55061559": [14]}, {"55061564": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55061575": [1, 165, 42]}, {"55061580": [60, 9, 128, 65, 52, 10]}, {"55061587": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 48]}, {"55061616": [143, 163]}, {"55061619": [16, 143, 191]}, {"55061623": [20, 39, 189]}, {"55061627": [24, 143, 164]}, {"55061631": [104, 143, 165]}, {"55061635": [108, 143, 166]}, {"55061639": [112, 143, 167]}, {"55061643": [116, 132, 110, 19, 196, 3, 224]}, {"55061651": [8]}, {"55061656": [147, 25]}, {"55061659": [116, 52, 1]}, {"55061663": [255, 23, 33]}, {"55061667": [2]}, {"55061672": [52, 25]}, {"55061675": [44, 3, 224]}, {"55061679": [8, 167, 185]}, {"55061683": [154, 147, 44]}, {"55061687": [116, 52, 1]}, {"55061691": [255, 21, 129]}, {"55061695": [2]}, {"55061700": [52, 12]}, {"55061703": [44, 3, 224]}, {"55061707": [8]}, {"55061712": [145, 174]}, {"55061715": [116, 52, 1]}, {"55061719": [255, 21, 193]}, {"55061723": [2]}, {"55061728": [52, 14]}, {"55061731": [44, 3, 224]}, {"55061735": [8, 167, 174]}, {"55061739": [154, 145, 207]}, {"55061743": [116, 52, 1]}, {"55061747": [255, 21, 225]}, {"55061751": [2]}, {"55061756": [52, 15]}, {"55061759": [44, 3, 224]}, {"55061763": [8, 167, 175]}, {"55061767": [154, 60, 8, 128, 64, 37, 8, 32, 20, 142, 9]}, {"55061779": [104, 173, 9]}, {"55061784": [142, 9]}, {"55061787": [108, 173, 9]}, {"55061791": [4, 150, 9]}, {"55061795": [112, 165, 9]}, {"55061799": [8, 150, 9]}, {"55061803": [156, 165, 9]}, {"55061807": [10, 3, 224]}, {"55061811": [8, 142, 14]}, {"55061815": [4, 39, 189, 255, 224, 175, 176]}, {"55061823": [16, 175, 177]}, {"55061827": [20, 175, 191]}, {"55061831": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 20, 142, 8]}, {"55061851": [4, 17]}, {"55061855": [5]}, {"55061860": [12, 16, 11, 120]}, {"55061868": [16]}, {"55061871": [3]}, {"55061876": [12, 16, 11, 139]}, {"55061884": [12, 16, 11, 107, 52, 4]}, {"55061892": [12, 16, 11, 107, 52, 4]}, {"55061899": [1, 12, 16, 11, 107, 52, 4]}, {"55061907": [2, 143, 176]}, {"55061911": [16, 143, 177]}, {"55061915": [20, 143, 191]}, {"55061919": [24, 39, 189]}, {"55061923": [32, 3, 224]}, {"55061927": [8]}, {"55061932": [2, 4, 64, 33, 145, 9]}, {"55061939": [108, 52, 1]}, {"55061943": [255, 17, 33]}, {"55061947": [7]}, {"55061952": [2, 9, 72, 33, 145, 41]}, {"55061959": [116, 52, 1]}, {"55061963": [44, 17, 33]}, {"55061967": [2]}, {"55061972": [161, 9]}, {"55061975": [105, 3, 224]}, {"55061979": [8]}, {"55061984": [39, 189, 255, 232, 175, 191]}, {"55061991": [16, 142, 40]}, {"55061996": [174, 8]}, {"55061999": [64, 142, 40]}, {"55062003": [4, 174, 8]}, {"55062007": [68, 150, 40]}, {"55062011": [8, 166, 8]}, {"55062015": [72, 162]}, {"55062018": [15, 51, 146, 8]}, {"55062023": [74, 52, 1]}, {"55062027": [255, 21, 1]}, {"55062031": [3]}, {"55062036": [12, 16, 11, 153]}, {"55062044": [143, 191]}, {"55062047": [16, 39, 189]}, {"55062051": [24, 3, 224]}, {"55062055": [8]}, {"55062060": [142, 8]}, {"55062063": [64, 174, 8]}, {"55062067": [104, 142, 8]}, {"55062071": [68, 174, 8]}, {"55062075": [108, 150, 8]}, {"55062079": [72, 166, 8]}, {"55062083": [112, 146, 8]}, {"55062087": [104, 52, 1]}, {"55062091": [255, 21, 1]}, {"55062095": [3]}, {"55062100": [52, 8]}, {"55062103": [1, 162, 8, 15, 51, 3, 224]}, {"55062111": [8]}, {"55062116": [39, 189, 255, 232, 175, 191]}, {"55062123": [16, 150, 8]}, {"55062127": [156, 49, 8]}, {"55062131": [64, 17]}, {"55062135": [5]}, {"55062140": [150, 8]}, {"55062143": [112, 49, 8, 255, 15, 53, 8]}, {"55062151": [48, 166, 8]}, {"55062155": [112, 146, 40]}, {"55062159": [1, 162, 8]}, {"55062163": [105, 150, 40]}, {"55062167": [2, 166, 8]}, {"55062171": [106, 142, 40]}, {"55062175": [4, 174, 8]}, {"55062179": [108, 12, 16, 11, 179, 52, 4]}, {"55062188": [12, 16, 11, 179, 52, 4]}, {"55062195": [1, 12, 16, 11, 179, 52, 4]}, {"55062203": [2, 143, 191]}, {"55062207": [16, 39, 189]}, {"55062211": [24, 3, 224]}, {"55062215": [8]}, {"55062220": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 47, 120, 145, 10]}, {"55062235": [108, 52, 1]}, {"55062239": [255, 17, 65]}, {"55062243": [5]}, {"55062248": [1, 42, 72, 33, 145, 41]}, {"55062256": [21, 32]}, {"55062259": [28]}, {"55062264": [60, 9, 128, 64, 37, 41, 47, 107, 37, 41]}, {"55062275": [1, 145, 42]}, {"55062280": [17, 64]}, {"55062283": [19]}, {"55062288": [2, 10, 88, 33, 145, 107]}, {"55062295": [116, 52, 1]}, {"55062299": [255, 17, 97, 255, 248]}, {"55062308": [146, 12]}, {"55062311": [108, 17, 138, 255, 245]}, {"55062320": [146, 12]}, {"55062323": [109, 17, 138, 255, 242]}, {"55062332": [146, 12]}, {"55062335": [110, 17, 138, 255, 239]}, {"55062344": [161, 11]}, {"55062347": [105, 161, 10]}, {"55062351": [108, 16]}, {"55062355": [4]}, {"55062360": [52, 9]}, {"55062363": [255, 161, 9]}, {"55062367": [105, 161, 9]}, {"55062371": [108, 3, 224]}, {"55062375": [8]}, {"55062380": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55062393": [1, 1, 1, 1, 1]}, {"55062399": [1, 1, 1, 1, 1]}, {"55062405": [1]}, {"55062407": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55062417": [51, 8, 33, 32, 15]}, {"55062423": [71, 21, 234]}, {"55062427": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062439": [164]}, {"55062441": [15, 122, 3, 20, 64]}, {"55062447": [5, 52, 2, 72, 48, 21, 226]}, {"55062455": [7]}, {"55062460": [36, 25]}, {"55062463": [3, 16]}, {"55062467": [4, 52, 2, 99, 17, 21, 226]}, {"55062475": [2]}, {"55062480": [36, 25]}, {"55062483": [3, 3, 224]}, {"55062487": [8]}, {"55062492": [141, 173, 138, 160, 52, 2, 128]}, {"55062500": [16, 77]}, {"55062503": [2]}, {"55062508": [16]}, {"55062511": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55062527": [1, 16, 64]}, {"55062531": [2]}, {"55062536": [16]}, {"55062539": [2, 52, 2]}, {"55062543": [1, 161, 226, 28, 191, 3, 224]}, {"55062551": [8]}, {"55062557": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062571": [164]}, {"55062573": [15, 122, 3, 20, 64]}, {"55062579": [5, 52, 2, 72, 48, 21, 226]}, {"55062587": [7]}, {"55062592": [36, 25]}, {"55062595": [3, 16]}, {"55062599": [4, 52, 2, 99, 17, 21, 226]}, {"55062607": [2]}, {"55062612": [36, 25]}, {"55062615": [3, 3, 224]}, {"55062619": [8]}, {"55062624": [162, 37]}, {"55062627": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55062639": [4, 142, 10]}, {"55062644": [17, 64]}, {"55062647": [11]}, {"55062653": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55062665": [24, 194, 2, 23]}, {"55062671": [3, 49, 89]}, {"55062675": [255, 129, 234]}, {"55062680": [3, 42, 200, 37, 8, 16, 12, 27, 161, 249]}, {"55062692": [3, 224]}, {"55062695": [8]}] \ No newline at end of file +[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 50]}, {"11325064": [12, 16, 11, 10, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 11, 101]}, {"11427312": [12, 16, 12, 14]}, {"11431496": [12, 16, 11, 18, 1, 15, 192, 33]}, {"11562028": [12, 16, 12, 47]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 12, 30]}, {"11882076": [12, 16, 11, 251]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 11, 68, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 11, 75, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 11, 82, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 11, 61, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 2]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 9, 207]}, {"12427480": [12, 16, 9, 236]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 9, 240]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 11, 26, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 14]}, {"12491480": [12, 16, 10, 23]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 10, 223]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 11, 89]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 140, 73]}, {"14149503": [164]}, {"14149512": [2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149856": [87]}, {"14149859": [15]}, {"14357459": [118]}, {"14624335": [118]}, {"14872723": [52]}, {"15506663": [122]}, {"55057408": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058464": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 104, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 132, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 172, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 212, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 252, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 36, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 64, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 92, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 120, 83, 65, 56, 67]}, {"55058613": [235, 21, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 55, 68]}, {"55058629": [235, 22, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 57, 69]}, {"55058645": [235, 23, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 63, 71]}, {"55058677": [244, 25, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 10, 6]}, {"55058757": [185, 1, 3, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 28]}, {"55058773": [185, 1, 4, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 29]}, {"55058789": [185, 1, 5, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 30]}, {"55058805": [185, 1, 6, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 42]}, {"55058821": [185, 1, 7, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 97]}, {"55058837": [185, 1, 10, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 98]}, {"55058853": [184, 2]}, {"55058856": [128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 99]}, {"55058869": [184, 2, 1, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 100]}, {"55058885": [184, 2, 2, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 101]}, {"55058901": [184, 2, 3, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 124]}, {"55058917": [184, 2, 4, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 125]}, {"55058933": [184, 2, 5, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 126]}, {"55058949": [184, 2, 6, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 127]}, {"55058965": [184, 2, 7, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 162]}, {"55058981": [184, 2, 8, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 135]}, {"55058997": [184, 2, 9, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 136]}, {"55059013": [200, 4]}, {"55059016": [128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 137]}, {"55059029": [200, 4, 1, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 138]}, {"55059045": [200, 4, 2, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 139]}, {"55059061": [200, 4, 3, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 140]}, {"55059077": [200, 4, 4, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 142]}, {"55059093": [200, 4, 5, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 143]}, {"55059109": [200, 4, 6, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 163]}, {"55059125": [200, 4, 7, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 165]}, {"55059141": [200, 4, 8, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 146]}, {"55059157": [200, 4, 9, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 2, 147]}, {"55059173": [170, 3, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 148]}, {"55059189": [170, 4, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 149]}, {"55059205": [170, 5, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 166]}, {"55059221": [170, 6, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 169]}, {"55059237": [170, 7, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 155]}, {"55059253": [170, 8, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 159]}, {"55059269": [170, 11, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 160]}, {"55059285": [170, 12, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 161]}, {"55059301": [170, 13, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 61, 67, 12]}, {"55059317": [248, 255, 255, 128, 64, 37, 236, 128, 64, 36, 96, 77, 131, 247, 85]}, {"55059333": [183, 255, 255, 128, 64, 37, 228, 128, 64, 36, 96, 77, 146, 219, 230]}, {"55059349": [216, 255, 255, 128, 64, 37, 228, 128, 64, 37, 172, 77, 147, 218, 230]}, {"55059365": [216, 255, 255, 128, 64, 37, 228, 128, 64, 37, 172, 77, 148, 217, 230]}, {"55059381": [216, 255, 255, 128, 64, 37, 228, 128, 64, 37, 172, 77, 142, 224, 50]}, {"55059397": [206, 255, 255, 128, 64, 37, 228, 128, 64, 37, 200, 77, 143, 224, 50]}, {"55059413": [206, 255, 255, 128, 64, 37, 228, 128, 64, 37, 200, 77, 144, 224, 50]}, {"55059429": [206, 255, 255, 128, 64, 37, 228, 128, 64, 37, 200, 77, 140, 238, 52]}, {"55059445": [187, 255, 255, 128, 64, 37, 228, 128, 64, 36, 96, 77, 141, 238, 52]}, {"55059461": [187, 255, 255, 128, 64, 37, 228, 128, 64, 36, 96, 79, 65, 19, 233]}, {"55059477": [189, 255, 255, 128, 64, 38, 124, 128, 64, 36, 96, 79, 65, 30, 228]}, {"55059493": [205, 255, 255, 128, 64, 38, 156, 128, 64, 37, 148, 79, 65, 31, 232]}, {"55059509": [205, 255, 255, 128, 64, 38, 188, 128, 64, 36, 96, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 38, 228, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 39, 44, 128, 64, 39, 16, 3, 224]}, {"55059555": [8, 52, 162]}, {"55059560": [144, 136]}, {"55059563": [125, 52, 1]}, {"55059567": [255, 17, 1]}, {"55059571": [2, 52, 2]}, {"55059575": [8, 52, 2]}, {"55059579": [9, 3, 224]}, {"55059583": [8]}, {"55059588": [144, 136]}, {"55059591": [163, 49, 8]}, {"55059595": [192, 17]}, {"55059599": [5, 52, 2]}, {"55059603": [84, 52, 1]}, {"55059607": [64, 17, 1]}, {"55059611": [2, 52, 2]}, {"55059615": [53, 52, 2]}, {"55059619": [54, 3, 224]}, {"55059623": [8]}, {"55059628": [144, 136]}, {"55059631": [163, 49, 8]}, {"55059635": [24, 17]}, {"55059639": [5, 52, 2]}, {"55059643": [50, 52, 1]}, {"55059647": [8, 17, 1]}, {"55059651": [2, 52, 2]}, {"55059655": [51, 52, 2]}, {"55059659": [52, 3, 224]}, {"55059663": [8]}, {"55059668": [144, 136]}, {"55059671": [163, 49, 8]}, {"55059675": [3, 17]}, {"55059679": [5, 52, 2]}, {"55059683": [4, 52, 1]}, {"55059687": [1, 17, 1]}, {"55059691": [2, 52, 2]}, {"55059695": [48, 52, 2]}, {"55059699": [49, 3, 224]}, {"55059703": [8]}, {"55059708": [144, 136]}, {"55059711": [162, 49, 8]}, {"55059715": [192, 17]}, {"55059719": [5, 52, 2]}, {"55059723": [5, 52, 1]}, {"55059727": [64, 17, 1]}, {"55059731": [2, 52, 2]}, {"55059735": [96, 52, 2]}, {"55059739": [123, 3, 224]}, {"55059743": [8]}, {"55059748": [144, 136]}, {"55059751": [162, 49, 8]}, {"55059755": [48, 17]}, {"55059759": [2, 52, 2]}, {"55059763": [69, 52, 2]}, {"55059767": [70, 3, 224]}, {"55059771": [8]}, {"55059776": [144, 136]}, {"55059779": [162, 49, 8]}, {"55059783": [6, 17]}, {"55059787": [2, 52, 2]}, {"55059791": [55, 52, 2]}, {"55059795": [56, 3, 224]}, {"55059799": [8]}, {"55059804": [144, 136]}, {"55059807": [161, 49, 8]}, {"55059811": [32, 17]}, {"55059815": [2, 52, 2]}, {"55059819": [121, 52, 2]}, {"55059823": [122, 3, 224]}, {"55059827": [8]}, {"55059832": [144, 136]}, {"55059835": [161, 49, 8]}, {"55059839": [4, 17]}, {"55059843": [2, 52, 2]}, {"55059847": [119, 52, 2]}, {"55059851": [120, 3, 224]}, {"55059855": [8]}, {"55059860": [144, 136]}, {"55059863": [50, 17]}, {"55059867": [2, 52, 2]}, {"55059871": [192, 52, 2]}, {"55059875": [193, 3, 224]}, {"55059879": [8]}, {"55059884": [144, 136]}, {"55059887": [163, 49, 8]}, {"55059891": [3, 17]}, {"55059895": [2, 52, 2]}, {"55059899": [77, 52, 162]}, {"55059904": [3, 224]}, {"55059907": [8]}, {"55059912": [144, 136]}, {"55059915": [163, 49, 8]}, {"55059919": [24, 17]}, {"55059923": [2, 52, 2]}, {"55059927": [77, 52, 162]}, {"55059932": [3, 224]}, {"55059935": [8]}, {"55059940": [3, 224]}, {"55059943": [8]}, {"55059948": [52, 8]}, {"55059951": [1, 160, 136]}, {"55059955": [62, 3, 224]}, {"55059959": [8]}, {"55059964": [36, 136]}, {"55059967": [134, 36, 9, 255, 255, 37, 41]}, {"55059975": [1, 52, 1]}, {"55059979": [3]}, {"55059981": [41, 8, 42, 20, 32]}, {"55059987": [7]}, {"55059992": [1, 9, 80, 33, 145, 75]}, {"55060000": [52, 1]}, {"55060003": [255, 21, 97, 255, 247]}, {"55060012": [161, 69]}, {"55060016": [3, 224]}, {"55060019": [8]}, {"55060024": [36, 136]}, {"55060027": [168, 1, 6, 64, 33, 145, 9]}, {"55060036": [1, 37, 72, 37, 161, 9]}, {"55060044": [3, 224]}, {"55060047": [8]}, {"55060052": [36, 136]}, {"55060055": [188, 1, 5, 64, 33, 129, 9]}, {"55060064": [5, 33]}, {"55060067": [2]}, {"55060072": [52, 9]}, {"55060076": [37, 41]}, {"55060079": [1, 161, 9]}, {"55060084": [3, 224]}, {"55060087": [8]}, {"55060092": [52, 8]}, {"55060095": [1, 160, 136]}, {"55060099": [61, 52, 8]}, {"55060103": [20, 160, 136]}, {"55060107": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060119": [8]}, {"55060124": [52, 8]}, {"55060127": [1, 160, 136]}, {"55060131": [50, 160, 136]}, {"55060135": [58, 52, 8]}, {"55060139": [48, 164, 136, 19, 244, 160, 136]}, {"55060147": [51, 3, 224]}, {"55060151": [8]}, {"55060156": [52, 8]}, {"55060159": [2, 160, 136]}, {"55060163": [50, 52, 8]}, {"55060167": [1, 160, 136]}, {"55060171": [58, 160, 136]}, {"55060175": [60, 52, 8]}, {"55060179": [96, 164, 136, 19, 244, 160, 136]}, {"55060187": [51, 3, 224]}, {"55060191": [8]}, {"55060196": [144, 136]}, {"55060199": [124, 52, 1]}, {"55060203": [255, 17, 1]}, {"55060207": [6, 52, 2]}, {"55060211": [107, 144, 136]}, {"55060215": [148, 45, 8]}, {"55060219": [6, 17]}, {"55060223": [2, 52, 2]}, {"55060227": [106, 52, 2]}, {"55060231": [3, 3, 224]}, {"55060235": [8]}, {"55060240": [144, 136]}, {"55060243": [123, 52, 1]}, {"55060247": [255, 17, 1]}, {"55060251": [2, 52, 162]}, {"55060256": [52, 2]}, {"55060259": [12, 3, 224]}, {"55060263": [8]}, {"55060268": [52, 8]}, {"55060271": [7, 160, 136]}, {"55060275": [123, 3, 224]}, {"55060279": [8]}, {"55060284": [48, 132]}, {"55060287": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060299": [140, 16, 129]}, {"55060303": [22, 145, 2]}, {"55060307": [117, 52, 1]}, {"55060311": [141, 16, 129]}, {"55060315": [19, 145, 2]}, {"55060319": [117, 16, 128]}, {"55060323": [17, 145, 2]}, {"55060327": [116, 52, 1]}, {"55060331": [138, 16, 129]}, {"55060335": [14, 145, 2]}, {"55060339": [116, 52, 1]}, {"55060343": [139, 16, 129]}, {"55060347": [11, 145, 2]}, {"55060351": [116, 52, 1]}, {"55060355": [88, 16, 129]}, {"55060359": [8, 52, 2]}, {"55060364": [52, 1]}, {"55060367": [120, 16, 129]}, {"55060371": [5, 52, 2]}, {"55060376": [52, 1]}, {"55060379": [121, 16, 129]}, {"55060383": [2, 52, 2]}, {"55060388": [52, 2]}, {"55060391": [255, 3, 224]}, {"55060395": [8]}, {"55060400": [143, 166]}, {"55060403": [48, 132, 197]}, {"55060407": [4, 8, 16, 9, 244]}, {"55060416": [143, 185]}, {"55060419": [44, 135, 37]}, {"55060423": [4, 8, 16, 9, 244]}, {"55060432": [60, 10, 128, 64, 37, 74, 32]}, {"55060440": [141, 75]}, {"55060443": [12, 17, 96]}, {"55060447": [2]}, {"55060452": [149, 69]}, {"55060455": [4, 60, 10, 128, 64, 37, 74, 32, 16, 161, 64]}, {"55060468": [60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060480": [3, 224]}, {"55060483": [8]}, {"55060488": [60, 8, 128, 64, 37, 8, 32]}, {"55060496": [141, 9]}, {"55060499": [12, 17, 32]}, {"55060503": [2]}, {"55060508": [129, 3]}, {"55060511": [2]}, {"55060513": [3, 15, 195]}, {"55060517": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55060531": [8]}, {"55060536": [144, 69]}, {"55060539": [3, 60, 8, 128, 64, 37, 8, 32]}, {"55060548": [141, 9]}, {"55060551": [12, 17, 32]}, {"55060555": [2]}, {"55060560": [145, 5]}, {"55060563": [3, 3, 224]}, {"55060567": [8]}, {"55060572": [143, 162]}, {"55060575": [36, 144, 69]}, {"55060580": [60, 8, 128, 64, 37, 8, 32]}, {"55060588": [141, 9]}, {"55060591": [12, 17, 32]}, {"55060595": [19]}, {"55060600": [145, 5]}, {"55060603": [1, 175, 164]}, {"55060608": [175, 165]}, {"55060611": [4, 175, 166]}, {"55060615": [8, 39, 189, 255, 232, 175, 191]}, {"55060623": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55060635": [6, 145, 6]}, {"55060639": [7, 141, 9]}, {"55060643": [8, 1, 32, 248, 9]}, {"55060652": [143, 191]}, {"55060655": [16, 39, 189]}, {"55060659": [24, 143, 164]}, {"55060664": [143, 165]}, {"55060667": [4, 143, 166]}, {"55060671": [8, 3, 224]}, {"55060675": [8]}, {"55060680": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55060691": [16, 175, 163]}, {"55060695": [20, 175, 191]}, {"55060699": [24, 12, 16, 10, 63]}, {"55060708": [143, 162]}, {"55060711": [16, 143, 163]}, {"55060715": [20, 143, 191]}, {"55060719": [24, 39, 189]}, {"55060723": [32, 3, 224]}, {"55060727": [8]}, {"55060732": [39, 189, 255, 232, 175, 191]}, {"55060739": [16, 60, 8, 128, 64, 37, 8, 32]}, {"55060748": [173]}, {"55060752": [173]}, {"55060755": [4, 173]}, {"55060759": [8, 173]}, {"55060763": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55060779": [42]}, {"55060785": [9, 15, 195, 1, 33, 32, 38]}, {"55060793": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 121]}, {"55060808": [4, 64]}, {"55060811": [34]}, {"55060816": [52, 68]}, {"55060820": [12, 16, 10, 190]}, {"55060828": [16, 96]}, {"55060831": [12]}, {"55060836": [60, 8, 128, 64, 37, 8, 32]}, {"55060844": [140, 105]}, {"55060848": [173, 9]}, {"55060852": [140, 105]}, {"55060855": [4, 173, 9]}, {"55060859": [4, 140, 105]}, {"55060863": [8, 173, 9]}, {"55060867": [8, 52, 9]}, {"55060871": [1, 173, 9]}, {"55060875": [12, 144, 98]}, {"55060880": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55060896": [52, 1]}, {"55060899": [10, 21, 65]}, {"55060903": [6]}, {"55060908": [149, 42]}, {"55060911": [28, 49, 74, 240, 31]}, {"55060917": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55060927": [28, 129, 9, 4, 36, 5, 33]}, {"55060935": [2]}, {"55060941": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55060951": [16, 39, 189]}, {"55060955": [24, 3, 224]}, {"55060959": [8]}, {"55060964": [39, 189, 255, 232, 175, 191]}, {"55060971": [16, 12, 16, 10, 135]}, {"55060980": [36, 1, 255, 255, 16, 65]}, {"55060987": [4]}, {"55060992": [52, 68]}, {"55060996": [12, 16, 10, 177]}, {"55061004": [143, 191]}, {"55061007": [16, 39, 189]}, {"55061011": [24, 3, 224]}, {"55061015": [8]}, {"55061020": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061031": [164, 52, 8]}, {"55061036": [52, 137]}, {"55061040": [148, 170]}, {"55061044": [52, 1]}, {"55061047": [10, 21, 65]}, {"55061051": [14]}, {"55061056": [148, 171]}, {"55061059": [28, 52, 1]}, {"55061063": [16, 20, 65]}, {"55061067": [8]}, {"55061072": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061083": [4]}, {"55061088": [36, 2, 255, 255, 16]}, {"55061095": [21]}, {"55061100": [52, 8]}, {"55061103": [1, 49, 105]}, {"55061107": [31, 52, 1]}, {"55061111": [21, 21, 65]}, {"55061115": [12]}, {"55061120": [52, 1]}, {"55061123": [62, 16, 129]}, {"55061127": [7]}, {"55061132": [52, 1]}, {"55061135": [66, 16, 129]}, {"55061139": [4]}, {"55061144": [36, 2, 255, 255, 16]}, {"55061151": [7]}, {"55061156": [52, 8]}, {"55061159": [2, 144, 169, 1, 65]}, {"55061165": [2, 18]}, {"55061169": [72, 16, 37]}, {"55061173": [2, 18]}, {"55061177": [73, 16, 37, 3, 224]}, {"55061183": [8]}, {"55061188": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061203": [4, 141, 9]}, {"55061208": [17, 32]}, {"55061211": [5]}, {"55061217": [9, 82, 2, 21, 68, 255, 250]}, {"55061228": [49, 34]}, {"55061231": [255, 3, 224]}, {"55061235": [8]}, {"55061240": [39, 189, 255, 224, 175, 176]}, {"55061247": [16, 175, 177]}, {"55061251": [20, 175, 191]}, {"55061255": [24, 52, 130]}, {"55061260": [52, 80]}, {"55061264": [38, 8, 255, 128, 5]}, {"55061271": [18]}, {"55061276": [60, 17, 128, 64, 38, 49, 32, 32, 52, 9]}, {"55061287": [16, 1, 9]}, {"55061291": [24]}, {"55061294": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061312": [142, 40]}, {"55061315": [12, 1]}, {"55061318": [248, 9]}, {"55061324": [20, 80, 255, 239]}, {"55061332": [54, 35]}, {"55061336": [16]}, {"55061339": [2]}, {"55061344": [52, 3]}, {"55061348": [143, 176]}, {"55061351": [16, 143, 177]}, {"55061355": [20, 143, 191]}, {"55061359": [24, 39, 189]}, {"55061363": [32, 3, 224]}, {"55061367": [8]}, {"55061372": [140, 136, 29, 44, 52, 9]}, {"55061379": [1]}, {"55061381": [9, 78]}, {"55061384": [1, 9, 16, 36, 16, 64]}, {"55061391": [36]}, {"55061396": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55061411": [164, 52, 1]}, {"55061415": [61, 17, 129]}, {"55061419": [10]}, {"55061425": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55061435": [25]}, {"55061440": [52, 13]}, {"55061443": [1, 161, 141, 29, 40, 37, 74]}, {"55061451": [3, 16]}, {"55061455": [9]}, {"55061460": [52, 12]}, {"55061463": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55061479": [14]}, {"55061484": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 2, 1, 10, 64, 33, 129, 8]}, {"55061520": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061532": [52, 2]}, {"55061536": [3, 224]}, {"55061539": [8]}, {"55061544": [60, 8, 128, 64, 37, 8, 28]}, {"55061552": [129, 8]}, {"55061556": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061568": [3, 224]}, {"55061571": [8]}, {"55061576": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55061588": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061600": [3, 224]}, {"55061603": [8]}, {"55061608": [175, 164]}, {"55061611": [104, 175, 165]}, {"55061615": [108, 175, 166]}, {"55061619": [112, 175, 167]}, {"55061623": [116, 39, 189, 255, 232, 175, 163]}, {"55061631": [16, 175, 191]}, {"55061635": [20, 60, 8, 128, 64, 37, 8, 32, 16, 129, 8]}, {"55061648": [17]}, {"55061651": [14]}, {"55061656": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55061667": [1, 165, 42]}, {"55061672": [60, 9, 128, 65, 52, 10]}, {"55061679": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 63]}, {"55061708": [143, 163]}, {"55061711": [16, 143, 191]}, {"55061715": [20, 39, 189]}, {"55061719": [24, 143, 164]}, {"55061723": [104, 143, 165]}, {"55061727": [108, 143, 166]}, {"55061731": [112, 143, 167]}, {"55061735": [116, 132, 110, 19, 196, 3, 224]}, {"55061743": [8]}, {"55061748": [147, 25]}, {"55061751": [116, 52, 1]}, {"55061755": [255, 23, 33]}, {"55061759": [2]}, {"55061764": [52, 25]}, {"55061767": [44, 3, 224]}, {"55061771": [8, 167, 185]}, {"55061775": [154, 147, 44]}, {"55061779": [116, 52, 1]}, {"55061783": [255, 21, 129]}, {"55061787": [2]}, {"55061792": [52, 12]}, {"55061795": [44, 3, 224]}, {"55061799": [8]}, {"55061804": [145, 174]}, {"55061807": [116, 52, 1]}, {"55061811": [255, 21, 193]}, {"55061815": [2]}, {"55061820": [52, 14]}, {"55061823": [44, 3, 224]}, {"55061827": [8, 167, 174]}, {"55061831": [154, 145, 207]}, {"55061835": [116, 52, 1]}, {"55061839": [255, 21, 225]}, {"55061843": [2]}, {"55061848": [52, 15]}, {"55061851": [44, 3, 224]}, {"55061855": [8, 167, 175]}, {"55061859": [154, 60, 8, 128, 64, 37, 8, 32, 20, 142, 9]}, {"55061871": [104, 173, 9]}, {"55061876": [142, 9]}, {"55061879": [108, 173, 9]}, {"55061883": [4, 150, 9]}, {"55061887": [112, 165, 9]}, {"55061891": [8, 150, 9]}, {"55061895": [156, 165, 9]}, {"55061899": [10, 3, 224]}, {"55061903": [8, 142, 14]}, {"55061907": [4, 39, 189, 255, 224, 175, 176]}, {"55061915": [16, 175, 177]}, {"55061919": [20, 175, 191]}, {"55061923": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 20, 142, 8]}, {"55061943": [4, 17]}, {"55061947": [5]}, {"55061952": [12, 16, 11, 143]}, {"55061960": [16]}, {"55061963": [3]}, {"55061968": [12, 16, 11, 162]}, {"55061976": [12, 16, 11, 130, 52, 4]}, {"55061984": [12, 16, 11, 130, 52, 4]}, {"55061991": [1, 12, 16, 11, 130, 52, 4]}, {"55061999": [2, 143, 176]}, {"55062003": [16, 143, 177]}, {"55062007": [20, 143, 191]}, {"55062011": [24, 39, 189]}, {"55062015": [32, 3, 224]}, {"55062019": [8]}, {"55062024": [2, 4, 64, 33, 145, 9]}, {"55062031": [108, 52, 1]}, {"55062035": [255, 17, 33]}, {"55062039": [7]}, {"55062044": [2, 9, 72, 33, 145, 41]}, {"55062051": [116, 52, 1]}, {"55062055": [44, 17, 33]}, {"55062059": [2]}, {"55062064": [161, 9]}, {"55062067": [105, 3, 224]}, {"55062071": [8]}, {"55062076": [39, 189, 255, 232, 175, 191]}, {"55062083": [16, 142, 40]}, {"55062088": [174, 8]}, {"55062091": [64, 142, 40]}, {"55062095": [4, 174, 8]}, {"55062099": [68, 150, 40]}, {"55062103": [8, 166, 8]}, {"55062107": [72, 162]}, {"55062110": [15, 51, 146, 8]}, {"55062115": [74, 52, 1]}, {"55062119": [255, 21, 1]}, {"55062123": [3]}, {"55062128": [12, 16, 11, 176]}, {"55062136": [143, 191]}, {"55062139": [16, 39, 189]}, {"55062143": [24, 3, 224]}, {"55062147": [8]}, {"55062152": [142, 8]}, {"55062155": [64, 174, 8]}, {"55062159": [104, 142, 8]}, {"55062163": [68, 174, 8]}, {"55062167": [108, 150, 8]}, {"55062171": [72, 166, 8]}, {"55062175": [112, 146, 8]}, {"55062179": [104, 52, 1]}, {"55062183": [255, 21, 1]}, {"55062187": [3]}, {"55062192": [52, 8]}, {"55062195": [1, 162, 8, 15, 51, 3, 224]}, {"55062203": [8]}, {"55062208": [39, 189, 255, 232, 175, 191]}, {"55062215": [16, 150, 8]}, {"55062219": [156, 49, 8]}, {"55062223": [64, 17]}, {"55062227": [5]}, {"55062232": [150, 8]}, {"55062235": [112, 49, 8, 255, 15, 53, 8]}, {"55062243": [48, 166, 8]}, {"55062247": [112, 146, 40]}, {"55062251": [1, 162, 8]}, {"55062255": [105, 150, 40]}, {"55062259": [2, 166, 8]}, {"55062263": [106, 142, 40]}, {"55062267": [4, 174, 8]}, {"55062271": [108, 12, 16, 11, 202, 52, 4]}, {"55062280": [12, 16, 11, 202, 52, 4]}, {"55062287": [1, 12, 16, 11, 202, 52, 4]}, {"55062295": [2, 143, 191]}, {"55062299": [16, 39, 189]}, {"55062303": [24, 3, 224]}, {"55062307": [8]}, {"55062312": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 47, 212, 145, 10]}, {"55062327": [108, 52, 1]}, {"55062331": [255, 17, 65]}, {"55062335": [5]}, {"55062340": [1, 42, 72, 33, 145, 41]}, {"55062348": [21, 32]}, {"55062351": [28]}, {"55062356": [60, 9, 128, 64, 37, 41, 47, 199, 37, 41]}, {"55062367": [1, 145, 42]}, {"55062372": [17, 64]}, {"55062375": [19]}, {"55062380": [2, 10, 88, 33, 145, 107]}, {"55062387": [116, 52, 1]}, {"55062391": [255, 17, 97, 255, 248]}, {"55062400": [146, 12]}, {"55062403": [108, 17, 138, 255, 245]}, {"55062412": [146, 12]}, {"55062415": [109, 17, 138, 255, 242]}, {"55062424": [146, 12]}, {"55062427": [110, 17, 138, 255, 239]}, {"55062436": [161, 11]}, {"55062439": [105, 161, 10]}, {"55062443": [108, 16]}, {"55062447": [4]}, {"55062452": [52, 9]}, {"55062455": [255, 161, 9]}, {"55062459": [105, 161, 9]}, {"55062463": [108, 3, 224]}, {"55062467": [8]}, {"55062472": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55062485": [1, 1, 1, 1, 1]}, {"55062491": [1, 1, 1, 1, 1]}, {"55062497": [1]}, {"55062499": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55062509": [51, 8, 33, 32, 15]}, {"55062515": [71, 21, 234]}, {"55062519": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062531": [164]}, {"55062533": [15, 122, 3, 20, 64]}, {"55062539": [5, 52, 2, 72, 48, 21, 226]}, {"55062547": [7]}, {"55062552": [36, 25]}, {"55062555": [3, 16]}, {"55062559": [4, 52, 2, 99, 17, 21, 226]}, {"55062567": [2]}, {"55062572": [36, 25]}, {"55062575": [3, 3, 224]}, {"55062579": [8]}, {"55062584": [141, 173, 138, 160, 52, 2, 128]}, {"55062592": [16, 77]}, {"55062595": [2]}, {"55062600": [16]}, {"55062603": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55062619": [1, 16, 64]}, {"55062623": [2]}, {"55062628": [16]}, {"55062631": [2, 52, 2]}, {"55062635": [1, 161, 226, 28, 191, 3, 224]}, {"55062643": [8]}, {"55062649": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062663": [164]}, {"55062665": [15, 122, 3, 20, 64]}, {"55062671": [5, 52, 2, 72, 48, 21, 226]}, {"55062679": [7]}, {"55062684": [36, 25]}, {"55062687": [3, 16]}, {"55062691": [4, 52, 2, 99, 17, 21, 226]}, {"55062699": [2]}, {"55062704": [36, 25]}, {"55062707": [3, 3, 224]}, {"55062711": [8]}, {"55062716": [162, 37]}, {"55062719": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55062731": [4, 142, 10]}, {"55062736": [17, 64]}, {"55062739": [11]}, {"55062745": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55062757": [24, 194, 2, 23]}, {"55062763": [3, 49, 89]}, {"55062767": [255, 129, 234]}, {"55062772": [3, 42, 200, 37, 8, 16, 12, 50, 161, 249]}, {"55062784": [3, 224]}, {"55062787": [8]}] \ No newline at end of file diff --git a/version.py b/version.py index 52efb891b..16930ccba 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.11.5 f.LUM' \ No newline at end of file +__version__ = '2.11.6 f.LUM' \ No newline at end of file From a70977f7bf6c5b9129e7ca5b9af194b08d92e459 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Wed, 11 Jul 2018 18:44:40 -0400 Subject: [PATCH 141/755] Fixed some rules not checking for ocarina --- BaseClasses.py | 5 ++++- Rules.py | 16 ++++++++-------- version.py | 2 +- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index c7c5eb428..b73573dae 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -311,8 +311,11 @@ def item_count(self, item): def is_adult(self): return self.has('Master Sword') + def has_ocarina(self): + return (self.has('Ocarina') or self.has("Fairy Ocarina") or self.has("Ocarina of Time")) + def can_play(self, song): - return (self.has('Ocarina') or self.has("Fairy Ocarina") or self.has("Ocarina of Time")) and self.has(song) + return self.has_ocarina() and self.has(song) def has_bombchus(self): return (self.world.bombchus_in_logic and \ diff --git a/Rules.py b/Rules.py index 50afa7716..f8437097c 100644 --- a/Rules.py +++ b/Rules.py @@ -158,7 +158,7 @@ def global_rules(world): set_rule(world.get_location('Song from Ocarina of Time'), lambda state: state.has('Kokiri Emerald') and state.has('Goron Ruby') and state.has('Zora Sapphire') and state.guarantee_hint()) set_rule(world.get_entrance('Door of Time'), lambda state: state.can_play('Song of Time') or world.open_door_of_time) set_rule(world.get_location('Talons Chickens'), lambda state: state.has('Zeldas Letter')) - set_rule(world.get_location('Song from Malon'), lambda state: state.has('Zeldas Letter')) + set_rule(world.get_location('Song from Malon'), lambda state: state.has('Zeldas Letter') and state.has_ocarina()) set_rule(world.get_location('Epona'), lambda state: state.can_play('Eponas Song') and state.is_adult()) set_rule(world.get_entrance('Adult Forest Warp Pad'), lambda state: state.can_play('Minuet of Forest') and state.is_adult()) set_rule(world.get_entrance('Child Forest Warp Pad'), lambda state: state.can_play('Minuet of Forest')) @@ -182,18 +182,18 @@ def global_rules(world): set_rule(world.get_entrance('Dampes Grave'), lambda state: state.is_adult()) set_rule(world.get_location('Dampe Race Freestanding PoH'), lambda state: not world.logic_no_second_dampe_race) set_rule(world.get_location('Graveyard Freestanding PoH'), lambda state: state.is_adult() and (state.has('Magic Bean') or state.has('Progressive Hookshot', 2))) - set_rule(world.get_location('Song at Windmill'), lambda state: state.is_adult()) + set_rule(world.get_location('Song at Windmill'), lambda state: state.is_adult() and state.has_ocarina()) set_rule(world.get_location('Windmill Freestanding PoH'), lambda state: (state.is_adult() and ( world.logic_windmill_hp or state.can_play('Song of Time') )) or state.has('Boomerang')) set_rule(world.get_entrance('Temple Warp Pad'), lambda state: state.can_play('Prelude of Light')) set_rule(world.get_location('Sheik at Temple'), lambda state: state.has('Forest Medallion') and state.is_adult()) set_rule(world.get_location('Diving in the Lab'), lambda state: state.has('Progressive Scale', 2)) set_rule(world.get_location('Child Fishing'), lambda state: (not world.logic_no_child_fishing) and state.has('Kokiri Sword')) - set_rule(world.get_location('Adult Fishing'), lambda state: (not world.logic_no_adult_fishing) and (state.is_adult() and (state.has('Progressive Hookshot') or state.has('Magic Bean')))) - set_rule(world.get_location('Lake Hylia Freestanding PoH'), lambda state: state.is_adult() and (state.has('Progressive Hookshot') or state.has('Magic Bean'))) - set_rule(world.get_location('Lake Hylia Sun'), lambda state: state.has('Progressive Hookshot', 2) and state.has('Bow') and state.is_adult()) + set_rule(world.get_location('Adult Fishing'), lambda state: (not world.logic_no_adult_fishing) and (state.is_adult() and ((state.has('Progressive Hookshot') and state.has_ocarina()) or state.has('Magic Bean')))) + set_rule(world.get_location('Lake Hylia Freestanding PoH'), lambda state: state.is_adult() and ((state.has('Progressive Hookshot') and state.has_ocarina()) or state.has('Magic Bean'))) + set_rule(world.get_location('Lake Hylia Sun'), lambda state: ((state.has('Progressive Hookshot', 2) and state.has_ocarina()) or state.can_reach('Morpha')) and state.has('Bow') and state.is_adult()) set_rule(world.get_entrance('Crater Hover Boots'), lambda state: state.is_adult() and state.has('Hover Boots')) set_rule(world.get_entrance('Crater Ascent'), lambda state: state.is_adult() and state.has_GoronTunic()) - set_rule(world.get_entrance('Crater Scarecrow'), lambda state: state.is_adult() and state.has('Progressive Hookshot', 2) and state.has_GoronTunic()) + set_rule(world.get_entrance('Crater Scarecrow'), lambda state: state.is_adult() and state.has_ocarina() and state.has('Progressive Hookshot', 2) and state.has_GoronTunic()) set_rule(world.get_entrance('Crater Bridge'), lambda state: state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot'))) set_rule(world.get_entrance('Crater Bridge Reverse'), lambda state: state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot'))) set_rule(world.get_entrance('Crater Warp Pad'), lambda state: state.can_play('Bolero of Fire')) @@ -209,7 +209,7 @@ def global_rules(world): set_rule(world.get_location('Fire Temple Map Chest'), lambda state: state.has('Small Key (Fire Temple)', 5) or (state.has('Small Key (Fire Temple)', 4) and state.is_adult() and state.has('Bow'))) set_rule(world.get_location('Fire Temple Boulder Maze Upper Chest'), lambda state: state.has('Small Key (Fire Temple)', 5)) set_rule(world.get_location('Fire Temple Boulder Maze Bombable Pit'), lambda state: state.has('Small Key (Fire Temple)', 5) and state.has_explosives()) - set_rule(world.get_location('Fire Temple Scarecrow Chest'), lambda state: state.has('Small Key (Fire Temple)', 5) and state.has('Progressive Hookshot') and state.is_adult()) + set_rule(world.get_location('Fire Temple Scarecrow Chest'), lambda state: state.has_ocarina() and state.has('Small Key (Fire Temple)', 5) and state.has('Progressive Hookshot') and state.is_adult()) set_rule(world.get_location('Fire Temple Compass Chest'), lambda state: state.has('Small Key (Fire Temple)', 6)) set_rule(world.get_location('Fire Temple Highest Goron Chest'), lambda state: state.can_play('Song of Time') and state.has('Hammer') and state.is_adult()) set_rule(world.get_location('Fire Temple Megaton Hammer Chest'), lambda state: state.has_explosives()) @@ -257,7 +257,7 @@ def global_rules(world): set_rule(world.get_entrance('Colossus Fairy'), lambda state: state.has_explosives()) set_rule(world.get_location('Colossus Freestanding PoH'), lambda state: state.can_play('Requiem of Spirit') and state.has('Magic Bean') and state.is_adult()) set_rule(world.get_location('Desert Colossus Fairy Reward'), lambda state: state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('Gerudo Fortress Rooftop Chest'), lambda state: (state.has('Hover Boots') or state.has('Progressive Hookshot')) and state.is_adult()) + set_rule(world.get_location('Gerudo Fortress Rooftop Chest'), lambda state: (state.has('Hover Boots') or (state.has('Progressive Hookshot') and state.has_ocarina()) or (state.has('Progressive Hookshot', 2))) and state.is_adult()) set_rule(world.get_location('Horseback Archery 1000 Points'), lambda state: state.has('Gerudo Membership Card') and state.has('Epona') and state.has('Bow') and state.is_adult()) set_rule(world.get_location('Horseback Archery 1500 Points'), lambda state: (not world.logic_no_1500_archery) and (state.has('Gerudo Membership Card') and state.has('Epona') and state.has('Bow') and state.is_adult())) set_rule(world.get_location('Haunted Wasteland Structure Chest'), lambda state: state.has_fire_source()) diff --git a/version.py b/version.py index 16930ccba..8639ab39a 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.11.6 f.LUM' \ No newline at end of file +__version__ = '2.11.7 f.LUM' \ No newline at end of file From b6df14506ecaec479033fbc74db5d114c86c040f Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Wed, 11 Jul 2018 19:18:48 -0400 Subject: [PATCH 142/755] Updated Readme --- README.md | 5 +++++ version.py | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 4314ec3df..f5fca9fa6 100644 --- a/README.md +++ b/README.md @@ -66,6 +66,11 @@ Regardless of whether of not you use this option, Malon has been sped up in the - The condition for Malon to move to Lon Lon Ranch is now obtaining her item and Talon fleeing the castle (instead of just Talon fleeing the castle) - At Lon Lon Ranch, you no longer need to speak to Malon multiple times before she will teach you her song. You can simply walk up to her and pull out your Ocarina. +## Fairy Ocarina + +The Fairy Ocarina can be shuffled into the item pool with `shuffle_fairy_ocarina`. This means that Saria will give a random item and that you must find the Ocarina before being able to play any songs. The Ocarina of Time will still always be at its usual location. + + ## Keysanity Dungeon items (maps, compasses, small keys, boss keys) are shuffled into the item pool at large. diff --git a/version.py b/version.py index 8639ab39a..38b650d03 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.11.7 f.LUM' \ No newline at end of file +__version__ = '2.11.8 f.LUM' \ No newline at end of file From 971d5800f4c16b3a4e62c0ff4f71f0132dae3eb6 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Wed, 11 Jul 2018 23:13:36 -0400 Subject: [PATCH 143/755] Prevent Biggoron Sword from being at bombchu bowling --- Rules.py | 8 +++++++- version.py | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Rules.py b/Rules.py index f8437097c..be459eb7c 100644 --- a/Rules.py +++ b/Rules.py @@ -424,4 +424,10 @@ def global_rules(world): for location in world.get_locations(): if location.type != 'Chest': - forbid_item(location, 'Ice Trap') \ No newline at end of file + forbid_item(location, 'Ice Trap') + + # Biggoron Sword at bombchu bowling seems to lead to a soft lock. + # Unsure what causes this, but I'm leaving this to original devs. + # For now just avoiding this combination, since BigSword is not that important. + forbid_item(world.get_location('Bombchu Bowling Bomb Bag'), 'Biggoron Sword') + forbid_item(world.get_location('Bombchu Bowling Piece of Heart'), 'Biggoron Sword') diff --git a/version.py b/version.py index 38b650d03..40ea6f468 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.11.8 f.LUM' \ No newline at end of file +__version__ = '2.11.9 f.LUM' \ No newline at end of file From 57d54dd864efd3ddb5ad32822b8662a15d2e0c4c Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Wed, 11 Jul 2018 22:56:29 -0500 Subject: [PATCH 144/755] Fixed a typo in hints. --- HintList.py | 2 +- version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/HintList.py b/HintList.py index c2b97fa69..a97c760ce 100644 --- a/HintList.py +++ b/HintList.py @@ -214,7 +214,7 @@ def getHintGroup(string, world): '1040': ("There's a reason why I am special&inquisitor!", 'junkHint'), '1041': ("You were almost a @&sandwich.", 'junkHint'), '1042': ("I'm a helpful hint Gossip Stone!^See I'm helping.", 'junkHint'), - '1043': ("Dear @, please come to the castle.&I've baked a cake for you.&&Yours truly, pricess Zelda.", 'junkHint'), + '1043': ("Dear @, please come to the&castle. I've baked a cake for you.&&Yours truly, princess Zelda.", 'junkHint'), '1044': ("I like shorts! They're comfy and&easy to wear!", 'junkHint'), '1044': ("They say all toasters toast toast.", 'junkHint'), #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box diff --git a/version.py b/version.py index 40ea6f468..41b411780 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.11.9 f.LUM' \ No newline at end of file +__version__ = '2.11.10 f.LUM' \ No newline at end of file From a9ebae5e5d1ec5462d03732bb3773577a03dc03e Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Thu, 12 Jul 2018 00:25:39 -0400 Subject: [PATCH 145/755] Fix potential error in fire arrow location logic --- Rules.py | 2 +- version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Rules.py b/Rules.py index be459eb7c..d1bcd323f 100644 --- a/Rules.py +++ b/Rules.py @@ -190,7 +190,7 @@ def global_rules(world): set_rule(world.get_location('Child Fishing'), lambda state: (not world.logic_no_child_fishing) and state.has('Kokiri Sword')) set_rule(world.get_location('Adult Fishing'), lambda state: (not world.logic_no_adult_fishing) and (state.is_adult() and ((state.has('Progressive Hookshot') and state.has_ocarina()) or state.has('Magic Bean')))) set_rule(world.get_location('Lake Hylia Freestanding PoH'), lambda state: state.is_adult() and ((state.has('Progressive Hookshot') and state.has_ocarina()) or state.has('Magic Bean'))) - set_rule(world.get_location('Lake Hylia Sun'), lambda state: ((state.has('Progressive Hookshot', 2) and state.has_ocarina()) or state.can_reach('Morpha')) and state.has('Bow') and state.is_adult()) + set_rule(world.get_location('Lake Hylia Sun'), lambda state: ((state.has('Progressive Hookshot', 2) and state.has_ocarina()) or state.can_reach(world.get_location('Morpha'))) and state.has('Bow') and state.is_adult()) set_rule(world.get_entrance('Crater Hover Boots'), lambda state: state.is_adult() and state.has('Hover Boots')) set_rule(world.get_entrance('Crater Ascent'), lambda state: state.is_adult() and state.has_GoronTunic()) set_rule(world.get_entrance('Crater Scarecrow'), lambda state: state.is_adult() and state.has_ocarina() and state.has('Progressive Hookshot', 2) and state.has_GoronTunic()) diff --git a/version.py b/version.py index 41b411780..33eb3a272 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.11.10 f.LUM' \ No newline at end of file +__version__ = '2.11.11 f.LUM' \ No newline at end of file From 159709d9c1c32d2dd08b321aeee3b35990553337 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Thu, 12 Jul 2018 17:02:48 -0400 Subject: [PATCH 146/755] Fix epona not spawning when you have the song if race is skipped --- Rom.py | 2 +- version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Rom.py b/Rom.py index 8fcae68cf..72c0ff711 100644 --- a/Rom.py +++ b/Rom.py @@ -977,7 +977,7 @@ def write_byte_to_save(offset, value): # Skip Epona race if world.no_epona_race: write_bits_to_save(0x0ED6, 0x01) # "Obtained Epona" - rom.write_int32(0xAD065C, 0x24020000) # 0C00A22D Don't auto spawn Epona in Hyrule Field + rom.write_bytes(0xAD065C, [0x92, 0x42, 0x00, 0xA6, 0x30, 0x42, 0x00, 0x20]) # Epona spawning checks for Song # skip castle guard stealth sequence if world.no_guard_stealth: diff --git a/version.py b/version.py index 33eb3a272..24c12ed39 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.11.11 f.LUM' \ No newline at end of file +__version__ = '2.11.12 f.LUM' \ No newline at end of file From 683b386e7681a66581b4a05cc83ef6762c9e30f1 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Thu, 12 Jul 2018 20:07:02 -0400 Subject: [PATCH 147/755] Fix seetings with int values for command line parser --- Settings.py | 18 ++++++++++-------- version.py | 2 +- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/Settings.py b/Settings.py index c4c595b1e..bfe606b8d 100644 --- a/Settings.py +++ b/Settings.py @@ -299,14 +299,15 @@ def __init__(self, settings_dict): }), Setting_Info('trials', int, 3, True, { - 'default': '6', - 'const': '6', + 'default': 6, + 'const': 6, 'nargs': '?', - 'choices': ['0', '1', '2', '3', '4', '5', '6'], + 'choices': [0, 1, 2, 3, 4, 5, 6], 'help': '''\ Select how many trials must be cleared to enter Ganon's Tower. The trials you must complete will be selected randomly. - ''' + ''', + 'type': int }, { 'text': 'Number of Ganon\'s Trials', @@ -483,13 +484,14 @@ def __init__(self, settings_dict): }), Setting_Info('logic_skulltulas', int, 3, True, { - 'default': '50', - 'const': 'always', + 'default': 50, + 'const': 50, 'nargs': '?', - 'choices': ['0', '10', '20', '30', '40', '50'], + 'choices': [0, 10, 20, 30, 40, 50], 'help': '''\ Choose the maximum number of gold skulltula tokens you will be expected to collect. - ''' + ''', + 'type': int }, { 'text': 'Maximum expected skulltula tokens', diff --git a/version.py b/version.py index 24c12ed39..45d0fa56f 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.11.12 f.LUM' \ No newline at end of file +__version__ = '2.11.13 f.LUM' \ No newline at end of file From 53828a461de9f1c70ea04e5054c5155873916ca8 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Thu, 12 Jul 2018 21:14:25 -0500 Subject: [PATCH 148/755] Added sanity checking for the size of message id and text tables to make sure they don't get too big. --- HintList.py | 1 + Messages.py | 8 ++++++++ version.py | 2 +- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/HintList.py b/HintList.py index a97c760ce..7b3372f92 100644 --- a/HintList.py +++ b/HintList.py @@ -217,6 +217,7 @@ def getHintGroup(string, world): '1043': ("Dear @, please come to the&castle. I've baked a cake for you.&&Yours truly, princess Zelda.", 'junkHint'), '1044': ("I like shorts! They're comfy and&easy to wear!", 'junkHint'), '1044': ("They say all toasters toast toast.", 'junkHint'), + '1045': ("They say that Okami is&the best Zelda game.", 'junkHint'), #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box 'Deku Tree': ("an ancient tree", 'dungeon'), 'Dodongos Cavern': ("an immense cavern", 'dungeon'), diff --git a/Messages.py b/Messages.py index aed980675..47ba2ffd3 100644 --- a/Messages.py +++ b/Messages.py @@ -5,6 +5,9 @@ TABLE_START = 0xB849EC TEXT_START = 0x92D000 +TABLE_SIZE_LIMIT = 0x43A8 +TEXT_SIZE_LIMIT = 0x38130 + SHOP_ITEM_START = 0xC022CC # name of type, followed by number of additional bytes to read, follwed by a function that prints the code @@ -498,6 +501,9 @@ def repack_messages(rom, messages, permutation=None, always_allow_skip=True, spe offset = new_message.write(rom, old_index, offset, True, old_message.ending, always_allow_skip, speed_up_text) new_message.id = remember_id + if offset > TEXT_SIZE_LIMIT: + raise(TypeError("Message Text table is too large: 0x" + "{:x}".format(offset) + " written / 0x" + "{:x}".format(TEXT_SIZE_LIMIT) + " allowed.")) + # end the table table_index = len(messages) entry = bytes([0xFF, 0xFD, 0x00, 0x00, 0x07]) + int_to_bytes(offset, 3) @@ -505,6 +511,8 @@ def repack_messages(rom, messages, permutation=None, always_allow_skip=True, spe rom.write_bytes(entry_offset, entry) table_index += 1 entry_offset = TABLE_START + 8 * table_index + if 8 * (table_index + 1) > TABLE_SIZE_LIMIT: + raise(TypeError("Message ID table is too large: 0x" + "{:x}".format(8 * (table_index + 1)) + " written / 0x" + "{:x}".format(TABLE_SIZE_LIMIT) + " allowed.")) rom.write_bytes(entry_offset, [0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]) # shuffles the messages in the game, making sure to keep various message types in their own group diff --git a/version.py b/version.py index 33eb3a272..24c12ed39 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.11.11 f.LUM' \ No newline at end of file +__version__ = '2.11.12 f.LUM' \ No newline at end of file From abf2a7813d4c5b337a27f93e9d500949ef9562e1 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Thu, 12 Jul 2018 23:05:37 -0400 Subject: [PATCH 149/755] Added setting dependency to disable some fields conditionally --- Gui.py | 39 +++++++++++++++++++++++++++++++++++---- version.py | 2 +- 2 files changed, 36 insertions(+), 5 deletions(-) diff --git a/Gui.py b/Gui.py index a649efe8c..7c0f366c2 100644 --- a/Gui.py +++ b/Gui.py @@ -154,6 +154,21 @@ def show_settings(event=None): settings = guivars_to_settings(guivars) settings_string_var.set( settings.get_settings_string() ) + # Update any dependencies + for info in setting_infos: + if info.gui_params and 'dependency' in info.gui_params: + dep_met = True + for dep_var, dep_val in info.gui_params['dependency'].items(): + if guivars[dep_var].get() != dep_val: + dep_met = False + + if widgets[info.name].winfo_class() == 'Frame': + for child in widgets[info.name].winfo_children(): + child.configure(state= 'normal' if dep_met else 'disabled') + else: + widgets[info.name].config(state = 'normal' if dep_met else 'disabled') + + def import_settings(event=None): try: settings = guivars_to_settings(guivars) @@ -260,8 +275,9 @@ def open_readme(): dropdown.bind("<>", show_settings) dropdown.pack(side=BOTTOM, anchor=W) # label the option - label = Label(widgets[info.name], text=info.gui_params['text']) - label.pack(side=LEFT, anchor=W, padx=5) + if 'text' in info.gui_params: + label = Label(widgets[info.name], text=info.gui_params['text']) + label.pack(side=LEFT, anchor=W, padx=5) # pack the frame widgets[info.name].pack(expand=False, side=TOP, anchor=W, padx=3, pady=3) elif info.gui_params['widget'] == 'Scale': @@ -278,8 +294,23 @@ def open_readme(): scale = Scale(widgets[info.name], variable=guivars[info.name], from_=minval, to=maxval, tickinterval=stepval, resolution=stepval, showvalue=0, orient=HORIZONTAL, sliderlength=15, length=200, command=show_settings) scale.pack(side=BOTTOM, anchor=W) # label the option - label = Label(widgets[info.name], text=info.gui_params['text']) - label.pack(side=LEFT, anchor=W, padx=5) + if 'text' in info.gui_params: + label = Label(widgets[info.name], text=info.gui_params['text']) + label.pack(side=LEFT, anchor=W, padx=5) + # pack the frame + widgets[info.name].pack(expand=False, side=TOP, anchor=W, padx=3, pady=3) + elif info.gui_params['widget'] == 'Entry': + # create the variable to store the user's decision + guivars[info.name] = StringVar(value=info.gui_params['default']) + # create the option menu + widgets[info.name] = Frame(frames[info.gui_params['group']]) + + entry = Entry(widgets[info.name], textvariable=guivars[info.name], width=30) + entry.pack(side=BOTTOM, anchor=W) + # label the option + if 'text' in info.gui_params: + label = Label(widgets[info.name], text=info.gui_params['text']) + label.pack(side=LEFT, anchor=W, padx=5) # pack the frame widgets[info.name].pack(expand=False, side=TOP, anchor=W, padx=3, pady=3) diff --git a/version.py b/version.py index c179bf42d..881c6ae82 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.12.1 f.LUM' \ No newline at end of file +__version__ = '2.12.2 f.LUM' \ No newline at end of file From bcfb6d322ef05c179b6cefc73bed2e249da865bf Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Thu, 12 Jul 2018 23:07:44 -0400 Subject: [PATCH 150/755] Initial Save Table now has sanity check for overflow and write_bytes --- Rom.py | 35 ++++++++++++++++++++++++++++++----- version.py | 2 +- 2 files changed, 31 insertions(+), 6 deletions(-) diff --git a/Rom.py b/Rom.py index 72c0ff711..2f935983b 100644 --- a/Rom.py +++ b/Rom.py @@ -809,15 +809,40 @@ def patch_rom(world, rom): initial_save_table = [] # will set the bits of value to the offset in the save (or'ing them with what is already there) - def write_bits_to_save(offset, value): + def write_bits_to_save(offset, value, filter=None): nonlocal initial_save_table + + if filter and not filter(value): + return + initial_save_table += [(offset & 0xFF00) >> 8, offset & 0xFF, 0x00, value] + + # will overwrite the byte at offset with the given value - def write_byte_to_save(offset, value): + def write_byte_to_save(offset, value, filter=None): nonlocal initial_save_table + + if filter and not filter(value): + return + initial_save_table += [(offset & 0xFF00) >> 8, offset & 0xFF, 0x01, value] + # will overwrite the byte at offset with the given value + def write_bytes_to_save(offset, bytes, filter=None): + for i, value in enumerate(bytes): + write_byte_to_save(offset + i, value, filter) + + # will overwrite the byte at offset with the given value + def write_save_table(rom): + nonlocal initial_save_table + + table_len = len(initial_save_table) + if table_len > 0x400: + raise Exception("The Initial Save Table has exceeded it's maximum capacity: 0x%03X/0x400" % table_len) + rom.write_bytes(0x3481800, initial_save_table) + + # Initial Save Data write_bits_to_save(0x003F, 0x02) # Some Biggoron's Sword flag? @@ -1109,9 +1134,6 @@ def write_byte_to_save(offset, value): rom.write_bytes(0xCA3EA2, [item_data[item.name][3][0], item_data[item.name][3][1]]) rom.write_bytes(0xCA3EA6, [item_data[item.name][3][2], item_data[item.name][3][3]]) - # actually write the save table to rom - rom.write_bytes(0x3481800, initial_save_table) - if world.bombchus_in_logic: # add a cheaper bombchu pack to the bombchu shop # describe @@ -1175,6 +1197,9 @@ def write_byte_to_save(offset, value): if world.ocarina_songs: replace_songs(rom) + # actually write the save table to rom + write_save_table(rom) + # re-seed for aesthetic effects. They shouldn't be affected by the generation seed random.seed() diff --git a/version.py b/version.py index 881c6ae82..fa6f18349 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.12.2 f.LUM' \ No newline at end of file +__version__ = '2.12.3 f.LUM' \ No newline at end of file From a4b639b6f60730eeed2fa69d244a022cbab077e4 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Thu, 12 Jul 2018 23:08:09 -0400 Subject: [PATCH 151/755] Added option to start with Scarecrow Song --- OcarinaSongs.py | 32 ++++++++++++++++++++------- Rom.py | 57 +++++++++++++++++++++++++++++++++++++++++++++++-- Settings.py | 28 ++++++++++++++++++++++++ version.py | 2 +- 4 files changed, 108 insertions(+), 11 deletions(-) diff --git a/OcarinaSongs.py b/OcarinaSongs.py index 1beeb5dff..dc1a23670 100644 --- a/OcarinaSongs.py +++ b/OcarinaSongs.py @@ -23,6 +23,13 @@ def subsong(song1, song2): # check if either is a substring of the other return (s1 in s2) or (s2 in s1) +# give random durations and volumes to the notes +def fast_playback(activation): + playback = [] + for note_index, note in enumerate(activation): + playback.append( {'note': note, 'duration': 0x03, 'volume': 0x57} ) + return playback + # give random durations and volumes to the notes def random_playback(activation): playback = [] @@ -135,13 +142,13 @@ def two_piece_playback(self, piece, extra_position='none', activation_transform= self.playback = playback_piece1 + playback_piece2 + extra_playback # add rests between repeated notes in the playback so that they work in-game - def break_repeated_notes(self): + def break_repeated_notes(self, duration=0x08): new_playback = [] for note_index, note in enumerate(self.playback): new_playback.append(note) if ( note_index + 1 < len(self.playback) ) and \ ( self.playback[note_index]['note'] == self.playback[note_index + 1]['note'] ): - new_playback.append( {'note': 0xFF, 'duration': 0x08, 'volume': 0} ) + new_playback.append( {'note': 0xFF, 'duration': duration, 'volume': 0} ) self.playback = new_playback # create the list of bytes that will be written into the rom for the activation @@ -178,7 +185,16 @@ def display(self): return activation_string + '\n' + playback_string # create a song, based on a given scheme - def __init__(self, rand_song=True, piece_size=3, extra_position='none', starting_range=range(0,5), activation_transform=identity, playback_transform=identity): + def __init__(self, rand_song=True, piece_size=3, extra_position='none', starting_range=range(0,5), activation_transform=identity, playback_transform=identity, activation=None): + if activation: + self.length = len(activation) + self.activation = activation + self.playback = fast_playback(self.activation) + self.break_repeated_notes(0x03) + self.format_playback_data() + self.increase_duration_to(45) + return + if rand_song: self.length = random.randint(4, 8) self.activation = random.choices(range(0,5), k=self.length) @@ -248,8 +264,7 @@ def get_random_song(): # create a list of 12 songs, none of which are sub-strings of any other song -def generate_song_list(): - +def generate_song_list(scarecrow_song=None): songs = [] for _ in range(12): @@ -258,7 +273,8 @@ def generate_song_list(): song = get_random_song() # test the song against all existing songs is_good = True - for other_song in songs: + + for other_song in songs + [scarecrow_song] if scarecrow_song else songs: if subsong(song, other_song): is_good = False if is_good: @@ -272,8 +288,8 @@ def generate_song_list(): # replace the playback and activation requirements for the ocarina songs -def replace_songs(rom): - songs = generate_song_list() +def replace_songs(rom, scarecrow_song=None): + songs = generate_song_list(scarecrow_song) #print('\n\n'.join(map(str, songs))) diff --git a/Rom.py b/Rom.py index 2f935983b..f379598dd 100644 --- a/Rom.py +++ b/Rom.py @@ -11,7 +11,7 @@ from Utils import local_path, default_output_path from Items import ItemFactory, item_data from Messages import * -from OcarinaSongs import replace_songs +from OcarinaSongs import Song, replace_songs, subsong TunicColors = { "Kokiri Green": [0x1E, 0x69, 0x1B], @@ -1194,8 +1194,61 @@ def write_save_table(rom): # for s in shop_items: # f.write(str(s) + '\n\n') + scarecrow_song = None + if world.free_scarecrow: + original_songs = [ + 'LURLUR', + 'ULRULR', + 'DRLDRL', + 'RDURDU', + 'RADRAD', + 'ADUADU', + 'AULRLR', + 'DADALDLD', + 'ADRRL', + 'ADALDA', + 'LRRALRD', + 'URURLU' + ] + + note_map = { + 'A': 0, + 'D': 1, + 'R': 2, + 'L': 3, + 'U': 4 + } + + if len(world.scarecrow_song) != 8: + raise Exception('Scarecrow Song must be 8 notes long') + + if len(set(world.scarecrow_song.upper())) == 1: + raise Exception('Scarecrow Song must contain at least two different notes') + + notes = [] + for c in world.scarecrow_song.upper(): + if c not in note_map: + raise Exception('Invalid note %s. Valid notes are A, D, R, L, U' % c) + + notes.append(note_map[c]) + scarecrow_song = Song(activation=notes) + + if not world.ocarina_songs: + for original_song in original_songs: + song_notes = [] + for c in original_song: + song_notes.append(note_map[c]) + song = Song(activation=song_notes) + + if subsong(scarecrow_song, song): + raise Exception('You may not have the Scarecrow Song contain an existing song') + + write_bits_to_save(0x0EE6, 0x10) # Played song as adult + write_byte_to_save(0x12C5, 0x01) # Song is remembered + write_bytes_to_save(0x12C6, scarecrow_song.playback_data[:(16*8)], lambda v: v != 0) + if world.ocarina_songs: - replace_songs(rom) + replace_songs(rom, scarecrow_song) # actually write the save table to rom write_save_table(rom) diff --git a/Settings.py b/Settings.py index bfe606b8d..8c7ed8255 100644 --- a/Settings.py +++ b/Settings.py @@ -382,6 +382,34 @@ def __init__(self, settings_dict): 'widget': 'Checkbutton', 'default': 'checked' }), + Setting_Info('free_scarecrow', bool, 1, True, + { + 'help': '''\ + Start with the scarecrow song. You do not need + to play it as child or adult at the scarecrow + patch to be able to summon Pierre. + ''', + 'action': 'store_true' + }, + { + 'text': 'Start with Scarecrow Song', + 'group': 'convenience', + 'widget': 'Checkbutton', + 'default': 'unchecked' + }), + Setting_Info('scarecrow_song', str, 0, False, + { + 'help': '''\ + The song started with if 'free_scarecrow' is True + ''', + 'action': 'store_true' + }, + { + 'group': 'convenience', + 'widget': 'Entry', + 'default': 'DAAAAAAA', + 'dependency': { 'free_scarecrow':True } + }), Setting_Info('unlocked_ganondorf', bool, 1, True, { 'help': '''\ diff --git a/version.py b/version.py index fa6f18349..75492a10c 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.12.3 f.LUM' \ No newline at end of file +__version__ = '2.12.4 f.LUM' \ No newline at end of file From 09e50b181baee8885c0351c4ee41bc9062a73d4e Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Thu, 12 Jul 2018 23:13:22 -0400 Subject: [PATCH 152/755] fix some ocarina logic --- Rules.py | 4 ++-- version.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Rules.py b/Rules.py index d1bcd323f..9ed9a379d 100644 --- a/Rules.py +++ b/Rules.py @@ -63,8 +63,8 @@ def global_rules(world): set_rule(world.get_entrance('Deku Tree'), lambda state: state.has('Kokiri Sword') or world.open_forest) set_rule(world.get_entrance('Lost Woods Bridge'), lambda state: world.open_forest or (state.has('Slingshot') and state.has('Kokiri Sword'))) set_rule(world.get_entrance('Deku Tree Basement Path'), lambda state: state.has('Slingshot')) - set_rule(world.get_location('Skull Kid'), lambda state: state.can_play('Sarias Song') and state.has('Ocarina')) - set_rule(world.get_location('Ocarina Memory Game'), lambda state: (not world.logic_no_memory_game) and (state.has('Fairy Ocarina') or state.has('Ocarina of Time'))) + set_rule(world.get_location('Skull Kid'), lambda state: state.can_play('Sarias Song')) + set_rule(world.get_location('Ocarina Memory Game'), lambda state: (not world.logic_no_memory_game) and state.has_ocarina()) set_rule(world.get_location('Target in Woods'), lambda state: state.has('Slingshot')) set_rule(world.get_location('Deku Theater Skull Mask'), lambda state: (not world.logic_no_trade_skull_mask) and state.has('Zeldas Letter')) set_rule(world.get_location('Deku Theater Mask of Truth'), lambda state: (not world.logic_no_trade_mask_of_truth) and (state.has('Zeldas Letter') and state.can_play('Sarias Song') and state.has('Kokiri Emerald') and state.has('Goron Ruby') and state.has('Zora Sapphire') and state.guarantee_hint())) #Must befriend Skull Kid to sell Skull Mask, all stones to spawn running man. diff --git a/version.py b/version.py index 75492a10c..6630cdee9 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.12.4 f.LUM' \ No newline at end of file +__version__ = '2.12.5 f.LUM' \ No newline at end of file From 25510006d32a60ccb65d1c07d2cf6879052cefb2 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Thu, 12 Jul 2018 23:47:00 -0400 Subject: [PATCH 153/755] Updated some logic --- BaseClasses.py | 5 ++++- README.md | 2 ++ Rules.py | 16 ++++++++-------- Settings.py | 14 -------------- version.py | 2 +- 5 files changed, 15 insertions(+), 24 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index b73573dae..512930083 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -339,7 +339,10 @@ def can_see_with_lens(self): return ((self.has('Magic Meter') and self.has('Lens of Truth')) or self.world.logic_lens != 'all') def has_GoronTunic(self): - return (self.has('Goron Tunic') or (self.has('Progressive Wallet') and (self.has('Bomb Bag') or self.has('Progressive Strength Upgrade') or self.has('Bow')))) + return (self.has('Goron Tunic') or (self.has('Progressive Wallet') and (self.has_explosives() or self.has('Progressive Strength Upgrade') or self.has('Bow')))) + + def has_ZoraTunic(self): + return (self.has('Zora Tunic') or (self.has('Progressive Wallet', 2) and state.has_bottle() and state.can_play('Zeldas Lullaby'))) def can_finish_adult_trades(self): zora_thawed = self.has_bottle() and self.has('Zeldas Lullaby') and (self.can_reach('Ice Cavern') or self.can_reach('Ganons Castle Water Trial') or self.has('Progressive Wallet', 2)) diff --git a/README.md b/README.md index f5fca9fa6..d149cc05a 100644 --- a/README.md +++ b/README.md @@ -46,6 +46,8 @@ Options to skip some sequences that only pad the time of completing the game wit - `only_one_big_poe`: the poe buyer will give the reward after selling 1 Big Poe instead of 10. - `default_targeting`: set the default targeting mode to be either `switch` or `hold`. - `progressive_bombchus`: first bombchu pack is always 20. subsequent ones will give 10 if low, and 5 otherwise. +- `free_scarecrow`: Start with the Scarecrow Song. You do not need go to the scarecrow patch as adult or child to use the song. +- `scarecrow_song`: The song for the Scarecrow Song if `free_scarecrow` is True. Song notes can be any of AUDLR. ## Bombchus diff --git a/Rules.py b/Rules.py index 9ed9a379d..cea8512b1 100644 --- a/Rules.py +++ b/Rules.py @@ -70,7 +70,6 @@ def global_rules(world): set_rule(world.get_location('Deku Theater Mask of Truth'), lambda state: (not world.logic_no_trade_mask_of_truth) and (state.has('Zeldas Letter') and state.can_play('Sarias Song') and state.has('Kokiri Emerald') and state.has('Goron Ruby') and state.has('Zora Sapphire') and state.guarantee_hint())) #Must befriend Skull Kid to sell Skull Mask, all stones to spawn running man. set_rule(world.get_location('Anju as Adult'), lambda state: state.is_adult()) set_rule(world.get_location('Man on Roof'), lambda state: world.logic_man_on_roof or (state.has('Progressive Hookshot') and state.is_adult())) - set_rule(world.get_location('Impa House Freestanding PoH'), lambda state: ( (world.logic_impa_house or state.has('Progressive Hookshot')) and state.is_adult()) or state.has_explosives()) set_rule(world.get_location('10 Gold Skulltulla Reward'), lambda state: (expected_skulltulas >= 10) and state.has('Gold Skulltulla Token', 10)) set_rule(world.get_location('20 Gold Skulltulla Reward'), lambda state: (expected_skulltulas >= 20) and state.has('Gold Skulltulla Token', 20)) set_rule(world.get_location('30 Gold Skulltulla Reward'), lambda state: (expected_skulltulas >= 30) and state.has('Gold Skulltulla Token', 30) and state.guarantee_hint()) @@ -192,15 +191,15 @@ def global_rules(world): set_rule(world.get_location('Lake Hylia Freestanding PoH'), lambda state: state.is_adult() and ((state.has('Progressive Hookshot') and state.has_ocarina()) or state.has('Magic Bean'))) set_rule(world.get_location('Lake Hylia Sun'), lambda state: ((state.has('Progressive Hookshot', 2) and state.has_ocarina()) or state.can_reach(world.get_location('Morpha'))) and state.has('Bow') and state.is_adult()) set_rule(world.get_entrance('Crater Hover Boots'), lambda state: state.is_adult() and state.has('Hover Boots')) - set_rule(world.get_entrance('Crater Ascent'), lambda state: state.is_adult() and state.has_GoronTunic()) - set_rule(world.get_entrance('Crater Scarecrow'), lambda state: state.is_adult() and state.has_ocarina() and state.has('Progressive Hookshot', 2) and state.has_GoronTunic()) + set_rule(world.get_entrance('Crater Ascent'), lambda state: state.is_adult()) + set_rule(world.get_entrance('Crater Scarecrow'), lambda state: state.is_adult() and state.has_ocarina() and state.has('Progressive Hookshot', 2)) set_rule(world.get_entrance('Crater Bridge'), lambda state: state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot'))) set_rule(world.get_entrance('Crater Bridge Reverse'), lambda state: state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot'))) set_rule(world.get_entrance('Crater Warp Pad'), lambda state: state.can_play('Bolero of Fire')) set_rule(world.get_entrance('Crater Fairy'), lambda state: state.is_adult() and state.has('Hammer')) set_rule(world.get_location('DM Crater Volcano Freestanding PoH'), lambda state: state.is_adult() and state.has('Magic Bean') and state.can_play('Bolero of Fire')) - set_rule(world.get_entrance('Fire Temple Entrance'), lambda state: state.is_adult() and state.has_GoronTunic()) - set_rule(world.get_entrance('Fire Temple Early Climb'), lambda state: state.has('Small Key (Fire Temple)', 3) and state.has('Progressive Strength Upgrade') and (state.has_explosives() or ((state.has('Bow') or state.has('Progressive Hookshot')) and state.is_adult()))) + set_rule(world.get_entrance('Fire Temple Entrance'), lambda state: state.is_adult()) + set_rule(world.get_entrance('Fire Temple Early Climb'), lambda state: state.has_GoronTunic() and state.has('Small Key (Fire Temple)', 3) and state.has('Progressive Strength Upgrade') and (state.has_explosives() or ((state.has('Bow') or state.has('Progressive Hookshot')) and state.is_adult()))) set_rule(world.get_entrance('Fire Temple Fire Maze Escape'), lambda state: state.has('Small Key (Fire Temple)', 7) or (state.has('Small Key (Fire Temple)', 6) and state.has('Hover Boots') and state.has('Hammer') and state.is_adult())) set_rule(world.get_location('Fire Temple Fire Dancer Chest'), lambda state: state.is_adult() and state.has('Hammer')) set_rule(world.get_location('Fire Temple Boss Key Chest'), lambda state: state.is_adult() and state.has('Hammer')) @@ -220,8 +219,8 @@ def global_rules(world): set_rule(world.get_entrance('Crater Access'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade') or state.can_blast_or_smash())) set_rule(world.get_entrance('Lake Warp Pad'), lambda state: state.can_play('Serenade of Water')) set_rule(world.get_location('King Zora Thawed'), lambda state: state.has_bottle() and (state.can_reach('Ice Cavern') or state.can_reach('Ganons Castle Water Trial') or state.has('Progressive Wallet', 2))) - set_rule(world.get_location('Zoras Fountain Bottom Freestanding PoH'), lambda state: state.has('Iron Boots') and state.has('Zora Tunic')) - set_rule(world.get_entrance('Water Temple Entrance'), lambda state: state.is_adult() and (state.has('Zora Tunic') or (state.has('Progressive Wallet', 2) and state.has_bottle() and state.can_play('Zeldas Lullaby'))) and state.has('Iron Boots') and state.has('Progressive Hookshot')) + set_rule(world.get_location('Zoras Fountain Bottom Freestanding PoH'), lambda state: state.has('Iron Boots')) + set_rule(world.get_entrance('Water Temple Entrance'), lambda state: state.is_adult() and state.has('Iron Boots') and state.has('Progressive Hookshot')) set_rule(world.get_entrance('Water Temple Central Pillar'), lambda state: (state.has('Bow') or (state.has('Dins Fire') and state.has('Magic Meter')) or state.has('Small Key (Water Temple)', 5)) and state.can_play('Zeldas Lullaby')) set_rule(world.get_entrance('Water Temple Upper Locked Door'), lambda state: state.has('Small Key (Water Temple)', 5) and (state.can_play('Zeldas Lullaby') or world.keysanity)) set_rule(world.get_location('Water Temple Torches Chest'), lambda state: (state.has('Bow') or (state.has('Dins Fire') and state.has('Magic Meter'))) and state.can_play('Zeldas Lullaby')) @@ -234,6 +233,7 @@ def global_rules(world): set_rule(world.get_location('Water Temple Cracked Wall Chest'), lambda state: state.has_explosives()) set_rule(world.get_location('Water Temple Dark Link Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity)) set_rule(world.get_location('Water Temple River Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and state.can_play('Song of Time') and state.has('Bow') and (state.can_play('Zeldas Lullaby') or world.keysanity)) + set_rule(world.get_location('Water Temple Central Pillar Chest'), lambda state: state.has_ZoraTunic()) set_rule(world.get_location('Sheik in Kakariko'), lambda state: state.has('Forest Medallion') and state.has('Fire Medallion') and state.has('Water Medallion')) set_rule(world.get_entrance('Graveyard Warp Pad'), lambda state: state.can_play('Nocturne of Shadow')) set_rule(world.get_entrance('Shadow Temple Entrance'), lambda state: state.has('Dins Fire') and state.has('Magic Meter') and state.can_see_with_lens() and state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot'))) @@ -277,7 +277,7 @@ def global_rules(world): set_rule(world.get_location('Gerudo Training Grounds Maze Path Third Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 7)) set_rule(world.get_location('Gerudo Training Grounds Maze Path Final Chest'), lambda state: (state.has('Small Key (Gerudo Training Grounds)', 9)) or (item_name(state, 'Gerudo Training Grounds Maze Path Final Chest') == 'Small Key (Gerudo Training Grounds)' and state.has('Small Key (Gerudo Training Grounds)', 8))) #Allow key for key set_always_allow(world.get_location('Gerudo Training Grounds Maze Path Final Chest'), lambda item, state: item.name == 'Small Key (Gerudo Training Grounds)') - set_rule(world.get_location('Gerudo Training Grounds Underwater Silver Rupee Chest'), lambda state: state.has('Progressive Hookshot') and state.can_play('Song of Time') and state.has('Iron Boots') and state.has('Zora Tunic') and state.is_adult()) + set_rule(world.get_location('Gerudo Training Grounds Underwater Silver Rupee Chest'), lambda state: state.has('Progressive Hookshot') and state.can_play('Song of Time') and state.has('Iron Boots') and state.is_adult()) set_rule(world.get_location('Gerudo Training Grounds Hammer Room Switch Chest'), lambda state: state.has('Hammer') and state.is_adult()) set_rule(world.get_location('Gerudo Training Grounds Eye Statue Chest'), lambda state: state.has('Bow') and state.is_adult()) set_rule(world.get_location('Gerudo Training Grounds Near Scarecrow Chest'), lambda state: state.has('Bow') and state.is_adult()) diff --git a/Settings.py b/Settings.py index 8c7ed8255..ab6c1522c 100644 --- a/Settings.py +++ b/Settings.py @@ -688,20 +688,6 @@ def __init__(self, settings_dict): 'widget': 'Checkbutton', 'default': 'unchecked' }), - Setting_Info('logic_impa_house', bool, 1, True, - { - 'help': '''\ - Getting into the back of Impa's house (cow cage) as an adult will - not require hookshot in logic. - ''', - 'action': 'store_true' - }, - { - 'text': 'Impa House (cow cage) as adult with nothing', - 'group': 'tricks', - 'widget': 'Checkbutton', - 'default': 'unchecked' - }), Setting_Info('logic_windmill_hp', bool, 1, True, { 'help': '''\ diff --git a/version.py b/version.py index 6630cdee9..da94faa9e 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.12.5 f.LUM' \ No newline at end of file +__version__ = '2.12.6 f.LUM' \ No newline at end of file From b1e4f023ae71c0959414961858a7c6ef124f51cf Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Fri, 13 Jul 2018 00:27:29 -0400 Subject: [PATCH 154/755] Fix error in has_zoratunic --- BaseClasses.py | 2 +- version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 512930083..39216394a 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -342,7 +342,7 @@ def has_GoronTunic(self): return (self.has('Goron Tunic') or (self.has('Progressive Wallet') and (self.has_explosives() or self.has('Progressive Strength Upgrade') or self.has('Bow')))) def has_ZoraTunic(self): - return (self.has('Zora Tunic') or (self.has('Progressive Wallet', 2) and state.has_bottle() and state.can_play('Zeldas Lullaby'))) + return (self.has('Zora Tunic') or (self.has('Progressive Wallet', 2) and self.has_bottle() and self.can_play('Zeldas Lullaby'))) def can_finish_adult_trades(self): zora_thawed = self.has_bottle() and self.has('Zeldas Lullaby') and (self.can_reach('Ice Cavern') or self.can_reach('Ganons Castle Water Trial') or self.has('Progressive Wallet', 2)) diff --git a/version.py b/version.py index da94faa9e..736434f13 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.12.6 f.LUM' \ No newline at end of file +__version__ = '2.12.7 f.LUM' \ No newline at end of file From bb285c86d90d1a8b38a7a8a29c6b1aac54902486 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Fri, 13 Jul 2018 00:28:05 -0400 Subject: [PATCH 155/755] Make 10 pack bombchu 99 rupees --- Messages.py | 9 +++++++++ Rom.py | 9 +++++++++ version.py | 2 +- 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/Messages.py b/Messages.py index 47ba2ffd3..a0b0b30a8 100644 --- a/Messages.py +++ b/Messages.py @@ -324,6 +324,15 @@ def update_message_by_id(messages, id, text, opts=None): if index >= 0: update_message_by_index(messages, index, text, opts) +# Gets the message by its ID. Returns None if the index does not exist +def get_message_by_id(messages, id): + # get the message index + index = next( (m.index for m in messages if m.id == id), -1) + if index >= 0: + return messages[index] + else: + return None + # wrapper for updating the text of a message, given its index in the list def update_message_by_index(messages, index, text, opts=None): if opts is None: diff --git a/Rom.py b/Rom.py index f379598dd..583eccacd 100644 --- a/Rom.py +++ b/Rom.py @@ -1147,6 +1147,15 @@ def write_save_table(rom): rbl_bombchu.description_message = 0x80FE rbl_bombchu.purchase_message = 0x80FF + # Reduce 10 Pack Bombchus from 100 to 99 Rupees + shop_items[0x0015].price = 99 + shop_items[0x0019].price = 99 + shop_items[0x001C].price = 99 + update_message_by_id(messages, shop_items[0x001C].description_message, "\x08\x05\x41Bombchu (10 pieces) 99 Rupees\x01\x05\x40This looks like a toy mouse, but\x01it's actually a self-propelled time\x01bomb!\x09\x0A") + update_message_by_id(messages, shop_items[0x001C].purchase_message, "\x08Bombchu 10 pieces 100 Rupees\x09\x01\x01\x1B\x05\x42Buy\x01Don't buy\x05\x40") + + + #Fix bombchu chest animations chestAnimations = { 0x6A: 0x28, #0xD8 #Bombchu (5) diff --git a/version.py b/version.py index 736434f13..8103fc2cd 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.12.7 f.LUM' \ No newline at end of file +__version__ = '2.12.8 f.LUM' \ No newline at end of file From 16b7f2cbbb978af0d4d722a6ec2de97851b133cd Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Fri, 13 Jul 2018 00:38:09 -0400 Subject: [PATCH 156/755] Updated Readme --- README.md | 6 ++++++ version.py | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d149cc05a..458f18596 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,12 @@ The following were added or majorly changed on this fork: - Options are saved when closing the GUI and loaded when opening it - Can set Output directory +## Logic changes + +- The Heart Piece at the cow in Impa's house can be using only a chicken +- Zora Tunic is only required to get the key below the central pillar in the Water Temple +- Goron Tunix is only required for the fire trial in Ganon's Castle and to get to the 2nd floor (and beyond) in the Fire Temple + ## Optional Logic changes A bunch of optional logic changes can be applied from the "Detailed Logic" tab: diff --git a/version.py b/version.py index 8103fc2cd..6669d8838 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.12.8 f.LUM' \ No newline at end of file +__version__ = '2.12.9 f.LUM' \ No newline at end of file From 8b035e4dd3b0cd33f691b75c1b695f23631c4c7c Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Sat, 14 Jul 2018 09:47:30 -0500 Subject: [PATCH 157/755] Fixed light arrow hint not happening for 0 trials option. --- Hints.py | 2 +- version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Hints.py b/Hints.py index 4e3ea9783..61978639c 100644 --- a/Hints.py +++ b/Hints.py @@ -309,7 +309,7 @@ def buildGanonText(world, messages): # light arrow hint or validation chest item text = '\x08' - if world.trials == '0': + if world.trials == 0: for location in world.get_locations(): if location.item.name == 'Light Arrows': text = get_raw_text(getHint('Light Arrow Location').text) diff --git a/version.py b/version.py index 75492a10c..6630cdee9 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.12.4 f.LUM' \ No newline at end of file +__version__ = '2.12.5 f.LUM' \ No newline at end of file From e66f78b1b89b34e4317e62675d25e71c3ec0f54d Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Sat, 14 Jul 2018 17:48:53 -0500 Subject: [PATCH 158/755] Tokensanity framework has been built. --- ASM/src/constants.asm | 1 + ASM/src/hacks.asm | 32 ++++++ ASM/src/item_overrides.asm | 77 +++++++++++++- BaseClasses.py | 5 + ItemList.py | 10 +- Items.py | 2 +- Regions.py | 200 ++++++++++++++++++------------------- Rom.py | 11 +- Settings.py | 28 ++++++ data/base2current.json | 2 +- version.py | 2 +- 11 files changed, 254 insertions(+), 116 deletions(-) diff --git a/ASM/src/constants.asm b/ASM/src/constants.asm index 67e5789cd..6dce93443 100755 --- a/ASM/src/constants.asm +++ b/ASM/src/constants.asm @@ -3,3 +3,4 @@ .definelabel GLOBAL_CONTEXT, 0x801C84A0 .definelabel PLAYER_ACTOR, 0x801DAA30 .definelabel DUMMY_ACTOR, 0x80410000 +.definelabel GET_ITEMTABLE, 0x803A9E7E diff --git a/ASM/src/hacks.asm b/ASM/src/hacks.asm index f02782683..482448590 100755 --- a/ASM/src/hacks.asm +++ b/ASM/src/hacks.asm @@ -113,6 +113,38 @@ .org 0xBE9BDC ; In memory: 0x803A4BCC addiu at, r0, 0x8383 ; Make branch impossible + + +; Change Skulltula Token to give a different item +; Replaces +; move a0,s1 +; jal 0x0006fdcc ; call ex_06fdcc(ctx, 0x0071); VROM: 0xAE5D2C +; li a1,113 +; lw t5,44(sp) ; t5 = what was *(ctx + 0x1c44) at the start of the function +; li t4,10 ; t4 = 0x0a +; move a0,s1 +; li a1,180 ; at = 0x00b4 ("You destoryed a Gold Skulltula...") +; move a2,zero +; jal 0x000dce14 ; call ex_0dce14(ctx, 0x00b4, 0) +; sh t4,272(t5) ; *(t5 + 0x110) = 0x000a +.org 0xEC68BC +.area 0x28, 0 + lw t5,44(sp) ; original code + li t4,10 ; original code + sh t4,272(t5) ; original code + jal override_skulltula_token ; call override_skulltula_token(_, actor) + move a1,s0 +.endarea + +.org 0xEC69AC +.area 0x28, 0 + lw t5,44(sp) ; original code + li t4,10 ; original code + sh t4,272(t5) ; original code + jal override_skulltula_token ; call override_skulltula_token(_, actor) + move a1,s0 +.endarea + ;================================================================================================== ; Special item sources ;================================================================================================== diff --git a/ASM/src/item_overrides.asm b/ASM/src/item_overrides.asm index 1d9628a49..2a5ef9c47 100755 --- a/ASM/src/item_overrides.asm +++ b/ASM/src/item_overrides.asm @@ -34,6 +34,72 @@ inventory_check: ;================================================================================================== +; a1 = pointer to the skulltula token actor + +override_skulltula_token: + addiu sp, sp, -0x20 + sw ra, 0x10 (sp) + sw s0, 0x14 (sp) + + jal lookup_override ; call lookup_override(_, actor) + ; so that v0 = index of overwritten item + nop + bgez v0, @@in_table + nop + li v0, 0x5B ; default to giving a token + +@@in_table: + ; resolve the item if it is extended + move a0, v0 + jal resolve_extended_item ; v0 = resolved item ID, v1 = ITEM_TABLE entry + nop + beqz v1, @@not_extended + sw v1, 0x1C (sp) + + ; Run effect function + li a0, SAVE_CONTEXT + lbu a1, ITEM_ROW_EFFECT_ARG1 (v1) + lbu a2, ITEM_ROW_EFFECT_ARG2 (v1) + lw t1, ITEM_ROW_EFFECT_FN (v1) + jalr t1 + nop + + ; message id is in the extended item table + lw v1, 0x1C (sp) + lbu a1, ITEM_ROW_TEXT_ID (v1) + + b @@display_message + +@@not_extended: + ; get the table entry in the get item table for this item + li t1, GET_ITEMTABLE ; t1 = base of get item table + li t2, 0x6 ; t2 = size of an element + mult v0, t2 ; + mflo t2 ; t2 = offset into get item table + addu s0, t1, t2 ; s0 = pointer to table entry + + ; give the item + lb a1, 0x0 (s0) ; a1 = item id + jal 0x0006fdcc ; call ex_06fdcc(ctx, item); this gives link the item + move a0,s1 ; a0 = ctx + + ; message id is in the get item table + lbu a1, 0x3 (s0) ; a1 = text id + +@@display_message: + move a0,s1 + jal 0x000dce14 ; call ex_0dce14(ctx, text_id, 0) + move a2,zero + +@@return: + lw ra, 0x10 (sp) + lw s0, 0x14 (sp) + addiu sp, sp, 0x20 + jr ra + nop + +;================================================================================================== + override_object_npc: lw a2, 0x0030 (sp) lh a1, 0x0004 (a2) @@ -265,12 +331,21 @@ get_override_search_key: ; Load the current scene number li v0, GLOBAL_CONTEXT - lhu v0, 0xA4 (v0) + lhu v0, 0xA4 (v0) ; v0 = scene number li t0, 0x00 ; t0 = override type ori t1, a0, 0 ; t1 = override ID lhu t2, 0x00 (a1) ; t2 = actor ID + bne t2, 0x019C, @@not_skulltula ; if not skulltula, try for other types + + li t0, 0x03 ; t0 = skulltula type + lhu t3, 0x1C (a1) ; t3 = skulltula token variable + andi t1, t3, 0x00FF ; t1 = skulltula flag (used for the lookup) + b @@not_collectable ; create the id + nop + +@@not_skulltula: bne t2, 0x000A, @@not_chest nop lhu t3, 0x1C (a1) diff --git a/BaseClasses.py b/BaseClasses.py index 39216394a..0798d4846 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -383,6 +383,11 @@ def guarantee_hint(self): return self.has('Stone of Agony') return True + def nighttime(self): + if self.world.logic_no_night_tokens_without_suns_song: + return self.has('Suns Song') + return True + def collect(self, item, event=False, location=None): if location: self.locations_checked.add(location) diff --git a/ItemList.py b/ItemList.py index ac3532f88..bb5ce2042 100644 --- a/ItemList.py +++ b/ItemList.py @@ -45,9 +45,11 @@ #total_items_to_place = 5 def generate_itempool(world): - for location in skulltulla_locations: - world.push_item(location, ItemFactory('Gold Skulltulla Token'), False) - world.get_location(location).event = True + + if not world.tokensanity: + for location in skulltulla_locations: + world.push_item(location, ItemFactory('Gold Skulltulla Token'), False) + world.get_location(location).event = True if not world.shuffle_weird_egg: eventlocations['Malon Egg'] = 'Weird Egg' @@ -79,6 +81,8 @@ def get_pool_core(world): pool.append('Weird Egg') if world.shuffle_fairy_ocarina: pool.append('Ocarina') + if world.tokensanity: + pool.extend(['Gold Skulltulla Token'] * 100) if world.progressive_bombchus: pool.extend(['Bombchus'] * 5) diff --git a/Items.py b/Items.py index acb31e084..53a554bfb 100644 --- a/Items.py +++ b/Items.py @@ -164,9 +164,9 @@ def ItemFactory(items): 'Serenade of Water': (True, False, 'Song', 0x04, 0x9), 'Nocturne of Shadow': (True, False, 'Song', 0x06, 0x7), 'Requiem of Spirit': (True, False, 'Song', 0x05, 0x8), + 'Gold Skulltulla Token': (True, False, 'Token', None, 0x5B), 'Epona': (True, False, 'Event', None, None), 'Gerudo Membership Card': (True, False, 'Event', 0x0740, 0x3A), - 'Gold Skulltulla Token': (True, False, 'Event', None, None), 'Kokiri Emerald': (True, False, 'Event', 0x6C, None), 'Goron Ruby': (True, False, 'Event', 0x6D, None), 'Zora Sapphire': (True, False, 'Event', 0x6E, None), diff --git a/Regions.py b/Regions.py index 2b15aa099..abe3e66bd 100644 --- a/Regions.py +++ b/Regions.py @@ -484,103 +484,103 @@ def _create_region(name, type, locations=None, exits=None): 'Twinrova': (0xCA3EB3, 0xD39FF1, 0x69, 'Boss', None, None), 'Bongo Bongo': (0xCA3F43, 0xD13E19, 0x6A, 'Boss', None, None), 'Ganon': (None, None, None, 'Boss', None, None), - 'GS1': (None, None, None, 'GS Token', None, 'Kokiri Forest'), - 'GS2': (None, None, None, 'GS Token', None, 'Kokiri Forest'), - 'GS3': (None, None, None, 'GS Token', None, 'Kokiri Forest'), - 'GS4': (None, None, None, 'GS Token', None, 'the Lost Woods'), - 'GS5': (None, None, None, 'GS Token', None, 'the Lost Woods'), - 'GS6': (None, None, None, 'GS Token', None, 'the Lost Woods'), - 'GS7': (None, None, None, 'GS Token', None, 'Sacred Forest Meadow'), - 'GS8': (None, None, None, 'GS Token', None, 'Deku Tree'), - 'GS9': (None, None, None, 'GS Token', None, 'Deku Tree'), - 'GS10': (None, None, None, 'GS Token', None, 'Deku Tree'), - 'GS11': (None, None, None, 'GS Token', None, 'Deku Tree'), - 'GS12': (None, None, None, 'GS Token', None, 'Hyrule Field'), - 'GS13': (None, None, None, 'GS Token', None, 'Hyrule Field'), - 'GS14': (None, None, None, 'GS Token', None, 'the market'), - 'GS15': (None, None, None, 'GS Token', None, 'Hyrule Castle'), - 'GS16': (None, None, None, 'GS Token', None, 'Hyrule Castle'), - 'GS17': (None, None, None, 'GS Token', None, 'outside my castle'), - 'GS18': (None, None, None, 'GS Token', None, 'Lon Lon Ranch'), - 'GS19': (None, None, None, 'GS Token', None, 'Lon Lon Ranch'), - 'GS20': (None, None, None, 'GS Token', None, 'Lon Lon Ranch'), - 'GS21': (None, None, None, 'GS Token', None, 'Lon Lon Ranch'), - 'GS22': (None, None, None, 'GS Token', None, 'Kakariko Village'), - 'GS23': (None, None, None, 'GS Token', None, 'Kakariko Village'), - 'GS24': (None, None, None, 'GS Token', None, 'Kakariko Village'), - 'GS25': (None, None, None, 'GS Token', None, 'Kakariko Village'), - 'GS26': (None, None, None, 'GS Token', None, 'Kakariko Village'), - 'GS27': (None, None, None, 'GS Token', None, 'Kakariko Village'), - 'GS28': (None, None, None, 'GS Token', None, 'the Graveyard'), - 'GS29': (None, None, None, 'GS Token', None, 'the Graveyard'), - 'GS30': (None, None, None, 'GS Token', None, 'Death Mountain Trail'), - 'GS31': (None, None, None, 'GS Token', None, 'Death Mountain Trail'), - 'GS32': (None, None, None, 'GS Token', None, 'Death Mountain Trail'), - 'GS33': (None, None, None, 'GS Token', None, 'Death Mountain Trail'), - 'GS34': (None, None, None, 'GS Token', None, 'Goron City'), - 'GS35': (None, None, None, 'GS Token', None, 'Goron City'), - 'GS36': (None, None, None, 'GS Token', None, 'Death Mountain Crater'), - 'GS37': (None, None, None, 'GS Token', None, 'Death Mountain Crater'), - 'GS38': (None, None, None, 'GS Token', None, 'Dodongo\'s Cavern'), - 'GS39': (None, None, None, 'GS Token', None, 'Dodongo\'s Cavern'), - 'GS40': (None, None, None, 'GS Token', None, 'Dodongo\'s Cavern'), - 'GS41': (None, None, None, 'GS Token', None, 'Dodongo\'s Cavern'), - 'GS42': (None, None, None, 'GS Token', None, 'Dodongo\'s Cavern'), - 'GS43': (None, None, None, 'GS Token', None, 'Zora River'), - 'GS44': (None, None, None, 'GS Token', None, 'Zora River'), - 'GS45': (None, None, None, 'GS Token', None, 'Zora River'), - 'GS46': (None, None, None, 'GS Token', None, 'Zora River'), - 'GS47': (None, None, None, 'GS Token', None, 'Zora\'s Domain'), - 'GS48': (None, None, None, 'GS Token', None, 'Zora\'s Fountain'), - 'GS49': (None, None, None, 'GS Token', None, 'Zora\'s Fountain'), - 'GS50': (None, None, None, 'GS Token', None, 'Zora\'s Fountain'), - 'GS51': (None, None, None, 'GS Token', None, 'Jabu Jabu\'s Belly'), - 'GS52': (None, None, None, 'GS Token', None, 'Jabu Jabu\'s Belly'), - 'GS53': (None, None, None, 'GS Token', None, 'Jabu Jabu\'s Belly'), - 'GS54': (None, None, None, 'GS Token', None, 'Jabu Jabu\'s Belly'), - 'GS55': (None, None, None, 'GS Token', None, 'Lake Hylia'), - 'GS56': (None, None, None, 'GS Token', None, 'Lake Hylia'), - 'GS57': (None, None, None, 'GS Token', None, 'Lake Hylia'), - 'GS58': (None, None, None, 'GS Token', None, 'Lake Hylia'), - 'GS59': (None, None, None, 'GS Token', None, 'Lake Hylia'), - 'GS60': (None, None, None, 'GS Token', None, 'Forest Temple'), - 'GS61': (None, None, None, 'GS Token', None, 'Forest Temple'), - 'GS62': (None, None, None, 'GS Token', None, 'Forest Temple'), - 'GS63': (None, None, None, 'GS Token', None, 'Forest Temple'), - 'GS64': (None, None, None, 'GS Token', None, 'Forest Temple'), - 'GS65': (None, None, None, 'GS Token', None, 'Fire Temple'), - 'GS66': (None, None, None, 'GS Token', None, 'Fire Temple'), - 'GS67': (None, None, None, 'GS Token', None, 'Fire Temple'), - 'GS68': (None, None, None, 'GS Token', None, 'Fire Temple'), - 'GS69': (None, None, None, 'GS Token', None, 'Fire Temple'), - 'GS70': (None, None, None, 'GS Token', None, 'Ice Cavern'), - 'GS71': (None, None, None, 'GS Token', None, 'Ice Cavern'), - 'GS72': (None, None, None, 'GS Token', None, 'Ice Cavern'), - 'GS73': (None, None, None, 'GS Token', None, 'Water Temple'), - 'GS74': (None, None, None, 'GS Token', None, 'Water Temple'), - 'GS75': (None, None, None, 'GS Token', None, 'Water Temple'), - 'GS76': (None, None, None, 'GS Token', None, 'Water Temple'), - 'GS77': (None, None, None, 'GS Token', None, 'Water Temple'), - 'GS78': (None, None, None, 'GS Token', None, 'Bottom of the Well'), - 'GS79': (None, None, None, 'GS Token', None, 'Bottom of the Well'), - 'GS80': (None, None, None, 'GS Token', None, 'Bottom of the Well'), - 'GS81': (None, None, None, 'GS Token', None, 'Shadow Temple'), - 'GS82': (None, None, None, 'GS Token', None, 'Shadow Temple'), - 'GS83': (None, None, None, 'GS Token', None, 'Shadow Temple'), - 'GS84': (None, None, None, 'GS Token', None, 'Shadow Temple'), - 'GS85': (None, None, None, 'GS Token', None, 'Shadow Temple'), - 'GS86': (None, None, None, 'GS Token', None, 'Gerudo Valley'), - 'GS87': (None, None, None, 'GS Token', None, 'Gerudo Valley'), - 'GS88': (None, None, None, 'GS Token', None, 'Gerudo Valley'), - 'GS89': (None, None, None, 'GS Token', None, 'Gerudo Valley'), - 'GS90': (None, None, None, 'GS Token', None, 'Gerudo Fortress'), - 'GS91': (None, None, None, 'GS Token', None, 'Gerudo Fortress'), - 'GS92': (None, None, None, 'GS Token', None, 'Haunted Wasteland'), - 'GS93': (None, None, None, 'GS Token', None, 'Desert Colossus'), - 'GS94': (None, None, None, 'GS Token', None, 'Desert Colossus'), - 'GS95': (None, None, None, 'GS Token', None, 'Desert Colossus'), - 'GS96': (None, None, None, 'GS Token', None, 'Spirit Temple'), - 'GS97': (None, None, None, 'GS Token', None, 'Spirit Temple'), - 'GS98': (None, None, None, 'GS Token', None, 'Spirit Temple'), - 'GS99': (None, None, None, 'GS Token', None, 'Spirit Temple'), - 'GS100': (None, None, None, 'GS Token', None, 'Spirit Temple')} + 'GS1': (None, None, 0x01, 'GS Token', 0x55, 'Kokiri Forest'), + 'GS2': (None, None, 0x02, 'GS Token', 0x55, 'Kokiri Forest'), + 'GS3': (None, None, 0x02, 'GS Token', 0x55, 'Kokiri Forest'), + 'GS4': (None, None, 0x01, 'GS Token', None, 'the Lost Woods'), + 'GS5': (None, None, 0x01, 'GS Token', None, 'the Lost Woods'), + 'GS6': (None, None, 0x01, 'GS Token', None, 'the Lost Woods'), + 'GS7': (None, None, 0x01, 'GS Token', None, 'Sacred Forest Meadow'), + 'GS8': (None, None, 0x01, 'GS Token', None, 'Deku Tree'), + 'GS9': (None, None, 0x01, 'GS Token', None, 'Deku Tree'), + 'GS10': (None, None, 0x01, 'GS Token', None, 'Deku Tree'), + 'GS11': (None, None, 0x01, 'GS Token', None, 'Deku Tree'), + 'GS12': (None, None, 0x01, 'GS Token', None, 'Hyrule Field'), + 'GS13': (None, None, 0x01, 'GS Token', None, 'Hyrule Field'), + 'GS14': (None, None, 0x01, 'GS Token', None, 'the market'), + 'GS15': (None, None, 0x01, 'GS Token', None, 'Hyrule Castle'), + 'GS16': (None, None, 0x01, 'GS Token', None, 'Hyrule Castle'), + 'GS17': (None, None, 0x01, 'GS Token', None, 'outside my castle'), + 'GS18': (None, None, 0x01, 'GS Token', None, 'Lon Lon Ranch'), + 'GS19': (None, None, 0x01, 'GS Token', None, 'Lon Lon Ranch'), + 'GS20': (None, None, 0x01, 'GS Token', None, 'Lon Lon Ranch'), + 'GS21': (None, None, 0x01, 'GS Token', None, 'Lon Lon Ranch'), + 'GS22': (None, None, 0x01, 'GS Token', None, 'Kakariko Village'), + 'GS23': (None, None, 0x01, 'GS Token', None, 'Kakariko Village'), + 'GS24': (None, None, 0x01, 'GS Token', None, 'Kakariko Village'), + 'GS25': (None, None, 0x01, 'GS Token', None, 'Kakariko Village'), + 'GS26': (None, None, 0x01, 'GS Token', None, 'Kakariko Village'), + 'GS27': (None, None, 0x01, 'GS Token', None, 'Kakariko Village'), + 'GS28': (None, None, 0x01, 'GS Token', None, 'the Graveyard'), + 'GS29': (None, None, 0x01, 'GS Token', None, 'the Graveyard'), + 'GS30': (None, None, 0x01, 'GS Token', None, 'Death Mountain Trail'), + 'GS31': (None, None, 0x01, 'GS Token', None, 'Death Mountain Trail'), + 'GS32': (None, None, 0x01, 'GS Token', None, 'Death Mountain Trail'), + 'GS33': (None, None, 0x01, 'GS Token', None, 'Death Mountain Trail'), + 'GS34': (None, None, 0x01, 'GS Token', None, 'Goron City'), + 'GS35': (None, None, 0x01, 'GS Token', None, 'Goron City'), + 'GS36': (None, None, 0x01, 'GS Token', None, 'Death Mountain Crater'), + 'GS37': (None, None, 0x01, 'GS Token', None, 'Death Mountain Crater'), + 'GS38': (None, None, 0x01, 'GS Token', None, 'Dodongo\'s Cavern'), + 'GS39': (None, None, 0x01, 'GS Token', None, 'Dodongo\'s Cavern'), + 'GS40': (None, None, 0x01, 'GS Token', None, 'Dodongo\'s Cavern'), + 'GS41': (None, None, 0x01, 'GS Token', None, 'Dodongo\'s Cavern'), + 'GS42': (None, None, 0x01, 'GS Token', None, 'Dodongo\'s Cavern'), + 'GS43': (None, None, 0x01, 'GS Token', None, 'Zora River'), + 'GS44': (None, None, 0x01, 'GS Token', None, 'Zora River'), + 'GS45': (None, None, 0x01, 'GS Token', None, 'Zora River'), + 'GS46': (None, None, 0x01, 'GS Token', None, 'Zora River'), + 'GS47': (None, None, 0x01, 'GS Token', None, 'Zora\'s Domain'), + 'GS48': (None, None, 0x01, 'GS Token', None, 'Zora\'s Fountain'), + 'GS49': (None, None, 0x01, 'GS Token', None, 'Zora\'s Fountain'), + 'GS50': (None, None, 0x01, 'GS Token', None, 'Zora\'s Fountain'), + 'GS51': (None, None, 0x01, 'GS Token', None, 'Jabu Jabu\'s Belly'), + 'GS52': (None, None, 0x01, 'GS Token', None, 'Jabu Jabu\'s Belly'), + 'GS53': (None, None, 0x01, 'GS Token', None, 'Jabu Jabu\'s Belly'), + 'GS54': (None, None, 0x01, 'GS Token', None, 'Jabu Jabu\'s Belly'), + 'GS55': (None, None, 0x01, 'GS Token', None, 'Lake Hylia'), + 'GS56': (None, None, 0x01, 'GS Token', None, 'Lake Hylia'), + 'GS57': (None, None, 0x01, 'GS Token', None, 'Lake Hylia'), + 'GS58': (None, None, 0x01, 'GS Token', None, 'Lake Hylia'), + 'GS59': (None, None, 0x01, 'GS Token', None, 'Lake Hylia'), + 'GS60': (None, None, 0x01, 'GS Token', None, 'Forest Temple'), + 'GS61': (None, None, 0x01, 'GS Token', None, 'Forest Temple'), + 'GS62': (None, None, 0x01, 'GS Token', None, 'Forest Temple'), + 'GS63': (None, None, 0x01, 'GS Token', None, 'Forest Temple'), + 'GS64': (None, None, 0x01, 'GS Token', None, 'Forest Temple'), + 'GS65': (None, None, 0x01, 'GS Token', None, 'Fire Temple'), + 'GS66': (None, None, 0x01, 'GS Token', None, 'Fire Temple'), + 'GS67': (None, None, 0x01, 'GS Token', None, 'Fire Temple'), + 'GS68': (None, None, 0x01, 'GS Token', None, 'Fire Temple'), + 'GS69': (None, None, 0x01, 'GS Token', None, 'Fire Temple'), + 'GS70': (None, None, 0x01, 'GS Token', None, 'Ice Cavern'), + 'GS71': (None, None, 0x01, 'GS Token', None, 'Ice Cavern'), + 'GS72': (None, None, 0x01, 'GS Token', None, 'Ice Cavern'), + 'GS73': (None, None, 0x01, 'GS Token', None, 'Water Temple'), + 'GS74': (None, None, 0x01, 'GS Token', None, 'Water Temple'), + 'GS75': (None, None, 0x01, 'GS Token', None, 'Water Temple'), + 'GS76': (None, None, 0x01, 'GS Token', None, 'Water Temple'), + 'GS77': (None, None, 0x01, 'GS Token', None, 'Water Temple'), + 'GS78': (None, None, 0x01, 'GS Token', None, 'Bottom of the Well'), + 'GS79': (None, None, 0x01, 'GS Token', None, 'Bottom of the Well'), + 'GS80': (None, None, 0x01, 'GS Token', None, 'Bottom of the Well'), + 'GS81': (None, None, 0x01, 'GS Token', None, 'Shadow Temple'), + 'GS82': (None, None, 0x01, 'GS Token', None, 'Shadow Temple'), + 'GS83': (None, None, 0x01, 'GS Token', None, 'Shadow Temple'), + 'GS84': (None, None, 0x01, 'GS Token', None, 'Shadow Temple'), + 'GS85': (None, None, 0x01, 'GS Token', None, 'Shadow Temple'), + 'GS86': (None, None, 0x01, 'GS Token', None, 'Gerudo Valley'), + 'GS87': (None, None, 0x01, 'GS Token', None, 'Gerudo Valley'), + 'GS88': (None, None, 0x01, 'GS Token', None, 'Gerudo Valley'), + 'GS89': (None, None, 0x01, 'GS Token', None, 'Gerudo Valley'), + 'GS90': (None, None, 0x01, 'GS Token', None, 'Gerudo Fortress'), + 'GS91': (None, None, 0x01, 'GS Token', None, 'Gerudo Fortress'), + 'GS92': (None, None, 0x01, 'GS Token', None, 'Haunted Wasteland'), + 'GS93': (None, None, 0x01, 'GS Token', None, 'Desert Colossus'), + 'GS94': (None, None, 0x01, 'GS Token', None, 'Desert Colossus'), + 'GS95': (None, None, 0x01, 'GS Token', None, 'Desert Colossus'), + 'GS96': (None, None, 0x01, 'GS Token', None, 'Spirit Temple'), + 'GS97': (None, None, 0x01, 'GS Token', None, 'Spirit Temple'), + 'GS98': (None, None, 0x01, 'GS Token', None, 'Spirit Temple'), + 'GS99': (None, None, 0x01, 'GS Token', None, 'Spirit Temple'), + 'GS100': (None, None, 0x01, 'GS Token', None, 'Spirit Temple')} diff --git a/Rom.py b/Rom.py index 583eccacd..35ea0892c 100644 --- a/Rom.py +++ b/Rom.py @@ -1147,15 +1147,6 @@ def write_save_table(rom): rbl_bombchu.description_message = 0x80FE rbl_bombchu.purchase_message = 0x80FF - # Reduce 10 Pack Bombchus from 100 to 99 Rupees - shop_items[0x0015].price = 99 - shop_items[0x0019].price = 99 - shop_items[0x001C].price = 99 - update_message_by_id(messages, shop_items[0x001C].description_message, "\x08\x05\x41Bombchu (10 pieces) 99 Rupees\x01\x05\x40This looks like a toy mouse, but\x01it's actually a self-propelled time\x01bomb!\x09\x0A") - update_message_by_id(messages, shop_items[0x001C].purchase_message, "\x08Bombchu 10 pieces 100 Rupees\x09\x01\x01\x1B\x05\x42Buy\x01Don't buy\x05\x40") - - - #Fix bombchu chest animations chestAnimations = { 0x6A: 0x28, #0xD8 #Bombchu (5) @@ -1375,6 +1366,8 @@ def get_override_entry(location): return [scene, 0x01, flag, item_id] elif location.type == 'Collectable': return [scene, 0x02, default, item_id] + elif location.type == 'GS Token': + return [scene, 0x03, default, item_id] else: return [] diff --git a/Settings.py b/Settings.py index ab6c1522c..86113fa9a 100644 --- a/Settings.py +++ b/Settings.py @@ -437,6 +437,20 @@ def __init__(self, settings_dict): 'widget': 'Checkbutton', 'default': 'unchecked' }), + Setting_Info('tokensanity', bool, 1, True, + { + 'help': '''\ + Gold Skulltula Tokens will be shuffled into the pool, + and Gold Skulltula locations can have any item. + ''', + 'action': 'store_true' + }, + { + 'text': 'Tokensanity', + 'group': 'logic', + 'widget': 'Checkbutton', + 'default': 'unchecked' + }), Setting_Info('nodungeonitems', bool, 1, True, { 'help': '''\ @@ -531,6 +545,20 @@ def __init__(self, settings_dict): 'step': 10, }), + Setting_Info('logic_no_night_tokens_without_suns_song', bool, 1, True, + { + 'help': '''\ + You will not be expected to collect nighttime-only skulltulas + unless you have Sun's Song + ''', + 'action': 'store_true' + }, + { + 'text': 'No Nighttime Skulltulas without Sun\'s Song', + 'group': 'rewards', + 'widget': 'Checkbutton', + 'default': 'unchecked' + }), Setting_Info('logic_no_big_poes', bool, 1, True, { 'help': '''\ diff --git a/data/base2current.json b/data/base2current.json index ca4bc94ea..4e0b8b20e 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -1 +1 @@ -[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 50]}, {"11325064": [12, 16, 11, 10, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 11, 101]}, {"11427312": [12, 16, 12, 14]}, {"11431496": [12, 16, 11, 18, 1, 15, 192, 33]}, {"11562028": [12, 16, 12, 47]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 12, 30]}, {"11882076": [12, 16, 11, 251]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 11, 68, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 11, 75, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 11, 82, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 11, 61, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 2]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 9, 207]}, {"12427480": [12, 16, 9, 236]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 9, 240]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 11, 26, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 14]}, {"12491480": [12, 16, 10, 23]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 10, 223]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 11, 89]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 140, 73]}, {"14149503": [164]}, {"14149512": [2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149856": [87]}, {"14149859": [15]}, {"14357459": [118]}, {"14624335": [118]}, {"14872723": [52]}, {"15506663": [122]}, {"55057408": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058464": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 104, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 132, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 172, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 212, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 252, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 36, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 64, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 92, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 120, 83, 65, 56, 67]}, {"55058613": [235, 21, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 55, 68]}, {"55058629": [235, 22, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 57, 69]}, {"55058645": [235, 23, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 63, 71]}, {"55058677": [244, 25, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 10, 6]}, {"55058757": [185, 1, 3, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 28]}, {"55058773": [185, 1, 4, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 29]}, {"55058789": [185, 1, 5, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 30]}, {"55058805": [185, 1, 6, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 42]}, {"55058821": [185, 1, 7, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 97]}, {"55058837": [185, 1, 10, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 98]}, {"55058853": [184, 2]}, {"55058856": [128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 99]}, {"55058869": [184, 2, 1, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 100]}, {"55058885": [184, 2, 2, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 101]}, {"55058901": [184, 2, 3, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 124]}, {"55058917": [184, 2, 4, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 125]}, {"55058933": [184, 2, 5, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 126]}, {"55058949": [184, 2, 6, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 127]}, {"55058965": [184, 2, 7, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 162]}, {"55058981": [184, 2, 8, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 135]}, {"55058997": [184, 2, 9, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 136]}, {"55059013": [200, 4]}, {"55059016": [128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 137]}, {"55059029": [200, 4, 1, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 138]}, {"55059045": [200, 4, 2, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 139]}, {"55059061": [200, 4, 3, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 140]}, {"55059077": [200, 4, 4, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 142]}, {"55059093": [200, 4, 5, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 143]}, {"55059109": [200, 4, 6, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 163]}, {"55059125": [200, 4, 7, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 165]}, {"55059141": [200, 4, 8, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 146]}, {"55059157": [200, 4, 9, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 2, 147]}, {"55059173": [170, 3, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 148]}, {"55059189": [170, 4, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 149]}, {"55059205": [170, 5, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 166]}, {"55059221": [170, 6, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 169]}, {"55059237": [170, 7, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 155]}, {"55059253": [170, 8, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 159]}, {"55059269": [170, 11, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 160]}, {"55059285": [170, 12, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 161]}, {"55059301": [170, 13, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 61, 67, 12]}, {"55059317": [248, 255, 255, 128, 64, 37, 236, 128, 64, 36, 96, 77, 131, 247, 85]}, {"55059333": [183, 255, 255, 128, 64, 37, 228, 128, 64, 36, 96, 77, 146, 219, 230]}, {"55059349": [216, 255, 255, 128, 64, 37, 228, 128, 64, 37, 172, 77, 147, 218, 230]}, {"55059365": [216, 255, 255, 128, 64, 37, 228, 128, 64, 37, 172, 77, 148, 217, 230]}, {"55059381": [216, 255, 255, 128, 64, 37, 228, 128, 64, 37, 172, 77, 142, 224, 50]}, {"55059397": [206, 255, 255, 128, 64, 37, 228, 128, 64, 37, 200, 77, 143, 224, 50]}, {"55059413": [206, 255, 255, 128, 64, 37, 228, 128, 64, 37, 200, 77, 144, 224, 50]}, {"55059429": [206, 255, 255, 128, 64, 37, 228, 128, 64, 37, 200, 77, 140, 238, 52]}, {"55059445": [187, 255, 255, 128, 64, 37, 228, 128, 64, 36, 96, 77, 141, 238, 52]}, {"55059461": [187, 255, 255, 128, 64, 37, 228, 128, 64, 36, 96, 79, 65, 19, 233]}, {"55059477": [189, 255, 255, 128, 64, 38, 124, 128, 64, 36, 96, 79, 65, 30, 228]}, {"55059493": [205, 255, 255, 128, 64, 38, 156, 128, 64, 37, 148, 79, 65, 31, 232]}, {"55059509": [205, 255, 255, 128, 64, 38, 188, 128, 64, 36, 96, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 38, 228, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 39, 44, 128, 64, 39, 16, 3, 224]}, {"55059555": [8, 52, 162]}, {"55059560": [144, 136]}, {"55059563": [125, 52, 1]}, {"55059567": [255, 17, 1]}, {"55059571": [2, 52, 2]}, {"55059575": [8, 52, 2]}, {"55059579": [9, 3, 224]}, {"55059583": [8]}, {"55059588": [144, 136]}, {"55059591": [163, 49, 8]}, {"55059595": [192, 17]}, {"55059599": [5, 52, 2]}, {"55059603": [84, 52, 1]}, {"55059607": [64, 17, 1]}, {"55059611": [2, 52, 2]}, {"55059615": [53, 52, 2]}, {"55059619": [54, 3, 224]}, {"55059623": [8]}, {"55059628": [144, 136]}, {"55059631": [163, 49, 8]}, {"55059635": [24, 17]}, {"55059639": [5, 52, 2]}, {"55059643": [50, 52, 1]}, {"55059647": [8, 17, 1]}, {"55059651": [2, 52, 2]}, {"55059655": [51, 52, 2]}, {"55059659": [52, 3, 224]}, {"55059663": [8]}, {"55059668": [144, 136]}, {"55059671": [163, 49, 8]}, {"55059675": [3, 17]}, {"55059679": [5, 52, 2]}, {"55059683": [4, 52, 1]}, {"55059687": [1, 17, 1]}, {"55059691": [2, 52, 2]}, {"55059695": [48, 52, 2]}, {"55059699": [49, 3, 224]}, {"55059703": [8]}, {"55059708": [144, 136]}, {"55059711": [162, 49, 8]}, {"55059715": [192, 17]}, {"55059719": [5, 52, 2]}, {"55059723": [5, 52, 1]}, {"55059727": [64, 17, 1]}, {"55059731": [2, 52, 2]}, {"55059735": [96, 52, 2]}, {"55059739": [123, 3, 224]}, {"55059743": [8]}, {"55059748": [144, 136]}, {"55059751": [162, 49, 8]}, {"55059755": [48, 17]}, {"55059759": [2, 52, 2]}, {"55059763": [69, 52, 2]}, {"55059767": [70, 3, 224]}, {"55059771": [8]}, {"55059776": [144, 136]}, {"55059779": [162, 49, 8]}, {"55059783": [6, 17]}, {"55059787": [2, 52, 2]}, {"55059791": [55, 52, 2]}, {"55059795": [56, 3, 224]}, {"55059799": [8]}, {"55059804": [144, 136]}, {"55059807": [161, 49, 8]}, {"55059811": [32, 17]}, {"55059815": [2, 52, 2]}, {"55059819": [121, 52, 2]}, {"55059823": [122, 3, 224]}, {"55059827": [8]}, {"55059832": [144, 136]}, {"55059835": [161, 49, 8]}, {"55059839": [4, 17]}, {"55059843": [2, 52, 2]}, {"55059847": [119, 52, 2]}, {"55059851": [120, 3, 224]}, {"55059855": [8]}, {"55059860": [144, 136]}, {"55059863": [50, 17]}, {"55059867": [2, 52, 2]}, {"55059871": [192, 52, 2]}, {"55059875": [193, 3, 224]}, {"55059879": [8]}, {"55059884": [144, 136]}, {"55059887": [163, 49, 8]}, {"55059891": [3, 17]}, {"55059895": [2, 52, 2]}, {"55059899": [77, 52, 162]}, {"55059904": [3, 224]}, {"55059907": [8]}, {"55059912": [144, 136]}, {"55059915": [163, 49, 8]}, {"55059919": [24, 17]}, {"55059923": [2, 52, 2]}, {"55059927": [77, 52, 162]}, {"55059932": [3, 224]}, {"55059935": [8]}, {"55059940": [3, 224]}, {"55059943": [8]}, {"55059948": [52, 8]}, {"55059951": [1, 160, 136]}, {"55059955": [62, 3, 224]}, {"55059959": [8]}, {"55059964": [36, 136]}, {"55059967": [134, 36, 9, 255, 255, 37, 41]}, {"55059975": [1, 52, 1]}, {"55059979": [3]}, {"55059981": [41, 8, 42, 20, 32]}, {"55059987": [7]}, {"55059992": [1, 9, 80, 33, 145, 75]}, {"55060000": [52, 1]}, {"55060003": [255, 21, 97, 255, 247]}, {"55060012": [161, 69]}, {"55060016": [3, 224]}, {"55060019": [8]}, {"55060024": [36, 136]}, {"55060027": [168, 1, 6, 64, 33, 145, 9]}, {"55060036": [1, 37, 72, 37, 161, 9]}, {"55060044": [3, 224]}, {"55060047": [8]}, {"55060052": [36, 136]}, {"55060055": [188, 1, 5, 64, 33, 129, 9]}, {"55060064": [5, 33]}, {"55060067": [2]}, {"55060072": [52, 9]}, {"55060076": [37, 41]}, {"55060079": [1, 161, 9]}, {"55060084": [3, 224]}, {"55060087": [8]}, {"55060092": [52, 8]}, {"55060095": [1, 160, 136]}, {"55060099": [61, 52, 8]}, {"55060103": [20, 160, 136]}, {"55060107": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060119": [8]}, {"55060124": [52, 8]}, {"55060127": [1, 160, 136]}, {"55060131": [50, 160, 136]}, {"55060135": [58, 52, 8]}, {"55060139": [48, 164, 136, 19, 244, 160, 136]}, {"55060147": [51, 3, 224]}, {"55060151": [8]}, {"55060156": [52, 8]}, {"55060159": [2, 160, 136]}, {"55060163": [50, 52, 8]}, {"55060167": [1, 160, 136]}, {"55060171": [58, 160, 136]}, {"55060175": [60, 52, 8]}, {"55060179": [96, 164, 136, 19, 244, 160, 136]}, {"55060187": [51, 3, 224]}, {"55060191": [8]}, {"55060196": [144, 136]}, {"55060199": [124, 52, 1]}, {"55060203": [255, 17, 1]}, {"55060207": [6, 52, 2]}, {"55060211": [107, 144, 136]}, {"55060215": [148, 45, 8]}, {"55060219": [6, 17]}, {"55060223": [2, 52, 2]}, {"55060227": [106, 52, 2]}, {"55060231": [3, 3, 224]}, {"55060235": [8]}, {"55060240": [144, 136]}, {"55060243": [123, 52, 1]}, {"55060247": [255, 17, 1]}, {"55060251": [2, 52, 162]}, {"55060256": [52, 2]}, {"55060259": [12, 3, 224]}, {"55060263": [8]}, {"55060268": [52, 8]}, {"55060271": [7, 160, 136]}, {"55060275": [123, 3, 224]}, {"55060279": [8]}, {"55060284": [48, 132]}, {"55060287": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060299": [140, 16, 129]}, {"55060303": [22, 145, 2]}, {"55060307": [117, 52, 1]}, {"55060311": [141, 16, 129]}, {"55060315": [19, 145, 2]}, {"55060319": [117, 16, 128]}, {"55060323": [17, 145, 2]}, {"55060327": [116, 52, 1]}, {"55060331": [138, 16, 129]}, {"55060335": [14, 145, 2]}, {"55060339": [116, 52, 1]}, {"55060343": [139, 16, 129]}, {"55060347": [11, 145, 2]}, {"55060351": [116, 52, 1]}, {"55060355": [88, 16, 129]}, {"55060359": [8, 52, 2]}, {"55060364": [52, 1]}, {"55060367": [120, 16, 129]}, {"55060371": [5, 52, 2]}, {"55060376": [52, 1]}, {"55060379": [121, 16, 129]}, {"55060383": [2, 52, 2]}, {"55060388": [52, 2]}, {"55060391": [255, 3, 224]}, {"55060395": [8]}, {"55060400": [143, 166]}, {"55060403": [48, 132, 197]}, {"55060407": [4, 8, 16, 9, 244]}, {"55060416": [143, 185]}, {"55060419": [44, 135, 37]}, {"55060423": [4, 8, 16, 9, 244]}, {"55060432": [60, 10, 128, 64, 37, 74, 32]}, {"55060440": [141, 75]}, {"55060443": [12, 17, 96]}, {"55060447": [2]}, {"55060452": [149, 69]}, {"55060455": [4, 60, 10, 128, 64, 37, 74, 32, 16, 161, 64]}, {"55060468": [60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060480": [3, 224]}, {"55060483": [8]}, {"55060488": [60, 8, 128, 64, 37, 8, 32]}, {"55060496": [141, 9]}, {"55060499": [12, 17, 32]}, {"55060503": [2]}, {"55060508": [129, 3]}, {"55060511": [2]}, {"55060513": [3, 15, 195]}, {"55060517": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55060531": [8]}, {"55060536": [144, 69]}, {"55060539": [3, 60, 8, 128, 64, 37, 8, 32]}, {"55060548": [141, 9]}, {"55060551": [12, 17, 32]}, {"55060555": [2]}, {"55060560": [145, 5]}, {"55060563": [3, 3, 224]}, {"55060567": [8]}, {"55060572": [143, 162]}, {"55060575": [36, 144, 69]}, {"55060580": [60, 8, 128, 64, 37, 8, 32]}, {"55060588": [141, 9]}, {"55060591": [12, 17, 32]}, {"55060595": [19]}, {"55060600": [145, 5]}, {"55060603": [1, 175, 164]}, {"55060608": [175, 165]}, {"55060611": [4, 175, 166]}, {"55060615": [8, 39, 189, 255, 232, 175, 191]}, {"55060623": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55060635": [6, 145, 6]}, {"55060639": [7, 141, 9]}, {"55060643": [8, 1, 32, 248, 9]}, {"55060652": [143, 191]}, {"55060655": [16, 39, 189]}, {"55060659": [24, 143, 164]}, {"55060664": [143, 165]}, {"55060667": [4, 143, 166]}, {"55060671": [8, 3, 224]}, {"55060675": [8]}, {"55060680": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55060691": [16, 175, 163]}, {"55060695": [20, 175, 191]}, {"55060699": [24, 12, 16, 10, 63]}, {"55060708": [143, 162]}, {"55060711": [16, 143, 163]}, {"55060715": [20, 143, 191]}, {"55060719": [24, 39, 189]}, {"55060723": [32, 3, 224]}, {"55060727": [8]}, {"55060732": [39, 189, 255, 232, 175, 191]}, {"55060739": [16, 60, 8, 128, 64, 37, 8, 32]}, {"55060748": [173]}, {"55060752": [173]}, {"55060755": [4, 173]}, {"55060759": [8, 173]}, {"55060763": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55060779": [42]}, {"55060785": [9, 15, 195, 1, 33, 32, 38]}, {"55060793": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 121]}, {"55060808": [4, 64]}, {"55060811": [34]}, {"55060816": [52, 68]}, {"55060820": [12, 16, 10, 190]}, {"55060828": [16, 96]}, {"55060831": [12]}, {"55060836": [60, 8, 128, 64, 37, 8, 32]}, {"55060844": [140, 105]}, {"55060848": [173, 9]}, {"55060852": [140, 105]}, {"55060855": [4, 173, 9]}, {"55060859": [4, 140, 105]}, {"55060863": [8, 173, 9]}, {"55060867": [8, 52, 9]}, {"55060871": [1, 173, 9]}, {"55060875": [12, 144, 98]}, {"55060880": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55060896": [52, 1]}, {"55060899": [10, 21, 65]}, {"55060903": [6]}, {"55060908": [149, 42]}, {"55060911": [28, 49, 74, 240, 31]}, {"55060917": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55060927": [28, 129, 9, 4, 36, 5, 33]}, {"55060935": [2]}, {"55060941": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55060951": [16, 39, 189]}, {"55060955": [24, 3, 224]}, {"55060959": [8]}, {"55060964": [39, 189, 255, 232, 175, 191]}, {"55060971": [16, 12, 16, 10, 135]}, {"55060980": [36, 1, 255, 255, 16, 65]}, {"55060987": [4]}, {"55060992": [52, 68]}, {"55060996": [12, 16, 10, 177]}, {"55061004": [143, 191]}, {"55061007": [16, 39, 189]}, {"55061011": [24, 3, 224]}, {"55061015": [8]}, {"55061020": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061031": [164, 52, 8]}, {"55061036": [52, 137]}, {"55061040": [148, 170]}, {"55061044": [52, 1]}, {"55061047": [10, 21, 65]}, {"55061051": [14]}, {"55061056": [148, 171]}, {"55061059": [28, 52, 1]}, {"55061063": [16, 20, 65]}, {"55061067": [8]}, {"55061072": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061083": [4]}, {"55061088": [36, 2, 255, 255, 16]}, {"55061095": [21]}, {"55061100": [52, 8]}, {"55061103": [1, 49, 105]}, {"55061107": [31, 52, 1]}, {"55061111": [21, 21, 65]}, {"55061115": [12]}, {"55061120": [52, 1]}, {"55061123": [62, 16, 129]}, {"55061127": [7]}, {"55061132": [52, 1]}, {"55061135": [66, 16, 129]}, {"55061139": [4]}, {"55061144": [36, 2, 255, 255, 16]}, {"55061151": [7]}, {"55061156": [52, 8]}, {"55061159": [2, 144, 169, 1, 65]}, {"55061165": [2, 18]}, {"55061169": [72, 16, 37]}, {"55061173": [2, 18]}, {"55061177": [73, 16, 37, 3, 224]}, {"55061183": [8]}, {"55061188": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061203": [4, 141, 9]}, {"55061208": [17, 32]}, {"55061211": [5]}, {"55061217": [9, 82, 2, 21, 68, 255, 250]}, {"55061228": [49, 34]}, {"55061231": [255, 3, 224]}, {"55061235": [8]}, {"55061240": [39, 189, 255, 224, 175, 176]}, {"55061247": [16, 175, 177]}, {"55061251": [20, 175, 191]}, {"55061255": [24, 52, 130]}, {"55061260": [52, 80]}, {"55061264": [38, 8, 255, 128, 5]}, {"55061271": [18]}, {"55061276": [60, 17, 128, 64, 38, 49, 32, 32, 52, 9]}, {"55061287": [16, 1, 9]}, {"55061291": [24]}, {"55061294": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061312": [142, 40]}, {"55061315": [12, 1]}, {"55061318": [248, 9]}, {"55061324": [20, 80, 255, 239]}, {"55061332": [54, 35]}, {"55061336": [16]}, {"55061339": [2]}, {"55061344": [52, 3]}, {"55061348": [143, 176]}, {"55061351": [16, 143, 177]}, {"55061355": [20, 143, 191]}, {"55061359": [24, 39, 189]}, {"55061363": [32, 3, 224]}, {"55061367": [8]}, {"55061372": [140, 136, 29, 44, 52, 9]}, {"55061379": [1]}, {"55061381": [9, 78]}, {"55061384": [1, 9, 16, 36, 16, 64]}, {"55061391": [36]}, {"55061396": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55061411": [164, 52, 1]}, {"55061415": [61, 17, 129]}, {"55061419": [10]}, {"55061425": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55061435": [25]}, {"55061440": [52, 13]}, {"55061443": [1, 161, 141, 29, 40, 37, 74]}, {"55061451": [3, 16]}, {"55061455": [9]}, {"55061460": [52, 12]}, {"55061463": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55061479": [14]}, {"55061484": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 2, 1, 10, 64, 33, 129, 8]}, {"55061520": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061532": [52, 2]}, {"55061536": [3, 224]}, {"55061539": [8]}, {"55061544": [60, 8, 128, 64, 37, 8, 28]}, {"55061552": [129, 8]}, {"55061556": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061568": [3, 224]}, {"55061571": [8]}, {"55061576": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55061588": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061600": [3, 224]}, {"55061603": [8]}, {"55061608": [175, 164]}, {"55061611": [104, 175, 165]}, {"55061615": [108, 175, 166]}, {"55061619": [112, 175, 167]}, {"55061623": [116, 39, 189, 255, 232, 175, 163]}, {"55061631": [16, 175, 191]}, {"55061635": [20, 60, 8, 128, 64, 37, 8, 32, 16, 129, 8]}, {"55061648": [17]}, {"55061651": [14]}, {"55061656": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55061667": [1, 165, 42]}, {"55061672": [60, 9, 128, 65, 52, 10]}, {"55061679": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 63]}, {"55061708": [143, 163]}, {"55061711": [16, 143, 191]}, {"55061715": [20, 39, 189]}, {"55061719": [24, 143, 164]}, {"55061723": [104, 143, 165]}, {"55061727": [108, 143, 166]}, {"55061731": [112, 143, 167]}, {"55061735": [116, 132, 110, 19, 196, 3, 224]}, {"55061743": [8]}, {"55061748": [147, 25]}, {"55061751": [116, 52, 1]}, {"55061755": [255, 23, 33]}, {"55061759": [2]}, {"55061764": [52, 25]}, {"55061767": [44, 3, 224]}, {"55061771": [8, 167, 185]}, {"55061775": [154, 147, 44]}, {"55061779": [116, 52, 1]}, {"55061783": [255, 21, 129]}, {"55061787": [2]}, {"55061792": [52, 12]}, {"55061795": [44, 3, 224]}, {"55061799": [8]}, {"55061804": [145, 174]}, {"55061807": [116, 52, 1]}, {"55061811": [255, 21, 193]}, {"55061815": [2]}, {"55061820": [52, 14]}, {"55061823": [44, 3, 224]}, {"55061827": [8, 167, 174]}, {"55061831": [154, 145, 207]}, {"55061835": [116, 52, 1]}, {"55061839": [255, 21, 225]}, {"55061843": [2]}, {"55061848": [52, 15]}, {"55061851": [44, 3, 224]}, {"55061855": [8, 167, 175]}, {"55061859": [154, 60, 8, 128, 64, 37, 8, 32, 20, 142, 9]}, {"55061871": [104, 173, 9]}, {"55061876": [142, 9]}, {"55061879": [108, 173, 9]}, {"55061883": [4, 150, 9]}, {"55061887": [112, 165, 9]}, {"55061891": [8, 150, 9]}, {"55061895": [156, 165, 9]}, {"55061899": [10, 3, 224]}, {"55061903": [8, 142, 14]}, {"55061907": [4, 39, 189, 255, 224, 175, 176]}, {"55061915": [16, 175, 177]}, {"55061919": [20, 175, 191]}, {"55061923": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 20, 142, 8]}, {"55061943": [4, 17]}, {"55061947": [5]}, {"55061952": [12, 16, 11, 143]}, {"55061960": [16]}, {"55061963": [3]}, {"55061968": [12, 16, 11, 162]}, {"55061976": [12, 16, 11, 130, 52, 4]}, {"55061984": [12, 16, 11, 130, 52, 4]}, {"55061991": [1, 12, 16, 11, 130, 52, 4]}, {"55061999": [2, 143, 176]}, {"55062003": [16, 143, 177]}, {"55062007": [20, 143, 191]}, {"55062011": [24, 39, 189]}, {"55062015": [32, 3, 224]}, {"55062019": [8]}, {"55062024": [2, 4, 64, 33, 145, 9]}, {"55062031": [108, 52, 1]}, {"55062035": [255, 17, 33]}, {"55062039": [7]}, {"55062044": [2, 9, 72, 33, 145, 41]}, {"55062051": [116, 52, 1]}, {"55062055": [44, 17, 33]}, {"55062059": [2]}, {"55062064": [161, 9]}, {"55062067": [105, 3, 224]}, {"55062071": [8]}, {"55062076": [39, 189, 255, 232, 175, 191]}, {"55062083": [16, 142, 40]}, {"55062088": [174, 8]}, {"55062091": [64, 142, 40]}, {"55062095": [4, 174, 8]}, {"55062099": [68, 150, 40]}, {"55062103": [8, 166, 8]}, {"55062107": [72, 162]}, {"55062110": [15, 51, 146, 8]}, {"55062115": [74, 52, 1]}, {"55062119": [255, 21, 1]}, {"55062123": [3]}, {"55062128": [12, 16, 11, 176]}, {"55062136": [143, 191]}, {"55062139": [16, 39, 189]}, {"55062143": [24, 3, 224]}, {"55062147": [8]}, {"55062152": [142, 8]}, {"55062155": [64, 174, 8]}, {"55062159": [104, 142, 8]}, {"55062163": [68, 174, 8]}, {"55062167": [108, 150, 8]}, {"55062171": [72, 166, 8]}, {"55062175": [112, 146, 8]}, {"55062179": [104, 52, 1]}, {"55062183": [255, 21, 1]}, {"55062187": [3]}, {"55062192": [52, 8]}, {"55062195": [1, 162, 8, 15, 51, 3, 224]}, {"55062203": [8]}, {"55062208": [39, 189, 255, 232, 175, 191]}, {"55062215": [16, 150, 8]}, {"55062219": [156, 49, 8]}, {"55062223": [64, 17]}, {"55062227": [5]}, {"55062232": [150, 8]}, {"55062235": [112, 49, 8, 255, 15, 53, 8]}, {"55062243": [48, 166, 8]}, {"55062247": [112, 146, 40]}, {"55062251": [1, 162, 8]}, {"55062255": [105, 150, 40]}, {"55062259": [2, 166, 8]}, {"55062263": [106, 142, 40]}, {"55062267": [4, 174, 8]}, {"55062271": [108, 12, 16, 11, 202, 52, 4]}, {"55062280": [12, 16, 11, 202, 52, 4]}, {"55062287": [1, 12, 16, 11, 202, 52, 4]}, {"55062295": [2, 143, 191]}, {"55062299": [16, 39, 189]}, {"55062303": [24, 3, 224]}, {"55062307": [8]}, {"55062312": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 47, 212, 145, 10]}, {"55062327": [108, 52, 1]}, {"55062331": [255, 17, 65]}, {"55062335": [5]}, {"55062340": [1, 42, 72, 33, 145, 41]}, {"55062348": [21, 32]}, {"55062351": [28]}, {"55062356": [60, 9, 128, 64, 37, 41, 47, 199, 37, 41]}, {"55062367": [1, 145, 42]}, {"55062372": [17, 64]}, {"55062375": [19]}, {"55062380": [2, 10, 88, 33, 145, 107]}, {"55062387": [116, 52, 1]}, {"55062391": [255, 17, 97, 255, 248]}, {"55062400": [146, 12]}, {"55062403": [108, 17, 138, 255, 245]}, {"55062412": [146, 12]}, {"55062415": [109, 17, 138, 255, 242]}, {"55062424": [146, 12]}, {"55062427": [110, 17, 138, 255, 239]}, {"55062436": [161, 11]}, {"55062439": [105, 161, 10]}, {"55062443": [108, 16]}, {"55062447": [4]}, {"55062452": [52, 9]}, {"55062455": [255, 161, 9]}, {"55062459": [105, 161, 9]}, {"55062463": [108, 3, 224]}, {"55062467": [8]}, {"55062472": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55062485": [1, 1, 1, 1, 1]}, {"55062491": [1, 1, 1, 1, 1]}, {"55062497": [1]}, {"55062499": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55062509": [51, 8, 33, 32, 15]}, {"55062515": [71, 21, 234]}, {"55062519": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062531": [164]}, {"55062533": [15, 122, 3, 20, 64]}, {"55062539": [5, 52, 2, 72, 48, 21, 226]}, {"55062547": [7]}, {"55062552": [36, 25]}, {"55062555": [3, 16]}, {"55062559": [4, 52, 2, 99, 17, 21, 226]}, {"55062567": [2]}, {"55062572": [36, 25]}, {"55062575": [3, 3, 224]}, {"55062579": [8]}, {"55062584": [141, 173, 138, 160, 52, 2, 128]}, {"55062592": [16, 77]}, {"55062595": [2]}, {"55062600": [16]}, {"55062603": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55062619": [1, 16, 64]}, {"55062623": [2]}, {"55062628": [16]}, {"55062631": [2, 52, 2]}, {"55062635": [1, 161, 226, 28, 191, 3, 224]}, {"55062643": [8]}, {"55062649": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062663": [164]}, {"55062665": [15, 122, 3, 20, 64]}, {"55062671": [5, 52, 2, 72, 48, 21, 226]}, {"55062679": [7]}, {"55062684": [36, 25]}, {"55062687": [3, 16]}, {"55062691": [4, 52, 2, 99, 17, 21, 226]}, {"55062699": [2]}, {"55062704": [36, 25]}, {"55062707": [3, 3, 224]}, {"55062711": [8]}, {"55062716": [162, 37]}, {"55062719": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55062731": [4, 142, 10]}, {"55062736": [17, 64]}, {"55062739": [11]}, {"55062745": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55062757": [24, 194, 2, 23]}, {"55062763": [3, 49, 89]}, {"55062767": [255, 129, 234]}, {"55062772": [3, 42, 200, 37, 8, 16, 12, 50, 161, 249]}, {"55062784": [3, 224]}, {"55062787": [8]}] \ No newline at end of file +[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 91]}, {"11325064": [12, 16, 11, 58, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 11, 149]}, {"11427312": [12, 16, 12, 62]}, {"11431496": [12, 16, 11, 66, 1, 15, 192, 33]}, {"11562028": [12, 16, 12, 95]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 12, 78]}, {"11882076": [12, 16, 12, 43]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 11]}, {"12286100": [0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 11, 123, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 11, 130, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 11, 109, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 43]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 9, 207]}, {"12427480": [12, 16, 10, 21]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 25]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 11, 74, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 55]}, {"12491480": [12, 16, 10, 64]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 15]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 11, 137]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 140, 73]}, {"14149503": [164]}, {"14149512": [2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149856": [87]}, {"14149859": [15]}, {"14357459": [118]}, {"14624335": [118]}, {"14872723": [52]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 9, 236, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 9, 236, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057408": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058464": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 104, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 132, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 172, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 212, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 252, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 36, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 64, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 92, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 120, 83, 65, 56, 67]}, {"55058613": [235, 21, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 55, 68]}, {"55058629": [235, 22, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 57, 69]}, {"55058645": [235, 23, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 63, 71]}, {"55058677": [244, 25, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 10, 6]}, {"55058757": [185, 1, 3, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 28]}, {"55058773": [185, 1, 4, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 29]}, {"55058789": [185, 1, 5, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 30]}, {"55058805": [185, 1, 6, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 42]}, {"55058821": [185, 1, 7, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 97]}, {"55058837": [185, 1, 10, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 98]}, {"55058853": [184, 2]}, {"55058856": [128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 99]}, {"55058869": [184, 2, 1, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 100]}, {"55058885": [184, 2, 2, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 101]}, {"55058901": [184, 2, 3, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 124]}, {"55058917": [184, 2, 4, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 125]}, {"55058933": [184, 2, 5, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 126]}, {"55058949": [184, 2, 6, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 127]}, {"55058965": [184, 2, 7, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 162]}, {"55058981": [184, 2, 8, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 135]}, {"55058997": [184, 2, 9, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 136]}, {"55059013": [200, 4]}, {"55059016": [128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 137]}, {"55059029": [200, 4, 1, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 138]}, {"55059045": [200, 4, 2, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 139]}, {"55059061": [200, 4, 3, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 140]}, {"55059077": [200, 4, 4, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 142]}, {"55059093": [200, 4, 5, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 143]}, {"55059109": [200, 4, 6, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 163]}, {"55059125": [200, 4, 7, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 165]}, {"55059141": [200, 4, 8, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 146]}, {"55059157": [200, 4, 9, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 2, 147]}, {"55059173": [170, 3, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 148]}, {"55059189": [170, 4, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 149]}, {"55059205": [170, 5, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 166]}, {"55059221": [170, 6, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 169]}, {"55059237": [170, 7, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 155]}, {"55059253": [170, 8, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 159]}, {"55059269": [170, 11, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 160]}, {"55059285": [170, 12, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 161]}, {"55059301": [170, 13, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 61, 67, 12]}, {"55059317": [248, 255, 255, 128, 64, 37, 236, 128, 64, 36, 96, 77, 131, 247, 85]}, {"55059333": [183, 255, 255, 128, 64, 37, 228, 128, 64, 36, 96, 77, 146, 219, 230]}, {"55059349": [216, 255, 255, 128, 64, 37, 228, 128, 64, 37, 172, 77, 147, 218, 230]}, {"55059365": [216, 255, 255, 128, 64, 37, 228, 128, 64, 37, 172, 77, 148, 217, 230]}, {"55059381": [216, 255, 255, 128, 64, 37, 228, 128, 64, 37, 172, 77, 142, 224, 50]}, {"55059397": [206, 255, 255, 128, 64, 37, 228, 128, 64, 37, 200, 77, 143, 224, 50]}, {"55059413": [206, 255, 255, 128, 64, 37, 228, 128, 64, 37, 200, 77, 144, 224, 50]}, {"55059429": [206, 255, 255, 128, 64, 37, 228, 128, 64, 37, 200, 77, 140, 238, 52]}, {"55059445": [187, 255, 255, 128, 64, 37, 228, 128, 64, 36, 96, 77, 141, 238, 52]}, {"55059461": [187, 255, 255, 128, 64, 37, 228, 128, 64, 36, 96, 79, 65, 19, 233]}, {"55059477": [189, 255, 255, 128, 64, 38, 124, 128, 64, 36, 96, 79, 65, 30, 228]}, {"55059493": [205, 255, 255, 128, 64, 38, 156, 128, 64, 37, 148, 79, 65, 31, 232]}, {"55059509": [205, 255, 255, 128, 64, 38, 188, 128, 64, 36, 96, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 38, 228, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 39, 44, 128, 64, 39, 16, 3, 224]}, {"55059555": [8, 52, 162]}, {"55059560": [144, 136]}, {"55059563": [125, 52, 1]}, {"55059567": [255, 17, 1]}, {"55059571": [2, 52, 2]}, {"55059575": [8, 52, 2]}, {"55059579": [9, 3, 224]}, {"55059583": [8]}, {"55059588": [144, 136]}, {"55059591": [163, 49, 8]}, {"55059595": [192, 17]}, {"55059599": [5, 52, 2]}, {"55059603": [84, 52, 1]}, {"55059607": [64, 17, 1]}, {"55059611": [2, 52, 2]}, {"55059615": [53, 52, 2]}, {"55059619": [54, 3, 224]}, {"55059623": [8]}, {"55059628": [144, 136]}, {"55059631": [163, 49, 8]}, {"55059635": [24, 17]}, {"55059639": [5, 52, 2]}, {"55059643": [50, 52, 1]}, {"55059647": [8, 17, 1]}, {"55059651": [2, 52, 2]}, {"55059655": [51, 52, 2]}, {"55059659": [52, 3, 224]}, {"55059663": [8]}, {"55059668": [144, 136]}, {"55059671": [163, 49, 8]}, {"55059675": [3, 17]}, {"55059679": [5, 52, 2]}, {"55059683": [4, 52, 1]}, {"55059687": [1, 17, 1]}, {"55059691": [2, 52, 2]}, {"55059695": [48, 52, 2]}, {"55059699": [49, 3, 224]}, {"55059703": [8]}, {"55059708": [144, 136]}, {"55059711": [162, 49, 8]}, {"55059715": [192, 17]}, {"55059719": [5, 52, 2]}, {"55059723": [5, 52, 1]}, {"55059727": [64, 17, 1]}, {"55059731": [2, 52, 2]}, {"55059735": [96, 52, 2]}, {"55059739": [123, 3, 224]}, {"55059743": [8]}, {"55059748": [144, 136]}, {"55059751": [162, 49, 8]}, {"55059755": [48, 17]}, {"55059759": [2, 52, 2]}, {"55059763": [69, 52, 2]}, {"55059767": [70, 3, 224]}, {"55059771": [8]}, {"55059776": [144, 136]}, {"55059779": [162, 49, 8]}, {"55059783": [6, 17]}, {"55059787": [2, 52, 2]}, {"55059791": [55, 52, 2]}, {"55059795": [56, 3, 224]}, {"55059799": [8]}, {"55059804": [144, 136]}, {"55059807": [161, 49, 8]}, {"55059811": [32, 17]}, {"55059815": [2, 52, 2]}, {"55059819": [121, 52, 2]}, {"55059823": [122, 3, 224]}, {"55059827": [8]}, {"55059832": [144, 136]}, {"55059835": [161, 49, 8]}, {"55059839": [4, 17]}, {"55059843": [2, 52, 2]}, {"55059847": [119, 52, 2]}, {"55059851": [120, 3, 224]}, {"55059855": [8]}, {"55059860": [144, 136]}, {"55059863": [50, 17]}, {"55059867": [2, 52, 2]}, {"55059871": [192, 52, 2]}, {"55059875": [193, 3, 224]}, {"55059879": [8]}, {"55059884": [144, 136]}, {"55059887": [163, 49, 8]}, {"55059891": [3, 17]}, {"55059895": [2, 52, 2]}, {"55059899": [77, 52, 162]}, {"55059904": [3, 224]}, {"55059907": [8]}, {"55059912": [144, 136]}, {"55059915": [163, 49, 8]}, {"55059919": [24, 17]}, {"55059923": [2, 52, 2]}, {"55059927": [77, 52, 162]}, {"55059932": [3, 224]}, {"55059935": [8]}, {"55059940": [3, 224]}, {"55059943": [8]}, {"55059948": [52, 8]}, {"55059951": [1, 160, 136]}, {"55059955": [62, 3, 224]}, {"55059959": [8]}, {"55059964": [36, 136]}, {"55059967": [134, 36, 9, 255, 255, 37, 41]}, {"55059975": [1, 52, 1]}, {"55059979": [3]}, {"55059981": [41, 8, 42, 20, 32]}, {"55059987": [7]}, {"55059992": [1, 9, 80, 33, 145, 75]}, {"55060000": [52, 1]}, {"55060003": [255, 21, 97, 255, 247]}, {"55060012": [161, 69]}, {"55060016": [3, 224]}, {"55060019": [8]}, {"55060024": [36, 136]}, {"55060027": [168, 1, 6, 64, 33, 145, 9]}, {"55060036": [1, 37, 72, 37, 161, 9]}, {"55060044": [3, 224]}, {"55060047": [8]}, {"55060052": [36, 136]}, {"55060055": [188, 1, 5, 64, 33, 129, 9]}, {"55060064": [5, 33]}, {"55060067": [2]}, {"55060072": [52, 9]}, {"55060076": [37, 41]}, {"55060079": [1, 161, 9]}, {"55060084": [3, 224]}, {"55060087": [8]}, {"55060092": [52, 8]}, {"55060095": [1, 160, 136]}, {"55060099": [61, 52, 8]}, {"55060103": [20, 160, 136]}, {"55060107": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060119": [8]}, {"55060124": [52, 8]}, {"55060127": [1, 160, 136]}, {"55060131": [50, 160, 136]}, {"55060135": [58, 52, 8]}, {"55060139": [48, 164, 136, 19, 244, 160, 136]}, {"55060147": [51, 3, 224]}, {"55060151": [8]}, {"55060156": [52, 8]}, {"55060159": [2, 160, 136]}, {"55060163": [50, 52, 8]}, {"55060167": [1, 160, 136]}, {"55060171": [58, 160, 136]}, {"55060175": [60, 52, 8]}, {"55060179": [96, 164, 136, 19, 244, 160, 136]}, {"55060187": [51, 3, 224]}, {"55060191": [8]}, {"55060196": [144, 136]}, {"55060199": [124, 52, 1]}, {"55060203": [255, 17, 1]}, {"55060207": [6, 52, 2]}, {"55060211": [107, 144, 136]}, {"55060215": [148, 45, 8]}, {"55060219": [6, 17]}, {"55060223": [2, 52, 2]}, {"55060227": [106, 52, 2]}, {"55060231": [3, 3, 224]}, {"55060235": [8]}, {"55060240": [144, 136]}, {"55060243": [123, 52, 1]}, {"55060247": [255, 17, 1]}, {"55060251": [2, 52, 162]}, {"55060256": [52, 2]}, {"55060259": [12, 3, 224]}, {"55060263": [8]}, {"55060268": [52, 8]}, {"55060271": [7, 160, 136]}, {"55060275": [123, 3, 224]}, {"55060279": [8]}, {"55060284": [48, 132]}, {"55060287": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060299": [140, 16, 129]}, {"55060303": [22, 145, 2]}, {"55060307": [117, 52, 1]}, {"55060311": [141, 16, 129]}, {"55060315": [19, 145, 2]}, {"55060319": [117, 16, 128]}, {"55060323": [17, 145, 2]}, {"55060327": [116, 52, 1]}, {"55060331": [138, 16, 129]}, {"55060335": [14, 145, 2]}, {"55060339": [116, 52, 1]}, {"55060343": [139, 16, 129]}, {"55060347": [11, 145, 2]}, {"55060351": [116, 52, 1]}, {"55060355": [88, 16, 129]}, {"55060359": [8, 52, 2]}, {"55060364": [52, 1]}, {"55060367": [120, 16, 129]}, {"55060371": [5, 52, 2]}, {"55060376": [52, 1]}, {"55060379": [121, 16, 129]}, {"55060383": [2, 52, 2]}, {"55060388": [52, 2]}, {"55060391": [255, 3, 224]}, {"55060395": [8]}, {"55060400": [39, 189, 255, 224, 175, 191]}, {"55060407": [16, 175, 176]}, {"55060411": [20, 12, 16, 10, 162]}, {"55060420": [4, 65]}, {"55060423": [2]}, {"55060428": [52, 2]}, {"55060431": [91]}, {"55060433": [64, 32, 33, 12, 16, 10, 238]}, {"55060444": [16, 96]}, {"55060447": [11, 175, 163]}, {"55060451": [28, 60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060463": [6, 144, 102]}, {"55060467": [7, 140, 105]}, {"55060471": [8, 1, 32, 248, 9]}, {"55060480": [143, 163]}, {"55060483": [28, 144, 101]}, {"55060487": [3, 16]}, {"55060491": [10, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060503": [6]}, {"55060505": [74]}, {"55060507": [24]}, {"55060510": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060520": [12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060531": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060542": [48, 33, 143, 191]}, {"55060547": [16, 143, 176]}, {"55060551": [20, 39, 189]}, {"55060555": [32, 3, 224]}, {"55060559": [8]}, {"55060564": [143, 166]}, {"55060567": [48, 132, 197]}, {"55060571": [4, 8, 16, 10, 29]}, {"55060580": [143, 185]}, {"55060583": [44, 135, 37]}, {"55060587": [4, 8, 16, 10, 29]}, {"55060596": [60, 10, 128, 64, 37, 74, 32]}, {"55060604": [141, 75]}, {"55060607": [12, 17, 96]}, {"55060611": [2]}, {"55060616": [149, 69]}, {"55060619": [4, 60, 10, 128, 64, 37, 74, 32, 16, 161, 64]}, {"55060632": [60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060644": [3, 224]}, {"55060647": [8]}, {"55060652": [60, 8, 128, 64, 37, 8, 32]}, {"55060660": [141, 9]}, {"55060663": [12, 17, 32]}, {"55060667": [2]}, {"55060672": [129, 3]}, {"55060675": [2]}, {"55060677": [3, 15, 195]}, {"55060681": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55060695": [8]}, {"55060700": [144, 69]}, {"55060703": [3, 60, 8, 128, 64, 37, 8, 32]}, {"55060712": [141, 9]}, {"55060715": [12, 17, 32]}, {"55060719": [2]}, {"55060724": [145, 5]}, {"55060727": [3, 3, 224]}, {"55060731": [8]}, {"55060736": [143, 162]}, {"55060739": [36, 144, 69]}, {"55060744": [60, 8, 128, 64, 37, 8, 32]}, {"55060752": [141, 9]}, {"55060755": [12, 17, 32]}, {"55060759": [19]}, {"55060764": [145, 5]}, {"55060767": [1, 175, 164]}, {"55060772": [175, 165]}, {"55060775": [4, 175, 166]}, {"55060779": [8, 39, 189, 255, 232, 175, 191]}, {"55060787": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55060799": [6, 145, 6]}, {"55060803": [7, 141, 9]}, {"55060807": [8, 1, 32, 248, 9]}, {"55060816": [143, 191]}, {"55060819": [16, 39, 189]}, {"55060823": [24, 143, 164]}, {"55060828": [143, 165]}, {"55060831": [4, 143, 166]}, {"55060835": [8, 3, 224]}, {"55060839": [8]}, {"55060844": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55060855": [16, 175, 163]}, {"55060859": [20, 175, 191]}, {"55060863": [24, 12, 16, 10, 104]}, {"55060872": [143, 162]}, {"55060875": [16, 143, 163]}, {"55060879": [20, 143, 191]}, {"55060883": [24, 39, 189]}, {"55060887": [32, 3, 224]}, {"55060891": [8]}, {"55060896": [39, 189, 255, 232, 175, 191]}, {"55060903": [16, 60, 8, 128, 64, 37, 8, 32]}, {"55060912": [173]}, {"55060916": [173]}, {"55060919": [4, 173]}, {"55060923": [8, 173]}, {"55060927": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55060943": [42]}, {"55060949": [9, 15, 195, 1, 33, 32, 38]}, {"55060957": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 162]}, {"55060972": [4, 64]}, {"55060975": [34]}, {"55060980": [52, 68]}, {"55060984": [12, 16, 10, 238]}, {"55060992": [16, 96]}, {"55060995": [12]}, {"55061000": [60, 8, 128, 64, 37, 8, 32]}, {"55061008": [140, 105]}, {"55061012": [173, 9]}, {"55061016": [140, 105]}, {"55061019": [4, 173, 9]}, {"55061023": [4, 140, 105]}, {"55061027": [8, 173, 9]}, {"55061031": [8, 52, 9]}, {"55061035": [1, 173, 9]}, {"55061039": [12, 144, 98]}, {"55061044": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061060": [52, 1]}, {"55061063": [10, 21, 65]}, {"55061067": [6]}, {"55061072": [149, 42]}, {"55061075": [28, 49, 74, 240, 31]}, {"55061081": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061091": [28, 129, 9, 4, 36, 5, 33]}, {"55061099": [2]}, {"55061105": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061115": [16, 39, 189]}, {"55061119": [24, 3, 224]}, {"55061123": [8]}, {"55061128": [39, 189, 255, 232, 175, 191]}, {"55061135": [16, 12, 16, 10, 176]}, {"55061144": [36, 1, 255, 255, 16, 65]}, {"55061151": [4]}, {"55061156": [52, 68]}, {"55061160": [12, 16, 10, 225]}, {"55061168": [143, 191]}, {"55061171": [16, 39, 189]}, {"55061175": [24, 3, 224]}, {"55061179": [8]}, {"55061184": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061195": [164, 52, 8]}, {"55061200": [52, 137]}, {"55061204": [148, 170]}, {"55061208": [52, 1, 1, 156, 21, 65]}, {"55061215": [5, 52, 8]}, {"55061219": [3, 148, 171]}, {"55061223": [28, 49, 105]}, {"55061227": [255, 16]}, {"55061231": [31]}, {"55061236": [52, 1]}, {"55061239": [10, 21, 65]}, {"55061243": [14]}, {"55061248": [148, 171]}, {"55061251": [28, 52, 1]}, {"55061255": [16, 20, 65]}, {"55061259": [8]}, {"55061264": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061275": [4]}, {"55061280": [36, 2, 255, 255, 16]}, {"55061287": [21]}, {"55061292": [52, 8]}, {"55061295": [1, 49, 105]}, {"55061299": [31, 52, 1]}, {"55061303": [21, 21, 65]}, {"55061307": [12]}, {"55061312": [52, 1]}, {"55061315": [62, 16, 129]}, {"55061319": [7]}, {"55061324": [52, 1]}, {"55061327": [66, 16, 129]}, {"55061331": [4]}, {"55061336": [36, 2, 255, 255, 16]}, {"55061343": [7]}, {"55061348": [52, 8]}, {"55061351": [2, 144, 169, 1, 65]}, {"55061357": [2, 18]}, {"55061361": [72, 16, 37]}, {"55061365": [2, 18]}, {"55061369": [73, 16, 37, 3, 224]}, {"55061375": [8]}, {"55061380": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061395": [4, 141, 9]}, {"55061400": [17, 32]}, {"55061403": [5]}, {"55061409": [9, 82, 2, 21, 68, 255, 250]}, {"55061420": [49, 34]}, {"55061423": [255, 3, 224]}, {"55061427": [8]}, {"55061432": [39, 189, 255, 224, 175, 176]}, {"55061439": [16, 175, 177]}, {"55061443": [20, 175, 191]}, {"55061447": [24, 52, 130]}, {"55061452": [52, 80]}, {"55061456": [38, 8, 255, 128, 5]}, {"55061463": [18]}, {"55061468": [60, 17, 128, 64, 38, 49, 32, 32, 52, 9]}, {"55061479": [16, 1, 9]}, {"55061483": [24]}, {"55061486": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061504": [142, 40]}, {"55061507": [12, 1]}, {"55061510": [248, 9]}, {"55061516": [20, 80, 255, 239]}, {"55061524": [54, 35]}, {"55061528": [16]}, {"55061531": [2]}, {"55061536": [52, 3]}, {"55061540": [143, 176]}, {"55061543": [16, 143, 177]}, {"55061547": [20, 143, 191]}, {"55061551": [24, 39, 189]}, {"55061555": [32, 3, 224]}, {"55061559": [8]}, {"55061564": [140, 136, 29, 44, 52, 9]}, {"55061571": [1]}, {"55061573": [9, 78]}, {"55061576": [1, 9, 16, 36, 16, 64]}, {"55061583": [36]}, {"55061588": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55061603": [164, 52, 1]}, {"55061607": [61, 17, 129]}, {"55061611": [10]}, {"55061617": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55061627": [25]}, {"55061632": [52, 13]}, {"55061635": [1, 161, 141, 29, 40, 37, 74]}, {"55061643": [3, 16]}, {"55061647": [9]}, {"55061652": [52, 12]}, {"55061655": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55061671": [14]}, {"55061676": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 2, 1, 10, 64, 33, 129, 8]}, {"55061712": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061724": [52, 2]}, {"55061728": [3, 224]}, {"55061731": [8]}, {"55061736": [60, 8, 128, 64, 37, 8, 28]}, {"55061744": [129, 8]}, {"55061748": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061760": [3, 224]}, {"55061763": [8]}, {"55061768": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55061780": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061792": [3, 224]}, {"55061795": [8]}, {"55061800": [175, 164]}, {"55061803": [104, 175, 165]}, {"55061807": [108, 175, 166]}, {"55061811": [112, 175, 167]}, {"55061815": [116, 39, 189, 255, 232, 175, 163]}, {"55061823": [16, 175, 191]}, {"55061827": [20, 60, 8, 128, 64, 37, 8, 32, 16, 129, 8]}, {"55061840": [17]}, {"55061843": [14]}, {"55061848": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55061859": [1, 165, 42]}, {"55061864": [60, 9, 128, 65, 52, 10]}, {"55061871": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 104]}, {"55061900": [143, 163]}, {"55061903": [16, 143, 191]}, {"55061907": [20, 39, 189]}, {"55061911": [24, 143, 164]}, {"55061915": [104, 143, 165]}, {"55061919": [108, 143, 166]}, {"55061923": [112, 143, 167]}, {"55061927": [116, 132, 110, 19, 196, 3, 224]}, {"55061935": [8]}, {"55061940": [147, 25]}, {"55061943": [116, 52, 1]}, {"55061947": [255, 23, 33]}, {"55061951": [2]}, {"55061956": [52, 25]}, {"55061959": [44, 3, 224]}, {"55061963": [8, 167, 185]}, {"55061967": [154, 147, 44]}, {"55061971": [116, 52, 1]}, {"55061975": [255, 21, 129]}, {"55061979": [2]}, {"55061984": [52, 12]}, {"55061987": [44, 3, 224]}, {"55061991": [8]}, {"55061996": [145, 174]}, {"55061999": [116, 52, 1]}, {"55062003": [255, 21, 193]}, {"55062007": [2]}, {"55062012": [52, 14]}, {"55062015": [44, 3, 224]}, {"55062019": [8, 167, 174]}, {"55062023": [154, 145, 207]}, {"55062027": [116, 52, 1]}, {"55062031": [255, 21, 225]}, {"55062035": [2]}, {"55062040": [52, 15]}, {"55062043": [44, 3, 224]}, {"55062047": [8, 167, 175]}, {"55062051": [154, 60, 8, 128, 64, 37, 8, 32, 20, 142, 9]}, {"55062063": [104, 173, 9]}, {"55062068": [142, 9]}, {"55062071": [108, 173, 9]}, {"55062075": [4, 150, 9]}, {"55062079": [112, 165, 9]}, {"55062083": [8, 150, 9]}, {"55062087": [156, 165, 9]}, {"55062091": [10, 3, 224]}, {"55062095": [8, 142, 14]}, {"55062099": [4, 39, 189, 255, 224, 175, 176]}, {"55062107": [16, 175, 177]}, {"55062111": [20, 175, 191]}, {"55062115": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 20, 142, 8]}, {"55062135": [4, 17]}, {"55062139": [5]}, {"55062144": [12, 16, 11, 191]}, {"55062152": [16]}, {"55062155": [3]}, {"55062160": [12, 16, 11, 210]}, {"55062168": [12, 16, 11, 178, 52, 4]}, {"55062176": [12, 16, 11, 178, 52, 4]}, {"55062183": [1, 12, 16, 11, 178, 52, 4]}, {"55062191": [2, 143, 176]}, {"55062195": [16, 143, 177]}, {"55062199": [20, 143, 191]}, {"55062203": [24, 39, 189]}, {"55062207": [32, 3, 224]}, {"55062211": [8]}, {"55062216": [2, 4, 64, 33, 145, 9]}, {"55062223": [108, 52, 1]}, {"55062227": [255, 17, 33]}, {"55062231": [7]}, {"55062236": [2, 9, 72, 33, 145, 41]}, {"55062243": [116, 52, 1]}, {"55062247": [44, 17, 33]}, {"55062251": [2]}, {"55062256": [161, 9]}, {"55062259": [105, 3, 224]}, {"55062263": [8]}, {"55062268": [39, 189, 255, 232, 175, 191]}, {"55062275": [16, 142, 40]}, {"55062280": [174, 8]}, {"55062283": [64, 142, 40]}, {"55062287": [4, 174, 8]}, {"55062291": [68, 150, 40]}, {"55062295": [8, 166, 8]}, {"55062299": [72, 162]}, {"55062302": [15, 51, 146, 8]}, {"55062307": [74, 52, 1]}, {"55062311": [255, 21, 1]}, {"55062315": [3]}, {"55062320": [12, 16, 11, 224]}, {"55062328": [143, 191]}, {"55062331": [16, 39, 189]}, {"55062335": [24, 3, 224]}, {"55062339": [8]}, {"55062344": [142, 8]}, {"55062347": [64, 174, 8]}, {"55062351": [104, 142, 8]}, {"55062355": [68, 174, 8]}, {"55062359": [108, 150, 8]}, {"55062363": [72, 166, 8]}, {"55062367": [112, 146, 8]}, {"55062371": [104, 52, 1]}, {"55062375": [255, 21, 1]}, {"55062379": [3]}, {"55062384": [52, 8]}, {"55062387": [1, 162, 8, 15, 51, 3, 224]}, {"55062395": [8]}, {"55062400": [39, 189, 255, 232, 175, 191]}, {"55062407": [16, 150, 8]}, {"55062411": [156, 49, 8]}, {"55062415": [64, 17]}, {"55062419": [5]}, {"55062424": [150, 8]}, {"55062427": [112, 49, 8, 255, 15, 53, 8]}, {"55062435": [48, 166, 8]}, {"55062439": [112, 146, 40]}, {"55062443": [1, 162, 8]}, {"55062447": [105, 150, 40]}, {"55062451": [2, 166, 8]}, {"55062455": [106, 142, 40]}, {"55062459": [4, 174, 8]}, {"55062463": [108, 12, 16, 11, 250, 52, 4]}, {"55062472": [12, 16, 11, 250, 52, 4]}, {"55062479": [1, 12, 16, 11, 250, 52, 4]}, {"55062487": [2, 143, 191]}, {"55062491": [16, 39, 189]}, {"55062495": [24, 3, 224]}, {"55062499": [8]}, {"55062504": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 48, 148, 145, 10]}, {"55062519": [108, 52, 1]}, {"55062523": [255, 17, 65]}, {"55062527": [5]}, {"55062532": [1, 42, 72, 33, 145, 41]}, {"55062540": [21, 32]}, {"55062543": [28]}, {"55062548": [60, 9, 128, 64, 37, 41, 48, 135, 37, 41]}, {"55062559": [1, 145, 42]}, {"55062564": [17, 64]}, {"55062567": [19]}, {"55062572": [2, 10, 88, 33, 145, 107]}, {"55062579": [116, 52, 1]}, {"55062583": [255, 17, 97, 255, 248]}, {"55062592": [146, 12]}, {"55062595": [108, 17, 138, 255, 245]}, {"55062604": [146, 12]}, {"55062607": [109, 17, 138, 255, 242]}, {"55062616": [146, 12]}, {"55062619": [110, 17, 138, 255, 239]}, {"55062628": [161, 11]}, {"55062631": [105, 161, 10]}, {"55062635": [108, 16]}, {"55062639": [4]}, {"55062644": [52, 9]}, {"55062647": [255, 161, 9]}, {"55062651": [105, 161, 9]}, {"55062655": [108, 3, 224]}, {"55062659": [8]}, {"55062664": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55062677": [1, 1, 1, 1, 1]}, {"55062683": [1, 1, 1, 1, 1]}, {"55062689": [1]}, {"55062691": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55062701": [51, 8, 33, 32, 15]}, {"55062707": [71, 21, 234]}, {"55062711": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062723": [164]}, {"55062725": [15, 122, 3, 20, 64]}, {"55062731": [5, 52, 2, 72, 48, 21, 226]}, {"55062739": [7]}, {"55062744": [36, 25]}, {"55062747": [3, 16]}, {"55062751": [4, 52, 2, 99, 17, 21, 226]}, {"55062759": [2]}, {"55062764": [36, 25]}, {"55062767": [3, 3, 224]}, {"55062771": [8]}, {"55062776": [141, 173, 138, 160, 52, 2, 128]}, {"55062784": [16, 77]}, {"55062787": [2]}, {"55062792": [16]}, {"55062795": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55062811": [1, 16, 64]}, {"55062815": [2]}, {"55062820": [16]}, {"55062823": [2, 52, 2]}, {"55062827": [1, 161, 226, 28, 191, 3, 224]}, {"55062835": [8]}, {"55062841": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062855": [164]}, {"55062857": [15, 122, 3, 20, 64]}, {"55062863": [5, 52, 2, 72, 48, 21, 226]}, {"55062871": [7]}, {"55062876": [36, 25]}, {"55062879": [3, 16]}, {"55062883": [4, 52, 2, 99, 17, 21, 226]}, {"55062891": [2]}, {"55062896": [36, 25]}, {"55062899": [3, 3, 224]}, {"55062903": [8]}, {"55062908": [162, 37]}, {"55062911": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55062923": [4, 142, 10]}, {"55062928": [17, 64]}, {"55062931": [11]}, {"55062937": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55062949": [24, 194, 2, 23]}, {"55062955": [3, 49, 89]}, {"55062959": [255, 129, 234]}, {"55062964": [3, 42, 200, 37, 8, 16, 12, 98, 161, 249]}, {"55062976": [3, 224]}, {"55062979": [8]}] \ No newline at end of file diff --git a/version.py b/version.py index 50becd5a2..89e0b27a7 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.1 f.LUM' +__version__ = '2.13.2 f.LUM' From 7aa128f23fc9140a6dcff6ef289777ac0cbcb340 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Sun, 15 Jul 2018 14:58:22 -0500 Subject: [PATCH 159/755] Added data for all skulltula locations. --- ASM/src/item_overrides.asm | 2 + ItemList.py | 10 +- Regions.py | 313 +++++++++++++++++++------------------ Rules.py | 155 +++++++++--------- version.py | 2 +- 5 files changed, 248 insertions(+), 234 deletions(-) diff --git a/ASM/src/item_overrides.asm b/ASM/src/item_overrides.asm index 2a5ef9c47..b243ca49d 100755 --- a/ASM/src/item_overrides.asm +++ b/ASM/src/item_overrides.asm @@ -342,6 +342,8 @@ get_override_search_key: li t0, 0x03 ; t0 = skulltula type lhu t3, 0x1C (a1) ; t3 = skulltula token variable andi t1, t3, 0x00FF ; t1 = skulltula flag (used for the lookup) + andi v0, t3, 0x1F00 ; v0 = skulltula scene (shifted) + srl v0, v0, 8 ; v0 = v0 >> 8 (skulltula scene) b @@not_collectable ; create the id nop diff --git a/ItemList.py b/ItemList.py index bb5ce2042..976458f8c 100644 --- a/ItemList.py +++ b/ItemList.py @@ -18,11 +18,11 @@ notmapcompass = ['Bombs (5)'] * 4 + ['Arrows (5)'] * 3 + ['Deku Nuts (5)'] * 3 + ['Rupees (5)'] * 7 + ['Rupees (20)'] * 2 + ['Rupees (50)'] rewardlist = ['Kokiri Emerald', 'Goron Ruby', 'Zora Sapphire', 'Forest Medallion', 'Fire Medallion', 'Water Medallion', 'Spirit Medallion', 'Shadow Medallion', 'Light Medallion'] songlist = ['Zeldas Lullaby', 'Eponas Song', 'Suns Song', 'Sarias Song', 'Song of Time', 'Song of Storms', 'Minuet of Forest', 'Prelude of Light', 'Bolero of Fire', 'Serenade of Water', 'Nocturne of Shadow', 'Requiem of Spirit'] -skulltulla_locations = (['GS1', 'GS2', 'GS3', 'GS4', 'GS5', 'GS6', 'GS7', 'GS8', 'GS9', 'GS10', 'GS11', 'GS12', 'GS13', 'GS14', 'GS15', 'GS16', 'GS17', 'GS18', 'GS19', 'GS20'] + - ['GS21', 'GS22', 'GS23', 'GS24', 'GS25', 'GS26', 'GS27', 'GS28', 'GS29', 'GS30', 'GS31', 'GS32', 'GS33', 'GS34', 'GS35', 'GS36', 'GS37', 'GS38', 'GS39', 'GS40'] + - ['GS41', 'GS42', 'GS43', 'GS44', 'GS45', 'GS46', 'GS47', 'GS48', 'GS49', 'GS50', 'GS51', 'GS52', 'GS53', 'GS54', 'GS55', 'GS56', 'GS57', 'GS58', 'GS59', 'GS60'] + - ['GS61', 'GS62', 'GS63', 'GS64', 'GS65', 'GS66', 'GS67', 'GS68', 'GS69', 'GS70', 'GS71', 'GS72', 'GS73', 'GS74', 'GS75', 'GS76', 'GS77', 'GS78', 'GS79', 'GS80'] + - ['GS81', 'GS82', 'GS83', 'GS84', 'GS85', 'GS86', 'GS87', 'GS88', 'GS89', 'GS90', 'GS91', 'GS92', 'GS93', 'GS94', 'GS95', 'GS96', 'GS97', 'GS98', 'GS99', 'GS100']) +skulltulla_locations = (['GS Kokiri Know It All House', 'GS Kokiri Bean Patch', 'GS Kokiri House of Twins', 'GS Lost Woods Bean Patch Near Bridge', 'GS Lost Woods Bean Patch Near Stage', 'GS Lost Woods Above Stage', 'GS Sacred Forest Meadow', 'GS Deku Tree Compass Room', 'GS Deku Tree Basement Vines', 'GS Deku Tree Basement Gate', 'GS Deku Tree Basement Back Room', 'GS Hyrule Field near Kakariko', 'GS Hyrule Field Near Gerudo Valley', 'GS Castle Market Guard House', 'GS Hyrule Castle Tree', 'GS Hyrule Castle Grotto', 'GS Outside Ganon\'s Castle', 'GS Lon Lon Ranch Tree', 'GS Lon Lon Ranch Rain Shed', 'GS Lon Lon Ranch House Window'] + + ['GS Lon Lon Ranch Back Wall', 'GS Kakariko House Under Construction', 'GS Kakariko Skulltula House', 'GS Kakariko Guard\'s House', 'GS Kakariko Tree', 'GS Kakariko Watchtower', 'GS Kakariko Above Impa\'s House', 'GS Graveyard Wall', 'GS Graveyard Bean Patch', 'GS Mountain Trail Bean Patch', 'GS Mountain Trail Bomb Alcove', 'GS Mountain Trail Path to Crater', 'GS Mountain Trail Above Dodongo\'s Cavern', 'GS Goron City Boulder Maze', 'GS Goron City Center Platform', 'GS Death Mounter Crater Crate', 'GS Death Mounter Bean Patch', 'GS Dodongo\'s Cavern East Side Room', 'GS Dodongo\'s Cavern Vines Above Stairs', 'GS Dodongo\'s Cavern Back Room'] + + ['GS Dodongo\'s Cavern Alcove Above Stairs', 'GS Dodongo\'s Cavern Scarecrow', 'GS Zora River Ladder', 'GS Zora River Tree', 'GS Zora River Near Raised Grottos', 'GS Zora River Above Bridge', 'GS Zora\'s Domain Frozen Waterfall', 'GS Zora\'s Fountain Tree', 'GS Zora\'s Fountain Above the Log', 'GS Zora\'s Fountain Hidden Cave', 'GS Jabu Jabu Water Switch Room', 'GS Jabu Jabu Lobby Basement Lower', 'GS Jabu Jabu Lobby Basement Upper', 'GS Jabu Jabu Near Boss', 'GS Lake Hylia Bean Patch', 'GS Lake Hylia Lab Wall', 'GS Lake Hylia Small Island', 'GS Lake Hylia Giant Tree', 'GS Lab Underwater Crate', 'GS Forest Temple First Room'] + + ['GS Forest Temple Lobby', 'GS Forest Temple Outdoor East', 'GS Forest Temple Outdoor West', 'GS Forest Temple Basement', 'GS Fire Temple Song of Time Room', 'GS Fire Temple Unmarked Bomb Wall', 'GS Fire Temple East Tower Climb', 'GS Fire Temple East Tower Top', 'GS Fire Temple Basement', 'GS Ice Cavern Spinning Scythe Room', 'GS Ice Cavern Heart Piece Room', 'GS Ice Cavern Push Block Room', 'GS Water Temple South Basement', 'GS Water Temple Serpent River', 'GS Water Temple Falling Platform Room', 'GS Water Temple Central Room', 'GS Water Temple Near Boss Key Chest', 'GS Well West Inner Room', 'GS Well East Inner Room', 'GS Well Like Like Cage'] + + ['GS Shadow Temple Like Like Room', 'GS Shadow Temple Crusher Room', 'GS Shadow Temple Single Giant Pot', 'GS Shadow Temple Near Ship', 'GS Shadow Temple Tripple Giant Pot', 'GS Gerudo Valley Small Bridge', 'GS Gerudo Valley Bean Patch', 'GS Gerudo Valley Behind Tent', 'GS Gerudo Valley Pillar', 'GS Gerudo Fortress Archery Range', 'GS Gerudo Fortress Top Floor', 'GS Wasteland Ruins', 'GS Desert Colossus Bean Patch', 'GS Desert Colossus Tree', 'GS Desert Colossus Hill', 'GS Spirit Temple Metal Fence', 'GS Spirit Temple Bomb for Light Room', 'GS Spirit Temple Hall to West Iron Knuckle', 'GS Spirit Temple Boulder Room', 'GS Spirit Temple Lobby']) tradeitems = ['Pocket Egg', 'Pocket Cucco', 'Cojiro', 'Odd Mushroom', 'Poachers Saw', 'Broken Sword', 'Prescription', 'Eyeball Frog', 'Eyedrops', 'Claim Check'] eventlocations = { diff --git a/Regions.py b/Regions.py index abe3e66bd..ba0e7ebf1 100644 --- a/Regions.py +++ b/Regions.py @@ -5,34 +5,34 @@ def create_regions(world): world.regions = [ - create_ow_region('Kokiri Forest', ['Kokiri Sword Chest', 'GS1', 'GS2', 'GS3'], ['Links House', 'Mido House', 'Saria House', 'House of Twins', 'Know It All House', 'Kokiri Shop', 'Deku Tree', 'Lost Woods', 'Lost Woods Bridge', 'Kokiri Forest Storms Grotto']), + create_ow_region('Kokiri Forest', ['Kokiri Sword Chest', 'GS Kokiri Know It All House', 'GS Kokiri Bean Patch', 'GS Kokiri House of Twins'], ['Links House', 'Mido House', 'Saria House', 'House of Twins', 'Know It All House', 'Kokiri Shop', 'Deku Tree', 'Lost Woods', 'Lost Woods Bridge', 'Kokiri Forest Storms Grotto']), create_interior_region('Links House', ['Links Pocket'], ['Links House Exit', 'Child Forest Warp Pad', 'Adult Forest Warp Pad', 'Temple Warp Pad', 'Crater Warp Pad', 'Lake Warp Pad', 'Graveyard Warp Pad', 'Colossus Warp Pad']), create_interior_region('Mido House', ['Mido Chest Top Left', 'Mido Chest Top Right', 'Mido Chest Bottom Left', 'Mido Chest Bottom Right'], ['Mido House Exit']), create_interior_region('Saria House', None, ['Saria House Exit']), create_interior_region('House of Twins', None, ['House of Twins Exit']), create_interior_region('Know It All House', None, ['Know It All House Exit']), create_interior_region('Kokiri Shop', None, ['Kokiri Shop Exit']), - create_dungeon_region('Deku Tree Lobby', ['Deku Tree Lobby Chest', 'Deku Tree Compass Chest', 'Deku Tree Compass Room Side Chest', 'Deku Tree Basement Chest', 'GS8', 'GS9', 'GS10'], ['Deku Tree Exit', 'Deku Tree Slingshot Passage', 'Deku Tree Basement Path']), + create_dungeon_region('Deku Tree Lobby', ['Deku Tree Lobby Chest', 'Deku Tree Compass Chest', 'Deku Tree Compass Room Side Chest', 'Deku Tree Basement Chest', 'GS Deku Tree Compass Room', 'GS Deku Tree Basement Vines', 'GS Deku Tree Basement Gate'], ['Deku Tree Exit', 'Deku Tree Slingshot Passage', 'Deku Tree Basement Path']), create_dungeon_region('Deku Tree Slingshot Room', ['Deku Tree Slingshot Chest', 'Deku Tree Slingshot Room Side Chest'], ['Deku Tree Slingshot Exit']), - create_dungeon_region('Deku Tree Boss Room', ['GS11', 'Queen Gohma Heart', 'Queen Gohma'], ['Deku Tree Basement Vines']), - create_ow_region('Lost Woods', ['Skull Kid', 'Ocarina Memory Game', 'Target in Woods', 'Deku Salesman Woods', 'GS4', 'GS5'], ['Lost Woods Front', 'Meadow Entrance', 'Woods to Goron City', 'Lost Woods Dive Warp', 'Adult Meadow Access', 'Lost Woods Generic Grotto', 'Deku Theater', 'Lost Woods Sales Grotto']), + create_dungeon_region('Deku Tree Boss Room', ['GS Deku Tree Basement Back Room', 'Queen Gohma Heart', 'Queen Gohma'], ['Deku Tree Basement Vines']), + create_ow_region('Lost Woods', ['Skull Kid', 'Ocarina Memory Game', 'Target in Woods', 'Deku Salesman Woods', 'GS Lost Woods Bean Patch Near Bridge', 'GS Lost Woods Bean Patch Near Stage'], ['Lost Woods Front', 'Meadow Entrance', 'Woods to Goron City', 'Lost Woods Dive Warp', 'Adult Meadow Access', 'Lost Woods Generic Grotto', 'Deku Theater', 'Lost Woods Sales Grotto']), create_ow_region('Sacred Forest Meadow Entryway', None, ['Meadow Exit', 'Meadow Gate', 'Front of Meadow Grotto']), create_ow_region('Sacred Forest Meadow', ['Song from Saria'], ['Meadow Gate Exit', 'Meadow Fairy Grotto']), create_ow_region('Lost Woods Bridge', ['Gift from Saria'], ['Kokiri Forest Entrance', 'Forest Exit']), create_ow_region('Hyrule Field', ['Ocarina of Time', 'Song from Ocarina of Time'], ['Field to Forest', 'Field to Lake', 'Field to Valley', 'Field to Castle Town', 'Field to Kakariko', 'Field to Zora River', 'Lon Lon Rance Entrance', 'Remote Southern Grotto', 'Field Near Lake Outside Fence Grotto', 'Field Near Lake Inside Fence Grotto', 'Field Valley Grotto', 'Field West Castle Town Grotto', 'Field Far West Castle Town Grotto', 'Field Kakariko Grotto', 'Field North Lon Lon Grotto']), - create_ow_region('Lake Hylia', ['Underwater Bottle', 'Lake Hylia Sun', 'Lake Hylia Freestanding PoH', 'GS55', 'GS56', 'GS57', 'GS58'], ['Lake Exit', 'Lake Hylia Dive Warp', 'Lake Hylia Lab', 'Fishing Hole', 'Water Temple Entrance', 'Lake Hylia Grotto']), - create_interior_region('Lake Hylia Lab', ['Diving in the Lab', 'GS59']), + create_ow_region('Lake Hylia', ['Underwater Bottle', 'Lake Hylia Sun', 'Lake Hylia Freestanding PoH', 'GS Lake Hylia Bean Patch', 'GS Lake Hylia Lab Wall', 'GS Lake Hylia Small Island', 'GS Lake Hylia Giant Tree'], ['Lake Exit', 'Lake Hylia Dive Warp', 'Lake Hylia Lab', 'Fishing Hole', 'Water Temple Entrance', 'Lake Hylia Grotto']), + create_interior_region('Lake Hylia Lab', ['Diving in the Lab', 'GS Lab Underwater Crate']), create_interior_region('Fishing Hole', ['Child Fishing', 'Adult Fishing']), - create_dungeon_region('Water Temple Lobby', ['Water Temple Map Chest', 'Water Temple Compass Chest', 'Water Temple Torches Chest', 'Water Temple Dragon Chest', 'Water Temple Central Bow Target Chest', 'Water Temple Boss Key Chest', 'Morpha Heart', 'Morpha', 'GS73', 'GS77'], ['Water Temple Exit', 'Water Temple Central Pillar', 'Water Temple Upper Locked Door']), - create_dungeon_region('Water Temple Middle Water Level', ['Water Temple Central Pillar Chest', 'Water Temple Cracked Wall Chest', 'GS75']), - create_dungeon_region('Water Temple Dark Link Region', ['Water Temple Dark Link Chest', 'Water Temple River Chest', 'GS74', 'GS76']), - create_ow_region('Gerudo Valley', ['Gerudo Valley Waterfall Freestanding PoH', 'Gerudo Valley Crate Freestanding PoH', 'GS86', 'GS87'], ['Valley Exit', 'Valley River', 'Bridge Crossing']), - create_ow_region('Gerudo Valley Far Side', ['Gerudo Valley Hammer Rocks Chest', 'GS88', 'GS89'], ['Fortress Entrance']), - create_ow_region('Gerudo Fortress', ['Gerudo Fortress Rooftop Chest', 'Horseback Archery 1000 Points', 'Horseback Archery 1500 Points', 'Gerudo Fortress Carpenter Rescue', 'GS90', 'GS91'], ['Haunted Wasteland Entrance', 'Gerudo Training Grounds Entrance']), - create_ow_region('Haunted Wasteland', ['Haunted Wasteland Structure Chest', 'GS92'], ['Haunted Wasteland Crossing']), - create_ow_region('Desert Colossus', ['Colossus Freestanding PoH', 'Sheik at Colossus', 'GS93', 'GS94', 'GS95'], ['Colossus Fairy', 'Spirit Temple Entrance']), + create_dungeon_region('Water Temple Lobby', ['Water Temple Map Chest', 'Water Temple Compass Chest', 'Water Temple Torches Chest', 'Water Temple Dragon Chest', 'Water Temple Central Bow Target Chest', 'Water Temple Boss Key Chest', 'Morpha Heart', 'Morpha', 'GS Water Temple South Basement', 'GS Water Temple Near Boss Key Chest'], ['Water Temple Exit', 'Water Temple Central Pillar', 'Water Temple Upper Locked Door']), + create_dungeon_region('Water Temple Middle Water Level', ['Water Temple Central Pillar Chest', 'Water Temple Cracked Wall Chest', 'GS Water Temple Falling Platform Room']), + create_dungeon_region('Water Temple Dark Link Region', ['Water Temple Dark Link Chest', 'Water Temple River Chest', 'GS Water Temple Serpent River', 'GS Water Temple Central Room']), + create_ow_region('Gerudo Valley', ['Gerudo Valley Waterfall Freestanding PoH', 'Gerudo Valley Crate Freestanding PoH', 'GS Gerudo Valley Small Bridge', 'GS Gerudo Valley Bean Patch'], ['Valley Exit', 'Valley River', 'Bridge Crossing']), + create_ow_region('Gerudo Valley Far Side', ['Gerudo Valley Hammer Rocks Chest', 'GS Gerudo Valley Behind Tent', 'GS Gerudo Valley Pillar'], ['Fortress Entrance']), + create_ow_region('Gerudo Fortress', ['Gerudo Fortress Rooftop Chest', 'Horseback Archery 1000 Points', 'Horseback Archery 1500 Points', 'Gerudo Fortress Carpenter Rescue', 'GS Gerudo Fortress Archery Range', 'GS Gerudo Fortress Top Floor'], ['Haunted Wasteland Entrance', 'Gerudo Training Grounds Entrance']), + create_ow_region('Haunted Wasteland', ['Haunted Wasteland Structure Chest', 'GS Wasteland Ruins'], ['Haunted Wasteland Crossing']), + create_ow_region('Desert Colossus', ['Colossus Freestanding PoH', 'Sheik at Colossus', 'GS Desert Colossus Bean Patch', 'GS Desert Colossus Tree', 'GS Desert Colossus Hill'], ['Colossus Fairy', 'Spirit Temple Entrance']), create_interior_region('Colossus Fairy', ['Desert Colossus Fairy Reward']), create_dungeon_region('Gerudo Training Grounds Lobby', ['Gerudo Training Grounds Lobby Left Chest', 'Gerudo Training Grounds Lobby Right Chest', 'Gerudo Training Grounds Stalfos Chest', 'Gerudo Training Grounds Beamos Chest'], ['Gerudo Training Grounds Exit', 'Gerudo Training Ground Left Silver Rupees', 'Gerudo Training Ground Beamos', 'Gerudo Training Ground Central Door']), create_dungeon_region('Gerudo Training Grounds Central Maze', ['Gerudo Training Grounds Hidden Ceiling Chest', 'Gerudo Training Grounds Maze Path First Chest', 'Gerudo Training Grounds Maze Path Second Chest', 'Gerudo Training Grounds Maze Path Third Chest', 'Gerudo Training Grounds Maze Path Final Chest'], ['Gerudo Training Grounds Right Locked Doors']), @@ -43,9 +43,9 @@ def create_regions(world): create_dungeon_region('Gerudo Training Grounds Eye Statue Upper', ['Gerudo Training Grounds Near Scarecrow Chest'], ['Gerudo Training Grounds Eye Statue Drop']), create_dungeon_region('Gerudo Training Grounds Heavy Block Room', ['Gerudo Training Grounds Before Heavy Block Chest', 'Gerudo Training Grounds Heavy Block First Chest', 'Gerudo Training Grounds Heavy Block Second Chest', 'Gerudo Training Grounds Heavy Block Third Chest', 'Gerudo Training Grounds Heavy Block Fourth Chest'], ['Gerudo Training Grounds Hidden Hookshot Target']), create_dungeon_region('Spirit Temple Lobby', None, ['Spirit Temple Exit', 'Spirit Temple Crawl Passage', 'Spirit Temple Silver Block']), - create_dungeon_region('Child Spirit Temple', ['Spirit Temple Child Left Chest', 'Spirit Temple Child Right Chest', 'GS96'], ['Child Spirit Temple Passthrough']), - create_dungeon_region('Early Adult Spirit Temple', ['Spirit Temple Compass Chest', 'Spirit Temple Early Adult Right Chest', 'Spirit Temple First Mirror Right Chest', 'Spirit Temple First Mirror Left Chest', 'GS99'], ['Adult Spirit Temple Passthrough']), - create_dungeon_region('Spirit Temple Central Chamber', ['Spirit Temple Map Chest', 'Spirit Temple Child Climb East Chest', 'Spirit Temple Child Climb North Chest', 'Spirit Temple Sun Block Room Chest', 'Spirit Temple Statue Hand Chest', 'Spirit Temple NE Main Room Chest', 'GS97', 'GS98', 'GS100'], ['Spirit Temple to Hands', 'Spirit Temple Central Locked Door']), + create_dungeon_region('Child Spirit Temple', ['Spirit Temple Child Left Chest', 'Spirit Temple Child Right Chest', 'GS Spirit Temple Metal Fence'], ['Child Spirit Temple Passthrough']), + create_dungeon_region('Early Adult Spirit Temple', ['Spirit Temple Compass Chest', 'Spirit Temple Early Adult Right Chest', 'Spirit Temple First Mirror Right Chest', 'Spirit Temple First Mirror Left Chest', 'GS Spirit Temple Boulder Room'], ['Adult Spirit Temple Passthrough']), + create_dungeon_region('Spirit Temple Central Chamber', ['Spirit Temple Map Chest', 'Spirit Temple Child Climb East Chest', 'Spirit Temple Child Climb North Chest', 'Spirit Temple Sun Block Room Chest', 'Spirit Temple Statue Hand Chest', 'Spirit Temple NE Main Room Chest', 'GS Spirit Temple Bomb for Light Room', 'GS Spirit Temple Hall to West Iron Knuckle', 'GS Spirit Temple Lobby'], ['Spirit Temple to Hands', 'Spirit Temple Central Locked Door']), create_dungeon_region('Spirit Temple Outdoor Hands', ['Silver Gauntlets Chest', 'Mirror Shield Chest']), create_dungeon_region('Spirit Temple Beyond Central Locked Door', ['Spirit Temple Near Four Armos Chest', 'Spirit Temple Hallway Left Invisible Chest', 'Spirit Temple Hallway Right Invisible Chest'], ['Spirit Temple Final Locked Door']), create_dungeon_region('Spirit Temple Beyond Final Locked Door', ['Spirit Temple Boss Key Chest', 'Spirit Temple Topmost Chest', 'Twinrova Heart', 'Twinrova']), @@ -53,12 +53,12 @@ def create_regions(world): 'Castle Town Bombchu Bowling', 'Castle Town Potion Shop', 'Castle Town Treasure Chest Game', 'Castle Town Bombchu Shop', 'Castle Town Dog Lady', 'Castle Town Man in Green House']), create_interior_region('Temple of Time', ['Zelda'], ['Temple of Time Exit', 'Door of Time']), create_interior_region('Beyond Door of Time', ['Master Sword Pedestal', 'Sheik at Temple'], ['Emerge as Adult']), - create_ow_region('Hyrule Castle Grounds', ['Malon Egg', 'GS15'], ['Hyrule Castle Grounds Exit', 'Hyrule Castle Garden', 'Hyrule Castle Fairy', 'Castle Storms Grotto']), + create_ow_region('Hyrule Castle Grounds', ['Malon Egg', 'GS Hyrule Castle Tree'], ['Hyrule Castle Grounds Exit', 'Hyrule Castle Garden', 'Hyrule Castle Fairy', 'Castle Storms Grotto']), create_ow_region('Hyrule Castle Garden', ['Zeldas Letter', 'Impa at Castle'], ['Hyrule Castle Garden Exit']), create_interior_region('Hyrule Castle Fairy', ['Hyrule Castle Fairy Reward']), - create_ow_region('Ganons Castle Grounds', ['GS17'], ['Ganons Castle Grounds Exit', 'Ganons Castle Fairy', 'Rainbow Bridge']), + create_ow_region('Ganons Castle Grounds', ['GS Outside Ganon\'s Castle'], ['Ganons Castle Grounds Exit', 'Ganons Castle Fairy', 'Rainbow Bridge']), create_interior_region('Ganons Castle Fairy', ['Ganons Castle Fairy Reward']), - create_interior_region('Castle Town Rupee Room', ['10 Big Poes', 'GS14']), + create_interior_region('Castle Town Rupee Room', ['10 Big Poes', 'GS Castle Market Guard House']), create_interior_region('Castle Town Bazaar'), create_interior_region('Castle Town Mask Shop'), create_interior_region('Castle Town Shooting Gallery', ['Child Shooting Gallery']), @@ -68,7 +68,7 @@ def create_regions(world): create_interior_region('Castle Town Bombchu Shop'), create_interior_region('Castle Town Dog Lady', ['Dog Lady']), create_interior_region('Castle Town Man in Green House'), - create_ow_region('Kakariko Village', ['Man on Roof', 'Anju as Adult', 'Anjus Chickens', 'Sheik in Kakariko', 'GS22', 'GS23', 'GS24', 'GS25', 'GS26', 'GS27'], ['Kakariko Exit', 'Carpenter Boss House', 'House of Skulltulla', 'Impas House', 'Impas House Back', 'Windmill', 'Kakariko Bazaar', 'Kakariko Shooting Gallery', 'Bottom of the Well', + create_ow_region('Kakariko Village', ['Man on Roof', 'Anju as Adult', 'Anjus Chickens', 'Sheik in Kakariko', 'GS Kakariko House Under Construction', 'GS Kakariko Skulltula House', 'GS Kakariko Guard\'s House', 'GS Kakariko Tree', 'GS Kakariko Watchtower', 'GS Kakariko Above Impa\'s House'], ['Kakariko Exit', 'Carpenter Boss House', 'House of Skulltulla', 'Impas House', 'Impas House Back', 'Windmill', 'Kakariko Bazaar', 'Kakariko Shooting Gallery', 'Bottom of the Well', 'Kakariko Potion Shop Front', 'Kakariko Potion Shop Back', 'Odd Medicine Building', 'Kakariko Bombable Grotto', 'Kakariko Back Grotto', 'Graveyard Entrance', 'Death Mountain Entrance']), create_interior_region('Carpenter Boss House'), create_interior_region('House of Skulltulla', ['10 Gold Skulltulla Reward', '20 Gold Skulltulla Reward', '30 Gold Skulltulla Reward', '40 Gold Skulltulla Reward', '50 Gold Skulltulla Reward']), @@ -81,8 +81,8 @@ def create_regions(world): create_interior_region('Kakariko Potion Shop Back'), create_interior_region('Odd Medicine Building'), create_dungeon_region('Bottom of the Well', ['Bottom of the Well Front Left Hidden Wall', 'Bottom of the Well Front Center Bombable', 'Bottom of the Well Right Bottom Hidden Wall', 'Bottom of the Well Center Large Chest', 'Bottom of the Well Center Small Chest', 'Bottom of the Well Back Left Bombable', 'Bottom of the Well Freestanding Key', - 'Bottom of the Well Defeat Boss', 'Bottom of the Well Invisible Chest', 'Bottom of the Well Underwater Front Chest', 'Bottom of the Well Underwater Left Chest', 'Bottom of the Well Basement Chest', 'Bottom of the Well Locked Pits', 'Bottom of the Well Behind Right Grate', 'GS78', 'GS79', 'GS80'], ['Bottom of the Well Exit']), - create_ow_region('Graveyard', ['Graveyard Freestanding PoH', 'Gravedigging Tour', 'GS28', 'GS29'], ['Shield Grave', 'Composer Grave', 'Heart Piece Grave', 'Dampes Grave', 'Dampes House', 'Graveyard Exit']), + 'Bottom of the Well Defeat Boss', 'Bottom of the Well Invisible Chest', 'Bottom of the Well Underwater Front Chest', 'Bottom of the Well Underwater Left Chest', 'Bottom of the Well Basement Chest', 'Bottom of the Well Locked Pits', 'Bottom of the Well Behind Right Grate', 'GS Well West Inner Room', 'GS Well East Inner Room', 'GS Well Like Like Cage'], ['Bottom of the Well Exit']), + create_ow_region('Graveyard', ['Graveyard Freestanding PoH', 'Gravedigging Tour', 'GS Graveyard Wall', 'GS Graveyard Bean Patch'], ['Shield Grave', 'Composer Grave', 'Heart Piece Grave', 'Dampes Grave', 'Dampes House', 'Graveyard Exit']), create_interior_region('Shield Grave', ['Shield Grave Chest']), create_interior_region('Heart Piece Grave', ['Heart Piece Grave Chest']), create_interior_region('Composer Grave', ['Composer Grave Chest', 'Song from Composer Grave']), @@ -91,54 +91,54 @@ def create_regions(world): create_ow_region('Shadow Temple Warp Region', None, ['Drop to Graveyard', 'Shadow Temple Entrance']), create_dungeon_region('Shadow Temple Beginning', ['Shadow Temple Map Chest', 'Shadow Temple Hover Boots Chest'], ['Shadow Temple Exit', 'Shadow Temple First Pit']), create_dungeon_region('Shadow Temple First Beamos', ['Shadow Temple Compass Chest', 'Shadow Temple Early Silver Rupee Chest'], ['Shadow Temple Bomb Wall']), - create_dungeon_region('Shadow Temple Huge Pit', ['Shadow Temple Invisible Blades Visible Chest', 'Shadow Temple Invisible Blades Invisible Chest', 'Shadow Temple Falling Spikes Lower Chest', 'Shadow Temple Falling Spikes Upper Chest', 'Shadow Temple Falling Spikes Switch Chest', 'Shadow Temple Invisible Spikes Chest', 'Shadow Temple Freestanding Key', 'GS81', 'GS82'], ['Shadow Temple Hookshot Target']), - create_dungeon_region('Shadow Temple Wind Tunnel', ['Shadow Temple Wind Hint Chest', 'Shadow Temple After Wind Enemy Chest', 'Shadow Temple After Wind Hidden Chest', 'GS83', 'GS84'], ['Shadow Temple Boat']), - create_dungeon_region('Shadow Temple Beyond Boat', ['Shadow Temple Spike Walls Left Chest', 'Shadow Temple Boss Key Chest', 'Shadow Temple Hidden Floormaster Chest', 'Bongo Bongo Heart', 'Bongo Bongo', 'GS85']), - create_ow_region('Death Mountain', ['Death Mountain Bombable Chest', 'Biggoron', 'DM Trail Freestanding PoH', 'GS30', 'GS31', 'GS32', 'GS33'], ['Death Mountain Exit', 'Goron City Entrance', 'Mountain Crater Entrance', 'Mountain Summit Fairy', 'Dodongos Cavern Rocks', 'Mountain Bombable Grotto', 'Mountain Storms Grotto']), + create_dungeon_region('Shadow Temple Huge Pit', ['Shadow Temple Invisible Blades Visible Chest', 'Shadow Temple Invisible Blades Invisible Chest', 'Shadow Temple Falling Spikes Lower Chest', 'Shadow Temple Falling Spikes Upper Chest', 'Shadow Temple Falling Spikes Switch Chest', 'Shadow Temple Invisible Spikes Chest', 'Shadow Temple Freestanding Key', 'GS Shadow Temple Like Like Room', 'GS Shadow Temple Crusher Room'], ['Shadow Temple Hookshot Target']), + create_dungeon_region('Shadow Temple Wind Tunnel', ['Shadow Temple Wind Hint Chest', 'Shadow Temple After Wind Enemy Chest', 'Shadow Temple After Wind Hidden Chest', 'GS Shadow Temple Single Giant Pot', 'GS Shadow Temple Near Ship'], ['Shadow Temple Boat']), + create_dungeon_region('Shadow Temple Beyond Boat', ['Shadow Temple Spike Walls Left Chest', 'Shadow Temple Boss Key Chest', 'Shadow Temple Hidden Floormaster Chest', 'Bongo Bongo Heart', 'Bongo Bongo', 'GS Shadow Temple Tripple Giant Pot']), + create_ow_region('Death Mountain', ['Death Mountain Bombable Chest', 'Biggoron', 'DM Trail Freestanding PoH', 'GS Mountain Trail Bean Patch', 'GS Mountain Trail Bomb Alcove', 'GS Mountain Trail Path to Crater', 'GS Mountain Trail Above Dodongo\'s Cavern'], ['Death Mountain Exit', 'Goron City Entrance', 'Mountain Crater Entrance', 'Mountain Summit Fairy', 'Dodongos Cavern Rocks', 'Mountain Bombable Grotto', 'Mountain Storms Grotto']), create_ow_region('Dodongos Cavern Entryway', None, ['Dodongos Cavern', 'Mountain Access from Behind Rock']), - create_ow_region('Goron City', ['Goron City Leftmost Maze Chest', 'Goron City Left Maze Chest', 'Goron City Right Maze Chest', 'Goron City Pot Freestanding PoH', 'Rolling Goron as Child', 'Link the Goron', 'GS34', 'GS35'], ['Goron City Exit', 'Goron City Bomb Wall', 'Darunias Chamber', 'Crater Access']), + create_ow_region('Goron City', ['Goron City Leftmost Maze Chest', 'Goron City Left Maze Chest', 'Goron City Right Maze Chest', 'Goron City Pot Freestanding PoH', 'Rolling Goron as Child', 'Link the Goron', 'GS Goron City Boulder Maze', 'GS Goron City Center Platform'], ['Goron City Exit', 'Goron City Bomb Wall', 'Darunias Chamber', 'Crater Access']), create_ow_region('Goron City Woods Warp', None, ['Goron City from Woods', 'Goron City to Woods']), create_ow_region('Darunias Chamber', ['Darunias Joy'], ['Darunias Chamber Exit']), - create_ow_region('Death Mountain Crater Upper', ['DM Crater Wall Freestanding PoH', 'GS36'], ['Crater Exit', 'Crater Hover Boots', 'Crater Scarecrow', 'Top of Crater Grotto']), + create_ow_region('Death Mountain Crater Upper', ['DM Crater Wall Freestanding PoH', 'GS Death Mounter Crater Crate'], ['Crater Exit', 'Crater Hover Boots', 'Crater Scarecrow', 'Top of Crater Grotto']), create_ow_region('Death Mountain Crater Lower', None, ['Crater to City', 'Crater Fairy', 'Crater Bridge', 'Crater Ascent']), - create_ow_region('Death Mountain Crater Central', ['DM Crater Volcano Freestanding PoH', 'Sheik in Crater', 'GS37'], ['Crater Bridge Reverse', 'Fire Temple Entrance']), + create_ow_region('Death Mountain Crater Central', ['DM Crater Volcano Freestanding PoH', 'Sheik in Crater', 'GS Death Mounter Bean Patch'], ['Crater Bridge Reverse', 'Fire Temple Entrance']), create_interior_region('Crater Fairy', ['Crater Fairy Reward']), create_interior_region('Mountain Summit Fairy', ['Mountain Summit Fairy Reward']), create_dungeon_region('Dodongos Cavern Beginning', None, ['Dodongos Cavern Exit', 'Dodongos Cavern Lobby']), - create_dungeon_region('Dodongos Cavern Lobby', ['Dodongos Cavern Map Chest', 'Dodongos Cavern Compass Chest', 'GS38', 'GS42'], ['Dodongos Cavern Retreat', 'Dodongos Cavern Left Door']), - create_dungeon_region('Dodongos Cavern Climb', ['Dodongos Cavern Bomb Flower Platform', 'GS39'], ['Dodongos Cavern Bridge Fall', 'Dodongos Cavern Slingshot Target']), - create_dungeon_region('Dodongos Cavern Far Bridge', ['Dodongos Cavern Bomb Bag Chest', 'Dodongos Cavern End of Bridge Chest', 'GS41'], ['Dodongos Cavern Bomb Drop', 'Dodongos Cavern Bridge Fall 2']), - create_dungeon_region('Dodongos Cavern Boss Area', ['Chest Above King Dodongo', 'King Dodongo Heart', 'King Dodongo', 'GS40'], ['Dodongos Cavern Exit Skull']), - create_ow_region('Zora River Bottom', ['Zora River Lower Freestanding PoH', 'Zora River Upper Freestanding PoH', 'GS43'], ['Zora River Exit', 'Zora River Rocks', 'Zora River Adult', 'Zora River Plateau Open Grotto', 'Zora River Plateau Bombable Grotto']), - create_ow_region('Zora River Top', ['Magic Bean Salesman', 'Frog Ocarina Game', 'Frogs in the Rain', 'GS44'], ['Zora River Downstream', 'Zora River Dive Warp', 'Zora River Waterfall']), - create_ow_region('Zora River Adult', ['GS45', 'GS46'], ['Zoras Domain Adult Access']), + create_dungeon_region('Dodongos Cavern Lobby', ['Dodongos Cavern Map Chest', 'Dodongos Cavern Compass Chest', 'GS Dodongo\'s Cavern East Side Room', 'GS Dodongo\'s Cavern Scarecrow'], ['Dodongos Cavern Retreat', 'Dodongos Cavern Left Door']), + create_dungeon_region('Dodongos Cavern Climb', ['Dodongos Cavern Bomb Flower Platform', 'GS Dodongo\'s Cavern Vines Above Stairs'], ['Dodongos Cavern Bridge Fall', 'Dodongos Cavern Slingshot Target']), + create_dungeon_region('Dodongos Cavern Far Bridge', ['Dodongos Cavern Bomb Bag Chest', 'Dodongos Cavern End of Bridge Chest', 'GS Dodongo\'s Cavern Alcove Above Stairs'], ['Dodongos Cavern Bomb Drop', 'Dodongos Cavern Bridge Fall 2']), + create_dungeon_region('Dodongos Cavern Boss Area', ['Chest Above King Dodongo', 'King Dodongo Heart', 'King Dodongo', 'GS Dodongo\'s Cavern Back Room'], ['Dodongos Cavern Exit Skull']), + create_ow_region('Zora River Bottom', ['Zora River Lower Freestanding PoH', 'Zora River Upper Freestanding PoH', 'GS Zora River Ladder'], ['Zora River Exit', 'Zora River Rocks', 'Zora River Adult', 'Zora River Plateau Open Grotto', 'Zora River Plateau Bombable Grotto']), + create_ow_region('Zora River Top', ['Magic Bean Salesman', 'Frog Ocarina Game', 'Frogs in the Rain', 'GS Zora River Tree'], ['Zora River Downstream', 'Zora River Dive Warp', 'Zora River Waterfall']), + create_ow_region('Zora River Adult', ['GS Zora River Near Raised Grottos', 'GS Zora River Above Bridge'], ['Zoras Domain Adult Access']), create_ow_region('Zoras Domain', ['Diving Minigame', 'Zoras Domain Torch Run', 'King Zora Moves'], ['Zoras Domain Exit', 'Zoras Domain Dive Warp', 'Behind King Zora', 'Zora Shop']), - create_ow_region('Zoras Fountain', ['GS48', 'GS49'], ['Zoras Fountain Exit', 'Jabu Jabus Belly', 'Zoras Fountain Fairy']), - create_ow_region('Zoras Domain Frozen', ['King Zora Thawed', 'GS47'], ['Zoras Fountain Adult Access']), - create_ow_region('Outside Ice Cavern', ['Zoras Fountain Iceberg Freestanding PoH', 'Zoras Fountain Bottom Freestanding PoH', 'GS50'], ['Ice Cavern Entrance']), - create_dungeon_region('Ice Cavern', ['Ice Cavern Map Chest', 'Ice Cavern Compass Chest', 'Ice Cavern Iron Boots Chest', 'Ice Cavern Freestanding PoH', 'Sheik in Ice Cavern', 'GS70', 'GS71', 'GS72'], ['Ice Cavern Exit']), + create_ow_region('Zoras Fountain', ['GS Zora\'s Fountain Tree', 'GS Zora\'s Fountain Above the Log'], ['Zoras Fountain Exit', 'Jabu Jabus Belly', 'Zoras Fountain Fairy']), + create_ow_region('Zoras Domain Frozen', ['King Zora Thawed', 'GS Zora\'s Domain Frozen Waterfall'], ['Zoras Fountain Adult Access']), + create_ow_region('Outside Ice Cavern', ['Zoras Fountain Iceberg Freestanding PoH', 'Zoras Fountain Bottom Freestanding PoH', 'GS Zora\'s Fountain Hidden Cave'], ['Ice Cavern Entrance']), + create_dungeon_region('Ice Cavern', ['Ice Cavern Map Chest', 'Ice Cavern Compass Chest', 'Ice Cavern Iron Boots Chest', 'Ice Cavern Freestanding PoH', 'Sheik in Ice Cavern', 'GS Ice Cavern Spinning Scythe Room', 'GS Ice Cavern Heart Piece Room', 'GS Ice Cavern Push Block Room'], ['Ice Cavern Exit']), create_interior_region('Zora Shop'), create_interior_region('Zoras Fountain Fairy', ['Zoras Fountain Fairy Reward']), create_dungeon_region('Jabu Jabus Belly Beginning', None, ['Jabu Jabus Belly Exit', 'Jabu Jabus Belly Ceiling Switch']), - create_dungeon_region('Jabu Jabus Belly Main', ['Boomerang Chest', 'GS51'], ['Jabu Jabus Belly Retreat', 'Jabu Jabus Belly Tentacles']), - create_dungeon_region('Jabu Jabus Belly Depths', ['Jabu Jabus Belly Map Chest', 'Jabu Jabus Belly Compass Chest', 'GS52', 'GS53'], ['Jabu Jabus Belly Elevator', 'Jabu Jabus Belly Octopus']), - create_dungeon_region('Jabu Jabus Belly Boss Area', ['Barinade Heart', 'Barinade', 'GS54'], ['Jabu Jabus Belly Final Backtrack']), - create_ow_region('Lon Lon Ranch', ['Epona', 'Song from Malon', 'GS18', 'GS19', 'GS20', 'GS21'], ['Lon Lon Exit', 'Talon House', 'Ingo Barn', 'Lon Lon Corner Tower', 'Lon Lon Grotto']), + create_dungeon_region('Jabu Jabus Belly Main', ['Boomerang Chest', 'GS Jabu Jabu Water Switch Room'], ['Jabu Jabus Belly Retreat', 'Jabu Jabus Belly Tentacles']), + create_dungeon_region('Jabu Jabus Belly Depths', ['Jabu Jabus Belly Map Chest', 'Jabu Jabus Belly Compass Chest', 'GS Jabu Jabu Lobby Basement Lower', 'GS Jabu Jabu Lobby Basement Upper'], ['Jabu Jabus Belly Elevator', 'Jabu Jabus Belly Octopus']), + create_dungeon_region('Jabu Jabus Belly Boss Area', ['Barinade Heart', 'Barinade', 'GS Jabu Jabu Near Boss'], ['Jabu Jabus Belly Final Backtrack']), + create_ow_region('Lon Lon Ranch', ['Epona', 'Song from Malon', 'GS Lon Lon Ranch Tree', 'GS Lon Lon Ranch Rain Shed', 'GS Lon Lon Ranch House Window', 'GS Lon Lon Ranch Back Wall'], ['Lon Lon Exit', 'Talon House', 'Ingo Barn', 'Lon Lon Corner Tower', 'Lon Lon Grotto']), create_interior_region('Talon House', ['Talons Chickens']), create_interior_region('Ingo Barn'), create_interior_region('Lon Lon Corner Tower', ['Lon Lon Tower Freestanding PoH']), - create_interior_region('Forest Temple Entry Area', ['Sheik Forest Song', 'GS6', 'GS7'], ['Adult Meadow Exit', 'Forest Temple Entrance']), - create_dungeon_region('Forest Temple Lobby', ['Forest Temple First Chest', 'Forest Temple Chest Behind Lobby', 'GS60', 'GS61'], ['Forest Temple Exit', 'Forest Temple Song of Time Block', 'Forest Temple Lobby Eyeball Switch', 'Forest Temple Lobby Locked Door']), - create_dungeon_region('Forest Temple NW Outdoors', ['Forest Temple Well Chest', 'Forest Temple Map Chest', 'GS63'], ['Forest Temple Through Map Room']), - create_dungeon_region('Forest Temple NE Outdoors', ['Forest Temple Outside Hookshot Chest', 'GS62'], ['Forest Temple Well Connection', 'Forest Temple Outside to Lobby', 'Forest Temple Scarecrows Song']), + create_interior_region('Forest Temple Entry Area', ['Sheik Forest Song', 'GS Lost Woods Above Stage', 'GS Sacred Forest Meadow'], ['Adult Meadow Exit', 'Forest Temple Entrance']), + create_dungeon_region('Forest Temple Lobby', ['Forest Temple First Chest', 'Forest Temple Chest Behind Lobby', 'GS Forest Temple First Room', 'GS Forest Temple Lobby'], ['Forest Temple Exit', 'Forest Temple Song of Time Block', 'Forest Temple Lobby Eyeball Switch', 'Forest Temple Lobby Locked Door']), + create_dungeon_region('Forest Temple NW Outdoors', ['Forest Temple Well Chest', 'Forest Temple Map Chest', 'GS Forest Temple Outdoor West'], ['Forest Temple Through Map Room']), + create_dungeon_region('Forest Temple NE Outdoors', ['Forest Temple Outside Hookshot Chest', 'GS Forest Temple Outdoor East'], ['Forest Temple Well Connection', 'Forest Temple Outside to Lobby', 'Forest Temple Scarecrows Song']), create_dungeon_region('Forest Temple Falling Room', ['Forest Temple Falling Room Chest'], ['Forest Temple Falling Room Exit', 'Forest Temple Elevator']), create_dungeon_region('Forest Temple Block Push Room', ['Forest Temple Block Push Chest'], ['Forest Temple Outside Backdoor', 'Forest Temple Twisted Hall', 'Forest Temple Straightened Hall']), create_dungeon_region('Forest Temple Straightened Hall', ['Forest Temple Boss Key Chest'], ['Forest Temple Boss Key Chest Drop']), create_dungeon_region('Forest Temple Outside Upper Ledge', ['Forest Temple Floormaster Chest'], ['Forest Temple Outside Ledge Drop']), create_dungeon_region('Forest Temple Bow Region', ['Forest Temple Bow Chest', 'Forest Temple Red Poe Chest', 'Forest Temple Blue Poe Chest'], ['Forest Temple Drop to Falling Room']), - create_dungeon_region('Forest Temple Boss Region', ['Forest Temple Near Boss Chest', 'Phantom Ganon Heart', 'Phantom Ganon', 'GS64']), - create_dungeon_region('Fire Temple Lower', ['Fire Temple Chest Near Boss', 'Fire Temple Fire Dancer Chest', 'Fire Temple Boss Key Chest', 'Fire Temple Big Lava Room Bombable Chest', 'Fire Temple Big Lava Room Open Chest', 'Volvagia Heart', 'Volvagia', 'GS65', 'GS69'], ['Fire Temple Exit', 'Fire Temple Early Climb']), - create_dungeon_region('Fire Temple Middle', ['Fire Temple Boulder Maze Lower Chest', 'Fire Temple Boulder Maze Upper Chest', 'Fire Temple Boulder Maze Side Room', 'Fire Temple Boulder Maze Bombable Pit', 'Fire Temple Scarecrow Chest', 'Fire Temple Map Chest', 'Fire Temple Compass Chest', 'GS66', 'GS67', 'GS68'], ['Fire Temple Fire Maze Escape']), + create_dungeon_region('Forest Temple Boss Region', ['Forest Temple Near Boss Chest', 'Phantom Ganon Heart', 'Phantom Ganon', 'GS Forest Temple Basement']), + create_dungeon_region('Fire Temple Lower', ['Fire Temple Chest Near Boss', 'Fire Temple Fire Dancer Chest', 'Fire Temple Boss Key Chest', 'Fire Temple Big Lava Room Bombable Chest', 'Fire Temple Big Lava Room Open Chest', 'Volvagia Heart', 'Volvagia', 'GS Fire Temple Song of Time Room', 'GS Fire Temple Basement'], ['Fire Temple Exit', 'Fire Temple Early Climb']), + create_dungeon_region('Fire Temple Middle', ['Fire Temple Boulder Maze Lower Chest', 'Fire Temple Boulder Maze Upper Chest', 'Fire Temple Boulder Maze Side Room', 'Fire Temple Boulder Maze Bombable Pit', 'Fire Temple Scarecrow Chest', 'Fire Temple Map Chest', 'Fire Temple Compass Chest', 'GS Fire Temple Unmarked Bomb Wall', 'GS Fire Temple East Tower Climb', 'GS Fire Temple East Tower Top'], ['Fire Temple Fire Maze Escape']), create_dungeon_region('Fire Temple Upper', ['Fire Temple Highest Goron Chest', 'Fire Temple Megaton Hammer Chest']), create_dungeon_region('Ganons Castle Lobby', None, ['Ganons Castle Exit', 'Ganons Castle Forest Trial', 'Ganons Castle Fire Trial', 'Ganons Castle Water Trial', 'Ganons Castle Shadow Trial', 'Ganons Castle Spirit Trial', 'Ganons Castle Light Trial', 'Ganons Castle Tower']), create_dungeon_region('Ganons Castle Forest Trial', ['Ganons Castle Forest Trial Chest', 'Ganons Castle Forest Trial Clear']), @@ -158,12 +158,12 @@ def create_regions(world): create_grotto_region('Remote Southern Grotto', ['Remote Southern Grotto Chest']), create_grotto_region('Field Near Lake Outside Fence Grotto', ['Field Near Lake Outside Fence Grotto Chest']), create_grotto_region('Field Near Lake Inside Fence Grotto', ['Deku Salesman Hyrule Field Grotto']), - create_grotto_region('Field Valley Grotto', ['GS13']), + create_grotto_region('Field Valley Grotto', ['GS Hyrule Field Near Gerudo Valley']), create_grotto_region('Field West Castle Town Grotto', ['Field West Castle Town Grotto Chest']), create_grotto_region('Field Far West Castle Town Grotto'), - create_grotto_region('Field Kakariko Grotto', ['GS12']), + create_grotto_region('Field Kakariko Grotto', ['GS Hyrule Field near Kakariko']), create_grotto_region('Field North Lon Lon Grotto', ['Tektite Grotto Freestanding PoH']), - create_grotto_region('Castle Storms Grotto', ['GS16']), + create_grotto_region('Castle Storms Grotto', ['GS Hyrule Castle Grotto']), create_grotto_region('Kakariko Bombable Grotto', ['Redead Grotto Chest']), create_grotto_region('Kakariko Back Grotto', ['Kakariko Back Grotto Chest']), create_grotto_region('Mountain Bombable Grotto'), @@ -484,103 +484,106 @@ def _create_region(name, type, locations=None, exits=None): 'Twinrova': (0xCA3EB3, 0xD39FF1, 0x69, 'Boss', None, None), 'Bongo Bongo': (0xCA3F43, 0xD13E19, 0x6A, 'Boss', None, None), 'Ganon': (None, None, None, 'Boss', None, None), - 'GS1': (None, None, 0x01, 'GS Token', 0x55, 'Kokiri Forest'), - 'GS2': (None, None, 0x02, 'GS Token', 0x55, 'Kokiri Forest'), - 'GS3': (None, None, 0x02, 'GS Token', 0x55, 'Kokiri Forest'), - 'GS4': (None, None, 0x01, 'GS Token', None, 'the Lost Woods'), - 'GS5': (None, None, 0x01, 'GS Token', None, 'the Lost Woods'), - 'GS6': (None, None, 0x01, 'GS Token', None, 'the Lost Woods'), - 'GS7': (None, None, 0x01, 'GS Token', None, 'Sacred Forest Meadow'), - 'GS8': (None, None, 0x01, 'GS Token', None, 'Deku Tree'), - 'GS9': (None, None, 0x01, 'GS Token', None, 'Deku Tree'), - 'GS10': (None, None, 0x01, 'GS Token', None, 'Deku Tree'), - 'GS11': (None, None, 0x01, 'GS Token', None, 'Deku Tree'), - 'GS12': (None, None, 0x01, 'GS Token', None, 'Hyrule Field'), - 'GS13': (None, None, 0x01, 'GS Token', None, 'Hyrule Field'), - 'GS14': (None, None, 0x01, 'GS Token', None, 'the market'), - 'GS15': (None, None, 0x01, 'GS Token', None, 'Hyrule Castle'), - 'GS16': (None, None, 0x01, 'GS Token', None, 'Hyrule Castle'), - 'GS17': (None, None, 0x01, 'GS Token', None, 'outside my castle'), - 'GS18': (None, None, 0x01, 'GS Token', None, 'Lon Lon Ranch'), - 'GS19': (None, None, 0x01, 'GS Token', None, 'Lon Lon Ranch'), - 'GS20': (None, None, 0x01, 'GS Token', None, 'Lon Lon Ranch'), - 'GS21': (None, None, 0x01, 'GS Token', None, 'Lon Lon Ranch'), - 'GS22': (None, None, 0x01, 'GS Token', None, 'Kakariko Village'), - 'GS23': (None, None, 0x01, 'GS Token', None, 'Kakariko Village'), - 'GS24': (None, None, 0x01, 'GS Token', None, 'Kakariko Village'), - 'GS25': (None, None, 0x01, 'GS Token', None, 'Kakariko Village'), - 'GS26': (None, None, 0x01, 'GS Token', None, 'Kakariko Village'), - 'GS27': (None, None, 0x01, 'GS Token', None, 'Kakariko Village'), - 'GS28': (None, None, 0x01, 'GS Token', None, 'the Graveyard'), - 'GS29': (None, None, 0x01, 'GS Token', None, 'the Graveyard'), - 'GS30': (None, None, 0x01, 'GS Token', None, 'Death Mountain Trail'), - 'GS31': (None, None, 0x01, 'GS Token', None, 'Death Mountain Trail'), - 'GS32': (None, None, 0x01, 'GS Token', None, 'Death Mountain Trail'), - 'GS33': (None, None, 0x01, 'GS Token', None, 'Death Mountain Trail'), - 'GS34': (None, None, 0x01, 'GS Token', None, 'Goron City'), - 'GS35': (None, None, 0x01, 'GS Token', None, 'Goron City'), - 'GS36': (None, None, 0x01, 'GS Token', None, 'Death Mountain Crater'), - 'GS37': (None, None, 0x01, 'GS Token', None, 'Death Mountain Crater'), - 'GS38': (None, None, 0x01, 'GS Token', None, 'Dodongo\'s Cavern'), - 'GS39': (None, None, 0x01, 'GS Token', None, 'Dodongo\'s Cavern'), - 'GS40': (None, None, 0x01, 'GS Token', None, 'Dodongo\'s Cavern'), - 'GS41': (None, None, 0x01, 'GS Token', None, 'Dodongo\'s Cavern'), - 'GS42': (None, None, 0x01, 'GS Token', None, 'Dodongo\'s Cavern'), - 'GS43': (None, None, 0x01, 'GS Token', None, 'Zora River'), - 'GS44': (None, None, 0x01, 'GS Token', None, 'Zora River'), - 'GS45': (None, None, 0x01, 'GS Token', None, 'Zora River'), - 'GS46': (None, None, 0x01, 'GS Token', None, 'Zora River'), - 'GS47': (None, None, 0x01, 'GS Token', None, 'Zora\'s Domain'), - 'GS48': (None, None, 0x01, 'GS Token', None, 'Zora\'s Fountain'), - 'GS49': (None, None, 0x01, 'GS Token', None, 'Zora\'s Fountain'), - 'GS50': (None, None, 0x01, 'GS Token', None, 'Zora\'s Fountain'), - 'GS51': (None, None, 0x01, 'GS Token', None, 'Jabu Jabu\'s Belly'), - 'GS52': (None, None, 0x01, 'GS Token', None, 'Jabu Jabu\'s Belly'), - 'GS53': (None, None, 0x01, 'GS Token', None, 'Jabu Jabu\'s Belly'), - 'GS54': (None, None, 0x01, 'GS Token', None, 'Jabu Jabu\'s Belly'), - 'GS55': (None, None, 0x01, 'GS Token', None, 'Lake Hylia'), - 'GS56': (None, None, 0x01, 'GS Token', None, 'Lake Hylia'), - 'GS57': (None, None, 0x01, 'GS Token', None, 'Lake Hylia'), - 'GS58': (None, None, 0x01, 'GS Token', None, 'Lake Hylia'), - 'GS59': (None, None, 0x01, 'GS Token', None, 'Lake Hylia'), - 'GS60': (None, None, 0x01, 'GS Token', None, 'Forest Temple'), - 'GS61': (None, None, 0x01, 'GS Token', None, 'Forest Temple'), - 'GS62': (None, None, 0x01, 'GS Token', None, 'Forest Temple'), - 'GS63': (None, None, 0x01, 'GS Token', None, 'Forest Temple'), - 'GS64': (None, None, 0x01, 'GS Token', None, 'Forest Temple'), - 'GS65': (None, None, 0x01, 'GS Token', None, 'Fire Temple'), - 'GS66': (None, None, 0x01, 'GS Token', None, 'Fire Temple'), - 'GS67': (None, None, 0x01, 'GS Token', None, 'Fire Temple'), - 'GS68': (None, None, 0x01, 'GS Token', None, 'Fire Temple'), - 'GS69': (None, None, 0x01, 'GS Token', None, 'Fire Temple'), - 'GS70': (None, None, 0x01, 'GS Token', None, 'Ice Cavern'), - 'GS71': (None, None, 0x01, 'GS Token', None, 'Ice Cavern'), - 'GS72': (None, None, 0x01, 'GS Token', None, 'Ice Cavern'), - 'GS73': (None, None, 0x01, 'GS Token', None, 'Water Temple'), - 'GS74': (None, None, 0x01, 'GS Token', None, 'Water Temple'), - 'GS75': (None, None, 0x01, 'GS Token', None, 'Water Temple'), - 'GS76': (None, None, 0x01, 'GS Token', None, 'Water Temple'), - 'GS77': (None, None, 0x01, 'GS Token', None, 'Water Temple'), - 'GS78': (None, None, 0x01, 'GS Token', None, 'Bottom of the Well'), - 'GS79': (None, None, 0x01, 'GS Token', None, 'Bottom of the Well'), - 'GS80': (None, None, 0x01, 'GS Token', None, 'Bottom of the Well'), - 'GS81': (None, None, 0x01, 'GS Token', None, 'Shadow Temple'), - 'GS82': (None, None, 0x01, 'GS Token', None, 'Shadow Temple'), - 'GS83': (None, None, 0x01, 'GS Token', None, 'Shadow Temple'), - 'GS84': (None, None, 0x01, 'GS Token', None, 'Shadow Temple'), - 'GS85': (None, None, 0x01, 'GS Token', None, 'Shadow Temple'), - 'GS86': (None, None, 0x01, 'GS Token', None, 'Gerudo Valley'), - 'GS87': (None, None, 0x01, 'GS Token', None, 'Gerudo Valley'), - 'GS88': (None, None, 0x01, 'GS Token', None, 'Gerudo Valley'), - 'GS89': (None, None, 0x01, 'GS Token', None, 'Gerudo Valley'), - 'GS90': (None, None, 0x01, 'GS Token', None, 'Gerudo Fortress'), - 'GS91': (None, None, 0x01, 'GS Token', None, 'Gerudo Fortress'), - 'GS92': (None, None, 0x01, 'GS Token', None, 'Haunted Wasteland'), - 'GS93': (None, None, 0x01, 'GS Token', None, 'Desert Colossus'), - 'GS94': (None, None, 0x01, 'GS Token', None, 'Desert Colossus'), - 'GS95': (None, None, 0x01, 'GS Token', None, 'Desert Colossus'), - 'GS96': (None, None, 0x01, 'GS Token', None, 'Spirit Temple'), - 'GS97': (None, None, 0x01, 'GS Token', None, 'Spirit Temple'), - 'GS98': (None, None, 0x01, 'GS Token', None, 'Spirit Temple'), - 'GS99': (None, None, 0x01, 'GS Token', None, 'Spirit Temple'), - 'GS100': (None, None, 0x01, 'GS Token', None, 'Spirit Temple')} + # note that the scene for skulltulas is not the actual scene the token appears in + # rather, it is the index of the grouping used when storing skulltula collection + # for example, zora river, zora's domain, and zora fountain are all a single 'scene' for skulltulas + 'GS Kokiri Know It All House': (None, None, 0x02, 'GS Token', 0x0C, 'Kokiri Forest'), + 'GS Kokiri Bean Patch': (None, None, 0x01, 'GS Token', 0x0C, 'Kokiri Forest'), + 'GS Kokiri House of Twins': (None, None, 0x04, 'GS Token', 0x0C, 'Kokiri Forest'), + 'GS Lost Woods Bean Patch Near Bridge': (None, None, 0x01, 'GS Token', 0x0D, 'the Lost Woods'), + 'GS Lost Woods Bean Patch Near Stage': (None, None, 0x02, 'GS Token', 0x0D, 'the Lost Woods'), + 'GS Lost Woods Above Stage': (None, None, 0x04, 'GS Token', 0x0D, 'the Lost Woods'), + 'GS Sacred Forest Meadow': (None, None, 0x08, 'GS Token', 0x0D, 'Sacred Forest Meadow'), + 'GS Deku Tree Compass Room': (None, None, 0x08, 'GS Token', 0x00, 'Deku Tree'), + 'GS Deku Tree Basement Vines': (None, None, 0x04, 'GS Token', 0x00, 'Deku Tree'), + 'GS Deku Tree Basement Gate': (None, None, 0x02, 'GS Token', 0x00, 'Deku Tree'), + 'GS Deku Tree Basement Back Room': (None, None, 0x01, 'GS Token', 0x00, 'Deku Tree'), + 'GS Hyrule Field near Kakariko': (None, None, 0x02, 'GS Token', 0x0A, 'Hyrule Field'), + 'GS Hyrule Field Near Gerudo Valley': (None, None, 0x01, 'GS Token', 0x0A, 'Hyrule Field'), + 'GS Castle Market Guard House': (None, None, 0x08, 'GS Token', 0x0E, 'the market'), + 'GS Hyrule Castle Tree': (None, None, 0x04, 'GS Token', 0x0E, 'Hyrule Castle'), + 'GS Hyrule Castle Grotto': (None, None, 0x02, 'GS Token', 0x0E, 'Hyrule Castle'), + 'GS Outside Ganon\'s Castle': (None, None, 0x01, 'GS Token', 0x0E, 'outside my castle'), + 'GS Lon Lon Ranch Tree': (None, None, 0x08, 'GS Token', 0x0B, 'Lon Lon Ranch'), + 'GS Lon Lon Ranch Rain Shed': (None, None, 0x02, 'GS Token', 0x0B, 'Lon Lon Ranch'), + 'GS Lon Lon Ranch House Window': (None, None, 0x04, 'GS Token', 0x0B, 'Lon Lon Ranch'), + 'GS Lon Lon Ranch Back Wall': (None, None, 0x01, 'GS Token', 0x0B, 'Lon Lon Ranch'), + 'GS Kakariko House Under Construction': (None, None, 0x08, 'GS Token', 0x10, 'Kakariko Village'), + 'GS Kakariko Skulltula House': (None, None, 0x10, 'GS Token', 0x10, 'Kakariko Village'), + 'GS Kakariko Guard\'s House': (None, None, 0x02, 'GS Token', 0x10, 'Kakariko Village'), + 'GS Kakariko Tree': (None, None, 0x20, 'GS Token', 0x10, 'Kakariko Village'), + 'GS Kakariko Watchtower': (None, None, 0x04, 'GS Token', 0x10, 'Kakariko Village'), + 'GS Kakariko Above Impa\'s House': (None, None, 0x40, 'GS Token', 0x10, 'Kakariko Village'), + 'GS Graveyard Wall': (None, None, 0x80, 'GS Token', 0x10, 'the Graveyard'), + 'GS Graveyard Bean Patch': (None, None, 0x01, 'GS Token', 0x10, 'the Graveyard'), + 'GS Mountain Trail Bean Patch': (None, None, 0x02, 'GS Token', 0x0F, 'Death Mountain Trail'), + 'GS Mountain Trail Bomb Alcove': (None, None, 0x04, 'GS Token', 0x0F, 'Death Mountain Trail'), + 'GS Mountain Trail Path to Crater': (None, None, 0x10, 'GS Token', 0x0F, 'Death Mountain Trail'), + 'GS Mountain Trail Above Dodongo\'s Cavern': (None, None, 0x08, 'GS Token', 0x0F, 'Death Mountain Trail'), + 'GS Goron City Boulder Maze': (None, None, 0x40, 'GS Token', 0x0F, 'Goron City'), + 'GS Goron City Center Platform': (None, None, 0x20, 'GS Token', 0x0F, 'Goron City'), + 'GS Death Mounter Crater Crate': (None, None, 0x80, 'GS Token', 0x0F, 'Death Mountain Crater'), + 'GS Death Mounter Bean Patch': (None, None, 0x01, 'GS Token', 0x0F, 'Death Mountain Crater'), + 'GS Dodongo\'s Cavern East Side Room': (None, None, 0x10, 'GS Token', 0x01, 'Dodongo\'s Cavern'), + 'GS Dodongo\'s Cavern Vines Above Stairs': (None, None, 0x01, 'GS Token', 0x01, 'Dodongo\'s Cavern'), + 'GS Dodongo\'s Cavern Back Room': (None, None, 0x08, 'GS Token', 0x01, 'Dodongo\'s Cavern'), + 'GS Dodongo\'s Cavern Alcove Above Stairs': (None, None, 0x04, 'GS Token', 0x01, 'Dodongo\'s Cavern'), + 'GS Dodongo\'s Cavern Scarecrow': (None, None, 0x02, 'GS Token', 0x01, 'Dodongo\'s Cavern'), + 'GS Zora River Ladder': (None, None, 0x01, 'GS Token', 0x11, 'Zora River'), + 'GS Zora River Tree': (None, None, 0x01, 'GS Token', 0x11, 'Zora River'), + 'GS Zora River Near Raised Grottos': (None, None, 0x10, 'GS Token', 0x11, 'Zora River'), + 'GS Zora River Above Bridge': (None, None, 0x08, 'GS Token', 0x11, 'Zora River'), + 'GS Zora\'s Domain Frozen Waterfall': (None, None, 0x40, 'GS Token', 0x11, 'Zora\'s Domain'), + 'GS Zora\'s Fountain Tree': (None, None, 0x80, 'GS Token', 0x11, 'Zora\'s Fountain'), + 'GS Zora\'s Fountain Above the Log': (None, None, 0x04, 'GS Token', 0x11, 'Zora\'s Fountain'), + 'GS Zora\'s Fountain Hidden Cave': (None, None, 0x20, 'GS Token', 0x11, 'Zora\'s Fountain'), + 'GS Jabu Jabu Water Switch Room': (None, None, 0x08, 'GS Token', 0x02, 'Jabu Jabu\'s Belly'), + 'GS Jabu Jabu Lobby Basement Lower': (None, None, 0x01, 'GS Token', 0x02, 'Jabu Jabu\'s Belly'), + 'GS Jabu Jabu Lobby Basement Upper': (None, None, 0x02, 'GS Token', 0x02, 'Jabu Jabu\'s Belly'), + 'GS Jabu Jabu Near Boss': (None, None, 0x04, 'GS Token', 0x02, 'Jabu Jabu\'s Belly'), + 'GS Lake Hylia Bean Patch': (None, None, 0x01, 'GS Token', 0x12, 'Lake Hylia'), + 'GS Lake Hylia Lab Wall': (None, None, 0x04, 'GS Token', 0x12, 'Lake Hylia'), + 'GS Lake Hylia Small Island': (None, None, 0x02, 'GS Token', 0x12, 'Lake Hylia'), + 'GS Lake Hylia Giant Tree': (None, None, 0x01, 'GS Token', 0x12, 'Lake Hylia'), + 'GS Lab Underwater Crate': (None, None, 0x08, 'GS Token', 0x12, 'Lake Hylia'), + 'GS Forest Temple First Room': (None, None, 0x02, 'GS Token', 0x03, 'Forest Temple'), + 'GS Forest Temple Lobby': (None, None, 0x08, 'GS Token', 0x03, 'Forest Temple'), + 'GS Forest Temple Outdoor East': (None, None, 0x01, 'GS Token', 0x03, 'Forest Temple'), + 'GS Forest Temple Outdoor West': (None, None, 0x04, 'GS Token', 0x03, 'Forest Temple'), + 'GS Forest Temple Basement': (None, None, 0x10, 'GS Token', 0x03, 'Forest Temple'), + 'GS Fire Temple Song of Time Room': (None, None, 0x01, 'GS Token', 0x04, 'Fire Temple'), + 'GS Fire Temple Unmarked Bomb Wall': (None, None, 0x04, 'GS Token', 0x04, 'Fire Temple'), + 'GS Fire Temple East Tower Climb': (None, None, 0x10, 'GS Token', 0x04, 'Fire Temple'), + 'GS Fire Temple East Tower Top': (None, None, 0x08, 'GS Token', 0x04, 'Fire Temple'), + 'GS Fire Temple Basement': (None, None, 0x02, 'GS Token', 0x04, 'Fire Temple'), + 'GS Ice Cavern Spinning Scythe Room': (None, None, 0x02, 'GS Token', 0x09, 'Ice Cavern'), + 'GS Ice Cavern Heart Piece Room': (None, None, 0x04, 'GS Token', 0x09, 'Ice Cavern'), + 'GS Ice Cavern Push Block Room': (None, None, 0x01, 'GS Token', 0x09, 'Ice Cavern'), + 'GS Water Temple South Basement': (None, None, 0x01, 'GS Token', 0x05, 'Water Temple'), + 'GS Water Temple Serpent River': (None, None, 0x10, 'GS Token', 0x05, 'Water Temple'), + 'GS Water Temple Falling Platform Room': (None, None, 0x02, 'GS Token', 0x05, 'Water Temple'), + 'GS Water Temple Central Room': (None, None, 0x04, 'GS Token', 0x05, 'Water Temple'), + 'GS Water Temple Near Boss Key Chest': (None, None, 0x08, 'GS Token', 0x05, 'Water Temple'), + 'GS Well West Inner Room': (None, None, 0x04, 'GS Token', 0x08, 'Bottom of the Well'), + 'GS Well East Inner Room': (None, None, 0x02, 'GS Token', 0x08, 'Bottom of the Well'), + 'GS Well Like Like Cage': (None, None, 0x01, 'GS Token', 0x08, 'Bottom of the Well'), + 'GS Shadow Temple Like Like Room': (None, None, 0x08, 'GS Token', 0x07, 'Shadow Temple'), + 'GS Shadow Temple Crusher Room': (None, None, 0x02, 'GS Token', 0x07, 'Shadow Temple'), + 'GS Shadow Temple Single Giant Pot': (None, None, 0x01, 'GS Token', 0x07, 'Shadow Temple'), + 'GS Shadow Temple Near Ship': (None, None, 0x10, 'GS Token', 0x07, 'Shadow Temple'), + 'GS Shadow Temple Tripple Giant Pot': (None, None, 0x04, 'GS Token', 0x07, 'Shadow Temple'), + 'GS Gerudo Valley Small Bridge': (None, None, 0x02, 'GS Token', 0x13, 'Gerudo Valley'), + 'GS Gerudo Valley Bean Patch': (None, None, 0x01, 'GS Token', 0x13, 'Gerudo Valley'), + 'GS Gerudo Valley Behind Tent': (None, None, 0x08, 'GS Token', 0x13, 'Gerudo Valley'), + 'GS Gerudo Valley Pillar': (None, None, 0x04, 'GS Token', 0x13, 'Gerudo Valley'), + 'GS Gerudo Fortress Archery Range': (None, None, 0x01, 'GS Token', 0x14, 'Gerudo Fortress'), + 'GS Gerudo Fortress Top Floor': (None, None, 0x02, 'GS Token', 0x14, 'Gerudo Fortress'), + 'GS Wasteland Ruins': (None, None, 0x02, 'GS Token', 0x15, 'Haunted Wasteland'), + 'GS Desert Colossus Bean Patch': (None, None, 0x01, 'GS Token', 0x15, 'Desert Colossus'), + 'GS Desert Colossus Tree': (None, None, 0x08, 'GS Token', 0x15, 'Desert Colossus'), + 'GS Desert Colossus Hill': (None, None, 0x04, 'GS Token', 0x15, 'Desert Colossus'), + 'GS Spirit Temple Metal Fence': (None, None, 0x10, 'GS Token', 0x06, 'Spirit Temple'), + 'GS Spirit Temple Bomb for Light Room': (None, None, 0x08, 'GS Token', 0x06, 'Spirit Temple'), + 'GS Spirit Temple Hall to West Iron Knuckle': (None, None, 0x01, 'GS Token', 0x06, 'Spirit Temple'), + 'GS Spirit Temple Boulder Room': (None, None, 0x02, 'GS Token', 0x06, 'Spirit Temple'), + 'GS Spirit Temple Lobby': (None, None, 0x04, 'GS Token', 0x06, 'Spirit Temple')} diff --git a/Rules.py b/Rules.py index cea8512b1..6bcbff349 100644 --- a/Rules.py +++ b/Rules.py @@ -347,80 +347,89 @@ def global_rules(world): set_rule(world.get_entrance('Zora River Plateau Open Grotto'), lambda state: state.has_explosives() or state.has('Progressive Scale') or state.is_adult()) set_rule(world.get_entrance('Zora River Plateau Bombable Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_location('Tektite Grotto Freestanding PoH'), lambda state: state.has('Progressive Scale', 2) or (state.has('Iron Boots') and state.is_adult())) - set_rule(world.get_location('GS2'), lambda state: state.has_bottle()) - set_rule(world.get_location('GS3'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('GS4'), lambda state: state.has_bottle()) - set_rule(world.get_location('GS5'), lambda state: state.has_bottle()) - set_rule(world.get_location('GS6'), lambda state: state.has('Magic Bean')) - set_rule(world.get_location('GS7'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('GS9'), lambda state: state.has('Slingshot') or state.has_explosives() or state.has('Boomerang') or (state.has('Dins Fire') and state.has('Magic Meter'))) - set_rule(world.get_location('GS11'), lambda state: state.has('Boomerang') and state.has_explosives()) - set_rule(world.get_location('GS12'), lambda state: (state.has('Boomerang') and state.has_explosives()) or (state.has('Progressive Hookshot') and state.is_adult())) - set_rule(world.get_location('GS13'), lambda state: (state.has('Hammer') and state.has_fire_source() and state.has('Progressive Hookshot') and state.is_adult()) or (state.has('Boomerang') and state.has_explosives() and state.has('Dins Fire') and state.has('Magic Meter'))) - set_rule(world.get_location('GS16'), lambda state: state.has('Boomerang') and state.has_explosives()) - set_rule(world.get_location('GS20'), lambda state: state.has('Boomerang')) - set_rule(world.get_location('GS21'), lambda state: state.has('Boomerang')) - set_rule(world.get_location('GS26'), lambda state: state.has('Slingshot') or state.has_explosives()) - set_rule(world.get_location('GS27'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('GS28'), lambda state: state.has('Boomerang')) - set_rule(world.get_location('GS29'), lambda state: state.has_bottle()) - set_rule(world.get_location('GS30'), lambda state: state.has_bottle() and (state.has_explosives() or state.has('Progressive Strength Upgrade'))) - set_rule(world.get_location('GS31'), lambda state: state.can_blast_or_smash()) - set_rule(world.get_location('GS32'), lambda state: state.has('Hammer') and state.is_adult()) - set_rule(world.get_location('GS33'), lambda state: state.has('Hammer') and state.is_adult()) - set_rule(world.get_location('GS34'), lambda state: state.has_explosives()) - set_rule(world.get_location('GS35'), lambda state: state.is_adult()) - set_rule(world.get_location('GS37'), lambda state: state.can_play('Bolero of Fire') and state.has_bottle()) - set_rule(world.get_location('GS39'), lambda state: state.has_explosives() or (state.has('Boomerang') or state.has('Slingshot') and state.has('Progressive Strength Upgrade')) or (state.has('Dins Fire') and state.has('Magic Meter')) or (state.is_adult and (state.has('Progressive Hookshot') or state.has('Bow') or state.has('Biggoron Sword')))) - set_rule(world.get_location('GS41'), lambda state: (state.has('Progressive Hookshot') and state.is_adult()) or (state.has('Boomerang') and (state.has_explosives() or state.has('Progressive Strength Upgrade')))) - set_rule(world.get_location('GS42'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('GS45'), lambda state: state.has('Progressive Hookshot')) - set_rule(world.get_location('GS46'), lambda state: state.has('Progressive Hookshot')) - set_rule(world.get_location('GS47'), lambda state: state.has('Progressive Hookshot') or state.has('Bow') or state.has('Magic Meter')) - set_rule(world.get_location('GS49'), lambda state: state.has('Boomerang')) - set_rule(world.get_location('GS50'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.can_blast_or_smash() and state.has('Progressive Hookshot')) + set_rule(world.get_location('GS Kokiri Know It All House'), lambda state: state.nighttime() and state.can_reach('Hyrule Field')) + set_rule(world.get_location('GS Kokiri Bean Patch'), lambda state: state.has_bottle()) + set_rule(world.get_location('GS Kokiri House of Twins'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.nighttime()) + set_rule(world.get_location('GS Lost Woods Bean Patch Near Bridge'), lambda state: state.has_bottle()) + set_rule(world.get_location('GS Lost Woods Bean Patch Near Stage'), lambda state: state.has_bottle()) + set_rule(world.get_location('GS Lost Woods Above Stage'), lambda state: state.has('Magic Bean') and state.nighttime()) + set_rule(world.get_location('GS Sacred Forest Meadow'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.nighttime()) + set_rule(world.get_location('GS Deku Tree Basement Vines'), lambda state: state.has('Slingshot') or state.has_explosives() or state.has('Boomerang') or (state.has('Dins Fire') and state.has('Magic Meter'))) + set_rule(world.get_location('GS Deku Tree Basement Back Room'), lambda state: state.has('Boomerang') and state.has_explosives()) + set_rule(world.get_location('GS Hyrule Field near Kakariko'), lambda state: (state.has('Boomerang') and state.has_explosives()) or (state.has('Progressive Hookshot') and state.is_adult())) + set_rule(world.get_location('GS Hyrule Field Near Gerudo Valley'), lambda state: (state.has('Hammer') and state.has_fire_source() and state.has('Progressive Hookshot') and state.is_adult()) or (state.has('Boomerang') and state.has_explosives() and state.has('Dins Fire') and state.has('Magic Meter'))) + set_rule(world.get_location('GS Hyrule Castle Grotto'), lambda state: state.has('Boomerang') and state.has_explosives()) + set_rule(world.get_location('GS Lon Lon Ranch Rain Shed'), lambda state: state.nighttime()) + set_rule(world.get_location('GS Lon Lon Ranch House Window'), lambda state: state.has('Boomerang') and state.nighttime()) + set_rule(world.get_location('GS Lon Lon Ranch Back Wall'), lambda state: state.has('Boomerang') and state.nighttime()) + set_rule(world.get_location('GS Kakariko House Under Construction'), lambda state: state.nighttime()) + set_rule(world.get_location('GS Kakariko Skulltula House'), lambda state: state.nighttime()) + set_rule(world.get_location('GS Kakariko Guard\'s House'), lambda state: state.nighttime()) + set_rule(world.get_location('GS Kakariko Tree'), lambda state: state.nighttime()) + set_rule(world.get_location('GS Kakariko Watchtower'), lambda state: state.has('Slingshot') or state.has_explosives() and state.nighttime()) + set_rule(world.get_location('GS Kakariko Above Impa\'s House'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.nighttime()) + set_rule(world.get_location('GS Graveyard Wall'), lambda state: state.has('Boomerang') and state.nighttime()) + set_rule(world.get_location('GS Graveyard Bean Patch'), lambda state: state.has_bottle()) + set_rule(world.get_location('GS Mountain Trail Bean Patch'), lambda state: state.has_bottle() and (state.has_explosives() or state.has('Progressive Strength Upgrade'))) + set_rule(world.get_location('GS Mountain Trail Bomb Alcove'), lambda state: state.can_blast_or_smash()) + set_rule(world.get_location('GS Mountain Trail Path to Crater'), lambda state: state.has('Hammer') and state.is_adult() and state.nighttime()) + set_rule(world.get_location('GS Mountain Trail Above Dodongo\'s Cavern'), lambda state: state.has('Hammer') and state.is_adult() and state.nighttime()) + set_rule(world.get_location('GS Goron City Boulder Maze'), lambda state: state.has_explosives()) + set_rule(world.get_location('GS Goron City Center Platform'), lambda state: state.is_adult()) + set_rule(world.get_location('GS Death Mounter Bean Patch'), lambda state: state.can_play('Bolero of Fire') and state.has_bottle()) + set_rule(world.get_location('GS Dodongo\'s Cavern Vines Above Stairs'), lambda state: state.has_explosives() or (state.has('Boomerang') or state.has('Slingshot') and state.has('Progressive Strength Upgrade')) or (state.has('Dins Fire') and state.has('Magic Meter')) or (state.is_adult and (state.has('Progressive Hookshot') or state.has('Bow') or state.has('Biggoron Sword')))) + set_rule(world.get_location('GS Dodongo\'s Cavern Alcove Above Stairs'), lambda state: (state.has('Progressive Hookshot') and state.is_adult()) or (state.has('Boomerang') and (state.has_explosives() or state.has('Progressive Strength Upgrade')))) + set_rule(world.get_location('GS Dodongo\'s Cavern Scarecrow'), lambda state: state.is_adult() and ( (state.has('Progressive Hookshot') and state.has_ocarina()) or state.has('Progressive Hookshot', 2) )) + set_rule(world.get_location('GS Zora River Ladder'), lambda state: state.nighttime()) + set_rule(world.get_location('GS Zora River Near Raised Grottos'), lambda state: state.has('Progressive Hookshot') and state.nighttime()) + set_rule(world.get_location('GS Zora River Above Bridge'), lambda state: state.has('Progressive Hookshot') and state.nighttime()) + set_rule(world.get_location('GS Zora\'s Domain Frozen Waterfall'), lambda state: state.nighttime() and (state.has('Progressive Hookshot') or state.has('Bow') or state.has('Magic Meter'))) + set_rule(world.get_location('GS Zora\'s Fountain Above the Log'), lambda state: state.has('Boomerang')) + set_rule(world.get_location('GS Zora\'s Fountain Hidden Cave'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.can_blast_or_smash() and state.has('Progressive Hookshot') and state.nighttime()) # Jabu Jabu GS need no reqs becuase the access reqs for their zones cover them. - set_rule(world.get_location('GS55'), lambda state: state.has_bottle()) - set_rule(world.get_location('GS56'), lambda state: state.has('Boomerang')) - set_rule(world.get_location('GS58'), lambda state: state.is_adult() and state.has('Progressive Hookshot', 2)) - set_rule(world.get_location('GS59'), lambda state: state.is_adult() and state.has('Iron Boots') and state.has('Progressive Hookshot')) - set_rule(world.get_location('GS60'), lambda state: (state.has('Progressive Hookshot') or state.has('Bow') or (state.has('Dins Fire') and state.has('Magic Meter'))) and state.is_adult()) - set_rule(world.get_location('GS61'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('GS62'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('GS63'), lambda state: (state.has('Progressive Hookshot', 2) or (state.has('Progressive Hookshot') and state.can_reach('Forest Temple Outside Upper Ledge'))) and state.is_adult()) - set_rule(world.get_location('GS64'), lambda state: state.has('Progressive Hookshot')) - set_rule(world.get_location('GS65'), lambda state: state.has('Small Key (Fire Temple)', 1) and state.can_play('Song of Time')) - set_rule(world.get_location('GS66'), lambda state: state.has_explosives()) - set_rule(world.get_location('GS67'), lambda state: state.has('Small Key (Fire Temple)', 5) and state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('GS68'), lambda state: state.has('Small Key (Fire Temple)', 5) and state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('GS69'), lambda state: state.has('Hammer') and state.is_adult()) - set_rule(world.get_location('GS70'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('GS71'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('GS72'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('GS73'), lambda state: state.has_explosives() and state.has('Magic Meter')) - set_rule(world.get_location('GS74'), lambda state: state.can_play('Song of Time') and state.has('Small Key (Water Temple)', 6)) - set_rule(world.get_location('GS75'), lambda state: state.has('Progressive Hookshot', 2)) - set_rule(world.get_location('GS76'), lambda state: state.has('Progressive Hookshot', 2)) - set_rule(world.get_location('GS77'), lambda state: state.has('Progressive Hookshot', 2) and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and state.has('Small Key (Water Temple)', 6)) #5 keys would be better but it wouldn't be compatible with the key for key scenarios, 6 will be identical pre-keysanity. - set_rule(world.get_location('GS78'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang') and (state.has('Progressive Strength Upgrade') or state.has_explosives() or state.can_see_with_lens())) - set_rule(world.get_location('GS79'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang')) - set_rule(world.get_location('GS80'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang')) - set_rule(world.get_location('GS81'), lambda state: state.has('Progressive Hookshot')) - set_rule(world.get_location('GS82'), lambda state: state.has('Progressive Hookshot')) - set_rule(world.get_location('GS84'), lambda state: state.has('Progressive Hookshot', 2) and state.has('Progressive Strength Upgrade') and state.has('Small Key (Shadow Temple)', 4)) - set_rule(world.get_location('GS86'), lambda state: state.has('Boomerang')) - set_rule(world.get_location('GS87'), lambda state: state.has_bottle()) - set_rule(world.get_location('GS88'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('GS89'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('GS90'), lambda state: state.has('Progressive Hookshot') and state.has('Gerudo Membership Card') and state.is_adult()) - set_rule(world.get_location('GS92'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('GS93'), lambda state: state.has_bottle() and state.can_play('Requiem of Spirit')) - set_rule(world.get_location('GS94'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('GS95'), lambda state: ((state.has('Magic Bean') and state.can_play('Requiem of Spirit')) or state.has('Progressive Hookshot', 2)) and state.is_adult()) - set_rule(world.get_location('GS96'), lambda state: state.has('Boomerang')) - set_rule(world.get_location('GS98'), lambda state: (state.has('Boomerang') and state.has('Progressive Hookshot')) or (state.has('Boomerang') and state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit')) or (state.has('Progressive Hookshot') and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.has('Small Key (Spirit Temple)', 3))) - set_rule(world.get_location('GS99'), lambda state: state.can_play('Song of Time') and (state.has('Bow') or state.has('Progressive Hookshot') or state.has_explosives())) - set_rule(world.get_location('GS100'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.has('Small Key (Spirit Temple)', 3) and state.is_adult() and (state.has('Progressive Hookshot') or state.has('Hover Boots'))) + set_rule(world.get_location('GS Lake Hylia Bean Patch'), lambda state: state.has_bottle()) + set_rule(world.get_location('GS Lake Hylia Lab Wall'), lambda state: state.has('Boomerang') and state.nighttime()) + set_rule(world.get_location('GS Lake Hylia Small Island'), lambda state: state.nighttime()) + set_rule(world.get_location('GS Lake Hylia Giant Tree'), lambda state: state.is_adult() and state.has('Progressive Hookshot', 2)) + set_rule(world.get_location('GS Lab Underwater Crate'), lambda state: state.is_adult() and state.has('Iron Boots') and state.has('Progressive Hookshot')) + set_rule(world.get_location('GS Forest Temple First Room'), lambda state: (state.has('Progressive Hookshot') or state.has('Bow') or (state.has('Dins Fire') and state.has('Magic Meter'))) and state.is_adult()) + set_rule(world.get_location('GS Forest Temple Lobby'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) + set_rule(world.get_location('GS Forest Temple Outdoor East'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) + set_rule(world.get_location('GS Forest Temple Outdoor West'), lambda state: (state.has('Progressive Hookshot', 2) or (state.has('Progressive Hookshot') and state.can_reach('Forest Temple Outside Upper Ledge'))) and state.is_adult()) + set_rule(world.get_location('GS Forest Temple Basement'), lambda state: state.has('Progressive Hookshot')) + set_rule(world.get_location('GS Fire Temple Song of Time Room'), lambda state: state.has('Small Key (Fire Temple)', 1) and state.can_play('Song of Time')) + set_rule(world.get_location('GS Fire Temple Unmarked Bomb Wall'), lambda state: state.has('Small Key (Fire Temple)', 3) and state.has_explosives()) + set_rule(world.get_location('GS Fire Temple East Tower Climb'), lambda state: state.has_ocarina() and state.has('Small Key (Fire Temple)', 5) and state.has('Progressive Hookshot') and state.is_adult()) + set_rule(world.get_location('GS Fire Temple East Tower Top'), lambda state: state.has_ocarina() and state.has('Small Key (Fire Temple)', 5) and state.has('Progressive Hookshot') and state.is_adult()) + set_rule(world.get_location('GS Fire Temple Basement'), lambda state: state.has('Hammer') and state.is_adult()) + set_rule(world.get_location('GS Ice Cavern Spinning Scythe Room'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) + set_rule(world.get_location('GS Ice Cavern Heart Piece Room'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) + set_rule(world.get_location('GS Ice Cavern Push Block Room'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) + set_rule(world.get_location('GS Water Temple South Basement'), lambda state: state.has_explosives() and (state.has('Magic Meter') or state.has('Biggoron Sword'))) + set_rule(world.get_location('GS Water Temple Serpent River'), lambda state: state.can_play('Song of Time') and state.has('Small Key (Water Temple)', 6)) + set_rule(world.get_location('GS Water Temple Falling Platform Room'), lambda state: state.has('Progressive Hookshot', 2)) + set_rule(world.get_location('GS Water Temple Central Room'), lambda state: state.has('Progressive Hookshot', 2)) + set_rule(world.get_location('GS Water Temple Near Boss Key Chest'), lambda state: state.has('Progressive Hookshot', 2) and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and state.has('Small Key (Water Temple)', 6)) #5 keys would be better but it wouldn't be compatible with the key for key scenarios, 6 will be identical pre-keysanity. + set_rule(world.get_location('GS Well West Inner Room'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang') and (state.has('Progressive Strength Upgrade') or state.has_explosives() or state.can_see_with_lens())) + set_rule(world.get_location('GS Well East Inner Room'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang')) + set_rule(world.get_location('GS Well Like Like Cage'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang')) + set_rule(world.get_location('GS Shadow Temple Like Like Room'), lambda state: state.has('Progressive Hookshot')) + set_rule(world.get_location('GS Shadow Temple Crusher Room'), lambda state: state.has('Progressive Hookshot')) + set_rule(world.get_location('GS Shadow Temple Near Ship'), lambda state: state.has('Progressive Hookshot', 2) and state.has('Progressive Strength Upgrade') and state.has('Small Key (Shadow Temple)', 4)) + set_rule(world.get_location('GS Gerudo Valley Small Bridge'), lambda state: state.has('Boomerang') and state.nighttime()) + set_rule(world.get_location('GS Gerudo Valley Bean Patch'), lambda state: state.has_bottle()) + set_rule(world.get_location('GS Gerudo Valley Behind Tent'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.nighttime()) + set_rule(world.get_location('GS Gerudo Valley Pillar'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.nighttime()) + set_rule(world.get_location('GS Gerudo Fortress Archery Range'), lambda state: state.has('Progressive Hookshot') and state.has('Gerudo Membership Card') and state.is_adult() and state.nighttime()) + set_rule(world.get_location('GS Gerudo Fortress Top Floor'), lambda state: state.nighttime()) + set_rule(world.get_location('GS Wasteland Ruins'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) + set_rule(world.get_location('GS Desert Colossus Bean Patch'), lambda state: state.has_bottle() and state.can_play('Requiem of Spirit')) + set_rule(world.get_location('GS Desert Colossus Tree'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.nighttime()) + set_rule(world.get_location('GS Desert Colossus Hill'), lambda state: ((state.has('Magic Bean') and state.can_play('Requiem of Spirit')) or state.has('Progressive Hookshot', 2)) and state.is_adult() and state.nighttime()) + set_rule(world.get_location('GS Spirit Temple Metal Fence'), lambda state: state.has('Boomerang') or state.has('Slingshot')) + set_rule(world.get_location('GS Spirit Temple Hall to West Iron Knuckle'), lambda state: (state.has('Boomerang') and state.has('Progressive Hookshot')) or (state.has('Boomerang') and state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit')) or (state.has('Progressive Hookshot') and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.has('Small Key (Spirit Temple)', 3))) + set_rule(world.get_location('GS Spirit Temple Boulder Room'), lambda state: state.can_play('Song of Time') and (state.has('Bow') or state.has('Progressive Hookshot') or state.has_explosives())) + set_rule(world.get_location('GS Spirit Temple Lobby'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.has('Small Key (Spirit Temple)', 3) and state.is_adult() and (state.has('Progressive Hookshot', 2) or (state.has('Progressive Hookshot') and state.has_ocarina()) or state.has('Hover Boots'))) for location in world.get_locations(): if location.type != 'Chest': diff --git a/version.py b/version.py index 89e0b27a7..737c321cf 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.2 f.LUM' +__version__ = '2.13.3 f.LUM' From 5caf2b412561a2d07519601519a8a57932038a76 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Sun, 15 Jul 2018 22:23:30 -0400 Subject: [PATCH 160/755] First go at making co-op worlds --- BaseClasses.py | 28 ++++- Dungeons.py | 20 +--- Fill.py | 275 +++++++++++++++++++++++++++++++++++++------------ Hints.py | 4 +- ItemList.py | 30 +----- Main.py | 48 ++++----- Regions.py | 2 +- version.py | 2 +- 8 files changed, 265 insertions(+), 144 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 39216394a..3182df2a9 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -43,9 +43,23 @@ def __init__(self, settings): self.can_take_damage = True self.spoiler = Spoiler(self) - def intialize_regions(self): + def initialize_regions(self): for region in self.regions: region.world = self + for location in region.locations: + location.world = self + + def initialize_items(self): + for item in self.itempool: + item.world = self + for region in self.regions: + for location in region.locations: + if location.item != None: + location.item.world = self + for dungeon in self.dungeons: + for item in dungeon.all_items: + item.world = self + def get_region(self, regionname): if isinstance(regionname, Region): @@ -97,6 +111,7 @@ def soft_collect(item): from Items import ItemFactory if keys: for item in ItemFactory(['Small Key (Forest Temple)'] * 5 + ['Boss Key (Forest Temple)', 'Boss Key (Fire Temple)', 'Boss Key (Water Temple)', 'Boss Key (Shadow Temple)', 'Boss Key (Spirit Temple)', 'Boss Key (Ganons Castle)'] + ['Small Key (Bottom of the Well)'] * 3 + ['Small Key (Fire Temple)'] * 8 + ['Small Key (Water Temple)'] * 6 + ['Small Key (Shadow Temple)'] * 5 + ['Small Key (Gerudo Training Grounds)'] * 9 + ['Small Key (Spirit Temple)'] * 5 + ['Small Key (Ganons Castle)'] * 2): + item.world = self soft_collect(item) ret.sweep_for_events() ret.clear_cached_unreachable() @@ -105,6 +120,12 @@ def soft_collect(item): def get_items(self): return [loc.item for loc in self.get_filled_locations()] + self.itempool + def get_dungeon_items(self): + itempool = [item for dungeon in self.dungeons for item in dungeon.all_items if item.key or self.place_dungeon_items] + for item in itempool: + item.world = self + return itempool + def find_items(self, item): return [location for location in self.get_locations() if location.item is not None and location.item.name == item] @@ -118,7 +139,7 @@ def push_item(self, location, item, collect=True): if collect: self.state.collect(item, location.event, location) - logging.getLogger('').debug('Placed %s at %s', item, location) + logging.getLogger('').debug('Placed %s [World %d] at %s [World %d]', item, item.world.id if hasattr(item, 'world') else -1, location, location.world.id if hasattr(location, 'world') else -1) else: raise RuntimeError('Cannot assign item %s to location %s.' % (item, location)) @@ -586,6 +607,9 @@ def __init__(self, name='', advancement=False, priority=False, type=None, code=N self.index = index self.location = None + def copy(self): + return Item(self.name, self.advancement, self.priority, self.type, self.code, self.index) + @property def key(self): return self.type == 'SmallKey' or self.type == 'BossKey' diff --git a/Dungeons.py b/Dungeons.py index 81917e15a..e1b6194f7 100644 --- a/Dungeons.py +++ b/Dungeons.py @@ -1,7 +1,6 @@ import random from BaseClasses import Dungeon -from Fill import fill_restrictive from Items import ItemFactory @@ -25,22 +24,5 @@ def make_dungeon(name, dungeon_regions, boss_key, small_keys, dungeon_items): SpT = make_dungeon('Spirit Temple', ['Spirit Temple Lobby', 'Child Spirit Temple', 'Early Adult Spirit Temple', 'Spirit Temple Central Chamber', 'Spirit Temple Beyond Central Locked Door', 'Spirit Temple Beyond Final Locked Door'], ItemFactory('Boss Key (Spirit Temple)'), ItemFactory(['Small Key (Spirit Temple)'] * 5), ItemFactory(['Map (Spirit Temple)', 'Compass (Spirit Temple)'])) GC = make_dungeon('Ganons Castle', ['Ganons Castle Lobby', 'Ganons Castle Forest Trial', 'Ganons Castle Fire Trial', 'Ganons Castle Water Trial', 'Ganons Castle Shadow Trial', 'Ganons Castle Spirit Trial', 'Ganons Castle Light Trial', 'Ganons Castle Tower'], ItemFactory('Boss Key (Ganons Castle)'), ItemFactory(['Small Key (Ganons Castle)'] * 2), []) - world.dungeons = [DT, DC, JB, FoT, BW, FiT, IC, WT, ShT, GTG, SpT, GC] - - -def get_dungeon_item_pool(world): - return [item for dungeon in world.dungeons for item in dungeon.all_items if item.key or world.place_dungeon_items] - -def fill_dungeons_restrictive(world, shuffled_locations): - all_state_base = world.get_all_state() - - dungeon_items = get_dungeon_item_pool(world) - - # sort in the order Boss Key, Small Key, Other before placing dungeon items - sort_order = {"BossKey": 3, "SmallKey": 2} - dungeon_items.sort(key=lambda item: sort_order.get(item.type, 1)) - - fill_restrictive(world, all_state_base, shuffled_locations, dungeon_items) - - world.state.clear_cached_unreachable() \ No newline at end of file + \ No newline at end of file diff --git a/Fill.py b/Fill.py index c00824bfd..4a3ee64d9 100644 --- a/Fill.py +++ b/Fill.py @@ -4,100 +4,245 @@ class FillError(RuntimeError): pass -def fill_restrictive(world, base_state, locations, itempool): - def sweep_from_pool(): + +# Places all items into the world +def distribute_items_restrictive(worlds, fill_locations=None): + # places the songs into the world + # Currently places songs only at song locations. if there's an option + # to allow at other locations then they should be in the main pool + songitempool = [item for world in worlds for item in world.itempool if item.type == 'Song'] + song_locations = [world.get_location(location) for world in worlds for location in + ['Song from Composer Grave', 'Impa at Castle', 'Song from Malon', 'Song from Saria', + 'Song from Ocarina of Time', 'Song at Windmill', 'Sheik Forest Song', 'Sheik at Temple', + 'Sheik in Crater', 'Sheik in Ice Cavern', 'Sheik in Kakariko', 'Sheik at Colossus']] + fill_songs(worlds, song_locations, songitempool) + + # If not passed in, then get a shuffled list of locations to fill in + if not fill_locations: + fill_locations = [location for world in worlds for location in world.get_unfilled_locations()] + world_states = [world.state for world in worlds] + itempool = [item for world in worlds for item in world.itempool if item.type != 'Song'] + + # If not keysanity, we must place the dungeon items first to make sure + # that there is always a locations to place them. This could probably + # be replaced for more intelligent item placement, but will leave as is + # for now + if worlds[0].keysanity: + # add dungeon items to main pool + itempool.extend([item for world in worlds for item in world.get_dungeon_items()]) + else: + # place dungeon items + random.shuffle(fill_locations) + fill_dungeons_restrictive(worlds, fill_locations) + + # randomize item placement order. this ordering can greatly affect + # the location accessibility bias, so this must be randomized + random.shuffle(fill_locations) + # I have no idea why the locations are shuffled again and then reversed + # but this is how it was, so whatever. It can't hurt I guess + random.shuffle(itempool) + fill_locations.reverse() + + # Place all progression items. This will include keys in keysanity. + # Items in this group will check for reachability and will be placed + # such that the game is guaranteed beatable. + progitempool = [item for item in itempool if item.advancement] + random.shuffle(fill_locations) + fill_restrictive(worlds, [world.state for world in worlds], fill_locations, progitempool) + + # Place all priority items. + # These items are items that only check if the item is allowed to be + # placed in the location, not checking reachability. This is important + # for things like Ice Traps that can't be found at some locations + prioitempool = [item for item in itempool if not item.advancement and item.priority] + random.shuffle(fill_locations) + fill_restrictive_fast(worlds, fill_locations, prioitempool) + + # Place the rest of the items. + # No restrictions at all. Places them completely randomly. Since they + # cannot affect the beatability, we don't need to check them + restitempool = [item for item in itempool if not item.advancement and not item.priority] + random.shuffle(fill_locations) + fast_fill(fill_locations, restitempool) + + # Log unplaced item/location warnings + for item in progitempool + prioitempool + restitempool: + logging.getLogger('').debug('Unplaced Items: %s [World %d]' % (item.name, item.world.id)) + if fill_locations: + for location in fill_locations: + logging.getLogger('').debug('Unfilled Locations: %s [World %d]' % (location.name, location.world.id)) + raise FillError('Not all locations have an item.') + + +# Places the songs into the world at the Song locations +def fill_songs(worlds, locations, itempool, attempts=15): + # get the song locations for each world + + # look for preplaced items + placed_prizes = [loc.item.name for loc in locations if loc.item is not None] + unplaced_prizes = [song for song in itempool if song.name not in placed_prizes] + empty_song_locations = [loc for loc in locations if loc.item is None] + + # List of states with all items + all_state_base_list = [world.get_all_state(keys=True) for world in worlds] + + while attempts: + attempts -= 1 + try: + prizepool = list(unplaced_prizes) + prize_locs = list(empty_song_locations) + random.shuffle(prizepool) + random.shuffle(prize_locs) + fill_restrictive(worlds, all_state_base_list, prize_locs, prizepool) + except FillError: + logging.getLogger('').info("Failed to place songs. Will retry %s more times", attempts) + for location in empty_song_locations: + location.item = None + logging.getLogger('').info(FillError) + continue + break + else: + raise FillError('Unable to place songs') + + +# Places all dungeon items into the worlds. To ensure there is room for them. +# they are placed first so it will assume all other items are reachable +def fill_dungeons_restrictive(worlds, shuffled_locations): + all_state_base_list = [] # List of states with all non-key items + dungeon_items = [] # list of all dungeon items to be placed + for world in worlds: + all_state_base_list.append(world.get_all_state()) + dungeon_items.extend(world.get_dungeon_items()) + + # shuffle this list to avoid placement bias + random.shuffle(dungeon_items) + + # sort in the order Boss Key, Small Key, Other before placing dungeon items + # python sort is stable, so the ordering is still random within groups + sort_order = {"BossKey": 3, "SmallKey": 2} + dungeon_items.sort(key=lambda item: sort_order.get(item.type, 1)) + + # place dungeon items + fill_restrictive(worlds, all_state_base_list, shuffled_locations, dungeon_items) + + world.state.clear_cached_unreachable() + + +# This function returns a list of states that is each of the base_states +# with every item still in the itempool. It only adds items that belong +# to its respective world. See fill_restrictive +def sweep_from_pool(base_state_list, itempool): + new_state_list = [] + for base_state in base_state_list: new_state = base_state.copy() for item in itempool: - new_state.collect(item, True) + #check world + if item.world.id == base_state.world.id: + new_state.collect(item, True) new_state.sweep_for_events() - return new_state - + new_state_list.append(new_state) + return new_state_list + + +# Places items in the itempool into locations. +# worlds is a list of worlds and is redundant of the worlds in the base_state_list +# base_state_list is a list of world states prior to placing items in the item pool +# items and locations have pointers to the world that they belong to +# +# The algorithm places items in the world in reverse. +# This means we first assume we have every item in the item pool and +# remove an item and try to place it somewhere that is still reachable +# This method helps distribution of items locked behind many requirements +def fill_restrictive(worlds, base_state_list, locations, itempool): + # loop until there are no items or locations while itempool and locations: + # get and item and remove it from the itempool item_to_place = itempool.pop() - maximum_exploration_state = sweep_from_pool() - perform_access_check = True - if world.check_beatable_only: - perform_access_check = not world.has_beaten_game(maximum_exploration_state) + # generate the max states that include every remaining item + # this will allow us to place this item in a reachable location + maximum_exploration_state_list = sweep_from_pool(base_state_list, itempool) + + def temptest(state): + return [location for location in state.world.get_locations() if state.can_reach(location)] + for maximum_exploration_state in maximum_exploration_state_list : + maximum_exploration_state.clear_cached_unreachable() + logging.getLogger('').debug("Reachable locations: %d", len(temptest(maximum_exploration_state))) + + # perform_access_check checks location reachability + perform_access_check = True + if worlds[0].check_beatable_only: + # if any world can not longer be beatable with the remaining items + # then we must check for reachability no matter what. + # This way the reachability test is monotonic. If we were to later + # stop checking, then we could place an item needed in one world + # in an unreachable place in another world + perform_access_check = False + for id,world in enumerate(worlds): + if not world.has_beaten_game(maximum_exploration_state_list[id]): + perform_access_check = True + break + + # find a location that the item can be places. It must be a valid location + # in the world we are placing it (possibly checking for reachability) spot_to_fill = None for location in locations: - if location.can_fill(maximum_exploration_state, item_to_place, perform_access_check): + if location.world.id == item_to_place.world.id and location.can_fill(maximum_exploration_state_list[location.world.id], item_to_place, perform_access_check): spot_to_fill = location break + # if we failed to find a suitable location, then stop placing items if spot_to_fill is None: - # we filled all reachable spots. Maybe the game can be beaten anyway? - if world.can_beat_game(): - if not world.check_beatable_only: - logging.getLogger('').warning('Not all items placed. Game beatable anyway.') - break - raise FillError('No more spots to place %s' % item_to_place) + # Maybe the game can be beaten anyway? + for world in worlds: + if not world.can_beat_game(): + raise FillError('Game unbeatable: No more spots to place %s [World %d]' % (item_to_place, item_to_place.world.id)) - world.push_item(spot_to_fill, item_to_place, False) + if not worlds[0].check_beatable_only: + logging.getLogger('').warning('Not all items placed. Game beatable anyway.') + break + + # Place the item in the world and continue + spot_to_fill.world.push_item(spot_to_fill, item_to_place, False) locations.remove(spot_to_fill) spot_to_fill.event = True -def distribute_items_restrictive(world, fill_locations=None): - # If not passed in, then get a shuffled list of locations to fill in - if not fill_locations: - fill_locations = world.get_unfilled_locations() - random.shuffle(fill_locations) - - # get items to distribute - random.shuffle(world.itempool) - progitempool = [item for item in world.itempool if item.advancement] - prioitempool = [item for item in world.itempool if not item.advancement and item.priority] - restitempool = [item for item in world.itempool if not item.advancement and not item.priority] - - random.shuffle(fill_locations) - fill_locations.reverse() - - fill_restrictive(world, world.state, fill_locations, progitempool) - - random.shuffle(fill_locations) - - fill_restrictive_fast(world, world.state, fill_locations, prioitempool) - - random.shuffle(fill_locations) - - fast_fill(world, restitempool, fill_locations) - - logging.getLogger('').debug('Unplaced items: %s - Unfilled Locations: %s', [item.name for item in progitempool + prioitempool + restitempool], [location.name for location in fill_locations]) - - -def fast_fill(world, item_pool, fill_locations): - while item_pool and fill_locations: - spot_to_fill = fill_locations.pop() - item_to_place = item_pool.pop() - world.push_item(spot_to_fill, item_to_place, False) - -def fill_restrictive_fast(world, base_state, locations, itempool): - def sweep_from_pool(): - new_state = base_state.copy() - for item in itempool: - new_state.collect(item, True) - new_state.sweep_for_events() - return new_state - +# This places items in the itempool into the locations +# It does not check for reachability, only that the item is +# allowed in the location +def fill_restrictive_fast(worlds, locations, itempool): while itempool and locations: item_to_place = itempool.pop() + # get location that allows this item spot_to_fill = None for location in locations: if location.can_fill_fast(item_to_place): spot_to_fill = location break + # if we failed to find a suitable location, then stop placing items + # we don't need to check beatability since world must be beatable + # at this point if spot_to_fill is None: - # we filled all reachable spots. Maybe the game can be beaten anyway? - if world.can_beat_game(): + if not worlds[0].check_beatable_only: logging.getLogger('').warning('Not all items placed. Game beatable anyway.') - break - raise FillError('No more spots to place %s' % item_to_place) + break - world.push_item(spot_to_fill, item_to_place, False) + # Place the item in the world and continue + spot_to_fill.world.push_item(spot_to_fill, item_to_place, False) locations.remove(spot_to_fill) - spot_to_fill.event = True \ No newline at end of file + spot_to_fill.event = True + + +# this places item in item_pool completely randomly into +# fill_locations. There is no checks for validity since +# there should be none for these remaining items +def fast_fill(locations, itempool): + while itempool and locations: + spot_to_fill = locations.pop() + item_to_place = itempool.pop() + spot_to_fill.world.push_item(spot_to_fill, item_to_place, False) diff --git a/Hints.py b/Hints.py index 4e3ea9783..6ecf0fc54 100644 --- a/Hints.py +++ b/Hints.py @@ -194,7 +194,7 @@ def buildGossipHints(world, messages): checkedLocations.append(locationWorld.name) update_hint(messages, stoneIDs.pop(0), buildHintString(getHint(dungeon.name).text + \ - " hordes " + getHint(getItemGenericName(locationWorld.item)).text + ".")) + " hoards " + getHint(getItemGenericName(locationWorld.item)).text + ".")) # add bad overworld locations hints # only choose location if it is new and a proper item from the overworld @@ -229,7 +229,7 @@ def buildGossipHints(world, messages): checkedLocations.append(locationWorld.name) if locationWorld.parent_region.dungeon: update_hint(messages, stoneIDs.pop(0), buildHintString(getHint(locationWorld.parent_region.dungeon.name).text + \ - " hordes " + getHint(getItemGenericName(locationWorld.item)).text + ".")) + " hoards " + getHint(getItemGenericName(locationWorld.item)).text + ".")) else: update_hint(messages, stoneIDs.pop(0), buildHintString(getHint(getItemGenericName(locationWorld.item)).text + \ " can be found at " + locationWorld.parent_region.name + ".")) diff --git a/ItemList.py b/ItemList.py index ac3532f88..d1b8878c0 100644 --- a/ItemList.py +++ b/ItemList.py @@ -3,7 +3,6 @@ import random from Items import ItemFactory -from Fill import FillError, fill_restrictive #This file sets the item pools for various modes. Timed modes and triforce hunt are enforced first, and then extra items are specified per mode to fill in the remaining space. #Some basic items that various modes require are placed here, including pendants and crystals. Medallion requirements for the two relevant entrances are also decided. @@ -67,7 +66,9 @@ def generate_itempool(world): choose_trials(world) fill_bosses(world) - fill_songs(world) + + world.initialize_items() + def get_pool_core(world): pool = [] @@ -91,6 +92,7 @@ def get_pool_core(world): pool.append(bottle) tradeitem = random.choice(tradeitems) pool.append(tradeitem) + pool.extend(songlist) return (pool, placed_items) @@ -119,27 +121,3 @@ def fill_bosses(world, bossCount=9): loc = prize_locs.pop() world.push_item(loc, item, False) world.get_location(loc).event = True - -def fill_songs(world, attempts=15): - songs = ItemFactory(songlist) - song_locations = [world.get_location('Song from Composer Grave'), world.get_location('Impa at Castle'), world.get_location('Song from Malon'), world.get_location('Song from Saria'), world.get_location('Song from Ocarina of Time'), world.get_location('Song at Windmill'), world.get_location('Sheik Forest Song'), world.get_location('Sheik at Temple'), world.get_location('Sheik in Crater'), world.get_location('Sheik in Ice Cavern'), world.get_location('Sheik in Kakariko'), world.get_location('Sheik at Colossus')] - placed_prizes = [loc.item.name for loc in song_locations if loc.item is not None] - unplaced_prizes = [song for song in songs if song.name not in placed_prizes] - empty_song_locations = [loc for loc in song_locations if loc.item is None] - - while attempts: - attempts -= 1 - try: - prizepool = list(unplaced_prizes) - prize_locs = list(empty_song_locations) - random.shuffle(prizepool) - random.shuffle(prize_locs) - fill_restrictive(world, world.get_all_state(keys=True), prize_locs, prizepool) #TODO: Set keys to true once keys are properly implemented - except FillError: - logging.getLogger('').info("Failed to place songs. Will retry %s more times", attempts) - for location in empty_song_locations: - location.item = None - continue - break - else: - raise FillError('Unable to place songs') diff --git a/Main.py b/Main.py index d89f520cb..c8b0ae58b 100644 --- a/Main.py +++ b/Main.py @@ -13,7 +13,7 @@ from EntranceShuffle import link_entrances from Rom import patch_rom, LocalRom from Rules import set_rules -from Dungeons import create_dungeons, fill_dungeons_restrictive +from Dungeons import create_dungeons from Fill import distribute_items_restrictive from ItemList import generate_itempool from Utils import default_output_path @@ -24,43 +24,35 @@ def main(settings): # initialize the world - world = World(settings) + worlds = [] + for i in range(0, 1): # settings.player_count): + worlds.append(World(settings)) logger = logging.getLogger('') - random.seed(world.numeric_seed) + random.seed(worlds[0].numeric_seed) - logger.info('OoT Randomizer Version %s - Seed: %s\n\n', __version__, world.seed) + logger.info('OoT Randomizer Version %s - Seed: %s\n\n', __version__, worlds[0].seed) - create_regions(world) + for id, world in enumerate(worlds): + world.id = id + logger.info('Generating World %d.' % id) - create_dungeons(world) - - logger.info('Shuffling the World about.') - - link_entrances(world) - - logger.info('Calculating Access Rules.') - - set_rules(world) - - logger.info('Generating Item Pool.') - - generate_itempool(world) - - logger.info('Placing Dungeon Items.') - - shuffled_locations = None - shuffled_locations = world.get_unfilled_locations() - random.shuffle(shuffled_locations) - fill_dungeons_restrictive(world, shuffled_locations) + logger.info('Creating Overworld') + create_regions(world) + logger.info('Creating Dungeons') + create_dungeons(world) + logger.info('Linking Entrances') + link_entrances(world) + logger.info('Calculating Access Rules.') + set_rules(world) + logger.info('Generating Item Pool.') + generate_itempool(world) logger.info('Fill the world.') - - distribute_items_restrictive(world) + distribute_items_restrictive(worlds) logger.info('Calculating playthrough.') - create_playthrough(world) logger.info('Patching ROM.') diff --git a/Regions.py b/Regions.py index 2b15aa099..507c209be 100644 --- a/Regions.py +++ b/Regions.py @@ -174,7 +174,7 @@ def create_regions(world): create_grotto_region('Lake Hylia Grotto') ] - world.intialize_regions() + world.initialize_regions() def create_ow_region(name, locations=None, exits=None): return _create_region(name, RegionType.Overworld, locations, exits) diff --git a/version.py b/version.py index 6669d8838..6619e5022 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.12.9 f.LUM' \ No newline at end of file +__version__ = '2.12.10 f.LUM' \ No newline at end of file From 6c258f0fb5cad9f7ebf45b060d61e5384463ca70 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Mon, 16 Jul 2018 00:22:51 -0400 Subject: [PATCH 161/755] Fixed bug with events list persisting between generations --- ItemList.py | 15 ++++++++------- version.py | 2 +- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/ItemList.py b/ItemList.py index ac3532f88..c801d19f4 100644 --- a/ItemList.py +++ b/ItemList.py @@ -49,11 +49,6 @@ def generate_itempool(world): world.push_item(location, ItemFactory('Gold Skulltulla Token'), False) world.get_location(location).event = True - if not world.shuffle_weird_egg: - eventlocations['Malon Egg'] = 'Weird Egg' - if not world.shuffle_fairy_ocarina: - eventlocations['Gift from Saria'] = 'Ocarina' - for location, item in eventlocations.items(): world.push_item(location, ItemFactory(item), False) world.get_location(location).event = True @@ -61,7 +56,7 @@ def generate_itempool(world): # set up item pool (pool, placed_items) = get_pool_core(world) world.itempool = ItemFactory(pool) - for (location, item) in placed_items: + for location, item in placed_items.items(): world.push_item(location, ItemFactory(item), False) world.get_location(location).event = True @@ -71,14 +66,20 @@ def generate_itempool(world): def get_pool_core(world): pool = [] - placed_items = [] + placed_items = {} if not world.place_dungeon_items: pool.extend(notmapcompass) + if world.shuffle_weird_egg: pool.append('Weird Egg') + else: + placed_items['Malon Egg'] = 'Weird Egg' + if world.shuffle_fairy_ocarina: pool.append('Ocarina') + else: + placed_items['Gift from Saria'] = 'Ocarina' if world.progressive_bombchus: pool.extend(['Bombchus'] * 5) diff --git a/version.py b/version.py index 50becd5a2..89e0b27a7 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.1 f.LUM' +__version__ = '2.13.2 f.LUM' From cfb2aec6e2fcc423e340fd0fb6f95574a7fdf55a Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Mon, 16 Jul 2018 00:27:04 -0400 Subject: [PATCH 162/755] Fix volvagia requiring goron tunic --- Rules.py | 4 ++-- version.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Rules.py b/Rules.py index cea8512b1..c0e8644c7 100644 --- a/Rules.py +++ b/Rules.py @@ -212,8 +212,8 @@ def global_rules(world): set_rule(world.get_location('Fire Temple Compass Chest'), lambda state: state.has('Small Key (Fire Temple)', 6)) set_rule(world.get_location('Fire Temple Highest Goron Chest'), lambda state: state.can_play('Song of Time') and state.has('Hammer') and state.is_adult()) set_rule(world.get_location('Fire Temple Megaton Hammer Chest'), lambda state: state.has_explosives()) - set_rule(world.get_location('Volvagia'), lambda state: state.has('Hammer') and state.is_adult() and state.has('Boss Key (Fire Temple)') and (state.has('Hover Boots') or (state.can_reach('Fire Temple Upper') and (state.can_play('Song of Time') or state.has_explosives())))) - set_rule(world.get_location('Volvagia Heart'), lambda state: state.has('Hammer') and state.is_adult() and state.has('Boss Key (Fire Temple)') and (state.has('Hover Boots') or (state.can_reach('Fire Temple Upper') and (state.can_play('Song of Time') or state.has_explosives())))) + set_rule(world.get_location('Volvagia'), lambda state: state.has_GoronTunic() and state.has('Hammer') and state.is_adult() and state.has('Boss Key (Fire Temple)') and (state.has('Hover Boots') or (state.can_reach('Fire Temple Upper') and (state.can_play('Song of Time') or state.has_explosives())))) + set_rule(world.get_location('Volvagia Heart'), lambda state: state.has_GoronTunic() and state.has('Hammer') and state.is_adult() and state.has('Boss Key (Fire Temple)') and (state.has('Hover Boots') or (state.can_reach('Fire Temple Upper') and (state.can_play('Song of Time') or state.has_explosives())))) set_rule(world.get_location('Sheik in Crater'), lambda state: state.is_adult()) set_rule(world.get_location('Link the Goron'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade') or state.has_explosives() or state.has('Bow'))) set_rule(world.get_entrance('Crater Access'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade') or state.can_blast_or_smash())) diff --git a/version.py b/version.py index 89e0b27a7..737c321cf 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.2 f.LUM' +__version__ = '2.13.3 f.LUM' From 901ccbe2ab4e632dd9814e19604b844185924611 Mon Sep 17 00:00:00 2001 From: Vincent Cunningham Date: Mon, 16 Jul 2018 00:38:05 -0400 Subject: [PATCH 163/755] Fix some typos in the readme and correct bombchu logic being an option --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 458f18596..3dd20e0a3 100644 --- a/README.md +++ b/README.md @@ -15,9 +15,9 @@ The following were added or majorly changed on this fork: ## Logic changes -- The Heart Piece at the cow in Impa's house can be using only a chicken +- The Heart Piece at the cow in Impa's house can be reached using only a chicken - Zora Tunic is only required to get the key below the central pillar in the Water Temple -- Goron Tunix is only required for the fire trial in Ganon's Castle and to get to the 2nd floor (and beyond) in the Fire Temple +- Goron Tunic is only required for the fire trial in Ganon's Castle and to get to the 2nd floor (and beyond) in the Fire Temple ## Optional Logic changes @@ -57,7 +57,7 @@ Options to skip some sequences that only pad the time of completing the game wit ## Bombchus -Bombchus are now considered in logic. That is, once you've found bombchus, you can be expected to use them as explosives, hit switches, etc. to make progress in the seed. In order to have this make sense, the following changes were made: +Bombchus can be added to logic with `bombchus_in_logic`. That is, once you've found bombchus, you can be expected to use them as explosives, hit switches, etc. to make progress in the seed. In order to have this make sense, the following changes were made: - The back alley bombchu shop will now stock bombchus once you have bombchus in your inventory (even if you have 0). All options in this shop no longer sell out, and the right shelf's bottom-left pack is a sale of 5 bombchus for 60 rupees. Thus, once you have found bombchus, you can always buy more. - Bomchu Bowling is now playable only once you have bombchus in your inventory. This gives bombchus some unique power beyond the spirit trial, and also keeps them better self-contained (since you win bombchus from this mini-game). From df4162df004427d9bedfdff48c43f244bb1695ad Mon Sep 17 00:00:00 2001 From: IcySlurpee Date: Mon, 16 Jul 2018 11:43:09 -0700 Subject: [PATCH 164/755] Fixes Compress Args for Mac/Linux Compress for Mac and Linux take only one argument and it automatically appends `-comp` to the compressed ROM. The previous argument does not respect `output_dir`, looking for the uncompressed output ROM in the base dir causing a file not found error if an output directory is specified. This change uses `rom_path` as to respect the user's set `output_dir`. --- Main.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Main.py b/Main.py index d89f520cb..820de9f0d 100644 --- a/Main.py +++ b/Main.py @@ -80,9 +80,9 @@ def main(settings): if platform.system() == 'Windows': subprocess.call(["Compress\\Compress.exe", rom_path, os.path.join(output_dir, '%s-comp.z64' % outfilebase)]) elif platform.system() == 'Linux': - subprocess.call(["Compress/Compress", ('%s.z64' % outfilebase)]) + subprocess.call(["Compress/Compress", rom_path]) elif platform.system() == 'Darwin': - subprocess.call(["Compress/Compress.out", ('%s.z64' % outfilebase)]) + subprocess.call(["Compress/Compress.out", rom_path]) else: logger.info('OS not supported for compression') From d7316db7867fe1debac6eb252cd136df1e9b5941 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Mon, 16 Jul 2018 16:49:31 -0500 Subject: [PATCH 165/755] Fixed a number of skulltula flags. --- ASM/src/item_overrides.asm | 1 + Regions.py | 166 +++++++++++++++++++++---------------- data/base2current.json | 2 +- version.py | 2 +- 4 files changed, 97 insertions(+), 74 deletions(-) diff --git a/ASM/src/item_overrides.asm b/ASM/src/item_overrides.asm index b243ca49d..c3f7b600e 100755 --- a/ASM/src/item_overrides.asm +++ b/ASM/src/item_overrides.asm @@ -338,6 +338,7 @@ get_override_search_key: lhu t2, 0x00 (a1) ; t2 = actor ID bne t2, 0x019C, @@not_skulltula ; if not skulltula, try for other types + nop li t0, 0x03 ; t0 = skulltula type lhu t3, 0x1C (a1) ; t3 = skulltula token variable diff --git a/Regions.py b/Regions.py index ba0e7ebf1..af638b7db 100644 --- a/Regions.py +++ b/Regions.py @@ -487,27 +487,91 @@ def _create_region(name, type, locations=None, exits=None): # note that the scene for skulltulas is not the actual scene the token appears in # rather, it is the index of the grouping used when storing skulltula collection # for example, zora river, zora's domain, and zora fountain are all a single 'scene' for skulltulas - 'GS Kokiri Know It All House': (None, None, 0x02, 'GS Token', 0x0C, 'Kokiri Forest'), + 'GS Deku Tree Basement Back Room': (None, None, 0x01, 'GS Token', 0x00, 'Deku Tree'), + 'GS Deku Tree Basement Gate': (None, None, 0x02, 'GS Token', 0x00, 'Deku Tree'), + 'GS Deku Tree Basement Vines': (None, None, 0x04, 'GS Token', 0x00, 'Deku Tree'), + 'GS Deku Tree Compass Room': (None, None, 0x08, 'GS Token', 0x00, 'Deku Tree'), + + 'GS Dodongo\'s Cavern Vines Above Stairs': (None, None, 0x01, 'GS Token', 0x01, 'Dodongo\'s Cavern'), + 'GS Dodongo\'s Cavern Scarecrow': (None, None, 0x02, 'GS Token', 0x01, 'Dodongo\'s Cavern'), + 'GS Dodongo\'s Cavern Alcove Above Stairs': (None, None, 0x04, 'GS Token', 0x01, 'Dodongo\'s Cavern'), + 'GS Dodongo\'s Cavern Back Room': (None, None, 0x08, 'GS Token', 0x01, 'Dodongo\'s Cavern'), + 'GS Dodongo\'s Cavern East Side Room': (None, None, 0x10, 'GS Token', 0x01, 'Dodongo\'s Cavern'), + + 'GS Jabu Jabu Lobby Basement Lower': (None, None, 0x01, 'GS Token', 0x02, 'Jabu Jabu\'s Belly'), + 'GS Jabu Jabu Lobby Basement Upper': (None, None, 0x02, 'GS Token', 0x02, 'Jabu Jabu\'s Belly'), + 'GS Jabu Jabu Near Boss': (None, None, 0x04, 'GS Token', 0x02, 'Jabu Jabu\'s Belly'), + 'GS Jabu Jabu Water Switch Room': (None, None, 0x08, 'GS Token', 0x02, 'Jabu Jabu\'s Belly'), + + 'GS Forest Temple Outdoor East': (None, None, 0x01, 'GS Token', 0x03, 'Forest Temple'), + 'GS Forest Temple First Room': (None, None, 0x02, 'GS Token', 0x03, 'Forest Temple'), + 'GS Forest Temple Outdoor West': (None, None, 0x04, 'GS Token', 0x03, 'Forest Temple'), + 'GS Forest Temple Lobby': (None, None, 0x08, 'GS Token', 0x03, 'Forest Temple'), + 'GS Forest Temple Basement': (None, None, 0x10, 'GS Token', 0x03, 'Forest Temple'), + + 'GS Fire Temple Song of Time Room': (None, None, 0x01, 'GS Token', 0x04, 'Fire Temple'), + 'GS Fire Temple Basement': (None, None, 0x02, 'GS Token', 0x04, 'Fire Temple'), + 'GS Fire Temple Unmarked Bomb Wall': (None, None, 0x04, 'GS Token', 0x04, 'Fire Temple'), + 'GS Fire Temple East Tower Top': (None, None, 0x08, 'GS Token', 0x04, 'Fire Temple'), + 'GS Fire Temple East Tower Climb': (None, None, 0x10, 'GS Token', 0x04, 'Fire Temple'), + + 'GS Water Temple South Basement': (None, None, 0x01, 'GS Token', 0x05, 'Water Temple'), + 'GS Water Temple Falling Platform Room': (None, None, 0x02, 'GS Token', 0x05, 'Water Temple'), + 'GS Water Temple Central Room': (None, None, 0x04, 'GS Token', 0x05, 'Water Temple'), + 'GS Water Temple Near Boss Key Chest': (None, None, 0x08, 'GS Token', 0x05, 'Water Temple'), + 'GS Water Temple Serpent River': (None, None, 0x10, 'GS Token', 0x05, 'Water Temple'), + + 'GS Spirit Temple Hall to West Iron Knuckle': (None, None, 0x01, 'GS Token', 0x06, 'Spirit Temple'), + 'GS Spirit Temple Boulder Room': (None, None, 0x02, 'GS Token', 0x06, 'Spirit Temple'), + 'GS Spirit Temple Lobby': (None, None, 0x04, 'GS Token', 0x06, 'Spirit Temple'), + 'GS Spirit Temple Bomb for Light Room': (None, None, 0x08, 'GS Token', 0x06, 'Spirit Temple'), + 'GS Spirit Temple Metal Fence': (None, None, 0x10, 'GS Token', 0x06, 'Spirit Temple'), + + 'GS Shadow Temple Single Giant Pot': (None, None, 0x01, 'GS Token', 0x07, 'Shadow Temple'), + 'GS Shadow Temple Crusher Room': (None, None, 0x02, 'GS Token', 0x07, 'Shadow Temple'), + 'GS Shadow Temple Tripple Giant Pot': (None, None, 0x04, 'GS Token', 0x07, 'Shadow Temple'), + 'GS Shadow Temple Like Like Room': (None, None, 0x08, 'GS Token', 0x07, 'Shadow Temple'), + 'GS Shadow Temple Near Ship': (None, None, 0x10, 'GS Token', 0x07, 'Shadow Temple'), + + 'GS Well Like Like Cage': (None, None, 0x01, 'GS Token', 0x08, 'Bottom of the Well'), + 'GS Well East Inner Room': (None, None, 0x02, 'GS Token', 0x08, 'Bottom of the Well'), + 'GS Well West Inner Room': (None, None, 0x04, 'GS Token', 0x08, 'Bottom of the Well'), + + 'GS Ice Cavern Push Block Room': (None, None, 0x01, 'GS Token', 0x09, 'Ice Cavern'), + 'GS Ice Cavern Spinning Scythe Room': (None, None, 0x02, 'GS Token', 0x09, 'Ice Cavern'), + 'GS Ice Cavern Heart Piece Room': (None, None, 0x04, 'GS Token', 0x09, 'Ice Cavern'), + + 'GS Hyrule Field Near Gerudo Valley': (None, None, 0x01, 'GS Token', 0x0A, 'Hyrule Field'), + 'GS Hyrule Field near Kakariko': (None, None, 0x02, 'GS Token', 0x0A, 'Hyrule Field'), + + 'GS Lon Lon Ranch Back Wall': (None, None, 0x01, 'GS Token', 0x0B, 'Lon Lon Ranch'), + 'GS Lon Lon Ranch Rain Shed': (None, None, 0x02, 'GS Token', 0x0B, 'Lon Lon Ranch'), + 'GS Lon Lon Ranch House Window': (None, None, 0x04, 'GS Token', 0x0B, 'Lon Lon Ranch'), + 'GS Lon Lon Ranch Tree': (None, None, 0x08, 'GS Token', 0x0B, 'Lon Lon Ranch'), + 'GS Kokiri Bean Patch': (None, None, 0x01, 'GS Token', 0x0C, 'Kokiri Forest'), + 'GS Kokiri Know It All House': (None, None, 0x02, 'GS Token', 0x0C, 'Kokiri Forest'), 'GS Kokiri House of Twins': (None, None, 0x04, 'GS Token', 0x0C, 'Kokiri Forest'), + 'GS Lost Woods Bean Patch Near Bridge': (None, None, 0x01, 'GS Token', 0x0D, 'the Lost Woods'), 'GS Lost Woods Bean Patch Near Stage': (None, None, 0x02, 'GS Token', 0x0D, 'the Lost Woods'), 'GS Lost Woods Above Stage': (None, None, 0x04, 'GS Token', 0x0D, 'the Lost Woods'), 'GS Sacred Forest Meadow': (None, None, 0x08, 'GS Token', 0x0D, 'Sacred Forest Meadow'), - 'GS Deku Tree Compass Room': (None, None, 0x08, 'GS Token', 0x00, 'Deku Tree'), - 'GS Deku Tree Basement Vines': (None, None, 0x04, 'GS Token', 0x00, 'Deku Tree'), - 'GS Deku Tree Basement Gate': (None, None, 0x02, 'GS Token', 0x00, 'Deku Tree'), - 'GS Deku Tree Basement Back Room': (None, None, 0x01, 'GS Token', 0x00, 'Deku Tree'), - 'GS Hyrule Field near Kakariko': (None, None, 0x02, 'GS Token', 0x0A, 'Hyrule Field'), - 'GS Hyrule Field Near Gerudo Valley': (None, None, 0x01, 'GS Token', 0x0A, 'Hyrule Field'), - 'GS Castle Market Guard House': (None, None, 0x08, 'GS Token', 0x0E, 'the market'), - 'GS Hyrule Castle Tree': (None, None, 0x04, 'GS Token', 0x0E, 'Hyrule Castle'), - 'GS Hyrule Castle Grotto': (None, None, 0x02, 'GS Token', 0x0E, 'Hyrule Castle'), + 'GS Outside Ganon\'s Castle': (None, None, 0x01, 'GS Token', 0x0E, 'outside my castle'), - 'GS Lon Lon Ranch Tree': (None, None, 0x08, 'GS Token', 0x0B, 'Lon Lon Ranch'), - 'GS Lon Lon Ranch Rain Shed': (None, None, 0x02, 'GS Token', 0x0B, 'Lon Lon Ranch'), - 'GS Lon Lon Ranch House Window': (None, None, 0x04, 'GS Token', 0x0B, 'Lon Lon Ranch'), - 'GS Lon Lon Ranch Back Wall': (None, None, 0x01, 'GS Token', 0x0B, 'Lon Lon Ranch'), + 'GS Hyrule Castle Grotto': (None, None, 0x02, 'GS Token', 0x0E, 'Hyrule Castle'), + 'GS Hyrule Castle Tree': (None, None, 0x04, 'GS Token', 0x0E, 'Hyrule Castle'), + 'GS Castle Market Guard House': (None, None, 0x08, 'GS Token', 0x0E, 'the market'), + + 'GS Death Mounter Bean Patch': (None, None, 0x01, 'GS Token', 0x0F, 'Death Mountain Crater'), + 'GS Mountain Trail Bean Patch': (None, None, 0x02, 'GS Token', 0x0F, 'Death Mountain Trail'), + 'GS Mountain Trail Bomb Alcove': (None, None, 0x04, 'GS Token', 0x0F, 'Death Mountain Trail'), + 'GS Mountain Trail Above Dodongo\'s Cavern': (None, None, 0x08, 'GS Token', 0x0F, 'Death Mountain Trail'), + 'GS Mountain Trail Path to Crater': (None, None, 0x10, 'GS Token', 0x0F, 'Death Mountain Trail'), + 'GS Goron City Center Platform': (None, None, 0x20, 'GS Token', 0x0F, 'Goron City'), + 'GS Goron City Boulder Maze': (None, None, 0x40, 'GS Token', 0x0F, 'Goron City'), + 'GS Death Mounter Crater Crate': (None, None, 0x80, 'GS Token', 0x0F, 'Death Mountain Crater'), + 'GS Kakariko House Under Construction': (None, None, 0x08, 'GS Token', 0x10, 'Kakariko Village'), 'GS Kakariko Skulltula House': (None, None, 0x10, 'GS Token', 0x10, 'Kakariko Village'), 'GS Kakariko Guard\'s House': (None, None, 0x02, 'GS Token', 0x10, 'Kakariko Village'), @@ -516,74 +580,32 @@ def _create_region(name, type, locations=None, exits=None): 'GS Kakariko Above Impa\'s House': (None, None, 0x40, 'GS Token', 0x10, 'Kakariko Village'), 'GS Graveyard Wall': (None, None, 0x80, 'GS Token', 0x10, 'the Graveyard'), 'GS Graveyard Bean Patch': (None, None, 0x01, 'GS Token', 0x10, 'the Graveyard'), - 'GS Mountain Trail Bean Patch': (None, None, 0x02, 'GS Token', 0x0F, 'Death Mountain Trail'), - 'GS Mountain Trail Bomb Alcove': (None, None, 0x04, 'GS Token', 0x0F, 'Death Mountain Trail'), - 'GS Mountain Trail Path to Crater': (None, None, 0x10, 'GS Token', 0x0F, 'Death Mountain Trail'), - 'GS Mountain Trail Above Dodongo\'s Cavern': (None, None, 0x08, 'GS Token', 0x0F, 'Death Mountain Trail'), - 'GS Goron City Boulder Maze': (None, None, 0x40, 'GS Token', 0x0F, 'Goron City'), - 'GS Goron City Center Platform': (None, None, 0x20, 'GS Token', 0x0F, 'Goron City'), - 'GS Death Mounter Crater Crate': (None, None, 0x80, 'GS Token', 0x0F, 'Death Mountain Crater'), - 'GS Death Mounter Bean Patch': (None, None, 0x01, 'GS Token', 0x0F, 'Death Mountain Crater'), - 'GS Dodongo\'s Cavern East Side Room': (None, None, 0x10, 'GS Token', 0x01, 'Dodongo\'s Cavern'), - 'GS Dodongo\'s Cavern Vines Above Stairs': (None, None, 0x01, 'GS Token', 0x01, 'Dodongo\'s Cavern'), - 'GS Dodongo\'s Cavern Back Room': (None, None, 0x08, 'GS Token', 0x01, 'Dodongo\'s Cavern'), - 'GS Dodongo\'s Cavern Alcove Above Stairs': (None, None, 0x04, 'GS Token', 0x01, 'Dodongo\'s Cavern'), - 'GS Dodongo\'s Cavern Scarecrow': (None, None, 0x02, 'GS Token', 0x01, 'Dodongo\'s Cavern'), + 'GS Zora River Ladder': (None, None, 0x01, 'GS Token', 0x11, 'Zora River'), - 'GS Zora River Tree': (None, None, 0x01, 'GS Token', 0x11, 'Zora River'), - 'GS Zora River Near Raised Grottos': (None, None, 0x10, 'GS Token', 0x11, 'Zora River'), + 'GS Zora River Tree': (None, None, 0x02, 'GS Token', 0x11, 'Zora River'), + 'GS Zora\'s Fountain Above the Log': (None, None, 0x04, 'GS Token', 0x11, 'Zora\'s Fountain'), 'GS Zora River Above Bridge': (None, None, 0x08, 'GS Token', 0x11, 'Zora River'), + 'GS Zora River Near Raised Grottos': (None, None, 0x10, 'GS Token', 0x11, 'Zora River'), + 'GS Zora\'s Fountain Hidden Cave': (None, None, 0x20, 'GS Token', 0x11, 'Zora\'s Fountain'), 'GS Zora\'s Domain Frozen Waterfall': (None, None, 0x40, 'GS Token', 0x11, 'Zora\'s Domain'), 'GS Zora\'s Fountain Tree': (None, None, 0x80, 'GS Token', 0x11, 'Zora\'s Fountain'), - 'GS Zora\'s Fountain Above the Log': (None, None, 0x04, 'GS Token', 0x11, 'Zora\'s Fountain'), - 'GS Zora\'s Fountain Hidden Cave': (None, None, 0x20, 'GS Token', 0x11, 'Zora\'s Fountain'), - 'GS Jabu Jabu Water Switch Room': (None, None, 0x08, 'GS Token', 0x02, 'Jabu Jabu\'s Belly'), - 'GS Jabu Jabu Lobby Basement Lower': (None, None, 0x01, 'GS Token', 0x02, 'Jabu Jabu\'s Belly'), - 'GS Jabu Jabu Lobby Basement Upper': (None, None, 0x02, 'GS Token', 0x02, 'Jabu Jabu\'s Belly'), - 'GS Jabu Jabu Near Boss': (None, None, 0x04, 'GS Token', 0x02, 'Jabu Jabu\'s Belly'), + 'GS Lake Hylia Bean Patch': (None, None, 0x01, 'GS Token', 0x12, 'Lake Hylia'), - 'GS Lake Hylia Lab Wall': (None, None, 0x04, 'GS Token', 0x12, 'Lake Hylia'), 'GS Lake Hylia Small Island': (None, None, 0x02, 'GS Token', 0x12, 'Lake Hylia'), - 'GS Lake Hylia Giant Tree': (None, None, 0x01, 'GS Token', 0x12, 'Lake Hylia'), + 'GS Lake Hylia Lab Wall': (None, None, 0x04, 'GS Token', 0x12, 'Lake Hylia'), 'GS Lab Underwater Crate': (None, None, 0x08, 'GS Token', 0x12, 'Lake Hylia'), - 'GS Forest Temple First Room': (None, None, 0x02, 'GS Token', 0x03, 'Forest Temple'), - 'GS Forest Temple Lobby': (None, None, 0x08, 'GS Token', 0x03, 'Forest Temple'), - 'GS Forest Temple Outdoor East': (None, None, 0x01, 'GS Token', 0x03, 'Forest Temple'), - 'GS Forest Temple Outdoor West': (None, None, 0x04, 'GS Token', 0x03, 'Forest Temple'), - 'GS Forest Temple Basement': (None, None, 0x10, 'GS Token', 0x03, 'Forest Temple'), - 'GS Fire Temple Song of Time Room': (None, None, 0x01, 'GS Token', 0x04, 'Fire Temple'), - 'GS Fire Temple Unmarked Bomb Wall': (None, None, 0x04, 'GS Token', 0x04, 'Fire Temple'), - 'GS Fire Temple East Tower Climb': (None, None, 0x10, 'GS Token', 0x04, 'Fire Temple'), - 'GS Fire Temple East Tower Top': (None, None, 0x08, 'GS Token', 0x04, 'Fire Temple'), - 'GS Fire Temple Basement': (None, None, 0x02, 'GS Token', 0x04, 'Fire Temple'), - 'GS Ice Cavern Spinning Scythe Room': (None, None, 0x02, 'GS Token', 0x09, 'Ice Cavern'), - 'GS Ice Cavern Heart Piece Room': (None, None, 0x04, 'GS Token', 0x09, 'Ice Cavern'), - 'GS Ice Cavern Push Block Room': (None, None, 0x01, 'GS Token', 0x09, 'Ice Cavern'), - 'GS Water Temple South Basement': (None, None, 0x01, 'GS Token', 0x05, 'Water Temple'), - 'GS Water Temple Serpent River': (None, None, 0x10, 'GS Token', 0x05, 'Water Temple'), - 'GS Water Temple Falling Platform Room': (None, None, 0x02, 'GS Token', 0x05, 'Water Temple'), - 'GS Water Temple Central Room': (None, None, 0x04, 'GS Token', 0x05, 'Water Temple'), - 'GS Water Temple Near Boss Key Chest': (None, None, 0x08, 'GS Token', 0x05, 'Water Temple'), - 'GS Well West Inner Room': (None, None, 0x04, 'GS Token', 0x08, 'Bottom of the Well'), - 'GS Well East Inner Room': (None, None, 0x02, 'GS Token', 0x08, 'Bottom of the Well'), - 'GS Well Like Like Cage': (None, None, 0x01, 'GS Token', 0x08, 'Bottom of the Well'), - 'GS Shadow Temple Like Like Room': (None, None, 0x08, 'GS Token', 0x07, 'Shadow Temple'), - 'GS Shadow Temple Crusher Room': (None, None, 0x02, 'GS Token', 0x07, 'Shadow Temple'), - 'GS Shadow Temple Single Giant Pot': (None, None, 0x01, 'GS Token', 0x07, 'Shadow Temple'), - 'GS Shadow Temple Near Ship': (None, None, 0x10, 'GS Token', 0x07, 'Shadow Temple'), - 'GS Shadow Temple Tripple Giant Pot': (None, None, 0x04, 'GS Token', 0x07, 'Shadow Temple'), - 'GS Gerudo Valley Small Bridge': (None, None, 0x02, 'GS Token', 0x13, 'Gerudo Valley'), + 'GS Lake Hylia Giant Tree': (None, None, 0x10, 'GS Token', 0x12, 'Lake Hylia'), + 'GS Gerudo Valley Bean Patch': (None, None, 0x01, 'GS Token', 0x13, 'Gerudo Valley'), - 'GS Gerudo Valley Behind Tent': (None, None, 0x08, 'GS Token', 0x13, 'Gerudo Valley'), + 'GS Gerudo Valley Small Bridge': (None, None, 0x02, 'GS Token', 0x13, 'Gerudo Valley'), 'GS Gerudo Valley Pillar': (None, None, 0x04, 'GS Token', 0x13, 'Gerudo Valley'), + 'GS Gerudo Valley Behind Tent': (None, None, 0x08, 'GS Token', 0x13, 'Gerudo Valley'), + 'GS Gerudo Fortress Archery Range': (None, None, 0x01, 'GS Token', 0x14, 'Gerudo Fortress'), 'GS Gerudo Fortress Top Floor': (None, None, 0x02, 'GS Token', 0x14, 'Gerudo Fortress'), - 'GS Wasteland Ruins': (None, None, 0x02, 'GS Token', 0x15, 'Haunted Wasteland'), + 'GS Desert Colossus Bean Patch': (None, None, 0x01, 'GS Token', 0x15, 'Desert Colossus'), - 'GS Desert Colossus Tree': (None, None, 0x08, 'GS Token', 0x15, 'Desert Colossus'), + 'GS Wasteland Ruins': (None, None, 0x02, 'GS Token', 0x15, 'Haunted Wasteland'), 'GS Desert Colossus Hill': (None, None, 0x04, 'GS Token', 0x15, 'Desert Colossus'), - 'GS Spirit Temple Metal Fence': (None, None, 0x10, 'GS Token', 0x06, 'Spirit Temple'), - 'GS Spirit Temple Bomb for Light Room': (None, None, 0x08, 'GS Token', 0x06, 'Spirit Temple'), - 'GS Spirit Temple Hall to West Iron Knuckle': (None, None, 0x01, 'GS Token', 0x06, 'Spirit Temple'), - 'GS Spirit Temple Boulder Room': (None, None, 0x02, 'GS Token', 0x06, 'Spirit Temple'), - 'GS Spirit Temple Lobby': (None, None, 0x04, 'GS Token', 0x06, 'Spirit Temple')} + 'GS Desert Colossus Tree': (None, None, 0x08, 'GS Token', 0x15, 'Desert Colossus'), + } diff --git a/data/base2current.json b/data/base2current.json index 4e0b8b20e..43f95faa0 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -1 +1 @@ -[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 91]}, {"11325064": [12, 16, 11, 58, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 11, 149]}, {"11427312": [12, 16, 12, 62]}, {"11431496": [12, 16, 11, 66, 1, 15, 192, 33]}, {"11562028": [12, 16, 12, 95]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 12, 78]}, {"11882076": [12, 16, 12, 43]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 11]}, {"12286100": [0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 11, 123, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 11, 130, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 11, 109, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 43]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 9, 207]}, {"12427480": [12, 16, 10, 21]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 25]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 11, 74, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 55]}, {"12491480": [12, 16, 10, 64]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 15]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 11, 137]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 140, 73]}, {"14149503": [164]}, {"14149512": [2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149856": [87]}, {"14149859": [15]}, {"14357459": [118]}, {"14624335": [118]}, {"14872723": [52]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 9, 236, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 9, 236, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057408": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058464": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 104, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 132, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 172, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 212, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 252, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 36, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 64, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 92, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 120, 83, 65, 56, 67]}, {"55058613": [235, 21, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 55, 68]}, {"55058629": [235, 22, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 57, 69]}, {"55058645": [235, 23, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 63, 71]}, {"55058677": [244, 25, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 10, 6]}, {"55058757": [185, 1, 3, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 28]}, {"55058773": [185, 1, 4, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 29]}, {"55058789": [185, 1, 5, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 30]}, {"55058805": [185, 1, 6, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 42]}, {"55058821": [185, 1, 7, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 97]}, {"55058837": [185, 1, 10, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 98]}, {"55058853": [184, 2]}, {"55058856": [128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 99]}, {"55058869": [184, 2, 1, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 100]}, {"55058885": [184, 2, 2, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 101]}, {"55058901": [184, 2, 3, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 124]}, {"55058917": [184, 2, 4, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 125]}, {"55058933": [184, 2, 5, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 126]}, {"55058949": [184, 2, 6, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 127]}, {"55058965": [184, 2, 7, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 162]}, {"55058981": [184, 2, 8, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 135]}, {"55058997": [184, 2, 9, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 136]}, {"55059013": [200, 4]}, {"55059016": [128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 137]}, {"55059029": [200, 4, 1, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 138]}, {"55059045": [200, 4, 2, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 139]}, {"55059061": [200, 4, 3, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 140]}, {"55059077": [200, 4, 4, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 142]}, {"55059093": [200, 4, 5, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 143]}, {"55059109": [200, 4, 6, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 163]}, {"55059125": [200, 4, 7, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 165]}, {"55059141": [200, 4, 8, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 146]}, {"55059157": [200, 4, 9, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 2, 147]}, {"55059173": [170, 3, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 148]}, {"55059189": [170, 4, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 149]}, {"55059205": [170, 5, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 166]}, {"55059221": [170, 6, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 169]}, {"55059237": [170, 7, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 155]}, {"55059253": [170, 8, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 159]}, {"55059269": [170, 11, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 160]}, {"55059285": [170, 12, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 161]}, {"55059301": [170, 13, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 61, 67, 12]}, {"55059317": [248, 255, 255, 128, 64, 37, 236, 128, 64, 36, 96, 77, 131, 247, 85]}, {"55059333": [183, 255, 255, 128, 64, 37, 228, 128, 64, 36, 96, 77, 146, 219, 230]}, {"55059349": [216, 255, 255, 128, 64, 37, 228, 128, 64, 37, 172, 77, 147, 218, 230]}, {"55059365": [216, 255, 255, 128, 64, 37, 228, 128, 64, 37, 172, 77, 148, 217, 230]}, {"55059381": [216, 255, 255, 128, 64, 37, 228, 128, 64, 37, 172, 77, 142, 224, 50]}, {"55059397": [206, 255, 255, 128, 64, 37, 228, 128, 64, 37, 200, 77, 143, 224, 50]}, {"55059413": [206, 255, 255, 128, 64, 37, 228, 128, 64, 37, 200, 77, 144, 224, 50]}, {"55059429": [206, 255, 255, 128, 64, 37, 228, 128, 64, 37, 200, 77, 140, 238, 52]}, {"55059445": [187, 255, 255, 128, 64, 37, 228, 128, 64, 36, 96, 77, 141, 238, 52]}, {"55059461": [187, 255, 255, 128, 64, 37, 228, 128, 64, 36, 96, 79, 65, 19, 233]}, {"55059477": [189, 255, 255, 128, 64, 38, 124, 128, 64, 36, 96, 79, 65, 30, 228]}, {"55059493": [205, 255, 255, 128, 64, 38, 156, 128, 64, 37, 148, 79, 65, 31, 232]}, {"55059509": [205, 255, 255, 128, 64, 38, 188, 128, 64, 36, 96, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 38, 228, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 39, 44, 128, 64, 39, 16, 3, 224]}, {"55059555": [8, 52, 162]}, {"55059560": [144, 136]}, {"55059563": [125, 52, 1]}, {"55059567": [255, 17, 1]}, {"55059571": [2, 52, 2]}, {"55059575": [8, 52, 2]}, {"55059579": [9, 3, 224]}, {"55059583": [8]}, {"55059588": [144, 136]}, {"55059591": [163, 49, 8]}, {"55059595": [192, 17]}, {"55059599": [5, 52, 2]}, {"55059603": [84, 52, 1]}, {"55059607": [64, 17, 1]}, {"55059611": [2, 52, 2]}, {"55059615": [53, 52, 2]}, {"55059619": [54, 3, 224]}, {"55059623": [8]}, {"55059628": [144, 136]}, {"55059631": [163, 49, 8]}, {"55059635": [24, 17]}, {"55059639": [5, 52, 2]}, {"55059643": [50, 52, 1]}, {"55059647": [8, 17, 1]}, {"55059651": [2, 52, 2]}, {"55059655": [51, 52, 2]}, {"55059659": [52, 3, 224]}, {"55059663": [8]}, {"55059668": [144, 136]}, {"55059671": [163, 49, 8]}, {"55059675": [3, 17]}, {"55059679": [5, 52, 2]}, {"55059683": [4, 52, 1]}, {"55059687": [1, 17, 1]}, {"55059691": [2, 52, 2]}, {"55059695": [48, 52, 2]}, {"55059699": [49, 3, 224]}, {"55059703": [8]}, {"55059708": [144, 136]}, {"55059711": [162, 49, 8]}, {"55059715": [192, 17]}, {"55059719": [5, 52, 2]}, {"55059723": [5, 52, 1]}, {"55059727": [64, 17, 1]}, {"55059731": [2, 52, 2]}, {"55059735": [96, 52, 2]}, {"55059739": [123, 3, 224]}, {"55059743": [8]}, {"55059748": [144, 136]}, {"55059751": [162, 49, 8]}, {"55059755": [48, 17]}, {"55059759": [2, 52, 2]}, {"55059763": [69, 52, 2]}, {"55059767": [70, 3, 224]}, {"55059771": [8]}, {"55059776": [144, 136]}, {"55059779": [162, 49, 8]}, {"55059783": [6, 17]}, {"55059787": [2, 52, 2]}, {"55059791": [55, 52, 2]}, {"55059795": [56, 3, 224]}, {"55059799": [8]}, {"55059804": [144, 136]}, {"55059807": [161, 49, 8]}, {"55059811": [32, 17]}, {"55059815": [2, 52, 2]}, {"55059819": [121, 52, 2]}, {"55059823": [122, 3, 224]}, {"55059827": [8]}, {"55059832": [144, 136]}, {"55059835": [161, 49, 8]}, {"55059839": [4, 17]}, {"55059843": [2, 52, 2]}, {"55059847": [119, 52, 2]}, {"55059851": [120, 3, 224]}, {"55059855": [8]}, {"55059860": [144, 136]}, {"55059863": [50, 17]}, {"55059867": [2, 52, 2]}, {"55059871": [192, 52, 2]}, {"55059875": [193, 3, 224]}, {"55059879": [8]}, {"55059884": [144, 136]}, {"55059887": [163, 49, 8]}, {"55059891": [3, 17]}, {"55059895": [2, 52, 2]}, {"55059899": [77, 52, 162]}, {"55059904": [3, 224]}, {"55059907": [8]}, {"55059912": [144, 136]}, {"55059915": [163, 49, 8]}, {"55059919": [24, 17]}, {"55059923": [2, 52, 2]}, {"55059927": [77, 52, 162]}, {"55059932": [3, 224]}, {"55059935": [8]}, {"55059940": [3, 224]}, {"55059943": [8]}, {"55059948": [52, 8]}, {"55059951": [1, 160, 136]}, {"55059955": [62, 3, 224]}, {"55059959": [8]}, {"55059964": [36, 136]}, {"55059967": [134, 36, 9, 255, 255, 37, 41]}, {"55059975": [1, 52, 1]}, {"55059979": [3]}, {"55059981": [41, 8, 42, 20, 32]}, {"55059987": [7]}, {"55059992": [1, 9, 80, 33, 145, 75]}, {"55060000": [52, 1]}, {"55060003": [255, 21, 97, 255, 247]}, {"55060012": [161, 69]}, {"55060016": [3, 224]}, {"55060019": [8]}, {"55060024": [36, 136]}, {"55060027": [168, 1, 6, 64, 33, 145, 9]}, {"55060036": [1, 37, 72, 37, 161, 9]}, {"55060044": [3, 224]}, {"55060047": [8]}, {"55060052": [36, 136]}, {"55060055": [188, 1, 5, 64, 33, 129, 9]}, {"55060064": [5, 33]}, {"55060067": [2]}, {"55060072": [52, 9]}, {"55060076": [37, 41]}, {"55060079": [1, 161, 9]}, {"55060084": [3, 224]}, {"55060087": [8]}, {"55060092": [52, 8]}, {"55060095": [1, 160, 136]}, {"55060099": [61, 52, 8]}, {"55060103": [20, 160, 136]}, {"55060107": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060119": [8]}, {"55060124": [52, 8]}, {"55060127": [1, 160, 136]}, {"55060131": [50, 160, 136]}, {"55060135": [58, 52, 8]}, {"55060139": [48, 164, 136, 19, 244, 160, 136]}, {"55060147": [51, 3, 224]}, {"55060151": [8]}, {"55060156": [52, 8]}, {"55060159": [2, 160, 136]}, {"55060163": [50, 52, 8]}, {"55060167": [1, 160, 136]}, {"55060171": [58, 160, 136]}, {"55060175": [60, 52, 8]}, {"55060179": [96, 164, 136, 19, 244, 160, 136]}, {"55060187": [51, 3, 224]}, {"55060191": [8]}, {"55060196": [144, 136]}, {"55060199": [124, 52, 1]}, {"55060203": [255, 17, 1]}, {"55060207": [6, 52, 2]}, {"55060211": [107, 144, 136]}, {"55060215": [148, 45, 8]}, {"55060219": [6, 17]}, {"55060223": [2, 52, 2]}, {"55060227": [106, 52, 2]}, {"55060231": [3, 3, 224]}, {"55060235": [8]}, {"55060240": [144, 136]}, {"55060243": [123, 52, 1]}, {"55060247": [255, 17, 1]}, {"55060251": [2, 52, 162]}, {"55060256": [52, 2]}, {"55060259": [12, 3, 224]}, {"55060263": [8]}, {"55060268": [52, 8]}, {"55060271": [7, 160, 136]}, {"55060275": [123, 3, 224]}, {"55060279": [8]}, {"55060284": [48, 132]}, {"55060287": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060299": [140, 16, 129]}, {"55060303": [22, 145, 2]}, {"55060307": [117, 52, 1]}, {"55060311": [141, 16, 129]}, {"55060315": [19, 145, 2]}, {"55060319": [117, 16, 128]}, {"55060323": [17, 145, 2]}, {"55060327": [116, 52, 1]}, {"55060331": [138, 16, 129]}, {"55060335": [14, 145, 2]}, {"55060339": [116, 52, 1]}, {"55060343": [139, 16, 129]}, {"55060347": [11, 145, 2]}, {"55060351": [116, 52, 1]}, {"55060355": [88, 16, 129]}, {"55060359": [8, 52, 2]}, {"55060364": [52, 1]}, {"55060367": [120, 16, 129]}, {"55060371": [5, 52, 2]}, {"55060376": [52, 1]}, {"55060379": [121, 16, 129]}, {"55060383": [2, 52, 2]}, {"55060388": [52, 2]}, {"55060391": [255, 3, 224]}, {"55060395": [8]}, {"55060400": [39, 189, 255, 224, 175, 191]}, {"55060407": [16, 175, 176]}, {"55060411": [20, 12, 16, 10, 162]}, {"55060420": [4, 65]}, {"55060423": [2]}, {"55060428": [52, 2]}, {"55060431": [91]}, {"55060433": [64, 32, 33, 12, 16, 10, 238]}, {"55060444": [16, 96]}, {"55060447": [11, 175, 163]}, {"55060451": [28, 60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060463": [6, 144, 102]}, {"55060467": [7, 140, 105]}, {"55060471": [8, 1, 32, 248, 9]}, {"55060480": [143, 163]}, {"55060483": [28, 144, 101]}, {"55060487": [3, 16]}, {"55060491": [10, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060503": [6]}, {"55060505": [74]}, {"55060507": [24]}, {"55060510": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060520": [12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060531": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060542": [48, 33, 143, 191]}, {"55060547": [16, 143, 176]}, {"55060551": [20, 39, 189]}, {"55060555": [32, 3, 224]}, {"55060559": [8]}, {"55060564": [143, 166]}, {"55060567": [48, 132, 197]}, {"55060571": [4, 8, 16, 10, 29]}, {"55060580": [143, 185]}, {"55060583": [44, 135, 37]}, {"55060587": [4, 8, 16, 10, 29]}, {"55060596": [60, 10, 128, 64, 37, 74, 32]}, {"55060604": [141, 75]}, {"55060607": [12, 17, 96]}, {"55060611": [2]}, {"55060616": [149, 69]}, {"55060619": [4, 60, 10, 128, 64, 37, 74, 32, 16, 161, 64]}, {"55060632": [60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060644": [3, 224]}, {"55060647": [8]}, {"55060652": [60, 8, 128, 64, 37, 8, 32]}, {"55060660": [141, 9]}, {"55060663": [12, 17, 32]}, {"55060667": [2]}, {"55060672": [129, 3]}, {"55060675": [2]}, {"55060677": [3, 15, 195]}, {"55060681": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55060695": [8]}, {"55060700": [144, 69]}, {"55060703": [3, 60, 8, 128, 64, 37, 8, 32]}, {"55060712": [141, 9]}, {"55060715": [12, 17, 32]}, {"55060719": [2]}, {"55060724": [145, 5]}, {"55060727": [3, 3, 224]}, {"55060731": [8]}, {"55060736": [143, 162]}, {"55060739": [36, 144, 69]}, {"55060744": [60, 8, 128, 64, 37, 8, 32]}, {"55060752": [141, 9]}, {"55060755": [12, 17, 32]}, {"55060759": [19]}, {"55060764": [145, 5]}, {"55060767": [1, 175, 164]}, {"55060772": [175, 165]}, {"55060775": [4, 175, 166]}, {"55060779": [8, 39, 189, 255, 232, 175, 191]}, {"55060787": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55060799": [6, 145, 6]}, {"55060803": [7, 141, 9]}, {"55060807": [8, 1, 32, 248, 9]}, {"55060816": [143, 191]}, {"55060819": [16, 39, 189]}, {"55060823": [24, 143, 164]}, {"55060828": [143, 165]}, {"55060831": [4, 143, 166]}, {"55060835": [8, 3, 224]}, {"55060839": [8]}, {"55060844": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55060855": [16, 175, 163]}, {"55060859": [20, 175, 191]}, {"55060863": [24, 12, 16, 10, 104]}, {"55060872": [143, 162]}, {"55060875": [16, 143, 163]}, {"55060879": [20, 143, 191]}, {"55060883": [24, 39, 189]}, {"55060887": [32, 3, 224]}, {"55060891": [8]}, {"55060896": [39, 189, 255, 232, 175, 191]}, {"55060903": [16, 60, 8, 128, 64, 37, 8, 32]}, {"55060912": [173]}, {"55060916": [173]}, {"55060919": [4, 173]}, {"55060923": [8, 173]}, {"55060927": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55060943": [42]}, {"55060949": [9, 15, 195, 1, 33, 32, 38]}, {"55060957": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 162]}, {"55060972": [4, 64]}, {"55060975": [34]}, {"55060980": [52, 68]}, {"55060984": [12, 16, 10, 238]}, {"55060992": [16, 96]}, {"55060995": [12]}, {"55061000": [60, 8, 128, 64, 37, 8, 32]}, {"55061008": [140, 105]}, {"55061012": [173, 9]}, {"55061016": [140, 105]}, {"55061019": [4, 173, 9]}, {"55061023": [4, 140, 105]}, {"55061027": [8, 173, 9]}, {"55061031": [8, 52, 9]}, {"55061035": [1, 173, 9]}, {"55061039": [12, 144, 98]}, {"55061044": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061060": [52, 1]}, {"55061063": [10, 21, 65]}, {"55061067": [6]}, {"55061072": [149, 42]}, {"55061075": [28, 49, 74, 240, 31]}, {"55061081": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061091": [28, 129, 9, 4, 36, 5, 33]}, {"55061099": [2]}, {"55061105": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061115": [16, 39, 189]}, {"55061119": [24, 3, 224]}, {"55061123": [8]}, {"55061128": [39, 189, 255, 232, 175, 191]}, {"55061135": [16, 12, 16, 10, 176]}, {"55061144": [36, 1, 255, 255, 16, 65]}, {"55061151": [4]}, {"55061156": [52, 68]}, {"55061160": [12, 16, 10, 225]}, {"55061168": [143, 191]}, {"55061171": [16, 39, 189]}, {"55061175": [24, 3, 224]}, {"55061179": [8]}, {"55061184": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061195": [164, 52, 8]}, {"55061200": [52, 137]}, {"55061204": [148, 170]}, {"55061208": [52, 1, 1, 156, 21, 65]}, {"55061215": [5, 52, 8]}, {"55061219": [3, 148, 171]}, {"55061223": [28, 49, 105]}, {"55061227": [255, 16]}, {"55061231": [31]}, {"55061236": [52, 1]}, {"55061239": [10, 21, 65]}, {"55061243": [14]}, {"55061248": [148, 171]}, {"55061251": [28, 52, 1]}, {"55061255": [16, 20, 65]}, {"55061259": [8]}, {"55061264": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061275": [4]}, {"55061280": [36, 2, 255, 255, 16]}, {"55061287": [21]}, {"55061292": [52, 8]}, {"55061295": [1, 49, 105]}, {"55061299": [31, 52, 1]}, {"55061303": [21, 21, 65]}, {"55061307": [12]}, {"55061312": [52, 1]}, {"55061315": [62, 16, 129]}, {"55061319": [7]}, {"55061324": [52, 1]}, {"55061327": [66, 16, 129]}, {"55061331": [4]}, {"55061336": [36, 2, 255, 255, 16]}, {"55061343": [7]}, {"55061348": [52, 8]}, {"55061351": [2, 144, 169, 1, 65]}, {"55061357": [2, 18]}, {"55061361": [72, 16, 37]}, {"55061365": [2, 18]}, {"55061369": [73, 16, 37, 3, 224]}, {"55061375": [8]}, {"55061380": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061395": [4, 141, 9]}, {"55061400": [17, 32]}, {"55061403": [5]}, {"55061409": [9, 82, 2, 21, 68, 255, 250]}, {"55061420": [49, 34]}, {"55061423": [255, 3, 224]}, {"55061427": [8]}, {"55061432": [39, 189, 255, 224, 175, 176]}, {"55061439": [16, 175, 177]}, {"55061443": [20, 175, 191]}, {"55061447": [24, 52, 130]}, {"55061452": [52, 80]}, {"55061456": [38, 8, 255, 128, 5]}, {"55061463": [18]}, {"55061468": [60, 17, 128, 64, 38, 49, 32, 32, 52, 9]}, {"55061479": [16, 1, 9]}, {"55061483": [24]}, {"55061486": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061504": [142, 40]}, {"55061507": [12, 1]}, {"55061510": [248, 9]}, {"55061516": [20, 80, 255, 239]}, {"55061524": [54, 35]}, {"55061528": [16]}, {"55061531": [2]}, {"55061536": [52, 3]}, {"55061540": [143, 176]}, {"55061543": [16, 143, 177]}, {"55061547": [20, 143, 191]}, {"55061551": [24, 39, 189]}, {"55061555": [32, 3, 224]}, {"55061559": [8]}, {"55061564": [140, 136, 29, 44, 52, 9]}, {"55061571": [1]}, {"55061573": [9, 78]}, {"55061576": [1, 9, 16, 36, 16, 64]}, {"55061583": [36]}, {"55061588": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55061603": [164, 52, 1]}, {"55061607": [61, 17, 129]}, {"55061611": [10]}, {"55061617": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55061627": [25]}, {"55061632": [52, 13]}, {"55061635": [1, 161, 141, 29, 40, 37, 74]}, {"55061643": [3, 16]}, {"55061647": [9]}, {"55061652": [52, 12]}, {"55061655": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55061671": [14]}, {"55061676": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 2, 1, 10, 64, 33, 129, 8]}, {"55061712": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061724": [52, 2]}, {"55061728": [3, 224]}, {"55061731": [8]}, {"55061736": [60, 8, 128, 64, 37, 8, 28]}, {"55061744": [129, 8]}, {"55061748": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061760": [3, 224]}, {"55061763": [8]}, {"55061768": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55061780": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061792": [3, 224]}, {"55061795": [8]}, {"55061800": [175, 164]}, {"55061803": [104, 175, 165]}, {"55061807": [108, 175, 166]}, {"55061811": [112, 175, 167]}, {"55061815": [116, 39, 189, 255, 232, 175, 163]}, {"55061823": [16, 175, 191]}, {"55061827": [20, 60, 8, 128, 64, 37, 8, 32, 16, 129, 8]}, {"55061840": [17]}, {"55061843": [14]}, {"55061848": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55061859": [1, 165, 42]}, {"55061864": [60, 9, 128, 65, 52, 10]}, {"55061871": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 104]}, {"55061900": [143, 163]}, {"55061903": [16, 143, 191]}, {"55061907": [20, 39, 189]}, {"55061911": [24, 143, 164]}, {"55061915": [104, 143, 165]}, {"55061919": [108, 143, 166]}, {"55061923": [112, 143, 167]}, {"55061927": [116, 132, 110, 19, 196, 3, 224]}, {"55061935": [8]}, {"55061940": [147, 25]}, {"55061943": [116, 52, 1]}, {"55061947": [255, 23, 33]}, {"55061951": [2]}, {"55061956": [52, 25]}, {"55061959": [44, 3, 224]}, {"55061963": [8, 167, 185]}, {"55061967": [154, 147, 44]}, {"55061971": [116, 52, 1]}, {"55061975": [255, 21, 129]}, {"55061979": [2]}, {"55061984": [52, 12]}, {"55061987": [44, 3, 224]}, {"55061991": [8]}, {"55061996": [145, 174]}, {"55061999": [116, 52, 1]}, {"55062003": [255, 21, 193]}, {"55062007": [2]}, {"55062012": [52, 14]}, {"55062015": [44, 3, 224]}, {"55062019": [8, 167, 174]}, {"55062023": [154, 145, 207]}, {"55062027": [116, 52, 1]}, {"55062031": [255, 21, 225]}, {"55062035": [2]}, {"55062040": [52, 15]}, {"55062043": [44, 3, 224]}, {"55062047": [8, 167, 175]}, {"55062051": [154, 60, 8, 128, 64, 37, 8, 32, 20, 142, 9]}, {"55062063": [104, 173, 9]}, {"55062068": [142, 9]}, {"55062071": [108, 173, 9]}, {"55062075": [4, 150, 9]}, {"55062079": [112, 165, 9]}, {"55062083": [8, 150, 9]}, {"55062087": [156, 165, 9]}, {"55062091": [10, 3, 224]}, {"55062095": [8, 142, 14]}, {"55062099": [4, 39, 189, 255, 224, 175, 176]}, {"55062107": [16, 175, 177]}, {"55062111": [20, 175, 191]}, {"55062115": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 20, 142, 8]}, {"55062135": [4, 17]}, {"55062139": [5]}, {"55062144": [12, 16, 11, 191]}, {"55062152": [16]}, {"55062155": [3]}, {"55062160": [12, 16, 11, 210]}, {"55062168": [12, 16, 11, 178, 52, 4]}, {"55062176": [12, 16, 11, 178, 52, 4]}, {"55062183": [1, 12, 16, 11, 178, 52, 4]}, {"55062191": [2, 143, 176]}, {"55062195": [16, 143, 177]}, {"55062199": [20, 143, 191]}, {"55062203": [24, 39, 189]}, {"55062207": [32, 3, 224]}, {"55062211": [8]}, {"55062216": [2, 4, 64, 33, 145, 9]}, {"55062223": [108, 52, 1]}, {"55062227": [255, 17, 33]}, {"55062231": [7]}, {"55062236": [2, 9, 72, 33, 145, 41]}, {"55062243": [116, 52, 1]}, {"55062247": [44, 17, 33]}, {"55062251": [2]}, {"55062256": [161, 9]}, {"55062259": [105, 3, 224]}, {"55062263": [8]}, {"55062268": [39, 189, 255, 232, 175, 191]}, {"55062275": [16, 142, 40]}, {"55062280": [174, 8]}, {"55062283": [64, 142, 40]}, {"55062287": [4, 174, 8]}, {"55062291": [68, 150, 40]}, {"55062295": [8, 166, 8]}, {"55062299": [72, 162]}, {"55062302": [15, 51, 146, 8]}, {"55062307": [74, 52, 1]}, {"55062311": [255, 21, 1]}, {"55062315": [3]}, {"55062320": [12, 16, 11, 224]}, {"55062328": [143, 191]}, {"55062331": [16, 39, 189]}, {"55062335": [24, 3, 224]}, {"55062339": [8]}, {"55062344": [142, 8]}, {"55062347": [64, 174, 8]}, {"55062351": [104, 142, 8]}, {"55062355": [68, 174, 8]}, {"55062359": [108, 150, 8]}, {"55062363": [72, 166, 8]}, {"55062367": [112, 146, 8]}, {"55062371": [104, 52, 1]}, {"55062375": [255, 21, 1]}, {"55062379": [3]}, {"55062384": [52, 8]}, {"55062387": [1, 162, 8, 15, 51, 3, 224]}, {"55062395": [8]}, {"55062400": [39, 189, 255, 232, 175, 191]}, {"55062407": [16, 150, 8]}, {"55062411": [156, 49, 8]}, {"55062415": [64, 17]}, {"55062419": [5]}, {"55062424": [150, 8]}, {"55062427": [112, 49, 8, 255, 15, 53, 8]}, {"55062435": [48, 166, 8]}, {"55062439": [112, 146, 40]}, {"55062443": [1, 162, 8]}, {"55062447": [105, 150, 40]}, {"55062451": [2, 166, 8]}, {"55062455": [106, 142, 40]}, {"55062459": [4, 174, 8]}, {"55062463": [108, 12, 16, 11, 250, 52, 4]}, {"55062472": [12, 16, 11, 250, 52, 4]}, {"55062479": [1, 12, 16, 11, 250, 52, 4]}, {"55062487": [2, 143, 191]}, {"55062491": [16, 39, 189]}, {"55062495": [24, 3, 224]}, {"55062499": [8]}, {"55062504": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 48, 148, 145, 10]}, {"55062519": [108, 52, 1]}, {"55062523": [255, 17, 65]}, {"55062527": [5]}, {"55062532": [1, 42, 72, 33, 145, 41]}, {"55062540": [21, 32]}, {"55062543": [28]}, {"55062548": [60, 9, 128, 64, 37, 41, 48, 135, 37, 41]}, {"55062559": [1, 145, 42]}, {"55062564": [17, 64]}, {"55062567": [19]}, {"55062572": [2, 10, 88, 33, 145, 107]}, {"55062579": [116, 52, 1]}, {"55062583": [255, 17, 97, 255, 248]}, {"55062592": [146, 12]}, {"55062595": [108, 17, 138, 255, 245]}, {"55062604": [146, 12]}, {"55062607": [109, 17, 138, 255, 242]}, {"55062616": [146, 12]}, {"55062619": [110, 17, 138, 255, 239]}, {"55062628": [161, 11]}, {"55062631": [105, 161, 10]}, {"55062635": [108, 16]}, {"55062639": [4]}, {"55062644": [52, 9]}, {"55062647": [255, 161, 9]}, {"55062651": [105, 161, 9]}, {"55062655": [108, 3, 224]}, {"55062659": [8]}, {"55062664": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55062677": [1, 1, 1, 1, 1]}, {"55062683": [1, 1, 1, 1, 1]}, {"55062689": [1]}, {"55062691": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55062701": [51, 8, 33, 32, 15]}, {"55062707": [71, 21, 234]}, {"55062711": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062723": [164]}, {"55062725": [15, 122, 3, 20, 64]}, {"55062731": [5, 52, 2, 72, 48, 21, 226]}, {"55062739": [7]}, {"55062744": [36, 25]}, {"55062747": [3, 16]}, {"55062751": [4, 52, 2, 99, 17, 21, 226]}, {"55062759": [2]}, {"55062764": [36, 25]}, {"55062767": [3, 3, 224]}, {"55062771": [8]}, {"55062776": [141, 173, 138, 160, 52, 2, 128]}, {"55062784": [16, 77]}, {"55062787": [2]}, {"55062792": [16]}, {"55062795": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55062811": [1, 16, 64]}, {"55062815": [2]}, {"55062820": [16]}, {"55062823": [2, 52, 2]}, {"55062827": [1, 161, 226, 28, 191, 3, 224]}, {"55062835": [8]}, {"55062841": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062855": [164]}, {"55062857": [15, 122, 3, 20, 64]}, {"55062863": [5, 52, 2, 72, 48, 21, 226]}, {"55062871": [7]}, {"55062876": [36, 25]}, {"55062879": [3, 16]}, {"55062883": [4, 52, 2, 99, 17, 21, 226]}, {"55062891": [2]}, {"55062896": [36, 25]}, {"55062899": [3, 3, 224]}, {"55062903": [8]}, {"55062908": [162, 37]}, {"55062911": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55062923": [4, 142, 10]}, {"55062928": [17, 64]}, {"55062931": [11]}, {"55062937": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55062949": [24, 194, 2, 23]}, {"55062955": [3, 49, 89]}, {"55062959": [255, 129, 234]}, {"55062964": [3, 42, 200, 37, 8, 16, 12, 98, 161, 249]}, {"55062976": [3, 224]}, {"55062979": [8]}] \ No newline at end of file +[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 91]}, {"11325064": [12, 16, 11, 61, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 11, 152]}, {"11427312": [12, 16, 12, 65]}, {"11431496": [12, 16, 11, 69, 1, 15, 192, 33]}, {"11562028": [12, 16, 12, 98]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 12, 81]}, {"11882076": [12, 16, 12, 46]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 11, 119, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 11, 126, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 11, 133, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 11, 112, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 43]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 9, 207]}, {"12427480": [12, 16, 10, 21]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 25]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 11, 77, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 55]}, {"12491480": [12, 16, 10, 64]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 18]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 11, 140]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 140, 73]}, {"14149503": [164]}, {"14149512": [2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149856": [87]}, {"14149859": [15]}, {"14357459": [118]}, {"14624335": [118]}, {"14872723": [52]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 9, 236, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 9, 236, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057408": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058464": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 104, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 132, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 172, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 212, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 252, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 36, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 64, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 92, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 120, 83, 65, 56, 67]}, {"55058613": [235, 21, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 55, 68]}, {"55058629": [235, 22, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 57, 69]}, {"55058645": [235, 23, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 63, 71]}, {"55058677": [244, 25, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 10, 6]}, {"55058757": [185, 1, 3, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 28]}, {"55058773": [185, 1, 4, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 29]}, {"55058789": [185, 1, 5, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 30]}, {"55058805": [185, 1, 6, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 42]}, {"55058821": [185, 1, 7, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 97]}, {"55058837": [185, 1, 10, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 98]}, {"55058853": [184, 2]}, {"55058856": [128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 99]}, {"55058869": [184, 2, 1, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 100]}, {"55058885": [184, 2, 2, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 101]}, {"55058901": [184, 2, 3, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 124]}, {"55058917": [184, 2, 4, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 125]}, {"55058933": [184, 2, 5, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 126]}, {"55058949": [184, 2, 6, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 127]}, {"55058965": [184, 2, 7, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 162]}, {"55058981": [184, 2, 8, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 135]}, {"55058997": [184, 2, 9, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 136]}, {"55059013": [200, 4]}, {"55059016": [128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 137]}, {"55059029": [200, 4, 1, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 138]}, {"55059045": [200, 4, 2, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 139]}, {"55059061": [200, 4, 3, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 140]}, {"55059077": [200, 4, 4, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 142]}, {"55059093": [200, 4, 5, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 143]}, {"55059109": [200, 4, 6, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 163]}, {"55059125": [200, 4, 7, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 165]}, {"55059141": [200, 4, 8, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 146]}, {"55059157": [200, 4, 9, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 2, 147]}, {"55059173": [170, 3, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 148]}, {"55059189": [170, 4, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 149]}, {"55059205": [170, 5, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 166]}, {"55059221": [170, 6, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 169]}, {"55059237": [170, 7, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 155]}, {"55059253": [170, 8, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 159]}, {"55059269": [170, 11, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 160]}, {"55059285": [170, 12, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 161]}, {"55059301": [170, 13, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 61, 67, 12]}, {"55059317": [248, 255, 255, 128, 64, 37, 236, 128, 64, 36, 96, 77, 131, 247, 85]}, {"55059333": [183, 255, 255, 128, 64, 37, 228, 128, 64, 36, 96, 77, 146, 219, 230]}, {"55059349": [216, 255, 255, 128, 64, 37, 228, 128, 64, 37, 172, 77, 147, 218, 230]}, {"55059365": [216, 255, 255, 128, 64, 37, 228, 128, 64, 37, 172, 77, 148, 217, 230]}, {"55059381": [216, 255, 255, 128, 64, 37, 228, 128, 64, 37, 172, 77, 142, 224, 50]}, {"55059397": [206, 255, 255, 128, 64, 37, 228, 128, 64, 37, 200, 77, 143, 224, 50]}, {"55059413": [206, 255, 255, 128, 64, 37, 228, 128, 64, 37, 200, 77, 144, 224, 50]}, {"55059429": [206, 255, 255, 128, 64, 37, 228, 128, 64, 37, 200, 77, 140, 238, 52]}, {"55059445": [187, 255, 255, 128, 64, 37, 228, 128, 64, 36, 96, 77, 141, 238, 52]}, {"55059461": [187, 255, 255, 128, 64, 37, 228, 128, 64, 36, 96, 79, 65, 19, 233]}, {"55059477": [189, 255, 255, 128, 64, 38, 124, 128, 64, 36, 96, 79, 65, 30, 228]}, {"55059493": [205, 255, 255, 128, 64, 38, 156, 128, 64, 37, 148, 79, 65, 31, 232]}, {"55059509": [205, 255, 255, 128, 64, 38, 188, 128, 64, 36, 96, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 38, 228, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 39, 44, 128, 64, 39, 16, 3, 224]}, {"55059555": [8, 52, 162]}, {"55059560": [144, 136]}, {"55059563": [125, 52, 1]}, {"55059567": [255, 17, 1]}, {"55059571": [2, 52, 2]}, {"55059575": [8, 52, 2]}, {"55059579": [9, 3, 224]}, {"55059583": [8]}, {"55059588": [144, 136]}, {"55059591": [163, 49, 8]}, {"55059595": [192, 17]}, {"55059599": [5, 52, 2]}, {"55059603": [84, 52, 1]}, {"55059607": [64, 17, 1]}, {"55059611": [2, 52, 2]}, {"55059615": [53, 52, 2]}, {"55059619": [54, 3, 224]}, {"55059623": [8]}, {"55059628": [144, 136]}, {"55059631": [163, 49, 8]}, {"55059635": [24, 17]}, {"55059639": [5, 52, 2]}, {"55059643": [50, 52, 1]}, {"55059647": [8, 17, 1]}, {"55059651": [2, 52, 2]}, {"55059655": [51, 52, 2]}, {"55059659": [52, 3, 224]}, {"55059663": [8]}, {"55059668": [144, 136]}, {"55059671": [163, 49, 8]}, {"55059675": [3, 17]}, {"55059679": [5, 52, 2]}, {"55059683": [4, 52, 1]}, {"55059687": [1, 17, 1]}, {"55059691": [2, 52, 2]}, {"55059695": [48, 52, 2]}, {"55059699": [49, 3, 224]}, {"55059703": [8]}, {"55059708": [144, 136]}, {"55059711": [162, 49, 8]}, {"55059715": [192, 17]}, {"55059719": [5, 52, 2]}, {"55059723": [5, 52, 1]}, {"55059727": [64, 17, 1]}, {"55059731": [2, 52, 2]}, {"55059735": [96, 52, 2]}, {"55059739": [123, 3, 224]}, {"55059743": [8]}, {"55059748": [144, 136]}, {"55059751": [162, 49, 8]}, {"55059755": [48, 17]}, {"55059759": [2, 52, 2]}, {"55059763": [69, 52, 2]}, {"55059767": [70, 3, 224]}, {"55059771": [8]}, {"55059776": [144, 136]}, {"55059779": [162, 49, 8]}, {"55059783": [6, 17]}, {"55059787": [2, 52, 2]}, {"55059791": [55, 52, 2]}, {"55059795": [56, 3, 224]}, {"55059799": [8]}, {"55059804": [144, 136]}, {"55059807": [161, 49, 8]}, {"55059811": [32, 17]}, {"55059815": [2, 52, 2]}, {"55059819": [121, 52, 2]}, {"55059823": [122, 3, 224]}, {"55059827": [8]}, {"55059832": [144, 136]}, {"55059835": [161, 49, 8]}, {"55059839": [4, 17]}, {"55059843": [2, 52, 2]}, {"55059847": [119, 52, 2]}, {"55059851": [120, 3, 224]}, {"55059855": [8]}, {"55059860": [144, 136]}, {"55059863": [50, 17]}, {"55059867": [2, 52, 2]}, {"55059871": [192, 52, 2]}, {"55059875": [193, 3, 224]}, {"55059879": [8]}, {"55059884": [144, 136]}, {"55059887": [163, 49, 8]}, {"55059891": [3, 17]}, {"55059895": [2, 52, 2]}, {"55059899": [77, 52, 162]}, {"55059904": [3, 224]}, {"55059907": [8]}, {"55059912": [144, 136]}, {"55059915": [163, 49, 8]}, {"55059919": [24, 17]}, {"55059923": [2, 52, 2]}, {"55059927": [77, 52, 162]}, {"55059932": [3, 224]}, {"55059935": [8]}, {"55059940": [3, 224]}, {"55059943": [8]}, {"55059948": [52, 8]}, {"55059951": [1, 160, 136]}, {"55059955": [62, 3, 224]}, {"55059959": [8]}, {"55059964": [36, 136]}, {"55059967": [134, 36, 9, 255, 255, 37, 41]}, {"55059975": [1, 52, 1]}, {"55059979": [3]}, {"55059981": [41, 8, 42, 20, 32]}, {"55059987": [7]}, {"55059992": [1, 9, 80, 33, 145, 75]}, {"55060000": [52, 1]}, {"55060003": [255, 21, 97, 255, 247]}, {"55060012": [161, 69]}, {"55060016": [3, 224]}, {"55060019": [8]}, {"55060024": [36, 136]}, {"55060027": [168, 1, 6, 64, 33, 145, 9]}, {"55060036": [1, 37, 72, 37, 161, 9]}, {"55060044": [3, 224]}, {"55060047": [8]}, {"55060052": [36, 136]}, {"55060055": [188, 1, 5, 64, 33, 129, 9]}, {"55060064": [5, 33]}, {"55060067": [2]}, {"55060072": [52, 9]}, {"55060076": [37, 41]}, {"55060079": [1, 161, 9]}, {"55060084": [3, 224]}, {"55060087": [8]}, {"55060092": [52, 8]}, {"55060095": [1, 160, 136]}, {"55060099": [61, 52, 8]}, {"55060103": [20, 160, 136]}, {"55060107": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060119": [8]}, {"55060124": [52, 8]}, {"55060127": [1, 160, 136]}, {"55060131": [50, 160, 136]}, {"55060135": [58, 52, 8]}, {"55060139": [48, 164, 136, 19, 244, 160, 136]}, {"55060147": [51, 3, 224]}, {"55060151": [8]}, {"55060156": [52, 8]}, {"55060159": [2, 160, 136]}, {"55060163": [50, 52, 8]}, {"55060167": [1, 160, 136]}, {"55060171": [58, 160, 136]}, {"55060175": [60, 52, 8]}, {"55060179": [96, 164, 136, 19, 244, 160, 136]}, {"55060187": [51, 3, 224]}, {"55060191": [8]}, {"55060196": [144, 136]}, {"55060199": [124, 52, 1]}, {"55060203": [255, 17, 1]}, {"55060207": [6, 52, 2]}, {"55060211": [107, 144, 136]}, {"55060215": [148, 45, 8]}, {"55060219": [6, 17]}, {"55060223": [2, 52, 2]}, {"55060227": [106, 52, 2]}, {"55060231": [3, 3, 224]}, {"55060235": [8]}, {"55060240": [144, 136]}, {"55060243": [123, 52, 1]}, {"55060247": [255, 17, 1]}, {"55060251": [2, 52, 162]}, {"55060256": [52, 2]}, {"55060259": [12, 3, 224]}, {"55060263": [8]}, {"55060268": [52, 8]}, {"55060271": [7, 160, 136]}, {"55060275": [123, 3, 224]}, {"55060279": [8]}, {"55060284": [48, 132]}, {"55060287": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060299": [140, 16, 129]}, {"55060303": [22, 145, 2]}, {"55060307": [117, 52, 1]}, {"55060311": [141, 16, 129]}, {"55060315": [19, 145, 2]}, {"55060319": [117, 16, 128]}, {"55060323": [17, 145, 2]}, {"55060327": [116, 52, 1]}, {"55060331": [138, 16, 129]}, {"55060335": [14, 145, 2]}, {"55060339": [116, 52, 1]}, {"55060343": [139, 16, 129]}, {"55060347": [11, 145, 2]}, {"55060351": [116, 52, 1]}, {"55060355": [88, 16, 129]}, {"55060359": [8, 52, 2]}, {"55060364": [52, 1]}, {"55060367": [120, 16, 129]}, {"55060371": [5, 52, 2]}, {"55060376": [52, 1]}, {"55060379": [121, 16, 129]}, {"55060383": [2, 52, 2]}, {"55060388": [52, 2]}, {"55060391": [255, 3, 224]}, {"55060395": [8]}, {"55060400": [39, 189, 255, 224, 175, 191]}, {"55060407": [16, 175, 176]}, {"55060411": [20, 12, 16, 10, 162]}, {"55060420": [4, 65]}, {"55060423": [2]}, {"55060428": [52, 2]}, {"55060431": [91]}, {"55060433": [64, 32, 33, 12, 16, 10, 241]}, {"55060444": [16, 96]}, {"55060447": [11, 175, 163]}, {"55060451": [28, 60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060463": [6, 144, 102]}, {"55060467": [7, 140, 105]}, {"55060471": [8, 1, 32, 248, 9]}, {"55060480": [143, 163]}, {"55060483": [28, 144, 101]}, {"55060487": [3, 16]}, {"55060491": [10, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060503": [6]}, {"55060505": [74]}, {"55060507": [24]}, {"55060510": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060520": [12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060531": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060542": [48, 33, 143, 191]}, {"55060547": [16, 143, 176]}, {"55060551": [20, 39, 189]}, {"55060555": [32, 3, 224]}, {"55060559": [8]}, {"55060564": [143, 166]}, {"55060567": [48, 132, 197]}, {"55060571": [4, 8, 16, 10, 29]}, {"55060580": [143, 185]}, {"55060583": [44, 135, 37]}, {"55060587": [4, 8, 16, 10, 29]}, {"55060596": [60, 10, 128, 64, 37, 74, 32]}, {"55060604": [141, 75]}, {"55060607": [12, 17, 96]}, {"55060611": [2]}, {"55060616": [149, 69]}, {"55060619": [4, 60, 10, 128, 64, 37, 74, 32, 16, 161, 64]}, {"55060632": [60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060644": [3, 224]}, {"55060647": [8]}, {"55060652": [60, 8, 128, 64, 37, 8, 32]}, {"55060660": [141, 9]}, {"55060663": [12, 17, 32]}, {"55060667": [2]}, {"55060672": [129, 3]}, {"55060675": [2]}, {"55060677": [3, 15, 195]}, {"55060681": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55060695": [8]}, {"55060700": [144, 69]}, {"55060703": [3, 60, 8, 128, 64, 37, 8, 32]}, {"55060712": [141, 9]}, {"55060715": [12, 17, 32]}, {"55060719": [2]}, {"55060724": [145, 5]}, {"55060727": [3, 3, 224]}, {"55060731": [8]}, {"55060736": [143, 162]}, {"55060739": [36, 144, 69]}, {"55060744": [60, 8, 128, 64, 37, 8, 32]}, {"55060752": [141, 9]}, {"55060755": [12, 17, 32]}, {"55060759": [19]}, {"55060764": [145, 5]}, {"55060767": [1, 175, 164]}, {"55060772": [175, 165]}, {"55060775": [4, 175, 166]}, {"55060779": [8, 39, 189, 255, 232, 175, 191]}, {"55060787": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55060799": [6, 145, 6]}, {"55060803": [7, 141, 9]}, {"55060807": [8, 1, 32, 248, 9]}, {"55060816": [143, 191]}, {"55060819": [16, 39, 189]}, {"55060823": [24, 143, 164]}, {"55060828": [143, 165]}, {"55060831": [4, 143, 166]}, {"55060835": [8, 3, 224]}, {"55060839": [8]}, {"55060844": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55060855": [16, 175, 163]}, {"55060859": [20, 175, 191]}, {"55060863": [24, 12, 16, 10, 104]}, {"55060872": [143, 162]}, {"55060875": [16, 143, 163]}, {"55060879": [20, 143, 191]}, {"55060883": [24, 39, 189]}, {"55060887": [32, 3, 224]}, {"55060891": [8]}, {"55060896": [39, 189, 255, 232, 175, 191]}, {"55060903": [16, 60, 8, 128, 64, 37, 8, 32]}, {"55060912": [173]}, {"55060916": [173]}, {"55060919": [4, 173]}, {"55060923": [8, 173]}, {"55060927": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55060943": [42]}, {"55060949": [9, 15, 195, 1, 33, 32, 38]}, {"55060957": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 162]}, {"55060972": [4, 64]}, {"55060975": [34]}, {"55060980": [52, 68]}, {"55060984": [12, 16, 10, 241]}, {"55060992": [16, 96]}, {"55060995": [12]}, {"55061000": [60, 8, 128, 64, 37, 8, 32]}, {"55061008": [140, 105]}, {"55061012": [173, 9]}, {"55061016": [140, 105]}, {"55061019": [4, 173, 9]}, {"55061023": [4, 140, 105]}, {"55061027": [8, 173, 9]}, {"55061031": [8, 52, 9]}, {"55061035": [1, 173, 9]}, {"55061039": [12, 144, 98]}, {"55061044": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061060": [52, 1]}, {"55061063": [10, 21, 65]}, {"55061067": [6]}, {"55061072": [149, 42]}, {"55061075": [28, 49, 74, 240, 31]}, {"55061081": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061091": [28, 129, 9, 4, 36, 5, 33]}, {"55061099": [2]}, {"55061105": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061115": [16, 39, 189]}, {"55061119": [24, 3, 224]}, {"55061123": [8]}, {"55061128": [39, 189, 255, 232, 175, 191]}, {"55061135": [16, 12, 16, 10, 176]}, {"55061144": [36, 1, 255, 255, 16, 65]}, {"55061151": [4]}, {"55061156": [52, 68]}, {"55061160": [12, 16, 10, 228]}, {"55061168": [143, 191]}, {"55061171": [16, 39, 189]}, {"55061175": [24, 3, 224]}, {"55061179": [8]}, {"55061184": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061195": [164, 52, 8]}, {"55061200": [52, 137]}, {"55061204": [148, 170]}, {"55061208": [52, 1, 1, 156, 21, 65]}, {"55061215": [8]}, {"55061220": [52, 8]}, {"55061223": [3, 148, 171]}, {"55061227": [28, 49, 105]}, {"55061231": [255, 49, 98, 31]}, {"55061237": [2, 18, 2, 16]}, {"55061243": [31]}, {"55061248": [52, 1]}, {"55061251": [10, 21, 65]}, {"55061255": [14]}, {"55061260": [148, 171]}, {"55061263": [28, 52, 1]}, {"55061267": [16, 20, 65]}, {"55061271": [8]}, {"55061276": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061287": [4]}, {"55061292": [36, 2, 255, 255, 16]}, {"55061299": [21]}, {"55061304": [52, 8]}, {"55061307": [1, 49, 105]}, {"55061311": [31, 52, 1]}, {"55061315": [21, 21, 65]}, {"55061319": [12]}, {"55061324": [52, 1]}, {"55061327": [62, 16, 129]}, {"55061331": [7]}, {"55061336": [52, 1]}, {"55061339": [66, 16, 129]}, {"55061343": [4]}, {"55061348": [36, 2, 255, 255, 16]}, {"55061355": [7]}, {"55061360": [52, 8]}, {"55061363": [2, 144, 169, 1, 65]}, {"55061369": [2, 18]}, {"55061373": [72, 16, 37]}, {"55061377": [2, 18]}, {"55061381": [73, 16, 37, 3, 224]}, {"55061387": [8]}, {"55061392": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061407": [4, 141, 9]}, {"55061412": [17, 32]}, {"55061415": [5]}, {"55061421": [9, 82, 2, 21, 68, 255, 250]}, {"55061432": [49, 34]}, {"55061435": [255, 3, 224]}, {"55061439": [8]}, {"55061444": [39, 189, 255, 224, 175, 176]}, {"55061451": [16, 175, 177]}, {"55061455": [20, 175, 191]}, {"55061459": [24, 52, 130]}, {"55061464": [52, 80]}, {"55061468": [38, 8, 255, 128, 5]}, {"55061475": [18]}, {"55061480": [60, 17, 128, 64, 38, 49, 32, 32, 52, 9]}, {"55061491": [16, 1, 9]}, {"55061495": [24]}, {"55061498": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061516": [142, 40]}, {"55061519": [12, 1]}, {"55061522": [248, 9]}, {"55061528": [20, 80, 255, 239]}, {"55061536": [54, 35]}, {"55061540": [16]}, {"55061543": [2]}, {"55061548": [52, 3]}, {"55061552": [143, 176]}, {"55061555": [16, 143, 177]}, {"55061559": [20, 143, 191]}, {"55061563": [24, 39, 189]}, {"55061567": [32, 3, 224]}, {"55061571": [8]}, {"55061576": [140, 136, 29, 44, 52, 9]}, {"55061583": [1]}, {"55061585": [9, 78]}, {"55061588": [1, 9, 16, 36, 16, 64]}, {"55061595": [36]}, {"55061600": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55061615": [164, 52, 1]}, {"55061619": [61, 17, 129]}, {"55061623": [10]}, {"55061629": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55061639": [25]}, {"55061644": [52, 13]}, {"55061647": [1, 161, 141, 29, 40, 37, 74]}, {"55061655": [3, 16]}, {"55061659": [9]}, {"55061664": [52, 12]}, {"55061667": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55061683": [14]}, {"55061688": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 2, 1, 10, 64, 33, 129, 8]}, {"55061724": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061736": [52, 2]}, {"55061740": [3, 224]}, {"55061743": [8]}, {"55061748": [60, 8, 128, 64, 37, 8, 28]}, {"55061756": [129, 8]}, {"55061760": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061772": [3, 224]}, {"55061775": [8]}, {"55061780": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55061792": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061804": [3, 224]}, {"55061807": [8]}, {"55061812": [175, 164]}, {"55061815": [104, 175, 165]}, {"55061819": [108, 175, 166]}, {"55061823": [112, 175, 167]}, {"55061827": [116, 39, 189, 255, 232, 175, 163]}, {"55061835": [16, 175, 191]}, {"55061839": [20, 60, 8, 128, 64, 37, 8, 32, 16, 129, 8]}, {"55061852": [17]}, {"55061855": [14]}, {"55061860": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55061871": [1, 165, 42]}, {"55061876": [60, 9, 128, 65, 52, 10]}, {"55061883": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 104]}, {"55061912": [143, 163]}, {"55061915": [16, 143, 191]}, {"55061919": [20, 39, 189]}, {"55061923": [24, 143, 164]}, {"55061927": [104, 143, 165]}, {"55061931": [108, 143, 166]}, {"55061935": [112, 143, 167]}, {"55061939": [116, 132, 110, 19, 196, 3, 224]}, {"55061947": [8]}, {"55061952": [147, 25]}, {"55061955": [116, 52, 1]}, {"55061959": [255, 23, 33]}, {"55061963": [2]}, {"55061968": [52, 25]}, {"55061971": [44, 3, 224]}, {"55061975": [8, 167, 185]}, {"55061979": [154, 147, 44]}, {"55061983": [116, 52, 1]}, {"55061987": [255, 21, 129]}, {"55061991": [2]}, {"55061996": [52, 12]}, {"55061999": [44, 3, 224]}, {"55062003": [8]}, {"55062008": [145, 174]}, {"55062011": [116, 52, 1]}, {"55062015": [255, 21, 193]}, {"55062019": [2]}, {"55062024": [52, 14]}, {"55062027": [44, 3, 224]}, {"55062031": [8, 167, 174]}, {"55062035": [154, 145, 207]}, {"55062039": [116, 52, 1]}, {"55062043": [255, 21, 225]}, {"55062047": [2]}, {"55062052": [52, 15]}, {"55062055": [44, 3, 224]}, {"55062059": [8, 167, 175]}, {"55062063": [154, 60, 8, 128, 64, 37, 8, 32, 20, 142, 9]}, {"55062075": [104, 173, 9]}, {"55062080": [142, 9]}, {"55062083": [108, 173, 9]}, {"55062087": [4, 150, 9]}, {"55062091": [112, 165, 9]}, {"55062095": [8, 150, 9]}, {"55062099": [156, 165, 9]}, {"55062103": [10, 3, 224]}, {"55062107": [8, 142, 14]}, {"55062111": [4, 39, 189, 255, 224, 175, 176]}, {"55062119": [16, 175, 177]}, {"55062123": [20, 175, 191]}, {"55062127": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 20, 142, 8]}, {"55062147": [4, 17]}, {"55062151": [5]}, {"55062156": [12, 16, 11, 194]}, {"55062164": [16]}, {"55062167": [3]}, {"55062172": [12, 16, 11, 213]}, {"55062180": [12, 16, 11, 181, 52, 4]}, {"55062188": [12, 16, 11, 181, 52, 4]}, {"55062195": [1, 12, 16, 11, 181, 52, 4]}, {"55062203": [2, 143, 176]}, {"55062207": [16, 143, 177]}, {"55062211": [20, 143, 191]}, {"55062215": [24, 39, 189]}, {"55062219": [32, 3, 224]}, {"55062223": [8]}, {"55062228": [2, 4, 64, 33, 145, 9]}, {"55062235": [108, 52, 1]}, {"55062239": [255, 17, 33]}, {"55062243": [7]}, {"55062248": [2, 9, 72, 33, 145, 41]}, {"55062255": [116, 52, 1]}, {"55062259": [44, 17, 33]}, {"55062263": [2]}, {"55062268": [161, 9]}, {"55062271": [105, 3, 224]}, {"55062275": [8]}, {"55062280": [39, 189, 255, 232, 175, 191]}, {"55062287": [16, 142, 40]}, {"55062292": [174, 8]}, {"55062295": [64, 142, 40]}, {"55062299": [4, 174, 8]}, {"55062303": [68, 150, 40]}, {"55062307": [8, 166, 8]}, {"55062311": [72, 162]}, {"55062314": [15, 51, 146, 8]}, {"55062319": [74, 52, 1]}, {"55062323": [255, 21, 1]}, {"55062327": [3]}, {"55062332": [12, 16, 11, 227]}, {"55062340": [143, 191]}, {"55062343": [16, 39, 189]}, {"55062347": [24, 3, 224]}, {"55062351": [8]}, {"55062356": [142, 8]}, {"55062359": [64, 174, 8]}, {"55062363": [104, 142, 8]}, {"55062367": [68, 174, 8]}, {"55062371": [108, 150, 8]}, {"55062375": [72, 166, 8]}, {"55062379": [112, 146, 8]}, {"55062383": [104, 52, 1]}, {"55062387": [255, 21, 1]}, {"55062391": [3]}, {"55062396": [52, 8]}, {"55062399": [1, 162, 8, 15, 51, 3, 224]}, {"55062407": [8]}, {"55062412": [39, 189, 255, 232, 175, 191]}, {"55062419": [16, 150, 8]}, {"55062423": [156, 49, 8]}, {"55062427": [64, 17]}, {"55062431": [5]}, {"55062436": [150, 8]}, {"55062439": [112, 49, 8, 255, 15, 53, 8]}, {"55062447": [48, 166, 8]}, {"55062451": [112, 146, 40]}, {"55062455": [1, 162, 8]}, {"55062459": [105, 150, 40]}, {"55062463": [2, 166, 8]}, {"55062467": [106, 142, 40]}, {"55062471": [4, 174, 8]}, {"55062475": [108, 12, 16, 11, 253, 52, 4]}, {"55062484": [12, 16, 11, 253, 52, 4]}, {"55062491": [1, 12, 16, 11, 253, 52, 4]}, {"55062499": [2, 143, 191]}, {"55062503": [16, 39, 189]}, {"55062507": [24, 3, 224]}, {"55062511": [8]}, {"55062516": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 48, 160, 145, 10]}, {"55062531": [108, 52, 1]}, {"55062535": [255, 17, 65]}, {"55062539": [5]}, {"55062544": [1, 42, 72, 33, 145, 41]}, {"55062552": [21, 32]}, {"55062555": [28]}, {"55062560": [60, 9, 128, 64, 37, 41, 48, 147, 37, 41]}, {"55062571": [1, 145, 42]}, {"55062576": [17, 64]}, {"55062579": [19]}, {"55062584": [2, 10, 88, 33, 145, 107]}, {"55062591": [116, 52, 1]}, {"55062595": [255, 17, 97, 255, 248]}, {"55062604": [146, 12]}, {"55062607": [108, 17, 138, 255, 245]}, {"55062616": [146, 12]}, {"55062619": [109, 17, 138, 255, 242]}, {"55062628": [146, 12]}, {"55062631": [110, 17, 138, 255, 239]}, {"55062640": [161, 11]}, {"55062643": [105, 161, 10]}, {"55062647": [108, 16]}, {"55062651": [4]}, {"55062656": [52, 9]}, {"55062659": [255, 161, 9]}, {"55062663": [105, 161, 9]}, {"55062667": [108, 3, 224]}, {"55062671": [8]}, {"55062676": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55062689": [1, 1, 1, 1, 1]}, {"55062695": [1, 1, 1, 1, 1]}, {"55062701": [1]}, {"55062703": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55062713": [51, 8, 33, 32, 15]}, {"55062719": [71, 21, 234]}, {"55062723": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062735": [164]}, {"55062737": [15, 122, 3, 20, 64]}, {"55062743": [5, 52, 2, 72, 48, 21, 226]}, {"55062751": [7]}, {"55062756": [36, 25]}, {"55062759": [3, 16]}, {"55062763": [4, 52, 2, 99, 17, 21, 226]}, {"55062771": [2]}, {"55062776": [36, 25]}, {"55062779": [3, 3, 224]}, {"55062783": [8]}, {"55062788": [141, 173, 138, 160, 52, 2, 128]}, {"55062796": [16, 77]}, {"55062799": [2]}, {"55062804": [16]}, {"55062807": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55062823": [1, 16, 64]}, {"55062827": [2]}, {"55062832": [16]}, {"55062835": [2, 52, 2]}, {"55062839": [1, 161, 226, 28, 191, 3, 224]}, {"55062847": [8]}, {"55062853": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062867": [164]}, {"55062869": [15, 122, 3, 20, 64]}, {"55062875": [5, 52, 2, 72, 48, 21, 226]}, {"55062883": [7]}, {"55062888": [36, 25]}, {"55062891": [3, 16]}, {"55062895": [4, 52, 2, 99, 17, 21, 226]}, {"55062903": [2]}, {"55062908": [36, 25]}, {"55062911": [3, 3, 224]}, {"55062915": [8]}, {"55062920": [162, 37]}, {"55062923": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55062935": [4, 142, 10]}, {"55062940": [17, 64]}, {"55062943": [11]}, {"55062949": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55062961": [24, 194, 2, 23]}, {"55062967": [3, 49, 89]}, {"55062971": [255, 129, 234]}, {"55062976": [3, 42, 200, 37, 8, 16, 12, 101, 161, 249]}, {"55062988": [3, 224]}, {"55062991": [8]}] \ No newline at end of file diff --git a/version.py b/version.py index 737c321cf..5aa55ee99 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.3 f.LUM' +__version__ = '2.13.4 f.LUM' From 42d42bec4593aae47f26cb060e92e8f9ce04d597 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Tue, 17 Jul 2018 08:31:27 -0400 Subject: [PATCH 166/755] co-op generation works, but is very slow --- BaseClasses.py | 188 ++++++++++++++++++++++++++++--------------------- Fill.py | 134 +++++++++++++++-------------------- ItemList.py | 12 ++-- Main.py | 132 ++++++++++------------------------ Rules.py | 18 +++++ version.py | 2 +- 6 files changed, 226 insertions(+), 260 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 3182df2a9..58b6c20c6 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -43,6 +43,44 @@ def __init__(self, settings): self.can_take_damage = True self.spoiler = Spoiler(self) + + def copy(self): + ret = World(self.settings) + ret.skipped_trials = copy.copy(self.skipped_trials) + ret.can_take_damage = self.can_take_damage + ret.id = self.id + from Regions import create_regions + from Dungeons import create_dungeons + from Rules import set_rules + create_regions(ret) + create_dungeons(ret) + set_rules(ret) + + # connect copied world + for region in self.regions: + copied_region = ret.get_region(region.name) + for entrance in region.entrances: + ret.get_entrance(entrance.name).connect(copied_region) + + # fill locations + for location in self.get_locations(): + if location.item is not None: + item = Item(location.item.name, location.item.advancement, location.item.priority, location.item.type) + item.world = location.item.world + ret.get_location(location.name).item = item + item.location = ret.get_location(location.name) + + # copy remaining itempool. No item in itempool should have an assigned location + for item in self.itempool: + new_item = Item(item.name, item.advancement, item.priority, item.type) + new_item.world = item.world + ret.itempool.append(new_item) + + # copy progress items in state + ret.state.prog_items = copy.copy(self.state.prog_items) + + return ret + def initialize_regions(self): for region in self.regions: region.world = self @@ -99,24 +137,6 @@ def get_location(self, location): return r_location raise RuntimeError('No such location %s' % location) - def get_all_state(self, keys=False): - ret = CollectionState(self) - - def soft_collect(item): - if item.advancement or item.key: - ret.prog_items.append(item.name) - - for item in self.itempool: - soft_collect(item) - from Items import ItemFactory - if keys: - for item in ItemFactory(['Small Key (Forest Temple)'] * 5 + ['Boss Key (Forest Temple)', 'Boss Key (Fire Temple)', 'Boss Key (Water Temple)', 'Boss Key (Shadow Temple)', 'Boss Key (Spirit Temple)', 'Boss Key (Ganons Castle)'] + ['Small Key (Bottom of the Well)'] * 3 + ['Small Key (Fire Temple)'] * 8 + ['Small Key (Water Temple)'] * 6 + ['Small Key (Shadow Temple)'] * 5 + ['Small Key (Gerudo Training Grounds)'] * 9 + ['Small Key (Spirit Temple)'] * 5 + ['Small Key (Ganons Castle)'] * 2): - item.world = self - soft_collect(item) - ret.sweep_for_events() - ret.clear_cached_unreachable() - return ret - def get_items(self): return [loc.item for loc in self.get_filled_locations()] + self.itempool @@ -129,15 +149,14 @@ def get_dungeon_items(self): def find_items(self, item): return [location for location in self.get_locations() if location.item is not None and location.item.name == item] - def push_item(self, location, item, collect=True): + def push_item(self, location, item): if not isinstance(location, Location): location = self.get_location(location) + # This check should never be false normally, but is here as a sanity check if location.can_fill(self.state, item, False): location.item = item item.location = location - if collect: - self.state.collect(item, location.event, location) logging.getLogger('').debug('Placed %s [World %d] at %s [World %d]', item, item.world.id if hasattr(item, 'world') else -1, location, location.world.id if hasattr(location, 'world') else -1) else: @@ -169,7 +188,7 @@ def get_placeable_locations(self, state=None): def unlocks_new_location(self, item): temp_state = self.state.copy() temp_state.clear_cached_unreachable() - temp_state.collect(item, True) + temp_state.collect(item) for location in self.get_unfilled_locations(): if temp_state.can_reach(location) and not self.state.can_reach(location): @@ -182,36 +201,6 @@ def has_beaten_game(self, state): return True return False - def can_beat_game(self, starting_state=None): - if starting_state: - state = starting_state.copy() - else: - state = CollectionState(self) - - if self.has_beaten_game(state): - return True - - prog_locations = [location for location in self.get_locations() if location.item is not None and (location.item.advancement or location.event) and location not in state.locations_checked] - - while prog_locations: - sphere = [] - # build up spheres of collection radius. Everything in each sphere is independent from each other in dependencies and only depends on lower spheres - for location in prog_locations: - if state.can_reach(location): - if location.item.name == 'Triforce': - return True - sphere.append(location) - - if not sphere: - # ran out of places and did not find triforce yet, quit - return False - - for location in sphere: - prog_locations.remove(location) - state.collect(location.item, True, location) - - return False - @property def option_identifier(self): id_value = 0 @@ -242,10 +231,8 @@ def __init__(self, parent): self.location_cache = {} self.entrance_cache = {} self.recursion_count = 0 - self.events = [] + self.collected_locations = [] self.path = {} - self.locations_checked = set() - def clear_cached_unreachable(self): # we only need to invalidate results which were False, places we could reach before we can still reach after adding more items @@ -259,9 +246,8 @@ def copy(self): ret.region_cache = copy.copy(self.region_cache) ret.location_cache = copy.copy(self.location_cache) ret.entrance_cache = copy.copy(self.entrance_cache) - ret.events = copy.copy(self.events) + ret.collected_locations = copy.copy(self.collected_locations) ret.path = copy.copy(self.path) - ret.locations_checked = copy.copy(self.locations_checked) return ret def can_reach(self, spot, resolution_hint=None): @@ -308,19 +294,6 @@ def can_reach(self, spot, resolution_hint=None): return can_reach return correct_cache[spot] - def sweep_for_events(self, key_only=False): - # this may need improvement - new_locations = True - checked_locations = 0 - while new_locations: - reachable_events = [location for location in self.world.get_filled_locations() if location.event and (not key_only or location.item.key) and self.can_reach(location)] - for event in reachable_events: - if event.name not in self.events: - self.events.append(event.name) - self.collect(event.item, True, event) - new_locations = len(reachable_events) > checked_locations - checked_locations = len(reachable_events) - def has(self, item, count=1): if count == 1: return item in self.prog_items @@ -404,24 +377,19 @@ def guarantee_hint(self): return self.has('Stone of Agony') return True - def collect(self, item, event=False, location=None): - if location: - self.locations_checked.add(location) + def collect(self, item): changed = False if item.name.startswith('Bottle'): if self.bottle_count() < 4: self.prog_items.append(item.name) changed = True - elif event or item.advancement: + elif item.advancement: self.prog_items.append(item.name) changed = True if changed: self.clear_cached_unreachable() - if not event: - self.sweep_for_events() - self.clear_cached_unreachable() - + def remove(self, item): if item.advancement: to_remove = item.name @@ -446,6 +414,69 @@ def __getattr__(self, item): raise RuntimeError('Cannot parse %s.' % item) + # This function returns a list of states that is each of the base_states + # with every item still in the itempool. It only adds items that belong + # to its respective world. See fill_restrictive + @staticmethod + def get_states_with_items(base_state_list, itempool): + new_state_list = [] + for base_state in base_state_list: + new_state = base_state.copy() + for item in itempool: + if item.world.id == base_state.world.id: # Check world + new_state.collect(item) + new_state_list.append(new_state) + CollectionState.collect_locations(new_state_list) + return new_state_list + + # This collected all item locations available in the state list given that + # the states have collected items. The purpose is that it will search for + # all new items that become accessible with a new item set + @staticmethod + def collect_locations(state_list): + # Get all item locations in the worlds + spheres = [] + item_locations = [location for state in state_list for location in state.world.get_filled_locations() if location.item.advancement] + new_locations = True + + # will loop if there is more items opened up in the previous iteration. Always run once + while new_locations: + # get reachable new items locations + reachable_items_locations = [location for location in item_locations if location.name not in state_list[location.world.id].collected_locations and state_list[location.world.id].can_reach(location)] + for location in reachable_items_locations: + # Mark the location collected in the state world it exists in + state_list[location.world.id].collected_locations.append(location.name) + # Collect the item for the state world it is for + state_list[location.item.world.id].collect(location.item) + spheres.append(reachable_items_locations) + # if there are new locations + new_locations = len(reachable_items_locations) > 0 + return spheres + + # This returns True is every state is beatable. It's important to ensure + # all states beatable since items required in one world can be in another. + @staticmethod + def can_beat_game(state_list): + # Check if already beaten + game_beaten = True + for state in state_list: + if not state.has('Triforce'): + game_beaten = False + break + if game_beaten: + return True + + # collect all available items + new_state_list = [state.copy() for state in state_list] + CollectionState.collect_locations(new_state_list) + + # if the every state got the Triforce, then return True + for state in new_state_list: + if not state.has('Triforce'): + return False + return True + + @unique class RegionType(Enum): Overworld = 1 @@ -573,7 +604,6 @@ def __init__(self, name='', address=None, address2=None, default=None, type='Che self.spot_type = 'Location' self.recursion_count = 0 self.staleness_count = 0 - self.event = False self.always_allow = lambda item, state: False self.access_rule = lambda state: True self.item_rule = lambda item: True diff --git a/Fill.py b/Fill.py index 4a3ee64d9..5e2a1f24a 100644 --- a/Fill.py +++ b/Fill.py @@ -1,5 +1,6 @@ import random import logging +from BaseClasses import CollectionState class FillError(RuntimeError): pass @@ -7,21 +8,23 @@ class FillError(RuntimeError): # Places all items into the world def distribute_items_restrictive(worlds, fill_locations=None): - # places the songs into the world - # Currently places songs only at song locations. if there's an option - # to allow at other locations then they should be in the main pool - songitempool = [item for world in worlds for item in world.itempool if item.type == 'Song'] song_locations = [world.get_location(location) for world in worlds for location in ['Song from Composer Grave', 'Impa at Castle', 'Song from Malon', 'Song from Saria', 'Song from Ocarina of Time', 'Song at Windmill', 'Sheik Forest Song', 'Sheik at Temple', 'Sheik in Crater', 'Sheik in Ice Cavern', 'Sheik in Kakariko', 'Sheik at Colossus']] - fill_songs(worlds, song_locations, songitempool) - # If not passed in, then get a shuffled list of locations to fill in + # If not passed in, then get a shuffled list of locations to fill in if not fill_locations: - fill_locations = [location for world in worlds for location in world.get_unfilled_locations()] + fill_locations = [location for world in worlds for location in world.get_unfilled_locations() if location not in song_locations] world_states = [world.state for world in worlds] - itempool = [item for world in worlds for item in world.itempool if item.type != 'Song'] + + # Generate the itempools + songitempool = [item for world in worlds for item in world.itempool if item.type == 'Song'] + itempool = [item for world in worlds for item in world.itempool if item.type != 'Song'] + random.shuffle(itempool) # randomize item placement order. this ordering can greatly affect the location accessibility bias + progitempool = [item for item in itempool if item.advancement] + prioitempool = [item for item in itempool if not item.advancement and item.priority] + restitempool = [item for item in itempool if not item.advancement and not item.priority] # If not keysanity, we must place the dungeon items first to make sure # that there is always a locations to place them. This could probably @@ -33,20 +36,24 @@ def distribute_items_restrictive(worlds, fill_locations=None): else: # place dungeon items random.shuffle(fill_locations) - fill_dungeons_restrictive(worlds, fill_locations) + fill_dungeons_restrictive(worlds, fill_locations, itempool + songitempool) - # randomize item placement order. this ordering can greatly affect - # the location accessibility bias, so this must be randomized + # I have no idea why the locations are reversed but this is how it was, + # so whatever. It can't hurt I guess random.shuffle(fill_locations) - # I have no idea why the locations are shuffled again and then reversed - # but this is how it was, so whatever. It can't hurt I guess - random.shuffle(itempool) fill_locations.reverse() + # places the songs into the world + # Currently places songs only at song locations. if there's an option + # to allow at other locations then they should be in the main pool. + # Placing songs on their own since they have a relatively high chance + # of failing compared to other item type. So this way we only have retry + # the song locations only. + fill_songs(worlds, song_locations, songitempool, progitempool) + # Place all progression items. This will include keys in keysanity. # Items in this group will check for reachability and will be placed # such that the game is guaranteed beatable. - progitempool = [item for item in itempool if item.advancement] random.shuffle(fill_locations) fill_restrictive(worlds, [world.state for world in worlds], fill_locations, progitempool) @@ -54,14 +61,12 @@ def distribute_items_restrictive(worlds, fill_locations=None): # These items are items that only check if the item is allowed to be # placed in the location, not checking reachability. This is important # for things like Ice Traps that can't be found at some locations - prioitempool = [item for item in itempool if not item.advancement and item.priority] random.shuffle(fill_locations) fill_restrictive_fast(worlds, fill_locations, prioitempool) # Place the rest of the items. # No restrictions at all. Places them completely randomly. Since they # cannot affect the beatability, we don't need to check them - restitempool = [item for item in itempool if not item.advancement and not item.priority] random.shuffle(fill_locations) fast_fill(fill_locations, restitempool) @@ -74,17 +79,40 @@ def distribute_items_restrictive(worlds, fill_locations=None): raise FillError('Not all locations have an item.') +# Places all dungeon items into the worlds. To ensure there is room for them. +# they are placed first so it will assume all other items are reachable +def fill_dungeons_restrictive(worlds, shuffled_locations, itempool): + # List of states with all non-key items + all_state_base_list = CollectionState.get_states_with_items([world.state for world in worlds], itempool) + # list of all dungeon items to be placed + dungeon_items = [item for world in worlds for item in world.get_dungeon_items()] + + # shuffle this list to avoid placement bias + random.shuffle(dungeon_items) + + # sort in the order Boss Key, Small Key, Other before placing dungeon items + # python sort is stable, so the ordering is still random within groups + sort_order = {"BossKey": 3, "SmallKey": 2} + dungeon_items.sort(key=lambda item: sort_order.get(item.type, 1)) + + # place dungeon items + fill_restrictive(worlds, all_state_base_list, shuffled_locations, dungeon_items) + + for world in worlds: + world.state.clear_cached_unreachable() + + # Places the songs into the world at the Song locations -def fill_songs(worlds, locations, itempool, attempts=15): +def fill_songs(worlds, locations, songpool, itempool, attempts=15): # get the song locations for each world # look for preplaced items placed_prizes = [loc.item.name for loc in locations if loc.item is not None] - unplaced_prizes = [song for song in itempool if song.name not in placed_prizes] + unplaced_prizes = [song for song in songpool if song.name not in placed_prizes] empty_song_locations = [loc for loc in locations if loc.item is None] # List of states with all items - all_state_base_list = [world.get_all_state(keys=True) for world in worlds] + all_state_base_list = CollectionState.get_states_with_items([world.state for world in worlds], itempool) while attempts: attempts -= 1 @@ -105,45 +133,6 @@ def fill_songs(worlds, locations, itempool, attempts=15): raise FillError('Unable to place songs') -# Places all dungeon items into the worlds. To ensure there is room for them. -# they are placed first so it will assume all other items are reachable -def fill_dungeons_restrictive(worlds, shuffled_locations): - all_state_base_list = [] # List of states with all non-key items - dungeon_items = [] # list of all dungeon items to be placed - for world in worlds: - all_state_base_list.append(world.get_all_state()) - dungeon_items.extend(world.get_dungeon_items()) - - # shuffle this list to avoid placement bias - random.shuffle(dungeon_items) - - # sort in the order Boss Key, Small Key, Other before placing dungeon items - # python sort is stable, so the ordering is still random within groups - sort_order = {"BossKey": 3, "SmallKey": 2} - dungeon_items.sort(key=lambda item: sort_order.get(item.type, 1)) - - # place dungeon items - fill_restrictive(worlds, all_state_base_list, shuffled_locations, dungeon_items) - - world.state.clear_cached_unreachable() - - -# This function returns a list of states that is each of the base_states -# with every item still in the itempool. It only adds items that belong -# to its respective world. See fill_restrictive -def sweep_from_pool(base_state_list, itempool): - new_state_list = [] - for base_state in base_state_list: - new_state = base_state.copy() - for item in itempool: - #check world - if item.world.id == base_state.world.id: - new_state.collect(item, True) - new_state.sweep_for_events() - new_state_list.append(new_state) - return new_state_list - - # Places items in the itempool into locations. # worlds is a list of worlds and is redundant of the worlds in the base_state_list # base_state_list is a list of world states prior to placing items in the item pool @@ -161,15 +150,7 @@ def fill_restrictive(worlds, base_state_list, locations, itempool): # generate the max states that include every remaining item # this will allow us to place this item in a reachable location - maximum_exploration_state_list = sweep_from_pool(base_state_list, itempool) - - def temptest(state): - return [location for location in state.world.get_locations() if state.can_reach(location)] - - for maximum_exploration_state in maximum_exploration_state_list : - maximum_exploration_state.clear_cached_unreachable() - logging.getLogger('').debug("Reachable locations: %d", len(temptest(maximum_exploration_state))) - + maximum_exploration_state_list = CollectionState.get_states_with_items(base_state_list, itempool) # perform_access_check checks location reachability perform_access_check = True @@ -179,11 +160,7 @@ def temptest(state): # This way the reachability test is monotonic. If we were to later # stop checking, then we could place an item needed in one world # in an unreachable place in another world - perform_access_check = False - for id,world in enumerate(worlds): - if not world.has_beaten_game(maximum_exploration_state_list[id]): - perform_access_check = True - break + perform_access_check = not CollectionState.can_beat_game(maximum_exploration_state_list) # find a location that the item can be places. It must be a valid location # in the world we are placing it (possibly checking for reachability) @@ -196,16 +173,15 @@ def temptest(state): # if we failed to find a suitable location, then stop placing items if spot_to_fill is None: # Maybe the game can be beaten anyway? - for world in worlds: - if not world.can_beat_game(): - raise FillError('Game unbeatable: No more spots to place %s [World %d]' % (item_to_place, item_to_place.world.id)) + if not CollectionState.can_beat_game(maximum_exploration_state_list): + raise FillError('Game unbeatable: No more spots to place %s [World %d]' % (item_to_place, item_to_place.world.id)) if not worlds[0].check_beatable_only: logging.getLogger('').warning('Not all items placed. Game beatable anyway.') break # Place the item in the world and continue - spot_to_fill.world.push_item(spot_to_fill, item_to_place, False) + spot_to_fill.world.push_item(spot_to_fill, item_to_place) locations.remove(spot_to_fill) spot_to_fill.event = True @@ -233,7 +209,7 @@ def fill_restrictive_fast(worlds, locations, itempool): break # Place the item in the world and continue - spot_to_fill.world.push_item(spot_to_fill, item_to_place, False) + spot_to_fill.world.push_item(spot_to_fill, item_to_place) locations.remove(spot_to_fill) spot_to_fill.event = True @@ -245,4 +221,4 @@ def fast_fill(locations, itempool): while itempool and locations: spot_to_fill = locations.pop() item_to_place = itempool.pop() - spot_to_fill.world.push_item(spot_to_fill, item_to_place, False) + spot_to_fill.world.push_item(spot_to_fill, item_to_place) diff --git a/ItemList.py b/ItemList.py index d1b8878c0..ff410abb3 100644 --- a/ItemList.py +++ b/ItemList.py @@ -45,8 +45,7 @@ def generate_itempool(world): for location in skulltulla_locations: - world.push_item(location, ItemFactory('Gold Skulltulla Token'), False) - world.get_location(location).event = True + world.push_item(location, ItemFactory('Gold Skulltulla Token')) if not world.shuffle_weird_egg: eventlocations['Malon Egg'] = 'Weird Egg' @@ -54,15 +53,13 @@ def generate_itempool(world): eventlocations['Gift from Saria'] = 'Ocarina' for location, item in eventlocations.items(): - world.push_item(location, ItemFactory(item), False) - world.get_location(location).event = True + world.push_item(location, ItemFactory(item)) # set up item pool (pool, placed_items) = get_pool_core(world) world.itempool = ItemFactory(pool) for (location, item) in placed_items: - world.push_item(location, ItemFactory(item), False) - world.get_location(location).event = True + world.push_item(location, ItemFactory(item)) choose_trials(world) fill_bosses(world) @@ -119,5 +116,4 @@ def fill_bosses(world, bossCount=9): random.shuffle(prize_locs) item = prizepool.pop() loc = prize_locs.pop() - world.push_item(loc, item, False) - world.get_location(loc).event = True + world.push_item(loc, item) diff --git a/Main.py b/Main.py index c8b0ae58b..9cf1edf6a 100644 --- a/Main.py +++ b/Main.py @@ -9,11 +9,11 @@ import os from BaseClasses import World, CollectionState, Item -from Regions import create_regions from EntranceShuffle import link_entrances from Rom import patch_rom, LocalRom -from Rules import set_rules +from Regions import create_regions from Dungeons import create_dungeons +from Rules import set_rules from Fill import distribute_items_restrictive from ItemList import generate_itempool from Utils import default_output_path @@ -25,7 +25,7 @@ def main(settings): # initialize the world worlds = [] - for i in range(0, 1): # settings.player_count): + for i in range(0, 2): # settings.player_count): worlds.append(World(settings)) logger = logging.getLogger('') @@ -53,7 +53,7 @@ def main(settings): distribute_items_restrictive(worlds) logger.info('Calculating playthrough.') - create_playthrough(world) + create_playthrough(worlds) logger.info('Patching ROM.') @@ -86,85 +86,27 @@ def main(settings): return world -def copy_world(world): - # ToDo: Not good yet - ret = World(world.settings) - ret.skipped_trials = world.skipped_trials - ret.seed = world.seed - ret.can_take_damage = world.can_take_damage - create_regions(ret) - create_dungeons(ret) - - # connect copied world - for region in world.regions: - copied_region = ret.get_region(region.name) - for entrance in region.entrances: - ret.get_entrance(entrance.name).connect(copied_region) - - # fill locations - for location in world.get_locations(): - if location.item is not None: - item = Item(location.item.name, location.item.advancement, location.item.priority, location.item.type) - ret.get_location(location.name).item = item - item.location = ret.get_location(location.name) - if location.event: - ret.get_location(location.name).event = True - - # copy remaining itempool. No item in itempool should have an assigned location - for item in world.itempool: - ret.itempool.append(Item(item.name, item.advancement, item.priority, item.type)) - - # copy progress items in state - ret.state.prog_items = list(world.state.prog_items) - - set_rules(ret) - - return ret - -def create_playthrough(world): - if world.check_beatable_only and not world.can_beat_game(): +def create_playthrough(worlds): + if worlds[0].check_beatable_only and not CollectionState.can_beat_game([world.state for world in worlds]): raise RuntimeError('Uncopied is broken too.') # create a copy as we will modify it - old_world = world - world = copy_world(world) + old_worlds = worlds + worlds = [world.copy() for world in worlds] # if we only check for beatable, we can do this sanity check first before writing down spheres - if world.check_beatable_only and not world.can_beat_game(): + if worlds[0].check_beatable_only and not CollectionState.can_beat_game([world.state for world in worlds]): raise RuntimeError('Cannot beat game. Something went terribly wrong here!') - # get locations containing progress items - prog_locations = [location for location in world.get_filled_locations() if location.item.advancement] - state_cache = [None] - collection_spheres = [] - state = CollectionState(world) - sphere_candidates = list(prog_locations) - logging.getLogger('').debug('Building up collection spheres.') - while sphere_candidates: - state.sweep_for_events(key_only=True) - - sphere = [] - # build up spheres of collection radius. Everything in each sphere is independent from each other in dependencies and only depends on lower spheres - for location in sphere_candidates: - if state.can_reach(location): - sphere.append(location) - - for location in sphere: - sphere_candidates.remove(location) - state.collect(location.item, True, location) - - collection_spheres.append(sphere) - - state_cache.append(state.copy()) + state_list = [CollectionState(world) for world in worlds] - logging.getLogger('').debug('Calculated sphere %i, containing %i of %i progress items.', len(collection_spheres), len(sphere), len(prog_locations)) - if not sphere: - logging.getLogger('').debug('The following items could not be reached: %s', ['%s at %s' % (location.item.name, location.name) for location in sphere_candidates]) - if not world.check_beatable_only: - raise RuntimeError('Not all progression items reachable. Something went terribly wrong here.') - else: - break + # in the first phase, we create the generous spheres. Collecting every item in a sphere will + # mean that every item in the next sphere is collectable. Will contain ever reachable item + logging.getLogger('').debug('Building up collection spheres.') + collection_spheres = CollectionState.collect_locations(state_list) - # in the second phase, we cull each sphere such that the game is still beatable, reducing each range of influence to the bare minimum required inside it + # in the second phase, we cull each sphere such that the game is still beatable, reducing each + # range of influence to the bare minimum required inside it. Effectively creates a min play + state_list = [CollectionState(world) for world in worlds] for num, sphere in reversed(list(enumerate(collection_spheres))): to_delete = [] for location in sphere: @@ -172,8 +114,7 @@ def create_playthrough(world): logging.getLogger('').debug('Checking if %s is required to beat the game.', location.item.name) old_item = location.item location.item = None - state.remove(old_item) - if world.can_beat_game(state_cache[num]): + if CollectionState.can_beat_game(state_list): to_delete.append(location) else: # still required, got to keep it around @@ -182,6 +123,7 @@ def create_playthrough(world): # cull entries in spheres for spoiler walkthrough at end for location in to_delete: sphere.remove(location) + collection_spheres = [sphere for sphere in collection_spheres if sphere] # we are now down to just the required progress items in collection_spheres. Unfortunately # the previous pruning stage could potentially have made certain items dependant on others @@ -189,26 +131,27 @@ def create_playthrough(world): # used to access it was deemed not required.) So we need to do one final sphere collection pass # to build up the correct spheres - required_locations = [item for sphere in collection_spheres for item in sphere] - state = CollectionState(world) - collection_spheres = [] - while required_locations: - state.sweep_for_events(key_only=True) - sphere = list(filter(state.can_reach, required_locations)) +# required_locations = [item for sphere in collection_spheres for item in sphere] +# state = CollectionState(world) +# collection_spheres = [] +# while required_locations: +# state.sweep_for_events(key_only=True) - for location in sphere: - required_locations.remove(location) - state.collect(location.item, True, location) +# sphere = list(filter(state.can_reach, required_locations)) + +# for location in sphere: +# required_locations.remove(location) +# state.collect(location.item, True, location) - collection_spheres.append(sphere) +# collection_spheres.append(sphere) + +# logging.getLogger('').debug('Calculated final sphere %i, containing %i of %i progress items.', len(collection_spheres), len(sphere), len(required_locations)) +# if not sphere: +# raise RuntimeError('Not all required items reachable. Something went terribly wrong here.') - logging.getLogger('').debug('Calculated final sphere %i, containing %i of %i progress items.', len(collection_spheres), len(sphere), len(required_locations)) - if not sphere: - raise RuntimeError('Not all required items reachable. Something went terribly wrong here.') # store the required locations for statistical analysis - old_world.required_locations = [location.name for sphere in collection_spheres for location in sphere] def flist_to_iter(node): while node: @@ -223,7 +166,10 @@ def get_path(state, region): pathpairs = zip_longest(pathsiter, pathsiter) return list(pathpairs) - old_world.spoiler.paths = {location.name : get_path(state, location.parent_region) for sphere in collection_spheres for location in sphere} # we can finally output our playthrough - old_world.spoiler.playthrough = OrderedDict([(str(i + 1), {str(location): str(location.item) for location in sphere}) for i, sphere in enumerate(collection_spheres)]) + for world in old_worlds: + world.required_locations = [location.name for sphere in collection_spheres for location in sphere] + world.spoiler.playthrough = OrderedDict([(str(i + 1), {str(location): str(location.item) for location in sphere}) for i, sphere in enumerate(collection_spheres)]) + world.spoiler.paths = {location.name : get_path(world.state, location.parent_region) for sphere in collection_spheres for location in sphere} + diff --git a/Rules.py b/Rules.py index cea8512b1..74753ff4e 100644 --- a/Rules.py +++ b/Rules.py @@ -30,6 +30,12 @@ def add_rule(spot, rule, combine='and'): else: spot.access_rule = lambda state: rule(state) and old_rule(state) +def add_item_rule(spot, rule, combine='and'): + old_rule = spot.item_rule + if combine == 'or': + spot.item_rule = lambda item: rule(item) or old_rule(item) + else: + spot.item_rule = lambda item: rule(item) and old_rule(item) def forbid_item(location, item): old_rule = location.item_rule @@ -431,3 +437,15 @@ def global_rules(world): # For now just avoiding this combination, since BigSword is not that important. forbid_item(world.get_location('Bombchu Bowling Bomb Bag'), 'Biggoron Sword') forbid_item(world.get_location('Bombchu Bowling Piece of Heart'), 'Biggoron Sword') + + # Song locations can only be a song + #song_locations = [world.get_location(location) for location in + # ['Song from Composer Grave', 'Impa at Castle', 'Song from Malon', 'Song from Saria', + # 'Song from Ocarina of Time', 'Song at Windmill', 'Sheik Forest Song', 'Sheik at Temple', + # 'Sheik in Crater', 'Sheik in Ice Cavern', 'Sheik in Kakariko', 'Sheik at Colossus']] + #for location in world.get_locations(): + # if location in song_locations: + # add_item_rule(location, lambda item: item.type == 'Song') + # else: + # add_item_rule(location, lambda item: item.type != 'Song') + diff --git a/version.py b/version.py index 6619e5022..26c028495 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.12.10 f.LUM' \ No newline at end of file +__version__ = '2.12.11 f.LUM' \ No newline at end of file From 12e60dff5eb538182f99eee43b71a34b6ad94b4e Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Tue, 17 Jul 2018 10:16:27 -0400 Subject: [PATCH 167/755] generation is faster. correctly spoiler output. added settings --- BaseClasses.py | 20 +++++++---- Fill.py | 4 +-- Gui.py | 27 +++++++++++++-- Hints.py | 5 ++- Main.py | 92 +++++++++++++++++++++++++++++++------------------- Settings.py | 12 +++++++ version.py | 2 +- 7 files changed, 114 insertions(+), 48 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 58b6c20c6..3801b47d2 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -435,7 +435,6 @@ def get_states_with_items(base_state_list, itempool): @staticmethod def collect_locations(state_list): # Get all item locations in the worlds - spheres = [] item_locations = [location for state in state_list for location in state.world.get_filled_locations() if location.item.advancement] new_locations = True @@ -448,10 +447,8 @@ def collect_locations(state_list): state_list[location.world.id].collected_locations.append(location.name) # Collect the item for the state world it is for state_list[location.item.world.id].collect(location.item) - spheres.append(reachable_items_locations) # if there are new locations new_locations = len(reachable_items_locations) > 0 - return spheres # This returns True is every state is beatable. It's important to ensure # all states beatable since items required in one world can be in another. @@ -684,7 +681,10 @@ def parse_data(self): spoiler_locations.append(location) sort_order = {"Song": 0, "Boss": -1} spoiler_locations.sort(key=lambda item: sort_order.get(item.type, 1)) - self.locations = {'other locations': OrderedDict([(str(location), str(location.item) if location.item is not None else 'Nothing') for location in spoiler_locations])} + if self.world.settings.world_count > 1: + self.locations = {'other locations': OrderedDict([(str(location), "%s [Player %d]" % (str(location.item), location.item.world.id + 1) if location.item is not None else 'Nothing') for location in spoiler_locations])} + else: + self.locations = {'other locations': OrderedDict([(str(location), str(location.item) if location.item is not None else 'Nothing') for location in spoiler_locations])} self.version = OoTRVersion self.settings = self.world.settings @@ -694,10 +694,18 @@ def to_file(self, filename): outfile.write('OoT Randomizer Version %s - Seed: %s\n\n' % (self.version, self.settings.seed)) outfile.write('Settings (%s):\n%s' % (self.settings.get_settings_string(), self.settings.get_settings_display())) - outfile.write('\n\nLocations:\n\n') + if self.settings.world_count > 1: + outfile.write('\n\nLocations [World %d]:\n\n' % (self.settings.player_num)) + else: + outfile.write('\n\nLocations:\n\n') outfile.write('\n'.join(['%s: %s' % (location, item) for (location, item) in self.locations['other locations'].items()])) + outfile.write('\n\nPlaythrough:\n\n') - outfile.write('\n'.join(['%s: {\n%s\n}' % (sphere_nr, '\n'.join([' %s: %s' % (location, item) for (location, item) in sphere.items()])) for (sphere_nr, sphere) in self.playthrough.items()])) + if self.settings.world_count > 1: + outfile.write('\n'.join(['%s: {\n%s\n}' % (sphere_nr, '\n'.join([' %s [World %d]: %s [Player %d]' % (location.name, location.world.id + 1, item.name, item.world.id + 1) for (location, item) in sphere.items()])) for (sphere_nr, sphere) in self.playthrough.items()])) + else: + outfile.write('\n'.join(['%s: {\n%s\n}' % (sphere_nr, '\n'.join([' %s: %s' % (location.name, item.name) for (location, item) in sphere.items()])) for (sphere_nr, sphere) in self.playthrough.items()])) + outfile.write('\n\nPaths:\n\n') path_listings = [] diff --git a/Fill.py b/Fill.py index 5e2a1f24a..69123972f 100644 --- a/Fill.py +++ b/Fill.py @@ -122,11 +122,11 @@ def fill_songs(worlds, locations, songpool, itempool, attempts=15): random.shuffle(prizepool) random.shuffle(prize_locs) fill_restrictive(worlds, all_state_base_list, prize_locs, prizepool) - except FillError: + except FillError as e: logging.getLogger('').info("Failed to place songs. Will retry %s more times", attempts) for location in empty_song_locations: location.item = None - logging.getLogger('').info(FillError) + logging.getLogger('').info(str(e)) continue break else: diff --git a/Gui.py b/Gui.py index 7c0f366c2..b750bd9b9 100644 --- a/Gui.py +++ b/Gui.py @@ -226,7 +226,6 @@ def output_dir_select(): outputDirButton.pack(side=LEFT) outputDialogFrame.pack(side=TOP, anchor=W, padx=5, pady=(5,1)) - if os.path.exists(local_path('README.html')): def open_readme(): open_file(local_path('README.html')) @@ -244,8 +243,31 @@ def open_readme(): countSpinbox.pack(side=LEFT, padx=2) countDialogFrame.pack(side=TOP, anchor=W, padx=5, pady=(1,1)) + multiworldFrame = LabelFrame(frames['rom_tab'], text='Multi-World Generation') + countLabel = Label(multiworldFrame, wraplength=300, justify=LEFT, text='This is used for co-op generations. Increasing World Count will drastically increase the generation time. For more information see https://github.com/TestRunnerSRL/bizhawk-co-op') + countLabel.pack(side=TOP, anchor=W, padx=5, pady=(1,1)) + + + worldCountFrame = Frame(multiworldFrame) + countLabel = Label(worldCountFrame, text='World Count') + guivars['world_count'] = StringVar() + countSpinbox = Spinbox(worldCountFrame, from_=1, to=100, textvariable=guivars['world_count'], width=3) + + countLabel.pack(side=LEFT) + countSpinbox.pack(side=LEFT, padx=2) + worldCountFrame.pack(side=LEFT, anchor=N, padx=5, pady=(1,1)) + + playerNumFrame = Frame(multiworldFrame) + countLabel = Label(playerNumFrame, text='Player Number') + guivars['player_num'] = StringVar() + countSpinbox = Spinbox(playerNumFrame, from_=1, to=100, textvariable=guivars['player_num'], width=3) + + countLabel.pack(side=LEFT) + countSpinbox.pack(side=LEFT, padx=2) + playerNumFrame.pack(side=LEFT, anchor=N, padx=5, pady=(1,1)) + multiworldFrame.pack(side=TOP, anchor=W, padx=5, pady=(1,1)) + - generateSeedFrame = Frame(mainWindow) # build gui @@ -361,6 +383,7 @@ def generateRom(): else: messagebox.showinfo(title="Success", message="Rom patched successfully") + generateSeedFrame = Frame(mainWindow) generateButton = Button(generateSeedFrame, text='Generate Patched Rom', command=generateRom) seedLabel = Label(generateSeedFrame, text='Seed') diff --git a/Hints.py b/Hints.py index 6ecf0fc54..bad0fc01f 100644 --- a/Hints.py +++ b/Hints.py @@ -7,7 +7,6 @@ from HintList import getHint, getHintGroup, Hint from Utils import local_path -from Items import ItemFactory from ItemList import eventlocations from Messages import update_message_by_id @@ -140,8 +139,8 @@ def buildGossipHints(world, messages): random.shuffle(stoneIDs) # get list of required items that are not events or needed for Ganon's Castle - requiredItems = [(location, item) for _,sphere in world.spoiler.playthrough.items() for location,item in sphere.items() - if ItemFactory(item).type != 'Event' and not location in eventlocations] + requiredItems = [(location.name, item.name) for _,sphere in world.spoiler.playthrough.items() for location,item in sphere.items() + if item.type != 'Event' and not location in eventlocations] # add required non-ganon items for hints (good hints) requiredSample = requiredItems diff --git a/Main.py b/Main.py index 9cf1edf6a..dbdbcc472 100644 --- a/Main.py +++ b/Main.py @@ -25,7 +25,15 @@ def main(settings): # initialize the world worlds = [] - for i in range(0, 2): # settings.player_count): + + if not settings.world_count: + settings.world_count = 1 + if settings.world_count < 1: + raise Exception('World Count must be at least 1') + if settings.player_num > settings.world_count or settings.player_num < 1: + raise Exception('Player Num must be between 1 and %d' % settings.world_count) + + for i in range(0, settings.world_count): worlds.append(World(settings)) logger = logging.getLogger('') @@ -57,12 +65,16 @@ def main(settings): logger.info('Patching ROM.') - outfilebase = 'OoT_%s_%s' % (world.settings_string, world.seed) + if settings.world_count > 1: + outfilebase = 'OoT_%s_%s_W%dP%d' % (worlds[0].settings_string, worlds[0].seed, worlds[0].world_count, worlds[0].player_num) + else: + outfilebase = 'OoT_%s_%s' % (worlds[0].settings_string, worlds[0].seed) + output_dir = default_output_path(settings.output_dir) if not settings.suppress_rom: rom = LocalRom(settings) - patch_rom(world, rom) + patch_rom(worlds[settings.player_num - 1], rom) rom_path = os.path.join(output_dir, '%s.z64' % outfilebase) @@ -79,12 +91,12 @@ def main(settings): logger.info('OS not supported for compression') if settings.create_spoiler: - world.spoiler.to_file(os.path.join(output_dir, '%s_Spoiler.txt' % outfilebase)) + worlds[settings.player_num - 1].spoiler.to_file(os.path.join(output_dir, '%s_Spoiler.txt' % outfilebase)) logger.info('Done. Enjoy.') logger.debug('Total Time: %s', time.clock() - start) - return world + return worlds[settings.player_num - 1] def create_playthrough(worlds): if worlds[0].check_beatable_only and not CollectionState.can_beat_game([world.state for world in worlds]): @@ -98,15 +110,32 @@ def create_playthrough(worlds): raise RuntimeError('Cannot beat game. Something went terribly wrong here!') state_list = [CollectionState(world) for world in worlds] + cached_state_list = [[state.copy() for state in state_list]] + + # Get all item locations in the worlds + collection_spheres = [] + item_locations = [location for state in state_list for location in state.world.get_filled_locations() if location.item.advancement] # in the first phase, we create the generous spheres. Collecting every item in a sphere will - # mean that every item in the next sphere is collectable. Will contain ever reachable item + # mean that every item in the next sphere is collectable. Will contain every reachable item logging.getLogger('').debug('Building up collection spheres.') - collection_spheres = CollectionState.collect_locations(state_list) + + # will loop if there is more items opened up in the previous iteration. Always run once + reachable_items_locations = True + while reachable_items_locations: + # get reachable new items locations + reachable_items_locations = [location for location in item_locations if location.name not in state_list[location.world.id].collected_locations and state_list[location.world.id].can_reach(location)] + for location in reachable_items_locations: + # Mark the location collected in the state world it exists in + state_list[location.world.id].collected_locations.append(location.name) + # Collect the item for the state world it is for + state_list[location.item.world.id].collect(location.item) + if reachable_items_locations: + collection_spheres.append(reachable_items_locations) + cached_state_list.append([state.copy() for state in state_list]) # in the second phase, we cull each sphere such that the game is still beatable, reducing each # range of influence to the bare minimum required inside it. Effectively creates a min play - state_list = [CollectionState(world) for world in worlds] for num, sphere in reversed(list(enumerate(collection_spheres))): to_delete = [] for location in sphere: @@ -114,7 +143,7 @@ def create_playthrough(worlds): logging.getLogger('').debug('Checking if %s is required to beat the game.', location.item.name) old_item = location.item location.item = None - if CollectionState.can_beat_game(state_list): + if CollectionState.can_beat_game(cached_state_list[num]): to_delete.append(location) else: # still required, got to keep it around @@ -123,35 +152,30 @@ def create_playthrough(worlds): # cull entries in spheres for spoiler walkthrough at end for location in to_delete: sphere.remove(location) - collection_spheres = [sphere for sphere in collection_spheres if sphere] # we are now down to just the required progress items in collection_spheres. Unfortunately # the previous pruning stage could potentially have made certain items dependant on others # in the same or later sphere (because the location had 2 ways to access but the item originally # used to access it was deemed not required.) So we need to do one final sphere collection pass # to build up the correct spheres - - -# required_locations = [item for sphere in collection_spheres for item in sphere] -# state = CollectionState(world) -# collection_spheres = [] -# while required_locations: -# state.sweep_for_events(key_only=True) - -# sphere = list(filter(state.can_reach, required_locations)) - -# for location in sphere: -# required_locations.remove(location) -# state.collect(location.item, True, location) - -# collection_spheres.append(sphere) - -# logging.getLogger('').debug('Calculated final sphere %i, containing %i of %i progress items.', len(collection_spheres), len(sphere), len(required_locations)) -# if not sphere: -# raise RuntimeError('Not all required items reachable. Something went terribly wrong here.') - - - # store the required locations for statistical analysis + required_locations = [item for sphere in collection_spheres for item in sphere] + state_list = cached_state_list[0] + collection_spheres = [] + reachable_items_locations = True + while reachable_items_locations: + # get reachable new items locations + reachable_items_locations = [location for location in required_locations if location.name not in state_list[location.world.id].collected_locations and state_list[location.world.id].can_reach(location)] + for location in reachable_items_locations: + # Mark the location collected in the state world it exists in + state_list[location.world.id].collected_locations.append(location.name) + # Collect the item for the state world it is for + state_list[location.item.world.id].collect(location.item) + if reachable_items_locations: + collection_spheres.append(reachable_items_locations) + + logging.getLogger('').debug('Calculated final sphere %i, containing %i of %i progress items.', len(collection_spheres), len(sphere), len(required_locations)) + if not sphere: + raise RuntimeError('Not all required items reachable. Something went terribly wrong here.') def flist_to_iter(node): while node: @@ -169,7 +193,7 @@ def get_path(state, region): # we can finally output our playthrough for world in old_worlds: - world.required_locations = [location.name for sphere in collection_spheres for location in sphere] - world.spoiler.playthrough = OrderedDict([(str(i + 1), {str(location): str(location.item) for location in sphere}) for i, sphere in enumerate(collection_spheres)]) + world.required_locations = [location for sphere in collection_spheres for location in sphere] + world.spoiler.playthrough = OrderedDict([(str(i + 1), {location: location.item for location in sphere}) for i, sphere in enumerate(collection_spheres)]) world.spoiler.paths = {location.name : get_path(world.state, location.parent_region) for sphere in collection_spheres for location in sphere} diff --git a/Settings.py b/Settings.py index ab6c1522c..7002ed90c 100644 --- a/Settings.py +++ b/Settings.py @@ -171,6 +171,18 @@ def __init__(self, settings_dict): time). ''', 'type': int}), + Setting_Info('world_count', int, 0, False, { + 'help': '''\ + Use to create a multi-world generation for co-op seeds. + World count is the number of players. Warning: Increasing + the world count will drastically increase generation time. + ''', + 'type': int}), + Setting_Info('player_num', int, 0, False, { + 'help': '''\ + Use to select world to generate when there are multiple worlds. + ''', + 'type': int}), Setting_Info('create_spoiler', bool, 1, True, { 'help': 'Output a Spoiler File', diff --git a/version.py b/version.py index 26c028495..8bbaa1477 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.12.11 f.LUM' \ No newline at end of file +__version__ = '2.12.12 f.LUM' \ No newline at end of file From aa4c9e74d8df4f227426757c5748979a2b1f694d Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Tue, 17 Jul 2018 16:18:59 -0500 Subject: [PATCH 168/755] Minor changes to hints to account for skulltulas in some situations. --- HintList.py | 1 + Hints.py | 4 ++-- version.py | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/HintList.py b/HintList.py index 7b3372f92..052c77045 100644 --- a/HintList.py +++ b/HintList.py @@ -131,6 +131,7 @@ def getHintGroup(string, world): 'Bombchus (20)': ("mice bombs", 'item'), 'Deku Nuts (5)': ("some nuts", 'item'), 'Deku Nuts (10)': ("lots-o-nuts", 'item'), + 'Gold Skulltulla Token': ("proof of destruction", 'item'), #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box '10 Big Poes': ("They say that Big Poes leads&to", 'alwaysLocation'), 'Deku Theater Mask of Truth': ("They say that the Mask of Truth&yields", 'alwaysLocation'), diff --git a/Hints.py b/Hints.py index 61978639c..eb49c8aa6 100644 --- a/Hints.py +++ b/Hints.py @@ -189,7 +189,7 @@ def buildGossipHints(world, messages): if location.item.type != 'Event' and \ not location.name in eventlocations and \ not isDungeonItem(location.item) and \ - location.item.name != 'Gold Skulltulla Token' and\ + (world.tokensanity != 'off' or location.item.name != 'Gold Skulltulla Token') and\ location.item.type != 'Song']) checkedLocations.append(locationWorld.name) @@ -204,7 +204,7 @@ def buildGossipHints(world, messages): not locationWorld.name in sometimesLocations and \ locationWorld.item.type != 'Event' and \ not locationWorld.name in eventlocations and \ - locationWorld.item.name != 'Gold Skulltulla Token' and \ + (world.tokensanity == 'all' or locationWorld.item.name != 'Gold Skulltulla Token') and \ not locationWorld.parent_region.dungeon and \ not locationWorld.name in checkedLocations] overworldSample = overworldlocations diff --git a/version.py b/version.py index f1292e2f3..f0802290f 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.5 f.LUM' +__version__ = '2.13.6 f.LUM' From 011e5276d4b0f7f8dd16476aafbdb18fe80757cb Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Wed, 18 Jul 2018 01:39:18 -0400 Subject: [PATCH 169/755] Game only gives for correct player. added player text. shortened text --- ASM/src/build.asm | 9 +- ASM/src/config.asm | 3 + ASM/src/item_overrides.asm | 32 +++++++ ASM/src/state.asm | 4 + Messages.py | 168 +++++++++++++++++++++++++++++++++++++ Rom.py | 26 +++--- data/base2current.json | 2 +- version.py | 2 +- 8 files changed, 230 insertions(+), 16 deletions(-) diff --git a/ASM/src/build.asm b/ASM/src/build.asm index 1a55bc8d8..fb8ce2d1c 100755 --- a/ASM/src/build.asm +++ b/ASM/src/build.asm @@ -17,15 +17,20 @@ .headersize (0x80400000 - 0x03480000) +.include "constants.asm" + .org 0x80401000 .area 0x1000, 0 .include "config.asm" .endarea .org 0x80402000 -.area 0x2000, 0 -.include "constants.asm" +.area 0x50, 0 .include "state.asm" +.endarea + +.org 0x80402050 +.area 0x2000, 0 .include "extended_items.asm" .include "item_overrides.asm" .include "cutscenes.asm" diff --git a/ASM/src/config.asm b/ASM/src/config.asm index 35e47eb2e..ff9c00223 100755 --- a/ASM/src/config.asm +++ b/ASM/src/config.asm @@ -33,6 +33,9 @@ ITEM_OVERRIDES: INITIAL_SAVE_DATA: .endarea +PLAYER_ID: +.byte 0x00 + ; 0x03481C00: Special items LIGHT_ARROW_ITEM: diff --git a/ASM/src/item_overrides.asm b/ASM/src/item_overrides.asm index 1d9628a49..424d46644 100755 --- a/ASM/src/item_overrides.asm +++ b/ASM/src/item_overrides.asm @@ -108,6 +108,18 @@ override_action: lw v0, 0x24 (sp) lbu a1, 0x0000 (v0) + li t0, PLAYER_OVERRIDE_DATA + lh t1, 0x02(t0) + beqz t1, @@no_player_override ; if item is pending player override + + li t2, 0x01 + sh t2, 0x00(t0) ; set override collected flag + + b @@return + li a1, 0x41 ; set action to no action + + +@@no_player_override: li t0, EXTENDED_ITEM_DATA lw t1, ITEM_ROW_IS_EXTENDED (t0) beqz t1, @@return @@ -328,12 +340,32 @@ scan_override_table: lw t1, 0x00 (t0) ; t1 = override entry beqz t1, @@return ; Reached end of override table nop + srl t2, t1, 8 ; t2 = override key + andi t3, t2, 0xFC00 + srl t3, t3, 10 ; t3 = player id + + lui t4, 0xFFFF + ori t4, t4, 0x03FF ;t4 = 0xFFFF03FF masks out the player id + and t2, t2, t4 bne t2, a0, @@lookup_loop nop andi v0, t1, 0xFF ; v0 = found item ID + li t0, SAVE_CONTEXT + sb t3, 0x1407(t0) ; set the point value to the player number + + li t1, PLAYER_OVERRIDE_DATA + + li t4, PLAYER_ID + lb t4, 0x00(t4) + beq t3, t4, @@return ; correct player for the item + sh zero, 0x02(t1) ; store no player override + + sb t3, 0x02(t1) ; store player override id + sb v0, 0x03(t1) ; store item id + @@return: jr ra nop diff --git a/ASM/src/state.asm b/ASM/src/state.asm index 5aa1d314a..cac3f9aca 100755 --- a/ASM/src/state.asm +++ b/ASM/src/state.asm @@ -2,6 +2,10 @@ ; Global variable storage for new code ;================================================================================================== +; Stores the item and player to give to +PLAYER_OVERRIDE_DATA: +.word 0x00000000 + ; Stores the ITEM_DATA row of the current extended item. EXTENDED_ITEM_DATA: .word 0x00000000, 0x00000000, 0x00000000, 0x00000000 diff --git a/Messages.py b/Messages.py index a0b0b30a8..79fdd16a5 100644 --- a/Messages.py +++ b/Messages.py @@ -64,6 +64,140 @@ TEMPLE_HINTS_MESSAGES = [0x7057, 0x707A] # dungeon reward hints from the temple of time pedestal LIGHT_ARROW_HINT = [0x70CC] # ganondorf's light arrow hint line +# messages for shorter item messages +ITEM_MESSAGES = { + 0x0001: "\x08\x13\x2DYou borrowed a \x05\x41Pocket Egg\x05\x40!\x01A Pocket Cucco will hatch from\x01it overnight. Be sure to give it\x01back when you are done with it.", + 0x0002: "\x08\x13\x2FYou returned the Pocket Cucco\x01and got \x05\x41Cojiro\x05\x40 in return!\x01Unlike other Cuccos, Cojiro\x01rarely crows.", + 0x0003: "\x08\x13\x30You got an \x05\x41Odd Mushroom\x05\x40!\x01A fresh mushroom like this is\x01sure to spoil quickly! Take it to\x01the Kakariko Potion Shop, quickly!", + 0x0004: "\x08\x13\x31You received an \x05\x41Odd Potion\x05\x40!\x01It may be useful for something...\x01Hurry to the Lost Woods!", + 0x0005: "\x08\x13\x32You returned the Odd Potion \x01and got the \x05\x41Poacher's Saw\x05\x40!\x01The young punk guy must have\x01left this behind.", + 0x0007: "\x08\x13\x48You got a \x01\x05\x41Deku Seeds Bullet Bag\x05\x40.\x01This bag can hold up to \x05\x4640\x05\x40\x01slingshot bullets.", + 0x0008: "\x08\x13\x33You traded the Poacher's Saw \x01for a \x05\x41Broken Goron's Sword\x05\x40!\x01Visit Biggoron to get it repaired!", + 0x0009: "\x08\x13\x34You checked in the Broken \x01Goron's Sword and received a \x01\x05\x41Prescription\x05\x40!\x01Go see King Zora!", + 0x000A: "\x08\x13\x37The Biggoron's Sword...\x01You got a \x05\x41Claim Check \x05\x40for it!\x01You can't wait for the sword\x01to be completed!", + 0x000B: "\x08\x13\x2EYou got a \x05\x41Pocket Cucco, \x05\x40one\x01of Anju's prized hens! It fits \x01in your pocket.", + 0x000C: "\x08\x13\x3DYou handed in the Claim Check\x01and got the \x05\x41Biggoron's Sword\x05\x40!\x01This blade was forged by a \x01master smith and won't break!", + 0x000D: "\x08\x13\x35You used the Prescription and\x01received an \x05\x41Eyeball Frog\x05\x40!\x01Be quick and deliver it to Lake \x01Hylia while it's cold!", + 0x000E: "\x08\x13\x36You traded the Eyeball Frog \x01for the \x05\x41World's Finest Eye Drops\x05\x40!\x01Hurry! Take them to Biggoron\x01before they go bad!", + 0x0010: "\x08\x13\x25You borrowed a \x05\x41Skull Mask\x05\x40.\x01You feel like a monster while you\x01wear this mask!", + 0x0011: "\x08\x13\x26You borrowed a \x05\x41Spooky Mask\x05\x40.\x01You can scare many people\x01with this mask!", + 0x0012: "\x08\x13\x24You borrowed a \x05\x41Keaton Mask\x05\x40.\x01You'll be a popular guy with\x01this mask on!", + 0x0013: "\x08\x13\x27You borrowed a \x05\x41Bunny Hood\x05\x40.\x01The hood's long ears are so\x01cute!", + 0x0014: "\x08\x13\x28You borrowed a \x05\x41Goron Mask\x05\x40.\x01It will make your head look\x01big, though.", + 0x0015: "\x08\x13\x29You borrowed a \x05\x41Zora Mask\x05\x40.\x01With this mask, you can\x01become one of the Zoras!", + 0x0016: "\x08\x13\x2AYou borrowed a \x05\x41Gerudo Mask\x05\x40.\x01This mask will make you look\x01like...a girl?", + 0x0017: "\x08\x13\x2BYou borrowed a \x05\x41Mask of Truth\x05\x40.\x01Show it to many people!", + 0x0030: "\x08\x13\x06You found the \x05\x41Fairy Slingshot\x05\x40!", + 0x0031: "\x08\x13\x03You found the \x05\x41Fairy Bow\x05\x40!", + 0x0032: "\x08\x13\x02You got \x05\x41Bombs\x05\x40!\x01If you see something\x01suspicious, bomb it!", + 0x0033: "\x08\x13\x09You got \x05\x41Bombchu\x05\x40!", + 0x0034: "\x08\x13\x01You got a \x05\x41Deku Nut\x05\x40!", + 0x0035: "\x08\x13\x0EYou found the \x05\x41Boomerang\x05\x40!", + 0x0036: "\x08\x13\x0AYou found the \x05\x41Hookshot\x05\x40!\x01It's a spring-loaded chain that\x01you can cast out to hook things.", + 0x0037: "\x08\x13\x00You got a \x05\x41Deku Stick\x05\x40!", + 0x0038: "\x08\x13\x11You found the \x05\x41Megaton Hammer\x05\x40!\x01It's so heavy, you need to\x01use two hands to swing it!", + 0x0039: "\x08\x13\x0FYou found the \x05\x41Lens of Truth\x05\x40!\x01Mysterious things are hidden\x01everywhere!", + 0x003A: "\x08\x13\x08You found the \x05\x41Ocarina of Time\x05\x40!\x01It glows with a mystical light...", + 0x003C: "\x08\x13\x67You received the \x05\x41Fire\x01Medallion\x05\x40!\x01Darunia awakens as a Sage and\x01adds his power to yours!", + 0x003D: "\x08\x13\x68You received the \x05\x43Water\x01Medallion\x05\x40!\x01Ruto awakens as a Sage and\x01adds her power to yours!", + 0x003E: "\x08\x13\x66You received the \x05\x42Forest\x01Medallion\x05\x40!\x01Saria awakens as a Sage and\x01adds her power to yours!", + 0x003F: "\x08\x13\x69You received the \x05\x46Spirit\x01Medallion\x05\x40!\x01Nabooru awakens as a Sage and\x01adds her power to yours!", + 0x0040: "\x08\x13\x6BYou received the \x05\x44Light\x01Medallion\x05\x40!\x01Rauru the Sage adds his power\x01to yours!", + 0x0041: "\x08\x13\x6AYou received the \x05\x45Shadow\x01Medallion\x05\x40!\x01Impa awakens as a Sage and\x01adds her power to yours!", + 0x0042: "\x08\x13\x14You got an \x05\x41Empty Bottle\x05\x40!\x01You can put something in this\x01bottle.", + 0x0043: "\x08\x13\x15You got a \x05\x41Red Potion\x05\x40!\x01It will restore your health", + 0x0044: "\x08\x13\x16You got a \x05\x42Green Potion\x05\x40!\x01It will restore your magic.", + 0x0045: "\x08\x13\x17You got a \x05\x43Blue Potion\x05\x40!\x01It will recover your health\x01and magic.", + 0x0046: "\x08\x13\x18You caught a \x05\x41Fairy\x05\x40 in a bottle!\x01It will revive you\x01the moment you run out of life \x01energy.", + 0x0047: "\x08\x13\x19You got a \x05\x41Fish\x05\x40!\x01It looks so fresh and\x01delicious!", + 0x0048: "\x08\x13\x10You got a \x05\x41Magic Bean\x05\x40!\x01Find a suitable spot for a garden\x01and plant it.", + 0x004A: "\x08\x13\x07You received the \x05\x41Fairy Ocarina\x05\x40!\x01This is a memento from Saria.", + 0x004B: "\x08\x13\x3DYou got the \x05\x42Giant's Knife\x05\x40!\x01Hold it with both hands to\x01attack! It's so long, you\x01can't use it with a \x05\x44shield\x05\x40.", + 0x004C: "\x08\x13\x3EYou got a \x05\x44Deku Shield\x05\x40!", + 0x004D: "\x08\x13\x3FYou got a \x05\x44Hylian Shield\x05\x40!", + 0x004E: "\x08\x13\x40You found the \x05\x44Mirror Shield\x05\x40!\x01The shield's polished surface can\x01reflect light or energy.", + 0x004F: "\x08\x13\x0BYou found the \x05\x41Longshot\x05\x40!\x01It's an upgraded Hookshot.\x01It extends \x05\x41twice\x05\x40 as far!", + 0x0050: "\x08\x13\x42You got a \x05\x41Goron Tunic\x05\x40!\x01Going to a hot place? No worry!", + 0x0051: "\x08\x13\x43You got a \x05\x43Zora Tunic\x05\x40!\x01Wear it, and you won't drown\x01underwater.", + 0x0052: "\x08You got a \x05\x42Magic Jar\x05\x40!\x01Your Magic Meter is filled!", + 0x0053: "\x08\x13\x45You got the \x05\x41Iron Boots\x05\x40!\x01So heavy, you can't run.\x01So heavy, you can't float.", + 0x0054: "\x08\x13\x46You got the \x05\x41Hover Boots\x05\x40!\x01With these mysterious boots\x01you can hover above the ground.", + 0x0055: "\x08You got a \x05\x45Recovery Heart\x05\x40!\x01Your life energy is recovered!", + 0x0056: "\x08\x13\x4BYou upgraded your quiver to a\x01\x05\x41Big Quiver\x05\x40!\x01Now you can carry more arrows-\x01\x05\x4640 \x05\x40in total!", + 0x0057: "\x08\x13\x4BYou upgraded your quiver to\x01the \x05\x41Biggest Quiver\x05\x40!\x01Now you can carry even more \x01arrows, to a maximum of \x05\x4650\x05\x40!", + 0x0058: "\x08\x13\x4DYou found a \x05\x41Bomb Bag\x05\x40!\x01You found \x05\x4120 Bombs\x05\x40 inside!", + 0x0059: "\x08\x13\x4EYou got a \x05\x41Big Bomb Bag\x05\x40!\x01Now you can carry more \x01Bombs, up to a maximum of \x05\x4630\x05\x40!", + 0x005A: "\x08\x13\x4FYou got the \x01\x05\x41Biggest Bomb Bag\x05\x40!\x01Now, you can carry up to \x01\x05\x4640\x05\x40 Bombs!", + 0x005B: "\x08\x13\x51You found the \x05\x43Silver Gauntlets\x05\x40!\x01You feel the power to lift\x01big things with it!", + 0x005C: "\x08\x13\x52You found the \x05\x43Golden Gauntlets\x05\x40!\x01You can feel even more power\x01coursing through your arms!", + 0x005D: "\x08\x13\x1CYou put a \x05\x44Blue Fire\x05\x40\x01into the bottle!\x01This is a cool flame you can\x01use on red ice.", + 0x005E: "\x08\x13\x56You got an \x05\x43Adult's Wallet\x05\x40!\x01Now you can hold\x01up to \x05\x46200\x05\x40 \x05\x46Rupees\x05\x40.", + 0x005F: "\x08\x13\x57You got a \x05\x43Giant's Wallet\x05\x40!\x01Now you can hold\x01up to \x05\x46500\x05\x40 \x05\x46Rupees\x05\x40.", + 0x0060: "\x08\x13\x77You found a \x05\x41Small Key\x05\x40!\x01This key will open a locked \x01door. You can use it only\x01in this dungeon.", + 0x0066: "\x08\x13\x76You found the \x05\x41Dungeon Map\x05\x40!\x01It's the map to this dungeon.", + 0x0067: "\x08\x13\x75You found the \x05\x41Compass\x05\x40!\x01Now you can see the locations\x01of many hidden things in the\x01dungeon!", + 0x0068: "\x08\x13\x6FYou obtained the \x05\x41Stone of Agony\x05\x40!\x01If you equip a \x05\x44Rumble Pak\x05\x40, it\x01will react to nearby...secrets.", + 0x0069: "\x08\x13\x23You received \x05\x41Zelda's Letter\x05\x40!\x01Wow! This letter has Princess\x01Zelda's autograph!", + 0x006C: "\x08\x13\x49Your \x05\x41Deku Seeds Bullet Bag \x01\x05\x40has become bigger!\x01This bag can hold \x05\x4650\x05\x41 \x05\x40bullets!", + 0x006F: "\x08You got a \x05\x42Green Rupee\x05\x40!\x01That's \x05\x42one Rupee\x05\x40!", + 0x0070: "\x08\x13\x04You got the \x05\x41Fire Arrow\x05\x40!\x01If you hit your target,\x01it will catch fire.", + 0x0071: "\x08\x13\x0CYou got the \x05\x43Ice Arrow\x05\x40!\x01If you hit your target,\x01it will freeze.", + 0x0072: "\x08\x13\x12You got the \x05\x44Light Arrow\x05\x40!\x01The light of justice\x01will smite evil!", + 0x0073: "\x08\x06\x28You have learned the\x01\x06\x2F\x05\x42Minuet of Forest\x05\x40!", + 0x0074: "\x08\x06\x28You have learned the\x01\x06\x37\x05\x41Bolero of Fire\x05\x40!", + 0x0075: "\x08\x06\x28You have learned the\x01\x06\x29\x05\x43Serenade of Water\x05\x40!", + 0x0076: "\x08\x06\x28You have learned the\x01\x06\x2D\x05\x46Requiem of Spirit\x05\x40!", + 0x0077: "\x08\x06\x28You have learned the\x01\x06\x28\x05\x45Nocturne of Shadow\x05\x40!", + 0x0078: "\x08\x06\x28You have learned the\x01\x06\x32\x05\x44Prelude of Light\x05\x40!", + 0x0079: "\x08\x13\x50You got the \x05\x41Goron's Bracelet\x05\x40!\x01Now you can pull up Bomb\x01Flowers.", + 0x007A: "\x08\x13\x1DYou put a \x05\x41Bug \x05\x40in the bottle!\x01This kind of bug prefers to\x01live in small holes in the ground.", + 0x007B: "\x08\x13\x70You obtained the \x05\x41Gerudo's \x01Membership Card\x05\x40!\x01You can get into the Gerudo's\x01training ground in their hideout.", + 0x0080: "\x08\x13\x6CYou got the \x05\x42Kokiri's Emerald\x05\x40!\x01This is the Spiritual Stone of \x01the Forest, now entrusted to \x01you by the Great Deku Tree.", + 0x0081: "\x08\x13\x6DYou obtained the \x05\x41Goron's Ruby\x05\x40!\x01This is the Spiritual Stone of \x01Fire passed down by the Gorons!", + 0x0082: "\x08\x13\x6EYou obtained \x05\x43Zora's Sapphire\x05\x40!\x01This is the Spiritual Stone of\x01Water passed down by the\x01Zoras!", + 0x0090: "\x08\x13\x00Now you can pick up \x01many \x05\x41Deku Sticks\x05\x40!\x01You can carry up to \x05\x4620\x05\x40 of them!", + 0x0091: "\x08\x13\x00You can now pick up \x01even more \x05\x41Deku Sticks\x05\x40!\x01You can carry up to \x05\x4630\x05\x40 of them!", + 0x0097: "\x08\x13\x20You caught a \x05\x41Poe \x05\x40in a bottle!\x01Something good might happen!", + 0x0098: "\x08\x13\x1AYou got \x05\x41Lon Lon Milk\x05\x40!\x01This milk is very nutritious!\x01There are two drinks in it.", + 0x0099: "\x08\x13\x1BYou found \x05\x41Ruto's Letter\x05\x40 in a\x01bottle! Show it to King Zora.", + 0x009A: "\x08\x13\x21You got a \x05\x41Weird Egg\x05\x40!\x01Feels like there's something\x01moving inside!", + 0x00A4: "\x08\x13\x3BYou got the \x05\x42Kokiri Sword\x05\x40!\x01This is a hidden treasure of\x01the Kokiri.", + 0x00A7: "\x08\x13\x01Now you can carry\x01many \x05\x41Deku Nuts\x05\x40!\x01You can hold up to \x05\x4630\x05\x40 nuts!", + 0x00A8: "\x08\x13\x01You can now carry even\x01more \x05\x41Deku Nuts\x05\x40! You can carry\x01up to \x05\x4640\x05\x41 \x05\x40nuts!", + 0x00AD: "\x08\x13\x05You got \x05\x41Din's Fire\x05\x40!\x01Its fireball engulfs everything!", + 0x00AE: "\x08\x13\x0DYou got \x05\x42Farore's Wind\x05\x40!\x01This is warp magic you can use!", + 0x00AF: "\x08\x13\x13You got \x05\x43Nayru's Love\x05\x40!\x01Cast this to create a powerful\x01protective barrier.", + 0x00B4: "\x08You destroyed a \x05\x41Gold Skulltula\x05\x40.\x01You got a token proving you \x01destroyed it!", + 0x00B5: "\x08You destroyed a \x05\x41Gold Skulltula\x05\x40.\x01You got a token proving you \x01destroyed it!", + 0x00C2: "\x08\x13\x73You got a \x05\x41Piece of Heart\x05\x40!\x01Collect four pieces total to get\x01another Heart Container.", + 0x00C3: "\x08\x13\x73You got a \x05\x41Piece of Heart\x05\x40!\x01So far, you've collected two \x01pieces.", + 0x00C4: "\x08\x13\x73You got a \x05\x41Piece of Heart\x05\x40!\x01Now you've collected three \x01pieces!", + 0x00C5: "\x08\x13\x73You got a \x05\x41Piece of Heart\x05\x40!\x01You've completed another Heart\x01Container!", + 0x00C6: "\x08\x13\x72You got a \x05\x41Heart Container\x05\x40!\x01Your maximum life energy is \x01increased by one heart.", + 0x00C7: "\x08\x13\x74You got the \x05\x41Boss Key\x05\x40!\x01Now you can get inside the \x01chamber where the Boss lurks.", + 0x00CC: "\x08You got a \x05\x43Blue Rupee\x05\x40!\x01That's \x05\x43five Rupees\x05\x40!", + 0x00CD: "\x08\x13\x53You got the \x05\x43Silver Scale\x05\x40!\x01You can dive deeper than you\x01could before.", + 0x00CE: "\x08\x13\x54You got the \x05\x43Golden Scale\x05\x40!\x01Now you can dive much\x01deeper than you could before!", + 0x00D1: "\x08\x06\x14You've learned \x05\x42Saria's Song\x05\x40!", + 0x00D2: "\x08\x06\x11You've learned \x05\x41Epona's Song\x05\x40!", + 0x00D3: "\x08\x06\x0BYou've learned the \x05\x46Sun's Song\x05\x40!", + 0x00D4: "\x08\x06\x15You've learned \x05\x43Zelda's Lullaby\x05\x40!", + 0x00D5: "\x08\x06\x05You've learned the \x05\x44Song of Time\x05\x40!", + 0x00D6: "\x08You've learned the \x05\x45Song of Storms\x05\x40!", + 0x00DC: "\x08\x13\x58You got \x05\x41Deku Seeds\x05\x40!\x01Use these as bullets\x01for your Slingshot.", + 0x00DD: "\x08You mastered the secret sword\x01technique of the \x05\x41Spin Attack\x05\x40!", + 0x00E4: "\x08You can now use \x05\x42Magic\x05\x40!", + 0x00E5: "\x08Your \x05\x44defensive power\x05\x40 is enhanced!", + 0x00E6: "\x08You got a \x05\x46bundle of arrows\x05\x40!", + 0x00E8: "\x08Your magic power has been \x01enhanced! Now you have twice\x01as much \x05\x41Magic Power\x05\x40!", + 0x00E9: "\x08Your defensive power has been \x01enhanced! Damage inflicted by \x01enemies will be \x05\x41reduced by half\x05\x40.", + 0x00F0: "\x08You got a \x05\x41Red Rupee\x05\x40!\x01That's \x05\x41twenty Rupees\x05\x40!", + 0x00F1: "\x08You got a \x05\x45Purple Rupee\x05\x40!\x01That's \x05\x45fifty Rupees\x05\x40!", + 0x00F2: "\x08You got a \x05\x46Huge Rupee\x05\x40!\x01This Rupee is worth a whopping\x01\x05\x46two hundred Rupees\x05\x40!", + 0x00F9: "\x08\x13\x1EYou put a \x05\x41Big Poe \x05\x40in a bottle!\x01Let's sell it at the \x05\x41Ghost Shop\x05\x40!\x01Something good might happen!", +} + + # messages for keysanity item pickup # ids are in the space freed up by move_shop_item_messages() KEYSANITY_MESSAGES = { @@ -131,6 +265,22 @@ def display(self): else: return chr(self.code) + def get_python_string(self): + if self.code in CONTROL_CODES: + ret = '' + subdata = self.data + for _ in range(0, CONTROL_CODES[self.code][1]): + ret = ('\\x%02X' % (subdata & 0xFF)) + ret + subdata = subdata >> 8 + ret = '\\x%02X' % self.code + ret + return ret + elif self.code in SPECIAL_CHARACTERS: + return '\\x%02X' % self.code + elif self.code >= 0x7F: + return '?' + else: + return chr(self.code) + # writes the code to the given offset, and returns the offset of the next byte def write(self, rom, offset): rom.write_byte(TEXT_START + offset, self.code) @@ -165,6 +315,12 @@ def display(self): "Postion: " + str(self.position)] return ', '.join(meta_data) + '\n' + self.text + def get_python_string(self): + ret = '' + for code in self.text_codes: + ret = ret + code.get_python_string() + return ret + # check if this is an unused message that just contains it's own id as text def is_id_message(self): if self.unpadded_length == 5: @@ -466,6 +622,18 @@ def add_keysanity_messages(messages): for id, text in KEYSANITY_MESSAGES.items(): add_message(messages, text, id, 0x23) +# reduce item message sizes +def update_item_messages(messages, world): + for id, text in ITEM_MESSAGES.items(): + if world.world_count > 1: + index = 0 + while ord(text[index]) in CONTROL_CODES: + index = index + CONTROL_CODES[ord(text[index])][1] + 1 + new_text = text[:index] + "\x08\x05\x42Player \x18:\x05\x40\x01" + text[index:] + update_message_by_id(messages, id, new_text) + else: + update_message_by_id(messages, id, text) + # run all keysanity related patching to add messages for dungeon specific items def message_patch_for_dungeon_items(rom, messages, shop_items): move_shop_item_messages(messages, shop_items) diff --git a/Rom.py b/Rom.py index 583eccacd..3511feb2d 100644 --- a/Rom.py +++ b/Rom.py @@ -1014,8 +1014,6 @@ def write_save_table(rom): shop_items = read_shop_items(rom) remove_unused_messages(messages) - update_message_by_id(messages, 0x004A, "\x13\x07\x08You received the \x05\x41Fairy Ocarina\x05\x40!\x01This is a memento from Saria.") - # only one big poe needs to be caught to get the buyer's reward if world.only_one_big_poe: # change the value checked (in code) from 1000 to 100 @@ -1042,6 +1040,7 @@ def write_save_table(rom): # Write item overrides override_table = get_override_table(world) rom.write_bytes(0x3481000, sum(override_table, [])) + rom.write_byte(0x03481C00, world.id + 1) # Write player ID # Set Default targeting option to Hold if world.default_targeting == 'hold': @@ -1183,6 +1182,9 @@ def write_save_table(rom): # give dungeon items the correct messages message_patch_for_dungeon_items(rom, messages, shop_items) + # reduce item message lengths + update_item_messages(messages, world) + repack_messages(rom, messages) write_shop_items(rom, shop_items) @@ -1193,15 +1195,13 @@ def write_save_table(rom): shuffle_messages(rom, False) # output a text dump, for testing... - - # with open('keysanity_' + str(world.seed) + '_dump.txt', 'w', encoding='utf-16') as f: + #with open('keysanity_' + str(world.seed) + '_dump.txt', 'w', encoding='utf-16') as f: # messages = read_messages(rom) - # shop_items = read_shop_items(rom) + # f.write('item_message_strings = {\n') # for m in messages: - # f.write(str(m) + '\n\n') - # f.write('\n\n\n\n\n') - # for s in shop_items: - # f.write(str(s) + '\n\n') + # f.write("\t0x%04X: \"%s\",\n" % (m.id, m.get_python_string())) + # f.write('}\n') + scarecrow_song = None if world.free_scarecrow: @@ -1368,13 +1368,15 @@ def get_override_entry(location): if None in [scene, default, item_id]: return [] + player_id = (location.item.world.id + 1) << 2 + if location.type in ['NPC', 'BossHeart']: - return [scene, 0x00, default, item_id] + return [scene, player_id | 0x00, default, item_id] elif location.type == 'Chest': flag = default & 0x1F - return [scene, 0x01, flag, item_id] + return [scene, player_id | 0x01, flag, item_id] elif location.type == 'Collectable': - return [scene, 0x02, default, item_id] + return [scene, player_id | 0x02, default, item_id] else: return [] diff --git a/data/base2current.json b/data/base2current.json index ca4bc94ea..6b4685b4a 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -1 +1 @@ -[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 50]}, {"11325064": [12, 16, 11, 10, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 11, 101]}, {"11427312": [12, 16, 12, 14]}, {"11431496": [12, 16, 11, 18, 1, 15, 192, 33]}, {"11562028": [12, 16, 12, 47]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 12, 30]}, {"11882076": [12, 16, 11, 251]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 11, 68, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 11, 75, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 11, 82, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 11, 61, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 2]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 9, 207]}, {"12427480": [12, 16, 9, 236]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 9, 240]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 11, 26, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 14]}, {"12491480": [12, 16, 10, 23]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 10, 223]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 11, 89]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 140, 73]}, {"14149503": [164]}, {"14149512": [2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149856": [87]}, {"14149859": [15]}, {"14357459": [118]}, {"14624335": [118]}, {"14872723": [52]}, {"15506663": [122]}, {"55057408": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058464": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 104, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 132, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 172, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 212, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 252, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 36, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 64, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 92, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 120, 83, 65, 56, 67]}, {"55058613": [235, 21, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 55, 68]}, {"55058629": [235, 22, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 57, 69]}, {"55058645": [235, 23, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 63, 71]}, {"55058677": [244, 25, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 10, 6]}, {"55058757": [185, 1, 3, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 28]}, {"55058773": [185, 1, 4, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 29]}, {"55058789": [185, 1, 5, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 30]}, {"55058805": [185, 1, 6, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 42]}, {"55058821": [185, 1, 7, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 97]}, {"55058837": [185, 1, 10, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 98]}, {"55058853": [184, 2]}, {"55058856": [128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 99]}, {"55058869": [184, 2, 1, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 100]}, {"55058885": [184, 2, 2, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 101]}, {"55058901": [184, 2, 3, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 124]}, {"55058917": [184, 2, 4, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 125]}, {"55058933": [184, 2, 5, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 126]}, {"55058949": [184, 2, 6, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 127]}, {"55058965": [184, 2, 7, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 162]}, {"55058981": [184, 2, 8, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 135]}, {"55058997": [184, 2, 9, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 136]}, {"55059013": [200, 4]}, {"55059016": [128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 137]}, {"55059029": [200, 4, 1, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 138]}, {"55059045": [200, 4, 2, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 139]}, {"55059061": [200, 4, 3, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 140]}, {"55059077": [200, 4, 4, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 142]}, {"55059093": [200, 4, 5, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 143]}, {"55059109": [200, 4, 6, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 163]}, {"55059125": [200, 4, 7, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 165]}, {"55059141": [200, 4, 8, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 146]}, {"55059157": [200, 4, 9, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 2, 147]}, {"55059173": [170, 3, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 148]}, {"55059189": [170, 4, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 149]}, {"55059205": [170, 5, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 166]}, {"55059221": [170, 6, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 169]}, {"55059237": [170, 7, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 155]}, {"55059253": [170, 8, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 159]}, {"55059269": [170, 11, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 160]}, {"55059285": [170, 12, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 161]}, {"55059301": [170, 13, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 61, 67, 12]}, {"55059317": [248, 255, 255, 128, 64, 37, 236, 128, 64, 36, 96, 77, 131, 247, 85]}, {"55059333": [183, 255, 255, 128, 64, 37, 228, 128, 64, 36, 96, 77, 146, 219, 230]}, {"55059349": [216, 255, 255, 128, 64, 37, 228, 128, 64, 37, 172, 77, 147, 218, 230]}, {"55059365": [216, 255, 255, 128, 64, 37, 228, 128, 64, 37, 172, 77, 148, 217, 230]}, {"55059381": [216, 255, 255, 128, 64, 37, 228, 128, 64, 37, 172, 77, 142, 224, 50]}, {"55059397": [206, 255, 255, 128, 64, 37, 228, 128, 64, 37, 200, 77, 143, 224, 50]}, {"55059413": [206, 255, 255, 128, 64, 37, 228, 128, 64, 37, 200, 77, 144, 224, 50]}, {"55059429": [206, 255, 255, 128, 64, 37, 228, 128, 64, 37, 200, 77, 140, 238, 52]}, {"55059445": [187, 255, 255, 128, 64, 37, 228, 128, 64, 36, 96, 77, 141, 238, 52]}, {"55059461": [187, 255, 255, 128, 64, 37, 228, 128, 64, 36, 96, 79, 65, 19, 233]}, {"55059477": [189, 255, 255, 128, 64, 38, 124, 128, 64, 36, 96, 79, 65, 30, 228]}, {"55059493": [205, 255, 255, 128, 64, 38, 156, 128, 64, 37, 148, 79, 65, 31, 232]}, {"55059509": [205, 255, 255, 128, 64, 38, 188, 128, 64, 36, 96, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 38, 228, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 39, 44, 128, 64, 39, 16, 3, 224]}, {"55059555": [8, 52, 162]}, {"55059560": [144, 136]}, {"55059563": [125, 52, 1]}, {"55059567": [255, 17, 1]}, {"55059571": [2, 52, 2]}, {"55059575": [8, 52, 2]}, {"55059579": [9, 3, 224]}, {"55059583": [8]}, {"55059588": [144, 136]}, {"55059591": [163, 49, 8]}, {"55059595": [192, 17]}, {"55059599": [5, 52, 2]}, {"55059603": [84, 52, 1]}, {"55059607": [64, 17, 1]}, {"55059611": [2, 52, 2]}, {"55059615": [53, 52, 2]}, {"55059619": [54, 3, 224]}, {"55059623": [8]}, {"55059628": [144, 136]}, {"55059631": [163, 49, 8]}, {"55059635": [24, 17]}, {"55059639": [5, 52, 2]}, {"55059643": [50, 52, 1]}, {"55059647": [8, 17, 1]}, {"55059651": [2, 52, 2]}, {"55059655": [51, 52, 2]}, {"55059659": [52, 3, 224]}, {"55059663": [8]}, {"55059668": [144, 136]}, {"55059671": [163, 49, 8]}, {"55059675": [3, 17]}, {"55059679": [5, 52, 2]}, {"55059683": [4, 52, 1]}, {"55059687": [1, 17, 1]}, {"55059691": [2, 52, 2]}, {"55059695": [48, 52, 2]}, {"55059699": [49, 3, 224]}, {"55059703": [8]}, {"55059708": [144, 136]}, {"55059711": [162, 49, 8]}, {"55059715": [192, 17]}, {"55059719": [5, 52, 2]}, {"55059723": [5, 52, 1]}, {"55059727": [64, 17, 1]}, {"55059731": [2, 52, 2]}, {"55059735": [96, 52, 2]}, {"55059739": [123, 3, 224]}, {"55059743": [8]}, {"55059748": [144, 136]}, {"55059751": [162, 49, 8]}, {"55059755": [48, 17]}, {"55059759": [2, 52, 2]}, {"55059763": [69, 52, 2]}, {"55059767": [70, 3, 224]}, {"55059771": [8]}, {"55059776": [144, 136]}, {"55059779": [162, 49, 8]}, {"55059783": [6, 17]}, {"55059787": [2, 52, 2]}, {"55059791": [55, 52, 2]}, {"55059795": [56, 3, 224]}, {"55059799": [8]}, {"55059804": [144, 136]}, {"55059807": [161, 49, 8]}, {"55059811": [32, 17]}, {"55059815": [2, 52, 2]}, {"55059819": [121, 52, 2]}, {"55059823": [122, 3, 224]}, {"55059827": [8]}, {"55059832": [144, 136]}, {"55059835": [161, 49, 8]}, {"55059839": [4, 17]}, {"55059843": [2, 52, 2]}, {"55059847": [119, 52, 2]}, {"55059851": [120, 3, 224]}, {"55059855": [8]}, {"55059860": [144, 136]}, {"55059863": [50, 17]}, {"55059867": [2, 52, 2]}, {"55059871": [192, 52, 2]}, {"55059875": [193, 3, 224]}, {"55059879": [8]}, {"55059884": [144, 136]}, {"55059887": [163, 49, 8]}, {"55059891": [3, 17]}, {"55059895": [2, 52, 2]}, {"55059899": [77, 52, 162]}, {"55059904": [3, 224]}, {"55059907": [8]}, {"55059912": [144, 136]}, {"55059915": [163, 49, 8]}, {"55059919": [24, 17]}, {"55059923": [2, 52, 2]}, {"55059927": [77, 52, 162]}, {"55059932": [3, 224]}, {"55059935": [8]}, {"55059940": [3, 224]}, {"55059943": [8]}, {"55059948": [52, 8]}, {"55059951": [1, 160, 136]}, {"55059955": [62, 3, 224]}, {"55059959": [8]}, {"55059964": [36, 136]}, {"55059967": [134, 36, 9, 255, 255, 37, 41]}, {"55059975": [1, 52, 1]}, {"55059979": [3]}, {"55059981": [41, 8, 42, 20, 32]}, {"55059987": [7]}, {"55059992": [1, 9, 80, 33, 145, 75]}, {"55060000": [52, 1]}, {"55060003": [255, 21, 97, 255, 247]}, {"55060012": [161, 69]}, {"55060016": [3, 224]}, {"55060019": [8]}, {"55060024": [36, 136]}, {"55060027": [168, 1, 6, 64, 33, 145, 9]}, {"55060036": [1, 37, 72, 37, 161, 9]}, {"55060044": [3, 224]}, {"55060047": [8]}, {"55060052": [36, 136]}, {"55060055": [188, 1, 5, 64, 33, 129, 9]}, {"55060064": [5, 33]}, {"55060067": [2]}, {"55060072": [52, 9]}, {"55060076": [37, 41]}, {"55060079": [1, 161, 9]}, {"55060084": [3, 224]}, {"55060087": [8]}, {"55060092": [52, 8]}, {"55060095": [1, 160, 136]}, {"55060099": [61, 52, 8]}, {"55060103": [20, 160, 136]}, {"55060107": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060119": [8]}, {"55060124": [52, 8]}, {"55060127": [1, 160, 136]}, {"55060131": [50, 160, 136]}, {"55060135": [58, 52, 8]}, {"55060139": [48, 164, 136, 19, 244, 160, 136]}, {"55060147": [51, 3, 224]}, {"55060151": [8]}, {"55060156": [52, 8]}, {"55060159": [2, 160, 136]}, {"55060163": [50, 52, 8]}, {"55060167": [1, 160, 136]}, {"55060171": [58, 160, 136]}, {"55060175": [60, 52, 8]}, {"55060179": [96, 164, 136, 19, 244, 160, 136]}, {"55060187": [51, 3, 224]}, {"55060191": [8]}, {"55060196": [144, 136]}, {"55060199": [124, 52, 1]}, {"55060203": [255, 17, 1]}, {"55060207": [6, 52, 2]}, {"55060211": [107, 144, 136]}, {"55060215": [148, 45, 8]}, {"55060219": [6, 17]}, {"55060223": [2, 52, 2]}, {"55060227": [106, 52, 2]}, {"55060231": [3, 3, 224]}, {"55060235": [8]}, {"55060240": [144, 136]}, {"55060243": [123, 52, 1]}, {"55060247": [255, 17, 1]}, {"55060251": [2, 52, 162]}, {"55060256": [52, 2]}, {"55060259": [12, 3, 224]}, {"55060263": [8]}, {"55060268": [52, 8]}, {"55060271": [7, 160, 136]}, {"55060275": [123, 3, 224]}, {"55060279": [8]}, {"55060284": [48, 132]}, {"55060287": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060299": [140, 16, 129]}, {"55060303": [22, 145, 2]}, {"55060307": [117, 52, 1]}, {"55060311": [141, 16, 129]}, {"55060315": [19, 145, 2]}, {"55060319": [117, 16, 128]}, {"55060323": [17, 145, 2]}, {"55060327": [116, 52, 1]}, {"55060331": [138, 16, 129]}, {"55060335": [14, 145, 2]}, {"55060339": [116, 52, 1]}, {"55060343": [139, 16, 129]}, {"55060347": [11, 145, 2]}, {"55060351": [116, 52, 1]}, {"55060355": [88, 16, 129]}, {"55060359": [8, 52, 2]}, {"55060364": [52, 1]}, {"55060367": [120, 16, 129]}, {"55060371": [5, 52, 2]}, {"55060376": [52, 1]}, {"55060379": [121, 16, 129]}, {"55060383": [2, 52, 2]}, {"55060388": [52, 2]}, {"55060391": [255, 3, 224]}, {"55060395": [8]}, {"55060400": [143, 166]}, {"55060403": [48, 132, 197]}, {"55060407": [4, 8, 16, 9, 244]}, {"55060416": [143, 185]}, {"55060419": [44, 135, 37]}, {"55060423": [4, 8, 16, 9, 244]}, {"55060432": [60, 10, 128, 64, 37, 74, 32]}, {"55060440": [141, 75]}, {"55060443": [12, 17, 96]}, {"55060447": [2]}, {"55060452": [149, 69]}, {"55060455": [4, 60, 10, 128, 64, 37, 74, 32, 16, 161, 64]}, {"55060468": [60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060480": [3, 224]}, {"55060483": [8]}, {"55060488": [60, 8, 128, 64, 37, 8, 32]}, {"55060496": [141, 9]}, {"55060499": [12, 17, 32]}, {"55060503": [2]}, {"55060508": [129, 3]}, {"55060511": [2]}, {"55060513": [3, 15, 195]}, {"55060517": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55060531": [8]}, {"55060536": [144, 69]}, {"55060539": [3, 60, 8, 128, 64, 37, 8, 32]}, {"55060548": [141, 9]}, {"55060551": [12, 17, 32]}, {"55060555": [2]}, {"55060560": [145, 5]}, {"55060563": [3, 3, 224]}, {"55060567": [8]}, {"55060572": [143, 162]}, {"55060575": [36, 144, 69]}, {"55060580": [60, 8, 128, 64, 37, 8, 32]}, {"55060588": [141, 9]}, {"55060591": [12, 17, 32]}, {"55060595": [19]}, {"55060600": [145, 5]}, {"55060603": [1, 175, 164]}, {"55060608": [175, 165]}, {"55060611": [4, 175, 166]}, {"55060615": [8, 39, 189, 255, 232, 175, 191]}, {"55060623": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55060635": [6, 145, 6]}, {"55060639": [7, 141, 9]}, {"55060643": [8, 1, 32, 248, 9]}, {"55060652": [143, 191]}, {"55060655": [16, 39, 189]}, {"55060659": [24, 143, 164]}, {"55060664": [143, 165]}, {"55060667": [4, 143, 166]}, {"55060671": [8, 3, 224]}, {"55060675": [8]}, {"55060680": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55060691": [16, 175, 163]}, {"55060695": [20, 175, 191]}, {"55060699": [24, 12, 16, 10, 63]}, {"55060708": [143, 162]}, {"55060711": [16, 143, 163]}, {"55060715": [20, 143, 191]}, {"55060719": [24, 39, 189]}, {"55060723": [32, 3, 224]}, {"55060727": [8]}, {"55060732": [39, 189, 255, 232, 175, 191]}, {"55060739": [16, 60, 8, 128, 64, 37, 8, 32]}, {"55060748": [173]}, {"55060752": [173]}, {"55060755": [4, 173]}, {"55060759": [8, 173]}, {"55060763": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55060779": [42]}, {"55060785": [9, 15, 195, 1, 33, 32, 38]}, {"55060793": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 121]}, {"55060808": [4, 64]}, {"55060811": [34]}, {"55060816": [52, 68]}, {"55060820": [12, 16, 10, 190]}, {"55060828": [16, 96]}, {"55060831": [12]}, {"55060836": [60, 8, 128, 64, 37, 8, 32]}, {"55060844": [140, 105]}, {"55060848": [173, 9]}, {"55060852": [140, 105]}, {"55060855": [4, 173, 9]}, {"55060859": [4, 140, 105]}, {"55060863": [8, 173, 9]}, {"55060867": [8, 52, 9]}, {"55060871": [1, 173, 9]}, {"55060875": [12, 144, 98]}, {"55060880": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55060896": [52, 1]}, {"55060899": [10, 21, 65]}, {"55060903": [6]}, {"55060908": [149, 42]}, {"55060911": [28, 49, 74, 240, 31]}, {"55060917": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55060927": [28, 129, 9, 4, 36, 5, 33]}, {"55060935": [2]}, {"55060941": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55060951": [16, 39, 189]}, {"55060955": [24, 3, 224]}, {"55060959": [8]}, {"55060964": [39, 189, 255, 232, 175, 191]}, {"55060971": [16, 12, 16, 10, 135]}, {"55060980": [36, 1, 255, 255, 16, 65]}, {"55060987": [4]}, {"55060992": [52, 68]}, {"55060996": [12, 16, 10, 177]}, {"55061004": [143, 191]}, {"55061007": [16, 39, 189]}, {"55061011": [24, 3, 224]}, {"55061015": [8]}, {"55061020": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061031": [164, 52, 8]}, {"55061036": [52, 137]}, {"55061040": [148, 170]}, {"55061044": [52, 1]}, {"55061047": [10, 21, 65]}, {"55061051": [14]}, {"55061056": [148, 171]}, {"55061059": [28, 52, 1]}, {"55061063": [16, 20, 65]}, {"55061067": [8]}, {"55061072": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061083": [4]}, {"55061088": [36, 2, 255, 255, 16]}, {"55061095": [21]}, {"55061100": [52, 8]}, {"55061103": [1, 49, 105]}, {"55061107": [31, 52, 1]}, {"55061111": [21, 21, 65]}, {"55061115": [12]}, {"55061120": [52, 1]}, {"55061123": [62, 16, 129]}, {"55061127": [7]}, {"55061132": [52, 1]}, {"55061135": [66, 16, 129]}, {"55061139": [4]}, {"55061144": [36, 2, 255, 255, 16]}, {"55061151": [7]}, {"55061156": [52, 8]}, {"55061159": [2, 144, 169, 1, 65]}, {"55061165": [2, 18]}, {"55061169": [72, 16, 37]}, {"55061173": [2, 18]}, {"55061177": [73, 16, 37, 3, 224]}, {"55061183": [8]}, {"55061188": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061203": [4, 141, 9]}, {"55061208": [17, 32]}, {"55061211": [5]}, {"55061217": [9, 82, 2, 21, 68, 255, 250]}, {"55061228": [49, 34]}, {"55061231": [255, 3, 224]}, {"55061235": [8]}, {"55061240": [39, 189, 255, 224, 175, 176]}, {"55061247": [16, 175, 177]}, {"55061251": [20, 175, 191]}, {"55061255": [24, 52, 130]}, {"55061260": [52, 80]}, {"55061264": [38, 8, 255, 128, 5]}, {"55061271": [18]}, {"55061276": [60, 17, 128, 64, 38, 49, 32, 32, 52, 9]}, {"55061287": [16, 1, 9]}, {"55061291": [24]}, {"55061294": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061312": [142, 40]}, {"55061315": [12, 1]}, {"55061318": [248, 9]}, {"55061324": [20, 80, 255, 239]}, {"55061332": [54, 35]}, {"55061336": [16]}, {"55061339": [2]}, {"55061344": [52, 3]}, {"55061348": [143, 176]}, {"55061351": [16, 143, 177]}, {"55061355": [20, 143, 191]}, {"55061359": [24, 39, 189]}, {"55061363": [32, 3, 224]}, {"55061367": [8]}, {"55061372": [140, 136, 29, 44, 52, 9]}, {"55061379": [1]}, {"55061381": [9, 78]}, {"55061384": [1, 9, 16, 36, 16, 64]}, {"55061391": [36]}, {"55061396": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55061411": [164, 52, 1]}, {"55061415": [61, 17, 129]}, {"55061419": [10]}, {"55061425": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55061435": [25]}, {"55061440": [52, 13]}, {"55061443": [1, 161, 141, 29, 40, 37, 74]}, {"55061451": [3, 16]}, {"55061455": [9]}, {"55061460": [52, 12]}, {"55061463": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55061479": [14]}, {"55061484": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 2, 1, 10, 64, 33, 129, 8]}, {"55061520": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061532": [52, 2]}, {"55061536": [3, 224]}, {"55061539": [8]}, {"55061544": [60, 8, 128, 64, 37, 8, 28]}, {"55061552": [129, 8]}, {"55061556": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061568": [3, 224]}, {"55061571": [8]}, {"55061576": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55061588": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061600": [3, 224]}, {"55061603": [8]}, {"55061608": [175, 164]}, {"55061611": [104, 175, 165]}, {"55061615": [108, 175, 166]}, {"55061619": [112, 175, 167]}, {"55061623": [116, 39, 189, 255, 232, 175, 163]}, {"55061631": [16, 175, 191]}, {"55061635": [20, 60, 8, 128, 64, 37, 8, 32, 16, 129, 8]}, {"55061648": [17]}, {"55061651": [14]}, {"55061656": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55061667": [1, 165, 42]}, {"55061672": [60, 9, 128, 65, 52, 10]}, {"55061679": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 63]}, {"55061708": [143, 163]}, {"55061711": [16, 143, 191]}, {"55061715": [20, 39, 189]}, {"55061719": [24, 143, 164]}, {"55061723": [104, 143, 165]}, {"55061727": [108, 143, 166]}, {"55061731": [112, 143, 167]}, {"55061735": [116, 132, 110, 19, 196, 3, 224]}, {"55061743": [8]}, {"55061748": [147, 25]}, {"55061751": [116, 52, 1]}, {"55061755": [255, 23, 33]}, {"55061759": [2]}, {"55061764": [52, 25]}, {"55061767": [44, 3, 224]}, {"55061771": [8, 167, 185]}, {"55061775": [154, 147, 44]}, {"55061779": [116, 52, 1]}, {"55061783": [255, 21, 129]}, {"55061787": [2]}, {"55061792": [52, 12]}, {"55061795": [44, 3, 224]}, {"55061799": [8]}, {"55061804": [145, 174]}, {"55061807": [116, 52, 1]}, {"55061811": [255, 21, 193]}, {"55061815": [2]}, {"55061820": [52, 14]}, {"55061823": [44, 3, 224]}, {"55061827": [8, 167, 174]}, {"55061831": [154, 145, 207]}, {"55061835": [116, 52, 1]}, {"55061839": [255, 21, 225]}, {"55061843": [2]}, {"55061848": [52, 15]}, {"55061851": [44, 3, 224]}, {"55061855": [8, 167, 175]}, {"55061859": [154, 60, 8, 128, 64, 37, 8, 32, 20, 142, 9]}, {"55061871": [104, 173, 9]}, {"55061876": [142, 9]}, {"55061879": [108, 173, 9]}, {"55061883": [4, 150, 9]}, {"55061887": [112, 165, 9]}, {"55061891": [8, 150, 9]}, {"55061895": [156, 165, 9]}, {"55061899": [10, 3, 224]}, {"55061903": [8, 142, 14]}, {"55061907": [4, 39, 189, 255, 224, 175, 176]}, {"55061915": [16, 175, 177]}, {"55061919": [20, 175, 191]}, {"55061923": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 20, 142, 8]}, {"55061943": [4, 17]}, {"55061947": [5]}, {"55061952": [12, 16, 11, 143]}, {"55061960": [16]}, {"55061963": [3]}, {"55061968": [12, 16, 11, 162]}, {"55061976": [12, 16, 11, 130, 52, 4]}, {"55061984": [12, 16, 11, 130, 52, 4]}, {"55061991": [1, 12, 16, 11, 130, 52, 4]}, {"55061999": [2, 143, 176]}, {"55062003": [16, 143, 177]}, {"55062007": [20, 143, 191]}, {"55062011": [24, 39, 189]}, {"55062015": [32, 3, 224]}, {"55062019": [8]}, {"55062024": [2, 4, 64, 33, 145, 9]}, {"55062031": [108, 52, 1]}, {"55062035": [255, 17, 33]}, {"55062039": [7]}, {"55062044": [2, 9, 72, 33, 145, 41]}, {"55062051": [116, 52, 1]}, {"55062055": [44, 17, 33]}, {"55062059": [2]}, {"55062064": [161, 9]}, {"55062067": [105, 3, 224]}, {"55062071": [8]}, {"55062076": [39, 189, 255, 232, 175, 191]}, {"55062083": [16, 142, 40]}, {"55062088": [174, 8]}, {"55062091": [64, 142, 40]}, {"55062095": [4, 174, 8]}, {"55062099": [68, 150, 40]}, {"55062103": [8, 166, 8]}, {"55062107": [72, 162]}, {"55062110": [15, 51, 146, 8]}, {"55062115": [74, 52, 1]}, {"55062119": [255, 21, 1]}, {"55062123": [3]}, {"55062128": [12, 16, 11, 176]}, {"55062136": [143, 191]}, {"55062139": [16, 39, 189]}, {"55062143": [24, 3, 224]}, {"55062147": [8]}, {"55062152": [142, 8]}, {"55062155": [64, 174, 8]}, {"55062159": [104, 142, 8]}, {"55062163": [68, 174, 8]}, {"55062167": [108, 150, 8]}, {"55062171": [72, 166, 8]}, {"55062175": [112, 146, 8]}, {"55062179": [104, 52, 1]}, {"55062183": [255, 21, 1]}, {"55062187": [3]}, {"55062192": [52, 8]}, {"55062195": [1, 162, 8, 15, 51, 3, 224]}, {"55062203": [8]}, {"55062208": [39, 189, 255, 232, 175, 191]}, {"55062215": [16, 150, 8]}, {"55062219": [156, 49, 8]}, {"55062223": [64, 17]}, {"55062227": [5]}, {"55062232": [150, 8]}, {"55062235": [112, 49, 8, 255, 15, 53, 8]}, {"55062243": [48, 166, 8]}, {"55062247": [112, 146, 40]}, {"55062251": [1, 162, 8]}, {"55062255": [105, 150, 40]}, {"55062259": [2, 166, 8]}, {"55062263": [106, 142, 40]}, {"55062267": [4, 174, 8]}, {"55062271": [108, 12, 16, 11, 202, 52, 4]}, {"55062280": [12, 16, 11, 202, 52, 4]}, {"55062287": [1, 12, 16, 11, 202, 52, 4]}, {"55062295": [2, 143, 191]}, {"55062299": [16, 39, 189]}, {"55062303": [24, 3, 224]}, {"55062307": [8]}, {"55062312": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 47, 212, 145, 10]}, {"55062327": [108, 52, 1]}, {"55062331": [255, 17, 65]}, {"55062335": [5]}, {"55062340": [1, 42, 72, 33, 145, 41]}, {"55062348": [21, 32]}, {"55062351": [28]}, {"55062356": [60, 9, 128, 64, 37, 41, 47, 199, 37, 41]}, {"55062367": [1, 145, 42]}, {"55062372": [17, 64]}, {"55062375": [19]}, {"55062380": [2, 10, 88, 33, 145, 107]}, {"55062387": [116, 52, 1]}, {"55062391": [255, 17, 97, 255, 248]}, {"55062400": [146, 12]}, {"55062403": [108, 17, 138, 255, 245]}, {"55062412": [146, 12]}, {"55062415": [109, 17, 138, 255, 242]}, {"55062424": [146, 12]}, {"55062427": [110, 17, 138, 255, 239]}, {"55062436": [161, 11]}, {"55062439": [105, 161, 10]}, {"55062443": [108, 16]}, {"55062447": [4]}, {"55062452": [52, 9]}, {"55062455": [255, 161, 9]}, {"55062459": [105, 161, 9]}, {"55062463": [108, 3, 224]}, {"55062467": [8]}, {"55062472": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55062485": [1, 1, 1, 1, 1]}, {"55062491": [1, 1, 1, 1, 1]}, {"55062497": [1]}, {"55062499": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55062509": [51, 8, 33, 32, 15]}, {"55062515": [71, 21, 234]}, {"55062519": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062531": [164]}, {"55062533": [15, 122, 3, 20, 64]}, {"55062539": [5, 52, 2, 72, 48, 21, 226]}, {"55062547": [7]}, {"55062552": [36, 25]}, {"55062555": [3, 16]}, {"55062559": [4, 52, 2, 99, 17, 21, 226]}, {"55062567": [2]}, {"55062572": [36, 25]}, {"55062575": [3, 3, 224]}, {"55062579": [8]}, {"55062584": [141, 173, 138, 160, 52, 2, 128]}, {"55062592": [16, 77]}, {"55062595": [2]}, {"55062600": [16]}, {"55062603": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55062619": [1, 16, 64]}, {"55062623": [2]}, {"55062628": [16]}, {"55062631": [2, 52, 2]}, {"55062635": [1, 161, 226, 28, 191, 3, 224]}, {"55062643": [8]}, {"55062649": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062663": [164]}, {"55062665": [15, 122, 3, 20, 64]}, {"55062671": [5, 52, 2, 72, 48, 21, 226]}, {"55062679": [7]}, {"55062684": [36, 25]}, {"55062687": [3, 16]}, {"55062691": [4, 52, 2, 99, 17, 21, 226]}, {"55062699": [2]}, {"55062704": [36, 25]}, {"55062707": [3, 3, 224]}, {"55062711": [8]}, {"55062716": [162, 37]}, {"55062719": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55062731": [4, 142, 10]}, {"55062736": [17, 64]}, {"55062739": [11]}, {"55062745": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55062757": [24, 194, 2, 23]}, {"55062763": [3, 49, 89]}, {"55062767": [255, 129, 234]}, {"55062772": [3, 42, 200, 37, 8, 16, 12, 50, 161, 249]}, {"55062784": [3, 224]}, {"55062787": [8]}] \ No newline at end of file +[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 70]}, {"11325064": [12, 16, 11, 47, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 11, 138]}, {"11427312": [12, 16, 12, 51]}, {"11431496": [12, 16, 11, 55, 1, 15, 192, 33]}, {"11562028": [12, 16, 12, 84]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 12, 67]}, {"11882076": [12, 16, 12, 32]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 11, 105, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 11, 112, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 11, 119, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 11, 98, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 14]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 9, 219]}, {"12427480": [12, 16, 9, 248]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 9, 252]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 11, 63, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 26]}, {"12491480": [12, 16, 10, 35]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 4]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 11, 126]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 140, 73]}, {"14149503": [164]}, {"14149512": [2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149856": [87]}, {"14149859": [15]}, {"14357459": [118]}, {"14624335": [118]}, {"14872723": [52]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 36, 152, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 36, 180, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 36, 220, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 4, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 44, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 84, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 112, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 140, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 168, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 28, 128, 64, 36, 144, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 20, 128, 64, 36, 144, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 20, 128, 64, 37, 220, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 20, 128, 64, 37, 220, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 20, 128, 64, 37, 220, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 20, 128, 64, 37, 248, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 20, 128, 64, 37, 248, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 20, 128, 64, 37, 248, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 20, 128, 64, 36, 144, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 20, 128, 64, 36, 144, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 38, 172, 128, 64, 36, 144, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 38, 204, 128, 64, 37, 196, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 38, 236, 128, 64, 36, 144, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 39, 20, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 39, 92, 128, 64, 39, 64, 3, 224]}, {"55059603": [8, 52, 162]}, {"55059608": [144, 136]}, {"55059611": [125, 52, 1]}, {"55059615": [255, 17, 1]}, {"55059619": [2, 52, 2]}, {"55059623": [8, 52, 2]}, {"55059627": [9, 3, 224]}, {"55059631": [8]}, {"55059636": [144, 136]}, {"55059639": [163, 49, 8]}, {"55059643": [192, 17]}, {"55059647": [5, 52, 2]}, {"55059651": [84, 52, 1]}, {"55059655": [64, 17, 1]}, {"55059659": [2, 52, 2]}, {"55059663": [53, 52, 2]}, {"55059667": [54, 3, 224]}, {"55059671": [8]}, {"55059676": [144, 136]}, {"55059679": [163, 49, 8]}, {"55059683": [24, 17]}, {"55059687": [5, 52, 2]}, {"55059691": [50, 52, 1]}, {"55059695": [8, 17, 1]}, {"55059699": [2, 52, 2]}, {"55059703": [51, 52, 2]}, {"55059707": [52, 3, 224]}, {"55059711": [8]}, {"55059716": [144, 136]}, {"55059719": [163, 49, 8]}, {"55059723": [3, 17]}, {"55059727": [5, 52, 2]}, {"55059731": [4, 52, 1]}, {"55059735": [1, 17, 1]}, {"55059739": [2, 52, 2]}, {"55059743": [48, 52, 2]}, {"55059747": [49, 3, 224]}, {"55059751": [8]}, {"55059756": [144, 136]}, {"55059759": [162, 49, 8]}, {"55059763": [192, 17]}, {"55059767": [5, 52, 2]}, {"55059771": [5, 52, 1]}, {"55059775": [64, 17, 1]}, {"55059779": [2, 52, 2]}, {"55059783": [96, 52, 2]}, {"55059787": [123, 3, 224]}, {"55059791": [8]}, {"55059796": [144, 136]}, {"55059799": [162, 49, 8]}, {"55059803": [48, 17]}, {"55059807": [2, 52, 2]}, {"55059811": [69, 52, 2]}, {"55059815": [70, 3, 224]}, {"55059819": [8]}, {"55059824": [144, 136]}, {"55059827": [162, 49, 8]}, {"55059831": [6, 17]}, {"55059835": [2, 52, 2]}, {"55059839": [55, 52, 2]}, {"55059843": [56, 3, 224]}, {"55059847": [8]}, {"55059852": [144, 136]}, {"55059855": [161, 49, 8]}, {"55059859": [32, 17]}, {"55059863": [2, 52, 2]}, {"55059867": [121, 52, 2]}, {"55059871": [122, 3, 224]}, {"55059875": [8]}, {"55059880": [144, 136]}, {"55059883": [161, 49, 8]}, {"55059887": [4, 17]}, {"55059891": [2, 52, 2]}, {"55059895": [119, 52, 2]}, {"55059899": [120, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [50, 17]}, {"55059915": [2, 52, 2]}, {"55059919": [192, 52, 2]}, {"55059923": [193, 3, 224]}, {"55059927": [8]}, {"55059932": [144, 136]}, {"55059935": [163, 49, 8]}, {"55059939": [3, 17]}, {"55059943": [2, 52, 2]}, {"55059947": [77, 52, 162]}, {"55059952": [3, 224]}, {"55059955": [8]}, {"55059960": [144, 136]}, {"55059963": [163, 49, 8]}, {"55059967": [24, 17]}, {"55059971": [2, 52, 2]}, {"55059975": [77, 52, 162]}, {"55059980": [3, 224]}, {"55059983": [8]}, {"55059988": [3, 224]}, {"55059991": [8]}, {"55059996": [52, 8]}, {"55059999": [1, 160, 136]}, {"55060003": [62, 3, 224]}, {"55060007": [8]}, {"55060012": [36, 136]}, {"55060015": [134, 36, 9, 255, 255, 37, 41]}, {"55060023": [1, 52, 1]}, {"55060027": [3]}, {"55060029": [41, 8, 42, 20, 32]}, {"55060035": [7]}, {"55060040": [1, 9, 80, 33, 145, 75]}, {"55060048": [52, 1]}, {"55060051": [255, 21, 97, 255, 247]}, {"55060060": [161, 69]}, {"55060064": [3, 224]}, {"55060067": [8]}, {"55060072": [36, 136]}, {"55060075": [168, 1, 6, 64, 33, 145, 9]}, {"55060084": [1, 37, 72, 37, 161, 9]}, {"55060092": [3, 224]}, {"55060095": [8]}, {"55060100": [36, 136]}, {"55060103": [188, 1, 5, 64, 33, 129, 9]}, {"55060112": [5, 33]}, {"55060115": [2]}, {"55060120": [52, 9]}, {"55060124": [37, 41]}, {"55060127": [1, 161, 9]}, {"55060132": [3, 224]}, {"55060135": [8]}, {"55060140": [52, 8]}, {"55060143": [1, 160, 136]}, {"55060147": [61, 52, 8]}, {"55060151": [20, 160, 136]}, {"55060155": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060167": [8]}, {"55060172": [52, 8]}, {"55060175": [1, 160, 136]}, {"55060179": [50, 160, 136]}, {"55060183": [58, 52, 8]}, {"55060187": [48, 164, 136, 19, 244, 160, 136]}, {"55060195": [51, 3, 224]}, {"55060199": [8]}, {"55060204": [52, 8]}, {"55060207": [2, 160, 136]}, {"55060211": [50, 52, 8]}, {"55060215": [1, 160, 136]}, {"55060219": [58, 160, 136]}, {"55060223": [60, 52, 8]}, {"55060227": [96, 164, 136, 19, 244, 160, 136]}, {"55060235": [51, 3, 224]}, {"55060239": [8]}, {"55060244": [144, 136]}, {"55060247": [124, 52, 1]}, {"55060251": [255, 17, 1]}, {"55060255": [6, 52, 2]}, {"55060259": [107, 144, 136]}, {"55060263": [148, 45, 8]}, {"55060267": [6, 17]}, {"55060271": [2, 52, 2]}, {"55060275": [106, 52, 2]}, {"55060279": [3, 3, 224]}, {"55060283": [8]}, {"55060288": [144, 136]}, {"55060291": [123, 52, 1]}, {"55060295": [255, 17, 1]}, {"55060299": [2, 52, 162]}, {"55060304": [52, 2]}, {"55060307": [12, 3, 224]}, {"55060311": [8]}, {"55060316": [52, 8]}, {"55060319": [7, 160, 136]}, {"55060323": [123, 3, 224]}, {"55060327": [8]}, {"55060332": [48, 132]}, {"55060335": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060347": [140, 16, 129]}, {"55060351": [22, 145, 2]}, {"55060355": [117, 52, 1]}, {"55060359": [141, 16, 129]}, {"55060363": [19, 145, 2]}, {"55060367": [117, 16, 128]}, {"55060371": [17, 145, 2]}, {"55060375": [116, 52, 1]}, {"55060379": [138, 16, 129]}, {"55060383": [14, 145, 2]}, {"55060387": [116, 52, 1]}, {"55060391": [139, 16, 129]}, {"55060395": [11, 145, 2]}, {"55060399": [116, 52, 1]}, {"55060403": [88, 16, 129]}, {"55060407": [8, 52, 2]}, {"55060412": [52, 1]}, {"55060415": [120, 16, 129]}, {"55060419": [5, 52, 2]}, {"55060424": [52, 1]}, {"55060427": [121, 16, 129]}, {"55060431": [2, 52, 2]}, {"55060436": [52, 2]}, {"55060439": [255, 3, 224]}, {"55060443": [8]}, {"55060448": [143, 166]}, {"55060451": [48, 132, 197]}, {"55060455": [4, 8, 16, 10]}, {"55060464": [143, 185]}, {"55060467": [44, 135, 37]}, {"55060471": [4, 8, 16, 10]}, {"55060480": [60, 10, 128, 64, 37, 74, 32, 4, 141, 75]}, {"55060491": [12, 17, 96]}, {"55060495": [2]}, {"55060500": [149, 69]}, {"55060503": [4, 60, 10, 128, 64, 37, 74, 32, 20, 161, 64]}, {"55060516": [60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060528": [3, 224]}, {"55060531": [8]}, {"55060536": [60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55060547": [12, 17, 32]}, {"55060551": [2]}, {"55060556": [129, 3]}, {"55060559": [2]}, {"55060561": [3, 15, 195]}, {"55060565": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55060579": [8]}, {"55060584": [144, 69]}, {"55060587": [3, 60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55060599": [12, 17, 32]}, {"55060603": [2]}, {"55060608": [145, 5]}, {"55060611": [3, 3, 224]}, {"55060615": [8]}, {"55060620": [143, 162]}, {"55060623": [36, 144, 69]}, {"55060628": [60, 8, 128, 64, 37, 8, 32]}, {"55060636": [133, 9]}, {"55060639": [2, 17, 32]}, {"55060643": [4, 52, 10]}, {"55060647": [1, 165, 10]}, {"55060652": [16]}, {"55060655": [24, 52, 5]}, {"55060659": [65, 60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55060671": [12, 17, 32]}, {"55060675": [19]}, {"55060680": [145, 5]}, {"55060683": [1, 175, 164]}, {"55060688": [175, 165]}, {"55060691": [4, 175, 166]}, {"55060695": [8, 39, 189, 255, 232, 175, 191]}, {"55060703": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55060715": [6, 145, 6]}, {"55060719": [7, 141, 9]}, {"55060723": [8, 1, 32, 248, 9]}, {"55060732": [143, 191]}, {"55060735": [16, 39, 189]}, {"55060739": [24, 143, 164]}, {"55060744": [143, 165]}, {"55060747": [4, 143, 166]}, {"55060751": [8, 3, 224]}, {"55060755": [8]}, {"55060760": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55060771": [16, 175, 163]}, {"55060775": [20, 175, 191]}, {"55060779": [24, 12, 16, 10, 83]}, {"55060788": [143, 162]}, {"55060791": [16, 143, 163]}, {"55060795": [20, 143, 191]}, {"55060799": [24, 39, 189]}, {"55060803": [32, 3, 224]}, {"55060807": [8]}, {"55060812": [39, 189, 255, 232, 175, 191]}, {"55060819": [16, 60, 8, 128, 64, 37, 8, 32, 4, 173]}, {"55060832": [173]}, {"55060835": [4, 173]}, {"55060839": [8, 173]}, {"55060843": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55060859": [42]}, {"55060865": [9, 15, 195, 1, 33, 32, 38]}, {"55060873": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 141]}, {"55060888": [4, 64]}, {"55060891": [34]}, {"55060896": [52, 68]}, {"55060900": [12, 16, 10, 227]}, {"55060908": [16, 96]}, {"55060911": [12]}, {"55060916": [60, 8, 128, 64, 37, 8, 32, 4, 140, 105]}, {"55060928": [173, 9]}, {"55060932": [140, 105]}, {"55060935": [4, 173, 9]}, {"55060939": [4, 140, 105]}, {"55060943": [8, 173, 9]}, {"55060947": [8, 52, 9]}, {"55060951": [1, 173, 9]}, {"55060955": [12, 144, 98]}, {"55060960": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55060976": [52, 1]}, {"55060979": [10, 21, 65]}, {"55060983": [6]}, {"55060988": [149, 42]}, {"55060991": [28, 49, 74, 240, 31]}, {"55060997": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061007": [28, 129, 9, 4, 36, 5, 33]}, {"55061015": [2]}, {"55061021": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061031": [16, 39, 189]}, {"55061035": [24, 3, 224]}, {"55061039": [8]}, {"55061044": [39, 189, 255, 232, 175, 191]}, {"55061051": [16, 12, 16, 10, 155]}, {"55061060": [36, 1, 255, 255, 16, 65]}, {"55061067": [4]}, {"55061072": [52, 68]}, {"55061076": [12, 16, 10, 197]}, {"55061084": [143, 191]}, {"55061087": [16, 39, 189]}, {"55061091": [24, 3, 224]}, {"55061095": [8]}, {"55061100": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061111": [164, 52, 8]}, {"55061116": [52, 137]}, {"55061120": [148, 170]}, {"55061124": [52, 1]}, {"55061127": [10, 21, 65]}, {"55061131": [14]}, {"55061136": [148, 171]}, {"55061139": [28, 52, 1]}, {"55061143": [16, 20, 65]}, {"55061147": [8]}, {"55061152": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061163": [4]}, {"55061168": [36, 2, 255, 255, 16]}, {"55061175": [21]}, {"55061180": [52, 8]}, {"55061183": [1, 49, 105]}, {"55061187": [31, 52, 1]}, {"55061191": [21, 21, 65]}, {"55061195": [12]}, {"55061200": [52, 1]}, {"55061203": [62, 16, 129]}, {"55061207": [7]}, {"55061212": [52, 1]}, {"55061215": [66, 16, 129]}, {"55061219": [4]}, {"55061224": [36, 2, 255, 255, 16]}, {"55061231": [7]}, {"55061236": [52, 8]}, {"55061239": [2, 144, 169, 1, 65]}, {"55061245": [2, 18]}, {"55061249": [72, 16, 37]}, {"55061253": [2, 18]}, {"55061257": [73, 16, 37, 3, 224]}, {"55061263": [8]}, {"55061268": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061283": [4, 141, 9]}, {"55061288": [17, 32]}, {"55061291": [22]}, {"55061297": [9, 82, 2, 49, 75, 252]}, {"55061305": [11, 90, 130, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061328": [49, 34]}, {"55061331": [255, 60, 8, 128, 18, 37, 8, 165, 208, 161, 11, 20, 7, 60, 9, 128, 64, 37, 41, 32]}, {"55061352": [60, 12, 128, 64, 37, 140, 28]}, {"55061360": [129, 140]}, {"55061364": [17, 108]}, {"55061367": [3, 165, 32]}, {"55061371": [2, 161, 43]}, {"55061375": [2, 161, 34]}, {"55061379": [3, 3, 224]}, {"55061383": [8]}, {"55061388": [39, 189, 255, 224, 175, 176]}, {"55061395": [16, 175, 177]}, {"55061399": [20, 175, 191]}, {"55061403": [24, 52, 130]}, {"55061408": [52, 80]}, {"55061412": [38, 8, 255, 128, 5]}, {"55061419": [18]}, {"55061424": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55061435": [16, 1, 9]}, {"55061439": [24]}, {"55061442": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061460": [142, 40]}, {"55061463": [12, 1]}, {"55061466": [248, 9]}, {"55061472": [20, 80, 255, 239]}, {"55061480": [54, 35]}, {"55061484": [16]}, {"55061487": [2]}, {"55061492": [52, 3]}, {"55061496": [143, 176]}, {"55061499": [16, 143, 177]}, {"55061503": [20, 143, 191]}, {"55061507": [24, 39, 189]}, {"55061511": [32, 3, 224]}, {"55061515": [8]}, {"55061520": [140, 136, 29, 44, 52, 9]}, {"55061527": [1]}, {"55061529": [9, 78]}, {"55061532": [1, 9, 16, 36, 16, 64]}, {"55061539": [36]}, {"55061544": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55061559": [164, 52, 1]}, {"55061563": [61, 17, 129]}, {"55061567": [10]}, {"55061573": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55061583": [25]}, {"55061588": [52, 13]}, {"55061591": [1, 161, 141, 29, 40, 37, 74]}, {"55061599": [3, 16]}, {"55061603": [9]}, {"55061608": [52, 12]}, {"55061611": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55061627": [14]}, {"55061632": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55061668": [60, 9, 128, 64, 37, 41, 32, 20, 161, 40]}, {"55061680": [52, 2]}, {"55061684": [3, 224]}, {"55061687": [8]}, {"55061692": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55061704": [60, 9, 128, 64, 37, 41, 32, 20, 161, 40]}, {"55061716": [3, 224]}, {"55061719": [8]}, {"55061724": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55061736": [60, 9, 128, 64, 37, 41, 32, 20, 161, 40]}, {"55061748": [3, 224]}, {"55061751": [8]}, {"55061756": [175, 164]}, {"55061759": [104, 175, 165]}, {"55061763": [108, 175, 166]}, {"55061767": [112, 175, 167]}, {"55061771": [116, 39, 189, 255, 232, 175, 163]}, {"55061779": [16, 175, 191]}, {"55061783": [20, 60, 8, 128, 64, 37, 8, 32, 20, 129, 8]}, {"55061796": [17]}, {"55061799": [14]}, {"55061804": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55061815": [1, 165, 42]}, {"55061820": [60, 9, 128, 65, 52, 10]}, {"55061827": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 83]}, {"55061856": [143, 163]}, {"55061859": [16, 143, 191]}, {"55061863": [20, 39, 189]}, {"55061867": [24, 143, 164]}, {"55061871": [104, 143, 165]}, {"55061875": [108, 143, 166]}, {"55061879": [112, 143, 167]}, {"55061883": [116, 132, 110, 19, 196, 3, 224]}, {"55061891": [8]}, {"55061896": [147, 25]}, {"55061899": [116, 52, 1]}, {"55061903": [255, 23, 33]}, {"55061907": [2]}, {"55061912": [52, 25]}, {"55061915": [44, 3, 224]}, {"55061919": [8, 167, 185]}, {"55061923": [154, 147, 44]}, {"55061927": [116, 52, 1]}, {"55061931": [255, 21, 129]}, {"55061935": [2]}, {"55061940": [52, 12]}, {"55061943": [44, 3, 224]}, {"55061947": [8]}, {"55061952": [145, 174]}, {"55061955": [116, 52, 1]}, {"55061959": [255, 21, 193]}, {"55061963": [2]}, {"55061968": [52, 14]}, {"55061971": [44, 3, 224]}, {"55061975": [8, 167, 174]}, {"55061979": [154, 145, 207]}, {"55061983": [116, 52, 1]}, {"55061987": [255, 21, 225]}, {"55061991": [2]}, {"55061996": [52, 15]}, {"55061999": [44, 3, 224]}, {"55062003": [8, 167, 175]}, {"55062007": [154, 60, 8, 128, 64, 37, 8, 32, 24, 142, 9]}, {"55062019": [104, 173, 9]}, {"55062024": [142, 9]}, {"55062027": [108, 173, 9]}, {"55062031": [4, 150, 9]}, {"55062035": [112, 165, 9]}, {"55062039": [8, 150, 9]}, {"55062043": [156, 165, 9]}, {"55062047": [10, 3, 224]}, {"55062051": [8, 142, 14]}, {"55062055": [4, 39, 189, 255, 224, 175, 176]}, {"55062063": [16, 175, 177]}, {"55062067": [20, 175, 191]}, {"55062071": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 24, 142, 8]}, {"55062091": [4, 17]}, {"55062095": [5]}, {"55062100": [12, 16, 11, 180]}, {"55062108": [16]}, {"55062111": [3]}, {"55062116": [12, 16, 11, 199]}, {"55062124": [12, 16, 11, 167, 52, 4]}, {"55062132": [12, 16, 11, 167, 52, 4]}, {"55062139": [1, 12, 16, 11, 167, 52, 4]}, {"55062147": [2, 143, 176]}, {"55062151": [16, 143, 177]}, {"55062155": [20, 143, 191]}, {"55062159": [24, 39, 189]}, {"55062163": [32, 3, 224]}, {"55062167": [8]}, {"55062172": [2, 4, 64, 33, 145, 9]}, {"55062179": [108, 52, 1]}, {"55062183": [255, 17, 33]}, {"55062187": [7]}, {"55062192": [2, 9, 72, 33, 145, 41]}, {"55062199": [116, 52, 1]}, {"55062203": [44, 17, 33]}, {"55062207": [2]}, {"55062212": [161, 9]}, {"55062215": [105, 3, 224]}, {"55062219": [8]}, {"55062224": [39, 189, 255, 232, 175, 191]}, {"55062231": [16, 142, 40]}, {"55062236": [174, 8]}, {"55062239": [64, 142, 40]}, {"55062243": [4, 174, 8]}, {"55062247": [68, 150, 40]}, {"55062251": [8, 166, 8]}, {"55062255": [72, 162]}, {"55062258": [15, 51, 146, 8]}, {"55062263": [74, 52, 1]}, {"55062267": [255, 21, 1]}, {"55062271": [3]}, {"55062276": [12, 16, 11, 213]}, {"55062284": [143, 191]}, {"55062287": [16, 39, 189]}, {"55062291": [24, 3, 224]}, {"55062295": [8]}, {"55062300": [142, 8]}, {"55062303": [64, 174, 8]}, {"55062307": [104, 142, 8]}, {"55062311": [68, 174, 8]}, {"55062315": [108, 150, 8]}, {"55062319": [72, 166, 8]}, {"55062323": [112, 146, 8]}, {"55062327": [104, 52, 1]}, {"55062331": [255, 21, 1]}, {"55062335": [3]}, {"55062340": [52, 8]}, {"55062343": [1, 162, 8, 15, 51, 3, 224]}, {"55062351": [8]}, {"55062356": [39, 189, 255, 232, 175, 191]}, {"55062363": [16, 150, 8]}, {"55062367": [156, 49, 8]}, {"55062371": [64, 17]}, {"55062375": [5]}, {"55062380": [150, 8]}, {"55062383": [112, 49, 8, 255, 15, 53, 8]}, {"55062391": [48, 166, 8]}, {"55062395": [112, 146, 40]}, {"55062399": [1, 162, 8]}, {"55062403": [105, 150, 40]}, {"55062407": [2, 166, 8]}, {"55062411": [106, 142, 40]}, {"55062415": [4, 174, 8]}, {"55062419": [108, 12, 16, 11, 239, 52, 4]}, {"55062428": [12, 16, 11, 239, 52, 4]}, {"55062435": [1, 12, 16, 11, 239, 52, 4]}, {"55062443": [2, 143, 191]}, {"55062447": [16, 39, 189]}, {"55062451": [24, 3, 224]}, {"55062455": [8]}, {"55062460": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 48, 104, 145, 10]}, {"55062475": [108, 52, 1]}, {"55062479": [255, 17, 65]}, {"55062483": [5]}, {"55062488": [1, 42, 72, 33, 145, 41]}, {"55062496": [21, 32]}, {"55062499": [28]}, {"55062504": [60, 9, 128, 64, 37, 41, 48, 91, 37, 41]}, {"55062515": [1, 145, 42]}, {"55062520": [17, 64]}, {"55062523": [19]}, {"55062528": [2, 10, 88, 33, 145, 107]}, {"55062535": [116, 52, 1]}, {"55062539": [255, 17, 97, 255, 248]}, {"55062548": [146, 12]}, {"55062551": [108, 17, 138, 255, 245]}, {"55062560": [146, 12]}, {"55062563": [109, 17, 138, 255, 242]}, {"55062572": [146, 12]}, {"55062575": [110, 17, 138, 255, 239]}, {"55062584": [161, 11]}, {"55062587": [105, 161, 10]}, {"55062591": [108, 16]}, {"55062595": [4]}, {"55062600": [52, 9]}, {"55062603": [255, 161, 9]}, {"55062607": [105, 161, 9]}, {"55062611": [108, 3, 224]}, {"55062615": [8]}, {"55062620": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55062633": [1, 1, 1, 1, 1]}, {"55062639": [1, 1, 1, 1, 1]}, {"55062645": [1]}, {"55062647": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55062657": [51, 8, 33, 32, 15]}, {"55062663": [71, 21, 234]}, {"55062667": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062679": [164]}, {"55062681": [15, 122, 3, 20, 64]}, {"55062687": [5, 52, 2, 72, 48, 21, 226]}, {"55062695": [7]}, {"55062700": [36, 25]}, {"55062703": [3, 16]}, {"55062707": [4, 52, 2, 99, 17, 21, 226]}, {"55062715": [2]}, {"55062720": [36, 25]}, {"55062723": [3, 3, 224]}, {"55062727": [8]}, {"55062732": [141, 173, 138, 160, 52, 2, 128]}, {"55062740": [16, 77]}, {"55062743": [2]}, {"55062748": [16]}, {"55062751": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55062767": [1, 16, 64]}, {"55062771": [2]}, {"55062776": [16]}, {"55062779": [2, 52, 2]}, {"55062783": [1, 161, 226, 28, 191, 3, 224]}, {"55062791": [8]}, {"55062797": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062811": [164]}, {"55062813": [15, 122, 3, 20, 64]}, {"55062819": [5, 52, 2, 72, 48, 21, 226]}, {"55062827": [7]}, {"55062832": [36, 25]}, {"55062835": [3, 16]}, {"55062839": [4, 52, 2, 99, 17, 21, 226]}, {"55062847": [2]}, {"55062852": [36, 25]}, {"55062855": [3, 3, 224]}, {"55062859": [8]}, {"55062864": [162, 37]}, {"55062867": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55062879": [4, 142, 10]}, {"55062884": [17, 64]}, {"55062887": [11]}, {"55062893": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55062905": [24, 194, 2, 23]}, {"55062911": [3, 49, 89]}, {"55062915": [255, 129, 234]}, {"55062920": [3, 42, 200, 37, 8, 16, 12, 87, 161, 249]}, {"55062932": [3, 224]}, {"55062935": [8]}] \ No newline at end of file diff --git a/version.py b/version.py index 8bbaa1477..8bb3cd4ae 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.12.12 f.LUM' \ No newline at end of file +__version__ = '2.12.13 f.LUM' \ No newline at end of file From a379c65ec6e3a51e1ea748d392facb56ac856562 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Wed, 18 Jul 2018 03:50:20 -0400 Subject: [PATCH 170/755] Fixed keysanity and tokensanity for coop --- ASM/src/item_overrides.asm | 21 ++++++++++++++++++++- Fill.py | 3 ++- ItemList.py | 2 +- data/base2current.json | 6 +----- version.py | 2 +- 5 files changed, 25 insertions(+), 9 deletions(-) diff --git a/ASM/src/item_overrides.asm b/ASM/src/item_overrides.asm index 875f9ff84..318f1cbed 100755 --- a/ASM/src/item_overrides.asm +++ b/ASM/src/item_overrides.asm @@ -56,6 +56,15 @@ override_skulltula_token: beqz v1, @@not_extended sw v1, 0x1C (sp) + ; check if item is for this player + li t0, PLAYER_OVERRIDE_DATA + lh t1, 0x02(t0) + beqz t1, @@extended_effect ; if item is pending player override + li t2, 0x01 + b @@no_extended_effect + sh t2, 0x00(t0) ; set override collected flag + +@@extended_effect: ; Run effect function li a0, SAVE_CONTEXT lbu a1, ITEM_ROW_EFFECT_ARG1 (v1) @@ -64,6 +73,7 @@ override_skulltula_token: jalr t1 nop +@@no_extended_effect: ; message id is in the extended item table lw v1, 0x1C (sp) lbu a1, ITEM_ROW_TEXT_ID (v1) @@ -77,9 +87,18 @@ override_skulltula_token: mult v0, t2 ; mflo t2 ; t2 = offset into get item table addu s0, t1, t2 ; s0 = pointer to table entry + lb a1, 0x0 (s0) ; a1 = item id + ; check if item is for this player + li t0, PLAYER_OVERRIDE_DATA + lh t1, 0x02(t0) + beqz t1, @@item_effect ; if item is pending player override + li t2, 0x01 + sh t2, 0x00(t0) ; set override collected flag + li a1, 0x41 ; a1 = 0x41 (No item) + +@@item_effect: ; give the item - lb a1, 0x0 (s0) ; a1 = item id jal 0x0006fdcc ; call ex_06fdcc(ctx, item); this gives link the item move a0,s1 ; a0 = ctx diff --git a/Fill.py b/Fill.py index 69123972f..5c227b4b3 100644 --- a/Fill.py +++ b/Fill.py @@ -32,7 +32,8 @@ def distribute_items_restrictive(worlds, fill_locations=None): # for now if worlds[0].keysanity: # add dungeon items to main pool - itempool.extend([item for world in worlds for item in world.get_dungeon_items()]) + progitempool.extend([item for world in worlds for item in world.get_dungeon_items()]) + random.shuffle(progitempool) else: # place dungeon items random.shuffle(fill_locations) diff --git a/ItemList.py b/ItemList.py index d037ad9ac..b5e96fa39 100644 --- a/ItemList.py +++ b/ItemList.py @@ -51,7 +51,7 @@ def generate_itempool(world): # set up item pool (pool, placed_items) = get_pool_core(world) world.itempool = ItemFactory(pool) - for (location, item) in placed_items: + for (location, item) in placed_items.items(): world.push_item(location, ItemFactory(item)) choose_trials(world) diff --git a/data/base2current.json b/data/base2current.json index a8ec5c3f3..ae4691206 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -1,5 +1 @@ -<<<<<<< HEAD -[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 70]}, {"11325064": [12, 16, 11, 47, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 11, 138]}, {"11427312": [12, 16, 12, 51]}, {"11431496": [12, 16, 11, 55, 1, 15, 192, 33]}, {"11562028": [12, 16, 12, 84]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 12, 67]}, {"11882076": [12, 16, 12, 32]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 11, 105, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 11, 112, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 11, 119, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 11, 98, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 14]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 9, 219]}, {"12427480": [12, 16, 9, 248]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 9, 252]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 11, 63, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 26]}, {"12491480": [12, 16, 10, 35]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 4]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 11, 126]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 140, 73]}, {"14149503": [164]}, {"14149512": [2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149856": [87]}, {"14149859": [15]}, {"14357459": [118]}, {"14624335": [118]}, {"14872723": [52]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 36, 152, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 36, 180, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 36, 220, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 4, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 44, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 84, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 112, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 140, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 168, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 28, 128, 64, 36, 144, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 20, 128, 64, 36, 144, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 20, 128, 64, 37, 220, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 20, 128, 64, 37, 220, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 20, 128, 64, 37, 220, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 20, 128, 64, 37, 248, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 20, 128, 64, 37, 248, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 20, 128, 64, 37, 248, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 20, 128, 64, 36, 144, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 20, 128, 64, 36, 144, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 38, 172, 128, 64, 36, 144, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 38, 204, 128, 64, 37, 196, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 38, 236, 128, 64, 36, 144, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 39, 20, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 39, 92, 128, 64, 39, 64, 3, 224]}, {"55059603": [8, 52, 162]}, {"55059608": [144, 136]}, {"55059611": [125, 52, 1]}, {"55059615": [255, 17, 1]}, {"55059619": [2, 52, 2]}, {"55059623": [8, 52, 2]}, {"55059627": [9, 3, 224]}, {"55059631": [8]}, {"55059636": [144, 136]}, {"55059639": [163, 49, 8]}, {"55059643": [192, 17]}, {"55059647": [5, 52, 2]}, {"55059651": [84, 52, 1]}, {"55059655": [64, 17, 1]}, {"55059659": [2, 52, 2]}, {"55059663": [53, 52, 2]}, {"55059667": [54, 3, 224]}, {"55059671": [8]}, {"55059676": [144, 136]}, {"55059679": [163, 49, 8]}, {"55059683": [24, 17]}, {"55059687": [5, 52, 2]}, {"55059691": [50, 52, 1]}, {"55059695": [8, 17, 1]}, {"55059699": [2, 52, 2]}, {"55059703": [51, 52, 2]}, {"55059707": [52, 3, 224]}, {"55059711": [8]}, {"55059716": [144, 136]}, {"55059719": [163, 49, 8]}, {"55059723": [3, 17]}, {"55059727": [5, 52, 2]}, {"55059731": [4, 52, 1]}, {"55059735": [1, 17, 1]}, {"55059739": [2, 52, 2]}, {"55059743": [48, 52, 2]}, {"55059747": [49, 3, 224]}, {"55059751": [8]}, {"55059756": [144, 136]}, {"55059759": [162, 49, 8]}, {"55059763": [192, 17]}, {"55059767": [5, 52, 2]}, {"55059771": [5, 52, 1]}, {"55059775": [64, 17, 1]}, {"55059779": [2, 52, 2]}, {"55059783": [96, 52, 2]}, {"55059787": [123, 3, 224]}, {"55059791": [8]}, {"55059796": [144, 136]}, {"55059799": [162, 49, 8]}, {"55059803": [48, 17]}, {"55059807": [2, 52, 2]}, {"55059811": [69, 52, 2]}, {"55059815": [70, 3, 224]}, {"55059819": [8]}, {"55059824": [144, 136]}, {"55059827": [162, 49, 8]}, {"55059831": [6, 17]}, {"55059835": [2, 52, 2]}, {"55059839": [55, 52, 2]}, {"55059843": [56, 3, 224]}, {"55059847": [8]}, {"55059852": [144, 136]}, {"55059855": [161, 49, 8]}, {"55059859": [32, 17]}, {"55059863": [2, 52, 2]}, {"55059867": [121, 52, 2]}, {"55059871": [122, 3, 224]}, {"55059875": [8]}, {"55059880": [144, 136]}, {"55059883": [161, 49, 8]}, {"55059887": [4, 17]}, {"55059891": [2, 52, 2]}, {"55059895": [119, 52, 2]}, {"55059899": [120, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [50, 17]}, {"55059915": [2, 52, 2]}, {"55059919": [192, 52, 2]}, {"55059923": [193, 3, 224]}, {"55059927": [8]}, {"55059932": [144, 136]}, {"55059935": [163, 49, 8]}, {"55059939": [3, 17]}, {"55059943": [2, 52, 2]}, {"55059947": [77, 52, 162]}, {"55059952": [3, 224]}, {"55059955": [8]}, {"55059960": [144, 136]}, {"55059963": [163, 49, 8]}, {"55059967": [24, 17]}, {"55059971": [2, 52, 2]}, {"55059975": [77, 52, 162]}, {"55059980": [3, 224]}, {"55059983": [8]}, {"55059988": [3, 224]}, {"55059991": [8]}, {"55059996": [52, 8]}, {"55059999": [1, 160, 136]}, {"55060003": [62, 3, 224]}, {"55060007": [8]}, {"55060012": [36, 136]}, {"55060015": [134, 36, 9, 255, 255, 37, 41]}, {"55060023": [1, 52, 1]}, {"55060027": [3]}, {"55060029": [41, 8, 42, 20, 32]}, {"55060035": [7]}, {"55060040": [1, 9, 80, 33, 145, 75]}, {"55060048": [52, 1]}, {"55060051": [255, 21, 97, 255, 247]}, {"55060060": [161, 69]}, {"55060064": [3, 224]}, {"55060067": [8]}, {"55060072": [36, 136]}, {"55060075": [168, 1, 6, 64, 33, 145, 9]}, {"55060084": [1, 37, 72, 37, 161, 9]}, {"55060092": [3, 224]}, {"55060095": [8]}, {"55060100": [36, 136]}, {"55060103": [188, 1, 5, 64, 33, 129, 9]}, {"55060112": [5, 33]}, {"55060115": [2]}, {"55060120": [52, 9]}, {"55060124": [37, 41]}, {"55060127": [1, 161, 9]}, {"55060132": [3, 224]}, {"55060135": [8]}, {"55060140": [52, 8]}, {"55060143": [1, 160, 136]}, {"55060147": [61, 52, 8]}, {"55060151": [20, 160, 136]}, {"55060155": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060167": [8]}, {"55060172": [52, 8]}, {"55060175": [1, 160, 136]}, {"55060179": [50, 160, 136]}, {"55060183": [58, 52, 8]}, {"55060187": [48, 164, 136, 19, 244, 160, 136]}, {"55060195": [51, 3, 224]}, {"55060199": [8]}, {"55060204": [52, 8]}, {"55060207": [2, 160, 136]}, {"55060211": [50, 52, 8]}, {"55060215": [1, 160, 136]}, {"55060219": [58, 160, 136]}, {"55060223": [60, 52, 8]}, {"55060227": [96, 164, 136, 19, 244, 160, 136]}, {"55060235": [51, 3, 224]}, {"55060239": [8]}, {"55060244": [144, 136]}, {"55060247": [124, 52, 1]}, {"55060251": [255, 17, 1]}, {"55060255": [6, 52, 2]}, {"55060259": [107, 144, 136]}, {"55060263": [148, 45, 8]}, {"55060267": [6, 17]}, {"55060271": [2, 52, 2]}, {"55060275": [106, 52, 2]}, {"55060279": [3, 3, 224]}, {"55060283": [8]}, {"55060288": [144, 136]}, {"55060291": [123, 52, 1]}, {"55060295": [255, 17, 1]}, {"55060299": [2, 52, 162]}, {"55060304": [52, 2]}, {"55060307": [12, 3, 224]}, {"55060311": [8]}, {"55060316": [52, 8]}, {"55060319": [7, 160, 136]}, {"55060323": [123, 3, 224]}, {"55060327": [8]}, {"55060332": [48, 132]}, {"55060335": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060347": [140, 16, 129]}, {"55060351": [22, 145, 2]}, {"55060355": [117, 52, 1]}, {"55060359": [141, 16, 129]}, {"55060363": [19, 145, 2]}, {"55060367": [117, 16, 128]}, {"55060371": [17, 145, 2]}, {"55060375": [116, 52, 1]}, {"55060379": [138, 16, 129]}, {"55060383": [14, 145, 2]}, {"55060387": [116, 52, 1]}, {"55060391": [139, 16, 129]}, {"55060395": [11, 145, 2]}, {"55060399": [116, 52, 1]}, {"55060403": [88, 16, 129]}, {"55060407": [8, 52, 2]}, {"55060412": [52, 1]}, {"55060415": [120, 16, 129]}, {"55060419": [5, 52, 2]}, {"55060424": [52, 1]}, {"55060427": [121, 16, 129]}, {"55060431": [2, 52, 2]}, {"55060436": [52, 2]}, {"55060439": [255, 3, 224]}, {"55060443": [8]}, {"55060448": [143, 166]}, {"55060451": [48, 132, 197]}, {"55060455": [4, 8, 16, 10]}, {"55060464": [143, 185]}, {"55060467": [44, 135, 37]}, {"55060471": [4, 8, 16, 10]}, {"55060480": [60, 10, 128, 64, 37, 74, 32, 4, 141, 75]}, {"55060491": [12, 17, 96]}, {"55060495": [2]}, {"55060500": [149, 69]}, {"55060503": [4, 60, 10, 128, 64, 37, 74, 32, 20, 161, 64]}, {"55060516": [60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060528": [3, 224]}, {"55060531": [8]}, {"55060536": [60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55060547": [12, 17, 32]}, {"55060551": [2]}, {"55060556": [129, 3]}, {"55060559": [2]}, {"55060561": [3, 15, 195]}, {"55060565": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55060579": [8]}, {"55060584": [144, 69]}, {"55060587": [3, 60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55060599": [12, 17, 32]}, {"55060603": [2]}, {"55060608": [145, 5]}, {"55060611": [3, 3, 224]}, {"55060615": [8]}, {"55060620": [143, 162]}, {"55060623": [36, 144, 69]}, {"55060628": [60, 8, 128, 64, 37, 8, 32]}, {"55060636": [133, 9]}, {"55060639": [2, 17, 32]}, {"55060643": [4, 52, 10]}, {"55060647": [1, 165, 10]}, {"55060652": [16]}, {"55060655": [24, 52, 5]}, {"55060659": [65, 60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55060671": [12, 17, 32]}, {"55060675": [19]}, {"55060680": [145, 5]}, {"55060683": [1, 175, 164]}, {"55060688": [175, 165]}, {"55060691": [4, 175, 166]}, {"55060695": [8, 39, 189, 255, 232, 175, 191]}, {"55060703": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55060715": [6, 145, 6]}, {"55060719": [7, 141, 9]}, {"55060723": [8, 1, 32, 248, 9]}, {"55060732": [143, 191]}, {"55060735": [16, 39, 189]}, {"55060739": [24, 143, 164]}, {"55060744": [143, 165]}, {"55060747": [4, 143, 166]}, {"55060751": [8, 3, 224]}, {"55060755": [8]}, {"55060760": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55060771": [16, 175, 163]}, {"55060775": [20, 175, 191]}, {"55060779": [24, 12, 16, 10, 83]}, {"55060788": [143, 162]}, {"55060791": [16, 143, 163]}, {"55060795": [20, 143, 191]}, {"55060799": [24, 39, 189]}, {"55060803": [32, 3, 224]}, {"55060807": [8]}, {"55060812": [39, 189, 255, 232, 175, 191]}, {"55060819": [16, 60, 8, 128, 64, 37, 8, 32, 4, 173]}, {"55060832": [173]}, {"55060835": [4, 173]}, {"55060839": [8, 173]}, {"55060843": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55060859": [42]}, {"55060865": [9, 15, 195, 1, 33, 32, 38]}, {"55060873": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 141]}, {"55060888": [4, 64]}, {"55060891": [34]}, {"55060896": [52, 68]}, {"55060900": [12, 16, 10, 227]}, {"55060908": [16, 96]}, {"55060911": [12]}, {"55060916": [60, 8, 128, 64, 37, 8, 32, 4, 140, 105]}, {"55060928": [173, 9]}, {"55060932": [140, 105]}, {"55060935": [4, 173, 9]}, {"55060939": [4, 140, 105]}, {"55060943": [8, 173, 9]}, {"55060947": [8, 52, 9]}, {"55060951": [1, 173, 9]}, {"55060955": [12, 144, 98]}, {"55060960": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55060976": [52, 1]}, {"55060979": [10, 21, 65]}, {"55060983": [6]}, {"55060988": [149, 42]}, {"55060991": [28, 49, 74, 240, 31]}, {"55060997": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061007": [28, 129, 9, 4, 36, 5, 33]}, {"55061015": [2]}, {"55061021": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061031": [16, 39, 189]}, {"55061035": [24, 3, 224]}, {"55061039": [8]}, {"55061044": [39, 189, 255, 232, 175, 191]}, {"55061051": [16, 12, 16, 10, 155]}, {"55061060": [36, 1, 255, 255, 16, 65]}, {"55061067": [4]}, {"55061072": [52, 68]}, {"55061076": [12, 16, 10, 197]}, {"55061084": [143, 191]}, {"55061087": [16, 39, 189]}, {"55061091": [24, 3, 224]}, {"55061095": [8]}, {"55061100": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061111": [164, 52, 8]}, {"55061116": [52, 137]}, {"55061120": [148, 170]}, {"55061124": [52, 1]}, {"55061127": [10, 21, 65]}, {"55061131": [14]}, {"55061136": [148, 171]}, {"55061139": [28, 52, 1]}, {"55061143": [16, 20, 65]}, {"55061147": [8]}, {"55061152": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061163": [4]}, {"55061168": [36, 2, 255, 255, 16]}, {"55061175": [21]}, {"55061180": [52, 8]}, {"55061183": [1, 49, 105]}, {"55061187": [31, 52, 1]}, {"55061191": [21, 21, 65]}, {"55061195": [12]}, {"55061200": [52, 1]}, {"55061203": [62, 16, 129]}, {"55061207": [7]}, {"55061212": [52, 1]}, {"55061215": [66, 16, 129]}, {"55061219": [4]}, {"55061224": [36, 2, 255, 255, 16]}, {"55061231": [7]}, {"55061236": [52, 8]}, {"55061239": [2, 144, 169, 1, 65]}, {"55061245": [2, 18]}, {"55061249": [72, 16, 37]}, {"55061253": [2, 18]}, {"55061257": [73, 16, 37, 3, 224]}, {"55061263": [8]}, {"55061268": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061283": [4, 141, 9]}, {"55061288": [17, 32]}, {"55061291": [22]}, {"55061297": [9, 82, 2, 49, 75, 252]}, {"55061305": [11, 90, 130, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061328": [49, 34]}, {"55061331": [255, 60, 8, 128, 18, 37, 8, 165, 208, 161, 11, 20, 7, 60, 9, 128, 64, 37, 41, 32]}, {"55061352": [60, 12, 128, 64, 37, 140, 28]}, {"55061360": [129, 140]}, {"55061364": [17, 108]}, {"55061367": [3, 165, 32]}, {"55061371": [2, 161, 43]}, {"55061375": [2, 161, 34]}, {"55061379": [3, 3, 224]}, {"55061383": [8]}, {"55061388": [39, 189, 255, 224, 175, 176]}, {"55061395": [16, 175, 177]}, {"55061399": [20, 175, 191]}, {"55061403": [24, 52, 130]}, {"55061408": [52, 80]}, {"55061412": [38, 8, 255, 128, 5]}, {"55061419": [18]}, {"55061424": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55061435": [16, 1, 9]}, {"55061439": [24]}, {"55061442": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061460": [142, 40]}, {"55061463": [12, 1]}, {"55061466": [248, 9]}, {"55061472": [20, 80, 255, 239]}, {"55061480": [54, 35]}, {"55061484": [16]}, {"55061487": [2]}, {"55061492": [52, 3]}, {"55061496": [143, 176]}, {"55061499": [16, 143, 177]}, {"55061503": [20, 143, 191]}, {"55061507": [24, 39, 189]}, {"55061511": [32, 3, 224]}, {"55061515": [8]}, {"55061520": [140, 136, 29, 44, 52, 9]}, {"55061527": [1]}, {"55061529": [9, 78]}, {"55061532": [1, 9, 16, 36, 16, 64]}, {"55061539": [36]}, {"55061544": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55061559": [164, 52, 1]}, {"55061563": [61, 17, 129]}, {"55061567": [10]}, {"55061573": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55061583": [25]}, {"55061588": [52, 13]}, {"55061591": [1, 161, 141, 29, 40, 37, 74]}, {"55061599": [3, 16]}, {"55061603": [9]}, {"55061608": [52, 12]}, {"55061611": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55061627": [14]}, {"55061632": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55061668": [60, 9, 128, 64, 37, 41, 32, 20, 161, 40]}, {"55061680": [52, 2]}, {"55061684": [3, 224]}, {"55061687": [8]}, {"55061692": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55061704": [60, 9, 128, 64, 37, 41, 32, 20, 161, 40]}, {"55061716": [3, 224]}, {"55061719": [8]}, {"55061724": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55061736": [60, 9, 128, 64, 37, 41, 32, 20, 161, 40]}, {"55061748": [3, 224]}, {"55061751": [8]}, {"55061756": [175, 164]}, {"55061759": [104, 175, 165]}, {"55061763": [108, 175, 166]}, {"55061767": [112, 175, 167]}, {"55061771": [116, 39, 189, 255, 232, 175, 163]}, {"55061779": [16, 175, 191]}, {"55061783": [20, 60, 8, 128, 64, 37, 8, 32, 20, 129, 8]}, {"55061796": [17]}, {"55061799": [14]}, {"55061804": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55061815": [1, 165, 42]}, {"55061820": [60, 9, 128, 65, 52, 10]}, {"55061827": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 83]}, {"55061856": [143, 163]}, {"55061859": [16, 143, 191]}, {"55061863": [20, 39, 189]}, {"55061867": [24, 143, 164]}, {"55061871": [104, 143, 165]}, {"55061875": [108, 143, 166]}, {"55061879": [112, 143, 167]}, {"55061883": [116, 132, 110, 19, 196, 3, 224]}, {"55061891": [8]}, {"55061896": [147, 25]}, {"55061899": [116, 52, 1]}, {"55061903": [255, 23, 33]}, {"55061907": [2]}, {"55061912": [52, 25]}, {"55061915": [44, 3, 224]}, {"55061919": [8, 167, 185]}, {"55061923": [154, 147, 44]}, {"55061927": [116, 52, 1]}, {"55061931": [255, 21, 129]}, {"55061935": [2]}, {"55061940": [52, 12]}, {"55061943": [44, 3, 224]}, {"55061947": [8]}, {"55061952": [145, 174]}, {"55061955": [116, 52, 1]}, {"55061959": [255, 21, 193]}, {"55061963": [2]}, {"55061968": [52, 14]}, {"55061971": [44, 3, 224]}, {"55061975": [8, 167, 174]}, {"55061979": [154, 145, 207]}, {"55061983": [116, 52, 1]}, {"55061987": [255, 21, 225]}, {"55061991": [2]}, {"55061996": [52, 15]}, {"55061999": [44, 3, 224]}, {"55062003": [8, 167, 175]}, {"55062007": [154, 60, 8, 128, 64, 37, 8, 32, 24, 142, 9]}, {"55062019": [104, 173, 9]}, {"55062024": [142, 9]}, {"55062027": [108, 173, 9]}, {"55062031": [4, 150, 9]}, {"55062035": [112, 165, 9]}, {"55062039": [8, 150, 9]}, {"55062043": [156, 165, 9]}, {"55062047": [10, 3, 224]}, {"55062051": [8, 142, 14]}, {"55062055": [4, 39, 189, 255, 224, 175, 176]}, {"55062063": [16, 175, 177]}, {"55062067": [20, 175, 191]}, {"55062071": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 24, 142, 8]}, {"55062091": [4, 17]}, {"55062095": [5]}, {"55062100": [12, 16, 11, 180]}, {"55062108": [16]}, {"55062111": [3]}, {"55062116": [12, 16, 11, 199]}, {"55062124": [12, 16, 11, 167, 52, 4]}, {"55062132": [12, 16, 11, 167, 52, 4]}, {"55062139": [1, 12, 16, 11, 167, 52, 4]}, {"55062147": [2, 143, 176]}, {"55062151": [16, 143, 177]}, {"55062155": [20, 143, 191]}, {"55062159": [24, 39, 189]}, {"55062163": [32, 3, 224]}, {"55062167": [8]}, {"55062172": [2, 4, 64, 33, 145, 9]}, {"55062179": [108, 52, 1]}, {"55062183": [255, 17, 33]}, {"55062187": [7]}, {"55062192": [2, 9, 72, 33, 145, 41]}, {"55062199": [116, 52, 1]}, {"55062203": [44, 17, 33]}, {"55062207": [2]}, {"55062212": [161, 9]}, {"55062215": [105, 3, 224]}, {"55062219": [8]}, {"55062224": [39, 189, 255, 232, 175, 191]}, {"55062231": [16, 142, 40]}, {"55062236": [174, 8]}, {"55062239": [64, 142, 40]}, {"55062243": [4, 174, 8]}, {"55062247": [68, 150, 40]}, {"55062251": [8, 166, 8]}, {"55062255": [72, 162]}, {"55062258": [15, 51, 146, 8]}, {"55062263": [74, 52, 1]}, {"55062267": [255, 21, 1]}, {"55062271": [3]}, {"55062276": [12, 16, 11, 213]}, {"55062284": [143, 191]}, {"55062287": [16, 39, 189]}, {"55062291": [24, 3, 224]}, {"55062295": [8]}, {"55062300": [142, 8]}, {"55062303": [64, 174, 8]}, {"55062307": [104, 142, 8]}, {"55062311": [68, 174, 8]}, {"55062315": [108, 150, 8]}, {"55062319": [72, 166, 8]}, {"55062323": [112, 146, 8]}, {"55062327": [104, 52, 1]}, {"55062331": [255, 21, 1]}, {"55062335": [3]}, {"55062340": [52, 8]}, {"55062343": [1, 162, 8, 15, 51, 3, 224]}, {"55062351": [8]}, {"55062356": [39, 189, 255, 232, 175, 191]}, {"55062363": [16, 150, 8]}, {"55062367": [156, 49, 8]}, {"55062371": [64, 17]}, {"55062375": [5]}, {"55062380": [150, 8]}, {"55062383": [112, 49, 8, 255, 15, 53, 8]}, {"55062391": [48, 166, 8]}, {"55062395": [112, 146, 40]}, {"55062399": [1, 162, 8]}, {"55062403": [105, 150, 40]}, {"55062407": [2, 166, 8]}, {"55062411": [106, 142, 40]}, {"55062415": [4, 174, 8]}, {"55062419": [108, 12, 16, 11, 239, 52, 4]}, {"55062428": [12, 16, 11, 239, 52, 4]}, {"55062435": [1, 12, 16, 11, 239, 52, 4]}, {"55062443": [2, 143, 191]}, {"55062447": [16, 39, 189]}, {"55062451": [24, 3, 224]}, {"55062455": [8]}, {"55062460": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 48, 104, 145, 10]}, {"55062475": [108, 52, 1]}, {"55062479": [255, 17, 65]}, {"55062483": [5]}, {"55062488": [1, 42, 72, 33, 145, 41]}, {"55062496": [21, 32]}, {"55062499": [28]}, {"55062504": [60, 9, 128, 64, 37, 41, 48, 91, 37, 41]}, {"55062515": [1, 145, 42]}, {"55062520": [17, 64]}, {"55062523": [19]}, {"55062528": [2, 10, 88, 33, 145, 107]}, {"55062535": [116, 52, 1]}, {"55062539": [255, 17, 97, 255, 248]}, {"55062548": [146, 12]}, {"55062551": [108, 17, 138, 255, 245]}, {"55062560": [146, 12]}, {"55062563": [109, 17, 138, 255, 242]}, {"55062572": [146, 12]}, {"55062575": [110, 17, 138, 255, 239]}, {"55062584": [161, 11]}, {"55062587": [105, 161, 10]}, {"55062591": [108, 16]}, {"55062595": [4]}, {"55062600": [52, 9]}, {"55062603": [255, 161, 9]}, {"55062607": [105, 161, 9]}, {"55062611": [108, 3, 224]}, {"55062615": [8]}, {"55062620": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55062633": [1, 1, 1, 1, 1]}, {"55062639": [1, 1, 1, 1, 1]}, {"55062645": [1]}, {"55062647": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55062657": [51, 8, 33, 32, 15]}, {"55062663": [71, 21, 234]}, {"55062667": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062679": [164]}, {"55062681": [15, 122, 3, 20, 64]}, {"55062687": [5, 52, 2, 72, 48, 21, 226]}, {"55062695": [7]}, {"55062700": [36, 25]}, {"55062703": [3, 16]}, {"55062707": [4, 52, 2, 99, 17, 21, 226]}, {"55062715": [2]}, {"55062720": [36, 25]}, {"55062723": [3, 3, 224]}, {"55062727": [8]}, {"55062732": [141, 173, 138, 160, 52, 2, 128]}, {"55062740": [16, 77]}, {"55062743": [2]}, {"55062748": [16]}, {"55062751": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55062767": [1, 16, 64]}, {"55062771": [2]}, {"55062776": [16]}, {"55062779": [2, 52, 2]}, {"55062783": [1, 161, 226, 28, 191, 3, 224]}, {"55062791": [8]}, {"55062797": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062811": [164]}, {"55062813": [15, 122, 3, 20, 64]}, {"55062819": [5, 52, 2, 72, 48, 21, 226]}, {"55062827": [7]}, {"55062832": [36, 25]}, {"55062835": [3, 16]}, {"55062839": [4, 52, 2, 99, 17, 21, 226]}, {"55062847": [2]}, {"55062852": [36, 25]}, {"55062855": [3, 3, 224]}, {"55062859": [8]}, {"55062864": [162, 37]}, {"55062867": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55062879": [4, 142, 10]}, {"55062884": [17, 64]}, {"55062887": [11]}, {"55062893": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55062905": [24, 194, 2, 23]}, {"55062911": [3, 49, 89]}, {"55062915": [255, 129, 234]}, {"55062920": [3, 42, 200, 37, 8, 16, 12, 87, 161, 249]}, {"55062932": [3, 224]}, {"55062935": [8]}] -======= -[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 91]}, {"11325064": [12, 16, 11, 61, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 11, 152]}, {"11427312": [12, 16, 12, 65]}, {"11431496": [12, 16, 11, 69, 1, 15, 192, 33]}, {"11562028": [12, 16, 12, 98]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 12, 81]}, {"11882076": [12, 16, 12, 46]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 11, 119, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 11, 126, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 11, 133, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 11, 112, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 43]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 9, 207]}, {"12427480": [12, 16, 10, 21]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 25]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 11, 77, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 55]}, {"12491480": [12, 16, 10, 64]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 18]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 11, 140]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 140, 73]}, {"14149503": [164]}, {"14149512": [2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149856": [87]}, {"14149859": [15]}, {"14357459": [118]}, {"14624335": [118]}, {"14872723": [52]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 9, 236, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 9, 236, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057408": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058464": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 104, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 132, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 172, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 212, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 252, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 36, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 64, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 92, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 120, 83, 65, 56, 67]}, {"55058613": [235, 21, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 55, 68]}, {"55058629": [235, 22, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 57, 69]}, {"55058645": [235, 23, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 63, 71]}, {"55058677": [244, 25, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 10, 6]}, {"55058757": [185, 1, 3, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 28]}, {"55058773": [185, 1, 4, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 29]}, {"55058789": [185, 1, 5, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 30]}, {"55058805": [185, 1, 6, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 42]}, {"55058821": [185, 1, 7, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 97]}, {"55058837": [185, 1, 10, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 98]}, {"55058853": [184, 2]}, {"55058856": [128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 99]}, {"55058869": [184, 2, 1, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 100]}, {"55058885": [184, 2, 2, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 101]}, {"55058901": [184, 2, 3, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 124]}, {"55058917": [184, 2, 4, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 125]}, {"55058933": [184, 2, 5, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 126]}, {"55058949": [184, 2, 6, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 127]}, {"55058965": [184, 2, 7, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 162]}, {"55058981": [184, 2, 8, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 135]}, {"55058997": [184, 2, 9, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 136]}, {"55059013": [200, 4]}, {"55059016": [128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 137]}, {"55059029": [200, 4, 1, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 138]}, {"55059045": [200, 4, 2, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 139]}, {"55059061": [200, 4, 3, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 140]}, {"55059077": [200, 4, 4, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 142]}, {"55059093": [200, 4, 5, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 143]}, {"55059109": [200, 4, 6, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 163]}, {"55059125": [200, 4, 7, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 165]}, {"55059141": [200, 4, 8, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 146]}, {"55059157": [200, 4, 9, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 2, 147]}, {"55059173": [170, 3, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 148]}, {"55059189": [170, 4, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 149]}, {"55059205": [170, 5, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 166]}, {"55059221": [170, 6, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 169]}, {"55059237": [170, 7, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 155]}, {"55059253": [170, 8, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 159]}, {"55059269": [170, 11, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 160]}, {"55059285": [170, 12, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 161]}, {"55059301": [170, 13, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 61, 67, 12]}, {"55059317": [248, 255, 255, 128, 64, 37, 236, 128, 64, 36, 96, 77, 131, 247, 85]}, {"55059333": [183, 255, 255, 128, 64, 37, 228, 128, 64, 36, 96, 77, 146, 219, 230]}, {"55059349": [216, 255, 255, 128, 64, 37, 228, 128, 64, 37, 172, 77, 147, 218, 230]}, {"55059365": [216, 255, 255, 128, 64, 37, 228, 128, 64, 37, 172, 77, 148, 217, 230]}, {"55059381": [216, 255, 255, 128, 64, 37, 228, 128, 64, 37, 172, 77, 142, 224, 50]}, {"55059397": [206, 255, 255, 128, 64, 37, 228, 128, 64, 37, 200, 77, 143, 224, 50]}, {"55059413": [206, 255, 255, 128, 64, 37, 228, 128, 64, 37, 200, 77, 144, 224, 50]}, {"55059429": [206, 255, 255, 128, 64, 37, 228, 128, 64, 37, 200, 77, 140, 238, 52]}, {"55059445": [187, 255, 255, 128, 64, 37, 228, 128, 64, 36, 96, 77, 141, 238, 52]}, {"55059461": [187, 255, 255, 128, 64, 37, 228, 128, 64, 36, 96, 79, 65, 19, 233]}, {"55059477": [189, 255, 255, 128, 64, 38, 124, 128, 64, 36, 96, 79, 65, 30, 228]}, {"55059493": [205, 255, 255, 128, 64, 38, 156, 128, 64, 37, 148, 79, 65, 31, 232]}, {"55059509": [205, 255, 255, 128, 64, 38, 188, 128, 64, 36, 96, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 38, 228, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 39, 44, 128, 64, 39, 16, 3, 224]}, {"55059555": [8, 52, 162]}, {"55059560": [144, 136]}, {"55059563": [125, 52, 1]}, {"55059567": [255, 17, 1]}, {"55059571": [2, 52, 2]}, {"55059575": [8, 52, 2]}, {"55059579": [9, 3, 224]}, {"55059583": [8]}, {"55059588": [144, 136]}, {"55059591": [163, 49, 8]}, {"55059595": [192, 17]}, {"55059599": [5, 52, 2]}, {"55059603": [84, 52, 1]}, {"55059607": [64, 17, 1]}, {"55059611": [2, 52, 2]}, {"55059615": [53, 52, 2]}, {"55059619": [54, 3, 224]}, {"55059623": [8]}, {"55059628": [144, 136]}, {"55059631": [163, 49, 8]}, {"55059635": [24, 17]}, {"55059639": [5, 52, 2]}, {"55059643": [50, 52, 1]}, {"55059647": [8, 17, 1]}, {"55059651": [2, 52, 2]}, {"55059655": [51, 52, 2]}, {"55059659": [52, 3, 224]}, {"55059663": [8]}, {"55059668": [144, 136]}, {"55059671": [163, 49, 8]}, {"55059675": [3, 17]}, {"55059679": [5, 52, 2]}, {"55059683": [4, 52, 1]}, {"55059687": [1, 17, 1]}, {"55059691": [2, 52, 2]}, {"55059695": [48, 52, 2]}, {"55059699": [49, 3, 224]}, {"55059703": [8]}, {"55059708": [144, 136]}, {"55059711": [162, 49, 8]}, {"55059715": [192, 17]}, {"55059719": [5, 52, 2]}, {"55059723": [5, 52, 1]}, {"55059727": [64, 17, 1]}, {"55059731": [2, 52, 2]}, {"55059735": [96, 52, 2]}, {"55059739": [123, 3, 224]}, {"55059743": [8]}, {"55059748": [144, 136]}, {"55059751": [162, 49, 8]}, {"55059755": [48, 17]}, {"55059759": [2, 52, 2]}, {"55059763": [69, 52, 2]}, {"55059767": [70, 3, 224]}, {"55059771": [8]}, {"55059776": [144, 136]}, {"55059779": [162, 49, 8]}, {"55059783": [6, 17]}, {"55059787": [2, 52, 2]}, {"55059791": [55, 52, 2]}, {"55059795": [56, 3, 224]}, {"55059799": [8]}, {"55059804": [144, 136]}, {"55059807": [161, 49, 8]}, {"55059811": [32, 17]}, {"55059815": [2, 52, 2]}, {"55059819": [121, 52, 2]}, {"55059823": [122, 3, 224]}, {"55059827": [8]}, {"55059832": [144, 136]}, {"55059835": [161, 49, 8]}, {"55059839": [4, 17]}, {"55059843": [2, 52, 2]}, {"55059847": [119, 52, 2]}, {"55059851": [120, 3, 224]}, {"55059855": [8]}, {"55059860": [144, 136]}, {"55059863": [50, 17]}, {"55059867": [2, 52, 2]}, {"55059871": [192, 52, 2]}, {"55059875": [193, 3, 224]}, {"55059879": [8]}, {"55059884": [144, 136]}, {"55059887": [163, 49, 8]}, {"55059891": [3, 17]}, {"55059895": [2, 52, 2]}, {"55059899": [77, 52, 162]}, {"55059904": [3, 224]}, {"55059907": [8]}, {"55059912": [144, 136]}, {"55059915": [163, 49, 8]}, {"55059919": [24, 17]}, {"55059923": [2, 52, 2]}, {"55059927": [77, 52, 162]}, {"55059932": [3, 224]}, {"55059935": [8]}, {"55059940": [3, 224]}, {"55059943": [8]}, {"55059948": [52, 8]}, {"55059951": [1, 160, 136]}, {"55059955": [62, 3, 224]}, {"55059959": [8]}, {"55059964": [36, 136]}, {"55059967": [134, 36, 9, 255, 255, 37, 41]}, {"55059975": [1, 52, 1]}, {"55059979": [3]}, {"55059981": [41, 8, 42, 20, 32]}, {"55059987": [7]}, {"55059992": [1, 9, 80, 33, 145, 75]}, {"55060000": [52, 1]}, {"55060003": [255, 21, 97, 255, 247]}, {"55060012": [161, 69]}, {"55060016": [3, 224]}, {"55060019": [8]}, {"55060024": [36, 136]}, {"55060027": [168, 1, 6, 64, 33, 145, 9]}, {"55060036": [1, 37, 72, 37, 161, 9]}, {"55060044": [3, 224]}, {"55060047": [8]}, {"55060052": [36, 136]}, {"55060055": [188, 1, 5, 64, 33, 129, 9]}, {"55060064": [5, 33]}, {"55060067": [2]}, {"55060072": [52, 9]}, {"55060076": [37, 41]}, {"55060079": [1, 161, 9]}, {"55060084": [3, 224]}, {"55060087": [8]}, {"55060092": [52, 8]}, {"55060095": [1, 160, 136]}, {"55060099": [61, 52, 8]}, {"55060103": [20, 160, 136]}, {"55060107": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060119": [8]}, {"55060124": [52, 8]}, {"55060127": [1, 160, 136]}, {"55060131": [50, 160, 136]}, {"55060135": [58, 52, 8]}, {"55060139": [48, 164, 136, 19, 244, 160, 136]}, {"55060147": [51, 3, 224]}, {"55060151": [8]}, {"55060156": [52, 8]}, {"55060159": [2, 160, 136]}, {"55060163": [50, 52, 8]}, {"55060167": [1, 160, 136]}, {"55060171": [58, 160, 136]}, {"55060175": [60, 52, 8]}, {"55060179": [96, 164, 136, 19, 244, 160, 136]}, {"55060187": [51, 3, 224]}, {"55060191": [8]}, {"55060196": [144, 136]}, {"55060199": [124, 52, 1]}, {"55060203": [255, 17, 1]}, {"55060207": [6, 52, 2]}, {"55060211": [107, 144, 136]}, {"55060215": [148, 45, 8]}, {"55060219": [6, 17]}, {"55060223": [2, 52, 2]}, {"55060227": [106, 52, 2]}, {"55060231": [3, 3, 224]}, {"55060235": [8]}, {"55060240": [144, 136]}, {"55060243": [123, 52, 1]}, {"55060247": [255, 17, 1]}, {"55060251": [2, 52, 162]}, {"55060256": [52, 2]}, {"55060259": [12, 3, 224]}, {"55060263": [8]}, {"55060268": [52, 8]}, {"55060271": [7, 160, 136]}, {"55060275": [123, 3, 224]}, {"55060279": [8]}, {"55060284": [48, 132]}, {"55060287": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060299": [140, 16, 129]}, {"55060303": [22, 145, 2]}, {"55060307": [117, 52, 1]}, {"55060311": [141, 16, 129]}, {"55060315": [19, 145, 2]}, {"55060319": [117, 16, 128]}, {"55060323": [17, 145, 2]}, {"55060327": [116, 52, 1]}, {"55060331": [138, 16, 129]}, {"55060335": [14, 145, 2]}, {"55060339": [116, 52, 1]}, {"55060343": [139, 16, 129]}, {"55060347": [11, 145, 2]}, {"55060351": [116, 52, 1]}, {"55060355": [88, 16, 129]}, {"55060359": [8, 52, 2]}, {"55060364": [52, 1]}, {"55060367": [120, 16, 129]}, {"55060371": [5, 52, 2]}, {"55060376": [52, 1]}, {"55060379": [121, 16, 129]}, {"55060383": [2, 52, 2]}, {"55060388": [52, 2]}, {"55060391": [255, 3, 224]}, {"55060395": [8]}, {"55060400": [39, 189, 255, 224, 175, 191]}, {"55060407": [16, 175, 176]}, {"55060411": [20, 12, 16, 10, 162]}, {"55060420": [4, 65]}, {"55060423": [2]}, {"55060428": [52, 2]}, {"55060431": [91]}, {"55060433": [64, 32, 33, 12, 16, 10, 241]}, {"55060444": [16, 96]}, {"55060447": [11, 175, 163]}, {"55060451": [28, 60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060463": [6, 144, 102]}, {"55060467": [7, 140, 105]}, {"55060471": [8, 1, 32, 248, 9]}, {"55060480": [143, 163]}, {"55060483": [28, 144, 101]}, {"55060487": [3, 16]}, {"55060491": [10, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060503": [6]}, {"55060505": [74]}, {"55060507": [24]}, {"55060510": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060520": [12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060531": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060542": [48, 33, 143, 191]}, {"55060547": [16, 143, 176]}, {"55060551": [20, 39, 189]}, {"55060555": [32, 3, 224]}, {"55060559": [8]}, {"55060564": [143, 166]}, {"55060567": [48, 132, 197]}, {"55060571": [4, 8, 16, 10, 29]}, {"55060580": [143, 185]}, {"55060583": [44, 135, 37]}, {"55060587": [4, 8, 16, 10, 29]}, {"55060596": [60, 10, 128, 64, 37, 74, 32]}, {"55060604": [141, 75]}, {"55060607": [12, 17, 96]}, {"55060611": [2]}, {"55060616": [149, 69]}, {"55060619": [4, 60, 10, 128, 64, 37, 74, 32, 16, 161, 64]}, {"55060632": [60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060644": [3, 224]}, {"55060647": [8]}, {"55060652": [60, 8, 128, 64, 37, 8, 32]}, {"55060660": [141, 9]}, {"55060663": [12, 17, 32]}, {"55060667": [2]}, {"55060672": [129, 3]}, {"55060675": [2]}, {"55060677": [3, 15, 195]}, {"55060681": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55060695": [8]}, {"55060700": [144, 69]}, {"55060703": [3, 60, 8, 128, 64, 37, 8, 32]}, {"55060712": [141, 9]}, {"55060715": [12, 17, 32]}, {"55060719": [2]}, {"55060724": [145, 5]}, {"55060727": [3, 3, 224]}, {"55060731": [8]}, {"55060736": [143, 162]}, {"55060739": [36, 144, 69]}, {"55060744": [60, 8, 128, 64, 37, 8, 32]}, {"55060752": [141, 9]}, {"55060755": [12, 17, 32]}, {"55060759": [19]}, {"55060764": [145, 5]}, {"55060767": [1, 175, 164]}, {"55060772": [175, 165]}, {"55060775": [4, 175, 166]}, {"55060779": [8, 39, 189, 255, 232, 175, 191]}, {"55060787": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55060799": [6, 145, 6]}, {"55060803": [7, 141, 9]}, {"55060807": [8, 1, 32, 248, 9]}, {"55060816": [143, 191]}, {"55060819": [16, 39, 189]}, {"55060823": [24, 143, 164]}, {"55060828": [143, 165]}, {"55060831": [4, 143, 166]}, {"55060835": [8, 3, 224]}, {"55060839": [8]}, {"55060844": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55060855": [16, 175, 163]}, {"55060859": [20, 175, 191]}, {"55060863": [24, 12, 16, 10, 104]}, {"55060872": [143, 162]}, {"55060875": [16, 143, 163]}, {"55060879": [20, 143, 191]}, {"55060883": [24, 39, 189]}, {"55060887": [32, 3, 224]}, {"55060891": [8]}, {"55060896": [39, 189, 255, 232, 175, 191]}, {"55060903": [16, 60, 8, 128, 64, 37, 8, 32]}, {"55060912": [173]}, {"55060916": [173]}, {"55060919": [4, 173]}, {"55060923": [8, 173]}, {"55060927": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55060943": [42]}, {"55060949": [9, 15, 195, 1, 33, 32, 38]}, {"55060957": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 162]}, {"55060972": [4, 64]}, {"55060975": [34]}, {"55060980": [52, 68]}, {"55060984": [12, 16, 10, 241]}, {"55060992": [16, 96]}, {"55060995": [12]}, {"55061000": [60, 8, 128, 64, 37, 8, 32]}, {"55061008": [140, 105]}, {"55061012": [173, 9]}, {"55061016": [140, 105]}, {"55061019": [4, 173, 9]}, {"55061023": [4, 140, 105]}, {"55061027": [8, 173, 9]}, {"55061031": [8, 52, 9]}, {"55061035": [1, 173, 9]}, {"55061039": [12, 144, 98]}, {"55061044": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061060": [52, 1]}, {"55061063": [10, 21, 65]}, {"55061067": [6]}, {"55061072": [149, 42]}, {"55061075": [28, 49, 74, 240, 31]}, {"55061081": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061091": [28, 129, 9, 4, 36, 5, 33]}, {"55061099": [2]}, {"55061105": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061115": [16, 39, 189]}, {"55061119": [24, 3, 224]}, {"55061123": [8]}, {"55061128": [39, 189, 255, 232, 175, 191]}, {"55061135": [16, 12, 16, 10, 176]}, {"55061144": [36, 1, 255, 255, 16, 65]}, {"55061151": [4]}, {"55061156": [52, 68]}, {"55061160": [12, 16, 10, 228]}, {"55061168": [143, 191]}, {"55061171": [16, 39, 189]}, {"55061175": [24, 3, 224]}, {"55061179": [8]}, {"55061184": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061195": [164, 52, 8]}, {"55061200": [52, 137]}, {"55061204": [148, 170]}, {"55061208": [52, 1, 1, 156, 21, 65]}, {"55061215": [8]}, {"55061220": [52, 8]}, {"55061223": [3, 148, 171]}, {"55061227": [28, 49, 105]}, {"55061231": [255, 49, 98, 31]}, {"55061237": [2, 18, 2, 16]}, {"55061243": [31]}, {"55061248": [52, 1]}, {"55061251": [10, 21, 65]}, {"55061255": [14]}, {"55061260": [148, 171]}, {"55061263": [28, 52, 1]}, {"55061267": [16, 20, 65]}, {"55061271": [8]}, {"55061276": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061287": [4]}, {"55061292": [36, 2, 255, 255, 16]}, {"55061299": [21]}, {"55061304": [52, 8]}, {"55061307": [1, 49, 105]}, {"55061311": [31, 52, 1]}, {"55061315": [21, 21, 65]}, {"55061319": [12]}, {"55061324": [52, 1]}, {"55061327": [62, 16, 129]}, {"55061331": [7]}, {"55061336": [52, 1]}, {"55061339": [66, 16, 129]}, {"55061343": [4]}, {"55061348": [36, 2, 255, 255, 16]}, {"55061355": [7]}, {"55061360": [52, 8]}, {"55061363": [2, 144, 169, 1, 65]}, {"55061369": [2, 18]}, {"55061373": [72, 16, 37]}, {"55061377": [2, 18]}, {"55061381": [73, 16, 37, 3, 224]}, {"55061387": [8]}, {"55061392": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061407": [4, 141, 9]}, {"55061412": [17, 32]}, {"55061415": [5]}, {"55061421": [9, 82, 2, 21, 68, 255, 250]}, {"55061432": [49, 34]}, {"55061435": [255, 3, 224]}, {"55061439": [8]}, {"55061444": [39, 189, 255, 224, 175, 176]}, {"55061451": [16, 175, 177]}, {"55061455": [20, 175, 191]}, {"55061459": [24, 52, 130]}, {"55061464": [52, 80]}, {"55061468": [38, 8, 255, 128, 5]}, {"55061475": [18]}, {"55061480": [60, 17, 128, 64, 38, 49, 32, 32, 52, 9]}, {"55061491": [16, 1, 9]}, {"55061495": [24]}, {"55061498": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061516": [142, 40]}, {"55061519": [12, 1]}, {"55061522": [248, 9]}, {"55061528": [20, 80, 255, 239]}, {"55061536": [54, 35]}, {"55061540": [16]}, {"55061543": [2]}, {"55061548": [52, 3]}, {"55061552": [143, 176]}, {"55061555": [16, 143, 177]}, {"55061559": [20, 143, 191]}, {"55061563": [24, 39, 189]}, {"55061567": [32, 3, 224]}, {"55061571": [8]}, {"55061576": [140, 136, 29, 44, 52, 9]}, {"55061583": [1]}, {"55061585": [9, 78]}, {"55061588": [1, 9, 16, 36, 16, 64]}, {"55061595": [36]}, {"55061600": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55061615": [164, 52, 1]}, {"55061619": [61, 17, 129]}, {"55061623": [10]}, {"55061629": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55061639": [25]}, {"55061644": [52, 13]}, {"55061647": [1, 161, 141, 29, 40, 37, 74]}, {"55061655": [3, 16]}, {"55061659": [9]}, {"55061664": [52, 12]}, {"55061667": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55061683": [14]}, {"55061688": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 2, 1, 10, 64, 33, 129, 8]}, {"55061724": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061736": [52, 2]}, {"55061740": [3, 224]}, {"55061743": [8]}, {"55061748": [60, 8, 128, 64, 37, 8, 28]}, {"55061756": [129, 8]}, {"55061760": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061772": [3, 224]}, {"55061775": [8]}, {"55061780": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55061792": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061804": [3, 224]}, {"55061807": [8]}, {"55061812": [175, 164]}, {"55061815": [104, 175, 165]}, {"55061819": [108, 175, 166]}, {"55061823": [112, 175, 167]}, {"55061827": [116, 39, 189, 255, 232, 175, 163]}, {"55061835": [16, 175, 191]}, {"55061839": [20, 60, 8, 128, 64, 37, 8, 32, 16, 129, 8]}, {"55061852": [17]}, {"55061855": [14]}, {"55061860": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55061871": [1, 165, 42]}, {"55061876": [60, 9, 128, 65, 52, 10]}, {"55061883": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 104]}, {"55061912": [143, 163]}, {"55061915": [16, 143, 191]}, {"55061919": [20, 39, 189]}, {"55061923": [24, 143, 164]}, {"55061927": [104, 143, 165]}, {"55061931": [108, 143, 166]}, {"55061935": [112, 143, 167]}, {"55061939": [116, 132, 110, 19, 196, 3, 224]}, {"55061947": [8]}, {"55061952": [147, 25]}, {"55061955": [116, 52, 1]}, {"55061959": [255, 23, 33]}, {"55061963": [2]}, {"55061968": [52, 25]}, {"55061971": [44, 3, 224]}, {"55061975": [8, 167, 185]}, {"55061979": [154, 147, 44]}, {"55061983": [116, 52, 1]}, {"55061987": [255, 21, 129]}, {"55061991": [2]}, {"55061996": [52, 12]}, {"55061999": [44, 3, 224]}, {"55062003": [8]}, {"55062008": [145, 174]}, {"55062011": [116, 52, 1]}, {"55062015": [255, 21, 193]}, {"55062019": [2]}, {"55062024": [52, 14]}, {"55062027": [44, 3, 224]}, {"55062031": [8, 167, 174]}, {"55062035": [154, 145, 207]}, {"55062039": [116, 52, 1]}, {"55062043": [255, 21, 225]}, {"55062047": [2]}, {"55062052": [52, 15]}, {"55062055": [44, 3, 224]}, {"55062059": [8, 167, 175]}, {"55062063": [154, 60, 8, 128, 64, 37, 8, 32, 20, 142, 9]}, {"55062075": [104, 173, 9]}, {"55062080": [142, 9]}, {"55062083": [108, 173, 9]}, {"55062087": [4, 150, 9]}, {"55062091": [112, 165, 9]}, {"55062095": [8, 150, 9]}, {"55062099": [156, 165, 9]}, {"55062103": [10, 3, 224]}, {"55062107": [8, 142, 14]}, {"55062111": [4, 39, 189, 255, 224, 175, 176]}, {"55062119": [16, 175, 177]}, {"55062123": [20, 175, 191]}, {"55062127": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 20, 142, 8]}, {"55062147": [4, 17]}, {"55062151": [5]}, {"55062156": [12, 16, 11, 194]}, {"55062164": [16]}, {"55062167": [3]}, {"55062172": [12, 16, 11, 213]}, {"55062180": [12, 16, 11, 181, 52, 4]}, {"55062188": [12, 16, 11, 181, 52, 4]}, {"55062195": [1, 12, 16, 11, 181, 52, 4]}, {"55062203": [2, 143, 176]}, {"55062207": [16, 143, 177]}, {"55062211": [20, 143, 191]}, {"55062215": [24, 39, 189]}, {"55062219": [32, 3, 224]}, {"55062223": [8]}, {"55062228": [2, 4, 64, 33, 145, 9]}, {"55062235": [108, 52, 1]}, {"55062239": [255, 17, 33]}, {"55062243": [7]}, {"55062248": [2, 9, 72, 33, 145, 41]}, {"55062255": [116, 52, 1]}, {"55062259": [44, 17, 33]}, {"55062263": [2]}, {"55062268": [161, 9]}, {"55062271": [105, 3, 224]}, {"55062275": [8]}, {"55062280": [39, 189, 255, 232, 175, 191]}, {"55062287": [16, 142, 40]}, {"55062292": [174, 8]}, {"55062295": [64, 142, 40]}, {"55062299": [4, 174, 8]}, {"55062303": [68, 150, 40]}, {"55062307": [8, 166, 8]}, {"55062311": [72, 162]}, {"55062314": [15, 51, 146, 8]}, {"55062319": [74, 52, 1]}, {"55062323": [255, 21, 1]}, {"55062327": [3]}, {"55062332": [12, 16, 11, 227]}, {"55062340": [143, 191]}, {"55062343": [16, 39, 189]}, {"55062347": [24, 3, 224]}, {"55062351": [8]}, {"55062356": [142, 8]}, {"55062359": [64, 174, 8]}, {"55062363": [104, 142, 8]}, {"55062367": [68, 174, 8]}, {"55062371": [108, 150, 8]}, {"55062375": [72, 166, 8]}, {"55062379": [112, 146, 8]}, {"55062383": [104, 52, 1]}, {"55062387": [255, 21, 1]}, {"55062391": [3]}, {"55062396": [52, 8]}, {"55062399": [1, 162, 8, 15, 51, 3, 224]}, {"55062407": [8]}, {"55062412": [39, 189, 255, 232, 175, 191]}, {"55062419": [16, 150, 8]}, {"55062423": [156, 49, 8]}, {"55062427": [64, 17]}, {"55062431": [5]}, {"55062436": [150, 8]}, {"55062439": [112, 49, 8, 255, 15, 53, 8]}, {"55062447": [48, 166, 8]}, {"55062451": [112, 146, 40]}, {"55062455": [1, 162, 8]}, {"55062459": [105, 150, 40]}, {"55062463": [2, 166, 8]}, {"55062467": [106, 142, 40]}, {"55062471": [4, 174, 8]}, {"55062475": [108, 12, 16, 11, 253, 52, 4]}, {"55062484": [12, 16, 11, 253, 52, 4]}, {"55062491": [1, 12, 16, 11, 253, 52, 4]}, {"55062499": [2, 143, 191]}, {"55062503": [16, 39, 189]}, {"55062507": [24, 3, 224]}, {"55062511": [8]}, {"55062516": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 48, 160, 145, 10]}, {"55062531": [108, 52, 1]}, {"55062535": [255, 17, 65]}, {"55062539": [5]}, {"55062544": [1, 42, 72, 33, 145, 41]}, {"55062552": [21, 32]}, {"55062555": [28]}, {"55062560": [60, 9, 128, 64, 37, 41, 48, 147, 37, 41]}, {"55062571": [1, 145, 42]}, {"55062576": [17, 64]}, {"55062579": [19]}, {"55062584": [2, 10, 88, 33, 145, 107]}, {"55062591": [116, 52, 1]}, {"55062595": [255, 17, 97, 255, 248]}, {"55062604": [146, 12]}, {"55062607": [108, 17, 138, 255, 245]}, {"55062616": [146, 12]}, {"55062619": [109, 17, 138, 255, 242]}, {"55062628": [146, 12]}, {"55062631": [110, 17, 138, 255, 239]}, {"55062640": [161, 11]}, {"55062643": [105, 161, 10]}, {"55062647": [108, 16]}, {"55062651": [4]}, {"55062656": [52, 9]}, {"55062659": [255, 161, 9]}, {"55062663": [105, 161, 9]}, {"55062667": [108, 3, 224]}, {"55062671": [8]}, {"55062676": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55062689": [1, 1, 1, 1, 1]}, {"55062695": [1, 1, 1, 1, 1]}, {"55062701": [1]}, {"55062703": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55062713": [51, 8, 33, 32, 15]}, {"55062719": [71, 21, 234]}, {"55062723": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062735": [164]}, {"55062737": [15, 122, 3, 20, 64]}, {"55062743": [5, 52, 2, 72, 48, 21, 226]}, {"55062751": [7]}, {"55062756": [36, 25]}, {"55062759": [3, 16]}, {"55062763": [4, 52, 2, 99, 17, 21, 226]}, {"55062771": [2]}, {"55062776": [36, 25]}, {"55062779": [3, 3, 224]}, {"55062783": [8]}, {"55062788": [141, 173, 138, 160, 52, 2, 128]}, {"55062796": [16, 77]}, {"55062799": [2]}, {"55062804": [16]}, {"55062807": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55062823": [1, 16, 64]}, {"55062827": [2]}, {"55062832": [16]}, {"55062835": [2, 52, 2]}, {"55062839": [1, 161, 226, 28, 191, 3, 224]}, {"55062847": [8]}, {"55062853": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062867": [164]}, {"55062869": [15, 122, 3, 20, 64]}, {"55062875": [5, 52, 2, 72, 48, 21, 226]}, {"55062883": [7]}, {"55062888": [36, 25]}, {"55062891": [3, 16]}, {"55062895": [4, 52, 2, 99, 17, 21, 226]}, {"55062903": [2]}, {"55062908": [36, 25]}, {"55062911": [3, 3, 224]}, {"55062915": [8]}, {"55062920": [162, 37]}, {"55062923": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55062935": [4, 142, 10]}, {"55062940": [17, 64]}, {"55062943": [11]}, {"55062949": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55062961": [24, 194, 2, 23]}, {"55062967": [3, 49, 89]}, {"55062971": [255, 129, 234]}, {"55062976": [3, 42, 200, 37, 8, 16, 12, 101, 161, 249]}, {"55062988": [3, 224]}, {"55062991": [8]}] ->>>>>>> Dev +[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 125]}, {"11325064": [12, 16, 11, 112, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 11, 203]}, {"11427312": [12, 16, 12, 116]}, {"11431496": [12, 16, 11, 120, 1, 15, 192, 33]}, {"11562028": [12, 16, 12, 149]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 12, 132]}, {"11882076": [12, 16, 12, 97]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 11, 170, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 11, 177, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 11, 184, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 11, 163, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 69]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 9, 219]}, {"12427480": [12, 16, 10, 47]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 51]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 11, 128, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 81]}, {"12491480": [12, 16, 10, 90]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 69]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 11, 191]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 140, 73]}, {"14149503": [164]}, {"14149512": [2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149856": [87]}, {"14149859": [15]}, {"14357459": [118]}, {"14624335": [118]}, {"14872723": [52]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 9, 248, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 9, 248, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 36, 152, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 36, 180, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 36, 220, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 4, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 44, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 84, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 112, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 140, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 168, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 28, 128, 64, 36, 144, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 20, 128, 64, 36, 144, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 20, 128, 64, 37, 220, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 20, 128, 64, 37, 220, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 20, 128, 64, 37, 220, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 20, 128, 64, 37, 248, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 20, 128, 64, 37, 248, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 20, 128, 64, 37, 248, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 20, 128, 64, 36, 144, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 20, 128, 64, 36, 144, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 38, 172, 128, 64, 36, 144, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 38, 204, 128, 64, 37, 196, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 38, 236, 128, 64, 36, 144, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 39, 20, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 39, 92, 128, 64, 39, 64, 3, 224]}, {"55059603": [8, 52, 162]}, {"55059608": [144, 136]}, {"55059611": [125, 52, 1]}, {"55059615": [255, 17, 1]}, {"55059619": [2, 52, 2]}, {"55059623": [8, 52, 2]}, {"55059627": [9, 3, 224]}, {"55059631": [8]}, {"55059636": [144, 136]}, {"55059639": [163, 49, 8]}, {"55059643": [192, 17]}, {"55059647": [5, 52, 2]}, {"55059651": [84, 52, 1]}, {"55059655": [64, 17, 1]}, {"55059659": [2, 52, 2]}, {"55059663": [53, 52, 2]}, {"55059667": [54, 3, 224]}, {"55059671": [8]}, {"55059676": [144, 136]}, {"55059679": [163, 49, 8]}, {"55059683": [24, 17]}, {"55059687": [5, 52, 2]}, {"55059691": [50, 52, 1]}, {"55059695": [8, 17, 1]}, {"55059699": [2, 52, 2]}, {"55059703": [51, 52, 2]}, {"55059707": [52, 3, 224]}, {"55059711": [8]}, {"55059716": [144, 136]}, {"55059719": [163, 49, 8]}, {"55059723": [3, 17]}, {"55059727": [5, 52, 2]}, {"55059731": [4, 52, 1]}, {"55059735": [1, 17, 1]}, {"55059739": [2, 52, 2]}, {"55059743": [48, 52, 2]}, {"55059747": [49, 3, 224]}, {"55059751": [8]}, {"55059756": [144, 136]}, {"55059759": [162, 49, 8]}, {"55059763": [192, 17]}, {"55059767": [5, 52, 2]}, {"55059771": [5, 52, 1]}, {"55059775": [64, 17, 1]}, {"55059779": [2, 52, 2]}, {"55059783": [96, 52, 2]}, {"55059787": [123, 3, 224]}, {"55059791": [8]}, {"55059796": [144, 136]}, {"55059799": [162, 49, 8]}, {"55059803": [48, 17]}, {"55059807": [2, 52, 2]}, {"55059811": [69, 52, 2]}, {"55059815": [70, 3, 224]}, {"55059819": [8]}, {"55059824": [144, 136]}, {"55059827": [162, 49, 8]}, {"55059831": [6, 17]}, {"55059835": [2, 52, 2]}, {"55059839": [55, 52, 2]}, {"55059843": [56, 3, 224]}, {"55059847": [8]}, {"55059852": [144, 136]}, {"55059855": [161, 49, 8]}, {"55059859": [32, 17]}, {"55059863": [2, 52, 2]}, {"55059867": [121, 52, 2]}, {"55059871": [122, 3, 224]}, {"55059875": [8]}, {"55059880": [144, 136]}, {"55059883": [161, 49, 8]}, {"55059887": [4, 17]}, {"55059891": [2, 52, 2]}, {"55059895": [119, 52, 2]}, {"55059899": [120, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [50, 17]}, {"55059915": [2, 52, 2]}, {"55059919": [192, 52, 2]}, {"55059923": [193, 3, 224]}, {"55059927": [8]}, {"55059932": [144, 136]}, {"55059935": [163, 49, 8]}, {"55059939": [3, 17]}, {"55059943": [2, 52, 2]}, {"55059947": [77, 52, 162]}, {"55059952": [3, 224]}, {"55059955": [8]}, {"55059960": [144, 136]}, {"55059963": [163, 49, 8]}, {"55059967": [24, 17]}, {"55059971": [2, 52, 2]}, {"55059975": [77, 52, 162]}, {"55059980": [3, 224]}, {"55059983": [8]}, {"55059988": [3, 224]}, {"55059991": [8]}, {"55059996": [52, 8]}, {"55059999": [1, 160, 136]}, {"55060003": [62, 3, 224]}, {"55060007": [8]}, {"55060012": [36, 136]}, {"55060015": [134, 36, 9, 255, 255, 37, 41]}, {"55060023": [1, 52, 1]}, {"55060027": [3]}, {"55060029": [41, 8, 42, 20, 32]}, {"55060035": [7]}, {"55060040": [1, 9, 80, 33, 145, 75]}, {"55060048": [52, 1]}, {"55060051": [255, 21, 97, 255, 247]}, {"55060060": [161, 69]}, {"55060064": [3, 224]}, {"55060067": [8]}, {"55060072": [36, 136]}, {"55060075": [168, 1, 6, 64, 33, 145, 9]}, {"55060084": [1, 37, 72, 37, 161, 9]}, {"55060092": [3, 224]}, {"55060095": [8]}, {"55060100": [36, 136]}, {"55060103": [188, 1, 5, 64, 33, 129, 9]}, {"55060112": [5, 33]}, {"55060115": [2]}, {"55060120": [52, 9]}, {"55060124": [37, 41]}, {"55060127": [1, 161, 9]}, {"55060132": [3, 224]}, {"55060135": [8]}, {"55060140": [52, 8]}, {"55060143": [1, 160, 136]}, {"55060147": [61, 52, 8]}, {"55060151": [20, 160, 136]}, {"55060155": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060167": [8]}, {"55060172": [52, 8]}, {"55060175": [1, 160, 136]}, {"55060179": [50, 160, 136]}, {"55060183": [58, 52, 8]}, {"55060187": [48, 164, 136, 19, 244, 160, 136]}, {"55060195": [51, 3, 224]}, {"55060199": [8]}, {"55060204": [52, 8]}, {"55060207": [2, 160, 136]}, {"55060211": [50, 52, 8]}, {"55060215": [1, 160, 136]}, {"55060219": [58, 160, 136]}, {"55060223": [60, 52, 8]}, {"55060227": [96, 164, 136, 19, 244, 160, 136]}, {"55060235": [51, 3, 224]}, {"55060239": [8]}, {"55060244": [144, 136]}, {"55060247": [124, 52, 1]}, {"55060251": [255, 17, 1]}, {"55060255": [6, 52, 2]}, {"55060259": [107, 144, 136]}, {"55060263": [148, 45, 8]}, {"55060267": [6, 17]}, {"55060271": [2, 52, 2]}, {"55060275": [106, 52, 2]}, {"55060279": [3, 3, 224]}, {"55060283": [8]}, {"55060288": [144, 136]}, {"55060291": [123, 52, 1]}, {"55060295": [255, 17, 1]}, {"55060299": [2, 52, 162]}, {"55060304": [52, 2]}, {"55060307": [12, 3, 224]}, {"55060311": [8]}, {"55060316": [52, 8]}, {"55060319": [7, 160, 136]}, {"55060323": [123, 3, 224]}, {"55060327": [8]}, {"55060332": [48, 132]}, {"55060335": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060347": [140, 16, 129]}, {"55060351": [22, 145, 2]}, {"55060355": [117, 52, 1]}, {"55060359": [141, 16, 129]}, {"55060363": [19, 145, 2]}, {"55060367": [117, 16, 128]}, {"55060371": [17, 145, 2]}, {"55060375": [116, 52, 1]}, {"55060379": [138, 16, 129]}, {"55060383": [14, 145, 2]}, {"55060387": [116, 52, 1]}, {"55060391": [139, 16, 129]}, {"55060395": [11, 145, 2]}, {"55060399": [116, 52, 1]}, {"55060403": [88, 16, 129]}, {"55060407": [8, 52, 2]}, {"55060412": [52, 1]}, {"55060415": [120, 16, 129]}, {"55060419": [5, 52, 2]}, {"55060424": [52, 1]}, {"55060427": [121, 16, 129]}, {"55060431": [2, 52, 2]}, {"55060436": [52, 2]}, {"55060439": [255, 3, 224]}, {"55060443": [8]}, {"55060448": [39, 189, 255, 224, 175, 191]}, {"55060455": [16, 175, 176]}, {"55060459": [20, 12, 16, 10, 196]}, {"55060468": [4, 65]}, {"55060471": [2]}, {"55060476": [52, 2]}, {"55060479": [91]}, {"55060481": [64, 32, 33, 12, 16, 11, 36]}, {"55060492": [16, 96]}, {"55060495": [18, 175, 163]}, {"55060499": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060508": [133, 9]}, {"55060511": [2, 17, 32]}, {"55060515": [3, 52, 10]}, {"55060519": [1, 16]}, {"55060523": [8, 165, 10]}, {"55060528": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060539": [6, 144, 102]}, {"55060543": [7, 140, 105]}, {"55060547": [8, 1, 32, 248, 9]}, {"55060556": [143, 163]}, {"55060559": [28, 144, 101]}, {"55060563": [3, 16]}, {"55060567": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060579": [6]}, {"55060581": [74]}, {"55060583": [24]}, {"55060586": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060596": [60, 8, 128, 64, 37, 8, 32]}, {"55060604": [133, 9]}, {"55060607": [2, 17, 32]}, {"55060611": [3, 52, 10]}, {"55060615": [1, 165, 10]}, {"55060620": [52, 5]}, {"55060623": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060635": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060646": [48, 33, 143, 191]}, {"55060651": [16, 143, 176]}, {"55060655": [20, 39, 189]}, {"55060659": [32, 3, 224]}, {"55060663": [8]}, {"55060668": [143, 166]}, {"55060671": [48, 132, 197]}, {"55060675": [4, 8, 16, 10, 55]}, {"55060684": [143, 185]}, {"55060687": [44, 135, 37]}, {"55060691": [4, 8, 16, 10, 55]}, {"55060700": [60, 10, 128, 64, 37, 74, 32, 4, 141, 75]}, {"55060711": [12, 17, 96]}, {"55060715": [2]}, {"55060720": [149, 69]}, {"55060723": [4, 60, 10, 128, 64, 37, 74, 32, 20, 161, 64]}, {"55060736": [60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060748": [3, 224]}, {"55060751": [8]}, {"55060756": [60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55060767": [12, 17, 32]}, {"55060771": [2]}, {"55060776": [129, 3]}, {"55060779": [2]}, {"55060781": [3, 15, 195]}, {"55060785": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55060799": [8]}, {"55060804": [144, 69]}, {"55060807": [3, 60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55060819": [12, 17, 32]}, {"55060823": [2]}, {"55060828": [145, 5]}, {"55060831": [3, 3, 224]}, {"55060835": [8]}, {"55060840": [143, 162]}, {"55060843": [36, 144, 69]}, {"55060848": [60, 8, 128, 64, 37, 8, 32]}, {"55060856": [133, 9]}, {"55060859": [2, 17, 32]}, {"55060863": [4, 52, 10]}, {"55060867": [1, 165, 10]}, {"55060872": [16]}, {"55060875": [24, 52, 5]}, {"55060879": [65, 60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55060891": [12, 17, 32]}, {"55060895": [19]}, {"55060900": [145, 5]}, {"55060903": [1, 175, 164]}, {"55060908": [175, 165]}, {"55060911": [4, 175, 166]}, {"55060915": [8, 39, 189, 255, 232, 175, 191]}, {"55060923": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55060935": [6, 145, 6]}, {"55060939": [7, 141, 9]}, {"55060943": [8, 1, 32, 248, 9]}, {"55060952": [143, 191]}, {"55060955": [16, 39, 189]}, {"55060959": [24, 143, 164]}, {"55060964": [143, 165]}, {"55060967": [4, 143, 166]}, {"55060971": [8, 3, 224]}, {"55060975": [8]}, {"55060980": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55060991": [16, 175, 163]}, {"55060995": [20, 175, 191]}, {"55060999": [24, 12, 16, 10, 138]}, {"55061008": [143, 162]}, {"55061011": [16, 143, 163]}, {"55061015": [20, 143, 191]}, {"55061019": [24, 39, 189]}, {"55061023": [32, 3, 224]}, {"55061027": [8]}, {"55061032": [39, 189, 255, 232, 175, 191]}, {"55061039": [16, 60, 8, 128, 64, 37, 8, 32, 4, 173]}, {"55061052": [173]}, {"55061055": [4, 173]}, {"55061059": [8, 173]}, {"55061063": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061079": [42]}, {"55061085": [9, 15, 195, 1, 33, 32, 38]}, {"55061093": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 196]}, {"55061108": [4, 64]}, {"55061111": [34]}, {"55061116": [52, 68]}, {"55061120": [12, 16, 11, 36]}, {"55061128": [16, 96]}, {"55061131": [12]}, {"55061136": [60, 8, 128, 64, 37, 8, 32, 4, 140, 105]}, {"55061148": [173, 9]}, {"55061152": [140, 105]}, {"55061155": [4, 173, 9]}, {"55061159": [4, 140, 105]}, {"55061163": [8, 173, 9]}, {"55061167": [8, 52, 9]}, {"55061171": [1, 173, 9]}, {"55061175": [12, 144, 98]}, {"55061180": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061196": [52, 1]}, {"55061199": [10, 21, 65]}, {"55061203": [6]}, {"55061208": [149, 42]}, {"55061211": [28, 49, 74, 240, 31]}, {"55061217": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061227": [28, 129, 9, 4, 36, 5, 33]}, {"55061235": [2]}, {"55061241": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061251": [16, 39, 189]}, {"55061255": [24, 3, 224]}, {"55061259": [8]}, {"55061264": [39, 189, 255, 232, 175, 191]}, {"55061271": [16, 12, 16, 10, 210]}, {"55061280": [36, 1, 255, 255, 16, 65]}, {"55061287": [4]}, {"55061292": [52, 68]}, {"55061296": [12, 16, 11, 6]}, {"55061304": [143, 191]}, {"55061307": [16, 39, 189]}, {"55061311": [24, 3, 224]}, {"55061315": [8]}, {"55061320": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061331": [164, 52, 8]}, {"55061336": [52, 137]}, {"55061340": [148, 170]}, {"55061344": [52, 1, 1, 156, 21, 65]}, {"55061351": [8]}, {"55061356": [52, 8]}, {"55061359": [3, 148, 171]}, {"55061363": [28, 49, 105]}, {"55061367": [255, 49, 98, 31]}, {"55061373": [2, 18, 2, 16]}, {"55061379": [31]}, {"55061384": [52, 1]}, {"55061387": [10, 21, 65]}, {"55061391": [14]}, {"55061396": [148, 171]}, {"55061399": [28, 52, 1]}, {"55061403": [16, 20, 65]}, {"55061407": [8]}, {"55061412": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061423": [4]}, {"55061428": [36, 2, 255, 255, 16]}, {"55061435": [21]}, {"55061440": [52, 8]}, {"55061443": [1, 49, 105]}, {"55061447": [31, 52, 1]}, {"55061451": [21, 21, 65]}, {"55061455": [12]}, {"55061460": [52, 1]}, {"55061463": [62, 16, 129]}, {"55061467": [7]}, {"55061472": [52, 1]}, {"55061475": [66, 16, 129]}, {"55061479": [4]}, {"55061484": [36, 2, 255, 255, 16]}, {"55061491": [7]}, {"55061496": [52, 8]}, {"55061499": [2, 144, 169, 1, 65]}, {"55061505": [2, 18]}, {"55061509": [72, 16, 37]}, {"55061513": [2, 18]}, {"55061517": [73, 16, 37, 3, 224]}, {"55061523": [8]}, {"55061528": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061543": [4, 141, 9]}, {"55061548": [17, 32]}, {"55061551": [22]}, {"55061557": [9, 82, 2, 49, 75, 252]}, {"55061565": [11, 90, 130, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061588": [49, 34]}, {"55061591": [255, 60, 8, 128, 18, 37, 8, 165, 208, 161, 11, 20, 7, 60, 9, 128, 64, 37, 41, 32]}, {"55061612": [60, 12, 128, 64, 37, 140, 28]}, {"55061620": [129, 140]}, {"55061624": [17, 108]}, {"55061627": [3, 165, 32]}, {"55061631": [2, 161, 43]}, {"55061635": [2, 161, 34]}, {"55061639": [3, 3, 224]}, {"55061643": [8]}, {"55061648": [39, 189, 255, 224, 175, 176]}, {"55061655": [16, 175, 177]}, {"55061659": [20, 175, 191]}, {"55061663": [24, 52, 130]}, {"55061668": [52, 80]}, {"55061672": [38, 8, 255, 128, 5]}, {"55061679": [18]}, {"55061684": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55061695": [16, 1, 9]}, {"55061699": [24]}, {"55061702": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061720": [142, 40]}, {"55061723": [12, 1]}, {"55061726": [248, 9]}, {"55061732": [20, 80, 255, 239]}, {"55061740": [54, 35]}, {"55061744": [16]}, {"55061747": [2]}, {"55061752": [52, 3]}, {"55061756": [143, 176]}, {"55061759": [16, 143, 177]}, {"55061763": [20, 143, 191]}, {"55061767": [24, 39, 189]}, {"55061771": [32, 3, 224]}, {"55061775": [8]}, {"55061780": [140, 136, 29, 44, 52, 9]}, {"55061787": [1]}, {"55061789": [9, 78]}, {"55061792": [1, 9, 16, 36, 16, 64]}, {"55061799": [36]}, {"55061804": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55061819": [164, 52, 1]}, {"55061823": [61, 17, 129]}, {"55061827": [10]}, {"55061833": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55061843": [25]}, {"55061848": [52, 13]}, {"55061851": [1, 161, 141, 29, 40, 37, 74]}, {"55061859": [3, 16]}, {"55061863": [9]}, {"55061868": [52, 12]}, {"55061871": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55061887": [14]}, {"55061892": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55061928": [60, 9, 128, 64, 37, 41, 32, 20, 161, 40]}, {"55061940": [52, 2]}, {"55061944": [3, 224]}, {"55061947": [8]}, {"55061952": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55061964": [60, 9, 128, 64, 37, 41, 32, 20, 161, 40]}, {"55061976": [3, 224]}, {"55061979": [8]}, {"55061984": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55061996": [60, 9, 128, 64, 37, 41, 32, 20, 161, 40]}, {"55062008": [3, 224]}, {"55062011": [8]}, {"55062016": [175, 164]}, {"55062019": [104, 175, 165]}, {"55062023": [108, 175, 166]}, {"55062027": [112, 175, 167]}, {"55062031": [116, 39, 189, 255, 232, 175, 163]}, {"55062039": [16, 175, 191]}, {"55062043": [20, 60, 8, 128, 64, 37, 8, 32, 20, 129, 8]}, {"55062056": [17]}, {"55062059": [14]}, {"55062064": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062075": [1, 165, 42]}, {"55062080": [60, 9, 128, 65, 52, 10]}, {"55062087": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 138]}, {"55062116": [143, 163]}, {"55062119": [16, 143, 191]}, {"55062123": [20, 39, 189]}, {"55062127": [24, 143, 164]}, {"55062131": [104, 143, 165]}, {"55062135": [108, 143, 166]}, {"55062139": [112, 143, 167]}, {"55062143": [116, 132, 110, 19, 196, 3, 224]}, {"55062151": [8]}, {"55062156": [147, 25]}, {"55062159": [116, 52, 1]}, {"55062163": [255, 23, 33]}, {"55062167": [2]}, {"55062172": [52, 25]}, {"55062175": [44, 3, 224]}, {"55062179": [8, 167, 185]}, {"55062183": [154, 147, 44]}, {"55062187": [116, 52, 1]}, {"55062191": [255, 21, 129]}, {"55062195": [2]}, {"55062200": [52, 12]}, {"55062203": [44, 3, 224]}, {"55062207": [8]}, {"55062212": [145, 174]}, {"55062215": [116, 52, 1]}, {"55062219": [255, 21, 193]}, {"55062223": [2]}, {"55062228": [52, 14]}, {"55062231": [44, 3, 224]}, {"55062235": [8, 167, 174]}, {"55062239": [154, 145, 207]}, {"55062243": [116, 52, 1]}, {"55062247": [255, 21, 225]}, {"55062251": [2]}, {"55062256": [52, 15]}, {"55062259": [44, 3, 224]}, {"55062263": [8, 167, 175]}, {"55062267": [154, 60, 8, 128, 64, 37, 8, 32, 24, 142, 9]}, {"55062279": [104, 173, 9]}, {"55062284": [142, 9]}, {"55062287": [108, 173, 9]}, {"55062291": [4, 150, 9]}, {"55062295": [112, 165, 9]}, {"55062299": [8, 150, 9]}, {"55062303": [156, 165, 9]}, {"55062307": [10, 3, 224]}, {"55062311": [8, 142, 14]}, {"55062315": [4, 39, 189, 255, 224, 175, 176]}, {"55062323": [16, 175, 177]}, {"55062327": [20, 175, 191]}, {"55062331": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 24, 142, 8]}, {"55062351": [4, 17]}, {"55062355": [5]}, {"55062360": [12, 16, 11, 245]}, {"55062368": [16]}, {"55062371": [3]}, {"55062376": [12, 16, 12, 8]}, {"55062384": [12, 16, 11, 232, 52, 4]}, {"55062392": [12, 16, 11, 232, 52, 4]}, {"55062399": [1, 12, 16, 11, 232, 52, 4]}, {"55062407": [2, 143, 176]}, {"55062411": [16, 143, 177]}, {"55062415": [20, 143, 191]}, {"55062419": [24, 39, 189]}, {"55062423": [32, 3, 224]}, {"55062427": [8]}, {"55062432": [2, 4, 64, 33, 145, 9]}, {"55062439": [108, 52, 1]}, {"55062443": [255, 17, 33]}, {"55062447": [7]}, {"55062452": [2, 9, 72, 33, 145, 41]}, {"55062459": [116, 52, 1]}, {"55062463": [44, 17, 33]}, {"55062467": [2]}, {"55062472": [161, 9]}, {"55062475": [105, 3, 224]}, {"55062479": [8]}, {"55062484": [39, 189, 255, 232, 175, 191]}, {"55062491": [16, 142, 40]}, {"55062496": [174, 8]}, {"55062499": [64, 142, 40]}, {"55062503": [4, 174, 8]}, {"55062507": [68, 150, 40]}, {"55062511": [8, 166, 8]}, {"55062515": [72, 162]}, {"55062518": [15, 51, 146, 8]}, {"55062523": [74, 52, 1]}, {"55062527": [255, 21, 1]}, {"55062531": [3]}, {"55062536": [12, 16, 12, 22]}, {"55062544": [143, 191]}, {"55062547": [16, 39, 189]}, {"55062551": [24, 3, 224]}, {"55062555": [8]}, {"55062560": [142, 8]}, {"55062563": [64, 174, 8]}, {"55062567": [104, 142, 8]}, {"55062571": [68, 174, 8]}, {"55062575": [108, 150, 8]}, {"55062579": [72, 166, 8]}, {"55062583": [112, 146, 8]}, {"55062587": [104, 52, 1]}, {"55062591": [255, 21, 1]}, {"55062595": [3]}, {"55062600": [52, 8]}, {"55062603": [1, 162, 8, 15, 51, 3, 224]}, {"55062611": [8]}, {"55062616": [39, 189, 255, 232, 175, 191]}, {"55062623": [16, 150, 8]}, {"55062627": [156, 49, 8]}, {"55062631": [64, 17]}, {"55062635": [5]}, {"55062640": [150, 8]}, {"55062643": [112, 49, 8, 255, 15, 53, 8]}, {"55062651": [48, 166, 8]}, {"55062655": [112, 146, 40]}, {"55062659": [1, 162, 8]}, {"55062663": [105, 150, 40]}, {"55062667": [2, 166, 8]}, {"55062671": [106, 142, 40]}, {"55062675": [4, 174, 8]}, {"55062679": [108, 12, 16, 12, 48, 52, 4]}, {"55062688": [12, 16, 12, 48, 52, 4]}, {"55062695": [1, 12, 16, 12, 48, 52, 4]}, {"55062703": [2, 143, 191]}, {"55062707": [16, 39, 189]}, {"55062711": [24, 3, 224]}, {"55062715": [8]}, {"55062720": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 49, 108, 145, 10]}, {"55062735": [108, 52, 1]}, {"55062739": [255, 17, 65]}, {"55062743": [5]}, {"55062748": [1, 42, 72, 33, 145, 41]}, {"55062756": [21, 32]}, {"55062759": [28]}, {"55062764": [60, 9, 128, 64, 37, 41, 49, 95, 37, 41]}, {"55062775": [1, 145, 42]}, {"55062780": [17, 64]}, {"55062783": [19]}, {"55062788": [2, 10, 88, 33, 145, 107]}, {"55062795": [116, 52, 1]}, {"55062799": [255, 17, 97, 255, 248]}, {"55062808": [146, 12]}, {"55062811": [108, 17, 138, 255, 245]}, {"55062820": [146, 12]}, {"55062823": [109, 17, 138, 255, 242]}, {"55062832": [146, 12]}, {"55062835": [110, 17, 138, 255, 239]}, {"55062844": [161, 11]}, {"55062847": [105, 161, 10]}, {"55062851": [108, 16]}, {"55062855": [4]}, {"55062860": [52, 9]}, {"55062863": [255, 161, 9]}, {"55062867": [105, 161, 9]}, {"55062871": [108, 3, 224]}, {"55062875": [8]}, {"55062880": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55062893": [1, 1, 1, 1, 1]}, {"55062899": [1, 1, 1, 1, 1]}, {"55062905": [1]}, {"55062907": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55062917": [51, 8, 33, 32, 15]}, {"55062923": [71, 21, 234]}, {"55062927": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062939": [164]}, {"55062941": [15, 122, 3, 20, 64]}, {"55062947": [5, 52, 2, 72, 48, 21, 226]}, {"55062955": [7]}, {"55062960": [36, 25]}, {"55062963": [3, 16]}, {"55062967": [4, 52, 2, 99, 17, 21, 226]}, {"55062975": [2]}, {"55062980": [36, 25]}, {"55062983": [3, 3, 224]}, {"55062987": [8]}, {"55062992": [141, 173, 138, 160, 52, 2, 128]}, {"55063000": [16, 77]}, {"55063003": [2]}, {"55063008": [16]}, {"55063011": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063027": [1, 16, 64]}, {"55063031": [2]}, {"55063036": [16]}, {"55063039": [2, 52, 2]}, {"55063043": [1, 161, 226, 28, 191, 3, 224]}, {"55063051": [8]}, {"55063057": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063071": [164]}, {"55063073": [15, 122, 3, 20, 64]}, {"55063079": [5, 52, 2, 72, 48, 21, 226]}, {"55063087": [7]}, {"55063092": [36, 25]}, {"55063095": [3, 16]}, {"55063099": [4, 52, 2, 99, 17, 21, 226]}, {"55063107": [2]}, {"55063112": [36, 25]}, {"55063115": [3, 3, 224]}, {"55063119": [8]}, {"55063124": [162, 37]}, {"55063127": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063139": [4, 142, 10]}, {"55063144": [17, 64]}, {"55063147": [11]}, {"55063153": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063165": [24, 194, 2, 23]}, {"55063171": [3, 49, 89]}, {"55063175": [255, 129, 234]}, {"55063180": [3, 42, 200, 37, 8, 16, 12, 152, 161, 249]}, {"55063192": [3, 224]}, {"55063195": [8]}] \ No newline at end of file diff --git a/version.py b/version.py index a02c62de5..8c42249a1 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.7 f.LUM' +__version__ = '2.13.9 f.LUM' From 0aa3879a8cbb46166f2d174a037b5cd09dadb175 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Wed, 18 Jul 2018 19:29:33 -0400 Subject: [PATCH 171/755] Make 10 pack bombchu 99 rupees --- Rom.py | 7 +++++++ version.py | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Rom.py b/Rom.py index 35ea0892c..55e6f4f3b 100644 --- a/Rom.py +++ b/Rom.py @@ -1147,6 +1147,13 @@ def write_save_table(rom): rbl_bombchu.description_message = 0x80FE rbl_bombchu.purchase_message = 0x80FF + # Reduce 10 Pack Bombchus from 100 to 99 Rupees + shop_items[0x0015].price = 99 + shop_items[0x0019].price = 99 + shop_items[0x001C].price = 99 + update_message_by_id(messages, shop_items[0x001C].description_message, "\x08\x05\x41Bombchu (10 pieces) 99 Rupees\x01\x05\x40This looks like a toy mouse, but\x01it's actually a self-propelled time\x01bomb!\x09\x0A") + update_message_by_id(messages, shop_items[0x001C].purchase_message, "\x08Bombchu 10 pieces 100 Rupees\x09\x01\x01\x1B\x05\x42Buy\x01Don't buy\x05\x40") + #Fix bombchu chest animations chestAnimations = { 0x6A: 0x28, #0xD8 #Bombchu (5) diff --git a/version.py b/version.py index f0802290f..a02c62de5 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.6 f.LUM' +__version__ = '2.13.7 f.LUM' From 26bf2205744d7cd96e190864fd290a6b220db62b Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Wed, 18 Jul 2018 19:05:30 -0500 Subject: [PATCH 172/755] Fixed skulltulas not giving biggoron sword and refills correctly. --- ASM/src/item_overrides.asm | 6 ++++++ data/base2current.json | 2 +- version.py | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/ASM/src/item_overrides.asm b/ASM/src/item_overrides.asm index c3f7b600e..427f4736b 100755 --- a/ASM/src/item_overrides.asm +++ b/ASM/src/item_overrides.asm @@ -64,6 +64,12 @@ override_skulltula_token: jalr t1 nop + ; run original action + lw v1, 0x1C (sp) + lbu a1, ITEM_ROW_ACTION_ID (v1) + jal 0x0006fdcc ; call ex_06fdcc(ctx, item) ; this gives link the item + move a0,s1 ; a0 = ctx + ; message id is in the extended item table lw v1, 0x1C (sp) lbu a1, ITEM_ROW_TEXT_ID (v1) diff --git a/data/base2current.json b/data/base2current.json index 43f95faa0..0af2c7d0e 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -1 +1 @@ -[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 91]}, {"11325064": [12, 16, 11, 61, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 11, 152]}, {"11427312": [12, 16, 12, 65]}, {"11431496": [12, 16, 11, 69, 1, 15, 192, 33]}, {"11562028": [12, 16, 12, 98]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 12, 81]}, {"11882076": [12, 16, 12, 46]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 11, 119, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 11, 126, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 11, 133, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 11, 112, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 43]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 9, 207]}, {"12427480": [12, 16, 10, 21]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 25]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 11, 77, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 55]}, {"12491480": [12, 16, 10, 64]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 18]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 11, 140]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 140, 73]}, {"14149503": [164]}, {"14149512": [2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149856": [87]}, {"14149859": [15]}, {"14357459": [118]}, {"14624335": [118]}, {"14872723": [52]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 9, 236, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 9, 236, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057408": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058464": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 104, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 132, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 172, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 212, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 252, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 36, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 64, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 92, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 120, 83, 65, 56, 67]}, {"55058613": [235, 21, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 55, 68]}, {"55058629": [235, 22, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 57, 69]}, {"55058645": [235, 23, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 63, 71]}, {"55058677": [244, 25, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 10, 6]}, {"55058757": [185, 1, 3, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 28]}, {"55058773": [185, 1, 4, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 29]}, {"55058789": [185, 1, 5, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 30]}, {"55058805": [185, 1, 6, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 42]}, {"55058821": [185, 1, 7, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 97]}, {"55058837": [185, 1, 10, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 98]}, {"55058853": [184, 2]}, {"55058856": [128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 99]}, {"55058869": [184, 2, 1, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 100]}, {"55058885": [184, 2, 2, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 101]}, {"55058901": [184, 2, 3, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 124]}, {"55058917": [184, 2, 4, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 125]}, {"55058933": [184, 2, 5, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 126]}, {"55058949": [184, 2, 6, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 127]}, {"55058965": [184, 2, 7, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 162]}, {"55058981": [184, 2, 8, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 135]}, {"55058997": [184, 2, 9, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 136]}, {"55059013": [200, 4]}, {"55059016": [128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 137]}, {"55059029": [200, 4, 1, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 138]}, {"55059045": [200, 4, 2, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 139]}, {"55059061": [200, 4, 3, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 140]}, {"55059077": [200, 4, 4, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 142]}, {"55059093": [200, 4, 5, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 143]}, {"55059109": [200, 4, 6, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 163]}, {"55059125": [200, 4, 7, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 165]}, {"55059141": [200, 4, 8, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 146]}, {"55059157": [200, 4, 9, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 2, 147]}, {"55059173": [170, 3, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 148]}, {"55059189": [170, 4, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 149]}, {"55059205": [170, 5, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 166]}, {"55059221": [170, 6, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 169]}, {"55059237": [170, 7, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 155]}, {"55059253": [170, 8, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 159]}, {"55059269": [170, 11, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 160]}, {"55059285": [170, 12, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 161]}, {"55059301": [170, 13, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 61, 67, 12]}, {"55059317": [248, 255, 255, 128, 64, 37, 236, 128, 64, 36, 96, 77, 131, 247, 85]}, {"55059333": [183, 255, 255, 128, 64, 37, 228, 128, 64, 36, 96, 77, 146, 219, 230]}, {"55059349": [216, 255, 255, 128, 64, 37, 228, 128, 64, 37, 172, 77, 147, 218, 230]}, {"55059365": [216, 255, 255, 128, 64, 37, 228, 128, 64, 37, 172, 77, 148, 217, 230]}, {"55059381": [216, 255, 255, 128, 64, 37, 228, 128, 64, 37, 172, 77, 142, 224, 50]}, {"55059397": [206, 255, 255, 128, 64, 37, 228, 128, 64, 37, 200, 77, 143, 224, 50]}, {"55059413": [206, 255, 255, 128, 64, 37, 228, 128, 64, 37, 200, 77, 144, 224, 50]}, {"55059429": [206, 255, 255, 128, 64, 37, 228, 128, 64, 37, 200, 77, 140, 238, 52]}, {"55059445": [187, 255, 255, 128, 64, 37, 228, 128, 64, 36, 96, 77, 141, 238, 52]}, {"55059461": [187, 255, 255, 128, 64, 37, 228, 128, 64, 36, 96, 79, 65, 19, 233]}, {"55059477": [189, 255, 255, 128, 64, 38, 124, 128, 64, 36, 96, 79, 65, 30, 228]}, {"55059493": [205, 255, 255, 128, 64, 38, 156, 128, 64, 37, 148, 79, 65, 31, 232]}, {"55059509": [205, 255, 255, 128, 64, 38, 188, 128, 64, 36, 96, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 38, 228, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 39, 44, 128, 64, 39, 16, 3, 224]}, {"55059555": [8, 52, 162]}, {"55059560": [144, 136]}, {"55059563": [125, 52, 1]}, {"55059567": [255, 17, 1]}, {"55059571": [2, 52, 2]}, {"55059575": [8, 52, 2]}, {"55059579": [9, 3, 224]}, {"55059583": [8]}, {"55059588": [144, 136]}, {"55059591": [163, 49, 8]}, {"55059595": [192, 17]}, {"55059599": [5, 52, 2]}, {"55059603": [84, 52, 1]}, {"55059607": [64, 17, 1]}, {"55059611": [2, 52, 2]}, {"55059615": [53, 52, 2]}, {"55059619": [54, 3, 224]}, {"55059623": [8]}, {"55059628": [144, 136]}, {"55059631": [163, 49, 8]}, {"55059635": [24, 17]}, {"55059639": [5, 52, 2]}, {"55059643": [50, 52, 1]}, {"55059647": [8, 17, 1]}, {"55059651": [2, 52, 2]}, {"55059655": [51, 52, 2]}, {"55059659": [52, 3, 224]}, {"55059663": [8]}, {"55059668": [144, 136]}, {"55059671": [163, 49, 8]}, {"55059675": [3, 17]}, {"55059679": [5, 52, 2]}, {"55059683": [4, 52, 1]}, {"55059687": [1, 17, 1]}, {"55059691": [2, 52, 2]}, {"55059695": [48, 52, 2]}, {"55059699": [49, 3, 224]}, {"55059703": [8]}, {"55059708": [144, 136]}, {"55059711": [162, 49, 8]}, {"55059715": [192, 17]}, {"55059719": [5, 52, 2]}, {"55059723": [5, 52, 1]}, {"55059727": [64, 17, 1]}, {"55059731": [2, 52, 2]}, {"55059735": [96, 52, 2]}, {"55059739": [123, 3, 224]}, {"55059743": [8]}, {"55059748": [144, 136]}, {"55059751": [162, 49, 8]}, {"55059755": [48, 17]}, {"55059759": [2, 52, 2]}, {"55059763": [69, 52, 2]}, {"55059767": [70, 3, 224]}, {"55059771": [8]}, {"55059776": [144, 136]}, {"55059779": [162, 49, 8]}, {"55059783": [6, 17]}, {"55059787": [2, 52, 2]}, {"55059791": [55, 52, 2]}, {"55059795": [56, 3, 224]}, {"55059799": [8]}, {"55059804": [144, 136]}, {"55059807": [161, 49, 8]}, {"55059811": [32, 17]}, {"55059815": [2, 52, 2]}, {"55059819": [121, 52, 2]}, {"55059823": [122, 3, 224]}, {"55059827": [8]}, {"55059832": [144, 136]}, {"55059835": [161, 49, 8]}, {"55059839": [4, 17]}, {"55059843": [2, 52, 2]}, {"55059847": [119, 52, 2]}, {"55059851": [120, 3, 224]}, {"55059855": [8]}, {"55059860": [144, 136]}, {"55059863": [50, 17]}, {"55059867": [2, 52, 2]}, {"55059871": [192, 52, 2]}, {"55059875": [193, 3, 224]}, {"55059879": [8]}, {"55059884": [144, 136]}, {"55059887": [163, 49, 8]}, {"55059891": [3, 17]}, {"55059895": [2, 52, 2]}, {"55059899": [77, 52, 162]}, {"55059904": [3, 224]}, {"55059907": [8]}, {"55059912": [144, 136]}, {"55059915": [163, 49, 8]}, {"55059919": [24, 17]}, {"55059923": [2, 52, 2]}, {"55059927": [77, 52, 162]}, {"55059932": [3, 224]}, {"55059935": [8]}, {"55059940": [3, 224]}, {"55059943": [8]}, {"55059948": [52, 8]}, {"55059951": [1, 160, 136]}, {"55059955": [62, 3, 224]}, {"55059959": [8]}, {"55059964": [36, 136]}, {"55059967": [134, 36, 9, 255, 255, 37, 41]}, {"55059975": [1, 52, 1]}, {"55059979": [3]}, {"55059981": [41, 8, 42, 20, 32]}, {"55059987": [7]}, {"55059992": [1, 9, 80, 33, 145, 75]}, {"55060000": [52, 1]}, {"55060003": [255, 21, 97, 255, 247]}, {"55060012": [161, 69]}, {"55060016": [3, 224]}, {"55060019": [8]}, {"55060024": [36, 136]}, {"55060027": [168, 1, 6, 64, 33, 145, 9]}, {"55060036": [1, 37, 72, 37, 161, 9]}, {"55060044": [3, 224]}, {"55060047": [8]}, {"55060052": [36, 136]}, {"55060055": [188, 1, 5, 64, 33, 129, 9]}, {"55060064": [5, 33]}, {"55060067": [2]}, {"55060072": [52, 9]}, {"55060076": [37, 41]}, {"55060079": [1, 161, 9]}, {"55060084": [3, 224]}, {"55060087": [8]}, {"55060092": [52, 8]}, {"55060095": [1, 160, 136]}, {"55060099": [61, 52, 8]}, {"55060103": [20, 160, 136]}, {"55060107": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060119": [8]}, {"55060124": [52, 8]}, {"55060127": [1, 160, 136]}, {"55060131": [50, 160, 136]}, {"55060135": [58, 52, 8]}, {"55060139": [48, 164, 136, 19, 244, 160, 136]}, {"55060147": [51, 3, 224]}, {"55060151": [8]}, {"55060156": [52, 8]}, {"55060159": [2, 160, 136]}, {"55060163": [50, 52, 8]}, {"55060167": [1, 160, 136]}, {"55060171": [58, 160, 136]}, {"55060175": [60, 52, 8]}, {"55060179": [96, 164, 136, 19, 244, 160, 136]}, {"55060187": [51, 3, 224]}, {"55060191": [8]}, {"55060196": [144, 136]}, {"55060199": [124, 52, 1]}, {"55060203": [255, 17, 1]}, {"55060207": [6, 52, 2]}, {"55060211": [107, 144, 136]}, {"55060215": [148, 45, 8]}, {"55060219": [6, 17]}, {"55060223": [2, 52, 2]}, {"55060227": [106, 52, 2]}, {"55060231": [3, 3, 224]}, {"55060235": [8]}, {"55060240": [144, 136]}, {"55060243": [123, 52, 1]}, {"55060247": [255, 17, 1]}, {"55060251": [2, 52, 162]}, {"55060256": [52, 2]}, {"55060259": [12, 3, 224]}, {"55060263": [8]}, {"55060268": [52, 8]}, {"55060271": [7, 160, 136]}, {"55060275": [123, 3, 224]}, {"55060279": [8]}, {"55060284": [48, 132]}, {"55060287": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060299": [140, 16, 129]}, {"55060303": [22, 145, 2]}, {"55060307": [117, 52, 1]}, {"55060311": [141, 16, 129]}, {"55060315": [19, 145, 2]}, {"55060319": [117, 16, 128]}, {"55060323": [17, 145, 2]}, {"55060327": [116, 52, 1]}, {"55060331": [138, 16, 129]}, {"55060335": [14, 145, 2]}, {"55060339": [116, 52, 1]}, {"55060343": [139, 16, 129]}, {"55060347": [11, 145, 2]}, {"55060351": [116, 52, 1]}, {"55060355": [88, 16, 129]}, {"55060359": [8, 52, 2]}, {"55060364": [52, 1]}, {"55060367": [120, 16, 129]}, {"55060371": [5, 52, 2]}, {"55060376": [52, 1]}, {"55060379": [121, 16, 129]}, {"55060383": [2, 52, 2]}, {"55060388": [52, 2]}, {"55060391": [255, 3, 224]}, {"55060395": [8]}, {"55060400": [39, 189, 255, 224, 175, 191]}, {"55060407": [16, 175, 176]}, {"55060411": [20, 12, 16, 10, 162]}, {"55060420": [4, 65]}, {"55060423": [2]}, {"55060428": [52, 2]}, {"55060431": [91]}, {"55060433": [64, 32, 33, 12, 16, 10, 241]}, {"55060444": [16, 96]}, {"55060447": [11, 175, 163]}, {"55060451": [28, 60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060463": [6, 144, 102]}, {"55060467": [7, 140, 105]}, {"55060471": [8, 1, 32, 248, 9]}, {"55060480": [143, 163]}, {"55060483": [28, 144, 101]}, {"55060487": [3, 16]}, {"55060491": [10, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060503": [6]}, {"55060505": [74]}, {"55060507": [24]}, {"55060510": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060520": [12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060531": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060542": [48, 33, 143, 191]}, {"55060547": [16, 143, 176]}, {"55060551": [20, 39, 189]}, {"55060555": [32, 3, 224]}, {"55060559": [8]}, {"55060564": [143, 166]}, {"55060567": [48, 132, 197]}, {"55060571": [4, 8, 16, 10, 29]}, {"55060580": [143, 185]}, {"55060583": [44, 135, 37]}, {"55060587": [4, 8, 16, 10, 29]}, {"55060596": [60, 10, 128, 64, 37, 74, 32]}, {"55060604": [141, 75]}, {"55060607": [12, 17, 96]}, {"55060611": [2]}, {"55060616": [149, 69]}, {"55060619": [4, 60, 10, 128, 64, 37, 74, 32, 16, 161, 64]}, {"55060632": [60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060644": [3, 224]}, {"55060647": [8]}, {"55060652": [60, 8, 128, 64, 37, 8, 32]}, {"55060660": [141, 9]}, {"55060663": [12, 17, 32]}, {"55060667": [2]}, {"55060672": [129, 3]}, {"55060675": [2]}, {"55060677": [3, 15, 195]}, {"55060681": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55060695": [8]}, {"55060700": [144, 69]}, {"55060703": [3, 60, 8, 128, 64, 37, 8, 32]}, {"55060712": [141, 9]}, {"55060715": [12, 17, 32]}, {"55060719": [2]}, {"55060724": [145, 5]}, {"55060727": [3, 3, 224]}, {"55060731": [8]}, {"55060736": [143, 162]}, {"55060739": [36, 144, 69]}, {"55060744": [60, 8, 128, 64, 37, 8, 32]}, {"55060752": [141, 9]}, {"55060755": [12, 17, 32]}, {"55060759": [19]}, {"55060764": [145, 5]}, {"55060767": [1, 175, 164]}, {"55060772": [175, 165]}, {"55060775": [4, 175, 166]}, {"55060779": [8, 39, 189, 255, 232, 175, 191]}, {"55060787": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55060799": [6, 145, 6]}, {"55060803": [7, 141, 9]}, {"55060807": [8, 1, 32, 248, 9]}, {"55060816": [143, 191]}, {"55060819": [16, 39, 189]}, {"55060823": [24, 143, 164]}, {"55060828": [143, 165]}, {"55060831": [4, 143, 166]}, {"55060835": [8, 3, 224]}, {"55060839": [8]}, {"55060844": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55060855": [16, 175, 163]}, {"55060859": [20, 175, 191]}, {"55060863": [24, 12, 16, 10, 104]}, {"55060872": [143, 162]}, {"55060875": [16, 143, 163]}, {"55060879": [20, 143, 191]}, {"55060883": [24, 39, 189]}, {"55060887": [32, 3, 224]}, {"55060891": [8]}, {"55060896": [39, 189, 255, 232, 175, 191]}, {"55060903": [16, 60, 8, 128, 64, 37, 8, 32]}, {"55060912": [173]}, {"55060916": [173]}, {"55060919": [4, 173]}, {"55060923": [8, 173]}, {"55060927": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55060943": [42]}, {"55060949": [9, 15, 195, 1, 33, 32, 38]}, {"55060957": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 162]}, {"55060972": [4, 64]}, {"55060975": [34]}, {"55060980": [52, 68]}, {"55060984": [12, 16, 10, 241]}, {"55060992": [16, 96]}, {"55060995": [12]}, {"55061000": [60, 8, 128, 64, 37, 8, 32]}, {"55061008": [140, 105]}, {"55061012": [173, 9]}, {"55061016": [140, 105]}, {"55061019": [4, 173, 9]}, {"55061023": [4, 140, 105]}, {"55061027": [8, 173, 9]}, {"55061031": [8, 52, 9]}, {"55061035": [1, 173, 9]}, {"55061039": [12, 144, 98]}, {"55061044": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061060": [52, 1]}, {"55061063": [10, 21, 65]}, {"55061067": [6]}, {"55061072": [149, 42]}, {"55061075": [28, 49, 74, 240, 31]}, {"55061081": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061091": [28, 129, 9, 4, 36, 5, 33]}, {"55061099": [2]}, {"55061105": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061115": [16, 39, 189]}, {"55061119": [24, 3, 224]}, {"55061123": [8]}, {"55061128": [39, 189, 255, 232, 175, 191]}, {"55061135": [16, 12, 16, 10, 176]}, {"55061144": [36, 1, 255, 255, 16, 65]}, {"55061151": [4]}, {"55061156": [52, 68]}, {"55061160": [12, 16, 10, 228]}, {"55061168": [143, 191]}, {"55061171": [16, 39, 189]}, {"55061175": [24, 3, 224]}, {"55061179": [8]}, {"55061184": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061195": [164, 52, 8]}, {"55061200": [52, 137]}, {"55061204": [148, 170]}, {"55061208": [52, 1, 1, 156, 21, 65]}, {"55061215": [8]}, {"55061220": [52, 8]}, {"55061223": [3, 148, 171]}, {"55061227": [28, 49, 105]}, {"55061231": [255, 49, 98, 31]}, {"55061237": [2, 18, 2, 16]}, {"55061243": [31]}, {"55061248": [52, 1]}, {"55061251": [10, 21, 65]}, {"55061255": [14]}, {"55061260": [148, 171]}, {"55061263": [28, 52, 1]}, {"55061267": [16, 20, 65]}, {"55061271": [8]}, {"55061276": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061287": [4]}, {"55061292": [36, 2, 255, 255, 16]}, {"55061299": [21]}, {"55061304": [52, 8]}, {"55061307": [1, 49, 105]}, {"55061311": [31, 52, 1]}, {"55061315": [21, 21, 65]}, {"55061319": [12]}, {"55061324": [52, 1]}, {"55061327": [62, 16, 129]}, {"55061331": [7]}, {"55061336": [52, 1]}, {"55061339": [66, 16, 129]}, {"55061343": [4]}, {"55061348": [36, 2, 255, 255, 16]}, {"55061355": [7]}, {"55061360": [52, 8]}, {"55061363": [2, 144, 169, 1, 65]}, {"55061369": [2, 18]}, {"55061373": [72, 16, 37]}, {"55061377": [2, 18]}, {"55061381": [73, 16, 37, 3, 224]}, {"55061387": [8]}, {"55061392": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061407": [4, 141, 9]}, {"55061412": [17, 32]}, {"55061415": [5]}, {"55061421": [9, 82, 2, 21, 68, 255, 250]}, {"55061432": [49, 34]}, {"55061435": [255, 3, 224]}, {"55061439": [8]}, {"55061444": [39, 189, 255, 224, 175, 176]}, {"55061451": [16, 175, 177]}, {"55061455": [20, 175, 191]}, {"55061459": [24, 52, 130]}, {"55061464": [52, 80]}, {"55061468": [38, 8, 255, 128, 5]}, {"55061475": [18]}, {"55061480": [60, 17, 128, 64, 38, 49, 32, 32, 52, 9]}, {"55061491": [16, 1, 9]}, {"55061495": [24]}, {"55061498": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061516": [142, 40]}, {"55061519": [12, 1]}, {"55061522": [248, 9]}, {"55061528": [20, 80, 255, 239]}, {"55061536": [54, 35]}, {"55061540": [16]}, {"55061543": [2]}, {"55061548": [52, 3]}, {"55061552": [143, 176]}, {"55061555": [16, 143, 177]}, {"55061559": [20, 143, 191]}, {"55061563": [24, 39, 189]}, {"55061567": [32, 3, 224]}, {"55061571": [8]}, {"55061576": [140, 136, 29, 44, 52, 9]}, {"55061583": [1]}, {"55061585": [9, 78]}, {"55061588": [1, 9, 16, 36, 16, 64]}, {"55061595": [36]}, {"55061600": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55061615": [164, 52, 1]}, {"55061619": [61, 17, 129]}, {"55061623": [10]}, {"55061629": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55061639": [25]}, {"55061644": [52, 13]}, {"55061647": [1, 161, 141, 29, 40, 37, 74]}, {"55061655": [3, 16]}, {"55061659": [9]}, {"55061664": [52, 12]}, {"55061667": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55061683": [14]}, {"55061688": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 2, 1, 10, 64, 33, 129, 8]}, {"55061724": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061736": [52, 2]}, {"55061740": [3, 224]}, {"55061743": [8]}, {"55061748": [60, 8, 128, 64, 37, 8, 28]}, {"55061756": [129, 8]}, {"55061760": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061772": [3, 224]}, {"55061775": [8]}, {"55061780": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55061792": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061804": [3, 224]}, {"55061807": [8]}, {"55061812": [175, 164]}, {"55061815": [104, 175, 165]}, {"55061819": [108, 175, 166]}, {"55061823": [112, 175, 167]}, {"55061827": [116, 39, 189, 255, 232, 175, 163]}, {"55061835": [16, 175, 191]}, {"55061839": [20, 60, 8, 128, 64, 37, 8, 32, 16, 129, 8]}, {"55061852": [17]}, {"55061855": [14]}, {"55061860": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55061871": [1, 165, 42]}, {"55061876": [60, 9, 128, 65, 52, 10]}, {"55061883": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 104]}, {"55061912": [143, 163]}, {"55061915": [16, 143, 191]}, {"55061919": [20, 39, 189]}, {"55061923": [24, 143, 164]}, {"55061927": [104, 143, 165]}, {"55061931": [108, 143, 166]}, {"55061935": [112, 143, 167]}, {"55061939": [116, 132, 110, 19, 196, 3, 224]}, {"55061947": [8]}, {"55061952": [147, 25]}, {"55061955": [116, 52, 1]}, {"55061959": [255, 23, 33]}, {"55061963": [2]}, {"55061968": [52, 25]}, {"55061971": [44, 3, 224]}, {"55061975": [8, 167, 185]}, {"55061979": [154, 147, 44]}, {"55061983": [116, 52, 1]}, {"55061987": [255, 21, 129]}, {"55061991": [2]}, {"55061996": [52, 12]}, {"55061999": [44, 3, 224]}, {"55062003": [8]}, {"55062008": [145, 174]}, {"55062011": [116, 52, 1]}, {"55062015": [255, 21, 193]}, {"55062019": [2]}, {"55062024": [52, 14]}, {"55062027": [44, 3, 224]}, {"55062031": [8, 167, 174]}, {"55062035": [154, 145, 207]}, {"55062039": [116, 52, 1]}, {"55062043": [255, 21, 225]}, {"55062047": [2]}, {"55062052": [52, 15]}, {"55062055": [44, 3, 224]}, {"55062059": [8, 167, 175]}, {"55062063": [154, 60, 8, 128, 64, 37, 8, 32, 20, 142, 9]}, {"55062075": [104, 173, 9]}, {"55062080": [142, 9]}, {"55062083": [108, 173, 9]}, {"55062087": [4, 150, 9]}, {"55062091": [112, 165, 9]}, {"55062095": [8, 150, 9]}, {"55062099": [156, 165, 9]}, {"55062103": [10, 3, 224]}, {"55062107": [8, 142, 14]}, {"55062111": [4, 39, 189, 255, 224, 175, 176]}, {"55062119": [16, 175, 177]}, {"55062123": [20, 175, 191]}, {"55062127": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 20, 142, 8]}, {"55062147": [4, 17]}, {"55062151": [5]}, {"55062156": [12, 16, 11, 194]}, {"55062164": [16]}, {"55062167": [3]}, {"55062172": [12, 16, 11, 213]}, {"55062180": [12, 16, 11, 181, 52, 4]}, {"55062188": [12, 16, 11, 181, 52, 4]}, {"55062195": [1, 12, 16, 11, 181, 52, 4]}, {"55062203": [2, 143, 176]}, {"55062207": [16, 143, 177]}, {"55062211": [20, 143, 191]}, {"55062215": [24, 39, 189]}, {"55062219": [32, 3, 224]}, {"55062223": [8]}, {"55062228": [2, 4, 64, 33, 145, 9]}, {"55062235": [108, 52, 1]}, {"55062239": [255, 17, 33]}, {"55062243": [7]}, {"55062248": [2, 9, 72, 33, 145, 41]}, {"55062255": [116, 52, 1]}, {"55062259": [44, 17, 33]}, {"55062263": [2]}, {"55062268": [161, 9]}, {"55062271": [105, 3, 224]}, {"55062275": [8]}, {"55062280": [39, 189, 255, 232, 175, 191]}, {"55062287": [16, 142, 40]}, {"55062292": [174, 8]}, {"55062295": [64, 142, 40]}, {"55062299": [4, 174, 8]}, {"55062303": [68, 150, 40]}, {"55062307": [8, 166, 8]}, {"55062311": [72, 162]}, {"55062314": [15, 51, 146, 8]}, {"55062319": [74, 52, 1]}, {"55062323": [255, 21, 1]}, {"55062327": [3]}, {"55062332": [12, 16, 11, 227]}, {"55062340": [143, 191]}, {"55062343": [16, 39, 189]}, {"55062347": [24, 3, 224]}, {"55062351": [8]}, {"55062356": [142, 8]}, {"55062359": [64, 174, 8]}, {"55062363": [104, 142, 8]}, {"55062367": [68, 174, 8]}, {"55062371": [108, 150, 8]}, {"55062375": [72, 166, 8]}, {"55062379": [112, 146, 8]}, {"55062383": [104, 52, 1]}, {"55062387": [255, 21, 1]}, {"55062391": [3]}, {"55062396": [52, 8]}, {"55062399": [1, 162, 8, 15, 51, 3, 224]}, {"55062407": [8]}, {"55062412": [39, 189, 255, 232, 175, 191]}, {"55062419": [16, 150, 8]}, {"55062423": [156, 49, 8]}, {"55062427": [64, 17]}, {"55062431": [5]}, {"55062436": [150, 8]}, {"55062439": [112, 49, 8, 255, 15, 53, 8]}, {"55062447": [48, 166, 8]}, {"55062451": [112, 146, 40]}, {"55062455": [1, 162, 8]}, {"55062459": [105, 150, 40]}, {"55062463": [2, 166, 8]}, {"55062467": [106, 142, 40]}, {"55062471": [4, 174, 8]}, {"55062475": [108, 12, 16, 11, 253, 52, 4]}, {"55062484": [12, 16, 11, 253, 52, 4]}, {"55062491": [1, 12, 16, 11, 253, 52, 4]}, {"55062499": [2, 143, 191]}, {"55062503": [16, 39, 189]}, {"55062507": [24, 3, 224]}, {"55062511": [8]}, {"55062516": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 48, 160, 145, 10]}, {"55062531": [108, 52, 1]}, {"55062535": [255, 17, 65]}, {"55062539": [5]}, {"55062544": [1, 42, 72, 33, 145, 41]}, {"55062552": [21, 32]}, {"55062555": [28]}, {"55062560": [60, 9, 128, 64, 37, 41, 48, 147, 37, 41]}, {"55062571": [1, 145, 42]}, {"55062576": [17, 64]}, {"55062579": [19]}, {"55062584": [2, 10, 88, 33, 145, 107]}, {"55062591": [116, 52, 1]}, {"55062595": [255, 17, 97, 255, 248]}, {"55062604": [146, 12]}, {"55062607": [108, 17, 138, 255, 245]}, {"55062616": [146, 12]}, {"55062619": [109, 17, 138, 255, 242]}, {"55062628": [146, 12]}, {"55062631": [110, 17, 138, 255, 239]}, {"55062640": [161, 11]}, {"55062643": [105, 161, 10]}, {"55062647": [108, 16]}, {"55062651": [4]}, {"55062656": [52, 9]}, {"55062659": [255, 161, 9]}, {"55062663": [105, 161, 9]}, {"55062667": [108, 3, 224]}, {"55062671": [8]}, {"55062676": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55062689": [1, 1, 1, 1, 1]}, {"55062695": [1, 1, 1, 1, 1]}, {"55062701": [1]}, {"55062703": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55062713": [51, 8, 33, 32, 15]}, {"55062719": [71, 21, 234]}, {"55062723": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062735": [164]}, {"55062737": [15, 122, 3, 20, 64]}, {"55062743": [5, 52, 2, 72, 48, 21, 226]}, {"55062751": [7]}, {"55062756": [36, 25]}, {"55062759": [3, 16]}, {"55062763": [4, 52, 2, 99, 17, 21, 226]}, {"55062771": [2]}, {"55062776": [36, 25]}, {"55062779": [3, 3, 224]}, {"55062783": [8]}, {"55062788": [141, 173, 138, 160, 52, 2, 128]}, {"55062796": [16, 77]}, {"55062799": [2]}, {"55062804": [16]}, {"55062807": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55062823": [1, 16, 64]}, {"55062827": [2]}, {"55062832": [16]}, {"55062835": [2, 52, 2]}, {"55062839": [1, 161, 226, 28, 191, 3, 224]}, {"55062847": [8]}, {"55062853": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062867": [164]}, {"55062869": [15, 122, 3, 20, 64]}, {"55062875": [5, 52, 2, 72, 48, 21, 226]}, {"55062883": [7]}, {"55062888": [36, 25]}, {"55062891": [3, 16]}, {"55062895": [4, 52, 2, 99, 17, 21, 226]}, {"55062903": [2]}, {"55062908": [36, 25]}, {"55062911": [3, 3, 224]}, {"55062915": [8]}, {"55062920": [162, 37]}, {"55062923": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55062935": [4, 142, 10]}, {"55062940": [17, 64]}, {"55062943": [11]}, {"55062949": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55062961": [24, 194, 2, 23]}, {"55062967": [3, 49, 89]}, {"55062971": [255, 129, 234]}, {"55062976": [3, 42, 200, 37, 8, 16, 12, 101, 161, 249]}, {"55062988": [3, 224]}, {"55062991": [8]}] \ No newline at end of file +[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 95]}, {"11325064": [12, 16, 11, 65, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 11, 156]}, {"11427312": [12, 16, 12, 69]}, {"11431496": [12, 16, 11, 73, 1, 15, 192, 33]}, {"11562028": [12, 16, 12, 102]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 12, 85]}, {"11882076": [12, 16, 12, 50]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 11, 123, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 11, 130, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 11, 137, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 11]}, {"12287068": [0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 47]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 9, 207]}, {"12427480": [12, 16, 10, 25]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 29]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 11, 81, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 59]}, {"12491480": [12, 16, 10, 68]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 22]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 11, 144]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 140, 73]}, {"14149503": [164]}, {"14149512": [2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149856": [87]}, {"14149859": [15]}, {"14357459": [118]}, {"14624335": [118]}, {"14872723": [52]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 9, 236, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 9, 236, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057408": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058464": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 104, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 132, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 172, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 212, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 252, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 36, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 64, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 92, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 120, 83, 65, 56, 67]}, {"55058613": [235, 21, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 55, 68]}, {"55058629": [235, 22, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 57, 69]}, {"55058645": [235, 23, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 63, 71]}, {"55058677": [244, 25, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 10, 6]}, {"55058757": [185, 1, 3, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 28]}, {"55058773": [185, 1, 4, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 29]}, {"55058789": [185, 1, 5, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 30]}, {"55058805": [185, 1, 6, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 42]}, {"55058821": [185, 1, 7, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 97]}, {"55058837": [185, 1, 10, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 98]}, {"55058853": [184, 2]}, {"55058856": [128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 99]}, {"55058869": [184, 2, 1, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 100]}, {"55058885": [184, 2, 2, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 101]}, {"55058901": [184, 2, 3, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 124]}, {"55058917": [184, 2, 4, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 125]}, {"55058933": [184, 2, 5, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 126]}, {"55058949": [184, 2, 6, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 127]}, {"55058965": [184, 2, 7, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 162]}, {"55058981": [184, 2, 8, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 135]}, {"55058997": [184, 2, 9, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 136]}, {"55059013": [200, 4]}, {"55059016": [128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 137]}, {"55059029": [200, 4, 1, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 138]}, {"55059045": [200, 4, 2, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 139]}, {"55059061": [200, 4, 3, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 140]}, {"55059077": [200, 4, 4, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 142]}, {"55059093": [200, 4, 5, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 143]}, {"55059109": [200, 4, 6, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 163]}, {"55059125": [200, 4, 7, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 165]}, {"55059141": [200, 4, 8, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 146]}, {"55059157": [200, 4, 9, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 2, 147]}, {"55059173": [170, 3, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 148]}, {"55059189": [170, 4, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 149]}, {"55059205": [170, 5, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 166]}, {"55059221": [170, 6, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 169]}, {"55059237": [170, 7, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 155]}, {"55059253": [170, 8, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 159]}, {"55059269": [170, 11, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 160]}, {"55059285": [170, 12, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 161]}, {"55059301": [170, 13, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 61, 67, 12]}, {"55059317": [248, 255, 255, 128, 64, 37, 236, 128, 64, 36, 96, 77, 131, 247, 85]}, {"55059333": [183, 255, 255, 128, 64, 37, 228, 128, 64, 36, 96, 77, 146, 219, 230]}, {"55059349": [216, 255, 255, 128, 64, 37, 228, 128, 64, 37, 172, 77, 147, 218, 230]}, {"55059365": [216, 255, 255, 128, 64, 37, 228, 128, 64, 37, 172, 77, 148, 217, 230]}, {"55059381": [216, 255, 255, 128, 64, 37, 228, 128, 64, 37, 172, 77, 142, 224, 50]}, {"55059397": [206, 255, 255, 128, 64, 37, 228, 128, 64, 37, 200, 77, 143, 224, 50]}, {"55059413": [206, 255, 255, 128, 64, 37, 228, 128, 64, 37, 200, 77, 144, 224, 50]}, {"55059429": [206, 255, 255, 128, 64, 37, 228, 128, 64, 37, 200, 77, 140, 238, 52]}, {"55059445": [187, 255, 255, 128, 64, 37, 228, 128, 64, 36, 96, 77, 141, 238, 52]}, {"55059461": [187, 255, 255, 128, 64, 37, 228, 128, 64, 36, 96, 79, 65, 19, 233]}, {"55059477": [189, 255, 255, 128, 64, 38, 124, 128, 64, 36, 96, 79, 65, 30, 228]}, {"55059493": [205, 255, 255, 128, 64, 38, 156, 128, 64, 37, 148, 79, 65, 31, 232]}, {"55059509": [205, 255, 255, 128, 64, 38, 188, 128, 64, 36, 96, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 38, 228, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 39, 44, 128, 64, 39, 16, 3, 224]}, {"55059555": [8, 52, 162]}, {"55059560": [144, 136]}, {"55059563": [125, 52, 1]}, {"55059567": [255, 17, 1]}, {"55059571": [2, 52, 2]}, {"55059575": [8, 52, 2]}, {"55059579": [9, 3, 224]}, {"55059583": [8]}, {"55059588": [144, 136]}, {"55059591": [163, 49, 8]}, {"55059595": [192, 17]}, {"55059599": [5, 52, 2]}, {"55059603": [84, 52, 1]}, {"55059607": [64, 17, 1]}, {"55059611": [2, 52, 2]}, {"55059615": [53, 52, 2]}, {"55059619": [54, 3, 224]}, {"55059623": [8]}, {"55059628": [144, 136]}, {"55059631": [163, 49, 8]}, {"55059635": [24, 17]}, {"55059639": [5, 52, 2]}, {"55059643": [50, 52, 1]}, {"55059647": [8, 17, 1]}, {"55059651": [2, 52, 2]}, {"55059655": [51, 52, 2]}, {"55059659": [52, 3, 224]}, {"55059663": [8]}, {"55059668": [144, 136]}, {"55059671": [163, 49, 8]}, {"55059675": [3, 17]}, {"55059679": [5, 52, 2]}, {"55059683": [4, 52, 1]}, {"55059687": [1, 17, 1]}, {"55059691": [2, 52, 2]}, {"55059695": [48, 52, 2]}, {"55059699": [49, 3, 224]}, {"55059703": [8]}, {"55059708": [144, 136]}, {"55059711": [162, 49, 8]}, {"55059715": [192, 17]}, {"55059719": [5, 52, 2]}, {"55059723": [5, 52, 1]}, {"55059727": [64, 17, 1]}, {"55059731": [2, 52, 2]}, {"55059735": [96, 52, 2]}, {"55059739": [123, 3, 224]}, {"55059743": [8]}, {"55059748": [144, 136]}, {"55059751": [162, 49, 8]}, {"55059755": [48, 17]}, {"55059759": [2, 52, 2]}, {"55059763": [69, 52, 2]}, {"55059767": [70, 3, 224]}, {"55059771": [8]}, {"55059776": [144, 136]}, {"55059779": [162, 49, 8]}, {"55059783": [6, 17]}, {"55059787": [2, 52, 2]}, {"55059791": [55, 52, 2]}, {"55059795": [56, 3, 224]}, {"55059799": [8]}, {"55059804": [144, 136]}, {"55059807": [161, 49, 8]}, {"55059811": [32, 17]}, {"55059815": [2, 52, 2]}, {"55059819": [121, 52, 2]}, {"55059823": [122, 3, 224]}, {"55059827": [8]}, {"55059832": [144, 136]}, {"55059835": [161, 49, 8]}, {"55059839": [4, 17]}, {"55059843": [2, 52, 2]}, {"55059847": [119, 52, 2]}, {"55059851": [120, 3, 224]}, {"55059855": [8]}, {"55059860": [144, 136]}, {"55059863": [50, 17]}, {"55059867": [2, 52, 2]}, {"55059871": [192, 52, 2]}, {"55059875": [193, 3, 224]}, {"55059879": [8]}, {"55059884": [144, 136]}, {"55059887": [163, 49, 8]}, {"55059891": [3, 17]}, {"55059895": [2, 52, 2]}, {"55059899": [77, 52, 162]}, {"55059904": [3, 224]}, {"55059907": [8]}, {"55059912": [144, 136]}, {"55059915": [163, 49, 8]}, {"55059919": [24, 17]}, {"55059923": [2, 52, 2]}, {"55059927": [77, 52, 162]}, {"55059932": [3, 224]}, {"55059935": [8]}, {"55059940": [3, 224]}, {"55059943": [8]}, {"55059948": [52, 8]}, {"55059951": [1, 160, 136]}, {"55059955": [62, 3, 224]}, {"55059959": [8]}, {"55059964": [36, 136]}, {"55059967": [134, 36, 9, 255, 255, 37, 41]}, {"55059975": [1, 52, 1]}, {"55059979": [3]}, {"55059981": [41, 8, 42, 20, 32]}, {"55059987": [7]}, {"55059992": [1, 9, 80, 33, 145, 75]}, {"55060000": [52, 1]}, {"55060003": [255, 21, 97, 255, 247]}, {"55060012": [161, 69]}, {"55060016": [3, 224]}, {"55060019": [8]}, {"55060024": [36, 136]}, {"55060027": [168, 1, 6, 64, 33, 145, 9]}, {"55060036": [1, 37, 72, 37, 161, 9]}, {"55060044": [3, 224]}, {"55060047": [8]}, {"55060052": [36, 136]}, {"55060055": [188, 1, 5, 64, 33, 129, 9]}, {"55060064": [5, 33]}, {"55060067": [2]}, {"55060072": [52, 9]}, {"55060076": [37, 41]}, {"55060079": [1, 161, 9]}, {"55060084": [3, 224]}, {"55060087": [8]}, {"55060092": [52, 8]}, {"55060095": [1, 160, 136]}, {"55060099": [61, 52, 8]}, {"55060103": [20, 160, 136]}, {"55060107": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060119": [8]}, {"55060124": [52, 8]}, {"55060127": [1, 160, 136]}, {"55060131": [50, 160, 136]}, {"55060135": [58, 52, 8]}, {"55060139": [48, 164, 136, 19, 244, 160, 136]}, {"55060147": [51, 3, 224]}, {"55060151": [8]}, {"55060156": [52, 8]}, {"55060159": [2, 160, 136]}, {"55060163": [50, 52, 8]}, {"55060167": [1, 160, 136]}, {"55060171": [58, 160, 136]}, {"55060175": [60, 52, 8]}, {"55060179": [96, 164, 136, 19, 244, 160, 136]}, {"55060187": [51, 3, 224]}, {"55060191": [8]}, {"55060196": [144, 136]}, {"55060199": [124, 52, 1]}, {"55060203": [255, 17, 1]}, {"55060207": [6, 52, 2]}, {"55060211": [107, 144, 136]}, {"55060215": [148, 45, 8]}, {"55060219": [6, 17]}, {"55060223": [2, 52, 2]}, {"55060227": [106, 52, 2]}, {"55060231": [3, 3, 224]}, {"55060235": [8]}, {"55060240": [144, 136]}, {"55060243": [123, 52, 1]}, {"55060247": [255, 17, 1]}, {"55060251": [2, 52, 162]}, {"55060256": [52, 2]}, {"55060259": [12, 3, 224]}, {"55060263": [8]}, {"55060268": [52, 8]}, {"55060271": [7, 160, 136]}, {"55060275": [123, 3, 224]}, {"55060279": [8]}, {"55060284": [48, 132]}, {"55060287": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060299": [140, 16, 129]}, {"55060303": [22, 145, 2]}, {"55060307": [117, 52, 1]}, {"55060311": [141, 16, 129]}, {"55060315": [19, 145, 2]}, {"55060319": [117, 16, 128]}, {"55060323": [17, 145, 2]}, {"55060327": [116, 52, 1]}, {"55060331": [138, 16, 129]}, {"55060335": [14, 145, 2]}, {"55060339": [116, 52, 1]}, {"55060343": [139, 16, 129]}, {"55060347": [11, 145, 2]}, {"55060351": [116, 52, 1]}, {"55060355": [88, 16, 129]}, {"55060359": [8, 52, 2]}, {"55060364": [52, 1]}, {"55060367": [120, 16, 129]}, {"55060371": [5, 52, 2]}, {"55060376": [52, 1]}, {"55060379": [121, 16, 129]}, {"55060383": [2, 52, 2]}, {"55060388": [52, 2]}, {"55060391": [255, 3, 224]}, {"55060395": [8]}, {"55060400": [39, 189, 255, 224, 175, 191]}, {"55060407": [16, 175, 176]}, {"55060411": [20, 12, 16, 10, 166]}, {"55060420": [4, 65]}, {"55060423": [2]}, {"55060428": [52, 2]}, {"55060431": [91]}, {"55060433": [64, 32, 33, 12, 16, 10, 245]}, {"55060444": [16, 96]}, {"55060447": [15, 175, 163]}, {"55060451": [28, 60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060463": [6, 144, 102]}, {"55060467": [7, 140, 105]}, {"55060471": [8, 1, 32, 248, 9]}, {"55060480": [143, 163]}, {"55060483": [28, 144, 101]}, {"55060487": [1, 12, 1, 191, 115, 2, 32, 32, 33, 143, 163]}, {"55060499": [28, 144, 101]}, {"55060503": [3, 16]}, {"55060507": [10, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060519": [6]}, {"55060521": [74]}, {"55060523": [24]}, {"55060526": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060536": [12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060547": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060558": [48, 33, 143, 191]}, {"55060563": [16, 143, 176]}, {"55060567": [20, 39, 189]}, {"55060571": [32, 3, 224]}, {"55060575": [8]}, {"55060580": [143, 166]}, {"55060583": [48, 132, 197]}, {"55060587": [4, 8, 16, 10, 33]}, {"55060596": [143, 185]}, {"55060599": [44, 135, 37]}, {"55060603": [4, 8, 16, 10, 33]}, {"55060612": [60, 10, 128, 64, 37, 74, 32]}, {"55060620": [141, 75]}, {"55060623": [12, 17, 96]}, {"55060627": [2]}, {"55060632": [149, 69]}, {"55060635": [4, 60, 10, 128, 64, 37, 74, 32, 16, 161, 64]}, {"55060648": [60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060660": [3, 224]}, {"55060663": [8]}, {"55060668": [60, 8, 128, 64, 37, 8, 32]}, {"55060676": [141, 9]}, {"55060679": [12, 17, 32]}, {"55060683": [2]}, {"55060688": [129, 3]}, {"55060691": [2]}, {"55060693": [3, 15, 195]}, {"55060697": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55060711": [8]}, {"55060716": [144, 69]}, {"55060719": [3, 60, 8, 128, 64, 37, 8, 32]}, {"55060728": [141, 9]}, {"55060731": [12, 17, 32]}, {"55060735": [2]}, {"55060740": [145, 5]}, {"55060743": [3, 3, 224]}, {"55060747": [8]}, {"55060752": [143, 162]}, {"55060755": [36, 144, 69]}, {"55060760": [60, 8, 128, 64, 37, 8, 32]}, {"55060768": [141, 9]}, {"55060771": [12, 17, 32]}, {"55060775": [19]}, {"55060780": [145, 5]}, {"55060783": [1, 175, 164]}, {"55060788": [175, 165]}, {"55060791": [4, 175, 166]}, {"55060795": [8, 39, 189, 255, 232, 175, 191]}, {"55060803": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55060815": [6, 145, 6]}, {"55060819": [7, 141, 9]}, {"55060823": [8, 1, 32, 248, 9]}, {"55060832": [143, 191]}, {"55060835": [16, 39, 189]}, {"55060839": [24, 143, 164]}, {"55060844": [143, 165]}, {"55060847": [4, 143, 166]}, {"55060851": [8, 3, 224]}, {"55060855": [8]}, {"55060860": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55060871": [16, 175, 163]}, {"55060875": [20, 175, 191]}, {"55060879": [24, 12, 16, 10, 108]}, {"55060888": [143, 162]}, {"55060891": [16, 143, 163]}, {"55060895": [20, 143, 191]}, {"55060899": [24, 39, 189]}, {"55060903": [32, 3, 224]}, {"55060907": [8]}, {"55060912": [39, 189, 255, 232, 175, 191]}, {"55060919": [16, 60, 8, 128, 64, 37, 8, 32]}, {"55060928": [173]}, {"55060932": [173]}, {"55060935": [4, 173]}, {"55060939": [8, 173]}, {"55060943": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55060959": [42]}, {"55060965": [9, 15, 195, 1, 33, 32, 38]}, {"55060973": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 166]}, {"55060988": [4, 64]}, {"55060991": [34]}, {"55060996": [52, 68]}, {"55061000": [12, 16, 10, 245]}, {"55061008": [16, 96]}, {"55061011": [12]}, {"55061016": [60, 8, 128, 64, 37, 8, 32]}, {"55061024": [140, 105]}, {"55061028": [173, 9]}, {"55061032": [140, 105]}, {"55061035": [4, 173, 9]}, {"55061039": [4, 140, 105]}, {"55061043": [8, 173, 9]}, {"55061047": [8, 52, 9]}, {"55061051": [1, 173, 9]}, {"55061055": [12, 144, 98]}, {"55061060": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061076": [52, 1]}, {"55061079": [10, 21, 65]}, {"55061083": [6]}, {"55061088": [149, 42]}, {"55061091": [28, 49, 74, 240, 31]}, {"55061097": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061107": [28, 129, 9, 4, 36, 5, 33]}, {"55061115": [2]}, {"55061121": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061131": [16, 39, 189]}, {"55061135": [24, 3, 224]}, {"55061139": [8]}, {"55061144": [39, 189, 255, 232, 175, 191]}, {"55061151": [16, 12, 16, 10, 180]}, {"55061160": [36, 1, 255, 255, 16, 65]}, {"55061167": [4]}, {"55061172": [52, 68]}, {"55061176": [12, 16, 10, 232]}, {"55061184": [143, 191]}, {"55061187": [16, 39, 189]}, {"55061191": [24, 3, 224]}, {"55061195": [8]}, {"55061200": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061211": [164, 52, 8]}, {"55061216": [52, 137]}, {"55061220": [148, 170]}, {"55061224": [52, 1, 1, 156, 21, 65]}, {"55061231": [8]}, {"55061236": [52, 8]}, {"55061239": [3, 148, 171]}, {"55061243": [28, 49, 105]}, {"55061247": [255, 49, 98, 31]}, {"55061253": [2, 18, 2, 16]}, {"55061259": [31]}, {"55061264": [52, 1]}, {"55061267": [10, 21, 65]}, {"55061271": [14]}, {"55061276": [148, 171]}, {"55061279": [28, 52, 1]}, {"55061283": [16, 20, 65]}, {"55061287": [8]}, {"55061292": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061303": [4]}, {"55061308": [36, 2, 255, 255, 16]}, {"55061315": [21]}, {"55061320": [52, 8]}, {"55061323": [1, 49, 105]}, {"55061327": [31, 52, 1]}, {"55061331": [21, 21, 65]}, {"55061335": [12]}, {"55061340": [52, 1]}, {"55061343": [62, 16, 129]}, {"55061347": [7]}, {"55061352": [52, 1]}, {"55061355": [66, 16, 129]}, {"55061359": [4]}, {"55061364": [36, 2, 255, 255, 16]}, {"55061371": [7]}, {"55061376": [52, 8]}, {"55061379": [2, 144, 169, 1, 65]}, {"55061385": [2, 18]}, {"55061389": [72, 16, 37]}, {"55061393": [2, 18]}, {"55061397": [73, 16, 37, 3, 224]}, {"55061403": [8]}, {"55061408": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061423": [4, 141, 9]}, {"55061428": [17, 32]}, {"55061431": [5]}, {"55061437": [9, 82, 2, 21, 68, 255, 250]}, {"55061448": [49, 34]}, {"55061451": [255, 3, 224]}, {"55061455": [8]}, {"55061460": [39, 189, 255, 224, 175, 176]}, {"55061467": [16, 175, 177]}, {"55061471": [20, 175, 191]}, {"55061475": [24, 52, 130]}, {"55061480": [52, 80]}, {"55061484": [38, 8, 255, 128, 5]}, {"55061491": [18]}, {"55061496": [60, 17, 128, 64, 38, 49, 32, 32, 52, 9]}, {"55061507": [16, 1, 9]}, {"55061511": [24]}, {"55061514": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061532": [142, 40]}, {"55061535": [12, 1]}, {"55061538": [248, 9]}, {"55061544": [20, 80, 255, 239]}, {"55061552": [54, 35]}, {"55061556": [16]}, {"55061559": [2]}, {"55061564": [52, 3]}, {"55061568": [143, 176]}, {"55061571": [16, 143, 177]}, {"55061575": [20, 143, 191]}, {"55061579": [24, 39, 189]}, {"55061583": [32, 3, 224]}, {"55061587": [8]}, {"55061592": [140, 136, 29, 44, 52, 9]}, {"55061599": [1]}, {"55061601": [9, 78]}, {"55061604": [1, 9, 16, 36, 16, 64]}, {"55061611": [36]}, {"55061616": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55061631": [164, 52, 1]}, {"55061635": [61, 17, 129]}, {"55061639": [10]}, {"55061645": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55061655": [25]}, {"55061660": [52, 13]}, {"55061663": [1, 161, 141, 29, 40, 37, 74]}, {"55061671": [3, 16]}, {"55061675": [9]}, {"55061680": [52, 12]}, {"55061683": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55061699": [14]}, {"55061704": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 2, 1, 10, 64, 33, 129, 8]}, {"55061740": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061752": [52, 2]}, {"55061756": [3, 224]}, {"55061759": [8]}, {"55061764": [60, 8, 128, 64, 37, 8, 28]}, {"55061772": [129, 8]}, {"55061776": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061788": [3, 224]}, {"55061791": [8]}, {"55061796": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55061808": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061820": [3, 224]}, {"55061823": [8]}, {"55061828": [175, 164]}, {"55061831": [104, 175, 165]}, {"55061835": [108, 175, 166]}, {"55061839": [112, 175, 167]}, {"55061843": [116, 39, 189, 255, 232, 175, 163]}, {"55061851": [16, 175, 191]}, {"55061855": [20, 60, 8, 128, 64, 37, 8, 32, 16, 129, 8]}, {"55061868": [17]}, {"55061871": [14]}, {"55061876": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55061887": [1, 165, 42]}, {"55061892": [60, 9, 128, 65, 52, 10]}, {"55061899": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 108]}, {"55061928": [143, 163]}, {"55061931": [16, 143, 191]}, {"55061935": [20, 39, 189]}, {"55061939": [24, 143, 164]}, {"55061943": [104, 143, 165]}, {"55061947": [108, 143, 166]}, {"55061951": [112, 143, 167]}, {"55061955": [116, 132, 110, 19, 196, 3, 224]}, {"55061963": [8]}, {"55061968": [147, 25]}, {"55061971": [116, 52, 1]}, {"55061975": [255, 23, 33]}, {"55061979": [2]}, {"55061984": [52, 25]}, {"55061987": [44, 3, 224]}, {"55061991": [8, 167, 185]}, {"55061995": [154, 147, 44]}, {"55061999": [116, 52, 1]}, {"55062003": [255, 21, 129]}, {"55062007": [2]}, {"55062012": [52, 12]}, {"55062015": [44, 3, 224]}, {"55062019": [8]}, {"55062024": [145, 174]}, {"55062027": [116, 52, 1]}, {"55062031": [255, 21, 193]}, {"55062035": [2]}, {"55062040": [52, 14]}, {"55062043": [44, 3, 224]}, {"55062047": [8, 167, 174]}, {"55062051": [154, 145, 207]}, {"55062055": [116, 52, 1]}, {"55062059": [255, 21, 225]}, {"55062063": [2]}, {"55062068": [52, 15]}, {"55062071": [44, 3, 224]}, {"55062075": [8, 167, 175]}, {"55062079": [154, 60, 8, 128, 64, 37, 8, 32, 20, 142, 9]}, {"55062091": [104, 173, 9]}, {"55062096": [142, 9]}, {"55062099": [108, 173, 9]}, {"55062103": [4, 150, 9]}, {"55062107": [112, 165, 9]}, {"55062111": [8, 150, 9]}, {"55062115": [156, 165, 9]}, {"55062119": [10, 3, 224]}, {"55062123": [8, 142, 14]}, {"55062127": [4, 39, 189, 255, 224, 175, 176]}, {"55062135": [16, 175, 177]}, {"55062139": [20, 175, 191]}, {"55062143": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 20, 142, 8]}, {"55062163": [4, 17]}, {"55062167": [5]}, {"55062172": [12, 16, 11, 198]}, {"55062180": [16]}, {"55062183": [3]}, {"55062188": [12, 16, 11, 217]}, {"55062196": [12, 16, 11, 185, 52, 4]}, {"55062204": [12, 16, 11, 185, 52, 4]}, {"55062211": [1, 12, 16, 11, 185, 52, 4]}, {"55062219": [2, 143, 176]}, {"55062223": [16, 143, 177]}, {"55062227": [20, 143, 191]}, {"55062231": [24, 39, 189]}, {"55062235": [32, 3, 224]}, {"55062239": [8]}, {"55062244": [2, 4, 64, 33, 145, 9]}, {"55062251": [108, 52, 1]}, {"55062255": [255, 17, 33]}, {"55062259": [7]}, {"55062264": [2, 9, 72, 33, 145, 41]}, {"55062271": [116, 52, 1]}, {"55062275": [44, 17, 33]}, {"55062279": [2]}, {"55062284": [161, 9]}, {"55062287": [105, 3, 224]}, {"55062291": [8]}, {"55062296": [39, 189, 255, 232, 175, 191]}, {"55062303": [16, 142, 40]}, {"55062308": [174, 8]}, {"55062311": [64, 142, 40]}, {"55062315": [4, 174, 8]}, {"55062319": [68, 150, 40]}, {"55062323": [8, 166, 8]}, {"55062327": [72, 162]}, {"55062330": [15, 51, 146, 8]}, {"55062335": [74, 52, 1]}, {"55062339": [255, 21, 1]}, {"55062343": [3]}, {"55062348": [12, 16, 11, 231]}, {"55062356": [143, 191]}, {"55062359": [16, 39, 189]}, {"55062363": [24, 3, 224]}, {"55062367": [8]}, {"55062372": [142, 8]}, {"55062375": [64, 174, 8]}, {"55062379": [104, 142, 8]}, {"55062383": [68, 174, 8]}, {"55062387": [108, 150, 8]}, {"55062391": [72, 166, 8]}, {"55062395": [112, 146, 8]}, {"55062399": [104, 52, 1]}, {"55062403": [255, 21, 1]}, {"55062407": [3]}, {"55062412": [52, 8]}, {"55062415": [1, 162, 8, 15, 51, 3, 224]}, {"55062423": [8]}, {"55062428": [39, 189, 255, 232, 175, 191]}, {"55062435": [16, 150, 8]}, {"55062439": [156, 49, 8]}, {"55062443": [64, 17]}, {"55062447": [5]}, {"55062452": [150, 8]}, {"55062455": [112, 49, 8, 255, 15, 53, 8]}, {"55062463": [48, 166, 8]}, {"55062467": [112, 146, 40]}, {"55062471": [1, 162, 8]}, {"55062475": [105, 150, 40]}, {"55062479": [2, 166, 8]}, {"55062483": [106, 142, 40]}, {"55062487": [4, 174, 8]}, {"55062491": [108, 12, 16, 12, 1, 52, 4]}, {"55062500": [12, 16, 12, 1, 52, 4]}, {"55062507": [1, 12, 16, 12, 1, 52, 4]}, {"55062515": [2, 143, 191]}, {"55062519": [16, 39, 189]}, {"55062523": [24, 3, 224]}, {"55062527": [8]}, {"55062532": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 48, 176, 145, 10]}, {"55062547": [108, 52, 1]}, {"55062551": [255, 17, 65]}, {"55062555": [5]}, {"55062560": [1, 42, 72, 33, 145, 41]}, {"55062568": [21, 32]}, {"55062571": [28]}, {"55062576": [60, 9, 128, 64, 37, 41, 48, 163, 37, 41]}, {"55062587": [1, 145, 42]}, {"55062592": [17, 64]}, {"55062595": [19]}, {"55062600": [2, 10, 88, 33, 145, 107]}, {"55062607": [116, 52, 1]}, {"55062611": [255, 17, 97, 255, 248]}, {"55062620": [146, 12]}, {"55062623": [108, 17, 138, 255, 245]}, {"55062632": [146, 12]}, {"55062635": [109, 17, 138, 255, 242]}, {"55062644": [146, 12]}, {"55062647": [110, 17, 138, 255, 239]}, {"55062656": [161, 11]}, {"55062659": [105, 161, 10]}, {"55062663": [108, 16]}, {"55062667": [4]}, {"55062672": [52, 9]}, {"55062675": [255, 161, 9]}, {"55062679": [105, 161, 9]}, {"55062683": [108, 3, 224]}, {"55062687": [8]}, {"55062692": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55062705": [1, 1, 1, 1, 1]}, {"55062711": [1, 1, 1, 1, 1]}, {"55062717": [1]}, {"55062719": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55062729": [51, 8, 33, 32, 15]}, {"55062735": [71, 21, 234]}, {"55062739": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062751": [164]}, {"55062753": [15, 122, 3, 20, 64]}, {"55062759": [5, 52, 2, 72, 48, 21, 226]}, {"55062767": [7]}, {"55062772": [36, 25]}, {"55062775": [3, 16]}, {"55062779": [4, 52, 2, 99, 17, 21, 226]}, {"55062787": [2]}, {"55062792": [36, 25]}, {"55062795": [3, 3, 224]}, {"55062799": [8]}, {"55062804": [141, 173, 138, 160, 52, 2, 128]}, {"55062812": [16, 77]}, {"55062815": [2]}, {"55062820": [16]}, {"55062823": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55062839": [1, 16, 64]}, {"55062843": [2]}, {"55062848": [16]}, {"55062851": [2, 52, 2]}, {"55062855": [1, 161, 226, 28, 191, 3, 224]}, {"55062863": [8]}, {"55062869": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062883": [164]}, {"55062885": [15, 122, 3, 20, 64]}, {"55062891": [5, 52, 2, 72, 48, 21, 226]}, {"55062899": [7]}, {"55062904": [36, 25]}, {"55062907": [3, 16]}, {"55062911": [4, 52, 2, 99, 17, 21, 226]}, {"55062919": [2]}, {"55062924": [36, 25]}, {"55062927": [3, 3, 224]}, {"55062931": [8]}, {"55062936": [162, 37]}, {"55062939": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55062951": [4, 142, 10]}, {"55062956": [17, 64]}, {"55062959": [11]}, {"55062965": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55062977": [24, 194, 2, 23]}, {"55062983": [3, 49, 89]}, {"55062987": [255, 129, 234]}, {"55062992": [3, 42, 200, 37, 8, 16, 12, 105, 161, 249]}, {"55063004": [3, 224]}, {"55063007": [8]}] \ No newline at end of file diff --git a/version.py b/version.py index a02c62de5..94f0bdfa2 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.7 f.LUM' +__version__ = '2.13.8 f.LUM' From 8d5a8c710440fdd02ffc4ca60c2586213fa923f5 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Wed, 18 Jul 2018 21:59:27 -0400 Subject: [PATCH 173/755] Added injection to get items at song locations --- ASM/src/cutscenes.asm | 35 +++++++++++++++++++++++++++++++---- ASM/src/every_frame.asm | 31 ++++++++++++++++++++++++++++--- ASM/src/hacks.asm | 11 +++++++++++ ASM/src/item_overrides.asm | 10 +++++++--- ASM/src/state.asm | 4 ++++ Rom.py | 4 ++++ Settings.py | 15 +++++++++++++++ data/base2current.json | 2 +- version.py | 2 +- 9 files changed, 102 insertions(+), 12 deletions(-) diff --git a/ASM/src/cutscenes.asm b/ASM/src/cutscenes.asm index 8db70fdf7..d5daa7ae5 100644 --- a/ASM/src/cutscenes.asm +++ b/ASM/src/cutscenes.asm @@ -60,16 +60,43 @@ override_great_fairy_cutscene: override_light_arrow_cutscene: li t0, LIGHT_ARROW_ITEM lb t0, 0x00 (t0) - li t1, PENDING_SPECIAL_ITEM - sb t0, 0x00 (t1) - jr ra + b store_pending_spedial_item nop override_fairy_ocarina_cutscene: li t0, FAIRY_OCARINA_ITEM lb t0, 0x00 (t0) + b store_pending_spedial_item + nop + +override_ocarina_songs: + li t0, FAIRY_OCARINA_ITEM + lb t0, 0x00 (t0) + b store_pending_spedial_item + nop + +store_pending_spedial_item: +; Don't add item if it's already pending li t1, PENDING_SPECIAL_ITEM - sb t0, 0x00 (t1) + li t2, PENDING_SPECIAL_ITEM_END ; max number of entries +@@find_duplicate_loop: + lb t4, 0x00 (t1) + beq t4, t0, @@return ; item is already in list + addi t1, t1, 0x01 + bne t1, t2, @@find_duplicate_loop ; end of list + nop + +; Find free index to add item + li t1, (PENDING_SPECIAL_ITEM - 1) +@@find_empty_loop: + addi t1, t1, 0x01 + beq t1, t2, @@return ; end of list + lb t4, 0x00 (t1) + bnez t4, @@find_empty_loop ; next index + nop + + sb t0, 0x00 (t1) ; store in first free spot +@@return: jr ra nop diff --git a/ASM/src/every_frame.asm b/ASM/src/every_frame.asm index 195c5d929..0d89fbf20 100644 --- a/ASM/src/every_frame.asm +++ b/ASM/src/every_frame.asm @@ -7,13 +7,38 @@ every_frame: sw v1, 0x10 (sp) sw ra, 0x14 (sp) + ; Don't give pending item during cutscene. This can lead to a crash when giving an item + ; during another item cutscene. + li t2, PLAYER_ACTOR + lb t0, 0x066C (t2) ;link's state + andi t0, 0x20 ;cutscene + bnez t0, @@no_pending_item + nop + + ; clear pending item index + li t1, PENDING_SPECIAL_ITEM_END + li t2, 0xFF + sb t2, 0x00 (t1) + ; If there is a pending item, try to make the player instance receive it. If the player has ; control on this frame, they will receive the item. Otherwise nothing will happen, and ; we try again next frame. - li t0, PENDING_SPECIAL_ITEM - lb t0, 0x00 (t0) - beqz t0, @@no_pending_item + li t1, PENDING_SPECIAL_ITEM + li t2, -1 + li t4, (PENDING_SPECIAL_ITEM_END - PENDING_SPECIAL_ITEM) ; max number of entries +@@loop: + addi t2, t2, 0x01 + beq t2, t4, @@no_pending_item ; stop if end of list + add t3, t1, t2 + + lb t0, 0x00 (t3) + beqz t0, @@loop ; loop if index is empty nop + + ; Store index of pending item to be given + li t1, PENDING_SPECIAL_ITEM_END + sb t2, 0x00 (t1) + ; Disable warping when there is a pending item. Currently this code is only used in places ; where warping is allowed, so warping can always be re-enabled after the item is received. li t1, GLOBAL_CONTEXT + 0x104E4 diff --git a/ASM/src/hacks.asm b/ASM/src/hacks.asm index 482448590..9a1d62691 100755 --- a/ASM/src/hacks.asm +++ b/ASM/src/hacks.asm @@ -320,3 +320,14 @@ .org 0xAE6E48 jal override_fairy_ocarina_cutscene addu t8,t0,t7 + +; Replaces +;sll t6,a3,0x2 +;lui t5,0x8010 +;addiu t0,t0,-23088 +.org 0xAE5DE0 + jal override_fairy_ocarina_cutscene + li v0,0xFF + b item_action_return +.org 0xAE7370 +item_action_return: diff --git a/ASM/src/item_overrides.asm b/ASM/src/item_overrides.asm index 318f1cbed..1ae1417d6 100755 --- a/ASM/src/item_overrides.asm +++ b/ASM/src/item_overrides.asm @@ -141,13 +141,17 @@ override_object: lhu a1, ITEM_ROW_OBJECT_ID (t2) @@return: - ; Clear any pending special item, now that it's being received - li t2, PENDING_SPECIAL_ITEM - sb r0, 0x00 (t2) ; Re-enable warping (disabled by pending item) li t2, GLOBAL_CONTEXT + 0x104E4 sh r0, 0x00 (t2) + li t1, PENDING_SPECIAL_ITEM + lb t2, (PENDING_SPECIAL_ITEM_END - PENDING_SPECIAL_ITEM) (t1) + bltz t2, @@no_pending_clear + add t1, t1, t2 + sb zero, 0x00 (t1) + +@@no_pending_clear: jr ra nop diff --git a/ASM/src/state.asm b/ASM/src/state.asm index cac3f9aca..f5fb675a6 100755 --- a/ASM/src/state.asm +++ b/ASM/src/state.asm @@ -12,6 +12,10 @@ EXTENDED_ITEM_DATA: PENDING_SPECIAL_ITEM: .byte 0x00 +.byte 0x00 +.byte 0x00 +PENDING_SPECIAL_ITEM_END: +.byte 0x00 .align 4 TIME_TRAVEL_SAVED_EQUIPS: diff --git a/Rom.py b/Rom.py index 787daf267..9bc2573be 100644 --- a/Rom.py +++ b/Rom.py @@ -1042,6 +1042,10 @@ def write_save_table(rom): rom.write_bytes(0x3481000, sum(override_table, [])) rom.write_byte(0x03481C00, world.id + 1) # Write player ID + # Revert Song Get Override Injection + if not world.shuffle_song_items: + rom.write_bytes(0xAE5DE0, [0x00, 0x07, 0x70, 0x80, 0x3C, 0x0D, 0x80, 0x10, 0x25, 0x08, 0xA5, 0xD0]) + # Set Default targeting option to Hold if world.default_targeting == 'hold': rom.write_bytes(0xB07200, [0x20, 0x0C, 0x00, 0x01 ]) diff --git a/Settings.py b/Settings.py index c5987ebf4..0de776305 100644 --- a/Settings.py +++ b/Settings.py @@ -480,6 +480,21 @@ def __init__(self, settings_dict): 'widget': 'Checkbutton', 'default': 'unchecked' }), + Setting_Info('shuffle_song_items', bool, 1, True, + { + 'help': '''\ + Shuffles the songs with with rest of the item pool so that + song can appear at other locations, and items can appear at + the song locations. + ''', + 'action': 'store_true' + }, + { + 'text': 'Shuffle Songs with Items', + 'group': 'logic', + 'widget': 'Checkbutton', + 'default': 'unchecked' + }), Setting_Info('keysanity', bool, 1, True, { 'help': '''\ diff --git a/data/base2current.json b/data/base2current.json index ae4691206..e73663ff0 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -1 +1 @@ -[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 125]}, {"11325064": [12, 16, 11, 112, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 11, 203]}, {"11427312": [12, 16, 12, 116]}, {"11431496": [12, 16, 11, 120, 1, 15, 192, 33]}, {"11562028": [12, 16, 12, 149]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 12, 132]}, {"11882076": [12, 16, 12, 97]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 11, 170, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 11, 177, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 11, 184, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 11, 163, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 69]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 9, 219]}, {"12427480": [12, 16, 10, 47]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 51]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 11, 128, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 81]}, {"12491480": [12, 16, 10, 90]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 69]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 11, 191]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 140, 73]}, {"14149503": [164]}, {"14149512": [2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149856": [87]}, {"14149859": [15]}, {"14357459": [118]}, {"14624335": [118]}, {"14872723": [52]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 9, 248, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 9, 248, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 36, 152, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 36, 180, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 36, 220, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 4, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 44, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 84, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 112, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 140, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 168, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 28, 128, 64, 36, 144, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 20, 128, 64, 36, 144, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 20, 128, 64, 37, 220, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 20, 128, 64, 37, 220, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 20, 128, 64, 37, 220, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 20, 128, 64, 37, 248, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 20, 128, 64, 37, 248, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 20, 128, 64, 37, 248, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 20, 128, 64, 36, 144, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 20, 128, 64, 36, 144, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 38, 172, 128, 64, 36, 144, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 38, 204, 128, 64, 37, 196, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 38, 236, 128, 64, 36, 144, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 39, 20, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 39, 92, 128, 64, 39, 64, 3, 224]}, {"55059603": [8, 52, 162]}, {"55059608": [144, 136]}, {"55059611": [125, 52, 1]}, {"55059615": [255, 17, 1]}, {"55059619": [2, 52, 2]}, {"55059623": [8, 52, 2]}, {"55059627": [9, 3, 224]}, {"55059631": [8]}, {"55059636": [144, 136]}, {"55059639": [163, 49, 8]}, {"55059643": [192, 17]}, {"55059647": [5, 52, 2]}, {"55059651": [84, 52, 1]}, {"55059655": [64, 17, 1]}, {"55059659": [2, 52, 2]}, {"55059663": [53, 52, 2]}, {"55059667": [54, 3, 224]}, {"55059671": [8]}, {"55059676": [144, 136]}, {"55059679": [163, 49, 8]}, {"55059683": [24, 17]}, {"55059687": [5, 52, 2]}, {"55059691": [50, 52, 1]}, {"55059695": [8, 17, 1]}, {"55059699": [2, 52, 2]}, {"55059703": [51, 52, 2]}, {"55059707": [52, 3, 224]}, {"55059711": [8]}, {"55059716": [144, 136]}, {"55059719": [163, 49, 8]}, {"55059723": [3, 17]}, {"55059727": [5, 52, 2]}, {"55059731": [4, 52, 1]}, {"55059735": [1, 17, 1]}, {"55059739": [2, 52, 2]}, {"55059743": [48, 52, 2]}, {"55059747": [49, 3, 224]}, {"55059751": [8]}, {"55059756": [144, 136]}, {"55059759": [162, 49, 8]}, {"55059763": [192, 17]}, {"55059767": [5, 52, 2]}, {"55059771": [5, 52, 1]}, {"55059775": [64, 17, 1]}, {"55059779": [2, 52, 2]}, {"55059783": [96, 52, 2]}, {"55059787": [123, 3, 224]}, {"55059791": [8]}, {"55059796": [144, 136]}, {"55059799": [162, 49, 8]}, {"55059803": [48, 17]}, {"55059807": [2, 52, 2]}, {"55059811": [69, 52, 2]}, {"55059815": [70, 3, 224]}, {"55059819": [8]}, {"55059824": [144, 136]}, {"55059827": [162, 49, 8]}, {"55059831": [6, 17]}, {"55059835": [2, 52, 2]}, {"55059839": [55, 52, 2]}, {"55059843": [56, 3, 224]}, {"55059847": [8]}, {"55059852": [144, 136]}, {"55059855": [161, 49, 8]}, {"55059859": [32, 17]}, {"55059863": [2, 52, 2]}, {"55059867": [121, 52, 2]}, {"55059871": [122, 3, 224]}, {"55059875": [8]}, {"55059880": [144, 136]}, {"55059883": [161, 49, 8]}, {"55059887": [4, 17]}, {"55059891": [2, 52, 2]}, {"55059895": [119, 52, 2]}, {"55059899": [120, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [50, 17]}, {"55059915": [2, 52, 2]}, {"55059919": [192, 52, 2]}, {"55059923": [193, 3, 224]}, {"55059927": [8]}, {"55059932": [144, 136]}, {"55059935": [163, 49, 8]}, {"55059939": [3, 17]}, {"55059943": [2, 52, 2]}, {"55059947": [77, 52, 162]}, {"55059952": [3, 224]}, {"55059955": [8]}, {"55059960": [144, 136]}, {"55059963": [163, 49, 8]}, {"55059967": [24, 17]}, {"55059971": [2, 52, 2]}, {"55059975": [77, 52, 162]}, {"55059980": [3, 224]}, {"55059983": [8]}, {"55059988": [3, 224]}, {"55059991": [8]}, {"55059996": [52, 8]}, {"55059999": [1, 160, 136]}, {"55060003": [62, 3, 224]}, {"55060007": [8]}, {"55060012": [36, 136]}, {"55060015": [134, 36, 9, 255, 255, 37, 41]}, {"55060023": [1, 52, 1]}, {"55060027": [3]}, {"55060029": [41, 8, 42, 20, 32]}, {"55060035": [7]}, {"55060040": [1, 9, 80, 33, 145, 75]}, {"55060048": [52, 1]}, {"55060051": [255, 21, 97, 255, 247]}, {"55060060": [161, 69]}, {"55060064": [3, 224]}, {"55060067": [8]}, {"55060072": [36, 136]}, {"55060075": [168, 1, 6, 64, 33, 145, 9]}, {"55060084": [1, 37, 72, 37, 161, 9]}, {"55060092": [3, 224]}, {"55060095": [8]}, {"55060100": [36, 136]}, {"55060103": [188, 1, 5, 64, 33, 129, 9]}, {"55060112": [5, 33]}, {"55060115": [2]}, {"55060120": [52, 9]}, {"55060124": [37, 41]}, {"55060127": [1, 161, 9]}, {"55060132": [3, 224]}, {"55060135": [8]}, {"55060140": [52, 8]}, {"55060143": [1, 160, 136]}, {"55060147": [61, 52, 8]}, {"55060151": [20, 160, 136]}, {"55060155": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060167": [8]}, {"55060172": [52, 8]}, {"55060175": [1, 160, 136]}, {"55060179": [50, 160, 136]}, {"55060183": [58, 52, 8]}, {"55060187": [48, 164, 136, 19, 244, 160, 136]}, {"55060195": [51, 3, 224]}, {"55060199": [8]}, {"55060204": [52, 8]}, {"55060207": [2, 160, 136]}, {"55060211": [50, 52, 8]}, {"55060215": [1, 160, 136]}, {"55060219": [58, 160, 136]}, {"55060223": [60, 52, 8]}, {"55060227": [96, 164, 136, 19, 244, 160, 136]}, {"55060235": [51, 3, 224]}, {"55060239": [8]}, {"55060244": [144, 136]}, {"55060247": [124, 52, 1]}, {"55060251": [255, 17, 1]}, {"55060255": [6, 52, 2]}, {"55060259": [107, 144, 136]}, {"55060263": [148, 45, 8]}, {"55060267": [6, 17]}, {"55060271": [2, 52, 2]}, {"55060275": [106, 52, 2]}, {"55060279": [3, 3, 224]}, {"55060283": [8]}, {"55060288": [144, 136]}, {"55060291": [123, 52, 1]}, {"55060295": [255, 17, 1]}, {"55060299": [2, 52, 162]}, {"55060304": [52, 2]}, {"55060307": [12, 3, 224]}, {"55060311": [8]}, {"55060316": [52, 8]}, {"55060319": [7, 160, 136]}, {"55060323": [123, 3, 224]}, {"55060327": [8]}, {"55060332": [48, 132]}, {"55060335": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060347": [140, 16, 129]}, {"55060351": [22, 145, 2]}, {"55060355": [117, 52, 1]}, {"55060359": [141, 16, 129]}, {"55060363": [19, 145, 2]}, {"55060367": [117, 16, 128]}, {"55060371": [17, 145, 2]}, {"55060375": [116, 52, 1]}, {"55060379": [138, 16, 129]}, {"55060383": [14, 145, 2]}, {"55060387": [116, 52, 1]}, {"55060391": [139, 16, 129]}, {"55060395": [11, 145, 2]}, {"55060399": [116, 52, 1]}, {"55060403": [88, 16, 129]}, {"55060407": [8, 52, 2]}, {"55060412": [52, 1]}, {"55060415": [120, 16, 129]}, {"55060419": [5, 52, 2]}, {"55060424": [52, 1]}, {"55060427": [121, 16, 129]}, {"55060431": [2, 52, 2]}, {"55060436": [52, 2]}, {"55060439": [255, 3, 224]}, {"55060443": [8]}, {"55060448": [39, 189, 255, 224, 175, 191]}, {"55060455": [16, 175, 176]}, {"55060459": [20, 12, 16, 10, 196]}, {"55060468": [4, 65]}, {"55060471": [2]}, {"55060476": [52, 2]}, {"55060479": [91]}, {"55060481": [64, 32, 33, 12, 16, 11, 36]}, {"55060492": [16, 96]}, {"55060495": [18, 175, 163]}, {"55060499": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060508": [133, 9]}, {"55060511": [2, 17, 32]}, {"55060515": [3, 52, 10]}, {"55060519": [1, 16]}, {"55060523": [8, 165, 10]}, {"55060528": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060539": [6, 144, 102]}, {"55060543": [7, 140, 105]}, {"55060547": [8, 1, 32, 248, 9]}, {"55060556": [143, 163]}, {"55060559": [28, 144, 101]}, {"55060563": [3, 16]}, {"55060567": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060579": [6]}, {"55060581": [74]}, {"55060583": [24]}, {"55060586": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060596": [60, 8, 128, 64, 37, 8, 32]}, {"55060604": [133, 9]}, {"55060607": [2, 17, 32]}, {"55060611": [3, 52, 10]}, {"55060615": [1, 165, 10]}, {"55060620": [52, 5]}, {"55060623": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060635": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060646": [48, 33, 143, 191]}, {"55060651": [16, 143, 176]}, {"55060655": [20, 39, 189]}, {"55060659": [32, 3, 224]}, {"55060663": [8]}, {"55060668": [143, 166]}, {"55060671": [48, 132, 197]}, {"55060675": [4, 8, 16, 10, 55]}, {"55060684": [143, 185]}, {"55060687": [44, 135, 37]}, {"55060691": [4, 8, 16, 10, 55]}, {"55060700": [60, 10, 128, 64, 37, 74, 32, 4, 141, 75]}, {"55060711": [12, 17, 96]}, {"55060715": [2]}, {"55060720": [149, 69]}, {"55060723": [4, 60, 10, 128, 64, 37, 74, 32, 20, 161, 64]}, {"55060736": [60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060748": [3, 224]}, {"55060751": [8]}, {"55060756": [60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55060767": [12, 17, 32]}, {"55060771": [2]}, {"55060776": [129, 3]}, {"55060779": [2]}, {"55060781": [3, 15, 195]}, {"55060785": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55060799": [8]}, {"55060804": [144, 69]}, {"55060807": [3, 60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55060819": [12, 17, 32]}, {"55060823": [2]}, {"55060828": [145, 5]}, {"55060831": [3, 3, 224]}, {"55060835": [8]}, {"55060840": [143, 162]}, {"55060843": [36, 144, 69]}, {"55060848": [60, 8, 128, 64, 37, 8, 32]}, {"55060856": [133, 9]}, {"55060859": [2, 17, 32]}, {"55060863": [4, 52, 10]}, {"55060867": [1, 165, 10]}, {"55060872": [16]}, {"55060875": [24, 52, 5]}, {"55060879": [65, 60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55060891": [12, 17, 32]}, {"55060895": [19]}, {"55060900": [145, 5]}, {"55060903": [1, 175, 164]}, {"55060908": [175, 165]}, {"55060911": [4, 175, 166]}, {"55060915": [8, 39, 189, 255, 232, 175, 191]}, {"55060923": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55060935": [6, 145, 6]}, {"55060939": [7, 141, 9]}, {"55060943": [8, 1, 32, 248, 9]}, {"55060952": [143, 191]}, {"55060955": [16, 39, 189]}, {"55060959": [24, 143, 164]}, {"55060964": [143, 165]}, {"55060967": [4, 143, 166]}, {"55060971": [8, 3, 224]}, {"55060975": [8]}, {"55060980": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55060991": [16, 175, 163]}, {"55060995": [20, 175, 191]}, {"55060999": [24, 12, 16, 10, 138]}, {"55061008": [143, 162]}, {"55061011": [16, 143, 163]}, {"55061015": [20, 143, 191]}, {"55061019": [24, 39, 189]}, {"55061023": [32, 3, 224]}, {"55061027": [8]}, {"55061032": [39, 189, 255, 232, 175, 191]}, {"55061039": [16, 60, 8, 128, 64, 37, 8, 32, 4, 173]}, {"55061052": [173]}, {"55061055": [4, 173]}, {"55061059": [8, 173]}, {"55061063": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061079": [42]}, {"55061085": [9, 15, 195, 1, 33, 32, 38]}, {"55061093": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 196]}, {"55061108": [4, 64]}, {"55061111": [34]}, {"55061116": [52, 68]}, {"55061120": [12, 16, 11, 36]}, {"55061128": [16, 96]}, {"55061131": [12]}, {"55061136": [60, 8, 128, 64, 37, 8, 32, 4, 140, 105]}, {"55061148": [173, 9]}, {"55061152": [140, 105]}, {"55061155": [4, 173, 9]}, {"55061159": [4, 140, 105]}, {"55061163": [8, 173, 9]}, {"55061167": [8, 52, 9]}, {"55061171": [1, 173, 9]}, {"55061175": [12, 144, 98]}, {"55061180": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061196": [52, 1]}, {"55061199": [10, 21, 65]}, {"55061203": [6]}, {"55061208": [149, 42]}, {"55061211": [28, 49, 74, 240, 31]}, {"55061217": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061227": [28, 129, 9, 4, 36, 5, 33]}, {"55061235": [2]}, {"55061241": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061251": [16, 39, 189]}, {"55061255": [24, 3, 224]}, {"55061259": [8]}, {"55061264": [39, 189, 255, 232, 175, 191]}, {"55061271": [16, 12, 16, 10, 210]}, {"55061280": [36, 1, 255, 255, 16, 65]}, {"55061287": [4]}, {"55061292": [52, 68]}, {"55061296": [12, 16, 11, 6]}, {"55061304": [143, 191]}, {"55061307": [16, 39, 189]}, {"55061311": [24, 3, 224]}, {"55061315": [8]}, {"55061320": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061331": [164, 52, 8]}, {"55061336": [52, 137]}, {"55061340": [148, 170]}, {"55061344": [52, 1, 1, 156, 21, 65]}, {"55061351": [8]}, {"55061356": [52, 8]}, {"55061359": [3, 148, 171]}, {"55061363": [28, 49, 105]}, {"55061367": [255, 49, 98, 31]}, {"55061373": [2, 18, 2, 16]}, {"55061379": [31]}, {"55061384": [52, 1]}, {"55061387": [10, 21, 65]}, {"55061391": [14]}, {"55061396": [148, 171]}, {"55061399": [28, 52, 1]}, {"55061403": [16, 20, 65]}, {"55061407": [8]}, {"55061412": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061423": [4]}, {"55061428": [36, 2, 255, 255, 16]}, {"55061435": [21]}, {"55061440": [52, 8]}, {"55061443": [1, 49, 105]}, {"55061447": [31, 52, 1]}, {"55061451": [21, 21, 65]}, {"55061455": [12]}, {"55061460": [52, 1]}, {"55061463": [62, 16, 129]}, {"55061467": [7]}, {"55061472": [52, 1]}, {"55061475": [66, 16, 129]}, {"55061479": [4]}, {"55061484": [36, 2, 255, 255, 16]}, {"55061491": [7]}, {"55061496": [52, 8]}, {"55061499": [2, 144, 169, 1, 65]}, {"55061505": [2, 18]}, {"55061509": [72, 16, 37]}, {"55061513": [2, 18]}, {"55061517": [73, 16, 37, 3, 224]}, {"55061523": [8]}, {"55061528": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061543": [4, 141, 9]}, {"55061548": [17, 32]}, {"55061551": [22]}, {"55061557": [9, 82, 2, 49, 75, 252]}, {"55061565": [11, 90, 130, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061588": [49, 34]}, {"55061591": [255, 60, 8, 128, 18, 37, 8, 165, 208, 161, 11, 20, 7, 60, 9, 128, 64, 37, 41, 32]}, {"55061612": [60, 12, 128, 64, 37, 140, 28]}, {"55061620": [129, 140]}, {"55061624": [17, 108]}, {"55061627": [3, 165, 32]}, {"55061631": [2, 161, 43]}, {"55061635": [2, 161, 34]}, {"55061639": [3, 3, 224]}, {"55061643": [8]}, {"55061648": [39, 189, 255, 224, 175, 176]}, {"55061655": [16, 175, 177]}, {"55061659": [20, 175, 191]}, {"55061663": [24, 52, 130]}, {"55061668": [52, 80]}, {"55061672": [38, 8, 255, 128, 5]}, {"55061679": [18]}, {"55061684": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55061695": [16, 1, 9]}, {"55061699": [24]}, {"55061702": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061720": [142, 40]}, {"55061723": [12, 1]}, {"55061726": [248, 9]}, {"55061732": [20, 80, 255, 239]}, {"55061740": [54, 35]}, {"55061744": [16]}, {"55061747": [2]}, {"55061752": [52, 3]}, {"55061756": [143, 176]}, {"55061759": [16, 143, 177]}, {"55061763": [20, 143, 191]}, {"55061767": [24, 39, 189]}, {"55061771": [32, 3, 224]}, {"55061775": [8]}, {"55061780": [140, 136, 29, 44, 52, 9]}, {"55061787": [1]}, {"55061789": [9, 78]}, {"55061792": [1, 9, 16, 36, 16, 64]}, {"55061799": [36]}, {"55061804": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55061819": [164, 52, 1]}, {"55061823": [61, 17, 129]}, {"55061827": [10]}, {"55061833": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55061843": [25]}, {"55061848": [52, 13]}, {"55061851": [1, 161, 141, 29, 40, 37, 74]}, {"55061859": [3, 16]}, {"55061863": [9]}, {"55061868": [52, 12]}, {"55061871": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55061887": [14]}, {"55061892": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55061928": [60, 9, 128, 64, 37, 41, 32, 20, 161, 40]}, {"55061940": [52, 2]}, {"55061944": [3, 224]}, {"55061947": [8]}, {"55061952": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55061964": [60, 9, 128, 64, 37, 41, 32, 20, 161, 40]}, {"55061976": [3, 224]}, {"55061979": [8]}, {"55061984": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55061996": [60, 9, 128, 64, 37, 41, 32, 20, 161, 40]}, {"55062008": [3, 224]}, {"55062011": [8]}, {"55062016": [175, 164]}, {"55062019": [104, 175, 165]}, {"55062023": [108, 175, 166]}, {"55062027": [112, 175, 167]}, {"55062031": [116, 39, 189, 255, 232, 175, 163]}, {"55062039": [16, 175, 191]}, {"55062043": [20, 60, 8, 128, 64, 37, 8, 32, 20, 129, 8]}, {"55062056": [17]}, {"55062059": [14]}, {"55062064": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062075": [1, 165, 42]}, {"55062080": [60, 9, 128, 65, 52, 10]}, {"55062087": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 138]}, {"55062116": [143, 163]}, {"55062119": [16, 143, 191]}, {"55062123": [20, 39, 189]}, {"55062127": [24, 143, 164]}, {"55062131": [104, 143, 165]}, {"55062135": [108, 143, 166]}, {"55062139": [112, 143, 167]}, {"55062143": [116, 132, 110, 19, 196, 3, 224]}, {"55062151": [8]}, {"55062156": [147, 25]}, {"55062159": [116, 52, 1]}, {"55062163": [255, 23, 33]}, {"55062167": [2]}, {"55062172": [52, 25]}, {"55062175": [44, 3, 224]}, {"55062179": [8, 167, 185]}, {"55062183": [154, 147, 44]}, {"55062187": [116, 52, 1]}, {"55062191": [255, 21, 129]}, {"55062195": [2]}, {"55062200": [52, 12]}, {"55062203": [44, 3, 224]}, {"55062207": [8]}, {"55062212": [145, 174]}, {"55062215": [116, 52, 1]}, {"55062219": [255, 21, 193]}, {"55062223": [2]}, {"55062228": [52, 14]}, {"55062231": [44, 3, 224]}, {"55062235": [8, 167, 174]}, {"55062239": [154, 145, 207]}, {"55062243": [116, 52, 1]}, {"55062247": [255, 21, 225]}, {"55062251": [2]}, {"55062256": [52, 15]}, {"55062259": [44, 3, 224]}, {"55062263": [8, 167, 175]}, {"55062267": [154, 60, 8, 128, 64, 37, 8, 32, 24, 142, 9]}, {"55062279": [104, 173, 9]}, {"55062284": [142, 9]}, {"55062287": [108, 173, 9]}, {"55062291": [4, 150, 9]}, {"55062295": [112, 165, 9]}, {"55062299": [8, 150, 9]}, {"55062303": [156, 165, 9]}, {"55062307": [10, 3, 224]}, {"55062311": [8, 142, 14]}, {"55062315": [4, 39, 189, 255, 224, 175, 176]}, {"55062323": [16, 175, 177]}, {"55062327": [20, 175, 191]}, {"55062331": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 24, 142, 8]}, {"55062351": [4, 17]}, {"55062355": [5]}, {"55062360": [12, 16, 11, 245]}, {"55062368": [16]}, {"55062371": [3]}, {"55062376": [12, 16, 12, 8]}, {"55062384": [12, 16, 11, 232, 52, 4]}, {"55062392": [12, 16, 11, 232, 52, 4]}, {"55062399": [1, 12, 16, 11, 232, 52, 4]}, {"55062407": [2, 143, 176]}, {"55062411": [16, 143, 177]}, {"55062415": [20, 143, 191]}, {"55062419": [24, 39, 189]}, {"55062423": [32, 3, 224]}, {"55062427": [8]}, {"55062432": [2, 4, 64, 33, 145, 9]}, {"55062439": [108, 52, 1]}, {"55062443": [255, 17, 33]}, {"55062447": [7]}, {"55062452": [2, 9, 72, 33, 145, 41]}, {"55062459": [116, 52, 1]}, {"55062463": [44, 17, 33]}, {"55062467": [2]}, {"55062472": [161, 9]}, {"55062475": [105, 3, 224]}, {"55062479": [8]}, {"55062484": [39, 189, 255, 232, 175, 191]}, {"55062491": [16, 142, 40]}, {"55062496": [174, 8]}, {"55062499": [64, 142, 40]}, {"55062503": [4, 174, 8]}, {"55062507": [68, 150, 40]}, {"55062511": [8, 166, 8]}, {"55062515": [72, 162]}, {"55062518": [15, 51, 146, 8]}, {"55062523": [74, 52, 1]}, {"55062527": [255, 21, 1]}, {"55062531": [3]}, {"55062536": [12, 16, 12, 22]}, {"55062544": [143, 191]}, {"55062547": [16, 39, 189]}, {"55062551": [24, 3, 224]}, {"55062555": [8]}, {"55062560": [142, 8]}, {"55062563": [64, 174, 8]}, {"55062567": [104, 142, 8]}, {"55062571": [68, 174, 8]}, {"55062575": [108, 150, 8]}, {"55062579": [72, 166, 8]}, {"55062583": [112, 146, 8]}, {"55062587": [104, 52, 1]}, {"55062591": [255, 21, 1]}, {"55062595": [3]}, {"55062600": [52, 8]}, {"55062603": [1, 162, 8, 15, 51, 3, 224]}, {"55062611": [8]}, {"55062616": [39, 189, 255, 232, 175, 191]}, {"55062623": [16, 150, 8]}, {"55062627": [156, 49, 8]}, {"55062631": [64, 17]}, {"55062635": [5]}, {"55062640": [150, 8]}, {"55062643": [112, 49, 8, 255, 15, 53, 8]}, {"55062651": [48, 166, 8]}, {"55062655": [112, 146, 40]}, {"55062659": [1, 162, 8]}, {"55062663": [105, 150, 40]}, {"55062667": [2, 166, 8]}, {"55062671": [106, 142, 40]}, {"55062675": [4, 174, 8]}, {"55062679": [108, 12, 16, 12, 48, 52, 4]}, {"55062688": [12, 16, 12, 48, 52, 4]}, {"55062695": [1, 12, 16, 12, 48, 52, 4]}, {"55062703": [2, 143, 191]}, {"55062707": [16, 39, 189]}, {"55062711": [24, 3, 224]}, {"55062715": [8]}, {"55062720": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 49, 108, 145, 10]}, {"55062735": [108, 52, 1]}, {"55062739": [255, 17, 65]}, {"55062743": [5]}, {"55062748": [1, 42, 72, 33, 145, 41]}, {"55062756": [21, 32]}, {"55062759": [28]}, {"55062764": [60, 9, 128, 64, 37, 41, 49, 95, 37, 41]}, {"55062775": [1, 145, 42]}, {"55062780": [17, 64]}, {"55062783": [19]}, {"55062788": [2, 10, 88, 33, 145, 107]}, {"55062795": [116, 52, 1]}, {"55062799": [255, 17, 97, 255, 248]}, {"55062808": [146, 12]}, {"55062811": [108, 17, 138, 255, 245]}, {"55062820": [146, 12]}, {"55062823": [109, 17, 138, 255, 242]}, {"55062832": [146, 12]}, {"55062835": [110, 17, 138, 255, 239]}, {"55062844": [161, 11]}, {"55062847": [105, 161, 10]}, {"55062851": [108, 16]}, {"55062855": [4]}, {"55062860": [52, 9]}, {"55062863": [255, 161, 9]}, {"55062867": [105, 161, 9]}, {"55062871": [108, 3, 224]}, {"55062875": [8]}, {"55062880": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55062893": [1, 1, 1, 1, 1]}, {"55062899": [1, 1, 1, 1, 1]}, {"55062905": [1]}, {"55062907": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55062917": [51, 8, 33, 32, 15]}, {"55062923": [71, 21, 234]}, {"55062927": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062939": [164]}, {"55062941": [15, 122, 3, 20, 64]}, {"55062947": [5, 52, 2, 72, 48, 21, 226]}, {"55062955": [7]}, {"55062960": [36, 25]}, {"55062963": [3, 16]}, {"55062967": [4, 52, 2, 99, 17, 21, 226]}, {"55062975": [2]}, {"55062980": [36, 25]}, {"55062983": [3, 3, 224]}, {"55062987": [8]}, {"55062992": [141, 173, 138, 160, 52, 2, 128]}, {"55063000": [16, 77]}, {"55063003": [2]}, {"55063008": [16]}, {"55063011": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063027": [1, 16, 64]}, {"55063031": [2]}, {"55063036": [16]}, {"55063039": [2, 52, 2]}, {"55063043": [1, 161, 226, 28, 191, 3, 224]}, {"55063051": [8]}, {"55063057": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063071": [164]}, {"55063073": [15, 122, 3, 20, 64]}, {"55063079": [5, 52, 2, 72, 48, 21, 226]}, {"55063087": [7]}, {"55063092": [36, 25]}, {"55063095": [3, 16]}, {"55063099": [4, 52, 2, 99, 17, 21, 226]}, {"55063107": [2]}, {"55063112": [36, 25]}, {"55063115": [3, 3, 224]}, {"55063119": [8]}, {"55063124": [162, 37]}, {"55063127": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063139": [4, 142, 10]}, {"55063144": [17, 64]}, {"55063147": [11]}, {"55063153": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063165": [24, 194, 2, 23]}, {"55063171": [3, 49, 89]}, {"55063175": [255, 129, 234]}, {"55063180": [3, 42, 200, 37, 8, 16, 12, 152, 161, 249]}, {"55063192": [3, 224]}, {"55063195": [8]}] \ No newline at end of file +[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 128]}, {"11325064": [12, 16, 11, 115, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 11, 242]}, {"11427296": [12, 16, 11, 120, 52, 2, 0, 255, 16, 0, 5, 97]}, {"11427312": [12, 16, 12, 155]}, {"11431496": [12, 16, 11, 120, 1, 15, 192, 33]}, {"11562028": [12, 16, 12, 188]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 12, 171]}, {"11882076": [12, 16, 12, 136]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 11, 209, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 11, 216, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 11, 223, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 11, 202, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 72]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 9, 219]}, {"12427480": [12, 16, 10, 47]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 51]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 11, 149, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 84]}, {"12491480": [12, 16, 10, 93]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 72]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 11, 230]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 140, 73]}, {"14149503": [164]}, {"14149512": [2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149856": [87]}, {"14149859": [15]}, {"14357459": [118]}, {"14624335": [118]}, {"14872723": [52]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 9, 248, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 9, 248, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 43, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 36, 152, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 36, 180, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 36, 220, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 4, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 44, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 84, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 112, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 140, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 168, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 28, 128, 64, 36, 144, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 20, 128, 64, 36, 144, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 20, 128, 64, 37, 220, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 20, 128, 64, 37, 220, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 20, 128, 64, 37, 220, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 20, 128, 64, 37, 248, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 20, 128, 64, 37, 248, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 20, 128, 64, 37, 248, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 20, 128, 64, 36, 144, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 20, 128, 64, 36, 144, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 38, 172, 128, 64, 36, 144, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 38, 204, 128, 64, 37, 196, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 38, 236, 128, 64, 36, 144, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 39, 20, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 39, 92, 128, 64, 39, 64, 3, 224]}, {"55059603": [8, 52, 162]}, {"55059608": [144, 136]}, {"55059611": [125, 52, 1]}, {"55059615": [255, 17, 1]}, {"55059619": [2, 52, 2]}, {"55059623": [8, 52, 2]}, {"55059627": [9, 3, 224]}, {"55059631": [8]}, {"55059636": [144, 136]}, {"55059639": [163, 49, 8]}, {"55059643": [192, 17]}, {"55059647": [5, 52, 2]}, {"55059651": [84, 52, 1]}, {"55059655": [64, 17, 1]}, {"55059659": [2, 52, 2]}, {"55059663": [53, 52, 2]}, {"55059667": [54, 3, 224]}, {"55059671": [8]}, {"55059676": [144, 136]}, {"55059679": [163, 49, 8]}, {"55059683": [24, 17]}, {"55059687": [5, 52, 2]}, {"55059691": [50, 52, 1]}, {"55059695": [8, 17, 1]}, {"55059699": [2, 52, 2]}, {"55059703": [51, 52, 2]}, {"55059707": [52, 3, 224]}, {"55059711": [8]}, {"55059716": [144, 136]}, {"55059719": [163, 49, 8]}, {"55059723": [3, 17]}, {"55059727": [5, 52, 2]}, {"55059731": [4, 52, 1]}, {"55059735": [1, 17, 1]}, {"55059739": [2, 52, 2]}, {"55059743": [48, 52, 2]}, {"55059747": [49, 3, 224]}, {"55059751": [8]}, {"55059756": [144, 136]}, {"55059759": [162, 49, 8]}, {"55059763": [192, 17]}, {"55059767": [5, 52, 2]}, {"55059771": [5, 52, 1]}, {"55059775": [64, 17, 1]}, {"55059779": [2, 52, 2]}, {"55059783": [96, 52, 2]}, {"55059787": [123, 3, 224]}, {"55059791": [8]}, {"55059796": [144, 136]}, {"55059799": [162, 49, 8]}, {"55059803": [48, 17]}, {"55059807": [2, 52, 2]}, {"55059811": [69, 52, 2]}, {"55059815": [70, 3, 224]}, {"55059819": [8]}, {"55059824": [144, 136]}, {"55059827": [162, 49, 8]}, {"55059831": [6, 17]}, {"55059835": [2, 52, 2]}, {"55059839": [55, 52, 2]}, {"55059843": [56, 3, 224]}, {"55059847": [8]}, {"55059852": [144, 136]}, {"55059855": [161, 49, 8]}, {"55059859": [32, 17]}, {"55059863": [2, 52, 2]}, {"55059867": [121, 52, 2]}, {"55059871": [122, 3, 224]}, {"55059875": [8]}, {"55059880": [144, 136]}, {"55059883": [161, 49, 8]}, {"55059887": [4, 17]}, {"55059891": [2, 52, 2]}, {"55059895": [119, 52, 2]}, {"55059899": [120, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [50, 17]}, {"55059915": [2, 52, 2]}, {"55059919": [192, 52, 2]}, {"55059923": [193, 3, 224]}, {"55059927": [8]}, {"55059932": [144, 136]}, {"55059935": [163, 49, 8]}, {"55059939": [3, 17]}, {"55059943": [2, 52, 2]}, {"55059947": [77, 52, 162]}, {"55059952": [3, 224]}, {"55059955": [8]}, {"55059960": [144, 136]}, {"55059963": [163, 49, 8]}, {"55059967": [24, 17]}, {"55059971": [2, 52, 2]}, {"55059975": [77, 52, 162]}, {"55059980": [3, 224]}, {"55059983": [8]}, {"55059988": [3, 224]}, {"55059991": [8]}, {"55059996": [52, 8]}, {"55059999": [1, 160, 136]}, {"55060003": [62, 3, 224]}, {"55060007": [8]}, {"55060012": [36, 136]}, {"55060015": [134, 36, 9, 255, 255, 37, 41]}, {"55060023": [1, 52, 1]}, {"55060027": [3]}, {"55060029": [41, 8, 42, 20, 32]}, {"55060035": [7]}, {"55060040": [1, 9, 80, 33, 145, 75]}, {"55060048": [52, 1]}, {"55060051": [255, 21, 97, 255, 247]}, {"55060060": [161, 69]}, {"55060064": [3, 224]}, {"55060067": [8]}, {"55060072": [36, 136]}, {"55060075": [168, 1, 6, 64, 33, 145, 9]}, {"55060084": [1, 37, 72, 37, 161, 9]}, {"55060092": [3, 224]}, {"55060095": [8]}, {"55060100": [36, 136]}, {"55060103": [188, 1, 5, 64, 33, 129, 9]}, {"55060112": [5, 33]}, {"55060115": [2]}, {"55060120": [52, 9]}, {"55060124": [37, 41]}, {"55060127": [1, 161, 9]}, {"55060132": [3, 224]}, {"55060135": [8]}, {"55060140": [52, 8]}, {"55060143": [1, 160, 136]}, {"55060147": [61, 52, 8]}, {"55060151": [20, 160, 136]}, {"55060155": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060167": [8]}, {"55060172": [52, 8]}, {"55060175": [1, 160, 136]}, {"55060179": [50, 160, 136]}, {"55060183": [58, 52, 8]}, {"55060187": [48, 164, 136, 19, 244, 160, 136]}, {"55060195": [51, 3, 224]}, {"55060199": [8]}, {"55060204": [52, 8]}, {"55060207": [2, 160, 136]}, {"55060211": [50, 52, 8]}, {"55060215": [1, 160, 136]}, {"55060219": [58, 160, 136]}, {"55060223": [60, 52, 8]}, {"55060227": [96, 164, 136, 19, 244, 160, 136]}, {"55060235": [51, 3, 224]}, {"55060239": [8]}, {"55060244": [144, 136]}, {"55060247": [124, 52, 1]}, {"55060251": [255, 17, 1]}, {"55060255": [6, 52, 2]}, {"55060259": [107, 144, 136]}, {"55060263": [148, 45, 8]}, {"55060267": [6, 17]}, {"55060271": [2, 52, 2]}, {"55060275": [106, 52, 2]}, {"55060279": [3, 3, 224]}, {"55060283": [8]}, {"55060288": [144, 136]}, {"55060291": [123, 52, 1]}, {"55060295": [255, 17, 1]}, {"55060299": [2, 52, 162]}, {"55060304": [52, 2]}, {"55060307": [12, 3, 224]}, {"55060311": [8]}, {"55060316": [52, 8]}, {"55060319": [7, 160, 136]}, {"55060323": [123, 3, 224]}, {"55060327": [8]}, {"55060332": [48, 132]}, {"55060335": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060347": [140, 16, 129]}, {"55060351": [22, 145, 2]}, {"55060355": [117, 52, 1]}, {"55060359": [141, 16, 129]}, {"55060363": [19, 145, 2]}, {"55060367": [117, 16, 128]}, {"55060371": [17, 145, 2]}, {"55060375": [116, 52, 1]}, {"55060379": [138, 16, 129]}, {"55060383": [14, 145, 2]}, {"55060387": [116, 52, 1]}, {"55060391": [139, 16, 129]}, {"55060395": [11, 145, 2]}, {"55060399": [116, 52, 1]}, {"55060403": [88, 16, 129]}, {"55060407": [8, 52, 2]}, {"55060412": [52, 1]}, {"55060415": [120, 16, 129]}, {"55060419": [5, 52, 2]}, {"55060424": [52, 1]}, {"55060427": [121, 16, 129]}, {"55060431": [2, 52, 2]}, {"55060436": [52, 2]}, {"55060439": [255, 3, 224]}, {"55060443": [8]}, {"55060448": [39, 189, 255, 224, 175, 191]}, {"55060455": [16, 175, 176]}, {"55060459": [20, 12, 16, 10, 199]}, {"55060468": [4, 65]}, {"55060471": [2]}, {"55060476": [52, 2]}, {"55060479": [91]}, {"55060481": [64, 32, 33, 12, 16, 11, 39]}, {"55060492": [16, 96]}, {"55060495": [18, 175, 163]}, {"55060499": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060508": [133, 9]}, {"55060511": [2, 17, 32]}, {"55060515": [3, 52, 10]}, {"55060519": [1, 16]}, {"55060523": [8, 165, 10]}, {"55060528": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060539": [6, 144, 102]}, {"55060543": [7, 140, 105]}, {"55060547": [8, 1, 32, 248, 9]}, {"55060556": [143, 163]}, {"55060559": [28, 144, 101]}, {"55060563": [3, 16]}, {"55060567": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060579": [6]}, {"55060581": [74]}, {"55060583": [24]}, {"55060586": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060596": [60, 8, 128, 64, 37, 8, 32]}, {"55060604": [133, 9]}, {"55060607": [2, 17, 32]}, {"55060611": [3, 52, 10]}, {"55060615": [1, 165, 10]}, {"55060620": [52, 5]}, {"55060623": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060635": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060646": [48, 33, 143, 191]}, {"55060651": [16, 143, 176]}, {"55060655": [20, 39, 189]}, {"55060659": [32, 3, 224]}, {"55060663": [8]}, {"55060668": [143, 166]}, {"55060671": [48, 132, 197]}, {"55060675": [4, 8, 16, 10, 55]}, {"55060684": [143, 185]}, {"55060687": [44, 135, 37]}, {"55060691": [4, 8, 16, 10, 55]}, {"55060700": [60, 10, 128, 64, 37, 74, 32, 4, 141, 75]}, {"55060711": [12, 17, 96]}, {"55060715": [2]}, {"55060720": [149, 69]}, {"55060723": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060736": [60, 9, 128, 64, 37, 41, 32, 20, 129, 42]}, {"55060747": [3, 5, 64]}, {"55060751": [2, 1, 42, 72, 32, 161, 32]}, {"55060760": [3, 224]}, {"55060763": [8]}, {"55060768": [60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55060779": [12, 17, 32]}, {"55060783": [2]}, {"55060788": [129, 3]}, {"55060791": [2]}, {"55060793": [3, 15, 195]}, {"55060797": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55060811": [8]}, {"55060816": [144, 69]}, {"55060819": [3, 60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55060831": [12, 17, 32]}, {"55060835": [2]}, {"55060840": [145, 5]}, {"55060843": [3, 3, 224]}, {"55060847": [8]}, {"55060852": [143, 162]}, {"55060855": [36, 144, 69]}, {"55060860": [60, 8, 128, 64, 37, 8, 32]}, {"55060868": [133, 9]}, {"55060871": [2, 17, 32]}, {"55060875": [4, 52, 10]}, {"55060879": [1, 165, 10]}, {"55060884": [16]}, {"55060887": [24, 52, 5]}, {"55060891": [65, 60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55060903": [12, 17, 32]}, {"55060907": [19]}, {"55060912": [145, 5]}, {"55060915": [1, 175, 164]}, {"55060920": [175, 165]}, {"55060923": [4, 175, 166]}, {"55060927": [8, 39, 189, 255, 232, 175, 191]}, {"55060935": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55060947": [6, 145, 6]}, {"55060951": [7, 141, 9]}, {"55060955": [8, 1, 32, 248, 9]}, {"55060964": [143, 191]}, {"55060967": [16, 39, 189]}, {"55060971": [24, 143, 164]}, {"55060976": [143, 165]}, {"55060979": [4, 143, 166]}, {"55060983": [8, 3, 224]}, {"55060987": [8]}, {"55060992": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061003": [16, 175, 163]}, {"55061007": [20, 175, 191]}, {"55061011": [24, 12, 16, 10, 141]}, {"55061020": [143, 162]}, {"55061023": [16, 143, 163]}, {"55061027": [20, 143, 191]}, {"55061031": [24, 39, 189]}, {"55061035": [32, 3, 224]}, {"55061039": [8]}, {"55061044": [39, 189, 255, 232, 175, 191]}, {"55061051": [16, 60, 8, 128, 64, 37, 8, 32, 4, 173]}, {"55061064": [173]}, {"55061067": [4, 173]}, {"55061071": [8, 173]}, {"55061075": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061091": [42]}, {"55061097": [9, 15, 195, 1, 33, 32, 38]}, {"55061105": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 199]}, {"55061120": [4, 64]}, {"55061123": [34]}, {"55061128": [52, 68]}, {"55061132": [12, 16, 11, 39]}, {"55061140": [16, 96]}, {"55061143": [12]}, {"55061148": [60, 8, 128, 64, 37, 8, 32, 4, 140, 105]}, {"55061160": [173, 9]}, {"55061164": [140, 105]}, {"55061167": [4, 173, 9]}, {"55061171": [4, 140, 105]}, {"55061175": [8, 173, 9]}, {"55061179": [8, 52, 9]}, {"55061183": [1, 173, 9]}, {"55061187": [12, 144, 98]}, {"55061192": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061208": [52, 1]}, {"55061211": [10, 21, 65]}, {"55061215": [6]}, {"55061220": [149, 42]}, {"55061223": [28, 49, 74, 240, 31]}, {"55061229": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061239": [28, 129, 9, 4, 36, 5, 33]}, {"55061247": [2]}, {"55061253": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061263": [16, 39, 189]}, {"55061267": [24, 3, 224]}, {"55061271": [8]}, {"55061276": [39, 189, 255, 232, 175, 191]}, {"55061283": [16, 12, 16, 10, 213]}, {"55061292": [36, 1, 255, 255, 16, 65]}, {"55061299": [4]}, {"55061304": [52, 68]}, {"55061308": [12, 16, 11, 9]}, {"55061316": [143, 191]}, {"55061319": [16, 39, 189]}, {"55061323": [24, 3, 224]}, {"55061327": [8]}, {"55061332": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061343": [164, 52, 8]}, {"55061348": [52, 137]}, {"55061352": [148, 170]}, {"55061356": [52, 1, 1, 156, 21, 65]}, {"55061363": [8]}, {"55061368": [52, 8]}, {"55061371": [3, 148, 171]}, {"55061375": [28, 49, 105]}, {"55061379": [255, 49, 98, 31]}, {"55061385": [2, 18, 2, 16]}, {"55061391": [31]}, {"55061396": [52, 1]}, {"55061399": [10, 21, 65]}, {"55061403": [14]}, {"55061408": [148, 171]}, {"55061411": [28, 52, 1]}, {"55061415": [16, 20, 65]}, {"55061419": [8]}, {"55061424": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061435": [4]}, {"55061440": [36, 2, 255, 255, 16]}, {"55061447": [21]}, {"55061452": [52, 8]}, {"55061455": [1, 49, 105]}, {"55061459": [31, 52, 1]}, {"55061463": [21, 21, 65]}, {"55061467": [12]}, {"55061472": [52, 1]}, {"55061475": [62, 16, 129]}, {"55061479": [7]}, {"55061484": [52, 1]}, {"55061487": [66, 16, 129]}, {"55061491": [4]}, {"55061496": [36, 2, 255, 255, 16]}, {"55061503": [7]}, {"55061508": [52, 8]}, {"55061511": [2, 144, 169, 1, 65]}, {"55061517": [2, 18]}, {"55061521": [72, 16, 37]}, {"55061525": [2, 18]}, {"55061529": [73, 16, 37, 3, 224]}, {"55061535": [8]}, {"55061540": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061555": [4, 141, 9]}, {"55061560": [17, 32]}, {"55061563": [22]}, {"55061569": [9, 82, 2, 49, 75, 252]}, {"55061577": [11, 90, 130, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061600": [49, 34]}, {"55061603": [255, 60, 8, 128, 18, 37, 8, 165, 208, 161, 11, 20, 7, 60, 9, 128, 64, 37, 41, 32]}, {"55061624": [60, 12, 128, 64, 37, 140, 28]}, {"55061632": [129, 140]}, {"55061636": [17, 108]}, {"55061639": [3, 165, 32]}, {"55061643": [2, 161, 43]}, {"55061647": [2, 161, 34]}, {"55061651": [3, 3, 224]}, {"55061655": [8]}, {"55061660": [39, 189, 255, 224, 175, 176]}, {"55061667": [16, 175, 177]}, {"55061671": [20, 175, 191]}, {"55061675": [24, 52, 130]}, {"55061680": [52, 80]}, {"55061684": [38, 8, 255, 128, 5]}, {"55061691": [18]}, {"55061696": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55061707": [16, 1, 9]}, {"55061711": [24]}, {"55061714": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061732": [142, 40]}, {"55061735": [12, 1]}, {"55061738": [248, 9]}, {"55061744": [20, 80, 255, 239]}, {"55061752": [54, 35]}, {"55061756": [16]}, {"55061759": [2]}, {"55061764": [52, 3]}, {"55061768": [143, 176]}, {"55061771": [16, 143, 177]}, {"55061775": [20, 143, 191]}, {"55061779": [24, 39, 189]}, {"55061783": [32, 3, 224]}, {"55061787": [8]}, {"55061792": [140, 136, 29, 44, 52, 9]}, {"55061799": [1]}, {"55061801": [9, 78]}, {"55061804": [1, 9, 16, 36, 16, 64]}, {"55061811": [36]}, {"55061816": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55061831": [164, 52, 1]}, {"55061835": [61, 17, 129]}, {"55061839": [10]}, {"55061845": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55061855": [25]}, {"55061860": [52, 13]}, {"55061863": [1, 161, 141, 29, 40, 37, 74]}, {"55061871": [3, 16]}, {"55061875": [9]}, {"55061880": [52, 12]}, {"55061883": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55061899": [14]}, {"55061904": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55061940": [60, 9, 128, 64, 37, 41, 32, 20, 161, 40]}, {"55061952": [52, 2]}, {"55061956": [3, 224]}, {"55061959": [8]}, {"55061964": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55061976": [16]}, {"55061979": [11]}, {"55061984": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55061996": [16]}, {"55061999": [6]}, {"55062004": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062016": [16]}, {"55062019": [1]}, {"55062024": [60, 9, 128, 64, 37, 41, 32, 20, 60, 10, 128, 64, 37, 74, 32, 23, 129, 44]}, {"55062044": [17, 136]}, {"55062047": [11, 33, 41]}, {"55062051": [1, 21, 42, 255, 252]}, {"55062060": [60, 9, 128, 64, 37, 41, 32, 19, 33, 41]}, {"55062071": [1, 17, 42]}, {"55062075": [4, 129, 44]}, {"55062080": [21, 128, 255, 252]}, {"55062088": [161, 40]}, {"55062092": [3, 224]}, {"55062095": [8]}, {"55062100": [175, 164]}, {"55062103": [104, 175, 165]}, {"55062107": [108, 175, 166]}, {"55062111": [112, 175, 167]}, {"55062115": [116, 39, 189, 255, 232, 175, 163]}, {"55062123": [16, 175, 191]}, {"55062127": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062143": [32, 21]}, {"55062147": [31]}, {"55062152": [60, 9, 128, 64, 37, 41, 32, 23, 52, 10]}, {"55062163": [255, 161, 42]}, {"55062168": [60, 9, 128, 64, 37, 41, 32, 20, 36, 10, 255, 255, 52, 12]}, {"55062183": [3, 33, 74]}, {"55062187": [1, 17, 76]}, {"55062191": [20, 1, 42, 88, 32, 129, 104]}, {"55062200": [17]}, {"55062202": [255, 251]}, {"55062208": [60, 9, 128, 64, 37, 41, 32, 23, 161, 42]}, {"55062220": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062231": [1, 165, 42]}, {"55062236": [60, 9, 128, 65, 52, 10]}, {"55062243": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 141]}, {"55062272": [143, 163]}, {"55062275": [16, 143, 191]}, {"55062279": [20, 39, 189]}, {"55062283": [24, 143, 164]}, {"55062287": [104, 143, 165]}, {"55062291": [108, 143, 166]}, {"55062295": [112, 143, 167]}, {"55062299": [116, 132, 110, 19, 196, 3, 224]}, {"55062307": [8]}, {"55062312": [147, 25]}, {"55062315": [116, 52, 1]}, {"55062319": [255, 23, 33]}, {"55062323": [2]}, {"55062328": [52, 25]}, {"55062331": [44, 3, 224]}, {"55062335": [8, 167, 185]}, {"55062339": [154, 147, 44]}, {"55062343": [116, 52, 1]}, {"55062347": [255, 21, 129]}, {"55062351": [2]}, {"55062356": [52, 12]}, {"55062359": [44, 3, 224]}, {"55062363": [8]}, {"55062368": [145, 174]}, {"55062371": [116, 52, 1]}, {"55062375": [255, 21, 193]}, {"55062379": [2]}, {"55062384": [52, 14]}, {"55062387": [44, 3, 224]}, {"55062391": [8, 167, 174]}, {"55062395": [154, 145, 207]}, {"55062399": [116, 52, 1]}, {"55062403": [255, 21, 225]}, {"55062407": [2]}, {"55062412": [52, 15]}, {"55062415": [44, 3, 224]}, {"55062419": [8, 167, 175]}, {"55062423": [154, 60, 8, 128, 64, 37, 8, 32, 24, 142, 9]}, {"55062435": [104, 173, 9]}, {"55062440": [142, 9]}, {"55062443": [108, 173, 9]}, {"55062447": [4, 150, 9]}, {"55062451": [112, 165, 9]}, {"55062455": [8, 150, 9]}, {"55062459": [156, 165, 9]}, {"55062463": [10, 3, 224]}, {"55062467": [8, 142, 14]}, {"55062471": [4, 39, 189, 255, 224, 175, 176]}, {"55062479": [16, 175, 177]}, {"55062483": [20, 175, 191]}, {"55062487": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 24, 142, 8]}, {"55062507": [4, 17]}, {"55062511": [5]}, {"55062516": [12, 16, 12, 28]}, {"55062524": [16]}, {"55062527": [3]}, {"55062532": [12, 16, 12, 47]}, {"55062540": [12, 16, 12, 15, 52, 4]}, {"55062548": [12, 16, 12, 15, 52, 4]}, {"55062555": [1, 12, 16, 12, 15, 52, 4]}, {"55062563": [2, 143, 176]}, {"55062567": [16, 143, 177]}, {"55062571": [20, 143, 191]}, {"55062575": [24, 39, 189]}, {"55062579": [32, 3, 224]}, {"55062583": [8]}, {"55062588": [2, 4, 64, 33, 145, 9]}, {"55062595": [108, 52, 1]}, {"55062599": [255, 17, 33]}, {"55062603": [7]}, {"55062608": [2, 9, 72, 33, 145, 41]}, {"55062615": [116, 52, 1]}, {"55062619": [44, 17, 33]}, {"55062623": [2]}, {"55062628": [161, 9]}, {"55062631": [105, 3, 224]}, {"55062635": [8]}, {"55062640": [39, 189, 255, 232, 175, 191]}, {"55062647": [16, 142, 40]}, {"55062652": [174, 8]}, {"55062655": [64, 142, 40]}, {"55062659": [4, 174, 8]}, {"55062663": [68, 150, 40]}, {"55062667": [8, 166, 8]}, {"55062671": [72, 162]}, {"55062674": [15, 51, 146, 8]}, {"55062679": [74, 52, 1]}, {"55062683": [255, 21, 1]}, {"55062687": [3]}, {"55062692": [12, 16, 12, 61]}, {"55062700": [143, 191]}, {"55062703": [16, 39, 189]}, {"55062707": [24, 3, 224]}, {"55062711": [8]}, {"55062716": [142, 8]}, {"55062719": [64, 174, 8]}, {"55062723": [104, 142, 8]}, {"55062727": [68, 174, 8]}, {"55062731": [108, 150, 8]}, {"55062735": [72, 166, 8]}, {"55062739": [112, 146, 8]}, {"55062743": [104, 52, 1]}, {"55062747": [255, 21, 1]}, {"55062751": [3]}, {"55062756": [52, 8]}, {"55062759": [1, 162, 8, 15, 51, 3, 224]}, {"55062767": [8]}, {"55062772": [39, 189, 255, 232, 175, 191]}, {"55062779": [16, 150, 8]}, {"55062783": [156, 49, 8]}, {"55062787": [64, 17]}, {"55062791": [5]}, {"55062796": [150, 8]}, {"55062799": [112, 49, 8, 255, 15, 53, 8]}, {"55062807": [48, 166, 8]}, {"55062811": [112, 146, 40]}, {"55062815": [1, 162, 8]}, {"55062819": [105, 150, 40]}, {"55062823": [2, 166, 8]}, {"55062827": [106, 142, 40]}, {"55062831": [4, 174, 8]}, {"55062835": [108, 12, 16, 12, 87, 52, 4]}, {"55062844": [12, 16, 12, 87, 52, 4]}, {"55062851": [1, 12, 16, 12, 87, 52, 4]}, {"55062859": [2, 143, 191]}, {"55062863": [16, 39, 189]}, {"55062867": [24, 3, 224]}, {"55062871": [8]}, {"55062876": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 50, 8, 145, 10]}, {"55062891": [108, 52, 1]}, {"55062895": [255, 17, 65]}, {"55062899": [5]}, {"55062904": [1, 42, 72, 33, 145, 41]}, {"55062912": [21, 32]}, {"55062915": [28]}, {"55062920": [60, 9, 128, 64, 37, 41, 49, 251, 37, 41]}, {"55062931": [1, 145, 42]}, {"55062936": [17, 64]}, {"55062939": [19]}, {"55062944": [2, 10, 88, 33, 145, 107]}, {"55062951": [116, 52, 1]}, {"55062955": [255, 17, 97, 255, 248]}, {"55062964": [146, 12]}, {"55062967": [108, 17, 138, 255, 245]}, {"55062976": [146, 12]}, {"55062979": [109, 17, 138, 255, 242]}, {"55062988": [146, 12]}, {"55062991": [110, 17, 138, 255, 239]}, {"55063000": [161, 11]}, {"55063003": [105, 161, 10]}, {"55063007": [108, 16]}, {"55063011": [4]}, {"55063016": [52, 9]}, {"55063019": [255, 161, 9]}, {"55063023": [105, 161, 9]}, {"55063027": [108, 3, 224]}, {"55063031": [8]}, {"55063036": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063049": [1, 1, 1, 1, 1]}, {"55063055": [1, 1, 1, 1, 1]}, {"55063061": [1]}, {"55063063": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063073": [51, 8, 33, 32, 15]}, {"55063079": [71, 21, 234]}, {"55063083": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063095": [164]}, {"55063097": [15, 122, 3, 20, 64]}, {"55063103": [5, 52, 2, 72, 48, 21, 226]}, {"55063111": [7]}, {"55063116": [36, 25]}, {"55063119": [3, 16]}, {"55063123": [4, 52, 2, 99, 17, 21, 226]}, {"55063131": [2]}, {"55063136": [36, 25]}, {"55063139": [3, 3, 224]}, {"55063143": [8]}, {"55063148": [141, 173, 138, 160, 52, 2, 128]}, {"55063156": [16, 77]}, {"55063159": [2]}, {"55063164": [16]}, {"55063167": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063183": [1, 16, 64]}, {"55063187": [2]}, {"55063192": [16]}, {"55063195": [2, 52, 2]}, {"55063199": [1, 161, 226, 28, 191, 3, 224]}, {"55063207": [8]}, {"55063213": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063227": [164]}, {"55063229": [15, 122, 3, 20, 64]}, {"55063235": [5, 52, 2, 72, 48, 21, 226]}, {"55063243": [7]}, {"55063248": [36, 25]}, {"55063251": [3, 16]}, {"55063255": [4, 52, 2, 99, 17, 21, 226]}, {"55063263": [2]}, {"55063268": [36, 25]}, {"55063271": [3, 3, 224]}, {"55063275": [8]}, {"55063280": [162, 37]}, {"55063283": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063295": [4, 142, 10]}, {"55063300": [17, 64]}, {"55063303": [11]}, {"55063309": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063321": [24, 194, 2, 23]}, {"55063327": [3, 49, 89]}, {"55063331": [255, 129, 234]}, {"55063336": [3, 42, 200, 37, 8, 16, 12, 191, 161, 249]}, {"55063348": [3, 224]}, {"55063351": [8]}] \ No newline at end of file diff --git a/version.py b/version.py index 8c42249a1..c2357093d 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.9 f.LUM' +__version__ = '2.13.10 f.LUM' From 7af9e73f2a7d2ebc2e30a6a2d55e0f9c5d07f48b Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Wed, 18 Jul 2018 22:14:45 -0400 Subject: [PATCH 174/755] Fix dungeon items to have player ID in the text --- Messages.py | 15 +++++++++++---- Rom.py | 2 +- data/base2current.json | 2 +- version.py | 2 +- 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/Messages.py b/Messages.py index 79fdd16a5..037002d7f 100644 --- a/Messages.py +++ b/Messages.py @@ -618,9 +618,16 @@ def is_in_item_range(id): # add the keysanity messages # make sure to call this AFTER move_shop_item_messages() -def add_keysanity_messages(messages): +def add_keysanity_messages(messages, world): for id, text in KEYSANITY_MESSAGES.items(): - add_message(messages, text, id, 0x23) + if world.world_count > 1: + index = 0 + while ord(text[index]) in CONTROL_CODES: + index = index + CONTROL_CODES[ord(text[index])][1] + 1 + new_text = text[:index] + "\x08\x05\x42Player \x18:\x05\x40\x01" + text[index:] + add_message(messages, new_text, id, 0x23) + else: + add_message(messages, text, id, 0x23) # reduce item message sizes def update_item_messages(messages, world): @@ -635,9 +642,9 @@ def update_item_messages(messages, world): update_message_by_id(messages, id, text) # run all keysanity related patching to add messages for dungeon specific items -def message_patch_for_dungeon_items(rom, messages, shop_items): +def message_patch_for_dungeon_items(messages, shop_items, world): move_shop_item_messages(messages, shop_items) - add_keysanity_messages(messages) + add_keysanity_messages(messages, world) # reads each of the game's messages into a list of Message objects def read_messages(rom): diff --git a/Rom.py b/Rom.py index 9bc2573be..930372c38 100644 --- a/Rom.py +++ b/Rom.py @@ -1175,7 +1175,7 @@ def write_save_table(rom): update_chest_sizes(rom, override_table) # give dungeon items the correct messages - message_patch_for_dungeon_items(rom, messages, shop_items) + message_patch_for_dungeon_items(messages, shop_items, world) # reduce item message lengths update_item_messages(messages, world) diff --git a/data/base2current.json b/data/base2current.json index e73663ff0..98e71a81e 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -1 +1 @@ -[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 128]}, {"11325064": [12, 16, 11, 115, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 11, 242]}, {"11427296": [12, 16, 11, 120, 52, 2, 0, 255, 16, 0, 5, 97]}, {"11427312": [12, 16, 12, 155]}, {"11431496": [12, 16, 11, 120, 1, 15, 192, 33]}, {"11562028": [12, 16, 12, 188]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 12, 171]}, {"11882076": [12, 16, 12, 136]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 11, 209, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 11, 216, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 11, 223, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 11, 202, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 72]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 9, 219]}, {"12427480": [12, 16, 10, 47]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 51]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 11, 149, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 84]}, {"12491480": [12, 16, 10, 93]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 72]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 11, 230]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 140, 73]}, {"14149503": [164]}, {"14149512": [2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149856": [87]}, {"14149859": [15]}, {"14357459": [118]}, {"14624335": [118]}, {"14872723": [52]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 9, 248, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 9, 248, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 43, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 36, 152, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 36, 180, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 36, 220, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 4, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 44, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 84, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 112, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 140, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 168, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 28, 128, 64, 36, 144, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 20, 128, 64, 36, 144, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 20, 128, 64, 37, 220, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 20, 128, 64, 37, 220, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 20, 128, 64, 37, 220, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 20, 128, 64, 37, 248, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 20, 128, 64, 37, 248, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 20, 128, 64, 37, 248, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 20, 128, 64, 36, 144, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 20, 128, 64, 36, 144, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 38, 172, 128, 64, 36, 144, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 38, 204, 128, 64, 37, 196, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 38, 236, 128, 64, 36, 144, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 39, 20, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 39, 92, 128, 64, 39, 64, 3, 224]}, {"55059603": [8, 52, 162]}, {"55059608": [144, 136]}, {"55059611": [125, 52, 1]}, {"55059615": [255, 17, 1]}, {"55059619": [2, 52, 2]}, {"55059623": [8, 52, 2]}, {"55059627": [9, 3, 224]}, {"55059631": [8]}, {"55059636": [144, 136]}, {"55059639": [163, 49, 8]}, {"55059643": [192, 17]}, {"55059647": [5, 52, 2]}, {"55059651": [84, 52, 1]}, {"55059655": [64, 17, 1]}, {"55059659": [2, 52, 2]}, {"55059663": [53, 52, 2]}, {"55059667": [54, 3, 224]}, {"55059671": [8]}, {"55059676": [144, 136]}, {"55059679": [163, 49, 8]}, {"55059683": [24, 17]}, {"55059687": [5, 52, 2]}, {"55059691": [50, 52, 1]}, {"55059695": [8, 17, 1]}, {"55059699": [2, 52, 2]}, {"55059703": [51, 52, 2]}, {"55059707": [52, 3, 224]}, {"55059711": [8]}, {"55059716": [144, 136]}, {"55059719": [163, 49, 8]}, {"55059723": [3, 17]}, {"55059727": [5, 52, 2]}, {"55059731": [4, 52, 1]}, {"55059735": [1, 17, 1]}, {"55059739": [2, 52, 2]}, {"55059743": [48, 52, 2]}, {"55059747": [49, 3, 224]}, {"55059751": [8]}, {"55059756": [144, 136]}, {"55059759": [162, 49, 8]}, {"55059763": [192, 17]}, {"55059767": [5, 52, 2]}, {"55059771": [5, 52, 1]}, {"55059775": [64, 17, 1]}, {"55059779": [2, 52, 2]}, {"55059783": [96, 52, 2]}, {"55059787": [123, 3, 224]}, {"55059791": [8]}, {"55059796": [144, 136]}, {"55059799": [162, 49, 8]}, {"55059803": [48, 17]}, {"55059807": [2, 52, 2]}, {"55059811": [69, 52, 2]}, {"55059815": [70, 3, 224]}, {"55059819": [8]}, {"55059824": [144, 136]}, {"55059827": [162, 49, 8]}, {"55059831": [6, 17]}, {"55059835": [2, 52, 2]}, {"55059839": [55, 52, 2]}, {"55059843": [56, 3, 224]}, {"55059847": [8]}, {"55059852": [144, 136]}, {"55059855": [161, 49, 8]}, {"55059859": [32, 17]}, {"55059863": [2, 52, 2]}, {"55059867": [121, 52, 2]}, {"55059871": [122, 3, 224]}, {"55059875": [8]}, {"55059880": [144, 136]}, {"55059883": [161, 49, 8]}, {"55059887": [4, 17]}, {"55059891": [2, 52, 2]}, {"55059895": [119, 52, 2]}, {"55059899": [120, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [50, 17]}, {"55059915": [2, 52, 2]}, {"55059919": [192, 52, 2]}, {"55059923": [193, 3, 224]}, {"55059927": [8]}, {"55059932": [144, 136]}, {"55059935": [163, 49, 8]}, {"55059939": [3, 17]}, {"55059943": [2, 52, 2]}, {"55059947": [77, 52, 162]}, {"55059952": [3, 224]}, {"55059955": [8]}, {"55059960": [144, 136]}, {"55059963": [163, 49, 8]}, {"55059967": [24, 17]}, {"55059971": [2, 52, 2]}, {"55059975": [77, 52, 162]}, {"55059980": [3, 224]}, {"55059983": [8]}, {"55059988": [3, 224]}, {"55059991": [8]}, {"55059996": [52, 8]}, {"55059999": [1, 160, 136]}, {"55060003": [62, 3, 224]}, {"55060007": [8]}, {"55060012": [36, 136]}, {"55060015": [134, 36, 9, 255, 255, 37, 41]}, {"55060023": [1, 52, 1]}, {"55060027": [3]}, {"55060029": [41, 8, 42, 20, 32]}, {"55060035": [7]}, {"55060040": [1, 9, 80, 33, 145, 75]}, {"55060048": [52, 1]}, {"55060051": [255, 21, 97, 255, 247]}, {"55060060": [161, 69]}, {"55060064": [3, 224]}, {"55060067": [8]}, {"55060072": [36, 136]}, {"55060075": [168, 1, 6, 64, 33, 145, 9]}, {"55060084": [1, 37, 72, 37, 161, 9]}, {"55060092": [3, 224]}, {"55060095": [8]}, {"55060100": [36, 136]}, {"55060103": [188, 1, 5, 64, 33, 129, 9]}, {"55060112": [5, 33]}, {"55060115": [2]}, {"55060120": [52, 9]}, {"55060124": [37, 41]}, {"55060127": [1, 161, 9]}, {"55060132": [3, 224]}, {"55060135": [8]}, {"55060140": [52, 8]}, {"55060143": [1, 160, 136]}, {"55060147": [61, 52, 8]}, {"55060151": [20, 160, 136]}, {"55060155": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060167": [8]}, {"55060172": [52, 8]}, {"55060175": [1, 160, 136]}, {"55060179": [50, 160, 136]}, {"55060183": [58, 52, 8]}, {"55060187": [48, 164, 136, 19, 244, 160, 136]}, {"55060195": [51, 3, 224]}, {"55060199": [8]}, {"55060204": [52, 8]}, {"55060207": [2, 160, 136]}, {"55060211": [50, 52, 8]}, {"55060215": [1, 160, 136]}, {"55060219": [58, 160, 136]}, {"55060223": [60, 52, 8]}, {"55060227": [96, 164, 136, 19, 244, 160, 136]}, {"55060235": [51, 3, 224]}, {"55060239": [8]}, {"55060244": [144, 136]}, {"55060247": [124, 52, 1]}, {"55060251": [255, 17, 1]}, {"55060255": [6, 52, 2]}, {"55060259": [107, 144, 136]}, {"55060263": [148, 45, 8]}, {"55060267": [6, 17]}, {"55060271": [2, 52, 2]}, {"55060275": [106, 52, 2]}, {"55060279": [3, 3, 224]}, {"55060283": [8]}, {"55060288": [144, 136]}, {"55060291": [123, 52, 1]}, {"55060295": [255, 17, 1]}, {"55060299": [2, 52, 162]}, {"55060304": [52, 2]}, {"55060307": [12, 3, 224]}, {"55060311": [8]}, {"55060316": [52, 8]}, {"55060319": [7, 160, 136]}, {"55060323": [123, 3, 224]}, {"55060327": [8]}, {"55060332": [48, 132]}, {"55060335": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060347": [140, 16, 129]}, {"55060351": [22, 145, 2]}, {"55060355": [117, 52, 1]}, {"55060359": [141, 16, 129]}, {"55060363": [19, 145, 2]}, {"55060367": [117, 16, 128]}, {"55060371": [17, 145, 2]}, {"55060375": [116, 52, 1]}, {"55060379": [138, 16, 129]}, {"55060383": [14, 145, 2]}, {"55060387": [116, 52, 1]}, {"55060391": [139, 16, 129]}, {"55060395": [11, 145, 2]}, {"55060399": [116, 52, 1]}, {"55060403": [88, 16, 129]}, {"55060407": [8, 52, 2]}, {"55060412": [52, 1]}, {"55060415": [120, 16, 129]}, {"55060419": [5, 52, 2]}, {"55060424": [52, 1]}, {"55060427": [121, 16, 129]}, {"55060431": [2, 52, 2]}, {"55060436": [52, 2]}, {"55060439": [255, 3, 224]}, {"55060443": [8]}, {"55060448": [39, 189, 255, 224, 175, 191]}, {"55060455": [16, 175, 176]}, {"55060459": [20, 12, 16, 10, 199]}, {"55060468": [4, 65]}, {"55060471": [2]}, {"55060476": [52, 2]}, {"55060479": [91]}, {"55060481": [64, 32, 33, 12, 16, 11, 39]}, {"55060492": [16, 96]}, {"55060495": [18, 175, 163]}, {"55060499": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060508": [133, 9]}, {"55060511": [2, 17, 32]}, {"55060515": [3, 52, 10]}, {"55060519": [1, 16]}, {"55060523": [8, 165, 10]}, {"55060528": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060539": [6, 144, 102]}, {"55060543": [7, 140, 105]}, {"55060547": [8, 1, 32, 248, 9]}, {"55060556": [143, 163]}, {"55060559": [28, 144, 101]}, {"55060563": [3, 16]}, {"55060567": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060579": [6]}, {"55060581": [74]}, {"55060583": [24]}, {"55060586": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060596": [60, 8, 128, 64, 37, 8, 32]}, {"55060604": [133, 9]}, {"55060607": [2, 17, 32]}, {"55060611": [3, 52, 10]}, {"55060615": [1, 165, 10]}, {"55060620": [52, 5]}, {"55060623": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060635": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060646": [48, 33, 143, 191]}, {"55060651": [16, 143, 176]}, {"55060655": [20, 39, 189]}, {"55060659": [32, 3, 224]}, {"55060663": [8]}, {"55060668": [143, 166]}, {"55060671": [48, 132, 197]}, {"55060675": [4, 8, 16, 10, 55]}, {"55060684": [143, 185]}, {"55060687": [44, 135, 37]}, {"55060691": [4, 8, 16, 10, 55]}, {"55060700": [60, 10, 128, 64, 37, 74, 32, 4, 141, 75]}, {"55060711": [12, 17, 96]}, {"55060715": [2]}, {"55060720": [149, 69]}, {"55060723": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060736": [60, 9, 128, 64, 37, 41, 32, 20, 129, 42]}, {"55060747": [3, 5, 64]}, {"55060751": [2, 1, 42, 72, 32, 161, 32]}, {"55060760": [3, 224]}, {"55060763": [8]}, {"55060768": [60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55060779": [12, 17, 32]}, {"55060783": [2]}, {"55060788": [129, 3]}, {"55060791": [2]}, {"55060793": [3, 15, 195]}, {"55060797": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55060811": [8]}, {"55060816": [144, 69]}, {"55060819": [3, 60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55060831": [12, 17, 32]}, {"55060835": [2]}, {"55060840": [145, 5]}, {"55060843": [3, 3, 224]}, {"55060847": [8]}, {"55060852": [143, 162]}, {"55060855": [36, 144, 69]}, {"55060860": [60, 8, 128, 64, 37, 8, 32]}, {"55060868": [133, 9]}, {"55060871": [2, 17, 32]}, {"55060875": [4, 52, 10]}, {"55060879": [1, 165, 10]}, {"55060884": [16]}, {"55060887": [24, 52, 5]}, {"55060891": [65, 60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55060903": [12, 17, 32]}, {"55060907": [19]}, {"55060912": [145, 5]}, {"55060915": [1, 175, 164]}, {"55060920": [175, 165]}, {"55060923": [4, 175, 166]}, {"55060927": [8, 39, 189, 255, 232, 175, 191]}, {"55060935": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55060947": [6, 145, 6]}, {"55060951": [7, 141, 9]}, {"55060955": [8, 1, 32, 248, 9]}, {"55060964": [143, 191]}, {"55060967": [16, 39, 189]}, {"55060971": [24, 143, 164]}, {"55060976": [143, 165]}, {"55060979": [4, 143, 166]}, {"55060983": [8, 3, 224]}, {"55060987": [8]}, {"55060992": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061003": [16, 175, 163]}, {"55061007": [20, 175, 191]}, {"55061011": [24, 12, 16, 10, 141]}, {"55061020": [143, 162]}, {"55061023": [16, 143, 163]}, {"55061027": [20, 143, 191]}, {"55061031": [24, 39, 189]}, {"55061035": [32, 3, 224]}, {"55061039": [8]}, {"55061044": [39, 189, 255, 232, 175, 191]}, {"55061051": [16, 60, 8, 128, 64, 37, 8, 32, 4, 173]}, {"55061064": [173]}, {"55061067": [4, 173]}, {"55061071": [8, 173]}, {"55061075": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061091": [42]}, {"55061097": [9, 15, 195, 1, 33, 32, 38]}, {"55061105": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 199]}, {"55061120": [4, 64]}, {"55061123": [34]}, {"55061128": [52, 68]}, {"55061132": [12, 16, 11, 39]}, {"55061140": [16, 96]}, {"55061143": [12]}, {"55061148": [60, 8, 128, 64, 37, 8, 32, 4, 140, 105]}, {"55061160": [173, 9]}, {"55061164": [140, 105]}, {"55061167": [4, 173, 9]}, {"55061171": [4, 140, 105]}, {"55061175": [8, 173, 9]}, {"55061179": [8, 52, 9]}, {"55061183": [1, 173, 9]}, {"55061187": [12, 144, 98]}, {"55061192": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061208": [52, 1]}, {"55061211": [10, 21, 65]}, {"55061215": [6]}, {"55061220": [149, 42]}, {"55061223": [28, 49, 74, 240, 31]}, {"55061229": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061239": [28, 129, 9, 4, 36, 5, 33]}, {"55061247": [2]}, {"55061253": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061263": [16, 39, 189]}, {"55061267": [24, 3, 224]}, {"55061271": [8]}, {"55061276": [39, 189, 255, 232, 175, 191]}, {"55061283": [16, 12, 16, 10, 213]}, {"55061292": [36, 1, 255, 255, 16, 65]}, {"55061299": [4]}, {"55061304": [52, 68]}, {"55061308": [12, 16, 11, 9]}, {"55061316": [143, 191]}, {"55061319": [16, 39, 189]}, {"55061323": [24, 3, 224]}, {"55061327": [8]}, {"55061332": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061343": [164, 52, 8]}, {"55061348": [52, 137]}, {"55061352": [148, 170]}, {"55061356": [52, 1, 1, 156, 21, 65]}, {"55061363": [8]}, {"55061368": [52, 8]}, {"55061371": [3, 148, 171]}, {"55061375": [28, 49, 105]}, {"55061379": [255, 49, 98, 31]}, {"55061385": [2, 18, 2, 16]}, {"55061391": [31]}, {"55061396": [52, 1]}, {"55061399": [10, 21, 65]}, {"55061403": [14]}, {"55061408": [148, 171]}, {"55061411": [28, 52, 1]}, {"55061415": [16, 20, 65]}, {"55061419": [8]}, {"55061424": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061435": [4]}, {"55061440": [36, 2, 255, 255, 16]}, {"55061447": [21]}, {"55061452": [52, 8]}, {"55061455": [1, 49, 105]}, {"55061459": [31, 52, 1]}, {"55061463": [21, 21, 65]}, {"55061467": [12]}, {"55061472": [52, 1]}, {"55061475": [62, 16, 129]}, {"55061479": [7]}, {"55061484": [52, 1]}, {"55061487": [66, 16, 129]}, {"55061491": [4]}, {"55061496": [36, 2, 255, 255, 16]}, {"55061503": [7]}, {"55061508": [52, 8]}, {"55061511": [2, 144, 169, 1, 65]}, {"55061517": [2, 18]}, {"55061521": [72, 16, 37]}, {"55061525": [2, 18]}, {"55061529": [73, 16, 37, 3, 224]}, {"55061535": [8]}, {"55061540": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061555": [4, 141, 9]}, {"55061560": [17, 32]}, {"55061563": [22]}, {"55061569": [9, 82, 2, 49, 75, 252]}, {"55061577": [11, 90, 130, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061600": [49, 34]}, {"55061603": [255, 60, 8, 128, 18, 37, 8, 165, 208, 161, 11, 20, 7, 60, 9, 128, 64, 37, 41, 32]}, {"55061624": [60, 12, 128, 64, 37, 140, 28]}, {"55061632": [129, 140]}, {"55061636": [17, 108]}, {"55061639": [3, 165, 32]}, {"55061643": [2, 161, 43]}, {"55061647": [2, 161, 34]}, {"55061651": [3, 3, 224]}, {"55061655": [8]}, {"55061660": [39, 189, 255, 224, 175, 176]}, {"55061667": [16, 175, 177]}, {"55061671": [20, 175, 191]}, {"55061675": [24, 52, 130]}, {"55061680": [52, 80]}, {"55061684": [38, 8, 255, 128, 5]}, {"55061691": [18]}, {"55061696": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55061707": [16, 1, 9]}, {"55061711": [24]}, {"55061714": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061732": [142, 40]}, {"55061735": [12, 1]}, {"55061738": [248, 9]}, {"55061744": [20, 80, 255, 239]}, {"55061752": [54, 35]}, {"55061756": [16]}, {"55061759": [2]}, {"55061764": [52, 3]}, {"55061768": [143, 176]}, {"55061771": [16, 143, 177]}, {"55061775": [20, 143, 191]}, {"55061779": [24, 39, 189]}, {"55061783": [32, 3, 224]}, {"55061787": [8]}, {"55061792": [140, 136, 29, 44, 52, 9]}, {"55061799": [1]}, {"55061801": [9, 78]}, {"55061804": [1, 9, 16, 36, 16, 64]}, {"55061811": [36]}, {"55061816": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55061831": [164, 52, 1]}, {"55061835": [61, 17, 129]}, {"55061839": [10]}, {"55061845": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55061855": [25]}, {"55061860": [52, 13]}, {"55061863": [1, 161, 141, 29, 40, 37, 74]}, {"55061871": [3, 16]}, {"55061875": [9]}, {"55061880": [52, 12]}, {"55061883": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55061899": [14]}, {"55061904": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55061940": [60, 9, 128, 64, 37, 41, 32, 20, 161, 40]}, {"55061952": [52, 2]}, {"55061956": [3, 224]}, {"55061959": [8]}, {"55061964": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55061976": [16]}, {"55061979": [11]}, {"55061984": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55061996": [16]}, {"55061999": [6]}, {"55062004": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062016": [16]}, {"55062019": [1]}, {"55062024": [60, 9, 128, 64, 37, 41, 32, 20, 60, 10, 128, 64, 37, 74, 32, 23, 129, 44]}, {"55062044": [17, 136]}, {"55062047": [11, 33, 41]}, {"55062051": [1, 21, 42, 255, 252]}, {"55062060": [60, 9, 128, 64, 37, 41, 32, 19, 33, 41]}, {"55062071": [1, 17, 42]}, {"55062075": [4, 129, 44]}, {"55062080": [21, 128, 255, 252]}, {"55062088": [161, 40]}, {"55062092": [3, 224]}, {"55062095": [8]}, {"55062100": [175, 164]}, {"55062103": [104, 175, 165]}, {"55062107": [108, 175, 166]}, {"55062111": [112, 175, 167]}, {"55062115": [116, 39, 189, 255, 232, 175, 163]}, {"55062123": [16, 175, 191]}, {"55062127": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062143": [32, 21]}, {"55062147": [31]}, {"55062152": [60, 9, 128, 64, 37, 41, 32, 23, 52, 10]}, {"55062163": [255, 161, 42]}, {"55062168": [60, 9, 128, 64, 37, 41, 32, 20, 36, 10, 255, 255, 52, 12]}, {"55062183": [3, 33, 74]}, {"55062187": [1, 17, 76]}, {"55062191": [20, 1, 42, 88, 32, 129, 104]}, {"55062200": [17]}, {"55062202": [255, 251]}, {"55062208": [60, 9, 128, 64, 37, 41, 32, 23, 161, 42]}, {"55062220": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062231": [1, 165, 42]}, {"55062236": [60, 9, 128, 65, 52, 10]}, {"55062243": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 141]}, {"55062272": [143, 163]}, {"55062275": [16, 143, 191]}, {"55062279": [20, 39, 189]}, {"55062283": [24, 143, 164]}, {"55062287": [104, 143, 165]}, {"55062291": [108, 143, 166]}, {"55062295": [112, 143, 167]}, {"55062299": [116, 132, 110, 19, 196, 3, 224]}, {"55062307": [8]}, {"55062312": [147, 25]}, {"55062315": [116, 52, 1]}, {"55062319": [255, 23, 33]}, {"55062323": [2]}, {"55062328": [52, 25]}, {"55062331": [44, 3, 224]}, {"55062335": [8, 167, 185]}, {"55062339": [154, 147, 44]}, {"55062343": [116, 52, 1]}, {"55062347": [255, 21, 129]}, {"55062351": [2]}, {"55062356": [52, 12]}, {"55062359": [44, 3, 224]}, {"55062363": [8]}, {"55062368": [145, 174]}, {"55062371": [116, 52, 1]}, {"55062375": [255, 21, 193]}, {"55062379": [2]}, {"55062384": [52, 14]}, {"55062387": [44, 3, 224]}, {"55062391": [8, 167, 174]}, {"55062395": [154, 145, 207]}, {"55062399": [116, 52, 1]}, {"55062403": [255, 21, 225]}, {"55062407": [2]}, {"55062412": [52, 15]}, {"55062415": [44, 3, 224]}, {"55062419": [8, 167, 175]}, {"55062423": [154, 60, 8, 128, 64, 37, 8, 32, 24, 142, 9]}, {"55062435": [104, 173, 9]}, {"55062440": [142, 9]}, {"55062443": [108, 173, 9]}, {"55062447": [4, 150, 9]}, {"55062451": [112, 165, 9]}, {"55062455": [8, 150, 9]}, {"55062459": [156, 165, 9]}, {"55062463": [10, 3, 224]}, {"55062467": [8, 142, 14]}, {"55062471": [4, 39, 189, 255, 224, 175, 176]}, {"55062479": [16, 175, 177]}, {"55062483": [20, 175, 191]}, {"55062487": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 24, 142, 8]}, {"55062507": [4, 17]}, {"55062511": [5]}, {"55062516": [12, 16, 12, 28]}, {"55062524": [16]}, {"55062527": [3]}, {"55062532": [12, 16, 12, 47]}, {"55062540": [12, 16, 12, 15, 52, 4]}, {"55062548": [12, 16, 12, 15, 52, 4]}, {"55062555": [1, 12, 16, 12, 15, 52, 4]}, {"55062563": [2, 143, 176]}, {"55062567": [16, 143, 177]}, {"55062571": [20, 143, 191]}, {"55062575": [24, 39, 189]}, {"55062579": [32, 3, 224]}, {"55062583": [8]}, {"55062588": [2, 4, 64, 33, 145, 9]}, {"55062595": [108, 52, 1]}, {"55062599": [255, 17, 33]}, {"55062603": [7]}, {"55062608": [2, 9, 72, 33, 145, 41]}, {"55062615": [116, 52, 1]}, {"55062619": [44, 17, 33]}, {"55062623": [2]}, {"55062628": [161, 9]}, {"55062631": [105, 3, 224]}, {"55062635": [8]}, {"55062640": [39, 189, 255, 232, 175, 191]}, {"55062647": [16, 142, 40]}, {"55062652": [174, 8]}, {"55062655": [64, 142, 40]}, {"55062659": [4, 174, 8]}, {"55062663": [68, 150, 40]}, {"55062667": [8, 166, 8]}, {"55062671": [72, 162]}, {"55062674": [15, 51, 146, 8]}, {"55062679": [74, 52, 1]}, {"55062683": [255, 21, 1]}, {"55062687": [3]}, {"55062692": [12, 16, 12, 61]}, {"55062700": [143, 191]}, {"55062703": [16, 39, 189]}, {"55062707": [24, 3, 224]}, {"55062711": [8]}, {"55062716": [142, 8]}, {"55062719": [64, 174, 8]}, {"55062723": [104, 142, 8]}, {"55062727": [68, 174, 8]}, {"55062731": [108, 150, 8]}, {"55062735": [72, 166, 8]}, {"55062739": [112, 146, 8]}, {"55062743": [104, 52, 1]}, {"55062747": [255, 21, 1]}, {"55062751": [3]}, {"55062756": [52, 8]}, {"55062759": [1, 162, 8, 15, 51, 3, 224]}, {"55062767": [8]}, {"55062772": [39, 189, 255, 232, 175, 191]}, {"55062779": [16, 150, 8]}, {"55062783": [156, 49, 8]}, {"55062787": [64, 17]}, {"55062791": [5]}, {"55062796": [150, 8]}, {"55062799": [112, 49, 8, 255, 15, 53, 8]}, {"55062807": [48, 166, 8]}, {"55062811": [112, 146, 40]}, {"55062815": [1, 162, 8]}, {"55062819": [105, 150, 40]}, {"55062823": [2, 166, 8]}, {"55062827": [106, 142, 40]}, {"55062831": [4, 174, 8]}, {"55062835": [108, 12, 16, 12, 87, 52, 4]}, {"55062844": [12, 16, 12, 87, 52, 4]}, {"55062851": [1, 12, 16, 12, 87, 52, 4]}, {"55062859": [2, 143, 191]}, {"55062863": [16, 39, 189]}, {"55062867": [24, 3, 224]}, {"55062871": [8]}, {"55062876": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 50, 8, 145, 10]}, {"55062891": [108, 52, 1]}, {"55062895": [255, 17, 65]}, {"55062899": [5]}, {"55062904": [1, 42, 72, 33, 145, 41]}, {"55062912": [21, 32]}, {"55062915": [28]}, {"55062920": [60, 9, 128, 64, 37, 41, 49, 251, 37, 41]}, {"55062931": [1, 145, 42]}, {"55062936": [17, 64]}, {"55062939": [19]}, {"55062944": [2, 10, 88, 33, 145, 107]}, {"55062951": [116, 52, 1]}, {"55062955": [255, 17, 97, 255, 248]}, {"55062964": [146, 12]}, {"55062967": [108, 17, 138, 255, 245]}, {"55062976": [146, 12]}, {"55062979": [109, 17, 138, 255, 242]}, {"55062988": [146, 12]}, {"55062991": [110, 17, 138, 255, 239]}, {"55063000": [161, 11]}, {"55063003": [105, 161, 10]}, {"55063007": [108, 16]}, {"55063011": [4]}, {"55063016": [52, 9]}, {"55063019": [255, 161, 9]}, {"55063023": [105, 161, 9]}, {"55063027": [108, 3, 224]}, {"55063031": [8]}, {"55063036": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063049": [1, 1, 1, 1, 1]}, {"55063055": [1, 1, 1, 1, 1]}, {"55063061": [1]}, {"55063063": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063073": [51, 8, 33, 32, 15]}, {"55063079": [71, 21, 234]}, {"55063083": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063095": [164]}, {"55063097": [15, 122, 3, 20, 64]}, {"55063103": [5, 52, 2, 72, 48, 21, 226]}, {"55063111": [7]}, {"55063116": [36, 25]}, {"55063119": [3, 16]}, {"55063123": [4, 52, 2, 99, 17, 21, 226]}, {"55063131": [2]}, {"55063136": [36, 25]}, {"55063139": [3, 3, 224]}, {"55063143": [8]}, {"55063148": [141, 173, 138, 160, 52, 2, 128]}, {"55063156": [16, 77]}, {"55063159": [2]}, {"55063164": [16]}, {"55063167": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063183": [1, 16, 64]}, {"55063187": [2]}, {"55063192": [16]}, {"55063195": [2, 52, 2]}, {"55063199": [1, 161, 226, 28, 191, 3, 224]}, {"55063207": [8]}, {"55063213": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063227": [164]}, {"55063229": [15, 122, 3, 20, 64]}, {"55063235": [5, 52, 2, 72, 48, 21, 226]}, {"55063243": [7]}, {"55063248": [36, 25]}, {"55063251": [3, 16]}, {"55063255": [4, 52, 2, 99, 17, 21, 226]}, {"55063263": [2]}, {"55063268": [36, 25]}, {"55063271": [3, 3, 224]}, {"55063275": [8]}, {"55063280": [162, 37]}, {"55063283": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063295": [4, 142, 10]}, {"55063300": [17, 64]}, {"55063303": [11]}, {"55063309": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063321": [24, 194, 2, 23]}, {"55063327": [3, 49, 89]}, {"55063331": [255, 129, 234]}, {"55063336": [3, 42, 200, 37, 8, 16, 12, 191, 161, 249]}, {"55063348": [3, 224]}, {"55063351": [8]}] \ No newline at end of file +[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 128]}, {"11325064": [12, 16, 11, 115, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 11, 242]}, {"11427296": [12, 16, 11, 120, 52, 2, 0, 255, 16, 0, 5, 97]}, {"11427312": [12, 16, 12, 155]}, {"11431496": [12, 16, 11, 120, 1, 15, 192, 33]}, {"11562028": [12, 16, 12, 188]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 12, 171]}, {"11882076": [12, 16, 12, 136]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 11, 209, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 11, 216, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 11, 223, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 11, 202, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 72]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 9, 219]}, {"12427480": [12, 16, 10, 47]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 51]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 11, 149, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 84]}, {"12491480": [12, 16, 10, 93]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 72]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 11, 230]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 140, 73]}, {"14149503": [164]}, {"14149512": [2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149856": [87]}, {"14149859": [15]}, {"14357459": [118]}, {"14624335": [118]}, {"14872723": [52]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 9, 248, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 9, 248, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 36, 152, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 36, 180, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 36, 220, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 4, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 44, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 84, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 112, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 140, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 168, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 28, 128, 64, 36, 144, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 20, 128, 64, 36, 144, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 20, 128, 64, 37, 220, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 20, 128, 64, 37, 220, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 20, 128, 64, 37, 220, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 20, 128, 64, 37, 248, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 20, 128, 64, 37, 248, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 20, 128, 64, 37, 248, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 20, 128, 64, 36, 144, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 20, 128, 64, 36, 144, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 38, 172, 128, 64, 36, 144, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 38, 204, 128, 64, 37, 196, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 38, 236, 128, 64, 36, 144, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 39, 20, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 39, 92, 128, 64, 39, 64, 3, 224]}, {"55059603": [8, 52, 162]}, {"55059608": [144, 136]}, {"55059611": [125, 52, 1]}, {"55059615": [255, 17, 1]}, {"55059619": [2, 52, 2]}, {"55059623": [8, 52, 2]}, {"55059627": [9, 3, 224]}, {"55059631": [8]}, {"55059636": [144, 136]}, {"55059639": [163, 49, 8]}, {"55059643": [192, 17]}, {"55059647": [5, 52, 2]}, {"55059651": [84, 52, 1]}, {"55059655": [64, 17, 1]}, {"55059659": [2, 52, 2]}, {"55059663": [53, 52, 2]}, {"55059667": [54, 3, 224]}, {"55059671": [8]}, {"55059676": [144, 136]}, {"55059679": [163, 49, 8]}, {"55059683": [24, 17]}, {"55059687": [5, 52, 2]}, {"55059691": [50, 52, 1]}, {"55059695": [8, 17, 1]}, {"55059699": [2, 52, 2]}, {"55059703": [51, 52, 2]}, {"55059707": [52, 3, 224]}, {"55059711": [8]}, {"55059716": [144, 136]}, {"55059719": [163, 49, 8]}, {"55059723": [3, 17]}, {"55059727": [5, 52, 2]}, {"55059731": [4, 52, 1]}, {"55059735": [1, 17, 1]}, {"55059739": [2, 52, 2]}, {"55059743": [48, 52, 2]}, {"55059747": [49, 3, 224]}, {"55059751": [8]}, {"55059756": [144, 136]}, {"55059759": [162, 49, 8]}, {"55059763": [192, 17]}, {"55059767": [5, 52, 2]}, {"55059771": [5, 52, 1]}, {"55059775": [64, 17, 1]}, {"55059779": [2, 52, 2]}, {"55059783": [96, 52, 2]}, {"55059787": [123, 3, 224]}, {"55059791": [8]}, {"55059796": [144, 136]}, {"55059799": [162, 49, 8]}, {"55059803": [48, 17]}, {"55059807": [2, 52, 2]}, {"55059811": [69, 52, 2]}, {"55059815": [70, 3, 224]}, {"55059819": [8]}, {"55059824": [144, 136]}, {"55059827": [162, 49, 8]}, {"55059831": [6, 17]}, {"55059835": [2, 52, 2]}, {"55059839": [55, 52, 2]}, {"55059843": [56, 3, 224]}, {"55059847": [8]}, {"55059852": [144, 136]}, {"55059855": [161, 49, 8]}, {"55059859": [32, 17]}, {"55059863": [2, 52, 2]}, {"55059867": [121, 52, 2]}, {"55059871": [122, 3, 224]}, {"55059875": [8]}, {"55059880": [144, 136]}, {"55059883": [161, 49, 8]}, {"55059887": [4, 17]}, {"55059891": [2, 52, 2]}, {"55059895": [119, 52, 2]}, {"55059899": [120, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [50, 17]}, {"55059915": [2, 52, 2]}, {"55059919": [192, 52, 2]}, {"55059923": [193, 3, 224]}, {"55059927": [8]}, {"55059932": [144, 136]}, {"55059935": [163, 49, 8]}, {"55059939": [3, 17]}, {"55059943": [2, 52, 2]}, {"55059947": [77, 52, 162]}, {"55059952": [3, 224]}, {"55059955": [8]}, {"55059960": [144, 136]}, {"55059963": [163, 49, 8]}, {"55059967": [24, 17]}, {"55059971": [2, 52, 2]}, {"55059975": [77, 52, 162]}, {"55059980": [3, 224]}, {"55059983": [8]}, {"55059988": [3, 224]}, {"55059991": [8]}, {"55059996": [52, 8]}, {"55059999": [1, 160, 136]}, {"55060003": [62, 3, 224]}, {"55060007": [8]}, {"55060012": [36, 136]}, {"55060015": [134, 36, 9, 255, 255, 37, 41]}, {"55060023": [1, 52, 1]}, {"55060027": [3]}, {"55060029": [41, 8, 42, 20, 32]}, {"55060035": [7]}, {"55060040": [1, 9, 80, 33, 145, 75]}, {"55060048": [52, 1]}, {"55060051": [255, 21, 97, 255, 247]}, {"55060060": [161, 69]}, {"55060064": [3, 224]}, {"55060067": [8]}, {"55060072": [36, 136]}, {"55060075": [168, 1, 6, 64, 33, 145, 9]}, {"55060084": [1, 37, 72, 37, 161, 9]}, {"55060092": [3, 224]}, {"55060095": [8]}, {"55060100": [36, 136]}, {"55060103": [188, 1, 5, 64, 33, 129, 9]}, {"55060112": [5, 33]}, {"55060115": [2]}, {"55060120": [52, 9]}, {"55060124": [37, 41]}, {"55060127": [1, 161, 9]}, {"55060132": [3, 224]}, {"55060135": [8]}, {"55060140": [52, 8]}, {"55060143": [1, 160, 136]}, {"55060147": [61, 52, 8]}, {"55060151": [20, 160, 136]}, {"55060155": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060167": [8]}, {"55060172": [52, 8]}, {"55060175": [1, 160, 136]}, {"55060179": [50, 160, 136]}, {"55060183": [58, 52, 8]}, {"55060187": [48, 164, 136, 19, 244, 160, 136]}, {"55060195": [51, 3, 224]}, {"55060199": [8]}, {"55060204": [52, 8]}, {"55060207": [2, 160, 136]}, {"55060211": [50, 52, 8]}, {"55060215": [1, 160, 136]}, {"55060219": [58, 160, 136]}, {"55060223": [60, 52, 8]}, {"55060227": [96, 164, 136, 19, 244, 160, 136]}, {"55060235": [51, 3, 224]}, {"55060239": [8]}, {"55060244": [144, 136]}, {"55060247": [124, 52, 1]}, {"55060251": [255, 17, 1]}, {"55060255": [6, 52, 2]}, {"55060259": [107, 144, 136]}, {"55060263": [148, 45, 8]}, {"55060267": [6, 17]}, {"55060271": [2, 52, 2]}, {"55060275": [106, 52, 2]}, {"55060279": [3, 3, 224]}, {"55060283": [8]}, {"55060288": [144, 136]}, {"55060291": [123, 52, 1]}, {"55060295": [255, 17, 1]}, {"55060299": [2, 52, 162]}, {"55060304": [52, 2]}, {"55060307": [12, 3, 224]}, {"55060311": [8]}, {"55060316": [52, 8]}, {"55060319": [7, 160, 136]}, {"55060323": [123, 3, 224]}, {"55060327": [8]}, {"55060332": [48, 132]}, {"55060335": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060347": [140, 16, 129]}, {"55060351": [22, 145, 2]}, {"55060355": [117, 52, 1]}, {"55060359": [141, 16, 129]}, {"55060363": [19, 145, 2]}, {"55060367": [117, 16, 128]}, {"55060371": [17, 145, 2]}, {"55060375": [116, 52, 1]}, {"55060379": [138, 16, 129]}, {"55060383": [14, 145, 2]}, {"55060387": [116, 52, 1]}, {"55060391": [139, 16, 129]}, {"55060395": [11, 145, 2]}, {"55060399": [116, 52, 1]}, {"55060403": [88, 16, 129]}, {"55060407": [8, 52, 2]}, {"55060412": [52, 1]}, {"55060415": [120, 16, 129]}, {"55060419": [5, 52, 2]}, {"55060424": [52, 1]}, {"55060427": [121, 16, 129]}, {"55060431": [2, 52, 2]}, {"55060436": [52, 2]}, {"55060439": [255, 3, 224]}, {"55060443": [8]}, {"55060448": [39, 189, 255, 224, 175, 191]}, {"55060455": [16, 175, 176]}, {"55060459": [20, 12, 16, 10, 199]}, {"55060468": [4, 65]}, {"55060471": [2]}, {"55060476": [52, 2]}, {"55060479": [91]}, {"55060481": [64, 32, 33, 12, 16, 11, 39]}, {"55060492": [16, 96]}, {"55060495": [18, 175, 163]}, {"55060499": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060508": [133, 9]}, {"55060511": [2, 17, 32]}, {"55060515": [3, 52, 10]}, {"55060519": [1, 16]}, {"55060523": [8, 165, 10]}, {"55060528": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060539": [6, 144, 102]}, {"55060543": [7, 140, 105]}, {"55060547": [8, 1, 32, 248, 9]}, {"55060556": [143, 163]}, {"55060559": [28, 144, 101]}, {"55060563": [3, 16]}, {"55060567": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060579": [6]}, {"55060581": [74]}, {"55060583": [24]}, {"55060586": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060596": [60, 8, 128, 64, 37, 8, 32]}, {"55060604": [133, 9]}, {"55060607": [2, 17, 32]}, {"55060611": [3, 52, 10]}, {"55060615": [1, 165, 10]}, {"55060620": [52, 5]}, {"55060623": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060635": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060646": [48, 33, 143, 191]}, {"55060651": [16, 143, 176]}, {"55060655": [20, 39, 189]}, {"55060659": [32, 3, 224]}, {"55060663": [8]}, {"55060668": [143, 166]}, {"55060671": [48, 132, 197]}, {"55060675": [4, 8, 16, 10, 55]}, {"55060684": [143, 185]}, {"55060687": [44, 135, 37]}, {"55060691": [4, 8, 16, 10, 55]}, {"55060700": [60, 10, 128, 64, 37, 74, 32, 4, 141, 75]}, {"55060711": [12, 17, 96]}, {"55060715": [2]}, {"55060720": [149, 69]}, {"55060723": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060736": [60, 9, 128, 64, 37, 41, 32, 20, 129, 42]}, {"55060747": [3, 5, 64]}, {"55060751": [2, 1, 42, 72, 32, 161, 32]}, {"55060760": [3, 224]}, {"55060763": [8]}, {"55060768": [60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55060779": [12, 17, 32]}, {"55060783": [2]}, {"55060788": [129, 3]}, {"55060791": [2]}, {"55060793": [3, 15, 195]}, {"55060797": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55060811": [8]}, {"55060816": [144, 69]}, {"55060819": [3, 60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55060831": [12, 17, 32]}, {"55060835": [2]}, {"55060840": [145, 5]}, {"55060843": [3, 3, 224]}, {"55060847": [8]}, {"55060852": [143, 162]}, {"55060855": [36, 144, 69]}, {"55060860": [60, 8, 128, 64, 37, 8, 32]}, {"55060868": [133, 9]}, {"55060871": [2, 17, 32]}, {"55060875": [4, 52, 10]}, {"55060879": [1, 165, 10]}, {"55060884": [16]}, {"55060887": [24, 52, 5]}, {"55060891": [65, 60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55060903": [12, 17, 32]}, {"55060907": [19]}, {"55060912": [145, 5]}, {"55060915": [1, 175, 164]}, {"55060920": [175, 165]}, {"55060923": [4, 175, 166]}, {"55060927": [8, 39, 189, 255, 232, 175, 191]}, {"55060935": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55060947": [6, 145, 6]}, {"55060951": [7, 141, 9]}, {"55060955": [8, 1, 32, 248, 9]}, {"55060964": [143, 191]}, {"55060967": [16, 39, 189]}, {"55060971": [24, 143, 164]}, {"55060976": [143, 165]}, {"55060979": [4, 143, 166]}, {"55060983": [8, 3, 224]}, {"55060987": [8]}, {"55060992": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061003": [16, 175, 163]}, {"55061007": [20, 175, 191]}, {"55061011": [24, 12, 16, 10, 141]}, {"55061020": [143, 162]}, {"55061023": [16, 143, 163]}, {"55061027": [20, 143, 191]}, {"55061031": [24, 39, 189]}, {"55061035": [32, 3, 224]}, {"55061039": [8]}, {"55061044": [39, 189, 255, 232, 175, 191]}, {"55061051": [16, 60, 8, 128, 64, 37, 8, 32, 4, 173]}, {"55061064": [173]}, {"55061067": [4, 173]}, {"55061071": [8, 173]}, {"55061075": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061091": [42]}, {"55061097": [9, 15, 195, 1, 33, 32, 38]}, {"55061105": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 199]}, {"55061120": [4, 64]}, {"55061123": [34]}, {"55061128": [52, 68]}, {"55061132": [12, 16, 11, 39]}, {"55061140": [16, 96]}, {"55061143": [12]}, {"55061148": [60, 8, 128, 64, 37, 8, 32, 4, 140, 105]}, {"55061160": [173, 9]}, {"55061164": [140, 105]}, {"55061167": [4, 173, 9]}, {"55061171": [4, 140, 105]}, {"55061175": [8, 173, 9]}, {"55061179": [8, 52, 9]}, {"55061183": [1, 173, 9]}, {"55061187": [12, 144, 98]}, {"55061192": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061208": [52, 1]}, {"55061211": [10, 21, 65]}, {"55061215": [6]}, {"55061220": [149, 42]}, {"55061223": [28, 49, 74, 240, 31]}, {"55061229": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061239": [28, 129, 9, 4, 36, 5, 33]}, {"55061247": [2]}, {"55061253": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061263": [16, 39, 189]}, {"55061267": [24, 3, 224]}, {"55061271": [8]}, {"55061276": [39, 189, 255, 232, 175, 191]}, {"55061283": [16, 12, 16, 10, 213]}, {"55061292": [36, 1, 255, 255, 16, 65]}, {"55061299": [4]}, {"55061304": [52, 68]}, {"55061308": [12, 16, 11, 9]}, {"55061316": [143, 191]}, {"55061319": [16, 39, 189]}, {"55061323": [24, 3, 224]}, {"55061327": [8]}, {"55061332": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061343": [164, 52, 8]}, {"55061348": [52, 137]}, {"55061352": [148, 170]}, {"55061356": [52, 1, 1, 156, 21, 65]}, {"55061363": [8]}, {"55061368": [52, 8]}, {"55061371": [3, 148, 171]}, {"55061375": [28, 49, 105]}, {"55061379": [255, 49, 98, 31]}, {"55061385": [2, 18, 2, 16]}, {"55061391": [31]}, {"55061396": [52, 1]}, {"55061399": [10, 21, 65]}, {"55061403": [14]}, {"55061408": [148, 171]}, {"55061411": [28, 52, 1]}, {"55061415": [16, 20, 65]}, {"55061419": [8]}, {"55061424": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061435": [4]}, {"55061440": [36, 2, 255, 255, 16]}, {"55061447": [21]}, {"55061452": [52, 8]}, {"55061455": [1, 49, 105]}, {"55061459": [31, 52, 1]}, {"55061463": [21, 21, 65]}, {"55061467": [12]}, {"55061472": [52, 1]}, {"55061475": [62, 16, 129]}, {"55061479": [7]}, {"55061484": [52, 1]}, {"55061487": [66, 16, 129]}, {"55061491": [4]}, {"55061496": [36, 2, 255, 255, 16]}, {"55061503": [7]}, {"55061508": [52, 8]}, {"55061511": [2, 144, 169, 1, 65]}, {"55061517": [2, 18]}, {"55061521": [72, 16, 37]}, {"55061525": [2, 18]}, {"55061529": [73, 16, 37, 3, 224]}, {"55061535": [8]}, {"55061540": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061555": [4, 141, 9]}, {"55061560": [17, 32]}, {"55061563": [22]}, {"55061569": [9, 82, 2, 49, 75, 252]}, {"55061577": [11, 90, 130, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061600": [49, 34]}, {"55061603": [255, 60, 8, 128, 18, 37, 8, 165, 208, 161, 11, 20, 7, 60, 9, 128, 64, 37, 41, 32]}, {"55061624": [60, 12, 128, 64, 37, 140, 28]}, {"55061632": [129, 140]}, {"55061636": [17, 108]}, {"55061639": [3, 165, 32]}, {"55061643": [2, 161, 43]}, {"55061647": [2, 161, 34]}, {"55061651": [3, 3, 224]}, {"55061655": [8]}, {"55061660": [39, 189, 255, 224, 175, 176]}, {"55061667": [16, 175, 177]}, {"55061671": [20, 175, 191]}, {"55061675": [24, 52, 130]}, {"55061680": [52, 80]}, {"55061684": [38, 8, 255, 128, 5]}, {"55061691": [18]}, {"55061696": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55061707": [16, 1, 9]}, {"55061711": [24]}, {"55061714": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061732": [142, 40]}, {"55061735": [12, 1]}, {"55061738": [248, 9]}, {"55061744": [20, 80, 255, 239]}, {"55061752": [54, 35]}, {"55061756": [16]}, {"55061759": [2]}, {"55061764": [52, 3]}, {"55061768": [143, 176]}, {"55061771": [16, 143, 177]}, {"55061775": [20, 143, 191]}, {"55061779": [24, 39, 189]}, {"55061783": [32, 3, 224]}, {"55061787": [8]}, {"55061792": [140, 136, 29, 44, 52, 9]}, {"55061799": [1]}, {"55061801": [9, 78]}, {"55061804": [1, 9, 16, 36, 16, 64]}, {"55061811": [36]}, {"55061816": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55061831": [164, 52, 1]}, {"55061835": [61, 17, 129]}, {"55061839": [10]}, {"55061845": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55061855": [25]}, {"55061860": [52, 13]}, {"55061863": [1, 161, 141, 29, 40, 37, 74]}, {"55061871": [3, 16]}, {"55061875": [9]}, {"55061880": [52, 12]}, {"55061883": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55061899": [14]}, {"55061904": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55061940": [60, 9, 128, 64, 37, 41, 32, 20, 161, 40]}, {"55061952": [52, 2]}, {"55061956": [3, 224]}, {"55061959": [8]}, {"55061964": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55061976": [16]}, {"55061979": [11]}, {"55061984": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55061996": [16]}, {"55061999": [6]}, {"55062004": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062016": [16]}, {"55062019": [1]}, {"55062024": [60, 9, 128, 64, 37, 41, 32, 20, 60, 10, 128, 64, 37, 74, 32, 23, 129, 44]}, {"55062044": [17, 136]}, {"55062047": [11, 33, 41]}, {"55062051": [1, 21, 42, 255, 252]}, {"55062060": [60, 9, 128, 64, 37, 41, 32, 19, 33, 41]}, {"55062071": [1, 17, 42]}, {"55062075": [4, 129, 44]}, {"55062080": [21, 128, 255, 252]}, {"55062088": [161, 40]}, {"55062092": [3, 224]}, {"55062095": [8]}, {"55062100": [175, 164]}, {"55062103": [104, 175, 165]}, {"55062107": [108, 175, 166]}, {"55062111": [112, 175, 167]}, {"55062115": [116, 39, 189, 255, 232, 175, 163]}, {"55062123": [16, 175, 191]}, {"55062127": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062143": [32, 21]}, {"55062147": [31]}, {"55062152": [60, 9, 128, 64, 37, 41, 32, 23, 52, 10]}, {"55062163": [255, 161, 42]}, {"55062168": [60, 9, 128, 64, 37, 41, 32, 20, 36, 10, 255, 255, 52, 12]}, {"55062183": [3, 33, 74]}, {"55062187": [1, 17, 76]}, {"55062191": [20, 1, 42, 88, 32, 129, 104]}, {"55062200": [17]}, {"55062202": [255, 251]}, {"55062208": [60, 9, 128, 64, 37, 41, 32, 23, 161, 42]}, {"55062220": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062231": [1, 165, 42]}, {"55062236": [60, 9, 128, 65, 52, 10]}, {"55062243": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 141]}, {"55062272": [143, 163]}, {"55062275": [16, 143, 191]}, {"55062279": [20, 39, 189]}, {"55062283": [24, 143, 164]}, {"55062287": [104, 143, 165]}, {"55062291": [108, 143, 166]}, {"55062295": [112, 143, 167]}, {"55062299": [116, 132, 110, 19, 196, 3, 224]}, {"55062307": [8]}, {"55062312": [147, 25]}, {"55062315": [116, 52, 1]}, {"55062319": [255, 23, 33]}, {"55062323": [2]}, {"55062328": [52, 25]}, {"55062331": [44, 3, 224]}, {"55062335": [8, 167, 185]}, {"55062339": [154, 147, 44]}, {"55062343": [116, 52, 1]}, {"55062347": [255, 21, 129]}, {"55062351": [2]}, {"55062356": [52, 12]}, {"55062359": [44, 3, 224]}, {"55062363": [8]}, {"55062368": [145, 174]}, {"55062371": [116, 52, 1]}, {"55062375": [255, 21, 193]}, {"55062379": [2]}, {"55062384": [52, 14]}, {"55062387": [44, 3, 224]}, {"55062391": [8, 167, 174]}, {"55062395": [154, 145, 207]}, {"55062399": [116, 52, 1]}, {"55062403": [255, 21, 225]}, {"55062407": [2]}, {"55062412": [52, 15]}, {"55062415": [44, 3, 224]}, {"55062419": [8, 167, 175]}, {"55062423": [154, 60, 8, 128, 64, 37, 8, 32, 24, 142, 9]}, {"55062435": [104, 173, 9]}, {"55062440": [142, 9]}, {"55062443": [108, 173, 9]}, {"55062447": [4, 150, 9]}, {"55062451": [112, 165, 9]}, {"55062455": [8, 150, 9]}, {"55062459": [156, 165, 9]}, {"55062463": [10, 3, 224]}, {"55062467": [8, 142, 14]}, {"55062471": [4, 39, 189, 255, 224, 175, 176]}, {"55062479": [16, 175, 177]}, {"55062483": [20, 175, 191]}, {"55062487": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 24, 142, 8]}, {"55062507": [4, 17]}, {"55062511": [5]}, {"55062516": [12, 16, 12, 28]}, {"55062524": [16]}, {"55062527": [3]}, {"55062532": [12, 16, 12, 47]}, {"55062540": [12, 16, 12, 15, 52, 4]}, {"55062548": [12, 16, 12, 15, 52, 4]}, {"55062555": [1, 12, 16, 12, 15, 52, 4]}, {"55062563": [2, 143, 176]}, {"55062567": [16, 143, 177]}, {"55062571": [20, 143, 191]}, {"55062575": [24, 39, 189]}, {"55062579": [32, 3, 224]}, {"55062583": [8]}, {"55062588": [2, 4, 64, 33, 145, 9]}, {"55062595": [108, 52, 1]}, {"55062599": [255, 17, 33]}, {"55062603": [7]}, {"55062608": [2, 9, 72, 33, 145, 41]}, {"55062615": [116, 52, 1]}, {"55062619": [44, 17, 33]}, {"55062623": [2]}, {"55062628": [161, 9]}, {"55062631": [105, 3, 224]}, {"55062635": [8]}, {"55062640": [39, 189, 255, 232, 175, 191]}, {"55062647": [16, 142, 40]}, {"55062652": [174, 8]}, {"55062655": [64, 142, 40]}, {"55062659": [4, 174, 8]}, {"55062663": [68, 150, 40]}, {"55062667": [8, 166, 8]}, {"55062671": [72, 162]}, {"55062674": [15, 51, 146, 8]}, {"55062679": [74, 52, 1]}, {"55062683": [255, 21, 1]}, {"55062687": [3]}, {"55062692": [12, 16, 12, 61]}, {"55062700": [143, 191]}, {"55062703": [16, 39, 189]}, {"55062707": [24, 3, 224]}, {"55062711": [8]}, {"55062716": [142, 8]}, {"55062719": [64, 174, 8]}, {"55062723": [104, 142, 8]}, {"55062727": [68, 174, 8]}, {"55062731": [108, 150, 8]}, {"55062735": [72, 166, 8]}, {"55062739": [112, 146, 8]}, {"55062743": [104, 52, 1]}, {"55062747": [255, 21, 1]}, {"55062751": [3]}, {"55062756": [52, 8]}, {"55062759": [1, 162, 8, 15, 51, 3, 224]}, {"55062767": [8]}, {"55062772": [39, 189, 255, 232, 175, 191]}, {"55062779": [16, 150, 8]}, {"55062783": [156, 49, 8]}, {"55062787": [64, 17]}, {"55062791": [5]}, {"55062796": [150, 8]}, {"55062799": [112, 49, 8, 255, 15, 53, 8]}, {"55062807": [48, 166, 8]}, {"55062811": [112, 146, 40]}, {"55062815": [1, 162, 8]}, {"55062819": [105, 150, 40]}, {"55062823": [2, 166, 8]}, {"55062827": [106, 142, 40]}, {"55062831": [4, 174, 8]}, {"55062835": [108, 12, 16, 12, 87, 52, 4]}, {"55062844": [12, 16, 12, 87, 52, 4]}, {"55062851": [1, 12, 16, 12, 87, 52, 4]}, {"55062859": [2, 143, 191]}, {"55062863": [16, 39, 189]}, {"55062867": [24, 3, 224]}, {"55062871": [8]}, {"55062876": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 50, 8, 145, 10]}, {"55062891": [108, 52, 1]}, {"55062895": [255, 17, 65]}, {"55062899": [5]}, {"55062904": [1, 42, 72, 33, 145, 41]}, {"55062912": [21, 32]}, {"55062915": [28]}, {"55062920": [60, 9, 128, 64, 37, 41, 49, 251, 37, 41]}, {"55062931": [1, 145, 42]}, {"55062936": [17, 64]}, {"55062939": [19]}, {"55062944": [2, 10, 88, 33, 145, 107]}, {"55062951": [116, 52, 1]}, {"55062955": [255, 17, 97, 255, 248]}, {"55062964": [146, 12]}, {"55062967": [108, 17, 138, 255, 245]}, {"55062976": [146, 12]}, {"55062979": [109, 17, 138, 255, 242]}, {"55062988": [146, 12]}, {"55062991": [110, 17, 138, 255, 239]}, {"55063000": [161, 11]}, {"55063003": [105, 161, 10]}, {"55063007": [108, 16]}, {"55063011": [4]}, {"55063016": [52, 9]}, {"55063019": [255, 161, 9]}, {"55063023": [105, 161, 9]}, {"55063027": [108, 3, 224]}, {"55063031": [8]}, {"55063036": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063049": [1, 1, 1, 1, 1]}, {"55063055": [1, 1, 1, 1, 1]}, {"55063061": [1]}, {"55063063": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063073": [51, 8, 33, 32, 15]}, {"55063079": [71, 21, 234]}, {"55063083": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063095": [164]}, {"55063097": [15, 122, 3, 20, 64]}, {"55063103": [5, 52, 2, 72, 48, 21, 226]}, {"55063111": [7]}, {"55063116": [36, 25]}, {"55063119": [3, 16]}, {"55063123": [4, 52, 2, 99, 17, 21, 226]}, {"55063131": [2]}, {"55063136": [36, 25]}, {"55063139": [3, 3, 224]}, {"55063143": [8]}, {"55063148": [141, 173, 138, 160, 52, 2, 128]}, {"55063156": [16, 77]}, {"55063159": [2]}, {"55063164": [16]}, {"55063167": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063183": [1, 16, 64]}, {"55063187": [2]}, {"55063192": [16]}, {"55063195": [2, 52, 2]}, {"55063199": [1, 161, 226, 28, 191, 3, 224]}, {"55063207": [8]}, {"55063213": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063227": [164]}, {"55063229": [15, 122, 3, 20, 64]}, {"55063235": [5, 52, 2, 72, 48, 21, 226]}, {"55063243": [7]}, {"55063248": [36, 25]}, {"55063251": [3, 16]}, {"55063255": [4, 52, 2, 99, 17, 21, 226]}, {"55063263": [2]}, {"55063268": [36, 25]}, {"55063271": [3, 3, 224]}, {"55063275": [8]}, {"55063280": [162, 37]}, {"55063283": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063295": [4, 142, 10]}, {"55063300": [17, 64]}, {"55063303": [11]}, {"55063309": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063321": [24, 194, 2, 23]}, {"55063327": [3, 49, 89]}, {"55063331": [255, 129, 234]}, {"55063336": [3, 42, 200, 37, 8, 16, 12, 191, 161, 249]}, {"55063348": [3, 224]}, {"55063351": [8]}] \ No newline at end of file diff --git a/version.py b/version.py index c2357093d..390dad996 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.10 f.LUM' +__version__ = '2.13.11 f.LUM' From 1ccf96893046eb3efb2f7b5af1595d4f4a1715a1 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Wed, 18 Jul 2018 22:18:14 -0500 Subject: [PATCH 175/755] Changed number of bits for the player number. --- ASM/src/item_overrides.asm | 6 +++--- Rom.py | 2 +- data/base2current.json | 2 +- version.py | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/ASM/src/item_overrides.asm b/ASM/src/item_overrides.asm index 318f1cbed..6548e1553 100755 --- a/ASM/src/item_overrides.asm +++ b/ASM/src/item_overrides.asm @@ -439,11 +439,11 @@ scan_override_table: nop srl t2, t1, 8 ; t2 = override key - andi t3, t2, 0xFC00 - srl t3, t3, 10 ; t3 = player id + andi t3, t2, 0xF800 + srl t3, t3, 11 ; t3 = player id lui t4, 0xFFFF - ori t4, t4, 0x03FF ;t4 = 0xFFFF03FF masks out the player id + ori t4, t4, 0x03FF ;t4 = 0xFFFF07FF masks out the player id and t2, t2, t4 bne t2, a0, @@lookup_loop nop diff --git a/Rom.py b/Rom.py index 787daf267..1c7c05742 100644 --- a/Rom.py +++ b/Rom.py @@ -1359,7 +1359,7 @@ def get_override_entry(location): if None in [scene, default, item_id]: return [] - player_id = (location.item.world.id + 1) << 2 + player_id = (location.item.world.id + 1) << 3 if location.type in ['NPC', 'BossHeart']: return [scene, player_id | 0x00, default, item_id] diff --git a/data/base2current.json b/data/base2current.json index ae4691206..7a4942864 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -1 +1 @@ -[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 125]}, {"11325064": [12, 16, 11, 112, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 11, 203]}, {"11427312": [12, 16, 12, 116]}, {"11431496": [12, 16, 11, 120, 1, 15, 192, 33]}, {"11562028": [12, 16, 12, 149]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 12, 132]}, {"11882076": [12, 16, 12, 97]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 11, 170, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 11, 177, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 11, 184, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 11, 163, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 69]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 9, 219]}, {"12427480": [12, 16, 10, 47]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 51]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 11, 128, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 81]}, {"12491480": [12, 16, 10, 90]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 69]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 11, 191]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 140, 73]}, {"14149503": [164]}, {"14149512": [2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149856": [87]}, {"14149859": [15]}, {"14357459": [118]}, {"14624335": [118]}, {"14872723": [52]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 9, 248, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 9, 248, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 36, 152, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 36, 180, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 36, 220, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 4, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 44, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 84, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 112, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 140, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 168, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 28, 128, 64, 36, 144, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 20, 128, 64, 36, 144, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 20, 128, 64, 37, 220, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 20, 128, 64, 37, 220, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 20, 128, 64, 37, 220, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 20, 128, 64, 37, 248, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 20, 128, 64, 37, 248, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 20, 128, 64, 37, 248, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 20, 128, 64, 36, 144, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 20, 128, 64, 36, 144, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 38, 172, 128, 64, 36, 144, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 38, 204, 128, 64, 37, 196, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 38, 236, 128, 64, 36, 144, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 39, 20, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 39, 92, 128, 64, 39, 64, 3, 224]}, {"55059603": [8, 52, 162]}, {"55059608": [144, 136]}, {"55059611": [125, 52, 1]}, {"55059615": [255, 17, 1]}, {"55059619": [2, 52, 2]}, {"55059623": [8, 52, 2]}, {"55059627": [9, 3, 224]}, {"55059631": [8]}, {"55059636": [144, 136]}, {"55059639": [163, 49, 8]}, {"55059643": [192, 17]}, {"55059647": [5, 52, 2]}, {"55059651": [84, 52, 1]}, {"55059655": [64, 17, 1]}, {"55059659": [2, 52, 2]}, {"55059663": [53, 52, 2]}, {"55059667": [54, 3, 224]}, {"55059671": [8]}, {"55059676": [144, 136]}, {"55059679": [163, 49, 8]}, {"55059683": [24, 17]}, {"55059687": [5, 52, 2]}, {"55059691": [50, 52, 1]}, {"55059695": [8, 17, 1]}, {"55059699": [2, 52, 2]}, {"55059703": [51, 52, 2]}, {"55059707": [52, 3, 224]}, {"55059711": [8]}, {"55059716": [144, 136]}, {"55059719": [163, 49, 8]}, {"55059723": [3, 17]}, {"55059727": [5, 52, 2]}, {"55059731": [4, 52, 1]}, {"55059735": [1, 17, 1]}, {"55059739": [2, 52, 2]}, {"55059743": [48, 52, 2]}, {"55059747": [49, 3, 224]}, {"55059751": [8]}, {"55059756": [144, 136]}, {"55059759": [162, 49, 8]}, {"55059763": [192, 17]}, {"55059767": [5, 52, 2]}, {"55059771": [5, 52, 1]}, {"55059775": [64, 17, 1]}, {"55059779": [2, 52, 2]}, {"55059783": [96, 52, 2]}, {"55059787": [123, 3, 224]}, {"55059791": [8]}, {"55059796": [144, 136]}, {"55059799": [162, 49, 8]}, {"55059803": [48, 17]}, {"55059807": [2, 52, 2]}, {"55059811": [69, 52, 2]}, {"55059815": [70, 3, 224]}, {"55059819": [8]}, {"55059824": [144, 136]}, {"55059827": [162, 49, 8]}, {"55059831": [6, 17]}, {"55059835": [2, 52, 2]}, {"55059839": [55, 52, 2]}, {"55059843": [56, 3, 224]}, {"55059847": [8]}, {"55059852": [144, 136]}, {"55059855": [161, 49, 8]}, {"55059859": [32, 17]}, {"55059863": [2, 52, 2]}, {"55059867": [121, 52, 2]}, {"55059871": [122, 3, 224]}, {"55059875": [8]}, {"55059880": [144, 136]}, {"55059883": [161, 49, 8]}, {"55059887": [4, 17]}, {"55059891": [2, 52, 2]}, {"55059895": [119, 52, 2]}, {"55059899": [120, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [50, 17]}, {"55059915": [2, 52, 2]}, {"55059919": [192, 52, 2]}, {"55059923": [193, 3, 224]}, {"55059927": [8]}, {"55059932": [144, 136]}, {"55059935": [163, 49, 8]}, {"55059939": [3, 17]}, {"55059943": [2, 52, 2]}, {"55059947": [77, 52, 162]}, {"55059952": [3, 224]}, {"55059955": [8]}, {"55059960": [144, 136]}, {"55059963": [163, 49, 8]}, {"55059967": [24, 17]}, {"55059971": [2, 52, 2]}, {"55059975": [77, 52, 162]}, {"55059980": [3, 224]}, {"55059983": [8]}, {"55059988": [3, 224]}, {"55059991": [8]}, {"55059996": [52, 8]}, {"55059999": [1, 160, 136]}, {"55060003": [62, 3, 224]}, {"55060007": [8]}, {"55060012": [36, 136]}, {"55060015": [134, 36, 9, 255, 255, 37, 41]}, {"55060023": [1, 52, 1]}, {"55060027": [3]}, {"55060029": [41, 8, 42, 20, 32]}, {"55060035": [7]}, {"55060040": [1, 9, 80, 33, 145, 75]}, {"55060048": [52, 1]}, {"55060051": [255, 21, 97, 255, 247]}, {"55060060": [161, 69]}, {"55060064": [3, 224]}, {"55060067": [8]}, {"55060072": [36, 136]}, {"55060075": [168, 1, 6, 64, 33, 145, 9]}, {"55060084": [1, 37, 72, 37, 161, 9]}, {"55060092": [3, 224]}, {"55060095": [8]}, {"55060100": [36, 136]}, {"55060103": [188, 1, 5, 64, 33, 129, 9]}, {"55060112": [5, 33]}, {"55060115": [2]}, {"55060120": [52, 9]}, {"55060124": [37, 41]}, {"55060127": [1, 161, 9]}, {"55060132": [3, 224]}, {"55060135": [8]}, {"55060140": [52, 8]}, {"55060143": [1, 160, 136]}, {"55060147": [61, 52, 8]}, {"55060151": [20, 160, 136]}, {"55060155": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060167": [8]}, {"55060172": [52, 8]}, {"55060175": [1, 160, 136]}, {"55060179": [50, 160, 136]}, {"55060183": [58, 52, 8]}, {"55060187": [48, 164, 136, 19, 244, 160, 136]}, {"55060195": [51, 3, 224]}, {"55060199": [8]}, {"55060204": [52, 8]}, {"55060207": [2, 160, 136]}, {"55060211": [50, 52, 8]}, {"55060215": [1, 160, 136]}, {"55060219": [58, 160, 136]}, {"55060223": [60, 52, 8]}, {"55060227": [96, 164, 136, 19, 244, 160, 136]}, {"55060235": [51, 3, 224]}, {"55060239": [8]}, {"55060244": [144, 136]}, {"55060247": [124, 52, 1]}, {"55060251": [255, 17, 1]}, {"55060255": [6, 52, 2]}, {"55060259": [107, 144, 136]}, {"55060263": [148, 45, 8]}, {"55060267": [6, 17]}, {"55060271": [2, 52, 2]}, {"55060275": [106, 52, 2]}, {"55060279": [3, 3, 224]}, {"55060283": [8]}, {"55060288": [144, 136]}, {"55060291": [123, 52, 1]}, {"55060295": [255, 17, 1]}, {"55060299": [2, 52, 162]}, {"55060304": [52, 2]}, {"55060307": [12, 3, 224]}, {"55060311": [8]}, {"55060316": [52, 8]}, {"55060319": [7, 160, 136]}, {"55060323": [123, 3, 224]}, {"55060327": [8]}, {"55060332": [48, 132]}, {"55060335": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060347": [140, 16, 129]}, {"55060351": [22, 145, 2]}, {"55060355": [117, 52, 1]}, {"55060359": [141, 16, 129]}, {"55060363": [19, 145, 2]}, {"55060367": [117, 16, 128]}, {"55060371": [17, 145, 2]}, {"55060375": [116, 52, 1]}, {"55060379": [138, 16, 129]}, {"55060383": [14, 145, 2]}, {"55060387": [116, 52, 1]}, {"55060391": [139, 16, 129]}, {"55060395": [11, 145, 2]}, {"55060399": [116, 52, 1]}, {"55060403": [88, 16, 129]}, {"55060407": [8, 52, 2]}, {"55060412": [52, 1]}, {"55060415": [120, 16, 129]}, {"55060419": [5, 52, 2]}, {"55060424": [52, 1]}, {"55060427": [121, 16, 129]}, {"55060431": [2, 52, 2]}, {"55060436": [52, 2]}, {"55060439": [255, 3, 224]}, {"55060443": [8]}, {"55060448": [39, 189, 255, 224, 175, 191]}, {"55060455": [16, 175, 176]}, {"55060459": [20, 12, 16, 10, 196]}, {"55060468": [4, 65]}, {"55060471": [2]}, {"55060476": [52, 2]}, {"55060479": [91]}, {"55060481": [64, 32, 33, 12, 16, 11, 36]}, {"55060492": [16, 96]}, {"55060495": [18, 175, 163]}, {"55060499": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060508": [133, 9]}, {"55060511": [2, 17, 32]}, {"55060515": [3, 52, 10]}, {"55060519": [1, 16]}, {"55060523": [8, 165, 10]}, {"55060528": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060539": [6, 144, 102]}, {"55060543": [7, 140, 105]}, {"55060547": [8, 1, 32, 248, 9]}, {"55060556": [143, 163]}, {"55060559": [28, 144, 101]}, {"55060563": [3, 16]}, {"55060567": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060579": [6]}, {"55060581": [74]}, {"55060583": [24]}, {"55060586": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060596": [60, 8, 128, 64, 37, 8, 32]}, {"55060604": [133, 9]}, {"55060607": [2, 17, 32]}, {"55060611": [3, 52, 10]}, {"55060615": [1, 165, 10]}, {"55060620": [52, 5]}, {"55060623": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060635": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060646": [48, 33, 143, 191]}, {"55060651": [16, 143, 176]}, {"55060655": [20, 39, 189]}, {"55060659": [32, 3, 224]}, {"55060663": [8]}, {"55060668": [143, 166]}, {"55060671": [48, 132, 197]}, {"55060675": [4, 8, 16, 10, 55]}, {"55060684": [143, 185]}, {"55060687": [44, 135, 37]}, {"55060691": [4, 8, 16, 10, 55]}, {"55060700": [60, 10, 128, 64, 37, 74, 32, 4, 141, 75]}, {"55060711": [12, 17, 96]}, {"55060715": [2]}, {"55060720": [149, 69]}, {"55060723": [4, 60, 10, 128, 64, 37, 74, 32, 20, 161, 64]}, {"55060736": [60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060748": [3, 224]}, {"55060751": [8]}, {"55060756": [60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55060767": [12, 17, 32]}, {"55060771": [2]}, {"55060776": [129, 3]}, {"55060779": [2]}, {"55060781": [3, 15, 195]}, {"55060785": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55060799": [8]}, {"55060804": [144, 69]}, {"55060807": [3, 60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55060819": [12, 17, 32]}, {"55060823": [2]}, {"55060828": [145, 5]}, {"55060831": [3, 3, 224]}, {"55060835": [8]}, {"55060840": [143, 162]}, {"55060843": [36, 144, 69]}, {"55060848": [60, 8, 128, 64, 37, 8, 32]}, {"55060856": [133, 9]}, {"55060859": [2, 17, 32]}, {"55060863": [4, 52, 10]}, {"55060867": [1, 165, 10]}, {"55060872": [16]}, {"55060875": [24, 52, 5]}, {"55060879": [65, 60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55060891": [12, 17, 32]}, {"55060895": [19]}, {"55060900": [145, 5]}, {"55060903": [1, 175, 164]}, {"55060908": [175, 165]}, {"55060911": [4, 175, 166]}, {"55060915": [8, 39, 189, 255, 232, 175, 191]}, {"55060923": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55060935": [6, 145, 6]}, {"55060939": [7, 141, 9]}, {"55060943": [8, 1, 32, 248, 9]}, {"55060952": [143, 191]}, {"55060955": [16, 39, 189]}, {"55060959": [24, 143, 164]}, {"55060964": [143, 165]}, {"55060967": [4, 143, 166]}, {"55060971": [8, 3, 224]}, {"55060975": [8]}, {"55060980": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55060991": [16, 175, 163]}, {"55060995": [20, 175, 191]}, {"55060999": [24, 12, 16, 10, 138]}, {"55061008": [143, 162]}, {"55061011": [16, 143, 163]}, {"55061015": [20, 143, 191]}, {"55061019": [24, 39, 189]}, {"55061023": [32, 3, 224]}, {"55061027": [8]}, {"55061032": [39, 189, 255, 232, 175, 191]}, {"55061039": [16, 60, 8, 128, 64, 37, 8, 32, 4, 173]}, {"55061052": [173]}, {"55061055": [4, 173]}, {"55061059": [8, 173]}, {"55061063": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061079": [42]}, {"55061085": [9, 15, 195, 1, 33, 32, 38]}, {"55061093": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 196]}, {"55061108": [4, 64]}, {"55061111": [34]}, {"55061116": [52, 68]}, {"55061120": [12, 16, 11, 36]}, {"55061128": [16, 96]}, {"55061131": [12]}, {"55061136": [60, 8, 128, 64, 37, 8, 32, 4, 140, 105]}, {"55061148": [173, 9]}, {"55061152": [140, 105]}, {"55061155": [4, 173, 9]}, {"55061159": [4, 140, 105]}, {"55061163": [8, 173, 9]}, {"55061167": [8, 52, 9]}, {"55061171": [1, 173, 9]}, {"55061175": [12, 144, 98]}, {"55061180": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061196": [52, 1]}, {"55061199": [10, 21, 65]}, {"55061203": [6]}, {"55061208": [149, 42]}, {"55061211": [28, 49, 74, 240, 31]}, {"55061217": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061227": [28, 129, 9, 4, 36, 5, 33]}, {"55061235": [2]}, {"55061241": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061251": [16, 39, 189]}, {"55061255": [24, 3, 224]}, {"55061259": [8]}, {"55061264": [39, 189, 255, 232, 175, 191]}, {"55061271": [16, 12, 16, 10, 210]}, {"55061280": [36, 1, 255, 255, 16, 65]}, {"55061287": [4]}, {"55061292": [52, 68]}, {"55061296": [12, 16, 11, 6]}, {"55061304": [143, 191]}, {"55061307": [16, 39, 189]}, {"55061311": [24, 3, 224]}, {"55061315": [8]}, {"55061320": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061331": [164, 52, 8]}, {"55061336": [52, 137]}, {"55061340": [148, 170]}, {"55061344": [52, 1, 1, 156, 21, 65]}, {"55061351": [8]}, {"55061356": [52, 8]}, {"55061359": [3, 148, 171]}, {"55061363": [28, 49, 105]}, {"55061367": [255, 49, 98, 31]}, {"55061373": [2, 18, 2, 16]}, {"55061379": [31]}, {"55061384": [52, 1]}, {"55061387": [10, 21, 65]}, {"55061391": [14]}, {"55061396": [148, 171]}, {"55061399": [28, 52, 1]}, {"55061403": [16, 20, 65]}, {"55061407": [8]}, {"55061412": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061423": [4]}, {"55061428": [36, 2, 255, 255, 16]}, {"55061435": [21]}, {"55061440": [52, 8]}, {"55061443": [1, 49, 105]}, {"55061447": [31, 52, 1]}, {"55061451": [21, 21, 65]}, {"55061455": [12]}, {"55061460": [52, 1]}, {"55061463": [62, 16, 129]}, {"55061467": [7]}, {"55061472": [52, 1]}, {"55061475": [66, 16, 129]}, {"55061479": [4]}, {"55061484": [36, 2, 255, 255, 16]}, {"55061491": [7]}, {"55061496": [52, 8]}, {"55061499": [2, 144, 169, 1, 65]}, {"55061505": [2, 18]}, {"55061509": [72, 16, 37]}, {"55061513": [2, 18]}, {"55061517": [73, 16, 37, 3, 224]}, {"55061523": [8]}, {"55061528": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061543": [4, 141, 9]}, {"55061548": [17, 32]}, {"55061551": [22]}, {"55061557": [9, 82, 2, 49, 75, 252]}, {"55061565": [11, 90, 130, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061588": [49, 34]}, {"55061591": [255, 60, 8, 128, 18, 37, 8, 165, 208, 161, 11, 20, 7, 60, 9, 128, 64, 37, 41, 32]}, {"55061612": [60, 12, 128, 64, 37, 140, 28]}, {"55061620": [129, 140]}, {"55061624": [17, 108]}, {"55061627": [3, 165, 32]}, {"55061631": [2, 161, 43]}, {"55061635": [2, 161, 34]}, {"55061639": [3, 3, 224]}, {"55061643": [8]}, {"55061648": [39, 189, 255, 224, 175, 176]}, {"55061655": [16, 175, 177]}, {"55061659": [20, 175, 191]}, {"55061663": [24, 52, 130]}, {"55061668": [52, 80]}, {"55061672": [38, 8, 255, 128, 5]}, {"55061679": [18]}, {"55061684": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55061695": [16, 1, 9]}, {"55061699": [24]}, {"55061702": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061720": [142, 40]}, {"55061723": [12, 1]}, {"55061726": [248, 9]}, {"55061732": [20, 80, 255, 239]}, {"55061740": [54, 35]}, {"55061744": [16]}, {"55061747": [2]}, {"55061752": [52, 3]}, {"55061756": [143, 176]}, {"55061759": [16, 143, 177]}, {"55061763": [20, 143, 191]}, {"55061767": [24, 39, 189]}, {"55061771": [32, 3, 224]}, {"55061775": [8]}, {"55061780": [140, 136, 29, 44, 52, 9]}, {"55061787": [1]}, {"55061789": [9, 78]}, {"55061792": [1, 9, 16, 36, 16, 64]}, {"55061799": [36]}, {"55061804": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55061819": [164, 52, 1]}, {"55061823": [61, 17, 129]}, {"55061827": [10]}, {"55061833": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55061843": [25]}, {"55061848": [52, 13]}, {"55061851": [1, 161, 141, 29, 40, 37, 74]}, {"55061859": [3, 16]}, {"55061863": [9]}, {"55061868": [52, 12]}, {"55061871": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55061887": [14]}, {"55061892": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55061928": [60, 9, 128, 64, 37, 41, 32, 20, 161, 40]}, {"55061940": [52, 2]}, {"55061944": [3, 224]}, {"55061947": [8]}, {"55061952": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55061964": [60, 9, 128, 64, 37, 41, 32, 20, 161, 40]}, {"55061976": [3, 224]}, {"55061979": [8]}, {"55061984": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55061996": [60, 9, 128, 64, 37, 41, 32, 20, 161, 40]}, {"55062008": [3, 224]}, {"55062011": [8]}, {"55062016": [175, 164]}, {"55062019": [104, 175, 165]}, {"55062023": [108, 175, 166]}, {"55062027": [112, 175, 167]}, {"55062031": [116, 39, 189, 255, 232, 175, 163]}, {"55062039": [16, 175, 191]}, {"55062043": [20, 60, 8, 128, 64, 37, 8, 32, 20, 129, 8]}, {"55062056": [17]}, {"55062059": [14]}, {"55062064": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062075": [1, 165, 42]}, {"55062080": [60, 9, 128, 65, 52, 10]}, {"55062087": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 138]}, {"55062116": [143, 163]}, {"55062119": [16, 143, 191]}, {"55062123": [20, 39, 189]}, {"55062127": [24, 143, 164]}, {"55062131": [104, 143, 165]}, {"55062135": [108, 143, 166]}, {"55062139": [112, 143, 167]}, {"55062143": [116, 132, 110, 19, 196, 3, 224]}, {"55062151": [8]}, {"55062156": [147, 25]}, {"55062159": [116, 52, 1]}, {"55062163": [255, 23, 33]}, {"55062167": [2]}, {"55062172": [52, 25]}, {"55062175": [44, 3, 224]}, {"55062179": [8, 167, 185]}, {"55062183": [154, 147, 44]}, {"55062187": [116, 52, 1]}, {"55062191": [255, 21, 129]}, {"55062195": [2]}, {"55062200": [52, 12]}, {"55062203": [44, 3, 224]}, {"55062207": [8]}, {"55062212": [145, 174]}, {"55062215": [116, 52, 1]}, {"55062219": [255, 21, 193]}, {"55062223": [2]}, {"55062228": [52, 14]}, {"55062231": [44, 3, 224]}, {"55062235": [8, 167, 174]}, {"55062239": [154, 145, 207]}, {"55062243": [116, 52, 1]}, {"55062247": [255, 21, 225]}, {"55062251": [2]}, {"55062256": [52, 15]}, {"55062259": [44, 3, 224]}, {"55062263": [8, 167, 175]}, {"55062267": [154, 60, 8, 128, 64, 37, 8, 32, 24, 142, 9]}, {"55062279": [104, 173, 9]}, {"55062284": [142, 9]}, {"55062287": [108, 173, 9]}, {"55062291": [4, 150, 9]}, {"55062295": [112, 165, 9]}, {"55062299": [8, 150, 9]}, {"55062303": [156, 165, 9]}, {"55062307": [10, 3, 224]}, {"55062311": [8, 142, 14]}, {"55062315": [4, 39, 189, 255, 224, 175, 176]}, {"55062323": [16, 175, 177]}, {"55062327": [20, 175, 191]}, {"55062331": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 24, 142, 8]}, {"55062351": [4, 17]}, {"55062355": [5]}, {"55062360": [12, 16, 11, 245]}, {"55062368": [16]}, {"55062371": [3]}, {"55062376": [12, 16, 12, 8]}, {"55062384": [12, 16, 11, 232, 52, 4]}, {"55062392": [12, 16, 11, 232, 52, 4]}, {"55062399": [1, 12, 16, 11, 232, 52, 4]}, {"55062407": [2, 143, 176]}, {"55062411": [16, 143, 177]}, {"55062415": [20, 143, 191]}, {"55062419": [24, 39, 189]}, {"55062423": [32, 3, 224]}, {"55062427": [8]}, {"55062432": [2, 4, 64, 33, 145, 9]}, {"55062439": [108, 52, 1]}, {"55062443": [255, 17, 33]}, {"55062447": [7]}, {"55062452": [2, 9, 72, 33, 145, 41]}, {"55062459": [116, 52, 1]}, {"55062463": [44, 17, 33]}, {"55062467": [2]}, {"55062472": [161, 9]}, {"55062475": [105, 3, 224]}, {"55062479": [8]}, {"55062484": [39, 189, 255, 232, 175, 191]}, {"55062491": [16, 142, 40]}, {"55062496": [174, 8]}, {"55062499": [64, 142, 40]}, {"55062503": [4, 174, 8]}, {"55062507": [68, 150, 40]}, {"55062511": [8, 166, 8]}, {"55062515": [72, 162]}, {"55062518": [15, 51, 146, 8]}, {"55062523": [74, 52, 1]}, {"55062527": [255, 21, 1]}, {"55062531": [3]}, {"55062536": [12, 16, 12, 22]}, {"55062544": [143, 191]}, {"55062547": [16, 39, 189]}, {"55062551": [24, 3, 224]}, {"55062555": [8]}, {"55062560": [142, 8]}, {"55062563": [64, 174, 8]}, {"55062567": [104, 142, 8]}, {"55062571": [68, 174, 8]}, {"55062575": [108, 150, 8]}, {"55062579": [72, 166, 8]}, {"55062583": [112, 146, 8]}, {"55062587": [104, 52, 1]}, {"55062591": [255, 21, 1]}, {"55062595": [3]}, {"55062600": [52, 8]}, {"55062603": [1, 162, 8, 15, 51, 3, 224]}, {"55062611": [8]}, {"55062616": [39, 189, 255, 232, 175, 191]}, {"55062623": [16, 150, 8]}, {"55062627": [156, 49, 8]}, {"55062631": [64, 17]}, {"55062635": [5]}, {"55062640": [150, 8]}, {"55062643": [112, 49, 8, 255, 15, 53, 8]}, {"55062651": [48, 166, 8]}, {"55062655": [112, 146, 40]}, {"55062659": [1, 162, 8]}, {"55062663": [105, 150, 40]}, {"55062667": [2, 166, 8]}, {"55062671": [106, 142, 40]}, {"55062675": [4, 174, 8]}, {"55062679": [108, 12, 16, 12, 48, 52, 4]}, {"55062688": [12, 16, 12, 48, 52, 4]}, {"55062695": [1, 12, 16, 12, 48, 52, 4]}, {"55062703": [2, 143, 191]}, {"55062707": [16, 39, 189]}, {"55062711": [24, 3, 224]}, {"55062715": [8]}, {"55062720": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 49, 108, 145, 10]}, {"55062735": [108, 52, 1]}, {"55062739": [255, 17, 65]}, {"55062743": [5]}, {"55062748": [1, 42, 72, 33, 145, 41]}, {"55062756": [21, 32]}, {"55062759": [28]}, {"55062764": [60, 9, 128, 64, 37, 41, 49, 95, 37, 41]}, {"55062775": [1, 145, 42]}, {"55062780": [17, 64]}, {"55062783": [19]}, {"55062788": [2, 10, 88, 33, 145, 107]}, {"55062795": [116, 52, 1]}, {"55062799": [255, 17, 97, 255, 248]}, {"55062808": [146, 12]}, {"55062811": [108, 17, 138, 255, 245]}, {"55062820": [146, 12]}, {"55062823": [109, 17, 138, 255, 242]}, {"55062832": [146, 12]}, {"55062835": [110, 17, 138, 255, 239]}, {"55062844": [161, 11]}, {"55062847": [105, 161, 10]}, {"55062851": [108, 16]}, {"55062855": [4]}, {"55062860": [52, 9]}, {"55062863": [255, 161, 9]}, {"55062867": [105, 161, 9]}, {"55062871": [108, 3, 224]}, {"55062875": [8]}, {"55062880": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55062893": [1, 1, 1, 1, 1]}, {"55062899": [1, 1, 1, 1, 1]}, {"55062905": [1]}, {"55062907": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55062917": [51, 8, 33, 32, 15]}, {"55062923": [71, 21, 234]}, {"55062927": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062939": [164]}, {"55062941": [15, 122, 3, 20, 64]}, {"55062947": [5, 52, 2, 72, 48, 21, 226]}, {"55062955": [7]}, {"55062960": [36, 25]}, {"55062963": [3, 16]}, {"55062967": [4, 52, 2, 99, 17, 21, 226]}, {"55062975": [2]}, {"55062980": [36, 25]}, {"55062983": [3, 3, 224]}, {"55062987": [8]}, {"55062992": [141, 173, 138, 160, 52, 2, 128]}, {"55063000": [16, 77]}, {"55063003": [2]}, {"55063008": [16]}, {"55063011": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063027": [1, 16, 64]}, {"55063031": [2]}, {"55063036": [16]}, {"55063039": [2, 52, 2]}, {"55063043": [1, 161, 226, 28, 191, 3, 224]}, {"55063051": [8]}, {"55063057": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063071": [164]}, {"55063073": [15, 122, 3, 20, 64]}, {"55063079": [5, 52, 2, 72, 48, 21, 226]}, {"55063087": [7]}, {"55063092": [36, 25]}, {"55063095": [3, 16]}, {"55063099": [4, 52, 2, 99, 17, 21, 226]}, {"55063107": [2]}, {"55063112": [36, 25]}, {"55063115": [3, 3, 224]}, {"55063119": [8]}, {"55063124": [162, 37]}, {"55063127": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063139": [4, 142, 10]}, {"55063144": [17, 64]}, {"55063147": [11]}, {"55063153": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063165": [24, 194, 2, 23]}, {"55063171": [3, 49, 89]}, {"55063175": [255, 129, 234]}, {"55063180": [3, 42, 200, 37, 8, 16, 12, 152, 161, 249]}, {"55063192": [3, 224]}, {"55063195": [8]}] \ No newline at end of file +[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 125]}, {"11325064": [12, 16, 11, 112, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 11, 203]}, {"11427312": [12, 16, 12, 116]}, {"11431496": [12, 16, 11, 120, 1, 15, 192, 33]}, {"11562028": [12, 16, 12, 149]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 12, 132]}, {"11882076": [12, 16, 12, 97]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 11, 170, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 11, 177, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 11, 184, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 11, 163, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 69]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 9, 219]}, {"12427480": [12, 16, 10, 47]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 51]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 11, 128, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 81]}, {"12491480": [12, 16, 10, 90]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 69]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 11, 191]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 140, 73]}, {"14149503": [164]}, {"14149512": [2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149856": [87]}, {"14149859": [15]}, {"14357459": [118]}, {"14624335": [118]}, {"14872723": [52]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 9, 248, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 9, 248, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 36, 152, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 36, 180, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 36, 220, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 4, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 44, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 84, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 112, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 140, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 168, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 28, 128, 64, 36, 144, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 20, 128, 64, 36, 144, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 20, 128, 64, 37, 220, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 20, 128, 64, 37, 220, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 20, 128, 64, 37, 220, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 20, 128, 64, 37, 248, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 20, 128, 64, 37, 248, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 20, 128, 64, 37, 248, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 20, 128, 64, 36, 144, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 20, 128, 64, 36, 144, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 38, 172, 128, 64, 36, 144, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 38, 204, 128, 64, 37, 196, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 38, 236, 128, 64, 36, 144, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 39, 20, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 39, 92, 128, 64, 39, 64, 3, 224]}, {"55059603": [8, 52, 162]}, {"55059608": [144, 136]}, {"55059611": [125, 52, 1]}, {"55059615": [255, 17, 1]}, {"55059619": [2, 52, 2]}, {"55059623": [8, 52, 2]}, {"55059627": [9, 3, 224]}, {"55059631": [8]}, {"55059636": [144, 136]}, {"55059639": [163, 49, 8]}, {"55059643": [192, 17]}, {"55059647": [5, 52, 2]}, {"55059651": [84, 52, 1]}, {"55059655": [64, 17, 1]}, {"55059659": [2, 52, 2]}, {"55059663": [53, 52, 2]}, {"55059667": [54, 3, 224]}, {"55059671": [8]}, {"55059676": [144, 136]}, {"55059679": [163, 49, 8]}, {"55059683": [24, 17]}, {"55059687": [5, 52, 2]}, {"55059691": [50, 52, 1]}, {"55059695": [8, 17, 1]}, {"55059699": [2, 52, 2]}, {"55059703": [51, 52, 2]}, {"55059707": [52, 3, 224]}, {"55059711": [8]}, {"55059716": [144, 136]}, {"55059719": [163, 49, 8]}, {"55059723": [3, 17]}, {"55059727": [5, 52, 2]}, {"55059731": [4, 52, 1]}, {"55059735": [1, 17, 1]}, {"55059739": [2, 52, 2]}, {"55059743": [48, 52, 2]}, {"55059747": [49, 3, 224]}, {"55059751": [8]}, {"55059756": [144, 136]}, {"55059759": [162, 49, 8]}, {"55059763": [192, 17]}, {"55059767": [5, 52, 2]}, {"55059771": [5, 52, 1]}, {"55059775": [64, 17, 1]}, {"55059779": [2, 52, 2]}, {"55059783": [96, 52, 2]}, {"55059787": [123, 3, 224]}, {"55059791": [8]}, {"55059796": [144, 136]}, {"55059799": [162, 49, 8]}, {"55059803": [48, 17]}, {"55059807": [2, 52, 2]}, {"55059811": [69, 52, 2]}, {"55059815": [70, 3, 224]}, {"55059819": [8]}, {"55059824": [144, 136]}, {"55059827": [162, 49, 8]}, {"55059831": [6, 17]}, {"55059835": [2, 52, 2]}, {"55059839": [55, 52, 2]}, {"55059843": [56, 3, 224]}, {"55059847": [8]}, {"55059852": [144, 136]}, {"55059855": [161, 49, 8]}, {"55059859": [32, 17]}, {"55059863": [2, 52, 2]}, {"55059867": [121, 52, 2]}, {"55059871": [122, 3, 224]}, {"55059875": [8]}, {"55059880": [144, 136]}, {"55059883": [161, 49, 8]}, {"55059887": [4, 17]}, {"55059891": [2, 52, 2]}, {"55059895": [119, 52, 2]}, {"55059899": [120, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [50, 17]}, {"55059915": [2, 52, 2]}, {"55059919": [192, 52, 2]}, {"55059923": [193, 3, 224]}, {"55059927": [8]}, {"55059932": [144, 136]}, {"55059935": [163, 49, 8]}, {"55059939": [3, 17]}, {"55059943": [2, 52, 2]}, {"55059947": [77, 52, 162]}, {"55059952": [3, 224]}, {"55059955": [8]}, {"55059960": [144, 136]}, {"55059963": [163, 49, 8]}, {"55059967": [24, 17]}, {"55059971": [2, 52, 2]}, {"55059975": [77, 52, 162]}, {"55059980": [3, 224]}, {"55059983": [8]}, {"55059988": [3, 224]}, {"55059991": [8]}, {"55059996": [52, 8]}, {"55059999": [1, 160, 136]}, {"55060003": [62, 3, 224]}, {"55060007": [8]}, {"55060012": [36, 136]}, {"55060015": [134, 36, 9, 255, 255, 37, 41]}, {"55060023": [1, 52, 1]}, {"55060027": [3]}, {"55060029": [41, 8, 42, 20, 32]}, {"55060035": [7]}, {"55060040": [1, 9, 80, 33, 145, 75]}, {"55060048": [52, 1]}, {"55060051": [255, 21, 97, 255, 247]}, {"55060060": [161, 69]}, {"55060064": [3, 224]}, {"55060067": [8]}, {"55060072": [36, 136]}, {"55060075": [168, 1, 6, 64, 33, 145, 9]}, {"55060084": [1, 37, 72, 37, 161, 9]}, {"55060092": [3, 224]}, {"55060095": [8]}, {"55060100": [36, 136]}, {"55060103": [188, 1, 5, 64, 33, 129, 9]}, {"55060112": [5, 33]}, {"55060115": [2]}, {"55060120": [52, 9]}, {"55060124": [37, 41]}, {"55060127": [1, 161, 9]}, {"55060132": [3, 224]}, {"55060135": [8]}, {"55060140": [52, 8]}, {"55060143": [1, 160, 136]}, {"55060147": [61, 52, 8]}, {"55060151": [20, 160, 136]}, {"55060155": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060167": [8]}, {"55060172": [52, 8]}, {"55060175": [1, 160, 136]}, {"55060179": [50, 160, 136]}, {"55060183": [58, 52, 8]}, {"55060187": [48, 164, 136, 19, 244, 160, 136]}, {"55060195": [51, 3, 224]}, {"55060199": [8]}, {"55060204": [52, 8]}, {"55060207": [2, 160, 136]}, {"55060211": [50, 52, 8]}, {"55060215": [1, 160, 136]}, {"55060219": [58, 160, 136]}, {"55060223": [60, 52, 8]}, {"55060227": [96, 164, 136, 19, 244, 160, 136]}, {"55060235": [51, 3, 224]}, {"55060239": [8]}, {"55060244": [144, 136]}, {"55060247": [124, 52, 1]}, {"55060251": [255, 17, 1]}, {"55060255": [6, 52, 2]}, {"55060259": [107, 144, 136]}, {"55060263": [148, 45, 8]}, {"55060267": [6, 17]}, {"55060271": [2, 52, 2]}, {"55060275": [106, 52, 2]}, {"55060279": [3, 3, 224]}, {"55060283": [8]}, {"55060288": [144, 136]}, {"55060291": [123, 52, 1]}, {"55060295": [255, 17, 1]}, {"55060299": [2, 52, 162]}, {"55060304": [52, 2]}, {"55060307": [12, 3, 224]}, {"55060311": [8]}, {"55060316": [52, 8]}, {"55060319": [7, 160, 136]}, {"55060323": [123, 3, 224]}, {"55060327": [8]}, {"55060332": [48, 132]}, {"55060335": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060347": [140, 16, 129]}, {"55060351": [22, 145, 2]}, {"55060355": [117, 52, 1]}, {"55060359": [141, 16, 129]}, {"55060363": [19, 145, 2]}, {"55060367": [117, 16, 128]}, {"55060371": [17, 145, 2]}, {"55060375": [116, 52, 1]}, {"55060379": [138, 16, 129]}, {"55060383": [14, 145, 2]}, {"55060387": [116, 52, 1]}, {"55060391": [139, 16, 129]}, {"55060395": [11, 145, 2]}, {"55060399": [116, 52, 1]}, {"55060403": [88, 16, 129]}, {"55060407": [8, 52, 2]}, {"55060412": [52, 1]}, {"55060415": [120, 16, 129]}, {"55060419": [5, 52, 2]}, {"55060424": [52, 1]}, {"55060427": [121, 16, 129]}, {"55060431": [2, 52, 2]}, {"55060436": [52, 2]}, {"55060439": [255, 3, 224]}, {"55060443": [8]}, {"55060448": [39, 189, 255, 224, 175, 191]}, {"55060455": [16, 175, 176]}, {"55060459": [20, 12, 16, 10, 196]}, {"55060468": [4, 65]}, {"55060471": [2]}, {"55060476": [52, 2]}, {"55060479": [91]}, {"55060481": [64, 32, 33, 12, 16, 11, 36]}, {"55060492": [16, 96]}, {"55060495": [18, 175, 163]}, {"55060499": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060508": [133, 9]}, {"55060511": [2, 17, 32]}, {"55060515": [3, 52, 10]}, {"55060519": [1, 16]}, {"55060523": [8, 165, 10]}, {"55060528": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060539": [6, 144, 102]}, {"55060543": [7, 140, 105]}, {"55060547": [8, 1, 32, 248, 9]}, {"55060556": [143, 163]}, {"55060559": [28, 144, 101]}, {"55060563": [3, 16]}, {"55060567": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060579": [6]}, {"55060581": [74]}, {"55060583": [24]}, {"55060586": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060596": [60, 8, 128, 64, 37, 8, 32]}, {"55060604": [133, 9]}, {"55060607": [2, 17, 32]}, {"55060611": [3, 52, 10]}, {"55060615": [1, 165, 10]}, {"55060620": [52, 5]}, {"55060623": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060635": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060646": [48, 33, 143, 191]}, {"55060651": [16, 143, 176]}, {"55060655": [20, 39, 189]}, {"55060659": [32, 3, 224]}, {"55060663": [8]}, {"55060668": [143, 166]}, {"55060671": [48, 132, 197]}, {"55060675": [4, 8, 16, 10, 55]}, {"55060684": [143, 185]}, {"55060687": [44, 135, 37]}, {"55060691": [4, 8, 16, 10, 55]}, {"55060700": [60, 10, 128, 64, 37, 74, 32, 4, 141, 75]}, {"55060711": [12, 17, 96]}, {"55060715": [2]}, {"55060720": [149, 69]}, {"55060723": [4, 60, 10, 128, 64, 37, 74, 32, 20, 161, 64]}, {"55060736": [60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060748": [3, 224]}, {"55060751": [8]}, {"55060756": [60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55060767": [12, 17, 32]}, {"55060771": [2]}, {"55060776": [129, 3]}, {"55060779": [2]}, {"55060781": [3, 15, 195]}, {"55060785": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55060799": [8]}, {"55060804": [144, 69]}, {"55060807": [3, 60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55060819": [12, 17, 32]}, {"55060823": [2]}, {"55060828": [145, 5]}, {"55060831": [3, 3, 224]}, {"55060835": [8]}, {"55060840": [143, 162]}, {"55060843": [36, 144, 69]}, {"55060848": [60, 8, 128, 64, 37, 8, 32]}, {"55060856": [133, 9]}, {"55060859": [2, 17, 32]}, {"55060863": [4, 52, 10]}, {"55060867": [1, 165, 10]}, {"55060872": [16]}, {"55060875": [24, 52, 5]}, {"55060879": [65, 60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55060891": [12, 17, 32]}, {"55060895": [19]}, {"55060900": [145, 5]}, {"55060903": [1, 175, 164]}, {"55060908": [175, 165]}, {"55060911": [4, 175, 166]}, {"55060915": [8, 39, 189, 255, 232, 175, 191]}, {"55060923": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55060935": [6, 145, 6]}, {"55060939": [7, 141, 9]}, {"55060943": [8, 1, 32, 248, 9]}, {"55060952": [143, 191]}, {"55060955": [16, 39, 189]}, {"55060959": [24, 143, 164]}, {"55060964": [143, 165]}, {"55060967": [4, 143, 166]}, {"55060971": [8, 3, 224]}, {"55060975": [8]}, {"55060980": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55060991": [16, 175, 163]}, {"55060995": [20, 175, 191]}, {"55060999": [24, 12, 16, 10, 138]}, {"55061008": [143, 162]}, {"55061011": [16, 143, 163]}, {"55061015": [20, 143, 191]}, {"55061019": [24, 39, 189]}, {"55061023": [32, 3, 224]}, {"55061027": [8]}, {"55061032": [39, 189, 255, 232, 175, 191]}, {"55061039": [16, 60, 8, 128, 64, 37, 8, 32, 4, 173]}, {"55061052": [173]}, {"55061055": [4, 173]}, {"55061059": [8, 173]}, {"55061063": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061079": [42]}, {"55061085": [9, 15, 195, 1, 33, 32, 38]}, {"55061093": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 196]}, {"55061108": [4, 64]}, {"55061111": [34]}, {"55061116": [52, 68]}, {"55061120": [12, 16, 11, 36]}, {"55061128": [16, 96]}, {"55061131": [12]}, {"55061136": [60, 8, 128, 64, 37, 8, 32, 4, 140, 105]}, {"55061148": [173, 9]}, {"55061152": [140, 105]}, {"55061155": [4, 173, 9]}, {"55061159": [4, 140, 105]}, {"55061163": [8, 173, 9]}, {"55061167": [8, 52, 9]}, {"55061171": [1, 173, 9]}, {"55061175": [12, 144, 98]}, {"55061180": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061196": [52, 1]}, {"55061199": [10, 21, 65]}, {"55061203": [6]}, {"55061208": [149, 42]}, {"55061211": [28, 49, 74, 240, 31]}, {"55061217": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061227": [28, 129, 9, 4, 36, 5, 33]}, {"55061235": [2]}, {"55061241": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061251": [16, 39, 189]}, {"55061255": [24, 3, 224]}, {"55061259": [8]}, {"55061264": [39, 189, 255, 232, 175, 191]}, {"55061271": [16, 12, 16, 10, 210]}, {"55061280": [36, 1, 255, 255, 16, 65]}, {"55061287": [4]}, {"55061292": [52, 68]}, {"55061296": [12, 16, 11, 6]}, {"55061304": [143, 191]}, {"55061307": [16, 39, 189]}, {"55061311": [24, 3, 224]}, {"55061315": [8]}, {"55061320": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061331": [164, 52, 8]}, {"55061336": [52, 137]}, {"55061340": [148, 170]}, {"55061344": [52, 1, 1, 156, 21, 65]}, {"55061351": [8]}, {"55061356": [52, 8]}, {"55061359": [3, 148, 171]}, {"55061363": [28, 49, 105]}, {"55061367": [255, 49, 98, 31]}, {"55061373": [2, 18, 2, 16]}, {"55061379": [31]}, {"55061384": [52, 1]}, {"55061387": [10, 21, 65]}, {"55061391": [14]}, {"55061396": [148, 171]}, {"55061399": [28, 52, 1]}, {"55061403": [16, 20, 65]}, {"55061407": [8]}, {"55061412": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061423": [4]}, {"55061428": [36, 2, 255, 255, 16]}, {"55061435": [21]}, {"55061440": [52, 8]}, {"55061443": [1, 49, 105]}, {"55061447": [31, 52, 1]}, {"55061451": [21, 21, 65]}, {"55061455": [12]}, {"55061460": [52, 1]}, {"55061463": [62, 16, 129]}, {"55061467": [7]}, {"55061472": [52, 1]}, {"55061475": [66, 16, 129]}, {"55061479": [4]}, {"55061484": [36, 2, 255, 255, 16]}, {"55061491": [7]}, {"55061496": [52, 8]}, {"55061499": [2, 144, 169, 1, 65]}, {"55061505": [2, 18]}, {"55061509": [72, 16, 37]}, {"55061513": [2, 18]}, {"55061517": [73, 16, 37, 3, 224]}, {"55061523": [8]}, {"55061528": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061543": [4, 141, 9]}, {"55061548": [17, 32]}, {"55061551": [22]}, {"55061557": [9, 82, 2, 49, 75, 248]}, {"55061565": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061588": [49, 34]}, {"55061591": [255, 60, 8, 128, 18, 37, 8, 165, 208, 161, 11, 20, 7, 60, 9, 128, 64, 37, 41, 32]}, {"55061612": [60, 12, 128, 64, 37, 140, 28]}, {"55061620": [129, 140]}, {"55061624": [17, 108]}, {"55061627": [3, 165, 32]}, {"55061631": [2, 161, 43]}, {"55061635": [2, 161, 34]}, {"55061639": [3, 3, 224]}, {"55061643": [8]}, {"55061648": [39, 189, 255, 224, 175, 176]}, {"55061655": [16, 175, 177]}, {"55061659": [20, 175, 191]}, {"55061663": [24, 52, 130]}, {"55061668": [52, 80]}, {"55061672": [38, 8, 255, 128, 5]}, {"55061679": [18]}, {"55061684": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55061695": [16, 1, 9]}, {"55061699": [24]}, {"55061702": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061720": [142, 40]}, {"55061723": [12, 1]}, {"55061726": [248, 9]}, {"55061732": [20, 80, 255, 239]}, {"55061740": [54, 35]}, {"55061744": [16]}, {"55061747": [2]}, {"55061752": [52, 3]}, {"55061756": [143, 176]}, {"55061759": [16, 143, 177]}, {"55061763": [20, 143, 191]}, {"55061767": [24, 39, 189]}, {"55061771": [32, 3, 224]}, {"55061775": [8]}, {"55061780": [140, 136, 29, 44, 52, 9]}, {"55061787": [1]}, {"55061789": [9, 78]}, {"55061792": [1, 9, 16, 36, 16, 64]}, {"55061799": [36]}, {"55061804": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55061819": [164, 52, 1]}, {"55061823": [61, 17, 129]}, {"55061827": [10]}, {"55061833": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55061843": [25]}, {"55061848": [52, 13]}, {"55061851": [1, 161, 141, 29, 40, 37, 74]}, {"55061859": [3, 16]}, {"55061863": [9]}, {"55061868": [52, 12]}, {"55061871": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55061887": [14]}, {"55061892": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55061928": [60, 9, 128, 64, 37, 41, 32, 20, 161, 40]}, {"55061940": [52, 2]}, {"55061944": [3, 224]}, {"55061947": [8]}, {"55061952": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55061964": [60, 9, 128, 64, 37, 41, 32, 20, 161, 40]}, {"55061976": [3, 224]}, {"55061979": [8]}, {"55061984": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55061996": [60, 9, 128, 64, 37, 41, 32, 20, 161, 40]}, {"55062008": [3, 224]}, {"55062011": [8]}, {"55062016": [175, 164]}, {"55062019": [104, 175, 165]}, {"55062023": [108, 175, 166]}, {"55062027": [112, 175, 167]}, {"55062031": [116, 39, 189, 255, 232, 175, 163]}, {"55062039": [16, 175, 191]}, {"55062043": [20, 60, 8, 128, 64, 37, 8, 32, 20, 129, 8]}, {"55062056": [17]}, {"55062059": [14]}, {"55062064": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062075": [1, 165, 42]}, {"55062080": [60, 9, 128, 65, 52, 10]}, {"55062087": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 138]}, {"55062116": [143, 163]}, {"55062119": [16, 143, 191]}, {"55062123": [20, 39, 189]}, {"55062127": [24, 143, 164]}, {"55062131": [104, 143, 165]}, {"55062135": [108, 143, 166]}, {"55062139": [112, 143, 167]}, {"55062143": [116, 132, 110, 19, 196, 3, 224]}, {"55062151": [8]}, {"55062156": [147, 25]}, {"55062159": [116, 52, 1]}, {"55062163": [255, 23, 33]}, {"55062167": [2]}, {"55062172": [52, 25]}, {"55062175": [44, 3, 224]}, {"55062179": [8, 167, 185]}, {"55062183": [154, 147, 44]}, {"55062187": [116, 52, 1]}, {"55062191": [255, 21, 129]}, {"55062195": [2]}, {"55062200": [52, 12]}, {"55062203": [44, 3, 224]}, {"55062207": [8]}, {"55062212": [145, 174]}, {"55062215": [116, 52, 1]}, {"55062219": [255, 21, 193]}, {"55062223": [2]}, {"55062228": [52, 14]}, {"55062231": [44, 3, 224]}, {"55062235": [8, 167, 174]}, {"55062239": [154, 145, 207]}, {"55062243": [116, 52, 1]}, {"55062247": [255, 21, 225]}, {"55062251": [2]}, {"55062256": [52, 15]}, {"55062259": [44, 3, 224]}, {"55062263": [8, 167, 175]}, {"55062267": [154, 60, 8, 128, 64, 37, 8, 32, 24, 142, 9]}, {"55062279": [104, 173, 9]}, {"55062284": [142, 9]}, {"55062287": [108, 173, 9]}, {"55062291": [4, 150, 9]}, {"55062295": [112, 165, 9]}, {"55062299": [8, 150, 9]}, {"55062303": [156, 165, 9]}, {"55062307": [10, 3, 224]}, {"55062311": [8, 142, 14]}, {"55062315": [4, 39, 189, 255, 224, 175, 176]}, {"55062323": [16, 175, 177]}, {"55062327": [20, 175, 191]}, {"55062331": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 24, 142, 8]}, {"55062351": [4, 17]}, {"55062355": [5]}, {"55062360": [12, 16, 11, 245]}, {"55062368": [16]}, {"55062371": [3]}, {"55062376": [12, 16, 12, 8]}, {"55062384": [12, 16, 11, 232, 52, 4]}, {"55062392": [12, 16, 11, 232, 52, 4]}, {"55062399": [1, 12, 16, 11, 232, 52, 4]}, {"55062407": [2, 143, 176]}, {"55062411": [16, 143, 177]}, {"55062415": [20, 143, 191]}, {"55062419": [24, 39, 189]}, {"55062423": [32, 3, 224]}, {"55062427": [8]}, {"55062432": [2, 4, 64, 33, 145, 9]}, {"55062439": [108, 52, 1]}, {"55062443": [255, 17, 33]}, {"55062447": [7]}, {"55062452": [2, 9, 72, 33, 145, 41]}, {"55062459": [116, 52, 1]}, {"55062463": [44, 17, 33]}, {"55062467": [2]}, {"55062472": [161, 9]}, {"55062475": [105, 3, 224]}, {"55062479": [8]}, {"55062484": [39, 189, 255, 232, 175, 191]}, {"55062491": [16, 142, 40]}, {"55062496": [174, 8]}, {"55062499": [64, 142, 40]}, {"55062503": [4, 174, 8]}, {"55062507": [68, 150, 40]}, {"55062511": [8, 166, 8]}, {"55062515": [72, 162]}, {"55062518": [15, 51, 146, 8]}, {"55062523": [74, 52, 1]}, {"55062527": [255, 21, 1]}, {"55062531": [3]}, {"55062536": [12, 16, 12, 22]}, {"55062544": [143, 191]}, {"55062547": [16, 39, 189]}, {"55062551": [24, 3, 224]}, {"55062555": [8]}, {"55062560": [142, 8]}, {"55062563": [64, 174, 8]}, {"55062567": [104, 142, 8]}, {"55062571": [68, 174, 8]}, {"55062575": [108, 150, 8]}, {"55062579": [72, 166, 8]}, {"55062583": [112, 146, 8]}, {"55062587": [104, 52, 1]}, {"55062591": [255, 21, 1]}, {"55062595": [3]}, {"55062600": [52, 8]}, {"55062603": [1, 162, 8, 15, 51, 3, 224]}, {"55062611": [8]}, {"55062616": [39, 189, 255, 232, 175, 191]}, {"55062623": [16, 150, 8]}, {"55062627": [156, 49, 8]}, {"55062631": [64, 17]}, {"55062635": [5]}, {"55062640": [150, 8]}, {"55062643": [112, 49, 8, 255, 15, 53, 8]}, {"55062651": [48, 166, 8]}, {"55062655": [112, 146, 40]}, {"55062659": [1, 162, 8]}, {"55062663": [105, 150, 40]}, {"55062667": [2, 166, 8]}, {"55062671": [106, 142, 40]}, {"55062675": [4, 174, 8]}, {"55062679": [108, 12, 16, 12, 48, 52, 4]}, {"55062688": [12, 16, 12, 48, 52, 4]}, {"55062695": [1, 12, 16, 12, 48, 52, 4]}, {"55062703": [2, 143, 191]}, {"55062707": [16, 39, 189]}, {"55062711": [24, 3, 224]}, {"55062715": [8]}, {"55062720": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 49, 108, 145, 10]}, {"55062735": [108, 52, 1]}, {"55062739": [255, 17, 65]}, {"55062743": [5]}, {"55062748": [1, 42, 72, 33, 145, 41]}, {"55062756": [21, 32]}, {"55062759": [28]}, {"55062764": [60, 9, 128, 64, 37, 41, 49, 95, 37, 41]}, {"55062775": [1, 145, 42]}, {"55062780": [17, 64]}, {"55062783": [19]}, {"55062788": [2, 10, 88, 33, 145, 107]}, {"55062795": [116, 52, 1]}, {"55062799": [255, 17, 97, 255, 248]}, {"55062808": [146, 12]}, {"55062811": [108, 17, 138, 255, 245]}, {"55062820": [146, 12]}, {"55062823": [109, 17, 138, 255, 242]}, {"55062832": [146, 12]}, {"55062835": [110, 17, 138, 255, 239]}, {"55062844": [161, 11]}, {"55062847": [105, 161, 10]}, {"55062851": [108, 16]}, {"55062855": [4]}, {"55062860": [52, 9]}, {"55062863": [255, 161, 9]}, {"55062867": [105, 161, 9]}, {"55062871": [108, 3, 224]}, {"55062875": [8]}, {"55062880": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55062893": [1, 1, 1, 1, 1]}, {"55062899": [1, 1, 1, 1, 1]}, {"55062905": [1]}, {"55062907": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55062917": [51, 8, 33, 32, 15]}, {"55062923": [71, 21, 234]}, {"55062927": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062939": [164]}, {"55062941": [15, 122, 3, 20, 64]}, {"55062947": [5, 52, 2, 72, 48, 21, 226]}, {"55062955": [7]}, {"55062960": [36, 25]}, {"55062963": [3, 16]}, {"55062967": [4, 52, 2, 99, 17, 21, 226]}, {"55062975": [2]}, {"55062980": [36, 25]}, {"55062983": [3, 3, 224]}, {"55062987": [8]}, {"55062992": [141, 173, 138, 160, 52, 2, 128]}, {"55063000": [16, 77]}, {"55063003": [2]}, {"55063008": [16]}, {"55063011": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063027": [1, 16, 64]}, {"55063031": [2]}, {"55063036": [16]}, {"55063039": [2, 52, 2]}, {"55063043": [1, 161, 226, 28, 191, 3, 224]}, {"55063051": [8]}, {"55063057": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063071": [164]}, {"55063073": [15, 122, 3, 20, 64]}, {"55063079": [5, 52, 2, 72, 48, 21, 226]}, {"55063087": [7]}, {"55063092": [36, 25]}, {"55063095": [3, 16]}, {"55063099": [4, 52, 2, 99, 17, 21, 226]}, {"55063107": [2]}, {"55063112": [36, 25]}, {"55063115": [3, 3, 224]}, {"55063119": [8]}, {"55063124": [162, 37]}, {"55063127": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063139": [4, 142, 10]}, {"55063144": [17, 64]}, {"55063147": [11]}, {"55063153": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063165": [24, 194, 2, 23]}, {"55063171": [3, 49, 89]}, {"55063175": [255, 129, 234]}, {"55063180": [3, 42, 200, 37, 8, 16, 12, 152, 161, 249]}, {"55063192": [3, 224]}, {"55063195": [8]}] \ No newline at end of file diff --git a/version.py b/version.py index 8c42249a1..c2357093d 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.9 f.LUM' +__version__ = '2.13.10 f.LUM' From 62d367c1367fa3628caf2d515dddfc65c10b3e6f Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Wed, 18 Jul 2018 23:40:54 -0400 Subject: [PATCH 176/755] Force songs to appear in their own world --- Rules.py | 1 + version.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Rules.py b/Rules.py index 57caea2d7..138b7b2bd 100644 --- a/Rules.py +++ b/Rules.py @@ -440,6 +440,7 @@ def global_rules(world): for location in world.get_locations(): if location.type != 'Chest': forbid_item(location, 'Ice Trap') + add_item_rule(location, lambda i: i.type != 'Song' or i.world.id == location.world.id) # Biggoron Sword at bombchu bowling seems to lead to a soft lock. # Unsure what causes this, but I'm leaving this to original devs. diff --git a/version.py b/version.py index 846f51a1f..7ad11336b 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.12 f.LUM' \ No newline at end of file +__version__ = '2.13.13 f.LUM' \ No newline at end of file From c561be605f8dc3d375ca81f54e5e8a09c7028622 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Thu, 19 Jul 2018 03:12:30 -0400 Subject: [PATCH 177/755] Fixed worlds only containing their own items --- Fill.py | 2 +- Rules.py | 2 +- version.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Fill.py b/Fill.py index 5c227b4b3..b738b02ea 100644 --- a/Fill.py +++ b/Fill.py @@ -167,7 +167,7 @@ def fill_restrictive(worlds, base_state_list, locations, itempool): # in the world we are placing it (possibly checking for reachability) spot_to_fill = None for location in locations: - if location.world.id == item_to_place.world.id and location.can_fill(maximum_exploration_state_list[location.world.id], item_to_place, perform_access_check): + if location.can_fill(maximum_exploration_state_list[location.world.id], item_to_place, perform_access_check): spot_to_fill = location break diff --git a/Rules.py b/Rules.py index 138b7b2bd..0a1877d0c 100644 --- a/Rules.py +++ b/Rules.py @@ -240,7 +240,7 @@ def global_rules(world): set_rule(world.get_location('Water Temple Dark Link Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity)) set_rule(world.get_location('Water Temple River Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and state.can_play('Song of Time') and state.has('Bow') and (state.can_play('Zeldas Lullaby') or world.keysanity)) set_rule(world.get_location('Water Temple Central Pillar Chest'), lambda state: state.has_ZoraTunic()) - set_rule(world.get_location('Sheik in Kakariko'), lambda state: state.has('Forest Medallion') and state.has('Fire Medallion') and state.has('Water Medallion')) + set_rule(world.get_location('Sheik in Kakariko'), lambda state: state.is_adult() and state.has('Forest Medallion') and state.has('Fire Medallion') and state.has('Water Medallion')) set_rule(world.get_entrance('Graveyard Warp Pad'), lambda state: state.can_play('Nocturne of Shadow')) set_rule(world.get_entrance('Shadow Temple Entrance'), lambda state: state.has('Dins Fire') and state.has('Magic Meter') and state.can_see_with_lens() and state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot'))) set_rule(world.get_entrance('Shadow Temple First Pit'), lambda state: state.has('Hover Boots')) diff --git a/version.py b/version.py index 7ad11336b..910330eb2 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.13 f.LUM' \ No newline at end of file +__version__ = '2.13.14 f.LUM' \ No newline at end of file From 00833641853abbd0d6d90b8390253892f6d0c2a6 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Thu, 19 Jul 2018 03:14:27 -0400 Subject: [PATCH 178/755] Fix logic with sheik at kak --- Rules.py | 2 +- version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Rules.py b/Rules.py index a26536b67..761ec1ccb 100644 --- a/Rules.py +++ b/Rules.py @@ -234,7 +234,7 @@ def global_rules(world): set_rule(world.get_location('Water Temple Dark Link Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity)) set_rule(world.get_location('Water Temple River Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and state.can_play('Song of Time') and state.has('Bow') and (state.can_play('Zeldas Lullaby') or world.keysanity)) set_rule(world.get_location('Water Temple Central Pillar Chest'), lambda state: state.has_ZoraTunic()) - set_rule(world.get_location('Sheik in Kakariko'), lambda state: state.has('Forest Medallion') and state.has('Fire Medallion') and state.has('Water Medallion')) + set_rule(world.get_location('Sheik in Kakariko'), lambda state: state.is_adult() and state.has('Forest Medallion') and state.has('Fire Medallion') and state.has('Water Medallion')) set_rule(world.get_entrance('Graveyard Warp Pad'), lambda state: state.can_play('Nocturne of Shadow')) set_rule(world.get_entrance('Shadow Temple Entrance'), lambda state: state.has('Dins Fire') and state.has('Magic Meter') and state.can_see_with_lens() and state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot'))) set_rule(world.get_entrance('Shadow Temple First Pit'), lambda state: state.has('Hover Boots')) diff --git a/version.py b/version.py index 94f0bdfa2..8c42249a1 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.8 f.LUM' +__version__ = '2.13.9 f.LUM' From 35b6bced22bf187bc37668852a7b8137fd39a375 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Thu, 19 Jul 2018 06:33:59 -0400 Subject: [PATCH 179/755] Add OHKO --- README.md | 5 ++++- Rom.py | 5 +++++ Settings.py | 13 +++++++++++++ version.py | 2 +- 4 files changed, 23 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ba6fb2908..24728a434 100644 --- a/README.md +++ b/README.md @@ -78,7 +78,6 @@ Regardless of whether of not you use this option, Malon has been sped up in the The Fairy Ocarina can be shuffled into the item pool with `shuffle_fairy_ocarina`. This means that Saria will give a random item and that you must find the Ocarina before being able to play any songs. The Ocarina of Time will still always be at its usual location. - ## Keysanity Dungeon items (maps, compasses, small keys, boss keys) are shuffled into the item pool at large. @@ -91,6 +90,10 @@ Gold Skulltula Token are added to the item pool, and Gold Skulltula locations gi In addition there is an option for the logic to expect Sun's Song to obtain any night-only skulltula token. +## OHKO + +Setting `ohko` will make Link die in one hit... + ## Changed hint system The hint system has been changed to include different kinds of hints (such as saying a location has something good, but not saying what item it is, or saying a specific item is somewhere in a dungeon, instead of giving the specific location, and so on.) An option has been added to allow talking to gossip stones from the start. Yes, this makes the Stone of Agony completely useless. diff --git a/Rom.py b/Rom.py index 55e6f4f3b..76e2f2139 100644 --- a/Rom.py +++ b/Rom.py @@ -1047,6 +1047,11 @@ def write_save_table(rom): if world.default_targeting == 'hold': rom.write_bytes(0xB07200, [0x20, 0x0C, 0x00, 0x01 ]) + # Set OHKO mode + if world.ohko: + rom.write_int32(0xAE80A8, 0xA4A00030) # sh zero,48(a1) + rom.write_int32(0xAE80B0, 0x0010082A) # slt at,s0,zero + # Patch songs and boss rewards for location in world.get_locations(): item = location.item diff --git a/Settings.py b/Settings.py index 300a1fadf..e15e957b4 100644 --- a/Settings.py +++ b/Settings.py @@ -507,6 +507,19 @@ def __init__(self, settings_dict): 'All Tokens': 'all', }, }), + Setting_Info('ohko', bool, 1, True, + { + 'help': '''\ + Link will die in one hit. + ''', + 'action': 'store_true' + }, + { + 'text': 'OHKO', + 'group': 'other', + 'widget': 'Checkbutton', + 'default': 'unchecked' + }), Setting_Info('nodungeonitems', bool, 1, True, { 'help': '''\ diff --git a/version.py b/version.py index 8c42249a1..c2357093d 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.9 f.LUM' +__version__ = '2.13.10 f.LUM' From 77b66e1567d1e8763a131674b5c0535a30838be9 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Thu, 19 Jul 2018 07:09:56 -0400 Subject: [PATCH 180/755] Fix correcting chest size --- Rom.py | 2 +- version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Rom.py b/Rom.py index b26073d32..b6bcf0eb6 100644 --- a/Rom.py +++ b/Rom.py @@ -1471,7 +1471,7 @@ def get_chest_list(rom): def get_override_itemid(override_table, scene, type, flags): for entry in override_table: - if len(entry) == 4 and entry[0] == scene and entry[1] == type and entry[2] == flags: + if len(entry) == 4 and entry[0] == scene and (entry[1] & 0x07) == type and entry[2] == flags: return entry[3] return None diff --git a/version.py b/version.py index 910330eb2..a6a24f33a 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.14 f.LUM' \ No newline at end of file +__version__ = '2.13.15 f.LUM' \ No newline at end of file From d04b15eadb17ebff377e5189cda0f3524c9d81f2 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Thu, 19 Jul 2018 16:48:07 -0400 Subject: [PATCH 181/755] Removed Ice Traps in OHKO... Sadface --- ItemList.py | 7 ++++++- version.py | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/ItemList.py b/ItemList.py index b6ac00b39..0153828ae 100644 --- a/ItemList.py +++ b/ItemList.py @@ -8,7 +8,7 @@ #This file sets the item pools for various modes. Timed modes and triforce hunt are enforced first, and then extra items are specified per mode to fill in the remaining space. #Some basic items that various modes require are placed here, including pendants and crystals. Medallion requirements for the two relevant entrances are also decided. -alwaysitems = (['Kokiri Sword', 'Biggoron Sword', 'Boomerang', 'Lens of Truth', 'Hammer', 'Iron Boots', 'Goron Tunic', 'Zora Tunic', 'Hover Boots', 'Mirror Shield', 'Stone of Agony', 'Fire Arrows', 'Ice Arrows', 'Light Arrows', 'Dins Fire', 'Farores Wind', 'Nayrus Love', 'Rupee (1)'] + ['Progressive Hookshot'] * 2 + ['Deku Shield'] * 4 + ['Hylian Shield'] * 2 + ['Ice Trap'] * 6 + +alwaysitems = (['Kokiri Sword', 'Biggoron Sword', 'Boomerang', 'Lens of Truth', 'Hammer', 'Iron Boots', 'Goron Tunic', 'Zora Tunic', 'Hover Boots', 'Mirror Shield', 'Stone of Agony', 'Fire Arrows', 'Ice Arrows', 'Light Arrows', 'Dins Fire', 'Farores Wind', 'Nayrus Love', 'Rupee (1)'] + ['Progressive Hookshot'] * 2 + ['Deku Shield'] * 4 + ['Hylian Shield'] * 2 + ['Progressive Strength Upgrade'] * 3 + ['Progressive Scale'] * 2 + ['Piece of Heart'] * 35 + ['Recovery Heart'] * 11 + ['Rupees (5)'] * 17 + ['Rupees (20)'] * 5 + ['Rupees (50)'] * 7 + ['Rupees (200)'] * 6 + ['Bow'] * 3 + ['Slingshot'] * 3 + ['Bomb Bag'] * 3 + ['Bottle with Letter'] + ['Heart Container'] * 8 + ['Piece of Heart (Treasure Chest Game)'] + ['Bombs (5)'] * 2 + ['Bombs (10)'] * 2 + ['Bombs (20)'] * 2 + ['Arrows (5)'] + ['Arrows (10)'] * 6 + ['Arrows (30)'] * 6 + ['Deku Nuts (5)'] + ['Deku Nuts (10)'] + ['Progressive Wallet'] * 2 + ['Deku Stick Capacity'] * 2 + ['Deku Nut Capacity'] * 2 + ['Magic Meter'] * 2 + ['Double Defense']) # normal_bottles = ['Bottle', 'Bottle with Milk', 'Bottle with Red Potion', 'Bottle with Green Potion', 'Bottle with Blue Potion', 'Bottle with Fairy', 'Bottle with Fish', 'Bottle with Blue Fire', 'Bottle with Bugs', 'Bottle with Poe'] @@ -95,6 +95,11 @@ def get_pool_core(world): else: pool.extend(['Bombchus (5)'] + ['Bombchus (10)'] * 3 + ['Bombchus (20)']) + if world.ohko: + pool.extend(['Recovery Heart'] * 6) + else: + pool.extend(['Ice Trap'] * 6) + pool.extend(alwaysitems) for _ in range(normal_bottle_count): bottle = random.choice(normal_bottles) diff --git a/version.py b/version.py index c2357093d..390dad996 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.10 f.LUM' +__version__ = '2.13.11 f.LUM' From b3b9be97eb800d03343feae2000cb36a1228bf96 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Thu, 19 Jul 2018 18:59:24 -0400 Subject: [PATCH 182/755] Fixed 0 damage attacks from killing in OHKO --- Rom.py | 2 +- version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Rom.py b/Rom.py index 76e2f2139..990798439 100644 --- a/Rom.py +++ b/Rom.py @@ -1050,7 +1050,7 @@ def write_save_table(rom): # Set OHKO mode if world.ohko: rom.write_int32(0xAE80A8, 0xA4A00030) # sh zero,48(a1) - rom.write_int32(0xAE80B0, 0x0010082A) # slt at,s0,zero + rom.write_int32(0xAE80B4, 0x06000003) # bltz s0, +0003 # Patch songs and boss rewards for location in world.get_locations(): diff --git a/version.py b/version.py index 390dad996..fd2601e96 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.11 f.LUM' +__version__ = '2.13.12 f.LUM' From ccabb3ab9f70c815addfd8d7bbbc1d1472de3c1c Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Thu, 19 Jul 2018 22:47:14 -0400 Subject: [PATCH 183/755] Improve 'On the way of the hero' hints --- BaseClasses.py | 123 +++++++++++++++++++++++++++++++------------------ Fill.py | 2 - HintList.py | 2 +- Hints.py | 20 ++++---- ItemList.py | 3 +- Main.py | 56 +++++----------------- version.py | 2 +- 7 files changed, 102 insertions(+), 106 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index eaa06ae31..2e0153f5d 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -197,9 +197,7 @@ def unlocks_new_location(self, item): return False def has_beaten_game(self, state): - if state.has('Triforce'): - return True - return False + return state.has('Triforce') @property def option_identifier(self): @@ -232,7 +230,6 @@ def __init__(self, parent): self.entrance_cache = {} self.recursion_count = 0 self.collected_locations = [] - self.path = {} def clear_cached_unreachable(self): # we only need to invalidate results which were False, places we could reach before we can still reach after adding more items @@ -247,7 +244,6 @@ def copy(self): ret.location_cache = copy.copy(self.location_cache) ret.entrance_cache = copy.copy(self.entrance_cache) ret.collected_locations = copy.copy(self.collected_locations) - ret.path = copy.copy(self.path) return ret def can_reach(self, spot, resolution_hint=None): @@ -405,10 +401,10 @@ def remove(self, item): except ValueError: return - # invalidate caches, nothing can be trusted anymore now - self.region_cache = {} - self.location_cache = {} - self.entrance_cache = {} + # invalidate collected cache. unreachable locations are still unreachable + self.region_cache = {k: v for k, v in self.region_cache.items() if not v} + self.location_cache = {k: v for k, v in self.location_cache.items() if not v} + self.entrance_cache = {k: v for k, v in self.entrance_cache.items() if not v} self.recursion_count = 0 def __getattr__(self, item): @@ -441,10 +437,10 @@ def get_states_with_items(base_state_list, itempool): def collect_locations(state_list): # Get all item locations in the worlds item_locations = [location for state in state_list for location in state.world.get_filled_locations() if location.item.advancement] - new_locations = True # will loop if there is more items opened up in the previous iteration. Always run once - while new_locations: + reachable_items_locations = True + while reachable_items_locations: # get reachable new items locations reachable_items_locations = [location for location in item_locations if location.name not in state_list[location.world.id].collected_locations and state_list[location.world.id].can_reach(location)] for location in reachable_items_locations: @@ -452,25 +448,47 @@ def collect_locations(state_list): state_list[location.world.id].collected_locations.append(location.name) # Collect the item for the state world it is for state_list[location.item.world.id].collect(location.item) - # if there are new locations - new_locations = len(reachable_items_locations) > 0 + + + # This removes all item locations collected in the state list given that + # the states have collected items. The purpose is that it will search for + # all new items that become no longer accessible with a removed item + @staticmethod + def remove_locations(state_list): + # Get all item locations in the worlds + item_locations = [location for state in state_list for location in state.world.get_filled_locations() if location.item.advancement] + + # will loop if there is more items removed in the previous iteration. Always run once + unreachable_items_locations = True + while unreachable_items_locations: + # get unreachable new items locations + unreachable_items_locations = [location for location in item_locations if location.name in state_list[location.world.id].collected_locations and not state_list[location.world.id].can_reach(location)] + for location in unreachable_items_locations: + # Mark the location uncollected in the state world it exists in + state_list[location.world.id].collected_locations.remove(location.name) + # Remove the item for the state world it is for + state_list[location.item.world.id].remove(location.item) + # This returns True is every state is beatable. It's important to ensure # all states beatable since items required in one world can be in another. @staticmethod - def can_beat_game(state_list): - # Check if already beaten - game_beaten = True - for state in state_list: - if not state.has('Triforce'): - game_beaten = False - break - if game_beaten: - return True + def can_beat_game(state_list, scan_for_items=True): + if scan_for_items: + # Check if already beaten + game_beaten = True + for state in state_list: + if not state.has('Triforce'): + game_beaten = False + break + if game_beaten: + return True - # collect all available items - new_state_list = [state.copy() for state in state_list] - CollectionState.collect_locations(new_state_list) + # collect all available items + new_state_list = [state.copy() for state in state_list] + CollectionState.collect_locations(new_state_list) + else: + new_state_list = state_list # if the every state got the Triforce, then return True for state in new_state_list: @@ -478,6 +496,35 @@ def can_beat_game(state_list): return False return True + @staticmethod + def update_required_items(worlds): + state_list = [CollectionState(world) for world in worlds] + CollectionState.collect_locations(state_list) + + item_locations = [] + if not worlds[0].spoiler.playthrough: + item_locations = [location for world in worlds for location in world.get_filled_locations() + if location.item.advancement and location.item.type != 'Event' and not location.event and (worlds[0].settings.keysanity or not location.item.key)] + else: + item_locations = [location for _,sphere in worlds[0].spoiler.playthrough.items() for location in sphere + if location.item.type != 'Event' and not location.event and (worlds[0].settings.keysanity or not location.item.key)] + + required_locations = [] + for location in item_locations: + old_item = location.item + new_state_list = [state.copy() for state in state_list] + + location.item = None + new_state_list[old_item.world.id].remove(old_item) + CollectionState.remove_locations(new_state_list) + + if not CollectionState.can_beat_game(new_state_list): + required_locations.append(location) + location.item = old_item + + for world in worlds: + world.spoiler.required_locations = [location for location in required_locations if location.world.id == world.id] + @unique class RegionType(Enum): @@ -492,7 +539,6 @@ def is_indoors(self): return self in (RegionType.Interior, RegionType.Dungeon, RegionType.Grotto) - class Region(object): def __init__(self, name, type): @@ -509,8 +555,6 @@ def __init__(self, name, type): def can_reach(self, state): for entrance in self.entrances: if state.can_reach(entrance): - if not self in state.path: - state.path[self] = (self.name, state.path.get(entrance, None)) return True return False @@ -544,8 +588,6 @@ def __init__(self, name='', parent=None): def can_reach(self, state): if self.access_rule(state) and state.can_reach(self.parent_region): - if not self in state.path: - state.path[self] = (self.name, state.path.get(self.parent_region, (self.parent_region.name, None))) return True return False @@ -609,6 +651,7 @@ def __init__(self, name='', address=None, address2=None, default=None, type='Che self.always_allow = lambda item, state: False self.access_rule = lambda state: True self.item_rule = lambda item: True + self.event = False def can_fill(self, state, item, check_access=True): return self.always_allow(item, self) or (self.parent_region.can_fill(item) and self.item_rule(item) and (not check_access or self.can_reach(state))) @@ -672,8 +715,8 @@ def __init__(self, world): self.entrances = [] self.playthrough = {} self.locations = {} - self.paths = {} self.metadata = {} + self.required_locations = {} def set_entrance(self, entrance, exit, direction): self.entrances.append(OrderedDict([('entrance', entrance), ('exit', exit), ('direction', direction)])) @@ -711,16 +754,8 @@ def to_file(self, filename): else: outfile.write('\n'.join(['%s: {\n%s\n}' % (sphere_nr, '\n'.join([' %s: %s' % (location.name, item.name) for (location, item) in sphere.items()])) for (sphere_nr, sphere) in self.playthrough.items()])) - outfile.write('\n\nPaths:\n\n') - - path_listings = [] - for location, path in sorted(self.paths.items()): - path_lines = [] - for region, exit in path: - if exit is not None: - path_lines.append("{} -> {}".format(region, exit)) - else: - path_lines.append(region) - path_listings.append("{}\n {}".format(location, "\n => ".join(path_lines))) - - outfile.write('\n'.join(path_listings)) + outfile.write('\n\nAlways Required Locations:\n\n') + if self.settings.world_count > 1: + outfile.write('\n'.join(['%s: %s [Player %d]' % (location.name, location.item.name, location.item.world.id) for location in self.required_locations])) + else: + outfile.write('\n'.join(['%s: %s' % (location.name, location.item.name) for location in self.required_locations])) diff --git a/Fill.py b/Fill.py index b738b02ea..b909f28fc 100644 --- a/Fill.py +++ b/Fill.py @@ -184,7 +184,6 @@ def fill_restrictive(worlds, base_state_list, locations, itempool): # Place the item in the world and continue spot_to_fill.world.push_item(spot_to_fill, item_to_place) locations.remove(spot_to_fill) - spot_to_fill.event = True # This places items in the itempool into the locations @@ -212,7 +211,6 @@ def fill_restrictive_fast(worlds, locations, itempool): # Place the item in the world and continue spot_to_fill.world.push_item(spot_to_fill, item_to_place) locations.remove(spot_to_fill) - spot_to_fill.event = True # this places item in item_pool completely randomly into diff --git a/HintList.py b/HintList.py index 052c77045..4b50d1669 100644 --- a/HintList.py +++ b/HintList.py @@ -94,7 +94,7 @@ def getHintGroup(string, world): 'Piece of Heart (Treasure Chest Game)': ("WINNER!", 'item'), 'Recovery Heart': ("a free heal", 'item'), 'Rupee (1)': ("rare riches", 'item'), - 'Rupees (5)': (" a common coin", 'item'), + 'Rupees (5)': ("a common coin", 'item'), 'Rupees (20)': ("couch cash", 'item'), 'Rupees (50)': ("big bucks", 'item'), 'Rupees (200)': ("a juicy jackpot", 'item'), diff --git a/Hints.py b/Hints.py index ddad97351..b1ed9cb17 100644 --- a/Hints.py +++ b/Hints.py @@ -138,20 +138,16 @@ def buildGossipHints(world, messages): #shuffles the stone addresses for randomization, always locations will be placed first and twice random.shuffle(stoneIDs) - # get list of required items that are not events or needed for Ganon's Castle - requiredItems = [(location.name, item.name) for _,sphere in world.spoiler.playthrough.items() for location,item in sphere.items() - if item.type != 'Event' and not location in eventlocations] - - # add required non-ganon items for hints (good hints) - requiredSample = requiredItems - if len(requiredItems) >= 4: - requiredSample = random.sample(requiredItems, random.randint(3,4)) - for location,item in requiredSample: - if world.get_location(location).parent_region.dungeon: - update_hint(messages, stoneIDs.pop(0), buildHintString(getHint(world.get_location(location).parent_region.dungeon.name).text + \ + # add required items locations for hints (good hints) + requiredSample = world.spoiler.required_locations + if len(requiredSample) >= 4: + requiredSample = random.sample(requiredSample, random.randint(3,4)) + for location in requiredSample: + if location.parent_region.dungeon: + update_hint(messages, stoneIDs.pop(0), buildHintString(getHint(location.parent_region.dungeon.name).text + \ " is on the way of the hero.")) else: - update_hint(messages, stoneIDs.pop(0), buildHintString(world.get_location(location).parent_region.name + " is on the way of the hero.")) + update_hint(messages, stoneIDs.pop(0), buildHintString(location.parent_region.name + " is on the way of the hero.")) # Don't repeat hints checkedLocations = [] diff --git a/ItemList.py b/ItemList.py index b5e96fa39..e84dd2cf0 100644 --- a/ItemList.py +++ b/ItemList.py @@ -44,15 +44,16 @@ #total_items_to_place = 5 def generate_itempool(world): - for location, item in eventlocations.items(): world.push_item(location, ItemFactory(item)) + world.get_location(location).event = True # set up item pool (pool, placed_items) = get_pool_core(world) world.itempool = ItemFactory(pool) for (location, item) in placed_items.items(): world.push_item(location, ItemFactory(item)) + world.get_location(location).event = True choose_trials(world) fill_bosses(world) diff --git a/Main.py b/Main.py index dbdbcc472..3738b0562 100644 --- a/Main.py +++ b/Main.py @@ -60,8 +60,10 @@ def main(settings): logger.info('Fill the world.') distribute_items_restrictive(worlds) - logger.info('Calculating playthrough.') - create_playthrough(worlds) + if settings.create_spoiler: + logger.info('Calculating playthrough.') + create_playthrough(worlds) + CollectionState.update_required_items(worlds) logger.info('Patching ROM.') @@ -110,7 +112,6 @@ def create_playthrough(worlds): raise RuntimeError('Cannot beat game. Something went terribly wrong here!') state_list = [CollectionState(world) for world in worlds] - cached_state_list = [[state.copy() for state in state_list]] # Get all item locations in the worlds collection_spheres = [] @@ -132,7 +133,6 @@ def create_playthrough(worlds): state_list[location.item.world.id].collect(location.item) if reachable_items_locations: collection_spheres.append(reachable_items_locations) - cached_state_list.append([state.copy() for state in state_list]) # in the second phase, we cull each sphere such that the game is still beatable, reducing each # range of influence to the bare minimum required inside it. Effectively creates a min play @@ -142,58 +142,24 @@ def create_playthrough(worlds): # we remove the item at location and check if game is still beatable logging.getLogger('').debug('Checking if %s is required to beat the game.', location.item.name) old_item = location.item + old_state_list = [state.copy() for state in state_list] + location.item = None - if CollectionState.can_beat_game(cached_state_list[num]): + state_list[old_item.world.id].remove(old_item) + CollectionState.remove_locations(state_list) + if CollectionState.can_beat_game(state_list, False): to_delete.append(location) else: # still required, got to keep it around + state_list = old_state_list location.item = old_item # cull entries in spheres for spoiler walkthrough at end for location in to_delete: sphere.remove(location) - - # we are now down to just the required progress items in collection_spheres. Unfortunately - # the previous pruning stage could potentially have made certain items dependant on others - # in the same or later sphere (because the location had 2 ways to access but the item originally - # used to access it was deemed not required.) So we need to do one final sphere collection pass - # to build up the correct spheres - required_locations = [item for sphere in collection_spheres for item in sphere] - state_list = cached_state_list[0] - collection_spheres = [] - reachable_items_locations = True - while reachable_items_locations: - # get reachable new items locations - reachable_items_locations = [location for location in required_locations if location.name not in state_list[location.world.id].collected_locations and state_list[location.world.id].can_reach(location)] - for location in reachable_items_locations: - # Mark the location collected in the state world it exists in - state_list[location.world.id].collected_locations.append(location.name) - # Collect the item for the state world it is for - state_list[location.item.world.id].collect(location.item) - if reachable_items_locations: - collection_spheres.append(reachable_items_locations) - - logging.getLogger('').debug('Calculated final sphere %i, containing %i of %i progress items.', len(collection_spheres), len(sphere), len(required_locations)) - if not sphere: - raise RuntimeError('Not all required items reachable. Something went terribly wrong here.') - - def flist_to_iter(node): - while node: - value, node = node - yield value - - def get_path(state, region): - reversed_path_as_flist = state.path.get(region, (region, None)) - string_path_flat = reversed(list(map(str, flist_to_iter(reversed_path_as_flist)))) - # Now we combine the flat string list into (region, exit) pairs - pathsiter = iter(string_path_flat) - pathpairs = zip_longest(pathsiter, pathsiter) - return list(pathpairs) - + collection_spheres = [sphere for sphere in collection_spheres if sphere] # we can finally output our playthrough for world in old_worlds: - world.required_locations = [location for sphere in collection_spheres for location in sphere] world.spoiler.playthrough = OrderedDict([(str(i + 1), {location: location.item for location in sphere}) for i, sphere in enumerate(collection_spheres)]) - world.spoiler.paths = {location.name : get_path(world.state, location.parent_region) for sphere in collection_spheres for location in sphere} diff --git a/version.py b/version.py index a6a24f33a..fb3dc2bab 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.15 f.LUM' \ No newline at end of file +__version__ = '2.13.16 f.LUM' \ No newline at end of file From ee87bda880d0c900b263aecabd74f058e303d882 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Fri, 20 Jul 2018 00:08:26 -0400 Subject: [PATCH 184/755] Speedup generation time --- BaseClasses.py | 78 ++++++++++++++++++++++++-------------------------- Dungeons.py | 12 ++++---- Items.py | 6 ++-- Main.py | 6 ++-- Regions.py | 8 +++--- version.py | 2 +- 6 files changed, 54 insertions(+), 58 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 2e0153f5d..2c15de0ab 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -9,8 +9,8 @@ class World(object): def __init__(self, settings): self.shuffle = 'vanilla' - self.dungeons = [] - self.regions = [] + self.dungeons = set() + self.regions = set() self.itempool = [] self.state = CollectionState(self) self._cached_locations = None @@ -18,7 +18,7 @@ def __init__(self, settings): self._region_cache = {} self._entrance_cache = {} self._location_cache = {} - self.required_locations = [] + self.required_locations = set() # dump settings directly into world's namespace # this gives the world an attribute for every setting listed in Settings.py @@ -138,16 +138,16 @@ def get_location(self, location): raise RuntimeError('No such location %s' % location) def get_items(self): - return [loc.item for loc in self.get_filled_locations()] + self.itempool + return {loc.item for loc in self.get_filled_locations()} + self.itempool def get_dungeon_items(self): - itempool = [item for dungeon in self.dungeons for item in dungeon.all_items if item.key or self.place_dungeon_items] + itempool = {item for dungeon in self.dungeons for item in dungeon.all_items if item.key or self.place_dungeon_items} for item in itempool: item.world = self return itempool def find_items(self, item): - return [location for location in self.get_locations() if location.item is not None and location.item.name == item] + return {location for location in self.get_locations() if location.item is not None and location.item.name == item} def push_item(self, location, item): if not isinstance(location, Location): @@ -164,26 +164,26 @@ def push_item(self, location, item): def get_locations(self): if self._cached_locations is None: - self._cached_locations = [] + self._cached_locations = set() for region in self.regions: - self._cached_locations.extend(region.locations) + self._cached_locations = self._cached_locations.union(region.locations) return self._cached_locations def get_unfilled_locations(self): - return [location for location in self.get_locations() if location.item is None] + return {location for location in self.get_locations() if location.item is None} def get_filled_locations(self): - return [location for location in self.get_locations() if location.item is not None] + return {location for location in self.get_locations() if location.item is not None} def get_reachable_locations(self, state=None): if state is None: state = self.state - return [location for location in self.get_locations() if state.can_reach(location)] + return {location for location in self.get_locations() if state.can_reach(location)} def get_placeable_locations(self, state=None): if state is None: state = self.state - return [location for location in self.get_locations() if location.item is None and state.can_reach(location)] + return {location for location in self.get_locations() if location.item is None and state.can_reach(location)} def unlocks_new_location(self, item): temp_state = self.state.copy() @@ -229,7 +229,7 @@ def __init__(self, parent): self.location_cache = {} self.entrance_cache = {} self.recursion_count = 0 - self.collected_locations = [] + self.collected_locations = set() def clear_cached_unreachable(self): # we only need to invalidate results which were False, places we could reach before we can still reach after adding more items @@ -436,16 +436,16 @@ def get_states_with_items(base_state_list, itempool): @staticmethod def collect_locations(state_list): # Get all item locations in the worlds - item_locations = [location for state in state_list for location in state.world.get_filled_locations() if location.item.advancement] + item_locations = {location for state in state_list for location in state.world.get_filled_locations() if location.item.advancement} # will loop if there is more items opened up in the previous iteration. Always run once reachable_items_locations = True while reachable_items_locations: # get reachable new items locations - reachable_items_locations = [location for location in item_locations if location.name not in state_list[location.world.id].collected_locations and state_list[location.world.id].can_reach(location)] + reachable_items_locations = {location for location in item_locations if location.name not in state_list[location.world.id].collected_locations and state_list[location.world.id].can_reach(location)} for location in reachable_items_locations: # Mark the location collected in the state world it exists in - state_list[location.world.id].collected_locations.append(location.name) + state_list[location.world.id].collected_locations.add(location.name) # Collect the item for the state world it is for state_list[location.item.world.id].collect(location.item) @@ -456,13 +456,13 @@ def collect_locations(state_list): @staticmethod def remove_locations(state_list): # Get all item locations in the worlds - item_locations = [location for state in state_list for location in state.world.get_filled_locations() if location.item.advancement] + item_locations = {location for state in state_list for location in state.world.get_filled_locations() if location.item.advancement} # will loop if there is more items removed in the previous iteration. Always run once unreachable_items_locations = True while unreachable_items_locations: # get unreachable new items locations - unreachable_items_locations = [location for location in item_locations if location.name in state_list[location.world.id].collected_locations and not state_list[location.world.id].can_reach(location)] + unreachable_items_locations = {location for location in item_locations if location.name in state_list[location.world.id].collected_locations and not state_list[location.world.id].can_reach(location)} for location in unreachable_items_locations: # Mark the location uncollected in the state world it exists in state_list[location.world.id].collected_locations.remove(location.name) @@ -501,15 +501,15 @@ def update_required_items(worlds): state_list = [CollectionState(world) for world in worlds] CollectionState.collect_locations(state_list) - item_locations = [] + item_locations = set() if not worlds[0].spoiler.playthrough: - item_locations = [location for world in worlds for location in world.get_filled_locations() - if location.item.advancement and location.item.type != 'Event' and not location.event and (worlds[0].settings.keysanity or not location.item.key)] + item_locations = {location for world in worlds for location in world.get_filled_locations() + if location.item.advancement and location.item.type != 'Event' and not location.event and (worlds[0].settings.keysanity or not location.item.key)} else: - item_locations = [location for _,sphere in worlds[0].spoiler.playthrough.items() for location in sphere - if location.item.type != 'Event' and not location.event and (worlds[0].settings.keysanity or not location.item.key)] + item_locations = {location for _,sphere in worlds[0].spoiler.playthrough.items() for location in sphere + if location.item.type != 'Event' and not location.event and (worlds[0].settings.keysanity or not location.item.key)} - required_locations = [] + required_locations = set() for location in item_locations: old_item = location.item new_state_list = [state.copy() for state in state_list] @@ -519,11 +519,11 @@ def update_required_items(worlds): CollectionState.remove_locations(new_state_list) if not CollectionState.can_beat_game(new_state_list): - required_locations.append(location) + required_locations.add(location) location.item = old_item for world in worlds: - world.spoiler.required_locations = [location for location in required_locations if location.world.id == world.id] + world.spoiler.required_locations = {location for location in required_locations if location.world.id == world.id} @unique @@ -544,9 +544,9 @@ class Region(object): def __init__(self, name, type): self.name = name self.type = type - self.entrances = [] - self.exits = [] - self.locations = [] + self.entrances = set() + self.exits = set() + self.locations = set() self.dungeon = None self.world = None self.spot_type = 'Region' @@ -597,7 +597,7 @@ def connect(self, region, addresses=None, target=None, vanilla=None): self.target = target self.addresses = addresses self.vanilla = vanilla - region.entrances.append(self) + region.entrances.add(self) def __str__(self): return str(self.__unicode__()) @@ -610,21 +610,21 @@ class Dungeon(object): def __init__(self, name, regions, boss_key, small_keys, dungeon_items): self.name = name - self.regions = regions + self.regions = set(regions) self.boss_key = boss_key self.small_keys = small_keys self.dungeon_items = dungeon_items @property def keys(self): - return self.small_keys + ([self.boss_key] if self.boss_key else []) + return self.small_keys.union({self.boss_key} if self.boss_key else set()) @property def all_items(self): - return self.dungeon_items + self.keys + return self.dungeon_items.union(self.keys) def is_dungeon_item(self, item): - return item.name in [dungeon_item.name for dungeon_item in self.all_items] + return item.name in {dungeon_item.name for dungeon_item in self.all_items} def __str__(self): return str(self.__unicode__()) @@ -712,20 +712,16 @@ class Spoiler(object): def __init__(self, world): self.world = world - self.entrances = [] self.playthrough = {} self.locations = {} self.metadata = {} - self.required_locations = {} - - def set_entrance(self, entrance, exit, direction): - self.entrances.append(OrderedDict([('entrance', entrance), ('exit', exit), ('direction', direction)])) + self.required_locations = set() def parse_data(self): spoiler_locations = [] for location in self.world.get_locations(): - if location.item.name not in ['Gold Skulltulla Token', 'Epona', 'Triforce', 'Fairy Ocarina', 'Ocarina of Time', 'Zeldas Letter', 'Master Sword', - 'Magic Bean', 'Gerudo Membership Card', 'Forest Trial Clear', 'Fire Trial Clear', 'Water Trial Clear', 'Shadow Trial Clear', 'Spirit Trial Clear', 'Light Trial Clear']: + if location.item.name not in {'Gold Skulltulla Token', 'Epona', 'Triforce', 'Fairy Ocarina', 'Ocarina of Time', 'Zeldas Letter', 'Master Sword', + 'Magic Bean', 'Gerudo Membership Card', 'Forest Trial Clear', 'Fire Trial Clear', 'Water Trial Clear', 'Shadow Trial Clear', 'Spirit Trial Clear', 'Light Trial Clear'}: spoiler_locations.append(location) sort_order = {"Song": 0, "Boss": -1} spoiler_locations.sort(key=lambda item: sort_order.get(item.type, 1)) diff --git a/Dungeons.py b/Dungeons.py index e1b6194f7..e24b019d4 100644 --- a/Dungeons.py +++ b/Dungeons.py @@ -11,18 +11,18 @@ def make_dungeon(name, dungeon_regions, boss_key, small_keys, dungeon_items): world.get_region(region).dungeon = dungeon return dungeon - DT = make_dungeon('Deku Tree', ['Deku Tree Lobby', 'Deku Tree Slingshot Room', 'Deku Tree Boss Room'], None, [], ItemFactory(['Map (Deku Tree)', 'Compass (Deku Tree)'])) - DC = make_dungeon('Dodongos Cavern', ['Dodongos Cavern Beginning', 'Dodongos Cavern Lobby', 'Dodongos Cavern Climb', 'Dodongos Cavern Far Bridge', 'Dodongos Cavern Boss Area'], None, [], ItemFactory(['Map (Dodongos Cavern)', 'Compass (Dodongos Cavern)'])) - JB = make_dungeon('Jabu Jabus Belly', ['Jabu Jabus Belly Beginning', 'Jabu Jabus Belly Main', 'Jabu Jabus Belly Depths', 'Jabu Jabus Belly Boss Area'], None, [], ItemFactory(['Map (Jabu Jabus Belly)', 'Compass (Jabu Jabus Belly)'])) + DT = make_dungeon('Deku Tree', ['Deku Tree Lobby', 'Deku Tree Slingshot Room', 'Deku Tree Boss Room'], None, set(), ItemFactory(['Map (Deku Tree)', 'Compass (Deku Tree)'])) + DC = make_dungeon('Dodongos Cavern', ['Dodongos Cavern Beginning', 'Dodongos Cavern Lobby', 'Dodongos Cavern Climb', 'Dodongos Cavern Far Bridge', 'Dodongos Cavern Boss Area'], None, set(), ItemFactory(['Map (Dodongos Cavern)', 'Compass (Dodongos Cavern)'])) + JB = make_dungeon('Jabu Jabus Belly', ['Jabu Jabus Belly Beginning', 'Jabu Jabus Belly Main', 'Jabu Jabus Belly Depths', 'Jabu Jabus Belly Boss Area'], None, set(), ItemFactory(['Map (Jabu Jabus Belly)', 'Compass (Jabu Jabus Belly)'])) FoT = make_dungeon('Forest Temple', ['Forest Temple Lobby', 'Forest Temple NW Outdoors', 'Forest Temple NE Outdoors', 'Forest Temple Falling Room', 'Forest Temple Block Push Room', 'Forest Temple Straightened Hall', 'Forest Temple Outside Upper Ledge', 'Forest Temple Bow Region', 'Forest Temple Boss Region'], ItemFactory('Boss Key (Forest Temple)'), ItemFactory(['Small Key (Forest Temple)'] * 5), ItemFactory(['Map (Forest Temple)', 'Compass (Forest Temple)'])) BW = make_dungeon('Bottom of the Well', ['Bottom of the Well'], None, ItemFactory(['Small Key (Bottom of the Well)'] * 3), ItemFactory(['Map (Bottom of the Well)', 'Compass (Bottom of the Well)'])) FiT = make_dungeon('Fire Temple', ['Fire Temple Lower', 'Fire Temple Middle', 'Fire Temple Upper'], ItemFactory('Boss Key (Fire Temple)'), ItemFactory(['Small Key (Fire Temple)'] * 8), ItemFactory(['Map (Fire Temple)', 'Compass (Fire Temple)'])) - IC = make_dungeon('Ice Cavern', ['Ice Cavern'], None, [], ItemFactory(['Map (Ice Cavern)', 'Compass (Ice Cavern)'])) + IC = make_dungeon('Ice Cavern', ['Ice Cavern'], None, set(), ItemFactory(['Map (Ice Cavern)', 'Compass (Ice Cavern)'])) WT = make_dungeon('Water Temple', ['Water Temple Lobby', 'Water Temple Middle Water Level', 'Water Temple Dark Link Region'], ItemFactory('Boss Key (Water Temple)'), ItemFactory(['Small Key (Water Temple)'] * 6), ItemFactory(['Map (Water Temple)', 'Compass (Water Temple)'])) ShT = make_dungeon('Shadow Temple', ['Shadow Temple Beginning', 'Shadow Temple First Beamos', 'Shadow Temple Huge Pit', 'Shadow Temple Wind Tunnel', 'Shadow Temple Beyond Boat'], ItemFactory('Boss Key (Shadow Temple)'), ItemFactory(['Small Key (Shadow Temple)'] * 5), ItemFactory(['Map (Shadow Temple)', 'Compass (Shadow Temple)'])) - GTG = make_dungeon('Gerudo Training Grounds', ['Gerudo Training Grounds Lobby', 'Gerudo Training Grounds Central Maze', 'Gerudo Training Grounds Central Maze Right', 'Gerudo Training Grounds Lava Room', 'Gerudo Training Grounds Hammer Room', 'Gerudo Training Grounds Eye Statue Lower', 'Gerudo Training Grounds Eye Statue Upper', 'Gerudo Training Grounds Heavy Block Room'], None, ItemFactory(['Small Key (Gerudo Training Grounds)'] * 9), []) + GTG = make_dungeon('Gerudo Training Grounds', ['Gerudo Training Grounds Lobby', 'Gerudo Training Grounds Central Maze', 'Gerudo Training Grounds Central Maze Right', 'Gerudo Training Grounds Lava Room', 'Gerudo Training Grounds Hammer Room', 'Gerudo Training Grounds Eye Statue Lower', 'Gerudo Training Grounds Eye Statue Upper', 'Gerudo Training Grounds Heavy Block Room'], None, ItemFactory(['Small Key (Gerudo Training Grounds)'] * 9), set()) SpT = make_dungeon('Spirit Temple', ['Spirit Temple Lobby', 'Child Spirit Temple', 'Early Adult Spirit Temple', 'Spirit Temple Central Chamber', 'Spirit Temple Beyond Central Locked Door', 'Spirit Temple Beyond Final Locked Door'], ItemFactory('Boss Key (Spirit Temple)'), ItemFactory(['Small Key (Spirit Temple)'] * 5), ItemFactory(['Map (Spirit Temple)', 'Compass (Spirit Temple)'])) - GC = make_dungeon('Ganons Castle', ['Ganons Castle Lobby', 'Ganons Castle Forest Trial', 'Ganons Castle Fire Trial', 'Ganons Castle Water Trial', 'Ganons Castle Shadow Trial', 'Ganons Castle Spirit Trial', 'Ganons Castle Light Trial', 'Ganons Castle Tower'], ItemFactory('Boss Key (Ganons Castle)'), ItemFactory(['Small Key (Ganons Castle)'] * 2), []) + GC = make_dungeon('Ganons Castle', ['Ganons Castle Lobby', 'Ganons Castle Forest Trial', 'Ganons Castle Fire Trial', 'Ganons Castle Water Trial', 'Ganons Castle Shadow Trial', 'Ganons Castle Spirit Trial', 'Ganons Castle Light Trial', 'Ganons Castle Tower'], ItemFactory('Boss Key (Ganons Castle)'), ItemFactory(['Small Key (Ganons Castle)'] * 2), set()) world.dungeons = [DT, DC, JB, FoT, BW, FiT, IC, WT, ShT, GTG, SpT, GC] \ No newline at end of file diff --git a/Items.py b/Items.py index 53a554bfb..f80fb9fdb 100644 --- a/Items.py +++ b/Items.py @@ -4,7 +4,7 @@ def ItemFactory(items): - ret = [] + ret = set() singleton = False if isinstance(items, str): items = [items] @@ -12,13 +12,13 @@ def ItemFactory(items): for item in items: if item in item_table: advancement, priority, type, code, index = item_table[item] - ret.append(Item(item, advancement, priority, type, code, index)) + ret.add(Item(item, advancement, priority, type, code, index)) else: logging.getLogger('').warning('Unknown Item: %s', item) return None if singleton: - return ret[0] + return ret.pop() return ret diff --git a/Main.py b/Main.py index 3738b0562..aa815577f 100644 --- a/Main.py +++ b/Main.py @@ -128,7 +128,7 @@ def create_playthrough(worlds): reachable_items_locations = [location for location in item_locations if location.name not in state_list[location.world.id].collected_locations and state_list[location.world.id].can_reach(location)] for location in reachable_items_locations: # Mark the location collected in the state world it exists in - state_list[location.world.id].collected_locations.append(location.name) + state_list[location.world.id].collected_locations.add(location.name) # Collect the item for the state world it is for state_list[location.item.world.id].collect(location.item) if reachable_items_locations: @@ -137,7 +137,7 @@ def create_playthrough(worlds): # in the second phase, we cull each sphere such that the game is still beatable, reducing each # range of influence to the bare minimum required inside it. Effectively creates a min play for num, sphere in reversed(list(enumerate(collection_spheres))): - to_delete = [] + to_delete = set() for location in sphere: # we remove the item at location and check if game is still beatable logging.getLogger('').debug('Checking if %s is required to beat the game.', location.item.name) @@ -148,7 +148,7 @@ def create_playthrough(worlds): state_list[old_item.world.id].remove(old_item) CollectionState.remove_locations(state_list) if CollectionState.can_beat_game(state_list, False): - to_delete.append(location) + to_delete.add(location) else: # still required, got to keep it around state_list = old_state_list diff --git a/Regions.py b/Regions.py index f6c65ca7c..f6597929d 100644 --- a/Regions.py +++ b/Regions.py @@ -191,15 +191,15 @@ def create_grotto_region(name, locations=None, exits=None): def _create_region(name, type, locations=None, exits=None): ret = Region(name, type) if locations is None: - locations = [] + locations = set() if exits is None: - exits = [] + exits = set() for exit in exits: - ret.exits.append(Entrance(exit, ret)) + ret.exits.add(Entrance(exit, ret)) for location in locations: address, address2, default, type, scene, hint = location_table[location] - ret.locations.append(Location(location, address, address2, default, type, scene, hint, ret)) + ret.locations.add(Location(location, address, address2, default, type, scene, hint, ret)) return ret location_table = {'Kokiri Sword Chest': (0x20A6142, None, 0x04E0, 'Chest', 0x55, 'Kokiri Forest'), diff --git a/version.py b/version.py index fb3dc2bab..501902d45 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.16 f.LUM' \ No newline at end of file +__version__ = '2.13.17 f.LUM' \ No newline at end of file From f26d1c8334aadcbd01909fabffd1e17d279bb472 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Fri, 20 Jul 2018 00:55:20 -0400 Subject: [PATCH 185/755] fix determining always required item list --- BaseClasses.py | 13 +++++++------ version.py | 2 +- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 2c15de0ab..b6706984c 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -69,6 +69,7 @@ def copy(self): item.world = location.item.world ret.get_location(location.name).item = item item.location = ret.get_location(location.name) + item.location.event = location.event # copy remaining itempool. No item in itempool should have an assigned location for item in self.itempool: @@ -502,12 +503,12 @@ def update_required_items(worlds): CollectionState.collect_locations(state_list) item_locations = set() - if not worlds[0].spoiler.playthrough: + if worlds[0].spoiler.playthrough: + item_locations = {location for _,sphere in worlds[0].spoiler.playthrough.items() for location in sphere + if location.item.type != 'Event' and not location.event and (worlds[0].settings.keysanity or not location.item.key)} + else: item_locations = {location for world in worlds for location in world.get_filled_locations() if location.item.advancement and location.item.type != 'Event' and not location.event and (worlds[0].settings.keysanity or not location.item.key)} - else: - item_locations = {location for _,sphere in worlds[0].spoiler.playthrough.items() for location in sphere - if location.item.type != 'Event' and not location.event and (worlds[0].settings.keysanity or not location.item.key)} required_locations = set() for location in item_locations: @@ -518,7 +519,7 @@ def update_required_items(worlds): new_state_list[old_item.world.id].remove(old_item) CollectionState.remove_locations(new_state_list) - if not CollectionState.can_beat_game(new_state_list): + if not CollectionState.can_beat_game(new_state_list, False): required_locations.add(location) location.item = old_item @@ -752,6 +753,6 @@ def to_file(self, filename): outfile.write('\n\nAlways Required Locations:\n\n') if self.settings.world_count > 1: - outfile.write('\n'.join(['%s: %s [Player %d]' % (location.name, location.item.name, location.item.world.id) for location in self.required_locations])) + outfile.write('\n'.join(['%s: %s [Player %d]' % (location.name, location.item.name, location.item.world.id + 1) for location in self.required_locations])) else: outfile.write('\n'.join(['%s: %s' % (location.name, location.item.name) for location in self.required_locations])) diff --git a/version.py b/version.py index 501902d45..4bc350fef 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.17 f.LUM' \ No newline at end of file +__version__ = '2.13.18 f.LUM' \ No newline at end of file From 25145237dcb7462edb1fe77ed3cf2b0b03635416 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Fri, 20 Jul 2018 01:05:20 -0400 Subject: [PATCH 186/755] WINNER! Piece of Heart has fast animation to match the normal PoH --- Rom.py | 1 + version.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Rom.py b/Rom.py index 990798439..4d50af153 100644 --- a/Rom.py +++ b/Rom.py @@ -1175,6 +1175,7 @@ def write_save_table(rom): 0x42: 0x02, #0xFE #Small Key 0x48: 0xF7, #0x09 #Recovery Heart 0x4F: 0xED, #0x13 #Heart Container + 0x76: 0xEC, #0x14 #WINNER! Piece of Heart } for item_id, gfx_id in chestAnimations.items(): rom.write_byte(0xBEEE8E + (item_id * 6) + 2, gfx_id) diff --git a/version.py b/version.py index fd2601e96..2458c5d45 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.12 f.LUM' +__version__ = '2.13.13 f.LUM' From c36c0ad7bb19ad09fa4824d2fd5909d05494c3e8 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Fri, 20 Jul 2018 02:34:35 -0400 Subject: [PATCH 187/755] Fix fire arrow and GCZL chest positions --- ASM/src/cutscenes.asm | 5 +++++ ASM/src/hacks.asm | 24 ++++++++++++++++++++++++ Rom.py | 8 +++----- data/base2current.json | 2 +- version.py | 2 +- 5 files changed, 34 insertions(+), 7 deletions(-) diff --git a/ASM/src/cutscenes.asm b/ASM/src/cutscenes.asm index 8db70fdf7..44ebfe162 100644 --- a/ASM/src/cutscenes.asm +++ b/ASM/src/cutscenes.asm @@ -73,3 +73,8 @@ override_fairy_ocarina_cutscene: jr ra nop +fire_arrow_chest_rotation: + li at, 0x4000 + sw at, 0x1C (sp) + jr ra + nop \ No newline at end of file diff --git a/ASM/src/hacks.asm b/ASM/src/hacks.asm index 482448590..ca701b02a 100755 --- a/ASM/src/hacks.asm +++ b/ASM/src/hacks.asm @@ -320,3 +320,27 @@ .org 0xAE6E48 jal override_fairy_ocarina_cutscene addu t8,t0,t7 + +;================================================================================================== +; Fire Arrow Chest +;================================================================================================== + +; Don't require water temple +; bne t9,at,+0x0024 +.org 0xE9E1D8 + nop + +; Load chest contents +; li a2, 0x0007 +.org 0xE9E1F0 + li a2, 0x5B08 + +; Load actor type +; li a2, 0x010f +.org 0xE9E200 + li a2, 0x000A + +; Load actor rotation +; sw zero, 0x1C (sp) +.org 0xE9E20C + jal fire_arrow_chest_rotation diff --git a/Rom.py b/Rom.py index 4d50af153..c37982306 100644 --- a/Rom.py +++ b/Rom.py @@ -679,11 +679,6 @@ def patch_rom(world, rom): # Fix Spirit Temple to check for different rewards for scene rom.write_bytes(0xCA3EA2, [0x00, 0x00, 0x25, 0x4A, 0x00, 0x08]) - # Fire Arrows now in a chest, always spawn - rom.write_bytes(0xE9E202, [0x00, 0x0A]) - rom.write_bytes(0xE9E1F2, [0x5B, 0x08]) - rom.write_bytes(0xE9E1D8, [0x00, 0x00, 0x00, 0x00]) - # Fix Biggoron to check a different flag. rom.write_byte(0xED329B, 0x72) rom.write_byte(0xED43E7, 0x72) @@ -1184,6 +1179,9 @@ def write_save_table(rom): if world.correct_chest_sizes: update_chest_sizes(rom, override_table) + # Move Ganon's Castle's Zelda's Lullaby Chest back so is reachable if large + rom.write_int16(0x321B176, 0xFC40) # original 0xFC48 + # give dungeon items the correct messages message_patch_for_dungeon_items(rom, messages, shop_items) diff --git a/data/base2current.json b/data/base2current.json index 0af2c7d0e..511d4c35a 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -1 +1 @@ -[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 95]}, {"11325064": [12, 16, 11, 65, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 11, 156]}, {"11427312": [12, 16, 12, 69]}, {"11431496": [12, 16, 11, 73, 1, 15, 192, 33]}, {"11562028": [12, 16, 12, 102]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 12, 85]}, {"11882076": [12, 16, 12, 50]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 11, 123, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 11, 130, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 11, 137, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 11]}, {"12287068": [0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 47]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 9, 207]}, {"12427480": [12, 16, 10, 25]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 29]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 11, 81, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 59]}, {"12491480": [12, 16, 10, 68]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 22]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 11, 144]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 140, 73]}, {"14149503": [164]}, {"14149512": [2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149856": [87]}, {"14149859": [15]}, {"14357459": [118]}, {"14624335": [118]}, {"14872723": [52]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 9, 236, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 9, 236, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057408": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058464": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 104, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 132, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 172, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 212, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 252, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 36, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 64, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 92, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 120, 83, 65, 56, 67]}, {"55058613": [235, 21, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 55, 68]}, {"55058629": [235, 22, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 57, 69]}, {"55058645": [235, 23, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 63, 71]}, {"55058677": [244, 25, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 10, 6]}, {"55058757": [185, 1, 3, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 28]}, {"55058773": [185, 1, 4, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 29]}, {"55058789": [185, 1, 5, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 30]}, {"55058805": [185, 1, 6, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 42]}, {"55058821": [185, 1, 7, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 97]}, {"55058837": [185, 1, 10, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 98]}, {"55058853": [184, 2]}, {"55058856": [128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 99]}, {"55058869": [184, 2, 1, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 100]}, {"55058885": [184, 2, 2, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 101]}, {"55058901": [184, 2, 3, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 124]}, {"55058917": [184, 2, 4, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 125]}, {"55058933": [184, 2, 5, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 126]}, {"55058949": [184, 2, 6, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 127]}, {"55058965": [184, 2, 7, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 162]}, {"55058981": [184, 2, 8, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 135]}, {"55058997": [184, 2, 9, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 136]}, {"55059013": [200, 4]}, {"55059016": [128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 137]}, {"55059029": [200, 4, 1, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 138]}, {"55059045": [200, 4, 2, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 139]}, {"55059061": [200, 4, 3, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 140]}, {"55059077": [200, 4, 4, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 142]}, {"55059093": [200, 4, 5, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 143]}, {"55059109": [200, 4, 6, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 163]}, {"55059125": [200, 4, 7, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 165]}, {"55059141": [200, 4, 8, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 146]}, {"55059157": [200, 4, 9, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 2, 147]}, {"55059173": [170, 3, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 148]}, {"55059189": [170, 4, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 149]}, {"55059205": [170, 5, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 166]}, {"55059221": [170, 6, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 169]}, {"55059237": [170, 7, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 155]}, {"55059253": [170, 8, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 159]}, {"55059269": [170, 11, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 160]}, {"55059285": [170, 12, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 161]}, {"55059301": [170, 13, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 61, 67, 12]}, {"55059317": [248, 255, 255, 128, 64, 37, 236, 128, 64, 36, 96, 77, 131, 247, 85]}, {"55059333": [183, 255, 255, 128, 64, 37, 228, 128, 64, 36, 96, 77, 146, 219, 230]}, {"55059349": [216, 255, 255, 128, 64, 37, 228, 128, 64, 37, 172, 77, 147, 218, 230]}, {"55059365": [216, 255, 255, 128, 64, 37, 228, 128, 64, 37, 172, 77, 148, 217, 230]}, {"55059381": [216, 255, 255, 128, 64, 37, 228, 128, 64, 37, 172, 77, 142, 224, 50]}, {"55059397": [206, 255, 255, 128, 64, 37, 228, 128, 64, 37, 200, 77, 143, 224, 50]}, {"55059413": [206, 255, 255, 128, 64, 37, 228, 128, 64, 37, 200, 77, 144, 224, 50]}, {"55059429": [206, 255, 255, 128, 64, 37, 228, 128, 64, 37, 200, 77, 140, 238, 52]}, {"55059445": [187, 255, 255, 128, 64, 37, 228, 128, 64, 36, 96, 77, 141, 238, 52]}, {"55059461": [187, 255, 255, 128, 64, 37, 228, 128, 64, 36, 96, 79, 65, 19, 233]}, {"55059477": [189, 255, 255, 128, 64, 38, 124, 128, 64, 36, 96, 79, 65, 30, 228]}, {"55059493": [205, 255, 255, 128, 64, 38, 156, 128, 64, 37, 148, 79, 65, 31, 232]}, {"55059509": [205, 255, 255, 128, 64, 38, 188, 128, 64, 36, 96, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 38, 228, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 39, 44, 128, 64, 39, 16, 3, 224]}, {"55059555": [8, 52, 162]}, {"55059560": [144, 136]}, {"55059563": [125, 52, 1]}, {"55059567": [255, 17, 1]}, {"55059571": [2, 52, 2]}, {"55059575": [8, 52, 2]}, {"55059579": [9, 3, 224]}, {"55059583": [8]}, {"55059588": [144, 136]}, {"55059591": [163, 49, 8]}, {"55059595": [192, 17]}, {"55059599": [5, 52, 2]}, {"55059603": [84, 52, 1]}, {"55059607": [64, 17, 1]}, {"55059611": [2, 52, 2]}, {"55059615": [53, 52, 2]}, {"55059619": [54, 3, 224]}, {"55059623": [8]}, {"55059628": [144, 136]}, {"55059631": [163, 49, 8]}, {"55059635": [24, 17]}, {"55059639": [5, 52, 2]}, {"55059643": [50, 52, 1]}, {"55059647": [8, 17, 1]}, {"55059651": [2, 52, 2]}, {"55059655": [51, 52, 2]}, {"55059659": [52, 3, 224]}, {"55059663": [8]}, {"55059668": [144, 136]}, {"55059671": [163, 49, 8]}, {"55059675": [3, 17]}, {"55059679": [5, 52, 2]}, {"55059683": [4, 52, 1]}, {"55059687": [1, 17, 1]}, {"55059691": [2, 52, 2]}, {"55059695": [48, 52, 2]}, {"55059699": [49, 3, 224]}, {"55059703": [8]}, {"55059708": [144, 136]}, {"55059711": [162, 49, 8]}, {"55059715": [192, 17]}, {"55059719": [5, 52, 2]}, {"55059723": [5, 52, 1]}, {"55059727": [64, 17, 1]}, {"55059731": [2, 52, 2]}, {"55059735": [96, 52, 2]}, {"55059739": [123, 3, 224]}, {"55059743": [8]}, {"55059748": [144, 136]}, {"55059751": [162, 49, 8]}, {"55059755": [48, 17]}, {"55059759": [2, 52, 2]}, {"55059763": [69, 52, 2]}, {"55059767": [70, 3, 224]}, {"55059771": [8]}, {"55059776": [144, 136]}, {"55059779": [162, 49, 8]}, {"55059783": [6, 17]}, {"55059787": [2, 52, 2]}, {"55059791": [55, 52, 2]}, {"55059795": [56, 3, 224]}, {"55059799": [8]}, {"55059804": [144, 136]}, {"55059807": [161, 49, 8]}, {"55059811": [32, 17]}, {"55059815": [2, 52, 2]}, {"55059819": [121, 52, 2]}, {"55059823": [122, 3, 224]}, {"55059827": [8]}, {"55059832": [144, 136]}, {"55059835": [161, 49, 8]}, {"55059839": [4, 17]}, {"55059843": [2, 52, 2]}, {"55059847": [119, 52, 2]}, {"55059851": [120, 3, 224]}, {"55059855": [8]}, {"55059860": [144, 136]}, {"55059863": [50, 17]}, {"55059867": [2, 52, 2]}, {"55059871": [192, 52, 2]}, {"55059875": [193, 3, 224]}, {"55059879": [8]}, {"55059884": [144, 136]}, {"55059887": [163, 49, 8]}, {"55059891": [3, 17]}, {"55059895": [2, 52, 2]}, {"55059899": [77, 52, 162]}, {"55059904": [3, 224]}, {"55059907": [8]}, {"55059912": [144, 136]}, {"55059915": [163, 49, 8]}, {"55059919": [24, 17]}, {"55059923": [2, 52, 2]}, {"55059927": [77, 52, 162]}, {"55059932": [3, 224]}, {"55059935": [8]}, {"55059940": [3, 224]}, {"55059943": [8]}, {"55059948": [52, 8]}, {"55059951": [1, 160, 136]}, {"55059955": [62, 3, 224]}, {"55059959": [8]}, {"55059964": [36, 136]}, {"55059967": [134, 36, 9, 255, 255, 37, 41]}, {"55059975": [1, 52, 1]}, {"55059979": [3]}, {"55059981": [41, 8, 42, 20, 32]}, {"55059987": [7]}, {"55059992": [1, 9, 80, 33, 145, 75]}, {"55060000": [52, 1]}, {"55060003": [255, 21, 97, 255, 247]}, {"55060012": [161, 69]}, {"55060016": [3, 224]}, {"55060019": [8]}, {"55060024": [36, 136]}, {"55060027": [168, 1, 6, 64, 33, 145, 9]}, {"55060036": [1, 37, 72, 37, 161, 9]}, {"55060044": [3, 224]}, {"55060047": [8]}, {"55060052": [36, 136]}, {"55060055": [188, 1, 5, 64, 33, 129, 9]}, {"55060064": [5, 33]}, {"55060067": [2]}, {"55060072": [52, 9]}, {"55060076": [37, 41]}, {"55060079": [1, 161, 9]}, {"55060084": [3, 224]}, {"55060087": [8]}, {"55060092": [52, 8]}, {"55060095": [1, 160, 136]}, {"55060099": [61, 52, 8]}, {"55060103": [20, 160, 136]}, {"55060107": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060119": [8]}, {"55060124": [52, 8]}, {"55060127": [1, 160, 136]}, {"55060131": [50, 160, 136]}, {"55060135": [58, 52, 8]}, {"55060139": [48, 164, 136, 19, 244, 160, 136]}, {"55060147": [51, 3, 224]}, {"55060151": [8]}, {"55060156": [52, 8]}, {"55060159": [2, 160, 136]}, {"55060163": [50, 52, 8]}, {"55060167": [1, 160, 136]}, {"55060171": [58, 160, 136]}, {"55060175": [60, 52, 8]}, {"55060179": [96, 164, 136, 19, 244, 160, 136]}, {"55060187": [51, 3, 224]}, {"55060191": [8]}, {"55060196": [144, 136]}, {"55060199": [124, 52, 1]}, {"55060203": [255, 17, 1]}, {"55060207": [6, 52, 2]}, {"55060211": [107, 144, 136]}, {"55060215": [148, 45, 8]}, {"55060219": [6, 17]}, {"55060223": [2, 52, 2]}, {"55060227": [106, 52, 2]}, {"55060231": [3, 3, 224]}, {"55060235": [8]}, {"55060240": [144, 136]}, {"55060243": [123, 52, 1]}, {"55060247": [255, 17, 1]}, {"55060251": [2, 52, 162]}, {"55060256": [52, 2]}, {"55060259": [12, 3, 224]}, {"55060263": [8]}, {"55060268": [52, 8]}, {"55060271": [7, 160, 136]}, {"55060275": [123, 3, 224]}, {"55060279": [8]}, {"55060284": [48, 132]}, {"55060287": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060299": [140, 16, 129]}, {"55060303": [22, 145, 2]}, {"55060307": [117, 52, 1]}, {"55060311": [141, 16, 129]}, {"55060315": [19, 145, 2]}, {"55060319": [117, 16, 128]}, {"55060323": [17, 145, 2]}, {"55060327": [116, 52, 1]}, {"55060331": [138, 16, 129]}, {"55060335": [14, 145, 2]}, {"55060339": [116, 52, 1]}, {"55060343": [139, 16, 129]}, {"55060347": [11, 145, 2]}, {"55060351": [116, 52, 1]}, {"55060355": [88, 16, 129]}, {"55060359": [8, 52, 2]}, {"55060364": [52, 1]}, {"55060367": [120, 16, 129]}, {"55060371": [5, 52, 2]}, {"55060376": [52, 1]}, {"55060379": [121, 16, 129]}, {"55060383": [2, 52, 2]}, {"55060388": [52, 2]}, {"55060391": [255, 3, 224]}, {"55060395": [8]}, {"55060400": [39, 189, 255, 224, 175, 191]}, {"55060407": [16, 175, 176]}, {"55060411": [20, 12, 16, 10, 166]}, {"55060420": [4, 65]}, {"55060423": [2]}, {"55060428": [52, 2]}, {"55060431": [91]}, {"55060433": [64, 32, 33, 12, 16, 10, 245]}, {"55060444": [16, 96]}, {"55060447": [15, 175, 163]}, {"55060451": [28, 60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060463": [6, 144, 102]}, {"55060467": [7, 140, 105]}, {"55060471": [8, 1, 32, 248, 9]}, {"55060480": [143, 163]}, {"55060483": [28, 144, 101]}, {"55060487": [1, 12, 1, 191, 115, 2, 32, 32, 33, 143, 163]}, {"55060499": [28, 144, 101]}, {"55060503": [3, 16]}, {"55060507": [10, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060519": [6]}, {"55060521": [74]}, {"55060523": [24]}, {"55060526": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060536": [12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060547": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060558": [48, 33, 143, 191]}, {"55060563": [16, 143, 176]}, {"55060567": [20, 39, 189]}, {"55060571": [32, 3, 224]}, {"55060575": [8]}, {"55060580": [143, 166]}, {"55060583": [48, 132, 197]}, {"55060587": [4, 8, 16, 10, 33]}, {"55060596": [143, 185]}, {"55060599": [44, 135, 37]}, {"55060603": [4, 8, 16, 10, 33]}, {"55060612": [60, 10, 128, 64, 37, 74, 32]}, {"55060620": [141, 75]}, {"55060623": [12, 17, 96]}, {"55060627": [2]}, {"55060632": [149, 69]}, {"55060635": [4, 60, 10, 128, 64, 37, 74, 32, 16, 161, 64]}, {"55060648": [60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060660": [3, 224]}, {"55060663": [8]}, {"55060668": [60, 8, 128, 64, 37, 8, 32]}, {"55060676": [141, 9]}, {"55060679": [12, 17, 32]}, {"55060683": [2]}, {"55060688": [129, 3]}, {"55060691": [2]}, {"55060693": [3, 15, 195]}, {"55060697": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55060711": [8]}, {"55060716": [144, 69]}, {"55060719": [3, 60, 8, 128, 64, 37, 8, 32]}, {"55060728": [141, 9]}, {"55060731": [12, 17, 32]}, {"55060735": [2]}, {"55060740": [145, 5]}, {"55060743": [3, 3, 224]}, {"55060747": [8]}, {"55060752": [143, 162]}, {"55060755": [36, 144, 69]}, {"55060760": [60, 8, 128, 64, 37, 8, 32]}, {"55060768": [141, 9]}, {"55060771": [12, 17, 32]}, {"55060775": [19]}, {"55060780": [145, 5]}, {"55060783": [1, 175, 164]}, {"55060788": [175, 165]}, {"55060791": [4, 175, 166]}, {"55060795": [8, 39, 189, 255, 232, 175, 191]}, {"55060803": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55060815": [6, 145, 6]}, {"55060819": [7, 141, 9]}, {"55060823": [8, 1, 32, 248, 9]}, {"55060832": [143, 191]}, {"55060835": [16, 39, 189]}, {"55060839": [24, 143, 164]}, {"55060844": [143, 165]}, {"55060847": [4, 143, 166]}, {"55060851": [8, 3, 224]}, {"55060855": [8]}, {"55060860": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55060871": [16, 175, 163]}, {"55060875": [20, 175, 191]}, {"55060879": [24, 12, 16, 10, 108]}, {"55060888": [143, 162]}, {"55060891": [16, 143, 163]}, {"55060895": [20, 143, 191]}, {"55060899": [24, 39, 189]}, {"55060903": [32, 3, 224]}, {"55060907": [8]}, {"55060912": [39, 189, 255, 232, 175, 191]}, {"55060919": [16, 60, 8, 128, 64, 37, 8, 32]}, {"55060928": [173]}, {"55060932": [173]}, {"55060935": [4, 173]}, {"55060939": [8, 173]}, {"55060943": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55060959": [42]}, {"55060965": [9, 15, 195, 1, 33, 32, 38]}, {"55060973": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 166]}, {"55060988": [4, 64]}, {"55060991": [34]}, {"55060996": [52, 68]}, {"55061000": [12, 16, 10, 245]}, {"55061008": [16, 96]}, {"55061011": [12]}, {"55061016": [60, 8, 128, 64, 37, 8, 32]}, {"55061024": [140, 105]}, {"55061028": [173, 9]}, {"55061032": [140, 105]}, {"55061035": [4, 173, 9]}, {"55061039": [4, 140, 105]}, {"55061043": [8, 173, 9]}, {"55061047": [8, 52, 9]}, {"55061051": [1, 173, 9]}, {"55061055": [12, 144, 98]}, {"55061060": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061076": [52, 1]}, {"55061079": [10, 21, 65]}, {"55061083": [6]}, {"55061088": [149, 42]}, {"55061091": [28, 49, 74, 240, 31]}, {"55061097": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061107": [28, 129, 9, 4, 36, 5, 33]}, {"55061115": [2]}, {"55061121": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061131": [16, 39, 189]}, {"55061135": [24, 3, 224]}, {"55061139": [8]}, {"55061144": [39, 189, 255, 232, 175, 191]}, {"55061151": [16, 12, 16, 10, 180]}, {"55061160": [36, 1, 255, 255, 16, 65]}, {"55061167": [4]}, {"55061172": [52, 68]}, {"55061176": [12, 16, 10, 232]}, {"55061184": [143, 191]}, {"55061187": [16, 39, 189]}, {"55061191": [24, 3, 224]}, {"55061195": [8]}, {"55061200": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061211": [164, 52, 8]}, {"55061216": [52, 137]}, {"55061220": [148, 170]}, {"55061224": [52, 1, 1, 156, 21, 65]}, {"55061231": [8]}, {"55061236": [52, 8]}, {"55061239": [3, 148, 171]}, {"55061243": [28, 49, 105]}, {"55061247": [255, 49, 98, 31]}, {"55061253": [2, 18, 2, 16]}, {"55061259": [31]}, {"55061264": [52, 1]}, {"55061267": [10, 21, 65]}, {"55061271": [14]}, {"55061276": [148, 171]}, {"55061279": [28, 52, 1]}, {"55061283": [16, 20, 65]}, {"55061287": [8]}, {"55061292": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061303": [4]}, {"55061308": [36, 2, 255, 255, 16]}, {"55061315": [21]}, {"55061320": [52, 8]}, {"55061323": [1, 49, 105]}, {"55061327": [31, 52, 1]}, {"55061331": [21, 21, 65]}, {"55061335": [12]}, {"55061340": [52, 1]}, {"55061343": [62, 16, 129]}, {"55061347": [7]}, {"55061352": [52, 1]}, {"55061355": [66, 16, 129]}, {"55061359": [4]}, {"55061364": [36, 2, 255, 255, 16]}, {"55061371": [7]}, {"55061376": [52, 8]}, {"55061379": [2, 144, 169, 1, 65]}, {"55061385": [2, 18]}, {"55061389": [72, 16, 37]}, {"55061393": [2, 18]}, {"55061397": [73, 16, 37, 3, 224]}, {"55061403": [8]}, {"55061408": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061423": [4, 141, 9]}, {"55061428": [17, 32]}, {"55061431": [5]}, {"55061437": [9, 82, 2, 21, 68, 255, 250]}, {"55061448": [49, 34]}, {"55061451": [255, 3, 224]}, {"55061455": [8]}, {"55061460": [39, 189, 255, 224, 175, 176]}, {"55061467": [16, 175, 177]}, {"55061471": [20, 175, 191]}, {"55061475": [24, 52, 130]}, {"55061480": [52, 80]}, {"55061484": [38, 8, 255, 128, 5]}, {"55061491": [18]}, {"55061496": [60, 17, 128, 64, 38, 49, 32, 32, 52, 9]}, {"55061507": [16, 1, 9]}, {"55061511": [24]}, {"55061514": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061532": [142, 40]}, {"55061535": [12, 1]}, {"55061538": [248, 9]}, {"55061544": [20, 80, 255, 239]}, {"55061552": [54, 35]}, {"55061556": [16]}, {"55061559": [2]}, {"55061564": [52, 3]}, {"55061568": [143, 176]}, {"55061571": [16, 143, 177]}, {"55061575": [20, 143, 191]}, {"55061579": [24, 39, 189]}, {"55061583": [32, 3, 224]}, {"55061587": [8]}, {"55061592": [140, 136, 29, 44, 52, 9]}, {"55061599": [1]}, {"55061601": [9, 78]}, {"55061604": [1, 9, 16, 36, 16, 64]}, {"55061611": [36]}, {"55061616": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55061631": [164, 52, 1]}, {"55061635": [61, 17, 129]}, {"55061639": [10]}, {"55061645": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55061655": [25]}, {"55061660": [52, 13]}, {"55061663": [1, 161, 141, 29, 40, 37, 74]}, {"55061671": [3, 16]}, {"55061675": [9]}, {"55061680": [52, 12]}, {"55061683": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55061699": [14]}, {"55061704": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 2, 1, 10, 64, 33, 129, 8]}, {"55061740": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061752": [52, 2]}, {"55061756": [3, 224]}, {"55061759": [8]}, {"55061764": [60, 8, 128, 64, 37, 8, 28]}, {"55061772": [129, 8]}, {"55061776": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061788": [3, 224]}, {"55061791": [8]}, {"55061796": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55061808": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061820": [3, 224]}, {"55061823": [8]}, {"55061828": [175, 164]}, {"55061831": [104, 175, 165]}, {"55061835": [108, 175, 166]}, {"55061839": [112, 175, 167]}, {"55061843": [116, 39, 189, 255, 232, 175, 163]}, {"55061851": [16, 175, 191]}, {"55061855": [20, 60, 8, 128, 64, 37, 8, 32, 16, 129, 8]}, {"55061868": [17]}, {"55061871": [14]}, {"55061876": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55061887": [1, 165, 42]}, {"55061892": [60, 9, 128, 65, 52, 10]}, {"55061899": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 108]}, {"55061928": [143, 163]}, {"55061931": [16, 143, 191]}, {"55061935": [20, 39, 189]}, {"55061939": [24, 143, 164]}, {"55061943": [104, 143, 165]}, {"55061947": [108, 143, 166]}, {"55061951": [112, 143, 167]}, {"55061955": [116, 132, 110, 19, 196, 3, 224]}, {"55061963": [8]}, {"55061968": [147, 25]}, {"55061971": [116, 52, 1]}, {"55061975": [255, 23, 33]}, {"55061979": [2]}, {"55061984": [52, 25]}, {"55061987": [44, 3, 224]}, {"55061991": [8, 167, 185]}, {"55061995": [154, 147, 44]}, {"55061999": [116, 52, 1]}, {"55062003": [255, 21, 129]}, {"55062007": [2]}, {"55062012": [52, 12]}, {"55062015": [44, 3, 224]}, {"55062019": [8]}, {"55062024": [145, 174]}, {"55062027": [116, 52, 1]}, {"55062031": [255, 21, 193]}, {"55062035": [2]}, {"55062040": [52, 14]}, {"55062043": [44, 3, 224]}, {"55062047": [8, 167, 174]}, {"55062051": [154, 145, 207]}, {"55062055": [116, 52, 1]}, {"55062059": [255, 21, 225]}, {"55062063": [2]}, {"55062068": [52, 15]}, {"55062071": [44, 3, 224]}, {"55062075": [8, 167, 175]}, {"55062079": [154, 60, 8, 128, 64, 37, 8, 32, 20, 142, 9]}, {"55062091": [104, 173, 9]}, {"55062096": [142, 9]}, {"55062099": [108, 173, 9]}, {"55062103": [4, 150, 9]}, {"55062107": [112, 165, 9]}, {"55062111": [8, 150, 9]}, {"55062115": [156, 165, 9]}, {"55062119": [10, 3, 224]}, {"55062123": [8, 142, 14]}, {"55062127": [4, 39, 189, 255, 224, 175, 176]}, {"55062135": [16, 175, 177]}, {"55062139": [20, 175, 191]}, {"55062143": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 20, 142, 8]}, {"55062163": [4, 17]}, {"55062167": [5]}, {"55062172": [12, 16, 11, 198]}, {"55062180": [16]}, {"55062183": [3]}, {"55062188": [12, 16, 11, 217]}, {"55062196": [12, 16, 11, 185, 52, 4]}, {"55062204": [12, 16, 11, 185, 52, 4]}, {"55062211": [1, 12, 16, 11, 185, 52, 4]}, {"55062219": [2, 143, 176]}, {"55062223": [16, 143, 177]}, {"55062227": [20, 143, 191]}, {"55062231": [24, 39, 189]}, {"55062235": [32, 3, 224]}, {"55062239": [8]}, {"55062244": [2, 4, 64, 33, 145, 9]}, {"55062251": [108, 52, 1]}, {"55062255": [255, 17, 33]}, {"55062259": [7]}, {"55062264": [2, 9, 72, 33, 145, 41]}, {"55062271": [116, 52, 1]}, {"55062275": [44, 17, 33]}, {"55062279": [2]}, {"55062284": [161, 9]}, {"55062287": [105, 3, 224]}, {"55062291": [8]}, {"55062296": [39, 189, 255, 232, 175, 191]}, {"55062303": [16, 142, 40]}, {"55062308": [174, 8]}, {"55062311": [64, 142, 40]}, {"55062315": [4, 174, 8]}, {"55062319": [68, 150, 40]}, {"55062323": [8, 166, 8]}, {"55062327": [72, 162]}, {"55062330": [15, 51, 146, 8]}, {"55062335": [74, 52, 1]}, {"55062339": [255, 21, 1]}, {"55062343": [3]}, {"55062348": [12, 16, 11, 231]}, {"55062356": [143, 191]}, {"55062359": [16, 39, 189]}, {"55062363": [24, 3, 224]}, {"55062367": [8]}, {"55062372": [142, 8]}, {"55062375": [64, 174, 8]}, {"55062379": [104, 142, 8]}, {"55062383": [68, 174, 8]}, {"55062387": [108, 150, 8]}, {"55062391": [72, 166, 8]}, {"55062395": [112, 146, 8]}, {"55062399": [104, 52, 1]}, {"55062403": [255, 21, 1]}, {"55062407": [3]}, {"55062412": [52, 8]}, {"55062415": [1, 162, 8, 15, 51, 3, 224]}, {"55062423": [8]}, {"55062428": [39, 189, 255, 232, 175, 191]}, {"55062435": [16, 150, 8]}, {"55062439": [156, 49, 8]}, {"55062443": [64, 17]}, {"55062447": [5]}, {"55062452": [150, 8]}, {"55062455": [112, 49, 8, 255, 15, 53, 8]}, {"55062463": [48, 166, 8]}, {"55062467": [112, 146, 40]}, {"55062471": [1, 162, 8]}, {"55062475": [105, 150, 40]}, {"55062479": [2, 166, 8]}, {"55062483": [106, 142, 40]}, {"55062487": [4, 174, 8]}, {"55062491": [108, 12, 16, 12, 1, 52, 4]}, {"55062500": [12, 16, 12, 1, 52, 4]}, {"55062507": [1, 12, 16, 12, 1, 52, 4]}, {"55062515": [2, 143, 191]}, {"55062519": [16, 39, 189]}, {"55062523": [24, 3, 224]}, {"55062527": [8]}, {"55062532": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 48, 176, 145, 10]}, {"55062547": [108, 52, 1]}, {"55062551": [255, 17, 65]}, {"55062555": [5]}, {"55062560": [1, 42, 72, 33, 145, 41]}, {"55062568": [21, 32]}, {"55062571": [28]}, {"55062576": [60, 9, 128, 64, 37, 41, 48, 163, 37, 41]}, {"55062587": [1, 145, 42]}, {"55062592": [17, 64]}, {"55062595": [19]}, {"55062600": [2, 10, 88, 33, 145, 107]}, {"55062607": [116, 52, 1]}, {"55062611": [255, 17, 97, 255, 248]}, {"55062620": [146, 12]}, {"55062623": [108, 17, 138, 255, 245]}, {"55062632": [146, 12]}, {"55062635": [109, 17, 138, 255, 242]}, {"55062644": [146, 12]}, {"55062647": [110, 17, 138, 255, 239]}, {"55062656": [161, 11]}, {"55062659": [105, 161, 10]}, {"55062663": [108, 16]}, {"55062667": [4]}, {"55062672": [52, 9]}, {"55062675": [255, 161, 9]}, {"55062679": [105, 161, 9]}, {"55062683": [108, 3, 224]}, {"55062687": [8]}, {"55062692": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55062705": [1, 1, 1, 1, 1]}, {"55062711": [1, 1, 1, 1, 1]}, {"55062717": [1]}, {"55062719": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55062729": [51, 8, 33, 32, 15]}, {"55062735": [71, 21, 234]}, {"55062739": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062751": [164]}, {"55062753": [15, 122, 3, 20, 64]}, {"55062759": [5, 52, 2, 72, 48, 21, 226]}, {"55062767": [7]}, {"55062772": [36, 25]}, {"55062775": [3, 16]}, {"55062779": [4, 52, 2, 99, 17, 21, 226]}, {"55062787": [2]}, {"55062792": [36, 25]}, {"55062795": [3, 3, 224]}, {"55062799": [8]}, {"55062804": [141, 173, 138, 160, 52, 2, 128]}, {"55062812": [16, 77]}, {"55062815": [2]}, {"55062820": [16]}, {"55062823": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55062839": [1, 16, 64]}, {"55062843": [2]}, {"55062848": [16]}, {"55062851": [2, 52, 2]}, {"55062855": [1, 161, 226, 28, 191, 3, 224]}, {"55062863": [8]}, {"55062869": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062883": [164]}, {"55062885": [15, 122, 3, 20, 64]}, {"55062891": [5, 52, 2, 72, 48, 21, 226]}, {"55062899": [7]}, {"55062904": [36, 25]}, {"55062907": [3, 16]}, {"55062911": [4, 52, 2, 99, 17, 21, 226]}, {"55062919": [2]}, {"55062924": [36, 25]}, {"55062927": [3, 3, 224]}, {"55062931": [8]}, {"55062936": [162, 37]}, {"55062939": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55062951": [4, 142, 10]}, {"55062956": [17, 64]}, {"55062959": [11]}, {"55062965": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55062977": [24, 194, 2, 23]}, {"55062983": [3, 49, 89]}, {"55062987": [255, 129, 234]}, {"55062992": [3, 42, 200, 37, 8, 16, 12, 105, 161, 249]}, {"55063004": [3, 224]}, {"55063007": [8]}] \ No newline at end of file +[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 95]}, {"11325064": [12, 16, 11, 65, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 11, 160]}, {"11427312": [12, 16, 12, 73]}, {"11431496": [12, 16, 11, 73, 1, 15, 192, 33]}, {"11562028": [12, 16, 12, 106]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 12, 89]}, {"11882076": [12, 16, 12, 54]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 11, 127, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 11, 134, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 11, 141, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 11, 120, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 47]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 9, 207]}, {"12427480": [12, 16, 10, 25]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 29]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 11, 85, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 59]}, {"12491480": [12, 16, 10, 68]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 22]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 11, 148]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 140, 73]}, {"14149503": [164]}, {"14149512": [2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149856": [87]}, {"14149859": [15]}, {"14357459": [118]}, {"14624335": [118]}, {"14872723": [52]}, {"15327704": [0, 0]}, {"15327707": [0]}, {"15327728": [52, 6, 91, 8]}, {"15327744": [52]}, {"15327746": [0, 10]}, {"15327756": [12, 16, 11, 81]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 9, 236, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 9, 236, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057408": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058464": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 104, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 132, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 172, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 212, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 252, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 36, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 64, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 92, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 120, 83, 65, 56, 67]}, {"55058613": [235, 21, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 55, 68]}, {"55058629": [235, 22, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 57, 69]}, {"55058645": [235, 23, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 63, 71]}, {"55058677": [244, 25, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 10, 6]}, {"55058757": [185, 1, 3, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 28]}, {"55058773": [185, 1, 4, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 29]}, {"55058789": [185, 1, 5, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 30]}, {"55058805": [185, 1, 6, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 42]}, {"55058821": [185, 1, 7, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 97]}, {"55058837": [185, 1, 10, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 98]}, {"55058853": [184, 2]}, {"55058856": [128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 99]}, {"55058869": [184, 2, 1, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 100]}, {"55058885": [184, 2, 2, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 101]}, {"55058901": [184, 2, 3, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 124]}, {"55058917": [184, 2, 4, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 125]}, {"55058933": [184, 2, 5, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 126]}, {"55058949": [184, 2, 6, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 127]}, {"55058965": [184, 2, 7, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 162]}, {"55058981": [184, 2, 8, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 135]}, {"55058997": [184, 2, 9, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 136]}, {"55059013": [200, 4]}, {"55059016": [128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 137]}, {"55059029": [200, 4, 1, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 138]}, {"55059045": [200, 4, 2, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 139]}, {"55059061": [200, 4, 3, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 140]}, {"55059077": [200, 4, 4, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 142]}, {"55059093": [200, 4, 5, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 143]}, {"55059109": [200, 4, 6, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 163]}, {"55059125": [200, 4, 7, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 165]}, {"55059141": [200, 4, 8, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 146]}, {"55059157": [200, 4, 9, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 2, 147]}, {"55059173": [170, 3, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 148]}, {"55059189": [170, 4, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 149]}, {"55059205": [170, 5, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 166]}, {"55059221": [170, 6, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 169]}, {"55059237": [170, 7, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 155]}, {"55059253": [170, 8, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 159]}, {"55059269": [170, 11, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 160]}, {"55059285": [170, 12, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 161]}, {"55059301": [170, 13, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 61, 67, 12]}, {"55059317": [248, 255, 255, 128, 64, 37, 236, 128, 64, 36, 96, 77, 131, 247, 85]}, {"55059333": [183, 255, 255, 128, 64, 37, 228, 128, 64, 36, 96, 77, 146, 219, 230]}, {"55059349": [216, 255, 255, 128, 64, 37, 228, 128, 64, 37, 172, 77, 147, 218, 230]}, {"55059365": [216, 255, 255, 128, 64, 37, 228, 128, 64, 37, 172, 77, 148, 217, 230]}, {"55059381": [216, 255, 255, 128, 64, 37, 228, 128, 64, 37, 172, 77, 142, 224, 50]}, {"55059397": [206, 255, 255, 128, 64, 37, 228, 128, 64, 37, 200, 77, 143, 224, 50]}, {"55059413": [206, 255, 255, 128, 64, 37, 228, 128, 64, 37, 200, 77, 144, 224, 50]}, {"55059429": [206, 255, 255, 128, 64, 37, 228, 128, 64, 37, 200, 77, 140, 238, 52]}, {"55059445": [187, 255, 255, 128, 64, 37, 228, 128, 64, 36, 96, 77, 141, 238, 52]}, {"55059461": [187, 255, 255, 128, 64, 37, 228, 128, 64, 36, 96, 79, 65, 19, 233]}, {"55059477": [189, 255, 255, 128, 64, 38, 124, 128, 64, 36, 96, 79, 65, 30, 228]}, {"55059493": [205, 255, 255, 128, 64, 38, 156, 128, 64, 37, 148, 79, 65, 31, 232]}, {"55059509": [205, 255, 255, 128, 64, 38, 188, 128, 64, 36, 96, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 38, 228, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 39, 44, 128, 64, 39, 16, 3, 224]}, {"55059555": [8, 52, 162]}, {"55059560": [144, 136]}, {"55059563": [125, 52, 1]}, {"55059567": [255, 17, 1]}, {"55059571": [2, 52, 2]}, {"55059575": [8, 52, 2]}, {"55059579": [9, 3, 224]}, {"55059583": [8]}, {"55059588": [144, 136]}, {"55059591": [163, 49, 8]}, {"55059595": [192, 17]}, {"55059599": [5, 52, 2]}, {"55059603": [84, 52, 1]}, {"55059607": [64, 17, 1]}, {"55059611": [2, 52, 2]}, {"55059615": [53, 52, 2]}, {"55059619": [54, 3, 224]}, {"55059623": [8]}, {"55059628": [144, 136]}, {"55059631": [163, 49, 8]}, {"55059635": [24, 17]}, {"55059639": [5, 52, 2]}, {"55059643": [50, 52, 1]}, {"55059647": [8, 17, 1]}, {"55059651": [2, 52, 2]}, {"55059655": [51, 52, 2]}, {"55059659": [52, 3, 224]}, {"55059663": [8]}, {"55059668": [144, 136]}, {"55059671": [163, 49, 8]}, {"55059675": [3, 17]}, {"55059679": [5, 52, 2]}, {"55059683": [4, 52, 1]}, {"55059687": [1, 17, 1]}, {"55059691": [2, 52, 2]}, {"55059695": [48, 52, 2]}, {"55059699": [49, 3, 224]}, {"55059703": [8]}, {"55059708": [144, 136]}, {"55059711": [162, 49, 8]}, {"55059715": [192, 17]}, {"55059719": [5, 52, 2]}, {"55059723": [5, 52, 1]}, {"55059727": [64, 17, 1]}, {"55059731": [2, 52, 2]}, {"55059735": [96, 52, 2]}, {"55059739": [123, 3, 224]}, {"55059743": [8]}, {"55059748": [144, 136]}, {"55059751": [162, 49, 8]}, {"55059755": [48, 17]}, {"55059759": [2, 52, 2]}, {"55059763": [69, 52, 2]}, {"55059767": [70, 3, 224]}, {"55059771": [8]}, {"55059776": [144, 136]}, {"55059779": [162, 49, 8]}, {"55059783": [6, 17]}, {"55059787": [2, 52, 2]}, {"55059791": [55, 52, 2]}, {"55059795": [56, 3, 224]}, {"55059799": [8]}, {"55059804": [144, 136]}, {"55059807": [161, 49, 8]}, {"55059811": [32, 17]}, {"55059815": [2, 52, 2]}, {"55059819": [121, 52, 2]}, {"55059823": [122, 3, 224]}, {"55059827": [8]}, {"55059832": [144, 136]}, {"55059835": [161, 49, 8]}, {"55059839": [4, 17]}, {"55059843": [2, 52, 2]}, {"55059847": [119, 52, 2]}, {"55059851": [120, 3, 224]}, {"55059855": [8]}, {"55059860": [144, 136]}, {"55059863": [50, 17]}, {"55059867": [2, 52, 2]}, {"55059871": [192, 52, 2]}, {"55059875": [193, 3, 224]}, {"55059879": [8]}, {"55059884": [144, 136]}, {"55059887": [163, 49, 8]}, {"55059891": [3, 17]}, {"55059895": [2, 52, 2]}, {"55059899": [77, 52, 162]}, {"55059904": [3, 224]}, {"55059907": [8]}, {"55059912": [144, 136]}, {"55059915": [163, 49, 8]}, {"55059919": [24, 17]}, {"55059923": [2, 52, 2]}, {"55059927": [77, 52, 162]}, {"55059932": [3, 224]}, {"55059935": [8]}, {"55059940": [3, 224]}, {"55059943": [8]}, {"55059948": [52, 8]}, {"55059951": [1, 160, 136]}, {"55059955": [62, 3, 224]}, {"55059959": [8]}, {"55059964": [36, 136]}, {"55059967": [134, 36, 9, 255, 255, 37, 41]}, {"55059975": [1, 52, 1]}, {"55059979": [3]}, {"55059981": [41, 8, 42, 20, 32]}, {"55059987": [7]}, {"55059992": [1, 9, 80, 33, 145, 75]}, {"55060000": [52, 1]}, {"55060003": [255, 21, 97, 255, 247]}, {"55060012": [161, 69]}, {"55060016": [3, 224]}, {"55060019": [8]}, {"55060024": [36, 136]}, {"55060027": [168, 1, 6, 64, 33, 145, 9]}, {"55060036": [1, 37, 72, 37, 161, 9]}, {"55060044": [3, 224]}, {"55060047": [8]}, {"55060052": [36, 136]}, {"55060055": [188, 1, 5, 64, 33, 129, 9]}, {"55060064": [5, 33]}, {"55060067": [2]}, {"55060072": [52, 9]}, {"55060076": [37, 41]}, {"55060079": [1, 161, 9]}, {"55060084": [3, 224]}, {"55060087": [8]}, {"55060092": [52, 8]}, {"55060095": [1, 160, 136]}, {"55060099": [61, 52, 8]}, {"55060103": [20, 160, 136]}, {"55060107": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060119": [8]}, {"55060124": [52, 8]}, {"55060127": [1, 160, 136]}, {"55060131": [50, 160, 136]}, {"55060135": [58, 52, 8]}, {"55060139": [48, 164, 136, 19, 244, 160, 136]}, {"55060147": [51, 3, 224]}, {"55060151": [8]}, {"55060156": [52, 8]}, {"55060159": [2, 160, 136]}, {"55060163": [50, 52, 8]}, {"55060167": [1, 160, 136]}, {"55060171": [58, 160, 136]}, {"55060175": [60, 52, 8]}, {"55060179": [96, 164, 136, 19, 244, 160, 136]}, {"55060187": [51, 3, 224]}, {"55060191": [8]}, {"55060196": [144, 136]}, {"55060199": [124, 52, 1]}, {"55060203": [255, 17, 1]}, {"55060207": [6, 52, 2]}, {"55060211": [107, 144, 136]}, {"55060215": [148, 45, 8]}, {"55060219": [6, 17]}, {"55060223": [2, 52, 2]}, {"55060227": [106, 52, 2]}, {"55060231": [3, 3, 224]}, {"55060235": [8]}, {"55060240": [144, 136]}, {"55060243": [123, 52, 1]}, {"55060247": [255, 17, 1]}, {"55060251": [2, 52, 162]}, {"55060256": [52, 2]}, {"55060259": [12, 3, 224]}, {"55060263": [8]}, {"55060268": [52, 8]}, {"55060271": [7, 160, 136]}, {"55060275": [123, 3, 224]}, {"55060279": [8]}, {"55060284": [48, 132]}, {"55060287": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060299": [140, 16, 129]}, {"55060303": [22, 145, 2]}, {"55060307": [117, 52, 1]}, {"55060311": [141, 16, 129]}, {"55060315": [19, 145, 2]}, {"55060319": [117, 16, 128]}, {"55060323": [17, 145, 2]}, {"55060327": [116, 52, 1]}, {"55060331": [138, 16, 129]}, {"55060335": [14, 145, 2]}, {"55060339": [116, 52, 1]}, {"55060343": [139, 16, 129]}, {"55060347": [11, 145, 2]}, {"55060351": [116, 52, 1]}, {"55060355": [88, 16, 129]}, {"55060359": [8, 52, 2]}, {"55060364": [52, 1]}, {"55060367": [120, 16, 129]}, {"55060371": [5, 52, 2]}, {"55060376": [52, 1]}, {"55060379": [121, 16, 129]}, {"55060383": [2, 52, 2]}, {"55060388": [52, 2]}, {"55060391": [255, 3, 224]}, {"55060395": [8]}, {"55060400": [39, 189, 255, 224, 175, 191]}, {"55060407": [16, 175, 176]}, {"55060411": [20, 12, 16, 10, 166]}, {"55060420": [4, 65]}, {"55060423": [2]}, {"55060428": [52, 2]}, {"55060431": [91]}, {"55060433": [64, 32, 33, 12, 16, 10, 245]}, {"55060444": [16, 96]}, {"55060447": [15, 175, 163]}, {"55060451": [28, 60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060463": [6, 144, 102]}, {"55060467": [7, 140, 105]}, {"55060471": [8, 1, 32, 248, 9]}, {"55060480": [143, 163]}, {"55060483": [28, 144, 101]}, {"55060487": [1, 12, 1, 191, 115, 2, 32, 32, 33, 143, 163]}, {"55060499": [28, 144, 101]}, {"55060503": [3, 16]}, {"55060507": [10, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060519": [6]}, {"55060521": [74]}, {"55060523": [24]}, {"55060526": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060536": [12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060547": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060558": [48, 33, 143, 191]}, {"55060563": [16, 143, 176]}, {"55060567": [20, 39, 189]}, {"55060571": [32, 3, 224]}, {"55060575": [8]}, {"55060580": [143, 166]}, {"55060583": [48, 132, 197]}, {"55060587": [4, 8, 16, 10, 33]}, {"55060596": [143, 185]}, {"55060599": [44, 135, 37]}, {"55060603": [4, 8, 16, 10, 33]}, {"55060612": [60, 10, 128, 64, 37, 74, 32]}, {"55060620": [141, 75]}, {"55060623": [12, 17, 96]}, {"55060627": [2]}, {"55060632": [149, 69]}, {"55060635": [4, 60, 10, 128, 64, 37, 74, 32, 16, 161, 64]}, {"55060648": [60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060660": [3, 224]}, {"55060663": [8]}, {"55060668": [60, 8, 128, 64, 37, 8, 32]}, {"55060676": [141, 9]}, {"55060679": [12, 17, 32]}, {"55060683": [2]}, {"55060688": [129, 3]}, {"55060691": [2]}, {"55060693": [3, 15, 195]}, {"55060697": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55060711": [8]}, {"55060716": [144, 69]}, {"55060719": [3, 60, 8, 128, 64, 37, 8, 32]}, {"55060728": [141, 9]}, {"55060731": [12, 17, 32]}, {"55060735": [2]}, {"55060740": [145, 5]}, {"55060743": [3, 3, 224]}, {"55060747": [8]}, {"55060752": [143, 162]}, {"55060755": [36, 144, 69]}, {"55060760": [60, 8, 128, 64, 37, 8, 32]}, {"55060768": [141, 9]}, {"55060771": [12, 17, 32]}, {"55060775": [19]}, {"55060780": [145, 5]}, {"55060783": [1, 175, 164]}, {"55060788": [175, 165]}, {"55060791": [4, 175, 166]}, {"55060795": [8, 39, 189, 255, 232, 175, 191]}, {"55060803": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55060815": [6, 145, 6]}, {"55060819": [7, 141, 9]}, {"55060823": [8, 1, 32, 248, 9]}, {"55060832": [143, 191]}, {"55060835": [16, 39, 189]}, {"55060839": [24, 143, 164]}, {"55060844": [143, 165]}, {"55060847": [4, 143, 166]}, {"55060851": [8, 3, 224]}, {"55060855": [8]}, {"55060860": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55060871": [16, 175, 163]}, {"55060875": [20, 175, 191]}, {"55060879": [24, 12, 16, 10, 108]}, {"55060888": [143, 162]}, {"55060891": [16, 143, 163]}, {"55060895": [20, 143, 191]}, {"55060899": [24, 39, 189]}, {"55060903": [32, 3, 224]}, {"55060907": [8]}, {"55060912": [39, 189, 255, 232, 175, 191]}, {"55060919": [16, 60, 8, 128, 64, 37, 8, 32]}, {"55060928": [173]}, {"55060932": [173]}, {"55060935": [4, 173]}, {"55060939": [8, 173]}, {"55060943": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55060959": [42]}, {"55060965": [9, 15, 195, 1, 33, 32, 38]}, {"55060973": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 166]}, {"55060988": [4, 64]}, {"55060991": [34]}, {"55060996": [52, 68]}, {"55061000": [12, 16, 10, 245]}, {"55061008": [16, 96]}, {"55061011": [12]}, {"55061016": [60, 8, 128, 64, 37, 8, 32]}, {"55061024": [140, 105]}, {"55061028": [173, 9]}, {"55061032": [140, 105]}, {"55061035": [4, 173, 9]}, {"55061039": [4, 140, 105]}, {"55061043": [8, 173, 9]}, {"55061047": [8, 52, 9]}, {"55061051": [1, 173, 9]}, {"55061055": [12, 144, 98]}, {"55061060": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061076": [52, 1]}, {"55061079": [10, 21, 65]}, {"55061083": [6]}, {"55061088": [149, 42]}, {"55061091": [28, 49, 74, 240, 31]}, {"55061097": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061107": [28, 129, 9, 4, 36, 5, 33]}, {"55061115": [2]}, {"55061121": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061131": [16, 39, 189]}, {"55061135": [24, 3, 224]}, {"55061139": [8]}, {"55061144": [39, 189, 255, 232, 175, 191]}, {"55061151": [16, 12, 16, 10, 180]}, {"55061160": [36, 1, 255, 255, 16, 65]}, {"55061167": [4]}, {"55061172": [52, 68]}, {"55061176": [12, 16, 10, 232]}, {"55061184": [143, 191]}, {"55061187": [16, 39, 189]}, {"55061191": [24, 3, 224]}, {"55061195": [8]}, {"55061200": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061211": [164, 52, 8]}, {"55061216": [52, 137]}, {"55061220": [148, 170]}, {"55061224": [52, 1, 1, 156, 21, 65]}, {"55061231": [8]}, {"55061236": [52, 8]}, {"55061239": [3, 148, 171]}, {"55061243": [28, 49, 105]}, {"55061247": [255, 49, 98, 31]}, {"55061253": [2, 18, 2, 16]}, {"55061259": [31]}, {"55061264": [52, 1]}, {"55061267": [10, 21, 65]}, {"55061271": [14]}, {"55061276": [148, 171]}, {"55061279": [28, 52, 1]}, {"55061283": [16, 20, 65]}, {"55061287": [8]}, {"55061292": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061303": [4]}, {"55061308": [36, 2, 255, 255, 16]}, {"55061315": [21]}, {"55061320": [52, 8]}, {"55061323": [1, 49, 105]}, {"55061327": [31, 52, 1]}, {"55061331": [21, 21, 65]}, {"55061335": [12]}, {"55061340": [52, 1]}, {"55061343": [62, 16, 129]}, {"55061347": [7]}, {"55061352": [52, 1]}, {"55061355": [66, 16, 129]}, {"55061359": [4]}, {"55061364": [36, 2, 255, 255, 16]}, {"55061371": [7]}, {"55061376": [52, 8]}, {"55061379": [2, 144, 169, 1, 65]}, {"55061385": [2, 18]}, {"55061389": [72, 16, 37]}, {"55061393": [2, 18]}, {"55061397": [73, 16, 37, 3, 224]}, {"55061403": [8]}, {"55061408": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061423": [4, 141, 9]}, {"55061428": [17, 32]}, {"55061431": [5]}, {"55061437": [9, 82, 2, 21, 68, 255, 250]}, {"55061448": [49, 34]}, {"55061451": [255, 3, 224]}, {"55061455": [8]}, {"55061460": [39, 189, 255, 224, 175, 176]}, {"55061467": [16, 175, 177]}, {"55061471": [20, 175, 191]}, {"55061475": [24, 52, 130]}, {"55061480": [52, 80]}, {"55061484": [38, 8, 255, 128, 5]}, {"55061491": [18]}, {"55061496": [60, 17, 128, 64, 38, 49, 32, 32, 52, 9]}, {"55061507": [16, 1, 9]}, {"55061511": [24]}, {"55061514": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061532": [142, 40]}, {"55061535": [12, 1]}, {"55061538": [248, 9]}, {"55061544": [20, 80, 255, 239]}, {"55061552": [54, 35]}, {"55061556": [16]}, {"55061559": [2]}, {"55061564": [52, 3]}, {"55061568": [143, 176]}, {"55061571": [16, 143, 177]}, {"55061575": [20, 143, 191]}, {"55061579": [24, 39, 189]}, {"55061583": [32, 3, 224]}, {"55061587": [8]}, {"55061592": [140, 136, 29, 44, 52, 9]}, {"55061599": [1]}, {"55061601": [9, 78]}, {"55061604": [1, 9, 16, 36, 16, 64]}, {"55061611": [36]}, {"55061616": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55061631": [164, 52, 1]}, {"55061635": [61, 17, 129]}, {"55061639": [10]}, {"55061645": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55061655": [25]}, {"55061660": [52, 13]}, {"55061663": [1, 161, 141, 29, 40, 37, 74]}, {"55061671": [3, 16]}, {"55061675": [9]}, {"55061680": [52, 12]}, {"55061683": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55061699": [14]}, {"55061704": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 2, 1, 10, 64, 33, 129, 8]}, {"55061740": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061752": [52, 2]}, {"55061756": [3, 224]}, {"55061759": [8]}, {"55061764": [60, 8, 128, 64, 37, 8, 28]}, {"55061772": [129, 8]}, {"55061776": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061788": [3, 224]}, {"55061791": [8]}, {"55061796": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55061808": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061820": [3, 224]}, {"55061823": [8]}, {"55061828": [52, 1, 64]}, {"55061832": [175, 161]}, {"55061835": [28, 3, 224]}, {"55061839": [8]}, {"55061844": [175, 164]}, {"55061847": [104, 175, 165]}, {"55061851": [108, 175, 166]}, {"55061855": [112, 175, 167]}, {"55061859": [116, 39, 189, 255, 232, 175, 163]}, {"55061867": [16, 175, 191]}, {"55061871": [20, 60, 8, 128, 64, 37, 8, 32, 16, 129, 8]}, {"55061884": [17]}, {"55061887": [14]}, {"55061892": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55061903": [1, 165, 42]}, {"55061908": [60, 9, 128, 65, 52, 10]}, {"55061915": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 108]}, {"55061944": [143, 163]}, {"55061947": [16, 143, 191]}, {"55061951": [20, 39, 189]}, {"55061955": [24, 143, 164]}, {"55061959": [104, 143, 165]}, {"55061963": [108, 143, 166]}, {"55061967": [112, 143, 167]}, {"55061971": [116, 132, 110, 19, 196, 3, 224]}, {"55061979": [8]}, {"55061984": [147, 25]}, {"55061987": [116, 52, 1]}, {"55061991": [255, 23, 33]}, {"55061995": [2]}, {"55062000": [52, 25]}, {"55062003": [44, 3, 224]}, {"55062007": [8, 167, 185]}, {"55062011": [154, 147, 44]}, {"55062015": [116, 52, 1]}, {"55062019": [255, 21, 129]}, {"55062023": [2]}, {"55062028": [52, 12]}, {"55062031": [44, 3, 224]}, {"55062035": [8]}, {"55062040": [145, 174]}, {"55062043": [116, 52, 1]}, {"55062047": [255, 21, 193]}, {"55062051": [2]}, {"55062056": [52, 14]}, {"55062059": [44, 3, 224]}, {"55062063": [8, 167, 174]}, {"55062067": [154, 145, 207]}, {"55062071": [116, 52, 1]}, {"55062075": [255, 21, 225]}, {"55062079": [2]}, {"55062084": [52, 15]}, {"55062087": [44, 3, 224]}, {"55062091": [8, 167, 175]}, {"55062095": [154, 60, 8, 128, 64, 37, 8, 32, 20, 142, 9]}, {"55062107": [104, 173, 9]}, {"55062112": [142, 9]}, {"55062115": [108, 173, 9]}, {"55062119": [4, 150, 9]}, {"55062123": [112, 165, 9]}, {"55062127": [8, 150, 9]}, {"55062131": [156, 165, 9]}, {"55062135": [10, 3, 224]}, {"55062139": [8, 142, 14]}, {"55062143": [4, 39, 189, 255, 224, 175, 176]}, {"55062151": [16, 175, 177]}, {"55062155": [20, 175, 191]}, {"55062159": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 20, 142, 8]}, {"55062179": [4, 17]}, {"55062183": [5]}, {"55062188": [12, 16, 11, 202]}, {"55062196": [16]}, {"55062199": [3]}, {"55062204": [12, 16, 11, 221]}, {"55062212": [12, 16, 11, 189, 52, 4]}, {"55062220": [12, 16, 11, 189, 52, 4]}, {"55062227": [1, 12, 16, 11, 189, 52, 4]}, {"55062235": [2, 143, 176]}, {"55062239": [16, 143, 177]}, {"55062243": [20, 143, 191]}, {"55062247": [24, 39, 189]}, {"55062251": [32, 3, 224]}, {"55062255": [8]}, {"55062260": [2, 4, 64, 33, 145, 9]}, {"55062267": [108, 52, 1]}, {"55062271": [255, 17, 33]}, {"55062275": [7]}, {"55062280": [2, 9, 72, 33, 145, 41]}, {"55062287": [116, 52, 1]}, {"55062291": [44, 17, 33]}, {"55062295": [2]}, {"55062300": [161, 9]}, {"55062303": [105, 3, 224]}, {"55062307": [8]}, {"55062312": [39, 189, 255, 232, 175, 191]}, {"55062319": [16, 142, 40]}, {"55062324": [174, 8]}, {"55062327": [64, 142, 40]}, {"55062331": [4, 174, 8]}, {"55062335": [68, 150, 40]}, {"55062339": [8, 166, 8]}, {"55062343": [72, 162]}, {"55062346": [15, 51, 146, 8]}, {"55062351": [74, 52, 1]}, {"55062355": [255, 21, 1]}, {"55062359": [3]}, {"55062364": [12, 16, 11, 235]}, {"55062372": [143, 191]}, {"55062375": [16, 39, 189]}, {"55062379": [24, 3, 224]}, {"55062383": [8]}, {"55062388": [142, 8]}, {"55062391": [64, 174, 8]}, {"55062395": [104, 142, 8]}, {"55062399": [68, 174, 8]}, {"55062403": [108, 150, 8]}, {"55062407": [72, 166, 8]}, {"55062411": [112, 146, 8]}, {"55062415": [104, 52, 1]}, {"55062419": [255, 21, 1]}, {"55062423": [3]}, {"55062428": [52, 8]}, {"55062431": [1, 162, 8, 15, 51, 3, 224]}, {"55062439": [8]}, {"55062444": [39, 189, 255, 232, 175, 191]}, {"55062451": [16, 150, 8]}, {"55062455": [156, 49, 8]}, {"55062459": [64, 17]}, {"55062463": [5]}, {"55062468": [150, 8]}, {"55062471": [112, 49, 8, 255, 15, 53, 8]}, {"55062479": [48, 166, 8]}, {"55062483": [112, 146, 40]}, {"55062487": [1, 162, 8]}, {"55062491": [105, 150, 40]}, {"55062495": [2, 166, 8]}, {"55062499": [106, 142, 40]}, {"55062503": [4, 174, 8]}, {"55062507": [108, 12, 16, 12, 5, 52, 4]}, {"55062516": [12, 16, 12, 5, 52, 4]}, {"55062523": [1, 12, 16, 12, 5, 52, 4]}, {"55062531": [2, 143, 191]}, {"55062535": [16, 39, 189]}, {"55062539": [24, 3, 224]}, {"55062543": [8]}, {"55062548": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 48, 192, 145, 10]}, {"55062563": [108, 52, 1]}, {"55062567": [255, 17, 65]}, {"55062571": [5]}, {"55062576": [1, 42, 72, 33, 145, 41]}, {"55062584": [21, 32]}, {"55062587": [28]}, {"55062592": [60, 9, 128, 64, 37, 41, 48, 179, 37, 41]}, {"55062603": [1, 145, 42]}, {"55062608": [17, 64]}, {"55062611": [19]}, {"55062616": [2, 10, 88, 33, 145, 107]}, {"55062623": [116, 52, 1]}, {"55062627": [255, 17, 97, 255, 248]}, {"55062636": [146, 12]}, {"55062639": [108, 17, 138, 255, 245]}, {"55062648": [146, 12]}, {"55062651": [109, 17, 138, 255, 242]}, {"55062660": [146, 12]}, {"55062663": [110, 17, 138, 255, 239]}, {"55062672": [161, 11]}, {"55062675": [105, 161, 10]}, {"55062679": [108, 16]}, {"55062683": [4]}, {"55062688": [52, 9]}, {"55062691": [255, 161, 9]}, {"55062695": [105, 161, 9]}, {"55062699": [108, 3, 224]}, {"55062703": [8]}, {"55062708": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55062721": [1, 1, 1, 1, 1]}, {"55062727": [1, 1, 1, 1, 1]}, {"55062733": [1]}, {"55062735": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55062745": [51, 8, 33, 32, 15]}, {"55062751": [71, 21, 234]}, {"55062755": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062767": [164]}, {"55062769": [15, 122, 3, 20, 64]}, {"55062775": [5, 52, 2, 72, 48, 21, 226]}, {"55062783": [7]}, {"55062788": [36, 25]}, {"55062791": [3, 16]}, {"55062795": [4, 52, 2, 99, 17, 21, 226]}, {"55062803": [2]}, {"55062808": [36, 25]}, {"55062811": [3, 3, 224]}, {"55062815": [8]}, {"55062820": [141, 173, 138, 160, 52, 2, 128]}, {"55062828": [16, 77]}, {"55062831": [2]}, {"55062836": [16]}, {"55062839": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55062855": [1, 16, 64]}, {"55062859": [2]}, {"55062864": [16]}, {"55062867": [2, 52, 2]}, {"55062871": [1, 161, 226, 28, 191, 3, 224]}, {"55062879": [8]}, {"55062885": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062899": [164]}, {"55062901": [15, 122, 3, 20, 64]}, {"55062907": [5, 52, 2, 72, 48, 21, 226]}, {"55062915": [7]}, {"55062920": [36, 25]}, {"55062923": [3, 16]}, {"55062927": [4, 52, 2, 99, 17, 21, 226]}, {"55062935": [2]}, {"55062940": [36, 25]}, {"55062943": [3, 3, 224]}, {"55062947": [8]}, {"55062952": [162, 37]}, {"55062955": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55062967": [4, 142, 10]}, {"55062972": [17, 64]}, {"55062975": [11]}, {"55062981": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55062993": [24, 194, 2, 23]}, {"55062999": [3, 49, 89]}, {"55063003": [255, 129, 234]}, {"55063008": [3, 42, 200, 37, 8, 16, 12, 109, 161, 249]}, {"55063020": [3, 224]}, {"55063023": [8]}] \ No newline at end of file diff --git a/version.py b/version.py index 2458c5d45..d7f438158 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.13 f.LUM' +__version__ = '2.13.14 f.LUM' From 8b93c90a234f172fd86bda60996d45ed4b9b0016 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Fri, 20 Jul 2018 03:11:42 -0400 Subject: [PATCH 188/755] Updated Multi World settings in gui --- Gui.py | 54 +++++++++++++++++++++++++++-------------------------- Settings.py | 3 ++- version.py | 2 +- 3 files changed, 31 insertions(+), 28 deletions(-) diff --git a/Gui.py b/Gui.py index b750bd9b9..97c0f099a 100644 --- a/Gui.py +++ b/Gui.py @@ -15,6 +15,7 @@ from Rom import get_tunic_color_options, get_navi_color_options from Settings import Settings, setting_infos from version import __version__ as ESVersion +import webbrowser def settings_to_guivars(settings, guivars): @@ -77,6 +78,7 @@ def guiMain(settings=None): mainWindow = Tk() mainWindow.wm_title("OoT Randomizer %s" % ESVersion) + mainWindow.resizable(False, False) set_icon(mainWindow) @@ -243,32 +245,6 @@ def open_readme(): countSpinbox.pack(side=LEFT, padx=2) countDialogFrame.pack(side=TOP, anchor=W, padx=5, pady=(1,1)) - multiworldFrame = LabelFrame(frames['rom_tab'], text='Multi-World Generation') - countLabel = Label(multiworldFrame, wraplength=300, justify=LEFT, text='This is used for co-op generations. Increasing World Count will drastically increase the generation time. For more information see https://github.com/TestRunnerSRL/bizhawk-co-op') - countLabel.pack(side=TOP, anchor=W, padx=5, pady=(1,1)) - - - worldCountFrame = Frame(multiworldFrame) - countLabel = Label(worldCountFrame, text='World Count') - guivars['world_count'] = StringVar() - countSpinbox = Spinbox(worldCountFrame, from_=1, to=100, textvariable=guivars['world_count'], width=3) - - countLabel.pack(side=LEFT) - countSpinbox.pack(side=LEFT, padx=2) - worldCountFrame.pack(side=LEFT, anchor=N, padx=5, pady=(1,1)) - - playerNumFrame = Frame(multiworldFrame) - countLabel = Label(playerNumFrame, text='Player Number') - guivars['player_num'] = StringVar() - countSpinbox = Spinbox(playerNumFrame, from_=1, to=100, textvariable=guivars['player_num'], width=3) - - countLabel.pack(side=LEFT) - countSpinbox.pack(side=LEFT, padx=2) - playerNumFrame.pack(side=LEFT, anchor=N, padx=5, pady=(1,1)) - multiworldFrame.pack(side=TOP, anchor=W, padx=5, pady=(1,1)) - - - # build gui ############ @@ -358,6 +334,32 @@ def open_readme(): notebook.pack(fill=BOTH, expand=True, padx=5, pady=5) + multiworldFrame = LabelFrame(frames['rom_tab'], text='Multi-World Generation') + countLabel = Label(multiworldFrame, wraplength=350, justify=LEFT, text='This is used for co-op generations. Increasing World Count will drastically increase the generation time. For more information see:') + hyperLabel = Label(multiworldFrame, wraplength=350, justify=LEFT, text='https://github.com/TestRunnerSRL/bizhawk-co-op', fg='blue', cursor='hand2') + hyperLabel.bind("", lambda event: webbrowser.open_new(r"https://github.com/TestRunnerSRL/bizhawk-co-op")) + countLabel.pack(side=TOP, anchor=W, padx=5, pady=0) + hyperLabel.pack(side=TOP, anchor=W, padx=5, pady=0) + + + worldCountFrame = Frame(multiworldFrame) + countLabel = Label(worldCountFrame, text='World Count') + guivars['world_count'] = StringVar() + countSpinbox = Spinbox(worldCountFrame, from_=1, to=100, textvariable=guivars['world_count'], width=3) + + countLabel.pack(side=LEFT) + countSpinbox.pack(side=LEFT, padx=2) + worldCountFrame.pack(side=LEFT, anchor=N, padx=10, pady=(1,5)) + + playerNumFrame = Frame(multiworldFrame) + countLabel = Label(playerNumFrame, text='Player Number') + guivars['player_num'] = StringVar() + countSpinbox = Spinbox(playerNumFrame, from_=1, to=100, textvariable=guivars['player_num'], width=3) + + countLabel.pack(side=LEFT) + countSpinbox.pack(side=LEFT, padx=2) + playerNumFrame.pack(side=LEFT, anchor=N, padx=10, pady=(1,5)) + multiworldFrame.pack(side=TOP, anchor=W, padx=5, pady=(1,1)) # didn't refactor the rest, sorry diff --git a/Settings.py b/Settings.py index 0de776305..7282c05b8 100644 --- a/Settings.py +++ b/Settings.py @@ -493,7 +493,8 @@ def __init__(self, settings_dict): 'text': 'Shuffle Songs with Items', 'group': 'logic', 'widget': 'Checkbutton', - 'default': 'unchecked' + 'default': 'unchecked', + 'dependency': { 'shuffle_song_items':True } }), Setting_Info('keysanity', bool, 1, True, { diff --git a/version.py b/version.py index 4bc350fef..d5b63ae16 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.18 f.LUM' \ No newline at end of file +__version__ = '2.13.19 f.LUM' \ No newline at end of file From e58350c2f74b8629c781e42d8804536630f9923f Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Fri, 20 Jul 2018 09:13:46 -0400 Subject: [PATCH 189/755] Fixed random seeds not being consistent --- BaseClasses.py | 70 +++++++++++++++++++++++++------------------------- Dungeons.py | 12 ++++----- Items.py | 6 ++--- Main.py | 6 ++--- Regions.py | 8 +++--- version.py | 2 +- 6 files changed, 52 insertions(+), 52 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index b6706984c..e035b1a98 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -9,8 +9,8 @@ class World(object): def __init__(self, settings): self.shuffle = 'vanilla' - self.dungeons = set() - self.regions = set() + self.dungeons = [] + self.regions = [] self.itempool = [] self.state = CollectionState(self) self._cached_locations = None @@ -18,7 +18,7 @@ def __init__(self, settings): self._region_cache = {} self._entrance_cache = {} self._location_cache = {} - self.required_locations = set() + self.required_locations = [] # dump settings directly into world's namespace # this gives the world an attribute for every setting listed in Settings.py @@ -139,7 +139,7 @@ def get_location(self, location): raise RuntimeError('No such location %s' % location) def get_items(self): - return {loc.item for loc in self.get_filled_locations()} + self.itempool + return [loc.item for loc in self.get_filled_locations()] + self.itempool def get_dungeon_items(self): itempool = {item for dungeon in self.dungeons for item in dungeon.all_items if item.key or self.place_dungeon_items} @@ -148,7 +148,7 @@ def get_dungeon_items(self): return itempool def find_items(self, item): - return {location for location in self.get_locations() if location.item is not None and location.item.name == item} + return [location for location in self.get_locations() if location.item is not None and location.item.name == item] def push_item(self, location, item): if not isinstance(location, Location): @@ -165,26 +165,26 @@ def push_item(self, location, item): def get_locations(self): if self._cached_locations is None: - self._cached_locations = set() + self._cached_locations = [] for region in self.regions: - self._cached_locations = self._cached_locations.union(region.locations) + self._cached_locations.extend(region.locations) return self._cached_locations def get_unfilled_locations(self): - return {location for location in self.get_locations() if location.item is None} + return [location for location in self.get_locations() if location.item is None] def get_filled_locations(self): - return {location for location in self.get_locations() if location.item is not None} + return [location for location in self.get_locations() if location.item is not None] def get_reachable_locations(self, state=None): if state is None: state = self.state - return {location for location in self.get_locations() if state.can_reach(location)} + return [location for location in self.get_locations() if state.can_reach(location)] def get_placeable_locations(self, state=None): if state is None: state = self.state - return {location for location in self.get_locations() if location.item is None and state.can_reach(location)} + return [location for location in self.get_locations() if location.item is None and state.can_reach(location)] def unlocks_new_location(self, item): temp_state = self.state.copy() @@ -230,7 +230,7 @@ def __init__(self, parent): self.location_cache = {} self.entrance_cache = {} self.recursion_count = 0 - self.collected_locations = set() + self.collected_locations = {} def clear_cached_unreachable(self): # we only need to invalidate results which were False, places we could reach before we can still reach after adding more items @@ -437,16 +437,16 @@ def get_states_with_items(base_state_list, itempool): @staticmethod def collect_locations(state_list): # Get all item locations in the worlds - item_locations = {location for state in state_list for location in state.world.get_filled_locations() if location.item.advancement} + item_locations = [location for state in state_list for location in state.world.get_filled_locations() if location.item.advancement] # will loop if there is more items opened up in the previous iteration. Always run once reachable_items_locations = True while reachable_items_locations: # get reachable new items locations - reachable_items_locations = {location for location in item_locations if location.name not in state_list[location.world.id].collected_locations and state_list[location.world.id].can_reach(location)} + reachable_items_locations = [location for location in item_locations if location.name not in state_list[location.world.id].collected_locations and state_list[location.world.id].can_reach(location)] for location in reachable_items_locations: # Mark the location collected in the state world it exists in - state_list[location.world.id].collected_locations.add(location.name) + state_list[location.world.id].collected_locations[location.name] = True # Collect the item for the state world it is for state_list[location.item.world.id].collect(location.item) @@ -457,16 +457,16 @@ def collect_locations(state_list): @staticmethod def remove_locations(state_list): # Get all item locations in the worlds - item_locations = {location for state in state_list for location in state.world.get_filled_locations() if location.item.advancement} + item_locations = [location for state in state_list for location in state.world.get_filled_locations() if location.item.advancement] # will loop if there is more items removed in the previous iteration. Always run once unreachable_items_locations = True while unreachable_items_locations: # get unreachable new items locations - unreachable_items_locations = {location for location in item_locations if location.name in state_list[location.world.id].collected_locations and not state_list[location.world.id].can_reach(location)} + unreachable_items_locations = [location for location in item_locations if location.name in state_list[location.world.id].collected_locations and not state_list[location.world.id].can_reach(location)] for location in unreachable_items_locations: # Mark the location uncollected in the state world it exists in - state_list[location.world.id].collected_locations.remove(location.name) + del state_list[location.world.id].collected_locations[location.name] # Remove the item for the state world it is for state_list[location.item.world.id].remove(location.item) @@ -502,15 +502,15 @@ def update_required_items(worlds): state_list = [CollectionState(world) for world in worlds] CollectionState.collect_locations(state_list) - item_locations = set() + item_locations = [] if worlds[0].spoiler.playthrough: - item_locations = {location for _,sphere in worlds[0].spoiler.playthrough.items() for location in sphere - if location.item.type != 'Event' and not location.event and (worlds[0].settings.keysanity or not location.item.key)} + item_locations = [location for _,sphere in worlds[0].spoiler.playthrough.items() for location in sphere + if location.item.type != 'Event' and not location.event and (worlds[0].settings.keysanity or not location.item.key)] else: - item_locations = {location for world in worlds for location in world.get_filled_locations() - if location.item.advancement and location.item.type != 'Event' and not location.event and (worlds[0].settings.keysanity or not location.item.key)} + item_locations = [location for world in worlds for location in world.get_filled_locations() + if location.item.advancement and location.item.type != 'Event' and not location.event and (worlds[0].settings.keysanity or not location.item.key)] - required_locations = set() + required_locations = [] for location in item_locations: old_item = location.item new_state_list = [state.copy() for state in state_list] @@ -520,11 +520,11 @@ def update_required_items(worlds): CollectionState.remove_locations(new_state_list) if not CollectionState.can_beat_game(new_state_list, False): - required_locations.add(location) + required_locations.append(location) location.item = old_item for world in worlds: - world.spoiler.required_locations = {location for location in required_locations if location.world.id == world.id} + world.spoiler.required_locations = [location for location in required_locations if location.world.id == world.id] @unique @@ -545,9 +545,9 @@ class Region(object): def __init__(self, name, type): self.name = name self.type = type - self.entrances = set() - self.exits = set() - self.locations = set() + self.entrances = [] + self.exits = [] + self.locations = [] self.dungeon = None self.world = None self.spot_type = 'Region' @@ -598,7 +598,7 @@ def connect(self, region, addresses=None, target=None, vanilla=None): self.target = target self.addresses = addresses self.vanilla = vanilla - region.entrances.add(self) + region.entrances.append(self) def __str__(self): return str(self.__unicode__()) @@ -611,21 +611,21 @@ class Dungeon(object): def __init__(self, name, regions, boss_key, small_keys, dungeon_items): self.name = name - self.regions = set(regions) + self.regions = regions self.boss_key = boss_key self.small_keys = small_keys self.dungeon_items = dungeon_items @property def keys(self): - return self.small_keys.union({self.boss_key} if self.boss_key else set()) + return self.small_keys + ([self.boss_key] if self.boss_key else []) @property def all_items(self): - return self.dungeon_items.union(self.keys) + return self.dungeon_items + self.keys def is_dungeon_item(self, item): - return item.name in {dungeon_item.name for dungeon_item in self.all_items} + return item.name in [dungeon_item.name for dungeon_item in self.all_items] def __str__(self): return str(self.__unicode__()) @@ -716,7 +716,7 @@ def __init__(self, world): self.playthrough = {} self.locations = {} self.metadata = {} - self.required_locations = set() + self.required_locations = [] def parse_data(self): spoiler_locations = [] diff --git a/Dungeons.py b/Dungeons.py index e24b019d4..e1b6194f7 100644 --- a/Dungeons.py +++ b/Dungeons.py @@ -11,18 +11,18 @@ def make_dungeon(name, dungeon_regions, boss_key, small_keys, dungeon_items): world.get_region(region).dungeon = dungeon return dungeon - DT = make_dungeon('Deku Tree', ['Deku Tree Lobby', 'Deku Tree Slingshot Room', 'Deku Tree Boss Room'], None, set(), ItemFactory(['Map (Deku Tree)', 'Compass (Deku Tree)'])) - DC = make_dungeon('Dodongos Cavern', ['Dodongos Cavern Beginning', 'Dodongos Cavern Lobby', 'Dodongos Cavern Climb', 'Dodongos Cavern Far Bridge', 'Dodongos Cavern Boss Area'], None, set(), ItemFactory(['Map (Dodongos Cavern)', 'Compass (Dodongos Cavern)'])) - JB = make_dungeon('Jabu Jabus Belly', ['Jabu Jabus Belly Beginning', 'Jabu Jabus Belly Main', 'Jabu Jabus Belly Depths', 'Jabu Jabus Belly Boss Area'], None, set(), ItemFactory(['Map (Jabu Jabus Belly)', 'Compass (Jabu Jabus Belly)'])) + DT = make_dungeon('Deku Tree', ['Deku Tree Lobby', 'Deku Tree Slingshot Room', 'Deku Tree Boss Room'], None, [], ItemFactory(['Map (Deku Tree)', 'Compass (Deku Tree)'])) + DC = make_dungeon('Dodongos Cavern', ['Dodongos Cavern Beginning', 'Dodongos Cavern Lobby', 'Dodongos Cavern Climb', 'Dodongos Cavern Far Bridge', 'Dodongos Cavern Boss Area'], None, [], ItemFactory(['Map (Dodongos Cavern)', 'Compass (Dodongos Cavern)'])) + JB = make_dungeon('Jabu Jabus Belly', ['Jabu Jabus Belly Beginning', 'Jabu Jabus Belly Main', 'Jabu Jabus Belly Depths', 'Jabu Jabus Belly Boss Area'], None, [], ItemFactory(['Map (Jabu Jabus Belly)', 'Compass (Jabu Jabus Belly)'])) FoT = make_dungeon('Forest Temple', ['Forest Temple Lobby', 'Forest Temple NW Outdoors', 'Forest Temple NE Outdoors', 'Forest Temple Falling Room', 'Forest Temple Block Push Room', 'Forest Temple Straightened Hall', 'Forest Temple Outside Upper Ledge', 'Forest Temple Bow Region', 'Forest Temple Boss Region'], ItemFactory('Boss Key (Forest Temple)'), ItemFactory(['Small Key (Forest Temple)'] * 5), ItemFactory(['Map (Forest Temple)', 'Compass (Forest Temple)'])) BW = make_dungeon('Bottom of the Well', ['Bottom of the Well'], None, ItemFactory(['Small Key (Bottom of the Well)'] * 3), ItemFactory(['Map (Bottom of the Well)', 'Compass (Bottom of the Well)'])) FiT = make_dungeon('Fire Temple', ['Fire Temple Lower', 'Fire Temple Middle', 'Fire Temple Upper'], ItemFactory('Boss Key (Fire Temple)'), ItemFactory(['Small Key (Fire Temple)'] * 8), ItemFactory(['Map (Fire Temple)', 'Compass (Fire Temple)'])) - IC = make_dungeon('Ice Cavern', ['Ice Cavern'], None, set(), ItemFactory(['Map (Ice Cavern)', 'Compass (Ice Cavern)'])) + IC = make_dungeon('Ice Cavern', ['Ice Cavern'], None, [], ItemFactory(['Map (Ice Cavern)', 'Compass (Ice Cavern)'])) WT = make_dungeon('Water Temple', ['Water Temple Lobby', 'Water Temple Middle Water Level', 'Water Temple Dark Link Region'], ItemFactory('Boss Key (Water Temple)'), ItemFactory(['Small Key (Water Temple)'] * 6), ItemFactory(['Map (Water Temple)', 'Compass (Water Temple)'])) ShT = make_dungeon('Shadow Temple', ['Shadow Temple Beginning', 'Shadow Temple First Beamos', 'Shadow Temple Huge Pit', 'Shadow Temple Wind Tunnel', 'Shadow Temple Beyond Boat'], ItemFactory('Boss Key (Shadow Temple)'), ItemFactory(['Small Key (Shadow Temple)'] * 5), ItemFactory(['Map (Shadow Temple)', 'Compass (Shadow Temple)'])) - GTG = make_dungeon('Gerudo Training Grounds', ['Gerudo Training Grounds Lobby', 'Gerudo Training Grounds Central Maze', 'Gerudo Training Grounds Central Maze Right', 'Gerudo Training Grounds Lava Room', 'Gerudo Training Grounds Hammer Room', 'Gerudo Training Grounds Eye Statue Lower', 'Gerudo Training Grounds Eye Statue Upper', 'Gerudo Training Grounds Heavy Block Room'], None, ItemFactory(['Small Key (Gerudo Training Grounds)'] * 9), set()) + GTG = make_dungeon('Gerudo Training Grounds', ['Gerudo Training Grounds Lobby', 'Gerudo Training Grounds Central Maze', 'Gerudo Training Grounds Central Maze Right', 'Gerudo Training Grounds Lava Room', 'Gerudo Training Grounds Hammer Room', 'Gerudo Training Grounds Eye Statue Lower', 'Gerudo Training Grounds Eye Statue Upper', 'Gerudo Training Grounds Heavy Block Room'], None, ItemFactory(['Small Key (Gerudo Training Grounds)'] * 9), []) SpT = make_dungeon('Spirit Temple', ['Spirit Temple Lobby', 'Child Spirit Temple', 'Early Adult Spirit Temple', 'Spirit Temple Central Chamber', 'Spirit Temple Beyond Central Locked Door', 'Spirit Temple Beyond Final Locked Door'], ItemFactory('Boss Key (Spirit Temple)'), ItemFactory(['Small Key (Spirit Temple)'] * 5), ItemFactory(['Map (Spirit Temple)', 'Compass (Spirit Temple)'])) - GC = make_dungeon('Ganons Castle', ['Ganons Castle Lobby', 'Ganons Castle Forest Trial', 'Ganons Castle Fire Trial', 'Ganons Castle Water Trial', 'Ganons Castle Shadow Trial', 'Ganons Castle Spirit Trial', 'Ganons Castle Light Trial', 'Ganons Castle Tower'], ItemFactory('Boss Key (Ganons Castle)'), ItemFactory(['Small Key (Ganons Castle)'] * 2), set()) + GC = make_dungeon('Ganons Castle', ['Ganons Castle Lobby', 'Ganons Castle Forest Trial', 'Ganons Castle Fire Trial', 'Ganons Castle Water Trial', 'Ganons Castle Shadow Trial', 'Ganons Castle Spirit Trial', 'Ganons Castle Light Trial', 'Ganons Castle Tower'], ItemFactory('Boss Key (Ganons Castle)'), ItemFactory(['Small Key (Ganons Castle)'] * 2), []) world.dungeons = [DT, DC, JB, FoT, BW, FiT, IC, WT, ShT, GTG, SpT, GC] \ No newline at end of file diff --git a/Items.py b/Items.py index f80fb9fdb..53a554bfb 100644 --- a/Items.py +++ b/Items.py @@ -4,7 +4,7 @@ def ItemFactory(items): - ret = set() + ret = [] singleton = False if isinstance(items, str): items = [items] @@ -12,13 +12,13 @@ def ItemFactory(items): for item in items: if item in item_table: advancement, priority, type, code, index = item_table[item] - ret.add(Item(item, advancement, priority, type, code, index)) + ret.append(Item(item, advancement, priority, type, code, index)) else: logging.getLogger('').warning('Unknown Item: %s', item) return None if singleton: - return ret.pop() + return ret[0] return ret diff --git a/Main.py b/Main.py index aa815577f..1a723236d 100644 --- a/Main.py +++ b/Main.py @@ -128,7 +128,7 @@ def create_playthrough(worlds): reachable_items_locations = [location for location in item_locations if location.name not in state_list[location.world.id].collected_locations and state_list[location.world.id].can_reach(location)] for location in reachable_items_locations: # Mark the location collected in the state world it exists in - state_list[location.world.id].collected_locations.add(location.name) + state_list[location.world.id].collected_locations[location.name] = True # Collect the item for the state world it is for state_list[location.item.world.id].collect(location.item) if reachable_items_locations: @@ -137,7 +137,7 @@ def create_playthrough(worlds): # in the second phase, we cull each sphere such that the game is still beatable, reducing each # range of influence to the bare minimum required inside it. Effectively creates a min play for num, sphere in reversed(list(enumerate(collection_spheres))): - to_delete = set() + to_delete = [] for location in sphere: # we remove the item at location and check if game is still beatable logging.getLogger('').debug('Checking if %s is required to beat the game.', location.item.name) @@ -148,7 +148,7 @@ def create_playthrough(worlds): state_list[old_item.world.id].remove(old_item) CollectionState.remove_locations(state_list) if CollectionState.can_beat_game(state_list, False): - to_delete.add(location) + to_delete.append(location) else: # still required, got to keep it around state_list = old_state_list diff --git a/Regions.py b/Regions.py index f6597929d..f6c65ca7c 100644 --- a/Regions.py +++ b/Regions.py @@ -191,15 +191,15 @@ def create_grotto_region(name, locations=None, exits=None): def _create_region(name, type, locations=None, exits=None): ret = Region(name, type) if locations is None: - locations = set() + locations = [] if exits is None: - exits = set() + exits = [] for exit in exits: - ret.exits.add(Entrance(exit, ret)) + ret.exits.append(Entrance(exit, ret)) for location in locations: address, address2, default, type, scene, hint = location_table[location] - ret.locations.add(Location(location, address, address2, default, type, scene, hint, ret)) + ret.locations.append(Location(location, address, address2, default, type, scene, hint, ret)) return ret location_table = {'Kokiri Sword Chest': (0x20A6142, None, 0x04E0, 'Chest', 0x55, 'Kokiri Forest'), diff --git a/version.py b/version.py index d5b63ae16..060450860 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.19 f.LUM' \ No newline at end of file +__version__ = '2.13.20 f.LUM' \ No newline at end of file From 3fa69600c6208bfbed072e8515457fc538e41744 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Fri, 20 Jul 2018 09:32:39 -0400 Subject: [PATCH 190/755] Fix player id in text boxes not showing correct player in shops --- ASM/src/item_overrides.asm | 7 ++++++- data/base2current.json | 2 +- version.py | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/ASM/src/item_overrides.asm b/ASM/src/item_overrides.asm index 8758bb314..ca20d5a6d 100755 --- a/ASM/src/item_overrides.asm +++ b/ASM/src/item_overrides.asm @@ -434,6 +434,11 @@ scan_override_table: li v0, -1 + li t0, PLAYER_ID + lb t1, 0x00(t0) + li t0, SAVE_CONTEXT + sh t1, 0x1406(t0) ; set points to current player: default + ; Look up override li t0, (ITEM_OVERRIDES - 0x04) @@lookup_loop: @@ -455,7 +460,7 @@ scan_override_table: andi v0, t1, 0xFF ; v0 = found item ID li t0, SAVE_CONTEXT - sb t3, 0x1407(t0) ; set the point value to the player number + sh t3, 0x1406(t0) ; set the point value to the player number li t1, PLAYER_OVERRIDE_DATA diff --git a/data/base2current.json b/data/base2current.json index 231f2a913..bde6f0540 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -1 +1 @@ -[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 128]}, {"11325064": [12, 16, 11, 115, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 11, 242]}, {"11427296": [12, 16, 11, 120, 52, 2, 0, 255, 16, 0, 5, 97]}, {"11427312": [12, 16, 12, 155]}, {"11431496": [12, 16, 11, 120, 1, 15, 192, 33]}, {"11562028": [12, 16, 12, 188]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 12, 171]}, {"11882076": [12, 16, 12, 136]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 11, 209, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 11, 216, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 11, 223, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 11, 202, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 72]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 9, 219]}, {"12427480": [12, 16, 10, 47]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 51]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 11, 149, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 84]}, {"12491480": [12, 16, 10, 93]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 72]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 11, 230]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 140, 73]}, {"14149503": [164]}, {"14149512": [2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149856": [87]}, {"14149859": [15]}, {"14357459": [118]}, {"14624335": [118]}, {"14872723": [52]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 9, 248, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 9, 248, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 36, 152, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 36, 180, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 36, 220, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 4, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 44, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 84, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 112, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 140, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 168, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 28, 128, 64, 36, 144, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 20, 128, 64, 36, 144, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 20, 128, 64, 37, 220, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 20, 128, 64, 37, 220, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 20, 128, 64, 37, 220, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 20, 128, 64, 37, 248, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 20, 128, 64, 37, 248, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 20, 128, 64, 37, 248, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 20, 128, 64, 36, 144, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 20, 128, 64, 36, 144, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 38, 172, 128, 64, 36, 144, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 38, 204, 128, 64, 37, 196, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 38, 236, 128, 64, 36, 144, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 39, 20, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 39, 92, 128, 64, 39, 64, 3, 224]}, {"55059603": [8, 52, 162]}, {"55059608": [144, 136]}, {"55059611": [125, 52, 1]}, {"55059615": [255, 17, 1]}, {"55059619": [2, 52, 2]}, {"55059623": [8, 52, 2]}, {"55059627": [9, 3, 224]}, {"55059631": [8]}, {"55059636": [144, 136]}, {"55059639": [163, 49, 8]}, {"55059643": [192, 17]}, {"55059647": [5, 52, 2]}, {"55059651": [84, 52, 1]}, {"55059655": [64, 17, 1]}, {"55059659": [2, 52, 2]}, {"55059663": [53, 52, 2]}, {"55059667": [54, 3, 224]}, {"55059671": [8]}, {"55059676": [144, 136]}, {"55059679": [163, 49, 8]}, {"55059683": [24, 17]}, {"55059687": [5, 52, 2]}, {"55059691": [50, 52, 1]}, {"55059695": [8, 17, 1]}, {"55059699": [2, 52, 2]}, {"55059703": [51, 52, 2]}, {"55059707": [52, 3, 224]}, {"55059711": [8]}, {"55059716": [144, 136]}, {"55059719": [163, 49, 8]}, {"55059723": [3, 17]}, {"55059727": [5, 52, 2]}, {"55059731": [4, 52, 1]}, {"55059735": [1, 17, 1]}, {"55059739": [2, 52, 2]}, {"55059743": [48, 52, 2]}, {"55059747": [49, 3, 224]}, {"55059751": [8]}, {"55059756": [144, 136]}, {"55059759": [162, 49, 8]}, {"55059763": [192, 17]}, {"55059767": [5, 52, 2]}, {"55059771": [5, 52, 1]}, {"55059775": [64, 17, 1]}, {"55059779": [2, 52, 2]}, {"55059783": [96, 52, 2]}, {"55059787": [123, 3, 224]}, {"55059791": [8]}, {"55059796": [144, 136]}, {"55059799": [162, 49, 8]}, {"55059803": [48, 17]}, {"55059807": [2, 52, 2]}, {"55059811": [69, 52, 2]}, {"55059815": [70, 3, 224]}, {"55059819": [8]}, {"55059824": [144, 136]}, {"55059827": [162, 49, 8]}, {"55059831": [6, 17]}, {"55059835": [2, 52, 2]}, {"55059839": [55, 52, 2]}, {"55059843": [56, 3, 224]}, {"55059847": [8]}, {"55059852": [144, 136]}, {"55059855": [161, 49, 8]}, {"55059859": [32, 17]}, {"55059863": [2, 52, 2]}, {"55059867": [121, 52, 2]}, {"55059871": [122, 3, 224]}, {"55059875": [8]}, {"55059880": [144, 136]}, {"55059883": [161, 49, 8]}, {"55059887": [4, 17]}, {"55059891": [2, 52, 2]}, {"55059895": [119, 52, 2]}, {"55059899": [120, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [50, 17]}, {"55059915": [2, 52, 2]}, {"55059919": [192, 52, 2]}, {"55059923": [193, 3, 224]}, {"55059927": [8]}, {"55059932": [144, 136]}, {"55059935": [163, 49, 8]}, {"55059939": [3, 17]}, {"55059943": [2, 52, 2]}, {"55059947": [77, 52, 162]}, {"55059952": [3, 224]}, {"55059955": [8]}, {"55059960": [144, 136]}, {"55059963": [163, 49, 8]}, {"55059967": [24, 17]}, {"55059971": [2, 52, 2]}, {"55059975": [77, 52, 162]}, {"55059980": [3, 224]}, {"55059983": [8]}, {"55059988": [3, 224]}, {"55059991": [8]}, {"55059996": [52, 8]}, {"55059999": [1, 160, 136]}, {"55060003": [62, 3, 224]}, {"55060007": [8]}, {"55060012": [36, 136]}, {"55060015": [134, 36, 9, 255, 255, 37, 41]}, {"55060023": [1, 52, 1]}, {"55060027": [3]}, {"55060029": [41, 8, 42, 20, 32]}, {"55060035": [7]}, {"55060040": [1, 9, 80, 33, 145, 75]}, {"55060048": [52, 1]}, {"55060051": [255, 21, 97, 255, 247]}, {"55060060": [161, 69]}, {"55060064": [3, 224]}, {"55060067": [8]}, {"55060072": [36, 136]}, {"55060075": [168, 1, 6, 64, 33, 145, 9]}, {"55060084": [1, 37, 72, 37, 161, 9]}, {"55060092": [3, 224]}, {"55060095": [8]}, {"55060100": [36, 136]}, {"55060103": [188, 1, 5, 64, 33, 129, 9]}, {"55060112": [5, 33]}, {"55060115": [2]}, {"55060120": [52, 9]}, {"55060124": [37, 41]}, {"55060127": [1, 161, 9]}, {"55060132": [3, 224]}, {"55060135": [8]}, {"55060140": [52, 8]}, {"55060143": [1, 160, 136]}, {"55060147": [61, 52, 8]}, {"55060151": [20, 160, 136]}, {"55060155": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060167": [8]}, {"55060172": [52, 8]}, {"55060175": [1, 160, 136]}, {"55060179": [50, 160, 136]}, {"55060183": [58, 52, 8]}, {"55060187": [48, 164, 136, 19, 244, 160, 136]}, {"55060195": [51, 3, 224]}, {"55060199": [8]}, {"55060204": [52, 8]}, {"55060207": [2, 160, 136]}, {"55060211": [50, 52, 8]}, {"55060215": [1, 160, 136]}, {"55060219": [58, 160, 136]}, {"55060223": [60, 52, 8]}, {"55060227": [96, 164, 136, 19, 244, 160, 136]}, {"55060235": [51, 3, 224]}, {"55060239": [8]}, {"55060244": [144, 136]}, {"55060247": [124, 52, 1]}, {"55060251": [255, 17, 1]}, {"55060255": [6, 52, 2]}, {"55060259": [107, 144, 136]}, {"55060263": [148, 45, 8]}, {"55060267": [6, 17]}, {"55060271": [2, 52, 2]}, {"55060275": [106, 52, 2]}, {"55060279": [3, 3, 224]}, {"55060283": [8]}, {"55060288": [144, 136]}, {"55060291": [123, 52, 1]}, {"55060295": [255, 17, 1]}, {"55060299": [2, 52, 162]}, {"55060304": [52, 2]}, {"55060307": [12, 3, 224]}, {"55060311": [8]}, {"55060316": [52, 8]}, {"55060319": [7, 160, 136]}, {"55060323": [123, 3, 224]}, {"55060327": [8]}, {"55060332": [48, 132]}, {"55060335": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060347": [140, 16, 129]}, {"55060351": [22, 145, 2]}, {"55060355": [117, 52, 1]}, {"55060359": [141, 16, 129]}, {"55060363": [19, 145, 2]}, {"55060367": [117, 16, 128]}, {"55060371": [17, 145, 2]}, {"55060375": [116, 52, 1]}, {"55060379": [138, 16, 129]}, {"55060383": [14, 145, 2]}, {"55060387": [116, 52, 1]}, {"55060391": [139, 16, 129]}, {"55060395": [11, 145, 2]}, {"55060399": [116, 52, 1]}, {"55060403": [88, 16, 129]}, {"55060407": [8, 52, 2]}, {"55060412": [52, 1]}, {"55060415": [120, 16, 129]}, {"55060419": [5, 52, 2]}, {"55060424": [52, 1]}, {"55060427": [121, 16, 129]}, {"55060431": [2, 52, 2]}, {"55060436": [52, 2]}, {"55060439": [255, 3, 224]}, {"55060443": [8]}, {"55060448": [39, 189, 255, 224, 175, 191]}, {"55060455": [16, 175, 176]}, {"55060459": [20, 12, 16, 10, 199]}, {"55060468": [4, 65]}, {"55060471": [2]}, {"55060476": [52, 2]}, {"55060479": [91]}, {"55060481": [64, 32, 33, 12, 16, 11, 39]}, {"55060492": [16, 96]}, {"55060495": [18, 175, 163]}, {"55060499": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060508": [133, 9]}, {"55060511": [2, 17, 32]}, {"55060515": [3, 52, 10]}, {"55060519": [1, 16]}, {"55060523": [8, 165, 10]}, {"55060528": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060539": [6, 144, 102]}, {"55060543": [7, 140, 105]}, {"55060547": [8, 1, 32, 248, 9]}, {"55060556": [143, 163]}, {"55060559": [28, 144, 101]}, {"55060563": [3, 16]}, {"55060567": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060579": [6]}, {"55060581": [74]}, {"55060583": [24]}, {"55060586": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060596": [60, 8, 128, 64, 37, 8, 32]}, {"55060604": [133, 9]}, {"55060607": [2, 17, 32]}, {"55060611": [3, 52, 10]}, {"55060615": [1, 165, 10]}, {"55060620": [52, 5]}, {"55060623": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060635": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060646": [48, 33, 143, 191]}, {"55060651": [16, 143, 176]}, {"55060655": [20, 39, 189]}, {"55060659": [32, 3, 224]}, {"55060663": [8]}, {"55060668": [143, 166]}, {"55060671": [48, 132, 197]}, {"55060675": [4, 8, 16, 10, 55]}, {"55060684": [143, 185]}, {"55060687": [44, 135, 37]}, {"55060691": [4, 8, 16, 10, 55]}, {"55060700": [60, 10, 128, 64, 37, 74, 32, 4, 141, 75]}, {"55060711": [12, 17, 96]}, {"55060715": [2]}, {"55060720": [149, 69]}, {"55060723": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060736": [60, 9, 128, 64, 37, 41, 32, 20, 129, 42]}, {"55060747": [3, 5, 64]}, {"55060751": [2, 1, 42, 72, 32, 161, 32]}, {"55060760": [3, 224]}, {"55060763": [8]}, {"55060768": [60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55060779": [12, 17, 32]}, {"55060783": [2]}, {"55060788": [129, 3]}, {"55060791": [2]}, {"55060793": [3, 15, 195]}, {"55060797": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55060811": [8]}, {"55060816": [144, 69]}, {"55060819": [3, 60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55060831": [12, 17, 32]}, {"55060835": [2]}, {"55060840": [145, 5]}, {"55060843": [3, 3, 224]}, {"55060847": [8]}, {"55060852": [143, 162]}, {"55060855": [36, 144, 69]}, {"55060860": [60, 8, 128, 64, 37, 8, 32]}, {"55060868": [133, 9]}, {"55060871": [2, 17, 32]}, {"55060875": [4, 52, 10]}, {"55060879": [1, 165, 10]}, {"55060884": [16]}, {"55060887": [24, 52, 5]}, {"55060891": [65, 60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55060903": [12, 17, 32]}, {"55060907": [19]}, {"55060912": [145, 5]}, {"55060915": [1, 175, 164]}, {"55060920": [175, 165]}, {"55060923": [4, 175, 166]}, {"55060927": [8, 39, 189, 255, 232, 175, 191]}, {"55060935": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55060947": [6, 145, 6]}, {"55060951": [7, 141, 9]}, {"55060955": [8, 1, 32, 248, 9]}, {"55060964": [143, 191]}, {"55060967": [16, 39, 189]}, {"55060971": [24, 143, 164]}, {"55060976": [143, 165]}, {"55060979": [4, 143, 166]}, {"55060983": [8, 3, 224]}, {"55060987": [8]}, {"55060992": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061003": [16, 175, 163]}, {"55061007": [20, 175, 191]}, {"55061011": [24, 12, 16, 10, 141]}, {"55061020": [143, 162]}, {"55061023": [16, 143, 163]}, {"55061027": [20, 143, 191]}, {"55061031": [24, 39, 189]}, {"55061035": [32, 3, 224]}, {"55061039": [8]}, {"55061044": [39, 189, 255, 232, 175, 191]}, {"55061051": [16, 60, 8, 128, 64, 37, 8, 32, 4, 173]}, {"55061064": [173]}, {"55061067": [4, 173]}, {"55061071": [8, 173]}, {"55061075": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061091": [42]}, {"55061097": [9, 15, 195, 1, 33, 32, 38]}, {"55061105": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 199]}, {"55061120": [4, 64]}, {"55061123": [34]}, {"55061128": [52, 68]}, {"55061132": [12, 16, 11, 39]}, {"55061140": [16, 96]}, {"55061143": [12]}, {"55061148": [60, 8, 128, 64, 37, 8, 32, 4, 140, 105]}, {"55061160": [173, 9]}, {"55061164": [140, 105]}, {"55061167": [4, 173, 9]}, {"55061171": [4, 140, 105]}, {"55061175": [8, 173, 9]}, {"55061179": [8, 52, 9]}, {"55061183": [1, 173, 9]}, {"55061187": [12, 144, 98]}, {"55061192": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061208": [52, 1]}, {"55061211": [10, 21, 65]}, {"55061215": [6]}, {"55061220": [149, 42]}, {"55061223": [28, 49, 74, 240, 31]}, {"55061229": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061239": [28, 129, 9, 4, 36, 5, 33]}, {"55061247": [2]}, {"55061253": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061263": [16, 39, 189]}, {"55061267": [24, 3, 224]}, {"55061271": [8]}, {"55061276": [39, 189, 255, 232, 175, 191]}, {"55061283": [16, 12, 16, 10, 213]}, {"55061292": [36, 1, 255, 255, 16, 65]}, {"55061299": [4]}, {"55061304": [52, 68]}, {"55061308": [12, 16, 11, 9]}, {"55061316": [143, 191]}, {"55061319": [16, 39, 189]}, {"55061323": [24, 3, 224]}, {"55061327": [8]}, {"55061332": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061343": [164, 52, 8]}, {"55061348": [52, 137]}, {"55061352": [148, 170]}, {"55061356": [52, 1, 1, 156, 21, 65]}, {"55061363": [8]}, {"55061368": [52, 8]}, {"55061371": [3, 148, 171]}, {"55061375": [28, 49, 105]}, {"55061379": [255, 49, 98, 31]}, {"55061385": [2, 18, 2, 16]}, {"55061391": [31]}, {"55061396": [52, 1]}, {"55061399": [10, 21, 65]}, {"55061403": [14]}, {"55061408": [148, 171]}, {"55061411": [28, 52, 1]}, {"55061415": [16, 20, 65]}, {"55061419": [8]}, {"55061424": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061435": [4]}, {"55061440": [36, 2, 255, 255, 16]}, {"55061447": [21]}, {"55061452": [52, 8]}, {"55061455": [1, 49, 105]}, {"55061459": [31, 52, 1]}, {"55061463": [21, 21, 65]}, {"55061467": [12]}, {"55061472": [52, 1]}, {"55061475": [62, 16, 129]}, {"55061479": [7]}, {"55061484": [52, 1]}, {"55061487": [66, 16, 129]}, {"55061491": [4]}, {"55061496": [36, 2, 255, 255, 16]}, {"55061503": [7]}, {"55061508": [52, 8]}, {"55061511": [2, 144, 169, 1, 65]}, {"55061517": [2, 18]}, {"55061521": [72, 16, 37]}, {"55061525": [2, 18]}, {"55061529": [73, 16, 37, 3, 224]}, {"55061535": [8]}, {"55061540": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061555": [4, 141, 9]}, {"55061560": [17, 32]}, {"55061563": [22]}, {"55061569": [9, 82, 2, 49, 75, 248]}, {"55061577": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061600": [49, 34]}, {"55061603": [255, 60, 8, 128, 18, 37, 8, 165, 208, 161, 11, 20, 7, 60, 9, 128, 64, 37, 41, 32]}, {"55061624": [60, 12, 128, 64, 37, 140, 28]}, {"55061632": [129, 140]}, {"55061636": [17, 108]}, {"55061639": [3, 165, 32]}, {"55061643": [2, 161, 43]}, {"55061647": [2, 161, 34]}, {"55061651": [3, 3, 224]}, {"55061655": [8]}, {"55061660": [39, 189, 255, 224, 175, 176]}, {"55061667": [16, 175, 177]}, {"55061671": [20, 175, 191]}, {"55061675": [24, 52, 130]}, {"55061680": [52, 80]}, {"55061684": [38, 8, 255, 128, 5]}, {"55061691": [18]}, {"55061696": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55061707": [16, 1, 9]}, {"55061711": [24]}, {"55061714": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061732": [142, 40]}, {"55061735": [12, 1]}, {"55061738": [248, 9]}, {"55061744": [20, 80, 255, 239]}, {"55061752": [54, 35]}, {"55061756": [16]}, {"55061759": [2]}, {"55061764": [52, 3]}, {"55061768": [143, 176]}, {"55061771": [16, 143, 177]}, {"55061775": [20, 143, 191]}, {"55061779": [24, 39, 189]}, {"55061783": [32, 3, 224]}, {"55061787": [8]}, {"55061792": [140, 136, 29, 44, 52, 9]}, {"55061799": [1]}, {"55061801": [9, 78]}, {"55061804": [1, 9, 16, 36, 16, 64]}, {"55061811": [36]}, {"55061816": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55061831": [164, 52, 1]}, {"55061835": [61, 17, 129]}, {"55061839": [10]}, {"55061845": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55061855": [25]}, {"55061860": [52, 13]}, {"55061863": [1, 161, 141, 29, 40, 37, 74]}, {"55061871": [3, 16]}, {"55061875": [9]}, {"55061880": [52, 12]}, {"55061883": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55061899": [14]}, {"55061904": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55061940": [60, 9, 128, 64, 37, 41, 32, 20, 161, 40]}, {"55061952": [52, 2]}, {"55061956": [3, 224]}, {"55061959": [8]}, {"55061964": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55061976": [16]}, {"55061979": [11]}, {"55061984": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55061996": [16]}, {"55061999": [6]}, {"55062004": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062016": [16]}, {"55062019": [1]}, {"55062024": [60, 9, 128, 64, 37, 41, 32, 20, 60, 10, 128, 64, 37, 74, 32, 23, 129, 44]}, {"55062044": [17, 136]}, {"55062047": [11, 33, 41]}, {"55062051": [1, 21, 42, 255, 252]}, {"55062060": [60, 9, 128, 64, 37, 41, 32, 19, 33, 41]}, {"55062071": [1, 17, 42]}, {"55062075": [4, 129, 44]}, {"55062080": [21, 128, 255, 252]}, {"55062088": [161, 40]}, {"55062092": [3, 224]}, {"55062095": [8]}, {"55062100": [175, 164]}, {"55062103": [104, 175, 165]}, {"55062107": [108, 175, 166]}, {"55062111": [112, 175, 167]}, {"55062115": [116, 39, 189, 255, 232, 175, 163]}, {"55062123": [16, 175, 191]}, {"55062127": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062143": [32, 21]}, {"55062147": [31]}, {"55062152": [60, 9, 128, 64, 37, 41, 32, 23, 52, 10]}, {"55062163": [255, 161, 42]}, {"55062168": [60, 9, 128, 64, 37, 41, 32, 20, 36, 10, 255, 255, 52, 12]}, {"55062183": [3, 33, 74]}, {"55062187": [1, 17, 76]}, {"55062191": [20, 1, 42, 88, 32, 129, 104]}, {"55062200": [17]}, {"55062202": [255, 251]}, {"55062208": [60, 9, 128, 64, 37, 41, 32, 23, 161, 42]}, {"55062220": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062231": [1, 165, 42]}, {"55062236": [60, 9, 128, 65, 52, 10]}, {"55062243": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 141]}, {"55062272": [143, 163]}, {"55062275": [16, 143, 191]}, {"55062279": [20, 39, 189]}, {"55062283": [24, 143, 164]}, {"55062287": [104, 143, 165]}, {"55062291": [108, 143, 166]}, {"55062295": [112, 143, 167]}, {"55062299": [116, 132, 110, 19, 196, 3, 224]}, {"55062307": [8]}, {"55062312": [147, 25]}, {"55062315": [116, 52, 1]}, {"55062319": [255, 23, 33]}, {"55062323": [2]}, {"55062328": [52, 25]}, {"55062331": [44, 3, 224]}, {"55062335": [8, 167, 185]}, {"55062339": [154, 147, 44]}, {"55062343": [116, 52, 1]}, {"55062347": [255, 21, 129]}, {"55062351": [2]}, {"55062356": [52, 12]}, {"55062359": [44, 3, 224]}, {"55062363": [8]}, {"55062368": [145, 174]}, {"55062371": [116, 52, 1]}, {"55062375": [255, 21, 193]}, {"55062379": [2]}, {"55062384": [52, 14]}, {"55062387": [44, 3, 224]}, {"55062391": [8, 167, 174]}, {"55062395": [154, 145, 207]}, {"55062399": [116, 52, 1]}, {"55062403": [255, 21, 225]}, {"55062407": [2]}, {"55062412": [52, 15]}, {"55062415": [44, 3, 224]}, {"55062419": [8, 167, 175]}, {"55062423": [154, 60, 8, 128, 64, 37, 8, 32, 24, 142, 9]}, {"55062435": [104, 173, 9]}, {"55062440": [142, 9]}, {"55062443": [108, 173, 9]}, {"55062447": [4, 150, 9]}, {"55062451": [112, 165, 9]}, {"55062455": [8, 150, 9]}, {"55062459": [156, 165, 9]}, {"55062463": [10, 3, 224]}, {"55062467": [8, 142, 14]}, {"55062471": [4, 39, 189, 255, 224, 175, 176]}, {"55062479": [16, 175, 177]}, {"55062483": [20, 175, 191]}, {"55062487": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 24, 142, 8]}, {"55062507": [4, 17]}, {"55062511": [5]}, {"55062516": [12, 16, 12, 28]}, {"55062524": [16]}, {"55062527": [3]}, {"55062532": [12, 16, 12, 47]}, {"55062540": [12, 16, 12, 15, 52, 4]}, {"55062548": [12, 16, 12, 15, 52, 4]}, {"55062555": [1, 12, 16, 12, 15, 52, 4]}, {"55062563": [2, 143, 176]}, {"55062567": [16, 143, 177]}, {"55062571": [20, 143, 191]}, {"55062575": [24, 39, 189]}, {"55062579": [32, 3, 224]}, {"55062583": [8]}, {"55062588": [2, 4, 64, 33, 145, 9]}, {"55062595": [108, 52, 1]}, {"55062599": [255, 17, 33]}, {"55062603": [7]}, {"55062608": [2, 9, 72, 33, 145, 41]}, {"55062615": [116, 52, 1]}, {"55062619": [44, 17, 33]}, {"55062623": [2]}, {"55062628": [161, 9]}, {"55062631": [105, 3, 224]}, {"55062635": [8]}, {"55062640": [39, 189, 255, 232, 175, 191]}, {"55062647": [16, 142, 40]}, {"55062652": [174, 8]}, {"55062655": [64, 142, 40]}, {"55062659": [4, 174, 8]}, {"55062663": [68, 150, 40]}, {"55062667": [8, 166, 8]}, {"55062671": [72, 162]}, {"55062674": [15, 51, 146, 8]}, {"55062679": [74, 52, 1]}, {"55062683": [255, 21, 1]}, {"55062687": [3]}, {"55062692": [12, 16, 12, 61]}, {"55062700": [143, 191]}, {"55062703": [16, 39, 189]}, {"55062707": [24, 3, 224]}, {"55062711": [8]}, {"55062716": [142, 8]}, {"55062719": [64, 174, 8]}, {"55062723": [104, 142, 8]}, {"55062727": [68, 174, 8]}, {"55062731": [108, 150, 8]}, {"55062735": [72, 166, 8]}, {"55062739": [112, 146, 8]}, {"55062743": [104, 52, 1]}, {"55062747": [255, 21, 1]}, {"55062751": [3]}, {"55062756": [52, 8]}, {"55062759": [1, 162, 8, 15, 51, 3, 224]}, {"55062767": [8]}, {"55062772": [39, 189, 255, 232, 175, 191]}, {"55062779": [16, 150, 8]}, {"55062783": [156, 49, 8]}, {"55062787": [64, 17]}, {"55062791": [5]}, {"55062796": [150, 8]}, {"55062799": [112, 49, 8, 255, 15, 53, 8]}, {"55062807": [48, 166, 8]}, {"55062811": [112, 146, 40]}, {"55062815": [1, 162, 8]}, {"55062819": [105, 150, 40]}, {"55062823": [2, 166, 8]}, {"55062827": [106, 142, 40]}, {"55062831": [4, 174, 8]}, {"55062835": [108, 12, 16, 12, 87, 52, 4]}, {"55062844": [12, 16, 12, 87, 52, 4]}, {"55062851": [1, 12, 16, 12, 87, 52, 4]}, {"55062859": [2, 143, 191]}, {"55062863": [16, 39, 189]}, {"55062867": [24, 3, 224]}, {"55062871": [8]}, {"55062876": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 50, 8, 145, 10]}, {"55062891": [108, 52, 1]}, {"55062895": [255, 17, 65]}, {"55062899": [5]}, {"55062904": [1, 42, 72, 33, 145, 41]}, {"55062912": [21, 32]}, {"55062915": [28]}, {"55062920": [60, 9, 128, 64, 37, 41, 49, 251, 37, 41]}, {"55062931": [1, 145, 42]}, {"55062936": [17, 64]}, {"55062939": [19]}, {"55062944": [2, 10, 88, 33, 145, 107]}, {"55062951": [116, 52, 1]}, {"55062955": [255, 17, 97, 255, 248]}, {"55062964": [146, 12]}, {"55062967": [108, 17, 138, 255, 245]}, {"55062976": [146, 12]}, {"55062979": [109, 17, 138, 255, 242]}, {"55062988": [146, 12]}, {"55062991": [110, 17, 138, 255, 239]}, {"55063000": [161, 11]}, {"55063003": [105, 161, 10]}, {"55063007": [108, 16]}, {"55063011": [4]}, {"55063016": [52, 9]}, {"55063019": [255, 161, 9]}, {"55063023": [105, 161, 9]}, {"55063027": [108, 3, 224]}, {"55063031": [8]}, {"55063036": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063049": [1, 1, 1, 1, 1]}, {"55063055": [1, 1, 1, 1, 1]}, {"55063061": [1]}, {"55063063": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063073": [51, 8, 33, 32, 15]}, {"55063079": [71, 21, 234]}, {"55063083": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063095": [164]}, {"55063097": [15, 122, 3, 20, 64]}, {"55063103": [5, 52, 2, 72, 48, 21, 226]}, {"55063111": [7]}, {"55063116": [36, 25]}, {"55063119": [3, 16]}, {"55063123": [4, 52, 2, 99, 17, 21, 226]}, {"55063131": [2]}, {"55063136": [36, 25]}, {"55063139": [3, 3, 224]}, {"55063143": [8]}, {"55063148": [141, 173, 138, 160, 52, 2, 128]}, {"55063156": [16, 77]}, {"55063159": [2]}, {"55063164": [16]}, {"55063167": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063183": [1, 16, 64]}, {"55063187": [2]}, {"55063192": [16]}, {"55063195": [2, 52, 2]}, {"55063199": [1, 161, 226, 28, 191, 3, 224]}, {"55063207": [8]}, {"55063213": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063227": [164]}, {"55063229": [15, 122, 3, 20, 64]}, {"55063235": [5, 52, 2, 72, 48, 21, 226]}, {"55063243": [7]}, {"55063248": [36, 25]}, {"55063251": [3, 16]}, {"55063255": [4, 52, 2, 99, 17, 21, 226]}, {"55063263": [2]}, {"55063268": [36, 25]}, {"55063271": [3, 3, 224]}, {"55063275": [8]}, {"55063280": [162, 37]}, {"55063283": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063295": [4, 142, 10]}, {"55063300": [17, 64]}, {"55063303": [11]}, {"55063309": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063321": [24, 194, 2, 23]}, {"55063327": [3, 49, 89]}, {"55063331": [255, 129, 234]}, {"55063336": [3, 42, 200, 37, 8, 16, 12, 191, 161, 249]}, {"55063348": [3, 224]}, {"55063351": [8]}] \ No newline at end of file +[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 128]}, {"11325064": [12, 16, 11, 121, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 11, 248]}, {"11427296": [12, 16, 11, 126, 52, 2, 0, 255, 16, 0, 5, 97]}, {"11427312": [12, 16, 12, 161]}, {"11431496": [12, 16, 11, 126, 1, 15, 192, 33]}, {"11562028": [12, 16, 12, 194]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 12, 177]}, {"11882076": [12, 16, 12, 142]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 11, 215, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 11, 222, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 11, 229, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 11, 208, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 72]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 9, 219]}, {"12427480": [12, 16, 10, 47]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 51]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 11, 155, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 84]}, {"12491480": [12, 16, 10, 93]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 78]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 11, 236]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 140, 73]}, {"14149503": [164]}, {"14149512": [2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149856": [87]}, {"14149859": [15]}, {"14357459": [118]}, {"14624335": [118]}, {"14872723": [52]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 9, 248, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 9, 248, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 36, 152, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 36, 180, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 36, 220, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 4, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 44, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 84, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 112, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 140, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 168, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 28, 128, 64, 36, 144, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 20, 128, 64, 36, 144, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 20, 128, 64, 37, 220, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 20, 128, 64, 37, 220, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 20, 128, 64, 37, 220, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 20, 128, 64, 37, 248, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 20, 128, 64, 37, 248, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 20, 128, 64, 37, 248, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 20, 128, 64, 36, 144, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 20, 128, 64, 36, 144, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 38, 172, 128, 64, 36, 144, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 38, 204, 128, 64, 37, 196, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 38, 236, 128, 64, 36, 144, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 39, 20, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 39, 92, 128, 64, 39, 64, 3, 224]}, {"55059603": [8, 52, 162]}, {"55059608": [144, 136]}, {"55059611": [125, 52, 1]}, {"55059615": [255, 17, 1]}, {"55059619": [2, 52, 2]}, {"55059623": [8, 52, 2]}, {"55059627": [9, 3, 224]}, {"55059631": [8]}, {"55059636": [144, 136]}, {"55059639": [163, 49, 8]}, {"55059643": [192, 17]}, {"55059647": [5, 52, 2]}, {"55059651": [84, 52, 1]}, {"55059655": [64, 17, 1]}, {"55059659": [2, 52, 2]}, {"55059663": [53, 52, 2]}, {"55059667": [54, 3, 224]}, {"55059671": [8]}, {"55059676": [144, 136]}, {"55059679": [163, 49, 8]}, {"55059683": [24, 17]}, {"55059687": [5, 52, 2]}, {"55059691": [50, 52, 1]}, {"55059695": [8, 17, 1]}, {"55059699": [2, 52, 2]}, {"55059703": [51, 52, 2]}, {"55059707": [52, 3, 224]}, {"55059711": [8]}, {"55059716": [144, 136]}, {"55059719": [163, 49, 8]}, {"55059723": [3, 17]}, {"55059727": [5, 52, 2]}, {"55059731": [4, 52, 1]}, {"55059735": [1, 17, 1]}, {"55059739": [2, 52, 2]}, {"55059743": [48, 52, 2]}, {"55059747": [49, 3, 224]}, {"55059751": [8]}, {"55059756": [144, 136]}, {"55059759": [162, 49, 8]}, {"55059763": [192, 17]}, {"55059767": [5, 52, 2]}, {"55059771": [5, 52, 1]}, {"55059775": [64, 17, 1]}, {"55059779": [2, 52, 2]}, {"55059783": [96, 52, 2]}, {"55059787": [123, 3, 224]}, {"55059791": [8]}, {"55059796": [144, 136]}, {"55059799": [162, 49, 8]}, {"55059803": [48, 17]}, {"55059807": [2, 52, 2]}, {"55059811": [69, 52, 2]}, {"55059815": [70, 3, 224]}, {"55059819": [8]}, {"55059824": [144, 136]}, {"55059827": [162, 49, 8]}, {"55059831": [6, 17]}, {"55059835": [2, 52, 2]}, {"55059839": [55, 52, 2]}, {"55059843": [56, 3, 224]}, {"55059847": [8]}, {"55059852": [144, 136]}, {"55059855": [161, 49, 8]}, {"55059859": [32, 17]}, {"55059863": [2, 52, 2]}, {"55059867": [121, 52, 2]}, {"55059871": [122, 3, 224]}, {"55059875": [8]}, {"55059880": [144, 136]}, {"55059883": [161, 49, 8]}, {"55059887": [4, 17]}, {"55059891": [2, 52, 2]}, {"55059895": [119, 52, 2]}, {"55059899": [120, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [50, 17]}, {"55059915": [2, 52, 2]}, {"55059919": [192, 52, 2]}, {"55059923": [193, 3, 224]}, {"55059927": [8]}, {"55059932": [144, 136]}, {"55059935": [163, 49, 8]}, {"55059939": [3, 17]}, {"55059943": [2, 52, 2]}, {"55059947": [77, 52, 162]}, {"55059952": [3, 224]}, {"55059955": [8]}, {"55059960": [144, 136]}, {"55059963": [163, 49, 8]}, {"55059967": [24, 17]}, {"55059971": [2, 52, 2]}, {"55059975": [77, 52, 162]}, {"55059980": [3, 224]}, {"55059983": [8]}, {"55059988": [3, 224]}, {"55059991": [8]}, {"55059996": [52, 8]}, {"55059999": [1, 160, 136]}, {"55060003": [62, 3, 224]}, {"55060007": [8]}, {"55060012": [36, 136]}, {"55060015": [134, 36, 9, 255, 255, 37, 41]}, {"55060023": [1, 52, 1]}, {"55060027": [3]}, {"55060029": [41, 8, 42, 20, 32]}, {"55060035": [7]}, {"55060040": [1, 9, 80, 33, 145, 75]}, {"55060048": [52, 1]}, {"55060051": [255, 21, 97, 255, 247]}, {"55060060": [161, 69]}, {"55060064": [3, 224]}, {"55060067": [8]}, {"55060072": [36, 136]}, {"55060075": [168, 1, 6, 64, 33, 145, 9]}, {"55060084": [1, 37, 72, 37, 161, 9]}, {"55060092": [3, 224]}, {"55060095": [8]}, {"55060100": [36, 136]}, {"55060103": [188, 1, 5, 64, 33, 129, 9]}, {"55060112": [5, 33]}, {"55060115": [2]}, {"55060120": [52, 9]}, {"55060124": [37, 41]}, {"55060127": [1, 161, 9]}, {"55060132": [3, 224]}, {"55060135": [8]}, {"55060140": [52, 8]}, {"55060143": [1, 160, 136]}, {"55060147": [61, 52, 8]}, {"55060151": [20, 160, 136]}, {"55060155": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060167": [8]}, {"55060172": [52, 8]}, {"55060175": [1, 160, 136]}, {"55060179": [50, 160, 136]}, {"55060183": [58, 52, 8]}, {"55060187": [48, 164, 136, 19, 244, 160, 136]}, {"55060195": [51, 3, 224]}, {"55060199": [8]}, {"55060204": [52, 8]}, {"55060207": [2, 160, 136]}, {"55060211": [50, 52, 8]}, {"55060215": [1, 160, 136]}, {"55060219": [58, 160, 136]}, {"55060223": [60, 52, 8]}, {"55060227": [96, 164, 136, 19, 244, 160, 136]}, {"55060235": [51, 3, 224]}, {"55060239": [8]}, {"55060244": [144, 136]}, {"55060247": [124, 52, 1]}, {"55060251": [255, 17, 1]}, {"55060255": [6, 52, 2]}, {"55060259": [107, 144, 136]}, {"55060263": [148, 45, 8]}, {"55060267": [6, 17]}, {"55060271": [2, 52, 2]}, {"55060275": [106, 52, 2]}, {"55060279": [3, 3, 224]}, {"55060283": [8]}, {"55060288": [144, 136]}, {"55060291": [123, 52, 1]}, {"55060295": [255, 17, 1]}, {"55060299": [2, 52, 162]}, {"55060304": [52, 2]}, {"55060307": [12, 3, 224]}, {"55060311": [8]}, {"55060316": [52, 8]}, {"55060319": [7, 160, 136]}, {"55060323": [123, 3, 224]}, {"55060327": [8]}, {"55060332": [48, 132]}, {"55060335": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060347": [140, 16, 129]}, {"55060351": [22, 145, 2]}, {"55060355": [117, 52, 1]}, {"55060359": [141, 16, 129]}, {"55060363": [19, 145, 2]}, {"55060367": [117, 16, 128]}, {"55060371": [17, 145, 2]}, {"55060375": [116, 52, 1]}, {"55060379": [138, 16, 129]}, {"55060383": [14, 145, 2]}, {"55060387": [116, 52, 1]}, {"55060391": [139, 16, 129]}, {"55060395": [11, 145, 2]}, {"55060399": [116, 52, 1]}, {"55060403": [88, 16, 129]}, {"55060407": [8, 52, 2]}, {"55060412": [52, 1]}, {"55060415": [120, 16, 129]}, {"55060419": [5, 52, 2]}, {"55060424": [52, 1]}, {"55060427": [121, 16, 129]}, {"55060431": [2, 52, 2]}, {"55060436": [52, 2]}, {"55060439": [255, 3, 224]}, {"55060443": [8]}, {"55060448": [39, 189, 255, 224, 175, 191]}, {"55060455": [16, 175, 176]}, {"55060459": [20, 12, 16, 10, 199]}, {"55060468": [4, 65]}, {"55060471": [2]}, {"55060476": [52, 2]}, {"55060479": [91]}, {"55060481": [64, 32, 33, 12, 16, 11, 45]}, {"55060492": [16, 96]}, {"55060495": [18, 175, 163]}, {"55060499": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060508": [133, 9]}, {"55060511": [2, 17, 32]}, {"55060515": [3, 52, 10]}, {"55060519": [1, 16]}, {"55060523": [8, 165, 10]}, {"55060528": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060539": [6, 144, 102]}, {"55060543": [7, 140, 105]}, {"55060547": [8, 1, 32, 248, 9]}, {"55060556": [143, 163]}, {"55060559": [28, 144, 101]}, {"55060563": [3, 16]}, {"55060567": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060579": [6]}, {"55060581": [74]}, {"55060583": [24]}, {"55060586": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060596": [60, 8, 128, 64, 37, 8, 32]}, {"55060604": [133, 9]}, {"55060607": [2, 17, 32]}, {"55060611": [3, 52, 10]}, {"55060615": [1, 165, 10]}, {"55060620": [52, 5]}, {"55060623": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060635": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060646": [48, 33, 143, 191]}, {"55060651": [16, 143, 176]}, {"55060655": [20, 39, 189]}, {"55060659": [32, 3, 224]}, {"55060663": [8]}, {"55060668": [143, 166]}, {"55060671": [48, 132, 197]}, {"55060675": [4, 8, 16, 10, 55]}, {"55060684": [143, 185]}, {"55060687": [44, 135, 37]}, {"55060691": [4, 8, 16, 10, 55]}, {"55060700": [60, 10, 128, 64, 37, 74, 32, 4, 141, 75]}, {"55060711": [12, 17, 96]}, {"55060715": [2]}, {"55060720": [149, 69]}, {"55060723": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060736": [60, 9, 128, 64, 37, 41, 32, 20, 129, 42]}, {"55060747": [3, 5, 64]}, {"55060751": [2, 1, 42, 72, 32, 161, 32]}, {"55060760": [3, 224]}, {"55060763": [8]}, {"55060768": [60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55060779": [12, 17, 32]}, {"55060783": [2]}, {"55060788": [129, 3]}, {"55060791": [2]}, {"55060793": [3, 15, 195]}, {"55060797": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55060811": [8]}, {"55060816": [144, 69]}, {"55060819": [3, 60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55060831": [12, 17, 32]}, {"55060835": [2]}, {"55060840": [145, 5]}, {"55060843": [3, 3, 224]}, {"55060847": [8]}, {"55060852": [143, 162]}, {"55060855": [36, 144, 69]}, {"55060860": [60, 8, 128, 64, 37, 8, 32]}, {"55060868": [133, 9]}, {"55060871": [2, 17, 32]}, {"55060875": [4, 52, 10]}, {"55060879": [1, 165, 10]}, {"55060884": [16]}, {"55060887": [24, 52, 5]}, {"55060891": [65, 60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55060903": [12, 17, 32]}, {"55060907": [19]}, {"55060912": [145, 5]}, {"55060915": [1, 175, 164]}, {"55060920": [175, 165]}, {"55060923": [4, 175, 166]}, {"55060927": [8, 39, 189, 255, 232, 175, 191]}, {"55060935": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55060947": [6, 145, 6]}, {"55060951": [7, 141, 9]}, {"55060955": [8, 1, 32, 248, 9]}, {"55060964": [143, 191]}, {"55060967": [16, 39, 189]}, {"55060971": [24, 143, 164]}, {"55060976": [143, 165]}, {"55060979": [4, 143, 166]}, {"55060983": [8, 3, 224]}, {"55060987": [8]}, {"55060992": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061003": [16, 175, 163]}, {"55061007": [20, 175, 191]}, {"55061011": [24, 12, 16, 10, 141]}, {"55061020": [143, 162]}, {"55061023": [16, 143, 163]}, {"55061027": [20, 143, 191]}, {"55061031": [24, 39, 189]}, {"55061035": [32, 3, 224]}, {"55061039": [8]}, {"55061044": [39, 189, 255, 232, 175, 191]}, {"55061051": [16, 60, 8, 128, 64, 37, 8, 32, 4, 173]}, {"55061064": [173]}, {"55061067": [4, 173]}, {"55061071": [8, 173]}, {"55061075": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061091": [42]}, {"55061097": [9, 15, 195, 1, 33, 32, 38]}, {"55061105": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 199]}, {"55061120": [4, 64]}, {"55061123": [34]}, {"55061128": [52, 68]}, {"55061132": [12, 16, 11, 45]}, {"55061140": [16, 96]}, {"55061143": [12]}, {"55061148": [60, 8, 128, 64, 37, 8, 32, 4, 140, 105]}, {"55061160": [173, 9]}, {"55061164": [140, 105]}, {"55061167": [4, 173, 9]}, {"55061171": [4, 140, 105]}, {"55061175": [8, 173, 9]}, {"55061179": [8, 52, 9]}, {"55061183": [1, 173, 9]}, {"55061187": [12, 144, 98]}, {"55061192": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061208": [52, 1]}, {"55061211": [10, 21, 65]}, {"55061215": [6]}, {"55061220": [149, 42]}, {"55061223": [28, 49, 74, 240, 31]}, {"55061229": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061239": [28, 129, 9, 4, 36, 5, 33]}, {"55061247": [2]}, {"55061253": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061263": [16, 39, 189]}, {"55061267": [24, 3, 224]}, {"55061271": [8]}, {"55061276": [39, 189, 255, 232, 175, 191]}, {"55061283": [16, 12, 16, 10, 213]}, {"55061292": [36, 1, 255, 255, 16, 65]}, {"55061299": [4]}, {"55061304": [52, 68]}, {"55061308": [12, 16, 11, 9]}, {"55061316": [143, 191]}, {"55061319": [16, 39, 189]}, {"55061323": [24, 3, 224]}, {"55061327": [8]}, {"55061332": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061343": [164, 52, 8]}, {"55061348": [52, 137]}, {"55061352": [148, 170]}, {"55061356": [52, 1, 1, 156, 21, 65]}, {"55061363": [8]}, {"55061368": [52, 8]}, {"55061371": [3, 148, 171]}, {"55061375": [28, 49, 105]}, {"55061379": [255, 49, 98, 31]}, {"55061385": [2, 18, 2, 16]}, {"55061391": [31]}, {"55061396": [52, 1]}, {"55061399": [10, 21, 65]}, {"55061403": [14]}, {"55061408": [148, 171]}, {"55061411": [28, 52, 1]}, {"55061415": [16, 20, 65]}, {"55061419": [8]}, {"55061424": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061435": [4]}, {"55061440": [36, 2, 255, 255, 16]}, {"55061447": [21]}, {"55061452": [52, 8]}, {"55061455": [1, 49, 105]}, {"55061459": [31, 52, 1]}, {"55061463": [21, 21, 65]}, {"55061467": [12]}, {"55061472": [52, 1]}, {"55061475": [62, 16, 129]}, {"55061479": [7]}, {"55061484": [52, 1]}, {"55061487": [66, 16, 129]}, {"55061491": [4]}, {"55061496": [36, 2, 255, 255, 16]}, {"55061503": [7]}, {"55061508": [52, 8]}, {"55061511": [2, 144, 169, 1, 65]}, {"55061517": [2, 18]}, {"55061521": [72, 16, 37]}, {"55061525": [2, 18]}, {"55061529": [73, 16, 37, 3, 224]}, {"55061535": [8]}, {"55061540": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061552": [129, 9]}, {"55061556": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061579": [4, 141, 9]}, {"55061584": [17, 32]}, {"55061587": [22]}, {"55061593": [9, 82, 2, 49, 75, 248]}, {"55061601": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061624": [49, 34]}, {"55061627": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061648": [60, 12, 128, 64, 37, 140, 28]}, {"55061656": [129, 140]}, {"55061660": [17, 108]}, {"55061663": [3, 165, 32]}, {"55061667": [2, 161, 43]}, {"55061671": [2, 161, 34]}, {"55061675": [3, 3, 224]}, {"55061679": [8]}, {"55061684": [39, 189, 255, 224, 175, 176]}, {"55061691": [16, 175, 177]}, {"55061695": [20, 175, 191]}, {"55061699": [24, 52, 130]}, {"55061704": [52, 80]}, {"55061708": [38, 8, 255, 128, 5]}, {"55061715": [18]}, {"55061720": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55061731": [16, 1, 9]}, {"55061735": [24]}, {"55061738": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061756": [142, 40]}, {"55061759": [12, 1]}, {"55061762": [248, 9]}, {"55061768": [20, 80, 255, 239]}, {"55061776": [54, 35]}, {"55061780": [16]}, {"55061783": [2]}, {"55061788": [52, 3]}, {"55061792": [143, 176]}, {"55061795": [16, 143, 177]}, {"55061799": [20, 143, 191]}, {"55061803": [24, 39, 189]}, {"55061807": [32, 3, 224]}, {"55061811": [8]}, {"55061816": [140, 136, 29, 44, 52, 9]}, {"55061823": [1]}, {"55061825": [9, 78]}, {"55061828": [1, 9, 16, 36, 16, 64]}, {"55061835": [36]}, {"55061840": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55061855": [164, 52, 1]}, {"55061859": [61, 17, 129]}, {"55061863": [10]}, {"55061869": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55061879": [25]}, {"55061884": [52, 13]}, {"55061887": [1, 161, 141, 29, 40, 37, 74]}, {"55061895": [3, 16]}, {"55061899": [9]}, {"55061904": [52, 12]}, {"55061907": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55061923": [14]}, {"55061928": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55061964": [60, 9, 128, 64, 37, 41, 32, 20, 161, 40]}, {"55061976": [52, 2]}, {"55061980": [3, 224]}, {"55061983": [8]}, {"55061988": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062000": [16]}, {"55062003": [11]}, {"55062008": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062020": [16]}, {"55062023": [6]}, {"55062028": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062040": [16]}, {"55062043": [1]}, {"55062048": [60, 9, 128, 64, 37, 41, 32, 20, 60, 10, 128, 64, 37, 74, 32, 23, 129, 44]}, {"55062068": [17, 136]}, {"55062071": [11, 33, 41]}, {"55062075": [1, 21, 42, 255, 252]}, {"55062084": [60, 9, 128, 64, 37, 41, 32, 19, 33, 41]}, {"55062095": [1, 17, 42]}, {"55062099": [4, 129, 44]}, {"55062104": [21, 128, 255, 252]}, {"55062112": [161, 40]}, {"55062116": [3, 224]}, {"55062119": [8]}, {"55062124": [175, 164]}, {"55062127": [104, 175, 165]}, {"55062131": [108, 175, 166]}, {"55062135": [112, 175, 167]}, {"55062139": [116, 39, 189, 255, 232, 175, 163]}, {"55062147": [16, 175, 191]}, {"55062151": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062167": [32, 21]}, {"55062171": [31]}, {"55062176": [60, 9, 128, 64, 37, 41, 32, 23, 52, 10]}, {"55062187": [255, 161, 42]}, {"55062192": [60, 9, 128, 64, 37, 41, 32, 20, 36, 10, 255, 255, 52, 12]}, {"55062207": [3, 33, 74]}, {"55062211": [1, 17, 76]}, {"55062215": [20, 1, 42, 88, 32, 129, 104]}, {"55062224": [17]}, {"55062226": [255, 251]}, {"55062232": [60, 9, 128, 64, 37, 41, 32, 23, 161, 42]}, {"55062244": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062255": [1, 165, 42]}, {"55062260": [60, 9, 128, 65, 52, 10]}, {"55062267": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 141]}, {"55062296": [143, 163]}, {"55062299": [16, 143, 191]}, {"55062303": [20, 39, 189]}, {"55062307": [24, 143, 164]}, {"55062311": [104, 143, 165]}, {"55062315": [108, 143, 166]}, {"55062319": [112, 143, 167]}, {"55062323": [116, 132, 110, 19, 196, 3, 224]}, {"55062331": [8]}, {"55062336": [147, 25]}, {"55062339": [116, 52, 1]}, {"55062343": [255, 23, 33]}, {"55062347": [2]}, {"55062352": [52, 25]}, {"55062355": [44, 3, 224]}, {"55062359": [8, 167, 185]}, {"55062363": [154, 147, 44]}, {"55062367": [116, 52, 1]}, {"55062371": [255, 21, 129]}, {"55062375": [2]}, {"55062380": [52, 12]}, {"55062383": [44, 3, 224]}, {"55062387": [8]}, {"55062392": [145, 174]}, {"55062395": [116, 52, 1]}, {"55062399": [255, 21, 193]}, {"55062403": [2]}, {"55062408": [52, 14]}, {"55062411": [44, 3, 224]}, {"55062415": [8, 167, 174]}, {"55062419": [154, 145, 207]}, {"55062423": [116, 52, 1]}, {"55062427": [255, 21, 225]}, {"55062431": [2]}, {"55062436": [52, 15]}, {"55062439": [44, 3, 224]}, {"55062443": [8, 167, 175]}, {"55062447": [154, 60, 8, 128, 64, 37, 8, 32, 24, 142, 9]}, {"55062459": [104, 173, 9]}, {"55062464": [142, 9]}, {"55062467": [108, 173, 9]}, {"55062471": [4, 150, 9]}, {"55062475": [112, 165, 9]}, {"55062479": [8, 150, 9]}, {"55062483": [156, 165, 9]}, {"55062487": [10, 3, 224]}, {"55062491": [8, 142, 14]}, {"55062495": [4, 39, 189, 255, 224, 175, 176]}, {"55062503": [16, 175, 177]}, {"55062507": [20, 175, 191]}, {"55062511": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 24, 142, 8]}, {"55062531": [4, 17]}, {"55062535": [5]}, {"55062540": [12, 16, 12, 34]}, {"55062548": [16]}, {"55062551": [3]}, {"55062556": [12, 16, 12, 53]}, {"55062564": [12, 16, 12, 21, 52, 4]}, {"55062572": [12, 16, 12, 21, 52, 4]}, {"55062579": [1, 12, 16, 12, 21, 52, 4]}, {"55062587": [2, 143, 176]}, {"55062591": [16, 143, 177]}, {"55062595": [20, 143, 191]}, {"55062599": [24, 39, 189]}, {"55062603": [32, 3, 224]}, {"55062607": [8]}, {"55062612": [2, 4, 64, 33, 145, 9]}, {"55062619": [108, 52, 1]}, {"55062623": [255, 17, 33]}, {"55062627": [7]}, {"55062632": [2, 9, 72, 33, 145, 41]}, {"55062639": [116, 52, 1]}, {"55062643": [44, 17, 33]}, {"55062647": [2]}, {"55062652": [161, 9]}, {"55062655": [105, 3, 224]}, {"55062659": [8]}, {"55062664": [39, 189, 255, 232, 175, 191]}, {"55062671": [16, 142, 40]}, {"55062676": [174, 8]}, {"55062679": [64, 142, 40]}, {"55062683": [4, 174, 8]}, {"55062687": [68, 150, 40]}, {"55062691": [8, 166, 8]}, {"55062695": [72, 162]}, {"55062698": [15, 51, 146, 8]}, {"55062703": [74, 52, 1]}, {"55062707": [255, 21, 1]}, {"55062711": [3]}, {"55062716": [12, 16, 12, 67]}, {"55062724": [143, 191]}, {"55062727": [16, 39, 189]}, {"55062731": [24, 3, 224]}, {"55062735": [8]}, {"55062740": [142, 8]}, {"55062743": [64, 174, 8]}, {"55062747": [104, 142, 8]}, {"55062751": [68, 174, 8]}, {"55062755": [108, 150, 8]}, {"55062759": [72, 166, 8]}, {"55062763": [112, 146, 8]}, {"55062767": [104, 52, 1]}, {"55062771": [255, 21, 1]}, {"55062775": [3]}, {"55062780": [52, 8]}, {"55062783": [1, 162, 8, 15, 51, 3, 224]}, {"55062791": [8]}, {"55062796": [39, 189, 255, 232, 175, 191]}, {"55062803": [16, 150, 8]}, {"55062807": [156, 49, 8]}, {"55062811": [64, 17]}, {"55062815": [5]}, {"55062820": [150, 8]}, {"55062823": [112, 49, 8, 255, 15, 53, 8]}, {"55062831": [48, 166, 8]}, {"55062835": [112, 146, 40]}, {"55062839": [1, 162, 8]}, {"55062843": [105, 150, 40]}, {"55062847": [2, 166, 8]}, {"55062851": [106, 142, 40]}, {"55062855": [4, 174, 8]}, {"55062859": [108, 12, 16, 12, 93, 52, 4]}, {"55062868": [12, 16, 12, 93, 52, 4]}, {"55062875": [1, 12, 16, 12, 93, 52, 4]}, {"55062883": [2, 143, 191]}, {"55062887": [16, 39, 189]}, {"55062891": [24, 3, 224]}, {"55062895": [8]}, {"55062900": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 50, 32, 145, 10]}, {"55062915": [108, 52, 1]}, {"55062919": [255, 17, 65]}, {"55062923": [5]}, {"55062928": [1, 42, 72, 33, 145, 41]}, {"55062936": [21, 32]}, {"55062939": [28]}, {"55062944": [60, 9, 128, 64, 37, 41, 50, 19, 37, 41]}, {"55062955": [1, 145, 42]}, {"55062960": [17, 64]}, {"55062963": [19]}, {"55062968": [2, 10, 88, 33, 145, 107]}, {"55062975": [116, 52, 1]}, {"55062979": [255, 17, 97, 255, 248]}, {"55062988": [146, 12]}, {"55062991": [108, 17, 138, 255, 245]}, {"55063000": [146, 12]}, {"55063003": [109, 17, 138, 255, 242]}, {"55063012": [146, 12]}, {"55063015": [110, 17, 138, 255, 239]}, {"55063024": [161, 11]}, {"55063027": [105, 161, 10]}, {"55063031": [108, 16]}, {"55063035": [4]}, {"55063040": [52, 9]}, {"55063043": [255, 161, 9]}, {"55063047": [105, 161, 9]}, {"55063051": [108, 3, 224]}, {"55063055": [8]}, {"55063060": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063073": [1, 1, 1, 1, 1]}, {"55063079": [1, 1, 1, 1, 1]}, {"55063085": [1]}, {"55063087": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063097": [51, 8, 33, 32, 15]}, {"55063103": [71, 21, 234]}, {"55063107": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063119": [164]}, {"55063121": [15, 122, 3, 20, 64]}, {"55063127": [5, 52, 2, 72, 48, 21, 226]}, {"55063135": [7]}, {"55063140": [36, 25]}, {"55063143": [3, 16]}, {"55063147": [4, 52, 2, 99, 17, 21, 226]}, {"55063155": [2]}, {"55063160": [36, 25]}, {"55063163": [3, 3, 224]}, {"55063167": [8]}, {"55063172": [141, 173, 138, 160, 52, 2, 128]}, {"55063180": [16, 77]}, {"55063183": [2]}, {"55063188": [16]}, {"55063191": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063207": [1, 16, 64]}, {"55063211": [2]}, {"55063216": [16]}, {"55063219": [2, 52, 2]}, {"55063223": [1, 161, 226, 28, 191, 3, 224]}, {"55063231": [8]}, {"55063237": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063251": [164]}, {"55063253": [15, 122, 3, 20, 64]}, {"55063259": [5, 52, 2, 72, 48, 21, 226]}, {"55063267": [7]}, {"55063272": [36, 25]}, {"55063275": [3, 16]}, {"55063279": [4, 52, 2, 99, 17, 21, 226]}, {"55063287": [2]}, {"55063292": [36, 25]}, {"55063295": [3, 3, 224]}, {"55063299": [8]}, {"55063304": [162, 37]}, {"55063307": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063319": [4, 142, 10]}, {"55063324": [17, 64]}, {"55063327": [11]}, {"55063333": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063345": [24, 194, 2, 23]}, {"55063351": [3, 49, 89]}, {"55063355": [255, 129, 234]}, {"55063360": [3, 42, 200, 37, 8, 16, 12, 197, 161, 249]}, {"55063372": [3, 224]}, {"55063375": [8]}] \ No newline at end of file diff --git a/version.py b/version.py index 060450860..e07aa7939 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.20 f.LUM' \ No newline at end of file +__version__ = '2.13.21 f.LUM' \ No newline at end of file From 828d27a02f6286e6d36cf5c8b39ca3b889c2e46c Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Sat, 21 Jul 2018 22:55:27 -0400 Subject: [PATCH 191/755] Fix Fire Arrow chest not giving the correct item --- ASM/src/cutscenes.asm | 6 ------ ASM/src/hacks.asm | 10 +++++----- data/base2current.json | 2 +- version.py | 2 +- 4 files changed, 7 insertions(+), 13 deletions(-) diff --git a/ASM/src/cutscenes.asm b/ASM/src/cutscenes.asm index 44ebfe162..c884b437b 100644 --- a/ASM/src/cutscenes.asm +++ b/ASM/src/cutscenes.asm @@ -72,9 +72,3 @@ override_fairy_ocarina_cutscene: sb t0, 0x00 (t1) jr ra nop - -fire_arrow_chest_rotation: - li at, 0x4000 - sw at, 0x1C (sp) - jr ra - nop \ No newline at end of file diff --git a/ASM/src/hacks.asm b/ASM/src/hacks.asm index ca701b02a..af6ed7142 100755 --- a/ASM/src/hacks.asm +++ b/ASM/src/hacks.asm @@ -328,19 +328,19 @@ ; Don't require water temple ; bne t9,at,+0x0024 .org 0xE9E1D8 - nop + li t1, 0x4000 ; Load chest contents -; li a2, 0x0007 +; li t0, 0x0007 .org 0xE9E1F0 - li a2, 0x5B08 + li t0, 0x2B08 ; Load actor type ; li a2, 0x010f .org 0xE9E200 li a2, 0x000A -; Load actor rotation +; Set rotation ; sw zero, 0x1C (sp) .org 0xE9E20C - jal fire_arrow_chest_rotation + sw t1, 0x1C (sp) diff --git a/data/base2current.json b/data/base2current.json index 511d4c35a..4eb75d884 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -1 +1 @@ -[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 95]}, {"11325064": [12, 16, 11, 65, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 11, 160]}, {"11427312": [12, 16, 12, 73]}, {"11431496": [12, 16, 11, 73, 1, 15, 192, 33]}, {"11562028": [12, 16, 12, 106]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 12, 89]}, {"11882076": [12, 16, 12, 54]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 11, 127, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 11, 134, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 11, 141, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 11, 120, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 47]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 9, 207]}, {"12427480": [12, 16, 10, 25]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 29]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 11, 85, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 59]}, {"12491480": [12, 16, 10, 68]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 22]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 11, 148]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 140, 73]}, {"14149503": [164]}, {"14149512": [2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149856": [87]}, {"14149859": [15]}, {"14357459": [118]}, {"14624335": [118]}, {"14872723": [52]}, {"15327704": [0, 0]}, {"15327707": [0]}, {"15327728": [52, 6, 91, 8]}, {"15327744": [52]}, {"15327746": [0, 10]}, {"15327756": [12, 16, 11, 81]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 9, 236, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 9, 236, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057408": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058464": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 104, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 132, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 172, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 212, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 252, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 36, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 64, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 92, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 120, 83, 65, 56, 67]}, {"55058613": [235, 21, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 55, 68]}, {"55058629": [235, 22, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 57, 69]}, {"55058645": [235, 23, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 63, 71]}, {"55058677": [244, 25, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 10, 6]}, {"55058757": [185, 1, 3, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 28]}, {"55058773": [185, 1, 4, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 29]}, {"55058789": [185, 1, 5, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 30]}, {"55058805": [185, 1, 6, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 42]}, {"55058821": [185, 1, 7, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 97]}, {"55058837": [185, 1, 10, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 98]}, {"55058853": [184, 2]}, {"55058856": [128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 99]}, {"55058869": [184, 2, 1, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 100]}, {"55058885": [184, 2, 2, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 101]}, {"55058901": [184, 2, 3, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 124]}, {"55058917": [184, 2, 4, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 125]}, {"55058933": [184, 2, 5, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 126]}, {"55058949": [184, 2, 6, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 127]}, {"55058965": [184, 2, 7, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 162]}, {"55058981": [184, 2, 8, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 135]}, {"55058997": [184, 2, 9, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 136]}, {"55059013": [200, 4]}, {"55059016": [128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 137]}, {"55059029": [200, 4, 1, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 138]}, {"55059045": [200, 4, 2, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 139]}, {"55059061": [200, 4, 3, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 140]}, {"55059077": [200, 4, 4, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 142]}, {"55059093": [200, 4, 5, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 143]}, {"55059109": [200, 4, 6, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 163]}, {"55059125": [200, 4, 7, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 165]}, {"55059141": [200, 4, 8, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 146]}, {"55059157": [200, 4, 9, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 2, 147]}, {"55059173": [170, 3, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 148]}, {"55059189": [170, 4, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 149]}, {"55059205": [170, 5, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 166]}, {"55059221": [170, 6, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 169]}, {"55059237": [170, 7, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 155]}, {"55059253": [170, 8, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 159]}, {"55059269": [170, 11, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 160]}, {"55059285": [170, 12, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 161]}, {"55059301": [170, 13, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 61, 67, 12]}, {"55059317": [248, 255, 255, 128, 64, 37, 236, 128, 64, 36, 96, 77, 131, 247, 85]}, {"55059333": [183, 255, 255, 128, 64, 37, 228, 128, 64, 36, 96, 77, 146, 219, 230]}, {"55059349": [216, 255, 255, 128, 64, 37, 228, 128, 64, 37, 172, 77, 147, 218, 230]}, {"55059365": [216, 255, 255, 128, 64, 37, 228, 128, 64, 37, 172, 77, 148, 217, 230]}, {"55059381": [216, 255, 255, 128, 64, 37, 228, 128, 64, 37, 172, 77, 142, 224, 50]}, {"55059397": [206, 255, 255, 128, 64, 37, 228, 128, 64, 37, 200, 77, 143, 224, 50]}, {"55059413": [206, 255, 255, 128, 64, 37, 228, 128, 64, 37, 200, 77, 144, 224, 50]}, {"55059429": [206, 255, 255, 128, 64, 37, 228, 128, 64, 37, 200, 77, 140, 238, 52]}, {"55059445": [187, 255, 255, 128, 64, 37, 228, 128, 64, 36, 96, 77, 141, 238, 52]}, {"55059461": [187, 255, 255, 128, 64, 37, 228, 128, 64, 36, 96, 79, 65, 19, 233]}, {"55059477": [189, 255, 255, 128, 64, 38, 124, 128, 64, 36, 96, 79, 65, 30, 228]}, {"55059493": [205, 255, 255, 128, 64, 38, 156, 128, 64, 37, 148, 79, 65, 31, 232]}, {"55059509": [205, 255, 255, 128, 64, 38, 188, 128, 64, 36, 96, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 38, 228, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 39, 44, 128, 64, 39, 16, 3, 224]}, {"55059555": [8, 52, 162]}, {"55059560": [144, 136]}, {"55059563": [125, 52, 1]}, {"55059567": [255, 17, 1]}, {"55059571": [2, 52, 2]}, {"55059575": [8, 52, 2]}, {"55059579": [9, 3, 224]}, {"55059583": [8]}, {"55059588": [144, 136]}, {"55059591": [163, 49, 8]}, {"55059595": [192, 17]}, {"55059599": [5, 52, 2]}, {"55059603": [84, 52, 1]}, {"55059607": [64, 17, 1]}, {"55059611": [2, 52, 2]}, {"55059615": [53, 52, 2]}, {"55059619": [54, 3, 224]}, {"55059623": [8]}, {"55059628": [144, 136]}, {"55059631": [163, 49, 8]}, {"55059635": [24, 17]}, {"55059639": [5, 52, 2]}, {"55059643": [50, 52, 1]}, {"55059647": [8, 17, 1]}, {"55059651": [2, 52, 2]}, {"55059655": [51, 52, 2]}, {"55059659": [52, 3, 224]}, {"55059663": [8]}, {"55059668": [144, 136]}, {"55059671": [163, 49, 8]}, {"55059675": [3, 17]}, {"55059679": [5, 52, 2]}, {"55059683": [4, 52, 1]}, {"55059687": [1, 17, 1]}, {"55059691": [2, 52, 2]}, {"55059695": [48, 52, 2]}, {"55059699": [49, 3, 224]}, {"55059703": [8]}, {"55059708": [144, 136]}, {"55059711": [162, 49, 8]}, {"55059715": [192, 17]}, {"55059719": [5, 52, 2]}, {"55059723": [5, 52, 1]}, {"55059727": [64, 17, 1]}, {"55059731": [2, 52, 2]}, {"55059735": [96, 52, 2]}, {"55059739": [123, 3, 224]}, {"55059743": [8]}, {"55059748": [144, 136]}, {"55059751": [162, 49, 8]}, {"55059755": [48, 17]}, {"55059759": [2, 52, 2]}, {"55059763": [69, 52, 2]}, {"55059767": [70, 3, 224]}, {"55059771": [8]}, {"55059776": [144, 136]}, {"55059779": [162, 49, 8]}, {"55059783": [6, 17]}, {"55059787": [2, 52, 2]}, {"55059791": [55, 52, 2]}, {"55059795": [56, 3, 224]}, {"55059799": [8]}, {"55059804": [144, 136]}, {"55059807": [161, 49, 8]}, {"55059811": [32, 17]}, {"55059815": [2, 52, 2]}, {"55059819": [121, 52, 2]}, {"55059823": [122, 3, 224]}, {"55059827": [8]}, {"55059832": [144, 136]}, {"55059835": [161, 49, 8]}, {"55059839": [4, 17]}, {"55059843": [2, 52, 2]}, {"55059847": [119, 52, 2]}, {"55059851": [120, 3, 224]}, {"55059855": [8]}, {"55059860": [144, 136]}, {"55059863": [50, 17]}, {"55059867": [2, 52, 2]}, {"55059871": [192, 52, 2]}, {"55059875": [193, 3, 224]}, {"55059879": [8]}, {"55059884": [144, 136]}, {"55059887": [163, 49, 8]}, {"55059891": [3, 17]}, {"55059895": [2, 52, 2]}, {"55059899": [77, 52, 162]}, {"55059904": [3, 224]}, {"55059907": [8]}, {"55059912": [144, 136]}, {"55059915": [163, 49, 8]}, {"55059919": [24, 17]}, {"55059923": [2, 52, 2]}, {"55059927": [77, 52, 162]}, {"55059932": [3, 224]}, {"55059935": [8]}, {"55059940": [3, 224]}, {"55059943": [8]}, {"55059948": [52, 8]}, {"55059951": [1, 160, 136]}, {"55059955": [62, 3, 224]}, {"55059959": [8]}, {"55059964": [36, 136]}, {"55059967": [134, 36, 9, 255, 255, 37, 41]}, {"55059975": [1, 52, 1]}, {"55059979": [3]}, {"55059981": [41, 8, 42, 20, 32]}, {"55059987": [7]}, {"55059992": [1, 9, 80, 33, 145, 75]}, {"55060000": [52, 1]}, {"55060003": [255, 21, 97, 255, 247]}, {"55060012": [161, 69]}, {"55060016": [3, 224]}, {"55060019": [8]}, {"55060024": [36, 136]}, {"55060027": [168, 1, 6, 64, 33, 145, 9]}, {"55060036": [1, 37, 72, 37, 161, 9]}, {"55060044": [3, 224]}, {"55060047": [8]}, {"55060052": [36, 136]}, {"55060055": [188, 1, 5, 64, 33, 129, 9]}, {"55060064": [5, 33]}, {"55060067": [2]}, {"55060072": [52, 9]}, {"55060076": [37, 41]}, {"55060079": [1, 161, 9]}, {"55060084": [3, 224]}, {"55060087": [8]}, {"55060092": [52, 8]}, {"55060095": [1, 160, 136]}, {"55060099": [61, 52, 8]}, {"55060103": [20, 160, 136]}, {"55060107": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060119": [8]}, {"55060124": [52, 8]}, {"55060127": [1, 160, 136]}, {"55060131": [50, 160, 136]}, {"55060135": [58, 52, 8]}, {"55060139": [48, 164, 136, 19, 244, 160, 136]}, {"55060147": [51, 3, 224]}, {"55060151": [8]}, {"55060156": [52, 8]}, {"55060159": [2, 160, 136]}, {"55060163": [50, 52, 8]}, {"55060167": [1, 160, 136]}, {"55060171": [58, 160, 136]}, {"55060175": [60, 52, 8]}, {"55060179": [96, 164, 136, 19, 244, 160, 136]}, {"55060187": [51, 3, 224]}, {"55060191": [8]}, {"55060196": [144, 136]}, {"55060199": [124, 52, 1]}, {"55060203": [255, 17, 1]}, {"55060207": [6, 52, 2]}, {"55060211": [107, 144, 136]}, {"55060215": [148, 45, 8]}, {"55060219": [6, 17]}, {"55060223": [2, 52, 2]}, {"55060227": [106, 52, 2]}, {"55060231": [3, 3, 224]}, {"55060235": [8]}, {"55060240": [144, 136]}, {"55060243": [123, 52, 1]}, {"55060247": [255, 17, 1]}, {"55060251": [2, 52, 162]}, {"55060256": [52, 2]}, {"55060259": [12, 3, 224]}, {"55060263": [8]}, {"55060268": [52, 8]}, {"55060271": [7, 160, 136]}, {"55060275": [123, 3, 224]}, {"55060279": [8]}, {"55060284": [48, 132]}, {"55060287": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060299": [140, 16, 129]}, {"55060303": [22, 145, 2]}, {"55060307": [117, 52, 1]}, {"55060311": [141, 16, 129]}, {"55060315": [19, 145, 2]}, {"55060319": [117, 16, 128]}, {"55060323": [17, 145, 2]}, {"55060327": [116, 52, 1]}, {"55060331": [138, 16, 129]}, {"55060335": [14, 145, 2]}, {"55060339": [116, 52, 1]}, {"55060343": [139, 16, 129]}, {"55060347": [11, 145, 2]}, {"55060351": [116, 52, 1]}, {"55060355": [88, 16, 129]}, {"55060359": [8, 52, 2]}, {"55060364": [52, 1]}, {"55060367": [120, 16, 129]}, {"55060371": [5, 52, 2]}, {"55060376": [52, 1]}, {"55060379": [121, 16, 129]}, {"55060383": [2, 52, 2]}, {"55060388": [52, 2]}, {"55060391": [255, 3, 224]}, {"55060395": [8]}, {"55060400": [39, 189, 255, 224, 175, 191]}, {"55060407": [16, 175, 176]}, {"55060411": [20, 12, 16, 10, 166]}, {"55060420": [4, 65]}, {"55060423": [2]}, {"55060428": [52, 2]}, {"55060431": [91]}, {"55060433": [64, 32, 33, 12, 16, 10, 245]}, {"55060444": [16, 96]}, {"55060447": [15, 175, 163]}, {"55060451": [28, 60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060463": [6, 144, 102]}, {"55060467": [7, 140, 105]}, {"55060471": [8, 1, 32, 248, 9]}, {"55060480": [143, 163]}, {"55060483": [28, 144, 101]}, {"55060487": [1, 12, 1, 191, 115, 2, 32, 32, 33, 143, 163]}, {"55060499": [28, 144, 101]}, {"55060503": [3, 16]}, {"55060507": [10, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060519": [6]}, {"55060521": [74]}, {"55060523": [24]}, {"55060526": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060536": [12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060547": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060558": [48, 33, 143, 191]}, {"55060563": [16, 143, 176]}, {"55060567": [20, 39, 189]}, {"55060571": [32, 3, 224]}, {"55060575": [8]}, {"55060580": [143, 166]}, {"55060583": [48, 132, 197]}, {"55060587": [4, 8, 16, 10, 33]}, {"55060596": [143, 185]}, {"55060599": [44, 135, 37]}, {"55060603": [4, 8, 16, 10, 33]}, {"55060612": [60, 10, 128, 64, 37, 74, 32]}, {"55060620": [141, 75]}, {"55060623": [12, 17, 96]}, {"55060627": [2]}, {"55060632": [149, 69]}, {"55060635": [4, 60, 10, 128, 64, 37, 74, 32, 16, 161, 64]}, {"55060648": [60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060660": [3, 224]}, {"55060663": [8]}, {"55060668": [60, 8, 128, 64, 37, 8, 32]}, {"55060676": [141, 9]}, {"55060679": [12, 17, 32]}, {"55060683": [2]}, {"55060688": [129, 3]}, {"55060691": [2]}, {"55060693": [3, 15, 195]}, {"55060697": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55060711": [8]}, {"55060716": [144, 69]}, {"55060719": [3, 60, 8, 128, 64, 37, 8, 32]}, {"55060728": [141, 9]}, {"55060731": [12, 17, 32]}, {"55060735": [2]}, {"55060740": [145, 5]}, {"55060743": [3, 3, 224]}, {"55060747": [8]}, {"55060752": [143, 162]}, {"55060755": [36, 144, 69]}, {"55060760": [60, 8, 128, 64, 37, 8, 32]}, {"55060768": [141, 9]}, {"55060771": [12, 17, 32]}, {"55060775": [19]}, {"55060780": [145, 5]}, {"55060783": [1, 175, 164]}, {"55060788": [175, 165]}, {"55060791": [4, 175, 166]}, {"55060795": [8, 39, 189, 255, 232, 175, 191]}, {"55060803": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55060815": [6, 145, 6]}, {"55060819": [7, 141, 9]}, {"55060823": [8, 1, 32, 248, 9]}, {"55060832": [143, 191]}, {"55060835": [16, 39, 189]}, {"55060839": [24, 143, 164]}, {"55060844": [143, 165]}, {"55060847": [4, 143, 166]}, {"55060851": [8, 3, 224]}, {"55060855": [8]}, {"55060860": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55060871": [16, 175, 163]}, {"55060875": [20, 175, 191]}, {"55060879": [24, 12, 16, 10, 108]}, {"55060888": [143, 162]}, {"55060891": [16, 143, 163]}, {"55060895": [20, 143, 191]}, {"55060899": [24, 39, 189]}, {"55060903": [32, 3, 224]}, {"55060907": [8]}, {"55060912": [39, 189, 255, 232, 175, 191]}, {"55060919": [16, 60, 8, 128, 64, 37, 8, 32]}, {"55060928": [173]}, {"55060932": [173]}, {"55060935": [4, 173]}, {"55060939": [8, 173]}, {"55060943": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55060959": [42]}, {"55060965": [9, 15, 195, 1, 33, 32, 38]}, {"55060973": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 166]}, {"55060988": [4, 64]}, {"55060991": [34]}, {"55060996": [52, 68]}, {"55061000": [12, 16, 10, 245]}, {"55061008": [16, 96]}, {"55061011": [12]}, {"55061016": [60, 8, 128, 64, 37, 8, 32]}, {"55061024": [140, 105]}, {"55061028": [173, 9]}, {"55061032": [140, 105]}, {"55061035": [4, 173, 9]}, {"55061039": [4, 140, 105]}, {"55061043": [8, 173, 9]}, {"55061047": [8, 52, 9]}, {"55061051": [1, 173, 9]}, {"55061055": [12, 144, 98]}, {"55061060": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061076": [52, 1]}, {"55061079": [10, 21, 65]}, {"55061083": [6]}, {"55061088": [149, 42]}, {"55061091": [28, 49, 74, 240, 31]}, {"55061097": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061107": [28, 129, 9, 4, 36, 5, 33]}, {"55061115": [2]}, {"55061121": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061131": [16, 39, 189]}, {"55061135": [24, 3, 224]}, {"55061139": [8]}, {"55061144": [39, 189, 255, 232, 175, 191]}, {"55061151": [16, 12, 16, 10, 180]}, {"55061160": [36, 1, 255, 255, 16, 65]}, {"55061167": [4]}, {"55061172": [52, 68]}, {"55061176": [12, 16, 10, 232]}, {"55061184": [143, 191]}, {"55061187": [16, 39, 189]}, {"55061191": [24, 3, 224]}, {"55061195": [8]}, {"55061200": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061211": [164, 52, 8]}, {"55061216": [52, 137]}, {"55061220": [148, 170]}, {"55061224": [52, 1, 1, 156, 21, 65]}, {"55061231": [8]}, {"55061236": [52, 8]}, {"55061239": [3, 148, 171]}, {"55061243": [28, 49, 105]}, {"55061247": [255, 49, 98, 31]}, {"55061253": [2, 18, 2, 16]}, {"55061259": [31]}, {"55061264": [52, 1]}, {"55061267": [10, 21, 65]}, {"55061271": [14]}, {"55061276": [148, 171]}, {"55061279": [28, 52, 1]}, {"55061283": [16, 20, 65]}, {"55061287": [8]}, {"55061292": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061303": [4]}, {"55061308": [36, 2, 255, 255, 16]}, {"55061315": [21]}, {"55061320": [52, 8]}, {"55061323": [1, 49, 105]}, {"55061327": [31, 52, 1]}, {"55061331": [21, 21, 65]}, {"55061335": [12]}, {"55061340": [52, 1]}, {"55061343": [62, 16, 129]}, {"55061347": [7]}, {"55061352": [52, 1]}, {"55061355": [66, 16, 129]}, {"55061359": [4]}, {"55061364": [36, 2, 255, 255, 16]}, {"55061371": [7]}, {"55061376": [52, 8]}, {"55061379": [2, 144, 169, 1, 65]}, {"55061385": [2, 18]}, {"55061389": [72, 16, 37]}, {"55061393": [2, 18]}, {"55061397": [73, 16, 37, 3, 224]}, {"55061403": [8]}, {"55061408": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061423": [4, 141, 9]}, {"55061428": [17, 32]}, {"55061431": [5]}, {"55061437": [9, 82, 2, 21, 68, 255, 250]}, {"55061448": [49, 34]}, {"55061451": [255, 3, 224]}, {"55061455": [8]}, {"55061460": [39, 189, 255, 224, 175, 176]}, {"55061467": [16, 175, 177]}, {"55061471": [20, 175, 191]}, {"55061475": [24, 52, 130]}, {"55061480": [52, 80]}, {"55061484": [38, 8, 255, 128, 5]}, {"55061491": [18]}, {"55061496": [60, 17, 128, 64, 38, 49, 32, 32, 52, 9]}, {"55061507": [16, 1, 9]}, {"55061511": [24]}, {"55061514": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061532": [142, 40]}, {"55061535": [12, 1]}, {"55061538": [248, 9]}, {"55061544": [20, 80, 255, 239]}, {"55061552": [54, 35]}, {"55061556": [16]}, {"55061559": [2]}, {"55061564": [52, 3]}, {"55061568": [143, 176]}, {"55061571": [16, 143, 177]}, {"55061575": [20, 143, 191]}, {"55061579": [24, 39, 189]}, {"55061583": [32, 3, 224]}, {"55061587": [8]}, {"55061592": [140, 136, 29, 44, 52, 9]}, {"55061599": [1]}, {"55061601": [9, 78]}, {"55061604": [1, 9, 16, 36, 16, 64]}, {"55061611": [36]}, {"55061616": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55061631": [164, 52, 1]}, {"55061635": [61, 17, 129]}, {"55061639": [10]}, {"55061645": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55061655": [25]}, {"55061660": [52, 13]}, {"55061663": [1, 161, 141, 29, 40, 37, 74]}, {"55061671": [3, 16]}, {"55061675": [9]}, {"55061680": [52, 12]}, {"55061683": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55061699": [14]}, {"55061704": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 2, 1, 10, 64, 33, 129, 8]}, {"55061740": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061752": [52, 2]}, {"55061756": [3, 224]}, {"55061759": [8]}, {"55061764": [60, 8, 128, 64, 37, 8, 28]}, {"55061772": [129, 8]}, {"55061776": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061788": [3, 224]}, {"55061791": [8]}, {"55061796": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55061808": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061820": [3, 224]}, {"55061823": [8]}, {"55061828": [52, 1, 64]}, {"55061832": [175, 161]}, {"55061835": [28, 3, 224]}, {"55061839": [8]}, {"55061844": [175, 164]}, {"55061847": [104, 175, 165]}, {"55061851": [108, 175, 166]}, {"55061855": [112, 175, 167]}, {"55061859": [116, 39, 189, 255, 232, 175, 163]}, {"55061867": [16, 175, 191]}, {"55061871": [20, 60, 8, 128, 64, 37, 8, 32, 16, 129, 8]}, {"55061884": [17]}, {"55061887": [14]}, {"55061892": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55061903": [1, 165, 42]}, {"55061908": [60, 9, 128, 65, 52, 10]}, {"55061915": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 108]}, {"55061944": [143, 163]}, {"55061947": [16, 143, 191]}, {"55061951": [20, 39, 189]}, {"55061955": [24, 143, 164]}, {"55061959": [104, 143, 165]}, {"55061963": [108, 143, 166]}, {"55061967": [112, 143, 167]}, {"55061971": [116, 132, 110, 19, 196, 3, 224]}, {"55061979": [8]}, {"55061984": [147, 25]}, {"55061987": [116, 52, 1]}, {"55061991": [255, 23, 33]}, {"55061995": [2]}, {"55062000": [52, 25]}, {"55062003": [44, 3, 224]}, {"55062007": [8, 167, 185]}, {"55062011": [154, 147, 44]}, {"55062015": [116, 52, 1]}, {"55062019": [255, 21, 129]}, {"55062023": [2]}, {"55062028": [52, 12]}, {"55062031": [44, 3, 224]}, {"55062035": [8]}, {"55062040": [145, 174]}, {"55062043": [116, 52, 1]}, {"55062047": [255, 21, 193]}, {"55062051": [2]}, {"55062056": [52, 14]}, {"55062059": [44, 3, 224]}, {"55062063": [8, 167, 174]}, {"55062067": [154, 145, 207]}, {"55062071": [116, 52, 1]}, {"55062075": [255, 21, 225]}, {"55062079": [2]}, {"55062084": [52, 15]}, {"55062087": [44, 3, 224]}, {"55062091": [8, 167, 175]}, {"55062095": [154, 60, 8, 128, 64, 37, 8, 32, 20, 142, 9]}, {"55062107": [104, 173, 9]}, {"55062112": [142, 9]}, {"55062115": [108, 173, 9]}, {"55062119": [4, 150, 9]}, {"55062123": [112, 165, 9]}, {"55062127": [8, 150, 9]}, {"55062131": [156, 165, 9]}, {"55062135": [10, 3, 224]}, {"55062139": [8, 142, 14]}, {"55062143": [4, 39, 189, 255, 224, 175, 176]}, {"55062151": [16, 175, 177]}, {"55062155": [20, 175, 191]}, {"55062159": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 20, 142, 8]}, {"55062179": [4, 17]}, {"55062183": [5]}, {"55062188": [12, 16, 11, 202]}, {"55062196": [16]}, {"55062199": [3]}, {"55062204": [12, 16, 11, 221]}, {"55062212": [12, 16, 11, 189, 52, 4]}, {"55062220": [12, 16, 11, 189, 52, 4]}, {"55062227": [1, 12, 16, 11, 189, 52, 4]}, {"55062235": [2, 143, 176]}, {"55062239": [16, 143, 177]}, {"55062243": [20, 143, 191]}, {"55062247": [24, 39, 189]}, {"55062251": [32, 3, 224]}, {"55062255": [8]}, {"55062260": [2, 4, 64, 33, 145, 9]}, {"55062267": [108, 52, 1]}, {"55062271": [255, 17, 33]}, {"55062275": [7]}, {"55062280": [2, 9, 72, 33, 145, 41]}, {"55062287": [116, 52, 1]}, {"55062291": [44, 17, 33]}, {"55062295": [2]}, {"55062300": [161, 9]}, {"55062303": [105, 3, 224]}, {"55062307": [8]}, {"55062312": [39, 189, 255, 232, 175, 191]}, {"55062319": [16, 142, 40]}, {"55062324": [174, 8]}, {"55062327": [64, 142, 40]}, {"55062331": [4, 174, 8]}, {"55062335": [68, 150, 40]}, {"55062339": [8, 166, 8]}, {"55062343": [72, 162]}, {"55062346": [15, 51, 146, 8]}, {"55062351": [74, 52, 1]}, {"55062355": [255, 21, 1]}, {"55062359": [3]}, {"55062364": [12, 16, 11, 235]}, {"55062372": [143, 191]}, {"55062375": [16, 39, 189]}, {"55062379": [24, 3, 224]}, {"55062383": [8]}, {"55062388": [142, 8]}, {"55062391": [64, 174, 8]}, {"55062395": [104, 142, 8]}, {"55062399": [68, 174, 8]}, {"55062403": [108, 150, 8]}, {"55062407": [72, 166, 8]}, {"55062411": [112, 146, 8]}, {"55062415": [104, 52, 1]}, {"55062419": [255, 21, 1]}, {"55062423": [3]}, {"55062428": [52, 8]}, {"55062431": [1, 162, 8, 15, 51, 3, 224]}, {"55062439": [8]}, {"55062444": [39, 189, 255, 232, 175, 191]}, {"55062451": [16, 150, 8]}, {"55062455": [156, 49, 8]}, {"55062459": [64, 17]}, {"55062463": [5]}, {"55062468": [150, 8]}, {"55062471": [112, 49, 8, 255, 15, 53, 8]}, {"55062479": [48, 166, 8]}, {"55062483": [112, 146, 40]}, {"55062487": [1, 162, 8]}, {"55062491": [105, 150, 40]}, {"55062495": [2, 166, 8]}, {"55062499": [106, 142, 40]}, {"55062503": [4, 174, 8]}, {"55062507": [108, 12, 16, 12, 5, 52, 4]}, {"55062516": [12, 16, 12, 5, 52, 4]}, {"55062523": [1, 12, 16, 12, 5, 52, 4]}, {"55062531": [2, 143, 191]}, {"55062535": [16, 39, 189]}, {"55062539": [24, 3, 224]}, {"55062543": [8]}, {"55062548": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 48, 192, 145, 10]}, {"55062563": [108, 52, 1]}, {"55062567": [255, 17, 65]}, {"55062571": [5]}, {"55062576": [1, 42, 72, 33, 145, 41]}, {"55062584": [21, 32]}, {"55062587": [28]}, {"55062592": [60, 9, 128, 64, 37, 41, 48, 179, 37, 41]}, {"55062603": [1, 145, 42]}, {"55062608": [17, 64]}, {"55062611": [19]}, {"55062616": [2, 10, 88, 33, 145, 107]}, {"55062623": [116, 52, 1]}, {"55062627": [255, 17, 97, 255, 248]}, {"55062636": [146, 12]}, {"55062639": [108, 17, 138, 255, 245]}, {"55062648": [146, 12]}, {"55062651": [109, 17, 138, 255, 242]}, {"55062660": [146, 12]}, {"55062663": [110, 17, 138, 255, 239]}, {"55062672": [161, 11]}, {"55062675": [105, 161, 10]}, {"55062679": [108, 16]}, {"55062683": [4]}, {"55062688": [52, 9]}, {"55062691": [255, 161, 9]}, {"55062695": [105, 161, 9]}, {"55062699": [108, 3, 224]}, {"55062703": [8]}, {"55062708": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55062721": [1, 1, 1, 1, 1]}, {"55062727": [1, 1, 1, 1, 1]}, {"55062733": [1]}, {"55062735": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55062745": [51, 8, 33, 32, 15]}, {"55062751": [71, 21, 234]}, {"55062755": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062767": [164]}, {"55062769": [15, 122, 3, 20, 64]}, {"55062775": [5, 52, 2, 72, 48, 21, 226]}, {"55062783": [7]}, {"55062788": [36, 25]}, {"55062791": [3, 16]}, {"55062795": [4, 52, 2, 99, 17, 21, 226]}, {"55062803": [2]}, {"55062808": [36, 25]}, {"55062811": [3, 3, 224]}, {"55062815": [8]}, {"55062820": [141, 173, 138, 160, 52, 2, 128]}, {"55062828": [16, 77]}, {"55062831": [2]}, {"55062836": [16]}, {"55062839": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55062855": [1, 16, 64]}, {"55062859": [2]}, {"55062864": [16]}, {"55062867": [2, 52, 2]}, {"55062871": [1, 161, 226, 28, 191, 3, 224]}, {"55062879": [8]}, {"55062885": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062899": [164]}, {"55062901": [15, 122, 3, 20, 64]}, {"55062907": [5, 52, 2, 72, 48, 21, 226]}, {"55062915": [7]}, {"55062920": [36, 25]}, {"55062923": [3, 16]}, {"55062927": [4, 52, 2, 99, 17, 21, 226]}, {"55062935": [2]}, {"55062940": [36, 25]}, {"55062943": [3, 3, 224]}, {"55062947": [8]}, {"55062952": [162, 37]}, {"55062955": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55062967": [4, 142, 10]}, {"55062972": [17, 64]}, {"55062975": [11]}, {"55062981": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55062993": [24, 194, 2, 23]}, {"55062999": [3, 49, 89]}, {"55063003": [255, 129, 234]}, {"55063008": [3, 42, 200, 37, 8, 16, 12, 109, 161, 249]}, {"55063020": [3, 224]}, {"55063023": [8]}] \ No newline at end of file +[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 95]}, {"11325064": [12, 16, 11, 65, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 11, 156]}, {"11427312": [12, 16, 12, 69]}, {"11431496": [12, 16, 11, 73, 1, 15, 192, 33]}, {"11562028": [12, 16, 12, 102]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 12, 85]}, {"11882076": [12, 16, 12, 50]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 11, 123, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 11, 130, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 11, 137, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 11]}, {"12287068": [0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 47]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 9, 207]}, {"12427480": [12, 16, 10, 25]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 29]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 11, 81, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 59]}, {"12491480": [12, 16, 10, 68]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 22]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 11, 144]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 140, 73]}, {"14149503": [164]}, {"14149512": [2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149856": [87]}, {"14149859": [15]}, {"14357459": [118]}, {"14624335": [118]}, {"14872723": [52]}, {"15327704": [52, 9, 64, 0]}, {"15327728": [52]}, {"15327730": [43, 8]}, {"15327744": [52]}, {"15327746": [0, 10]}, {"15327757": [169]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 9, 236, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 9, 236, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057408": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058464": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 104, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 132, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 172, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 212, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 252, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 36, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 64, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 92, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 120, 83, 65, 56, 67]}, {"55058613": [235, 21, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 55, 68]}, {"55058629": [235, 22, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 57, 69]}, {"55058645": [235, 23, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 63, 71]}, {"55058677": [244, 25, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 10, 6]}, {"55058757": [185, 1, 3, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 28]}, {"55058773": [185, 1, 4, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 29]}, {"55058789": [185, 1, 5, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 30]}, {"55058805": [185, 1, 6, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 42]}, {"55058821": [185, 1, 7, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 97]}, {"55058837": [185, 1, 10, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 98]}, {"55058853": [184, 2]}, {"55058856": [128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 99]}, {"55058869": [184, 2, 1, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 100]}, {"55058885": [184, 2, 2, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 101]}, {"55058901": [184, 2, 3, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 124]}, {"55058917": [184, 2, 4, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 125]}, {"55058933": [184, 2, 5, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 126]}, {"55058949": [184, 2, 6, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 127]}, {"55058965": [184, 2, 7, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 162]}, {"55058981": [184, 2, 8, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 135]}, {"55058997": [184, 2, 9, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 136]}, {"55059013": [200, 4]}, {"55059016": [128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 137]}, {"55059029": [200, 4, 1, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 138]}, {"55059045": [200, 4, 2, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 139]}, {"55059061": [200, 4, 3, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 140]}, {"55059077": [200, 4, 4, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 142]}, {"55059093": [200, 4, 5, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 143]}, {"55059109": [200, 4, 6, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 163]}, {"55059125": [200, 4, 7, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 165]}, {"55059141": [200, 4, 8, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 146]}, {"55059157": [200, 4, 9, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 2, 147]}, {"55059173": [170, 3, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 148]}, {"55059189": [170, 4, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 149]}, {"55059205": [170, 5, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 166]}, {"55059221": [170, 6, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 169]}, {"55059237": [170, 7, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 155]}, {"55059253": [170, 8, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 159]}, {"55059269": [170, 11, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 160]}, {"55059285": [170, 12, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 161]}, {"55059301": [170, 13, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 61, 67, 12]}, {"55059317": [248, 255, 255, 128, 64, 37, 236, 128, 64, 36, 96, 77, 131, 247, 85]}, {"55059333": [183, 255, 255, 128, 64, 37, 228, 128, 64, 36, 96, 77, 146, 219, 230]}, {"55059349": [216, 255, 255, 128, 64, 37, 228, 128, 64, 37, 172, 77, 147, 218, 230]}, {"55059365": [216, 255, 255, 128, 64, 37, 228, 128, 64, 37, 172, 77, 148, 217, 230]}, {"55059381": [216, 255, 255, 128, 64, 37, 228, 128, 64, 37, 172, 77, 142, 224, 50]}, {"55059397": [206, 255, 255, 128, 64, 37, 228, 128, 64, 37, 200, 77, 143, 224, 50]}, {"55059413": [206, 255, 255, 128, 64, 37, 228, 128, 64, 37, 200, 77, 144, 224, 50]}, {"55059429": [206, 255, 255, 128, 64, 37, 228, 128, 64, 37, 200, 77, 140, 238, 52]}, {"55059445": [187, 255, 255, 128, 64, 37, 228, 128, 64, 36, 96, 77, 141, 238, 52]}, {"55059461": [187, 255, 255, 128, 64, 37, 228, 128, 64, 36, 96, 79, 65, 19, 233]}, {"55059477": [189, 255, 255, 128, 64, 38, 124, 128, 64, 36, 96, 79, 65, 30, 228]}, {"55059493": [205, 255, 255, 128, 64, 38, 156, 128, 64, 37, 148, 79, 65, 31, 232]}, {"55059509": [205, 255, 255, 128, 64, 38, 188, 128, 64, 36, 96, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 38, 228, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 39, 44, 128, 64, 39, 16, 3, 224]}, {"55059555": [8, 52, 162]}, {"55059560": [144, 136]}, {"55059563": [125, 52, 1]}, {"55059567": [255, 17, 1]}, {"55059571": [2, 52, 2]}, {"55059575": [8, 52, 2]}, {"55059579": [9, 3, 224]}, {"55059583": [8]}, {"55059588": [144, 136]}, {"55059591": [163, 49, 8]}, {"55059595": [192, 17]}, {"55059599": [5, 52, 2]}, {"55059603": [84, 52, 1]}, {"55059607": [64, 17, 1]}, {"55059611": [2, 52, 2]}, {"55059615": [53, 52, 2]}, {"55059619": [54, 3, 224]}, {"55059623": [8]}, {"55059628": [144, 136]}, {"55059631": [163, 49, 8]}, {"55059635": [24, 17]}, {"55059639": [5, 52, 2]}, {"55059643": [50, 52, 1]}, {"55059647": [8, 17, 1]}, {"55059651": [2, 52, 2]}, {"55059655": [51, 52, 2]}, {"55059659": [52, 3, 224]}, {"55059663": [8]}, {"55059668": [144, 136]}, {"55059671": [163, 49, 8]}, {"55059675": [3, 17]}, {"55059679": [5, 52, 2]}, {"55059683": [4, 52, 1]}, {"55059687": [1, 17, 1]}, {"55059691": [2, 52, 2]}, {"55059695": [48, 52, 2]}, {"55059699": [49, 3, 224]}, {"55059703": [8]}, {"55059708": [144, 136]}, {"55059711": [162, 49, 8]}, {"55059715": [192, 17]}, {"55059719": [5, 52, 2]}, {"55059723": [5, 52, 1]}, {"55059727": [64, 17, 1]}, {"55059731": [2, 52, 2]}, {"55059735": [96, 52, 2]}, {"55059739": [123, 3, 224]}, {"55059743": [8]}, {"55059748": [144, 136]}, {"55059751": [162, 49, 8]}, {"55059755": [48, 17]}, {"55059759": [2, 52, 2]}, {"55059763": [69, 52, 2]}, {"55059767": [70, 3, 224]}, {"55059771": [8]}, {"55059776": [144, 136]}, {"55059779": [162, 49, 8]}, {"55059783": [6, 17]}, {"55059787": [2, 52, 2]}, {"55059791": [55, 52, 2]}, {"55059795": [56, 3, 224]}, {"55059799": [8]}, {"55059804": [144, 136]}, {"55059807": [161, 49, 8]}, {"55059811": [32, 17]}, {"55059815": [2, 52, 2]}, {"55059819": [121, 52, 2]}, {"55059823": [122, 3, 224]}, {"55059827": [8]}, {"55059832": [144, 136]}, {"55059835": [161, 49, 8]}, {"55059839": [4, 17]}, {"55059843": [2, 52, 2]}, {"55059847": [119, 52, 2]}, {"55059851": [120, 3, 224]}, {"55059855": [8]}, {"55059860": [144, 136]}, {"55059863": [50, 17]}, {"55059867": [2, 52, 2]}, {"55059871": [192, 52, 2]}, {"55059875": [193, 3, 224]}, {"55059879": [8]}, {"55059884": [144, 136]}, {"55059887": [163, 49, 8]}, {"55059891": [3, 17]}, {"55059895": [2, 52, 2]}, {"55059899": [77, 52, 162]}, {"55059904": [3, 224]}, {"55059907": [8]}, {"55059912": [144, 136]}, {"55059915": [163, 49, 8]}, {"55059919": [24, 17]}, {"55059923": [2, 52, 2]}, {"55059927": [77, 52, 162]}, {"55059932": [3, 224]}, {"55059935": [8]}, {"55059940": [3, 224]}, {"55059943": [8]}, {"55059948": [52, 8]}, {"55059951": [1, 160, 136]}, {"55059955": [62, 3, 224]}, {"55059959": [8]}, {"55059964": [36, 136]}, {"55059967": [134, 36, 9, 255, 255, 37, 41]}, {"55059975": [1, 52, 1]}, {"55059979": [3]}, {"55059981": [41, 8, 42, 20, 32]}, {"55059987": [7]}, {"55059992": [1, 9, 80, 33, 145, 75]}, {"55060000": [52, 1]}, {"55060003": [255, 21, 97, 255, 247]}, {"55060012": [161, 69]}, {"55060016": [3, 224]}, {"55060019": [8]}, {"55060024": [36, 136]}, {"55060027": [168, 1, 6, 64, 33, 145, 9]}, {"55060036": [1, 37, 72, 37, 161, 9]}, {"55060044": [3, 224]}, {"55060047": [8]}, {"55060052": [36, 136]}, {"55060055": [188, 1, 5, 64, 33, 129, 9]}, {"55060064": [5, 33]}, {"55060067": [2]}, {"55060072": [52, 9]}, {"55060076": [37, 41]}, {"55060079": [1, 161, 9]}, {"55060084": [3, 224]}, {"55060087": [8]}, {"55060092": [52, 8]}, {"55060095": [1, 160, 136]}, {"55060099": [61, 52, 8]}, {"55060103": [20, 160, 136]}, {"55060107": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060119": [8]}, {"55060124": [52, 8]}, {"55060127": [1, 160, 136]}, {"55060131": [50, 160, 136]}, {"55060135": [58, 52, 8]}, {"55060139": [48, 164, 136, 19, 244, 160, 136]}, {"55060147": [51, 3, 224]}, {"55060151": [8]}, {"55060156": [52, 8]}, {"55060159": [2, 160, 136]}, {"55060163": [50, 52, 8]}, {"55060167": [1, 160, 136]}, {"55060171": [58, 160, 136]}, {"55060175": [60, 52, 8]}, {"55060179": [96, 164, 136, 19, 244, 160, 136]}, {"55060187": [51, 3, 224]}, {"55060191": [8]}, {"55060196": [144, 136]}, {"55060199": [124, 52, 1]}, {"55060203": [255, 17, 1]}, {"55060207": [6, 52, 2]}, {"55060211": [107, 144, 136]}, {"55060215": [148, 45, 8]}, {"55060219": [6, 17]}, {"55060223": [2, 52, 2]}, {"55060227": [106, 52, 2]}, {"55060231": [3, 3, 224]}, {"55060235": [8]}, {"55060240": [144, 136]}, {"55060243": [123, 52, 1]}, {"55060247": [255, 17, 1]}, {"55060251": [2, 52, 162]}, {"55060256": [52, 2]}, {"55060259": [12, 3, 224]}, {"55060263": [8]}, {"55060268": [52, 8]}, {"55060271": [7, 160, 136]}, {"55060275": [123, 3, 224]}, {"55060279": [8]}, {"55060284": [48, 132]}, {"55060287": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060299": [140, 16, 129]}, {"55060303": [22, 145, 2]}, {"55060307": [117, 52, 1]}, {"55060311": [141, 16, 129]}, {"55060315": [19, 145, 2]}, {"55060319": [117, 16, 128]}, {"55060323": [17, 145, 2]}, {"55060327": [116, 52, 1]}, {"55060331": [138, 16, 129]}, {"55060335": [14, 145, 2]}, {"55060339": [116, 52, 1]}, {"55060343": [139, 16, 129]}, {"55060347": [11, 145, 2]}, {"55060351": [116, 52, 1]}, {"55060355": [88, 16, 129]}, {"55060359": [8, 52, 2]}, {"55060364": [52, 1]}, {"55060367": [120, 16, 129]}, {"55060371": [5, 52, 2]}, {"55060376": [52, 1]}, {"55060379": [121, 16, 129]}, {"55060383": [2, 52, 2]}, {"55060388": [52, 2]}, {"55060391": [255, 3, 224]}, {"55060395": [8]}, {"55060400": [39, 189, 255, 224, 175, 191]}, {"55060407": [16, 175, 176]}, {"55060411": [20, 12, 16, 10, 166]}, {"55060420": [4, 65]}, {"55060423": [2]}, {"55060428": [52, 2]}, {"55060431": [91]}, {"55060433": [64, 32, 33, 12, 16, 10, 245]}, {"55060444": [16, 96]}, {"55060447": [15, 175, 163]}, {"55060451": [28, 60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060463": [6, 144, 102]}, {"55060467": [7, 140, 105]}, {"55060471": [8, 1, 32, 248, 9]}, {"55060480": [143, 163]}, {"55060483": [28, 144, 101]}, {"55060487": [1, 12, 1, 191, 115, 2, 32, 32, 33, 143, 163]}, {"55060499": [28, 144, 101]}, {"55060503": [3, 16]}, {"55060507": [10, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060519": [6]}, {"55060521": [74]}, {"55060523": [24]}, {"55060526": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060536": [12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060547": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060558": [48, 33, 143, 191]}, {"55060563": [16, 143, 176]}, {"55060567": [20, 39, 189]}, {"55060571": [32, 3, 224]}, {"55060575": [8]}, {"55060580": [143, 166]}, {"55060583": [48, 132, 197]}, {"55060587": [4, 8, 16, 10, 33]}, {"55060596": [143, 185]}, {"55060599": [44, 135, 37]}, {"55060603": [4, 8, 16, 10, 33]}, {"55060612": [60, 10, 128, 64, 37, 74, 32]}, {"55060620": [141, 75]}, {"55060623": [12, 17, 96]}, {"55060627": [2]}, {"55060632": [149, 69]}, {"55060635": [4, 60, 10, 128, 64, 37, 74, 32, 16, 161, 64]}, {"55060648": [60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060660": [3, 224]}, {"55060663": [8]}, {"55060668": [60, 8, 128, 64, 37, 8, 32]}, {"55060676": [141, 9]}, {"55060679": [12, 17, 32]}, {"55060683": [2]}, {"55060688": [129, 3]}, {"55060691": [2]}, {"55060693": [3, 15, 195]}, {"55060697": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55060711": [8]}, {"55060716": [144, 69]}, {"55060719": [3, 60, 8, 128, 64, 37, 8, 32]}, {"55060728": [141, 9]}, {"55060731": [12, 17, 32]}, {"55060735": [2]}, {"55060740": [145, 5]}, {"55060743": [3, 3, 224]}, {"55060747": [8]}, {"55060752": [143, 162]}, {"55060755": [36, 144, 69]}, {"55060760": [60, 8, 128, 64, 37, 8, 32]}, {"55060768": [141, 9]}, {"55060771": [12, 17, 32]}, {"55060775": [19]}, {"55060780": [145, 5]}, {"55060783": [1, 175, 164]}, {"55060788": [175, 165]}, {"55060791": [4, 175, 166]}, {"55060795": [8, 39, 189, 255, 232, 175, 191]}, {"55060803": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55060815": [6, 145, 6]}, {"55060819": [7, 141, 9]}, {"55060823": [8, 1, 32, 248, 9]}, {"55060832": [143, 191]}, {"55060835": [16, 39, 189]}, {"55060839": [24, 143, 164]}, {"55060844": [143, 165]}, {"55060847": [4, 143, 166]}, {"55060851": [8, 3, 224]}, {"55060855": [8]}, {"55060860": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55060871": [16, 175, 163]}, {"55060875": [20, 175, 191]}, {"55060879": [24, 12, 16, 10, 108]}, {"55060888": [143, 162]}, {"55060891": [16, 143, 163]}, {"55060895": [20, 143, 191]}, {"55060899": [24, 39, 189]}, {"55060903": [32, 3, 224]}, {"55060907": [8]}, {"55060912": [39, 189, 255, 232, 175, 191]}, {"55060919": [16, 60, 8, 128, 64, 37, 8, 32]}, {"55060928": [173]}, {"55060932": [173]}, {"55060935": [4, 173]}, {"55060939": [8, 173]}, {"55060943": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55060959": [42]}, {"55060965": [9, 15, 195, 1, 33, 32, 38]}, {"55060973": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 166]}, {"55060988": [4, 64]}, {"55060991": [34]}, {"55060996": [52, 68]}, {"55061000": [12, 16, 10, 245]}, {"55061008": [16, 96]}, {"55061011": [12]}, {"55061016": [60, 8, 128, 64, 37, 8, 32]}, {"55061024": [140, 105]}, {"55061028": [173, 9]}, {"55061032": [140, 105]}, {"55061035": [4, 173, 9]}, {"55061039": [4, 140, 105]}, {"55061043": [8, 173, 9]}, {"55061047": [8, 52, 9]}, {"55061051": [1, 173, 9]}, {"55061055": [12, 144, 98]}, {"55061060": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061076": [52, 1]}, {"55061079": [10, 21, 65]}, {"55061083": [6]}, {"55061088": [149, 42]}, {"55061091": [28, 49, 74, 240, 31]}, {"55061097": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061107": [28, 129, 9, 4, 36, 5, 33]}, {"55061115": [2]}, {"55061121": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061131": [16, 39, 189]}, {"55061135": [24, 3, 224]}, {"55061139": [8]}, {"55061144": [39, 189, 255, 232, 175, 191]}, {"55061151": [16, 12, 16, 10, 180]}, {"55061160": [36, 1, 255, 255, 16, 65]}, {"55061167": [4]}, {"55061172": [52, 68]}, {"55061176": [12, 16, 10, 232]}, {"55061184": [143, 191]}, {"55061187": [16, 39, 189]}, {"55061191": [24, 3, 224]}, {"55061195": [8]}, {"55061200": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061211": [164, 52, 8]}, {"55061216": [52, 137]}, {"55061220": [148, 170]}, {"55061224": [52, 1, 1, 156, 21, 65]}, {"55061231": [8]}, {"55061236": [52, 8]}, {"55061239": [3, 148, 171]}, {"55061243": [28, 49, 105]}, {"55061247": [255, 49, 98, 31]}, {"55061253": [2, 18, 2, 16]}, {"55061259": [31]}, {"55061264": [52, 1]}, {"55061267": [10, 21, 65]}, {"55061271": [14]}, {"55061276": [148, 171]}, {"55061279": [28, 52, 1]}, {"55061283": [16, 20, 65]}, {"55061287": [8]}, {"55061292": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061303": [4]}, {"55061308": [36, 2, 255, 255, 16]}, {"55061315": [21]}, {"55061320": [52, 8]}, {"55061323": [1, 49, 105]}, {"55061327": [31, 52, 1]}, {"55061331": [21, 21, 65]}, {"55061335": [12]}, {"55061340": [52, 1]}, {"55061343": [62, 16, 129]}, {"55061347": [7]}, {"55061352": [52, 1]}, {"55061355": [66, 16, 129]}, {"55061359": [4]}, {"55061364": [36, 2, 255, 255, 16]}, {"55061371": [7]}, {"55061376": [52, 8]}, {"55061379": [2, 144, 169, 1, 65]}, {"55061385": [2, 18]}, {"55061389": [72, 16, 37]}, {"55061393": [2, 18]}, {"55061397": [73, 16, 37, 3, 224]}, {"55061403": [8]}, {"55061408": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061423": [4, 141, 9]}, {"55061428": [17, 32]}, {"55061431": [5]}, {"55061437": [9, 82, 2, 21, 68, 255, 250]}, {"55061448": [49, 34]}, {"55061451": [255, 3, 224]}, {"55061455": [8]}, {"55061460": [39, 189, 255, 224, 175, 176]}, {"55061467": [16, 175, 177]}, {"55061471": [20, 175, 191]}, {"55061475": [24, 52, 130]}, {"55061480": [52, 80]}, {"55061484": [38, 8, 255, 128, 5]}, {"55061491": [18]}, {"55061496": [60, 17, 128, 64, 38, 49, 32, 32, 52, 9]}, {"55061507": [16, 1, 9]}, {"55061511": [24]}, {"55061514": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061532": [142, 40]}, {"55061535": [12, 1]}, {"55061538": [248, 9]}, {"55061544": [20, 80, 255, 239]}, {"55061552": [54, 35]}, {"55061556": [16]}, {"55061559": [2]}, {"55061564": [52, 3]}, {"55061568": [143, 176]}, {"55061571": [16, 143, 177]}, {"55061575": [20, 143, 191]}, {"55061579": [24, 39, 189]}, {"55061583": [32, 3, 224]}, {"55061587": [8]}, {"55061592": [140, 136, 29, 44, 52, 9]}, {"55061599": [1]}, {"55061601": [9, 78]}, {"55061604": [1, 9, 16, 36, 16, 64]}, {"55061611": [36]}, {"55061616": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55061631": [164, 52, 1]}, {"55061635": [61, 17, 129]}, {"55061639": [10]}, {"55061645": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55061655": [25]}, {"55061660": [52, 13]}, {"55061663": [1, 161, 141, 29, 40, 37, 74]}, {"55061671": [3, 16]}, {"55061675": [9]}, {"55061680": [52, 12]}, {"55061683": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55061699": [14]}, {"55061704": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 2, 1, 10, 64, 33, 129, 8]}, {"55061740": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061752": [52, 2]}, {"55061756": [3, 224]}, {"55061759": [8]}, {"55061764": [60, 8, 128, 64, 37, 8, 28]}, {"55061772": [129, 8]}, {"55061776": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061788": [3, 224]}, {"55061791": [8]}, {"55061796": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55061808": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061820": [3, 224]}, {"55061823": [8]}, {"55061828": [175, 164]}, {"55061831": [104, 175, 165]}, {"55061835": [108, 175, 166]}, {"55061839": [112, 175, 167]}, {"55061843": [116, 39, 189, 255, 232, 175, 163]}, {"55061851": [16, 175, 191]}, {"55061855": [20, 60, 8, 128, 64, 37, 8, 32, 16, 129, 8]}, {"55061868": [17]}, {"55061871": [14]}, {"55061876": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55061887": [1, 165, 42]}, {"55061892": [60, 9, 128, 65, 52, 10]}, {"55061899": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 108]}, {"55061928": [143, 163]}, {"55061931": [16, 143, 191]}, {"55061935": [20, 39, 189]}, {"55061939": [24, 143, 164]}, {"55061943": [104, 143, 165]}, {"55061947": [108, 143, 166]}, {"55061951": [112, 143, 167]}, {"55061955": [116, 132, 110, 19, 196, 3, 224]}, {"55061963": [8]}, {"55061968": [147, 25]}, {"55061971": [116, 52, 1]}, {"55061975": [255, 23, 33]}, {"55061979": [2]}, {"55061984": [52, 25]}, {"55061987": [44, 3, 224]}, {"55061991": [8, 167, 185]}, {"55061995": [154, 147, 44]}, {"55061999": [116, 52, 1]}, {"55062003": [255, 21, 129]}, {"55062007": [2]}, {"55062012": [52, 12]}, {"55062015": [44, 3, 224]}, {"55062019": [8]}, {"55062024": [145, 174]}, {"55062027": [116, 52, 1]}, {"55062031": [255, 21, 193]}, {"55062035": [2]}, {"55062040": [52, 14]}, {"55062043": [44, 3, 224]}, {"55062047": [8, 167, 174]}, {"55062051": [154, 145, 207]}, {"55062055": [116, 52, 1]}, {"55062059": [255, 21, 225]}, {"55062063": [2]}, {"55062068": [52, 15]}, {"55062071": [44, 3, 224]}, {"55062075": [8, 167, 175]}, {"55062079": [154, 60, 8, 128, 64, 37, 8, 32, 20, 142, 9]}, {"55062091": [104, 173, 9]}, {"55062096": [142, 9]}, {"55062099": [108, 173, 9]}, {"55062103": [4, 150, 9]}, {"55062107": [112, 165, 9]}, {"55062111": [8, 150, 9]}, {"55062115": [156, 165, 9]}, {"55062119": [10, 3, 224]}, {"55062123": [8, 142, 14]}, {"55062127": [4, 39, 189, 255, 224, 175, 176]}, {"55062135": [16, 175, 177]}, {"55062139": [20, 175, 191]}, {"55062143": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 20, 142, 8]}, {"55062163": [4, 17]}, {"55062167": [5]}, {"55062172": [12, 16, 11, 198]}, {"55062180": [16]}, {"55062183": [3]}, {"55062188": [12, 16, 11, 217]}, {"55062196": [12, 16, 11, 185, 52, 4]}, {"55062204": [12, 16, 11, 185, 52, 4]}, {"55062211": [1, 12, 16, 11, 185, 52, 4]}, {"55062219": [2, 143, 176]}, {"55062223": [16, 143, 177]}, {"55062227": [20, 143, 191]}, {"55062231": [24, 39, 189]}, {"55062235": [32, 3, 224]}, {"55062239": [8]}, {"55062244": [2, 4, 64, 33, 145, 9]}, {"55062251": [108, 52, 1]}, {"55062255": [255, 17, 33]}, {"55062259": [7]}, {"55062264": [2, 9, 72, 33, 145, 41]}, {"55062271": [116, 52, 1]}, {"55062275": [44, 17, 33]}, {"55062279": [2]}, {"55062284": [161, 9]}, {"55062287": [105, 3, 224]}, {"55062291": [8]}, {"55062296": [39, 189, 255, 232, 175, 191]}, {"55062303": [16, 142, 40]}, {"55062308": [174, 8]}, {"55062311": [64, 142, 40]}, {"55062315": [4, 174, 8]}, {"55062319": [68, 150, 40]}, {"55062323": [8, 166, 8]}, {"55062327": [72, 162]}, {"55062330": [15, 51, 146, 8]}, {"55062335": [74, 52, 1]}, {"55062339": [255, 21, 1]}, {"55062343": [3]}, {"55062348": [12, 16, 11, 231]}, {"55062356": [143, 191]}, {"55062359": [16, 39, 189]}, {"55062363": [24, 3, 224]}, {"55062367": [8]}, {"55062372": [142, 8]}, {"55062375": [64, 174, 8]}, {"55062379": [104, 142, 8]}, {"55062383": [68, 174, 8]}, {"55062387": [108, 150, 8]}, {"55062391": [72, 166, 8]}, {"55062395": [112, 146, 8]}, {"55062399": [104, 52, 1]}, {"55062403": [255, 21, 1]}, {"55062407": [3]}, {"55062412": [52, 8]}, {"55062415": [1, 162, 8, 15, 51, 3, 224]}, {"55062423": [8]}, {"55062428": [39, 189, 255, 232, 175, 191]}, {"55062435": [16, 150, 8]}, {"55062439": [156, 49, 8]}, {"55062443": [64, 17]}, {"55062447": [5]}, {"55062452": [150, 8]}, {"55062455": [112, 49, 8, 255, 15, 53, 8]}, {"55062463": [48, 166, 8]}, {"55062467": [112, 146, 40]}, {"55062471": [1, 162, 8]}, {"55062475": [105, 150, 40]}, {"55062479": [2, 166, 8]}, {"55062483": [106, 142, 40]}, {"55062487": [4, 174, 8]}, {"55062491": [108, 12, 16, 12, 1, 52, 4]}, {"55062500": [12, 16, 12, 1, 52, 4]}, {"55062507": [1, 12, 16, 12, 1, 52, 4]}, {"55062515": [2, 143, 191]}, {"55062519": [16, 39, 189]}, {"55062523": [24, 3, 224]}, {"55062527": [8]}, {"55062532": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 48, 176, 145, 10]}, {"55062547": [108, 52, 1]}, {"55062551": [255, 17, 65]}, {"55062555": [5]}, {"55062560": [1, 42, 72, 33, 145, 41]}, {"55062568": [21, 32]}, {"55062571": [28]}, {"55062576": [60, 9, 128, 64, 37, 41, 48, 163, 37, 41]}, {"55062587": [1, 145, 42]}, {"55062592": [17, 64]}, {"55062595": [19]}, {"55062600": [2, 10, 88, 33, 145, 107]}, {"55062607": [116, 52, 1]}, {"55062611": [255, 17, 97, 255, 248]}, {"55062620": [146, 12]}, {"55062623": [108, 17, 138, 255, 245]}, {"55062632": [146, 12]}, {"55062635": [109, 17, 138, 255, 242]}, {"55062644": [146, 12]}, {"55062647": [110, 17, 138, 255, 239]}, {"55062656": [161, 11]}, {"55062659": [105, 161, 10]}, {"55062663": [108, 16]}, {"55062667": [4]}, {"55062672": [52, 9]}, {"55062675": [255, 161, 9]}, {"55062679": [105, 161, 9]}, {"55062683": [108, 3, 224]}, {"55062687": [8]}, {"55062692": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55062705": [1, 1, 1, 1, 1]}, {"55062711": [1, 1, 1, 1, 1]}, {"55062717": [1]}, {"55062719": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55062729": [51, 8, 33, 32, 15]}, {"55062735": [71, 21, 234]}, {"55062739": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062751": [164]}, {"55062753": [15, 122, 3, 20, 64]}, {"55062759": [5, 52, 2, 72, 48, 21, 226]}, {"55062767": [7]}, {"55062772": [36, 25]}, {"55062775": [3, 16]}, {"55062779": [4, 52, 2, 99, 17, 21, 226]}, {"55062787": [2]}, {"55062792": [36, 25]}, {"55062795": [3, 3, 224]}, {"55062799": [8]}, {"55062804": [141, 173, 138, 160, 52, 2, 128]}, {"55062812": [16, 77]}, {"55062815": [2]}, {"55062820": [16]}, {"55062823": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55062839": [1, 16, 64]}, {"55062843": [2]}, {"55062848": [16]}, {"55062851": [2, 52, 2]}, {"55062855": [1, 161, 226, 28, 191, 3, 224]}, {"55062863": [8]}, {"55062869": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062883": [164]}, {"55062885": [15, 122, 3, 20, 64]}, {"55062891": [5, 52, 2, 72, 48, 21, 226]}, {"55062899": [7]}, {"55062904": [36, 25]}, {"55062907": [3, 16]}, {"55062911": [4, 52, 2, 99, 17, 21, 226]}, {"55062919": [2]}, {"55062924": [36, 25]}, {"55062927": [3, 3, 224]}, {"55062931": [8]}, {"55062936": [162, 37]}, {"55062939": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55062951": [4, 142, 10]}, {"55062956": [17, 64]}, {"55062959": [11]}, {"55062965": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55062977": [24, 194, 2, 23]}, {"55062983": [3, 49, 89]}, {"55062987": [255, 129, 234]}, {"55062992": [3, 42, 200, 37, 8, 16, 12, 105, 161, 249]}, {"55063004": [3, 224]}, {"55063007": [8]}] \ No newline at end of file diff --git a/version.py b/version.py index d7f438158..9c9209347 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.14 f.LUM' +__version__ = '2.13.15 f.LUM' From 626f1ce6271dc74959234a1e054b7382cd0dc4c4 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Sun, 22 Jul 2018 00:32:12 -0400 Subject: [PATCH 192/755] Changed fire arrow chest back to small always I tried moving the chest so that it could be large without hookshotting it, but every position is a problem. If I set the position to 0x4433 you can only get from front, if you set it to 0x4434 you can only get from back --- ASM/src/hacks.asm | 2 +- data/base2current.json | 2 +- version.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ASM/src/hacks.asm b/ASM/src/hacks.asm index af6ed7142..922bc9a6e 100755 --- a/ASM/src/hacks.asm +++ b/ASM/src/hacks.asm @@ -333,7 +333,7 @@ ; Load chest contents ; li t0, 0x0007 .org 0xE9E1F0 - li t0, 0x2B08 + li t0, 0x5B08 ; Load actor type ; li a2, 0x010f diff --git a/data/base2current.json b/data/base2current.json index 4eb75d884..cc03bbfbd 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -1 +1 @@ -[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 95]}, {"11325064": [12, 16, 11, 65, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 11, 156]}, {"11427312": [12, 16, 12, 69]}, {"11431496": [12, 16, 11, 73, 1, 15, 192, 33]}, {"11562028": [12, 16, 12, 102]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 12, 85]}, {"11882076": [12, 16, 12, 50]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 11, 123, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 11, 130, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 11, 137, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 11]}, {"12287068": [0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 47]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 9, 207]}, {"12427480": [12, 16, 10, 25]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 29]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 11, 81, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 59]}, {"12491480": [12, 16, 10, 68]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 22]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 11, 144]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 140, 73]}, {"14149503": [164]}, {"14149512": [2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149856": [87]}, {"14149859": [15]}, {"14357459": [118]}, {"14624335": [118]}, {"14872723": [52]}, {"15327704": [52, 9, 64, 0]}, {"15327728": [52]}, {"15327730": [43, 8]}, {"15327744": [52]}, {"15327746": [0, 10]}, {"15327757": [169]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 9, 236, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 9, 236, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057408": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058464": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 104, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 132, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 172, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 212, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 252, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 36, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 64, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 92, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 120, 83, 65, 56, 67]}, {"55058613": [235, 21, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 55, 68]}, {"55058629": [235, 22, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 57, 69]}, {"55058645": [235, 23, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 63, 71]}, {"55058677": [244, 25, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 10, 6]}, {"55058757": [185, 1, 3, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 28]}, {"55058773": [185, 1, 4, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 29]}, {"55058789": [185, 1, 5, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 30]}, {"55058805": [185, 1, 6, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 42]}, {"55058821": [185, 1, 7, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 97]}, {"55058837": [185, 1, 10, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 98]}, {"55058853": [184, 2]}, {"55058856": [128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 99]}, {"55058869": [184, 2, 1, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 100]}, {"55058885": [184, 2, 2, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 101]}, {"55058901": [184, 2, 3, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 124]}, {"55058917": [184, 2, 4, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 125]}, {"55058933": [184, 2, 5, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 126]}, {"55058949": [184, 2, 6, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 127]}, {"55058965": [184, 2, 7, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 162]}, {"55058981": [184, 2, 8, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 135]}, {"55058997": [184, 2, 9, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 136]}, {"55059013": [200, 4]}, {"55059016": [128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 137]}, {"55059029": [200, 4, 1, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 138]}, {"55059045": [200, 4, 2, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 139]}, {"55059061": [200, 4, 3, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 140]}, {"55059077": [200, 4, 4, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 142]}, {"55059093": [200, 4, 5, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 143]}, {"55059109": [200, 4, 6, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 163]}, {"55059125": [200, 4, 7, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 165]}, {"55059141": [200, 4, 8, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 146]}, {"55059157": [200, 4, 9, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 2, 147]}, {"55059173": [170, 3, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 148]}, {"55059189": [170, 4, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 149]}, {"55059205": [170, 5, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 166]}, {"55059221": [170, 6, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 169]}, {"55059237": [170, 7, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 155]}, {"55059253": [170, 8, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 159]}, {"55059269": [170, 11, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 160]}, {"55059285": [170, 12, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 161]}, {"55059301": [170, 13, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 61, 67, 12]}, {"55059317": [248, 255, 255, 128, 64, 37, 236, 128, 64, 36, 96, 77, 131, 247, 85]}, {"55059333": [183, 255, 255, 128, 64, 37, 228, 128, 64, 36, 96, 77, 146, 219, 230]}, {"55059349": [216, 255, 255, 128, 64, 37, 228, 128, 64, 37, 172, 77, 147, 218, 230]}, {"55059365": [216, 255, 255, 128, 64, 37, 228, 128, 64, 37, 172, 77, 148, 217, 230]}, {"55059381": [216, 255, 255, 128, 64, 37, 228, 128, 64, 37, 172, 77, 142, 224, 50]}, {"55059397": [206, 255, 255, 128, 64, 37, 228, 128, 64, 37, 200, 77, 143, 224, 50]}, {"55059413": [206, 255, 255, 128, 64, 37, 228, 128, 64, 37, 200, 77, 144, 224, 50]}, {"55059429": [206, 255, 255, 128, 64, 37, 228, 128, 64, 37, 200, 77, 140, 238, 52]}, {"55059445": [187, 255, 255, 128, 64, 37, 228, 128, 64, 36, 96, 77, 141, 238, 52]}, {"55059461": [187, 255, 255, 128, 64, 37, 228, 128, 64, 36, 96, 79, 65, 19, 233]}, {"55059477": [189, 255, 255, 128, 64, 38, 124, 128, 64, 36, 96, 79, 65, 30, 228]}, {"55059493": [205, 255, 255, 128, 64, 38, 156, 128, 64, 37, 148, 79, 65, 31, 232]}, {"55059509": [205, 255, 255, 128, 64, 38, 188, 128, 64, 36, 96, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 38, 228, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 39, 44, 128, 64, 39, 16, 3, 224]}, {"55059555": [8, 52, 162]}, {"55059560": [144, 136]}, {"55059563": [125, 52, 1]}, {"55059567": [255, 17, 1]}, {"55059571": [2, 52, 2]}, {"55059575": [8, 52, 2]}, {"55059579": [9, 3, 224]}, {"55059583": [8]}, {"55059588": [144, 136]}, {"55059591": [163, 49, 8]}, {"55059595": [192, 17]}, {"55059599": [5, 52, 2]}, {"55059603": [84, 52, 1]}, {"55059607": [64, 17, 1]}, {"55059611": [2, 52, 2]}, {"55059615": [53, 52, 2]}, {"55059619": [54, 3, 224]}, {"55059623": [8]}, {"55059628": [144, 136]}, {"55059631": [163, 49, 8]}, {"55059635": [24, 17]}, {"55059639": [5, 52, 2]}, {"55059643": [50, 52, 1]}, {"55059647": [8, 17, 1]}, {"55059651": [2, 52, 2]}, {"55059655": [51, 52, 2]}, {"55059659": [52, 3, 224]}, {"55059663": [8]}, {"55059668": [144, 136]}, {"55059671": [163, 49, 8]}, {"55059675": [3, 17]}, {"55059679": [5, 52, 2]}, {"55059683": [4, 52, 1]}, {"55059687": [1, 17, 1]}, {"55059691": [2, 52, 2]}, {"55059695": [48, 52, 2]}, {"55059699": [49, 3, 224]}, {"55059703": [8]}, {"55059708": [144, 136]}, {"55059711": [162, 49, 8]}, {"55059715": [192, 17]}, {"55059719": [5, 52, 2]}, {"55059723": [5, 52, 1]}, {"55059727": [64, 17, 1]}, {"55059731": [2, 52, 2]}, {"55059735": [96, 52, 2]}, {"55059739": [123, 3, 224]}, {"55059743": [8]}, {"55059748": [144, 136]}, {"55059751": [162, 49, 8]}, {"55059755": [48, 17]}, {"55059759": [2, 52, 2]}, {"55059763": [69, 52, 2]}, {"55059767": [70, 3, 224]}, {"55059771": [8]}, {"55059776": [144, 136]}, {"55059779": [162, 49, 8]}, {"55059783": [6, 17]}, {"55059787": [2, 52, 2]}, {"55059791": [55, 52, 2]}, {"55059795": [56, 3, 224]}, {"55059799": [8]}, {"55059804": [144, 136]}, {"55059807": [161, 49, 8]}, {"55059811": [32, 17]}, {"55059815": [2, 52, 2]}, {"55059819": [121, 52, 2]}, {"55059823": [122, 3, 224]}, {"55059827": [8]}, {"55059832": [144, 136]}, {"55059835": [161, 49, 8]}, {"55059839": [4, 17]}, {"55059843": [2, 52, 2]}, {"55059847": [119, 52, 2]}, {"55059851": [120, 3, 224]}, {"55059855": [8]}, {"55059860": [144, 136]}, {"55059863": [50, 17]}, {"55059867": [2, 52, 2]}, {"55059871": [192, 52, 2]}, {"55059875": [193, 3, 224]}, {"55059879": [8]}, {"55059884": [144, 136]}, {"55059887": [163, 49, 8]}, {"55059891": [3, 17]}, {"55059895": [2, 52, 2]}, {"55059899": [77, 52, 162]}, {"55059904": [3, 224]}, {"55059907": [8]}, {"55059912": [144, 136]}, {"55059915": [163, 49, 8]}, {"55059919": [24, 17]}, {"55059923": [2, 52, 2]}, {"55059927": [77, 52, 162]}, {"55059932": [3, 224]}, {"55059935": [8]}, {"55059940": [3, 224]}, {"55059943": [8]}, {"55059948": [52, 8]}, {"55059951": [1, 160, 136]}, {"55059955": [62, 3, 224]}, {"55059959": [8]}, {"55059964": [36, 136]}, {"55059967": [134, 36, 9, 255, 255, 37, 41]}, {"55059975": [1, 52, 1]}, {"55059979": [3]}, {"55059981": [41, 8, 42, 20, 32]}, {"55059987": [7]}, {"55059992": [1, 9, 80, 33, 145, 75]}, {"55060000": [52, 1]}, {"55060003": [255, 21, 97, 255, 247]}, {"55060012": [161, 69]}, {"55060016": [3, 224]}, {"55060019": [8]}, {"55060024": [36, 136]}, {"55060027": [168, 1, 6, 64, 33, 145, 9]}, {"55060036": [1, 37, 72, 37, 161, 9]}, {"55060044": [3, 224]}, {"55060047": [8]}, {"55060052": [36, 136]}, {"55060055": [188, 1, 5, 64, 33, 129, 9]}, {"55060064": [5, 33]}, {"55060067": [2]}, {"55060072": [52, 9]}, {"55060076": [37, 41]}, {"55060079": [1, 161, 9]}, {"55060084": [3, 224]}, {"55060087": [8]}, {"55060092": [52, 8]}, {"55060095": [1, 160, 136]}, {"55060099": [61, 52, 8]}, {"55060103": [20, 160, 136]}, {"55060107": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060119": [8]}, {"55060124": [52, 8]}, {"55060127": [1, 160, 136]}, {"55060131": [50, 160, 136]}, {"55060135": [58, 52, 8]}, {"55060139": [48, 164, 136, 19, 244, 160, 136]}, {"55060147": [51, 3, 224]}, {"55060151": [8]}, {"55060156": [52, 8]}, {"55060159": [2, 160, 136]}, {"55060163": [50, 52, 8]}, {"55060167": [1, 160, 136]}, {"55060171": [58, 160, 136]}, {"55060175": [60, 52, 8]}, {"55060179": [96, 164, 136, 19, 244, 160, 136]}, {"55060187": [51, 3, 224]}, {"55060191": [8]}, {"55060196": [144, 136]}, {"55060199": [124, 52, 1]}, {"55060203": [255, 17, 1]}, {"55060207": [6, 52, 2]}, {"55060211": [107, 144, 136]}, {"55060215": [148, 45, 8]}, {"55060219": [6, 17]}, {"55060223": [2, 52, 2]}, {"55060227": [106, 52, 2]}, {"55060231": [3, 3, 224]}, {"55060235": [8]}, {"55060240": [144, 136]}, {"55060243": [123, 52, 1]}, {"55060247": [255, 17, 1]}, {"55060251": [2, 52, 162]}, {"55060256": [52, 2]}, {"55060259": [12, 3, 224]}, {"55060263": [8]}, {"55060268": [52, 8]}, {"55060271": [7, 160, 136]}, {"55060275": [123, 3, 224]}, {"55060279": [8]}, {"55060284": [48, 132]}, {"55060287": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060299": [140, 16, 129]}, {"55060303": [22, 145, 2]}, {"55060307": [117, 52, 1]}, {"55060311": [141, 16, 129]}, {"55060315": [19, 145, 2]}, {"55060319": [117, 16, 128]}, {"55060323": [17, 145, 2]}, {"55060327": [116, 52, 1]}, {"55060331": [138, 16, 129]}, {"55060335": [14, 145, 2]}, {"55060339": [116, 52, 1]}, {"55060343": [139, 16, 129]}, {"55060347": [11, 145, 2]}, {"55060351": [116, 52, 1]}, {"55060355": [88, 16, 129]}, {"55060359": [8, 52, 2]}, {"55060364": [52, 1]}, {"55060367": [120, 16, 129]}, {"55060371": [5, 52, 2]}, {"55060376": [52, 1]}, {"55060379": [121, 16, 129]}, {"55060383": [2, 52, 2]}, {"55060388": [52, 2]}, {"55060391": [255, 3, 224]}, {"55060395": [8]}, {"55060400": [39, 189, 255, 224, 175, 191]}, {"55060407": [16, 175, 176]}, {"55060411": [20, 12, 16, 10, 166]}, {"55060420": [4, 65]}, {"55060423": [2]}, {"55060428": [52, 2]}, {"55060431": [91]}, {"55060433": [64, 32, 33, 12, 16, 10, 245]}, {"55060444": [16, 96]}, {"55060447": [15, 175, 163]}, {"55060451": [28, 60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060463": [6, 144, 102]}, {"55060467": [7, 140, 105]}, {"55060471": [8, 1, 32, 248, 9]}, {"55060480": [143, 163]}, {"55060483": [28, 144, 101]}, {"55060487": [1, 12, 1, 191, 115, 2, 32, 32, 33, 143, 163]}, {"55060499": [28, 144, 101]}, {"55060503": [3, 16]}, {"55060507": [10, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060519": [6]}, {"55060521": [74]}, {"55060523": [24]}, {"55060526": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060536": [12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060547": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060558": [48, 33, 143, 191]}, {"55060563": [16, 143, 176]}, {"55060567": [20, 39, 189]}, {"55060571": [32, 3, 224]}, {"55060575": [8]}, {"55060580": [143, 166]}, {"55060583": [48, 132, 197]}, {"55060587": [4, 8, 16, 10, 33]}, {"55060596": [143, 185]}, {"55060599": [44, 135, 37]}, {"55060603": [4, 8, 16, 10, 33]}, {"55060612": [60, 10, 128, 64, 37, 74, 32]}, {"55060620": [141, 75]}, {"55060623": [12, 17, 96]}, {"55060627": [2]}, {"55060632": [149, 69]}, {"55060635": [4, 60, 10, 128, 64, 37, 74, 32, 16, 161, 64]}, {"55060648": [60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060660": [3, 224]}, {"55060663": [8]}, {"55060668": [60, 8, 128, 64, 37, 8, 32]}, {"55060676": [141, 9]}, {"55060679": [12, 17, 32]}, {"55060683": [2]}, {"55060688": [129, 3]}, {"55060691": [2]}, {"55060693": [3, 15, 195]}, {"55060697": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55060711": [8]}, {"55060716": [144, 69]}, {"55060719": [3, 60, 8, 128, 64, 37, 8, 32]}, {"55060728": [141, 9]}, {"55060731": [12, 17, 32]}, {"55060735": [2]}, {"55060740": [145, 5]}, {"55060743": [3, 3, 224]}, {"55060747": [8]}, {"55060752": [143, 162]}, {"55060755": [36, 144, 69]}, {"55060760": [60, 8, 128, 64, 37, 8, 32]}, {"55060768": [141, 9]}, {"55060771": [12, 17, 32]}, {"55060775": [19]}, {"55060780": [145, 5]}, {"55060783": [1, 175, 164]}, {"55060788": [175, 165]}, {"55060791": [4, 175, 166]}, {"55060795": [8, 39, 189, 255, 232, 175, 191]}, {"55060803": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55060815": [6, 145, 6]}, {"55060819": [7, 141, 9]}, {"55060823": [8, 1, 32, 248, 9]}, {"55060832": [143, 191]}, {"55060835": [16, 39, 189]}, {"55060839": [24, 143, 164]}, {"55060844": [143, 165]}, {"55060847": [4, 143, 166]}, {"55060851": [8, 3, 224]}, {"55060855": [8]}, {"55060860": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55060871": [16, 175, 163]}, {"55060875": [20, 175, 191]}, {"55060879": [24, 12, 16, 10, 108]}, {"55060888": [143, 162]}, {"55060891": [16, 143, 163]}, {"55060895": [20, 143, 191]}, {"55060899": [24, 39, 189]}, {"55060903": [32, 3, 224]}, {"55060907": [8]}, {"55060912": [39, 189, 255, 232, 175, 191]}, {"55060919": [16, 60, 8, 128, 64, 37, 8, 32]}, {"55060928": [173]}, {"55060932": [173]}, {"55060935": [4, 173]}, {"55060939": [8, 173]}, {"55060943": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55060959": [42]}, {"55060965": [9, 15, 195, 1, 33, 32, 38]}, {"55060973": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 166]}, {"55060988": [4, 64]}, {"55060991": [34]}, {"55060996": [52, 68]}, {"55061000": [12, 16, 10, 245]}, {"55061008": [16, 96]}, {"55061011": [12]}, {"55061016": [60, 8, 128, 64, 37, 8, 32]}, {"55061024": [140, 105]}, {"55061028": [173, 9]}, {"55061032": [140, 105]}, {"55061035": [4, 173, 9]}, {"55061039": [4, 140, 105]}, {"55061043": [8, 173, 9]}, {"55061047": [8, 52, 9]}, {"55061051": [1, 173, 9]}, {"55061055": [12, 144, 98]}, {"55061060": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061076": [52, 1]}, {"55061079": [10, 21, 65]}, {"55061083": [6]}, {"55061088": [149, 42]}, {"55061091": [28, 49, 74, 240, 31]}, {"55061097": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061107": [28, 129, 9, 4, 36, 5, 33]}, {"55061115": [2]}, {"55061121": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061131": [16, 39, 189]}, {"55061135": [24, 3, 224]}, {"55061139": [8]}, {"55061144": [39, 189, 255, 232, 175, 191]}, {"55061151": [16, 12, 16, 10, 180]}, {"55061160": [36, 1, 255, 255, 16, 65]}, {"55061167": [4]}, {"55061172": [52, 68]}, {"55061176": [12, 16, 10, 232]}, {"55061184": [143, 191]}, {"55061187": [16, 39, 189]}, {"55061191": [24, 3, 224]}, {"55061195": [8]}, {"55061200": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061211": [164, 52, 8]}, {"55061216": [52, 137]}, {"55061220": [148, 170]}, {"55061224": [52, 1, 1, 156, 21, 65]}, {"55061231": [8]}, {"55061236": [52, 8]}, {"55061239": [3, 148, 171]}, {"55061243": [28, 49, 105]}, {"55061247": [255, 49, 98, 31]}, {"55061253": [2, 18, 2, 16]}, {"55061259": [31]}, {"55061264": [52, 1]}, {"55061267": [10, 21, 65]}, {"55061271": [14]}, {"55061276": [148, 171]}, {"55061279": [28, 52, 1]}, {"55061283": [16, 20, 65]}, {"55061287": [8]}, {"55061292": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061303": [4]}, {"55061308": [36, 2, 255, 255, 16]}, {"55061315": [21]}, {"55061320": [52, 8]}, {"55061323": [1, 49, 105]}, {"55061327": [31, 52, 1]}, {"55061331": [21, 21, 65]}, {"55061335": [12]}, {"55061340": [52, 1]}, {"55061343": [62, 16, 129]}, {"55061347": [7]}, {"55061352": [52, 1]}, {"55061355": [66, 16, 129]}, {"55061359": [4]}, {"55061364": [36, 2, 255, 255, 16]}, {"55061371": [7]}, {"55061376": [52, 8]}, {"55061379": [2, 144, 169, 1, 65]}, {"55061385": [2, 18]}, {"55061389": [72, 16, 37]}, {"55061393": [2, 18]}, {"55061397": [73, 16, 37, 3, 224]}, {"55061403": [8]}, {"55061408": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061423": [4, 141, 9]}, {"55061428": [17, 32]}, {"55061431": [5]}, {"55061437": [9, 82, 2, 21, 68, 255, 250]}, {"55061448": [49, 34]}, {"55061451": [255, 3, 224]}, {"55061455": [8]}, {"55061460": [39, 189, 255, 224, 175, 176]}, {"55061467": [16, 175, 177]}, {"55061471": [20, 175, 191]}, {"55061475": [24, 52, 130]}, {"55061480": [52, 80]}, {"55061484": [38, 8, 255, 128, 5]}, {"55061491": [18]}, {"55061496": [60, 17, 128, 64, 38, 49, 32, 32, 52, 9]}, {"55061507": [16, 1, 9]}, {"55061511": [24]}, {"55061514": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061532": [142, 40]}, {"55061535": [12, 1]}, {"55061538": [248, 9]}, {"55061544": [20, 80, 255, 239]}, {"55061552": [54, 35]}, {"55061556": [16]}, {"55061559": [2]}, {"55061564": [52, 3]}, {"55061568": [143, 176]}, {"55061571": [16, 143, 177]}, {"55061575": [20, 143, 191]}, {"55061579": [24, 39, 189]}, {"55061583": [32, 3, 224]}, {"55061587": [8]}, {"55061592": [140, 136, 29, 44, 52, 9]}, {"55061599": [1]}, {"55061601": [9, 78]}, {"55061604": [1, 9, 16, 36, 16, 64]}, {"55061611": [36]}, {"55061616": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55061631": [164, 52, 1]}, {"55061635": [61, 17, 129]}, {"55061639": [10]}, {"55061645": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55061655": [25]}, {"55061660": [52, 13]}, {"55061663": [1, 161, 141, 29, 40, 37, 74]}, {"55061671": [3, 16]}, {"55061675": [9]}, {"55061680": [52, 12]}, {"55061683": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55061699": [14]}, {"55061704": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 2, 1, 10, 64, 33, 129, 8]}, {"55061740": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061752": [52, 2]}, {"55061756": [3, 224]}, {"55061759": [8]}, {"55061764": [60, 8, 128, 64, 37, 8, 28]}, {"55061772": [129, 8]}, {"55061776": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061788": [3, 224]}, {"55061791": [8]}, {"55061796": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55061808": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061820": [3, 224]}, {"55061823": [8]}, {"55061828": [175, 164]}, {"55061831": [104, 175, 165]}, {"55061835": [108, 175, 166]}, {"55061839": [112, 175, 167]}, {"55061843": [116, 39, 189, 255, 232, 175, 163]}, {"55061851": [16, 175, 191]}, {"55061855": [20, 60, 8, 128, 64, 37, 8, 32, 16, 129, 8]}, {"55061868": [17]}, {"55061871": [14]}, {"55061876": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55061887": [1, 165, 42]}, {"55061892": [60, 9, 128, 65, 52, 10]}, {"55061899": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 108]}, {"55061928": [143, 163]}, {"55061931": [16, 143, 191]}, {"55061935": [20, 39, 189]}, {"55061939": [24, 143, 164]}, {"55061943": [104, 143, 165]}, {"55061947": [108, 143, 166]}, {"55061951": [112, 143, 167]}, {"55061955": [116, 132, 110, 19, 196, 3, 224]}, {"55061963": [8]}, {"55061968": [147, 25]}, {"55061971": [116, 52, 1]}, {"55061975": [255, 23, 33]}, {"55061979": [2]}, {"55061984": [52, 25]}, {"55061987": [44, 3, 224]}, {"55061991": [8, 167, 185]}, {"55061995": [154, 147, 44]}, {"55061999": [116, 52, 1]}, {"55062003": [255, 21, 129]}, {"55062007": [2]}, {"55062012": [52, 12]}, {"55062015": [44, 3, 224]}, {"55062019": [8]}, {"55062024": [145, 174]}, {"55062027": [116, 52, 1]}, {"55062031": [255, 21, 193]}, {"55062035": [2]}, {"55062040": [52, 14]}, {"55062043": [44, 3, 224]}, {"55062047": [8, 167, 174]}, {"55062051": [154, 145, 207]}, {"55062055": [116, 52, 1]}, {"55062059": [255, 21, 225]}, {"55062063": [2]}, {"55062068": [52, 15]}, {"55062071": [44, 3, 224]}, {"55062075": [8, 167, 175]}, {"55062079": [154, 60, 8, 128, 64, 37, 8, 32, 20, 142, 9]}, {"55062091": [104, 173, 9]}, {"55062096": [142, 9]}, {"55062099": [108, 173, 9]}, {"55062103": [4, 150, 9]}, {"55062107": [112, 165, 9]}, {"55062111": [8, 150, 9]}, {"55062115": [156, 165, 9]}, {"55062119": [10, 3, 224]}, {"55062123": [8, 142, 14]}, {"55062127": [4, 39, 189, 255, 224, 175, 176]}, {"55062135": [16, 175, 177]}, {"55062139": [20, 175, 191]}, {"55062143": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 20, 142, 8]}, {"55062163": [4, 17]}, {"55062167": [5]}, {"55062172": [12, 16, 11, 198]}, {"55062180": [16]}, {"55062183": [3]}, {"55062188": [12, 16, 11, 217]}, {"55062196": [12, 16, 11, 185, 52, 4]}, {"55062204": [12, 16, 11, 185, 52, 4]}, {"55062211": [1, 12, 16, 11, 185, 52, 4]}, {"55062219": [2, 143, 176]}, {"55062223": [16, 143, 177]}, {"55062227": [20, 143, 191]}, {"55062231": [24, 39, 189]}, {"55062235": [32, 3, 224]}, {"55062239": [8]}, {"55062244": [2, 4, 64, 33, 145, 9]}, {"55062251": [108, 52, 1]}, {"55062255": [255, 17, 33]}, {"55062259": [7]}, {"55062264": [2, 9, 72, 33, 145, 41]}, {"55062271": [116, 52, 1]}, {"55062275": [44, 17, 33]}, {"55062279": [2]}, {"55062284": [161, 9]}, {"55062287": [105, 3, 224]}, {"55062291": [8]}, {"55062296": [39, 189, 255, 232, 175, 191]}, {"55062303": [16, 142, 40]}, {"55062308": [174, 8]}, {"55062311": [64, 142, 40]}, {"55062315": [4, 174, 8]}, {"55062319": [68, 150, 40]}, {"55062323": [8, 166, 8]}, {"55062327": [72, 162]}, {"55062330": [15, 51, 146, 8]}, {"55062335": [74, 52, 1]}, {"55062339": [255, 21, 1]}, {"55062343": [3]}, {"55062348": [12, 16, 11, 231]}, {"55062356": [143, 191]}, {"55062359": [16, 39, 189]}, {"55062363": [24, 3, 224]}, {"55062367": [8]}, {"55062372": [142, 8]}, {"55062375": [64, 174, 8]}, {"55062379": [104, 142, 8]}, {"55062383": [68, 174, 8]}, {"55062387": [108, 150, 8]}, {"55062391": [72, 166, 8]}, {"55062395": [112, 146, 8]}, {"55062399": [104, 52, 1]}, {"55062403": [255, 21, 1]}, {"55062407": [3]}, {"55062412": [52, 8]}, {"55062415": [1, 162, 8, 15, 51, 3, 224]}, {"55062423": [8]}, {"55062428": [39, 189, 255, 232, 175, 191]}, {"55062435": [16, 150, 8]}, {"55062439": [156, 49, 8]}, {"55062443": [64, 17]}, {"55062447": [5]}, {"55062452": [150, 8]}, {"55062455": [112, 49, 8, 255, 15, 53, 8]}, {"55062463": [48, 166, 8]}, {"55062467": [112, 146, 40]}, {"55062471": [1, 162, 8]}, {"55062475": [105, 150, 40]}, {"55062479": [2, 166, 8]}, {"55062483": [106, 142, 40]}, {"55062487": [4, 174, 8]}, {"55062491": [108, 12, 16, 12, 1, 52, 4]}, {"55062500": [12, 16, 12, 1, 52, 4]}, {"55062507": [1, 12, 16, 12, 1, 52, 4]}, {"55062515": [2, 143, 191]}, {"55062519": [16, 39, 189]}, {"55062523": [24, 3, 224]}, {"55062527": [8]}, {"55062532": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 48, 176, 145, 10]}, {"55062547": [108, 52, 1]}, {"55062551": [255, 17, 65]}, {"55062555": [5]}, {"55062560": [1, 42, 72, 33, 145, 41]}, {"55062568": [21, 32]}, {"55062571": [28]}, {"55062576": [60, 9, 128, 64, 37, 41, 48, 163, 37, 41]}, {"55062587": [1, 145, 42]}, {"55062592": [17, 64]}, {"55062595": [19]}, {"55062600": [2, 10, 88, 33, 145, 107]}, {"55062607": [116, 52, 1]}, {"55062611": [255, 17, 97, 255, 248]}, {"55062620": [146, 12]}, {"55062623": [108, 17, 138, 255, 245]}, {"55062632": [146, 12]}, {"55062635": [109, 17, 138, 255, 242]}, {"55062644": [146, 12]}, {"55062647": [110, 17, 138, 255, 239]}, {"55062656": [161, 11]}, {"55062659": [105, 161, 10]}, {"55062663": [108, 16]}, {"55062667": [4]}, {"55062672": [52, 9]}, {"55062675": [255, 161, 9]}, {"55062679": [105, 161, 9]}, {"55062683": [108, 3, 224]}, {"55062687": [8]}, {"55062692": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55062705": [1, 1, 1, 1, 1]}, {"55062711": [1, 1, 1, 1, 1]}, {"55062717": [1]}, {"55062719": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55062729": [51, 8, 33, 32, 15]}, {"55062735": [71, 21, 234]}, {"55062739": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062751": [164]}, {"55062753": [15, 122, 3, 20, 64]}, {"55062759": [5, 52, 2, 72, 48, 21, 226]}, {"55062767": [7]}, {"55062772": [36, 25]}, {"55062775": [3, 16]}, {"55062779": [4, 52, 2, 99, 17, 21, 226]}, {"55062787": [2]}, {"55062792": [36, 25]}, {"55062795": [3, 3, 224]}, {"55062799": [8]}, {"55062804": [141, 173, 138, 160, 52, 2, 128]}, {"55062812": [16, 77]}, {"55062815": [2]}, {"55062820": [16]}, {"55062823": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55062839": [1, 16, 64]}, {"55062843": [2]}, {"55062848": [16]}, {"55062851": [2, 52, 2]}, {"55062855": [1, 161, 226, 28, 191, 3, 224]}, {"55062863": [8]}, {"55062869": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062883": [164]}, {"55062885": [15, 122, 3, 20, 64]}, {"55062891": [5, 52, 2, 72, 48, 21, 226]}, {"55062899": [7]}, {"55062904": [36, 25]}, {"55062907": [3, 16]}, {"55062911": [4, 52, 2, 99, 17, 21, 226]}, {"55062919": [2]}, {"55062924": [36, 25]}, {"55062927": [3, 3, 224]}, {"55062931": [8]}, {"55062936": [162, 37]}, {"55062939": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55062951": [4, 142, 10]}, {"55062956": [17, 64]}, {"55062959": [11]}, {"55062965": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55062977": [24, 194, 2, 23]}, {"55062983": [3, 49, 89]}, {"55062987": [255, 129, 234]}, {"55062992": [3, 42, 200, 37, 8, 16, 12, 105, 161, 249]}, {"55063004": [3, 224]}, {"55063007": [8]}] \ No newline at end of file +[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 95]}, {"11325064": [12, 16, 11, 65, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 11, 156]}, {"11427312": [12, 16, 12, 69]}, {"11431496": [12, 16, 11, 73, 1, 15, 192, 33]}, {"11562028": [12, 16, 12, 102]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 12, 85]}, {"11882076": [12, 16, 12, 50]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 11, 123, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 11, 130, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 11, 137, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 11]}, {"12287068": [0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 47]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 9, 207]}, {"12427480": [12, 16, 10, 25]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 29]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 11, 81, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 59]}, {"12491480": [12, 16, 10, 68]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 22]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 11, 144]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 140, 73]}, {"14149503": [164]}, {"14149512": [2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149856": [87]}, {"14149859": [15]}, {"14357459": [118]}, {"14624335": [118]}, {"14872723": [52]}, {"15327704": [52, 9, 64, 0]}, {"15327728": [52]}, {"15327730": [91, 8]}, {"15327744": [52]}, {"15327746": [0, 10]}, {"15327757": [169]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 9, 236, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 9, 236, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057408": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058464": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 104, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 132, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 172, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 212, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 36, 252, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 36, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 64, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 92, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 37, 120, 83, 65, 56, 67]}, {"55058613": [235, 21, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 55, 68]}, {"55058629": [235, 22, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 57, 69]}, {"55058645": [235, 23, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 63, 71]}, {"55058677": [244, 25, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 37, 252, 128, 64, 36, 96, 83, 65, 10, 6]}, {"55058757": [185, 1, 3, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 28]}, {"55058773": [185, 1, 4, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 29]}, {"55058789": [185, 1, 5, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 30]}, {"55058805": [185, 1, 6, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 42]}, {"55058821": [185, 1, 7, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 10, 97]}, {"55058837": [185, 1, 10, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 98]}, {"55058853": [184, 2]}, {"55058856": [128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 99]}, {"55058869": [184, 2, 1, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 100]}, {"55058885": [184, 2, 2, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 101]}, {"55058901": [184, 2, 3, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 124]}, {"55058917": [184, 2, 4, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 125]}, {"55058933": [184, 2, 5, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 126]}, {"55058949": [184, 2, 6, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 127]}, {"55058965": [184, 2, 7, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 162]}, {"55058981": [184, 2, 8, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 11, 135]}, {"55058997": [184, 2, 9, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 136]}, {"55059013": [200, 4]}, {"55059016": [128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 137]}, {"55059029": [200, 4, 1, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 138]}, {"55059045": [200, 4, 2, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 139]}, {"55059061": [200, 4, 3, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 140]}, {"55059077": [200, 4, 4, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 142]}, {"55059093": [200, 4, 5, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 143]}, {"55059109": [200, 4, 6, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 163]}, {"55059125": [200, 4, 7, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 165]}, {"55059141": [200, 4, 8, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 28, 146]}, {"55059157": [200, 4, 9, 128, 64, 38, 56, 128, 64, 36, 96, 83, 65, 2, 147]}, {"55059173": [170, 3, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 148]}, {"55059189": [170, 4, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 149]}, {"55059205": [170, 5, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 166]}, {"55059221": [170, 6, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 169]}, {"55059237": [170, 7, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 155]}, {"55059253": [170, 8, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 159]}, {"55059269": [170, 11, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 160]}, {"55059285": [170, 12, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 65, 2, 161]}, {"55059301": [170, 13, 255, 128, 64, 38, 84, 128, 64, 36, 96, 83, 61, 67, 12]}, {"55059317": [248, 255, 255, 128, 64, 37, 236, 128, 64, 36, 96, 77, 131, 247, 85]}, {"55059333": [183, 255, 255, 128, 64, 37, 228, 128, 64, 36, 96, 77, 146, 219, 230]}, {"55059349": [216, 255, 255, 128, 64, 37, 228, 128, 64, 37, 172, 77, 147, 218, 230]}, {"55059365": [216, 255, 255, 128, 64, 37, 228, 128, 64, 37, 172, 77, 148, 217, 230]}, {"55059381": [216, 255, 255, 128, 64, 37, 228, 128, 64, 37, 172, 77, 142, 224, 50]}, {"55059397": [206, 255, 255, 128, 64, 37, 228, 128, 64, 37, 200, 77, 143, 224, 50]}, {"55059413": [206, 255, 255, 128, 64, 37, 228, 128, 64, 37, 200, 77, 144, 224, 50]}, {"55059429": [206, 255, 255, 128, 64, 37, 228, 128, 64, 37, 200, 77, 140, 238, 52]}, {"55059445": [187, 255, 255, 128, 64, 37, 228, 128, 64, 36, 96, 77, 141, 238, 52]}, {"55059461": [187, 255, 255, 128, 64, 37, 228, 128, 64, 36, 96, 79, 65, 19, 233]}, {"55059477": [189, 255, 255, 128, 64, 38, 124, 128, 64, 36, 96, 79, 65, 30, 228]}, {"55059493": [205, 255, 255, 128, 64, 38, 156, 128, 64, 37, 148, 79, 65, 31, 232]}, {"55059509": [205, 255, 255, 128, 64, 38, 188, 128, 64, 36, 96, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 37, 228, 128, 64, 38, 228, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 39, 44, 128, 64, 39, 16, 3, 224]}, {"55059555": [8, 52, 162]}, {"55059560": [144, 136]}, {"55059563": [125, 52, 1]}, {"55059567": [255, 17, 1]}, {"55059571": [2, 52, 2]}, {"55059575": [8, 52, 2]}, {"55059579": [9, 3, 224]}, {"55059583": [8]}, {"55059588": [144, 136]}, {"55059591": [163, 49, 8]}, {"55059595": [192, 17]}, {"55059599": [5, 52, 2]}, {"55059603": [84, 52, 1]}, {"55059607": [64, 17, 1]}, {"55059611": [2, 52, 2]}, {"55059615": [53, 52, 2]}, {"55059619": [54, 3, 224]}, {"55059623": [8]}, {"55059628": [144, 136]}, {"55059631": [163, 49, 8]}, {"55059635": [24, 17]}, {"55059639": [5, 52, 2]}, {"55059643": [50, 52, 1]}, {"55059647": [8, 17, 1]}, {"55059651": [2, 52, 2]}, {"55059655": [51, 52, 2]}, {"55059659": [52, 3, 224]}, {"55059663": [8]}, {"55059668": [144, 136]}, {"55059671": [163, 49, 8]}, {"55059675": [3, 17]}, {"55059679": [5, 52, 2]}, {"55059683": [4, 52, 1]}, {"55059687": [1, 17, 1]}, {"55059691": [2, 52, 2]}, {"55059695": [48, 52, 2]}, {"55059699": [49, 3, 224]}, {"55059703": [8]}, {"55059708": [144, 136]}, {"55059711": [162, 49, 8]}, {"55059715": [192, 17]}, {"55059719": [5, 52, 2]}, {"55059723": [5, 52, 1]}, {"55059727": [64, 17, 1]}, {"55059731": [2, 52, 2]}, {"55059735": [96, 52, 2]}, {"55059739": [123, 3, 224]}, {"55059743": [8]}, {"55059748": [144, 136]}, {"55059751": [162, 49, 8]}, {"55059755": [48, 17]}, {"55059759": [2, 52, 2]}, {"55059763": [69, 52, 2]}, {"55059767": [70, 3, 224]}, {"55059771": [8]}, {"55059776": [144, 136]}, {"55059779": [162, 49, 8]}, {"55059783": [6, 17]}, {"55059787": [2, 52, 2]}, {"55059791": [55, 52, 2]}, {"55059795": [56, 3, 224]}, {"55059799": [8]}, {"55059804": [144, 136]}, {"55059807": [161, 49, 8]}, {"55059811": [32, 17]}, {"55059815": [2, 52, 2]}, {"55059819": [121, 52, 2]}, {"55059823": [122, 3, 224]}, {"55059827": [8]}, {"55059832": [144, 136]}, {"55059835": [161, 49, 8]}, {"55059839": [4, 17]}, {"55059843": [2, 52, 2]}, {"55059847": [119, 52, 2]}, {"55059851": [120, 3, 224]}, {"55059855": [8]}, {"55059860": [144, 136]}, {"55059863": [50, 17]}, {"55059867": [2, 52, 2]}, {"55059871": [192, 52, 2]}, {"55059875": [193, 3, 224]}, {"55059879": [8]}, {"55059884": [144, 136]}, {"55059887": [163, 49, 8]}, {"55059891": [3, 17]}, {"55059895": [2, 52, 2]}, {"55059899": [77, 52, 162]}, {"55059904": [3, 224]}, {"55059907": [8]}, {"55059912": [144, 136]}, {"55059915": [163, 49, 8]}, {"55059919": [24, 17]}, {"55059923": [2, 52, 2]}, {"55059927": [77, 52, 162]}, {"55059932": [3, 224]}, {"55059935": [8]}, {"55059940": [3, 224]}, {"55059943": [8]}, {"55059948": [52, 8]}, {"55059951": [1, 160, 136]}, {"55059955": [62, 3, 224]}, {"55059959": [8]}, {"55059964": [36, 136]}, {"55059967": [134, 36, 9, 255, 255, 37, 41]}, {"55059975": [1, 52, 1]}, {"55059979": [3]}, {"55059981": [41, 8, 42, 20, 32]}, {"55059987": [7]}, {"55059992": [1, 9, 80, 33, 145, 75]}, {"55060000": [52, 1]}, {"55060003": [255, 21, 97, 255, 247]}, {"55060012": [161, 69]}, {"55060016": [3, 224]}, {"55060019": [8]}, {"55060024": [36, 136]}, {"55060027": [168, 1, 6, 64, 33, 145, 9]}, {"55060036": [1, 37, 72, 37, 161, 9]}, {"55060044": [3, 224]}, {"55060047": [8]}, {"55060052": [36, 136]}, {"55060055": [188, 1, 5, 64, 33, 129, 9]}, {"55060064": [5, 33]}, {"55060067": [2]}, {"55060072": [52, 9]}, {"55060076": [37, 41]}, {"55060079": [1, 161, 9]}, {"55060084": [3, 224]}, {"55060087": [8]}, {"55060092": [52, 8]}, {"55060095": [1, 160, 136]}, {"55060099": [61, 52, 8]}, {"55060103": [20, 160, 136]}, {"55060107": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060119": [8]}, {"55060124": [52, 8]}, {"55060127": [1, 160, 136]}, {"55060131": [50, 160, 136]}, {"55060135": [58, 52, 8]}, {"55060139": [48, 164, 136, 19, 244, 160, 136]}, {"55060147": [51, 3, 224]}, {"55060151": [8]}, {"55060156": [52, 8]}, {"55060159": [2, 160, 136]}, {"55060163": [50, 52, 8]}, {"55060167": [1, 160, 136]}, {"55060171": [58, 160, 136]}, {"55060175": [60, 52, 8]}, {"55060179": [96, 164, 136, 19, 244, 160, 136]}, {"55060187": [51, 3, 224]}, {"55060191": [8]}, {"55060196": [144, 136]}, {"55060199": [124, 52, 1]}, {"55060203": [255, 17, 1]}, {"55060207": [6, 52, 2]}, {"55060211": [107, 144, 136]}, {"55060215": [148, 45, 8]}, {"55060219": [6, 17]}, {"55060223": [2, 52, 2]}, {"55060227": [106, 52, 2]}, {"55060231": [3, 3, 224]}, {"55060235": [8]}, {"55060240": [144, 136]}, {"55060243": [123, 52, 1]}, {"55060247": [255, 17, 1]}, {"55060251": [2, 52, 162]}, {"55060256": [52, 2]}, {"55060259": [12, 3, 224]}, {"55060263": [8]}, {"55060268": [52, 8]}, {"55060271": [7, 160, 136]}, {"55060275": [123, 3, 224]}, {"55060279": [8]}, {"55060284": [48, 132]}, {"55060287": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060299": [140, 16, 129]}, {"55060303": [22, 145, 2]}, {"55060307": [117, 52, 1]}, {"55060311": [141, 16, 129]}, {"55060315": [19, 145, 2]}, {"55060319": [117, 16, 128]}, {"55060323": [17, 145, 2]}, {"55060327": [116, 52, 1]}, {"55060331": [138, 16, 129]}, {"55060335": [14, 145, 2]}, {"55060339": [116, 52, 1]}, {"55060343": [139, 16, 129]}, {"55060347": [11, 145, 2]}, {"55060351": [116, 52, 1]}, {"55060355": [88, 16, 129]}, {"55060359": [8, 52, 2]}, {"55060364": [52, 1]}, {"55060367": [120, 16, 129]}, {"55060371": [5, 52, 2]}, {"55060376": [52, 1]}, {"55060379": [121, 16, 129]}, {"55060383": [2, 52, 2]}, {"55060388": [52, 2]}, {"55060391": [255, 3, 224]}, {"55060395": [8]}, {"55060400": [39, 189, 255, 224, 175, 191]}, {"55060407": [16, 175, 176]}, {"55060411": [20, 12, 16, 10, 166]}, {"55060420": [4, 65]}, {"55060423": [2]}, {"55060428": [52, 2]}, {"55060431": [91]}, {"55060433": [64, 32, 33, 12, 16, 10, 245]}, {"55060444": [16, 96]}, {"55060447": [15, 175, 163]}, {"55060451": [28, 60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060463": [6, 144, 102]}, {"55060467": [7, 140, 105]}, {"55060471": [8, 1, 32, 248, 9]}, {"55060480": [143, 163]}, {"55060483": [28, 144, 101]}, {"55060487": [1, 12, 1, 191, 115, 2, 32, 32, 33, 143, 163]}, {"55060499": [28, 144, 101]}, {"55060503": [3, 16]}, {"55060507": [10, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060519": [6]}, {"55060521": [74]}, {"55060523": [24]}, {"55060526": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060536": [12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060547": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060558": [48, 33, 143, 191]}, {"55060563": [16, 143, 176]}, {"55060567": [20, 39, 189]}, {"55060571": [32, 3, 224]}, {"55060575": [8]}, {"55060580": [143, 166]}, {"55060583": [48, 132, 197]}, {"55060587": [4, 8, 16, 10, 33]}, {"55060596": [143, 185]}, {"55060599": [44, 135, 37]}, {"55060603": [4, 8, 16, 10, 33]}, {"55060612": [60, 10, 128, 64, 37, 74, 32]}, {"55060620": [141, 75]}, {"55060623": [12, 17, 96]}, {"55060627": [2]}, {"55060632": [149, 69]}, {"55060635": [4, 60, 10, 128, 64, 37, 74, 32, 16, 161, 64]}, {"55060648": [60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060660": [3, 224]}, {"55060663": [8]}, {"55060668": [60, 8, 128, 64, 37, 8, 32]}, {"55060676": [141, 9]}, {"55060679": [12, 17, 32]}, {"55060683": [2]}, {"55060688": [129, 3]}, {"55060691": [2]}, {"55060693": [3, 15, 195]}, {"55060697": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55060711": [8]}, {"55060716": [144, 69]}, {"55060719": [3, 60, 8, 128, 64, 37, 8, 32]}, {"55060728": [141, 9]}, {"55060731": [12, 17, 32]}, {"55060735": [2]}, {"55060740": [145, 5]}, {"55060743": [3, 3, 224]}, {"55060747": [8]}, {"55060752": [143, 162]}, {"55060755": [36, 144, 69]}, {"55060760": [60, 8, 128, 64, 37, 8, 32]}, {"55060768": [141, 9]}, {"55060771": [12, 17, 32]}, {"55060775": [19]}, {"55060780": [145, 5]}, {"55060783": [1, 175, 164]}, {"55060788": [175, 165]}, {"55060791": [4, 175, 166]}, {"55060795": [8, 39, 189, 255, 232, 175, 191]}, {"55060803": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55060815": [6, 145, 6]}, {"55060819": [7, 141, 9]}, {"55060823": [8, 1, 32, 248, 9]}, {"55060832": [143, 191]}, {"55060835": [16, 39, 189]}, {"55060839": [24, 143, 164]}, {"55060844": [143, 165]}, {"55060847": [4, 143, 166]}, {"55060851": [8, 3, 224]}, {"55060855": [8]}, {"55060860": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55060871": [16, 175, 163]}, {"55060875": [20, 175, 191]}, {"55060879": [24, 12, 16, 10, 108]}, {"55060888": [143, 162]}, {"55060891": [16, 143, 163]}, {"55060895": [20, 143, 191]}, {"55060899": [24, 39, 189]}, {"55060903": [32, 3, 224]}, {"55060907": [8]}, {"55060912": [39, 189, 255, 232, 175, 191]}, {"55060919": [16, 60, 8, 128, 64, 37, 8, 32]}, {"55060928": [173]}, {"55060932": [173]}, {"55060935": [4, 173]}, {"55060939": [8, 173]}, {"55060943": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55060959": [42]}, {"55060965": [9, 15, 195, 1, 33, 32, 38]}, {"55060973": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 166]}, {"55060988": [4, 64]}, {"55060991": [34]}, {"55060996": [52, 68]}, {"55061000": [12, 16, 10, 245]}, {"55061008": [16, 96]}, {"55061011": [12]}, {"55061016": [60, 8, 128, 64, 37, 8, 32]}, {"55061024": [140, 105]}, {"55061028": [173, 9]}, {"55061032": [140, 105]}, {"55061035": [4, 173, 9]}, {"55061039": [4, 140, 105]}, {"55061043": [8, 173, 9]}, {"55061047": [8, 52, 9]}, {"55061051": [1, 173, 9]}, {"55061055": [12, 144, 98]}, {"55061060": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061076": [52, 1]}, {"55061079": [10, 21, 65]}, {"55061083": [6]}, {"55061088": [149, 42]}, {"55061091": [28, 49, 74, 240, 31]}, {"55061097": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061107": [28, 129, 9, 4, 36, 5, 33]}, {"55061115": [2]}, {"55061121": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061131": [16, 39, 189]}, {"55061135": [24, 3, 224]}, {"55061139": [8]}, {"55061144": [39, 189, 255, 232, 175, 191]}, {"55061151": [16, 12, 16, 10, 180]}, {"55061160": [36, 1, 255, 255, 16, 65]}, {"55061167": [4]}, {"55061172": [52, 68]}, {"55061176": [12, 16, 10, 232]}, {"55061184": [143, 191]}, {"55061187": [16, 39, 189]}, {"55061191": [24, 3, 224]}, {"55061195": [8]}, {"55061200": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061211": [164, 52, 8]}, {"55061216": [52, 137]}, {"55061220": [148, 170]}, {"55061224": [52, 1, 1, 156, 21, 65]}, {"55061231": [8]}, {"55061236": [52, 8]}, {"55061239": [3, 148, 171]}, {"55061243": [28, 49, 105]}, {"55061247": [255, 49, 98, 31]}, {"55061253": [2, 18, 2, 16]}, {"55061259": [31]}, {"55061264": [52, 1]}, {"55061267": [10, 21, 65]}, {"55061271": [14]}, {"55061276": [148, 171]}, {"55061279": [28, 52, 1]}, {"55061283": [16, 20, 65]}, {"55061287": [8]}, {"55061292": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061303": [4]}, {"55061308": [36, 2, 255, 255, 16]}, {"55061315": [21]}, {"55061320": [52, 8]}, {"55061323": [1, 49, 105]}, {"55061327": [31, 52, 1]}, {"55061331": [21, 21, 65]}, {"55061335": [12]}, {"55061340": [52, 1]}, {"55061343": [62, 16, 129]}, {"55061347": [7]}, {"55061352": [52, 1]}, {"55061355": [66, 16, 129]}, {"55061359": [4]}, {"55061364": [36, 2, 255, 255, 16]}, {"55061371": [7]}, {"55061376": [52, 8]}, {"55061379": [2, 144, 169, 1, 65]}, {"55061385": [2, 18]}, {"55061389": [72, 16, 37]}, {"55061393": [2, 18]}, {"55061397": [73, 16, 37, 3, 224]}, {"55061403": [8]}, {"55061408": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061423": [4, 141, 9]}, {"55061428": [17, 32]}, {"55061431": [5]}, {"55061437": [9, 82, 2, 21, 68, 255, 250]}, {"55061448": [49, 34]}, {"55061451": [255, 3, 224]}, {"55061455": [8]}, {"55061460": [39, 189, 255, 224, 175, 176]}, {"55061467": [16, 175, 177]}, {"55061471": [20, 175, 191]}, {"55061475": [24, 52, 130]}, {"55061480": [52, 80]}, {"55061484": [38, 8, 255, 128, 5]}, {"55061491": [18]}, {"55061496": [60, 17, 128, 64, 38, 49, 32, 32, 52, 9]}, {"55061507": [16, 1, 9]}, {"55061511": [24]}, {"55061514": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061532": [142, 40]}, {"55061535": [12, 1]}, {"55061538": [248, 9]}, {"55061544": [20, 80, 255, 239]}, {"55061552": [54, 35]}, {"55061556": [16]}, {"55061559": [2]}, {"55061564": [52, 3]}, {"55061568": [143, 176]}, {"55061571": [16, 143, 177]}, {"55061575": [20, 143, 191]}, {"55061579": [24, 39, 189]}, {"55061583": [32, 3, 224]}, {"55061587": [8]}, {"55061592": [140, 136, 29, 44, 52, 9]}, {"55061599": [1]}, {"55061601": [9, 78]}, {"55061604": [1, 9, 16, 36, 16, 64]}, {"55061611": [36]}, {"55061616": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55061631": [164, 52, 1]}, {"55061635": [61, 17, 129]}, {"55061639": [10]}, {"55061645": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55061655": [25]}, {"55061660": [52, 13]}, {"55061663": [1, 161, 141, 29, 40, 37, 74]}, {"55061671": [3, 16]}, {"55061675": [9]}, {"55061680": [52, 12]}, {"55061683": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55061699": [14]}, {"55061704": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 2, 1, 10, 64, 33, 129, 8]}, {"55061740": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061752": [52, 2]}, {"55061756": [3, 224]}, {"55061759": [8]}, {"55061764": [60, 8, 128, 64, 37, 8, 28]}, {"55061772": [129, 8]}, {"55061776": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061788": [3, 224]}, {"55061791": [8]}, {"55061796": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55061808": [60, 9, 128, 64, 37, 41, 32, 16, 161, 40]}, {"55061820": [3, 224]}, {"55061823": [8]}, {"55061828": [175, 164]}, {"55061831": [104, 175, 165]}, {"55061835": [108, 175, 166]}, {"55061839": [112, 175, 167]}, {"55061843": [116, 39, 189, 255, 232, 175, 163]}, {"55061851": [16, 175, 191]}, {"55061855": [20, 60, 8, 128, 64, 37, 8, 32, 16, 129, 8]}, {"55061868": [17]}, {"55061871": [14]}, {"55061876": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55061887": [1, 165, 42]}, {"55061892": [60, 9, 128, 65, 52, 10]}, {"55061899": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 108]}, {"55061928": [143, 163]}, {"55061931": [16, 143, 191]}, {"55061935": [20, 39, 189]}, {"55061939": [24, 143, 164]}, {"55061943": [104, 143, 165]}, {"55061947": [108, 143, 166]}, {"55061951": [112, 143, 167]}, {"55061955": [116, 132, 110, 19, 196, 3, 224]}, {"55061963": [8]}, {"55061968": [147, 25]}, {"55061971": [116, 52, 1]}, {"55061975": [255, 23, 33]}, {"55061979": [2]}, {"55061984": [52, 25]}, {"55061987": [44, 3, 224]}, {"55061991": [8, 167, 185]}, {"55061995": [154, 147, 44]}, {"55061999": [116, 52, 1]}, {"55062003": [255, 21, 129]}, {"55062007": [2]}, {"55062012": [52, 12]}, {"55062015": [44, 3, 224]}, {"55062019": [8]}, {"55062024": [145, 174]}, {"55062027": [116, 52, 1]}, {"55062031": [255, 21, 193]}, {"55062035": [2]}, {"55062040": [52, 14]}, {"55062043": [44, 3, 224]}, {"55062047": [8, 167, 174]}, {"55062051": [154, 145, 207]}, {"55062055": [116, 52, 1]}, {"55062059": [255, 21, 225]}, {"55062063": [2]}, {"55062068": [52, 15]}, {"55062071": [44, 3, 224]}, {"55062075": [8, 167, 175]}, {"55062079": [154, 60, 8, 128, 64, 37, 8, 32, 20, 142, 9]}, {"55062091": [104, 173, 9]}, {"55062096": [142, 9]}, {"55062099": [108, 173, 9]}, {"55062103": [4, 150, 9]}, {"55062107": [112, 165, 9]}, {"55062111": [8, 150, 9]}, {"55062115": [156, 165, 9]}, {"55062119": [10, 3, 224]}, {"55062123": [8, 142, 14]}, {"55062127": [4, 39, 189, 255, 224, 175, 176]}, {"55062135": [16, 175, 177]}, {"55062139": [20, 175, 191]}, {"55062143": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 20, 142, 8]}, {"55062163": [4, 17]}, {"55062167": [5]}, {"55062172": [12, 16, 11, 198]}, {"55062180": [16]}, {"55062183": [3]}, {"55062188": [12, 16, 11, 217]}, {"55062196": [12, 16, 11, 185, 52, 4]}, {"55062204": [12, 16, 11, 185, 52, 4]}, {"55062211": [1, 12, 16, 11, 185, 52, 4]}, {"55062219": [2, 143, 176]}, {"55062223": [16, 143, 177]}, {"55062227": [20, 143, 191]}, {"55062231": [24, 39, 189]}, {"55062235": [32, 3, 224]}, {"55062239": [8]}, {"55062244": [2, 4, 64, 33, 145, 9]}, {"55062251": [108, 52, 1]}, {"55062255": [255, 17, 33]}, {"55062259": [7]}, {"55062264": [2, 9, 72, 33, 145, 41]}, {"55062271": [116, 52, 1]}, {"55062275": [44, 17, 33]}, {"55062279": [2]}, {"55062284": [161, 9]}, {"55062287": [105, 3, 224]}, {"55062291": [8]}, {"55062296": [39, 189, 255, 232, 175, 191]}, {"55062303": [16, 142, 40]}, {"55062308": [174, 8]}, {"55062311": [64, 142, 40]}, {"55062315": [4, 174, 8]}, {"55062319": [68, 150, 40]}, {"55062323": [8, 166, 8]}, {"55062327": [72, 162]}, {"55062330": [15, 51, 146, 8]}, {"55062335": [74, 52, 1]}, {"55062339": [255, 21, 1]}, {"55062343": [3]}, {"55062348": [12, 16, 11, 231]}, {"55062356": [143, 191]}, {"55062359": [16, 39, 189]}, {"55062363": [24, 3, 224]}, {"55062367": [8]}, {"55062372": [142, 8]}, {"55062375": [64, 174, 8]}, {"55062379": [104, 142, 8]}, {"55062383": [68, 174, 8]}, {"55062387": [108, 150, 8]}, {"55062391": [72, 166, 8]}, {"55062395": [112, 146, 8]}, {"55062399": [104, 52, 1]}, {"55062403": [255, 21, 1]}, {"55062407": [3]}, {"55062412": [52, 8]}, {"55062415": [1, 162, 8, 15, 51, 3, 224]}, {"55062423": [8]}, {"55062428": [39, 189, 255, 232, 175, 191]}, {"55062435": [16, 150, 8]}, {"55062439": [156, 49, 8]}, {"55062443": [64, 17]}, {"55062447": [5]}, {"55062452": [150, 8]}, {"55062455": [112, 49, 8, 255, 15, 53, 8]}, {"55062463": [48, 166, 8]}, {"55062467": [112, 146, 40]}, {"55062471": [1, 162, 8]}, {"55062475": [105, 150, 40]}, {"55062479": [2, 166, 8]}, {"55062483": [106, 142, 40]}, {"55062487": [4, 174, 8]}, {"55062491": [108, 12, 16, 12, 1, 52, 4]}, {"55062500": [12, 16, 12, 1, 52, 4]}, {"55062507": [1, 12, 16, 12, 1, 52, 4]}, {"55062515": [2, 143, 191]}, {"55062519": [16, 39, 189]}, {"55062523": [24, 3, 224]}, {"55062527": [8]}, {"55062532": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 48, 176, 145, 10]}, {"55062547": [108, 52, 1]}, {"55062551": [255, 17, 65]}, {"55062555": [5]}, {"55062560": [1, 42, 72, 33, 145, 41]}, {"55062568": [21, 32]}, {"55062571": [28]}, {"55062576": [60, 9, 128, 64, 37, 41, 48, 163, 37, 41]}, {"55062587": [1, 145, 42]}, {"55062592": [17, 64]}, {"55062595": [19]}, {"55062600": [2, 10, 88, 33, 145, 107]}, {"55062607": [116, 52, 1]}, {"55062611": [255, 17, 97, 255, 248]}, {"55062620": [146, 12]}, {"55062623": [108, 17, 138, 255, 245]}, {"55062632": [146, 12]}, {"55062635": [109, 17, 138, 255, 242]}, {"55062644": [146, 12]}, {"55062647": [110, 17, 138, 255, 239]}, {"55062656": [161, 11]}, {"55062659": [105, 161, 10]}, {"55062663": [108, 16]}, {"55062667": [4]}, {"55062672": [52, 9]}, {"55062675": [255, 161, 9]}, {"55062679": [105, 161, 9]}, {"55062683": [108, 3, 224]}, {"55062687": [8]}, {"55062692": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55062705": [1, 1, 1, 1, 1]}, {"55062711": [1, 1, 1, 1, 1]}, {"55062717": [1]}, {"55062719": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55062729": [51, 8, 33, 32, 15]}, {"55062735": [71, 21, 234]}, {"55062739": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062751": [164]}, {"55062753": [15, 122, 3, 20, 64]}, {"55062759": [5, 52, 2, 72, 48, 21, 226]}, {"55062767": [7]}, {"55062772": [36, 25]}, {"55062775": [3, 16]}, {"55062779": [4, 52, 2, 99, 17, 21, 226]}, {"55062787": [2]}, {"55062792": [36, 25]}, {"55062795": [3, 3, 224]}, {"55062799": [8]}, {"55062804": [141, 173, 138, 160, 52, 2, 128]}, {"55062812": [16, 77]}, {"55062815": [2]}, {"55062820": [16]}, {"55062823": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55062839": [1, 16, 64]}, {"55062843": [2]}, {"55062848": [16]}, {"55062851": [2, 52, 2]}, {"55062855": [1, 161, 226, 28, 191, 3, 224]}, {"55062863": [8]}, {"55062869": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55062883": [164]}, {"55062885": [15, 122, 3, 20, 64]}, {"55062891": [5, 52, 2, 72, 48, 21, 226]}, {"55062899": [7]}, {"55062904": [36, 25]}, {"55062907": [3, 16]}, {"55062911": [4, 52, 2, 99, 17, 21, 226]}, {"55062919": [2]}, {"55062924": [36, 25]}, {"55062927": [3, 3, 224]}, {"55062931": [8]}, {"55062936": [162, 37]}, {"55062939": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55062951": [4, 142, 10]}, {"55062956": [17, 64]}, {"55062959": [11]}, {"55062965": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55062977": [24, 194, 2, 23]}, {"55062983": [3, 49, 89]}, {"55062987": [255, 129, 234]}, {"55062992": [3, 42, 200, 37, 8, 16, 12, 105, 161, 249]}, {"55063004": [3, 224]}, {"55063007": [8]}] \ No newline at end of file diff --git a/version.py b/version.py index 9c9209347..373d4146b 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.15 f.LUM' +__version__ = '2.13.16 f.LUM' From 2da33ca10efda6bd38a59b6c0696db3995135fa2 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Sun, 22 Jul 2018 04:46:18 -0400 Subject: [PATCH 193/755] Format speedrun learning song rom data --- Gui.py | 2 +- Rom.py | 260 +++++++++++++++++++++++++++++++++-------------------- version.py | 2 +- 3 files changed, 165 insertions(+), 99 deletions(-) diff --git a/Gui.py b/Gui.py index 97c0f099a..226196c96 100644 --- a/Gui.py +++ b/Gui.py @@ -94,7 +94,7 @@ def guiMain(settings=None): notebook.add(frames['rules_tab'], text='Main Rules') notebook.add(frames['logic_tab'], text='Detailed Logic') notebook.add(frames['other_tab'], text='Other') - notebook.add(frames['aesthetic_tab'], text='Aesthetics') + notebook.add(frames['aesthetic_tab'], text='Cosmetics') # Shared Controls diff --git a/Rom.py b/Rom.py index b6bcf0eb6..8cc390c92 100644 --- a/Rom.py +++ b/Rom.py @@ -65,6 +65,8 @@ def get_navi_color_options(): class LocalRom(object): def __init__(self, settings, patch=True): + self.last_address = None + file = settings.rom decomp_file = os.path.join(default_output_path(settings.output_dir), 'ZOOTDEC.z64') @@ -117,21 +119,50 @@ def read_int32(self, address): return bytes_as_int32(self.read_bytes(address, 4)) def write_byte(self, address, value): + if address == None: + address = self.last_address self.buffer[address] = value - - def write_bytes(self, startaddress, values): - for i, value in enumerate(values): - self.write_byte(startaddress + i, value) + self.last_address = address + 1 def write_int16(self, address, value): + if address == None: + address = self.last_address self.write_bytes(address, int16_as_bytes(value)) def write_int24(self, address, value): + if address == None: + address = self.last_address self.write_bytes(address, int24_as_bytes(value)) def write_int32(self, address, value): + if address == None: + address = self.last_address self.write_bytes(address, int32_as_bytes(value)) + def write_bytes(self, startaddress, values): + if startaddress == None: + startaddress = self.last_address + for i, value in enumerate(values): + self.write_byte(startaddress + i, value) + + def write_int16s(self, startaddress, values): + if startaddress == None: + startaddress = self.last_address + for i, value in enumerate(values): + self.write_int16(startaddress + (i * 2), value) + + def write_int24s(self, startaddress, values): + if startaddress == None: + startaddress = self.last_address + for i, value in enumerate(values): + self.write_int24(startaddress + (i * 3), value) + + def write_int32s(self, startaddress, values): + if startaddress == None: + startaddress = self.last_address + for i, value in enumerate(values): + self.write_int32(startaddress + (i * 4), value) + def write_to_file(self, file): with open(file, 'wb') as outfile: outfile.write(self.buffer) @@ -297,121 +328,156 @@ def patch_rom(world, rom): rom.write_bytes(0x1FC0CF8, Block_code) # Speed learning Zelda's Lullaby - Block_code = [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x03, 0xE8, 0x00, 0x00, 0x00, 0x01, 0x00, 0x73, 0x00, 0x3B, - 0x00, 0x3C, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x0C, - 0x00, 0x17, 0x00, 0x00, 0x00, 0x10, 0x00, 0x02, 0x08, 0x8B, 0xFF, 0xFF, - 0x00, 0xD4, 0x00, 0x11, 0x00, 0x20, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF] - rom.write_bytes(0x2E8E900, Block_code) + rom.write_int32s(0x02E8E90C, [0x000003E8, 0x00000001]) # Terminator Execution + rom.write_int16s(None, [0x0073, 0x003B, 0x003C, 0x003C]) # ID, start, end, end + + rom.write_int32s(0x02E8E91C, [0x00000013, 0x0000000C]) # Textbox, Count + rom.write_int16s(None, [0x0017, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 + rom.write_int16s(None, [0x00D4, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 # Speed learning Sun's Song - rom.write_bytes(0x332A4A6, [0x00, 0x3C]) - Block_code = [0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x08, 0x00, 0x18, 0x00, 0x00, - 0x00, 0x10, 0x00, 0x02, 0x08, 0x8B, 0xFF, 0xFF, 0x00, 0xD3, 0x00, 0x11, - 0x00, 0x20, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF] - rom.write_bytes(0x332A868, Block_code) + rom.write_int32(0x0332A4A4, 0x0000003C) # Header: frame_count + + rom.write_int32s(0x0332A868, [0x00000013, 0x00000008]) # Textbox, Count + rom.write_int16s(None, [0x0018, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 + rom.write_int16s(None, [0x00D3, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 # Speed learning Saria's Song - rom.write_bytes(0x20B1736, [0x00, 0x3C]) - Block_code = [0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x15, 0x00, 0x00, - 0x00, 0x10, 0x00, 0x02, 0x08, 0x8B, 0xFF, 0xFF, 0x00, 0xD1, 0x00, 0x11, - 0x00, 0x20, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF] - rom.write_bytes(0x20B1DA8, Block_code) - rom.write_bytes(0x20B19C8, [0x00, 0x11, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00]) - Block_code = [0x00, 0x3E, 0x00, 0x11, 0x00, 0x20, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xD4, 0xFF, 0xFF, 0xF7, 0x31, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xD4] - rom.write_bytes(0x20B19F8, Block_code) + rom.write_int32(0x020B1734, 0x0000003C) # Header: frame_count + + rom.write_int32s(0x20B1DA8, [0x00000013, 0x0000000C]) # Textbox, Count + rom.write_int16s(None, [0x0015, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 + rom.write_int16s(None, [0x00D1, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + + rom.write_int32s(0x020B19C0, [0x0000000A, 0x00000006]) # Link, Count + rom.write_int16s(0x020B19C8, [0x0011, 0x0000, 0x0010, 0x0000]) #action, start, end, ???? + rom.write_int16s(0x020B19F8, [0x003E, 0x0011, 0x0020, 0x0000]) #action, start, end, ???? + rom.write_int32s(None, [0x80000000, # ??? + 0x00000000, 0x000001D4, 0xFFFFF731, # start_XYZ + 0x00000000, 0x000001D4, 0xFFFFF712]) # end_XYZ # Speed learning Epona's Song - rom.write_bytes(0x29BEF68, [0x00, 0x5E, 0x00, 0x0A, 0x00, 0x0B, 0x00, 0x0B]) - Block_code = [0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0xD2, 0x00, 0x00, - 0x00, 0x09, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x0A, - 0x00, 0x3C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF] - rom.write_bytes(0x29BECB0, Block_code) + rom.write_int32s(0x029BEF60, [0x000003E8, 0x00000001]) # Terminator Execution + rom.write_int16s(None, [0x005E, 0x000A, 0x000B, 0x000B]) # ID, start, end, end + + rom.write_int32s(0x029BECB0, [0x00000013, 0x00000002]) # Textbox, Count + rom.write_int16s(None, [0x00D2, 0x0000, 0x0009, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + rom.write_int16s(None, [0xFFFF, 0x000A, 0x003C, 0xFFFF, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 # Speed learning Song of Time - Block_code = [0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x19, 0x00, 0x00, - 0x00, 0x10, 0x00, 0x02, 0x08, 0x8B, 0xFF, 0xFF, 0x00, 0xD5, 0x00, 0x11, - 0x00, 0x20, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF] - rom.write_bytes(0x252FC80, Block_code) - rom.write_bytes(0x252FBA0, [0x00, 0x35, 0x00, 0x3B, 0x00, 0x3C, 0x00, 0x3C]) - rom.write_bytes(0x1FC3B84, [0xFF, 0xFF, 0xFF, 0xFF]) + rom.write_int32s(0x0252FB98, [0x000003E8, 0x00000001]) # Terminator Execution + rom.write_int16s(None, [0x0035, 0x003B, 0x003C, 0x003C]) # ID, start, end, end + + rom.write_int32s(0x0252FC80, [0x00000013, 0x0000000C]) # Textbox, Count + rom.write_int16s(None, [0x0019, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 + rom.write_int16s(None, [0x00D5, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + + rom.write_int32(0x01FC3B84, 0xFFFFFFFF) # Other Header?: frame_count # Speed learning Song of Storms - Block_code = [0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x02, - 0x00, 0xD6, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0xBE, 0x00, 0xC8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF] - rom.write_bytes(0x3041084, Block_code) + rom.write_int32(0x03041084, 0x0000000A) # Header: frame_count + + rom.write_int32s(0x03041088, [0x00000013, 0x00000002]) # Textbox, Count + rom.write_int16s(None, [0x00D6, 0x0000, 0x0009, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + rom.write_int16s(None, [0xFFFF, 0x00BE, 0x00C8, 0xFFFF, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 # Speed learning Minuet of Forest - rom.write_bytes(0x20AFF86, [0x00, 0x3C]) - Block_code = [0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x0F, 0x00, 0x00, - 0x00, 0x10, 0x00, 0x02, 0x08, 0x8B, 0xFF, 0xFF, 0x00, 0x73, 0x00, 0x11, - 0x00, 0x20, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF] - rom.write_bytes(0x20B0800, Block_code) - rom.write_bytes(0x20AFF90, [0x00, 0x11, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00]) - rom.write_bytes(0x20AFFC1, [0x00, 0x3E, 0x00, 0x11, 0x00, 0x20, 0x00, 0x00]) - rom.write_bytes(0x20B0492, [0x00, 0x21, 0x00, 0x22]) - rom.write_bytes(0x20B04CA, [0x00, 0x00, 0x00, 0x00]) + rom.write_int32(0x020AFF84, 0x0000003C) # Header: frame_count + + rom.write_int32s(0x020B0800, [0x00000013, 0x0000000A]) # Textbox, Count + rom.write_int16s(None, [0x000F, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 + rom.write_int16s(None, [0x0073, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + + rom.write_int32s(0x020AFF88, [0x0000000A, 0x00000005]) # Link, Count + rom.write_int16s(0x020AFF90, [0x0011, 0x0000, 0x0010, 0x0000]) #action, start, end, ???? + rom.write_int16s(0x020AFFC1, [0x003E, 0x0011, 0x0020, 0x0000]) #action, start, end, ???? + + rom.write_int32s(0x020B0488, [0x00000056, 0x00000001]) # Music Change, Count + rom.write_int16s(None, [0x003F, 0x0021, 0x0022, 0x0000]) #action, start, end, ???? + + rom.write_int32s(0x020B04C0, [0x0000007C, 0x00000001]) # Music Fade Out, Count + rom.write_int16s(None, [0x0004, 0x0000, 0x0000, 0x0000]) #action, start, end, ???? # Speed learning Bolero of Fire - rom.write_bytes(0x224B5D6, [0x00, 0x3C]) - Block_code = [0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x10, 0x00, 0x00, - 0x00, 0x10, 0x00, 0x02, 0x08, 0x8B, 0xFF, 0xFF, 0x00, 0x74, 0x00, 0x11, - 0x00, 0x20, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF] - rom.write_bytes(0x224D7E8, Block_code) - rom.write_bytes(0x224B5E0, [0x00, 0x11, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00]) - rom.write_bytes(0x224B611, [0x00, 0x3E, 0x00, 0x11, 0x00, 0x20, 0x00, 0x00]) - rom.write_bytes(0x224B7F8, [0x00, 0x00]) - rom.write_bytes(0x224B828, [0x00, 0x00]) - rom.write_bytes(0x224B858, [0x00, 0x00]) - rom.write_bytes(0x224B888, [0x00, 0x00]) + rom.write_int32(0x0224B5D4, 0x0000003C) # Header: frame_count + + rom.write_int32s(0x0224D7E8, [0x00000013, 0x0000000A]) # Textbox, Count + rom.write_int16s(None, [0x0010, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 + rom.write_int16s(None, [0x0074, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + + rom.write_int32s(0x0224B5D8, [0x0000000A, 0x0000000B]) # Link, Count + rom.write_int16s(0x0224B5E0, [0x0011, 0x0000, 0x0010, 0x0000]) #action, start, end, ???? + rom.write_int16s(0x0224B610, [0x003E, 0x0011, 0x0020, 0x0000]) #action, start, end, ???? + + rom.write_int32s(0x0224B7F0, [0x0000002F, 0x0000000E]) # Sheik, Count + rom.write_int16s(0x0224B7F8, [0x0000]) #action + rom.write_int16s(0x0224B828, [0x0000]) #action + rom.write_int16s(0x0224B858, [0x0000]) #action + rom.write_int16s(0x0224B888, [0x0000]) #action # Speed learning Serenade of Water - rom.write_bytes(0x2BEB256, [0x00, 0x3C]) - Block_code = [0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x10, 0x00, 0x11, 0x00, 0x00, - 0x00, 0x10, 0x00, 0x02, 0x08, 0x8B, 0xFF, 0xFF, 0x00, 0x75, 0x00, 0x11, - 0x00, 0x20, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF] - rom.write_bytes(0x2BEC880, Block_code) - rom.write_bytes(0x2BEB260, [0x00, 0x11, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00]) - rom.write_bytes(0x2BEB290, [0x00, 0x3E, 0x00, 0x11, 0x00, 0x20, 0x00, 0x00]) - rom.write_bytes(0x2BEB538, [0x00, 0x00]) - rom.write_bytes(0x2BEB548, [0x80, 0x00]) - rom.write_bytes(0x2BEB554, [0x80, 0x00]) - rom.write_bytes(0x2BEC852, [0x00, 0x21, 0x00, 0x22]) + rom.write_int32(0x02BEB254, 0x0000003C) # Header: frame_count + + rom.write_int32s(0x02BEC880, [0x00000013, 0x00000010]) # Textbox, Count + rom.write_int16s(None, [0x0011, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 + rom.write_int16s(None, [0x0075, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + + rom.write_int32s(0x02BEB258, [0x0000000A, 0x0000000F]) # Link, Count + rom.write_int16s(0x02BEB260, [0x0011, 0x0000, 0x0010, 0x0000]) #action, start, end, ???? + rom.write_int16s(0x02BEB290, [0x003E, 0x0011, 0x0020, 0x0000]) #action, start, end, ???? + + rom.write_int32s(0x02BEB530, [0x0000002F, 0x00000006]) # Sheik, Count + rom.write_int16s(0x02BEB538, [0x0000, 0x0000, 0x018A, 0x0000]) #action, start, end, ???? + rom.write_int32s(None, [0x1BBB0000, # ??? + 0xFFFFFB10, 0x8000011A, 0x00000330, # start_XYZ + 0xFFFFFB10, 0x8000011A, 0x00000330]) # end_XYZ + + rom.write_int32s(0x02BEC848, [0x00000056, 0x00000001]) # Music Change, Count + rom.write_int16s(None, [0x0059, 0x0021, 0x0022, 0x0000]) #action, start, end, ???? # Speed learning Nocturne of Shadow - rom.write_bytes(0x1FFE460, [0x00, 0x2F, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) - rom.write_bytes(0x1FFFDF6, [0x00, 0x3C]) - Block_code = [0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x13, 0x00, 0x00, - 0x00, 0x10, 0x00, 0x02, 0x08, 0x8B, 0xFF, 0xFF, 0x00, 0x77, 0x00, 0x11, - 0x00, 0x20, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF] - rom.write_bytes(0x2000FD8, Block_code) - rom.write_bytes(0x2000130, [0x00, 0x32, 0x00, 0x3A, 0x00, 0x3B, 0x00, 0x3B]) + rom.write_int32s(0x01FFE458, [0x000003E8, 0x00000001]) # Other Scene? Terminator Execution + rom.write_int16s(None, [0x002F, 0x0001, 0x0002, 0x0002]) # ID, start, end, end + + rom.write_int32(0x01FFFDF4, 0x0000003C) # Header: frame_count + + rom.write_int32s(0x02000FD8, [0x00000013, 0x0000000E]) # Textbox, Count + rom.write_int16s(None, [0x0013, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 + rom.write_int16s(None, [0x0077, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + + rom.write_int32s(0x02000128, [0x000003E8, 0x00000001]) # Terminator Execution + rom.write_int16s(None, [0x0032, 0x003A, 0x003B, 0x003B]) # ID, start, end, end # Speed learning Requiem of Spirit - rom.write_bytes(0x218AF16, [0x00, 0x3C]) - Block_code = [0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x08, 0x00, 0x12, 0x00, 0x00, - 0x00, 0x10, 0x00, 0x02, 0x08, 0x8B, 0xFF, 0xFF, 0x00, 0x76, 0x00, 0x11, - 0x00, 0x20, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF] - rom.write_bytes(0x218C574, Block_code) - rom.write_bytes(0x218B480, [0x00, 0x30, 0x00, 0x3A, 0x00, 0x3B, 0x00, 0x3B]) - Block_code = [0x00, 0x11, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0xFA, 0xF9, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, - 0xFF, 0xFF, 0xFA, 0xF9, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, - 0x0F, 0x67, 0x14, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01] - rom.write_bytes(0x218AF20, Block_code) - rom.write_bytes(0x218AF50, [0x00, 0x3E, 0x00, 0x11, 0x00, 0x20, 0x00, 0x00]) + rom.write_int32(0x0218AF14, 0x0000003C) # Header: frame_count + + rom.write_int32s(0x0218C574, [0x00000013, 0x00000008]) # Textbox, Count + rom.write_int16s(None, [0x0012, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 + rom.write_int16s(None, [0x0076, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + + rom.write_int32s(0x0218B478, [0x000003E8, 0x00000001]) # Terminator Execution + rom.write_int16s(None, [0x0030, 0x003A, 0x003B, 0x003B]) # ID, start, end, end + + rom.write_int32s(0x0218AF18, [0x0000000A, 0x0000000B]) # Link, Count + rom.write_int16s(0x0218AF20, [0x0011, 0x0000, 0x0010, 0x0000]) #action, start, end, ???? + rom.write_int32s(None, [0x40000000, # ??? + 0xFFFFFAF9, 0x00000008, 0x00000001, # start_XYZ + 0xFFFFFAF9, 0x00000008, 0x00000001, # end_XYZ + 0x0F671408, 0x00000000, 0x00000001]) # normal_XYZ + rom.write_int16s(0x0218AF50, [0x003E, 0x0011, 0x0020, 0x0000]) #action, start, end, ???? # Speed learning Prelude of Light - rom.write_bytes(0x252FD26, [0x00, 0x3C]) - Block_code = [0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x14, 0x00, 0x00, - 0x00, 0x10, 0x00, 0x02, 0x08, 0x8B, 0xFF, 0xFF, 0x00, 0x78, 0x00, 0x11, - 0x00, 0x20, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF] - rom.write_bytes(0x2531320, Block_code) - rom.write_byte(0x252FF1D, 0x00) - rom.write_bytes(0x25313DA, [0x00, 0x21, 0x00, 0x22]) + rom.write_int32(0x0252FD24, 0x0000003C) # Header: frame_count + + rom.write_int32s(0x02531320, [0x00000013, 0x0000000E]) # Textbox, Count + rom.write_int16s(None, [0x0014, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 + rom.write_int16s(None, [0x0078, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + + rom.write_int32s(0x0252FF10, [0x0000002F, 0x00000009]) # Sheik, Count + rom.write_int16s(0x0252FF18, [0x0006, 0x0000, 0x0000, 0x0000]) #action, start, end, ???? + + rom.write_int32s(0x025313D0, [0x00000056, 0x00000001]) # Music Change, Count + rom.write_int16s(None, [0x003B, 0x0021, 0x0022, 0x0000]) #action, start, end, ???? # Speed scene after Deku Tree rom.write_bytes(0x2077E20, [0x00, 0x07, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) diff --git a/version.py b/version.py index e07aa7939..7ce5de64c 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.21 f.LUM' \ No newline at end of file +__version__ = '2.13.22 f.LUM' \ No newline at end of file From 46d2f528f538f311d9e143f644728bc1475b1a46 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Sun, 22 Jul 2018 20:44:01 -0400 Subject: [PATCH 194/755] Fix random seeds not being consistent still --- BaseClasses.py | 2 +- version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index e035b1a98..7058af8d4 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -142,7 +142,7 @@ def get_items(self): return [loc.item for loc in self.get_filled_locations()] + self.itempool def get_dungeon_items(self): - itempool = {item for dungeon in self.dungeons for item in dungeon.all_items if item.key or self.place_dungeon_items} + itempool = [item for dungeon in self.dungeons for item in dungeon.all_items if item.key or self.place_dungeon_items] for item in itempool: item.world = self return itempool diff --git a/version.py b/version.py index 7ce5de64c..812eac5f1 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.22 f.LUM' \ No newline at end of file +__version__ = '2.13.23 f.LUM' \ No newline at end of file From 26386697f45cf8765ca60e9e55367260ab05e0ea Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Wed, 25 Jul 2018 14:49:38 -0500 Subject: [PATCH 195/755] Added option to allow using Cucco to get into Zora's Domain. --- Rules.py | 2 +- Settings.py | 13 +++++++++++++ version.py | 2 +- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/Rules.py b/Rules.py index 761ec1ccb..bb6ef3e79 100644 --- a/Rules.py +++ b/Rules.py @@ -131,7 +131,7 @@ def global_rules(world): set_rule(world.get_entrance('Zora River Dive Warp'), lambda state: state.can_dive()) set_rule(world.get_entrance('Lake Hylia Dive Warp'), lambda state: state.can_dive()) set_rule(world.get_entrance('Zoras Domain Dive Warp'), lambda state: state.can_dive()) - set_rule(world.get_entrance('Zora River Waterfall'), lambda state: state.can_play('Zeldas Lullaby')) + set_rule(world.get_entrance('Zora River Waterfall'), lambda state: state.can_play('Zeldas Lullaby') or world.logic_zora_with_cucco) set_rule(world.get_entrance('Zora River Rocks'), lambda state: state.has_explosives()) set_rule(world.get_location('Zora River Lower Freestanding PoH'), lambda state: state.has_explosives() or state.has('Progressive Scale') or (state.has('Hover Boots') and state.is_adult())) set_rule(world.get_location('Zora River Upper Freestanding PoH'), lambda state: state.has_explosives() or state.has('Progressive Scale') or (state.has('Hover Boots') and state.is_adult())) diff --git a/Settings.py b/Settings.py index e15e957b4..83c98112a 100644 --- a/Settings.py +++ b/Settings.py @@ -753,6 +753,19 @@ def __init__(self, settings_dict): 'widget': 'Checkbutton', 'default': 'unchecked' }), + Setting_Info('logic_zora_with_cucco', bool, 1, True, + { + 'help': '''\ + Zora's Domain can be entered with a Cucco in logic. + ''', + 'action': 'store_true' + }, + { + 'text': "Zora's Domain with Cucco", + 'group': 'tricks', + 'widget': 'Checkbutton', + 'default': 'unchecked' + }), Setting_Info('logic_lens', str, 2, True, { 'default': 'all', diff --git a/version.py b/version.py index d7f438158..9c9209347 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.14 f.LUM' +__version__ = '2.13.15 f.LUM' From da6a107b44630bddf2da7ee0fd1bc69f4f479eea Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Thu, 26 Jul 2018 08:07:34 -0500 Subject: [PATCH 196/755] Added Hover Boots to the Zora's Domain entry option. --- Rules.py | 4 ++-- Settings.py | 6 +++--- version.py | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Rules.py b/Rules.py index bb6ef3e79..78290a04b 100644 --- a/Rules.py +++ b/Rules.py @@ -131,7 +131,7 @@ def global_rules(world): set_rule(world.get_entrance('Zora River Dive Warp'), lambda state: state.can_dive()) set_rule(world.get_entrance('Lake Hylia Dive Warp'), lambda state: state.can_dive()) set_rule(world.get_entrance('Zoras Domain Dive Warp'), lambda state: state.can_dive()) - set_rule(world.get_entrance('Zora River Waterfall'), lambda state: state.can_play('Zeldas Lullaby') or world.logic_zora_with_cucco) + set_rule(world.get_entrance('Zora River Waterfall'), lambda state: state.can_play('Zeldas Lullaby') or world.logic_zora_with_cucco_or_hovers) set_rule(world.get_entrance('Zora River Rocks'), lambda state: state.has_explosives()) set_rule(world.get_location('Zora River Lower Freestanding PoH'), lambda state: state.has_explosives() or state.has('Progressive Scale') or (state.has('Hover Boots') and state.is_adult())) set_rule(world.get_location('Zora River Upper Freestanding PoH'), lambda state: state.has_explosives() or state.has('Progressive Scale') or (state.has('Hover Boots') and state.is_adult())) @@ -141,7 +141,7 @@ def global_rules(world): set_rule(world.get_location('King Zora Moves'), lambda state: state.has('Bottle with Letter')) set_rule(world.get_entrance('Behind King Zora'), lambda state: state.has('Bottle with Letter')) set_rule(world.get_entrance('Zora River Adult'), lambda state: state.is_adult()) - set_rule(world.get_entrance('Zoras Domain Adult Access'), lambda state: state.can_play('Zeldas Lullaby')) + set_rule(world.get_entrance('Zoras Domain Adult Access'), lambda state: state.can_play('Zeldas Lullaby') or world.logic_zora_with_cucco_or_hovers) set_rule(world.get_entrance('Zoras Fountain Adult Access'), lambda state: state.can_reach('Zoras Fountain')) set_rule(world.get_entrance('Jabu Jabus Belly'), lambda state: state.has_bottle()) set_rule(world.get_entrance('Zoras Fountain Fairy'), lambda state: state.has_explosives()) diff --git a/Settings.py b/Settings.py index 83c98112a..d1d869092 100644 --- a/Settings.py +++ b/Settings.py @@ -753,15 +753,15 @@ def __init__(self, settings_dict): 'widget': 'Checkbutton', 'default': 'unchecked' }), - Setting_Info('logic_zora_with_cucco', bool, 1, True, + Setting_Info('logic_zora_with_cucco_or_hovers', bool, 1, True, { 'help': '''\ - Zora's Domain can be entered with a Cucco in logic. + Zora's Domain can be entered with a Cucco and Hover Boots in logic. ''', 'action': 'store_true' }, { - 'text': "Zora's Domain with Cucco", + 'text': "Zora's Domain entry with Cucco or Hover Boots", 'group': 'tricks', 'widget': 'Checkbutton', 'default': 'unchecked' diff --git a/version.py b/version.py index 9713a3519..118a0ef0d 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.17 f.LUM' +__version__ = '2.13.18 f.LUM' From 44e5f09bf5eaa37335fe48b06b594a10d54a2ee5 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Thu, 26 Jul 2018 12:26:43 -0400 Subject: [PATCH 197/755] Shuffle ocarinas now also shuffles the ocarina of time --- README.md | 5 ++--- Regions.py | 2 +- Settings.py | 7 +++---- version.py | 2 +- 4 files changed, 7 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index ba6fb2908..5a264a47b 100644 --- a/README.md +++ b/README.md @@ -74,10 +74,9 @@ Regardless of whether of not you use this option, Malon has been sped up in the - The condition for Malon to move to Lon Lon Ranch is now obtaining her item and Talon fleeing the castle (instead of just Talon fleeing the castle) - At Lon Lon Ranch, you no longer need to speak to Malon multiple times before she will teach you her song. You can simply walk up to her and pull out your Ocarina. -## Fairy Ocarina - -The Fairy Ocarina can be shuffled into the item pool with `shuffle_fairy_ocarina`. This means that Saria will give a random item and that you must find the Ocarina before being able to play any songs. The Ocarina of Time will still always be at its usual location. +## Fairy Ocarina and Ocarina of Time +The Fairy Ocarina and Ocarina of Time can be shuffled into the item pool with `shuffle_ocarinas`. This means that Saria and the Ocarin of Time will give a random item and that you must find the Ocarina before being able to play any songs. ## Keysanity diff --git a/Regions.py b/Regions.py index f6c65ca7c..2ba7bcbb5 100644 --- a/Regions.py +++ b/Regions.py @@ -464,7 +464,7 @@ def _create_region(name, type, locations=None, exits=None): 'Bongo Bongo Heart': (None, None, 0x4F, 'BossHeart', 0x18, 'Shadow Temple'), 'Magic Bean Salesman': (None, None, None, 'Event', None, None), 'King Zora Moves': (None, None, None, 'Event', None, None), - 'Ocarina of Time': (None, None, None, 'Event', None, 'Hyrule Field'), + 'Ocarina of Time': (None, None, 0x0C, 'NPC', 0x51, 'Hyrule Field'), 'Master Sword Pedestal': (None, None, None, 'Event', None, 'the Temple of Time'), 'Epona': (None, None, None, 'Event', None, None), 'Gerudo Fortress Carpenter Rescue': (None, None, None, 'Event', None, 'Gerudo Fortress'), diff --git a/Settings.py b/Settings.py index 7282c05b8..cae7e6be7 100644 --- a/Settings.py +++ b/Settings.py @@ -465,17 +465,16 @@ def __init__(self, settings_dict): 'widget': 'Checkbutton', 'default': 'unchecked' }), - Setting_Info('shuffle_fairy_ocarina', bool, 1, True, + Setting_Info('shuffle_ocarinas', bool, 1, True, { 'help': '''\ - Shuffles the Fairy Ocarina item from Saria into the pool. + Shuffles the Fairy Ocarina and the Ocarina of Time into the pool. This means that you need to find the ocarina before playing songs. - You can still always recieve it from Ocarina of Time location ''', 'action': 'store_true' }, { - 'text': 'Shuffle Fairy Ocarina', + 'text': 'Shuffle Ocarinas', 'group': 'logic', 'widget': 'Checkbutton', 'default': 'unchecked' diff --git a/version.py b/version.py index 812eac5f1..90bf98b1c 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.23 f.LUM' \ No newline at end of file +__version__ = '2.13.24 f.LUM' \ No newline at end of file From 3a2945da65043e2cf4191b8a701d6d90f6eb1199 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Thu, 26 Jul 2018 12:28:47 -0400 Subject: [PATCH 198/755] Song locations can give other items --- ASM/src/cutscenes.asm | 39 +++++++++++++- ASM/src/hacks.asm | 45 +++++++++++++++- ASM/src/malon.asm | 41 +++++++++++++-- Rom.py | 118 ++++++++++++++++++++++++++++++++---------- version.py | 2 +- 5 files changed, 210 insertions(+), 35 deletions(-) diff --git a/ASM/src/cutscenes.asm b/ASM/src/cutscenes.asm index d5daa7ae5..dfe9cb7e3 100644 --- a/ASM/src/cutscenes.asm +++ b/ASM/src/cutscenes.asm @@ -70,8 +70,35 @@ override_fairy_ocarina_cutscene: nop override_ocarina_songs: - li t0, FAIRY_OCARINA_ITEM - lb t0, 0x00 (t0) + li t0, 0x2B + b store_pending_spedial_item + nop + +override_epona_song: + lui at,0x8012 + addiu at,at,0xA5D0 ; v1 = 0x8012a5d0 # save context (sav) + lb t0,0x0EDE(at) ; check learned song from malon flag + ori t0,t0,0x01 ; t9 = "Invited to Sing With Child Malon" + sb t0,0x0EDE(at) + + li t0, 0x2B + b store_pending_spedial_item + nop + +override_suns_song: + lui at,0x8012 + addiu at,at,0xA5D0 ; v1 = 0x8012a5d0 # save context (sav) + lb t0,0x0EDE(at) ; learned song from sun's song + ori t0,t0,0x04 ; + sb t0,0x0EDE(at) + + li t0, 0x2B + b store_pending_spedial_item + nop + +override_song_of_time: + li a1, 3 + li t0, 0x2B b store_pending_spedial_item nop @@ -100,3 +127,11 @@ store_pending_spedial_item: jr ra nop +override_saria_song_check: + move t7, v1 + lb t4, 0x0EDF(t7) + ori t8, t4, 0x80 + andi t6, t4, 0x80 + li v1, 5 + jr ra + nop \ No newline at end of file diff --git a/ASM/src/hacks.asm b/ASM/src/hacks.asm index 9a1d62691..9c20ed788 100755 --- a/ASM/src/hacks.asm +++ b/ASM/src/hacks.asm @@ -313,6 +313,9 @@ jal write_initial_save sb t0, 32(s1) +;================================================================================================== +; Ocarina Song Cutscene Overrides +;================================================================================================== ; Replaces ; addu t8,t0,t7 @@ -326,8 +329,48 @@ ;lui t5,0x8010 ;addiu t0,t0,-23088 .org 0xAE5DE0 - jal override_fairy_ocarina_cutscene + jal override_ocarina_songs li v0,0xFF b item_action_return .org 0xAE7370 item_action_return: + +; Replaces +;lui at,0x1 +;addu at,at,s0 +.org 0xAC9ABC + jal override_ocarina_songs + nop + + +;lw $t6, -0x73d4($t6) +;lw $t7, 0xa4($v1) +.org 0xE09F64 + li t6,0x04 + lb t7,0x0EDE(v1) ; check learned song from sun's song +;addiu $t7, $zero, 1 +.org 0xE09FB0 + jal override_suns_song + +;lw $t6, -0x73e0($t6) +;lw $t7, 0xa4($s0) +.org 0xB063FC + li t6,0x02 + lb t7,0x0EDE(s0) ; check learned song from ZL + +;lw $t4, -0x73d8($t4) +;lw $t5, 0xa4($v1) +;addiu $v1, $zero, 5 +;and $t6, $t4, $t5 +.org 0xE29380 + move t5, ra + jal override_saria_song_check + li v0, 5 + move ra, t5 +;move $v0, $v1 +.org 0xE293A4 + sb t8, 0x0EDF(t7) + +; li a1, 3 +.org 0xDB532C + jal override_song_of_time \ No newline at end of file diff --git a/ASM/src/malon.asm b/ASM/src/malon.asm index 602f0e25e..4ed3c7394 100644 --- a/ASM/src/malon.asm +++ b/ASM/src/malon.asm @@ -112,17 +112,18 @@ return_from_the_other_function: lui t6,0x8010 or t2,t2,t3 ; t2 = combination of the flags bne t2,t3,ev0_return ; check that both flags are true to continue this path + lh t9,472(a0) @@not_hyrule: - -.org 0xD7E8E0 + li t6,0x01 + lb t7,0x0EDE(v0) ; check learned song from malon flag + and t8,t6,t7 ; t8 = "Has Epona's Song" bnezl t8,ev0_return ; return if we have Malon's song .org 0xD7E920 ev0_return: - ; ; ; Replaces: ; ; addiu v0,v0,0xa5d0 @@ -179,9 +180,15 @@ ev0_return: lui t3,0x809f lui t0,0x8010 lh t8,0xA4(t8) ; t8 = current scene number + + ;lb t1,0x0EDE(v0) lw t1,164(v0) ; t1 = quest status + addiu t3,t3,4392 ; t3 = 0x809f1128 ( ev0 ) + + ;li t0,0x01 lw t0,-29660(t0) ; t0 = malon's song mask + move a0,s0 ; a0 = actor pointer to set up function call lui t4,0x809f addiu t4,t4,4840 ; t4 = 0x809f12e8 ( ev1 ) @@ -193,4 +200,30 @@ ev0_return: sw t3,384(s0) ; write f_9f1128 to actor + 0x180 .org 0xD7E7B8 -set_ev1: \ No newline at end of file +set_ev1: + + +; Replaces +; lw t6,-29660(t6) +; lw t7,164(v1) +.org 0xD7E140 + li t6,0x01 + lb t7,0x0EDE(v1) ; check learned song from malon flag + +.org 0xD7EBBC + jal override_epona_song ;bne v0,at,loc_0x00000408 ; if v0? == 7 then: Return // if preview is not done + +.org 0xD7EC1C + nop ; bne t8,at,loc_0x00000488 ; if t8 != 3 then: Return // if song not played successfully + li t1,5 ;li t1,42 ; t1 = 0x2A + + +;ctx = 0x801C84A0 +;1da2ba = 0157 = Entrance +;1da2fe = 2a -> fade swipe = white circle +; 03 -> fade swipe = white fade +;1da2b5 = 1a -> start transition + +;12B9E2 = fff1 ???? + +;#5f0 \ No newline at end of file diff --git a/Rom.py b/Rom.py index 8cc390c92..716f1c675 100644 --- a/Rom.py +++ b/Rom.py @@ -329,21 +329,40 @@ def patch_rom(world, rom): # Speed learning Zelda's Lullaby rom.write_int32s(0x02E8E90C, [0x000003E8, 0x00000001]) # Terminator Execution - rom.write_int16s(None, [0x0073, 0x003B, 0x003C, 0x003C]) # ID, start, end, end + if world.shuffle_song_items: + rom.write_int16s(None, [0x0073, 0x001, 0x0002, 0x0002]) # ID, start, end, end + else: + rom.write_int16s(None, [0x0073, 0x003B, 0x003C, 0x003C]) # ID, start, end, end + rom.write_int32s(0x02E8E91C, [0x00000013, 0x0000000C]) # Textbox, Count - rom.write_int16s(None, [0x0017, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 + if world.shuffle_song_items: + rom.write_int16s(None, [0xFFFF, 0x0000, 0x0010, 0xFFFF, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + else: + rom.write_int16s(None, [0x0017, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 rom.write_int16s(None, [0x00D4, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 # Speed learning Sun's Song - rom.write_int32(0x0332A4A4, 0x0000003C) # Header: frame_count + if world.shuffle_song_items: + rom.write_int32(0x0332A4A4, 0xFFFFFFFF) # Header: frame_count + else: + rom.write_int32(0x0332A4A4, 0x0000003C) # Header: frame_count rom.write_int32s(0x0332A868, [0x00000013, 0x00000008]) # Textbox, Count rom.write_int16s(None, [0x0018, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 rom.write_int16s(None, [0x00D3, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + if not world.shuffle_song_items: + # revert sun song item override injection + rom.write_ints32s(0xE09F64, [0x8DCE8C2C, 0x8C6F00A4]) + rom.write_ints32s(0xE09FB0, [0x240F0001]) + + # Speed learning Saria's Song - rom.write_int32(0x020B1734, 0x0000003C) # Header: frame_count + if world.shuffle_song_items: + rom.write_int32(0x020B1734, 0xFFFFFFFF) # Header: frame_count + else: + rom.write_int32(0x020B1734, 0x0000003C) # Header: frame_count rom.write_int32s(0x20B1DA8, [0x00000013, 0x0000000C]) # Textbox, Count rom.write_int16s(None, [0x0015, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 @@ -358,31 +377,62 @@ def patch_rom(world, rom): # Speed learning Epona's Song rom.write_int32s(0x029BEF60, [0x000003E8, 0x00000001]) # Terminator Execution - rom.write_int16s(None, [0x005E, 0x000A, 0x000B, 0x000B]) # ID, start, end, end + if world.shuffle_song_items: + rom.write_int16s(None, [0x005E, 0x0001, 0x0002, 0x0002]) # ID, start, end, end + else: + rom.write_int16s(None, [0x005E, 0x000A, 0x000B, 0x000B]) # ID, start, end, end rom.write_int32s(0x029BECB0, [0x00000013, 0x00000002]) # Textbox, Count - rom.write_int16s(None, [0x00D2, 0x0000, 0x0009, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + if world.shuffle_song_items: + rom.write_int16s(None, [0xFFFF, 0x0000, 0x0009, 0xFFFF, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + else: + rom.write_int16s(None, [0x00D2, 0x0000, 0x0009, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 rom.write_int16s(None, [0xFFFF, 0x000A, 0x003C, 0xFFFF, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + if not world.shuffle_song_items: + # Revert song learning skip ASM + rom.write_int32(0xD7E77C, 0x8C4900A4) + rom.write_int32(0xD7E784, 0x8D088C24) + rom.write_int32s(0xD7E8D4, [0x8DCE8C24, 0x8C4F00A4]) + rom.write_int32s(0xD7E140, [0x8DCE8C24, 0x8C6F00A4]) + rom.write_int32(0xD7EBBC, 0x14410008) # bne v0,at,loc_0x00000408 + rom.write_int32(0xD7EC1C, 0x17010010) # bne t8,at,loc_0x00000488 + + # Speed learning Song of Time rom.write_int32s(0x0252FB98, [0x000003E8, 0x00000001]) # Terminator Execution - rom.write_int16s(None, [0x0035, 0x003B, 0x003C, 0x003C]) # ID, start, end, end + if world.shuffle_song_items: + rom.write_int16s(None, [0x0035, 0x0001, 0x0002, 0x0002]) # ID, start, end, end + else: + rom.write_int16s(None, [0x0035, 0x003B, 0x003C, 0x003C]) # ID, start, end, end rom.write_int32s(0x0252FC80, [0x00000013, 0x0000000C]) # Textbox, Count - rom.write_int16s(None, [0x0019, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 + if world.shuffle_song_items: + rom.write_int16s(None, [0xFFFF, 0x0000, 0x0010, 0xFFFF, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + else: + rom.write_int16s(None, [0x0019, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 rom.write_int16s(None, [0x00D5, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 rom.write_int32(0x01FC3B84, 0xFFFFFFFF) # Other Header?: frame_count + if not world.shuffle_song_items: + rom.write_int32(0xDB532C, 0x24050003) + # Speed learning Song of Storms - rom.write_int32(0x03041084, 0x0000000A) # Header: frame_count + if world.shuffle_song_items: + rom.write_int32(0x03041084, 0xFFFFFFFF) # Header: frame_count + else: + rom.write_int32(0x03041084, 0x0000000A) # Header: frame_count rom.write_int32s(0x03041088, [0x00000013, 0x00000002]) # Textbox, Count rom.write_int16s(None, [0x00D6, 0x0000, 0x0009, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 rom.write_int16s(None, [0xFFFF, 0x00BE, 0x00C8, 0xFFFF, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 # Speed learning Minuet of Forest - rom.write_int32(0x020AFF84, 0x0000003C) # Header: frame_count + if world.shuffle_song_items: + rom.write_int32(0x020AFF84, 0xFFFFFFFF) # Header: frame_count + else: + rom.write_int32(0x020AFF84, 0x0000003C) # Header: frame_count rom.write_int32s(0x020B0800, [0x00000013, 0x0000000A]) # Textbox, Count rom.write_int16s(None, [0x000F, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 @@ -399,7 +449,10 @@ def patch_rom(world, rom): rom.write_int16s(None, [0x0004, 0x0000, 0x0000, 0x0000]) #action, start, end, ???? # Speed learning Bolero of Fire - rom.write_int32(0x0224B5D4, 0x0000003C) # Header: frame_count + if world.shuffle_song_items: + rom.write_int32(0x0224B5D4, 0xFFFFFFFF) # Header: frame_count + else: + rom.write_int32(0x0224B5D4, 0x0000003C) # Header: frame_count rom.write_int32s(0x0224D7E8, [0x00000013, 0x0000000A]) # Textbox, Count rom.write_int16s(None, [0x0010, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 @@ -416,7 +469,10 @@ def patch_rom(world, rom): rom.write_int16s(0x0224B888, [0x0000]) #action # Speed learning Serenade of Water - rom.write_int32(0x02BEB254, 0x0000003C) # Header: frame_count + if world.shuffle_song_items: + rom.write_int32(0x02BEB254, 0xFFFFFFFF) # Header: frame_count + else: + rom.write_int32(0x02BEB254, 0x0000003C) # Header: frame_count rom.write_int32s(0x02BEC880, [0x00000013, 0x00000010]) # Textbox, Count rom.write_int16s(None, [0x0011, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 @@ -442,21 +498,33 @@ def patch_rom(world, rom): rom.write_int32(0x01FFFDF4, 0x0000003C) # Header: frame_count rom.write_int32s(0x02000FD8, [0x00000013, 0x0000000E]) # Textbox, Count - rom.write_int16s(None, [0x0013, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 + if world.shuffle_song_items: + rom.write_int16s(None, [0xFFFF, 0x0000, 0x0010, 0xFFFF, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + else: + rom.write_int16s(None, [0x0013, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 rom.write_int16s(None, [0x0077, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 rom.write_int32s(0x02000128, [0x000003E8, 0x00000001]) # Terminator Execution - rom.write_int16s(None, [0x0032, 0x003A, 0x003B, 0x003B]) # ID, start, end, end + if world.shuffle_song_items: + rom.write_int16s(None, [0x0032, 0x0001, 0x0002, 0x0002]) # ID, start, end, end + else: + rom.write_int16s(None, [0x0032, 0x003A, 0x003B, 0x003B]) # ID, start, end, end # Speed learning Requiem of Spirit rom.write_int32(0x0218AF14, 0x0000003C) # Header: frame_count rom.write_int32s(0x0218C574, [0x00000013, 0x00000008]) # Textbox, Count - rom.write_int16s(None, [0x0012, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 + if world.shuffle_song_items: + rom.write_int16s(None, [0xFFFF, 0x0000, 0x0010, 0xFFFF, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + else: + rom.write_int16s(None, [0x0012, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 rom.write_int16s(None, [0x0076, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 rom.write_int32s(0x0218B478, [0x000003E8, 0x00000001]) # Terminator Execution - rom.write_int16s(None, [0x0030, 0x003A, 0x003B, 0x003B]) # ID, start, end, end + if world.shuffle_song_items: + rom.write_int16s(None, [0x0030, 0x0001, 0x0002, 0x0002]) # ID, start, end, end + else: + rom.write_int16s(None, [0x0030, 0x003A, 0x003B, 0x003B]) # ID, start, end, end rom.write_int32s(0x0218AF18, [0x0000000A, 0x0000000B]) # Link, Count rom.write_int16s(0x0218AF20, [0x0011, 0x0000, 0x0010, 0x0000]) #action, start, end, ???? @@ -467,7 +535,10 @@ def patch_rom(world, rom): rom.write_int16s(0x0218AF50, [0x003E, 0x0011, 0x0020, 0x0000]) #action, start, end, ???? # Speed learning Prelude of Light - rom.write_int32(0x0252FD24, 0x0000003C) # Header: frame_count + if world.shuffle_song_items: + rom.write_int32(0x0252FD24, 0xFFFFFFFF) # Header: frame_count + else: + rom.write_int32(0x0252FD24, 0x0000003C) # Header: frame_count rom.write_int32s(0x02531320, [0x00000013, 0x0000000E]) # Textbox, Count rom.write_int16s(None, [0x0014, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 @@ -1110,7 +1181,8 @@ def write_save_table(rom): # Revert Song Get Override Injection if not world.shuffle_song_items: - rom.write_bytes(0xAE5DE0, [0x00, 0x07, 0x70, 0x80, 0x3C, 0x0D, 0x80, 0x10, 0x25, 0x08, 0xA5, 0xD0]) + rom.write_int32s(0xAE5DE0, [0x00077080, 0x3C0D8010, 0x2508A5D0]) + rom.write_int32s(0xAC9ABC, [0x3C010001, 0x00300821]) # Set Default targeting option to Hold if world.default_targeting == 'hold': @@ -1126,17 +1198,13 @@ def write_save_table(rom): if itemid is None or location.address is None: continue - if location.type == 'Song': + if location.type == 'Song' and not world.shuffle_song_items: rom.write_byte(locationaddress, itemid) itemid = itemid + 0x0D rom.write_byte(secondaryaddress, itemid) if location.name == 'Impa at Castle': impa_fix = 0x65 - item.index rom.write_byte(0xD12ECB, impa_fix) - impa_fix = 0x8C34 - (item.index * 4) - impa_fix_high = impa_fix >> 8 - impa_fix_low = impa_fix & 0x00FF - rom.write_bytes(0xB063FE, [impa_fix_high, impa_fix_low]) rom.write_byte(0x2E8E931, item_data[item.name]) #Fix text box elif location.name == 'Song from Malon': if item.name == 'Suns Song': @@ -1157,10 +1225,6 @@ def write_save_table(rom): elif location.name == 'Song from Saria': saria_fix = 0x65 - item.index rom.write_byte(0xE2A02B, saria_fix) - saria_fix = 0x8C34 - (item.index * 4) - saria_fix_high = saria_fix >> 8 - saria_fix_low = saria_fix & 0x00FF - rom.write_bytes(0xE29382, [saria_fix_high, saria_fix_low]) rom.write_byte(0x20B1DBD, item_data[item.name]) #Fix text box elif location.name == 'Song from Ocarina of Time': rom.write_byte(0x252FC95, item_data[item.name]) #Fix text box diff --git a/version.py b/version.py index 90bf98b1c..911232007 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.24 f.LUM' \ No newline at end of file +__version__ = '2.13.25 f.LUM' \ No newline at end of file From e41fa91f69c83eee627214f7eac77a46ac962442 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Thu, 26 Jul 2018 12:30:30 -0400 Subject: [PATCH 199/755] Song items are shuffled into the pool --- ASM/src/extended_items.asm | 27 +++++++++++++++++++++++++++ Fill.py | 7 ++++++- ItemList.py | 6 +++--- Messages.py | 31 +++++++++++++++++++++++++++++++ Regions.py | 24 ++++++++++++------------ Rom.py | 11 ++++++++++- Settings.py | 1 - data/base2current.json | 2 +- version.py | 2 +- 9 files changed, 91 insertions(+), 20 deletions(-) diff --git a/ASM/src/extended_items.asm b/ASM/src/extended_items.asm index f4bcbe969..c281d6c07 100755 --- a/ASM/src/extended_items.asm +++ b/ASM/src/extended_items.asm @@ -127,6 +127,20 @@ Item_Row 0x4F, 0x41, 0x1F, 0xE8, 0x00CD, no_upgrade, double_magic, -1, -1 ; 0 Item_Row -1, -1, -1, -1, -1, bombchu_upgrade, no_effect, -1, -1 ; 0xC2 = Progressive Bombchus Item_Row 0x53, 0x41, 0x46, 0x4A, 0x010E, ocarina_upgrade, give_fairy_ocarina, -1, -1 ; 0xC3 = Progressive Ocarina +Item_Row 0x53, 0x41, 0x03, 0xB0, 0x00B6, no_upgrade, give_song, 6, -1 ; 0xC4 = Minuet of Forest +Item_Row 0x53, 0x41, 0x04, 0xB1, 0x00B6, no_upgrade, give_song, 7, -1 ; 0xC5 = Bolero of Fire +Item_Row 0x53, 0x41, 0x05, 0xB2, 0x00B6, no_upgrade, give_song, 8, -1 ; 0xC6 = Serenade of Water +Item_Row 0x53, 0x41, 0x06, 0xB3, 0x00B6, no_upgrade, give_song, 9, -1 ; 0xC7 = Requiem of Spirit +Item_Row 0x53, 0x41, 0x07, 0xB6, 0x00B6, no_upgrade, give_song, 10, -1 ; 0xC8 = Nocturn of Shadow +Item_Row 0x53, 0x41, 0x08, 0xB7, 0x00B6, no_upgrade, give_song, 11, -1 ; 0xC9 = Prelude of Light + +Item_Row 0x53, 0x41, 0x03, 0xB8, 0x00B6, no_upgrade, give_song, 12, -1 ; 0xCA = Zelda's Lullaby +Item_Row 0x53, 0x41, 0x04, 0xB9, 0x00B6, no_upgrade, give_song, 13, -1 ; 0xCB = Epona's Song +Item_Row 0x53, 0x41, 0x05, 0xBA, 0x00B6, no_upgrade, give_song, 14, -1 ; 0xCC = Saria's Song +Item_Row 0x53, 0x41, 0x06, 0xBB, 0x00B6, no_upgrade, give_song, 15, -1 ; 0xCD = Sun's Song +Item_Row 0x53, 0x41, 0x07, 0xBC, 0x00B6, no_upgrade, give_song, 16, -1 ; 0xCE = Song of Time +Item_Row 0x53, 0x41, 0x08, 0xBD, 0x00B6, no_upgrade, give_song, 17, -1 ; 0xCF = Song of Storms + ;================================================================================================== ; Item upgrade functions ;================================================================================================== @@ -474,3 +488,16 @@ give_fairy_ocarina: sb t0, 0x7B (a0) jr ra nop + +;================================================================================================== + +give_song: + ; a0 = save context + ; a1 = quest bit + li t0, 1 + sllv t0, t0, a1 + lw t1, 0xA4(a0) + or t1, t1, t0 + sw t1, 0xA4(a0) + jr ra + nop diff --git a/Fill.py b/Fill.py index b909f28fc..f30e5d2b6 100644 --- a/Fill.py +++ b/Fill.py @@ -21,6 +21,10 @@ def distribute_items_restrictive(worlds, fill_locations=None): # Generate the itempools songitempool = [item for world in worlds for item in world.itempool if item.type == 'Song'] itempool = [item for world in worlds for item in world.itempool if item.type != 'Song'] + if worlds[0].shuffle_song_items: + itempool.extend(songitempool) + fill_locations.extend(song_locations) + random.shuffle(itempool) # randomize item placement order. this ordering can greatly affect the location accessibility bias progitempool = [item for item in itempool if item.advancement] prioitempool = [item for item in itempool if not item.advancement and item.priority] @@ -50,7 +54,8 @@ def distribute_items_restrictive(worlds, fill_locations=None): # Placing songs on their own since they have a relatively high chance # of failing compared to other item type. So this way we only have retry # the song locations only. - fill_songs(worlds, song_locations, songitempool, progitempool) + if not worlds[0].shuffle_song_items: + fill_songs(worlds, song_locations, songitempool, progitempool) # Place all progression items. This will include keys in keysanity. # Items in this group will check for reachability and will be placed diff --git a/ItemList.py b/ItemList.py index e84dd2cf0..e057468ea 100644 --- a/ItemList.py +++ b/ItemList.py @@ -29,7 +29,6 @@ 'Zeldas Letter': 'Zeldas Letter', 'Magic Bean Salesman': 'Magic Bean', 'King Zora Moves': 'Bottle', - 'Ocarina of Time': 'Ocarina', 'Master Sword Pedestal': 'Master Sword', 'Epona': 'Epona', 'Gerudo Fortress Carpenter Rescue': 'Gerudo Membership Card', @@ -73,10 +72,11 @@ def get_pool_core(world): else: placed_items['Malon Egg'] = 'Weird Egg' - if world.shuffle_fairy_ocarina: - pool.append('Ocarina') + if world.shuffle_ocarinas: + pool.extend(['Ocarina'] * 2) else: placed_items['Gift from Saria'] = 'Ocarina' + placed_items['Ocarina of Time'] = 'Ocarina' if world.tokensanity == 'off': for location in skulltulla_locations: diff --git a/Messages.py b/Messages.py index 037002d7f..62606d6ac 100644 --- a/Messages.py +++ b/Messages.py @@ -238,6 +238,24 @@ 0xa1: '\x13\x77\x08You found a \x05\x41Small Key\x05\x40\x01for \x05\x47Ganon\'s Castle\x05\x40!\x09', } + +# messages for song items +SONG_MESSAGES = { + 0x00B0: "\x08\x06\x28You have learned the\x01\x06\x2F\x05\x42Minuet of Forest\x05\x40!", + 0x00B1: "\x08\x06\x28You have learned the\x01\x06\x37\x05\x41Bolero of Fire\x05\x40!", + 0x00B2: "\x08\x06\x28You have learned the\x01\x06\x29\x05\x43Serenade of Water\x05\x40!", + 0x00B3: "\x08\x06\x28You have learned the\x01\x06\x2D\x05\x46Requiem of Spirit\x05\x40!", + 0x00B6: "\x08\x06\x28You have learned the\x01\x06\x28\x05\x45Nocturne of Shadow\x05\x40!", + 0x00B7: "\x08\x06\x28You have learned the\x01\x06\x32\x05\x44Prelude of Light\x05\x40!", + 0x00B8: "\x08\x06\x14You've learned \x05\x42Saria's Song\x05\x40!", + 0x00B9: "\x08\x06\x11You've learned \x05\x41Epona's Song\x05\x40!", + 0x00BA: "\x08\x06\x0BYou've learned the \x05\x46Sun's Song\x05\x40!", + 0x00BB: "\x08\x06\x15You've learned \x05\x43Zelda's Lullaby\x05\x40!", + 0x00BC: "\x08\x06\x05You've learned the \x05\x44Song of Time\x05\x40!", + 0x00BD: "\x08You've learned the \x05\x45Song of Storms\x05\x40!", +} + + # convert byte array to an integer def bytes_to_int(bytes, signed=False): return int.from_bytes(bytes, byteorder='big', signed=signed) @@ -629,6 +647,19 @@ def add_keysanity_messages(messages, world): else: add_message(messages, text, id, 0x23) +# add the song messages +# make sure to call this AFTER move_shop_item_messages() +def add_song_messages(messages, world): + for id, text in SONG_MESSAGES.items(): + if world.world_count > 1: + index = 0 + while ord(text[index]) in CONTROL_CODES: + index = index + CONTROL_CODES[ord(text[index])][1] + 1 + new_text = text[:index] + "\x08\x05\x42Player \x18:\x05\x40\x01" + text[index:] + add_message(messages, new_text, id, 0x23) + else: + add_message(messages, text, id, 0x23) + # reduce item message sizes def update_item_messages(messages, world): for id, text in ITEM_MESSAGES.items(): diff --git a/Regions.py b/Regions.py index 2ba7bcbb5..9edba1c3a 100644 --- a/Regions.py +++ b/Regions.py @@ -370,18 +370,18 @@ def _create_region(name, type, locations=None, exits=None): 'Lost Woods Generic Grotto Chest': (None, None, 0x14, 'Chest', 0x3E, 'the Lost Woods'), 'Mountain Storms Grotto Chest': (None, None, 0x17, 'Chest', 0x3E, 'Death Mountain Trail'), 'Top of Crater Grotto Chest': (None, None, 0x1A, 'Chest', 0x3E, 'Death Mountain Crater'), - 'Impa at Castle': (0x2E8E925, 0x2E8E925, 0x0A, 'Song', None, None), - 'Song from Malon': (0xD7EB53, 0xD7EBCF, 0x09, 'Song', None, None), - 'Song from Composer Grave': (0x332A871, 0x332A871, 0x0B, 'Song', None, None), - 'Song from Saria': (0x20B1DB1, 0x20B1DB1, 0x08, 'Song', None, None), - 'Song from Ocarina of Time': (0x252FC89, 0x252FC89, 0x0C, 'Song', None, None), - 'Song at Windmill': (0xE42C07, 0xE42B8B, 0x0D, 'Song', None, None), - 'Sheik Forest Song': (0x20B0809, 0x20B0809, 0x02, 'Song', None, None), - 'Sheik at Temple': (0x2531329, 0x2531329, 0x07, 'Song', None, None), - 'Sheik in Crater': (0x224D7F1, 0x224D7F1, 0x03, 'Song', None, None), - 'Sheik in Ice Cavern': (0x2BEC889, 0x2BEC889, 0x04, 'Song', None, None), - 'Sheik in Kakariko': (0x2000FE1, 0x2000FE1, 0x06, 'Song', None, None), - 'Sheik at Colossus': (0x218C57D, 0x218C57D, 0x05, 'Song', None, None), + 'Impa at Castle': (0x2E8E925, 0x2E8E925, 0x0A, 'Song', 0x4A, 'Hyrule Castle'), + 'Song from Malon': (0xD7EB53, 0xD7EBCF, 0x09, 'Song', 0x63, 'Lon Lon Ranch'), + 'Song from Composer Grave': (0x332A871, 0x332A871, 0x0B, 'Song', 0x41, 'the Graveyard'), + 'Song from Saria': (0x20B1DB1, 0x20B1DB1, 0x08, 'Song', 0x56, 'Sacred Forest Meadow'), + 'Song from Ocarina of Time': (0x252FC89, 0x252FC89, 0x0C, 'Song', 0x51, 'Hyrule Field'), + 'Song at Windmill': (0xE42C07, 0xE42B8B, 0x0D, 'Song', 0x48, 'Kakariko'), + 'Sheik Forest Song': (0x20B0809, 0x20B0809, 0x02, 'Song', 0x56, 'Sacred Forest Meadow'), + 'Sheik at Temple': (0x2531329, 0x2531329, 0x07, 'Song', 0x43, 'Temple of Time'), + 'Sheik in Crater': (0x224D7F1, 0x224D7F1, 0x03, 'Song', 0x61, 'Death Mountain Crater'), + 'Sheik in Ice Cavern': (0x2BEC889, 0x2BEC889, 0x04, 'Song', 0x09, 'Ice Cavern'), + 'Sheik in Kakariko': (0x2000FE1, 0x2000FE1, 0x06, 'Song', 0x52, 'Kakariko'), + 'Sheik at Colossus': (0x218C57D, 0x218C57D, 0x05, 'Song', 0x5C, 'Desert Colossus'), 'Gift from Saria': (None, None, 0x3B, 'NPC', 0x5B, 'the Lost Woods'), 'Malon Egg': (None, None, 0x47, 'NPC', 0x5F, 'Hyrule Castle'), 'Zeldas Letter': (None, None, None, 'NPC', None, 'Hyrule Castle'), diff --git a/Rom.py b/Rom.py index 716f1c675..4a12032f3 100644 --- a/Rom.py +++ b/Rom.py @@ -1307,6 +1307,9 @@ def write_save_table(rom): # give dungeon items the correct messages message_patch_for_dungeon_items(messages, shop_items, world) + # add song messages + add_song_messages(messages, world) + # reduce item message lengths update_item_messages(messages, world) @@ -1493,9 +1496,15 @@ def get_override_entry(location): if None in [scene, default, item_id]: return [] + # Correct song offset + if location.item.type == 'Song': + item_id = location.item.code + 0xC2 + if location.type == 'Song': + default = 0x2B + player_id = (location.item.world.id + 1) << 3 - if location.type in ['NPC', 'BossHeart']: + if location.type in ['NPC', 'BossHeart', 'Song']: return [scene, player_id | 0x00, default, item_id] elif location.type == 'Chest': flag = default & 0x1F diff --git a/Settings.py b/Settings.py index cae7e6be7..2eba25508 100644 --- a/Settings.py +++ b/Settings.py @@ -493,7 +493,6 @@ def __init__(self, settings_dict): 'group': 'logic', 'widget': 'Checkbutton', 'default': 'unchecked', - 'dependency': { 'shuffle_song_items':True } }), Setting_Info('keysanity', bool, 1, True, { diff --git a/data/base2current.json b/data/base2current.json index bde6f0540..97e9779eb 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -1 +1 @@ -[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 128]}, {"11325064": [12, 16, 11, 121, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 11, 248]}, {"11427296": [12, 16, 11, 126, 52, 2, 0, 255, 16, 0, 5, 97]}, {"11427312": [12, 16, 12, 161]}, {"11431496": [12, 16, 11, 126, 1, 15, 192, 33]}, {"11562028": [12, 16, 12, 194]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 12, 177]}, {"11882076": [12, 16, 12, 142]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 11, 215, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 11, 222, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 11, 229, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 11, 208, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 72]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 9, 219]}, {"12427480": [12, 16, 10, 47]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 51]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 11, 155, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 84]}, {"12491480": [12, 16, 10, 93]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 78]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 11, 236]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 140, 73]}, {"14149503": [164]}, {"14149512": [2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149856": [87]}, {"14149859": [15]}, {"14357459": [118]}, {"14624335": [118]}, {"14872723": [52]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 9, 248, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 9, 248, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 36, 152, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 36, 180, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 36, 220, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 4, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 44, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 84, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 112, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 140, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 37, 168, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 44, 128, 64, 36, 144, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 38, 104, 128, 64, 36, 144, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 38, 132, 128, 64, 36, 144, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 28, 128, 64, 36, 144, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 20, 128, 64, 36, 144, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 20, 128, 64, 37, 220, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 20, 128, 64, 37, 220, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 20, 128, 64, 37, 220, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 20, 128, 64, 37, 248, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 20, 128, 64, 37, 248, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 20, 128, 64, 37, 248, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 20, 128, 64, 36, 144, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 20, 128, 64, 36, 144, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 38, 172, 128, 64, 36, 144, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 38, 204, 128, 64, 37, 196, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 38, 236, 128, 64, 36, 144, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 20, 128, 64, 39, 20, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 39, 92, 128, 64, 39, 64, 3, 224]}, {"55059603": [8, 52, 162]}, {"55059608": [144, 136]}, {"55059611": [125, 52, 1]}, {"55059615": [255, 17, 1]}, {"55059619": [2, 52, 2]}, {"55059623": [8, 52, 2]}, {"55059627": [9, 3, 224]}, {"55059631": [8]}, {"55059636": [144, 136]}, {"55059639": [163, 49, 8]}, {"55059643": [192, 17]}, {"55059647": [5, 52, 2]}, {"55059651": [84, 52, 1]}, {"55059655": [64, 17, 1]}, {"55059659": [2, 52, 2]}, {"55059663": [53, 52, 2]}, {"55059667": [54, 3, 224]}, {"55059671": [8]}, {"55059676": [144, 136]}, {"55059679": [163, 49, 8]}, {"55059683": [24, 17]}, {"55059687": [5, 52, 2]}, {"55059691": [50, 52, 1]}, {"55059695": [8, 17, 1]}, {"55059699": [2, 52, 2]}, {"55059703": [51, 52, 2]}, {"55059707": [52, 3, 224]}, {"55059711": [8]}, {"55059716": [144, 136]}, {"55059719": [163, 49, 8]}, {"55059723": [3, 17]}, {"55059727": [5, 52, 2]}, {"55059731": [4, 52, 1]}, {"55059735": [1, 17, 1]}, {"55059739": [2, 52, 2]}, {"55059743": [48, 52, 2]}, {"55059747": [49, 3, 224]}, {"55059751": [8]}, {"55059756": [144, 136]}, {"55059759": [162, 49, 8]}, {"55059763": [192, 17]}, {"55059767": [5, 52, 2]}, {"55059771": [5, 52, 1]}, {"55059775": [64, 17, 1]}, {"55059779": [2, 52, 2]}, {"55059783": [96, 52, 2]}, {"55059787": [123, 3, 224]}, {"55059791": [8]}, {"55059796": [144, 136]}, {"55059799": [162, 49, 8]}, {"55059803": [48, 17]}, {"55059807": [2, 52, 2]}, {"55059811": [69, 52, 2]}, {"55059815": [70, 3, 224]}, {"55059819": [8]}, {"55059824": [144, 136]}, {"55059827": [162, 49, 8]}, {"55059831": [6, 17]}, {"55059835": [2, 52, 2]}, {"55059839": [55, 52, 2]}, {"55059843": [56, 3, 224]}, {"55059847": [8]}, {"55059852": [144, 136]}, {"55059855": [161, 49, 8]}, {"55059859": [32, 17]}, {"55059863": [2, 52, 2]}, {"55059867": [121, 52, 2]}, {"55059871": [122, 3, 224]}, {"55059875": [8]}, {"55059880": [144, 136]}, {"55059883": [161, 49, 8]}, {"55059887": [4, 17]}, {"55059891": [2, 52, 2]}, {"55059895": [119, 52, 2]}, {"55059899": [120, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [50, 17]}, {"55059915": [2, 52, 2]}, {"55059919": [192, 52, 2]}, {"55059923": [193, 3, 224]}, {"55059927": [8]}, {"55059932": [144, 136]}, {"55059935": [163, 49, 8]}, {"55059939": [3, 17]}, {"55059943": [2, 52, 2]}, {"55059947": [77, 52, 162]}, {"55059952": [3, 224]}, {"55059955": [8]}, {"55059960": [144, 136]}, {"55059963": [163, 49, 8]}, {"55059967": [24, 17]}, {"55059971": [2, 52, 2]}, {"55059975": [77, 52, 162]}, {"55059980": [3, 224]}, {"55059983": [8]}, {"55059988": [3, 224]}, {"55059991": [8]}, {"55059996": [52, 8]}, {"55059999": [1, 160, 136]}, {"55060003": [62, 3, 224]}, {"55060007": [8]}, {"55060012": [36, 136]}, {"55060015": [134, 36, 9, 255, 255, 37, 41]}, {"55060023": [1, 52, 1]}, {"55060027": [3]}, {"55060029": [41, 8, 42, 20, 32]}, {"55060035": [7]}, {"55060040": [1, 9, 80, 33, 145, 75]}, {"55060048": [52, 1]}, {"55060051": [255, 21, 97, 255, 247]}, {"55060060": [161, 69]}, {"55060064": [3, 224]}, {"55060067": [8]}, {"55060072": [36, 136]}, {"55060075": [168, 1, 6, 64, 33, 145, 9]}, {"55060084": [1, 37, 72, 37, 161, 9]}, {"55060092": [3, 224]}, {"55060095": [8]}, {"55060100": [36, 136]}, {"55060103": [188, 1, 5, 64, 33, 129, 9]}, {"55060112": [5, 33]}, {"55060115": [2]}, {"55060120": [52, 9]}, {"55060124": [37, 41]}, {"55060127": [1, 161, 9]}, {"55060132": [3, 224]}, {"55060135": [8]}, {"55060140": [52, 8]}, {"55060143": [1, 160, 136]}, {"55060147": [61, 52, 8]}, {"55060151": [20, 160, 136]}, {"55060155": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060167": [8]}, {"55060172": [52, 8]}, {"55060175": [1, 160, 136]}, {"55060179": [50, 160, 136]}, {"55060183": [58, 52, 8]}, {"55060187": [48, 164, 136, 19, 244, 160, 136]}, {"55060195": [51, 3, 224]}, {"55060199": [8]}, {"55060204": [52, 8]}, {"55060207": [2, 160, 136]}, {"55060211": [50, 52, 8]}, {"55060215": [1, 160, 136]}, {"55060219": [58, 160, 136]}, {"55060223": [60, 52, 8]}, {"55060227": [96, 164, 136, 19, 244, 160, 136]}, {"55060235": [51, 3, 224]}, {"55060239": [8]}, {"55060244": [144, 136]}, {"55060247": [124, 52, 1]}, {"55060251": [255, 17, 1]}, {"55060255": [6, 52, 2]}, {"55060259": [107, 144, 136]}, {"55060263": [148, 45, 8]}, {"55060267": [6, 17]}, {"55060271": [2, 52, 2]}, {"55060275": [106, 52, 2]}, {"55060279": [3, 3, 224]}, {"55060283": [8]}, {"55060288": [144, 136]}, {"55060291": [123, 52, 1]}, {"55060295": [255, 17, 1]}, {"55060299": [2, 52, 162]}, {"55060304": [52, 2]}, {"55060307": [12, 3, 224]}, {"55060311": [8]}, {"55060316": [52, 8]}, {"55060319": [7, 160, 136]}, {"55060323": [123, 3, 224]}, {"55060327": [8]}, {"55060332": [48, 132]}, {"55060335": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060347": [140, 16, 129]}, {"55060351": [22, 145, 2]}, {"55060355": [117, 52, 1]}, {"55060359": [141, 16, 129]}, {"55060363": [19, 145, 2]}, {"55060367": [117, 16, 128]}, {"55060371": [17, 145, 2]}, {"55060375": [116, 52, 1]}, {"55060379": [138, 16, 129]}, {"55060383": [14, 145, 2]}, {"55060387": [116, 52, 1]}, {"55060391": [139, 16, 129]}, {"55060395": [11, 145, 2]}, {"55060399": [116, 52, 1]}, {"55060403": [88, 16, 129]}, {"55060407": [8, 52, 2]}, {"55060412": [52, 1]}, {"55060415": [120, 16, 129]}, {"55060419": [5, 52, 2]}, {"55060424": [52, 1]}, {"55060427": [121, 16, 129]}, {"55060431": [2, 52, 2]}, {"55060436": [52, 2]}, {"55060439": [255, 3, 224]}, {"55060443": [8]}, {"55060448": [39, 189, 255, 224, 175, 191]}, {"55060455": [16, 175, 176]}, {"55060459": [20, 12, 16, 10, 199]}, {"55060468": [4, 65]}, {"55060471": [2]}, {"55060476": [52, 2]}, {"55060479": [91]}, {"55060481": [64, 32, 33, 12, 16, 11, 45]}, {"55060492": [16, 96]}, {"55060495": [18, 175, 163]}, {"55060499": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060508": [133, 9]}, {"55060511": [2, 17, 32]}, {"55060515": [3, 52, 10]}, {"55060519": [1, 16]}, {"55060523": [8, 165, 10]}, {"55060528": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060539": [6, 144, 102]}, {"55060543": [7, 140, 105]}, {"55060547": [8, 1, 32, 248, 9]}, {"55060556": [143, 163]}, {"55060559": [28, 144, 101]}, {"55060563": [3, 16]}, {"55060567": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060579": [6]}, {"55060581": [74]}, {"55060583": [24]}, {"55060586": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060596": [60, 8, 128, 64, 37, 8, 32]}, {"55060604": [133, 9]}, {"55060607": [2, 17, 32]}, {"55060611": [3, 52, 10]}, {"55060615": [1, 165, 10]}, {"55060620": [52, 5]}, {"55060623": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060635": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060646": [48, 33, 143, 191]}, {"55060651": [16, 143, 176]}, {"55060655": [20, 39, 189]}, {"55060659": [32, 3, 224]}, {"55060663": [8]}, {"55060668": [143, 166]}, {"55060671": [48, 132, 197]}, {"55060675": [4, 8, 16, 10, 55]}, {"55060684": [143, 185]}, {"55060687": [44, 135, 37]}, {"55060691": [4, 8, 16, 10, 55]}, {"55060700": [60, 10, 128, 64, 37, 74, 32, 4, 141, 75]}, {"55060711": [12, 17, 96]}, {"55060715": [2]}, {"55060720": [149, 69]}, {"55060723": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060736": [60, 9, 128, 64, 37, 41, 32, 20, 129, 42]}, {"55060747": [3, 5, 64]}, {"55060751": [2, 1, 42, 72, 32, 161, 32]}, {"55060760": [3, 224]}, {"55060763": [8]}, {"55060768": [60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55060779": [12, 17, 32]}, {"55060783": [2]}, {"55060788": [129, 3]}, {"55060791": [2]}, {"55060793": [3, 15, 195]}, {"55060797": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55060811": [8]}, {"55060816": [144, 69]}, {"55060819": [3, 60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55060831": [12, 17, 32]}, {"55060835": [2]}, {"55060840": [145, 5]}, {"55060843": [3, 3, 224]}, {"55060847": [8]}, {"55060852": [143, 162]}, {"55060855": [36, 144, 69]}, {"55060860": [60, 8, 128, 64, 37, 8, 32]}, {"55060868": [133, 9]}, {"55060871": [2, 17, 32]}, {"55060875": [4, 52, 10]}, {"55060879": [1, 165, 10]}, {"55060884": [16]}, {"55060887": [24, 52, 5]}, {"55060891": [65, 60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55060903": [12, 17, 32]}, {"55060907": [19]}, {"55060912": [145, 5]}, {"55060915": [1, 175, 164]}, {"55060920": [175, 165]}, {"55060923": [4, 175, 166]}, {"55060927": [8, 39, 189, 255, 232, 175, 191]}, {"55060935": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55060947": [6, 145, 6]}, {"55060951": [7, 141, 9]}, {"55060955": [8, 1, 32, 248, 9]}, {"55060964": [143, 191]}, {"55060967": [16, 39, 189]}, {"55060971": [24, 143, 164]}, {"55060976": [143, 165]}, {"55060979": [4, 143, 166]}, {"55060983": [8, 3, 224]}, {"55060987": [8]}, {"55060992": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061003": [16, 175, 163]}, {"55061007": [20, 175, 191]}, {"55061011": [24, 12, 16, 10, 141]}, {"55061020": [143, 162]}, {"55061023": [16, 143, 163]}, {"55061027": [20, 143, 191]}, {"55061031": [24, 39, 189]}, {"55061035": [32, 3, 224]}, {"55061039": [8]}, {"55061044": [39, 189, 255, 232, 175, 191]}, {"55061051": [16, 60, 8, 128, 64, 37, 8, 32, 4, 173]}, {"55061064": [173]}, {"55061067": [4, 173]}, {"55061071": [8, 173]}, {"55061075": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061091": [42]}, {"55061097": [9, 15, 195, 1, 33, 32, 38]}, {"55061105": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 199]}, {"55061120": [4, 64]}, {"55061123": [34]}, {"55061128": [52, 68]}, {"55061132": [12, 16, 11, 45]}, {"55061140": [16, 96]}, {"55061143": [12]}, {"55061148": [60, 8, 128, 64, 37, 8, 32, 4, 140, 105]}, {"55061160": [173, 9]}, {"55061164": [140, 105]}, {"55061167": [4, 173, 9]}, {"55061171": [4, 140, 105]}, {"55061175": [8, 173, 9]}, {"55061179": [8, 52, 9]}, {"55061183": [1, 173, 9]}, {"55061187": [12, 144, 98]}, {"55061192": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061208": [52, 1]}, {"55061211": [10, 21, 65]}, {"55061215": [6]}, {"55061220": [149, 42]}, {"55061223": [28, 49, 74, 240, 31]}, {"55061229": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061239": [28, 129, 9, 4, 36, 5, 33]}, {"55061247": [2]}, {"55061253": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061263": [16, 39, 189]}, {"55061267": [24, 3, 224]}, {"55061271": [8]}, {"55061276": [39, 189, 255, 232, 175, 191]}, {"55061283": [16, 12, 16, 10, 213]}, {"55061292": [36, 1, 255, 255, 16, 65]}, {"55061299": [4]}, {"55061304": [52, 68]}, {"55061308": [12, 16, 11, 9]}, {"55061316": [143, 191]}, {"55061319": [16, 39, 189]}, {"55061323": [24, 3, 224]}, {"55061327": [8]}, {"55061332": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061343": [164, 52, 8]}, {"55061348": [52, 137]}, {"55061352": [148, 170]}, {"55061356": [52, 1, 1, 156, 21, 65]}, {"55061363": [8]}, {"55061368": [52, 8]}, {"55061371": [3, 148, 171]}, {"55061375": [28, 49, 105]}, {"55061379": [255, 49, 98, 31]}, {"55061385": [2, 18, 2, 16]}, {"55061391": [31]}, {"55061396": [52, 1]}, {"55061399": [10, 21, 65]}, {"55061403": [14]}, {"55061408": [148, 171]}, {"55061411": [28, 52, 1]}, {"55061415": [16, 20, 65]}, {"55061419": [8]}, {"55061424": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061435": [4]}, {"55061440": [36, 2, 255, 255, 16]}, {"55061447": [21]}, {"55061452": [52, 8]}, {"55061455": [1, 49, 105]}, {"55061459": [31, 52, 1]}, {"55061463": [21, 21, 65]}, {"55061467": [12]}, {"55061472": [52, 1]}, {"55061475": [62, 16, 129]}, {"55061479": [7]}, {"55061484": [52, 1]}, {"55061487": [66, 16, 129]}, {"55061491": [4]}, {"55061496": [36, 2, 255, 255, 16]}, {"55061503": [7]}, {"55061508": [52, 8]}, {"55061511": [2, 144, 169, 1, 65]}, {"55061517": [2, 18]}, {"55061521": [72, 16, 37]}, {"55061525": [2, 18]}, {"55061529": [73, 16, 37, 3, 224]}, {"55061535": [8]}, {"55061540": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061552": [129, 9]}, {"55061556": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061579": [4, 141, 9]}, {"55061584": [17, 32]}, {"55061587": [22]}, {"55061593": [9, 82, 2, 49, 75, 248]}, {"55061601": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061624": [49, 34]}, {"55061627": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061648": [60, 12, 128, 64, 37, 140, 28]}, {"55061656": [129, 140]}, {"55061660": [17, 108]}, {"55061663": [3, 165, 32]}, {"55061667": [2, 161, 43]}, {"55061671": [2, 161, 34]}, {"55061675": [3, 3, 224]}, {"55061679": [8]}, {"55061684": [39, 189, 255, 224, 175, 176]}, {"55061691": [16, 175, 177]}, {"55061695": [20, 175, 191]}, {"55061699": [24, 52, 130]}, {"55061704": [52, 80]}, {"55061708": [38, 8, 255, 128, 5]}, {"55061715": [18]}, {"55061720": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55061731": [16, 1, 9]}, {"55061735": [24]}, {"55061738": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061756": [142, 40]}, {"55061759": [12, 1]}, {"55061762": [248, 9]}, {"55061768": [20, 80, 255, 239]}, {"55061776": [54, 35]}, {"55061780": [16]}, {"55061783": [2]}, {"55061788": [52, 3]}, {"55061792": [143, 176]}, {"55061795": [16, 143, 177]}, {"55061799": [20, 143, 191]}, {"55061803": [24, 39, 189]}, {"55061807": [32, 3, 224]}, {"55061811": [8]}, {"55061816": [140, 136, 29, 44, 52, 9]}, {"55061823": [1]}, {"55061825": [9, 78]}, {"55061828": [1, 9, 16, 36, 16, 64]}, {"55061835": [36]}, {"55061840": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55061855": [164, 52, 1]}, {"55061859": [61, 17, 129]}, {"55061863": [10]}, {"55061869": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55061879": [25]}, {"55061884": [52, 13]}, {"55061887": [1, 161, 141, 29, 40, 37, 74]}, {"55061895": [3, 16]}, {"55061899": [9]}, {"55061904": [52, 12]}, {"55061907": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55061923": [14]}, {"55061928": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55061964": [60, 9, 128, 64, 37, 41, 32, 20, 161, 40]}, {"55061976": [52, 2]}, {"55061980": [3, 224]}, {"55061983": [8]}, {"55061988": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062000": [16]}, {"55062003": [11]}, {"55062008": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062020": [16]}, {"55062023": [6]}, {"55062028": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062040": [16]}, {"55062043": [1]}, {"55062048": [60, 9, 128, 64, 37, 41, 32, 20, 60, 10, 128, 64, 37, 74, 32, 23, 129, 44]}, {"55062068": [17, 136]}, {"55062071": [11, 33, 41]}, {"55062075": [1, 21, 42, 255, 252]}, {"55062084": [60, 9, 128, 64, 37, 41, 32, 19, 33, 41]}, {"55062095": [1, 17, 42]}, {"55062099": [4, 129, 44]}, {"55062104": [21, 128, 255, 252]}, {"55062112": [161, 40]}, {"55062116": [3, 224]}, {"55062119": [8]}, {"55062124": [175, 164]}, {"55062127": [104, 175, 165]}, {"55062131": [108, 175, 166]}, {"55062135": [112, 175, 167]}, {"55062139": [116, 39, 189, 255, 232, 175, 163]}, {"55062147": [16, 175, 191]}, {"55062151": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062167": [32, 21]}, {"55062171": [31]}, {"55062176": [60, 9, 128, 64, 37, 41, 32, 23, 52, 10]}, {"55062187": [255, 161, 42]}, {"55062192": [60, 9, 128, 64, 37, 41, 32, 20, 36, 10, 255, 255, 52, 12]}, {"55062207": [3, 33, 74]}, {"55062211": [1, 17, 76]}, {"55062215": [20, 1, 42, 88, 32, 129, 104]}, {"55062224": [17]}, {"55062226": [255, 251]}, {"55062232": [60, 9, 128, 64, 37, 41, 32, 23, 161, 42]}, {"55062244": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062255": [1, 165, 42]}, {"55062260": [60, 9, 128, 65, 52, 10]}, {"55062267": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 141]}, {"55062296": [143, 163]}, {"55062299": [16, 143, 191]}, {"55062303": [20, 39, 189]}, {"55062307": [24, 143, 164]}, {"55062311": [104, 143, 165]}, {"55062315": [108, 143, 166]}, {"55062319": [112, 143, 167]}, {"55062323": [116, 132, 110, 19, 196, 3, 224]}, {"55062331": [8]}, {"55062336": [147, 25]}, {"55062339": [116, 52, 1]}, {"55062343": [255, 23, 33]}, {"55062347": [2]}, {"55062352": [52, 25]}, {"55062355": [44, 3, 224]}, {"55062359": [8, 167, 185]}, {"55062363": [154, 147, 44]}, {"55062367": [116, 52, 1]}, {"55062371": [255, 21, 129]}, {"55062375": [2]}, {"55062380": [52, 12]}, {"55062383": [44, 3, 224]}, {"55062387": [8]}, {"55062392": [145, 174]}, {"55062395": [116, 52, 1]}, {"55062399": [255, 21, 193]}, {"55062403": [2]}, {"55062408": [52, 14]}, {"55062411": [44, 3, 224]}, {"55062415": [8, 167, 174]}, {"55062419": [154, 145, 207]}, {"55062423": [116, 52, 1]}, {"55062427": [255, 21, 225]}, {"55062431": [2]}, {"55062436": [52, 15]}, {"55062439": [44, 3, 224]}, {"55062443": [8, 167, 175]}, {"55062447": [154, 60, 8, 128, 64, 37, 8, 32, 24, 142, 9]}, {"55062459": [104, 173, 9]}, {"55062464": [142, 9]}, {"55062467": [108, 173, 9]}, {"55062471": [4, 150, 9]}, {"55062475": [112, 165, 9]}, {"55062479": [8, 150, 9]}, {"55062483": [156, 165, 9]}, {"55062487": [10, 3, 224]}, {"55062491": [8, 142, 14]}, {"55062495": [4, 39, 189, 255, 224, 175, 176]}, {"55062503": [16, 175, 177]}, {"55062507": [20, 175, 191]}, {"55062511": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 24, 142, 8]}, {"55062531": [4, 17]}, {"55062535": [5]}, {"55062540": [12, 16, 12, 34]}, {"55062548": [16]}, {"55062551": [3]}, {"55062556": [12, 16, 12, 53]}, {"55062564": [12, 16, 12, 21, 52, 4]}, {"55062572": [12, 16, 12, 21, 52, 4]}, {"55062579": [1, 12, 16, 12, 21, 52, 4]}, {"55062587": [2, 143, 176]}, {"55062591": [16, 143, 177]}, {"55062595": [20, 143, 191]}, {"55062599": [24, 39, 189]}, {"55062603": [32, 3, 224]}, {"55062607": [8]}, {"55062612": [2, 4, 64, 33, 145, 9]}, {"55062619": [108, 52, 1]}, {"55062623": [255, 17, 33]}, {"55062627": [7]}, {"55062632": [2, 9, 72, 33, 145, 41]}, {"55062639": [116, 52, 1]}, {"55062643": [44, 17, 33]}, {"55062647": [2]}, {"55062652": [161, 9]}, {"55062655": [105, 3, 224]}, {"55062659": [8]}, {"55062664": [39, 189, 255, 232, 175, 191]}, {"55062671": [16, 142, 40]}, {"55062676": [174, 8]}, {"55062679": [64, 142, 40]}, {"55062683": [4, 174, 8]}, {"55062687": [68, 150, 40]}, {"55062691": [8, 166, 8]}, {"55062695": [72, 162]}, {"55062698": [15, 51, 146, 8]}, {"55062703": [74, 52, 1]}, {"55062707": [255, 21, 1]}, {"55062711": [3]}, {"55062716": [12, 16, 12, 67]}, {"55062724": [143, 191]}, {"55062727": [16, 39, 189]}, {"55062731": [24, 3, 224]}, {"55062735": [8]}, {"55062740": [142, 8]}, {"55062743": [64, 174, 8]}, {"55062747": [104, 142, 8]}, {"55062751": [68, 174, 8]}, {"55062755": [108, 150, 8]}, {"55062759": [72, 166, 8]}, {"55062763": [112, 146, 8]}, {"55062767": [104, 52, 1]}, {"55062771": [255, 21, 1]}, {"55062775": [3]}, {"55062780": [52, 8]}, {"55062783": [1, 162, 8, 15, 51, 3, 224]}, {"55062791": [8]}, {"55062796": [39, 189, 255, 232, 175, 191]}, {"55062803": [16, 150, 8]}, {"55062807": [156, 49, 8]}, {"55062811": [64, 17]}, {"55062815": [5]}, {"55062820": [150, 8]}, {"55062823": [112, 49, 8, 255, 15, 53, 8]}, {"55062831": [48, 166, 8]}, {"55062835": [112, 146, 40]}, {"55062839": [1, 162, 8]}, {"55062843": [105, 150, 40]}, {"55062847": [2, 166, 8]}, {"55062851": [106, 142, 40]}, {"55062855": [4, 174, 8]}, {"55062859": [108, 12, 16, 12, 93, 52, 4]}, {"55062868": [12, 16, 12, 93, 52, 4]}, {"55062875": [1, 12, 16, 12, 93, 52, 4]}, {"55062883": [2, 143, 191]}, {"55062887": [16, 39, 189]}, {"55062891": [24, 3, 224]}, {"55062895": [8]}, {"55062900": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 50, 32, 145, 10]}, {"55062915": [108, 52, 1]}, {"55062919": [255, 17, 65]}, {"55062923": [5]}, {"55062928": [1, 42, 72, 33, 145, 41]}, {"55062936": [21, 32]}, {"55062939": [28]}, {"55062944": [60, 9, 128, 64, 37, 41, 50, 19, 37, 41]}, {"55062955": [1, 145, 42]}, {"55062960": [17, 64]}, {"55062963": [19]}, {"55062968": [2, 10, 88, 33, 145, 107]}, {"55062975": [116, 52, 1]}, {"55062979": [255, 17, 97, 255, 248]}, {"55062988": [146, 12]}, {"55062991": [108, 17, 138, 255, 245]}, {"55063000": [146, 12]}, {"55063003": [109, 17, 138, 255, 242]}, {"55063012": [146, 12]}, {"55063015": [110, 17, 138, 255, 239]}, {"55063024": [161, 11]}, {"55063027": [105, 161, 10]}, {"55063031": [108, 16]}, {"55063035": [4]}, {"55063040": [52, 9]}, {"55063043": [255, 161, 9]}, {"55063047": [105, 161, 9]}, {"55063051": [108, 3, 224]}, {"55063055": [8]}, {"55063060": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063073": [1, 1, 1, 1, 1]}, {"55063079": [1, 1, 1, 1, 1]}, {"55063085": [1]}, {"55063087": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063097": [51, 8, 33, 32, 15]}, {"55063103": [71, 21, 234]}, {"55063107": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063119": [164]}, {"55063121": [15, 122, 3, 20, 64]}, {"55063127": [5, 52, 2, 72, 48, 21, 226]}, {"55063135": [7]}, {"55063140": [36, 25]}, {"55063143": [3, 16]}, {"55063147": [4, 52, 2, 99, 17, 21, 226]}, {"55063155": [2]}, {"55063160": [36, 25]}, {"55063163": [3, 3, 224]}, {"55063167": [8]}, {"55063172": [141, 173, 138, 160, 52, 2, 128]}, {"55063180": [16, 77]}, {"55063183": [2]}, {"55063188": [16]}, {"55063191": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063207": [1, 16, 64]}, {"55063211": [2]}, {"55063216": [16]}, {"55063219": [2, 52, 2]}, {"55063223": [1, 161, 226, 28, 191, 3, 224]}, {"55063231": [8]}, {"55063237": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063251": [164]}, {"55063253": [15, 122, 3, 20, 64]}, {"55063259": [5, 52, 2, 72, 48, 21, 226]}, {"55063267": [7]}, {"55063272": [36, 25]}, {"55063275": [3, 16]}, {"55063279": [4, 52, 2, 99, 17, 21, 226]}, {"55063287": [2]}, {"55063292": [36, 25]}, {"55063295": [3, 3, 224]}, {"55063299": [8]}, {"55063304": [162, 37]}, {"55063307": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063319": [4, 142, 10]}, {"55063324": [17, 64]}, {"55063327": [11]}, {"55063333": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063345": [24, 194, 2, 23]}, {"55063351": [3, 49, 89]}, {"55063355": [255, 129, 234]}, {"55063360": [3, 42, 200, 37, 8, 16, 12, 197, 161, 249]}, {"55063372": [3, 224]}, {"55063375": [8]}] \ No newline at end of file +[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 183]}, {"11311804": [12, 16, 11, 186]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 176, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 72]}, {"11427296": [12, 16, 11, 186, 52, 2, 0, 255, 16, 0, 5, 97]}, {"11427312": [12, 16, 12, 241]}, {"11431496": [12, 16, 11, 181, 1, 15, 192, 33]}, {"11559932": [52, 14, 0, 2, 130]}, {"11559938": [14, 222]}, {"11562028": [12, 16, 13, 18]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 1]}, {"11882076": [12, 16, 12, 222]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 39, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 46, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 53, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 32, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 127]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 18]}, {"12427480": [12, 16, 10, 102]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 106]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 11, 235, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 139]}, {"12491480": [12, 16, 10, 148]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 133]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 60]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 140, 73]}, {"14149503": [164]}, {"14149512": [2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 189]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 205]}, {"14624335": [118]}, {"14720868": [52, 14, 0, 4, 128]}, {"14720874": [14, 222]}, {"14720944": [12, 16, 11, 197]}, {"14848896": [3, 224, 104, 33, 12, 16, 11, 228, 52, 2]}, {"14848909": [160, 248, 33]}, {"14848932": [161, 248, 14, 223]}, {"14872723": [52]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 236, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 48, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 76, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 104, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 220, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 108, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 140, 128, 64, 38, 132, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 172, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 39, 212, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 28, 128, 64, 40]}, {"55059600": [83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 3, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 44, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [2, 52, 2]}, {"55060003": [69, 52, 2]}, {"55060007": [70, 3, 224]}, {"55060011": [8]}, {"55060016": [144, 136]}, {"55060019": [162, 49, 8]}, {"55060023": [6, 17]}, {"55060027": [2, 52, 2]}, {"55060031": [55, 52, 2]}, {"55060035": [56, 3, 224]}, {"55060039": [8]}, {"55060044": [144, 136]}, {"55060047": [161, 49, 8]}, {"55060051": [32, 17]}, {"55060055": [2, 52, 2]}, {"55060059": [121, 52, 2]}, {"55060063": [122, 3, 224]}, {"55060067": [8]}, {"55060072": [144, 136]}, {"55060075": [161, 49, 8]}, {"55060079": [4, 17]}, {"55060083": [2, 52, 2]}, {"55060087": [119, 52, 2]}, {"55060091": [120, 3, 224]}, {"55060095": [8]}, {"55060100": [144, 136]}, {"55060103": [50, 17]}, {"55060107": [2, 52, 2]}, {"55060111": [192, 52, 2]}, {"55060115": [193, 3, 224]}, {"55060119": [8]}, {"55060124": [144, 136]}, {"55060127": [163, 49, 8]}, {"55060131": [3, 17]}, {"55060135": [2, 52, 2]}, {"55060139": [77, 52, 162]}, {"55060144": [3, 224]}, {"55060147": [8]}, {"55060152": [144, 136]}, {"55060155": [163, 49, 8]}, {"55060159": [24, 17]}, {"55060163": [2, 52, 2]}, {"55060167": [77, 52, 162]}, {"55060172": [3, 224]}, {"55060175": [8]}, {"55060180": [3, 224]}, {"55060183": [8]}, {"55060188": [52, 8]}, {"55060191": [1, 160, 136]}, {"55060195": [62, 3, 224]}, {"55060199": [8]}, {"55060204": [36, 136]}, {"55060207": [134, 36, 9, 255, 255, 37, 41]}, {"55060215": [1, 52, 1]}, {"55060219": [3]}, {"55060221": [41, 8, 42, 20, 32]}, {"55060227": [7]}, {"55060232": [1, 9, 80, 33, 145, 75]}, {"55060240": [52, 1]}, {"55060243": [255, 21, 97, 255, 247]}, {"55060252": [161, 69]}, {"55060256": [3, 224]}, {"55060259": [8]}, {"55060264": [36, 136]}, {"55060267": [168, 1, 6, 64, 33, 145, 9]}, {"55060276": [1, 37, 72, 37, 161, 9]}, {"55060284": [3, 224]}, {"55060287": [8]}, {"55060292": [36, 136]}, {"55060295": [188, 1, 5, 64, 33, 129, 9]}, {"55060304": [5, 33]}, {"55060307": [2]}, {"55060312": [52, 9]}, {"55060316": [37, 41]}, {"55060319": [1, 161, 9]}, {"55060324": [3, 224]}, {"55060327": [8]}, {"55060332": [52, 8]}, {"55060335": [1, 160, 136]}, {"55060339": [61, 52, 8]}, {"55060343": [20, 160, 136]}, {"55060347": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [50, 160, 136]}, {"55060375": [58, 52, 8]}, {"55060379": [48, 164, 136, 19, 244, 160, 136]}, {"55060387": [51, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [2, 160, 136]}, {"55060403": [50, 52, 8]}, {"55060407": [1, 160, 136]}, {"55060411": [58, 160, 136]}, {"55060415": [60, 52, 8]}, {"55060419": [96, 164, 136, 19, 244, 160, 136]}, {"55060427": [51, 3, 224]}, {"55060431": [8]}, {"55060436": [144, 136]}, {"55060439": [124, 52, 1]}, {"55060443": [255, 17, 1]}, {"55060447": [6, 52, 2]}, {"55060451": [107, 144, 136]}, {"55060455": [148, 45, 8]}, {"55060459": [6, 17]}, {"55060463": [2, 52, 2]}, {"55060467": [106, 52, 2]}, {"55060471": [3, 3, 224]}, {"55060475": [8]}, {"55060480": [144, 136]}, {"55060483": [123, 52, 1]}, {"55060487": [255, 17, 1]}, {"55060491": [2, 52, 162]}, {"55060496": [52, 2]}, {"55060499": [12, 3, 224]}, {"55060503": [8]}, {"55060508": [52, 8]}, {"55060511": [7, 160, 136]}, {"55060515": [123, 3, 224]}, {"55060519": [8]}, {"55060524": [52, 8]}, {"55060527": [1]}, {"55060529": [168, 64, 4, 140, 137]}, {"55060535": [164, 1, 40, 72, 37, 172, 137]}, {"55060543": [164, 3, 224]}, {"55060547": [8]}, {"55060552": [48, 132]}, {"55060555": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060567": [140, 16, 129]}, {"55060571": [22, 145, 2]}, {"55060575": [117, 52, 1]}, {"55060579": [141, 16, 129]}, {"55060583": [19, 145, 2]}, {"55060587": [117, 16, 128]}, {"55060591": [17, 145, 2]}, {"55060595": [116, 52, 1]}, {"55060599": [138, 16, 129]}, {"55060603": [14, 145, 2]}, {"55060607": [116, 52, 1]}, {"55060611": [139, 16, 129]}, {"55060615": [11, 145, 2]}, {"55060619": [116, 52, 1]}, {"55060623": [88, 16, 129]}, {"55060627": [8, 52, 2]}, {"55060632": [52, 1]}, {"55060635": [120, 16, 129]}, {"55060639": [5, 52, 2]}, {"55060644": [52, 1]}, {"55060647": [121, 16, 129]}, {"55060651": [2, 52, 2]}, {"55060656": [52, 2]}, {"55060659": [255, 3, 224]}, {"55060663": [8]}, {"55060668": [39, 189, 255, 224, 175, 191]}, {"55060675": [16, 175, 176]}, {"55060679": [20, 12, 16, 10, 254]}, {"55060688": [4, 65]}, {"55060691": [2]}, {"55060696": [52, 2]}, {"55060699": [91]}, {"55060701": [64, 32, 33, 12, 16, 11, 100]}, {"55060712": [16, 96]}, {"55060715": [18, 175, 163]}, {"55060719": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060728": [133, 9]}, {"55060731": [2, 17, 32]}, {"55060735": [3, 52, 10]}, {"55060739": [1, 16]}, {"55060743": [8, 165, 10]}, {"55060748": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060759": [6, 144, 102]}, {"55060763": [7, 140, 105]}, {"55060767": [8, 1, 32, 248, 9]}, {"55060776": [143, 163]}, {"55060779": [28, 144, 101]}, {"55060783": [3, 16]}, {"55060787": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060799": [6]}, {"55060801": [74]}, {"55060803": [24]}, {"55060806": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060816": [60, 8, 128, 64, 37, 8, 32]}, {"55060824": [133, 9]}, {"55060827": [2, 17, 32]}, {"55060831": [3, 52, 10]}, {"55060835": [1, 165, 10]}, {"55060840": [52, 5]}, {"55060843": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060855": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060866": [48, 33, 143, 191]}, {"55060871": [16, 143, 176]}, {"55060875": [20, 39, 189]}, {"55060879": [32, 3, 224]}, {"55060883": [8]}, {"55060888": [143, 166]}, {"55060891": [48, 132, 197]}, {"55060895": [4, 8, 16, 10, 110]}, {"55060904": [143, 185]}, {"55060907": [44, 135, 37]}, {"55060911": [4, 8, 16, 10, 110]}, {"55060920": [60, 10, 128, 64, 37, 74, 32, 4, 141, 75]}, {"55060931": [12, 17, 96]}, {"55060935": [2]}, {"55060940": [149, 69]}, {"55060943": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060956": [60, 9, 128, 64, 37, 41, 32, 20, 129, 42]}, {"55060967": [3, 5, 64]}, {"55060971": [2, 1, 42, 72, 32, 161, 32]}, {"55060980": [3, 224]}, {"55060983": [8]}, {"55060988": [60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55060999": [12, 17, 32]}, {"55061003": [2]}, {"55061008": [129, 3]}, {"55061011": [2]}, {"55061013": [3, 15, 195]}, {"55061017": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061031": [8]}, {"55061036": [144, 69]}, {"55061039": [3, 60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55061051": [12, 17, 32]}, {"55061055": [2]}, {"55061060": [145, 5]}, {"55061063": [3, 3, 224]}, {"55061067": [8]}, {"55061072": [143, 162]}, {"55061075": [36, 144, 69]}, {"55061080": [60, 8, 128, 64, 37, 8, 32]}, {"55061088": [133, 9]}, {"55061091": [2, 17, 32]}, {"55061095": [4, 52, 10]}, {"55061099": [1, 165, 10]}, {"55061104": [16]}, {"55061107": [24, 52, 5]}, {"55061111": [65, 60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55061123": [12, 17, 32]}, {"55061127": [19]}, {"55061132": [145, 5]}, {"55061135": [1, 175, 164]}, {"55061140": [175, 165]}, {"55061143": [4, 175, 166]}, {"55061147": [8, 39, 189, 255, 232, 175, 191]}, {"55061155": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061167": [6, 145, 6]}, {"55061171": [7, 141, 9]}, {"55061175": [8, 1, 32, 248, 9]}, {"55061184": [143, 191]}, {"55061187": [16, 39, 189]}, {"55061191": [24, 143, 164]}, {"55061196": [143, 165]}, {"55061199": [4, 143, 166]}, {"55061203": [8, 3, 224]}, {"55061207": [8]}, {"55061212": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061223": [16, 175, 163]}, {"55061227": [20, 175, 191]}, {"55061231": [24, 12, 16, 10, 196]}, {"55061240": [143, 162]}, {"55061243": [16, 143, 163]}, {"55061247": [20, 143, 191]}, {"55061251": [24, 39, 189]}, {"55061255": [32, 3, 224]}, {"55061259": [8]}, {"55061264": [39, 189, 255, 232, 175, 191]}, {"55061271": [16, 60, 8, 128, 64, 37, 8, 32, 4, 173]}, {"55061284": [173]}, {"55061287": [4, 173]}, {"55061291": [8, 173]}, {"55061295": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061311": [42]}, {"55061317": [9, 15, 195, 1, 33, 32, 38]}, {"55061325": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 254]}, {"55061340": [4, 64]}, {"55061343": [34]}, {"55061348": [52, 68]}, {"55061352": [12, 16, 11, 100]}, {"55061360": [16, 96]}, {"55061363": [12]}, {"55061368": [60, 8, 128, 64, 37, 8, 32, 4, 140, 105]}, {"55061380": [173, 9]}, {"55061384": [140, 105]}, {"55061387": [4, 173, 9]}, {"55061391": [4, 140, 105]}, {"55061395": [8, 173, 9]}, {"55061399": [8, 52, 9]}, {"55061403": [1, 173, 9]}, {"55061407": [12, 144, 98]}, {"55061412": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061428": [52, 1]}, {"55061431": [10, 21, 65]}, {"55061435": [6]}, {"55061440": [149, 42]}, {"55061443": [28, 49, 74, 240, 31]}, {"55061449": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061459": [28, 129, 9, 4, 36, 5, 33]}, {"55061467": [2]}, {"55061473": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061483": [16, 39, 189]}, {"55061487": [24, 3, 224]}, {"55061491": [8]}, {"55061496": [39, 189, 255, 232, 175, 191]}, {"55061503": [16, 12, 16, 11, 12]}, {"55061512": [36, 1, 255, 255, 16, 65]}, {"55061519": [4]}, {"55061524": [52, 68]}, {"55061528": [12, 16, 11, 64]}, {"55061536": [143, 191]}, {"55061539": [16, 39, 189]}, {"55061543": [24, 3, 224]}, {"55061547": [8]}, {"55061552": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061563": [164, 52, 8]}, {"55061568": [52, 137]}, {"55061572": [148, 170]}, {"55061576": [52, 1, 1, 156, 21, 65]}, {"55061583": [8]}, {"55061588": [52, 8]}, {"55061591": [3, 148, 171]}, {"55061595": [28, 49, 105]}, {"55061599": [255, 49, 98, 31]}, {"55061605": [2, 18, 2, 16]}, {"55061611": [31]}, {"55061616": [52, 1]}, {"55061619": [10, 21, 65]}, {"55061623": [14]}, {"55061628": [148, 171]}, {"55061631": [28, 52, 1]}, {"55061635": [16, 20, 65]}, {"55061639": [8]}, {"55061644": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061655": [4]}, {"55061660": [36, 2, 255, 255, 16]}, {"55061667": [21]}, {"55061672": [52, 8]}, {"55061675": [1, 49, 105]}, {"55061679": [31, 52, 1]}, {"55061683": [21, 21, 65]}, {"55061687": [12]}, {"55061692": [52, 1]}, {"55061695": [62, 16, 129]}, {"55061699": [7]}, {"55061704": [52, 1]}, {"55061707": [66, 16, 129]}, {"55061711": [4]}, {"55061716": [36, 2, 255, 255, 16]}, {"55061723": [7]}, {"55061728": [52, 8]}, {"55061731": [2, 144, 169, 1, 65]}, {"55061737": [2, 18]}, {"55061741": [72, 16, 37]}, {"55061745": [2, 18]}, {"55061749": [73, 16, 37, 3, 224]}, {"55061755": [8]}, {"55061760": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061772": [129, 9]}, {"55061776": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061799": [4, 141, 9]}, {"55061804": [17, 32]}, {"55061807": [22]}, {"55061813": [9, 82, 2, 49, 75, 248]}, {"55061821": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061844": [49, 34]}, {"55061847": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061868": [60, 12, 128, 64, 37, 140, 28]}, {"55061876": [129, 140]}, {"55061880": [17, 108]}, {"55061883": [3, 165, 32]}, {"55061887": [2, 161, 43]}, {"55061891": [2, 161, 34]}, {"55061895": [3, 3, 224]}, {"55061899": [8]}, {"55061904": [39, 189, 255, 224, 175, 176]}, {"55061911": [16, 175, 177]}, {"55061915": [20, 175, 191]}, {"55061919": [24, 52, 130]}, {"55061924": [52, 80]}, {"55061928": [38, 8, 255, 128, 5]}, {"55061935": [18]}, {"55061940": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55061951": [16, 1, 9]}, {"55061955": [24]}, {"55061958": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061976": [142, 40]}, {"55061979": [12, 1]}, {"55061982": [248, 9]}, {"55061988": [20, 80, 255, 239]}, {"55061996": [54, 35]}, {"55062000": [16]}, {"55062003": [2]}, {"55062008": [52, 3]}, {"55062012": [143, 176]}, {"55062015": [16, 143, 177]}, {"55062019": [20, 143, 191]}, {"55062023": [24, 39, 189]}, {"55062027": [32, 3, 224]}, {"55062031": [8]}, {"55062036": [140, 136, 29, 44, 52, 9]}, {"55062043": [1]}, {"55062045": [9, 78]}, {"55062048": [1, 9, 16, 36, 16, 64]}, {"55062055": [36]}, {"55062060": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062075": [164, 52, 1]}, {"55062079": [61, 17, 129]}, {"55062083": [10]}, {"55062089": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062099": [25]}, {"55062104": [52, 13]}, {"55062107": [1, 161, 141, 29, 40, 37, 74]}, {"55062115": [3, 16]}, {"55062119": [9]}, {"55062124": [52, 12]}, {"55062127": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062143": [14]}, {"55062148": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062184": [60, 9, 128, 64, 37, 41, 32, 20, 161, 40]}, {"55062196": [52, 2]}, {"55062200": [3, 224]}, {"55062203": [8]}, {"55062208": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062220": [16]}, {"55062223": [29]}, {"55062228": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062240": [16]}, {"55062243": [24]}, {"55062248": [52, 8]}, {"55062251": [43, 16]}, {"55062255": [21]}, {"55062260": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062275": [1, 160, 40, 14, 222, 52, 8]}, {"55062283": [43, 16]}, {"55062287": [13]}, {"55062292": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062307": [4, 160, 40, 14, 222, 52, 8]}, {"55062315": [43, 16]}, {"55062319": [5]}, {"55062324": [52, 5]}, {"55062327": [3, 52, 8]}, {"55062331": [43, 16]}, {"55062335": [1]}, {"55062340": [60, 9, 128, 64, 37, 41, 32, 20, 60, 10, 128, 64, 37, 74, 32, 23, 129, 44]}, {"55062360": [17, 136]}, {"55062363": [11, 33, 41]}, {"55062367": [1, 21, 42, 255, 252]}, {"55062376": [60, 9, 128, 64, 37, 41, 32, 19, 33, 41]}, {"55062387": [1, 17, 42]}, {"55062391": [4, 129, 44]}, {"55062396": [21, 128, 255, 252]}, {"55062404": [161, 40]}, {"55062408": [3, 224]}, {"55062411": [8]}, {"55062417": [96, 120, 33, 129, 236, 14, 223, 53, 152]}, {"55062427": [128, 49, 142]}, {"55062431": [128, 52, 3]}, {"55062435": [5, 3, 224]}, {"55062439": [8]}, {"55062444": [175, 164]}, {"55062447": [104, 175, 165]}, {"55062451": [108, 175, 166]}, {"55062455": [112, 175, 167]}, {"55062459": [116, 39, 189, 255, 232, 175, 163]}, {"55062467": [16, 175, 191]}, {"55062471": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062487": [32, 21]}, {"55062491": [31]}, {"55062496": [60, 9, 128, 64, 37, 41, 32, 23, 52, 10]}, {"55062507": [255, 161, 42]}, {"55062512": [60, 9, 128, 64, 37, 41, 32, 20, 36, 10, 255, 255, 52, 12]}, {"55062527": [3, 33, 74]}, {"55062531": [1, 17, 76]}, {"55062535": [20, 1, 42, 88, 32, 129, 104]}, {"55062544": [17]}, {"55062546": [255, 251]}, {"55062552": [60, 9, 128, 64, 37, 41, 32, 23, 161, 42]}, {"55062564": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062575": [1, 165, 42]}, {"55062580": [60, 9, 128, 65, 52, 10]}, {"55062587": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 196]}, {"55062616": [143, 163]}, {"55062619": [16, 143, 191]}, {"55062623": [20, 39, 189]}, {"55062627": [24, 143, 164]}, {"55062631": [104, 143, 165]}, {"55062635": [108, 143, 166]}, {"55062639": [112, 143, 167]}, {"55062643": [116, 132, 110, 19, 196, 3, 224]}, {"55062651": [8]}, {"55062656": [147, 25]}, {"55062659": [116, 52, 1]}, {"55062663": [255, 23, 33]}, {"55062667": [2]}, {"55062672": [52, 25]}, {"55062675": [44, 3, 224]}, {"55062679": [8, 167, 185]}, {"55062683": [154, 147, 44]}, {"55062687": [116, 52, 1]}, {"55062691": [255, 21, 129]}, {"55062695": [2]}, {"55062700": [52, 12]}, {"55062703": [44, 3, 224]}, {"55062707": [8]}, {"55062712": [145, 174]}, {"55062715": [116, 52, 1]}, {"55062719": [255, 21, 193]}, {"55062723": [2]}, {"55062728": [52, 14]}, {"55062731": [44, 3, 224]}, {"55062735": [8, 167, 174]}, {"55062739": [154, 145, 207]}, {"55062743": [116, 52, 1]}, {"55062747": [255, 21, 225]}, {"55062751": [2]}, {"55062756": [52, 15]}, {"55062759": [44, 3, 224]}, {"55062763": [8, 167, 175]}, {"55062767": [154, 60, 8, 128, 64, 37, 8, 32, 24, 142, 9]}, {"55062779": [104, 173, 9]}, {"55062784": [142, 9]}, {"55062787": [108, 173, 9]}, {"55062791": [4, 150, 9]}, {"55062795": [112, 165, 9]}, {"55062799": [8, 150, 9]}, {"55062803": [156, 165, 9]}, {"55062807": [10, 3, 224]}, {"55062811": [8, 142, 14]}, {"55062815": [4, 39, 189, 255, 224, 175, 176]}, {"55062823": [16, 175, 177]}, {"55062827": [20, 175, 191]}, {"55062831": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 24, 142, 8]}, {"55062851": [4, 17]}, {"55062855": [5]}, {"55062860": [12, 16, 12, 114]}, {"55062868": [16]}, {"55062871": [3]}, {"55062876": [12, 16, 12, 133]}, {"55062884": [12, 16, 12, 101, 52, 4]}, {"55062892": [12, 16, 12, 101, 52, 4]}, {"55062899": [1, 12, 16, 12, 101, 52, 4]}, {"55062907": [2, 143, 176]}, {"55062911": [16, 143, 177]}, {"55062915": [20, 143, 191]}, {"55062919": [24, 39, 189]}, {"55062923": [32, 3, 224]}, {"55062927": [8]}, {"55062932": [2, 4, 64, 33, 145, 9]}, {"55062939": [108, 52, 1]}, {"55062943": [255, 17, 33]}, {"55062947": [7]}, {"55062952": [2, 9, 72, 33, 145, 41]}, {"55062959": [116, 52, 1]}, {"55062963": [44, 17, 33]}, {"55062967": [2]}, {"55062972": [161, 9]}, {"55062975": [105, 3, 224]}, {"55062979": [8]}, {"55062984": [39, 189, 255, 232, 175, 191]}, {"55062991": [16, 142, 40]}, {"55062996": [174, 8]}, {"55062999": [64, 142, 40]}, {"55063003": [4, 174, 8]}, {"55063007": [68, 150, 40]}, {"55063011": [8, 166, 8]}, {"55063015": [72, 162]}, {"55063018": [15, 51, 146, 8]}, {"55063023": [74, 52, 1]}, {"55063027": [255, 21, 1]}, {"55063031": [3]}, {"55063036": [12, 16, 12, 147]}, {"55063044": [143, 191]}, {"55063047": [16, 39, 189]}, {"55063051": [24, 3, 224]}, {"55063055": [8]}, {"55063060": [142, 8]}, {"55063063": [64, 174, 8]}, {"55063067": [104, 142, 8]}, {"55063071": [68, 174, 8]}, {"55063075": [108, 150, 8]}, {"55063079": [72, 166, 8]}, {"55063083": [112, 146, 8]}, {"55063087": [104, 52, 1]}, {"55063091": [255, 21, 1]}, {"55063095": [3]}, {"55063100": [52, 8]}, {"55063103": [1, 162, 8, 15, 51, 3, 224]}, {"55063111": [8]}, {"55063116": [39, 189, 255, 232, 175, 191]}, {"55063123": [16, 150, 8]}, {"55063127": [156, 49, 8]}, {"55063131": [64, 17]}, {"55063135": [5]}, {"55063140": [150, 8]}, {"55063143": [112, 49, 8, 255, 15, 53, 8]}, {"55063151": [48, 166, 8]}, {"55063155": [112, 146, 40]}, {"55063159": [1, 162, 8]}, {"55063163": [105, 150, 40]}, {"55063167": [2, 166, 8]}, {"55063171": [106, 142, 40]}, {"55063175": [4, 174, 8]}, {"55063179": [108, 12, 16, 12, 173, 52, 4]}, {"55063188": [12, 16, 12, 173, 52, 4]}, {"55063195": [1, 12, 16, 12, 173, 52, 4]}, {"55063203": [2, 143, 191]}, {"55063207": [16, 39, 189]}, {"55063211": [24, 3, 224]}, {"55063215": [8]}, {"55063220": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 51, 96, 145, 10]}, {"55063235": [108, 52, 1]}, {"55063239": [255, 17, 65]}, {"55063243": [5]}, {"55063248": [1, 42, 72, 33, 145, 41]}, {"55063256": [21, 32]}, {"55063259": [28]}, {"55063264": [60, 9, 128, 64, 37, 41, 51, 83, 37, 41]}, {"55063275": [1, 145, 42]}, {"55063280": [17, 64]}, {"55063283": [19]}, {"55063288": [2, 10, 88, 33, 145, 107]}, {"55063295": [116, 52, 1]}, {"55063299": [255, 17, 97, 255, 248]}, {"55063308": [146, 12]}, {"55063311": [108, 17, 138, 255, 245]}, {"55063320": [146, 12]}, {"55063323": [109, 17, 138, 255, 242]}, {"55063332": [146, 12]}, {"55063335": [110, 17, 138, 255, 239]}, {"55063344": [161, 11]}, {"55063347": [105, 161, 10]}, {"55063351": [108, 16]}, {"55063355": [4]}, {"55063360": [52, 9]}, {"55063363": [255, 161, 9]}, {"55063367": [105, 161, 9]}, {"55063371": [108, 3, 224]}, {"55063375": [8]}, {"55063380": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063393": [1, 1, 1, 1, 1]}, {"55063399": [1, 1, 1, 1, 1]}, {"55063405": [1]}, {"55063407": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063417": [51, 8, 33, 32, 15]}, {"55063423": [71, 21, 234]}, {"55063427": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063439": [164]}, {"55063441": [15, 122, 3, 20, 64]}, {"55063447": [5, 52, 2, 72, 48, 21, 226]}, {"55063455": [7]}, {"55063460": [36, 25]}, {"55063463": [3, 16]}, {"55063467": [4, 52, 2, 99, 17, 21, 226]}, {"55063475": [2]}, {"55063480": [36, 25]}, {"55063483": [3, 3, 224]}, {"55063487": [8]}, {"55063492": [141, 173, 138, 160, 52, 2, 128]}, {"55063500": [16, 77]}, {"55063503": [2]}, {"55063508": [16]}, {"55063511": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063527": [1, 16, 64]}, {"55063531": [2]}, {"55063536": [16]}, {"55063539": [2, 52, 2]}, {"55063543": [1, 161, 226, 28, 191, 3, 224]}, {"55063551": [8]}, {"55063557": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063571": [164]}, {"55063573": [15, 122, 3, 20, 64]}, {"55063579": [5, 52, 2, 72, 48, 21, 226]}, {"55063587": [7]}, {"55063592": [36, 25]}, {"55063595": [3, 16]}, {"55063599": [4, 52, 2, 99, 17, 21, 226]}, {"55063607": [2]}, {"55063612": [36, 25]}, {"55063615": [3, 3, 224]}, {"55063619": [8]}, {"55063624": [162, 37]}, {"55063627": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063639": [4, 142, 10]}, {"55063644": [17, 64]}, {"55063647": [11]}, {"55063653": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063665": [24, 194, 2, 23]}, {"55063671": [3, 49, 89]}, {"55063675": [255, 129, 234]}, {"55063680": [3, 42, 200, 37, 8, 16, 13, 21, 161, 249]}, {"55063692": [3, 224]}, {"55063695": [8]}] \ No newline at end of file diff --git a/version.py b/version.py index 911232007..5711d5cc2 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.25 f.LUM' \ No newline at end of file +__version__ = '2.13.26 f.LUM' \ No newline at end of file From 88d2d0d5aad81b7dc692b1a6c94f2bea360e05bc Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Thu, 26 Jul 2018 12:36:47 -0400 Subject: [PATCH 200/755] Updated README --- README.md | 4 ++++ version.py | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5a264a47b..e8da51440 100644 --- a/README.md +++ b/README.md @@ -78,6 +78,10 @@ Regardless of whether of not you use this option, Malon has been sped up in the The Fairy Ocarina and Ocarina of Time can be shuffled into the item pool with `shuffle_ocarinas`. This means that Saria and the Ocarin of Time will give a random item and that you must find the Ocarina before being able to play any songs. +## Shuffle Songs into the Pool + +Enabling `shuffle_song_items` will make learning songs into items and shuffle the songs into the item pool. Song can appear at any location, and any item can appear at the original song locations. + ## Keysanity Dungeon items (maps, compasses, small keys, boss keys) are shuffled into the item pool at large. diff --git a/version.py b/version.py index 5711d5cc2..11a0ec020 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.26 f.LUM' \ No newline at end of file +__version__ = '2.13.27 f.LUM' \ No newline at end of file From f03641c54fb8a3cbfeb185ba6defe9e6dbdecb03 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Fri, 27 Jul 2018 00:21:21 -0500 Subject: [PATCH 201/755] Fixed Zora's Domain entry logic mistake. --- Rules.py | 2 +- version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Rules.py b/Rules.py index 78290a04b..080adee54 100644 --- a/Rules.py +++ b/Rules.py @@ -141,7 +141,7 @@ def global_rules(world): set_rule(world.get_location('King Zora Moves'), lambda state: state.has('Bottle with Letter')) set_rule(world.get_entrance('Behind King Zora'), lambda state: state.has('Bottle with Letter')) set_rule(world.get_entrance('Zora River Adult'), lambda state: state.is_adult()) - set_rule(world.get_entrance('Zoras Domain Adult Access'), lambda state: state.can_play('Zeldas Lullaby') or world.logic_zora_with_cucco_or_hovers) + set_rule(world.get_entrance('Zoras Domain Adult Access'), lambda state: state.can_play('Zeldas Lullaby') or (state.has('Hover Boots') and world.logic_zora_with_cucco_or_hovers)) set_rule(world.get_entrance('Zoras Fountain Adult Access'), lambda state: state.can_reach('Zoras Fountain')) set_rule(world.get_entrance('Jabu Jabus Belly'), lambda state: state.has_bottle()) set_rule(world.get_entrance('Zoras Fountain Fairy'), lambda state: state.has_explosives()) diff --git a/version.py b/version.py index 118a0ef0d..624806a15 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.18 f.LUM' +__version__ = '2.13.19 f.LUM' From 7486a468b84af43e2eabfef606801e3a45c89927 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Fri, 27 Jul 2018 03:39:58 -0400 Subject: [PATCH 202/755] Fixed child song colors and text --- ASM/src/extended_items.asm | 12 ++++++------ Messages.py | 6 +++--- data/base2current.json | 2 +- version.py | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/ASM/src/extended_items.asm b/ASM/src/extended_items.asm index c281d6c07..328851594 100755 --- a/ASM/src/extended_items.asm +++ b/ASM/src/extended_items.asm @@ -134,12 +134,12 @@ Item_Row 0x53, 0x41, 0x06, 0xB3, 0x00B6, no_upgrade, give_song, 9, -1 ; 0xC7 = Item_Row 0x53, 0x41, 0x07, 0xB6, 0x00B6, no_upgrade, give_song, 10, -1 ; 0xC8 = Nocturn of Shadow Item_Row 0x53, 0x41, 0x08, 0xB7, 0x00B6, no_upgrade, give_song, 11, -1 ; 0xC9 = Prelude of Light -Item_Row 0x53, 0x41, 0x03, 0xB8, 0x00B6, no_upgrade, give_song, 12, -1 ; 0xCA = Zelda's Lullaby -Item_Row 0x53, 0x41, 0x04, 0xB9, 0x00B6, no_upgrade, give_song, 13, -1 ; 0xCB = Epona's Song -Item_Row 0x53, 0x41, 0x05, 0xBA, 0x00B6, no_upgrade, give_song, 14, -1 ; 0xCC = Saria's Song -Item_Row 0x53, 0x41, 0x06, 0xBB, 0x00B6, no_upgrade, give_song, 15, -1 ; 0xCD = Sun's Song -Item_Row 0x53, 0x41, 0x07, 0xBC, 0x00B6, no_upgrade, give_song, 16, -1 ; 0xCE = Song of Time -Item_Row 0x53, 0x41, 0x08, 0xBD, 0x00B6, no_upgrade, give_song, 17, -1 ; 0xCF = Song of Storms +Item_Row 0x53, 0x41, 0x04, 0xB8, 0x00B6, no_upgrade, give_song, 12, -1 ; 0xCA = Zelda's Lullaby +Item_Row 0x53, 0x41, 0x06, 0xB9, 0x00B6, no_upgrade, give_song, 13, -1 ; 0xCB = Epona's Song +Item_Row 0x53, 0x41, 0x03, 0xBA, 0x00B6, no_upgrade, give_song, 14, -1 ; 0xCC = Saria's Song +Item_Row 0x53, 0x41, 0x08, 0xBB, 0x00B6, no_upgrade, give_song, 15, -1 ; 0xCD = Sun's Song +Item_Row 0x53, 0x41, 0x05, 0xBC, 0x00B6, no_upgrade, give_song, 16, -1 ; 0xCE = Song of Time +Item_Row 0x53, 0x41, 0x07, 0xBD, 0x00B6, no_upgrade, give_song, 17, -1 ; 0xCF = Song of Storms ;================================================================================================== ; Item upgrade functions diff --git a/Messages.py b/Messages.py index 62606d6ac..8253aecf7 100644 --- a/Messages.py +++ b/Messages.py @@ -247,10 +247,10 @@ 0x00B3: "\x08\x06\x28You have learned the\x01\x06\x2D\x05\x46Requiem of Spirit\x05\x40!", 0x00B6: "\x08\x06\x28You have learned the\x01\x06\x28\x05\x45Nocturne of Shadow\x05\x40!", 0x00B7: "\x08\x06\x28You have learned the\x01\x06\x32\x05\x44Prelude of Light\x05\x40!", - 0x00B8: "\x08\x06\x14You've learned \x05\x42Saria's Song\x05\x40!", + 0x00B8: "\x08\x06\x15You've learned \x05\x43Zelda's Lullaby\x05\x40!", 0x00B9: "\x08\x06\x11You've learned \x05\x41Epona's Song\x05\x40!", - 0x00BA: "\x08\x06\x0BYou've learned the \x05\x46Sun's Song\x05\x40!", - 0x00BB: "\x08\x06\x15You've learned \x05\x43Zelda's Lullaby\x05\x40!", + 0x00BA: "\x08\x06\x14You've learned \x05\x42Saria's Song\x05\x40!", + 0x00BB: "\x08\x06\x0BYou've learned the \x05\x46Sun's Song\x05\x40!", 0x00BC: "\x08\x06\x05You've learned the \x05\x44Song of Time\x05\x40!", 0x00BD: "\x08You've learned the \x05\x45Song of Storms\x05\x40!", } diff --git a/data/base2current.json b/data/base2current.json index 97e9779eb..53493b198 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -1 +1 @@ -[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 183]}, {"11311804": [12, 16, 11, 186]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 176, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 72]}, {"11427296": [12, 16, 11, 186, 52, 2, 0, 255, 16, 0, 5, 97]}, {"11427312": [12, 16, 12, 241]}, {"11431496": [12, 16, 11, 181, 1, 15, 192, 33]}, {"11559932": [52, 14, 0, 2, 130]}, {"11559938": [14, 222]}, {"11562028": [12, 16, 13, 18]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 1]}, {"11882076": [12, 16, 12, 222]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 39, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 46, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 53, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 32, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 127]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 18]}, {"12427480": [12, 16, 10, 102]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 106]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 11, 235, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 139]}, {"12491480": [12, 16, 10, 148]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 133]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 60]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 140, 73]}, {"14149503": [164]}, {"14149512": [2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 189]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 205]}, {"14624335": [118]}, {"14720868": [52, 14, 0, 4, 128]}, {"14720874": [14, 222]}, {"14720944": [12, 16, 11, 197]}, {"14848896": [3, 224, 104, 33, 12, 16, 11, 228, 52, 2]}, {"14848909": [160, 248, 33]}, {"14848932": [161, 248, 14, 223]}, {"14872723": [52]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 236, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 48, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 76, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 104, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 220, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 108, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 140, 128, 64, 38, 132, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 172, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 39, 212, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 28, 128, 64, 40]}, {"55059600": [83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 3, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 44, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [2, 52, 2]}, {"55060003": [69, 52, 2]}, {"55060007": [70, 3, 224]}, {"55060011": [8]}, {"55060016": [144, 136]}, {"55060019": [162, 49, 8]}, {"55060023": [6, 17]}, {"55060027": [2, 52, 2]}, {"55060031": [55, 52, 2]}, {"55060035": [56, 3, 224]}, {"55060039": [8]}, {"55060044": [144, 136]}, {"55060047": [161, 49, 8]}, {"55060051": [32, 17]}, {"55060055": [2, 52, 2]}, {"55060059": [121, 52, 2]}, {"55060063": [122, 3, 224]}, {"55060067": [8]}, {"55060072": [144, 136]}, {"55060075": [161, 49, 8]}, {"55060079": [4, 17]}, {"55060083": [2, 52, 2]}, {"55060087": [119, 52, 2]}, {"55060091": [120, 3, 224]}, {"55060095": [8]}, {"55060100": [144, 136]}, {"55060103": [50, 17]}, {"55060107": [2, 52, 2]}, {"55060111": [192, 52, 2]}, {"55060115": [193, 3, 224]}, {"55060119": [8]}, {"55060124": [144, 136]}, {"55060127": [163, 49, 8]}, {"55060131": [3, 17]}, {"55060135": [2, 52, 2]}, {"55060139": [77, 52, 162]}, {"55060144": [3, 224]}, {"55060147": [8]}, {"55060152": [144, 136]}, {"55060155": [163, 49, 8]}, {"55060159": [24, 17]}, {"55060163": [2, 52, 2]}, {"55060167": [77, 52, 162]}, {"55060172": [3, 224]}, {"55060175": [8]}, {"55060180": [3, 224]}, {"55060183": [8]}, {"55060188": [52, 8]}, {"55060191": [1, 160, 136]}, {"55060195": [62, 3, 224]}, {"55060199": [8]}, {"55060204": [36, 136]}, {"55060207": [134, 36, 9, 255, 255, 37, 41]}, {"55060215": [1, 52, 1]}, {"55060219": [3]}, {"55060221": [41, 8, 42, 20, 32]}, {"55060227": [7]}, {"55060232": [1, 9, 80, 33, 145, 75]}, {"55060240": [52, 1]}, {"55060243": [255, 21, 97, 255, 247]}, {"55060252": [161, 69]}, {"55060256": [3, 224]}, {"55060259": [8]}, {"55060264": [36, 136]}, {"55060267": [168, 1, 6, 64, 33, 145, 9]}, {"55060276": [1, 37, 72, 37, 161, 9]}, {"55060284": [3, 224]}, {"55060287": [8]}, {"55060292": [36, 136]}, {"55060295": [188, 1, 5, 64, 33, 129, 9]}, {"55060304": [5, 33]}, {"55060307": [2]}, {"55060312": [52, 9]}, {"55060316": [37, 41]}, {"55060319": [1, 161, 9]}, {"55060324": [3, 224]}, {"55060327": [8]}, {"55060332": [52, 8]}, {"55060335": [1, 160, 136]}, {"55060339": [61, 52, 8]}, {"55060343": [20, 160, 136]}, {"55060347": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [50, 160, 136]}, {"55060375": [58, 52, 8]}, {"55060379": [48, 164, 136, 19, 244, 160, 136]}, {"55060387": [51, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [2, 160, 136]}, {"55060403": [50, 52, 8]}, {"55060407": [1, 160, 136]}, {"55060411": [58, 160, 136]}, {"55060415": [60, 52, 8]}, {"55060419": [96, 164, 136, 19, 244, 160, 136]}, {"55060427": [51, 3, 224]}, {"55060431": [8]}, {"55060436": [144, 136]}, {"55060439": [124, 52, 1]}, {"55060443": [255, 17, 1]}, {"55060447": [6, 52, 2]}, {"55060451": [107, 144, 136]}, {"55060455": [148, 45, 8]}, {"55060459": [6, 17]}, {"55060463": [2, 52, 2]}, {"55060467": [106, 52, 2]}, {"55060471": [3, 3, 224]}, {"55060475": [8]}, {"55060480": [144, 136]}, {"55060483": [123, 52, 1]}, {"55060487": [255, 17, 1]}, {"55060491": [2, 52, 162]}, {"55060496": [52, 2]}, {"55060499": [12, 3, 224]}, {"55060503": [8]}, {"55060508": [52, 8]}, {"55060511": [7, 160, 136]}, {"55060515": [123, 3, 224]}, {"55060519": [8]}, {"55060524": [52, 8]}, {"55060527": [1]}, {"55060529": [168, 64, 4, 140, 137]}, {"55060535": [164, 1, 40, 72, 37, 172, 137]}, {"55060543": [164, 3, 224]}, {"55060547": [8]}, {"55060552": [48, 132]}, {"55060555": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060567": [140, 16, 129]}, {"55060571": [22, 145, 2]}, {"55060575": [117, 52, 1]}, {"55060579": [141, 16, 129]}, {"55060583": [19, 145, 2]}, {"55060587": [117, 16, 128]}, {"55060591": [17, 145, 2]}, {"55060595": [116, 52, 1]}, {"55060599": [138, 16, 129]}, {"55060603": [14, 145, 2]}, {"55060607": [116, 52, 1]}, {"55060611": [139, 16, 129]}, {"55060615": [11, 145, 2]}, {"55060619": [116, 52, 1]}, {"55060623": [88, 16, 129]}, {"55060627": [8, 52, 2]}, {"55060632": [52, 1]}, {"55060635": [120, 16, 129]}, {"55060639": [5, 52, 2]}, {"55060644": [52, 1]}, {"55060647": [121, 16, 129]}, {"55060651": [2, 52, 2]}, {"55060656": [52, 2]}, {"55060659": [255, 3, 224]}, {"55060663": [8]}, {"55060668": [39, 189, 255, 224, 175, 191]}, {"55060675": [16, 175, 176]}, {"55060679": [20, 12, 16, 10, 254]}, {"55060688": [4, 65]}, {"55060691": [2]}, {"55060696": [52, 2]}, {"55060699": [91]}, {"55060701": [64, 32, 33, 12, 16, 11, 100]}, {"55060712": [16, 96]}, {"55060715": [18, 175, 163]}, {"55060719": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060728": [133, 9]}, {"55060731": [2, 17, 32]}, {"55060735": [3, 52, 10]}, {"55060739": [1, 16]}, {"55060743": [8, 165, 10]}, {"55060748": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060759": [6, 144, 102]}, {"55060763": [7, 140, 105]}, {"55060767": [8, 1, 32, 248, 9]}, {"55060776": [143, 163]}, {"55060779": [28, 144, 101]}, {"55060783": [3, 16]}, {"55060787": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060799": [6]}, {"55060801": [74]}, {"55060803": [24]}, {"55060806": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060816": [60, 8, 128, 64, 37, 8, 32]}, {"55060824": [133, 9]}, {"55060827": [2, 17, 32]}, {"55060831": [3, 52, 10]}, {"55060835": [1, 165, 10]}, {"55060840": [52, 5]}, {"55060843": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060855": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060866": [48, 33, 143, 191]}, {"55060871": [16, 143, 176]}, {"55060875": [20, 39, 189]}, {"55060879": [32, 3, 224]}, {"55060883": [8]}, {"55060888": [143, 166]}, {"55060891": [48, 132, 197]}, {"55060895": [4, 8, 16, 10, 110]}, {"55060904": [143, 185]}, {"55060907": [44, 135, 37]}, {"55060911": [4, 8, 16, 10, 110]}, {"55060920": [60, 10, 128, 64, 37, 74, 32, 4, 141, 75]}, {"55060931": [12, 17, 96]}, {"55060935": [2]}, {"55060940": [149, 69]}, {"55060943": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060956": [60, 9, 128, 64, 37, 41, 32, 20, 129, 42]}, {"55060967": [3, 5, 64]}, {"55060971": [2, 1, 42, 72, 32, 161, 32]}, {"55060980": [3, 224]}, {"55060983": [8]}, {"55060988": [60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55060999": [12, 17, 32]}, {"55061003": [2]}, {"55061008": [129, 3]}, {"55061011": [2]}, {"55061013": [3, 15, 195]}, {"55061017": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061031": [8]}, {"55061036": [144, 69]}, {"55061039": [3, 60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55061051": [12, 17, 32]}, {"55061055": [2]}, {"55061060": [145, 5]}, {"55061063": [3, 3, 224]}, {"55061067": [8]}, {"55061072": [143, 162]}, {"55061075": [36, 144, 69]}, {"55061080": [60, 8, 128, 64, 37, 8, 32]}, {"55061088": [133, 9]}, {"55061091": [2, 17, 32]}, {"55061095": [4, 52, 10]}, {"55061099": [1, 165, 10]}, {"55061104": [16]}, {"55061107": [24, 52, 5]}, {"55061111": [65, 60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55061123": [12, 17, 32]}, {"55061127": [19]}, {"55061132": [145, 5]}, {"55061135": [1, 175, 164]}, {"55061140": [175, 165]}, {"55061143": [4, 175, 166]}, {"55061147": [8, 39, 189, 255, 232, 175, 191]}, {"55061155": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061167": [6, 145, 6]}, {"55061171": [7, 141, 9]}, {"55061175": [8, 1, 32, 248, 9]}, {"55061184": [143, 191]}, {"55061187": [16, 39, 189]}, {"55061191": [24, 143, 164]}, {"55061196": [143, 165]}, {"55061199": [4, 143, 166]}, {"55061203": [8, 3, 224]}, {"55061207": [8]}, {"55061212": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061223": [16, 175, 163]}, {"55061227": [20, 175, 191]}, {"55061231": [24, 12, 16, 10, 196]}, {"55061240": [143, 162]}, {"55061243": [16, 143, 163]}, {"55061247": [20, 143, 191]}, {"55061251": [24, 39, 189]}, {"55061255": [32, 3, 224]}, {"55061259": [8]}, {"55061264": [39, 189, 255, 232, 175, 191]}, {"55061271": [16, 60, 8, 128, 64, 37, 8, 32, 4, 173]}, {"55061284": [173]}, {"55061287": [4, 173]}, {"55061291": [8, 173]}, {"55061295": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061311": [42]}, {"55061317": [9, 15, 195, 1, 33, 32, 38]}, {"55061325": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 254]}, {"55061340": [4, 64]}, {"55061343": [34]}, {"55061348": [52, 68]}, {"55061352": [12, 16, 11, 100]}, {"55061360": [16, 96]}, {"55061363": [12]}, {"55061368": [60, 8, 128, 64, 37, 8, 32, 4, 140, 105]}, {"55061380": [173, 9]}, {"55061384": [140, 105]}, {"55061387": [4, 173, 9]}, {"55061391": [4, 140, 105]}, {"55061395": [8, 173, 9]}, {"55061399": [8, 52, 9]}, {"55061403": [1, 173, 9]}, {"55061407": [12, 144, 98]}, {"55061412": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061428": [52, 1]}, {"55061431": [10, 21, 65]}, {"55061435": [6]}, {"55061440": [149, 42]}, {"55061443": [28, 49, 74, 240, 31]}, {"55061449": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061459": [28, 129, 9, 4, 36, 5, 33]}, {"55061467": [2]}, {"55061473": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061483": [16, 39, 189]}, {"55061487": [24, 3, 224]}, {"55061491": [8]}, {"55061496": [39, 189, 255, 232, 175, 191]}, {"55061503": [16, 12, 16, 11, 12]}, {"55061512": [36, 1, 255, 255, 16, 65]}, {"55061519": [4]}, {"55061524": [52, 68]}, {"55061528": [12, 16, 11, 64]}, {"55061536": [143, 191]}, {"55061539": [16, 39, 189]}, {"55061543": [24, 3, 224]}, {"55061547": [8]}, {"55061552": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061563": [164, 52, 8]}, {"55061568": [52, 137]}, {"55061572": [148, 170]}, {"55061576": [52, 1, 1, 156, 21, 65]}, {"55061583": [8]}, {"55061588": [52, 8]}, {"55061591": [3, 148, 171]}, {"55061595": [28, 49, 105]}, {"55061599": [255, 49, 98, 31]}, {"55061605": [2, 18, 2, 16]}, {"55061611": [31]}, {"55061616": [52, 1]}, {"55061619": [10, 21, 65]}, {"55061623": [14]}, {"55061628": [148, 171]}, {"55061631": [28, 52, 1]}, {"55061635": [16, 20, 65]}, {"55061639": [8]}, {"55061644": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061655": [4]}, {"55061660": [36, 2, 255, 255, 16]}, {"55061667": [21]}, {"55061672": [52, 8]}, {"55061675": [1, 49, 105]}, {"55061679": [31, 52, 1]}, {"55061683": [21, 21, 65]}, {"55061687": [12]}, {"55061692": [52, 1]}, {"55061695": [62, 16, 129]}, {"55061699": [7]}, {"55061704": [52, 1]}, {"55061707": [66, 16, 129]}, {"55061711": [4]}, {"55061716": [36, 2, 255, 255, 16]}, {"55061723": [7]}, {"55061728": [52, 8]}, {"55061731": [2, 144, 169, 1, 65]}, {"55061737": [2, 18]}, {"55061741": [72, 16, 37]}, {"55061745": [2, 18]}, {"55061749": [73, 16, 37, 3, 224]}, {"55061755": [8]}, {"55061760": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061772": [129, 9]}, {"55061776": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061799": [4, 141, 9]}, {"55061804": [17, 32]}, {"55061807": [22]}, {"55061813": [9, 82, 2, 49, 75, 248]}, {"55061821": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061844": [49, 34]}, {"55061847": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061868": [60, 12, 128, 64, 37, 140, 28]}, {"55061876": [129, 140]}, {"55061880": [17, 108]}, {"55061883": [3, 165, 32]}, {"55061887": [2, 161, 43]}, {"55061891": [2, 161, 34]}, {"55061895": [3, 3, 224]}, {"55061899": [8]}, {"55061904": [39, 189, 255, 224, 175, 176]}, {"55061911": [16, 175, 177]}, {"55061915": [20, 175, 191]}, {"55061919": [24, 52, 130]}, {"55061924": [52, 80]}, {"55061928": [38, 8, 255, 128, 5]}, {"55061935": [18]}, {"55061940": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55061951": [16, 1, 9]}, {"55061955": [24]}, {"55061958": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061976": [142, 40]}, {"55061979": [12, 1]}, {"55061982": [248, 9]}, {"55061988": [20, 80, 255, 239]}, {"55061996": [54, 35]}, {"55062000": [16]}, {"55062003": [2]}, {"55062008": [52, 3]}, {"55062012": [143, 176]}, {"55062015": [16, 143, 177]}, {"55062019": [20, 143, 191]}, {"55062023": [24, 39, 189]}, {"55062027": [32, 3, 224]}, {"55062031": [8]}, {"55062036": [140, 136, 29, 44, 52, 9]}, {"55062043": [1]}, {"55062045": [9, 78]}, {"55062048": [1, 9, 16, 36, 16, 64]}, {"55062055": [36]}, {"55062060": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062075": [164, 52, 1]}, {"55062079": [61, 17, 129]}, {"55062083": [10]}, {"55062089": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062099": [25]}, {"55062104": [52, 13]}, {"55062107": [1, 161, 141, 29, 40, 37, 74]}, {"55062115": [3, 16]}, {"55062119": [9]}, {"55062124": [52, 12]}, {"55062127": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062143": [14]}, {"55062148": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062184": [60, 9, 128, 64, 37, 41, 32, 20, 161, 40]}, {"55062196": [52, 2]}, {"55062200": [3, 224]}, {"55062203": [8]}, {"55062208": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062220": [16]}, {"55062223": [29]}, {"55062228": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062240": [16]}, {"55062243": [24]}, {"55062248": [52, 8]}, {"55062251": [43, 16]}, {"55062255": [21]}, {"55062260": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062275": [1, 160, 40, 14, 222, 52, 8]}, {"55062283": [43, 16]}, {"55062287": [13]}, {"55062292": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062307": [4, 160, 40, 14, 222, 52, 8]}, {"55062315": [43, 16]}, {"55062319": [5]}, {"55062324": [52, 5]}, {"55062327": [3, 52, 8]}, {"55062331": [43, 16]}, {"55062335": [1]}, {"55062340": [60, 9, 128, 64, 37, 41, 32, 20, 60, 10, 128, 64, 37, 74, 32, 23, 129, 44]}, {"55062360": [17, 136]}, {"55062363": [11, 33, 41]}, {"55062367": [1, 21, 42, 255, 252]}, {"55062376": [60, 9, 128, 64, 37, 41, 32, 19, 33, 41]}, {"55062387": [1, 17, 42]}, {"55062391": [4, 129, 44]}, {"55062396": [21, 128, 255, 252]}, {"55062404": [161, 40]}, {"55062408": [3, 224]}, {"55062411": [8]}, {"55062417": [96, 120, 33, 129, 236, 14, 223, 53, 152]}, {"55062427": [128, 49, 142]}, {"55062431": [128, 52, 3]}, {"55062435": [5, 3, 224]}, {"55062439": [8]}, {"55062444": [175, 164]}, {"55062447": [104, 175, 165]}, {"55062451": [108, 175, 166]}, {"55062455": [112, 175, 167]}, {"55062459": [116, 39, 189, 255, 232, 175, 163]}, {"55062467": [16, 175, 191]}, {"55062471": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062487": [32, 21]}, {"55062491": [31]}, {"55062496": [60, 9, 128, 64, 37, 41, 32, 23, 52, 10]}, {"55062507": [255, 161, 42]}, {"55062512": [60, 9, 128, 64, 37, 41, 32, 20, 36, 10, 255, 255, 52, 12]}, {"55062527": [3, 33, 74]}, {"55062531": [1, 17, 76]}, {"55062535": [20, 1, 42, 88, 32, 129, 104]}, {"55062544": [17]}, {"55062546": [255, 251]}, {"55062552": [60, 9, 128, 64, 37, 41, 32, 23, 161, 42]}, {"55062564": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062575": [1, 165, 42]}, {"55062580": [60, 9, 128, 65, 52, 10]}, {"55062587": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 196]}, {"55062616": [143, 163]}, {"55062619": [16, 143, 191]}, {"55062623": [20, 39, 189]}, {"55062627": [24, 143, 164]}, {"55062631": [104, 143, 165]}, {"55062635": [108, 143, 166]}, {"55062639": [112, 143, 167]}, {"55062643": [116, 132, 110, 19, 196, 3, 224]}, {"55062651": [8]}, {"55062656": [147, 25]}, {"55062659": [116, 52, 1]}, {"55062663": [255, 23, 33]}, {"55062667": [2]}, {"55062672": [52, 25]}, {"55062675": [44, 3, 224]}, {"55062679": [8, 167, 185]}, {"55062683": [154, 147, 44]}, {"55062687": [116, 52, 1]}, {"55062691": [255, 21, 129]}, {"55062695": [2]}, {"55062700": [52, 12]}, {"55062703": [44, 3, 224]}, {"55062707": [8]}, {"55062712": [145, 174]}, {"55062715": [116, 52, 1]}, {"55062719": [255, 21, 193]}, {"55062723": [2]}, {"55062728": [52, 14]}, {"55062731": [44, 3, 224]}, {"55062735": [8, 167, 174]}, {"55062739": [154, 145, 207]}, {"55062743": [116, 52, 1]}, {"55062747": [255, 21, 225]}, {"55062751": [2]}, {"55062756": [52, 15]}, {"55062759": [44, 3, 224]}, {"55062763": [8, 167, 175]}, {"55062767": [154, 60, 8, 128, 64, 37, 8, 32, 24, 142, 9]}, {"55062779": [104, 173, 9]}, {"55062784": [142, 9]}, {"55062787": [108, 173, 9]}, {"55062791": [4, 150, 9]}, {"55062795": [112, 165, 9]}, {"55062799": [8, 150, 9]}, {"55062803": [156, 165, 9]}, {"55062807": [10, 3, 224]}, {"55062811": [8, 142, 14]}, {"55062815": [4, 39, 189, 255, 224, 175, 176]}, {"55062823": [16, 175, 177]}, {"55062827": [20, 175, 191]}, {"55062831": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 24, 142, 8]}, {"55062851": [4, 17]}, {"55062855": [5]}, {"55062860": [12, 16, 12, 114]}, {"55062868": [16]}, {"55062871": [3]}, {"55062876": [12, 16, 12, 133]}, {"55062884": [12, 16, 12, 101, 52, 4]}, {"55062892": [12, 16, 12, 101, 52, 4]}, {"55062899": [1, 12, 16, 12, 101, 52, 4]}, {"55062907": [2, 143, 176]}, {"55062911": [16, 143, 177]}, {"55062915": [20, 143, 191]}, {"55062919": [24, 39, 189]}, {"55062923": [32, 3, 224]}, {"55062927": [8]}, {"55062932": [2, 4, 64, 33, 145, 9]}, {"55062939": [108, 52, 1]}, {"55062943": [255, 17, 33]}, {"55062947": [7]}, {"55062952": [2, 9, 72, 33, 145, 41]}, {"55062959": [116, 52, 1]}, {"55062963": [44, 17, 33]}, {"55062967": [2]}, {"55062972": [161, 9]}, {"55062975": [105, 3, 224]}, {"55062979": [8]}, {"55062984": [39, 189, 255, 232, 175, 191]}, {"55062991": [16, 142, 40]}, {"55062996": [174, 8]}, {"55062999": [64, 142, 40]}, {"55063003": [4, 174, 8]}, {"55063007": [68, 150, 40]}, {"55063011": [8, 166, 8]}, {"55063015": [72, 162]}, {"55063018": [15, 51, 146, 8]}, {"55063023": [74, 52, 1]}, {"55063027": [255, 21, 1]}, {"55063031": [3]}, {"55063036": [12, 16, 12, 147]}, {"55063044": [143, 191]}, {"55063047": [16, 39, 189]}, {"55063051": [24, 3, 224]}, {"55063055": [8]}, {"55063060": [142, 8]}, {"55063063": [64, 174, 8]}, {"55063067": [104, 142, 8]}, {"55063071": [68, 174, 8]}, {"55063075": [108, 150, 8]}, {"55063079": [72, 166, 8]}, {"55063083": [112, 146, 8]}, {"55063087": [104, 52, 1]}, {"55063091": [255, 21, 1]}, {"55063095": [3]}, {"55063100": [52, 8]}, {"55063103": [1, 162, 8, 15, 51, 3, 224]}, {"55063111": [8]}, {"55063116": [39, 189, 255, 232, 175, 191]}, {"55063123": [16, 150, 8]}, {"55063127": [156, 49, 8]}, {"55063131": [64, 17]}, {"55063135": [5]}, {"55063140": [150, 8]}, {"55063143": [112, 49, 8, 255, 15, 53, 8]}, {"55063151": [48, 166, 8]}, {"55063155": [112, 146, 40]}, {"55063159": [1, 162, 8]}, {"55063163": [105, 150, 40]}, {"55063167": [2, 166, 8]}, {"55063171": [106, 142, 40]}, {"55063175": [4, 174, 8]}, {"55063179": [108, 12, 16, 12, 173, 52, 4]}, {"55063188": [12, 16, 12, 173, 52, 4]}, {"55063195": [1, 12, 16, 12, 173, 52, 4]}, {"55063203": [2, 143, 191]}, {"55063207": [16, 39, 189]}, {"55063211": [24, 3, 224]}, {"55063215": [8]}, {"55063220": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 51, 96, 145, 10]}, {"55063235": [108, 52, 1]}, {"55063239": [255, 17, 65]}, {"55063243": [5]}, {"55063248": [1, 42, 72, 33, 145, 41]}, {"55063256": [21, 32]}, {"55063259": [28]}, {"55063264": [60, 9, 128, 64, 37, 41, 51, 83, 37, 41]}, {"55063275": [1, 145, 42]}, {"55063280": [17, 64]}, {"55063283": [19]}, {"55063288": [2, 10, 88, 33, 145, 107]}, {"55063295": [116, 52, 1]}, {"55063299": [255, 17, 97, 255, 248]}, {"55063308": [146, 12]}, {"55063311": [108, 17, 138, 255, 245]}, {"55063320": [146, 12]}, {"55063323": [109, 17, 138, 255, 242]}, {"55063332": [146, 12]}, {"55063335": [110, 17, 138, 255, 239]}, {"55063344": [161, 11]}, {"55063347": [105, 161, 10]}, {"55063351": [108, 16]}, {"55063355": [4]}, {"55063360": [52, 9]}, {"55063363": [255, 161, 9]}, {"55063367": [105, 161, 9]}, {"55063371": [108, 3, 224]}, {"55063375": [8]}, {"55063380": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063393": [1, 1, 1, 1, 1]}, {"55063399": [1, 1, 1, 1, 1]}, {"55063405": [1]}, {"55063407": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063417": [51, 8, 33, 32, 15]}, {"55063423": [71, 21, 234]}, {"55063427": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063439": [164]}, {"55063441": [15, 122, 3, 20, 64]}, {"55063447": [5, 52, 2, 72, 48, 21, 226]}, {"55063455": [7]}, {"55063460": [36, 25]}, {"55063463": [3, 16]}, {"55063467": [4, 52, 2, 99, 17, 21, 226]}, {"55063475": [2]}, {"55063480": [36, 25]}, {"55063483": [3, 3, 224]}, {"55063487": [8]}, {"55063492": [141, 173, 138, 160, 52, 2, 128]}, {"55063500": [16, 77]}, {"55063503": [2]}, {"55063508": [16]}, {"55063511": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063527": [1, 16, 64]}, {"55063531": [2]}, {"55063536": [16]}, {"55063539": [2, 52, 2]}, {"55063543": [1, 161, 226, 28, 191, 3, 224]}, {"55063551": [8]}, {"55063557": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063571": [164]}, {"55063573": [15, 122, 3, 20, 64]}, {"55063579": [5, 52, 2, 72, 48, 21, 226]}, {"55063587": [7]}, {"55063592": [36, 25]}, {"55063595": [3, 16]}, {"55063599": [4, 52, 2, 99, 17, 21, 226]}, {"55063607": [2]}, {"55063612": [36, 25]}, {"55063615": [3, 3, 224]}, {"55063619": [8]}, {"55063624": [162, 37]}, {"55063627": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063639": [4, 142, 10]}, {"55063644": [17, 64]}, {"55063647": [11]}, {"55063653": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063665": [24, 194, 2, 23]}, {"55063671": [3, 49, 89]}, {"55063675": [255, 129, 234]}, {"55063680": [3, 42, 200, 37, 8, 16, 13, 21, 161, 249]}, {"55063692": [3, 224]}, {"55063695": [8]}] \ No newline at end of file +[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 183]}, {"11311804": [12, 16, 11, 186]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 176, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 72]}, {"11427296": [12, 16, 11, 186, 52, 2, 0, 255, 16, 0, 5, 97]}, {"11427312": [12, 16, 12, 241]}, {"11431496": [12, 16, 11, 181, 1, 15, 192, 33]}, {"11559932": [52, 14, 0, 2, 130]}, {"11559938": [14, 222]}, {"11562028": [12, 16, 13, 18]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 1]}, {"11882076": [12, 16, 12, 222]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 39, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 46, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 53, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 32, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 127]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 18]}, {"12427480": [12, 16, 10, 102]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 106]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 11, 235, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 139]}, {"12491480": [12, 16, 10, 148]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 133]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 60]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 140, 73]}, {"14149503": [164]}, {"14149512": [2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 189]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 205]}, {"14624335": [118]}, {"14720868": [52, 14, 0, 4, 128]}, {"14720874": [14, 222]}, {"14720944": [12, 16, 11, 197]}, {"14848896": [3, 224, 104, 33, 12, 16, 11, 228, 52, 2]}, {"14848909": [160, 248, 33]}, {"14848932": [161, 248, 14, 223]}, {"14872723": [52]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 236, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 48, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 76, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 104, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 220, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 108, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 140, 128, 64, 38, 132, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 172, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 39, 212, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 28, 128, 64, 40]}, {"55059600": [83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 3, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 44, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [2, 52, 2]}, {"55060003": [69, 52, 2]}, {"55060007": [70, 3, 224]}, {"55060011": [8]}, {"55060016": [144, 136]}, {"55060019": [162, 49, 8]}, {"55060023": [6, 17]}, {"55060027": [2, 52, 2]}, {"55060031": [55, 52, 2]}, {"55060035": [56, 3, 224]}, {"55060039": [8]}, {"55060044": [144, 136]}, {"55060047": [161, 49, 8]}, {"55060051": [32, 17]}, {"55060055": [2, 52, 2]}, {"55060059": [121, 52, 2]}, {"55060063": [122, 3, 224]}, {"55060067": [8]}, {"55060072": [144, 136]}, {"55060075": [161, 49, 8]}, {"55060079": [4, 17]}, {"55060083": [2, 52, 2]}, {"55060087": [119, 52, 2]}, {"55060091": [120, 3, 224]}, {"55060095": [8]}, {"55060100": [144, 136]}, {"55060103": [50, 17]}, {"55060107": [2, 52, 2]}, {"55060111": [192, 52, 2]}, {"55060115": [193, 3, 224]}, {"55060119": [8]}, {"55060124": [144, 136]}, {"55060127": [163, 49, 8]}, {"55060131": [3, 17]}, {"55060135": [2, 52, 2]}, {"55060139": [77, 52, 162]}, {"55060144": [3, 224]}, {"55060147": [8]}, {"55060152": [144, 136]}, {"55060155": [163, 49, 8]}, {"55060159": [24, 17]}, {"55060163": [2, 52, 2]}, {"55060167": [77, 52, 162]}, {"55060172": [3, 224]}, {"55060175": [8]}, {"55060180": [3, 224]}, {"55060183": [8]}, {"55060188": [52, 8]}, {"55060191": [1, 160, 136]}, {"55060195": [62, 3, 224]}, {"55060199": [8]}, {"55060204": [36, 136]}, {"55060207": [134, 36, 9, 255, 255, 37, 41]}, {"55060215": [1, 52, 1]}, {"55060219": [3]}, {"55060221": [41, 8, 42, 20, 32]}, {"55060227": [7]}, {"55060232": [1, 9, 80, 33, 145, 75]}, {"55060240": [52, 1]}, {"55060243": [255, 21, 97, 255, 247]}, {"55060252": [161, 69]}, {"55060256": [3, 224]}, {"55060259": [8]}, {"55060264": [36, 136]}, {"55060267": [168, 1, 6, 64, 33, 145, 9]}, {"55060276": [1, 37, 72, 37, 161, 9]}, {"55060284": [3, 224]}, {"55060287": [8]}, {"55060292": [36, 136]}, {"55060295": [188, 1, 5, 64, 33, 129, 9]}, {"55060304": [5, 33]}, {"55060307": [2]}, {"55060312": [52, 9]}, {"55060316": [37, 41]}, {"55060319": [1, 161, 9]}, {"55060324": [3, 224]}, {"55060327": [8]}, {"55060332": [52, 8]}, {"55060335": [1, 160, 136]}, {"55060339": [61, 52, 8]}, {"55060343": [20, 160, 136]}, {"55060347": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [50, 160, 136]}, {"55060375": [58, 52, 8]}, {"55060379": [48, 164, 136, 19, 244, 160, 136]}, {"55060387": [51, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [2, 160, 136]}, {"55060403": [50, 52, 8]}, {"55060407": [1, 160, 136]}, {"55060411": [58, 160, 136]}, {"55060415": [60, 52, 8]}, {"55060419": [96, 164, 136, 19, 244, 160, 136]}, {"55060427": [51, 3, 224]}, {"55060431": [8]}, {"55060436": [144, 136]}, {"55060439": [124, 52, 1]}, {"55060443": [255, 17, 1]}, {"55060447": [6, 52, 2]}, {"55060451": [107, 144, 136]}, {"55060455": [148, 45, 8]}, {"55060459": [6, 17]}, {"55060463": [2, 52, 2]}, {"55060467": [106, 52, 2]}, {"55060471": [3, 3, 224]}, {"55060475": [8]}, {"55060480": [144, 136]}, {"55060483": [123, 52, 1]}, {"55060487": [255, 17, 1]}, {"55060491": [2, 52, 162]}, {"55060496": [52, 2]}, {"55060499": [12, 3, 224]}, {"55060503": [8]}, {"55060508": [52, 8]}, {"55060511": [7, 160, 136]}, {"55060515": [123, 3, 224]}, {"55060519": [8]}, {"55060524": [52, 8]}, {"55060527": [1]}, {"55060529": [168, 64, 4, 140, 137]}, {"55060535": [164, 1, 40, 72, 37, 172, 137]}, {"55060543": [164, 3, 224]}, {"55060547": [8]}, {"55060552": [48, 132]}, {"55060555": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060567": [140, 16, 129]}, {"55060571": [22, 145, 2]}, {"55060575": [117, 52, 1]}, {"55060579": [141, 16, 129]}, {"55060583": [19, 145, 2]}, {"55060587": [117, 16, 128]}, {"55060591": [17, 145, 2]}, {"55060595": [116, 52, 1]}, {"55060599": [138, 16, 129]}, {"55060603": [14, 145, 2]}, {"55060607": [116, 52, 1]}, {"55060611": [139, 16, 129]}, {"55060615": [11, 145, 2]}, {"55060619": [116, 52, 1]}, {"55060623": [88, 16, 129]}, {"55060627": [8, 52, 2]}, {"55060632": [52, 1]}, {"55060635": [120, 16, 129]}, {"55060639": [5, 52, 2]}, {"55060644": [52, 1]}, {"55060647": [121, 16, 129]}, {"55060651": [2, 52, 2]}, {"55060656": [52, 2]}, {"55060659": [255, 3, 224]}, {"55060663": [8]}, {"55060668": [39, 189, 255, 224, 175, 191]}, {"55060675": [16, 175, 176]}, {"55060679": [20, 12, 16, 10, 254]}, {"55060688": [4, 65]}, {"55060691": [2]}, {"55060696": [52, 2]}, {"55060699": [91]}, {"55060701": [64, 32, 33, 12, 16, 11, 100]}, {"55060712": [16, 96]}, {"55060715": [18, 175, 163]}, {"55060719": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060728": [133, 9]}, {"55060731": [2, 17, 32]}, {"55060735": [3, 52, 10]}, {"55060739": [1, 16]}, {"55060743": [8, 165, 10]}, {"55060748": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060759": [6, 144, 102]}, {"55060763": [7, 140, 105]}, {"55060767": [8, 1, 32, 248, 9]}, {"55060776": [143, 163]}, {"55060779": [28, 144, 101]}, {"55060783": [3, 16]}, {"55060787": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060799": [6]}, {"55060801": [74]}, {"55060803": [24]}, {"55060806": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060816": [60, 8, 128, 64, 37, 8, 32]}, {"55060824": [133, 9]}, {"55060827": [2, 17, 32]}, {"55060831": [3, 52, 10]}, {"55060835": [1, 165, 10]}, {"55060840": [52, 5]}, {"55060843": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060855": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060866": [48, 33, 143, 191]}, {"55060871": [16, 143, 176]}, {"55060875": [20, 39, 189]}, {"55060879": [32, 3, 224]}, {"55060883": [8]}, {"55060888": [143, 166]}, {"55060891": [48, 132, 197]}, {"55060895": [4, 8, 16, 10, 110]}, {"55060904": [143, 185]}, {"55060907": [44, 135, 37]}, {"55060911": [4, 8, 16, 10, 110]}, {"55060920": [60, 10, 128, 64, 37, 74, 32, 4, 141, 75]}, {"55060931": [12, 17, 96]}, {"55060935": [2]}, {"55060940": [149, 69]}, {"55060943": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060956": [60, 9, 128, 64, 37, 41, 32, 20, 129, 42]}, {"55060967": [3, 5, 64]}, {"55060971": [2, 1, 42, 72, 32, 161, 32]}, {"55060980": [3, 224]}, {"55060983": [8]}, {"55060988": [60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55060999": [12, 17, 32]}, {"55061003": [2]}, {"55061008": [129, 3]}, {"55061011": [2]}, {"55061013": [3, 15, 195]}, {"55061017": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061031": [8]}, {"55061036": [144, 69]}, {"55061039": [3, 60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55061051": [12, 17, 32]}, {"55061055": [2]}, {"55061060": [145, 5]}, {"55061063": [3, 3, 224]}, {"55061067": [8]}, {"55061072": [143, 162]}, {"55061075": [36, 144, 69]}, {"55061080": [60, 8, 128, 64, 37, 8, 32]}, {"55061088": [133, 9]}, {"55061091": [2, 17, 32]}, {"55061095": [4, 52, 10]}, {"55061099": [1, 165, 10]}, {"55061104": [16]}, {"55061107": [24, 52, 5]}, {"55061111": [65, 60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55061123": [12, 17, 32]}, {"55061127": [19]}, {"55061132": [145, 5]}, {"55061135": [1, 175, 164]}, {"55061140": [175, 165]}, {"55061143": [4, 175, 166]}, {"55061147": [8, 39, 189, 255, 232, 175, 191]}, {"55061155": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061167": [6, 145, 6]}, {"55061171": [7, 141, 9]}, {"55061175": [8, 1, 32, 248, 9]}, {"55061184": [143, 191]}, {"55061187": [16, 39, 189]}, {"55061191": [24, 143, 164]}, {"55061196": [143, 165]}, {"55061199": [4, 143, 166]}, {"55061203": [8, 3, 224]}, {"55061207": [8]}, {"55061212": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061223": [16, 175, 163]}, {"55061227": [20, 175, 191]}, {"55061231": [24, 12, 16, 10, 196]}, {"55061240": [143, 162]}, {"55061243": [16, 143, 163]}, {"55061247": [20, 143, 191]}, {"55061251": [24, 39, 189]}, {"55061255": [32, 3, 224]}, {"55061259": [8]}, {"55061264": [39, 189, 255, 232, 175, 191]}, {"55061271": [16, 60, 8, 128, 64, 37, 8, 32, 4, 173]}, {"55061284": [173]}, {"55061287": [4, 173]}, {"55061291": [8, 173]}, {"55061295": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061311": [42]}, {"55061317": [9, 15, 195, 1, 33, 32, 38]}, {"55061325": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 254]}, {"55061340": [4, 64]}, {"55061343": [34]}, {"55061348": [52, 68]}, {"55061352": [12, 16, 11, 100]}, {"55061360": [16, 96]}, {"55061363": [12]}, {"55061368": [60, 8, 128, 64, 37, 8, 32, 4, 140, 105]}, {"55061380": [173, 9]}, {"55061384": [140, 105]}, {"55061387": [4, 173, 9]}, {"55061391": [4, 140, 105]}, {"55061395": [8, 173, 9]}, {"55061399": [8, 52, 9]}, {"55061403": [1, 173, 9]}, {"55061407": [12, 144, 98]}, {"55061412": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061428": [52, 1]}, {"55061431": [10, 21, 65]}, {"55061435": [6]}, {"55061440": [149, 42]}, {"55061443": [28, 49, 74, 240, 31]}, {"55061449": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061459": [28, 129, 9, 4, 36, 5, 33]}, {"55061467": [2]}, {"55061473": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061483": [16, 39, 189]}, {"55061487": [24, 3, 224]}, {"55061491": [8]}, {"55061496": [39, 189, 255, 232, 175, 191]}, {"55061503": [16, 12, 16, 11, 12]}, {"55061512": [36, 1, 255, 255, 16, 65]}, {"55061519": [4]}, {"55061524": [52, 68]}, {"55061528": [12, 16, 11, 64]}, {"55061536": [143, 191]}, {"55061539": [16, 39, 189]}, {"55061543": [24, 3, 224]}, {"55061547": [8]}, {"55061552": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061563": [164, 52, 8]}, {"55061568": [52, 137]}, {"55061572": [148, 170]}, {"55061576": [52, 1, 1, 156, 21, 65]}, {"55061583": [8]}, {"55061588": [52, 8]}, {"55061591": [3, 148, 171]}, {"55061595": [28, 49, 105]}, {"55061599": [255, 49, 98, 31]}, {"55061605": [2, 18, 2, 16]}, {"55061611": [31]}, {"55061616": [52, 1]}, {"55061619": [10, 21, 65]}, {"55061623": [14]}, {"55061628": [148, 171]}, {"55061631": [28, 52, 1]}, {"55061635": [16, 20, 65]}, {"55061639": [8]}, {"55061644": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061655": [4]}, {"55061660": [36, 2, 255, 255, 16]}, {"55061667": [21]}, {"55061672": [52, 8]}, {"55061675": [1, 49, 105]}, {"55061679": [31, 52, 1]}, {"55061683": [21, 21, 65]}, {"55061687": [12]}, {"55061692": [52, 1]}, {"55061695": [62, 16, 129]}, {"55061699": [7]}, {"55061704": [52, 1]}, {"55061707": [66, 16, 129]}, {"55061711": [4]}, {"55061716": [36, 2, 255, 255, 16]}, {"55061723": [7]}, {"55061728": [52, 8]}, {"55061731": [2, 144, 169, 1, 65]}, {"55061737": [2, 18]}, {"55061741": [72, 16, 37]}, {"55061745": [2, 18]}, {"55061749": [73, 16, 37, 3, 224]}, {"55061755": [8]}, {"55061760": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061772": [129, 9]}, {"55061776": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061799": [4, 141, 9]}, {"55061804": [17, 32]}, {"55061807": [22]}, {"55061813": [9, 82, 2, 49, 75, 248]}, {"55061821": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061844": [49, 34]}, {"55061847": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061868": [60, 12, 128, 64, 37, 140, 28]}, {"55061876": [129, 140]}, {"55061880": [17, 108]}, {"55061883": [3, 165, 32]}, {"55061887": [2, 161, 43]}, {"55061891": [2, 161, 34]}, {"55061895": [3, 3, 224]}, {"55061899": [8]}, {"55061904": [39, 189, 255, 224, 175, 176]}, {"55061911": [16, 175, 177]}, {"55061915": [20, 175, 191]}, {"55061919": [24, 52, 130]}, {"55061924": [52, 80]}, {"55061928": [38, 8, 255, 128, 5]}, {"55061935": [18]}, {"55061940": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55061951": [16, 1, 9]}, {"55061955": [24]}, {"55061958": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061976": [142, 40]}, {"55061979": [12, 1]}, {"55061982": [248, 9]}, {"55061988": [20, 80, 255, 239]}, {"55061996": [54, 35]}, {"55062000": [16]}, {"55062003": [2]}, {"55062008": [52, 3]}, {"55062012": [143, 176]}, {"55062015": [16, 143, 177]}, {"55062019": [20, 143, 191]}, {"55062023": [24, 39, 189]}, {"55062027": [32, 3, 224]}, {"55062031": [8]}, {"55062036": [140, 136, 29, 44, 52, 9]}, {"55062043": [1]}, {"55062045": [9, 78]}, {"55062048": [1, 9, 16, 36, 16, 64]}, {"55062055": [36]}, {"55062060": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062075": [164, 52, 1]}, {"55062079": [61, 17, 129]}, {"55062083": [10]}, {"55062089": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062099": [25]}, {"55062104": [52, 13]}, {"55062107": [1, 161, 141, 29, 40, 37, 74]}, {"55062115": [3, 16]}, {"55062119": [9]}, {"55062124": [52, 12]}, {"55062127": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062143": [14]}, {"55062148": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062184": [60, 9, 128, 64, 37, 41, 32, 20, 161, 40]}, {"55062196": [52, 2]}, {"55062200": [3, 224]}, {"55062203": [8]}, {"55062208": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062220": [16]}, {"55062223": [29]}, {"55062228": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062240": [16]}, {"55062243": [24]}, {"55062248": [52, 8]}, {"55062251": [43, 16]}, {"55062255": [21]}, {"55062260": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062275": [1, 160, 40, 14, 222, 52, 8]}, {"55062283": [43, 16]}, {"55062287": [13]}, {"55062292": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062307": [4, 160, 40, 14, 222, 52, 8]}, {"55062315": [43, 16]}, {"55062319": [5]}, {"55062324": [52, 5]}, {"55062327": [3, 52, 8]}, {"55062331": [43, 16]}, {"55062335": [1]}, {"55062340": [60, 9, 128, 64, 37, 41, 32, 20, 60, 10, 128, 64, 37, 74, 32, 23, 129, 44]}, {"55062360": [17, 136]}, {"55062363": [11, 33, 41]}, {"55062367": [1, 21, 42, 255, 252]}, {"55062376": [60, 9, 128, 64, 37, 41, 32, 19, 33, 41]}, {"55062387": [1, 17, 42]}, {"55062391": [4, 129, 44]}, {"55062396": [21, 128, 255, 252]}, {"55062404": [161, 40]}, {"55062408": [3, 224]}, {"55062411": [8]}, {"55062417": [96, 120, 33, 129, 236, 14, 223, 53, 152]}, {"55062427": [128, 49, 142]}, {"55062431": [128, 52, 3]}, {"55062435": [5, 3, 224]}, {"55062439": [8]}, {"55062444": [175, 164]}, {"55062447": [104, 175, 165]}, {"55062451": [108, 175, 166]}, {"55062455": [112, 175, 167]}, {"55062459": [116, 39, 189, 255, 232, 175, 163]}, {"55062467": [16, 175, 191]}, {"55062471": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062487": [32, 21]}, {"55062491": [31]}, {"55062496": [60, 9, 128, 64, 37, 41, 32, 23, 52, 10]}, {"55062507": [255, 161, 42]}, {"55062512": [60, 9, 128, 64, 37, 41, 32, 20, 36, 10, 255, 255, 52, 12]}, {"55062527": [3, 33, 74]}, {"55062531": [1, 17, 76]}, {"55062535": [20, 1, 42, 88, 32, 129, 104]}, {"55062544": [17]}, {"55062546": [255, 251]}, {"55062552": [60, 9, 128, 64, 37, 41, 32, 23, 161, 42]}, {"55062564": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062575": [1, 165, 42]}, {"55062580": [60, 9, 128, 65, 52, 10]}, {"55062587": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 196]}, {"55062616": [143, 163]}, {"55062619": [16, 143, 191]}, {"55062623": [20, 39, 189]}, {"55062627": [24, 143, 164]}, {"55062631": [104, 143, 165]}, {"55062635": [108, 143, 166]}, {"55062639": [112, 143, 167]}, {"55062643": [116, 132, 110, 19, 196, 3, 224]}, {"55062651": [8]}, {"55062656": [147, 25]}, {"55062659": [116, 52, 1]}, {"55062663": [255, 23, 33]}, {"55062667": [2]}, {"55062672": [52, 25]}, {"55062675": [44, 3, 224]}, {"55062679": [8, 167, 185]}, {"55062683": [154, 147, 44]}, {"55062687": [116, 52, 1]}, {"55062691": [255, 21, 129]}, {"55062695": [2]}, {"55062700": [52, 12]}, {"55062703": [44, 3, 224]}, {"55062707": [8]}, {"55062712": [145, 174]}, {"55062715": [116, 52, 1]}, {"55062719": [255, 21, 193]}, {"55062723": [2]}, {"55062728": [52, 14]}, {"55062731": [44, 3, 224]}, {"55062735": [8, 167, 174]}, {"55062739": [154, 145, 207]}, {"55062743": [116, 52, 1]}, {"55062747": [255, 21, 225]}, {"55062751": [2]}, {"55062756": [52, 15]}, {"55062759": [44, 3, 224]}, {"55062763": [8, 167, 175]}, {"55062767": [154, 60, 8, 128, 64, 37, 8, 32, 24, 142, 9]}, {"55062779": [104, 173, 9]}, {"55062784": [142, 9]}, {"55062787": [108, 173, 9]}, {"55062791": [4, 150, 9]}, {"55062795": [112, 165, 9]}, {"55062799": [8, 150, 9]}, {"55062803": [156, 165, 9]}, {"55062807": [10, 3, 224]}, {"55062811": [8, 142, 14]}, {"55062815": [4, 39, 189, 255, 224, 175, 176]}, {"55062823": [16, 175, 177]}, {"55062827": [20, 175, 191]}, {"55062831": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 24, 142, 8]}, {"55062851": [4, 17]}, {"55062855": [5]}, {"55062860": [12, 16, 12, 114]}, {"55062868": [16]}, {"55062871": [3]}, {"55062876": [12, 16, 12, 133]}, {"55062884": [12, 16, 12, 101, 52, 4]}, {"55062892": [12, 16, 12, 101, 52, 4]}, {"55062899": [1, 12, 16, 12, 101, 52, 4]}, {"55062907": [2, 143, 176]}, {"55062911": [16, 143, 177]}, {"55062915": [20, 143, 191]}, {"55062919": [24, 39, 189]}, {"55062923": [32, 3, 224]}, {"55062927": [8]}, {"55062932": [2, 4, 64, 33, 145, 9]}, {"55062939": [108, 52, 1]}, {"55062943": [255, 17, 33]}, {"55062947": [7]}, {"55062952": [2, 9, 72, 33, 145, 41]}, {"55062959": [116, 52, 1]}, {"55062963": [44, 17, 33]}, {"55062967": [2]}, {"55062972": [161, 9]}, {"55062975": [105, 3, 224]}, {"55062979": [8]}, {"55062984": [39, 189, 255, 232, 175, 191]}, {"55062991": [16, 142, 40]}, {"55062996": [174, 8]}, {"55062999": [64, 142, 40]}, {"55063003": [4, 174, 8]}, {"55063007": [68, 150, 40]}, {"55063011": [8, 166, 8]}, {"55063015": [72, 162]}, {"55063018": [15, 51, 146, 8]}, {"55063023": [74, 52, 1]}, {"55063027": [255, 21, 1]}, {"55063031": [3]}, {"55063036": [12, 16, 12, 147]}, {"55063044": [143, 191]}, {"55063047": [16, 39, 189]}, {"55063051": [24, 3, 224]}, {"55063055": [8]}, {"55063060": [142, 8]}, {"55063063": [64, 174, 8]}, {"55063067": [104, 142, 8]}, {"55063071": [68, 174, 8]}, {"55063075": [108, 150, 8]}, {"55063079": [72, 166, 8]}, {"55063083": [112, 146, 8]}, {"55063087": [104, 52, 1]}, {"55063091": [255, 21, 1]}, {"55063095": [3]}, {"55063100": [52, 8]}, {"55063103": [1, 162, 8, 15, 51, 3, 224]}, {"55063111": [8]}, {"55063116": [39, 189, 255, 232, 175, 191]}, {"55063123": [16, 150, 8]}, {"55063127": [156, 49, 8]}, {"55063131": [64, 17]}, {"55063135": [5]}, {"55063140": [150, 8]}, {"55063143": [112, 49, 8, 255, 15, 53, 8]}, {"55063151": [48, 166, 8]}, {"55063155": [112, 146, 40]}, {"55063159": [1, 162, 8]}, {"55063163": [105, 150, 40]}, {"55063167": [2, 166, 8]}, {"55063171": [106, 142, 40]}, {"55063175": [4, 174, 8]}, {"55063179": [108, 12, 16, 12, 173, 52, 4]}, {"55063188": [12, 16, 12, 173, 52, 4]}, {"55063195": [1, 12, 16, 12, 173, 52, 4]}, {"55063203": [2, 143, 191]}, {"55063207": [16, 39, 189]}, {"55063211": [24, 3, 224]}, {"55063215": [8]}, {"55063220": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 51, 96, 145, 10]}, {"55063235": [108, 52, 1]}, {"55063239": [255, 17, 65]}, {"55063243": [5]}, {"55063248": [1, 42, 72, 33, 145, 41]}, {"55063256": [21, 32]}, {"55063259": [28]}, {"55063264": [60, 9, 128, 64, 37, 41, 51, 83, 37, 41]}, {"55063275": [1, 145, 42]}, {"55063280": [17, 64]}, {"55063283": [19]}, {"55063288": [2, 10, 88, 33, 145, 107]}, {"55063295": [116, 52, 1]}, {"55063299": [255, 17, 97, 255, 248]}, {"55063308": [146, 12]}, {"55063311": [108, 17, 138, 255, 245]}, {"55063320": [146, 12]}, {"55063323": [109, 17, 138, 255, 242]}, {"55063332": [146, 12]}, {"55063335": [110, 17, 138, 255, 239]}, {"55063344": [161, 11]}, {"55063347": [105, 161, 10]}, {"55063351": [108, 16]}, {"55063355": [4]}, {"55063360": [52, 9]}, {"55063363": [255, 161, 9]}, {"55063367": [105, 161, 9]}, {"55063371": [108, 3, 224]}, {"55063375": [8]}, {"55063380": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063393": [1, 1, 1, 1, 1]}, {"55063399": [1, 1, 1, 1, 1]}, {"55063405": [1]}, {"55063407": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063417": [51, 8, 33, 32, 15]}, {"55063423": [71, 21, 234]}, {"55063427": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063439": [164]}, {"55063441": [15, 122, 3, 20, 64]}, {"55063447": [5, 52, 2, 72, 48, 21, 226]}, {"55063455": [7]}, {"55063460": [36, 25]}, {"55063463": [3, 16]}, {"55063467": [4, 52, 2, 99, 17, 21, 226]}, {"55063475": [2]}, {"55063480": [36, 25]}, {"55063483": [3, 3, 224]}, {"55063487": [8]}, {"55063492": [141, 173, 138, 160, 52, 2, 128]}, {"55063500": [16, 77]}, {"55063503": [2]}, {"55063508": [16]}, {"55063511": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063527": [1, 16, 64]}, {"55063531": [2]}, {"55063536": [16]}, {"55063539": [2, 52, 2]}, {"55063543": [1, 161, 226, 28, 191, 3, 224]}, {"55063551": [8]}, {"55063557": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063571": [164]}, {"55063573": [15, 122, 3, 20, 64]}, {"55063579": [5, 52, 2, 72, 48, 21, 226]}, {"55063587": [7]}, {"55063592": [36, 25]}, {"55063595": [3, 16]}, {"55063599": [4, 52, 2, 99, 17, 21, 226]}, {"55063607": [2]}, {"55063612": [36, 25]}, {"55063615": [3, 3, 224]}, {"55063619": [8]}, {"55063624": [162, 37]}, {"55063627": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063639": [4, 142, 10]}, {"55063644": [17, 64]}, {"55063647": [11]}, {"55063653": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063665": [24, 194, 2, 23]}, {"55063671": [3, 49, 89]}, {"55063675": [255, 129, 234]}, {"55063680": [3, 42, 200, 37, 8, 16, 13, 21, 161, 249]}, {"55063692": [3, 224]}, {"55063695": [8]}] \ No newline at end of file diff --git a/version.py b/version.py index 11a0ec020..2184ec443 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.27 f.LUM' \ No newline at end of file +__version__ = '2.13.28 f.LUM' \ No newline at end of file From 12abd038699af2f5fe853c970cf795489eeeb013 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Fri, 27 Jul 2018 05:13:15 -0400 Subject: [PATCH 203/755] Fixed saria song and minuet giving the same item --- ASM/src/cutscenes.asm | 15 +++++++++++---- ASM/src/hacks.asm | 4 ++-- Regions.py | 24 ++++++++++++------------ Rom.py | 2 -- data/base2current.json | 2 +- version.py | 2 +- 6 files changed, 27 insertions(+), 22 deletions(-) diff --git a/ASM/src/cutscenes.asm b/ASM/src/cutscenes.asm index dfe9cb7e3..6d310fb25 100644 --- a/ASM/src/cutscenes.asm +++ b/ASM/src/cutscenes.asm @@ -69,8 +69,15 @@ override_fairy_ocarina_cutscene: b store_pending_spedial_item nop +;a3 = item ID override_ocarina_songs: - li t0, 0x2B + addi t0, a3, -0x5A + addi t0, t0, 0x61 + b store_pending_spedial_item + nop + +override_requiem_song: + li t0, 0x64 b store_pending_spedial_item nop @@ -81,7 +88,7 @@ override_epona_song: ori t0,t0,0x01 ; t9 = "Invited to Sing With Child Malon" sb t0,0x0EDE(at) - li t0, 0x2B + li t0, 0x68 b store_pending_spedial_item nop @@ -92,13 +99,13 @@ override_suns_song: ori t0,t0,0x04 ; sb t0,0x0EDE(at) - li t0, 0x2B + li t0, 0x6A b store_pending_spedial_item nop override_song_of_time: li a1, 3 - li t0, 0x2B + li t0, 0x6B b store_pending_spedial_item nop diff --git a/ASM/src/hacks.asm b/ASM/src/hacks.asm index 9c20ed788..eb106a1ba 100755 --- a/ASM/src/hacks.asm +++ b/ASM/src/hacks.asm @@ -328,6 +328,7 @@ ;sll t6,a3,0x2 ;lui t5,0x8010 ;addiu t0,t0,-23088 +; a3 = item ID .org 0xAE5DE0 jal override_ocarina_songs li v0,0xFF @@ -339,10 +340,9 @@ item_action_return: ;lui at,0x1 ;addu at,at,s0 .org 0xAC9ABC - jal override_ocarina_songs + jal override_requiem_song nop - ;lw $t6, -0x73d4($t6) ;lw $t7, 0xa4($v1) .org 0xE09F64 diff --git a/Regions.py b/Regions.py index 9edba1c3a..e76643bc1 100644 --- a/Regions.py +++ b/Regions.py @@ -370,18 +370,18 @@ def _create_region(name, type, locations=None, exits=None): 'Lost Woods Generic Grotto Chest': (None, None, 0x14, 'Chest', 0x3E, 'the Lost Woods'), 'Mountain Storms Grotto Chest': (None, None, 0x17, 'Chest', 0x3E, 'Death Mountain Trail'), 'Top of Crater Grotto Chest': (None, None, 0x1A, 'Chest', 0x3E, 'Death Mountain Crater'), - 'Impa at Castle': (0x2E8E925, 0x2E8E925, 0x0A, 'Song', 0x4A, 'Hyrule Castle'), - 'Song from Malon': (0xD7EB53, 0xD7EBCF, 0x09, 'Song', 0x63, 'Lon Lon Ranch'), - 'Song from Composer Grave': (0x332A871, 0x332A871, 0x0B, 'Song', 0x41, 'the Graveyard'), - 'Song from Saria': (0x20B1DB1, 0x20B1DB1, 0x08, 'Song', 0x56, 'Sacred Forest Meadow'), - 'Song from Ocarina of Time': (0x252FC89, 0x252FC89, 0x0C, 'Song', 0x51, 'Hyrule Field'), - 'Song at Windmill': (0xE42C07, 0xE42B8B, 0x0D, 'Song', 0x48, 'Kakariko'), - 'Sheik Forest Song': (0x20B0809, 0x20B0809, 0x02, 'Song', 0x56, 'Sacred Forest Meadow'), - 'Sheik at Temple': (0x2531329, 0x2531329, 0x07, 'Song', 0x43, 'Temple of Time'), - 'Sheik in Crater': (0x224D7F1, 0x224D7F1, 0x03, 'Song', 0x61, 'Death Mountain Crater'), - 'Sheik in Ice Cavern': (0x2BEC889, 0x2BEC889, 0x04, 'Song', 0x09, 'Ice Cavern'), - 'Sheik in Kakariko': (0x2000FE1, 0x2000FE1, 0x06, 'Song', 0x52, 'Kakariko'), - 'Sheik at Colossus': (0x218C57D, 0x218C57D, 0x05, 'Song', 0x5C, 'Desert Colossus'), + 'Impa at Castle': (0x2E8E925, 0x2E8E925, 0x67, 'Song', 0x4A, 'Hyrule Castle'), + 'Song from Malon': (0xD7EB53, 0xD7EBCF, 0x68, 'Song', 0x63, 'Lon Lon Ranch'), + 'Song from Composer Grave': (0x332A871, 0x332A871, 0x6A, 'Song', 0x41, 'the Graveyard'), + 'Song from Saria': (0x20B1DB1, 0x20B1DB1, 0x69, 'Song', 0x56, 'Sacred Forest Meadow'), + 'Song from Ocarina of Time': (0x252FC89, 0x252FC89, 0x6B, 'Song', 0x51, 'Hyrule Field'), + 'Song at Windmill': (0xE42C07, 0xE42B8B, 0x6C, 'Song', 0x48, 'Kakariko'), + 'Sheik Forest Song': (0x20B0809, 0x20B0809, 0x61, 'Song', 0x56, 'Sacred Forest Meadow'), + 'Sheik at Temple': (0x2531329, 0x2531329, 0x66, 'Song', 0x43, 'Temple of Time'), + 'Sheik in Crater': (0x224D7F1, 0x224D7F1, 0x62, 'Song', 0x61, 'Death Mountain Crater'), + 'Sheik in Ice Cavern': (0x2BEC889, 0x2BEC889, 0x63, 'Song', 0x09, 'Ice Cavern'), + 'Sheik in Kakariko': (0x2000FE1, 0x2000FE1, 0x65, 'Song', 0x52, 'Kakariko'), + 'Sheik at Colossus': (0x218C57D, 0x218C57D, 0x64, 'Song', 0x5C, 'Desert Colossus'), 'Gift from Saria': (None, None, 0x3B, 'NPC', 0x5B, 'the Lost Woods'), 'Malon Egg': (None, None, 0x47, 'NPC', 0x5F, 'Hyrule Castle'), 'Zeldas Letter': (None, None, None, 'NPC', None, 'Hyrule Castle'), diff --git a/Rom.py b/Rom.py index 4a12032f3..a08e13f87 100644 --- a/Rom.py +++ b/Rom.py @@ -1499,8 +1499,6 @@ def get_override_entry(location): # Correct song offset if location.item.type == 'Song': item_id = location.item.code + 0xC2 - if location.type == 'Song': - default = 0x2B player_id = (location.item.world.id + 1) << 3 diff --git a/data/base2current.json b/data/base2current.json index 53493b198..c0d10b0ec 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -1 +1 @@ -[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 183]}, {"11311804": [12, 16, 11, 186]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 176, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 72]}, {"11427296": [12, 16, 11, 186, 52, 2, 0, 255, 16, 0, 5, 97]}, {"11427312": [12, 16, 12, 241]}, {"11431496": [12, 16, 11, 181, 1, 15, 192, 33]}, {"11559932": [52, 14, 0, 2, 130]}, {"11559938": [14, 222]}, {"11562028": [12, 16, 13, 18]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 1]}, {"11882076": [12, 16, 12, 222]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 39, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 46, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 53, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 32, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 127]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 18]}, {"12427480": [12, 16, 10, 102]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 106]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 11, 235, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 139]}, {"12491480": [12, 16, 10, 148]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 133]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 60]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 140, 73]}, {"14149503": [164]}, {"14149512": [2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 189]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 205]}, {"14624335": [118]}, {"14720868": [52, 14, 0, 4, 128]}, {"14720874": [14, 222]}, {"14720944": [12, 16, 11, 197]}, {"14848896": [3, 224, 104, 33, 12, 16, 11, 228, 52, 2]}, {"14848909": [160, 248, 33]}, {"14848932": [161, 248, 14, 223]}, {"14872723": [52]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 236, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 48, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 76, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 104, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 220, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 108, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 140, 128, 64, 38, 132, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 172, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 39, 212, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 28, 128, 64, 40]}, {"55059600": [83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 3, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 44, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [2, 52, 2]}, {"55060003": [69, 52, 2]}, {"55060007": [70, 3, 224]}, {"55060011": [8]}, {"55060016": [144, 136]}, {"55060019": [162, 49, 8]}, {"55060023": [6, 17]}, {"55060027": [2, 52, 2]}, {"55060031": [55, 52, 2]}, {"55060035": [56, 3, 224]}, {"55060039": [8]}, {"55060044": [144, 136]}, {"55060047": [161, 49, 8]}, {"55060051": [32, 17]}, {"55060055": [2, 52, 2]}, {"55060059": [121, 52, 2]}, {"55060063": [122, 3, 224]}, {"55060067": [8]}, {"55060072": [144, 136]}, {"55060075": [161, 49, 8]}, {"55060079": [4, 17]}, {"55060083": [2, 52, 2]}, {"55060087": [119, 52, 2]}, {"55060091": [120, 3, 224]}, {"55060095": [8]}, {"55060100": [144, 136]}, {"55060103": [50, 17]}, {"55060107": [2, 52, 2]}, {"55060111": [192, 52, 2]}, {"55060115": [193, 3, 224]}, {"55060119": [8]}, {"55060124": [144, 136]}, {"55060127": [163, 49, 8]}, {"55060131": [3, 17]}, {"55060135": [2, 52, 2]}, {"55060139": [77, 52, 162]}, {"55060144": [3, 224]}, {"55060147": [8]}, {"55060152": [144, 136]}, {"55060155": [163, 49, 8]}, {"55060159": [24, 17]}, {"55060163": [2, 52, 2]}, {"55060167": [77, 52, 162]}, {"55060172": [3, 224]}, {"55060175": [8]}, {"55060180": [3, 224]}, {"55060183": [8]}, {"55060188": [52, 8]}, {"55060191": [1, 160, 136]}, {"55060195": [62, 3, 224]}, {"55060199": [8]}, {"55060204": [36, 136]}, {"55060207": [134, 36, 9, 255, 255, 37, 41]}, {"55060215": [1, 52, 1]}, {"55060219": [3]}, {"55060221": [41, 8, 42, 20, 32]}, {"55060227": [7]}, {"55060232": [1, 9, 80, 33, 145, 75]}, {"55060240": [52, 1]}, {"55060243": [255, 21, 97, 255, 247]}, {"55060252": [161, 69]}, {"55060256": [3, 224]}, {"55060259": [8]}, {"55060264": [36, 136]}, {"55060267": [168, 1, 6, 64, 33, 145, 9]}, {"55060276": [1, 37, 72, 37, 161, 9]}, {"55060284": [3, 224]}, {"55060287": [8]}, {"55060292": [36, 136]}, {"55060295": [188, 1, 5, 64, 33, 129, 9]}, {"55060304": [5, 33]}, {"55060307": [2]}, {"55060312": [52, 9]}, {"55060316": [37, 41]}, {"55060319": [1, 161, 9]}, {"55060324": [3, 224]}, {"55060327": [8]}, {"55060332": [52, 8]}, {"55060335": [1, 160, 136]}, {"55060339": [61, 52, 8]}, {"55060343": [20, 160, 136]}, {"55060347": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [50, 160, 136]}, {"55060375": [58, 52, 8]}, {"55060379": [48, 164, 136, 19, 244, 160, 136]}, {"55060387": [51, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [2, 160, 136]}, {"55060403": [50, 52, 8]}, {"55060407": [1, 160, 136]}, {"55060411": [58, 160, 136]}, {"55060415": [60, 52, 8]}, {"55060419": [96, 164, 136, 19, 244, 160, 136]}, {"55060427": [51, 3, 224]}, {"55060431": [8]}, {"55060436": [144, 136]}, {"55060439": [124, 52, 1]}, {"55060443": [255, 17, 1]}, {"55060447": [6, 52, 2]}, {"55060451": [107, 144, 136]}, {"55060455": [148, 45, 8]}, {"55060459": [6, 17]}, {"55060463": [2, 52, 2]}, {"55060467": [106, 52, 2]}, {"55060471": [3, 3, 224]}, {"55060475": [8]}, {"55060480": [144, 136]}, {"55060483": [123, 52, 1]}, {"55060487": [255, 17, 1]}, {"55060491": [2, 52, 162]}, {"55060496": [52, 2]}, {"55060499": [12, 3, 224]}, {"55060503": [8]}, {"55060508": [52, 8]}, {"55060511": [7, 160, 136]}, {"55060515": [123, 3, 224]}, {"55060519": [8]}, {"55060524": [52, 8]}, {"55060527": [1]}, {"55060529": [168, 64, 4, 140, 137]}, {"55060535": [164, 1, 40, 72, 37, 172, 137]}, {"55060543": [164, 3, 224]}, {"55060547": [8]}, {"55060552": [48, 132]}, {"55060555": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060567": [140, 16, 129]}, {"55060571": [22, 145, 2]}, {"55060575": [117, 52, 1]}, {"55060579": [141, 16, 129]}, {"55060583": [19, 145, 2]}, {"55060587": [117, 16, 128]}, {"55060591": [17, 145, 2]}, {"55060595": [116, 52, 1]}, {"55060599": [138, 16, 129]}, {"55060603": [14, 145, 2]}, {"55060607": [116, 52, 1]}, {"55060611": [139, 16, 129]}, {"55060615": [11, 145, 2]}, {"55060619": [116, 52, 1]}, {"55060623": [88, 16, 129]}, {"55060627": [8, 52, 2]}, {"55060632": [52, 1]}, {"55060635": [120, 16, 129]}, {"55060639": [5, 52, 2]}, {"55060644": [52, 1]}, {"55060647": [121, 16, 129]}, {"55060651": [2, 52, 2]}, {"55060656": [52, 2]}, {"55060659": [255, 3, 224]}, {"55060663": [8]}, {"55060668": [39, 189, 255, 224, 175, 191]}, {"55060675": [16, 175, 176]}, {"55060679": [20, 12, 16, 10, 254]}, {"55060688": [4, 65]}, {"55060691": [2]}, {"55060696": [52, 2]}, {"55060699": [91]}, {"55060701": [64, 32, 33, 12, 16, 11, 100]}, {"55060712": [16, 96]}, {"55060715": [18, 175, 163]}, {"55060719": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060728": [133, 9]}, {"55060731": [2, 17, 32]}, {"55060735": [3, 52, 10]}, {"55060739": [1, 16]}, {"55060743": [8, 165, 10]}, {"55060748": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060759": [6, 144, 102]}, {"55060763": [7, 140, 105]}, {"55060767": [8, 1, 32, 248, 9]}, {"55060776": [143, 163]}, {"55060779": [28, 144, 101]}, {"55060783": [3, 16]}, {"55060787": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060799": [6]}, {"55060801": [74]}, {"55060803": [24]}, {"55060806": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060816": [60, 8, 128, 64, 37, 8, 32]}, {"55060824": [133, 9]}, {"55060827": [2, 17, 32]}, {"55060831": [3, 52, 10]}, {"55060835": [1, 165, 10]}, {"55060840": [52, 5]}, {"55060843": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060855": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060866": [48, 33, 143, 191]}, {"55060871": [16, 143, 176]}, {"55060875": [20, 39, 189]}, {"55060879": [32, 3, 224]}, {"55060883": [8]}, {"55060888": [143, 166]}, {"55060891": [48, 132, 197]}, {"55060895": [4, 8, 16, 10, 110]}, {"55060904": [143, 185]}, {"55060907": [44, 135, 37]}, {"55060911": [4, 8, 16, 10, 110]}, {"55060920": [60, 10, 128, 64, 37, 74, 32, 4, 141, 75]}, {"55060931": [12, 17, 96]}, {"55060935": [2]}, {"55060940": [149, 69]}, {"55060943": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060956": [60, 9, 128, 64, 37, 41, 32, 20, 129, 42]}, {"55060967": [3, 5, 64]}, {"55060971": [2, 1, 42, 72, 32, 161, 32]}, {"55060980": [3, 224]}, {"55060983": [8]}, {"55060988": [60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55060999": [12, 17, 32]}, {"55061003": [2]}, {"55061008": [129, 3]}, {"55061011": [2]}, {"55061013": [3, 15, 195]}, {"55061017": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061031": [8]}, {"55061036": [144, 69]}, {"55061039": [3, 60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55061051": [12, 17, 32]}, {"55061055": [2]}, {"55061060": [145, 5]}, {"55061063": [3, 3, 224]}, {"55061067": [8]}, {"55061072": [143, 162]}, {"55061075": [36, 144, 69]}, {"55061080": [60, 8, 128, 64, 37, 8, 32]}, {"55061088": [133, 9]}, {"55061091": [2, 17, 32]}, {"55061095": [4, 52, 10]}, {"55061099": [1, 165, 10]}, {"55061104": [16]}, {"55061107": [24, 52, 5]}, {"55061111": [65, 60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55061123": [12, 17, 32]}, {"55061127": [19]}, {"55061132": [145, 5]}, {"55061135": [1, 175, 164]}, {"55061140": [175, 165]}, {"55061143": [4, 175, 166]}, {"55061147": [8, 39, 189, 255, 232, 175, 191]}, {"55061155": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061167": [6, 145, 6]}, {"55061171": [7, 141, 9]}, {"55061175": [8, 1, 32, 248, 9]}, {"55061184": [143, 191]}, {"55061187": [16, 39, 189]}, {"55061191": [24, 143, 164]}, {"55061196": [143, 165]}, {"55061199": [4, 143, 166]}, {"55061203": [8, 3, 224]}, {"55061207": [8]}, {"55061212": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061223": [16, 175, 163]}, {"55061227": [20, 175, 191]}, {"55061231": [24, 12, 16, 10, 196]}, {"55061240": [143, 162]}, {"55061243": [16, 143, 163]}, {"55061247": [20, 143, 191]}, {"55061251": [24, 39, 189]}, {"55061255": [32, 3, 224]}, {"55061259": [8]}, {"55061264": [39, 189, 255, 232, 175, 191]}, {"55061271": [16, 60, 8, 128, 64, 37, 8, 32, 4, 173]}, {"55061284": [173]}, {"55061287": [4, 173]}, {"55061291": [8, 173]}, {"55061295": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061311": [42]}, {"55061317": [9, 15, 195, 1, 33, 32, 38]}, {"55061325": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 254]}, {"55061340": [4, 64]}, {"55061343": [34]}, {"55061348": [52, 68]}, {"55061352": [12, 16, 11, 100]}, {"55061360": [16, 96]}, {"55061363": [12]}, {"55061368": [60, 8, 128, 64, 37, 8, 32, 4, 140, 105]}, {"55061380": [173, 9]}, {"55061384": [140, 105]}, {"55061387": [4, 173, 9]}, {"55061391": [4, 140, 105]}, {"55061395": [8, 173, 9]}, {"55061399": [8, 52, 9]}, {"55061403": [1, 173, 9]}, {"55061407": [12, 144, 98]}, {"55061412": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061428": [52, 1]}, {"55061431": [10, 21, 65]}, {"55061435": [6]}, {"55061440": [149, 42]}, {"55061443": [28, 49, 74, 240, 31]}, {"55061449": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061459": [28, 129, 9, 4, 36, 5, 33]}, {"55061467": [2]}, {"55061473": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061483": [16, 39, 189]}, {"55061487": [24, 3, 224]}, {"55061491": [8]}, {"55061496": [39, 189, 255, 232, 175, 191]}, {"55061503": [16, 12, 16, 11, 12]}, {"55061512": [36, 1, 255, 255, 16, 65]}, {"55061519": [4]}, {"55061524": [52, 68]}, {"55061528": [12, 16, 11, 64]}, {"55061536": [143, 191]}, {"55061539": [16, 39, 189]}, {"55061543": [24, 3, 224]}, {"55061547": [8]}, {"55061552": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061563": [164, 52, 8]}, {"55061568": [52, 137]}, {"55061572": [148, 170]}, {"55061576": [52, 1, 1, 156, 21, 65]}, {"55061583": [8]}, {"55061588": [52, 8]}, {"55061591": [3, 148, 171]}, {"55061595": [28, 49, 105]}, {"55061599": [255, 49, 98, 31]}, {"55061605": [2, 18, 2, 16]}, {"55061611": [31]}, {"55061616": [52, 1]}, {"55061619": [10, 21, 65]}, {"55061623": [14]}, {"55061628": [148, 171]}, {"55061631": [28, 52, 1]}, {"55061635": [16, 20, 65]}, {"55061639": [8]}, {"55061644": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061655": [4]}, {"55061660": [36, 2, 255, 255, 16]}, {"55061667": [21]}, {"55061672": [52, 8]}, {"55061675": [1, 49, 105]}, {"55061679": [31, 52, 1]}, {"55061683": [21, 21, 65]}, {"55061687": [12]}, {"55061692": [52, 1]}, {"55061695": [62, 16, 129]}, {"55061699": [7]}, {"55061704": [52, 1]}, {"55061707": [66, 16, 129]}, {"55061711": [4]}, {"55061716": [36, 2, 255, 255, 16]}, {"55061723": [7]}, {"55061728": [52, 8]}, {"55061731": [2, 144, 169, 1, 65]}, {"55061737": [2, 18]}, {"55061741": [72, 16, 37]}, {"55061745": [2, 18]}, {"55061749": [73, 16, 37, 3, 224]}, {"55061755": [8]}, {"55061760": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061772": [129, 9]}, {"55061776": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061799": [4, 141, 9]}, {"55061804": [17, 32]}, {"55061807": [22]}, {"55061813": [9, 82, 2, 49, 75, 248]}, {"55061821": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061844": [49, 34]}, {"55061847": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061868": [60, 12, 128, 64, 37, 140, 28]}, {"55061876": [129, 140]}, {"55061880": [17, 108]}, {"55061883": [3, 165, 32]}, {"55061887": [2, 161, 43]}, {"55061891": [2, 161, 34]}, {"55061895": [3, 3, 224]}, {"55061899": [8]}, {"55061904": [39, 189, 255, 224, 175, 176]}, {"55061911": [16, 175, 177]}, {"55061915": [20, 175, 191]}, {"55061919": [24, 52, 130]}, {"55061924": [52, 80]}, {"55061928": [38, 8, 255, 128, 5]}, {"55061935": [18]}, {"55061940": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55061951": [16, 1, 9]}, {"55061955": [24]}, {"55061958": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061976": [142, 40]}, {"55061979": [12, 1]}, {"55061982": [248, 9]}, {"55061988": [20, 80, 255, 239]}, {"55061996": [54, 35]}, {"55062000": [16]}, {"55062003": [2]}, {"55062008": [52, 3]}, {"55062012": [143, 176]}, {"55062015": [16, 143, 177]}, {"55062019": [20, 143, 191]}, {"55062023": [24, 39, 189]}, {"55062027": [32, 3, 224]}, {"55062031": [8]}, {"55062036": [140, 136, 29, 44, 52, 9]}, {"55062043": [1]}, {"55062045": [9, 78]}, {"55062048": [1, 9, 16, 36, 16, 64]}, {"55062055": [36]}, {"55062060": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062075": [164, 52, 1]}, {"55062079": [61, 17, 129]}, {"55062083": [10]}, {"55062089": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062099": [25]}, {"55062104": [52, 13]}, {"55062107": [1, 161, 141, 29, 40, 37, 74]}, {"55062115": [3, 16]}, {"55062119": [9]}, {"55062124": [52, 12]}, {"55062127": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062143": [14]}, {"55062148": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062184": [60, 9, 128, 64, 37, 41, 32, 20, 161, 40]}, {"55062196": [52, 2]}, {"55062200": [3, 224]}, {"55062203": [8]}, {"55062208": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062220": [16]}, {"55062223": [29]}, {"55062228": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062240": [16]}, {"55062243": [24]}, {"55062248": [52, 8]}, {"55062251": [43, 16]}, {"55062255": [21]}, {"55062260": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062275": [1, 160, 40, 14, 222, 52, 8]}, {"55062283": [43, 16]}, {"55062287": [13]}, {"55062292": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062307": [4, 160, 40, 14, 222, 52, 8]}, {"55062315": [43, 16]}, {"55062319": [5]}, {"55062324": [52, 5]}, {"55062327": [3, 52, 8]}, {"55062331": [43, 16]}, {"55062335": [1]}, {"55062340": [60, 9, 128, 64, 37, 41, 32, 20, 60, 10, 128, 64, 37, 74, 32, 23, 129, 44]}, {"55062360": [17, 136]}, {"55062363": [11, 33, 41]}, {"55062367": [1, 21, 42, 255, 252]}, {"55062376": [60, 9, 128, 64, 37, 41, 32, 19, 33, 41]}, {"55062387": [1, 17, 42]}, {"55062391": [4, 129, 44]}, {"55062396": [21, 128, 255, 252]}, {"55062404": [161, 40]}, {"55062408": [3, 224]}, {"55062411": [8]}, {"55062417": [96, 120, 33, 129, 236, 14, 223, 53, 152]}, {"55062427": [128, 49, 142]}, {"55062431": [128, 52, 3]}, {"55062435": [5, 3, 224]}, {"55062439": [8]}, {"55062444": [175, 164]}, {"55062447": [104, 175, 165]}, {"55062451": [108, 175, 166]}, {"55062455": [112, 175, 167]}, {"55062459": [116, 39, 189, 255, 232, 175, 163]}, {"55062467": [16, 175, 191]}, {"55062471": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062487": [32, 21]}, {"55062491": [31]}, {"55062496": [60, 9, 128, 64, 37, 41, 32, 23, 52, 10]}, {"55062507": [255, 161, 42]}, {"55062512": [60, 9, 128, 64, 37, 41, 32, 20, 36, 10, 255, 255, 52, 12]}, {"55062527": [3, 33, 74]}, {"55062531": [1, 17, 76]}, {"55062535": [20, 1, 42, 88, 32, 129, 104]}, {"55062544": [17]}, {"55062546": [255, 251]}, {"55062552": [60, 9, 128, 64, 37, 41, 32, 23, 161, 42]}, {"55062564": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062575": [1, 165, 42]}, {"55062580": [60, 9, 128, 65, 52, 10]}, {"55062587": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 196]}, {"55062616": [143, 163]}, {"55062619": [16, 143, 191]}, {"55062623": [20, 39, 189]}, {"55062627": [24, 143, 164]}, {"55062631": [104, 143, 165]}, {"55062635": [108, 143, 166]}, {"55062639": [112, 143, 167]}, {"55062643": [116, 132, 110, 19, 196, 3, 224]}, {"55062651": [8]}, {"55062656": [147, 25]}, {"55062659": [116, 52, 1]}, {"55062663": [255, 23, 33]}, {"55062667": [2]}, {"55062672": [52, 25]}, {"55062675": [44, 3, 224]}, {"55062679": [8, 167, 185]}, {"55062683": [154, 147, 44]}, {"55062687": [116, 52, 1]}, {"55062691": [255, 21, 129]}, {"55062695": [2]}, {"55062700": [52, 12]}, {"55062703": [44, 3, 224]}, {"55062707": [8]}, {"55062712": [145, 174]}, {"55062715": [116, 52, 1]}, {"55062719": [255, 21, 193]}, {"55062723": [2]}, {"55062728": [52, 14]}, {"55062731": [44, 3, 224]}, {"55062735": [8, 167, 174]}, {"55062739": [154, 145, 207]}, {"55062743": [116, 52, 1]}, {"55062747": [255, 21, 225]}, {"55062751": [2]}, {"55062756": [52, 15]}, {"55062759": [44, 3, 224]}, {"55062763": [8, 167, 175]}, {"55062767": [154, 60, 8, 128, 64, 37, 8, 32, 24, 142, 9]}, {"55062779": [104, 173, 9]}, {"55062784": [142, 9]}, {"55062787": [108, 173, 9]}, {"55062791": [4, 150, 9]}, {"55062795": [112, 165, 9]}, {"55062799": [8, 150, 9]}, {"55062803": [156, 165, 9]}, {"55062807": [10, 3, 224]}, {"55062811": [8, 142, 14]}, {"55062815": [4, 39, 189, 255, 224, 175, 176]}, {"55062823": [16, 175, 177]}, {"55062827": [20, 175, 191]}, {"55062831": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 24, 142, 8]}, {"55062851": [4, 17]}, {"55062855": [5]}, {"55062860": [12, 16, 12, 114]}, {"55062868": [16]}, {"55062871": [3]}, {"55062876": [12, 16, 12, 133]}, {"55062884": [12, 16, 12, 101, 52, 4]}, {"55062892": [12, 16, 12, 101, 52, 4]}, {"55062899": [1, 12, 16, 12, 101, 52, 4]}, {"55062907": [2, 143, 176]}, {"55062911": [16, 143, 177]}, {"55062915": [20, 143, 191]}, {"55062919": [24, 39, 189]}, {"55062923": [32, 3, 224]}, {"55062927": [8]}, {"55062932": [2, 4, 64, 33, 145, 9]}, {"55062939": [108, 52, 1]}, {"55062943": [255, 17, 33]}, {"55062947": [7]}, {"55062952": [2, 9, 72, 33, 145, 41]}, {"55062959": [116, 52, 1]}, {"55062963": [44, 17, 33]}, {"55062967": [2]}, {"55062972": [161, 9]}, {"55062975": [105, 3, 224]}, {"55062979": [8]}, {"55062984": [39, 189, 255, 232, 175, 191]}, {"55062991": [16, 142, 40]}, {"55062996": [174, 8]}, {"55062999": [64, 142, 40]}, {"55063003": [4, 174, 8]}, {"55063007": [68, 150, 40]}, {"55063011": [8, 166, 8]}, {"55063015": [72, 162]}, {"55063018": [15, 51, 146, 8]}, {"55063023": [74, 52, 1]}, {"55063027": [255, 21, 1]}, {"55063031": [3]}, {"55063036": [12, 16, 12, 147]}, {"55063044": [143, 191]}, {"55063047": [16, 39, 189]}, {"55063051": [24, 3, 224]}, {"55063055": [8]}, {"55063060": [142, 8]}, {"55063063": [64, 174, 8]}, {"55063067": [104, 142, 8]}, {"55063071": [68, 174, 8]}, {"55063075": [108, 150, 8]}, {"55063079": [72, 166, 8]}, {"55063083": [112, 146, 8]}, {"55063087": [104, 52, 1]}, {"55063091": [255, 21, 1]}, {"55063095": [3]}, {"55063100": [52, 8]}, {"55063103": [1, 162, 8, 15, 51, 3, 224]}, {"55063111": [8]}, {"55063116": [39, 189, 255, 232, 175, 191]}, {"55063123": [16, 150, 8]}, {"55063127": [156, 49, 8]}, {"55063131": [64, 17]}, {"55063135": [5]}, {"55063140": [150, 8]}, {"55063143": [112, 49, 8, 255, 15, 53, 8]}, {"55063151": [48, 166, 8]}, {"55063155": [112, 146, 40]}, {"55063159": [1, 162, 8]}, {"55063163": [105, 150, 40]}, {"55063167": [2, 166, 8]}, {"55063171": [106, 142, 40]}, {"55063175": [4, 174, 8]}, {"55063179": [108, 12, 16, 12, 173, 52, 4]}, {"55063188": [12, 16, 12, 173, 52, 4]}, {"55063195": [1, 12, 16, 12, 173, 52, 4]}, {"55063203": [2, 143, 191]}, {"55063207": [16, 39, 189]}, {"55063211": [24, 3, 224]}, {"55063215": [8]}, {"55063220": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 51, 96, 145, 10]}, {"55063235": [108, 52, 1]}, {"55063239": [255, 17, 65]}, {"55063243": [5]}, {"55063248": [1, 42, 72, 33, 145, 41]}, {"55063256": [21, 32]}, {"55063259": [28]}, {"55063264": [60, 9, 128, 64, 37, 41, 51, 83, 37, 41]}, {"55063275": [1, 145, 42]}, {"55063280": [17, 64]}, {"55063283": [19]}, {"55063288": [2, 10, 88, 33, 145, 107]}, {"55063295": [116, 52, 1]}, {"55063299": [255, 17, 97, 255, 248]}, {"55063308": [146, 12]}, {"55063311": [108, 17, 138, 255, 245]}, {"55063320": [146, 12]}, {"55063323": [109, 17, 138, 255, 242]}, {"55063332": [146, 12]}, {"55063335": [110, 17, 138, 255, 239]}, {"55063344": [161, 11]}, {"55063347": [105, 161, 10]}, {"55063351": [108, 16]}, {"55063355": [4]}, {"55063360": [52, 9]}, {"55063363": [255, 161, 9]}, {"55063367": [105, 161, 9]}, {"55063371": [108, 3, 224]}, {"55063375": [8]}, {"55063380": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063393": [1, 1, 1, 1, 1]}, {"55063399": [1, 1, 1, 1, 1]}, {"55063405": [1]}, {"55063407": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063417": [51, 8, 33, 32, 15]}, {"55063423": [71, 21, 234]}, {"55063427": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063439": [164]}, {"55063441": [15, 122, 3, 20, 64]}, {"55063447": [5, 52, 2, 72, 48, 21, 226]}, {"55063455": [7]}, {"55063460": [36, 25]}, {"55063463": [3, 16]}, {"55063467": [4, 52, 2, 99, 17, 21, 226]}, {"55063475": [2]}, {"55063480": [36, 25]}, {"55063483": [3, 3, 224]}, {"55063487": [8]}, {"55063492": [141, 173, 138, 160, 52, 2, 128]}, {"55063500": [16, 77]}, {"55063503": [2]}, {"55063508": [16]}, {"55063511": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063527": [1, 16, 64]}, {"55063531": [2]}, {"55063536": [16]}, {"55063539": [2, 52, 2]}, {"55063543": [1, 161, 226, 28, 191, 3, 224]}, {"55063551": [8]}, {"55063557": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063571": [164]}, {"55063573": [15, 122, 3, 20, 64]}, {"55063579": [5, 52, 2, 72, 48, 21, 226]}, {"55063587": [7]}, {"55063592": [36, 25]}, {"55063595": [3, 16]}, {"55063599": [4, 52, 2, 99, 17, 21, 226]}, {"55063607": [2]}, {"55063612": [36, 25]}, {"55063615": [3, 3, 224]}, {"55063619": [8]}, {"55063624": [162, 37]}, {"55063627": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063639": [4, 142, 10]}, {"55063644": [17, 64]}, {"55063647": [11]}, {"55063653": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063665": [24, 194, 2, 23]}, {"55063671": [3, 49, 89]}, {"55063675": [255, 129, 234]}, {"55063680": [3, 42, 200, 37, 8, 16, 13, 21, 161, 249]}, {"55063692": [3, 224]}, {"55063695": [8]}] \ No newline at end of file +[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 183]}, {"11311804": [12, 16, 11, 190]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 176, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 76]}, {"11427296": [12, 16, 11, 186, 52, 2, 0, 255, 16, 0, 5, 97]}, {"11427312": [12, 16, 12, 245]}, {"11431496": [12, 16, 11, 181, 1, 15, 192, 33]}, {"11559932": [52, 14, 0, 2, 130]}, {"11559938": [14, 222]}, {"11562028": [12, 16, 13, 22]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 5]}, {"11882076": [12, 16, 12, 226]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 43, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 50, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 57, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 36, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 127]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 18]}, {"12427480": [12, 16, 10, 102]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 106]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 11, 239, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 139]}, {"12491480": [12, 16, 10, 148]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 133]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 64]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 140, 73]}, {"14149503": [164]}, {"14149512": [2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 193]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 209]}, {"14624335": [118]}, {"14720868": [52, 14, 0, 4, 128]}, {"14720874": [14, 222]}, {"14720944": [12, 16, 11, 201]}, {"14848896": [3, 224, 104, 33, 12, 16, 11, 232, 52, 2]}, {"14848909": [160, 248, 33]}, {"14848932": [161, 248, 14, 223]}, {"14872723": [52]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 236, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 48, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 76, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 104, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 220, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 108, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 140, 128, 64, 38, 132, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 172, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 39, 212, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 28, 128, 64, 40]}, {"55059600": [83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 3, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 44, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [2, 52, 2]}, {"55060003": [69, 52, 2]}, {"55060007": [70, 3, 224]}, {"55060011": [8]}, {"55060016": [144, 136]}, {"55060019": [162, 49, 8]}, {"55060023": [6, 17]}, {"55060027": [2, 52, 2]}, {"55060031": [55, 52, 2]}, {"55060035": [56, 3, 224]}, {"55060039": [8]}, {"55060044": [144, 136]}, {"55060047": [161, 49, 8]}, {"55060051": [32, 17]}, {"55060055": [2, 52, 2]}, {"55060059": [121, 52, 2]}, {"55060063": [122, 3, 224]}, {"55060067": [8]}, {"55060072": [144, 136]}, {"55060075": [161, 49, 8]}, {"55060079": [4, 17]}, {"55060083": [2, 52, 2]}, {"55060087": [119, 52, 2]}, {"55060091": [120, 3, 224]}, {"55060095": [8]}, {"55060100": [144, 136]}, {"55060103": [50, 17]}, {"55060107": [2, 52, 2]}, {"55060111": [192, 52, 2]}, {"55060115": [193, 3, 224]}, {"55060119": [8]}, {"55060124": [144, 136]}, {"55060127": [163, 49, 8]}, {"55060131": [3, 17]}, {"55060135": [2, 52, 2]}, {"55060139": [77, 52, 162]}, {"55060144": [3, 224]}, {"55060147": [8]}, {"55060152": [144, 136]}, {"55060155": [163, 49, 8]}, {"55060159": [24, 17]}, {"55060163": [2, 52, 2]}, {"55060167": [77, 52, 162]}, {"55060172": [3, 224]}, {"55060175": [8]}, {"55060180": [3, 224]}, {"55060183": [8]}, {"55060188": [52, 8]}, {"55060191": [1, 160, 136]}, {"55060195": [62, 3, 224]}, {"55060199": [8]}, {"55060204": [36, 136]}, {"55060207": [134, 36, 9, 255, 255, 37, 41]}, {"55060215": [1, 52, 1]}, {"55060219": [3]}, {"55060221": [41, 8, 42, 20, 32]}, {"55060227": [7]}, {"55060232": [1, 9, 80, 33, 145, 75]}, {"55060240": [52, 1]}, {"55060243": [255, 21, 97, 255, 247]}, {"55060252": [161, 69]}, {"55060256": [3, 224]}, {"55060259": [8]}, {"55060264": [36, 136]}, {"55060267": [168, 1, 6, 64, 33, 145, 9]}, {"55060276": [1, 37, 72, 37, 161, 9]}, {"55060284": [3, 224]}, {"55060287": [8]}, {"55060292": [36, 136]}, {"55060295": [188, 1, 5, 64, 33, 129, 9]}, {"55060304": [5, 33]}, {"55060307": [2]}, {"55060312": [52, 9]}, {"55060316": [37, 41]}, {"55060319": [1, 161, 9]}, {"55060324": [3, 224]}, {"55060327": [8]}, {"55060332": [52, 8]}, {"55060335": [1, 160, 136]}, {"55060339": [61, 52, 8]}, {"55060343": [20, 160, 136]}, {"55060347": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [50, 160, 136]}, {"55060375": [58, 52, 8]}, {"55060379": [48, 164, 136, 19, 244, 160, 136]}, {"55060387": [51, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [2, 160, 136]}, {"55060403": [50, 52, 8]}, {"55060407": [1, 160, 136]}, {"55060411": [58, 160, 136]}, {"55060415": [60, 52, 8]}, {"55060419": [96, 164, 136, 19, 244, 160, 136]}, {"55060427": [51, 3, 224]}, {"55060431": [8]}, {"55060436": [144, 136]}, {"55060439": [124, 52, 1]}, {"55060443": [255, 17, 1]}, {"55060447": [6, 52, 2]}, {"55060451": [107, 144, 136]}, {"55060455": [148, 45, 8]}, {"55060459": [6, 17]}, {"55060463": [2, 52, 2]}, {"55060467": [106, 52, 2]}, {"55060471": [3, 3, 224]}, {"55060475": [8]}, {"55060480": [144, 136]}, {"55060483": [123, 52, 1]}, {"55060487": [255, 17, 1]}, {"55060491": [2, 52, 162]}, {"55060496": [52, 2]}, {"55060499": [12, 3, 224]}, {"55060503": [8]}, {"55060508": [52, 8]}, {"55060511": [7, 160, 136]}, {"55060515": [123, 3, 224]}, {"55060519": [8]}, {"55060524": [52, 8]}, {"55060527": [1]}, {"55060529": [168, 64, 4, 140, 137]}, {"55060535": [164, 1, 40, 72, 37, 172, 137]}, {"55060543": [164, 3, 224]}, {"55060547": [8]}, {"55060552": [48, 132]}, {"55060555": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060567": [140, 16, 129]}, {"55060571": [22, 145, 2]}, {"55060575": [117, 52, 1]}, {"55060579": [141, 16, 129]}, {"55060583": [19, 145, 2]}, {"55060587": [117, 16, 128]}, {"55060591": [17, 145, 2]}, {"55060595": [116, 52, 1]}, {"55060599": [138, 16, 129]}, {"55060603": [14, 145, 2]}, {"55060607": [116, 52, 1]}, {"55060611": [139, 16, 129]}, {"55060615": [11, 145, 2]}, {"55060619": [116, 52, 1]}, {"55060623": [88, 16, 129]}, {"55060627": [8, 52, 2]}, {"55060632": [52, 1]}, {"55060635": [120, 16, 129]}, {"55060639": [5, 52, 2]}, {"55060644": [52, 1]}, {"55060647": [121, 16, 129]}, {"55060651": [2, 52, 2]}, {"55060656": [52, 2]}, {"55060659": [255, 3, 224]}, {"55060663": [8]}, {"55060668": [39, 189, 255, 224, 175, 191]}, {"55060675": [16, 175, 176]}, {"55060679": [20, 12, 16, 10, 254]}, {"55060688": [4, 65]}, {"55060691": [2]}, {"55060696": [52, 2]}, {"55060699": [91]}, {"55060701": [64, 32, 33, 12, 16, 11, 100]}, {"55060712": [16, 96]}, {"55060715": [18, 175, 163]}, {"55060719": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060728": [133, 9]}, {"55060731": [2, 17, 32]}, {"55060735": [3, 52, 10]}, {"55060739": [1, 16]}, {"55060743": [8, 165, 10]}, {"55060748": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060759": [6, 144, 102]}, {"55060763": [7, 140, 105]}, {"55060767": [8, 1, 32, 248, 9]}, {"55060776": [143, 163]}, {"55060779": [28, 144, 101]}, {"55060783": [3, 16]}, {"55060787": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060799": [6]}, {"55060801": [74]}, {"55060803": [24]}, {"55060806": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060816": [60, 8, 128, 64, 37, 8, 32]}, {"55060824": [133, 9]}, {"55060827": [2, 17, 32]}, {"55060831": [3, 52, 10]}, {"55060835": [1, 165, 10]}, {"55060840": [52, 5]}, {"55060843": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060855": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060866": [48, 33, 143, 191]}, {"55060871": [16, 143, 176]}, {"55060875": [20, 39, 189]}, {"55060879": [32, 3, 224]}, {"55060883": [8]}, {"55060888": [143, 166]}, {"55060891": [48, 132, 197]}, {"55060895": [4, 8, 16, 10, 110]}, {"55060904": [143, 185]}, {"55060907": [44, 135, 37]}, {"55060911": [4, 8, 16, 10, 110]}, {"55060920": [60, 10, 128, 64, 37, 74, 32, 4, 141, 75]}, {"55060931": [12, 17, 96]}, {"55060935": [2]}, {"55060940": [149, 69]}, {"55060943": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060956": [60, 9, 128, 64, 37, 41, 32, 20, 129, 42]}, {"55060967": [3, 5, 64]}, {"55060971": [2, 1, 42, 72, 32, 161, 32]}, {"55060980": [3, 224]}, {"55060983": [8]}, {"55060988": [60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55060999": [12, 17, 32]}, {"55061003": [2]}, {"55061008": [129, 3]}, {"55061011": [2]}, {"55061013": [3, 15, 195]}, {"55061017": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061031": [8]}, {"55061036": [144, 69]}, {"55061039": [3, 60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55061051": [12, 17, 32]}, {"55061055": [2]}, {"55061060": [145, 5]}, {"55061063": [3, 3, 224]}, {"55061067": [8]}, {"55061072": [143, 162]}, {"55061075": [36, 144, 69]}, {"55061080": [60, 8, 128, 64, 37, 8, 32]}, {"55061088": [133, 9]}, {"55061091": [2, 17, 32]}, {"55061095": [4, 52, 10]}, {"55061099": [1, 165, 10]}, {"55061104": [16]}, {"55061107": [24, 52, 5]}, {"55061111": [65, 60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55061123": [12, 17, 32]}, {"55061127": [19]}, {"55061132": [145, 5]}, {"55061135": [1, 175, 164]}, {"55061140": [175, 165]}, {"55061143": [4, 175, 166]}, {"55061147": [8, 39, 189, 255, 232, 175, 191]}, {"55061155": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061167": [6, 145, 6]}, {"55061171": [7, 141, 9]}, {"55061175": [8, 1, 32, 248, 9]}, {"55061184": [143, 191]}, {"55061187": [16, 39, 189]}, {"55061191": [24, 143, 164]}, {"55061196": [143, 165]}, {"55061199": [4, 143, 166]}, {"55061203": [8, 3, 224]}, {"55061207": [8]}, {"55061212": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061223": [16, 175, 163]}, {"55061227": [20, 175, 191]}, {"55061231": [24, 12, 16, 10, 196]}, {"55061240": [143, 162]}, {"55061243": [16, 143, 163]}, {"55061247": [20, 143, 191]}, {"55061251": [24, 39, 189]}, {"55061255": [32, 3, 224]}, {"55061259": [8]}, {"55061264": [39, 189, 255, 232, 175, 191]}, {"55061271": [16, 60, 8, 128, 64, 37, 8, 32, 4, 173]}, {"55061284": [173]}, {"55061287": [4, 173]}, {"55061291": [8, 173]}, {"55061295": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061311": [42]}, {"55061317": [9, 15, 195, 1, 33, 32, 38]}, {"55061325": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 254]}, {"55061340": [4, 64]}, {"55061343": [34]}, {"55061348": [52, 68]}, {"55061352": [12, 16, 11, 100]}, {"55061360": [16, 96]}, {"55061363": [12]}, {"55061368": [60, 8, 128, 64, 37, 8, 32, 4, 140, 105]}, {"55061380": [173, 9]}, {"55061384": [140, 105]}, {"55061387": [4, 173, 9]}, {"55061391": [4, 140, 105]}, {"55061395": [8, 173, 9]}, {"55061399": [8, 52, 9]}, {"55061403": [1, 173, 9]}, {"55061407": [12, 144, 98]}, {"55061412": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061428": [52, 1]}, {"55061431": [10, 21, 65]}, {"55061435": [6]}, {"55061440": [149, 42]}, {"55061443": [28, 49, 74, 240, 31]}, {"55061449": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061459": [28, 129, 9, 4, 36, 5, 33]}, {"55061467": [2]}, {"55061473": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061483": [16, 39, 189]}, {"55061487": [24, 3, 224]}, {"55061491": [8]}, {"55061496": [39, 189, 255, 232, 175, 191]}, {"55061503": [16, 12, 16, 11, 12]}, {"55061512": [36, 1, 255, 255, 16, 65]}, {"55061519": [4]}, {"55061524": [52, 68]}, {"55061528": [12, 16, 11, 64]}, {"55061536": [143, 191]}, {"55061539": [16, 39, 189]}, {"55061543": [24, 3, 224]}, {"55061547": [8]}, {"55061552": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061563": [164, 52, 8]}, {"55061568": [52, 137]}, {"55061572": [148, 170]}, {"55061576": [52, 1, 1, 156, 21, 65]}, {"55061583": [8]}, {"55061588": [52, 8]}, {"55061591": [3, 148, 171]}, {"55061595": [28, 49, 105]}, {"55061599": [255, 49, 98, 31]}, {"55061605": [2, 18, 2, 16]}, {"55061611": [31]}, {"55061616": [52, 1]}, {"55061619": [10, 21, 65]}, {"55061623": [14]}, {"55061628": [148, 171]}, {"55061631": [28, 52, 1]}, {"55061635": [16, 20, 65]}, {"55061639": [8]}, {"55061644": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061655": [4]}, {"55061660": [36, 2, 255, 255, 16]}, {"55061667": [21]}, {"55061672": [52, 8]}, {"55061675": [1, 49, 105]}, {"55061679": [31, 52, 1]}, {"55061683": [21, 21, 65]}, {"55061687": [12]}, {"55061692": [52, 1]}, {"55061695": [62, 16, 129]}, {"55061699": [7]}, {"55061704": [52, 1]}, {"55061707": [66, 16, 129]}, {"55061711": [4]}, {"55061716": [36, 2, 255, 255, 16]}, {"55061723": [7]}, {"55061728": [52, 8]}, {"55061731": [2, 144, 169, 1, 65]}, {"55061737": [2, 18]}, {"55061741": [72, 16, 37]}, {"55061745": [2, 18]}, {"55061749": [73, 16, 37, 3, 224]}, {"55061755": [8]}, {"55061760": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061772": [129, 9]}, {"55061776": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061799": [4, 141, 9]}, {"55061804": [17, 32]}, {"55061807": [22]}, {"55061813": [9, 82, 2, 49, 75, 248]}, {"55061821": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061844": [49, 34]}, {"55061847": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061868": [60, 12, 128, 64, 37, 140, 28]}, {"55061876": [129, 140]}, {"55061880": [17, 108]}, {"55061883": [3, 165, 32]}, {"55061887": [2, 161, 43]}, {"55061891": [2, 161, 34]}, {"55061895": [3, 3, 224]}, {"55061899": [8]}, {"55061904": [39, 189, 255, 224, 175, 176]}, {"55061911": [16, 175, 177]}, {"55061915": [20, 175, 191]}, {"55061919": [24, 52, 130]}, {"55061924": [52, 80]}, {"55061928": [38, 8, 255, 128, 5]}, {"55061935": [18]}, {"55061940": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55061951": [16, 1, 9]}, {"55061955": [24]}, {"55061958": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061976": [142, 40]}, {"55061979": [12, 1]}, {"55061982": [248, 9]}, {"55061988": [20, 80, 255, 239]}, {"55061996": [54, 35]}, {"55062000": [16]}, {"55062003": [2]}, {"55062008": [52, 3]}, {"55062012": [143, 176]}, {"55062015": [16, 143, 177]}, {"55062019": [20, 143, 191]}, {"55062023": [24, 39, 189]}, {"55062027": [32, 3, 224]}, {"55062031": [8]}, {"55062036": [140, 136, 29, 44, 52, 9]}, {"55062043": [1]}, {"55062045": [9, 78]}, {"55062048": [1, 9, 16, 36, 16, 64]}, {"55062055": [36]}, {"55062060": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062075": [164, 52, 1]}, {"55062079": [61, 17, 129]}, {"55062083": [10]}, {"55062089": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062099": [25]}, {"55062104": [52, 13]}, {"55062107": [1, 161, 141, 29, 40, 37, 74]}, {"55062115": [3, 16]}, {"55062119": [9]}, {"55062124": [52, 12]}, {"55062127": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062143": [14]}, {"55062148": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062184": [60, 9, 128, 64, 37, 41, 32, 20, 161, 40]}, {"55062196": [52, 2]}, {"55062200": [3, 224]}, {"55062203": [8]}, {"55062208": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062220": [16]}, {"55062223": [33]}, {"55062228": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062240": [16]}, {"55062243": [28]}, {"55062248": [32, 232, 255, 166, 33, 8]}, {"55062255": [97, 16]}, {"55062259": [24]}, {"55062264": [52, 8]}, {"55062267": [100, 16]}, {"55062271": [21]}, {"55062276": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062291": [1, 160, 40, 14, 222, 52, 8]}, {"55062299": [104, 16]}, {"55062303": [13]}, {"55062308": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062323": [4, 160, 40, 14, 222, 52, 8]}, {"55062331": [106, 16]}, {"55062335": [5]}, {"55062340": [52, 5]}, {"55062343": [3, 52, 8]}, {"55062347": [107, 16]}, {"55062351": [1]}, {"55062356": [60, 9, 128, 64, 37, 41, 32, 20, 60, 10, 128, 64, 37, 74, 32, 23, 129, 44]}, {"55062376": [17, 136]}, {"55062379": [11, 33, 41]}, {"55062383": [1, 21, 42, 255, 252]}, {"55062392": [60, 9, 128, 64, 37, 41, 32, 19, 33, 41]}, {"55062403": [1, 17, 42]}, {"55062407": [4, 129, 44]}, {"55062412": [21, 128, 255, 252]}, {"55062420": [161, 40]}, {"55062424": [3, 224]}, {"55062427": [8]}, {"55062433": [96, 120, 33, 129, 236, 14, 223, 53, 152]}, {"55062443": [128, 49, 142]}, {"55062447": [128, 52, 3]}, {"55062451": [5, 3, 224]}, {"55062455": [8]}, {"55062460": [175, 164]}, {"55062463": [104, 175, 165]}, {"55062467": [108, 175, 166]}, {"55062471": [112, 175, 167]}, {"55062475": [116, 39, 189, 255, 232, 175, 163]}, {"55062483": [16, 175, 191]}, {"55062487": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062503": [32, 21]}, {"55062507": [31]}, {"55062512": [60, 9, 128, 64, 37, 41, 32, 23, 52, 10]}, {"55062523": [255, 161, 42]}, {"55062528": [60, 9, 128, 64, 37, 41, 32, 20, 36, 10, 255, 255, 52, 12]}, {"55062543": [3, 33, 74]}, {"55062547": [1, 17, 76]}, {"55062551": [20, 1, 42, 88, 32, 129, 104]}, {"55062560": [17]}, {"55062562": [255, 251]}, {"55062568": [60, 9, 128, 64, 37, 41, 32, 23, 161, 42]}, {"55062580": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062591": [1, 165, 42]}, {"55062596": [60, 9, 128, 65, 52, 10]}, {"55062603": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 196]}, {"55062632": [143, 163]}, {"55062635": [16, 143, 191]}, {"55062639": [20, 39, 189]}, {"55062643": [24, 143, 164]}, {"55062647": [104, 143, 165]}, {"55062651": [108, 143, 166]}, {"55062655": [112, 143, 167]}, {"55062659": [116, 132, 110, 19, 196, 3, 224]}, {"55062667": [8]}, {"55062672": [147, 25]}, {"55062675": [116, 52, 1]}, {"55062679": [255, 23, 33]}, {"55062683": [2]}, {"55062688": [52, 25]}, {"55062691": [44, 3, 224]}, {"55062695": [8, 167, 185]}, {"55062699": [154, 147, 44]}, {"55062703": [116, 52, 1]}, {"55062707": [255, 21, 129]}, {"55062711": [2]}, {"55062716": [52, 12]}, {"55062719": [44, 3, 224]}, {"55062723": [8]}, {"55062728": [145, 174]}, {"55062731": [116, 52, 1]}, {"55062735": [255, 21, 193]}, {"55062739": [2]}, {"55062744": [52, 14]}, {"55062747": [44, 3, 224]}, {"55062751": [8, 167, 174]}, {"55062755": [154, 145, 207]}, {"55062759": [116, 52, 1]}, {"55062763": [255, 21, 225]}, {"55062767": [2]}, {"55062772": [52, 15]}, {"55062775": [44, 3, 224]}, {"55062779": [8, 167, 175]}, {"55062783": [154, 60, 8, 128, 64, 37, 8, 32, 24, 142, 9]}, {"55062795": [104, 173, 9]}, {"55062800": [142, 9]}, {"55062803": [108, 173, 9]}, {"55062807": [4, 150, 9]}, {"55062811": [112, 165, 9]}, {"55062815": [8, 150, 9]}, {"55062819": [156, 165, 9]}, {"55062823": [10, 3, 224]}, {"55062827": [8, 142, 14]}, {"55062831": [4, 39, 189, 255, 224, 175, 176]}, {"55062839": [16, 175, 177]}, {"55062843": [20, 175, 191]}, {"55062847": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 24, 142, 8]}, {"55062867": [4, 17]}, {"55062871": [5]}, {"55062876": [12, 16, 12, 118]}, {"55062884": [16]}, {"55062887": [3]}, {"55062892": [12, 16, 12, 137]}, {"55062900": [12, 16, 12, 105, 52, 4]}, {"55062908": [12, 16, 12, 105, 52, 4]}, {"55062915": [1, 12, 16, 12, 105, 52, 4]}, {"55062923": [2, 143, 176]}, {"55062927": [16, 143, 177]}, {"55062931": [20, 143, 191]}, {"55062935": [24, 39, 189]}, {"55062939": [32, 3, 224]}, {"55062943": [8]}, {"55062948": [2, 4, 64, 33, 145, 9]}, {"55062955": [108, 52, 1]}, {"55062959": [255, 17, 33]}, {"55062963": [7]}, {"55062968": [2, 9, 72, 33, 145, 41]}, {"55062975": [116, 52, 1]}, {"55062979": [44, 17, 33]}, {"55062983": [2]}, {"55062988": [161, 9]}, {"55062991": [105, 3, 224]}, {"55062995": [8]}, {"55063000": [39, 189, 255, 232, 175, 191]}, {"55063007": [16, 142, 40]}, {"55063012": [174, 8]}, {"55063015": [64, 142, 40]}, {"55063019": [4, 174, 8]}, {"55063023": [68, 150, 40]}, {"55063027": [8, 166, 8]}, {"55063031": [72, 162]}, {"55063034": [15, 51, 146, 8]}, {"55063039": [74, 52, 1]}, {"55063043": [255, 21, 1]}, {"55063047": [3]}, {"55063052": [12, 16, 12, 151]}, {"55063060": [143, 191]}, {"55063063": [16, 39, 189]}, {"55063067": [24, 3, 224]}, {"55063071": [8]}, {"55063076": [142, 8]}, {"55063079": [64, 174, 8]}, {"55063083": [104, 142, 8]}, {"55063087": [68, 174, 8]}, {"55063091": [108, 150, 8]}, {"55063095": [72, 166, 8]}, {"55063099": [112, 146, 8]}, {"55063103": [104, 52, 1]}, {"55063107": [255, 21, 1]}, {"55063111": [3]}, {"55063116": [52, 8]}, {"55063119": [1, 162, 8, 15, 51, 3, 224]}, {"55063127": [8]}, {"55063132": [39, 189, 255, 232, 175, 191]}, {"55063139": [16, 150, 8]}, {"55063143": [156, 49, 8]}, {"55063147": [64, 17]}, {"55063151": [5]}, {"55063156": [150, 8]}, {"55063159": [112, 49, 8, 255, 15, 53, 8]}, {"55063167": [48, 166, 8]}, {"55063171": [112, 146, 40]}, {"55063175": [1, 162, 8]}, {"55063179": [105, 150, 40]}, {"55063183": [2, 166, 8]}, {"55063187": [106, 142, 40]}, {"55063191": [4, 174, 8]}, {"55063195": [108, 12, 16, 12, 177, 52, 4]}, {"55063204": [12, 16, 12, 177, 52, 4]}, {"55063211": [1, 12, 16, 12, 177, 52, 4]}, {"55063219": [2, 143, 191]}, {"55063223": [16, 39, 189]}, {"55063227": [24, 3, 224]}, {"55063231": [8]}, {"55063236": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 51, 112, 145, 10]}, {"55063251": [108, 52, 1]}, {"55063255": [255, 17, 65]}, {"55063259": [5]}, {"55063264": [1, 42, 72, 33, 145, 41]}, {"55063272": [21, 32]}, {"55063275": [28]}, {"55063280": [60, 9, 128, 64, 37, 41, 51, 99, 37, 41]}, {"55063291": [1, 145, 42]}, {"55063296": [17, 64]}, {"55063299": [19]}, {"55063304": [2, 10, 88, 33, 145, 107]}, {"55063311": [116, 52, 1]}, {"55063315": [255, 17, 97, 255, 248]}, {"55063324": [146, 12]}, {"55063327": [108, 17, 138, 255, 245]}, {"55063336": [146, 12]}, {"55063339": [109, 17, 138, 255, 242]}, {"55063348": [146, 12]}, {"55063351": [110, 17, 138, 255, 239]}, {"55063360": [161, 11]}, {"55063363": [105, 161, 10]}, {"55063367": [108, 16]}, {"55063371": [4]}, {"55063376": [52, 9]}, {"55063379": [255, 161, 9]}, {"55063383": [105, 161, 9]}, {"55063387": [108, 3, 224]}, {"55063391": [8]}, {"55063396": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063409": [1, 1, 1, 1, 1]}, {"55063415": [1, 1, 1, 1, 1]}, {"55063421": [1]}, {"55063423": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063433": [51, 8, 33, 32, 15]}, {"55063439": [71, 21, 234]}, {"55063443": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063455": [164]}, {"55063457": [15, 122, 3, 20, 64]}, {"55063463": [5, 52, 2, 72, 48, 21, 226]}, {"55063471": [7]}, {"55063476": [36, 25]}, {"55063479": [3, 16]}, {"55063483": [4, 52, 2, 99, 17, 21, 226]}, {"55063491": [2]}, {"55063496": [36, 25]}, {"55063499": [3, 3, 224]}, {"55063503": [8]}, {"55063508": [141, 173, 138, 160, 52, 2, 128]}, {"55063516": [16, 77]}, {"55063519": [2]}, {"55063524": [16]}, {"55063527": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063543": [1, 16, 64]}, {"55063547": [2]}, {"55063552": [16]}, {"55063555": [2, 52, 2]}, {"55063559": [1, 161, 226, 28, 191, 3, 224]}, {"55063567": [8]}, {"55063573": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063587": [164]}, {"55063589": [15, 122, 3, 20, 64]}, {"55063595": [5, 52, 2, 72, 48, 21, 226]}, {"55063603": [7]}, {"55063608": [36, 25]}, {"55063611": [3, 16]}, {"55063615": [4, 52, 2, 99, 17, 21, 226]}, {"55063623": [2]}, {"55063628": [36, 25]}, {"55063631": [3, 3, 224]}, {"55063635": [8]}, {"55063640": [162, 37]}, {"55063643": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063655": [4, 142, 10]}, {"55063660": [17, 64]}, {"55063663": [11]}, {"55063669": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063681": [24, 194, 2, 23]}, {"55063687": [3, 49, 89]}, {"55063691": [255, 129, 234]}, {"55063696": [3, 42, 200, 37, 8, 16, 13, 25, 161, 249]}, {"55063708": [3, 224]}, {"55063711": [8]}] \ No newline at end of file diff --git a/version.py b/version.py index 2184ec443..ea6f8a9e2 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.28 f.LUM' \ No newline at end of file +__version__ = '2.13.29 f.LUM' \ No newline at end of file From a59b75ffce7e393471f32eb1533e2de45f9c8110 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Fri, 27 Jul 2018 05:20:56 -0400 Subject: [PATCH 204/755] All longs to appear in cross worlds if shuffle song items --- Rules.py | 2 +- version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Rules.py b/Rules.py index 0a1877d0c..9cabc1cf7 100644 --- a/Rules.py +++ b/Rules.py @@ -440,7 +440,7 @@ def global_rules(world): for location in world.get_locations(): if location.type != 'Chest': forbid_item(location, 'Ice Trap') - add_item_rule(location, lambda i: i.type != 'Song' or i.world.id == location.world.id) + add_item_rule(location, lambda i: not (i.type == 'Song' and not i.world.shuffle_song_items and i.world.id != location.world.id)) # Biggoron Sword at bombchu bowling seems to lead to a soft lock. # Unsure what causes this, but I'm leaving this to original devs. diff --git a/version.py b/version.py index ea6f8a9e2..8762a51c3 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.29 f.LUM' \ No newline at end of file +__version__ = '2.13.30 f.LUM' \ No newline at end of file From 372334b9a3aa654c8f7096d7cbb5297788564597 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Fri, 27 Jul 2018 05:33:21 -0400 Subject: [PATCH 205/755] Changed dependency guiparam to be a function --- Gui.py | 5 +---- Settings.py | 2 +- version.py | 2 +- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/Gui.py b/Gui.py index 7c0f366c2..c928b1e7e 100644 --- a/Gui.py +++ b/Gui.py @@ -157,10 +157,7 @@ def show_settings(event=None): # Update any dependencies for info in setting_infos: if info.gui_params and 'dependency' in info.gui_params: - dep_met = True - for dep_var, dep_val in info.gui_params['dependency'].items(): - if guivars[dep_var].get() != dep_val: - dep_met = False + dep_met = info.gui_params['dependency'](guivars) if widgets[info.name].winfo_class() == 'Frame': for child in widgets[info.name].winfo_children(): diff --git a/Settings.py b/Settings.py index d1d869092..980eacd19 100644 --- a/Settings.py +++ b/Settings.py @@ -408,7 +408,7 @@ def __init__(self, settings_dict): 'group': 'convenience', 'widget': 'Entry', 'default': 'DAAAAAAA', - 'dependency': { 'free_scarecrow':True } + 'dependency': lambda guivar: guivar['free_scarecrow'].get() }), Setting_Info('unlocked_ganondorf', bool, 1, True, { diff --git a/version.py b/version.py index 624806a15..567e86531 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.19 f.LUM' +__version__ = '2.13.20 f.LUM' From 23648b8e9cb35ab5ee715d8977d267186000e833 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Fri, 27 Jul 2018 06:13:28 -0500 Subject: [PATCH 206/755] Keysanity shuffles Gerudo Fortress keys. Gerudo Card can be shuffled. --- Gui.py | 12 ++++++------ ItemList.py | 33 ++++++++++++++++++++++++++++++++- Items.py | 5 +++-- README.md | 11 +++++++++-- Regions.py | 7 ++++++- Rules.py | 14 ++++++++------ Settings.py | 15 +++++++++++++++ version.py | 2 +- 8 files changed, 80 insertions(+), 19 deletions(-) diff --git a/Gui.py b/Gui.py index 7c0f366c2..34d64fd98 100644 --- a/Gui.py +++ b/Gui.py @@ -346,9 +346,9 @@ def open_readme(): settingsFrame.pack(fill=BOTH, anchor=W, padx=5, pady=(10,0)) def generateRom(): - settings = guivars_to_settings(guivars) + settings = guivars_to_settings(guivars) - try: + #try: if settings.count is not None: orig_seed = settings.seed for i in range(settings.count): @@ -356,10 +356,10 @@ def generateRom(): main(settings) else: main(settings) - except Exception as e: - messagebox.showerror(title="Error while creating seed", message=str(e)) - else: - messagebox.showinfo(title="Success", message="Rom patched successfully") + #except Exception as e: + # messagebox.showerror(title="Error while creating seed", message=str(e)) + #else: + # messagebox.showinfo(title="Success", message="Rom patched successfully") generateButton = Button(generateSeedFrame, text='Generate Patched Rom', command=generateRom) diff --git a/ItemList.py b/ItemList.py index 0153828ae..6ccf2d886 100644 --- a/ItemList.py +++ b/ItemList.py @@ -33,7 +33,7 @@ 'Ocarina of Time': 'Ocarina', 'Master Sword Pedestal': 'Master Sword', 'Epona': 'Epona', - 'Gerudo Fortress Carpenter Rescue': 'Gerudo Membership Card', + 'Gerudo Fortress Carpenter Rescue': 'Carpenter Rescue', 'Ganons Castle Forest Trial Clear': 'Forest Trial Clear', 'Ganons Castle Fire Trial Clear': 'Fire Trial Clear', 'Ganons Castle Water Trial Clear': 'Water Trial Clear', @@ -100,6 +100,37 @@ def get_pool_core(world): else: pool.extend(['Ice Trap'] * 6) + if world.gerudo_fortress == 'open': + placed_items['Gerudo Fortress North F1 Carpenter'] = 'Recovery Heart' + placed_items['Gerudo Fortress North F2 Carpenter'] = 'Recovery Heart' + placed_items['Gerudo Fortress South F1 Carpenter'] = 'Recovery Heart' + placed_items['Gerudo Fortress South F2 Carpenter'] = 'Recovery Heart' + elif world.keysanity: + if world.gerudo_fortress == 'fast': + pool.append('Small Key (Gerudo Fortress)') + placed_items['Gerudo Fortress North F2 Carpenter'] = 'Recovery Heart' + placed_items['Gerudo Fortress South F1 Carpenter'] = 'Recovery Heart' + placed_items['Gerudo Fortress South F2 Carpenter'] = 'Recovery Heart' + else: + pool.extend(['Small Key (Gerudo Fortress)'] * 4) + else: + if world.gerudo_fortress == 'fast': + placed_items['Gerudo Fortress North F1 Carpenter'] = 'Small Key (Gerudo Fortress)' + placed_items['Gerudo Fortress North F2 Carpenter'] = 'Recovery Heart' + placed_items['Gerudo Fortress South F1 Carpenter'] = 'Recovery Heart' + placed_items['Gerudo Fortress South F2 Carpenter'] = 'Recovery Heart' + else: + placed_items['Gerudo Fortress North F1 Carpenter'] = 'Small Key (Gerudo Fortress)' + placed_items['Gerudo Fortress North F2 Carpenter'] = 'Small Key (Gerudo Fortress)' + placed_items['Gerudo Fortress South F1 Carpenter'] = 'Small Key (Gerudo Fortress)' + placed_items['Gerudo Fortress South F2 Carpenter'] = 'Small Key (Gerudo Fortress)' + + if world.shuffle_gerudo_card and world.gerudo_fortress != 'open': + pool.append('Gerudo Membership Card') + else: + placed_items['Gerudo Fortress Membership Card'] = 'Gerudo Membership Card' + + pool.extend(alwaysitems) for _ in range(normal_bottle_count): bottle = random.choice(normal_bottles) diff --git a/Items.py b/Items.py index 53a554bfb..8ab4cd49f 100644 --- a/Items.py +++ b/Items.py @@ -149,7 +149,7 @@ def ItemFactory(items): 'Small Key (Shadow Temple)': (True, False, 'SmallKey', None, 0xB0), 'Small Key (Bottom of the Well)': (True, False, 'SmallKey', None, 0xB1), 'Small Key (Gerudo Training Grounds)': (True, False, 'SmallKey', None, 0xB2), - 'Small Key (Gerudo Fortress)': (True, False, 'SmallKey', None, 0xB3), + 'Small Key (Gerudo Fortress)': (True, False, 'FortressSmallKey', None, 0xB3), 'Small Key (Ganons Castle)': (True, False, 'SmallKey', None, 0xB4), 'Zeldas Letter': (True, False, None, None, None), 'Zeldas Lullaby': (True, False, 'Song', 0x0A, 0x5), @@ -166,7 +166,8 @@ def ItemFactory(items): 'Requiem of Spirit': (True, False, 'Song', 0x05, 0x8), 'Gold Skulltulla Token': (True, False, 'Token', None, 0x5B), 'Epona': (True, False, 'Event', None, None), - 'Gerudo Membership Card': (True, False, 'Event', 0x0740, 0x3A), + 'Carpenter Rescue': (True, False, 'Event', None, None), + 'Gerudo Membership Card': (True, False, None, 0x0740, 0x3A), 'Kokiri Emerald': (True, False, 'Event', 0x6C, None), 'Goron Ruby': (True, False, 'Event', 0x6D, None), 'Zora Sapphire': (True, False, 'Event', 0x6E, None), diff --git a/README.md b/README.md index 24728a434..f0ff1c663 100644 --- a/README.md +++ b/README.md @@ -40,8 +40,15 @@ What was once called `fast_ganon` is now broken into 3 separate options: Options for speeding up carpenter rescue portion of Gerudo Fortress -- fast: Only the carpenter nearest to the prison Link is tossed into needs to be freed to obtain the Gerudo Card and get all of its benefits; the other three carpenters are freed from the start -- open: All carpenters are freed from the start, and you start with the Gerudo Card and all of its benefits (and thus the bridge across the valley is always built) +- fast: Only the carpenter nearest to the prison Link is tossed into needs to be freed to obtain the Gerudo Card; the other three carpenters are freed from the start +- open: All carpenters are freed from the start, and you start with the Gerudo Card (and thus the bridge across the valley is always built) + +There is also an option to shuffle the Gerudo Card into the item pool; this will only work if fortress is not open. A few notes on the behavior of Gerudo Fortress: + +- In order to not be caught by guards, you must have rescued all carpenters. The Gerudo Card itself will not protect you. +- In order to enter Gerudo Training Grounds, you must rescue all carpenters AND have the Gerudo Card. This is the Gerudo Card's only purpose. +- Horseback Archery only requires rescuing all carpenters. +- In keysanity, the keys dropped by the guards at each carpenter's cell will be random items, and the fortress keys will be somewhere in the world. However, a key is not sufficient to open a cell: in order to unlock a cell, you must first defeat the guard in the room and collect the item they drop. ## Other Conveniences diff --git a/Regions.py b/Regions.py index af638b7db..07f665869 100644 --- a/Regions.py +++ b/Regions.py @@ -30,7 +30,7 @@ def create_regions(world): create_dungeon_region('Water Temple Dark Link Region', ['Water Temple Dark Link Chest', 'Water Temple River Chest', 'GS Water Temple Serpent River', 'GS Water Temple Central Room']), create_ow_region('Gerudo Valley', ['Gerudo Valley Waterfall Freestanding PoH', 'Gerudo Valley Crate Freestanding PoH', 'GS Gerudo Valley Small Bridge', 'GS Gerudo Valley Bean Patch'], ['Valley Exit', 'Valley River', 'Bridge Crossing']), create_ow_region('Gerudo Valley Far Side', ['Gerudo Valley Hammer Rocks Chest', 'GS Gerudo Valley Behind Tent', 'GS Gerudo Valley Pillar'], ['Fortress Entrance']), - create_ow_region('Gerudo Fortress', ['Gerudo Fortress Rooftop Chest', 'Horseback Archery 1000 Points', 'Horseback Archery 1500 Points', 'Gerudo Fortress Carpenter Rescue', 'GS Gerudo Fortress Archery Range', 'GS Gerudo Fortress Top Floor'], ['Haunted Wasteland Entrance', 'Gerudo Training Grounds Entrance']), + create_ow_region('Gerudo Fortress', ['Gerudo Fortress Rooftop Chest', 'Horseback Archery 1000 Points', 'Horseback Archery 1500 Points', 'Gerudo Fortress North F1 Carpenter', 'Gerudo Fortress North F2 Carpenter', 'Gerudo Fortress South F1 Carpenter', 'Gerudo Fortress South F2 Carpenter', 'Gerudo Fortress Carpenter Rescue', 'Gerudo Fortress Membership Card', 'GS Gerudo Fortress Archery Range', 'GS Gerudo Fortress Top Floor'], ['Haunted Wasteland Entrance', 'Gerudo Training Grounds Entrance']), create_ow_region('Haunted Wasteland', ['Haunted Wasteland Structure Chest', 'GS Wasteland Ruins'], ['Haunted Wasteland Crossing']), create_ow_region('Desert Colossus', ['Colossus Freestanding PoH', 'Sheik at Colossus', 'GS Desert Colossus Bean Patch', 'GS Desert Colossus Tree', 'GS Desert Colossus Hill'], ['Colossus Fairy', 'Spirit Temple Entrance']), create_interior_region('Colossus Fairy', ['Desert Colossus Fairy Reward']), @@ -454,6 +454,11 @@ def _create_region(name, type, locations=None, exits=None): 'DM Crater Wall Freestanding PoH': (None, None, 0x02, 'Collectable', 0x61, 'Death Mountain Crater'), 'DM Crater Volcano Freestanding PoH': (None, None, 0x08, 'Collectable', 0x61, 'Death Mountain Crater'), 'Goron City Pot Freestanding PoH': (None, None, 0x1F, 'Collectable', 0x62, 'Goron City'), + 'Gerudo Fortress North F1 Carpenter': (None, None, 0x0C, 'Collectable', 0x0C, 'Gerudo Fortress'), + 'Gerudo Fortress North F2 Carpenter': (None, None, 0x0A, 'Collectable', 0x0C, 'Gerudo Fortress'), + 'Gerudo Fortress South F1 Carpenter': (None, None, 0x0E, 'Collectable', 0x0C, 'Gerudo Fortress'), + 'Gerudo Fortress South F2 Carpenter': (None, None, 0x0F, 'Collectable', 0x0C, 'Gerudo Fortress'), + 'Gerudo Fortress Membership Card': (None, None, 0x3A, 'NPC', 0x0C, 'Gerudo Fortress'), 'Queen Gohma Heart': (None, None, 0x4F, 'BossHeart', 0x11, 'Deku Tree'), 'King Dodongo Heart': (None, None, 0x4F, 'BossHeart', 0x12, 'Dodongo\'s Cavern'), 'Barinade Heart': (None, None, 0x4F, 'BossHeart', 0x13, 'Jabu Jabu\'s Belly'), diff --git a/Rules.py b/Rules.py index 080adee54..2169670b2 100644 --- a/Rules.py +++ b/Rules.py @@ -249,17 +249,19 @@ def global_rules(world): set_rule(world.get_location('Bongo Bongo Heart'), lambda state: state.has('Small Key (Shadow Temple)', 5) and (state.has('Bow') or state.has('Progressive Hookshot', 2)) and state.has('Boss Key (Shadow Temple)')) set_rule(world.get_entrance('Bridge Crossing'), lambda state: (state.has('Epona') or state.has('Progressive Hookshot', 2) or world.gerudo_fortress == 'open') and state.is_adult()) set_rule(world.get_location('Gerudo Valley Hammer Rocks Chest'), lambda state: state.has('Hammer') and state.is_adult()) - set_rule(world.get_entrance('Fortress Entrance'), lambda state: (state.has('Bow') or state.has('Progressive Hookshot') or state.has('Hover Boots') or world.gerudo_fortress == 'open' or world.gerudo_fortress == 'fast') and state.is_adult()) - set_rule(world.get_entrance('Gerudo Training Grounds Entrance'), lambda state: state.has('Gerudo Membership Card') and state.is_adult()) - set_rule(world.get_entrance('Haunted Wasteland Entrance'), lambda state: state.has('Gerudo Membership Card') and state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot', 2))) + set_rule(world.get_location('Gerudo Fortress North F2 Carpenter'), lambda state: (state.has('Bow') or state.has('Progressive Hookshot') or state.has('Hover Boots')) and state.is_adult()) + set_rule(world.get_location('Gerudo Fortress Carpenter Rescue'), lambda state: ( (world.gerudo_fortress == 'normal' and state.has('Small Key (Gerudo Fortress)', 4) and (state.has('Bow') or state.has('Progressive Hookshot') or state.has('Hover Boots'))) or (world.gerudo_fortress == 'fast' and state.has('Small Key (Gerudo Fortress)', 1)) or world.gerudo_fortress == 'open') and state.is_adult()) + set_rule(world.get_location('Gerudo Fortress Membership Card'), lambda state: ( (world.gerudo_fortress == 'normal' and state.has('Small Key (Gerudo Fortress)', 4) and (state.has('Bow') or state.has('Progressive Hookshot') or state.has('Hover Boots'))) or (world.gerudo_fortress == 'fast' and state.has('Small Key (Gerudo Fortress)', 1)) or world.gerudo_fortress == 'open') and state.is_adult()) + set_rule(world.get_entrance('Gerudo Training Grounds Entrance'), lambda state: state.has('Carpenter Rescue') and state.has('Gerudo Membership Card') and state.is_adult()) + set_rule(world.get_entrance('Haunted Wasteland Entrance'), lambda state: state.has('Carpenter Rescue') and state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot', 2))) set_rule(world.get_entrance('Haunted Wasteland Crossing'), lambda state: (world.logic_lens == 'chest') or (state.has('Lens of Truth') and state.has('Magic Meter'))) set_rule(world.get_entrance('Colossus Warp Pad'), lambda state: state.can_play('Requiem of Spirit')) set_rule(world.get_entrance('Colossus Fairy'), lambda state: state.has_explosives()) set_rule(world.get_location('Colossus Freestanding PoH'), lambda state: state.can_play('Requiem of Spirit') and state.has('Magic Bean') and state.is_adult()) set_rule(world.get_location('Desert Colossus Fairy Reward'), lambda state: state.can_play('Zeldas Lullaby')) set_rule(world.get_location('Gerudo Fortress Rooftop Chest'), lambda state: (state.has('Hover Boots') or (state.has('Progressive Hookshot') and state.has_ocarina()) or (state.has('Progressive Hookshot', 2))) and state.is_adult()) - set_rule(world.get_location('Horseback Archery 1000 Points'), lambda state: state.has('Gerudo Membership Card') and state.has('Epona') and state.has('Bow') and state.is_adult()) - set_rule(world.get_location('Horseback Archery 1500 Points'), lambda state: (not world.logic_no_1500_archery) and (state.has('Gerudo Membership Card') and state.has('Epona') and state.has('Bow') and state.is_adult())) + set_rule(world.get_location('Horseback Archery 1000 Points'), lambda state: state.has('Carpenter Rescue') and state.has('Epona') and state.has('Bow') and state.is_adult()) + set_rule(world.get_location('Horseback Archery 1500 Points'), lambda state: (not world.logic_no_1500_archery) and (state.has('Carpenter Rescue') and state.has('Epona') and state.has('Bow') and state.is_adult())) set_rule(world.get_location('Haunted Wasteland Structure Chest'), lambda state: state.has_fire_source()) set_rule(world.get_entrance('Gerudo Training Ground Left Silver Rupees'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) set_rule(world.get_entrance('Gerudo Training Ground Beamos'), lambda state: state.has_explosives()) @@ -420,7 +422,7 @@ def global_rules(world): set_rule(world.get_location('GS Gerudo Valley Bean Patch'), lambda state: state.has_bottle()) set_rule(world.get_location('GS Gerudo Valley Behind Tent'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.nighttime()) set_rule(world.get_location('GS Gerudo Valley Pillar'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.nighttime()) - set_rule(world.get_location('GS Gerudo Fortress Archery Range'), lambda state: state.has('Progressive Hookshot') and state.has('Gerudo Membership Card') and state.is_adult() and state.nighttime()) + set_rule(world.get_location('GS Gerudo Fortress Archery Range'), lambda state: state.has('Progressive Hookshot') and state.has('Carpenter Rescue') and state.is_adult() and state.nighttime()) set_rule(world.get_location('GS Gerudo Fortress Top Floor'), lambda state: state.nighttime()) set_rule(world.get_location('GS Wasteland Ruins'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) set_rule(world.get_location('GS Desert Colossus Bean Patch'), lambda state: state.has_bottle() and state.can_play('Requiem of Spirit')) diff --git a/Settings.py b/Settings.py index d1d869092..a471b9112 100644 --- a/Settings.py +++ b/Settings.py @@ -468,6 +468,21 @@ def __init__(self, settings_dict): 'widget': 'Checkbutton', 'default': 'unchecked' }), + Setting_Info('shuffle_gerudo_card', bool, 1, True, + { + 'help': '''\ + Shuffles the Gerudo Card into the item pool. + The Gerudo Card does not stop guards from throwing you in jail. + It only grants access to Training Grounds, AFTER all carpenters have been rescued. + ''', + 'action': 'store_true' + }, + { + 'text': 'Shuffle Gerudo Card', + 'group': 'logic', + 'widget': 'Checkbutton', + 'default': 'unchecked' + }), Setting_Info('keysanity', bool, 1, True, { 'help': '''\ diff --git a/version.py b/version.py index 624806a15..567e86531 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.19 f.LUM' +__version__ = '2.13.20 f.LUM' From bbd198a3de023955599c4c2846d189c61a446612 Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Fri, 27 Jul 2018 07:13:07 -0500 Subject: [PATCH 207/755] Returned exception handling to Gui. --- Gui.py | 12 ++++++------ version.py | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Gui.py b/Gui.py index 34d64fd98..7c0f366c2 100644 --- a/Gui.py +++ b/Gui.py @@ -346,9 +346,9 @@ def open_readme(): settingsFrame.pack(fill=BOTH, anchor=W, padx=5, pady=(10,0)) def generateRom(): - settings = guivars_to_settings(guivars) + settings = guivars_to_settings(guivars) - #try: + try: if settings.count is not None: orig_seed = settings.seed for i in range(settings.count): @@ -356,10 +356,10 @@ def generateRom(): main(settings) else: main(settings) - #except Exception as e: - # messagebox.showerror(title="Error while creating seed", message=str(e)) - #else: - # messagebox.showinfo(title="Success", message="Rom patched successfully") + except Exception as e: + messagebox.showerror(title="Error while creating seed", message=str(e)) + else: + messagebox.showinfo(title="Success", message="Rom patched successfully") generateButton = Button(generateSeedFrame, text='Generate Patched Rom', command=generateRom) diff --git a/version.py b/version.py index 567e86531..193ebcc1f 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.20 f.LUM' +__version__ = '2.13.21 f.LUM' From 942b157f18a390ba20337765eefba6ebd232ff2a Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Fri, 27 Jul 2018 08:35:20 -0500 Subject: [PATCH 208/755] Added an option to allow Crater's bean HP with Hover Boots. --- Rules.py | 2 +- Settings.py | 14 ++++++++++++++ version.py | 2 +- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/Rules.py b/Rules.py index 2169670b2..81a797f3c 100644 --- a/Rules.py +++ b/Rules.py @@ -197,7 +197,7 @@ def global_rules(world): set_rule(world.get_entrance('Crater Bridge Reverse'), lambda state: state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot'))) set_rule(world.get_entrance('Crater Warp Pad'), lambda state: state.can_play('Bolero of Fire')) set_rule(world.get_entrance('Crater Fairy'), lambda state: state.is_adult() and state.has('Hammer')) - set_rule(world.get_location('DM Crater Volcano Freestanding PoH'), lambda state: state.is_adult() and state.has('Magic Bean') and state.can_play('Bolero of Fire')) + set_rule(world.get_location('DM Crater Volcano Freestanding PoH'), lambda state: state.is_adult() and ( (state.has('Magic Bean') and state.can_play('Bolero of Fire')) or (world.logic_crater_bean_hp_with_hovers and state.has('Hover Boots')) ) ) set_rule(world.get_entrance('Fire Temple Entrance'), lambda state: state.is_adult()) set_rule(world.get_entrance('Fire Temple Early Climb'), lambda state: state.has_GoronTunic() and state.has('Small Key (Fire Temple)', 3) and state.has('Progressive Strength Upgrade') and (state.has_explosives() or ((state.has('Bow') or state.has('Progressive Hookshot')) and state.is_adult()))) set_rule(world.get_entrance('Fire Temple Fire Maze Escape'), lambda state: state.has('Small Key (Fire Temple)', 7) or (state.has('Small Key (Fire Temple)', 6) and state.has('Hover Boots') and state.has('Hammer') and state.is_adult())) diff --git a/Settings.py b/Settings.py index e2fc6c9a4..e63d73bab 100644 --- a/Settings.py +++ b/Settings.py @@ -770,6 +770,20 @@ def __init__(self, settings_dict): 'widget': 'Checkbutton', 'default': 'unchecked' }), + Setting_Info('logic_crater_bean_hp_with_hovers', bool, 1, True, + { + 'help': '''\ + The Heart Piece in Death Mountain Crater than normally requires the bean to reach + will optionally require the Hover Boots in logic. + ''', + 'action': 'store_true' + }, + { + 'text': "Crater's bean HP with Hover Boots", + 'group': 'tricks', + 'widget': 'Checkbutton', + 'default': 'unchecked' + }), Setting_Info('logic_zora_with_cucco_or_hovers', bool, 1, True, { 'help': '''\ diff --git a/version.py b/version.py index 41c0352d0..55b857d5a 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.14.1 f.LUM' \ No newline at end of file +__version__ = '2.14.2 f.LUM' \ No newline at end of file From 20c394a24214a0f6d3b45db6ef001bbb6201c912 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Fri, 27 Jul 2018 09:59:14 -0400 Subject: [PATCH 209/755] Updated logic rules --- Rules.py | 76 ++++++++++++++++++++++++++--------------------------- Settings.py | 17 ++++++++++++ version.py | 2 +- 3 files changed, 55 insertions(+), 40 deletions(-) diff --git a/Rules.py b/Rules.py index 080adee54..3ffe643e1 100644 --- a/Rules.py +++ b/Rules.py @@ -89,7 +89,7 @@ def global_rules(world): set_rule(world.get_location('Bottom of the Well Invisible Chest'), lambda state: state.can_play('Zeldas Lullaby') and state.can_see_with_lens()) set_rule(world.get_location('Bottom of the Well Underwater Front Chest'), lambda state: state.can_play('Zeldas Lullaby')) set_rule(world.get_location('Bottom of the Well Underwater Left Chest'), lambda state: state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('Bottom of the Well Basement Chest'), lambda state: state.has_explosives()) + set_rule(world.get_location('Bottom of the Well Basement Chest'), lambda state: state.has_explosives() or (state.has('Small Key (Bottom of the Well)', 3) and state.has('Progressive Strength Upgrade') and state.can_see_with_lens())) set_rule(world.get_location('Bottom of the Well Locked Pits'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.can_see_with_lens()) #These pits are really unfair. set_rule(world.get_location('Bottom of the Well Behind Right Grate'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.can_see_with_lens()) set_rule(world.get_entrance('Death Mountain Entrance'), lambda state: state.has('Zeldas Letter') or state.is_adult()) @@ -105,9 +105,9 @@ def global_rules(world): set_rule(world.get_entrance('Goron City from Woods'), lambda state: state.can_blast_or_smash() and (world.open_forest or (state.has('Slingshot') and state.has('Kokiri Sword')))) set_rule(world.get_entrance('Dodongos Cavern Rocks'), lambda state: state.can_blast_or_smash() or state.has('Progressive Strength Upgrade') or state.is_adult()) set_rule(world.get_entrance('Dodongos Cavern Lobby'), lambda state: state.can_blast_or_smash() or state.has('Progressive Strength Upgrade')) - set_rule(world.get_entrance('Dodongos Cavern Left Door'), lambda state: state.has_explosives() or state.has('Progressive Strength Upgrade') or (state.has('Dins Fire') and state.has('Magic Meter'))) - set_rule(world.get_entrance('Dodongos Cavern Slingshot Target'), lambda state: state.has('Slingshot') or ((state.has('Bow') or state.has('Hover Boots') or world.logic_dc_jump) and state.is_adult())) - set_rule(world.get_location('Dodongos Cavern End of Bridge Chest'), lambda state: state.has_explosives() or ((state.has('Bow') or state.has('Hover Boots') or world.logic_dc_jump) and state.is_adult() and state.has('Hammer'))) + set_rule(world.get_entrance('Dodongos Cavern Left Door'), lambda state: state.has_explosives() or state.has('Progressive Strength Upgrade') or (state.has('Dins Fire') and state.has('Magic Meter')) or state.has('Bow')) + set_rule(world.get_entrance('Dodongos Cavern Slingshot Target'), lambda state: state.has('Slingshot') or ((state.has('Bow') or state.has('Hover Boots') or state.has('Progressive Hookshot', 2) or world.logic_dc_jump) and state.is_adult())) + set_rule(world.get_location('Dodongos Cavern End of Bridge Chest'), lambda state: state.has_explosives() or ((state.has('Bow') or state.has('Hover Boots') or state.has('Progressive Hookshot', 2) or world.logic_dc_jump) and state.is_adult() and state.has('Hammer'))) set_rule(world.get_entrance('Dodongos Cavern Bomb Drop'), lambda state: state.has_explosives()) set_rule(world.get_location('King Dodongo'), lambda state: state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) set_rule(world.get_location('King Dodongo Heart'), lambda state: state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) @@ -165,15 +165,15 @@ def global_rules(world): set_rule(world.get_entrance('Forest Temple Entrance'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) set_rule(world.get_entrance('Forest Temple Song of Time Block'), lambda state: state.can_play('Song of Time')) set_rule(world.get_entrance('Forest Temple Lobby Eyeball Switch'), lambda state: state.has('Bow') and state.is_adult()) - set_rule(world.get_entrance('Forest Temple Lobby Locked Door'), lambda state: state.has('Progressive Strength Upgrade') and state.has('Small Key (Forest Temple)', 1)) + set_rule(world.get_entrance('Forest Temple Lobby Locked Door'), lambda state: state.has('Small Key (Forest Temple)', 1)) set_rule(world.get_entrance('Forest Temple Well Connection'), lambda state: ((state.has('Iron Boots') or state.has('Progressive Hookshot', 2)) and state.is_adult()) or state.has('Progressive Scale', 2)) #Longshot can grab some very high up vines to drain the well. set_rule(world.get_entrance('Forest Temple Scarecrows Song'), lambda state: False) #For some reason you can't actually activate this from below. Cool game. set_rule(world.get_entrance('Forest Temple Elevator'), lambda state: state.has('Bow') and state.is_adult() and state.has('Progressive Strength Upgrade') and state.has('Small Key (Forest Temple)', 3)) set_rule(world.get_entrance('Forest Temple Outside Backdoor'), lambda state: state.has('Hover Boots') and state.is_adult()) - set_rule(world.get_entrance('Forest Temple Twisted Hall'), lambda state: state.has('Small Key (Forest Temple)', 3)) - set_rule(world.get_entrance('Forest Temple Straightened Hall'), lambda state: state.has('Small Key (Forest Temple)', 2) and state.has('Bow')) + set_rule(world.get_entrance('Forest Temple Twisted Hall'), lambda state: state.has('Progressive Strength Upgrade') and state.has('Small Key (Forest Temple)', 3)) + set_rule(world.get_entrance('Forest Temple Straightened Hall'), lambda state: state.has('Progressive Strength Upgrade') and state.has('Small Key (Forest Temple)', 2) and state.has('Bow')) set_rule(world.get_entrance('Forest Temple Drop to Falling Room'), lambda state: state.has('Small Key (Forest Temple)', 5) and (state.has('Bow') or (state.has('Dins Fire') and state.has('Magic Meter')))) - set_rule(world.get_location('Forest Temple Block Push Chest'), lambda state: state.has('Bow') and state.is_adult()) + set_rule(world.get_location('Forest Temple Block Push Chest'), lambda state: state.has('Progressive Strength Upgrade') and state.has('Bow') and state.is_adult()) set_rule(world.get_location('Forest Temple Red Poe Chest'), lambda state: state.has('Bow') and state.is_adult()) set_rule(world.get_location('Forest Temple Blue Poe Chest'), lambda state: state.has('Bow') and state.is_adult()) set_rule(world.get_location('Phantom Ganon'), lambda state: state.has('Boss Key (Forest Temple)')) @@ -194,11 +194,11 @@ def global_rules(world): set_rule(world.get_entrance('Crater Ascent'), lambda state: state.is_adult()) set_rule(world.get_entrance('Crater Scarecrow'), lambda state: state.is_adult() and state.has_ocarina() and state.has('Progressive Hookshot', 2)) set_rule(world.get_entrance('Crater Bridge'), lambda state: state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot'))) - set_rule(world.get_entrance('Crater Bridge Reverse'), lambda state: state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot'))) + set_rule(world.get_entrance('Crater Bridge Reverse'), lambda state: state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot') or state.has('Magic Bean'))) set_rule(world.get_entrance('Crater Warp Pad'), lambda state: state.can_play('Bolero of Fire')) set_rule(world.get_entrance('Crater Fairy'), lambda state: state.is_adult() and state.has('Hammer')) set_rule(world.get_location('DM Crater Volcano Freestanding PoH'), lambda state: state.is_adult() and state.has('Magic Bean') and state.can_play('Bolero of Fire')) - set_rule(world.get_entrance('Fire Temple Entrance'), lambda state: state.is_adult()) + set_rule(world.get_entrance('Fire Temple Entrance'), lambda state: state.is_adult() and (world.logic_fewer_tunic_requirements or state.has_GoronTunic())) set_rule(world.get_entrance('Fire Temple Early Climb'), lambda state: state.has_GoronTunic() and state.has('Small Key (Fire Temple)', 3) and state.has('Progressive Strength Upgrade') and (state.has_explosives() or ((state.has('Bow') or state.has('Progressive Hookshot')) and state.is_adult()))) set_rule(world.get_entrance('Fire Temple Fire Maze Escape'), lambda state: state.has('Small Key (Fire Temple)', 7) or (state.has('Small Key (Fire Temple)', 6) and state.has('Hover Boots') and state.has('Hammer') and state.is_adult())) set_rule(world.get_location('Fire Temple Fire Dancer Chest'), lambda state: state.is_adult() and state.has('Hammer')) @@ -216,11 +216,11 @@ def global_rules(world): set_rule(world.get_location('Volvagia Heart'), lambda state: state.has_GoronTunic() and state.has('Hammer') and state.is_adult() and state.has('Boss Key (Fire Temple)') and (state.has('Hover Boots') or (state.can_reach('Fire Temple Upper') and (state.can_play('Song of Time') or state.has_explosives())))) set_rule(world.get_location('Sheik in Crater'), lambda state: state.is_adult()) set_rule(world.get_location('Link the Goron'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade') or state.has_explosives() or state.has('Bow'))) - set_rule(world.get_entrance('Crater Access'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade') or state.can_blast_or_smash())) + set_rule(world.get_entrance('Crater Access'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade') or state.has_explosives() or state.has('Bow'))) set_rule(world.get_entrance('Lake Warp Pad'), lambda state: state.can_play('Serenade of Water')) set_rule(world.get_location('King Zora Thawed'), lambda state: state.has_bottle() and (state.can_reach('Ice Cavern') or state.can_reach('Ganons Castle Water Trial') or state.has('Progressive Wallet', 2))) - set_rule(world.get_location('Zoras Fountain Bottom Freestanding PoH'), lambda state: state.has('Iron Boots')) - set_rule(world.get_entrance('Water Temple Entrance'), lambda state: state.is_adult() and state.has('Iron Boots') and state.has('Progressive Hookshot')) + set_rule(world.get_location('Zoras Fountain Bottom Freestanding PoH'), lambda state: state.has('Iron Boots') and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic())) + set_rule(world.get_entrance('Water Temple Entrance'), lambda state: state.is_adult() and state.has('Iron Boots') and state.has('Progressive Hookshot') and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic())) set_rule(world.get_entrance('Water Temple Central Pillar'), lambda state: (state.has('Bow') or (state.has('Dins Fire') and state.has('Magic Meter')) or state.has('Small Key (Water Temple)', 5)) and state.can_play('Zeldas Lullaby')) set_rule(world.get_entrance('Water Temple Upper Locked Door'), lambda state: state.has('Small Key (Water Temple)', 5) and (state.can_play('Zeldas Lullaby') or world.keysanity)) set_rule(world.get_location('Water Temple Torches Chest'), lambda state: (state.has('Bow') or (state.has('Dins Fire') and state.has('Magic Meter'))) and state.can_play('Zeldas Lullaby')) @@ -277,7 +277,7 @@ def global_rules(world): set_rule(world.get_location('Gerudo Training Grounds Maze Path Third Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 7)) set_rule(world.get_location('Gerudo Training Grounds Maze Path Final Chest'), lambda state: (state.has('Small Key (Gerudo Training Grounds)', 9)) or (item_name(state, 'Gerudo Training Grounds Maze Path Final Chest') == 'Small Key (Gerudo Training Grounds)' and state.has('Small Key (Gerudo Training Grounds)', 8))) #Allow key for key set_always_allow(world.get_location('Gerudo Training Grounds Maze Path Final Chest'), lambda item, state: item.name == 'Small Key (Gerudo Training Grounds)') - set_rule(world.get_location('Gerudo Training Grounds Underwater Silver Rupee Chest'), lambda state: state.has('Progressive Hookshot') and state.can_play('Song of Time') and state.has('Iron Boots') and state.is_adult()) + set_rule(world.get_location('Gerudo Training Grounds Underwater Silver Rupee Chest'), lambda state: state.has('Progressive Hookshot') and state.can_play('Song of Time') and state.has('Iron Boots') and state.is_adult() and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic())) set_rule(world.get_location('Gerudo Training Grounds Hammer Room Switch Chest'), lambda state: state.has('Hammer') and state.is_adult()) set_rule(world.get_location('Gerudo Training Grounds Eye Statue Chest'), lambda state: state.has('Bow') and state.is_adult()) set_rule(world.get_location('Gerudo Training Grounds Near Scarecrow Chest'), lambda state: state.has('Bow') and state.is_adult()) @@ -291,8 +291,8 @@ def global_rules(world): set_rule(world.get_entrance('Adult Spirit Temple Passthrough'), lambda state: state.has('Small Key (Spirit Temple)', 1)) set_rule(world.get_entrance('Spirit Temple Central Locked Door'), lambda state: state.has('Small Key (Spirit Temple)', 4) and state.has('Progressive Strength Upgrade', 2) and state.is_adult()) set_rule(world.get_entrance('Spirit Temple Final Locked Door'), lambda state: state.has('Small Key (Spirit Temple)', 5) and (state.has('Progressive Hookshot') or state.has('Bow') or state.has_explosives())) - set_rule(world.get_location('Spirit Temple Child Left Chest'), lambda state: state.has('Boomerang') or state.has('Slingshot')) - set_rule(world.get_location('Spirit Temple Child Right Chest'), lambda state: state.has('Boomerang') or state.has('Slingshot')) + set_rule(world.get_location('Spirit Temple Child Left Chest'), lambda state: state.has('Boomerang') or state.has('Slingshot') or state.has_bombchus()) + set_rule(world.get_location('Spirit Temple Child Right Chest'), lambda state: state.has('Boomerang') or state.has('Slingshot') or state.has_bombchus()) set_rule(world.get_location('Spirit Temple Compass Chest'), lambda state: state.has('Progressive Hookshot') and state.can_play('Zeldas Lullaby')) set_rule(world.get_location('Spirit Temple Early Adult Right Chest'), lambda state: state.has('Bow') or state.has('Progressive Hookshot') or state.has_bombchus()) #requires a very specific Bombchu use, Hover Boots can be skipped by jumping on top of the rolling rock. set_rule(world.get_location('Spirit Temple First Mirror Right Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3)) @@ -302,7 +302,7 @@ def global_rules(world): set_rule(world.get_location('Spirit Temple Child Climb North Chest'), lambda state: state.has_explosives() or ((state.has('Boomerang') or state.has('Slingshot')) and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 5) and state.can_play('Requiem of Spirit') and (state.has('Boomerang') or state.has('Slingshot')))) set_rule(world.get_location('Spirit Temple Sun Block Room Chest'), lambda state: (state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit')) or (state.has_fire_source() and (state.has_explosives() or state.has('Small Key (Spirit Temple)', 2)))) set_rule(world.get_location('Spirit Temple Statue Hand Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('Spirit Temple NE Main Room Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.can_play('Zeldas Lullaby') and state.has('Progressive Hookshot')) + set_rule(world.get_location('Spirit Temple NE Main Room Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.can_play('Zeldas Lullaby') and (state.has('Progressive Hookshot') or state.has("Hover Boots"))) set_rule(world.get_location('Mirror Shield Chest'), lambda state: state.has('Small Key (Spirit Temple)', 4) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.has_explosives()) set_rule(world.get_location('Silver Gauntlets Chest'), lambda state: (state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Hookshot', 2) and state.has_explosives()) or state.has('Small Key (Spirit Temple)', 5)) set_rule(world.get_location('Spirit Temple Near Four Armos Chest'), lambda state: state.has('Mirror Shield') and state.has_explosives()) @@ -315,23 +315,23 @@ def global_rules(world): set_rule(world.get_location('Zelda'), lambda state: state.has('Shadow Medallion') and state.has('Spirit Medallion')) set_rule(world.get_entrance('Ganons Castle Light Trial'), lambda state: state.has('Progressive Strength Upgrade', 3)) set_rule(world.get_entrance('Ganons Castle Tower'), lambda state: (world.skipped_trials['Forest'] or state.has('Forest Trial Clear')) and (world.skipped_trials['Fire'] or state.has('Fire Trial Clear')) and (world.skipped_trials['Water'] or state.has('Water Trial Clear')) and (world.skipped_trials['Shadow'] or state.has('Shadow Trial Clear')) and (world.skipped_trials['Spirit'] or state.has('Spirit Trial Clear')) and (world.skipped_trials['Light'] or state.has('Light Trial Clear'))) - set_rule(world.get_location('Ganons Castle Forest Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and (state.has('Fire Arrows') or (state.has('Progressive Hookshot') and state.has('Dins Fire')))) + set_rule(world.get_location('Ganons Castle Forest Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and (state.has('Fire Arrows') or state.has('Dins Fire'))) set_rule(world.get_location('Ganons Castle Fire Trial Clear'), lambda state: state.has_GoronTunic() and state.has('Progressive Strength Upgrade', 3) and state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and state.has('Progressive Hookshot', 2)) set_rule(world.get_location('Ganons Castle Water Trial Clear'), lambda state: state.has_bottle() and state.has('Hammer') and state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows')) - set_rule(world.get_location('Ganons Castle Shadow Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and state.has('Hammer') and (state.has('Fire Arrows') or state.has('Progressive Hookshot', 2)) and (state.can_see_with_lens() or (state.has('Hover Boots') and state.has('Progressive Hookshot', 2)))) + set_rule(world.get_location('Ganons Castle Shadow Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and state.has('Hammer') and ((state.has('Fire Arrows') and (state.has('Hover Boots') or state.can_see_with_lens())) or (state.has('Progressive Hookshot', 2) and (state.has('Hover Boots') or (state.has('Dins Fire') and state.can_see_with_lens()))))) set_rule(world.get_location('Ganons Castle Shadow Trial First Chest'), lambda state: (state.has('Magic Meter') and state.has('Bow') and state.has('Fire Arrows')) or state.has('Progressive Hookshot') or state.has('Hover Boots') or state.can_play('Song of Time')) - set_rule(world.get_location('Ganons Castle Shadow Trial Second Chest'), lambda state: (state.has('Magic Meter') and state.has('Bow') and state.has('Fire Arrows')) or (state.has('Progressive Hookshot', 2) and state.has('Hover Boots'))) + set_rule(world.get_location('Ganons Castle Shadow Trial Second Chest'), lambda state: (state.has('Magic Meter') and state.has('Bow') and state.has('Fire Arrows')) or (state.has('Progressive Hookshot', 2) and (state.has('Hover Boots') or (state.has('Dins Fire') and state.has('Magic Meter'))))) set_rule(world.get_location('Ganons Castle Spirit Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and state.has('Mirror Shield') and state.has_bombchus() and state.has('Progressive Hookshot')) - set_rule(world.get_location('Ganons Castle Spirit Trial First Chest'), lambda state: state.has('Progressive Hookshot') and (state.has('Magic Meter') or state.has_explosives())) - set_rule(world.get_location('Ganons Castle Spirit Trial Second Chest'), lambda state: state.has('Progressive Hookshot') and state.has('Magic Meter') and state.has_bombchus() and state.can_see_with_lens()) + set_rule(world.get_location('Ganons Castle Spirit Trial First Chest'), lambda state: state.has('Progressive Hookshot')) + set_rule(world.get_location('Ganons Castle Spirit Trial Second Chest'), lambda state: state.has('Progressive Hookshot') and state.has_bombchus() and state.can_see_with_lens()) set_rule(world.get_location('Ganons Castle Light Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Progressive Hookshot') and state.has('Light Arrows') and state.has('Small Key (Ganons Castle)', 2)) set_rule(world.get_location('Ganons Castle Light Trail Invisible Enemies Chest'), lambda state: state.can_see_with_lens()) set_rule(world.get_location('Ganons Castle Light Trial Lullaby Chest'), lambda state: state.can_play('Zeldas Lullaby') and state.has('Small Key (Ganons Castle)', 1)) set_rule(world.get_location('Ganon'), lambda state: (state.has('Boss Key (Ganons Castle)') or world.unlocked_ganondorf) and (state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows')) ) set_rule(world.get_entrance('Kokiri Forest Storms Grotto'), lambda state: state.can_play('Song of Storms')) - set_rule(world.get_entrance('Lost Woods Generic Grotto'), lambda state: state.can_blast_or_smash()) - set_rule(world.get_entrance('Lost Woods Sales Grotto'), lambda state: state.has_explosives() or (state.has('Hammer') and state.is_adult() and (state.can_play('Minuet of Forest') or state.can_play('Sarias Song')))) - set_rule(world.get_entrance('Front of Meadow Grotto'), lambda state: state.has_explosives() or (state.has('Hammer') and state.is_adult() and (state.can_play('Minuet of Forest') or state.can_play('Sarias Song')))) + set_rule(world.get_entrance('Lost Woods Generic Grotto'), lambda state: state.has('Bomb Bag') or (state.can_blast_or_smash() and (world.open_forest or (state.has('Slingshot') and state.has('Kokiri Sword'))))) + set_rule(world.get_entrance('Lost Woods Sales Grotto'), lambda state: (state.has('Bomb Bag') or (state.has_bombchus() and (world.open_forest or (state.has('Slingshot') and state.has('Kokiri Sword'))))) or (state.has('Hammer') and state.is_adult() and (state.can_play('Minuet of Forest') or state.can_play('Sarias Song')))) + set_rule(world.get_entrance('Front of Meadow Grotto'), lambda state: (state.has('Bomb Bag') or (state.has_bombchus() and (world.open_forest or (state.has('Slingshot') and state.has('Kokiri Sword'))))) or (state.has('Hammer') and state.is_adult() and (state.can_play('Minuet of Forest') or state.can_play('Sarias Song')))) set_rule(world.get_entrance('Remote Southern Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Field Near Lake Inside Fence Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Field Valley Grotto'), lambda state: state.can_blast_or_smash()) @@ -354,8 +354,7 @@ def global_rules(world): set_rule(world.get_location('GS Lost Woods Bean Patch Near Stage'), lambda state: state.has_bottle()) set_rule(world.get_location('GS Lost Woods Above Stage'), lambda state: state.has('Magic Bean') and state.nighttime()) set_rule(world.get_location('GS Sacred Forest Meadow'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.nighttime()) - set_rule(world.get_location('GS Deku Tree Basement Vines'), lambda state: state.has('Slingshot') or state.has_explosives() or state.has('Boomerang') or (state.has('Dins Fire') and state.has('Magic Meter'))) - set_rule(world.get_location('GS Deku Tree Basement Back Room'), lambda state: state.has('Boomerang') and state.has_explosives()) + set_rule(world.get_location('GS Deku Tree Basement Back Room'), lambda state: state.has('Boomerang') and (state.has('Bomb Bag') or (state.has_bombchus() and (world.open_forest or (state.has('Slingshot') and state.has('Kokiri Sword')))))) set_rule(world.get_location('GS Hyrule Field near Kakariko'), lambda state: (state.has('Boomerang') and state.has_explosives()) or (state.has('Progressive Hookshot') and state.is_adult())) set_rule(world.get_location('GS Hyrule Field Near Gerudo Valley'), lambda state: (state.has('Hammer') and state.has_fire_source() and state.has('Progressive Hookshot') and state.is_adult()) or (state.has('Boomerang') and state.has_explosives() and state.has('Dins Fire') and state.has('Magic Meter'))) set_rule(world.get_location('GS Hyrule Castle Grotto'), lambda state: state.has('Boomerang') and state.has_explosives()) @@ -366,7 +365,7 @@ def global_rules(world): set_rule(world.get_location('GS Kakariko Skulltula House'), lambda state: state.nighttime()) set_rule(world.get_location('GS Kakariko Guard\'s House'), lambda state: state.nighttime()) set_rule(world.get_location('GS Kakariko Tree'), lambda state: state.nighttime()) - set_rule(world.get_location('GS Kakariko Watchtower'), lambda state: state.has('Slingshot') or state.has_explosives() and state.nighttime()) + set_rule(world.get_location('GS Kakariko Watchtower'), lambda state: (state.has('Slingshot') or state.has_bombchus()) and state.nighttime()) set_rule(world.get_location('GS Kakariko Above Impa\'s House'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.nighttime()) set_rule(world.get_location('GS Graveyard Wall'), lambda state: state.has('Boomerang') and state.nighttime()) set_rule(world.get_location('GS Graveyard Bean Patch'), lambda state: state.has_bottle()) @@ -377,14 +376,13 @@ def global_rules(world): set_rule(world.get_location('GS Goron City Boulder Maze'), lambda state: state.has_explosives()) set_rule(world.get_location('GS Goron City Center Platform'), lambda state: state.is_adult()) set_rule(world.get_location('GS Death Mounter Bean Patch'), lambda state: state.can_play('Bolero of Fire') and state.has_bottle()) - set_rule(world.get_location('GS Dodongo\'s Cavern Vines Above Stairs'), lambda state: state.has_explosives() or (state.has('Boomerang') or state.has('Slingshot') and state.has('Progressive Strength Upgrade')) or (state.has('Dins Fire') and state.has('Magic Meter')) or (state.is_adult and (state.has('Progressive Hookshot') or state.has('Bow') or state.has('Biggoron Sword')))) set_rule(world.get_location('GS Dodongo\'s Cavern Alcove Above Stairs'), lambda state: (state.has('Progressive Hookshot') and state.is_adult()) or (state.has('Boomerang') and (state.has_explosives() or state.has('Progressive Strength Upgrade')))) set_rule(world.get_location('GS Dodongo\'s Cavern Scarecrow'), lambda state: state.is_adult() and ( (state.has('Progressive Hookshot') and state.has_ocarina()) or state.has('Progressive Hookshot', 2) )) set_rule(world.get_location('GS Zora River Ladder'), lambda state: state.nighttime()) set_rule(world.get_location('GS Zora River Near Raised Grottos'), lambda state: state.has('Progressive Hookshot') and state.nighttime()) set_rule(world.get_location('GS Zora River Above Bridge'), lambda state: state.has('Progressive Hookshot') and state.nighttime()) set_rule(world.get_location('GS Zora\'s Domain Frozen Waterfall'), lambda state: state.nighttime() and (state.has('Progressive Hookshot') or state.has('Bow') or state.has('Magic Meter'))) - set_rule(world.get_location('GS Zora\'s Fountain Above the Log'), lambda state: state.has('Boomerang')) + set_rule(world.get_location('GS Zora\'s Fountain Above the Log'), lambda state: state.has('Boomerang') and state.nighttime()) set_rule(world.get_location('GS Zora\'s Fountain Hidden Cave'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.can_blast_or_smash() and state.has('Progressive Hookshot') and state.nighttime()) # Jabu Jabu GS need no reqs becuase the access reqs for their zones cover them. set_rule(world.get_location('GS Lake Hylia Bean Patch'), lambda state: state.has_bottle()) @@ -403,19 +401,19 @@ def global_rules(world): set_rule(world.get_location('GS Fire Temple East Tower Top'), lambda state: state.has_ocarina() and state.has('Small Key (Fire Temple)', 5) and state.has('Progressive Hookshot') and state.is_adult()) set_rule(world.get_location('GS Fire Temple Basement'), lambda state: state.has('Hammer') and state.is_adult()) set_rule(world.get_location('GS Ice Cavern Spinning Scythe Room'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('GS Ice Cavern Heart Piece Room'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('GS Ice Cavern Push Block Room'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('GS Water Temple South Basement'), lambda state: state.has_explosives() and (state.has('Magic Meter') or state.has('Biggoron Sword'))) + set_rule(world.get_location('GS Ice Cavern Heart Piece Room'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.has_bottle()) + set_rule(world.get_location('GS Ice Cavern Push Block Room'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.has_bottle()) + set_rule(world.get_location('GS Water Temple South Basement'), lambda state: state.has_explosives()) set_rule(world.get_location('GS Water Temple Serpent River'), lambda state: state.can_play('Song of Time') and state.has('Small Key (Water Temple)', 6)) set_rule(world.get_location('GS Water Temple Falling Platform Room'), lambda state: state.has('Progressive Hookshot', 2)) - set_rule(world.get_location('GS Water Temple Central Room'), lambda state: state.has('Progressive Hookshot', 2)) + set_rule(world.get_location('GS Water Temple Central Room'), lambda state: state.has('Progressive Hookshot', 2) or (state.has('Farores Wind') and state.has('Magic'))) set_rule(world.get_location('GS Water Temple Near Boss Key Chest'), lambda state: state.has('Progressive Hookshot', 2) and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and state.has('Small Key (Water Temple)', 6)) #5 keys would be better but it wouldn't be compatible with the key for key scenarios, 6 will be identical pre-keysanity. set_rule(world.get_location('GS Well West Inner Room'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang') and (state.has('Progressive Strength Upgrade') or state.has_explosives() or state.can_see_with_lens())) - set_rule(world.get_location('GS Well East Inner Room'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang')) - set_rule(world.get_location('GS Well Like Like Cage'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang')) + set_rule(world.get_location('GS Well East Inner Room'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang') and state.can_see_with_lens()) + set_rule(world.get_location('GS Well Like Like Cage'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang') and state.can_see_with_lens()) set_rule(world.get_location('GS Shadow Temple Like Like Room'), lambda state: state.has('Progressive Hookshot')) set_rule(world.get_location('GS Shadow Temple Crusher Room'), lambda state: state.has('Progressive Hookshot')) - set_rule(world.get_location('GS Shadow Temple Near Ship'), lambda state: state.has('Progressive Hookshot', 2) and state.has('Progressive Strength Upgrade') and state.has('Small Key (Shadow Temple)', 4)) + set_rule(world.get_location('GS Shadow Temple Near Ship'), lambda state: state.has('Progressive Hookshot', 2) and state.has('Small Key (Shadow Temple)', 4)) set_rule(world.get_location('GS Gerudo Valley Small Bridge'), lambda state: state.has('Boomerang') and state.nighttime()) set_rule(world.get_location('GS Gerudo Valley Bean Patch'), lambda state: state.has_bottle()) set_rule(world.get_location('GS Gerudo Valley Behind Tent'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.nighttime()) @@ -426,9 +424,9 @@ def global_rules(world): set_rule(world.get_location('GS Desert Colossus Bean Patch'), lambda state: state.has_bottle() and state.can_play('Requiem of Spirit')) set_rule(world.get_location('GS Desert Colossus Tree'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.nighttime()) set_rule(world.get_location('GS Desert Colossus Hill'), lambda state: ((state.has('Magic Bean') and state.can_play('Requiem of Spirit')) or state.has('Progressive Hookshot', 2)) and state.is_adult() and state.nighttime()) - set_rule(world.get_location('GS Spirit Temple Metal Fence'), lambda state: state.has('Boomerang') or state.has('Slingshot')) + set_rule(world.get_location('GS Spirit Temple Metal Fence'), lambda state: state.has('Boomerang') or state.has('Slingshot') or state.has_bombchus()) set_rule(world.get_location('GS Spirit Temple Hall to West Iron Knuckle'), lambda state: (state.has('Boomerang') and state.has('Progressive Hookshot')) or (state.has('Boomerang') and state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit')) or (state.has('Progressive Hookshot') and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.has('Small Key (Spirit Temple)', 3))) - set_rule(world.get_location('GS Spirit Temple Boulder Room'), lambda state: state.can_play('Song of Time') and (state.has('Bow') or state.has('Progressive Hookshot') or state.has_explosives())) + set_rule(world.get_location('GS Spirit Temple Boulder Room'), lambda state: state.can_play('Song of Time') and (state.has('Bow') or state.has('Progressive Hookshot') or state.has_bombchus())) set_rule(world.get_location('GS Spirit Temple Lobby'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.has('Small Key (Spirit Temple)', 3) and state.is_adult() and (state.has('Progressive Hookshot', 2) or (state.has('Progressive Hookshot') and state.has_ocarina()) or state.has('Hover Boots'))) for location in world.get_locations(): diff --git a/Settings.py b/Settings.py index 980eacd19..265b58d5f 100644 --- a/Settings.py +++ b/Settings.py @@ -766,6 +766,23 @@ def __init__(self, settings_dict): 'widget': 'Checkbutton', 'default': 'unchecked' }), + Setting_Info('logic_fewer_tunic_requirements', bool, 1, True, + { + 'help': '''\ + Allows the following possible without Goron or Zora Tunic: + Enter Water Temple + Enter Fire Temple + Zoras Fountain Bottom Freestanding PoH + Gerudo Training Grounds Underwater Silver Rupee Chest + ''', + 'action': 'store_true' + }, + { + 'text': "Fewer Tunic Requirements", + 'group': 'tricks', + 'widget': 'Checkbutton', + 'default': 'unchecked' + }), Setting_Info('logic_lens', str, 2, True, { 'default': 'all', diff --git a/version.py b/version.py index 567e86531..193ebcc1f 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.20 f.LUM' +__version__ = '2.13.21 f.LUM' From 1cee3fc08abda32d4ba26f54dd0ca0f57d93266e Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Fri, 27 Jul 2018 10:11:28 -0400 Subject: [PATCH 210/755] Added trial hints --- HintList.py | 4 ++-- Hints.py | 39 +++++++++++++++++++++++++-------------- Regions.py | 38 +++++++++++++++++++------------------- Rom.py | 4 ++-- version.py | 2 +- 5 files changed, 49 insertions(+), 38 deletions(-) diff --git a/HintList.py b/HintList.py index 4b50d1669..afc4e10df 100644 --- a/HintList.py +++ b/HintList.py @@ -50,7 +50,7 @@ def getHintGroup(string, world): 'Goron Tunic': ("ruby robes", 'item'), 'Zora Tunic': ("a sapphire suit", 'item'), 'Iron Boots': ("sink shoes", 'item'), - 'Zeldas Letter': ("a signed banana", 'item'), + 'Zeldas Letter': ("an autograph", 'item'), 'Zeldas Lullaby': ("a song of royal slumber", 'item'), 'Nocturne of Shadow': ("a song of spooky spirits", 'item'), 'Bow': ("an archery enabler", 'item'), @@ -102,7 +102,7 @@ def getHintGroup(string, world): 'Kokiri Sword': ("a butter knife", 'item'), 'Biggoron Sword': ("a shield disabler", 'item'), 'Pocket Egg': ("a cucco container", 'item'), - 'Weird Egg': ("an unsigned egg", 'item'), + 'Weird Egg': ("a chicken dilemma", 'item'), 'Pocket Cucco': ("a little clucker", 'item'), 'Cojiro': ("a cerulean capon", 'item'), 'Odd Mushroom': ("a powder ingredient", 'item'), diff --git a/Hints.py b/Hints.py index b1ed9cb17..d63aa9bbb 100644 --- a/Hints.py +++ b/Hints.py @@ -138,16 +138,26 @@ def buildGossipHints(world, messages): #shuffles the stone addresses for randomization, always locations will be placed first and twice random.shuffle(stoneIDs) + # Add trial hints + if world.trials < 6 and world.trials > 3: + for trial,skipped in world.skipped_trials.items(): + if skipped: + update_hint(messages, stoneIDs.pop(0), buildHintString("the " + trial + " Trial was dispelled by Sheik.")) + elif world.trials > 0: + for trial,skipped in world.skipped_trials.items(): + if not skipped: + update_hint(messages, stoneIDs.pop(0), buildHintString("the " + trial + " Trial protects Ganon's Tower.")) + # add required items locations for hints (good hints) requiredSample = world.spoiler.required_locations - if len(requiredSample) >= 4: - requiredSample = random.sample(requiredSample, random.randint(3,4)) + if len(requiredSample) >= 5: + requiredSample = random.sample(requiredSample, random.randint(4,5)) for location in requiredSample: if location.parent_region.dungeon: update_hint(messages, stoneIDs.pop(0), buildHintString(getHint(location.parent_region.dungeon.name).text + \ " is on the way of the hero.")) else: - update_hint(messages, stoneIDs.pop(0), buildHintString(location.parent_region.name + " is on the way of the hero.")) + update_hint(messages, stoneIDs.pop(0), buildHintString(location.hint + " is on the way of the hero.")) # Don't repeat hints checkedLocations = [] @@ -182,7 +192,7 @@ def buildGossipHints(world, messages): # Choose a randome dungeon location that is a non-dungeon item locationWorld = random.choice([location for region in dungeon.regions for location in world.get_region(region).locations if location.item.type != 'Event' and \ - not location.name in eventlocations and \ + not location.event and \ not isDungeonItem(location.item) and \ (world.tokensanity != 'off' or location.item.name != 'Gold Skulltulla Token') and\ location.item.type != 'Song']) @@ -198,28 +208,29 @@ def buildGossipHints(world, messages): not locationWorld.name in alwaysLocations and \ not locationWorld.name in sometimesLocations and \ locationWorld.item.type != 'Event' and \ - not locationWorld.name in eventlocations and \ + not locationWorld.event and \ (world.tokensanity == 'all' or locationWorld.item.name != 'Gold Skulltulla Token') and \ - not locationWorld.parent_region.dungeon and \ - not locationWorld.name in checkedLocations] + not locationWorld.parent_region.dungeon] overworldSample = overworldlocations if len(overworldSample) >= 4: overworldSample = random.sample(overworldlocations, random.randint(3,4)) for locationWorld in overworldSample: checkedLocations.append(locationWorld.name) update_hint(messages, stoneIDs.pop(0), buildHintString(getHint(getItemGenericName(locationWorld.item)).text + \ - " can be found at " + locationWorld.parent_region.name + ".")) + " can be found at " + locationWorld.hint + ".")) # add good item hints # only choose location if it is new and a good item - if world.shuffle_weird_egg: - gooditems.append('Weird Egg') gooditemlocations = [locationWorld for locationWorld in world.get_locations() if not locationWorld.name in checkedLocations and \ - locationWorld.item.name in gooditems] + locationWorld.item.advancement and \ + locationWorld.item.type != 'Event' and \ + not locationWorld.event and \ + locationWorld.item.name != 'Gold Skulltulla Token' and \ + not locationWorld.item.key] gooditemSample = gooditemlocations - if len(gooditemSample) >= 5: - gooditemSample = random.sample(gooditemlocations, random.randint(3,5)) + if len(gooditemSample) >= 6: + gooditemSample = random.sample(gooditemlocations, random.randint(4,6)) for locationWorld in gooditemSample: checkedLocations.append(locationWorld.name) if locationWorld.parent_region.dungeon: @@ -227,7 +238,7 @@ def buildGossipHints(world, messages): " hoards " + getHint(getItemGenericName(locationWorld.item)).text + ".")) else: update_hint(messages, stoneIDs.pop(0), buildHintString(getHint(getItemGenericName(locationWorld.item)).text + \ - " can be found at " + locationWorld.parent_region.name + ".")) + " can be found at " + locationWorld.hint + ".")) # fill the remaining hints with junk junkHints = getHintGroup('junkHint', world) diff --git a/Regions.py b/Regions.py index e76643bc1..15db16133 100644 --- a/Regions.py +++ b/Regions.py @@ -462,28 +462,28 @@ def _create_region(name, type, locations=None, exits=None): 'Morpha Heart': (None, None, 0x4F, 'BossHeart', 0x16, 'Water Temple'), 'Twinrova Heart': (None, None, 0x4F, 'BossHeart', 0x17, 'Spirit Temple'), 'Bongo Bongo Heart': (None, None, 0x4F, 'BossHeart', 0x18, 'Shadow Temple'), - 'Magic Bean Salesman': (None, None, None, 'Event', None, None), - 'King Zora Moves': (None, None, None, 'Event', None, None), + 'Magic Bean Salesman': (None, None, None, 'Event', None, 'Zora\'s River'), + 'King Zora Moves': (None, None, None, 'Event', None, 'Zora\'s Domain'), 'Ocarina of Time': (None, None, 0x0C, 'NPC', 0x51, 'Hyrule Field'), 'Master Sword Pedestal': (None, None, None, 'Event', None, 'the Temple of Time'), - 'Epona': (None, None, None, 'Event', None, None), + 'Epona': (None, None, None, 'Event', None, 'Lon Lon Ranch'), 'Gerudo Fortress Carpenter Rescue': (None, None, None, 'Event', None, 'Gerudo Fortress'), - 'Ganons Castle Forest Trial Clear': (None, None, None, 'Event', None, None), - 'Ganons Castle Fire Trial Clear': (None, None, None, 'Event', None, None), - 'Ganons Castle Water Trial Clear': (None, None, None, 'Event', None, None), - 'Ganons Castle Shadow Trial Clear': (None, None, None, 'Event', None, None), - 'Ganons Castle Spirit Trial Clear': (None, None, None, 'Event', None, None), - 'Ganons Castle Light Trial Clear': (None, None, None, 'Event', None, None), - 'Links Pocket': (0x34806FB, 0x34806FF, None, 'Boss', None, None), # I don't think the actually addresses matter here anymore, but they can't be None for some reason - 'Queen Gohma': (0xCA315F, 0x2079571, 0x6C, 'Boss', None, None), - 'King Dodongo': (0xCA30DF, 0x2223309, 0x6D, 'Boss', None, None), - 'Barinade': (0xCA36EB, 0x2113C19, 0x6E, 'Boss', None, None), - 'Phantom Ganon': (0xCA3D07, 0xD4ED79, 0x66, 'Boss', None, None), - 'Volvagia': (0xCA3D93, 0xD10135, 0x67, 'Boss', None, None), - 'Morpha': (0xCA3E1F, 0xD5A3A9, 0x68, 'Boss', None, None), - 'Twinrova': (0xCA3EB3, 0xD39FF1, 0x69, 'Boss', None, None), - 'Bongo Bongo': (0xCA3F43, 0xD13E19, 0x6A, 'Boss', None, None), - 'Ganon': (None, None, None, 'Boss', None, None), + 'Ganons Castle Forest Trial Clear': (None, None, None, 'Event', None, 'Ganon\'s Castle'), + 'Ganons Castle Fire Trial Clear': (None, None, None, 'Event', None, 'Ganon\'s Castle'), + 'Ganons Castle Water Trial Clear': (None, None, None, 'Event', None, 'Ganon\'s Castle'), + 'Ganons Castle Shadow Trial Clear': (None, None, None, 'Event', None, 'Ganon\'s Castle'), + 'Ganons Castle Spirit Trial Clear': (None, None, None, 'Event', None, 'Ganon\'s Castle'), + 'Ganons Castle Light Trial Clear': (None, None, None, 'Event', None, 'Ganon\'s Castle'), + 'Links Pocket': (0x34806FB, 0x34806FF, None, 'Boss', None, 'Link\'s Pocket'), # I don't think the actually addresses matter here anymore, but they can't be None for some reason + 'Queen Gohma': (0xCA315F, 0x2079571, 0x6C, 'Boss', None, 'Deku Tree'), + 'King Dodongo': (0xCA30DF, 0x2223309, 0x6D, 'Boss', None, 'Dodongo\'s Cavern'), + 'Barinade': (0xCA36EB, 0x2113C19, 0x6E, 'Boss', None, 'Jabu Jabu\'s Belly'), + 'Phantom Ganon': (0xCA3D07, 0xD4ED79, 0x66, 'Boss', None, 'Shadow Temple'), + 'Volvagia': (0xCA3D93, 0xD10135, 0x67, 'Boss', None, 'Fire Temple'), + 'Morpha': (0xCA3E1F, 0xD5A3A9, 0x68, 'Boss', None, 'Water Temple'), + 'Twinrova': (0xCA3EB3, 0xD39FF1, 0x69, 'Boss', None, 'Spirit Temple'), + 'Bongo Bongo': (0xCA3F43, 0xD13E19, 0x6A, 'Boss', None, 'Shadow Temple'), + 'Ganon': (None, None, None, 'Boss', None, 'Ganon\'s Castle'), # note that the scene for skulltulas is not the actual scene the token appears in # rather, it is the index of the grouping used when storing skulltula collection # for example, zora river, zora's domain, and zora fountain are all a single 'scene' for skulltulas diff --git a/Rom.py b/Rom.py index a08e13f87..d51a97bef 100644 --- a/Rom.py +++ b/Rom.py @@ -354,8 +354,8 @@ def patch_rom(world, rom): if not world.shuffle_song_items: # revert sun song item override injection - rom.write_ints32s(0xE09F64, [0x8DCE8C2C, 0x8C6F00A4]) - rom.write_ints32s(0xE09FB0, [0x240F0001]) + rom.write_int32s(0xE09F64, [0x8DCE8C2C, 0x8C6F00A4]) + rom.write_int32s(0xE09FB0, [0x240F0001]) # Speed learning Saria's Song diff --git a/version.py b/version.py index 8762a51c3..2189f5972 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.30 f.LUM' \ No newline at end of file +__version__ = '2.13.31 f.LUM' \ No newline at end of file From 120a106104366ee2be145c6ddb1b9a5ee97bc025 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Fri, 27 Jul 2018 10:39:50 -0400 Subject: [PATCH 211/755] Fix song item IDs and trial hints --- Hints.py | 70 +----------------------------------------------------- Items.py | 24 +++++++++---------- Rom.py | 35 +++++++++++++-------------- version.py | 2 +- 4 files changed, 30 insertions(+), 101 deletions(-) diff --git a/Hints.py b/Hints.py index d63aa9bbb..3c35c1e19 100644 --- a/Hints.py +++ b/Hints.py @@ -10,74 +10,6 @@ from ItemList import eventlocations from Messages import update_message_by_id -gooditems = [ - 'Bow', - 'Progressive Hookshot', - 'Hammer', - 'Slingshot', - 'Boomerang', - 'Bomb Bag', - 'Lens of Truth', - 'Dins Fire', - 'Farores Wind', - 'Nayrus Love', - 'Fire Arrows', - 'Ice Arrows', - 'Light Arrows', - 'Bottle', - 'Bottle with Letter', - 'Bottle with Milk', - 'Bottle with Red Potion', - 'Bottle with Green Potion', - 'Bottle with Blue Potion', - 'Bottle with Fairy', - 'Bottle with Fish', - 'Bottle with Blue Fire', - 'Bottle with Bugs', - 'Bottle with Poe', - 'Pocket Egg', - 'Pocket Cucco', - 'Cojiro', - 'Odd Mushroom', - 'Odd Potion', - 'Poachers Saw', - 'Broken Sword', - 'Prescription', - 'Eyeball Frog', - 'Eyedrops', - 'Claim Check', - 'Kokiri Sword', - 'Biggoron Sword', - 'Deku Shield', - 'Hylian Shield', - 'Mirror Shield', - 'Goron Tunic', - 'Zora Tunic', - 'Iron Boots', - 'Hover Boots', - 'Progressive Strength Upgrade', - 'Progressive Scale', - 'Progressive Wallet', - 'Deku Stick Capacity', - 'Deku Nut Capacity', - 'Magic Meter', - 'Double Defense', - 'Stone of Agony', - 'Zeldas Lullaby', - 'Eponas Song', - 'Suns Song', - 'Sarias Song', - 'Song of Time', - 'Song of Storms', - 'Minuet of Forest', - 'Prelude of Light', - 'Bolero of Fire', - 'Serenade of Water', - 'Nocturne of Shadow', - 'Requiem of Spirit', -] - - # build a formatted string with linebreaks appropriate textboxes def buildHintString(hintString): if len(hintString) < 77: @@ -143,7 +75,7 @@ def buildGossipHints(world, messages): for trial,skipped in world.skipped_trials.items(): if skipped: update_hint(messages, stoneIDs.pop(0), buildHintString("the " + trial + " Trial was dispelled by Sheik.")) - elif world.trials > 0: + elif world.trials <= 3 and world.trials > 0: for trial,skipped in world.skipped_trials.items(): if not skipped: update_hint(messages, stoneIDs.pop(0), buildHintString("the " + trial + " Trial protects Ganon's Tower.")) diff --git a/Items.py b/Items.py index 53a554bfb..4e8c5c8b2 100644 --- a/Items.py +++ b/Items.py @@ -152,18 +152,18 @@ def ItemFactory(items): 'Small Key (Gerudo Fortress)': (True, False, 'SmallKey', None, 0xB3), 'Small Key (Ganons Castle)': (True, False, 'SmallKey', None, 0xB4), 'Zeldas Letter': (True, False, None, None, None), - 'Zeldas Lullaby': (True, False, 'Song', 0x0A, 0x5), - 'Eponas Song': (True, False, 'Song', 0x09, 0x4), - 'Suns Song': (True, False, 'Song', 0x0B, 0x2), - 'Sarias Song': (True, False, 'Song', 0x08, 0x3), - 'Song of Time': (True, False, 'Song', 0x0C, 0x1), - 'Song of Storms': (True, False, 'Song', 0x0D, 0x0), - 'Minuet of Forest': (True, False, 'Song', 0x02, 0xB), - 'Prelude of Light': (True, False, 'Song', 0x07, 0x6), - 'Bolero of Fire': (True, False, 'Song', 0x03, 0xA), - 'Serenade of Water': (True, False, 'Song', 0x04, 0x9), - 'Nocturne of Shadow': (True, False, 'Song', 0x06, 0x7), - 'Requiem of Spirit': (True, False, 'Song', 0x05, 0x8), + 'Zeldas Lullaby': (True, False, 'Song', [0x0A, 0x5], 0xCA), + 'Eponas Song': (True, False, 'Song', [0x09, 0x4], 0xCB), + 'Suns Song': (True, False, 'Song', [0x0B, 0x2], 0xCD), + 'Sarias Song': (True, False, 'Song', [0x08, 0x3], 0xCC), + 'Song of Time': (True, False, 'Song', [0x0C, 0x1], 0xCE), + 'Song of Storms': (True, False, 'Song', [0x0D, 0x0], 0xCF), + 'Minuet of Forest': (True, False, 'Song', [0x02, 0xB], 0xC4), + 'Prelude of Light': (True, False, 'Song', [0x07, 0x6], 0xC9), + 'Bolero of Fire': (True, False, 'Song', [0x03, 0xA], 0xC5), + 'Serenade of Water': (True, False, 'Song', [0x04, 0x9], 0xC6), + 'Nocturne of Shadow': (True, False, 'Song', [0x06, 0x7], 0xC8), + 'Requiem of Spirit': (True, False, 'Song', [0x05, 0x8], 0xC7), 'Gold Skulltulla Token': (True, False, 'Token', None, 0x5B), 'Epona': (True, False, 'Event', None, None), 'Gerudo Membership Card': (True, False, 'Event', 0x0740, 0x3A), diff --git a/Rom.py b/Rom.py index d51a97bef..5556b69d7 100644 --- a/Rom.py +++ b/Rom.py @@ -6,6 +6,7 @@ import struct import subprocess import random +import copy from Hints import buildGossipHints, buildBossRewardHints, buildGanonText from Utils import local_path, default_output_path @@ -1191,7 +1192,7 @@ def write_save_table(rom): # Patch songs and boss rewards for location in world.get_locations(): item = location.item - itemid = item.code + itemid = copy.copy(item.code) locationaddress = location.address secondaryaddress = location.address2 @@ -1199,17 +1200,17 @@ def write_save_table(rom): continue if location.type == 'Song' and not world.shuffle_song_items: - rom.write_byte(locationaddress, itemid) - itemid = itemid + 0x0D - rom.write_byte(secondaryaddress, itemid) + rom.write_byte(locationaddress, itemid[0]) + itemid[0] = itemid[0] + 0x0D + rom.write_byte(secondaryaddress, itemid[0]) if location.name == 'Impa at Castle': - impa_fix = 0x65 - item.index + impa_fix = 0x65 - itemid[1] rom.write_byte(0xD12ECB, impa_fix) rom.write_byte(0x2E8E931, item_data[item.name]) #Fix text box elif location.name == 'Song from Malon': if item.name == 'Suns Song': - rom.write_byte(locationaddress, itemid) - malon_fix = 0x8C34 - (item.index * 4) + rom.write_byte(locationaddress, itemid[0]) + malon_fix = 0x8C34 - (itemid[1] * 4) malon_fix_high = malon_fix >> 8 malon_fix_low = malon_fix & 0x00FF rom.write_bytes(0xD7E142, [malon_fix_high, malon_fix_low]) @@ -1217,39 +1218,39 @@ def write_save_table(rom): rom.write_bytes(0xD7E786, [malon_fix_high, malon_fix_low]) rom.write_byte(0x29BECB9, item_data[item.name]) #Fix text box elif location.name == 'Song from Composer Grave': - sun_fix = 0x8C34 - (item.index * 4) + sun_fix = 0x8C34 - (itemid[1] * 4) sun_fix_high = sun_fix >> 8 sun_fix_low = sun_fix & 0x00FF rom.write_bytes(0xE09F66, [sun_fix_high, sun_fix_low]) rom.write_byte(0x332A87D, item_data[item.name]) #Fix text box elif location.name == 'Song from Saria': - saria_fix = 0x65 - item.index + saria_fix = 0x65 - itemid[1] rom.write_byte(0xE2A02B, saria_fix) rom.write_byte(0x20B1DBD, item_data[item.name]) #Fix text box elif location.name == 'Song from Ocarina of Time': rom.write_byte(0x252FC95, item_data[item.name]) #Fix text box elif location.name == 'Song at Windmill': - windmill_fix = 0x65 - item.index + windmill_fix = 0x65 - itemid[1] rom.write_byte(0xE42ABF, windmill_fix) rom.write_byte(0x3041091, item_data[item.name]) #Fix text box elif location.name == 'Sheik Forest Song': - minuet_fix = 0x65 - item.index + minuet_fix = 0x65 - itemid[1] rom.write_byte(0xC7BAA3, minuet_fix) rom.write_byte(0x20B0815, item_data[item.name]) #Fix text box elif location.name == 'Sheik at Temple': - prelude_fix = 0x65 - item.index + prelude_fix = 0x65 - itemid[1] rom.write_byte(0xC805EF, prelude_fix) rom.write_byte(0x2531335, item_data[item.name]) #Fix text box elif location.name == 'Sheik in Crater': - bolero_fix = 0x65 - item.index + bolero_fix = 0x65 - itemid[1] rom.write_byte(0xC7BC57, bolero_fix) rom.write_byte(0x224D7FD, item_data[item.name]) #Fix text box elif location.name == 'Sheik in Ice Cavern': - serenade_fix = 0x65 - item.index + serenade_fix = 0x65 - itemid[1] rom.write_byte(0xC7BD77, serenade_fix) rom.write_byte(0x2BEC895, item_data[item.name]) #Fix text box elif location.name == 'Sheik in Kakariko': - nocturne_fix = 0x65 - item.index + nocturne_fix = 0x65 - itemid[1] rom.write_byte(0xAC9A5B, nocturne_fix) rom.write_byte(0x2000FED, item_data[item.name]) #Fix text box elif location.name == 'Sheik at Colossus': @@ -1496,10 +1497,6 @@ def get_override_entry(location): if None in [scene, default, item_id]: return [] - # Correct song offset - if location.item.type == 'Song': - item_id = location.item.code + 0xC2 - player_id = (location.item.world.id + 1) << 3 if location.type in ['NPC', 'BossHeart', 'Song']: diff --git a/version.py b/version.py index 2189f5972..de766b840 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.31 f.LUM' \ No newline at end of file +__version__ = '2.13.33 f.LUM' \ No newline at end of file From 72da1a1a6d293f6778cd7055e8ed4043d5360c7f Mon Sep 17 00:00:00 2001 From: Lumen the Fairy Date: Fri, 27 Jul 2018 10:33:03 -0500 Subject: [PATCH 212/755] Fixed a minor rule issue. Updated the README. --- README.md | 7 ++++--- Rules.py | 2 +- version.py | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index f0ff1c663..fc4776e97 100644 --- a/README.md +++ b/README.md @@ -13,11 +13,12 @@ The following were added or majorly changed on this fork: - Options are saved when closing the GUI and loaded when opening it - Can set Output directory -## Logic changes +## Notable Logic changes - The Heart Piece at the cow in Impa's house can be reached using only a chicken -- Zora Tunic is only required to get the key below the central pillar in the Water Temple -- Goron Tunic is only required for the fire trial in Ganon's Castle and to get to the 2nd floor (and beyond) in the Fire Temple +- Giant stairs in Dodongo's Cavern can be lowered with the Bow as an adult (quickly shoot a bomb flower on both side of the stairs) +- The start of child-side Spirit Temple can be done with bombchus (aim the bombchu directly away from the bridge so that it crawls up the wall, across the ceiling, down the raised bridge, and explodes in front of the switch) +- The skulltula token in the central room of the Water Temple can be obtained without longshot by setting Farore's Wind in the room and using it to return to the room when the water level is back at its highest level ## Optional Logic changes diff --git a/Rules.py b/Rules.py index 20af768c5..5ac36f74d 100644 --- a/Rules.py +++ b/Rules.py @@ -105,7 +105,7 @@ def global_rules(world): set_rule(world.get_entrance('Goron City from Woods'), lambda state: state.can_blast_or_smash() and (world.open_forest or (state.has('Slingshot') and state.has('Kokiri Sword')))) set_rule(world.get_entrance('Dodongos Cavern Rocks'), lambda state: state.can_blast_or_smash() or state.has('Progressive Strength Upgrade') or state.is_adult()) set_rule(world.get_entrance('Dodongos Cavern Lobby'), lambda state: state.can_blast_or_smash() or state.has('Progressive Strength Upgrade')) - set_rule(world.get_entrance('Dodongos Cavern Left Door'), lambda state: state.has_explosives() or state.has('Progressive Strength Upgrade') or (state.has('Dins Fire') and state.has('Magic Meter')) or state.has('Bow')) + set_rule(world.get_entrance('Dodongos Cavern Left Door'), lambda state: state.has_explosives() or state.has('Progressive Strength Upgrade') or (state.has('Dins Fire') and state.has('Magic Meter')) or (state.has('Bow') and state.is_adult())) set_rule(world.get_entrance('Dodongos Cavern Slingshot Target'), lambda state: state.has('Slingshot') or ((state.has('Bow') or state.has('Hover Boots') or state.has('Progressive Hookshot', 2) or world.logic_dc_jump) and state.is_adult())) set_rule(world.get_location('Dodongos Cavern End of Bridge Chest'), lambda state: state.has_explosives() or ((state.has('Bow') or state.has('Hover Boots') or state.has('Progressive Hookshot', 2) or world.logic_dc_jump) and state.is_adult() and state.has('Hammer'))) set_rule(world.get_entrance('Dodongos Cavern Bomb Drop'), lambda state: state.has_explosives()) diff --git a/version.py b/version.py index fe28592bd..43b030b07 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.14.3 f.LUM' \ No newline at end of file +__version__ = '2.14.4 f.LUM' \ No newline at end of file From 3796d9a38f437f360de020c03e7134fdb5231f6b Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Fri, 27 Jul 2018 12:53:22 -0400 Subject: [PATCH 213/755] asm to increment item receive count and send key --- ASM/src/item_overrides.asm | 14 ++++++++++++++ ASM/src/state.asm | 2 +- data/base2current.json | 2 +- version.py | 2 +- 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/ASM/src/item_overrides.asm b/ASM/src/item_overrides.asm index ca20d5a6d..df98f7dd9 100755 --- a/ASM/src/item_overrides.asm +++ b/ASM/src/item_overrides.asm @@ -145,10 +145,23 @@ override_object: li t2, GLOBAL_CONTEXT + 0x104E4 sh r0, 0x00 (t2) + ; get pending item index li t1, PENDING_SPECIAL_ITEM lb t2, (PENDING_SPECIAL_ITEM_END - PENDING_SPECIAL_ITEM) (t1) bltz t2, @@no_pending_clear add t1, t1, t2 + + ; if item is 0x7F, then increment recieved item count + lb t0, 0x00 (t1) ; item id + li t2, 0x7F + bne t0, t2, @@no_count_inc + nop + li t2, SAVE_CONTEXT + lh t0, 0x90(t2) + addi t0, t0, 1 + sh t0, 0x90(t2) ; item count++ + +@@no_count_inc: sb zero, 0x00 (t1) @@no_pending_clear: @@ -471,6 +484,7 @@ scan_override_table: sb t3, 0x02(t1) ; store player override id sb v0, 0x03(t1) ; store item id + sw a0, 0x04(t1) ; store search key @@return: jr ra diff --git a/ASM/src/state.asm b/ASM/src/state.asm index f5fb675a6..aac8c56fd 100755 --- a/ASM/src/state.asm +++ b/ASM/src/state.asm @@ -4,7 +4,7 @@ ; Stores the item and player to give to PLAYER_OVERRIDE_DATA: -.word 0x00000000 +.word 0x00000000, 0x00000000 ; Stores the ITEM_DATA row of the current extended item. EXTENDED_ITEM_DATA: diff --git a/data/base2current.json b/data/base2current.json index c0d10b0ec..a78b280b1 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -1 +1 @@ -[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 183]}, {"11311804": [12, 16, 11, 190]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 176, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 76]}, {"11427296": [12, 16, 11, 186, 52, 2, 0, 255, 16, 0, 5, 97]}, {"11427312": [12, 16, 12, 245]}, {"11431496": [12, 16, 11, 181, 1, 15, 192, 33]}, {"11559932": [52, 14, 0, 2, 130]}, {"11559938": [14, 222]}, {"11562028": [12, 16, 13, 22]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 5]}, {"11882076": [12, 16, 12, 226]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 43, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 50, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 57, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 36, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 127]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 18]}, {"12427480": [12, 16, 10, 102]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 106]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 11, 239, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 139]}, {"12491480": [12, 16, 10, 148]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 133]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 64]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 140, 73]}, {"14149503": [164]}, {"14149512": [2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 193]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 209]}, {"14624335": [118]}, {"14720868": [52, 14, 0, 4, 128]}, {"14720874": [14, 222]}, {"14720944": [12, 16, 11, 201]}, {"14848896": [3, 224, 104, 33, 12, 16, 11, 232, 52, 2]}, {"14848909": [160, 248, 33]}, {"14848932": [161, 248, 14, 223]}, {"14872723": [52]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 236, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 48, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 76, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 104, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 220, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 108, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 140, 128, 64, 38, 132, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 172, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 39, 212, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 28, 128, 64, 40]}, {"55059600": [83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 3, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 44, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [2, 52, 2]}, {"55060003": [69, 52, 2]}, {"55060007": [70, 3, 224]}, {"55060011": [8]}, {"55060016": [144, 136]}, {"55060019": [162, 49, 8]}, {"55060023": [6, 17]}, {"55060027": [2, 52, 2]}, {"55060031": [55, 52, 2]}, {"55060035": [56, 3, 224]}, {"55060039": [8]}, {"55060044": [144, 136]}, {"55060047": [161, 49, 8]}, {"55060051": [32, 17]}, {"55060055": [2, 52, 2]}, {"55060059": [121, 52, 2]}, {"55060063": [122, 3, 224]}, {"55060067": [8]}, {"55060072": [144, 136]}, {"55060075": [161, 49, 8]}, {"55060079": [4, 17]}, {"55060083": [2, 52, 2]}, {"55060087": [119, 52, 2]}, {"55060091": [120, 3, 224]}, {"55060095": [8]}, {"55060100": [144, 136]}, {"55060103": [50, 17]}, {"55060107": [2, 52, 2]}, {"55060111": [192, 52, 2]}, {"55060115": [193, 3, 224]}, {"55060119": [8]}, {"55060124": [144, 136]}, {"55060127": [163, 49, 8]}, {"55060131": [3, 17]}, {"55060135": [2, 52, 2]}, {"55060139": [77, 52, 162]}, {"55060144": [3, 224]}, {"55060147": [8]}, {"55060152": [144, 136]}, {"55060155": [163, 49, 8]}, {"55060159": [24, 17]}, {"55060163": [2, 52, 2]}, {"55060167": [77, 52, 162]}, {"55060172": [3, 224]}, {"55060175": [8]}, {"55060180": [3, 224]}, {"55060183": [8]}, {"55060188": [52, 8]}, {"55060191": [1, 160, 136]}, {"55060195": [62, 3, 224]}, {"55060199": [8]}, {"55060204": [36, 136]}, {"55060207": [134, 36, 9, 255, 255, 37, 41]}, {"55060215": [1, 52, 1]}, {"55060219": [3]}, {"55060221": [41, 8, 42, 20, 32]}, {"55060227": [7]}, {"55060232": [1, 9, 80, 33, 145, 75]}, {"55060240": [52, 1]}, {"55060243": [255, 21, 97, 255, 247]}, {"55060252": [161, 69]}, {"55060256": [3, 224]}, {"55060259": [8]}, {"55060264": [36, 136]}, {"55060267": [168, 1, 6, 64, 33, 145, 9]}, {"55060276": [1, 37, 72, 37, 161, 9]}, {"55060284": [3, 224]}, {"55060287": [8]}, {"55060292": [36, 136]}, {"55060295": [188, 1, 5, 64, 33, 129, 9]}, {"55060304": [5, 33]}, {"55060307": [2]}, {"55060312": [52, 9]}, {"55060316": [37, 41]}, {"55060319": [1, 161, 9]}, {"55060324": [3, 224]}, {"55060327": [8]}, {"55060332": [52, 8]}, {"55060335": [1, 160, 136]}, {"55060339": [61, 52, 8]}, {"55060343": [20, 160, 136]}, {"55060347": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [50, 160, 136]}, {"55060375": [58, 52, 8]}, {"55060379": [48, 164, 136, 19, 244, 160, 136]}, {"55060387": [51, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [2, 160, 136]}, {"55060403": [50, 52, 8]}, {"55060407": [1, 160, 136]}, {"55060411": [58, 160, 136]}, {"55060415": [60, 52, 8]}, {"55060419": [96, 164, 136, 19, 244, 160, 136]}, {"55060427": [51, 3, 224]}, {"55060431": [8]}, {"55060436": [144, 136]}, {"55060439": [124, 52, 1]}, {"55060443": [255, 17, 1]}, {"55060447": [6, 52, 2]}, {"55060451": [107, 144, 136]}, {"55060455": [148, 45, 8]}, {"55060459": [6, 17]}, {"55060463": [2, 52, 2]}, {"55060467": [106, 52, 2]}, {"55060471": [3, 3, 224]}, {"55060475": [8]}, {"55060480": [144, 136]}, {"55060483": [123, 52, 1]}, {"55060487": [255, 17, 1]}, {"55060491": [2, 52, 162]}, {"55060496": [52, 2]}, {"55060499": [12, 3, 224]}, {"55060503": [8]}, {"55060508": [52, 8]}, {"55060511": [7, 160, 136]}, {"55060515": [123, 3, 224]}, {"55060519": [8]}, {"55060524": [52, 8]}, {"55060527": [1]}, {"55060529": [168, 64, 4, 140, 137]}, {"55060535": [164, 1, 40, 72, 37, 172, 137]}, {"55060543": [164, 3, 224]}, {"55060547": [8]}, {"55060552": [48, 132]}, {"55060555": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060567": [140, 16, 129]}, {"55060571": [22, 145, 2]}, {"55060575": [117, 52, 1]}, {"55060579": [141, 16, 129]}, {"55060583": [19, 145, 2]}, {"55060587": [117, 16, 128]}, {"55060591": [17, 145, 2]}, {"55060595": [116, 52, 1]}, {"55060599": [138, 16, 129]}, {"55060603": [14, 145, 2]}, {"55060607": [116, 52, 1]}, {"55060611": [139, 16, 129]}, {"55060615": [11, 145, 2]}, {"55060619": [116, 52, 1]}, {"55060623": [88, 16, 129]}, {"55060627": [8, 52, 2]}, {"55060632": [52, 1]}, {"55060635": [120, 16, 129]}, {"55060639": [5, 52, 2]}, {"55060644": [52, 1]}, {"55060647": [121, 16, 129]}, {"55060651": [2, 52, 2]}, {"55060656": [52, 2]}, {"55060659": [255, 3, 224]}, {"55060663": [8]}, {"55060668": [39, 189, 255, 224, 175, 191]}, {"55060675": [16, 175, 176]}, {"55060679": [20, 12, 16, 10, 254]}, {"55060688": [4, 65]}, {"55060691": [2]}, {"55060696": [52, 2]}, {"55060699": [91]}, {"55060701": [64, 32, 33, 12, 16, 11, 100]}, {"55060712": [16, 96]}, {"55060715": [18, 175, 163]}, {"55060719": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060728": [133, 9]}, {"55060731": [2, 17, 32]}, {"55060735": [3, 52, 10]}, {"55060739": [1, 16]}, {"55060743": [8, 165, 10]}, {"55060748": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060759": [6, 144, 102]}, {"55060763": [7, 140, 105]}, {"55060767": [8, 1, 32, 248, 9]}, {"55060776": [143, 163]}, {"55060779": [28, 144, 101]}, {"55060783": [3, 16]}, {"55060787": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060799": [6]}, {"55060801": [74]}, {"55060803": [24]}, {"55060806": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060816": [60, 8, 128, 64, 37, 8, 32]}, {"55060824": [133, 9]}, {"55060827": [2, 17, 32]}, {"55060831": [3, 52, 10]}, {"55060835": [1, 165, 10]}, {"55060840": [52, 5]}, {"55060843": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060855": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060866": [48, 33, 143, 191]}, {"55060871": [16, 143, 176]}, {"55060875": [20, 39, 189]}, {"55060879": [32, 3, 224]}, {"55060883": [8]}, {"55060888": [143, 166]}, {"55060891": [48, 132, 197]}, {"55060895": [4, 8, 16, 10, 110]}, {"55060904": [143, 185]}, {"55060907": [44, 135, 37]}, {"55060911": [4, 8, 16, 10, 110]}, {"55060920": [60, 10, 128, 64, 37, 74, 32, 4, 141, 75]}, {"55060931": [12, 17, 96]}, {"55060935": [2]}, {"55060940": [149, 69]}, {"55060943": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060956": [60, 9, 128, 64, 37, 41, 32, 20, 129, 42]}, {"55060967": [3, 5, 64]}, {"55060971": [2, 1, 42, 72, 32, 161, 32]}, {"55060980": [3, 224]}, {"55060983": [8]}, {"55060988": [60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55060999": [12, 17, 32]}, {"55061003": [2]}, {"55061008": [129, 3]}, {"55061011": [2]}, {"55061013": [3, 15, 195]}, {"55061017": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061031": [8]}, {"55061036": [144, 69]}, {"55061039": [3, 60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55061051": [12, 17, 32]}, {"55061055": [2]}, {"55061060": [145, 5]}, {"55061063": [3, 3, 224]}, {"55061067": [8]}, {"55061072": [143, 162]}, {"55061075": [36, 144, 69]}, {"55061080": [60, 8, 128, 64, 37, 8, 32]}, {"55061088": [133, 9]}, {"55061091": [2, 17, 32]}, {"55061095": [4, 52, 10]}, {"55061099": [1, 165, 10]}, {"55061104": [16]}, {"55061107": [24, 52, 5]}, {"55061111": [65, 60, 8, 128, 64, 37, 8, 32, 4, 141, 9]}, {"55061123": [12, 17, 32]}, {"55061127": [19]}, {"55061132": [145, 5]}, {"55061135": [1, 175, 164]}, {"55061140": [175, 165]}, {"55061143": [4, 175, 166]}, {"55061147": [8, 39, 189, 255, 232, 175, 191]}, {"55061155": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061167": [6, 145, 6]}, {"55061171": [7, 141, 9]}, {"55061175": [8, 1, 32, 248, 9]}, {"55061184": [143, 191]}, {"55061187": [16, 39, 189]}, {"55061191": [24, 143, 164]}, {"55061196": [143, 165]}, {"55061199": [4, 143, 166]}, {"55061203": [8, 3, 224]}, {"55061207": [8]}, {"55061212": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061223": [16, 175, 163]}, {"55061227": [20, 175, 191]}, {"55061231": [24, 12, 16, 10, 196]}, {"55061240": [143, 162]}, {"55061243": [16, 143, 163]}, {"55061247": [20, 143, 191]}, {"55061251": [24, 39, 189]}, {"55061255": [32, 3, 224]}, {"55061259": [8]}, {"55061264": [39, 189, 255, 232, 175, 191]}, {"55061271": [16, 60, 8, 128, 64, 37, 8, 32, 4, 173]}, {"55061284": [173]}, {"55061287": [4, 173]}, {"55061291": [8, 173]}, {"55061295": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061311": [42]}, {"55061317": [9, 15, 195, 1, 33, 32, 38]}, {"55061325": [129, 32, 35, 141, 5, 4, 40, 12, 16, 10, 254]}, {"55061340": [4, 64]}, {"55061343": [34]}, {"55061348": [52, 68]}, {"55061352": [12, 16, 11, 100]}, {"55061360": [16, 96]}, {"55061363": [12]}, {"55061368": [60, 8, 128, 64, 37, 8, 32, 4, 140, 105]}, {"55061380": [173, 9]}, {"55061384": [140, 105]}, {"55061387": [4, 173, 9]}, {"55061391": [4, 140, 105]}, {"55061395": [8, 173, 9]}, {"55061399": [8, 52, 9]}, {"55061403": [1, 173, 9]}, {"55061407": [12, 144, 98]}, {"55061412": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061428": [52, 1]}, {"55061431": [10, 21, 65]}, {"55061435": [6]}, {"55061440": [149, 42]}, {"55061443": [28, 49, 74, 240, 31]}, {"55061449": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061459": [28, 129, 9, 4, 36, 5, 33]}, {"55061467": [2]}, {"55061473": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061483": [16, 39, 189]}, {"55061487": [24, 3, 224]}, {"55061491": [8]}, {"55061496": [39, 189, 255, 232, 175, 191]}, {"55061503": [16, 12, 16, 11, 12]}, {"55061512": [36, 1, 255, 255, 16, 65]}, {"55061519": [4]}, {"55061524": [52, 68]}, {"55061528": [12, 16, 11, 64]}, {"55061536": [143, 191]}, {"55061539": [16, 39, 189]}, {"55061543": [24, 3, 224]}, {"55061547": [8]}, {"55061552": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061563": [164, 52, 8]}, {"55061568": [52, 137]}, {"55061572": [148, 170]}, {"55061576": [52, 1, 1, 156, 21, 65]}, {"55061583": [8]}, {"55061588": [52, 8]}, {"55061591": [3, 148, 171]}, {"55061595": [28, 49, 105]}, {"55061599": [255, 49, 98, 31]}, {"55061605": [2, 18, 2, 16]}, {"55061611": [31]}, {"55061616": [52, 1]}, {"55061619": [10, 21, 65]}, {"55061623": [14]}, {"55061628": [148, 171]}, {"55061631": [28, 52, 1]}, {"55061635": [16, 20, 65]}, {"55061639": [8]}, {"55061644": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061655": [4]}, {"55061660": [36, 2, 255, 255, 16]}, {"55061667": [21]}, {"55061672": [52, 8]}, {"55061675": [1, 49, 105]}, {"55061679": [31, 52, 1]}, {"55061683": [21, 21, 65]}, {"55061687": [12]}, {"55061692": [52, 1]}, {"55061695": [62, 16, 129]}, {"55061699": [7]}, {"55061704": [52, 1]}, {"55061707": [66, 16, 129]}, {"55061711": [4]}, {"55061716": [36, 2, 255, 255, 16]}, {"55061723": [7]}, {"55061728": [52, 8]}, {"55061731": [2, 144, 169, 1, 65]}, {"55061737": [2, 18]}, {"55061741": [72, 16, 37]}, {"55061745": [2, 18]}, {"55061749": [73, 16, 37, 3, 224]}, {"55061755": [8]}, {"55061760": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061772": [129, 9]}, {"55061776": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061799": [4, 141, 9]}, {"55061804": [17, 32]}, {"55061807": [22]}, {"55061813": [9, 82, 2, 49, 75, 248]}, {"55061821": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061844": [49, 34]}, {"55061847": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061868": [60, 12, 128, 64, 37, 140, 28]}, {"55061876": [129, 140]}, {"55061880": [17, 108]}, {"55061883": [3, 165, 32]}, {"55061887": [2, 161, 43]}, {"55061891": [2, 161, 34]}, {"55061895": [3, 3, 224]}, {"55061899": [8]}, {"55061904": [39, 189, 255, 224, 175, 176]}, {"55061911": [16, 175, 177]}, {"55061915": [20, 175, 191]}, {"55061919": [24, 52, 130]}, {"55061924": [52, 80]}, {"55061928": [38, 8, 255, 128, 5]}, {"55061935": [18]}, {"55061940": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55061951": [16, 1, 9]}, {"55061955": [24]}, {"55061958": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55061976": [142, 40]}, {"55061979": [12, 1]}, {"55061982": [248, 9]}, {"55061988": [20, 80, 255, 239]}, {"55061996": [54, 35]}, {"55062000": [16]}, {"55062003": [2]}, {"55062008": [52, 3]}, {"55062012": [143, 176]}, {"55062015": [16, 143, 177]}, {"55062019": [20, 143, 191]}, {"55062023": [24, 39, 189]}, {"55062027": [32, 3, 224]}, {"55062031": [8]}, {"55062036": [140, 136, 29, 44, 52, 9]}, {"55062043": [1]}, {"55062045": [9, 78]}, {"55062048": [1, 9, 16, 36, 16, 64]}, {"55062055": [36]}, {"55062060": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062075": [164, 52, 1]}, {"55062079": [61, 17, 129]}, {"55062083": [10]}, {"55062089": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062099": [25]}, {"55062104": [52, 13]}, {"55062107": [1, 161, 141, 29, 40, 37, 74]}, {"55062115": [3, 16]}, {"55062119": [9]}, {"55062124": [52, 12]}, {"55062127": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062143": [14]}, {"55062148": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062184": [60, 9, 128, 64, 37, 41, 32, 20, 161, 40]}, {"55062196": [52, 2]}, {"55062200": [3, 224]}, {"55062203": [8]}, {"55062208": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062220": [16]}, {"55062223": [33]}, {"55062228": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062240": [16]}, {"55062243": [28]}, {"55062248": [32, 232, 255, 166, 33, 8]}, {"55062255": [97, 16]}, {"55062259": [24]}, {"55062264": [52, 8]}, {"55062267": [100, 16]}, {"55062271": [21]}, {"55062276": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062291": [1, 160, 40, 14, 222, 52, 8]}, {"55062299": [104, 16]}, {"55062303": [13]}, {"55062308": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062323": [4, 160, 40, 14, 222, 52, 8]}, {"55062331": [106, 16]}, {"55062335": [5]}, {"55062340": [52, 5]}, {"55062343": [3, 52, 8]}, {"55062347": [107, 16]}, {"55062351": [1]}, {"55062356": [60, 9, 128, 64, 37, 41, 32, 20, 60, 10, 128, 64, 37, 74, 32, 23, 129, 44]}, {"55062376": [17, 136]}, {"55062379": [11, 33, 41]}, {"55062383": [1, 21, 42, 255, 252]}, {"55062392": [60, 9, 128, 64, 37, 41, 32, 19, 33, 41]}, {"55062403": [1, 17, 42]}, {"55062407": [4, 129, 44]}, {"55062412": [21, 128, 255, 252]}, {"55062420": [161, 40]}, {"55062424": [3, 224]}, {"55062427": [8]}, {"55062433": [96, 120, 33, 129, 236, 14, 223, 53, 152]}, {"55062443": [128, 49, 142]}, {"55062447": [128, 52, 3]}, {"55062451": [5, 3, 224]}, {"55062455": [8]}, {"55062460": [175, 164]}, {"55062463": [104, 175, 165]}, {"55062467": [108, 175, 166]}, {"55062471": [112, 175, 167]}, {"55062475": [116, 39, 189, 255, 232, 175, 163]}, {"55062483": [16, 175, 191]}, {"55062487": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062503": [32, 21]}, {"55062507": [31]}, {"55062512": [60, 9, 128, 64, 37, 41, 32, 23, 52, 10]}, {"55062523": [255, 161, 42]}, {"55062528": [60, 9, 128, 64, 37, 41, 32, 20, 36, 10, 255, 255, 52, 12]}, {"55062543": [3, 33, 74]}, {"55062547": [1, 17, 76]}, {"55062551": [20, 1, 42, 88, 32, 129, 104]}, {"55062560": [17]}, {"55062562": [255, 251]}, {"55062568": [60, 9, 128, 64, 37, 41, 32, 23, 161, 42]}, {"55062580": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062591": [1, 165, 42]}, {"55062596": [60, 9, 128, 65, 52, 10]}, {"55062603": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 196]}, {"55062632": [143, 163]}, {"55062635": [16, 143, 191]}, {"55062639": [20, 39, 189]}, {"55062643": [24, 143, 164]}, {"55062647": [104, 143, 165]}, {"55062651": [108, 143, 166]}, {"55062655": [112, 143, 167]}, {"55062659": [116, 132, 110, 19, 196, 3, 224]}, {"55062667": [8]}, {"55062672": [147, 25]}, {"55062675": [116, 52, 1]}, {"55062679": [255, 23, 33]}, {"55062683": [2]}, {"55062688": [52, 25]}, {"55062691": [44, 3, 224]}, {"55062695": [8, 167, 185]}, {"55062699": [154, 147, 44]}, {"55062703": [116, 52, 1]}, {"55062707": [255, 21, 129]}, {"55062711": [2]}, {"55062716": [52, 12]}, {"55062719": [44, 3, 224]}, {"55062723": [8]}, {"55062728": [145, 174]}, {"55062731": [116, 52, 1]}, {"55062735": [255, 21, 193]}, {"55062739": [2]}, {"55062744": [52, 14]}, {"55062747": [44, 3, 224]}, {"55062751": [8, 167, 174]}, {"55062755": [154, 145, 207]}, {"55062759": [116, 52, 1]}, {"55062763": [255, 21, 225]}, {"55062767": [2]}, {"55062772": [52, 15]}, {"55062775": [44, 3, 224]}, {"55062779": [8, 167, 175]}, {"55062783": [154, 60, 8, 128, 64, 37, 8, 32, 24, 142, 9]}, {"55062795": [104, 173, 9]}, {"55062800": [142, 9]}, {"55062803": [108, 173, 9]}, {"55062807": [4, 150, 9]}, {"55062811": [112, 165, 9]}, {"55062815": [8, 150, 9]}, {"55062819": [156, 165, 9]}, {"55062823": [10, 3, 224]}, {"55062827": [8, 142, 14]}, {"55062831": [4, 39, 189, 255, 224, 175, 176]}, {"55062839": [16, 175, 177]}, {"55062843": [20, 175, 191]}, {"55062847": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 24, 142, 8]}, {"55062867": [4, 17]}, {"55062871": [5]}, {"55062876": [12, 16, 12, 118]}, {"55062884": [16]}, {"55062887": [3]}, {"55062892": [12, 16, 12, 137]}, {"55062900": [12, 16, 12, 105, 52, 4]}, {"55062908": [12, 16, 12, 105, 52, 4]}, {"55062915": [1, 12, 16, 12, 105, 52, 4]}, {"55062923": [2, 143, 176]}, {"55062927": [16, 143, 177]}, {"55062931": [20, 143, 191]}, {"55062935": [24, 39, 189]}, {"55062939": [32, 3, 224]}, {"55062943": [8]}, {"55062948": [2, 4, 64, 33, 145, 9]}, {"55062955": [108, 52, 1]}, {"55062959": [255, 17, 33]}, {"55062963": [7]}, {"55062968": [2, 9, 72, 33, 145, 41]}, {"55062975": [116, 52, 1]}, {"55062979": [44, 17, 33]}, {"55062983": [2]}, {"55062988": [161, 9]}, {"55062991": [105, 3, 224]}, {"55062995": [8]}, {"55063000": [39, 189, 255, 232, 175, 191]}, {"55063007": [16, 142, 40]}, {"55063012": [174, 8]}, {"55063015": [64, 142, 40]}, {"55063019": [4, 174, 8]}, {"55063023": [68, 150, 40]}, {"55063027": [8, 166, 8]}, {"55063031": [72, 162]}, {"55063034": [15, 51, 146, 8]}, {"55063039": [74, 52, 1]}, {"55063043": [255, 21, 1]}, {"55063047": [3]}, {"55063052": [12, 16, 12, 151]}, {"55063060": [143, 191]}, {"55063063": [16, 39, 189]}, {"55063067": [24, 3, 224]}, {"55063071": [8]}, {"55063076": [142, 8]}, {"55063079": [64, 174, 8]}, {"55063083": [104, 142, 8]}, {"55063087": [68, 174, 8]}, {"55063091": [108, 150, 8]}, {"55063095": [72, 166, 8]}, {"55063099": [112, 146, 8]}, {"55063103": [104, 52, 1]}, {"55063107": [255, 21, 1]}, {"55063111": [3]}, {"55063116": [52, 8]}, {"55063119": [1, 162, 8, 15, 51, 3, 224]}, {"55063127": [8]}, {"55063132": [39, 189, 255, 232, 175, 191]}, {"55063139": [16, 150, 8]}, {"55063143": [156, 49, 8]}, {"55063147": [64, 17]}, {"55063151": [5]}, {"55063156": [150, 8]}, {"55063159": [112, 49, 8, 255, 15, 53, 8]}, {"55063167": [48, 166, 8]}, {"55063171": [112, 146, 40]}, {"55063175": [1, 162, 8]}, {"55063179": [105, 150, 40]}, {"55063183": [2, 166, 8]}, {"55063187": [106, 142, 40]}, {"55063191": [4, 174, 8]}, {"55063195": [108, 12, 16, 12, 177, 52, 4]}, {"55063204": [12, 16, 12, 177, 52, 4]}, {"55063211": [1, 12, 16, 12, 177, 52, 4]}, {"55063219": [2, 143, 191]}, {"55063223": [16, 39, 189]}, {"55063227": [24, 3, 224]}, {"55063231": [8]}, {"55063236": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 51, 112, 145, 10]}, {"55063251": [108, 52, 1]}, {"55063255": [255, 17, 65]}, {"55063259": [5]}, {"55063264": [1, 42, 72, 33, 145, 41]}, {"55063272": [21, 32]}, {"55063275": [28]}, {"55063280": [60, 9, 128, 64, 37, 41, 51, 99, 37, 41]}, {"55063291": [1, 145, 42]}, {"55063296": [17, 64]}, {"55063299": [19]}, {"55063304": [2, 10, 88, 33, 145, 107]}, {"55063311": [116, 52, 1]}, {"55063315": [255, 17, 97, 255, 248]}, {"55063324": [146, 12]}, {"55063327": [108, 17, 138, 255, 245]}, {"55063336": [146, 12]}, {"55063339": [109, 17, 138, 255, 242]}, {"55063348": [146, 12]}, {"55063351": [110, 17, 138, 255, 239]}, {"55063360": [161, 11]}, {"55063363": [105, 161, 10]}, {"55063367": [108, 16]}, {"55063371": [4]}, {"55063376": [52, 9]}, {"55063379": [255, 161, 9]}, {"55063383": [105, 161, 9]}, {"55063387": [108, 3, 224]}, {"55063391": [8]}, {"55063396": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063409": [1, 1, 1, 1, 1]}, {"55063415": [1, 1, 1, 1, 1]}, {"55063421": [1]}, {"55063423": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063433": [51, 8, 33, 32, 15]}, {"55063439": [71, 21, 234]}, {"55063443": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063455": [164]}, {"55063457": [15, 122, 3, 20, 64]}, {"55063463": [5, 52, 2, 72, 48, 21, 226]}, {"55063471": [7]}, {"55063476": [36, 25]}, {"55063479": [3, 16]}, {"55063483": [4, 52, 2, 99, 17, 21, 226]}, {"55063491": [2]}, {"55063496": [36, 25]}, {"55063499": [3, 3, 224]}, {"55063503": [8]}, {"55063508": [141, 173, 138, 160, 52, 2, 128]}, {"55063516": [16, 77]}, {"55063519": [2]}, {"55063524": [16]}, {"55063527": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063543": [1, 16, 64]}, {"55063547": [2]}, {"55063552": [16]}, {"55063555": [2, 52, 2]}, {"55063559": [1, 161, 226, 28, 191, 3, 224]}, {"55063567": [8]}, {"55063573": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063587": [164]}, {"55063589": [15, 122, 3, 20, 64]}, {"55063595": [5, 52, 2, 72, 48, 21, 226]}, {"55063603": [7]}, {"55063608": [36, 25]}, {"55063611": [3, 16]}, {"55063615": [4, 52, 2, 99, 17, 21, 226]}, {"55063623": [2]}, {"55063628": [36, 25]}, {"55063631": [3, 3, 224]}, {"55063635": [8]}, {"55063640": [162, 37]}, {"55063643": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063655": [4, 142, 10]}, {"55063660": [17, 64]}, {"55063663": [11]}, {"55063669": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063681": [24, 194, 2, 23]}, {"55063687": [3, 49, 89]}, {"55063691": [255, 129, 234]}, {"55063696": [3, 42, 200, 37, 8, 16, 13, 25, 161, 249]}, {"55063708": [3, 224]}, {"55063711": [8]}] \ No newline at end of file +[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 192]}, {"11311804": [12, 16, 11, 200]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 186, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 86]}, {"11427296": [12, 16, 11, 196, 52, 2, 0, 255, 16, 0, 5, 97]}, {"11427312": [12, 16, 12, 255]}, {"11431496": [12, 16, 11, 191, 1, 15, 192, 33]}, {"11559932": [52, 14, 0, 2, 130]}, {"11559938": [14, 222]}, {"11562028": [12, 16, 13]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 15]}, {"11882076": [12, 16, 12, 236]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 53, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 60, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 67, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 46, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 136]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 18]}, {"12427480": [12, 16, 10, 102]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 106]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 11, 249, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 148]}, {"12491480": [12, 16, 10, 157]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 143]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 74]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 140, 73]}, {"14149503": [164]}, {"14149512": [2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 203]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 219]}, {"14624335": [118]}, {"14720868": [52, 14, 0, 4, 128]}, {"14720874": [14, 222]}, {"14720944": [12, 16, 11, 211]}, {"14848896": [3, 224, 104, 33, 12, 16, 11, 242, 52, 2]}, {"14848909": [160, 248, 33]}, {"14848932": [161, 248, 14, 223]}, {"14872723": [52]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 236, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 48, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 76, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 104, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 220, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 108, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 140, 128, 64, 38, 132, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 172, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 39, 212, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 28, 128, 64, 40]}, {"55059600": [83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 3, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 44, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [2, 52, 2]}, {"55060003": [69, 52, 2]}, {"55060007": [70, 3, 224]}, {"55060011": [8]}, {"55060016": [144, 136]}, {"55060019": [162, 49, 8]}, {"55060023": [6, 17]}, {"55060027": [2, 52, 2]}, {"55060031": [55, 52, 2]}, {"55060035": [56, 3, 224]}, {"55060039": [8]}, {"55060044": [144, 136]}, {"55060047": [161, 49, 8]}, {"55060051": [32, 17]}, {"55060055": [2, 52, 2]}, {"55060059": [121, 52, 2]}, {"55060063": [122, 3, 224]}, {"55060067": [8]}, {"55060072": [144, 136]}, {"55060075": [161, 49, 8]}, {"55060079": [4, 17]}, {"55060083": [2, 52, 2]}, {"55060087": [119, 52, 2]}, {"55060091": [120, 3, 224]}, {"55060095": [8]}, {"55060100": [144, 136]}, {"55060103": [50, 17]}, {"55060107": [2, 52, 2]}, {"55060111": [192, 52, 2]}, {"55060115": [193, 3, 224]}, {"55060119": [8]}, {"55060124": [144, 136]}, {"55060127": [163, 49, 8]}, {"55060131": [3, 17]}, {"55060135": [2, 52, 2]}, {"55060139": [77, 52, 162]}, {"55060144": [3, 224]}, {"55060147": [8]}, {"55060152": [144, 136]}, {"55060155": [163, 49, 8]}, {"55060159": [24, 17]}, {"55060163": [2, 52, 2]}, {"55060167": [77, 52, 162]}, {"55060172": [3, 224]}, {"55060175": [8]}, {"55060180": [3, 224]}, {"55060183": [8]}, {"55060188": [52, 8]}, {"55060191": [1, 160, 136]}, {"55060195": [62, 3, 224]}, {"55060199": [8]}, {"55060204": [36, 136]}, {"55060207": [134, 36, 9, 255, 255, 37, 41]}, {"55060215": [1, 52, 1]}, {"55060219": [3]}, {"55060221": [41, 8, 42, 20, 32]}, {"55060227": [7]}, {"55060232": [1, 9, 80, 33, 145, 75]}, {"55060240": [52, 1]}, {"55060243": [255, 21, 97, 255, 247]}, {"55060252": [161, 69]}, {"55060256": [3, 224]}, {"55060259": [8]}, {"55060264": [36, 136]}, {"55060267": [168, 1, 6, 64, 33, 145, 9]}, {"55060276": [1, 37, 72, 37, 161, 9]}, {"55060284": [3, 224]}, {"55060287": [8]}, {"55060292": [36, 136]}, {"55060295": [188, 1, 5, 64, 33, 129, 9]}, {"55060304": [5, 33]}, {"55060307": [2]}, {"55060312": [52, 9]}, {"55060316": [37, 41]}, {"55060319": [1, 161, 9]}, {"55060324": [3, 224]}, {"55060327": [8]}, {"55060332": [52, 8]}, {"55060335": [1, 160, 136]}, {"55060339": [61, 52, 8]}, {"55060343": [20, 160, 136]}, {"55060347": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [50, 160, 136]}, {"55060375": [58, 52, 8]}, {"55060379": [48, 164, 136, 19, 244, 160, 136]}, {"55060387": [51, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [2, 160, 136]}, {"55060403": [50, 52, 8]}, {"55060407": [1, 160, 136]}, {"55060411": [58, 160, 136]}, {"55060415": [60, 52, 8]}, {"55060419": [96, 164, 136, 19, 244, 160, 136]}, {"55060427": [51, 3, 224]}, {"55060431": [8]}, {"55060436": [144, 136]}, {"55060439": [124, 52, 1]}, {"55060443": [255, 17, 1]}, {"55060447": [6, 52, 2]}, {"55060451": [107, 144, 136]}, {"55060455": [148, 45, 8]}, {"55060459": [6, 17]}, {"55060463": [2, 52, 2]}, {"55060467": [106, 52, 2]}, {"55060471": [3, 3, 224]}, {"55060475": [8]}, {"55060480": [144, 136]}, {"55060483": [123, 52, 1]}, {"55060487": [255, 17, 1]}, {"55060491": [2, 52, 162]}, {"55060496": [52, 2]}, {"55060499": [12, 3, 224]}, {"55060503": [8]}, {"55060508": [52, 8]}, {"55060511": [7, 160, 136]}, {"55060515": [123, 3, 224]}, {"55060519": [8]}, {"55060524": [52, 8]}, {"55060527": [1]}, {"55060529": [168, 64, 4, 140, 137]}, {"55060535": [164, 1, 40, 72, 37, 172, 137]}, {"55060543": [164, 3, 224]}, {"55060547": [8]}, {"55060552": [48, 132]}, {"55060555": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060567": [140, 16, 129]}, {"55060571": [22, 145, 2]}, {"55060575": [117, 52, 1]}, {"55060579": [141, 16, 129]}, {"55060583": [19, 145, 2]}, {"55060587": [117, 16, 128]}, {"55060591": [17, 145, 2]}, {"55060595": [116, 52, 1]}, {"55060599": [138, 16, 129]}, {"55060603": [14, 145, 2]}, {"55060607": [116, 52, 1]}, {"55060611": [139, 16, 129]}, {"55060615": [11, 145, 2]}, {"55060619": [116, 52, 1]}, {"55060623": [88, 16, 129]}, {"55060627": [8, 52, 2]}, {"55060632": [52, 1]}, {"55060635": [120, 16, 129]}, {"55060639": [5, 52, 2]}, {"55060644": [52, 1]}, {"55060647": [121, 16, 129]}, {"55060651": [2, 52, 2]}, {"55060656": [52, 2]}, {"55060659": [255, 3, 224]}, {"55060663": [8]}, {"55060668": [39, 189, 255, 224, 175, 191]}, {"55060675": [16, 175, 176]}, {"55060679": [20, 12, 16, 11, 7]}, {"55060688": [4, 65]}, {"55060691": [2]}, {"55060696": [52, 2]}, {"55060699": [91]}, {"55060701": [64, 32, 33, 12, 16, 11, 110]}, {"55060712": [16, 96]}, {"55060715": [18, 175, 163]}, {"55060719": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060728": [133, 9]}, {"55060731": [2, 17, 32]}, {"55060735": [3, 52, 10]}, {"55060739": [1, 16]}, {"55060743": [8, 165, 10]}, {"55060748": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060759": [6, 144, 102]}, {"55060763": [7, 140, 105]}, {"55060767": [8, 1, 32, 248, 9]}, {"55060776": [143, 163]}, {"55060779": [28, 144, 101]}, {"55060783": [3, 16]}, {"55060787": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060799": [6]}, {"55060801": [74]}, {"55060803": [24]}, {"55060806": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060816": [60, 8, 128, 64, 37, 8, 32]}, {"55060824": [133, 9]}, {"55060827": [2, 17, 32]}, {"55060831": [3, 52, 10]}, {"55060835": [1, 165, 10]}, {"55060840": [52, 5]}, {"55060843": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060855": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060866": [48, 33, 143, 191]}, {"55060871": [16, 143, 176]}, {"55060875": [20, 39, 189]}, {"55060879": [32, 3, 224]}, {"55060883": [8]}, {"55060888": [143, 166]}, {"55060891": [48, 132, 197]}, {"55060895": [4, 8, 16, 10, 110]}, {"55060904": [143, 185]}, {"55060907": [44, 135, 37]}, {"55060911": [4, 8, 16, 10, 110]}, {"55060920": [60, 10, 128, 64, 37, 74, 32, 8, 141, 75]}, {"55060931": [12, 17, 96]}, {"55060935": [2]}, {"55060940": [149, 69]}, {"55060943": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060956": [60, 9, 128, 64, 37, 41, 32, 24, 129, 42]}, {"55060967": [3, 5, 64]}, {"55060971": [11, 1, 42, 72, 32, 129, 40]}, {"55060980": [52, 10]}, {"55060983": [127, 21, 10]}, {"55060987": [6]}, {"55060992": [60, 10, 128, 18, 37, 74, 165, 208, 133, 72]}, {"55061003": [144, 33, 8]}, {"55061007": [1, 165, 72]}, {"55061011": [144, 161, 32]}, {"55061016": [3, 224]}, {"55061019": [8]}, {"55061024": [60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061035": [12, 17, 32]}, {"55061039": [2]}, {"55061044": [129, 3]}, {"55061047": [2]}, {"55061049": [3, 15, 195]}, {"55061053": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061067": [8]}, {"55061072": [144, 69]}, {"55061075": [3, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061087": [12, 17, 32]}, {"55061091": [2]}, {"55061096": [145, 5]}, {"55061099": [3, 3, 224]}, {"55061103": [8]}, {"55061108": [143, 162]}, {"55061111": [36, 144, 69]}, {"55061116": [60, 8, 128, 64, 37, 8, 32]}, {"55061124": [133, 9]}, {"55061127": [2, 17, 32]}, {"55061131": [4, 52, 10]}, {"55061135": [1, 165, 10]}, {"55061140": [16]}, {"55061143": [24, 52, 5]}, {"55061147": [65, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061159": [12, 17, 32]}, {"55061163": [19]}, {"55061168": [145, 5]}, {"55061171": [1, 175, 164]}, {"55061176": [175, 165]}, {"55061179": [4, 175, 166]}, {"55061183": [8, 39, 189, 255, 232, 175, 191]}, {"55061191": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061203": [6, 145, 6]}, {"55061207": [7, 141, 9]}, {"55061211": [8, 1, 32, 248, 9]}, {"55061220": [143, 191]}, {"55061223": [16, 39, 189]}, {"55061227": [24, 143, 164]}, {"55061232": [143, 165]}, {"55061235": [4, 143, 166]}, {"55061239": [8, 3, 224]}, {"55061243": [8]}, {"55061248": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061259": [16, 175, 163]}, {"55061263": [20, 175, 191]}, {"55061267": [24, 12, 16, 10, 205]}, {"55061276": [143, 162]}, {"55061279": [16, 143, 163]}, {"55061283": [20, 143, 191]}, {"55061287": [24, 39, 189]}, {"55061291": [32, 3, 224]}, {"55061295": [8]}, {"55061300": [39, 189, 255, 232, 175, 191]}, {"55061307": [16, 60, 8, 128, 64, 37, 8, 32, 8, 173]}, {"55061320": [173]}, {"55061323": [4, 173]}, {"55061327": [8, 173]}, {"55061331": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061347": [42]}, {"55061353": [9, 15, 195, 1, 33, 32, 38]}, {"55061361": [129, 32, 35, 141, 5, 4, 40, 12, 16, 11, 7]}, {"55061376": [4, 64]}, {"55061379": [34]}, {"55061384": [52, 68]}, {"55061388": [12, 16, 11, 110]}, {"55061396": [16, 96]}, {"55061399": [12]}, {"55061404": [60, 8, 128, 64, 37, 8, 32, 8, 140, 105]}, {"55061416": [173, 9]}, {"55061420": [140, 105]}, {"55061423": [4, 173, 9]}, {"55061427": [4, 140, 105]}, {"55061431": [8, 173, 9]}, {"55061435": [8, 52, 9]}, {"55061439": [1, 173, 9]}, {"55061443": [12, 144, 98]}, {"55061448": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061464": [52, 1]}, {"55061467": [10, 21, 65]}, {"55061471": [6]}, {"55061476": [149, 42]}, {"55061479": [28, 49, 74, 240, 31]}, {"55061485": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061495": [28, 129, 9, 4, 36, 5, 33]}, {"55061503": [2]}, {"55061509": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061519": [16, 39, 189]}, {"55061523": [24, 3, 224]}, {"55061527": [8]}, {"55061532": [39, 189, 255, 232, 175, 191]}, {"55061539": [16, 12, 16, 11, 21]}, {"55061548": [36, 1, 255, 255, 16, 65]}, {"55061555": [4]}, {"55061560": [52, 68]}, {"55061564": [12, 16, 11, 73]}, {"55061572": [143, 191]}, {"55061575": [16, 39, 189]}, {"55061579": [24, 3, 224]}, {"55061583": [8]}, {"55061588": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061599": [164, 52, 8]}, {"55061604": [52, 137]}, {"55061608": [148, 170]}, {"55061612": [52, 1, 1, 156, 21, 65]}, {"55061619": [8]}, {"55061624": [52, 8]}, {"55061627": [3, 148, 171]}, {"55061631": [28, 49, 105]}, {"55061635": [255, 49, 98, 31]}, {"55061641": [2, 18, 2, 16]}, {"55061647": [31]}, {"55061652": [52, 1]}, {"55061655": [10, 21, 65]}, {"55061659": [14]}, {"55061664": [148, 171]}, {"55061667": [28, 52, 1]}, {"55061671": [16, 20, 65]}, {"55061675": [8]}, {"55061680": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061691": [4]}, {"55061696": [36, 2, 255, 255, 16]}, {"55061703": [21]}, {"55061708": [52, 8]}, {"55061711": [1, 49, 105]}, {"55061715": [31, 52, 1]}, {"55061719": [21, 21, 65]}, {"55061723": [12]}, {"55061728": [52, 1]}, {"55061731": [62, 16, 129]}, {"55061735": [7]}, {"55061740": [52, 1]}, {"55061743": [66, 16, 129]}, {"55061747": [4]}, {"55061752": [36, 2, 255, 255, 16]}, {"55061759": [7]}, {"55061764": [52, 8]}, {"55061767": [2, 144, 169, 1, 65]}, {"55061773": [2, 18]}, {"55061777": [72, 16, 37]}, {"55061781": [2, 18]}, {"55061785": [73, 16, 37, 3, 224]}, {"55061791": [8]}, {"55061796": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061808": [129, 9]}, {"55061812": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061835": [4, 141, 9]}, {"55061840": [17, 32]}, {"55061843": [23]}, {"55061849": [9, 82, 2, 49, 75, 248]}, {"55061857": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061880": [49, 34]}, {"55061883": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061904": [60, 12, 128, 64, 37, 140, 28]}, {"55061912": [129, 140]}, {"55061916": [17, 108]}, {"55061919": [4, 165, 32]}, {"55061923": [2, 161, 43]}, {"55061927": [2, 161, 34]}, {"55061931": [3, 173, 36]}, {"55061935": [4, 3, 224]}, {"55061939": [8]}, {"55061944": [39, 189, 255, 224, 175, 176]}, {"55061951": [16, 175, 177]}, {"55061955": [20, 175, 191]}, {"55061959": [24, 52, 130]}, {"55061964": [52, 80]}, {"55061968": [38, 8, 255, 128, 5]}, {"55061975": [18]}, {"55061980": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55061991": [16, 1, 9]}, {"55061995": [24]}, {"55061998": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55062016": [142, 40]}, {"55062019": [12, 1]}, {"55062022": [248, 9]}, {"55062028": [20, 80, 255, 239]}, {"55062036": [54, 35]}, {"55062040": [16]}, {"55062043": [2]}, {"55062048": [52, 3]}, {"55062052": [143, 176]}, {"55062055": [16, 143, 177]}, {"55062059": [20, 143, 191]}, {"55062063": [24, 39, 189]}, {"55062067": [32, 3, 224]}, {"55062071": [8]}, {"55062076": [140, 136, 29, 44, 52, 9]}, {"55062083": [1]}, {"55062085": [9, 78]}, {"55062088": [1, 9, 16, 36, 16, 64]}, {"55062095": [36]}, {"55062100": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062115": [164, 52, 1]}, {"55062119": [61, 17, 129]}, {"55062123": [10]}, {"55062129": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062139": [25]}, {"55062144": [52, 13]}, {"55062147": [1, 161, 141, 29, 40, 37, 74]}, {"55062155": [3, 16]}, {"55062159": [9]}, {"55062164": [52, 12]}, {"55062167": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062183": [14]}, {"55062188": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062224": [60, 9, 128, 64, 37, 41, 32, 24, 161, 40]}, {"55062236": [52, 2]}, {"55062240": [3, 224]}, {"55062243": [8]}, {"55062248": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062260": [16]}, {"55062263": [33]}, {"55062268": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062280": [16]}, {"55062283": [28]}, {"55062288": [32, 232, 255, 166, 33, 8]}, {"55062295": [97, 16]}, {"55062299": [24]}, {"55062304": [52, 8]}, {"55062307": [100, 16]}, {"55062311": [21]}, {"55062316": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062331": [1, 160, 40, 14, 222, 52, 8]}, {"55062339": [104, 16]}, {"55062343": [13]}, {"55062348": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062363": [4, 160, 40, 14, 222, 52, 8]}, {"55062371": [106, 16]}, {"55062375": [5]}, {"55062380": [52, 5]}, {"55062383": [3, 52, 8]}, {"55062387": [107, 16]}, {"55062391": [1]}, {"55062396": [60, 9, 128, 64, 37, 41, 32, 24, 60, 10, 128, 64, 37, 74, 32, 27, 129, 44]}, {"55062416": [17, 136]}, {"55062419": [11, 33, 41]}, {"55062423": [1, 21, 42, 255, 252]}, {"55062432": [60, 9, 128, 64, 37, 41, 32, 23, 33, 41]}, {"55062443": [1, 17, 42]}, {"55062447": [4, 129, 44]}, {"55062452": [21, 128, 255, 252]}, {"55062460": [161, 40]}, {"55062464": [3, 224]}, {"55062467": [8]}, {"55062473": [96, 120, 33, 129, 236, 14, 223, 53, 152]}, {"55062483": [128, 49, 142]}, {"55062487": [128, 52, 3]}, {"55062491": [5, 3, 224]}, {"55062495": [8]}, {"55062500": [175, 164]}, {"55062503": [104, 175, 165]}, {"55062507": [108, 175, 166]}, {"55062511": [112, 175, 167]}, {"55062515": [116, 39, 189, 255, 232, 175, 163]}, {"55062523": [16, 175, 191]}, {"55062527": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062543": [32, 21]}, {"55062547": [31]}, {"55062552": [60, 9, 128, 64, 37, 41, 32, 27, 52, 10]}, {"55062563": [255, 161, 42]}, {"55062568": [60, 9, 128, 64, 37, 41, 32, 24, 36, 10, 255, 255, 52, 12]}, {"55062583": [3, 33, 74]}, {"55062587": [1, 17, 76]}, {"55062591": [20, 1, 42, 88, 32, 129, 104]}, {"55062600": [17]}, {"55062602": [255, 251]}, {"55062608": [60, 9, 128, 64, 37, 41, 32, 27, 161, 42]}, {"55062620": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062631": [1, 165, 42]}, {"55062636": [60, 9, 128, 65, 52, 10]}, {"55062643": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 205]}, {"55062672": [143, 163]}, {"55062675": [16, 143, 191]}, {"55062679": [20, 39, 189]}, {"55062683": [24, 143, 164]}, {"55062687": [104, 143, 165]}, {"55062691": [108, 143, 166]}, {"55062695": [112, 143, 167]}, {"55062699": [116, 132, 110, 19, 196, 3, 224]}, {"55062707": [8]}, {"55062712": [147, 25]}, {"55062715": [116, 52, 1]}, {"55062719": [255, 23, 33]}, {"55062723": [2]}, {"55062728": [52, 25]}, {"55062731": [44, 3, 224]}, {"55062735": [8, 167, 185]}, {"55062739": [154, 147, 44]}, {"55062743": [116, 52, 1]}, {"55062747": [255, 21, 129]}, {"55062751": [2]}, {"55062756": [52, 12]}, {"55062759": [44, 3, 224]}, {"55062763": [8]}, {"55062768": [145, 174]}, {"55062771": [116, 52, 1]}, {"55062775": [255, 21, 193]}, {"55062779": [2]}, {"55062784": [52, 14]}, {"55062787": [44, 3, 224]}, {"55062791": [8, 167, 174]}, {"55062795": [154, 145, 207]}, {"55062799": [116, 52, 1]}, {"55062803": [255, 21, 225]}, {"55062807": [2]}, {"55062812": [52, 15]}, {"55062815": [44, 3, 224]}, {"55062819": [8, 167, 175]}, {"55062823": [154, 60, 8, 128, 64, 37, 8, 32, 28, 142, 9]}, {"55062835": [104, 173, 9]}, {"55062840": [142, 9]}, {"55062843": [108, 173, 9]}, {"55062847": [4, 150, 9]}, {"55062851": [112, 165, 9]}, {"55062855": [8, 150, 9]}, {"55062859": [156, 165, 9]}, {"55062863": [10, 3, 224]}, {"55062867": [8, 142, 14]}, {"55062871": [4, 39, 189, 255, 224, 175, 176]}, {"55062879": [16, 175, 177]}, {"55062883": [20, 175, 191]}, {"55062887": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 28, 142, 8]}, {"55062907": [4, 17]}, {"55062911": [5]}, {"55062916": [12, 16, 12, 128]}, {"55062924": [16]}, {"55062927": [3]}, {"55062932": [12, 16, 12, 147]}, {"55062940": [12, 16, 12, 115, 52, 4]}, {"55062948": [12, 16, 12, 115, 52, 4]}, {"55062955": [1, 12, 16, 12, 115, 52, 4]}, {"55062963": [2, 143, 176]}, {"55062967": [16, 143, 177]}, {"55062971": [20, 143, 191]}, {"55062975": [24, 39, 189]}, {"55062979": [32, 3, 224]}, {"55062983": [8]}, {"55062988": [2, 4, 64, 33, 145, 9]}, {"55062995": [108, 52, 1]}, {"55062999": [255, 17, 33]}, {"55063003": [7]}, {"55063008": [2, 9, 72, 33, 145, 41]}, {"55063015": [116, 52, 1]}, {"55063019": [44, 17, 33]}, {"55063023": [2]}, {"55063028": [161, 9]}, {"55063031": [105, 3, 224]}, {"55063035": [8]}, {"55063040": [39, 189, 255, 232, 175, 191]}, {"55063047": [16, 142, 40]}, {"55063052": [174, 8]}, {"55063055": [64, 142, 40]}, {"55063059": [4, 174, 8]}, {"55063063": [68, 150, 40]}, {"55063067": [8, 166, 8]}, {"55063071": [72, 162]}, {"55063074": [15, 51, 146, 8]}, {"55063079": [74, 52, 1]}, {"55063083": [255, 21, 1]}, {"55063087": [3]}, {"55063092": [12, 16, 12, 161]}, {"55063100": [143, 191]}, {"55063103": [16, 39, 189]}, {"55063107": [24, 3, 224]}, {"55063111": [8]}, {"55063116": [142, 8]}, {"55063119": [64, 174, 8]}, {"55063123": [104, 142, 8]}, {"55063127": [68, 174, 8]}, {"55063131": [108, 150, 8]}, {"55063135": [72, 166, 8]}, {"55063139": [112, 146, 8]}, {"55063143": [104, 52, 1]}, {"55063147": [255, 21, 1]}, {"55063151": [3]}, {"55063156": [52, 8]}, {"55063159": [1, 162, 8, 15, 51, 3, 224]}, {"55063167": [8]}, {"55063172": [39, 189, 255, 232, 175, 191]}, {"55063179": [16, 150, 8]}, {"55063183": [156, 49, 8]}, {"55063187": [64, 17]}, {"55063191": [5]}, {"55063196": [150, 8]}, {"55063199": [112, 49, 8, 255, 15, 53, 8]}, {"55063207": [48, 166, 8]}, {"55063211": [112, 146, 40]}, {"55063215": [1, 162, 8]}, {"55063219": [105, 150, 40]}, {"55063223": [2, 166, 8]}, {"55063227": [106, 142, 40]}, {"55063231": [4, 174, 8]}, {"55063235": [108, 12, 16, 12, 187, 52, 4]}, {"55063244": [12, 16, 12, 187, 52, 4]}, {"55063251": [1, 12, 16, 12, 187, 52, 4]}, {"55063259": [2, 143, 191]}, {"55063263": [16, 39, 189]}, {"55063267": [24, 3, 224]}, {"55063271": [8]}, {"55063276": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 51, 152, 145, 10]}, {"55063291": [108, 52, 1]}, {"55063295": [255, 17, 65]}, {"55063299": [5]}, {"55063304": [1, 42, 72, 33, 145, 41]}, {"55063312": [21, 32]}, {"55063315": [28]}, {"55063320": [60, 9, 128, 64, 37, 41, 51, 139, 37, 41]}, {"55063331": [1, 145, 42]}, {"55063336": [17, 64]}, {"55063339": [19]}, {"55063344": [2, 10, 88, 33, 145, 107]}, {"55063351": [116, 52, 1]}, {"55063355": [255, 17, 97, 255, 248]}, {"55063364": [146, 12]}, {"55063367": [108, 17, 138, 255, 245]}, {"55063376": [146, 12]}, {"55063379": [109, 17, 138, 255, 242]}, {"55063388": [146, 12]}, {"55063391": [110, 17, 138, 255, 239]}, {"55063400": [161, 11]}, {"55063403": [105, 161, 10]}, {"55063407": [108, 16]}, {"55063411": [4]}, {"55063416": [52, 9]}, {"55063419": [255, 161, 9]}, {"55063423": [105, 161, 9]}, {"55063427": [108, 3, 224]}, {"55063431": [8]}, {"55063436": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063449": [1, 1, 1, 1, 1]}, {"55063455": [1, 1, 1, 1, 1]}, {"55063461": [1]}, {"55063463": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063473": [51, 8, 33, 32, 15]}, {"55063479": [71, 21, 234]}, {"55063483": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063495": [164]}, {"55063497": [15, 122, 3, 20, 64]}, {"55063503": [5, 52, 2, 72, 48, 21, 226]}, {"55063511": [7]}, {"55063516": [36, 25]}, {"55063519": [3, 16]}, {"55063523": [4, 52, 2, 99, 17, 21, 226]}, {"55063531": [2]}, {"55063536": [36, 25]}, {"55063539": [3, 3, 224]}, {"55063543": [8]}, {"55063548": [141, 173, 138, 160, 52, 2, 128]}, {"55063556": [16, 77]}, {"55063559": [2]}, {"55063564": [16]}, {"55063567": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063583": [1, 16, 64]}, {"55063587": [2]}, {"55063592": [16]}, {"55063595": [2, 52, 2]}, {"55063599": [1, 161, 226, 28, 191, 3, 224]}, {"55063607": [8]}, {"55063613": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063627": [164]}, {"55063629": [15, 122, 3, 20, 64]}, {"55063635": [5, 52, 2, 72, 48, 21, 226]}, {"55063643": [7]}, {"55063648": [36, 25]}, {"55063651": [3, 16]}, {"55063655": [4, 52, 2, 99, 17, 21, 226]}, {"55063663": [2]}, {"55063668": [36, 25]}, {"55063671": [3, 3, 224]}, {"55063675": [8]}, {"55063680": [162, 37]}, {"55063683": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063695": [4, 142, 10]}, {"55063700": [17, 64]}, {"55063703": [11]}, {"55063709": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063721": [24, 194, 2, 23]}, {"55063727": [3, 49, 89]}, {"55063731": [255, 129, 234]}, {"55063736": [3, 42, 200, 37, 8, 16, 13, 35, 161, 249]}, {"55063748": [3, 224]}, {"55063751": [8]}] \ No newline at end of file diff --git a/version.py b/version.py index de766b840..414b94e22 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.33 f.LUM' \ No newline at end of file +__version__ = '2.13.34 f.LUM' \ No newline at end of file From e09fcb63e5e4608024a8b6c68c0cab39e2ddccfd Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Mon, 30 Jul 2018 13:27:56 -0400 Subject: [PATCH 214/755] Fix impa giving wrong item --- Regions.py | 2 +- version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Regions.py b/Regions.py index 15db16133..0143c8be1 100644 --- a/Regions.py +++ b/Regions.py @@ -370,7 +370,7 @@ def _create_region(name, type, locations=None, exits=None): 'Lost Woods Generic Grotto Chest': (None, None, 0x14, 'Chest', 0x3E, 'the Lost Woods'), 'Mountain Storms Grotto Chest': (None, None, 0x17, 'Chest', 0x3E, 'Death Mountain Trail'), 'Top of Crater Grotto Chest': (None, None, 0x1A, 'Chest', 0x3E, 'Death Mountain Crater'), - 'Impa at Castle': (0x2E8E925, 0x2E8E925, 0x67, 'Song', 0x4A, 'Hyrule Castle'), + 'Impa at Castle': (0x2E8E925, 0x2E8E925, 0x67, 'Song', 0x51, 'Hyrule Castle'), 'Song from Malon': (0xD7EB53, 0xD7EBCF, 0x68, 'Song', 0x63, 'Lon Lon Ranch'), 'Song from Composer Grave': (0x332A871, 0x332A871, 0x6A, 'Song', 0x41, 'the Graveyard'), 'Song from Saria': (0x20B1DB1, 0x20B1DB1, 0x69, 'Song', 0x56, 'Sacred Forest Meadow'), diff --git a/version.py b/version.py index 414b94e22..6ba451bf2 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.34 f.LUM' \ No newline at end of file +__version__ = '2.13.35 f.LUM' \ No newline at end of file From 210fbb51a32e1c9bde9c508340b61c635d8d0c72 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Mon, 30 Jul 2018 13:42:51 -0400 Subject: [PATCH 215/755] fix malon not giving an item --- ASM/src/malon.asm | 8 ++++---- data/base2current.json | 2 +- version.py | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/ASM/src/malon.asm b/ASM/src/malon.asm index 4ed3c7394..cae388cba 100644 --- a/ASM/src/malon.asm +++ b/ASM/src/malon.asm @@ -181,13 +181,13 @@ ev0_return: lui t0,0x8010 lh t8,0xA4(t8) ; t8 = current scene number - ;lb t1,0x0EDE(v0) - lw t1,164(v0) ; t1 = quest status + lb t1,0x0EDE(v0) + ;lw t1,164(v0) ; t1 = quest status addiu t3,t3,4392 ; t3 = 0x809f1128 ( ev0 ) - ;li t0,0x01 - lw t0,-29660(t0) ; t0 = malon's song mask + li t0,0x01 + ;lw t0,-29660(t0) ; t0 = malon's song mask move a0,s0 ; a0 = actor pointer to set up function call lui t4,0x809f diff --git a/data/base2current.json b/data/base2current.json index a78b280b1..c40d6d2cd 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -1 +1 @@ -[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 192]}, {"11311804": [12, 16, 11, 200]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 186, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 86]}, {"11427296": [12, 16, 11, 196, 52, 2, 0, 255, 16, 0, 5, 97]}, {"11427312": [12, 16, 12, 255]}, {"11431496": [12, 16, 11, 191, 1, 15, 192, 33]}, {"11559932": [52, 14, 0, 2, 130]}, {"11559938": [14, 222]}, {"11562028": [12, 16, 13]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 15]}, {"11882076": [12, 16, 12, 236]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 53, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 60, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 67, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 46, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 136]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 18]}, {"12427480": [12, 16, 10, 102]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 106]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 11, 249, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 148]}, {"12491480": [12, 16, 10, 157]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 143]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 74]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 140, 73]}, {"14149503": [164]}, {"14149512": [2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 203]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 219]}, {"14624335": [118]}, {"14720868": [52, 14, 0, 4, 128]}, {"14720874": [14, 222]}, {"14720944": [12, 16, 11, 211]}, {"14848896": [3, 224, 104, 33, 12, 16, 11, 242, 52, 2]}, {"14848909": [160, 248, 33]}, {"14848932": [161, 248, 14, 223]}, {"14872723": [52]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 236, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 48, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 76, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 104, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 220, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 108, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 140, 128, 64, 38, 132, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 172, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 39, 212, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 28, 128, 64, 40]}, {"55059600": [83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 3, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 44, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [2, 52, 2]}, {"55060003": [69, 52, 2]}, {"55060007": [70, 3, 224]}, {"55060011": [8]}, {"55060016": [144, 136]}, {"55060019": [162, 49, 8]}, {"55060023": [6, 17]}, {"55060027": [2, 52, 2]}, {"55060031": [55, 52, 2]}, {"55060035": [56, 3, 224]}, {"55060039": [8]}, {"55060044": [144, 136]}, {"55060047": [161, 49, 8]}, {"55060051": [32, 17]}, {"55060055": [2, 52, 2]}, {"55060059": [121, 52, 2]}, {"55060063": [122, 3, 224]}, {"55060067": [8]}, {"55060072": [144, 136]}, {"55060075": [161, 49, 8]}, {"55060079": [4, 17]}, {"55060083": [2, 52, 2]}, {"55060087": [119, 52, 2]}, {"55060091": [120, 3, 224]}, {"55060095": [8]}, {"55060100": [144, 136]}, {"55060103": [50, 17]}, {"55060107": [2, 52, 2]}, {"55060111": [192, 52, 2]}, {"55060115": [193, 3, 224]}, {"55060119": [8]}, {"55060124": [144, 136]}, {"55060127": [163, 49, 8]}, {"55060131": [3, 17]}, {"55060135": [2, 52, 2]}, {"55060139": [77, 52, 162]}, {"55060144": [3, 224]}, {"55060147": [8]}, {"55060152": [144, 136]}, {"55060155": [163, 49, 8]}, {"55060159": [24, 17]}, {"55060163": [2, 52, 2]}, {"55060167": [77, 52, 162]}, {"55060172": [3, 224]}, {"55060175": [8]}, {"55060180": [3, 224]}, {"55060183": [8]}, {"55060188": [52, 8]}, {"55060191": [1, 160, 136]}, {"55060195": [62, 3, 224]}, {"55060199": [8]}, {"55060204": [36, 136]}, {"55060207": [134, 36, 9, 255, 255, 37, 41]}, {"55060215": [1, 52, 1]}, {"55060219": [3]}, {"55060221": [41, 8, 42, 20, 32]}, {"55060227": [7]}, {"55060232": [1, 9, 80, 33, 145, 75]}, {"55060240": [52, 1]}, {"55060243": [255, 21, 97, 255, 247]}, {"55060252": [161, 69]}, {"55060256": [3, 224]}, {"55060259": [8]}, {"55060264": [36, 136]}, {"55060267": [168, 1, 6, 64, 33, 145, 9]}, {"55060276": [1, 37, 72, 37, 161, 9]}, {"55060284": [3, 224]}, {"55060287": [8]}, {"55060292": [36, 136]}, {"55060295": [188, 1, 5, 64, 33, 129, 9]}, {"55060304": [5, 33]}, {"55060307": [2]}, {"55060312": [52, 9]}, {"55060316": [37, 41]}, {"55060319": [1, 161, 9]}, {"55060324": [3, 224]}, {"55060327": [8]}, {"55060332": [52, 8]}, {"55060335": [1, 160, 136]}, {"55060339": [61, 52, 8]}, {"55060343": [20, 160, 136]}, {"55060347": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [50, 160, 136]}, {"55060375": [58, 52, 8]}, {"55060379": [48, 164, 136, 19, 244, 160, 136]}, {"55060387": [51, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [2, 160, 136]}, {"55060403": [50, 52, 8]}, {"55060407": [1, 160, 136]}, {"55060411": [58, 160, 136]}, {"55060415": [60, 52, 8]}, {"55060419": [96, 164, 136, 19, 244, 160, 136]}, {"55060427": [51, 3, 224]}, {"55060431": [8]}, {"55060436": [144, 136]}, {"55060439": [124, 52, 1]}, {"55060443": [255, 17, 1]}, {"55060447": [6, 52, 2]}, {"55060451": [107, 144, 136]}, {"55060455": [148, 45, 8]}, {"55060459": [6, 17]}, {"55060463": [2, 52, 2]}, {"55060467": [106, 52, 2]}, {"55060471": [3, 3, 224]}, {"55060475": [8]}, {"55060480": [144, 136]}, {"55060483": [123, 52, 1]}, {"55060487": [255, 17, 1]}, {"55060491": [2, 52, 162]}, {"55060496": [52, 2]}, {"55060499": [12, 3, 224]}, {"55060503": [8]}, {"55060508": [52, 8]}, {"55060511": [7, 160, 136]}, {"55060515": [123, 3, 224]}, {"55060519": [8]}, {"55060524": [52, 8]}, {"55060527": [1]}, {"55060529": [168, 64, 4, 140, 137]}, {"55060535": [164, 1, 40, 72, 37, 172, 137]}, {"55060543": [164, 3, 224]}, {"55060547": [8]}, {"55060552": [48, 132]}, {"55060555": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060567": [140, 16, 129]}, {"55060571": [22, 145, 2]}, {"55060575": [117, 52, 1]}, {"55060579": [141, 16, 129]}, {"55060583": [19, 145, 2]}, {"55060587": [117, 16, 128]}, {"55060591": [17, 145, 2]}, {"55060595": [116, 52, 1]}, {"55060599": [138, 16, 129]}, {"55060603": [14, 145, 2]}, {"55060607": [116, 52, 1]}, {"55060611": [139, 16, 129]}, {"55060615": [11, 145, 2]}, {"55060619": [116, 52, 1]}, {"55060623": [88, 16, 129]}, {"55060627": [8, 52, 2]}, {"55060632": [52, 1]}, {"55060635": [120, 16, 129]}, {"55060639": [5, 52, 2]}, {"55060644": [52, 1]}, {"55060647": [121, 16, 129]}, {"55060651": [2, 52, 2]}, {"55060656": [52, 2]}, {"55060659": [255, 3, 224]}, {"55060663": [8]}, {"55060668": [39, 189, 255, 224, 175, 191]}, {"55060675": [16, 175, 176]}, {"55060679": [20, 12, 16, 11, 7]}, {"55060688": [4, 65]}, {"55060691": [2]}, {"55060696": [52, 2]}, {"55060699": [91]}, {"55060701": [64, 32, 33, 12, 16, 11, 110]}, {"55060712": [16, 96]}, {"55060715": [18, 175, 163]}, {"55060719": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060728": [133, 9]}, {"55060731": [2, 17, 32]}, {"55060735": [3, 52, 10]}, {"55060739": [1, 16]}, {"55060743": [8, 165, 10]}, {"55060748": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060759": [6, 144, 102]}, {"55060763": [7, 140, 105]}, {"55060767": [8, 1, 32, 248, 9]}, {"55060776": [143, 163]}, {"55060779": [28, 144, 101]}, {"55060783": [3, 16]}, {"55060787": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060799": [6]}, {"55060801": [74]}, {"55060803": [24]}, {"55060806": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060816": [60, 8, 128, 64, 37, 8, 32]}, {"55060824": [133, 9]}, {"55060827": [2, 17, 32]}, {"55060831": [3, 52, 10]}, {"55060835": [1, 165, 10]}, {"55060840": [52, 5]}, {"55060843": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060855": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060866": [48, 33, 143, 191]}, {"55060871": [16, 143, 176]}, {"55060875": [20, 39, 189]}, {"55060879": [32, 3, 224]}, {"55060883": [8]}, {"55060888": [143, 166]}, {"55060891": [48, 132, 197]}, {"55060895": [4, 8, 16, 10, 110]}, {"55060904": [143, 185]}, {"55060907": [44, 135, 37]}, {"55060911": [4, 8, 16, 10, 110]}, {"55060920": [60, 10, 128, 64, 37, 74, 32, 8, 141, 75]}, {"55060931": [12, 17, 96]}, {"55060935": [2]}, {"55060940": [149, 69]}, {"55060943": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060956": [60, 9, 128, 64, 37, 41, 32, 24, 129, 42]}, {"55060967": [3, 5, 64]}, {"55060971": [11, 1, 42, 72, 32, 129, 40]}, {"55060980": [52, 10]}, {"55060983": [127, 21, 10]}, {"55060987": [6]}, {"55060992": [60, 10, 128, 18, 37, 74, 165, 208, 133, 72]}, {"55061003": [144, 33, 8]}, {"55061007": [1, 165, 72]}, {"55061011": [144, 161, 32]}, {"55061016": [3, 224]}, {"55061019": [8]}, {"55061024": [60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061035": [12, 17, 32]}, {"55061039": [2]}, {"55061044": [129, 3]}, {"55061047": [2]}, {"55061049": [3, 15, 195]}, {"55061053": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061067": [8]}, {"55061072": [144, 69]}, {"55061075": [3, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061087": [12, 17, 32]}, {"55061091": [2]}, {"55061096": [145, 5]}, {"55061099": [3, 3, 224]}, {"55061103": [8]}, {"55061108": [143, 162]}, {"55061111": [36, 144, 69]}, {"55061116": [60, 8, 128, 64, 37, 8, 32]}, {"55061124": [133, 9]}, {"55061127": [2, 17, 32]}, {"55061131": [4, 52, 10]}, {"55061135": [1, 165, 10]}, {"55061140": [16]}, {"55061143": [24, 52, 5]}, {"55061147": [65, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061159": [12, 17, 32]}, {"55061163": [19]}, {"55061168": [145, 5]}, {"55061171": [1, 175, 164]}, {"55061176": [175, 165]}, {"55061179": [4, 175, 166]}, {"55061183": [8, 39, 189, 255, 232, 175, 191]}, {"55061191": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061203": [6, 145, 6]}, {"55061207": [7, 141, 9]}, {"55061211": [8, 1, 32, 248, 9]}, {"55061220": [143, 191]}, {"55061223": [16, 39, 189]}, {"55061227": [24, 143, 164]}, {"55061232": [143, 165]}, {"55061235": [4, 143, 166]}, {"55061239": [8, 3, 224]}, {"55061243": [8]}, {"55061248": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061259": [16, 175, 163]}, {"55061263": [20, 175, 191]}, {"55061267": [24, 12, 16, 10, 205]}, {"55061276": [143, 162]}, {"55061279": [16, 143, 163]}, {"55061283": [20, 143, 191]}, {"55061287": [24, 39, 189]}, {"55061291": [32, 3, 224]}, {"55061295": [8]}, {"55061300": [39, 189, 255, 232, 175, 191]}, {"55061307": [16, 60, 8, 128, 64, 37, 8, 32, 8, 173]}, {"55061320": [173]}, {"55061323": [4, 173]}, {"55061327": [8, 173]}, {"55061331": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061347": [42]}, {"55061353": [9, 15, 195, 1, 33, 32, 38]}, {"55061361": [129, 32, 35, 141, 5, 4, 40, 12, 16, 11, 7]}, {"55061376": [4, 64]}, {"55061379": [34]}, {"55061384": [52, 68]}, {"55061388": [12, 16, 11, 110]}, {"55061396": [16, 96]}, {"55061399": [12]}, {"55061404": [60, 8, 128, 64, 37, 8, 32, 8, 140, 105]}, {"55061416": [173, 9]}, {"55061420": [140, 105]}, {"55061423": [4, 173, 9]}, {"55061427": [4, 140, 105]}, {"55061431": [8, 173, 9]}, {"55061435": [8, 52, 9]}, {"55061439": [1, 173, 9]}, {"55061443": [12, 144, 98]}, {"55061448": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061464": [52, 1]}, {"55061467": [10, 21, 65]}, {"55061471": [6]}, {"55061476": [149, 42]}, {"55061479": [28, 49, 74, 240, 31]}, {"55061485": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061495": [28, 129, 9, 4, 36, 5, 33]}, {"55061503": [2]}, {"55061509": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061519": [16, 39, 189]}, {"55061523": [24, 3, 224]}, {"55061527": [8]}, {"55061532": [39, 189, 255, 232, 175, 191]}, {"55061539": [16, 12, 16, 11, 21]}, {"55061548": [36, 1, 255, 255, 16, 65]}, {"55061555": [4]}, {"55061560": [52, 68]}, {"55061564": [12, 16, 11, 73]}, {"55061572": [143, 191]}, {"55061575": [16, 39, 189]}, {"55061579": [24, 3, 224]}, {"55061583": [8]}, {"55061588": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061599": [164, 52, 8]}, {"55061604": [52, 137]}, {"55061608": [148, 170]}, {"55061612": [52, 1, 1, 156, 21, 65]}, {"55061619": [8]}, {"55061624": [52, 8]}, {"55061627": [3, 148, 171]}, {"55061631": [28, 49, 105]}, {"55061635": [255, 49, 98, 31]}, {"55061641": [2, 18, 2, 16]}, {"55061647": [31]}, {"55061652": [52, 1]}, {"55061655": [10, 21, 65]}, {"55061659": [14]}, {"55061664": [148, 171]}, {"55061667": [28, 52, 1]}, {"55061671": [16, 20, 65]}, {"55061675": [8]}, {"55061680": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061691": [4]}, {"55061696": [36, 2, 255, 255, 16]}, {"55061703": [21]}, {"55061708": [52, 8]}, {"55061711": [1, 49, 105]}, {"55061715": [31, 52, 1]}, {"55061719": [21, 21, 65]}, {"55061723": [12]}, {"55061728": [52, 1]}, {"55061731": [62, 16, 129]}, {"55061735": [7]}, {"55061740": [52, 1]}, {"55061743": [66, 16, 129]}, {"55061747": [4]}, {"55061752": [36, 2, 255, 255, 16]}, {"55061759": [7]}, {"55061764": [52, 8]}, {"55061767": [2, 144, 169, 1, 65]}, {"55061773": [2, 18]}, {"55061777": [72, 16, 37]}, {"55061781": [2, 18]}, {"55061785": [73, 16, 37, 3, 224]}, {"55061791": [8]}, {"55061796": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061808": [129, 9]}, {"55061812": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061835": [4, 141, 9]}, {"55061840": [17, 32]}, {"55061843": [23]}, {"55061849": [9, 82, 2, 49, 75, 248]}, {"55061857": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061880": [49, 34]}, {"55061883": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061904": [60, 12, 128, 64, 37, 140, 28]}, {"55061912": [129, 140]}, {"55061916": [17, 108]}, {"55061919": [4, 165, 32]}, {"55061923": [2, 161, 43]}, {"55061927": [2, 161, 34]}, {"55061931": [3, 173, 36]}, {"55061935": [4, 3, 224]}, {"55061939": [8]}, {"55061944": [39, 189, 255, 224, 175, 176]}, {"55061951": [16, 175, 177]}, {"55061955": [20, 175, 191]}, {"55061959": [24, 52, 130]}, {"55061964": [52, 80]}, {"55061968": [38, 8, 255, 128, 5]}, {"55061975": [18]}, {"55061980": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55061991": [16, 1, 9]}, {"55061995": [24]}, {"55061998": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55062016": [142, 40]}, {"55062019": [12, 1]}, {"55062022": [248, 9]}, {"55062028": [20, 80, 255, 239]}, {"55062036": [54, 35]}, {"55062040": [16]}, {"55062043": [2]}, {"55062048": [52, 3]}, {"55062052": [143, 176]}, {"55062055": [16, 143, 177]}, {"55062059": [20, 143, 191]}, {"55062063": [24, 39, 189]}, {"55062067": [32, 3, 224]}, {"55062071": [8]}, {"55062076": [140, 136, 29, 44, 52, 9]}, {"55062083": [1]}, {"55062085": [9, 78]}, {"55062088": [1, 9, 16, 36, 16, 64]}, {"55062095": [36]}, {"55062100": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062115": [164, 52, 1]}, {"55062119": [61, 17, 129]}, {"55062123": [10]}, {"55062129": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062139": [25]}, {"55062144": [52, 13]}, {"55062147": [1, 161, 141, 29, 40, 37, 74]}, {"55062155": [3, 16]}, {"55062159": [9]}, {"55062164": [52, 12]}, {"55062167": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062183": [14]}, {"55062188": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062224": [60, 9, 128, 64, 37, 41, 32, 24, 161, 40]}, {"55062236": [52, 2]}, {"55062240": [3, 224]}, {"55062243": [8]}, {"55062248": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062260": [16]}, {"55062263": [33]}, {"55062268": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062280": [16]}, {"55062283": [28]}, {"55062288": [32, 232, 255, 166, 33, 8]}, {"55062295": [97, 16]}, {"55062299": [24]}, {"55062304": [52, 8]}, {"55062307": [100, 16]}, {"55062311": [21]}, {"55062316": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062331": [1, 160, 40, 14, 222, 52, 8]}, {"55062339": [104, 16]}, {"55062343": [13]}, {"55062348": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062363": [4, 160, 40, 14, 222, 52, 8]}, {"55062371": [106, 16]}, {"55062375": [5]}, {"55062380": [52, 5]}, {"55062383": [3, 52, 8]}, {"55062387": [107, 16]}, {"55062391": [1]}, {"55062396": [60, 9, 128, 64, 37, 41, 32, 24, 60, 10, 128, 64, 37, 74, 32, 27, 129, 44]}, {"55062416": [17, 136]}, {"55062419": [11, 33, 41]}, {"55062423": [1, 21, 42, 255, 252]}, {"55062432": [60, 9, 128, 64, 37, 41, 32, 23, 33, 41]}, {"55062443": [1, 17, 42]}, {"55062447": [4, 129, 44]}, {"55062452": [21, 128, 255, 252]}, {"55062460": [161, 40]}, {"55062464": [3, 224]}, {"55062467": [8]}, {"55062473": [96, 120, 33, 129, 236, 14, 223, 53, 152]}, {"55062483": [128, 49, 142]}, {"55062487": [128, 52, 3]}, {"55062491": [5, 3, 224]}, {"55062495": [8]}, {"55062500": [175, 164]}, {"55062503": [104, 175, 165]}, {"55062507": [108, 175, 166]}, {"55062511": [112, 175, 167]}, {"55062515": [116, 39, 189, 255, 232, 175, 163]}, {"55062523": [16, 175, 191]}, {"55062527": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062543": [32, 21]}, {"55062547": [31]}, {"55062552": [60, 9, 128, 64, 37, 41, 32, 27, 52, 10]}, {"55062563": [255, 161, 42]}, {"55062568": [60, 9, 128, 64, 37, 41, 32, 24, 36, 10, 255, 255, 52, 12]}, {"55062583": [3, 33, 74]}, {"55062587": [1, 17, 76]}, {"55062591": [20, 1, 42, 88, 32, 129, 104]}, {"55062600": [17]}, {"55062602": [255, 251]}, {"55062608": [60, 9, 128, 64, 37, 41, 32, 27, 161, 42]}, {"55062620": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062631": [1, 165, 42]}, {"55062636": [60, 9, 128, 65, 52, 10]}, {"55062643": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 205]}, {"55062672": [143, 163]}, {"55062675": [16, 143, 191]}, {"55062679": [20, 39, 189]}, {"55062683": [24, 143, 164]}, {"55062687": [104, 143, 165]}, {"55062691": [108, 143, 166]}, {"55062695": [112, 143, 167]}, {"55062699": [116, 132, 110, 19, 196, 3, 224]}, {"55062707": [8]}, {"55062712": [147, 25]}, {"55062715": [116, 52, 1]}, {"55062719": [255, 23, 33]}, {"55062723": [2]}, {"55062728": [52, 25]}, {"55062731": [44, 3, 224]}, {"55062735": [8, 167, 185]}, {"55062739": [154, 147, 44]}, {"55062743": [116, 52, 1]}, {"55062747": [255, 21, 129]}, {"55062751": [2]}, {"55062756": [52, 12]}, {"55062759": [44, 3, 224]}, {"55062763": [8]}, {"55062768": [145, 174]}, {"55062771": [116, 52, 1]}, {"55062775": [255, 21, 193]}, {"55062779": [2]}, {"55062784": [52, 14]}, {"55062787": [44, 3, 224]}, {"55062791": [8, 167, 174]}, {"55062795": [154, 145, 207]}, {"55062799": [116, 52, 1]}, {"55062803": [255, 21, 225]}, {"55062807": [2]}, {"55062812": [52, 15]}, {"55062815": [44, 3, 224]}, {"55062819": [8, 167, 175]}, {"55062823": [154, 60, 8, 128, 64, 37, 8, 32, 28, 142, 9]}, {"55062835": [104, 173, 9]}, {"55062840": [142, 9]}, {"55062843": [108, 173, 9]}, {"55062847": [4, 150, 9]}, {"55062851": [112, 165, 9]}, {"55062855": [8, 150, 9]}, {"55062859": [156, 165, 9]}, {"55062863": [10, 3, 224]}, {"55062867": [8, 142, 14]}, {"55062871": [4, 39, 189, 255, 224, 175, 176]}, {"55062879": [16, 175, 177]}, {"55062883": [20, 175, 191]}, {"55062887": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 28, 142, 8]}, {"55062907": [4, 17]}, {"55062911": [5]}, {"55062916": [12, 16, 12, 128]}, {"55062924": [16]}, {"55062927": [3]}, {"55062932": [12, 16, 12, 147]}, {"55062940": [12, 16, 12, 115, 52, 4]}, {"55062948": [12, 16, 12, 115, 52, 4]}, {"55062955": [1, 12, 16, 12, 115, 52, 4]}, {"55062963": [2, 143, 176]}, {"55062967": [16, 143, 177]}, {"55062971": [20, 143, 191]}, {"55062975": [24, 39, 189]}, {"55062979": [32, 3, 224]}, {"55062983": [8]}, {"55062988": [2, 4, 64, 33, 145, 9]}, {"55062995": [108, 52, 1]}, {"55062999": [255, 17, 33]}, {"55063003": [7]}, {"55063008": [2, 9, 72, 33, 145, 41]}, {"55063015": [116, 52, 1]}, {"55063019": [44, 17, 33]}, {"55063023": [2]}, {"55063028": [161, 9]}, {"55063031": [105, 3, 224]}, {"55063035": [8]}, {"55063040": [39, 189, 255, 232, 175, 191]}, {"55063047": [16, 142, 40]}, {"55063052": [174, 8]}, {"55063055": [64, 142, 40]}, {"55063059": [4, 174, 8]}, {"55063063": [68, 150, 40]}, {"55063067": [8, 166, 8]}, {"55063071": [72, 162]}, {"55063074": [15, 51, 146, 8]}, {"55063079": [74, 52, 1]}, {"55063083": [255, 21, 1]}, {"55063087": [3]}, {"55063092": [12, 16, 12, 161]}, {"55063100": [143, 191]}, {"55063103": [16, 39, 189]}, {"55063107": [24, 3, 224]}, {"55063111": [8]}, {"55063116": [142, 8]}, {"55063119": [64, 174, 8]}, {"55063123": [104, 142, 8]}, {"55063127": [68, 174, 8]}, {"55063131": [108, 150, 8]}, {"55063135": [72, 166, 8]}, {"55063139": [112, 146, 8]}, {"55063143": [104, 52, 1]}, {"55063147": [255, 21, 1]}, {"55063151": [3]}, {"55063156": [52, 8]}, {"55063159": [1, 162, 8, 15, 51, 3, 224]}, {"55063167": [8]}, {"55063172": [39, 189, 255, 232, 175, 191]}, {"55063179": [16, 150, 8]}, {"55063183": [156, 49, 8]}, {"55063187": [64, 17]}, {"55063191": [5]}, {"55063196": [150, 8]}, {"55063199": [112, 49, 8, 255, 15, 53, 8]}, {"55063207": [48, 166, 8]}, {"55063211": [112, 146, 40]}, {"55063215": [1, 162, 8]}, {"55063219": [105, 150, 40]}, {"55063223": [2, 166, 8]}, {"55063227": [106, 142, 40]}, {"55063231": [4, 174, 8]}, {"55063235": [108, 12, 16, 12, 187, 52, 4]}, {"55063244": [12, 16, 12, 187, 52, 4]}, {"55063251": [1, 12, 16, 12, 187, 52, 4]}, {"55063259": [2, 143, 191]}, {"55063263": [16, 39, 189]}, {"55063267": [24, 3, 224]}, {"55063271": [8]}, {"55063276": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 51, 152, 145, 10]}, {"55063291": [108, 52, 1]}, {"55063295": [255, 17, 65]}, {"55063299": [5]}, {"55063304": [1, 42, 72, 33, 145, 41]}, {"55063312": [21, 32]}, {"55063315": [28]}, {"55063320": [60, 9, 128, 64, 37, 41, 51, 139, 37, 41]}, {"55063331": [1, 145, 42]}, {"55063336": [17, 64]}, {"55063339": [19]}, {"55063344": [2, 10, 88, 33, 145, 107]}, {"55063351": [116, 52, 1]}, {"55063355": [255, 17, 97, 255, 248]}, {"55063364": [146, 12]}, {"55063367": [108, 17, 138, 255, 245]}, {"55063376": [146, 12]}, {"55063379": [109, 17, 138, 255, 242]}, {"55063388": [146, 12]}, {"55063391": [110, 17, 138, 255, 239]}, {"55063400": [161, 11]}, {"55063403": [105, 161, 10]}, {"55063407": [108, 16]}, {"55063411": [4]}, {"55063416": [52, 9]}, {"55063419": [255, 161, 9]}, {"55063423": [105, 161, 9]}, {"55063427": [108, 3, 224]}, {"55063431": [8]}, {"55063436": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063449": [1, 1, 1, 1, 1]}, {"55063455": [1, 1, 1, 1, 1]}, {"55063461": [1]}, {"55063463": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063473": [51, 8, 33, 32, 15]}, {"55063479": [71, 21, 234]}, {"55063483": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063495": [164]}, {"55063497": [15, 122, 3, 20, 64]}, {"55063503": [5, 52, 2, 72, 48, 21, 226]}, {"55063511": [7]}, {"55063516": [36, 25]}, {"55063519": [3, 16]}, {"55063523": [4, 52, 2, 99, 17, 21, 226]}, {"55063531": [2]}, {"55063536": [36, 25]}, {"55063539": [3, 3, 224]}, {"55063543": [8]}, {"55063548": [141, 173, 138, 160, 52, 2, 128]}, {"55063556": [16, 77]}, {"55063559": [2]}, {"55063564": [16]}, {"55063567": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063583": [1, 16, 64]}, {"55063587": [2]}, {"55063592": [16]}, {"55063595": [2, 52, 2]}, {"55063599": [1, 161, 226, 28, 191, 3, 224]}, {"55063607": [8]}, {"55063613": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063627": [164]}, {"55063629": [15, 122, 3, 20, 64]}, {"55063635": [5, 52, 2, 72, 48, 21, 226]}, {"55063643": [7]}, {"55063648": [36, 25]}, {"55063651": [3, 16]}, {"55063655": [4, 52, 2, 99, 17, 21, 226]}, {"55063663": [2]}, {"55063668": [36, 25]}, {"55063671": [3, 3, 224]}, {"55063675": [8]}, {"55063680": [162, 37]}, {"55063683": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063695": [4, 142, 10]}, {"55063700": [17, 64]}, {"55063703": [11]}, {"55063709": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063721": [24, 194, 2, 23]}, {"55063727": [3, 49, 89]}, {"55063731": [255, 129, 234]}, {"55063736": [3, 42, 200, 37, 8, 16, 13, 35, 161, 249]}, {"55063748": [3, 224]}, {"55063751": [8]}] \ No newline at end of file +[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 192]}, {"11311804": [12, 16, 11, 200]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 186, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 86]}, {"11427296": [12, 16, 11, 196, 52, 2, 0, 255, 16, 0, 5, 97]}, {"11427312": [12, 16, 12, 255]}, {"11431496": [12, 16, 11, 191, 1, 15, 192, 33]}, {"11559932": [52, 14, 0, 2, 130]}, {"11559938": [14, 222]}, {"11562028": [12, 16, 13]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 15]}, {"11882076": [12, 16, 12, 236]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 53, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 60, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 67, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 46, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 136]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 18]}, {"12427480": [12, 16, 10, 102]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 106]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 11, 249, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 148]}, {"12491480": [12, 16, 10, 157]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 143]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 74]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 128, 73, 14, 222]}, {"14149508": [52]}, {"14149510": [0, 1, 2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 203]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 219]}, {"14624335": [118]}, {"14720868": [52, 14, 0, 4, 128]}, {"14720874": [14, 222]}, {"14720944": [12, 16, 11, 211]}, {"14848896": [3, 224, 104, 33, 12, 16, 11, 242, 52, 2]}, {"14848909": [160, 248, 33]}, {"14848932": [161, 248, 14, 223]}, {"14872723": [52]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 236, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 48, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 76, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 104, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 220, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 108, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 140, 128, 64, 38, 132, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 172, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 39, 212, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 28, 128, 64, 40]}, {"55059600": [83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 3, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 44, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [2, 52, 2]}, {"55060003": [69, 52, 2]}, {"55060007": [70, 3, 224]}, {"55060011": [8]}, {"55060016": [144, 136]}, {"55060019": [162, 49, 8]}, {"55060023": [6, 17]}, {"55060027": [2, 52, 2]}, {"55060031": [55, 52, 2]}, {"55060035": [56, 3, 224]}, {"55060039": [8]}, {"55060044": [144, 136]}, {"55060047": [161, 49, 8]}, {"55060051": [32, 17]}, {"55060055": [2, 52, 2]}, {"55060059": [121, 52, 2]}, {"55060063": [122, 3, 224]}, {"55060067": [8]}, {"55060072": [144, 136]}, {"55060075": [161, 49, 8]}, {"55060079": [4, 17]}, {"55060083": [2, 52, 2]}, {"55060087": [119, 52, 2]}, {"55060091": [120, 3, 224]}, {"55060095": [8]}, {"55060100": [144, 136]}, {"55060103": [50, 17]}, {"55060107": [2, 52, 2]}, {"55060111": [192, 52, 2]}, {"55060115": [193, 3, 224]}, {"55060119": [8]}, {"55060124": [144, 136]}, {"55060127": [163, 49, 8]}, {"55060131": [3, 17]}, {"55060135": [2, 52, 2]}, {"55060139": [77, 52, 162]}, {"55060144": [3, 224]}, {"55060147": [8]}, {"55060152": [144, 136]}, {"55060155": [163, 49, 8]}, {"55060159": [24, 17]}, {"55060163": [2, 52, 2]}, {"55060167": [77, 52, 162]}, {"55060172": [3, 224]}, {"55060175": [8]}, {"55060180": [3, 224]}, {"55060183": [8]}, {"55060188": [52, 8]}, {"55060191": [1, 160, 136]}, {"55060195": [62, 3, 224]}, {"55060199": [8]}, {"55060204": [36, 136]}, {"55060207": [134, 36, 9, 255, 255, 37, 41]}, {"55060215": [1, 52, 1]}, {"55060219": [3]}, {"55060221": [41, 8, 42, 20, 32]}, {"55060227": [7]}, {"55060232": [1, 9, 80, 33, 145, 75]}, {"55060240": [52, 1]}, {"55060243": [255, 21, 97, 255, 247]}, {"55060252": [161, 69]}, {"55060256": [3, 224]}, {"55060259": [8]}, {"55060264": [36, 136]}, {"55060267": [168, 1, 6, 64, 33, 145, 9]}, {"55060276": [1, 37, 72, 37, 161, 9]}, {"55060284": [3, 224]}, {"55060287": [8]}, {"55060292": [36, 136]}, {"55060295": [188, 1, 5, 64, 33, 129, 9]}, {"55060304": [5, 33]}, {"55060307": [2]}, {"55060312": [52, 9]}, {"55060316": [37, 41]}, {"55060319": [1, 161, 9]}, {"55060324": [3, 224]}, {"55060327": [8]}, {"55060332": [52, 8]}, {"55060335": [1, 160, 136]}, {"55060339": [61, 52, 8]}, {"55060343": [20, 160, 136]}, {"55060347": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [50, 160, 136]}, {"55060375": [58, 52, 8]}, {"55060379": [48, 164, 136, 19, 244, 160, 136]}, {"55060387": [51, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [2, 160, 136]}, {"55060403": [50, 52, 8]}, {"55060407": [1, 160, 136]}, {"55060411": [58, 160, 136]}, {"55060415": [60, 52, 8]}, {"55060419": [96, 164, 136, 19, 244, 160, 136]}, {"55060427": [51, 3, 224]}, {"55060431": [8]}, {"55060436": [144, 136]}, {"55060439": [124, 52, 1]}, {"55060443": [255, 17, 1]}, {"55060447": [6, 52, 2]}, {"55060451": [107, 144, 136]}, {"55060455": [148, 45, 8]}, {"55060459": [6, 17]}, {"55060463": [2, 52, 2]}, {"55060467": [106, 52, 2]}, {"55060471": [3, 3, 224]}, {"55060475": [8]}, {"55060480": [144, 136]}, {"55060483": [123, 52, 1]}, {"55060487": [255, 17, 1]}, {"55060491": [2, 52, 162]}, {"55060496": [52, 2]}, {"55060499": [12, 3, 224]}, {"55060503": [8]}, {"55060508": [52, 8]}, {"55060511": [7, 160, 136]}, {"55060515": [123, 3, 224]}, {"55060519": [8]}, {"55060524": [52, 8]}, {"55060527": [1]}, {"55060529": [168, 64, 4, 140, 137]}, {"55060535": [164, 1, 40, 72, 37, 172, 137]}, {"55060543": [164, 3, 224]}, {"55060547": [8]}, {"55060552": [48, 132]}, {"55060555": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060567": [140, 16, 129]}, {"55060571": [22, 145, 2]}, {"55060575": [117, 52, 1]}, {"55060579": [141, 16, 129]}, {"55060583": [19, 145, 2]}, {"55060587": [117, 16, 128]}, {"55060591": [17, 145, 2]}, {"55060595": [116, 52, 1]}, {"55060599": [138, 16, 129]}, {"55060603": [14, 145, 2]}, {"55060607": [116, 52, 1]}, {"55060611": [139, 16, 129]}, {"55060615": [11, 145, 2]}, {"55060619": [116, 52, 1]}, {"55060623": [88, 16, 129]}, {"55060627": [8, 52, 2]}, {"55060632": [52, 1]}, {"55060635": [120, 16, 129]}, {"55060639": [5, 52, 2]}, {"55060644": [52, 1]}, {"55060647": [121, 16, 129]}, {"55060651": [2, 52, 2]}, {"55060656": [52, 2]}, {"55060659": [255, 3, 224]}, {"55060663": [8]}, {"55060668": [39, 189, 255, 224, 175, 191]}, {"55060675": [16, 175, 176]}, {"55060679": [20, 12, 16, 11, 7]}, {"55060688": [4, 65]}, {"55060691": [2]}, {"55060696": [52, 2]}, {"55060699": [91]}, {"55060701": [64, 32, 33, 12, 16, 11, 110]}, {"55060712": [16, 96]}, {"55060715": [18, 175, 163]}, {"55060719": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060728": [133, 9]}, {"55060731": [2, 17, 32]}, {"55060735": [3, 52, 10]}, {"55060739": [1, 16]}, {"55060743": [8, 165, 10]}, {"55060748": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060759": [6, 144, 102]}, {"55060763": [7, 140, 105]}, {"55060767": [8, 1, 32, 248, 9]}, {"55060776": [143, 163]}, {"55060779": [28, 144, 101]}, {"55060783": [3, 16]}, {"55060787": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060799": [6]}, {"55060801": [74]}, {"55060803": [24]}, {"55060806": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060816": [60, 8, 128, 64, 37, 8, 32]}, {"55060824": [133, 9]}, {"55060827": [2, 17, 32]}, {"55060831": [3, 52, 10]}, {"55060835": [1, 165, 10]}, {"55060840": [52, 5]}, {"55060843": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060855": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060866": [48, 33, 143, 191]}, {"55060871": [16, 143, 176]}, {"55060875": [20, 39, 189]}, {"55060879": [32, 3, 224]}, {"55060883": [8]}, {"55060888": [143, 166]}, {"55060891": [48, 132, 197]}, {"55060895": [4, 8, 16, 10, 110]}, {"55060904": [143, 185]}, {"55060907": [44, 135, 37]}, {"55060911": [4, 8, 16, 10, 110]}, {"55060920": [60, 10, 128, 64, 37, 74, 32, 8, 141, 75]}, {"55060931": [12, 17, 96]}, {"55060935": [2]}, {"55060940": [149, 69]}, {"55060943": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060956": [60, 9, 128, 64, 37, 41, 32, 24, 129, 42]}, {"55060967": [3, 5, 64]}, {"55060971": [11, 1, 42, 72, 32, 129, 40]}, {"55060980": [52, 10]}, {"55060983": [127, 21, 10]}, {"55060987": [6]}, {"55060992": [60, 10, 128, 18, 37, 74, 165, 208, 133, 72]}, {"55061003": [144, 33, 8]}, {"55061007": [1, 165, 72]}, {"55061011": [144, 161, 32]}, {"55061016": [3, 224]}, {"55061019": [8]}, {"55061024": [60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061035": [12, 17, 32]}, {"55061039": [2]}, {"55061044": [129, 3]}, {"55061047": [2]}, {"55061049": [3, 15, 195]}, {"55061053": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061067": [8]}, {"55061072": [144, 69]}, {"55061075": [3, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061087": [12, 17, 32]}, {"55061091": [2]}, {"55061096": [145, 5]}, {"55061099": [3, 3, 224]}, {"55061103": [8]}, {"55061108": [143, 162]}, {"55061111": [36, 144, 69]}, {"55061116": [60, 8, 128, 64, 37, 8, 32]}, {"55061124": [133, 9]}, {"55061127": [2, 17, 32]}, {"55061131": [4, 52, 10]}, {"55061135": [1, 165, 10]}, {"55061140": [16]}, {"55061143": [24, 52, 5]}, {"55061147": [65, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061159": [12, 17, 32]}, {"55061163": [19]}, {"55061168": [145, 5]}, {"55061171": [1, 175, 164]}, {"55061176": [175, 165]}, {"55061179": [4, 175, 166]}, {"55061183": [8, 39, 189, 255, 232, 175, 191]}, {"55061191": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061203": [6, 145, 6]}, {"55061207": [7, 141, 9]}, {"55061211": [8, 1, 32, 248, 9]}, {"55061220": [143, 191]}, {"55061223": [16, 39, 189]}, {"55061227": [24, 143, 164]}, {"55061232": [143, 165]}, {"55061235": [4, 143, 166]}, {"55061239": [8, 3, 224]}, {"55061243": [8]}, {"55061248": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061259": [16, 175, 163]}, {"55061263": [20, 175, 191]}, {"55061267": [24, 12, 16, 10, 205]}, {"55061276": [143, 162]}, {"55061279": [16, 143, 163]}, {"55061283": [20, 143, 191]}, {"55061287": [24, 39, 189]}, {"55061291": [32, 3, 224]}, {"55061295": [8]}, {"55061300": [39, 189, 255, 232, 175, 191]}, {"55061307": [16, 60, 8, 128, 64, 37, 8, 32, 8, 173]}, {"55061320": [173]}, {"55061323": [4, 173]}, {"55061327": [8, 173]}, {"55061331": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061347": [42]}, {"55061353": [9, 15, 195, 1, 33, 32, 38]}, {"55061361": [129, 32, 35, 141, 5, 4, 40, 12, 16, 11, 7]}, {"55061376": [4, 64]}, {"55061379": [34]}, {"55061384": [52, 68]}, {"55061388": [12, 16, 11, 110]}, {"55061396": [16, 96]}, {"55061399": [12]}, {"55061404": [60, 8, 128, 64, 37, 8, 32, 8, 140, 105]}, {"55061416": [173, 9]}, {"55061420": [140, 105]}, {"55061423": [4, 173, 9]}, {"55061427": [4, 140, 105]}, {"55061431": [8, 173, 9]}, {"55061435": [8, 52, 9]}, {"55061439": [1, 173, 9]}, {"55061443": [12, 144, 98]}, {"55061448": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061464": [52, 1]}, {"55061467": [10, 21, 65]}, {"55061471": [6]}, {"55061476": [149, 42]}, {"55061479": [28, 49, 74, 240, 31]}, {"55061485": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061495": [28, 129, 9, 4, 36, 5, 33]}, {"55061503": [2]}, {"55061509": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061519": [16, 39, 189]}, {"55061523": [24, 3, 224]}, {"55061527": [8]}, {"55061532": [39, 189, 255, 232, 175, 191]}, {"55061539": [16, 12, 16, 11, 21]}, {"55061548": [36, 1, 255, 255, 16, 65]}, {"55061555": [4]}, {"55061560": [52, 68]}, {"55061564": [12, 16, 11, 73]}, {"55061572": [143, 191]}, {"55061575": [16, 39, 189]}, {"55061579": [24, 3, 224]}, {"55061583": [8]}, {"55061588": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061599": [164, 52, 8]}, {"55061604": [52, 137]}, {"55061608": [148, 170]}, {"55061612": [52, 1, 1, 156, 21, 65]}, {"55061619": [8]}, {"55061624": [52, 8]}, {"55061627": [3, 148, 171]}, {"55061631": [28, 49, 105]}, {"55061635": [255, 49, 98, 31]}, {"55061641": [2, 18, 2, 16]}, {"55061647": [31]}, {"55061652": [52, 1]}, {"55061655": [10, 21, 65]}, {"55061659": [14]}, {"55061664": [148, 171]}, {"55061667": [28, 52, 1]}, {"55061671": [16, 20, 65]}, {"55061675": [8]}, {"55061680": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061691": [4]}, {"55061696": [36, 2, 255, 255, 16]}, {"55061703": [21]}, {"55061708": [52, 8]}, {"55061711": [1, 49, 105]}, {"55061715": [31, 52, 1]}, {"55061719": [21, 21, 65]}, {"55061723": [12]}, {"55061728": [52, 1]}, {"55061731": [62, 16, 129]}, {"55061735": [7]}, {"55061740": [52, 1]}, {"55061743": [66, 16, 129]}, {"55061747": [4]}, {"55061752": [36, 2, 255, 255, 16]}, {"55061759": [7]}, {"55061764": [52, 8]}, {"55061767": [2, 144, 169, 1, 65]}, {"55061773": [2, 18]}, {"55061777": [72, 16, 37]}, {"55061781": [2, 18]}, {"55061785": [73, 16, 37, 3, 224]}, {"55061791": [8]}, {"55061796": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061808": [129, 9]}, {"55061812": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061835": [4, 141, 9]}, {"55061840": [17, 32]}, {"55061843": [23]}, {"55061849": [9, 82, 2, 49, 75, 248]}, {"55061857": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061880": [49, 34]}, {"55061883": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061904": [60, 12, 128, 64, 37, 140, 28]}, {"55061912": [129, 140]}, {"55061916": [17, 108]}, {"55061919": [4, 165, 32]}, {"55061923": [2, 161, 43]}, {"55061927": [2, 161, 34]}, {"55061931": [3, 173, 36]}, {"55061935": [4, 3, 224]}, {"55061939": [8]}, {"55061944": [39, 189, 255, 224, 175, 176]}, {"55061951": [16, 175, 177]}, {"55061955": [20, 175, 191]}, {"55061959": [24, 52, 130]}, {"55061964": [52, 80]}, {"55061968": [38, 8, 255, 128, 5]}, {"55061975": [18]}, {"55061980": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55061991": [16, 1, 9]}, {"55061995": [24]}, {"55061998": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55062016": [142, 40]}, {"55062019": [12, 1]}, {"55062022": [248, 9]}, {"55062028": [20, 80, 255, 239]}, {"55062036": [54, 35]}, {"55062040": [16]}, {"55062043": [2]}, {"55062048": [52, 3]}, {"55062052": [143, 176]}, {"55062055": [16, 143, 177]}, {"55062059": [20, 143, 191]}, {"55062063": [24, 39, 189]}, {"55062067": [32, 3, 224]}, {"55062071": [8]}, {"55062076": [140, 136, 29, 44, 52, 9]}, {"55062083": [1]}, {"55062085": [9, 78]}, {"55062088": [1, 9, 16, 36, 16, 64]}, {"55062095": [36]}, {"55062100": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062115": [164, 52, 1]}, {"55062119": [61, 17, 129]}, {"55062123": [10]}, {"55062129": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062139": [25]}, {"55062144": [52, 13]}, {"55062147": [1, 161, 141, 29, 40, 37, 74]}, {"55062155": [3, 16]}, {"55062159": [9]}, {"55062164": [52, 12]}, {"55062167": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062183": [14]}, {"55062188": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062224": [60, 9, 128, 64, 37, 41, 32, 24, 161, 40]}, {"55062236": [52, 2]}, {"55062240": [3, 224]}, {"55062243": [8]}, {"55062248": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062260": [16]}, {"55062263": [33]}, {"55062268": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062280": [16]}, {"55062283": [28]}, {"55062288": [32, 232, 255, 166, 33, 8]}, {"55062295": [97, 16]}, {"55062299": [24]}, {"55062304": [52, 8]}, {"55062307": [100, 16]}, {"55062311": [21]}, {"55062316": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062331": [1, 160, 40, 14, 222, 52, 8]}, {"55062339": [104, 16]}, {"55062343": [13]}, {"55062348": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062363": [4, 160, 40, 14, 222, 52, 8]}, {"55062371": [106, 16]}, {"55062375": [5]}, {"55062380": [52, 5]}, {"55062383": [3, 52, 8]}, {"55062387": [107, 16]}, {"55062391": [1]}, {"55062396": [60, 9, 128, 64, 37, 41, 32, 24, 60, 10, 128, 64, 37, 74, 32, 27, 129, 44]}, {"55062416": [17, 136]}, {"55062419": [11, 33, 41]}, {"55062423": [1, 21, 42, 255, 252]}, {"55062432": [60, 9, 128, 64, 37, 41, 32, 23, 33, 41]}, {"55062443": [1, 17, 42]}, {"55062447": [4, 129, 44]}, {"55062452": [21, 128, 255, 252]}, {"55062460": [161, 40]}, {"55062464": [3, 224]}, {"55062467": [8]}, {"55062473": [96, 120, 33, 129, 236, 14, 223, 53, 152]}, {"55062483": [128, 49, 142]}, {"55062487": [128, 52, 3]}, {"55062491": [5, 3, 224]}, {"55062495": [8]}, {"55062500": [175, 164]}, {"55062503": [104, 175, 165]}, {"55062507": [108, 175, 166]}, {"55062511": [112, 175, 167]}, {"55062515": [116, 39, 189, 255, 232, 175, 163]}, {"55062523": [16, 175, 191]}, {"55062527": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062543": [32, 21]}, {"55062547": [31]}, {"55062552": [60, 9, 128, 64, 37, 41, 32, 27, 52, 10]}, {"55062563": [255, 161, 42]}, {"55062568": [60, 9, 128, 64, 37, 41, 32, 24, 36, 10, 255, 255, 52, 12]}, {"55062583": [3, 33, 74]}, {"55062587": [1, 17, 76]}, {"55062591": [20, 1, 42, 88, 32, 129, 104]}, {"55062600": [17]}, {"55062602": [255, 251]}, {"55062608": [60, 9, 128, 64, 37, 41, 32, 27, 161, 42]}, {"55062620": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062631": [1, 165, 42]}, {"55062636": [60, 9, 128, 65, 52, 10]}, {"55062643": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 205]}, {"55062672": [143, 163]}, {"55062675": [16, 143, 191]}, {"55062679": [20, 39, 189]}, {"55062683": [24, 143, 164]}, {"55062687": [104, 143, 165]}, {"55062691": [108, 143, 166]}, {"55062695": [112, 143, 167]}, {"55062699": [116, 132, 110, 19, 196, 3, 224]}, {"55062707": [8]}, {"55062712": [147, 25]}, {"55062715": [116, 52, 1]}, {"55062719": [255, 23, 33]}, {"55062723": [2]}, {"55062728": [52, 25]}, {"55062731": [44, 3, 224]}, {"55062735": [8, 167, 185]}, {"55062739": [154, 147, 44]}, {"55062743": [116, 52, 1]}, {"55062747": [255, 21, 129]}, {"55062751": [2]}, {"55062756": [52, 12]}, {"55062759": [44, 3, 224]}, {"55062763": [8]}, {"55062768": [145, 174]}, {"55062771": [116, 52, 1]}, {"55062775": [255, 21, 193]}, {"55062779": [2]}, {"55062784": [52, 14]}, {"55062787": [44, 3, 224]}, {"55062791": [8, 167, 174]}, {"55062795": [154, 145, 207]}, {"55062799": [116, 52, 1]}, {"55062803": [255, 21, 225]}, {"55062807": [2]}, {"55062812": [52, 15]}, {"55062815": [44, 3, 224]}, {"55062819": [8, 167, 175]}, {"55062823": [154, 60, 8, 128, 64, 37, 8, 32, 28, 142, 9]}, {"55062835": [104, 173, 9]}, {"55062840": [142, 9]}, {"55062843": [108, 173, 9]}, {"55062847": [4, 150, 9]}, {"55062851": [112, 165, 9]}, {"55062855": [8, 150, 9]}, {"55062859": [156, 165, 9]}, {"55062863": [10, 3, 224]}, {"55062867": [8, 142, 14]}, {"55062871": [4, 39, 189, 255, 224, 175, 176]}, {"55062879": [16, 175, 177]}, {"55062883": [20, 175, 191]}, {"55062887": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 28, 142, 8]}, {"55062907": [4, 17]}, {"55062911": [5]}, {"55062916": [12, 16, 12, 128]}, {"55062924": [16]}, {"55062927": [3]}, {"55062932": [12, 16, 12, 147]}, {"55062940": [12, 16, 12, 115, 52, 4]}, {"55062948": [12, 16, 12, 115, 52, 4]}, {"55062955": [1, 12, 16, 12, 115, 52, 4]}, {"55062963": [2, 143, 176]}, {"55062967": [16, 143, 177]}, {"55062971": [20, 143, 191]}, {"55062975": [24, 39, 189]}, {"55062979": [32, 3, 224]}, {"55062983": [8]}, {"55062988": [2, 4, 64, 33, 145, 9]}, {"55062995": [108, 52, 1]}, {"55062999": [255, 17, 33]}, {"55063003": [7]}, {"55063008": [2, 9, 72, 33, 145, 41]}, {"55063015": [116, 52, 1]}, {"55063019": [44, 17, 33]}, {"55063023": [2]}, {"55063028": [161, 9]}, {"55063031": [105, 3, 224]}, {"55063035": [8]}, {"55063040": [39, 189, 255, 232, 175, 191]}, {"55063047": [16, 142, 40]}, {"55063052": [174, 8]}, {"55063055": [64, 142, 40]}, {"55063059": [4, 174, 8]}, {"55063063": [68, 150, 40]}, {"55063067": [8, 166, 8]}, {"55063071": [72, 162]}, {"55063074": [15, 51, 146, 8]}, {"55063079": [74, 52, 1]}, {"55063083": [255, 21, 1]}, {"55063087": [3]}, {"55063092": [12, 16, 12, 161]}, {"55063100": [143, 191]}, {"55063103": [16, 39, 189]}, {"55063107": [24, 3, 224]}, {"55063111": [8]}, {"55063116": [142, 8]}, {"55063119": [64, 174, 8]}, {"55063123": [104, 142, 8]}, {"55063127": [68, 174, 8]}, {"55063131": [108, 150, 8]}, {"55063135": [72, 166, 8]}, {"55063139": [112, 146, 8]}, {"55063143": [104, 52, 1]}, {"55063147": [255, 21, 1]}, {"55063151": [3]}, {"55063156": [52, 8]}, {"55063159": [1, 162, 8, 15, 51, 3, 224]}, {"55063167": [8]}, {"55063172": [39, 189, 255, 232, 175, 191]}, {"55063179": [16, 150, 8]}, {"55063183": [156, 49, 8]}, {"55063187": [64, 17]}, {"55063191": [5]}, {"55063196": [150, 8]}, {"55063199": [112, 49, 8, 255, 15, 53, 8]}, {"55063207": [48, 166, 8]}, {"55063211": [112, 146, 40]}, {"55063215": [1, 162, 8]}, {"55063219": [105, 150, 40]}, {"55063223": [2, 166, 8]}, {"55063227": [106, 142, 40]}, {"55063231": [4, 174, 8]}, {"55063235": [108, 12, 16, 12, 187, 52, 4]}, {"55063244": [12, 16, 12, 187, 52, 4]}, {"55063251": [1, 12, 16, 12, 187, 52, 4]}, {"55063259": [2, 143, 191]}, {"55063263": [16, 39, 189]}, {"55063267": [24, 3, 224]}, {"55063271": [8]}, {"55063276": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 51, 152, 145, 10]}, {"55063291": [108, 52, 1]}, {"55063295": [255, 17, 65]}, {"55063299": [5]}, {"55063304": [1, 42, 72, 33, 145, 41]}, {"55063312": [21, 32]}, {"55063315": [28]}, {"55063320": [60, 9, 128, 64, 37, 41, 51, 139, 37, 41]}, {"55063331": [1, 145, 42]}, {"55063336": [17, 64]}, {"55063339": [19]}, {"55063344": [2, 10, 88, 33, 145, 107]}, {"55063351": [116, 52, 1]}, {"55063355": [255, 17, 97, 255, 248]}, {"55063364": [146, 12]}, {"55063367": [108, 17, 138, 255, 245]}, {"55063376": [146, 12]}, {"55063379": [109, 17, 138, 255, 242]}, {"55063388": [146, 12]}, {"55063391": [110, 17, 138, 255, 239]}, {"55063400": [161, 11]}, {"55063403": [105, 161, 10]}, {"55063407": [108, 16]}, {"55063411": [4]}, {"55063416": [52, 9]}, {"55063419": [255, 161, 9]}, {"55063423": [105, 161, 9]}, {"55063427": [108, 3, 224]}, {"55063431": [8]}, {"55063436": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063449": [1, 1, 1, 1, 1]}, {"55063455": [1, 1, 1, 1, 1]}, {"55063461": [1]}, {"55063463": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063473": [51, 8, 33, 32, 15]}, {"55063479": [71, 21, 234]}, {"55063483": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063495": [164]}, {"55063497": [15, 122, 3, 20, 64]}, {"55063503": [5, 52, 2, 72, 48, 21, 226]}, {"55063511": [7]}, {"55063516": [36, 25]}, {"55063519": [3, 16]}, {"55063523": [4, 52, 2, 99, 17, 21, 226]}, {"55063531": [2]}, {"55063536": [36, 25]}, {"55063539": [3, 3, 224]}, {"55063543": [8]}, {"55063548": [141, 173, 138, 160, 52, 2, 128]}, {"55063556": [16, 77]}, {"55063559": [2]}, {"55063564": [16]}, {"55063567": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063583": [1, 16, 64]}, {"55063587": [2]}, {"55063592": [16]}, {"55063595": [2, 52, 2]}, {"55063599": [1, 161, 226, 28, 191, 3, 224]}, {"55063607": [8]}, {"55063613": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063627": [164]}, {"55063629": [15, 122, 3, 20, 64]}, {"55063635": [5, 52, 2, 72, 48, 21, 226]}, {"55063643": [7]}, {"55063648": [36, 25]}, {"55063651": [3, 16]}, {"55063655": [4, 52, 2, 99, 17, 21, 226]}, {"55063663": [2]}, {"55063668": [36, 25]}, {"55063671": [3, 3, 224]}, {"55063675": [8]}, {"55063680": [162, 37]}, {"55063683": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063695": [4, 142, 10]}, {"55063700": [17, 64]}, {"55063703": [11]}, {"55063709": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063721": [24, 194, 2, 23]}, {"55063727": [3, 49, 89]}, {"55063731": [255, 129, 234]}, {"55063736": [3, 42, 200, 37, 8, 16, 13, 35, 161, 249]}, {"55063748": [3, 224]}, {"55063751": [8]}] \ No newline at end of file diff --git a/version.py b/version.py index 6ba451bf2..29d0bd68b 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.35 f.LUM' \ No newline at end of file +__version__ = '2.13.36 f.LUM' \ No newline at end of file From c0e5aea436cd176da16c3799676c46c1298f4aa8 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Mon, 30 Jul 2018 13:55:58 -0400 Subject: [PATCH 216/755] Add missing injection reverts when not shuffling songs --- Rom.py | 38 +++++++++++++++++++------------------- version.py | 2 +- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/Rom.py b/Rom.py index 5556b69d7..80aa10b3c 100644 --- a/Rom.py +++ b/Rom.py @@ -353,12 +353,6 @@ def patch_rom(world, rom): rom.write_int16s(None, [0x0018, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 rom.write_int16s(None, [0x00D3, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 - if not world.shuffle_song_items: - # revert sun song item override injection - rom.write_int32s(0xE09F64, [0x8DCE8C2C, 0x8C6F00A4]) - rom.write_int32s(0xE09FB0, [0x240F0001]) - - # Speed learning Saria's Song if world.shuffle_song_items: rom.write_int32(0x020B1734, 0xFFFFFFFF) # Header: frame_count @@ -390,16 +384,6 @@ def patch_rom(world, rom): rom.write_int16s(None, [0x00D2, 0x0000, 0x0009, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 rom.write_int16s(None, [0xFFFF, 0x000A, 0x003C, 0xFFFF, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 - if not world.shuffle_song_items: - # Revert song learning skip ASM - rom.write_int32(0xD7E77C, 0x8C4900A4) - rom.write_int32(0xD7E784, 0x8D088C24) - rom.write_int32s(0xD7E8D4, [0x8DCE8C24, 0x8C4F00A4]) - rom.write_int32s(0xD7E140, [0x8DCE8C24, 0x8C6F00A4]) - rom.write_int32(0xD7EBBC, 0x14410008) # bne v0,at,loc_0x00000408 - rom.write_int32(0xD7EC1C, 0x17010010) # bne t8,at,loc_0x00000488 - - # Speed learning Song of Time rom.write_int32s(0x0252FB98, [0x000003E8, 0x00000001]) # Terminator Execution if world.shuffle_song_items: @@ -416,9 +400,6 @@ def patch_rom(world, rom): rom.write_int32(0x01FC3B84, 0xFFFFFFFF) # Other Header?: frame_count - if not world.shuffle_song_items: - rom.write_int32(0xDB532C, 0x24050003) - # Speed learning Song of Storms if world.shuffle_song_items: rom.write_int32(0x03041084, 0xFFFFFFFF) # Header: frame_count @@ -1182,8 +1163,27 @@ def write_save_table(rom): # Revert Song Get Override Injection if not world.shuffle_song_items: + # general get song rom.write_int32s(0xAE5DE0, [0x00077080, 0x3C0D8010, 0x2508A5D0]) + # requiem of spirit rom.write_int32s(0xAC9ABC, [0x3C010001, 0x00300821]) + # sun song + rom.write_int32s(0xE09F64, [0x8DCE8C2C, 0x8C6F00A4]) + rom.write_int32s(0xE09FB0, [0x240F0001]) + # epona + rom.write_int32(0xD7E77C, 0x8C4900A4) + rom.write_int32(0xD7E784, 0x8D088C24) + rom.write_int32s(0xD7E8D4, [0x8DCE8C24, 0x8C4F00A4]) + rom.write_int32s(0xD7E140, [0x8DCE8C24, 0x8C6F00A4]) + rom.write_int32(0xD7EBBC, 0x14410008) + rom.write_int32(0xD7EC1C, 0x17010010) + # song of time + rom.write_int32(0xDB532C, 0x24050003) + # zelda's lullaby + rom.write_int32(0xB063FC, [0x8DCE8C20, 0x8E0F00A4]) + # saria's song + rom.write_int32(0xE29380, [0x8D8C8C28, 0x8C6D00A4, 0x24030005, 0x018D7024]) + rom.write_int32(0xE293A4, 0x00601025) # Set Default targeting option to Hold if world.default_targeting == 'hold': diff --git a/version.py b/version.py index 29d0bd68b..32eaac29c 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.36 f.LUM' \ No newline at end of file +__version__ = '2.13.37 f.LUM' \ No newline at end of file From 03c7fb1414b32aa47c8cda960c12e4f042af721d Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Mon, 30 Jul 2018 18:12:47 -0400 Subject: [PATCH 217/755] Fix VC support for song shuffle --- ASM/src/cutscenes.asm | 12 +++++------ ASM/src/hacks.asm | 46 ++++++++++++++++++++++-------------------- Rom.py | 13 +++++++----- data/base2current.json | 2 +- version.py | 2 +- 5 files changed, 40 insertions(+), 35 deletions(-) diff --git a/ASM/src/cutscenes.asm b/ASM/src/cutscenes.asm index 6d310fb25..1f2649f9f 100644 --- a/ASM/src/cutscenes.asm +++ b/ASM/src/cutscenes.asm @@ -135,10 +135,10 @@ store_pending_spedial_item: nop override_saria_song_check: - move t7, v1 - lb t4, 0x0EDF(t7) - ori t8, t4, 0x80 - andi t6, t4, 0x80 - li v1, 5 - jr ra + move t7, v1 + lbu t4, 0x0EDF(t7) + ori t8, t4, 0x80 + andi t6, t4, 0x80 + li v1, 5 + j return_saria_song_check nop \ No newline at end of file diff --git a/ASM/src/hacks.asm b/ASM/src/hacks.asm index eb106a1ba..3bbe19a1c 100755 --- a/ASM/src/hacks.asm +++ b/ASM/src/hacks.asm @@ -324,17 +324,14 @@ jal override_fairy_ocarina_cutscene addu t8,t0,t7 -; Replaces -;sll t6,a3,0x2 -;lui t5,0x8010 -;addiu t0,t0,-23088 ; a3 = item ID -.org 0xAE5DE0 +; Replaces +; lw $t9, 0xa4($t0) +.org 0xAE5DF4 jal override_ocarina_songs - li v0,0xFF - b item_action_return -.org 0xAE7370 -item_action_return: +; sw $t9, 0xa4($t0) +.org 0xAE5E04 + nop ; Replaces ;lui at,0x1 @@ -343,30 +340,35 @@ item_action_return: jal override_requiem_song nop -;lw $t6, -0x73d4($t6) ;lw $t7, 0xa4($v1) -.org 0xE09F64 - li t6,0x04 +;lui $v0, 0x200 +;addiu $v0, $v0, 0x24a0 +;and $t8, $t6, $t7 +.org 0xE09F68 lb t7,0x0EDE(v1) ; check learned song from sun's song +.skip 4 +.skip 4 + andi t8, t7, 0x04 ;addiu $t7, $zero, 1 .org 0xE09FB0 jal override_suns_song -;lw $t6, -0x73e0($t6) -;lw $t7, 0xa4($s0) -.org 0xB063FC - li t6,0x02 +; lw $t7, 0xa4($s0) +; lui $t3, 0x8010 +; addiu $t3, $t3, -0x70cc +; and $t8, $t6, $t7 +.org 0xB06400 lb t7,0x0EDE(s0) ; check learned song from ZL +.skip 4 +.skip 4 + andi t8, t7, 0x02 -;lw $t4, -0x73d8($t4) -;lw $t5, 0xa4($v1) ;addiu $v1, $zero, 5 ;and $t6, $t4, $t5 -.org 0xE29380 - move t5, ra - jal override_saria_song_check +.org 0xE29388 + j override_saria_song_check li v0, 5 - move ra, t5 +return_saria_song_check: ;move $v0, $v1 .org 0xE293A4 sb t8, 0x0EDF(t7) diff --git a/Rom.py b/Rom.py index 80aa10b3c..179ebb383 100644 --- a/Rom.py +++ b/Rom.py @@ -1164,12 +1164,14 @@ def write_save_table(rom): # Revert Song Get Override Injection if not world.shuffle_song_items: # general get song - rom.write_int32s(0xAE5DE0, [0x00077080, 0x3C0D8010, 0x2508A5D0]) + rom.write_int32(0xAE5DF4, 0x8D1900A4) + rom.write_int32(0xAE5E04, 0xAD0F00A4) # requiem of spirit rom.write_int32s(0xAC9ABC, [0x3C010001, 0x00300821]) # sun song - rom.write_int32s(0xE09F64, [0x8DCE8C2C, 0x8C6F00A4]) - rom.write_int32s(0xE09FB0, [0x240F0001]) + rom.write_int32(0xE09F68, 0x8C6F00A4) + rom.write_int32(0xE09F74, 0x01CFC024) + rom.write_int32(0xE09FB0, 0x240F0001) # epona rom.write_int32(0xD7E77C, 0x8C4900A4) rom.write_int32(0xD7E784, 0x8D088C24) @@ -1180,9 +1182,10 @@ def write_save_table(rom): # song of time rom.write_int32(0xDB532C, 0x24050003) # zelda's lullaby - rom.write_int32(0xB063FC, [0x8DCE8C20, 0x8E0F00A4]) + rom.write_int32(0xB06400, 0x8E0F00A4) + rom.write_int32(0xB0640C, 0x01CFC024) # saria's song - rom.write_int32(0xE29380, [0x8D8C8C28, 0x8C6D00A4, 0x24030005, 0x018D7024]) + rom.write_int32s(0xE29388, [0x24030005, 0x018D7024]) rom.write_int32(0xE293A4, 0x00601025) # Set Default targeting option to Hold diff --git a/data/base2current.json b/data/base2current.json index c40d6d2cd..b53c90e9e 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -1 +1 @@ -[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 192]}, {"11311804": [12, 16, 11, 200]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 186, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 86]}, {"11427296": [12, 16, 11, 196, 52, 2, 0, 255, 16, 0, 5, 97]}, {"11427312": [12, 16, 12, 255]}, {"11431496": [12, 16, 11, 191, 1, 15, 192, 33]}, {"11559932": [52, 14, 0, 2, 130]}, {"11559938": [14, 222]}, {"11562028": [12, 16, 13]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 15]}, {"11882076": [12, 16, 12, 236]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 53, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 60, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 67, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 46, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 136]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 18]}, {"12427480": [12, 16, 10, 102]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 106]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 11, 249, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 148]}, {"12491480": [12, 16, 10, 157]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 143]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 74]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 128, 73, 14, 222]}, {"14149508": [52]}, {"14149510": [0, 1, 2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 203]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 219]}, {"14624335": [118]}, {"14720868": [52, 14, 0, 4, 128]}, {"14720874": [14, 222]}, {"14720944": [12, 16, 11, 211]}, {"14848896": [3, 224, 104, 33, 12, 16, 11, 242, 52, 2]}, {"14848909": [160, 248, 33]}, {"14848932": [161, 248, 14, 223]}, {"14872723": [52]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 236, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 48, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 76, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 104, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 220, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 108, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 140, 128, 64, 38, 132, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 172, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 39, 212, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 28, 128, 64, 40]}, {"55059600": [83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 3, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 44, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [2, 52, 2]}, {"55060003": [69, 52, 2]}, {"55060007": [70, 3, 224]}, {"55060011": [8]}, {"55060016": [144, 136]}, {"55060019": [162, 49, 8]}, {"55060023": [6, 17]}, {"55060027": [2, 52, 2]}, {"55060031": [55, 52, 2]}, {"55060035": [56, 3, 224]}, {"55060039": [8]}, {"55060044": [144, 136]}, {"55060047": [161, 49, 8]}, {"55060051": [32, 17]}, {"55060055": [2, 52, 2]}, {"55060059": [121, 52, 2]}, {"55060063": [122, 3, 224]}, {"55060067": [8]}, {"55060072": [144, 136]}, {"55060075": [161, 49, 8]}, {"55060079": [4, 17]}, {"55060083": [2, 52, 2]}, {"55060087": [119, 52, 2]}, {"55060091": [120, 3, 224]}, {"55060095": [8]}, {"55060100": [144, 136]}, {"55060103": [50, 17]}, {"55060107": [2, 52, 2]}, {"55060111": [192, 52, 2]}, {"55060115": [193, 3, 224]}, {"55060119": [8]}, {"55060124": [144, 136]}, {"55060127": [163, 49, 8]}, {"55060131": [3, 17]}, {"55060135": [2, 52, 2]}, {"55060139": [77, 52, 162]}, {"55060144": [3, 224]}, {"55060147": [8]}, {"55060152": [144, 136]}, {"55060155": [163, 49, 8]}, {"55060159": [24, 17]}, {"55060163": [2, 52, 2]}, {"55060167": [77, 52, 162]}, {"55060172": [3, 224]}, {"55060175": [8]}, {"55060180": [3, 224]}, {"55060183": [8]}, {"55060188": [52, 8]}, {"55060191": [1, 160, 136]}, {"55060195": [62, 3, 224]}, {"55060199": [8]}, {"55060204": [36, 136]}, {"55060207": [134, 36, 9, 255, 255, 37, 41]}, {"55060215": [1, 52, 1]}, {"55060219": [3]}, {"55060221": [41, 8, 42, 20, 32]}, {"55060227": [7]}, {"55060232": [1, 9, 80, 33, 145, 75]}, {"55060240": [52, 1]}, {"55060243": [255, 21, 97, 255, 247]}, {"55060252": [161, 69]}, {"55060256": [3, 224]}, {"55060259": [8]}, {"55060264": [36, 136]}, {"55060267": [168, 1, 6, 64, 33, 145, 9]}, {"55060276": [1, 37, 72, 37, 161, 9]}, {"55060284": [3, 224]}, {"55060287": [8]}, {"55060292": [36, 136]}, {"55060295": [188, 1, 5, 64, 33, 129, 9]}, {"55060304": [5, 33]}, {"55060307": [2]}, {"55060312": [52, 9]}, {"55060316": [37, 41]}, {"55060319": [1, 161, 9]}, {"55060324": [3, 224]}, {"55060327": [8]}, {"55060332": [52, 8]}, {"55060335": [1, 160, 136]}, {"55060339": [61, 52, 8]}, {"55060343": [20, 160, 136]}, {"55060347": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [50, 160, 136]}, {"55060375": [58, 52, 8]}, {"55060379": [48, 164, 136, 19, 244, 160, 136]}, {"55060387": [51, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [2, 160, 136]}, {"55060403": [50, 52, 8]}, {"55060407": [1, 160, 136]}, {"55060411": [58, 160, 136]}, {"55060415": [60, 52, 8]}, {"55060419": [96, 164, 136, 19, 244, 160, 136]}, {"55060427": [51, 3, 224]}, {"55060431": [8]}, {"55060436": [144, 136]}, {"55060439": [124, 52, 1]}, {"55060443": [255, 17, 1]}, {"55060447": [6, 52, 2]}, {"55060451": [107, 144, 136]}, {"55060455": [148, 45, 8]}, {"55060459": [6, 17]}, {"55060463": [2, 52, 2]}, {"55060467": [106, 52, 2]}, {"55060471": [3, 3, 224]}, {"55060475": [8]}, {"55060480": [144, 136]}, {"55060483": [123, 52, 1]}, {"55060487": [255, 17, 1]}, {"55060491": [2, 52, 162]}, {"55060496": [52, 2]}, {"55060499": [12, 3, 224]}, {"55060503": [8]}, {"55060508": [52, 8]}, {"55060511": [7, 160, 136]}, {"55060515": [123, 3, 224]}, {"55060519": [8]}, {"55060524": [52, 8]}, {"55060527": [1]}, {"55060529": [168, 64, 4, 140, 137]}, {"55060535": [164, 1, 40, 72, 37, 172, 137]}, {"55060543": [164, 3, 224]}, {"55060547": [8]}, {"55060552": [48, 132]}, {"55060555": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060567": [140, 16, 129]}, {"55060571": [22, 145, 2]}, {"55060575": [117, 52, 1]}, {"55060579": [141, 16, 129]}, {"55060583": [19, 145, 2]}, {"55060587": [117, 16, 128]}, {"55060591": [17, 145, 2]}, {"55060595": [116, 52, 1]}, {"55060599": [138, 16, 129]}, {"55060603": [14, 145, 2]}, {"55060607": [116, 52, 1]}, {"55060611": [139, 16, 129]}, {"55060615": [11, 145, 2]}, {"55060619": [116, 52, 1]}, {"55060623": [88, 16, 129]}, {"55060627": [8, 52, 2]}, {"55060632": [52, 1]}, {"55060635": [120, 16, 129]}, {"55060639": [5, 52, 2]}, {"55060644": [52, 1]}, {"55060647": [121, 16, 129]}, {"55060651": [2, 52, 2]}, {"55060656": [52, 2]}, {"55060659": [255, 3, 224]}, {"55060663": [8]}, {"55060668": [39, 189, 255, 224, 175, 191]}, {"55060675": [16, 175, 176]}, {"55060679": [20, 12, 16, 11, 7]}, {"55060688": [4, 65]}, {"55060691": [2]}, {"55060696": [52, 2]}, {"55060699": [91]}, {"55060701": [64, 32, 33, 12, 16, 11, 110]}, {"55060712": [16, 96]}, {"55060715": [18, 175, 163]}, {"55060719": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060728": [133, 9]}, {"55060731": [2, 17, 32]}, {"55060735": [3, 52, 10]}, {"55060739": [1, 16]}, {"55060743": [8, 165, 10]}, {"55060748": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060759": [6, 144, 102]}, {"55060763": [7, 140, 105]}, {"55060767": [8, 1, 32, 248, 9]}, {"55060776": [143, 163]}, {"55060779": [28, 144, 101]}, {"55060783": [3, 16]}, {"55060787": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060799": [6]}, {"55060801": [74]}, {"55060803": [24]}, {"55060806": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060816": [60, 8, 128, 64, 37, 8, 32]}, {"55060824": [133, 9]}, {"55060827": [2, 17, 32]}, {"55060831": [3, 52, 10]}, {"55060835": [1, 165, 10]}, {"55060840": [52, 5]}, {"55060843": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060855": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060866": [48, 33, 143, 191]}, {"55060871": [16, 143, 176]}, {"55060875": [20, 39, 189]}, {"55060879": [32, 3, 224]}, {"55060883": [8]}, {"55060888": [143, 166]}, {"55060891": [48, 132, 197]}, {"55060895": [4, 8, 16, 10, 110]}, {"55060904": [143, 185]}, {"55060907": [44, 135, 37]}, {"55060911": [4, 8, 16, 10, 110]}, {"55060920": [60, 10, 128, 64, 37, 74, 32, 8, 141, 75]}, {"55060931": [12, 17, 96]}, {"55060935": [2]}, {"55060940": [149, 69]}, {"55060943": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060956": [60, 9, 128, 64, 37, 41, 32, 24, 129, 42]}, {"55060967": [3, 5, 64]}, {"55060971": [11, 1, 42, 72, 32, 129, 40]}, {"55060980": [52, 10]}, {"55060983": [127, 21, 10]}, {"55060987": [6]}, {"55060992": [60, 10, 128, 18, 37, 74, 165, 208, 133, 72]}, {"55061003": [144, 33, 8]}, {"55061007": [1, 165, 72]}, {"55061011": [144, 161, 32]}, {"55061016": [3, 224]}, {"55061019": [8]}, {"55061024": [60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061035": [12, 17, 32]}, {"55061039": [2]}, {"55061044": [129, 3]}, {"55061047": [2]}, {"55061049": [3, 15, 195]}, {"55061053": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061067": [8]}, {"55061072": [144, 69]}, {"55061075": [3, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061087": [12, 17, 32]}, {"55061091": [2]}, {"55061096": [145, 5]}, {"55061099": [3, 3, 224]}, {"55061103": [8]}, {"55061108": [143, 162]}, {"55061111": [36, 144, 69]}, {"55061116": [60, 8, 128, 64, 37, 8, 32]}, {"55061124": [133, 9]}, {"55061127": [2, 17, 32]}, {"55061131": [4, 52, 10]}, {"55061135": [1, 165, 10]}, {"55061140": [16]}, {"55061143": [24, 52, 5]}, {"55061147": [65, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061159": [12, 17, 32]}, {"55061163": [19]}, {"55061168": [145, 5]}, {"55061171": [1, 175, 164]}, {"55061176": [175, 165]}, {"55061179": [4, 175, 166]}, {"55061183": [8, 39, 189, 255, 232, 175, 191]}, {"55061191": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061203": [6, 145, 6]}, {"55061207": [7, 141, 9]}, {"55061211": [8, 1, 32, 248, 9]}, {"55061220": [143, 191]}, {"55061223": [16, 39, 189]}, {"55061227": [24, 143, 164]}, {"55061232": [143, 165]}, {"55061235": [4, 143, 166]}, {"55061239": [8, 3, 224]}, {"55061243": [8]}, {"55061248": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061259": [16, 175, 163]}, {"55061263": [20, 175, 191]}, {"55061267": [24, 12, 16, 10, 205]}, {"55061276": [143, 162]}, {"55061279": [16, 143, 163]}, {"55061283": [20, 143, 191]}, {"55061287": [24, 39, 189]}, {"55061291": [32, 3, 224]}, {"55061295": [8]}, {"55061300": [39, 189, 255, 232, 175, 191]}, {"55061307": [16, 60, 8, 128, 64, 37, 8, 32, 8, 173]}, {"55061320": [173]}, {"55061323": [4, 173]}, {"55061327": [8, 173]}, {"55061331": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061347": [42]}, {"55061353": [9, 15, 195, 1, 33, 32, 38]}, {"55061361": [129, 32, 35, 141, 5, 4, 40, 12, 16, 11, 7]}, {"55061376": [4, 64]}, {"55061379": [34]}, {"55061384": [52, 68]}, {"55061388": [12, 16, 11, 110]}, {"55061396": [16, 96]}, {"55061399": [12]}, {"55061404": [60, 8, 128, 64, 37, 8, 32, 8, 140, 105]}, {"55061416": [173, 9]}, {"55061420": [140, 105]}, {"55061423": [4, 173, 9]}, {"55061427": [4, 140, 105]}, {"55061431": [8, 173, 9]}, {"55061435": [8, 52, 9]}, {"55061439": [1, 173, 9]}, {"55061443": [12, 144, 98]}, {"55061448": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061464": [52, 1]}, {"55061467": [10, 21, 65]}, {"55061471": [6]}, {"55061476": [149, 42]}, {"55061479": [28, 49, 74, 240, 31]}, {"55061485": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061495": [28, 129, 9, 4, 36, 5, 33]}, {"55061503": [2]}, {"55061509": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061519": [16, 39, 189]}, {"55061523": [24, 3, 224]}, {"55061527": [8]}, {"55061532": [39, 189, 255, 232, 175, 191]}, {"55061539": [16, 12, 16, 11, 21]}, {"55061548": [36, 1, 255, 255, 16, 65]}, {"55061555": [4]}, {"55061560": [52, 68]}, {"55061564": [12, 16, 11, 73]}, {"55061572": [143, 191]}, {"55061575": [16, 39, 189]}, {"55061579": [24, 3, 224]}, {"55061583": [8]}, {"55061588": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061599": [164, 52, 8]}, {"55061604": [52, 137]}, {"55061608": [148, 170]}, {"55061612": [52, 1, 1, 156, 21, 65]}, {"55061619": [8]}, {"55061624": [52, 8]}, {"55061627": [3, 148, 171]}, {"55061631": [28, 49, 105]}, {"55061635": [255, 49, 98, 31]}, {"55061641": [2, 18, 2, 16]}, {"55061647": [31]}, {"55061652": [52, 1]}, {"55061655": [10, 21, 65]}, {"55061659": [14]}, {"55061664": [148, 171]}, {"55061667": [28, 52, 1]}, {"55061671": [16, 20, 65]}, {"55061675": [8]}, {"55061680": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061691": [4]}, {"55061696": [36, 2, 255, 255, 16]}, {"55061703": [21]}, {"55061708": [52, 8]}, {"55061711": [1, 49, 105]}, {"55061715": [31, 52, 1]}, {"55061719": [21, 21, 65]}, {"55061723": [12]}, {"55061728": [52, 1]}, {"55061731": [62, 16, 129]}, {"55061735": [7]}, {"55061740": [52, 1]}, {"55061743": [66, 16, 129]}, {"55061747": [4]}, {"55061752": [36, 2, 255, 255, 16]}, {"55061759": [7]}, {"55061764": [52, 8]}, {"55061767": [2, 144, 169, 1, 65]}, {"55061773": [2, 18]}, {"55061777": [72, 16, 37]}, {"55061781": [2, 18]}, {"55061785": [73, 16, 37, 3, 224]}, {"55061791": [8]}, {"55061796": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061808": [129, 9]}, {"55061812": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061835": [4, 141, 9]}, {"55061840": [17, 32]}, {"55061843": [23]}, {"55061849": [9, 82, 2, 49, 75, 248]}, {"55061857": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061880": [49, 34]}, {"55061883": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061904": [60, 12, 128, 64, 37, 140, 28]}, {"55061912": [129, 140]}, {"55061916": [17, 108]}, {"55061919": [4, 165, 32]}, {"55061923": [2, 161, 43]}, {"55061927": [2, 161, 34]}, {"55061931": [3, 173, 36]}, {"55061935": [4, 3, 224]}, {"55061939": [8]}, {"55061944": [39, 189, 255, 224, 175, 176]}, {"55061951": [16, 175, 177]}, {"55061955": [20, 175, 191]}, {"55061959": [24, 52, 130]}, {"55061964": [52, 80]}, {"55061968": [38, 8, 255, 128, 5]}, {"55061975": [18]}, {"55061980": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55061991": [16, 1, 9]}, {"55061995": [24]}, {"55061998": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55062016": [142, 40]}, {"55062019": [12, 1]}, {"55062022": [248, 9]}, {"55062028": [20, 80, 255, 239]}, {"55062036": [54, 35]}, {"55062040": [16]}, {"55062043": [2]}, {"55062048": [52, 3]}, {"55062052": [143, 176]}, {"55062055": [16, 143, 177]}, {"55062059": [20, 143, 191]}, {"55062063": [24, 39, 189]}, {"55062067": [32, 3, 224]}, {"55062071": [8]}, {"55062076": [140, 136, 29, 44, 52, 9]}, {"55062083": [1]}, {"55062085": [9, 78]}, {"55062088": [1, 9, 16, 36, 16, 64]}, {"55062095": [36]}, {"55062100": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062115": [164, 52, 1]}, {"55062119": [61, 17, 129]}, {"55062123": [10]}, {"55062129": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062139": [25]}, {"55062144": [52, 13]}, {"55062147": [1, 161, 141, 29, 40, 37, 74]}, {"55062155": [3, 16]}, {"55062159": [9]}, {"55062164": [52, 12]}, {"55062167": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062183": [14]}, {"55062188": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062224": [60, 9, 128, 64, 37, 41, 32, 24, 161, 40]}, {"55062236": [52, 2]}, {"55062240": [3, 224]}, {"55062243": [8]}, {"55062248": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062260": [16]}, {"55062263": [33]}, {"55062268": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062280": [16]}, {"55062283": [28]}, {"55062288": [32, 232, 255, 166, 33, 8]}, {"55062295": [97, 16]}, {"55062299": [24]}, {"55062304": [52, 8]}, {"55062307": [100, 16]}, {"55062311": [21]}, {"55062316": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062331": [1, 160, 40, 14, 222, 52, 8]}, {"55062339": [104, 16]}, {"55062343": [13]}, {"55062348": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062363": [4, 160, 40, 14, 222, 52, 8]}, {"55062371": [106, 16]}, {"55062375": [5]}, {"55062380": [52, 5]}, {"55062383": [3, 52, 8]}, {"55062387": [107, 16]}, {"55062391": [1]}, {"55062396": [60, 9, 128, 64, 37, 41, 32, 24, 60, 10, 128, 64, 37, 74, 32, 27, 129, 44]}, {"55062416": [17, 136]}, {"55062419": [11, 33, 41]}, {"55062423": [1, 21, 42, 255, 252]}, {"55062432": [60, 9, 128, 64, 37, 41, 32, 23, 33, 41]}, {"55062443": [1, 17, 42]}, {"55062447": [4, 129, 44]}, {"55062452": [21, 128, 255, 252]}, {"55062460": [161, 40]}, {"55062464": [3, 224]}, {"55062467": [8]}, {"55062473": [96, 120, 33, 129, 236, 14, 223, 53, 152]}, {"55062483": [128, 49, 142]}, {"55062487": [128, 52, 3]}, {"55062491": [5, 3, 224]}, {"55062495": [8]}, {"55062500": [175, 164]}, {"55062503": [104, 175, 165]}, {"55062507": [108, 175, 166]}, {"55062511": [112, 175, 167]}, {"55062515": [116, 39, 189, 255, 232, 175, 163]}, {"55062523": [16, 175, 191]}, {"55062527": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062543": [32, 21]}, {"55062547": [31]}, {"55062552": [60, 9, 128, 64, 37, 41, 32, 27, 52, 10]}, {"55062563": [255, 161, 42]}, {"55062568": [60, 9, 128, 64, 37, 41, 32, 24, 36, 10, 255, 255, 52, 12]}, {"55062583": [3, 33, 74]}, {"55062587": [1, 17, 76]}, {"55062591": [20, 1, 42, 88, 32, 129, 104]}, {"55062600": [17]}, {"55062602": [255, 251]}, {"55062608": [60, 9, 128, 64, 37, 41, 32, 27, 161, 42]}, {"55062620": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062631": [1, 165, 42]}, {"55062636": [60, 9, 128, 65, 52, 10]}, {"55062643": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 205]}, {"55062672": [143, 163]}, {"55062675": [16, 143, 191]}, {"55062679": [20, 39, 189]}, {"55062683": [24, 143, 164]}, {"55062687": [104, 143, 165]}, {"55062691": [108, 143, 166]}, {"55062695": [112, 143, 167]}, {"55062699": [116, 132, 110, 19, 196, 3, 224]}, {"55062707": [8]}, {"55062712": [147, 25]}, {"55062715": [116, 52, 1]}, {"55062719": [255, 23, 33]}, {"55062723": [2]}, {"55062728": [52, 25]}, {"55062731": [44, 3, 224]}, {"55062735": [8, 167, 185]}, {"55062739": [154, 147, 44]}, {"55062743": [116, 52, 1]}, {"55062747": [255, 21, 129]}, {"55062751": [2]}, {"55062756": [52, 12]}, {"55062759": [44, 3, 224]}, {"55062763": [8]}, {"55062768": [145, 174]}, {"55062771": [116, 52, 1]}, {"55062775": [255, 21, 193]}, {"55062779": [2]}, {"55062784": [52, 14]}, {"55062787": [44, 3, 224]}, {"55062791": [8, 167, 174]}, {"55062795": [154, 145, 207]}, {"55062799": [116, 52, 1]}, {"55062803": [255, 21, 225]}, {"55062807": [2]}, {"55062812": [52, 15]}, {"55062815": [44, 3, 224]}, {"55062819": [8, 167, 175]}, {"55062823": [154, 60, 8, 128, 64, 37, 8, 32, 28, 142, 9]}, {"55062835": [104, 173, 9]}, {"55062840": [142, 9]}, {"55062843": [108, 173, 9]}, {"55062847": [4, 150, 9]}, {"55062851": [112, 165, 9]}, {"55062855": [8, 150, 9]}, {"55062859": [156, 165, 9]}, {"55062863": [10, 3, 224]}, {"55062867": [8, 142, 14]}, {"55062871": [4, 39, 189, 255, 224, 175, 176]}, {"55062879": [16, 175, 177]}, {"55062883": [20, 175, 191]}, {"55062887": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 28, 142, 8]}, {"55062907": [4, 17]}, {"55062911": [5]}, {"55062916": [12, 16, 12, 128]}, {"55062924": [16]}, {"55062927": [3]}, {"55062932": [12, 16, 12, 147]}, {"55062940": [12, 16, 12, 115, 52, 4]}, {"55062948": [12, 16, 12, 115, 52, 4]}, {"55062955": [1, 12, 16, 12, 115, 52, 4]}, {"55062963": [2, 143, 176]}, {"55062967": [16, 143, 177]}, {"55062971": [20, 143, 191]}, {"55062975": [24, 39, 189]}, {"55062979": [32, 3, 224]}, {"55062983": [8]}, {"55062988": [2, 4, 64, 33, 145, 9]}, {"55062995": [108, 52, 1]}, {"55062999": [255, 17, 33]}, {"55063003": [7]}, {"55063008": [2, 9, 72, 33, 145, 41]}, {"55063015": [116, 52, 1]}, {"55063019": [44, 17, 33]}, {"55063023": [2]}, {"55063028": [161, 9]}, {"55063031": [105, 3, 224]}, {"55063035": [8]}, {"55063040": [39, 189, 255, 232, 175, 191]}, {"55063047": [16, 142, 40]}, {"55063052": [174, 8]}, {"55063055": [64, 142, 40]}, {"55063059": [4, 174, 8]}, {"55063063": [68, 150, 40]}, {"55063067": [8, 166, 8]}, {"55063071": [72, 162]}, {"55063074": [15, 51, 146, 8]}, {"55063079": [74, 52, 1]}, {"55063083": [255, 21, 1]}, {"55063087": [3]}, {"55063092": [12, 16, 12, 161]}, {"55063100": [143, 191]}, {"55063103": [16, 39, 189]}, {"55063107": [24, 3, 224]}, {"55063111": [8]}, {"55063116": [142, 8]}, {"55063119": [64, 174, 8]}, {"55063123": [104, 142, 8]}, {"55063127": [68, 174, 8]}, {"55063131": [108, 150, 8]}, {"55063135": [72, 166, 8]}, {"55063139": [112, 146, 8]}, {"55063143": [104, 52, 1]}, {"55063147": [255, 21, 1]}, {"55063151": [3]}, {"55063156": [52, 8]}, {"55063159": [1, 162, 8, 15, 51, 3, 224]}, {"55063167": [8]}, {"55063172": [39, 189, 255, 232, 175, 191]}, {"55063179": [16, 150, 8]}, {"55063183": [156, 49, 8]}, {"55063187": [64, 17]}, {"55063191": [5]}, {"55063196": [150, 8]}, {"55063199": [112, 49, 8, 255, 15, 53, 8]}, {"55063207": [48, 166, 8]}, {"55063211": [112, 146, 40]}, {"55063215": [1, 162, 8]}, {"55063219": [105, 150, 40]}, {"55063223": [2, 166, 8]}, {"55063227": [106, 142, 40]}, {"55063231": [4, 174, 8]}, {"55063235": [108, 12, 16, 12, 187, 52, 4]}, {"55063244": [12, 16, 12, 187, 52, 4]}, {"55063251": [1, 12, 16, 12, 187, 52, 4]}, {"55063259": [2, 143, 191]}, {"55063263": [16, 39, 189]}, {"55063267": [24, 3, 224]}, {"55063271": [8]}, {"55063276": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 51, 152, 145, 10]}, {"55063291": [108, 52, 1]}, {"55063295": [255, 17, 65]}, {"55063299": [5]}, {"55063304": [1, 42, 72, 33, 145, 41]}, {"55063312": [21, 32]}, {"55063315": [28]}, {"55063320": [60, 9, 128, 64, 37, 41, 51, 139, 37, 41]}, {"55063331": [1, 145, 42]}, {"55063336": [17, 64]}, {"55063339": [19]}, {"55063344": [2, 10, 88, 33, 145, 107]}, {"55063351": [116, 52, 1]}, {"55063355": [255, 17, 97, 255, 248]}, {"55063364": [146, 12]}, {"55063367": [108, 17, 138, 255, 245]}, {"55063376": [146, 12]}, {"55063379": [109, 17, 138, 255, 242]}, {"55063388": [146, 12]}, {"55063391": [110, 17, 138, 255, 239]}, {"55063400": [161, 11]}, {"55063403": [105, 161, 10]}, {"55063407": [108, 16]}, {"55063411": [4]}, {"55063416": [52, 9]}, {"55063419": [255, 161, 9]}, {"55063423": [105, 161, 9]}, {"55063427": [108, 3, 224]}, {"55063431": [8]}, {"55063436": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063449": [1, 1, 1, 1, 1]}, {"55063455": [1, 1, 1, 1, 1]}, {"55063461": [1]}, {"55063463": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063473": [51, 8, 33, 32, 15]}, {"55063479": [71, 21, 234]}, {"55063483": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063495": [164]}, {"55063497": [15, 122, 3, 20, 64]}, {"55063503": [5, 52, 2, 72, 48, 21, 226]}, {"55063511": [7]}, {"55063516": [36, 25]}, {"55063519": [3, 16]}, {"55063523": [4, 52, 2, 99, 17, 21, 226]}, {"55063531": [2]}, {"55063536": [36, 25]}, {"55063539": [3, 3, 224]}, {"55063543": [8]}, {"55063548": [141, 173, 138, 160, 52, 2, 128]}, {"55063556": [16, 77]}, {"55063559": [2]}, {"55063564": [16]}, {"55063567": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063583": [1, 16, 64]}, {"55063587": [2]}, {"55063592": [16]}, {"55063595": [2, 52, 2]}, {"55063599": [1, 161, 226, 28, 191, 3, 224]}, {"55063607": [8]}, {"55063613": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063627": [164]}, {"55063629": [15, 122, 3, 20, 64]}, {"55063635": [5, 52, 2, 72, 48, 21, 226]}, {"55063643": [7]}, {"55063648": [36, 25]}, {"55063651": [3, 16]}, {"55063655": [4, 52, 2, 99, 17, 21, 226]}, {"55063663": [2]}, {"55063668": [36, 25]}, {"55063671": [3, 3, 224]}, {"55063675": [8]}, {"55063680": [162, 37]}, {"55063683": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063695": [4, 142, 10]}, {"55063700": [17, 64]}, {"55063703": [11]}, {"55063709": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063721": [24, 194, 2, 23]}, {"55063727": [3, 49, 89]}, {"55063731": [255, 129, 234]}, {"55063736": [3, 42, 200, 37, 8, 16, 13, 35, 161, 249]}, {"55063748": [3, 224]}, {"55063751": [8]}] \ No newline at end of file +[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 192]}, {"11311804": [12, 16, 11, 200]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 186, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 86]}, {"11427312": [12, 16, 12, 255, 12, 16, 11, 196]}, {"11427332": [0, 0]}, {"11427335": [0]}, {"11431496": [12, 16, 11, 191, 1, 15, 192, 33]}, {"11559936": [130]}, {"11559938": [14, 222]}, {"11559948": [49, 248, 0, 2]}, {"11562028": [12, 16, 13]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 15]}, {"11882076": [12, 16, 12, 236]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 53, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 60, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 67, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 46, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 136]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 18]}, {"12427480": [12, 16, 10, 102]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 106]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 11, 249, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 148]}, {"12491480": [12, 16, 10, 157]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 143]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 74]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 128, 73, 14, 222]}, {"14149508": [52]}, {"14149510": [0, 1, 2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 203]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 219]}, {"14624335": [118]}, {"14720872": [128]}, {"14720874": [14, 222]}, {"14720884": [49, 248, 0, 4]}, {"14720944": [12, 16, 11, 211]}, {"14848904": [8, 16, 11, 242, 52, 2, 0, 5]}, {"14848932": [161, 248, 14, 223]}, {"14872723": [52]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 236, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 48, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 76, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 104, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 220, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 108, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 140, 128, 64, 38, 132, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 172, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 39, 212, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 28, 128, 64, 40]}, {"55059600": [83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 3, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 44, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [2, 52, 2]}, {"55060003": [69, 52, 2]}, {"55060007": [70, 3, 224]}, {"55060011": [8]}, {"55060016": [144, 136]}, {"55060019": [162, 49, 8]}, {"55060023": [6, 17]}, {"55060027": [2, 52, 2]}, {"55060031": [55, 52, 2]}, {"55060035": [56, 3, 224]}, {"55060039": [8]}, {"55060044": [144, 136]}, {"55060047": [161, 49, 8]}, {"55060051": [32, 17]}, {"55060055": [2, 52, 2]}, {"55060059": [121, 52, 2]}, {"55060063": [122, 3, 224]}, {"55060067": [8]}, {"55060072": [144, 136]}, {"55060075": [161, 49, 8]}, {"55060079": [4, 17]}, {"55060083": [2, 52, 2]}, {"55060087": [119, 52, 2]}, {"55060091": [120, 3, 224]}, {"55060095": [8]}, {"55060100": [144, 136]}, {"55060103": [50, 17]}, {"55060107": [2, 52, 2]}, {"55060111": [192, 52, 2]}, {"55060115": [193, 3, 224]}, {"55060119": [8]}, {"55060124": [144, 136]}, {"55060127": [163, 49, 8]}, {"55060131": [3, 17]}, {"55060135": [2, 52, 2]}, {"55060139": [77, 52, 162]}, {"55060144": [3, 224]}, {"55060147": [8]}, {"55060152": [144, 136]}, {"55060155": [163, 49, 8]}, {"55060159": [24, 17]}, {"55060163": [2, 52, 2]}, {"55060167": [77, 52, 162]}, {"55060172": [3, 224]}, {"55060175": [8]}, {"55060180": [3, 224]}, {"55060183": [8]}, {"55060188": [52, 8]}, {"55060191": [1, 160, 136]}, {"55060195": [62, 3, 224]}, {"55060199": [8]}, {"55060204": [36, 136]}, {"55060207": [134, 36, 9, 255, 255, 37, 41]}, {"55060215": [1, 52, 1]}, {"55060219": [3]}, {"55060221": [41, 8, 42, 20, 32]}, {"55060227": [7]}, {"55060232": [1, 9, 80, 33, 145, 75]}, {"55060240": [52, 1]}, {"55060243": [255, 21, 97, 255, 247]}, {"55060252": [161, 69]}, {"55060256": [3, 224]}, {"55060259": [8]}, {"55060264": [36, 136]}, {"55060267": [168, 1, 6, 64, 33, 145, 9]}, {"55060276": [1, 37, 72, 37, 161, 9]}, {"55060284": [3, 224]}, {"55060287": [8]}, {"55060292": [36, 136]}, {"55060295": [188, 1, 5, 64, 33, 129, 9]}, {"55060304": [5, 33]}, {"55060307": [2]}, {"55060312": [52, 9]}, {"55060316": [37, 41]}, {"55060319": [1, 161, 9]}, {"55060324": [3, 224]}, {"55060327": [8]}, {"55060332": [52, 8]}, {"55060335": [1, 160, 136]}, {"55060339": [61, 52, 8]}, {"55060343": [20, 160, 136]}, {"55060347": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [50, 160, 136]}, {"55060375": [58, 52, 8]}, {"55060379": [48, 164, 136, 19, 244, 160, 136]}, {"55060387": [51, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [2, 160, 136]}, {"55060403": [50, 52, 8]}, {"55060407": [1, 160, 136]}, {"55060411": [58, 160, 136]}, {"55060415": [60, 52, 8]}, {"55060419": [96, 164, 136, 19, 244, 160, 136]}, {"55060427": [51, 3, 224]}, {"55060431": [8]}, {"55060436": [144, 136]}, {"55060439": [124, 52, 1]}, {"55060443": [255, 17, 1]}, {"55060447": [6, 52, 2]}, {"55060451": [107, 144, 136]}, {"55060455": [148, 45, 8]}, {"55060459": [6, 17]}, {"55060463": [2, 52, 2]}, {"55060467": [106, 52, 2]}, {"55060471": [3, 3, 224]}, {"55060475": [8]}, {"55060480": [144, 136]}, {"55060483": [123, 52, 1]}, {"55060487": [255, 17, 1]}, {"55060491": [2, 52, 162]}, {"55060496": [52, 2]}, {"55060499": [12, 3, 224]}, {"55060503": [8]}, {"55060508": [52, 8]}, {"55060511": [7, 160, 136]}, {"55060515": [123, 3, 224]}, {"55060519": [8]}, {"55060524": [52, 8]}, {"55060527": [1]}, {"55060529": [168, 64, 4, 140, 137]}, {"55060535": [164, 1, 40, 72, 37, 172, 137]}, {"55060543": [164, 3, 224]}, {"55060547": [8]}, {"55060552": [48, 132]}, {"55060555": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060567": [140, 16, 129]}, {"55060571": [22, 145, 2]}, {"55060575": [117, 52, 1]}, {"55060579": [141, 16, 129]}, {"55060583": [19, 145, 2]}, {"55060587": [117, 16, 128]}, {"55060591": [17, 145, 2]}, {"55060595": [116, 52, 1]}, {"55060599": [138, 16, 129]}, {"55060603": [14, 145, 2]}, {"55060607": [116, 52, 1]}, {"55060611": [139, 16, 129]}, {"55060615": [11, 145, 2]}, {"55060619": [116, 52, 1]}, {"55060623": [88, 16, 129]}, {"55060627": [8, 52, 2]}, {"55060632": [52, 1]}, {"55060635": [120, 16, 129]}, {"55060639": [5, 52, 2]}, {"55060644": [52, 1]}, {"55060647": [121, 16, 129]}, {"55060651": [2, 52, 2]}, {"55060656": [52, 2]}, {"55060659": [255, 3, 224]}, {"55060663": [8]}, {"55060668": [39, 189, 255, 224, 175, 191]}, {"55060675": [16, 175, 176]}, {"55060679": [20, 12, 16, 11, 7]}, {"55060688": [4, 65]}, {"55060691": [2]}, {"55060696": [52, 2]}, {"55060699": [91]}, {"55060701": [64, 32, 33, 12, 16, 11, 110]}, {"55060712": [16, 96]}, {"55060715": [18, 175, 163]}, {"55060719": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060728": [133, 9]}, {"55060731": [2, 17, 32]}, {"55060735": [3, 52, 10]}, {"55060739": [1, 16]}, {"55060743": [8, 165, 10]}, {"55060748": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060759": [6, 144, 102]}, {"55060763": [7, 140, 105]}, {"55060767": [8, 1, 32, 248, 9]}, {"55060776": [143, 163]}, {"55060779": [28, 144, 101]}, {"55060783": [3, 16]}, {"55060787": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060799": [6]}, {"55060801": [74]}, {"55060803": [24]}, {"55060806": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060816": [60, 8, 128, 64, 37, 8, 32]}, {"55060824": [133, 9]}, {"55060827": [2, 17, 32]}, {"55060831": [3, 52, 10]}, {"55060835": [1, 165, 10]}, {"55060840": [52, 5]}, {"55060843": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060855": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060866": [48, 33, 143, 191]}, {"55060871": [16, 143, 176]}, {"55060875": [20, 39, 189]}, {"55060879": [32, 3, 224]}, {"55060883": [8]}, {"55060888": [143, 166]}, {"55060891": [48, 132, 197]}, {"55060895": [4, 8, 16, 10, 110]}, {"55060904": [143, 185]}, {"55060907": [44, 135, 37]}, {"55060911": [4, 8, 16, 10, 110]}, {"55060920": [60, 10, 128, 64, 37, 74, 32, 8, 141, 75]}, {"55060931": [12, 17, 96]}, {"55060935": [2]}, {"55060940": [149, 69]}, {"55060943": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060956": [60, 9, 128, 64, 37, 41, 32, 24, 129, 42]}, {"55060967": [3, 5, 64]}, {"55060971": [11, 1, 42, 72, 32, 129, 40]}, {"55060980": [52, 10]}, {"55060983": [127, 21, 10]}, {"55060987": [6]}, {"55060992": [60, 10, 128, 18, 37, 74, 165, 208, 133, 72]}, {"55061003": [144, 33, 8]}, {"55061007": [1, 165, 72]}, {"55061011": [144, 161, 32]}, {"55061016": [3, 224]}, {"55061019": [8]}, {"55061024": [60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061035": [12, 17, 32]}, {"55061039": [2]}, {"55061044": [129, 3]}, {"55061047": [2]}, {"55061049": [3, 15, 195]}, {"55061053": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061067": [8]}, {"55061072": [144, 69]}, {"55061075": [3, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061087": [12, 17, 32]}, {"55061091": [2]}, {"55061096": [145, 5]}, {"55061099": [3, 3, 224]}, {"55061103": [8]}, {"55061108": [143, 162]}, {"55061111": [36, 144, 69]}, {"55061116": [60, 8, 128, 64, 37, 8, 32]}, {"55061124": [133, 9]}, {"55061127": [2, 17, 32]}, {"55061131": [4, 52, 10]}, {"55061135": [1, 165, 10]}, {"55061140": [16]}, {"55061143": [24, 52, 5]}, {"55061147": [65, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061159": [12, 17, 32]}, {"55061163": [19]}, {"55061168": [145, 5]}, {"55061171": [1, 175, 164]}, {"55061176": [175, 165]}, {"55061179": [4, 175, 166]}, {"55061183": [8, 39, 189, 255, 232, 175, 191]}, {"55061191": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061203": [6, 145, 6]}, {"55061207": [7, 141, 9]}, {"55061211": [8, 1, 32, 248, 9]}, {"55061220": [143, 191]}, {"55061223": [16, 39, 189]}, {"55061227": [24, 143, 164]}, {"55061232": [143, 165]}, {"55061235": [4, 143, 166]}, {"55061239": [8, 3, 224]}, {"55061243": [8]}, {"55061248": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061259": [16, 175, 163]}, {"55061263": [20, 175, 191]}, {"55061267": [24, 12, 16, 10, 205]}, {"55061276": [143, 162]}, {"55061279": [16, 143, 163]}, {"55061283": [20, 143, 191]}, {"55061287": [24, 39, 189]}, {"55061291": [32, 3, 224]}, {"55061295": [8]}, {"55061300": [39, 189, 255, 232, 175, 191]}, {"55061307": [16, 60, 8, 128, 64, 37, 8, 32, 8, 173]}, {"55061320": [173]}, {"55061323": [4, 173]}, {"55061327": [8, 173]}, {"55061331": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061347": [42]}, {"55061353": [9, 15, 195, 1, 33, 32, 38]}, {"55061361": [129, 32, 35, 141, 5, 4, 40, 12, 16, 11, 7]}, {"55061376": [4, 64]}, {"55061379": [34]}, {"55061384": [52, 68]}, {"55061388": [12, 16, 11, 110]}, {"55061396": [16, 96]}, {"55061399": [12]}, {"55061404": [60, 8, 128, 64, 37, 8, 32, 8, 140, 105]}, {"55061416": [173, 9]}, {"55061420": [140, 105]}, {"55061423": [4, 173, 9]}, {"55061427": [4, 140, 105]}, {"55061431": [8, 173, 9]}, {"55061435": [8, 52, 9]}, {"55061439": [1, 173, 9]}, {"55061443": [12, 144, 98]}, {"55061448": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061464": [52, 1]}, {"55061467": [10, 21, 65]}, {"55061471": [6]}, {"55061476": [149, 42]}, {"55061479": [28, 49, 74, 240, 31]}, {"55061485": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061495": [28, 129, 9, 4, 36, 5, 33]}, {"55061503": [2]}, {"55061509": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061519": [16, 39, 189]}, {"55061523": [24, 3, 224]}, {"55061527": [8]}, {"55061532": [39, 189, 255, 232, 175, 191]}, {"55061539": [16, 12, 16, 11, 21]}, {"55061548": [36, 1, 255, 255, 16, 65]}, {"55061555": [4]}, {"55061560": [52, 68]}, {"55061564": [12, 16, 11, 73]}, {"55061572": [143, 191]}, {"55061575": [16, 39, 189]}, {"55061579": [24, 3, 224]}, {"55061583": [8]}, {"55061588": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061599": [164, 52, 8]}, {"55061604": [52, 137]}, {"55061608": [148, 170]}, {"55061612": [52, 1, 1, 156, 21, 65]}, {"55061619": [8]}, {"55061624": [52, 8]}, {"55061627": [3, 148, 171]}, {"55061631": [28, 49, 105]}, {"55061635": [255, 49, 98, 31]}, {"55061641": [2, 18, 2, 16]}, {"55061647": [31]}, {"55061652": [52, 1]}, {"55061655": [10, 21, 65]}, {"55061659": [14]}, {"55061664": [148, 171]}, {"55061667": [28, 52, 1]}, {"55061671": [16, 20, 65]}, {"55061675": [8]}, {"55061680": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061691": [4]}, {"55061696": [36, 2, 255, 255, 16]}, {"55061703": [21]}, {"55061708": [52, 8]}, {"55061711": [1, 49, 105]}, {"55061715": [31, 52, 1]}, {"55061719": [21, 21, 65]}, {"55061723": [12]}, {"55061728": [52, 1]}, {"55061731": [62, 16, 129]}, {"55061735": [7]}, {"55061740": [52, 1]}, {"55061743": [66, 16, 129]}, {"55061747": [4]}, {"55061752": [36, 2, 255, 255, 16]}, {"55061759": [7]}, {"55061764": [52, 8]}, {"55061767": [2, 144, 169, 1, 65]}, {"55061773": [2, 18]}, {"55061777": [72, 16, 37]}, {"55061781": [2, 18]}, {"55061785": [73, 16, 37, 3, 224]}, {"55061791": [8]}, {"55061796": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061808": [129, 9]}, {"55061812": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061835": [4, 141, 9]}, {"55061840": [17, 32]}, {"55061843": [23]}, {"55061849": [9, 82, 2, 49, 75, 248]}, {"55061857": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061880": [49, 34]}, {"55061883": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061904": [60, 12, 128, 64, 37, 140, 28]}, {"55061912": [129, 140]}, {"55061916": [17, 108]}, {"55061919": [4, 165, 32]}, {"55061923": [2, 161, 43]}, {"55061927": [2, 161, 34]}, {"55061931": [3, 173, 36]}, {"55061935": [4, 3, 224]}, {"55061939": [8]}, {"55061944": [39, 189, 255, 224, 175, 176]}, {"55061951": [16, 175, 177]}, {"55061955": [20, 175, 191]}, {"55061959": [24, 52, 130]}, {"55061964": [52, 80]}, {"55061968": [38, 8, 255, 128, 5]}, {"55061975": [18]}, {"55061980": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55061991": [16, 1, 9]}, {"55061995": [24]}, {"55061998": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55062016": [142, 40]}, {"55062019": [12, 1]}, {"55062022": [248, 9]}, {"55062028": [20, 80, 255, 239]}, {"55062036": [54, 35]}, {"55062040": [16]}, {"55062043": [2]}, {"55062048": [52, 3]}, {"55062052": [143, 176]}, {"55062055": [16, 143, 177]}, {"55062059": [20, 143, 191]}, {"55062063": [24, 39, 189]}, {"55062067": [32, 3, 224]}, {"55062071": [8]}, {"55062076": [140, 136, 29, 44, 52, 9]}, {"55062083": [1]}, {"55062085": [9, 78]}, {"55062088": [1, 9, 16, 36, 16, 64]}, {"55062095": [36]}, {"55062100": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062115": [164, 52, 1]}, {"55062119": [61, 17, 129]}, {"55062123": [10]}, {"55062129": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062139": [25]}, {"55062144": [52, 13]}, {"55062147": [1, 161, 141, 29, 40, 37, 74]}, {"55062155": [3, 16]}, {"55062159": [9]}, {"55062164": [52, 12]}, {"55062167": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062183": [14]}, {"55062188": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062224": [60, 9, 128, 64, 37, 41, 32, 24, 161, 40]}, {"55062236": [52, 2]}, {"55062240": [3, 224]}, {"55062243": [8]}, {"55062248": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062260": [16]}, {"55062263": [33]}, {"55062268": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062280": [16]}, {"55062283": [28]}, {"55062288": [32, 232, 255, 166, 33, 8]}, {"55062295": [97, 16]}, {"55062299": [24]}, {"55062304": [52, 8]}, {"55062307": [100, 16]}, {"55062311": [21]}, {"55062316": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062331": [1, 160, 40, 14, 222, 52, 8]}, {"55062339": [104, 16]}, {"55062343": [13]}, {"55062348": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062363": [4, 160, 40, 14, 222, 52, 8]}, {"55062371": [106, 16]}, {"55062375": [5]}, {"55062380": [52, 5]}, {"55062383": [3, 52, 8]}, {"55062387": [107, 16]}, {"55062391": [1]}, {"55062396": [60, 9, 128, 64, 37, 41, 32, 24, 60, 10, 128, 64, 37, 74, 32, 27, 129, 44]}, {"55062416": [17, 136]}, {"55062419": [11, 33, 41]}, {"55062423": [1, 21, 42, 255, 252]}, {"55062432": [60, 9, 128, 64, 37, 41, 32, 23, 33, 41]}, {"55062443": [1, 17, 42]}, {"55062447": [4, 129, 44]}, {"55062452": [21, 128, 255, 252]}, {"55062460": [161, 40]}, {"55062464": [3, 224]}, {"55062467": [8]}, {"55062473": [96, 120, 33, 145, 236, 14, 223, 53, 152]}, {"55062483": [128, 49, 142]}, {"55062487": [128, 52, 3]}, {"55062491": [5, 8, 56, 164, 228]}, {"55062500": [175, 164]}, {"55062503": [104, 175, 165]}, {"55062507": [108, 175, 166]}, {"55062511": [112, 175, 167]}, {"55062515": [116, 39, 189, 255, 232, 175, 163]}, {"55062523": [16, 175, 191]}, {"55062527": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062543": [32, 21]}, {"55062547": [31]}, {"55062552": [60, 9, 128, 64, 37, 41, 32, 27, 52, 10]}, {"55062563": [255, 161, 42]}, {"55062568": [60, 9, 128, 64, 37, 41, 32, 24, 36, 10, 255, 255, 52, 12]}, {"55062583": [3, 33, 74]}, {"55062587": [1, 17, 76]}, {"55062591": [20, 1, 42, 88, 32, 129, 104]}, {"55062600": [17]}, {"55062602": [255, 251]}, {"55062608": [60, 9, 128, 64, 37, 41, 32, 27, 161, 42]}, {"55062620": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062631": [1, 165, 42]}, {"55062636": [60, 9, 128, 65, 52, 10]}, {"55062643": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 205]}, {"55062672": [143, 163]}, {"55062675": [16, 143, 191]}, {"55062679": [20, 39, 189]}, {"55062683": [24, 143, 164]}, {"55062687": [104, 143, 165]}, {"55062691": [108, 143, 166]}, {"55062695": [112, 143, 167]}, {"55062699": [116, 132, 110, 19, 196, 3, 224]}, {"55062707": [8]}, {"55062712": [147, 25]}, {"55062715": [116, 52, 1]}, {"55062719": [255, 23, 33]}, {"55062723": [2]}, {"55062728": [52, 25]}, {"55062731": [44, 3, 224]}, {"55062735": [8, 167, 185]}, {"55062739": [154, 147, 44]}, {"55062743": [116, 52, 1]}, {"55062747": [255, 21, 129]}, {"55062751": [2]}, {"55062756": [52, 12]}, {"55062759": [44, 3, 224]}, {"55062763": [8]}, {"55062768": [145, 174]}, {"55062771": [116, 52, 1]}, {"55062775": [255, 21, 193]}, {"55062779": [2]}, {"55062784": [52, 14]}, {"55062787": [44, 3, 224]}, {"55062791": [8, 167, 174]}, {"55062795": [154, 145, 207]}, {"55062799": [116, 52, 1]}, {"55062803": [255, 21, 225]}, {"55062807": [2]}, {"55062812": [52, 15]}, {"55062815": [44, 3, 224]}, {"55062819": [8, 167, 175]}, {"55062823": [154, 60, 8, 128, 64, 37, 8, 32, 28, 142, 9]}, {"55062835": [104, 173, 9]}, {"55062840": [142, 9]}, {"55062843": [108, 173, 9]}, {"55062847": [4, 150, 9]}, {"55062851": [112, 165, 9]}, {"55062855": [8, 150, 9]}, {"55062859": [156, 165, 9]}, {"55062863": [10, 3, 224]}, {"55062867": [8, 142, 14]}, {"55062871": [4, 39, 189, 255, 224, 175, 176]}, {"55062879": [16, 175, 177]}, {"55062883": [20, 175, 191]}, {"55062887": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 28, 142, 8]}, {"55062907": [4, 17]}, {"55062911": [5]}, {"55062916": [12, 16, 12, 128]}, {"55062924": [16]}, {"55062927": [3]}, {"55062932": [12, 16, 12, 147]}, {"55062940": [12, 16, 12, 115, 52, 4]}, {"55062948": [12, 16, 12, 115, 52, 4]}, {"55062955": [1, 12, 16, 12, 115, 52, 4]}, {"55062963": [2, 143, 176]}, {"55062967": [16, 143, 177]}, {"55062971": [20, 143, 191]}, {"55062975": [24, 39, 189]}, {"55062979": [32, 3, 224]}, {"55062983": [8]}, {"55062988": [2, 4, 64, 33, 145, 9]}, {"55062995": [108, 52, 1]}, {"55062999": [255, 17, 33]}, {"55063003": [7]}, {"55063008": [2, 9, 72, 33, 145, 41]}, {"55063015": [116, 52, 1]}, {"55063019": [44, 17, 33]}, {"55063023": [2]}, {"55063028": [161, 9]}, {"55063031": [105, 3, 224]}, {"55063035": [8]}, {"55063040": [39, 189, 255, 232, 175, 191]}, {"55063047": [16, 142, 40]}, {"55063052": [174, 8]}, {"55063055": [64, 142, 40]}, {"55063059": [4, 174, 8]}, {"55063063": [68, 150, 40]}, {"55063067": [8, 166, 8]}, {"55063071": [72, 162]}, {"55063074": [15, 51, 146, 8]}, {"55063079": [74, 52, 1]}, {"55063083": [255, 21, 1]}, {"55063087": [3]}, {"55063092": [12, 16, 12, 161]}, {"55063100": [143, 191]}, {"55063103": [16, 39, 189]}, {"55063107": [24, 3, 224]}, {"55063111": [8]}, {"55063116": [142, 8]}, {"55063119": [64, 174, 8]}, {"55063123": [104, 142, 8]}, {"55063127": [68, 174, 8]}, {"55063131": [108, 150, 8]}, {"55063135": [72, 166, 8]}, {"55063139": [112, 146, 8]}, {"55063143": [104, 52, 1]}, {"55063147": [255, 21, 1]}, {"55063151": [3]}, {"55063156": [52, 8]}, {"55063159": [1, 162, 8, 15, 51, 3, 224]}, {"55063167": [8]}, {"55063172": [39, 189, 255, 232, 175, 191]}, {"55063179": [16, 150, 8]}, {"55063183": [156, 49, 8]}, {"55063187": [64, 17]}, {"55063191": [5]}, {"55063196": [150, 8]}, {"55063199": [112, 49, 8, 255, 15, 53, 8]}, {"55063207": [48, 166, 8]}, {"55063211": [112, 146, 40]}, {"55063215": [1, 162, 8]}, {"55063219": [105, 150, 40]}, {"55063223": [2, 166, 8]}, {"55063227": [106, 142, 40]}, {"55063231": [4, 174, 8]}, {"55063235": [108, 12, 16, 12, 187, 52, 4]}, {"55063244": [12, 16, 12, 187, 52, 4]}, {"55063251": [1, 12, 16, 12, 187, 52, 4]}, {"55063259": [2, 143, 191]}, {"55063263": [16, 39, 189]}, {"55063267": [24, 3, 224]}, {"55063271": [8]}, {"55063276": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 51, 152, 145, 10]}, {"55063291": [108, 52, 1]}, {"55063295": [255, 17, 65]}, {"55063299": [5]}, {"55063304": [1, 42, 72, 33, 145, 41]}, {"55063312": [21, 32]}, {"55063315": [28]}, {"55063320": [60, 9, 128, 64, 37, 41, 51, 139, 37, 41]}, {"55063331": [1, 145, 42]}, {"55063336": [17, 64]}, {"55063339": [19]}, {"55063344": [2, 10, 88, 33, 145, 107]}, {"55063351": [116, 52, 1]}, {"55063355": [255, 17, 97, 255, 248]}, {"55063364": [146, 12]}, {"55063367": [108, 17, 138, 255, 245]}, {"55063376": [146, 12]}, {"55063379": [109, 17, 138, 255, 242]}, {"55063388": [146, 12]}, {"55063391": [110, 17, 138, 255, 239]}, {"55063400": [161, 11]}, {"55063403": [105, 161, 10]}, {"55063407": [108, 16]}, {"55063411": [4]}, {"55063416": [52, 9]}, {"55063419": [255, 161, 9]}, {"55063423": [105, 161, 9]}, {"55063427": [108, 3, 224]}, {"55063431": [8]}, {"55063436": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063449": [1, 1, 1, 1, 1]}, {"55063455": [1, 1, 1, 1, 1]}, {"55063461": [1]}, {"55063463": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063473": [51, 8, 33, 32, 15]}, {"55063479": [71, 21, 234]}, {"55063483": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063495": [164]}, {"55063497": [15, 122, 3, 20, 64]}, {"55063503": [5, 52, 2, 72, 48, 21, 226]}, {"55063511": [7]}, {"55063516": [36, 25]}, {"55063519": [3, 16]}, {"55063523": [4, 52, 2, 99, 17, 21, 226]}, {"55063531": [2]}, {"55063536": [36, 25]}, {"55063539": [3, 3, 224]}, {"55063543": [8]}, {"55063548": [141, 173, 138, 160, 52, 2, 128]}, {"55063556": [16, 77]}, {"55063559": [2]}, {"55063564": [16]}, {"55063567": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063583": [1, 16, 64]}, {"55063587": [2]}, {"55063592": [16]}, {"55063595": [2, 52, 2]}, {"55063599": [1, 161, 226, 28, 191, 3, 224]}, {"55063607": [8]}, {"55063613": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063627": [164]}, {"55063629": [15, 122, 3, 20, 64]}, {"55063635": [5, 52, 2, 72, 48, 21, 226]}, {"55063643": [7]}, {"55063648": [36, 25]}, {"55063651": [3, 16]}, {"55063655": [4, 52, 2, 99, 17, 21, 226]}, {"55063663": [2]}, {"55063668": [36, 25]}, {"55063671": [3, 3, 224]}, {"55063675": [8]}, {"55063680": [162, 37]}, {"55063683": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063695": [4, 142, 10]}, {"55063700": [17, 64]}, {"55063703": [11]}, {"55063709": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063721": [24, 194, 2, 23]}, {"55063727": [3, 49, 89]}, {"55063731": [255, 129, 234]}, {"55063736": [3, 42, 200, 37, 8, 16, 13, 35, 161, 249]}, {"55063748": [3, 224]}, {"55063751": [8]}] \ No newline at end of file diff --git a/version.py b/version.py index 32eaac29c..38c4acbd7 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.13.37 f.LUM' \ No newline at end of file +__version__ = '2.13.38 f.LUM' \ No newline at end of file From 776b0f9ab86c4516654950d77fce9399aab70838 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Wed, 1 Aug 2018 17:04:08 -0400 Subject: [PATCH 218/755] spoiler log locations now contain every non-fixed location --- BaseClasses.py | 6 +----- version.py | 2 +- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 7058af8d4..bf5f7502e 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -719,11 +719,7 @@ def __init__(self, world): self.required_locations = [] def parse_data(self): - spoiler_locations = [] - for location in self.world.get_locations(): - if location.item.name not in {'Gold Skulltulla Token', 'Epona', 'Triforce', 'Fairy Ocarina', 'Ocarina of Time', 'Zeldas Letter', 'Master Sword', - 'Magic Bean', 'Gerudo Membership Card', 'Forest Trial Clear', 'Fire Trial Clear', 'Water Trial Clear', 'Shadow Trial Clear', 'Spirit Trial Clear', 'Light Trial Clear'}: - spoiler_locations.append(location) + spoiler_locations = [location for location in self.world.get_locations() if not location.event] sort_order = {"Song": 0, "Boss": -1} spoiler_locations.sort(key=lambda item: sort_order.get(item.type, 1)) if self.world.settings.world_count > 1: diff --git a/version.py b/version.py index 8b600928b..ce4e0fcbb 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.1 f.LUM' +__version__ = '2.15.2 f.LUM' From 7d844ee38e677efc7accfd311bbb473feda35569 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Thu, 2 Aug 2018 14:37:19 -0400 Subject: [PATCH 219/755] Fix obtaining song cause a crash from 03c7fb --- ASM/src/cutscenes.asm | 6 ++++-- ASM/src/hacks.asm | 14 ++++++++------ Rom.py | 4 ++-- data/base2current.json | 2 +- version.py | 2 +- 5 files changed, 16 insertions(+), 12 deletions(-) diff --git a/ASM/src/cutscenes.asm b/ASM/src/cutscenes.asm index 1f2649f9f..e059abbef 100644 --- a/ASM/src/cutscenes.asm +++ b/ASM/src/cutscenes.asm @@ -71,6 +71,7 @@ override_fairy_ocarina_cutscene: ;a3 = item ID override_ocarina_songs: + li v0, 0xFF addi t0, a3, -0x5A addi t0, t0, 0x61 b store_pending_spedial_item @@ -136,9 +137,10 @@ store_pending_spedial_item: override_saria_song_check: move t7, v1 - lbu t4, 0x0EDF(t7) + lb t4, 0x0EDF(t7) ori t8, t4, 0x80 andi t6, t4, 0x80 + li v0, 5 li v1, 5 - j return_saria_song_check + jr ra nop \ No newline at end of file diff --git a/ASM/src/hacks.asm b/ASM/src/hacks.asm index 99cf245a9..5235bd6ee 100755 --- a/ASM/src/hacks.asm +++ b/ASM/src/hacks.asm @@ -326,10 +326,10 @@ ; a3 = item ID ; Replaces -; lw $t9, 0xa4($t0) -.org 0xAE5DF4 +; li v0,0xFF +.org 0xAE5DF8 jal override_ocarina_songs -; sw $t9, 0xa4($t0) +; sw $t7, 0xa4($t0) .org 0xAE5E04 nop @@ -363,11 +363,13 @@ .skip 4 andi t8, t7, 0x02 +;lw $t5,164(v1) ;addiu $v1, $zero, 5 ;and $t6, $t4, $t5 -.org 0xE29388 - j override_saria_song_check - li v0, 5 +.org 0xE29384 + jal override_saria_song_check + move t5, ra + move ra, t5 return_saria_song_check: ;move $v0, $v1 .org 0xE293A4 diff --git a/Rom.py b/Rom.py index bc12a3d68..3c632a7ee 100644 --- a/Rom.py +++ b/Rom.py @@ -1159,7 +1159,7 @@ def write_save_table(rom): # Revert Song Get Override Injection if not world.shuffle_song_items: # general get song - rom.write_int32(0xAE5DF4, 0x8D1900A4) + rom.write_int32(0xAE5DF8, 0x240200FF) rom.write_int32(0xAE5E04, 0xAD0F00A4) # requiem of spirit rom.write_int32s(0xAC9ABC, [0x3C010001, 0x00300821]) @@ -1180,7 +1180,7 @@ def write_save_table(rom): rom.write_int32(0xB06400, 0x8E0F00A4) rom.write_int32(0xB0640C, 0x01CFC024) # saria's song - rom.write_int32s(0xE29388, [0x24030005, 0x018D7024]) + rom.write_int32s(0xE29384, [0x8C6D00A4, 0x24030005, 0x018D7024]) rom.write_int32(0xE293A4, 0x00601025) # Set Default targeting option to Hold diff --git a/data/base2current.json b/data/base2current.json index 575f34dbd..96e47d1d5 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -1 +1 @@ -[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 196]}, {"11311804": [12, 16, 11, 204]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 190, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 90]}, {"11427312": [12, 16, 13, 3, 12, 16, 11, 200]}, {"11427332": [0, 0]}, {"11427335": [0]}, {"11431496": [12, 16, 11, 195, 1, 15, 192, 33]}, {"11559936": [130]}, {"11559938": [14, 222]}, {"11559948": [49, 248, 0, 2]}, {"11562028": [12, 16, 13, 36]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 19]}, {"11882076": [12, 16, 12, 240]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 57, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 64, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 71, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 50, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 140]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 18]}, {"12427480": [12, 16, 10, 106]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 110]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 11, 253, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 152]}, {"12491480": [12, 16, 10, 161]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 147]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 78]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 128, 73, 14, 222]}, {"14149508": [52]}, {"14149510": [0, 1, 2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 207]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 223]}, {"14624335": [118]}, {"14720872": [128]}, {"14720874": [14, 222]}, {"14720884": [49, 248, 0, 4]}, {"14720944": [12, 16, 11, 215]}, {"14848904": [8, 16, 11, 246, 52, 2, 0, 5]}, {"14848932": [161, 248, 14, 223]}, {"14872723": [52]}, {"15327704": [52, 9, 64, 0]}, {"15327728": [52]}, {"15327730": [91, 8]}, {"15327744": [52]}, {"15327746": [0, 10]}, {"15327757": [169]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 236, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 48, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 76, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 104, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 220, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 108, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 140, 128, 64, 38, 132, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 172, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 39, 212, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 28, 128, 64, 40]}, {"55059600": [83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 3, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 44, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [2, 52, 2]}, {"55060003": [69, 52, 2]}, {"55060007": [70, 3, 224]}, {"55060011": [8]}, {"55060016": [144, 136]}, {"55060019": [162, 49, 8]}, {"55060023": [6, 17]}, {"55060027": [2, 52, 2]}, {"55060031": [55, 52, 2]}, {"55060035": [56, 3, 224]}, {"55060039": [8]}, {"55060044": [144, 136]}, {"55060047": [161, 49, 8]}, {"55060051": [32, 17]}, {"55060055": [2, 52, 2]}, {"55060059": [121, 52, 2]}, {"55060063": [122, 3, 224]}, {"55060067": [8]}, {"55060072": [144, 136]}, {"55060075": [161, 49, 8]}, {"55060079": [4, 17]}, {"55060083": [2, 52, 2]}, {"55060087": [119, 52, 2]}, {"55060091": [120, 3, 224]}, {"55060095": [8]}, {"55060100": [144, 136]}, {"55060103": [50, 17]}, {"55060107": [2, 52, 2]}, {"55060111": [192, 52, 2]}, {"55060115": [193, 3, 224]}, {"55060119": [8]}, {"55060124": [144, 136]}, {"55060127": [163, 49, 8]}, {"55060131": [3, 17]}, {"55060135": [2, 52, 2]}, {"55060139": [77, 52, 162]}, {"55060144": [3, 224]}, {"55060147": [8]}, {"55060152": [144, 136]}, {"55060155": [163, 49, 8]}, {"55060159": [24, 17]}, {"55060163": [2, 52, 2]}, {"55060167": [77, 52, 162]}, {"55060172": [3, 224]}, {"55060175": [8]}, {"55060180": [3, 224]}, {"55060183": [8]}, {"55060188": [52, 8]}, {"55060191": [1, 160, 136]}, {"55060195": [62, 3, 224]}, {"55060199": [8]}, {"55060204": [36, 136]}, {"55060207": [134, 36, 9, 255, 255, 37, 41]}, {"55060215": [1, 52, 1]}, {"55060219": [3]}, {"55060221": [41, 8, 42, 20, 32]}, {"55060227": [7]}, {"55060232": [1, 9, 80, 33, 145, 75]}, {"55060240": [52, 1]}, {"55060243": [255, 21, 97, 255, 247]}, {"55060252": [161, 69]}, {"55060256": [3, 224]}, {"55060259": [8]}, {"55060264": [36, 136]}, {"55060267": [168, 1, 6, 64, 33, 145, 9]}, {"55060276": [1, 37, 72, 37, 161, 9]}, {"55060284": [3, 224]}, {"55060287": [8]}, {"55060292": [36, 136]}, {"55060295": [188, 1, 5, 64, 33, 129, 9]}, {"55060304": [5, 33]}, {"55060307": [2]}, {"55060312": [52, 9]}, {"55060316": [37, 41]}, {"55060319": [1, 161, 9]}, {"55060324": [3, 224]}, {"55060327": [8]}, {"55060332": [52, 8]}, {"55060335": [1, 160, 136]}, {"55060339": [61, 52, 8]}, {"55060343": [20, 160, 136]}, {"55060347": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [50, 160, 136]}, {"55060375": [58, 52, 8]}, {"55060379": [48, 164, 136, 19, 244, 160, 136]}, {"55060387": [51, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [2, 160, 136]}, {"55060403": [50, 52, 8]}, {"55060407": [1, 160, 136]}, {"55060411": [58, 160, 136]}, {"55060415": [60, 52, 8]}, {"55060419": [96, 164, 136, 19, 244, 160, 136]}, {"55060427": [51, 3, 224]}, {"55060431": [8]}, {"55060436": [144, 136]}, {"55060439": [124, 52, 1]}, {"55060443": [255, 17, 1]}, {"55060447": [6, 52, 2]}, {"55060451": [107, 144, 136]}, {"55060455": [148, 45, 8]}, {"55060459": [6, 17]}, {"55060463": [2, 52, 2]}, {"55060467": [106, 52, 2]}, {"55060471": [3, 3, 224]}, {"55060475": [8]}, {"55060480": [144, 136]}, {"55060483": [123, 52, 1]}, {"55060487": [255, 17, 1]}, {"55060491": [2, 52, 162]}, {"55060496": [52, 2]}, {"55060499": [12, 3, 224]}, {"55060503": [8]}, {"55060508": [52, 8]}, {"55060511": [7, 160, 136]}, {"55060515": [123, 3, 224]}, {"55060519": [8]}, {"55060524": [52, 8]}, {"55060527": [1]}, {"55060529": [168, 64, 4, 140, 137]}, {"55060535": [164, 1, 40, 72, 37, 172, 137]}, {"55060543": [164, 3, 224]}, {"55060547": [8]}, {"55060552": [48, 132]}, {"55060555": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060567": [140, 16, 129]}, {"55060571": [22, 145, 2]}, {"55060575": [117, 52, 1]}, {"55060579": [141, 16, 129]}, {"55060583": [19, 145, 2]}, {"55060587": [117, 16, 128]}, {"55060591": [17, 145, 2]}, {"55060595": [116, 52, 1]}, {"55060599": [138, 16, 129]}, {"55060603": [14, 145, 2]}, {"55060607": [116, 52, 1]}, {"55060611": [139, 16, 129]}, {"55060615": [11, 145, 2]}, {"55060619": [116, 52, 1]}, {"55060623": [88, 16, 129]}, {"55060627": [8, 52, 2]}, {"55060632": [52, 1]}, {"55060635": [120, 16, 129]}, {"55060639": [5, 52, 2]}, {"55060644": [52, 1]}, {"55060647": [121, 16, 129]}, {"55060651": [2, 52, 2]}, {"55060656": [52, 2]}, {"55060659": [255, 3, 224]}, {"55060663": [8]}, {"55060668": [39, 189, 255, 224, 175, 191]}, {"55060675": [16, 175, 176]}, {"55060679": [20, 12, 16, 11, 11]}, {"55060688": [4, 65]}, {"55060691": [2]}, {"55060696": [52, 2]}, {"55060699": [91]}, {"55060701": [64, 32, 33, 12, 16, 11, 114]}, {"55060712": [16, 96]}, {"55060715": [22, 175, 163]}, {"55060719": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060728": [133, 9]}, {"55060731": [2, 17, 32]}, {"55060735": [3, 52, 10]}, {"55060739": [1, 16]}, {"55060743": [12, 165, 10]}, {"55060748": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060759": [6, 144, 102]}, {"55060763": [7, 140, 105]}, {"55060767": [8, 1, 32, 248, 9]}, {"55060776": [143, 163]}, {"55060779": [28, 144, 101]}, {"55060783": [1, 12, 1, 191, 115, 2, 32, 32, 33, 143, 163]}, {"55060795": [28, 144, 101]}, {"55060799": [3, 16]}, {"55060803": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060815": [6]}, {"55060817": [74]}, {"55060819": [24]}, {"55060822": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060832": [60, 8, 128, 64, 37, 8, 32]}, {"55060840": [133, 9]}, {"55060843": [2, 17, 32]}, {"55060847": [3, 52, 10]}, {"55060851": [1, 165, 10]}, {"55060856": [52, 5]}, {"55060859": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060871": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060882": [48, 33, 143, 191]}, {"55060887": [16, 143, 176]}, {"55060891": [20, 39, 189]}, {"55060895": [32, 3, 224]}, {"55060899": [8]}, {"55060904": [143, 166]}, {"55060907": [48, 132, 197]}, {"55060911": [4, 8, 16, 10, 114]}, {"55060920": [143, 185]}, {"55060923": [44, 135, 37]}, {"55060927": [4, 8, 16, 10, 114]}, {"55060936": [60, 10, 128, 64, 37, 74, 32, 8, 141, 75]}, {"55060947": [12, 17, 96]}, {"55060951": [2]}, {"55060956": [149, 69]}, {"55060959": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060972": [60, 9, 128, 64, 37, 41, 32, 24, 129, 42]}, {"55060983": [3, 5, 64]}, {"55060987": [11, 1, 42, 72, 32, 129, 40]}, {"55060996": [52, 10]}, {"55060999": [127, 21, 10]}, {"55061003": [6]}, {"55061008": [60, 10, 128, 18, 37, 74, 165, 208, 133, 72]}, {"55061019": [144, 33, 8]}, {"55061023": [1, 165, 72]}, {"55061027": [144, 161, 32]}, {"55061032": [3, 224]}, {"55061035": [8]}, {"55061040": [60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061051": [12, 17, 32]}, {"55061055": [2]}, {"55061060": [129, 3]}, {"55061063": [2]}, {"55061065": [3, 15, 195]}, {"55061069": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061083": [8]}, {"55061088": [144, 69]}, {"55061091": [3, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061103": [12, 17, 32]}, {"55061107": [2]}, {"55061112": [145, 5]}, {"55061115": [3, 3, 224]}, {"55061119": [8]}, {"55061124": [143, 162]}, {"55061127": [36, 144, 69]}, {"55061132": [60, 8, 128, 64, 37, 8, 32]}, {"55061140": [133, 9]}, {"55061143": [2, 17, 32]}, {"55061147": [4, 52, 10]}, {"55061151": [1, 165, 10]}, {"55061156": [16]}, {"55061159": [24, 52, 5]}, {"55061163": [65, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061175": [12, 17, 32]}, {"55061179": [19]}, {"55061184": [145, 5]}, {"55061187": [1, 175, 164]}, {"55061192": [175, 165]}, {"55061195": [4, 175, 166]}, {"55061199": [8, 39, 189, 255, 232, 175, 191]}, {"55061207": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061219": [6, 145, 6]}, {"55061223": [7, 141, 9]}, {"55061227": [8, 1, 32, 248, 9]}, {"55061236": [143, 191]}, {"55061239": [16, 39, 189]}, {"55061243": [24, 143, 164]}, {"55061248": [143, 165]}, {"55061251": [4, 143, 166]}, {"55061255": [8, 3, 224]}, {"55061259": [8]}, {"55061264": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061275": [16, 175, 163]}, {"55061279": [20, 175, 191]}, {"55061283": [24, 12, 16, 10, 209]}, {"55061292": [143, 162]}, {"55061295": [16, 143, 163]}, {"55061299": [20, 143, 191]}, {"55061303": [24, 39, 189]}, {"55061307": [32, 3, 224]}, {"55061311": [8]}, {"55061316": [39, 189, 255, 232, 175, 191]}, {"55061323": [16, 60, 8, 128, 64, 37, 8, 32, 8, 173]}, {"55061336": [173]}, {"55061339": [4, 173]}, {"55061343": [8, 173]}, {"55061347": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061363": [42]}, {"55061369": [9, 15, 195, 1, 33, 32, 38]}, {"55061377": [129, 32, 35, 141, 5, 4, 40, 12, 16, 11, 11]}, {"55061392": [4, 64]}, {"55061395": [34]}, {"55061400": [52, 68]}, {"55061404": [12, 16, 11, 114]}, {"55061412": [16, 96]}, {"55061415": [12]}, {"55061420": [60, 8, 128, 64, 37, 8, 32, 8, 140, 105]}, {"55061432": [173, 9]}, {"55061436": [140, 105]}, {"55061439": [4, 173, 9]}, {"55061443": [4, 140, 105]}, {"55061447": [8, 173, 9]}, {"55061451": [8, 52, 9]}, {"55061455": [1, 173, 9]}, {"55061459": [12, 144, 98]}, {"55061464": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061480": [52, 1]}, {"55061483": [10, 21, 65]}, {"55061487": [6]}, {"55061492": [149, 42]}, {"55061495": [28, 49, 74, 240, 31]}, {"55061501": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061511": [28, 129, 9, 4, 36, 5, 33]}, {"55061519": [2]}, {"55061525": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061535": [16, 39, 189]}, {"55061539": [24, 3, 224]}, {"55061543": [8]}, {"55061548": [39, 189, 255, 232, 175, 191]}, {"55061555": [16, 12, 16, 11, 25]}, {"55061564": [36, 1, 255, 255, 16, 65]}, {"55061571": [4]}, {"55061576": [52, 68]}, {"55061580": [12, 16, 11, 77]}, {"55061588": [143, 191]}, {"55061591": [16, 39, 189]}, {"55061595": [24, 3, 224]}, {"55061599": [8]}, {"55061604": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061615": [164, 52, 8]}, {"55061620": [52, 137]}, {"55061624": [148, 170]}, {"55061628": [52, 1, 1, 156, 21, 65]}, {"55061635": [8]}, {"55061640": [52, 8]}, {"55061643": [3, 148, 171]}, {"55061647": [28, 49, 105]}, {"55061651": [255, 49, 98, 31]}, {"55061657": [2, 18, 2, 16]}, {"55061663": [31]}, {"55061668": [52, 1]}, {"55061671": [10, 21, 65]}, {"55061675": [14]}, {"55061680": [148, 171]}, {"55061683": [28, 52, 1]}, {"55061687": [16, 20, 65]}, {"55061691": [8]}, {"55061696": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061707": [4]}, {"55061712": [36, 2, 255, 255, 16]}, {"55061719": [21]}, {"55061724": [52, 8]}, {"55061727": [1, 49, 105]}, {"55061731": [31, 52, 1]}, {"55061735": [21, 21, 65]}, {"55061739": [12]}, {"55061744": [52, 1]}, {"55061747": [62, 16, 129]}, {"55061751": [7]}, {"55061756": [52, 1]}, {"55061759": [66, 16, 129]}, {"55061763": [4]}, {"55061768": [36, 2, 255, 255, 16]}, {"55061775": [7]}, {"55061780": [52, 8]}, {"55061783": [2, 144, 169, 1, 65]}, {"55061789": [2, 18]}, {"55061793": [72, 16, 37]}, {"55061797": [2, 18]}, {"55061801": [73, 16, 37, 3, 224]}, {"55061807": [8]}, {"55061812": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061824": [129, 9]}, {"55061828": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061851": [4, 141, 9]}, {"55061856": [17, 32]}, {"55061859": [23]}, {"55061865": [9, 82, 2, 49, 75, 248]}, {"55061873": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061896": [49, 34]}, {"55061899": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061920": [60, 12, 128, 64, 37, 140, 28]}, {"55061928": [129, 140]}, {"55061932": [17, 108]}, {"55061935": [4, 165, 32]}, {"55061939": [2, 161, 43]}, {"55061943": [2, 161, 34]}, {"55061947": [3, 173, 36]}, {"55061951": [4, 3, 224]}, {"55061955": [8]}, {"55061960": [39, 189, 255, 224, 175, 176]}, {"55061967": [16, 175, 177]}, {"55061971": [20, 175, 191]}, {"55061975": [24, 52, 130]}, {"55061980": [52, 80]}, {"55061984": [38, 8, 255, 128, 5]}, {"55061991": [18]}, {"55061996": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55062007": [16, 1, 9]}, {"55062011": [24]}, {"55062014": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55062032": [142, 40]}, {"55062035": [12, 1]}, {"55062038": [248, 9]}, {"55062044": [20, 80, 255, 239]}, {"55062052": [54, 35]}, {"55062056": [16]}, {"55062059": [2]}, {"55062064": [52, 3]}, {"55062068": [143, 176]}, {"55062071": [16, 143, 177]}, {"55062075": [20, 143, 191]}, {"55062079": [24, 39, 189]}, {"55062083": [32, 3, 224]}, {"55062087": [8]}, {"55062092": [140, 136, 29, 44, 52, 9]}, {"55062099": [1]}, {"55062101": [9, 78]}, {"55062104": [1, 9, 16, 36, 16, 64]}, {"55062111": [36]}, {"55062116": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062131": [164, 52, 1]}, {"55062135": [61, 17, 129]}, {"55062139": [10]}, {"55062145": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062155": [25]}, {"55062160": [52, 13]}, {"55062163": [1, 161, 141, 29, 40, 37, 74]}, {"55062171": [3, 16]}, {"55062175": [9]}, {"55062180": [52, 12]}, {"55062183": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062199": [14]}, {"55062204": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062240": [60, 9, 128, 64, 37, 41, 32, 24, 161, 40]}, {"55062252": [52, 2]}, {"55062256": [3, 224]}, {"55062259": [8]}, {"55062264": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062276": [16]}, {"55062279": [33]}, {"55062284": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062296": [16]}, {"55062299": [28]}, {"55062304": [32, 232, 255, 166, 33, 8]}, {"55062311": [97, 16]}, {"55062315": [24]}, {"55062320": [52, 8]}, {"55062323": [100, 16]}, {"55062327": [21]}, {"55062332": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062347": [1, 160, 40, 14, 222, 52, 8]}, {"55062355": [104, 16]}, {"55062359": [13]}, {"55062364": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062379": [4, 160, 40, 14, 222, 52, 8]}, {"55062387": [106, 16]}, {"55062391": [5]}, {"55062396": [52, 5]}, {"55062399": [3, 52, 8]}, {"55062403": [107, 16]}, {"55062407": [1]}, {"55062412": [60, 9, 128, 64, 37, 41, 32, 24, 60, 10, 128, 64, 37, 74, 32, 27, 129, 44]}, {"55062432": [17, 136]}, {"55062435": [11, 33, 41]}, {"55062439": [1, 21, 42, 255, 252]}, {"55062448": [60, 9, 128, 64, 37, 41, 32, 23, 33, 41]}, {"55062459": [1, 17, 42]}, {"55062463": [4, 129, 44]}, {"55062468": [21, 128, 255, 252]}, {"55062476": [161, 40]}, {"55062480": [3, 224]}, {"55062483": [8]}, {"55062489": [96, 120, 33, 145, 236, 14, 223, 53, 152]}, {"55062499": [128, 49, 142]}, {"55062503": [128, 52, 3]}, {"55062507": [5, 8, 56, 164, 228]}, {"55062516": [175, 164]}, {"55062519": [104, 175, 165]}, {"55062523": [108, 175, 166]}, {"55062527": [112, 175, 167]}, {"55062531": [116, 39, 189, 255, 232, 175, 163]}, {"55062539": [16, 175, 191]}, {"55062543": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062559": [32, 21]}, {"55062563": [31]}, {"55062568": [60, 9, 128, 64, 37, 41, 32, 27, 52, 10]}, {"55062579": [255, 161, 42]}, {"55062584": [60, 9, 128, 64, 37, 41, 32, 24, 36, 10, 255, 255, 52, 12]}, {"55062599": [3, 33, 74]}, {"55062603": [1, 17, 76]}, {"55062607": [20, 1, 42, 88, 32, 129, 104]}, {"55062616": [17]}, {"55062618": [255, 251]}, {"55062624": [60, 9, 128, 64, 37, 41, 32, 27, 161, 42]}, {"55062636": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062647": [1, 165, 42]}, {"55062652": [60, 9, 128, 65, 52, 10]}, {"55062659": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 209]}, {"55062688": [143, 163]}, {"55062691": [16, 143, 191]}, {"55062695": [20, 39, 189]}, {"55062699": [24, 143, 164]}, {"55062703": [104, 143, 165]}, {"55062707": [108, 143, 166]}, {"55062711": [112, 143, 167]}, {"55062715": [116, 132, 110, 19, 196, 3, 224]}, {"55062723": [8]}, {"55062728": [147, 25]}, {"55062731": [116, 52, 1]}, {"55062735": [255, 23, 33]}, {"55062739": [2]}, {"55062744": [52, 25]}, {"55062747": [44, 3, 224]}, {"55062751": [8, 167, 185]}, {"55062755": [154, 147, 44]}, {"55062759": [116, 52, 1]}, {"55062763": [255, 21, 129]}, {"55062767": [2]}, {"55062772": [52, 12]}, {"55062775": [44, 3, 224]}, {"55062779": [8]}, {"55062784": [145, 174]}, {"55062787": [116, 52, 1]}, {"55062791": [255, 21, 193]}, {"55062795": [2]}, {"55062800": [52, 14]}, {"55062803": [44, 3, 224]}, {"55062807": [8, 167, 174]}, {"55062811": [154, 145, 207]}, {"55062815": [116, 52, 1]}, {"55062819": [255, 21, 225]}, {"55062823": [2]}, {"55062828": [52, 15]}, {"55062831": [44, 3, 224]}, {"55062835": [8, 167, 175]}, {"55062839": [154, 60, 8, 128, 64, 37, 8, 32, 28, 142, 9]}, {"55062851": [104, 173, 9]}, {"55062856": [142, 9]}, {"55062859": [108, 173, 9]}, {"55062863": [4, 150, 9]}, {"55062867": [112, 165, 9]}, {"55062871": [8, 150, 9]}, {"55062875": [156, 165, 9]}, {"55062879": [10, 3, 224]}, {"55062883": [8, 142, 14]}, {"55062887": [4, 39, 189, 255, 224, 175, 176]}, {"55062895": [16, 175, 177]}, {"55062899": [20, 175, 191]}, {"55062903": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 28, 142, 8]}, {"55062923": [4, 17]}, {"55062927": [5]}, {"55062932": [12, 16, 12, 132]}, {"55062940": [16]}, {"55062943": [3]}, {"55062948": [12, 16, 12, 151]}, {"55062956": [12, 16, 12, 119, 52, 4]}, {"55062964": [12, 16, 12, 119, 52, 4]}, {"55062971": [1, 12, 16, 12, 119, 52, 4]}, {"55062979": [2, 143, 176]}, {"55062983": [16, 143, 177]}, {"55062987": [20, 143, 191]}, {"55062991": [24, 39, 189]}, {"55062995": [32, 3, 224]}, {"55062999": [8]}, {"55063004": [2, 4, 64, 33, 145, 9]}, {"55063011": [108, 52, 1]}, {"55063015": [255, 17, 33]}, {"55063019": [7]}, {"55063024": [2, 9, 72, 33, 145, 41]}, {"55063031": [116, 52, 1]}, {"55063035": [44, 17, 33]}, {"55063039": [2]}, {"55063044": [161, 9]}, {"55063047": [105, 3, 224]}, {"55063051": [8]}, {"55063056": [39, 189, 255, 232, 175, 191]}, {"55063063": [16, 142, 40]}, {"55063068": [174, 8]}, {"55063071": [64, 142, 40]}, {"55063075": [4, 174, 8]}, {"55063079": [68, 150, 40]}, {"55063083": [8, 166, 8]}, {"55063087": [72, 162]}, {"55063090": [15, 51, 146, 8]}, {"55063095": [74, 52, 1]}, {"55063099": [255, 21, 1]}, {"55063103": [3]}, {"55063108": [12, 16, 12, 165]}, {"55063116": [143, 191]}, {"55063119": [16, 39, 189]}, {"55063123": [24, 3, 224]}, {"55063127": [8]}, {"55063132": [142, 8]}, {"55063135": [64, 174, 8]}, {"55063139": [104, 142, 8]}, {"55063143": [68, 174, 8]}, {"55063147": [108, 150, 8]}, {"55063151": [72, 166, 8]}, {"55063155": [112, 146, 8]}, {"55063159": [104, 52, 1]}, {"55063163": [255, 21, 1]}, {"55063167": [3]}, {"55063172": [52, 8]}, {"55063175": [1, 162, 8, 15, 51, 3, 224]}, {"55063183": [8]}, {"55063188": [39, 189, 255, 232, 175, 191]}, {"55063195": [16, 150, 8]}, {"55063199": [156, 49, 8]}, {"55063203": [64, 17]}, {"55063207": [5]}, {"55063212": [150, 8]}, {"55063215": [112, 49, 8, 255, 15, 53, 8]}, {"55063223": [48, 166, 8]}, {"55063227": [112, 146, 40]}, {"55063231": [1, 162, 8]}, {"55063235": [105, 150, 40]}, {"55063239": [2, 166, 8]}, {"55063243": [106, 142, 40]}, {"55063247": [4, 174, 8]}, {"55063251": [108, 12, 16, 12, 191, 52, 4]}, {"55063260": [12, 16, 12, 191, 52, 4]}, {"55063267": [1, 12, 16, 12, 191, 52, 4]}, {"55063275": [2, 143, 191]}, {"55063279": [16, 39, 189]}, {"55063283": [24, 3, 224]}, {"55063287": [8]}, {"55063292": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 51, 168, 145, 10]}, {"55063307": [108, 52, 1]}, {"55063311": [255, 17, 65]}, {"55063315": [5]}, {"55063320": [1, 42, 72, 33, 145, 41]}, {"55063328": [21, 32]}, {"55063331": [28]}, {"55063336": [60, 9, 128, 64, 37, 41, 51, 155, 37, 41]}, {"55063347": [1, 145, 42]}, {"55063352": [17, 64]}, {"55063355": [19]}, {"55063360": [2, 10, 88, 33, 145, 107]}, {"55063367": [116, 52, 1]}, {"55063371": [255, 17, 97, 255, 248]}, {"55063380": [146, 12]}, {"55063383": [108, 17, 138, 255, 245]}, {"55063392": [146, 12]}, {"55063395": [109, 17, 138, 255, 242]}, {"55063404": [146, 12]}, {"55063407": [110, 17, 138, 255, 239]}, {"55063416": [161, 11]}, {"55063419": [105, 161, 10]}, {"55063423": [108, 16]}, {"55063427": [4]}, {"55063432": [52, 9]}, {"55063435": [255, 161, 9]}, {"55063439": [105, 161, 9]}, {"55063443": [108, 3, 224]}, {"55063447": [8]}, {"55063452": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063465": [1, 1, 1, 1, 1]}, {"55063471": [1, 1, 1, 1, 1]}, {"55063477": [1]}, {"55063479": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063489": [51, 8, 33, 32, 15]}, {"55063495": [71, 21, 234]}, {"55063499": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063511": [164]}, {"55063513": [15, 122, 3, 20, 64]}, {"55063519": [5, 52, 2, 72, 48, 21, 226]}, {"55063527": [7]}, {"55063532": [36, 25]}, {"55063535": [3, 16]}, {"55063539": [4, 52, 2, 99, 17, 21, 226]}, {"55063547": [2]}, {"55063552": [36, 25]}, {"55063555": [3, 3, 224]}, {"55063559": [8]}, {"55063564": [141, 173, 138, 160, 52, 2, 128]}, {"55063572": [16, 77]}, {"55063575": [2]}, {"55063580": [16]}, {"55063583": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063599": [1, 16, 64]}, {"55063603": [2]}, {"55063608": [16]}, {"55063611": [2, 52, 2]}, {"55063615": [1, 161, 226, 28, 191, 3, 224]}, {"55063623": [8]}, {"55063629": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063643": [164]}, {"55063645": [15, 122, 3, 20, 64]}, {"55063651": [5, 52, 2, 72, 48, 21, 226]}, {"55063659": [7]}, {"55063664": [36, 25]}, {"55063667": [3, 16]}, {"55063671": [4, 52, 2, 99, 17, 21, 226]}, {"55063679": [2]}, {"55063684": [36, 25]}, {"55063687": [3, 3, 224]}, {"55063691": [8]}, {"55063696": [162, 37]}, {"55063699": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063711": [4, 142, 10]}, {"55063716": [17, 64]}, {"55063719": [11]}, {"55063725": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063737": [24, 194, 2, 23]}, {"55063743": [3, 49, 89]}, {"55063747": [255, 129, 234]}, {"55063752": [3, 42, 200, 37, 8, 16, 13, 39, 161, 249]}, {"55063764": [3, 224]}, {"55063767": [8]}] \ No newline at end of file +[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 196]}, {"11311804": [12, 16, 11, 205]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 190, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 92]}, {"11427312": [12, 16, 13, 5]}, {"11427320": [12, 16, 11, 200]}, {"11427332": [0, 0]}, {"11427335": [0]}, {"11431496": [12, 16, 11, 195, 1, 15, 192, 33]}, {"11559936": [130]}, {"11559938": [14, 222]}, {"11559948": [49, 248, 0, 2]}, {"11562028": [12, 16, 13, 38]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 21]}, {"11882076": [12, 16, 12, 242]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 59, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 66, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 73, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 52, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 140]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 18]}, {"12427480": [12, 16, 10, 106]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 110]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 11, 255, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 152]}, {"12491480": [12, 16, 10, 161]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 147]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 80]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 128, 73, 14, 222]}, {"14149508": [52]}, {"14149510": [0, 1, 2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 208]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 224]}, {"14624335": [118]}, {"14720872": [128]}, {"14720874": [14, 222]}, {"14720884": [49, 248, 0, 4]}, {"14720944": [12, 16, 11, 216]}, {"14848900": [12, 16, 11, 247, 3, 224, 104, 33]}, {"14848909": [160, 248, 33]}, {"14848932": [161, 248, 14, 223]}, {"14872723": [52]}, {"15327704": [52, 9, 64, 0]}, {"15327728": [52]}, {"15327730": [91, 8]}, {"15327744": [52]}, {"15327746": [0, 10]}, {"15327757": [169]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 236, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 48, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 76, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 104, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 220, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 108, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 140, 128, 64, 38, 132, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 172, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 39, 212, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 28, 128, 64, 40]}, {"55059600": [83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 3, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 44, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [2, 52, 2]}, {"55060003": [69, 52, 2]}, {"55060007": [70, 3, 224]}, {"55060011": [8]}, {"55060016": [144, 136]}, {"55060019": [162, 49, 8]}, {"55060023": [6, 17]}, {"55060027": [2, 52, 2]}, {"55060031": [55, 52, 2]}, {"55060035": [56, 3, 224]}, {"55060039": [8]}, {"55060044": [144, 136]}, {"55060047": [161, 49, 8]}, {"55060051": [32, 17]}, {"55060055": [2, 52, 2]}, {"55060059": [121, 52, 2]}, {"55060063": [122, 3, 224]}, {"55060067": [8]}, {"55060072": [144, 136]}, {"55060075": [161, 49, 8]}, {"55060079": [4, 17]}, {"55060083": [2, 52, 2]}, {"55060087": [119, 52, 2]}, {"55060091": [120, 3, 224]}, {"55060095": [8]}, {"55060100": [144, 136]}, {"55060103": [50, 17]}, {"55060107": [2, 52, 2]}, {"55060111": [192, 52, 2]}, {"55060115": [193, 3, 224]}, {"55060119": [8]}, {"55060124": [144, 136]}, {"55060127": [163, 49, 8]}, {"55060131": [3, 17]}, {"55060135": [2, 52, 2]}, {"55060139": [77, 52, 162]}, {"55060144": [3, 224]}, {"55060147": [8]}, {"55060152": [144, 136]}, {"55060155": [163, 49, 8]}, {"55060159": [24, 17]}, {"55060163": [2, 52, 2]}, {"55060167": [77, 52, 162]}, {"55060172": [3, 224]}, {"55060175": [8]}, {"55060180": [3, 224]}, {"55060183": [8]}, {"55060188": [52, 8]}, {"55060191": [1, 160, 136]}, {"55060195": [62, 3, 224]}, {"55060199": [8]}, {"55060204": [36, 136]}, {"55060207": [134, 36, 9, 255, 255, 37, 41]}, {"55060215": [1, 52, 1]}, {"55060219": [3]}, {"55060221": [41, 8, 42, 20, 32]}, {"55060227": [7]}, {"55060232": [1, 9, 80, 33, 145, 75]}, {"55060240": [52, 1]}, {"55060243": [255, 21, 97, 255, 247]}, {"55060252": [161, 69]}, {"55060256": [3, 224]}, {"55060259": [8]}, {"55060264": [36, 136]}, {"55060267": [168, 1, 6, 64, 33, 145, 9]}, {"55060276": [1, 37, 72, 37, 161, 9]}, {"55060284": [3, 224]}, {"55060287": [8]}, {"55060292": [36, 136]}, {"55060295": [188, 1, 5, 64, 33, 129, 9]}, {"55060304": [5, 33]}, {"55060307": [2]}, {"55060312": [52, 9]}, {"55060316": [37, 41]}, {"55060319": [1, 161, 9]}, {"55060324": [3, 224]}, {"55060327": [8]}, {"55060332": [52, 8]}, {"55060335": [1, 160, 136]}, {"55060339": [61, 52, 8]}, {"55060343": [20, 160, 136]}, {"55060347": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [50, 160, 136]}, {"55060375": [58, 52, 8]}, {"55060379": [48, 164, 136, 19, 244, 160, 136]}, {"55060387": [51, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [2, 160, 136]}, {"55060403": [50, 52, 8]}, {"55060407": [1, 160, 136]}, {"55060411": [58, 160, 136]}, {"55060415": [60, 52, 8]}, {"55060419": [96, 164, 136, 19, 244, 160, 136]}, {"55060427": [51, 3, 224]}, {"55060431": [8]}, {"55060436": [144, 136]}, {"55060439": [124, 52, 1]}, {"55060443": [255, 17, 1]}, {"55060447": [6, 52, 2]}, {"55060451": [107, 144, 136]}, {"55060455": [148, 45, 8]}, {"55060459": [6, 17]}, {"55060463": [2, 52, 2]}, {"55060467": [106, 52, 2]}, {"55060471": [3, 3, 224]}, {"55060475": [8]}, {"55060480": [144, 136]}, {"55060483": [123, 52, 1]}, {"55060487": [255, 17, 1]}, {"55060491": [2, 52, 162]}, {"55060496": [52, 2]}, {"55060499": [12, 3, 224]}, {"55060503": [8]}, {"55060508": [52, 8]}, {"55060511": [7, 160, 136]}, {"55060515": [123, 3, 224]}, {"55060519": [8]}, {"55060524": [52, 8]}, {"55060527": [1]}, {"55060529": [168, 64, 4, 140, 137]}, {"55060535": [164, 1, 40, 72, 37, 172, 137]}, {"55060543": [164, 3, 224]}, {"55060547": [8]}, {"55060552": [48, 132]}, {"55060555": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060567": [140, 16, 129]}, {"55060571": [22, 145, 2]}, {"55060575": [117, 52, 1]}, {"55060579": [141, 16, 129]}, {"55060583": [19, 145, 2]}, {"55060587": [117, 16, 128]}, {"55060591": [17, 145, 2]}, {"55060595": [116, 52, 1]}, {"55060599": [138, 16, 129]}, {"55060603": [14, 145, 2]}, {"55060607": [116, 52, 1]}, {"55060611": [139, 16, 129]}, {"55060615": [11, 145, 2]}, {"55060619": [116, 52, 1]}, {"55060623": [88, 16, 129]}, {"55060627": [8, 52, 2]}, {"55060632": [52, 1]}, {"55060635": [120, 16, 129]}, {"55060639": [5, 52, 2]}, {"55060644": [52, 1]}, {"55060647": [121, 16, 129]}, {"55060651": [2, 52, 2]}, {"55060656": [52, 2]}, {"55060659": [255, 3, 224]}, {"55060663": [8]}, {"55060668": [39, 189, 255, 224, 175, 191]}, {"55060675": [16, 175, 176]}, {"55060679": [20, 12, 16, 11, 11]}, {"55060688": [4, 65]}, {"55060691": [2]}, {"55060696": [52, 2]}, {"55060699": [91]}, {"55060701": [64, 32, 33, 12, 16, 11, 114]}, {"55060712": [16, 96]}, {"55060715": [22, 175, 163]}, {"55060719": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060728": [133, 9]}, {"55060731": [2, 17, 32]}, {"55060735": [3, 52, 10]}, {"55060739": [1, 16]}, {"55060743": [12, 165, 10]}, {"55060748": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060759": [6, 144, 102]}, {"55060763": [7, 140, 105]}, {"55060767": [8, 1, 32, 248, 9]}, {"55060776": [143, 163]}, {"55060779": [28, 144, 101]}, {"55060783": [1, 12, 1, 191, 115, 2, 32, 32, 33, 143, 163]}, {"55060795": [28, 144, 101]}, {"55060799": [3, 16]}, {"55060803": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060815": [6]}, {"55060817": [74]}, {"55060819": [24]}, {"55060822": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060832": [60, 8, 128, 64, 37, 8, 32]}, {"55060840": [133, 9]}, {"55060843": [2, 17, 32]}, {"55060847": [3, 52, 10]}, {"55060851": [1, 165, 10]}, {"55060856": [52, 5]}, {"55060859": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060871": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060882": [48, 33, 143, 191]}, {"55060887": [16, 143, 176]}, {"55060891": [20, 39, 189]}, {"55060895": [32, 3, 224]}, {"55060899": [8]}, {"55060904": [143, 166]}, {"55060907": [48, 132, 197]}, {"55060911": [4, 8, 16, 10, 114]}, {"55060920": [143, 185]}, {"55060923": [44, 135, 37]}, {"55060927": [4, 8, 16, 10, 114]}, {"55060936": [60, 10, 128, 64, 37, 74, 32, 8, 141, 75]}, {"55060947": [12, 17, 96]}, {"55060951": [2]}, {"55060956": [149, 69]}, {"55060959": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060972": [60, 9, 128, 64, 37, 41, 32, 24, 129, 42]}, {"55060983": [3, 5, 64]}, {"55060987": [11, 1, 42, 72, 32, 129, 40]}, {"55060996": [52, 10]}, {"55060999": [127, 21, 10]}, {"55061003": [6]}, {"55061008": [60, 10, 128, 18, 37, 74, 165, 208, 133, 72]}, {"55061019": [144, 33, 8]}, {"55061023": [1, 165, 72]}, {"55061027": [144, 161, 32]}, {"55061032": [3, 224]}, {"55061035": [8]}, {"55061040": [60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061051": [12, 17, 32]}, {"55061055": [2]}, {"55061060": [129, 3]}, {"55061063": [2]}, {"55061065": [3, 15, 195]}, {"55061069": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061083": [8]}, {"55061088": [144, 69]}, {"55061091": [3, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061103": [12, 17, 32]}, {"55061107": [2]}, {"55061112": [145, 5]}, {"55061115": [3, 3, 224]}, {"55061119": [8]}, {"55061124": [143, 162]}, {"55061127": [36, 144, 69]}, {"55061132": [60, 8, 128, 64, 37, 8, 32]}, {"55061140": [133, 9]}, {"55061143": [2, 17, 32]}, {"55061147": [4, 52, 10]}, {"55061151": [1, 165, 10]}, {"55061156": [16]}, {"55061159": [24, 52, 5]}, {"55061163": [65, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061175": [12, 17, 32]}, {"55061179": [19]}, {"55061184": [145, 5]}, {"55061187": [1, 175, 164]}, {"55061192": [175, 165]}, {"55061195": [4, 175, 166]}, {"55061199": [8, 39, 189, 255, 232, 175, 191]}, {"55061207": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061219": [6, 145, 6]}, {"55061223": [7, 141, 9]}, {"55061227": [8, 1, 32, 248, 9]}, {"55061236": [143, 191]}, {"55061239": [16, 39, 189]}, {"55061243": [24, 143, 164]}, {"55061248": [143, 165]}, {"55061251": [4, 143, 166]}, {"55061255": [8, 3, 224]}, {"55061259": [8]}, {"55061264": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061275": [16, 175, 163]}, {"55061279": [20, 175, 191]}, {"55061283": [24, 12, 16, 10, 209]}, {"55061292": [143, 162]}, {"55061295": [16, 143, 163]}, {"55061299": [20, 143, 191]}, {"55061303": [24, 39, 189]}, {"55061307": [32, 3, 224]}, {"55061311": [8]}, {"55061316": [39, 189, 255, 232, 175, 191]}, {"55061323": [16, 60, 8, 128, 64, 37, 8, 32, 8, 173]}, {"55061336": [173]}, {"55061339": [4, 173]}, {"55061343": [8, 173]}, {"55061347": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061363": [42]}, {"55061369": [9, 15, 195, 1, 33, 32, 38]}, {"55061377": [129, 32, 35, 141, 5, 4, 40, 12, 16, 11, 11]}, {"55061392": [4, 64]}, {"55061395": [34]}, {"55061400": [52, 68]}, {"55061404": [12, 16, 11, 114]}, {"55061412": [16, 96]}, {"55061415": [12]}, {"55061420": [60, 8, 128, 64, 37, 8, 32, 8, 140, 105]}, {"55061432": [173, 9]}, {"55061436": [140, 105]}, {"55061439": [4, 173, 9]}, {"55061443": [4, 140, 105]}, {"55061447": [8, 173, 9]}, {"55061451": [8, 52, 9]}, {"55061455": [1, 173, 9]}, {"55061459": [12, 144, 98]}, {"55061464": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061480": [52, 1]}, {"55061483": [10, 21, 65]}, {"55061487": [6]}, {"55061492": [149, 42]}, {"55061495": [28, 49, 74, 240, 31]}, {"55061501": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061511": [28, 129, 9, 4, 36, 5, 33]}, {"55061519": [2]}, {"55061525": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061535": [16, 39, 189]}, {"55061539": [24, 3, 224]}, {"55061543": [8]}, {"55061548": [39, 189, 255, 232, 175, 191]}, {"55061555": [16, 12, 16, 11, 25]}, {"55061564": [36, 1, 255, 255, 16, 65]}, {"55061571": [4]}, {"55061576": [52, 68]}, {"55061580": [12, 16, 11, 77]}, {"55061588": [143, 191]}, {"55061591": [16, 39, 189]}, {"55061595": [24, 3, 224]}, {"55061599": [8]}, {"55061604": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061615": [164, 52, 8]}, {"55061620": [52, 137]}, {"55061624": [148, 170]}, {"55061628": [52, 1, 1, 156, 21, 65]}, {"55061635": [8]}, {"55061640": [52, 8]}, {"55061643": [3, 148, 171]}, {"55061647": [28, 49, 105]}, {"55061651": [255, 49, 98, 31]}, {"55061657": [2, 18, 2, 16]}, {"55061663": [31]}, {"55061668": [52, 1]}, {"55061671": [10, 21, 65]}, {"55061675": [14]}, {"55061680": [148, 171]}, {"55061683": [28, 52, 1]}, {"55061687": [16, 20, 65]}, {"55061691": [8]}, {"55061696": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061707": [4]}, {"55061712": [36, 2, 255, 255, 16]}, {"55061719": [21]}, {"55061724": [52, 8]}, {"55061727": [1, 49, 105]}, {"55061731": [31, 52, 1]}, {"55061735": [21, 21, 65]}, {"55061739": [12]}, {"55061744": [52, 1]}, {"55061747": [62, 16, 129]}, {"55061751": [7]}, {"55061756": [52, 1]}, {"55061759": [66, 16, 129]}, {"55061763": [4]}, {"55061768": [36, 2, 255, 255, 16]}, {"55061775": [7]}, {"55061780": [52, 8]}, {"55061783": [2, 144, 169, 1, 65]}, {"55061789": [2, 18]}, {"55061793": [72, 16, 37]}, {"55061797": [2, 18]}, {"55061801": [73, 16, 37, 3, 224]}, {"55061807": [8]}, {"55061812": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061824": [129, 9]}, {"55061828": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061851": [4, 141, 9]}, {"55061856": [17, 32]}, {"55061859": [23]}, {"55061865": [9, 82, 2, 49, 75, 248]}, {"55061873": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061896": [49, 34]}, {"55061899": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061920": [60, 12, 128, 64, 37, 140, 28]}, {"55061928": [129, 140]}, {"55061932": [17, 108]}, {"55061935": [4, 165, 32]}, {"55061939": [2, 161, 43]}, {"55061943": [2, 161, 34]}, {"55061947": [3, 173, 36]}, {"55061951": [4, 3, 224]}, {"55061955": [8]}, {"55061960": [39, 189, 255, 224, 175, 176]}, {"55061967": [16, 175, 177]}, {"55061971": [20, 175, 191]}, {"55061975": [24, 52, 130]}, {"55061980": [52, 80]}, {"55061984": [38, 8, 255, 128, 5]}, {"55061991": [18]}, {"55061996": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55062007": [16, 1, 9]}, {"55062011": [24]}, {"55062014": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55062032": [142, 40]}, {"55062035": [12, 1]}, {"55062038": [248, 9]}, {"55062044": [20, 80, 255, 239]}, {"55062052": [54, 35]}, {"55062056": [16]}, {"55062059": [2]}, {"55062064": [52, 3]}, {"55062068": [143, 176]}, {"55062071": [16, 143, 177]}, {"55062075": [20, 143, 191]}, {"55062079": [24, 39, 189]}, {"55062083": [32, 3, 224]}, {"55062087": [8]}, {"55062092": [140, 136, 29, 44, 52, 9]}, {"55062099": [1]}, {"55062101": [9, 78]}, {"55062104": [1, 9, 16, 36, 16, 64]}, {"55062111": [36]}, {"55062116": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062131": [164, 52, 1]}, {"55062135": [61, 17, 129]}, {"55062139": [10]}, {"55062145": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062155": [25]}, {"55062160": [52, 13]}, {"55062163": [1, 161, 141, 29, 40, 37, 74]}, {"55062171": [3, 16]}, {"55062175": [9]}, {"55062180": [52, 12]}, {"55062183": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062199": [14]}, {"55062204": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062240": [60, 9, 128, 64, 37, 41, 32, 24, 161, 40]}, {"55062252": [52, 2]}, {"55062256": [3, 224]}, {"55062259": [8]}, {"55062264": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062276": [16]}, {"55062279": [34]}, {"55062284": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062296": [16]}, {"55062299": [29]}, {"55062304": [52, 2]}, {"55062307": [255, 32, 232, 255, 166, 33, 8]}, {"55062315": [97, 16]}, {"55062319": [24]}, {"55062324": [52, 8]}, {"55062327": [100, 16]}, {"55062331": [21]}, {"55062336": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062351": [1, 160, 40, 14, 222, 52, 8]}, {"55062359": [104, 16]}, {"55062363": [13]}, {"55062368": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062383": [4, 160, 40, 14, 222, 52, 8]}, {"55062391": [106, 16]}, {"55062395": [5]}, {"55062400": [52, 5]}, {"55062403": [3, 52, 8]}, {"55062407": [107, 16]}, {"55062411": [1]}, {"55062416": [60, 9, 128, 64, 37, 41, 32, 24, 60, 10, 128, 64, 37, 74, 32, 27, 129, 44]}, {"55062436": [17, 136]}, {"55062439": [11, 33, 41]}, {"55062443": [1, 21, 42, 255, 252]}, {"55062452": [60, 9, 128, 64, 37, 41, 32, 23, 33, 41]}, {"55062463": [1, 17, 42]}, {"55062467": [4, 129, 44]}, {"55062472": [21, 128, 255, 252]}, {"55062480": [161, 40]}, {"55062484": [3, 224]}, {"55062487": [8]}, {"55062493": [96, 120, 33, 129, 236, 14, 223, 53, 152]}, {"55062503": [128, 49, 142]}, {"55062507": [128, 52, 2]}, {"55062511": [5, 52, 3]}, {"55062515": [5, 3, 224]}, {"55062519": [8]}, {"55062524": [175, 164]}, {"55062527": [104, 175, 165]}, {"55062531": [108, 175, 166]}, {"55062535": [112, 175, 167]}, {"55062539": [116, 39, 189, 255, 232, 175, 163]}, {"55062547": [16, 175, 191]}, {"55062551": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062567": [32, 21]}, {"55062571": [31]}, {"55062576": [60, 9, 128, 64, 37, 41, 32, 27, 52, 10]}, {"55062587": [255, 161, 42]}, {"55062592": [60, 9, 128, 64, 37, 41, 32, 24, 36, 10, 255, 255, 52, 12]}, {"55062607": [3, 33, 74]}, {"55062611": [1, 17, 76]}, {"55062615": [20, 1, 42, 88, 32, 129, 104]}, {"55062624": [17]}, {"55062626": [255, 251]}, {"55062632": [60, 9, 128, 64, 37, 41, 32, 27, 161, 42]}, {"55062644": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062655": [1, 165, 42]}, {"55062660": [60, 9, 128, 65, 52, 10]}, {"55062667": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 209]}, {"55062696": [143, 163]}, {"55062699": [16, 143, 191]}, {"55062703": [20, 39, 189]}, {"55062707": [24, 143, 164]}, {"55062711": [104, 143, 165]}, {"55062715": [108, 143, 166]}, {"55062719": [112, 143, 167]}, {"55062723": [116, 132, 110, 19, 196, 3, 224]}, {"55062731": [8]}, {"55062736": [147, 25]}, {"55062739": [116, 52, 1]}, {"55062743": [255, 23, 33]}, {"55062747": [2]}, {"55062752": [52, 25]}, {"55062755": [44, 3, 224]}, {"55062759": [8, 167, 185]}, {"55062763": [154, 147, 44]}, {"55062767": [116, 52, 1]}, {"55062771": [255, 21, 129]}, {"55062775": [2]}, {"55062780": [52, 12]}, {"55062783": [44, 3, 224]}, {"55062787": [8]}, {"55062792": [145, 174]}, {"55062795": [116, 52, 1]}, {"55062799": [255, 21, 193]}, {"55062803": [2]}, {"55062808": [52, 14]}, {"55062811": [44, 3, 224]}, {"55062815": [8, 167, 174]}, {"55062819": [154, 145, 207]}, {"55062823": [116, 52, 1]}, {"55062827": [255, 21, 225]}, {"55062831": [2]}, {"55062836": [52, 15]}, {"55062839": [44, 3, 224]}, {"55062843": [8, 167, 175]}, {"55062847": [154, 60, 8, 128, 64, 37, 8, 32, 28, 142, 9]}, {"55062859": [104, 173, 9]}, {"55062864": [142, 9]}, {"55062867": [108, 173, 9]}, {"55062871": [4, 150, 9]}, {"55062875": [112, 165, 9]}, {"55062879": [8, 150, 9]}, {"55062883": [156, 165, 9]}, {"55062887": [10, 3, 224]}, {"55062891": [8, 142, 14]}, {"55062895": [4, 39, 189, 255, 224, 175, 176]}, {"55062903": [16, 175, 177]}, {"55062907": [20, 175, 191]}, {"55062911": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 28, 142, 8]}, {"55062931": [4, 17]}, {"55062935": [5]}, {"55062940": [12, 16, 12, 134]}, {"55062948": [16]}, {"55062951": [3]}, {"55062956": [12, 16, 12, 153]}, {"55062964": [12, 16, 12, 121, 52, 4]}, {"55062972": [12, 16, 12, 121, 52, 4]}, {"55062979": [1, 12, 16, 12, 121, 52, 4]}, {"55062987": [2, 143, 176]}, {"55062991": [16, 143, 177]}, {"55062995": [20, 143, 191]}, {"55062999": [24, 39, 189]}, {"55063003": [32, 3, 224]}, {"55063007": [8]}, {"55063012": [2, 4, 64, 33, 145, 9]}, {"55063019": [108, 52, 1]}, {"55063023": [255, 17, 33]}, {"55063027": [7]}, {"55063032": [2, 9, 72, 33, 145, 41]}, {"55063039": [116, 52, 1]}, {"55063043": [44, 17, 33]}, {"55063047": [2]}, {"55063052": [161, 9]}, {"55063055": [105, 3, 224]}, {"55063059": [8]}, {"55063064": [39, 189, 255, 232, 175, 191]}, {"55063071": [16, 142, 40]}, {"55063076": [174, 8]}, {"55063079": [64, 142, 40]}, {"55063083": [4, 174, 8]}, {"55063087": [68, 150, 40]}, {"55063091": [8, 166, 8]}, {"55063095": [72, 162]}, {"55063098": [15, 51, 146, 8]}, {"55063103": [74, 52, 1]}, {"55063107": [255, 21, 1]}, {"55063111": [3]}, {"55063116": [12, 16, 12, 167]}, {"55063124": [143, 191]}, {"55063127": [16, 39, 189]}, {"55063131": [24, 3, 224]}, {"55063135": [8]}, {"55063140": [142, 8]}, {"55063143": [64, 174, 8]}, {"55063147": [104, 142, 8]}, {"55063151": [68, 174, 8]}, {"55063155": [108, 150, 8]}, {"55063159": [72, 166, 8]}, {"55063163": [112, 146, 8]}, {"55063167": [104, 52, 1]}, {"55063171": [255, 21, 1]}, {"55063175": [3]}, {"55063180": [52, 8]}, {"55063183": [1, 162, 8, 15, 51, 3, 224]}, {"55063191": [8]}, {"55063196": [39, 189, 255, 232, 175, 191]}, {"55063203": [16, 150, 8]}, {"55063207": [156, 49, 8]}, {"55063211": [64, 17]}, {"55063215": [5]}, {"55063220": [150, 8]}, {"55063223": [112, 49, 8, 255, 15, 53, 8]}, {"55063231": [48, 166, 8]}, {"55063235": [112, 146, 40]}, {"55063239": [1, 162, 8]}, {"55063243": [105, 150, 40]}, {"55063247": [2, 166, 8]}, {"55063251": [106, 142, 40]}, {"55063255": [4, 174, 8]}, {"55063259": [108, 12, 16, 12, 193, 52, 4]}, {"55063268": [12, 16, 12, 193, 52, 4]}, {"55063275": [1, 12, 16, 12, 193, 52, 4]}, {"55063283": [2, 143, 191]}, {"55063287": [16, 39, 189]}, {"55063291": [24, 3, 224]}, {"55063295": [8]}, {"55063300": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 51, 176, 145, 10]}, {"55063315": [108, 52, 1]}, {"55063319": [255, 17, 65]}, {"55063323": [5]}, {"55063328": [1, 42, 72, 33, 145, 41]}, {"55063336": [21, 32]}, {"55063339": [28]}, {"55063344": [60, 9, 128, 64, 37, 41, 51, 163, 37, 41]}, {"55063355": [1, 145, 42]}, {"55063360": [17, 64]}, {"55063363": [19]}, {"55063368": [2, 10, 88, 33, 145, 107]}, {"55063375": [116, 52, 1]}, {"55063379": [255, 17, 97, 255, 248]}, {"55063388": [146, 12]}, {"55063391": [108, 17, 138, 255, 245]}, {"55063400": [146, 12]}, {"55063403": [109, 17, 138, 255, 242]}, {"55063412": [146, 12]}, {"55063415": [110, 17, 138, 255, 239]}, {"55063424": [161, 11]}, {"55063427": [105, 161, 10]}, {"55063431": [108, 16]}, {"55063435": [4]}, {"55063440": [52, 9]}, {"55063443": [255, 161, 9]}, {"55063447": [105, 161, 9]}, {"55063451": [108, 3, 224]}, {"55063455": [8]}, {"55063460": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063473": [1, 1, 1, 1, 1]}, {"55063479": [1, 1, 1, 1, 1]}, {"55063485": [1]}, {"55063487": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063497": [51, 8, 33, 32, 15]}, {"55063503": [71, 21, 234]}, {"55063507": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063519": [164]}, {"55063521": [15, 122, 3, 20, 64]}, {"55063527": [5, 52, 2, 72, 48, 21, 226]}, {"55063535": [7]}, {"55063540": [36, 25]}, {"55063543": [3, 16]}, {"55063547": [4, 52, 2, 99, 17, 21, 226]}, {"55063555": [2]}, {"55063560": [36, 25]}, {"55063563": [3, 3, 224]}, {"55063567": [8]}, {"55063572": [141, 173, 138, 160, 52, 2, 128]}, {"55063580": [16, 77]}, {"55063583": [2]}, {"55063588": [16]}, {"55063591": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063607": [1, 16, 64]}, {"55063611": [2]}, {"55063616": [16]}, {"55063619": [2, 52, 2]}, {"55063623": [1, 161, 226, 28, 191, 3, 224]}, {"55063631": [8]}, {"55063637": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063651": [164]}, {"55063653": [15, 122, 3, 20, 64]}, {"55063659": [5, 52, 2, 72, 48, 21, 226]}, {"55063667": [7]}, {"55063672": [36, 25]}, {"55063675": [3, 16]}, {"55063679": [4, 52, 2, 99, 17, 21, 226]}, {"55063687": [2]}, {"55063692": [36, 25]}, {"55063695": [3, 3, 224]}, {"55063699": [8]}, {"55063704": [162, 37]}, {"55063707": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063719": [4, 142, 10]}, {"55063724": [17, 64]}, {"55063727": [11]}, {"55063733": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063745": [24, 194, 2, 23]}, {"55063751": [3, 49, 89]}, {"55063755": [255, 129, 234]}, {"55063760": [3, 42, 200, 37, 8, 16, 13, 41, 161, 249]}, {"55063772": [3, 224]}, {"55063775": [8]}] \ No newline at end of file diff --git a/version.py b/version.py index ce4e0fcbb..797c7156f 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.2 f.LUM' +__version__ = '2.15.3 f.LUM' From 84e30b5b3d95607da2a757a81d02e0090a72b372 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Fri, 3 Aug 2018 12:26:55 -0400 Subject: [PATCH 220/755] Fix saria song crash on n64 --- ASM/src/cutscenes.asm | 12 +++++++++--- ASM/src/hacks.asm | 14 +++----------- Rom.py | 3 +-- data/base2current.json | 2 +- version.py | 2 +- 5 files changed, 15 insertions(+), 18 deletions(-) diff --git a/ASM/src/cutscenes.asm b/ASM/src/cutscenes.asm index e059abbef..702a386f3 100644 --- a/ASM/src/cutscenes.asm +++ b/ASM/src/cutscenes.asm @@ -138,9 +138,15 @@ store_pending_spedial_item: override_saria_song_check: move t7, v1 lb t4, 0x0EDF(t7) - ori t8, t4, 0x80 andi t6, t4, 0x80 - li v0, 5 + beqz t6, @@get_item li v1, 5 + + jr ra + li v0, 2 + +@@get_item: + ori t8, t4, 0x80 + sb t8, 0x0EDF(t7) jr ra - nop \ No newline at end of file + move v0, v1 \ No newline at end of file diff --git a/ASM/src/hacks.asm b/ASM/src/hacks.asm index 5235bd6ee..e83810617 100755 --- a/ASM/src/hacks.asm +++ b/ASM/src/hacks.asm @@ -363,17 +363,9 @@ .skip 4 andi t8, t7, 0x02 -;lw $t5,164(v1) -;addiu $v1, $zero, 5 -;and $t6, $t4, $t5 -.org 0xE29384 - jal override_saria_song_check - move t5, ra - move ra, t5 -return_saria_song_check: -;move $v0, $v1 -.org 0xE293A4 - sb t8, 0x0EDF(t7) +;li v1, 5 +.org 0xE29388 + j override_saria_song_check ; li a1, 3 .org 0xDB532C diff --git a/Rom.py b/Rom.py index 3c632a7ee..62080e56b 100644 --- a/Rom.py +++ b/Rom.py @@ -1180,8 +1180,7 @@ def write_save_table(rom): rom.write_int32(0xB06400, 0x8E0F00A4) rom.write_int32(0xB0640C, 0x01CFC024) # saria's song - rom.write_int32s(0xE29384, [0x8C6D00A4, 0x24030005, 0x018D7024]) - rom.write_int32(0xE293A4, 0x00601025) + rom.write_int32(0xE29388, 0x24030005) # Set Default targeting option to Hold if world.default_targeting == 'hold': diff --git a/data/base2current.json b/data/base2current.json index 96e47d1d5..5897c0313 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -1 +1 @@ -[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 196]}, {"11311804": [12, 16, 11, 205]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 190, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 92]}, {"11427312": [12, 16, 13, 5]}, {"11427320": [12, 16, 11, 200]}, {"11427332": [0, 0]}, {"11427335": [0]}, {"11431496": [12, 16, 11, 195, 1, 15, 192, 33]}, {"11559936": [130]}, {"11559938": [14, 222]}, {"11559948": [49, 248, 0, 2]}, {"11562028": [12, 16, 13, 38]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 21]}, {"11882076": [12, 16, 12, 242]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 59, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 66, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 73, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 52, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 140]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 18]}, {"12427480": [12, 16, 10, 106]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 110]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 11, 255, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 152]}, {"12491480": [12, 16, 10, 161]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 147]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 80]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 128, 73, 14, 222]}, {"14149508": [52]}, {"14149510": [0, 1, 2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 208]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 224]}, {"14624335": [118]}, {"14720872": [128]}, {"14720874": [14, 222]}, {"14720884": [49, 248, 0, 4]}, {"14720944": [12, 16, 11, 216]}, {"14848900": [12, 16, 11, 247, 3, 224, 104, 33]}, {"14848909": [160, 248, 33]}, {"14848932": [161, 248, 14, 223]}, {"14872723": [52]}, {"15327704": [52, 9, 64, 0]}, {"15327728": [52]}, {"15327730": [91, 8]}, {"15327744": [52]}, {"15327746": [0, 10]}, {"15327757": [169]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 236, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 48, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 76, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 104, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 220, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 108, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 140, 128, 64, 38, 132, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 172, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 39, 212, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 28, 128, 64, 40]}, {"55059600": [83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 3, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 44, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [2, 52, 2]}, {"55060003": [69, 52, 2]}, {"55060007": [70, 3, 224]}, {"55060011": [8]}, {"55060016": [144, 136]}, {"55060019": [162, 49, 8]}, {"55060023": [6, 17]}, {"55060027": [2, 52, 2]}, {"55060031": [55, 52, 2]}, {"55060035": [56, 3, 224]}, {"55060039": [8]}, {"55060044": [144, 136]}, {"55060047": [161, 49, 8]}, {"55060051": [32, 17]}, {"55060055": [2, 52, 2]}, {"55060059": [121, 52, 2]}, {"55060063": [122, 3, 224]}, {"55060067": [8]}, {"55060072": [144, 136]}, {"55060075": [161, 49, 8]}, {"55060079": [4, 17]}, {"55060083": [2, 52, 2]}, {"55060087": [119, 52, 2]}, {"55060091": [120, 3, 224]}, {"55060095": [8]}, {"55060100": [144, 136]}, {"55060103": [50, 17]}, {"55060107": [2, 52, 2]}, {"55060111": [192, 52, 2]}, {"55060115": [193, 3, 224]}, {"55060119": [8]}, {"55060124": [144, 136]}, {"55060127": [163, 49, 8]}, {"55060131": [3, 17]}, {"55060135": [2, 52, 2]}, {"55060139": [77, 52, 162]}, {"55060144": [3, 224]}, {"55060147": [8]}, {"55060152": [144, 136]}, {"55060155": [163, 49, 8]}, {"55060159": [24, 17]}, {"55060163": [2, 52, 2]}, {"55060167": [77, 52, 162]}, {"55060172": [3, 224]}, {"55060175": [8]}, {"55060180": [3, 224]}, {"55060183": [8]}, {"55060188": [52, 8]}, {"55060191": [1, 160, 136]}, {"55060195": [62, 3, 224]}, {"55060199": [8]}, {"55060204": [36, 136]}, {"55060207": [134, 36, 9, 255, 255, 37, 41]}, {"55060215": [1, 52, 1]}, {"55060219": [3]}, {"55060221": [41, 8, 42, 20, 32]}, {"55060227": [7]}, {"55060232": [1, 9, 80, 33, 145, 75]}, {"55060240": [52, 1]}, {"55060243": [255, 21, 97, 255, 247]}, {"55060252": [161, 69]}, {"55060256": [3, 224]}, {"55060259": [8]}, {"55060264": [36, 136]}, {"55060267": [168, 1, 6, 64, 33, 145, 9]}, {"55060276": [1, 37, 72, 37, 161, 9]}, {"55060284": [3, 224]}, {"55060287": [8]}, {"55060292": [36, 136]}, {"55060295": [188, 1, 5, 64, 33, 129, 9]}, {"55060304": [5, 33]}, {"55060307": [2]}, {"55060312": [52, 9]}, {"55060316": [37, 41]}, {"55060319": [1, 161, 9]}, {"55060324": [3, 224]}, {"55060327": [8]}, {"55060332": [52, 8]}, {"55060335": [1, 160, 136]}, {"55060339": [61, 52, 8]}, {"55060343": [20, 160, 136]}, {"55060347": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [50, 160, 136]}, {"55060375": [58, 52, 8]}, {"55060379": [48, 164, 136, 19, 244, 160, 136]}, {"55060387": [51, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [2, 160, 136]}, {"55060403": [50, 52, 8]}, {"55060407": [1, 160, 136]}, {"55060411": [58, 160, 136]}, {"55060415": [60, 52, 8]}, {"55060419": [96, 164, 136, 19, 244, 160, 136]}, {"55060427": [51, 3, 224]}, {"55060431": [8]}, {"55060436": [144, 136]}, {"55060439": [124, 52, 1]}, {"55060443": [255, 17, 1]}, {"55060447": [6, 52, 2]}, {"55060451": [107, 144, 136]}, {"55060455": [148, 45, 8]}, {"55060459": [6, 17]}, {"55060463": [2, 52, 2]}, {"55060467": [106, 52, 2]}, {"55060471": [3, 3, 224]}, {"55060475": [8]}, {"55060480": [144, 136]}, {"55060483": [123, 52, 1]}, {"55060487": [255, 17, 1]}, {"55060491": [2, 52, 162]}, {"55060496": [52, 2]}, {"55060499": [12, 3, 224]}, {"55060503": [8]}, {"55060508": [52, 8]}, {"55060511": [7, 160, 136]}, {"55060515": [123, 3, 224]}, {"55060519": [8]}, {"55060524": [52, 8]}, {"55060527": [1]}, {"55060529": [168, 64, 4, 140, 137]}, {"55060535": [164, 1, 40, 72, 37, 172, 137]}, {"55060543": [164, 3, 224]}, {"55060547": [8]}, {"55060552": [48, 132]}, {"55060555": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060567": [140, 16, 129]}, {"55060571": [22, 145, 2]}, {"55060575": [117, 52, 1]}, {"55060579": [141, 16, 129]}, {"55060583": [19, 145, 2]}, {"55060587": [117, 16, 128]}, {"55060591": [17, 145, 2]}, {"55060595": [116, 52, 1]}, {"55060599": [138, 16, 129]}, {"55060603": [14, 145, 2]}, {"55060607": [116, 52, 1]}, {"55060611": [139, 16, 129]}, {"55060615": [11, 145, 2]}, {"55060619": [116, 52, 1]}, {"55060623": [88, 16, 129]}, {"55060627": [8, 52, 2]}, {"55060632": [52, 1]}, {"55060635": [120, 16, 129]}, {"55060639": [5, 52, 2]}, {"55060644": [52, 1]}, {"55060647": [121, 16, 129]}, {"55060651": [2, 52, 2]}, {"55060656": [52, 2]}, {"55060659": [255, 3, 224]}, {"55060663": [8]}, {"55060668": [39, 189, 255, 224, 175, 191]}, {"55060675": [16, 175, 176]}, {"55060679": [20, 12, 16, 11, 11]}, {"55060688": [4, 65]}, {"55060691": [2]}, {"55060696": [52, 2]}, {"55060699": [91]}, {"55060701": [64, 32, 33, 12, 16, 11, 114]}, {"55060712": [16, 96]}, {"55060715": [22, 175, 163]}, {"55060719": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060728": [133, 9]}, {"55060731": [2, 17, 32]}, {"55060735": [3, 52, 10]}, {"55060739": [1, 16]}, {"55060743": [12, 165, 10]}, {"55060748": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060759": [6, 144, 102]}, {"55060763": [7, 140, 105]}, {"55060767": [8, 1, 32, 248, 9]}, {"55060776": [143, 163]}, {"55060779": [28, 144, 101]}, {"55060783": [1, 12, 1, 191, 115, 2, 32, 32, 33, 143, 163]}, {"55060795": [28, 144, 101]}, {"55060799": [3, 16]}, {"55060803": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060815": [6]}, {"55060817": [74]}, {"55060819": [24]}, {"55060822": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060832": [60, 8, 128, 64, 37, 8, 32]}, {"55060840": [133, 9]}, {"55060843": [2, 17, 32]}, {"55060847": [3, 52, 10]}, {"55060851": [1, 165, 10]}, {"55060856": [52, 5]}, {"55060859": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060871": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060882": [48, 33, 143, 191]}, {"55060887": [16, 143, 176]}, {"55060891": [20, 39, 189]}, {"55060895": [32, 3, 224]}, {"55060899": [8]}, {"55060904": [143, 166]}, {"55060907": [48, 132, 197]}, {"55060911": [4, 8, 16, 10, 114]}, {"55060920": [143, 185]}, {"55060923": [44, 135, 37]}, {"55060927": [4, 8, 16, 10, 114]}, {"55060936": [60, 10, 128, 64, 37, 74, 32, 8, 141, 75]}, {"55060947": [12, 17, 96]}, {"55060951": [2]}, {"55060956": [149, 69]}, {"55060959": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060972": [60, 9, 128, 64, 37, 41, 32, 24, 129, 42]}, {"55060983": [3, 5, 64]}, {"55060987": [11, 1, 42, 72, 32, 129, 40]}, {"55060996": [52, 10]}, {"55060999": [127, 21, 10]}, {"55061003": [6]}, {"55061008": [60, 10, 128, 18, 37, 74, 165, 208, 133, 72]}, {"55061019": [144, 33, 8]}, {"55061023": [1, 165, 72]}, {"55061027": [144, 161, 32]}, {"55061032": [3, 224]}, {"55061035": [8]}, {"55061040": [60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061051": [12, 17, 32]}, {"55061055": [2]}, {"55061060": [129, 3]}, {"55061063": [2]}, {"55061065": [3, 15, 195]}, {"55061069": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061083": [8]}, {"55061088": [144, 69]}, {"55061091": [3, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061103": [12, 17, 32]}, {"55061107": [2]}, {"55061112": [145, 5]}, {"55061115": [3, 3, 224]}, {"55061119": [8]}, {"55061124": [143, 162]}, {"55061127": [36, 144, 69]}, {"55061132": [60, 8, 128, 64, 37, 8, 32]}, {"55061140": [133, 9]}, {"55061143": [2, 17, 32]}, {"55061147": [4, 52, 10]}, {"55061151": [1, 165, 10]}, {"55061156": [16]}, {"55061159": [24, 52, 5]}, {"55061163": [65, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061175": [12, 17, 32]}, {"55061179": [19]}, {"55061184": [145, 5]}, {"55061187": [1, 175, 164]}, {"55061192": [175, 165]}, {"55061195": [4, 175, 166]}, {"55061199": [8, 39, 189, 255, 232, 175, 191]}, {"55061207": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061219": [6, 145, 6]}, {"55061223": [7, 141, 9]}, {"55061227": [8, 1, 32, 248, 9]}, {"55061236": [143, 191]}, {"55061239": [16, 39, 189]}, {"55061243": [24, 143, 164]}, {"55061248": [143, 165]}, {"55061251": [4, 143, 166]}, {"55061255": [8, 3, 224]}, {"55061259": [8]}, {"55061264": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061275": [16, 175, 163]}, {"55061279": [20, 175, 191]}, {"55061283": [24, 12, 16, 10, 209]}, {"55061292": [143, 162]}, {"55061295": [16, 143, 163]}, {"55061299": [20, 143, 191]}, {"55061303": [24, 39, 189]}, {"55061307": [32, 3, 224]}, {"55061311": [8]}, {"55061316": [39, 189, 255, 232, 175, 191]}, {"55061323": [16, 60, 8, 128, 64, 37, 8, 32, 8, 173]}, {"55061336": [173]}, {"55061339": [4, 173]}, {"55061343": [8, 173]}, {"55061347": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061363": [42]}, {"55061369": [9, 15, 195, 1, 33, 32, 38]}, {"55061377": [129, 32, 35, 141, 5, 4, 40, 12, 16, 11, 11]}, {"55061392": [4, 64]}, {"55061395": [34]}, {"55061400": [52, 68]}, {"55061404": [12, 16, 11, 114]}, {"55061412": [16, 96]}, {"55061415": [12]}, {"55061420": [60, 8, 128, 64, 37, 8, 32, 8, 140, 105]}, {"55061432": [173, 9]}, {"55061436": [140, 105]}, {"55061439": [4, 173, 9]}, {"55061443": [4, 140, 105]}, {"55061447": [8, 173, 9]}, {"55061451": [8, 52, 9]}, {"55061455": [1, 173, 9]}, {"55061459": [12, 144, 98]}, {"55061464": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061480": [52, 1]}, {"55061483": [10, 21, 65]}, {"55061487": [6]}, {"55061492": [149, 42]}, {"55061495": [28, 49, 74, 240, 31]}, {"55061501": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061511": [28, 129, 9, 4, 36, 5, 33]}, {"55061519": [2]}, {"55061525": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061535": [16, 39, 189]}, {"55061539": [24, 3, 224]}, {"55061543": [8]}, {"55061548": [39, 189, 255, 232, 175, 191]}, {"55061555": [16, 12, 16, 11, 25]}, {"55061564": [36, 1, 255, 255, 16, 65]}, {"55061571": [4]}, {"55061576": [52, 68]}, {"55061580": [12, 16, 11, 77]}, {"55061588": [143, 191]}, {"55061591": [16, 39, 189]}, {"55061595": [24, 3, 224]}, {"55061599": [8]}, {"55061604": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061615": [164, 52, 8]}, {"55061620": [52, 137]}, {"55061624": [148, 170]}, {"55061628": [52, 1, 1, 156, 21, 65]}, {"55061635": [8]}, {"55061640": [52, 8]}, {"55061643": [3, 148, 171]}, {"55061647": [28, 49, 105]}, {"55061651": [255, 49, 98, 31]}, {"55061657": [2, 18, 2, 16]}, {"55061663": [31]}, {"55061668": [52, 1]}, {"55061671": [10, 21, 65]}, {"55061675": [14]}, {"55061680": [148, 171]}, {"55061683": [28, 52, 1]}, {"55061687": [16, 20, 65]}, {"55061691": [8]}, {"55061696": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061707": [4]}, {"55061712": [36, 2, 255, 255, 16]}, {"55061719": [21]}, {"55061724": [52, 8]}, {"55061727": [1, 49, 105]}, {"55061731": [31, 52, 1]}, {"55061735": [21, 21, 65]}, {"55061739": [12]}, {"55061744": [52, 1]}, {"55061747": [62, 16, 129]}, {"55061751": [7]}, {"55061756": [52, 1]}, {"55061759": [66, 16, 129]}, {"55061763": [4]}, {"55061768": [36, 2, 255, 255, 16]}, {"55061775": [7]}, {"55061780": [52, 8]}, {"55061783": [2, 144, 169, 1, 65]}, {"55061789": [2, 18]}, {"55061793": [72, 16, 37]}, {"55061797": [2, 18]}, {"55061801": [73, 16, 37, 3, 224]}, {"55061807": [8]}, {"55061812": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061824": [129, 9]}, {"55061828": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061851": [4, 141, 9]}, {"55061856": [17, 32]}, {"55061859": [23]}, {"55061865": [9, 82, 2, 49, 75, 248]}, {"55061873": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061896": [49, 34]}, {"55061899": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061920": [60, 12, 128, 64, 37, 140, 28]}, {"55061928": [129, 140]}, {"55061932": [17, 108]}, {"55061935": [4, 165, 32]}, {"55061939": [2, 161, 43]}, {"55061943": [2, 161, 34]}, {"55061947": [3, 173, 36]}, {"55061951": [4, 3, 224]}, {"55061955": [8]}, {"55061960": [39, 189, 255, 224, 175, 176]}, {"55061967": [16, 175, 177]}, {"55061971": [20, 175, 191]}, {"55061975": [24, 52, 130]}, {"55061980": [52, 80]}, {"55061984": [38, 8, 255, 128, 5]}, {"55061991": [18]}, {"55061996": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55062007": [16, 1, 9]}, {"55062011": [24]}, {"55062014": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55062032": [142, 40]}, {"55062035": [12, 1]}, {"55062038": [248, 9]}, {"55062044": [20, 80, 255, 239]}, {"55062052": [54, 35]}, {"55062056": [16]}, {"55062059": [2]}, {"55062064": [52, 3]}, {"55062068": [143, 176]}, {"55062071": [16, 143, 177]}, {"55062075": [20, 143, 191]}, {"55062079": [24, 39, 189]}, {"55062083": [32, 3, 224]}, {"55062087": [8]}, {"55062092": [140, 136, 29, 44, 52, 9]}, {"55062099": [1]}, {"55062101": [9, 78]}, {"55062104": [1, 9, 16, 36, 16, 64]}, {"55062111": [36]}, {"55062116": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062131": [164, 52, 1]}, {"55062135": [61, 17, 129]}, {"55062139": [10]}, {"55062145": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062155": [25]}, {"55062160": [52, 13]}, {"55062163": [1, 161, 141, 29, 40, 37, 74]}, {"55062171": [3, 16]}, {"55062175": [9]}, {"55062180": [52, 12]}, {"55062183": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062199": [14]}, {"55062204": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062240": [60, 9, 128, 64, 37, 41, 32, 24, 161, 40]}, {"55062252": [52, 2]}, {"55062256": [3, 224]}, {"55062259": [8]}, {"55062264": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062276": [16]}, {"55062279": [34]}, {"55062284": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062296": [16]}, {"55062299": [29]}, {"55062304": [52, 2]}, {"55062307": [255, 32, 232, 255, 166, 33, 8]}, {"55062315": [97, 16]}, {"55062319": [24]}, {"55062324": [52, 8]}, {"55062327": [100, 16]}, {"55062331": [21]}, {"55062336": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062351": [1, 160, 40, 14, 222, 52, 8]}, {"55062359": [104, 16]}, {"55062363": [13]}, {"55062368": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062383": [4, 160, 40, 14, 222, 52, 8]}, {"55062391": [106, 16]}, {"55062395": [5]}, {"55062400": [52, 5]}, {"55062403": [3, 52, 8]}, {"55062407": [107, 16]}, {"55062411": [1]}, {"55062416": [60, 9, 128, 64, 37, 41, 32, 24, 60, 10, 128, 64, 37, 74, 32, 27, 129, 44]}, {"55062436": [17, 136]}, {"55062439": [11, 33, 41]}, {"55062443": [1, 21, 42, 255, 252]}, {"55062452": [60, 9, 128, 64, 37, 41, 32, 23, 33, 41]}, {"55062463": [1, 17, 42]}, {"55062467": [4, 129, 44]}, {"55062472": [21, 128, 255, 252]}, {"55062480": [161, 40]}, {"55062484": [3, 224]}, {"55062487": [8]}, {"55062493": [96, 120, 33, 129, 236, 14, 223, 53, 152]}, {"55062503": [128, 49, 142]}, {"55062507": [128, 52, 2]}, {"55062511": [5, 52, 3]}, {"55062515": [5, 3, 224]}, {"55062519": [8]}, {"55062524": [175, 164]}, {"55062527": [104, 175, 165]}, {"55062531": [108, 175, 166]}, {"55062535": [112, 175, 167]}, {"55062539": [116, 39, 189, 255, 232, 175, 163]}, {"55062547": [16, 175, 191]}, {"55062551": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062567": [32, 21]}, {"55062571": [31]}, {"55062576": [60, 9, 128, 64, 37, 41, 32, 27, 52, 10]}, {"55062587": [255, 161, 42]}, {"55062592": [60, 9, 128, 64, 37, 41, 32, 24, 36, 10, 255, 255, 52, 12]}, {"55062607": [3, 33, 74]}, {"55062611": [1, 17, 76]}, {"55062615": [20, 1, 42, 88, 32, 129, 104]}, {"55062624": [17]}, {"55062626": [255, 251]}, {"55062632": [60, 9, 128, 64, 37, 41, 32, 27, 161, 42]}, {"55062644": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062655": [1, 165, 42]}, {"55062660": [60, 9, 128, 65, 52, 10]}, {"55062667": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 209]}, {"55062696": [143, 163]}, {"55062699": [16, 143, 191]}, {"55062703": [20, 39, 189]}, {"55062707": [24, 143, 164]}, {"55062711": [104, 143, 165]}, {"55062715": [108, 143, 166]}, {"55062719": [112, 143, 167]}, {"55062723": [116, 132, 110, 19, 196, 3, 224]}, {"55062731": [8]}, {"55062736": [147, 25]}, {"55062739": [116, 52, 1]}, {"55062743": [255, 23, 33]}, {"55062747": [2]}, {"55062752": [52, 25]}, {"55062755": [44, 3, 224]}, {"55062759": [8, 167, 185]}, {"55062763": [154, 147, 44]}, {"55062767": [116, 52, 1]}, {"55062771": [255, 21, 129]}, {"55062775": [2]}, {"55062780": [52, 12]}, {"55062783": [44, 3, 224]}, {"55062787": [8]}, {"55062792": [145, 174]}, {"55062795": [116, 52, 1]}, {"55062799": [255, 21, 193]}, {"55062803": [2]}, {"55062808": [52, 14]}, {"55062811": [44, 3, 224]}, {"55062815": [8, 167, 174]}, {"55062819": [154, 145, 207]}, {"55062823": [116, 52, 1]}, {"55062827": [255, 21, 225]}, {"55062831": [2]}, {"55062836": [52, 15]}, {"55062839": [44, 3, 224]}, {"55062843": [8, 167, 175]}, {"55062847": [154, 60, 8, 128, 64, 37, 8, 32, 28, 142, 9]}, {"55062859": [104, 173, 9]}, {"55062864": [142, 9]}, {"55062867": [108, 173, 9]}, {"55062871": [4, 150, 9]}, {"55062875": [112, 165, 9]}, {"55062879": [8, 150, 9]}, {"55062883": [156, 165, 9]}, {"55062887": [10, 3, 224]}, {"55062891": [8, 142, 14]}, {"55062895": [4, 39, 189, 255, 224, 175, 176]}, {"55062903": [16, 175, 177]}, {"55062907": [20, 175, 191]}, {"55062911": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 28, 142, 8]}, {"55062931": [4, 17]}, {"55062935": [5]}, {"55062940": [12, 16, 12, 134]}, {"55062948": [16]}, {"55062951": [3]}, {"55062956": [12, 16, 12, 153]}, {"55062964": [12, 16, 12, 121, 52, 4]}, {"55062972": [12, 16, 12, 121, 52, 4]}, {"55062979": [1, 12, 16, 12, 121, 52, 4]}, {"55062987": [2, 143, 176]}, {"55062991": [16, 143, 177]}, {"55062995": [20, 143, 191]}, {"55062999": [24, 39, 189]}, {"55063003": [32, 3, 224]}, {"55063007": [8]}, {"55063012": [2, 4, 64, 33, 145, 9]}, {"55063019": [108, 52, 1]}, {"55063023": [255, 17, 33]}, {"55063027": [7]}, {"55063032": [2, 9, 72, 33, 145, 41]}, {"55063039": [116, 52, 1]}, {"55063043": [44, 17, 33]}, {"55063047": [2]}, {"55063052": [161, 9]}, {"55063055": [105, 3, 224]}, {"55063059": [8]}, {"55063064": [39, 189, 255, 232, 175, 191]}, {"55063071": [16, 142, 40]}, {"55063076": [174, 8]}, {"55063079": [64, 142, 40]}, {"55063083": [4, 174, 8]}, {"55063087": [68, 150, 40]}, {"55063091": [8, 166, 8]}, {"55063095": [72, 162]}, {"55063098": [15, 51, 146, 8]}, {"55063103": [74, 52, 1]}, {"55063107": [255, 21, 1]}, {"55063111": [3]}, {"55063116": [12, 16, 12, 167]}, {"55063124": [143, 191]}, {"55063127": [16, 39, 189]}, {"55063131": [24, 3, 224]}, {"55063135": [8]}, {"55063140": [142, 8]}, {"55063143": [64, 174, 8]}, {"55063147": [104, 142, 8]}, {"55063151": [68, 174, 8]}, {"55063155": [108, 150, 8]}, {"55063159": [72, 166, 8]}, {"55063163": [112, 146, 8]}, {"55063167": [104, 52, 1]}, {"55063171": [255, 21, 1]}, {"55063175": [3]}, {"55063180": [52, 8]}, {"55063183": [1, 162, 8, 15, 51, 3, 224]}, {"55063191": [8]}, {"55063196": [39, 189, 255, 232, 175, 191]}, {"55063203": [16, 150, 8]}, {"55063207": [156, 49, 8]}, {"55063211": [64, 17]}, {"55063215": [5]}, {"55063220": [150, 8]}, {"55063223": [112, 49, 8, 255, 15, 53, 8]}, {"55063231": [48, 166, 8]}, {"55063235": [112, 146, 40]}, {"55063239": [1, 162, 8]}, {"55063243": [105, 150, 40]}, {"55063247": [2, 166, 8]}, {"55063251": [106, 142, 40]}, {"55063255": [4, 174, 8]}, {"55063259": [108, 12, 16, 12, 193, 52, 4]}, {"55063268": [12, 16, 12, 193, 52, 4]}, {"55063275": [1, 12, 16, 12, 193, 52, 4]}, {"55063283": [2, 143, 191]}, {"55063287": [16, 39, 189]}, {"55063291": [24, 3, 224]}, {"55063295": [8]}, {"55063300": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 51, 176, 145, 10]}, {"55063315": [108, 52, 1]}, {"55063319": [255, 17, 65]}, {"55063323": [5]}, {"55063328": [1, 42, 72, 33, 145, 41]}, {"55063336": [21, 32]}, {"55063339": [28]}, {"55063344": [60, 9, 128, 64, 37, 41, 51, 163, 37, 41]}, {"55063355": [1, 145, 42]}, {"55063360": [17, 64]}, {"55063363": [19]}, {"55063368": [2, 10, 88, 33, 145, 107]}, {"55063375": [116, 52, 1]}, {"55063379": [255, 17, 97, 255, 248]}, {"55063388": [146, 12]}, {"55063391": [108, 17, 138, 255, 245]}, {"55063400": [146, 12]}, {"55063403": [109, 17, 138, 255, 242]}, {"55063412": [146, 12]}, {"55063415": [110, 17, 138, 255, 239]}, {"55063424": [161, 11]}, {"55063427": [105, 161, 10]}, {"55063431": [108, 16]}, {"55063435": [4]}, {"55063440": [52, 9]}, {"55063443": [255, 161, 9]}, {"55063447": [105, 161, 9]}, {"55063451": [108, 3, 224]}, {"55063455": [8]}, {"55063460": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063473": [1, 1, 1, 1, 1]}, {"55063479": [1, 1, 1, 1, 1]}, {"55063485": [1]}, {"55063487": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063497": [51, 8, 33, 32, 15]}, {"55063503": [71, 21, 234]}, {"55063507": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063519": [164]}, {"55063521": [15, 122, 3, 20, 64]}, {"55063527": [5, 52, 2, 72, 48, 21, 226]}, {"55063535": [7]}, {"55063540": [36, 25]}, {"55063543": [3, 16]}, {"55063547": [4, 52, 2, 99, 17, 21, 226]}, {"55063555": [2]}, {"55063560": [36, 25]}, {"55063563": [3, 3, 224]}, {"55063567": [8]}, {"55063572": [141, 173, 138, 160, 52, 2, 128]}, {"55063580": [16, 77]}, {"55063583": [2]}, {"55063588": [16]}, {"55063591": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063607": [1, 16, 64]}, {"55063611": [2]}, {"55063616": [16]}, {"55063619": [2, 52, 2]}, {"55063623": [1, 161, 226, 28, 191, 3, 224]}, {"55063631": [8]}, {"55063637": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063651": [164]}, {"55063653": [15, 122, 3, 20, 64]}, {"55063659": [5, 52, 2, 72, 48, 21, 226]}, {"55063667": [7]}, {"55063672": [36, 25]}, {"55063675": [3, 16]}, {"55063679": [4, 52, 2, 99, 17, 21, 226]}, {"55063687": [2]}, {"55063692": [36, 25]}, {"55063695": [3, 3, 224]}, {"55063699": [8]}, {"55063704": [162, 37]}, {"55063707": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063719": [4, 142, 10]}, {"55063724": [17, 64]}, {"55063727": [11]}, {"55063733": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063745": [24, 194, 2, 23]}, {"55063751": [3, 49, 89]}, {"55063755": [255, 129, 234]}, {"55063760": [3, 42, 200, 37, 8, 16, 13, 41, 161, 249]}, {"55063772": [3, 224]}, {"55063775": [8]}] \ No newline at end of file +[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 196]}, {"11311804": [12, 16, 11, 205]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 190, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 95]}, {"11427312": [12, 16, 13, 8]}, {"11427320": [12, 16, 11, 200]}, {"11427332": [0, 0]}, {"11427335": [0]}, {"11431496": [12, 16, 11, 195, 1, 15, 192, 33]}, {"11559936": [130]}, {"11559938": [14, 222]}, {"11559948": [49, 248, 0, 2]}, {"11562028": [12, 16, 13, 41]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 24]}, {"11882076": [12, 16, 12, 245]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 62, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 69, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 76, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 55, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 140]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 18]}, {"12427480": [12, 16, 10, 106]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 110]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 12, 2, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 152]}, {"12491480": [12, 16, 10, 161]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 147]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 83]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 128, 73, 14, 222]}, {"14149508": [52]}, {"14149510": [0, 1, 2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 208]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 224]}, {"14624335": [118]}, {"14720872": [128]}, {"14720874": [14, 222]}, {"14720884": [49, 248, 0, 4]}, {"14720944": [12, 16, 11, 216]}, {"14848904": [8, 16, 11, 247]}, {"14872723": [52]}, {"15327704": [52, 9, 64, 0]}, {"15327728": [52]}, {"15327730": [91, 8]}, {"15327744": [52]}, {"15327746": [0, 10]}, {"15327757": [169]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 236, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 48, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 76, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 104, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 220, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 108, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 140, 128, 64, 38, 132, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 172, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 39, 212, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 28, 128, 64, 40]}, {"55059600": [83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 3, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 44, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [2, 52, 2]}, {"55060003": [69, 52, 2]}, {"55060007": [70, 3, 224]}, {"55060011": [8]}, {"55060016": [144, 136]}, {"55060019": [162, 49, 8]}, {"55060023": [6, 17]}, {"55060027": [2, 52, 2]}, {"55060031": [55, 52, 2]}, {"55060035": [56, 3, 224]}, {"55060039": [8]}, {"55060044": [144, 136]}, {"55060047": [161, 49, 8]}, {"55060051": [32, 17]}, {"55060055": [2, 52, 2]}, {"55060059": [121, 52, 2]}, {"55060063": [122, 3, 224]}, {"55060067": [8]}, {"55060072": [144, 136]}, {"55060075": [161, 49, 8]}, {"55060079": [4, 17]}, {"55060083": [2, 52, 2]}, {"55060087": [119, 52, 2]}, {"55060091": [120, 3, 224]}, {"55060095": [8]}, {"55060100": [144, 136]}, {"55060103": [50, 17]}, {"55060107": [2, 52, 2]}, {"55060111": [192, 52, 2]}, {"55060115": [193, 3, 224]}, {"55060119": [8]}, {"55060124": [144, 136]}, {"55060127": [163, 49, 8]}, {"55060131": [3, 17]}, {"55060135": [2, 52, 2]}, {"55060139": [77, 52, 162]}, {"55060144": [3, 224]}, {"55060147": [8]}, {"55060152": [144, 136]}, {"55060155": [163, 49, 8]}, {"55060159": [24, 17]}, {"55060163": [2, 52, 2]}, {"55060167": [77, 52, 162]}, {"55060172": [3, 224]}, {"55060175": [8]}, {"55060180": [3, 224]}, {"55060183": [8]}, {"55060188": [52, 8]}, {"55060191": [1, 160, 136]}, {"55060195": [62, 3, 224]}, {"55060199": [8]}, {"55060204": [36, 136]}, {"55060207": [134, 36, 9, 255, 255, 37, 41]}, {"55060215": [1, 52, 1]}, {"55060219": [3]}, {"55060221": [41, 8, 42, 20, 32]}, {"55060227": [7]}, {"55060232": [1, 9, 80, 33, 145, 75]}, {"55060240": [52, 1]}, {"55060243": [255, 21, 97, 255, 247]}, {"55060252": [161, 69]}, {"55060256": [3, 224]}, {"55060259": [8]}, {"55060264": [36, 136]}, {"55060267": [168, 1, 6, 64, 33, 145, 9]}, {"55060276": [1, 37, 72, 37, 161, 9]}, {"55060284": [3, 224]}, {"55060287": [8]}, {"55060292": [36, 136]}, {"55060295": [188, 1, 5, 64, 33, 129, 9]}, {"55060304": [5, 33]}, {"55060307": [2]}, {"55060312": [52, 9]}, {"55060316": [37, 41]}, {"55060319": [1, 161, 9]}, {"55060324": [3, 224]}, {"55060327": [8]}, {"55060332": [52, 8]}, {"55060335": [1, 160, 136]}, {"55060339": [61, 52, 8]}, {"55060343": [20, 160, 136]}, {"55060347": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [50, 160, 136]}, {"55060375": [58, 52, 8]}, {"55060379": [48, 164, 136, 19, 244, 160, 136]}, {"55060387": [51, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [2, 160, 136]}, {"55060403": [50, 52, 8]}, {"55060407": [1, 160, 136]}, {"55060411": [58, 160, 136]}, {"55060415": [60, 52, 8]}, {"55060419": [96, 164, 136, 19, 244, 160, 136]}, {"55060427": [51, 3, 224]}, {"55060431": [8]}, {"55060436": [144, 136]}, {"55060439": [124, 52, 1]}, {"55060443": [255, 17, 1]}, {"55060447": [6, 52, 2]}, {"55060451": [107, 144, 136]}, {"55060455": [148, 45, 8]}, {"55060459": [6, 17]}, {"55060463": [2, 52, 2]}, {"55060467": [106, 52, 2]}, {"55060471": [3, 3, 224]}, {"55060475": [8]}, {"55060480": [144, 136]}, {"55060483": [123, 52, 1]}, {"55060487": [255, 17, 1]}, {"55060491": [2, 52, 162]}, {"55060496": [52, 2]}, {"55060499": [12, 3, 224]}, {"55060503": [8]}, {"55060508": [52, 8]}, {"55060511": [7, 160, 136]}, {"55060515": [123, 3, 224]}, {"55060519": [8]}, {"55060524": [52, 8]}, {"55060527": [1]}, {"55060529": [168, 64, 4, 140, 137]}, {"55060535": [164, 1, 40, 72, 37, 172, 137]}, {"55060543": [164, 3, 224]}, {"55060547": [8]}, {"55060552": [48, 132]}, {"55060555": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060567": [140, 16, 129]}, {"55060571": [22, 145, 2]}, {"55060575": [117, 52, 1]}, {"55060579": [141, 16, 129]}, {"55060583": [19, 145, 2]}, {"55060587": [117, 16, 128]}, {"55060591": [17, 145, 2]}, {"55060595": [116, 52, 1]}, {"55060599": [138, 16, 129]}, {"55060603": [14, 145, 2]}, {"55060607": [116, 52, 1]}, {"55060611": [139, 16, 129]}, {"55060615": [11, 145, 2]}, {"55060619": [116, 52, 1]}, {"55060623": [88, 16, 129]}, {"55060627": [8, 52, 2]}, {"55060632": [52, 1]}, {"55060635": [120, 16, 129]}, {"55060639": [5, 52, 2]}, {"55060644": [52, 1]}, {"55060647": [121, 16, 129]}, {"55060651": [2, 52, 2]}, {"55060656": [52, 2]}, {"55060659": [255, 3, 224]}, {"55060663": [8]}, {"55060668": [39, 189, 255, 224, 175, 191]}, {"55060675": [16, 175, 176]}, {"55060679": [20, 12, 16, 11, 11]}, {"55060688": [4, 65]}, {"55060691": [2]}, {"55060696": [52, 2]}, {"55060699": [91]}, {"55060701": [64, 32, 33, 12, 16, 11, 114]}, {"55060712": [16, 96]}, {"55060715": [22, 175, 163]}, {"55060719": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060728": [133, 9]}, {"55060731": [2, 17, 32]}, {"55060735": [3, 52, 10]}, {"55060739": [1, 16]}, {"55060743": [12, 165, 10]}, {"55060748": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060759": [6, 144, 102]}, {"55060763": [7, 140, 105]}, {"55060767": [8, 1, 32, 248, 9]}, {"55060776": [143, 163]}, {"55060779": [28, 144, 101]}, {"55060783": [1, 12, 1, 191, 115, 2, 32, 32, 33, 143, 163]}, {"55060795": [28, 144, 101]}, {"55060799": [3, 16]}, {"55060803": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060815": [6]}, {"55060817": [74]}, {"55060819": [24]}, {"55060822": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060832": [60, 8, 128, 64, 37, 8, 32]}, {"55060840": [133, 9]}, {"55060843": [2, 17, 32]}, {"55060847": [3, 52, 10]}, {"55060851": [1, 165, 10]}, {"55060856": [52, 5]}, {"55060859": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060871": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060882": [48, 33, 143, 191]}, {"55060887": [16, 143, 176]}, {"55060891": [20, 39, 189]}, {"55060895": [32, 3, 224]}, {"55060899": [8]}, {"55060904": [143, 166]}, {"55060907": [48, 132, 197]}, {"55060911": [4, 8, 16, 10, 114]}, {"55060920": [143, 185]}, {"55060923": [44, 135, 37]}, {"55060927": [4, 8, 16, 10, 114]}, {"55060936": [60, 10, 128, 64, 37, 74, 32, 8, 141, 75]}, {"55060947": [12, 17, 96]}, {"55060951": [2]}, {"55060956": [149, 69]}, {"55060959": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060972": [60, 9, 128, 64, 37, 41, 32, 24, 129, 42]}, {"55060983": [3, 5, 64]}, {"55060987": [11, 1, 42, 72, 32, 129, 40]}, {"55060996": [52, 10]}, {"55060999": [127, 21, 10]}, {"55061003": [6]}, {"55061008": [60, 10, 128, 18, 37, 74, 165, 208, 133, 72]}, {"55061019": [144, 33, 8]}, {"55061023": [1, 165, 72]}, {"55061027": [144, 161, 32]}, {"55061032": [3, 224]}, {"55061035": [8]}, {"55061040": [60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061051": [12, 17, 32]}, {"55061055": [2]}, {"55061060": [129, 3]}, {"55061063": [2]}, {"55061065": [3, 15, 195]}, {"55061069": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061083": [8]}, {"55061088": [144, 69]}, {"55061091": [3, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061103": [12, 17, 32]}, {"55061107": [2]}, {"55061112": [145, 5]}, {"55061115": [3, 3, 224]}, {"55061119": [8]}, {"55061124": [143, 162]}, {"55061127": [36, 144, 69]}, {"55061132": [60, 8, 128, 64, 37, 8, 32]}, {"55061140": [133, 9]}, {"55061143": [2, 17, 32]}, {"55061147": [4, 52, 10]}, {"55061151": [1, 165, 10]}, {"55061156": [16]}, {"55061159": [24, 52, 5]}, {"55061163": [65, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061175": [12, 17, 32]}, {"55061179": [19]}, {"55061184": [145, 5]}, {"55061187": [1, 175, 164]}, {"55061192": [175, 165]}, {"55061195": [4, 175, 166]}, {"55061199": [8, 39, 189, 255, 232, 175, 191]}, {"55061207": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061219": [6, 145, 6]}, {"55061223": [7, 141, 9]}, {"55061227": [8, 1, 32, 248, 9]}, {"55061236": [143, 191]}, {"55061239": [16, 39, 189]}, {"55061243": [24, 143, 164]}, {"55061248": [143, 165]}, {"55061251": [4, 143, 166]}, {"55061255": [8, 3, 224]}, {"55061259": [8]}, {"55061264": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061275": [16, 175, 163]}, {"55061279": [20, 175, 191]}, {"55061283": [24, 12, 16, 10, 209]}, {"55061292": [143, 162]}, {"55061295": [16, 143, 163]}, {"55061299": [20, 143, 191]}, {"55061303": [24, 39, 189]}, {"55061307": [32, 3, 224]}, {"55061311": [8]}, {"55061316": [39, 189, 255, 232, 175, 191]}, {"55061323": [16, 60, 8, 128, 64, 37, 8, 32, 8, 173]}, {"55061336": [173]}, {"55061339": [4, 173]}, {"55061343": [8, 173]}, {"55061347": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061363": [42]}, {"55061369": [9, 15, 195, 1, 33, 32, 38]}, {"55061377": [129, 32, 35, 141, 5, 4, 40, 12, 16, 11, 11]}, {"55061392": [4, 64]}, {"55061395": [34]}, {"55061400": [52, 68]}, {"55061404": [12, 16, 11, 114]}, {"55061412": [16, 96]}, {"55061415": [12]}, {"55061420": [60, 8, 128, 64, 37, 8, 32, 8, 140, 105]}, {"55061432": [173, 9]}, {"55061436": [140, 105]}, {"55061439": [4, 173, 9]}, {"55061443": [4, 140, 105]}, {"55061447": [8, 173, 9]}, {"55061451": [8, 52, 9]}, {"55061455": [1, 173, 9]}, {"55061459": [12, 144, 98]}, {"55061464": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061480": [52, 1]}, {"55061483": [10, 21, 65]}, {"55061487": [6]}, {"55061492": [149, 42]}, {"55061495": [28, 49, 74, 240, 31]}, {"55061501": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061511": [28, 129, 9, 4, 36, 5, 33]}, {"55061519": [2]}, {"55061525": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061535": [16, 39, 189]}, {"55061539": [24, 3, 224]}, {"55061543": [8]}, {"55061548": [39, 189, 255, 232, 175, 191]}, {"55061555": [16, 12, 16, 11, 25]}, {"55061564": [36, 1, 255, 255, 16, 65]}, {"55061571": [4]}, {"55061576": [52, 68]}, {"55061580": [12, 16, 11, 77]}, {"55061588": [143, 191]}, {"55061591": [16, 39, 189]}, {"55061595": [24, 3, 224]}, {"55061599": [8]}, {"55061604": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061615": [164, 52, 8]}, {"55061620": [52, 137]}, {"55061624": [148, 170]}, {"55061628": [52, 1, 1, 156, 21, 65]}, {"55061635": [8]}, {"55061640": [52, 8]}, {"55061643": [3, 148, 171]}, {"55061647": [28, 49, 105]}, {"55061651": [255, 49, 98, 31]}, {"55061657": [2, 18, 2, 16]}, {"55061663": [31]}, {"55061668": [52, 1]}, {"55061671": [10, 21, 65]}, {"55061675": [14]}, {"55061680": [148, 171]}, {"55061683": [28, 52, 1]}, {"55061687": [16, 20, 65]}, {"55061691": [8]}, {"55061696": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061707": [4]}, {"55061712": [36, 2, 255, 255, 16]}, {"55061719": [21]}, {"55061724": [52, 8]}, {"55061727": [1, 49, 105]}, {"55061731": [31, 52, 1]}, {"55061735": [21, 21, 65]}, {"55061739": [12]}, {"55061744": [52, 1]}, {"55061747": [62, 16, 129]}, {"55061751": [7]}, {"55061756": [52, 1]}, {"55061759": [66, 16, 129]}, {"55061763": [4]}, {"55061768": [36, 2, 255, 255, 16]}, {"55061775": [7]}, {"55061780": [52, 8]}, {"55061783": [2, 144, 169, 1, 65]}, {"55061789": [2, 18]}, {"55061793": [72, 16, 37]}, {"55061797": [2, 18]}, {"55061801": [73, 16, 37, 3, 224]}, {"55061807": [8]}, {"55061812": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061824": [129, 9]}, {"55061828": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061851": [4, 141, 9]}, {"55061856": [17, 32]}, {"55061859": [23]}, {"55061865": [9, 82, 2, 49, 75, 248]}, {"55061873": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061896": [49, 34]}, {"55061899": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061920": [60, 12, 128, 64, 37, 140, 28]}, {"55061928": [129, 140]}, {"55061932": [17, 108]}, {"55061935": [4, 165, 32]}, {"55061939": [2, 161, 43]}, {"55061943": [2, 161, 34]}, {"55061947": [3, 173, 36]}, {"55061951": [4, 3, 224]}, {"55061955": [8]}, {"55061960": [39, 189, 255, 224, 175, 176]}, {"55061967": [16, 175, 177]}, {"55061971": [20, 175, 191]}, {"55061975": [24, 52, 130]}, {"55061980": [52, 80]}, {"55061984": [38, 8, 255, 128, 5]}, {"55061991": [18]}, {"55061996": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55062007": [16, 1, 9]}, {"55062011": [24]}, {"55062014": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55062032": [142, 40]}, {"55062035": [12, 1]}, {"55062038": [248, 9]}, {"55062044": [20, 80, 255, 239]}, {"55062052": [54, 35]}, {"55062056": [16]}, {"55062059": [2]}, {"55062064": [52, 3]}, {"55062068": [143, 176]}, {"55062071": [16, 143, 177]}, {"55062075": [20, 143, 191]}, {"55062079": [24, 39, 189]}, {"55062083": [32, 3, 224]}, {"55062087": [8]}, {"55062092": [140, 136, 29, 44, 52, 9]}, {"55062099": [1]}, {"55062101": [9, 78]}, {"55062104": [1, 9, 16, 36, 16, 64]}, {"55062111": [36]}, {"55062116": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062131": [164, 52, 1]}, {"55062135": [61, 17, 129]}, {"55062139": [10]}, {"55062145": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062155": [25]}, {"55062160": [52, 13]}, {"55062163": [1, 161, 141, 29, 40, 37, 74]}, {"55062171": [3, 16]}, {"55062175": [9]}, {"55062180": [52, 12]}, {"55062183": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062199": [14]}, {"55062204": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062240": [60, 9, 128, 64, 37, 41, 32, 24, 161, 40]}, {"55062252": [52, 2]}, {"55062256": [3, 224]}, {"55062259": [8]}, {"55062264": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062276": [16]}, {"55062279": [34]}, {"55062284": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062296": [16]}, {"55062299": [29]}, {"55062304": [52, 2]}, {"55062307": [255, 32, 232, 255, 166, 33, 8]}, {"55062315": [97, 16]}, {"55062319": [24]}, {"55062324": [52, 8]}, {"55062327": [100, 16]}, {"55062331": [21]}, {"55062336": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062351": [1, 160, 40, 14, 222, 52, 8]}, {"55062359": [104, 16]}, {"55062363": [13]}, {"55062368": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062383": [4, 160, 40, 14, 222, 52, 8]}, {"55062391": [106, 16]}, {"55062395": [5]}, {"55062400": [52, 5]}, {"55062403": [3, 52, 8]}, {"55062407": [107, 16]}, {"55062411": [1]}, {"55062416": [60, 9, 128, 64, 37, 41, 32, 24, 60, 10, 128, 64, 37, 74, 32, 27, 129, 44]}, {"55062436": [17, 136]}, {"55062439": [11, 33, 41]}, {"55062443": [1, 21, 42, 255, 252]}, {"55062452": [60, 9, 128, 64, 37, 41, 32, 23, 33, 41]}, {"55062463": [1, 17, 42]}, {"55062467": [4, 129, 44]}, {"55062472": [21, 128, 255, 252]}, {"55062480": [161, 40]}, {"55062484": [3, 224]}, {"55062487": [8]}, {"55062493": [96, 120, 33, 129, 236, 14, 223, 49, 142]}, {"55062503": [128, 17, 192]}, {"55062507": [3, 52, 3]}, {"55062511": [5, 3, 224]}, {"55062515": [8, 52, 2]}, {"55062519": [2, 53, 152]}, {"55062523": [128, 161, 248, 14, 223, 3, 224]}, {"55062531": [8]}, {"55062533": [96, 16, 33, 175, 164]}, {"55062539": [104, 175, 165]}, {"55062543": [108, 175, 166]}, {"55062547": [112, 175, 167]}, {"55062551": [116, 39, 189, 255, 232, 175, 163]}, {"55062559": [16, 175, 191]}, {"55062563": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062579": [32, 21]}, {"55062583": [31]}, {"55062588": [60, 9, 128, 64, 37, 41, 32, 27, 52, 10]}, {"55062599": [255, 161, 42]}, {"55062604": [60, 9, 128, 64, 37, 41, 32, 24, 36, 10, 255, 255, 52, 12]}, {"55062619": [3, 33, 74]}, {"55062623": [1, 17, 76]}, {"55062627": [20, 1, 42, 88, 32, 129, 104]}, {"55062636": [17]}, {"55062638": [255, 251]}, {"55062644": [60, 9, 128, 64, 37, 41, 32, 27, 161, 42]}, {"55062656": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062667": [1, 165, 42]}, {"55062672": [60, 9, 128, 65, 52, 10]}, {"55062679": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 209]}, {"55062708": [143, 163]}, {"55062711": [16, 143, 191]}, {"55062715": [20, 39, 189]}, {"55062719": [24, 143, 164]}, {"55062723": [104, 143, 165]}, {"55062727": [108, 143, 166]}, {"55062731": [112, 143, 167]}, {"55062735": [116, 132, 110, 19, 196, 3, 224]}, {"55062743": [8]}, {"55062748": [147, 25]}, {"55062751": [116, 52, 1]}, {"55062755": [255, 23, 33]}, {"55062759": [2]}, {"55062764": [52, 25]}, {"55062767": [44, 3, 224]}, {"55062771": [8, 167, 185]}, {"55062775": [154, 147, 44]}, {"55062779": [116, 52, 1]}, {"55062783": [255, 21, 129]}, {"55062787": [2]}, {"55062792": [52, 12]}, {"55062795": [44, 3, 224]}, {"55062799": [8]}, {"55062804": [145, 174]}, {"55062807": [116, 52, 1]}, {"55062811": [255, 21, 193]}, {"55062815": [2]}, {"55062820": [52, 14]}, {"55062823": [44, 3, 224]}, {"55062827": [8, 167, 174]}, {"55062831": [154, 145, 207]}, {"55062835": [116, 52, 1]}, {"55062839": [255, 21, 225]}, {"55062843": [2]}, {"55062848": [52, 15]}, {"55062851": [44, 3, 224]}, {"55062855": [8, 167, 175]}, {"55062859": [154, 60, 8, 128, 64, 37, 8, 32, 28, 142, 9]}, {"55062871": [104, 173, 9]}, {"55062876": [142, 9]}, {"55062879": [108, 173, 9]}, {"55062883": [4, 150, 9]}, {"55062887": [112, 165, 9]}, {"55062891": [8, 150, 9]}, {"55062895": [156, 165, 9]}, {"55062899": [10, 3, 224]}, {"55062903": [8, 142, 14]}, {"55062907": [4, 39, 189, 255, 224, 175, 176]}, {"55062915": [16, 175, 177]}, {"55062919": [20, 175, 191]}, {"55062923": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 28, 142, 8]}, {"55062943": [4, 17]}, {"55062947": [5]}, {"55062952": [12, 16, 12, 137]}, {"55062960": [16]}, {"55062963": [3]}, {"55062968": [12, 16, 12, 156]}, {"55062976": [12, 16, 12, 124, 52, 4]}, {"55062984": [12, 16, 12, 124, 52, 4]}, {"55062991": [1, 12, 16, 12, 124, 52, 4]}, {"55062999": [2, 143, 176]}, {"55063003": [16, 143, 177]}, {"55063007": [20, 143, 191]}, {"55063011": [24, 39, 189]}, {"55063015": [32, 3, 224]}, {"55063019": [8]}, {"55063024": [2, 4, 64, 33, 145, 9]}, {"55063031": [108, 52, 1]}, {"55063035": [255, 17, 33]}, {"55063039": [7]}, {"55063044": [2, 9, 72, 33, 145, 41]}, {"55063051": [116, 52, 1]}, {"55063055": [44, 17, 33]}, {"55063059": [2]}, {"55063064": [161, 9]}, {"55063067": [105, 3, 224]}, {"55063071": [8]}, {"55063076": [39, 189, 255, 232, 175, 191]}, {"55063083": [16, 142, 40]}, {"55063088": [174, 8]}, {"55063091": [64, 142, 40]}, {"55063095": [4, 174, 8]}, {"55063099": [68, 150, 40]}, {"55063103": [8, 166, 8]}, {"55063107": [72, 162]}, {"55063110": [15, 51, 146, 8]}, {"55063115": [74, 52, 1]}, {"55063119": [255, 21, 1]}, {"55063123": [3]}, {"55063128": [12, 16, 12, 170]}, {"55063136": [143, 191]}, {"55063139": [16, 39, 189]}, {"55063143": [24, 3, 224]}, {"55063147": [8]}, {"55063152": [142, 8]}, {"55063155": [64, 174, 8]}, {"55063159": [104, 142, 8]}, {"55063163": [68, 174, 8]}, {"55063167": [108, 150, 8]}, {"55063171": [72, 166, 8]}, {"55063175": [112, 146, 8]}, {"55063179": [104, 52, 1]}, {"55063183": [255, 21, 1]}, {"55063187": [3]}, {"55063192": [52, 8]}, {"55063195": [1, 162, 8, 15, 51, 3, 224]}, {"55063203": [8]}, {"55063208": [39, 189, 255, 232, 175, 191]}, {"55063215": [16, 150, 8]}, {"55063219": [156, 49, 8]}, {"55063223": [64, 17]}, {"55063227": [5]}, {"55063232": [150, 8]}, {"55063235": [112, 49, 8, 255, 15, 53, 8]}, {"55063243": [48, 166, 8]}, {"55063247": [112, 146, 40]}, {"55063251": [1, 162, 8]}, {"55063255": [105, 150, 40]}, {"55063259": [2, 166, 8]}, {"55063263": [106, 142, 40]}, {"55063267": [4, 174, 8]}, {"55063271": [108, 12, 16, 12, 196, 52, 4]}, {"55063280": [12, 16, 12, 196, 52, 4]}, {"55063287": [1, 12, 16, 12, 196, 52, 4]}, {"55063295": [2, 143, 191]}, {"55063299": [16, 39, 189]}, {"55063303": [24, 3, 224]}, {"55063307": [8]}, {"55063312": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 51, 188, 145, 10]}, {"55063327": [108, 52, 1]}, {"55063331": [255, 17, 65]}, {"55063335": [5]}, {"55063340": [1, 42, 72, 33, 145, 41]}, {"55063348": [21, 32]}, {"55063351": [28]}, {"55063356": [60, 9, 128, 64, 37, 41, 51, 175, 37, 41]}, {"55063367": [1, 145, 42]}, {"55063372": [17, 64]}, {"55063375": [19]}, {"55063380": [2, 10, 88, 33, 145, 107]}, {"55063387": [116, 52, 1]}, {"55063391": [255, 17, 97, 255, 248]}, {"55063400": [146, 12]}, {"55063403": [108, 17, 138, 255, 245]}, {"55063412": [146, 12]}, {"55063415": [109, 17, 138, 255, 242]}, {"55063424": [146, 12]}, {"55063427": [110, 17, 138, 255, 239]}, {"55063436": [161, 11]}, {"55063439": [105, 161, 10]}, {"55063443": [108, 16]}, {"55063447": [4]}, {"55063452": [52, 9]}, {"55063455": [255, 161, 9]}, {"55063459": [105, 161, 9]}, {"55063463": [108, 3, 224]}, {"55063467": [8]}, {"55063472": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063485": [1, 1, 1, 1, 1]}, {"55063491": [1, 1, 1, 1, 1]}, {"55063497": [1]}, {"55063499": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063509": [51, 8, 33, 32, 15]}, {"55063515": [71, 21, 234]}, {"55063519": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063531": [164]}, {"55063533": [15, 122, 3, 20, 64]}, {"55063539": [5, 52, 2, 72, 48, 21, 226]}, {"55063547": [7]}, {"55063552": [36, 25]}, {"55063555": [3, 16]}, {"55063559": [4, 52, 2, 99, 17, 21, 226]}, {"55063567": [2]}, {"55063572": [36, 25]}, {"55063575": [3, 3, 224]}, {"55063579": [8]}, {"55063584": [141, 173, 138, 160, 52, 2, 128]}, {"55063592": [16, 77]}, {"55063595": [2]}, {"55063600": [16]}, {"55063603": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063619": [1, 16, 64]}, {"55063623": [2]}, {"55063628": [16]}, {"55063631": [2, 52, 2]}, {"55063635": [1, 161, 226, 28, 191, 3, 224]}, {"55063643": [8]}, {"55063649": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063663": [164]}, {"55063665": [15, 122, 3, 20, 64]}, {"55063671": [5, 52, 2, 72, 48, 21, 226]}, {"55063679": [7]}, {"55063684": [36, 25]}, {"55063687": [3, 16]}, {"55063691": [4, 52, 2, 99, 17, 21, 226]}, {"55063699": [2]}, {"55063704": [36, 25]}, {"55063707": [3, 3, 224]}, {"55063711": [8]}, {"55063716": [162, 37]}, {"55063719": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063731": [4, 142, 10]}, {"55063736": [17, 64]}, {"55063739": [11]}, {"55063745": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063757": [24, 194, 2, 23]}, {"55063763": [3, 49, 89]}, {"55063767": [255, 129, 234]}, {"55063772": [3, 42, 200, 37, 8, 16, 13, 44, 161, 249]}, {"55063784": [3, 224]}, {"55063787": [8]}] \ No newline at end of file diff --git a/version.py b/version.py index 797c7156f..034435f39 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.3 f.LUM' +__version__ = '2.15.4 f.LUM' From 64124eccb66689707481ad394990ea23634ad98c Mon Sep 17 00:00:00 2001 From: scatterclegge Date: Sat, 4 Aug 2018 05:30:03 -0230 Subject: [PATCH 221/755] fixed zora river logic --- EntranceShuffle.py | 12 +++++++----- Regions.py | 13 +++++++------ 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/EntranceShuffle.py b/EntranceShuffle.py index b1f86c8e6..5df287b93 100644 --- a/EntranceShuffle.py +++ b/EntranceShuffle.py @@ -86,7 +86,7 @@ def connect_doors(world, doors, targets): ('Goron City to Woods', 'Lost Woods'), ('Goron City from Woods', 'Goron City'), ('Goron City Bomb Wall', 'Goron City Woods Warp'), - ('Lost Woods Dive Warp', 'Zora River Top'), + ('Lost Woods Dive Warp', 'Zora River Child'), ('Zora River Dive Warp', 'Lost Woods'), ('Meadow Entrance', 'Sacred Forest Meadow Entryway'), ('Meadow Exit', 'Lost Woods'), @@ -139,12 +139,14 @@ def connect_doors(world, doors, targets): ('Crater Access', 'Death Mountain Crater Lower'), ('Dodongos Cavern Rocks', 'Dodongos Cavern Entryway'), ('Mountain Access from Behind Rock', 'Death Mountain'), - ('Field to Zora River', 'Zora River Bottom'), + ('Field to Zora River', 'Zora River Front'), ('Zora River Exit', 'Hyrule Field'), - ('Zora River Rocks', 'Zora River Top'), - ('Zora River Downstream', 'Zora River Bottom'), + ('Zora River Rocks', 'Zora River Child'), + ('Zora River Downstream', 'Zora River Front'), + ('Zora River Child to Shared', 'Zora River Shared'), + ('Zora River Adult to Shared', 'Zora River Shared'), ('Zora River Waterfall', 'Zoras Domain'), - ('Zoras Domain Exit', 'Zora River Top'), + ('Zoras Domain Exit', 'Zora River Child'), ('Behind King Zora', 'Zoras Fountain'), ('Zoras Fountain Exit', 'Zoras Domain'), ('Zora River Adult', 'Zora River Adult'), diff --git a/Regions.py b/Regions.py index c006ace9a..050c56a74 100644 --- a/Regions.py +++ b/Regions.py @@ -14,7 +14,7 @@ def create_regions(world): create_interior_region('Kokiri Shop', None, ['Kokiri Shop Exit']), create_dungeon_region('Deku Tree Lobby', ['Deku Tree Lobby Chest', 'Deku Tree Compass Chest', 'Deku Tree Compass Room Side Chest', 'Deku Tree Basement Chest', 'GS Deku Tree Compass Room', 'GS Deku Tree Basement Vines', 'GS Deku Tree Basement Gate'], ['Deku Tree Exit', 'Deku Tree Slingshot Passage', 'Deku Tree Basement Path']), create_dungeon_region('Deku Tree Slingshot Room', ['Deku Tree Slingshot Chest', 'Deku Tree Slingshot Room Side Chest'], ['Deku Tree Slingshot Exit']), - create_dungeon_region('Deku Tree Boss Room', ['GS Deku Tree Basement Back Room', 'Queen Gohma Heart', 'Queen Gohma'], ['Deku Tree Basement Vines']), + create_dungeon_region('Deku Tree Boss Room', ['GS Deku Tree Basement Back Room', 'Queen Gohma Heart', 'Queen Gohma'], ['Deku Tree Basement Vines']), create_ow_region('Lost Woods', ['Skull Kid', 'Ocarina Memory Game', 'Target in Woods', 'Deku Salesman Woods', 'GS Lost Woods Bean Patch Near Bridge', 'GS Lost Woods Bean Patch Near Stage'], ['Lost Woods Front', 'Meadow Entrance', 'Woods to Goron City', 'Lost Woods Dive Warp', 'Adult Meadow Access', 'Lost Woods Generic Grotto', 'Deku Theater', 'Lost Woods Sales Grotto']), create_ow_region('Sacred Forest Meadow Entryway', None, ['Meadow Exit', 'Meadow Gate', 'Front of Meadow Grotto']), create_ow_region('Sacred Forest Meadow', ['Song from Saria'], ['Meadow Gate Exit', 'Meadow Fairy Grotto']), @@ -107,11 +107,12 @@ def create_regions(world): create_dungeon_region('Dodongos Cavern Beginning', None, ['Dodongos Cavern Exit', 'Dodongos Cavern Lobby']), create_dungeon_region('Dodongos Cavern Lobby', ['Dodongos Cavern Map Chest', 'Dodongos Cavern Compass Chest', 'GS Dodongo\'s Cavern East Side Room', 'GS Dodongo\'s Cavern Scarecrow'], ['Dodongos Cavern Retreat', 'Dodongos Cavern Left Door']), create_dungeon_region('Dodongos Cavern Climb', ['Dodongos Cavern Bomb Flower Platform', 'GS Dodongo\'s Cavern Vines Above Stairs'], ['Dodongos Cavern Bridge Fall', 'Dodongos Cavern Slingshot Target']), - create_dungeon_region('Dodongos Cavern Far Bridge', ['Dodongos Cavern Bomb Bag Chest', 'Dodongos Cavern End of Bridge Chest', 'GS Dodongo\'s Cavern Alcove Above Stairs'], ['Dodongos Cavern Bomb Drop', 'Dodongos Cavern Bridge Fall 2']), + create_dungeon_region('Dodongos Cavern Far Bridge', ['Dodongos Cavern Bomb Bag Chest', 'Dodongos Cavern End of Bridge Chest', 'GS Dodongo\'s Cavern Alcove Above Stairs'], ['Dodongos Cavern Bomb Drop', 'Dodongos Cavern Bridge Fall 2']), create_dungeon_region('Dodongos Cavern Boss Area', ['Chest Above King Dodongo', 'King Dodongo Heart', 'King Dodongo', 'GS Dodongo\'s Cavern Back Room'], ['Dodongos Cavern Exit Skull']), - create_ow_region('Zora River Bottom', ['Zora River Lower Freestanding PoH', 'Zora River Upper Freestanding PoH', 'GS Zora River Ladder'], ['Zora River Exit', 'Zora River Rocks', 'Zora River Adult', 'Zora River Plateau Open Grotto', 'Zora River Plateau Bombable Grotto']), - create_ow_region('Zora River Top', ['Magic Bean Salesman', 'Frog Ocarina Game', 'Frogs in the Rain', 'GS Zora River Tree'], ['Zora River Downstream', 'Zora River Dive Warp', 'Zora River Waterfall']), - create_ow_region('Zora River Adult', ['GS Zora River Near Raised Grottos', 'GS Zora River Above Bridge'], ['Zoras Domain Adult Access']), + create_ow_region('Zora River Front', ['GS Zora River Tree'], ['Zora River Rocks', 'Zora River Adult', 'Zora River Exit']), + create_ow_region('Zora River Child', ['Magic Bean Salesman', 'Frog Ocarina Game', 'Frogs in the Rain', 'GS Zora River Ladder'], ['Zora River Child to Shared', 'Zora River Waterfall']), + create_ow_region('Zora River Adult', ['GS Zora River Near Raised Grottos', 'GS Zora River Above Bridge'], ['Zoras Domain Adult Access', 'Zora River Adult to Shared']), + create_ow_region('Zora River Shared', ['Zora River Lower Freestanding PoH', 'Zora River Upper Freestanding PoH'], ['Zora River Downstream', 'Zora River Plateau Open Grotto', 'Zora River Plateau Bombable Grotto', 'Zora River Dive Warp']), create_ow_region('Zoras Domain', ['Diving Minigame', 'Zoras Domain Torch Run', 'King Zora Moves'], ['Zoras Domain Exit', 'Zoras Domain Dive Warp', 'Behind King Zora', 'Zora Shop']), create_ow_region('Zoras Fountain', ['GS Zora\'s Fountain Tree', 'GS Zora\'s Fountain Above the Log'], ['Zoras Fountain Exit', 'Jabu Jabus Belly', 'Zoras Fountain Fairy']), create_ow_region('Zoras Domain Frozen', ['King Zora Thawed', 'GS Zora\'s Domain Frozen Waterfall'], ['Zoras Fountain Adult Access']), @@ -525,7 +526,7 @@ def _create_region(name, type, locations=None, exits=None): 'GS Water Temple Central Room': (None, None, 0x04, 'GS Token', 0x05, 'Water Temple'), 'GS Water Temple Near Boss Key Chest': (None, None, 0x08, 'GS Token', 0x05, 'Water Temple'), 'GS Water Temple Serpent River': (None, None, 0x10, 'GS Token', 0x05, 'Water Temple'), - + 'GS Spirit Temple Hall to West Iron Knuckle': (None, None, 0x01, 'GS Token', 0x06, 'Spirit Temple'), 'GS Spirit Temple Boulder Room': (None, None, 0x02, 'GS Token', 0x06, 'Spirit Temple'), 'GS Spirit Temple Lobby': (None, None, 0x04, 'GS Token', 0x06, 'Spirit Temple'), From 6c89c1a5cb907cc6c42ecbb68ba8c8d50acdcd8f Mon Sep 17 00:00:00 2001 From: scatterclegge Date: Sat, 4 Aug 2018 14:11:06 -0230 Subject: [PATCH 222/755] ZL check for water south basement gs --- Rules.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/Rules.py b/Rules.py index c380fb8e7..ca455767b 100644 --- a/Rules.py +++ b/Rules.py @@ -124,7 +124,7 @@ def global_rules(world): set_rule(world.get_entrance('Mountain Crater Entrance'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Hyrule Castle Fairy'), lambda state: state.has_explosives()) set_rule(world.get_location('Hyrule Castle Fairy Reward'), lambda state: state.can_play('Zeldas Lullaby')) - set_rule(world.get_entrance('Hyrule Castle Garden'), lambda state: state.has('Weird Egg') or (not world.shuffle_weird_egg)) + set_rule(world.get_entrance('Hyrule Castle Garden'), lambda state: state.has('Weird Egg') or (not world.shuffle_weird_egg)) set_rule(world.get_entrance('Ganons Castle Grounds'), lambda state: state.is_adult()) set_rule(world.get_entrance('Ganons Castle Fairy'), lambda state: state.has('Progressive Strength Upgrade', 3)) set_rule(world.get_location('Ganons Castle Fairy Reward'), lambda state: state.can_play('Zeldas Lullaby')) @@ -411,7 +411,7 @@ def global_rules(world): set_rule(world.get_location('GS Ice Cavern Spinning Scythe Room'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) set_rule(world.get_location('GS Ice Cavern Heart Piece Room'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.has_bottle()) set_rule(world.get_location('GS Ice Cavern Push Block Room'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.has_bottle()) - set_rule(world.get_location('GS Water Temple South Basement'), lambda state: state.has_explosives()) + set_rule(world.get_location('GS Water Temple South Basement'), lambda state: state.has_explosives() and state.can_play('Zeldas Lullaby')) set_rule(world.get_location('GS Water Temple Serpent River'), lambda state: state.can_play('Song of Time') and state.has('Small Key (Water Temple)', 6)) set_rule(world.get_location('GS Water Temple Falling Platform Room'), lambda state: state.has('Progressive Hookshot', 2)) set_rule(world.get_location('GS Water Temple Central Room'), lambda state: state.has('Progressive Hookshot', 2) or (state.has('Farores Wind') and state.has('Magic'))) @@ -445,17 +445,16 @@ def global_rules(world): # Biggoron Sword at bombchu bowling seems to lead to a soft lock. # Unsure what causes this, but I'm leaving this to original devs. # For now just avoiding this combination, since BigSword is not that important. - forbid_item(world.get_location('Bombchu Bowling Bomb Bag'), 'Biggoron Sword') + forbid_item(world.get_location('Bombchu Bowling Bomb Bag'), 'Biggoron Sword') forbid_item(world.get_location('Bombchu Bowling Piece of Heart'), 'Biggoron Sword') # Song locations can only be a song - #song_locations = [world.get_location(location) for location in - # ['Song from Composer Grave', 'Impa at Castle', 'Song from Malon', 'Song from Saria', - # 'Song from Ocarina of Time', 'Song at Windmill', 'Sheik Forest Song', 'Sheik at Temple', + #song_locations = [world.get_location(location) for location in + # ['Song from Composer Grave', 'Impa at Castle', 'Song from Malon', 'Song from Saria', + # 'Song from Ocarina of Time', 'Song at Windmill', 'Sheik Forest Song', 'Sheik at Temple', # 'Sheik in Crater', 'Sheik in Ice Cavern', 'Sheik in Kakariko', 'Sheik at Colossus']] #for location in world.get_locations(): # if location in song_locations: # add_item_rule(location, lambda item: item.type == 'Song') # else: # add_item_rule(location, lambda item: item.type != 'Song') - From fec872b3d53a1570b9a32ece7a7b3f906acad08b Mon Sep 17 00:00:00 2001 From: scatterclegge Date: Sat, 4 Aug 2018 14:13:14 -0230 Subject: [PATCH 223/755] moved central room gs to middle water level region --- Regions.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Regions.py b/Regions.py index c006ace9a..00a3e1bd4 100644 --- a/Regions.py +++ b/Regions.py @@ -14,7 +14,7 @@ def create_regions(world): create_interior_region('Kokiri Shop', None, ['Kokiri Shop Exit']), create_dungeon_region('Deku Tree Lobby', ['Deku Tree Lobby Chest', 'Deku Tree Compass Chest', 'Deku Tree Compass Room Side Chest', 'Deku Tree Basement Chest', 'GS Deku Tree Compass Room', 'GS Deku Tree Basement Vines', 'GS Deku Tree Basement Gate'], ['Deku Tree Exit', 'Deku Tree Slingshot Passage', 'Deku Tree Basement Path']), create_dungeon_region('Deku Tree Slingshot Room', ['Deku Tree Slingshot Chest', 'Deku Tree Slingshot Room Side Chest'], ['Deku Tree Slingshot Exit']), - create_dungeon_region('Deku Tree Boss Room', ['GS Deku Tree Basement Back Room', 'Queen Gohma Heart', 'Queen Gohma'], ['Deku Tree Basement Vines']), + create_dungeon_region('Deku Tree Boss Room', ['GS Deku Tree Basement Back Room', 'Queen Gohma Heart', 'Queen Gohma'], ['Deku Tree Basement Vines']), create_ow_region('Lost Woods', ['Skull Kid', 'Ocarina Memory Game', 'Target in Woods', 'Deku Salesman Woods', 'GS Lost Woods Bean Patch Near Bridge', 'GS Lost Woods Bean Patch Near Stage'], ['Lost Woods Front', 'Meadow Entrance', 'Woods to Goron City', 'Lost Woods Dive Warp', 'Adult Meadow Access', 'Lost Woods Generic Grotto', 'Deku Theater', 'Lost Woods Sales Grotto']), create_ow_region('Sacred Forest Meadow Entryway', None, ['Meadow Exit', 'Meadow Gate', 'Front of Meadow Grotto']), create_ow_region('Sacred Forest Meadow', ['Song from Saria'], ['Meadow Gate Exit', 'Meadow Fairy Grotto']), @@ -26,8 +26,8 @@ def create_regions(world): create_interior_region('Lake Hylia Lab', ['Diving in the Lab', 'GS Lab Underwater Crate']), create_interior_region('Fishing Hole', ['Child Fishing', 'Adult Fishing']), create_dungeon_region('Water Temple Lobby', ['Water Temple Map Chest', 'Water Temple Compass Chest', 'Water Temple Torches Chest', 'Water Temple Dragon Chest', 'Water Temple Central Bow Target Chest', 'Water Temple Boss Key Chest', 'Morpha Heart', 'Morpha', 'GS Water Temple South Basement', 'GS Water Temple Near Boss Key Chest'], ['Water Temple Exit', 'Water Temple Central Pillar', 'Water Temple Upper Locked Door']), - create_dungeon_region('Water Temple Middle Water Level', ['Water Temple Central Pillar Chest', 'Water Temple Cracked Wall Chest', 'GS Water Temple Falling Platform Room']), - create_dungeon_region('Water Temple Dark Link Region', ['Water Temple Dark Link Chest', 'Water Temple River Chest', 'GS Water Temple Serpent River', 'GS Water Temple Central Room']), + create_dungeon_region('Water Temple Middle Water Level', ['Water Temple Central Pillar Chest', 'Water Temple Cracked Wall Chest', 'GS Water Temple Falling Platform Room', 'GS Water Temple Central Room']), + create_dungeon_region('Water Temple Dark Link Region', ['Water Temple Dark Link Chest', 'Water Temple River Chest', 'GS Water Temple Serpent River']), create_ow_region('Gerudo Valley', ['Gerudo Valley Waterfall Freestanding PoH', 'Gerudo Valley Crate Freestanding PoH', 'GS Gerudo Valley Small Bridge', 'GS Gerudo Valley Bean Patch'], ['Valley Exit', 'Valley River', 'Bridge Crossing']), create_ow_region('Gerudo Valley Far Side', ['Gerudo Valley Hammer Rocks Chest', 'GS Gerudo Valley Behind Tent', 'GS Gerudo Valley Pillar'], ['Fortress Entrance']), create_ow_region('Gerudo Fortress', ['Gerudo Fortress Rooftop Chest', 'Horseback Archery 1000 Points', 'Horseback Archery 1500 Points', 'Gerudo Fortress North F1 Carpenter', 'Gerudo Fortress North F2 Carpenter', 'Gerudo Fortress South F1 Carpenter', 'Gerudo Fortress South F2 Carpenter', 'Gerudo Fortress Carpenter Rescue', 'Gerudo Fortress Membership Card', 'GS Gerudo Fortress Archery Range', 'GS Gerudo Fortress Top Floor'], ['Haunted Wasteland Entrance', 'Gerudo Training Grounds Entrance']), @@ -107,7 +107,7 @@ def create_regions(world): create_dungeon_region('Dodongos Cavern Beginning', None, ['Dodongos Cavern Exit', 'Dodongos Cavern Lobby']), create_dungeon_region('Dodongos Cavern Lobby', ['Dodongos Cavern Map Chest', 'Dodongos Cavern Compass Chest', 'GS Dodongo\'s Cavern East Side Room', 'GS Dodongo\'s Cavern Scarecrow'], ['Dodongos Cavern Retreat', 'Dodongos Cavern Left Door']), create_dungeon_region('Dodongos Cavern Climb', ['Dodongos Cavern Bomb Flower Platform', 'GS Dodongo\'s Cavern Vines Above Stairs'], ['Dodongos Cavern Bridge Fall', 'Dodongos Cavern Slingshot Target']), - create_dungeon_region('Dodongos Cavern Far Bridge', ['Dodongos Cavern Bomb Bag Chest', 'Dodongos Cavern End of Bridge Chest', 'GS Dodongo\'s Cavern Alcove Above Stairs'], ['Dodongos Cavern Bomb Drop', 'Dodongos Cavern Bridge Fall 2']), + create_dungeon_region('Dodongos Cavern Far Bridge', ['Dodongos Cavern Bomb Bag Chest', 'Dodongos Cavern End of Bridge Chest', 'GS Dodongo\'s Cavern Alcove Above Stairs'], ['Dodongos Cavern Bomb Drop', 'Dodongos Cavern Bridge Fall 2']), create_dungeon_region('Dodongos Cavern Boss Area', ['Chest Above King Dodongo', 'King Dodongo Heart', 'King Dodongo', 'GS Dodongo\'s Cavern Back Room'], ['Dodongos Cavern Exit Skull']), create_ow_region('Zora River Bottom', ['Zora River Lower Freestanding PoH', 'Zora River Upper Freestanding PoH', 'GS Zora River Ladder'], ['Zora River Exit', 'Zora River Rocks', 'Zora River Adult', 'Zora River Plateau Open Grotto', 'Zora River Plateau Bombable Grotto']), create_ow_region('Zora River Top', ['Magic Bean Salesman', 'Frog Ocarina Game', 'Frogs in the Rain', 'GS Zora River Tree'], ['Zora River Downstream', 'Zora River Dive Warp', 'Zora River Waterfall']), @@ -525,7 +525,7 @@ def _create_region(name, type, locations=None, exits=None): 'GS Water Temple Central Room': (None, None, 0x04, 'GS Token', 0x05, 'Water Temple'), 'GS Water Temple Near Boss Key Chest': (None, None, 0x08, 'GS Token', 0x05, 'Water Temple'), 'GS Water Temple Serpent River': (None, None, 0x10, 'GS Token', 0x05, 'Water Temple'), - + 'GS Spirit Temple Hall to West Iron Knuckle': (None, None, 0x01, 'GS Token', 0x06, 'Spirit Temple'), 'GS Spirit Temple Boulder Room': (None, None, 0x02, 'GS Token', 0x06, 'Spirit Temple'), 'GS Spirit Temple Lobby': (None, None, 0x04, 'GS Token', 0x06, 'Spirit Temple'), From 42c7c7125b1db4693bd3170a039ed8985aeacd4e Mon Sep 17 00:00:00 2001 From: scatterclegge Date: Sat, 4 Aug 2018 14:13:53 -0230 Subject: [PATCH 224/755] moved falling platform gs to dark link region --- Regions.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Regions.py b/Regions.py index 00a3e1bd4..9af7c55d9 100644 --- a/Regions.py +++ b/Regions.py @@ -26,8 +26,8 @@ def create_regions(world): create_interior_region('Lake Hylia Lab', ['Diving in the Lab', 'GS Lab Underwater Crate']), create_interior_region('Fishing Hole', ['Child Fishing', 'Adult Fishing']), create_dungeon_region('Water Temple Lobby', ['Water Temple Map Chest', 'Water Temple Compass Chest', 'Water Temple Torches Chest', 'Water Temple Dragon Chest', 'Water Temple Central Bow Target Chest', 'Water Temple Boss Key Chest', 'Morpha Heart', 'Morpha', 'GS Water Temple South Basement', 'GS Water Temple Near Boss Key Chest'], ['Water Temple Exit', 'Water Temple Central Pillar', 'Water Temple Upper Locked Door']), - create_dungeon_region('Water Temple Middle Water Level', ['Water Temple Central Pillar Chest', 'Water Temple Cracked Wall Chest', 'GS Water Temple Falling Platform Room', 'GS Water Temple Central Room']), - create_dungeon_region('Water Temple Dark Link Region', ['Water Temple Dark Link Chest', 'Water Temple River Chest', 'GS Water Temple Serpent River']), + create_dungeon_region('Water Temple Middle Water Level', ['Water Temple Central Pillar Chest', 'Water Temple Cracked Wall Chest', 'GS Water Temple Central Room']), + create_dungeon_region('Water Temple Dark Link Region', ['Water Temple Dark Link Chest', 'Water Temple River Chest', 'GS Water Temple Serpent River', 'GS Water Temple Falling Platform Room']), create_ow_region('Gerudo Valley', ['Gerudo Valley Waterfall Freestanding PoH', 'Gerudo Valley Crate Freestanding PoH', 'GS Gerudo Valley Small Bridge', 'GS Gerudo Valley Bean Patch'], ['Valley Exit', 'Valley River', 'Bridge Crossing']), create_ow_region('Gerudo Valley Far Side', ['Gerudo Valley Hammer Rocks Chest', 'GS Gerudo Valley Behind Tent', 'GS Gerudo Valley Pillar'], ['Fortress Entrance']), create_ow_region('Gerudo Fortress', ['Gerudo Fortress Rooftop Chest', 'Horseback Archery 1000 Points', 'Horseback Archery 1500 Points', 'Gerudo Fortress North F1 Carpenter', 'Gerudo Fortress North F2 Carpenter', 'Gerudo Fortress South F1 Carpenter', 'Gerudo Fortress South F2 Carpenter', 'Gerudo Fortress Carpenter Rescue', 'Gerudo Fortress Membership Card', 'GS Gerudo Fortress Archery Range', 'GS Gerudo Fortress Top Floor'], ['Haunted Wasteland Entrance', 'Gerudo Training Grounds Entrance']), From f454efe1bd42d9375c86aa490a12164bea279e8a Mon Sep 17 00:00:00 2001 From: scatterclegge Date: Sat, 4 Aug 2018 14:16:26 -0230 Subject: [PATCH 225/755] forced lens for west locked botw skulltula --- Rules.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Rules.py b/Rules.py index ca455767b..49177c86c 100644 --- a/Rules.py +++ b/Rules.py @@ -416,7 +416,7 @@ def global_rules(world): set_rule(world.get_location('GS Water Temple Falling Platform Room'), lambda state: state.has('Progressive Hookshot', 2)) set_rule(world.get_location('GS Water Temple Central Room'), lambda state: state.has('Progressive Hookshot', 2) or (state.has('Farores Wind') and state.has('Magic'))) set_rule(world.get_location('GS Water Temple Near Boss Key Chest'), lambda state: state.has('Progressive Hookshot', 2) and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and state.has('Small Key (Water Temple)', 6)) #5 keys would be better but it wouldn't be compatible with the key for key scenarios, 6 will be identical pre-keysanity. - set_rule(world.get_location('GS Well West Inner Room'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang') and (state.has('Progressive Strength Upgrade') or state.has_explosives() or state.can_see_with_lens())) + set_rule(world.get_location('GS Well West Inner Room'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang') and state.can_see_with_lens()) set_rule(world.get_location('GS Well East Inner Room'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang') and state.can_see_with_lens()) set_rule(world.get_location('GS Well Like Like Cage'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang') and state.can_see_with_lens()) set_rule(world.get_location('GS Shadow Temple Like Like Room'), lambda state: state.has('Progressive Hookshot')) From c13606a9f03d412acb1d1296ad51a7cc574563ed Mon Sep 17 00:00:00 2001 From: scatterclegge Date: Sun, 5 Aug 2018 03:48:43 -0230 Subject: [PATCH 226/755] added is_adult check for lacs --- Rules.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Rules.py b/Rules.py index 49177c86c..4112e5da0 100644 --- a/Rules.py +++ b/Rules.py @@ -320,7 +320,7 @@ def global_rules(world): set_rule(world.get_location('Spirit Temple Topmost Chest'), lambda state: state.has('Mirror Shield')) set_rule(world.get_location('Twinrova'), lambda state: state.has('Mirror Shield') and state.has_explosives() and state.has('Progressive Hookshot') and state.has('Boss Key (Spirit Temple)')) set_rule(world.get_location('Twinrova Heart'), lambda state: state.has('Mirror Shield') and state.has_explosives() and state.has('Progressive Hookshot') and state.has('Boss Key (Spirit Temple)')) - set_rule(world.get_location('Zelda'), lambda state: state.has('Shadow Medallion') and state.has('Spirit Medallion')) + set_rule(world.get_location('Zelda'), lambda state: state.has('Shadow Medallion') and state.has('Spirit Medallion') and state.is_adult()) set_rule(world.get_entrance('Ganons Castle Light Trial'), lambda state: state.has('Progressive Strength Upgrade', 3)) set_rule(world.get_entrance('Ganons Castle Tower'), lambda state: (world.skipped_trials['Forest'] or state.has('Forest Trial Clear')) and (world.skipped_trials['Fire'] or state.has('Fire Trial Clear')) and (world.skipped_trials['Water'] or state.has('Water Trial Clear')) and (world.skipped_trials['Shadow'] or state.has('Shadow Trial Clear')) and (world.skipped_trials['Spirit'] or state.has('Spirit Trial Clear')) and (world.skipped_trials['Light'] or state.has('Light Trial Clear'))) set_rule(world.get_location('Ganons Castle Forest Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and (state.has('Fire Arrows') or state.has('Dins Fire'))) From 4a40baf1c321c12c727aa711e3b143fd5eecd58a Mon Sep 17 00:00:00 2001 From: Dennis Date: Mon, 6 Aug 2018 00:36:52 +0200 Subject: [PATCH 227/755] Update Settings.py Added difficulty settings options --- Settings.py | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/Settings.py b/Settings.py index c93c16c69..63cbc1b7a 100644 --- a/Settings.py +++ b/Settings.py @@ -943,6 +943,30 @@ def __init__(self, settings_dict): 'All text shuffled': 'complete', }, }), + Setting_Info('difficulty', str, 2, True, + { + 'default': 'normal', + 'const': 'normal', + 'nargs': '?', + 'choices': ['normal', 'hard', 'very_hard'], + 'help': '''\ + Choose how hard the game will be. + normal: Default items + hard: Double defense, double magic, and all 8 heart containers are removed + very_hard: Double defense, double magic, Nayru's Love, and all health upgrades are removed + ''' + }, + { + 'text': 'Difficulty', + 'group': 'other', + 'widget': 'Combobox', + 'default': 'Normal', + 'options': { + 'Normal': 'normal', + 'Hard': 'hard', + 'Very Hard': 'very_hard', + }, + }), Setting_Info('default_targeting', str, 1, False, { 'default': 'hold', @@ -1162,4 +1186,4 @@ def get_settings_from_command_line_args(): if args.settings_string is not None: settings.update_with_settings_string(args.settings_string) - return settings, args.gui, args.loglevel \ No newline at end of file + return settings, args.gui, args.loglevel From 6b368a5743deae420052e8d1187c1325f6e2b152 Mon Sep 17 00:00:00 2001 From: Dennis Date: Mon, 6 Aug 2018 01:00:08 +0200 Subject: [PATCH 228/755] replace hard/very hard items with bluepees --- ItemList.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/ItemList.py b/ItemList.py index f6f6d3755..5055fc4dc 100644 --- a/ItemList.py +++ b/ItemList.py @@ -7,9 +7,9 @@ #This file sets the item pools for various modes. Timed modes and triforce hunt are enforced first, and then extra items are specified per mode to fill in the remaining space. #Some basic items that various modes require are placed here, including pendants and crystals. Medallion requirements for the two relevant entrances are also decided. -alwaysitems = (['Kokiri Sword', 'Biggoron Sword', 'Boomerang', 'Lens of Truth', 'Hammer', 'Iron Boots', 'Goron Tunic', 'Zora Tunic', 'Hover Boots', 'Mirror Shield', 'Stone of Agony', 'Fire Arrows', 'Ice Arrows', 'Light Arrows', 'Dins Fire', 'Farores Wind', 'Nayrus Love', 'Rupee (1)'] + ['Progressive Hookshot'] * 2 + ['Deku Shield'] * 4 + ['Hylian Shield'] * 2 + - ['Progressive Strength Upgrade'] * 3 + ['Progressive Scale'] * 2 + ['Piece of Heart'] * 35 + ['Recovery Heart'] * 11 + ['Rupees (5)'] * 17 + ['Rupees (20)'] * 5 + ['Rupees (50)'] * 7 + ['Rupees (200)'] * 6 + ['Bow'] * 3 + ['Slingshot'] * 3 + ['Bomb Bag'] * 3 + ['Bottle with Letter'] + ['Heart Container'] * 8 + ['Piece of Heart (Treasure Chest Game)'] + - ['Bombs (5)'] * 2 + ['Bombs (10)'] * 2 + ['Bombs (20)'] * 2 + ['Arrows (5)'] + ['Arrows (10)'] * 6 + ['Arrows (30)'] * 6 + ['Deku Nuts (5)'] + ['Deku Nuts (10)'] + ['Progressive Wallet'] * 2 + ['Deku Stick Capacity'] * 2 + ['Deku Nut Capacity'] * 2 + ['Magic Meter'] * 2 + ['Double Defense']) +alwaysitems = (['Kokiri Sword', 'Biggoron Sword', 'Boomerang', 'Lens of Truth', 'Hammer', 'Iron Boots', 'Goron Tunic', 'Zora Tunic', 'Hover Boots', 'Mirror Shield', 'Stone of Agony', 'Fire Arrows', 'Ice Arrows', 'Light Arrows', 'Dins Fire', 'Farores Wind', 'Rupee (1)'] + ['Progressive Hookshot'] * 2 + ['Deku Shield'] * 4 + ['Hylian Shield'] * 2 + + ['Progressive Strength Upgrade'] * 3 + ['Progressive Scale'] * 2 + ['Recovery Heart'] * 11 + ['Rupees (5)'] * 17 + ['Rupees (20)'] * 5 + ['Rupees (50)'] * 7 + ['Rupees (200)'] * 6 + ['Bow'] * 3 + ['Slingshot'] * 3 + ['Bomb Bag'] * 3 + ['Bottle with Letter'] + + ['Bombs (5)'] * 2 + ['Bombs (10)'] * 2 + ['Bombs (20)'] * 2 + ['Arrows (5)'] + ['Arrows (10)'] * 6 + ['Arrows (30)'] * 6 + ['Deku Nuts (5)'] + ['Deku Nuts (10)'] + ['Progressive Wallet'] * 2 + ['Deku Stick Capacity'] * 2 + ['Deku Nut Capacity'] * 2 + ['Magic Meter']) # normal_bottles = ['Bottle', 'Bottle with Milk', 'Bottle with Red Potion', 'Bottle with Green Potion', 'Bottle with Blue Potion', 'Bottle with Fairy', 'Bottle with Fish', 'Bottle with Blue Fire', 'Bottle with Bugs', 'Bottle with Poe'] normal_bottles = ['Bottle', 'Bottle with Milk', 'Bottle with Red Potion', 'Bottle with Green Potion', 'Bottle with Blue Potion', 'Bottle with Fairy', 'Bottle with Fish', 'Bottle with Bugs', 'Bottle with Poe'] normal_bottle_count = 3 @@ -24,6 +24,7 @@ ['GS Shadow Temple Like Like Room', 'GS Shadow Temple Crusher Room', 'GS Shadow Temple Single Giant Pot', 'GS Shadow Temple Near Ship', 'GS Shadow Temple Tripple Giant Pot', 'GS Gerudo Valley Small Bridge', 'GS Gerudo Valley Bean Patch', 'GS Gerudo Valley Behind Tent', 'GS Gerudo Valley Pillar', 'GS Gerudo Fortress Archery Range', 'GS Gerudo Fortress Top Floor', 'GS Wasteland Ruins', 'GS Desert Colossus Bean Patch', 'GS Desert Colossus Tree', 'GS Desert Colossus Hill', 'GS Spirit Temple Metal Fence', 'GS Spirit Temple Bomb for Light Room', 'GS Spirit Temple Hall to West Iron Knuckle', 'GS Spirit Temple Boulder Room', 'GS Spirit Temple Lobby']) tradeitems = ['Pocket Egg', 'Pocket Cucco', 'Cojiro', 'Odd Mushroom', 'Poachers Saw', 'Broken Sword', 'Prescription', 'Eyeball Frog', 'Eyedrops', 'Claim Check'] + eventlocations = { 'Ganon': 'Triforce', 'Zeldas Letter': 'Zeldas Letter', @@ -99,6 +100,15 @@ def get_pool_core(world): pool.extend(['Recovery Heart'] * 6) else: pool.extend(['Ice Trap'] * 6) + + if world.difficulty == 'hard' or world.difficulty == 'very_hard': + pool.extend(['Rupees (5)'] * 10) + else: + pool.extend(['Magic Meter', 'Double Defense'] + ['Heart Container'] * 8) + if world.difficulty == 'very_hard': + pool.extend(['Rupees (5)'] * 37) + else: + pool.extend(['Nayrus Love', 'Piece of Heart (Treasure Chest Game)'] + ['Piece of Heart'] * 35) if world.gerudo_fortress == 'open': placed_items['Gerudo Fortress North F1 Carpenter'] = 'Recovery Heart' From 2f7f061d3726e8e8c7a51b9967cd918f6f514f18 Mon Sep 17 00:00:00 2001 From: scatterclegge Date: Sun, 5 Aug 2018 22:01:44 -0230 Subject: [PATCH 229/755] removed old ZL check, always check for impa flag instead --- Rom.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/Rom.py b/Rom.py index 62080e56b..c3430ddc7 100644 --- a/Rom.py +++ b/Rom.py @@ -1176,9 +1176,6 @@ def write_save_table(rom): rom.write_int32(0xD7EC1C, 0x17010010) # song of time rom.write_int32(0xDB532C, 0x24050003) - # zelda's lullaby - rom.write_int32(0xB06400, 0x8E0F00A4) - rom.write_int32(0xB0640C, 0x01CFC024) # saria's song rom.write_int32(0xE29388, 0x24030005) From 84e714b5224fcb5a13f59c66329b2b5210c66baf Mon Sep 17 00:00:00 2001 From: scatterclegge Date: Mon, 6 Aug 2018 00:42:25 -0230 Subject: [PATCH 230/755] removed revert for saria's song check --- Rom.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/Rom.py b/Rom.py index c3430ddc7..25f7bfc76 100644 --- a/Rom.py +++ b/Rom.py @@ -1176,8 +1176,6 @@ def write_save_table(rom): rom.write_int32(0xD7EC1C, 0x17010010) # song of time rom.write_int32(0xDB532C, 0x24050003) - # saria's song - rom.write_int32(0xE29388, 0x24030005) # Set Default targeting option to Hold if world.default_targeting == 'hold': From 11e851b16804e7a4697a36dc47fa069a749b92a5 Mon Sep 17 00:00:00 2001 From: scatterclegge Date: Mon, 6 Aug 2018 15:22:27 -0230 Subject: [PATCH 231/755] compress by default and remove uncompressed rom --- Main.py | 3 +++ Settings.py | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Main.py b/Main.py index f2e2114a1..ce37de39c 100644 --- a/Main.py +++ b/Main.py @@ -85,10 +85,13 @@ def main(settings): logger.info('Compressing ROM.') if platform.system() == 'Windows': subprocess.call(["Compress\\Compress.exe", rom_path, os.path.join(output_dir, '%s-comp.z64' % outfilebase)]) + os.remove(rom_path) elif platform.system() == 'Linux': subprocess.call(["Compress/Compress", rom_path]) + os.remove(rom_path) elif platform.system() == 'Darwin': subprocess.call(["Compress/Compress.out", rom_path]) + os.remove(rom_path) else: logger.info('OS not supported for compression') diff --git a/Settings.py b/Settings.py index c93c16c69..c7b4ca3a4 100644 --- a/Settings.py +++ b/Settings.py @@ -214,7 +214,7 @@ def __init__(self, settings_dict): 'text': 'Compress Rom. Improves stability but will take longer to generate', 'group': 'rom_tab', 'widget': 'Checkbutton', - 'default': 'unchecked' + 'default': 'checked' }), Setting_Info('open_forest', bool, 1, True, { From e9ec660c1ed79083bae86e06483af4af4512f15e Mon Sep 17 00:00:00 2001 From: BeeLuigi Date: Mon, 6 Aug 2018 23:16:15 +0200 Subject: [PATCH 232/755] Update Settings.py Added the option to (not) shuffle the Kokiri Sword --- Settings.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Settings.py b/Settings.py index 7047c9c65..7fd90bed4 100644 --- a/Settings.py +++ b/Settings.py @@ -450,6 +450,19 @@ def __init__(self, settings_dict): 'group': 'logic', 'widget': 'Checkbutton', 'default': 'checked' + }), + Setting_Info('shuffle_kokiri_sword', bool, 1, True, + { + 'help': '''\ + Shuffles the Kokiri Sword into the pool. + ''', + 'action': 'store_true' + }, + { + 'text': 'Shuffle Kokiri Sword', + 'group': 'logic', + 'widget': 'Checkbutton', + 'default': 'checked' }), Setting_Info('shuffle_weird_egg', bool, 1, True, { From 2de78a691f595cd82f54f8f816be42bc71048094 Mon Sep 17 00:00:00 2001 From: BeeLuigi Date: Mon, 6 Aug 2018 23:18:50 +0200 Subject: [PATCH 233/755] Implemented optional Kokiri Sword shuffle Implemented the option to (not) shuffle the Kokiri Sword for people who like using swords at all times. --- ItemList.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/ItemList.py b/ItemList.py index 5055fc4dc..a7917db01 100644 --- a/ItemList.py +++ b/ItemList.py @@ -7,7 +7,7 @@ #This file sets the item pools for various modes. Timed modes and triforce hunt are enforced first, and then extra items are specified per mode to fill in the remaining space. #Some basic items that various modes require are placed here, including pendants and crystals. Medallion requirements for the two relevant entrances are also decided. -alwaysitems = (['Kokiri Sword', 'Biggoron Sword', 'Boomerang', 'Lens of Truth', 'Hammer', 'Iron Boots', 'Goron Tunic', 'Zora Tunic', 'Hover Boots', 'Mirror Shield', 'Stone of Agony', 'Fire Arrows', 'Ice Arrows', 'Light Arrows', 'Dins Fire', 'Farores Wind', 'Rupee (1)'] + ['Progressive Hookshot'] * 2 + ['Deku Shield'] * 4 + ['Hylian Shield'] * 2 + +alwaysitems = (['Biggoron Sword', 'Boomerang', 'Lens of Truth', 'Hammer', 'Iron Boots', 'Goron Tunic', 'Zora Tunic', 'Hover Boots', 'Mirror Shield', 'Stone of Agony', 'Fire Arrows', 'Ice Arrows', 'Light Arrows', 'Dins Fire', 'Farores Wind', 'Rupee (1)'] + ['Progressive Hookshot'] * 2 + ['Deku Shield'] * 4 + ['Hylian Shield'] * 2 + ['Progressive Strength Upgrade'] * 3 + ['Progressive Scale'] * 2 + ['Recovery Heart'] * 11 + ['Rupees (5)'] * 17 + ['Rupees (20)'] * 5 + ['Rupees (50)'] * 7 + ['Rupees (200)'] * 6 + ['Bow'] * 3 + ['Slingshot'] * 3 + ['Bomb Bag'] * 3 + ['Bottle with Letter'] + ['Bombs (5)'] * 2 + ['Bombs (10)'] * 2 + ['Bombs (20)'] * 2 + ['Arrows (5)'] + ['Arrows (10)'] * 6 + ['Arrows (30)'] * 6 + ['Deku Nuts (5)'] + ['Deku Nuts (10)'] + ['Progressive Wallet'] * 2 + ['Deku Stick Capacity'] * 2 + ['Deku Nut Capacity'] * 2 + ['Magic Meter']) # normal_bottles = ['Bottle', 'Bottle with Milk', 'Bottle with Red Potion', 'Bottle with Green Potion', 'Bottle with Blue Potion', 'Bottle with Fairy', 'Bottle with Fish', 'Bottle with Blue Fire', 'Bottle with Bugs', 'Bottle with Poe'] @@ -67,6 +67,11 @@ def get_pool_core(world): if not world.place_dungeon_items: pool.extend(notmapcompass) + + if world.shuffle_kokiri_sword: + pool.append('Kokiri Sword') + else: + placed_items['Kokiri Sword Chest'] = 'Kokiri Sword' if world.shuffle_weird_egg: pool.append('Weird Egg') From 6b50f9c580bc344a5bbd74b2918320427aef111b Mon Sep 17 00:00:00 2001 From: Vincent Cunningham Date: Wed, 18 Jul 2018 05:55:11 -0400 Subject: [PATCH 234/755] Add Navi Hint SFX Option also made Gui.py executable on *nix systems --- Gui.py | 2 ++ Rom.py | 39 +++++++++++++++++++++++++++++++++++++++ Settings.py | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 74 insertions(+) mode change 100644 => 100755 Gui.py diff --git a/Gui.py b/Gui.py old mode 100644 new mode 100755 index 2f807006b..76ea720f4 --- a/Gui.py +++ b/Gui.py @@ -145,6 +145,7 @@ def MakeRadioList(parent, data): frames['tuniccolor'] = LabelFrame(frames['aesthetic_tab'], text='Tunic Color', labelanchor=NW) frames['navicolor'] = LabelFrame(frames['aesthetic_tab'], text='Navi Color', labelanchor=NW) frames['lowhp'] = LabelFrame(frames['aesthetic_tab'], text='Low HP SFX', labelanchor=NW) + frames['navihint'] = LabelFrame(frames['navicolor'], text='Navi Hint SFX', labelanchor=NW) # shared @@ -325,6 +326,7 @@ def open_readme(): #Aesthetics tab frames['navicolor'].pack( fill=BOTH, expand=True, anchor=N, side=RIGHT, pady=(5,1) ) + frames['navihint'].pack( fill=BOTH, expand=True, anchor=N, side=BOTTOM, pady=(5,1) ) frames['tuniccolor'].pack(fill=BOTH, expand=True, anchor=W, side=TOP, pady=(5,1) ) frames['lowhp'].pack( fill=BOTH, expand=True, anchor=W, side=BOTTOM, pady=(5,1) ) diff --git a/Rom.py b/Rom.py index 25f7bfc76..5dc6bc3df 100644 --- a/Rom.py +++ b/Rom.py @@ -1453,6 +1453,45 @@ def write_save_table(rom): color = NaviColors[thisColor] rom.write_bytes(Navi[i][j], color) + #Navi hints + NaviHint = [] + NaviHint.append([0xAE7EF2]) #Overworld Hint + NaviHint.append([0xAE7EC6]) #Enemy Target Hint + naviHintSFXList = ['Default', 'Notification', 'Rupee', 'Timer', 'Tamborine', 'Recovery Heart', 'Carrot Refill', 'Zelda - Gasp', 'Cluck', 'Mweep!', 'None'] + randomNaviHintSFX = random.choice(naviHintSFXList) + + if world.naviHintSFX == 'Random Choice': + thisNaviHintSFX = randomNaviHintSFX + else: + thisNaviHintSFX = world.naviHintSFX + if thisNaviHintSFX == 'Notification': + naviHintSFX = [0x48, 0x20] + elif thisNaviHintSFX == 'Rupee': + naviHintSFX = [0x48, 0x03] + elif thisNaviHintSFX == 'Timer': + naviHintSFX = [0x48, 0x1A] + elif thisNaviHintSFX == 'Tamborine': + naviHintSFX = [0x48, 0x42] + elif thisNaviHintSFX == 'Recovery Heart': + naviHintSFX = [0x48, 0x0B] + elif thisNaviHintSFX == 'Carrot Refill': + naviHintSFX = [0x48, 0x45] + elif thisNaviHintSFX == 'Navi - Hey!': + naviHintSFX = [0x68, 0x5F] + elif thisNaviHintSFX == 'Zelda - Gasp': + naviHintSFX = [0x68, 0x79] + elif thisNaviHintSFX == 'Cluck': + naviHintSFX = [0x28, 0x12] + elif thisNaviHintSFX == 'Mweep!': + naviHintSFX = [0x68, 0x7A] + elif thisNaviHintSFX == 'None': + naviHintSFX = [0x00, 0x00] + + if thisNaviHintSFX != 'Default': + for i in range(len(NaviHint)): + for j in range(len(NaviHint[i])): + rom.write_bytes(NaviHint[i][j], naviHintSFX) + #Low health beep healthSFXList = ['Default', 'Softer Beep', 'Rupee', 'Timer', 'Tamborine', 'Recovery Heart', 'Carrot Refill', 'Navi - Hey!', 'Zelda - Gasp', 'Cluck', 'Mweep!', 'None'] randomSFX = random.choice(healthSFXList) diff --git a/Settings.py b/Settings.py index 7fd90bed4..d75f0c0e7 100644 --- a/Settings.py +++ b/Settings.py @@ -1143,6 +1143,39 @@ def __init__(self, settings_dict): 'default': 'Green', 'options': get_navi_color_options(), }), + Setting_Info('naviHintSFX', str, 0, False, + { + 'default': 'Default', + 'const': 'Default', + 'nargs': '?', + 'choices': ['Default', 'Notification', 'Rupee', 'Timer', 'Tamborine', 'Recovery Heart', 'Carrot Refill', 'Zelda - Gasp', 'Cluck', 'Mweep!', 'Random', 'None'], + 'help': '''\ + Select the sound effect that plays when Navi has a hint. (default: %(default)s) + Sound: Replace the sound effect with the chosen sound. + Random Chocie: Replace the sound effect with a random sound from this list. + None: Eliminate Navi hint sounds. + ''' + }, + { + 'text': 'Navi Hint SFX', + 'group': 'navihint', + 'widget': 'Combobox', + 'default': 'Default', + 'options': [ + 'Random Choice', + 'Default', + 'Notification', + 'Rupee', + 'Timer', + 'Tamborine', + 'Recovery Heart', + 'Carrot Refill', + 'Zelda - Gasp', + 'Cluck', + 'Mweep!', + 'None', + ] + }), Setting_Info('healthSFX', str, 0, False, { 'default': 'Default', From 780addfaaf569d65c74f60d0ed5b37aaf7ebbb78 Mon Sep 17 00:00:00 2001 From: Vincent Cunningham Date: Wed, 18 Jul 2018 07:56:43 -0400 Subject: [PATCH 235/755] Make Navi SFX GUI Frame Look Better make a left and right frame for the aesthetic tab and place tunic color and low HP in the left one and navi color and hint in the right one --- Gui.py | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/Gui.py b/Gui.py index 76ea720f4..6150ac938 100755 --- a/Gui.py +++ b/Gui.py @@ -88,6 +88,8 @@ def guiMain(settings=None): frames['logic_tab'] = ttk.Frame(notebook) frames['other_tab'] = ttk.Frame(notebook) frames['aesthetic_tab'] = ttk.Frame(notebook) + frames['aesthetic_tab_left'] = Frame(frames['aesthetic_tab']) + frames['aesthetic_tab_right'] = Frame(frames['aesthetic_tab']) adjustWindow = ttk.Frame(notebook) customWindow = ttk.Frame(notebook) notebook.add(frames['rom_tab'], text='ROM Options') @@ -142,10 +144,10 @@ def MakeRadioList(parent, data): frames['other'] = LabelFrame(frames['other_tab'], text='Misc', labelanchor=NW) #Aesthetics tab - frames['tuniccolor'] = LabelFrame(frames['aesthetic_tab'], text='Tunic Color', labelanchor=NW) - frames['navicolor'] = LabelFrame(frames['aesthetic_tab'], text='Navi Color', labelanchor=NW) - frames['lowhp'] = LabelFrame(frames['aesthetic_tab'], text='Low HP SFX', labelanchor=NW) - frames['navihint'] = LabelFrame(frames['navicolor'], text='Navi Hint SFX', labelanchor=NW) + frames['tuniccolor'] = LabelFrame(frames['aesthetic_tab_left'], text='Tunic Color', labelanchor=NW) + frames['navicolor'] = LabelFrame(frames['aesthetic_tab_right'], text='Navi Color', labelanchor=NW) + frames['lowhp'] = LabelFrame(frames['aesthetic_tab_left'], text='Low HP SFX', labelanchor=NW) + frames['navihint'] = LabelFrame(frames['aesthetic_tab_right'], text='Navi Hint SFX', labelanchor=NW) # shared @@ -325,10 +327,16 @@ def open_readme(): frames['other'].pack( fill=BOTH, expand=True, anchor=N, side=LEFT, pady=(5,1) ) #Aesthetics tab - frames['navicolor'].pack( fill=BOTH, expand=True, anchor=N, side=RIGHT, pady=(5,1) ) - frames['navihint'].pack( fill=BOTH, expand=True, anchor=N, side=BOTTOM, pady=(5,1) ) + frames['aesthetic_tab_left'].pack( fill=BOTH, expand=True, anchor=W, side=LEFT) + frames['aesthetic_tab_right'].pack(fill=BOTH, expand=True, anchor=W, side=RIGHT) + + #Aesthetics tab - Left Side frames['tuniccolor'].pack(fill=BOTH, expand=True, anchor=W, side=TOP, pady=(5,1) ) - frames['lowhp'].pack( fill=BOTH, expand=True, anchor=W, side=BOTTOM, pady=(5,1) ) + frames['lowhp'].pack( fill=BOTH, expand=True, anchor=W, side=TOP, pady=(5,1) ) + + #Aesthetics tab - Right Side + frames['navicolor'].pack( fill=BOTH, expand=True, anchor=W, side=TOP, pady=(5,1) ) + frames['navihint'].pack( fill=BOTH, expand=True, anchor=W, side=TOP, pady=(5,1) ) notebook.pack(fill=BOTH, expand=True, padx=5, pady=5) From afb2621e9d8c734513b4682fcb3e05896fc35a63 Mon Sep 17 00:00:00 2001 From: Vincent Cunningham Date: Wed, 18 Jul 2018 09:21:51 -0400 Subject: [PATCH 236/755] Update README --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 9a5db7fd9..8c06fc364 100644 --- a/README.md +++ b/README.md @@ -122,6 +122,10 @@ You can randomize the note pattern that is required to activate each song. The n Similar to the tunic color options, you can change Navi's color for each of her different kinds of targets. +## Navi sound options + +Similar to the low health sound option, you can change the sound Navi makes while targeting or when she has a hint for you. + ## Chest size matches contents `correct_chest_sizes`: Major items will appear in a large chest and other items in small chests. There are a few places that cannot be correctly updated: From 3dfc5aea71745d606632cdfdb1ec91d0612eb1ed Mon Sep 17 00:00:00 2001 From: Vincent Cunningham Date: Wed, 18 Jul 2018 15:14:43 -0400 Subject: [PATCH 237/755] Add Navi C-Up "Listen" Address --- Rom.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Rom.py b/Rom.py index 5dc6bc3df..f1cbefc37 100644 --- a/Rom.py +++ b/Rom.py @@ -1455,7 +1455,7 @@ def write_save_table(rom): #Navi hints NaviHint = [] - NaviHint.append([0xAE7EF2]) #Overworld Hint + NaviHint.append([0xAE7EF2, 0xC26C7E]) #Overworld Hint NaviHint.append([0xAE7EC6]) #Enemy Target Hint naviHintSFXList = ['Default', 'Notification', 'Rupee', 'Timer', 'Tamborine', 'Recovery Heart', 'Carrot Refill', 'Zelda - Gasp', 'Cluck', 'Mweep!', 'None'] randomNaviHintSFX = random.choice(naviHintSFXList) From 4da60a634ccf5d05b54e16aa5fb21f762e468692 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Tue, 7 Aug 2018 14:35:35 -0400 Subject: [PATCH 238/755] Fix saria song cutscene not spawning when re-entering SFM --- ASM/src/cutscenes.asm | 13 ++++++++++--- ASM/src/hacks.asm | 4 ++++ data/base2current.json | 2 +- version.py | 2 +- 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/ASM/src/cutscenes.asm b/ASM/src/cutscenes.asm index 702a386f3..c063642d4 100644 --- a/ASM/src/cutscenes.asm +++ b/ASM/src/cutscenes.asm @@ -146,7 +146,14 @@ override_saria_song_check: li v0, 2 @@get_item: - ori t8, t4, 0x80 - sb t8, 0x0EDF(t7) jr ra - move v0, v1 \ No newline at end of file + move v0, v1 + +set_saria_song_flag: + lh v0, 0xa4(t6) ; v0 = scene + li t0, SAVE_CONTEXT + lb t1, 0x0EDF(t0) + ori t1, t1, 0x80 + sb t1, 0x0EDF(t0) + jr ra + nop diff --git a/ASM/src/hacks.asm b/ASM/src/hacks.asm index e83810617..0045ddf93 100755 --- a/ASM/src/hacks.asm +++ b/ASM/src/hacks.asm @@ -367,6 +367,10 @@ .org 0xE29388 j override_saria_song_check +;lh v0, 0xa4(t6) ; v0 = scene +.org 0xE2A044 + jal set_saria_song_flag + ; li a1, 3 .org 0xDB532C jal override_song_of_time diff --git a/data/base2current.json b/data/base2current.json index 5897c0313..83a298714 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -1 +1 @@ -[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 196]}, {"11311804": [12, 16, 11, 205]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 190, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 95]}, {"11427312": [12, 16, 13, 8]}, {"11427320": [12, 16, 11, 200]}, {"11427332": [0, 0]}, {"11427335": [0]}, {"11431496": [12, 16, 11, 195, 1, 15, 192, 33]}, {"11559936": [130]}, {"11559938": [14, 222]}, {"11559948": [49, 248, 0, 2]}, {"11562028": [12, 16, 13, 41]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 24]}, {"11882076": [12, 16, 12, 245]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 62, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 69, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 76, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 55, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 140]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 18]}, {"12427480": [12, 16, 10, 106]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 110]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 12, 2, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 152]}, {"12491480": [12, 16, 10, 161]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 147]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 83]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 128, 73, 14, 222]}, {"14149508": [52]}, {"14149510": [0, 1, 2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 208]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 224]}, {"14624335": [118]}, {"14720872": [128]}, {"14720874": [14, 222]}, {"14720884": [49, 248, 0, 4]}, {"14720944": [12, 16, 11, 216]}, {"14848904": [8, 16, 11, 247]}, {"14872723": [52]}, {"15327704": [52, 9, 64, 0]}, {"15327728": [52]}, {"15327730": [91, 8]}, {"15327744": [52]}, {"15327746": [0, 10]}, {"15327757": [169]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 236, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 48, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 76, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 104, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 220, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 108, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 140, 128, 64, 38, 132, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 172, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 39, 212, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 28, 128, 64, 40]}, {"55059600": [83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 3, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 44, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [2, 52, 2]}, {"55060003": [69, 52, 2]}, {"55060007": [70, 3, 224]}, {"55060011": [8]}, {"55060016": [144, 136]}, {"55060019": [162, 49, 8]}, {"55060023": [6, 17]}, {"55060027": [2, 52, 2]}, {"55060031": [55, 52, 2]}, {"55060035": [56, 3, 224]}, {"55060039": [8]}, {"55060044": [144, 136]}, {"55060047": [161, 49, 8]}, {"55060051": [32, 17]}, {"55060055": [2, 52, 2]}, {"55060059": [121, 52, 2]}, {"55060063": [122, 3, 224]}, {"55060067": [8]}, {"55060072": [144, 136]}, {"55060075": [161, 49, 8]}, {"55060079": [4, 17]}, {"55060083": [2, 52, 2]}, {"55060087": [119, 52, 2]}, {"55060091": [120, 3, 224]}, {"55060095": [8]}, {"55060100": [144, 136]}, {"55060103": [50, 17]}, {"55060107": [2, 52, 2]}, {"55060111": [192, 52, 2]}, {"55060115": [193, 3, 224]}, {"55060119": [8]}, {"55060124": [144, 136]}, {"55060127": [163, 49, 8]}, {"55060131": [3, 17]}, {"55060135": [2, 52, 2]}, {"55060139": [77, 52, 162]}, {"55060144": [3, 224]}, {"55060147": [8]}, {"55060152": [144, 136]}, {"55060155": [163, 49, 8]}, {"55060159": [24, 17]}, {"55060163": [2, 52, 2]}, {"55060167": [77, 52, 162]}, {"55060172": [3, 224]}, {"55060175": [8]}, {"55060180": [3, 224]}, {"55060183": [8]}, {"55060188": [52, 8]}, {"55060191": [1, 160, 136]}, {"55060195": [62, 3, 224]}, {"55060199": [8]}, {"55060204": [36, 136]}, {"55060207": [134, 36, 9, 255, 255, 37, 41]}, {"55060215": [1, 52, 1]}, {"55060219": [3]}, {"55060221": [41, 8, 42, 20, 32]}, {"55060227": [7]}, {"55060232": [1, 9, 80, 33, 145, 75]}, {"55060240": [52, 1]}, {"55060243": [255, 21, 97, 255, 247]}, {"55060252": [161, 69]}, {"55060256": [3, 224]}, {"55060259": [8]}, {"55060264": [36, 136]}, {"55060267": [168, 1, 6, 64, 33, 145, 9]}, {"55060276": [1, 37, 72, 37, 161, 9]}, {"55060284": [3, 224]}, {"55060287": [8]}, {"55060292": [36, 136]}, {"55060295": [188, 1, 5, 64, 33, 129, 9]}, {"55060304": [5, 33]}, {"55060307": [2]}, {"55060312": [52, 9]}, {"55060316": [37, 41]}, {"55060319": [1, 161, 9]}, {"55060324": [3, 224]}, {"55060327": [8]}, {"55060332": [52, 8]}, {"55060335": [1, 160, 136]}, {"55060339": [61, 52, 8]}, {"55060343": [20, 160, 136]}, {"55060347": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [50, 160, 136]}, {"55060375": [58, 52, 8]}, {"55060379": [48, 164, 136, 19, 244, 160, 136]}, {"55060387": [51, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [2, 160, 136]}, {"55060403": [50, 52, 8]}, {"55060407": [1, 160, 136]}, {"55060411": [58, 160, 136]}, {"55060415": [60, 52, 8]}, {"55060419": [96, 164, 136, 19, 244, 160, 136]}, {"55060427": [51, 3, 224]}, {"55060431": [8]}, {"55060436": [144, 136]}, {"55060439": [124, 52, 1]}, {"55060443": [255, 17, 1]}, {"55060447": [6, 52, 2]}, {"55060451": [107, 144, 136]}, {"55060455": [148, 45, 8]}, {"55060459": [6, 17]}, {"55060463": [2, 52, 2]}, {"55060467": [106, 52, 2]}, {"55060471": [3, 3, 224]}, {"55060475": [8]}, {"55060480": [144, 136]}, {"55060483": [123, 52, 1]}, {"55060487": [255, 17, 1]}, {"55060491": [2, 52, 162]}, {"55060496": [52, 2]}, {"55060499": [12, 3, 224]}, {"55060503": [8]}, {"55060508": [52, 8]}, {"55060511": [7, 160, 136]}, {"55060515": [123, 3, 224]}, {"55060519": [8]}, {"55060524": [52, 8]}, {"55060527": [1]}, {"55060529": [168, 64, 4, 140, 137]}, {"55060535": [164, 1, 40, 72, 37, 172, 137]}, {"55060543": [164, 3, 224]}, {"55060547": [8]}, {"55060552": [48, 132]}, {"55060555": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060567": [140, 16, 129]}, {"55060571": [22, 145, 2]}, {"55060575": [117, 52, 1]}, {"55060579": [141, 16, 129]}, {"55060583": [19, 145, 2]}, {"55060587": [117, 16, 128]}, {"55060591": [17, 145, 2]}, {"55060595": [116, 52, 1]}, {"55060599": [138, 16, 129]}, {"55060603": [14, 145, 2]}, {"55060607": [116, 52, 1]}, {"55060611": [139, 16, 129]}, {"55060615": [11, 145, 2]}, {"55060619": [116, 52, 1]}, {"55060623": [88, 16, 129]}, {"55060627": [8, 52, 2]}, {"55060632": [52, 1]}, {"55060635": [120, 16, 129]}, {"55060639": [5, 52, 2]}, {"55060644": [52, 1]}, {"55060647": [121, 16, 129]}, {"55060651": [2, 52, 2]}, {"55060656": [52, 2]}, {"55060659": [255, 3, 224]}, {"55060663": [8]}, {"55060668": [39, 189, 255, 224, 175, 191]}, {"55060675": [16, 175, 176]}, {"55060679": [20, 12, 16, 11, 11]}, {"55060688": [4, 65]}, {"55060691": [2]}, {"55060696": [52, 2]}, {"55060699": [91]}, {"55060701": [64, 32, 33, 12, 16, 11, 114]}, {"55060712": [16, 96]}, {"55060715": [22, 175, 163]}, {"55060719": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060728": [133, 9]}, {"55060731": [2, 17, 32]}, {"55060735": [3, 52, 10]}, {"55060739": [1, 16]}, {"55060743": [12, 165, 10]}, {"55060748": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060759": [6, 144, 102]}, {"55060763": [7, 140, 105]}, {"55060767": [8, 1, 32, 248, 9]}, {"55060776": [143, 163]}, {"55060779": [28, 144, 101]}, {"55060783": [1, 12, 1, 191, 115, 2, 32, 32, 33, 143, 163]}, {"55060795": [28, 144, 101]}, {"55060799": [3, 16]}, {"55060803": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060815": [6]}, {"55060817": [74]}, {"55060819": [24]}, {"55060822": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060832": [60, 8, 128, 64, 37, 8, 32]}, {"55060840": [133, 9]}, {"55060843": [2, 17, 32]}, {"55060847": [3, 52, 10]}, {"55060851": [1, 165, 10]}, {"55060856": [52, 5]}, {"55060859": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060871": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060882": [48, 33, 143, 191]}, {"55060887": [16, 143, 176]}, {"55060891": [20, 39, 189]}, {"55060895": [32, 3, 224]}, {"55060899": [8]}, {"55060904": [143, 166]}, {"55060907": [48, 132, 197]}, {"55060911": [4, 8, 16, 10, 114]}, {"55060920": [143, 185]}, {"55060923": [44, 135, 37]}, {"55060927": [4, 8, 16, 10, 114]}, {"55060936": [60, 10, 128, 64, 37, 74, 32, 8, 141, 75]}, {"55060947": [12, 17, 96]}, {"55060951": [2]}, {"55060956": [149, 69]}, {"55060959": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060972": [60, 9, 128, 64, 37, 41, 32, 24, 129, 42]}, {"55060983": [3, 5, 64]}, {"55060987": [11, 1, 42, 72, 32, 129, 40]}, {"55060996": [52, 10]}, {"55060999": [127, 21, 10]}, {"55061003": [6]}, {"55061008": [60, 10, 128, 18, 37, 74, 165, 208, 133, 72]}, {"55061019": [144, 33, 8]}, {"55061023": [1, 165, 72]}, {"55061027": [144, 161, 32]}, {"55061032": [3, 224]}, {"55061035": [8]}, {"55061040": [60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061051": [12, 17, 32]}, {"55061055": [2]}, {"55061060": [129, 3]}, {"55061063": [2]}, {"55061065": [3, 15, 195]}, {"55061069": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061083": [8]}, {"55061088": [144, 69]}, {"55061091": [3, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061103": [12, 17, 32]}, {"55061107": [2]}, {"55061112": [145, 5]}, {"55061115": [3, 3, 224]}, {"55061119": [8]}, {"55061124": [143, 162]}, {"55061127": [36, 144, 69]}, {"55061132": [60, 8, 128, 64, 37, 8, 32]}, {"55061140": [133, 9]}, {"55061143": [2, 17, 32]}, {"55061147": [4, 52, 10]}, {"55061151": [1, 165, 10]}, {"55061156": [16]}, {"55061159": [24, 52, 5]}, {"55061163": [65, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061175": [12, 17, 32]}, {"55061179": [19]}, {"55061184": [145, 5]}, {"55061187": [1, 175, 164]}, {"55061192": [175, 165]}, {"55061195": [4, 175, 166]}, {"55061199": [8, 39, 189, 255, 232, 175, 191]}, {"55061207": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061219": [6, 145, 6]}, {"55061223": [7, 141, 9]}, {"55061227": [8, 1, 32, 248, 9]}, {"55061236": [143, 191]}, {"55061239": [16, 39, 189]}, {"55061243": [24, 143, 164]}, {"55061248": [143, 165]}, {"55061251": [4, 143, 166]}, {"55061255": [8, 3, 224]}, {"55061259": [8]}, {"55061264": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061275": [16, 175, 163]}, {"55061279": [20, 175, 191]}, {"55061283": [24, 12, 16, 10, 209]}, {"55061292": [143, 162]}, {"55061295": [16, 143, 163]}, {"55061299": [20, 143, 191]}, {"55061303": [24, 39, 189]}, {"55061307": [32, 3, 224]}, {"55061311": [8]}, {"55061316": [39, 189, 255, 232, 175, 191]}, {"55061323": [16, 60, 8, 128, 64, 37, 8, 32, 8, 173]}, {"55061336": [173]}, {"55061339": [4, 173]}, {"55061343": [8, 173]}, {"55061347": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061363": [42]}, {"55061369": [9, 15, 195, 1, 33, 32, 38]}, {"55061377": [129, 32, 35, 141, 5, 4, 40, 12, 16, 11, 11]}, {"55061392": [4, 64]}, {"55061395": [34]}, {"55061400": [52, 68]}, {"55061404": [12, 16, 11, 114]}, {"55061412": [16, 96]}, {"55061415": [12]}, {"55061420": [60, 8, 128, 64, 37, 8, 32, 8, 140, 105]}, {"55061432": [173, 9]}, {"55061436": [140, 105]}, {"55061439": [4, 173, 9]}, {"55061443": [4, 140, 105]}, {"55061447": [8, 173, 9]}, {"55061451": [8, 52, 9]}, {"55061455": [1, 173, 9]}, {"55061459": [12, 144, 98]}, {"55061464": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061480": [52, 1]}, {"55061483": [10, 21, 65]}, {"55061487": [6]}, {"55061492": [149, 42]}, {"55061495": [28, 49, 74, 240, 31]}, {"55061501": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061511": [28, 129, 9, 4, 36, 5, 33]}, {"55061519": [2]}, {"55061525": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061535": [16, 39, 189]}, {"55061539": [24, 3, 224]}, {"55061543": [8]}, {"55061548": [39, 189, 255, 232, 175, 191]}, {"55061555": [16, 12, 16, 11, 25]}, {"55061564": [36, 1, 255, 255, 16, 65]}, {"55061571": [4]}, {"55061576": [52, 68]}, {"55061580": [12, 16, 11, 77]}, {"55061588": [143, 191]}, {"55061591": [16, 39, 189]}, {"55061595": [24, 3, 224]}, {"55061599": [8]}, {"55061604": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061615": [164, 52, 8]}, {"55061620": [52, 137]}, {"55061624": [148, 170]}, {"55061628": [52, 1, 1, 156, 21, 65]}, {"55061635": [8]}, {"55061640": [52, 8]}, {"55061643": [3, 148, 171]}, {"55061647": [28, 49, 105]}, {"55061651": [255, 49, 98, 31]}, {"55061657": [2, 18, 2, 16]}, {"55061663": [31]}, {"55061668": [52, 1]}, {"55061671": [10, 21, 65]}, {"55061675": [14]}, {"55061680": [148, 171]}, {"55061683": [28, 52, 1]}, {"55061687": [16, 20, 65]}, {"55061691": [8]}, {"55061696": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061707": [4]}, {"55061712": [36, 2, 255, 255, 16]}, {"55061719": [21]}, {"55061724": [52, 8]}, {"55061727": [1, 49, 105]}, {"55061731": [31, 52, 1]}, {"55061735": [21, 21, 65]}, {"55061739": [12]}, {"55061744": [52, 1]}, {"55061747": [62, 16, 129]}, {"55061751": [7]}, {"55061756": [52, 1]}, {"55061759": [66, 16, 129]}, {"55061763": [4]}, {"55061768": [36, 2, 255, 255, 16]}, {"55061775": [7]}, {"55061780": [52, 8]}, {"55061783": [2, 144, 169, 1, 65]}, {"55061789": [2, 18]}, {"55061793": [72, 16, 37]}, {"55061797": [2, 18]}, {"55061801": [73, 16, 37, 3, 224]}, {"55061807": [8]}, {"55061812": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061824": [129, 9]}, {"55061828": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061851": [4, 141, 9]}, {"55061856": [17, 32]}, {"55061859": [23]}, {"55061865": [9, 82, 2, 49, 75, 248]}, {"55061873": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061896": [49, 34]}, {"55061899": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061920": [60, 12, 128, 64, 37, 140, 28]}, {"55061928": [129, 140]}, {"55061932": [17, 108]}, {"55061935": [4, 165, 32]}, {"55061939": [2, 161, 43]}, {"55061943": [2, 161, 34]}, {"55061947": [3, 173, 36]}, {"55061951": [4, 3, 224]}, {"55061955": [8]}, {"55061960": [39, 189, 255, 224, 175, 176]}, {"55061967": [16, 175, 177]}, {"55061971": [20, 175, 191]}, {"55061975": [24, 52, 130]}, {"55061980": [52, 80]}, {"55061984": [38, 8, 255, 128, 5]}, {"55061991": [18]}, {"55061996": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55062007": [16, 1, 9]}, {"55062011": [24]}, {"55062014": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55062032": [142, 40]}, {"55062035": [12, 1]}, {"55062038": [248, 9]}, {"55062044": [20, 80, 255, 239]}, {"55062052": [54, 35]}, {"55062056": [16]}, {"55062059": [2]}, {"55062064": [52, 3]}, {"55062068": [143, 176]}, {"55062071": [16, 143, 177]}, {"55062075": [20, 143, 191]}, {"55062079": [24, 39, 189]}, {"55062083": [32, 3, 224]}, {"55062087": [8]}, {"55062092": [140, 136, 29, 44, 52, 9]}, {"55062099": [1]}, {"55062101": [9, 78]}, {"55062104": [1, 9, 16, 36, 16, 64]}, {"55062111": [36]}, {"55062116": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062131": [164, 52, 1]}, {"55062135": [61, 17, 129]}, {"55062139": [10]}, {"55062145": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062155": [25]}, {"55062160": [52, 13]}, {"55062163": [1, 161, 141, 29, 40, 37, 74]}, {"55062171": [3, 16]}, {"55062175": [9]}, {"55062180": [52, 12]}, {"55062183": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062199": [14]}, {"55062204": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062240": [60, 9, 128, 64, 37, 41, 32, 24, 161, 40]}, {"55062252": [52, 2]}, {"55062256": [3, 224]}, {"55062259": [8]}, {"55062264": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062276": [16]}, {"55062279": [34]}, {"55062284": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062296": [16]}, {"55062299": [29]}, {"55062304": [52, 2]}, {"55062307": [255, 32, 232, 255, 166, 33, 8]}, {"55062315": [97, 16]}, {"55062319": [24]}, {"55062324": [52, 8]}, {"55062327": [100, 16]}, {"55062331": [21]}, {"55062336": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062351": [1, 160, 40, 14, 222, 52, 8]}, {"55062359": [104, 16]}, {"55062363": [13]}, {"55062368": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062383": [4, 160, 40, 14, 222, 52, 8]}, {"55062391": [106, 16]}, {"55062395": [5]}, {"55062400": [52, 5]}, {"55062403": [3, 52, 8]}, {"55062407": [107, 16]}, {"55062411": [1]}, {"55062416": [60, 9, 128, 64, 37, 41, 32, 24, 60, 10, 128, 64, 37, 74, 32, 27, 129, 44]}, {"55062436": [17, 136]}, {"55062439": [11, 33, 41]}, {"55062443": [1, 21, 42, 255, 252]}, {"55062452": [60, 9, 128, 64, 37, 41, 32, 23, 33, 41]}, {"55062463": [1, 17, 42]}, {"55062467": [4, 129, 44]}, {"55062472": [21, 128, 255, 252]}, {"55062480": [161, 40]}, {"55062484": [3, 224]}, {"55062487": [8]}, {"55062493": [96, 120, 33, 129, 236, 14, 223, 49, 142]}, {"55062503": [128, 17, 192]}, {"55062507": [3, 52, 3]}, {"55062511": [5, 3, 224]}, {"55062515": [8, 52, 2]}, {"55062519": [2, 53, 152]}, {"55062523": [128, 161, 248, 14, 223, 3, 224]}, {"55062531": [8]}, {"55062533": [96, 16, 33, 175, 164]}, {"55062539": [104, 175, 165]}, {"55062543": [108, 175, 166]}, {"55062547": [112, 175, 167]}, {"55062551": [116, 39, 189, 255, 232, 175, 163]}, {"55062559": [16, 175, 191]}, {"55062563": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062579": [32, 21]}, {"55062583": [31]}, {"55062588": [60, 9, 128, 64, 37, 41, 32, 27, 52, 10]}, {"55062599": [255, 161, 42]}, {"55062604": [60, 9, 128, 64, 37, 41, 32, 24, 36, 10, 255, 255, 52, 12]}, {"55062619": [3, 33, 74]}, {"55062623": [1, 17, 76]}, {"55062627": [20, 1, 42, 88, 32, 129, 104]}, {"55062636": [17]}, {"55062638": [255, 251]}, {"55062644": [60, 9, 128, 64, 37, 41, 32, 27, 161, 42]}, {"55062656": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062667": [1, 165, 42]}, {"55062672": [60, 9, 128, 65, 52, 10]}, {"55062679": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 209]}, {"55062708": [143, 163]}, {"55062711": [16, 143, 191]}, {"55062715": [20, 39, 189]}, {"55062719": [24, 143, 164]}, {"55062723": [104, 143, 165]}, {"55062727": [108, 143, 166]}, {"55062731": [112, 143, 167]}, {"55062735": [116, 132, 110, 19, 196, 3, 224]}, {"55062743": [8]}, {"55062748": [147, 25]}, {"55062751": [116, 52, 1]}, {"55062755": [255, 23, 33]}, {"55062759": [2]}, {"55062764": [52, 25]}, {"55062767": [44, 3, 224]}, {"55062771": [8, 167, 185]}, {"55062775": [154, 147, 44]}, {"55062779": [116, 52, 1]}, {"55062783": [255, 21, 129]}, {"55062787": [2]}, {"55062792": [52, 12]}, {"55062795": [44, 3, 224]}, {"55062799": [8]}, {"55062804": [145, 174]}, {"55062807": [116, 52, 1]}, {"55062811": [255, 21, 193]}, {"55062815": [2]}, {"55062820": [52, 14]}, {"55062823": [44, 3, 224]}, {"55062827": [8, 167, 174]}, {"55062831": [154, 145, 207]}, {"55062835": [116, 52, 1]}, {"55062839": [255, 21, 225]}, {"55062843": [2]}, {"55062848": [52, 15]}, {"55062851": [44, 3, 224]}, {"55062855": [8, 167, 175]}, {"55062859": [154, 60, 8, 128, 64, 37, 8, 32, 28, 142, 9]}, {"55062871": [104, 173, 9]}, {"55062876": [142, 9]}, {"55062879": [108, 173, 9]}, {"55062883": [4, 150, 9]}, {"55062887": [112, 165, 9]}, {"55062891": [8, 150, 9]}, {"55062895": [156, 165, 9]}, {"55062899": [10, 3, 224]}, {"55062903": [8, 142, 14]}, {"55062907": [4, 39, 189, 255, 224, 175, 176]}, {"55062915": [16, 175, 177]}, {"55062919": [20, 175, 191]}, {"55062923": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 28, 142, 8]}, {"55062943": [4, 17]}, {"55062947": [5]}, {"55062952": [12, 16, 12, 137]}, {"55062960": [16]}, {"55062963": [3]}, {"55062968": [12, 16, 12, 156]}, {"55062976": [12, 16, 12, 124, 52, 4]}, {"55062984": [12, 16, 12, 124, 52, 4]}, {"55062991": [1, 12, 16, 12, 124, 52, 4]}, {"55062999": [2, 143, 176]}, {"55063003": [16, 143, 177]}, {"55063007": [20, 143, 191]}, {"55063011": [24, 39, 189]}, {"55063015": [32, 3, 224]}, {"55063019": [8]}, {"55063024": [2, 4, 64, 33, 145, 9]}, {"55063031": [108, 52, 1]}, {"55063035": [255, 17, 33]}, {"55063039": [7]}, {"55063044": [2, 9, 72, 33, 145, 41]}, {"55063051": [116, 52, 1]}, {"55063055": [44, 17, 33]}, {"55063059": [2]}, {"55063064": [161, 9]}, {"55063067": [105, 3, 224]}, {"55063071": [8]}, {"55063076": [39, 189, 255, 232, 175, 191]}, {"55063083": [16, 142, 40]}, {"55063088": [174, 8]}, {"55063091": [64, 142, 40]}, {"55063095": [4, 174, 8]}, {"55063099": [68, 150, 40]}, {"55063103": [8, 166, 8]}, {"55063107": [72, 162]}, {"55063110": [15, 51, 146, 8]}, {"55063115": [74, 52, 1]}, {"55063119": [255, 21, 1]}, {"55063123": [3]}, {"55063128": [12, 16, 12, 170]}, {"55063136": [143, 191]}, {"55063139": [16, 39, 189]}, {"55063143": [24, 3, 224]}, {"55063147": [8]}, {"55063152": [142, 8]}, {"55063155": [64, 174, 8]}, {"55063159": [104, 142, 8]}, {"55063163": [68, 174, 8]}, {"55063167": [108, 150, 8]}, {"55063171": [72, 166, 8]}, {"55063175": [112, 146, 8]}, {"55063179": [104, 52, 1]}, {"55063183": [255, 21, 1]}, {"55063187": [3]}, {"55063192": [52, 8]}, {"55063195": [1, 162, 8, 15, 51, 3, 224]}, {"55063203": [8]}, {"55063208": [39, 189, 255, 232, 175, 191]}, {"55063215": [16, 150, 8]}, {"55063219": [156, 49, 8]}, {"55063223": [64, 17]}, {"55063227": [5]}, {"55063232": [150, 8]}, {"55063235": [112, 49, 8, 255, 15, 53, 8]}, {"55063243": [48, 166, 8]}, {"55063247": [112, 146, 40]}, {"55063251": [1, 162, 8]}, {"55063255": [105, 150, 40]}, {"55063259": [2, 166, 8]}, {"55063263": [106, 142, 40]}, {"55063267": [4, 174, 8]}, {"55063271": [108, 12, 16, 12, 196, 52, 4]}, {"55063280": [12, 16, 12, 196, 52, 4]}, {"55063287": [1, 12, 16, 12, 196, 52, 4]}, {"55063295": [2, 143, 191]}, {"55063299": [16, 39, 189]}, {"55063303": [24, 3, 224]}, {"55063307": [8]}, {"55063312": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 51, 188, 145, 10]}, {"55063327": [108, 52, 1]}, {"55063331": [255, 17, 65]}, {"55063335": [5]}, {"55063340": [1, 42, 72, 33, 145, 41]}, {"55063348": [21, 32]}, {"55063351": [28]}, {"55063356": [60, 9, 128, 64, 37, 41, 51, 175, 37, 41]}, {"55063367": [1, 145, 42]}, {"55063372": [17, 64]}, {"55063375": [19]}, {"55063380": [2, 10, 88, 33, 145, 107]}, {"55063387": [116, 52, 1]}, {"55063391": [255, 17, 97, 255, 248]}, {"55063400": [146, 12]}, {"55063403": [108, 17, 138, 255, 245]}, {"55063412": [146, 12]}, {"55063415": [109, 17, 138, 255, 242]}, {"55063424": [146, 12]}, {"55063427": [110, 17, 138, 255, 239]}, {"55063436": [161, 11]}, {"55063439": [105, 161, 10]}, {"55063443": [108, 16]}, {"55063447": [4]}, {"55063452": [52, 9]}, {"55063455": [255, 161, 9]}, {"55063459": [105, 161, 9]}, {"55063463": [108, 3, 224]}, {"55063467": [8]}, {"55063472": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063485": [1, 1, 1, 1, 1]}, {"55063491": [1, 1, 1, 1, 1]}, {"55063497": [1]}, {"55063499": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063509": [51, 8, 33, 32, 15]}, {"55063515": [71, 21, 234]}, {"55063519": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063531": [164]}, {"55063533": [15, 122, 3, 20, 64]}, {"55063539": [5, 52, 2, 72, 48, 21, 226]}, {"55063547": [7]}, {"55063552": [36, 25]}, {"55063555": [3, 16]}, {"55063559": [4, 52, 2, 99, 17, 21, 226]}, {"55063567": [2]}, {"55063572": [36, 25]}, {"55063575": [3, 3, 224]}, {"55063579": [8]}, {"55063584": [141, 173, 138, 160, 52, 2, 128]}, {"55063592": [16, 77]}, {"55063595": [2]}, {"55063600": [16]}, {"55063603": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063619": [1, 16, 64]}, {"55063623": [2]}, {"55063628": [16]}, {"55063631": [2, 52, 2]}, {"55063635": [1, 161, 226, 28, 191, 3, 224]}, {"55063643": [8]}, {"55063649": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063663": [164]}, {"55063665": [15, 122, 3, 20, 64]}, {"55063671": [5, 52, 2, 72, 48, 21, 226]}, {"55063679": [7]}, {"55063684": [36, 25]}, {"55063687": [3, 16]}, {"55063691": [4, 52, 2, 99, 17, 21, 226]}, {"55063699": [2]}, {"55063704": [36, 25]}, {"55063707": [3, 3, 224]}, {"55063711": [8]}, {"55063716": [162, 37]}, {"55063719": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063731": [4, 142, 10]}, {"55063736": [17, 64]}, {"55063739": [11]}, {"55063745": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063757": [24, 194, 2, 23]}, {"55063763": [3, 49, 89]}, {"55063767": [255, 129, 234]}, {"55063772": [3, 42, 200, 37, 8, 16, 13, 44, 161, 249]}, {"55063784": [3, 224]}, {"55063787": [8]}] \ No newline at end of file +[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 196]}, {"11311804": [12, 16, 11, 205]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 190, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 101]}, {"11427312": [12, 16, 13, 14]}, {"11427320": [12, 16, 11, 200]}, {"11427332": [0, 0]}, {"11427335": [0]}, {"11431496": [12, 16, 11, 195, 1, 15, 192, 33]}, {"11559936": [130]}, {"11559938": [14, 222]}, {"11559948": [49, 248, 0, 2]}, {"11562028": [12, 16, 13, 47]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 30]}, {"11882076": [12, 16, 12, 251]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 68, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 75, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 82, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 61, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 140]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 18]}, {"12427480": [12, 16, 10, 106]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 110]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 12, 8, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 152]}, {"12491480": [12, 16, 10, 161]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 147]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 89]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 128, 73, 14, 222]}, {"14149508": [52]}, {"14149510": [0, 1, 2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 208]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 224]}, {"14624335": [118]}, {"14720872": [128]}, {"14720874": [14, 222]}, {"14720884": [49, 248, 0, 4]}, {"14720944": [12, 16, 11, 216]}, {"14848904": [8, 16, 11, 247]}, {"14852164": [12, 16, 12, 0]}, {"14872723": [52]}, {"15327704": [52, 9, 64, 0]}, {"15327728": [52]}, {"15327730": [91, 8]}, {"15327744": [52]}, {"15327746": [0, 10]}, {"15327757": [169]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 236, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 48, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 76, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 104, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 220, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 108, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 140, 128, 64, 38, 132, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 172, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 39, 212, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 28, 128, 64, 40]}, {"55059600": [83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 3, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 44, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [2, 52, 2]}, {"55060003": [69, 52, 2]}, {"55060007": [70, 3, 224]}, {"55060011": [8]}, {"55060016": [144, 136]}, {"55060019": [162, 49, 8]}, {"55060023": [6, 17]}, {"55060027": [2, 52, 2]}, {"55060031": [55, 52, 2]}, {"55060035": [56, 3, 224]}, {"55060039": [8]}, {"55060044": [144, 136]}, {"55060047": [161, 49, 8]}, {"55060051": [32, 17]}, {"55060055": [2, 52, 2]}, {"55060059": [121, 52, 2]}, {"55060063": [122, 3, 224]}, {"55060067": [8]}, {"55060072": [144, 136]}, {"55060075": [161, 49, 8]}, {"55060079": [4, 17]}, {"55060083": [2, 52, 2]}, {"55060087": [119, 52, 2]}, {"55060091": [120, 3, 224]}, {"55060095": [8]}, {"55060100": [144, 136]}, {"55060103": [50, 17]}, {"55060107": [2, 52, 2]}, {"55060111": [192, 52, 2]}, {"55060115": [193, 3, 224]}, {"55060119": [8]}, {"55060124": [144, 136]}, {"55060127": [163, 49, 8]}, {"55060131": [3, 17]}, {"55060135": [2, 52, 2]}, {"55060139": [77, 52, 162]}, {"55060144": [3, 224]}, {"55060147": [8]}, {"55060152": [144, 136]}, {"55060155": [163, 49, 8]}, {"55060159": [24, 17]}, {"55060163": [2, 52, 2]}, {"55060167": [77, 52, 162]}, {"55060172": [3, 224]}, {"55060175": [8]}, {"55060180": [3, 224]}, {"55060183": [8]}, {"55060188": [52, 8]}, {"55060191": [1, 160, 136]}, {"55060195": [62, 3, 224]}, {"55060199": [8]}, {"55060204": [36, 136]}, {"55060207": [134, 36, 9, 255, 255, 37, 41]}, {"55060215": [1, 52, 1]}, {"55060219": [3]}, {"55060221": [41, 8, 42, 20, 32]}, {"55060227": [7]}, {"55060232": [1, 9, 80, 33, 145, 75]}, {"55060240": [52, 1]}, {"55060243": [255, 21, 97, 255, 247]}, {"55060252": [161, 69]}, {"55060256": [3, 224]}, {"55060259": [8]}, {"55060264": [36, 136]}, {"55060267": [168, 1, 6, 64, 33, 145, 9]}, {"55060276": [1, 37, 72, 37, 161, 9]}, {"55060284": [3, 224]}, {"55060287": [8]}, {"55060292": [36, 136]}, {"55060295": [188, 1, 5, 64, 33, 129, 9]}, {"55060304": [5, 33]}, {"55060307": [2]}, {"55060312": [52, 9]}, {"55060316": [37, 41]}, {"55060319": [1, 161, 9]}, {"55060324": [3, 224]}, {"55060327": [8]}, {"55060332": [52, 8]}, {"55060335": [1, 160, 136]}, {"55060339": [61, 52, 8]}, {"55060343": [20, 160, 136]}, {"55060347": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [50, 160, 136]}, {"55060375": [58, 52, 8]}, {"55060379": [48, 164, 136, 19, 244, 160, 136]}, {"55060387": [51, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [2, 160, 136]}, {"55060403": [50, 52, 8]}, {"55060407": [1, 160, 136]}, {"55060411": [58, 160, 136]}, {"55060415": [60, 52, 8]}, {"55060419": [96, 164, 136, 19, 244, 160, 136]}, {"55060427": [51, 3, 224]}, {"55060431": [8]}, {"55060436": [144, 136]}, {"55060439": [124, 52, 1]}, {"55060443": [255, 17, 1]}, {"55060447": [6, 52, 2]}, {"55060451": [107, 144, 136]}, {"55060455": [148, 45, 8]}, {"55060459": [6, 17]}, {"55060463": [2, 52, 2]}, {"55060467": [106, 52, 2]}, {"55060471": [3, 3, 224]}, {"55060475": [8]}, {"55060480": [144, 136]}, {"55060483": [123, 52, 1]}, {"55060487": [255, 17, 1]}, {"55060491": [2, 52, 162]}, {"55060496": [52, 2]}, {"55060499": [12, 3, 224]}, {"55060503": [8]}, {"55060508": [52, 8]}, {"55060511": [7, 160, 136]}, {"55060515": [123, 3, 224]}, {"55060519": [8]}, {"55060524": [52, 8]}, {"55060527": [1]}, {"55060529": [168, 64, 4, 140, 137]}, {"55060535": [164, 1, 40, 72, 37, 172, 137]}, {"55060543": [164, 3, 224]}, {"55060547": [8]}, {"55060552": [48, 132]}, {"55060555": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060567": [140, 16, 129]}, {"55060571": [22, 145, 2]}, {"55060575": [117, 52, 1]}, {"55060579": [141, 16, 129]}, {"55060583": [19, 145, 2]}, {"55060587": [117, 16, 128]}, {"55060591": [17, 145, 2]}, {"55060595": [116, 52, 1]}, {"55060599": [138, 16, 129]}, {"55060603": [14, 145, 2]}, {"55060607": [116, 52, 1]}, {"55060611": [139, 16, 129]}, {"55060615": [11, 145, 2]}, {"55060619": [116, 52, 1]}, {"55060623": [88, 16, 129]}, {"55060627": [8, 52, 2]}, {"55060632": [52, 1]}, {"55060635": [120, 16, 129]}, {"55060639": [5, 52, 2]}, {"55060644": [52, 1]}, {"55060647": [121, 16, 129]}, {"55060651": [2, 52, 2]}, {"55060656": [52, 2]}, {"55060659": [255, 3, 224]}, {"55060663": [8]}, {"55060668": [39, 189, 255, 224, 175, 191]}, {"55060675": [16, 175, 176]}, {"55060679": [20, 12, 16, 11, 11]}, {"55060688": [4, 65]}, {"55060691": [2]}, {"55060696": [52, 2]}, {"55060699": [91]}, {"55060701": [64, 32, 33, 12, 16, 11, 114]}, {"55060712": [16, 96]}, {"55060715": [22, 175, 163]}, {"55060719": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060728": [133, 9]}, {"55060731": [2, 17, 32]}, {"55060735": [3, 52, 10]}, {"55060739": [1, 16]}, {"55060743": [12, 165, 10]}, {"55060748": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060759": [6, 144, 102]}, {"55060763": [7, 140, 105]}, {"55060767": [8, 1, 32, 248, 9]}, {"55060776": [143, 163]}, {"55060779": [28, 144, 101]}, {"55060783": [1, 12, 1, 191, 115, 2, 32, 32, 33, 143, 163]}, {"55060795": [28, 144, 101]}, {"55060799": [3, 16]}, {"55060803": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060815": [6]}, {"55060817": [74]}, {"55060819": [24]}, {"55060822": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060832": [60, 8, 128, 64, 37, 8, 32]}, {"55060840": [133, 9]}, {"55060843": [2, 17, 32]}, {"55060847": [3, 52, 10]}, {"55060851": [1, 165, 10]}, {"55060856": [52, 5]}, {"55060859": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060871": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060882": [48, 33, 143, 191]}, {"55060887": [16, 143, 176]}, {"55060891": [20, 39, 189]}, {"55060895": [32, 3, 224]}, {"55060899": [8]}, {"55060904": [143, 166]}, {"55060907": [48, 132, 197]}, {"55060911": [4, 8, 16, 10, 114]}, {"55060920": [143, 185]}, {"55060923": [44, 135, 37]}, {"55060927": [4, 8, 16, 10, 114]}, {"55060936": [60, 10, 128, 64, 37, 74, 32, 8, 141, 75]}, {"55060947": [12, 17, 96]}, {"55060951": [2]}, {"55060956": [149, 69]}, {"55060959": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060972": [60, 9, 128, 64, 37, 41, 32, 24, 129, 42]}, {"55060983": [3, 5, 64]}, {"55060987": [11, 1, 42, 72, 32, 129, 40]}, {"55060996": [52, 10]}, {"55060999": [127, 21, 10]}, {"55061003": [6]}, {"55061008": [60, 10, 128, 18, 37, 74, 165, 208, 133, 72]}, {"55061019": [144, 33, 8]}, {"55061023": [1, 165, 72]}, {"55061027": [144, 161, 32]}, {"55061032": [3, 224]}, {"55061035": [8]}, {"55061040": [60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061051": [12, 17, 32]}, {"55061055": [2]}, {"55061060": [129, 3]}, {"55061063": [2]}, {"55061065": [3, 15, 195]}, {"55061069": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061083": [8]}, {"55061088": [144, 69]}, {"55061091": [3, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061103": [12, 17, 32]}, {"55061107": [2]}, {"55061112": [145, 5]}, {"55061115": [3, 3, 224]}, {"55061119": [8]}, {"55061124": [143, 162]}, {"55061127": [36, 144, 69]}, {"55061132": [60, 8, 128, 64, 37, 8, 32]}, {"55061140": [133, 9]}, {"55061143": [2, 17, 32]}, {"55061147": [4, 52, 10]}, {"55061151": [1, 165, 10]}, {"55061156": [16]}, {"55061159": [24, 52, 5]}, {"55061163": [65, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061175": [12, 17, 32]}, {"55061179": [19]}, {"55061184": [145, 5]}, {"55061187": [1, 175, 164]}, {"55061192": [175, 165]}, {"55061195": [4, 175, 166]}, {"55061199": [8, 39, 189, 255, 232, 175, 191]}, {"55061207": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061219": [6, 145, 6]}, {"55061223": [7, 141, 9]}, {"55061227": [8, 1, 32, 248, 9]}, {"55061236": [143, 191]}, {"55061239": [16, 39, 189]}, {"55061243": [24, 143, 164]}, {"55061248": [143, 165]}, {"55061251": [4, 143, 166]}, {"55061255": [8, 3, 224]}, {"55061259": [8]}, {"55061264": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061275": [16, 175, 163]}, {"55061279": [20, 175, 191]}, {"55061283": [24, 12, 16, 10, 209]}, {"55061292": [143, 162]}, {"55061295": [16, 143, 163]}, {"55061299": [20, 143, 191]}, {"55061303": [24, 39, 189]}, {"55061307": [32, 3, 224]}, {"55061311": [8]}, {"55061316": [39, 189, 255, 232, 175, 191]}, {"55061323": [16, 60, 8, 128, 64, 37, 8, 32, 8, 173]}, {"55061336": [173]}, {"55061339": [4, 173]}, {"55061343": [8, 173]}, {"55061347": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061363": [42]}, {"55061369": [9, 15, 195, 1, 33, 32, 38]}, {"55061377": [129, 32, 35, 141, 5, 4, 40, 12, 16, 11, 11]}, {"55061392": [4, 64]}, {"55061395": [34]}, {"55061400": [52, 68]}, {"55061404": [12, 16, 11, 114]}, {"55061412": [16, 96]}, {"55061415": [12]}, {"55061420": [60, 8, 128, 64, 37, 8, 32, 8, 140, 105]}, {"55061432": [173, 9]}, {"55061436": [140, 105]}, {"55061439": [4, 173, 9]}, {"55061443": [4, 140, 105]}, {"55061447": [8, 173, 9]}, {"55061451": [8, 52, 9]}, {"55061455": [1, 173, 9]}, {"55061459": [12, 144, 98]}, {"55061464": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061480": [52, 1]}, {"55061483": [10, 21, 65]}, {"55061487": [6]}, {"55061492": [149, 42]}, {"55061495": [28, 49, 74, 240, 31]}, {"55061501": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061511": [28, 129, 9, 4, 36, 5, 33]}, {"55061519": [2]}, {"55061525": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061535": [16, 39, 189]}, {"55061539": [24, 3, 224]}, {"55061543": [8]}, {"55061548": [39, 189, 255, 232, 175, 191]}, {"55061555": [16, 12, 16, 11, 25]}, {"55061564": [36, 1, 255, 255, 16, 65]}, {"55061571": [4]}, {"55061576": [52, 68]}, {"55061580": [12, 16, 11, 77]}, {"55061588": [143, 191]}, {"55061591": [16, 39, 189]}, {"55061595": [24, 3, 224]}, {"55061599": [8]}, {"55061604": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061615": [164, 52, 8]}, {"55061620": [52, 137]}, {"55061624": [148, 170]}, {"55061628": [52, 1, 1, 156, 21, 65]}, {"55061635": [8]}, {"55061640": [52, 8]}, {"55061643": [3, 148, 171]}, {"55061647": [28, 49, 105]}, {"55061651": [255, 49, 98, 31]}, {"55061657": [2, 18, 2, 16]}, {"55061663": [31]}, {"55061668": [52, 1]}, {"55061671": [10, 21, 65]}, {"55061675": [14]}, {"55061680": [148, 171]}, {"55061683": [28, 52, 1]}, {"55061687": [16, 20, 65]}, {"55061691": [8]}, {"55061696": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061707": [4]}, {"55061712": [36, 2, 255, 255, 16]}, {"55061719": [21]}, {"55061724": [52, 8]}, {"55061727": [1, 49, 105]}, {"55061731": [31, 52, 1]}, {"55061735": [21, 21, 65]}, {"55061739": [12]}, {"55061744": [52, 1]}, {"55061747": [62, 16, 129]}, {"55061751": [7]}, {"55061756": [52, 1]}, {"55061759": [66, 16, 129]}, {"55061763": [4]}, {"55061768": [36, 2, 255, 255, 16]}, {"55061775": [7]}, {"55061780": [52, 8]}, {"55061783": [2, 144, 169, 1, 65]}, {"55061789": [2, 18]}, {"55061793": [72, 16, 37]}, {"55061797": [2, 18]}, {"55061801": [73, 16, 37, 3, 224]}, {"55061807": [8]}, {"55061812": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061824": [129, 9]}, {"55061828": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061851": [4, 141, 9]}, {"55061856": [17, 32]}, {"55061859": [23]}, {"55061865": [9, 82, 2, 49, 75, 248]}, {"55061873": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061896": [49, 34]}, {"55061899": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061920": [60, 12, 128, 64, 37, 140, 28]}, {"55061928": [129, 140]}, {"55061932": [17, 108]}, {"55061935": [4, 165, 32]}, {"55061939": [2, 161, 43]}, {"55061943": [2, 161, 34]}, {"55061947": [3, 173, 36]}, {"55061951": [4, 3, 224]}, {"55061955": [8]}, {"55061960": [39, 189, 255, 224, 175, 176]}, {"55061967": [16, 175, 177]}, {"55061971": [20, 175, 191]}, {"55061975": [24, 52, 130]}, {"55061980": [52, 80]}, {"55061984": [38, 8, 255, 128, 5]}, {"55061991": [18]}, {"55061996": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55062007": [16, 1, 9]}, {"55062011": [24]}, {"55062014": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55062032": [142, 40]}, {"55062035": [12, 1]}, {"55062038": [248, 9]}, {"55062044": [20, 80, 255, 239]}, {"55062052": [54, 35]}, {"55062056": [16]}, {"55062059": [2]}, {"55062064": [52, 3]}, {"55062068": [143, 176]}, {"55062071": [16, 143, 177]}, {"55062075": [20, 143, 191]}, {"55062079": [24, 39, 189]}, {"55062083": [32, 3, 224]}, {"55062087": [8]}, {"55062092": [140, 136, 29, 44, 52, 9]}, {"55062099": [1]}, {"55062101": [9, 78]}, {"55062104": [1, 9, 16, 36, 16, 64]}, {"55062111": [36]}, {"55062116": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062131": [164, 52, 1]}, {"55062135": [61, 17, 129]}, {"55062139": [10]}, {"55062145": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062155": [25]}, {"55062160": [52, 13]}, {"55062163": [1, 161, 141, 29, 40, 37, 74]}, {"55062171": [3, 16]}, {"55062175": [9]}, {"55062180": [52, 12]}, {"55062183": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062199": [14]}, {"55062204": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062240": [60, 9, 128, 64, 37, 41, 32, 24, 161, 40]}, {"55062252": [52, 2]}, {"55062256": [3, 224]}, {"55062259": [8]}, {"55062264": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062276": [16]}, {"55062279": [34]}, {"55062284": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062296": [16]}, {"55062299": [29]}, {"55062304": [52, 2]}, {"55062307": [255, 32, 232, 255, 166, 33, 8]}, {"55062315": [97, 16]}, {"55062319": [24]}, {"55062324": [52, 8]}, {"55062327": [100, 16]}, {"55062331": [21]}, {"55062336": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062351": [1, 160, 40, 14, 222, 52, 8]}, {"55062359": [104, 16]}, {"55062363": [13]}, {"55062368": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062383": [4, 160, 40, 14, 222, 52, 8]}, {"55062391": [106, 16]}, {"55062395": [5]}, {"55062400": [52, 5]}, {"55062403": [3, 52, 8]}, {"55062407": [107, 16]}, {"55062411": [1]}, {"55062416": [60, 9, 128, 64, 37, 41, 32, 24, 60, 10, 128, 64, 37, 74, 32, 27, 129, 44]}, {"55062436": [17, 136]}, {"55062439": [11, 33, 41]}, {"55062443": [1, 21, 42, 255, 252]}, {"55062452": [60, 9, 128, 64, 37, 41, 32, 23, 33, 41]}, {"55062463": [1, 17, 42]}, {"55062467": [4, 129, 44]}, {"55062472": [21, 128, 255, 252]}, {"55062480": [161, 40]}, {"55062484": [3, 224]}, {"55062487": [8]}, {"55062493": [96, 120, 33, 129, 236, 14, 223, 49, 142]}, {"55062503": [128, 17, 192]}, {"55062507": [3, 52, 3]}, {"55062511": [5, 3, 224]}, {"55062515": [8, 52, 2]}, {"55062519": [2, 3, 224]}, {"55062523": [8]}, {"55062525": [96, 16, 33, 133, 194]}, {"55062531": [164, 60, 8, 128, 18, 37, 8, 165, 208, 129, 9, 14, 223, 53, 41]}, {"55062547": [128, 161, 9, 14, 223, 3, 224]}, {"55062555": [8]}, {"55062560": [175, 164]}, {"55062563": [104, 175, 165]}, {"55062567": [108, 175, 166]}, {"55062571": [112, 175, 167]}, {"55062575": [116, 39, 189, 255, 232, 175, 163]}, {"55062583": [16, 175, 191]}, {"55062587": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062603": [32, 21]}, {"55062607": [31]}, {"55062612": [60, 9, 128, 64, 37, 41, 32, 27, 52, 10]}, {"55062623": [255, 161, 42]}, {"55062628": [60, 9, 128, 64, 37, 41, 32, 24, 36, 10, 255, 255, 52, 12]}, {"55062643": [3, 33, 74]}, {"55062647": [1, 17, 76]}, {"55062651": [20, 1, 42, 88, 32, 129, 104]}, {"55062660": [17]}, {"55062662": [255, 251]}, {"55062668": [60, 9, 128, 64, 37, 41, 32, 27, 161, 42]}, {"55062680": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062691": [1, 165, 42]}, {"55062696": [60, 9, 128, 65, 52, 10]}, {"55062703": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 209]}, {"55062732": [143, 163]}, {"55062735": [16, 143, 191]}, {"55062739": [20, 39, 189]}, {"55062743": [24, 143, 164]}, {"55062747": [104, 143, 165]}, {"55062751": [108, 143, 166]}, {"55062755": [112, 143, 167]}, {"55062759": [116, 132, 110, 19, 196, 3, 224]}, {"55062767": [8]}, {"55062772": [147, 25]}, {"55062775": [116, 52, 1]}, {"55062779": [255, 23, 33]}, {"55062783": [2]}, {"55062788": [52, 25]}, {"55062791": [44, 3, 224]}, {"55062795": [8, 167, 185]}, {"55062799": [154, 147, 44]}, {"55062803": [116, 52, 1]}, {"55062807": [255, 21, 129]}, {"55062811": [2]}, {"55062816": [52, 12]}, {"55062819": [44, 3, 224]}, {"55062823": [8]}, {"55062828": [145, 174]}, {"55062831": [116, 52, 1]}, {"55062835": [255, 21, 193]}, {"55062839": [2]}, {"55062844": [52, 14]}, {"55062847": [44, 3, 224]}, {"55062851": [8, 167, 174]}, {"55062855": [154, 145, 207]}, {"55062859": [116, 52, 1]}, {"55062863": [255, 21, 225]}, {"55062867": [2]}, {"55062872": [52, 15]}, {"55062875": [44, 3, 224]}, {"55062879": [8, 167, 175]}, {"55062883": [154, 60, 8, 128, 64, 37, 8, 32, 28, 142, 9]}, {"55062895": [104, 173, 9]}, {"55062900": [142, 9]}, {"55062903": [108, 173, 9]}, {"55062907": [4, 150, 9]}, {"55062911": [112, 165, 9]}, {"55062915": [8, 150, 9]}, {"55062919": [156, 165, 9]}, {"55062923": [10, 3, 224]}, {"55062927": [8, 142, 14]}, {"55062931": [4, 39, 189, 255, 224, 175, 176]}, {"55062939": [16, 175, 177]}, {"55062943": [20, 175, 191]}, {"55062947": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 28, 142, 8]}, {"55062967": [4, 17]}, {"55062971": [5]}, {"55062976": [12, 16, 12, 143]}, {"55062984": [16]}, {"55062987": [3]}, {"55062992": [12, 16, 12, 162]}, {"55063000": [12, 16, 12, 130, 52, 4]}, {"55063008": [12, 16, 12, 130, 52, 4]}, {"55063015": [1, 12, 16, 12, 130, 52, 4]}, {"55063023": [2, 143, 176]}, {"55063027": [16, 143, 177]}, {"55063031": [20, 143, 191]}, {"55063035": [24, 39, 189]}, {"55063039": [32, 3, 224]}, {"55063043": [8]}, {"55063048": [2, 4, 64, 33, 145, 9]}, {"55063055": [108, 52, 1]}, {"55063059": [255, 17, 33]}, {"55063063": [7]}, {"55063068": [2, 9, 72, 33, 145, 41]}, {"55063075": [116, 52, 1]}, {"55063079": [44, 17, 33]}, {"55063083": [2]}, {"55063088": [161, 9]}, {"55063091": [105, 3, 224]}, {"55063095": [8]}, {"55063100": [39, 189, 255, 232, 175, 191]}, {"55063107": [16, 142, 40]}, {"55063112": [174, 8]}, {"55063115": [64, 142, 40]}, {"55063119": [4, 174, 8]}, {"55063123": [68, 150, 40]}, {"55063127": [8, 166, 8]}, {"55063131": [72, 162]}, {"55063134": [15, 51, 146, 8]}, {"55063139": [74, 52, 1]}, {"55063143": [255, 21, 1]}, {"55063147": [3]}, {"55063152": [12, 16, 12, 176]}, {"55063160": [143, 191]}, {"55063163": [16, 39, 189]}, {"55063167": [24, 3, 224]}, {"55063171": [8]}, {"55063176": [142, 8]}, {"55063179": [64, 174, 8]}, {"55063183": [104, 142, 8]}, {"55063187": [68, 174, 8]}, {"55063191": [108, 150, 8]}, {"55063195": [72, 166, 8]}, {"55063199": [112, 146, 8]}, {"55063203": [104, 52, 1]}, {"55063207": [255, 21, 1]}, {"55063211": [3]}, {"55063216": [52, 8]}, {"55063219": [1, 162, 8, 15, 51, 3, 224]}, {"55063227": [8]}, {"55063232": [39, 189, 255, 232, 175, 191]}, {"55063239": [16, 150, 8]}, {"55063243": [156, 49, 8]}, {"55063247": [64, 17]}, {"55063251": [5]}, {"55063256": [150, 8]}, {"55063259": [112, 49, 8, 255, 15, 53, 8]}, {"55063267": [48, 166, 8]}, {"55063271": [112, 146, 40]}, {"55063275": [1, 162, 8]}, {"55063279": [105, 150, 40]}, {"55063283": [2, 166, 8]}, {"55063287": [106, 142, 40]}, {"55063291": [4, 174, 8]}, {"55063295": [108, 12, 16, 12, 202, 52, 4]}, {"55063304": [12, 16, 12, 202, 52, 4]}, {"55063311": [1, 12, 16, 12, 202, 52, 4]}, {"55063319": [2, 143, 191]}, {"55063323": [16, 39, 189]}, {"55063327": [24, 3, 224]}, {"55063331": [8]}, {"55063336": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 51, 212, 145, 10]}, {"55063351": [108, 52, 1]}, {"55063355": [255, 17, 65]}, {"55063359": [5]}, {"55063364": [1, 42, 72, 33, 145, 41]}, {"55063372": [21, 32]}, {"55063375": [28]}, {"55063380": [60, 9, 128, 64, 37, 41, 51, 199, 37, 41]}, {"55063391": [1, 145, 42]}, {"55063396": [17, 64]}, {"55063399": [19]}, {"55063404": [2, 10, 88, 33, 145, 107]}, {"55063411": [116, 52, 1]}, {"55063415": [255, 17, 97, 255, 248]}, {"55063424": [146, 12]}, {"55063427": [108, 17, 138, 255, 245]}, {"55063436": [146, 12]}, {"55063439": [109, 17, 138, 255, 242]}, {"55063448": [146, 12]}, {"55063451": [110, 17, 138, 255, 239]}, {"55063460": [161, 11]}, {"55063463": [105, 161, 10]}, {"55063467": [108, 16]}, {"55063471": [4]}, {"55063476": [52, 9]}, {"55063479": [255, 161, 9]}, {"55063483": [105, 161, 9]}, {"55063487": [108, 3, 224]}, {"55063491": [8]}, {"55063496": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063509": [1, 1, 1, 1, 1]}, {"55063515": [1, 1, 1, 1, 1]}, {"55063521": [1]}, {"55063523": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063533": [51, 8, 33, 32, 15]}, {"55063539": [71, 21, 234]}, {"55063543": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063555": [164]}, {"55063557": [15, 122, 3, 20, 64]}, {"55063563": [5, 52, 2, 72, 48, 21, 226]}, {"55063571": [7]}, {"55063576": [36, 25]}, {"55063579": [3, 16]}, {"55063583": [4, 52, 2, 99, 17, 21, 226]}, {"55063591": [2]}, {"55063596": [36, 25]}, {"55063599": [3, 3, 224]}, {"55063603": [8]}, {"55063608": [141, 173, 138, 160, 52, 2, 128]}, {"55063616": [16, 77]}, {"55063619": [2]}, {"55063624": [16]}, {"55063627": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063643": [1, 16, 64]}, {"55063647": [2]}, {"55063652": [16]}, {"55063655": [2, 52, 2]}, {"55063659": [1, 161, 226, 28, 191, 3, 224]}, {"55063667": [8]}, {"55063673": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063687": [164]}, {"55063689": [15, 122, 3, 20, 64]}, {"55063695": [5, 52, 2, 72, 48, 21, 226]}, {"55063703": [7]}, {"55063708": [36, 25]}, {"55063711": [3, 16]}, {"55063715": [4, 52, 2, 99, 17, 21, 226]}, {"55063723": [2]}, {"55063728": [36, 25]}, {"55063731": [3, 3, 224]}, {"55063735": [8]}, {"55063740": [162, 37]}, {"55063743": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063755": [4, 142, 10]}, {"55063760": [17, 64]}, {"55063763": [11]}, {"55063769": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063781": [24, 194, 2, 23]}, {"55063787": [3, 49, 89]}, {"55063791": [255, 129, 234]}, {"55063796": [3, 42, 200, 37, 8, 16, 13, 50, 161, 249]}, {"55063808": [3, 224]}, {"55063811": [8]}] \ No newline at end of file diff --git a/version.py b/version.py index 034435f39..5e8688653 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.4 f.LUM' +__version__ = '2.15.5 f.LUM' From 9f3ae384cf08c7e0b78736d7b1e734fcda93440f Mon Sep 17 00:00:00 2001 From: Vincent Cunningham Date: Wed, 8 Aug 2018 04:38:36 -0400 Subject: [PATCH 239/755] Add default values for co-op settings default world_count and player_num arguments to a value of 1 to match the Gui and to continue to make it possible to generate a seed with only the rom argument --- Settings.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Settings.py b/Settings.py index 7fd90bed4..492d235ea 100644 --- a/Settings.py +++ b/Settings.py @@ -172,6 +172,7 @@ def __init__(self, settings_dict): ''', 'type': int}), Setting_Info('world_count', int, 0, False, { + 'default': 1, 'help': '''\ Use to create a multi-world generation for co-op seeds. World count is the number of players. Warning: Increasing @@ -179,6 +180,7 @@ def __init__(self, settings_dict): ''', 'type': int}), Setting_Info('player_num', int, 0, False, { + 'default': 1, 'help': '''\ Use to select world to generate when there are multiple worlds. ''', From d1a7d6be39a3fd54927d70df2857879cb0c22046 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Wed, 8 Aug 2018 15:36:21 -0400 Subject: [PATCH 240/755] Added GrantMan's new compressor to significantly speedup compression --- Compress/Compress.exe | Bin 51200 -> 53760 bytes version.py | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/Compress/Compress.exe b/Compress/Compress.exe index 46ab74eaa8b2b4809d9dadcea72fc87cd659ec47..355626cdcdc4298e01b45a713dd76d32c7334f94 100755 GIT binary patch delta 17330 zcmch8dt6l2+W(%-3=QNsqcVyYWY9rD5eKh$!De94Jvty|Uh;|}iVBD@D0v%fK;36M zimuA)q*+;6nbDzC@Nz&@FwMi!E?!EpW3>q_x*3`|?|1E4n)&|z>OG$ypU*Sj?^^3w zw`Z;Otji3=WdX%I1IpHS>G5P{0muGYxc>aZJl~aDkBHNoU+EuYRdJk} zu|@u@Sz07CLa5#zGK%jKSWR2pvN@t-mtroxI(C6yQRxTzqqJ;4*~o_n84#i^t0#LA zLWh*lhvX7M=rI?Fv{My<0qs=oU*6%kxHEM$KPO0<8wlPD+`K<<@czK!-5fV>O?=8! zR}nI8Mv`cJ^)kmvTxqpyawV->UbG4&*46m%C;JxB(v9`VCWt)P9>xYqnh@lc3@BzC zjgvUhAlJ;NOjGqX$9dvauFSY6SRnnyDkNKT2=az4#*${mR9RaW`osf4t&8W#$?Gs zh%CLXFEImAbIMy}c3>y_Rca5fE@uhH`HUleq)Eo&w*Vq9XXPnrvww%(R<1xN_bs65 z8iSIqiTg$g^>~XM49rq}O(GvMMQ@nOa@ira2x5)ksa44n5N{jyx%;%kb6q>O z&fX8!pql+2LnU(IT%`?nc2O`6MUfw|uw z^Y2x}z>Yp+5sM6hS~@cL8bCTBBWAN{M$;FwD>eu9SMwta$PwLPer0~eQ*BqN+*yKG za}$$@PF5>;%9nl~58lM$QL&~Uix--@qhEsLGz;>h?dVJx988mFgv~ozC2D@Vf_4YO z6*;A_f1-qx(u=O44k=0NkS2ttWPIurZ#u>4<|$6`adVn`w4^Q@D}|hqS79QSRy!p` zIwd6QOF}S-ZQc#$bW~VHjVaXpMz0&^JIHrDDO4r@zL+*0 z1<=_kCK*!1R;PGI{`79NQ~bAl69LI?ju8h6Vw1Q+Z5J15?P5VUF{zFG1=0k`1#4o) zTMRU?(j1R~kP+@pQi%`A&FwjE{|9SQyZ+kj7SGkRhS%IuM;}>m=2`S{*jar^1MMq{ zw~PqYZ~7ep&u>0`$fuw#)UvCrZyf&3nyki$v znUol@PE0m?ZM;pqjc{`GZD&Bj806O1yKN{SIm&AbNEW}giU^=6ok6OYisqc6BUM|gQAbbQ8BU!x0N!6Mfoc(?l-1K`jVhnzKS=BydE>9!fR znYLNAv=t8Vb7w&06KII-xZND8!W=WCW{fPuK&FUy^V91`5#(kCA|uvQmgSD2??-0$pG1qWaBW8{DQ7}mU%t8jN( zuOinv#PVCtk!~SF`6teii6JlWhd!(LA!IfmJ@pf%qzUK!B^}t}FR9j#kth8ac6Lj} zicZg}!uE@3#Ow2rr?grSYxN}p7E&c=FmQ6(JQCa4)MXM)OrS9?80Wm4OT*$#dB{AH z)j7XQRVJ-3+iZ%vq2KEqjHC;K=eSC)$|OH`?iH~d$$yGpL-jp()P+s7Fp^0|bm`%K zghnDbAJ}vnhKoBPXMmT@i@j$sIKyNNwD@7OQ6FyQY@TYh;5lNjt!cgO^Kq_O60fgM zn46usyzr`&s0Pn3u+A<#CnaL8M#AF01boabth0Ho+Gb4|KybpSx>Ok>y35}iF`w};-A25+lj|_-ULoDK-vlki@yPSB1^Led?|_w|fuw&| zo7*8_V~oflP18M3xfD5MtLy`kmI1|cUod?CCX9Dk08b&p119%A(jLOqxtn? zsDGQ`w@@&YP(%!hpzfm?(f60a%Qq2&Qj|!yQWj6Aw0KnB#fqp0I>jq;9_(xrYwGOg zc+|+HsIJ%~o5?Ba-bIC2-$xKM>+7Q%#M+u>wdXfpzjg+l96Bf`$6ZX0J5v<^YKPxQ zQp|`AC)nmWqOu*J&KSh)sZkF*TW~44WvF)dYRH^ad5RW-Lb!xeO4o$Y3M>=Z0QPce>s#%BQfx$8CvcBY1swj1o z)Lqc@W0JiKrhpp`&)$XlsybjBeSK-Qc--}oSWkDOs1&g&TE4Fu6gV>a4lPigg_`W} zM{K$ z1n>#M{a&kyqlJ5o6EXc@qelU2 z-KFQ0ZODp>rqteDNy=1=61;;mPD7hcB3N1q`{0ZcqC1f0O>lW9Y%iXxQud*5|MxcJ z>NFxO8YS$fM{51}bK*JF5;bjRtz>LZ3-;;;b}!+$=nK??pHHVAd<>kD;=vPX%WFth z*Y1Jip(D2=8@hINe*`7!1rGU9tdoBNTjS%f9tsx-QmO&AX+!l-QVmSE;h5TrW1Tsx zsSa^I;|J(5s=np9yG92fw|^97LczaAchc-APVNcdWv+}p3pqpKFjO_2WlE3;184}i)*MCMb!V>v{ zPskf#gZbMZlS^S;bmuVno9MLg86!U-n(l}ANgtD=-TU$GPsmT*llU*slKAjJeD+yI zTfj_Y+RvON&x9BA0cS}kQ-A)IvqUgG#iyPjr%XNgK4(aaX-&|qf77;{mjf!6M@&$) z-IR^~Er&e>X>i3sae$gCwV?x$Q|@ z5ahjaG;7%R2gpl3hw$qbk;}VOpwn@Lm$RtG z4wNrxCA{zL&NIyo>R2NQdkbc4wRz&VdB@SoTV29F>E5@ zU44Z*jZj6VMt0@yh2l9;KnlIJz`HA=PnNassB}tP}Nv8Emn8G{1XyN_%yS=40$H{Y(#NVRie+Ls3y3w;_{jmQd%Rt)hQuS;Tyj z9MwmaLh_<|>!Vqz%}-PR@)>zO%F5@iCUR8wkoF%^^$ERg`-72@-b=Vsq)W8D`v4@! zvnODk^+rPT`FUmjP1A(J=jZAnmhp6f`km!v8^5^y|a-Jx1Q>_eh6tk77miMsgXQ!+}2I`J?1!zrjH- zARY^5{(EF-?6?tMrlZvpzoRxw#vU{U_nz}|GQysOQSbT3sqPj{ofswQjzQUHl#bEQ z8Ar*XSW~-)QmK9PCC|aS=x|Xw`7X8(zrU7r>7Up~3w?~m2dJ@G9e09S|E4^m#pi?7 zTf`rH#tamNT#d8H+Wx)x{jYPMN@ah7Q%O=9hoR2$mSE(tLT(sL_b42FFmHMvAzkB=O*@cMdP4k{ z-rgE_!}p1zq-a3XXFO6visMG|Bae{7aVediQR*?iQ%DQL!BuQ>i09-2(qq6+rpePW zAUxhP?2@JeFHcg~d-${sJ6A9YPS&xT3?69X19y|6fvKJMzKs;U{U}b-22P(U3mKol z-37>_$mM}O%p(L8U+Pn)kW=iJ4P^nX6T92R$bATi{XTe`L=Fm%h?<5f2ZmwRRWo14 z?rpWynd*Y3k<3A6_jqL4-w}2aPc92)dQ`!aaPBR{x~@U>pHq>1N$`&Rg&I^&N0}qS z+S7{B8E6T0>K2+(5GaQIM#ElR39`t)exta~dPKo>x~xz?3htv8JZ zamAJ2Ckuv{I#nP=8Yd)+jTmCF-l@82i>{WpRqPnjLlx3}7kZ(JtH#8zQ=^EwHoM5D zLv7j_lj$t!dXR+2M~AM*26iLKt`_Q&EVNIBo#~8z>L5vv59c4PB5UG9wHL8p`HU|g zATP%o`7Tvte|#)|=XD~-Z{o9GCr=K`=S!=|^LI`gjmb|L{F3NV#oHd^_sc&<~$+AG{AWufF727#BVj zcJ}*l<4z_J4;w--Xd!#&ZAs<*yx+Trf{R$nWSJGhT zyX1g9itI@m&(9x6d`W$DzwV*lt1uk%&@zq;vG?R39!I9xle;#+)nFn9OP+(M9SjfI zu#7ag(;k$O$j={3eD=`Ll(CqPWfy$D{br~&g;EQ8bwkIJ{>lCMz_BDfIb8QL9CSN=c`4KqGG>jiV!DR={_l^0ru|5_Qq~k|LDpq}LJK{y;>; zovB>kA;;=7F4;}u#%xoKBL5nb&4;~BE(;ctBjoWb-U7|w6Gs!fqd(tnG%0jU?@5=B zy!2sO??t>qNC9-a)~<=a-tu0R%ZQ$CNhUu#TKVVf`nV+IyRAi8o)JD5HGOyzndJ=U?{9`nHUiwZd1my;ny!(RI%8qea6Y#$iPWGRP)KCNoIcDi)7`b$^2_Cl20Zj zbU*xe+C0xLbc&8okg^lKNh7hxrx45JxUPNUVTiBs+AWmcaA|R#@r?4@t9?9KIoXny zwjKkfdkmj+(EJV&b15DXT;bQE(;VY7HoOR53MP1}EjU<&DOtkrW|>!Z_pwFN1g|Hz zCwHByLKB=YyrjEGpG~~R%W2dwcw2FqE!e1|#Fb`~JQ+)h?$OGP++VZLc>IOCS$Fue zKL1BnlWeY7GUb+v|NVKAGc}$+`8;`J>LU;T4eQ3WN|5@kdA{O@sgWvv>T@J?`h0%a zR}R@^FodP#Ja#}t%u3w6&i(? ztRrLRh1>q4q`;ftqAE{PlJJs)S&&F|lMzv=rIr#k!)U}Hs;)dtSfPB3uS^Y@|O+dgZWW>|0r@9xx%7|Dyw5(n?&ot#PS)x{u`ZcM}5ZYAoMcq$z!-MZKMZN*m(7mq$vAwKI%zwI=i3l zCI%EYhfuB0ICUM-=5&udjTqa0tD=nOJbJA#;XdFqcE&V@FOBkOUN0i!ayr}Owix4! zP0HodxUUoid375SFt3itGnA{SCYP3luQaqs8IBZu;}WWstuzsb>jd&zP9)!>h@8sl z%m);aZ*n4gG(ZdYrt=h{kJf1#Fsk&AKDL@LwDrqKY;GaH0C{tB5-u&JEx;vg<3CU) zo?sHt3a7Vlw^QoZ2ei2Z-v9CN5;|gV1yuE3iB^qO7@&D$DH*@m%&%EW3K#e0^G1^G zi?{PpBgm*ct7&PW(w8yAXK4aY~+V3zI0`!nG5F5zPt7%li7pq80VV}r}G)1|Y&zb?J!z0mu4q^LUl%(lW zKwd2D$^RZmY6?5_Zq29Vc2~;PoJ0VWX#d=!5yjyRTY=Og1PnwA?>?yXqxK2w=5@&-s5@N0&jGCa<3FT>XvKFe?|!=()8 zF`UG3G{YebyEAO7pxYOD2P>Xd{2jwf45?S4@rN1iVYr>)Muw{y<}#egFqPpbhOrF0 zGi*!IjSA?-qcniwrworX+{^HFh8r2KW|+%xCd1JThcN7=Af{jCA{>zKzR=(zEv(bH zU#D?p^bZz*!=Xrh6vfjF4>R1ua67||3|BMEWjK>zD#K9>V;Od5*mf!BRw}v!@1-<= z;U$Kr86IZ1hv9aH8yT)!(4_l8KyEE#W0p(cZO}R1uaJzzk`i6APwe?utxKW8u zo6mvCqhvUL$sfQOR{x^17hEwR>A-E8q_NQc;{}%$IE%<#v1ifEKB}x(S-bqjw zBta{y5U==u93CrCyjs>H2HPzA9*;&TPD@jlgBq%64XE`3MX&L8IEwM=egnw+Xq0jV z)|a@)`Q2XzZB=h1`0yPsTJa)iCC-(cJQmD>x4=KX(e&4nxB!V0X;D(x5O8Ur(`)_! zInbeBgqpAMlc_7R4(ar(LNN&)pt^XOz^^CdU+BI_xjQLTZbG2+I^s?Gl3L_al$=C=AL;WZp>-kT4*cN9D6_ZctX0ys~ctd2X= z{19f=R;1u`S{xsze;S*_5tXp!7A>^!KaPx3Ld_M8Tu2{%MYm=t)%0p61L*4>c0D}Q z%B|ax>eW0C?{qIVUj7oXHXN&dr|18)I?ZY%V-v!bHW!TkiJFcm$Y*SWjS4?K$@3PV zzo$`QfUNPqG7m;W>9O;ed=%#%xAIdMHuYnmQF>!_k~is&;7!=Op3a@`oMLl|cjYlH zzR{p9Iqwi#VREhf*&z(!u*-$t;8j&>izLr+tvsL_%^vns;dRXQuY1CVs$Xp0nI`!$ zRCRw%M-WyfgPSfTUOuU$8=qc?*_Uz5KfyO4ASWsbnsM`BB+P**T(|}OUMmkHrOA=h zNQjM>yDCgGh^k=+k5pFd5P#lqC9hzRdnsX^9$~o)IQ=f&-QFMBoQcRlra&vc)e2L4 zZU^W$w#5{+d9JC2jElBI>1eLQb5t#O3-En%zk|r;sJW^U{)u=F^Ujw-EjHI2<;2TT zKr)WcCPA8_wM#|aoZ^?s;#We=wTgP}68a6i&(! zzY*tC-Q2^G(<$OtQQ~w9ezvAG2M2orwlO$7$4wY8gH83Bes5Z+9d8%{{lT1k{a4s! z815+gQZrpflCE|xtnn$L?{kVhajBuj$d{CO-M`=|{`l1eI)-13xNBvRrosoF@N2yV zE!lg2NwkPIo1o-Ln2TyS*G$Zth6t#&Rn-3Q%BvB^;d0H<^-!blRe$_e%d3kwb@-uU0FUVbxJ3pB8UmHPE*Y<3eKZjd3hqFDFBseA|$Ie-hOY+wa z<2jDJv)26B1lR0*7t~D|i*xewGYbk9EY6MPoQr4ArIEJ$jI0GqGh?~b#irSQZko5a zFn4Z@$(6OB0GSH2=bBuz7iF4eo0esv1+iSk*|oPd8TL$9W`-+st|@XZv`{cENy^`7 zrI~kY%S1`b@)syA$jw}4dTe}3ESHp@Ia`TgRU+n(#wiWWM(ME?-)w)l#4}{-;AY6UpUU5qPvO9kcuYVw1^yjdfEBV4v~_8rb5wzkzQ2(0|4K5geEPK!&mh!VPTvl} z!ef$>hMS@u%Un7j#*|obh}Z)w(s$>n+;}cg(TB`Nm;gwB53B}H2fhhu16~e19l~)T z;0?eZAyMF*k>h$m1aJ#*2qX*K3Vacg2fhRNI%FkyIdCte1iTt}4B}poKm*9Kj`+U_ z@M7S!Q2grzcslSZ+|F+B7T^$^G>(E>fx94|gO>xh!rNR0-vPV~X$5ZtX7=E?+u(V? zgV>R|E2tP47=_M&8=`PEIEa9SCIEkh#DjCu9JjD9$BhKf1FnZW4qgTfjp4ZI;3lBH zA9@UK0Iq{agb}^Ex=ol7I1DLDu?_GPO*<0 zAFT*jfR8|KgIj?a5bjI#9vCqQa{}A~Y=#)XTYzl`b6huY1JD97Qyt)|kQnfC;K-qf z1GfTSiU)%408Sf*eG}ZB4$>VDN>dOp0bhn>ftLd>kHBsP-UtjEiHSpXfN^*QD+9Lz z!ybWoX*}?pmE+#0`oM1>pM$pmx7ZK|z61Cwqy@Yj$R%R@e?|a=TLHNZUJQIG2{Zpc z$N=n}j9!9UfDerZf*XJ?$Vl*F;LHv+zLDc`5C+s_!We^3VmSkc=Q6?0E~xd z!L7hKkT&3Xzzq-scp2~oNC@~2;75>9@CKm!0zSGS&kuLL-3RLfU}00Btj1 zMesD>K8P8-8dwLhfHwd$X2L??dBC+0J9wEJq;M8Ygg`N{b2>a7xCwXyG8eo7xL`JB zEO;KU?;KbN+yZQXJWX|g-)6wH;4Q#~nOKV8c|iID^Lp@N;M0&(;5&f(AnpbPszE-1 zd<@7Ca5bzyY82?@iP%r`(pdAuJm4I_07VtdaI>;dKGT@t#c<^#yEo3Bk12B6b8bkGg z&qC6`cL0w=9;Z6MEjgGnG#)r47kR$M_*+407sI4f33ww9lM9?%!g0Ow@h^Yi7U0$b zR7x`g&$?hW@J8U)rLY{02kwH%;N`#rkZa)8z?@~U2zVY)gtUT}0gt)y!F_{@fkTR5 zB5*5k79<2b9XKBn3Z4fnfOG>d2GYk*6V(AuTaHFj4%`H>f|mhrLIiMb1uoH$$H5K2 zMcLxpM@ljN=MZQpg)>UH;^ds7GUh(U@dUV-==fiD+t6RP!6QuLt3d4 zaE%1hftLZNZoq^BH*7@VkSX9MU|+~|@WxGWIM2dLS5O&nAtYVKzo!n_vePm^3oR9T z@o@O^#jrK^o-E~Ldn=IoqL-rE^MzSx-_ZV2KGPqnc;oF1GPl%}l? zY*07yEhv%Zeg)U0-Mcz>>JZFzP_^S8)T&5-End~}ZuxOmv>Za~pJJ`p^SWD8F?jbI zs@@}&=Ani7yRB1k^gn5TR?#N=|4!j~V30<&Il|~ZsQgbJ$6a73Gi+tp<{^JJGs7Va zQyI=-Sj2Dx!&ewqG5nC>C5A12baTO4e+Atb#xNYsa4N%GhN~IAz;F-4;|xD%c!Qxf zh?UQ96ho(i@E6lrL_Wi{40kYmpJ6q_28Q1_<;fD-AZsYd1_!5hd8MZLI#ZZk!ME}|{3}vW9;^Qx`A~#zO|HozYmsgSd zzq5?~@+xw3|CMEgA^2;n2=nj1v5e?E_)DvZ&j0_yGNSeWrB$S?zyJF(`pc`R!u@`Z zO23vLlj)l9WPvL)$B{d4aYge7Yt-5`>YU7+jGR2Ouxe1?CUst+3*Yru#gnUVM3d`p znEsa>dQImZm;6|2vUA{o*tyx+)FdI;2>(Ay+JC#Uip2*LR788&6p&tI#dh7HY`K;8 t3+F;VS`(}lw(5^mT{)A@pTKbC4W?kQDGHk{fu!w`5h_c?*du#2{{t65N6`QP delta 15300 zcmc(G30PCt+V0MVU{GV?uoV>~$RHwMKv7h{L;*J%5a$^|oCk^+9H~J8Wt#@E%MMzr zbT}OxkQPhTs>Pv#S{1FWTCJr$RyVbJsJ0fZHUGPImY&w+%wkUxD)TxxZA&h!jx2FKO6MM4>*9b^r;qv{m0#}l*~(j2lG@~4l9Gn&Gey0XS= zNORs-J8jV-s*q0`Tff1teW!dby*hl3OGoJfx}r3yoRsjso*a5f8+C|OA%wmtp=xps zA#|4WK-!T?54YATTh!|u7jeFZ=HNuTx(|X+1O5ISc(mnDDZ5|exS6Y>lP6l2BGWk} zNy1xaInK@%Ra?jHqjk%tmZHR(!%lqU;j?Jzf(DAB#Dm>I0hIN&t4AZ!u17I;8fWJu zz1%vJGWA1PrXX5noe@zj790ycx{o$ewk{23ebnxT5Q#^qFXn zeeZLU)vSZ>|2g&NJR3?QYdtHDYOC9cqsle4uv$>k)9B7yP@&1(5#12V#!4O1Gzrc`e5?CH+Gokfml5AoL*RIYCIyvi0GZ(nAxFAESe zJEASW!JU$%)A9Cp6_Nw9qR-`q?5a)8xl^ak`>>TKeIC zszo=S&yX`Y^S(v;IbN~^gdQL4#mTMbBaV*pV7*0ph(^l4!Q0~PNRO9>c}u-4lC42n z;T|t#YNUBBMTbu|N|Ar3E-77>2e-t846`B%&U0CI*I^#esTn;fZR!;BWb+hrntAHc zQnRBZ9j4w-&25&Fy~WHEaubR$JI4B&2aNGfk`nYf$ID2Km+o2|CbZ?j;fII2Db$D-ZhJ=`>3T-UZdZ1@(=V%qH4dM0lZyB})pEsbMU{CgHcnnX_`4)14 zXcnED@2^HVpVEb1J~S7!Cc&F7WqWDNt#zbzU|SO3wy*EPhj1V_I-rw|&ZPP22idzL zyBt54Y;J1|`Ti7*60Tr@oT+;*?5$!2qjtD3u+oJ-pA>VIx{k#vk|%`o{7JG?=*yot zL4FW6^I<0{SGCXJyPrI+lyvl@t0a4Yt0dyWz}H;p^HxD+i;gd=d?Mj=^2>BFEvgo! zqq;&7L$Z(4>p9t!Ne*=~bV{U&u{6f2r$d@X!_oseD3dgG%IUOy8m(`BfFa_(uF4XH zq_4$-<0^UkG*Z|($Zsx^{}R8D>K8nA&uyTE6-*%`Y12&w2nIlffqrgjN zhCekJCLWfJmulcpCoIyDTe^b7?qb0a{i+9#oKDU<+Rp20W2eubu{`&NeULkN&LUGr z?$`D~8eJ_NF=s5krstk;m^HW5GfN$2cMP}L?w+r!9Tl67G0VNZ>M)8L=x}!^BSiNT zr_j%}RirGV`-hlr-fKXj;2lasm?bZwtmuJ@~O9(7!2(_{E$=jBQb`~ zwr|p1-8}6=sYZ4~##K%f;hsB3w5RCd11hS2g=%22=#Mrko|87U;UeOkLIS21oM-jY zC+&$uZdZG>NZYQ1_!cM0xUNzB#uKEZ zYbR~?2@L5JIxmESC&))#5At_viPb-h*PSG9`48ro*Am&kH}77nXxC$SnRZw$NeIa2 zU#lTC0X_N1TGAA-n!jZBxsbX)j$|iUJiSR_NdGc zh`n2cs+t_^)`P#0PJZm>(>`|sRX-|9(KRM|;z2-tu7dak2eev&uF6#rG^@|H3Nk#n z58pSPtPSoJwt74!^ASx&kaiw0S-VCw&4=KPI{rTZ*oTl8+kk)*fPwx~ZHr59!Q* zTTZ%#OzBuW7P$&)uo_=Vk|qaelBCc8QHotwPF@e`lA1wNi>i~PW7hG=8dvT*Bcd}y zKpQ+TY}oT0<8k=XMj?jI?!(`^%MZpp&1XQ}&6Ol|+j7#P#~^;m6f(Srk53)du@4(B zqPuGOh%1!t3hg0MkKQq}b}6M;pA)55>o6ej>t7}V=u!!X&u?-%G36tml}t}hIcQCi zBO9A~Y~U{PpvOSZpLRl9^0~c}m_yrktwu;!CTEj!8LQ2#EA zkZ^1F6PI>qJEKbZ+As95;Im{W`8YJVeKImxr;0TNv{g!OhxXhg@@r^_Y6>xgb<qW z^32k4%Cs_|+iiA`&~UGirtLWGT(QO%{I0SZoPy(1I?2`FBbGWF{O;jG>@)EAng+}PES$mN6Ap9s9nvE*gg?5EjEfxDcJ)5Yh;B$Or9SN86c+9y??*;?Mj{>) zro%hrX5_E|FT&5|F?XoV5`r;vqUi#afN(+VoqxE-sRjoE(LN^FuFZuqPWPzIDg3&Z zEa+uu-64hAM_2eNwX#DSJcexT6~d?PB`13g3fW72+U}Ep8gIEroS@c!AP;DCI$_a9 z>1U^KkG933Egenz^bX=@k0xoo=k;oVTu$Kwj9o(nn*XHRlD5s;9QW@d$rzVAM&nlX z7J1aW_f+G@v^GmXx^!GFqiuF*`_dy3mXTml!j^BA9+>G-@rb->7zPpZRypRuu=$E} z2zRQK=G>o4y%wv?<%si7lp1D|^-#x_CXo>p|6>*DkH(sDII5)Aw?H|3`Ye$r%RE=%rCLr zxyfl{eRS7=Q6h>jaw;xlk;1&8ETVN%mv|{~76MY(j56|Nw6EW#;i$5g4?FtOwTvBo zkJ80dyKguV`UTjW+u)AvVJPX;lICp9qY4GF#Yo|-KSA|5lq6jf9WlQmhLh7#<^Z1~ zNJi5$Db%<((v(FWlFtqrc4&Lk%7445ES*acg{9MKg1Qwv>2SS!lB!z7Wx9y$?PqLt z72YO4_oFhlmr}_6enI@`4@sB)1Ne&{l1cqz_{$%VO@K)sl8gPr1UUg!(1YS<*3oon z#|=TgKspXEbU1|+`!F#cvZwHDO_bN6cbqsr6)T~+PQY(Xzn5!G-E9FZcbCGCMN zWKE1&qqR`a+)+W!#&q{GU<129INn{X8Em9|%I!!!y3GefAM49El#_^9FO403<`g0- z$cR{h|FE3Qjt%F_Un8%^uIIg9Bi-Y2cwskrJuZ%)vzdGom&PC5MPdi0^8V#y{lM;g z*)FnwU!W5k+G)H{GlCWr)hW_5z|kF9vazH_t{Cb z=D0RZulzOo^bRt`oE%hz-2mOT4}?ZGNWY_Rte?J0JADs|=@bbvp?f6vQu0Bq@Ws@}m<;&Y<3W zm&D5V1|8?MKfX)VS7@*`zWWYYk?>Fc!*@w~;*jV!=)#76IE5i#)V#XFmtkD2sj#za z4HtS-C2H)!SfQ}22rJ$p-zIk9JO6_?6Q}ZT{)40snagi|n|wZGigqn@lwR4RuD?a* zB?Xf-aX8<>M0SfI+VyYI)hpK*epo+{+z|cwPX>|}NeP|PvDCm3o7)SpM^J`WAy~#9 zwfjw!F^KOlknB$K^7QtcYw)5LbZBqJk#CcF@>Ov}Kh#&-?@gtSj!0M+ zM`DIX@$bGt77a}utfHAWUdHXAx*^w<^A2XRyb4juL~EFeShhIX)ps3#Uj3+7);oyD zutgpG`=E!^%WJHeqCGjC`hZ&AMM{SShPJ@kfeyC9EFFOSoUU*w%CtBvSPl1jAR^-Y zzT&nEOin@d2KjE->#8(jv&`prZ6oWGjl?H8n{PpBCV#g-`6an0f4DyhOquMT*&pp( z+=AA71=lRQ8{MuotDstv)xtl!seJ+jjlBn zmlcn#^uVC~Bozf=9mLt8QK3RVEP^$7*`fn3kB)e9!k6zakN~ci$cYTrXkp{&U3~*Yh>Cg5hx)Hv7d0%225$V60roTkfT}_X5 zHT@7>-jw!d^d&_jVmqx{`)8Z89cR2%6QiO_D!QI99y+hxVeG+b7EK365=r_fPY*{LMM&m zqc)JDNwHnVmeS@GyoXNF@$po4A~TJ|9zTWDPm1V#B@~9ZL0_JV?prlD&lJSD>~$oR zgibc5a?fMHv^>7)pt%-A_>!E5GIMXxR~S4BZNORzCKgm1aj-azG)a3F-%6I5rOa$t z)A#3*os&CH+_awF6x?t|w^J>La2BIy#?4W(1{kqX2TOSY26+~y6y2jmW=rTeg|w$x zQ(al5e`htwy(|5uJXGK+cZTc+! zgq=iWtmYl-$VVB0{GD~=YQ{JG*>&WTY5jYAA;GO)SG)>?+YpF{XFYYrf8B?r3I;lL zg&0)2dz}d+hRg}Qw-uvt7e%|B+S+*$@03nq0LsAnwgpKvd=bkdz8u3$lwOug$*#<7 z-oKdmP7mY@i%H^i8}C+3YNmJPzgtNd#MQ1Yp_OTk-l>Z`ZbmNXR1_QMTHoZ6)lUL)`^ZGIFmL=gIhX< z-wMeWv!?N+ko29M-PsR1qJ6ABUJ7ZL{Ip=ST~kIcg!QF=XwceF)uJ$P4w|) zg<9ditRN5P`kL=4DOgQ#QI*FkNfvtAQh!Kw6A-aaLoFq#-=`7rR9(7+Q8i9F3WwO( zk4&5w+jWKyEmLt)A3Q1I1)WAXQn5dnaPk%se8|3e2A)KdEAwXghb&N5WRH8w1glZE zM;IFz*RT*>C>5Q7MXSh+`N90R-emoJ1Ap3^d@#R#k8?I!2OP^OtOPYn$DBeD2)z%S zrfFCcjnZ+aAlt~@`H`NYH{v8=gf|IWFxc07KJ~uMN*O-QP$8}&qGQY@WeVDDWc`9D zTkSlW1FM!(7@;Vt%aJPr7lf!VkQ#MCHph9obJaEK=fP-`VVBjQ=<&SHG?dT?n(d-Z zPNBcjF757KwDJWAI0fI8xRB98l*t@{I9Y5MJZl&)WRs514fQzj9ITc{<~-LUHV<`(neMAaRh_dQucRX0CGN)S z^k#!-U#PjO(=YSF*FwEKu#J+?IzGV2E_p&Pa_%`nl|^noXGn2JzFV*9d{LQCN6Oc; z4GiIB2sh+mkm$mQu$hME|2ynS!_*I1x-F87$xiE^)S5P3n}bx>lNRj59)HGSR*H6O zK(HL3DB;p6eN7)Ze$c@%uaeu@0UZWrK}W)z{0tYS5_&L&jl;7@@WRpjr3GZ=!Z7Xo z7*O0CyfjYX#}#Dn!Y+X;5o6wKQj|vrMAK`90rvr?K;0N?X>fsh>;m%p!j5JRHAP%$ zP%fXs@Z~7Tq0PgNg&!D$7*K%_C2@zz>q6M)f@VkgBxP+B_ zh%)g6b9x!IRPIiTJ#0Vdt+sgJ#KVi%fT&EU>Kt}jHD;lkdfYtXTok}Z%p-x;ZhX3t zq*%A|UOmYjtH}_ATM!!97h9TW$LqR%u*ROMk%!>D8qxXTBqeu@%1qwQ9i_TWnsVb* z<)rUoOUDds@$v;+f7wr5IAG8fKu#iC7I#*Kk-dw3J7}SUwd^~zL%GlI!$|^{0CHz> zkXQO_WrqtCi*8#DsK_gfPMyTrBy>qP&wk2{Nr;?HCNEj8se-Cg2+bwemSn45Cc~HZ zz4LY`H^EwC#gOohGn6uS4r|RuTHjRxV^x&oDC13*6L1cok?uVyj5u3GB1^p ze6%d6>j*z17gWbwRYJ;x!yQ ztWY(Rj9(GJzdDnwToGW)fet*UXf;e>S5HR>KLO@m#bTcdPEV4pMf(K3oI{s(`fhhQ z_g^S_6iuvA2LtG*MjgbMQ;5NOcI!2lCG6@ph{tqkuUtZF)Xo`f-7BEKE|iMR9a>Ll zIED4uq(@$bPK6;63z{@b@VYD<>qdUe8>M=M#691gPv}PGJYT|p6ht08AIIkgk$x*z z^1lX>eJkVmj{?bqm0NisuyT`4ud;Q+gm)TnboeQF&I#F#7Qclq#MN}Pj+Q?8I0MH* zv9#0~n8>gX!ytz38G10hkBLn6Z!r9d;cJ-~G1d#EVusfk z9%op^@Erx=))Ue>8wX#-!2%!Lti`qJ#B>~@6|2JnEJGT@6ozpO!x?sA*oxs}EJjL0 z7+zy|h9Uhyi>8;)Mg5d)Wf3I|S2E0En8q-LVI0G7hFuu8V)z&kiXeNJ$U$N+kSOo?7z-DY=nROO7VIkntUYG?AVaeBrLI;w0ve#J?Ox}Ytt+aALZ~iDmUB_YzC()3)g1oA{hs&_Y?Dn> zu&A|{I_N$YKInwiSsLdaasE~_xal>d;G|>AkB-o7#ENr7C9Zl%>&gA6n0Z=s#8y#- z!{4c89~4ZVh#sK44-hGDDZ|_7A8s}3cM+l=UCF2ThFvxz!s5sah_*PQX0FHEf5B(Q zPq6%O`;7QPNH3qo=7}FKP@LJG(5SQ3nrRQgf6*y40JO+nuWv*ccNZN!M=WjoSws4~Rcr{h+KUBfQarqg27Cje&EFOD=r za^^AlclyYRy02`bBd&d6GX42`dVo<^W#-YZ-ZGDZ=q(Sqv!8)^$Kg$9cxC%L%?h<2lBAFqkGXM2m% zU9qUUi@YLxDahh>AVRyf}>@7T~(?V{o4eiG#cH%gHw>DA0D1{MSBr|xBVU#T@Jpsu4qN|7-F{`@bc1zv&Ww!diwrq47G%uH znv*rFIr({4+seH!b?00E;3})Wo?&j~-B%)2onlTqosQ3)&PK>1NK1shA)%)$<2L!L zCYHL?(F)~L_DtBc-o#Q|P+$2!hmG$)P2bR3u!a8mG^pes{Y*ITnefJE!qqqanm_f< zU&G=v;po4HZJg<^5om;2X~>f={WD>&XTrv3!r9N*r{b9gnrwe=pbdYrxA@Ny9GCt~ zhSF!kb!_~eG;rxN>DFh$+0TTB3?AIy5Il0m;>b|LpvvSe{vO2i<_H_^aViK`hhH*) zBU)ph08a6|;4DZqcs6iqFvrD! zrvooS(!uM2-XR<}AKU=k*#kWTuK;F*q66UBz(1ldX7 zM#@08Ln@F^0XzxW16~Kb4cQCc2-Jpi+yQVsus5U{+yop7IR>5z%!bs0Q(O-D96TSm z9#RKh3ao@&0IvovwDsh;OH>Iszz8#fn}BJMM(}iCKBS520PjJ#^Njq=|FC#D=fqLNOcuXP6f!+ytJ_R=bhe7hdQ-SY53c)LYd?JPc zTn~I5vJt!t*nbER+yvYX*-7<*Ym?wl;HAK>Lt!Bs0!EN1$OW1KI1zFQJRMjJxk@tt zKZMkSSJODib?|!Nj}RHW5$H3F<9-4+07D>+;6|VY@(Xw>a3Z7$JRNA8i?2rrWCNE# zxCPn9pD#ZG5&Q3)FUu;96Ar44(vZ3ao{H421p}#8L-&| zm=0VI>;Q595)}X|AsX;%;8zeY@Ot296Ja6nI^Y}}fr7!afgLBqk--f%kbMvlfokB2 zDKHUuKG2W`t579i|EX|Ba1(HUI{bp_15ZM>fY$-9L(0G#fz2{F?rm^AFc9({xDnVN zvJ>0{91O8lAdm_&AF>BL8@L*>7rYd>8FB!;3>Y&Fm4cgqLo!h*cq(uU_yE!poSVUMZ6SJa1MmQ(9nAo|0SN$a z1h$_ElTsbv_p{-EG#8*c0cq(x50*+hy6~;dwV;jDHLZBLW6w(M@2Yknh`AU_5J91&Ji{QX-A??8Hfk}(uT;Qp|QIKHpbl@A1 zP^u3+0O<{04cxf|PDkT`m5@|$TQ$fr$Y=!WfEOU+!RvwMr5raIJQY~649*Bn@tr(O zOUi-bN?42P0ApayE#M|#n^mX~+yGn$*#lk*)U8H+;CkTB)foQ^2vi`jt^g*YO2Bf+ zbs7&m0+GS%fI=ax1#STDfHYDaVBaDvV&Ep=N{IU<3@h+1q$N1F2AdwF9k>a24&n`7 zza}2*^IA9*RVv1uhJ=D=OK=WIZ}5De9TE+0vU6O}di44n`~%n@5_1XvXOi+_xiNA! zv{WeQLOV1QLhV4&(_O{64}$$zy1RhtAtoD{Rz8a?+|!PHQ=Z;55q$YYZ;zrc$MJ| zhIbe?G2|Y(8ruAktA4H>i|}R`#4wy;ABJ%Z6B(v39M5nX!}$ysGt6hWj^RdzTOTR? z$3$WgA2K|^@Hj(PdvW$)v*2%=EjH%$|A*7%Z=Wr;|7^Pa?X$(k{YTRUukZ{9H$}X<^TKXLbd?P|2BQaQ_4xpm Lp>pWwRqFo&8fEPf diff --git a/version.py b/version.py index 5e8688653..acd60cb1e 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.5 f.LUM' +__version__ = '2.15.6 f.LUM' From d478dc6ebd085e39612d885270657da56646d47a Mon Sep 17 00:00:00 2001 From: Dennis Date: Wed, 8 Aug 2018 22:46:33 +0200 Subject: [PATCH 241/755] updated difficulty replacement pools Changed the pools that replace the items removed by difficulty settings to be a bit more varied and not just 47 bluepees. --- ItemList.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/ItemList.py b/ItemList.py index a7917db01..52af5dcc4 100644 --- a/ItemList.py +++ b/ItemList.py @@ -15,6 +15,10 @@ normal_bottle_count = 3 # notmapcompass = ['Rupees (5)'] * 20 notmapcompass = ['Bombs (5)'] * 4 + ['Arrows (5)'] * 3 + ['Deku Nuts (5)'] * 3 + ['Rupees (5)'] * 7 + ['Rupees (20)'] * 2 + ['Rupees (50)'] +# 10 items get removed for hard+ +harditems = ['Bombs (5)'] * 2 + ['Arrows (5)'] * 2 + ['Deku Nuts (5)'] * 2 + ['Rupees (5)'] * 3 + ['Rupees (20)'] +# 37 items get removed for very hard +veryharditems = ['Bombs (5)'] * 8 + ['Arrows (5)'] * 8 + ['Deku Nuts (5)'] * 8 + ['Rupees (5)'] * 10 + ['Rupees (20)'] * 2 + ['Rupees (50)'] rewardlist = ['Kokiri Emerald', 'Goron Ruby', 'Zora Sapphire', 'Forest Medallion', 'Fire Medallion', 'Water Medallion', 'Spirit Medallion', 'Shadow Medallion', 'Light Medallion'] songlist = ['Zeldas Lullaby', 'Eponas Song', 'Suns Song', 'Sarias Song', 'Song of Time', 'Song of Storms', 'Minuet of Forest', 'Prelude of Light', 'Bolero of Fire', 'Serenade of Water', 'Nocturne of Shadow', 'Requiem of Spirit'] skulltulla_locations = (['GS Kokiri Know It All House', 'GS Kokiri Bean Patch', 'GS Kokiri House of Twins', 'GS Lost Woods Bean Patch Near Bridge', 'GS Lost Woods Bean Patch Near Stage', 'GS Lost Woods Above Stage', 'GS Sacred Forest Meadow', 'GS Deku Tree Compass Room', 'GS Deku Tree Basement Vines', 'GS Deku Tree Basement Gate', 'GS Deku Tree Basement Back Room', 'GS Hyrule Field near Kakariko', 'GS Hyrule Field Near Gerudo Valley', 'GS Castle Market Guard House', 'GS Hyrule Castle Tree', 'GS Hyrule Castle Grotto', 'GS Outside Ganon\'s Castle', 'GS Lon Lon Ranch Tree', 'GS Lon Lon Ranch Rain Shed', 'GS Lon Lon Ranch House Window'] + @@ -107,11 +111,11 @@ def get_pool_core(world): pool.extend(['Ice Trap'] * 6) if world.difficulty == 'hard' or world.difficulty == 'very_hard': - pool.extend(['Rupees (5)'] * 10) + pool.extend(harditems) else: pool.extend(['Magic Meter', 'Double Defense'] + ['Heart Container'] * 8) if world.difficulty == 'very_hard': - pool.extend(['Rupees (5)'] * 37) + pool.extend(veryharditems) else: pool.extend(['Nayrus Love', 'Piece of Heart (Treasure Chest Game)'] + ['Piece of Heart'] * 35) From 419bdbf2f7dd4f62f52ceda9f1a513322d615786 Mon Sep 17 00:00:00 2001 From: Dennis Date: Wed, 8 Aug 2018 22:52:55 +0200 Subject: [PATCH 242/755] explain difficulty settings --- README.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 9a5db7fd9..67eea1423 100644 --- a/README.md +++ b/README.md @@ -128,4 +128,15 @@ Similar to the tunic color options, you can change Navi's color for each of her - Chests in Generic Grottos - Chests summoned by Zelda's Lullaby - Chests summoned by Sun's Song Triggered -- Chests summoned by a switch that do not fall \ No newline at end of file +- Chests summoned by a switch that do not fall + +## Difficulty options + +If you seek an additional challenge in regards to combat during the randomizer, you can increase the difficulty with the following settings: + +- `normal`: no changes to the item pool +- `hard`: double defense, double magic, and all 8 heart containers are removed +- `very_hard`: Double defense, double magic, Nayru's Love, and all health upgrades are removed + +The `hard` difficulty still leaves the heart pieces in the pool, so you can gain up to 12 hearts total, likely a few less though. It also doesn't remove NL, but still takes away double magic so it can't be spammed for multiple minutes of invulnerability. +The `very_hard` difficulty just takes it all away, meaning the player will stay at 3 hearts without double defense or Nayru's Love. From bb85e5a6ddedbf6f6ff00702c386e760f8c0c038 Mon Sep 17 00:00:00 2001 From: scatterclegge Date: Thu, 9 Aug 2018 02:46:18 -0230 Subject: [PATCH 243/755] disabled like-like stealing tunics --- ASM/src/hacks.asm | 11 +++++++++++ data/base2current.json | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/ASM/src/hacks.asm b/ASM/src/hacks.asm index 0045ddf93..17b7561e5 100755 --- a/ASM/src/hacks.asm +++ b/ASM/src/hacks.asm @@ -313,6 +313,17 @@ jal write_initial_save sb t0, 32(s1) +;================================================================================================== +; Enemy Hacks +;================================================================================================== + +; Replaces: +; beq t1, at, 0x801E51E0 +.org 0xD74964 ; In memory: 0x801E51B4 + b skip_steal_tunic ; disable like-like stealing tunic +.org 0xD74990 + skip_steal_tunic: + ;================================================================================================== ; Ocarina Song Cutscene Overrides ;================================================================================================== diff --git a/data/base2current.json b/data/base2current.json index 83a298714..01d601258 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -1 +1 @@ -[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 196]}, {"11311804": [12, 16, 11, 205]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 190, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 101]}, {"11427312": [12, 16, 13, 14]}, {"11427320": [12, 16, 11, 200]}, {"11427332": [0, 0]}, {"11427335": [0]}, {"11431496": [12, 16, 11, 195, 1, 15, 192, 33]}, {"11559936": [130]}, {"11559938": [14, 222]}, {"11559948": [49, 248, 0, 2]}, {"11562028": [12, 16, 13, 47]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 30]}, {"11882076": [12, 16, 12, 251]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 68, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 75, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 82, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 61, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 140]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 18]}, {"12427480": [12, 16, 10, 106]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 110]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 12, 8, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 152]}, {"12491480": [12, 16, 10, 161]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 147]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 89]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 128, 73, 14, 222]}, {"14149508": [52]}, {"14149510": [0, 1, 2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 208]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 224]}, {"14624335": [118]}, {"14720872": [128]}, {"14720874": [14, 222]}, {"14720884": [49, 248, 0, 4]}, {"14720944": [12, 16, 11, 216]}, {"14848904": [8, 16, 11, 247]}, {"14852164": [12, 16, 12, 0]}, {"14872723": [52]}, {"15327704": [52, 9, 64, 0]}, {"15327728": [52]}, {"15327730": [91, 8]}, {"15327744": [52]}, {"15327746": [0, 10]}, {"15327757": [169]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 236, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 48, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 76, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 104, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 220, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 108, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 140, 128, 64, 38, 132, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 172, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 39, 212, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 28, 128, 64, 40]}, {"55059600": [83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 3, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 44, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [2, 52, 2]}, {"55060003": [69, 52, 2]}, {"55060007": [70, 3, 224]}, {"55060011": [8]}, {"55060016": [144, 136]}, {"55060019": [162, 49, 8]}, {"55060023": [6, 17]}, {"55060027": [2, 52, 2]}, {"55060031": [55, 52, 2]}, {"55060035": [56, 3, 224]}, {"55060039": [8]}, {"55060044": [144, 136]}, {"55060047": [161, 49, 8]}, {"55060051": [32, 17]}, {"55060055": [2, 52, 2]}, {"55060059": [121, 52, 2]}, {"55060063": [122, 3, 224]}, {"55060067": [8]}, {"55060072": [144, 136]}, {"55060075": [161, 49, 8]}, {"55060079": [4, 17]}, {"55060083": [2, 52, 2]}, {"55060087": [119, 52, 2]}, {"55060091": [120, 3, 224]}, {"55060095": [8]}, {"55060100": [144, 136]}, {"55060103": [50, 17]}, {"55060107": [2, 52, 2]}, {"55060111": [192, 52, 2]}, {"55060115": [193, 3, 224]}, {"55060119": [8]}, {"55060124": [144, 136]}, {"55060127": [163, 49, 8]}, {"55060131": [3, 17]}, {"55060135": [2, 52, 2]}, {"55060139": [77, 52, 162]}, {"55060144": [3, 224]}, {"55060147": [8]}, {"55060152": [144, 136]}, {"55060155": [163, 49, 8]}, {"55060159": [24, 17]}, {"55060163": [2, 52, 2]}, {"55060167": [77, 52, 162]}, {"55060172": [3, 224]}, {"55060175": [8]}, {"55060180": [3, 224]}, {"55060183": [8]}, {"55060188": [52, 8]}, {"55060191": [1, 160, 136]}, {"55060195": [62, 3, 224]}, {"55060199": [8]}, {"55060204": [36, 136]}, {"55060207": [134, 36, 9, 255, 255, 37, 41]}, {"55060215": [1, 52, 1]}, {"55060219": [3]}, {"55060221": [41, 8, 42, 20, 32]}, {"55060227": [7]}, {"55060232": [1, 9, 80, 33, 145, 75]}, {"55060240": [52, 1]}, {"55060243": [255, 21, 97, 255, 247]}, {"55060252": [161, 69]}, {"55060256": [3, 224]}, {"55060259": [8]}, {"55060264": [36, 136]}, {"55060267": [168, 1, 6, 64, 33, 145, 9]}, {"55060276": [1, 37, 72, 37, 161, 9]}, {"55060284": [3, 224]}, {"55060287": [8]}, {"55060292": [36, 136]}, {"55060295": [188, 1, 5, 64, 33, 129, 9]}, {"55060304": [5, 33]}, {"55060307": [2]}, {"55060312": [52, 9]}, {"55060316": [37, 41]}, {"55060319": [1, 161, 9]}, {"55060324": [3, 224]}, {"55060327": [8]}, {"55060332": [52, 8]}, {"55060335": [1, 160, 136]}, {"55060339": [61, 52, 8]}, {"55060343": [20, 160, 136]}, {"55060347": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [50, 160, 136]}, {"55060375": [58, 52, 8]}, {"55060379": [48, 164, 136, 19, 244, 160, 136]}, {"55060387": [51, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [2, 160, 136]}, {"55060403": [50, 52, 8]}, {"55060407": [1, 160, 136]}, {"55060411": [58, 160, 136]}, {"55060415": [60, 52, 8]}, {"55060419": [96, 164, 136, 19, 244, 160, 136]}, {"55060427": [51, 3, 224]}, {"55060431": [8]}, {"55060436": [144, 136]}, {"55060439": [124, 52, 1]}, {"55060443": [255, 17, 1]}, {"55060447": [6, 52, 2]}, {"55060451": [107, 144, 136]}, {"55060455": [148, 45, 8]}, {"55060459": [6, 17]}, {"55060463": [2, 52, 2]}, {"55060467": [106, 52, 2]}, {"55060471": [3, 3, 224]}, {"55060475": [8]}, {"55060480": [144, 136]}, {"55060483": [123, 52, 1]}, {"55060487": [255, 17, 1]}, {"55060491": [2, 52, 162]}, {"55060496": [52, 2]}, {"55060499": [12, 3, 224]}, {"55060503": [8]}, {"55060508": [52, 8]}, {"55060511": [7, 160, 136]}, {"55060515": [123, 3, 224]}, {"55060519": [8]}, {"55060524": [52, 8]}, {"55060527": [1]}, {"55060529": [168, 64, 4, 140, 137]}, {"55060535": [164, 1, 40, 72, 37, 172, 137]}, {"55060543": [164, 3, 224]}, {"55060547": [8]}, {"55060552": [48, 132]}, {"55060555": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060567": [140, 16, 129]}, {"55060571": [22, 145, 2]}, {"55060575": [117, 52, 1]}, {"55060579": [141, 16, 129]}, {"55060583": [19, 145, 2]}, {"55060587": [117, 16, 128]}, {"55060591": [17, 145, 2]}, {"55060595": [116, 52, 1]}, {"55060599": [138, 16, 129]}, {"55060603": [14, 145, 2]}, {"55060607": [116, 52, 1]}, {"55060611": [139, 16, 129]}, {"55060615": [11, 145, 2]}, {"55060619": [116, 52, 1]}, {"55060623": [88, 16, 129]}, {"55060627": [8, 52, 2]}, {"55060632": [52, 1]}, {"55060635": [120, 16, 129]}, {"55060639": [5, 52, 2]}, {"55060644": [52, 1]}, {"55060647": [121, 16, 129]}, {"55060651": [2, 52, 2]}, {"55060656": [52, 2]}, {"55060659": [255, 3, 224]}, {"55060663": [8]}, {"55060668": [39, 189, 255, 224, 175, 191]}, {"55060675": [16, 175, 176]}, {"55060679": [20, 12, 16, 11, 11]}, {"55060688": [4, 65]}, {"55060691": [2]}, {"55060696": [52, 2]}, {"55060699": [91]}, {"55060701": [64, 32, 33, 12, 16, 11, 114]}, {"55060712": [16, 96]}, {"55060715": [22, 175, 163]}, {"55060719": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060728": [133, 9]}, {"55060731": [2, 17, 32]}, {"55060735": [3, 52, 10]}, {"55060739": [1, 16]}, {"55060743": [12, 165, 10]}, {"55060748": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060759": [6, 144, 102]}, {"55060763": [7, 140, 105]}, {"55060767": [8, 1, 32, 248, 9]}, {"55060776": [143, 163]}, {"55060779": [28, 144, 101]}, {"55060783": [1, 12, 1, 191, 115, 2, 32, 32, 33, 143, 163]}, {"55060795": [28, 144, 101]}, {"55060799": [3, 16]}, {"55060803": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060815": [6]}, {"55060817": [74]}, {"55060819": [24]}, {"55060822": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060832": [60, 8, 128, 64, 37, 8, 32]}, {"55060840": [133, 9]}, {"55060843": [2, 17, 32]}, {"55060847": [3, 52, 10]}, {"55060851": [1, 165, 10]}, {"55060856": [52, 5]}, {"55060859": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060871": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060882": [48, 33, 143, 191]}, {"55060887": [16, 143, 176]}, {"55060891": [20, 39, 189]}, {"55060895": [32, 3, 224]}, {"55060899": [8]}, {"55060904": [143, 166]}, {"55060907": [48, 132, 197]}, {"55060911": [4, 8, 16, 10, 114]}, {"55060920": [143, 185]}, {"55060923": [44, 135, 37]}, {"55060927": [4, 8, 16, 10, 114]}, {"55060936": [60, 10, 128, 64, 37, 74, 32, 8, 141, 75]}, {"55060947": [12, 17, 96]}, {"55060951": [2]}, {"55060956": [149, 69]}, {"55060959": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060972": [60, 9, 128, 64, 37, 41, 32, 24, 129, 42]}, {"55060983": [3, 5, 64]}, {"55060987": [11, 1, 42, 72, 32, 129, 40]}, {"55060996": [52, 10]}, {"55060999": [127, 21, 10]}, {"55061003": [6]}, {"55061008": [60, 10, 128, 18, 37, 74, 165, 208, 133, 72]}, {"55061019": [144, 33, 8]}, {"55061023": [1, 165, 72]}, {"55061027": [144, 161, 32]}, {"55061032": [3, 224]}, {"55061035": [8]}, {"55061040": [60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061051": [12, 17, 32]}, {"55061055": [2]}, {"55061060": [129, 3]}, {"55061063": [2]}, {"55061065": [3, 15, 195]}, {"55061069": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061083": [8]}, {"55061088": [144, 69]}, {"55061091": [3, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061103": [12, 17, 32]}, {"55061107": [2]}, {"55061112": [145, 5]}, {"55061115": [3, 3, 224]}, {"55061119": [8]}, {"55061124": [143, 162]}, {"55061127": [36, 144, 69]}, {"55061132": [60, 8, 128, 64, 37, 8, 32]}, {"55061140": [133, 9]}, {"55061143": [2, 17, 32]}, {"55061147": [4, 52, 10]}, {"55061151": [1, 165, 10]}, {"55061156": [16]}, {"55061159": [24, 52, 5]}, {"55061163": [65, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061175": [12, 17, 32]}, {"55061179": [19]}, {"55061184": [145, 5]}, {"55061187": [1, 175, 164]}, {"55061192": [175, 165]}, {"55061195": [4, 175, 166]}, {"55061199": [8, 39, 189, 255, 232, 175, 191]}, {"55061207": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061219": [6, 145, 6]}, {"55061223": [7, 141, 9]}, {"55061227": [8, 1, 32, 248, 9]}, {"55061236": [143, 191]}, {"55061239": [16, 39, 189]}, {"55061243": [24, 143, 164]}, {"55061248": [143, 165]}, {"55061251": [4, 143, 166]}, {"55061255": [8, 3, 224]}, {"55061259": [8]}, {"55061264": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061275": [16, 175, 163]}, {"55061279": [20, 175, 191]}, {"55061283": [24, 12, 16, 10, 209]}, {"55061292": [143, 162]}, {"55061295": [16, 143, 163]}, {"55061299": [20, 143, 191]}, {"55061303": [24, 39, 189]}, {"55061307": [32, 3, 224]}, {"55061311": [8]}, {"55061316": [39, 189, 255, 232, 175, 191]}, {"55061323": [16, 60, 8, 128, 64, 37, 8, 32, 8, 173]}, {"55061336": [173]}, {"55061339": [4, 173]}, {"55061343": [8, 173]}, {"55061347": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061363": [42]}, {"55061369": [9, 15, 195, 1, 33, 32, 38]}, {"55061377": [129, 32, 35, 141, 5, 4, 40, 12, 16, 11, 11]}, {"55061392": [4, 64]}, {"55061395": [34]}, {"55061400": [52, 68]}, {"55061404": [12, 16, 11, 114]}, {"55061412": [16, 96]}, {"55061415": [12]}, {"55061420": [60, 8, 128, 64, 37, 8, 32, 8, 140, 105]}, {"55061432": [173, 9]}, {"55061436": [140, 105]}, {"55061439": [4, 173, 9]}, {"55061443": [4, 140, 105]}, {"55061447": [8, 173, 9]}, {"55061451": [8, 52, 9]}, {"55061455": [1, 173, 9]}, {"55061459": [12, 144, 98]}, {"55061464": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061480": [52, 1]}, {"55061483": [10, 21, 65]}, {"55061487": [6]}, {"55061492": [149, 42]}, {"55061495": [28, 49, 74, 240, 31]}, {"55061501": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061511": [28, 129, 9, 4, 36, 5, 33]}, {"55061519": [2]}, {"55061525": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061535": [16, 39, 189]}, {"55061539": [24, 3, 224]}, {"55061543": [8]}, {"55061548": [39, 189, 255, 232, 175, 191]}, {"55061555": [16, 12, 16, 11, 25]}, {"55061564": [36, 1, 255, 255, 16, 65]}, {"55061571": [4]}, {"55061576": [52, 68]}, {"55061580": [12, 16, 11, 77]}, {"55061588": [143, 191]}, {"55061591": [16, 39, 189]}, {"55061595": [24, 3, 224]}, {"55061599": [8]}, {"55061604": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061615": [164, 52, 8]}, {"55061620": [52, 137]}, {"55061624": [148, 170]}, {"55061628": [52, 1, 1, 156, 21, 65]}, {"55061635": [8]}, {"55061640": [52, 8]}, {"55061643": [3, 148, 171]}, {"55061647": [28, 49, 105]}, {"55061651": [255, 49, 98, 31]}, {"55061657": [2, 18, 2, 16]}, {"55061663": [31]}, {"55061668": [52, 1]}, {"55061671": [10, 21, 65]}, {"55061675": [14]}, {"55061680": [148, 171]}, {"55061683": [28, 52, 1]}, {"55061687": [16, 20, 65]}, {"55061691": [8]}, {"55061696": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061707": [4]}, {"55061712": [36, 2, 255, 255, 16]}, {"55061719": [21]}, {"55061724": [52, 8]}, {"55061727": [1, 49, 105]}, {"55061731": [31, 52, 1]}, {"55061735": [21, 21, 65]}, {"55061739": [12]}, {"55061744": [52, 1]}, {"55061747": [62, 16, 129]}, {"55061751": [7]}, {"55061756": [52, 1]}, {"55061759": [66, 16, 129]}, {"55061763": [4]}, {"55061768": [36, 2, 255, 255, 16]}, {"55061775": [7]}, {"55061780": [52, 8]}, {"55061783": [2, 144, 169, 1, 65]}, {"55061789": [2, 18]}, {"55061793": [72, 16, 37]}, {"55061797": [2, 18]}, {"55061801": [73, 16, 37, 3, 224]}, {"55061807": [8]}, {"55061812": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061824": [129, 9]}, {"55061828": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061851": [4, 141, 9]}, {"55061856": [17, 32]}, {"55061859": [23]}, {"55061865": [9, 82, 2, 49, 75, 248]}, {"55061873": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061896": [49, 34]}, {"55061899": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061920": [60, 12, 128, 64, 37, 140, 28]}, {"55061928": [129, 140]}, {"55061932": [17, 108]}, {"55061935": [4, 165, 32]}, {"55061939": [2, 161, 43]}, {"55061943": [2, 161, 34]}, {"55061947": [3, 173, 36]}, {"55061951": [4, 3, 224]}, {"55061955": [8]}, {"55061960": [39, 189, 255, 224, 175, 176]}, {"55061967": [16, 175, 177]}, {"55061971": [20, 175, 191]}, {"55061975": [24, 52, 130]}, {"55061980": [52, 80]}, {"55061984": [38, 8, 255, 128, 5]}, {"55061991": [18]}, {"55061996": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55062007": [16, 1, 9]}, {"55062011": [24]}, {"55062014": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55062032": [142, 40]}, {"55062035": [12, 1]}, {"55062038": [248, 9]}, {"55062044": [20, 80, 255, 239]}, {"55062052": [54, 35]}, {"55062056": [16]}, {"55062059": [2]}, {"55062064": [52, 3]}, {"55062068": [143, 176]}, {"55062071": [16, 143, 177]}, {"55062075": [20, 143, 191]}, {"55062079": [24, 39, 189]}, {"55062083": [32, 3, 224]}, {"55062087": [8]}, {"55062092": [140, 136, 29, 44, 52, 9]}, {"55062099": [1]}, {"55062101": [9, 78]}, {"55062104": [1, 9, 16, 36, 16, 64]}, {"55062111": [36]}, {"55062116": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062131": [164, 52, 1]}, {"55062135": [61, 17, 129]}, {"55062139": [10]}, {"55062145": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062155": [25]}, {"55062160": [52, 13]}, {"55062163": [1, 161, 141, 29, 40, 37, 74]}, {"55062171": [3, 16]}, {"55062175": [9]}, {"55062180": [52, 12]}, {"55062183": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062199": [14]}, {"55062204": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062240": [60, 9, 128, 64, 37, 41, 32, 24, 161, 40]}, {"55062252": [52, 2]}, {"55062256": [3, 224]}, {"55062259": [8]}, {"55062264": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062276": [16]}, {"55062279": [34]}, {"55062284": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062296": [16]}, {"55062299": [29]}, {"55062304": [52, 2]}, {"55062307": [255, 32, 232, 255, 166, 33, 8]}, {"55062315": [97, 16]}, {"55062319": [24]}, {"55062324": [52, 8]}, {"55062327": [100, 16]}, {"55062331": [21]}, {"55062336": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062351": [1, 160, 40, 14, 222, 52, 8]}, {"55062359": [104, 16]}, {"55062363": [13]}, {"55062368": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062383": [4, 160, 40, 14, 222, 52, 8]}, {"55062391": [106, 16]}, {"55062395": [5]}, {"55062400": [52, 5]}, {"55062403": [3, 52, 8]}, {"55062407": [107, 16]}, {"55062411": [1]}, {"55062416": [60, 9, 128, 64, 37, 41, 32, 24, 60, 10, 128, 64, 37, 74, 32, 27, 129, 44]}, {"55062436": [17, 136]}, {"55062439": [11, 33, 41]}, {"55062443": [1, 21, 42, 255, 252]}, {"55062452": [60, 9, 128, 64, 37, 41, 32, 23, 33, 41]}, {"55062463": [1, 17, 42]}, {"55062467": [4, 129, 44]}, {"55062472": [21, 128, 255, 252]}, {"55062480": [161, 40]}, {"55062484": [3, 224]}, {"55062487": [8]}, {"55062493": [96, 120, 33, 129, 236, 14, 223, 49, 142]}, {"55062503": [128, 17, 192]}, {"55062507": [3, 52, 3]}, {"55062511": [5, 3, 224]}, {"55062515": [8, 52, 2]}, {"55062519": [2, 3, 224]}, {"55062523": [8]}, {"55062525": [96, 16, 33, 133, 194]}, {"55062531": [164, 60, 8, 128, 18, 37, 8, 165, 208, 129, 9, 14, 223, 53, 41]}, {"55062547": [128, 161, 9, 14, 223, 3, 224]}, {"55062555": [8]}, {"55062560": [175, 164]}, {"55062563": [104, 175, 165]}, {"55062567": [108, 175, 166]}, {"55062571": [112, 175, 167]}, {"55062575": [116, 39, 189, 255, 232, 175, 163]}, {"55062583": [16, 175, 191]}, {"55062587": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062603": [32, 21]}, {"55062607": [31]}, {"55062612": [60, 9, 128, 64, 37, 41, 32, 27, 52, 10]}, {"55062623": [255, 161, 42]}, {"55062628": [60, 9, 128, 64, 37, 41, 32, 24, 36, 10, 255, 255, 52, 12]}, {"55062643": [3, 33, 74]}, {"55062647": [1, 17, 76]}, {"55062651": [20, 1, 42, 88, 32, 129, 104]}, {"55062660": [17]}, {"55062662": [255, 251]}, {"55062668": [60, 9, 128, 64, 37, 41, 32, 27, 161, 42]}, {"55062680": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062691": [1, 165, 42]}, {"55062696": [60, 9, 128, 65, 52, 10]}, {"55062703": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 209]}, {"55062732": [143, 163]}, {"55062735": [16, 143, 191]}, {"55062739": [20, 39, 189]}, {"55062743": [24, 143, 164]}, {"55062747": [104, 143, 165]}, {"55062751": [108, 143, 166]}, {"55062755": [112, 143, 167]}, {"55062759": [116, 132, 110, 19, 196, 3, 224]}, {"55062767": [8]}, {"55062772": [147, 25]}, {"55062775": [116, 52, 1]}, {"55062779": [255, 23, 33]}, {"55062783": [2]}, {"55062788": [52, 25]}, {"55062791": [44, 3, 224]}, {"55062795": [8, 167, 185]}, {"55062799": [154, 147, 44]}, {"55062803": [116, 52, 1]}, {"55062807": [255, 21, 129]}, {"55062811": [2]}, {"55062816": [52, 12]}, {"55062819": [44, 3, 224]}, {"55062823": [8]}, {"55062828": [145, 174]}, {"55062831": [116, 52, 1]}, {"55062835": [255, 21, 193]}, {"55062839": [2]}, {"55062844": [52, 14]}, {"55062847": [44, 3, 224]}, {"55062851": [8, 167, 174]}, {"55062855": [154, 145, 207]}, {"55062859": [116, 52, 1]}, {"55062863": [255, 21, 225]}, {"55062867": [2]}, {"55062872": [52, 15]}, {"55062875": [44, 3, 224]}, {"55062879": [8, 167, 175]}, {"55062883": [154, 60, 8, 128, 64, 37, 8, 32, 28, 142, 9]}, {"55062895": [104, 173, 9]}, {"55062900": [142, 9]}, {"55062903": [108, 173, 9]}, {"55062907": [4, 150, 9]}, {"55062911": [112, 165, 9]}, {"55062915": [8, 150, 9]}, {"55062919": [156, 165, 9]}, {"55062923": [10, 3, 224]}, {"55062927": [8, 142, 14]}, {"55062931": [4, 39, 189, 255, 224, 175, 176]}, {"55062939": [16, 175, 177]}, {"55062943": [20, 175, 191]}, {"55062947": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 28, 142, 8]}, {"55062967": [4, 17]}, {"55062971": [5]}, {"55062976": [12, 16, 12, 143]}, {"55062984": [16]}, {"55062987": [3]}, {"55062992": [12, 16, 12, 162]}, {"55063000": [12, 16, 12, 130, 52, 4]}, {"55063008": [12, 16, 12, 130, 52, 4]}, {"55063015": [1, 12, 16, 12, 130, 52, 4]}, {"55063023": [2, 143, 176]}, {"55063027": [16, 143, 177]}, {"55063031": [20, 143, 191]}, {"55063035": [24, 39, 189]}, {"55063039": [32, 3, 224]}, {"55063043": [8]}, {"55063048": [2, 4, 64, 33, 145, 9]}, {"55063055": [108, 52, 1]}, {"55063059": [255, 17, 33]}, {"55063063": [7]}, {"55063068": [2, 9, 72, 33, 145, 41]}, {"55063075": [116, 52, 1]}, {"55063079": [44, 17, 33]}, {"55063083": [2]}, {"55063088": [161, 9]}, {"55063091": [105, 3, 224]}, {"55063095": [8]}, {"55063100": [39, 189, 255, 232, 175, 191]}, {"55063107": [16, 142, 40]}, {"55063112": [174, 8]}, {"55063115": [64, 142, 40]}, {"55063119": [4, 174, 8]}, {"55063123": [68, 150, 40]}, {"55063127": [8, 166, 8]}, {"55063131": [72, 162]}, {"55063134": [15, 51, 146, 8]}, {"55063139": [74, 52, 1]}, {"55063143": [255, 21, 1]}, {"55063147": [3]}, {"55063152": [12, 16, 12, 176]}, {"55063160": [143, 191]}, {"55063163": [16, 39, 189]}, {"55063167": [24, 3, 224]}, {"55063171": [8]}, {"55063176": [142, 8]}, {"55063179": [64, 174, 8]}, {"55063183": [104, 142, 8]}, {"55063187": [68, 174, 8]}, {"55063191": [108, 150, 8]}, {"55063195": [72, 166, 8]}, {"55063199": [112, 146, 8]}, {"55063203": [104, 52, 1]}, {"55063207": [255, 21, 1]}, {"55063211": [3]}, {"55063216": [52, 8]}, {"55063219": [1, 162, 8, 15, 51, 3, 224]}, {"55063227": [8]}, {"55063232": [39, 189, 255, 232, 175, 191]}, {"55063239": [16, 150, 8]}, {"55063243": [156, 49, 8]}, {"55063247": [64, 17]}, {"55063251": [5]}, {"55063256": [150, 8]}, {"55063259": [112, 49, 8, 255, 15, 53, 8]}, {"55063267": [48, 166, 8]}, {"55063271": [112, 146, 40]}, {"55063275": [1, 162, 8]}, {"55063279": [105, 150, 40]}, {"55063283": [2, 166, 8]}, {"55063287": [106, 142, 40]}, {"55063291": [4, 174, 8]}, {"55063295": [108, 12, 16, 12, 202, 52, 4]}, {"55063304": [12, 16, 12, 202, 52, 4]}, {"55063311": [1, 12, 16, 12, 202, 52, 4]}, {"55063319": [2, 143, 191]}, {"55063323": [16, 39, 189]}, {"55063327": [24, 3, 224]}, {"55063331": [8]}, {"55063336": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 51, 212, 145, 10]}, {"55063351": [108, 52, 1]}, {"55063355": [255, 17, 65]}, {"55063359": [5]}, {"55063364": [1, 42, 72, 33, 145, 41]}, {"55063372": [21, 32]}, {"55063375": [28]}, {"55063380": [60, 9, 128, 64, 37, 41, 51, 199, 37, 41]}, {"55063391": [1, 145, 42]}, {"55063396": [17, 64]}, {"55063399": [19]}, {"55063404": [2, 10, 88, 33, 145, 107]}, {"55063411": [116, 52, 1]}, {"55063415": [255, 17, 97, 255, 248]}, {"55063424": [146, 12]}, {"55063427": [108, 17, 138, 255, 245]}, {"55063436": [146, 12]}, {"55063439": [109, 17, 138, 255, 242]}, {"55063448": [146, 12]}, {"55063451": [110, 17, 138, 255, 239]}, {"55063460": [161, 11]}, {"55063463": [105, 161, 10]}, {"55063467": [108, 16]}, {"55063471": [4]}, {"55063476": [52, 9]}, {"55063479": [255, 161, 9]}, {"55063483": [105, 161, 9]}, {"55063487": [108, 3, 224]}, {"55063491": [8]}, {"55063496": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063509": [1, 1, 1, 1, 1]}, {"55063515": [1, 1, 1, 1, 1]}, {"55063521": [1]}, {"55063523": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063533": [51, 8, 33, 32, 15]}, {"55063539": [71, 21, 234]}, {"55063543": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063555": [164]}, {"55063557": [15, 122, 3, 20, 64]}, {"55063563": [5, 52, 2, 72, 48, 21, 226]}, {"55063571": [7]}, {"55063576": [36, 25]}, {"55063579": [3, 16]}, {"55063583": [4, 52, 2, 99, 17, 21, 226]}, {"55063591": [2]}, {"55063596": [36, 25]}, {"55063599": [3, 3, 224]}, {"55063603": [8]}, {"55063608": [141, 173, 138, 160, 52, 2, 128]}, {"55063616": [16, 77]}, {"55063619": [2]}, {"55063624": [16]}, {"55063627": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063643": [1, 16, 64]}, {"55063647": [2]}, {"55063652": [16]}, {"55063655": [2, 52, 2]}, {"55063659": [1, 161, 226, 28, 191, 3, 224]}, {"55063667": [8]}, {"55063673": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063687": [164]}, {"55063689": [15, 122, 3, 20, 64]}, {"55063695": [5, 52, 2, 72, 48, 21, 226]}, {"55063703": [7]}, {"55063708": [36, 25]}, {"55063711": [3, 16]}, {"55063715": [4, 52, 2, 99, 17, 21, 226]}, {"55063723": [2]}, {"55063728": [36, 25]}, {"55063731": [3, 3, 224]}, {"55063735": [8]}, {"55063740": [162, 37]}, {"55063743": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063755": [4, 142, 10]}, {"55063760": [17, 64]}, {"55063763": [11]}, {"55063769": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063781": [24, 194, 2, 23]}, {"55063787": [3, 49, 89]}, {"55063791": [255, 129, 234]}, {"55063796": [3, 42, 200, 37, 8, 16, 13, 50, 161, 249]}, {"55063808": [3, 224]}, {"55063811": [8]}] \ No newline at end of file +[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 196]}, {"11311804": [12, 16, 11, 205]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 190, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 101]}, {"11427312": [12, 16, 13, 14]}, {"11427320": [12, 16, 11, 200]}, {"11427332": [0, 0]}, {"11427335": [0]}, {"11431496": [12, 16, 11, 195, 1, 15, 192, 33]}, {"11559936": [130]}, {"11559938": [14, 222]}, {"11559948": [49, 248, 0, 2]}, {"11562028": [12, 16, 13, 47]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 30]}, {"11882076": [12, 16, 12, 251]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 68, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 75, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 82, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 61, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 140]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 18]}, {"12427480": [12, 16, 10, 106]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 110]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 12, 8, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 152]}, {"12491480": [12, 16, 10, 161]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 147]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 89]}, {"14109028": [16, 0]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 128, 73, 14, 222]}, {"14149508": [52]}, {"14149510": [0, 1, 2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 208]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 224]}, {"14624335": [118]}, {"14720872": [128]}, {"14720874": [14, 222]}, {"14720884": [49, 248, 0, 4]}, {"14720944": [12, 16, 11, 216]}, {"14848904": [8, 16, 11, 247]}, {"14852164": [12, 16, 12, 0]}, {"14872723": [52]}, {"15327704": [52, 9, 64, 0]}, {"15327728": [52]}, {"15327730": [91, 8]}, {"15327744": [52]}, {"15327746": [0, 10]}, {"15327757": [169]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 236, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 48, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 76, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 104, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 220, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 108, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 140, 128, 64, 38, 132, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 172, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 39, 212, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 28, 128, 64, 40]}, {"55059600": [83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 3, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 44, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [2, 52, 2]}, {"55060003": [69, 52, 2]}, {"55060007": [70, 3, 224]}, {"55060011": [8]}, {"55060016": [144, 136]}, {"55060019": [162, 49, 8]}, {"55060023": [6, 17]}, {"55060027": [2, 52, 2]}, {"55060031": [55, 52, 2]}, {"55060035": [56, 3, 224]}, {"55060039": [8]}, {"55060044": [144, 136]}, {"55060047": [161, 49, 8]}, {"55060051": [32, 17]}, {"55060055": [2, 52, 2]}, {"55060059": [121, 52, 2]}, {"55060063": [122, 3, 224]}, {"55060067": [8]}, {"55060072": [144, 136]}, {"55060075": [161, 49, 8]}, {"55060079": [4, 17]}, {"55060083": [2, 52, 2]}, {"55060087": [119, 52, 2]}, {"55060091": [120, 3, 224]}, {"55060095": [8]}, {"55060100": [144, 136]}, {"55060103": [50, 17]}, {"55060107": [2, 52, 2]}, {"55060111": [192, 52, 2]}, {"55060115": [193, 3, 224]}, {"55060119": [8]}, {"55060124": [144, 136]}, {"55060127": [163, 49, 8]}, {"55060131": [3, 17]}, {"55060135": [2, 52, 2]}, {"55060139": [77, 52, 162]}, {"55060144": [3, 224]}, {"55060147": [8]}, {"55060152": [144, 136]}, {"55060155": [163, 49, 8]}, {"55060159": [24, 17]}, {"55060163": [2, 52, 2]}, {"55060167": [77, 52, 162]}, {"55060172": [3, 224]}, {"55060175": [8]}, {"55060180": [3, 224]}, {"55060183": [8]}, {"55060188": [52, 8]}, {"55060191": [1, 160, 136]}, {"55060195": [62, 3, 224]}, {"55060199": [8]}, {"55060204": [36, 136]}, {"55060207": [134, 36, 9, 255, 255, 37, 41]}, {"55060215": [1, 52, 1]}, {"55060219": [3]}, {"55060221": [41, 8, 42, 20, 32]}, {"55060227": [7]}, {"55060232": [1, 9, 80, 33, 145, 75]}, {"55060240": [52, 1]}, {"55060243": [255, 21, 97, 255, 247]}, {"55060252": [161, 69]}, {"55060256": [3, 224]}, {"55060259": [8]}, {"55060264": [36, 136]}, {"55060267": [168, 1, 6, 64, 33, 145, 9]}, {"55060276": [1, 37, 72, 37, 161, 9]}, {"55060284": [3, 224]}, {"55060287": [8]}, {"55060292": [36, 136]}, {"55060295": [188, 1, 5, 64, 33, 129, 9]}, {"55060304": [5, 33]}, {"55060307": [2]}, {"55060312": [52, 9]}, {"55060316": [37, 41]}, {"55060319": [1, 161, 9]}, {"55060324": [3, 224]}, {"55060327": [8]}, {"55060332": [52, 8]}, {"55060335": [1, 160, 136]}, {"55060339": [61, 52, 8]}, {"55060343": [20, 160, 136]}, {"55060347": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [50, 160, 136]}, {"55060375": [58, 52, 8]}, {"55060379": [48, 164, 136, 19, 244, 160, 136]}, {"55060387": [51, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [2, 160, 136]}, {"55060403": [50, 52, 8]}, {"55060407": [1, 160, 136]}, {"55060411": [58, 160, 136]}, {"55060415": [60, 52, 8]}, {"55060419": [96, 164, 136, 19, 244, 160, 136]}, {"55060427": [51, 3, 224]}, {"55060431": [8]}, {"55060436": [144, 136]}, {"55060439": [124, 52, 1]}, {"55060443": [255, 17, 1]}, {"55060447": [6, 52, 2]}, {"55060451": [107, 144, 136]}, {"55060455": [148, 45, 8]}, {"55060459": [6, 17]}, {"55060463": [2, 52, 2]}, {"55060467": [106, 52, 2]}, {"55060471": [3, 3, 224]}, {"55060475": [8]}, {"55060480": [144, 136]}, {"55060483": [123, 52, 1]}, {"55060487": [255, 17, 1]}, {"55060491": [2, 52, 162]}, {"55060496": [52, 2]}, {"55060499": [12, 3, 224]}, {"55060503": [8]}, {"55060508": [52, 8]}, {"55060511": [7, 160, 136]}, {"55060515": [123, 3, 224]}, {"55060519": [8]}, {"55060524": [52, 8]}, {"55060527": [1]}, {"55060529": [168, 64, 4, 140, 137]}, {"55060535": [164, 1, 40, 72, 37, 172, 137]}, {"55060543": [164, 3, 224]}, {"55060547": [8]}, {"55060552": [48, 132]}, {"55060555": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060567": [140, 16, 129]}, {"55060571": [22, 145, 2]}, {"55060575": [117, 52, 1]}, {"55060579": [141, 16, 129]}, {"55060583": [19, 145, 2]}, {"55060587": [117, 16, 128]}, {"55060591": [17, 145, 2]}, {"55060595": [116, 52, 1]}, {"55060599": [138, 16, 129]}, {"55060603": [14, 145, 2]}, {"55060607": [116, 52, 1]}, {"55060611": [139, 16, 129]}, {"55060615": [11, 145, 2]}, {"55060619": [116, 52, 1]}, {"55060623": [88, 16, 129]}, {"55060627": [8, 52, 2]}, {"55060632": [52, 1]}, {"55060635": [120, 16, 129]}, {"55060639": [5, 52, 2]}, {"55060644": [52, 1]}, {"55060647": [121, 16, 129]}, {"55060651": [2, 52, 2]}, {"55060656": [52, 2]}, {"55060659": [255, 3, 224]}, {"55060663": [8]}, {"55060668": [39, 189, 255, 224, 175, 191]}, {"55060675": [16, 175, 176]}, {"55060679": [20, 12, 16, 11, 11]}, {"55060688": [4, 65]}, {"55060691": [2]}, {"55060696": [52, 2]}, {"55060699": [91]}, {"55060701": [64, 32, 33, 12, 16, 11, 114]}, {"55060712": [16, 96]}, {"55060715": [22, 175, 163]}, {"55060719": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060728": [133, 9]}, {"55060731": [2, 17, 32]}, {"55060735": [3, 52, 10]}, {"55060739": [1, 16]}, {"55060743": [12, 165, 10]}, {"55060748": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060759": [6, 144, 102]}, {"55060763": [7, 140, 105]}, {"55060767": [8, 1, 32, 248, 9]}, {"55060776": [143, 163]}, {"55060779": [28, 144, 101]}, {"55060783": [1, 12, 1, 191, 115, 2, 32, 32, 33, 143, 163]}, {"55060795": [28, 144, 101]}, {"55060799": [3, 16]}, {"55060803": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060815": [6]}, {"55060817": [74]}, {"55060819": [24]}, {"55060822": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060832": [60, 8, 128, 64, 37, 8, 32]}, {"55060840": [133, 9]}, {"55060843": [2, 17, 32]}, {"55060847": [3, 52, 10]}, {"55060851": [1, 165, 10]}, {"55060856": [52, 5]}, {"55060859": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060871": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060882": [48, 33, 143, 191]}, {"55060887": [16, 143, 176]}, {"55060891": [20, 39, 189]}, {"55060895": [32, 3, 224]}, {"55060899": [8]}, {"55060904": [143, 166]}, {"55060907": [48, 132, 197]}, {"55060911": [4, 8, 16, 10, 114]}, {"55060920": [143, 185]}, {"55060923": [44, 135, 37]}, {"55060927": [4, 8, 16, 10, 114]}, {"55060936": [60, 10, 128, 64, 37, 74, 32, 8, 141, 75]}, {"55060947": [12, 17, 96]}, {"55060951": [2]}, {"55060956": [149, 69]}, {"55060959": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060972": [60, 9, 128, 64, 37, 41, 32, 24, 129, 42]}, {"55060983": [3, 5, 64]}, {"55060987": [11, 1, 42, 72, 32, 129, 40]}, {"55060996": [52, 10]}, {"55060999": [127, 21, 10]}, {"55061003": [6]}, {"55061008": [60, 10, 128, 18, 37, 74, 165, 208, 133, 72]}, {"55061019": [144, 33, 8]}, {"55061023": [1, 165, 72]}, {"55061027": [144, 161, 32]}, {"55061032": [3, 224]}, {"55061035": [8]}, {"55061040": [60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061051": [12, 17, 32]}, {"55061055": [2]}, {"55061060": [129, 3]}, {"55061063": [2]}, {"55061065": [3, 15, 195]}, {"55061069": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061083": [8]}, {"55061088": [144, 69]}, {"55061091": [3, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061103": [12, 17, 32]}, {"55061107": [2]}, {"55061112": [145, 5]}, {"55061115": [3, 3, 224]}, {"55061119": [8]}, {"55061124": [143, 162]}, {"55061127": [36, 144, 69]}, {"55061132": [60, 8, 128, 64, 37, 8, 32]}, {"55061140": [133, 9]}, {"55061143": [2, 17, 32]}, {"55061147": [4, 52, 10]}, {"55061151": [1, 165, 10]}, {"55061156": [16]}, {"55061159": [24, 52, 5]}, {"55061163": [65, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061175": [12, 17, 32]}, {"55061179": [19]}, {"55061184": [145, 5]}, {"55061187": [1, 175, 164]}, {"55061192": [175, 165]}, {"55061195": [4, 175, 166]}, {"55061199": [8, 39, 189, 255, 232, 175, 191]}, {"55061207": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061219": [6, 145, 6]}, {"55061223": [7, 141, 9]}, {"55061227": [8, 1, 32, 248, 9]}, {"55061236": [143, 191]}, {"55061239": [16, 39, 189]}, {"55061243": [24, 143, 164]}, {"55061248": [143, 165]}, {"55061251": [4, 143, 166]}, {"55061255": [8, 3, 224]}, {"55061259": [8]}, {"55061264": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061275": [16, 175, 163]}, {"55061279": [20, 175, 191]}, {"55061283": [24, 12, 16, 10, 209]}, {"55061292": [143, 162]}, {"55061295": [16, 143, 163]}, {"55061299": [20, 143, 191]}, {"55061303": [24, 39, 189]}, {"55061307": [32, 3, 224]}, {"55061311": [8]}, {"55061316": [39, 189, 255, 232, 175, 191]}, {"55061323": [16, 60, 8, 128, 64, 37, 8, 32, 8, 173]}, {"55061336": [173]}, {"55061339": [4, 173]}, {"55061343": [8, 173]}, {"55061347": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061363": [42]}, {"55061369": [9, 15, 195, 1, 33, 32, 38]}, {"55061377": [129, 32, 35, 141, 5, 4, 40, 12, 16, 11, 11]}, {"55061392": [4, 64]}, {"55061395": [34]}, {"55061400": [52, 68]}, {"55061404": [12, 16, 11, 114]}, {"55061412": [16, 96]}, {"55061415": [12]}, {"55061420": [60, 8, 128, 64, 37, 8, 32, 8, 140, 105]}, {"55061432": [173, 9]}, {"55061436": [140, 105]}, {"55061439": [4, 173, 9]}, {"55061443": [4, 140, 105]}, {"55061447": [8, 173, 9]}, {"55061451": [8, 52, 9]}, {"55061455": [1, 173, 9]}, {"55061459": [12, 144, 98]}, {"55061464": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061480": [52, 1]}, {"55061483": [10, 21, 65]}, {"55061487": [6]}, {"55061492": [149, 42]}, {"55061495": [28, 49, 74, 240, 31]}, {"55061501": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061511": [28, 129, 9, 4, 36, 5, 33]}, {"55061519": [2]}, {"55061525": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061535": [16, 39, 189]}, {"55061539": [24, 3, 224]}, {"55061543": [8]}, {"55061548": [39, 189, 255, 232, 175, 191]}, {"55061555": [16, 12, 16, 11, 25]}, {"55061564": [36, 1, 255, 255, 16, 65]}, {"55061571": [4]}, {"55061576": [52, 68]}, {"55061580": [12, 16, 11, 77]}, {"55061588": [143, 191]}, {"55061591": [16, 39, 189]}, {"55061595": [24, 3, 224]}, {"55061599": [8]}, {"55061604": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061615": [164, 52, 8]}, {"55061620": [52, 137]}, {"55061624": [148, 170]}, {"55061628": [52, 1, 1, 156, 21, 65]}, {"55061635": [8]}, {"55061640": [52, 8]}, {"55061643": [3, 148, 171]}, {"55061647": [28, 49, 105]}, {"55061651": [255, 49, 98, 31]}, {"55061657": [2, 18, 2, 16]}, {"55061663": [31]}, {"55061668": [52, 1]}, {"55061671": [10, 21, 65]}, {"55061675": [14]}, {"55061680": [148, 171]}, {"55061683": [28, 52, 1]}, {"55061687": [16, 20, 65]}, {"55061691": [8]}, {"55061696": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061707": [4]}, {"55061712": [36, 2, 255, 255, 16]}, {"55061719": [21]}, {"55061724": [52, 8]}, {"55061727": [1, 49, 105]}, {"55061731": [31, 52, 1]}, {"55061735": [21, 21, 65]}, {"55061739": [12]}, {"55061744": [52, 1]}, {"55061747": [62, 16, 129]}, {"55061751": [7]}, {"55061756": [52, 1]}, {"55061759": [66, 16, 129]}, {"55061763": [4]}, {"55061768": [36, 2, 255, 255, 16]}, {"55061775": [7]}, {"55061780": [52, 8]}, {"55061783": [2, 144, 169, 1, 65]}, {"55061789": [2, 18]}, {"55061793": [72, 16, 37]}, {"55061797": [2, 18]}, {"55061801": [73, 16, 37, 3, 224]}, {"55061807": [8]}, {"55061812": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061824": [129, 9]}, {"55061828": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061851": [4, 141, 9]}, {"55061856": [17, 32]}, {"55061859": [23]}, {"55061865": [9, 82, 2, 49, 75, 248]}, {"55061873": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061896": [49, 34]}, {"55061899": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061920": [60, 12, 128, 64, 37, 140, 28]}, {"55061928": [129, 140]}, {"55061932": [17, 108]}, {"55061935": [4, 165, 32]}, {"55061939": [2, 161, 43]}, {"55061943": [2, 161, 34]}, {"55061947": [3, 173, 36]}, {"55061951": [4, 3, 224]}, {"55061955": [8]}, {"55061960": [39, 189, 255, 224, 175, 176]}, {"55061967": [16, 175, 177]}, {"55061971": [20, 175, 191]}, {"55061975": [24, 52, 130]}, {"55061980": [52, 80]}, {"55061984": [38, 8, 255, 128, 5]}, {"55061991": [18]}, {"55061996": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55062007": [16, 1, 9]}, {"55062011": [24]}, {"55062014": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55062032": [142, 40]}, {"55062035": [12, 1]}, {"55062038": [248, 9]}, {"55062044": [20, 80, 255, 239]}, {"55062052": [54, 35]}, {"55062056": [16]}, {"55062059": [2]}, {"55062064": [52, 3]}, {"55062068": [143, 176]}, {"55062071": [16, 143, 177]}, {"55062075": [20, 143, 191]}, {"55062079": [24, 39, 189]}, {"55062083": [32, 3, 224]}, {"55062087": [8]}, {"55062092": [140, 136, 29, 44, 52, 9]}, {"55062099": [1]}, {"55062101": [9, 78]}, {"55062104": [1, 9, 16, 36, 16, 64]}, {"55062111": [36]}, {"55062116": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062131": [164, 52, 1]}, {"55062135": [61, 17, 129]}, {"55062139": [10]}, {"55062145": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062155": [25]}, {"55062160": [52, 13]}, {"55062163": [1, 161, 141, 29, 40, 37, 74]}, {"55062171": [3, 16]}, {"55062175": [9]}, {"55062180": [52, 12]}, {"55062183": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062199": [14]}, {"55062204": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062240": [60, 9, 128, 64, 37, 41, 32, 24, 161, 40]}, {"55062252": [52, 2]}, {"55062256": [3, 224]}, {"55062259": [8]}, {"55062264": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062276": [16]}, {"55062279": [34]}, {"55062284": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062296": [16]}, {"55062299": [29]}, {"55062304": [52, 2]}, {"55062307": [255, 32, 232, 255, 166, 33, 8]}, {"55062315": [97, 16]}, {"55062319": [24]}, {"55062324": [52, 8]}, {"55062327": [100, 16]}, {"55062331": [21]}, {"55062336": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062351": [1, 160, 40, 14, 222, 52, 8]}, {"55062359": [104, 16]}, {"55062363": [13]}, {"55062368": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062383": [4, 160, 40, 14, 222, 52, 8]}, {"55062391": [106, 16]}, {"55062395": [5]}, {"55062400": [52, 5]}, {"55062403": [3, 52, 8]}, {"55062407": [107, 16]}, {"55062411": [1]}, {"55062416": [60, 9, 128, 64, 37, 41, 32, 24, 60, 10, 128, 64, 37, 74, 32, 27, 129, 44]}, {"55062436": [17, 136]}, {"55062439": [11, 33, 41]}, {"55062443": [1, 21, 42, 255, 252]}, {"55062452": [60, 9, 128, 64, 37, 41, 32, 23, 33, 41]}, {"55062463": [1, 17, 42]}, {"55062467": [4, 129, 44]}, {"55062472": [21, 128, 255, 252]}, {"55062480": [161, 40]}, {"55062484": [3, 224]}, {"55062487": [8]}, {"55062493": [96, 120, 33, 129, 236, 14, 223, 49, 142]}, {"55062503": [128, 17, 192]}, {"55062507": [3, 52, 3]}, {"55062511": [5, 3, 224]}, {"55062515": [8, 52, 2]}, {"55062519": [2, 3, 224]}, {"55062523": [8]}, {"55062525": [96, 16, 33, 133, 194]}, {"55062531": [164, 60, 8, 128, 18, 37, 8, 165, 208, 129, 9, 14, 223, 53, 41]}, {"55062547": [128, 161, 9, 14, 223, 3, 224]}, {"55062555": [8]}, {"55062560": [175, 164]}, {"55062563": [104, 175, 165]}, {"55062567": [108, 175, 166]}, {"55062571": [112, 175, 167]}, {"55062575": [116, 39, 189, 255, 232, 175, 163]}, {"55062583": [16, 175, 191]}, {"55062587": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062603": [32, 21]}, {"55062607": [31]}, {"55062612": [60, 9, 128, 64, 37, 41, 32, 27, 52, 10]}, {"55062623": [255, 161, 42]}, {"55062628": [60, 9, 128, 64, 37, 41, 32, 24, 36, 10, 255, 255, 52, 12]}, {"55062643": [3, 33, 74]}, {"55062647": [1, 17, 76]}, {"55062651": [20, 1, 42, 88, 32, 129, 104]}, {"55062660": [17]}, {"55062662": [255, 251]}, {"55062668": [60, 9, 128, 64, 37, 41, 32, 27, 161, 42]}, {"55062680": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062691": [1, 165, 42]}, {"55062696": [60, 9, 128, 65, 52, 10]}, {"55062703": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 209]}, {"55062732": [143, 163]}, {"55062735": [16, 143, 191]}, {"55062739": [20, 39, 189]}, {"55062743": [24, 143, 164]}, {"55062747": [104, 143, 165]}, {"55062751": [108, 143, 166]}, {"55062755": [112, 143, 167]}, {"55062759": [116, 132, 110, 19, 196, 3, 224]}, {"55062767": [8]}, {"55062772": [147, 25]}, {"55062775": [116, 52, 1]}, {"55062779": [255, 23, 33]}, {"55062783": [2]}, {"55062788": [52, 25]}, {"55062791": [44, 3, 224]}, {"55062795": [8, 167, 185]}, {"55062799": [154, 147, 44]}, {"55062803": [116, 52, 1]}, {"55062807": [255, 21, 129]}, {"55062811": [2]}, {"55062816": [52, 12]}, {"55062819": [44, 3, 224]}, {"55062823": [8]}, {"55062828": [145, 174]}, {"55062831": [116, 52, 1]}, {"55062835": [255, 21, 193]}, {"55062839": [2]}, {"55062844": [52, 14]}, {"55062847": [44, 3, 224]}, {"55062851": [8, 167, 174]}, {"55062855": [154, 145, 207]}, {"55062859": [116, 52, 1]}, {"55062863": [255, 21, 225]}, {"55062867": [2]}, {"55062872": [52, 15]}, {"55062875": [44, 3, 224]}, {"55062879": [8, 167, 175]}, {"55062883": [154, 60, 8, 128, 64, 37, 8, 32, 28, 142, 9]}, {"55062895": [104, 173, 9]}, {"55062900": [142, 9]}, {"55062903": [108, 173, 9]}, {"55062907": [4, 150, 9]}, {"55062911": [112, 165, 9]}, {"55062915": [8, 150, 9]}, {"55062919": [156, 165, 9]}, {"55062923": [10, 3, 224]}, {"55062927": [8, 142, 14]}, {"55062931": [4, 39, 189, 255, 224, 175, 176]}, {"55062939": [16, 175, 177]}, {"55062943": [20, 175, 191]}, {"55062947": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 28, 142, 8]}, {"55062967": [4, 17]}, {"55062971": [5]}, {"55062976": [12, 16, 12, 143]}, {"55062984": [16]}, {"55062987": [3]}, {"55062992": [12, 16, 12, 162]}, {"55063000": [12, 16, 12, 130, 52, 4]}, {"55063008": [12, 16, 12, 130, 52, 4]}, {"55063015": [1, 12, 16, 12, 130, 52, 4]}, {"55063023": [2, 143, 176]}, {"55063027": [16, 143, 177]}, {"55063031": [20, 143, 191]}, {"55063035": [24, 39, 189]}, {"55063039": [32, 3, 224]}, {"55063043": [8]}, {"55063048": [2, 4, 64, 33, 145, 9]}, {"55063055": [108, 52, 1]}, {"55063059": [255, 17, 33]}, {"55063063": [7]}, {"55063068": [2, 9, 72, 33, 145, 41]}, {"55063075": [116, 52, 1]}, {"55063079": [44, 17, 33]}, {"55063083": [2]}, {"55063088": [161, 9]}, {"55063091": [105, 3, 224]}, {"55063095": [8]}, {"55063100": [39, 189, 255, 232, 175, 191]}, {"55063107": [16, 142, 40]}, {"55063112": [174, 8]}, {"55063115": [64, 142, 40]}, {"55063119": [4, 174, 8]}, {"55063123": [68, 150, 40]}, {"55063127": [8, 166, 8]}, {"55063131": [72, 162]}, {"55063134": [15, 51, 146, 8]}, {"55063139": [74, 52, 1]}, {"55063143": [255, 21, 1]}, {"55063147": [3]}, {"55063152": [12, 16, 12, 176]}, {"55063160": [143, 191]}, {"55063163": [16, 39, 189]}, {"55063167": [24, 3, 224]}, {"55063171": [8]}, {"55063176": [142, 8]}, {"55063179": [64, 174, 8]}, {"55063183": [104, 142, 8]}, {"55063187": [68, 174, 8]}, {"55063191": [108, 150, 8]}, {"55063195": [72, 166, 8]}, {"55063199": [112, 146, 8]}, {"55063203": [104, 52, 1]}, {"55063207": [255, 21, 1]}, {"55063211": [3]}, {"55063216": [52, 8]}, {"55063219": [1, 162, 8, 15, 51, 3, 224]}, {"55063227": [8]}, {"55063232": [39, 189, 255, 232, 175, 191]}, {"55063239": [16, 150, 8]}, {"55063243": [156, 49, 8]}, {"55063247": [64, 17]}, {"55063251": [5]}, {"55063256": [150, 8]}, {"55063259": [112, 49, 8, 255, 15, 53, 8]}, {"55063267": [48, 166, 8]}, {"55063271": [112, 146, 40]}, {"55063275": [1, 162, 8]}, {"55063279": [105, 150, 40]}, {"55063283": [2, 166, 8]}, {"55063287": [106, 142, 40]}, {"55063291": [4, 174, 8]}, {"55063295": [108, 12, 16, 12, 202, 52, 4]}, {"55063304": [12, 16, 12, 202, 52, 4]}, {"55063311": [1, 12, 16, 12, 202, 52, 4]}, {"55063319": [2, 143, 191]}, {"55063323": [16, 39, 189]}, {"55063327": [24, 3, 224]}, {"55063331": [8]}, {"55063336": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 51, 212, 145, 10]}, {"55063351": [108, 52, 1]}, {"55063355": [255, 17, 65]}, {"55063359": [5]}, {"55063364": [1, 42, 72, 33, 145, 41]}, {"55063372": [21, 32]}, {"55063375": [28]}, {"55063380": [60, 9, 128, 64, 37, 41, 51, 199, 37, 41]}, {"55063391": [1, 145, 42]}, {"55063396": [17, 64]}, {"55063399": [19]}, {"55063404": [2, 10, 88, 33, 145, 107]}, {"55063411": [116, 52, 1]}, {"55063415": [255, 17, 97, 255, 248]}, {"55063424": [146, 12]}, {"55063427": [108, 17, 138, 255, 245]}, {"55063436": [146, 12]}, {"55063439": [109, 17, 138, 255, 242]}, {"55063448": [146, 12]}, {"55063451": [110, 17, 138, 255, 239]}, {"55063460": [161, 11]}, {"55063463": [105, 161, 10]}, {"55063467": [108, 16]}, {"55063471": [4]}, {"55063476": [52, 9]}, {"55063479": [255, 161, 9]}, {"55063483": [105, 161, 9]}, {"55063487": [108, 3, 224]}, {"55063491": [8]}, {"55063496": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063509": [1, 1, 1, 1, 1]}, {"55063515": [1, 1, 1, 1, 1]}, {"55063521": [1]}, {"55063523": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063533": [51, 8, 33, 32, 15]}, {"55063539": [71, 21, 234]}, {"55063543": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063555": [164]}, {"55063557": [15, 122, 3, 20, 64]}, {"55063563": [5, 52, 2, 72, 48, 21, 226]}, {"55063571": [7]}, {"55063576": [36, 25]}, {"55063579": [3, 16]}, {"55063583": [4, 52, 2, 99, 17, 21, 226]}, {"55063591": [2]}, {"55063596": [36, 25]}, {"55063599": [3, 3, 224]}, {"55063603": [8]}, {"55063608": [141, 173, 138, 160, 52, 2, 128]}, {"55063616": [16, 77]}, {"55063619": [2]}, {"55063624": [16]}, {"55063627": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063643": [1, 16, 64]}, {"55063647": [2]}, {"55063652": [16]}, {"55063655": [2, 52, 2]}, {"55063659": [1, 161, 226, 28, 191, 3, 224]}, {"55063667": [8]}, {"55063673": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063687": [164]}, {"55063689": [15, 122, 3, 20, 64]}, {"55063695": [5, 52, 2, 72, 48, 21, 226]}, {"55063703": [7]}, {"55063708": [36, 25]}, {"55063711": [3, 16]}, {"55063715": [4, 52, 2, 99, 17, 21, 226]}, {"55063723": [2]}, {"55063728": [36, 25]}, {"55063731": [3, 3, 224]}, {"55063735": [8]}, {"55063740": [162, 37]}, {"55063743": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063755": [4, 142, 10]}, {"55063760": [17, 64]}, {"55063763": [11]}, {"55063769": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063781": [24, 194, 2, 23]}, {"55063787": [3, 49, 89]}, {"55063791": [255, 129, 234]}, {"55063796": [3, 42, 200, 37, 8, 16, 13, 50, 161, 249]}, {"55063808": [3, 224]}, {"55063811": [8]}] \ No newline at end of file From fc4dd822c457858d246c4a47e39d727ec8a9b590 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Thu, 9 Aug 2018 16:33:11 -0400 Subject: [PATCH 244/755] update readme --- README.md | 1 + version.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 67eea1423..6729b17a4 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,7 @@ The following were added or majorly changed on this fork: - Giant stairs in Dodongo's Cavern can be lowered with the Bow as an adult (quickly shoot a bomb flower on both side of the stairs) - The start of child-side Spirit Temple can be done with bombchus (aim the bombchu directly away from the bridge so that it crawls up the wall, across the ceiling, down the raised bridge, and explodes in front of the switch) - The skulltula token in the central room of the Water Temple can be obtained without longshot by setting Farore's Wind in the room and using it to return to the room when the water level is back at its highest level +- In order to fix a potential softlock, Like-Likes do not steal tunics, but can still steal shields. ## Optional Logic changes diff --git a/version.py b/version.py index acd60cb1e..e70733ebd 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.6 f.LUM' +__version__ = '2.15.7 f.LUM' From 27b0c16bbc1c8e1cb0ae2a7fc471323f5d89a896 Mon Sep 17 00:00:00 2001 From: Kevin Palani Date: Thu, 9 Aug 2018 16:41:28 -0700 Subject: [PATCH 245/755] Fixing issue#19 --- Rules.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Rules.py b/Rules.py index 4112e5da0..ef557955d 100644 --- a/Rules.py +++ b/Rules.py @@ -165,8 +165,8 @@ def global_rules(world): set_rule(world.get_location('Talons Chickens'), lambda state: state.has('Zeldas Letter')) set_rule(world.get_location('Song from Malon'), lambda state: state.has('Zeldas Letter') and state.has_ocarina()) set_rule(world.get_location('Epona'), lambda state: state.can_play('Eponas Song') and state.is_adult()) - set_rule(world.get_entrance('Adult Forest Warp Pad'), lambda state: state.can_play('Minuet of Forest') and state.is_adult()) - set_rule(world.get_entrance('Child Forest Warp Pad'), lambda state: state.can_play('Minuet of Forest')) + set_rule(world.get_entrance('Adult Forest Warp Pad'), lambda state: state.can_play('Minuet of Forest') and state.is_adult() and state.can_reach('Lost Woods Bridge')) + set_rule(world.get_entrance('Child Forest Warp Pad'), lambda state: state.can_play('Minuet of Forest') and state.can_reach('Lost Woods Bridge')) set_rule(world.get_entrance('Adult Meadow Access'), lambda state: state.can_play('Sarias Song') and state.is_adult()) set_rule(world.get_entrance('Forest Temple Entrance'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) set_rule(world.get_entrance('Forest Temple Song of Time Block'), lambda state: state.can_play('Song of Time')) @@ -189,7 +189,7 @@ def global_rules(world): set_rule(world.get_location('Graveyard Freestanding PoH'), lambda state: state.is_adult() and (state.has('Magic Bean') or state.has('Progressive Hookshot', 2))) set_rule(world.get_location('Song at Windmill'), lambda state: state.is_adult() and state.has_ocarina()) set_rule(world.get_location('Windmill Freestanding PoH'), lambda state: (state.is_adult() and ( world.logic_windmill_hp or state.can_play('Song of Time') )) or state.has('Boomerang')) - set_rule(world.get_entrance('Temple Warp Pad'), lambda state: state.can_play('Prelude of Light')) + set_rule(world.get_entrance('Temple Warp Pad'), lambda state: state.can_play('Prelude of Light') and state.can_reach('Lost Woods Bridge')) set_rule(world.get_location('Sheik at Temple'), lambda state: state.has('Forest Medallion') and state.is_adult()) set_rule(world.get_location('Diving in the Lab'), lambda state: state.has('Progressive Scale', 2)) set_rule(world.get_location('Child Fishing'), lambda state: (not world.logic_no_child_fishing) and state.has('Kokiri Sword')) @@ -201,7 +201,7 @@ def global_rules(world): set_rule(world.get_entrance('Crater Scarecrow'), lambda state: state.is_adult() and state.has_ocarina() and state.has('Progressive Hookshot', 2)) set_rule(world.get_entrance('Crater Bridge'), lambda state: state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot'))) set_rule(world.get_entrance('Crater Bridge Reverse'), lambda state: state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot') or state.has('Magic Bean'))) - set_rule(world.get_entrance('Crater Warp Pad'), lambda state: state.can_play('Bolero of Fire')) + set_rule(world.get_entrance('Crater Warp Pad'), lambda state: state.can_play('Bolero of Fire') and state.can_reach('Lost Woods Bridge')) set_rule(world.get_entrance('Crater Fairy'), lambda state: state.is_adult() and state.has('Hammer')) set_rule(world.get_location('DM Crater Volcano Freestanding PoH'), lambda state: state.is_adult() and ( (state.has('Magic Bean') and state.can_play('Bolero of Fire')) or (world.logic_crater_bean_hp_with_hovers and state.has('Hover Boots')) ) ) set_rule(world.get_entrance('Fire Temple Entrance'), lambda state: state.is_adult() and (world.logic_fewer_tunic_requirements or state.has_GoronTunic())) @@ -223,7 +223,7 @@ def global_rules(world): set_rule(world.get_location('Sheik in Crater'), lambda state: state.is_adult()) set_rule(world.get_location('Link the Goron'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade') or state.has_explosives() or state.has('Bow'))) set_rule(world.get_entrance('Crater Access'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade') or state.has_explosives() or state.has('Bow'))) - set_rule(world.get_entrance('Lake Warp Pad'), lambda state: state.can_play('Serenade of Water')) + set_rule(world.get_entrance('Lake Warp Pad'), lambda state: state.can_play('Serenade of Water') and state.can_reach('Lost Woods Bridge')) set_rule(world.get_location('King Zora Thawed'), lambda state: state.has_bottle() and (state.can_reach('Ice Cavern') or state.can_reach('Ganons Castle Water Trial') or state.has('Progressive Wallet', 2))) set_rule(world.get_location('Zoras Fountain Bottom Freestanding PoH'), lambda state: state.has('Iron Boots') and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic())) set_rule(world.get_entrance('Water Temple Entrance'), lambda state: state.is_adult() and state.has('Iron Boots') and state.has('Progressive Hookshot') and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic())) @@ -241,7 +241,7 @@ def global_rules(world): set_rule(world.get_location('Water Temple River Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and state.can_play('Song of Time') and state.has('Bow') and (state.can_play('Zeldas Lullaby') or world.keysanity)) set_rule(world.get_location('Water Temple Central Pillar Chest'), lambda state: state.has_ZoraTunic()) set_rule(world.get_location('Sheik in Kakariko'), lambda state: state.is_adult() and state.has('Forest Medallion') and state.has('Fire Medallion') and state.has('Water Medallion')) - set_rule(world.get_entrance('Graveyard Warp Pad'), lambda state: state.can_play('Nocturne of Shadow')) + set_rule(world.get_entrance('Graveyard Warp Pad'), lambda state: state.can_play('Nocturne of Shadow') and state.can_reach('Lost Woods Bridge')) set_rule(world.get_entrance('Shadow Temple Entrance'), lambda state: state.has('Dins Fire') and state.has('Magic Meter') and state.can_see_with_lens() and state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot'))) set_rule(world.get_entrance('Shadow Temple First Pit'), lambda state: state.has('Hover Boots')) set_rule(world.get_entrance('Shadow Temple Bomb Wall'), lambda state: state.has_explosives() and state.has('Small Key (Shadow Temple)', 1)) @@ -261,7 +261,7 @@ def global_rules(world): set_rule(world.get_entrance('Gerudo Training Grounds Entrance'), lambda state: state.has('Carpenter Rescue') and state.has('Gerudo Membership Card') and state.is_adult()) set_rule(world.get_entrance('Haunted Wasteland Entrance'), lambda state: state.has('Carpenter Rescue') and state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot', 2))) set_rule(world.get_entrance('Haunted Wasteland Crossing'), lambda state: (world.logic_lens == 'chest') or (state.has('Lens of Truth') and state.has('Magic Meter'))) - set_rule(world.get_entrance('Colossus Warp Pad'), lambda state: state.can_play('Requiem of Spirit')) + set_rule(world.get_entrance('Colossus Warp Pad'), lambda state: state.can_play('Requiem of Spirit') and state.can_reach('Lost Woods Bridge')) set_rule(world.get_entrance('Colossus Fairy'), lambda state: state.has_explosives()) set_rule(world.get_location('Colossus Freestanding PoH'), lambda state: state.can_play('Requiem of Spirit') and state.has('Magic Bean') and state.is_adult()) set_rule(world.get_location('Desert Colossus Fairy Reward'), lambda state: state.can_play('Zeldas Lullaby')) From f1259d8ae2d72765dfb4f958b41a57011b1305fc Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Thu, 9 Aug 2018 20:08:00 -0400 Subject: [PATCH 246/755] Changed compress option, split zora river option, other gui changes --- Gui.py | 49 +++++++++---------- GuiUtils.py | 3 +- ItemList.py | 17 +++---- Main.py | 7 +-- README.md | 5 +- Rom.py | 2 +- Rules.py | 4 +- Settings.py | 132 ++++++++++++++++++++++++---------------------------- version.py | 2 +- 9 files changed, 105 insertions(+), 116 deletions(-) diff --git a/Gui.py b/Gui.py index 2f807006b..2258f9579 100644 --- a/Gui.py +++ b/Gui.py @@ -96,29 +96,6 @@ def guiMain(settings=None): notebook.add(frames['other_tab'], text='Other') notebook.add(frames['aesthetic_tab'], text='Cosmetics') - # Shared Controls - - # adds a LabelFrame containing a list of radio buttons based on the given data - # returns the label_frame, and a variable associated with it - def MakeRadioList(parent, data): - # create a frame to hold the radio buttons - lable_frame = LabelFrame(parent, text=data["name"], labelanchor=NW) - # create a variable to hold the result of the user's decision - radio_var = StringVar(value=data["default"]); - # setup orientation - side = TOP - anchor = W - if "horizontal" in data and data["horizontal"]: - side = LEFT - anchor = N - # add the radio buttons - for option in data["options"]: - radio_button = Radiobutton(lable_frame, text=option["description"], value=option["value"], variable=radio_var, - justify=LEFT, wraplength=data["wraplength"]) - radio_button.pack(expand=True, side=side, anchor=anchor) - # return the frame so it can be packed, and the var so it can be used - return (lable_frame, radio_var) - ####################### # randomizer controls # ####################### @@ -131,7 +108,7 @@ def MakeRadioList(parent, data): #Rules Tab frames['open'] = LabelFrame(frames['rules_tab'], text='Open', labelanchor=NW) - frames['logic'] = LabelFrame(frames['rules_tab'], text='Logic', labelanchor=NW) + frames['logic'] = LabelFrame(frames['rules_tab'], text='Shuffle', labelanchor=NW) # Logic tab frames['rewards'] = LabelFrame(frames['logic_tab'], text='Remove Specific Locations', labelanchor=NW) @@ -275,6 +252,25 @@ def open_readme(): label.pack(side=LEFT, anchor=W, padx=5) # pack the frame widgets[info.name].pack(expand=False, side=TOP, anchor=W, padx=3, pady=3) + elif info.gui_params['widget'] == 'Radiobutton': + # create the variable to store the user's decision + guivars[info.name] = StringVar(value=info.gui_params['default']) + # create the option menu + widgets[info.name] = LabelFrame(frames[info.gui_params['group']], text=info.gui_params['text'] if 'text' in info.gui_params else info["name"], labelanchor=NW) + if isinstance(info.gui_params['options'], list): + info.gui_params['options'] = dict(zip(info.gui_params['options'], info.gui_params['options'])) + # setup orientation + side = TOP + anchor = W + if "horizontal" in info.gui_params and info.gui_params["horizontal"]: + side = LEFT + anchor = N + # add the radio buttons + for option in info.gui_params["options"]: + radio_button = Radiobutton(widgets[info.name], text=option, value=option, variable=guivars[info.name], justify=LEFT, wraplength=200, indicatoron=False, command=show_settings) + radio_button.pack(expand=True, side=side, anchor=anchor) + # pack the frame + widgets[info.name].pack(expand=False, side=TOP, anchor=W, padx=3, pady=3) elif info.gui_params['widget'] == 'Scale': # create the variable to store the user's decision guivars[info.name] = IntVar(value=info.gui_params['default']) @@ -284,8 +280,6 @@ def open_readme(): minval = 'min' in info.gui_params and info.gui_params['min'] or 0 maxval = 'max' in info.gui_params and info.gui_params['max'] or 100 stepval = 'step' in info.gui_params and info.gui_params['step'] or 1 - - scale = Scale(widgets[info.name], variable=guivars[info.name], from_=minval, to=maxval, tickinterval=stepval, resolution=stepval, showvalue=0, orient=HORIZONTAL, sliderlength=15, length=200, command=show_settings) scale.pack(side=BOTTOM, anchor=W) # label the option @@ -309,6 +303,9 @@ def open_readme(): # pack the frame widgets[info.name].pack(expand=False, side=TOP, anchor=W, padx=3, pady=3) + if 'tooltip' in info.gui_params: + ToolTips.register(widgets[info.name], info.gui_params['tooltip']) + # pack the hierarchy diff --git a/GuiUtils.py b/GuiUtils.py index e93616328..47a642074 100644 --- a/GuiUtils.py +++ b/GuiUtils.py @@ -135,6 +135,7 @@ def getcontroller(cls, widget): @classmethod def register(cls, widget, text): + text = '\n'.join([line.strip() for line in text.splitlines()]).strip() widget.ui_tooltip_text = text tags = list(widget.bindtags()) tags.append(cls.getcontroller(widget)) @@ -156,7 +157,7 @@ def enter(cls, event): cls.popup.overrideredirect(1) cls.popup.withdraw() cls.label = tk.Label( - cls.popup, fg=cls.fg, bg=cls.bg, bd=0, padx=2, justify=tk.LEFT + cls.popup, fg=cls.fg, bg=cls.bg, bd=0, padx=2, justify=tk.LEFT, wrap=300 ) cls.label.pack() cls.active = 0 diff --git a/ItemList.py b/ItemList.py index 52af5dcc4..13c8d34d3 100644 --- a/ItemList.py +++ b/ItemList.py @@ -100,21 +100,22 @@ def get_pool_core(world): else: pool.extend(['Gold Skulltulla Token'] * 100) - if world.progressive_bombchus: + if world.bombchus_in_logic: pool.extend(['Bombchus'] * 5) else: pool.extend(['Bombchus (5)'] + ['Bombchus (10)'] * 3 + ['Bombchus (20)']) - if world.ohko: + if world.difficulty == 'ohko': pool.extend(['Recovery Heart'] * 6) else: - pool.extend(['Ice Trap'] * 6) - - if world.difficulty == 'hard' or world.difficulty == 'very_hard': - pool.extend(harditems) - else: + pool.extend(['Ice Trap'] * 6) + + if world.difficulty == 'normal': pool.extend(['Magic Meter', 'Double Defense'] + ['Heart Container'] * 8) - if world.difficulty == 'very_hard': + else: + pool.extend(harditems) + + if world.difficulty == 'very_hard' or world.difficulty == 'ohko': pool.extend(veryharditems) else: pool.extend(['Nayrus Love', 'Piece of Heart (Treasure Chest Game)'] + ['Piece of Heart'] * 35) diff --git a/Main.py b/Main.py index ce37de39c..7213c8666 100644 --- a/Main.py +++ b/Main.py @@ -25,7 +25,8 @@ def main(settings): # initialize the world worlds = [] - + if settings.compress_rom == 'None': + settings.create_spoiler = True if not settings.world_count: settings.world_count = 1 if settings.world_count < 1: @@ -74,14 +75,14 @@ def main(settings): output_dir = default_output_path(settings.output_dir) - if not settings.suppress_rom: + if settings.compress_rom != 'None': rom = LocalRom(settings) patch_rom(worlds[settings.player_num - 1], rom) rom_path = os.path.join(output_dir, '%s.z64' % outfilebase) rom.write_to_file(rom_path) - if settings.compress_rom: + if settings.compress_rom == 'True': logger.info('Compressing ROM.') if platform.system() == 'Windows': subprocess.call(["Compress\\Compress.exe", rom_path, os.path.join(output_dir, '%s-comp.z64' % outfilebase)]) diff --git a/README.md b/README.md index 6729b17a4..5b896068d 100644 --- a/README.md +++ b/README.md @@ -103,10 +103,6 @@ Gold Skulltula Token are added to the item pool, and Gold Skulltula locations gi In addition there is an option for the logic to expect Sun's Song to obtain any night-only skulltula token. -## OHKO - -Setting `ohko` will make Link die in one hit... - ## Changed hint system The hint system has been changed to include different kinds of hints (such as saying a location has something good, but not saying what item it is, or saying a specific item is somewhere in a dungeon, instead of giving the specific location, and so on.) An option has been added to allow talking to gossip stones from the start. Yes, this makes the Stone of Agony completely useless. @@ -138,6 +134,7 @@ If you seek an additional challenge in regards to combat during the randomizer, - `normal`: no changes to the item pool - `hard`: double defense, double magic, and all 8 heart containers are removed - `very_hard`: Double defense, double magic, Nayru's Love, and all health upgrades are removed +- `ohko`: Link die in one hit... The `hard` difficulty still leaves the heart pieces in the pool, so you can gain up to 12 hearts total, likely a few less though. It also doesn't remove NL, but still takes away double magic so it can't be spammed for multiple minutes of invulnerability. The `very_hard` difficulty just takes it all away, meaning the player will stay at 3 hearts without double defense or Nayru's Love. diff --git a/Rom.py b/Rom.py index 25f7bfc76..5269dea56 100644 --- a/Rom.py +++ b/Rom.py @@ -1182,7 +1182,7 @@ def write_save_table(rom): rom.write_bytes(0xB07200, [0x20, 0x0C, 0x00, 0x01 ]) # Set OHKO mode - if world.ohko: + if world.difficulty == 'ohko': rom.write_int32(0xAE80A8, 0xA4A00030) # sh zero,48(a1) rom.write_int32(0xAE80B4, 0x06000003) # bltz s0, +0003 diff --git a/Rules.py b/Rules.py index 4112e5da0..87daa493e 100644 --- a/Rules.py +++ b/Rules.py @@ -137,7 +137,7 @@ def global_rules(world): set_rule(world.get_entrance('Zora River Dive Warp'), lambda state: state.can_dive()) set_rule(world.get_entrance('Lake Hylia Dive Warp'), lambda state: state.can_dive()) set_rule(world.get_entrance('Zoras Domain Dive Warp'), lambda state: state.can_dive()) - set_rule(world.get_entrance('Zora River Waterfall'), lambda state: state.can_play('Zeldas Lullaby') or world.logic_zora_with_cucco_or_hovers) + set_rule(world.get_entrance('Zora River Waterfall'), lambda state: state.can_play('Zeldas Lullaby') or world.logic_zora_with_cucco) set_rule(world.get_entrance('Zora River Rocks'), lambda state: state.has_explosives()) set_rule(world.get_location('Zora River Lower Freestanding PoH'), lambda state: state.has_explosives() or state.has('Progressive Scale') or (state.has('Hover Boots') and state.is_adult())) set_rule(world.get_location('Zora River Upper Freestanding PoH'), lambda state: state.has_explosives() or state.has('Progressive Scale') or (state.has('Hover Boots') and state.is_adult())) @@ -147,7 +147,7 @@ def global_rules(world): set_rule(world.get_location('King Zora Moves'), lambda state: state.has('Bottle with Letter')) set_rule(world.get_entrance('Behind King Zora'), lambda state: state.has('Bottle with Letter')) set_rule(world.get_entrance('Zora River Adult'), lambda state: state.is_adult()) - set_rule(world.get_entrance('Zoras Domain Adult Access'), lambda state: state.can_play('Zeldas Lullaby') or (state.has('Hover Boots') and world.logic_zora_with_cucco_or_hovers)) + set_rule(world.get_entrance('Zoras Domain Adult Access'), lambda state: state.can_play('Zeldas Lullaby') or (state.has('Hover Boots') and world.logic_zora_with_hovers)) set_rule(world.get_entrance('Zoras Fountain Adult Access'), lambda state: state.can_reach('Zoras Fountain')) set_rule(world.get_entrance('Jabu Jabus Belly'), lambda state: state.has_bottle()) set_rule(world.get_entrance('Zoras Fountain Fairy'), lambda state: state.has_explosives()) diff --git a/Settings.py b/Settings.py index 492d235ea..a8c7db628 100644 --- a/Settings.py +++ b/Settings.py @@ -194,29 +194,34 @@ def __init__(self, settings_dict): 'text': 'Create Spoiler Log', 'group': 'rom_tab', 'widget': 'Checkbutton', - 'default': 'checked' - }), - Setting_Info('suppress_rom', bool, 0, False, - { - 'help': 'Do not create an output rom file.', - 'action': 'store_true' - }, - { - 'text': 'Do not create Rom', - 'group': 'rom_tab', - 'widget': 'Checkbutton', - 'default': 'unchecked' + 'default': 'checked', + 'dependency': lambda guivar: guivar['compress_rom'].get() != 'No ROM Output' }), - Setting_Info('compress_rom', bool, 0, False, + Setting_Info('compress_rom', str, 2, False, { - 'help': 'Create a compressed version of the output rom file.', - 'action': 'store_true' + 'default': 'True', + 'const': 'True', + 'nargs': '?', + 'choices': ['True', 'False', 'None'], + 'help': '''\ + Create a compressed version of the output rom file. + True: Compresses. Improves stability. Will take longer to generate + False: Uncompressed. Unstable. Faster generation + None: No ROM Output. Creates spoiler log only + ''', + 'action': 'store_true' }, { - 'text': 'Compress Rom. Improves stability but will take longer to generate', + 'text': 'Compress Rom', 'group': 'rom_tab', - 'widget': 'Checkbutton', - 'default': 'checked' + 'widget': 'Radiobutton', + 'default': 'Compressed [Emu/VC]', + 'horizontal': True, + 'options': { + 'Compressed [Stable]': 'True', + 'Uncompressed [Crashes]': 'False', + 'No ROM Output': 'None', + } }), Setting_Info('open_forest', bool, 1, True, { @@ -234,7 +239,7 @@ def __init__(self, settings_dict): }), Setting_Info('open_door_of_time', bool, 1, True, { - 'help': '''\ + 'help': ''' The Door of Time is open from the beginning of the game. ''', 'action': 'store_true' @@ -251,11 +256,10 @@ def __init__(self, settings_dict): 'const': 'normal', 'nargs': '?', 'choices': ['normal', 'fast', 'open'], - 'help': '''\ - Select how much of Gerudo Fortress is required. (default: %(default)s) - Normal: Free all four carpenters to get the Gerudo Card. - Fast: Free only the carpenter closest to Link's prison to get the Gerudo Card. - Open: Start with the Gerudo Card and all it's benefits. + 'help': '''Select how much of Gerudo Fortress is required. (default: %(default)s) + Normal: Free all four carpenters to get the Gerudo Card. + Fast: Free only the carpenter closest to Link's prison to get the Gerudo Card. + Open: Start with the Gerudo Card and all it's benefits. ''' }, { @@ -526,6 +530,20 @@ def __init__(self, settings_dict): 'default': 'unchecked', 'dependency': lambda guivar: guivar['gerudo_fortress'].get() != 'Start with Gerudo Card' }), + Setting_Info('nodungeonitems', bool, 1, True, + { + 'help': '''\ + Remove Maps and Compasses from Itempool, replacing them by + empty slots. + ''', + 'action': 'store_true' + }, + { + 'text': 'Remove Maps and Compasses', + 'group': 'logic', + 'widget': 'Checkbutton', + 'default': 'unchecked' + }), Setting_Info('keysanity', bool, 1, True, { 'help': '''\ @@ -565,47 +583,6 @@ def __init__(self, settings_dict): 'All Tokens': 'all', }, }), - Setting_Info('ohko', bool, 1, True, - { - 'help': '''\ - Link will die in one hit. - ''', - 'action': 'store_true' - }, - { - 'text': 'OHKO', - 'group': 'other', - 'widget': 'Checkbutton', - 'default': 'unchecked' - }), - Setting_Info('nodungeonitems', bool, 1, True, - { - 'help': '''\ - Remove Maps and Compasses from Itempool, replacing them by - empty slots. - ''', - 'action': 'store_true' - }, - { - 'text': 'Remove Maps and Compasses', - 'group': 'other', - 'widget': 'Checkbutton', - 'default': 'unchecked' - }), - Setting_Info('progressive_bombchus', bool, 1, True, - { - 'help': '''\ - Bombchus amounts are progressive. 20 pack first time. - Other bombchus will give 10 when low on bombchus, otherwise 5. - ''', - 'action': 'store_true' - }, - { - 'text': 'Progressive Bombchus', - 'group': 'other', - 'widget': 'Checkbutton', - 'default': 'unchecked' - }), Setting_Info('logic_skulltulas', int, 3, True, { 'default': 50, @@ -825,15 +802,28 @@ def __init__(self, settings_dict): 'widget': 'Checkbutton', 'default': 'unchecked' }), - Setting_Info('logic_zora_with_cucco_or_hovers', bool, 1, True, + Setting_Info('logic_zora_with_cucco', bool, 1, True, + { + 'help': '''\ + Zora's Domain can be entered with a Cucco as child in logic. + ''', + 'action': 'store_true' + }, + { + 'text': "Zora's Domain entry with Cucco", + 'group': 'tricks', + 'widget': 'Checkbutton', + 'default': 'unchecked' + }), + Setting_Info('logic_zora_with_hovers', bool, 1, True, { 'help': '''\ - Zora's Domain can be entered with a Cucco and Hover Boots in logic. + Zora's Domain can be entered with Hover Boots as Adult in logic. ''', 'action': 'store_true' }, { - 'text': "Zora's Domain entry with Cucco or Hover Boots", + 'text': "Zora's Domain entry with Hover Boots", 'group': 'tricks', 'widget': 'Checkbutton', 'default': 'unchecked' @@ -954,7 +944,7 @@ def __init__(self, settings_dict): 'default': 'No text shuffled', 'options': { 'No text shuffled': 'none', - 'Shuffled except Hints': 'except_hints', + 'Shuffled except Hints and Keys': 'except_hints', 'All text shuffled': 'complete', }, }), @@ -963,12 +953,13 @@ def __init__(self, settings_dict): 'default': 'normal', 'const': 'normal', 'nargs': '?', - 'choices': ['normal', 'hard', 'very_hard'], + 'choices': ['normal', 'hard', 'very_hard', 'ohko'], 'help': '''\ Choose how hard the game will be. normal: Default items hard: Double defense, double magic, and all 8 heart containers are removed very_hard: Double defense, double magic, Nayru's Love, and all health upgrades are removed + ohko: Same as very hard, and Link will die in one hit. ''' }, { @@ -980,6 +971,7 @@ def __init__(self, settings_dict): 'Normal': 'normal', 'Hard': 'hard', 'Very Hard': 'very_hard', + 'OHKO': 'ohko' }, }), Setting_Info('default_targeting', str, 1, False, diff --git a/version.py b/version.py index e70733ebd..c1056568b 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.7 f.LUM' +__version__ = '2.15.8 f.LUM' From c3719ad54427e27d091586b4f5e43a429ac122ac Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Thu, 9 Aug 2018 21:52:40 -0400 Subject: [PATCH 247/755] Add tooltips --- GuiUtils.py | 2 +- Settings.py | 433 ++++++++++++++++++++++++++++++++++++++++++++++------ version.py | 2 +- 3 files changed, 387 insertions(+), 50 deletions(-) diff --git a/GuiUtils.py b/GuiUtils.py index 47a642074..97bd6762a 100644 --- a/GuiUtils.py +++ b/GuiUtils.py @@ -157,7 +157,7 @@ def enter(cls, event): cls.popup.overrideredirect(1) cls.popup.withdraw() cls.label = tk.Label( - cls.popup, fg=cls.fg, bg=cls.bg, bd=0, padx=2, justify=tk.LEFT, wrap=300 + cls.popup, fg=cls.fg, bg=cls.bg, bd=0, padx=2, justify=tk.LEFT, wrap=400 ) cls.label.pack() cls.active = 0 diff --git a/Settings.py b/Settings.py index a8c7db628..0f19dd90d 100644 --- a/Settings.py +++ b/Settings.py @@ -195,7 +195,10 @@ def __init__(self, settings_dict): 'group': 'rom_tab', 'widget': 'Checkbutton', 'default': 'checked', - 'dependency': lambda guivar: guivar['compress_rom'].get() != 'No ROM Output' + 'dependency': lambda guivar: guivar['compress_rom'].get() != 'No ROM Output', + 'tooltip':'''\ + Enabling this will change the seed. + ''' }), Setting_Info('compress_rom', str, 2, False, { @@ -221,7 +224,13 @@ def __init__(self, settings_dict): 'Compressed [Stable]': 'True', 'Uncompressed [Crashes]': 'False', 'No ROM Output': 'None', - } + }, + 'tooltip':'''\ + The first time compressed generation will take a while + but subsequent generations will be quick. It is highly + recommended to compress or the game will crash + frequently. + ''' }), Setting_Info('open_forest', bool, 1, True, { @@ -235,7 +244,12 @@ def __init__(self, settings_dict): 'text': 'Open Forest', 'group': 'open', 'widget': 'Checkbutton', - 'default': 'unchecked' + 'default': 'checked', + 'tooltip':'''\ + The Deku Tree can be beaten without leaving the Forest + areas. This means that the Kokiri Sword and Slingshot + are always available somewhere in the forest. + ''' }), Setting_Info('open_door_of_time', bool, 1, True, { @@ -248,7 +262,13 @@ def __init__(self, settings_dict): 'text': 'Open Door of Time', 'group': 'open', 'widget': 'Checkbutton', - 'default': 'unchecked' + 'default': 'unchecked', + 'tooltip':'''\ + The Door of Time starts opened instead of needing to + play the Song of Time. Setting closed will mean there + is a child section before becoming adult, so there is + more structure. + ''' }), Setting_Info('gerudo_fortress', str, 2, True, { @@ -272,6 +292,13 @@ def __init__(self, settings_dict): 'Rescue one carpenter': 'fast', 'Start with Gerudo Card': 'open', }, + 'tooltip':'''\ + 'Rescure one carpenter': The carpenter rescue sequence + is much faster and doesn't affect logic much. + + 'Start with Gerudo Card': skips the rescue entirely, + so Epona and Longshot are not required to enter GTG. + ''' }), Setting_Info('bridge', str, 2, True, { @@ -298,6 +325,16 @@ def __init__(self, settings_dict): 'Vanilla requirements': 'vanilla', 'Always open': 'open', }, + 'tooltip':'''\ + 'All dungeons': All Medallions and Stones + + 'All medallions': Medallions but no Stones + + 'Vanilla requirements': Spirit and Shadow + Medallion and the Light Arrows + + 'Always open': Nothing + ''' }), Setting_Info('bombchus_in_logic', bool, 1, True, { @@ -313,7 +350,19 @@ def __init__(self, settings_dict): 'text': 'Bombchus are considered in logic', 'group': 'logic', 'widget': 'Checkbutton', - 'default': 'checked' + 'default': 'checked', + 'tooltip':'''\ + Bombchus are properly considered in logic. + + The first bombchu pack will always be 20. + Subsequent packs will be 5 or 10 based on + how many you have. + + Bombchus can be purchased for 60/99/180 + rupees once they are been found. + + Bombchu Bowling opens with bombchus. + ''' }), Setting_Info('trials', int, 3, True, { @@ -334,6 +383,11 @@ def __init__(self, settings_dict): 'default': 6, 'min': 0, 'max': 6, + 'tooltip':'''\ + Trials are randomly selected. If hints are + enabled, then there will be hints for which + trials need to be completed. + ''' }), Setting_Info('no_escape_sequence', bool, 1, True, { @@ -346,7 +400,11 @@ def __init__(self, settings_dict): 'text': 'Skip Tower Collapse Escape Sequence', 'group': 'convenience', 'widget': 'Checkbutton', - 'default': 'unchecked' + 'default': 'unchecked', + 'tooltip':'''\ + The tower collapse escape sequence between + Ganondorf and Ganon will be skipped. + ''' }), Setting_Info('no_guard_stealth', bool, 1, True, { @@ -359,7 +417,11 @@ def __init__(self, settings_dict): 'text': 'Skip Interior Castle Guard Stealth Sequence', 'group': 'convenience', 'widget': 'Checkbutton', - 'default': 'unchecked' + 'default': 'unchecked', + 'tooltip':'''\ + The crawlspace into Hyrule Castle goes + straight to zelda, skipping the guards. + ''' }), Setting_Info('no_epona_race', bool, 1, True, { @@ -372,7 +434,11 @@ def __init__(self, settings_dict): 'text': 'Skip Epona Race', 'group': 'convenience', 'widget': 'Checkbutton', - 'default': 'unchecked' + 'default': 'unchecked', + 'tooltip':'''\ + Epona can be summoned with Epona's Song + without needed to race Ingo. + ''' }), Setting_Info('only_one_big_poe', bool, 1, True, { @@ -385,7 +451,10 @@ def __init__(self, settings_dict): 'text': 'Big Poe Reward only requires one Big Poe', 'group': 'convenience', 'widget': 'Checkbutton', - 'default': 'unchecked' + 'default': 'unchecked', + 'tooltip':'''\ + Makes Big Poes less tedious. + ''' }), Setting_Info('fast_chests', bool, 1, True, { @@ -398,7 +467,11 @@ def __init__(self, settings_dict): 'text': 'Fast Chest Cutscenes', 'group': 'convenience', 'widget': 'Checkbutton', - 'default': 'checked' + 'default': 'checked', + 'tooltip':'''\ + All chest animations are fast. If disabled, + the animation time is slow for major items. + ''' }), Setting_Info('free_scarecrow', bool, 1, True, { @@ -413,7 +486,11 @@ def __init__(self, settings_dict): 'text': 'Start with Scarecrow Song', 'group': 'convenience', 'widget': 'Checkbutton', - 'default': 'unchecked' + 'default': 'unchecked', + 'tooltip':'''\ + Skips needing to go to Lake Hylia as both + child and adult to learn Scarecrow Song. + ''' }), Setting_Info('scarecrow_song', str, 0, False, { @@ -426,7 +503,17 @@ def __init__(self, settings_dict): 'group': 'convenience', 'widget': 'Entry', 'default': 'DAAAAAAA', - 'dependency': lambda guivar: guivar['free_scarecrow'].get() + 'dependency': lambda guivar: guivar['free_scarecrow'].get(), + 'tooltip':'''\ + Song must be 8 notes long and have at least + two different notes. + Valid notes are: + 'A': A Button + 'D': C-Down + 'U': C-Up + 'L': C-Left + 'R': C-Right + ''' }), Setting_Info('unlocked_ganondorf', bool, 1, True, { @@ -439,7 +526,12 @@ def __init__(self, settings_dict): 'text': 'Remove Ganon\'s Boss Door Lock', 'group': 'open', 'widget': 'Checkbutton', - 'default': 'unchecked' + 'default': 'unchecked', + 'tooltip':'''\ + Best when used when reducing the number of + Trials to less than 6 to prevent needing + to do them all anyways looking for the key. + ''' }), Setting_Info('all_reachable', bool, 1, True, { @@ -455,7 +547,12 @@ def __init__(self, settings_dict): 'text': 'All Locations Reachable', 'group': 'logic', 'widget': 'Checkbutton', - 'default': 'checked' + 'default': 'checked', + 'tooltip':'''\ + Chests that lock themselves can still exists. + When disabled, some locations and item might + not be reachable. + ''' }), Setting_Info('shuffle_kokiri_sword', bool, 1, True, { @@ -468,7 +565,11 @@ def __init__(self, settings_dict): 'text': 'Shuffle Kokiri Sword', 'group': 'logic', 'widget': 'Checkbutton', - 'default': 'checked' + 'default': 'checked', + 'tooltip':'''\ + Disabling this will make the Kokiri Sword + always available at the start. + ''' }), Setting_Info('shuffle_weird_egg', bool, 1, True, { @@ -482,7 +583,12 @@ def __init__(self, settings_dict): 'text': 'Shuffle Weird Egg', 'group': 'logic', 'widget': 'Checkbutton', - 'default': 'unchecked' + 'default': 'checked', + 'tooltip':'''\ + You need to find the egg before going Zelda. + This means the Weird Egg locks the items from + Impa, Saria, Malon, and Talon. + ''' }), Setting_Info('shuffle_ocarinas', bool, 1, True, { @@ -496,7 +602,16 @@ def __init__(self, settings_dict): 'text': 'Shuffle Ocarinas', 'group': 'logic', 'widget': 'Checkbutton', - 'default': 'unchecked' + 'default': 'checked', + 'tooltip':'''\ + The Fairy Ocarina and Ocarina of Time are + randomized. One will be required before + songs can be played. + + This is good in combination with Closed + Door of Time for a more interesting child + section. + ''' }), Setting_Info('shuffle_song_items', bool, 1, True, { @@ -511,7 +626,13 @@ def __init__(self, settings_dict): 'text': 'Shuffle Songs with Items', 'group': 'logic', 'widget': 'Checkbutton', - 'default': 'unchecked', + 'default': 'checked', + 'tooltip':'''\ + Songs can appear anywhere not just Vanilla + song locations. This significantly reduces + song placement bias and makes the songs more + evenly distributed. + ''' }), Setting_Info('shuffle_gerudo_card', bool, 1, True, { @@ -528,7 +649,14 @@ def __init__(self, settings_dict): 'group': 'logic', 'widget': 'Checkbutton', 'default': 'unchecked', - 'dependency': lambda guivar: guivar['gerudo_fortress'].get() != 'Start with Gerudo Card' + 'dependency': lambda guivar: guivar['gerudo_fortress'].get() != 'Start with Gerudo Card', + 'tooltip':'''\ + Gerudo Membership Card is required to + enter Gerudo Training Grounds. It is + effectively the Boss Key of Gerudo Fortress. + + Plays spiritually best with Keysanity. + ''' }), Setting_Info('nodungeonitems', bool, 1, True, { @@ -542,7 +670,13 @@ def __init__(self, settings_dict): 'text': 'Remove Maps and Compasses', 'group': 'logic', 'widget': 'Checkbutton', - 'default': 'unchecked' + 'default': 'checked', + 'tooltip':'''\ + Dungeons will have 2 more possible item + locations. This helps make some dungeons + more profitable, such as Ice Cavern and + Jabu Jabu's Belly. + ''' }), Setting_Info('keysanity', bool, 1, True, { @@ -556,7 +690,15 @@ def __init__(self, settings_dict): 'text': 'Keysanity', 'group': 'logic', 'widget': 'Checkbutton', - 'default': 'unchecked' + 'default': 'unchecked', + 'tooltip':'''\ + Dungeon items can appear outside of their + respective dungeon. Gerudo Fortress keys + are also shuffled. + + A difficult mode since it it more likely + to need to enter a dungeon multiple times. + ''' }), Setting_Info('tokensanity', str, 2, True, { @@ -582,6 +724,20 @@ def __init__(self, settings_dict): 'Dungeons Only': 'dungeons', 'All Tokens': 'all', }, + 'tooltip':'''\ + Token reward from Gold Skulltulas are + shuffled into the pool. + + 'Dungeon Only': This helps make some + dungeons more profitable, such as + Ice Cavern and Jabu Jabu's Belly. + Some GS locations in dungeons have + interesting requirements to reach. + This is a recommended option. + + 'All Tokens': Effectively adds 100 + new locations for items to appear. + ''' }), Setting_Info('logic_skulltulas', int, 3, True, { @@ -602,7 +758,9 @@ def __init__(self, settings_dict): 'min': 0, 'max': 50, 'step': 10, - + 'tooltip':'''\ + Skulltula Token rewards are time consuming. + ''' }), Setting_Info('logic_no_night_tokens_without_suns_song', bool, 1, True, { @@ -616,7 +774,14 @@ def __init__(self, settings_dict): 'text': 'No Nighttime Skulltulas without Sun\'s Song', 'group': 'rewards', 'widget': 'Checkbutton', - 'default': 'unchecked' + 'default': 'unchecked', + 'tooltip':'''\ + Skulltula Token that can only be obtained + during the night expect you to have Sun's + Song because needed to collect them. This + option prevents needing to wait for time + of day for some locations. + ''' }), Setting_Info('logic_no_big_poes', bool, 1, True, { @@ -629,7 +794,10 @@ def __init__(self, settings_dict): 'text': 'No Big Poes', 'group': 'rewards', 'widget': 'Checkbutton', - 'default': 'unchecked' + 'default': 'unchecked', + 'tooltip':'''\ + Big Poes reward is time consuming + ''' }), Setting_Info('logic_no_child_fishing', bool, 1, True, { @@ -642,7 +810,11 @@ def __init__(self, settings_dict): 'text': 'No Child Fishing', 'group': 'rewards', 'widget': 'Checkbutton', - 'default': 'unchecked' + 'default': 'unchecked', + 'tooltip':'''\ + Fishing does not work correctly on + some emulators. + ''' }), Setting_Info('logic_no_adult_fishing', bool, 1, True, { @@ -655,7 +827,11 @@ def __init__(self, settings_dict): 'text': 'No Adult Fishing', 'group': 'rewards', 'widget': 'Checkbutton', - 'default': 'unchecked' + 'default': 'unchecked', + 'tooltip':'''\ + Fishing does not work correctly on + some emulators. + ''' }), Setting_Info('logic_no_trade_skull_mask', bool, 1, True, { @@ -668,7 +844,10 @@ def __init__(self, settings_dict): 'text': 'No Skull Mask reward', 'group': 'rewards', 'widget': 'Checkbutton', - 'default': 'unchecked' + 'default': 'unchecked', + 'tooltip':'''\ + Mask trade quest is time consuming. + ''' }), Setting_Info('logic_no_trade_mask_of_truth', bool, 1, True, { @@ -681,7 +860,12 @@ def __init__(self, settings_dict): 'text': 'No Mask of Truth reward', 'group': 'rewards', 'widget': 'Checkbutton', - 'default': 'unchecked' + 'default': 'unchecked', + 'tooltip':'''\ + Completing mask trade quest is very + time consuming and requires all 3 + Spiritual Stones. + ''' }), Setting_Info('logic_no_trade_biggoron', bool, 1, True, { @@ -694,7 +878,10 @@ def __init__(self, settings_dict): 'text': 'No Biggoron reward', 'group': 'rewards', 'widget': 'Checkbutton', - 'default': 'unchecked' + 'default': 'unchecked', + 'tooltip':'''\ + Adult trade sequence is time consuming. + ''' }), Setting_Info('logic_no_1500_archery', bool, 1, True, { @@ -707,7 +894,11 @@ def __init__(self, settings_dict): 'text': 'No 1500 Horseback Archery', 'group': 'rewards', 'widget': 'Checkbutton', - 'default': 'unchecked' + 'default': 'unchecked', + 'tooltip':'''\ + Some find this too difficult on emulator. + Also it is doing the same thing twice. + ''' }), Setting_Info('logic_no_memory_game', bool, 1, True, { @@ -720,7 +911,10 @@ def __init__(self, settings_dict): 'text': 'No Lost Woods Memory Game', 'group': 'rewards', 'widget': 'Checkbutton', - 'default': 'unchecked' + 'default': 'unchecked', + 'tooltip':'''\ + Memory game is time consuming. + ''' }), Setting_Info('logic_no_second_dampe_race', bool, 1, True, { @@ -733,7 +927,10 @@ def __init__(self, settings_dict): 'text': 'No Racing Dampe a second time', 'group': 'rewards', 'widget': 'Checkbutton', - 'default': 'unchecked' + 'default': 'unchecked', + 'tooltip':'''\ + Racing twice is repetitive. + ''' }), Setting_Info('logic_man_on_roof', bool, 1, True, { @@ -746,7 +943,11 @@ def __init__(self, settings_dict): 'text': 'Man on Roof without Hookshot', 'group': 'tricks', 'widget': 'Checkbutton', - 'default': 'unchecked' + 'default': 'unchecked', + 'tooltip':'''\ + Can be reached by side-hopping off of + the watchtower. + ''' }), Setting_Info('logic_child_deadhand', bool, 1, True, { @@ -759,7 +960,10 @@ def __init__(self, settings_dict): 'text': 'Child Deadhand without Kokiri Sword', 'group': 'tricks', 'widget': 'Checkbutton', - 'default': 'unchecked' + 'default': 'unchecked', + 'tooltip':'''\ + Requires 9 sticks or 5 jump slashes. + ''' }), Setting_Info('logic_dc_jump', bool, 1, True, { @@ -773,7 +977,10 @@ def __init__(self, settings_dict): 'text': 'Dodongo\'s Cavern spike trap room jump without Hover Boots', 'group': 'tricks', 'widget': 'Checkbutton', - 'default': 'unchecked' + 'default': 'unchecked', + 'tooltip':'''\ + Jump is adult only. + ''' }), Setting_Info('logic_windmill_hp', bool, 1, True, { @@ -786,7 +993,11 @@ def __init__(self, settings_dict): 'text': 'Windmill HP as adult with nothing', 'group': 'tricks', 'widget': 'Checkbutton', - 'default': 'unchecked' + 'default': 'unchecked', + 'tooltip':'''\ + Can jump up to the spinning platform from + below as adult. + ''' }), Setting_Info('logic_crater_bean_hp_with_hovers', bool, 1, True, { @@ -800,7 +1011,10 @@ def __init__(self, settings_dict): 'text': "Crater's bean HP with Hover Boots", 'group': 'tricks', 'widget': 'Checkbutton', - 'default': 'unchecked' + 'default': 'unchecked', + 'tooltip':'''\ + Hover from the top of the crater. + ''' }), Setting_Info('logic_zora_with_cucco', bool, 1, True, { @@ -813,7 +1027,11 @@ def __init__(self, settings_dict): 'text': "Zora's Domain entry with Cucco", 'group': 'tricks', 'widget': 'Checkbutton', - 'default': 'unchecked' + 'default': 'unchecked', + 'tooltip':'''\ + Can fly behind the waterfall with + a cucco as child. + ''' }), Setting_Info('logic_zora_with_hovers', bool, 1, True, { @@ -826,7 +1044,10 @@ def __init__(self, settings_dict): 'text': "Zora's Domain entry with Hover Boots", 'group': 'tricks', 'widget': 'Checkbutton', - 'default': 'unchecked' + 'default': 'unchecked', + 'tooltip':'''\ + Can hover behind the waterfall as adult. + ''' }), Setting_Info('logic_fewer_tunic_requirements', bool, 1, True, { @@ -843,7 +1064,19 @@ def __init__(self, settings_dict): 'text': "Fewer Tunic Requirements", 'group': 'tricks', 'widget': 'Checkbutton', - 'default': 'unchecked' + 'default': 'unchecked', + 'tooltip':'''\ + Allows the following possible without Tunics: + - Enter Water Temple. The key below the center + pillar still requires Zora Tunic. + - Enter Fire Temple. Only the first floor is + accessible, and not Volvagia. + - Zoras Fountain Bottom Freestanding PoH. + Might not have enough health to resurface. + - Gerudo Training Grounds Underwater + Silver Rupee Chest. Will need to make multiple + trips. + ''' }), Setting_Info('logic_lens', str, 2, True, { @@ -868,6 +1101,16 @@ def __init__(self, settings_dict): 'Wasteland and Chest Minigame': 'chest-wasteland', 'Only Chest Minigame': 'chest', }, + 'tooltip':'''\ + 'Required everywhere': every invisible or + fake object will expect you to have the + Lens of Truth and Magic. The exception is + passing through the first wall in Bottom of + the Well, since that is required in Vanilla. + + 'Wasteland': The lens is needed to follow + the ghost guide across the Desert Wasteland. + ''' }), Setting_Info('ocarina_songs', bool, 1, True, { @@ -880,7 +1123,13 @@ def __init__(self, settings_dict): 'text': 'Randomize ocarina song notes', 'group': 'other', 'widget': 'Checkbutton', - 'default': 'unchecked' + 'default': 'unchecked', + 'tooltip':'''\ + Will need to memorize a new set of songs. + Can be silly, but difficult. Song are + generally sensible, and warp songs are + typically more difficult. + ''' }), Setting_Info('correct_chest_sizes', bool, 1, True, { @@ -896,7 +1145,14 @@ def __init__(self, settings_dict): 'text': 'Chests size matches contents', 'group': 'other', 'widget': 'Checkbutton', - 'default': 'unchecked' + 'default': 'unchecked', + 'tooltip':'''\ + Chests will be large if they contain a major + item and small if not. Allows skipping + chests if they are small. However skipping + small chests will mean having low health, + ammo, and rupees, so doing so is a risk. + ''' }), Setting_Info('hints', str, 2, True, { @@ -916,13 +1172,29 @@ def __init__(self, settings_dict): 'text': 'Gossip Stones', 'group': 'other', 'widget': 'Combobox', - 'default': 'Hints; Need Stone of Agony', + 'default': 'Hints; Need Nothing', 'options': { 'No Hints': 'none', 'Hints; Need Mask of Truth': 'mask', 'Hints; Need Stone of Agony': 'agony', 'Hints; Need Nothing': 'always', }, + 'tooltip':'''\ + Hints allow for more dynamic routing. + Spending time to gain knowledge of the + world can give better routing plans + and potentially save time. + + Hints for 'on the way of the hero' are + locations that contain items that are + required to beat the game. + + It is recommended to play with + 'Hints; Need Nothing'. Requiring the + Stone of Agony generally requires + backtracking to locations for the hints, + which make them often not worthwhile. + ''' }), Setting_Info('text_shuffle', str, 2, True, { @@ -947,6 +1219,14 @@ def __init__(self, settings_dict): 'Shuffled except Hints and Keys': 'except_hints', 'All text shuffled': 'complete', }, + 'tooltip':'''\ + Will make things confusing for comedic value. + + 'Shuffled except Hints and Keys': Key texts + not shuffled because in keysanity it is + impossible to tell what dungeon it is for + without the correct text. + ''' }), Setting_Info('difficulty', str, 2, True, { @@ -973,6 +1253,18 @@ def __init__(self, settings_dict): 'Very Hard': 'very_hard', 'OHKO': 'ohko' }, + 'tooltip':'''\ + Makes health less available + + 'Hard': Heart Containers, Double Magic, + and Double Defense are removed. + + 'Very Hard': Heart Containers, Heart, + Pieces, Double Magic, Double Defense, + and Nayru's Love are removed. + + 'OHKO': Link dies in one hit. + ''' }), Setting_Info('default_targeting', str, 1, False, { @@ -992,7 +1284,7 @@ def __init__(self, settings_dict): 'options': { 'Hold': 'hold', 'Switch': 'switch', - }, + } }), @@ -1005,9 +1297,7 @@ def __init__(self, settings_dict): 'choices': get_tunic_color_options(), 'help': '''\ Choose the color for Link's Kokiri Tunic. (default: %(default)s) - Color: Make the Kokiri Tunic this color. - Random Choice: Choose a random color from this list of colors. - Comepletely Random: Choose a random color from any color the N64 can draw. + ''' }, { @@ -1016,6 +1306,12 @@ def __init__(self, settings_dict): 'widget': 'Combobox', 'default': 'Kokiri Green', 'options': get_tunic_color_options(), + 'tooltip':'''\ + 'Random Choice': Choose a random + color from this list of colors. + 'Comepletely Random': Choose a random + color from any color the N64 can draw. + ''' }), Setting_Info('goroncolor', str, 0, False, { @@ -1036,6 +1332,12 @@ def __init__(self, settings_dict): 'widget': 'Combobox', 'default': 'Goron Red', 'options': get_tunic_color_options(), + 'tooltip':'''\ + 'Random Choice': Choose a random + color from this list of colors. + 'Comepletely Random': Choose a random + color from any color the N64 can draw. + ''' }), Setting_Info('zoracolor', str, 0, False, { @@ -1056,6 +1358,12 @@ def __init__(self, settings_dict): 'widget': 'Combobox', 'default': 'Zora Blue', 'options': get_tunic_color_options(), + 'tooltip':'''\ + 'Random Choice': Choose a random + color from this list of colors. + 'Comepletely Random': Choose a random + color from any color the N64 can draw. + ''' }), Setting_Info('navicolordefault', str, 0, False, { @@ -1076,6 +1384,12 @@ def __init__(self, settings_dict): 'widget': 'Combobox', 'default': 'White', 'options': get_navi_color_options(), + 'tooltip':'''\ + 'Random Choice': Choose a random + color from this list of colors. + 'Comepletely Random': Choose a random + color from any color the N64 can draw. + ''' }), Setting_Info('navicolorenemy', str, 0, False, { @@ -1096,6 +1410,12 @@ def __init__(self, settings_dict): 'widget': 'Combobox', 'default': 'Yellow', 'options': get_navi_color_options(), + 'tooltip':'''\ + 'Random Choice': Choose a random + color from this list of colors. + 'Comepletely Random': Choose a random + color from any color the N64 can draw. + ''' }), Setting_Info('navicolornpc', str, 0, False, { @@ -1116,6 +1436,12 @@ def __init__(self, settings_dict): 'widget': 'Combobox', 'default': 'Light Blue', 'options': get_navi_color_options(), + 'tooltip':'''\ + 'Random Choice': Choose a random + color from this list of colors. + 'Comepletely Random': Choose a random + color from any color the N64 can draw. + ''' }), Setting_Info('navicolorprop', str, 0, False, { @@ -1136,6 +1462,12 @@ def __init__(self, settings_dict): 'widget': 'Combobox', 'default': 'Green', 'options': get_navi_color_options(), + 'tooltip':'''\ + 'Random Choice': Choose a random + color from this list of colors. + 'Comepletely Random': Choose a random + color from any color the N64 can draw. + ''' }), Setting_Info('healthSFX', str, 0, False, { @@ -1169,7 +1501,12 @@ def __init__(self, settings_dict): 'Cluck', 'Mweep!', 'None', - ] + ], + 'tooltip':'''\ + 'Random Choice': Choose a random + sound from this list of colors. + 'Default': Beep. Beep. Beep. + ''' }), ] diff --git a/version.py b/version.py index c1056568b..56d15660d 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.8 f.LUM' +__version__ = '2.15.9 f.LUM' From 6db2db13c248a4817669164a6eed1794bfb96268 Mon Sep 17 00:00:00 2001 From: mzxrules Date: Thu, 9 Aug 2018 22:08:59 -0400 Subject: [PATCH 248/755] refactored Rules.py to extract dungeon rules, formatted ItemList.py --- .gitignore | 1 + ItemList.py | 245 +++++++++++++++++++++++++++--- Rom.py | 2 +- Rules.py | 422 ++++++++++++++++++++++++++++++---------------------- 4 files changed, 477 insertions(+), 193 deletions(-) diff --git a/.gitignore b/.gitignore index b7687ceef..297350113 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .*.sw* .sw* *.pyc +/.vs \ No newline at end of file diff --git a/ItemList.py b/ItemList.py index 52af5dcc4..4fcdea36f 100644 --- a/ItemList.py +++ b/ItemList.py @@ -7,26 +7,226 @@ #This file sets the item pools for various modes. Timed modes and triforce hunt are enforced first, and then extra items are specified per mode to fill in the remaining space. #Some basic items that various modes require are placed here, including pendants and crystals. Medallion requirements for the two relevant entrances are also decided. -alwaysitems = (['Biggoron Sword', 'Boomerang', 'Lens of Truth', 'Hammer', 'Iron Boots', 'Goron Tunic', 'Zora Tunic', 'Hover Boots', 'Mirror Shield', 'Stone of Agony', 'Fire Arrows', 'Ice Arrows', 'Light Arrows', 'Dins Fire', 'Farores Wind', 'Rupee (1)'] + ['Progressive Hookshot'] * 2 + ['Deku Shield'] * 4 + ['Hylian Shield'] * 2 + - ['Progressive Strength Upgrade'] * 3 + ['Progressive Scale'] * 2 + ['Recovery Heart'] * 11 + ['Rupees (5)'] * 17 + ['Rupees (20)'] * 5 + ['Rupees (50)'] * 7 + ['Rupees (200)'] * 6 + ['Bow'] * 3 + ['Slingshot'] * 3 + ['Bomb Bag'] * 3 + ['Bottle with Letter'] + - ['Bombs (5)'] * 2 + ['Bombs (10)'] * 2 + ['Bombs (20)'] * 2 + ['Arrows (5)'] + ['Arrows (10)'] * 6 + ['Arrows (30)'] * 6 + ['Deku Nuts (5)'] + ['Deku Nuts (10)'] + ['Progressive Wallet'] * 2 + ['Deku Stick Capacity'] * 2 + ['Deku Nut Capacity'] * 2 + ['Magic Meter']) -# normal_bottles = ['Bottle', 'Bottle with Milk', 'Bottle with Red Potion', 'Bottle with Green Potion', 'Bottle with Blue Potion', 'Bottle with Fairy', 'Bottle with Fish', 'Bottle with Blue Fire', 'Bottle with Bugs', 'Bottle with Poe'] -normal_bottles = ['Bottle', 'Bottle with Milk', 'Bottle with Red Potion', 'Bottle with Green Potion', 'Bottle with Blue Potion', 'Bottle with Fairy', 'Bottle with Fish', 'Bottle with Bugs', 'Bottle with Poe'] +alwaysitems = ([ + 'Biggoron Sword', + 'Boomerang', + 'Lens of Truth', + 'Hammer', + 'Iron Boots', + 'Goron Tunic', + 'Zora Tunic', + 'Hover Boots', + 'Mirror Shield', + 'Stone of Agony', + 'Fire Arrows', + 'Ice Arrows', + 'Light Arrows', + 'Dins Fire', + 'Farores Wind', + 'Rupee (1)'] + + ['Progressive Hookshot'] * 2 + + ['Deku Shield'] * 4 + + ['Hylian Shield'] * 2 + + ['Progressive Strength Upgrade'] * 3 + + ['Progressive Scale'] * 2 + + ['Recovery Heart'] * 11 + + ['Rupees (5)'] * 17 + + ['Rupees (20)'] * 5 + + ['Rupees (50)'] * 7 + + ['Rupees (200)'] * 6 + + ['Bow'] * 3 + + ['Slingshot'] * 3 + + ['Bomb Bag'] * 3 + + ['Bottle with Letter'] + + ['Bombs (5)'] * 2 + + ['Bombs (10)'] * 2 + + ['Bombs (20)'] * 2 + + ['Arrows (5)'] + + ['Arrows (10)'] * 6 + + ['Arrows (30)'] * 6 + + ['Deku Nuts (5)'] + + ['Deku Nuts (10)'] + + ['Progressive Wallet'] * 2 + + ['Deku Stick Capacity'] * 2 + + ['Deku Nut Capacity'] * 2 + + ['Magic Meter']) + +normal_bottles = [ + 'Bottle', + 'Bottle with Milk', + 'Bottle with Red Potion', + 'Bottle with Green Potion', + 'Bottle with Blue Potion', + 'Bottle with Fairy', + 'Bottle with Fish', + 'Bottle with Bugs', + 'Bottle with Poe'] # 'Bottle with Blue Fire' + normal_bottle_count = 3 # notmapcompass = ['Rupees (5)'] * 20 -notmapcompass = ['Bombs (5)'] * 4 + ['Arrows (5)'] * 3 + ['Deku Nuts (5)'] * 3 + ['Rupees (5)'] * 7 + ['Rupees (20)'] * 2 + ['Rupees (50)'] +notmapcompass = ( + ['Bombs (5)'] * 4 + + ['Arrows (5)'] * 3 + + ['Deku Nuts (5)'] * 3 + + ['Rupees (5)'] * 7 + + ['Rupees (20)'] * 2 + + ['Rupees (50)']) + # 10 items get removed for hard+ -harditems = ['Bombs (5)'] * 2 + ['Arrows (5)'] * 2 + ['Deku Nuts (5)'] * 2 + ['Rupees (5)'] * 3 + ['Rupees (20)'] +harditems = ( + ['Bombs (5)'] * 2 + + ['Arrows (5)'] * 2 + + ['Deku Nuts (5)'] * 2 + + ['Rupees (5)'] * 3 + + ['Rupees (20)']) + # 37 items get removed for very hard -veryharditems = ['Bombs (5)'] * 8 + ['Arrows (5)'] * 8 + ['Deku Nuts (5)'] * 8 + ['Rupees (5)'] * 10 + ['Rupees (20)'] * 2 + ['Rupees (50)'] -rewardlist = ['Kokiri Emerald', 'Goron Ruby', 'Zora Sapphire', 'Forest Medallion', 'Fire Medallion', 'Water Medallion', 'Spirit Medallion', 'Shadow Medallion', 'Light Medallion'] -songlist = ['Zeldas Lullaby', 'Eponas Song', 'Suns Song', 'Sarias Song', 'Song of Time', 'Song of Storms', 'Minuet of Forest', 'Prelude of Light', 'Bolero of Fire', 'Serenade of Water', 'Nocturne of Shadow', 'Requiem of Spirit'] -skulltulla_locations = (['GS Kokiri Know It All House', 'GS Kokiri Bean Patch', 'GS Kokiri House of Twins', 'GS Lost Woods Bean Patch Near Bridge', 'GS Lost Woods Bean Patch Near Stage', 'GS Lost Woods Above Stage', 'GS Sacred Forest Meadow', 'GS Deku Tree Compass Room', 'GS Deku Tree Basement Vines', 'GS Deku Tree Basement Gate', 'GS Deku Tree Basement Back Room', 'GS Hyrule Field near Kakariko', 'GS Hyrule Field Near Gerudo Valley', 'GS Castle Market Guard House', 'GS Hyrule Castle Tree', 'GS Hyrule Castle Grotto', 'GS Outside Ganon\'s Castle', 'GS Lon Lon Ranch Tree', 'GS Lon Lon Ranch Rain Shed', 'GS Lon Lon Ranch House Window'] + - ['GS Lon Lon Ranch Back Wall', 'GS Kakariko House Under Construction', 'GS Kakariko Skulltula House', 'GS Kakariko Guard\'s House', 'GS Kakariko Tree', 'GS Kakariko Watchtower', 'GS Kakariko Above Impa\'s House', 'GS Graveyard Wall', 'GS Graveyard Bean Patch', 'GS Mountain Trail Bean Patch', 'GS Mountain Trail Bomb Alcove', 'GS Mountain Trail Path to Crater', 'GS Mountain Trail Above Dodongo\'s Cavern', 'GS Goron City Boulder Maze', 'GS Goron City Center Platform', 'GS Death Mounter Crater Crate', 'GS Death Mounter Bean Patch', 'GS Dodongo\'s Cavern East Side Room', 'GS Dodongo\'s Cavern Vines Above Stairs', 'GS Dodongo\'s Cavern Back Room'] + - ['GS Dodongo\'s Cavern Alcove Above Stairs', 'GS Dodongo\'s Cavern Scarecrow', 'GS Zora River Ladder', 'GS Zora River Tree', 'GS Zora River Near Raised Grottos', 'GS Zora River Above Bridge', 'GS Zora\'s Domain Frozen Waterfall', 'GS Zora\'s Fountain Tree', 'GS Zora\'s Fountain Above the Log', 'GS Zora\'s Fountain Hidden Cave', 'GS Jabu Jabu Water Switch Room', 'GS Jabu Jabu Lobby Basement Lower', 'GS Jabu Jabu Lobby Basement Upper', 'GS Jabu Jabu Near Boss', 'GS Lake Hylia Bean Patch', 'GS Lake Hylia Lab Wall', 'GS Lake Hylia Small Island', 'GS Lake Hylia Giant Tree', 'GS Lab Underwater Crate', 'GS Forest Temple First Room'] + - ['GS Forest Temple Lobby', 'GS Forest Temple Outdoor East', 'GS Forest Temple Outdoor West', 'GS Forest Temple Basement', 'GS Fire Temple Song of Time Room', 'GS Fire Temple Unmarked Bomb Wall', 'GS Fire Temple East Tower Climb', 'GS Fire Temple East Tower Top', 'GS Fire Temple Basement', 'GS Ice Cavern Spinning Scythe Room', 'GS Ice Cavern Heart Piece Room', 'GS Ice Cavern Push Block Room', 'GS Water Temple South Basement', 'GS Water Temple Serpent River', 'GS Water Temple Falling Platform Room', 'GS Water Temple Central Room', 'GS Water Temple Near Boss Key Chest', 'GS Well West Inner Room', 'GS Well East Inner Room', 'GS Well Like Like Cage'] + - ['GS Shadow Temple Like Like Room', 'GS Shadow Temple Crusher Room', 'GS Shadow Temple Single Giant Pot', 'GS Shadow Temple Near Ship', 'GS Shadow Temple Tripple Giant Pot', 'GS Gerudo Valley Small Bridge', 'GS Gerudo Valley Bean Patch', 'GS Gerudo Valley Behind Tent', 'GS Gerudo Valley Pillar', 'GS Gerudo Fortress Archery Range', 'GS Gerudo Fortress Top Floor', 'GS Wasteland Ruins', 'GS Desert Colossus Bean Patch', 'GS Desert Colossus Tree', 'GS Desert Colossus Hill', 'GS Spirit Temple Metal Fence', 'GS Spirit Temple Bomb for Light Room', 'GS Spirit Temple Hall to West Iron Knuckle', 'GS Spirit Temple Boulder Room', 'GS Spirit Temple Lobby']) -tradeitems = ['Pocket Egg', 'Pocket Cucco', 'Cojiro', 'Odd Mushroom', 'Poachers Saw', 'Broken Sword', 'Prescription', 'Eyeball Frog', 'Eyedrops', 'Claim Check'] +veryharditems = ( + ['Bombs (5)'] * 8 + + ['Arrows (5)'] * 8 + + ['Deku Nuts (5)'] * 8 + + ['Rupees (5)'] * 10 + + ['Rupees (20)'] * 2 + + ['Rupees (50)']) + +rewardlist = [ + 'Kokiri Emerald', + 'Goron Ruby', + 'Zora Sapphire', + 'Forest Medallion', + 'Fire Medallion', + 'Water Medallion', + 'Spirit Medallion', + 'Shadow Medallion', + 'Light Medallion'] + +songlist = [ + 'Zeldas Lullaby', + 'Eponas Song', + 'Suns Song', + 'Sarias Song', + 'Song of Time', + 'Song of Storms', + 'Minuet of Forest', + 'Prelude of Light', + 'Bolero of Fire', + 'Serenade of Water', + 'Nocturne of Shadow', + 'Requiem of Spirit'] + +skulltulla_locations = ([ + 'GS Kokiri Know It All House', + 'GS Kokiri Bean Patch', + 'GS Kokiri House of Twins', + 'GS Lost Woods Bean Patch Near Bridge', + 'GS Lost Woods Bean Patch Near Stage', + 'GS Lost Woods Above Stage', + 'GS Sacred Forest Meadow', + 'GS Deku Tree Compass Room', + 'GS Deku Tree Basement Vines', + 'GS Deku Tree Basement Gate', + 'GS Deku Tree Basement Back Room', + 'GS Hyrule Field near Kakariko', + 'GS Hyrule Field Near Gerudo Valley', + 'GS Castle Market Guard House', + 'GS Hyrule Castle Tree', + 'GS Hyrule Castle Grotto', + 'GS Outside Ganon\'s Castle', + 'GS Lon Lon Ranch Tree', + 'GS Lon Lon Ranch Rain Shed', + 'GS Lon Lon Ranch House Window', + 'GS Lon Lon Ranch Back Wall', + 'GS Kakariko House Under Construction', + 'GS Kakariko Skulltula House', + 'GS Kakariko Guard\'s House', + 'GS Kakariko Tree', + 'GS Kakariko Watchtower', + 'GS Kakariko Above Impa\'s House', + 'GS Graveyard Wall', + 'GS Graveyard Bean Patch', + 'GS Mountain Trail Bean Patch', + 'GS Mountain Trail Bomb Alcove', + 'GS Mountain Trail Path to Crater', + 'GS Mountain Trail Above Dodongo\'s Cavern', + 'GS Goron City Boulder Maze', + 'GS Goron City Center Platform', + 'GS Death Mounter Crater Crate', + 'GS Death Mounter Bean Patch', + 'GS Dodongo\'s Cavern East Side Room', + 'GS Dodongo\'s Cavern Vines Above Stairs', + 'GS Dodongo\'s Cavern Back Room', + 'GS Dodongo\'s Cavern Alcove Above Stairs', + 'GS Dodongo\'s Cavern Scarecrow', + 'GS Zora River Ladder', + 'GS Zora River Tree', + 'GS Zora River Near Raised Grottos', + 'GS Zora River Above Bridge', + 'GS Zora\'s Domain Frozen Waterfall', + 'GS Zora\'s Fountain Tree', + 'GS Zora\'s Fountain Above the Log', + 'GS Zora\'s Fountain Hidden Cave', + 'GS Jabu Jabu Water Switch Room', + 'GS Jabu Jabu Lobby Basement Lower', + 'GS Jabu Jabu Lobby Basement Upper', + 'GS Jabu Jabu Near Boss', + 'GS Lake Hylia Bean Patch', + 'GS Lake Hylia Lab Wall', + 'GS Lake Hylia Small Island', + 'GS Lake Hylia Giant Tree', + 'GS Lab Underwater Crate', + 'GS Forest Temple First Room', + 'GS Forest Temple Lobby', + 'GS Forest Temple Outdoor East', + 'GS Forest Temple Outdoor West', + 'GS Forest Temple Basement', + 'GS Fire Temple Song of Time Room', + 'GS Fire Temple Unmarked Bomb Wall', + 'GS Fire Temple East Tower Climb', + 'GS Fire Temple East Tower Top', + 'GS Fire Temple Basement', + 'GS Ice Cavern Spinning Scythe Room', + 'GS Ice Cavern Heart Piece Room', + 'GS Ice Cavern Push Block Room', + 'GS Water Temple South Basement', + 'GS Water Temple Serpent River', + 'GS Water Temple Falling Platform Room', + 'GS Water Temple Central Room', + 'GS Water Temple Near Boss Key Chest', + 'GS Well West Inner Room', + 'GS Well East Inner Room', + 'GS Well Like Like Cage', + 'GS Shadow Temple Like Like Room', + 'GS Shadow Temple Crusher Room', + 'GS Shadow Temple Single Giant Pot', + 'GS Shadow Temple Near Ship', + 'GS Shadow Temple Tripple Giant Pot', + 'GS Gerudo Valley Small Bridge', + 'GS Gerudo Valley Bean Patch', + 'GS Gerudo Valley Behind Tent', + 'GS Gerudo Valley Pillar', + 'GS Gerudo Fortress Archery Range', + 'GS Gerudo Fortress Top Floor', + 'GS Wasteland Ruins', + 'GS Desert Colossus Bean Patch', + 'GS Desert Colossus Tree', + 'GS Desert Colossus Hill', + 'GS Spirit Temple Metal Fence', + 'GS Spirit Temple Bomb for Light Room', + 'GS Spirit Temple Hall to West Iron Knuckle', + 'GS Spirit Temple Boulder Room', + 'GS Spirit Temple Lobby']) + +tradeitems = [ + 'Pocket Egg', + 'Pocket Cucco', + 'Cojiro', + 'Odd Mushroom', + 'Poachers Saw', + 'Broken Sword', + 'Prescription', + 'Eyeball Frog', + 'Eyedrops', + 'Claim Check'] eventlocations = { @@ -169,8 +369,17 @@ def choose_trials(world): def fill_bosses(world, bossCount=9): boss_rewards = ItemFactory(rewardlist) - boss_locations = [world.get_location('Queen Gohma'), world.get_location('King Dodongo'), world.get_location('Barinade'), world.get_location('Phantom Ganon'), - world.get_location('Volvagia'), world.get_location('Morpha'), world.get_location('Bongo Bongo'), world.get_location('Twinrova'), world.get_location('Links Pocket')] + boss_locations = [ + world.get_location('Queen Gohma'), + world.get_location('King Dodongo'), + world.get_location('Barinade'), + world.get_location('Phantom Ganon'), + world.get_location('Volvagia'), + world.get_location('Morpha'), + world.get_location('Bongo Bongo'), + world.get_location('Twinrova'), + world.get_location('Links Pocket')] + placed_prizes = [loc.item.name for loc in boss_locations if loc.item is not None] unplaced_prizes = [item for item in boss_rewards if item.name not in placed_prizes] empty_boss_locations = [loc for loc in boss_locations if loc.item is None] diff --git a/Rom.py b/Rom.py index 25f7bfc76..69e999220 100644 --- a/Rom.py +++ b/Rom.py @@ -681,7 +681,7 @@ def patch_rom(world, rom): # Speed up Epona race start rom.write_bytes(0x29BE984, [0x00, 0x00, 0x00, 0x02]) rom.write_bytes(0x29BE9CA, [0x00, 0x01, 0x00, 0x02]) - + # Speed start of Horseback Archery #rom.write_bytes(0x21B2064, [0x00, 0x00, 0x00, 0x02]) #rom.write_bytes(0x21B20AA, [0x00, 0x01, 0x00, 0x02]) diff --git a/Rules.py b/Rules.py index 4112e5da0..9cf2de8e9 100644 --- a/Rules.py +++ b/Rules.py @@ -65,10 +65,23 @@ def global_rules(world): # these are default save&quit points and always accessible world.get_region('Links House').can_reach = lambda state: True + # dungeon requirements (including gold skulltulas) + dung_rules_dt0(world) + dung_rules_dc0(world) + dung_rules_jb0(world) + dung_rules_fot0(world) + dung_rules_fit0(world) + dung_rules_wt0(world) + dung_rules_spt0(world) + dung_rules_sht0(world) + dung_rules_bw0(world) + dung_rules_ic0(world) + dung_rules_gtg0(world) + dung_rules_gc0(world) + # overworld requirements set_rule(world.get_entrance('Deku Tree'), lambda state: state.has('Kokiri Sword') or world.open_forest) set_rule(world.get_entrance('Lost Woods Bridge'), lambda state: world.open_forest or (state.has('Slingshot') and state.has('Kokiri Sword'))) - set_rule(world.get_entrance('Deku Tree Basement Path'), lambda state: state.has('Slingshot')) set_rule(world.get_location('Skull Kid'), lambda state: state.can_play('Sarias Song')) set_rule(world.get_location('Ocarina Memory Game'), lambda state: (not world.logic_no_memory_game) and state.has_ocarina()) set_rule(world.get_location('Target in Woods'), lambda state: state.has('Slingshot')) @@ -85,19 +98,6 @@ def global_rules(world): set_rule(world.get_entrance('Composer Grave'), lambda state: state.can_play('Zeldas Lullaby')) set_rule(world.get_location('Composer Grave Chest'), lambda state: state.has_fire_source()) set_rule(world.get_entrance('Bottom of the Well'), lambda state: state.can_play('Song of Storms')) - set_rule(world.get_location('Bottom of the Well Front Left Hidden Wall'), lambda state: state.can_see_with_lens()) - set_rule(world.get_location('Bottom of the Well Front Center Bombable'), lambda state: state.has_explosives()) - set_rule(world.get_location('Bottom of the Well Right Bottom Hidden Wall'), lambda state: state.can_see_with_lens()) - set_rule(world.get_location('Bottom of the Well Center Large Chest'), lambda state: state.can_see_with_lens()) - set_rule(world.get_location('Bottom of the Well Center Small Chest'), lambda state: state.can_see_with_lens()) - set_rule(world.get_location('Bottom of the Well Back Left Bombable'), lambda state: state.has_explosives()) - set_rule(world.get_location('Bottom of the Well Defeat Boss'), lambda state: state.can_play('Zeldas Lullaby') and (state.has('Kokiri Sword') or world.logic_child_deadhand)) #Sword not strictly necessary but frankly being forced to do this with sticks isn't fair - set_rule(world.get_location('Bottom of the Well Invisible Chest'), lambda state: state.can_play('Zeldas Lullaby') and state.can_see_with_lens()) - set_rule(world.get_location('Bottom of the Well Underwater Front Chest'), lambda state: state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('Bottom of the Well Underwater Left Chest'), lambda state: state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('Bottom of the Well Basement Chest'), lambda state: state.has_explosives() or (state.has('Small Key (Bottom of the Well)', 3) and state.has('Progressive Strength Upgrade') and state.can_see_with_lens())) - set_rule(world.get_location('Bottom of the Well Locked Pits'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.can_see_with_lens()) #These pits are really unfair. - set_rule(world.get_location('Bottom of the Well Behind Right Grate'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.can_see_with_lens()) set_rule(world.get_entrance('Death Mountain Entrance'), lambda state: state.has('Zeldas Letter') or state.is_adult()) set_rule(world.get_location('Death Mountain Bombable Chest'), lambda state: state.can_blast_or_smash()) set_rule(world.get_location('Biggoron'), lambda state: (not world.logic_no_trade_biggoron) and (state.can_blast_or_smash() and state.is_adult() and state.can_finish_adult_trades() and state.guarantee_hint())) @@ -109,12 +109,6 @@ def global_rules(world): set_rule(world.get_entrance('Darunias Chamber'), lambda state: state.can_play('Zeldas Lullaby')) set_rule(world.get_location('Darunias Joy'), lambda state: state.can_play('Sarias Song')) set_rule(world.get_entrance('Goron City from Woods'), lambda state: state.can_blast_or_smash() and (world.open_forest or (state.has('Slingshot') and state.has('Kokiri Sword')))) - set_rule(world.get_entrance('Dodongos Cavern Rocks'), lambda state: state.can_blast_or_smash() or state.has('Progressive Strength Upgrade') or state.is_adult()) - set_rule(world.get_entrance('Dodongos Cavern Lobby'), lambda state: state.can_blast_or_smash() or state.has('Progressive Strength Upgrade')) - set_rule(world.get_entrance('Dodongos Cavern Left Door'), lambda state: state.has_explosives() or state.has('Progressive Strength Upgrade') or (state.has('Dins Fire') and state.has('Magic Meter')) or (state.has('Bow') and state.is_adult())) - set_rule(world.get_entrance('Dodongos Cavern Slingshot Target'), lambda state: state.has('Slingshot') or ((state.has('Bow') or state.has('Hover Boots') or state.has('Progressive Hookshot', 2) or world.logic_dc_jump) and state.is_adult())) - set_rule(world.get_location('Dodongos Cavern End of Bridge Chest'), lambda state: state.has_explosives() or ((state.has('Bow') or state.has('Hover Boots') or state.has('Progressive Hookshot', 2) or world.logic_dc_jump) and state.is_adult() and state.has('Hammer'))) - set_rule(world.get_entrance('Dodongos Cavern Bomb Drop'), lambda state: state.has_explosives()) set_rule(world.get_location('King Dodongo'), lambda state: state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) set_rule(world.get_location('King Dodongo Heart'), lambda state: state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) set_rule(world.get_location('Song from Saria'), lambda state: state.has('Zeldas Letter')) @@ -152,13 +146,6 @@ def global_rules(world): set_rule(world.get_entrance('Jabu Jabus Belly'), lambda state: state.has_bottle()) set_rule(world.get_entrance('Zoras Fountain Fairy'), lambda state: state.has_explosives()) set_rule(world.get_location('Zoras Fountain Fairy Reward'), lambda state: state.can_play('Zeldas Lullaby')) - set_rule(world.get_entrance('Jabu Jabus Belly Ceiling Switch'), lambda state: state.has('Slingshot') or state.has_explosives() or state.has('Boomerang')) - set_rule(world.get_entrance('Jabu Jabus Belly Tentacles'), lambda state: state.has('Boomerang')) - set_rule(world.get_location('Ice Cavern Map Chest'), lambda state: state.has_bottle()) - set_rule(world.get_location('Ice Cavern Compass Chest'), lambda state: state.has_bottle()) - set_rule(world.get_location('Ice Cavern Freestanding PoH'), lambda state: state.has_bottle()) - set_rule(world.get_location('Ice Cavern Iron Boots Chest'), lambda state: state.has_bottle()) - set_rule(world.get_location('Sheik in Ice Cavern'), lambda state: state.has_bottle() and state.is_adult()) set_rule(world.get_location('Ocarina of Time'), lambda state: state.has('Kokiri Emerald') and state.has('Goron Ruby') and state.has('Zora Sapphire') and state.guarantee_hint()) set_rule(world.get_location('Song from Ocarina of Time'), lambda state: state.has('Kokiri Emerald') and state.has('Goron Ruby') and state.has('Zora Sapphire') and state.guarantee_hint()) set_rule(world.get_entrance('Door of Time'), lambda state: state.can_play('Song of Time') or world.open_door_of_time) @@ -169,21 +156,6 @@ def global_rules(world): set_rule(world.get_entrance('Child Forest Warp Pad'), lambda state: state.can_play('Minuet of Forest')) set_rule(world.get_entrance('Adult Meadow Access'), lambda state: state.can_play('Sarias Song') and state.is_adult()) set_rule(world.get_entrance('Forest Temple Entrance'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_entrance('Forest Temple Song of Time Block'), lambda state: state.can_play('Song of Time')) - set_rule(world.get_entrance('Forest Temple Lobby Eyeball Switch'), lambda state: state.has('Bow') and state.is_adult()) - set_rule(world.get_entrance('Forest Temple Lobby Locked Door'), lambda state: state.has('Small Key (Forest Temple)', 1)) - set_rule(world.get_entrance('Forest Temple Well Connection'), lambda state: ((state.has('Iron Boots') or state.has('Progressive Hookshot', 2)) and state.is_adult()) or state.has('Progressive Scale', 2)) #Longshot can grab some very high up vines to drain the well. - set_rule(world.get_entrance('Forest Temple Scarecrows Song'), lambda state: False) #For some reason you can't actually activate this from below. Cool game. - set_rule(world.get_entrance('Forest Temple Elevator'), lambda state: state.has('Bow') and state.is_adult() and state.has('Progressive Strength Upgrade') and state.has('Small Key (Forest Temple)', 3)) - set_rule(world.get_entrance('Forest Temple Outside Backdoor'), lambda state: state.has('Hover Boots') and state.is_adult()) - set_rule(world.get_entrance('Forest Temple Twisted Hall'), lambda state: state.has('Progressive Strength Upgrade') and state.has('Small Key (Forest Temple)', 3)) - set_rule(world.get_entrance('Forest Temple Straightened Hall'), lambda state: state.has('Progressive Strength Upgrade') and state.has('Small Key (Forest Temple)', 2) and state.has('Bow')) - set_rule(world.get_entrance('Forest Temple Drop to Falling Room'), lambda state: state.has('Small Key (Forest Temple)', 5) and (state.has('Bow') or (state.has('Dins Fire') and state.has('Magic Meter')))) - set_rule(world.get_location('Forest Temple Block Push Chest'), lambda state: state.has('Progressive Strength Upgrade') and state.has('Bow') and state.is_adult()) - set_rule(world.get_location('Forest Temple Red Poe Chest'), lambda state: state.has('Bow') and state.is_adult()) - set_rule(world.get_location('Forest Temple Blue Poe Chest'), lambda state: state.has('Bow') and state.is_adult()) - set_rule(world.get_location('Phantom Ganon'), lambda state: state.has('Boss Key (Forest Temple)')) - set_rule(world.get_location('Phantom Ganon Heart'), lambda state: state.has('Boss Key (Forest Temple)')) set_rule(world.get_entrance('Dampes Grave'), lambda state: state.is_adult()) set_rule(world.get_location('Dampe Race Freestanding PoH'), lambda state: not world.logic_no_second_dampe_race) set_rule(world.get_location('Graveyard Freestanding PoH'), lambda state: state.is_adult() and (state.has('Magic Bean') or state.has('Progressive Hookshot', 2))) @@ -205,21 +177,6 @@ def global_rules(world): set_rule(world.get_entrance('Crater Fairy'), lambda state: state.is_adult() and state.has('Hammer')) set_rule(world.get_location('DM Crater Volcano Freestanding PoH'), lambda state: state.is_adult() and ( (state.has('Magic Bean') and state.can_play('Bolero of Fire')) or (world.logic_crater_bean_hp_with_hovers and state.has('Hover Boots')) ) ) set_rule(world.get_entrance('Fire Temple Entrance'), lambda state: state.is_adult() and (world.logic_fewer_tunic_requirements or state.has_GoronTunic())) - set_rule(world.get_entrance('Fire Temple Early Climb'), lambda state: state.has_GoronTunic() and state.has('Small Key (Fire Temple)', 3) and state.has('Progressive Strength Upgrade') and (state.has_explosives() or ((state.has('Bow') or state.has('Progressive Hookshot')) and state.is_adult()))) - set_rule(world.get_entrance('Fire Temple Fire Maze Escape'), lambda state: state.has('Small Key (Fire Temple)', 7) or (state.has('Small Key (Fire Temple)', 6) and state.has('Hover Boots') and state.has('Hammer') and state.is_adult())) - set_rule(world.get_location('Fire Temple Fire Dancer Chest'), lambda state: state.is_adult() and state.has('Hammer')) - set_rule(world.get_location('Fire Temple Boss Key Chest'), lambda state: state.is_adult() and state.has('Hammer')) - set_rule(world.get_location('Fire Temple Big Lava Room Bombable Chest'), lambda state: state.has('Small Key (Fire Temple)', 1) and state.has_explosives()) - set_rule(world.get_location('Fire Temple Big Lava Room Open Chest'), lambda state: state.has('Small Key (Fire Temple)', 1)) - set_rule(world.get_location('Fire Temple Map Chest'), lambda state: state.has('Small Key (Fire Temple)', 5) or (state.has('Small Key (Fire Temple)', 4) and state.is_adult() and state.has('Bow'))) - set_rule(world.get_location('Fire Temple Boulder Maze Upper Chest'), lambda state: state.has('Small Key (Fire Temple)', 5)) - set_rule(world.get_location('Fire Temple Boulder Maze Bombable Pit'), lambda state: state.has('Small Key (Fire Temple)', 5) and state.has_explosives()) - set_rule(world.get_location('Fire Temple Scarecrow Chest'), lambda state: state.has_ocarina() and state.has('Small Key (Fire Temple)', 5) and state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('Fire Temple Compass Chest'), lambda state: state.has('Small Key (Fire Temple)', 6)) - set_rule(world.get_location('Fire Temple Highest Goron Chest'), lambda state: state.can_play('Song of Time') and state.has('Hammer') and state.is_adult()) - set_rule(world.get_location('Fire Temple Megaton Hammer Chest'), lambda state: state.has_explosives()) - set_rule(world.get_location('Volvagia'), lambda state: state.has_GoronTunic() and state.has('Hammer') and state.is_adult() and state.has('Boss Key (Fire Temple)') and (state.has('Hover Boots') or (state.can_reach('Fire Temple Upper') and (state.can_play('Song of Time') or state.has_explosives())))) - set_rule(world.get_location('Volvagia Heart'), lambda state: state.has_GoronTunic() and state.has('Hammer') and state.is_adult() and state.has('Boss Key (Fire Temple)') and (state.has('Hover Boots') or (state.can_reach('Fire Temple Upper') and (state.can_play('Song of Time') or state.has_explosives())))) set_rule(world.get_location('Sheik in Crater'), lambda state: state.is_adult()) set_rule(world.get_location('Link the Goron'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade') or state.has_explosives() or state.has('Bow'))) set_rule(world.get_entrance('Crater Access'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade') or state.has_explosives() or state.has('Bow'))) @@ -227,32 +184,9 @@ def global_rules(world): set_rule(world.get_location('King Zora Thawed'), lambda state: state.has_bottle() and (state.can_reach('Ice Cavern') or state.can_reach('Ganons Castle Water Trial') or state.has('Progressive Wallet', 2))) set_rule(world.get_location('Zoras Fountain Bottom Freestanding PoH'), lambda state: state.has('Iron Boots') and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic())) set_rule(world.get_entrance('Water Temple Entrance'), lambda state: state.is_adult() and state.has('Iron Boots') and state.has('Progressive Hookshot') and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic())) - set_rule(world.get_entrance('Water Temple Central Pillar'), lambda state: (state.has('Bow') or (state.has('Dins Fire') and state.has('Magic Meter')) or state.has('Small Key (Water Temple)', 5)) and state.can_play('Zeldas Lullaby')) - set_rule(world.get_entrance('Water Temple Upper Locked Door'), lambda state: state.has('Small Key (Water Temple)', 5) and (state.can_play('Zeldas Lullaby') or world.keysanity)) - set_rule(world.get_location('Water Temple Torches Chest'), lambda state: (state.has('Bow') or (state.has('Dins Fire') and state.has('Magic Meter'))) and state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('Water Temple Dragon Chest'), lambda state: (state.has('Progressive Strength Upgrade') and state.can_play('Zeldas Lullaby')) or (state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity) and state.can_play('Song of Time') and state.has('Bow'))) - set_rule(world.get_location('Water Temple Central Bow Target Chest'), lambda state: state.has('Bow') and state.has('Progressive Strength Upgrade') and state.can_play('Zeldas Lullaby') and (state.has('Hover Boots') or state.has('Progressive Hookshot', 2))) - set_always_allow(world.get_location('Water Temple Boss Key Chest'), lambda item, state: item.name == 'Small Key (Water Temple)') - set_rule(world.get_location('Water Temple Boss Key Chest'), lambda state: (state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity) and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and state.has('Progressive Hookshot', 2)) or item_name(state, 'Water Temple Boss Key Chest') == 'Small Key (Water Temple)') #If key for key, this lets the logic reduce the small key reqs for every other locked door. - set_rule(world.get_location('Morpha'), lambda state: state.has('Boss Key (Water Temple)') and state.has('Progressive Hookshot', 2)) - set_rule(world.get_location('Morpha Heart'), lambda state: state.has('Boss Key (Water Temple)') and state.has('Progressive Hookshot', 2)) - set_rule(world.get_location('Water Temple Cracked Wall Chest'), lambda state: state.has_explosives()) - set_rule(world.get_location('Water Temple Dark Link Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity)) - set_rule(world.get_location('Water Temple River Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and state.can_play('Song of Time') and state.has('Bow') and (state.can_play('Zeldas Lullaby') or world.keysanity)) - set_rule(world.get_location('Water Temple Central Pillar Chest'), lambda state: state.has_ZoraTunic()) set_rule(world.get_location('Sheik in Kakariko'), lambda state: state.is_adult() and state.has('Forest Medallion') and state.has('Fire Medallion') and state.has('Water Medallion')) set_rule(world.get_entrance('Graveyard Warp Pad'), lambda state: state.can_play('Nocturne of Shadow')) set_rule(world.get_entrance('Shadow Temple Entrance'), lambda state: state.has('Dins Fire') and state.has('Magic Meter') and state.can_see_with_lens() and state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot'))) - set_rule(world.get_entrance('Shadow Temple First Pit'), lambda state: state.has('Hover Boots')) - set_rule(world.get_entrance('Shadow Temple Bomb Wall'), lambda state: state.has_explosives() and state.has('Small Key (Shadow Temple)', 1)) - set_rule(world.get_entrance('Shadow Temple Hookshot Target'), lambda state: state.has('Progressive Hookshot') and state.has('Small Key (Shadow Temple)', 3)) - set_rule(world.get_entrance('Shadow Temple Boat'), lambda state: state.can_play('Zeldas Lullaby') and state.has('Small Key (Shadow Temple)', 4)) - set_rule(world.get_location('Shadow Temple Falling Spikes Upper Chest'), lambda state: state.has('Progressive Strength Upgrade')) - set_rule(world.get_location('Shadow Temple Falling Spikes Switch Chest'), lambda state: state.has('Progressive Strength Upgrade')) - set_rule(world.get_location('Shadow Temple Invisible Spikes Chest'), lambda state: state.has('Small Key (Shadow Temple)', 2)) - set_rule(world.get_location('Shadow Temple Freestanding Key'), lambda state: state.has('Small Key (Shadow Temple)', 2) and state.has('Progressive Hookshot')) - set_rule(world.get_location('Bongo Bongo'), lambda state: state.has('Small Key (Shadow Temple)', 5) and (state.has('Bow') or state.has('Progressive Hookshot', 2)) and state.has('Boss Key (Shadow Temple)')) - set_rule(world.get_location('Bongo Bongo Heart'), lambda state: state.has('Small Key (Shadow Temple)', 5) and (state.has('Bow') or state.has('Progressive Hookshot', 2)) and state.has('Boss Key (Shadow Temple)')) set_rule(world.get_entrance('Bridge Crossing'), lambda state: (state.has('Epona') or state.has('Progressive Hookshot', 2) or world.gerudo_fortress == 'open') and state.is_adult()) set_rule(world.get_location('Gerudo Valley Hammer Rocks Chest'), lambda state: state.has('Hammer') and state.is_adult()) set_rule(world.get_location('Gerudo Fortress North F2 Carpenter'), lambda state: (state.has('Bow') or state.has('Progressive Hookshot') or state.has('Hover Boots')) and state.is_adult()) @@ -269,72 +203,7 @@ def global_rules(world): set_rule(world.get_location('Horseback Archery 1000 Points'), lambda state: state.has('Carpenter Rescue') and state.has('Epona') and state.has('Bow') and state.is_adult()) set_rule(world.get_location('Horseback Archery 1500 Points'), lambda state: (not world.logic_no_1500_archery) and (state.has('Carpenter Rescue') and state.has('Epona') and state.has('Bow') and state.is_adult())) set_rule(world.get_location('Haunted Wasteland Structure Chest'), lambda state: state.has_fire_source()) - set_rule(world.get_entrance('Gerudo Training Ground Left Silver Rupees'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_entrance('Gerudo Training Ground Beamos'), lambda state: state.has_explosives()) - set_rule(world.get_entrance('Gerudo Training Grounds Right Locked Doors'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 9)) - set_rule(world.get_entrance('Gerudo Training Grounds Maze Ledge'), lambda state: state.can_play('Song of Time')) - set_rule(world.get_entrance('Gerudo Training Grounds Right Hookshot Target'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_entrance('Gerudo Training Grounds Hammer Target'), lambda state: state.has('Hammer') and state.has('Bow') and state.is_adult()) - set_rule(world.get_entrance('Gerudo Training Grounds Hidden Hookshot Target'), lambda state: state.has('Progressive Hookshot') and state.can_see_with_lens() and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Lobby Left Chest'), lambda state: state.has('Bow') and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Lobby Right Chest'), lambda state: state.has('Bow') and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Beamos Chest'), lambda state: state.has_explosives()) - set_rule(world.get_location('Gerudo Training Grounds Hidden Ceiling Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 3) and state.can_see_with_lens()) - set_rule(world.get_location('Gerudo Training Grounds Maze Path First Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 4)) - set_rule(world.get_location('Gerudo Training Grounds Maze Path Second Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 6)) - set_rule(world.get_location('Gerudo Training Grounds Maze Path Third Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 7)) - set_rule(world.get_location('Gerudo Training Grounds Maze Path Final Chest'), lambda state: (state.has('Small Key (Gerudo Training Grounds)', 9)) or (item_name(state, 'Gerudo Training Grounds Maze Path Final Chest') == 'Small Key (Gerudo Training Grounds)' and state.has('Small Key (Gerudo Training Grounds)', 8))) #Allow key for key - set_always_allow(world.get_location('Gerudo Training Grounds Maze Path Final Chest'), lambda item, state: item.name == 'Small Key (Gerudo Training Grounds)') - set_rule(world.get_location('Gerudo Training Grounds Underwater Silver Rupee Chest'), lambda state: state.has('Progressive Hookshot') and state.can_play('Song of Time') and state.has('Iron Boots') and state.is_adult() and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic())) - set_rule(world.get_location('Gerudo Training Grounds Hammer Room Switch Chest'), lambda state: state.has('Hammer') and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Eye Statue Chest'), lambda state: state.has('Bow') and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Near Scarecrow Chest'), lambda state: state.has('Bow') and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Heavy Block First Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.can_see_with_lens() and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Heavy Block Second Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.can_see_with_lens() and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Heavy Block Third Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.can_see_with_lens() and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Heavy Block Fourth Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.can_see_with_lens() and state.is_adult()) - set_rule(world.get_entrance('Spirit Temple Crawl Passage'), lambda state: state.can_play('Requiem of Spirit')) - set_rule(world.get_entrance('Spirit Temple Silver Block'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.is_adult()) - set_rule(world.get_entrance('Child Spirit Temple Passthrough'), lambda state: state.has_explosives() and state.has('Small Key (Spirit Temple)', 1)) - set_rule(world.get_entrance('Adult Spirit Temple Passthrough'), lambda state: state.has('Small Key (Spirit Temple)', 1)) - set_rule(world.get_entrance('Spirit Temple Central Locked Door'), lambda state: state.has('Small Key (Spirit Temple)', 4) and state.has('Progressive Strength Upgrade', 2) and state.is_adult()) - set_rule(world.get_entrance('Spirit Temple Final Locked Door'), lambda state: state.has('Small Key (Spirit Temple)', 5) and (state.has('Progressive Hookshot') or state.has('Bow') or state.has_explosives())) - set_rule(world.get_location('Spirit Temple Child Left Chest'), lambda state: state.has('Boomerang') or state.has('Slingshot') or state.has_bombchus()) - set_rule(world.get_location('Spirit Temple Child Right Chest'), lambda state: state.has('Boomerang') or state.has('Slingshot') or state.has_bombchus()) - set_rule(world.get_location('Spirit Temple Compass Chest'), lambda state: state.has('Progressive Hookshot') and state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('Spirit Temple Early Adult Right Chest'), lambda state: state.has('Bow') or state.has('Progressive Hookshot') or state.has_bombchus()) #requires a very specific Bombchu use, Hover Boots can be skipped by jumping on top of the rolling rock. - set_rule(world.get_location('Spirit Temple First Mirror Right Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3)) - set_rule(world.get_location('Spirit Temple First Mirror Left Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3)) - set_rule(world.get_location('Spirit Temple Map Chest'), lambda state: (state.has('Small Key (Spirit Temple)', 5) and state.can_play('Requiem of Spirit')) or (state.has('Magic Meter') and (state.has('Dins Fire') or (state.has('Fire Arrows') and state.has('Bow') and state.has('Progressive Strength Upgrade', 2) and state.has('Small Key (Spirit Temple)', 3) and state.is_adult())))) - set_rule(world.get_location('Spirit Temple Child Climb East Chest'), lambda state: state.has_explosives() or ((state.has('Boomerang') or state.has('Slingshot')) and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 5) and state.can_play('Requiem of Spirit') and (state.has('Boomerang') or state.has('Slingshot')))) - set_rule(world.get_location('Spirit Temple Child Climb North Chest'), lambda state: state.has_explosives() or ((state.has('Boomerang') or state.has('Slingshot')) and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 5) and state.can_play('Requiem of Spirit') and (state.has('Boomerang') or state.has('Slingshot')))) - set_rule(world.get_location('Spirit Temple Sun Block Room Chest'), lambda state: (state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit')) or (state.has_fire_source() and (state.has_explosives() or state.has('Small Key (Spirit Temple)', 2)))) - set_rule(world.get_location('Spirit Temple Statue Hand Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('Spirit Temple NE Main Room Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.can_play('Zeldas Lullaby') and (state.has('Progressive Hookshot') or state.has("Hover Boots"))) - set_rule(world.get_location('Mirror Shield Chest'), lambda state: state.has('Small Key (Spirit Temple)', 4) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.has_explosives()) - set_rule(world.get_location('Silver Gauntlets Chest'), lambda state: (state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Hookshot', 2) and state.has_explosives()) or state.has('Small Key (Spirit Temple)', 5)) - set_rule(world.get_location('Spirit Temple Near Four Armos Chest'), lambda state: state.has('Mirror Shield') and state.has_explosives()) - set_rule(world.get_location('Spirit Temple Hallway Left Invisible Chest'), lambda state: state.can_see_with_lens() and state.has_explosives()) - set_rule(world.get_location('Spirit Temple Hallway Right Invisible Chest'), lambda state: state.can_see_with_lens() and state.has_explosives()) - set_rule(world.get_location('Spirit Temple Boss Key Chest'), lambda state: state.can_play('Zeldas Lullaby') and state.has('Bow') and state.has('Progressive Hookshot') and state.can_blast_or_smash()) - set_rule(world.get_location('Spirit Temple Topmost Chest'), lambda state: state.has('Mirror Shield')) - set_rule(world.get_location('Twinrova'), lambda state: state.has('Mirror Shield') and state.has_explosives() and state.has('Progressive Hookshot') and state.has('Boss Key (Spirit Temple)')) - set_rule(world.get_location('Twinrova Heart'), lambda state: state.has('Mirror Shield') and state.has_explosives() and state.has('Progressive Hookshot') and state.has('Boss Key (Spirit Temple)')) set_rule(world.get_location('Zelda'), lambda state: state.has('Shadow Medallion') and state.has('Spirit Medallion') and state.is_adult()) - set_rule(world.get_entrance('Ganons Castle Light Trial'), lambda state: state.has('Progressive Strength Upgrade', 3)) - set_rule(world.get_entrance('Ganons Castle Tower'), lambda state: (world.skipped_trials['Forest'] or state.has('Forest Trial Clear')) and (world.skipped_trials['Fire'] or state.has('Fire Trial Clear')) and (world.skipped_trials['Water'] or state.has('Water Trial Clear')) and (world.skipped_trials['Shadow'] or state.has('Shadow Trial Clear')) and (world.skipped_trials['Spirit'] or state.has('Spirit Trial Clear')) and (world.skipped_trials['Light'] or state.has('Light Trial Clear'))) - set_rule(world.get_location('Ganons Castle Forest Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and (state.has('Fire Arrows') or state.has('Dins Fire'))) - set_rule(world.get_location('Ganons Castle Fire Trial Clear'), lambda state: state.has_GoronTunic() and state.has('Progressive Strength Upgrade', 3) and state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and state.has('Progressive Hookshot', 2)) - set_rule(world.get_location('Ganons Castle Water Trial Clear'), lambda state: state.has_bottle() and state.has('Hammer') and state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows')) - set_rule(world.get_location('Ganons Castle Shadow Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and state.has('Hammer') and ((state.has('Fire Arrows') and (state.has('Hover Boots') or state.can_see_with_lens())) or (state.has('Progressive Hookshot', 2) and (state.has('Hover Boots') or (state.has('Dins Fire') and state.can_see_with_lens()))))) - set_rule(world.get_location('Ganons Castle Shadow Trial First Chest'), lambda state: (state.has('Magic Meter') and state.has('Bow') and state.has('Fire Arrows')) or state.has('Progressive Hookshot') or state.has('Hover Boots') or state.can_play('Song of Time')) - set_rule(world.get_location('Ganons Castle Shadow Trial Second Chest'), lambda state: (state.has('Magic Meter') and state.has('Bow') and state.has('Fire Arrows')) or (state.has('Progressive Hookshot', 2) and (state.has('Hover Boots') or (state.has('Dins Fire') and state.has('Magic Meter'))))) - set_rule(world.get_location('Ganons Castle Spirit Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and state.has('Mirror Shield') and state.has_bombchus() and state.has('Progressive Hookshot')) - set_rule(world.get_location('Ganons Castle Spirit Trial First Chest'), lambda state: state.has('Progressive Hookshot')) - set_rule(world.get_location('Ganons Castle Spirit Trial Second Chest'), lambda state: state.has('Progressive Hookshot') and state.has_bombchus() and state.can_see_with_lens()) - set_rule(world.get_location('Ganons Castle Light Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Progressive Hookshot') and state.has('Light Arrows') and state.has('Small Key (Ganons Castle)', 2)) - set_rule(world.get_location('Ganons Castle Light Trail Invisible Enemies Chest'), lambda state: state.can_see_with_lens()) - set_rule(world.get_location('Ganons Castle Light Trial Lullaby Chest'), lambda state: state.can_play('Zeldas Lullaby') and state.has('Small Key (Ganons Castle)', 1)) set_rule(world.get_location('Ganon'), lambda state: (state.has('Boss Key (Ganons Castle)') or world.unlocked_ganondorf) and (state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows')) ) set_rule(world.get_entrance('Kokiri Forest Storms Grotto'), lambda state: state.can_play('Song of Storms')) set_rule(world.get_entrance('Lost Woods Generic Grotto'), lambda state: state.has('Bomb Bag') or (state.can_blast_or_smash() and (world.open_forest or (state.has('Slingshot') and state.has('Kokiri Sword'))))) @@ -362,7 +231,6 @@ def global_rules(world): set_rule(world.get_location('GS Lost Woods Bean Patch Near Stage'), lambda state: state.has_bottle()) set_rule(world.get_location('GS Lost Woods Above Stage'), lambda state: state.has('Magic Bean') and state.nighttime()) set_rule(world.get_location('GS Sacred Forest Meadow'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.nighttime()) - set_rule(world.get_location('GS Deku Tree Basement Back Room'), lambda state: state.has('Boomerang') and (state.has('Bomb Bag') or (state.has_bombchus() and (world.open_forest or (state.has('Slingshot') and state.has('Kokiri Sword')))))) set_rule(world.get_location('GS Hyrule Field near Kakariko'), lambda state: (state.has('Boomerang') and state.has_explosives()) or (state.has('Progressive Hookshot') and state.is_adult())) set_rule(world.get_location('GS Hyrule Field Near Gerudo Valley'), lambda state: (state.has('Hammer') and state.has_fire_source() and state.has('Progressive Hookshot') and state.is_adult()) or (state.has('Boomerang') and state.has_explosives() and state.has('Dins Fire') and state.has('Magic Meter'))) set_rule(world.get_location('GS Hyrule Castle Grotto'), lambda state: state.has('Boomerang') and state.has_explosives()) @@ -398,30 +266,6 @@ def global_rules(world): set_rule(world.get_location('GS Lake Hylia Small Island'), lambda state: state.nighttime()) set_rule(world.get_location('GS Lake Hylia Giant Tree'), lambda state: state.is_adult() and state.has('Progressive Hookshot', 2)) set_rule(world.get_location('GS Lab Underwater Crate'), lambda state: state.is_adult() and state.has('Iron Boots') and state.has('Progressive Hookshot')) - set_rule(world.get_location('GS Forest Temple First Room'), lambda state: (state.has('Progressive Hookshot') or state.has('Bow') or (state.has('Dins Fire') and state.has('Magic Meter'))) and state.is_adult()) - set_rule(world.get_location('GS Forest Temple Lobby'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('GS Forest Temple Outdoor East'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('GS Forest Temple Outdoor West'), lambda state: (state.has('Progressive Hookshot', 2) or (state.has('Progressive Hookshot') and state.can_reach('Forest Temple Outside Upper Ledge'))) and state.is_adult()) - set_rule(world.get_location('GS Forest Temple Basement'), lambda state: state.has('Progressive Hookshot')) - set_rule(world.get_location('GS Fire Temple Song of Time Room'), lambda state: state.has('Small Key (Fire Temple)', 1) and state.can_play('Song of Time')) - set_rule(world.get_location('GS Fire Temple Unmarked Bomb Wall'), lambda state: state.has('Small Key (Fire Temple)', 3) and state.has_explosives()) - set_rule(world.get_location('GS Fire Temple East Tower Climb'), lambda state: state.has_ocarina() and state.has('Small Key (Fire Temple)', 5) and state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('GS Fire Temple East Tower Top'), lambda state: state.has_ocarina() and state.has('Small Key (Fire Temple)', 5) and state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('GS Fire Temple Basement'), lambda state: state.has('Hammer') and state.is_adult()) - set_rule(world.get_location('GS Ice Cavern Spinning Scythe Room'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('GS Ice Cavern Heart Piece Room'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.has_bottle()) - set_rule(world.get_location('GS Ice Cavern Push Block Room'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.has_bottle()) - set_rule(world.get_location('GS Water Temple South Basement'), lambda state: state.has_explosives() and state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('GS Water Temple Serpent River'), lambda state: state.can_play('Song of Time') and state.has('Small Key (Water Temple)', 6)) - set_rule(world.get_location('GS Water Temple Falling Platform Room'), lambda state: state.has('Progressive Hookshot', 2)) - set_rule(world.get_location('GS Water Temple Central Room'), lambda state: state.has('Progressive Hookshot', 2) or (state.has('Farores Wind') and state.has('Magic'))) - set_rule(world.get_location('GS Water Temple Near Boss Key Chest'), lambda state: state.has('Progressive Hookshot', 2) and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and state.has('Small Key (Water Temple)', 6)) #5 keys would be better but it wouldn't be compatible with the key for key scenarios, 6 will be identical pre-keysanity. - set_rule(world.get_location('GS Well West Inner Room'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang') and state.can_see_with_lens()) - set_rule(world.get_location('GS Well East Inner Room'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang') and state.can_see_with_lens()) - set_rule(world.get_location('GS Well Like Like Cage'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang') and state.can_see_with_lens()) - set_rule(world.get_location('GS Shadow Temple Like Like Room'), lambda state: state.has('Progressive Hookshot')) - set_rule(world.get_location('GS Shadow Temple Crusher Room'), lambda state: state.has('Progressive Hookshot')) - set_rule(world.get_location('GS Shadow Temple Near Ship'), lambda state: state.has('Progressive Hookshot', 2) and state.has('Small Key (Shadow Temple)', 4)) set_rule(world.get_location('GS Gerudo Valley Small Bridge'), lambda state: state.has('Boomerang') and state.nighttime()) set_rule(world.get_location('GS Gerudo Valley Bean Patch'), lambda state: state.has_bottle()) set_rule(world.get_location('GS Gerudo Valley Behind Tent'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.nighttime()) @@ -432,10 +276,6 @@ def global_rules(world): set_rule(world.get_location('GS Desert Colossus Bean Patch'), lambda state: state.has_bottle() and state.can_play('Requiem of Spirit')) set_rule(world.get_location('GS Desert Colossus Tree'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.nighttime()) set_rule(world.get_location('GS Desert Colossus Hill'), lambda state: ((state.has('Magic Bean') and state.can_play('Requiem of Spirit')) or state.has('Progressive Hookshot', 2)) and state.is_adult() and state.nighttime()) - set_rule(world.get_location('GS Spirit Temple Metal Fence'), lambda state: state.has('Boomerang') or state.has('Slingshot') or state.has_bombchus()) - set_rule(world.get_location('GS Spirit Temple Hall to West Iron Knuckle'), lambda state: (state.has('Boomerang') and state.has('Progressive Hookshot')) or (state.has('Boomerang') and state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit')) or (state.has('Progressive Hookshot') and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.has('Small Key (Spirit Temple)', 3))) - set_rule(world.get_location('GS Spirit Temple Boulder Room'), lambda state: state.can_play('Song of Time') and (state.has('Bow') or state.has('Progressive Hookshot') or state.has_bombchus())) - set_rule(world.get_location('GS Spirit Temple Lobby'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.has('Small Key (Spirit Temple)', 3) and state.is_adult() and (state.has('Progressive Hookshot', 2) or (state.has('Progressive Hookshot') and state.has_ocarina()) or state.has('Hover Boots'))) for location in world.get_locations(): if location.type != 'Chest': @@ -448,6 +288,240 @@ def global_rules(world): forbid_item(world.get_location('Bombchu Bowling Bomb Bag'), 'Biggoron Sword') forbid_item(world.get_location('Bombchu Bowling Piece of Heart'), 'Biggoron Sword') +def dung_rules_dt0(world): + # Deku Tree Vanilla + set_rule(world.get_entrance('Deku Tree Basement Path'), lambda state: state.has('Slingshot')) + + # GS + set_rule(world.get_location('GS Deku Tree Basement Back Room'), lambda state: state.has('Boomerang') and (state.has('Bomb Bag') or (state.has_bombchus() and (world.open_forest or (state.has('Slingshot') and state.has('Kokiri Sword')))))) + +def dung_rules_dc0(world): + # Dodongo's Cavern Vanilla + set_rule(world.get_entrance('Dodongos Cavern Rocks'), lambda state: state.can_blast_or_smash() or state.has('Progressive Strength Upgrade') or state.is_adult()) + set_rule(world.get_entrance('Dodongos Cavern Lobby'), lambda state: state.can_blast_or_smash() or state.has('Progressive Strength Upgrade')) + set_rule(world.get_entrance('Dodongos Cavern Left Door'), lambda state: state.has_explosives() or state.has('Progressive Strength Upgrade') or (state.has('Dins Fire') and state.has('Magic Meter')) or (state.has('Bow') and state.is_adult())) + set_rule(world.get_entrance('Dodongos Cavern Slingshot Target'), lambda state: state.has('Slingshot') or ((state.has('Bow') or state.has('Hover Boots') or state.has('Progressive Hookshot', 2) or world.logic_dc_jump) and state.is_adult())) + set_rule(world.get_location('Dodongos Cavern End of Bridge Chest'), lambda state: state.has_explosives() or ((state.has('Bow') or state.has('Hover Boots') or state.has('Progressive Hookshot', 2) or world.logic_dc_jump) and state.is_adult() and state.has('Hammer'))) + set_rule(world.get_entrance('Dodongos Cavern Bomb Drop'), lambda state: state.has_explosives()) + +def dung_rules_jb0(world): + set_rule(world.get_entrance('Jabu Jabus Belly Ceiling Switch'), lambda state: state.has('Slingshot') or state.has_explosives() or state.has('Boomerang')) + set_rule(world.get_entrance('Jabu Jabus Belly Tentacles'), lambda state: state.has('Boomerang')) + +def dung_rules_fot0(world): + # Forest Temple Vanilla + set_rule(world.get_entrance('Forest Temple Song of Time Block'), lambda state: state.can_play('Song of Time')) + set_rule(world.get_entrance('Forest Temple Lobby Eyeball Switch'), lambda state: state.has('Bow') and state.is_adult()) + set_rule(world.get_entrance('Forest Temple Lobby Locked Door'), lambda state: state.has('Small Key (Forest Temple)', 1)) + set_rule(world.get_entrance('Forest Temple Well Connection'), lambda state: ((state.has('Iron Boots') or state.has('Progressive Hookshot', 2)) and state.is_adult()) or state.has('Progressive Scale', 2)) #Longshot can grab some very high up vines to drain the well. + set_rule(world.get_entrance('Forest Temple Scarecrows Song'), lambda state: False) #For some reason you can't actually activate this from below. Cool game. + set_rule(world.get_entrance('Forest Temple Elevator'), lambda state: state.has('Bow') and state.is_adult() and state.has('Progressive Strength Upgrade') and state.has('Small Key (Forest Temple)', 3)) + set_rule(world.get_entrance('Forest Temple Outside Backdoor'), lambda state: state.has('Hover Boots') and state.is_adult()) + set_rule(world.get_entrance('Forest Temple Twisted Hall'), lambda state: state.has('Progressive Strength Upgrade') and state.has('Small Key (Forest Temple)', 3)) + set_rule(world.get_entrance('Forest Temple Straightened Hall'), lambda state: state.has('Progressive Strength Upgrade') and state.has('Small Key (Forest Temple)', 2) and state.has('Bow')) + set_rule(world.get_entrance('Forest Temple Drop to Falling Room'), lambda state: state.has('Small Key (Forest Temple)', 5) and (state.has('Bow') or (state.has('Dins Fire') and state.has('Magic Meter')))) + set_rule(world.get_location('Forest Temple Block Push Chest'), lambda state: state.has('Progressive Strength Upgrade') and state.has('Bow') and state.is_adult()) + set_rule(world.get_location('Forest Temple Red Poe Chest'), lambda state: state.has('Bow') and state.is_adult()) + set_rule(world.get_location('Forest Temple Blue Poe Chest'), lambda state: state.has('Bow') and state.is_adult()) + + # Boss + set_rule(world.get_location('Phantom Ganon'), lambda state: state.has('Boss Key (Forest Temple)')) + set_rule(world.get_location('Phantom Ganon Heart'), lambda state: state.has('Boss Key (Forest Temple)')) + + # GS + set_rule(world.get_location('GS Forest Temple First Room'), lambda state: (state.has('Progressive Hookshot') or state.has('Bow') or (state.has('Dins Fire') and state.has('Magic Meter'))) and state.is_adult()) + set_rule(world.get_location('GS Forest Temple Lobby'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) + set_rule(world.get_location('GS Forest Temple Outdoor East'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) + set_rule(world.get_location('GS Forest Temple Outdoor West'), lambda state: (state.has('Progressive Hookshot', 2) or (state.has('Progressive Hookshot') and state.can_reach('Forest Temple Outside Upper Ledge'))) and state.is_adult()) + set_rule(world.get_location('GS Forest Temple Basement'), lambda state: state.has('Progressive Hookshot')) + +def dung_rules_fit0(world): + # Fire Temple Vanilla + set_rule(world.get_entrance('Fire Temple Early Climb'), lambda state: state.has_GoronTunic() and state.has('Small Key (Fire Temple)', 3) and state.has('Progressive Strength Upgrade') and (state.has_explosives() or ((state.has('Bow') or state.has('Progressive Hookshot')) and state.is_adult()))) + set_rule(world.get_entrance('Fire Temple Fire Maze Escape'), lambda state: state.has('Small Key (Fire Temple)', 7) or (state.has('Small Key (Fire Temple)', 6) and state.has('Hover Boots') and state.has('Hammer') and state.is_adult())) + set_rule(world.get_location('Fire Temple Fire Dancer Chest'), lambda state: state.is_adult() and state.has('Hammer')) + set_rule(world.get_location('Fire Temple Boss Key Chest'), lambda state: state.is_adult() and state.has('Hammer')) + set_rule(world.get_location('Fire Temple Big Lava Room Bombable Chest'), lambda state: state.has('Small Key (Fire Temple)', 1) and state.has_explosives()) + set_rule(world.get_location('Fire Temple Big Lava Room Open Chest'), lambda state: state.has('Small Key (Fire Temple)', 1)) + set_rule(world.get_location('Fire Temple Map Chest'), lambda state: state.has('Small Key (Fire Temple)', 5) or (state.has('Small Key (Fire Temple)', 4) and state.is_adult() and state.has('Bow'))) + set_rule(world.get_location('Fire Temple Boulder Maze Upper Chest'), lambda state: state.has('Small Key (Fire Temple)', 5)) + set_rule(world.get_location('Fire Temple Boulder Maze Bombable Pit'), lambda state: state.has('Small Key (Fire Temple)', 5) and state.has_explosives()) + set_rule(world.get_location('Fire Temple Scarecrow Chest'), lambda state: state.has_ocarina() and state.has('Small Key (Fire Temple)', 5) and state.has('Progressive Hookshot') and state.is_adult()) + set_rule(world.get_location('Fire Temple Compass Chest'), lambda state: state.has('Small Key (Fire Temple)', 6)) + set_rule(world.get_location('Fire Temple Highest Goron Chest'), lambda state: state.can_play('Song of Time') and state.has('Hammer') and state.is_adult()) + set_rule(world.get_location('Fire Temple Megaton Hammer Chest'), lambda state: state.has_explosives()) + + #boss + set_rule(world.get_location('Volvagia'), lambda state: state.has_GoronTunic() and state.has('Hammer') and state.is_adult() and state.has('Boss Key (Fire Temple)') and (state.has('Hover Boots') or (state.can_reach('Fire Temple Upper') and (state.can_play('Song of Time') or state.has_explosives())))) + set_rule(world.get_location('Volvagia Heart'), lambda state: state.has_GoronTunic() and state.has('Hammer') and state.is_adult() and state.has('Boss Key (Fire Temple)') and (state.has('Hover Boots') or (state.can_reach('Fire Temple Upper') and (state.can_play('Song of Time') or state.has_explosives())))) + + # GS + set_rule(world.get_location('GS Fire Temple Song of Time Room'), lambda state: state.has('Small Key (Fire Temple)', 1) and state.can_play('Song of Time')) + set_rule(world.get_location('GS Fire Temple Unmarked Bomb Wall'), lambda state: state.has('Small Key (Fire Temple)', 3) and state.has_explosives()) + set_rule(world.get_location('GS Fire Temple East Tower Climb'), lambda state: state.has_ocarina() and state.has('Small Key (Fire Temple)', 5) and state.has('Progressive Hookshot') and state.is_adult()) + set_rule(world.get_location('GS Fire Temple East Tower Top'), lambda state: state.has_ocarina() and state.has('Small Key (Fire Temple)', 5) and state.has('Progressive Hookshot') and state.is_adult()) + set_rule(world.get_location('GS Fire Temple Basement'), lambda state: state.has('Hammer') and state.is_adult()) + +def dung_rules_wt0(world): + # Water Temple vanilla + set_rule(world.get_entrance('Water Temple Central Pillar'), lambda state: (state.has('Bow') or (state.has('Dins Fire') and state.has('Magic Meter')) or state.has('Small Key (Water Temple)', 5)) and state.can_play('Zeldas Lullaby')) + set_rule(world.get_entrance('Water Temple Upper Locked Door'), lambda state: state.has('Small Key (Water Temple)', 5) and (state.can_play('Zeldas Lullaby') or world.keysanity)) + set_rule(world.get_location('Water Temple Torches Chest'), lambda state: (state.has('Bow') or (state.has('Dins Fire') and state.has('Magic Meter'))) and state.can_play('Zeldas Lullaby')) + set_rule(world.get_location('Water Temple Dragon Chest'), lambda state: (state.has('Progressive Strength Upgrade') and state.can_play('Zeldas Lullaby')) or (state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity) and state.can_play('Song of Time') and state.has('Bow'))) + set_rule(world.get_location('Water Temple Central Bow Target Chest'), lambda state: state.has('Bow') and state.has('Progressive Strength Upgrade') and state.can_play('Zeldas Lullaby') and (state.has('Hover Boots') or state.has('Progressive Hookshot', 2))) + set_always_allow(world.get_location('Water Temple Boss Key Chest'), lambda item, state: item.name == 'Small Key (Water Temple)') + set_rule(world.get_location('Water Temple Boss Key Chest'), lambda state: (state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity) and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and state.has('Progressive Hookshot', 2)) or item_name(state, 'Water Temple Boss Key Chest') == 'Small Key (Water Temple)') #If key for key, this lets the logic reduce the small key reqs for every other locked door. + set_rule(world.get_location('Water Temple Cracked Wall Chest'), lambda state: state.has_explosives()) + set_rule(world.get_location('Water Temple Dark Link Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity)) + set_rule(world.get_location('Water Temple River Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and state.can_play('Song of Time') and state.has('Bow') and (state.can_play('Zeldas Lullaby') or world.keysanity)) + set_rule(world.get_location('Water Temple Central Pillar Chest'), lambda state: state.has_ZoraTunic()) + + # boss rules + set_rule(world.get_location('Morpha'), lambda state: state.has('Boss Key (Water Temple)') and state.has('Progressive Hookshot', 2)) + set_rule(world.get_location('Morpha Heart'), lambda state: state.has('Boss Key (Water Temple)') and state.has('Progressive Hookshot', 2)) + + # GS + set_rule(world.get_location('GS Water Temple South Basement'), lambda state: state.has_explosives() and state.can_play('Zeldas Lullaby')) + set_rule(world.get_location('GS Water Temple Serpent River'), lambda state: state.can_play('Song of Time') and state.has('Small Key (Water Temple)', 6)) + set_rule(world.get_location('GS Water Temple Falling Platform Room'), lambda state: state.has('Progressive Hookshot', 2)) + set_rule(world.get_location('GS Water Temple Central Room'), lambda state: state.has('Progressive Hookshot', 2) or (state.has('Farores Wind') and state.has('Magic'))) + #5 keys would be better but it wouldn't be compatible with the key for key scenarios, 6 will be identical pre-keysanity. + set_rule(world.get_location('GS Water Temple Near Boss Key Chest'), lambda state: state.has('Progressive Hookshot', 2) and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and state.has('Small Key (Water Temple)', 6)) + +def dung_rules_spt0(world): + # Spirit Temple vanilla + set_rule(world.get_entrance('Spirit Temple Crawl Passage'), lambda state: state.can_play('Requiem of Spirit')) + set_rule(world.get_entrance('Spirit Temple Silver Block'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.is_adult()) + set_rule(world.get_entrance('Child Spirit Temple Passthrough'), lambda state: state.has_explosives() and state.has('Small Key (Spirit Temple)', 1)) + set_rule(world.get_entrance('Adult Spirit Temple Passthrough'), lambda state: state.has('Small Key (Spirit Temple)', 1)) + set_rule(world.get_entrance('Spirit Temple Central Locked Door'), lambda state: state.has('Small Key (Spirit Temple)', 4) and state.has('Progressive Strength Upgrade', 2) and state.is_adult()) + set_rule(world.get_entrance('Spirit Temple Final Locked Door'), lambda state: state.has('Small Key (Spirit Temple)', 5) and (state.has('Progressive Hookshot') or state.has('Bow') or state.has_explosives())) + set_rule(world.get_location('Spirit Temple Child Left Chest'), lambda state: state.has('Boomerang') or state.has('Slingshot') or state.has_bombchus()) + set_rule(world.get_location('Spirit Temple Child Right Chest'), lambda state: state.has('Boomerang') or state.has('Slingshot') or state.has_bombchus()) + set_rule(world.get_location('Spirit Temple Compass Chest'), lambda state: state.has('Progressive Hookshot') and state.can_play('Zeldas Lullaby')) + set_rule(world.get_location('Spirit Temple Early Adult Right Chest'), lambda state: state.has('Bow') or state.has('Progressive Hookshot') or state.has_bombchus()) #requires a very specific Bombchu use, Hover Boots can be skipped by jumping on top of the rolling rock. + set_rule(world.get_location('Spirit Temple First Mirror Right Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3)) + set_rule(world.get_location('Spirit Temple First Mirror Left Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3)) + set_rule(world.get_location('Spirit Temple Map Chest'), lambda state: (state.has('Small Key (Spirit Temple)', 5) and state.can_play('Requiem of Spirit')) or (state.has('Magic Meter') and (state.has('Dins Fire') or (state.has('Fire Arrows') and state.has('Bow') and state.has('Progressive Strength Upgrade', 2) and state.has('Small Key (Spirit Temple)', 3) and state.is_adult())))) + set_rule(world.get_location('Spirit Temple Child Climb East Chest'), lambda state: state.has_explosives() or ((state.has('Boomerang') or state.has('Slingshot')) and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 5) and state.can_play('Requiem of Spirit') and (state.has('Boomerang') or state.has('Slingshot')))) + set_rule(world.get_location('Spirit Temple Child Climb North Chest'), lambda state: state.has_explosives() or ((state.has('Boomerang') or state.has('Slingshot')) and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 5) and state.can_play('Requiem of Spirit') and (state.has('Boomerang') or state.has('Slingshot')))) + set_rule(world.get_location('Spirit Temple Sun Block Room Chest'), lambda state: (state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit')) or (state.has_fire_source() and (state.has_explosives() or state.has('Small Key (Spirit Temple)', 2)))) + set_rule(world.get_location('Spirit Temple Statue Hand Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.can_play('Zeldas Lullaby')) + set_rule(world.get_location('Spirit Temple NE Main Room Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.can_play('Zeldas Lullaby') and (state.has('Progressive Hookshot') or state.has("Hover Boots"))) + set_rule(world.get_location('Mirror Shield Chest'), lambda state: state.has('Small Key (Spirit Temple)', 4) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.has_explosives()) + set_rule(world.get_location('Silver Gauntlets Chest'), lambda state: (state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Hookshot', 2) and state.has_explosives()) or state.has('Small Key (Spirit Temple)', 5)) + set_rule(world.get_location('Spirit Temple Near Four Armos Chest'), lambda state: state.has('Mirror Shield') and state.has_explosives()) + set_rule(world.get_location('Spirit Temple Hallway Left Invisible Chest'), lambda state: state.can_see_with_lens() and state.has_explosives()) + set_rule(world.get_location('Spirit Temple Hallway Right Invisible Chest'), lambda state: state.can_see_with_lens() and state.has_explosives()) + set_rule(world.get_location('Spirit Temple Boss Key Chest'), lambda state: state.can_play('Zeldas Lullaby') and state.has('Bow') and state.has('Progressive Hookshot') and state.can_blast_or_smash()) + set_rule(world.get_location('Spirit Temple Topmost Chest'), lambda state: state.has('Mirror Shield')) + set_rule(world.get_location('Twinrova'), lambda state: state.has('Mirror Shield') and state.has_explosives() and state.has('Progressive Hookshot') and state.has('Boss Key (Spirit Temple)')) + set_rule(world.get_location('Twinrova Heart'), lambda state: state.has('Mirror Shield') and state.has_explosives() and state.has('Progressive Hookshot') and state.has('Boss Key (Spirit Temple)')) + + # GS + set_rule(world.get_location('GS Spirit Temple Metal Fence'), lambda state: state.has('Boomerang') or state.has('Slingshot') or state.has_bombchus()) + set_rule(world.get_location('GS Spirit Temple Hall to West Iron Knuckle'), lambda state: (state.has('Boomerang') and state.has('Progressive Hookshot')) or (state.has('Boomerang') and state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit')) or (state.has('Progressive Hookshot') and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.has('Small Key (Spirit Temple)', 3))) + set_rule(world.get_location('GS Spirit Temple Boulder Room'), lambda state: state.can_play('Song of Time') and (state.has('Bow') or state.has('Progressive Hookshot') or state.has_bombchus())) + set_rule(world.get_location('GS Spirit Temple Lobby'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.has('Small Key (Spirit Temple)', 3) and state.is_adult() and (state.has('Progressive Hookshot', 2) or (state.has('Progressive Hookshot') and state.has_ocarina()) or state.has('Hover Boots'))) + +def dung_rules_sht0(world): + # Shadow Temple Vanilla + set_rule(world.get_entrance('Shadow Temple First Pit'), lambda state: state.has('Hover Boots')) + set_rule(world.get_entrance('Shadow Temple Bomb Wall'), lambda state: state.has_explosives() and state.has('Small Key (Shadow Temple)', 1)) + set_rule(world.get_entrance('Shadow Temple Hookshot Target'), lambda state: state.has('Progressive Hookshot') and state.has('Small Key (Shadow Temple)', 3)) + set_rule(world.get_entrance('Shadow Temple Boat'), lambda state: state.can_play('Zeldas Lullaby') and state.has('Small Key (Shadow Temple)', 4)) + set_rule(world.get_location('Shadow Temple Falling Spikes Upper Chest'), lambda state: state.has('Progressive Strength Upgrade')) + set_rule(world.get_location('Shadow Temple Falling Spikes Switch Chest'), lambda state: state.has('Progressive Strength Upgrade')) + set_rule(world.get_location('Shadow Temple Invisible Spikes Chest'), lambda state: state.has('Small Key (Shadow Temple)', 2)) + set_rule(world.get_location('Shadow Temple Freestanding Key'), lambda state: state.has('Small Key (Shadow Temple)', 2) and state.has('Progressive Hookshot')) + + # boss rules + set_rule(world.get_location('Bongo Bongo'), lambda state: state.has('Small Key (Shadow Temple)', 5) and (state.has('Bow') or state.has('Progressive Hookshot', 2)) and state.has('Boss Key (Shadow Temple)')) + set_rule(world.get_location('Bongo Bongo Heart'), lambda state: state.has('Small Key (Shadow Temple)', 5) and (state.has('Bow') or state.has('Progressive Hookshot', 2)) and state.has('Boss Key (Shadow Temple)')) + + # GS + set_rule(world.get_location('GS Shadow Temple Like Like Room'), lambda state: state.has('Progressive Hookshot')) + set_rule(world.get_location('GS Shadow Temple Crusher Room'), lambda state: state.has('Progressive Hookshot')) + set_rule(world.get_location('GS Shadow Temple Near Ship'), lambda state: state.has('Progressive Hookshot', 2) and state.has('Small Key (Shadow Temple)', 4)) + +def dung_rules_bw0(world): + # Bottom of the Well Vanilla + set_rule(world.get_location('Bottom of the Well Front Left Hidden Wall'), lambda state: state.can_see_with_lens()) + set_rule(world.get_location('Bottom of the Well Front Center Bombable'), lambda state: state.has_explosives()) + set_rule(world.get_location('Bottom of the Well Right Bottom Hidden Wall'), lambda state: state.can_see_with_lens()) + set_rule(world.get_location('Bottom of the Well Center Large Chest'), lambda state: state.can_see_with_lens()) + set_rule(world.get_location('Bottom of the Well Center Small Chest'), lambda state: state.can_see_with_lens()) + set_rule(world.get_location('Bottom of the Well Back Left Bombable'), lambda state: state.has_explosives()) + set_rule(world.get_location('Bottom of the Well Defeat Boss'), lambda state: state.can_play('Zeldas Lullaby') and (state.has('Kokiri Sword') or world.logic_child_deadhand)) #Sword not strictly necessary but frankly being forced to do this with sticks isn't fair + set_rule(world.get_location('Bottom of the Well Invisible Chest'), lambda state: state.can_play('Zeldas Lullaby') and state.can_see_with_lens()) + set_rule(world.get_location('Bottom of the Well Underwater Front Chest'), lambda state: state.can_play('Zeldas Lullaby')) + set_rule(world.get_location('Bottom of the Well Underwater Left Chest'), lambda state: state.can_play('Zeldas Lullaby')) + set_rule(world.get_location('Bottom of the Well Basement Chest'), lambda state: state.has_explosives() or (state.has('Small Key (Bottom of the Well)', 3) and state.has('Progressive Strength Upgrade') and state.can_see_with_lens())) + set_rule(world.get_location('Bottom of the Well Locked Pits'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.can_see_with_lens()) #These pits are really unfair. + set_rule(world.get_location('Bottom of the Well Behind Right Grate'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.can_see_with_lens()) + + # GS + set_rule(world.get_location('GS Well West Inner Room'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang') and state.can_see_with_lens()) + set_rule(world.get_location('GS Well East Inner Room'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang') and state.can_see_with_lens()) + set_rule(world.get_location('GS Well Like Like Cage'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang') and state.can_see_with_lens()) + +def dung_rules_ic0(world): + # Ice Cavern Vanilla + set_rule(world.get_location('Ice Cavern Map Chest'), lambda state: state.has_bottle()) + set_rule(world.get_location('Ice Cavern Compass Chest'), lambda state: state.has_bottle()) + set_rule(world.get_location('Ice Cavern Freestanding PoH'), lambda state: state.has_bottle()) + set_rule(world.get_location('Ice Cavern Iron Boots Chest'), lambda state: state.has_bottle()) + set_rule(world.get_location('Sheik in Ice Cavern'), lambda state: state.has_bottle() and state.is_adult()) + + # GS + set_rule(world.get_location('GS Ice Cavern Spinning Scythe Room'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) + set_rule(world.get_location('GS Ice Cavern Heart Piece Room'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.has_bottle()) + set_rule(world.get_location('GS Ice Cavern Push Block Room'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.has_bottle()) + +def dung_rules_gtg0(world): + set_rule(world.get_entrance('Gerudo Training Ground Left Silver Rupees'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) + set_rule(world.get_entrance('Gerudo Training Ground Beamos'), lambda state: state.has_explosives()) + set_rule(world.get_entrance('Gerudo Training Grounds Right Locked Doors'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 9)) + set_rule(world.get_entrance('Gerudo Training Grounds Maze Ledge'), lambda state: state.can_play('Song of Time')) + set_rule(world.get_entrance('Gerudo Training Grounds Right Hookshot Target'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) + set_rule(world.get_entrance('Gerudo Training Grounds Hammer Target'), lambda state: state.has('Hammer') and state.has('Bow') and state.is_adult()) + set_rule(world.get_entrance('Gerudo Training Grounds Hidden Hookshot Target'), lambda state: state.has('Progressive Hookshot') and state.can_see_with_lens() and state.is_adult()) + set_rule(world.get_location('Gerudo Training Grounds Lobby Left Chest'), lambda state: state.has('Bow') and state.is_adult()) + set_rule(world.get_location('Gerudo Training Grounds Lobby Right Chest'), lambda state: state.has('Bow') and state.is_adult()) + set_rule(world.get_location('Gerudo Training Grounds Beamos Chest'), lambda state: state.has_explosives()) + set_rule(world.get_location('Gerudo Training Grounds Hidden Ceiling Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 3) and state.can_see_with_lens()) + set_rule(world.get_location('Gerudo Training Grounds Maze Path First Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 4)) + set_rule(world.get_location('Gerudo Training Grounds Maze Path Second Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 6)) + set_rule(world.get_location('Gerudo Training Grounds Maze Path Third Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 7)) + set_rule(world.get_location('Gerudo Training Grounds Maze Path Final Chest'), lambda state: (state.has('Small Key (Gerudo Training Grounds)', 9)) or (item_name(state, 'Gerudo Training Grounds Maze Path Final Chest') == 'Small Key (Gerudo Training Grounds)' and state.has('Small Key (Gerudo Training Grounds)', 8))) #Allow key for key + set_always_allow(world.get_location('Gerudo Training Grounds Maze Path Final Chest'), lambda item, state: item.name == 'Small Key (Gerudo Training Grounds)') + set_rule(world.get_location('Gerudo Training Grounds Underwater Silver Rupee Chest'), lambda state: state.has('Progressive Hookshot') and state.can_play('Song of Time') and state.has('Iron Boots') and state.is_adult() and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic())) + set_rule(world.get_location('Gerudo Training Grounds Hammer Room Switch Chest'), lambda state: state.has('Hammer') and state.is_adult()) + set_rule(world.get_location('Gerudo Training Grounds Eye Statue Chest'), lambda state: state.has('Bow') and state.is_adult()) + set_rule(world.get_location('Gerudo Training Grounds Near Scarecrow Chest'), lambda state: state.has('Bow') and state.is_adult()) + set_rule(world.get_location('Gerudo Training Grounds Heavy Block First Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.can_see_with_lens() and state.is_adult()) + set_rule(world.get_location('Gerudo Training Grounds Heavy Block Second Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.can_see_with_lens() and state.is_adult()) + set_rule(world.get_location('Gerudo Training Grounds Heavy Block Third Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.can_see_with_lens() and state.is_adult()) + set_rule(world.get_location('Gerudo Training Grounds Heavy Block Fourth Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.can_see_with_lens() and state.is_adult()) + +def dung_rules_gc0(world): + set_rule(world.get_entrance('Ganons Castle Light Trial'), lambda state: state.has('Progressive Strength Upgrade', 3)) + set_rule(world.get_entrance('Ganons Castle Tower'), lambda state: (world.skipped_trials['Forest'] or state.has('Forest Trial Clear')) and (world.skipped_trials['Fire'] or state.has('Fire Trial Clear')) and (world.skipped_trials['Water'] or state.has('Water Trial Clear')) and (world.skipped_trials['Shadow'] or state.has('Shadow Trial Clear')) and (world.skipped_trials['Spirit'] or state.has('Spirit Trial Clear')) and (world.skipped_trials['Light'] or state.has('Light Trial Clear'))) + set_rule(world.get_location('Ganons Castle Forest Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and (state.has('Fire Arrows') or state.has('Dins Fire'))) + set_rule(world.get_location('Ganons Castle Fire Trial Clear'), lambda state: state.has_GoronTunic() and state.has('Progressive Strength Upgrade', 3) and state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and state.has('Progressive Hookshot', 2)) + set_rule(world.get_location('Ganons Castle Water Trial Clear'), lambda state: state.has_bottle() and state.has('Hammer') and state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows')) + set_rule(world.get_location('Ganons Castle Shadow Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and state.has('Hammer') and ((state.has('Fire Arrows') and (state.has('Hover Boots') or state.can_see_with_lens())) or (state.has('Progressive Hookshot', 2) and (state.has('Hover Boots') or (state.has('Dins Fire') and state.can_see_with_lens()))))) + set_rule(world.get_location('Ganons Castle Shadow Trial First Chest'), lambda state: (state.has('Magic Meter') and state.has('Bow') and state.has('Fire Arrows')) or state.has('Progressive Hookshot') or state.has('Hover Boots') or state.can_play('Song of Time')) + set_rule(world.get_location('Ganons Castle Shadow Trial Second Chest'), lambda state: (state.has('Magic Meter') and state.has('Bow') and state.has('Fire Arrows')) or (state.has('Progressive Hookshot', 2) and (state.has('Hover Boots') or (state.has('Dins Fire') and state.has('Magic Meter'))))) + set_rule(world.get_location('Ganons Castle Spirit Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and state.has('Mirror Shield') and state.has_bombchus() and state.has('Progressive Hookshot')) + set_rule(world.get_location('Ganons Castle Spirit Trial First Chest'), lambda state: state.has('Progressive Hookshot')) + set_rule(world.get_location('Ganons Castle Spirit Trial Second Chest'), lambda state: state.has('Progressive Hookshot') and state.has_bombchus() and state.can_see_with_lens()) + set_rule(world.get_location('Ganons Castle Light Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Progressive Hookshot') and state.has('Light Arrows') and state.has('Small Key (Ganons Castle)', 2)) + set_rule(world.get_location('Ganons Castle Light Trail Invisible Enemies Chest'), lambda state: state.can_see_with_lens()) + set_rule(world.get_location('Ganons Castle Light Trial Lullaby Chest'), lambda state: state.can_play('Zeldas Lullaby') and state.has('Small Key (Ganons Castle)', 1)) + + + # Song locations can only be a song #song_locations = [world.get_location(location) for location in # ['Song from Composer Grave', 'Impa at Castle', 'Song from Malon', 'Song from Saria', From 68085e61165d94112152b12216ea8cb13530d15b Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Thu, 9 Aug 2018 22:09:46 -0400 Subject: [PATCH 249/755] Fixed default value for compress_rom --- Settings.py | 2 +- version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Settings.py b/Settings.py index 0f19dd90d..aa3c446c8 100644 --- a/Settings.py +++ b/Settings.py @@ -218,7 +218,7 @@ def __init__(self, settings_dict): 'text': 'Compress Rom', 'group': 'rom_tab', 'widget': 'Radiobutton', - 'default': 'Compressed [Emu/VC]', + 'default': 'Compressed [Stable]', 'horizontal': True, 'options': { 'Compressed [Stable]': 'True', diff --git a/version.py b/version.py index 56d15660d..a76df0f64 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.9 f.LUM' +__version__ = '2.15.10 f.LUM' From 2c42f71d16c5cb0178d5993ffa978ac4ad186f66 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Fri, 10 Aug 2018 00:35:18 -0400 Subject: [PATCH 250/755] Fix CLI not reading compress_rom option correctly --- OoTRandomizer.py | 2 +- Settings.py | 1 - version.py | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/OoTRandomizer.py b/OoTRandomizer.py index 9cf45ae67..bafbaea88 100644 --- a/OoTRandomizer.py +++ b/OoTRandomizer.py @@ -34,7 +34,7 @@ def start(): # ToDo: Validate files further than mere existance if not os.path.isfile(settings.rom): - input('Could not find valid base rom for patching at expected path %s. Please run with -h to see help for further information. \nPress Enter to exit.' % args.rom) + input('Could not find valid base rom for patching at expected path %s. Please run with -h to see help for further information. \nPress Enter to exit.' % settings.rom) sys.exit(1) # set up logger diff --git a/Settings.py b/Settings.py index aa3c446c8..cc890016c 100644 --- a/Settings.py +++ b/Settings.py @@ -212,7 +212,6 @@ def __init__(self, settings_dict): False: Uncompressed. Unstable. Faster generation None: No ROM Output. Creates spoiler log only ''', - 'action': 'store_true' }, { 'text': 'Compress Rom', diff --git a/version.py b/version.py index a76df0f64..2ba28e207 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.10 f.LUM' +__version__ = '2.15.11 f.LUM' From c854ce633595a7530c81d792872400d5570ee16c Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Fri, 10 Aug 2018 13:06:52 -0400 Subject: [PATCH 251/755] Added Progressbar to gui --- Fill.py | 36 +++++++++++++++---------- Gui.py | 24 ++++++++--------- GuiUtils.py | 77 +++++++++++++++++++++++++++++++++++++++++++---------- Main.py | 62 ++++++++++++++++++++++++++++++++++++++---- Settings.py | 4 +++ version.py | 2 +- 6 files changed, 158 insertions(+), 47 deletions(-) diff --git a/Fill.py b/Fill.py index f30e5d2b6..e6169d87d 100644 --- a/Fill.py +++ b/Fill.py @@ -5,9 +5,8 @@ class FillError(RuntimeError): pass - # Places all items into the world -def distribute_items_restrictive(worlds, fill_locations=None): +def distribute_items_restrictive(window, worlds, fill_locations=None): song_locations = [world.get_location(location) for world in worlds for location in ['Song from Composer Grave', 'Impa at Castle', 'Song from Malon', 'Song from Saria', 'Song from Ocarina of Time', 'Song at Windmill', 'Sheik Forest Song', 'Sheik at Temple', @@ -18,6 +17,9 @@ def distribute_items_restrictive(worlds, fill_locations=None): fill_locations = [location for world in worlds for location in world.get_unfilled_locations() if location not in song_locations] world_states = [world.state for world in worlds] + window.locationcount = len(fill_locations) + len(song_locations) + window.fillcount = 0 + # Generate the itempools songitempool = [item for world in worlds for item in world.itempool if item.type == 'Song'] itempool = [item for world in worlds for item in world.itempool if item.type != 'Song'] @@ -41,7 +43,7 @@ def distribute_items_restrictive(worlds, fill_locations=None): else: # place dungeon items random.shuffle(fill_locations) - fill_dungeons_restrictive(worlds, fill_locations, itempool + songitempool) + fill_dungeons_restrictive(window, worlds, fill_locations, itempool + songitempool) # I have no idea why the locations are reversed but this is how it was, # so whatever. It can't hurt I guess @@ -55,26 +57,26 @@ def distribute_items_restrictive(worlds, fill_locations=None): # of failing compared to other item type. So this way we only have retry # the song locations only. if not worlds[0].shuffle_song_items: - fill_songs(worlds, song_locations, songitempool, progitempool) + fill_songs(window, worlds, song_locations, songitempool, progitempool) # Place all progression items. This will include keys in keysanity. # Items in this group will check for reachability and will be placed # such that the game is guaranteed beatable. random.shuffle(fill_locations) - fill_restrictive(worlds, [world.state for world in worlds], fill_locations, progitempool) + fill_restrictive(window, worlds, [world.state for world in worlds], fill_locations, progitempool) # Place all priority items. # These items are items that only check if the item is allowed to be # placed in the location, not checking reachability. This is important # for things like Ice Traps that can't be found at some locations random.shuffle(fill_locations) - fill_restrictive_fast(worlds, fill_locations, prioitempool) + fill_restrictive_fast(window, worlds, fill_locations, prioitempool) # Place the rest of the items. # No restrictions at all. Places them completely randomly. Since they # cannot affect the beatability, we don't need to check them random.shuffle(fill_locations) - fast_fill(fill_locations, restitempool) + fast_fill(window, fill_locations, restitempool) # Log unplaced item/location warnings for item in progitempool + prioitempool + restitempool: @@ -87,7 +89,7 @@ def distribute_items_restrictive(worlds, fill_locations=None): # Places all dungeon items into the worlds. To ensure there is room for them. # they are placed first so it will assume all other items are reachable -def fill_dungeons_restrictive(worlds, shuffled_locations, itempool): +def fill_dungeons_restrictive(window, worlds, shuffled_locations, itempool): # List of states with all non-key items all_state_base_list = CollectionState.get_states_with_items([world.state for world in worlds], itempool) # list of all dungeon items to be placed @@ -102,14 +104,14 @@ def fill_dungeons_restrictive(worlds, shuffled_locations, itempool): dungeon_items.sort(key=lambda item: sort_order.get(item.type, 1)) # place dungeon items - fill_restrictive(worlds, all_state_base_list, shuffled_locations, dungeon_items) + fill_restrictive(window, worlds, all_state_base_list, shuffled_locations, dungeon_items) for world in worlds: world.state.clear_cached_unreachable() # Places the songs into the world at the Song locations -def fill_songs(worlds, locations, songpool, itempool, attempts=15): +def fill_songs(window, worlds, locations, songpool, itempool, attempts=15): # get the song locations for each world # look for preplaced items @@ -127,7 +129,7 @@ def fill_songs(worlds, locations, songpool, itempool, attempts=15): prize_locs = list(empty_song_locations) random.shuffle(prizepool) random.shuffle(prize_locs) - fill_restrictive(worlds, all_state_base_list, prize_locs, prizepool) + fill_restrictive(window, worlds, all_state_base_list, prize_locs, prizepool) except FillError as e: logging.getLogger('').info("Failed to place songs. Will retry %s more times", attempts) for location in empty_song_locations: @@ -148,7 +150,7 @@ def fill_songs(worlds, locations, songpool, itempool, attempts=15): # This means we first assume we have every item in the item pool and # remove an item and try to place it somewhere that is still reachable # This method helps distribution of items locked behind many requirements -def fill_restrictive(worlds, base_state_list, locations, itempool): +def fill_restrictive(window, worlds, base_state_list, locations, itempool): # loop until there are no items or locations while itempool and locations: # get and item and remove it from the itempool @@ -189,12 +191,14 @@ def fill_restrictive(worlds, base_state_list, locations, itempool): # Place the item in the world and continue spot_to_fill.world.push_item(spot_to_fill, item_to_place) locations.remove(spot_to_fill) + window.fillcount += 1 + window.update_progress(5 + ((window.fillcount / window.locationcount) * 30)) # This places items in the itempool into the locations # It does not check for reachability, only that the item is # allowed in the location -def fill_restrictive_fast(worlds, locations, itempool): +def fill_restrictive_fast(window, worlds, locations, itempool): while itempool and locations: item_to_place = itempool.pop() @@ -216,13 +220,17 @@ def fill_restrictive_fast(worlds, locations, itempool): # Place the item in the world and continue spot_to_fill.world.push_item(spot_to_fill, item_to_place) locations.remove(spot_to_fill) + window.fillcount += 1 + window.update_progress(5 + ((window.fillcount / window.locationcount) * 30)) # this places item in item_pool completely randomly into # fill_locations. There is no checks for validity since # there should be none for these remaining items -def fast_fill(locations, itempool): +def fast_fill(window, locations, itempool): while itempool and locations: spot_to_fill = locations.pop() item_to_place = itempool.pop() spot_to_fill.world.push_item(spot_to_fill, item_to_place) + window.fillcount += 1 + window.update_progress(5 + ((window.fillcount / window.locationcount) * 30)) diff --git a/Gui.py b/Gui.py index 2258f9579..1da895939 100644 --- a/Gui.py +++ b/Gui.py @@ -5,7 +5,7 @@ import random import os import shutil -from tkinter import Scale, Checkbutton, OptionMenu, Toplevel, LabelFrame, Radiobutton, PhotoImage, Tk, BOTH, LEFT, RIGHT, BOTTOM, TOP, StringVar, IntVar, Frame, Label, W, E, X, N, S, NW, Entry, Spinbox, Button, filedialog, messagebox, ttk, HORIZONTAL +from tkinter import Scale, Checkbutton, OptionMenu, Toplevel, LabelFrame, Radiobutton, PhotoImage, Tk, BOTH, LEFT, RIGHT, BOTTOM, TOP, StringVar, IntVar, Frame, Label, W, E, X, N, S, NW, Entry, Spinbox, Button, filedialog, messagebox, ttk, HORIZONTAL, Toplevel from urllib.parse import urlparse from urllib.request import urlopen @@ -363,21 +363,19 @@ def open_readme(): settingsFrame.pack(fill=BOTH, anchor=W, padx=5, pady=(10,0)) + def multiple_run(settings, window): + orig_seed = settings.seed + for i in range(settings.count): + settings.update_seed(orig_seed + '-' + str(i)) + window.update_title("Generating Seed...%d/%d" % (i+1, settings.count)) + main(settings, window) + def generateRom(): settings = guivars_to_settings(guivars) - - try: - if settings.count is not None: - orig_seed = settings.seed - for i in range(settings.count): - settings.update_seed(orig_seed + '-' + str(i)) - main(settings) - else: - main(settings) - except Exception as e: - messagebox.showerror(title="Error while creating seed", message=str(e)) + if settings.count is not None: + BackgroundTaskProgress(mainWindow, "Generating Seed...", multiple_run, settings) else: - messagebox.showinfo(title="Success", message="Rom patched successfully") + BackgroundTaskProgress(mainWindow, "Generating Seed...", main, settings) generateSeedFrame = Frame(mainWindow) generateButton = Button(generateSeedFrame, text='Generate Patched Rom', command=generateRom) diff --git a/GuiUtils.py b/GuiUtils.py index 97bd6762a..62b9efd2d 100644 --- a/GuiUtils.py +++ b/GuiUtils.py @@ -1,6 +1,7 @@ import queue import threading import tkinter as tk +import traceback from Utils import local_path @@ -10,17 +11,31 @@ def set_icon(window): er48 = tk.PhotoImage(file=local_path('data/ER32.gif')) window.tk.call('wm', 'iconphoto', window._w, er16, er32, er48) # pylint: disable=protected-access + # Although tkinter is intended to be thread safe, there are many reports of issues # some which may be platform specific, or depend on if the TCL library was compiled without # multithreading support. Therefore I will assume it is not thread safe to avoid any possible problems class BackgroundTask(object): - def __init__(self, window, code_to_run): + def __init__(self, window, code_to_run, code_arg): self.window = window self.queue = queue.Queue() self.running = True - self.process_queue() - self.task = threading.Thread(target=code_to_run, args=(self,)) + self.task = threading.Thread(target=self.try_run, args=(code_to_run, code_arg)) self.task.start() + self.process_queue() + + def try_run(self, code_to_run, code_arg): + self.update_status('Starting Thread') + try: + code_to_run(code_arg, self) + self.update_status('Success: Rom patched successfully') + except Exception as e: + self.update_status('Error: ' + str(e)) + traceback.print_exc() + self.queue_event(self.stop) + + def update_status(self, text): + pass def stop(self): self.running = False @@ -44,8 +59,9 @@ def process_queue(self): if self.running: self.window.after(100, self.process_queue) + class BackgroundTaskProgress(BackgroundTask): - def __init__(self, parent, code_to_run, title): + def __init__(self, parent, title, code_to_run, code_arg): self.parent = parent self.window = tk.Toplevel(parent) self.window['padx'] = 5 @@ -56,26 +72,59 @@ def __init__(self, parent, code_to_run, title): except tk.TclError: pass - self.window.wm_title(title) - self.label_var = tk.StringVar() - self.label_var.set("") - self.label = tk.Label(self.window, textvariable=self.label_var, width=50) + self.window.title(title) + + self.lastpercent = 0 + self.progress_var = tk.DoubleVar() + self.progress = tk.ttk.Progressbar(self.window, variable=self.progress_var, length=300) + self.progress.pack() + + self.label_var = tk.StringVar(value="") + self.label = tk.Label(self.window, textvariable=self.label_var, width=50, wrap=300) self.label.pack() - self.window.resizable(width=False, height=False) + self.button_var = tk.StringVar(value="Please wait...") + self.button = tk.Button(self.window, textvariable=self.button_var, width=10, height=2, state='disabled', command=self.close) + self.button.pack() + + self.window.resizable(width=False, height=False) set_icon(self.window) - self.window.focus() - super().__init__(self.window, code_to_run) + + self.window.transient(parent) + self.window.protocol("WM_DELETE_WINDOW", self.close_pass) + self.window.grab_set() + self.window.geometry("+%d+%d" % (parent.winfo_rootx()+50, parent.winfo_rooty()+150)) + self.window.focus_set() + + super().__init__(self.window, code_to_run, code_arg) + + self.parent.wait_window(self.window) + + def close_pass(self): + pass #safe to call from worker thread def update_status(self, text): self.queue_event(lambda: self.label_var.set(text)) - # only call this in an event callback - def close_window(self): - self.stop() + def update_progress(self, val): + if int(val) != self.lastpercent: + self.lastpercent = int(val) + self.queue_event(lambda: self.progress_var.set(val)) + + def update_title(self, text): + self.queue_event(lambda: self.window.title(text)) + + def close(self): + self.running = False self.window.destroy() + def stop(self): + self.running = False + self.progress_var.set(100) + self.window.bell() + self.button.configure(state='normal') + self.button_var.set("OK") class ToolTips(object): diff --git a/Main.py b/Main.py index 7213c8666..956eb29df 100644 --- a/Main.py +++ b/Main.py @@ -19,7 +19,15 @@ from Utils import default_output_path from version import __version__ -def main(settings): +class dummy_window(): + def __init__(self): + pass + def update_status(self, text): + pass + def update_progress(self, val): + pass + +def main(settings, window=dummy_window()): start = time.clock() # initialize the world @@ -27,6 +35,8 @@ def main(settings): worlds = [] if settings.compress_rom == 'None': settings.create_spoiler = True + settings.update() + if not settings.world_count: settings.world_count = 1 if settings.world_count < 1: @@ -43,28 +53,44 @@ def main(settings): logger.info('OoT Randomizer Version %s - Seed: %s\n\n', __version__, worlds[0].seed) + window.update_status('Creating the Worlds') for id, world in enumerate(worlds): world.id = id logger.info('Generating World %d.' % id) + window.update_progress(0 + (((id + 1) / settings.world_count) * 1)) logger.info('Creating Overworld') create_regions(world) + + window.update_progress(0 + (((id + 1) / settings.world_count) * 2)) logger.info('Creating Dungeons') create_dungeons(world) + + window.update_progress(0 + (((id + 1) / settings.world_count) * 3)) logger.info('Linking Entrances') link_entrances(world) + + window.update_progress(0 + (((id + 1) / settings.world_count) * 4)) logger.info('Calculating Access Rules.') set_rules(world) + + window.update_progress(0 + (((id + 1) / settings.world_count) * 5)) logger.info('Generating Item Pool.') generate_itempool(world) + window.update_status('Placing the Items') logger.info('Fill the world.') - distribute_items_restrictive(worlds) + distribute_items_restrictive(window, worlds) + window.update_progress(35) if settings.create_spoiler: + window.update_status('Calculating Spoiler Data') logger.info('Calculating playthrough.') create_playthrough(worlds) + window.update_progress(50) + window.update_status('Calculating Hint Data') CollectionState.update_required_items(worlds) + window.update_progress(55) logger.info('Patching ROM.') @@ -76,34 +102,60 @@ def main(settings): output_dir = default_output_path(settings.output_dir) if settings.compress_rom != 'None': + window.update_status('Patching ROM') rom = LocalRom(settings) patch_rom(worlds[settings.player_num - 1], rom) + window.update_progress(65) rom_path = os.path.join(output_dir, '%s.z64' % outfilebase) + window.update_status('Saving Uncompressed ROM') rom.write_to_file(rom_path) if settings.compress_rom == 'True': + window.update_status('Compressing ROM') logger.info('Compressing ROM.') if platform.system() == 'Windows': - subprocess.call(["Compress\\Compress.exe", rom_path, os.path.join(output_dir, '%s-comp.z64' % outfilebase)]) + run_process(window, logger, ["Compress\\Compress.exe", rom_path, os.path.join(output_dir, '%s-comp.z64' % outfilebase)]) os.remove(rom_path) elif platform.system() == 'Linux': - subprocess.call(["Compress/Compress", rom_path]) + run_process(window, logger, ["Compress/Compress", rom_path]) + subprocess.call() os.remove(rom_path) elif platform.system() == 'Darwin': - subprocess.call(["Compress/Compress.out", rom_path]) + run_process(window, logger, ["Compress/Compress.out", rom_path]) os.remove(rom_path) else: logger.info('OS not supported for compression') + window.update_progress(95) + if settings.create_spoiler: + window.update_status('Creating Spoiler Log') worlds[settings.player_num - 1].spoiler.to_file(os.path.join(output_dir, '%s_Spoiler.txt' % outfilebase)) + window.update_progress(100) + window.update_status('Done. Enjoy.') logger.info('Done. Enjoy.') logger.debug('Total Time: %s', time.clock() - start) return worlds[settings.player_num - 1] +def run_process(window, logger, args): + process = subprocess.Popen(args, bufsize=1, stdout=subprocess.PIPE) + filecount = None + while True: + line = process.stdout.readline() + if line != b'': + find_index = line.find(b'files remaining') + if find_index > -1: + files = int(line[:find_index].strip()) + if filecount == None: + filecount = files + window.update_progress(65 + ((1 - (files / filecount)) * 30)) + logger.info(line.decode('utf-8').strip('\n')) + else: + break + def create_playthrough(worlds): if worlds[0].check_beatable_only and not CollectionState.can_beat_game([world.state for world in worlds]): raise RuntimeError('Uncopied is broken too.') diff --git a/Settings.py b/Settings.py index cc890016c..652cf9abb 100644 --- a/Settings.py +++ b/Settings.py @@ -130,6 +130,10 @@ def update_seed(self, seed): self.sanatize_seed() self.numeric_seed = self.get_numeric_seed() + def update(self): + self.settings_string = self.get_settings_string() + self.numeric_seed = self.get_numeric_seed() + # add the settings as fields, and calculate information based on them def __init__(self, settings_dict): self.__dict__.update(settings_dict) diff --git a/version.py b/version.py index 2ba28e207..f4f6fe55e 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.11 f.LUM' +__version__ = '2.15.12 f.LUM' From 896658158dc55087b76fb2487096d9fd9fa7f921 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Fri, 10 Aug 2018 13:49:39 -0400 Subject: [PATCH 252/755] Removed malformed instruction for linux --- Main.py | 1 - version.py | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/Main.py b/Main.py index 956eb29df..bb649e8c8 100644 --- a/Main.py +++ b/Main.py @@ -119,7 +119,6 @@ def main(settings, window=dummy_window()): os.remove(rom_path) elif platform.system() == 'Linux': run_process(window, logger, ["Compress/Compress", rom_path]) - subprocess.call() os.remove(rom_path) elif platform.system() == 'Darwin': run_process(window, logger, ["Compress/Compress.out", rom_path]) diff --git a/version.py b/version.py index f4f6fe55e..699b1153b 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.12 f.LUM' +__version__ = '2.15.13 f.LUM' From 27cf3a66f8dbf9c23defefcc2396658fe32f97ce Mon Sep 17 00:00:00 2001 From: Vincent Cunningham Date: Fri, 10 Aug 2018 16:19:02 -0400 Subject: [PATCH 253/755] separate hint and enemy target SFX entries, add two sound options Navi - Hey! returns Navi - Random is the sound effect normally used for targetting enemies Navi - Random also cycles between 'Hey' 'Look' and 'Watch Out' randomly --- BaseClasses.py | 1 + Rom.py | 64 +++++++++++++++++++++++++------------------------- Settings.py | 41 ++++++++++++++++++++++++++++++-- 3 files changed, 72 insertions(+), 34 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index bf5f7502e..8f6751ff8 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -30,6 +30,7 @@ def __init__(self, settings): # group a few others self.tunic_colors = [self.kokiricolor, self.goroncolor, self.zoracolor] self.navi_colors = [self.navicolordefault, self.navicolorenemy, self.navicolornpc, self.navicolorprop] + self.navi_hint_sounds = [self.navisfxoverworld, self.navisfxenemytarget] # trials that can be skipped will be decided later self.skipped_trials = { 'Forest': False, diff --git a/Rom.py b/Rom.py index f1cbefc37..c930977c5 100644 --- a/Rom.py +++ b/Rom.py @@ -1457,39 +1457,39 @@ def write_save_table(rom): NaviHint = [] NaviHint.append([0xAE7EF2, 0xC26C7E]) #Overworld Hint NaviHint.append([0xAE7EC6]) #Enemy Target Hint - naviHintSFXList = ['Default', 'Notification', 'Rupee', 'Timer', 'Tamborine', 'Recovery Heart', 'Carrot Refill', 'Zelda - Gasp', 'Cluck', 'Mweep!', 'None'] - randomNaviHintSFX = random.choice(naviHintSFXList) + naviHintSFXList = ['Default', 'Notification', 'Rupee', 'Timer', 'Tamborine', 'Recovery Heart', 'Carrot Refill', 'Navi - Hey!', 'Navi - Random', 'Zelda - Gasp', 'Cluck', 'Mweep!', 'None'] + randomNaviHintSFX = random.choices(naviHintSFXList, k=2) - if world.naviHintSFX == 'Random Choice': - thisNaviHintSFX = randomNaviHintSFX - else: - thisNaviHintSFX = world.naviHintSFX - if thisNaviHintSFX == 'Notification': - naviHintSFX = [0x48, 0x20] - elif thisNaviHintSFX == 'Rupee': - naviHintSFX = [0x48, 0x03] - elif thisNaviHintSFX == 'Timer': - naviHintSFX = [0x48, 0x1A] - elif thisNaviHintSFX == 'Tamborine': - naviHintSFX = [0x48, 0x42] - elif thisNaviHintSFX == 'Recovery Heart': - naviHintSFX = [0x48, 0x0B] - elif thisNaviHintSFX == 'Carrot Refill': - naviHintSFX = [0x48, 0x45] - elif thisNaviHintSFX == 'Navi - Hey!': - naviHintSFX = [0x68, 0x5F] - elif thisNaviHintSFX == 'Zelda - Gasp': - naviHintSFX = [0x68, 0x79] - elif thisNaviHintSFX == 'Cluck': - naviHintSFX = [0x28, 0x12] - elif thisNaviHintSFX == 'Mweep!': - naviHintSFX = [0x68, 0x7A] - elif thisNaviHintSFX == 'None': - naviHintSFX = [0x00, 0x00] - - if thisNaviHintSFX != 'Default': - for i in range(len(NaviHint)): - for j in range(len(NaviHint[i])): + for i in range(len(NaviHint)): + for j in range(len(NaviHint[i])): + thisNaviHintSFX = world.navi_hint_sounds[i] + if thisNaviHintSFX == 'Random Choice': + thisNaviHintSFX = randomNaviHintSFX[i] + if thisNaviHintSFX == 'Notification': + naviHintSFX = [0x48, 0x20] + elif thisNaviHintSFX == 'Rupee': + naviHintSFX = [0x48, 0x03] + elif thisNaviHintSFX == 'Timer': + naviHintSFX = [0x48, 0x1A] + elif thisNaviHintSFX == 'Tamborine': + naviHintSFX = [0x48, 0x42] + elif thisNaviHintSFX == 'Recovery Heart': + naviHintSFX = [0x48, 0x0B] + elif thisNaviHintSFX == 'Carrot Refill': + naviHintSFX = [0x48, 0x45] + elif thisNaviHintSFX == 'Navi - Hey!': + naviHintSFX = [0x68, 0x5F] + elif thisNaviHintSFX == 'Navi - Random': + naviHintSFX = [0x68, 0x43] + elif thisNaviHintSFX == 'Zelda - Gasp': + naviHintSFX = [0x68, 0x79] + elif thisNaviHintSFX == 'Cluck': + naviHintSFX = [0x28, 0x12] + elif thisNaviHintSFX == 'Mweep!': + naviHintSFX = [0x68, 0x7A] + elif thisNaviHintSFX == 'None': + naviHintSFX = [0x00, 0x00] + if thisNaviHintSFX != 'Default': rom.write_bytes(NaviHint[i][j], naviHintSFX) #Low health beep diff --git a/Settings.py b/Settings.py index d75f0c0e7..97d5788f2 100644 --- a/Settings.py +++ b/Settings.py @@ -1143,12 +1143,12 @@ def __init__(self, settings_dict): 'default': 'Green', 'options': get_navi_color_options(), }), - Setting_Info('naviHintSFX', str, 0, False, + Setting_Info('navisfxoverworld', str, 0, False, { 'default': 'Default', 'const': 'Default', 'nargs': '?', - 'choices': ['Default', 'Notification', 'Rupee', 'Timer', 'Tamborine', 'Recovery Heart', 'Carrot Refill', 'Zelda - Gasp', 'Cluck', 'Mweep!', 'Random', 'None'], + 'choices': ['Default', 'Notification', 'Rupee', 'Timer', 'Tamborine', 'Recovery Heart', 'Carrot Refill', 'Navi - Hey!', 'Navi - Random', 'Zelda - Gasp', 'Cluck', 'Mweep!', 'Random', 'None'], 'help': '''\ Select the sound effect that plays when Navi has a hint. (default: %(default)s) Sound: Replace the sound effect with the chosen sound. @@ -1170,6 +1170,43 @@ def __init__(self, settings_dict): 'Tamborine', 'Recovery Heart', 'Carrot Refill', + 'Navi - Hey!', + 'Navi - Random', + 'Zelda - Gasp', + 'Cluck', + 'Mweep!', + 'None', + ] + }), + Setting_Info('navisfxenemytarget', str, 0, False, + { + 'default': 'Default', + 'const': 'Default', + 'nargs': '?', + 'choices': ['Default', 'Notification', 'Rupee', 'Timer', 'Tamborine', 'Recovery Heart', 'Carrot Refill', 'Navi - Hey!', 'Navi - Random', 'Zelda - Gasp', 'Cluck', 'Mweep!', 'Random', 'None'], + 'help': '''\ + Select the sound effect that plays when Navi has a hint. (default: %(default)s) + Sound: Replace the sound effect with the chosen sound. + Random Chocie: Replace the sound effect with a random sound from this list. + None: Eliminate Navi hint sounds. + ''' + }, + { + 'text': 'Navi Enemy Target SFX', + 'group': 'navihint', + 'widget': 'Combobox', + 'default': 'Default', + 'options': [ + 'Random Choice', + 'Default', + 'Notification', + 'Rupee', + 'Timer', + 'Tamborine', + 'Recovery Heart', + 'Carrot Refill', + 'Navi - Hey!', + 'Navi - Random', 'Zelda - Gasp', 'Cluck', 'Mweep!', From 9f9337b8af3b1bfc30efe1e030c7462199f05845 Mon Sep 17 00:00:00 2001 From: kevinPal Date: Fri, 10 Aug 2018 13:24:25 -0700 Subject: [PATCH 254/755] Adding a version check --- Main.py | 12 ++++++++++++ Settings.py | 18 ++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/Main.py b/Main.py index bb649e8c8..3135b3feb 100644 --- a/Main.py +++ b/Main.py @@ -7,6 +7,8 @@ import subprocess import time import os +import urllib.request +import re from BaseClasses import World, CollectionState, Item from EntranceShuffle import link_entrances @@ -28,6 +30,16 @@ def update_progress(self, val): pass def main(settings, window=dummy_window()): + + #Questionable version check, but works + + if settings.check_version: + version = urllib.request.urlopen('http://raw.githubusercontent.com/TestRunnerSRL/OoT-Randomizer/Dev/version.py').read() + version = re.search(".__version__ = '(.+)'", str(version)).group(1) + + if version != __version__: + raise Exception("You do not seem to be on the latest version!\n\nYou are on version " + __version__ + ", and the latest is version " + version + ".\n\n Note: You can disable this check in 'other'") + start = time.clock() # initialize the world diff --git a/Settings.py b/Settings.py index 652cf9abb..c0014fa12 100644 --- a/Settings.py +++ b/Settings.py @@ -1134,6 +1134,24 @@ def __init__(self, settings_dict): typically more difficult. ''' }), + Setting_Info('check_version', bool, 1, False, + { + 'help': '''\ + Checks if you are on the latest version + ''', + 'action': 'store_true' + }, + { + 'text': 'Version Check', + 'group': 'other', + 'widget': 'Checkbutton', + 'default': 'checked', + 'tooltip':'''\ + Checks if you are on the latest version. + Only turn it of for development purposes, or + if you are unable to connect to the internet + ''' + }), Setting_Info('correct_chest_sizes', bool, 1, True, { 'help': '''\ From fa9df1e6c237eeaa8a890343f5a896e3ceafd2d7 Mon Sep 17 00:00:00 2001 From: Vincent Cunningham Date: Fri, 10 Aug 2018 16:37:05 -0400 Subject: [PATCH 255/755] make more visually appealing --- Gui.py | 2 +- Settings.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gui.py b/Gui.py index 6150ac938..dbc13e5fa 100755 --- a/Gui.py +++ b/Gui.py @@ -147,7 +147,7 @@ def MakeRadioList(parent, data): frames['tuniccolor'] = LabelFrame(frames['aesthetic_tab_left'], text='Tunic Color', labelanchor=NW) frames['navicolor'] = LabelFrame(frames['aesthetic_tab_right'], text='Navi Color', labelanchor=NW) frames['lowhp'] = LabelFrame(frames['aesthetic_tab_left'], text='Low HP SFX', labelanchor=NW) - frames['navihint'] = LabelFrame(frames['aesthetic_tab_right'], text='Navi Hint SFX', labelanchor=NW) + frames['navihint'] = LabelFrame(frames['aesthetic_tab_right'], text='Navi SFX', labelanchor=NW) # shared diff --git a/Settings.py b/Settings.py index 97d5788f2..97f5fecb3 100644 --- a/Settings.py +++ b/Settings.py @@ -1157,7 +1157,7 @@ def __init__(self, settings_dict): ''' }, { - 'text': 'Navi Hint SFX', + 'text': 'Navi Hint', 'group': 'navihint', 'widget': 'Combobox', 'default': 'Default', @@ -1192,7 +1192,7 @@ def __init__(self, settings_dict): ''' }, { - 'text': 'Navi Enemy Target SFX', + 'text': 'Navi Enemy Target', 'group': 'navihint', 'widget': 'Combobox', 'default': 'Default', From 29bcd029587967da94b8eb49426368218de8dfe9 Mon Sep 17 00:00:00 2001 From: Kevin Palani Date: Fri, 10 Aug 2018 14:07:27 -0700 Subject: [PATCH 256/755] Small typo fix Typo of -> off --- Settings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Settings.py b/Settings.py index c0014fa12..7db449d73 100644 --- a/Settings.py +++ b/Settings.py @@ -1148,7 +1148,7 @@ def __init__(self, settings_dict): 'default': 'checked', 'tooltip':'''\ Checks if you are on the latest version. - Only turn it of for development purposes, or + Only turn it off for development purposes, or if you are unable to connect to the internet ''' }), From 0179e8badc6e762a4d33cfd0150c434d0cc7e946 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Fri, 10 Aug 2018 17:39:42 -0400 Subject: [PATCH 257/755] Fix Typo in navi sfx help --- Settings.py | 2 +- version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Settings.py b/Settings.py index dc83ab2fc..c94c473ee 100644 --- a/Settings.py +++ b/Settings.py @@ -1514,7 +1514,7 @@ def __init__(self, settings_dict): 'nargs': '?', 'choices': ['Default', 'Notification', 'Rupee', 'Timer', 'Tamborine', 'Recovery Heart', 'Carrot Refill', 'Navi - Hey!', 'Navi - Random', 'Zelda - Gasp', 'Cluck', 'Mweep!', 'Random', 'None'], 'help': '''\ - Select the sound effect that plays when Navi has a hint. (default: %(default)s) + Select the sound effect that plays when targeting an enemy. (default: %(default)s) Sound: Replace the sound effect with the chosen sound. Random Chocie: Replace the sound effect with a random sound from this list. None: Eliminate Navi hint sounds. diff --git a/version.py b/version.py index 699b1153b..84b4d1846 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.13 f.LUM' +__version__ = '2.15.14 f.LUM' From 1719da61ef54582cc2fcbb76f02ce270ef2023bc Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Fri, 10 Aug 2018 19:03:59 -0400 Subject: [PATCH 258/755] Made version check happen in GUI at start, and not raise an exception Also added various safety checks, and it you can request to not be reminded to update until on that version --- Gui.py | 14 ++++++++++++-- GuiUtils.py | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ Main.py | 21 ++++++++------------- Settings.py | 16 ++++------------ Utils.py | 35 +++++++++++++++++++++++++++++++++++ version.py | 2 +- 6 files changed, 108 insertions(+), 28 deletions(-) diff --git a/Gui.py b/Gui.py index f30c155f7..a52972d4e 100755 --- a/Gui.py +++ b/Gui.py @@ -9,9 +9,9 @@ from urllib.parse import urlparse from urllib.request import urlopen -from GuiUtils import ToolTips, set_icon, BackgroundTaskProgress +from GuiUtils import ToolTips, set_icon, BackgroundTaskProgress, Dialog from Main import main -from Utils import is_bundled, local_path, default_output_path, open_file +from Utils import is_bundled, local_path, default_output_path, open_file, check_version from Rom import get_tunic_color_options, get_navi_color_options from Settings import Settings, setting_infos from version import __version__ as ESVersion @@ -399,6 +399,8 @@ def generateRom(): generateSeedFrame.pack(side=BOTTOM, anchor=W, padx=5, pady=10) + guivars['checked_version'] = StringVar() + if settings is not None: # load values from commandline args settings_to_guivars(settings, guivars) @@ -414,6 +416,14 @@ def generateRom(): show_settings() + def gui_check_version(): + version_error = check_version(guivars['checked_version'].get()) + if version_error: + dialog = Dialog(mainWindow, title="Version Error", question=version_error, oktext='Don\'t show again', canceltext='OK') + if dialog.result: + guivars['checked_version'].set(ESVersion) + + mainWindow.after(1000, gui_check_version) mainWindow.mainloop() # save settings on close diff --git a/GuiUtils.py b/GuiUtils.py index 62b9efd2d..085ce1f55 100644 --- a/GuiUtils.py +++ b/GuiUtils.py @@ -127,6 +127,54 @@ def stop(self): self.button_var.set("OK") +class Dialog(tk.Toplevel): + def __init__(self, parent, title=None, question=None, oktext=None, canceltext=None): + tk.Toplevel.__init__(self, parent) + self.transient(parent) + if title: + self.title(title) + self.parent = parent + self.result = False + + if question: + body = tk.Frame(self) + label = tk.Label(body, text=question, width=50, wrap=200) + label.pack() + body.pack(padx=5, pady=5) + + box = tk.Frame(self) + + w = tk.Button(box, text=oktext if oktext else "OK", width=20, command=self.ok, default=tk.ACTIVE) + w.pack(side=tk.LEFT, padx=5, pady=5) + w = tk.Button(box, text=canceltext if canceltext else "Cancel", width=20, command=self.cancel) + w.pack(side=tk.LEFT, padx=5, pady=5) + + self.bind("", self.ok) + self.bind("", self.cancel) + + box.pack() + + self.grab_set() + self.protocol("WM_DELETE_WINDOW", self.cancel) + self.geometry("+%d+%d" % (parent.winfo_rootx()+50, + parent.winfo_rooty()+150)) + + self.wait_window(self) + + # + # standard button semantics + def ok(self, event=None): + self.result = True + self.withdraw() + self.update_idletasks() + self.cancel() + + def cancel(self, event=None): + # put focus back to the parent window + self.parent.focus_set() + self.destroy() + + class ToolTips(object): # This class derived from wckToolTips which is available under the following license: diff --git a/Main.py b/Main.py index 3135b3feb..abc440fb0 100644 --- a/Main.py +++ b/Main.py @@ -7,8 +7,7 @@ import subprocess import time import os -import urllib.request -import re + from BaseClasses import World, CollectionState, Item from EntranceShuffle import link_entrances @@ -18,7 +17,7 @@ from Rules import set_rules from Fill import distribute_items_restrictive from ItemList import generate_itempool -from Utils import default_output_path +from Utils import default_output_path, check_version from version import __version__ class dummy_window(): @@ -31,16 +30,14 @@ def update_progress(self, val): def main(settings, window=dummy_window()): - #Questionable version check, but works + start = time.clock() - if settings.check_version: - version = urllib.request.urlopen('http://raw.githubusercontent.com/TestRunnerSRL/OoT-Randomizer/Dev/version.py').read() - version = re.search(".__version__ = '(.+)'", str(version)).group(1) - - if version != __version__: - raise Exception("You do not seem to be on the latest version!\n\nYou are on version " + __version__ + ", and the latest is version " + version + ".\n\n Note: You can disable this check in 'other'") + logger = logging.getLogger('') - start = time.clock() + if not settings.check_version: + version_error = check_version(settings.checked_version) + if version_error: + logger.warning(version_error) # initialize the world @@ -59,8 +56,6 @@ def main(settings, window=dummy_window()): for i in range(0, settings.world_count): worlds.append(World(settings)) - logger = logging.getLogger('') - random.seed(worlds[0].numeric_seed) logger.info('OoT Randomizer Version %s - Seed: %s\n\n', __version__, worlds[0].seed) diff --git a/Settings.py b/Settings.py index e522277db..be40e9b5b 100644 --- a/Settings.py +++ b/Settings.py @@ -158,6 +158,9 @@ def __init__(self, settings_dict): # a list of the possible settings setting_infos = [ + Setting_Info('checked_version', str, 0, False, { + 'default': '', + 'help': 'Supress version warnings if checked_version is less than __version__.'}), Setting_Info('rom', str, 0, False, { 'default': 'ZOOTDEC.z64', 'help': 'Path to an OoT 1.0 rom to use as a base.'}), @@ -1134,23 +1137,12 @@ def __init__(self, settings_dict): typically more difficult. ''' }), - Setting_Info('check_version', bool, 1, False, + Setting_Info('check_version', bool, 0, False, { 'help': '''\ Checks if you are on the latest version ''', 'action': 'store_true' - }, - { - 'text': 'Version Check', - 'group': 'other', - 'widget': 'Checkbutton', - 'default': 'checked', - 'tooltip':'''\ - Checks if you are on the latest version. - Only turn it off for development purposes, or - if you are unable to connect to the internet - ''' }), Setting_Info('correct_chest_sizes', bool, 1, True, { diff --git a/Utils.py b/Utils.py index 5194a126a..934690d25 100644 --- a/Utils.py +++ b/Utils.py @@ -1,6 +1,10 @@ import os import subprocess import sys +import urllib.request +from urllib.error import URLError, HTTPError +import re +from version import __version__ def is_bundled(): return getattr(sys, 'frozen', False) @@ -44,3 +48,34 @@ def close_console(): ctypes.windll.kernel32.FreeConsole() except Exception: pass + +def compare_version(a, b): + if not a and not b: + return 0 + elif a and not b: + return 1 + elif not a and b: + return -1 + + sa = a.replace(' ', '.').split('.') + sb = b.replace(' ', '.').split('.') + + for i in range(0,3): + if int(sa[i]) > int(sb[i]): + return 1 + if int(sa[i]) < int(sb[i]): + return -1 + return 0 + +def check_version(checked_version): + try: + with urllib.request.urlopen('http://raw.githubusercontent.com/TestRunnerSRL/OoT-Randomizer/Dev/version.py') as versionurl: + version = versionurl.read() + version = re.search(".__version__ = '(.+)'", str(version)).group(1) + + if compare_version(version, __version__) > 0 and compare_version(checked_version, __version__) < 0: + return ("You do not seem to be on the latest version!\nYou are on version " + __version__ + ", and the latest is version " + version + ".") + except URLError as e: + return ("Could not fetch latest version: " + e.reason) + except HTTPError as e: + return ("Could not fetch latest version. Error Code: " + e.code) \ No newline at end of file diff --git a/version.py b/version.py index 84b4d1846..9f170985e 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.14 f.LUM' +__version__ = '2.15.15 f.LUM' From 9db6194a969385aac00f792260cb54e87b80735f Mon Sep 17 00:00:00 2001 From: mzxrules Date: Fri, 10 Aug 2018 21:53:15 -0400 Subject: [PATCH 259/755] ignore generated files --- .gitignore | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 297350113..57a3b9c41 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,7 @@ .*.sw* .sw* *.pyc -/.vs \ No newline at end of file +/.vs +settings.sav +ARCHIVE.bin +output/* \ No newline at end of file From 8ec2667e5777a112d4168fb2702d1569bf059228 Mon Sep 17 00:00:00 2001 From: mzxrules Date: Fri, 10 Aug 2018 23:25:46 -0400 Subject: [PATCH 260/755] Formatting to try and make these files more readable on GitHub --- Dungeons.py | 99 +++- Regions.py | 1403 ++++++++++++++++++++++++++++++++------------------- 2 files changed, 970 insertions(+), 532 deletions(-) diff --git a/Dungeons.py b/Dungeons.py index e1b6194f7..4e1caf51c 100644 --- a/Dungeons.py +++ b/Dungeons.py @@ -11,18 +11,93 @@ def make_dungeon(name, dungeon_regions, boss_key, small_keys, dungeon_items): world.get_region(region).dungeon = dungeon return dungeon - DT = make_dungeon('Deku Tree', ['Deku Tree Lobby', 'Deku Tree Slingshot Room', 'Deku Tree Boss Room'], None, [], ItemFactory(['Map (Deku Tree)', 'Compass (Deku Tree)'])) - DC = make_dungeon('Dodongos Cavern', ['Dodongos Cavern Beginning', 'Dodongos Cavern Lobby', 'Dodongos Cavern Climb', 'Dodongos Cavern Far Bridge', 'Dodongos Cavern Boss Area'], None, [], ItemFactory(['Map (Dodongos Cavern)', 'Compass (Dodongos Cavern)'])) - JB = make_dungeon('Jabu Jabus Belly', ['Jabu Jabus Belly Beginning', 'Jabu Jabus Belly Main', 'Jabu Jabus Belly Depths', 'Jabu Jabus Belly Boss Area'], None, [], ItemFactory(['Map (Jabu Jabus Belly)', 'Compass (Jabu Jabus Belly)'])) - FoT = make_dungeon('Forest Temple', ['Forest Temple Lobby', 'Forest Temple NW Outdoors', 'Forest Temple NE Outdoors', 'Forest Temple Falling Room', 'Forest Temple Block Push Room', 'Forest Temple Straightened Hall', 'Forest Temple Outside Upper Ledge', 'Forest Temple Bow Region', 'Forest Temple Boss Region'], ItemFactory('Boss Key (Forest Temple)'), ItemFactory(['Small Key (Forest Temple)'] * 5), ItemFactory(['Map (Forest Temple)', 'Compass (Forest Temple)'])) - BW = make_dungeon('Bottom of the Well', ['Bottom of the Well'], None, ItemFactory(['Small Key (Bottom of the Well)'] * 3), ItemFactory(['Map (Bottom of the Well)', 'Compass (Bottom of the Well)'])) - FiT = make_dungeon('Fire Temple', ['Fire Temple Lower', 'Fire Temple Middle', 'Fire Temple Upper'], ItemFactory('Boss Key (Fire Temple)'), ItemFactory(['Small Key (Fire Temple)'] * 8), ItemFactory(['Map (Fire Temple)', 'Compass (Fire Temple)'])) - IC = make_dungeon('Ice Cavern', ['Ice Cavern'], None, [], ItemFactory(['Map (Ice Cavern)', 'Compass (Ice Cavern)'])) - WT = make_dungeon('Water Temple', ['Water Temple Lobby', 'Water Temple Middle Water Level', 'Water Temple Dark Link Region'], ItemFactory('Boss Key (Water Temple)'), ItemFactory(['Small Key (Water Temple)'] * 6), ItemFactory(['Map (Water Temple)', 'Compass (Water Temple)'])) - ShT = make_dungeon('Shadow Temple', ['Shadow Temple Beginning', 'Shadow Temple First Beamos', 'Shadow Temple Huge Pit', 'Shadow Temple Wind Tunnel', 'Shadow Temple Beyond Boat'], ItemFactory('Boss Key (Shadow Temple)'), ItemFactory(['Small Key (Shadow Temple)'] * 5), ItemFactory(['Map (Shadow Temple)', 'Compass (Shadow Temple)'])) - GTG = make_dungeon('Gerudo Training Grounds', ['Gerudo Training Grounds Lobby', 'Gerudo Training Grounds Central Maze', 'Gerudo Training Grounds Central Maze Right', 'Gerudo Training Grounds Lava Room', 'Gerudo Training Grounds Hammer Room', 'Gerudo Training Grounds Eye Statue Lower', 'Gerudo Training Grounds Eye Statue Upper', 'Gerudo Training Grounds Heavy Block Room'], None, ItemFactory(['Small Key (Gerudo Training Grounds)'] * 9), []) - SpT = make_dungeon('Spirit Temple', ['Spirit Temple Lobby', 'Child Spirit Temple', 'Early Adult Spirit Temple', 'Spirit Temple Central Chamber', 'Spirit Temple Beyond Central Locked Door', 'Spirit Temple Beyond Final Locked Door'], ItemFactory('Boss Key (Spirit Temple)'), ItemFactory(['Small Key (Spirit Temple)'] * 5), ItemFactory(['Map (Spirit Temple)', 'Compass (Spirit Temple)'])) - GC = make_dungeon('Ganons Castle', ['Ganons Castle Lobby', 'Ganons Castle Forest Trial', 'Ganons Castle Fire Trial', 'Ganons Castle Water Trial', 'Ganons Castle Shadow Trial', 'Ganons Castle Spirit Trial', 'Ganons Castle Light Trial', 'Ganons Castle Tower'], ItemFactory('Boss Key (Ganons Castle)'), ItemFactory(['Small Key (Ganons Castle)'] * 2), []) + DT = make_dungeon( + 'Deku Tree', + ['Deku Tree Lobby', 'Deku Tree Slingshot Room', 'Deku Tree Boss Room'], + None, [], + ItemFactory(['Map (Deku Tree)', 'Compass (Deku Tree)'])) + + DC = make_dungeon( + 'Dodongos Cavern', + ['Dodongos Cavern Beginning', 'Dodongos Cavern Lobby', 'Dodongos Cavern Climb', 'Dodongos Cavern Far Bridge', + 'Dodongos Cavern Boss Area'], + None, [], + ItemFactory(['Map (Dodongos Cavern)', 'Compass (Dodongos Cavern)'])) + + JB = make_dungeon( + 'Jabu Jabus Belly', + ['Jabu Jabus Belly Beginning', 'Jabu Jabus Belly Main', 'Jabu Jabus Belly Depths', 'Jabu Jabus Belly Boss Area'], + None, [], + ItemFactory(['Map (Jabu Jabus Belly)', 'Compass (Jabu Jabus Belly)'])) + + FoT = make_dungeon( + 'Forest Temple', + ['Forest Temple Lobby', 'Forest Temple NW Outdoors', 'Forest Temple NE Outdoors', 'Forest Temple Falling Room', + 'Forest Temple Block Push Room', 'Forest Temple Straightened Hall', 'Forest Temple Outside Upper Ledge', + 'Forest Temple Bow Region', 'Forest Temple Boss Region'], + ItemFactory('Boss Key (Forest Temple)'), + ItemFactory(['Small Key (Forest Temple)'] * 5), + ItemFactory(['Map (Forest Temple)', 'Compass (Forest Temple)'])) + + BW = make_dungeon( + 'Bottom of the Well', + ['Bottom of the Well'], + None, + ItemFactory(['Small Key (Bottom of the Well)'] * 3), + ItemFactory(['Map (Bottom of the Well)', 'Compass (Bottom of the Well)'])) + FiT = make_dungeon( + 'Fire Temple', + ['Fire Temple Lower', 'Fire Temple Middle', 'Fire Temple Upper'], + ItemFactory('Boss Key (Fire Temple)'), + ItemFactory(['Small Key (Fire Temple)'] * 8), + ItemFactory(['Map (Fire Temple)', 'Compass (Fire Temple)'])) + + IC = make_dungeon( + 'Ice Cavern', + ['Ice Cavern'], + None, [], + ItemFactory(['Map (Ice Cavern)', 'Compass (Ice Cavern)'])) + + WT = make_dungeon( + 'Water Temple', + ['Water Temple Lobby', 'Water Temple Middle Water Level', 'Water Temple Dark Link Region'], + ItemFactory('Boss Key (Water Temple)'), + ItemFactory(['Small Key (Water Temple)'] * 6), + ItemFactory(['Map (Water Temple)', 'Compass (Water Temple)'])) + + ShT = make_dungeon( + 'Shadow Temple', + ['Shadow Temple Beginning', 'Shadow Temple First Beamos', 'Shadow Temple Huge Pit', 'Shadow Temple Wind Tunnel', + 'Shadow Temple Beyond Boat'], + ItemFactory('Boss Key (Shadow Temple)'), + ItemFactory(['Small Key (Shadow Temple)'] * 5), + ItemFactory(['Map (Shadow Temple)', 'Compass (Shadow Temple)'])) + + GTG = make_dungeon( + 'Gerudo Training Grounds', + ['Gerudo Training Grounds Lobby', 'Gerudo Training Grounds Central Maze', + 'Gerudo Training Grounds Central Maze Right', 'Gerudo Training Grounds Lava Room', + 'Gerudo Training Grounds Hammer Room', 'Gerudo Training Grounds Eye Statue Lower', + 'Gerudo Training Grounds Eye Statue Upper', 'Gerudo Training Grounds Heavy Block Room'], + None, + ItemFactory(['Small Key (Gerudo Training Grounds)'] * 9), + []) + + SpT = make_dungeon( + 'Spirit Temple', + ['Spirit Temple Lobby', 'Child Spirit Temple', 'Early Adult Spirit Temple', 'Spirit Temple Central Chamber', + 'Spirit Temple Beyond Central Locked Door', 'Spirit Temple Beyond Final Locked Door'], + ItemFactory('Boss Key (Spirit Temple)'), + ItemFactory(['Small Key (Spirit Temple)'] * 5), + ItemFactory(['Map (Spirit Temple)', 'Compass (Spirit Temple)'])) + + GC = make_dungeon( + 'Ganons Castle', + ['Ganons Castle Lobby', 'Ganons Castle Forest Trial', 'Ganons Castle Fire Trial', 'Ganons Castle Water Trial', + 'Ganons Castle Shadow Trial', 'Ganons Castle Spirit Trial', 'Ganons Castle Light Trial', 'Ganons Castle Tower'], + ItemFactory('Boss Key (Ganons Castle)'), + ItemFactory(['Small Key (Ganons Castle)'] * 2), + []) world.dungeons = [DT, DC, JB, FoT, BW, FiT, IC, WT, ShT, GTG, SpT, GC] \ No newline at end of file diff --git a/Regions.py b/Regions.py index f5c50f247..83209aeb8 100644 --- a/Regions.py +++ b/Regions.py @@ -5,73 +5,237 @@ def create_regions(world): world.regions = [ - create_ow_region('Kokiri Forest', ['Kokiri Sword Chest', 'GS Kokiri Know It All House', 'GS Kokiri Bean Patch', 'GS Kokiri House of Twins'], ['Links House', 'Mido House', 'Saria House', 'House of Twins', 'Know It All House', 'Kokiri Shop', 'Deku Tree', 'Lost Woods', 'Lost Woods Bridge', 'Kokiri Forest Storms Grotto']), - create_interior_region('Links House', ['Links Pocket'], ['Links House Exit', 'Child Forest Warp Pad', 'Adult Forest Warp Pad', 'Temple Warp Pad', 'Crater Warp Pad', 'Lake Warp Pad', 'Graveyard Warp Pad', 'Colossus Warp Pad']), - create_interior_region('Mido House', ['Mido Chest Top Left', 'Mido Chest Top Right', 'Mido Chest Bottom Left', 'Mido Chest Bottom Right'], ['Mido House Exit']), - create_interior_region('Saria House', None, ['Saria House Exit']), - create_interior_region('House of Twins', None, ['House of Twins Exit']), - create_interior_region('Know It All House', None, ['Know It All House Exit']), - create_interior_region('Kokiri Shop', None, ['Kokiri Shop Exit']), - create_dungeon_region('Deku Tree Lobby', ['Deku Tree Lobby Chest', 'Deku Tree Compass Chest', 'Deku Tree Compass Room Side Chest', 'Deku Tree Basement Chest', 'GS Deku Tree Compass Room', 'GS Deku Tree Basement Vines', 'GS Deku Tree Basement Gate'], ['Deku Tree Exit', 'Deku Tree Slingshot Passage', 'Deku Tree Basement Path']), - create_dungeon_region('Deku Tree Slingshot Room', ['Deku Tree Slingshot Chest', 'Deku Tree Slingshot Room Side Chest'], ['Deku Tree Slingshot Exit']), - create_dungeon_region('Deku Tree Boss Room', ['GS Deku Tree Basement Back Room', 'Queen Gohma Heart', 'Queen Gohma'], ['Deku Tree Basement Vines']), - create_ow_region('Lost Woods', ['Skull Kid', 'Ocarina Memory Game', 'Target in Woods', 'Deku Salesman Woods', 'GS Lost Woods Bean Patch Near Bridge', 'GS Lost Woods Bean Patch Near Stage'], ['Lost Woods Front', 'Meadow Entrance', 'Woods to Goron City', 'Lost Woods Dive Warp', 'Adult Meadow Access', 'Lost Woods Generic Grotto', 'Deku Theater', 'Lost Woods Sales Grotto']), + create_ow_region( + 'Kokiri Forest', + ['Kokiri Sword Chest', 'GS Kokiri Know It All House', 'GS Kokiri Bean Patch', 'GS Kokiri House of Twins'], + ['Links House', 'Mido House', 'Saria House', 'House of Twins', 'Know It All House', 'Kokiri Shop', 'Deku Tree', + 'Lost Woods', 'Lost Woods Bridge', 'Kokiri Forest Storms Grotto']), + create_interior_region( + 'Links House', + ['Links Pocket'], + ['Links House Exit', 'Child Forest Warp Pad', 'Adult Forest Warp Pad', 'Temple Warp Pad', 'Crater Warp Pad', + 'Lake Warp Pad', 'Graveyard Warp Pad', 'Colossus Warp Pad']), + create_interior_region( + 'Mido House', + ['Mido Chest Top Left', 'Mido Chest Top Right', 'Mido Chest Bottom Left', 'Mido Chest Bottom Right'], + ['Mido House Exit']), + create_interior_region( + 'Saria House', + None, + ['Saria House Exit']), + create_interior_region( + 'House of Twins', + None, + ['House of Twins Exit']), + create_interior_region( + 'Know It All House', + None, + ['Know It All House Exit']), + create_interior_region( + 'Kokiri Shop', + None, + ['Kokiri Shop Exit']), + create_dungeon_region( + 'Deku Tree Lobby', + ['Deku Tree Lobby Chest', 'Deku Tree Compass Chest', 'Deku Tree Compass Room Side Chest', + 'Deku Tree Basement Chest', 'GS Deku Tree Compass Room', 'GS Deku Tree Basement Vines', + 'GS Deku Tree Basement Gate'], + ['Deku Tree Exit', 'Deku Tree Slingshot Passage', 'Deku Tree Basement Path']), + create_dungeon_region( + 'Deku Tree Slingshot Room', + ['Deku Tree Slingshot Chest', 'Deku Tree Slingshot Room Side Chest'], + ['Deku Tree Slingshot Exit']), + create_dungeon_region( + 'Deku Tree Boss Room', + ['GS Deku Tree Basement Back Room', 'Queen Gohma Heart', 'Queen Gohma'], + ['Deku Tree Basement Vines']), + create_ow_region( + 'Lost Woods', + ['Skull Kid', 'Ocarina Memory Game', 'Target in Woods', 'Deku Salesman Woods', + 'GS Lost Woods Bean Patch Near Bridge', 'GS Lost Woods Bean Patch Near Stage'], + ['Lost Woods Front', 'Meadow Entrance', 'Woods to Goron City', 'Lost Woods Dive Warp', 'Adult Meadow Access', + 'Lost Woods Generic Grotto', 'Deku Theater', 'Lost Woods Sales Grotto']), create_ow_region('Sacred Forest Meadow Entryway', None, ['Meadow Exit', 'Meadow Gate', 'Front of Meadow Grotto']), create_ow_region('Sacred Forest Meadow', ['Song from Saria'], ['Meadow Gate Exit', 'Meadow Fairy Grotto']), create_ow_region('Lost Woods Bridge', ['Gift from Saria'], ['Kokiri Forest Entrance', 'Forest Exit']), - create_ow_region('Hyrule Field', ['Ocarina of Time', 'Song from Ocarina of Time'], ['Field to Forest', 'Field to Lake', 'Field to Valley', 'Field to Castle Town', 'Field to Kakariko', 'Field to Zora River', 'Lon Lon Rance Entrance', - 'Remote Southern Grotto', 'Field Near Lake Outside Fence Grotto', 'Field Near Lake Inside Fence Grotto', 'Field Valley Grotto', 'Field West Castle Town Grotto', - 'Field Far West Castle Town Grotto', 'Field Kakariko Grotto', 'Field North Lon Lon Grotto']), - create_ow_region('Lake Hylia', ['Underwater Bottle', 'Lake Hylia Sun', 'Lake Hylia Freestanding PoH', 'GS Lake Hylia Bean Patch', 'GS Lake Hylia Lab Wall', 'GS Lake Hylia Small Island', 'GS Lake Hylia Giant Tree'], ['Lake Exit', 'Lake Hylia Dive Warp', 'Lake Hylia Lab', 'Fishing Hole', 'Water Temple Entrance', 'Lake Hylia Grotto']), + create_ow_region('Hyrule Field', + ['Ocarina of Time', 'Song from Ocarina of Time'], + ['Field to Forest', 'Field to Lake', 'Field to Valley', 'Field to Castle Town', 'Field to Kakariko', + 'Field to Zora River', 'Lon Lon Rance Entrance', 'Remote Southern Grotto', 'Field Near Lake Outside Fence Grotto', + 'Field Near Lake Inside Fence Grotto', 'Field Valley Grotto', 'Field West Castle Town Grotto', + 'Field Far West Castle Town Grotto', 'Field Kakariko Grotto', 'Field North Lon Lon Grotto']), + create_ow_region( + 'Lake Hylia', + ['Underwater Bottle', 'Lake Hylia Sun', 'Lake Hylia Freestanding PoH', 'GS Lake Hylia Bean Patch', + 'GS Lake Hylia Lab Wall', 'GS Lake Hylia Small Island', 'GS Lake Hylia Giant Tree'], + ['Lake Exit', 'Lake Hylia Dive Warp', 'Lake Hylia Lab', 'Fishing Hole', 'Water Temple Entrance', 'Lake Hylia Grotto']), create_interior_region('Lake Hylia Lab', ['Diving in the Lab', 'GS Lab Underwater Crate']), create_interior_region('Fishing Hole', ['Child Fishing', 'Adult Fishing']), - create_dungeon_region('Water Temple Lobby', ['Water Temple Map Chest', 'Water Temple Compass Chest', 'Water Temple Torches Chest', 'Water Temple Dragon Chest', 'Water Temple Central Bow Target Chest', 'Water Temple Boss Key Chest', 'Morpha Heart', 'Morpha', 'GS Water Temple South Basement', 'GS Water Temple Near Boss Key Chest'], ['Water Temple Exit', 'Water Temple Central Pillar', 'Water Temple Upper Locked Door']), - create_dungeon_region('Water Temple Middle Water Level', ['Water Temple Central Pillar Chest', 'Water Temple Cracked Wall Chest', 'GS Water Temple Central Room']), - create_dungeon_region('Water Temple Dark Link Region', ['Water Temple Dark Link Chest', 'Water Temple River Chest', 'GS Water Temple Serpent River', 'GS Water Temple Falling Platform Room']), - create_ow_region('Gerudo Valley', ['Gerudo Valley Waterfall Freestanding PoH', 'Gerudo Valley Crate Freestanding PoH', 'GS Gerudo Valley Small Bridge', 'GS Gerudo Valley Bean Patch'], ['Valley Exit', 'Valley River', 'Bridge Crossing']), - create_ow_region('Gerudo Valley Far Side', ['Gerudo Valley Hammer Rocks Chest', 'GS Gerudo Valley Behind Tent', 'GS Gerudo Valley Pillar'], ['Fortress Entrance']), - create_ow_region('Gerudo Fortress', ['Gerudo Fortress Rooftop Chest', 'Horseback Archery 1000 Points', 'Horseback Archery 1500 Points', 'Gerudo Fortress North F1 Carpenter', 'Gerudo Fortress North F2 Carpenter', 'Gerudo Fortress South F1 Carpenter', 'Gerudo Fortress South F2 Carpenter', 'Gerudo Fortress Carpenter Rescue', 'Gerudo Fortress Membership Card', 'GS Gerudo Fortress Archery Range', 'GS Gerudo Fortress Top Floor'], ['Haunted Wasteland Entrance', 'Gerudo Training Grounds Entrance']), - create_ow_region('Haunted Wasteland', ['Haunted Wasteland Structure Chest', 'GS Wasteland Ruins'], ['Haunted Wasteland Crossing']), - create_ow_region('Desert Colossus', ['Colossus Freestanding PoH', 'Sheik at Colossus', 'GS Desert Colossus Bean Patch', 'GS Desert Colossus Tree', 'GS Desert Colossus Hill'], ['Colossus Fairy', 'Spirit Temple Entrance']), - create_interior_region('Colossus Fairy', ['Desert Colossus Fairy Reward']), - create_dungeon_region('Gerudo Training Grounds Lobby', ['Gerudo Training Grounds Lobby Left Chest', 'Gerudo Training Grounds Lobby Right Chest', 'Gerudo Training Grounds Stalfos Chest', 'Gerudo Training Grounds Beamos Chest'], ['Gerudo Training Grounds Exit', 'Gerudo Training Ground Left Silver Rupees', 'Gerudo Training Ground Beamos', 'Gerudo Training Ground Central Door']), - create_dungeon_region('Gerudo Training Grounds Central Maze', ['Gerudo Training Grounds Hidden Ceiling Chest', 'Gerudo Training Grounds Maze Path First Chest', 'Gerudo Training Grounds Maze Path Second Chest', 'Gerudo Training Grounds Maze Path Third Chest', 'Gerudo Training Grounds Maze Path Final Chest'], ['Gerudo Training Grounds Right Locked Doors']), - create_dungeon_region('Gerudo Training Grounds Central Maze Right', ['Gerudo Training Grounds Maze Right Central Chest', 'Gerudo Training Grounds Maze Right Side Chest', 'Gerudo Training Grounds Freestanding Key'], ['Gerudo Training Grounds Maze Exit']), - create_dungeon_region('Gerudo Training Grounds Lava Room', ['Gerudo Training Grounds Underwater Silver Rupee Chest'], ['Gerudo Training Grounds Maze Ledge', 'Gerudo Training Grounds Right Hookshot Target']), + create_dungeon_region( + 'Water Temple Lobby', + ['Water Temple Map Chest', 'Water Temple Compass Chest', 'Water Temple Torches Chest', 'Water Temple Dragon Chest', + 'Water Temple Central Bow Target Chest', 'Water Temple Boss Key Chest', 'Morpha Heart', 'Morpha', + 'GS Water Temple South Basement', 'GS Water Temple Near Boss Key Chest'], + ['Water Temple Exit', 'Water Temple Central Pillar', 'Water Temple Upper Locked Door']), + create_dungeon_region( + 'Water Temple Middle Water Level', + ['Water Temple Central Pillar Chest', 'Water Temple Cracked Wall Chest', 'GS Water Temple Central Room']), + create_dungeon_region( + 'Water Temple Dark Link Region', + ['Water Temple Dark Link Chest', 'Water Temple River Chest', 'GS Water Temple Serpent River', + 'GS Water Temple Falling Platform Room']), + create_ow_region( + 'Gerudo Valley', + ['Gerudo Valley Waterfall Freestanding PoH', 'Gerudo Valley Crate Freestanding PoH', + 'GS Gerudo Valley Small Bridge', 'GS Gerudo Valley Bean Patch'], + ['Valley Exit', 'Valley River', 'Bridge Crossing']), + create_ow_region( + 'Gerudo Valley Far Side', + ['Gerudo Valley Hammer Rocks Chest', 'GS Gerudo Valley Behind Tent', 'GS Gerudo Valley Pillar'], + ['Fortress Entrance']), + create_ow_region( + 'Gerudo Fortress', + ['Gerudo Fortress Rooftop Chest', 'Horseback Archery 1000 Points', 'Horseback Archery 1500 Points', + 'Gerudo Fortress North F1 Carpenter', 'Gerudo Fortress North F2 Carpenter', + 'Gerudo Fortress South F1 Carpenter', 'Gerudo Fortress South F2 Carpenter', 'Gerudo Fortress Carpenter Rescue', + 'Gerudo Fortress Membership Card', 'GS Gerudo Fortress Archery Range', 'GS Gerudo Fortress Top Floor'], + ['Haunted Wasteland Entrance', 'Gerudo Training Grounds Entrance']), + create_ow_region( + 'Haunted Wasteland', + ['Haunted Wasteland Structure Chest', 'GS Wasteland Ruins'], + ['Haunted Wasteland Crossing']), + create_ow_region( + 'Desert Colossus', + ['Colossus Freestanding PoH', 'Sheik at Colossus', 'GS Desert Colossus Bean Patch', 'GS Desert Colossus Tree', + 'GS Desert Colossus Hill'], + ['Colossus Fairy', 'Spirit Temple Entrance']), + create_interior_region( + 'Colossus Fairy', + ['Desert Colossus Fairy Reward']), + create_dungeon_region( + 'Gerudo Training Grounds Lobby', + ['Gerudo Training Grounds Lobby Left Chest', 'Gerudo Training Grounds Lobby Right Chest', + 'Gerudo Training Grounds Stalfos Chest', 'Gerudo Training Grounds Beamos Chest'], + ['Gerudo Training Grounds Exit', 'Gerudo Training Ground Left Silver Rupees', 'Gerudo Training Ground Beamos', + 'Gerudo Training Ground Central Door']), + create_dungeon_region( + 'Gerudo Training Grounds Central Maze', + ['Gerudo Training Grounds Hidden Ceiling Chest', 'Gerudo Training Grounds Maze Path First Chest', + 'Gerudo Training Grounds Maze Path Second Chest', 'Gerudo Training Grounds Maze Path Third Chest', + 'Gerudo Training Grounds Maze Path Final Chest'], + ['Gerudo Training Grounds Right Locked Doors']), + create_dungeon_region( + 'Gerudo Training Grounds Central Maze Right', + ['Gerudo Training Grounds Maze Right Central Chest', 'Gerudo Training Grounds Maze Right Side Chest', + 'Gerudo Training Grounds Freestanding Key'], + ['Gerudo Training Grounds Maze Exit']), + create_dungeon_region( + 'Gerudo Training Grounds Lava Room', + ['Gerudo Training Grounds Underwater Silver Rupee Chest'], + ['Gerudo Training Grounds Maze Ledge', 'Gerudo Training Grounds Right Hookshot Target']), create_dungeon_region('Gerudo Training Grounds Hammer Room', ['Gerudo Training Grounds Hammer Room Clear Chest', 'Gerudo Training Grounds Hammer Room Switch Chest'], ['Gerudo Training Grounds Hammer Target', 'Gerudo Training Grounds Hammer Room Clear']), - create_dungeon_region('Gerudo Training Grounds Eye Statue Lower', ['Gerudo Training Grounds Eye Statue Chest'], ['Gerudo Training Grounds Eye Statue Exit']), - create_dungeon_region('Gerudo Training Grounds Eye Statue Upper', ['Gerudo Training Grounds Near Scarecrow Chest'], ['Gerudo Training Grounds Eye Statue Drop']), - create_dungeon_region('Gerudo Training Grounds Heavy Block Room', ['Gerudo Training Grounds Before Heavy Block Chest', 'Gerudo Training Grounds Heavy Block First Chest', 'Gerudo Training Grounds Heavy Block Second Chest', 'Gerudo Training Grounds Heavy Block Third Chest', 'Gerudo Training Grounds Heavy Block Fourth Chest'], ['Gerudo Training Grounds Hidden Hookshot Target']), - create_dungeon_region('Spirit Temple Lobby', None, ['Spirit Temple Exit', 'Spirit Temple Crawl Passage', 'Spirit Temple Silver Block']), - create_dungeon_region('Child Spirit Temple', ['Spirit Temple Child Left Chest', 'Spirit Temple Child Right Chest', 'GS Spirit Temple Metal Fence'], ['Child Spirit Temple Passthrough']), - create_dungeon_region('Early Adult Spirit Temple', ['Spirit Temple Compass Chest', 'Spirit Temple Early Adult Right Chest', 'Spirit Temple First Mirror Right Chest', 'Spirit Temple First Mirror Left Chest', 'GS Spirit Temple Boulder Room'], ['Adult Spirit Temple Passthrough']), - create_dungeon_region('Spirit Temple Central Chamber', ['Spirit Temple Map Chest', 'Spirit Temple Child Climb East Chest', 'Spirit Temple Child Climb North Chest', 'Spirit Temple Sun Block Room Chest', 'Spirit Temple Statue Hand Chest', 'Spirit Temple NE Main Room Chest', 'GS Spirit Temple Bomb for Light Room', 'GS Spirit Temple Hall to West Iron Knuckle', 'GS Spirit Temple Lobby'], ['Spirit Temple to Hands', 'Spirit Temple Central Locked Door']), - create_dungeon_region('Spirit Temple Outdoor Hands', ['Silver Gauntlets Chest', 'Mirror Shield Chest']), - create_dungeon_region('Spirit Temple Beyond Central Locked Door', ['Spirit Temple Near Four Armos Chest', 'Spirit Temple Hallway Left Invisible Chest', 'Spirit Temple Hallway Right Invisible Chest'], ['Spirit Temple Final Locked Door']), - create_dungeon_region('Spirit Temple Beyond Final Locked Door', ['Spirit Temple Boss Key Chest', 'Spirit Temple Topmost Chest', 'Twinrova Heart', 'Twinrova']), - create_ow_region('Castle Town', None, ['Castle Town Exit', 'Temple of Time', 'Hyrule Castle Grounds', 'Castle Town Rupee Room', 'Castle Town Bazaar', 'Castle Town Mask Shop', 'Castle Town Shooting Gallery', 'Ganons Castle Grounds', - 'Castle Town Bombchu Bowling', 'Castle Town Potion Shop', 'Castle Town Treasure Chest Game', 'Castle Town Bombchu Shop', 'Castle Town Dog Lady', 'Castle Town Man in Green House']), - create_interior_region('Temple of Time', ['Zelda'], ['Temple of Time Exit', 'Door of Time']), - create_interior_region('Beyond Door of Time', ['Master Sword Pedestal', 'Sheik at Temple'], ['Emerge as Adult']), - create_ow_region('Hyrule Castle Grounds', ['Malon Egg', 'GS Hyrule Castle Tree'], ['Hyrule Castle Grounds Exit', 'Hyrule Castle Garden', 'Hyrule Castle Fairy', 'Castle Storms Grotto']), - create_ow_region('Hyrule Castle Garden', ['Zeldas Letter', 'Impa at Castle'], ['Hyrule Castle Garden Exit']), - create_interior_region('Hyrule Castle Fairy', ['Hyrule Castle Fairy Reward']), - create_ow_region('Ganons Castle Grounds', ['GS Outside Ganon\'s Castle'], ['Ganons Castle Grounds Exit', 'Ganons Castle Fairy', 'Rainbow Bridge']), + create_dungeon_region( + 'Gerudo Training Grounds Eye Statue Lower', + ['Gerudo Training Grounds Eye Statue Chest'], + ['Gerudo Training Grounds Eye Statue Exit']), + create_dungeon_region( + 'Gerudo Training Grounds Eye Statue Upper', + ['Gerudo Training Grounds Near Scarecrow Chest'], + ['Gerudo Training Grounds Eye Statue Drop']), + create_dungeon_region( + 'Gerudo Training Grounds Heavy Block Room', + ['Gerudo Training Grounds Before Heavy Block Chest', 'Gerudo Training Grounds Heavy Block First Chest', + 'Gerudo Training Grounds Heavy Block Second Chest', 'Gerudo Training Grounds Heavy Block Third Chest', + 'Gerudo Training Grounds Heavy Block Fourth Chest'], + ['Gerudo Training Grounds Hidden Hookshot Target']), + create_dungeon_region( + 'Spirit Temple Lobby', + None, + ['Spirit Temple Exit', 'Spirit Temple Crawl Passage', 'Spirit Temple Silver Block']), + create_dungeon_region( + 'Child Spirit Temple', + ['Spirit Temple Child Left Chest', 'Spirit Temple Child Right Chest', 'GS Spirit Temple Metal Fence'], + ['Child Spirit Temple Passthrough']), + create_dungeon_region( + 'Early Adult Spirit Temple', + ['Spirit Temple Compass Chest', 'Spirit Temple Early Adult Right Chest', + 'Spirit Temple First Mirror Right Chest', 'Spirit Temple First Mirror Left Chest', + 'GS Spirit Temple Boulder Room'], + ['Adult Spirit Temple Passthrough']), + create_dungeon_region( + 'Spirit Temple Central Chamber', + ['Spirit Temple Map Chest', 'Spirit Temple Child Climb East Chest', 'Spirit Temple Child Climb North Chest', + 'Spirit Temple Sun Block Room Chest', 'Spirit Temple Statue Hand Chest', 'Spirit Temple NE Main Room Chest', + 'GS Spirit Temple Bomb for Light Room', 'GS Spirit Temple Hall to West Iron Knuckle', 'GS Spirit Temple Lobby'], + ['Spirit Temple to Hands', 'Spirit Temple Central Locked Door']), + create_dungeon_region( + 'Spirit Temple Outdoor Hands', + ['Silver Gauntlets Chest', 'Mirror Shield Chest']), + create_dungeon_region( + 'Spirit Temple Beyond Central Locked Door', + ['Spirit Temple Near Four Armos Chest', 'Spirit Temple Hallway Left Invisible Chest', + 'Spirit Temple Hallway Right Invisible Chest'], + ['Spirit Temple Final Locked Door']), + create_dungeon_region( + 'Spirit Temple Beyond Final Locked Door', + ['Spirit Temple Boss Key Chest', 'Spirit Temple Topmost Chest', 'Twinrova Heart', 'Twinrova']), + create_ow_region( + 'Castle Town', + None, + ['Castle Town Exit', 'Temple of Time', 'Hyrule Castle Grounds', 'Castle Town Rupee Room', 'Castle Town Bazaar', + 'Castle Town Mask Shop', 'Castle Town Shooting Gallery', 'Ganons Castle Grounds', + 'Castle Town Bombchu Bowling', 'Castle Town Potion Shop', 'Castle Town Treasure Chest Game', + 'Castle Town Bombchu Shop', 'Castle Town Dog Lady', 'Castle Town Man in Green House']), + create_interior_region( + 'Temple of Time', + ['Zelda'], + ['Temple of Time Exit', 'Door of Time']), + create_interior_region( + 'Beyond Door of Time', + ['Master Sword Pedestal', 'Sheik at Temple'], + ['Emerge as Adult']), + create_ow_region( + 'Hyrule Castle Grounds', + ['Malon Egg', 'GS Hyrule Castle Tree'], + ['Hyrule Castle Grounds Exit', 'Hyrule Castle Garden', 'Hyrule Castle Fairy', 'Castle Storms Grotto']), + create_ow_region( + 'Hyrule Castle Garden', + ['Zeldas Letter', 'Impa at Castle'], + ['Hyrule Castle Garden Exit']), + create_interior_region( + 'Hyrule Castle Fairy', + ['Hyrule Castle Fairy Reward']), + create_ow_region( + 'Ganons Castle Grounds', + ['GS Outside Ganon\'s Castle'], + ['Ganons Castle Grounds Exit', 'Ganons Castle Fairy', 'Rainbow Bridge']), create_interior_region('Ganons Castle Fairy', ['Ganons Castle Fairy Reward']), create_interior_region('Castle Town Rupee Room', ['10 Big Poes', 'GS Castle Market Guard House']), create_interior_region('Castle Town Bazaar'), create_interior_region('Castle Town Mask Shop'), create_interior_region('Castle Town Shooting Gallery', ['Child Shooting Gallery']), - create_interior_region('Castle Town Bombchu Bowling', ['Bombchu Bowling Bomb Bag', 'Bombchu Bowling Piece of Heart']), + create_interior_region( + 'Castle Town Bombchu Bowling', + ['Bombchu Bowling Bomb Bag', 'Bombchu Bowling Piece of Heart']), create_interior_region('Castle Town Potion Shop'), create_interior_region('Castle Town Treasure Chest Game', ['Treasure Chest Game']), create_interior_region('Castle Town Bombchu Shop'), create_interior_region('Castle Town Dog Lady', ['Dog Lady']), create_interior_region('Castle Town Man in Green House'), - create_ow_region('Kakariko Village', ['Man on Roof', 'Anju as Adult', 'Anjus Chickens', 'Sheik in Kakariko', 'GS Kakariko House Under Construction', 'GS Kakariko Skulltula House', 'GS Kakariko Guard\'s House', 'GS Kakariko Tree', 'GS Kakariko Watchtower', 'GS Kakariko Above Impa\'s House'], ['Kakariko Exit', 'Carpenter Boss House', 'House of Skulltulla', 'Impas House', 'Impas House Back', 'Windmill', 'Kakariko Bazaar', 'Kakariko Shooting Gallery', 'Bottom of the Well', - 'Kakariko Potion Shop Front', 'Kakariko Potion Shop Back', 'Odd Medicine Building', 'Kakariko Bombable Grotto', 'Kakariko Back Grotto', 'Graveyard Entrance', 'Death Mountain Entrance']), + create_ow_region( + 'Kakariko Village', + ['Man on Roof', 'Anju as Adult', 'Anjus Chickens', 'Sheik in Kakariko', 'GS Kakariko House Under Construction', + 'GS Kakariko Skulltula House', 'GS Kakariko Guard\'s House', 'GS Kakariko Tree', 'GS Kakariko Watchtower', + 'GS Kakariko Above Impa\'s House'], + ['Kakariko Exit', 'Carpenter Boss House', 'House of Skulltulla', 'Impas House', 'Impas House Back', 'Windmill', + 'Kakariko Bazaar', 'Kakariko Shooting Gallery', 'Bottom of the Well', 'Kakariko Potion Shop Front', + 'Kakariko Potion Shop Back', 'Odd Medicine Building', 'Kakariko Bombable Grotto', 'Kakariko Back Grotto', + 'Graveyard Entrance', 'Death Mountain Entrance']), create_interior_region('Carpenter Boss House'), - create_interior_region('House of Skulltulla', ['10 Gold Skulltulla Reward', '20 Gold Skulltulla Reward', '30 Gold Skulltulla Reward', '40 Gold Skulltulla Reward', '50 Gold Skulltulla Reward']), + create_interior_region( + 'House of Skulltulla', + ['10 Gold Skulltulla Reward', '20 Gold Skulltulla Reward', '30 Gold Skulltulla Reward', + '40 Gold Skulltulla Reward', '50 Gold Skulltulla Reward']), create_interior_region('Impas House'), create_interior_region('Impas House Back', ['Impa House Freestanding PoH']), create_interior_region('Windmill', ['Windmill Freestanding PoH', 'Song at Windmill']), @@ -80,77 +244,275 @@ def create_regions(world): create_interior_region('Kakariko Potion Shop Front'), create_interior_region('Kakariko Potion Shop Back'), create_interior_region('Odd Medicine Building'), - create_dungeon_region('Bottom of the Well', ['Bottom of the Well Front Left Hidden Wall', 'Bottom of the Well Front Center Bombable', 'Bottom of the Well Right Bottom Hidden Wall', 'Bottom of the Well Center Large Chest', 'Bottom of the Well Center Small Chest', 'Bottom of the Well Back Left Bombable', 'Bottom of the Well Freestanding Key', - 'Bottom of the Well Defeat Boss', 'Bottom of the Well Invisible Chest', 'Bottom of the Well Underwater Front Chest', 'Bottom of the Well Underwater Left Chest', 'Bottom of the Well Basement Chest', 'Bottom of the Well Locked Pits', 'Bottom of the Well Behind Right Grate', 'GS Well West Inner Room', 'GS Well East Inner Room', 'GS Well Like Like Cage'], ['Bottom of the Well Exit']), - create_ow_region('Graveyard', ['Graveyard Freestanding PoH', 'Gravedigging Tour', 'GS Graveyard Wall', 'GS Graveyard Bean Patch'], ['Shield Grave', 'Composer Grave', 'Heart Piece Grave', 'Dampes Grave', 'Dampes House', 'Graveyard Exit']), + create_dungeon_region( + 'Bottom of the Well', + ['Bottom of the Well Front Left Hidden Wall', 'Bottom of the Well Front Center Bombable', + 'Bottom of the Well Right Bottom Hidden Wall', 'Bottom of the Well Center Large Chest', + 'Bottom of the Well Center Small Chest', 'Bottom of the Well Back Left Bombable', + 'Bottom of the Well Freestanding Key', 'Bottom of the Well Defeat Boss', 'Bottom of the Well Invisible Chest', + 'Bottom of the Well Underwater Front Chest', 'Bottom of the Well Underwater Left Chest', + 'Bottom of the Well Basement Chest', 'Bottom of the Well Locked Pits', 'Bottom of the Well Behind Right Grate', + 'GS Well West Inner Room', 'GS Well East Inner Room', 'GS Well Like Like Cage'], + ['Bottom of the Well Exit']), + create_ow_region( + 'Graveyard', + ['Graveyard Freestanding PoH', 'Gravedigging Tour', 'GS Graveyard Wall', 'GS Graveyard Bean Patch'], + ['Shield Grave', 'Composer Grave', 'Heart Piece Grave', 'Dampes Grave', 'Dampes House', 'Graveyard Exit']), create_interior_region('Shield Grave', ['Shield Grave Chest']), create_interior_region('Heart Piece Grave', ['Heart Piece Grave Chest']), create_interior_region('Composer Grave', ['Composer Grave Chest', 'Song from Composer Grave']), create_interior_region('Dampes Grave', ['Hookshot Chest', 'Dampe Race Freestanding PoH']), create_interior_region('Dampes House'), create_ow_region('Shadow Temple Warp Region', None, ['Drop to Graveyard', 'Shadow Temple Entrance']), - create_dungeon_region('Shadow Temple Beginning', ['Shadow Temple Map Chest', 'Shadow Temple Hover Boots Chest'], ['Shadow Temple Exit', 'Shadow Temple First Pit']), - create_dungeon_region('Shadow Temple First Beamos', ['Shadow Temple Compass Chest', 'Shadow Temple Early Silver Rupee Chest'], ['Shadow Temple Bomb Wall']), - create_dungeon_region('Shadow Temple Huge Pit', ['Shadow Temple Invisible Blades Visible Chest', 'Shadow Temple Invisible Blades Invisible Chest', 'Shadow Temple Falling Spikes Lower Chest', 'Shadow Temple Falling Spikes Upper Chest', 'Shadow Temple Falling Spikes Switch Chest', 'Shadow Temple Invisible Spikes Chest', 'Shadow Temple Freestanding Key', 'GS Shadow Temple Like Like Room', 'GS Shadow Temple Crusher Room'], ['Shadow Temple Hookshot Target']), - create_dungeon_region('Shadow Temple Wind Tunnel', ['Shadow Temple Wind Hint Chest', 'Shadow Temple After Wind Enemy Chest', 'Shadow Temple After Wind Hidden Chest', 'GS Shadow Temple Single Giant Pot', 'GS Shadow Temple Near Ship'], ['Shadow Temple Boat']), - create_dungeon_region('Shadow Temple Beyond Boat', ['Shadow Temple Spike Walls Left Chest', 'Shadow Temple Boss Key Chest', 'Shadow Temple Hidden Floormaster Chest', 'Bongo Bongo Heart', 'Bongo Bongo', 'GS Shadow Temple Tripple Giant Pot']), - create_ow_region('Death Mountain', ['Death Mountain Bombable Chest', 'Biggoron', 'DM Trail Freestanding PoH', 'GS Mountain Trail Bean Patch', 'GS Mountain Trail Bomb Alcove', 'GS Mountain Trail Path to Crater', 'GS Mountain Trail Above Dodongo\'s Cavern'], ['Death Mountain Exit', 'Goron City Entrance', 'Mountain Crater Entrance', 'Mountain Summit Fairy', 'Dodongos Cavern Rocks', 'Mountain Bombable Grotto', 'Mountain Storms Grotto']), - create_ow_region('Dodongos Cavern Entryway', None, ['Dodongos Cavern', 'Mountain Access from Behind Rock']), - create_ow_region('Goron City', ['Goron City Leftmost Maze Chest', 'Goron City Left Maze Chest', 'Goron City Right Maze Chest', 'Goron City Pot Freestanding PoH', 'Rolling Goron as Child', 'Link the Goron', 'GS Goron City Boulder Maze', 'GS Goron City Center Platform'], ['Goron City Exit', 'Goron City Bomb Wall', 'Darunias Chamber', 'Crater Access']), - create_ow_region('Goron City Woods Warp', None, ['Goron City from Woods', 'Goron City to Woods']), + create_dungeon_region( + 'Shadow Temple Beginning', + ['Shadow Temple Map Chest', 'Shadow Temple Hover Boots Chest'], + ['Shadow Temple Exit', 'Shadow Temple First Pit']), + create_dungeon_region( + 'Shadow Temple First Beamos', + ['Shadow Temple Compass Chest', 'Shadow Temple Early Silver Rupee Chest'], + ['Shadow Temple Bomb Wall']), + create_dungeon_region( + 'Shadow Temple Huge Pit', + ['Shadow Temple Invisible Blades Visible Chest', 'Shadow Temple Invisible Blades Invisible Chest', + 'Shadow Temple Falling Spikes Lower Chest', 'Shadow Temple Falling Spikes Upper Chest', + 'Shadow Temple Falling Spikes Switch Chest', 'Shadow Temple Invisible Spikes Chest', + 'Shadow Temple Freestanding Key', 'GS Shadow Temple Like Like Room', 'GS Shadow Temple Crusher Room'], + ['Shadow Temple Hookshot Target']), + create_dungeon_region( + 'Shadow Temple Wind Tunnel', + ['Shadow Temple Wind Hint Chest', 'Shadow Temple After Wind Enemy Chest', + 'Shadow Temple After Wind Hidden Chest', 'GS Shadow Temple Single Giant Pot', 'GS Shadow Temple Near Ship'], + ['Shadow Temple Boat']), + create_dungeon_region( + 'Shadow Temple Beyond Boat', + ['Shadow Temple Spike Walls Left Chest', 'Shadow Temple Boss Key Chest', + 'Shadow Temple Hidden Floormaster Chest', 'Bongo Bongo Heart', 'Bongo Bongo', + 'GS Shadow Temple Tripple Giant Pot']), + create_ow_region( + 'Death Mountain', + ['Death Mountain Bombable Chest', 'Biggoron', 'DM Trail Freestanding PoH', 'GS Mountain Trail Bean Patch', + 'GS Mountain Trail Bomb Alcove', 'GS Mountain Trail Path to Crater', + 'GS Mountain Trail Above Dodongo\'s Cavern'], + ['Death Mountain Exit', 'Goron City Entrance', 'Mountain Crater Entrance', 'Mountain Summit Fairy', + 'Dodongos Cavern Rocks', 'Mountain Bombable Grotto', 'Mountain Storms Grotto']), + create_ow_region( + 'Dodongos Cavern Entryway', + None, + ['Dodongos Cavern', 'Mountain Access from Behind Rock']), + create_ow_region( + 'Goron City', + ['Goron City Leftmost Maze Chest', 'Goron City Left Maze Chest', 'Goron City Right Maze Chest', + 'Goron City Pot Freestanding PoH', 'Rolling Goron as Child', 'Link the Goron', 'GS Goron City Boulder Maze', + 'GS Goron City Center Platform'], + ['Goron City Exit', 'Goron City Bomb Wall', 'Darunias Chamber', 'Crater Access']), + create_ow_region( + 'Goron City Woods Warp', + None, + ['Goron City from Woods', 'Goron City to Woods']), create_ow_region('Darunias Chamber', ['Darunias Joy'], ['Darunias Chamber Exit']), - create_ow_region('Death Mountain Crater Upper', ['DM Crater Wall Freestanding PoH', 'GS Death Mounter Crater Crate'], ['Crater Exit', 'Crater Hover Boots', 'Crater Scarecrow', 'Top of Crater Grotto']), - create_ow_region('Death Mountain Crater Lower', None, ['Crater to City', 'Crater Fairy', 'Crater Bridge', 'Crater Ascent']), - create_ow_region('Death Mountain Crater Central', ['DM Crater Volcano Freestanding PoH', 'Sheik in Crater', 'GS Death Mounter Bean Patch'], ['Crater Bridge Reverse', 'Fire Temple Entrance']), - create_interior_region('Crater Fairy', ['Crater Fairy Reward']), + create_ow_region( + 'Death Mountain Crater Upper', + ['DM Crater Wall Freestanding PoH', 'GS Death Mounter Crater Crate'], + ['Crater Exit', 'Crater Hover Boots', 'Crater Scarecrow', 'Top of Crater Grotto']), + create_ow_region( + 'Death Mountain Crater Lower', + None, + ['Crater to City', 'Crater Fairy', 'Crater Bridge', 'Crater Ascent']), + create_ow_region( + 'Death Mountain Crater Central', + ['DM Crater Volcano Freestanding PoH', 'Sheik in Crater', 'GS Death Mounter Bean Patch'], + ['Crater Bridge Reverse', 'Fire Temple Entrance']), + create_interior_region( + 'Crater Fairy', + ['Crater Fairy Reward']), create_interior_region('Mountain Summit Fairy', ['Mountain Summit Fairy Reward']), - create_dungeon_region('Dodongos Cavern Beginning', None, ['Dodongos Cavern Exit', 'Dodongos Cavern Lobby']), - create_dungeon_region('Dodongos Cavern Lobby', ['Dodongos Cavern Map Chest', 'Dodongos Cavern Compass Chest', 'GS Dodongo\'s Cavern East Side Room', 'GS Dodongo\'s Cavern Scarecrow'], ['Dodongos Cavern Retreat', 'Dodongos Cavern Left Door']), - create_dungeon_region('Dodongos Cavern Climb', ['Dodongos Cavern Bomb Flower Platform', 'GS Dodongo\'s Cavern Vines Above Stairs'], ['Dodongos Cavern Bridge Fall', 'Dodongos Cavern Slingshot Target']), - create_dungeon_region('Dodongos Cavern Far Bridge', ['Dodongos Cavern Bomb Bag Chest', 'Dodongos Cavern End of Bridge Chest', 'GS Dodongo\'s Cavern Alcove Above Stairs'], ['Dodongos Cavern Bomb Drop', 'Dodongos Cavern Bridge Fall 2']), - create_dungeon_region('Dodongos Cavern Boss Area', ['Chest Above King Dodongo', 'King Dodongo Heart', 'King Dodongo', 'GS Dodongo\'s Cavern Back Room'], ['Dodongos Cavern Exit Skull']), - create_ow_region('Zora River Front', ['GS Zora River Tree'], ['Zora River Rocks', 'Zora River Adult', 'Zora River Exit']), - create_ow_region('Zora River Child', ['Magic Bean Salesman', 'Frog Ocarina Game', 'Frogs in the Rain', 'GS Zora River Ladder'], ['Zora River Child to Shared', 'Zora River Waterfall']), - create_ow_region('Zora River Adult', ['GS Zora River Near Raised Grottos', 'GS Zora River Above Bridge'], ['Zoras Domain Adult Access', 'Zora River Adult to Shared']), - create_ow_region('Zora River Shared', ['Zora River Lower Freestanding PoH', 'Zora River Upper Freestanding PoH'], ['Zora River Downstream', 'Zora River Plateau Open Grotto', 'Zora River Plateau Bombable Grotto', 'Zora River Dive Warp']), - create_ow_region('Zoras Domain', ['Diving Minigame', 'Zoras Domain Torch Run', 'King Zora Moves'], ['Zoras Domain Exit', 'Zoras Domain Dive Warp', 'Behind King Zora', 'Zora Shop']), - create_ow_region('Zoras Fountain', ['GS Zora\'s Fountain Tree', 'GS Zora\'s Fountain Above the Log'], ['Zoras Fountain Exit', 'Jabu Jabus Belly', 'Zoras Fountain Fairy']), - create_ow_region('Zoras Domain Frozen', ['King Zora Thawed', 'GS Zora\'s Domain Frozen Waterfall'], ['Zoras Fountain Adult Access']), - create_ow_region('Outside Ice Cavern', ['Zoras Fountain Iceberg Freestanding PoH', 'Zoras Fountain Bottom Freestanding PoH', 'GS Zora\'s Fountain Hidden Cave'], ['Ice Cavern Entrance']), - create_dungeon_region('Ice Cavern', ['Ice Cavern Map Chest', 'Ice Cavern Compass Chest', 'Ice Cavern Iron Boots Chest', 'Ice Cavern Freestanding PoH', 'Sheik in Ice Cavern', 'GS Ice Cavern Spinning Scythe Room', 'GS Ice Cavern Heart Piece Room', 'GS Ice Cavern Push Block Room'], ['Ice Cavern Exit']), + create_dungeon_region( + 'Dodongos Cavern Beginning', + None, + ['Dodongos Cavern Exit', 'Dodongos Cavern Lobby']), + create_dungeon_region( + 'Dodongos Cavern Lobby', + ['Dodongos Cavern Map Chest', 'Dodongos Cavern Compass Chest', 'GS Dodongo\'s Cavern East Side Room', + 'GS Dodongo\'s Cavern Scarecrow'], + ['Dodongos Cavern Retreat', 'Dodongos Cavern Left Door']), + create_dungeon_region( + 'Dodongos Cavern Climb', + ['Dodongos Cavern Bomb Flower Platform', 'GS Dodongo\'s Cavern Vines Above Stairs'], + ['Dodongos Cavern Bridge Fall', 'Dodongos Cavern Slingshot Target']), + create_dungeon_region( + 'Dodongos Cavern Far Bridge', + ['Dodongos Cavern Bomb Bag Chest', 'Dodongos Cavern End of Bridge Chest', + 'GS Dodongo\'s Cavern Alcove Above Stairs'], + ['Dodongos Cavern Bomb Drop', 'Dodongos Cavern Bridge Fall 2']), + create_dungeon_region( + 'Dodongos Cavern Boss Area', + ['Chest Above King Dodongo', 'King Dodongo Heart', 'King Dodongo', 'GS Dodongo\'s Cavern Back Room'], + ['Dodongos Cavern Exit Skull']), + create_ow_region( + 'Zora River Front', + ['GS Zora River Tree'], + ['Zora River Rocks', 'Zora River Adult', 'Zora River Exit']), + create_ow_region( + 'Zora River Child', + ['Magic Bean Salesman', 'Frog Ocarina Game', 'Frogs in the Rain', 'GS Zora River Ladder'], + ['Zora River Child to Shared', 'Zora River Waterfall']), + create_ow_region( + 'Zora River Adult', + ['GS Zora River Near Raised Grottos', 'GS Zora River Above Bridge'], + ['Zoras Domain Adult Access', 'Zora River Adult to Shared']), + create_ow_region( + 'Zora River Shared', + ['Zora River Lower Freestanding PoH', 'Zora River Upper Freestanding PoH'], + ['Zora River Downstream', 'Zora River Plateau Open Grotto', 'Zora River Plateau Bombable Grotto', + 'Zora River Dive Warp']), + create_ow_region( + 'Zoras Domain', + ['Diving Minigame', 'Zoras Domain Torch Run', 'King Zora Moves'], + ['Zoras Domain Exit', 'Zoras Domain Dive Warp', 'Behind King Zora', 'Zora Shop']), + create_ow_region( + 'Zoras Fountain', + ['GS Zora\'s Fountain Tree', 'GS Zora\'s Fountain Above the Log'], + ['Zoras Fountain Exit', 'Jabu Jabus Belly', 'Zoras Fountain Fairy']), + create_ow_region( + 'Zoras Domain Frozen', + ['King Zora Thawed', 'GS Zora\'s Domain Frozen Waterfall'], + ['Zoras Fountain Adult Access']), + create_ow_region( + 'Outside Ice Cavern', + ['Zoras Fountain Iceberg Freestanding PoH', 'Zoras Fountain Bottom Freestanding PoH', + 'GS Zora\'s Fountain Hidden Cave'], + ['Ice Cavern Entrance']), + create_dungeon_region( + 'Ice Cavern', + ['Ice Cavern Map Chest', 'Ice Cavern Compass Chest', 'Ice Cavern Iron Boots Chest', + 'Ice Cavern Freestanding PoH', 'Sheik in Ice Cavern', 'GS Ice Cavern Spinning Scythe Room', + 'GS Ice Cavern Heart Piece Room', 'GS Ice Cavern Push Block Room'], + ['Ice Cavern Exit']), create_interior_region('Zora Shop'), create_interior_region('Zoras Fountain Fairy', ['Zoras Fountain Fairy Reward']), - create_dungeon_region('Jabu Jabus Belly Beginning', None, ['Jabu Jabus Belly Exit', 'Jabu Jabus Belly Ceiling Switch']), - create_dungeon_region('Jabu Jabus Belly Main', ['Boomerang Chest', 'GS Jabu Jabu Water Switch Room'], ['Jabu Jabus Belly Retreat', 'Jabu Jabus Belly Tentacles']), - create_dungeon_region('Jabu Jabus Belly Depths', ['Jabu Jabus Belly Map Chest', 'Jabu Jabus Belly Compass Chest', 'GS Jabu Jabu Lobby Basement Lower', 'GS Jabu Jabu Lobby Basement Upper'], ['Jabu Jabus Belly Elevator', 'Jabu Jabus Belly Octopus']), - create_dungeon_region('Jabu Jabus Belly Boss Area', ['Barinade Heart', 'Barinade', 'GS Jabu Jabu Near Boss'], ['Jabu Jabus Belly Final Backtrack']), - create_ow_region('Lon Lon Ranch', ['Epona', 'Song from Malon', 'GS Lon Lon Ranch Tree', 'GS Lon Lon Ranch Rain Shed', 'GS Lon Lon Ranch House Window', 'GS Lon Lon Ranch Back Wall'], ['Lon Lon Exit', 'Talon House', 'Ingo Barn', 'Lon Lon Corner Tower', 'Lon Lon Grotto']), + create_dungeon_region( + 'Jabu Jabus Belly Beginning', + None, + ['Jabu Jabus Belly Exit', 'Jabu Jabus Belly Ceiling Switch']), + create_dungeon_region( + 'Jabu Jabus Belly Main', + ['Boomerang Chest', 'GS Jabu Jabu Water Switch Room'], + ['Jabu Jabus Belly Retreat', 'Jabu Jabus Belly Tentacles']), + create_dungeon_region( + 'Jabu Jabus Belly Depths', + ['Jabu Jabus Belly Map Chest', 'Jabu Jabus Belly Compass Chest', 'GS Jabu Jabu Lobby Basement Lower', + 'GS Jabu Jabu Lobby Basement Upper'], + ['Jabu Jabus Belly Elevator', 'Jabu Jabus Belly Octopus']), + create_dungeon_region( + 'Jabu Jabus Belly Boss Area', + ['Barinade Heart', 'Barinade', 'GS Jabu Jabu Near Boss'], + ['Jabu Jabus Belly Final Backtrack']), + create_ow_region( + 'Lon Lon Ranch', + ['Epona', 'Song from Malon', 'GS Lon Lon Ranch Tree', 'GS Lon Lon Ranch Rain Shed', + 'GS Lon Lon Ranch House Window', 'GS Lon Lon Ranch Back Wall'], + ['Lon Lon Exit', 'Talon House', 'Ingo Barn', 'Lon Lon Corner Tower', 'Lon Lon Grotto']), create_interior_region('Talon House', ['Talons Chickens']), create_interior_region('Ingo Barn'), create_interior_region('Lon Lon Corner Tower', ['Lon Lon Tower Freestanding PoH']), - create_interior_region('Forest Temple Entry Area', ['Sheik Forest Song', 'GS Lost Woods Above Stage', 'GS Sacred Forest Meadow'], ['Adult Meadow Exit', 'Forest Temple Entrance']), - create_dungeon_region('Forest Temple Lobby', ['Forest Temple First Chest', 'Forest Temple Chest Behind Lobby', 'GS Forest Temple First Room', 'GS Forest Temple Lobby'], ['Forest Temple Exit', 'Forest Temple Song of Time Block', 'Forest Temple Lobby Eyeball Switch', 'Forest Temple Lobby Locked Door']), - create_dungeon_region('Forest Temple NW Outdoors', ['Forest Temple Well Chest', 'Forest Temple Map Chest', 'GS Forest Temple Outdoor West'], ['Forest Temple Through Map Room']), - create_dungeon_region('Forest Temple NE Outdoors', ['Forest Temple Outside Hookshot Chest', 'GS Forest Temple Outdoor East'], ['Forest Temple Well Connection', 'Forest Temple Outside to Lobby', 'Forest Temple Scarecrows Song']), - create_dungeon_region('Forest Temple Falling Room', ['Forest Temple Falling Room Chest'], ['Forest Temple Falling Room Exit', 'Forest Temple Elevator']), - create_dungeon_region('Forest Temple Block Push Room', ['Forest Temple Block Push Chest'], ['Forest Temple Outside Backdoor', 'Forest Temple Twisted Hall', 'Forest Temple Straightened Hall']), - create_dungeon_region('Forest Temple Straightened Hall', ['Forest Temple Boss Key Chest'], ['Forest Temple Boss Key Chest Drop']), - create_dungeon_region('Forest Temple Outside Upper Ledge', ['Forest Temple Floormaster Chest'], ['Forest Temple Outside Ledge Drop']), - create_dungeon_region('Forest Temple Bow Region', ['Forest Temple Bow Chest', 'Forest Temple Red Poe Chest', 'Forest Temple Blue Poe Chest'], ['Forest Temple Drop to Falling Room']), - create_dungeon_region('Forest Temple Boss Region', ['Forest Temple Near Boss Chest', 'Phantom Ganon Heart', 'Phantom Ganon', 'GS Forest Temple Basement']), - create_dungeon_region('Fire Temple Lower', ['Fire Temple Chest Near Boss', 'Fire Temple Fire Dancer Chest', 'Fire Temple Boss Key Chest', 'Fire Temple Big Lava Room Bombable Chest', 'Fire Temple Big Lava Room Open Chest', 'Volvagia Heart', 'Volvagia', 'GS Fire Temple Song of Time Room', 'GS Fire Temple Basement'], ['Fire Temple Exit', 'Fire Temple Early Climb']), - create_dungeon_region('Fire Temple Middle', ['Fire Temple Boulder Maze Lower Chest', 'Fire Temple Boulder Maze Upper Chest', 'Fire Temple Boulder Maze Side Room', 'Fire Temple Boulder Maze Bombable Pit', 'Fire Temple Scarecrow Chest', 'Fire Temple Map Chest', 'Fire Temple Compass Chest', 'GS Fire Temple Unmarked Bomb Wall', 'GS Fire Temple East Tower Climb', 'GS Fire Temple East Tower Top'], ['Fire Temple Fire Maze Escape']), - create_dungeon_region('Fire Temple Upper', ['Fire Temple Highest Goron Chest', 'Fire Temple Megaton Hammer Chest']), - create_dungeon_region('Ganons Castle Lobby', None, ['Ganons Castle Exit', 'Ganons Castle Forest Trial', 'Ganons Castle Fire Trial', 'Ganons Castle Water Trial', 'Ganons Castle Shadow Trial', 'Ganons Castle Spirit Trial', 'Ganons Castle Light Trial', 'Ganons Castle Tower']), - create_dungeon_region('Ganons Castle Forest Trial', ['Ganons Castle Forest Trial Chest', 'Ganons Castle Forest Trial Clear']), - create_dungeon_region('Ganons Castle Fire Trial', ['Ganons Castle Fire Trial Clear']), - create_dungeon_region('Ganons Castle Water Trial', ['Ganons Castle Water Trial Left Chest', 'Ganons Castle Water Trial Right Chest', 'Ganons Castle Water Trial Clear']), - create_dungeon_region('Ganons Castle Shadow Trial', ['Ganons Castle Shadow Trial First Chest', 'Ganons Castle Shadow Trial Second Chest', 'Ganons Castle Shadow Trial Clear']), - create_dungeon_region('Ganons Castle Spirit Trial', ['Ganons Castle Spirit Trial First Chest', 'Ganons Castle Spirit Trial Second Chest', 'Ganons Castle Spirit Trial Clear']), - create_dungeon_region('Ganons Castle Light Trial', ['Ganons Castle Light Trial First Left Chest', 'Ganons Castle Light Trial Second Left Chest', 'Ganons Castle Light Trial Third Left Chest', 'Ganons Castle Light Trial First Right Chest', 'Ganons Castle Light Trial Second Right Chest', 'Ganons Castle Light Trial Third Right Chest', 'Ganons Castle Light Trail Invisible Enemies Chest', 'Ganons Castle Light Trial Lullaby Chest', 'Ganons Castle Light Trial Clear']), - create_dungeon_region('Ganons Castle Tower', ['Ganons Tower Boss Key Chest', 'Ganon']), - create_grotto_region('Kokiri Forest Storms Grotto', ['Kokiri Forest Storms Grotto Chest']), - create_grotto_region('Lost Woods Generic Grotto', ['Lost Woods Generic Grotto Chest']), + create_interior_region( + 'Forest Temple Entry Area', + ['Sheik Forest Song', 'GS Lost Woods Above Stage', 'GS Sacred Forest Meadow'], + ['Adult Meadow Exit', 'Forest Temple Entrance']), + create_dungeon_region( + 'Forest Temple Lobby', + ['Forest Temple First Chest', 'Forest Temple Chest Behind Lobby', 'GS Forest Temple First Room', + 'GS Forest Temple Lobby'], + ['Forest Temple Exit', 'Forest Temple Song of Time Block', 'Forest Temple Lobby Eyeball Switch', + 'Forest Temple Lobby Locked Door']), + create_dungeon_region( + 'Forest Temple NW Outdoors', + ['Forest Temple Well Chest', 'Forest Temple Map Chest', 'GS Forest Temple Outdoor West'], + ['Forest Temple Through Map Room']), + create_dungeon_region( + 'Forest Temple NE Outdoors', + ['Forest Temple Outside Hookshot Chest', 'GS Forest Temple Outdoor East'], + ['Forest Temple Well Connection', 'Forest Temple Outside to Lobby', 'Forest Temple Scarecrows Song']), + create_dungeon_region( + 'Forest Temple Falling Room', + ['Forest Temple Falling Room Chest'], + ['Forest Temple Falling Room Exit', 'Forest Temple Elevator']), + create_dungeon_region( + 'Forest Temple Block Push Room', + ['Forest Temple Block Push Chest'], + ['Forest Temple Outside Backdoor', 'Forest Temple Twisted Hall', 'Forest Temple Straightened Hall']), + create_dungeon_region( + 'Forest Temple Straightened Hall', + ['Forest Temple Boss Key Chest'], + ['Forest Temple Boss Key Chest Drop']), + create_dungeon_region( + 'Forest Temple Outside Upper Ledge', + ['Forest Temple Floormaster Chest'], + ['Forest Temple Outside Ledge Drop']), + create_dungeon_region( + 'Forest Temple Bow Region', + ['Forest Temple Bow Chest', 'Forest Temple Red Poe Chest', 'Forest Temple Blue Poe Chest'], + ['Forest Temple Drop to Falling Room']), + create_dungeon_region( + 'Forest Temple Boss Region', + ['Forest Temple Near Boss Chest', 'Phantom Ganon Heart', 'Phantom Ganon', 'GS Forest Temple Basement']), + create_dungeon_region( + 'Fire Temple Lower', + ['Fire Temple Chest Near Boss', 'Fire Temple Fire Dancer Chest', 'Fire Temple Boss Key Chest', + 'Fire Temple Big Lava Room Bombable Chest', 'Fire Temple Big Lava Room Open Chest', 'Volvagia Heart', + 'Volvagia', 'GS Fire Temple Song of Time Room', 'GS Fire Temple Basement'], + ['Fire Temple Exit', 'Fire Temple Early Climb']), + create_dungeon_region( + 'Fire Temple Middle', + ['Fire Temple Boulder Maze Lower Chest', 'Fire Temple Boulder Maze Upper Chest', + 'Fire Temple Boulder Maze Side Room', 'Fire Temple Boulder Maze Bombable Pit', 'Fire Temple Scarecrow Chest', + 'Fire Temple Map Chest', 'Fire Temple Compass Chest', 'GS Fire Temple Unmarked Bomb Wall', + 'GS Fire Temple East Tower Climb', 'GS Fire Temple East Tower Top'], + ['Fire Temple Fire Maze Escape']), + create_dungeon_region( + 'Fire Temple Upper', + ['Fire Temple Highest Goron Chest', 'Fire Temple Megaton Hammer Chest']), + create_dungeon_region( + 'Ganons Castle Lobby', + None, + ['Ganons Castle Exit', 'Ganons Castle Forest Trial', 'Ganons Castle Fire Trial', 'Ganons Castle Water Trial', + 'Ganons Castle Shadow Trial', 'Ganons Castle Spirit Trial', 'Ganons Castle Light Trial', + 'Ganons Castle Tower']), + create_dungeon_region( + 'Ganons Castle Forest Trial', + ['Ganons Castle Forest Trial Chest', 'Ganons Castle Forest Trial Clear']), + create_dungeon_region( + 'Ganons Castle Fire Trial', + ['Ganons Castle Fire Trial Clear']), + create_dungeon_region( + 'Ganons Castle Water Trial', + ['Ganons Castle Water Trial Left Chest', 'Ganons Castle Water Trial Right Chest', + 'Ganons Castle Water Trial Clear']), + create_dungeon_region( + 'Ganons Castle Shadow Trial', + ['Ganons Castle Shadow Trial First Chest', 'Ganons Castle Shadow Trial Second Chest', + 'Ganons Castle Shadow Trial Clear']), + create_dungeon_region( + 'Ganons Castle Spirit Trial', + ['Ganons Castle Spirit Trial First Chest', 'Ganons Castle Spirit Trial Second Chest', + 'Ganons Castle Spirit Trial Clear']), + create_dungeon_region( + 'Ganons Castle Light Trial', + ['Ganons Castle Light Trial First Left Chest', 'Ganons Castle Light Trial Second Left Chest', + 'Ganons Castle Light Trial Third Left Chest', 'Ganons Castle Light Trial First Right Chest', + 'Ganons Castle Light Trial Second Right Chest', 'Ganons Castle Light Trial Third Right Chest', + 'Ganons Castle Light Trail Invisible Enemies Chest', 'Ganons Castle Light Trial Lullaby Chest', + 'Ganons Castle Light Trial Clear']), + create_dungeon_region( + 'Ganons Castle Tower', + ['Ganons Tower Boss Key Chest', 'Ganon']), + create_grotto_region( + 'Kokiri Forest Storms Grotto', + ['Kokiri Forest Storms Grotto Chest']), + create_grotto_region( + 'Lost Woods Generic Grotto', + ['Lost Woods Generic Grotto Chest']), create_grotto_region('Deku Theater', ['Deku Theater Skull Mask', 'Deku Theater Mask of Truth']), create_grotto_region('Lost Woods Sales Grotto', ['Deku Salesman Lost Woods Grotto']), create_grotto_region('Meadow Fairy Grotto'), @@ -203,415 +565,416 @@ def _create_region(name, type, locations=None, exits=None): ret.locations.append(Location(location, address, address2, default, type, scene, hint, ret)) return ret -location_table = {'Kokiri Sword Chest': (0x20A6142, None, 0x04E0, 'Chest', 0x55, 'Kokiri Forest'), - 'Mido Chest Top Left': (0x2F7B08A, None, 0x59A0, 'Chest', 0x28, 'Kokiri Forest'), - 'Mido Chest Top Right': (0x2F7B09A, None, 0x59A1, 'Chest', 0x28, 'Kokiri Forest'), - 'Mido Chest Bottom Left': (0x2F7B0AA, None, 0x5982, 'Chest', 0x28, 'Kokiri Forest'), - 'Mido Chest Bottom Right': (0x2F7B0BA, None, 0x5903, 'Chest', 0x28, 'Kokiri Forest'), - 'Shield Grave Chest': (0x328B096, None, 0x5540, 'Chest', 0x40, 'the Graveyard'), - 'Heart Piece Grave Chest': (0x2D0A056, None, 0xA7C0, 'Chest', 0x3F, 'the Graveyard'), - 'Composer Grave Chest': (0x332D0EA, None, 0x8020, 'Chest', 0x41, 'the Graveyard'), - 'Death Mountain Bombable Chest': (0x223C3CA, 0x223C7B2, 0x5AA1, 'Chest', 0x60, 'Death Mountain Trail'), - 'Goron City Leftmost Maze Chest': (0x227C23A, 0x227C70A, 0x5AC0, 'Chest', 0x62, 'Goron City'), - 'Goron City Left Maze Chest': (0x227C24A, 0x227C71A, 0x5AA1, 'Chest', 0x62, 'Goron City'), - 'Goron City Right Maze Chest': (0x227C25A, 0x227C72A, 0x5AA2, 'Chest', 0x62, 'Goron City'), - 'Zoras Domain Torch Run': (0x2103166, None, 0xB7C0, 'Chest', 0x58, 'Zora\'s Domain'), - 'Hookshot Chest': (0x3063092, None, 0x1100, 'Chest', 0x48, 'the Graveyard'), - 'Gerudo Valley Hammer Rocks Chest': (0x213D676, None, 0x5AA0, 'Chest', 0x5A, 'Gerudo Valley'), - 'Gerudo Fortress Rooftop Chest': (0x21BD4AA, 0x21BD6EA, 0x07C0, 'Chest', 0x5D, 'Gerudo Fortress'), - 'Haunted Wasteland Structure Chest': (0x21E20DE, None, 0x8AA0, 'Chest', 0x5E, 'Haunted Wasteland'), - 'Redead Grotto Chest': (0x26CF076, None, 0x7ACA, 'Chest', 0x3E, 'Kakariko Village'), - 'Wolfos Grotto Chest': (0x26EB076, None, 0x7AB1, 'Chest', 0x3E, 'Sacred Forest Meadow'), - 'Deku Tree Lobby Chest': (0x24A7146, None, 0x0823, 'Chest', 0x00, 'Deku Tree'), - 'Deku Tree Slingshot Chest': (0x24C20C6, None, 0x00A1, 'Chest', 0x00, 'Deku Tree'), - 'Deku Tree Slingshot Room Side Chest': (0x24C20D6, None, 0x5905, 'Chest', 0x00, 'Deku Tree'), - 'Deku Tree Compass Chest': (0x25040D6, None, 0x0802, 'Chest', 0x00, 'Deku Tree'), - 'Deku Tree Compass Room Side Chest': (0x25040E6, None, 0x5906, 'Chest', 0x00, 'Deku Tree'), - 'Deku Tree Basement Chest': (0x24C8166, None, 0x5904, 'Chest', 0x00, 'Deku Tree'), - 'Dodongos Cavern Map Chest': (0x1F2819E, None, 0x0828, 'Chest', 0x01, 'Dodongo\'s Cavern'), - 'Dodongos Cavern Compass Chest': (0x1FAF0AA, None, 0x0805, 'Chest', 0x01, 'Dodongo\'s Cavern'), - 'Dodongos Cavern Bomb Flower Platform': (0x1F890DE, None, 0x59C6, 'Chest', 0x01, 'Dodongo\'s Cavern'), - 'Dodongos Cavern Bomb Bag Chest': (0x1F890CE, None, 0x0644, 'Chest', 0x01, 'Dodongo\'s Cavern'), - 'Dodongos Cavern End of Bridge Chest': (0x1F281CE, None, 0x552A, 'Chest', 0x01, 'Dodongo\'s Cavern'), - 'Chest Above King Dodongo': (0x2EB00BA, None, 0x5020, 'Chest', 0x12, 'Dodongo\'s Cavern'), - 'Boomerang Chest': (0x278A0BA, None, 0x10C1, 'Chest', 0x02, 'Jabu Jabu\'s Belly'), - 'Jabu Jabus Belly Map Chest': (0x278E08A, None, 0x1822, 'Chest', 0x02, 'Jabu Jabu\'s Belly'), - 'Jabu Jabus Belly Compass Chest': (0x279608A, None, 0xB804, 'Chest', 0x02, 'Jabu Jabu\'s Belly'), - 'Forest Temple First Chest': (0x23E5092, None, 0x5843, 'Chest', 0x03, 'Forest Temple'), - 'Forest Temple Chest Behind Lobby': (0x2415082, None, 0x7840, 'Chest', 0x03, 'Forest Temple'), - 'Forest Temple Well Chest': (0x244A062, None, 0x5849, 'Chest', 0x03, 'Forest Temple'), - 'Forest Temple Map Chest': (0x2455076, None, 0x1821, 'Chest', 0x03, 'Forest Temple'), - 'Forest Temple Outside Hookshot Chest': (0x241F0D6, None, 0x5905, 'Chest', 0x03, 'Forest Temple'), - 'Forest Temple Falling Room Chest': (0x247E09E, None, 0x5947, 'Chest', 0x03, 'Forest Temple'), - 'Forest Temple Block Push Chest': (0x245B096, None, 0x8964, 'Chest', 0x03, 'Forest Temple'), - 'Forest Temple Boss Key Chest': (0xCB0DC2, None, 0x27EE, 'Chest', 0x03, 'Forest Temple'), - 'Forest Temple Floormaster Chest': (0x2490072, None, 0x7842, 'Chest', 0x03, 'Forest Temple'), - 'Forest Temple Bow Chest': (0x2415092, None, 0xB08C, 'Chest', 0x03, 'Forest Temple'), - 'Forest Temple Red Poe Chest': (0x246607E, None, 0x784D, 'Chest', 0x03, 'Forest Temple'), - 'Forest Temple Blue Poe Chest': (0x246F07E, None, 0x180F, 'Chest', 0x03, 'Forest Temple'), - 'Forest Temple Near Boss Chest': (0x2486082, None, 0x592B, 'Chest', 0x03, 'Forest Temple'), - 'Bottom of the Well Front Left Hidden Wall': (0x32D317E, None, 0x5848, 'Chest', 0x08, 'Bottom of the Well'), - 'Bottom of the Well Front Center Bombable': (0x32D30FE, None, 0x5062, 'Chest', 0x08, 'Bottom of the Well'), - 'Bottom of the Well Right Bottom Hidden Wall': (0x32D314E, None, 0x5845, 'Chest', 0x08, 'Bottom of the Well'), - 'Bottom of the Well Center Large Chest': (0x32D30EE, None, 0x0801, 'Chest', 0x08, 'Bottom of the Well'), - 'Bottom of the Well Center Small Chest': (0x32D31AE, None, 0x504E, 'Chest', 0x08, 'Bottom of the Well'), - 'Bottom of the Well Back Left Bombable': (0x32D313E, None, 0x5C84, 'Chest', 0x08, 'Bottom of the Well'), - 'Bottom of the Well Defeat Boss': (0x32FB0AA, None, 0x1143, 'Chest', 0x08, 'Bottom of the Well'), - 'Bottom of the Well Invisible Chest': (0x32FB0BA, None, 0x6AD4, 'Chest', 0x08, 'Bottom of the Well'), - 'Bottom of the Well Underwater Front Chest': (0x32D31BE, None, 0x5CD0, 'Chest', 0x08, 'Bottom of the Well'), - 'Bottom of the Well Underwater Left Chest': (0x32D318E, None, 0x5909, 'Chest', 0x08, 'Bottom of the Well'), - 'Bottom of the Well Basement Chest': (0x32E9252, None, 0x0827, 'Chest', 0x08, 'Bottom of the Well'), - 'Bottom of the Well Locked Pits': (0x32F90AA, None, 0x552A, 'Chest', 0x08, 'Bottom of the Well'), - 'Bottom of the Well Behind Right Grate': (0x32D319E, None, 0x554C, 'Chest', 0x08, 'Bottom of the Well'), - 'Fire Temple Chest Near Boss': (0x230808A, None, 0x5841, 'Chest', 0x04, 'Fire Temple'), - 'Fire Temple Fire Dancer Chest': (0x2318082, None, 0x7CC0, 'Chest', 0x04, 'Fire Temple'), - 'Fire Temple Boss Key Chest': (0x238A0D6, None, 0x27EC, 'Chest', 0x04, 'Fire Temple'), - 'Fire Temple Big Lava Room Bombable Chest': (0x23AD076, None, 0x5842, 'Chest', 0x04, 'Fire Temple'), - 'Fire Temple Big Lava Room Open Chest': (0x239D0A6, None, 0x5844, 'Chest', 0x04, 'Fire Temple'), - 'Fire Temple Boulder Maze Lower Chest': (0x2323152, None, 0x5843, 'Chest', 0x04, 'Fire Temple'), - 'Fire Temple Boulder Maze Upper Chest': (0x2323182, None, 0x5846, 'Chest', 0x04, 'Fire Temple'), - 'Fire Temple Boulder Maze Side Room': (0x23B40B2, None, 0x5848, 'Chest', 0x04, 'Fire Temple'), - 'Fire Temple Boulder Maze Bombable Pit': (0x231B0E2, None, 0x584B, 'Chest', 0x04, 'Fire Temple'), - 'Fire Temple Scarecrow Chest': (0x2339082, None, 0x5ACD, 'Chest', 0x04, 'Fire Temple'), - 'Fire Temple Map Chest': (0x237E0C2, None, 0x082A, 'Chest', 0x04, 'Fire Temple'), - 'Fire Temple Compass Chest': (0x23C1082, None, 0x0807, 'Chest', 0x04, 'Fire Temple'), - 'Fire Temple Highest Goron Chest': (0x2365066, None, 0x5849, 'Chest', 0x04, 'Fire Temple'), - 'Fire Temple Megaton Hammer Chest': (0x236C102, None, 0x01A5, 'Chest', 0x04, 'Fire Temple'), - 'Ice Cavern Map Chest': (0x2C4016A, None, 0x0820, 'Chest', 0x09, 'Ice Cavern'), - 'Ice Cavern Compass Chest': (0x2C4E236, None, 0x0801, 'Chest', 0x09, 'Ice Cavern'), - 'Ice Cavern Iron Boots Chest': (0x2C380A2, None, 0x15C2, 'Chest', 0x09, 'Ice Cavern'), - 'Water Temple Map Chest': (0x26690A6, None, 0x1822, 'Chest', 0x05, 'Water Temple'), - 'Water Temple Compass Chest': (0x25FC0D2, None, 0x0809, 'Chest', 0x05, 'Water Temple'), - 'Water Temple Torches Chest': (0x26640A6, None, 0x7841, 'Chest', 0x05, 'Water Temple'), - 'Water Temple Dragon Chest': (0x261F0BA, None, 0x584A, 'Chest', 0x05, 'Water Temple'), - 'Water Temple Central Bow Target Chest': (0x266D072, None, 0x5848, 'Chest', 0x05, 'Water Temple'), - 'Water Temple Central Pillar Chest': (0x25EF0D6, None, 0x5846, 'Chest', 0x05, 'Water Temple'), - 'Water Temple Cracked Wall Chest': (0x265B0A6, None, 0x5840, 'Chest', 0x05, 'Water Temple'), - 'Water Temple Boss Key Chest': (0x2657066, None, 0x27E5, 'Chest', 0x05, 'Water Temple'), - 'Water Temple Dark Link Chest': (0x261907A, None, 0x0127, 'Chest', 0x05, 'Water Temple'), - 'Water Temple River Chest': (0x26740DE, None, 0x5843, 'Chest', 0x05, 'Water Temple'), - 'Shadow Temple Map Chest': (0x27CC0AA, None, 0x1821, 'Chest', 0x07, 'Shadow Temple'), - 'Shadow Temple Hover Boots Chest': (0x27DC0CA, None, 0x15E7, 'Chest', 0x07, 'Shadow Temple'), - 'Shadow Temple Compass Chest': (0x27EC09E, None, 0x1803, 'Chest', 0x07, 'Shadow Temple'), - 'Shadow Temple Early Silver Rupee Chest': (0x27E40F6, None, 0x5842, 'Chest', 0x07, 'Shadow Temple'), - 'Shadow Temple Invisible Blades Visible Chest': (0x282212A, None, 0x588C, 'Chest', 0x07, 'Shadow Temple'), - 'Shadow Temple Invisible Blades Invisible Chest': (0x282211A, None, 0x6976, 'Chest', 0x07, 'Shadow Temple'), - 'Shadow Temple Falling Spikes Lower Chest': (0x2801132, None, 0x5945, 'Chest', 0x07, 'Shadow Temple'), - 'Shadow Temple Falling Spikes Upper Chest': (0x2801142, None, 0x5886, 'Chest', 0x07, 'Shadow Temple'), - 'Shadow Temple Falling Spikes Switch Chest': (0x2801122, None, 0x8844, 'Chest', 0x07, 'Shadow Temple'), - 'Shadow Temple Invisible Spikes Chest': (0x28090EE, None, 0x7889, 'Chest', 0x07, 'Shadow Temple'), - 'Shadow Temple Wind Hint Chest': (0x283609A, None, 0x6955, 'Chest', 0x07, 'Shadow Temple'), - 'Shadow Temple After Wind Enemy Chest': (0x28390FE, None, 0x7888, 'Chest', 0x07, 'Shadow Temple'), - 'Shadow Temple After Wind Hidden Chest': (0x28390EE, None, 0x6854, 'Chest', 0x07, 'Shadow Temple'), - 'Shadow Temple Spike Walls Left Chest': (0x28130B6, None, 0x588A, 'Chest', 0x07, 'Shadow Temple'), - 'Shadow Temple Boss Key Chest': (0x28130A6, None, 0x27EB, 'Chest', 0x07, 'Shadow Temple'), - 'Shadow Temple Hidden Floormaster Chest': (0x282508A, None, 0x784D, 'Chest', 0x07, 'Shadow Temple'), - 'Gerudo Training Grounds Lobby Left Chest': (0x28870CA, None, 0x8893, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Lobby Right Chest': (0x28870BA, None, 0x8947, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Stalfos Chest': (0x28970AA, None, 0x8840, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Beamos Chest': (0x28C715E, None, 0x8841, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Hidden Ceiling Chest': (0x28D010E, None, 0x584B, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Maze Path First Chest': (0x28D00CE, None, 0x5AA6, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Maze Path Second Chest': (0x28D00FE, None, 0x59CA, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Maze Path Third Chest': (0x28D00EE, None, 0x5969, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Maze Path Final Chest': (0x28D011E, None, 0x0B2C, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Maze Right Central Chest': (0x28D00BE, None, 0x5D45, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Maze Right Side Chest': (0x28D00DE, None, 0x5968, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Underwater Silver Rupee Chest': (0x28D91D6, None, 0x884D, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Hammer Room Clear Chest': (0x28B91AE, None, 0x7952, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Hammer Room Switch Chest': (0x28B919E, None, 0x5850, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Eye Statue Chest': (0x28AE09E, None, 0x8843, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Near Scarecrow Chest': (0x28D00AE, None, 0x5844, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Before Heavy Block Chest': (0x28A611E, None, 0x7971, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Heavy Block First Chest': (0x28DD0BE, None, 0x7ACF, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Heavy Block Second Chest': (0x28DD0AE, None, 0x788E, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Heavy Block Third Chest': (0x28DD08E, None, 0x6854, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Heavy Block Fourth Chest': (0x28DD09E, None, 0x5F82, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Spirit Temple Child Left Chest': (0x2B190BA, None, 0x5528, 'Chest', 0x06, 'Spirit Temple'), - 'Spirit Temple Child Right Chest': (0x2B13182, None, 0x8840, 'Chest', 0x06, 'Spirit Temple'), - 'Spirit Temple Compass Chest': (0x2B6B08A, None, 0x3804, 'Chest', 0x06, 'Spirit Temple'), - 'Spirit Temple Early Adult Right Chest': (0x2B6207A, None, 0x5847, 'Chest', 0x06, 'Spirit Temple'), - 'Spirit Temple First Mirror Right Chest': (0x2B700C6, None, 0x890D, 'Chest', 0x06, 'Spirit Temple'), - 'Spirit Temple First Mirror Left Chest': (0x2B700D6, None, 0x8F8E, 'Chest', 0x06, 'Spirit Temple'), - 'Spirit Temple Map Chest': (0x2B25126, None, 0xB823, 'Chest', 0x06, 'Spirit Temple'), - 'Spirit Temple Child Climb East Chest': (0x2B1D122, None, 0x8066, 'Chest', 0x06, 'Spirit Temple'), - 'Spirit Temple Child Climb North Chest': (0x2B1D132, None, 0x852C, 'Chest', 0x06, 'Spirit Temple'), - 'Spirit Temple Sun Block Room Chest': (0x2B481B2, None, 0x8841, 'Chest', 0x06, 'Spirit Temple'), - 'Spirit Temple Statue Hand Chest': (0x2B25136, None, 0x8842, 'Chest', 0x06, 'Spirit Temple'), - 'Spirit Temple NE Main Room Chest': (0x2B25146, None, 0x888F, 'Chest', 0x06, 'Spirit Temple'), - 'Silver Gauntlets Chest': (0x21A02DE, 0x21A06F2, 0x06AB, 'Chest', 0x5C, 'Desert Colossus'), - 'Mirror Shield Chest': (0x21A02CE, 0x21A06E2, 0x3569, 'Chest', 0x5C, 'Desert Colossus'), - 'Spirit Temple Near Four Armos Chest': (0x2B9F076, None, 0x5845, 'Chest', 0x06, 'Spirit Temple'), - 'Spirit Temple Hallway Left Invisible Chest': (0x2B900B6, None, 0x6914, 'Chest', 0x06, 'Spirit Temple'), - 'Spirit Temple Hallway Right Invisible Chest': (0x2B900C6, None, 0x6915, 'Chest', 0x06, 'Spirit Temple'), - 'Spirit Temple Boss Key Chest': (0x2BA4162, None, 0x27EA, 'Chest', 0x06, 'Spirit Temple'), - 'Spirit Temple Topmost Chest': (0x2BCF0FE, None, 0x8CF2, 'Chest', 0x06, 'Spirit Temple'), - 'Ganons Castle Forest Trial Chest': (0x31F106E, None, 0x7889, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Water Trial Left Chest': (0x31D7236, None, 0x5F87, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Water Trial Right Chest': (0x31D7226, None, 0x5906, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Shadow Trial First Chest': (0x32350CA, None, 0x5888, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Shadow Trial Second Chest': (0x32350BA, None, 0x36C5, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Spirit Trial First Chest': (0x3268132, None, 0x8D72, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Spirit Trial Second Chest': (0x3268142, None, 0x6954, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Light Trial First Left Chest': (0x321B11E, None, 0x588C, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Light Trial Second Left Chest': (0x321B10E, None, 0x5F8B, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Light Trial Third Left Chest': (0x321B12E, None, 0x590D, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Light Trial First Right Chest': (0x321B13E, None, 0x5F8E, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Light Trial Second Right Chest': (0x321B0FE, None, 0x596A, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Light Trial Third Right Chest': (0x321B14E, None, 0x5F8F, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Light Trail Invisible Enemies Chest': (0x321B15E, None, 0x7850, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Light Trial Lullaby Chest': (0x321B17E, None, 0x8851, 'Chest', 0x0D, 'my castle'), - 'Ganons Tower Boss Key Chest': (0x2F040EE, None, 0x27EB, 'Chest', 0x0A, 'my tower'), - 'Field West Castle Town Grotto Chest': (None, None, 0x00, 'Chest', 0x3E, 'Hyrule Field'), - 'Remote Southern Grotto Chest': (None, None, 0x02, 'Chest', 0x3E, 'Hyrule Field'), - 'Field Near Lake Outside Fence Grotto Chest': (None, None, 0x03, 'Chest', 0x3E, 'Hyrule Field'), - 'Kakariko Back Grotto Chest': (None, None, 0x08, 'Chest', 0x3E, 'Kakariko Village'), - 'Zora River Plateau Open Grotto Chest': (None, None, 0x09, 'Chest', 0x3E, 'Zora River'), - 'Kokiri Forest Storms Grotto Chest': (None, None, 0x0C, 'Chest', 0x3E, 'Kokiri Forest'), - 'Lost Woods Generic Grotto Chest': (None, None, 0x14, 'Chest', 0x3E, 'the Lost Woods'), - 'Mountain Storms Grotto Chest': (None, None, 0x17, 'Chest', 0x3E, 'Death Mountain Trail'), - 'Top of Crater Grotto Chest': (None, None, 0x1A, 'Chest', 0x3E, 'Death Mountain Crater'), - 'Impa at Castle': (0x2E8E925, 0x2E8E925, 0x67, 'Song', 0x51, 'Hyrule Castle'), - 'Song from Malon': (0xD7EB53, 0xD7EBCF, 0x68, 'Song', 0x63, 'Lon Lon Ranch'), - 'Song from Composer Grave': (0x332A871, 0x332A871, 0x6A, 'Song', 0x41, 'the Graveyard'), - 'Song from Saria': (0x20B1DB1, 0x20B1DB1, 0x69, 'Song', 0x56, 'Sacred Forest Meadow'), - 'Song from Ocarina of Time': (0x252FC89, 0x252FC89, 0x6B, 'Song', 0x51, 'Hyrule Field'), - 'Song at Windmill': (0xE42C07, 0xE42B8B, 0x6C, 'Song', 0x48, 'Kakariko'), - 'Sheik Forest Song': (0x20B0809, 0x20B0809, 0x61, 'Song', 0x56, 'Sacred Forest Meadow'), - 'Sheik at Temple': (0x2531329, 0x2531329, 0x66, 'Song', 0x43, 'Temple of Time'), - 'Sheik in Crater': (0x224D7F1, 0x224D7F1, 0x62, 'Song', 0x61, 'Death Mountain Crater'), - 'Sheik in Ice Cavern': (0x2BEC889, 0x2BEC889, 0x63, 'Song', 0x09, 'Ice Cavern'), - 'Sheik in Kakariko': (0x2000FE1, 0x2000FE1, 0x65, 'Song', 0x52, 'Kakariko'), - 'Sheik at Colossus': (0x218C57D, 0x218C57D, 0x64, 'Song', 0x5C, 'Desert Colossus'), - 'Gift from Saria': (None, None, 0x3B, 'NPC', 0x5B, 'the Lost Woods'), - 'Malon Egg': (None, None, 0x47, 'NPC', 0x5F, 'Hyrule Castle'), - 'Zeldas Letter': (None, None, None, 'NPC', None, 'Hyrule Castle'), - 'Zelda': (0x3481400, None, 0x5A, 'NPC', 0x43, 'the Temple of Time'), - 'Zoras Fountain Fairy Reward': (0x3481401, None, 0x5D, 'NPC', 0x3D, 'Zora\'s Fountain'), - 'Hyrule Castle Fairy Reward': (0x3481402, None, 0x5C, 'NPC', 0x3D, 'Hyrule Castle'), - 'Desert Colossus Fairy Reward': (0x3481403, None, 0x5E, 'NPC', 0x3D, 'Desert Colossus'), - 'Mountain Summit Fairy Reward': (0x3481404, None, 0x51, 'NPC', 0x3B, 'Death Mountain Trail'), - 'Crater Fairy Reward': (0x3481405, None, 0x52, 'NPC', 0x3B, 'Death Mountain Crater'), - 'Ganons Castle Fairy Reward': (0x3481406, None, 0x53, 'NPC', 0x3B, 'outside my castle'), - 'Treasure Chest Game': (None, None, 0x0A, 'Chest', 0x10, 'the market'), - 'Darunias Joy': (0xCF1BFF, None, 0x54, 'NPC', 0x62, 'Goron City'), - 'Diving Minigame': (0xE01A2B, 0xE01AA7, 0x37, 'NPC', 0x58, 'Zora\'s Domain'), - 'Child Fishing': (0xDCBFBF, None, 0x3E, 'NPC', 0x49, 'Lake Hylia'), - 'Adult Fishing': (0xDCC087, None, 0x38, 'NPC', 0x49, 'Lake Hylia'), - 'Diving in the Lab': (0xE2CB97, None, 0x3E, 'NPC', 0x38, 'Lake Hylia'), - 'Link the Goron': (0xED30EB, 0xED64F3, 0x2C, 'NPC', 0x62, 'Goron City'), - 'King Zora Thawed': (0xE56AD7, None, 0x2D, 'NPC', 0x58, 'Zora\'s Domain'), - 'Bombchu Bowling Bomb Bag': (0xE2F093, None, 0x34, 'NPC', 0x4B, 'the market'), - 'Bombchu Bowling Piece of Heart': (0xE2F097, None, 0x3E, 'NPC', 0x4B, 'the market'), - 'Dog Lady': (0xE65163, 0xE661BB, 0x3E, 'NPC', 0x35, 'the market'), - 'Skull Kid': (0xDF0F33, 0xDF0E9B, 0x3E, 'NPC', 0x5B, 'the Lost Woods'), - 'Ocarina Memory Game': (0xDF264F, None, 0x76, 'NPC', 0x5B, 'the Lost Woods'), - '10 Gold Skulltulla Reward': (0xEA7173, None, 0x45, 'NPC', 0x50, 'Kakariko Village'), - '20 Gold Skulltulla Reward': (0xEA7175, None, 0x39, 'NPC', 0x50, 'Kakariko Village'), - '30 Gold Skulltulla Reward': (0xEA7177, None, 0x46, 'NPC', 0x50, 'Kakariko Village'), - '40 Gold Skulltulla Reward': (0xEA7179, None, 0x03, 'NPC', 0x50, 'Kakariko Village'), - '50 Gold Skulltulla Reward': (0xEA717B, None, 0x3E, 'NPC', 0x50, 'Kakariko Village'), - 'Man on Roof': (0xE587E3, None, 0x3E, 'NPC', 0x52, 'Kakariko Village'), - 'Frog Ocarina Game': (0xDB13D3, None, 0x76, 'NPC', 0x54, 'Zora River'), - 'Frogs in the Rain': (0xDB1387, None, 0x3E, 'NPC', 0x54, 'Zora River'), - 'Horseback Archery 1000 Points': (0xE12B6F, 0xE12AA3, 0x3E, 'NPC', 0x5D, 'Gerudo Fortress'), - 'Horseback Archery 1500 Points': (0xE12BC3, 0xE12AFB, 0x30, 'NPC', 0x5D, 'Gerudo Fortress'), - 'Child Shooting Gallery': (0xD35EF3, None, 0x60, 'NPC', 0x42, 'the market'), - 'Adult Shooting Gallery': (0xD35F5B, None, 0x30, 'NPC', 0x42, 'Kakariko Village'), - 'Target in Woods': (0xE59CDF, None, 0x60, 'NPC', 0x5B, 'the Lost Woods'), - 'Deku Theater Skull Mask': (0xEC9A87, None, 0x77, 'NPC', 0x3E, 'the Lost Woods'), - 'Deku Theater Mask of Truth': (0xEC9CE7, None, 0x7A, 'NPC', 0x3E, 'the Lost Woods'), - 'Deku Salesman Woods': (0xDF8073, None, 0x77, 'NPC', 0x5B, 'the Lost Woods'), - 'Deku Salesman Lost Woods Grotto': (0xDF80E7, None, 0x79, 'NPC', 0x3E, 'the Lost Woods'), - 'Deku Salesman Hyrule Field Grotto': (0xDF86AB, None, 0x3E, 'NPC', 0x3E, 'Hyrule Field'), - 'Anju as Adult': (0xE1EABB, None, 0x1D, 'NPC', 0x52, 'Kakariko Village'), - 'Biggoron': (0xED338F, 0xED650F, 0x57, 'NPC', 0x60, 'Death Mountain Trail'), - 'Anjus Chickens': (0xE1E7A7, None, 0x0F, 'NPC', 0x52, 'Kakariko Village'), - 'Talons Chickens': (0xCC14EB, None, 0x14, 'NPC', 0x4C, 'Lon Lon Ranch'), - '10 Big Poes': (0xEE6AEF, None, 0x0F, 'NPC', 0x4D, 'the market'), - 'Rolling Goron as Child': (0xED296F, 0xED6503, 0x34, 'NPC', 0x62, 'Goron City'), - 'Lake Hylia Sun': (0xE9E1F2, None, 0x5B08, 'Chest', 0x57, 'Lake Hylia'), - 'Underwater Bottle': (0xDE10FB, None, 0x15, 'NPC', 0x57, 'Lake Hylia'), - 'Shadow Temple Freestanding Key': (None, None, 0x01, 'Collectable', 0x07, 'Shadow Temple'), - 'Bottom of the Well Freestanding Key': (None, None, 0x01, 'Collectable', 0x08, 'Bottom of the Well'), - 'Gerudo Training Grounds Freestanding Key': (None, None, 0x01, 'Collectable', 0x0B, 'Gerudo Training Grounds'), - 'Ice Cavern Freestanding PoH': (None, None, 0x01, 'Collectable', 0x09, 'Ice Cavern'), - 'Impa House Freestanding PoH': (None, None, 0x01, 'Collectable', 0x37, 'Kakariko Village'), - 'Tektite Grotto Freestanding PoH': (None, None, 0x01, 'Collectable', 0x3E, 'Hyrule Field'), - 'Windmill Freestanding PoH': (None, None, 0x01, 'Collectable', 0x48, 'Kakariko Village'), - 'Dampe Race Freestanding PoH': (None, None, 0x07, 'Collectable', 0x48, 'the Graveyard'), - 'Lon Lon Tower Freestanding PoH': (None, None, 0x01, 'Collectable', 0x4C, 'Lon Lon Ranch'), - 'Graveyard Freestanding PoH': (None, None, 0x04, 'Collectable', 0x53, 'the Graveyard'), - 'Gravedigging Tour': (None, None, 0x00, 'Collectable', 0x53, 'the Graveyard'), - 'Zora River Lower Freestanding PoH': (None, None, 0x04, 'Collectable', 0x54, 'Zora River'), - 'Zora River Upper Freestanding PoH': (None, None, 0x0B, 'Collectable', 0x54, 'Zora River'), - 'Lake Hylia Freestanding PoH': (None, None, 0x1E, 'Collectable', 0x57, 'Lake Hylia'), - 'Zoras Fountain Iceberg Freestanding PoH': (None, None, 0x01, 'Collectable', 0x59, 'Zora\'s Fountain'), - 'Zoras Fountain Bottom Freestanding PoH': (None, None, 0x14, 'Collectable', 0x59, 'Zora\'s Fountain'), - 'Gerudo Valley Waterfall Freestanding PoH': (None, None, 0x01, 'Collectable', 0x5A, 'Gerudo Valley'), - 'Gerudo Valley Crate Freestanding PoH': (None, None, 0x02, 'Collectable', 0x5A, 'Gerudo Valley'), - 'Colossus Freestanding PoH': (None, None, 0x0D, 'Collectable', 0x5C, 'Desert Colossus'), - 'DM Trail Freestanding PoH': (None, None, 0x1E, 'Collectable', 0x60, 'Death Mountain Trail'), - 'DM Crater Wall Freestanding PoH': (None, None, 0x02, 'Collectable', 0x61, 'Death Mountain Crater'), - 'DM Crater Volcano Freestanding PoH': (None, None, 0x08, 'Collectable', 0x61, 'Death Mountain Crater'), - 'Goron City Pot Freestanding PoH': (None, None, 0x1F, 'Collectable', 0x62, 'Goron City'), - 'Gerudo Fortress North F1 Carpenter': (None, None, 0x0C, 'Collectable', 0x0C, 'Gerudo Fortress'), - 'Gerudo Fortress North F2 Carpenter': (None, None, 0x0A, 'Collectable', 0x0C, 'Gerudo Fortress'), - 'Gerudo Fortress South F1 Carpenter': (None, None, 0x0E, 'Collectable', 0x0C, 'Gerudo Fortress'), - 'Gerudo Fortress South F2 Carpenter': (None, None, 0x0F, 'Collectable', 0x0C, 'Gerudo Fortress'), - 'Gerudo Fortress Membership Card': (None, None, 0x3A, 'NPC', 0x0C, 'Gerudo Fortress'), - 'Queen Gohma Heart': (None, None, 0x4F, 'BossHeart', 0x11, 'Deku Tree'), - 'King Dodongo Heart': (None, None, 0x4F, 'BossHeart', 0x12, 'Dodongo\'s Cavern'), - 'Barinade Heart': (None, None, 0x4F, 'BossHeart', 0x13, 'Jabu Jabu\'s Belly'), - 'Phantom Ganon Heart': (None, None, 0x4F, 'BossHeart', 0x14, 'Forest Temple'), - 'Volvagia Heart': (None, None, 0x4F, 'BossHeart', 0x15, 'Fire Temple'), - 'Morpha Heart': (None, None, 0x4F, 'BossHeart', 0x16, 'Water Temple'), - 'Twinrova Heart': (None, None, 0x4F, 'BossHeart', 0x17, 'Spirit Temple'), - 'Bongo Bongo Heart': (None, None, 0x4F, 'BossHeart', 0x18, 'Shadow Temple'), - 'Magic Bean Salesman': (None, None, None, 'Event', None, 'Zora\'s River'), - 'King Zora Moves': (None, None, None, 'Event', None, 'Zora\'s Domain'), - 'Ocarina of Time': (None, None, 0x0C, 'NPC', 0x51, 'Hyrule Field'), - 'Master Sword Pedestal': (None, None, None, 'Event', None, 'the Temple of Time'), - 'Epona': (None, None, None, 'Event', None, 'Lon Lon Ranch'), - 'Gerudo Fortress Carpenter Rescue': (None, None, None, 'Event', None, 'Gerudo Fortress'), - 'Ganons Castle Forest Trial Clear': (None, None, None, 'Event', None, 'Ganon\'s Castle'), - 'Ganons Castle Fire Trial Clear': (None, None, None, 'Event', None, 'Ganon\'s Castle'), - 'Ganons Castle Water Trial Clear': (None, None, None, 'Event', None, 'Ganon\'s Castle'), - 'Ganons Castle Shadow Trial Clear': (None, None, None, 'Event', None, 'Ganon\'s Castle'), - 'Ganons Castle Spirit Trial Clear': (None, None, None, 'Event', None, 'Ganon\'s Castle'), - 'Ganons Castle Light Trial Clear': (None, None, None, 'Event', None, 'Ganon\'s Castle'), - 'Links Pocket': (0x34806FB, 0x34806FF, None, 'Boss', None, 'Link\'s Pocket'), # I don't think the actually addresses matter here anymore, but they can't be None for some reason - 'Queen Gohma': (0xCA315F, 0x2079571, 0x6C, 'Boss', None, 'Deku Tree'), - 'King Dodongo': (0xCA30DF, 0x2223309, 0x6D, 'Boss', None, 'Dodongo\'s Cavern'), - 'Barinade': (0xCA36EB, 0x2113C19, 0x6E, 'Boss', None, 'Jabu Jabu\'s Belly'), - 'Phantom Ganon': (0xCA3D07, 0xD4ED79, 0x66, 'Boss', None, 'Shadow Temple'), - 'Volvagia': (0xCA3D93, 0xD10135, 0x67, 'Boss', None, 'Fire Temple'), - 'Morpha': (0xCA3E1F, 0xD5A3A9, 0x68, 'Boss', None, 'Water Temple'), - 'Twinrova': (0xCA3EB3, 0xD39FF1, 0x69, 'Boss', None, 'Spirit Temple'), - 'Bongo Bongo': (0xCA3F43, 0xD13E19, 0x6A, 'Boss', None, 'Shadow Temple'), - 'Ganon': (None, None, None, 'Boss', None, 'Ganon\'s Castle'), - # note that the scene for skulltulas is not the actual scene the token appears in - # rather, it is the index of the grouping used when storing skulltula collection - # for example, zora river, zora's domain, and zora fountain are all a single 'scene' for skulltulas - 'GS Deku Tree Basement Back Room': (None, None, 0x01, 'GS Token', 0x00, 'Deku Tree'), - 'GS Deku Tree Basement Gate': (None, None, 0x02, 'GS Token', 0x00, 'Deku Tree'), - 'GS Deku Tree Basement Vines': (None, None, 0x04, 'GS Token', 0x00, 'Deku Tree'), - 'GS Deku Tree Compass Room': (None, None, 0x08, 'GS Token', 0x00, 'Deku Tree'), - - 'GS Dodongo\'s Cavern Vines Above Stairs': (None, None, 0x01, 'GS Token', 0x01, 'Dodongo\'s Cavern'), - 'GS Dodongo\'s Cavern Scarecrow': (None, None, 0x02, 'GS Token', 0x01, 'Dodongo\'s Cavern'), - 'GS Dodongo\'s Cavern Alcove Above Stairs': (None, None, 0x04, 'GS Token', 0x01, 'Dodongo\'s Cavern'), - 'GS Dodongo\'s Cavern Back Room': (None, None, 0x08, 'GS Token', 0x01, 'Dodongo\'s Cavern'), - 'GS Dodongo\'s Cavern East Side Room': (None, None, 0x10, 'GS Token', 0x01, 'Dodongo\'s Cavern'), - - 'GS Jabu Jabu Lobby Basement Lower': (None, None, 0x01, 'GS Token', 0x02, 'Jabu Jabu\'s Belly'), - 'GS Jabu Jabu Lobby Basement Upper': (None, None, 0x02, 'GS Token', 0x02, 'Jabu Jabu\'s Belly'), - 'GS Jabu Jabu Near Boss': (None, None, 0x04, 'GS Token', 0x02, 'Jabu Jabu\'s Belly'), - 'GS Jabu Jabu Water Switch Room': (None, None, 0x08, 'GS Token', 0x02, 'Jabu Jabu\'s Belly'), - - 'GS Forest Temple Outdoor East': (None, None, 0x01, 'GS Token', 0x03, 'Forest Temple'), - 'GS Forest Temple First Room': (None, None, 0x02, 'GS Token', 0x03, 'Forest Temple'), - 'GS Forest Temple Outdoor West': (None, None, 0x04, 'GS Token', 0x03, 'Forest Temple'), - 'GS Forest Temple Lobby': (None, None, 0x08, 'GS Token', 0x03, 'Forest Temple'), - 'GS Forest Temple Basement': (None, None, 0x10, 'GS Token', 0x03, 'Forest Temple'), - - 'GS Fire Temple Song of Time Room': (None, None, 0x01, 'GS Token', 0x04, 'Fire Temple'), - 'GS Fire Temple Basement': (None, None, 0x02, 'GS Token', 0x04, 'Fire Temple'), - 'GS Fire Temple Unmarked Bomb Wall': (None, None, 0x04, 'GS Token', 0x04, 'Fire Temple'), - 'GS Fire Temple East Tower Top': (None, None, 0x08, 'GS Token', 0x04, 'Fire Temple'), - 'GS Fire Temple East Tower Climb': (None, None, 0x10, 'GS Token', 0x04, 'Fire Temple'), - - 'GS Water Temple South Basement': (None, None, 0x01, 'GS Token', 0x05, 'Water Temple'), - 'GS Water Temple Falling Platform Room': (None, None, 0x02, 'GS Token', 0x05, 'Water Temple'), - 'GS Water Temple Central Room': (None, None, 0x04, 'GS Token', 0x05, 'Water Temple'), - 'GS Water Temple Near Boss Key Chest': (None, None, 0x08, 'GS Token', 0x05, 'Water Temple'), - 'GS Water Temple Serpent River': (None, None, 0x10, 'GS Token', 0x05, 'Water Temple'), - - 'GS Spirit Temple Hall to West Iron Knuckle': (None, None, 0x01, 'GS Token', 0x06, 'Spirit Temple'), - 'GS Spirit Temple Boulder Room': (None, None, 0x02, 'GS Token', 0x06, 'Spirit Temple'), - 'GS Spirit Temple Lobby': (None, None, 0x04, 'GS Token', 0x06, 'Spirit Temple'), - 'GS Spirit Temple Bomb for Light Room': (None, None, 0x08, 'GS Token', 0x06, 'Spirit Temple'), - 'GS Spirit Temple Metal Fence': (None, None, 0x10, 'GS Token', 0x06, 'Spirit Temple'), - - 'GS Shadow Temple Single Giant Pot': (None, None, 0x01, 'GS Token', 0x07, 'Shadow Temple'), - 'GS Shadow Temple Crusher Room': (None, None, 0x02, 'GS Token', 0x07, 'Shadow Temple'), - 'GS Shadow Temple Tripple Giant Pot': (None, None, 0x04, 'GS Token', 0x07, 'Shadow Temple'), - 'GS Shadow Temple Like Like Room': (None, None, 0x08, 'GS Token', 0x07, 'Shadow Temple'), - 'GS Shadow Temple Near Ship': (None, None, 0x10, 'GS Token', 0x07, 'Shadow Temple'), - - 'GS Well Like Like Cage': (None, None, 0x01, 'GS Token', 0x08, 'Bottom of the Well'), - 'GS Well East Inner Room': (None, None, 0x02, 'GS Token', 0x08, 'Bottom of the Well'), - 'GS Well West Inner Room': (None, None, 0x04, 'GS Token', 0x08, 'Bottom of the Well'), - - 'GS Ice Cavern Push Block Room': (None, None, 0x01, 'GS Token', 0x09, 'Ice Cavern'), - 'GS Ice Cavern Spinning Scythe Room': (None, None, 0x02, 'GS Token', 0x09, 'Ice Cavern'), - 'GS Ice Cavern Heart Piece Room': (None, None, 0x04, 'GS Token', 0x09, 'Ice Cavern'), - - 'GS Hyrule Field Near Gerudo Valley': (None, None, 0x01, 'GS Token', 0x0A, 'Hyrule Field'), - 'GS Hyrule Field near Kakariko': (None, None, 0x02, 'GS Token', 0x0A, 'Hyrule Field'), - - 'GS Lon Lon Ranch Back Wall': (None, None, 0x01, 'GS Token', 0x0B, 'Lon Lon Ranch'), - 'GS Lon Lon Ranch Rain Shed': (None, None, 0x02, 'GS Token', 0x0B, 'Lon Lon Ranch'), - 'GS Lon Lon Ranch House Window': (None, None, 0x04, 'GS Token', 0x0B, 'Lon Lon Ranch'), - 'GS Lon Lon Ranch Tree': (None, None, 0x08, 'GS Token', 0x0B, 'Lon Lon Ranch'), - - 'GS Kokiri Bean Patch': (None, None, 0x01, 'GS Token', 0x0C, 'Kokiri Forest'), - 'GS Kokiri Know It All House': (None, None, 0x02, 'GS Token', 0x0C, 'Kokiri Forest'), - 'GS Kokiri House of Twins': (None, None, 0x04, 'GS Token', 0x0C, 'Kokiri Forest'), - - 'GS Lost Woods Bean Patch Near Bridge': (None, None, 0x01, 'GS Token', 0x0D, 'the Lost Woods'), - 'GS Lost Woods Bean Patch Near Stage': (None, None, 0x02, 'GS Token', 0x0D, 'the Lost Woods'), - 'GS Lost Woods Above Stage': (None, None, 0x04, 'GS Token', 0x0D, 'the Lost Woods'), - 'GS Sacred Forest Meadow': (None, None, 0x08, 'GS Token', 0x0D, 'Sacred Forest Meadow'), - - 'GS Outside Ganon\'s Castle': (None, None, 0x01, 'GS Token', 0x0E, 'outside my castle'), - 'GS Hyrule Castle Grotto': (None, None, 0x02, 'GS Token', 0x0E, 'Hyrule Castle'), - 'GS Hyrule Castle Tree': (None, None, 0x04, 'GS Token', 0x0E, 'Hyrule Castle'), - 'GS Castle Market Guard House': (None, None, 0x08, 'GS Token', 0x0E, 'the market'), - - 'GS Death Mounter Bean Patch': (None, None, 0x01, 'GS Token', 0x0F, 'Death Mountain Crater'), - 'GS Mountain Trail Bean Patch': (None, None, 0x02, 'GS Token', 0x0F, 'Death Mountain Trail'), - 'GS Mountain Trail Bomb Alcove': (None, None, 0x04, 'GS Token', 0x0F, 'Death Mountain Trail'), - 'GS Mountain Trail Above Dodongo\'s Cavern': (None, None, 0x08, 'GS Token', 0x0F, 'Death Mountain Trail'), - 'GS Mountain Trail Path to Crater': (None, None, 0x10, 'GS Token', 0x0F, 'Death Mountain Trail'), - 'GS Goron City Center Platform': (None, None, 0x20, 'GS Token', 0x0F, 'Goron City'), - 'GS Goron City Boulder Maze': (None, None, 0x40, 'GS Token', 0x0F, 'Goron City'), - 'GS Death Mounter Crater Crate': (None, None, 0x80, 'GS Token', 0x0F, 'Death Mountain Crater'), - - 'GS Kakariko House Under Construction': (None, None, 0x08, 'GS Token', 0x10, 'Kakariko Village'), - 'GS Kakariko Skulltula House': (None, None, 0x10, 'GS Token', 0x10, 'Kakariko Village'), - 'GS Kakariko Guard\'s House': (None, None, 0x02, 'GS Token', 0x10, 'Kakariko Village'), - 'GS Kakariko Tree': (None, None, 0x20, 'GS Token', 0x10, 'Kakariko Village'), - 'GS Kakariko Watchtower': (None, None, 0x04, 'GS Token', 0x10, 'Kakariko Village'), - 'GS Kakariko Above Impa\'s House': (None, None, 0x40, 'GS Token', 0x10, 'Kakariko Village'), - 'GS Graveyard Wall': (None, None, 0x80, 'GS Token', 0x10, 'the Graveyard'), - 'GS Graveyard Bean Patch': (None, None, 0x01, 'GS Token', 0x10, 'the Graveyard'), - - 'GS Zora River Ladder': (None, None, 0x01, 'GS Token', 0x11, 'Zora River'), - 'GS Zora River Tree': (None, None, 0x02, 'GS Token', 0x11, 'Zora River'), - 'GS Zora\'s Fountain Above the Log': (None, None, 0x04, 'GS Token', 0x11, 'Zora\'s Fountain'), - 'GS Zora River Above Bridge': (None, None, 0x08, 'GS Token', 0x11, 'Zora River'), - 'GS Zora River Near Raised Grottos': (None, None, 0x10, 'GS Token', 0x11, 'Zora River'), - 'GS Zora\'s Fountain Hidden Cave': (None, None, 0x20, 'GS Token', 0x11, 'Zora\'s Fountain'), - 'GS Zora\'s Domain Frozen Waterfall': (None, None, 0x40, 'GS Token', 0x11, 'Zora\'s Domain'), - 'GS Zora\'s Fountain Tree': (None, None, 0x80, 'GS Token', 0x11, 'Zora\'s Fountain'), - - 'GS Lake Hylia Bean Patch': (None, None, 0x01, 'GS Token', 0x12, 'Lake Hylia'), - 'GS Lake Hylia Small Island': (None, None, 0x02, 'GS Token', 0x12, 'Lake Hylia'), - 'GS Lake Hylia Lab Wall': (None, None, 0x04, 'GS Token', 0x12, 'Lake Hylia'), - 'GS Lab Underwater Crate': (None, None, 0x08, 'GS Token', 0x12, 'Lake Hylia'), - 'GS Lake Hylia Giant Tree': (None, None, 0x10, 'GS Token', 0x12, 'Lake Hylia'), - - 'GS Gerudo Valley Bean Patch': (None, None, 0x01, 'GS Token', 0x13, 'Gerudo Valley'), - 'GS Gerudo Valley Small Bridge': (None, None, 0x02, 'GS Token', 0x13, 'Gerudo Valley'), - 'GS Gerudo Valley Pillar': (None, None, 0x04, 'GS Token', 0x13, 'Gerudo Valley'), - 'GS Gerudo Valley Behind Tent': (None, None, 0x08, 'GS Token', 0x13, 'Gerudo Valley'), - - 'GS Gerudo Fortress Archery Range': (None, None, 0x01, 'GS Token', 0x14, 'Gerudo Fortress'), - 'GS Gerudo Fortress Top Floor': (None, None, 0x02, 'GS Token', 0x14, 'Gerudo Fortress'), - - 'GS Desert Colossus Bean Patch': (None, None, 0x01, 'GS Token', 0x15, 'Desert Colossus'), - 'GS Wasteland Ruins': (None, None, 0x02, 'GS Token', 0x15, 'Haunted Wasteland'), - 'GS Desert Colossus Hill': (None, None, 0x04, 'GS Token', 0x15, 'Desert Colossus'), - 'GS Desert Colossus Tree': (None, None, 0x08, 'GS Token', 0x15, 'Desert Colossus'), - } +location_table = { + 'Kokiri Sword Chest': (0x20A6142, None, 0x04E0, 'Chest', 0x55, 'Kokiri Forest'), + 'Mido Chest Top Left': (0x2F7B08A, None, 0x59A0, 'Chest', 0x28, 'Kokiri Forest'), + 'Mido Chest Top Right': (0x2F7B09A, None, 0x59A1, 'Chest', 0x28, 'Kokiri Forest'), + 'Mido Chest Bottom Left': (0x2F7B0AA, None, 0x5982, 'Chest', 0x28, 'Kokiri Forest'), + 'Mido Chest Bottom Right': (0x2F7B0BA, None, 0x5903, 'Chest', 0x28, 'Kokiri Forest'), + 'Shield Grave Chest': (0x328B096, None, 0x5540, 'Chest', 0x40, 'the Graveyard'), + 'Heart Piece Grave Chest': (0x2D0A056, None, 0xA7C0, 'Chest', 0x3F, 'the Graveyard'), + 'Composer Grave Chest': (0x332D0EA, None, 0x8020, 'Chest', 0x41, 'the Graveyard'), + 'Death Mountain Bombable Chest': (0x223C3CA, 0x223C7B2, 0x5AA1, 'Chest', 0x60, 'Death Mountain Trail'), + 'Goron City Leftmost Maze Chest': (0x227C23A, 0x227C70A, 0x5AC0, 'Chest', 0x62, 'Goron City'), + 'Goron City Left Maze Chest': (0x227C24A, 0x227C71A, 0x5AA1, 'Chest', 0x62, 'Goron City'), + 'Goron City Right Maze Chest': (0x227C25A, 0x227C72A, 0x5AA2, 'Chest', 0x62, 'Goron City'), + 'Zoras Domain Torch Run': (0x2103166, None, 0xB7C0, 'Chest', 0x58, 'Zora\'s Domain'), + 'Hookshot Chest': (0x3063092, None, 0x1100, 'Chest', 0x48, 'the Graveyard'), + 'Gerudo Valley Hammer Rocks Chest': (0x213D676, None, 0x5AA0, 'Chest', 0x5A, 'Gerudo Valley'), + 'Gerudo Fortress Rooftop Chest': (0x21BD4AA, 0x21BD6EA, 0x07C0, 'Chest', 0x5D, 'Gerudo Fortress'), + 'Haunted Wasteland Structure Chest': (0x21E20DE, None, 0x8AA0, 'Chest', 0x5E, 'Haunted Wasteland'), + 'Redead Grotto Chest': (0x26CF076, None, 0x7ACA, 'Chest', 0x3E, 'Kakariko Village'), + 'Wolfos Grotto Chest': (0x26EB076, None, 0x7AB1, 'Chest', 0x3E, 'Sacred Forest Meadow'), + 'Deku Tree Lobby Chest': (0x24A7146, None, 0x0823, 'Chest', 0x00, 'Deku Tree'), + 'Deku Tree Slingshot Chest': (0x24C20C6, None, 0x00A1, 'Chest', 0x00, 'Deku Tree'), + 'Deku Tree Slingshot Room Side Chest': (0x24C20D6, None, 0x5905, 'Chest', 0x00, 'Deku Tree'), + 'Deku Tree Compass Chest': (0x25040D6, None, 0x0802, 'Chest', 0x00, 'Deku Tree'), + 'Deku Tree Compass Room Side Chest': (0x25040E6, None, 0x5906, 'Chest', 0x00, 'Deku Tree'), + 'Deku Tree Basement Chest': (0x24C8166, None, 0x5904, 'Chest', 0x00, 'Deku Tree'), + 'Dodongos Cavern Map Chest': (0x1F2819E, None, 0x0828, 'Chest', 0x01, 'Dodongo\'s Cavern'), + 'Dodongos Cavern Compass Chest': (0x1FAF0AA, None, 0x0805, 'Chest', 0x01, 'Dodongo\'s Cavern'), + 'Dodongos Cavern Bomb Flower Platform': (0x1F890DE, None, 0x59C6, 'Chest', 0x01, 'Dodongo\'s Cavern'), + 'Dodongos Cavern Bomb Bag Chest': (0x1F890CE, None, 0x0644, 'Chest', 0x01, 'Dodongo\'s Cavern'), + 'Dodongos Cavern End of Bridge Chest': (0x1F281CE, None, 0x552A, 'Chest', 0x01, 'Dodongo\'s Cavern'), + 'Chest Above King Dodongo': (0x2EB00BA, None, 0x5020, 'Chest', 0x12, 'Dodongo\'s Cavern'), + 'Boomerang Chest': (0x278A0BA, None, 0x10C1, 'Chest', 0x02, 'Jabu Jabu\'s Belly'), + 'Jabu Jabus Belly Map Chest': (0x278E08A, None, 0x1822, 'Chest', 0x02, 'Jabu Jabu\'s Belly'), + 'Jabu Jabus Belly Compass Chest': (0x279608A, None, 0xB804, 'Chest', 0x02, 'Jabu Jabu\'s Belly'), + 'Forest Temple First Chest': (0x23E5092, None, 0x5843, 'Chest', 0x03, 'Forest Temple'), + 'Forest Temple Chest Behind Lobby': (0x2415082, None, 0x7840, 'Chest', 0x03, 'Forest Temple'), + 'Forest Temple Well Chest': (0x244A062, None, 0x5849, 'Chest', 0x03, 'Forest Temple'), + 'Forest Temple Map Chest': (0x2455076, None, 0x1821, 'Chest', 0x03, 'Forest Temple'), + 'Forest Temple Outside Hookshot Chest': (0x241F0D6, None, 0x5905, 'Chest', 0x03, 'Forest Temple'), + 'Forest Temple Falling Room Chest': (0x247E09E, None, 0x5947, 'Chest', 0x03, 'Forest Temple'), + 'Forest Temple Block Push Chest': (0x245B096, None, 0x8964, 'Chest', 0x03, 'Forest Temple'), + 'Forest Temple Boss Key Chest': (0xCB0DC2, None, 0x27EE, 'Chest', 0x03, 'Forest Temple'), + 'Forest Temple Floormaster Chest': (0x2490072, None, 0x7842, 'Chest', 0x03, 'Forest Temple'), + 'Forest Temple Bow Chest': (0x2415092, None, 0xB08C, 'Chest', 0x03, 'Forest Temple'), + 'Forest Temple Red Poe Chest': (0x246607E, None, 0x784D, 'Chest', 0x03, 'Forest Temple'), + 'Forest Temple Blue Poe Chest': (0x246F07E, None, 0x180F, 'Chest', 0x03, 'Forest Temple'), + 'Forest Temple Near Boss Chest': (0x2486082, None, 0x592B, 'Chest', 0x03, 'Forest Temple'), + 'Bottom of the Well Front Left Hidden Wall': (0x32D317E, None, 0x5848, 'Chest', 0x08, 'Bottom of the Well'), + 'Bottom of the Well Front Center Bombable': (0x32D30FE, None, 0x5062, 'Chest', 0x08, 'Bottom of the Well'), + 'Bottom of the Well Right Bottom Hidden Wall': (0x32D314E, None, 0x5845, 'Chest', 0x08, 'Bottom of the Well'), + 'Bottom of the Well Center Large Chest': (0x32D30EE, None, 0x0801, 'Chest', 0x08, 'Bottom of the Well'), + 'Bottom of the Well Center Small Chest': (0x32D31AE, None, 0x504E, 'Chest', 0x08, 'Bottom of the Well'), + 'Bottom of the Well Back Left Bombable': (0x32D313E, None, 0x5C84, 'Chest', 0x08, 'Bottom of the Well'), + 'Bottom of the Well Defeat Boss': (0x32FB0AA, None, 0x1143, 'Chest', 0x08, 'Bottom of the Well'), + 'Bottom of the Well Invisible Chest': (0x32FB0BA, None, 0x6AD4, 'Chest', 0x08, 'Bottom of the Well'), + 'Bottom of the Well Underwater Front Chest': (0x32D31BE, None, 0x5CD0, 'Chest', 0x08, 'Bottom of the Well'), + 'Bottom of the Well Underwater Left Chest': (0x32D318E, None, 0x5909, 'Chest', 0x08, 'Bottom of the Well'), + 'Bottom of the Well Basement Chest': (0x32E9252, None, 0x0827, 'Chest', 0x08, 'Bottom of the Well'), + 'Bottom of the Well Locked Pits': (0x32F90AA, None, 0x552A, 'Chest', 0x08, 'Bottom of the Well'), + 'Bottom of the Well Behind Right Grate': (0x32D319E, None, 0x554C, 'Chest', 0x08, 'Bottom of the Well'), + 'Fire Temple Chest Near Boss': (0x230808A, None, 0x5841, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple Fire Dancer Chest': (0x2318082, None, 0x7CC0, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple Boss Key Chest': (0x238A0D6, None, 0x27EC, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple Big Lava Room Bombable Chest': (0x23AD076, None, 0x5842, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple Big Lava Room Open Chest': (0x239D0A6, None, 0x5844, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple Boulder Maze Lower Chest': (0x2323152, None, 0x5843, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple Boulder Maze Upper Chest': (0x2323182, None, 0x5846, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple Boulder Maze Side Room': (0x23B40B2, None, 0x5848, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple Boulder Maze Bombable Pit': (0x231B0E2, None, 0x584B, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple Scarecrow Chest': (0x2339082, None, 0x5ACD, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple Map Chest': (0x237E0C2, None, 0x082A, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple Compass Chest': (0x23C1082, None, 0x0807, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple Highest Goron Chest': (0x2365066, None, 0x5849, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple Megaton Hammer Chest': (0x236C102, None, 0x01A5, 'Chest', 0x04, 'Fire Temple'), + 'Ice Cavern Map Chest': (0x2C4016A, None, 0x0820, 'Chest', 0x09, 'Ice Cavern'), + 'Ice Cavern Compass Chest': (0x2C4E236, None, 0x0801, 'Chest', 0x09, 'Ice Cavern'), + 'Ice Cavern Iron Boots Chest': (0x2C380A2, None, 0x15C2, 'Chest', 0x09, 'Ice Cavern'), + 'Water Temple Map Chest': (0x26690A6, None, 0x1822, 'Chest', 0x05, 'Water Temple'), + 'Water Temple Compass Chest': (0x25FC0D2, None, 0x0809, 'Chest', 0x05, 'Water Temple'), + 'Water Temple Torches Chest': (0x26640A6, None, 0x7841, 'Chest', 0x05, 'Water Temple'), + 'Water Temple Dragon Chest': (0x261F0BA, None, 0x584A, 'Chest', 0x05, 'Water Temple'), + 'Water Temple Central Bow Target Chest': (0x266D072, None, 0x5848, 'Chest', 0x05, 'Water Temple'), + 'Water Temple Central Pillar Chest': (0x25EF0D6, None, 0x5846, 'Chest', 0x05, 'Water Temple'), + 'Water Temple Cracked Wall Chest': (0x265B0A6, None, 0x5840, 'Chest', 0x05, 'Water Temple'), + 'Water Temple Boss Key Chest': (0x2657066, None, 0x27E5, 'Chest', 0x05, 'Water Temple'), + 'Water Temple Dark Link Chest': (0x261907A, None, 0x0127, 'Chest', 0x05, 'Water Temple'), + 'Water Temple River Chest': (0x26740DE, None, 0x5843, 'Chest', 0x05, 'Water Temple'), + 'Shadow Temple Map Chest': (0x27CC0AA, None, 0x1821, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple Hover Boots Chest': (0x27DC0CA, None, 0x15E7, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple Compass Chest': (0x27EC09E, None, 0x1803, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple Early Silver Rupee Chest': (0x27E40F6, None, 0x5842, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple Invisible Blades Visible Chest': (0x282212A, None, 0x588C, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple Invisible Blades Invisible Chest': (0x282211A, None, 0x6976, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple Falling Spikes Lower Chest': (0x2801132, None, 0x5945, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple Falling Spikes Upper Chest': (0x2801142, None, 0x5886, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple Falling Spikes Switch Chest': (0x2801122, None, 0x8844, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple Invisible Spikes Chest': (0x28090EE, None, 0x7889, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple Wind Hint Chest': (0x283609A, None, 0x6955, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple After Wind Enemy Chest': (0x28390FE, None, 0x7888, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple After Wind Hidden Chest': (0x28390EE, None, 0x6854, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple Spike Walls Left Chest': (0x28130B6, None, 0x588A, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple Boss Key Chest': (0x28130A6, None, 0x27EB, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple Hidden Floormaster Chest': (0x282508A, None, 0x784D, 'Chest', 0x07, 'Shadow Temple'), + 'Gerudo Training Grounds Lobby Left Chest': (0x28870CA, None, 0x8893, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Lobby Right Chest': (0x28870BA, None, 0x8947, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Stalfos Chest': (0x28970AA, None, 0x8840, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Beamos Chest': (0x28C715E, None, 0x8841, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Hidden Ceiling Chest': (0x28D010E, None, 0x584B, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Maze Path First Chest': (0x28D00CE, None, 0x5AA6, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Maze Path Second Chest': (0x28D00FE, None, 0x59CA, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Maze Path Third Chest': (0x28D00EE, None, 0x5969, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Maze Path Final Chest': (0x28D011E, None, 0x0B2C, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Maze Right Central Chest': (0x28D00BE, None, 0x5D45, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Maze Right Side Chest': (0x28D00DE, None, 0x5968, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Underwater Silver Rupee Chest': (0x28D91D6, None, 0x884D, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Hammer Room Clear Chest': (0x28B91AE, None, 0x7952, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Hammer Room Switch Chest': (0x28B919E, None, 0x5850, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Eye Statue Chest': (0x28AE09E, None, 0x8843, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Near Scarecrow Chest': (0x28D00AE, None, 0x5844, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Before Heavy Block Chest': (0x28A611E, None, 0x7971, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Heavy Block First Chest': (0x28DD0BE, None, 0x7ACF, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Heavy Block Second Chest': (0x28DD0AE, None, 0x788E, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Heavy Block Third Chest': (0x28DD08E, None, 0x6854, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Heavy Block Fourth Chest': (0x28DD09E, None, 0x5F82, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Spirit Temple Child Left Chest': (0x2B190BA, None, 0x5528, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple Child Right Chest': (0x2B13182, None, 0x8840, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple Compass Chest': (0x2B6B08A, None, 0x3804, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple Early Adult Right Chest': (0x2B6207A, None, 0x5847, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple First Mirror Right Chest': (0x2B700C6, None, 0x890D, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple First Mirror Left Chest': (0x2B700D6, None, 0x8F8E, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple Map Chest': (0x2B25126, None, 0xB823, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple Child Climb East Chest': (0x2B1D122, None, 0x8066, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple Child Climb North Chest': (0x2B1D132, None, 0x852C, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple Sun Block Room Chest': (0x2B481B2, None, 0x8841, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple Statue Hand Chest': (0x2B25136, None, 0x8842, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple NE Main Room Chest': (0x2B25146, None, 0x888F, 'Chest', 0x06, 'Spirit Temple'), + 'Silver Gauntlets Chest': (0x21A02DE, 0x21A06F2, 0x06AB, 'Chest', 0x5C, 'Desert Colossus'), + 'Mirror Shield Chest': (0x21A02CE, 0x21A06E2, 0x3569, 'Chest', 0x5C, 'Desert Colossus'), + 'Spirit Temple Near Four Armos Chest': (0x2B9F076, None, 0x5845, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple Hallway Left Invisible Chest': (0x2B900B6, None, 0x6914, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple Hallway Right Invisible Chest': (0x2B900C6, None, 0x6915, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple Boss Key Chest': (0x2BA4162, None, 0x27EA, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple Topmost Chest': (0x2BCF0FE, None, 0x8CF2, 'Chest', 0x06, 'Spirit Temple'), + 'Ganons Castle Forest Trial Chest': (0x31F106E, None, 0x7889, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle Water Trial Left Chest': (0x31D7236, None, 0x5F87, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle Water Trial Right Chest': (0x31D7226, None, 0x5906, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle Shadow Trial First Chest': (0x32350CA, None, 0x5888, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle Shadow Trial Second Chest': (0x32350BA, None, 0x36C5, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle Spirit Trial First Chest': (0x3268132, None, 0x8D72, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle Spirit Trial Second Chest': (0x3268142, None, 0x6954, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle Light Trial First Left Chest': (0x321B11E, None, 0x588C, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle Light Trial Second Left Chest': (0x321B10E, None, 0x5F8B, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle Light Trial Third Left Chest': (0x321B12E, None, 0x590D, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle Light Trial First Right Chest': (0x321B13E, None, 0x5F8E, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle Light Trial Second Right Chest': (0x321B0FE, None, 0x596A, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle Light Trial Third Right Chest': (0x321B14E, None, 0x5F8F, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle Light Trail Invisible Enemies Chest': (0x321B15E, None, 0x7850, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle Light Trial Lullaby Chest': (0x321B17E, None, 0x8851, 'Chest', 0x0D, 'my castle'), + 'Ganons Tower Boss Key Chest': (0x2F040EE, None, 0x27EB, 'Chest', 0x0A, 'my tower'), + 'Field West Castle Town Grotto Chest': (None, None, 0x00, 'Chest', 0x3E, 'Hyrule Field'), + 'Remote Southern Grotto Chest': (None, None, 0x02, 'Chest', 0x3E, 'Hyrule Field'), + 'Field Near Lake Outside Fence Grotto Chest': (None, None, 0x03, 'Chest', 0x3E, 'Hyrule Field'), + 'Kakariko Back Grotto Chest': (None, None, 0x08, 'Chest', 0x3E, 'Kakariko Village'), + 'Zora River Plateau Open Grotto Chest': (None, None, 0x09, 'Chest', 0x3E, 'Zora River'), + 'Kokiri Forest Storms Grotto Chest': (None, None, 0x0C, 'Chest', 0x3E, 'Kokiri Forest'), + 'Lost Woods Generic Grotto Chest': (None, None, 0x14, 'Chest', 0x3E, 'the Lost Woods'), + 'Mountain Storms Grotto Chest': (None, None, 0x17, 'Chest', 0x3E, 'Death Mountain Trail'), + 'Top of Crater Grotto Chest': (None, None, 0x1A, 'Chest', 0x3E, 'Death Mountain Crater'), + 'Impa at Castle': (0x2E8E925, 0x2E8E925, 0x67, 'Song', 0x51, 'Hyrule Castle'), + 'Song from Malon': (0xD7EB53, 0xD7EBCF, 0x68, 'Song', 0x63, 'Lon Lon Ranch'), + 'Song from Composer Grave': (0x332A871, 0x332A871, 0x6A, 'Song', 0x41, 'the Graveyard'), + 'Song from Saria': (0x20B1DB1, 0x20B1DB1, 0x69, 'Song', 0x56, 'Sacred Forest Meadow'), + 'Song from Ocarina of Time': (0x252FC89, 0x252FC89, 0x6B, 'Song', 0x51, 'Hyrule Field'), + 'Song at Windmill': (0xE42C07, 0xE42B8B, 0x6C, 'Song', 0x48, 'Kakariko'), + 'Sheik Forest Song': (0x20B0809, 0x20B0809, 0x61, 'Song', 0x56, 'Sacred Forest Meadow'), + 'Sheik at Temple': (0x2531329, 0x2531329, 0x66, 'Song', 0x43, 'Temple of Time'), + 'Sheik in Crater': (0x224D7F1, 0x224D7F1, 0x62, 'Song', 0x61, 'Death Mountain Crater'), + 'Sheik in Ice Cavern': (0x2BEC889, 0x2BEC889, 0x63, 'Song', 0x09, 'Ice Cavern'), + 'Sheik in Kakariko': (0x2000FE1, 0x2000FE1, 0x65, 'Song', 0x52, 'Kakariko'), + 'Sheik at Colossus': (0x218C57D, 0x218C57D, 0x64, 'Song', 0x5C, 'Desert Colossus'), + 'Gift from Saria': (None, None, 0x3B, 'NPC', 0x5B, 'the Lost Woods'), + 'Malon Egg': (None, None, 0x47, 'NPC', 0x5F, 'Hyrule Castle'), + 'Zeldas Letter': (None, None, None, 'NPC', None, 'Hyrule Castle'), + 'Zelda': (0x3481400, None, 0x5A, 'NPC', 0x43, 'the Temple of Time'), + 'Zoras Fountain Fairy Reward': (0x3481401, None, 0x5D, 'NPC', 0x3D, 'Zora\'s Fountain'), + 'Hyrule Castle Fairy Reward': (0x3481402, None, 0x5C, 'NPC', 0x3D, 'Hyrule Castle'), + 'Desert Colossus Fairy Reward': (0x3481403, None, 0x5E, 'NPC', 0x3D, 'Desert Colossus'), + 'Mountain Summit Fairy Reward': (0x3481404, None, 0x51, 'NPC', 0x3B, 'Death Mountain Trail'), + 'Crater Fairy Reward': (0x3481405, None, 0x52, 'NPC', 0x3B, 'Death Mountain Crater'), + 'Ganons Castle Fairy Reward': (0x3481406, None, 0x53, 'NPC', 0x3B, 'outside my castle'), + 'Treasure Chest Game': (None, None, 0x0A, 'Chest', 0x10, 'the market'), + 'Darunias Joy': (0xCF1BFF, None, 0x54, 'NPC', 0x62, 'Goron City'), + 'Diving Minigame': (0xE01A2B, 0xE01AA7, 0x37, 'NPC', 0x58, 'Zora\'s Domain'), + 'Child Fishing': (0xDCBFBF, None, 0x3E, 'NPC', 0x49, 'Lake Hylia'), + 'Adult Fishing': (0xDCC087, None, 0x38, 'NPC', 0x49, 'Lake Hylia'), + 'Diving in the Lab': (0xE2CB97, None, 0x3E, 'NPC', 0x38, 'Lake Hylia'), + 'Link the Goron': (0xED30EB, 0xED64F3, 0x2C, 'NPC', 0x62, 'Goron City'), + 'King Zora Thawed': (0xE56AD7, None, 0x2D, 'NPC', 0x58, 'Zora\'s Domain'), + 'Bombchu Bowling Bomb Bag': (0xE2F093, None, 0x34, 'NPC', 0x4B, 'the market'), + 'Bombchu Bowling Piece of Heart': (0xE2F097, None, 0x3E, 'NPC', 0x4B, 'the market'), + 'Dog Lady': (0xE65163, 0xE661BB, 0x3E, 'NPC', 0x35, 'the market'), + 'Skull Kid': (0xDF0F33, 0xDF0E9B, 0x3E, 'NPC', 0x5B, 'the Lost Woods'), + 'Ocarina Memory Game': (0xDF264F, None, 0x76, 'NPC', 0x5B, 'the Lost Woods'), + '10 Gold Skulltulla Reward': (0xEA7173, None, 0x45, 'NPC', 0x50, 'Kakariko Village'), + '20 Gold Skulltulla Reward': (0xEA7175, None, 0x39, 'NPC', 0x50, 'Kakariko Village'), + '30 Gold Skulltulla Reward': (0xEA7177, None, 0x46, 'NPC', 0x50, 'Kakariko Village'), + '40 Gold Skulltulla Reward': (0xEA7179, None, 0x03, 'NPC', 0x50, 'Kakariko Village'), + '50 Gold Skulltulla Reward': (0xEA717B, None, 0x3E, 'NPC', 0x50, 'Kakariko Village'), + 'Man on Roof': (0xE587E3, None, 0x3E, 'NPC', 0x52, 'Kakariko Village'), + 'Frog Ocarina Game': (0xDB13D3, None, 0x76, 'NPC', 0x54, 'Zora River'), + 'Frogs in the Rain': (0xDB1387, None, 0x3E, 'NPC', 0x54, 'Zora River'), + 'Horseback Archery 1000 Points': (0xE12B6F, 0xE12AA3, 0x3E, 'NPC', 0x5D, 'Gerudo Fortress'), + 'Horseback Archery 1500 Points': (0xE12BC3, 0xE12AFB, 0x30, 'NPC', 0x5D, 'Gerudo Fortress'), + 'Child Shooting Gallery': (0xD35EF3, None, 0x60, 'NPC', 0x42, 'the market'), + 'Adult Shooting Gallery': (0xD35F5B, None, 0x30, 'NPC', 0x42, 'Kakariko Village'), + 'Target in Woods': (0xE59CDF, None, 0x60, 'NPC', 0x5B, 'the Lost Woods'), + 'Deku Theater Skull Mask': (0xEC9A87, None, 0x77, 'NPC', 0x3E, 'the Lost Woods'), + 'Deku Theater Mask of Truth': (0xEC9CE7, None, 0x7A, 'NPC', 0x3E, 'the Lost Woods'), + 'Deku Salesman Woods': (0xDF8073, None, 0x77, 'NPC', 0x5B, 'the Lost Woods'), + 'Deku Salesman Lost Woods Grotto': (0xDF80E7, None, 0x79, 'NPC', 0x3E, 'the Lost Woods'), + 'Deku Salesman Hyrule Field Grotto': (0xDF86AB, None, 0x3E, 'NPC', 0x3E, 'Hyrule Field'), + 'Anju as Adult': (0xE1EABB, None, 0x1D, 'NPC', 0x52, 'Kakariko Village'), + 'Biggoron': (0xED338F, 0xED650F, 0x57, 'NPC', 0x60, 'Death Mountain Trail'), + 'Anjus Chickens': (0xE1E7A7, None, 0x0F, 'NPC', 0x52, 'Kakariko Village'), + 'Talons Chickens': (0xCC14EB, None, 0x14, 'NPC', 0x4C, 'Lon Lon Ranch'), + '10 Big Poes': (0xEE6AEF, None, 0x0F, 'NPC', 0x4D, 'the market'), + 'Rolling Goron as Child': (0xED296F, 0xED6503, 0x34, 'NPC', 0x62, 'Goron City'), + 'Lake Hylia Sun': (0xE9E1F2, None, 0x5B08, 'Chest', 0x57, 'Lake Hylia'), + 'Underwater Bottle': (0xDE10FB, None, 0x15, 'NPC', 0x57, 'Lake Hylia'), + 'Shadow Temple Freestanding Key': (None, None, 0x01, 'Collectable', 0x07, 'Shadow Temple'), + 'Bottom of the Well Freestanding Key': (None, None, 0x01, 'Collectable', 0x08, 'Bottom of the Well'), + 'Gerudo Training Grounds Freestanding Key': (None, None, 0x01, 'Collectable', 0x0B, 'Gerudo Training Grounds'), + 'Ice Cavern Freestanding PoH': (None, None, 0x01, 'Collectable', 0x09, 'Ice Cavern'), + 'Impa House Freestanding PoH': (None, None, 0x01, 'Collectable', 0x37, 'Kakariko Village'), + 'Tektite Grotto Freestanding PoH': (None, None, 0x01, 'Collectable', 0x3E, 'Hyrule Field'), + 'Windmill Freestanding PoH': (None, None, 0x01, 'Collectable', 0x48, 'Kakariko Village'), + 'Dampe Race Freestanding PoH': (None, None, 0x07, 'Collectable', 0x48, 'the Graveyard'), + 'Lon Lon Tower Freestanding PoH': (None, None, 0x01, 'Collectable', 0x4C, 'Lon Lon Ranch'), + 'Graveyard Freestanding PoH': (None, None, 0x04, 'Collectable', 0x53, 'the Graveyard'), + 'Gravedigging Tour': (None, None, 0x00, 'Collectable', 0x53, 'the Graveyard'), + 'Zora River Lower Freestanding PoH': (None, None, 0x04, 'Collectable', 0x54, 'Zora River'), + 'Zora River Upper Freestanding PoH': (None, None, 0x0B, 'Collectable', 0x54, 'Zora River'), + 'Lake Hylia Freestanding PoH': (None, None, 0x1E, 'Collectable', 0x57, 'Lake Hylia'), + 'Zoras Fountain Iceberg Freestanding PoH': (None, None, 0x01, 'Collectable', 0x59, 'Zora\'s Fountain'), + 'Zoras Fountain Bottom Freestanding PoH': (None, None, 0x14, 'Collectable', 0x59, 'Zora\'s Fountain'), + 'Gerudo Valley Waterfall Freestanding PoH': (None, None, 0x01, 'Collectable', 0x5A, 'Gerudo Valley'), + 'Gerudo Valley Crate Freestanding PoH': (None, None, 0x02, 'Collectable', 0x5A, 'Gerudo Valley'), + 'Colossus Freestanding PoH': (None, None, 0x0D, 'Collectable', 0x5C, 'Desert Colossus'), + 'DM Trail Freestanding PoH': (None, None, 0x1E, 'Collectable', 0x60, 'Death Mountain Trail'), + 'DM Crater Wall Freestanding PoH': (None, None, 0x02, 'Collectable', 0x61, 'Death Mountain Crater'), + 'DM Crater Volcano Freestanding PoH': (None, None, 0x08, 'Collectable', 0x61, 'Death Mountain Crater'), + 'Goron City Pot Freestanding PoH': (None, None, 0x1F, 'Collectable', 0x62, 'Goron City'), + 'Gerudo Fortress North F1 Carpenter': (None, None, 0x0C, 'Collectable', 0x0C, 'Gerudo Fortress'), + 'Gerudo Fortress North F2 Carpenter': (None, None, 0x0A, 'Collectable', 0x0C, 'Gerudo Fortress'), + 'Gerudo Fortress South F1 Carpenter': (None, None, 0x0E, 'Collectable', 0x0C, 'Gerudo Fortress'), + 'Gerudo Fortress South F2 Carpenter': (None, None, 0x0F, 'Collectable', 0x0C, 'Gerudo Fortress'), + 'Gerudo Fortress Membership Card': (None, None, 0x3A, 'NPC', 0x0C, 'Gerudo Fortress'), + 'Queen Gohma Heart': (None, None, 0x4F, 'BossHeart', 0x11, 'Deku Tree'), + 'King Dodongo Heart': (None, None, 0x4F, 'BossHeart', 0x12, 'Dodongo\'s Cavern'), + 'Barinade Heart': (None, None, 0x4F, 'BossHeart', 0x13, 'Jabu Jabu\'s Belly'), + 'Phantom Ganon Heart': (None, None, 0x4F, 'BossHeart', 0x14, 'Forest Temple'), + 'Volvagia Heart': (None, None, 0x4F, 'BossHeart', 0x15, 'Fire Temple'), + 'Morpha Heart': (None, None, 0x4F, 'BossHeart', 0x16, 'Water Temple'), + 'Twinrova Heart': (None, None, 0x4F, 'BossHeart', 0x17, 'Spirit Temple'), + 'Bongo Bongo Heart': (None, None, 0x4F, 'BossHeart', 0x18, 'Shadow Temple'), + 'Magic Bean Salesman': (None, None, None, 'Event', None, 'Zora\'s River'), + 'King Zora Moves': (None, None, None, 'Event', None, 'Zora\'s Domain'), + 'Ocarina of Time': (None, None, 0x0C, 'NPC', 0x51, 'Hyrule Field'), + 'Master Sword Pedestal': (None, None, None, 'Event', None, 'the Temple of Time'), + 'Epona': (None, None, None, 'Event', None, 'Lon Lon Ranch'), + 'Gerudo Fortress Carpenter Rescue': (None, None, None, 'Event', None, 'Gerudo Fortress'), + 'Ganons Castle Forest Trial Clear': (None, None, None, 'Event', None, 'Ganon\'s Castle'), + 'Ganons Castle Fire Trial Clear': (None, None, None, 'Event', None, 'Ganon\'s Castle'), + 'Ganons Castle Water Trial Clear': (None, None, None, 'Event', None, 'Ganon\'s Castle'), + 'Ganons Castle Shadow Trial Clear': (None, None, None, 'Event', None, 'Ganon\'s Castle'), + 'Ganons Castle Spirit Trial Clear': (None, None, None, 'Event', None, 'Ganon\'s Castle'), + 'Ganons Castle Light Trial Clear': (None, None, None, 'Event', None, 'Ganon\'s Castle'), + 'Links Pocket': (0x34806FB, 0x34806FF, None, 'Boss', None, 'Link\'s Pocket'), # I don't think the actually addresses matter here anymore, but they can't be None for some reason + 'Queen Gohma': (0xCA315F, 0x2079571, 0x6C, 'Boss', None, 'Deku Tree'), + 'King Dodongo': (0xCA30DF, 0x2223309, 0x6D, 'Boss', None, 'Dodongo\'s Cavern'), + 'Barinade': (0xCA36EB, 0x2113C19, 0x6E, 'Boss', None, 'Jabu Jabu\'s Belly'), + 'Phantom Ganon': (0xCA3D07, 0xD4ED79, 0x66, 'Boss', None, 'Shadow Temple'), + 'Volvagia': (0xCA3D93, 0xD10135, 0x67, 'Boss', None, 'Fire Temple'), + 'Morpha': (0xCA3E1F, 0xD5A3A9, 0x68, 'Boss', None, 'Water Temple'), + 'Twinrova': (0xCA3EB3, 0xD39FF1, 0x69, 'Boss', None, 'Spirit Temple'), + 'Bongo Bongo': (0xCA3F43, 0xD13E19, 0x6A, 'Boss', None, 'Shadow Temple'), + 'Ganon': (None, None, None, 'Boss', None, 'Ganon\'s Castle'), + # note that the scene for skulltulas is not the actual scene the token appears in + # rather, it is the index of the grouping used when storing skulltula collection + # for example, zora river, zora's domain, and zora fountain are all a single 'scene' for skulltulas + 'GS Deku Tree Basement Back Room': (None, None, 0x01, 'GS Token', 0x00, 'Deku Tree'), + 'GS Deku Tree Basement Gate': (None, None, 0x02, 'GS Token', 0x00, 'Deku Tree'), + 'GS Deku Tree Basement Vines': (None, None, 0x04, 'GS Token', 0x00, 'Deku Tree'), + 'GS Deku Tree Compass Room': (None, None, 0x08, 'GS Token', 0x00, 'Deku Tree'), + + 'GS Dodongo\'s Cavern Vines Above Stairs': (None, None, 0x01, 'GS Token', 0x01, 'Dodongo\'s Cavern'), + 'GS Dodongo\'s Cavern Scarecrow': (None, None, 0x02, 'GS Token', 0x01, 'Dodongo\'s Cavern'), + 'GS Dodongo\'s Cavern Alcove Above Stairs': (None, None, 0x04, 'GS Token', 0x01, 'Dodongo\'s Cavern'), + 'GS Dodongo\'s Cavern Back Room': (None, None, 0x08, 'GS Token', 0x01, 'Dodongo\'s Cavern'), + 'GS Dodongo\'s Cavern East Side Room': (None, None, 0x10, 'GS Token', 0x01, 'Dodongo\'s Cavern'), + + 'GS Jabu Jabu Lobby Basement Lower': (None, None, 0x01, 'GS Token', 0x02, 'Jabu Jabu\'s Belly'), + 'GS Jabu Jabu Lobby Basement Upper': (None, None, 0x02, 'GS Token', 0x02, 'Jabu Jabu\'s Belly'), + 'GS Jabu Jabu Near Boss': (None, None, 0x04, 'GS Token', 0x02, 'Jabu Jabu\'s Belly'), + 'GS Jabu Jabu Water Switch Room': (None, None, 0x08, 'GS Token', 0x02, 'Jabu Jabu\'s Belly'), + + 'GS Forest Temple Outdoor East': (None, None, 0x01, 'GS Token', 0x03, 'Forest Temple'), + 'GS Forest Temple First Room': (None, None, 0x02, 'GS Token', 0x03, 'Forest Temple'), + 'GS Forest Temple Outdoor West': (None, None, 0x04, 'GS Token', 0x03, 'Forest Temple'), + 'GS Forest Temple Lobby': (None, None, 0x08, 'GS Token', 0x03, 'Forest Temple'), + 'GS Forest Temple Basement': (None, None, 0x10, 'GS Token', 0x03, 'Forest Temple'), + + 'GS Fire Temple Song of Time Room': (None, None, 0x01, 'GS Token', 0x04, 'Fire Temple'), + 'GS Fire Temple Basement': (None, None, 0x02, 'GS Token', 0x04, 'Fire Temple'), + 'GS Fire Temple Unmarked Bomb Wall': (None, None, 0x04, 'GS Token', 0x04, 'Fire Temple'), + 'GS Fire Temple East Tower Top': (None, None, 0x08, 'GS Token', 0x04, 'Fire Temple'), + 'GS Fire Temple East Tower Climb': (None, None, 0x10, 'GS Token', 0x04, 'Fire Temple'), + + 'GS Water Temple South Basement': (None, None, 0x01, 'GS Token', 0x05, 'Water Temple'), + 'GS Water Temple Falling Platform Room': (None, None, 0x02, 'GS Token', 0x05, 'Water Temple'), + 'GS Water Temple Central Room': (None, None, 0x04, 'GS Token', 0x05, 'Water Temple'), + 'GS Water Temple Near Boss Key Chest': (None, None, 0x08, 'GS Token', 0x05, 'Water Temple'), + 'GS Water Temple Serpent River': (None, None, 0x10, 'GS Token', 0x05, 'Water Temple'), + + 'GS Spirit Temple Hall to West Iron Knuckle': (None, None, 0x01, 'GS Token', 0x06, 'Spirit Temple'), + 'GS Spirit Temple Boulder Room': (None, None, 0x02, 'GS Token', 0x06, 'Spirit Temple'), + 'GS Spirit Temple Lobby': (None, None, 0x04, 'GS Token', 0x06, 'Spirit Temple'), + 'GS Spirit Temple Bomb for Light Room': (None, None, 0x08, 'GS Token', 0x06, 'Spirit Temple'), + 'GS Spirit Temple Metal Fence': (None, None, 0x10, 'GS Token', 0x06, 'Spirit Temple'), + + 'GS Shadow Temple Single Giant Pot': (None, None, 0x01, 'GS Token', 0x07, 'Shadow Temple'), + 'GS Shadow Temple Crusher Room': (None, None, 0x02, 'GS Token', 0x07, 'Shadow Temple'), + 'GS Shadow Temple Tripple Giant Pot': (None, None, 0x04, 'GS Token', 0x07, 'Shadow Temple'), + 'GS Shadow Temple Like Like Room': (None, None, 0x08, 'GS Token', 0x07, 'Shadow Temple'), + 'GS Shadow Temple Near Ship': (None, None, 0x10, 'GS Token', 0x07, 'Shadow Temple'), + + 'GS Well Like Like Cage': (None, None, 0x01, 'GS Token', 0x08, 'Bottom of the Well'), + 'GS Well East Inner Room': (None, None, 0x02, 'GS Token', 0x08, 'Bottom of the Well'), + 'GS Well West Inner Room': (None, None, 0x04, 'GS Token', 0x08, 'Bottom of the Well'), + + 'GS Ice Cavern Push Block Room': (None, None, 0x01, 'GS Token', 0x09, 'Ice Cavern'), + 'GS Ice Cavern Spinning Scythe Room': (None, None, 0x02, 'GS Token', 0x09, 'Ice Cavern'), + 'GS Ice Cavern Heart Piece Room': (None, None, 0x04, 'GS Token', 0x09, 'Ice Cavern'), + + 'GS Hyrule Field Near Gerudo Valley': (None, None, 0x01, 'GS Token', 0x0A, 'Hyrule Field'), + 'GS Hyrule Field near Kakariko': (None, None, 0x02, 'GS Token', 0x0A, 'Hyrule Field'), + + 'GS Lon Lon Ranch Back Wall': (None, None, 0x01, 'GS Token', 0x0B, 'Lon Lon Ranch'), + 'GS Lon Lon Ranch Rain Shed': (None, None, 0x02, 'GS Token', 0x0B, 'Lon Lon Ranch'), + 'GS Lon Lon Ranch House Window': (None, None, 0x04, 'GS Token', 0x0B, 'Lon Lon Ranch'), + 'GS Lon Lon Ranch Tree': (None, None, 0x08, 'GS Token', 0x0B, 'Lon Lon Ranch'), + + 'GS Kokiri Bean Patch': (None, None, 0x01, 'GS Token', 0x0C, 'Kokiri Forest'), + 'GS Kokiri Know It All House': (None, None, 0x02, 'GS Token', 0x0C, 'Kokiri Forest'), + 'GS Kokiri House of Twins': (None, None, 0x04, 'GS Token', 0x0C, 'Kokiri Forest'), + + 'GS Lost Woods Bean Patch Near Bridge': (None, None, 0x01, 'GS Token', 0x0D, 'the Lost Woods'), + 'GS Lost Woods Bean Patch Near Stage': (None, None, 0x02, 'GS Token', 0x0D, 'the Lost Woods'), + 'GS Lost Woods Above Stage': (None, None, 0x04, 'GS Token', 0x0D, 'the Lost Woods'), + 'GS Sacred Forest Meadow': (None, None, 0x08, 'GS Token', 0x0D, 'Sacred Forest Meadow'), + + 'GS Outside Ganon\'s Castle': (None, None, 0x01, 'GS Token', 0x0E, 'outside my castle'), + 'GS Hyrule Castle Grotto': (None, None, 0x02, 'GS Token', 0x0E, 'Hyrule Castle'), + 'GS Hyrule Castle Tree': (None, None, 0x04, 'GS Token', 0x0E, 'Hyrule Castle'), + 'GS Castle Market Guard House': (None, None, 0x08, 'GS Token', 0x0E, 'the market'), + + 'GS Death Mounter Bean Patch': (None, None, 0x01, 'GS Token', 0x0F, 'Death Mountain Crater'), + 'GS Mountain Trail Bean Patch': (None, None, 0x02, 'GS Token', 0x0F, 'Death Mountain Trail'), + 'GS Mountain Trail Bomb Alcove': (None, None, 0x04, 'GS Token', 0x0F, 'Death Mountain Trail'), + 'GS Mountain Trail Above Dodongo\'s Cavern': (None, None, 0x08, 'GS Token', 0x0F, 'Death Mountain Trail'), + 'GS Mountain Trail Path to Crater': (None, None, 0x10, 'GS Token', 0x0F, 'Death Mountain Trail'), + 'GS Goron City Center Platform': (None, None, 0x20, 'GS Token', 0x0F, 'Goron City'), + 'GS Goron City Boulder Maze': (None, None, 0x40, 'GS Token', 0x0F, 'Goron City'), + 'GS Death Mounter Crater Crate': (None, None, 0x80, 'GS Token', 0x0F, 'Death Mountain Crater'), + + 'GS Kakariko House Under Construction': (None, None, 0x08, 'GS Token', 0x10, 'Kakariko Village'), + 'GS Kakariko Skulltula House': (None, None, 0x10, 'GS Token', 0x10, 'Kakariko Village'), + 'GS Kakariko Guard\'s House': (None, None, 0x02, 'GS Token', 0x10, 'Kakariko Village'), + 'GS Kakariko Tree': (None, None, 0x20, 'GS Token', 0x10, 'Kakariko Village'), + 'GS Kakariko Watchtower': (None, None, 0x04, 'GS Token', 0x10, 'Kakariko Village'), + 'GS Kakariko Above Impa\'s House': (None, None, 0x40, 'GS Token', 0x10, 'Kakariko Village'), + 'GS Graveyard Wall': (None, None, 0x80, 'GS Token', 0x10, 'the Graveyard'), + 'GS Graveyard Bean Patch': (None, None, 0x01, 'GS Token', 0x10, 'the Graveyard'), + + 'GS Zora River Ladder': (None, None, 0x01, 'GS Token', 0x11, 'Zora River'), + 'GS Zora River Tree': (None, None, 0x02, 'GS Token', 0x11, 'Zora River'), + 'GS Zora\'s Fountain Above the Log': (None, None, 0x04, 'GS Token', 0x11, 'Zora\'s Fountain'), + 'GS Zora River Above Bridge': (None, None, 0x08, 'GS Token', 0x11, 'Zora River'), + 'GS Zora River Near Raised Grottos': (None, None, 0x10, 'GS Token', 0x11, 'Zora River'), + 'GS Zora\'s Fountain Hidden Cave': (None, None, 0x20, 'GS Token', 0x11, 'Zora\'s Fountain'), + 'GS Zora\'s Domain Frozen Waterfall': (None, None, 0x40, 'GS Token', 0x11, 'Zora\'s Domain'), + 'GS Zora\'s Fountain Tree': (None, None, 0x80, 'GS Token', 0x11, 'Zora\'s Fountain'), + + 'GS Lake Hylia Bean Patch': (None, None, 0x01, 'GS Token', 0x12, 'Lake Hylia'), + 'GS Lake Hylia Small Island': (None, None, 0x02, 'GS Token', 0x12, 'Lake Hylia'), + 'GS Lake Hylia Lab Wall': (None, None, 0x04, 'GS Token', 0x12, 'Lake Hylia'), + 'GS Lab Underwater Crate': (None, None, 0x08, 'GS Token', 0x12, 'Lake Hylia'), + 'GS Lake Hylia Giant Tree': (None, None, 0x10, 'GS Token', 0x12, 'Lake Hylia'), + + 'GS Gerudo Valley Bean Patch': (None, None, 0x01, 'GS Token', 0x13, 'Gerudo Valley'), + 'GS Gerudo Valley Small Bridge': (None, None, 0x02, 'GS Token', 0x13, 'Gerudo Valley'), + 'GS Gerudo Valley Pillar': (None, None, 0x04, 'GS Token', 0x13, 'Gerudo Valley'), + 'GS Gerudo Valley Behind Tent': (None, None, 0x08, 'GS Token', 0x13, 'Gerudo Valley'), + + 'GS Gerudo Fortress Archery Range': (None, None, 0x01, 'GS Token', 0x14, 'Gerudo Fortress'), + 'GS Gerudo Fortress Top Floor': (None, None, 0x02, 'GS Token', 0x14, 'Gerudo Fortress'), + + 'GS Desert Colossus Bean Patch': (None, None, 0x01, 'GS Token', 0x15, 'Desert Colossus'), + 'GS Wasteland Ruins': (None, None, 0x02, 'GS Token', 0x15, 'Haunted Wasteland'), + 'GS Desert Colossus Hill': (None, None, 0x04, 'GS Token', 0x15, 'Desert Colossus'), + 'GS Desert Colossus Tree': (None, None, 0x08, 'GS Token', 0x15, 'Desert Colossus'), +} From 654e35f26475c5c2a050a53602291b413de34f9b Mon Sep 17 00:00:00 2001 From: mzxrules Date: Fri, 10 Aug 2018 23:25:46 -0400 Subject: [PATCH 261/755] Formatting to try and make these files more readable on GitHub --- Dungeons.py | 99 +++- Regions.py | 1410 ++++++++++++++++++++++++++++++++------------------- 2 files changed, 976 insertions(+), 533 deletions(-) diff --git a/Dungeons.py b/Dungeons.py index e1b6194f7..4e1caf51c 100644 --- a/Dungeons.py +++ b/Dungeons.py @@ -11,18 +11,93 @@ def make_dungeon(name, dungeon_regions, boss_key, small_keys, dungeon_items): world.get_region(region).dungeon = dungeon return dungeon - DT = make_dungeon('Deku Tree', ['Deku Tree Lobby', 'Deku Tree Slingshot Room', 'Deku Tree Boss Room'], None, [], ItemFactory(['Map (Deku Tree)', 'Compass (Deku Tree)'])) - DC = make_dungeon('Dodongos Cavern', ['Dodongos Cavern Beginning', 'Dodongos Cavern Lobby', 'Dodongos Cavern Climb', 'Dodongos Cavern Far Bridge', 'Dodongos Cavern Boss Area'], None, [], ItemFactory(['Map (Dodongos Cavern)', 'Compass (Dodongos Cavern)'])) - JB = make_dungeon('Jabu Jabus Belly', ['Jabu Jabus Belly Beginning', 'Jabu Jabus Belly Main', 'Jabu Jabus Belly Depths', 'Jabu Jabus Belly Boss Area'], None, [], ItemFactory(['Map (Jabu Jabus Belly)', 'Compass (Jabu Jabus Belly)'])) - FoT = make_dungeon('Forest Temple', ['Forest Temple Lobby', 'Forest Temple NW Outdoors', 'Forest Temple NE Outdoors', 'Forest Temple Falling Room', 'Forest Temple Block Push Room', 'Forest Temple Straightened Hall', 'Forest Temple Outside Upper Ledge', 'Forest Temple Bow Region', 'Forest Temple Boss Region'], ItemFactory('Boss Key (Forest Temple)'), ItemFactory(['Small Key (Forest Temple)'] * 5), ItemFactory(['Map (Forest Temple)', 'Compass (Forest Temple)'])) - BW = make_dungeon('Bottom of the Well', ['Bottom of the Well'], None, ItemFactory(['Small Key (Bottom of the Well)'] * 3), ItemFactory(['Map (Bottom of the Well)', 'Compass (Bottom of the Well)'])) - FiT = make_dungeon('Fire Temple', ['Fire Temple Lower', 'Fire Temple Middle', 'Fire Temple Upper'], ItemFactory('Boss Key (Fire Temple)'), ItemFactory(['Small Key (Fire Temple)'] * 8), ItemFactory(['Map (Fire Temple)', 'Compass (Fire Temple)'])) - IC = make_dungeon('Ice Cavern', ['Ice Cavern'], None, [], ItemFactory(['Map (Ice Cavern)', 'Compass (Ice Cavern)'])) - WT = make_dungeon('Water Temple', ['Water Temple Lobby', 'Water Temple Middle Water Level', 'Water Temple Dark Link Region'], ItemFactory('Boss Key (Water Temple)'), ItemFactory(['Small Key (Water Temple)'] * 6), ItemFactory(['Map (Water Temple)', 'Compass (Water Temple)'])) - ShT = make_dungeon('Shadow Temple', ['Shadow Temple Beginning', 'Shadow Temple First Beamos', 'Shadow Temple Huge Pit', 'Shadow Temple Wind Tunnel', 'Shadow Temple Beyond Boat'], ItemFactory('Boss Key (Shadow Temple)'), ItemFactory(['Small Key (Shadow Temple)'] * 5), ItemFactory(['Map (Shadow Temple)', 'Compass (Shadow Temple)'])) - GTG = make_dungeon('Gerudo Training Grounds', ['Gerudo Training Grounds Lobby', 'Gerudo Training Grounds Central Maze', 'Gerudo Training Grounds Central Maze Right', 'Gerudo Training Grounds Lava Room', 'Gerudo Training Grounds Hammer Room', 'Gerudo Training Grounds Eye Statue Lower', 'Gerudo Training Grounds Eye Statue Upper', 'Gerudo Training Grounds Heavy Block Room'], None, ItemFactory(['Small Key (Gerudo Training Grounds)'] * 9), []) - SpT = make_dungeon('Spirit Temple', ['Spirit Temple Lobby', 'Child Spirit Temple', 'Early Adult Spirit Temple', 'Spirit Temple Central Chamber', 'Spirit Temple Beyond Central Locked Door', 'Spirit Temple Beyond Final Locked Door'], ItemFactory('Boss Key (Spirit Temple)'), ItemFactory(['Small Key (Spirit Temple)'] * 5), ItemFactory(['Map (Spirit Temple)', 'Compass (Spirit Temple)'])) - GC = make_dungeon('Ganons Castle', ['Ganons Castle Lobby', 'Ganons Castle Forest Trial', 'Ganons Castle Fire Trial', 'Ganons Castle Water Trial', 'Ganons Castle Shadow Trial', 'Ganons Castle Spirit Trial', 'Ganons Castle Light Trial', 'Ganons Castle Tower'], ItemFactory('Boss Key (Ganons Castle)'), ItemFactory(['Small Key (Ganons Castle)'] * 2), []) + DT = make_dungeon( + 'Deku Tree', + ['Deku Tree Lobby', 'Deku Tree Slingshot Room', 'Deku Tree Boss Room'], + None, [], + ItemFactory(['Map (Deku Tree)', 'Compass (Deku Tree)'])) + + DC = make_dungeon( + 'Dodongos Cavern', + ['Dodongos Cavern Beginning', 'Dodongos Cavern Lobby', 'Dodongos Cavern Climb', 'Dodongos Cavern Far Bridge', + 'Dodongos Cavern Boss Area'], + None, [], + ItemFactory(['Map (Dodongos Cavern)', 'Compass (Dodongos Cavern)'])) + + JB = make_dungeon( + 'Jabu Jabus Belly', + ['Jabu Jabus Belly Beginning', 'Jabu Jabus Belly Main', 'Jabu Jabus Belly Depths', 'Jabu Jabus Belly Boss Area'], + None, [], + ItemFactory(['Map (Jabu Jabus Belly)', 'Compass (Jabu Jabus Belly)'])) + + FoT = make_dungeon( + 'Forest Temple', + ['Forest Temple Lobby', 'Forest Temple NW Outdoors', 'Forest Temple NE Outdoors', 'Forest Temple Falling Room', + 'Forest Temple Block Push Room', 'Forest Temple Straightened Hall', 'Forest Temple Outside Upper Ledge', + 'Forest Temple Bow Region', 'Forest Temple Boss Region'], + ItemFactory('Boss Key (Forest Temple)'), + ItemFactory(['Small Key (Forest Temple)'] * 5), + ItemFactory(['Map (Forest Temple)', 'Compass (Forest Temple)'])) + + BW = make_dungeon( + 'Bottom of the Well', + ['Bottom of the Well'], + None, + ItemFactory(['Small Key (Bottom of the Well)'] * 3), + ItemFactory(['Map (Bottom of the Well)', 'Compass (Bottom of the Well)'])) + FiT = make_dungeon( + 'Fire Temple', + ['Fire Temple Lower', 'Fire Temple Middle', 'Fire Temple Upper'], + ItemFactory('Boss Key (Fire Temple)'), + ItemFactory(['Small Key (Fire Temple)'] * 8), + ItemFactory(['Map (Fire Temple)', 'Compass (Fire Temple)'])) + + IC = make_dungeon( + 'Ice Cavern', + ['Ice Cavern'], + None, [], + ItemFactory(['Map (Ice Cavern)', 'Compass (Ice Cavern)'])) + + WT = make_dungeon( + 'Water Temple', + ['Water Temple Lobby', 'Water Temple Middle Water Level', 'Water Temple Dark Link Region'], + ItemFactory('Boss Key (Water Temple)'), + ItemFactory(['Small Key (Water Temple)'] * 6), + ItemFactory(['Map (Water Temple)', 'Compass (Water Temple)'])) + + ShT = make_dungeon( + 'Shadow Temple', + ['Shadow Temple Beginning', 'Shadow Temple First Beamos', 'Shadow Temple Huge Pit', 'Shadow Temple Wind Tunnel', + 'Shadow Temple Beyond Boat'], + ItemFactory('Boss Key (Shadow Temple)'), + ItemFactory(['Small Key (Shadow Temple)'] * 5), + ItemFactory(['Map (Shadow Temple)', 'Compass (Shadow Temple)'])) + + GTG = make_dungeon( + 'Gerudo Training Grounds', + ['Gerudo Training Grounds Lobby', 'Gerudo Training Grounds Central Maze', + 'Gerudo Training Grounds Central Maze Right', 'Gerudo Training Grounds Lava Room', + 'Gerudo Training Grounds Hammer Room', 'Gerudo Training Grounds Eye Statue Lower', + 'Gerudo Training Grounds Eye Statue Upper', 'Gerudo Training Grounds Heavy Block Room'], + None, + ItemFactory(['Small Key (Gerudo Training Grounds)'] * 9), + []) + + SpT = make_dungeon( + 'Spirit Temple', + ['Spirit Temple Lobby', 'Child Spirit Temple', 'Early Adult Spirit Temple', 'Spirit Temple Central Chamber', + 'Spirit Temple Beyond Central Locked Door', 'Spirit Temple Beyond Final Locked Door'], + ItemFactory('Boss Key (Spirit Temple)'), + ItemFactory(['Small Key (Spirit Temple)'] * 5), + ItemFactory(['Map (Spirit Temple)', 'Compass (Spirit Temple)'])) + + GC = make_dungeon( + 'Ganons Castle', + ['Ganons Castle Lobby', 'Ganons Castle Forest Trial', 'Ganons Castle Fire Trial', 'Ganons Castle Water Trial', + 'Ganons Castle Shadow Trial', 'Ganons Castle Spirit Trial', 'Ganons Castle Light Trial', 'Ganons Castle Tower'], + ItemFactory('Boss Key (Ganons Castle)'), + ItemFactory(['Small Key (Ganons Castle)'] * 2), + []) world.dungeons = [DT, DC, JB, FoT, BW, FiT, IC, WT, ShT, GTG, SpT, GC] \ No newline at end of file diff --git a/Regions.py b/Regions.py index f5c50f247..f6bb2e022 100644 --- a/Regions.py +++ b/Regions.py @@ -5,73 +5,240 @@ def create_regions(world): world.regions = [ - create_ow_region('Kokiri Forest', ['Kokiri Sword Chest', 'GS Kokiri Know It All House', 'GS Kokiri Bean Patch', 'GS Kokiri House of Twins'], ['Links House', 'Mido House', 'Saria House', 'House of Twins', 'Know It All House', 'Kokiri Shop', 'Deku Tree', 'Lost Woods', 'Lost Woods Bridge', 'Kokiri Forest Storms Grotto']), - create_interior_region('Links House', ['Links Pocket'], ['Links House Exit', 'Child Forest Warp Pad', 'Adult Forest Warp Pad', 'Temple Warp Pad', 'Crater Warp Pad', 'Lake Warp Pad', 'Graveyard Warp Pad', 'Colossus Warp Pad']), - create_interior_region('Mido House', ['Mido Chest Top Left', 'Mido Chest Top Right', 'Mido Chest Bottom Left', 'Mido Chest Bottom Right'], ['Mido House Exit']), - create_interior_region('Saria House', None, ['Saria House Exit']), - create_interior_region('House of Twins', None, ['House of Twins Exit']), - create_interior_region('Know It All House', None, ['Know It All House Exit']), - create_interior_region('Kokiri Shop', None, ['Kokiri Shop Exit']), - create_dungeon_region('Deku Tree Lobby', ['Deku Tree Lobby Chest', 'Deku Tree Compass Chest', 'Deku Tree Compass Room Side Chest', 'Deku Tree Basement Chest', 'GS Deku Tree Compass Room', 'GS Deku Tree Basement Vines', 'GS Deku Tree Basement Gate'], ['Deku Tree Exit', 'Deku Tree Slingshot Passage', 'Deku Tree Basement Path']), - create_dungeon_region('Deku Tree Slingshot Room', ['Deku Tree Slingshot Chest', 'Deku Tree Slingshot Room Side Chest'], ['Deku Tree Slingshot Exit']), - create_dungeon_region('Deku Tree Boss Room', ['GS Deku Tree Basement Back Room', 'Queen Gohma Heart', 'Queen Gohma'], ['Deku Tree Basement Vines']), - create_ow_region('Lost Woods', ['Skull Kid', 'Ocarina Memory Game', 'Target in Woods', 'Deku Salesman Woods', 'GS Lost Woods Bean Patch Near Bridge', 'GS Lost Woods Bean Patch Near Stage'], ['Lost Woods Front', 'Meadow Entrance', 'Woods to Goron City', 'Lost Woods Dive Warp', 'Adult Meadow Access', 'Lost Woods Generic Grotto', 'Deku Theater', 'Lost Woods Sales Grotto']), + create_ow_region( + 'Kokiri Forest', + ['Kokiri Sword Chest', 'GS Kokiri Know It All House', 'GS Kokiri Bean Patch', 'GS Kokiri House of Twins'], + ['Links House', 'Mido House', 'Saria House', 'House of Twins', 'Know It All House', 'Kokiri Shop', 'Deku Tree', + 'Lost Woods', 'Lost Woods Bridge', 'Kokiri Forest Storms Grotto']), + create_interior_region( + 'Links House', + ['Links Pocket'], + ['Links House Exit', 'Child Forest Warp Pad', 'Adult Forest Warp Pad', 'Temple Warp Pad', 'Crater Warp Pad', + 'Lake Warp Pad', 'Graveyard Warp Pad', 'Colossus Warp Pad']), + create_interior_region( + 'Mido House', + ['Mido Chest Top Left', 'Mido Chest Top Right', 'Mido Chest Bottom Left', 'Mido Chest Bottom Right'], + ['Mido House Exit']), + create_interior_region( + 'Saria House', + None, + ['Saria House Exit']), + create_interior_region( + 'House of Twins', + None, + ['House of Twins Exit']), + create_interior_region( + 'Know It All House', + None, + ['Know It All House Exit']), + create_interior_region( + 'Kokiri Shop', + None, + ['Kokiri Shop Exit']), + create_dungeon_region( + 'Deku Tree Lobby', + ['Deku Tree Lobby Chest', 'Deku Tree Compass Chest', 'Deku Tree Compass Room Side Chest', + 'Deku Tree Basement Chest', 'GS Deku Tree Compass Room', 'GS Deku Tree Basement Vines', + 'GS Deku Tree Basement Gate'], + ['Deku Tree Exit', 'Deku Tree Slingshot Passage', 'Deku Tree Basement Path']), + create_dungeon_region( + 'Deku Tree Slingshot Room', + ['Deku Tree Slingshot Chest', 'Deku Tree Slingshot Room Side Chest'], + ['Deku Tree Slingshot Exit']), + create_dungeon_region( + 'Deku Tree Boss Room', + ['GS Deku Tree Basement Back Room', 'Queen Gohma Heart', 'Queen Gohma'], + ['Deku Tree Basement Vines']), + create_ow_region( + 'Lost Woods', + ['Skull Kid', 'Ocarina Memory Game', 'Target in Woods', 'Deku Salesman Woods', + 'GS Lost Woods Bean Patch Near Bridge', 'GS Lost Woods Bean Patch Near Stage'], + ['Lost Woods Front', 'Meadow Entrance', 'Woods to Goron City', 'Lost Woods Dive Warp', 'Adult Meadow Access', + 'Lost Woods Generic Grotto', 'Deku Theater', 'Lost Woods Sales Grotto']), create_ow_region('Sacred Forest Meadow Entryway', None, ['Meadow Exit', 'Meadow Gate', 'Front of Meadow Grotto']), create_ow_region('Sacred Forest Meadow', ['Song from Saria'], ['Meadow Gate Exit', 'Meadow Fairy Grotto']), create_ow_region('Lost Woods Bridge', ['Gift from Saria'], ['Kokiri Forest Entrance', 'Forest Exit']), - create_ow_region('Hyrule Field', ['Ocarina of Time', 'Song from Ocarina of Time'], ['Field to Forest', 'Field to Lake', 'Field to Valley', 'Field to Castle Town', 'Field to Kakariko', 'Field to Zora River', 'Lon Lon Rance Entrance', - 'Remote Southern Grotto', 'Field Near Lake Outside Fence Grotto', 'Field Near Lake Inside Fence Grotto', 'Field Valley Grotto', 'Field West Castle Town Grotto', - 'Field Far West Castle Town Grotto', 'Field Kakariko Grotto', 'Field North Lon Lon Grotto']), - create_ow_region('Lake Hylia', ['Underwater Bottle', 'Lake Hylia Sun', 'Lake Hylia Freestanding PoH', 'GS Lake Hylia Bean Patch', 'GS Lake Hylia Lab Wall', 'GS Lake Hylia Small Island', 'GS Lake Hylia Giant Tree'], ['Lake Exit', 'Lake Hylia Dive Warp', 'Lake Hylia Lab', 'Fishing Hole', 'Water Temple Entrance', 'Lake Hylia Grotto']), + create_ow_region('Hyrule Field', + ['Ocarina of Time', 'Song from Ocarina of Time'], + ['Field to Forest', 'Field to Lake', 'Field to Valley', 'Field to Castle Town', 'Field to Kakariko', + 'Field to Zora River', 'Lon Lon Rance Entrance', 'Remote Southern Grotto', 'Field Near Lake Outside Fence Grotto', + 'Field Near Lake Inside Fence Grotto', 'Field Valley Grotto', 'Field West Castle Town Grotto', + 'Field Far West Castle Town Grotto', 'Field Kakariko Grotto', 'Field North Lon Lon Grotto']), + create_ow_region( + 'Lake Hylia', + ['Underwater Bottle', 'Lake Hylia Sun', 'Lake Hylia Freestanding PoH', 'GS Lake Hylia Bean Patch', + 'GS Lake Hylia Lab Wall', 'GS Lake Hylia Small Island', 'GS Lake Hylia Giant Tree'], + ['Lake Exit', 'Lake Hylia Dive Warp', 'Lake Hylia Lab', 'Fishing Hole', 'Water Temple Entrance', 'Lake Hylia Grotto']), create_interior_region('Lake Hylia Lab', ['Diving in the Lab', 'GS Lab Underwater Crate']), create_interior_region('Fishing Hole', ['Child Fishing', 'Adult Fishing']), - create_dungeon_region('Water Temple Lobby', ['Water Temple Map Chest', 'Water Temple Compass Chest', 'Water Temple Torches Chest', 'Water Temple Dragon Chest', 'Water Temple Central Bow Target Chest', 'Water Temple Boss Key Chest', 'Morpha Heart', 'Morpha', 'GS Water Temple South Basement', 'GS Water Temple Near Boss Key Chest'], ['Water Temple Exit', 'Water Temple Central Pillar', 'Water Temple Upper Locked Door']), - create_dungeon_region('Water Temple Middle Water Level', ['Water Temple Central Pillar Chest', 'Water Temple Cracked Wall Chest', 'GS Water Temple Central Room']), - create_dungeon_region('Water Temple Dark Link Region', ['Water Temple Dark Link Chest', 'Water Temple River Chest', 'GS Water Temple Serpent River', 'GS Water Temple Falling Platform Room']), - create_ow_region('Gerudo Valley', ['Gerudo Valley Waterfall Freestanding PoH', 'Gerudo Valley Crate Freestanding PoH', 'GS Gerudo Valley Small Bridge', 'GS Gerudo Valley Bean Patch'], ['Valley Exit', 'Valley River', 'Bridge Crossing']), - create_ow_region('Gerudo Valley Far Side', ['Gerudo Valley Hammer Rocks Chest', 'GS Gerudo Valley Behind Tent', 'GS Gerudo Valley Pillar'], ['Fortress Entrance']), - create_ow_region('Gerudo Fortress', ['Gerudo Fortress Rooftop Chest', 'Horseback Archery 1000 Points', 'Horseback Archery 1500 Points', 'Gerudo Fortress North F1 Carpenter', 'Gerudo Fortress North F2 Carpenter', 'Gerudo Fortress South F1 Carpenter', 'Gerudo Fortress South F2 Carpenter', 'Gerudo Fortress Carpenter Rescue', 'Gerudo Fortress Membership Card', 'GS Gerudo Fortress Archery Range', 'GS Gerudo Fortress Top Floor'], ['Haunted Wasteland Entrance', 'Gerudo Training Grounds Entrance']), - create_ow_region('Haunted Wasteland', ['Haunted Wasteland Structure Chest', 'GS Wasteland Ruins'], ['Haunted Wasteland Crossing']), - create_ow_region('Desert Colossus', ['Colossus Freestanding PoH', 'Sheik at Colossus', 'GS Desert Colossus Bean Patch', 'GS Desert Colossus Tree', 'GS Desert Colossus Hill'], ['Colossus Fairy', 'Spirit Temple Entrance']), - create_interior_region('Colossus Fairy', ['Desert Colossus Fairy Reward']), - create_dungeon_region('Gerudo Training Grounds Lobby', ['Gerudo Training Grounds Lobby Left Chest', 'Gerudo Training Grounds Lobby Right Chest', 'Gerudo Training Grounds Stalfos Chest', 'Gerudo Training Grounds Beamos Chest'], ['Gerudo Training Grounds Exit', 'Gerudo Training Ground Left Silver Rupees', 'Gerudo Training Ground Beamos', 'Gerudo Training Ground Central Door']), - create_dungeon_region('Gerudo Training Grounds Central Maze', ['Gerudo Training Grounds Hidden Ceiling Chest', 'Gerudo Training Grounds Maze Path First Chest', 'Gerudo Training Grounds Maze Path Second Chest', 'Gerudo Training Grounds Maze Path Third Chest', 'Gerudo Training Grounds Maze Path Final Chest'], ['Gerudo Training Grounds Right Locked Doors']), - create_dungeon_region('Gerudo Training Grounds Central Maze Right', ['Gerudo Training Grounds Maze Right Central Chest', 'Gerudo Training Grounds Maze Right Side Chest', 'Gerudo Training Grounds Freestanding Key'], ['Gerudo Training Grounds Maze Exit']), - create_dungeon_region('Gerudo Training Grounds Lava Room', ['Gerudo Training Grounds Underwater Silver Rupee Chest'], ['Gerudo Training Grounds Maze Ledge', 'Gerudo Training Grounds Right Hookshot Target']), - create_dungeon_region('Gerudo Training Grounds Hammer Room', ['Gerudo Training Grounds Hammer Room Clear Chest', 'Gerudo Training Grounds Hammer Room Switch Chest'], ['Gerudo Training Grounds Hammer Target', 'Gerudo Training Grounds Hammer Room Clear']), - create_dungeon_region('Gerudo Training Grounds Eye Statue Lower', ['Gerudo Training Grounds Eye Statue Chest'], ['Gerudo Training Grounds Eye Statue Exit']), - create_dungeon_region('Gerudo Training Grounds Eye Statue Upper', ['Gerudo Training Grounds Near Scarecrow Chest'], ['Gerudo Training Grounds Eye Statue Drop']), - create_dungeon_region('Gerudo Training Grounds Heavy Block Room', ['Gerudo Training Grounds Before Heavy Block Chest', 'Gerudo Training Grounds Heavy Block First Chest', 'Gerudo Training Grounds Heavy Block Second Chest', 'Gerudo Training Grounds Heavy Block Third Chest', 'Gerudo Training Grounds Heavy Block Fourth Chest'], ['Gerudo Training Grounds Hidden Hookshot Target']), - create_dungeon_region('Spirit Temple Lobby', None, ['Spirit Temple Exit', 'Spirit Temple Crawl Passage', 'Spirit Temple Silver Block']), - create_dungeon_region('Child Spirit Temple', ['Spirit Temple Child Left Chest', 'Spirit Temple Child Right Chest', 'GS Spirit Temple Metal Fence'], ['Child Spirit Temple Passthrough']), - create_dungeon_region('Early Adult Spirit Temple', ['Spirit Temple Compass Chest', 'Spirit Temple Early Adult Right Chest', 'Spirit Temple First Mirror Right Chest', 'Spirit Temple First Mirror Left Chest', 'GS Spirit Temple Boulder Room'], ['Adult Spirit Temple Passthrough']), - create_dungeon_region('Spirit Temple Central Chamber', ['Spirit Temple Map Chest', 'Spirit Temple Child Climb East Chest', 'Spirit Temple Child Climb North Chest', 'Spirit Temple Sun Block Room Chest', 'Spirit Temple Statue Hand Chest', 'Spirit Temple NE Main Room Chest', 'GS Spirit Temple Bomb for Light Room', 'GS Spirit Temple Hall to West Iron Knuckle', 'GS Spirit Temple Lobby'], ['Spirit Temple to Hands', 'Spirit Temple Central Locked Door']), - create_dungeon_region('Spirit Temple Outdoor Hands', ['Silver Gauntlets Chest', 'Mirror Shield Chest']), - create_dungeon_region('Spirit Temple Beyond Central Locked Door', ['Spirit Temple Near Four Armos Chest', 'Spirit Temple Hallway Left Invisible Chest', 'Spirit Temple Hallway Right Invisible Chest'], ['Spirit Temple Final Locked Door']), - create_dungeon_region('Spirit Temple Beyond Final Locked Door', ['Spirit Temple Boss Key Chest', 'Spirit Temple Topmost Chest', 'Twinrova Heart', 'Twinrova']), - create_ow_region('Castle Town', None, ['Castle Town Exit', 'Temple of Time', 'Hyrule Castle Grounds', 'Castle Town Rupee Room', 'Castle Town Bazaar', 'Castle Town Mask Shop', 'Castle Town Shooting Gallery', 'Ganons Castle Grounds', - 'Castle Town Bombchu Bowling', 'Castle Town Potion Shop', 'Castle Town Treasure Chest Game', 'Castle Town Bombchu Shop', 'Castle Town Dog Lady', 'Castle Town Man in Green House']), - create_interior_region('Temple of Time', ['Zelda'], ['Temple of Time Exit', 'Door of Time']), - create_interior_region('Beyond Door of Time', ['Master Sword Pedestal', 'Sheik at Temple'], ['Emerge as Adult']), - create_ow_region('Hyrule Castle Grounds', ['Malon Egg', 'GS Hyrule Castle Tree'], ['Hyrule Castle Grounds Exit', 'Hyrule Castle Garden', 'Hyrule Castle Fairy', 'Castle Storms Grotto']), - create_ow_region('Hyrule Castle Garden', ['Zeldas Letter', 'Impa at Castle'], ['Hyrule Castle Garden Exit']), - create_interior_region('Hyrule Castle Fairy', ['Hyrule Castle Fairy Reward']), - create_ow_region('Ganons Castle Grounds', ['GS Outside Ganon\'s Castle'], ['Ganons Castle Grounds Exit', 'Ganons Castle Fairy', 'Rainbow Bridge']), + create_dungeon_region( + 'Water Temple Lobby', + ['Water Temple Map Chest', 'Water Temple Compass Chest', 'Water Temple Torches Chest', 'Water Temple Dragon Chest', + 'Water Temple Central Bow Target Chest', 'Water Temple Boss Key Chest', 'Morpha Heart', 'Morpha', + 'GS Water Temple South Basement', 'GS Water Temple Near Boss Key Chest'], + ['Water Temple Exit', 'Water Temple Central Pillar', 'Water Temple Upper Locked Door']), + create_dungeon_region( + 'Water Temple Middle Water Level', + ['Water Temple Central Pillar Chest', 'Water Temple Cracked Wall Chest', 'GS Water Temple Central Room']), + create_dungeon_region( + 'Water Temple Dark Link Region', + ['Water Temple Dark Link Chest', 'Water Temple River Chest', 'GS Water Temple Serpent River', + 'GS Water Temple Falling Platform Room']), + create_ow_region( + 'Gerudo Valley', + ['Gerudo Valley Waterfall Freestanding PoH', 'Gerudo Valley Crate Freestanding PoH', + 'GS Gerudo Valley Small Bridge', 'GS Gerudo Valley Bean Patch'], + ['Valley Exit', 'Valley River', 'Bridge Crossing']), + create_ow_region( + 'Gerudo Valley Far Side', + ['Gerudo Valley Hammer Rocks Chest', 'GS Gerudo Valley Behind Tent', 'GS Gerudo Valley Pillar'], + ['Fortress Entrance']), + create_ow_region( + 'Gerudo Fortress', + ['Gerudo Fortress Rooftop Chest', 'Horseback Archery 1000 Points', 'Horseback Archery 1500 Points', + 'Gerudo Fortress North F1 Carpenter', 'Gerudo Fortress North F2 Carpenter', + 'Gerudo Fortress South F1 Carpenter', 'Gerudo Fortress South F2 Carpenter', 'Gerudo Fortress Carpenter Rescue', + 'Gerudo Fortress Membership Card', 'GS Gerudo Fortress Archery Range', 'GS Gerudo Fortress Top Floor'], + ['Haunted Wasteland Entrance', 'Gerudo Training Grounds Entrance']), + create_ow_region( + 'Haunted Wasteland', + ['Haunted Wasteland Structure Chest', 'GS Wasteland Ruins'], + ['Haunted Wasteland Crossing']), + create_ow_region( + 'Desert Colossus', + ['Colossus Freestanding PoH', 'Sheik at Colossus', 'GS Desert Colossus Bean Patch', 'GS Desert Colossus Tree', + 'GS Desert Colossus Hill'], + ['Colossus Fairy', 'Spirit Temple Entrance']), + create_interior_region( + 'Colossus Fairy', + ['Desert Colossus Fairy Reward']), + create_dungeon_region( + 'Gerudo Training Grounds Lobby', + ['Gerudo Training Grounds Lobby Left Chest', 'Gerudo Training Grounds Lobby Right Chest', + 'Gerudo Training Grounds Stalfos Chest', 'Gerudo Training Grounds Beamos Chest'], + ['Gerudo Training Grounds Exit', 'Gerudo Training Ground Left Silver Rupees', 'Gerudo Training Ground Beamos', + 'Gerudo Training Ground Central Door']), + create_dungeon_region( + 'Gerudo Training Grounds Central Maze', + ['Gerudo Training Grounds Hidden Ceiling Chest', 'Gerudo Training Grounds Maze Path First Chest', + 'Gerudo Training Grounds Maze Path Second Chest', 'Gerudo Training Grounds Maze Path Third Chest', + 'Gerudo Training Grounds Maze Path Final Chest'], + ['Gerudo Training Grounds Right Locked Doors']), + create_dungeon_region( + 'Gerudo Training Grounds Central Maze Right', + ['Gerudo Training Grounds Maze Right Central Chest', 'Gerudo Training Grounds Maze Right Side Chest', + 'Gerudo Training Grounds Freestanding Key'], + ['Gerudo Training Grounds Maze Exit']), + create_dungeon_region( + 'Gerudo Training Grounds Lava Room', + ['Gerudo Training Grounds Underwater Silver Rupee Chest'], + ['Gerudo Training Grounds Maze Ledge', 'Gerudo Training Grounds Right Hookshot Target']), + create_dungeon_region( + 'Gerudo Training Grounds Hammer Room', + ['Gerudo Training Grounds Hammer Room Clear Chest', 'Gerudo Training Grounds Hammer Room Switch Chest'], + ['Gerudo Training Grounds Hammer Target', 'Gerudo Training Grounds Hammer Room Clear']), + create_dungeon_region( + 'Gerudo Training Grounds Eye Statue Lower', + ['Gerudo Training Grounds Eye Statue Chest'], + ['Gerudo Training Grounds Eye Statue Exit']), + create_dungeon_region( + 'Gerudo Training Grounds Eye Statue Upper', + ['Gerudo Training Grounds Near Scarecrow Chest'], + ['Gerudo Training Grounds Eye Statue Drop']), + create_dungeon_region( + 'Gerudo Training Grounds Heavy Block Room', + ['Gerudo Training Grounds Before Heavy Block Chest', 'Gerudo Training Grounds Heavy Block First Chest', + 'Gerudo Training Grounds Heavy Block Second Chest', 'Gerudo Training Grounds Heavy Block Third Chest', + 'Gerudo Training Grounds Heavy Block Fourth Chest'], + ['Gerudo Training Grounds Hidden Hookshot Target']), + create_dungeon_region( + 'Spirit Temple Lobby', + None, + ['Spirit Temple Exit', 'Spirit Temple Crawl Passage', 'Spirit Temple Silver Block']), + create_dungeon_region( + 'Child Spirit Temple', + ['Spirit Temple Child Left Chest', 'Spirit Temple Child Right Chest', 'GS Spirit Temple Metal Fence'], + ['Child Spirit Temple Passthrough']), + create_dungeon_region( + 'Early Adult Spirit Temple', + ['Spirit Temple Compass Chest', 'Spirit Temple Early Adult Right Chest', + 'Spirit Temple First Mirror Right Chest', 'Spirit Temple First Mirror Left Chest', + 'GS Spirit Temple Boulder Room'], + ['Adult Spirit Temple Passthrough']), + create_dungeon_region( + 'Spirit Temple Central Chamber', + ['Spirit Temple Map Chest', 'Spirit Temple Child Climb East Chest', 'Spirit Temple Child Climb North Chest', + 'Spirit Temple Sun Block Room Chest', 'Spirit Temple Statue Hand Chest', 'Spirit Temple NE Main Room Chest', + 'GS Spirit Temple Bomb for Light Room', 'GS Spirit Temple Hall to West Iron Knuckle', 'GS Spirit Temple Lobby'], + ['Spirit Temple to Hands', 'Spirit Temple Central Locked Door']), + create_dungeon_region( + 'Spirit Temple Outdoor Hands', + ['Silver Gauntlets Chest', 'Mirror Shield Chest']), + create_dungeon_region( + 'Spirit Temple Beyond Central Locked Door', + ['Spirit Temple Near Four Armos Chest', 'Spirit Temple Hallway Left Invisible Chest', + 'Spirit Temple Hallway Right Invisible Chest'], + ['Spirit Temple Final Locked Door']), + create_dungeon_region( + 'Spirit Temple Beyond Final Locked Door', + ['Spirit Temple Boss Key Chest', 'Spirit Temple Topmost Chest', 'Twinrova Heart', 'Twinrova']), + create_ow_region( + 'Castle Town', + None, + ['Castle Town Exit', 'Temple of Time', 'Hyrule Castle Grounds', 'Castle Town Rupee Room', 'Castle Town Bazaar', + 'Castle Town Mask Shop', 'Castle Town Shooting Gallery', 'Ganons Castle Grounds', + 'Castle Town Bombchu Bowling', 'Castle Town Potion Shop', 'Castle Town Treasure Chest Game', + 'Castle Town Bombchu Shop', 'Castle Town Dog Lady', 'Castle Town Man in Green House']), + create_interior_region( + 'Temple of Time', + ['Zelda'], + ['Temple of Time Exit', 'Door of Time']), + create_interior_region( + 'Beyond Door of Time', + ['Master Sword Pedestal', 'Sheik at Temple'], + ['Emerge as Adult']), + create_ow_region( + 'Hyrule Castle Grounds', + ['Malon Egg', 'GS Hyrule Castle Tree'], + ['Hyrule Castle Grounds Exit', 'Hyrule Castle Garden', 'Hyrule Castle Fairy', 'Castle Storms Grotto']), + create_ow_region( + 'Hyrule Castle Garden', + ['Zeldas Letter', 'Impa at Castle'], + ['Hyrule Castle Garden Exit']), + create_interior_region( + 'Hyrule Castle Fairy', + ['Hyrule Castle Fairy Reward']), + create_ow_region( + 'Ganons Castle Grounds', + ['GS Outside Ganon\'s Castle'], + ['Ganons Castle Grounds Exit', 'Ganons Castle Fairy', 'Rainbow Bridge']), create_interior_region('Ganons Castle Fairy', ['Ganons Castle Fairy Reward']), create_interior_region('Castle Town Rupee Room', ['10 Big Poes', 'GS Castle Market Guard House']), create_interior_region('Castle Town Bazaar'), create_interior_region('Castle Town Mask Shop'), create_interior_region('Castle Town Shooting Gallery', ['Child Shooting Gallery']), - create_interior_region('Castle Town Bombchu Bowling', ['Bombchu Bowling Bomb Bag', 'Bombchu Bowling Piece of Heart']), + create_interior_region( + 'Castle Town Bombchu Bowling', + ['Bombchu Bowling Bomb Bag', 'Bombchu Bowling Piece of Heart']), create_interior_region('Castle Town Potion Shop'), create_interior_region('Castle Town Treasure Chest Game', ['Treasure Chest Game']), create_interior_region('Castle Town Bombchu Shop'), create_interior_region('Castle Town Dog Lady', ['Dog Lady']), create_interior_region('Castle Town Man in Green House'), - create_ow_region('Kakariko Village', ['Man on Roof', 'Anju as Adult', 'Anjus Chickens', 'Sheik in Kakariko', 'GS Kakariko House Under Construction', 'GS Kakariko Skulltula House', 'GS Kakariko Guard\'s House', 'GS Kakariko Tree', 'GS Kakariko Watchtower', 'GS Kakariko Above Impa\'s House'], ['Kakariko Exit', 'Carpenter Boss House', 'House of Skulltulla', 'Impas House', 'Impas House Back', 'Windmill', 'Kakariko Bazaar', 'Kakariko Shooting Gallery', 'Bottom of the Well', - 'Kakariko Potion Shop Front', 'Kakariko Potion Shop Back', 'Odd Medicine Building', 'Kakariko Bombable Grotto', 'Kakariko Back Grotto', 'Graveyard Entrance', 'Death Mountain Entrance']), + create_ow_region( + 'Kakariko Village', + ['Man on Roof', 'Anju as Adult', 'Anjus Chickens', 'Sheik in Kakariko', 'GS Kakariko House Under Construction', + 'GS Kakariko Skulltula House', 'GS Kakariko Guard\'s House', 'GS Kakariko Tree', 'GS Kakariko Watchtower', + 'GS Kakariko Above Impa\'s House'], + ['Kakariko Exit', 'Carpenter Boss House', 'House of Skulltulla', 'Impas House', 'Impas House Back', 'Windmill', + 'Kakariko Bazaar', 'Kakariko Shooting Gallery', 'Bottom of the Well', 'Kakariko Potion Shop Front', + 'Kakariko Potion Shop Back', 'Odd Medicine Building', 'Kakariko Bombable Grotto', 'Kakariko Back Grotto', + 'Graveyard Entrance', 'Death Mountain Entrance']), create_interior_region('Carpenter Boss House'), - create_interior_region('House of Skulltulla', ['10 Gold Skulltulla Reward', '20 Gold Skulltulla Reward', '30 Gold Skulltulla Reward', '40 Gold Skulltulla Reward', '50 Gold Skulltulla Reward']), + create_interior_region( + 'House of Skulltulla', + ['10 Gold Skulltulla Reward', '20 Gold Skulltulla Reward', '30 Gold Skulltulla Reward', + '40 Gold Skulltulla Reward', '50 Gold Skulltulla Reward']), create_interior_region('Impas House'), create_interior_region('Impas House Back', ['Impa House Freestanding PoH']), create_interior_region('Windmill', ['Windmill Freestanding PoH', 'Song at Windmill']), @@ -80,77 +247,275 @@ def create_regions(world): create_interior_region('Kakariko Potion Shop Front'), create_interior_region('Kakariko Potion Shop Back'), create_interior_region('Odd Medicine Building'), - create_dungeon_region('Bottom of the Well', ['Bottom of the Well Front Left Hidden Wall', 'Bottom of the Well Front Center Bombable', 'Bottom of the Well Right Bottom Hidden Wall', 'Bottom of the Well Center Large Chest', 'Bottom of the Well Center Small Chest', 'Bottom of the Well Back Left Bombable', 'Bottom of the Well Freestanding Key', - 'Bottom of the Well Defeat Boss', 'Bottom of the Well Invisible Chest', 'Bottom of the Well Underwater Front Chest', 'Bottom of the Well Underwater Left Chest', 'Bottom of the Well Basement Chest', 'Bottom of the Well Locked Pits', 'Bottom of the Well Behind Right Grate', 'GS Well West Inner Room', 'GS Well East Inner Room', 'GS Well Like Like Cage'], ['Bottom of the Well Exit']), - create_ow_region('Graveyard', ['Graveyard Freestanding PoH', 'Gravedigging Tour', 'GS Graveyard Wall', 'GS Graveyard Bean Patch'], ['Shield Grave', 'Composer Grave', 'Heart Piece Grave', 'Dampes Grave', 'Dampes House', 'Graveyard Exit']), + create_dungeon_region( + 'Bottom of the Well', + ['Bottom of the Well Front Left Hidden Wall', 'Bottom of the Well Front Center Bombable', + 'Bottom of the Well Right Bottom Hidden Wall', 'Bottom of the Well Center Large Chest', + 'Bottom of the Well Center Small Chest', 'Bottom of the Well Back Left Bombable', + 'Bottom of the Well Freestanding Key', 'Bottom of the Well Defeat Boss', 'Bottom of the Well Invisible Chest', + 'Bottom of the Well Underwater Front Chest', 'Bottom of the Well Underwater Left Chest', + 'Bottom of the Well Basement Chest', 'Bottom of the Well Locked Pits', 'Bottom of the Well Behind Right Grate', + 'GS Well West Inner Room', 'GS Well East Inner Room', 'GS Well Like Like Cage'], + ['Bottom of the Well Exit']), + create_ow_region( + 'Graveyard', + ['Graveyard Freestanding PoH', 'Gravedigging Tour', 'GS Graveyard Wall', 'GS Graveyard Bean Patch'], + ['Shield Grave', 'Composer Grave', 'Heart Piece Grave', 'Dampes Grave', 'Dampes House', 'Graveyard Exit']), create_interior_region('Shield Grave', ['Shield Grave Chest']), create_interior_region('Heart Piece Grave', ['Heart Piece Grave Chest']), create_interior_region('Composer Grave', ['Composer Grave Chest', 'Song from Composer Grave']), create_interior_region('Dampes Grave', ['Hookshot Chest', 'Dampe Race Freestanding PoH']), create_interior_region('Dampes House'), create_ow_region('Shadow Temple Warp Region', None, ['Drop to Graveyard', 'Shadow Temple Entrance']), - create_dungeon_region('Shadow Temple Beginning', ['Shadow Temple Map Chest', 'Shadow Temple Hover Boots Chest'], ['Shadow Temple Exit', 'Shadow Temple First Pit']), - create_dungeon_region('Shadow Temple First Beamos', ['Shadow Temple Compass Chest', 'Shadow Temple Early Silver Rupee Chest'], ['Shadow Temple Bomb Wall']), - create_dungeon_region('Shadow Temple Huge Pit', ['Shadow Temple Invisible Blades Visible Chest', 'Shadow Temple Invisible Blades Invisible Chest', 'Shadow Temple Falling Spikes Lower Chest', 'Shadow Temple Falling Spikes Upper Chest', 'Shadow Temple Falling Spikes Switch Chest', 'Shadow Temple Invisible Spikes Chest', 'Shadow Temple Freestanding Key', 'GS Shadow Temple Like Like Room', 'GS Shadow Temple Crusher Room'], ['Shadow Temple Hookshot Target']), - create_dungeon_region('Shadow Temple Wind Tunnel', ['Shadow Temple Wind Hint Chest', 'Shadow Temple After Wind Enemy Chest', 'Shadow Temple After Wind Hidden Chest', 'GS Shadow Temple Single Giant Pot', 'GS Shadow Temple Near Ship'], ['Shadow Temple Boat']), - create_dungeon_region('Shadow Temple Beyond Boat', ['Shadow Temple Spike Walls Left Chest', 'Shadow Temple Boss Key Chest', 'Shadow Temple Hidden Floormaster Chest', 'Bongo Bongo Heart', 'Bongo Bongo', 'GS Shadow Temple Tripple Giant Pot']), - create_ow_region('Death Mountain', ['Death Mountain Bombable Chest', 'Biggoron', 'DM Trail Freestanding PoH', 'GS Mountain Trail Bean Patch', 'GS Mountain Trail Bomb Alcove', 'GS Mountain Trail Path to Crater', 'GS Mountain Trail Above Dodongo\'s Cavern'], ['Death Mountain Exit', 'Goron City Entrance', 'Mountain Crater Entrance', 'Mountain Summit Fairy', 'Dodongos Cavern Rocks', 'Mountain Bombable Grotto', 'Mountain Storms Grotto']), - create_ow_region('Dodongos Cavern Entryway', None, ['Dodongos Cavern', 'Mountain Access from Behind Rock']), - create_ow_region('Goron City', ['Goron City Leftmost Maze Chest', 'Goron City Left Maze Chest', 'Goron City Right Maze Chest', 'Goron City Pot Freestanding PoH', 'Rolling Goron as Child', 'Link the Goron', 'GS Goron City Boulder Maze', 'GS Goron City Center Platform'], ['Goron City Exit', 'Goron City Bomb Wall', 'Darunias Chamber', 'Crater Access']), - create_ow_region('Goron City Woods Warp', None, ['Goron City from Woods', 'Goron City to Woods']), + create_dungeon_region( + 'Shadow Temple Beginning', + ['Shadow Temple Map Chest', 'Shadow Temple Hover Boots Chest'], + ['Shadow Temple Exit', 'Shadow Temple First Pit']), + create_dungeon_region( + 'Shadow Temple First Beamos', + ['Shadow Temple Compass Chest', 'Shadow Temple Early Silver Rupee Chest'], + ['Shadow Temple Bomb Wall']), + create_dungeon_region( + 'Shadow Temple Huge Pit', + ['Shadow Temple Invisible Blades Visible Chest', 'Shadow Temple Invisible Blades Invisible Chest', + 'Shadow Temple Falling Spikes Lower Chest', 'Shadow Temple Falling Spikes Upper Chest', + 'Shadow Temple Falling Spikes Switch Chest', 'Shadow Temple Invisible Spikes Chest', + 'Shadow Temple Freestanding Key', 'GS Shadow Temple Like Like Room', 'GS Shadow Temple Crusher Room'], + ['Shadow Temple Hookshot Target']), + create_dungeon_region( + 'Shadow Temple Wind Tunnel', + ['Shadow Temple Wind Hint Chest', 'Shadow Temple After Wind Enemy Chest', + 'Shadow Temple After Wind Hidden Chest', 'GS Shadow Temple Single Giant Pot', 'GS Shadow Temple Near Ship'], + ['Shadow Temple Boat']), + create_dungeon_region( + 'Shadow Temple Beyond Boat', + ['Shadow Temple Spike Walls Left Chest', 'Shadow Temple Boss Key Chest', + 'Shadow Temple Hidden Floormaster Chest', 'Bongo Bongo Heart', 'Bongo Bongo', + 'GS Shadow Temple Tripple Giant Pot']), + create_ow_region( + 'Death Mountain', + ['Death Mountain Bombable Chest', 'Biggoron', 'DM Trail Freestanding PoH', 'GS Mountain Trail Bean Patch', + 'GS Mountain Trail Bomb Alcove', 'GS Mountain Trail Path to Crater', + 'GS Mountain Trail Above Dodongo\'s Cavern'], + ['Death Mountain Exit', 'Goron City Entrance', 'Mountain Crater Entrance', 'Mountain Summit Fairy', + 'Dodongos Cavern Rocks', 'Mountain Bombable Grotto', 'Mountain Storms Grotto']), + create_ow_region( + 'Dodongos Cavern Entryway', + None, + ['Dodongos Cavern', 'Mountain Access from Behind Rock']), + create_ow_region( + 'Goron City', + ['Goron City Leftmost Maze Chest', 'Goron City Left Maze Chest', 'Goron City Right Maze Chest', + 'Goron City Pot Freestanding PoH', 'Rolling Goron as Child', 'Link the Goron', 'GS Goron City Boulder Maze', + 'GS Goron City Center Platform'], + ['Goron City Exit', 'Goron City Bomb Wall', 'Darunias Chamber', 'Crater Access']), + create_ow_region( + 'Goron City Woods Warp', + None, + ['Goron City from Woods', 'Goron City to Woods']), create_ow_region('Darunias Chamber', ['Darunias Joy'], ['Darunias Chamber Exit']), - create_ow_region('Death Mountain Crater Upper', ['DM Crater Wall Freestanding PoH', 'GS Death Mounter Crater Crate'], ['Crater Exit', 'Crater Hover Boots', 'Crater Scarecrow', 'Top of Crater Grotto']), - create_ow_region('Death Mountain Crater Lower', None, ['Crater to City', 'Crater Fairy', 'Crater Bridge', 'Crater Ascent']), - create_ow_region('Death Mountain Crater Central', ['DM Crater Volcano Freestanding PoH', 'Sheik in Crater', 'GS Death Mounter Bean Patch'], ['Crater Bridge Reverse', 'Fire Temple Entrance']), - create_interior_region('Crater Fairy', ['Crater Fairy Reward']), + create_ow_region( + 'Death Mountain Crater Upper', + ['DM Crater Wall Freestanding PoH', 'GS Death Mounter Crater Crate'], + ['Crater Exit', 'Crater Hover Boots', 'Crater Scarecrow', 'Top of Crater Grotto']), + create_ow_region( + 'Death Mountain Crater Lower', + None, + ['Crater to City', 'Crater Fairy', 'Crater Bridge', 'Crater Ascent']), + create_ow_region( + 'Death Mountain Crater Central', + ['DM Crater Volcano Freestanding PoH', 'Sheik in Crater', 'GS Death Mounter Bean Patch'], + ['Crater Bridge Reverse', 'Fire Temple Entrance']), + create_interior_region( + 'Crater Fairy', + ['Crater Fairy Reward']), create_interior_region('Mountain Summit Fairy', ['Mountain Summit Fairy Reward']), - create_dungeon_region('Dodongos Cavern Beginning', None, ['Dodongos Cavern Exit', 'Dodongos Cavern Lobby']), - create_dungeon_region('Dodongos Cavern Lobby', ['Dodongos Cavern Map Chest', 'Dodongos Cavern Compass Chest', 'GS Dodongo\'s Cavern East Side Room', 'GS Dodongo\'s Cavern Scarecrow'], ['Dodongos Cavern Retreat', 'Dodongos Cavern Left Door']), - create_dungeon_region('Dodongos Cavern Climb', ['Dodongos Cavern Bomb Flower Platform', 'GS Dodongo\'s Cavern Vines Above Stairs'], ['Dodongos Cavern Bridge Fall', 'Dodongos Cavern Slingshot Target']), - create_dungeon_region('Dodongos Cavern Far Bridge', ['Dodongos Cavern Bomb Bag Chest', 'Dodongos Cavern End of Bridge Chest', 'GS Dodongo\'s Cavern Alcove Above Stairs'], ['Dodongos Cavern Bomb Drop', 'Dodongos Cavern Bridge Fall 2']), - create_dungeon_region('Dodongos Cavern Boss Area', ['Chest Above King Dodongo', 'King Dodongo Heart', 'King Dodongo', 'GS Dodongo\'s Cavern Back Room'], ['Dodongos Cavern Exit Skull']), - create_ow_region('Zora River Front', ['GS Zora River Tree'], ['Zora River Rocks', 'Zora River Adult', 'Zora River Exit']), - create_ow_region('Zora River Child', ['Magic Bean Salesman', 'Frog Ocarina Game', 'Frogs in the Rain', 'GS Zora River Ladder'], ['Zora River Child to Shared', 'Zora River Waterfall']), - create_ow_region('Zora River Adult', ['GS Zora River Near Raised Grottos', 'GS Zora River Above Bridge'], ['Zoras Domain Adult Access', 'Zora River Adult to Shared']), - create_ow_region('Zora River Shared', ['Zora River Lower Freestanding PoH', 'Zora River Upper Freestanding PoH'], ['Zora River Downstream', 'Zora River Plateau Open Grotto', 'Zora River Plateau Bombable Grotto', 'Zora River Dive Warp']), - create_ow_region('Zoras Domain', ['Diving Minigame', 'Zoras Domain Torch Run', 'King Zora Moves'], ['Zoras Domain Exit', 'Zoras Domain Dive Warp', 'Behind King Zora', 'Zora Shop']), - create_ow_region('Zoras Fountain', ['GS Zora\'s Fountain Tree', 'GS Zora\'s Fountain Above the Log'], ['Zoras Fountain Exit', 'Jabu Jabus Belly', 'Zoras Fountain Fairy']), - create_ow_region('Zoras Domain Frozen', ['King Zora Thawed', 'GS Zora\'s Domain Frozen Waterfall'], ['Zoras Fountain Adult Access']), - create_ow_region('Outside Ice Cavern', ['Zoras Fountain Iceberg Freestanding PoH', 'Zoras Fountain Bottom Freestanding PoH', 'GS Zora\'s Fountain Hidden Cave'], ['Ice Cavern Entrance']), - create_dungeon_region('Ice Cavern', ['Ice Cavern Map Chest', 'Ice Cavern Compass Chest', 'Ice Cavern Iron Boots Chest', 'Ice Cavern Freestanding PoH', 'Sheik in Ice Cavern', 'GS Ice Cavern Spinning Scythe Room', 'GS Ice Cavern Heart Piece Room', 'GS Ice Cavern Push Block Room'], ['Ice Cavern Exit']), + create_dungeon_region( + 'Dodongos Cavern Beginning', + None, + ['Dodongos Cavern Exit', 'Dodongos Cavern Lobby']), + create_dungeon_region( + 'Dodongos Cavern Lobby', + ['Dodongos Cavern Map Chest', 'Dodongos Cavern Compass Chest', 'GS Dodongo\'s Cavern East Side Room', + 'GS Dodongo\'s Cavern Scarecrow'], + ['Dodongos Cavern Retreat', 'Dodongos Cavern Left Door']), + create_dungeon_region( + 'Dodongos Cavern Climb', + ['Dodongos Cavern Bomb Flower Platform', 'GS Dodongo\'s Cavern Vines Above Stairs'], + ['Dodongos Cavern Bridge Fall', 'Dodongos Cavern Slingshot Target']), + create_dungeon_region( + 'Dodongos Cavern Far Bridge', + ['Dodongos Cavern Bomb Bag Chest', 'Dodongos Cavern End of Bridge Chest', + 'GS Dodongo\'s Cavern Alcove Above Stairs'], + ['Dodongos Cavern Bomb Drop', 'Dodongos Cavern Bridge Fall 2']), + create_dungeon_region( + 'Dodongos Cavern Boss Area', + ['Chest Above King Dodongo', 'King Dodongo Heart', 'King Dodongo', 'GS Dodongo\'s Cavern Back Room'], + ['Dodongos Cavern Exit Skull']), + create_ow_region( + 'Zora River Front', + ['GS Zora River Tree'], + ['Zora River Rocks', 'Zora River Adult', 'Zora River Exit']), + create_ow_region( + 'Zora River Child', + ['Magic Bean Salesman', 'Frog Ocarina Game', 'Frogs in the Rain', 'GS Zora River Ladder'], + ['Zora River Child to Shared', 'Zora River Waterfall']), + create_ow_region( + 'Zora River Adult', + ['GS Zora River Near Raised Grottos', 'GS Zora River Above Bridge'], + ['Zoras Domain Adult Access', 'Zora River Adult to Shared']), + create_ow_region( + 'Zora River Shared', + ['Zora River Lower Freestanding PoH', 'Zora River Upper Freestanding PoH'], + ['Zora River Downstream', 'Zora River Plateau Open Grotto', 'Zora River Plateau Bombable Grotto', + 'Zora River Dive Warp']), + create_ow_region( + 'Zoras Domain', + ['Diving Minigame', 'Zoras Domain Torch Run', 'King Zora Moves'], + ['Zoras Domain Exit', 'Zoras Domain Dive Warp', 'Behind King Zora', 'Zora Shop']), + create_ow_region( + 'Zoras Fountain', + ['GS Zora\'s Fountain Tree', 'GS Zora\'s Fountain Above the Log'], + ['Zoras Fountain Exit', 'Jabu Jabus Belly', 'Zoras Fountain Fairy']), + create_ow_region( + 'Zoras Domain Frozen', + ['King Zora Thawed', 'GS Zora\'s Domain Frozen Waterfall'], + ['Zoras Fountain Adult Access']), + create_ow_region( + 'Outside Ice Cavern', + ['Zoras Fountain Iceberg Freestanding PoH', 'Zoras Fountain Bottom Freestanding PoH', + 'GS Zora\'s Fountain Hidden Cave'], + ['Ice Cavern Entrance']), + create_dungeon_region( + 'Ice Cavern', + ['Ice Cavern Map Chest', 'Ice Cavern Compass Chest', 'Ice Cavern Iron Boots Chest', + 'Ice Cavern Freestanding PoH', 'Sheik in Ice Cavern', 'GS Ice Cavern Spinning Scythe Room', + 'GS Ice Cavern Heart Piece Room', 'GS Ice Cavern Push Block Room'], + ['Ice Cavern Exit']), create_interior_region('Zora Shop'), create_interior_region('Zoras Fountain Fairy', ['Zoras Fountain Fairy Reward']), - create_dungeon_region('Jabu Jabus Belly Beginning', None, ['Jabu Jabus Belly Exit', 'Jabu Jabus Belly Ceiling Switch']), - create_dungeon_region('Jabu Jabus Belly Main', ['Boomerang Chest', 'GS Jabu Jabu Water Switch Room'], ['Jabu Jabus Belly Retreat', 'Jabu Jabus Belly Tentacles']), - create_dungeon_region('Jabu Jabus Belly Depths', ['Jabu Jabus Belly Map Chest', 'Jabu Jabus Belly Compass Chest', 'GS Jabu Jabu Lobby Basement Lower', 'GS Jabu Jabu Lobby Basement Upper'], ['Jabu Jabus Belly Elevator', 'Jabu Jabus Belly Octopus']), - create_dungeon_region('Jabu Jabus Belly Boss Area', ['Barinade Heart', 'Barinade', 'GS Jabu Jabu Near Boss'], ['Jabu Jabus Belly Final Backtrack']), - create_ow_region('Lon Lon Ranch', ['Epona', 'Song from Malon', 'GS Lon Lon Ranch Tree', 'GS Lon Lon Ranch Rain Shed', 'GS Lon Lon Ranch House Window', 'GS Lon Lon Ranch Back Wall'], ['Lon Lon Exit', 'Talon House', 'Ingo Barn', 'Lon Lon Corner Tower', 'Lon Lon Grotto']), + create_dungeon_region( + 'Jabu Jabus Belly Beginning', + None, + ['Jabu Jabus Belly Exit', 'Jabu Jabus Belly Ceiling Switch']), + create_dungeon_region( + 'Jabu Jabus Belly Main', + ['Boomerang Chest', 'GS Jabu Jabu Water Switch Room'], + ['Jabu Jabus Belly Retreat', 'Jabu Jabus Belly Tentacles']), + create_dungeon_region( + 'Jabu Jabus Belly Depths', + ['Jabu Jabus Belly Map Chest', 'Jabu Jabus Belly Compass Chest', 'GS Jabu Jabu Lobby Basement Lower', + 'GS Jabu Jabu Lobby Basement Upper'], + ['Jabu Jabus Belly Elevator', 'Jabu Jabus Belly Octopus']), + create_dungeon_region( + 'Jabu Jabus Belly Boss Area', + ['Barinade Heart', 'Barinade', 'GS Jabu Jabu Near Boss'], + ['Jabu Jabus Belly Final Backtrack']), + create_ow_region( + 'Lon Lon Ranch', + ['Epona', 'Song from Malon', 'GS Lon Lon Ranch Tree', 'GS Lon Lon Ranch Rain Shed', + 'GS Lon Lon Ranch House Window', 'GS Lon Lon Ranch Back Wall'], + ['Lon Lon Exit', 'Talon House', 'Ingo Barn', 'Lon Lon Corner Tower', 'Lon Lon Grotto']), create_interior_region('Talon House', ['Talons Chickens']), create_interior_region('Ingo Barn'), create_interior_region('Lon Lon Corner Tower', ['Lon Lon Tower Freestanding PoH']), - create_interior_region('Forest Temple Entry Area', ['Sheik Forest Song', 'GS Lost Woods Above Stage', 'GS Sacred Forest Meadow'], ['Adult Meadow Exit', 'Forest Temple Entrance']), - create_dungeon_region('Forest Temple Lobby', ['Forest Temple First Chest', 'Forest Temple Chest Behind Lobby', 'GS Forest Temple First Room', 'GS Forest Temple Lobby'], ['Forest Temple Exit', 'Forest Temple Song of Time Block', 'Forest Temple Lobby Eyeball Switch', 'Forest Temple Lobby Locked Door']), - create_dungeon_region('Forest Temple NW Outdoors', ['Forest Temple Well Chest', 'Forest Temple Map Chest', 'GS Forest Temple Outdoor West'], ['Forest Temple Through Map Room']), - create_dungeon_region('Forest Temple NE Outdoors', ['Forest Temple Outside Hookshot Chest', 'GS Forest Temple Outdoor East'], ['Forest Temple Well Connection', 'Forest Temple Outside to Lobby', 'Forest Temple Scarecrows Song']), - create_dungeon_region('Forest Temple Falling Room', ['Forest Temple Falling Room Chest'], ['Forest Temple Falling Room Exit', 'Forest Temple Elevator']), - create_dungeon_region('Forest Temple Block Push Room', ['Forest Temple Block Push Chest'], ['Forest Temple Outside Backdoor', 'Forest Temple Twisted Hall', 'Forest Temple Straightened Hall']), - create_dungeon_region('Forest Temple Straightened Hall', ['Forest Temple Boss Key Chest'], ['Forest Temple Boss Key Chest Drop']), - create_dungeon_region('Forest Temple Outside Upper Ledge', ['Forest Temple Floormaster Chest'], ['Forest Temple Outside Ledge Drop']), - create_dungeon_region('Forest Temple Bow Region', ['Forest Temple Bow Chest', 'Forest Temple Red Poe Chest', 'Forest Temple Blue Poe Chest'], ['Forest Temple Drop to Falling Room']), - create_dungeon_region('Forest Temple Boss Region', ['Forest Temple Near Boss Chest', 'Phantom Ganon Heart', 'Phantom Ganon', 'GS Forest Temple Basement']), - create_dungeon_region('Fire Temple Lower', ['Fire Temple Chest Near Boss', 'Fire Temple Fire Dancer Chest', 'Fire Temple Boss Key Chest', 'Fire Temple Big Lava Room Bombable Chest', 'Fire Temple Big Lava Room Open Chest', 'Volvagia Heart', 'Volvagia', 'GS Fire Temple Song of Time Room', 'GS Fire Temple Basement'], ['Fire Temple Exit', 'Fire Temple Early Climb']), - create_dungeon_region('Fire Temple Middle', ['Fire Temple Boulder Maze Lower Chest', 'Fire Temple Boulder Maze Upper Chest', 'Fire Temple Boulder Maze Side Room', 'Fire Temple Boulder Maze Bombable Pit', 'Fire Temple Scarecrow Chest', 'Fire Temple Map Chest', 'Fire Temple Compass Chest', 'GS Fire Temple Unmarked Bomb Wall', 'GS Fire Temple East Tower Climb', 'GS Fire Temple East Tower Top'], ['Fire Temple Fire Maze Escape']), - create_dungeon_region('Fire Temple Upper', ['Fire Temple Highest Goron Chest', 'Fire Temple Megaton Hammer Chest']), - create_dungeon_region('Ganons Castle Lobby', None, ['Ganons Castle Exit', 'Ganons Castle Forest Trial', 'Ganons Castle Fire Trial', 'Ganons Castle Water Trial', 'Ganons Castle Shadow Trial', 'Ganons Castle Spirit Trial', 'Ganons Castle Light Trial', 'Ganons Castle Tower']), - create_dungeon_region('Ganons Castle Forest Trial', ['Ganons Castle Forest Trial Chest', 'Ganons Castle Forest Trial Clear']), - create_dungeon_region('Ganons Castle Fire Trial', ['Ganons Castle Fire Trial Clear']), - create_dungeon_region('Ganons Castle Water Trial', ['Ganons Castle Water Trial Left Chest', 'Ganons Castle Water Trial Right Chest', 'Ganons Castle Water Trial Clear']), - create_dungeon_region('Ganons Castle Shadow Trial', ['Ganons Castle Shadow Trial First Chest', 'Ganons Castle Shadow Trial Second Chest', 'Ganons Castle Shadow Trial Clear']), - create_dungeon_region('Ganons Castle Spirit Trial', ['Ganons Castle Spirit Trial First Chest', 'Ganons Castle Spirit Trial Second Chest', 'Ganons Castle Spirit Trial Clear']), - create_dungeon_region('Ganons Castle Light Trial', ['Ganons Castle Light Trial First Left Chest', 'Ganons Castle Light Trial Second Left Chest', 'Ganons Castle Light Trial Third Left Chest', 'Ganons Castle Light Trial First Right Chest', 'Ganons Castle Light Trial Second Right Chest', 'Ganons Castle Light Trial Third Right Chest', 'Ganons Castle Light Trail Invisible Enemies Chest', 'Ganons Castle Light Trial Lullaby Chest', 'Ganons Castle Light Trial Clear']), - create_dungeon_region('Ganons Castle Tower', ['Ganons Tower Boss Key Chest', 'Ganon']), - create_grotto_region('Kokiri Forest Storms Grotto', ['Kokiri Forest Storms Grotto Chest']), - create_grotto_region('Lost Woods Generic Grotto', ['Lost Woods Generic Grotto Chest']), + create_interior_region( + 'Forest Temple Entry Area', + ['Sheik Forest Song', 'GS Lost Woods Above Stage', 'GS Sacred Forest Meadow'], + ['Adult Meadow Exit', 'Forest Temple Entrance']), + create_dungeon_region( + 'Forest Temple Lobby', + ['Forest Temple First Chest', 'Forest Temple Chest Behind Lobby', 'GS Forest Temple First Room', + 'GS Forest Temple Lobby'], + ['Forest Temple Exit', 'Forest Temple Song of Time Block', 'Forest Temple Lobby Eyeball Switch', + 'Forest Temple Lobby Locked Door']), + create_dungeon_region( + 'Forest Temple NW Outdoors', + ['Forest Temple Well Chest', 'Forest Temple Map Chest', 'GS Forest Temple Outdoor West'], + ['Forest Temple Through Map Room']), + create_dungeon_region( + 'Forest Temple NE Outdoors', + ['Forest Temple Outside Hookshot Chest', 'GS Forest Temple Outdoor East'], + ['Forest Temple Well Connection', 'Forest Temple Outside to Lobby', 'Forest Temple Scarecrows Song']), + create_dungeon_region( + 'Forest Temple Falling Room', + ['Forest Temple Falling Room Chest'], + ['Forest Temple Falling Room Exit', 'Forest Temple Elevator']), + create_dungeon_region( + 'Forest Temple Block Push Room', + ['Forest Temple Block Push Chest'], + ['Forest Temple Outside Backdoor', 'Forest Temple Twisted Hall', 'Forest Temple Straightened Hall']), + create_dungeon_region( + 'Forest Temple Straightened Hall', + ['Forest Temple Boss Key Chest'], + ['Forest Temple Boss Key Chest Drop']), + create_dungeon_region( + 'Forest Temple Outside Upper Ledge', + ['Forest Temple Floormaster Chest'], + ['Forest Temple Outside Ledge Drop']), + create_dungeon_region( + 'Forest Temple Bow Region', + ['Forest Temple Bow Chest', 'Forest Temple Red Poe Chest', 'Forest Temple Blue Poe Chest'], + ['Forest Temple Drop to Falling Room']), + create_dungeon_region( + 'Forest Temple Boss Region', + ['Forest Temple Near Boss Chest', 'Phantom Ganon Heart', 'Phantom Ganon', 'GS Forest Temple Basement']), + create_dungeon_region( + 'Fire Temple Lower', + ['Fire Temple Chest Near Boss', 'Fire Temple Fire Dancer Chest', 'Fire Temple Boss Key Chest', + 'Fire Temple Big Lava Room Bombable Chest', 'Fire Temple Big Lava Room Open Chest', 'Volvagia Heart', + 'Volvagia', 'GS Fire Temple Song of Time Room', 'GS Fire Temple Basement'], + ['Fire Temple Exit', 'Fire Temple Early Climb']), + create_dungeon_region( + 'Fire Temple Middle', + ['Fire Temple Boulder Maze Lower Chest', 'Fire Temple Boulder Maze Upper Chest', + 'Fire Temple Boulder Maze Side Room', 'Fire Temple Boulder Maze Bombable Pit', 'Fire Temple Scarecrow Chest', + 'Fire Temple Map Chest', 'Fire Temple Compass Chest', 'GS Fire Temple Unmarked Bomb Wall', + 'GS Fire Temple East Tower Climb', 'GS Fire Temple East Tower Top'], + ['Fire Temple Fire Maze Escape']), + create_dungeon_region( + 'Fire Temple Upper', + ['Fire Temple Highest Goron Chest', 'Fire Temple Megaton Hammer Chest']), + create_dungeon_region( + 'Ganons Castle Lobby', + None, + ['Ganons Castle Exit', 'Ganons Castle Forest Trial', 'Ganons Castle Fire Trial', 'Ganons Castle Water Trial', + 'Ganons Castle Shadow Trial', 'Ganons Castle Spirit Trial', 'Ganons Castle Light Trial', + 'Ganons Castle Tower']), + create_dungeon_region( + 'Ganons Castle Forest Trial', + ['Ganons Castle Forest Trial Chest', 'Ganons Castle Forest Trial Clear']), + create_dungeon_region( + 'Ganons Castle Fire Trial', + ['Ganons Castle Fire Trial Clear']), + create_dungeon_region( + 'Ganons Castle Water Trial', + ['Ganons Castle Water Trial Left Chest', 'Ganons Castle Water Trial Right Chest', + 'Ganons Castle Water Trial Clear']), + create_dungeon_region( + 'Ganons Castle Shadow Trial', + ['Ganons Castle Shadow Trial First Chest', 'Ganons Castle Shadow Trial Second Chest', + 'Ganons Castle Shadow Trial Clear']), + create_dungeon_region( + 'Ganons Castle Spirit Trial', + ['Ganons Castle Spirit Trial First Chest', 'Ganons Castle Spirit Trial Second Chest', + 'Ganons Castle Spirit Trial Clear']), + create_dungeon_region( + 'Ganons Castle Light Trial', + ['Ganons Castle Light Trial First Left Chest', 'Ganons Castle Light Trial Second Left Chest', + 'Ganons Castle Light Trial Third Left Chest', 'Ganons Castle Light Trial First Right Chest', + 'Ganons Castle Light Trial Second Right Chest', 'Ganons Castle Light Trial Third Right Chest', + 'Ganons Castle Light Trail Invisible Enemies Chest', 'Ganons Castle Light Trial Lullaby Chest', + 'Ganons Castle Light Trial Clear']), + create_dungeon_region( + 'Ganons Castle Tower', + ['Ganons Tower Boss Key Chest', 'Ganon']), + create_grotto_region( + 'Kokiri Forest Storms Grotto', + ['Kokiri Forest Storms Grotto Chest']), + create_grotto_region( + 'Lost Woods Generic Grotto', + ['Lost Woods Generic Grotto Chest']), create_grotto_region('Deku Theater', ['Deku Theater Skull Mask', 'Deku Theater Mask of Truth']), create_grotto_region('Lost Woods Sales Grotto', ['Deku Salesman Lost Woods Grotto']), create_grotto_region('Meadow Fairy Grotto'), @@ -203,415 +568,418 @@ def _create_region(name, type, locations=None, exits=None): ret.locations.append(Location(location, address, address2, default, type, scene, hint, ret)) return ret -location_table = {'Kokiri Sword Chest': (0x20A6142, None, 0x04E0, 'Chest', 0x55, 'Kokiri Forest'), - 'Mido Chest Top Left': (0x2F7B08A, None, 0x59A0, 'Chest', 0x28, 'Kokiri Forest'), - 'Mido Chest Top Right': (0x2F7B09A, None, 0x59A1, 'Chest', 0x28, 'Kokiri Forest'), - 'Mido Chest Bottom Left': (0x2F7B0AA, None, 0x5982, 'Chest', 0x28, 'Kokiri Forest'), - 'Mido Chest Bottom Right': (0x2F7B0BA, None, 0x5903, 'Chest', 0x28, 'Kokiri Forest'), - 'Shield Grave Chest': (0x328B096, None, 0x5540, 'Chest', 0x40, 'the Graveyard'), - 'Heart Piece Grave Chest': (0x2D0A056, None, 0xA7C0, 'Chest', 0x3F, 'the Graveyard'), - 'Composer Grave Chest': (0x332D0EA, None, 0x8020, 'Chest', 0x41, 'the Graveyard'), - 'Death Mountain Bombable Chest': (0x223C3CA, 0x223C7B2, 0x5AA1, 'Chest', 0x60, 'Death Mountain Trail'), - 'Goron City Leftmost Maze Chest': (0x227C23A, 0x227C70A, 0x5AC0, 'Chest', 0x62, 'Goron City'), - 'Goron City Left Maze Chest': (0x227C24A, 0x227C71A, 0x5AA1, 'Chest', 0x62, 'Goron City'), - 'Goron City Right Maze Chest': (0x227C25A, 0x227C72A, 0x5AA2, 'Chest', 0x62, 'Goron City'), - 'Zoras Domain Torch Run': (0x2103166, None, 0xB7C0, 'Chest', 0x58, 'Zora\'s Domain'), - 'Hookshot Chest': (0x3063092, None, 0x1100, 'Chest', 0x48, 'the Graveyard'), - 'Gerudo Valley Hammer Rocks Chest': (0x213D676, None, 0x5AA0, 'Chest', 0x5A, 'Gerudo Valley'), - 'Gerudo Fortress Rooftop Chest': (0x21BD4AA, 0x21BD6EA, 0x07C0, 'Chest', 0x5D, 'Gerudo Fortress'), - 'Haunted Wasteland Structure Chest': (0x21E20DE, None, 0x8AA0, 'Chest', 0x5E, 'Haunted Wasteland'), - 'Redead Grotto Chest': (0x26CF076, None, 0x7ACA, 'Chest', 0x3E, 'Kakariko Village'), - 'Wolfos Grotto Chest': (0x26EB076, None, 0x7AB1, 'Chest', 0x3E, 'Sacred Forest Meadow'), - 'Deku Tree Lobby Chest': (0x24A7146, None, 0x0823, 'Chest', 0x00, 'Deku Tree'), - 'Deku Tree Slingshot Chest': (0x24C20C6, None, 0x00A1, 'Chest', 0x00, 'Deku Tree'), - 'Deku Tree Slingshot Room Side Chest': (0x24C20D6, None, 0x5905, 'Chest', 0x00, 'Deku Tree'), - 'Deku Tree Compass Chest': (0x25040D6, None, 0x0802, 'Chest', 0x00, 'Deku Tree'), - 'Deku Tree Compass Room Side Chest': (0x25040E6, None, 0x5906, 'Chest', 0x00, 'Deku Tree'), - 'Deku Tree Basement Chest': (0x24C8166, None, 0x5904, 'Chest', 0x00, 'Deku Tree'), - 'Dodongos Cavern Map Chest': (0x1F2819E, None, 0x0828, 'Chest', 0x01, 'Dodongo\'s Cavern'), - 'Dodongos Cavern Compass Chest': (0x1FAF0AA, None, 0x0805, 'Chest', 0x01, 'Dodongo\'s Cavern'), - 'Dodongos Cavern Bomb Flower Platform': (0x1F890DE, None, 0x59C6, 'Chest', 0x01, 'Dodongo\'s Cavern'), - 'Dodongos Cavern Bomb Bag Chest': (0x1F890CE, None, 0x0644, 'Chest', 0x01, 'Dodongo\'s Cavern'), - 'Dodongos Cavern End of Bridge Chest': (0x1F281CE, None, 0x552A, 'Chest', 0x01, 'Dodongo\'s Cavern'), - 'Chest Above King Dodongo': (0x2EB00BA, None, 0x5020, 'Chest', 0x12, 'Dodongo\'s Cavern'), - 'Boomerang Chest': (0x278A0BA, None, 0x10C1, 'Chest', 0x02, 'Jabu Jabu\'s Belly'), - 'Jabu Jabus Belly Map Chest': (0x278E08A, None, 0x1822, 'Chest', 0x02, 'Jabu Jabu\'s Belly'), - 'Jabu Jabus Belly Compass Chest': (0x279608A, None, 0xB804, 'Chest', 0x02, 'Jabu Jabu\'s Belly'), - 'Forest Temple First Chest': (0x23E5092, None, 0x5843, 'Chest', 0x03, 'Forest Temple'), - 'Forest Temple Chest Behind Lobby': (0x2415082, None, 0x7840, 'Chest', 0x03, 'Forest Temple'), - 'Forest Temple Well Chest': (0x244A062, None, 0x5849, 'Chest', 0x03, 'Forest Temple'), - 'Forest Temple Map Chest': (0x2455076, None, 0x1821, 'Chest', 0x03, 'Forest Temple'), - 'Forest Temple Outside Hookshot Chest': (0x241F0D6, None, 0x5905, 'Chest', 0x03, 'Forest Temple'), - 'Forest Temple Falling Room Chest': (0x247E09E, None, 0x5947, 'Chest', 0x03, 'Forest Temple'), - 'Forest Temple Block Push Chest': (0x245B096, None, 0x8964, 'Chest', 0x03, 'Forest Temple'), - 'Forest Temple Boss Key Chest': (0xCB0DC2, None, 0x27EE, 'Chest', 0x03, 'Forest Temple'), - 'Forest Temple Floormaster Chest': (0x2490072, None, 0x7842, 'Chest', 0x03, 'Forest Temple'), - 'Forest Temple Bow Chest': (0x2415092, None, 0xB08C, 'Chest', 0x03, 'Forest Temple'), - 'Forest Temple Red Poe Chest': (0x246607E, None, 0x784D, 'Chest', 0x03, 'Forest Temple'), - 'Forest Temple Blue Poe Chest': (0x246F07E, None, 0x180F, 'Chest', 0x03, 'Forest Temple'), - 'Forest Temple Near Boss Chest': (0x2486082, None, 0x592B, 'Chest', 0x03, 'Forest Temple'), - 'Bottom of the Well Front Left Hidden Wall': (0x32D317E, None, 0x5848, 'Chest', 0x08, 'Bottom of the Well'), - 'Bottom of the Well Front Center Bombable': (0x32D30FE, None, 0x5062, 'Chest', 0x08, 'Bottom of the Well'), - 'Bottom of the Well Right Bottom Hidden Wall': (0x32D314E, None, 0x5845, 'Chest', 0x08, 'Bottom of the Well'), - 'Bottom of the Well Center Large Chest': (0x32D30EE, None, 0x0801, 'Chest', 0x08, 'Bottom of the Well'), - 'Bottom of the Well Center Small Chest': (0x32D31AE, None, 0x504E, 'Chest', 0x08, 'Bottom of the Well'), - 'Bottom of the Well Back Left Bombable': (0x32D313E, None, 0x5C84, 'Chest', 0x08, 'Bottom of the Well'), - 'Bottom of the Well Defeat Boss': (0x32FB0AA, None, 0x1143, 'Chest', 0x08, 'Bottom of the Well'), - 'Bottom of the Well Invisible Chest': (0x32FB0BA, None, 0x6AD4, 'Chest', 0x08, 'Bottom of the Well'), - 'Bottom of the Well Underwater Front Chest': (0x32D31BE, None, 0x5CD0, 'Chest', 0x08, 'Bottom of the Well'), - 'Bottom of the Well Underwater Left Chest': (0x32D318E, None, 0x5909, 'Chest', 0x08, 'Bottom of the Well'), - 'Bottom of the Well Basement Chest': (0x32E9252, None, 0x0827, 'Chest', 0x08, 'Bottom of the Well'), - 'Bottom of the Well Locked Pits': (0x32F90AA, None, 0x552A, 'Chest', 0x08, 'Bottom of the Well'), - 'Bottom of the Well Behind Right Grate': (0x32D319E, None, 0x554C, 'Chest', 0x08, 'Bottom of the Well'), - 'Fire Temple Chest Near Boss': (0x230808A, None, 0x5841, 'Chest', 0x04, 'Fire Temple'), - 'Fire Temple Fire Dancer Chest': (0x2318082, None, 0x7CC0, 'Chest', 0x04, 'Fire Temple'), - 'Fire Temple Boss Key Chest': (0x238A0D6, None, 0x27EC, 'Chest', 0x04, 'Fire Temple'), - 'Fire Temple Big Lava Room Bombable Chest': (0x23AD076, None, 0x5842, 'Chest', 0x04, 'Fire Temple'), - 'Fire Temple Big Lava Room Open Chest': (0x239D0A6, None, 0x5844, 'Chest', 0x04, 'Fire Temple'), - 'Fire Temple Boulder Maze Lower Chest': (0x2323152, None, 0x5843, 'Chest', 0x04, 'Fire Temple'), - 'Fire Temple Boulder Maze Upper Chest': (0x2323182, None, 0x5846, 'Chest', 0x04, 'Fire Temple'), - 'Fire Temple Boulder Maze Side Room': (0x23B40B2, None, 0x5848, 'Chest', 0x04, 'Fire Temple'), - 'Fire Temple Boulder Maze Bombable Pit': (0x231B0E2, None, 0x584B, 'Chest', 0x04, 'Fire Temple'), - 'Fire Temple Scarecrow Chest': (0x2339082, None, 0x5ACD, 'Chest', 0x04, 'Fire Temple'), - 'Fire Temple Map Chest': (0x237E0C2, None, 0x082A, 'Chest', 0x04, 'Fire Temple'), - 'Fire Temple Compass Chest': (0x23C1082, None, 0x0807, 'Chest', 0x04, 'Fire Temple'), - 'Fire Temple Highest Goron Chest': (0x2365066, None, 0x5849, 'Chest', 0x04, 'Fire Temple'), - 'Fire Temple Megaton Hammer Chest': (0x236C102, None, 0x01A5, 'Chest', 0x04, 'Fire Temple'), - 'Ice Cavern Map Chest': (0x2C4016A, None, 0x0820, 'Chest', 0x09, 'Ice Cavern'), - 'Ice Cavern Compass Chest': (0x2C4E236, None, 0x0801, 'Chest', 0x09, 'Ice Cavern'), - 'Ice Cavern Iron Boots Chest': (0x2C380A2, None, 0x15C2, 'Chest', 0x09, 'Ice Cavern'), - 'Water Temple Map Chest': (0x26690A6, None, 0x1822, 'Chest', 0x05, 'Water Temple'), - 'Water Temple Compass Chest': (0x25FC0D2, None, 0x0809, 'Chest', 0x05, 'Water Temple'), - 'Water Temple Torches Chest': (0x26640A6, None, 0x7841, 'Chest', 0x05, 'Water Temple'), - 'Water Temple Dragon Chest': (0x261F0BA, None, 0x584A, 'Chest', 0x05, 'Water Temple'), - 'Water Temple Central Bow Target Chest': (0x266D072, None, 0x5848, 'Chest', 0x05, 'Water Temple'), - 'Water Temple Central Pillar Chest': (0x25EF0D6, None, 0x5846, 'Chest', 0x05, 'Water Temple'), - 'Water Temple Cracked Wall Chest': (0x265B0A6, None, 0x5840, 'Chest', 0x05, 'Water Temple'), - 'Water Temple Boss Key Chest': (0x2657066, None, 0x27E5, 'Chest', 0x05, 'Water Temple'), - 'Water Temple Dark Link Chest': (0x261907A, None, 0x0127, 'Chest', 0x05, 'Water Temple'), - 'Water Temple River Chest': (0x26740DE, None, 0x5843, 'Chest', 0x05, 'Water Temple'), - 'Shadow Temple Map Chest': (0x27CC0AA, None, 0x1821, 'Chest', 0x07, 'Shadow Temple'), - 'Shadow Temple Hover Boots Chest': (0x27DC0CA, None, 0x15E7, 'Chest', 0x07, 'Shadow Temple'), - 'Shadow Temple Compass Chest': (0x27EC09E, None, 0x1803, 'Chest', 0x07, 'Shadow Temple'), - 'Shadow Temple Early Silver Rupee Chest': (0x27E40F6, None, 0x5842, 'Chest', 0x07, 'Shadow Temple'), - 'Shadow Temple Invisible Blades Visible Chest': (0x282212A, None, 0x588C, 'Chest', 0x07, 'Shadow Temple'), - 'Shadow Temple Invisible Blades Invisible Chest': (0x282211A, None, 0x6976, 'Chest', 0x07, 'Shadow Temple'), - 'Shadow Temple Falling Spikes Lower Chest': (0x2801132, None, 0x5945, 'Chest', 0x07, 'Shadow Temple'), - 'Shadow Temple Falling Spikes Upper Chest': (0x2801142, None, 0x5886, 'Chest', 0x07, 'Shadow Temple'), - 'Shadow Temple Falling Spikes Switch Chest': (0x2801122, None, 0x8844, 'Chest', 0x07, 'Shadow Temple'), - 'Shadow Temple Invisible Spikes Chest': (0x28090EE, None, 0x7889, 'Chest', 0x07, 'Shadow Temple'), - 'Shadow Temple Wind Hint Chest': (0x283609A, None, 0x6955, 'Chest', 0x07, 'Shadow Temple'), - 'Shadow Temple After Wind Enemy Chest': (0x28390FE, None, 0x7888, 'Chest', 0x07, 'Shadow Temple'), - 'Shadow Temple After Wind Hidden Chest': (0x28390EE, None, 0x6854, 'Chest', 0x07, 'Shadow Temple'), - 'Shadow Temple Spike Walls Left Chest': (0x28130B6, None, 0x588A, 'Chest', 0x07, 'Shadow Temple'), - 'Shadow Temple Boss Key Chest': (0x28130A6, None, 0x27EB, 'Chest', 0x07, 'Shadow Temple'), - 'Shadow Temple Hidden Floormaster Chest': (0x282508A, None, 0x784D, 'Chest', 0x07, 'Shadow Temple'), - 'Gerudo Training Grounds Lobby Left Chest': (0x28870CA, None, 0x8893, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Lobby Right Chest': (0x28870BA, None, 0x8947, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Stalfos Chest': (0x28970AA, None, 0x8840, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Beamos Chest': (0x28C715E, None, 0x8841, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Hidden Ceiling Chest': (0x28D010E, None, 0x584B, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Maze Path First Chest': (0x28D00CE, None, 0x5AA6, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Maze Path Second Chest': (0x28D00FE, None, 0x59CA, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Maze Path Third Chest': (0x28D00EE, None, 0x5969, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Maze Path Final Chest': (0x28D011E, None, 0x0B2C, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Maze Right Central Chest': (0x28D00BE, None, 0x5D45, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Maze Right Side Chest': (0x28D00DE, None, 0x5968, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Underwater Silver Rupee Chest': (0x28D91D6, None, 0x884D, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Hammer Room Clear Chest': (0x28B91AE, None, 0x7952, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Hammer Room Switch Chest': (0x28B919E, None, 0x5850, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Eye Statue Chest': (0x28AE09E, None, 0x8843, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Near Scarecrow Chest': (0x28D00AE, None, 0x5844, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Before Heavy Block Chest': (0x28A611E, None, 0x7971, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Heavy Block First Chest': (0x28DD0BE, None, 0x7ACF, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Heavy Block Second Chest': (0x28DD0AE, None, 0x788E, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Heavy Block Third Chest': (0x28DD08E, None, 0x6854, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Heavy Block Fourth Chest': (0x28DD09E, None, 0x5F82, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Spirit Temple Child Left Chest': (0x2B190BA, None, 0x5528, 'Chest', 0x06, 'Spirit Temple'), - 'Spirit Temple Child Right Chest': (0x2B13182, None, 0x8840, 'Chest', 0x06, 'Spirit Temple'), - 'Spirit Temple Compass Chest': (0x2B6B08A, None, 0x3804, 'Chest', 0x06, 'Spirit Temple'), - 'Spirit Temple Early Adult Right Chest': (0x2B6207A, None, 0x5847, 'Chest', 0x06, 'Spirit Temple'), - 'Spirit Temple First Mirror Right Chest': (0x2B700C6, None, 0x890D, 'Chest', 0x06, 'Spirit Temple'), - 'Spirit Temple First Mirror Left Chest': (0x2B700D6, None, 0x8F8E, 'Chest', 0x06, 'Spirit Temple'), - 'Spirit Temple Map Chest': (0x2B25126, None, 0xB823, 'Chest', 0x06, 'Spirit Temple'), - 'Spirit Temple Child Climb East Chest': (0x2B1D122, None, 0x8066, 'Chest', 0x06, 'Spirit Temple'), - 'Spirit Temple Child Climb North Chest': (0x2B1D132, None, 0x852C, 'Chest', 0x06, 'Spirit Temple'), - 'Spirit Temple Sun Block Room Chest': (0x2B481B2, None, 0x8841, 'Chest', 0x06, 'Spirit Temple'), - 'Spirit Temple Statue Hand Chest': (0x2B25136, None, 0x8842, 'Chest', 0x06, 'Spirit Temple'), - 'Spirit Temple NE Main Room Chest': (0x2B25146, None, 0x888F, 'Chest', 0x06, 'Spirit Temple'), - 'Silver Gauntlets Chest': (0x21A02DE, 0x21A06F2, 0x06AB, 'Chest', 0x5C, 'Desert Colossus'), - 'Mirror Shield Chest': (0x21A02CE, 0x21A06E2, 0x3569, 'Chest', 0x5C, 'Desert Colossus'), - 'Spirit Temple Near Four Armos Chest': (0x2B9F076, None, 0x5845, 'Chest', 0x06, 'Spirit Temple'), - 'Spirit Temple Hallway Left Invisible Chest': (0x2B900B6, None, 0x6914, 'Chest', 0x06, 'Spirit Temple'), - 'Spirit Temple Hallway Right Invisible Chest': (0x2B900C6, None, 0x6915, 'Chest', 0x06, 'Spirit Temple'), - 'Spirit Temple Boss Key Chest': (0x2BA4162, None, 0x27EA, 'Chest', 0x06, 'Spirit Temple'), - 'Spirit Temple Topmost Chest': (0x2BCF0FE, None, 0x8CF2, 'Chest', 0x06, 'Spirit Temple'), - 'Ganons Castle Forest Trial Chest': (0x31F106E, None, 0x7889, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Water Trial Left Chest': (0x31D7236, None, 0x5F87, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Water Trial Right Chest': (0x31D7226, None, 0x5906, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Shadow Trial First Chest': (0x32350CA, None, 0x5888, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Shadow Trial Second Chest': (0x32350BA, None, 0x36C5, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Spirit Trial First Chest': (0x3268132, None, 0x8D72, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Spirit Trial Second Chest': (0x3268142, None, 0x6954, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Light Trial First Left Chest': (0x321B11E, None, 0x588C, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Light Trial Second Left Chest': (0x321B10E, None, 0x5F8B, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Light Trial Third Left Chest': (0x321B12E, None, 0x590D, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Light Trial First Right Chest': (0x321B13E, None, 0x5F8E, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Light Trial Second Right Chest': (0x321B0FE, None, 0x596A, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Light Trial Third Right Chest': (0x321B14E, None, 0x5F8F, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Light Trail Invisible Enemies Chest': (0x321B15E, None, 0x7850, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Light Trial Lullaby Chest': (0x321B17E, None, 0x8851, 'Chest', 0x0D, 'my castle'), - 'Ganons Tower Boss Key Chest': (0x2F040EE, None, 0x27EB, 'Chest', 0x0A, 'my tower'), - 'Field West Castle Town Grotto Chest': (None, None, 0x00, 'Chest', 0x3E, 'Hyrule Field'), - 'Remote Southern Grotto Chest': (None, None, 0x02, 'Chest', 0x3E, 'Hyrule Field'), - 'Field Near Lake Outside Fence Grotto Chest': (None, None, 0x03, 'Chest', 0x3E, 'Hyrule Field'), - 'Kakariko Back Grotto Chest': (None, None, 0x08, 'Chest', 0x3E, 'Kakariko Village'), - 'Zora River Plateau Open Grotto Chest': (None, None, 0x09, 'Chest', 0x3E, 'Zora River'), - 'Kokiri Forest Storms Grotto Chest': (None, None, 0x0C, 'Chest', 0x3E, 'Kokiri Forest'), - 'Lost Woods Generic Grotto Chest': (None, None, 0x14, 'Chest', 0x3E, 'the Lost Woods'), - 'Mountain Storms Grotto Chest': (None, None, 0x17, 'Chest', 0x3E, 'Death Mountain Trail'), - 'Top of Crater Grotto Chest': (None, None, 0x1A, 'Chest', 0x3E, 'Death Mountain Crater'), - 'Impa at Castle': (0x2E8E925, 0x2E8E925, 0x67, 'Song', 0x51, 'Hyrule Castle'), - 'Song from Malon': (0xD7EB53, 0xD7EBCF, 0x68, 'Song', 0x63, 'Lon Lon Ranch'), - 'Song from Composer Grave': (0x332A871, 0x332A871, 0x6A, 'Song', 0x41, 'the Graveyard'), - 'Song from Saria': (0x20B1DB1, 0x20B1DB1, 0x69, 'Song', 0x56, 'Sacred Forest Meadow'), - 'Song from Ocarina of Time': (0x252FC89, 0x252FC89, 0x6B, 'Song', 0x51, 'Hyrule Field'), - 'Song at Windmill': (0xE42C07, 0xE42B8B, 0x6C, 'Song', 0x48, 'Kakariko'), - 'Sheik Forest Song': (0x20B0809, 0x20B0809, 0x61, 'Song', 0x56, 'Sacred Forest Meadow'), - 'Sheik at Temple': (0x2531329, 0x2531329, 0x66, 'Song', 0x43, 'Temple of Time'), - 'Sheik in Crater': (0x224D7F1, 0x224D7F1, 0x62, 'Song', 0x61, 'Death Mountain Crater'), - 'Sheik in Ice Cavern': (0x2BEC889, 0x2BEC889, 0x63, 'Song', 0x09, 'Ice Cavern'), - 'Sheik in Kakariko': (0x2000FE1, 0x2000FE1, 0x65, 'Song', 0x52, 'Kakariko'), - 'Sheik at Colossus': (0x218C57D, 0x218C57D, 0x64, 'Song', 0x5C, 'Desert Colossus'), - 'Gift from Saria': (None, None, 0x3B, 'NPC', 0x5B, 'the Lost Woods'), - 'Malon Egg': (None, None, 0x47, 'NPC', 0x5F, 'Hyrule Castle'), - 'Zeldas Letter': (None, None, None, 'NPC', None, 'Hyrule Castle'), - 'Zelda': (0x3481400, None, 0x5A, 'NPC', 0x43, 'the Temple of Time'), - 'Zoras Fountain Fairy Reward': (0x3481401, None, 0x5D, 'NPC', 0x3D, 'Zora\'s Fountain'), - 'Hyrule Castle Fairy Reward': (0x3481402, None, 0x5C, 'NPC', 0x3D, 'Hyrule Castle'), - 'Desert Colossus Fairy Reward': (0x3481403, None, 0x5E, 'NPC', 0x3D, 'Desert Colossus'), - 'Mountain Summit Fairy Reward': (0x3481404, None, 0x51, 'NPC', 0x3B, 'Death Mountain Trail'), - 'Crater Fairy Reward': (0x3481405, None, 0x52, 'NPC', 0x3B, 'Death Mountain Crater'), - 'Ganons Castle Fairy Reward': (0x3481406, None, 0x53, 'NPC', 0x3B, 'outside my castle'), - 'Treasure Chest Game': (None, None, 0x0A, 'Chest', 0x10, 'the market'), - 'Darunias Joy': (0xCF1BFF, None, 0x54, 'NPC', 0x62, 'Goron City'), - 'Diving Minigame': (0xE01A2B, 0xE01AA7, 0x37, 'NPC', 0x58, 'Zora\'s Domain'), - 'Child Fishing': (0xDCBFBF, None, 0x3E, 'NPC', 0x49, 'Lake Hylia'), - 'Adult Fishing': (0xDCC087, None, 0x38, 'NPC', 0x49, 'Lake Hylia'), - 'Diving in the Lab': (0xE2CB97, None, 0x3E, 'NPC', 0x38, 'Lake Hylia'), - 'Link the Goron': (0xED30EB, 0xED64F3, 0x2C, 'NPC', 0x62, 'Goron City'), - 'King Zora Thawed': (0xE56AD7, None, 0x2D, 'NPC', 0x58, 'Zora\'s Domain'), - 'Bombchu Bowling Bomb Bag': (0xE2F093, None, 0x34, 'NPC', 0x4B, 'the market'), - 'Bombchu Bowling Piece of Heart': (0xE2F097, None, 0x3E, 'NPC', 0x4B, 'the market'), - 'Dog Lady': (0xE65163, 0xE661BB, 0x3E, 'NPC', 0x35, 'the market'), - 'Skull Kid': (0xDF0F33, 0xDF0E9B, 0x3E, 'NPC', 0x5B, 'the Lost Woods'), - 'Ocarina Memory Game': (0xDF264F, None, 0x76, 'NPC', 0x5B, 'the Lost Woods'), - '10 Gold Skulltulla Reward': (0xEA7173, None, 0x45, 'NPC', 0x50, 'Kakariko Village'), - '20 Gold Skulltulla Reward': (0xEA7175, None, 0x39, 'NPC', 0x50, 'Kakariko Village'), - '30 Gold Skulltulla Reward': (0xEA7177, None, 0x46, 'NPC', 0x50, 'Kakariko Village'), - '40 Gold Skulltulla Reward': (0xEA7179, None, 0x03, 'NPC', 0x50, 'Kakariko Village'), - '50 Gold Skulltulla Reward': (0xEA717B, None, 0x3E, 'NPC', 0x50, 'Kakariko Village'), - 'Man on Roof': (0xE587E3, None, 0x3E, 'NPC', 0x52, 'Kakariko Village'), - 'Frog Ocarina Game': (0xDB13D3, None, 0x76, 'NPC', 0x54, 'Zora River'), - 'Frogs in the Rain': (0xDB1387, None, 0x3E, 'NPC', 0x54, 'Zora River'), - 'Horseback Archery 1000 Points': (0xE12B6F, 0xE12AA3, 0x3E, 'NPC', 0x5D, 'Gerudo Fortress'), - 'Horseback Archery 1500 Points': (0xE12BC3, 0xE12AFB, 0x30, 'NPC', 0x5D, 'Gerudo Fortress'), - 'Child Shooting Gallery': (0xD35EF3, None, 0x60, 'NPC', 0x42, 'the market'), - 'Adult Shooting Gallery': (0xD35F5B, None, 0x30, 'NPC', 0x42, 'Kakariko Village'), - 'Target in Woods': (0xE59CDF, None, 0x60, 'NPC', 0x5B, 'the Lost Woods'), - 'Deku Theater Skull Mask': (0xEC9A87, None, 0x77, 'NPC', 0x3E, 'the Lost Woods'), - 'Deku Theater Mask of Truth': (0xEC9CE7, None, 0x7A, 'NPC', 0x3E, 'the Lost Woods'), - 'Deku Salesman Woods': (0xDF8073, None, 0x77, 'NPC', 0x5B, 'the Lost Woods'), - 'Deku Salesman Lost Woods Grotto': (0xDF80E7, None, 0x79, 'NPC', 0x3E, 'the Lost Woods'), - 'Deku Salesman Hyrule Field Grotto': (0xDF86AB, None, 0x3E, 'NPC', 0x3E, 'Hyrule Field'), - 'Anju as Adult': (0xE1EABB, None, 0x1D, 'NPC', 0x52, 'Kakariko Village'), - 'Biggoron': (0xED338F, 0xED650F, 0x57, 'NPC', 0x60, 'Death Mountain Trail'), - 'Anjus Chickens': (0xE1E7A7, None, 0x0F, 'NPC', 0x52, 'Kakariko Village'), - 'Talons Chickens': (0xCC14EB, None, 0x14, 'NPC', 0x4C, 'Lon Lon Ranch'), - '10 Big Poes': (0xEE6AEF, None, 0x0F, 'NPC', 0x4D, 'the market'), - 'Rolling Goron as Child': (0xED296F, 0xED6503, 0x34, 'NPC', 0x62, 'Goron City'), - 'Lake Hylia Sun': (0xE9E1F2, None, 0x5B08, 'Chest', 0x57, 'Lake Hylia'), - 'Underwater Bottle': (0xDE10FB, None, 0x15, 'NPC', 0x57, 'Lake Hylia'), - 'Shadow Temple Freestanding Key': (None, None, 0x01, 'Collectable', 0x07, 'Shadow Temple'), - 'Bottom of the Well Freestanding Key': (None, None, 0x01, 'Collectable', 0x08, 'Bottom of the Well'), - 'Gerudo Training Grounds Freestanding Key': (None, None, 0x01, 'Collectable', 0x0B, 'Gerudo Training Grounds'), - 'Ice Cavern Freestanding PoH': (None, None, 0x01, 'Collectable', 0x09, 'Ice Cavern'), - 'Impa House Freestanding PoH': (None, None, 0x01, 'Collectable', 0x37, 'Kakariko Village'), - 'Tektite Grotto Freestanding PoH': (None, None, 0x01, 'Collectable', 0x3E, 'Hyrule Field'), - 'Windmill Freestanding PoH': (None, None, 0x01, 'Collectable', 0x48, 'Kakariko Village'), - 'Dampe Race Freestanding PoH': (None, None, 0x07, 'Collectable', 0x48, 'the Graveyard'), - 'Lon Lon Tower Freestanding PoH': (None, None, 0x01, 'Collectable', 0x4C, 'Lon Lon Ranch'), - 'Graveyard Freestanding PoH': (None, None, 0x04, 'Collectable', 0x53, 'the Graveyard'), - 'Gravedigging Tour': (None, None, 0x00, 'Collectable', 0x53, 'the Graveyard'), - 'Zora River Lower Freestanding PoH': (None, None, 0x04, 'Collectable', 0x54, 'Zora River'), - 'Zora River Upper Freestanding PoH': (None, None, 0x0B, 'Collectable', 0x54, 'Zora River'), - 'Lake Hylia Freestanding PoH': (None, None, 0x1E, 'Collectable', 0x57, 'Lake Hylia'), - 'Zoras Fountain Iceberg Freestanding PoH': (None, None, 0x01, 'Collectable', 0x59, 'Zora\'s Fountain'), - 'Zoras Fountain Bottom Freestanding PoH': (None, None, 0x14, 'Collectable', 0x59, 'Zora\'s Fountain'), - 'Gerudo Valley Waterfall Freestanding PoH': (None, None, 0x01, 'Collectable', 0x5A, 'Gerudo Valley'), - 'Gerudo Valley Crate Freestanding PoH': (None, None, 0x02, 'Collectable', 0x5A, 'Gerudo Valley'), - 'Colossus Freestanding PoH': (None, None, 0x0D, 'Collectable', 0x5C, 'Desert Colossus'), - 'DM Trail Freestanding PoH': (None, None, 0x1E, 'Collectable', 0x60, 'Death Mountain Trail'), - 'DM Crater Wall Freestanding PoH': (None, None, 0x02, 'Collectable', 0x61, 'Death Mountain Crater'), - 'DM Crater Volcano Freestanding PoH': (None, None, 0x08, 'Collectable', 0x61, 'Death Mountain Crater'), - 'Goron City Pot Freestanding PoH': (None, None, 0x1F, 'Collectable', 0x62, 'Goron City'), - 'Gerudo Fortress North F1 Carpenter': (None, None, 0x0C, 'Collectable', 0x0C, 'Gerudo Fortress'), - 'Gerudo Fortress North F2 Carpenter': (None, None, 0x0A, 'Collectable', 0x0C, 'Gerudo Fortress'), - 'Gerudo Fortress South F1 Carpenter': (None, None, 0x0E, 'Collectable', 0x0C, 'Gerudo Fortress'), - 'Gerudo Fortress South F2 Carpenter': (None, None, 0x0F, 'Collectable', 0x0C, 'Gerudo Fortress'), - 'Gerudo Fortress Membership Card': (None, None, 0x3A, 'NPC', 0x0C, 'Gerudo Fortress'), - 'Queen Gohma Heart': (None, None, 0x4F, 'BossHeart', 0x11, 'Deku Tree'), - 'King Dodongo Heart': (None, None, 0x4F, 'BossHeart', 0x12, 'Dodongo\'s Cavern'), - 'Barinade Heart': (None, None, 0x4F, 'BossHeart', 0x13, 'Jabu Jabu\'s Belly'), - 'Phantom Ganon Heart': (None, None, 0x4F, 'BossHeart', 0x14, 'Forest Temple'), - 'Volvagia Heart': (None, None, 0x4F, 'BossHeart', 0x15, 'Fire Temple'), - 'Morpha Heart': (None, None, 0x4F, 'BossHeart', 0x16, 'Water Temple'), - 'Twinrova Heart': (None, None, 0x4F, 'BossHeart', 0x17, 'Spirit Temple'), - 'Bongo Bongo Heart': (None, None, 0x4F, 'BossHeart', 0x18, 'Shadow Temple'), - 'Magic Bean Salesman': (None, None, None, 'Event', None, 'Zora\'s River'), - 'King Zora Moves': (None, None, None, 'Event', None, 'Zora\'s Domain'), - 'Ocarina of Time': (None, None, 0x0C, 'NPC', 0x51, 'Hyrule Field'), - 'Master Sword Pedestal': (None, None, None, 'Event', None, 'the Temple of Time'), - 'Epona': (None, None, None, 'Event', None, 'Lon Lon Ranch'), - 'Gerudo Fortress Carpenter Rescue': (None, None, None, 'Event', None, 'Gerudo Fortress'), - 'Ganons Castle Forest Trial Clear': (None, None, None, 'Event', None, 'Ganon\'s Castle'), - 'Ganons Castle Fire Trial Clear': (None, None, None, 'Event', None, 'Ganon\'s Castle'), - 'Ganons Castle Water Trial Clear': (None, None, None, 'Event', None, 'Ganon\'s Castle'), - 'Ganons Castle Shadow Trial Clear': (None, None, None, 'Event', None, 'Ganon\'s Castle'), - 'Ganons Castle Spirit Trial Clear': (None, None, None, 'Event', None, 'Ganon\'s Castle'), - 'Ganons Castle Light Trial Clear': (None, None, None, 'Event', None, 'Ganon\'s Castle'), - 'Links Pocket': (0x34806FB, 0x34806FF, None, 'Boss', None, 'Link\'s Pocket'), # I don't think the actually addresses matter here anymore, but they can't be None for some reason - 'Queen Gohma': (0xCA315F, 0x2079571, 0x6C, 'Boss', None, 'Deku Tree'), - 'King Dodongo': (0xCA30DF, 0x2223309, 0x6D, 'Boss', None, 'Dodongo\'s Cavern'), - 'Barinade': (0xCA36EB, 0x2113C19, 0x6E, 'Boss', None, 'Jabu Jabu\'s Belly'), - 'Phantom Ganon': (0xCA3D07, 0xD4ED79, 0x66, 'Boss', None, 'Shadow Temple'), - 'Volvagia': (0xCA3D93, 0xD10135, 0x67, 'Boss', None, 'Fire Temple'), - 'Morpha': (0xCA3E1F, 0xD5A3A9, 0x68, 'Boss', None, 'Water Temple'), - 'Twinrova': (0xCA3EB3, 0xD39FF1, 0x69, 'Boss', None, 'Spirit Temple'), - 'Bongo Bongo': (0xCA3F43, 0xD13E19, 0x6A, 'Boss', None, 'Shadow Temple'), - 'Ganon': (None, None, None, 'Boss', None, 'Ganon\'s Castle'), - # note that the scene for skulltulas is not the actual scene the token appears in - # rather, it is the index of the grouping used when storing skulltula collection - # for example, zora river, zora's domain, and zora fountain are all a single 'scene' for skulltulas - 'GS Deku Tree Basement Back Room': (None, None, 0x01, 'GS Token', 0x00, 'Deku Tree'), - 'GS Deku Tree Basement Gate': (None, None, 0x02, 'GS Token', 0x00, 'Deku Tree'), - 'GS Deku Tree Basement Vines': (None, None, 0x04, 'GS Token', 0x00, 'Deku Tree'), - 'GS Deku Tree Compass Room': (None, None, 0x08, 'GS Token', 0x00, 'Deku Tree'), - - 'GS Dodongo\'s Cavern Vines Above Stairs': (None, None, 0x01, 'GS Token', 0x01, 'Dodongo\'s Cavern'), - 'GS Dodongo\'s Cavern Scarecrow': (None, None, 0x02, 'GS Token', 0x01, 'Dodongo\'s Cavern'), - 'GS Dodongo\'s Cavern Alcove Above Stairs': (None, None, 0x04, 'GS Token', 0x01, 'Dodongo\'s Cavern'), - 'GS Dodongo\'s Cavern Back Room': (None, None, 0x08, 'GS Token', 0x01, 'Dodongo\'s Cavern'), - 'GS Dodongo\'s Cavern East Side Room': (None, None, 0x10, 'GS Token', 0x01, 'Dodongo\'s Cavern'), - - 'GS Jabu Jabu Lobby Basement Lower': (None, None, 0x01, 'GS Token', 0x02, 'Jabu Jabu\'s Belly'), - 'GS Jabu Jabu Lobby Basement Upper': (None, None, 0x02, 'GS Token', 0x02, 'Jabu Jabu\'s Belly'), - 'GS Jabu Jabu Near Boss': (None, None, 0x04, 'GS Token', 0x02, 'Jabu Jabu\'s Belly'), - 'GS Jabu Jabu Water Switch Room': (None, None, 0x08, 'GS Token', 0x02, 'Jabu Jabu\'s Belly'), - - 'GS Forest Temple Outdoor East': (None, None, 0x01, 'GS Token', 0x03, 'Forest Temple'), - 'GS Forest Temple First Room': (None, None, 0x02, 'GS Token', 0x03, 'Forest Temple'), - 'GS Forest Temple Outdoor West': (None, None, 0x04, 'GS Token', 0x03, 'Forest Temple'), - 'GS Forest Temple Lobby': (None, None, 0x08, 'GS Token', 0x03, 'Forest Temple'), - 'GS Forest Temple Basement': (None, None, 0x10, 'GS Token', 0x03, 'Forest Temple'), - - 'GS Fire Temple Song of Time Room': (None, None, 0x01, 'GS Token', 0x04, 'Fire Temple'), - 'GS Fire Temple Basement': (None, None, 0x02, 'GS Token', 0x04, 'Fire Temple'), - 'GS Fire Temple Unmarked Bomb Wall': (None, None, 0x04, 'GS Token', 0x04, 'Fire Temple'), - 'GS Fire Temple East Tower Top': (None, None, 0x08, 'GS Token', 0x04, 'Fire Temple'), - 'GS Fire Temple East Tower Climb': (None, None, 0x10, 'GS Token', 0x04, 'Fire Temple'), - - 'GS Water Temple South Basement': (None, None, 0x01, 'GS Token', 0x05, 'Water Temple'), - 'GS Water Temple Falling Platform Room': (None, None, 0x02, 'GS Token', 0x05, 'Water Temple'), - 'GS Water Temple Central Room': (None, None, 0x04, 'GS Token', 0x05, 'Water Temple'), - 'GS Water Temple Near Boss Key Chest': (None, None, 0x08, 'GS Token', 0x05, 'Water Temple'), - 'GS Water Temple Serpent River': (None, None, 0x10, 'GS Token', 0x05, 'Water Temple'), - - 'GS Spirit Temple Hall to West Iron Knuckle': (None, None, 0x01, 'GS Token', 0x06, 'Spirit Temple'), - 'GS Spirit Temple Boulder Room': (None, None, 0x02, 'GS Token', 0x06, 'Spirit Temple'), - 'GS Spirit Temple Lobby': (None, None, 0x04, 'GS Token', 0x06, 'Spirit Temple'), - 'GS Spirit Temple Bomb for Light Room': (None, None, 0x08, 'GS Token', 0x06, 'Spirit Temple'), - 'GS Spirit Temple Metal Fence': (None, None, 0x10, 'GS Token', 0x06, 'Spirit Temple'), - - 'GS Shadow Temple Single Giant Pot': (None, None, 0x01, 'GS Token', 0x07, 'Shadow Temple'), - 'GS Shadow Temple Crusher Room': (None, None, 0x02, 'GS Token', 0x07, 'Shadow Temple'), - 'GS Shadow Temple Tripple Giant Pot': (None, None, 0x04, 'GS Token', 0x07, 'Shadow Temple'), - 'GS Shadow Temple Like Like Room': (None, None, 0x08, 'GS Token', 0x07, 'Shadow Temple'), - 'GS Shadow Temple Near Ship': (None, None, 0x10, 'GS Token', 0x07, 'Shadow Temple'), - - 'GS Well Like Like Cage': (None, None, 0x01, 'GS Token', 0x08, 'Bottom of the Well'), - 'GS Well East Inner Room': (None, None, 0x02, 'GS Token', 0x08, 'Bottom of the Well'), - 'GS Well West Inner Room': (None, None, 0x04, 'GS Token', 0x08, 'Bottom of the Well'), - - 'GS Ice Cavern Push Block Room': (None, None, 0x01, 'GS Token', 0x09, 'Ice Cavern'), - 'GS Ice Cavern Spinning Scythe Room': (None, None, 0x02, 'GS Token', 0x09, 'Ice Cavern'), - 'GS Ice Cavern Heart Piece Room': (None, None, 0x04, 'GS Token', 0x09, 'Ice Cavern'), - - 'GS Hyrule Field Near Gerudo Valley': (None, None, 0x01, 'GS Token', 0x0A, 'Hyrule Field'), - 'GS Hyrule Field near Kakariko': (None, None, 0x02, 'GS Token', 0x0A, 'Hyrule Field'), - - 'GS Lon Lon Ranch Back Wall': (None, None, 0x01, 'GS Token', 0x0B, 'Lon Lon Ranch'), - 'GS Lon Lon Ranch Rain Shed': (None, None, 0x02, 'GS Token', 0x0B, 'Lon Lon Ranch'), - 'GS Lon Lon Ranch House Window': (None, None, 0x04, 'GS Token', 0x0B, 'Lon Lon Ranch'), - 'GS Lon Lon Ranch Tree': (None, None, 0x08, 'GS Token', 0x0B, 'Lon Lon Ranch'), - - 'GS Kokiri Bean Patch': (None, None, 0x01, 'GS Token', 0x0C, 'Kokiri Forest'), - 'GS Kokiri Know It All House': (None, None, 0x02, 'GS Token', 0x0C, 'Kokiri Forest'), - 'GS Kokiri House of Twins': (None, None, 0x04, 'GS Token', 0x0C, 'Kokiri Forest'), - - 'GS Lost Woods Bean Patch Near Bridge': (None, None, 0x01, 'GS Token', 0x0D, 'the Lost Woods'), - 'GS Lost Woods Bean Patch Near Stage': (None, None, 0x02, 'GS Token', 0x0D, 'the Lost Woods'), - 'GS Lost Woods Above Stage': (None, None, 0x04, 'GS Token', 0x0D, 'the Lost Woods'), - 'GS Sacred Forest Meadow': (None, None, 0x08, 'GS Token', 0x0D, 'Sacred Forest Meadow'), - - 'GS Outside Ganon\'s Castle': (None, None, 0x01, 'GS Token', 0x0E, 'outside my castle'), - 'GS Hyrule Castle Grotto': (None, None, 0x02, 'GS Token', 0x0E, 'Hyrule Castle'), - 'GS Hyrule Castle Tree': (None, None, 0x04, 'GS Token', 0x0E, 'Hyrule Castle'), - 'GS Castle Market Guard House': (None, None, 0x08, 'GS Token', 0x0E, 'the market'), - - 'GS Death Mounter Bean Patch': (None, None, 0x01, 'GS Token', 0x0F, 'Death Mountain Crater'), - 'GS Mountain Trail Bean Patch': (None, None, 0x02, 'GS Token', 0x0F, 'Death Mountain Trail'), - 'GS Mountain Trail Bomb Alcove': (None, None, 0x04, 'GS Token', 0x0F, 'Death Mountain Trail'), - 'GS Mountain Trail Above Dodongo\'s Cavern': (None, None, 0x08, 'GS Token', 0x0F, 'Death Mountain Trail'), - 'GS Mountain Trail Path to Crater': (None, None, 0x10, 'GS Token', 0x0F, 'Death Mountain Trail'), - 'GS Goron City Center Platform': (None, None, 0x20, 'GS Token', 0x0F, 'Goron City'), - 'GS Goron City Boulder Maze': (None, None, 0x40, 'GS Token', 0x0F, 'Goron City'), - 'GS Death Mounter Crater Crate': (None, None, 0x80, 'GS Token', 0x0F, 'Death Mountain Crater'), - - 'GS Kakariko House Under Construction': (None, None, 0x08, 'GS Token', 0x10, 'Kakariko Village'), - 'GS Kakariko Skulltula House': (None, None, 0x10, 'GS Token', 0x10, 'Kakariko Village'), - 'GS Kakariko Guard\'s House': (None, None, 0x02, 'GS Token', 0x10, 'Kakariko Village'), - 'GS Kakariko Tree': (None, None, 0x20, 'GS Token', 0x10, 'Kakariko Village'), - 'GS Kakariko Watchtower': (None, None, 0x04, 'GS Token', 0x10, 'Kakariko Village'), - 'GS Kakariko Above Impa\'s House': (None, None, 0x40, 'GS Token', 0x10, 'Kakariko Village'), - 'GS Graveyard Wall': (None, None, 0x80, 'GS Token', 0x10, 'the Graveyard'), - 'GS Graveyard Bean Patch': (None, None, 0x01, 'GS Token', 0x10, 'the Graveyard'), - - 'GS Zora River Ladder': (None, None, 0x01, 'GS Token', 0x11, 'Zora River'), - 'GS Zora River Tree': (None, None, 0x02, 'GS Token', 0x11, 'Zora River'), - 'GS Zora\'s Fountain Above the Log': (None, None, 0x04, 'GS Token', 0x11, 'Zora\'s Fountain'), - 'GS Zora River Above Bridge': (None, None, 0x08, 'GS Token', 0x11, 'Zora River'), - 'GS Zora River Near Raised Grottos': (None, None, 0x10, 'GS Token', 0x11, 'Zora River'), - 'GS Zora\'s Fountain Hidden Cave': (None, None, 0x20, 'GS Token', 0x11, 'Zora\'s Fountain'), - 'GS Zora\'s Domain Frozen Waterfall': (None, None, 0x40, 'GS Token', 0x11, 'Zora\'s Domain'), - 'GS Zora\'s Fountain Tree': (None, None, 0x80, 'GS Token', 0x11, 'Zora\'s Fountain'), - - 'GS Lake Hylia Bean Patch': (None, None, 0x01, 'GS Token', 0x12, 'Lake Hylia'), - 'GS Lake Hylia Small Island': (None, None, 0x02, 'GS Token', 0x12, 'Lake Hylia'), - 'GS Lake Hylia Lab Wall': (None, None, 0x04, 'GS Token', 0x12, 'Lake Hylia'), - 'GS Lab Underwater Crate': (None, None, 0x08, 'GS Token', 0x12, 'Lake Hylia'), - 'GS Lake Hylia Giant Tree': (None, None, 0x10, 'GS Token', 0x12, 'Lake Hylia'), - - 'GS Gerudo Valley Bean Patch': (None, None, 0x01, 'GS Token', 0x13, 'Gerudo Valley'), - 'GS Gerudo Valley Small Bridge': (None, None, 0x02, 'GS Token', 0x13, 'Gerudo Valley'), - 'GS Gerudo Valley Pillar': (None, None, 0x04, 'GS Token', 0x13, 'Gerudo Valley'), - 'GS Gerudo Valley Behind Tent': (None, None, 0x08, 'GS Token', 0x13, 'Gerudo Valley'), - - 'GS Gerudo Fortress Archery Range': (None, None, 0x01, 'GS Token', 0x14, 'Gerudo Fortress'), - 'GS Gerudo Fortress Top Floor': (None, None, 0x02, 'GS Token', 0x14, 'Gerudo Fortress'), - - 'GS Desert Colossus Bean Patch': (None, None, 0x01, 'GS Token', 0x15, 'Desert Colossus'), - 'GS Wasteland Ruins': (None, None, 0x02, 'GS Token', 0x15, 'Haunted Wasteland'), - 'GS Desert Colossus Hill': (None, None, 0x04, 'GS Token', 0x15, 'Desert Colossus'), - 'GS Desert Colossus Tree': (None, None, 0x08, 'GS Token', 0x15, 'Desert Colossus'), - } +location_table = { + 'Kokiri Sword Chest': (0x20A6142, None, 0x04E0, 'Chest', 0x55, 'Kokiri Forest'), + 'Mido Chest Top Left': (0x2F7B08A, None, 0x59A0, 'Chest', 0x28, 'Kokiri Forest'), + 'Mido Chest Top Right': (0x2F7B09A, None, 0x59A1, 'Chest', 0x28, 'Kokiri Forest'), + 'Mido Chest Bottom Left': (0x2F7B0AA, None, 0x5982, 'Chest', 0x28, 'Kokiri Forest'), + 'Mido Chest Bottom Right': (0x2F7B0BA, None, 0x5903, 'Chest', 0x28, 'Kokiri Forest'), + 'Shield Grave Chest': (0x328B096, None, 0x5540, 'Chest', 0x40, 'the Graveyard'), + 'Heart Piece Grave Chest': (0x2D0A056, None, 0xA7C0, 'Chest', 0x3F, 'the Graveyard'), + 'Composer Grave Chest': (0x332D0EA, None, 0x8020, 'Chest', 0x41, 'the Graveyard'), + 'Death Mountain Bombable Chest': (0x223C3CA, 0x223C7B2, 0x5AA1, 'Chest', 0x60, 'Death Mountain Trail'), + 'Goron City Leftmost Maze Chest': (0x227C23A, 0x227C70A, 0x5AC0, 'Chest', 0x62, 'Goron City'), + 'Goron City Left Maze Chest': (0x227C24A, 0x227C71A, 0x5AA1, 'Chest', 0x62, 'Goron City'), + 'Goron City Right Maze Chest': (0x227C25A, 0x227C72A, 0x5AA2, 'Chest', 0x62, 'Goron City'), + 'Zoras Domain Torch Run': (0x2103166, None, 0xB7C0, 'Chest', 0x58, 'Zora\'s Domain'), + 'Hookshot Chest': (0x3063092, None, 0x1100, 'Chest', 0x48, 'the Graveyard'), + 'Gerudo Valley Hammer Rocks Chest': (0x213D676, None, 0x5AA0, 'Chest', 0x5A, 'Gerudo Valley'), + 'Gerudo Fortress Rooftop Chest': (0x21BD4AA, 0x21BD6EA, 0x07C0, 'Chest', 0x5D, 'Gerudo Fortress'), + 'Haunted Wasteland Structure Chest': (0x21E20DE, None, 0x8AA0, 'Chest', 0x5E, 'Haunted Wasteland'), + 'Redead Grotto Chest': (0x26CF076, None, 0x7ACA, 'Chest', 0x3E, 'Kakariko Village'), + 'Wolfos Grotto Chest': (0x26EB076, None, 0x7AB1, 'Chest', 0x3E, 'Sacred Forest Meadow'), + 'Deku Tree Lobby Chest': (0x24A7146, None, 0x0823, 'Chest', 0x00, 'Deku Tree'), + 'Deku Tree Slingshot Chest': (0x24C20C6, None, 0x00A1, 'Chest', 0x00, 'Deku Tree'), + 'Deku Tree Slingshot Room Side Chest': (0x24C20D6, None, 0x5905, 'Chest', 0x00, 'Deku Tree'), + 'Deku Tree Compass Chest': (0x25040D6, None, 0x0802, 'Chest', 0x00, 'Deku Tree'), + 'Deku Tree Compass Room Side Chest': (0x25040E6, None, 0x5906, 'Chest', 0x00, 'Deku Tree'), + 'Deku Tree Basement Chest': (0x24C8166, None, 0x5904, 'Chest', 0x00, 'Deku Tree'), + 'Dodongos Cavern Map Chest': (0x1F2819E, None, 0x0828, 'Chest', 0x01, 'Dodongo\'s Cavern'), + 'Dodongos Cavern Compass Chest': (0x1FAF0AA, None, 0x0805, 'Chest', 0x01, 'Dodongo\'s Cavern'), + 'Dodongos Cavern Bomb Flower Platform': (0x1F890DE, None, 0x59C6, 'Chest', 0x01, 'Dodongo\'s Cavern'), + 'Dodongos Cavern Bomb Bag Chest': (0x1F890CE, None, 0x0644, 'Chest', 0x01, 'Dodongo\'s Cavern'), + 'Dodongos Cavern End of Bridge Chest': (0x1F281CE, None, 0x552A, 'Chest', 0x01, 'Dodongo\'s Cavern'), + 'Chest Above King Dodongo': (0x2EB00BA, None, 0x5020, 'Chest', 0x12, 'Dodongo\'s Cavern'), + 'Boomerang Chest': (0x278A0BA, None, 0x10C1, 'Chest', 0x02, 'Jabu Jabu\'s Belly'), + 'Jabu Jabus Belly Map Chest': (0x278E08A, None, 0x1822, 'Chest', 0x02, 'Jabu Jabu\'s Belly'), + 'Jabu Jabus Belly Compass Chest': (0x279608A, None, 0xB804, 'Chest', 0x02, 'Jabu Jabu\'s Belly'), + 'Forest Temple First Chest': (0x23E5092, None, 0x5843, 'Chest', 0x03, 'Forest Temple'), + 'Forest Temple Chest Behind Lobby': (0x2415082, None, 0x7840, 'Chest', 0x03, 'Forest Temple'), + 'Forest Temple Well Chest': (0x244A062, None, 0x5849, 'Chest', 0x03, 'Forest Temple'), + 'Forest Temple Map Chest': (0x2455076, None, 0x1821, 'Chest', 0x03, 'Forest Temple'), + 'Forest Temple Outside Hookshot Chest': (0x241F0D6, None, 0x5905, 'Chest', 0x03, 'Forest Temple'), + 'Forest Temple Falling Room Chest': (0x247E09E, None, 0x5947, 'Chest', 0x03, 'Forest Temple'), + 'Forest Temple Block Push Chest': (0x245B096, None, 0x8964, 'Chest', 0x03, 'Forest Temple'), + 'Forest Temple Boss Key Chest': (0xCB0DC2, None, 0x27EE, 'Chest', 0x03, 'Forest Temple'), + 'Forest Temple Floormaster Chest': (0x2490072, None, 0x7842, 'Chest', 0x03, 'Forest Temple'), + 'Forest Temple Bow Chest': (0x2415092, None, 0xB08C, 'Chest', 0x03, 'Forest Temple'), + 'Forest Temple Red Poe Chest': (0x246607E, None, 0x784D, 'Chest', 0x03, 'Forest Temple'), + 'Forest Temple Blue Poe Chest': (0x246F07E, None, 0x180F, 'Chest', 0x03, 'Forest Temple'), + 'Forest Temple Near Boss Chest': (0x2486082, None, 0x592B, 'Chest', 0x03, 'Forest Temple'), + 'Bottom of the Well Front Left Hidden Wall': (0x32D317E, None, 0x5848, 'Chest', 0x08, 'Bottom of the Well'), + 'Bottom of the Well Front Center Bombable': (0x32D30FE, None, 0x5062, 'Chest', 0x08, 'Bottom of the Well'), + 'Bottom of the Well Right Bottom Hidden Wall': (0x32D314E, None, 0x5845, 'Chest', 0x08, 'Bottom of the Well'), + 'Bottom of the Well Center Large Chest': (0x32D30EE, None, 0x0801, 'Chest', 0x08, 'Bottom of the Well'), + 'Bottom of the Well Center Small Chest': (0x32D31AE, None, 0x504E, 'Chest', 0x08, 'Bottom of the Well'), + 'Bottom of the Well Back Left Bombable': (0x32D313E, None, 0x5C84, 'Chest', 0x08, 'Bottom of the Well'), + 'Bottom of the Well Defeat Boss': (0x32FB0AA, None, 0x1143, 'Chest', 0x08, 'Bottom of the Well'), + 'Bottom of the Well Invisible Chest': (0x32FB0BA, None, 0x6AD4, 'Chest', 0x08, 'Bottom of the Well'), + 'Bottom of the Well Underwater Front Chest': (0x32D31BE, None, 0x5CD0, 'Chest', 0x08, 'Bottom of the Well'), + 'Bottom of the Well Underwater Left Chest': (0x32D318E, None, 0x5909, 'Chest', 0x08, 'Bottom of the Well'), + 'Bottom of the Well Basement Chest': (0x32E9252, None, 0x0827, 'Chest', 0x08, 'Bottom of the Well'), + 'Bottom of the Well Locked Pits': (0x32F90AA, None, 0x552A, 'Chest', 0x08, 'Bottom of the Well'), + 'Bottom of the Well Behind Right Grate': (0x32D319E, None, 0x554C, 'Chest', 0x08, 'Bottom of the Well'), + 'Fire Temple Chest Near Boss': (0x230808A, None, 0x5841, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple Fire Dancer Chest': (0x2318082, None, 0x7CC0, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple Boss Key Chest': (0x238A0D6, None, 0x27EC, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple Big Lava Room Bombable Chest': (0x23AD076, None, 0x5842, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple Big Lava Room Open Chest': (0x239D0A6, None, 0x5844, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple Boulder Maze Lower Chest': (0x2323152, None, 0x5843, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple Boulder Maze Upper Chest': (0x2323182, None, 0x5846, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple Boulder Maze Side Room': (0x23B40B2, None, 0x5848, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple Boulder Maze Bombable Pit': (0x231B0E2, None, 0x584B, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple Scarecrow Chest': (0x2339082, None, 0x5ACD, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple Map Chest': (0x237E0C2, None, 0x082A, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple Compass Chest': (0x23C1082, None, 0x0807, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple Highest Goron Chest': (0x2365066, None, 0x5849, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple Megaton Hammer Chest': (0x236C102, None, 0x01A5, 'Chest', 0x04, 'Fire Temple'), + 'Ice Cavern Map Chest': (0x2C4016A, None, 0x0820, 'Chest', 0x09, 'Ice Cavern'), + 'Ice Cavern Compass Chest': (0x2C4E236, None, 0x0801, 'Chest', 0x09, 'Ice Cavern'), + 'Ice Cavern Iron Boots Chest': (0x2C380A2, None, 0x15C2, 'Chest', 0x09, 'Ice Cavern'), + 'Water Temple Map Chest': (0x26690A6, None, 0x1822, 'Chest', 0x05, 'Water Temple'), + 'Water Temple Compass Chest': (0x25FC0D2, None, 0x0809, 'Chest', 0x05, 'Water Temple'), + 'Water Temple Torches Chest': (0x26640A6, None, 0x7841, 'Chest', 0x05, 'Water Temple'), + 'Water Temple Dragon Chest': (0x261F0BA, None, 0x584A, 'Chest', 0x05, 'Water Temple'), + 'Water Temple Central Bow Target Chest': (0x266D072, None, 0x5848, 'Chest', 0x05, 'Water Temple'), + 'Water Temple Central Pillar Chest': (0x25EF0D6, None, 0x5846, 'Chest', 0x05, 'Water Temple'), + 'Water Temple Cracked Wall Chest': (0x265B0A6, None, 0x5840, 'Chest', 0x05, 'Water Temple'), + 'Water Temple Boss Key Chest': (0x2657066, None, 0x27E5, 'Chest', 0x05, 'Water Temple'), + 'Water Temple Dark Link Chest': (0x261907A, None, 0x0127, 'Chest', 0x05, 'Water Temple'), + 'Water Temple River Chest': (0x26740DE, None, 0x5843, 'Chest', 0x05, 'Water Temple'), + 'Shadow Temple Map Chest': (0x27CC0AA, None, 0x1821, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple Hover Boots Chest': (0x27DC0CA, None, 0x15E7, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple Compass Chest': (0x27EC09E, None, 0x1803, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple Early Silver Rupee Chest': (0x27E40F6, None, 0x5842, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple Invisible Blades Visible Chest': (0x282212A, None, 0x588C, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple Invisible Blades Invisible Chest': (0x282211A, None, 0x6976, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple Falling Spikes Lower Chest': (0x2801132, None, 0x5945, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple Falling Spikes Upper Chest': (0x2801142, None, 0x5886, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple Falling Spikes Switch Chest': (0x2801122, None, 0x8844, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple Invisible Spikes Chest': (0x28090EE, None, 0x7889, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple Wind Hint Chest': (0x283609A, None, 0x6955, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple After Wind Enemy Chest': (0x28390FE, None, 0x7888, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple After Wind Hidden Chest': (0x28390EE, None, 0x6854, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple Spike Walls Left Chest': (0x28130B6, None, 0x588A, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple Boss Key Chest': (0x28130A6, None, 0x27EB, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple Hidden Floormaster Chest': (0x282508A, None, 0x784D, 'Chest', 0x07, 'Shadow Temple'), + 'Gerudo Training Grounds Lobby Left Chest': (0x28870CA, None, 0x8893, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Lobby Right Chest': (0x28870BA, None, 0x8947, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Stalfos Chest': (0x28970AA, None, 0x8840, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Beamos Chest': (0x28C715E, None, 0x8841, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Hidden Ceiling Chest': (0x28D010E, None, 0x584B, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Maze Path First Chest': (0x28D00CE, None, 0x5AA6, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Maze Path Second Chest': (0x28D00FE, None, 0x59CA, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Maze Path Third Chest': (0x28D00EE, None, 0x5969, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Maze Path Final Chest': (0x28D011E, None, 0x0B2C, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Maze Right Central Chest': (0x28D00BE, None, 0x5D45, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Maze Right Side Chest': (0x28D00DE, None, 0x5968, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Underwater Silver Rupee Chest': (0x28D91D6, None, 0x884D, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Hammer Room Clear Chest': (0x28B91AE, None, 0x7952, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Hammer Room Switch Chest': (0x28B919E, None, 0x5850, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Eye Statue Chest': (0x28AE09E, None, 0x8843, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Near Scarecrow Chest': (0x28D00AE, None, 0x5844, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Before Heavy Block Chest': (0x28A611E, None, 0x7971, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Heavy Block First Chest': (0x28DD0BE, None, 0x7ACF, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Heavy Block Second Chest': (0x28DD0AE, None, 0x788E, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Heavy Block Third Chest': (0x28DD08E, None, 0x6854, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Heavy Block Fourth Chest': (0x28DD09E, None, 0x5F82, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Spirit Temple Child Left Chest': (0x2B190BA, None, 0x5528, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple Child Right Chest': (0x2B13182, None, 0x8840, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple Compass Chest': (0x2B6B08A, None, 0x3804, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple Early Adult Right Chest': (0x2B6207A, None, 0x5847, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple First Mirror Right Chest': (0x2B700C6, None, 0x890D, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple First Mirror Left Chest': (0x2B700D6, None, 0x8F8E, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple Map Chest': (0x2B25126, None, 0xB823, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple Child Climb East Chest': (0x2B1D122, None, 0x8066, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple Child Climb North Chest': (0x2B1D132, None, 0x852C, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple Sun Block Room Chest': (0x2B481B2, None, 0x8841, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple Statue Hand Chest': (0x2B25136, None, 0x8842, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple NE Main Room Chest': (0x2B25146, None, 0x888F, 'Chest', 0x06, 'Spirit Temple'), + 'Silver Gauntlets Chest': (0x21A02DE, 0x21A06F2, 0x06AB, 'Chest', 0x5C, 'Desert Colossus'), + 'Mirror Shield Chest': (0x21A02CE, 0x21A06E2, 0x3569, 'Chest', 0x5C, 'Desert Colossus'), + 'Spirit Temple Near Four Armos Chest': (0x2B9F076, None, 0x5845, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple Hallway Left Invisible Chest': (0x2B900B6, None, 0x6914, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple Hallway Right Invisible Chest': (0x2B900C6, None, 0x6915, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple Boss Key Chest': (0x2BA4162, None, 0x27EA, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple Topmost Chest': (0x2BCF0FE, None, 0x8CF2, 'Chest', 0x06, 'Spirit Temple'), + 'Ganons Castle Forest Trial Chest': (0x31F106E, None, 0x7889, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle Water Trial Left Chest': (0x31D7236, None, 0x5F87, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle Water Trial Right Chest': (0x31D7226, None, 0x5906, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle Shadow Trial First Chest': (0x32350CA, None, 0x5888, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle Shadow Trial Second Chest': (0x32350BA, None, 0x36C5, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle Spirit Trial First Chest': (0x3268132, None, 0x8D72, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle Spirit Trial Second Chest': (0x3268142, None, 0x6954, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle Light Trial First Left Chest': (0x321B11E, None, 0x588C, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle Light Trial Second Left Chest': (0x321B10E, None, 0x5F8B, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle Light Trial Third Left Chest': (0x321B12E, None, 0x590D, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle Light Trial First Right Chest': (0x321B13E, None, 0x5F8E, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle Light Trial Second Right Chest': (0x321B0FE, None, 0x596A, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle Light Trial Third Right Chest': (0x321B14E, None, 0x5F8F, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle Light Trail Invisible Enemies Chest': (0x321B15E, None, 0x7850, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle Light Trial Lullaby Chest': (0x321B17E, None, 0x8851, 'Chest', 0x0D, 'my castle'), + 'Ganons Tower Boss Key Chest': (0x2F040EE, None, 0x27EB, 'Chest', 0x0A, 'my tower'), + 'Field West Castle Town Grotto Chest': (None, None, 0x00, 'Chest', 0x3E, 'Hyrule Field'), + 'Remote Southern Grotto Chest': (None, None, 0x02, 'Chest', 0x3E, 'Hyrule Field'), + 'Field Near Lake Outside Fence Grotto Chest': (None, None, 0x03, 'Chest', 0x3E, 'Hyrule Field'), + 'Kakariko Back Grotto Chest': (None, None, 0x08, 'Chest', 0x3E, 'Kakariko Village'), + 'Zora River Plateau Open Grotto Chest': (None, None, 0x09, 'Chest', 0x3E, 'Zora River'), + 'Kokiri Forest Storms Grotto Chest': (None, None, 0x0C, 'Chest', 0x3E, 'Kokiri Forest'), + 'Lost Woods Generic Grotto Chest': (None, None, 0x14, 'Chest', 0x3E, 'the Lost Woods'), + 'Mountain Storms Grotto Chest': (None, None, 0x17, 'Chest', 0x3E, 'Death Mountain Trail'), + 'Top of Crater Grotto Chest': (None, None, 0x1A, 'Chest', 0x3E, 'Death Mountain Crater'), + 'Impa at Castle': (0x2E8E925, 0x2E8E925, 0x67, 'Song', 0x51, 'Hyrule Castle'), + 'Song from Malon': (0xD7EB53, 0xD7EBCF, 0x68, 'Song', 0x63, 'Lon Lon Ranch'), + 'Song from Composer Grave': (0x332A871, 0x332A871, 0x6A, 'Song', 0x41, 'the Graveyard'), + 'Song from Saria': (0x20B1DB1, 0x20B1DB1, 0x69, 'Song', 0x56, 'Sacred Forest Meadow'), + 'Song from Ocarina of Time': (0x252FC89, 0x252FC89, 0x6B, 'Song', 0x51, 'Hyrule Field'), + 'Song at Windmill': (0xE42C07, 0xE42B8B, 0x6C, 'Song', 0x48, 'Kakariko'), + 'Sheik Forest Song': (0x20B0809, 0x20B0809, 0x61, 'Song', 0x56, 'Sacred Forest Meadow'), + 'Sheik at Temple': (0x2531329, 0x2531329, 0x66, 'Song', 0x43, 'Temple of Time'), + 'Sheik in Crater': (0x224D7F1, 0x224D7F1, 0x62, 'Song', 0x61, 'Death Mountain Crater'), + 'Sheik in Ice Cavern': (0x2BEC889, 0x2BEC889, 0x63, 'Song', 0x09, 'Ice Cavern'), + 'Sheik in Kakariko': (0x2000FE1, 0x2000FE1, 0x65, 'Song', 0x52, 'Kakariko'), + 'Sheik at Colossus': (0x218C57D, 0x218C57D, 0x64, 'Song', 0x5C, 'Desert Colossus'), + 'Gift from Saria': (None, None, 0x3B, 'NPC', 0x5B, 'the Lost Woods'), + 'Malon Egg': (None, None, 0x47, 'NPC', 0x5F, 'Hyrule Castle'), + 'Zeldas Letter': (None, None, None, 'NPC', None, 'Hyrule Castle'), + 'Zelda': (0x3481400, None, 0x5A, 'NPC', 0x43, 'the Temple of Time'), + 'Zoras Fountain Fairy Reward': (0x3481401, None, 0x5D, 'NPC', 0x3D, 'Zora\'s Fountain'), + 'Hyrule Castle Fairy Reward': (0x3481402, None, 0x5C, 'NPC', 0x3D, 'Hyrule Castle'), + 'Desert Colossus Fairy Reward': (0x3481403, None, 0x5E, 'NPC', 0x3D, 'Desert Colossus'), + 'Mountain Summit Fairy Reward': (0x3481404, None, 0x51, 'NPC', 0x3B, 'Death Mountain Trail'), + 'Crater Fairy Reward': (0x3481405, None, 0x52, 'NPC', 0x3B, 'Death Mountain Crater'), + 'Ganons Castle Fairy Reward': (0x3481406, None, 0x53, 'NPC', 0x3B, 'outside my castle'), + 'Treasure Chest Game': (None, None, 0x0A, 'Chest', 0x10, 'the market'), + 'Darunias Joy': (0xCF1BFF, None, 0x54, 'NPC', 0x62, 'Goron City'), + 'Diving Minigame': (0xE01A2B, 0xE01AA7, 0x37, 'NPC', 0x58, 'Zora\'s Domain'), + 'Child Fishing': (0xDCBFBF, None, 0x3E, 'NPC', 0x49, 'Lake Hylia'), + 'Adult Fishing': (0xDCC087, None, 0x38, 'NPC', 0x49, 'Lake Hylia'), + 'Diving in the Lab': (0xE2CB97, None, 0x3E, 'NPC', 0x38, 'Lake Hylia'), + 'Link the Goron': (0xED30EB, 0xED64F3, 0x2C, 'NPC', 0x62, 'Goron City'), + 'King Zora Thawed': (0xE56AD7, None, 0x2D, 'NPC', 0x58, 'Zora\'s Domain'), + 'Bombchu Bowling Bomb Bag': (0xE2F093, None, 0x34, 'NPC', 0x4B, 'the market'), + 'Bombchu Bowling Piece of Heart': (0xE2F097, None, 0x3E, 'NPC', 0x4B, 'the market'), + 'Dog Lady': (0xE65163, 0xE661BB, 0x3E, 'NPC', 0x35, 'the market'), + 'Skull Kid': (0xDF0F33, 0xDF0E9B, 0x3E, 'NPC', 0x5B, 'the Lost Woods'), + 'Ocarina Memory Game': (0xDF264F, None, 0x76, 'NPC', 0x5B, 'the Lost Woods'), + '10 Gold Skulltulla Reward': (0xEA7173, None, 0x45, 'NPC', 0x50, 'Kakariko Village'), + '20 Gold Skulltulla Reward': (0xEA7175, None, 0x39, 'NPC', 0x50, 'Kakariko Village'), + '30 Gold Skulltulla Reward': (0xEA7177, None, 0x46, 'NPC', 0x50, 'Kakariko Village'), + '40 Gold Skulltulla Reward': (0xEA7179, None, 0x03, 'NPC', 0x50, 'Kakariko Village'), + '50 Gold Skulltulla Reward': (0xEA717B, None, 0x3E, 'NPC', 0x50, 'Kakariko Village'), + 'Man on Roof': (0xE587E3, None, 0x3E, 'NPC', 0x52, 'Kakariko Village'), + 'Frog Ocarina Game': (0xDB13D3, None, 0x76, 'NPC', 0x54, 'Zora River'), + 'Frogs in the Rain': (0xDB1387, None, 0x3E, 'NPC', 0x54, 'Zora River'), + 'Horseback Archery 1000 Points': (0xE12B6F, 0xE12AA3, 0x3E, 'NPC', 0x5D, 'Gerudo Fortress'), + 'Horseback Archery 1500 Points': (0xE12BC3, 0xE12AFB, 0x30, 'NPC', 0x5D, 'Gerudo Fortress'), + 'Child Shooting Gallery': (0xD35EF3, None, 0x60, 'NPC', 0x42, 'the market'), + 'Adult Shooting Gallery': (0xD35F5B, None, 0x30, 'NPC', 0x42, 'Kakariko Village'), + 'Target in Woods': (0xE59CDF, None, 0x60, 'NPC', 0x5B, 'the Lost Woods'), + 'Deku Theater Skull Mask': (0xEC9A87, None, 0x77, 'NPC', 0x3E, 'the Lost Woods'), + 'Deku Theater Mask of Truth': (0xEC9CE7, None, 0x7A, 'NPC', 0x3E, 'the Lost Woods'), + 'Deku Salesman Woods': (0xDF8073, None, 0x77, 'NPC', 0x5B, 'the Lost Woods'), + 'Deku Salesman Lost Woods Grotto': (0xDF80E7, None, 0x79, 'NPC', 0x3E, 'the Lost Woods'), + 'Deku Salesman Hyrule Field Grotto': (0xDF86AB, None, 0x3E, 'NPC', 0x3E, 'Hyrule Field'), + 'Anju as Adult': (0xE1EABB, None, 0x1D, 'NPC', 0x52, 'Kakariko Village'), + 'Biggoron': (0xED338F, 0xED650F, 0x57, 'NPC', 0x60, 'Death Mountain Trail'), + 'Anjus Chickens': (0xE1E7A7, None, 0x0F, 'NPC', 0x52, 'Kakariko Village'), + 'Talons Chickens': (0xCC14EB, None, 0x14, 'NPC', 0x4C, 'Lon Lon Ranch'), + '10 Big Poes': (0xEE6AEF, None, 0x0F, 'NPC', 0x4D, 'the market'), + 'Rolling Goron as Child': (0xED296F, 0xED6503, 0x34, 'NPC', 0x62, 'Goron City'), + 'Lake Hylia Sun': (0xE9E1F2, None, 0x5B08, 'Chest', 0x57, 'Lake Hylia'), + 'Underwater Bottle': (0xDE10FB, None, 0x15, 'NPC', 0x57, 'Lake Hylia'), + 'Shadow Temple Freestanding Key': (None, None, 0x01, 'Collectable', 0x07, 'Shadow Temple'), + 'Bottom of the Well Freestanding Key': (None, None, 0x01, 'Collectable', 0x08, 'Bottom of the Well'), + 'Gerudo Training Grounds Freestanding Key': (None, None, 0x01, 'Collectable', 0x0B, 'Gerudo Training Grounds'), + 'Ice Cavern Freestanding PoH': (None, None, 0x01, 'Collectable', 0x09, 'Ice Cavern'), + 'Impa House Freestanding PoH': (None, None, 0x01, 'Collectable', 0x37, 'Kakariko Village'), + 'Tektite Grotto Freestanding PoH': (None, None, 0x01, 'Collectable', 0x3E, 'Hyrule Field'), + 'Windmill Freestanding PoH': (None, None, 0x01, 'Collectable', 0x48, 'Kakariko Village'), + 'Dampe Race Freestanding PoH': (None, None, 0x07, 'Collectable', 0x48, 'the Graveyard'), + 'Lon Lon Tower Freestanding PoH': (None, None, 0x01, 'Collectable', 0x4C, 'Lon Lon Ranch'), + 'Graveyard Freestanding PoH': (None, None, 0x04, 'Collectable', 0x53, 'the Graveyard'), + 'Gravedigging Tour': (None, None, 0x00, 'Collectable', 0x53, 'the Graveyard'), + 'Zora River Lower Freestanding PoH': (None, None, 0x04, 'Collectable', 0x54, 'Zora River'), + 'Zora River Upper Freestanding PoH': (None, None, 0x0B, 'Collectable', 0x54, 'Zora River'), + 'Lake Hylia Freestanding PoH': (None, None, 0x1E, 'Collectable', 0x57, 'Lake Hylia'), + 'Zoras Fountain Iceberg Freestanding PoH': (None, None, 0x01, 'Collectable', 0x59, 'Zora\'s Fountain'), + 'Zoras Fountain Bottom Freestanding PoH': (None, None, 0x14, 'Collectable', 0x59, 'Zora\'s Fountain'), + 'Gerudo Valley Waterfall Freestanding PoH': (None, None, 0x01, 'Collectable', 0x5A, 'Gerudo Valley'), + 'Gerudo Valley Crate Freestanding PoH': (None, None, 0x02, 'Collectable', 0x5A, 'Gerudo Valley'), + 'Colossus Freestanding PoH': (None, None, 0x0D, 'Collectable', 0x5C, 'Desert Colossus'), + 'DM Trail Freestanding PoH': (None, None, 0x1E, 'Collectable', 0x60, 'Death Mountain Trail'), + 'DM Crater Wall Freestanding PoH': (None, None, 0x02, 'Collectable', 0x61, 'Death Mountain Crater'), + 'DM Crater Volcano Freestanding PoH': (None, None, 0x08, 'Collectable', 0x61, 'Death Mountain Crater'), + 'Goron City Pot Freestanding PoH': (None, None, 0x1F, 'Collectable', 0x62, 'Goron City'), + 'Gerudo Fortress North F1 Carpenter': (None, None, 0x0C, 'Collectable', 0x0C, 'Gerudo Fortress'), + 'Gerudo Fortress North F2 Carpenter': (None, None, 0x0A, 'Collectable', 0x0C, 'Gerudo Fortress'), + 'Gerudo Fortress South F1 Carpenter': (None, None, 0x0E, 'Collectable', 0x0C, 'Gerudo Fortress'), + 'Gerudo Fortress South F2 Carpenter': (None, None, 0x0F, 'Collectable', 0x0C, 'Gerudo Fortress'), + 'Gerudo Fortress Membership Card': (None, None, 0x3A, 'NPC', 0x0C, 'Gerudo Fortress'), + 'Queen Gohma Heart': (None, None, 0x4F, 'BossHeart', 0x11, 'Deku Tree'), + 'King Dodongo Heart': (None, None, 0x4F, 'BossHeart', 0x12, 'Dodongo\'s Cavern'), + 'Barinade Heart': (None, None, 0x4F, 'BossHeart', 0x13, 'Jabu Jabu\'s Belly'), + 'Phantom Ganon Heart': (None, None, 0x4F, 'BossHeart', 0x14, 'Forest Temple'), + 'Volvagia Heart': (None, None, 0x4F, 'BossHeart', 0x15, 'Fire Temple'), + 'Morpha Heart': (None, None, 0x4F, 'BossHeart', 0x16, 'Water Temple'), + 'Twinrova Heart': (None, None, 0x4F, 'BossHeart', 0x17, 'Spirit Temple'), + 'Bongo Bongo Heart': (None, None, 0x4F, 'BossHeart', 0x18, 'Shadow Temple'), + 'Magic Bean Salesman': (None, None, None, 'Event', None, 'Zora\'s River'), + 'King Zora Moves': (None, None, None, 'Event', None, 'Zora\'s Domain'), + 'Ocarina of Time': (None, None, 0x0C, 'NPC', 0x51, 'Hyrule Field'), + 'Master Sword Pedestal': (None, None, None, 'Event', None, 'the Temple of Time'), + 'Epona': (None, None, None, 'Event', None, 'Lon Lon Ranch'), + 'Gerudo Fortress Carpenter Rescue': (None, None, None, 'Event', None, 'Gerudo Fortress'), + 'Ganons Castle Forest Trial Clear': (None, None, None, 'Event', None, 'Ganon\'s Castle'), + 'Ganons Castle Fire Trial Clear': (None, None, None, 'Event', None, 'Ganon\'s Castle'), + 'Ganons Castle Water Trial Clear': (None, None, None, 'Event', None, 'Ganon\'s Castle'), + 'Ganons Castle Shadow Trial Clear': (None, None, None, 'Event', None, 'Ganon\'s Castle'), + 'Ganons Castle Spirit Trial Clear': (None, None, None, 'Event', None, 'Ganon\'s Castle'), + 'Ganons Castle Light Trial Clear': (None, None, None, 'Event', None, 'Ganon\'s Castle'), + + # I don't think the addresses matter for Link's Pocket anymore, but they can't be None for some reason + 'Links Pocket': (0x34806FB, 0x34806FF, None, 'Boss', None, 'Link\'s Pocket'), + 'Queen Gohma': (0xCA315F, 0x2079571, 0x6C, 'Boss', None, 'Deku Tree'), + 'King Dodongo': (0xCA30DF, 0x2223309, 0x6D, 'Boss', None, 'Dodongo\'s Cavern'), + 'Barinade': (0xCA36EB, 0x2113C19, 0x6E, 'Boss', None, 'Jabu Jabu\'s Belly'), + 'Phantom Ganon': (0xCA3D07, 0xD4ED79, 0x66, 'Boss', None, 'Shadow Temple'), + 'Volvagia': (0xCA3D93, 0xD10135, 0x67, 'Boss', None, 'Fire Temple'), + 'Morpha': (0xCA3E1F, 0xD5A3A9, 0x68, 'Boss', None, 'Water Temple'), + 'Twinrova': (0xCA3EB3, 0xD39FF1, 0x69, 'Boss', None, 'Spirit Temple'), + 'Bongo Bongo': (0xCA3F43, 0xD13E19, 0x6A, 'Boss', None, 'Shadow Temple'), + 'Ganon': (None, None, None, 'Boss', None, 'Ganon\'s Castle'), + # note that the scene for skulltulas is not the actual scene the token appears in + # rather, it is the index of the grouping used when storing skulltula collection + # for example, zora river, zora's domain, and zora fountain are all a single 'scene' for skulltulas + 'GS Deku Tree Basement Back Room': (None, None, 0x01, 'GS Token', 0x00, 'Deku Tree'), + 'GS Deku Tree Basement Gate': (None, None, 0x02, 'GS Token', 0x00, 'Deku Tree'), + 'GS Deku Tree Basement Vines': (None, None, 0x04, 'GS Token', 0x00, 'Deku Tree'), + 'GS Deku Tree Compass Room': (None, None, 0x08, 'GS Token', 0x00, 'Deku Tree'), + + 'GS Dodongo\'s Cavern Vines Above Stairs': (None, None, 0x01, 'GS Token', 0x01, 'Dodongo\'s Cavern'), + 'GS Dodongo\'s Cavern Scarecrow': (None, None, 0x02, 'GS Token', 0x01, 'Dodongo\'s Cavern'), + 'GS Dodongo\'s Cavern Alcove Above Stairs': (None, None, 0x04, 'GS Token', 0x01, 'Dodongo\'s Cavern'), + 'GS Dodongo\'s Cavern Back Room': (None, None, 0x08, 'GS Token', 0x01, 'Dodongo\'s Cavern'), + 'GS Dodongo\'s Cavern East Side Room': (None, None, 0x10, 'GS Token', 0x01, 'Dodongo\'s Cavern'), + + 'GS Jabu Jabu Lobby Basement Lower': (None, None, 0x01, 'GS Token', 0x02, 'Jabu Jabu\'s Belly'), + 'GS Jabu Jabu Lobby Basement Upper': (None, None, 0x02, 'GS Token', 0x02, 'Jabu Jabu\'s Belly'), + 'GS Jabu Jabu Near Boss': (None, None, 0x04, 'GS Token', 0x02, 'Jabu Jabu\'s Belly'), + 'GS Jabu Jabu Water Switch Room': (None, None, 0x08, 'GS Token', 0x02, 'Jabu Jabu\'s Belly'), + + 'GS Forest Temple Outdoor East': (None, None, 0x01, 'GS Token', 0x03, 'Forest Temple'), + 'GS Forest Temple First Room': (None, None, 0x02, 'GS Token', 0x03, 'Forest Temple'), + 'GS Forest Temple Outdoor West': (None, None, 0x04, 'GS Token', 0x03, 'Forest Temple'), + 'GS Forest Temple Lobby': (None, None, 0x08, 'GS Token', 0x03, 'Forest Temple'), + 'GS Forest Temple Basement': (None, None, 0x10, 'GS Token', 0x03, 'Forest Temple'), + + 'GS Fire Temple Song of Time Room': (None, None, 0x01, 'GS Token', 0x04, 'Fire Temple'), + 'GS Fire Temple Basement': (None, None, 0x02, 'GS Token', 0x04, 'Fire Temple'), + 'GS Fire Temple Unmarked Bomb Wall': (None, None, 0x04, 'GS Token', 0x04, 'Fire Temple'), + 'GS Fire Temple East Tower Top': (None, None, 0x08, 'GS Token', 0x04, 'Fire Temple'), + 'GS Fire Temple East Tower Climb': (None, None, 0x10, 'GS Token', 0x04, 'Fire Temple'), + + 'GS Water Temple South Basement': (None, None, 0x01, 'GS Token', 0x05, 'Water Temple'), + 'GS Water Temple Falling Platform Room': (None, None, 0x02, 'GS Token', 0x05, 'Water Temple'), + 'GS Water Temple Central Room': (None, None, 0x04, 'GS Token', 0x05, 'Water Temple'), + 'GS Water Temple Near Boss Key Chest': (None, None, 0x08, 'GS Token', 0x05, 'Water Temple'), + 'GS Water Temple Serpent River': (None, None, 0x10, 'GS Token', 0x05, 'Water Temple'), + + 'GS Spirit Temple Hall to West Iron Knuckle': (None, None, 0x01, 'GS Token', 0x06, 'Spirit Temple'), + 'GS Spirit Temple Boulder Room': (None, None, 0x02, 'GS Token', 0x06, 'Spirit Temple'), + 'GS Spirit Temple Lobby': (None, None, 0x04, 'GS Token', 0x06, 'Spirit Temple'), + 'GS Spirit Temple Bomb for Light Room': (None, None, 0x08, 'GS Token', 0x06, 'Spirit Temple'), + 'GS Spirit Temple Metal Fence': (None, None, 0x10, 'GS Token', 0x06, 'Spirit Temple'), + + 'GS Shadow Temple Single Giant Pot': (None, None, 0x01, 'GS Token', 0x07, 'Shadow Temple'), + 'GS Shadow Temple Crusher Room': (None, None, 0x02, 'GS Token', 0x07, 'Shadow Temple'), + 'GS Shadow Temple Tripple Giant Pot': (None, None, 0x04, 'GS Token', 0x07, 'Shadow Temple'), + 'GS Shadow Temple Like Like Room': (None, None, 0x08, 'GS Token', 0x07, 'Shadow Temple'), + 'GS Shadow Temple Near Ship': (None, None, 0x10, 'GS Token', 0x07, 'Shadow Temple'), + + 'GS Well Like Like Cage': (None, None, 0x01, 'GS Token', 0x08, 'Bottom of the Well'), + 'GS Well East Inner Room': (None, None, 0x02, 'GS Token', 0x08, 'Bottom of the Well'), + 'GS Well West Inner Room': (None, None, 0x04, 'GS Token', 0x08, 'Bottom of the Well'), + + 'GS Ice Cavern Push Block Room': (None, None, 0x01, 'GS Token', 0x09, 'Ice Cavern'), + 'GS Ice Cavern Spinning Scythe Room': (None, None, 0x02, 'GS Token', 0x09, 'Ice Cavern'), + 'GS Ice Cavern Heart Piece Room': (None, None, 0x04, 'GS Token', 0x09, 'Ice Cavern'), + + 'GS Hyrule Field Near Gerudo Valley': (None, None, 0x01, 'GS Token', 0x0A, 'Hyrule Field'), + 'GS Hyrule Field near Kakariko': (None, None, 0x02, 'GS Token', 0x0A, 'Hyrule Field'), + + 'GS Lon Lon Ranch Back Wall': (None, None, 0x01, 'GS Token', 0x0B, 'Lon Lon Ranch'), + 'GS Lon Lon Ranch Rain Shed': (None, None, 0x02, 'GS Token', 0x0B, 'Lon Lon Ranch'), + 'GS Lon Lon Ranch House Window': (None, None, 0x04, 'GS Token', 0x0B, 'Lon Lon Ranch'), + 'GS Lon Lon Ranch Tree': (None, None, 0x08, 'GS Token', 0x0B, 'Lon Lon Ranch'), + + 'GS Kokiri Bean Patch': (None, None, 0x01, 'GS Token', 0x0C, 'Kokiri Forest'), + 'GS Kokiri Know It All House': (None, None, 0x02, 'GS Token', 0x0C, 'Kokiri Forest'), + 'GS Kokiri House of Twins': (None, None, 0x04, 'GS Token', 0x0C, 'Kokiri Forest'), + + 'GS Lost Woods Bean Patch Near Bridge': (None, None, 0x01, 'GS Token', 0x0D, 'the Lost Woods'), + 'GS Lost Woods Bean Patch Near Stage': (None, None, 0x02, 'GS Token', 0x0D, 'the Lost Woods'), + 'GS Lost Woods Above Stage': (None, None, 0x04, 'GS Token', 0x0D, 'the Lost Woods'), + 'GS Sacred Forest Meadow': (None, None, 0x08, 'GS Token', 0x0D, 'Sacred Forest Meadow'), + + 'GS Outside Ganon\'s Castle': (None, None, 0x01, 'GS Token', 0x0E, 'outside my castle'), + 'GS Hyrule Castle Grotto': (None, None, 0x02, 'GS Token', 0x0E, 'Hyrule Castle'), + 'GS Hyrule Castle Tree': (None, None, 0x04, 'GS Token', 0x0E, 'Hyrule Castle'), + 'GS Castle Market Guard House': (None, None, 0x08, 'GS Token', 0x0E, 'the market'), + + 'GS Death Mounter Bean Patch': (None, None, 0x01, 'GS Token', 0x0F, 'Death Mountain Crater'), + 'GS Mountain Trail Bean Patch': (None, None, 0x02, 'GS Token', 0x0F, 'Death Mountain Trail'), + 'GS Mountain Trail Bomb Alcove': (None, None, 0x04, 'GS Token', 0x0F, 'Death Mountain Trail'), + 'GS Mountain Trail Above Dodongo\'s Cavern': (None, None, 0x08, 'GS Token', 0x0F, 'Death Mountain Trail'), + 'GS Mountain Trail Path to Crater': (None, None, 0x10, 'GS Token', 0x0F, 'Death Mountain Trail'), + 'GS Goron City Center Platform': (None, None, 0x20, 'GS Token', 0x0F, 'Goron City'), + 'GS Goron City Boulder Maze': (None, None, 0x40, 'GS Token', 0x0F, 'Goron City'), + 'GS Death Mounter Crater Crate': (None, None, 0x80, 'GS Token', 0x0F, 'Death Mountain Crater'), + + 'GS Kakariko House Under Construction': (None, None, 0x08, 'GS Token', 0x10, 'Kakariko Village'), + 'GS Kakariko Skulltula House': (None, None, 0x10, 'GS Token', 0x10, 'Kakariko Village'), + 'GS Kakariko Guard\'s House': (None, None, 0x02, 'GS Token', 0x10, 'Kakariko Village'), + 'GS Kakariko Tree': (None, None, 0x20, 'GS Token', 0x10, 'Kakariko Village'), + 'GS Kakariko Watchtower': (None, None, 0x04, 'GS Token', 0x10, 'Kakariko Village'), + 'GS Kakariko Above Impa\'s House': (None, None, 0x40, 'GS Token', 0x10, 'Kakariko Village'), + 'GS Graveyard Wall': (None, None, 0x80, 'GS Token', 0x10, 'the Graveyard'), + 'GS Graveyard Bean Patch': (None, None, 0x01, 'GS Token', 0x10, 'the Graveyard'), + + 'GS Zora River Ladder': (None, None, 0x01, 'GS Token', 0x11, 'Zora River'), + 'GS Zora River Tree': (None, None, 0x02, 'GS Token', 0x11, 'Zora River'), + 'GS Zora\'s Fountain Above the Log': (None, None, 0x04, 'GS Token', 0x11, 'Zora\'s Fountain'), + 'GS Zora River Above Bridge': (None, None, 0x08, 'GS Token', 0x11, 'Zora River'), + 'GS Zora River Near Raised Grottos': (None, None, 0x10, 'GS Token', 0x11, 'Zora River'), + 'GS Zora\'s Fountain Hidden Cave': (None, None, 0x20, 'GS Token', 0x11, 'Zora\'s Fountain'), + 'GS Zora\'s Domain Frozen Waterfall': (None, None, 0x40, 'GS Token', 0x11, 'Zora\'s Domain'), + 'GS Zora\'s Fountain Tree': (None, None, 0x80, 'GS Token', 0x11, 'Zora\'s Fountain'), + + 'GS Lake Hylia Bean Patch': (None, None, 0x01, 'GS Token', 0x12, 'Lake Hylia'), + 'GS Lake Hylia Small Island': (None, None, 0x02, 'GS Token', 0x12, 'Lake Hylia'), + 'GS Lake Hylia Lab Wall': (None, None, 0x04, 'GS Token', 0x12, 'Lake Hylia'), + 'GS Lab Underwater Crate': (None, None, 0x08, 'GS Token', 0x12, 'Lake Hylia'), + 'GS Lake Hylia Giant Tree': (None, None, 0x10, 'GS Token', 0x12, 'Lake Hylia'), + + 'GS Gerudo Valley Bean Patch': (None, None, 0x01, 'GS Token', 0x13, 'Gerudo Valley'), + 'GS Gerudo Valley Small Bridge': (None, None, 0x02, 'GS Token', 0x13, 'Gerudo Valley'), + 'GS Gerudo Valley Pillar': (None, None, 0x04, 'GS Token', 0x13, 'Gerudo Valley'), + 'GS Gerudo Valley Behind Tent': (None, None, 0x08, 'GS Token', 0x13, 'Gerudo Valley'), + + 'GS Gerudo Fortress Archery Range': (None, None, 0x01, 'GS Token', 0x14, 'Gerudo Fortress'), + 'GS Gerudo Fortress Top Floor': (None, None, 0x02, 'GS Token', 0x14, 'Gerudo Fortress'), + + 'GS Desert Colossus Bean Patch': (None, None, 0x01, 'GS Token', 0x15, 'Desert Colossus'), + 'GS Wasteland Ruins': (None, None, 0x02, 'GS Token', 0x15, 'Haunted Wasteland'), + 'GS Desert Colossus Hill': (None, None, 0x04, 'GS Token', 0x15, 'Desert Colossus'), + 'GS Desert Colossus Tree': (None, None, 0x08, 'GS Token', 0x15, 'Desert Colossus'), +} From 6c4cf47a1edcddfc1adebeb0b63d77a56510c3f3 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Sun, 12 Aug 2018 02:10:06 -0400 Subject: [PATCH 262/755] Added Open Kakariko Gate option --- .gitignore | 4 +++- ASM/src/hacks.asm | 6 ++++++ Rom.py | 3 +++ Rules.py | 2 +- Settings.py | 22 ++++++++++++++++++++++ data/base2current.json | 2 +- version.py | 2 +- 7 files changed, 37 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 57a3b9c41..9aaf8b3c0 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,6 @@ /.vs settings.sav ARCHIVE.bin -output/* \ No newline at end of file +output/* +*.n64 +*.n64.bak diff --git a/ASM/src/hacks.asm b/ASM/src/hacks.asm index 17b7561e5..bf9516449 100755 --- a/ASM/src/hacks.asm +++ b/ASM/src/hacks.asm @@ -20,6 +20,12 @@ .org 0xAE59E0 ; In memory: 0x8006FA80 j after_time_travel +; Kakariko gate is not opened by MS +; Replaces: +; andi t9, t8, 0x0020 +.org 0xDD3538 + li t9, 0 + ;================================================================================================== ; Item Overrides ;================================================================================================== diff --git a/Rom.py b/Rom.py index 3bae45cd5..d7c6b9ecc 100644 --- a/Rom.py +++ b/Rom.py @@ -1042,6 +1042,9 @@ def write_save_table(rom): write_bits_to_save(0x0EEB, 0x01) # "Entered Dodongo's Cavern" write_bits_to_save(0x0F08, 0x08) # "Entered Hyrule Castle" + if world.open_kakariko: + write_bits_to_save(0x0F07, 0x40) # "Opened Kakariko Gate" + # Make all chest opening animations fast if world.fast_chests: rom.write_int32(0xBDA2E8, 0x240AFFFF) # addiu t2, r0, -1 diff --git a/Rules.py b/Rules.py index 2cc2d05d0..1ab7c91c3 100644 --- a/Rules.py +++ b/Rules.py @@ -98,7 +98,7 @@ def global_rules(world): set_rule(world.get_entrance('Composer Grave'), lambda state: state.can_play('Zeldas Lullaby')) set_rule(world.get_location('Composer Grave Chest'), lambda state: state.has_fire_source()) set_rule(world.get_entrance('Bottom of the Well'), lambda state: state.can_play('Song of Storms')) - set_rule(world.get_entrance('Death Mountain Entrance'), lambda state: state.has('Zeldas Letter') or state.is_adult()) + set_rule(world.get_entrance('Death Mountain Entrance'), lambda state: state.has('Zeldas Letter') or state.is_adult() or world.open_kakariko) set_rule(world.get_location('Death Mountain Bombable Chest'), lambda state: state.can_blast_or_smash()) set_rule(world.get_location('Biggoron'), lambda state: (not world.logic_no_trade_biggoron) and (state.can_blast_or_smash() and state.is_adult() and state.can_finish_adult_trades() and state.guarantee_hint())) set_rule(world.get_location('Goron City Leftmost Maze Chest'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade', 2) or state.has('Hammer'))) diff --git a/Settings.py b/Settings.py index f99a31837..26d859252 100644 --- a/Settings.py +++ b/Settings.py @@ -257,6 +257,28 @@ def __init__(self, settings_dict): are always available somewhere in the forest. ''' }), + Setting_Info('open_kakariko', bool, 1, True, + { + 'help': '''\ + The gate in Kakariko Village to Death Mountain Trail + is always open, instead of needing Zelda's Letter. + ''', + 'action': 'store_true' + }, + { + 'text': 'Open Kakariko Gate', + 'group': 'open', + 'widget': 'Checkbutton', + 'default': 'unchecked', + 'tooltip':'''\ + The gate in Kakariko Village to Death Mountain Trail + is always open, instead of needing Zelda's Letter. + + Recommend if Weird Egg is not shuffled. + + Either way, the gate is always open as adult. + ''' + }), Setting_Info('open_door_of_time', bool, 1, True, { 'help': ''' diff --git a/data/base2current.json b/data/base2current.json index 01d601258..f9a66a653 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -1 +1 @@ -[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 196]}, {"11311804": [12, 16, 11, 205]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 190, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 101]}, {"11427312": [12, 16, 13, 14]}, {"11427320": [12, 16, 11, 200]}, {"11427332": [0, 0]}, {"11427335": [0]}, {"11431496": [12, 16, 11, 195, 1, 15, 192, 33]}, {"11559936": [130]}, {"11559938": [14, 222]}, {"11559948": [49, 248, 0, 2]}, {"11562028": [12, 16, 13, 47]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 30]}, {"11882076": [12, 16, 12, 251]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 68, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 75, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 82, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 61, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 140]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 18]}, {"12427480": [12, 16, 10, 106]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 110]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 12, 8, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 152]}, {"12491480": [12, 16, 10, 161]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 147]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 89]}, {"14109028": [16, 0]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 128, 73, 14, 222]}, {"14149508": [52]}, {"14149510": [0, 1, 2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 208]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 224]}, {"14624335": [118]}, {"14720872": [128]}, {"14720874": [14, 222]}, {"14720884": [49, 248, 0, 4]}, {"14720944": [12, 16, 11, 216]}, {"14848904": [8, 16, 11, 247]}, {"14852164": [12, 16, 12, 0]}, {"14872723": [52]}, {"15327704": [52, 9, 64, 0]}, {"15327728": [52]}, {"15327730": [91, 8]}, {"15327744": [52]}, {"15327746": [0, 10]}, {"15327757": [169]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 236, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 48, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 76, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 104, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 220, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 108, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 140, 128, 64, 38, 132, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 172, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 39, 212, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 28, 128, 64, 40]}, {"55059600": [83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 3, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 44, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [2, 52, 2]}, {"55060003": [69, 52, 2]}, {"55060007": [70, 3, 224]}, {"55060011": [8]}, {"55060016": [144, 136]}, {"55060019": [162, 49, 8]}, {"55060023": [6, 17]}, {"55060027": [2, 52, 2]}, {"55060031": [55, 52, 2]}, {"55060035": [56, 3, 224]}, {"55060039": [8]}, {"55060044": [144, 136]}, {"55060047": [161, 49, 8]}, {"55060051": [32, 17]}, {"55060055": [2, 52, 2]}, {"55060059": [121, 52, 2]}, {"55060063": [122, 3, 224]}, {"55060067": [8]}, {"55060072": [144, 136]}, {"55060075": [161, 49, 8]}, {"55060079": [4, 17]}, {"55060083": [2, 52, 2]}, {"55060087": [119, 52, 2]}, {"55060091": [120, 3, 224]}, {"55060095": [8]}, {"55060100": [144, 136]}, {"55060103": [50, 17]}, {"55060107": [2, 52, 2]}, {"55060111": [192, 52, 2]}, {"55060115": [193, 3, 224]}, {"55060119": [8]}, {"55060124": [144, 136]}, {"55060127": [163, 49, 8]}, {"55060131": [3, 17]}, {"55060135": [2, 52, 2]}, {"55060139": [77, 52, 162]}, {"55060144": [3, 224]}, {"55060147": [8]}, {"55060152": [144, 136]}, {"55060155": [163, 49, 8]}, {"55060159": [24, 17]}, {"55060163": [2, 52, 2]}, {"55060167": [77, 52, 162]}, {"55060172": [3, 224]}, {"55060175": [8]}, {"55060180": [3, 224]}, {"55060183": [8]}, {"55060188": [52, 8]}, {"55060191": [1, 160, 136]}, {"55060195": [62, 3, 224]}, {"55060199": [8]}, {"55060204": [36, 136]}, {"55060207": [134, 36, 9, 255, 255, 37, 41]}, {"55060215": [1, 52, 1]}, {"55060219": [3]}, {"55060221": [41, 8, 42, 20, 32]}, {"55060227": [7]}, {"55060232": [1, 9, 80, 33, 145, 75]}, {"55060240": [52, 1]}, {"55060243": [255, 21, 97, 255, 247]}, {"55060252": [161, 69]}, {"55060256": [3, 224]}, {"55060259": [8]}, {"55060264": [36, 136]}, {"55060267": [168, 1, 6, 64, 33, 145, 9]}, {"55060276": [1, 37, 72, 37, 161, 9]}, {"55060284": [3, 224]}, {"55060287": [8]}, {"55060292": [36, 136]}, {"55060295": [188, 1, 5, 64, 33, 129, 9]}, {"55060304": [5, 33]}, {"55060307": [2]}, {"55060312": [52, 9]}, {"55060316": [37, 41]}, {"55060319": [1, 161, 9]}, {"55060324": [3, 224]}, {"55060327": [8]}, {"55060332": [52, 8]}, {"55060335": [1, 160, 136]}, {"55060339": [61, 52, 8]}, {"55060343": [20, 160, 136]}, {"55060347": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [50, 160, 136]}, {"55060375": [58, 52, 8]}, {"55060379": [48, 164, 136, 19, 244, 160, 136]}, {"55060387": [51, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [2, 160, 136]}, {"55060403": [50, 52, 8]}, {"55060407": [1, 160, 136]}, {"55060411": [58, 160, 136]}, {"55060415": [60, 52, 8]}, {"55060419": [96, 164, 136, 19, 244, 160, 136]}, {"55060427": [51, 3, 224]}, {"55060431": [8]}, {"55060436": [144, 136]}, {"55060439": [124, 52, 1]}, {"55060443": [255, 17, 1]}, {"55060447": [6, 52, 2]}, {"55060451": [107, 144, 136]}, {"55060455": [148, 45, 8]}, {"55060459": [6, 17]}, {"55060463": [2, 52, 2]}, {"55060467": [106, 52, 2]}, {"55060471": [3, 3, 224]}, {"55060475": [8]}, {"55060480": [144, 136]}, {"55060483": [123, 52, 1]}, {"55060487": [255, 17, 1]}, {"55060491": [2, 52, 162]}, {"55060496": [52, 2]}, {"55060499": [12, 3, 224]}, {"55060503": [8]}, {"55060508": [52, 8]}, {"55060511": [7, 160, 136]}, {"55060515": [123, 3, 224]}, {"55060519": [8]}, {"55060524": [52, 8]}, {"55060527": [1]}, {"55060529": [168, 64, 4, 140, 137]}, {"55060535": [164, 1, 40, 72, 37, 172, 137]}, {"55060543": [164, 3, 224]}, {"55060547": [8]}, {"55060552": [48, 132]}, {"55060555": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060567": [140, 16, 129]}, {"55060571": [22, 145, 2]}, {"55060575": [117, 52, 1]}, {"55060579": [141, 16, 129]}, {"55060583": [19, 145, 2]}, {"55060587": [117, 16, 128]}, {"55060591": [17, 145, 2]}, {"55060595": [116, 52, 1]}, {"55060599": [138, 16, 129]}, {"55060603": [14, 145, 2]}, {"55060607": [116, 52, 1]}, {"55060611": [139, 16, 129]}, {"55060615": [11, 145, 2]}, {"55060619": [116, 52, 1]}, {"55060623": [88, 16, 129]}, {"55060627": [8, 52, 2]}, {"55060632": [52, 1]}, {"55060635": [120, 16, 129]}, {"55060639": [5, 52, 2]}, {"55060644": [52, 1]}, {"55060647": [121, 16, 129]}, {"55060651": [2, 52, 2]}, {"55060656": [52, 2]}, {"55060659": [255, 3, 224]}, {"55060663": [8]}, {"55060668": [39, 189, 255, 224, 175, 191]}, {"55060675": [16, 175, 176]}, {"55060679": [20, 12, 16, 11, 11]}, {"55060688": [4, 65]}, {"55060691": [2]}, {"55060696": [52, 2]}, {"55060699": [91]}, {"55060701": [64, 32, 33, 12, 16, 11, 114]}, {"55060712": [16, 96]}, {"55060715": [22, 175, 163]}, {"55060719": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060728": [133, 9]}, {"55060731": [2, 17, 32]}, {"55060735": [3, 52, 10]}, {"55060739": [1, 16]}, {"55060743": [12, 165, 10]}, {"55060748": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060759": [6, 144, 102]}, {"55060763": [7, 140, 105]}, {"55060767": [8, 1, 32, 248, 9]}, {"55060776": [143, 163]}, {"55060779": [28, 144, 101]}, {"55060783": [1, 12, 1, 191, 115, 2, 32, 32, 33, 143, 163]}, {"55060795": [28, 144, 101]}, {"55060799": [3, 16]}, {"55060803": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060815": [6]}, {"55060817": [74]}, {"55060819": [24]}, {"55060822": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060832": [60, 8, 128, 64, 37, 8, 32]}, {"55060840": [133, 9]}, {"55060843": [2, 17, 32]}, {"55060847": [3, 52, 10]}, {"55060851": [1, 165, 10]}, {"55060856": [52, 5]}, {"55060859": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060871": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060882": [48, 33, 143, 191]}, {"55060887": [16, 143, 176]}, {"55060891": [20, 39, 189]}, {"55060895": [32, 3, 224]}, {"55060899": [8]}, {"55060904": [143, 166]}, {"55060907": [48, 132, 197]}, {"55060911": [4, 8, 16, 10, 114]}, {"55060920": [143, 185]}, {"55060923": [44, 135, 37]}, {"55060927": [4, 8, 16, 10, 114]}, {"55060936": [60, 10, 128, 64, 37, 74, 32, 8, 141, 75]}, {"55060947": [12, 17, 96]}, {"55060951": [2]}, {"55060956": [149, 69]}, {"55060959": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060972": [60, 9, 128, 64, 37, 41, 32, 24, 129, 42]}, {"55060983": [3, 5, 64]}, {"55060987": [11, 1, 42, 72, 32, 129, 40]}, {"55060996": [52, 10]}, {"55060999": [127, 21, 10]}, {"55061003": [6]}, {"55061008": [60, 10, 128, 18, 37, 74, 165, 208, 133, 72]}, {"55061019": [144, 33, 8]}, {"55061023": [1, 165, 72]}, {"55061027": [144, 161, 32]}, {"55061032": [3, 224]}, {"55061035": [8]}, {"55061040": [60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061051": [12, 17, 32]}, {"55061055": [2]}, {"55061060": [129, 3]}, {"55061063": [2]}, {"55061065": [3, 15, 195]}, {"55061069": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061083": [8]}, {"55061088": [144, 69]}, {"55061091": [3, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061103": [12, 17, 32]}, {"55061107": [2]}, {"55061112": [145, 5]}, {"55061115": [3, 3, 224]}, {"55061119": [8]}, {"55061124": [143, 162]}, {"55061127": [36, 144, 69]}, {"55061132": [60, 8, 128, 64, 37, 8, 32]}, {"55061140": [133, 9]}, {"55061143": [2, 17, 32]}, {"55061147": [4, 52, 10]}, {"55061151": [1, 165, 10]}, {"55061156": [16]}, {"55061159": [24, 52, 5]}, {"55061163": [65, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061175": [12, 17, 32]}, {"55061179": [19]}, {"55061184": [145, 5]}, {"55061187": [1, 175, 164]}, {"55061192": [175, 165]}, {"55061195": [4, 175, 166]}, {"55061199": [8, 39, 189, 255, 232, 175, 191]}, {"55061207": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061219": [6, 145, 6]}, {"55061223": [7, 141, 9]}, {"55061227": [8, 1, 32, 248, 9]}, {"55061236": [143, 191]}, {"55061239": [16, 39, 189]}, {"55061243": [24, 143, 164]}, {"55061248": [143, 165]}, {"55061251": [4, 143, 166]}, {"55061255": [8, 3, 224]}, {"55061259": [8]}, {"55061264": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061275": [16, 175, 163]}, {"55061279": [20, 175, 191]}, {"55061283": [24, 12, 16, 10, 209]}, {"55061292": [143, 162]}, {"55061295": [16, 143, 163]}, {"55061299": [20, 143, 191]}, {"55061303": [24, 39, 189]}, {"55061307": [32, 3, 224]}, {"55061311": [8]}, {"55061316": [39, 189, 255, 232, 175, 191]}, {"55061323": [16, 60, 8, 128, 64, 37, 8, 32, 8, 173]}, {"55061336": [173]}, {"55061339": [4, 173]}, {"55061343": [8, 173]}, {"55061347": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061363": [42]}, {"55061369": [9, 15, 195, 1, 33, 32, 38]}, {"55061377": [129, 32, 35, 141, 5, 4, 40, 12, 16, 11, 11]}, {"55061392": [4, 64]}, {"55061395": [34]}, {"55061400": [52, 68]}, {"55061404": [12, 16, 11, 114]}, {"55061412": [16, 96]}, {"55061415": [12]}, {"55061420": [60, 8, 128, 64, 37, 8, 32, 8, 140, 105]}, {"55061432": [173, 9]}, {"55061436": [140, 105]}, {"55061439": [4, 173, 9]}, {"55061443": [4, 140, 105]}, {"55061447": [8, 173, 9]}, {"55061451": [8, 52, 9]}, {"55061455": [1, 173, 9]}, {"55061459": [12, 144, 98]}, {"55061464": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061480": [52, 1]}, {"55061483": [10, 21, 65]}, {"55061487": [6]}, {"55061492": [149, 42]}, {"55061495": [28, 49, 74, 240, 31]}, {"55061501": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061511": [28, 129, 9, 4, 36, 5, 33]}, {"55061519": [2]}, {"55061525": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061535": [16, 39, 189]}, {"55061539": [24, 3, 224]}, {"55061543": [8]}, {"55061548": [39, 189, 255, 232, 175, 191]}, {"55061555": [16, 12, 16, 11, 25]}, {"55061564": [36, 1, 255, 255, 16, 65]}, {"55061571": [4]}, {"55061576": [52, 68]}, {"55061580": [12, 16, 11, 77]}, {"55061588": [143, 191]}, {"55061591": [16, 39, 189]}, {"55061595": [24, 3, 224]}, {"55061599": [8]}, {"55061604": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061615": [164, 52, 8]}, {"55061620": [52, 137]}, {"55061624": [148, 170]}, {"55061628": [52, 1, 1, 156, 21, 65]}, {"55061635": [8]}, {"55061640": [52, 8]}, {"55061643": [3, 148, 171]}, {"55061647": [28, 49, 105]}, {"55061651": [255, 49, 98, 31]}, {"55061657": [2, 18, 2, 16]}, {"55061663": [31]}, {"55061668": [52, 1]}, {"55061671": [10, 21, 65]}, {"55061675": [14]}, {"55061680": [148, 171]}, {"55061683": [28, 52, 1]}, {"55061687": [16, 20, 65]}, {"55061691": [8]}, {"55061696": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061707": [4]}, {"55061712": [36, 2, 255, 255, 16]}, {"55061719": [21]}, {"55061724": [52, 8]}, {"55061727": [1, 49, 105]}, {"55061731": [31, 52, 1]}, {"55061735": [21, 21, 65]}, {"55061739": [12]}, {"55061744": [52, 1]}, {"55061747": [62, 16, 129]}, {"55061751": [7]}, {"55061756": [52, 1]}, {"55061759": [66, 16, 129]}, {"55061763": [4]}, {"55061768": [36, 2, 255, 255, 16]}, {"55061775": [7]}, {"55061780": [52, 8]}, {"55061783": [2, 144, 169, 1, 65]}, {"55061789": [2, 18]}, {"55061793": [72, 16, 37]}, {"55061797": [2, 18]}, {"55061801": [73, 16, 37, 3, 224]}, {"55061807": [8]}, {"55061812": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061824": [129, 9]}, {"55061828": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061851": [4, 141, 9]}, {"55061856": [17, 32]}, {"55061859": [23]}, {"55061865": [9, 82, 2, 49, 75, 248]}, {"55061873": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061896": [49, 34]}, {"55061899": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061920": [60, 12, 128, 64, 37, 140, 28]}, {"55061928": [129, 140]}, {"55061932": [17, 108]}, {"55061935": [4, 165, 32]}, {"55061939": [2, 161, 43]}, {"55061943": [2, 161, 34]}, {"55061947": [3, 173, 36]}, {"55061951": [4, 3, 224]}, {"55061955": [8]}, {"55061960": [39, 189, 255, 224, 175, 176]}, {"55061967": [16, 175, 177]}, {"55061971": [20, 175, 191]}, {"55061975": [24, 52, 130]}, {"55061980": [52, 80]}, {"55061984": [38, 8, 255, 128, 5]}, {"55061991": [18]}, {"55061996": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55062007": [16, 1, 9]}, {"55062011": [24]}, {"55062014": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55062032": [142, 40]}, {"55062035": [12, 1]}, {"55062038": [248, 9]}, {"55062044": [20, 80, 255, 239]}, {"55062052": [54, 35]}, {"55062056": [16]}, {"55062059": [2]}, {"55062064": [52, 3]}, {"55062068": [143, 176]}, {"55062071": [16, 143, 177]}, {"55062075": [20, 143, 191]}, {"55062079": [24, 39, 189]}, {"55062083": [32, 3, 224]}, {"55062087": [8]}, {"55062092": [140, 136, 29, 44, 52, 9]}, {"55062099": [1]}, {"55062101": [9, 78]}, {"55062104": [1, 9, 16, 36, 16, 64]}, {"55062111": [36]}, {"55062116": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062131": [164, 52, 1]}, {"55062135": [61, 17, 129]}, {"55062139": [10]}, {"55062145": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062155": [25]}, {"55062160": [52, 13]}, {"55062163": [1, 161, 141, 29, 40, 37, 74]}, {"55062171": [3, 16]}, {"55062175": [9]}, {"55062180": [52, 12]}, {"55062183": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062199": [14]}, {"55062204": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062240": [60, 9, 128, 64, 37, 41, 32, 24, 161, 40]}, {"55062252": [52, 2]}, {"55062256": [3, 224]}, {"55062259": [8]}, {"55062264": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062276": [16]}, {"55062279": [34]}, {"55062284": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062296": [16]}, {"55062299": [29]}, {"55062304": [52, 2]}, {"55062307": [255, 32, 232, 255, 166, 33, 8]}, {"55062315": [97, 16]}, {"55062319": [24]}, {"55062324": [52, 8]}, {"55062327": [100, 16]}, {"55062331": [21]}, {"55062336": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062351": [1, 160, 40, 14, 222, 52, 8]}, {"55062359": [104, 16]}, {"55062363": [13]}, {"55062368": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062383": [4, 160, 40, 14, 222, 52, 8]}, {"55062391": [106, 16]}, {"55062395": [5]}, {"55062400": [52, 5]}, {"55062403": [3, 52, 8]}, {"55062407": [107, 16]}, {"55062411": [1]}, {"55062416": [60, 9, 128, 64, 37, 41, 32, 24, 60, 10, 128, 64, 37, 74, 32, 27, 129, 44]}, {"55062436": [17, 136]}, {"55062439": [11, 33, 41]}, {"55062443": [1, 21, 42, 255, 252]}, {"55062452": [60, 9, 128, 64, 37, 41, 32, 23, 33, 41]}, {"55062463": [1, 17, 42]}, {"55062467": [4, 129, 44]}, {"55062472": [21, 128, 255, 252]}, {"55062480": [161, 40]}, {"55062484": [3, 224]}, {"55062487": [8]}, {"55062493": [96, 120, 33, 129, 236, 14, 223, 49, 142]}, {"55062503": [128, 17, 192]}, {"55062507": [3, 52, 3]}, {"55062511": [5, 3, 224]}, {"55062515": [8, 52, 2]}, {"55062519": [2, 3, 224]}, {"55062523": [8]}, {"55062525": [96, 16, 33, 133, 194]}, {"55062531": [164, 60, 8, 128, 18, 37, 8, 165, 208, 129, 9, 14, 223, 53, 41]}, {"55062547": [128, 161, 9, 14, 223, 3, 224]}, {"55062555": [8]}, {"55062560": [175, 164]}, {"55062563": [104, 175, 165]}, {"55062567": [108, 175, 166]}, {"55062571": [112, 175, 167]}, {"55062575": [116, 39, 189, 255, 232, 175, 163]}, {"55062583": [16, 175, 191]}, {"55062587": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062603": [32, 21]}, {"55062607": [31]}, {"55062612": [60, 9, 128, 64, 37, 41, 32, 27, 52, 10]}, {"55062623": [255, 161, 42]}, {"55062628": [60, 9, 128, 64, 37, 41, 32, 24, 36, 10, 255, 255, 52, 12]}, {"55062643": [3, 33, 74]}, {"55062647": [1, 17, 76]}, {"55062651": [20, 1, 42, 88, 32, 129, 104]}, {"55062660": [17]}, {"55062662": [255, 251]}, {"55062668": [60, 9, 128, 64, 37, 41, 32, 27, 161, 42]}, {"55062680": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062691": [1, 165, 42]}, {"55062696": [60, 9, 128, 65, 52, 10]}, {"55062703": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 209]}, {"55062732": [143, 163]}, {"55062735": [16, 143, 191]}, {"55062739": [20, 39, 189]}, {"55062743": [24, 143, 164]}, {"55062747": [104, 143, 165]}, {"55062751": [108, 143, 166]}, {"55062755": [112, 143, 167]}, {"55062759": [116, 132, 110, 19, 196, 3, 224]}, {"55062767": [8]}, {"55062772": [147, 25]}, {"55062775": [116, 52, 1]}, {"55062779": [255, 23, 33]}, {"55062783": [2]}, {"55062788": [52, 25]}, {"55062791": [44, 3, 224]}, {"55062795": [8, 167, 185]}, {"55062799": [154, 147, 44]}, {"55062803": [116, 52, 1]}, {"55062807": [255, 21, 129]}, {"55062811": [2]}, {"55062816": [52, 12]}, {"55062819": [44, 3, 224]}, {"55062823": [8]}, {"55062828": [145, 174]}, {"55062831": [116, 52, 1]}, {"55062835": [255, 21, 193]}, {"55062839": [2]}, {"55062844": [52, 14]}, {"55062847": [44, 3, 224]}, {"55062851": [8, 167, 174]}, {"55062855": [154, 145, 207]}, {"55062859": [116, 52, 1]}, {"55062863": [255, 21, 225]}, {"55062867": [2]}, {"55062872": [52, 15]}, {"55062875": [44, 3, 224]}, {"55062879": [8, 167, 175]}, {"55062883": [154, 60, 8, 128, 64, 37, 8, 32, 28, 142, 9]}, {"55062895": [104, 173, 9]}, {"55062900": [142, 9]}, {"55062903": [108, 173, 9]}, {"55062907": [4, 150, 9]}, {"55062911": [112, 165, 9]}, {"55062915": [8, 150, 9]}, {"55062919": [156, 165, 9]}, {"55062923": [10, 3, 224]}, {"55062927": [8, 142, 14]}, {"55062931": [4, 39, 189, 255, 224, 175, 176]}, {"55062939": [16, 175, 177]}, {"55062943": [20, 175, 191]}, {"55062947": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 28, 142, 8]}, {"55062967": [4, 17]}, {"55062971": [5]}, {"55062976": [12, 16, 12, 143]}, {"55062984": [16]}, {"55062987": [3]}, {"55062992": [12, 16, 12, 162]}, {"55063000": [12, 16, 12, 130, 52, 4]}, {"55063008": [12, 16, 12, 130, 52, 4]}, {"55063015": [1, 12, 16, 12, 130, 52, 4]}, {"55063023": [2, 143, 176]}, {"55063027": [16, 143, 177]}, {"55063031": [20, 143, 191]}, {"55063035": [24, 39, 189]}, {"55063039": [32, 3, 224]}, {"55063043": [8]}, {"55063048": [2, 4, 64, 33, 145, 9]}, {"55063055": [108, 52, 1]}, {"55063059": [255, 17, 33]}, {"55063063": [7]}, {"55063068": [2, 9, 72, 33, 145, 41]}, {"55063075": [116, 52, 1]}, {"55063079": [44, 17, 33]}, {"55063083": [2]}, {"55063088": [161, 9]}, {"55063091": [105, 3, 224]}, {"55063095": [8]}, {"55063100": [39, 189, 255, 232, 175, 191]}, {"55063107": [16, 142, 40]}, {"55063112": [174, 8]}, {"55063115": [64, 142, 40]}, {"55063119": [4, 174, 8]}, {"55063123": [68, 150, 40]}, {"55063127": [8, 166, 8]}, {"55063131": [72, 162]}, {"55063134": [15, 51, 146, 8]}, {"55063139": [74, 52, 1]}, {"55063143": [255, 21, 1]}, {"55063147": [3]}, {"55063152": [12, 16, 12, 176]}, {"55063160": [143, 191]}, {"55063163": [16, 39, 189]}, {"55063167": [24, 3, 224]}, {"55063171": [8]}, {"55063176": [142, 8]}, {"55063179": [64, 174, 8]}, {"55063183": [104, 142, 8]}, {"55063187": [68, 174, 8]}, {"55063191": [108, 150, 8]}, {"55063195": [72, 166, 8]}, {"55063199": [112, 146, 8]}, {"55063203": [104, 52, 1]}, {"55063207": [255, 21, 1]}, {"55063211": [3]}, {"55063216": [52, 8]}, {"55063219": [1, 162, 8, 15, 51, 3, 224]}, {"55063227": [8]}, {"55063232": [39, 189, 255, 232, 175, 191]}, {"55063239": [16, 150, 8]}, {"55063243": [156, 49, 8]}, {"55063247": [64, 17]}, {"55063251": [5]}, {"55063256": [150, 8]}, {"55063259": [112, 49, 8, 255, 15, 53, 8]}, {"55063267": [48, 166, 8]}, {"55063271": [112, 146, 40]}, {"55063275": [1, 162, 8]}, {"55063279": [105, 150, 40]}, {"55063283": [2, 166, 8]}, {"55063287": [106, 142, 40]}, {"55063291": [4, 174, 8]}, {"55063295": [108, 12, 16, 12, 202, 52, 4]}, {"55063304": [12, 16, 12, 202, 52, 4]}, {"55063311": [1, 12, 16, 12, 202, 52, 4]}, {"55063319": [2, 143, 191]}, {"55063323": [16, 39, 189]}, {"55063327": [24, 3, 224]}, {"55063331": [8]}, {"55063336": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 51, 212, 145, 10]}, {"55063351": [108, 52, 1]}, {"55063355": [255, 17, 65]}, {"55063359": [5]}, {"55063364": [1, 42, 72, 33, 145, 41]}, {"55063372": [21, 32]}, {"55063375": [28]}, {"55063380": [60, 9, 128, 64, 37, 41, 51, 199, 37, 41]}, {"55063391": [1, 145, 42]}, {"55063396": [17, 64]}, {"55063399": [19]}, {"55063404": [2, 10, 88, 33, 145, 107]}, {"55063411": [116, 52, 1]}, {"55063415": [255, 17, 97, 255, 248]}, {"55063424": [146, 12]}, {"55063427": [108, 17, 138, 255, 245]}, {"55063436": [146, 12]}, {"55063439": [109, 17, 138, 255, 242]}, {"55063448": [146, 12]}, {"55063451": [110, 17, 138, 255, 239]}, {"55063460": [161, 11]}, {"55063463": [105, 161, 10]}, {"55063467": [108, 16]}, {"55063471": [4]}, {"55063476": [52, 9]}, {"55063479": [255, 161, 9]}, {"55063483": [105, 161, 9]}, {"55063487": [108, 3, 224]}, {"55063491": [8]}, {"55063496": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063509": [1, 1, 1, 1, 1]}, {"55063515": [1, 1, 1, 1, 1]}, {"55063521": [1]}, {"55063523": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063533": [51, 8, 33, 32, 15]}, {"55063539": [71, 21, 234]}, {"55063543": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063555": [164]}, {"55063557": [15, 122, 3, 20, 64]}, {"55063563": [5, 52, 2, 72, 48, 21, 226]}, {"55063571": [7]}, {"55063576": [36, 25]}, {"55063579": [3, 16]}, {"55063583": [4, 52, 2, 99, 17, 21, 226]}, {"55063591": [2]}, {"55063596": [36, 25]}, {"55063599": [3, 3, 224]}, {"55063603": [8]}, {"55063608": [141, 173, 138, 160, 52, 2, 128]}, {"55063616": [16, 77]}, {"55063619": [2]}, {"55063624": [16]}, {"55063627": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063643": [1, 16, 64]}, {"55063647": [2]}, {"55063652": [16]}, {"55063655": [2, 52, 2]}, {"55063659": [1, 161, 226, 28, 191, 3, 224]}, {"55063667": [8]}, {"55063673": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063687": [164]}, {"55063689": [15, 122, 3, 20, 64]}, {"55063695": [5, 52, 2, 72, 48, 21, 226]}, {"55063703": [7]}, {"55063708": [36, 25]}, {"55063711": [3, 16]}, {"55063715": [4, 52, 2, 99, 17, 21, 226]}, {"55063723": [2]}, {"55063728": [36, 25]}, {"55063731": [3, 3, 224]}, {"55063735": [8]}, {"55063740": [162, 37]}, {"55063743": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063755": [4, 142, 10]}, {"55063760": [17, 64]}, {"55063763": [11]}, {"55063769": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063781": [24, 194, 2, 23]}, {"55063787": [3, 49, 89]}, {"55063791": [255, 129, 234]}, {"55063796": [3, 42, 200, 37, 8, 16, 13, 50, 161, 249]}, {"55063808": [3, 224]}, {"55063811": [8]}] \ No newline at end of file +[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 196]}, {"11311804": [12, 16, 11, 205]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 190, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 101]}, {"11427312": [12, 16, 13, 14]}, {"11427320": [12, 16, 11, 200]}, {"11427332": [0, 0]}, {"11427335": [0]}, {"11431496": [12, 16, 11, 195, 1, 15, 192, 33]}, {"11559936": [130]}, {"11559938": [14, 222]}, {"11559948": [49, 248, 0, 2]}, {"11562028": [12, 16, 13, 47]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 30]}, {"11882076": [12, 16, 12, 251]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 68, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 75, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 82, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 61, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 140]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 18]}, {"12427480": [12, 16, 10, 106]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 110]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 12, 8, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 152]}, {"12491480": [12, 16, 10, 161]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 147]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 89]}, {"14109028": [16, 0]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 128, 73, 14, 222]}, {"14149508": [52]}, {"14149510": [0, 1, 2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 208]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 224]}, {"14497080": [52]}, {"14497083": [0]}, {"14624335": [118]}, {"14720872": [128]}, {"14720874": [14, 222]}, {"14720884": [49, 248, 0, 4]}, {"14720944": [12, 16, 11, 216]}, {"14848904": [8, 16, 11, 247]}, {"14852164": [12, 16, 12, 0]}, {"14872723": [52]}, {"15327704": [52, 9, 64, 0]}, {"15327728": [52]}, {"15327730": [91, 8]}, {"15327744": [52]}, {"15327746": [0, 10]}, {"15327757": [169]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 236, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 48, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 76, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 104, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 220, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 108, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 140, 128, 64, 38, 132, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 172, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 39, 212, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 28, 128, 64, 40]}, {"55059600": [83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 3, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 44, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [2, 52, 2]}, {"55060003": [69, 52, 2]}, {"55060007": [70, 3, 224]}, {"55060011": [8]}, {"55060016": [144, 136]}, {"55060019": [162, 49, 8]}, {"55060023": [6, 17]}, {"55060027": [2, 52, 2]}, {"55060031": [55, 52, 2]}, {"55060035": [56, 3, 224]}, {"55060039": [8]}, {"55060044": [144, 136]}, {"55060047": [161, 49, 8]}, {"55060051": [32, 17]}, {"55060055": [2, 52, 2]}, {"55060059": [121, 52, 2]}, {"55060063": [122, 3, 224]}, {"55060067": [8]}, {"55060072": [144, 136]}, {"55060075": [161, 49, 8]}, {"55060079": [4, 17]}, {"55060083": [2, 52, 2]}, {"55060087": [119, 52, 2]}, {"55060091": [120, 3, 224]}, {"55060095": [8]}, {"55060100": [144, 136]}, {"55060103": [50, 17]}, {"55060107": [2, 52, 2]}, {"55060111": [192, 52, 2]}, {"55060115": [193, 3, 224]}, {"55060119": [8]}, {"55060124": [144, 136]}, {"55060127": [163, 49, 8]}, {"55060131": [3, 17]}, {"55060135": [2, 52, 2]}, {"55060139": [77, 52, 162]}, {"55060144": [3, 224]}, {"55060147": [8]}, {"55060152": [144, 136]}, {"55060155": [163, 49, 8]}, {"55060159": [24, 17]}, {"55060163": [2, 52, 2]}, {"55060167": [77, 52, 162]}, {"55060172": [3, 224]}, {"55060175": [8]}, {"55060180": [3, 224]}, {"55060183": [8]}, {"55060188": [52, 8]}, {"55060191": [1, 160, 136]}, {"55060195": [62, 3, 224]}, {"55060199": [8]}, {"55060204": [36, 136]}, {"55060207": [134, 36, 9, 255, 255, 37, 41]}, {"55060215": [1, 52, 1]}, {"55060219": [3]}, {"55060221": [41, 8, 42, 20, 32]}, {"55060227": [7]}, {"55060232": [1, 9, 80, 33, 145, 75]}, {"55060240": [52, 1]}, {"55060243": [255, 21, 97, 255, 247]}, {"55060252": [161, 69]}, {"55060256": [3, 224]}, {"55060259": [8]}, {"55060264": [36, 136]}, {"55060267": [168, 1, 6, 64, 33, 145, 9]}, {"55060276": [1, 37, 72, 37, 161, 9]}, {"55060284": [3, 224]}, {"55060287": [8]}, {"55060292": [36, 136]}, {"55060295": [188, 1, 5, 64, 33, 129, 9]}, {"55060304": [5, 33]}, {"55060307": [2]}, {"55060312": [52, 9]}, {"55060316": [37, 41]}, {"55060319": [1, 161, 9]}, {"55060324": [3, 224]}, {"55060327": [8]}, {"55060332": [52, 8]}, {"55060335": [1, 160, 136]}, {"55060339": [61, 52, 8]}, {"55060343": [20, 160, 136]}, {"55060347": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [50, 160, 136]}, {"55060375": [58, 52, 8]}, {"55060379": [48, 164, 136, 19, 244, 160, 136]}, {"55060387": [51, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [2, 160, 136]}, {"55060403": [50, 52, 8]}, {"55060407": [1, 160, 136]}, {"55060411": [58, 160, 136]}, {"55060415": [60, 52, 8]}, {"55060419": [96, 164, 136, 19, 244, 160, 136]}, {"55060427": [51, 3, 224]}, {"55060431": [8]}, {"55060436": [144, 136]}, {"55060439": [124, 52, 1]}, {"55060443": [255, 17, 1]}, {"55060447": [6, 52, 2]}, {"55060451": [107, 144, 136]}, {"55060455": [148, 45, 8]}, {"55060459": [6, 17]}, {"55060463": [2, 52, 2]}, {"55060467": [106, 52, 2]}, {"55060471": [3, 3, 224]}, {"55060475": [8]}, {"55060480": [144, 136]}, {"55060483": [123, 52, 1]}, {"55060487": [255, 17, 1]}, {"55060491": [2, 52, 162]}, {"55060496": [52, 2]}, {"55060499": [12, 3, 224]}, {"55060503": [8]}, {"55060508": [52, 8]}, {"55060511": [7, 160, 136]}, {"55060515": [123, 3, 224]}, {"55060519": [8]}, {"55060524": [52, 8]}, {"55060527": [1]}, {"55060529": [168, 64, 4, 140, 137]}, {"55060535": [164, 1, 40, 72, 37, 172, 137]}, {"55060543": [164, 3, 224]}, {"55060547": [8]}, {"55060552": [48, 132]}, {"55060555": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060567": [140, 16, 129]}, {"55060571": [22, 145, 2]}, {"55060575": [117, 52, 1]}, {"55060579": [141, 16, 129]}, {"55060583": [19, 145, 2]}, {"55060587": [117, 16, 128]}, {"55060591": [17, 145, 2]}, {"55060595": [116, 52, 1]}, {"55060599": [138, 16, 129]}, {"55060603": [14, 145, 2]}, {"55060607": [116, 52, 1]}, {"55060611": [139, 16, 129]}, {"55060615": [11, 145, 2]}, {"55060619": [116, 52, 1]}, {"55060623": [88, 16, 129]}, {"55060627": [8, 52, 2]}, {"55060632": [52, 1]}, {"55060635": [120, 16, 129]}, {"55060639": [5, 52, 2]}, {"55060644": [52, 1]}, {"55060647": [121, 16, 129]}, {"55060651": [2, 52, 2]}, {"55060656": [52, 2]}, {"55060659": [255, 3, 224]}, {"55060663": [8]}, {"55060668": [39, 189, 255, 224, 175, 191]}, {"55060675": [16, 175, 176]}, {"55060679": [20, 12, 16, 11, 11]}, {"55060688": [4, 65]}, {"55060691": [2]}, {"55060696": [52, 2]}, {"55060699": [91]}, {"55060701": [64, 32, 33, 12, 16, 11, 114]}, {"55060712": [16, 96]}, {"55060715": [22, 175, 163]}, {"55060719": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060728": [133, 9]}, {"55060731": [2, 17, 32]}, {"55060735": [3, 52, 10]}, {"55060739": [1, 16]}, {"55060743": [12, 165, 10]}, {"55060748": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060759": [6, 144, 102]}, {"55060763": [7, 140, 105]}, {"55060767": [8, 1, 32, 248, 9]}, {"55060776": [143, 163]}, {"55060779": [28, 144, 101]}, {"55060783": [1, 12, 1, 191, 115, 2, 32, 32, 33, 143, 163]}, {"55060795": [28, 144, 101]}, {"55060799": [3, 16]}, {"55060803": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060815": [6]}, {"55060817": [74]}, {"55060819": [24]}, {"55060822": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060832": [60, 8, 128, 64, 37, 8, 32]}, {"55060840": [133, 9]}, {"55060843": [2, 17, 32]}, {"55060847": [3, 52, 10]}, {"55060851": [1, 165, 10]}, {"55060856": [52, 5]}, {"55060859": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060871": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060882": [48, 33, 143, 191]}, {"55060887": [16, 143, 176]}, {"55060891": [20, 39, 189]}, {"55060895": [32, 3, 224]}, {"55060899": [8]}, {"55060904": [143, 166]}, {"55060907": [48, 132, 197]}, {"55060911": [4, 8, 16, 10, 114]}, {"55060920": [143, 185]}, {"55060923": [44, 135, 37]}, {"55060927": [4, 8, 16, 10, 114]}, {"55060936": [60, 10, 128, 64, 37, 74, 32, 8, 141, 75]}, {"55060947": [12, 17, 96]}, {"55060951": [2]}, {"55060956": [149, 69]}, {"55060959": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060972": [60, 9, 128, 64, 37, 41, 32, 24, 129, 42]}, {"55060983": [3, 5, 64]}, {"55060987": [11, 1, 42, 72, 32, 129, 40]}, {"55060996": [52, 10]}, {"55060999": [127, 21, 10]}, {"55061003": [6]}, {"55061008": [60, 10, 128, 18, 37, 74, 165, 208, 133, 72]}, {"55061019": [144, 33, 8]}, {"55061023": [1, 165, 72]}, {"55061027": [144, 161, 32]}, {"55061032": [3, 224]}, {"55061035": [8]}, {"55061040": [60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061051": [12, 17, 32]}, {"55061055": [2]}, {"55061060": [129, 3]}, {"55061063": [2]}, {"55061065": [3, 15, 195]}, {"55061069": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061083": [8]}, {"55061088": [144, 69]}, {"55061091": [3, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061103": [12, 17, 32]}, {"55061107": [2]}, {"55061112": [145, 5]}, {"55061115": [3, 3, 224]}, {"55061119": [8]}, {"55061124": [143, 162]}, {"55061127": [36, 144, 69]}, {"55061132": [60, 8, 128, 64, 37, 8, 32]}, {"55061140": [133, 9]}, {"55061143": [2, 17, 32]}, {"55061147": [4, 52, 10]}, {"55061151": [1, 165, 10]}, {"55061156": [16]}, {"55061159": [24, 52, 5]}, {"55061163": [65, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061175": [12, 17, 32]}, {"55061179": [19]}, {"55061184": [145, 5]}, {"55061187": [1, 175, 164]}, {"55061192": [175, 165]}, {"55061195": [4, 175, 166]}, {"55061199": [8, 39, 189, 255, 232, 175, 191]}, {"55061207": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061219": [6, 145, 6]}, {"55061223": [7, 141, 9]}, {"55061227": [8, 1, 32, 248, 9]}, {"55061236": [143, 191]}, {"55061239": [16, 39, 189]}, {"55061243": [24, 143, 164]}, {"55061248": [143, 165]}, {"55061251": [4, 143, 166]}, {"55061255": [8, 3, 224]}, {"55061259": [8]}, {"55061264": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061275": [16, 175, 163]}, {"55061279": [20, 175, 191]}, {"55061283": [24, 12, 16, 10, 209]}, {"55061292": [143, 162]}, {"55061295": [16, 143, 163]}, {"55061299": [20, 143, 191]}, {"55061303": [24, 39, 189]}, {"55061307": [32, 3, 224]}, {"55061311": [8]}, {"55061316": [39, 189, 255, 232, 175, 191]}, {"55061323": [16, 60, 8, 128, 64, 37, 8, 32, 8, 173]}, {"55061336": [173]}, {"55061339": [4, 173]}, {"55061343": [8, 173]}, {"55061347": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061363": [42]}, {"55061369": [9, 15, 195, 1, 33, 32, 38]}, {"55061377": [129, 32, 35, 141, 5, 4, 40, 12, 16, 11, 11]}, {"55061392": [4, 64]}, {"55061395": [34]}, {"55061400": [52, 68]}, {"55061404": [12, 16, 11, 114]}, {"55061412": [16, 96]}, {"55061415": [12]}, {"55061420": [60, 8, 128, 64, 37, 8, 32, 8, 140, 105]}, {"55061432": [173, 9]}, {"55061436": [140, 105]}, {"55061439": [4, 173, 9]}, {"55061443": [4, 140, 105]}, {"55061447": [8, 173, 9]}, {"55061451": [8, 52, 9]}, {"55061455": [1, 173, 9]}, {"55061459": [12, 144, 98]}, {"55061464": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061480": [52, 1]}, {"55061483": [10, 21, 65]}, {"55061487": [6]}, {"55061492": [149, 42]}, {"55061495": [28, 49, 74, 240, 31]}, {"55061501": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061511": [28, 129, 9, 4, 36, 5, 33]}, {"55061519": [2]}, {"55061525": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061535": [16, 39, 189]}, {"55061539": [24, 3, 224]}, {"55061543": [8]}, {"55061548": [39, 189, 255, 232, 175, 191]}, {"55061555": [16, 12, 16, 11, 25]}, {"55061564": [36, 1, 255, 255, 16, 65]}, {"55061571": [4]}, {"55061576": [52, 68]}, {"55061580": [12, 16, 11, 77]}, {"55061588": [143, 191]}, {"55061591": [16, 39, 189]}, {"55061595": [24, 3, 224]}, {"55061599": [8]}, {"55061604": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061615": [164, 52, 8]}, {"55061620": [52, 137]}, {"55061624": [148, 170]}, {"55061628": [52, 1, 1, 156, 21, 65]}, {"55061635": [8]}, {"55061640": [52, 8]}, {"55061643": [3, 148, 171]}, {"55061647": [28, 49, 105]}, {"55061651": [255, 49, 98, 31]}, {"55061657": [2, 18, 2, 16]}, {"55061663": [31]}, {"55061668": [52, 1]}, {"55061671": [10, 21, 65]}, {"55061675": [14]}, {"55061680": [148, 171]}, {"55061683": [28, 52, 1]}, {"55061687": [16, 20, 65]}, {"55061691": [8]}, {"55061696": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061707": [4]}, {"55061712": [36, 2, 255, 255, 16]}, {"55061719": [21]}, {"55061724": [52, 8]}, {"55061727": [1, 49, 105]}, {"55061731": [31, 52, 1]}, {"55061735": [21, 21, 65]}, {"55061739": [12]}, {"55061744": [52, 1]}, {"55061747": [62, 16, 129]}, {"55061751": [7]}, {"55061756": [52, 1]}, {"55061759": [66, 16, 129]}, {"55061763": [4]}, {"55061768": [36, 2, 255, 255, 16]}, {"55061775": [7]}, {"55061780": [52, 8]}, {"55061783": [2, 144, 169, 1, 65]}, {"55061789": [2, 18]}, {"55061793": [72, 16, 37]}, {"55061797": [2, 18]}, {"55061801": [73, 16, 37, 3, 224]}, {"55061807": [8]}, {"55061812": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061824": [129, 9]}, {"55061828": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061851": [4, 141, 9]}, {"55061856": [17, 32]}, {"55061859": [23]}, {"55061865": [9, 82, 2, 49, 75, 248]}, {"55061873": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061896": [49, 34]}, {"55061899": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061920": [60, 12, 128, 64, 37, 140, 28]}, {"55061928": [129, 140]}, {"55061932": [17, 108]}, {"55061935": [4, 165, 32]}, {"55061939": [2, 161, 43]}, {"55061943": [2, 161, 34]}, {"55061947": [3, 173, 36]}, {"55061951": [4, 3, 224]}, {"55061955": [8]}, {"55061960": [39, 189, 255, 224, 175, 176]}, {"55061967": [16, 175, 177]}, {"55061971": [20, 175, 191]}, {"55061975": [24, 52, 130]}, {"55061980": [52, 80]}, {"55061984": [38, 8, 255, 128, 5]}, {"55061991": [18]}, {"55061996": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55062007": [16, 1, 9]}, {"55062011": [24]}, {"55062014": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55062032": [142, 40]}, {"55062035": [12, 1]}, {"55062038": [248, 9]}, {"55062044": [20, 80, 255, 239]}, {"55062052": [54, 35]}, {"55062056": [16]}, {"55062059": [2]}, {"55062064": [52, 3]}, {"55062068": [143, 176]}, {"55062071": [16, 143, 177]}, {"55062075": [20, 143, 191]}, {"55062079": [24, 39, 189]}, {"55062083": [32, 3, 224]}, {"55062087": [8]}, {"55062092": [140, 136, 29, 44, 52, 9]}, {"55062099": [1]}, {"55062101": [9, 78]}, {"55062104": [1, 9, 16, 36, 16, 64]}, {"55062111": [36]}, {"55062116": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062131": [164, 52, 1]}, {"55062135": [61, 17, 129]}, {"55062139": [10]}, {"55062145": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062155": [25]}, {"55062160": [52, 13]}, {"55062163": [1, 161, 141, 29, 40, 37, 74]}, {"55062171": [3, 16]}, {"55062175": [9]}, {"55062180": [52, 12]}, {"55062183": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062199": [14]}, {"55062204": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062240": [60, 9, 128, 64, 37, 41, 32, 24, 161, 40]}, {"55062252": [52, 2]}, {"55062256": [3, 224]}, {"55062259": [8]}, {"55062264": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062276": [16]}, {"55062279": [34]}, {"55062284": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062296": [16]}, {"55062299": [29]}, {"55062304": [52, 2]}, {"55062307": [255, 32, 232, 255, 166, 33, 8]}, {"55062315": [97, 16]}, {"55062319": [24]}, {"55062324": [52, 8]}, {"55062327": [100, 16]}, {"55062331": [21]}, {"55062336": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062351": [1, 160, 40, 14, 222, 52, 8]}, {"55062359": [104, 16]}, {"55062363": [13]}, {"55062368": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062383": [4, 160, 40, 14, 222, 52, 8]}, {"55062391": [106, 16]}, {"55062395": [5]}, {"55062400": [52, 5]}, {"55062403": [3, 52, 8]}, {"55062407": [107, 16]}, {"55062411": [1]}, {"55062416": [60, 9, 128, 64, 37, 41, 32, 24, 60, 10, 128, 64, 37, 74, 32, 27, 129, 44]}, {"55062436": [17, 136]}, {"55062439": [11, 33, 41]}, {"55062443": [1, 21, 42, 255, 252]}, {"55062452": [60, 9, 128, 64, 37, 41, 32, 23, 33, 41]}, {"55062463": [1, 17, 42]}, {"55062467": [4, 129, 44]}, {"55062472": [21, 128, 255, 252]}, {"55062480": [161, 40]}, {"55062484": [3, 224]}, {"55062487": [8]}, {"55062493": [96, 120, 33, 129, 236, 14, 223, 49, 142]}, {"55062503": [128, 17, 192]}, {"55062507": [3, 52, 3]}, {"55062511": [5, 3, 224]}, {"55062515": [8, 52, 2]}, {"55062519": [2, 3, 224]}, {"55062523": [8]}, {"55062525": [96, 16, 33, 133, 194]}, {"55062531": [164, 60, 8, 128, 18, 37, 8, 165, 208, 129, 9, 14, 223, 53, 41]}, {"55062547": [128, 161, 9, 14, 223, 3, 224]}, {"55062555": [8]}, {"55062560": [175, 164]}, {"55062563": [104, 175, 165]}, {"55062567": [108, 175, 166]}, {"55062571": [112, 175, 167]}, {"55062575": [116, 39, 189, 255, 232, 175, 163]}, {"55062583": [16, 175, 191]}, {"55062587": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062603": [32, 21]}, {"55062607": [31]}, {"55062612": [60, 9, 128, 64, 37, 41, 32, 27, 52, 10]}, {"55062623": [255, 161, 42]}, {"55062628": [60, 9, 128, 64, 37, 41, 32, 24, 36, 10, 255, 255, 52, 12]}, {"55062643": [3, 33, 74]}, {"55062647": [1, 17, 76]}, {"55062651": [20, 1, 42, 88, 32, 129, 104]}, {"55062660": [17]}, {"55062662": [255, 251]}, {"55062668": [60, 9, 128, 64, 37, 41, 32, 27, 161, 42]}, {"55062680": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062691": [1, 165, 42]}, {"55062696": [60, 9, 128, 65, 52, 10]}, {"55062703": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 209]}, {"55062732": [143, 163]}, {"55062735": [16, 143, 191]}, {"55062739": [20, 39, 189]}, {"55062743": [24, 143, 164]}, {"55062747": [104, 143, 165]}, {"55062751": [108, 143, 166]}, {"55062755": [112, 143, 167]}, {"55062759": [116, 132, 110, 19, 196, 3, 224]}, {"55062767": [8]}, {"55062772": [147, 25]}, {"55062775": [116, 52, 1]}, {"55062779": [255, 23, 33]}, {"55062783": [2]}, {"55062788": [52, 25]}, {"55062791": [44, 3, 224]}, {"55062795": [8, 167, 185]}, {"55062799": [154, 147, 44]}, {"55062803": [116, 52, 1]}, {"55062807": [255, 21, 129]}, {"55062811": [2]}, {"55062816": [52, 12]}, {"55062819": [44, 3, 224]}, {"55062823": [8]}, {"55062828": [145, 174]}, {"55062831": [116, 52, 1]}, {"55062835": [255, 21, 193]}, {"55062839": [2]}, {"55062844": [52, 14]}, {"55062847": [44, 3, 224]}, {"55062851": [8, 167, 174]}, {"55062855": [154, 145, 207]}, {"55062859": [116, 52, 1]}, {"55062863": [255, 21, 225]}, {"55062867": [2]}, {"55062872": [52, 15]}, {"55062875": [44, 3, 224]}, {"55062879": [8, 167, 175]}, {"55062883": [154, 60, 8, 128, 64, 37, 8, 32, 28, 142, 9]}, {"55062895": [104, 173, 9]}, {"55062900": [142, 9]}, {"55062903": [108, 173, 9]}, {"55062907": [4, 150, 9]}, {"55062911": [112, 165, 9]}, {"55062915": [8, 150, 9]}, {"55062919": [156, 165, 9]}, {"55062923": [10, 3, 224]}, {"55062927": [8, 142, 14]}, {"55062931": [4, 39, 189, 255, 224, 175, 176]}, {"55062939": [16, 175, 177]}, {"55062943": [20, 175, 191]}, {"55062947": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 28, 142, 8]}, {"55062967": [4, 17]}, {"55062971": [5]}, {"55062976": [12, 16, 12, 143]}, {"55062984": [16]}, {"55062987": [3]}, {"55062992": [12, 16, 12, 162]}, {"55063000": [12, 16, 12, 130, 52, 4]}, {"55063008": [12, 16, 12, 130, 52, 4]}, {"55063015": [1, 12, 16, 12, 130, 52, 4]}, {"55063023": [2, 143, 176]}, {"55063027": [16, 143, 177]}, {"55063031": [20, 143, 191]}, {"55063035": [24, 39, 189]}, {"55063039": [32, 3, 224]}, {"55063043": [8]}, {"55063048": [2, 4, 64, 33, 145, 9]}, {"55063055": [108, 52, 1]}, {"55063059": [255, 17, 33]}, {"55063063": [7]}, {"55063068": [2, 9, 72, 33, 145, 41]}, {"55063075": [116, 52, 1]}, {"55063079": [44, 17, 33]}, {"55063083": [2]}, {"55063088": [161, 9]}, {"55063091": [105, 3, 224]}, {"55063095": [8]}, {"55063100": [39, 189, 255, 232, 175, 191]}, {"55063107": [16, 142, 40]}, {"55063112": [174, 8]}, {"55063115": [64, 142, 40]}, {"55063119": [4, 174, 8]}, {"55063123": [68, 150, 40]}, {"55063127": [8, 166, 8]}, {"55063131": [72, 162]}, {"55063134": [15, 51, 146, 8]}, {"55063139": [74, 52, 1]}, {"55063143": [255, 21, 1]}, {"55063147": [3]}, {"55063152": [12, 16, 12, 176]}, {"55063160": [143, 191]}, {"55063163": [16, 39, 189]}, {"55063167": [24, 3, 224]}, {"55063171": [8]}, {"55063176": [142, 8]}, {"55063179": [64, 174, 8]}, {"55063183": [104, 142, 8]}, {"55063187": [68, 174, 8]}, {"55063191": [108, 150, 8]}, {"55063195": [72, 166, 8]}, {"55063199": [112, 146, 8]}, {"55063203": [104, 52, 1]}, {"55063207": [255, 21, 1]}, {"55063211": [3]}, {"55063216": [52, 8]}, {"55063219": [1, 162, 8, 15, 51, 3, 224]}, {"55063227": [8]}, {"55063232": [39, 189, 255, 232, 175, 191]}, {"55063239": [16, 150, 8]}, {"55063243": [156, 49, 8]}, {"55063247": [64, 17]}, {"55063251": [5]}, {"55063256": [150, 8]}, {"55063259": [112, 49, 8, 255, 15, 53, 8]}, {"55063267": [48, 166, 8]}, {"55063271": [112, 146, 40]}, {"55063275": [1, 162, 8]}, {"55063279": [105, 150, 40]}, {"55063283": [2, 166, 8]}, {"55063287": [106, 142, 40]}, {"55063291": [4, 174, 8]}, {"55063295": [108, 12, 16, 12, 202, 52, 4]}, {"55063304": [12, 16, 12, 202, 52, 4]}, {"55063311": [1, 12, 16, 12, 202, 52, 4]}, {"55063319": [2, 143, 191]}, {"55063323": [16, 39, 189]}, {"55063327": [24, 3, 224]}, {"55063331": [8]}, {"55063336": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 51, 212, 145, 10]}, {"55063351": [108, 52, 1]}, {"55063355": [255, 17, 65]}, {"55063359": [5]}, {"55063364": [1, 42, 72, 33, 145, 41]}, {"55063372": [21, 32]}, {"55063375": [28]}, {"55063380": [60, 9, 128, 64, 37, 41, 51, 199, 37, 41]}, {"55063391": [1, 145, 42]}, {"55063396": [17, 64]}, {"55063399": [19]}, {"55063404": [2, 10, 88, 33, 145, 107]}, {"55063411": [116, 52, 1]}, {"55063415": [255, 17, 97, 255, 248]}, {"55063424": [146, 12]}, {"55063427": [108, 17, 138, 255, 245]}, {"55063436": [146, 12]}, {"55063439": [109, 17, 138, 255, 242]}, {"55063448": [146, 12]}, {"55063451": [110, 17, 138, 255, 239]}, {"55063460": [161, 11]}, {"55063463": [105, 161, 10]}, {"55063467": [108, 16]}, {"55063471": [4]}, {"55063476": [52, 9]}, {"55063479": [255, 161, 9]}, {"55063483": [105, 161, 9]}, {"55063487": [108, 3, 224]}, {"55063491": [8]}, {"55063496": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063509": [1, 1, 1, 1, 1]}, {"55063515": [1, 1, 1, 1, 1]}, {"55063521": [1]}, {"55063523": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063533": [51, 8, 33, 32, 15]}, {"55063539": [71, 21, 234]}, {"55063543": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063555": [164]}, {"55063557": [15, 122, 3, 20, 64]}, {"55063563": [5, 52, 2, 72, 48, 21, 226]}, {"55063571": [7]}, {"55063576": [36, 25]}, {"55063579": [3, 16]}, {"55063583": [4, 52, 2, 99, 17, 21, 226]}, {"55063591": [2]}, {"55063596": [36, 25]}, {"55063599": [3, 3, 224]}, {"55063603": [8]}, {"55063608": [141, 173, 138, 160, 52, 2, 128]}, {"55063616": [16, 77]}, {"55063619": [2]}, {"55063624": [16]}, {"55063627": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063643": [1, 16, 64]}, {"55063647": [2]}, {"55063652": [16]}, {"55063655": [2, 52, 2]}, {"55063659": [1, 161, 226, 28, 191, 3, 224]}, {"55063667": [8]}, {"55063673": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063687": [164]}, {"55063689": [15, 122, 3, 20, 64]}, {"55063695": [5, 52, 2, 72, 48, 21, 226]}, {"55063703": [7]}, {"55063708": [36, 25]}, {"55063711": [3, 16]}, {"55063715": [4, 52, 2, 99, 17, 21, 226]}, {"55063723": [2]}, {"55063728": [36, 25]}, {"55063731": [3, 3, 224]}, {"55063735": [8]}, {"55063740": [162, 37]}, {"55063743": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063755": [4, 142, 10]}, {"55063760": [17, 64]}, {"55063763": [11]}, {"55063769": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063781": [24, 194, 2, 23]}, {"55063787": [3, 49, 89]}, {"55063791": [255, 129, 234]}, {"55063796": [3, 42, 200, 37, 8, 16, 13, 50, 161, 249]}, {"55063808": [3, 224]}, {"55063811": [8]}] \ No newline at end of file diff --git a/version.py b/version.py index 5d6d185a8..50aee0759 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.16 f.LUM' +__version__ = '2.15.17 f.LUM' From 85e0ac7901d36eeaec60bf47ad52a15e720a256d Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Sun, 12 Aug 2018 02:10:45 -0400 Subject: [PATCH 263/755] updated gitignore to not include rom files --- .gitignore | 4 ++-- version.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 9aaf8b3c0..27ce2a541 100644 --- a/.gitignore +++ b/.gitignore @@ -5,5 +5,5 @@ settings.sav ARCHIVE.bin output/* -*.n64 -*.n64.bak +*.z64 +*.z64.bak diff --git a/version.py b/version.py index 50aee0759..419cbf478 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.17 f.LUM' +__version__ = '2.15.18 f.LUM' From 524a1c607bd2449ef1ccbab073f5269353423208 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Sun, 12 Aug 2018 12:35:16 -0400 Subject: [PATCH 264/755] Changed Player Number to Player ID --- Gui.py | 6 +++--- version.py | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gui.py b/Gui.py index a52972d4e..3f5e08f8e 100755 --- a/Gui.py +++ b/Gui.py @@ -339,7 +339,7 @@ def open_readme(): notebook.pack(fill=BOTH, expand=True, padx=5, pady=5) multiworldFrame = LabelFrame(frames['rom_tab'], text='Multi-World Generation') - countLabel = Label(multiworldFrame, wraplength=350, justify=LEFT, text='This is used for co-op generations. Increasing World Count will drastically increase the generation time. For more information see:') + countLabel = Label(multiworldFrame, wraplength=350, justify=LEFT, text='This is used for co-op generations. Increasing Player Count will drastically increase the generation time. For more information see:') hyperLabel = Label(multiworldFrame, wraplength=350, justify=LEFT, text='https://github.com/TestRunnerSRL/bizhawk-co-op', fg='blue', cursor='hand2') hyperLabel.bind("", lambda event: webbrowser.open_new(r"https://github.com/TestRunnerSRL/bizhawk-co-op")) countLabel.pack(side=TOP, anchor=W, padx=5, pady=0) @@ -347,7 +347,7 @@ def open_readme(): worldCountFrame = Frame(multiworldFrame) - countLabel = Label(worldCountFrame, text='World Count') + countLabel = Label(worldCountFrame, text='Player Count') guivars['world_count'] = StringVar() countSpinbox = Spinbox(worldCountFrame, from_=1, to=100, textvariable=guivars['world_count'], width=3) @@ -356,7 +356,7 @@ def open_readme(): worldCountFrame.pack(side=LEFT, anchor=N, padx=10, pady=(1,5)) playerNumFrame = Frame(multiworldFrame) - countLabel = Label(playerNumFrame, text='Player Number') + countLabel = Label(playerNumFrame, text='Player ID') guivars['player_num'] = StringVar() countSpinbox = Spinbox(playerNumFrame, from_=1, to=100, textvariable=guivars['player_num'], width=3) diff --git a/version.py b/version.py index 419cbf478..5202f0252 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.18 f.LUM' +__version__ = '2.15.19 f.LUM' From 01c8f9c15c32688c7d6f9cce058fd348503ae61b Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Sun, 12 Aug 2018 20:54:45 -0300 Subject: [PATCH 265/755] Logic Fixes --- EntranceShuffle.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/EntranceShuffle.py b/EntranceShuffle.py index 5df287b93..954e52a26 100644 --- a/EntranceShuffle.py +++ b/EntranceShuffle.py @@ -209,8 +209,10 @@ def connect_doors(world, doors, targets): ('Gerudo Training Grounds Hidden Hookshot Target', 'Gerudo Training Grounds Eye Statue Upper'), ('Spirit Temple Crawl Passage', 'Child Spirit Temple'), ('Spirit Temple Silver Block', 'Early Adult Spirit Temple'), + ('Child Spirit Temple Climb', 'Child Spirit Temple Climb'), ('Child Spirit Temple Passthrough', 'Spirit Temple Central Chamber'), ('Adult Spirit Temple Passthrough', 'Spirit Temple Central Chamber'), + ('Spirit Temple Middle Child Door', 'Child Spirit Temple Climb'), ('Spirit Temple to Hands', 'Spirit Temple Outdoor Hands'), ('Spirit Temple Central Locked Door', 'Spirit Temple Beyond Central Locked Door'), ('Spirit Temple Final Locked Door', 'Spirit Temple Beyond Final Locked Door'), From 13a4430fe8ce857f1039fa6a968b326ea4ef4083 Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Sun, 12 Aug 2018 20:55:37 -0300 Subject: [PATCH 266/755] Logic Fixes --- Dungeons.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Dungeons.py b/Dungeons.py index 4e1caf51c..995acf012 100644 --- a/Dungeons.py +++ b/Dungeons.py @@ -85,8 +85,8 @@ def make_dungeon(name, dungeon_regions, boss_key, small_keys, dungeon_items): SpT = make_dungeon( 'Spirit Temple', - ['Spirit Temple Lobby', 'Child Spirit Temple', 'Early Adult Spirit Temple', 'Spirit Temple Central Chamber', - 'Spirit Temple Beyond Central Locked Door', 'Spirit Temple Beyond Final Locked Door'], + ['Spirit Temple Lobby', 'Child Spirit Temple', 'Child Spirit Temple Climb', 'Early Adult Spirit Temple', + 'Spirit Temple Central Chamber', 'Spirit Temple Beyond Central Locked Door', 'Spirit Temple Beyond Final Locked Door'], ItemFactory('Boss Key (Spirit Temple)'), ItemFactory(['Small Key (Spirit Temple)'] * 5), ItemFactory(['Map (Spirit Temple)', 'Compass (Spirit Temple)'])) @@ -100,4 +100,4 @@ def make_dungeon(name, dungeon_regions, boss_key, small_keys, dungeon_items): []) world.dungeons = [DT, DC, JB, FoT, BW, FiT, IC, WT, ShT, GTG, SpT, GC] - \ No newline at end of file + From 1506bebadb06836671905aaec13e82e84aa7add2 Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Sun, 12 Aug 2018 20:56:35 -0300 Subject: [PATCH 267/755] Logic Fixes --- Regions.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Regions.py b/Regions.py index f6bb2e022..0e5f58f7d 100644 --- a/Regions.py +++ b/Regions.py @@ -158,6 +158,11 @@ def create_regions(world): create_dungeon_region( 'Child Spirit Temple', ['Spirit Temple Child Left Chest', 'Spirit Temple Child Right Chest', 'GS Spirit Temple Metal Fence'], + ['Child Spirit Temple Climb']), + create_dungeon_region( + 'Child Spirit Temple Climb', + ['Spirit Temple Child Climb East Chest', 'Spirit Temple Child Climb North Chest', + 'GS Spirit Temple Bomb for Light Room'], ['Child Spirit Temple Passthrough']), create_dungeon_region( 'Early Adult Spirit Temple', @@ -167,10 +172,9 @@ def create_regions(world): ['Adult Spirit Temple Passthrough']), create_dungeon_region( 'Spirit Temple Central Chamber', - ['Spirit Temple Map Chest', 'Spirit Temple Child Climb East Chest', 'Spirit Temple Child Climb North Chest', - 'Spirit Temple Sun Block Room Chest', 'Spirit Temple Statue Hand Chest', 'Spirit Temple NE Main Room Chest', - 'GS Spirit Temple Bomb for Light Room', 'GS Spirit Temple Hall to West Iron Knuckle', 'GS Spirit Temple Lobby'], - ['Spirit Temple to Hands', 'Spirit Temple Central Locked Door']), + ['Spirit Temple Map Chest', 'Spirit Temple Sun Block Room Chest', 'Spirit Temple Statue Hand Chest', + 'Spirit Temple NE Main Room Chest', 'GS Spirit Temple Hall to West Iron Knuckle', 'GS Spirit Temple Lobby'], + ['Spirit Temple to Hands', 'Spirit Temple Central Locked Door', 'Spirit Temple Middle Child Door']), create_dungeon_region( 'Spirit Temple Outdoor Hands', ['Silver Gauntlets Chest', 'Mirror Shield Chest']), From d276afcf6dfea2b468faaaadc529aa3ad08a1161 Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Sun, 12 Aug 2018 20:58:34 -0300 Subject: [PATCH 268/755] Logic Fixes --- Rules.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/Rules.py b/Rules.py index 1ab7c91c3..f2571b857 100644 --- a/Rules.py +++ b/Rules.py @@ -100,7 +100,7 @@ def global_rules(world): set_rule(world.get_entrance('Bottom of the Well'), lambda state: state.can_play('Song of Storms')) set_rule(world.get_entrance('Death Mountain Entrance'), lambda state: state.has('Zeldas Letter') or state.is_adult() or world.open_kakariko) set_rule(world.get_location('Death Mountain Bombable Chest'), lambda state: state.can_blast_or_smash()) - set_rule(world.get_location('Biggoron'), lambda state: (not world.logic_no_trade_biggoron) and (state.can_blast_or_smash() and state.is_adult() and state.can_finish_adult_trades() and state.guarantee_hint())) + set_rule(world.get_location('Biggoron'), lambda state: (not world.logic_no_trade_biggoron) and (state.has('Progressive Strength Upgrade') or state.can_blast_or_smash() or state.has('Bow')) and state.is_adult() and state.can_finish_adult_trades() and state.guarantee_hint()) set_rule(world.get_location('Goron City Leftmost Maze Chest'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade', 2) or state.has('Hammer'))) set_rule(world.get_location('Goron City Left Maze Chest'), lambda state: state.can_blast_or_smash() or (state.has('Progressive Strength Upgrade', 2) and state.is_adult())) set_rule(world.get_location('Goron City Right Maze Chest'), lambda state: state.can_blast_or_smash() or (state.has('Progressive Strength Upgrade', 2) and state.is_adult())) @@ -165,7 +165,7 @@ def global_rules(world): set_rule(world.get_location('Sheik at Temple'), lambda state: state.has('Forest Medallion') and state.is_adult()) set_rule(world.get_location('Diving in the Lab'), lambda state: state.has('Progressive Scale', 2)) set_rule(world.get_location('Child Fishing'), lambda state: (not world.logic_no_child_fishing) and state.has('Kokiri Sword')) - set_rule(world.get_location('Adult Fishing'), lambda state: (not world.logic_no_adult_fishing) and (state.is_adult() and ((state.has('Progressive Hookshot') and state.has_ocarina()) or state.has('Magic Bean')))) + set_rule(world.get_location('Adult Fishing'), lambda state: (not world.logic_no_adult_fishing) and state.is_adult() and ((state.has('Progressive Hookshot') and state.has_ocarina()) or state.has('Magic Bean') or state.can_reach(world.get_location('Morpha')))) set_rule(world.get_location('Lake Hylia Freestanding PoH'), lambda state: state.is_adult() and ((state.has('Progressive Hookshot') and state.has_ocarina()) or state.has('Magic Bean'))) set_rule(world.get_location('Lake Hylia Sun'), lambda state: ((state.has('Progressive Hookshot', 2) and state.has_ocarina()) or state.can_reach(world.get_location('Morpha'))) and state.has('Bow') and state.is_adult()) set_rule(world.get_entrance('Crater Hover Boots'), lambda state: state.is_adult() and state.has('Hover Boots')) @@ -386,13 +386,14 @@ def dung_rules_wt0(world): set_rule(world.get_location('GS Water Temple Falling Platform Room'), lambda state: state.has('Progressive Hookshot', 2)) set_rule(world.get_location('GS Water Temple Central Room'), lambda state: state.has('Progressive Hookshot', 2) or (state.has('Farores Wind') and state.has('Magic'))) #5 keys would be better but it wouldn't be compatible with the key for key scenarios, 6 will be identical pre-keysanity. - set_rule(world.get_location('GS Water Temple Near Boss Key Chest'), lambda state: state.has('Progressive Hookshot', 2) and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and state.has('Small Key (Water Temple)', 6)) + set_rule(world.get_location('GS Water Temple Near Boss Key Chest'), lambda state: state.has('Progressive Hookshot', 2) and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and (state.can_play('Zeldas Lullaby') or world.keysanity) and state.has('Small Key (Water Temple)', 6)) def dung_rules_spt0(world): # Spirit Temple vanilla set_rule(world.get_entrance('Spirit Temple Crawl Passage'), lambda state: state.can_play('Requiem of Spirit')) set_rule(world.get_entrance('Spirit Temple Silver Block'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.is_adult()) - set_rule(world.get_entrance('Child Spirit Temple Passthrough'), lambda state: state.has_explosives() and state.has('Small Key (Spirit Temple)', 1)) + set_rule(world.get_entrance('Child Spirit Temple Climb'), lambda state: state.has('Small Key (Spirit Temple)', 1)) + set_rule(world.get_entrance('Child Spirit Temple Passthrough'), lambda state: state.has_explosives()) set_rule(world.get_entrance('Adult Spirit Temple Passthrough'), lambda state: state.has('Small Key (Spirit Temple)', 1)) set_rule(world.get_entrance('Spirit Temple Central Locked Door'), lambda state: state.has('Small Key (Spirit Temple)', 4) and state.has('Progressive Strength Upgrade', 2) and state.is_adult()) set_rule(world.get_entrance('Spirit Temple Final Locked Door'), lambda state: state.has('Small Key (Spirit Temple)', 5) and (state.has('Progressive Hookshot') or state.has('Bow') or state.has_explosives())) @@ -402,10 +403,10 @@ def dung_rules_spt0(world): set_rule(world.get_location('Spirit Temple Early Adult Right Chest'), lambda state: state.has('Bow') or state.has('Progressive Hookshot') or state.has_bombchus()) #requires a very specific Bombchu use, Hover Boots can be skipped by jumping on top of the rolling rock. set_rule(world.get_location('Spirit Temple First Mirror Right Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3)) set_rule(world.get_location('Spirit Temple First Mirror Left Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3)) - set_rule(world.get_location('Spirit Temple Map Chest'), lambda state: (state.has('Small Key (Spirit Temple)', 5) and state.can_play('Requiem of Spirit')) or (state.has('Magic Meter') and (state.has('Dins Fire') or (state.has('Fire Arrows') and state.has('Bow') and state.has('Progressive Strength Upgrade', 2) and state.has('Small Key (Spirit Temple)', 3) and state.is_adult())))) + set_rule(world.get_location('Spirit Temple Map Chest'), lambda state: (state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit')) or (state.has('Magic Meter') and (state.has('Dins Fire') or (state.has('Fire Arrows') and state.has('Bow') and state.has('Progressive Strength Upgrade', 2) and state.has('Small Key (Spirit Temple)', 3) and state.is_adult())))) set_rule(world.get_location('Spirit Temple Child Climb East Chest'), lambda state: state.has_explosives() or ((state.has('Boomerang') or state.has('Slingshot')) and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 5) and state.can_play('Requiem of Spirit') and (state.has('Boomerang') or state.has('Slingshot')))) set_rule(world.get_location('Spirit Temple Child Climb North Chest'), lambda state: state.has_explosives() or ((state.has('Boomerang') or state.has('Slingshot')) and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 5) and state.can_play('Requiem of Spirit') and (state.has('Boomerang') or state.has('Slingshot')))) - set_rule(world.get_location('Spirit Temple Sun Block Room Chest'), lambda state: (state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit')) or (state.has_fire_source() and (state.has_explosives() or state.has('Small Key (Spirit Temple)', 2)))) + set_rule(world.get_location('Spirit Temple Sun Block Room Chest'), lambda state: (state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit')) or (state.has('Magic Meter') and (state.has('Dins Fire') or (state.has('Fire Arrows') and state.has('Bow') and state.has('Progressive Strength Upgrade', 2) and state.has('Small Key (Spirit Temple)', 3) and state.is_adult())))) set_rule(world.get_location('Spirit Temple Statue Hand Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.can_play('Zeldas Lullaby')) set_rule(world.get_location('Spirit Temple NE Main Room Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.can_play('Zeldas Lullaby') and (state.has('Progressive Hookshot') or state.has("Hover Boots"))) set_rule(world.get_location('Mirror Shield Chest'), lambda state: state.has('Small Key (Spirit Temple)', 4) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.has_explosives()) From b4037670c21d7d6520203bd4409a9bcd29e736f4 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Sun, 12 Aug 2018 22:49:47 -0400 Subject: [PATCH 269/755] Fix having the child trade available too early in open kakariko --- ASM/src/hacks.asm | 6 ------ Rom.py | 5 +++-- data/base2current.json | 2 +- version.py | 2 +- 4 files changed, 5 insertions(+), 10 deletions(-) diff --git a/ASM/src/hacks.asm b/ASM/src/hacks.asm index bf9516449..17b7561e5 100755 --- a/ASM/src/hacks.asm +++ b/ASM/src/hacks.asm @@ -20,12 +20,6 @@ .org 0xAE59E0 ; In memory: 0x8006FA80 j after_time_travel -; Kakariko gate is not opened by MS -; Replaces: -; andi t9, t8, 0x0020 -.org 0xDD3538 - li t9, 0 - ;================================================================================================== ; Item Overrides ;================================================================================================== diff --git a/Rom.py b/Rom.py index d7c6b9ecc..7c43568f8 100644 --- a/Rom.py +++ b/Rom.py @@ -1042,8 +1042,9 @@ def write_save_table(rom): write_bits_to_save(0x0EEB, 0x01) # "Entered Dodongo's Cavern" write_bits_to_save(0x0F08, 0x08) # "Entered Hyrule Castle" - if world.open_kakariko: - write_bits_to_save(0x0F07, 0x40) # "Opened Kakariko Gate" + # Make the Kakariko Gate not open with the MS + if not world.open_kakariko: + rom.write_int32(0xDD3538, 0x34190000) # li t9, 0 # Make all chest opening animations fast if world.fast_chests: diff --git a/data/base2current.json b/data/base2current.json index f9a66a653..01d601258 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -1 +1 @@ -[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 196]}, {"11311804": [12, 16, 11, 205]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 190, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 101]}, {"11427312": [12, 16, 13, 14]}, {"11427320": [12, 16, 11, 200]}, {"11427332": [0, 0]}, {"11427335": [0]}, {"11431496": [12, 16, 11, 195, 1, 15, 192, 33]}, {"11559936": [130]}, {"11559938": [14, 222]}, {"11559948": [49, 248, 0, 2]}, {"11562028": [12, 16, 13, 47]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 30]}, {"11882076": [12, 16, 12, 251]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 68, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 75, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 82, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 61, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 140]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 18]}, {"12427480": [12, 16, 10, 106]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 110]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 12, 8, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 152]}, {"12491480": [12, 16, 10, 161]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 147]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 89]}, {"14109028": [16, 0]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 128, 73, 14, 222]}, {"14149508": [52]}, {"14149510": [0, 1, 2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 208]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 224]}, {"14497080": [52]}, {"14497083": [0]}, {"14624335": [118]}, {"14720872": [128]}, {"14720874": [14, 222]}, {"14720884": [49, 248, 0, 4]}, {"14720944": [12, 16, 11, 216]}, {"14848904": [8, 16, 11, 247]}, {"14852164": [12, 16, 12, 0]}, {"14872723": [52]}, {"15327704": [52, 9, 64, 0]}, {"15327728": [52]}, {"15327730": [91, 8]}, {"15327744": [52]}, {"15327746": [0, 10]}, {"15327757": [169]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 236, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 48, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 76, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 104, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 220, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 108, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 140, 128, 64, 38, 132, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 172, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 39, 212, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 28, 128, 64, 40]}, {"55059600": [83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 3, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 44, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [2, 52, 2]}, {"55060003": [69, 52, 2]}, {"55060007": [70, 3, 224]}, {"55060011": [8]}, {"55060016": [144, 136]}, {"55060019": [162, 49, 8]}, {"55060023": [6, 17]}, {"55060027": [2, 52, 2]}, {"55060031": [55, 52, 2]}, {"55060035": [56, 3, 224]}, {"55060039": [8]}, {"55060044": [144, 136]}, {"55060047": [161, 49, 8]}, {"55060051": [32, 17]}, {"55060055": [2, 52, 2]}, {"55060059": [121, 52, 2]}, {"55060063": [122, 3, 224]}, {"55060067": [8]}, {"55060072": [144, 136]}, {"55060075": [161, 49, 8]}, {"55060079": [4, 17]}, {"55060083": [2, 52, 2]}, {"55060087": [119, 52, 2]}, {"55060091": [120, 3, 224]}, {"55060095": [8]}, {"55060100": [144, 136]}, {"55060103": [50, 17]}, {"55060107": [2, 52, 2]}, {"55060111": [192, 52, 2]}, {"55060115": [193, 3, 224]}, {"55060119": [8]}, {"55060124": [144, 136]}, {"55060127": [163, 49, 8]}, {"55060131": [3, 17]}, {"55060135": [2, 52, 2]}, {"55060139": [77, 52, 162]}, {"55060144": [3, 224]}, {"55060147": [8]}, {"55060152": [144, 136]}, {"55060155": [163, 49, 8]}, {"55060159": [24, 17]}, {"55060163": [2, 52, 2]}, {"55060167": [77, 52, 162]}, {"55060172": [3, 224]}, {"55060175": [8]}, {"55060180": [3, 224]}, {"55060183": [8]}, {"55060188": [52, 8]}, {"55060191": [1, 160, 136]}, {"55060195": [62, 3, 224]}, {"55060199": [8]}, {"55060204": [36, 136]}, {"55060207": [134, 36, 9, 255, 255, 37, 41]}, {"55060215": [1, 52, 1]}, {"55060219": [3]}, {"55060221": [41, 8, 42, 20, 32]}, {"55060227": [7]}, {"55060232": [1, 9, 80, 33, 145, 75]}, {"55060240": [52, 1]}, {"55060243": [255, 21, 97, 255, 247]}, {"55060252": [161, 69]}, {"55060256": [3, 224]}, {"55060259": [8]}, {"55060264": [36, 136]}, {"55060267": [168, 1, 6, 64, 33, 145, 9]}, {"55060276": [1, 37, 72, 37, 161, 9]}, {"55060284": [3, 224]}, {"55060287": [8]}, {"55060292": [36, 136]}, {"55060295": [188, 1, 5, 64, 33, 129, 9]}, {"55060304": [5, 33]}, {"55060307": [2]}, {"55060312": [52, 9]}, {"55060316": [37, 41]}, {"55060319": [1, 161, 9]}, {"55060324": [3, 224]}, {"55060327": [8]}, {"55060332": [52, 8]}, {"55060335": [1, 160, 136]}, {"55060339": [61, 52, 8]}, {"55060343": [20, 160, 136]}, {"55060347": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [50, 160, 136]}, {"55060375": [58, 52, 8]}, {"55060379": [48, 164, 136, 19, 244, 160, 136]}, {"55060387": [51, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [2, 160, 136]}, {"55060403": [50, 52, 8]}, {"55060407": [1, 160, 136]}, {"55060411": [58, 160, 136]}, {"55060415": [60, 52, 8]}, {"55060419": [96, 164, 136, 19, 244, 160, 136]}, {"55060427": [51, 3, 224]}, {"55060431": [8]}, {"55060436": [144, 136]}, {"55060439": [124, 52, 1]}, {"55060443": [255, 17, 1]}, {"55060447": [6, 52, 2]}, {"55060451": [107, 144, 136]}, {"55060455": [148, 45, 8]}, {"55060459": [6, 17]}, {"55060463": [2, 52, 2]}, {"55060467": [106, 52, 2]}, {"55060471": [3, 3, 224]}, {"55060475": [8]}, {"55060480": [144, 136]}, {"55060483": [123, 52, 1]}, {"55060487": [255, 17, 1]}, {"55060491": [2, 52, 162]}, {"55060496": [52, 2]}, {"55060499": [12, 3, 224]}, {"55060503": [8]}, {"55060508": [52, 8]}, {"55060511": [7, 160, 136]}, {"55060515": [123, 3, 224]}, {"55060519": [8]}, {"55060524": [52, 8]}, {"55060527": [1]}, {"55060529": [168, 64, 4, 140, 137]}, {"55060535": [164, 1, 40, 72, 37, 172, 137]}, {"55060543": [164, 3, 224]}, {"55060547": [8]}, {"55060552": [48, 132]}, {"55060555": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060567": [140, 16, 129]}, {"55060571": [22, 145, 2]}, {"55060575": [117, 52, 1]}, {"55060579": [141, 16, 129]}, {"55060583": [19, 145, 2]}, {"55060587": [117, 16, 128]}, {"55060591": [17, 145, 2]}, {"55060595": [116, 52, 1]}, {"55060599": [138, 16, 129]}, {"55060603": [14, 145, 2]}, {"55060607": [116, 52, 1]}, {"55060611": [139, 16, 129]}, {"55060615": [11, 145, 2]}, {"55060619": [116, 52, 1]}, {"55060623": [88, 16, 129]}, {"55060627": [8, 52, 2]}, {"55060632": [52, 1]}, {"55060635": [120, 16, 129]}, {"55060639": [5, 52, 2]}, {"55060644": [52, 1]}, {"55060647": [121, 16, 129]}, {"55060651": [2, 52, 2]}, {"55060656": [52, 2]}, {"55060659": [255, 3, 224]}, {"55060663": [8]}, {"55060668": [39, 189, 255, 224, 175, 191]}, {"55060675": [16, 175, 176]}, {"55060679": [20, 12, 16, 11, 11]}, {"55060688": [4, 65]}, {"55060691": [2]}, {"55060696": [52, 2]}, {"55060699": [91]}, {"55060701": [64, 32, 33, 12, 16, 11, 114]}, {"55060712": [16, 96]}, {"55060715": [22, 175, 163]}, {"55060719": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060728": [133, 9]}, {"55060731": [2, 17, 32]}, {"55060735": [3, 52, 10]}, {"55060739": [1, 16]}, {"55060743": [12, 165, 10]}, {"55060748": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060759": [6, 144, 102]}, {"55060763": [7, 140, 105]}, {"55060767": [8, 1, 32, 248, 9]}, {"55060776": [143, 163]}, {"55060779": [28, 144, 101]}, {"55060783": [1, 12, 1, 191, 115, 2, 32, 32, 33, 143, 163]}, {"55060795": [28, 144, 101]}, {"55060799": [3, 16]}, {"55060803": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060815": [6]}, {"55060817": [74]}, {"55060819": [24]}, {"55060822": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060832": [60, 8, 128, 64, 37, 8, 32]}, {"55060840": [133, 9]}, {"55060843": [2, 17, 32]}, {"55060847": [3, 52, 10]}, {"55060851": [1, 165, 10]}, {"55060856": [52, 5]}, {"55060859": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060871": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060882": [48, 33, 143, 191]}, {"55060887": [16, 143, 176]}, {"55060891": [20, 39, 189]}, {"55060895": [32, 3, 224]}, {"55060899": [8]}, {"55060904": [143, 166]}, {"55060907": [48, 132, 197]}, {"55060911": [4, 8, 16, 10, 114]}, {"55060920": [143, 185]}, {"55060923": [44, 135, 37]}, {"55060927": [4, 8, 16, 10, 114]}, {"55060936": [60, 10, 128, 64, 37, 74, 32, 8, 141, 75]}, {"55060947": [12, 17, 96]}, {"55060951": [2]}, {"55060956": [149, 69]}, {"55060959": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060972": [60, 9, 128, 64, 37, 41, 32, 24, 129, 42]}, {"55060983": [3, 5, 64]}, {"55060987": [11, 1, 42, 72, 32, 129, 40]}, {"55060996": [52, 10]}, {"55060999": [127, 21, 10]}, {"55061003": [6]}, {"55061008": [60, 10, 128, 18, 37, 74, 165, 208, 133, 72]}, {"55061019": [144, 33, 8]}, {"55061023": [1, 165, 72]}, {"55061027": [144, 161, 32]}, {"55061032": [3, 224]}, {"55061035": [8]}, {"55061040": [60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061051": [12, 17, 32]}, {"55061055": [2]}, {"55061060": [129, 3]}, {"55061063": [2]}, {"55061065": [3, 15, 195]}, {"55061069": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061083": [8]}, {"55061088": [144, 69]}, {"55061091": [3, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061103": [12, 17, 32]}, {"55061107": [2]}, {"55061112": [145, 5]}, {"55061115": [3, 3, 224]}, {"55061119": [8]}, {"55061124": [143, 162]}, {"55061127": [36, 144, 69]}, {"55061132": [60, 8, 128, 64, 37, 8, 32]}, {"55061140": [133, 9]}, {"55061143": [2, 17, 32]}, {"55061147": [4, 52, 10]}, {"55061151": [1, 165, 10]}, {"55061156": [16]}, {"55061159": [24, 52, 5]}, {"55061163": [65, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061175": [12, 17, 32]}, {"55061179": [19]}, {"55061184": [145, 5]}, {"55061187": [1, 175, 164]}, {"55061192": [175, 165]}, {"55061195": [4, 175, 166]}, {"55061199": [8, 39, 189, 255, 232, 175, 191]}, {"55061207": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061219": [6, 145, 6]}, {"55061223": [7, 141, 9]}, {"55061227": [8, 1, 32, 248, 9]}, {"55061236": [143, 191]}, {"55061239": [16, 39, 189]}, {"55061243": [24, 143, 164]}, {"55061248": [143, 165]}, {"55061251": [4, 143, 166]}, {"55061255": [8, 3, 224]}, {"55061259": [8]}, {"55061264": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061275": [16, 175, 163]}, {"55061279": [20, 175, 191]}, {"55061283": [24, 12, 16, 10, 209]}, {"55061292": [143, 162]}, {"55061295": [16, 143, 163]}, {"55061299": [20, 143, 191]}, {"55061303": [24, 39, 189]}, {"55061307": [32, 3, 224]}, {"55061311": [8]}, {"55061316": [39, 189, 255, 232, 175, 191]}, {"55061323": [16, 60, 8, 128, 64, 37, 8, 32, 8, 173]}, {"55061336": [173]}, {"55061339": [4, 173]}, {"55061343": [8, 173]}, {"55061347": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061363": [42]}, {"55061369": [9, 15, 195, 1, 33, 32, 38]}, {"55061377": [129, 32, 35, 141, 5, 4, 40, 12, 16, 11, 11]}, {"55061392": [4, 64]}, {"55061395": [34]}, {"55061400": [52, 68]}, {"55061404": [12, 16, 11, 114]}, {"55061412": [16, 96]}, {"55061415": [12]}, {"55061420": [60, 8, 128, 64, 37, 8, 32, 8, 140, 105]}, {"55061432": [173, 9]}, {"55061436": [140, 105]}, {"55061439": [4, 173, 9]}, {"55061443": [4, 140, 105]}, {"55061447": [8, 173, 9]}, {"55061451": [8, 52, 9]}, {"55061455": [1, 173, 9]}, {"55061459": [12, 144, 98]}, {"55061464": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061480": [52, 1]}, {"55061483": [10, 21, 65]}, {"55061487": [6]}, {"55061492": [149, 42]}, {"55061495": [28, 49, 74, 240, 31]}, {"55061501": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061511": [28, 129, 9, 4, 36, 5, 33]}, {"55061519": [2]}, {"55061525": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061535": [16, 39, 189]}, {"55061539": [24, 3, 224]}, {"55061543": [8]}, {"55061548": [39, 189, 255, 232, 175, 191]}, {"55061555": [16, 12, 16, 11, 25]}, {"55061564": [36, 1, 255, 255, 16, 65]}, {"55061571": [4]}, {"55061576": [52, 68]}, {"55061580": [12, 16, 11, 77]}, {"55061588": [143, 191]}, {"55061591": [16, 39, 189]}, {"55061595": [24, 3, 224]}, {"55061599": [8]}, {"55061604": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061615": [164, 52, 8]}, {"55061620": [52, 137]}, {"55061624": [148, 170]}, {"55061628": [52, 1, 1, 156, 21, 65]}, {"55061635": [8]}, {"55061640": [52, 8]}, {"55061643": [3, 148, 171]}, {"55061647": [28, 49, 105]}, {"55061651": [255, 49, 98, 31]}, {"55061657": [2, 18, 2, 16]}, {"55061663": [31]}, {"55061668": [52, 1]}, {"55061671": [10, 21, 65]}, {"55061675": [14]}, {"55061680": [148, 171]}, {"55061683": [28, 52, 1]}, {"55061687": [16, 20, 65]}, {"55061691": [8]}, {"55061696": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061707": [4]}, {"55061712": [36, 2, 255, 255, 16]}, {"55061719": [21]}, {"55061724": [52, 8]}, {"55061727": [1, 49, 105]}, {"55061731": [31, 52, 1]}, {"55061735": [21, 21, 65]}, {"55061739": [12]}, {"55061744": [52, 1]}, {"55061747": [62, 16, 129]}, {"55061751": [7]}, {"55061756": [52, 1]}, {"55061759": [66, 16, 129]}, {"55061763": [4]}, {"55061768": [36, 2, 255, 255, 16]}, {"55061775": [7]}, {"55061780": [52, 8]}, {"55061783": [2, 144, 169, 1, 65]}, {"55061789": [2, 18]}, {"55061793": [72, 16, 37]}, {"55061797": [2, 18]}, {"55061801": [73, 16, 37, 3, 224]}, {"55061807": [8]}, {"55061812": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061824": [129, 9]}, {"55061828": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061851": [4, 141, 9]}, {"55061856": [17, 32]}, {"55061859": [23]}, {"55061865": [9, 82, 2, 49, 75, 248]}, {"55061873": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061896": [49, 34]}, {"55061899": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061920": [60, 12, 128, 64, 37, 140, 28]}, {"55061928": [129, 140]}, {"55061932": [17, 108]}, {"55061935": [4, 165, 32]}, {"55061939": [2, 161, 43]}, {"55061943": [2, 161, 34]}, {"55061947": [3, 173, 36]}, {"55061951": [4, 3, 224]}, {"55061955": [8]}, {"55061960": [39, 189, 255, 224, 175, 176]}, {"55061967": [16, 175, 177]}, {"55061971": [20, 175, 191]}, {"55061975": [24, 52, 130]}, {"55061980": [52, 80]}, {"55061984": [38, 8, 255, 128, 5]}, {"55061991": [18]}, {"55061996": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55062007": [16, 1, 9]}, {"55062011": [24]}, {"55062014": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55062032": [142, 40]}, {"55062035": [12, 1]}, {"55062038": [248, 9]}, {"55062044": [20, 80, 255, 239]}, {"55062052": [54, 35]}, {"55062056": [16]}, {"55062059": [2]}, {"55062064": [52, 3]}, {"55062068": [143, 176]}, {"55062071": [16, 143, 177]}, {"55062075": [20, 143, 191]}, {"55062079": [24, 39, 189]}, {"55062083": [32, 3, 224]}, {"55062087": [8]}, {"55062092": [140, 136, 29, 44, 52, 9]}, {"55062099": [1]}, {"55062101": [9, 78]}, {"55062104": [1, 9, 16, 36, 16, 64]}, {"55062111": [36]}, {"55062116": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062131": [164, 52, 1]}, {"55062135": [61, 17, 129]}, {"55062139": [10]}, {"55062145": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062155": [25]}, {"55062160": [52, 13]}, {"55062163": [1, 161, 141, 29, 40, 37, 74]}, {"55062171": [3, 16]}, {"55062175": [9]}, {"55062180": [52, 12]}, {"55062183": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062199": [14]}, {"55062204": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062240": [60, 9, 128, 64, 37, 41, 32, 24, 161, 40]}, {"55062252": [52, 2]}, {"55062256": [3, 224]}, {"55062259": [8]}, {"55062264": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062276": [16]}, {"55062279": [34]}, {"55062284": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062296": [16]}, {"55062299": [29]}, {"55062304": [52, 2]}, {"55062307": [255, 32, 232, 255, 166, 33, 8]}, {"55062315": [97, 16]}, {"55062319": [24]}, {"55062324": [52, 8]}, {"55062327": [100, 16]}, {"55062331": [21]}, {"55062336": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062351": [1, 160, 40, 14, 222, 52, 8]}, {"55062359": [104, 16]}, {"55062363": [13]}, {"55062368": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062383": [4, 160, 40, 14, 222, 52, 8]}, {"55062391": [106, 16]}, {"55062395": [5]}, {"55062400": [52, 5]}, {"55062403": [3, 52, 8]}, {"55062407": [107, 16]}, {"55062411": [1]}, {"55062416": [60, 9, 128, 64, 37, 41, 32, 24, 60, 10, 128, 64, 37, 74, 32, 27, 129, 44]}, {"55062436": [17, 136]}, {"55062439": [11, 33, 41]}, {"55062443": [1, 21, 42, 255, 252]}, {"55062452": [60, 9, 128, 64, 37, 41, 32, 23, 33, 41]}, {"55062463": [1, 17, 42]}, {"55062467": [4, 129, 44]}, {"55062472": [21, 128, 255, 252]}, {"55062480": [161, 40]}, {"55062484": [3, 224]}, {"55062487": [8]}, {"55062493": [96, 120, 33, 129, 236, 14, 223, 49, 142]}, {"55062503": [128, 17, 192]}, {"55062507": [3, 52, 3]}, {"55062511": [5, 3, 224]}, {"55062515": [8, 52, 2]}, {"55062519": [2, 3, 224]}, {"55062523": [8]}, {"55062525": [96, 16, 33, 133, 194]}, {"55062531": [164, 60, 8, 128, 18, 37, 8, 165, 208, 129, 9, 14, 223, 53, 41]}, {"55062547": [128, 161, 9, 14, 223, 3, 224]}, {"55062555": [8]}, {"55062560": [175, 164]}, {"55062563": [104, 175, 165]}, {"55062567": [108, 175, 166]}, {"55062571": [112, 175, 167]}, {"55062575": [116, 39, 189, 255, 232, 175, 163]}, {"55062583": [16, 175, 191]}, {"55062587": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062603": [32, 21]}, {"55062607": [31]}, {"55062612": [60, 9, 128, 64, 37, 41, 32, 27, 52, 10]}, {"55062623": [255, 161, 42]}, {"55062628": [60, 9, 128, 64, 37, 41, 32, 24, 36, 10, 255, 255, 52, 12]}, {"55062643": [3, 33, 74]}, {"55062647": [1, 17, 76]}, {"55062651": [20, 1, 42, 88, 32, 129, 104]}, {"55062660": [17]}, {"55062662": [255, 251]}, {"55062668": [60, 9, 128, 64, 37, 41, 32, 27, 161, 42]}, {"55062680": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062691": [1, 165, 42]}, {"55062696": [60, 9, 128, 65, 52, 10]}, {"55062703": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 209]}, {"55062732": [143, 163]}, {"55062735": [16, 143, 191]}, {"55062739": [20, 39, 189]}, {"55062743": [24, 143, 164]}, {"55062747": [104, 143, 165]}, {"55062751": [108, 143, 166]}, {"55062755": [112, 143, 167]}, {"55062759": [116, 132, 110, 19, 196, 3, 224]}, {"55062767": [8]}, {"55062772": [147, 25]}, {"55062775": [116, 52, 1]}, {"55062779": [255, 23, 33]}, {"55062783": [2]}, {"55062788": [52, 25]}, {"55062791": [44, 3, 224]}, {"55062795": [8, 167, 185]}, {"55062799": [154, 147, 44]}, {"55062803": [116, 52, 1]}, {"55062807": [255, 21, 129]}, {"55062811": [2]}, {"55062816": [52, 12]}, {"55062819": [44, 3, 224]}, {"55062823": [8]}, {"55062828": [145, 174]}, {"55062831": [116, 52, 1]}, {"55062835": [255, 21, 193]}, {"55062839": [2]}, {"55062844": [52, 14]}, {"55062847": [44, 3, 224]}, {"55062851": [8, 167, 174]}, {"55062855": [154, 145, 207]}, {"55062859": [116, 52, 1]}, {"55062863": [255, 21, 225]}, {"55062867": [2]}, {"55062872": [52, 15]}, {"55062875": [44, 3, 224]}, {"55062879": [8, 167, 175]}, {"55062883": [154, 60, 8, 128, 64, 37, 8, 32, 28, 142, 9]}, {"55062895": [104, 173, 9]}, {"55062900": [142, 9]}, {"55062903": [108, 173, 9]}, {"55062907": [4, 150, 9]}, {"55062911": [112, 165, 9]}, {"55062915": [8, 150, 9]}, {"55062919": [156, 165, 9]}, {"55062923": [10, 3, 224]}, {"55062927": [8, 142, 14]}, {"55062931": [4, 39, 189, 255, 224, 175, 176]}, {"55062939": [16, 175, 177]}, {"55062943": [20, 175, 191]}, {"55062947": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 28, 142, 8]}, {"55062967": [4, 17]}, {"55062971": [5]}, {"55062976": [12, 16, 12, 143]}, {"55062984": [16]}, {"55062987": [3]}, {"55062992": [12, 16, 12, 162]}, {"55063000": [12, 16, 12, 130, 52, 4]}, {"55063008": [12, 16, 12, 130, 52, 4]}, {"55063015": [1, 12, 16, 12, 130, 52, 4]}, {"55063023": [2, 143, 176]}, {"55063027": [16, 143, 177]}, {"55063031": [20, 143, 191]}, {"55063035": [24, 39, 189]}, {"55063039": [32, 3, 224]}, {"55063043": [8]}, {"55063048": [2, 4, 64, 33, 145, 9]}, {"55063055": [108, 52, 1]}, {"55063059": [255, 17, 33]}, {"55063063": [7]}, {"55063068": [2, 9, 72, 33, 145, 41]}, {"55063075": [116, 52, 1]}, {"55063079": [44, 17, 33]}, {"55063083": [2]}, {"55063088": [161, 9]}, {"55063091": [105, 3, 224]}, {"55063095": [8]}, {"55063100": [39, 189, 255, 232, 175, 191]}, {"55063107": [16, 142, 40]}, {"55063112": [174, 8]}, {"55063115": [64, 142, 40]}, {"55063119": [4, 174, 8]}, {"55063123": [68, 150, 40]}, {"55063127": [8, 166, 8]}, {"55063131": [72, 162]}, {"55063134": [15, 51, 146, 8]}, {"55063139": [74, 52, 1]}, {"55063143": [255, 21, 1]}, {"55063147": [3]}, {"55063152": [12, 16, 12, 176]}, {"55063160": [143, 191]}, {"55063163": [16, 39, 189]}, {"55063167": [24, 3, 224]}, {"55063171": [8]}, {"55063176": [142, 8]}, {"55063179": [64, 174, 8]}, {"55063183": [104, 142, 8]}, {"55063187": [68, 174, 8]}, {"55063191": [108, 150, 8]}, {"55063195": [72, 166, 8]}, {"55063199": [112, 146, 8]}, {"55063203": [104, 52, 1]}, {"55063207": [255, 21, 1]}, {"55063211": [3]}, {"55063216": [52, 8]}, {"55063219": [1, 162, 8, 15, 51, 3, 224]}, {"55063227": [8]}, {"55063232": [39, 189, 255, 232, 175, 191]}, {"55063239": [16, 150, 8]}, {"55063243": [156, 49, 8]}, {"55063247": [64, 17]}, {"55063251": [5]}, {"55063256": [150, 8]}, {"55063259": [112, 49, 8, 255, 15, 53, 8]}, {"55063267": [48, 166, 8]}, {"55063271": [112, 146, 40]}, {"55063275": [1, 162, 8]}, {"55063279": [105, 150, 40]}, {"55063283": [2, 166, 8]}, {"55063287": [106, 142, 40]}, {"55063291": [4, 174, 8]}, {"55063295": [108, 12, 16, 12, 202, 52, 4]}, {"55063304": [12, 16, 12, 202, 52, 4]}, {"55063311": [1, 12, 16, 12, 202, 52, 4]}, {"55063319": [2, 143, 191]}, {"55063323": [16, 39, 189]}, {"55063327": [24, 3, 224]}, {"55063331": [8]}, {"55063336": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 51, 212, 145, 10]}, {"55063351": [108, 52, 1]}, {"55063355": [255, 17, 65]}, {"55063359": [5]}, {"55063364": [1, 42, 72, 33, 145, 41]}, {"55063372": [21, 32]}, {"55063375": [28]}, {"55063380": [60, 9, 128, 64, 37, 41, 51, 199, 37, 41]}, {"55063391": [1, 145, 42]}, {"55063396": [17, 64]}, {"55063399": [19]}, {"55063404": [2, 10, 88, 33, 145, 107]}, {"55063411": [116, 52, 1]}, {"55063415": [255, 17, 97, 255, 248]}, {"55063424": [146, 12]}, {"55063427": [108, 17, 138, 255, 245]}, {"55063436": [146, 12]}, {"55063439": [109, 17, 138, 255, 242]}, {"55063448": [146, 12]}, {"55063451": [110, 17, 138, 255, 239]}, {"55063460": [161, 11]}, {"55063463": [105, 161, 10]}, {"55063467": [108, 16]}, {"55063471": [4]}, {"55063476": [52, 9]}, {"55063479": [255, 161, 9]}, {"55063483": [105, 161, 9]}, {"55063487": [108, 3, 224]}, {"55063491": [8]}, {"55063496": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063509": [1, 1, 1, 1, 1]}, {"55063515": [1, 1, 1, 1, 1]}, {"55063521": [1]}, {"55063523": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063533": [51, 8, 33, 32, 15]}, {"55063539": [71, 21, 234]}, {"55063543": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063555": [164]}, {"55063557": [15, 122, 3, 20, 64]}, {"55063563": [5, 52, 2, 72, 48, 21, 226]}, {"55063571": [7]}, {"55063576": [36, 25]}, {"55063579": [3, 16]}, {"55063583": [4, 52, 2, 99, 17, 21, 226]}, {"55063591": [2]}, {"55063596": [36, 25]}, {"55063599": [3, 3, 224]}, {"55063603": [8]}, {"55063608": [141, 173, 138, 160, 52, 2, 128]}, {"55063616": [16, 77]}, {"55063619": [2]}, {"55063624": [16]}, {"55063627": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063643": [1, 16, 64]}, {"55063647": [2]}, {"55063652": [16]}, {"55063655": [2, 52, 2]}, {"55063659": [1, 161, 226, 28, 191, 3, 224]}, {"55063667": [8]}, {"55063673": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063687": [164]}, {"55063689": [15, 122, 3, 20, 64]}, {"55063695": [5, 52, 2, 72, 48, 21, 226]}, {"55063703": [7]}, {"55063708": [36, 25]}, {"55063711": [3, 16]}, {"55063715": [4, 52, 2, 99, 17, 21, 226]}, {"55063723": [2]}, {"55063728": [36, 25]}, {"55063731": [3, 3, 224]}, {"55063735": [8]}, {"55063740": [162, 37]}, {"55063743": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063755": [4, 142, 10]}, {"55063760": [17, 64]}, {"55063763": [11]}, {"55063769": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063781": [24, 194, 2, 23]}, {"55063787": [3, 49, 89]}, {"55063791": [255, 129, 234]}, {"55063796": [3, 42, 200, 37, 8, 16, 13, 50, 161, 249]}, {"55063808": [3, 224]}, {"55063811": [8]}] \ No newline at end of file +[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 196]}, {"11311804": [12, 16, 11, 205]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 190, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 101]}, {"11427312": [12, 16, 13, 14]}, {"11427320": [12, 16, 11, 200]}, {"11427332": [0, 0]}, {"11427335": [0]}, {"11431496": [12, 16, 11, 195, 1, 15, 192, 33]}, {"11559936": [130]}, {"11559938": [14, 222]}, {"11559948": [49, 248, 0, 2]}, {"11562028": [12, 16, 13, 47]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 30]}, {"11882076": [12, 16, 12, 251]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 68, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 75, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 82, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 61, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 140]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 18]}, {"12427480": [12, 16, 10, 106]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 110]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 12, 8, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 152]}, {"12491480": [12, 16, 10, 161]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 147]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 89]}, {"14109028": [16, 0]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 128, 73, 14, 222]}, {"14149508": [52]}, {"14149510": [0, 1, 2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 208]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 224]}, {"14624335": [118]}, {"14720872": [128]}, {"14720874": [14, 222]}, {"14720884": [49, 248, 0, 4]}, {"14720944": [12, 16, 11, 216]}, {"14848904": [8, 16, 11, 247]}, {"14852164": [12, 16, 12, 0]}, {"14872723": [52]}, {"15327704": [52, 9, 64, 0]}, {"15327728": [52]}, {"15327730": [91, 8]}, {"15327744": [52]}, {"15327746": [0, 10]}, {"15327757": [169]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 236, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 48, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 76, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 104, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 220, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 108, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 140, 128, 64, 38, 132, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 172, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 39, 212, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 28, 128, 64, 40]}, {"55059600": [83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 3, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 44, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [2, 52, 2]}, {"55060003": [69, 52, 2]}, {"55060007": [70, 3, 224]}, {"55060011": [8]}, {"55060016": [144, 136]}, {"55060019": [162, 49, 8]}, {"55060023": [6, 17]}, {"55060027": [2, 52, 2]}, {"55060031": [55, 52, 2]}, {"55060035": [56, 3, 224]}, {"55060039": [8]}, {"55060044": [144, 136]}, {"55060047": [161, 49, 8]}, {"55060051": [32, 17]}, {"55060055": [2, 52, 2]}, {"55060059": [121, 52, 2]}, {"55060063": [122, 3, 224]}, {"55060067": [8]}, {"55060072": [144, 136]}, {"55060075": [161, 49, 8]}, {"55060079": [4, 17]}, {"55060083": [2, 52, 2]}, {"55060087": [119, 52, 2]}, {"55060091": [120, 3, 224]}, {"55060095": [8]}, {"55060100": [144, 136]}, {"55060103": [50, 17]}, {"55060107": [2, 52, 2]}, {"55060111": [192, 52, 2]}, {"55060115": [193, 3, 224]}, {"55060119": [8]}, {"55060124": [144, 136]}, {"55060127": [163, 49, 8]}, {"55060131": [3, 17]}, {"55060135": [2, 52, 2]}, {"55060139": [77, 52, 162]}, {"55060144": [3, 224]}, {"55060147": [8]}, {"55060152": [144, 136]}, {"55060155": [163, 49, 8]}, {"55060159": [24, 17]}, {"55060163": [2, 52, 2]}, {"55060167": [77, 52, 162]}, {"55060172": [3, 224]}, {"55060175": [8]}, {"55060180": [3, 224]}, {"55060183": [8]}, {"55060188": [52, 8]}, {"55060191": [1, 160, 136]}, {"55060195": [62, 3, 224]}, {"55060199": [8]}, {"55060204": [36, 136]}, {"55060207": [134, 36, 9, 255, 255, 37, 41]}, {"55060215": [1, 52, 1]}, {"55060219": [3]}, {"55060221": [41, 8, 42, 20, 32]}, {"55060227": [7]}, {"55060232": [1, 9, 80, 33, 145, 75]}, {"55060240": [52, 1]}, {"55060243": [255, 21, 97, 255, 247]}, {"55060252": [161, 69]}, {"55060256": [3, 224]}, {"55060259": [8]}, {"55060264": [36, 136]}, {"55060267": [168, 1, 6, 64, 33, 145, 9]}, {"55060276": [1, 37, 72, 37, 161, 9]}, {"55060284": [3, 224]}, {"55060287": [8]}, {"55060292": [36, 136]}, {"55060295": [188, 1, 5, 64, 33, 129, 9]}, {"55060304": [5, 33]}, {"55060307": [2]}, {"55060312": [52, 9]}, {"55060316": [37, 41]}, {"55060319": [1, 161, 9]}, {"55060324": [3, 224]}, {"55060327": [8]}, {"55060332": [52, 8]}, {"55060335": [1, 160, 136]}, {"55060339": [61, 52, 8]}, {"55060343": [20, 160, 136]}, {"55060347": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [50, 160, 136]}, {"55060375": [58, 52, 8]}, {"55060379": [48, 164, 136, 19, 244, 160, 136]}, {"55060387": [51, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [2, 160, 136]}, {"55060403": [50, 52, 8]}, {"55060407": [1, 160, 136]}, {"55060411": [58, 160, 136]}, {"55060415": [60, 52, 8]}, {"55060419": [96, 164, 136, 19, 244, 160, 136]}, {"55060427": [51, 3, 224]}, {"55060431": [8]}, {"55060436": [144, 136]}, {"55060439": [124, 52, 1]}, {"55060443": [255, 17, 1]}, {"55060447": [6, 52, 2]}, {"55060451": [107, 144, 136]}, {"55060455": [148, 45, 8]}, {"55060459": [6, 17]}, {"55060463": [2, 52, 2]}, {"55060467": [106, 52, 2]}, {"55060471": [3, 3, 224]}, {"55060475": [8]}, {"55060480": [144, 136]}, {"55060483": [123, 52, 1]}, {"55060487": [255, 17, 1]}, {"55060491": [2, 52, 162]}, {"55060496": [52, 2]}, {"55060499": [12, 3, 224]}, {"55060503": [8]}, {"55060508": [52, 8]}, {"55060511": [7, 160, 136]}, {"55060515": [123, 3, 224]}, {"55060519": [8]}, {"55060524": [52, 8]}, {"55060527": [1]}, {"55060529": [168, 64, 4, 140, 137]}, {"55060535": [164, 1, 40, 72, 37, 172, 137]}, {"55060543": [164, 3, 224]}, {"55060547": [8]}, {"55060552": [48, 132]}, {"55060555": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060567": [140, 16, 129]}, {"55060571": [22, 145, 2]}, {"55060575": [117, 52, 1]}, {"55060579": [141, 16, 129]}, {"55060583": [19, 145, 2]}, {"55060587": [117, 16, 128]}, {"55060591": [17, 145, 2]}, {"55060595": [116, 52, 1]}, {"55060599": [138, 16, 129]}, {"55060603": [14, 145, 2]}, {"55060607": [116, 52, 1]}, {"55060611": [139, 16, 129]}, {"55060615": [11, 145, 2]}, {"55060619": [116, 52, 1]}, {"55060623": [88, 16, 129]}, {"55060627": [8, 52, 2]}, {"55060632": [52, 1]}, {"55060635": [120, 16, 129]}, {"55060639": [5, 52, 2]}, {"55060644": [52, 1]}, {"55060647": [121, 16, 129]}, {"55060651": [2, 52, 2]}, {"55060656": [52, 2]}, {"55060659": [255, 3, 224]}, {"55060663": [8]}, {"55060668": [39, 189, 255, 224, 175, 191]}, {"55060675": [16, 175, 176]}, {"55060679": [20, 12, 16, 11, 11]}, {"55060688": [4, 65]}, {"55060691": [2]}, {"55060696": [52, 2]}, {"55060699": [91]}, {"55060701": [64, 32, 33, 12, 16, 11, 114]}, {"55060712": [16, 96]}, {"55060715": [22, 175, 163]}, {"55060719": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060728": [133, 9]}, {"55060731": [2, 17, 32]}, {"55060735": [3, 52, 10]}, {"55060739": [1, 16]}, {"55060743": [12, 165, 10]}, {"55060748": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060759": [6, 144, 102]}, {"55060763": [7, 140, 105]}, {"55060767": [8, 1, 32, 248, 9]}, {"55060776": [143, 163]}, {"55060779": [28, 144, 101]}, {"55060783": [1, 12, 1, 191, 115, 2, 32, 32, 33, 143, 163]}, {"55060795": [28, 144, 101]}, {"55060799": [3, 16]}, {"55060803": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060815": [6]}, {"55060817": [74]}, {"55060819": [24]}, {"55060822": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060832": [60, 8, 128, 64, 37, 8, 32]}, {"55060840": [133, 9]}, {"55060843": [2, 17, 32]}, {"55060847": [3, 52, 10]}, {"55060851": [1, 165, 10]}, {"55060856": [52, 5]}, {"55060859": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060871": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060882": [48, 33, 143, 191]}, {"55060887": [16, 143, 176]}, {"55060891": [20, 39, 189]}, {"55060895": [32, 3, 224]}, {"55060899": [8]}, {"55060904": [143, 166]}, {"55060907": [48, 132, 197]}, {"55060911": [4, 8, 16, 10, 114]}, {"55060920": [143, 185]}, {"55060923": [44, 135, 37]}, {"55060927": [4, 8, 16, 10, 114]}, {"55060936": [60, 10, 128, 64, 37, 74, 32, 8, 141, 75]}, {"55060947": [12, 17, 96]}, {"55060951": [2]}, {"55060956": [149, 69]}, {"55060959": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060972": [60, 9, 128, 64, 37, 41, 32, 24, 129, 42]}, {"55060983": [3, 5, 64]}, {"55060987": [11, 1, 42, 72, 32, 129, 40]}, {"55060996": [52, 10]}, {"55060999": [127, 21, 10]}, {"55061003": [6]}, {"55061008": [60, 10, 128, 18, 37, 74, 165, 208, 133, 72]}, {"55061019": [144, 33, 8]}, {"55061023": [1, 165, 72]}, {"55061027": [144, 161, 32]}, {"55061032": [3, 224]}, {"55061035": [8]}, {"55061040": [60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061051": [12, 17, 32]}, {"55061055": [2]}, {"55061060": [129, 3]}, {"55061063": [2]}, {"55061065": [3, 15, 195]}, {"55061069": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061083": [8]}, {"55061088": [144, 69]}, {"55061091": [3, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061103": [12, 17, 32]}, {"55061107": [2]}, {"55061112": [145, 5]}, {"55061115": [3, 3, 224]}, {"55061119": [8]}, {"55061124": [143, 162]}, {"55061127": [36, 144, 69]}, {"55061132": [60, 8, 128, 64, 37, 8, 32]}, {"55061140": [133, 9]}, {"55061143": [2, 17, 32]}, {"55061147": [4, 52, 10]}, {"55061151": [1, 165, 10]}, {"55061156": [16]}, {"55061159": [24, 52, 5]}, {"55061163": [65, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061175": [12, 17, 32]}, {"55061179": [19]}, {"55061184": [145, 5]}, {"55061187": [1, 175, 164]}, {"55061192": [175, 165]}, {"55061195": [4, 175, 166]}, {"55061199": [8, 39, 189, 255, 232, 175, 191]}, {"55061207": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061219": [6, 145, 6]}, {"55061223": [7, 141, 9]}, {"55061227": [8, 1, 32, 248, 9]}, {"55061236": [143, 191]}, {"55061239": [16, 39, 189]}, {"55061243": [24, 143, 164]}, {"55061248": [143, 165]}, {"55061251": [4, 143, 166]}, {"55061255": [8, 3, 224]}, {"55061259": [8]}, {"55061264": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061275": [16, 175, 163]}, {"55061279": [20, 175, 191]}, {"55061283": [24, 12, 16, 10, 209]}, {"55061292": [143, 162]}, {"55061295": [16, 143, 163]}, {"55061299": [20, 143, 191]}, {"55061303": [24, 39, 189]}, {"55061307": [32, 3, 224]}, {"55061311": [8]}, {"55061316": [39, 189, 255, 232, 175, 191]}, {"55061323": [16, 60, 8, 128, 64, 37, 8, 32, 8, 173]}, {"55061336": [173]}, {"55061339": [4, 173]}, {"55061343": [8, 173]}, {"55061347": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061363": [42]}, {"55061369": [9, 15, 195, 1, 33, 32, 38]}, {"55061377": [129, 32, 35, 141, 5, 4, 40, 12, 16, 11, 11]}, {"55061392": [4, 64]}, {"55061395": [34]}, {"55061400": [52, 68]}, {"55061404": [12, 16, 11, 114]}, {"55061412": [16, 96]}, {"55061415": [12]}, {"55061420": [60, 8, 128, 64, 37, 8, 32, 8, 140, 105]}, {"55061432": [173, 9]}, {"55061436": [140, 105]}, {"55061439": [4, 173, 9]}, {"55061443": [4, 140, 105]}, {"55061447": [8, 173, 9]}, {"55061451": [8, 52, 9]}, {"55061455": [1, 173, 9]}, {"55061459": [12, 144, 98]}, {"55061464": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061480": [52, 1]}, {"55061483": [10, 21, 65]}, {"55061487": [6]}, {"55061492": [149, 42]}, {"55061495": [28, 49, 74, 240, 31]}, {"55061501": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061511": [28, 129, 9, 4, 36, 5, 33]}, {"55061519": [2]}, {"55061525": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061535": [16, 39, 189]}, {"55061539": [24, 3, 224]}, {"55061543": [8]}, {"55061548": [39, 189, 255, 232, 175, 191]}, {"55061555": [16, 12, 16, 11, 25]}, {"55061564": [36, 1, 255, 255, 16, 65]}, {"55061571": [4]}, {"55061576": [52, 68]}, {"55061580": [12, 16, 11, 77]}, {"55061588": [143, 191]}, {"55061591": [16, 39, 189]}, {"55061595": [24, 3, 224]}, {"55061599": [8]}, {"55061604": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061615": [164, 52, 8]}, {"55061620": [52, 137]}, {"55061624": [148, 170]}, {"55061628": [52, 1, 1, 156, 21, 65]}, {"55061635": [8]}, {"55061640": [52, 8]}, {"55061643": [3, 148, 171]}, {"55061647": [28, 49, 105]}, {"55061651": [255, 49, 98, 31]}, {"55061657": [2, 18, 2, 16]}, {"55061663": [31]}, {"55061668": [52, 1]}, {"55061671": [10, 21, 65]}, {"55061675": [14]}, {"55061680": [148, 171]}, {"55061683": [28, 52, 1]}, {"55061687": [16, 20, 65]}, {"55061691": [8]}, {"55061696": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061707": [4]}, {"55061712": [36, 2, 255, 255, 16]}, {"55061719": [21]}, {"55061724": [52, 8]}, {"55061727": [1, 49, 105]}, {"55061731": [31, 52, 1]}, {"55061735": [21, 21, 65]}, {"55061739": [12]}, {"55061744": [52, 1]}, {"55061747": [62, 16, 129]}, {"55061751": [7]}, {"55061756": [52, 1]}, {"55061759": [66, 16, 129]}, {"55061763": [4]}, {"55061768": [36, 2, 255, 255, 16]}, {"55061775": [7]}, {"55061780": [52, 8]}, {"55061783": [2, 144, 169, 1, 65]}, {"55061789": [2, 18]}, {"55061793": [72, 16, 37]}, {"55061797": [2, 18]}, {"55061801": [73, 16, 37, 3, 224]}, {"55061807": [8]}, {"55061812": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061824": [129, 9]}, {"55061828": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061851": [4, 141, 9]}, {"55061856": [17, 32]}, {"55061859": [23]}, {"55061865": [9, 82, 2, 49, 75, 248]}, {"55061873": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061896": [49, 34]}, {"55061899": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061920": [60, 12, 128, 64, 37, 140, 28]}, {"55061928": [129, 140]}, {"55061932": [17, 108]}, {"55061935": [4, 165, 32]}, {"55061939": [2, 161, 43]}, {"55061943": [2, 161, 34]}, {"55061947": [3, 173, 36]}, {"55061951": [4, 3, 224]}, {"55061955": [8]}, {"55061960": [39, 189, 255, 224, 175, 176]}, {"55061967": [16, 175, 177]}, {"55061971": [20, 175, 191]}, {"55061975": [24, 52, 130]}, {"55061980": [52, 80]}, {"55061984": [38, 8, 255, 128, 5]}, {"55061991": [18]}, {"55061996": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55062007": [16, 1, 9]}, {"55062011": [24]}, {"55062014": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55062032": [142, 40]}, {"55062035": [12, 1]}, {"55062038": [248, 9]}, {"55062044": [20, 80, 255, 239]}, {"55062052": [54, 35]}, {"55062056": [16]}, {"55062059": [2]}, {"55062064": [52, 3]}, {"55062068": [143, 176]}, {"55062071": [16, 143, 177]}, {"55062075": [20, 143, 191]}, {"55062079": [24, 39, 189]}, {"55062083": [32, 3, 224]}, {"55062087": [8]}, {"55062092": [140, 136, 29, 44, 52, 9]}, {"55062099": [1]}, {"55062101": [9, 78]}, {"55062104": [1, 9, 16, 36, 16, 64]}, {"55062111": [36]}, {"55062116": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062131": [164, 52, 1]}, {"55062135": [61, 17, 129]}, {"55062139": [10]}, {"55062145": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062155": [25]}, {"55062160": [52, 13]}, {"55062163": [1, 161, 141, 29, 40, 37, 74]}, {"55062171": [3, 16]}, {"55062175": [9]}, {"55062180": [52, 12]}, {"55062183": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062199": [14]}, {"55062204": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062240": [60, 9, 128, 64, 37, 41, 32, 24, 161, 40]}, {"55062252": [52, 2]}, {"55062256": [3, 224]}, {"55062259": [8]}, {"55062264": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062276": [16]}, {"55062279": [34]}, {"55062284": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062296": [16]}, {"55062299": [29]}, {"55062304": [52, 2]}, {"55062307": [255, 32, 232, 255, 166, 33, 8]}, {"55062315": [97, 16]}, {"55062319": [24]}, {"55062324": [52, 8]}, {"55062327": [100, 16]}, {"55062331": [21]}, {"55062336": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062351": [1, 160, 40, 14, 222, 52, 8]}, {"55062359": [104, 16]}, {"55062363": [13]}, {"55062368": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062383": [4, 160, 40, 14, 222, 52, 8]}, {"55062391": [106, 16]}, {"55062395": [5]}, {"55062400": [52, 5]}, {"55062403": [3, 52, 8]}, {"55062407": [107, 16]}, {"55062411": [1]}, {"55062416": [60, 9, 128, 64, 37, 41, 32, 24, 60, 10, 128, 64, 37, 74, 32, 27, 129, 44]}, {"55062436": [17, 136]}, {"55062439": [11, 33, 41]}, {"55062443": [1, 21, 42, 255, 252]}, {"55062452": [60, 9, 128, 64, 37, 41, 32, 23, 33, 41]}, {"55062463": [1, 17, 42]}, {"55062467": [4, 129, 44]}, {"55062472": [21, 128, 255, 252]}, {"55062480": [161, 40]}, {"55062484": [3, 224]}, {"55062487": [8]}, {"55062493": [96, 120, 33, 129, 236, 14, 223, 49, 142]}, {"55062503": [128, 17, 192]}, {"55062507": [3, 52, 3]}, {"55062511": [5, 3, 224]}, {"55062515": [8, 52, 2]}, {"55062519": [2, 3, 224]}, {"55062523": [8]}, {"55062525": [96, 16, 33, 133, 194]}, {"55062531": [164, 60, 8, 128, 18, 37, 8, 165, 208, 129, 9, 14, 223, 53, 41]}, {"55062547": [128, 161, 9, 14, 223, 3, 224]}, {"55062555": [8]}, {"55062560": [175, 164]}, {"55062563": [104, 175, 165]}, {"55062567": [108, 175, 166]}, {"55062571": [112, 175, 167]}, {"55062575": [116, 39, 189, 255, 232, 175, 163]}, {"55062583": [16, 175, 191]}, {"55062587": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062603": [32, 21]}, {"55062607": [31]}, {"55062612": [60, 9, 128, 64, 37, 41, 32, 27, 52, 10]}, {"55062623": [255, 161, 42]}, {"55062628": [60, 9, 128, 64, 37, 41, 32, 24, 36, 10, 255, 255, 52, 12]}, {"55062643": [3, 33, 74]}, {"55062647": [1, 17, 76]}, {"55062651": [20, 1, 42, 88, 32, 129, 104]}, {"55062660": [17]}, {"55062662": [255, 251]}, {"55062668": [60, 9, 128, 64, 37, 41, 32, 27, 161, 42]}, {"55062680": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062691": [1, 165, 42]}, {"55062696": [60, 9, 128, 65, 52, 10]}, {"55062703": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 209]}, {"55062732": [143, 163]}, {"55062735": [16, 143, 191]}, {"55062739": [20, 39, 189]}, {"55062743": [24, 143, 164]}, {"55062747": [104, 143, 165]}, {"55062751": [108, 143, 166]}, {"55062755": [112, 143, 167]}, {"55062759": [116, 132, 110, 19, 196, 3, 224]}, {"55062767": [8]}, {"55062772": [147, 25]}, {"55062775": [116, 52, 1]}, {"55062779": [255, 23, 33]}, {"55062783": [2]}, {"55062788": [52, 25]}, {"55062791": [44, 3, 224]}, {"55062795": [8, 167, 185]}, {"55062799": [154, 147, 44]}, {"55062803": [116, 52, 1]}, {"55062807": [255, 21, 129]}, {"55062811": [2]}, {"55062816": [52, 12]}, {"55062819": [44, 3, 224]}, {"55062823": [8]}, {"55062828": [145, 174]}, {"55062831": [116, 52, 1]}, {"55062835": [255, 21, 193]}, {"55062839": [2]}, {"55062844": [52, 14]}, {"55062847": [44, 3, 224]}, {"55062851": [8, 167, 174]}, {"55062855": [154, 145, 207]}, {"55062859": [116, 52, 1]}, {"55062863": [255, 21, 225]}, {"55062867": [2]}, {"55062872": [52, 15]}, {"55062875": [44, 3, 224]}, {"55062879": [8, 167, 175]}, {"55062883": [154, 60, 8, 128, 64, 37, 8, 32, 28, 142, 9]}, {"55062895": [104, 173, 9]}, {"55062900": [142, 9]}, {"55062903": [108, 173, 9]}, {"55062907": [4, 150, 9]}, {"55062911": [112, 165, 9]}, {"55062915": [8, 150, 9]}, {"55062919": [156, 165, 9]}, {"55062923": [10, 3, 224]}, {"55062927": [8, 142, 14]}, {"55062931": [4, 39, 189, 255, 224, 175, 176]}, {"55062939": [16, 175, 177]}, {"55062943": [20, 175, 191]}, {"55062947": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 28, 142, 8]}, {"55062967": [4, 17]}, {"55062971": [5]}, {"55062976": [12, 16, 12, 143]}, {"55062984": [16]}, {"55062987": [3]}, {"55062992": [12, 16, 12, 162]}, {"55063000": [12, 16, 12, 130, 52, 4]}, {"55063008": [12, 16, 12, 130, 52, 4]}, {"55063015": [1, 12, 16, 12, 130, 52, 4]}, {"55063023": [2, 143, 176]}, {"55063027": [16, 143, 177]}, {"55063031": [20, 143, 191]}, {"55063035": [24, 39, 189]}, {"55063039": [32, 3, 224]}, {"55063043": [8]}, {"55063048": [2, 4, 64, 33, 145, 9]}, {"55063055": [108, 52, 1]}, {"55063059": [255, 17, 33]}, {"55063063": [7]}, {"55063068": [2, 9, 72, 33, 145, 41]}, {"55063075": [116, 52, 1]}, {"55063079": [44, 17, 33]}, {"55063083": [2]}, {"55063088": [161, 9]}, {"55063091": [105, 3, 224]}, {"55063095": [8]}, {"55063100": [39, 189, 255, 232, 175, 191]}, {"55063107": [16, 142, 40]}, {"55063112": [174, 8]}, {"55063115": [64, 142, 40]}, {"55063119": [4, 174, 8]}, {"55063123": [68, 150, 40]}, {"55063127": [8, 166, 8]}, {"55063131": [72, 162]}, {"55063134": [15, 51, 146, 8]}, {"55063139": [74, 52, 1]}, {"55063143": [255, 21, 1]}, {"55063147": [3]}, {"55063152": [12, 16, 12, 176]}, {"55063160": [143, 191]}, {"55063163": [16, 39, 189]}, {"55063167": [24, 3, 224]}, {"55063171": [8]}, {"55063176": [142, 8]}, {"55063179": [64, 174, 8]}, {"55063183": [104, 142, 8]}, {"55063187": [68, 174, 8]}, {"55063191": [108, 150, 8]}, {"55063195": [72, 166, 8]}, {"55063199": [112, 146, 8]}, {"55063203": [104, 52, 1]}, {"55063207": [255, 21, 1]}, {"55063211": [3]}, {"55063216": [52, 8]}, {"55063219": [1, 162, 8, 15, 51, 3, 224]}, {"55063227": [8]}, {"55063232": [39, 189, 255, 232, 175, 191]}, {"55063239": [16, 150, 8]}, {"55063243": [156, 49, 8]}, {"55063247": [64, 17]}, {"55063251": [5]}, {"55063256": [150, 8]}, {"55063259": [112, 49, 8, 255, 15, 53, 8]}, {"55063267": [48, 166, 8]}, {"55063271": [112, 146, 40]}, {"55063275": [1, 162, 8]}, {"55063279": [105, 150, 40]}, {"55063283": [2, 166, 8]}, {"55063287": [106, 142, 40]}, {"55063291": [4, 174, 8]}, {"55063295": [108, 12, 16, 12, 202, 52, 4]}, {"55063304": [12, 16, 12, 202, 52, 4]}, {"55063311": [1, 12, 16, 12, 202, 52, 4]}, {"55063319": [2, 143, 191]}, {"55063323": [16, 39, 189]}, {"55063327": [24, 3, 224]}, {"55063331": [8]}, {"55063336": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 51, 212, 145, 10]}, {"55063351": [108, 52, 1]}, {"55063355": [255, 17, 65]}, {"55063359": [5]}, {"55063364": [1, 42, 72, 33, 145, 41]}, {"55063372": [21, 32]}, {"55063375": [28]}, {"55063380": [60, 9, 128, 64, 37, 41, 51, 199, 37, 41]}, {"55063391": [1, 145, 42]}, {"55063396": [17, 64]}, {"55063399": [19]}, {"55063404": [2, 10, 88, 33, 145, 107]}, {"55063411": [116, 52, 1]}, {"55063415": [255, 17, 97, 255, 248]}, {"55063424": [146, 12]}, {"55063427": [108, 17, 138, 255, 245]}, {"55063436": [146, 12]}, {"55063439": [109, 17, 138, 255, 242]}, {"55063448": [146, 12]}, {"55063451": [110, 17, 138, 255, 239]}, {"55063460": [161, 11]}, {"55063463": [105, 161, 10]}, {"55063467": [108, 16]}, {"55063471": [4]}, {"55063476": [52, 9]}, {"55063479": [255, 161, 9]}, {"55063483": [105, 161, 9]}, {"55063487": [108, 3, 224]}, {"55063491": [8]}, {"55063496": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063509": [1, 1, 1, 1, 1]}, {"55063515": [1, 1, 1, 1, 1]}, {"55063521": [1]}, {"55063523": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063533": [51, 8, 33, 32, 15]}, {"55063539": [71, 21, 234]}, {"55063543": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063555": [164]}, {"55063557": [15, 122, 3, 20, 64]}, {"55063563": [5, 52, 2, 72, 48, 21, 226]}, {"55063571": [7]}, {"55063576": [36, 25]}, {"55063579": [3, 16]}, {"55063583": [4, 52, 2, 99, 17, 21, 226]}, {"55063591": [2]}, {"55063596": [36, 25]}, {"55063599": [3, 3, 224]}, {"55063603": [8]}, {"55063608": [141, 173, 138, 160, 52, 2, 128]}, {"55063616": [16, 77]}, {"55063619": [2]}, {"55063624": [16]}, {"55063627": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063643": [1, 16, 64]}, {"55063647": [2]}, {"55063652": [16]}, {"55063655": [2, 52, 2]}, {"55063659": [1, 161, 226, 28, 191, 3, 224]}, {"55063667": [8]}, {"55063673": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063687": [164]}, {"55063689": [15, 122, 3, 20, 64]}, {"55063695": [5, 52, 2, 72, 48, 21, 226]}, {"55063703": [7]}, {"55063708": [36, 25]}, {"55063711": [3, 16]}, {"55063715": [4, 52, 2, 99, 17, 21, 226]}, {"55063723": [2]}, {"55063728": [36, 25]}, {"55063731": [3, 3, 224]}, {"55063735": [8]}, {"55063740": [162, 37]}, {"55063743": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063755": [4, 142, 10]}, {"55063760": [17, 64]}, {"55063763": [11]}, {"55063769": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063781": [24, 194, 2, 23]}, {"55063787": [3, 49, 89]}, {"55063791": [255, 129, 234]}, {"55063796": [3, 42, 200, 37, 8, 16, 13, 50, 161, 249]}, {"55063808": [3, 224]}, {"55063811": [8]}] \ No newline at end of file diff --git a/version.py b/version.py index 5202f0252..9db4c76ee 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.19 f.LUM' +__version__ = '2.15.20 f.LUM' From 29ab1aa9fb486bd4c5ff43866c22dee9299ffb1c Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Sun, 12 Aug 2018 23:20:54 -0400 Subject: [PATCH 270/755] shop items can be shuffled --- ItemList.py | 4 +++ Items.py | 53 +++++++++++++++++++++++++++- Regions.py | 100 ++++++++++++++++++++++++++++++++++++++++++++++------ Rom.py | 61 ++++++++++++++++++++++++++++++++ Rules.py | 4 +++ version.py | 2 +- 6 files changed, 212 insertions(+), 12 deletions(-) diff --git a/ItemList.py b/ItemList.py index 6ca4c8ba6..242aa3eae 100644 --- a/ItemList.py +++ b/ItemList.py @@ -350,6 +350,10 @@ def get_pool_core(world): else: placed_items['Gerudo Fortress Membership Card'] = 'Gerudo Membership Card' + pool.extend(['Buy Deku Nut (5)'] + ['Buy Arrows (30)'] + ['Buy Arrows (50)'] + ['Buy Bombs (5)'] + ['Buy Deku Nut (10)'] + ['Buy Deku Stick (1)'] + ['Buy Bombs (10)'] + + ['Buy Fish'] + ['Buy Red Potion'] + ['Buy Green Potion'] + ['Buy Blue Potion'] + ['Buy Hylian Shield'] + ['Buy Deku Shield'] + ['Buy Goron Tunic'] + ['Buy Zora Tunic'] + + ['Buy Heart'] + ['Buy Bombchu (10)'] + ['Buy Bombchu (20)'] + ['Buy Bombchu (5)'] + ['Buy Deku Seeds (30)'] + ['Sold Out'] * 30 + ['Buy Blue Fire'] + ['Buy Bottle Bug'] + + ['Buy Fairy\'s Spirit'] + ['Buy Arrow (10)'] + ['Buy Bombs (20)'] + ['Buy Bombs (30)']) pool.extend(alwaysitems) for _ in range(normal_bottle_count): diff --git a/Items.py b/Items.py index d37b60d4d..44eaacc41 100644 --- a/Items.py +++ b/Items.py @@ -183,7 +183,58 @@ def ItemFactory(items): 'Shadow Trial Clear': (True, False, 'Event', None, None), 'Spirit Trial Clear': (True, False, 'Event', None, None), 'Light Trial Clear': (True, False, 'Event', None, None), - 'Triforce': (True, False, 'Event', None, None)} + 'Triforce': (True, False, 'Event', None, None), + 'Buy Deku Nut (5)': (False, True, 'Shop', 0x00BB, 0x00), + 'Buy Arrows (30)': (False, True, 'Shop', 0x00D8, 0x01), + 'Buy Arrows (50)': (False, True, 'Shop', 0x00D8, 0x02), + 'Buy Bombs (5)': (False, True, 'Shop', 0x00CE, 0x03), + 'Buy Deku Nut (10)': (False, True, 'Shop', 0x00BB, 0x04), + 'Buy Deku Stick (1)': (False, True, 'Shop', 0x00C7, 0x05), + 'Buy Bombs (10)': (False, True, 'Shop', 0x00CE, 0x06), + 'Buy Fish': (False, True, 'Shop', 0x00F4, 0x07), + 'Buy Red Potion': (False, True, 'Shop', 0x00EB, 0x08), + 'Buy Green Potion': (False, True, 'Shop', 0x00EB, 0x09), + 'Buy Blue Potion': (False, True, 'Shop', 0x00EB, 0x0A), +# 'Buy Giant's Knife': (False, True, 'Shop', 0x00F8, 0x0B), + 'Buy Hylian Shield': (True, False, 'Shop', 0x00DC, 0x0C), + 'Buy Deku Shield': (True, False, 'Shop', 0x00CB, 0x0D), + 'Buy Goron Tunic': (True, False, 'Shop', 0x00F2, 0x0E), + 'Buy Zora Tunic': (True, False, 'Shop', 0x00F2, 0x0F), + 'Buy Heart': (False, True, 'Shop', 0x00B7, 0x10), +# 'Buy Milk Bottle': (False, True, 'Shop', 0x00DF, 0x11), +# 'Buy Weird Egg': (False, True, 'Shop', 0x00DA, 0x12), +# 'Buy Milk Bottle': (False, True, 'Shop', 0x00DF, 0x13), +# 'Buy Weird Egg': (False, True, 'Shop', 0x00DA, 0x14), + 'Buy Bombchu (10)': (True, False, 'Shop', 0x00D9, 0x15), + 'Buy Bombchu (20)': (True, False, 'Shop', 0x00D9, 0x16), +# 'Buy Bombchu (20)': (False, True, 'Shop', 0x00D9, 0x17), + 'Buy Bombchu (5)': (True, False, 'Shop', 0x00D9, 0x18), +# 'Buy Bombchu (10)': (False, True, 'Shop', 0x00D9, 0x19), +# 'Buy Bombchu (20)': (False, True, 'Shop', 0x00D9, 0x1A), +# 'Buy Bombchu (20)': (False, True, 'Shop', 0x00D9, 0x1B), +# 'Buy Bombchu (10)': (False, True, 'Shop', 0x00D9, 0x1C), + 'Buy Deku Seeds (30)': (False, True, 'Shop', 0x0119, 0x1D), +# 'Buy Keaton Mask': (False, True, 'Shop', 0x0134, 0x1E), +# 'Buy Spooky Mask': (False, True, 'Shop', 0x0135, 0x1F), +# 'Buy Skull Mask': (False, True, 'Shop', 0x0136, 0x20), +# 'Buy Bunny Hood': (False, True, 'Shop', 0x0137, 0x21), +# 'Buy Mask of Truth': (False, True, 'Shop', 0x0138, 0x22), +# 'Buy Zora Mask': (False, True, 'Shop', 0x0151, 0x23), +# 'Buy Goron Mask': (False, True, 'Shop', 0x0150, 0x24), +# 'Buy Gerudo Mask': (False, True, 'Shop', 0x0152, 0x25), + 'Sold Out': (False, True, 'Shop', 0x0148, 0x26), + 'Buy Blue Fire': (True, False, 'Shop', 0x0173, 0x27), + 'Buy Bottle Bug': (False, True, 'Shop', 0x0174, 0x28), +# 'Buy Big Poe': (False, True, 'Shop', 0x0176, 0x29), +# 'Buy Poe': (False, True, 'Shop', 0x0176, 0x2A), + 'Buy Fairy\'s Spirit': (False, True, 'Shop', 0x0177, 0x2B), + 'Buy Arrow (10)': (False, True, 'Shop', 0x00D8, 0x2C), + 'Buy Bombs (20)': (False, True, 'Shop', 0x00CE, 0x2D), + 'Buy Bombs (30)': (False, True, 'Shop', 0x00CE, 0x2E), +# 'Buy Bombs (5)': (False, True, 'Shop', 0x00CE, 0x2F), +# 'Buy Red Potion': (False, True, 'Shop', 0x00EB, 0x30), +# 'Buy Red Potion': (False, True, 'Shop', 0x00EB, 0x31), +} item_data = { 'Hammer': [0x11, 0x80, 0x41, 0x38, 0x00, 0xF6], diff --git a/Regions.py b/Regions.py index 0e5f58f7d..a50fe96c6 100644 --- a/Regions.py +++ b/Regions.py @@ -33,7 +33,8 @@ def create_regions(world): ['Know It All House Exit']), create_interior_region( 'Kokiri Shop', - None, + ['Kokiri Shop Item 1', 'Kokiri Shop Item 2', 'Kokiri Shop Item 3', 'Kokiri Shop Item 4', + 'Kokiri Shop Item 5', 'Kokiri Shop Item 6', 'Kokiri Shop Item 7', 'Kokiri Shop Item 8'], ['Kokiri Shop Exit']), create_dungeon_region( 'Deku Tree Lobby', @@ -218,15 +219,26 @@ def create_regions(world): ['Ganons Castle Grounds Exit', 'Ganons Castle Fairy', 'Rainbow Bridge']), create_interior_region('Ganons Castle Fairy', ['Ganons Castle Fairy Reward']), create_interior_region('Castle Town Rupee Room', ['10 Big Poes', 'GS Castle Market Guard House']), - create_interior_region('Castle Town Bazaar'), + create_interior_region( + 'Castle Town Bazaar', + ['Bazaar Item 1', 'Bazaar Item 2', 'Bazaar Item 3', 'Bazaar Item 4', + 'Bazaar Item 5', 'Bazaar Item 6', 'Bazaar Item 7', 'Bazaar Item 8']), create_interior_region('Castle Town Mask Shop'), create_interior_region('Castle Town Shooting Gallery', ['Child Shooting Gallery']), create_interior_region( 'Castle Town Bombchu Bowling', ['Bombchu Bowling Bomb Bag', 'Bombchu Bowling Piece of Heart']), - create_interior_region('Castle Town Potion Shop'), + create_interior_region( + 'Castle Town Potion Shop', + ['Castle Town Potion Shop Item 1', 'Castle Town Potion Shop Item 2', + 'Castle Town Potion Shop Item 3', 'Castle Town Potion Shop Item 4', + 'Castle Town Potion Shop Item 5', 'Castle Town Potion Shop Item 6', + 'Castle Town Potion Shop Item 7', 'Castle Town Potion Shop Item 8']), create_interior_region('Castle Town Treasure Chest Game', ['Treasure Chest Game']), - create_interior_region('Castle Town Bombchu Shop'), + create_interior_region( + 'Castle Town Bombchu Shop', + ['Bombchu Shop Item 1', 'Bombchu Shop Item 2', 'Bombchu Shop Item 3', 'Bombchu Shop Item 4', + 'Bombchu Shop Item 5', 'Bombchu Shop Item 6', 'Bombchu Shop Item 7', 'Bombchu Shop Item 8']), create_interior_region('Castle Town Dog Lady', ['Dog Lady']), create_interior_region('Castle Town Man in Green House'), create_ow_region( @@ -246,9 +258,14 @@ def create_regions(world): create_interior_region('Impas House'), create_interior_region('Impas House Back', ['Impa House Freestanding PoH']), create_interior_region('Windmill', ['Windmill Freestanding PoH', 'Song at Windmill']), - create_interior_region('Kakariko Bazaar'), + create_interior_region('Kakariko Bazaar', None, ['Castle Town Bazaar']), create_interior_region('Kakariko Shooting Gallery', ['Adult Shooting Gallery']), - create_interior_region('Kakariko Potion Shop Front'), + create_interior_region( + 'Kakariko Potion Shop Front', + ['Kakariko Potion Shop Item 1', 'Kakariko Potion Shop Item 2', + 'Kakariko Potion Shop Item 3', 'Kakariko Potion Shop Item 4', + 'Kakariko Potion Shop Item 5', 'Kakariko Potion Shop Item 6', + 'Kakariko Potion Shop Item 7', 'Kakariko Potion Shop Item 8']), create_interior_region('Kakariko Potion Shop Back'), create_interior_region('Odd Medicine Building'), create_dungeon_region( @@ -312,11 +329,15 @@ def create_regions(world): ['Goron City Leftmost Maze Chest', 'Goron City Left Maze Chest', 'Goron City Right Maze Chest', 'Goron City Pot Freestanding PoH', 'Rolling Goron as Child', 'Link the Goron', 'GS Goron City Boulder Maze', 'GS Goron City Center Platform'], - ['Goron City Exit', 'Goron City Bomb Wall', 'Darunias Chamber', 'Crater Access']), + ['Goron City Exit', 'Goron City Bomb Wall', 'Darunias Chamber', 'Crater Access', 'Goron Shop']), create_ow_region( 'Goron City Woods Warp', None, ['Goron City from Woods', 'Goron City to Woods']), + create_interior_region( + 'Goron Shop', + ['Goron Shop Item 1', 'Goron Shop Item 2', 'Goron Shop Item 3', 'Goron Shop Item 4', + 'Goron Shop Item 5', 'Goron Shop Item 6', 'Goron Shop Item 7', 'Goron Shop Item 8']), create_ow_region('Darunias Chamber', ['Darunias Joy'], ['Darunias Chamber Exit']), create_ow_region( 'Death Mountain Crater Upper', @@ -396,7 +417,10 @@ def create_regions(world): 'Ice Cavern Freestanding PoH', 'Sheik in Ice Cavern', 'GS Ice Cavern Spinning Scythe Room', 'GS Ice Cavern Heart Piece Room', 'GS Ice Cavern Push Block Room'], ['Ice Cavern Exit']), - create_interior_region('Zora Shop'), + create_interior_region( + 'Zora Shop', + ['Zora Shop Item 1', 'Zora Shop Item 2', 'Zora Shop Item 3', 'Zora Shop Item 4', + 'Zora Shop Item 5', 'Zora Shop Item 6', 'Zora Shop Item 7', 'Zora Shop Item 8']), create_interior_region('Zoras Fountain Fairy', ['Zoras Fountain Fairy Reward']), create_dungeon_region( 'Jabu Jabus Belly Beginning', @@ -541,7 +565,7 @@ def create_regions(world): create_grotto_region('Top of Crater Grotto', ['Top of Crater Grotto Chest']), create_grotto_region('Zora River Plateau Open Grotto', ['Zora River Plateau Open Grotto Chest']), create_grotto_region('Zora River Plateau Bombable Grotto'), - create_grotto_region('Lake Hylia Grotto') + create_grotto_region('Lake Hylia Grotto'), ] world.initialize_regions() @@ -981,9 +1005,65 @@ def _create_region(name, type, locations=None, exits=None): 'GS Gerudo Fortress Archery Range': (None, None, 0x01, 'GS Token', 0x14, 'Gerudo Fortress'), 'GS Gerudo Fortress Top Floor': (None, None, 0x02, 'GS Token', 0x14, 'Gerudo Fortress'), - 'GS Desert Colossus Bean Patch': (None, None, 0x01, 'GS Token', 0x15, 'Desert Colossus'), 'GS Wasteland Ruins': (None, None, 0x02, 'GS Token', 0x15, 'Haunted Wasteland'), 'GS Desert Colossus Hill': (None, None, 0x04, 'GS Token', 0x15, 'Desert Colossus'), 'GS Desert Colossus Tree': (None, None, 0x08, 'GS Token', 0x15, 'Desert Colossus'), + + 'Kokiri Shop Item 1': (0xC71ED0, None, 0x000D, 'Shop', None, 'Kokiri Forest'), + 'Kokiri Shop Item 2': (0xC71ED8, None, 0x0000, 'Shop', None, 'Kokiri Forest'), + 'Kokiri Shop Item 3': (0xC71EE0, None, 0x0004, 'Shop', None, 'Kokiri Forest'), + 'Kokiri Shop Item 4': (0xC71EE8, None, 0x0005, 'Shop', None, 'Kokiri Forest'), + 'Kokiri Shop Item 5': (0xC71EF0, None, 0x001D, 'Shop', None, 'Kokiri Forest'), + 'Kokiri Shop Item 6': (0xC71EF8, None, 0x002C, 'Shop', None, 'Kokiri Forest'), + 'Kokiri Shop Item 7': (0xC71F00, None, 0x0001, 'Shop', None, 'Kokiri Forest'), + 'Kokiri Shop Item 8': (0xC71F08, None, 0x0010, 'Shop', None, 'Kokiri Forest'), + 'Kakariko Potion Shop Item 1': (0xC71F10, None, 0x0009, 'Shop', None, 'Kakariko Village'), + 'Kakariko Potion Shop Item 2': (0xC71F18, None, 0x0027, 'Shop', None, 'Kakariko Village'), + 'Kakariko Potion Shop Item 3': (0xC71F20, None, 0x0008, 'Shop', None, 'Kakariko Village'), + 'Kakariko Potion Shop Item 4': (0xC71F28, None, 0x002B, 'Shop', None, 'Kakariko Village'), + 'Kakariko Potion Shop Item 5': (0xC71F30, None, 0x0000, 'Shop', None, 'Kakariko Village'), + 'Kakariko Potion Shop Item 6': (0xC71F38, None, 0x0028, 'Shop', None, 'Kakariko Village'), + 'Kakariko Potion Shop Item 7': (0xC71F40, None, 0x002A, 'Shop', None, 'Kakariko Village'), + 'Kakariko Potion Shop Item 8': (0xC71F48, None, 0x0007, 'Shop', None, 'Kakariko Village'), + 'Bombchu Shop Item 1': (0xC71F50, None, 0x0018, 'Shop', None, 'the market'), + 'Bombchu Shop Item 2': (0xC71F58, None, 0x001C, 'Shop', None, 'the market'), + 'Bombchu Shop Item 3': (0xC71F60, None, 0x0019, 'Shop', None, 'the market'), + 'Bombchu Shop Item 4': (0xC71F68, None, 0x0015, 'Shop', None, 'the market'), + 'Bombchu Shop Item 5': (0xC71F70, None, 0x001A, 'Shop', None, 'the market'), + 'Bombchu Shop Item 6': (0xC71F78, None, 0x0016, 'Shop', None, 'the market'), + 'Bombchu Shop Item 7': (0xC71F80, None, 0x001B, 'Shop', None, 'the market'), + 'Bombchu Shop Item 8': (0xC71F88, None, 0x0017, 'Shop', None, 'the market'), + 'Castle Town Potion Shop Item 1': (0xC71F90, None, 0x0009, 'Shop', None, 'the market'), + 'Castle Town Potion Shop Item 2': (0xC71F98, None, 0x0027, 'Shop', None, 'the market'), + 'Castle Town Potion Shop Item 3': (0xC71FA0, None, 0x0008, 'Shop', None, 'the market'), + 'Castle Town Potion Shop Item 4': (0xC71FA8, None, 0x002B, 'Shop', None, 'the market'), + 'Castle Town Potion Shop Item 5': (0xC71FB0, None, 0x0000, 'Shop', None, 'the market'), + 'Castle Town Potion Shop Item 6': (0xC71FB8, None, 0x0028, 'Shop', None, 'the market'), + 'Castle Town Potion Shop Item 7': (0xC71FC0, None, 0x002A, 'Shop', None, 'the market'), + 'Castle Town Potion Shop Item 8': (0xC71FC8, None, 0x0007, 'Shop', None, 'the market'), + 'Bazaar Item 1': (0xC71FD0, None, 0x000C, 'Shop', None, 'the market'), + 'Bazaar Item 2': (0xC71FD8, None, 0x002F, 'Shop', None, 'the market'), + 'Bazaar Item 3': (0xC71FE0, None, 0x0000, 'Shop', None, 'the market'), + 'Bazaar Item 4': (0xC71FE8, None, 0x0010, 'Shop', None, 'the market'), + 'Bazaar Item 5': (0xC71FF0, None, 0x002C, 'Shop', None, 'the market'), + 'Bazaar Item 6': (0xC71FF8, None, 0x0002, 'Shop', None, 'the market'), + 'Bazaar Item 7': (0xC72000, None, 0x0005, 'Shop', None, 'the market'), + 'Bazaar Item 8': (0xC72008, None, 0x0001, 'Shop', None, 'the market'), + 'Zora Shop Item 1': (0xC720D0, None, 0x000F, 'Shop', None, 'Zora\'s Domain'), + 'Zora Shop Item 2': (0xC720D8, None, 0x002C, 'Shop', None, 'Zora\'s Domain'), + 'Zora Shop Item 3': (0xC720E0, None, 0x0010, 'Shop', None, 'Zora\'s Domain'), + 'Zora Shop Item 4': (0xC720E8, None, 0x0001, 'Shop', None, 'Zora\'s Domain'), + 'Zora Shop Item 5': (0xC720F0, None, 0x0000, 'Shop', None, 'Zora\'s Domain'), + 'Zora Shop Item 6': (0xC720F8, None, 0x0002, 'Shop', None, 'Zora\'s Domain'), + 'Zora Shop Item 7': (0xC72100, None, 0x0007, 'Shop', None, 'Zora\'s Domain'), + 'Zora Shop Item 8': (0xC72108, None, 0x0031, 'Shop', None, 'Zora\'s Domain'), + 'Goron Shop Item 1': (0xC72110, None, 0x0003, 'Shop', None, 'Goron City'), + 'Goron Shop Item 2': (0xC72118, None, 0x0006, 'Shop', None, 'Goron City'), + 'Goron Shop Item 3': (0xC72120, None, 0x002D, 'Shop', None, 'Goron City'), + 'Goron Shop Item 4': (0xC72128, None, 0x002E, 'Shop', None, 'Goron City'), + 'Goron Shop Item 5': (0xC72130, None, 0x000E, 'Shop', None, 'Goron City'), + 'Goron Shop Item 6': (0xC72138, None, 0x0010, 'Shop', None, 'Goron City'), + 'Goron Shop Item 7': (0xC72140, None, 0x0030, 'Shop', None, 'Goron City'), + 'Goron Shop Item 8': (0xC72148, None, 0x0010, 'Shop', None, 'Goron City'), } diff --git a/Rom.py b/Rom.py index 7c43568f8..eab625452 100644 --- a/Rom.py +++ b/Rom.py @@ -1298,6 +1298,57 @@ def write_save_table(rom): for item_id, gfx_id in chestAnimations.items(): rom.write_byte(0xBEEE8E + (item_id * 6) + 2, gfx_id) + # kokiri shop + shop_objs = place_shop_items(rom, world.get_region('Kokiri Shop').locations) | {0x00FC, 0x00B2, 0x0101, 0x0102, 0x00FD, 0x00C5} + rom.write_byte(0x2587029, len(shop_objs)) + rom.write_int32(0x258702C, 0x0300F600) + rom.write_int16s(0x2596600, list(shop_objs)) + + + #rom.write_int16(None, 0x00D1) + #shop_items[0x001D].object = 0x00D1 + #shop_items[0x001D].model = 0x22 + #shop_items[0x001D].price = 1 + #shop_items[0x001D].pieces = 1 + #shop_items[0x001D].get_item_id = 0x45 + #shop_items[0x001D].func2 = 0x8086365C + + # bazaar + shop_objs = place_shop_items(rom, world.get_region('Castle Town Bazaar').locations) | {0x005B, 0x00B2, 0x00C5, 0x0107, 0x00C9, 0x016B} + rom.write_byte(0x28E4029, len(shop_objs)) + rom.write_int32(0x28E402C, 0x0300FA18) + rom.write_int16s(0x28EBA40, list(shop_objs)) + + # goron shop + shop_objs = place_shop_items(rom, world.get_region('Goron Shop').locations) | {0x00C9, 0x00B2, 0x0103, 0x00AF} + rom.write_byte(0x2D33029, len(shop_objs)) + rom.write_int32(0x2D3302C, 0x03004340) + rom.write_int16s(0x2D37340, list(shop_objs)) + + # zora shop + shop_objs = place_shop_items(rom, world.get_region('Zora Shop').locations) | {0x005B, 0x00B2, 0x0104, 0x00FE} + rom.write_byte(0x2D5B029, len(shop_objs)) + rom.write_int32(0x2D5B02C, 0x03004B40) + rom.write_int16s(0x2D5FB40, list(shop_objs)) + + # kakariko potion shop + shop_objs = place_shop_items(rom, world.get_region('Kakariko Potion Shop Front').locations) | {0x0159, 0x00B2, 0x0175, 0x0122} + rom.write_byte(0x2D83029, len(shop_objs)) + rom.write_int32(0x2D8302C, 0x0300A500) + rom.write_int16s(0x2D8D500, list(shop_objs)) + + # market potion shop + shop_objs = place_shop_items(rom, world.get_region('Castle Town Potion Shop').locations) | {0x0159, 0x00B2, 0x0175, 0x00C5, 0x010C, 0x016B} + rom.write_byte(0x2DB0029, len(shop_objs)) + rom.write_int32(0x2DB002C, 0x03004E40) + rom.write_int16s(0x2DB4E40, list(shop_objs)) + + # bombchu shop + shop_objs = place_shop_items(rom, world.get_region('Castle Town Bombchu Shop').locations) | {0x0165, 0x00B2} + rom.write_byte(0x2DD8029, len(shop_objs)) + rom.write_int32(0x2DD802C, 0x03006A40) + rom.write_int16s(0x2DDEA40, list(shop_objs)) + #Fix item chest animations chestAnimations = { 0x3D: 0xED, #0x13 #Heart Container @@ -1683,3 +1734,13 @@ def update_chest_sizes(rom, override_table): newChestType = chestTypeMap[chestType][itemType] default = (default & 0x0FFF) | newChestType rom.write_int16(address, default) + +def place_shop_items(rom, locations): + shop_objs = set() + for location in locations: + if location.item.type == 'Shop': + shop_objs.add(location.item.code) + rom.write_int16(location.address, location.item.index) + else: + print('error') + return shop_objs diff --git a/Rules.py b/Rules.py index f2571b857..d3b778848 100644 --- a/Rules.py +++ b/Rules.py @@ -281,6 +281,10 @@ def global_rules(world): if location.type != 'Chest': forbid_item(location, 'Ice Trap') add_item_rule(location, lambda i: not (i.type == 'Song' and not i.world.shuffle_song_items and i.world.id != location.world.id)) + if location.type == 'Shop': + add_item_rule(location, lambda i: (i.type == 'Shop')) + else: + add_item_rule(location, lambda i: (i.type != 'Shop')) # Biggoron Sword at bombchu bowling seems to lead to a soft lock. # Unsure what causes this, but I'm leaving this to original devs. diff --git a/version.py b/version.py index 9db4c76ee..108b01727 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.20 f.LUM' +__version__ = '2.15.21 f.LUM' From 0b8686fad8a28d9fe7d587c47ab4df65a69e9c17 Mon Sep 17 00:00:00 2001 From: Woody Thompson Date: Sun, 12 Aug 2018 23:15:43 -0700 Subject: [PATCH 271/755] Fix incorrect hints for fortress keys --- HintList.py | 3 ++- Hints.py | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/HintList.py b/HintList.py index afc4e10df..86768b7e4 100644 --- a/HintList.py +++ b/HintList.py @@ -117,6 +117,7 @@ def getHintGroup(string, world): 'Compass': ("a treasure tracker", 'item'), 'BossKey': ("a master of unlocking", 'item'), 'SmallKey': ("a tool for unlocking", 'item'), + 'FortressSmallKey': ("a get out of jail free card", 'item'), 'useless': ("something worthless", 'item'), 'Arrows (5)': ("danger darts", 'item'), 'Arrows (10)': ("danger darts", 'item'), @@ -290,4 +291,4 @@ def hintExclusions(world): exclusions.append('20 Gold Skulltulla Reward') if expected_skulltulas < 10: exclusions.append('10 Gold Skulltulla Reward') - return exclusions \ No newline at end of file + return exclusions diff --git a/Hints.py b/Hints.py index 3c35c1e19..0fa2a0f6a 100644 --- a/Hints.py +++ b/Hints.py @@ -45,7 +45,7 @@ def buildHintString(hintString): def getItemGenericName(item): - if item.type == 'Map' or item.type == 'Compass' or item.type == 'BossKey' or item.type == 'SmallKey': + if item.type == 'Map' or item.type == 'Compass' or item.type == 'BossKey' or item.type == 'SmallKey' or item.type == 'FortressSmallKey': return item.type else: return item.name @@ -275,4 +275,4 @@ def get_raw_text(string): text += '\x05\x40' #sets color to white else: text += char - return text \ No newline at end of file + return text From a09419d199d1200aebf0c49ba4d2af5a0c18cf30 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Mon, 13 Aug 2018 02:46:48 -0400 Subject: [PATCH 272/755] Added framework for shuffling non-shop items into the shop --- BaseClasses.py | 10 +- ItemList.py | 4 +- Items.py | 571 ++++++++++++++++++++++++------------------------- Rom.py | 40 ++-- Rules.py | 2 +- version.py | 2 +- 6 files changed, 312 insertions(+), 317 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 8f6751ff8..9466f6a2d 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -3,6 +3,7 @@ import logging from collections import OrderedDict from version import __version__ as OoTRVersion +import random class World(object): @@ -92,13 +93,17 @@ def initialize_regions(self): def initialize_items(self): for item in self.itempool: item.world = self + item.price = int(random.betavariate(1.5, 2) * 300) for region in self.regions: for location in region.locations: if location.item != None: location.item.world = self + location.item.price = int(random.betavariate(1.5, 2) * 300) for dungeon in self.dungeons: for item in dungeon.all_items: item.world = self + item.price = int(random.betavariate(1.5, 2) * 300) + def get_region(self, regionname): @@ -675,7 +680,7 @@ def __unicode__(self): class Item(object): - def __init__(self, name='', advancement=False, priority=False, type=None, code=None, index=None): + def __init__(self, name='', advancement=False, priority=False, type=None, code=None, index=None, object=None, model=None): self.name = name self.advancement = advancement self.priority = priority @@ -683,6 +688,9 @@ def __init__(self, name='', advancement=False, priority=False, type=None, code=N self.code = code self.index = index self.location = None + self.object = object + self.model = model + self.price = None def copy(self): return Item(self.name, self.advancement, self.priority, self.type, self.code, self.index) diff --git a/ItemList.py b/ItemList.py index 242aa3eae..3cd1b46fe 100644 --- a/ItemList.py +++ b/ItemList.py @@ -352,8 +352,8 @@ def get_pool_core(world): pool.extend(['Buy Deku Nut (5)'] + ['Buy Arrows (30)'] + ['Buy Arrows (50)'] + ['Buy Bombs (5)'] + ['Buy Deku Nut (10)'] + ['Buy Deku Stick (1)'] + ['Buy Bombs (10)'] + ['Buy Fish'] + ['Buy Red Potion'] + ['Buy Green Potion'] + ['Buy Blue Potion'] + ['Buy Hylian Shield'] + ['Buy Deku Shield'] + ['Buy Goron Tunic'] + ['Buy Zora Tunic'] + - ['Buy Heart'] + ['Buy Bombchu (10)'] + ['Buy Bombchu (20)'] + ['Buy Bombchu (5)'] + ['Buy Deku Seeds (30)'] + ['Sold Out'] * 30 + ['Buy Blue Fire'] + ['Buy Bottle Bug'] + - ['Buy Fairy\'s Spirit'] + ['Buy Arrow (10)'] + ['Buy Bombs (20)'] + ['Buy Bombs (30)']) + ['Buy Heart'] + ['Buy Bombchu (10)'] + ['Buy Bombchu (20)'] + ['Buy Bombchu (5)'] + ['Buy Deku Seeds (30)'] + ['Sold Out'] * 16 + ['Buy Blue Fire'] + ['Buy Bottle Bug'] + + ['Buy Fairy\'s Spirit'] + ['Buy Arrow (10)'] + ['Buy Bombs (20)'] + ['Buy Bombs (30)'] + ['Rupees (5)'] * 14) pool.extend(alwaysitems) for _ in range(normal_bottle_count): diff --git a/Items.py b/Items.py index 44eaacc41..01d1e370e 100644 --- a/Items.py +++ b/Items.py @@ -11,8 +11,8 @@ def ItemFactory(items): singleton = True for item in items: if item in item_table: - advancement, priority, type, code, index = item_table[item] - ret.append(Item(item, advancement, priority, type, code, index)) + advancement, priority, type, code, index, object, model = item_table[item] + ret.append(Item(item, advancement, priority, type, code, index, object, model)) else: logging.getLogger('').warning('Unknown Item: %s', item) return None @@ -22,298 +22,283 @@ def ItemFactory(items): return ret +class ShopData(object): + def __init__(self, model, gid, price): + self.model = model + self.gid = gid + self.price = price + + # Format: Name: (Advancement, Priority, Type, ItemCode, Index) -item_table = {'Bow': (True, False, None, None, 0x83), - 'Progressive Hookshot': (True, False, None, None, 0x80), - 'Hammer': (True, False, None, 0x01A0, 0x0D), - 'Slingshot': (True, False, None, None, 0x84), - 'Boomerang': (True, False, None, 0x00C0, 0x06), - 'Bomb Bag': (True, False, None, None, 0x82), - 'Lens of Truth': (True, False, None, 0x0140, 0x0A), - 'Dins Fire': (True, False, None, 0x0B80, 0x5C), - 'Farores Wind': (True, False, None, 0x0BA0, 0x5D), - 'Nayrus Love': (True, False, None, 0x0BC0, 0x5E), - 'Fire Arrows': (True, False, None, 0x0B00, 0x58), - 'Ice Arrows': (True, False, None, 0x0B20, 0x59), - 'Light Arrows': (True, False, None, 0x0B40, 0x5A), - 'Fairy Ocarina': (True, False, None, 0x0760, 0x3B), - 'Ocarina of Time': (True, False, None, 0x0180, 0x0C), - 'Ocarina': (True, False, None, 0x0180, 0xC3), - 'Bottle': (True, False, None, 0x01E0, 0x0F), - 'Bottle with Letter': (True, False, None, 0x02A0, 0x15), - 'Bottle with Milk': (True, False, None, 0x0280, 0x14), - 'Bottle with Red Potion': (True, False, None, None, 0x89), - 'Bottle with Green Potion': (True, False, None, None, 0x8A), - 'Bottle with Blue Potion': (True, False, None, None, 0x8B), - 'Bottle with Fairy': (True, False, None, None, 0x8C), - 'Bottle with Fish': (True, False, None, None, 0x8D), - 'Bottle with Blue Fire': (True, False, None, None, 0x8E), - 'Bottle with Bugs': (True, False, None, None, 0x8F), - 'Bottle with Poe': (True, False, None, None, 0x91), - 'Weird Egg': (True, False, None, 0x08E0, 0x47), - 'Pocket Egg': (True, False, None, 0x03A0, 0x1D), - 'Pocket Cucco': (True, False, None, 0x03C0, 0x1E), - 'Cojiro': (True, False, None, 0x01C0, 0x0E), - 'Odd Mushroom': (True, False, None, 0x03E0, 0x1F), - 'Odd Potion': (True, False, None, 0x0400, 0x20), - 'Poachers Saw': (True, False, None, 0x0420, 0x21), - 'Broken Sword': (True, False, None, 0x0440, 0x22), - 'Prescription': (True, False, None, 0x0460, 0x23), - 'Eyeball Frog': (True, False, None, 0x0480, 0x24), - 'Eyedrops': (True, False, None, 0x04A0, 0x25), - 'Claim Check': (True, False, None, 0x04C0, 0x26), - 'Kokiri Sword': (True, False, None, 0x04E0, 0x27), - 'Master Sword': (True, False, None, None, None), - 'Biggoron Sword': (True, False, None, None, 0xB5), - 'Deku Shield': (False, False, None, 0x0520, 0x29), - 'Hylian Shield': (False, False, None, 0x0540, 0x2A), - 'Mirror Shield': (True, False, None, 0x0560, 0x2B), - 'Goron Tunic': (True, False, None, 0x0580, 0x2C), - 'Zora Tunic': (True, False, None, 0x05A0, 0x2D), - 'Iron Boots': (True, False, None, 0x05C0, 0x2E), - 'Hover Boots': (True, False, None, 0x05E0, 0x2F), - 'Progressive Strength Upgrade': (True, False, None, None, 0x81), - 'Progressive Scale': (True, False, None, None, 0x86), - 'Progressive Wallet': (True, False, None, None, 0x85), - 'Deku Stick Capacity': (False, False, None, None, 0x88), - 'Deku Nut Capacity': (False, False, None, None, 0x87), - 'Magic Meter': (True, False, None, None, 0xC0), - 'Double Defense': (False, False, None, None, 0xBF), - 'Stone of Agony': (True, False, None, 0x0720, 0x39), - 'Piece of Heart': (False, False, None, 0x07C0, 0x3E), - 'Heart Container': (False, False, None, 0x07A0, 0x3D), - 'Piece of Heart (Treasure Chest Game)': (False, False, None, None, 0x76), - 'Heart Container (Boss)': (False, False, None, None, 0x4F), - 'Recovery Heart': (False, False, None, None, 0xB6), - 'Arrows (5)': (False, False, None, None, 0xB7), - 'Arrows (10)': (False, False, None, None, 0xB8), - 'Arrows (30)': (False, False, None, None, 0xB9), - 'Bombs (5)': (False, False, None, None, 0xBA), - 'Bombs (10)': (False, False, None, None, 0xBB), - 'Bombs (20)': (False, False, None, None, 0xBC), - 'Bombchus (5)': (True, False, None, 0x0D40, 0x6A), - 'Bombchus (10)': (True, False, None, 0x0060, 0x03), - 'Bombchus (20)': (True, False, None, 0x0D60, 0x6B), - 'Bombchus': (True, False, None, None, 0xC2), - 'Deku Nuts (5)': (False, False, None, None, 0xBD), - 'Deku Nuts (10)': (False, False, None, None, 0xBE), - 'Rupee (1)': (False, False, None, 0x0980, 0x4C), - 'Rupees (5)': (False, False, None, 0x09A0, 0x4D), - 'Rupees (20)': (False, False, None, 0x09C0, 0x4E), - 'Rupees (50)': (False, False, None, 0x0AA0, 0x55), - 'Rupees (200)': (False, False, None, 0x0AC0, 0x56), - 'Skull Mask': (False, False, None, 0x02E0, 0x17), - 'Spooky Mask': (False, False, None, 0x0300, 0x18), - 'Keaton Mask': (False, False, None, 0x0340, 0x1A), - 'Bunny Hood': (False, False, None, 0x0360, 0x1B), - 'Mask of Truth': (False, False, None, 0x0380, 0x1C), - 'Goron Mask': (False, False, None, 0x0A20, 0x51), - 'Zora Mask': (False, False, None, 0x0A40, 0x52), - 'Gerudo Mask': (False, False, None, 0x0A60, 0x53), - 'Ice Trap': (False, True, None, 0x0F80, 0x7C), - 'Magic Bean': (True, False, None, 0x02C0, 0x16), - 'Map': (False, False, 'Map', 0x0820, 0x41), - 'Compass': (False, False, 'Compass', 0x0800, 0x40), - 'Boss Key': (True, False, 'BossKey', 0x07E0, 0x3F), - 'Small Key': (True, False, 'SmallKey', 0x0840, 0x42), - 'Boss Key (Forest Temple)': (True, False, 'BossKey', None, 0x92), - 'Boss Key (Fire Temple)': (True, False, 'BossKey', None, 0x93), - 'Boss Key (Water Temple)': (True, False, 'BossKey', None, 0x94), - 'Boss Key (Spirit Temple)': (True, False, 'BossKey', None, 0x95), - 'Boss Key (Shadow Temple)': (True, False, 'BossKey', None, 0x96), - 'Boss Key (Ganons Castle)': (True, False, 'BossKey', None, 0x97), - 'Compass (Deku Tree)': (False, False, 'Compass', None, 0x98), - 'Compass (Dodongos Cavern)': (False, False, 'Compass', None, 0x99), - 'Compass (Jabu Jabus Belly)': (False, False, 'Compass', None, 0x9A), - 'Compass (Forest Temple)': (False, False, 'Compass', None, 0x9B), - 'Compass (Fire Temple)': (False, False, 'Compass', None, 0x9C), - 'Compass (Water Temple)': (False, False, 'Compass', None, 0x9D), - 'Compass (Spirit Temple)': (False, False, 'Compass', None, 0x9E), - 'Compass (Shadow Temple)': (False, False, 'Compass', None, 0x9F), - 'Compass (Bottom of the Well)': (False, False, 'Compass', None, 0xA0), - 'Compass (Ice Cavern)': (False, False, 'Compass', None, 0xA1), - 'Map (Deku Tree)': (False, False, 'Map', None, 0xA2), - 'Map (Dodongos Cavern)': (False, False, 'Map', None, 0xA3), - 'Map (Jabu Jabus Belly)': (False, False, 'Map', None, 0xA4), - 'Map (Forest Temple)': (False, False, 'Map', None, 0xA5), - 'Map (Fire Temple)': (False, False, 'Map', None, 0xA6), - 'Map (Water Temple)': (False, False, 'Map', None, 0xA7), - 'Map (Spirit Temple)': (False, False, 'Map', None, 0xA8), - 'Map (Shadow Temple)': (False, False, 'Map', None, 0xA9), - 'Map (Bottom of the Well)': (False, False, 'Map', None, 0xAA), - 'Map (Ice Cavern)': (False, False, 'Map', None, 0xAB), - 'Small Key (Forest Temple)': (True, False, 'SmallKey', None, 0xAC), - 'Small Key (Fire Temple)': (True, False, 'SmallKey', None, 0xAD), - 'Small Key (Water Temple)': (True, False, 'SmallKey', None, 0xAE), - 'Small Key (Spirit Temple)': (True, False, 'SmallKey', None, 0xAF), - 'Small Key (Shadow Temple)': (True, False, 'SmallKey', None, 0xB0), - 'Small Key (Bottom of the Well)': (True, False, 'SmallKey', None, 0xB1), - 'Small Key (Gerudo Training Grounds)': (True, False, 'SmallKey', None, 0xB2), - 'Small Key (Gerudo Fortress)': (True, False, 'FortressSmallKey', None, 0xB3), - 'Small Key (Ganons Castle)': (True, False, 'SmallKey', None, 0xB4), - 'Zeldas Letter': (True, False, None, None, None), - 'Zeldas Lullaby': (True, False, 'Song', [0x0A, 0x5], 0xCA), - 'Eponas Song': (True, False, 'Song', [0x09, 0x4], 0xCB), - 'Suns Song': (True, False, 'Song', [0x0B, 0x2], 0xCD), - 'Sarias Song': (True, False, 'Song', [0x08, 0x3], 0xCC), - 'Song of Time': (True, False, 'Song', [0x0C, 0x1], 0xCE), - 'Song of Storms': (True, False, 'Song', [0x0D, 0x0], 0xCF), - 'Minuet of Forest': (True, False, 'Song', [0x02, 0xB], 0xC4), - 'Prelude of Light': (True, False, 'Song', [0x07, 0x6], 0xC9), - 'Bolero of Fire': (True, False, 'Song', [0x03, 0xA], 0xC5), - 'Serenade of Water': (True, False, 'Song', [0x04, 0x9], 0xC6), - 'Nocturne of Shadow': (True, False, 'Song', [0x06, 0x7], 0xC8), - 'Requiem of Spirit': (True, False, 'Song', [0x05, 0x8], 0xC7), - 'Gold Skulltulla Token': (True, False, 'Token', None, 0x5B), - 'Epona': (True, False, 'Event', None, None), - 'Carpenter Rescue': (True, False, 'Event', None, None), - 'Gerudo Membership Card': (True, False, None, 0x0740, 0x3A), - 'Kokiri Emerald': (True, False, 'Event', 0x6C, None), - 'Goron Ruby': (True, False, 'Event', 0x6D, None), - 'Zora Sapphire': (True, False, 'Event', 0x6E, None), - 'Forest Medallion': (True, False, 'Event', 0x66, None), - 'Fire Medallion': (True, False, 'Event', 0x67, None), - 'Water Medallion': (True, False, 'Event', 0x68, None), - 'Spirit Medallion': (True, False, 'Event', 0x69, None), - 'Shadow Medallion': (True, False, 'Event', 0x6A, None), - 'Light Medallion': (True, False, 'Event', 0x6B, None), - 'Forest Trial Clear': (True, False, 'Event', None, None), - 'Fire Trial Clear': (True, False, 'Event', None, None), - 'Water Trial Clear': (True, False, 'Event', None, None), - 'Shadow Trial Clear': (True, False, 'Event', None, None), - 'Spirit Trial Clear': (True, False, 'Event', None, None), - 'Light Trial Clear': (True, False, 'Event', None, None), - 'Triforce': (True, False, 'Event', None, None), - 'Buy Deku Nut (5)': (False, True, 'Shop', 0x00BB, 0x00), - 'Buy Arrows (30)': (False, True, 'Shop', 0x00D8, 0x01), - 'Buy Arrows (50)': (False, True, 'Shop', 0x00D8, 0x02), - 'Buy Bombs (5)': (False, True, 'Shop', 0x00CE, 0x03), - 'Buy Deku Nut (10)': (False, True, 'Shop', 0x00BB, 0x04), - 'Buy Deku Stick (1)': (False, True, 'Shop', 0x00C7, 0x05), - 'Buy Bombs (10)': (False, True, 'Shop', 0x00CE, 0x06), - 'Buy Fish': (False, True, 'Shop', 0x00F4, 0x07), - 'Buy Red Potion': (False, True, 'Shop', 0x00EB, 0x08), - 'Buy Green Potion': (False, True, 'Shop', 0x00EB, 0x09), - 'Buy Blue Potion': (False, True, 'Shop', 0x00EB, 0x0A), -# 'Buy Giant's Knife': (False, True, 'Shop', 0x00F8, 0x0B), - 'Buy Hylian Shield': (True, False, 'Shop', 0x00DC, 0x0C), - 'Buy Deku Shield': (True, False, 'Shop', 0x00CB, 0x0D), - 'Buy Goron Tunic': (True, False, 'Shop', 0x00F2, 0x0E), - 'Buy Zora Tunic': (True, False, 'Shop', 0x00F2, 0x0F), - 'Buy Heart': (False, True, 'Shop', 0x00B7, 0x10), -# 'Buy Milk Bottle': (False, True, 'Shop', 0x00DF, 0x11), -# 'Buy Weird Egg': (False, True, 'Shop', 0x00DA, 0x12), -# 'Buy Milk Bottle': (False, True, 'Shop', 0x00DF, 0x13), -# 'Buy Weird Egg': (False, True, 'Shop', 0x00DA, 0x14), - 'Buy Bombchu (10)': (True, False, 'Shop', 0x00D9, 0x15), - 'Buy Bombchu (20)': (True, False, 'Shop', 0x00D9, 0x16), -# 'Buy Bombchu (20)': (False, True, 'Shop', 0x00D9, 0x17), - 'Buy Bombchu (5)': (True, False, 'Shop', 0x00D9, 0x18), -# 'Buy Bombchu (10)': (False, True, 'Shop', 0x00D9, 0x19), -# 'Buy Bombchu (20)': (False, True, 'Shop', 0x00D9, 0x1A), -# 'Buy Bombchu (20)': (False, True, 'Shop', 0x00D9, 0x1B), -# 'Buy Bombchu (10)': (False, True, 'Shop', 0x00D9, 0x1C), - 'Buy Deku Seeds (30)': (False, True, 'Shop', 0x0119, 0x1D), -# 'Buy Keaton Mask': (False, True, 'Shop', 0x0134, 0x1E), -# 'Buy Spooky Mask': (False, True, 'Shop', 0x0135, 0x1F), -# 'Buy Skull Mask': (False, True, 'Shop', 0x0136, 0x20), -# 'Buy Bunny Hood': (False, True, 'Shop', 0x0137, 0x21), -# 'Buy Mask of Truth': (False, True, 'Shop', 0x0138, 0x22), -# 'Buy Zora Mask': (False, True, 'Shop', 0x0151, 0x23), -# 'Buy Goron Mask': (False, True, 'Shop', 0x0150, 0x24), -# 'Buy Gerudo Mask': (False, True, 'Shop', 0x0152, 0x25), - 'Sold Out': (False, True, 'Shop', 0x0148, 0x26), - 'Buy Blue Fire': (True, False, 'Shop', 0x0173, 0x27), - 'Buy Bottle Bug': (False, True, 'Shop', 0x0174, 0x28), -# 'Buy Big Poe': (False, True, 'Shop', 0x0176, 0x29), -# 'Buy Poe': (False, True, 'Shop', 0x0176, 0x2A), - 'Buy Fairy\'s Spirit': (False, True, 'Shop', 0x0177, 0x2B), - 'Buy Arrow (10)': (False, True, 'Shop', 0x00D8, 0x2C), - 'Buy Bombs (20)': (False, True, 'Shop', 0x00CE, 0x2D), - 'Buy Bombs (30)': (False, True, 'Shop', 0x00CE, 0x2E), -# 'Buy Bombs (5)': (False, True, 'Shop', 0x00CE, 0x2F), -# 'Buy Red Potion': (False, True, 'Shop', 0x00EB, 0x30), -# 'Buy Red Potion': (False, True, 'Shop', 0x00EB, 0x31), +item_table = { + 'Bow': (True, False, None, None, 0x83, 0x00E9, 0x35), + 'Progressive Hookshot': (True, False, None, None, 0x80, 0x00DD, 0x2D), + 'Hammer': (True, False, None, 0x01A0, 0x0D, 0x00F6, 0x41), + 'Slingshot': (True, False, None, None, 0x84, 0x00E7, 0x33), + 'Boomerang': (True, False, None, 0x00C0, 0x06, 0x00E8, 0x34), + 'Bomb Bag': (True, False, None, None, 0x82, 0x00BF, 0x18), + 'Lens of Truth': (True, False, None, 0x0140, 0x0A, 0x00EA, 0x36), + 'Dins Fire': (True, False, None, 0x0B80, 0x5C, 0x015D, 0x64), + 'Farores Wind': (True, False, None, 0x0BA0, 0x5D, 0x015D, 0x65), + 'Nayrus Love': (True, False, None, 0x0BC0, 0x5E, 0x015D, 0x66), + 'Fire Arrows': (True, False, None, 0x0B00, 0x58, 0x0158, 0x60), + 'Ice Arrows': (True, False, None, 0x0B20, 0x59, 0x0158, 0x61), + 'Light Arrows': (True, False, None, 0x0B40, 0x5A, 0x0158, 0x62), + 'Fairy Ocarina': (True, False, None, 0x0760, 0x3B, 0x010E, 0x46), + 'Ocarina of Time': (True, False, None, 0x0180, 0x0C, 0x00DE, 0x2F), + 'Ocarina': (True, False, None, 0x0180, 0xC3, 0x00DE, 0x2F), + 'Bottle': (True, False, None, 0x01E0, 0x0F, 0x00C5, 0x01), + 'Bottle with Letter': (True, False, None, 0x02A0, 0x15, 0x010B, 0x45), + 'Bottle with Milk': (True, False, None, 0x0280, 0x14, 0x00DF, 0x30), + 'Bottle with Red Potion': (True, False, None, None, 0x89, 0x00C5, 0x01), + 'Bottle with Green Potion': (True, False, None, None, 0x8A, 0x00C5, 0x01), + 'Bottle with Blue Potion': (True, False, None, None, 0x8B, 0x00C5, 0x01), + 'Bottle with Fairy': (True, False, None, None, 0x8C, 0x00C5, 0x01), + 'Bottle with Fish': (True, False, None, None, 0x8D, 0x00C5, 0x01), + 'Bottle with Blue Fire': (True, False, None, None, 0x8E, 0x00C5, 0x01), + 'Bottle with Bugs': (True, False, None, None, 0x8F, 0x00C5, 0x01), + 'Bottle with Poe': (True, False, None, None, 0x91, 0x00C5, 0x01), + 'Weird Egg': (True, False, None, 0x08E0, 0x47, 0x00DA, 0x29), + 'Pocket Egg': (True, False, None, 0x03A0, 0x1D, 0x00DA, 0x29), + 'Pocket Cucco': (True, False, None, 0x03C0, 0x1E, 0x0109, 0x44), + 'Cojiro': (True, False, None, 0x01C0, 0x0E, 0x0109, 0x5E), + 'Odd Mushroom': (True, False, None, 0x03E0, 0x1F, 0x0141, 0x54), + 'Odd Potion': (True, False, None, 0x0400, 0x20, 0x0140, 0x53), + 'Poachers Saw': (True, False, None, 0x0420, 0x21, 0x00F5, 0x40), + 'Broken Sword': (True, False, None, 0x0440, 0x22, 0x0143, 0x56), + 'Prescription': (True, False, None, 0x0460, 0x23, 0x0146, 0x57), + 'Eyeball Frog': (True, False, None, 0x0480, 0x24, 0x0149, 0x5A), + 'Eyedrops': (True, False, None, 0x04A0, 0x25, 0x013F, 0x52), + 'Claim Check': (True, False, None, 0x04C0, 0x26, 0x0142, 0x55), + 'Kokiri Sword': (True, False, None, 0x04E0, 0x27, 0x018D, 0x74), + 'Master Sword': (True, False, None, None, None, None, None), + 'Biggoron Sword': (True, False, None, None, 0xB5, 0x00F8, 0x43), + 'Deku Shield': (False, False, None, 0x0520, 0x29, 0x00CB, 0x1D), + 'Hylian Shield': (False, False, None, 0x0540, 0x2A, 0x00DC, 0x2C), + 'Mirror Shield': (True, False, None, 0x0560, 0x2B, 0x00EE, 0x3A), + 'Goron Tunic': (True, False, None, 0x0580, 0x2C, 0x00F2, 0x3C), + 'Zora Tunic': (True, False, None, 0x05A0, 0x2D, 0x00F2, 0x3D), + 'Iron Boots': (True, False, None, 0x05C0, 0x2E, 0x0118, 0x47), + 'Hover Boots': (True, False, None, 0x05E0, 0x2F, 0x0157, 0x5F), + 'Progressive Strength Upgrade': (True, False, None, None, 0x81, 0x0147, 0x58), + 'Progressive Scale': (True, False, None, None, 0x86, 0x00DB, 0x2A), + 'Progressive Wallet': (True, False, None, None, 0x85, 0x00D1, 0x22), + 'Deku Stick Capacity': (False, False, None, None, 0x88, 0x00C7, 0x1B), + 'Deku Nut Capacity': (False, False, None, None, 0x87, 0x00BB, 0x12), + 'Magic Meter': (True, False, None, None, 0xC0, 0x00CD, 0x1E), + 'Double Defense': (False, False, None, None, 0xBF, 0x00BD, 0x13), + 'Stone of Agony': (True, False, None, 0x0720, 0x39, 0x00C8, 0x21), + 'Piece of Heart': (False, False, None, 0x07C0, 0x3E, 0x00BD, 0x14), + 'Heart Container': (False, False, None, 0x07A0, 0x3D, 0x00BD, 0x13), + 'Piece of Heart (Treasure Chest Game)': (False, False, None, None, 0x76, 0x00BD, 0x14), + 'Heart Container (Boss)': (False, False, None, None, 0x4F, 0x00BD, 0x13), + 'Recovery Heart': (False, False, None, None, 0xB6, 0x00B7, 0x09), + 'Arrows (5)': (False, False, None, None, 0xB7, 0x00D8, 0x25), + 'Arrows (10)': (False, False, None, None, 0xB8, 0x00D8, 0x26), + 'Arrows (30)': (False, False, None, None, 0xB9, 0x00D8, 0x27), + 'Bombs (5)': (False, False, None, None, 0xBA, 0x00CE, 0x20), + 'Bombs (10)': (False, False, None, None, 0xBB, 0x00CE, 0x20), + 'Bombs (20)': (False, False, None, None, 0xBC, 0x00CE, 0x20), + 'Bombchus (5)': (True, False, None, 0x0D40, 0x6A, 0x00D9, 0x28), + 'Bombchus (10)': (True, False, None, 0x0060, 0x03, 0x00D9, 0x28), + 'Bombchus (20)': (True, False, None, 0x0D60, 0x6B, 0x00D9, 0x28), + 'Bombchus': (True, False, None, None, 0xC2, 0x00D9, 0x28), + 'Deku Nuts (5)': (False, False, None, None, 0xBD, 0x00BB, 0x12), + 'Deku Nuts (10)': (False, False, None, None, 0xBE, 0x00BB, 0x12), + 'Rupee (1)': (False, False, None, 0x0980, 0x4C, 0x017F, 0x6D), + 'Rupees (5)': (False, False, None, 0x09A0, 0x4D, 0x017F, 0x6E), + 'Rupees (20)': (False, False, None, 0x09C0, 0x4E, 0x017F, 0x6F), + 'Rupees (50)': (False, False, None, 0x0AA0, 0x55, 0x017F, 0x71), + 'Rupees (200)': (False, False, None, 0x0AC0, 0x56, 0x017F, 0x72), + 'Skull Mask': (False, False, None, 0x02E0, 0x17, 0x0136, 0x4F), + 'Spooky Mask': (False, False, None, 0x0300, 0x18, 0x0135, 0x32), + 'Keaton Mask': (False, False, None, 0x0340, 0x1A, 0x0134, 0x31), + 'Bunny Hood': (False, False, None, 0x0360, 0x1B, 0x0137, 0x50), + 'Mask of Truth': (False, False, None, 0x0380, 0x1C, 0x0138, 0x51), + 'Goron Mask': (False, False, None, 0x0A20, 0x51, 0x0150, 0x5B), + 'Zora Mask': (False, False, None, 0x0A40, 0x52, 0x0151, 0x5C), + 'Gerudo Mask': (False, False, None, 0x0A60, 0x53, 0x0152, 0x5D), + 'Ice Trap': (False, True, None, 0x0F80, 0x7C, None, None), + 'Magic Bean': (True, False, None, 0x02C0, 0x16, 0x00F3, 0x3E), + 'Map': (False, False, 'Map', 0x0820, 0x41, 0x00C8, 0x1C), + 'Compass': (False, False, 'Compass', 0x0800, 0x40, 0x00B8, 0x0B), + 'Boss Key': (True, False, 'BossKey', 0x07E0, 0x3F, 0x00B9, 0x0A), + 'Small Key': (True, False, 'SmallKey', 0x0840, 0x42, 0x00AA, 0x02), + 'Boss Key (Forest Temple)': (True, False, 'BossKey', None, 0x92, 0x00B9, 0x0A), + 'Boss Key (Fire Temple)': (True, False, 'BossKey', None, 0x93, 0x00B9, 0x0A), + 'Boss Key (Water Temple)': (True, False, 'BossKey', None, 0x94, 0x00B9, 0x0A), + 'Boss Key (Spirit Temple)': (True, False, 'BossKey', None, 0x95, 0x00B9, 0x0A), + 'Boss Key (Shadow Temple)': (True, False, 'BossKey', None, 0x96, 0x00B9, 0x0A), + 'Boss Key (Ganons Castle)': (True, False, 'BossKey', None, 0x97, 0x00B9, 0x0A), + 'Compass (Deku Tree)': (False, False, 'Compass', None, 0x98, 0x00B8, 0x0B), + 'Compass (Dodongos Cavern)': (False, False, 'Compass', None, 0x99, 0x00B8, 0x0B), + 'Compass (Jabu Jabus Belly)': (False, False, 'Compass', None, 0x9A, 0x00B8, 0x0B), + 'Compass (Forest Temple)': (False, False, 'Compass', None, 0x9B, 0x00B8, 0x0B), + 'Compass (Fire Temple)': (False, False, 'Compass', None, 0x9C, 0x00B8, 0x0B), + 'Compass (Water Temple)': (False, False, 'Compass', None, 0x9D, 0x00B8, 0x0B), + 'Compass (Spirit Temple)': (False, False, 'Compass', None, 0x9E, 0x00B8, 0x0B), + 'Compass (Shadow Temple)': (False, False, 'Compass', None, 0x9F, 0x00B8, 0x0B), + 'Compass (Bottom of the Well)': (False, False, 'Compass', None, 0xA0, 0x00B8, 0x0B), + 'Compass (Ice Cavern)': (False, False, 'Compass', None, 0xA1, 0x00B8, 0x0B), + 'Map (Deku Tree)': (False, False, 'Map', None, 0xA2, 0x00C8, 0x1C), + 'Map (Dodongos Cavern)': (False, False, 'Map', None, 0xA3, 0x00C8, 0x1C), + 'Map (Jabu Jabus Belly)': (False, False, 'Map', None, 0xA4, 0x00C8, 0x1C), + 'Map (Forest Temple)': (False, False, 'Map', None, 0xA5, 0x00C8, 0x1C), + 'Map (Fire Temple)': (False, False, 'Map', None, 0xA6, 0x00C8, 0x1C), + 'Map (Water Temple)': (False, False, 'Map', None, 0xA7, 0x00C8, 0x1C), + 'Map (Spirit Temple)': (False, False, 'Map', None, 0xA8, 0x00C8, 0x1C), + 'Map (Shadow Temple)': (False, False, 'Map', None, 0xA9, 0x00C8, 0x1C), + 'Map (Bottom of the Well)': (False, False, 'Map', None, 0xAA, 0x00C8, 0x1C), + 'Map (Ice Cavern)': (False, False, 'Map', None, 0xAB, 0x00C8, 0x1C), + 'Small Key (Forest Temple)': (True, False, 'SmallKey', None, 0xAC, 0x00AA, 0x02), + 'Small Key (Fire Temple)': (True, False, 'SmallKey', None, 0xAD, 0x00AA, 0x02), + 'Small Key (Water Temple)': (True, False, 'SmallKey', None, 0xAE, 0x00AA, 0x02), + 'Small Key (Spirit Temple)': (True, False, 'SmallKey', None, 0xAF, 0x00AA, 0x02), + 'Small Key (Shadow Temple)': (True, False, 'SmallKey', None, 0xB0, 0x00AA, 0x02), + 'Small Key (Bottom of the Well)': (True, False, 'SmallKey', None, 0xB1, 0x00AA, 0x02), + 'Small Key (Gerudo Training Grounds)': (True, False, 'SmallKey', None, 0xB2, 0x00AA, 0x02), + 'Small Key (Gerudo Fortress)': (True, False, 'FortressSmallKey', None, 0xB3, 0x00AA, 0x02), + 'Small Key (Ganons Castle)': (True, False, 'SmallKey', None, 0xB4, 0x00AA, 0x02), + 'Zeldas Letter': (True, False, None, None, None, None, None), + 'Zeldas Lullaby': (True, False, 'Song', [0x0A, 0x5], 0xCA, 0x00B6, 0x04), + 'Eponas Song': (True, False, 'Song', [0x09, 0x4], 0xCB, 0x00B6, 0x06), + 'Suns Song': (True, False, 'Song', [0x0B, 0x2], 0xCD, 0x00B6, 0x08), + 'Sarias Song': (True, False, 'Song', [0x08, 0x3], 0xCC, 0x00B6, 0x03), + 'Song of Time': (True, False, 'Song', [0x0C, 0x1], 0xCE, 0x00B6, 0x05), + 'Song of Storms': (True, False, 'Song', [0x0D, 0x0], 0xCF, 0x00B6, 0x07), + 'Minuet of Forest': (True, False, 'Song', [0x02, 0xB], 0xC4, 0x00B6, 0x03), + 'Prelude of Light': (True, False, 'Song', [0x07, 0x6], 0xC9, 0x00B6, 0x08), + 'Bolero of Fire': (True, False, 'Song', [0x03, 0xA], 0xC5, 0x00B6, 0x04), + 'Serenade of Water': (True, False, 'Song', [0x04, 0x9], 0xC6, 0x00B6, 0x05), + 'Nocturne of Shadow': (True, False, 'Song', [0x06, 0x7], 0xC8, 0x00B6, 0x07), + 'Requiem of Spirit': (True, False, 'Song', [0x05, 0x8], 0xC7, 0x00B6, 0x08), + 'Gold Skulltulla Token': (True, False, 'Token', None, 0x5B, 0x015C, 0x63), + 'Epona': (True, False, 'Event', None, None, None, None), + 'Carpenter Rescue': (True, False, 'Event', None, None, None, None), + 'Gerudo Membership Card': (True, False, None, 0x0740, 0x3A, 0x00D7, 0x24), + 'Kokiri Emerald': (True, False, 'Event', 0x6C, None, None, None), + 'Goron Ruby': (True, False, 'Event', 0x6D, None, None, None), + 'Zora Sapphire': (True, False, 'Event', 0x6E, None, None, None), + 'Forest Medallion': (True, False, 'Event', 0x66, None, None, None), + 'Fire Medallion': (True, False, 'Event', 0x67, None, None, None), + 'Water Medallion': (True, False, 'Event', 0x68, None, None, None), + 'Spirit Medallion': (True, False, 'Event', 0x69, None, None, None), + 'Shadow Medallion': (True, False, 'Event', 0x6A, None, None, None), + 'Light Medallion': (True, False, 'Event', 0x6B, None, None, None), + 'Forest Trial Clear': (True, False, 'Event', None, None, None, None), + 'Fire Trial Clear': (True, False, 'Event', None, None, None, None), + 'Water Trial Clear': (True, False, 'Event', None, None, None, None), + 'Shadow Trial Clear': (True, False, 'Event', None, None, None, None), + 'Spirit Trial Clear': (True, False, 'Event', None, None, None, None), + 'Light Trial Clear': (True, False, 'Event', None, None, None, None), + 'Triforce': (True, False, 'Event', None, None, None, None), + 'Buy Deku Nut (5)': (False, True, 'Shop', None, 0x00, 0x00BB, 0x12), + 'Buy Arrows (30)': (False, True, 'Shop', None, 0x01, 0x00D8, 0x26), + 'Buy Arrows (50)': (False, True, 'Shop', None, 0x02, 0x00D8, 0x27), + 'Buy Bombs (5)': (False, True, 'Shop', None, 0x03, 0x00CE, 0x20), + 'Buy Deku Nut (10)': (False, True, 'Shop', None, 0x04, 0x00BB, 0x12), + 'Buy Deku Stick (1)': (False, True, 'Shop', None, 0x05, 0x00C7, 0x1B), + 'Buy Bombs (10)': (False, True, 'Shop', None, 0x06, 0x00CE, 0x20), + 'Buy Fish': (False, True, 'Shop', None, 0x07, 0x00F4, 0x3F), + 'Buy Red Potion': (False, True, 'Shop', None, 0x08, 0x00EB, 0x15), + 'Buy Green Potion': (False, True, 'Shop', None, 0x09, 0x00EB, 0x16), + 'Buy Blue Potion': (False, True, 'Shop', None, 0x0A, 0x00EB, 0x17), + 'Buy Hylian Shield': (True, False, 'Shop', None, 0x0C, 0x00DC, 0x2C), + 'Buy Deku Shield': (True, False, 'Shop', None, 0x0D, 0x00CB, 0x1D), + 'Buy Goron Tunic': (True, False, 'Shop', None, 0x0E, 0x00F2, 0x3C), + 'Buy Zora Tunic': (True, False, 'Shop', None, 0x0F, 0x00F2, 0x3D), + 'Buy Heart': (False, True, 'Shop', None, 0x10, 0x00B7, 0x09), + 'Buy Bombchu (10)': (True, False, 'Shop', None, 0x15, 0x00D9, 0x28), + 'Buy Bombchu (20)': (True, False, 'Shop', None, 0x16, 0x00D9, 0x28), + 'Buy Bombchu (5)': (True, False, 'Shop', None, 0x18, 0x00D9, 0x28), + 'Buy Deku Seeds (30)': (False, True, 'Shop', None, 0x1D, 0x0119, 0x48), + 'Sold Out': (False, True, 'Shop', None, 0x26, 0x0148, 0x59), + 'Buy Blue Fire': (True, False, 'Shop', None, 0x27, 0x0173, 0x67), + 'Buy Bottle Bug': (False, True, 'Shop', None, 0x28, 0x0174, 0x68), + 'Buy Fairy\'s Spirit': (False, True, 'Shop', None, 0x2B, 0x0177, 0x6B), + 'Buy Arrow (10)': (False, True, 'Shop', None, 0x2C, 0x00D8, 0x25), + 'Buy Bombs (20)': (False, True, 'Shop', None, 0x2D, 0x00CE, 0x20), + 'Buy Bombs (30)': (False, True, 'Shop', None, 0x2E, 0x00CE, 0x20), } item_data = { - 'Hammer': [0x11, 0x80, 0x41, 0x38, 0x00, 0xF6], - 'Boomerang': [0x0E, 0x80, 0x34, 0x35, 0x00, 0xE8], - 'Lens of Truth': [0x0F, 0x80, 0x36, 0x39, 0x00, 0xEA], - 'Dins Fire': [0x05, 0x80, 0x64, 0xAD, 0x01, 0x5D], - 'Farores Wind': [0x0D, 0x80, 0x65, 0xAE, 0x01, 0x5D], - 'Nayrus Love': [0x13, 0x80, 0x66, 0xAF, 0x01, 0x5D], - 'Fire Arrows': [0x04, 0x80, 0x60, 0x70, 0x01, 0x58], - 'Ice Arrows': [0x0C, 0x80, 0x61, 0x71, 0x01, 0x58], - 'Light Arrows': [0x12, 0x80, 0x62, 0x72, 0x01, 0x58], - 'Bottle': [0x14, 0x80, 0x01, 0x42, 0x00, 0xC6], - 'Bottle with Letter': [0x1B, 0x80, 0x45, 0x99, 0x01, 0x0B], - 'Bottle with Milk': [0x1A, 0x80, 0x30, 0x98, 0x00, 0xDF], - 'Pocket Egg': [0x2D, 0x80, 0x29, 0x01, 0x00, 0xDA], - 'Pocket Cucco': [0x2E, 0x80, 0x44, 0x0B, 0x01, 0x09], - 'Cojiro': [0x2F, 0x80, 0x5E, 0x02, 0x01, 0x09], - 'Odd Mushroom': [0x30, 0x80, 0x54, 0x03, 0x01, 0x41], - 'Odd Potion': [0x31, 0x80, 0x53, 0x04, 0x01, 0x40], - 'Poachers Saw': [0x32, 0x80, 0x40, 0x05, 0x00, 0xF5], - 'Broken Sword': [0x33, 0x80, 0x56, 0x08, 0x01, 0x43], - 'Prescription': [0x34, 0x80, 0x57, 0x09, 0x01, 0x46], - 'Eyeball Frog': [0x35, 0x80, 0x5A, 0x0D, 0x01, 0x49], - 'Eyedrops': [0x36, 0x80, 0x52, 0x0E, 0x01, 0x3F], - 'Claim Check': [0x37, 0x80, 0x55, 0xA4, 0x01, 0x8D], - 'Kokiri Sword': [0x3B, 0x80, 0x74, 0xA4, 0x01, 0x8D], - 'Deku Shield': [0x3E, 0xA0, 0xE3, 0x4C, 0x00, 0xCB], - 'Hylian Shield': [0x3F, 0xA0, 0xD4, 0x4D, 0x00, 0xDC], - 'Mirror Shield': [0x40, 0x80, 0x3A, 0x4E, 0x00, 0xEE], - 'Goron Tunic': [0x42, 0xA0, 0x3C, 0x50, 0x00, 0xF2], - 'Zora Tunic': [0x43, 0xA0, 0x3D, 0x51, 0x00, 0xF2], - 'Iron Boots': [0x45, 0x80, 0x47, 0x53, 0x01, 0x18], - 'Hover Boots': [0x46, 0x80, 0x5F, 0x54, 0x01, 0x57], - 'Stone of Agony': [0x6F, 0x80, 0x21, 0x68, 0x00, 0xC8], - 'Piece of Heart': [0x7A, 0x80, 0x14, 0xC2, 0x00, 0xBD], - 'Recovery Heart': [0x83, 0x80, 0x09, 0x55, 0x00, 0xB7], - 'Arrows (5)': [0x92, 0x48, 0xDB, 0xE6, 0x00, 0xD8], - 'Arrows (10)': [0x93, 0x4A, 0xDA, 0xE6, 0x00, 0xD8], - 'Arrows (30)': [0x94, 0x4A, 0xD9, 0xE6, 0x00, 0xD8], - 'Bombs (5)': [0x8E, 0x59, 0xE0, 0x32, 0x00, 0xCE], - 'Bombs (10)': [0x8F, 0x59, 0xE0, 0x32, 0x00, 0xCE], - 'Bombs (20)': [0x90, 0x59, 0xE0, 0x32, 0x00, 0xCE], - 'Bombchus (5)': [0x96, 0x80, 0xD8, 0x33, 0x00, 0xD9], - 'Bombchus (10)': [0x09, 0x80, 0xD8, 0x33, 0x00, 0xD9], - 'Bombchus (20)': [0x97, 0x80, 0xD8, 0x33, 0x00, 0xD9], - 'Deku Nuts (5)': [0x8C, 0x0C, 0xEE, 0x34, 0x00, 0xBB], - 'Deku Nuts (10)': [0x8D, 0x0C, 0xEE, 0x34, 0x00, 0xBB], - 'Rupee (1)': [0x84, 0x00, 0x93, 0x6F, 0x01, 0x7F], - 'Rupees (5)': [0x85, 0x01, 0x92, 0xCC, 0x01, 0x7F], - 'Rupees (20)': [0x86, 0x02, 0x91, 0xF0, 0x01, 0x7F], - 'Rupees (50)': [0x87, 0x14, 0x8F, 0xF1, 0x01, 0x7F], - 'Rupees (200)': [0x88, 0x13, 0x8E, 0xF2, 0x01, 0x7F], - 'Skull Mask': [0x25, 0x80, 0x4F, 0x10, 0x01, 0x36 ], - 'Spooky Mask': [0x26, 0x80, 0x32, 0x11, 0x01, 0x35], - 'Keaton Mask': [0x24, 0x80, 0x31, 0x12, 0x01, 0x34], - 'Bunny Hood': [0x27, 0x80, 0x50, 0x13, 0x01, 0x37], - 'Mask of Truth': [0x2B, 0x80, 0x51, 0x17, 0x01, 0x38], - 'Goron Mask': [0x28, 0x80, 0x5B, 0x14, 0x01, 0x50], - 'Zora Mask': [0x29, 0x80, 0x5C, 0x15, 0x01, 0x51 ], - 'Gerudo Mask': [0x2A, 0x80, 0x5D, 0x16, 0x01, 0x52], - 'Ice Trap': [0x85, 0x01, 0x92, 0xCC, 0x01, 0x7F], # Ice Trap in special spots will become a blue rupee. - 'Zeldas Lullaby': 0xD4, - 'Eponas Song': 0xD2, - 'Suns Song': 0xD3, - 'Sarias Song': 0xD1, - 'Song of Time': 0xD5, - 'Song of Storms': 0xD6, - 'Minuet of Forest': 0x73, - 'Bolero of Fire': 0x74, - 'Serenade of Water': 0x75, - 'Nocturne of Shadow': 0x77, - 'Requiem of Spirit': 0x76, - 'Prelude of Light': 0x78, - 'Kokiri Emerald': [0x04, 0xA5, 0x80, [0x00, 0x04, 0x00, 0x00]], - 'Goron Ruby': [0x08, 0xA5, 0x81, [0x00, 0x08, 0x00, 0x00]], - 'Zora Sapphire': [0x10, 0xA5, 0x82, [0x00, 0x10, 0x00, 0x00]], - 'Forest Medallion': [0x01, 0xA7, 0x3E, [0x00, 0x00, 0x00, 0x01]], - 'Fire Medallion': [0x02, 0xA7, 0x3C, [0x00, 0x00, 0x00, 0x02]], - 'Water Medallion': [0x04, 0xA7, 0x3D, [0x00, 0x00, 0x00, 0x04]], - 'Spirit Medallion': [0x08, 0xA7, 0x3F, [0x00, 0x00, 0x00, 0x08]], - 'Shadow Medallion': [0x10, 0xA7, 0x41, [0x00, 0x00, 0x00, 0x10]], - 'Light Medallion': [0x20, 0xA7, 0x40, [0x00, 0x00, 0x00, 0x20]]} + 'Hammer': [0x11, 0x80, 0x41, 0x38, 0x00, 0xF6], + 'Boomerang': [0x0E, 0x80, 0x34, 0x35, 0x00, 0xE8], + 'Lens of Truth': [0x0F, 0x80, 0x36, 0x39, 0x00, 0xEA], + 'Dins Fire': [0x05, 0x80, 0x64, 0xAD, 0x01, 0x5D], + 'Farores Wind': [0x0D, 0x80, 0x65, 0xAE, 0x01, 0x5D], + 'Nayrus Love': [0x13, 0x80, 0x66, 0xAF, 0x01, 0x5D], + 'Fire Arrows': [0x04, 0x80, 0x60, 0x70, 0x01, 0x58], + 'Ice Arrows': [0x0C, 0x80, 0x61, 0x71, 0x01, 0x58], + 'Light Arrows': [0x12, 0x80, 0x62, 0x72, 0x01, 0x58], + 'Bottle': [0x14, 0x80, 0x01, 0x42, 0x00, 0xC6], + 'Bottle with Letter': [0x1B, 0x80, 0x45, 0x99, 0x01, 0x0B], + 'Bottle with Milk': [0x1A, 0x80, 0x30, 0x98, 0x00, 0xDF], + 'Pocket Egg': [0x2D, 0x80, 0x29, 0x01, 0x00, 0xDA], + 'Pocket Cucco': [0x2E, 0x80, 0x44, 0x0B, 0x01, 0x09], + 'Cojiro': [0x2F, 0x80, 0x5E, 0x02, 0x01, 0x09], + 'Odd Mushroom': [0x30, 0x80, 0x54, 0x03, 0x01, 0x41], + 'Odd Potion': [0x31, 0x80, 0x53, 0x04, 0x01, 0x40], + 'Poachers Saw': [0x32, 0x80, 0x40, 0x05, 0x00, 0xF5], + 'Broken Sword': [0x33, 0x80, 0x56, 0x08, 0x01, 0x43], + 'Prescription': [0x34, 0x80, 0x57, 0x09, 0x01, 0x46], + 'Eyeball Frog': [0x35, 0x80, 0x5A, 0x0D, 0x01, 0x49], + 'Eyedrops': [0x36, 0x80, 0x52, 0x0E, 0x01, 0x3F], + 'Claim Check': [0x37, 0x80, 0x55, 0xA4, 0x01, 0x8D], + 'Kokiri Sword': [0x3B, 0x80, 0x74, 0xA4, 0x01, 0x8D], + 'Deku Shield': [0x3E, 0xA0, 0xE3, 0x4C, 0x00, 0xCB], + 'Hylian Shield': [0x3F, 0xA0, 0xD4, 0x4D, 0x00, 0xDC], + 'Mirror Shield': [0x40, 0x80, 0x3A, 0x4E, 0x00, 0xEE], + 'Goron Tunic': [0x42, 0xA0, 0x3C, 0x50, 0x00, 0xF2], + 'Zora Tunic': [0x43, 0xA0, 0x3D, 0x51, 0x00, 0xF2], + 'Iron Boots': [0x45, 0x80, 0x47, 0x53, 0x01, 0x18], + 'Hover Boots': [0x46, 0x80, 0x5F, 0x54, 0x01, 0x57], + 'Stone of Agony': [0x6F, 0x80, 0x21, 0x68, 0x00, 0xC8], + 'Piece of Heart': [0x7A, 0x80, 0x14, 0xC2, 0x00, 0xBD], + 'Recovery Heart': [0x83, 0x80, 0x09, 0x55, 0x00, 0xB7], + 'Arrows (5)': [0x92, 0x48, 0xDB, 0xE6, 0x00, 0xD8], + 'Arrows (10)': [0x93, 0x4A, 0xDA, 0xE6, 0x00, 0xD8], + 'Arrows (30)': [0x94, 0x4A, 0xD9, 0xE6, 0x00, 0xD8], + 'Bombs (5)': [0x8E, 0x59, 0xE0, 0x32, 0x00, 0xCE], + 'Bombs (10)': [0x8F, 0x59, 0xE0, 0x32, 0x00, 0xCE], + 'Bombs (20)': [0x90, 0x59, 0xE0, 0x32, 0x00, 0xCE], + 'Bombchus (5)': [0x96, 0x80, 0xD8, 0x33, 0x00, 0xD9], + 'Bombchus (10)': [0x09, 0x80, 0xD8, 0x33, 0x00, 0xD9], + 'Bombchus (20)': [0x97, 0x80, 0xD8, 0x33, 0x00, 0xD9], + 'Deku Nuts (5)': [0x8C, 0x0C, 0xEE, 0x34, 0x00, 0xBB], + 'Deku Nuts (10)': [0x8D, 0x0C, 0xEE, 0x34, 0x00, 0xBB], + 'Rupee (1)': [0x84, 0x00, 0x93, 0x6F, 0x01, 0x7F], + 'Rupees (5)': [0x85, 0x01, 0x92, 0xCC, 0x01, 0x7F], + 'Rupees (20)': [0x86, 0x02, 0x91, 0xF0, 0x01, 0x7F], + 'Rupees (50)': [0x87, 0x14, 0x8F, 0xF1, 0x01, 0x7F], + 'Rupees (200)': [0x88, 0x13, 0x8E, 0xF2, 0x01, 0x7F], + 'Skull Mask': [0x25, 0x80, 0x4F, 0x10, 0x01, 0x36 ], + 'Spooky Mask': [0x26, 0x80, 0x32, 0x11, 0x01, 0x35], + 'Keaton Mask': [0x24, 0x80, 0x31, 0x12, 0x01, 0x34], + 'Bunny Hood': [0x27, 0x80, 0x50, 0x13, 0x01, 0x37], + 'Mask of Truth': [0x2B, 0x80, 0x51, 0x17, 0x01, 0x38], + 'Goron Mask': [0x28, 0x80, 0x5B, 0x14, 0x01, 0x50], + 'Zora Mask': [0x29, 0x80, 0x5C, 0x15, 0x01, 0x51 ], + 'Gerudo Mask': [0x2A, 0x80, 0x5D, 0x16, 0x01, 0x52], + 'Ice Trap': [0x85, 0x01, 0x92, 0xCC, 0x01, 0x7F], # Ice Trap in special spots will become a blue rupee. + 'Zeldas Lullaby': 0xD4, + 'Eponas Song': 0xD2, + 'Suns Song': 0xD3, + 'Sarias Song': 0xD1, + 'Song of Time': 0xD5, + 'Song of Storms': 0xD6, + 'Minuet of Forest': 0x73, + 'Bolero of Fire': 0x74, + 'Serenade of Water': 0x75, + 'Nocturne of Shadow': 0x77, + 'Requiem of Spirit': 0x76, + 'Prelude of Light': 0x78, + 'Kokiri Emerald': [0x04, 0xA5, 0x80, [0x00, 0x04, 0x00, 0x00]], + 'Goron Ruby': [0x08, 0xA5, 0x81, [0x00, 0x08, 0x00, 0x00]], + 'Zora Sapphire': [0x10, 0xA5, 0x82, [0x00, 0x10, 0x00, 0x00]], + 'Forest Medallion': [0x01, 0xA7, 0x3E, [0x00, 0x00, 0x00, 0x01]], + 'Fire Medallion': [0x02, 0xA7, 0x3C, [0x00, 0x00, 0x00, 0x02]], + 'Water Medallion': [0x04, 0xA7, 0x3D, [0x00, 0x00, 0x00, 0x04]], + 'Spirit Medallion': [0x08, 0xA7, 0x3F, [0x00, 0x00, 0x00, 0x08]], + 'Shadow Medallion': [0x10, 0xA7, 0x41, [0x00, 0x00, 0x00, 0x10]], + 'Light Medallion': [0x20, 0xA7, 0x40, [0x00, 0x00, 0x00, 0x20]]} diff --git a/Rom.py b/Rom.py index eab625452..10cb471cf 100644 --- a/Rom.py +++ b/Rom.py @@ -1298,53 +1298,46 @@ def write_save_table(rom): for item_id, gfx_id in chestAnimations.items(): rom.write_byte(0xBEEE8E + (item_id * 6) + 2, gfx_id) + free_shop_ids = list(unused_shop_ids) + # kokiri shop - shop_objs = place_shop_items(rom, world.get_region('Kokiri Shop').locations) | {0x00FC, 0x00B2, 0x0101, 0x0102, 0x00FD, 0x00C5} + shop_objs = place_shop_items(rom, shop_items, free_shop_ids, world.get_region('Kokiri Shop').locations) | {0x00FC, 0x00B2, 0x0101, 0x0102, 0x00FD, 0x00C5} rom.write_byte(0x2587029, len(shop_objs)) rom.write_int32(0x258702C, 0x0300F600) rom.write_int16s(0x2596600, list(shop_objs)) - - #rom.write_int16(None, 0x00D1) - #shop_items[0x001D].object = 0x00D1 - #shop_items[0x001D].model = 0x22 - #shop_items[0x001D].price = 1 - #shop_items[0x001D].pieces = 1 - #shop_items[0x001D].get_item_id = 0x45 - #shop_items[0x001D].func2 = 0x8086365C - # bazaar - shop_objs = place_shop_items(rom, world.get_region('Castle Town Bazaar').locations) | {0x005B, 0x00B2, 0x00C5, 0x0107, 0x00C9, 0x016B} + shop_objs = place_shop_items(rom, shop_items, free_shop_ids, world.get_region('Castle Town Bazaar').locations) | {0x005B, 0x00B2, 0x00C5, 0x0107, 0x00C9, 0x016B} rom.write_byte(0x28E4029, len(shop_objs)) rom.write_int32(0x28E402C, 0x0300FA18) rom.write_int16s(0x28EBA40, list(shop_objs)) # goron shop - shop_objs = place_shop_items(rom, world.get_region('Goron Shop').locations) | {0x00C9, 0x00B2, 0x0103, 0x00AF} + shop_objs = place_shop_items(rom, shop_items, free_shop_ids, world.get_region('Goron Shop').locations) | {0x00C9, 0x00B2, 0x0103, 0x00AF} rom.write_byte(0x2D33029, len(shop_objs)) rom.write_int32(0x2D3302C, 0x03004340) rom.write_int16s(0x2D37340, list(shop_objs)) # zora shop - shop_objs = place_shop_items(rom, world.get_region('Zora Shop').locations) | {0x005B, 0x00B2, 0x0104, 0x00FE} + shop_objs = place_shop_items(rom, shop_items, free_shop_ids, world.get_region('Zora Shop').locations) | {0x005B, 0x00B2, 0x0104, 0x00FE} rom.write_byte(0x2D5B029, len(shop_objs)) rom.write_int32(0x2D5B02C, 0x03004B40) rom.write_int16s(0x2D5FB40, list(shop_objs)) # kakariko potion shop - shop_objs = place_shop_items(rom, world.get_region('Kakariko Potion Shop Front').locations) | {0x0159, 0x00B2, 0x0175, 0x0122} + shop_objs = place_shop_items(rom, shop_items, free_shop_ids, world.get_region('Kakariko Potion Shop Front').locations) | {0x0159, 0x00B2, 0x0175, 0x0122} rom.write_byte(0x2D83029, len(shop_objs)) rom.write_int32(0x2D8302C, 0x0300A500) rom.write_int16s(0x2D8D500, list(shop_objs)) # market potion shop - shop_objs = place_shop_items(rom, world.get_region('Castle Town Potion Shop').locations) | {0x0159, 0x00B2, 0x0175, 0x00C5, 0x010C, 0x016B} + shop_objs = place_shop_items(rom, shop_items, free_shop_ids, world.get_region('Castle Town Potion Shop').locations) | {0x0159, 0x00B2, 0x0175, 0x00C5, 0x010C, 0x016B} rom.write_byte(0x2DB0029, len(shop_objs)) rom.write_int32(0x2DB002C, 0x03004E40) rom.write_int16s(0x2DB4E40, list(shop_objs)) # bombchu shop - shop_objs = place_shop_items(rom, world.get_region('Castle Town Bombchu Shop').locations) | {0x0165, 0x00B2} + shop_objs = place_shop_items(rom, shop_items, free_shop_ids, world.get_region('Castle Town Bombchu Shop').locations) | {0x0165, 0x00B2} rom.write_byte(0x2DD8029, len(shop_objs)) rom.write_int32(0x2DD802C, 0x03006A40) rom.write_int16s(0x2DDEA40, list(shop_objs)) @@ -1735,12 +1728,21 @@ def update_chest_sizes(rom, override_table): default = (default & 0x0FFF) | newChestType rom.write_int16(address, default) -def place_shop_items(rom, locations): + +unused_shop_ids = [0x0B, 0x11, 0x12, 0x13, 0x14, 0x17, 0x19, 0x1A, 0x1B, 0x1C, 0x29, 0x2A, 0x2F, 0x30, 0x31] +def place_shop_items(rom, shop_items, free_shop_ids, locations): shop_objs = set() for location in locations: + shop_objs.add(location.item.object) if location.item.type == 'Shop': - shop_objs.add(location.item.code) rom.write_int16(location.address, location.item.index) else: - print('error') + shop_id = free_shop_ids.pop() + rom.write_int16(location.address, shop_id) + shop_items[shop_id].object = location.item.object + shop_items[shop_id].model = location.item.model + shop_items[shop_id].price = location.item.price + shop_items[shop_id].pieces = 1 + shop_items[shop_id].get_item_id = location.item.index + shop_items[shop_id].func2 = 0x8086365C return shop_objs diff --git a/Rules.py b/Rules.py index d3b778848..82bba3301 100644 --- a/Rules.py +++ b/Rules.py @@ -281,7 +281,7 @@ def global_rules(world): if location.type != 'Chest': forbid_item(location, 'Ice Trap') add_item_rule(location, lambda i: not (i.type == 'Song' and not i.world.shuffle_song_items and i.world.id != location.world.id)) - if location.type == 'Shop': + if location.type == 'Shop' and not location.name.endswith('7') and not location.name.endswith('8'): add_item_rule(location, lambda i: (i.type == 'Shop')) else: add_item_rule(location, lambda i: (i.type != 'Shop')) diff --git a/version.py b/version.py index 108b01727..144dbfac6 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.21 f.LUM' +__version__ = '2.15.22 f.LUM' From 13bccb8762e314fccd343ca8c1ca5051124ebdae Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Mon, 13 Aug 2018 04:03:42 -0300 Subject: [PATCH 273/755] Typo Fix --- Regions.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Regions.py b/Regions.py index 0e5f58f7d..ba7cdb971 100644 --- a/Regions.py +++ b/Regions.py @@ -320,7 +320,7 @@ def create_regions(world): create_ow_region('Darunias Chamber', ['Darunias Joy'], ['Darunias Chamber Exit']), create_ow_region( 'Death Mountain Crater Upper', - ['DM Crater Wall Freestanding PoH', 'GS Death Mounter Crater Crate'], + ['DM Crater Wall Freestanding PoH', 'GS Death Mountain Crater Crate'], ['Crater Exit', 'Crater Hover Boots', 'Crater Scarecrow', 'Top of Crater Grotto']), create_ow_region( 'Death Mountain Crater Lower', @@ -328,7 +328,7 @@ def create_regions(world): ['Crater to City', 'Crater Fairy', 'Crater Bridge', 'Crater Ascent']), create_ow_region( 'Death Mountain Crater Central', - ['DM Crater Volcano Freestanding PoH', 'Sheik in Crater', 'GS Death Mounter Bean Patch'], + ['DM Crater Volcano Freestanding PoH', 'Sheik in Crater', 'GS Mountain Crater Bean Patch'], ['Crater Bridge Reverse', 'Fire Temple Entrance']), create_interior_region( 'Crater Fairy', @@ -941,14 +941,14 @@ def _create_region(name, type, locations=None, exits=None): 'GS Hyrule Castle Tree': (None, None, 0x04, 'GS Token', 0x0E, 'Hyrule Castle'), 'GS Castle Market Guard House': (None, None, 0x08, 'GS Token', 0x0E, 'the market'), - 'GS Death Mounter Bean Patch': (None, None, 0x01, 'GS Token', 0x0F, 'Death Mountain Crater'), + 'GS Mountain Crater Bean Patch': (None, None, 0x01, 'GS Token', 0x0F, 'Death Mountain Crater'), 'GS Mountain Trail Bean Patch': (None, None, 0x02, 'GS Token', 0x0F, 'Death Mountain Trail'), 'GS Mountain Trail Bomb Alcove': (None, None, 0x04, 'GS Token', 0x0F, 'Death Mountain Trail'), 'GS Mountain Trail Above Dodongo\'s Cavern': (None, None, 0x08, 'GS Token', 0x0F, 'Death Mountain Trail'), 'GS Mountain Trail Path to Crater': (None, None, 0x10, 'GS Token', 0x0F, 'Death Mountain Trail'), 'GS Goron City Center Platform': (None, None, 0x20, 'GS Token', 0x0F, 'Goron City'), 'GS Goron City Boulder Maze': (None, None, 0x40, 'GS Token', 0x0F, 'Goron City'), - 'GS Death Mounter Crater Crate': (None, None, 0x80, 'GS Token', 0x0F, 'Death Mountain Crater'), + 'GS Death Mountain Crater Crate': (None, None, 0x80, 'GS Token', 0x0F, 'Death Mountain Crater'), 'GS Kakariko House Under Construction': (None, None, 0x08, 'GS Token', 0x10, 'Kakariko Village'), 'GS Kakariko Skulltula House': (None, None, 0x10, 'GS Token', 0x10, 'Kakariko Village'), From 4105cd1f24169f6817b7806317386f604a7b2893 Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Mon, 13 Aug 2018 04:04:07 -0300 Subject: [PATCH 274/755] Typo Fix --- ItemList.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ItemList.py b/ItemList.py index 6ca4c8ba6..5554d52fc 100644 --- a/ItemList.py +++ b/ItemList.py @@ -150,8 +150,8 @@ 'GS Mountain Trail Above Dodongo\'s Cavern', 'GS Goron City Boulder Maze', 'GS Goron City Center Platform', - 'GS Death Mounter Crater Crate', - 'GS Death Mounter Bean Patch', + 'GS Death Mountain Crater Crate', + 'GS Mountain Crater Bean Patch', 'GS Dodongo\'s Cavern East Side Room', 'GS Dodongo\'s Cavern Vines Above Stairs', 'GS Dodongo\'s Cavern Back Room', From ea208307229ecf4887f18a3f13741031e2a8c46c Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Mon, 13 Aug 2018 04:04:48 -0300 Subject: [PATCH 275/755] Typo Fix --- Rules.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Rules.py b/Rules.py index f2571b857..536d573d9 100644 --- a/Rules.py +++ b/Rules.py @@ -251,7 +251,7 @@ def global_rules(world): set_rule(world.get_location('GS Mountain Trail Above Dodongo\'s Cavern'), lambda state: state.has('Hammer') and state.is_adult() and state.nighttime()) set_rule(world.get_location('GS Goron City Boulder Maze'), lambda state: state.has_explosives()) set_rule(world.get_location('GS Goron City Center Platform'), lambda state: state.is_adult()) - set_rule(world.get_location('GS Death Mounter Bean Patch'), lambda state: state.can_play('Bolero of Fire') and state.has_bottle()) + set_rule(world.get_location('GS Mountain Crater Bean Patch'), lambda state: state.can_play('Bolero of Fire') and state.has_bottle()) set_rule(world.get_location('GS Dodongo\'s Cavern Alcove Above Stairs'), lambda state: (state.has('Progressive Hookshot') and state.is_adult()) or (state.has('Boomerang') and (state.has_explosives() or state.has('Progressive Strength Upgrade')))) set_rule(world.get_location('GS Dodongo\'s Cavern Scarecrow'), lambda state: state.is_adult() and ( (state.has('Progressive Hookshot') and state.has_ocarina()) or state.has('Progressive Hookshot', 2) )) set_rule(world.get_location('GS Zora River Ladder'), lambda state: state.nighttime()) From 76f859a454c7c62ece6c68105a4ecea03a80e08b Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Mon, 13 Aug 2018 11:44:15 -0300 Subject: [PATCH 276/755] Logic Update for Goron City to Lost Woods For full compatibility with the new closed death mountain option. --- Rules.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Rules.py b/Rules.py index 536d573d9..82c1d0c8b 100644 --- a/Rules.py +++ b/Rules.py @@ -108,7 +108,7 @@ def global_rules(world): set_rule(world.get_location('Goron City Pot Freestanding PoH'), lambda state: (state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) and (state.can_play('Zeldas Lullaby') or (state.has('Dins Fire') and state.has('Magic Meter')))) set_rule(world.get_entrance('Darunias Chamber'), lambda state: state.can_play('Zeldas Lullaby')) set_rule(world.get_location('Darunias Joy'), lambda state: state.can_play('Sarias Song')) - set_rule(world.get_entrance('Goron City from Woods'), lambda state: state.can_blast_or_smash() and (world.open_forest or (state.has('Slingshot') and state.has('Kokiri Sword')))) + set_rule(world.get_entrance('Goron City from Woods'), lambda state: (state.can_blast_or_smash() or (state.has('Dins Fire') and state.has('Magic Meter')) or ((state.has('Bow') or state.has('Progressive Strength Upgrade')) and state.is_adult())) and state.can_reach('Lost Woods Bridge')) set_rule(world.get_location('King Dodongo'), lambda state: state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) set_rule(world.get_location('King Dodongo Heart'), lambda state: state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) set_rule(world.get_location('Song from Saria'), lambda state: state.has('Zeldas Letter')) From 489ab445da2f1473d646c13b733308862a207c65 Mon Sep 17 00:00:00 2001 From: kevinPal Date: Mon, 13 Aug 2018 11:55:44 -0700 Subject: [PATCH 277/755] Cleaning up rules for leaving forest --- BaseClasses.py | 3 +++ Rules.py | 28 ++++++++++++++-------------- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 8f6751ff8..51d486380 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -336,6 +336,9 @@ def has_GoronTunic(self): def has_ZoraTunic(self): return (self.has('Zora Tunic') or (self.has('Progressive Wallet', 2) and self.has_bottle() and self.can_play('Zeldas Lullaby'))) + def can_leave_forest(self): + return (self.world.open_forest or (self.has('Slingshot') and self.has('Kokiri Sword'))) + def can_finish_adult_trades(self): zora_thawed = self.has_bottle() and self.has('Zeldas Lullaby') and (self.can_reach('Ice Cavern') or self.can_reach('Ganons Castle Water Trial') or self.has('Progressive Wallet', 2)) carpenter_access = self.has('Epona') or self.has('Progressive Hookshot', 2) diff --git a/Rules.py b/Rules.py index 82c1d0c8b..871d5f694 100644 --- a/Rules.py +++ b/Rules.py @@ -81,7 +81,7 @@ def global_rules(world): # overworld requirements set_rule(world.get_entrance('Deku Tree'), lambda state: state.has('Kokiri Sword') or world.open_forest) - set_rule(world.get_entrance('Lost Woods Bridge'), lambda state: world.open_forest or (state.has('Slingshot') and state.has('Kokiri Sword'))) + set_rule(world.get_entrance('Lost Woods Bridge'), lambda state: state.can_leave_forest()) set_rule(world.get_location('Skull Kid'), lambda state: state.can_play('Sarias Song')) set_rule(world.get_location('Ocarina Memory Game'), lambda state: (not world.logic_no_memory_game) and state.has_ocarina()) set_rule(world.get_location('Target in Woods'), lambda state: state.has('Slingshot')) @@ -108,7 +108,7 @@ def global_rules(world): set_rule(world.get_location('Goron City Pot Freestanding PoH'), lambda state: (state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) and (state.can_play('Zeldas Lullaby') or (state.has('Dins Fire') and state.has('Magic Meter')))) set_rule(world.get_entrance('Darunias Chamber'), lambda state: state.can_play('Zeldas Lullaby')) set_rule(world.get_location('Darunias Joy'), lambda state: state.can_play('Sarias Song')) - set_rule(world.get_entrance('Goron City from Woods'), lambda state: (state.can_blast_or_smash() or (state.has('Dins Fire') and state.has('Magic Meter')) or ((state.has('Bow') or state.has('Progressive Strength Upgrade')) and state.is_adult())) and state.can_reach('Lost Woods Bridge')) + set_rule(world.get_entrance('Goron City from Woods'), lambda state: (state.can_blast_or_smash() or (state.has('Dins Fire') and state.has('Magic Meter')) or ((state.has('Bow') or state.has('Progressive Strength Upgrade')) and state.is_adult())) and state.can_leave_forest()) set_rule(world.get_location('King Dodongo'), lambda state: state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) set_rule(world.get_location('King Dodongo Heart'), lambda state: state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) set_rule(world.get_location('Song from Saria'), lambda state: state.has('Zeldas Letter')) @@ -127,7 +127,7 @@ def global_rules(world): set_rule(world.get_location('Adult Shooting Gallery'), lambda state: state.has('Bow') and state.is_adult()) set_rule(world.get_location('10 Big Poes'), lambda state: (not world.logic_no_big_poes) and (state.has('Bow') and state.has('Epona') and state.has_bottle() and state.is_adult() and state.guarantee_hint())) set_rule(world.get_location('Treasure Chest Game'), lambda state: state.has('Lens of Truth') and state.has('Magic Meter')) - set_rule(world.get_entrance('Lost Woods Dive Warp'), lambda state: state.can_dive() and (world.open_forest or (state.has('Slingshot') and state.has('Kokiri Sword')))) + set_rule(world.get_entrance('Lost Woods Dive Warp'), lambda state: state.can_dive() and (state.can_leave_forest())) set_rule(world.get_entrance('Zora River Dive Warp'), lambda state: state.can_dive()) set_rule(world.get_entrance('Lake Hylia Dive Warp'), lambda state: state.can_dive()) set_rule(world.get_entrance('Zoras Domain Dive Warp'), lambda state: state.can_dive()) @@ -152,8 +152,8 @@ def global_rules(world): set_rule(world.get_location('Talons Chickens'), lambda state: state.has('Zeldas Letter')) set_rule(world.get_location('Song from Malon'), lambda state: state.has('Zeldas Letter') and state.has_ocarina()) set_rule(world.get_location('Epona'), lambda state: state.can_play('Eponas Song') and state.is_adult()) - set_rule(world.get_entrance('Adult Forest Warp Pad'), lambda state: state.can_play('Minuet of Forest') and state.is_adult() and state.can_reach('Lost Woods Bridge')) - set_rule(world.get_entrance('Child Forest Warp Pad'), lambda state: state.can_play('Minuet of Forest') and state.can_reach('Lost Woods Bridge')) + set_rule(world.get_entrance('Adult Forest Warp Pad'), lambda state: state.can_play('Minuet of Forest') and state.is_adult() and state.can_leave_forest()) + set_rule(world.get_entrance('Child Forest Warp Pad'), lambda state: state.can_play('Minuet of Forest') and state.can_leave_forest()) set_rule(world.get_entrance('Adult Meadow Access'), lambda state: state.can_play('Sarias Song') and state.is_adult()) set_rule(world.get_entrance('Forest Temple Entrance'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) set_rule(world.get_entrance('Dampes Grave'), lambda state: state.is_adult()) @@ -161,7 +161,7 @@ def global_rules(world): set_rule(world.get_location('Graveyard Freestanding PoH'), lambda state: state.is_adult() and (state.has('Magic Bean') or state.has('Progressive Hookshot', 2))) set_rule(world.get_location('Song at Windmill'), lambda state: state.is_adult() and state.has_ocarina()) set_rule(world.get_location('Windmill Freestanding PoH'), lambda state: (state.is_adult() and ( world.logic_windmill_hp or state.can_play('Song of Time') )) or state.has('Boomerang')) - set_rule(world.get_entrance('Temple Warp Pad'), lambda state: state.can_play('Prelude of Light') and state.can_reach('Lost Woods Bridge')) + set_rule(world.get_entrance('Temple Warp Pad'), lambda state: state.can_play('Prelude of Light') and state.can_leave_forest()) set_rule(world.get_location('Sheik at Temple'), lambda state: state.has('Forest Medallion') and state.is_adult()) set_rule(world.get_location('Diving in the Lab'), lambda state: state.has('Progressive Scale', 2)) set_rule(world.get_location('Child Fishing'), lambda state: (not world.logic_no_child_fishing) and state.has('Kokiri Sword')) @@ -173,19 +173,19 @@ def global_rules(world): set_rule(world.get_entrance('Crater Scarecrow'), lambda state: state.is_adult() and state.has_ocarina() and state.has('Progressive Hookshot', 2)) set_rule(world.get_entrance('Crater Bridge'), lambda state: state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot'))) set_rule(world.get_entrance('Crater Bridge Reverse'), lambda state: state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot') or state.has('Magic Bean'))) - set_rule(world.get_entrance('Crater Warp Pad'), lambda state: state.can_play('Bolero of Fire') and state.can_reach('Lost Woods Bridge')) + set_rule(world.get_entrance('Crater Warp Pad'), lambda state: state.can_play('Bolero of Fire') and state.can_leave_forest()) set_rule(world.get_entrance('Crater Fairy'), lambda state: state.is_adult() and state.has('Hammer')) set_rule(world.get_location('DM Crater Volcano Freestanding PoH'), lambda state: state.is_adult() and ( (state.has('Magic Bean') and state.can_play('Bolero of Fire')) or (world.logic_crater_bean_hp_with_hovers and state.has('Hover Boots')) ) ) set_rule(world.get_entrance('Fire Temple Entrance'), lambda state: state.is_adult() and (world.logic_fewer_tunic_requirements or state.has_GoronTunic())) set_rule(world.get_location('Sheik in Crater'), lambda state: state.is_adult()) set_rule(world.get_location('Link the Goron'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade') or state.has_explosives() or state.has('Bow'))) set_rule(world.get_entrance('Crater Access'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade') or state.has_explosives() or state.has('Bow'))) - set_rule(world.get_entrance('Lake Warp Pad'), lambda state: state.can_play('Serenade of Water') and state.can_reach('Lost Woods Bridge')) + set_rule(world.get_entrance('Lake Warp Pad'), lambda state: state.can_play('Serenade of Water') and state.can_leave_forest()) set_rule(world.get_location('King Zora Thawed'), lambda state: state.has_bottle() and (state.can_reach('Ice Cavern') or state.can_reach('Ganons Castle Water Trial') or state.has('Progressive Wallet', 2))) set_rule(world.get_location('Zoras Fountain Bottom Freestanding PoH'), lambda state: state.has('Iron Boots') and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic())) set_rule(world.get_entrance('Water Temple Entrance'), lambda state: state.is_adult() and state.has('Iron Boots') and state.has('Progressive Hookshot') and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic())) set_rule(world.get_location('Sheik in Kakariko'), lambda state: state.is_adult() and state.has('Forest Medallion') and state.has('Fire Medallion') and state.has('Water Medallion')) - set_rule(world.get_entrance('Graveyard Warp Pad'), lambda state: state.can_play('Nocturne of Shadow') and state.can_reach('Lost Woods Bridge')) + set_rule(world.get_entrance('Graveyard Warp Pad'), lambda state: state.can_play('Nocturne of Shadow') and state.can_leave_forest()) set_rule(world.get_entrance('Shadow Temple Entrance'), lambda state: state.has('Dins Fire') and state.has('Magic Meter') and state.can_see_with_lens() and state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot'))) set_rule(world.get_entrance('Bridge Crossing'), lambda state: (state.has('Epona') or state.has('Progressive Hookshot', 2) or world.gerudo_fortress == 'open') and state.is_adult()) set_rule(world.get_location('Gerudo Valley Hammer Rocks Chest'), lambda state: state.has('Hammer') and state.is_adult()) @@ -195,7 +195,7 @@ def global_rules(world): set_rule(world.get_entrance('Gerudo Training Grounds Entrance'), lambda state: state.has('Carpenter Rescue') and state.has('Gerudo Membership Card') and state.is_adult()) set_rule(world.get_entrance('Haunted Wasteland Entrance'), lambda state: state.has('Carpenter Rescue') and state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot', 2))) set_rule(world.get_entrance('Haunted Wasteland Crossing'), lambda state: (world.logic_lens == 'chest') or (state.has('Lens of Truth') and state.has('Magic Meter'))) - set_rule(world.get_entrance('Colossus Warp Pad'), lambda state: state.can_play('Requiem of Spirit') and state.can_reach('Lost Woods Bridge')) + set_rule(world.get_entrance('Colossus Warp Pad'), lambda state: state.can_play('Requiem of Spirit') and state.can_leave_forest()) set_rule(world.get_entrance('Colossus Fairy'), lambda state: state.has_explosives()) set_rule(world.get_location('Colossus Freestanding PoH'), lambda state: state.can_play('Requiem of Spirit') and state.has('Magic Bean') and state.is_adult()) set_rule(world.get_location('Desert Colossus Fairy Reward'), lambda state: state.can_play('Zeldas Lullaby')) @@ -206,9 +206,9 @@ def global_rules(world): set_rule(world.get_location('Zelda'), lambda state: state.has('Shadow Medallion') and state.has('Spirit Medallion') and state.is_adult()) set_rule(world.get_location('Ganon'), lambda state: (state.has('Boss Key (Ganons Castle)') or world.unlocked_ganondorf) and (state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows')) ) set_rule(world.get_entrance('Kokiri Forest Storms Grotto'), lambda state: state.can_play('Song of Storms')) - set_rule(world.get_entrance('Lost Woods Generic Grotto'), lambda state: state.has('Bomb Bag') or (state.can_blast_or_smash() and (world.open_forest or (state.has('Slingshot') and state.has('Kokiri Sword'))))) - set_rule(world.get_entrance('Lost Woods Sales Grotto'), lambda state: (state.has('Bomb Bag') or (state.has_bombchus() and (world.open_forest or (state.has('Slingshot') and state.has('Kokiri Sword'))))) or (state.has('Hammer') and state.is_adult() and (state.can_play('Minuet of Forest') or state.can_play('Sarias Song')))) - set_rule(world.get_entrance('Front of Meadow Grotto'), lambda state: (state.has('Bomb Bag') or (state.has_bombchus() and (world.open_forest or (state.has('Slingshot') and state.has('Kokiri Sword'))))) or (state.has('Hammer') and state.is_adult() and (state.can_play('Minuet of Forest') or state.can_play('Sarias Song')))) + set_rule(world.get_entrance('Lost Woods Generic Grotto'), lambda state: state.has('Bomb Bag') or (state.can_blast_or_smash() and (state.can_leave_forest()))) + set_rule(world.get_entrance('Lost Woods Sales Grotto'), lambda state: (state.has('Bomb Bag') or (state.has_bombchus() and (state.can_leave_forest()))) or (state.has('Hammer') and state.is_adult() and (state.can_play('Minuet of Forest') or state.can_play('Sarias Song')))) + set_rule(world.get_entrance('Front of Meadow Grotto'), lambda state: (state.has('Bomb Bag') or (state.has_bombchus() and (state.can_leave_forest()))) or (state.has('Hammer') and state.is_adult() and (state.can_play('Minuet of Forest') or state.can_play('Sarias Song')))) set_rule(world.get_entrance('Remote Southern Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Field Near Lake Inside Fence Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Field Valley Grotto'), lambda state: state.can_blast_or_smash()) @@ -293,7 +293,7 @@ def dung_rules_dt0(world): set_rule(world.get_entrance('Deku Tree Basement Path'), lambda state: state.has('Slingshot')) # GS - set_rule(world.get_location('GS Deku Tree Basement Back Room'), lambda state: state.has('Boomerang') and (state.has('Bomb Bag') or (state.has_bombchus() and (world.open_forest or (state.has('Slingshot') and state.has('Kokiri Sword')))))) + set_rule(world.get_location('GS Deku Tree Basement Back Room'), lambda state: state.has('Boomerang') and (state.has('Bomb Bag') or (state.has_bombchus() and (state.can_leave_forest())))) def dung_rules_dc0(world): # Dodongo's Cavern Vanilla From aeee92ae8d75eb657e6b12d85074ea6b92c28fdc Mon Sep 17 00:00:00 2001 From: mzxrules Date: Mon, 13 Aug 2018 16:42:24 -0400 Subject: [PATCH 278/755] Added Master Quest USA json data --- data/mqu.json | 8828 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 8828 insertions(+) create mode 100644 data/mqu.json diff --git a/data/mqu.json b/data/mqu.json new file mode 100644 index 000000000..016a994e7 --- /dev/null +++ b/data/mqu.json @@ -0,0 +1,8828 @@ +[ + { + "File": { + "Name": "Scene 0", + "Start": "01F06000", + "End": "01F13A20", + "RemapStart": null + }, + "TActors": [ + "01FF 00FF 002E FE39 0190 01C7 6000 003F", + "06FF 05FF 002E FA01 FD08 042E 4000 01C9", + "04FF 03FF 002E FFB5 FC90 0244 8000 01D5", + "08FF 07FF 002E F68C FD08 FE3B 2000 003F", + "0BFF 09FF 002E FC80 F8A8 FC3C 105B 007F", + "02FF 01FF 002E FC58 0190 03A8 6000 008C", + "00FF 0AFF 002E FDD0 0320 0000 C000 007F", + "07FF 06FF 002E F8C1 FD08 0302 0000 007F", + "05FF 04FF 002E FEB1 FC90 03C0 4000 0099", + "00FF 03FF 0023 0000 FEC0 0000 C000 00BF", + "03FF 09FF 0023 FD85 FBB4 0000 C000 00BF", + "07FF 03FF 0023 FBE1 FCCC 0000 4000 013F" + ], + "Paths": [], + "Rooms": [ + { + "File": { + "Name": "Scene 0, Room 0", + "Start": "01F14000", + "End": "01F29350", + "RemapStart": null + }, + "Objects": [ + "0036", + "001E", + "0024", + "0039", + "000E", + "00A4", + "012B", + "00B7", + "015C", + "000D", + "0168", + "0164", + "0170", + "012F" + ], + "Actors": [ + "00C7 FFB9 0320 00FC 0000 0000 0000 0001", + "00C7 FFA8 0000 FE95 0000 0000 0000 0001", + "0013 FFCA 0106 FE73 4000 4AAB 0000 0003", + "0013 FE28 035C FFD8 0000 BB06 0000 0003", + "0095 005F 0085 FECC 4000 F49F 0000 0000", + "0125 0188 0000 FF62 0000 DDDE 0000 FF01", + "0125 0164 0000 FF15 0000 DDDE 0000 FF01", + "0125 0134 0000 FEDD 0000 DDDE 0000 FF01", + "0125 008F 0133 FE6F 0000 0000 0000 FF01", + "0125 0051 0125 FE60 0000 0000 0000 FF01", + "0055 FF3D 0320 FF3D 0000 9F4A 0000 0000", + "0055 0100 0320 FFBB 0000 0000 0000 0000", + "011B 0000 FFE8 0000 0028 0006 0000 8001", + "011B FE5F 0190 01AB 0000 0000 0000 0103", + "011B FDE9 0320 0000 0000 0000 0000 0103", + "011B 0076 0000 FEBB 0014 0000 0000 1F02", + "011B 01D1 0168 0072 001C 0000 0000 1F02", + "011B 011A 0168 0168 0014 0000 0000 1F02", + "0015 FFEA 010E FFA8 0000 0000 0000 2403", + "0095 0116 0168 014C 0000 A000 0000 8102", + "0125 FFF5 0000 FEA8 0000 0000 0000 FF02", + "0125 FF61 0000 FED2 0000 0000 0000 FF02", + "002B 0192 0168 00C5 0000 B333 0000 0006", + "002B 0141 03D5 011D 0000 A000 0000 0008", + "005E FF67 0000 0002 0000 0000 0000 03E7", + "005E 0190 0168 0079 0000 B555 0000 03E7", + "005E FE16 0320 FFDC 0000 CAAB 0000 03E7", + "012A FEC9 0320 FEC9 0000 E000 0000 2700", + "01A0 0117 0168 014D 0000 6000 0000 FFFF", + "000A 014D 0168 00FD 0000 20B6 0000 0823", + "000F 0000 0000 0000 0000 4000 0000 0FC5", + "000F FE15 0320 FFFF 0000 4000 0000 19CA", + "000F FE7C 0190 0185 0000 6000 0000 1FD6" + ] + }, + { + "File": { + "Name": "Scene 0, Room 1", + "Start": "01F2A000", + "End": "01F2E200", + "RemapStart": null + }, + "Objects": [ + "0036", + "001E", + "0024", + "0039", + "004A", + "000E", + "00A4", + "012B", + "00B7", + "015C" + ], + "Actors": [ + "0125 FD7D 0190 031E 0000 0000 0000 FF01", + "0125 FD72 0190 0246 0000 0000 0000 FF01", + "0125 FCEC 0190 02BE 0000 0000 0000 FF01", + "0055 FD5C 0190 02B1 0000 0000 0000 0001", + "0015 FDAE 0190 0348 0000 0000 0000 2303", + "0125 FDC4 0190 02D7 0000 0000 0000 FF02", + "0125 FDC1 0190 0273 0000 0000 0000 FF02", + "0125 FD20 0190 031B 0000 0000 0000 FF02", + "0125 FD0F 0190 0266 0000 0000 0000 FF02", + "002B FD2C 0190 0394 0000 0000 0000 0006", + "002B FC89 0190 02DB 0000 0000 0000 0006", + "012A FC68 021E 0396 0000 6000 0000 0C02" + ] + }, + { + "File": { + "Name": "Scene 0, Room 2", + "Start": "01F2F000", + "End": "01F34F30", + "RemapStart": null + }, + "Objects": [ + "0036", + "001E", + "0024", + "0039", + "004A", + "000E", + "00A4", + "012B", + "00B7", + "015C", + "011D", + "0163", + "0190", + "00A8" + ], + "Actors": [ + "0095 FB63 017D 0577 4000 5F4A 0000 0000", + "0095 FA8D 0191 04A3 4000 6000 0000 0000", + "0037 FB17 02EC 04E1 0000 616C 0000 0000", + "0125 FC14 0118 04BE 0000 C71C 0000 FF01", + "0125 FC07 0118 04ED 0000 C71C 0000 FF01", + "0125 FB34 0118 03EC 0000 0000 0000 FF01", + "0125 FB01 0118 0400 0000 0000 0000 FF01", + "011B FA8E 0118 04A4 0000 0000 0000 1F02", + "011B FB5E 0163 0576 0000 0000 0000 1F02", + "011B FB68 01E0 05CD 0000 0000 0000 1F02", + "012C FB42 0186 04B8 0000 E000 0000 0080", + "0015 FB98 0290 0623 0000 0000 0000 2203", + "0095 FBDF 0302 0670 4000 A000 0000 8108", + "002B FAE6 0118 045D 0000 0000 0000 0006", + "002B FABD 01E0 054B 0000 0000 0000 0006", + "01D1 FB48 0223 056E 0000 E000 0000 39FF", + "01D1 FB72 0223 0544 0000 E000 0000 39FF", + "01D1 FB73 0223 0598 0000 E000 0000 39FF", + "01D1 FB9D 0223 056E 0000 E000 0000 39FF", + "0173 FBD7 024E 0432 0005 0022 0001 3F04", + "0127 FB97 0290 05BD 0000 A000 0000 0003", + "0127 FB61 0290 05F2 0000 A000 0000 0004", + "0127 FB2B 0290 0616 0000 A000 0000 0008", + "000A FA91 01E0 056F 0000 E000 0000 0801", + "000F FBE9 0265 0435 0CCD E5B0 0EEF 1FFF", + "0051 FBD6 0230 042A 0000 E000 0000 0121" + ] + }, + { + "File": { + "Name": "Scene 0, Room 3", + "Start": "01F35000", + "End": "01F491B0", + "RemapStart": null + }, + "Objects": [ + "0036", + "001E", + "0024", + "0039", + "000E", + "00A4", + "012B", + "00B7", + "015C", + "000D", + "0168", + "0164", + "0170", + "012F" + ], + "Actors": [ + "00C7 001F FCB3 FF2C 0000 7E94 0000 0001", + "0125 FFD9 FC90 0076 0000 0000 0000 FF01", + "0125 0005 FC90 0077 0000 0000 0000 FF01", + "0125 FCD9 FCD6 FF1C 0000 0000 0000 FF01", + "0125 FD04 FCCC 0118 0000 E000 0000 FF01", + "0125 FCDB FCCC 00ED 0000 E000 0000 FF01", + "0055 FF7B FCB3 FEE2 0000 0000 0000 0000", + "0055 FF97 FC90 0085 0000 8000 0000 0000", + "0055 FE38 FCCF FFD6 0000 0000 0000 0001", + "011B FDA8 FCCC FEDD 0014 0011 000A 3208", + "017D FE93 FC77 FEDE 0000 0000 0001 FF10", + "0125 FFF9 FCB3 FEB8 0000 0000 0000 FF02", + "0125 FFF1 FCB3 FEFB 0000 0000 0000 FF02", + "005E FF9A FC90 00F4 0000 E000 0000 03C2", + "012A FF9A FCB3 FE66 0000 0000 0000 0200", + "012A 0040 FC90 00FF 0000 0000 0000 1400", + "0195 FDCE FCCC 014C 0000 0000 0000 0004", + "012A FFB4 FD29 0227 0000 8000 0000 1502", + "000A 0035 FDC1 FEEA 0000 8000 0014 8524", + "000F FD85 FCCC 0000 0000 4000 0000 0FC6", + "000F 002D FC8C 00F5 FBBC B8E4 0000 1FCB" + ] + }, + { + "File": { + "Name": "Scene 0, Room 4", + "Start": "01F4A000", + "End": "01F4EC30", + "RemapStart": null + }, + "Objects": [ + "0036", + "001E", + "0024", + "0039", + "004A", + "000E", + "00A4", + "012B", + "00B7", + "0170" + ], + "Actors": [ + "0125 0050 FC90 0318 0000 0000 0000 FF01", + "0125 0032 FC90 02EE 0000 0000 0000 FF01", + "0125 FF37 FC90 02ED 0000 0000 0000 FF01", + "0125 FF1D FC90 0316 0000 0000 0000 FF01", + "0060 FFB6 FC90 0416 0000 8000 0000 FF00", + "002B FF43 FC90 041B 0000 0000 0000 0006", + "002B 002F FC90 041C 0000 0000 0000 0006", + "002B FFB3 FD7F 03D0 0000 0000 0000 0008", + "005E FEE7 FC90 0371 0000 0000 0000 1099", + "005E FEE6 FC90 0411 0000 0000 0000 1099", + "0173 FEE7 FCCC 0371 0002 001A 0000 3F06", + "0173 FEE6 FCCC 0411 0002 001A 0000 3F06" + ] + }, + { + "File": { + "Name": "Scene 0, Room 5", + "Start": "01F4F000", + "End": "01F57390", + "RemapStart": null + }, + "Objects": [ + "0036", + "001E", + "0024", + "0039", + "004A", + "000E", + "00A4", + "012B", + "00B7", + "000D", + "0170", + "0190", + "00A8", + "00A2" + ], + "Actors": [ + "00C7 FB1E FC90 0382 0000 0000 0000 0001", + "0037 FABD FCDA 0437 0000 4000 0000 0000", + "0125 FAE3 FC9A 0346 0000 0000 0000 FF01", + "0125 FAB0 FC9A 0346 0000 0000 0000 FF01", + "0125 FDE6 FC90 038B 0000 0000 0000 FF02", + "0125 FE11 FC90 038A 0000 0000 0000 FF02", + "0125 FE2E FC90 0361 0000 0000 0000 FF02", + "002B FC6B FDE2 0428 0000 0000 0000 0009", + "01D1 FAAB FC90 042E 0000 0000 0000 B9FF", + "005E FDF0 FC90 03D8 0000 0000 0000 03FE", + "005E FB77 FC90 047B 0000 0000 0000 1089", + "005E FB78 FC90 03E1 0000 0000 0000 1089", + "012A FDF1 FC90 045A 0000 0000 0000 3E20", + "000A FAA0 FC90 0436 0000 C000 0000 5AA0", + "000A FE84 FC90 0405 0000 4000 0000 5905", + "0050 FCBD FC77 041A 0000 4000 0000 FF00", + "0051 FCBD FCA4 041A 0000 4000 0000 00FF", + "0050 FCBD FC6D 041A 0000 0000 0000 FF01" + ] + }, + { + "File": { + "Name": "Scene 0, Room 6", + "Start": "01F58000", + "End": "01F5CF00", + "RemapStart": null + }, + "Objects": [ + "0036", + "001E", + "0024", + "0039", + "004A", + "000E", + "00A4", + "012B", + "00B7", + "000D", + "0170" + ], + "Actors": [ + "0013 F81D FE0B 04C9 0000 6000 0000 0003", + "0125 F8FD FD08 0333 0000 0000 0000 FF01", + "0125 F882 FD08 0332 0000 0000 0000 FF01", + "0060 F8C9 FD08 042A 0000 4000 0000 FF00", + "002B F909 FD08 047A 0000 0000 0000 0007", + "002B F869 FD08 0471 0000 0000 0000 0007", + "002B F909 FD08 03DF 0000 0000 0000 0007", + "002B F863 FD08 03E0 0000 0000 0000 0007", + "002B F8C2 FDEB 04FE 0000 0000 0000 0009", + "002B F8BB FDF4 0366 0000 0000 0000 0009", + "002B F8C0 FE43 042C 0000 0000 0000 0008", + "002B F813 FE16 042F 0000 0000 0000 0008" + ] + }, + { + "File": { + "Name": "Scene 0, Room 7", + "Start": "01F5D000", + "End": "01F65AA0", + "RemapStart": null + }, + "Objects": [ + "0036", + "001E", + "0024", + "0039", + "00A4", + "012B", + "00B7", + "015C", + "000D", + "0168", + "00A8", + "0190", + "00A2" + ], + "Actors": [ + "00C7 F959 FD08 0144 0000 5A50 0000 0001", + "0013 F857 FD43 000A 0000 0000 0000 0003", + "0013 F8AE FD44 005F 0000 0000 0000 0003", + "0013 F803 FD44 0061 0000 0000 0000 0003", + "0013 F85A FD44 00B9 0000 0000 0000 0003", + "0125 F893 FD08 025C 0000 0000 0000 FF01", + "0055 FA0E FCF7 0001 0000 C000 0000 0000", + "0055 F73C FD08 FEF5 0000 2000 0000 0000", + "0095 F82E FEE8 005B 0000 0000 0000 8104", + "0112 F71F FD1C 0082 0000 0000 0000 193F", + "0112 F7DD FD1C FFA9 0000 0000 0000 193F", + "0112 F913 FD1C 012A 0000 0000 0000 193F", + "0112 F93A FD1C FF60 0000 0000 0000 193F", + "0125 F759 FD08 0038 0000 0000 0000 FF02", + "0125 F78B FD08 015E 0000 0000 0000 FF02", + "0125 F95C FD08 00C4 0000 0000 0000 FF02", + "0125 F972 FD08 FF88 0000 0000 0000 FF02", + "01D1 F7A2 FD08 005D 0000 0000 0000 39FF", + "01D1 F7DB FD43 00D9 0000 2000 0000 39FF", + "01D1 F84C FD85 0122 0000 0000 0000 39FF", + "01D1 F8CA FDCC 00F2 0000 6000 0000 39FF", + "01D1 F8FA FE13 0073 0000 0000 0000 39FF", + "005E F857 FD08 0005 0000 0000 0000 03F8", + "005E F85B FD08 00B5 0000 0000 0000 03F8", + "005E F803 FD08 005B 0000 0000 0000 03F8", + "005E F8AD FD08 0059 0000 0000 0000 03F8", + "012A F859 FD08 005A 0000 0000 0000 3820", + "009D F718 FCF9 0081 0000 4000 0000 0000", + "009D F715 FCF9 FFEC 0000 4000 0000 0000", + "009D F7E1 FCF9 0115 0000 0000 0000 0000", + "009D F8ED FCF9 FFE9 0000 0000 0000 0000", + "009D F916 FCF9 011A 0000 0000 0000 0000", + "009D F9A4 FCF9 00B4 0000 C000 0000 0000", + "009D F945 FCF9 FF4F 0000 E222 0000 0000", + "009D F7DC FCF9 FF98 0000 0000 0000 0000", + "000F FAB5 FCCC 0003 0000 C000 0000 1FC7", + "000F F707 FD08 FEB9 0000 2000 0000 1FCF" + ] + }, + { + "File": { + "Name": "Scene 0, Room 8", + "Start": "01F66000", + "End": "01F66D90", + "RemapStart": null + }, + "Objects": [ + "0036", + "001E", + "0024", + "0039", + "0164", + "000E", + "00A4", + "012B", + "00B7", + "015C" + ], + "Actors": [ + "0125 F554 F8E6 FD5E 0000 0000 0000 FF01", + "0125 F647 F8E2 FD0F 0000 0000 0000 FF01", + "0055 F58D FD08 FD41 0000 2000 0000 0001", + "0095 F563 FD8E FD16 0000 2000 0000 8101", + "0125 F607 FD08 FE4F 0000 0000 0000 FF02", + "0125 F6A5 FD08 FDB5 0000 0000 0000 FF02", + "0125 F56C FD08 FDF6 0000 0000 0000 FF02", + "002B F63C FD08 FD5D 0000 0000 0000 0007", + "002B F5A5 FD08 FE03 0000 0000 0000 0007", + "002B F5F1 FD08 FD12 0000 0000 0000 0007", + "002B F561 FD08 FDA2 0000 0000 0000 0007" + ] + }, + { + "File": { + "Name": "Scene 0, Room 9", + "Start": "01F67000", + "End": "01F708A0", + "RemapStart": null + }, + "Objects": [ + "0036", + "001E", + "0024", + "0039", + "000E", + "00A4", + "012B", + "00B7", + "015C", + "000D", + "0168", + "0164", + "0170" + ], + "Actors": [ + "0125 FEF4 F8A8 FD7B 0000 0000 0000 FF01", + "0125 FEF0 F8A8 FDBD 0000 0000 0000 FF01", + "0125 FEF0 F8A8 FDFB 0000 0000 0000 FF01", + "0192 FE8F F8A8 FC78 0000 0000 0000 0001", + "0192 FC4D F8A8 FD0B 0000 0000 0000 0002", + "0192 FD6C F8A8 FC49 0000 0000 0000 9C03", + "0015 FC8B F862 FF47 0000 0000 0000 2E03", + "0015 FCCC F858 FFB4 0000 0000 0000 3003", + "0015 FE9E F869 FF32 0000 0000 0000 3103" + ] + }, + { + "File": { + "Name": "Scene 0, Room 10", + "Start": "01F71000", + "End": "01F75E00", + "RemapStart": null + }, + "Objects": [ + "0036", + "001E", + "0024", + "0039", + "0164", + "000E", + "00A4", + "012B", + "00B7", + "0170" + ], + "Actors": [ + "0125 FA5D 0348 00A7 0000 727D 0000 FF01", + "0125 FA15 0348 008C 0000 7333 0000 FF01", + "0125 FD84 0320 00A1 0000 0000 0000 FF01", + "0125 FD4B 0320 00B6 0000 0000 0000 FF01", + "0055 FCA6 02D0 00BA 0000 BF4A 0000 0000", + "0015 FB73 0334 0145 0000 0000 0000 2603", + "002B FB10 02D0 0093 0000 0000 0000 0007", + "002B FA77 0348 FFA3 0000 0B61 0000 0007", + "002B FA72 0348 0046 0000 0000 0000 0006", + "002B FB7C 03E0 01C5 0000 0000 0000 0008", + "002B FBE7 03CF FEF0 0000 0000 0000 0008", + "002B FC0A 03E8 0140 0000 8000 0000 0008", + "005E FD73 0320 FF97 0000 C000 0000 2400", + "005E FBD5 02D0 FFFB 0000 C000 0000 1053", + "0173 FBD5 030C FFFB 0002 0014 0000 3F06", + "012A FD1D 0320 FF6D 0000 0000 0000 3D00", + "01A0 FCDB 02D0 FFFE 0000 4000 0000 FFFF", + "01A0 FCDB 02D0 FFC2 0000 4000 0000 FFFF", + "000A FA2D 049B 0001 0000 C000 0013 8522", + "000A FBC6 0334 0183 0000 0000 0000 10A6", + "0050 FBC8 0258 0000 0000 0000 0000 3D02" + ] + }, + { + "File": { + "Name": "Scene 0, Room 11", + "Start": "01F76000", + "End": "01F7D170", + "RemapStart": null + }, + "Objects": [ + "0036", + "001E", + "0024", + "0039", + "0164", + "000E", + "00A4", + "012B", + "00B7" + ], + "Actors": [] + } + ] + }, + { + "File": { + "Name": "Scene 1", + "Start": "01F7E000", + "End": "01F93140", + "RemapStart": null + }, + "TActors": [ + "00FF 01FF 0023 0474 0000 FEC0 4000 003F", + "00FF 09FF 0023 0474 0213 FEC0 4000 003F", + "00FF 09FF 0023 0474 0213 FC68 4000 003F", + "07FF 08FF 0023 026C 004C F520 4000 003F", + "07FF 08FF 0023 0251 004C F11A 4000 003F", + "09FF 0CFF 0023 0924 0213 FC68 4000 003F", + "09FF 0AFF 0023 0924 0213 FEC0 4000 003F", + "07FF 00FF 002E 0000 004C F84E 0000 003F", + "04FF 03FF 002E 0AE3 0064 F680 2AAB 0085", + "01FF 03FF 002E 0DE8 0064 FB04 8000 0085", + "0AFF 03FF 002E 10F3 0213 FDA8 8000 0086", + "0CFF 03FF 002E 0EC4 0213 FC68 4000 0086", + "01FF 0BFF 002E 0A00 0000 0078 0000 003F", + "08FF 0EFF 002E 05C1 004C EF7B 8000 007F", + "0DFF 04FF 002E 0981 0064 F4B2 0000 01DE", + "02FF 0FFF 002E F858 0000 FD1C 0000 003F", + "06FF 09FF 002E 0730 019B FA38 0000 01E7", + "05FF 02FF 002E F858 0213 FD24 8000 00A5", + "00FF 05FF 002E F9F4 0213 FEC0 C000 007F", + "01FF 01FF 002E 0DE8 0064 FDD0 0000 00B6", + "10FF 07FF 002E FE98 0010 F520 4000 00A0", + "02FF 00FF 002E FCB8 0000 FA10 4000 0083", + "00FF 04FF 002E 05B4 0050 FC68 4000 009B" + ], + "Paths": [], + "Rooms": [ + { + "File": { + "Name": "Scene 1, Room 0", + "Start": "01F94000", + "End": "01FAF8A0", + "RemapStart": null + }, + "Objects": [ + "002B", + "018A", + "0031", + "000E", + "0038", + "0168", + "011B", + "0163", + "0024", + "0188", + "00A4", + "0036", + "001F", + "000D", + "0170" + ], + "Actors": [ + "01B9 FC37 0000 FC6C 0000 4000 0000 3E14", + "0058 FE5C FF4C FB64 0000 0000 0000 00FF", + "0058 0000 FF4C FCF4 0000 0000 0000 00FF", + "0058 01A4 FF4C FB64 0000 0000 0000 000A", + "0059 0000 0000 0014 0000 0000 0000 0007", + "0059 0334 0000 FA10 0000 C000 0000 A000", + "0059 FCCC 0000 FC68 0000 4000 0000 A01D", + "0059 0334 0000 FEC0 0000 C000 0000 A01F", + "003F 0000 00C4 F92A 0000 0000 0000 001A", + "011B 0010 FF67 FC05 0096 0000 0032 0C15", + "0112 FFD8 0000 0014 0000 0000 0000 3FD8", + "0112 0000 0000 0014 0000 0000 0000 3FD8", + "0112 0028 0000 0014 0000 0000 0000 3FD8", + "012A FC97 0213 F9FC 0000 4000 0000 0300", + "012A 01AD FF60 F94B 0000 0000 0000 0A00", + "0185 0242 0238 FC5F 0000 4000 0000 0338", + "0195 FC7E 0000 FEE7 0000 4000 0000 0003", + "0195 FC43 0000 FEA4 0000 4000 0000 0001", + "004C FEDB 0014 0133 0000 0000 0000 FFFF", + "004C FFFE 0000 FB6E 0000 0000 0000 FFFF", + "004C 0122 0014 0133 0000 0000 0000 FFFF", + "004C 0352 0213 FC65 0000 0000 0000 FFFF", + "0127 01B0 FF60 F949 0000 0000 0000 000E", + "0127 FE4D FF60 F948 0000 0000 0000 0011", + "0127 030F 0213 FC65 0000 4000 0000 0015", + "0127 0322 0213 FC34 0000 C000 0000 0015", + "0127 0327 0213 FC96 0000 0000 0000 0015", + "000A 03B6 0000 FA11 0000 4000 0000 0820", + "000A 0365 0050 FC68 0000 C000 0000 0644", + "005E FD03 0000 FA83 0000 0000 0000 03C3" + ] + }, + { + "File": { + "Name": "Scene 1, Room 1", + "Start": "01FB0000", + "End": "01FB9B70", + "RemapStart": null + }, + "Objects": [ + "002B", + "018A", + "0031", + "000E", + "0038", + "0168", + "011B", + "0163", + "0024", + "0188", + "00A4", + "0036", + "001F", + "000D", + "0170" + ], + "Actors": [ + "012B 085C FF61 FE97 0000 0000 0000 0001", + "012B 085C FF61 FE20 0000 0000 0000 1201", + "0037 0C9B 0160 FE70 0000 C16C 0000 0001", + "0059 0A00 0000 FF95 0000 8000 0000 A001", + "0013 0D2D 00E7 FEA4 0000 0000 0000 0000", + "002F 0DC1 0064 FC7E 0000 093F 0000 FFFF", + "002F 0E06 0064 FBC2 0000 F1C7 0000 FFFF", + "0111 06BF 0000 FF69 0000 0000 0000 4400", + "0111 0717 0000 FF66 0000 0000 0000 4601", + "0111 0D72 0028 FE2B 0000 0000 0000 5000", + "0111 0E62 0028 FE2E 0000 0000 0000 5210", + "004C 085D 00A0 FD9B 0000 0000 0000 FFFF", + "004C 09A1 0000 FE6D 0000 0000 0000 FFFF", + "004C 0B2F 00A9 FF35 4000 671C 0000 FFFF", + "004C 0B43 00EA FF41 4000 671C 0000 FFFF", + "004C 0B46 0125 FF43 438E 671C 0000 FFFF", + "004C 0B4F 0154 FEEE 8000 0000 0000 FFFF", + "004C 0B5A 006B FF4F 4000 671C 0000 FFFF", + "004C 0B5D 0154 FF2A 8000 0000 0000 FFFF", + "004C 0B7A 0154 FE99 8000 0000 0000 FFFF", + "004C 0B8E 0154 FE3B 8000 0000 0000 FFFF", + "004C 0B90 0154 FEE0 8000 0000 0000 FFFF", + "004C 0BA2 0138 FE03 4000 11C7 0000 FFFF", + "004C 0BAE 0154 FE71 8000 0000 0000 FFFF", + "0127 09A0 0000 FE6E 0000 0000 0000 0008", + "0127 0B7E 00F0 FE11 0000 0000 0000 8012", + "012A 0B7E 0104 FE0C 0000 11C7 0000 3602" + ] + }, + { + "File": { + "Name": "Scene 1, Room 2", + "Start": "01FBA000", + "End": "01FC1EC0", + "RemapStart": null + }, + "Objects": [ + "002B", + "018A", + "0031", + "00A4", + "011B", + "0170", + "0024", + "008B", + "0168", + "0039" + ], + "Actors": [ + "012B F85B FF9F F8F8 0000 0000 0000 2200", + "00C7 F893 0000 FC6B 0000 0000 0000 0001", + "0037 F779 02D0 FBA6 0000 C000 0000 0000", + "0037 F930 02D0 FBA6 0000 4000 0000 0000", + "0059 F858 0000 FBF0 0000 8000 0000 A002", + "005C F858 01E0 F894 0000 C000 0000 000B", + "011B F858 0014 FAE9 001E 0024 0000 BF14", + "008A F71B 0000 FAAE 0000 0000 0000 0401", + "008A F993 0000 FAAE 0000 0000 0000 0401", + "005E F7DF 0000 FBAC 0000 0000 0000 2400", + "0117 F71B 0000 FAAE 0000 0000 0000 1165", + "0117 F773 0000 F8D6 0000 0000 0000 1165", + "0117 F695 017C F8D4 0000 0000 0000 1165", + "0117 F88D 0273 FB25 0000 0000 0000 1165", + "0117 FA18 0213 FBC5 0000 0000 0000 1165", + "0117 F93B 0000 FA4B 0000 0000 0000 0165", + "0111 F6A9 0000 F8F4 0000 0000 0000 6603", + "0111 F6C7 0000 FB77 0000 0000 0000 6802", + "0111 FA0B 0000 F8F8 0000 0000 0000 6A02", + "0111 F9EA 0000 FB6F 0000 0000 0000 6C03", + "0195 F857 01EA F844 0000 0000 0000 0004", + "004C F7EA 0014 F97F 0000 0000 0000 FFFF", + "004C F7EA 0014 F9BB 0000 0000 0000 FFFF", + "004C F7EA 0014 F9F7 0000 0000 0000 FFFF", + "004C F7EA 0014 FA33 0000 0000 0000 FFFF", + "004C F7EA 0014 FA6F 0000 0000 0000 FFFF", + "004C F7EA 0014 FAAB 0000 0000 0000 FFFF", + "004C F7EA 0014 FAE7 0000 0000 0000 FFFF", + "004C F808 0037 FC34 4000 4000 0000 FFFF", + "004C F821 0014 FAE7 0000 0000 0000 FFFF", + "004C F891 0014 FAE7 0000 0000 0000 FFFF", + "004C F8CC 0014 F97F 0000 0000 0000 FFFF", + "004C F8CC 0014 F9BB 0000 0000 0000 FFFF", + "004C F8CC 0014 F9F7 0000 0000 0000 FFFF", + "004C F8CC 0014 FA33 0000 0000 0000 FFFF", + "004C F8CC 0014 FA6F 0000 0000 0000 FFFF", + "004C F8CC 0014 FAAB 0000 0000 0000 FFFF", + "004C F8CC 0014 FAE7 0000 0000 0000 FFFF", + "01A0 F695 017C F8D4 0000 0000 0000 FFFF", + "01A0 F696 0213 FBC4 0000 0000 0000 FFFF", + "01A0 F772 0000 F8D5 0000 0000 0000 FFFF", + "01A0 F93E 0000 F8D4 0000 0000 0000 FFFF", + "01A0 FA19 0213 FBC4 0000 0000 0000 FFFF", + "01A0 FA1A 017C F8D3 0000 0000 0000 FFFF" + ] + }, + { + "File": { + "Name": "Scene 1, Room 3", + "Start": "01FC2000", + "End": "01FCFE70", + "RemapStart": null + }, + "Objects": [ + "002B", + "001B", + "0163", + "00A4", + "0024", + "015C" + ], + "Actors": [ + "003B 0F0B 0028 FA0A 0000 0000 0000 0006", + "0025 0F81 0064 F78F 0000 0000 0000 0500", + "0025 0B0D 0064 F857 0000 0000 0000 0501", + "0025 10A5 0213 FBE1 0000 0000 0000 0600", + "0025 115A 0213 FA96 0000 0000 0000 0601", + "0015 10AA 0064 F9D9 0000 ACCD 0000 1803", + "0095 0DF3 0213 F845 0000 0000 0000 8204", + "0111 0F1D 0213 FCD5 0000 0000 0000 5403", + "0111 0F1B 0213 FC37 0000 0000 0000 5603", + "0111 124F 0213 FBD1 0000 0000 0000 5801", + "0111 1255 0213 FB56 0000 0000 0000 5A01", + "0127 0EB0 01D7 FADA 0000 0000 0000 00FF", + "0127 0ED7 01D7 FA99 0000 0000 0000 00FF", + "0127 0EF8 01D7 FA63 0000 0000 0000 00FF", + "0127 0F3A 01D7 FA45 0000 0000 0000 00FF", + "0127 0F7D 01D7 FA3F 0000 0000 0000 00FF", + "0127 0FBC 01D7 FA40 0000 0000 0000 00FF", + "0127 0FE3 0213 FA31 0000 0000 0000 00FF", + "0127 0FFB 0213 FA1A 0000 0000 0000 00FF", + "0127 1025 0213 F9E7 0000 0000 0000 00FF", + "0127 1042 0213 F9D3 0000 0000 0000 00FF", + "0127 1052 01D7 F9BE 0000 0000 0000 00FF", + "0127 107B 01D7 F98D 0000 0000 0000 00FF" + ] + }, + { + "File": { + "Name": "Scene 1, Room 4", + "Start": "01FD0000", + "End": "01FD9960", + "RemapStart": null + }, + "Objects": [ + "002B", + "0031", + "0163", + "00A2", + "0009", + "0170" + ], + "Actors": [ + "000D 06AA 0078 F9C1 0000 45B0 0000 0000", + "000D 06C1 0078 FCA6 0000 0000 0000 0000", + "000D 081F 0078 FB46 0000 BC72 0000 0000", + "0112 06E1 0156 FC2A 0000 0000 0003 18DB", + "0112 07FE 013A F894 0000 0000 0003 18DE", + "0111 0734 0050 F8B5 0000 0000 0000 5C03", + "0111 08E0 0050 F75B 0000 0000 0000 5E00", + "0111 08C0 0050 FAA7 0000 0000 0000 6201", + "0111 05FF 0050 FAED 0000 0000 0000 6403", + "004C 06C7 012D FBD9 5555 C000 0000 FFFF", + "004C 06CE 011B FBA5 5555 B777 0000 FFFF", + "004C 06D4 012D FC01 5555 DC72 0000 FFFF", + "004C 06F3 00F2 FB84 5555 A38E 0000 FFFF", + "004C 0718 00B5 FB77 4000 8000 0000 FFFF", + "004C 0742 007F FB78 4000 8000 0000 FFFF", + "004C 07E1 00B3 F82A 4000 3111 0000 FFFF", + "004C 07E8 011F F836 471C 31C7 0000 FFFF", + "004C 07EB 007F F805 4000 2AAB 0000 FFFF", + "004C 07EC 00F9 F814 5555 3111 0000 FFFF", + "004C 07F8 0128 F87D 471C 51C7 0000 FFFF", + "004C 06F3 0050 FD27 0000 0000 0000 FFFF", + "004C 08B0 0064 F64C 0000 0000 0000 FFFF", + "01A0 08B8 0050 FB3B 0000 C000 0000 FFFF", + "01A0 08B8 0050 FB77 0000 C000 0000 FFFF", + "01A0 08DB 0050 F8A4 0000 C000 0000 FFFF", + "01A0 08DB 0050 F8E0 0000 C000 0000 FFFF", + "01A0 0600 0050 FA55 0000 C000 0000 FFFF", + "01A0 0600 0050 FA91 0000 C000 0000 FFFF", + "01A0 0722 0050 FD18 0000 0000 0000 FFFF", + "01A0 075E 0050 FD18 0000 0000 0000 FFFF", + "009D 06DD 0165 FC11 ACCD 6000 0000 0000", + "009D 07F6 0158 F87B BA50 D27D 0000 0000" + ] + }, + { + "File": { + "Name": "Scene 1, Room 5", + "Start": "01FDA000", + "End": "01FDFEC0", + "RemapStart": null + }, + "Objects": [ + "002B", + "0031", + "000C", + "00A4", + "000D", + "000E", + "012B" + ], + "Actors": [ + "0125 F74A 0213 FDD4 0000 0000 0000 0301", + "0125 F756 0213 FFC8 0000 0000 0000 0301", + "0125 F93D 0213 FFD3 0000 0000 0000 0301", + "0125 F947 0213 FDBD 0000 0000 0000 0301", + "0012 F788 0213 FE98 0000 EE39 0000 FFFF", + "0012 F8E1 0213 FF7F 0000 616C 0000 FFFF", + "0012 F8E7 0213 FE40 0000 B05B 0000 FFFF", + "004C F85B 0277 FEBE 0000 0000 0000 FFFF", + "000A F858 0213 FFE4 0000 0000 0000 1805" + ] + }, + { + "File": { + "Name": "Scene 1, Room 6", + "Start": "01FE0000", + "End": "01FE24B0", + "RemapStart": null + }, + "Objects": [ + "002B", + "0024", + "0177", + "001E", + "0170", + "000E" + ], + "Actors": [ + "0095 080D 019B F911 0000 8000 0000 8210", + "002B 06B2 0303 F97C 0000 0000 0000 0008", + "002B 06D0 0303 F914 0000 0000 0000 0008", + "002B 072F 0303 F8C2 0000 0000 0000 0008", + "002B 0795 0303 F918 0000 0000 0000 0008", + "002B 07B6 0303 F982 0000 0000 0000 0008", + "01A0 0659 019B F90B 0000 4000 0000 FFFF", + "01A0 0659 019B F947 0000 4000 0000 FFFF", + "01A0 0713 019B F848 0000 0000 0000 FFFF", + "01A0 074F 019B F848 0000 0000 0000 FFFF", + "01A0 0807 019B F912 0000 4000 0000 FFFF", + "01A0 0807 019B F94E 0000 4000 0000 FFFF", + "000A 070F 019B F952 0000 8000 0000 7522" + ] + }, + { + "File": { + "Name": "Scene 1, Room 7", + "Start": "01FE3000", + "End": "01FEA700", + "RemapStart": null + }, + "Objects": [ + "002B", + "001F", + "001B", + "0038", + "015C", + "0024", + "0031", + "00A2", + "0154", + "0179", + "012B" + ], + "Actors": [ + "002F FF35 0010 F48F 0000 0000 0000 FFFF", + "002F 0016 0010 F466 0000 2666 0000 FFFF", + "0112 FFC4 004C F762 0000 0000 0000 3FF0", + "0112 FFEC 004C F762 0000 0000 0000 3FF0", + "0112 0014 004C F762 0000 0000 0000 3FF0", + "0112 003C 004C F762 0000 0000 0000 3FF0", + "0111 0102 0010 F411 0000 0000 0000 7A04", + "0111 FEF7 0010 F63D 0000 0000 0000 7C03", + "012A FFFF 007E F36C 0000 0000 0000 2000", + "009D 0000 007E F374 0000 0000 0000 0000" + ] + }, + { + "File": { + "Name": "Scene 1, Room 8", + "Start": "01FEB000", + "End": "01FF45A0", + "RemapStart": null + }, + "Objects": [ + "002B", + "001F", + "001B", + "0038", + "015C", + "0024", + "0031", + "00A2", + "0154", + "0179", + "012B" + ], + "Actors": [ + "0054 050A 0010 F09A 0000 4000 0000 FFFF", + "0054 051D 0010 F0C4 0000 4000 0000 FFFF", + "0054 0540 0010 F0E1 0000 4000 0000 FFFF", + "0054 0525 0010 F103 0000 4000 0000 FFFF", + "0054 0541 0010 F128 0000 4000 0000 FFFF", + "0054 051D 0010 F148 0000 4000 0000 FFFF", + "0054 053B 0010 F160 0000 4000 0000 FFFF", + "01B4 04A9 0042 F0FF 4000 C000 0000 FF01", + "01B4 04F9 0010 F0FF 4000 4000 0000 1901", + "0125 06E5 0010 F09C 0000 0000 0000 FF01", + "0049 0677 0010 F196 0000 0000 0000 2FFC", + "0049 06B0 0010 F194 0000 0000 0000 2FFC", + "0049 06EA 0010 F193 0000 0000 0000 2FFC", + "002F 0530 004C F324 0000 349F 0000 FFFF", + "002F 06AB 004C F340 0000 D777 0000 FFFF", + "0025 0616 0010 F22C 0000 0000 0000 FFFF", + "0095 0611 00C4 F194 0000 0000 0000 8201", + "012A 0452 0094 F082 4000 0000 0000 1903", + "012A 06AD 0010 F133 0000 0000 0000 3C03", + "0111 03ED 004C F181 0000 0000 0000 4003", + "0111 042A 004C F181 0000 0000 0000 4212", + "0111 06DE 004C F386 0000 0000 0000 6E04", + "0111 04C7 004C F383 0000 0000 0000 7804", + "0185 06AE 0045 F132 0000 0000 002C FFFF", + "004C 04FC 0057 F087 4000 0000 0000 FFFF", + "004C 04D8 009B F085 4000 0000 0000 FFFF", + "004C 04AF 00D8 F084 4000 0000 0000 FFFF", + "004C 0487 00C4 F0AF 0000 0000 0000 FFFF", + "004C 046D 009E F0AF 4000 C000 0000 FFFF", + "009D 0509 0010 F259 0000 0000 0000 0000", + "009D 06B3 0010 F25A 0000 0000 0000 0000", + "009D 05DE 0010 F259 0000 0000 0000 0000", + "009D 065E 0010 F0D9 0000 C000 0000 0000" + ] + }, + { + "File": { + "Name": "Scene 1, Room 9", + "Start": "01FF5000", + "End": "02000530", + "RemapStart": null + }, + "Objects": [ + "002B", + "018A", + "0031", + "000E", + "0038", + "0168", + "011B", + "0163", + "0024", + "0188", + "00A4", + "0036", + "001F", + "000D", + "0170" + ], + "Actors": [ + "0125 06B1 019B FB22 0000 0000 0000 FF01", + "00FF 0654 015F FD8A 0000 0000 0000 FF40", + "00FF 06CC 015F FE3E 0000 0000 0000 FF40", + "00FF 06CC 015F FEF2 0000 0000 0000 FF40", + "00FF 07EE 015F FEC0 0000 0000 0000 FF40", + "0015 07A3 015F FDAC 0000 0000 0000 3003", + "005E 04E0 0213 FEA0 0000 0000 0000 2400", + "005E 0727 01D7 FF0F 0000 0000 0000 03E7", + "005E 062D 019B FF24 0000 0000 0000 10E7", + "005E 062E 019B FE93 0000 0000 0000 10E7", + "005E 062E 019B FE15 0000 0000 0000 10E7", + "0111 0723 024F FDB5 0000 0000 0000 4C01", + "0111 05FC 024F FB37 0000 0000 0000 4E03", + "000A 0672 024F FDFA 0000 0000 0000 59A3" + ] + }, + { + "File": { + "Name": "Scene 1, Room 10", + "Start": "02001000", + "End": "02008F10", + "RemapStart": null + }, + "Objects": [ + "002B", + "018A", + "0031", + "000E", + "0038", + "0168", + "011B", + "0163", + "0024", + "0188", + "00A4", + "0036", + "001F", + "000D", + "0170" + ], + "Actors": [ + "0013 0E1F 0245 FEF8 0000 C000 0000 0003", + "0013 0FF8 027F FF06 0000 8E39 0000 0003", + "0013 1011 0247 FE74 0000 07D2 0000 0003", + "0037 0A5F 028B FEBF 0000 C000 0000 0000", + "0037 0CAC 028B FEC2 0000 C000 0000 0000", + "0037 0F00 028B FEBF 0000 C0B6 0000 0000", + "0125 0C75 019B FE1B 0000 0000 0000 FF01", + "0059 10E9 0213 FDFB 0000 F555 0000 A009", + "002F 0BBF 019B FE38 0000 DD28 0000 FFFF", + "002F 0BE8 019B FF52 0000 B6C1 0000 FFFF", + "002F 0BFB 019B FE4B 0000 D8E4 0000 FFFF", + "00FF 0A96 019B FE52 0000 0000 0000 FF40", + "00FF 0B86 0213 FEC0 0000 0000 0000 FF41", + "005E 0E28 0213 FEFA 0000 0000 0000 03E8", + "005E 09FC 0213 FE8E 0000 0000 0000 10A8", + "005E 0ADC 0213 FEF7 0000 0000 0000 10A8", + "0111 0C7B 019B FF65 0000 0000 0000 7210", + "0111 0A90 019B FE1D 0000 0000 0000 7410", + "004C 1028 0242 FE5F 4000 0E39 0000 FFFF", + "000F 0A2A 0213 FEC0 0000 C000 0000 1FD4" + ] + }, + { + "File": { + "Name": "Scene 1, Room 11", + "Start": "02009000", + "End": "0200B030", + "RemapStart": null + }, + "Objects": [ + "002B", + "0168" + ], + "Actors": [ + "0195 09FD 0000 01BE 0000 8000 0000 0007" + ] + }, + { + "File": { + "Name": "Scene 1, Room 12", + "Start": "0200C000", + "End": "02014780", + "RemapStart": null + }, + "Objects": [ + "002B", + "018A", + "0031", + "000E", + "0038", + "0168", + "011B", + "0163", + "0024", + "0188", + "00A4", + "0036", + "001F", + "000D", + "0170" + ], + "Actors": [ + "0013 0C11 024F FDA7 0000 8000 0000 0003", + "0013 0D1D 01F3 FBC4 0000 C000 0000 0003", + "0049 0C28 0213 FC67 0000 0000 0000 2FF9", + "0049 0B6E 0213 FC69 0000 0000 0000 2FFA", + "012A 0A99 019B FCE5 0000 0000 0000 3903", + "0111 0CFF 019B FCDB 0000 0000 0000 7610", + "0111 0CFE 019B FD0F 0000 0000 0000 7801", + "012A 0AB3 019B FBDC 0000 0000 0000 3A00", + "004C 0C10 0227 FD6E 0000 0000 0000 FFFF", + "0127 0AB1 019B FBDE 0000 0000 0000 8004", + "01A0 0AD8 019B FCD6 0000 4000 0000 FFFF", + "01A0 0C77 019B FC7F 0000 0000 0000 FFFF" + ] + }, + { + "File": { + "Name": "Scene 1, Room 13", + "Start": "02015000", + "End": "020174D0", + "RemapStart": null + }, + "Objects": [ + "002B", + "00A4", + "0024", + "000D", + "015C", + "004A", + "012B" + ], + "Actors": [ + "0125 0A36 0064 F2C5 0000 0000 0000 FF01", + "0125 0A54 0064 F2D8 0000 0000 0000 FF01", + "0060 0915 0064 F38C 0000 0000 0000 FF00", + "0060 09F2 0064 F38C 0000 0000 0000 FF00", + "0013 0980 0145 F312 0000 0000 0000 0000", + "0095 0895 01B8 F2C2 0000 4000 0000 8202" + ] + }, + { + "File": { + "Name": "Scene 1, Room 14", + "Start": "02018000", + "End": "0201A4D0", + "RemapStart": null + }, + "Objects": [ + "002B", + "012B", + "00A2", + "000E", + "0009" + ], + "Actors": [ + "0125 0505 004C EDAB 0000 0000 0000 FF01", + "000D 05C0 004C EE8D 0000 0000 0000 0000", + "0111 067F 004C EF29 0000 0000 0000 7004", + "0111 0670 004C EDAA 0000 0000 0000 7E04", + "009D 05C2 004C EE32 0000 0000 0000 0000", + "000A 05C1 004C EE21 0000 8000 0000 5541" + ] + }, + { + "File": { + "Name": "Scene 1, Room 15", + "Start": "0201B000", + "End": "0201D930", + "RemapStart": null + }, + "Objects": [ + "002B", + "0190", + "0024", + "015C", + "00A8" + ], + "Actors": [ + "0095 F793 0027 FF1E 0000 8000 0000 0000", + "0037 F7F4 0168 FE40 0000 8000 0000 0000", + "0037 F85A 0168 FF08 0000 8000 0000 0000", + "0037 F922 0168 FEA0 0000 8000 0000 0000", + "0095 F920 0000 FF02 0000 8000 0000 8208", + "01D1 F792 0000 FE2A 0000 0000 0000 88FF", + "01D1 F792 0000 FE8E 0000 0000 0000 88FF", + "01D1 F792 0000 FEF2 0000 0000 0000 88FF", + "01D1 F7F6 0000 FEF2 0000 0000 0000 88FF", + "01D1 F7F6 0000 FE8E 0000 0000 0000 88FF", + "01D1 F7F6 0000 FE2A 0000 0000 0000 88FF", + "01D1 F85A 0000 FEF2 0000 0000 0000 88FF", + "01D1 F85A 0000 FE8E 0000 0000 0000 88FF", + "01D1 F85A 0000 FE2A 0000 0000 0000 88FF", + "01D1 F8BE 0000 FEF2 0000 0000 0000 88FF", + "01D1 F8BE 0000 FE8E 0000 0000 0000 88FF", + "01D1 F8BE 0000 FE2A 0000 0000 0000 88FF", + "01D1 F922 0000 FE8E 0000 0000 0000 88FF", + "01D1 F922 0000 FE2A 0000 0000 0000 88FF", + "01D1 F922 0000 FEF2 0000 0000 0000 88FF" + ] + }, + { + "File": { + "Name": "Scene 1, Room 16", + "Start": "0201E000", + "End": "02023560", + "RemapStart": null + }, + "Objects": [ + "002B", + "001F", + "001B", + "0059", + "0038", + "0179", + "00A4", + "015C", + "0024" + ], + "Actors": [] + } + ] + }, + { + "File": { + "Name": "Scene 2", + "Start": "02024000", + "End": "020397E0", + "RemapStart": null + }, + "TActors": [ + "0FFF 05FF 002E 0550 FF10 F7B9 0000 0094", + "01FF 00FF 002E 0000 FF10 FB99 0000 0095", + "02FF 01FF 002E 0000 FEFC F675 0000 0099", + "04FF 06FF 002E FAB0 00A0 F714 8000 00A0", + "07FF 02FF 002E 0000 FEFC F071 0000 0093", + "07FF 0CFF 002E FD6C FEFC EBC1 8000 003F", + "08FF 07FF 002E 0000 FEFC EB49 0000 008D", + "07FF 0BFF 002E 0294 FEFC EBC1 8000 0081", + "01FF 04FF 002E FD94 00A0 F959 C000 0092", + "05FF 01FF 002E 026C FF10 F959 C000 003F", + "0AFF 07FF 002E FBDC FEFC EDB5 4000 003F", + "09FF 07FF 002E 0424 FEFC EDB5 C000 003F", + "0EFF 03FF 002E 01CC FBF7 F369 C000 00BC", + "03FF 0DFF 002E FDBB FBF7 F54A DD28 00BB", + "0EFF 01FF 002E 0139 FB7F F959 C000 003F", + "02FF 03FF 0023 FFD8 FD82 F3F5 4000 00BF", + "02FF 03FF 0023 0028 FD82 F305 4000 00BF", + "02FF 03FF 0023 FEFC FD82 F2B5 4000 00BF", + "02FF 03FF 0023 FED4 FD82 F4D1 4000 00BF", + "02FF 03FF 0023 00DC FD82 F37D 4000 00BF", + "02FF 03FF 0023 FFC4 FD82 F229 4000 00BF", + "03FF 06FF 002E FC17 FC59 F2F1 C000 009F" + ], + "Paths": [], + "Rooms": [ + { + "File": { + "Name": "Scene 2, Room 0", + "Start": "0203A000", + "End": "0203E140", + "RemapStart": null + }, + "Objects": [ + "0096", + "018B", + "012B", + "000E", + "0163", + "0007", + "0012", + "013A", + "0190", + "00A8", + "0031" + ], + "Actors": [ + "000E FFFE FEB6 FF20 0000 0000 0000 FF00", + "0125 00D5 FEB6 FE72 0000 0000 0000 FF01", + "0125 FF25 FEAC FFC3 0000 0000 0000 FF01", + "01C6 00E8 FF2D FDC3 0000 E666 0000 0000", + "01C6 FF20 FF2D FDBB 0000 199A 0000 0000", + "00E6 FFFE FEAB FECF 0000 0000 0000 3D02", + "0127 FFFF FEAC FED8 0000 0000 0000 0000", + "002D FF25 FF10 FE68 0000 0000 0000 FFFF", + "002D FEF7 FF9D FE99 0000 0000 0000 FFFF", + "002D FF05 FF42 FEF5 0000 0000 0000 FFFF", + "0173 00C5 FF4A FDF1 0000 0019 0001 3F00", + "0173 FF35 FF4A FDE7 0000 0016 0001 3F00", + "000A 00C8 FF10 FF10 0000 4000 0018 8045", + "0112 FF37 FF44 FDE6 0000 0000 0004 1915", + "0112 00C7 FF44 FDF4 0000 0000 0004 1918", + "0111 FF49 FEB6 FE3F 0000 0000 0000 7804", + "0111 00CA FEAC FFC2 0000 0000 0000 640C", + "000A 0000 FEAC FF91 0000 0000 003D B823" + ] + }, + { + "File": { + "Name": "Scene 2, Room 1", + "Start": "0203F000", + "End": "02044FC0", + "RemapStart": null + }, + "Objects": [ + "0096", + "018B", + "012B", + "000E", + "0021", + "0026", + "00D5", + "00AC", + "00B7", + "0059", + "013A" + ], + "Actors": [ + "0015 FE7A F9EF F961 0000 0000 0000 0100", + "0015 FE19 FA2E F95B 0000 0000 0000 0200", + "0015 FDDB FA80 F953 0000 0000 0000 0300", + "0034 0092 FD3C F904 0000 0000 0000 FFFF", + "0034 FF7A FFB8 F9B2 0000 0000 0000 FFFF", + "00B6 FF54 FEAC F9EF 0000 238E 0000 01FF", + "00B6 FF17 FEB6 F955 0000 0000 0000 01FF", + "00B6 FF4F FEAC F8BE 0000 E4FA 0000 01FF", + "0015 FF27 FEBA F9AC 0000 0000 0000 2703", + "0015 FF32 FEB2 F8FB 0000 0000 0000 2803", + "01C6 FEF2 F9F0 F954 DBBC 6666 EE39 0000", + "01C6 0115 FF06 F8DC 0000 D1C7 0000 0000", + "00C8 0000 FCFD F959 0000 0000 0000 FF01", + "00E6 FED2 F9F0 F967 0000 0000 0000 0F03", + "00E6 FD9C FB2E F8D4 0000 0000 0000 1902", + "00C8 0078 0050 F9D1 0000 0000 0000 1D03", + "018C FF89 FB22 F965 0000 0000 0000 0000", + "0173 00D8 FF27 F8F7 0000 0005 0001 3F00", + "000A 00BF FB2F F907 0000 9111 0000 5042", + "0112 00D8 FF22 F8F7 0000 D1C7 0004 1904", + "015F 0155 FB2F F958 0005 0005 0005 15C6", + "0111 FD4F FB2F F8F8 0000 0000 0000 7208", + "0111 FD4B FB2F F9B2 0000 0000 0000 740C", + "011B 01E4 FEC0 F959 001E 000C 0000 3631", + "000A FD6C FB2F F952 0000 C000 000F B800", + "000A 0161 FF24 F98B 0000 0000 0004 8907", + "00DF 01E4 FEC0 F959 0000 C000 0000 0B80" + ] + }, + { + "File": { + "Name": "Scene 2, Room 2", + "Start": "02045000", + "End": "0204E240", + "RemapStart": null + }, + "Objects": [ + "0096", + "00A3", + "018B", + "012B", + "0021", + "0012", + "000E", + "0163", + "013A", + "0031", + "00AC", + "0024", + "015C", + "00D5" + ], + "Actors": [ + "0125 FF40 FEAC F377 0000 0000 0000 FF01", + "0125 015E FEAC F232 0000 0000 0000 FF01", + "0034 FFC3 FF60 F33D 0000 0000 0000 FFFF", + "0034 FEFB FF45 F406 0000 0000 0000 FFFF", + "00B6 0000 FE70 F17D 0000 0000 0000 00FF", + "01C6 00EB FF66 F555 0B61 749F 0000 0000", + "00A1 00D8 FEAC F400 0000 0000 0000 0202", + "0127 00F5 FF48 F518 0000 0000 0000 0006", + "0127 015E FEAC F233 0000 0000 0000 0008", + "0127 FF40 FEAC F375 0000 0000 0000 0009", + "0127 00DC FF4A F51A 0000 C93F 0000 0011", + "0127 0112 FF4D F51A 0000 BB06 0000 001A", + "0173 00F8 FF61 F51F 0000 0014 0001 3F00", + "0112 00F8 FF5B F52D 0000 0000 0004 1953" + ] + }, + { + "File": { + "Name": "Scene 2, Room 3", + "Start": "0204F000", + "End": "02056260", + "RemapStart": null + }, + "Objects": [ + "0096", + "00A3", + "018B", + "012B", + "0021", + "0012", + "000E", + "0163", + "013A", + "0031", + "00AC", + "0024", + "015C", + "00D5" + ], + "Actors": [ + "0125 0131 FB4A F267 0000 0000 0000 FF01", + "0125 00E7 FB49 F209 0000 0000 0000 FF01", + "0125 FFA5 FB4A F501 0000 0000 0000 FF01", + "0034 FFF6 FB8A F2FE 0000 0000 0000 FFFF", + "01C6 FE81 FC51 F3A9 0000 4444 0000 0000", + "01C6 FED8 FC8B F212 0000 02D8 0000 0000", + "00A1 00DE FBA7 F33A 0000 0000 0000 0203", + "00E6 002C FBA6 F1F4 0000 0000 0000 3C00", + "00E6 FFF1 FB4C F2FE 0000 0000 0000 3A02", + "015F FFF4 FA88 F307 0000 0000 0003 0EBF", + "002D 001A FBCE F268 0000 0000 0000 FFFF", + "000A 010E FCBF F233 0000 5E94 0003 8048", + "000A FF6B FD04 F4F0 0000 F27D 0007 8064", + "0112 FEDF FC84 F236 0000 0000 0004 1983", + "0112 FEE6 FC96 F22B 0000 0000 0004 1983", + "0112 FED2 FC98 F238 0000 0000 0004 1983", + "0112 FE97 FC4D F3AF 0000 0000 0004 1987", + "0112 FEA0 FC59 F3A5 0000 0000 0004 1987", + "0112 FE94 FC4B F39F 0000 0000 0004 1987", + "011B FDD0 FC09 F2F4 001E 000D 0000 382F", + "011B FDED FBA7 F51F 001E 000C 0000 3731", + "00DF FDED FC09 F51F 0000 6000 0000 0B80", + "00DF FDD0 FC09 F2F4 0000 4000 0000 0C81" + ] + }, + { + "File": { + "Name": "Scene 2, Room 4", + "Start": "02057000", + "End": "0205B100", + "RemapStart": null + }, + "Objects": [ + "0096", + "012B", + "011C", + "00D4", + "001B", + "00AC", + "011D", + "018B", + "00CB", + "00DC" + ], + "Actors": [ + "012D FA9B FFEF F7BD 0000 0000 0000 3DC1", + "012D FAC3 FFEF F7BD 0000 0000 0000 3DC1", + "012D FB2B FFAF F9CF 0000 4000 4000 3DC1", + "012D FB03 FFAF F9CE 4000 0000 0000 3DC1", + "0125 FBBF FFD8 FA2F 0000 0000 0000 FF01", + "00B6 FAB7 FFEC F934 0000 0000 0000 00FF", + "00B6 FBA7 FFD8 F951 0000 0000 0000 00FF", + "0025 FB33 0278 FA5A 0000 0000 0000 FFFF", + "01C6 FADC 0100 FB45 0000 80B6 0000 0000", + "01C6 FB17 FF94 F9F0 0000 0000 0000 0000", + "00E6 FCD3 004F F955 0000 0000 0000 1200", + "0110 FAC3 FFF4 F7BC 0000 0000 0000 FFFF", + "0110 FA9B FFF4 F7BD 0000 0000 0000 FFFF", + "0112 FADD 010F FB15 0000 0000 0004 19BD" + ] + }, + { + "File": { + "Name": "Scene 2, Room 5", + "Start": "0205C000", + "End": "02062090", + "RemapStart": null + }, + "Objects": [ + "0096", + "00D4", + "018B", + "011C", + "000E", + "012B", + "00DC", + "00CB", + "015C", + "0024" + ], + "Actors": [ + "012D 05AF FF60 FB7C 0000 0000 0000 3DC1", + "012D 05AF FF05 FB7C 0000 0000 0000 3EC1", + "0125 05C5 FE48 FAAA 0000 0000 0000 FF01", + "0125 069B FE48 F9D8 0000 0000 0000 FF01", + "00DD 0541 0183 FA58 0000 0000 0000 FFFF", + "00DD 066A 01E0 F96A 0000 0000 0000 FFFF", + "01C6 05B0 FF0E FB7C 0000 8000 0000 0000", + "01C6 076A FF65 F968 0000 C000 0000 0000", + "0095 0570 002A F973 5DDE 2222 0000 8302", + "0112 05B2 FF1E FB38 0000 0000 0004 193E", + "0112 0726 FF7A F968 0000 0000 0004 1968", + "0112 05AB FF78 FB2F 0000 0000 0004 1AFD", + "012A 05B0 FFC4 FB5C 0000 0000 0000 1403", + "0111 0519 FEDA F82B 0000 0000 0000 6212", + "000A 050D FF82 F876 0000 BF4A 0028 852A" + ] + }, + { + "File": { + "Name": "Scene 2, Room 6", + "Start": "02063000", + "End": "02067240", + "RemapStart": null + }, + "Objects": [ + "0096", + "00A3", + "015F", + "0012", + "0021", + "0056", + "0026", + "0090", + "00AD", + "012B", + "018B" + ], + "Actors": [ + "0063 FAA9 019B F646 0000 0000 0000 FFFF", + "01C6 F94F 00CF F2E7 0000 4000 0000 0000", + "00A1 FAB0 FC2C F2F2 0000 4000 0000 0004", + "00C8 FAB0 FBFF F2F1 0000 C000 0000 1F00", + "0125 FBC2 0050 F2EE 0000 0000 0000 FF01", + "0125 FAB0 0050 F1EA 0000 0000 0000 FF01", + "008B FAB0 FC4C F2F1 0000 4000 0000 1015", + "0112 F99F 00E1 F2E9 0000 0000 0004 1920", + "0173 FAB0 FC5E F2F1 0006 0003 0000 3F3A" + ] + }, + { + "File": { + "Name": "Scene 2, Room 7", + "Start": "02068000", + "End": "0206B4D0", + "RemapStart": null + }, + "Objects": [ + "0096", + "0022", + "00D5", + "0012", + "0056", + "0036", + "012B", + "0163", + "001B" + ], + "Actors": [ + "0025 0000 FEAC ED12 0000 0000 0000 FFFF", + "00A1 0006 FEAC EEFE 0000 8000 0000 0206", + "00E6 0001 FEAB EBC6 0000 0000 0000 0D00", + "0127 FFDB FEAC EBCB 0000 0000 0000 001C", + "0127 001F FEAC EBC7 0000 5BBC 0000 001C", + "0110 FD66 FEAC EDC1 0000 0000 0000 FFFF", + "0110 FE00 FEAC EE10 0000 0000 0000 FFFF", + "000F 033B FEAC EDB1 0000 C000 0000 1FD6", + "011B FCB8 FEAC EDB3 001E 000B 0000 3432", + "011B FD71 FEAC ECA5 001E 000B 0000 3532", + "00DF FD71 FEAC ECA5 0000 0000 0000 0A82", + "00DF FCB8 FEAC EDB3 0000 4000 0000 0A82" + ] + }, + { + "File": { + "Name": "Scene 2, Room 8", + "Start": "0206C000", + "End": "0206F840", + "RemapStart": null + }, + "Objects": [ + "0096", + "00A3", + "00D5", + "000E" + ], + "Actors": [ + "0187 FF8F FEAC E9DB 0000 0000 0000 2FFF", + "00DE 0001 0014 E957 0000 0000 0000 0B00" + ] + }, + { + "File": { + "Name": "Scene 2, Room 9", + "Start": "02070000", + "End": "02073C30", + "RemapStart": null + }, + "Objects": [ + "0096", + "00A3", + "00D5", + "000E" + ], + "Actors": [ + "0187 0607 FEAC ED23 0000 0000 0000 2BFF", + "00DE 0619 0014 EDB9 0000 C000 0000 0A02" + ] + }, + { + "File": { + "Name": "Scene 2, Room 10", + "Start": "02074000", + "End": "02077820", + "RemapStart": null + }, + "Objects": [ + "0096", + "00A3", + "00D5" + ], + "Actors": [ + "0187 F9EA 0021 EDC8 0000 0000 0000 33FF", + "00DE F9E6 0014 EDB5 0000 4000 0000 0C01" + ] + }, + { + "File": { + "Name": "Scene 2, Room 11", + "Start": "02078000", + "End": "0207B9F0", + "RemapStart": null + }, + "Objects": [ + "0096", + "00A3", + "000E", + "018B", + "00A8", + "0190", + "00D4", + "012B", + "011C", + "00CB", + "00DC", + "0090", + "00A4" + ], + "Actors": [ + "012D 03A5 012E E9DB 0000 0000 0000 25C1", + "012D 03A5 012E EA03 0000 0000 0000 25C1", + "012D 0182 012D E9DB 0000 0000 0000 27C1", + "012D 0182 012D EA02 0000 0000 0000 27C1", + "0125 028C FEAC E9C9 0000 0000 0000 FF01", + "00DD 03EB 00E0 E9F1 0000 C000 0000 FFFF", + "00DD 0144 00CF E9EC 0000 0000 0000 FFFF", + "01C6 014E FF36 E9F3 0000 5333 0000 0000", + "01C6 03DC FF17 E9DF 0000 CD83 0000 0000", + "005E 0316 FEAC EB04 0AAB 8000 0000 03C1", + "0187 0274 FFC4 EAA4 0000 0000 0000 07FF", + "01D1 03EB 006F E9EF 0000 0000 0000 80FF", + "01D1 03EB 00CA EA48 0000 0000 0000 80FF", + "01D1 0446 00CA E9EE 0000 0000 0000 80FF", + "01D1 03EA 00C9 E993 0000 0000 0000 80FF", + "01D1 013F 00CA E994 0000 0000 0000 80FF", + "01D1 00E6 00CA E9ED 0000 0000 0000 80FF", + "01D1 013F 00CA EA46 0000 0000 0000 80FF", + "01D1 013F 006C E9ED 0000 0000 0000 80FF", + "0112 03AD FF1B E9F2 0000 0000 0004 18E5", + "0112 03B2 FF21 E9FE 0000 0000 0004 18E5", + "0112 03B2 FF21 E9E5 0000 0000 0004 18E5", + "0112 017B FF38 E9E5 0000 0000 0004 19A7", + "0112 0178 FF43 E9EC 0000 0000 0004 19A7", + "0112 0179 FF44 E9DA 0000 0000 0004 19A7", + "000A 0297 FEAC E8D3 0000 8000 0000 70E9", + "0111 0264 FEC6 E8D4 0000 0000 0000 7A08", + "0112 028D FEAC E9C8 0000 0000 0003 1AFF", + "0112 028C FEAC E9C8 0000 0000 0003 1AFF", + "0112 028D FEAC E9C7 0000 0000 0003 1AFF", + "0111 02CE FEAC E8D7 0000 0000 0000 7E0B" + ] + }, + { + "File": { + "Name": "Scene 2, Room 12", + "Start": "0207C000", + "End": "0207FCE0", + "RemapStart": null + }, + "Objects": [ + "0096", + "00A3", + "0190", + "00A8", + "013A", + "012B", + "0024", + "015C", + "0163", + "0022", + "0012" + ], + "Actors": [ + "0095 FC89 FECB E8E8 0000 2000 0000 0000", + "0035 FDD9 FEAC E988 0000 0000 0000 FFFF", + "0035 FD02 FEAC E986 0000 0000 0000 FFFF", + "0035 FD6A FEAC EA4D 0000 0000 0000 FFFF", + "00E6 FD71 FEAB E9CC 0000 038E 0000 3D02", + "01D1 FE14 FF28 E9D0 0000 0000 0000 38FF", + "015F FD71 FDDB E9CD 0000 0000 0003 0F7F", + "0127 FE65 FF96 E9CE 0000 0000 0000 000E", + "0127 FC8B FEAC E8ED 0000 0000 0000 0010", + "002D FDEE FFC9 E92F 0000 0000 0000 FFFF", + "002D FCC6 FF58 EA37 0000 0000 0000 FFFF", + "0095 FE71 FFC5 E9C6 9E94 4EEF 0000 8304" + ] + }, + { + "File": { + "Name": "Scene 2, Room 13", + "Start": "02080000", + "End": "02082B80", + "RemapStart": null + }, + "Objects": [ + "0096", + "00A3", + "0026", + "000D", + "011C", + "0036", + "0024", + "015C" + ], + "Actors": [ + "012D FBEC FB0F F6E4 0000 1D28 0000 05C1", + "0013 FBE1 FBA7 F796 0000 0000 0000 8003", + "0013 FAEC FC32 F6AA 0000 3DDE 0000 8003", + "0013 FBBA FC33 F5B3 0000 1BBC 0000 8003", + "00E6 FB98 FB2E F62A 0000 0000 0000 3B02", + "018C FC25 FB4D F5D4 0000 E38E 0000 0000", + "018C FC99 FB75 F6F4 0000 A38E 0000 0000", + "0187 FC20 FB2F F6B6 0000 0000 0000 17FF", + "000F FB85 FBA7 F73D 0000 5DDE 0000 1FFE", + "000F FB83 FBA7 F73E 0000 DDDE 0000 1FFE", + "0095 FB43 FBEF F772 C000 DDDE 0000 8308" + ] + }, + { + "File": { + "Name": "Scene 2, Room 14", + "Start": "02083000", + "End": "020891D0", + "RemapStart": null + }, + "Objects": [ + "0096", + "000E", + "0026", + "001B", + "0190", + "00A8", + "012B", + "00D4", + "00CB", + "00DC", + "015C", + "0024", + "0090", + "0059", + "013A" + ], + "Actors": [ + "003A 0438 FAFD F72B 0000 8000 0000 000A", + "003A 039B FAF3 F6CD 0000 0000 0000 000A", + "0125 04CC FB57 F5A9 0000 0000 0000 FF01", + "00DD 04DE FAF3 F65A 0000 0000 0000 FFFF", + "0025 03A0 FB7F F370 0000 C7D2 0000 FFFF", + "00E6 04D8 FAF2 F6B1 0000 0000 0000 3902", + "00C8 044C FAFD F6B1 0000 0000 0000 3902", + "01D1 03AD FAF3 F5FC 0000 0000 0000 B8FF", + "000A 0508 FB57 F5B1 0000 0000 0000 5041", + "0095 03AC FAF3 F5E8 0000 0000 0000 8301", + "0111 02B9 FC73 F6F2 0000 0000 0000 6604", + "015F 044A FB36 F91C 0005 0005 0005 15C6", + "015F 024C FBCF F6AF 0005 0005 0002 15C6", + "000A 02BB FBCF F6B8 0000 C000 0000 10C6", + "0111 02BB FBE9 F673 0000 0000 0000 6808" + ] + }, + { + "File": { + "Name": "Scene 2, Room 15", + "Start": "0208A000", + "End": "0208C6E0", + "RemapStart": null + }, + "Objects": [ + "0096", + "00A3", + "0007", + "0012", + "0021", + "0056", + "0026", + "00AC" + ], + "Actors": [] + } + ] + }, + { + "File": { + "Name": "Scene 3", + "Start": "0208D000", + "End": "020A2F90", + "RemapStart": null + }, + "TActors": [ + "01FF 00FF 0009 0077 0167 003C 0000 003F", + "04FF 02FF 0009 0077 01D3 F62C 0000 003F", + "0BFF 05FF 002E FAA9 017F FA60 4000 007F", + "07FF 0FFF 002E 067F 020B F4C4 8000 0099", + "0BFF 08FF 0009 FA22 020B F8B8 8000 003F", + "14FF 0DFF 002E 0676 04CC F308 C000 02C0", + "0DFF 06FF 002E 01F3 033B F308 C000 0095", + "0CFF 06FF 002E FE83 033B F308 4000 0095", + "04FF 06FF 002E 0077 01D3 F43E 8000 007F", + "08FF 0AFF 002E FF87 0320 F506 4000 003F", + "07FF 0AFF 002E 0167 0320 F506 C000 003F", + "08FF 15FF 002E F995 020B F516 8000 007F", + "08FF 12FF 002E F92F 020B F802 C000 007F", + "03FF 10FF 002E 0645 01CF FA60 4000 007F", + "02FF 05FF 002E FD07 017F FA60 C000 007F", + "08FF 02FF 002E FD63 00F3 F74C 2000 00A5", + "07FF 02FF 002E 038B 00F3 F74C E0B6 00AA", + "03FF 02FF 0009 03E7 01CF FA60 C000 003F", + "07FF 09FF 0023 04F1 FFB3 F920 0000 00BF", + "08FF 09FF 0023 FBFA FFB2 F920 0000 00BF", + "02FF 11FF 0023 0077 002D F9E2 0000 009B", + "14FF 0FFF 0023 084C 032D F28B 0000 00BF", + "13FF 15FF 0023 F91F 02AB F308 8000 00BF", + "02FF 01FF 0009 0077 017F FDBC 0000 0086", + "10FF 0FFF 0009 07C7 0193 F8E4 8000 0083", + "13FF 0BFF 002E F91F 04CC F8E4 0000 02C2", + "13FF 0CFF 002E FA78 04CC F308 4000 02C1", + "0EFF 14FF 002E 07CF 04CC F8E4 8000 02C4", + "16FF 11FF 002E 0077 FCF5 F503 0000 0154" + ], + "Paths": [], + "Rooms": [ + { + "File": { + "Name": "Scene 3, Room 0", + "Start": "020A3000", + "End": "020B0B90", + "RemapStart": null + }, + "Objects": [ + "0073", + "0072", + "000E", + "00A4", + "005D", + "0024", + "015C" + ], + "Actors": [ + "0095 01C3 038D 0217 0000 C000 0000 0000", + "0095 01C3 027F 0236 0000 C000 0000 0000", + "0095 01C3 045F 026D 0000 C000 0000 0000", + "0095 01C3 0311 027B 0000 C000 0000 0000", + "0095 01C3 01ED 02A4 0000 C000 0000 0000", + "0037 0069 03FD 01F8 0000 671C 0000 0000", + "000A 018C 047F 0194 0000 4000 000D 8843", + "012A FF58 035C 0243 0000 505B 0000 0D00" + ] + }, + { + "File": { + "Name": "Scene 3, Room 1", + "Start": "020B1000", + "End": "020B6B70", + "RemapStart": null + }, + "Objects": [ + "0073", + "0072", + "000E", + "00A4", + "005D", + "0024", + "0190", + "00A8" + ], + "Actors": [ + "0037 0077 0209 FE85 0000 0000 0000 0000", + "0037 0077 01C6 FEFA 0000 0000 0000 0000", + "0037 0077 0201 FF75 0000 0000 0000 0000", + "0095 0048 0243 FDD3 0000 0000 0000 8402" + ] + }, + { + "File": { + "Name": "Scene 3, Room 2", + "Start": "020B7000", + "End": "020C6980", + "RemapStart": null + }, + "Objects": [ + "0073", + "0072", + "000E", + "00A4", + "005D", + "0024", + "0007", + "0039", + "00B7", + "015C", + "0190", + "00A8", + "0099" + ], + "Actors": [ + "0173 FFEA 0166 F957 0002 001D 0000 3F8C", + "0173 0106 0166 F959 0002 001F 0000 3F8C", + "0173 FFE9 0166 FA77 0002 001E 0000 3F8C", + "0173 0106 0166 FA77 0002 0020 0000 3F8C", + "0087 0077 00E9 F9E2 0000 0000 0000 001B", + "0105 FFEA 011D F958 0000 0000 0000 001C", + "0105 FFEA 011D FA78 0000 0000 0000 011D", + "0105 0107 011D F958 0000 0000 0000 021E", + "0105 0107 011D FA78 0000 0000 0000 031F", + "0111 02A3 0139 FC23 0000 9F4A 0000 400F", + "0111 FE53 0139 FC2B 0000 6000 0000 420F", + "0111 02D0 0139 FBF3 0000 9F4A 0000 4403", + "0111 FE23 0139 FBF6 0000 6000 0000 4603", + "0111 0276 0139 FC51 0000 9F4A 0000 4809", + "0111 FE80 0139 FC57 0000 6000 0000 4A09", + "012A FE66 0221 F852 0000 2000 0000 2502", + "012A 028A 0221 F852 0000 E000 0000 2A02", + "0173 FFE9 0166 F957 0002 005D 0000 2C8D", + "0173 FFE9 0166 FA73 0002 005E 0000 2D8D", + "0173 0108 0166 F957 0002 005F 0000 2E8D", + "0173 0106 0166 FA77 0002 0060 0000 2F8D" + ] + }, + { + "File": { + "Name": "Scene 3, Room 3", + "Start": "020C7000", + "End": "020CA9E0", + "RemapStart": null + }, + "Objects": [ + "0073", + "0072", + "000E", + "00A4", + "005D", + "0024" + ], + "Actors": [ + "0008 062F 0206 FA27 0000 C000 0000 83F0", + "0008 062F 0206 FA2F 0000 C000 0000 83F0", + "0008 062F 0206 FA91 0000 C000 0000 83F0", + "0008 062F 0206 FA99 0000 C000 0000 83F0" + ] + }, + { + "File": { + "Name": "Scene 3, Room 4", + "Start": "020CB000", + "End": "020CE2C0", + "RemapStart": null + }, + "Objects": [ + "0073", + "0072", + "000E", + "00A4", + "005D", + "0024", + "0190", + "00A8" + ], + "Actors": [ + "0173 0078 0208 F4C6 0000 0021 0001 3F05", + "01D1 0078 01D4 F484 0000 0000 0000 B820" + ] + }, + { + "File": { + "Name": "Scene 3, Room 5", + "Start": "020CF000", + "End": "020D25D0", + "RemapStart": null + }, + "Objects": [ + "0073", + "0072", + "000E", + "00A4", + "005D", + "0024", + "0032" + ], + "Actors": [ + "0008 FAC0 01B6 FA27 0000 4000 0000 83F0", + "0008 FAC0 01B6 FA2F 0000 4000 0000 83F0", + "0008 FAC0 01B6 FA91 0000 4000 0000 83F0", + "0008 FAC0 01B6 FA99 0000 4000 0000 83F0", + "0002 FC18 017F FA60 0000 4000 0000 FFFF", + "0187 FCC2 017F FA60 0000 0000 0000 4FFF" + ] + }, + { + "File": { + "Name": "Scene 3, Room 6", + "Start": "020D3000", + "End": "020DC430", + "RemapStart": null + }, + "Objects": [ + "0073", + "0072", + "000E", + "00A4", + "005D", + "0024", + "0032", + "0190", + "00A8", + "0183" + ], + "Actors": [ + "01AF 0000 01D3 F2F4 0000 0E39 0000 FF00", + "01AF 00FA 01D3 F2F4 0000 F1C7 0000 FF00", + "000A 0077 01D3 F290 0000 8000 0000 7840", + "000A 0077 033B F290 0000 8000 0015 B08C", + "0086 00D1 033B F308 0000 0000 0000 1500", + "01D1 0078 01D4 F3F8 0000 8000 0000 B820", + "0111 005A 01D3 F201 0000 0000 0000 6203", + "0111 008E 01D3 F201 0000 0000 0000 6412", + "0111 00CE 033B F1D1 0000 0000 0000 6603", + "0111 0020 033B F43C 0000 8000 0000 6803", + "0111 001E 033B F1D1 0000 0000 0000 6A03", + "0111 00CA 033B F43C 0000 8000 0000 6C03" + ] + }, + { + "File": { + "Name": "Scene 3, Room 7", + "Start": "020DD000", + "End": "020EFFE0", + "RemapStart": null + }, + "Objects": [ + "0073", + "0072", + "000E", + "00A4", + "005D", + "0024", + "0179", + "0036", + "0039", + "011C", + "00B7", + "015C", + "0190", + "00A8" + ], + "Actors": [ + "012D 021B 03DC F506 0000 4000 0000 FFC2", + "012D 03F7 0211 F6DE 0000 6000 0000 FFC2", + "0095 02C0 0389 F42F 0000 0000 0000 0000", + "0055 0604 0143 F5A0 0000 160B 0000 0000", + "0055 0446 00CB F5F1 0000 DF4A 0000 0001", + "0055 0464 00C4 F815 0000 25B0 0000 0001", + "0095 03FD 0212 F6D8 0000 6000 0000 8401", + "000A 05F0 0143 F545 0000 8000 0000 5841", + "000A 038D 0320 F3F3 0000 8000 0000 5845", + "000A 04B5 FF14 F920 0000 C000 0000 5849", + "01D1 0280 01EA F4A8 0000 0000 0000 2822", + "01D1 0280 0186 F588 0000 2000 0000 A823", + "01D1 06C5 017F F618 0000 0000 0000 3924", + "00E4 04F1 00AE F920 0000 0000 0000 0026", + "012A 04F3 0064 F8D0 0000 0000 0000 2602", + "01D1 06C5 0143 F5DC 0000 0000 0000 B927", + "01D1 06C5 01CF F596 0000 0000 0000 B928", + "01D1 0308 0186 F611 0000 2000 0000 2829" + ] + }, + { + "File": { + "Name": "Scene 3, Room 8", + "Start": "020F0000", + "End": "02107AB0", + "RemapStart": null + }, + "Objects": [ + "0073", + "0072", + "000E", + "00A4", + "005D", + "0024", + "0179", + "0036", + "0039", + "0007", + "00B7", + "015C" + ], + "Actors": [ + "000E FC5A 00BC F496 0000 293F 0000 FF00", + "000E FC0E 00BC F5A0 0000 1D28 0000 FF00", + "000E FACE 00BC F651 0000 3333 0000 FF00", + "0095 FECF 0301 F47E 0000 C000 0000 0000", + "0095 FECF 014D F49D 0000 C000 0000 0000", + "0095 FECF 026E F4BF 0000 C000 0000 0000", + "0037 FEB7 0370 F506 0000 C000 0000 0000", + "0095 FB6E 01A8 F9A7 0000 705B 0000 8404", + "000F FEC3 034D F4E3 438E C000 0000 0FE1", + "00E4 FBFD 00AE F920 0000 0000 0000 0026", + "0015 FB9C 01F8 F4D9 0000 0000 0000 2D03", + "0015 FB7B 01F8 F512 0000 0000 0000 2E03", + "0015 FB60 01F8 F548 0000 0000 0000 2F03" + ] + }, + { + "File": { + "Name": "Scene 3, Room 9", + "Start": "02108000", + "End": "02112160", + "RemapStart": null + }, + "Objects": [ + "0073", + "0072", + "000E", + "00A4", + "005D", + "0024", + "0007", + "0039", + "00B7" + ], + "Actors": [ + "0095 FBAD FF06 F894 0000 4000 0000 8408", + "000A 04B5 FF14 F920 0000 C000 0000 5849", + "00E4 0077 FEE6 F8E4 0000 0000 0000 0026", + "012A 04F3 0064 F8D0 0000 0000 0000 2602", + "0015 0073 FF14 F925 0000 0000 0000 3803", + "0015 000F FF14 F925 0000 0000 0000 3903", + "0015 00D7 FF14 F925 0000 0000 0000 3A03" + ] + }, + { + "File": { + "Name": "Scene 3, Room 10", + "Start": "02113000", + "End": "021183E0", + "RemapStart": null + }, + "Objects": [ + "0073", + "0072", + "000E", + "00A4", + "005D", + "0024", + "0179", + "0036", + "0039" + ], + "Actors": [ + "0037 0030 038D F501 0000 293F 0000 0001", + "005E 0078 0320 F57D 0000 8000 0000 2400", + "000F FFB4 0320 F505 0000 3555 0000 1FE1" + ] + }, + { + "File": { + "Name": "Scene 3, Room 11", + "Start": "02119000", + "End": "02123BE0", + "RemapStart": null + }, + "Objects": [ + "0073", + "0072", + "000E", + "00A4", + "005D", + "0024", + "0179", + "005C", + "006F", + "00B7", + "011C" + ], + "Actors": [ + "012D FA22 02AB F8F7 4000 0000 0000 FFC2", + "0069 FA16 04EF F946 0000 E9F5 0000 FFFF", + "0069 F944 04EF FACC 0000 F3E9 0000 FFFF", + "00FF F851 026F FB14 0000 4000 0000 0542", + "00FF F851 026F FC04 0000 4000 0000 0542", + "00FF F711 025B FC04 0000 0000 0000 0546", + "0139 F711 025B FC04 0000 0000 0000 0005", + "00FF F879 034B FB8C 0000 4000 0000 0702", + "00FF F8F1 034B FB8C 0000 4000 0000 0702", + "00FF F9B9 0337 FB8C 0000 0000 0000 0706", + "0139 F9B9 0337 FB8C 0000 0000 0000 0007", + "011B F781 026F FB16 0014 0029 0000 088F", + "012D F941 026F FACA 0000 8000 0000 0FC1", + "012D FA5C 03FF FB50 0000 8000 0000 0FC1", + "01B4 F9D7 02AB FAC4 0000 0000 0000 0F01", + "01B4 FA63 02E7 FAC4 0000 0000 0000 0F01", + "012A FA5C 03FF FB8B 0000 C000 0000 0F03", + "0095 FA74 017F FC22 0000 C000 0000 8410", + "01B4 FA22 028C F95B C000 0000 0000 1301", + "01B4 FA22 0228 F95B C000 0000 0000 1301", + "012A FA22 020B F933 0000 0000 0000 1313", + "0068 F91F 04FE F439 0000 0000 0000 7F13" + ] + }, + { + "File": { + "Name": "Scene 3, Room 12", + "Start": "02124000", + "End": "0212C3E0", + "RemapStart": null + }, + "Objects": [ + "0073", + "0072", + "000E", + "00A4", + "005D", + "0024", + "0179", + "005C", + "006F", + "0099" + ], + "Actors": [ + "0173 FE52 0371 F2B2 0002 001E 0000 3F94", + "0173 FE52 0371 F2B2 0002 005E 0000 0A95", + "000A FE36 033B F259 0000 4000 0000 182D", + "0093 FD3D 051C F2CC 0000 C000 0000 021D", + "0105 FE51 033B F2AE 0000 0000 0000 011D" + ] + }, + { + "File": { + "Name": "Scene 3, Room 13", + "Start": "0212D000", + "End": "02135AB0", + "RemapStart": null + }, + "Objects": [ + "0073", + "0072", + "000E", + "00A4", + "005D", + "0024", + "0070", + "0071", + "0099" + ], + "Actors": [ + "0173 0225 0371 F2B2 0002 001F 0000 3F94", + "0173 0225 0371 F2B2 0002 005F 0000 0B95", + "000A 023F 033B F256 0000 C000 0000 180F", + "0093 0339 051C F2CC 0000 4000 0000 031E", + "0105 0225 033B F2AE 0000 0000 0000 021E", + "0111 033E 033B F1C9 0000 0000 0000 4C03", + "0111 03AD 033B F1C8 0000 0000 0000 4E09", + "0111 0373 033B F1C8 0000 0000 0000 5009" + ] + }, + { + "File": { + "Name": "Scene 3, Room 14", + "Start": "02136000", + "End": "0213BB70", + "RemapStart": null + }, + "Objects": [ + "0073", + "0072", + "000E", + "00A4", + "005D", + "0024", + "0070", + "0071", + "0179" + ], + "Actors": [ + "00E3 07CF 0422 FAD6 0000 0000 0000 FF00", + "0173 05EF 0549 FAD6 0003 0019 0000 3F97", + "0068 07CF 04FE F439 0000 0000 0000 FF18", + "012A 05EF 0549 FAD6 0000 4000 0000 1892", + "01B4 07D0 04FE F90C 4000 0000 0000 3801", + "005E 07F5 04BF FAD6 0000 C000 0000 03F8", + "012A 07C8 04CC FAD6 0000 4000 0000 3820", + "0110 0908 0445 FC96 0000 0000 0000 3808", + "0110 093C 0445 FC97 0000 0000 0000 3908", + "0110 063F 04CC FAD6 0000 4000 0000 3A03" + ] + }, + { + "File": { + "Name": "Scene 3, Room 15", + "Start": "0213C000", + "End": "0213E6E0", + "RemapStart": null + }, + "Objects": [ + "0073", + "0072", + "000E", + "00A4", + "005D", + "0024" + ], + "Actors": [ + "0037 0728 02C6 F446 0000 8000 0000 0000", + "0037 0816 02C3 F44A 0000 8000 0000 0000", + "0037 0815 02C6 F537 0000 8000 0000 0000", + "0037 0725 02C6 F58B 0000 8000 0000 0000", + "0037 0866 02C3 F5DD 0000 8000 0000 0000", + "0037 077A 02C6 F6C3 0000 8000 0000 0000", + "0037 07CA 02C8 F768 0000 8000 0000 0000", + "0089 07C7 02AB F628 0000 8000 0000 FFFF", + "000A 0867 02F2 F628 0000 0000 000E 8926", + "011B 07C0 0193 F405 0032 002C 0014 4998", + "012A 0728 0193 F7B8 0000 0000 0000 0E00", + "012A 0817 0193 F769 0000 0000 0000 1900" + ] + }, + { + "File": { + "Name": "Scene 3, Room 16", + "Start": "0213F000", + "End": "02143FA0", + "RemapStart": null + }, + "Objects": [ + "0073", + "0072", + "000E", + "00A4", + "005D", + "0024", + "0099" + ], + "Actors": [ + "0173 06B8 020E FAC1 0002 0020 0000 3F94", + "0173 06B8 020E FAC1 0002 0060 0000 0C95", + "0093 07ED 0373 FA42 0000 4000 0000 011F", + "0093 0933 025B FA60 0000 C000 0000 041F", + "0105 06B5 01CF FAC4 0000 4000 0000 031F", + "0093 0829 0373 FA06 0000 4000 0000 001F", + "0111 066F 01CF FA07 0000 0000 0000 5603", + "0111 066D 01CF F9CC 0000 0000 0000 5809" + ] + }, + { + "File": { + "Name": "Scene 3, Room 17", + "Start": "02144000", + "End": "0214D0F0", + "RemapStart": null + }, + "Objects": [ + "0073", + "0072", + "000E", + "00A4", + "005D", + "0024", + "015C", + "00B0" + ], + "Actors": [ + "0037 FEA6 FD30 FBB1 0000 6000 0000 0000", + "0037 FEDE FD30 FB75 0000 6000 0000 0001", + "0088 0077 FCF5 F9E2 0000 8000 0000 FFFF", + "000A FE8C FCF5 F7F0 0000 A000 0000 592B", + "00E3 0077 FCF5 FBFB 0000 8000 0000 1001", + "012A 031D FCF5 F9E2 0000 C000 0000 1000", + "00E3 0077 FCF5 F7C9 0000 0000 0000 1101", + "012A 0077 FDC6 FC0F 0000 0000 0000 1102", + "012A 0266 FD80 F9E2 8000 C000 0000 1203", + "00E3 0291 FCF5 F9E2 0000 C000 0000 1201", + "0087 0077 FCF5 F9E2 0000 0000 0000 001B", + "0111 FE33 FCF5 FBB9 0000 6000 0000 7003", + "0111 FEA1 FCF5 FC2D 0000 6000 0000 7203", + "0111 FE7D FCF5 FC06 0000 6000 0000 740B", + "0111 FE58 FCF5 FBDF 0000 6000 0000 7608" + ] + }, + { + "File": { + "Name": "Scene 3, Room 18", + "Start": "0214E000", + "End": "0214F330", + "RemapStart": null + }, + "Objects": [ + "0073", + "0072", + "000E", + "00A4", + "005D", + "0024", + "000B", + "0098" + ], + "Actors": [ + "0090 F83D 01F7 F8CE 0000 53E9 0000 7F00", + "000A F7F4 01F7 F804 0000 C000 0000 7842" + ] + }, + { + "File": { + "Name": "Scene 3, Room 19", + "Start": "02150000", + "End": "02150500", + "RemapStart": null + }, + "Objects": [ + "0073", + "0072", + "000E", + "00A4", + "005D", + "0024", + "0179", + "005C", + "006F", + "000B" + ], + "Actors": [ + "0011 F91D 05BB F30A 0000 0000 0000 0001", + "0173 F9F0 0595 F274 0000 0014 0000 3F92", + "0068 F91F 04FE F439 0000 0000 0000 3F13", + "011B F913 04B6 F3C9 0000 0000 0000 1691" + ] + }, + { + "File": { + "Name": "Scene 3, Room 20", + "Start": "02151000", + "End": "02152300", + "RemapStart": null + }, + "Objects": [ + "0073", + "0072", + "000E", + "00A4", + "005D", + "0024", + "0070", + "0071", + "000B" + ], + "Actors": [ + "0069 07CE 04FC F639 0000 8000 0000 01FC", + "0069 07D1 04F5 F78B 0000 8000 0000 01FC", + "0011 07CE 05C0 F302 0000 C0B6 0000 0001", + "011B 071A 04CC F309 0000 0000 0000 1791", + "0068 07CF 04FE F439 0000 0000 0000 BF18" + ] + }, + { + "File": { + "Name": "Scene 3, Room 21", + "Start": "02153000", + "End": "02154770", + "RemapStart": null + }, + "Objects": [ + "0073", + "0072", + "000E", + "00A4", + "005D", + "0024", + "0179", + "005C", + "006F", + "000B" + ], + "Actors": [ + "008E F996 020B F48A 0000 8000 0000 0000" + ] + }, + { + "File": { + "Name": "Scene 3, Room 22", + "Start": "02155000", + "End": "02156DE0", + "RemapStart": null + }, + "Objects": [ + "0073", + "0072", + "000E", + "00A4", + "005D", + "0024", + "015C", + "00B0" + ], + "Actors": [] + } + ] + }, + { + "File": { + "Name": "Scene 4", + "Start": "02157000", + "End": "021717D0", + "RemapStart": null + }, + "TActors": [ + "05FF 04FF 0023 0820 0992 FD80 4000 00BF", + "0AFF 02FF 0023 FC04 07C6 0000 0000 00BF", + "06FF 01FF 0023 0618 076C 0000 8000 007F", + "08FF 06FF 0023 0618 0ED8 0000 8000 007F", + "0DFF 0BFF 0023 F90C 0ED8 0000 8000 007F", + "09FF 10FF 002E 0154 0B7C 00BE 4000 009F", + "04FF 15FF 0009 0BFE 080C 0000 4000 003F", + "0AFF 09FF 0009 FDD0 0B7C 00BE 4000 003F", + "0AFF 0BFF 002E F90C 0AF0 FEB6 0000 0099", + "0BFF 0AFF 0009 F90C 0AF0 014A 0000 003F", + "0DFF 0CFF 0009 F6BE 1130 0014 C000 0098", + "0CFF 18FF 0009 F576 0FA0 009F C000 003F", + "13FF 01FF 002E 0618 00F0 FA10 0000 00A9", + "14FF 0100 0009 0618 0064 F9E8 0000 003F", + "15FF 01FF 0009 0A8C 00C8 0000 C000 009E", + "16FF 01FF 0009 0618 00C8 062C 8000 003F", + "02FF 00FF 002E FE5C 00C8 0000 4000 00A8", + "00FF 11FF 002E FEE8 0000 008C 8000 007F", + "17FF 05FF 002E 06F4 0AF0 FA24 0000 00BE", + "10FF 06FF 002E 062C 0AF0 014A 8000 00BF", + "10FF 06FF 002E 04CE 0AF0 003C 4000 00BF", + "06FF 05FF 002E 060E 0AF0 FEB6 8000 00BF", + "05FF 07FF 0009 062C 0FA0 FDB2 0000 003F", + "08FF 07FF 002E 062C 1130 FDB2 8000 00B5", + "0BFF 0AFF 0009 FA56 0BA4 0000 4000 003F", + "11FF 03FF 002E FEE8 0000 FC7C 8000 007F", + "0AFF 18FF 002E F593 0B18 FF69 E000 007F", + "05FF 04FF 0009 0A14 0AF0 0000 C000 003F", + "10FF 05FF 0009 05B4 0B7C FD8A 4000 009A", + "03FF 12FF 002E 0000 0000 FB28 4000 007F", + "0AFF 0EFF 002E FB5C 0E60 FF3B A0B6 01FD", + "0EFF 0DFF 0009 F6EE 1054 FD03 E000 009B", + "12FF 0FFF 002E 00EE 0000 FC94 0000 007F", + "19FF 0AFF 0009 FBDE 0AF0 FC76 E000 003F", + "0FFF 00FF 0009 0118 0000 008C 0000 0097", + "1AFF 02FF 002E F9E8 00C8 0000 4000 0154", + "01FF 00FF 0009 01A4 00C8 0000 C000 003F" + ], + "Paths": [ + { + "Points": [ + [ + -310, + 0, + -318 + ], + [ + -309, + 0, + -127 + ] + ] + }, + { + "Points": [ + [ + 1879, + 100, + -1883 + ], + [ + 1685, + 100, + -1881 + ] + ] + }, + { + "Points": [ + [ + 1536, + 200, + 2035 + ], + [ + 1536, + 200, + 1860 + ] + ] + }, + { + "Points": [ + [ + 1462, + 2800, + -1817 + ], + [ + 1658, + 2800, + -1815 + ] + ] + } + ], + "Rooms": [ + { + "File": { + "Name": "Scene 4, Room 0", + "Start": "02172000", + "End": "021792F0", + "RemapStart": null + }, + "Objects": [ + "002C", + "000E", + "00A4", + "018E" + ], + "Actors": [ + "0040 0172 0140 0000 0000 C000 0000 0601", + "0040 0172 0104 0000 0000 C000 0000 0C00", + "0040 0172 00C8 0000 0000 C000 0000 0D00", + "000C 0000 0004 0220 0000 0000 0000 00FF", + "0008 006A 00F6 FF6F 0000 0000 0000 0284", + "005E FF7C 00A0 014C 0000 0000 0000 1128", + "005E FF9A 00C7 FF6F 0000 0000 0000 1128", + "005E 0003 00DB FF74 0000 0000 0000 1128", + "005E 0083 00A0 0149 0000 0000 0000 1128", + "0111 FE9B 0000 03BD 0000 0000 0000 560F", + "0111 0164 0001 03BF 0000 0000 0000 580F" + ] + }, + { + "File": { + "Name": "Scene 4, Room 1", + "Start": "0217A000", + "End": "02186930", + "RemapStart": null + }, + "Objects": [ + "002C", + "011C", + "00A4", + "000E", + "0024", + "015C" + ], + "Actors": [ + "012D 049C 0000 0086 0000 0000 0000 2AC1", + "012D 05C5 00F0 FAAA 0000 0000 0000 2AC1", + "012D 06A8 0000 FF2A 0000 0000 0000 2AC1", + "012D 06A9 0000 0399 0000 0000 0000 2AC1", + "008D 04E2 0000 0492 0000 0000 0000 00FF", + "008D 07FA 0000 0492 0000 8000 0000 00FF", + "0046 066B 0000 0431 0000 4000 0000 0001", + "0046 079A 0000 023B 0000 0000 0000 0001", + "0046 07AE 0000 FE67 0000 4000 0000 0001", + "00CF 0618 00C8 05DC 0000 8000 0000 0701", + "0043 073A 0000 FD1A 0000 0000 0000 FF01", + "0046 0514 0000 035B 0000 0000 0000 0000", + "0046 061E 0000 FC5F 0000 C000 0000 0000", + "0046 079A 0000 037B 0000 C000 0000 0000", + "005E 05EF 00F0 FA37 0000 0000 0000 10A9", + "005E 0864 016E FCBA 0000 0000 0000 10A9", + "005E 0631 00C8 0514 0000 0000 0000 106A", + "0111 066E 0068 FB14 0000 0000 0000 4009", + "0111 08B2 0190 FCD7 0000 0000 0000 420F", + "0111 0662 00C8 05C3 0000 0000 0000 440F" + ] + }, + { + "File": { + "Name": "Scene 4, Room 2", + "Start": "02187000", + "End": "02197030", + "RemapStart": null + }, + "Objects": [ + "002C", + "000E", + "00A4", + "0170", + "009D", + "00B0", + "011C", + "0190", + "00A8", + "0024", + "015C" + ], + "Actors": [ + "003B FC6A 0000 FFD5 0000 0000 0000 0006", + "012D FB35 008C FE16 0000 0000 0000 FFC0", + "0098 FA71 00C8 0000 0000 4000 0000 FFFF", + "0041 FC04 0BB8 0000 0000 4000 0000 000E", + "006F FAD5 00C8 0329 0000 8000 0000 0800", + "005E FAD8 00C8 0184 0000 4000 0000 10C8", + "005E FB35 00C8 FE16 0000 0000 0000 10C8", + "005E FB97 016D FD78 0000 0000 0000 10C8", + "0111 FA6E 00C8 FD39 0000 0000 0000 5A0E", + "0111 FA6F 00C8 FD6C 0000 0000 0000 5C0A", + "01A0 FA4F 00C8 FDEA 0000 4000 0000 FFFF", + "01A0 FA4F 00C8 FE5F 0000 4000 0000 FFFF", + "01A0 FB45 012C FCF9 0000 0000 0000 FFFF", + "01A0 FB4B 00C8 02C5 0000 4000 0000 FFFF", + "01A0 FB4B 00C8 0301 0000 4000 0000 FFFF", + "01A0 FB96 0190 FD72 0000 0000 0000 FFFF", + "000A FAF9 00C8 03C5 0000 4000 0000 5847" + ] + }, + { + "File": { + "Name": "Scene 4, Room 3", + "Start": "02198000", + "End": "0219A4D0", + "RemapStart": null + }, + "Objects": [ + "002C", + "00A4", + "000E", + "009E" + ], + "Actors": [ + "0099 FE97 0050 FAEC 0000 0000 0000 FFFF", + "0049 FE97 0050 FAEC 0000 0000 0000 0FFF", + "000A FE97 0050 FAEC 0000 0000 0000 11A0" + ] + }, + { + "File": { + "Name": "Scene 4, Room 4", + "Start": "0219B000", + "End": "021A28F0", + "RemapStart": null + }, + "Objects": [ + "002C", + "000E", + "011C", + "00A4", + "001B", + "0170", + "0190", + "00A8", + "0024" + ], + "Actors": [ + "012D 0893 08D4 016A 0000 0000 0000 2BC1", + "012D 098A 0B6E 0004 4000 0000 0000 FFC2", + "012A 088E 0820 FFC7 0000 C000 0000 0401", + "0025 092F 09D8 FFE6 0000 0000 0000 FFFF", + "006F 0950 0820 0000 0000 4000 0000 0401", + "006F 0A10 0820 0000 0000 C000 0000 0401", + "0112 09D8 0802 0156 0000 0000 0002 18BF", + "0112 09D8 0802 0156 0000 0000 0002 193F", + "0112 09D8 0802 0156 0000 0000 0002 19BF", + "005E 0923 08E8 02BF 0000 0000 0000 106B", + "01A0 07EE 0820 0037 0000 0000 0000 FFFF", + "01A0 082A 0820 0037 0000 0000 0000 FFFF", + "01A0 0857 0820 FFC2 0000 4000 0000 FFFF", + "01A0 0866 0820 0037 0000 0000 0000 FFFF", + "01A0 088D 0820 FFC8 0000 0000 0000 FFFF", + "01A0 08C9 0820 FFC8 0000 0000 0000 FFFF", + "000A 09AA 0820 FFCE 0000 8000 0000 080B" + ] + }, + { + "File": { + "Name": "Scene 4, Room 5", + "Start": "021A3000", + "End": "021AD2E0", + "RemapStart": null + }, + "Objects": [ + "002C", + "000E", + "011C", + "00A4", + "001B", + "0170", + "0190", + "00A8", + "0024" + ], + "Actors": [ + "012D 0617 0C80 FEA6 0000 0000 0000 2CC1", + "012D 07E4 0B7C FE22 0000 0000 0000 2CC1", + "012D 085C 0AB5 FB64 0000 0000 0000 2CC1", + "012D 08D4 0AB4 FB64 0000 0000 0000 2CC1", + "012D 098F 0B7C FE9F 0000 0000 0000 2CC1", + "012D 098F 0B7C 0154 0000 0000 0000 2CC1", + "0095 08E5 0B38 FB9B 0000 C000 0000 0000", + "012A 0895 0AF0 FBA2 0000 0000 0000 2C01", + "0025 06F1 0AF0 0231 0000 0000 0000 FFFF", + "0025 076C 0AF0 FCBD 0000 0000 0000 FFFF", + "0025 0885 0AF0 FFB9 0000 0000 0000 FFFF", + "0025 08D7 0AF0 0207 0000 0000 0000 FFFF", + "004E 062C 0C76 FCEA 0000 0000 0000 FFFF", + "00CF 0820 0B7C FD80 0000 4000 0000 0000", + "00CF 0708 0AF0 FB50 0000 0000 0000 2D02", + "00CF 07A8 0AF0 FB50 0000 0000 0000 2D02", + "00CF 0898 0AF0 FBF0 0000 0000 0000 2E02", + "006F 0887 0AF0 042D 0000 8000 0000 0302", + "006F 06E4 0B7C 04B9 0000 8000 0000 0A02", + "0112 0AC5 0B2E 0001 0000 0000 0006 1ABF", + "01D1 0761 0BC9 FE2A 0000 0000 0000 10FF", + "012A 084B 0AE6 0481 0000 0000 0000 0303", + "012A 06E2 0B7C 04CC 0000 0000 0000 0A03", + "012A 073F 0AF0 FA55 0000 0000 0000 3E20", + "01A0 06AE 0B7C 0538 0000 0000 0000 FFFF", + "01A0 06AE 0B7C 0508 0000 0000 0000 FFFF", + "01A0 0719 0B7C 0532 0000 4000 0000 FFFF", + "01A0 084C 0AF0 0482 0000 4000 0000 FFFF", + "01A0 08B6 0AF0 04AB 0000 0000 0000 FFFF", + "01A0 08B6 0AF0 047B 0000 0000 0000 FFFF", + "000A 08B4 0AF0 04A6 0000 4000 0000 5CC3", + "000A 0712 0B7C 0532 0000 4000 0000 5CE6", + "0110 06A3 0BB2 0534 0000 0000 0000 FFFF", + "0110 06A3 0BB2 050A 0000 0000 0000 FFFF" + ] + }, + { + "File": { + "Name": "Scene 4, Room 6", + "Start": "021AE000", + "End": "021B4F90", + "RemapStart": null + }, + "Objects": [ + "002C", + "011C", + "00A4", + "000E", + "0024", + "015C" + ], + "Actors": [ + "012D 060D 0BA0 FED0 0000 0000 0000 FFC2", + "0111 06DC 0AF0 FF65 0000 0000 0000 7212", + "0111 071B 0AF0 FFAE 0000 0000 0000 7409", + "0111 06FD 0AF0 FF86 0000 0000 0000 760B" + ] + }, + { + "File": { + "Name": "Scene 4, Room 7", + "Start": "021B5000", + "End": "021B8A50", + "RemapStart": null + }, + "Objects": [ + "002C", + "0025", + "011C" + ], + "Actors": [ + "012D 05B4 1098 FCA7 0000 0000 0000 FFC2", + "012D 062A 1250 FD3A 4000 0000 0000 FFC2", + "0038 053E 0FA0 FD5D 0000 0000 0000 FFFF", + "0038 05BE 1054 FD68 0000 8000 0000 FFFF", + "0112 0594 0FE8 FD39 0000 0000 0006 18BF", + "0112 0594 0FE8 FD39 0000 0000 0006 1AFF", + "0112 05B2 1038 FE8A 0000 0000 0006 18B5", + "0112 05B2 1038 FE8A 0000 0000 0006 1AF5", + "0173 05B1 103D FE8B 0000 0036 0001 3F00" + ] + }, + { + "File": { + "Name": "Scene 4, Room 8", + "Start": "021B9000", + "End": "021C2AE0", + "RemapStart": null + }, + "Objects": [ + "002C", + "011C", + "00A4", + "000E", + "0024", + "015C" + ], + "Actors": [ + "012D 05D4 1248 FD38 0000 0000 0000 3DC1", + "012D 073C 1248 FEC8 0000 2000 0000 3DC1", + "012D 05C9 122C 014F EE39 0000 F8E4 FF40", + "012A 07D3 1248 FE25 0000 2000 0000 3D01", + "0049 0792 1248 FE77 0000 0000 0000 1378", + "00FF 0792 1248 FE75 0000 2000 0000 FF00", + "0095 0792 1248 FE76 FF4A 2000 0000 8504", + "012A 04C5 1130 FDB1 0000 0000 0000 3800" + ] + }, + { + "File": { + "Name": "Scene 4, Room 9", + "Start": "021C3000", + "End": "021CB770", + "RemapStart": null + }, + "Objects": [ + "002C", + "018E" + ], + "Actors": [ + "0008 FEC9 0BAE 0077 0000 0000 0000 03F4", + "0008 FEC9 0BAE 0105 0000 8000 0000 03F4", + "0008 0058 0BAE 0078 0000 0000 0000 03F4", + "0008 0059 0BAE 0106 0000 8000 0000 03F4" + ] + }, + { + "File": { + "Name": "Scene 4, Room 10", + "Start": "021CC000", + "End": "021E4420", + "RemapStart": null + }, + "Objects": [ + "002C", + "000E", + "00A4", + "0170", + "009D", + "00B0", + "011C", + "0190", + "00A8", + "0024", + "015C" + ], + "Actors": [ + "0041 FB3C 0E74 0000 0000 0000 0000 0110", + "0041 FC04 0BB8 0000 0000 4000 0000 000E", + "000C F8D5 0AF0 FD65 00B6 49F5 0000 00FF", + "000C F85A 0AF0 FB9D 0000 4000 0000 00FF", + "000C F8F8 0AF0 FCE3 FF4A 1DDE 0000 00FF", + "000C F770 0AF0 0210 FF4A 6000 0000 00FF", + "000C F7D7 0AF0 FCBD 0000 2000 0000 00FF", + "000C F83B 0AF0 FDDA 0000 3555 0000 00FF", + "000C FBF1 0AF0 FD85 0000 6000 0000 00FF", + "000C F9C0 0AF0 FDC2 0000 2000 0000 00FF", + "000C F892 0AF0 02A8 0000 0000 0000 00FF", + "000C F897 0AF0 01B8 0000 4000 0000 00FF", + "000C F897 0AF0 03E8 0000 0000 0000 00FF", + "000C F8E5 0AF0 02FB 0000 4000 0000 00FF", + "000C F8E6 0AF0 0399 0000 4000 0000 00FF", + "000C F835 0AF0 FC39 0000 2AAB 0000 00FF", + "000C F932 0AF0 02A8 0000 0000 0000 00FF", + "000C F984 0AF0 0392 0000 4000 0000 00FF", + "000C F987 0AF0 FE48 0000 4000 0000 00FF", + "000C F987 0AF0 01B8 0000 4000 0000 00FF", + "000C F987 0AF0 0258 0000 4000 0000 00FF", + "000C F98A 0AF0 0445 0000 4000 0000 00FF", + "000C F955 0AF0 FCE1 0000 DF4A 0000 00FF", + "000C FA23 0AF0 FEC3 0000 2000 0000 00FF", + "000C FA31 0AF0 FD4E 0000 2000 0000 00FF", + "000C FA38 0AF0 0129 0000 6000 0000 00FF", + "000C FA97 0AF0 FE59 0000 2000 0000 00FF", + "000C FAB2 0AF0 FC5F 0000 5555 0000 00FF", + "000C F769 0AF0 FD2F 0000 2000 0000 00FF", + "000C FAC5 0AF0 0227 0000 2000 0000 00FF", + "000C FB0C 0AF0 FDF1 0000 1777 0000 00FF", + "000C FB36 0AF0 0227 0000 6000 0000 00FF", + "000C FB86 0AF0 FD8A 0000 2000 0000 00FF", + "000C FB9B 0AF0 0343 FF4A 6000 0000 00FF", + "000C FCDA 0AF0 FDFE 0000 2000 0000 00FF", + "000C FC68 0AF0 FDFB 0000 6000 0000 00FF", + "000C F895 0AF0 FDA2 0000 F777 0000 00FF", + "000C F7D8 0AF0 FE12 0000 76C1 0000 00FF", + "000C F9B3 0AF0 FD53 0000 DF4A 0000 00FF", + "000C F757 0AF0 FDB0 0000 599A 0000 00FF", + "008D F702 0B18 FDFD 0000 6000 0000 0039", + "0095 FAEC 0EB8 004A 4000 6000 0000 8502", + "0112 F640 0BF7 FEB7 0000 0000 0006 1AFF", + "01D1 FCE6 0AF0 0003 0000 0000 0000 9837", + "01D6 FAC5 0B91 FF15 0000 0000 0000 1836", + "01D6 FC9E 0AF0 FD9A 0000 2000 0000 9836", + "0173 FCE8 0AF0 0004 0003 0000 0000 3FA5", + "0111 F757 0B18 FF5D 0000 0000 0000 4604", + "0111 F59F 0B18 FDB1 0000 0000 0000 4803", + "0111 F8C7 0AF0 FBA6 0000 0000 0000 4A03", + "0111 F7C2 0AF0 FD7A 0000 0000 0000 4C04", + "0111 F6F1 0AF0 0346 0000 0000 0000 4E12", + "0111 F713 0AF0 0323 0000 0000 0000 500B", + "012A F74F 0AF0 FC3A 0000 2000 0000 3900" + ] + }, + { + "File": { + "Name": "Scene 4, Room 11", + "Start": "021E5000", + "End": "021E87E0", + "RemapStart": null + }, + "Objects": [ + "002C", + "00A4", + "000E", + "011C", + "0024", + "015C", + "0154" + ], + "Actors": [ + "012D F82E 0B69 0062 0000 4000 0000 FFC0", + "012D F9E6 0B68 0066 0000 C000 0000 FFC0", + "012A F84A 0BA4 FF85 0000 4000 0000 1901", + "000C F976 0BA4 0000 0000 C000 0000 00FF", + "000C F976 0BA4 FF74 0000 C000 0000 00FF", + "000C F976 0BA4 FEE8 0000 C000 0000 00FF", + "000C F976 0BA4 008C 0000 C000 0000 00FF", + "000C F976 0BA4 0118 0000 C000 0000 00FF", + "008D F89C 0B54 0001 0000 C000 0000 00FF", + "00CF F9E6 0AF0 FFFD 0000 C000 0000 0B02", + "0095 FA35 0B1C FFFE C000 4000 0000 8508" + ] + }, + { + "File": { + "Name": "Scene 4, Room 12", + "Start": "021E9000", + "End": "021EBB70", + "RemapStart": null + }, + "Objects": [ + "002C", + "0025", + "005D", + "000D", + "0085", + "00A4", + "005F" + ], + "Actors": [ + "0112 F64E 1035 0099 0000 0000 0006 1AFF" + ] + }, + { + "File": { + "Name": "Scene 4, Room 13", + "Start": "021EC000", + "End": "021F8B90", + "RemapStart": null + }, + "Objects": [ + "002C", + "00A4", + "000E", + "011C", + "0024", + "015C", + "0154" + ], + "Actors": [ + "012D F688 11E4 FFCF 0000 0000 0000 3CC1", + "012D F70D 1130 FF02 0000 A000 0000 3CC1", + "01C9 F8F6 120C 0237 0000 638E 0009 18FF", + "0041 F6DB 1144 FED4 0000 E000 0000 0211", + "0049 F77C 1248 017C 0000 4000 0000 117A", + "0008 F704 1293 017C 0000 4000 0000 03F5", + "0008 F77C 1293 0104 0000 4000 0000 03F5", + "0008 F77C 1293 01F4 0000 4000 0000 03F5", + "0008 F7F4 1293 017C 0000 4000 0000 03F5", + "012A F6AA 1130 FF00 0000 0000 0000 3C03", + "012A FA34 1130 012C 0000 2000 0000 3A00", + "000A F77C 1248 017C 0000 E000 0000 5845" + ] + }, + { + "File": { + "Name": "Scene 4, Room 14", + "Start": "021F9000", + "End": "021FB200", + "RemapStart": null + }, + "Objects": [ + "002C", + "00A4", + "000E", + "0032" + ], + "Actors": [ + "0071 F8A4 1068 FC84 0000 A000 0000 0F00", + "0112 FAC9 0F5A FEA8 0000 0000 0006 1AFD", + "0002 F81B 1054 FC05 0000 0000 0000 FFFF", + "0002 F9A7 1018 FD8D 0000 0000 0000 0003", + "0173 FAC8 0F5F FEA9 0000 003E 0001 3F00" + ] + }, + { + "File": { + "Name": "Scene 4, Room 15", + "Start": "021FC000", + "End": "021FD190", + "RemapStart": null + }, + "Objects": [ + "002C", + "0032", + "000D" + ], + "Actors": [ + "0013 00CA 0040 FFFA 0000 4000 0000 0003", + "0183 0064 0000 FDD9 0000 0000 0000 FF40", + "0002 0066 0000 FDAA 0000 0000 0000 FFFF", + "0002 011B 0000 FEC0 0000 0000 0000 FFFF" + ] + }, + { + "File": { + "Name": "Scene 4, Room 16", + "Start": "021FE000", + "End": "022099E0", + "RemapStart": null + }, + "Objects": [ + "002C", + "00A4", + "000E", + "011C", + "0170" + ], + "Actors": [ + "0112 020B 0B2F 00F6 0000 0000 0006 1AFF", + "005E 04C4 0D2A FFCE E38E 4000 0000 03FC", + "005E 035E 0B59 FF52 0000 0000 0000 03FC", + "005E 025C 0B59 FF3E 0000 0000 0000 03FC", + "005E 04C4 0CDA FFCE E38E 4000 0000 105F", + "0111 05D5 0AF0 0182 0000 0000 0000 5209", + "0111 05A5 0AF0 01BD 0000 0000 0000 5409", + "012A 04AF 0AF0 FF64 0000 2000 0000 3C20", + "01A0 04BA 0B7C 00A3 0000 E000 0000 FFFF", + "01A0 03E7 0ADC FE6E 0000 4000 0000 FFFF", + "01A0 0581 0AF0 FB68 0000 0000 0000 FFFF", + "01A0 0180 0B7C 015F 0000 4000 0000 FFFF", + "01A0 057F 0B18 FD0C 0000 4000 0000 FFFF", + "0110 04F3 0B7C 00C8 0000 2000 0000 FFFF", + "0110 04BA 0BB3 00A3 0000 1E94 0000 FFFF", + "0110 02AD 0ADC 00B7 0000 0000 0000 FFFF", + "0110 057D 0AF0 FC31 0000 0000 0000 FFFF", + "0110 01CC 0B7C 0172 0000 0000 0000 FFFF" + ] + }, + { + "File": { + "Name": "Scene 4, Room 17", + "Start": "0220A000", + "End": "02213170", + "RemapStart": null + }, + "Objects": [ + "002C", + "00C9", + "000E", + "00D4", + "00F2" + ], + "Actors": [ + "011B FEE8 0000 FDBC 0000 0000 0000 12A9", + "012A FEE8 0000 FDBC 0000 0000 0000 0901", + "00DD FEE6 0082 FF70 0000 0000 0000 FFFF", + "006F FEE8 0000 FE20 0000 8000 0000 0900", + "006F FEED 0000 FEE8 0000 0000 0000 0900", + "01AE FECA 0000 FEC2 0000 0000 0000 2403", + "0008 FE9D 0032 FDBC 0000 0000 0000 03F4", + "0008 FE9D 0032 FF4C 0000 0000 0000 03F4", + "0008 FF33 0032 FDBC 0000 0000 0000 03F4", + "0008 FF33 0032 FF4C 0000 0000 0000 03F4", + "000A FF24 0000 FF24 0000 4000 0000 7542", + "000A FF10 0000 FE8E 0000 0000 0000 082C" + ] + }, + { + "File": { + "Name": "Scene 4, Room 18", + "Start": "02214000", + "End": "02217C00", + "RemapStart": null + }, + "Objects": [ + "002C", + "005F", + "0106", + "016C" + ], + "Actors": [ + "0113 0152 0014 FA54 0000 0000 0000 FF01", + "006B 00FA FFF8 FAF0 0000 0000 0000 FFFF", + "006B 01AE FFF8 FAF0 0000 0000 0000 FFFF", + "006B 0154 FFF8 FB40 0000 0000 0000 0007", + "006B 01AE FFF8 FB90 0000 0000 0000 000D", + "006B 00FA FFF8 FB90 0000 0000 0000 0011", + "0169 0151 0014 FA3A 0000 C000 0000 0001", + "0183 0153 0014 F9E5 0000 0000 0000 FF40", + "0111 00BB 0014 FA57 0000 0000 0000 5E12", + "0111 00BC 0014 FA16 0000 0000 0000 6004", + "0111 01E7 0014 FA56 0000 0000 0000 6212", + "0111 01E6 0014 FA15 0000 0000 0000 6404", + "0111 0026 0000 FB65 0000 0000 0000 6604", + "0111 002A 0000 FAEE 0000 0000 0000 6804", + "0111 0208 0000 FC51 0000 0000 0000 6A12", + "0111 0023 0000 FC4E 0000 0000 0000 6C12" + ] + }, + { + "File": { + "Name": "Scene 4, Room 19", + "Start": "02218000", + "End": "0221C230", + "RemapStart": null + }, + "Objects": [ + "002C", + "00A4", + "005F", + "000E", + "011C" + ], + "Actors": [ + "006B 0442 00E8 F8DA 0000 0000 0000 FFFF", + "006B 0442 00E8 F98E 0000 0000 0000 0003", + "006B 0492 00E8 F934 0000 0000 0000 0007", + "006B 04E2 00E8 F8DA 0000 0000 0000 0009", + "006B 04E2 00E8 F98E 0000 0000 0000 000D", + "006B 0532 00E8 F934 0000 0000 0000 0011", + "006B 0582 00E8 F8DA 0000 0000 0000 0015", + "006B 0582 00E8 F98E 0000 0000 0000 0019", + "008D 03C6 00A0 F933 0000 4000 0000 00FF", + "0112 032E 0138 F931 0000 0000 0006 1AFE", + "0112 0330 0136 F933 0000 0000 0001 1AFE", + "005E 04E8 00F0 F935 0000 0000 0000 2400", + "005E 036E 0104 F95D 0000 0000 0000 2400", + "0111 034D 0104 F9C9 0000 0000 0000 6E12", + "0111 0385 0104 F9C7 0000 0000 0000 700F", + "000A 0358 0104 F8D8 0000 C000 0000 27E4" + ] + }, + { + "File": { + "Name": "Scene 4, Room 20", + "Start": "0221D000", + "End": "02223D10", + "RemapStart": null + }, + "Objects": [ + "002C", + "000E", + "00A4", + "00C9", + "0024", + "015C" + ], + "Actors": [ + "012A 06F5 0064 F8BE 0000 C000 0000 0101", + "006F 0730 0064 F8C4 0000 C000 0000 0100", + "0095 07E7 0098 F8B8 0000 C000 0000 8501", + "01AE 0757 0064 F8A5 0000 C000 0000 0423", + "0008 06CC 0098 F871 0000 C000 0000 03F5", + "0008 06CC 0098 F907 0000 C000 0000 03F5" + ] + }, + { + "File": { + "Name": "Scene 4, Room 21", + "Start": "02224000", + "End": "0222C480", + "RemapStart": null + }, + "Objects": [ + "002C", + "00A4", + "00B7" + ], + "Actors": [ + "0043 0CEE 0078 0000 0000 0000 0000 2F00", + "0049 0CEE 0078 0000 0000 0000 0000 3FFF", + "0015 0D94 0280 FEB5 0000 0000 0000 2F03", + "0015 0CEB 01B8 00B4 0000 0000 0000 3003", + "0015 0DAE 0280 0140 0000 4000 0000 3403", + "005E 0CEB 01B8 FF57 0000 0000 0000 2400" + ] + }, + { + "File": { + "Name": "Scene 4, Room 22", + "Start": "0222D000", + "End": "02233AF0", + "RemapStart": null + }, + "Objects": [ + "002C", + "000E", + "00A4", + "00C9", + "00D4" + ], + "Actors": [ + "006F 0616 00C8 07D0 0000 8000 0000 0200", + "01AE 0600 00C8 07F3 0000 8000 0000 0843", + "0008 0663 00FA 076C 0000 8000 0000 03F5", + "005E 05C9 00C4 076D 0000 0000 0000 1042", + "000A 0640 00C8 0852 0000 4000 0000 5841" + ] + }, + { + "File": { + "Name": "Scene 4, Room 23", + "Start": "02234000", + "End": "0223AD20", + "RemapStart": null + }, + "Objects": [ + "002C", + "0025", + "005D", + "000D", + "0085", + "00A4", + "005F", + "000E", + "00C9" + ], + "Actors": [ + "006F 05DC 0AF0 F900 0000 4000 0000 0500", + "01AE 05B6 0AF0 F8E7 0000 4000 0000 1463", + "0008 0640 0B24 F8AD 0000 4000 0000 03F5", + "0008 0640 0B24 F943 0000 4000 0000 03F5", + "012A 0640 0AF0 F8F8 0000 4000 0000 0500", + "000A 0550 0AF0 F8C6 0000 8000 0000 5848" + ] + }, + { + "File": { + "Name": "Scene 4, Room 24", + "Start": "0223B000", + "End": "02240540", + "RemapStart": null + }, + "Objects": [ + "002C", + "009E", + "00AA" + ], + "Actors": [ + "0099 F490 0B68 008B 0000 0000 0000 FFFF", + "0047 F490 0B18 008B 0000 4000 0000 FFFF", + "0049 F490 0B68 008B 0000 4000 0000 0FFF", + "0015 F48F 0B18 0089 0000 0000 0000 1C11" + ] + }, + { + "File": { + "Name": "Scene 4, Room 25", + "Start": "02241000", + "End": "02247AE0", + "RemapStart": null + }, + "Objects": [ + "002C", + "0024", + "015C", + "001B" + ], + "Actors": [ + "0025 FCC8 0AF0 FB8A 0000 E000 0000 FFFF", + "0095 FD8E 0B36 FAC6 0000 E000 0000 8510", + "0008 FC8E 0B23 FB61 0000 2000 0000 03F5", + "0008 FCF3 0B27 FBC8 0000 A000 0000 03F5" + ] + }, + { + "File": { + "Name": "Scene 4, Room 26", + "Start": "02248000", + "End": "0224E8A0", + "RemapStart": null + }, + "Objects": [ + "002C", + "000E", + "00A4", + "0170", + "009D", + "00B0", + "011C", + "0190", + "00A8", + "0024", + "015C" + ], + "Actors": [] + } + ] + }, + { + "File": { + "Name": "Scene 5", + "Start": "0224F000", + "End": "02264C30", + "RemapStart": null + }, + "TActors": [ + "00FF 11FF 0023 0294 0000 0000 0000 01BF", + "04FF 00FF 0023 0294 01CC FE98 0000 01BF", + "00FF 14FF 0023 0294 030C 0000 0000 01BF", + "00FF 03FF 0023 FE98 0000 026C C000 01BF", + "14FF 00FF 0023 0000 01CC 02BC C000 01BF", + "02FF 01FF 0023 FF4C FE0C 00A0 8000 01BF", + "15FF 08FF 0023 F9E8 0104 F6FA 0000 01BF", + "09FF 00FF 0023 FB8C FEFC FE52 0000 01BF", + "05FF 00FF 0009 FCB8 030C FF4C 4000 0095", + "0CFF 00FF 002E FF4C 0000 F902 0000 003F", + "05FF 06FF 002E F510 02F8 FF4C C000 007F", + "0CFF 0EFF 002E FF4C 0000 F39E 8000 0068", + "0EFF 0FFF 002E FD58 0078 F1AA C000 01E6", + "13FF 11FF 002E 0492 030C 00B4 C000 01F7", + "01FF 00FF 002E FF4C 0050 0014 0000 003F", + "01FF 00FF 002E FF4C 01CC FE84 8000 003F", + "0BFF 00FF 0009 FF4C 0334 FB28 0000 003F", + "0AFF 00FF 002E FCB8 01CC FF4C 4000 00BB", + "06FF 0DFF 002E F3D0 0424 F984 8000 007F", + "07FF 0DFF 002E F3D0 0424 F18C 0000 007F", + "09FF 08FF 002E FB8C 003C F93E 8000 009B", + "0CFF 10FF 002E FB00 006C F57E 8000 007F", + "0FFF 0CFF 0009 FC90 0078 F57E 0000 0083", + "12FF 11FF 002E 0492 0000 00B4 C000 00BE", + "0AFF 00FF 002E FCB8 035C 0122 4000 00BF", + "16FF 0BFF 002E FF4C 0406 F7F4 0000 0154", + "07FF 15FF 0023 F3D0 0334 EF84 0000 00BF" + ], + "Paths": [ + { + "Points": [ + [ + -2561, + 621, + -186 + ], + [ + -2058, + 121, + -204 + ], + [ + -1797, + 114, + -186 + ], + [ + -1307, + 725, + -186 + ] + ] + }, + { + "Points": [ + [ + -1554, + 428, + -180 + ], + [ + -1784, + 145, + -180 + ], + [ + -1554, + 428, + -180 + ] + ] + } + ], + "Rooms": [ + { + "File": { + "Name": "Scene 5, Room 0", + "Start": "02265000", + "End": "0227AC30", + "RemapStart": null + }, + "Objects": [ + "0059", + "00A4", + "000E", + "011C", + "0190", + "00A8" + ], + "Actors": [ + "012D FF4D 0087 FBBA 0000 8000 0000 FFC2", + "012D FDA2 03A6 0165 0000 8000 0000 FFC2", + "012D FDFF 01B7 FF49 0000 C000 0000 FFC2", + "012D 0099 02F7 FF46 0000 4000 0000 FFC2", + "012D 0183 02F7 FF4D 0000 C000 0000 FFC2", + "012D FBE2 00BB FF24 4000 0000 0000 FFC2", + "0064 FCF4 030C FF4C 0000 0000 0000 1FFF", + "0064 FF50 0334 FBE4 0000 0000 0000 3FFF", + "0065 FF4C 02FD FF4C 0000 0000 0000 FF00", + "0185 FD4E 03A0 0156 0000 8000 0000 857F", + "012D FF9C 0000 01CD 0000 0000 0000 0EC1", + "012D FEFB 0000 FC68 0000 0000 0000 0EC1", + "01BB FF4D 0000 0204 0000 8000 0000 0FCE", + "01BB FF4D FF4C FBC4 0000 0000 0000 0FCE", + "01BB FCA2 003C FF49 0000 4000 0000 0FCE", + "012A FC65 003C FF4C 0000 0000 0000 0E00", + "0064 FF4C 030C 0064 0000 0000 0000 0FD9", + "012E FD4E 035C 0156 0000 8000 0000 1C9E", + "012D 003C 0000 FF4A 0000 0000 0000 1FC1", + "01BB FF4D 01CC 01E1 0000 8000 0000 00F9", + "012A FF27 01CC 019F 0000 0000 0000 3900", + "01BB 01E3 030C FF4D 0000 C000 0000 00FA", + "012A 0206 030C FF71 0000 0000 0000 3A00", + "012A FE2C 01CC FF49 0000 0000 0000 3B20" + ] + }, + { + "File": { + "Name": "Scene 5, Room 1", + "Start": "0227B000", + "End": "022851D0", + "RemapStart": null + }, + "Objects": [ + "0059", + "00A4", + "000E", + "011C", + "0190", + "00A8", + "0170" + ], + "Actors": [ + "0064 FF4C 030C FFC4 0000 0000 0000 2FFF", + "0065 FF4C 02FD FF4C 0000 0000 0000 FF00", + "0185 FED4 01B0 FFF9 0000 8000 0000 857F", + "01A0 FF2E 02BC FEB0 0000 0000 0000 FFFF", + "01A0 FF6A 02BB FEB0 0000 0000 0000 FFFF", + "01D6 FF4B 0325 FF4D 0000 0000 0000 1106", + "01D6 FF4B 03D4 FF4D 0000 0000 0000 9106", + "005E FE8E 03CF FE8E 2000 2000 0000 110A", + "005E 000A 03CF FE8E 2000 E000 0000 110A", + "005E FE8E 03CF 000A 2000 6000 0000 110A", + "005E 000A 03CF 000A 2000 A000 0000 110A", + "01BB FF4D FFBF FF9E 4000 0000 0000 1FCA", + "012E FED4 017C FFF9 0000 8000 0000 1C9D" + ] + }, + { + "File": { + "Name": "Scene 5, Room 2", + "Start": "02286000", + "End": "0228BC90", + "RemapStart": null + }, + "Objects": [ + "0059", + "00A4", + "000E", + "011C", + "0170", + "011D", + "00E5" + ], + "Actors": [ + "012D 0206 FFCB 0257 4000 0000 0000 FFC2", + "00EC 01AF FEBD 00FB 0000 0000 0000 0000", + "012C 01A2 FE48 013D 4000 0000 0000 FFFC", + "012C 00B3 FE48 013E 0000 C000 4000 FFFC", + "012C 0101 FE48 01E0 0000 0000 4000 FFFC", + "012C 0012 FE07 00F0 0000 8000 4000 FFFC", + "012C 0101 FE48 0168 0000 0000 4000 FFFC", + "012C 003B FE48 013E 0000 C000 4000 FFFC", + "012C 0036 FDF4 00F0 0000 8000 4000 FFFC", + "01A0 0019 FE0C 0246 0000 4000 0000 FFFF", + "01A0 0019 FE0C 020A 0000 4000 0000 FFFF", + "01A0 005B FE0C 027C 0000 0000 0000 FFFF", + "01A0 0066 FE0C 00CC 0000 0000 0000 FFFF", + "01A0 0097 FE0C 027C 0000 0000 0000 FFFF", + "01A0 001F FE0C 027C 0000 0000 0000 FFFF", + "01A0 00A2 FE0C 00CC 0000 0000 0000 FFFF", + "01A0 00D7 FE0C 016E 0000 4000 0000 FFFF", + "01A0 00D7 FE0C 01AA 0000 4000 0000 FFFF", + "01A0 01C7 FE0C 016D 0000 4000 0000 FFFF", + "01A0 01C7 FE0C 01A9 0000 4000 0000 FFFF", + "01A0 00DE FE0C 00CC 0000 0000 0000 FFFF", + "01A0 00D7 FE0C 01E6 0000 4000 0000 FFFF", + "01A0 012B FE0C 01E5 0000 4000 0000 FFFF", + "000A 0294 FF92 0258 0000 4000 0023 8846", + "0112 02A4 FF5D 0257 0000 0000 0006 18A3", + "012A 00DC FDFD 00C9 0000 0000 0000 3903", + "01BB 016A FE95 00F5 C000 C000 0000 1FF9", + "012A 0011 FDFD 00C9 0000 0000 0000 3A03", + "01BB 01AC FE95 0293 C000 0000 0000 1FFA" + ] + }, + { + "File": { + "Name": "Scene 5, Room 3", + "Start": "0228C000", + "End": "022927C0", + "RemapStart": null + }, + "Objects": [ + "0059", + "00A4", + "0024", + "011C", + "0170", + "0154", + "015C", + "0032" + ], + "Actors": [ + "012D FBB6 0000 035C 0000 0000 0000 FFC0", + "012D FE27 0064 035A 0000 C000 0000 FFC2", + "012D FAE5 00C6 035D 0000 4000 0000 FFC2", + "0112 F6F5 018B 035E 0000 0000 0007 1AFF", + "0065 003C 02FD 032A 0000 0000 0000 FF00", + "0002 F819 012C 02FD 0000 0000 0000 0003", + "0002 F819 012C 03C6 0000 0000 0000 0003", + "01A0 F9DD 0000 02E8 0000 0000 0000 FFFF", + "01A0 F9DD 0000 03CF 0000 0000 0000 FFFF", + "01A0 F9DD 0000 0318 0000 0000 0000 FFFF", + "01A0 FA19 0000 03CF 0000 0000 0000 FFFF", + "01A0 FC21 0000 03D0 0000 0000 0000 FFFF", + "01A0 FC1E 0000 02E8 0000 0000 0000 FFFF", + "01A0 F72C 0140 02E8 0000 0000 0000 FFFF", + "01A0 F768 0140 02E7 0000 0000 0000 FFFF", + "01A0 F779 0140 03D1 0000 0000 0000 FFFF", + "01C9 F8DE 012C 0363 0000 4000 0005 18CB", + "0095 F752 0208 035F 8000 0000 0000 8610", + "0065 F95C 007D 032A 0000 0000 0000 1A02", + "0111 F6F6 0140 0302 0000 4000 0000 4204", + "0111 F6F6 0140 0328 0000 4000 0000 4804", + "005E FC4F 01AD 035C 0000 0000 2000 10E7", + "005E FC4F 0173 0379 0000 0000 2000 10E7", + "005E FC4F 0173 033A 0000 0000 2000 10E7", + "01BB F7AA 0140 035B 0000 4000 0000 1FE7", + "0111 F6F7 0140 03B0 0000 4000 0000 5209", + "0111 F6F7 0140 0389 0000 4000 0000 6A09" + ] + }, + { + "File": { + "Name": "Scene 5, Room 4", + "Start": "02293000", + "End": "02299020", + "RemapStart": null + }, + "Objects": [ + "0059", + "00A4", + "000E", + "011C", + "0170" + ], + "Actors": [ + "005E 0483 0320 FCC7 0000 0000 0000 2400", + "0065 0514 02FD FF4C 0000 4000 0000 FF00", + "01A0 04B5 0320 FBF4 0000 0000 0000 FFFF", + "01A0 04F1 0320 FBF4 0000 0000 0000 FFFF", + "01A0 055E 0320 FBF4 0000 0000 0000 FFFF", + "01A0 0600 0320 FC66 0000 4000 0000 FFFF", + "01A0 0600 0320 FCCB 0000 4000 0000 FFFF", + "01A0 0600 0320 FD38 0000 4000 0000 FFFF", + "01A0 059A 0320 FBF4 0000 0000 0000 FFFF", + "0110 0504 0320 FD93 0000 0000 0000 FFFF", + "0110 0571 0320 FD93 0000 0000 0000 FFFF", + "0110 053D 0320 FD93 0000 0000 0000 FFFF", + "0110 05BE 0320 FD92 0000 0000 0000 FFFF", + "0111 04C6 0320 FD97 0000 0000 0000 4003", + "0111 0462 0320 FD97 0000 0000 0000 4E03", + "0111 0494 0320 FD97 0000 0000 0000 5003" + ] + }, + { + "File": { + "Name": "Scene 5, Room 5", + "Start": "0229A000", + "End": "022A4640", + "RemapStart": null + }, + "Objects": [ + "0059", + "013B", + "013A", + "011C", + "00B5", + "00E5", + "0016", + "0012", + "0026", + "000D", + "0024", + "015C" + ], + "Actors": [ + "003B F87A 00DD 005E 0000 0000 0000 0000", + "012D FB2F 03B1 FF4C 4000 4000 0000 FFC2", + "0112 F5F8 0335 FE9E 0000 0000 0006 183F", + "0112 F5F3 0344 FE95 0000 0000 0006 193F", + "0112 F5F5 0339 FE9B 0000 0000 0006 1ABF", + "0173 F5F4 033A FFFE 0006 003E 001E 3F00", + "0064 F9EE 01A9 FF4C 0000 C000 0000 7180", + "012D F5FF 0259 FF4C 0000 0000 0000 3DC1", + "012D F5FF 01F5 FF4C 0000 0000 0000 3DC1", + "0112 F5F5 0336 0009 FF4A 0000 0006 1AFD", + "0112 F5F4 032D FFFE 0000 0000 0006 1AFD", + "0112 F5F2 033D FFF4 0000 0000 0006 1AFD", + "012D F701 00F4 FED2 0000 0000 0000 3EC1", + "012D F768 008B FE7B 0000 0000 0000 3EC1", + "012D F779 007B 001E 0000 0000 0000 3EC1", + "012D F6E0 0114 001A 0000 0000 0000 3EC1", + "012D F79F 0053 FF37 0000 0000 0000 3EC1", + "012D F69B 0158 FF8C 0000 0000 0000 3EC1", + "012A FB24 03E3 FF4C 0000 0000 4000 3E03" + ] + }, + { + "File": { + "Name": "Scene 5, Room 6", + "Start": "022A5000", + "End": "022B0300", + "RemapStart": null + }, + "Objects": [ + "0059", + "0125", + "011C", + "0032" + ], + "Actors": [ + "012D F502 0328 FF0A 0000 C000 0000 FFC2", + "0183 F42D 0424 FA20 0000 0000 0000 FF40", + "0002 F3D6 0230 FE82 0000 416C 0000 FFFF", + "0002 F375 0230 FE39 0000 416C 0000 FFFF", + "0002 F373 0230 FE9D 0000 416C 0000 FFFF", + "0183 F369 0424 FA23 0000 0000 0000 FF41", + "0183 F3A4 02F8 FDE4 0000 0000 0000 FF40", + "0111 F38C 0424 F9A4 0000 0000 0000 560E", + "0111 F410 0424 F9A6 0000 0000 0000 580E", + "0111 F254 0320 FD11 0000 0000 0000 5A0C", + "0111 F254 0320 FD52 0000 0000 0000 5C12", + "0111 F254 0320 FCD6 0000 0000 0000 6012", + "0064 F3E4 02AD FCBE 0000 C000 0000 5FC3", + "0064 F2CA 02AD FF4C 0000 4000 0000 5FC3", + "0064 F39B 0389 FC25 0000 0000 0000 5FC3", + "0187 F3D3 03FC FC11 0000 0000 0000 0FFF", + "0065 F3A6 0251 FDE4 0000 0000 0000 3203", + "0064 F1DC 02D5 FDE6 0000 0000 0000 5FF2" + ] + }, + { + "File": { + "Name": "Scene 5, Room 7", + "Start": "022B1000", + "End": "022B6560", + "RemapStart": null + }, + "Objects": [ + "0059", + "0125", + "013B", + "013A", + "00B5", + "00E5", + "0016", + "0012", + "0026", + "011C", + "000E", + "0090", + "0190", + "00A8" + ], + "Actors": [ + "0112 F3D2 048B EF25 0000 0000 0006 18A5", + "01BB F3D0 041F EFAC C000 0000 0000 0FE5", + "0111 F400 0438 F048 0000 0000 0000 640A", + "0111 F39F 0438 F049 0000 0000 0000 6612" + ] + }, + { + "File": { + "Name": "Scene 5, Room 8", + "Start": "022B7000", + "End": "022C4D80", + "RemapStart": null + }, + "Objects": [ + "0059", + "0170", + "011C", + "011D", + "00A4" + ], + "Actors": [ + "012D F802 00E3 F863 4000 0000 0000 FFC2", + "012D F983 FFCB F861 4000 0000 0000 FFC2", + "012D FB52 00CF F8C4 4000 0000 0000 FFC2", + "012D F9E8 00EE F793 0000 0000 0000 FFC2", + "0112 FA3A FF7C F8DD 0000 0000 0006 18BF", + "0112 F75D 0073 F864 0000 0000 0006 18BF", + "0112 FA39 FF7C F8C5 0000 0000 0006 1AFF", + "00D4 FA74 0032 F862 0000 0000 0000 00FF", + "01A0 F76C 003C F846 0000 4000 0000 FFFF", + "01A0 F76C 003C F882 0000 4000 0000 FFFF", + "01A0 FB7F 003C F87A 0000 0000 0000 FFFF", + "01A0 FBBC 003C F87A 0000 0000 0000 FFFF", + "01A0 F833 FF24 F84C 0000 4000 0000 FFFF", + "01A0 F833 FF24 F888 0000 4000 0000 FFFF", + "01A0 F90E FF24 F82A 0000 0000 0000 FFFF", + "01A0 F94A FF24 F82A 0000 0000 0000 FFFF", + "0110 F75E 006C F839 0000 0000 0000 FFFF", + "0110 F75E 006C F889 0000 0000 0000 FFFF", + "0110 F75E 006C F860 0000 0000 0000 FFFF", + "005E F8B6 0088 F805 1555 E000 0000 109B", + "005E F8B5 0088 F8C0 1555 A000 0000 109B" + ] + }, + { + "File": { + "Name": "Scene 5, Room 9", + "Start": "022C5000", + "End": "022CD0B0", + "RemapStart": null + }, + "Objects": [ + "0059", + "013A", + "011C", + "00A4", + "000E", + "0170" + ], + "Actors": [ + "012D FB8C 0027 FA68 0000 0000 0000 FFC2", + "01A0 FBD3 FEFC FA86 0000 0000 0000 FFFF", + "01A0 FB17 003C F9E1 0000 0000 0000 FFFF", + "01A0 FAEF FEFC FAEC 0000 4000 0000 FFFF", + "01A0 FC27 FEFC FACB 0000 4000 0000 FFFF", + "01A0 FAF7 FEFC FB4B 0000 0000 0000 FFFF", + "000A FB8B 003C FC05 0000 0000 0000 27E5", + "005E FB4F 003C FC03 0000 0000 0000 1093", + "005E FBC8 003C FC03 0000 0000 0000 1093", + "01BB FB8C 003C FBB4 0000 8000 0000 0FD3", + "01BB FB14 003C FBB4 0000 8000 0000 0FD3", + "01BB FC04 003C FBB4 0000 8000 0000 0FD3", + "01BB FB14 00B4 FBB4 0000 8000 0000 0FD3", + "01BB FB8C 00B4 FBB4 0000 8000 0000 0FD3", + "01BB FC04 00B4 FBB4 0000 8000 0000 0FD3", + "0111 FBF7 003C F9DF 0000 0000 0000 680E", + "012A FAE5 003C FA82 0000 0000 0000 3E03", + "015F FB8C FEDE FB0F 0000 0000 0000 0FBF" + ] + }, + { + "File": { + "Name": "Scene 5, Room 10", + "Start": "022CE000", + "End": "022D4070", + "RemapStart": null + }, + "Objects": [ + "0059", + "0170", + "011C", + "000E", + "0024", + "015C", + "001B" + ], + "Actors": [ + "0025 FC00 043C 0079 0000 0000 0000 FFFF", + "0112 FC02 0219 010D 0000 0000 0006 1B3F", + "0065 FC0E 02FD 001E 0000 0000 0000 FF00", + "01A0 FBB1 01CC FEC5 0000 0000 0000 FFFF", + "01A0 FB82 01CC FF73 0000 0000 0000 FFFF", + "01A0 FC4F 01CC FEC5 0000 0000 0000 FFFF", + "01A0 FB7B 01CC FF23 0000 4000 0000 FFFF", + "01A0 FB83 01CC 00AD 0000 0000 0000 FFFF", + "01A0 FB82 035C 0038 0000 0000 0000 FFFF", + "01A0 FC8C 035C 0041 0000 4000 0000 FFFF", + "01A0 FC84 01CC FFA5 0000 0000 0000 FFFF", + "0110 FB72 01CC 0061 0000 0000 0000 FFFF", + "0110 FC20 035C 017E 0000 0000 0000 FFFF", + "0095 FB7E 035C 003A 0000 4000 0000 8604", + "012D FC07 035C 0018 0000 0000 0000 24C1", + "012D FBFD 0190 00CB 0000 0000 0000 24C1", + "012A FC85 01B4 FFA7 0000 0000 0000 2403", + "0111 FC23 01CC 00FF 0000 0000 0000 7003", + "0111 FBFE 01CC 0101 0000 0000 0000 7203", + "0111 FBDA 01CC 0100 0000 0000 0000 7403" + ] + }, + { + "File": { + "Name": "Scene 5, Room 11", + "Start": "022D5000", + "End": "022D9A20", + "RemapStart": null + }, + "Objects": [ + "0059", + "013B", + "013A", + "011C", + "00B5", + "00E5", + "0016", + "0012", + "0026", + "00B0", + "0090", + "0085" + ], + "Actors": [ + "0112 FF99 0360 FB0F 0000 0000 0006 18BF", + "0112 FEFE 035F FB10 0000 0000 0006 1AFF", + "0080 FFA3 039C F97D 0000 C000 ED83 0F10", + "0080 FEE8 03DC F8FD 0000 C000 ED83 0F10", + "0080 FEF2 035B F9FD 0000 4000 127D 0F10", + "012D FEE7 0406 F81C 0000 0000 0000 3EC1", + "012D FFAE 0406 F81C 0000 0000 0000 3EC1", + "012D FEE8 0334 FB00 0000 0000 0000 3EC1", + "012D FFB0 0334 FB00 0000 0000 0000 3EC1", + "012A FF4E 04FB F7E3 4000 0000 0000 3E03" + ] + }, + { + "File": { + "Name": "Scene 5, Room 12", + "Start": "022DA000", + "End": "022E0E30", + "RemapStart": null + }, + "Objects": [ + "0059", + "013B", + "011C", + "0154", + "00A4", + "0170", + "0024", + "015C" + ], + "Actors": [ + "012D FF4A 00CF F60A 4000 0000 0000 FFC2", + "012D FC1A 00F7 F740 4000 0000 0000 FFC2", + "012D FAFF 00EB F5F0 4000 0000 0000 FFC2", + "0160 FE0C FF60 F4CA 0000 0000 0000 0000", + "0160 008C FF60 F74A 0000 0000 0000 0000", + "01BB FE98 0064 F470 8000 0000 0000 0FFF", + "01BB FF10 0064 F470 8000 0000 0000 0FFF", + "01BB FF88 0064 F470 8000 0000 0000 0FFF", + "01BB 0000 0064 F470 8000 0000 0000 0FFF", + "01A0 FE7A 0000 F3CA 0000 0000 0000 FFFF", + "01A0 FED1 0000 F3CA 0000 0000 0000 FFFF", + "01A0 FFA9 0000 F3CA 0000 0000 0000 FFFF", + "01A0 FFF9 0000 F3CA 0000 0000 0000 FFFF", + "01A0 FE8D 0000 F7E3 0000 0000 0000 FFFF", + "01A0 FFF5 0000 F7E5 0000 0000 0000 FFFF", + "01A0 007E FF60 F64B 0000 0000 0000 FFFF", + "01A0 FF89 FF60 F64F 0000 0000 0000 FFFF", + "01A0 FF05 FF60 F555 0000 0000 0000 FFFF", + "01A0 000B FF60 F54F 0000 0000 0000 FFFF", + "01A0 FE0E FF60 F59B 0000 0000 0000 FFFF", + "01A0 FE39 FF60 F6A6 0000 0000 0000 FFFF", + "0095 FE76 0000 F3C8 0000 4000 0000 8608", + "01C9 FD46 003C F722 0000 0000 0005 18CC" + ] + }, + { + "File": { + "Name": "Scene 5, Room 13", + "Start": "022E1000", + "End": "022E1A00", + "RemapStart": null + }, + "Objects": [ + "0059", + "0125", + "013B", + "013A", + "0020" + ], + "Actors": [ + "0136 F3D0 0410 F588 0000 4000 0000 FFFF" + ] + }, + { + "File": { + "Name": "Scene 5, Room 14", + "Start": "022E2000", + "End": "022E8E80", + "RemapStart": null + }, + "Objects": [ + "0059", + "011C", + "000E", + "0170", + "000C" + ], + "Actors": [ + "012D FE55 FFEB F1A6 0000 4000 0000 FFC2", + "0012 FF5A FF60 F34B 0000 C16C 0000 FFFF", + "0012 FF17 FED4 F1EE 0000 C0B6 0000 FFFF", + "0012 FF52 FED4 F179 0000 0000 0000 FFFF", + "0012 FF71 FED4 F1F1 0000 C0B6 0000 FFFF", + "0012 FFDA FF60 F332 0000 DA50 0000 FFFF", + "0012 FF41 FED4 F22E 0000 0000 0000 FFFF", + "0012 FF52 FEF8 F13B 0000 D3E9 0000 FFFF", + "01A0 0024 FEC0 F18C 0000 4000 0000 FFFF", + "01A0 FEF1 FED4 F10E 0000 0000 0000 FFFF", + "01A0 FE73 FF60 F116 0000 4000 0000 FFFF", + "01A0 001E FF60 F371 0000 0000 0000 FFFF", + "01A0 FFAB FED4 F27C 0000 4000 0000 FFFF", + "0065 FF4B FEDE F29A 0000 0000 0000 1804", + "0111 001C FF60 F117 0000 0000 0000 7604", + "0111 FFE4 FF60 F117 0000 0000 0000 7804" + ] + }, + { + "File": { + "Name": "Scene 5, Room 15", + "Start": "022E9000", + "End": "022F0470", + "RemapStart": null + }, + "Objects": [ + "0059", + "013B", + "013A", + "011C", + "00B5", + "00E5", + "0016", + "0012", + "0026", + "000E", + "00A4", + "0090" + ], + "Actors": [ + "0112 FC2D 0095 F3DA 0000 0000 0000 10FF", + "0112 FC94 0099 F2EF 0000 0000 0000 11FF", + "005E FD53 00C8 F366 0000 0000 2000 1126", + "005E FBCD 00C8 F366 0000 0000 E000 1126", + "005E FC5A 0078 F492 0000 0000 0000 1126", + "005E FC5C 0078 F232 0000 0000 0000 1126", + "012A FD34 0078 F46E 0000 0000 0000 3803", + "015F FC2C FF10 F3E0 0000 0000 0000 0E3F", + "015F FC90 FF10 F2F0 0000 0000 0000 0E3F", + "015F FCCC FF10 F390 0000 0000 0000 0E3F" + ] + }, + { + "File": { + "Name": "Scene 5, Room 16", + "Start": "022F1000", + "End": "022F4B30", + "RemapStart": null + }, + "Objects": [ + "0059", + "000E", + "0032", + "0170", + "00AA" + ], + "Actors": [ + "0112 FAFA 00A5 F40C 0000 0000 0006 18BF", + "0002 FAFB 006C F456 0000 0000 0000 FFFF", + "01A0 FA64 006C F4C5 0000 4000 0000 FFFF", + "01A0 FA65 006C F489 0000 4000 0000 FFFF", + "01A0 FB9B 006C F492 0000 4000 0000 FFFF", + "01A0 FB9B 006C F4CE 0000 4000 0000 FFFF", + "01A0 FA64 006C F532 0000 4000 0000 FFFF", + "0015 FA60 006C F534 0000 0000 0000 0111", + "0111 FA77 006C F42F 0000 0000 0000 7A12", + "0111 FB82 006C F429 0000 0000 0000 7C0E" + ] + }, + { + "File": { + "Name": "Scene 5, Room 17", + "Start": "022F5000", + "End": "022FDAB0", + "RemapStart": null + }, + "Objects": [ + "0059", + "000E", + "011C", + "00A4", + "00CA", + "0190", + "00A8" + ], + "Actors": [ + "01D1 03D4 0168 0083 0000 4000 0000 08FF", + "005E 03DA 0000 0062 0000 0000 0000 2400", + "0065 03E3 02FD 00B4 0000 0000 0000 FF00", + "0173 064C 0214 00B3 0000 0018 0001 3F00", + "0185 03E7 035B 0152 0000 8000 0000 853F", + "000A 0565 01CC 00BB 0000 4000 0017 B120", + "00D2 03CD 0000 00B4 0000 C000 0000 1004", + "0112 064E 020A 00B3 0000 0000 0006 18D7", + "012E 03E7 030C 0152 0000 8000 0000 1C9C", + "012D 041C 0190 00B5 0000 0000 0000 1FC1", + "012D 035C 0000 0104 0000 0000 0000 1FC1", + "012D 035C 0000 0063 0000 0000 0000 1FC1", + "012D 035C 030C 0106 0000 0000 0000 1FC1", + "0111 0463 0000 003E 0000 4000 0000 4A0E", + "0111 0463 0000 0125 0000 4000 0000 4C0E", + "005E 034A 0384 0017 1C72 2000 0000 1137", + "005E 047B 0384 0017 1C72 E000 0000 1137", + "005E 034B 0384 0151 1C72 6000 0000 1137", + "005E 047C 0384 0152 1C72 A000 0000 1137", + "005E 0474 0014 001E 0000 C000 0000 10BE", + "005E 0474 0014 014A 0000 C000 0000 10BE" + ] + }, + { + "File": { + "Name": "Scene 5, Room 18", + "Start": "022FE000", + "End": "02302100", + "RemapStart": null + }, + "Objects": [ + "0059", + "000E", + "011C", + "00E5", + "001B" + ], + "Actors": [ + "00EC 0630 0000 00B2 0000 0000 0000 0000", + "0025 06B8 014F 011B 0000 0000 0000 FFFF", + "0025 06B5 014F 0054 0000 0000 0000 FFFF", + "0112 071E 004B 00B6 0000 0000 0006 1ABF", + "0065 0546 02FD 00B4 0000 C000 0000 FF00", + "0173 071F 0057 00B3 0000 0000 0001 3F00", + "000A 066E 0000 00AC 0000 4000 0000 1801", + "012D 04BA FFC4 0104 0000 0000 0000 1FC1", + "012D 04BA FFC4 0064 0000 0000 0000 1FC1", + "0187 05D4 0000 00F8 0000 0000 0000 7FFF" + ] + }, + { + "File": { + "Name": "Scene 5, Room 19", + "Start": "02303000", + "End": "02306930", + "RemapStart": null + }, + "Objects": [ + "0059", + "000E", + "011C", + "0032" + ], + "Actors": [ + "0002 0612 030C 010C 0000 0000 0000 FFFF", + "0002 0615 030C 006B 0000 0000 0000 FFFF", + "0002 05CE 030C 00C0 0000 0000 0000 FFFF", + "0173 071D 0360 00B5 0000 000A 0001 3F00", + "000A 05E4 0310 00B6 0000 C000 0009 B822", + "0112 071E 0356 00B5 0000 0000 0006 1AC9" + ] + }, + { + "File": { + "Name": "Scene 5, Room 20", + "Start": "02307000", + "End": "0230D840", + "RemapStart": null + }, + "Objects": [ + "0059", + "000E", + "011C", + "0170", + "001B", + "0024", + "015C", + "00A4" + ], + "Actors": [ + "0025 028D 02C2 03B9 0000 8000 0000 FFFF", + "0025 0292 03E0 00B8 0000 0000 0000 FFFF", + "0112 0293 0218 040A 0000 0000 0006 197F", + "0065 026C 02FD 0334 0000 0000 0000 FF00", + "01A0 0330 01C6 01FE 0000 C000 0000 FFFF", + "01A0 0330 01C6 023A 0000 C000 0000 FFFF", + "01A0 020D 01D6 03BA 0000 4000 0000 FFFF", + "01A0 020C 01D6 0347 0000 4000 0000 FFFF", + "01A0 031B 01D6 032A 0000 4000 0000 FFFF", + "01A0 031B 01D6 0366 0000 4000 0000 FFFF", + "01A0 02AE 01D6 03F8 0000 0000 0000 FFFF", + "01A0 010E 01CC 01F8 0000 0000 0000 FFFF", + "01A0 01B5 01CC 0240 0000 0000 0000 FFFF", + "01A0 02BA 01CC 018F 0000 4000 0000 FFFF", + "0095 0334 01C6 021C 0000 4000 0000 8601", + "005E 02E6 01C6 01F4 0000 0000 0000 1062", + "01BB 02D1 01CC 021A 0000 C000 0000 0FE2", + "0111 0200 01CC 0243 0000 0000 0000 4402", + "0111 025A 01D6 03FE 0000 0000 0000 4609", + "0111 0315 01D6 03B3 0000 0000 0000 540E", + "0111 0300 01C6 0235 0000 0000 0000 6E03", + "0111 02FF 01C6 0205 0000 0000 0000 7E03" + ] + }, + { + "File": { + "Name": "Scene 5, Room 21", + "Start": "0230E000", + "End": "023154A0", + "RemapStart": null + }, + "Objects": [ + "0059", + "013B", + "011C", + "0024", + "015C" + ], + "Actors": [ + "012D F516 0131 F0C8 0000 0000 0000 FFC0", + "012D F432 00AF F3B3 0000 0000 0000 FFC0", + "012D F681 00AF F31E 0000 0000 0000 FFC0", + "012D F472 00AF F61A 0000 0000 0000 FFC0", + "012D F60D 00AF F553 0000 0000 0000 FFC0", + "012D F802 00AF F432 0000 0000 0000 FFC0", + "012D F95A 00A1 F588 0000 0000 0000 FFC0", + "012D F7A2 0175 F687 0000 8000 0000 FFC2", + "012D F8A7 018C F53B 8000 8000 0000 FFC2", + "0160 F536 00C3 EEE6 0000 0000 0000 0000", + "0160 F600 006E F632 0000 0000 0000 0000", + "0160 F718 006E F2C2 0000 0000 0000 0000", + "0160 F7DF 006E F521 0000 0000 0000 0000", + "0160 F8A6 006E F639 0000 0000 0000 0000", + "0160 F91D 006E F4F7 0000 0000 0000 0000", + "0095 F5FB 01F9 F554 0000 0000 582E 8602", + "011B F4BB 017C F008 0028 0000 0000 47AB", + "011B F4D2 017C EEFA 0028 0000 0000 47AB", + "0111 F74E 0104 F649 0000 0000 0000 5E09", + "0111 F778 0104 F668 0000 0000 0000 6212" + ] + }, + { + "File": { + "Name": "Scene 5, Room 22", + "Start": "02316000", + "End": "0231F0F0", + "RemapStart": null + }, + "Objects": [ + "0059", + "013B", + "013A", + "011C", + "00B5", + "00E5", + "0016", + "0012", + "0026", + "00B0" + ], + "Actors": [] + } + ] + }, + { + "File": { + "Name": "Scene 6", + "Start": "02320000", + "End": "02339B20", + "RemapStart": null + }, + "TActors": [ + "19FF 18FF 002E 0140 06C5 FCC2 4000 00B5", + "1AFF 19FF 002E FF38 06C5 FCC2 4000 0093", + "0FFF 05FF 002E 030C 01E0 FCAE C000 0086", + "0FFF 00FF 002E 0424 0000 FDB6 0000 003F", + "0DFF 00FF 002E 055C 001E FDD1 D555 02C3", + "00FF 0EFF 002E 02EC 001E FDD1 AAAB 00B1", + "0BFF 14FF 002E 0528 03EB 05C2 4000 005A", + "0BFF 0AFF 002E FBDC 03EB 05C2 C000 0059", + "09FF 08FF 002E F95C 034B 01D6 8000 00A4", + "04FF 01FF 002E FBDC 0028 FBAA 0000 02DE", + "03FF 01FF 002E FAA4 001E FDD1 2AAB 007F", + "02FF 01FF 002E FD14 001E FDD1 D555 007F", + "16FF 18FF 002E 02A8 0661 FC72 0000 02C1", + "18FF 17FF 002E 02A8 0607 FE41 0000 0080", + "17FF 11FF 002E 0424 034B 0096 4000 02DC", + "15FF 12FF 002E 0762 034B FE66 0000 0096", + "14FF 13FF 002E 07A8 03EB 0496 8000 007F", + "13FF 12FF 002E 07A8 034B 01D6 8000 00AF", + "12FF 11FF 002E 06A4 034B 0096 C000 00AC", + "10FF 11FF 002E 0424 034B FF2E 4000 007F", + "10FF 05FF 002E 02BC 032D FDC6 8000 02DB", + "0AFF 09FF 002E F95C 03EB 0496 8000 02D5", + "07FF 08FF 002E FC54 034B FF2E C000 00A4", + "06FF 05FF 002E 003C 019D FD76 8000 0087", + "05FF 04FF 002E FD6C 01E0 FCAE C000 02D2", + "07FF 05FF 002E FDBC 032D FDC6 8000 0088", + "03FF 1BFF 002E FA65 001E FAD1 6000 007F", + "1BFF 02FF 002E FCCD 001E FA4A 1F4A 007F", + "0CFF 0DFF 002E 0621 FF7E F9BD 0000 0082", + "00FF 01FF 0023 FD8D FFCE FFFF C000 003F", + "1CFF 05FF 002E 003C 03EF F8EA 0000 0154", + "06FF 00FF 0023 0000 0179 FFC3 8000 00BF", + "19FF 05FF 0023 003C 05D0 FBBE 8000 00BF" + ], + "Paths": [ + { + "Points": [ + [ + -486, + -50, + -1 + ], + [ + -403, + -50, + -44 + ] + ] + }, + { + "Points": [ + [ + 1466, + -80, + -1423 + ], + [ + 1466, + -80, + -743 + ] + ] + }, + { + "Points": [ + [ + 1673, + -80, + -743 + ], + [ + 1673, + -80, + -1423 + ] + ] + }, + { + "Points": [ + [ + -555, + 1776, + -675 + ], + [ + -449, + 1823, + -717 + ], + [ + -440, + 1772, + -805 + ], + [ + -463, + 1818, + -902 + ], + [ + -565, + 1781, + -934 + ], + [ + -652, + 1827, + -906 + ], + [ + -685, + 1772, + -809 + ], + [ + -662, + 1823, + -722 + ], + [ + -555, + 1776, + -675 + ] + ] + }, + { + "Points": [ + [ + -565, + 1827, + -498 + ], + [ + -685, + 1767, + -442 + ], + [ + -740, + 1836, + -304 + ], + [ + -699, + 1762, + -179 + ], + [ + -551, + 1818, + -110 + ], + [ + -422, + 1758, + -170 + ], + [ + -366, + 1832, + -304 + ], + [ + -417, + 1758, + -452 + ], + [ + -565, + 1827, + -498 + ] + ] + } + ], + "Rooms": [ + { + "File": { + "Name": "Scene 6, Room 0", + "Start": "0233A000", + "End": "0234AFF0", + "RemapStart": null + }, + "Objects": [ + "00F1", + "016D", + "0163", + "000E", + "013A", + "011E", + "011C", + "0025", + "00B3", + "00B7" + ], + "Actors": [ + "012D 0000 01BA FF94 0000 0000 0000 FFC2", + "0127 FF60 FF6A 010E 0000 0000 0000 000B", + "0127 0000 0118 FFC4 0000 0000 0000 800C", + "0127 015E FFFF 00DC 0000 0E39 0000 800E", + "0127 00A0 FF6A 010E 0000 0000 0000 0010", + "0127 042E 0001 FEDE 0000 0000 0000 001D", + "012A 042E 0001 FEDE 0000 0000 0000 2301", + "012A 015C 0019 00CD 0000 8000 0000 2502", + "012A FF36 0107 0324 C000 0000 0000 2603", + "0117 03F8 FFCE FFB7 0000 0000 0000 1FF7", + "0117 00A0 FF6A 010C 0000 0000 0000 1FF7", + "0117 FF60 FF6A 010E 0000 0000 0000 1FF7", + "0117 03C7 0000 FDDD 0000 0000 0000 1FF7", + "0117 02E8 FFCE 0004 0000 0000 0000 1FF7", + "00C3 FE12 FFCE FFFF 0000 4000 0000 0006", + "000A FF83 FFCE 0021 0000 8000 0000 507A", + "000A 007D 006F FF4F 0000 8000 0026 807F", + "0111 FF01 FF6A 02E6 0000 0000 0000 4203", + "0111 0132 FF6A 02AA 0000 0000 0000 6403", + "0111 FED7 FF6A 02AF 0000 0000 0000 6204", + "0117 0055 FFCE 005A 0000 0000 0000 0177", + "0111 0104 FF6A 02DF 0000 0000 0000 440E", + "015F 02E6 FF01 FFFF 000A 0005 0007 18D7", + "0185 012E FFCD 0136 0000 EAAB 0016 083F", + "0185 FEE6 FFCD 0138 0000 1555 0016 087F", + "000A 0084 006F 0021 0000 8000 0037 885B", + "000A FF79 006F FF4F 0000 8000 0025 885E" + ] + }, + { + "File": { + "Name": "Scene 6, Room 1", + "Start": "0234B000", + "End": "02354350", + "RemapStart": null + }, + "Objects": [ + "00F1", + "016D", + "0163", + "000E", + "013A", + "011E", + "011C", + "0025", + "00B3", + "00B7" + ], + "Actors": [ + "0038 FB83 0000 FF24 0000 0000 0000 FFFF", + "0038 FC36 0000 FEA6 0000 0000 0000 FFFF", + "0013 FB7C 0048 FE0B 0000 1555 0000 0000", + "0013 FC3B 0048 FE0B 0000 EAAB 0000 0000", + "0127 FBDC 0000 FD58 0000 0000 0000 8005", + "012A FC37 0028 FC51 0000 0000 0000 0D01", + "0049 FB7C 0000 FDDF 0000 0000 0000 2FF8", + "0049 FC3B 0000 FDDF 0000 0000 0000 2FF8", + "0049 FB18 0000 FF23 0000 0000 0000 2FF8", + "0049 FCA4 0000 FF20 0000 0000 0000 2FF8", + "012A FBDC 00A9 FDD2 0000 0000 0000 3802", + "0111 FC82 FFCE FFCE 0000 0000 0000 4004", + "000A FBDE 00A7 FF8C 0000 0000 000D 885D", + "0015 FB81 0000 FDE9 0000 0000 0000 2C03", + "0015 FC30 0000 FDE9 0000 0000 0000 2E03" + ] + }, + { + "File": { + "Name": "Scene 6, Room 2", + "Start": "02355000", + "End": "0235ABB0", + "RemapStart": null + }, + "Objects": [ + "00F1", + "016D", + "0163", + "0098", + "00A2", + "0179" + ], + "Actors": [ + "0090 FE0A 001E FD22 0000 0000 0000 7FFE", + "0090 FE5C 001E FACB 0000 C000 0000 7FFE", + "0090 FE5F 001E FB8B 0000 C000 0000 7FFE", + "009D FDB6 001E FD67 0000 0000 0000 0000", + "009D FE65 001E FD67 0000 0000 0000 0000", + "00FD FDB1 0020 FBE3 0000 8000 0000 0021", + "012A FE64 001E FD66 0000 0000 0000 2100", + "0127 FDAF 001E FAC4 0000 0000 0000 0028", + "01B4 FDB5 0050 FC50 0000 0000 0000 3601", + "012A FDAE 0046 FA93 0000 2000 0000 3602", + "0127 FCEE 0077 FC5E 0000 0000 0000 003C", + "0127 FE5B FFAA FBF4 0000 0000 0000 003D", + "0111 FE82 001E FB18 0000 0000 0000 6803", + "0111 FE83 001E FB49 0000 0000 0000 660E" + ] + }, + { + "File": { + "Name": "Scene 6, Room 3", + "Start": "0235B000", + "End": "0235EBD0", + "RemapStart": null + }, + "Objects": [ + "00F1", + "016D", + "000E", + "00D6", + "000D", + "00A4", + "0114", + "00A2" + ], + "Actors": [ + "0013 F8F2 00BC FC63 0000 4000 0000 0003", + "0013 FAD0 0000 FC7A 0000 C000 0000 0003", + "0013 FA39 0051 FB8E 0000 0000 0000 0003", + "0013 F932 007A FDD5 0000 560B 0000 0003", + "0013 F9DD FFAA FBE2 0000 0000 0000 0003", + "005E F980 001E FB7B 0000 0000 0000 2400", + "005E FA39 001E FB7B 0000 0000 0000 2400", + "005E F980 001E FD38 0000 0000 0000 2400", + "005E FA39 001E FD38 0000 0000 0000 2400", + "009D F9A6 001E FAC6 0000 4000 0000 0000", + "00FD F9DF 001E FBE3 0000 0000 0000 002A", + "012A F9A4 001E FAC8 0000 0000 0000 2A00", + "00F6 F9E3 001E FD1C 0000 0000 0000 0002", + "000A F9E3 001E FD1B 0000 8000 0000 0820", + "000A F9DB 001E FB9A 0000 0000 0000 7848" + ] + }, + { + "File": { + "Name": "Scene 6, Room 4", + "Start": "0235F000", + "End": "02366280", + "RemapStart": null + }, + "Objects": [ + "00F1", + "016D", + "00AB", + "012A", + "000E", + "001F", + "0059", + "008B", + "000D", + "00D4", + "00CB", + "00DC", + "00F2" + ], + "Actors": [ + "002F FBD3 01EB FCE3 0000 5555 0000 FFFF", + "002F FBEA 01F3 FD2B 0000 6444 0000 FFFF", + "002F FD1D 01E0 FC02 0000 E38E 0000 FFFF", + "002F FCD0 01E0 FBAF 0000 ECCD 0000 FFFF", + "00DD FBDE 0100 FB13 0000 0000 0000 FFFF", + "0150 FC67 01E0 FC87 C000 C000 0000 0F00", + "0159 FB78 02AE FC90 0000 0000 0000 000F", + "012A FBDE 0028 FB0E 0000 0000 0000 3E43", + "012A FBDA 01E3 FB76 0000 0000 0000 3E43", + "01BB FC18 00EC FB0A 4000 C000 0000 0FFE", + "000A FD11 01E0 FBB9 0000 5C72 0000 7066", + "008A FCD1 01E0 FCF8 0000 8000 0000 0A00", + "0111 FBF5 0028 FB28 0000 0000 0000 460E", + "0185 FC68 01E0 FC8C 0000 0000 000B 04BF", + "000A FC2A 02BF FD7D 0000 4000 000F 884C" + ] + }, + { + "File": { + "Name": "Scene 6, Room 5", + "Start": "02367000", + "End": "0237F010", + "RemapStart": null + }, + "Objects": [ + "00F1", + "016D", + "00AB", + "00B0", + "00A4", + "012A", + "000E", + "0154", + "0190", + "00A8", + "016C", + "000B", + "0170" + ], + "Actors": [ + "0011 0042 0161 FB5C 0000 0000 0000 0001", + "008E 01DA 02F2 FD30 0000 C4FA 0000 0000", + "0158 003C 070A FBB2 0000 0000 0000 0000", + "015A 003C 0421 FA02 0000 0000 0000 FFFF", + "0169 003C 014D FC14 0000 0000 0000 0000", + "0169 FE34 032D FC36 0000 0000 0000 0000", + "0169 0244 032D FC36 0000 0000 0000 0000", + "0169 0244 014D FA56 0000 0000 0000 0000", + "0169 FE34 014D FA56 0000 0000 0000 0000", + "005E FF80 0287 FCB6 0000 0000 0000 2400", + "005E 00F4 0287 FCB1 0000 0000 0000 2400", + "01A0 023A 014D F9EA 0000 0000 0000 FFFF", + "01A0 01FE 014D F9EA 0000 0000 0000 FFFF", + "0110 FEF1 01F4 FC29 0000 0000 0000 FFFF", + "0156 003C 0487 FA63 0000 0000 0000 0004", + "012A 003C 0258 FD62 0000 8000 0000 0782", + "012A FEBA 029B FB2E 0000 0000 0000 0820", + "0157 003C 03CD FBBE 0000 0000 0000 0017", + "011D FDD1 032D F9F9 0000 0000 0000 FFE5", + "011D 029F 014D FB65 0000 0000 0000 FFE8", + "0011 01AA 0411 FB2B 0000 0000 0000 3302", + "012A FEBE 01B9 FA17 0000 C000 0000 3402", + "011D FF76 0287 FD1B 0000 0000 0000 FFF6", + "01D6 FDE6 02C9 FB96 0000 0000 0000 3838", + "01D6 FED9 0190 FC15 0000 0000 0000 B838", + "012E 01BD 02A2 FB0F 0000 0000 0000 1CB3", + "01D1 FE2A 01B8 FC04 0000 0000 0000 19FF", + "005E FE34 01ED FA56 0000 0000 0000 10C6", + "005E 0244 01ED FA56 0000 0000 0000 10C6", + "005E 003C 01ED FC14 0000 0000 0000 10C6", + "0111 027F 014D FB38 0000 0000 0000 4E03", + "01C9 02A1 01E0 FC41 0000 8000 0005 017F", + "0111 FDF7 032D F9D8 0000 0000 0000 4C08", + "0111 FDAD 032D F9D8 0000 0000 0000 480E", + "0111 FDD1 014D FB47 0000 0000 0000 6A0F", + "0111 02C0 014D FB38 0000 0000 0000 5210", + "0173 003B 0444 FA7E 0006 0005 0000 3C24", + "0185 01BD 02A2 FB0F 0000 0000 000B 8AF3", + "000A 003C 0164 FB3C 0000 8000 0034 B803", + "000A 020E 0502 F9C0 0000 8000 0033 888F", + "000A 02AC 032D F9FF 0000 0000 0000 6902", + "011B 003D 03C7 FBBE 001E 0000 0064 2791" + ] + }, + { + "File": { + "Name": "Scene 6, Room 6", + "Start": "02380000", + "End": "023847F0", + "RemapStart": null + }, + "Objects": [ + "00F1", + "016D", + "0163", + "000E", + "013A", + "011E", + "011C", + "0025", + "00B3", + "00B7" + ], + "Actors": [ + "012D 0000 01BA FF94 0000 0000 0000 FFC2", + "00FF 021C 019D FEFB 0000 0000 0000 09C3", + "00FF 021C 00D5 FE33 0000 0000 0000 09C7", + "0139 021C 00D5 FE33 0000 0000 0000 0009", + "01D5 021C 019D FEFB 0000 0000 0000 0009", + "012A 021C 015B FDD1 0000 0000 0000 0A02", + "00FF 021C 00D5 FFC3 0000 0000 0000 3FC3", + "000A 003A 022C FE65 0000 0000 000A 885C" + ] + }, + { + "File": { + "Name": "Scene 6, Room 7", + "Start": "02385000", + "End": "0238A510", + "RemapStart": null + }, + "Objects": [ + "00F1", + "016D", + "002C" + ], + "Actors": [ + "0045 FD5A 0337 FEA5 0000 2444 0000 0000", + "0008 FCE0 0378 FED6 0000 0000 0000 03F4", + "0008 FCE0 0375 FF89 0000 0000 0000 03F4", + "0008 FD64 035A FE52 0000 0000 0000 03F4", + "0008 FDBC 036B FF2E 0000 0000 0000 03F4", + "0008 FE14 035B FE52 0000 0000 0000 03F4" + ] + }, + { + "File": { + "Name": "Scene 6, Room 8", + "Start": "0238B000", + "End": "023930B0", + "RemapStart": null + }, + "Objects": [ + "00F1", + "016D", + "00AB", + "012A", + "000E", + "005D", + "000B", + "0024", + "015C", + "011C", + "0179" + ], + "Actors": [ + "012D FAC2 04B3 0010 4000 0000 0000 FFC2", + "01B4 FB85 0462 0190 0000 0000 0000 FF01", + "0069 FB4F 034B 0079 0000 9777 0000 FFFE", + "0069 FA09 034B FF19 0000 53E9 0000 FFFE", + "0069 F9B2 034B 0101 0000 B333 0000 FFFE", + "0150 FA95 034B FF74 0000 0000 0000 2421", + "00B7 F960 034B FF4D 0000 0000 0000 0001", + "0150 FAD1 034B FF74 0000 0000 0000 2B21", + "0049 F919 034B 0046 0000 4000 0000 2FF8", + "0049 FA63 034B 008C 0000 0000 0000 2FF8", + "0049 FB03 034B FE84 0000 0000 0000 2FF8", + "0049 FB03 034B FEC0 0000 0000 0000 2FF8", + "0049 F97D 034B 0046 0000 4000 0000 2FF8", + "0049 FA63 034B 00FA 0000 0000 0000 2FF8", + "0049 FA63 034B 0168 0000 0000 0000 2FF8", + "012A FAB8 039B FFAB 0000 0000 0000 3803", + "01B4 FAC1 0442 000B 0000 0000 0000 3901", + "0150 FA95 034B FFD8 0000 0000 0000 3921", + "0011 FA27 034B FF99 0000 0000 0000 3A02", + "0150 F9CD 034B 0078 0000 0000 0000 3A21", + "0011 FA0E 034B 00B8 0000 0000 0000 3B02", + "0150 F969 034B FE70 0000 0000 0000 3B21", + "0111 FB04 039B 01B0 0000 0000 0000 5603", + "0095 FB9A 0462 01A5 0000 0000 0000 8701", + "0111 F99D 039B FE42 0000 0000 0000 5410", + "000A FBC8 046C FE3E 0000 4000 002B 8901" + ] + }, + { + "File": { + "Name": "Scene 6, Room 9", + "Start": "02394000", + "End": "02399DD0", + "RemapStart": null + }, + "Objects": [ + "00F1", + "016D", + "002C", + "0024" + ], + "Actors": [ + "0037 F95C 0463 0342 0000 8000 0000 0001", + "0008 F8F9 03CD 0336 0000 0000 0000 03F4", + "0008 F8F9 037E 024E 0000 0000 0000 03F4", + "0008 F8FA 041D 041E 0000 0000 0000 03F4", + "0008 F9BC 041D 041D 0000 0000 0000 03F4", + "0008 F9BC 03CB 0337 0000 0000 0000 03F4", + "0008 F9BD 037B 024F 0000 0000 0000 03F4" + ] + }, + { + "File": { + "Name": "Scene 6, Room 10", + "Start": "0239A000", + "End": "023A21A0", + "RemapStart": null + }, + "Objects": [ + "00F1", + "016D", + "016C", + "0106" + ], + "Actors": [ + "0008 F88E 0417 0537 0000 0000 0000 03F4", + "0008 F88E 0417 064F 0000 0000 0000 03F4", + "0008 F952 0412 06CE 0000 0000 0000 03F4", + "0008 FAF6 0411 06CE 0000 0000 0000 03F4", + "0008 FB00 0411 04BA 0000 0000 0000 03F4", + "0113 FB1E 03EB 05C4 0000 C000 0000 1901", + "0169 FB41 03EB 05C2 0000 8000 0000 0001", + "0169 F8E4 03EB 054A 0000 4000 0000 0000", + "0169 F8E4 03EB 063A 0000 4000 0000 0000", + "0169 F9D4 03EB 054A 0000 4000 0000 0000", + "0169 F9D4 03EB 063A 0000 4000 0000 0000", + "0169 FAC4 03EB 054A 0000 4000 0000 0000", + "0169 FAC4 03EB 063A 0000 4000 0000 0000" + ] + }, + { + "File": { + "Name": "Scene 6, Room 11", + "Start": "023A3000", + "End": "023A4010", + "RemapStart": null + }, + "Objects": [ + "00F1", + "016D", + "016C", + "0106" + ], + "Actors": [] + }, + { + "File": { + "Name": "Scene 6, Room 12", + "Start": "023A5000", + "End": "023A70E0", + "RemapStart": null + }, + "Objects": [ + "00F1", + "016D", + "000E", + "0024", + "015C", + "007C" + ], + "Actors": [ + "0037 05E5 0046 F8C5 0000 0000 0000 0000", + "0037 06A3 0046 F88E 0000 0000 0000 0000", + "0037 05BA 0046 F84D 0000 0000 0000 0000", + "0037 06B9 0046 F90B 0000 0000 0000 0000", + "0037 062C 0046 F822 0000 0000 0000 0002", + "0037 0657 0046 F8E5 0000 0000 0000 0001", + "0037 0621 0046 F879 0000 0000 0000 0001", + "0037 0627 0046 F92C 0000 0000 0000 0001", + "0037 05A4 0046 F91B 0000 0000 0000 0001", + "0095 06C7 0000 F966 4000 A000 0000 8708", + "000A 0625 FF7E F828 0000 8000 0000 5AA7" + ] + }, + { + "File": { + "Name": "Scene 6, Room 13", + "Start": "023A8000", + "End": "023AD8B0", + "RemapStart": null + }, + "Objects": [ + "00F1", + "016D", + "011F", + "0059", + "0190", + "00A8", + "00F0", + "012A", + "011F", + "0030" + ], + "Actors": [ + "0107 0517 007B FAB8 0000 0000 0000 00FF", + "004B 0621 FF7E FA53 0000 0000 0000 0000", + "0130 05BA FFB0 FA71 0000 0000 0000 0301", + "0130 0689 FFB0 FD19 0000 0000 0000 0302", + "0150 0533 0085 FCD2 0000 4000 0000 0300", + "01BB 0523 FFDF FBC5 0000 4000 0000 0FF8", + "01BB 0721 FFDF FB3E 0000 C000 0000 0FF9", + "01BB 0523 FFDF FCD3 0000 4000 0000 0FFA", + "01BB 0523 FFDF FAB7 0000 4000 0000 0FFB", + "012A 0621 001E FD9F 0000 0000 0000 3C01", + "01BB 0721 FFDF FC4D 0000 C000 0000 0FFC", + "01D1 072C 00A9 FC4C 0000 0000 0000 81FF", + "012E 04E1 FFDF FAB7 0000 0000 0000 1C7A", + "012E 04E1 FFDF FBC5 0000 0000 0000 1C82", + "012E 04E1 FFDF FCD3 0000 0000 0000 1CF9", + "012E 0760 FFDF FC4D 0000 0000 0000 1D3B", + "012E 0760 FFDF FB3E 0000 0000 0000 1D78" + ] + }, + { + "File": { + "Name": "Scene 6, Room 14", + "Start": "023AE000", + "End": "023B2CA0", + "RemapStart": null + }, + "Objects": [ + "00F1", + "016D", + "0017", + "000E", + "0024", + "015C" + ], + "Actors": [ + "00A7 0264 FF61 FBB8 0000 0000 0000 0041", + "012E 0175 001E FC98 0000 0000 0000 1CB1", + "0095 0205 010E FC15 8000 0000 0000 8702", + "0185 0175 001E FC98 0000 00B6 000B 8AF1", + "000A 0166 001E FA90 0000 8000 0000 7AA4" + ] + }, + { + "File": { + "Name": "Scene 6, Room 15", + "Start": "023B3000", + "End": "023BB4A0", + "RemapStart": null + }, + "Objects": [ + "00F1", + "016D", + "00AB", + "012A", + "0032", + "000B", + "0059", + "0085" + ], + "Actors": [ + "0002 0489 01E0 FC09 0000 DA50 0000 0002", + "0002 048B 01E0 FD5A 0000 B333 0000 0002", + "0011 0480 01E0 FC96 0000 0000 0000 0000", + "0008 04C9 0035 FC50 0000 0000 0000 03F4", + "0008 04C9 0035 FD13 0000 0000 0000 03F4", + "01BB 0460 01D1 FAF6 4000 C000 0000 0FD1", + "0187 047A 027D FB16 0000 0000 0000 47FF", + "0011 03D0 01E0 FC72 0000 0000 0000 3A02", + "0150 054B 0212 FCB4 0000 C000 0000 3A30", + "0011 046A 01E0 FCD4 0000 0000 0000 3B02", + "0150 0549 0212 FD56 0000 C000 0000 3B30", + "0011 044E 01E0 FC57 0000 0000 0000 3D02", + "0150 054B 0212 FC0A 0000 C000 0000 3D30", + "00B7 0417 01E0 FC03 0000 0000 0000 0002", + "0111 04B4 0000 FC72 0000 0000 0000 6E03", + "0111 04B4 0000 FBFC 0000 0000 0000 7003", + "0080 04C4 0000 FD13 0000 C000 0000 0410", + "0080 03FC 0000 FC50 0000 4000 0000 0410", + "011B 0335 01E0 FCAE 0064 0012 0004 3291" + ] + }, + { + "File": { + "Name": "Scene 6, Room 16", + "Start": "023BC000", + "End": "023C21C0", + "RemapStart": null + }, + "Objects": [ + "00F1", + "016D", + "002C", + "011C", + "016C" + ], + "Actors": [ + "012D 037B 0410 FF2A 4000 0000 0000 FFC2", + "012D 02BC 03F7 FE62 4000 0000 0000 FFC2", + "0049 02B7 0337 FF34 0000 0000 0000 2FFF", + "0049 0344 0337 FEA7 0000 0000 0000 2FFF", + "000C 0300 0337 FEEA 0000 2000 0000 00FF", + "0008 0264 0358 FE52 0000 0000 0000 03F4", + "0008 0314 0358 FE52 0000 0000 0000 03F4", + "0008 0398 0376 FED6 0000 0000 0000 03F4", + "0008 0398 0373 FF89 0000 0000 0000 03F4" + ] + }, + { + "File": { + "Name": "Scene 6, Room 17", + "Start": "023C3000", + "End": "023CC650", + "RemapStart": null + }, + "Objects": [ + "00F1", + "016D", + "000E", + "008B", + "0190", + "00A8" + ], + "Actors": [ + "0110 0566 043B 00BE 0000 C000 0000 FFFF", + "012A 05B7 034B FEDD 0000 0000 0000 2C20", + "01D6 0566 0374 00BD 0000 0000 0000 1839", + "01D6 0566 03D8 00BD 0000 0000 0000 9839", + "01D6 0566 02E7 00BD 0000 0000 0000 183A", + "01D6 05BB 034B FEE7 0000 0000 0000 983A", + "008A 0510 034B 0037 0000 4000 0000 0400", + "008A 05BD 034B 0037 0000 8000 0000 0400", + "008A 05B9 034B FF8B 0000 C000 0000 0400", + "008A 050D 034B FF91 0000 0000 0000 0401", + "000A 066D 034B FF89 0000 4000 0000 7979" + ] + }, + { + "File": { + "Name": "Scene 6, Room 18", + "Start": "023CD000", + "End": "023D2CE0", + "RemapStart": null + }, + "Objects": [ + "00F1", + "016D", + "00AB", + "012A", + "0190", + "00A8", + "001B", + "000E", + "0114" + ], + "Actors": [ + "0025 0782 048B FFB6 0000 E9F5 0000 FFFE", + "0025 07FB 048B 00F3 0000 A71C 0000 FFFE", + "0183 07F8 034B FF24 0000 0000 0000 FF40", + "0150 0893 03E0 FF26 0000 C000 0000 1600", + "00B7 07F8 034B FF24 0000 0000 0000 0003", + "0173 0821 0360 005B 0000 0030 0001 3F00", + "01D6 0762 034B FEAC 0000 0000 0000 1838", + "01D6 07F8 034B FF24 0000 0000 0000 9838", + "0112 0820 034B 005B 0000 0000 0002 192F", + "0112 0820 034B 005B 0000 0000 0000 192F", + "000A 0820 034B 005B 0000 4000 0000 5F98" + ] + }, + { + "File": { + "Name": "Scene 6, Room 19", + "Start": "023D3000", + "End": "023D8DD0", + "RemapStart": null + }, + "Objects": [ + "00F1", + "016D", + "000E", + "000B" + ], + "Actors": [ + "008E 07A7 03EA 041B 0000 8000 0000 8000", + "0008 0745 0419 041F 0000 0000 0000 03F4", + "0008 0745 03CE 0337 0000 0000 0000 03F4", + "0008 0745 037A 024E 0000 0000 0000 03F4", + "0008 0808 041A 041F 0000 0000 0000 03F4", + "0008 0808 03CB 0337 0000 0000 0000 03F4", + "0008 0809 0379 024F 0000 0000 0000 03F4" + ] + }, + { + "File": { + "Name": "Scene 6, Room 20", + "Start": "023D9000", + "End": "023E11C0", + "RemapStart": null + }, + "Objects": [ + "00F1", + "016D", + "016C", + "0106" + ], + "Actors": [ + "0008 0605 0416 04BB 0000 0000 0000 03F4", + "0008 060F 0416 06CC 0000 0000 0000 03F4", + "0008 07B3 0416 06CD 0000 0000 0000 03F4", + "0008 0877 0417 064E 0000 0000 0000 03F4", + "0008 0878 0416 0537 0000 0000 0000 03F4", + "0113 05EB 03EB 05C1 0000 4000 0000 1A01", + "0169 05C3 03EB 05C2 0000 0000 0000 0001", + "0169 0640 03EB 054A 0000 C000 0000 0000", + "0169 0640 03EB 063A 0000 C000 0000 0000", + "0169 0730 03EB 054A 0000 C000 0000 0000", + "0169 0730 03EB 063A 0000 C000 0000 0000", + "0169 0820 03EB 054A 0000 C000 0000 0000", + "0169 0820 03EB 063A 0000 C000 0000 0000" + ] + }, + { + "File": { + "Name": "Scene 6, Room 21", + "Start": "023E2000", + "End": "023E6660", + "RemapStart": null + }, + "Objects": [ + "00F1", + "016D", + "000E", + "0098" + ], + "Actors": [ + "0090 0761 0369 FD84 0000 0000 0000 7FFE", + "0008 06F2 038F FD59 0000 0000 0000 03F4", + "0008 07D1 038F FD59 0000 0000 0000 03F4", + "000A 0763 0369 FD57 0000 8000 0000 27E5" + ] + }, + { + "File": { + "Name": "Scene 6, Room 22", + "Start": "023E7000", + "End": "023EA070", + "RemapStart": null + }, + "Objects": [ + "00F1", + "016D", + "015C", + "0024", + "0106", + "016C" + ], + "Actors": [ + "0113 02A9 0661 FADB 0000 0000 0000 FF02", + "0169 02AA 0661 F9C7 0000 C000 0000 0001", + "0169 02DC 0661 F995 0000 0000 0000 0001", + "0169 0278 0661 F995 0000 8000 0000 0001", + "0169 01B3 0661 FAF0 0000 4000 0000 0001", + "0169 01E5 0661 FB22 0000 0000 0000 0001", + "0169 01B3 0661 FB54 0000 C000 0000 0001", + "0169 039D 0661 FAF0 0000 4000 0000 0001", + "0169 039D 0661 FB54 0000 C000 0000 0001", + "0169 036B 0661 FB22 0000 8000 0000 0001", + "0095 019A 06C9 FB22 4000 4000 0000 8704", + "0095 02A9 06AC F97C 4000 0000 0000 8710" + ] + }, + { + "File": { + "Name": "Scene 6, Room 23", + "Start": "023EB000", + "End": "023F4210", + "RemapStart": null + }, + "Objects": [ + "00F1", + "016D", + "00B7", + "00A4", + "000D", + "0025" + ], + "Actors": [ + "0095 02A9 04B0 FFA9 4000 0000 0000 0000", + "0038 0298 0607 FF1E 0000 182E 0000 FFFF", + "0013 0242 0686 00B9 0000 4889 0000 0000", + "0013 031C 0548 00DB 0000 A666 0000 0000", + "0013 0223 04B1 0006 0000 2CCD 0000 0000", + "0013 0316 0673 FF3E 0000 E000 0000 0000", + "00FA 02A8 04DB FFA9 0000 0000 0000 0000", + "00FA 02A8 053F FFA9 0000 0000 0000 0000", + "00FA 02A8 0413 FFA9 0000 0000 0000 0000", + "00FA 02A8 03AF FFA9 0000 0000 0000 0000", + "0117 02D3 03D1 FFB5 0000 0000 0000 1FC0", + "0117 0246 0435 FFB5 0000 0000 0000 1FC0", + "0117 02F2 050C FFB5 0000 0000 0000 1FC0", + "0117 0284 0570 FFB5 0000 0000 0000 1FC0", + "0117 02A9 049D FFB5 0000 0000 0000 1FC0", + "0111 033D 034B 00FA 0000 0000 0000 0203", + "0111 0213 034B 00F9 0000 0000 0000 0403", + "005E 0243 0387 0021 0000 0000 0000 03C0", + "005E 0243 0643 FEDF 0000 0000 0000 03C0", + "005E 030C 0387 0021 0000 0000 0000 03C0", + "005E 030C 0643 FEE2 0000 0000 0000 03C0", + "0117 02BF 034B 00A0 0000 0000 0000 0140" + ] + }, + { + "File": { + "Name": "Scene 6, Room 24", + "Start": "023F5000", + "End": "023FB4D0", + "RemapStart": null + }, + "Objects": [ + "00F1", + "016D" + ], + "Actors": [ + "0008 024E 068F FC95 0000 0000 0000 03F4", + "0008 0302 068F FC92 0000 0000 0000 03F4", + "012E 02A7 0661 FCD0 0000 0000 0000 1CB5", + "0111 030D 06C5 FCB7 0000 0000 0000 7403", + "0111 024B 06C5 FCB4 0000 0000 0000 7204", + "0185 02A7 0661 FCD0 0000 0000 000B 8AF5" + ] + }, + { + "File": { + "Name": "Scene 6, Room 25", + "Start": "023FC000", + "End": "02411BA0", + "RemapStart": null + }, + "Objects": [ + "00F1", + "016D", + "00AB", + "00B0", + "00A4", + "012A", + "000E", + "0154", + "0190", + "00A8", + "016C", + "000B", + "0170" + ], + "Actors": [ + "0158 003C 070A FBB2 0000 0000 0000 0000", + "01A0 010E 064D FB5E 0000 0000 0000 FFFF", + "01A0 FF6A 064D FB5E 0000 0000 0000 FFFF", + "01A0 010E 064D FB8E 0000 0000 0000 FFFF", + "01A0 FF6A 064D FB8E 0000 0000 0000 FFFF", + "012A FF6D 064D FB5E 0000 0000 0000 1301", + "0150 003C 0675 FC84 0000 8000 0000 1700", + "0157 003C 064D FBBE 0000 0000 0000 0017", + "0112 FF59 06C5 FCC2 0000 0000 0000 3FE9", + "0111 00F4 06C5 FC83 0000 0000 0000 7803", + "0111 FF86 06C5 FD1B 0000 0000 0000 7A03", + "0111 00FA 06C5 FD1B 0000 0000 0000 7C03", + "0111 FF85 06C5 FC84 0000 0000 0000 760F" + ] + }, + { + "File": { + "Name": "Scene 6, Room 26", + "Start": "02412000", + "End": "0241EB00", + "RemapStart": null + }, + "Objects": [ + "00F1", + "016D", + "00AB", + "001B", + "005D", + "000E", + "012A", + "0025" + ], + "Actors": [ + "0038 FDDF 06CF FCC2 0000 8000 0000 FFFF", + "0025 FFE8 0797 FED0 0000 C000 0000 FFFE", + "0158 003C 070A FBB2 0000 0000 0000 0000", + "00B7 FDD2 06CF FECE 0000 0000 0000 0004", + "0049 003C 06CF FECB 0000 0000 0000 2FED", + "0150 FDD1 0765 FD74 0000 8000 0000 2D00", + "0069 FDD5 06F0 FD5D 0000 0000 0000 30FB", + "0069 0235 0723 FE0E 0000 0000 0000 40FB", + "000A 0030 06CF FDD1 0000 4000 0000 6852" + ] + }, + { + "File": { + "Name": "Scene 6, Room 27", + "Start": "0241F000", + "End": "02424710", + "RemapStart": null + }, + "Objects": [ + "00F1", + "016D", + "0069", + "0032" + ], + "Actors": [ + "0049 FBA4 FFEC FA73 0000 0000 0000 0FFF", + "0049 FB15 FFEC FA22 0000 0000 0000 0FFF", + "0049 FB1F FFEC F88F 0000 0000 0000 0FFF", + "0049 FCA3 FFEC F895 0000 0000 0000 0FFF", + "0049 FC24 FFEC F84D 0000 0000 0000 0FFF", + "0049 FB8F FFEC F852 0000 0000 0000 0FFF", + "0049 FC38 FFEC FA6F 0000 0000 0000 0FFF", + "0002 FBE3 0096 F8F9 0000 0000 0000 0003", + "00AF FBE1 001E F970 0000 0000 0000 0002", + "0111 FB72 001E F875 0000 0000 0000 5C03", + "0111 FC41 001E F876 0000 0000 0000 5E03", + "0111 FCAB 001E F8D3 0000 0000 0000 6010", + "0111 FB1E 001E F8C4 0000 0000 0000 5A12" + ] + }, + { + "File": { + "Name": "Scene 6, Room 28", + "Start": "02425000", + "End": "0242DA30", + "RemapStart": null + }, + "Objects": [ + "00F1", + "016D", + "00AB", + "00B0", + "00A4", + "012A", + "000E", + "0154", + "0190", + "00A8", + "016C", + "000B", + "0170" + ], + "Actors": [] + } + ] + }, + { + "File": { + "Name": "Scene 7", + "Start": "0242E000", + "End": "024463C0", + "RemapStart": null + }, + "TActors": [ + "00FF 04FF 002E F7FA FFC1 FE6B C000 007F", + "00FF 01FF 002E FCE6 FFC1 FD53 8000 007F", + "00FF 02FF 0009 FFA2 FFC1 FF47 4000 0099", + "03FF 15FF 0009 F54A FAAD FF14 8000 003F", + "08FF 05FF 0009 0EFF FDE1 0037 C000 0096", + "05FF 06FF 002E 0D1E FDE1 FE56 8000 007F", + "05FF 07FF 002E 0D1E FDE1 0218 0000 007F", + "10FF 09FF 0009 1246 FB89 09FB 0000 003F", + "0BFF 09FF 0009 09AE FAC1 05C2 0000 0097", + "12FF 0BFF 0009 09AE FB4D 031A 0000 0098", + "0EFF 0BFF 002E 07BA FAC1 043C 4000 01C8", + "0FFF 0CFF 0009 EC59 FAAD F9CE C000 003F", + "0FFF 0DFF 002E EF2E FAAD F6F9 8000 02DB", + "0FFF 11FF 002E EF2E FAAD FCA2 0000 003F", + "0FFF 15FF 002E F202 FAAD F9CE 4000 009A", + "14FF 12FF 0009 1124 FAAD FD7A 0000 003F", + "12FF 13FF 0009 1278 FAAD FF82 4000 003F", + "15FF 14FF 0009 1124 FAAD FA82 0000 0095", + "0AFF 09FF 0023 05BF FAC1 0E1F 8000 013F", + "05FF 02FF 0023 08E4 FED1 0037 C000 013F", + "08FF 09FF 0023 0FB2 FC29 0554 C000 013F", + "16FF 03FF 002E F54A FAAD 034C 8000 0154", + "06FF 15FF 0023 0F8F FCF1 FB36 C000 00BF" + ], + "Paths": [], + "Rooms": [ + { + "File": { + "Name": "Scene 7, Room 0", + "Start": "02447000", + "End": "02452150", + "RemapStart": null + }, + "Objects": [ + "0069", + "0187", + "000E", + "00A4", + "0190", + "00A8", + "0179" + ], + "Actors": [ + "01B4 F8D3 0008 FE6B 4000 4000 0000 0701", + "01B4 F8D3 FFA4 FE6B 4000 4000 0000 0701", + "01D1 FB97 FF71 FF47 0000 4000 0000 B80D", + "01D1 FB97 FFD5 FF47 0000 4000 0000 B80E", + "0111 FBEB FFC1 FF7E 0000 4000 0000 7003", + "0111 FBEB FFC1 FF10 0000 4000 0000 7203", + "011D F9B9 FFC1 003C 0000 8000 0000 03FB", + "011D FD1D FFC1 003C 0000 8000 0000 03FC", + "011D FA26 FFC1 003C 0000 8000 0000 03FD", + "011D FCB0 FFC1 003C 0000 8000 0000 03FE", + "0185 FBCE FFDA FF47 0000 4000 0001 4226", + "0185 FB07 FFDA FF47 0000 4000 0001 42A8", + "0185 FDC7 FFDA 005E 0000 8000 0001 42A9", + "0185 FC10 FFDA 005F 0000 8000 0001 426A", + "0185 FCE6 FFDA FE2F 0000 0000 0001 422B", + "0185 FDFE FFDA FF47 0000 4000 0001 42AC", + "012A F9ED 0005 005F 0000 8000 0000 0712", + "011C F911 0005 005F 0000 8000 0000 0000", + "011C FAC9 0005 005F 0000 8000 0000 0000", + "00AE F8D6 FFC1 FE6B 0000 C000 0000 0003", + "00AE FB06 FFC1 FF47 0000 C000 0000 0003", + "00AE FBCE FFC1 FF47 0000 C000 0000 0003", + "00AE FCE6 FFC1 FE2F 0000 0000 0000 0003", + "00AE FDFE FFC1 FF47 0000 C000 0000 0003" + ] + }, + { + "File": { + "Name": "Scene 7, Room 1", + "Start": "02453000", + "End": "02454AF0", + "RemapStart": null + }, + "Objects": [ + "0069", + "0187", + "000E", + "00A4", + "0190", + "00A8", + "0098" + ], + "Actors": [ + "0090 FCA7 FFC1 FCA2 0000 60B6 0000 7F02", + "0090 FCC4 FFC1 FC55 0000 25B0 0000 7F02", + "0090 FD04 FFC1 FCAB 0000 9A50 0000 7F02", + "0090 FD19 FFC1 FC3E 0000 D8E4 0000 7F02", + "0111 FD6F FFC1 FC4B 0000 0000 0000 4E03", + "0111 FD37 FFC1 FC08 0000 0000 0000 5803", + "000A FCE6 FFC1 FC18 0000 8000 0000 1801" + ] + }, + { + "File": { + "Name": "Scene 7, Room 2", + "Start": "02455000", + "End": "0245F9E0", + "RemapStart": null + }, + "Objects": [ + "0069", + "0187", + "000E", + "00A4", + "011C", + "0179" + ], + "Actors": [ + "01B4 0420 FFC1 0037 0000 4000 0000 0501", + "005E 0565 004B FFBF 0AAB C000 0000 1085", + "005E 0565 004B 00AF 0AAB C000 0000 1085", + "0185 02E2 FFDA 0036 0000 0000 0001 493C", + "0185 0130 FFFE 0126 0000 C000 0015 4F3D", + "00AE 0146 FFC1 FF47 0000 4000 0000 0004", + "00AE 0146 FFC1 0127 0000 4000 0000 0004", + "00AE 0D1E FDE1 0037 0000 C000 0000 0006", + "00F7 029A FFC1 0037 0000 0000 0000 0B00", + "00BE 013C 0011 FF47 0000 4000 0000 0201", + "00F7 029A FFC1 0037 0000 0000 0000 0B01", + "00F7 01C8 0011 0037 0000 0000 0000 0B03", + "00F7 0231 0011 FF81 0000 D555 0000 0B03", + "00F7 0303 0011 FF81 0000 AAAB 0000 0B03", + "00F7 0231 0011 00ED 0000 2AAB 0000 0B03", + "00F7 0303 0011 00ED 0000 5555 0000 0B03", + "00F7 058D FFC1 0037 0000 0000 0000 0B02", + "0110 016E 0150 0072 0000 0000 0000 3009", + "0110 016B FFC1 FFF9 0000 0000 0000 310E", + "0110 016B FFC1 FFC2 0000 0000 0000 3904", + "0110 016D 0150 0034 0000 0000 0000 3A03" + ] + }, + { + "File": { + "Name": "Scene 7, Room 3", + "Start": "02460000", + "End": "02462980", + "RemapStart": null + }, + "Objects": [ + "0069", + "0187", + "000E", + "00A4", + "00B0", + "005D", + "0024", + "015C" + ], + "Actors": [ + "0095 F3E9 FA87 020F 4000 0000 0000 8804", + "00AE F54A FAAD 0135 0000 0000 0000 0005" + ] + }, + { + "File": { + "Name": "Scene 7, Room 4", + "Start": "02463000", + "End": "02464C60", + "RemapStart": null + }, + "Objects": [ + "0069", + "0187", + "000E", + "00A4", + "0190", + "00A8", + "0179", + "00A6" + ], + "Actors": [ + "00A5 F61A FFC1 FEA6 0000 0000 0000 FFFF", + "00A5 F620 FFC1 FE11 0000 0000 0000 FFFF", + "00A5 F678 FFC1 FDCE 0000 0000 0000 FFFF", + "00A5 F688 FFC1 FEED 0000 0000 0000 FFFF", + "00A5 F6DB FFC1 FEB1 0000 0000 0000 FFFF", + "00A5 F6E1 FFC1 FE1C 0000 0000 0000 FFFF", + "00A4 F688 FFC1 FE63 0000 0000 0000 FFFF", + "000A F562 FFC1 FE64 0000 C000 0001 15E7" + ] + }, + { + "File": { + "Name": "Scene 7, Room 5", + "Start": "02465000", + "End": "0246AAC0", + "RemapStart": null + }, + "Objects": [ + "0069", + "0187", + "000E", + "00A4", + "008B" + ], + "Actors": [ + "008A 0D1E FDE1 0037 0000 C000 0000 0700", + "00AE 0D1E FDE1 0037 0000 C000 0000 0006", + "00BE 0E14 FE31 0037 0000 C000 0000 1E01", + "0183 0D1E FDE1 0037 0000 0000 0000 FF41" + ] + }, + { + "File": { + "Name": "Scene 7, Room 6", + "Start": "0246B000", + "End": "024725F0", + "RemapStart": null + }, + "Objects": [ + "0069", + "0187", + "000E", + "00A4", + "0031", + "011C", + "0032", + "0024", + "015C", + "0154", + "00A8", + "0190", + "00B7" + ], + "Actors": [ + "0037 0B68 FE31 FC3F 0000 4000 0000 0000", + "0037 0DE6 FE31 FAA1 0000 0000 0000 0000", + "0037 0EC2 FE31 FB36 0000 C000 0000 0000", + "0037 0F32 FE31 FCEE 0000 C000 0000 0001", + "0117 0AFA FDE1 FC3F 0000 0000 0000 1FC1", + "0117 0BBF FE59 FB3A 0000 0000 0000 1FC1", + "0117 0CAB FDE1 FBDB 0000 0000 0000 1FC1", + "0117 0D47 FDE1 FCBA 0000 0000 0000 1FC1", + "0117 0DE6 FDE1 FA2E 0000 0000 0000 1FC1", + "0117 0D1F FE14 FC4D 0000 0000 0000 0141", + "0173 0FE1 FE20 FB35 0000 FFA6 0000 2181", + "0187 0D1E FDE1 FE2E 0000 0000 0000 1FFF", + "00AE 0F8A FDE1 FB36 0000 0000 0000 0007", + "00AF 0EB8 FDE1 FCEE 0000 4000 0000 0103", + "00B1 0D1E FDE1 FC4E 0000 0000 0000 0000", + "000A 0F98 FDE1 FCEE 0000 4000 0000 0822" + ] + }, + { + "File": { + "Name": "Scene 7, Room 7", + "Start": "02473000", + "End": "02474AE0", + "RemapStart": null + }, + "Objects": [ + "0069", + "0187", + "000E", + "00A4", + "0098", + "000D" + ], + "Actors": [ + "0090 0C8C FDE1 02D6 0000 8000 0000 7FFE", + "0090 0DAA FDE1 02D1 0000 8000 0000 7FFE", + "005E 0CEE FDE1 033E 0000 8000 0000 2400", + "005E 0D50 FDE1 033B 0000 8000 0000 2400", + "0187 0D1E FDE1 0260 0000 0000 0000 1FFF", + "000A 0D22 FDE1 0375 0000 0000 0000 7843" + ] + }, + { + "File": { + "Name": "Scene 7, Room 8", + "Start": "02475000", + "End": "0247A0A0", + "RemapStart": null + }, + "Objects": [ + "0069", + "0187", + "000E", + "00A4", + "008B", + "0024", + "0085", + "011C" + ], + "Actors": [ + "012D 10A2 FD69 01A8 4000 0000 0000 FFC2", + "0037 10A2 FDBC 00FD 0000 4000 0000 0001", + "008A 1322 FD69 00FD 0000 8000 0000 0400", + "008A 10A2 FC29 035E 0000 8000 0000 0700", + "0080 115F FCED 0128 0000 8000 F333 0210", + "0080 11F0 FD1E 00D8 0000 0000 0CCD 0210", + "00BC 10A2 FCBD 0266 0000 0000 0000 0000", + "00BC 10A2 FCBD 045A 0000 0000 0000 0000" + ] + }, + { + "File": { + "Name": "Scene 7, Room 9", + "Start": "0247B000", + "End": "02487C90", + "RemapStart": null + }, + "Objects": [ + "0069", + "0187", + "000E", + "00A4", + "008B", + "0085", + "005D", + "012F", + "011C", + "0179", + "0031" + ], + "Actors": [ + "012D 083E FCC4 0D2C 20B6 305B 0000 FFC2", + "01B4 0B18 FAE9 0D07 0000 0000 0000 0F01", + "01B4 0BD3 FB1F 0D07 0000 0000 0000 0F01", + "01B4 0C8E FB55 0D07 0000 0000 0000 0F01", + "01B4 0D48 FB89 0D07 0000 0000 0000 0F01", + "0069 0EB7 FB6E 0C33 0000 8000 0000 FFFE", + "008A 0E5E FB89 0CE9 0000 8000 0000 0700", + "008A 0EFE FB89 0CE9 0000 8000 0000 0700", + "0080 083E FAC1 0D2C 0000 0000 0000 1220", + "0080 083E FAC1 0D2C 0000 0000 0000 1620", + "008A 083E FAC1 0D2C 0000 4000 0000 0501", + "012A 0677 FAC1 0D2C 0000 4000 0000 0903", + "0141 0B4D FAC1 0A91 0000 127D 0000 0027", + "0117 07B2 FAC1 0D2C 0000 0000 0000 1FD1", + "0117 083E FBBC 0D2C 0000 0000 0000 1FD1", + "0117 083E FC36 0D2C 0000 0000 0000 1FD1", + "0117 0853 FAC1 0BD6 0000 0000 0000 1FD1", + "0117 08CA FAC1 0D2C 0000 0000 0000 1FD1", + "0117 0727 FB56 0D32 0000 0000 0000 0151", + "004C 0EAE FB89 0D0E 0000 0000 0000 FFFF", + "012A 11A6 FB4D 0D2E 0000 BF4A 0000 0F82", + "00BC 0B7D FB55 0A55 0000 0000 0000 0000", + "00BC 0EAE FCBD 09F0 0000 0000 0000 0000", + "00BC 0EAE FCBD 0874 0000 0000 0000 0005", + "00BC 0EAE FC1D 0BD0 0000 0000 0000 0005", + "00AF 06AF FAC1 0D2C 0000 C000 0000 0903", + "00AF 0A92 FAC1 07DE 0000 0000 0000 0000", + "00AE 0F56 FB17 0B48 0000 0000 0000 0008", + "000A 083E FCF8 0E87 0000 0000 0011 892F", + "0183 0EAE FB89 0D0E 0000 0000 0000 FF41" + ] + }, + { + "File": { + "Name": "Scene 7, Room 10", + "Start": "02488000", + "End": "0248F7F0", + "RemapStart": null + }, + "Objects": [ + "0069", + "0187", + "000E", + "00A4", + "012F", + "0024", + "015C", + "0085" + ], + "Actors": [ + "00FF 03C1 FAC1 0E65 0000 0000 0000 FF02", + "0095 0302 FB08 0FE2 C000 4000 0000 8802", + "0141 046C FAC1 1007 0000 8000 0000 0026", + "0111 0266 FAC1 0DFB 0000 0000 0000 4803", + "0111 031E FAC1 0DF6 0000 0000 0000 4A04", + "0111 0495 FB61 0E7B 0000 0000 0000 5603", + "0111 0495 FB61 0E15 0000 0000 0000 5A03", + "012A 02E2 FB61 0FE3 0000 0000 0000 0400", + "0080 0277 FAC1 0E88 0000 4000 0000 0210", + "00AE 03C1 FAC1 0EAB 0000 0000 0000 0009", + "00BC 01FF FB89 0F0F 0000 0000 0000 0001", + "00BC 02C7 FB89 0F0F 0000 0000 0000 0001", + "000A 0453 FC00 0E4B 0000 4000 0004 8844", + "000A 01F9 FAC1 0E49 0000 4000 0000 5945", + "000A 00E0 FB61 0FF0 0000 C000 0000 5886" + ] + }, + { + "File": { + "Name": "Scene 7, Room 11", + "Start": "02490000", + "End": "02493E60", + "RemapStart": null + }, + "Objects": [ + "0069", + "0187", + "000E", + "00A4", + "0098", + "0179", + "011C" + ], + "Actors": [ + "012D 09AE FC79 04B0 4000 0000 0000 FFC2", + "012D 09AE FC79 057C 4000 0000 0000 FFC2", + "01B4 097C FBED 0360 0000 0000 0000 0801", + "01B4 097C FBED 03C4 0000 0000 0000 0801", + "01B4 09AE FB61 04B0 0000 0000 0000 0801", + "01B4 09AE FB61 057C 0000 0000 0000 0801", + "01B4 09E0 FBED 0360 0000 0000 0000 0801", + "01B4 09E0 FBED 03C4 0000 0000 0000 0801", + "0090 0849 FAC1 049F 0000 1555 0000 0102", + "0090 0B17 FAC1 04C1 0000 EAAB 0000 0102", + "0117 07FA FB4D 0351 0000 0000 0000 1FC8", + "0117 0857 FB37 0511 0000 0000 0000 1FC8", + "0117 08CE FB4D 03DC 0000 0000 0000 1FC8", + "0117 09AE FC31 037D 0000 0000 0000 1FC8", + "0117 09AE FAC1 04B8 0000 0000 0000 1FC8", + "0117 09AE FBB4 04B0 0000 0000 0000 1FC8", + "0117 09AE FBB4 057C 0000 0000 0000 1FC8", + "0117 0A91 FACF 0441 0000 0000 0000 1FC8", + "0117 0AAA FB4D 036C 0000 0000 0000 1FC8", + "0117 0B7C FB0F 042D 0000 0000 0000 1FC8", + "0117 09AE FAC1 0434 0000 0000 0000 0288", + "00AE 09AE FAC1 046E 0000 0000 0000 000C", + "000A 09AE FAC1 03F4 0000 8000 0000 7889" + ] + }, + { + "File": { + "Name": "Scene 7, Room 12", + "Start": "02494000", + "End": "02499750", + "RemapStart": null + }, + "Objects": [ + "0069", + "0187", + "000E", + "00A4", + "005D", + "00D4", + "00AA", + "00CD", + "000D", + "0024", + "015C", + "0031" + ], + "Actors": [ + "0015 E91E FAAD F9BB 0000 0000 0000 0611", + "0112 EC3B FBE6 F9CD 0000 C000 0001 19F8", + "0008 E87D FC59 FB1A 0000 0000 0000 03F7", + "0008 E87E FC56 F883 0000 0000 0000 03F7", + "0008 EBBE FBD1 F87D 0000 0000 0000 03F7", + "0008 EBC3 FBD1 FB16 0000 0000 0000 03F7", + "004C E818 FBB1 F91D 0000 0000 0000 FFFF", + "004C E818 FBB1 FA8A 0000 0000 0000 FFFF", + "00BB EA00 FAC1 F94F 0000 D555 0000 00FF", + "00BB EA00 FAC1 FA4A 0000 2AAB 0000 00FF", + "00BB EADA FAC1 F9CD 0000 8000 0000 00FF", + "00AF EA49 FAAD F9CD 0000 8000 0000 0002" + ] + }, + { + "File": { + "Name": "Scene 7, Room 13", + "Start": "0249A000", + "End": "0249B020", + "RemapStart": null + }, + "Objects": [ + "0069", + "0187", + "000E", + "00A4", + "000D", + "0024" + ], + "Actors": [ + "0013 EFC0 FACB F583 0000 0000 0000 0003", + "0013 EE98 FAD0 F582 0000 0000 0000 0003", + "0013 EF91 FB2A F6E0 0000 8000 0000 0003", + "0013 EEA5 FADB F6DD 0000 8000 0000 0003", + "0037 F07B FB4D F5F6 0000 0000 0000 0002", + "0037 F03D FB4D F5BB 0000 C000 0000 0002", + "0037 EDE6 FB4D F63D 0000 0000 0000 0002", + "0037 F07D FB4D F67B 0000 0000 0000 0002", + "0111 EF31 FAAD F59F 0000 0000 0000 4C0E", + "00BC EE48 FAAD F631 0000 C000 0000 0003", + "00BC F014 FAAD F631 0000 C000 0000 0002", + "000A F07B FAAD F5BD 0000 8000 0000 27EB", + "000A EDE4 FAAD F5B8 0000 8000 0000 588A" + ] + }, + { + "File": { + "Name": "Scene 7, Room 14", + "Start": "0249C000", + "End": "024A1900", + "RemapStart": null + }, + "Objects": [ + "0069", + "0187", + "000E", + "00A4", + "0032" + ], + "Actors": [ + "0008 04A2 FC66 052D 0000 0000 0000 03F7", + "0008 04A3 FC66 034A 0000 0000 0000 03F7", + "0008 0762 FBF6 034E 0000 0000 0000 03F7", + "0008 0762 FBF6 052A 0000 0000 0000 03F7", + "0002 045A FBC5 0439 0000 4000 0000 0003", + "0002 05D1 FAD5 043B 0000 4000 0000 0003", + "000A 04E4 FBC5 043B 0000 4000 0000 79D0" + ] + }, + { + "File": { + "Name": "Scene 7, Room 15", + "Start": "024A2000", + "End": "024A92C0", + "RemapStart": null + }, + "Objects": [ + "0069", + "0187", + "000E", + "00A4", + "005D", + "00D4", + "00CB", + "00DC", + "00F2" + ], + "Actors": [ + "0069 EE15 FAAD F894 0000 6222 0000 FFFF", + "0069 F04A FAAD FB05 0000 E000 0000 FFFF", + "00DD EE69 FAAD F9CF 0000 4000 0000 FFFF", + "0008 EDAB FB00 F84A 0000 0000 0000 03F7", + "0008 EDAB FB00 FB50 0000 0000 0000 03F7", + "0008 F0B2 FB00 F84A 0000 0000 0000 03F7", + "0008 F0B4 FB00 FB50 0000 0000 0000 03F7", + "00AE EF2E FAAD F9CE 0000 0000 0000 000A" + ] + }, + { + "File": { + "Name": "Scene 7, Room 16", + "Start": "024AA000", + "End": "024AC930", + "RemapStart": null + }, + "Objects": [ + "0069", + "0187", + "000E", + "00A4", + "000D", + "00D4", + "00DC", + "00F2", + "00CB", + "0190", + "00A8", + "00B7" + ], + "Actors": [ + "0013 1377 FC38 0A9A 0000 8000 0000 0003", + "0013 13E1 FC31 0611 0000 0000 0000 0003", + "0013 163E FC5A 09D8 0000 9555 0000 0003", + "00DD 1605 FB89 0856 0000 C000 0000 FFFF", + "0015 162C FBFC 061D 0000 0000 0000 2003", + "0015 163F FBFC 0635 0000 0000 0000 2103", + "01D1 1625 FB89 0631 0000 0000 0002 380A", + "01D1 1624 FB89 0A7D 0000 0000 0000 3812", + "0117 13E1 FB89 0801 0000 0000 0000 1FC3", + "0117 1426 FB89 090B 0000 0000 0000 1FC3", + "0117 1461 FB89 073C 0000 0000 0000 1FC3", + "0117 1496 FB89 0995 0000 0000 0000 1FC3", + "0117 151C FB89 07B9 0000 0000 0000 1FC3", + "0117 155A FB89 08C3 0000 0000 0000 1FC3", + "0117 1571 FB89 09AC 0000 0000 0000 1FC3", + "0117 15E1 FB89 076A 0000 0000 0000 1FC3", + "0117 1605 FB89 0856 0000 0000 0000 1FC3", + "0117 1623 FBED 0A7E 0000 0000 0000 1FC3", + "0117 1376 FB89 085A 0000 0000 0000 0283", + "00AF 1664 FB89 0856 0000 4000 0000 0303", + "00B1 14C6 FB89 0857 0000 C000 0000 0001", + "000A 1736 FB89 088C 0000 4000 0000 6856", + "000A 1735 FB89 081F 0000 4000 0000 588C" + ] + }, + { + "File": { + "Name": "Scene 7, Room 17", + "Start": "024AD000", + "End": "024AFDE0", + "RemapStart": null + }, + "Objects": [ + "0069", + "0187", + "000E", + "00A4", + "000B", + "00A6", + "0031", + "012F" + ], + "Actors": [ + "00A4 EF30 FAAD FE36 0000 8000 0000 FFFF", + "0111 EE21 FAAD FCD5 0000 0000 0000 660B", + "0111 F03C FAAD FCD5 0000 0000 0000 680A", + "004C EE50 FAAD FE96 0000 216C 0000 FFFF", + "004C EE64 FAAD FD4A 0000 27D2 0000 FFFF", + "004C EE86 FAAD FE63 0000 D1C7 0000 FFFF", + "004C EE98 FAAD FD9E 0000 DD28 0000 FFFF", + "004C EED2 FAAD FE52 0000 6C17 0000 FFFF", + "004C EEFA FAAD FD44 0000 F99A 0000 FFFF", + "004C EF5D FAAD FD78 0000 149F 0000 FFFF", + "004C EF99 FAAD FEB9 0000 1555 0000 FFFF", + "004C EFB5 FAAD FE02 0000 1777 0000 FFFF", + "004C EFD1 FAAD FE86 0000 A16C 0000 FFFF", + "004C EFD5 FAAD FCF2 0000 22D8 0000 FFFF", + "004C EFEE FAAD FD3B 0000 B8E4 0000 FFFF", + "004C EFF7 FAAD FE35 0000 E444 0000 FFFF", + "000A EF2F FAAD FE95 0000 0000 0000 794D" + ] + }, + { + "File": { + "Name": "Scene 7, Room 18", + "Start": "024B0000", + "End": "024BD310", + "RemapStart": null + }, + "Objects": [ + "0069", + "0187", + "000E", + "00A4", + "000D", + "0024", + "0085" + ], + "Actors": [ + "0037 0BA9 FC0D 002C 0000 0000 0000 0001", + "0080 0A37 FB4D 0137 0000 0000 0000 0110", + "0080 0B20 FB4D 018C 0000 8000 0000 0210", + "00AE 1124 FAAD FE6A 0000 0000 0000 000B", + "00BC 0BAC FB82 FF5B 0000 0000 0000 0004", + "00BC 0BD2 FB82 0162 0000 C000 0000 0004", + "00BC 0E02 FB82 FF82 0000 C000 0000 0004", + "00BC 0F94 FAE2 0070 0000 8000 0000 0004", + "00BC 105C FAE2 FE93 0000 0000 0000 0004", + "00BC 1124 FAE2 0070 0000 8000 0000 0004" + ] + }, + { + "File": { + "Name": "Scene 7, Room 19", + "Start": "024BE000", + "End": "024C0D80", + "RemapStart": null + }, + "Objects": [ + "0069", + "0187", + "000E", + "00A4", + "0098", + "0024", + "015C" + ], + "Actors": [ + "0090 1376 FAAD FF9E 0000 44FA 0000 7F01", + "0090 138C FAAD FF2B 0000 1A50 0000 7F01", + "0090 13A2 FAAD FFCB 0000 5B06 0000 7F01", + "0090 13C5 FAAD FF5C 0000 305B 0000 7F01", + "0095 13F4 FB5D FF82 4000 C000 0000 8801", + "0183 1343 FAAD FF81 0000 0000 0000 FF40", + "0173 13ED FB37 FF82 0000 FFA6 0000 2228", + "000A 13D0 FAAD FFED 0000 4000 0000 6855" + ] + }, + { + "File": { + "Name": "Scene 7, Room 20", + "Start": "024C1000", + "End": "024C2E40", + "RemapStart": null + }, + "Objects": [ + "0069", + "0187", + "000E", + "00A4", + "008D", + "0098", + "0024", + "015C" + ], + "Actors": [ + "0090 109D FAAD FBD2 0000 1555 0000 7FFE", + "0090 11AF FAAD FBC7 0000 EAAB 0000 7FFE", + "0095 1063 FAAD FAED 0000 1C72 0000 8808", + "0111 107E FAAD FC6C 0000 0000 0000 5C01", + "0111 11C5 FAAD FC66 0000 0000 0000 640C", + "011D 1086 FAAD FB64 0000 0000 0000 00F6", + "011D 11C3 FAAD FB61 0000 0000 0000 03F7", + "00BE 106F FAC7 FAE1 0000 0000 0000 1302", + "00BE 11D9 FAC7 FD19 0000 8000 0000 1C02", + "000A 11E7 FAAD FD0D 0000 4000 0000 6934", + "000A 1129 FAAD FBCC 0000 8000 0000 7888" + ] + }, + { + "File": { + "Name": "Scene 7, Room 21", + "Start": "024C3000", + "End": "024CE5B0", + "RemapStart": null + }, + "Objects": [ + "0069", + "0187", + "000E", + "00A4", + "0031", + "011C", + "0032", + "0024", + "015C", + "0154", + "00A8", + "0190", + "00B7" + ], + "Actors": [ + "012D F22A FC15 FC83 0000 4000 0000 0CC1", + "012D F34A FAAD FC8A 0000 0000 0000 0CC1", + "012E 123E FB78 F82B 0000 C000 0001 1CB8", + "0095 0F26 FC4A FA29 0000 4000 0000 0000", + "0037 0F47 FB9D FA32 0000 4000 0000 0002", + "01C9 0F84 FBED F9A0 0000 4000 0003 0539", + "00FF 0F62 FAAD FA32 0000 0000 0000 1D02", + "00FF 117E FA9E F9CE 0000 0000 0000 1DC6", + "0139 117E FA9E F9CE 0000 0000 0000 001D", + "0015 0F83 FBED F94C 0000 0000 0000 2203", + "0015 0F82 FBED F9E8 0000 0000 0000 2303", + "0015 F26F FC15 FC61 0000 0000 0000 3903", + "0015 F271 FC15 FC8C 0000 0000 0000 3A03", + "0015 F3A4 FB4F FD7A 0000 0000 0000 3C03", + "0095 F7FF FA35 FA75 4000 0000 0000 8810", + "01D1 F39E FAAD FD12 0000 0000 0002 B8FF", + "0002 04B9 FC32 F842 0000 0000 0000 0003", + "0002 0ABA FC21 F825 0000 0000 0000 0003", + "0173 F55C FAF3 FDAC 0006 0011 001E 2084", + "0111 F6A0 FAAD FA42 0000 0000 0000 7009", + "0111 F74A FAAD FA42 0000 0000 0000 7609", + "0111 F4D5 FAAD FE0F 0000 0000 0000 7A0A", + "0111 F5C0 FAAD FE14 0000 0000 0000 7C0E", + "012A F230 FC15 FC53 0000 0000 0000 1A00", + "004C F6EF FAAD FCFE 0000 8000 0000 FFFF", + "004C F70D FAAD FC93 0000 8000 0000 FFFF", + "004C F722 FAAD FD19 0000 8000 0000 FFFF", + "004C F736 FAAD FCBD 0000 8000 0000 FFFF", + "004C F74B FAAD FCF3 0000 8000 0000 FFFF", + "012A F39B FAD0 FD44 0000 8000 0000 0C02", + "00BE F72F FAD5 FD45 0000 0000 0000 1000", + "00B0 1282 FA8D F82A 0000 0000 0000 3800", + "000A 0F5A FB4D FAAA 0000 C000 0000 684E" + ] + }, + { + "File": { + "Name": "Scene 7, Room 22", + "Start": "024CF000", + "End": "024D19B0", + "RemapStart": null + }, + "Objects": [ + "0069", + "0187", + "000E", + "00A4", + "00B0" + ], + "Actors": [] + } + ] + }, + { + "File": { + "Name": "Scene 8", + "Start": "024D2000", + "End": "024DE590", + "RemapStart": null + }, + "TActors": [ + "01FF 00FF 002E FC86 0000 FF9C 0000 009F", + "03FF 00FF 002E 0366 0000 FCA4 0000 02D5", + "03FF 00FF 002E 0474 0000 FA74 8000 00BB", + "05FF 00FF 002E 01C2 0000 FC7C 0000 008A", + "06FF 00FF 002E FE66 0000 FC7C 0000 008C", + "00FF 02FF 002E F9DE 0000 FD1C C000 02D4", + "00FF 04FF 002E 0384 FFEC 00D2 4000 0056", + "00FF 01FF 0023 FECA FEE8 FDE4 0000 00BF", + "00FF 01FF 0023 FC7C FEE8 FA24 0000 00BF", + "00FF 01FF 0023 0000 FF10 FD1C 0000 00BF", + "05FF 01FF 0023 0172 FEE8 FB82 0000 00BF", + "00FF 01FF 0023 0280 FEE8 FA10 0000 00BF", + "03FF 01FF 0023 044C FEE8 FB28 C000 00BF", + "03FF 01FF 0023 0384 FEE8 FBB4 C000 00BF", + "03FF 01FF 0023 0410 FEE8 FC7C C000 00BF" + ], + "Paths": [ + { + "Points": [ + [ + 847, + -391, + -1432 + ], + [ + 565, + -654, + -1240 + ], + [ + 123, + -664, + -1109 + ], + [ + -41, + -645, + -634 + ], + [ + -8, + -654, + -282 + ], + [ + 75, + -645, + 29 + ] + ] + }, + { + "Points": [ + [ + 1286, + -391, + -1123 + ], + [ + 1066, + -673, + -1077 + ], + [ + 834, + -654, + -841 + ], + [ + 443, + -645, + -757 + ], + [ + 249, + -654, + -459 + ], + [ + 107, + -664, + -158 + ] + ] + } + ], + "Rooms": [ + { + "File": { + "Name": "Scene 8, Room 0", + "Start": "024DF000", + "End": "024F4720", + "RemapStart": null + }, + "Objects": [ + "008D", + "0187", + "000E", + "00A4", + "0098", + "0024", + "015C", + "0059", + "0163", + "000B", + "00AA", + "011F", + "0090", + "00B7" + ], + "Actors": [ + "0095 0455 0048 FD27 0000 C000 0000 0000", + "0095 0456 0068 FCEC 0000 C000 0000 0000", + "0037 FEC9 00A0 FE67 0000 C000 0000 0001", + "0011 FFFE 0000 FD1A 0000 0000 0000 0001", + "0090 001D 0000 0254 0000 DC72 0000 7F02", + "0112 FD92 0062 F9EF 0000 0000 0004 18BF", + "0112 FD92 0062 F9EF 0000 0000 0004 18BF", + "0112 027F 0060 F9EE 0000 0000 0004 18BF", + "0112 FD92 0062 F9EF 0000 0000 0004 19FF", + "0112 027F 0061 F9EC 0000 0000 0004 19FF", + "0112 FD92 0062 F9EF 0000 0000 0004 1AFF", + "0112 027F 0061 F9ED 0000 0000 0004 1AFF", + "0112 027F 0061 F9EE 0000 0000 0004 1AFF", + "0183 0153 0000 FE4B 0000 0000 0000 FF40", + "012A 0064 0058 F967 2EEF CAAB 0000 0303", + "00D7 0000 0000 FD1C 0000 0000 0000 0003", + "000A 0001 0000 FCE1 0000 0000 0000 0823", + "01BB 020F 0000 FF49 0000 4000 0000 0FC5", + "012A FE84 0056 FF61 0000 C000 0000 0502", + "0127 FDE3 0000 FE6C 0000 0000 0000 0006", + "0127 FDF7 0000 FE9F 0000 0000 0000 0007", + "01BB 0002 FFF6 FD44 C000 0000 0000 0FC8", + "012A 0452 0000 FCD0 0000 0000 0000 0800", + "01BB FC7C FFF6 F9E8 4000 0000 0000 0FC9", + "012A 015B 0074 FEC0 4000 8000 0000 0A03", + "005E 017B 0000 FCB6 0000 0000 0000 03CA", + "0127 FE8E 0032 FF60 0000 0000 0000 000B", + "005E FEC6 0000 FCBE 0000 0000 0000 03CC", + "012A FF34 0000 FDE0 0000 0000 0000 0C00", + "012E 000A FFF6 FA08 0000 8000 0001 1C8D", + "01BB FE0C 0000 FD1C 0000 C000 0000 0FCD", + "01BB 0000 0000 FB00 0000 8000 0000 0FCD", + "01BB 0000 0000 FED4 0000 0000 0000 0FCD", + "01BB 021C 0000 FD1C 0000 4000 0000 0FCD", + "0185 000A 0000 FA22 0000 0000 000B 8ACD", + "011B 0003 0000 FD4C 0032 0000 0004 2091", + "0015 FFAD FF24 FEA2 0000 0000 0000 2103", + "0015 FFAD FF24 FEEE 0000 0000 0000 2203", + "00BE 0427 0018 FCF0 0000 C000 0000 2502", + "00BE FFC0 000A 03D7 0000 4000 0000 2602", + "0111 0153 0000 FE87 0000 0000 0000 4E09", + "00BE 00CA 0018 0155 0000 8000 0000 2702", + "0111 01A0 0000 FE87 0000 0000 0000 500B", + "00BE FBC8 0018 FA3B 0000 0000 0000 2802", + "0111 010D 0000 FE88 0000 0000 0000 5203", + "00BE FF38 0018 FF3B 0000 0000 0000 2902", + "0111 01A5 0000 FF52 0000 0000 0000 5412", + "00BE FA1D 0010 FCB0 0000 0000 0000 2A02", + "00BE 0345 0000 012C 0000 8000 0000 2B02", + "00BE FFC3 FFB3 F99A 0000 0000 0000 2C02", + "00BE FB74 FF4E FD7C 0000 8000 0000 2D02", + "0173 FC38 003B 0057 0002 0000 0000 2E26", + "0173 FFBE 003E 01BB 0004 0000 0001 2F26", + "012A 04E2 0074 FA31 C000 4000 0000 3B03" + ] + }, + { + "File": { + "Name": "Scene 8, Room 1", + "Start": "024F5000", + "End": "02500130", + "RemapStart": null + }, + "Objects": [ + "008D", + "0187", + "000E", + "00A4", + "0098", + "0024", + "015C", + "0059", + "0163", + "000B", + "00AA", + "011F", + "0090", + "00B7" + ], + "Actors": [ + "003B FECA FD20 FF5F 0000 0000 0000 0008", + "0037 FC82 FDF8 FB73 0000 1333 0000 0002", + "0037 FD15 FDF8 FC38 0000 1A50 0000 0002", + "0037 FD3F FDE9 FD00 0000 13E9 0000 0002", + "0011 FFE6 FD92 FEBC 0000 0000 0000 0000", + "0090 0238 FD30 005A 0000 2C17 0000 7F02", + "0090 025B FD30 0022 0000 305B 0000 7F02", + "0090 0276 FD30 0080 0000 E889 0000 7F02", + "0090 028B FD30 00AD 0000 A5B0 0000 7F02", + "0090 02CC FD30 00A7 0000 9555 0000 7F02", + "0008 FDAC FD6E FEA2 0000 0000 0000 03F7", + "0008 FDAD FD6E FF06 0000 0000 0000 03F7", + "0008 0000 FD30 0009 0000 0000 0000 03F7", + "0008 012B FD30 FFC0 0000 0000 0000 03F7", + "0008 01AB FD30 00BC 0000 0000 0000 03F7", + "0008 02B5 FD30 FFEF 0000 0000 0000 03F7", + "0008 02F6 FD30 0059 0000 0000 0000 03F7", + "0183 027F FD30 FA4E 0000 0000 0000 FF40", + "0130 0352 FE6F FA65 0000 0000 0001 0D00", + "0130 0504 FE5C FB9E 0000 0000 0001 0D01", + "0095 FC76 FD30 FA29 0000 0000 0000 8901", + "000A 02D4 FD30 0021 0000 582E 000E B141", + "012A 0061 FDD0 FCF3 0000 F111 0000 0E00", + "011B 0004 FDD0 FD12 001E 0000 0004 2091", + "011B FECB FD25 FDDF 001E 0000 0004 2091", + "011B 0171 FD30 FB82 001E 0000 0004 2091", + "011B 0281 FD30 FA13 001E 0000 0004 2091", + "0015 043B FD30 FB6A 0000 0000 0000 3C03", + "0015 0414 FD30 FB39 0000 0000 0000 3D03", + "0015 045A FD30 FB39 0000 0000 0000 3E03" + ] + }, + { + "File": { + "Name": "Scene 8, Room 2", + "Start": "02501000", + "End": "02504160", + "RemapStart": null + }, + "Objects": [ + "008D", + "0187", + "000E", + "015C", + "0098", + "0024", + "00A4", + "0009" + ], + "Actors": [ + "0090 F927 0000 FD1E 0000 4000 0000 7FFE", + "000D F6DB 0032 FD91 0000 0000 0000 0000", + "005E F7DB 0000 FC40 0000 0000 0000 2400", + "0095 F612 0000 FC6A 0000 0000 0000 8904", + "005E F8A3 0000 FC40 0000 0000 0000 100F", + "00BD F84E 0028 FCE0 0000 8000 0000 010F", + "005E F7DB 0000 FDF8 0000 0000 0000 1010", + "00BD F7B8 0028 FD58 0000 0000 0000 0110", + "005E F713 0000 FC40 0000 0000 0000 1011", + "00BD F6BE 0028 FCE0 0000 8000 0000 0111", + "0015 F867 000A FCA1 0000 0000 0000 2003", + "0015 F7A1 000A FD93 0000 0000 0000 2303" + ] + }, + { + "File": { + "Name": "Scene 8, Room 3", + "Start": "02505000", + "End": "02506CC0", + "RemapStart": null + }, + "Objects": [ + "008D", + "0187", + "000E", + "00A4", + "0098", + "0024", + "015C", + "0059", + "0163", + "000B", + "00AA", + "011F", + "0090", + "00B7" + ], + "Actors": [ + "0011 03EC 00B1 FBD6 0000 0000 0000 0000", + "008E 03E6 0000 FC11 0000 6AAB 0000 0000", + "01BB 02E4 FFF6 FB50 4000 4000 0000 0FFF", + "01BB 02E4 FFF6 FBC8 4000 4000 0000 0FFF", + "01BB 0370 FFF6 FC5E 4000 4000 0000 0FFF", + "01BB 03AC FFF6 FB3C 4000 4000 0000 0FFF", + "01BB 03D4 FFF6 FB50 4000 C000 0000 0FFF", + "01BB 03D4 FFF6 FBC8 4000 C000 0000 0FFF", + "01BB 0460 FFF6 FC5E 4000 C000 0000 0FFF", + "01BB 049C FFF6 FB3C 4000 C000 0000 0FFF", + "011B 0473 0000 FAA9 001E 0000 0004 2291", + "011B 0364 0000 FC80 001E 0000 0004 2291" + ] + }, + { + "File": { + "Name": "Scene 8, Room 4", + "Start": "02507000", + "End": "025094A0", + "RemapStart": null + }, + "Objects": [ + "008D", + "0187", + "000E", + "00A6", + "012B" + ], + "Actors": [ + "0125 05B2 FFEC FF7E 0000 0000 0000 FF01", + "0125 05D4 FFEC FFCF 0000 0000 0000 FF01", + "0125 05F9 FFEC 0002 0000 0000 0000 FF01", + "0125 0644 FFEC 0003 0000 0000 0000 FF01", + "00A5 0464 FFEC 003A 0000 C000 0000 FFFF", + "00A5 0464 FFEC 0173 0000 C000 0000 FFFF", + "00A5 059D FFEC 0036 0000 C000 0000 FFFF", + "00A5 059D FFEC 0170 0000 C000 0000 FFFF", + "00A4 04FC FFF0 00D1 0000 C000 0000 FFFF", + "0015 0644 FFEC FFA8 0000 0000 0000 0211", + "000A 0524 FFEC 0079 0000 C000 0000 1802", + "00BE 062C 0000 FFA6 0000 C000 0000 2102" + ] + }, + { + "File": { + "Name": "Scene 8, Room 5", + "Start": "0250A000", + "End": "0250C990", + "RemapStart": null + }, + "Objects": [ + "008D", + "0187", + "000E", + "00A4", + "0098", + "0024", + "015C", + "0059", + "0163", + "000B", + "00AA", + "011F", + "0090", + "00B7" + ], + "Actors": [ + "0112 00A0 0061 FB05 0000 0000 0004 18BF", + "0112 00A0 0061 FB05 0000 0000 0004 18BF", + "0112 00A0 0061 FB05 0000 0000 0004 19FF", + "0112 00A0 0061 FB05 0000 0000 0004 1AFF", + "00AE 017C 0000 FB32 0000 0000 0000 0002", + "0015 008C 0000 FB3E 0000 0000 0000 0111", + "0111 0120 0000 FB28 0000 0000 0000 4803", + "0111 01B6 0000 FB2E 0000 0000 0000 4A03", + "0111 01BC 0000 FBA6 0000 0000 0000 4C03" + ] + }, + { + "File": { + "Name": "Scene 8, Room 6", + "Start": "0250D000", + "End": "0250FEA0", + "RemapStart": null + }, + "Objects": [ + "008D", + "0187", + "00A2", + "000D", + "0024", + "00AA", + "015C" + ], + "Actors": [ + "0013 FE98 0023 FBB1 0000 4000 0000 8003", + "0013 FEB3 001A FB92 0000 0000 0000 8003", + "0013 FED9 001F FBAC 0000 C000 0000 8003", + "0037 FE52 0000 FBB5 0000 0000 0000 0002", + "0037 FEB4 0000 FC1B 0000 0000 0000 0002", + "009D FEB7 0000 FBC3 0000 0000 0000 0000", + "0095 FEB6 0000 FBB9 0000 0000 0000 8902" + ] + } + ] + }, + { + "File": { + "Name": "Scene 9", + "Start": "02510000", + "End": "025216C0", + "RemapStart": null + }, + "TActors": [ + "01FF 0AFF 0023 FD66 009B 059A AFA5 013F", + "03FF 08FF 0023 0386 00AC FCF7 1F4A 013F", + "02FF 03FF 0023 0032 0014 0102 44FA 013F", + "01FF 02FF 0023 FF8B 0006 025C C000 013F", + "01FF 00FF 0023 009A 0007 076B 4000 013F", + "03FF 04FF 0023 FF05 0009 FE95 C000 013F", + "04FF 05FF 0023 FE4F 001A FC3D 9E94 013F", + "06FF 05FF 0023 FAC7 0084 FFAF 9C72 013F", + "08FF 09FF 0023 0383 00AC F9E8 CD83 013F", + "03FF 0BFF 0023 02FC FFE5 001B EAAB 013F", + "07FF 0AFF 002E FC9E 0050 04C0 20B6 003F", + "06FF 07FF 002E FAC4 0118 02D9 2000 0054" + ], + "Paths": [ + { + "Points": [ + [ + 603, + 206, + 1826 + ], + [ + 553, + 32, + 1882 + ], + [ + 511, + 32, + 2001 + ], + [ + 560, + 32, + 2154 + ], + [ + 192, + 32, + 2575 + ], + [ + -31, + 32, + 2587 + ] + ] + }, + { + "Points": [ + [ + 298, + 498, + -134 + ], + [ + 302, + 55, + 60 + ], + [ + 255, + 55, + 211 + ], + [ + -7, + 55, + 265 + ], + [ + -327, + 55, + 322 + ] + ] + }, + { + "Points": [ + [ + -638, + 452, + -1163 + ], + [ + -453, + 63, + -974 + ], + [ + -359, + 51, + -824 + ], + [ + -382, + 63, + -671 + ], + [ + -500, + 85, + -545 + ], + [ + -445, + 70, + -356 + ] + ] + }, + { + "Points": [ + [ + 1475, + 702, + -1248 + ], + [ + 1308, + 231, + -911 + ], + [ + 1080, + 231, + -644 + ] + ] + }, + { + "Points": [ + [ + 900, + 700, + -1694 + ], + [ + 1062, + 230, + -1560 + ], + [ + 1059, + 230, + -1483 + ], + [ + 1056, + 230, + -1402 + ], + [ + 969, + 230, + -1236 + ], + [ + 962, + 230, + -1166 + ], + [ + 955, + 230, + -1101 + ], + [ + 1024, + 230, + -996 + ], + [ + 1024, + 230, + -954 + ], + [ + 1024, + 230, + -954 + ] + ] + } + ], + "Rooms": [ + { + "File": { + "Name": "Scene 9, Room 0", + "Start": "02522000", + "End": "0252A680", + "RemapStart": null + }, + "Objects": [ + "006B", + "0016", + "011F", + "0114", + "0179", + "0024", + "015C", + "0190", + "00A8", + "0183", + "000E", + "0154", + "000D" + ], + "Actors": [ + "01C7 0144 0003 08E8 0000 0000 0000 0000", + "01C7 011F 0003 092A 0000 0000 0000 0000", + "0130 0258 0004 0725 0000 0000 0001 0D00", + "0111 00F8 000A 08EF 0000 0000 0000 4003", + "0112 00C3 0002 0A2D 0000 0000 0000 3FE8", + "0112 00A8 0002 09E5 0000 0000 0000 3FE8" + ] + }, + { + "File": { + "Name": "Scene 9, Room 1", + "Start": "0252B000", + "End": "02537530", + "RemapStart": null + }, + "Objects": [ + "006B", + "0016", + "011F", + "0114", + "0179", + "0024", + "015C", + "0190", + "00A8", + "0183", + "000E", + "0154", + "000D" + ], + "Actors": [ + "0121 0004 FFF6 0422 0000 0000 0000 0000", + "001B FF7C FFF6 04E4 0000 0000 0000 FFFE", + "001B 008C FFF6 04E8 0000 0000 0000 FFFE", + "01C7 00CC 01A4 038E 0000 0000 0000 0001", + "01C7 010C 01A4 03D4 0000 0000 0000 0001", + "0111 0033 000B 02CE 0000 0000 0000 4A03", + "0111 0034 000A 0300 0000 0000 0000 4C03", + "012A 0140 0062 0374 1111 F333 02D8 2813", + "01B4 FFCD 0033 0348 4000 0000 0000 2801", + "01B4 0031 0033 0348 4000 0000 0000 2801", + "01B4 0031 0097 0348 4000 0000 0000 2801", + "01B4 FFCD 0097 0348 4000 0000 0000 2801" + ] + }, + { + "File": { + "Name": "Scene 9, Room 2", + "Start": "02538000", + "End": "0253DB00", + "RemapStart": null + }, + "Objects": [ + "006B", + "0016", + "011F", + "0114", + "0179", + "0024", + "015C", + "0190", + "00A8", + "0183", + "000E", + "0154", + "000D" + ], + "Actors": [ + "01C7 FEE0 000C 0192 0000 0000 0000 0000", + "01C7 FF2C 000D 018E 0000 0000 0000 0000", + "01C7 FEA1 000B 01A7 0000 0000 0000 0000", + "01C7 FEFE 000B 01CD 0000 0000 0000 0000", + "0130 012A 01C3 0040 0000 0000 0001 0D01", + "01C7 FFED 000D 00C1 0000 0000 0000 0000" + ] + }, + { + "File": { + "Name": "Scene 9, Room 3", + "Start": "0253E000", + "End": "02546090", + "RemapStart": null + }, + "Objects": [ + "006B", + "0016", + "011F", + "0114", + "0179", + "0024", + "015C", + "0190", + "00A8", + "0183", + "000E", + "0154", + "000D" + ], + "Actors": [ + "01C7 0280 0000 FEC8 0000 0000 0000 0000", + "01C7 0266 0000 FEDC 0000 0000 0000 0000", + "01C7 0255 0000 FF00 0000 0000 0000 0000", + "01C7 0256 0000 FF2B 0000 0000 0000 0000", + "01C7 025F 0000 FF56 0000 0000 0000 0000", + "01AF 010F 0000 FE6F 0000 0000 0000 FF01", + "0121 FFDD 0000 FE67 0000 3BBC 0000 FFFF", + "0121 021D 0000 FE09 0000 E2D8 0000 FFFF", + "01C8 02B3 0007 FF27 0000 AE39 0000 0500", + "00EF FF7A 0000 FE32 0000 0000 0000 0021", + "00EF FF87 0000 FE5E 0000 0000 0000 0022", + "00EF FF72 0000 FE87 0000 0000 0000 0023", + "0111 01B1 0000 FD24 0000 0000 0000 4E12", + "0111 0239 0000 FF51 0000 0000 0000 5001", + "00EF 0241 00AC FCCE 0000 0000 0000 0029", + "0111 0209 0000 FF7D 0000 0000 0000 5203", + "00EF 0266 00AC FCFE 0000 0000 0000 002A", + "00EF 0290 00AC FD2E 0000 0000 0000 002B", + "0111 008A 0000 FD60 0000 0000 0000 5812" + ] + }, + { + "File": { + "Name": "Scene 9, Room 4", + "Start": "02547000", + "End": "0254E650", + "RemapStart": null + }, + "Objects": [ + "006B", + "0016", + "011F", + "0114", + "0179", + "0024", + "015C", + "0190", + "00A8", + "0183", + "000E", + "0154", + "000D" + ], + "Actors": [ + "01C7 FEFB 001F FCB8 0000 0000 0000 0000", + "0130 FD82 01C1 FB75 0000 0000 0001 0D02", + "0112 FE70 0013 FE48 0000 0000 0000 3FE6", + "0112 FE49 0013 FE65 0000 0000 0000 3FE6", + "0112 FE1E 0014 FE7E 0000 0000 0000 3FE6" + ] + }, + { + "File": { + "Name": "Scene 9, Room 5", + "Start": "0254F000", + "End": "02557880", + "RemapStart": null + }, + "Objects": [ + "006B", + "0016", + "011F", + "0114", + "0179", + "0024", + "015C", + "0190", + "00A8", + "0183", + "000E", + "0154", + "000D" + ], + "Actors": [ + "00F0 F86A 0096 FD4E 0000 0000 0000 FFFF", + "01D1 F8EE 0000 FD49 0000 0000 0000 11FF", + "01C9 FB6E 0077 FAA2 0000 0000 0009 18FF", + "01AF F9E4 0029 FC43 0000 4000 0000 FF01", + "01AF FB7C 003D FD55 0000 40B6 0000 FF01", + "0013 F941 0155 FD14 0000 4000 0000 0004", + "0013 F947 0155 FD7F 0000 4000 0000 0004", + "0095 FB80 00B9 F987 0000 2889 0000 8A01", + "0095 FA8E 0000 FF17 0000 8000 0000 8A04", + "012A FD2E 00DB FCB3 8000 0000 0000 2613", + "01B4 FA47 0032 FF06 0000 0000 4000 2601", + "01B4 FAAC 0032 FF06 0000 0000 4000 2601", + "01B4 FA8E 0064 FF06 0000 0000 0000 2601", + "01B4 FA8E 0032 FEFC 4000 0000 0000 2601", + "00EF FA62 0078 FF65 0000 0000 0000 002D", + "00EF FA96 0078 FF61 0000 0000 0000 002E", + "00EF FAC9 0078 FF61 0000 0000 0000 002F", + "01C7 FD05 00AE FC80 0000 0000 0000 0002" + ] + }, + { + "File": { + "Name": "Scene 9, Room 6", + "Start": "02558000", + "End": "0255C1B0", + "RemapStart": null + }, + "Objects": [ + "006B", + "0016", + "011F", + "0114", + "0179", + "0024", + "015C", + "0190", + "00A8", + "0183", + "000E", + "0154", + "000D" + ], + "Actors": [ + "01C7 FA31 0162 0239 0000 0000 0000 0001", + "01C7 F9D1 0193 0261 0000 0000 0000 0001", + "01C7 FA0C 01BB 0146 0000 0000 0000 0001", + "0013 F9DB 0175 01FA 0000 A222 0000 0004", + "0013 FACE 015C 009F 0000 3333 0000 0004", + "0111 FAB8 0111 027F 0000 0000 0000 5412", + "0111 FA8C 010B 0254 0000 0000 0000 560E" + ] + }, + { + "File": { + "Name": "Scene 9, Room 7", + "Start": "0255D000", + "End": "025628F0", + "RemapStart": null + }, + "Objects": [ + "006B", + "008A", + "000E", + "0090", + "0032" + ], + "Actors": [ + "01C8 FC80 0116 0498 C000 2000 0000 FF02", + "0048 FBAC 0122 0294 0000 0000 0000 0008", + "000A FC13 0118 042C 0000 216C 0000 15C2", + "0002 FBB8 011A 03C4 0000 9A50 0000 FFFF" + ] + }, + { + "File": { + "Name": "Scene 9, Room 8", + "Start": "02563000", + "End": "02564920", + "RemapStart": null + }, + "Objects": [ + "006B", + "0016", + "011F", + "0114", + "0179", + "0024", + "015C", + "0190", + "00A8", + "0183", + "000E", + "0154", + "000D" + ], + "Actors": [ + "0121 0455 00AC FB43 0000 0000 0000 0000", + "0121 04C3 00AC FBCC 0000 0000 0000 0000", + "0130 05BE 02C3 FB25 0000 0000 0001 0D03", + "0130 0381 02AF F969 0000 0000 0001 0D04", + "0112 0432 00AC FD2E 0000 0000 0000 3FE7", + "0112 0456 00AC FD70 0000 0000 0000 3FE7" + ] + }, + { + "File": { + "Name": "Scene 9, Room 9", + "Start": "02565000", + "End": "0256D690", + "RemapStart": null + }, + "Objects": [ + "006B", + "0016", + "011F", + "0114", + "0179", + "0024", + "015C", + "0190", + "00A8", + "0183", + "000E", + "0154", + "000D" + ], + "Actors": [ + "0121 0358 00B6 F695 0000 0000 0000 0000", + "0121 0129 0106 F60F 0000 0EEF 0000 0000", + "00F0 025A 00E2 F65C 0000 0000 0000 FFFF", + "01D1 010C 0070 F7EF 0000 0000 0000 10FF", + "01D1 0115 0070 F76C 0000 0CCD 0000 10FF", + "0121 02C8 0016 F6FF 0000 0000 0000 FFFF", + "01C7 02E6 0016 F660 0000 0000 0000 0000", + "01C7 030F 0016 F66B 0000 0000 0000 0000", + "01C7 0387 0016 F6CF 0000 0000 0000 0000", + "01C7 03A1 0016 F701 0000 0000 0000 0000", + "0111 0386 0016 F560 0000 0000 0000 6E0B", + "0111 01C3 0016 F55A 0000 0000 0000 6C0B", + "000A 0113 0106 F5D0 0000 8EEF 0000 0800", + "0015 04AC 00B7 F749 0000 0000 0000 0106", + "0095 0178 00D5 F800 0000 0000 0000 8A02", + "012A 0294 FFCB F754 0000 0000 0000 2713", + "01B4 04A8 00DE F744 0000 1C72 0000 2701", + "01B4 04A8 0106 F744 0000 1C72 0000 2701", + "00EF 0178 00D5 F800 0000 0000 0000 003B" + ] + }, + { + "File": { + "Name": "Scene 9, Room 10", + "Start": "0256E000", + "End": "025723E0", + "RemapStart": null + }, + "Objects": [ + "006B", + "0016", + "011F", + "0114", + "0179", + "0024", + "015C", + "0190", + "00A8", + "0183", + "000E", + "0154", + "000D" + ], + "Actors": [] + }, + { + "File": { + "Name": "Scene 9, Room 11", + "Start": "02573000", + "End": "02578850", + "RemapStart": null + }, + "Objects": [ + "006B", + "0016", + "011F", + "0114", + "0179", + "0024", + "015C", + "0190", + "00A8", + "0183", + "000E", + "0154", + "000D" + ], + "Actors": [ + "00EF 04B1 FFB9 0288 0000 0000 0000 02FF", + "00F0 05D3 FFEA 019D 0000 0000 0000 FFFF", + "01C7 0541 FFB9 0104 0000 0000 0000 0000", + "01C7 055F FFB9 0123 0000 0000 0000 0000", + "01C7 0540 FFB9 014C 0000 0000 0000 0000", + "01C7 052D FFB9 0171 0000 0000 0000 0000", + "01C7 0529 FFB9 019A 0000 0000 0000 0000", + "01C7 052F FFB9 01BA 0000 0000 0000 0000", + "01C7 0536 FFB9 01D9 0000 0000 0000 0000", + "01C7 047D FFB9 0040 0000 0000 0000 0000", + "01C7 0492 FFB9 0061 0000 0000 0000 0000", + "01AF 04DE FFB9 016B 0000 0000 0000 FF00", + "01AF 04D9 FFB9 0075 0000 0000 0000 FF00", + "0095 0463 001D 004F 0000 1D28 0000 0000", + "000A 04B2 FFB9 0289 0000 0000 0003 B821", + "012A 045A FFA8 0068 0000 0000 0000 0303", + "011B 05D4 FFC3 019E 0014 0000 0014 4689" + ] + } + ] + }, + { + "File": { + "Name": "Scene 10", + "Start": "0300B000", + "End": "0301B7B0", + "RemapStart": null + }, + "TActors": [ + "0303 02FF 002E 0000 012C 01FA 8000 008A", + "0505 04FF 002E FE06 0230 0000 4000 007F", + "0101 00FF 002E 01FA 0028 0000 C000 007F", + "0700 00FF 002E FE70 0000 0000 4000 007F", + "0102 02FF 002E 0000 0104 FE70 0000 008A", + "0304 04FF 002E 0190 0208 0000 C000 007F", + "08FF 05FF 002E 0000 0320 01F4 0000 0154", + "0606 08FF 002E 01F4 0320 0000 C000 0154", + "09FF 06FF 002E 0000 05F0 01F4 0000 0154" + ], + "Paths": [], + "Rooms": [ + { + "File": { + "Name": "Scene 10, Room 0", + "Start": "0301C000", + "End": "03023ED0", + "RemapStart": null + }, + "Objects": [ + "0139", + "00A4", + "0085", + "000D", + "001B" + ], + "Actors": [ + "003B FFF3 0000 001D 0000 0000 0000 00FF", + "0025 001A 0000 FF7B 0000 C000 0000 FFFE", + "0025 0023 0000 0077 0000 C000 0000 FFFE", + "0008 00E8 0078 00ED 0000 0000 0000 03F4", + "0008 00F0 0078 FF14 0000 0000 0000 03F4", + "0008 FF14 0078 FF13 0000 0000 0000 03F4", + "0008 FF15 0078 00EF 0000 0000 0000 03F4" + ] + }, + { + "File": { + "Name": "Scene 10, Room 1", + "Start": "03024000", + "End": "0302B770", + "RemapStart": null + }, + "Objects": [ + "0139", + "00A4", + "0085", + "000D", + "001B" + ], + "Actors": [ + "0008 0285 00B4 FEA6 0000 0000 0000 03F4", + "0008 01C2 00F0 FDE6 0000 0000 0000 03F4", + "0008 01EB 00B4 FF02 0000 0000 0000 03F4", + "0008 016A 00F0 FE82 0000 0000 0000 03F4", + "0008 FFAC 0154 FDF9 0000 0000 0000 03F4" + ] + }, + { + "File": { + "Name": "Scene 10, Room 2", + "Start": "0302C000", + "End": "03033850", + "RemapStart": null + }, + "Objects": [ + "0139", + "00A4", + "0085", + "000D", + "001B", + "0032", + "000E" + ], + "Actors": [ + "003B 00AE 0104 001D 0000 0000 0000 00FE", + "0008 00EA 0176 00ED 0000 0000 0000 03F4", + "0008 00F0 0176 FF12 0000 0000 0000 03F4", + "0008 FF13 0176 FF12 0000 0000 0000 03F4", + "0008 FF15 0176 00EF 0000 0000 0000 03F4", + "0002 FF49 0104 FFF4 0000 8000 0000 FFFF", + "0002 00A1 0104 FFF9 0000 8000 0000 FFFF", + "0049 0002 0104 FFFF 0000 0000 0000 6FCA", + "0187 FFA2 0104 FFF5 0000 0000 0000 2BFF", + "000A FFFF 0104 FFFF 0000 0000 0000 27EB" + ] + }, + { + "File": { + "Name": "Scene 10, Room 3", + "Start": "03034000", + "End": "0303B730", + "RemapStart": null + }, + "Objects": [ + "0139", + "00A4", + "0085", + "000D", + "001B", + "0032", + "000E" + ], + "Actors": [ + "003B 0025 012C 026E 0000 0000 0000 00FD", + "0008 0159 01B8 0284 0000 0000 0000 03F4", + "0008 00FF 01B8 01EA 0000 0000 0000 03F4", + "0008 0219 01F4 01C3 0000 0000 0000 03F4", + "0008 0181 01F4 0169 0000 0000 0000 03F4", + "0008 0208 0258 FFAC 0000 0000 0000 03F4" + ] + }, + { + "File": { + "Name": "Scene 10, Room 4", + "Start": "0303C000", + "End": "030450D0", + "RemapStart": null + }, + "Objects": [ + "0139", + "00A4", + "0085", + "000D", + "0106", + "000E" + ], + "Actors": [ + "003B 0025 0208 FF86 0000 0000 0000 00FC", + "0113 FEDD 0208 0025 0000 4000 0000 FF02", + "0113 FEDE 0208 FFE0 0000 4000 0000 FF03", + "0008 00EA 0276 00EE 0000 0000 0000 03F4", + "0008 00F1 0276 FF14 0000 0000 0000 03F4", + "0008 FF14 0276 FF14 0000 0000 0000 03F4", + "0008 FF16 0276 00EE 0000 0000 0000 03F4" + ] + }, + { + "File": { + "Name": "Scene 10, Room 5", + "Start": "03046000", + "End": "0304EB10", + "RemapStart": null + }, + "Objects": [ + "0139", + "00B0" + ], + "Actors": [ + "003B FD76 0230 0010 0000 0000 0000 00FB", + "0008 FD7C 02D0 01BE 0000 0000 0000 03F4", + "0008 FE16 02D0 0163 0000 0000 0000 03F4", + "0008 FE95 030C 01E4 0000 0000 0000 03F4", + "0008 FE3D 030C 027F 0000 0000 0000 03F4" + ] + }, + { + "File": { + "Name": "Scene 10, Room 6", + "Start": "0304F000", + "End": "03058BA0", + "RemapStart": null + }, + "Objects": [ + "0139", + "00B0" + ], + "Actors": [ + "003B 0012 05F0 0335 0000 0000 0000 00F9" + ] + }, + { + "File": { + "Name": "Scene 10, Room 7", + "Start": "03059000", + "End": "030637A0", + "RemapStart": null + }, + "Objects": [ + "0139", + "00A4", + "0085", + "000D", + "001B", + "00B0" + ], + "Actors": [ + "003B 0143 FF24 027F 0000 0000 0000 00FF", + "0013 0053 008C 023C 0000 0000 0000 0000", + "0013 00E1 008C 028A 0000 0000 0000 0000", + "0013 016D 008C 023F 0000 0000 0000 0000", + "0013 FEA0 001B 01DD 0000 0000 0000 0000", + "0013 FDF9 00A0 0007 0000 0000 0000 0000", + "0013 FDEC 004E 0168 0000 0000 0000 0000", + "0013 FF53 FFDB 0291 0000 0000 0000 0000", + "005E 008D FF24 01CC 0000 0000 0000 2400", + "005E 0126 FF24 01CD 0000 0000 0000 2400", + "005E FDB5 0000 FFBC 0000 0000 0000 2400", + "005E FE3A 0000 FFBC 0000 0000 0000 2400" + ] + }, + { + "File": { + "Name": "Scene 10, Room 8", + "Start": "03064000", + "End": "0306ABE0", + "RemapStart": null + }, + "Objects": [ + "0139", + "00B0" + ], + "Actors": [ + "003B FFF9 030C 00C5 0000 0000 0000 00FA", + "0111 FE5A 0320 FEFE 0000 0000 0000 400E", + "0111 FE82 0320 FED4 0000 0000 0000 4203", + "0111 FEAA 0320 FEAB 0000 0000 0000 440F", + "0111 FED6 0320 FE81 0000 0000 0000 460F", + "0111 FEFF 0320 FE58 0000 0000 0000 4803", + "0111 FE82 0320 FEFD 0000 0000 0000 4A09", + "0111 FEAA 0320 FED4 0000 0000 0000 4C09", + "0111 FED3 0320 FEAB 0000 0000 0000 4E03", + "0111 FEFE 0320 FE81 0000 0000 0000 503F", + "0111 01A2 0320 FEFB 0000 0000 0000 523F", + "0111 0179 0320 FED3 0000 0000 0000 5409", + "0111 0152 0320 FEAC 0000 0000 0000 5609", + "0111 012C 0320 FE84 0000 0000 0000 5803", + "0111 0104 0320 FE5C 0000 0000 0000 5A03", + "0111 017A 0320 FEFB 0000 0000 0000 5C03", + "0111 0151 0320 FED4 0000 0000 0000 5E3F", + "0111 012B 0320 FEAC 0000 0000 0000 603F", + "0111 0104 0320 FE84 0000 0000 0000 6209" + ] + }, + { + "File": { + "Name": "Scene 10, Room 9", + "Start": "0306B000", + "End": "03070920", + "RemapStart": null + }, + "Objects": [ + "0139", + "00B0" + ], + "Actors": [] + } + ] + }, + { + "File": { + "Name": "Scene 11", + "Start": "02579000", + "End": "0258A4C0", + "RemapStart": null + }, + "TActors": [ + "06FF 08FF 0023 0320 FFB0 FA10 C000 003F", + "02FF 01FF 002E F9D4 FFB0 FD94 0000 009F", + "03FF 02FF 002E F9D5 00A0 F789 0000 009C", + "0AFF 03FF 002E F9D7 009F F257 0000 007F", + "08FF 00FF 002E FFC4 FFB0 FBB4 0000 003F", + "07FF 00FF 002E 035C FFB0 FF4C C000 009A", + "01FF 00FF 002E FC2C FFB0 FF4C 4000 0098", + "04FF 03FF 002E FCF7 00EF F545 C000 007F", + "04FF 05FF 002E 0337 FFAF F544 4000 0099", + "06FF 05FF 002E 05A3 FFAF F698 8000 0099", + "09FF 06FF 002E 0782 FF10 FA48 C000 008C", + "06FF 07FF 002E 05C8 FFB1 FDA8 0000 009E", + "08FF 04FF 002E FFB2 00EF F7F4 8000 0084", + "08FF 08FF 002E FDE4 FFB0 FB50 4000 003F", + "08FF 08FF 002E FF24 FFB0 FAB0 4000 003F", + "08FF 08FF 002E 0064 FFB0 FAB0 C000 0080", + "08FF 08FF 002E 01F4 FFB0 FB00 0000 003F", + "08FF 08FF 002E FED4 FFB0 F9C0 0000 003F", + "08FF 08FF 002E FD94 FFB0 F880 0000 003F", + "08FF 08FF 002E FFC4 FFB0 F8D0 C000 02DD", + "08FF 08FF 002E 00B4 FFB0 F880 8000 02D4", + "08FF 08FF 002E 0064 FFB0 F970 4000 02D7" + ], + "Paths": [], + "Rooms": [ + { + "File": { + "Name": "Scene 11, Room 0", + "Start": "0258B000", + "End": "0259AF90", + "RemapStart": null + }, + "Objects": [ + "004D", + "00A4", + "000E", + "0090", + "00B9", + "0177", + "012F" + ], + "Actors": [ + "000A 009D FFEC FE70 0000 6000 0000 5D47", + "000A FEE8 FFEC FE70 0000 A000 0000 5953", + "005E FF60 FFE8 FF38 0000 0000 0000 1098", + "005E 0028 FFE8 FF38 0000 0000 0000 1098", + "012A FFC4 0118 FFFA 0000 8000 0000 1A02", + "0111 FEBC FFEC FF4F 0000 0000 0000 7603", + "0111 FEBC FFEC FFB8 0000 0000 0000 780F", + "0111 00C5 FFEC FF4D 0000 0000 0000 7A0E", + "0111 00C7 FFEC FFB1 0000 0000 0000 7C03" + ] + }, + { + "File": { + "Name": "Scene 11, Room 1", + "Start": "0259B000", + "End": "025A4270", + "RemapStart": null + }, + "Objects": [ + "004D", + "000E", + "0090", + "0106", + "0183" + ], + "Actors": [ + "0113 F9A3 FFA6 FFED 0000 4E39 0000 FF03", + "000A F976 0078 FE12 0000 8000 001F 89A0", + "0187 F9BA FFA6 FF85 0000 0000 0000 7C3C", + "0185 FA8D FFAE FF17 0000 0000 0045 4C9F" + ] + }, + { + "File": { + "Name": "Scene 11, Room 2", + "Start": "025A5000", + "End": "025AA050", + "RemapStart": null + }, + "Objects": [ + "004D", + "002C", + "011F", + "000E", + "0090", + "018E", + "011C", + "000B", + "006B", + "0114" + ], + "Actors": [ + "0121 F8A5 FFB0 FC3D 0000 8000 0000 0000", + "01C7 FB40 0140 F813 0000 0000 0000 0002", + "01C7 FB11 0140 F814 0000 0000 0000 0002", + "01C7 FB70 0140 F814 0000 0000 0000 0002", + "01C7 FB19 0111 FB07 0000 0000 0000 0002", + "01C7 FB62 00D8 FB63 0000 0000 0000 0002", + "01C7 FB21 00A0 FBB8 0000 0000 0000 0002", + "01C7 F8A4 0078 FC00 0000 0000 0000 0002", + "01C7 FB13 0066 FC17 0000 0000 0000 0002", + "01C7 FB61 00A0 F7AC 0000 0000 0000 0000", + "01C7 FB4B 00A0 F7E0 0000 0000 0000 0000", + "01C7 FB6E 00A0 F7E0 0000 0000 0000 0000", + "01C7 FB0F 00A0 F7ED 0000 0000 0000 0000", + "01C7 FB2D 00A0 F7FA 0000 0000 0000 0000", + "000C F9D9 00A0 F907 0000 0000 0000 00FF", + "000C F91D 0062 F9BF 0000 C000 0000 00FF", + "000C FA88 FFB0 FC19 0000 C000 0000 00FF", + "0011 F9CB FFB0 FACF 0000 0000 0000 0001", + "012D F9D6 0166 F997 4000 0000 0000 FFC2", + "012D FB3E 0168 F99C 4000 0000 0000 FFC2", + "012D F9D4 0166 FC12 4000 0000 0000 FFC2", + "0011 F9D5 00C1 F9F5 0000 4000 0000 1102", + "0187 F9F2 FFB0 FCAF 0000 0000 0000 705A", + "0185 F9EB FFD8 FB0C 0000 0000 0045 4E5C", + "0117 F9D4 FFB0 FCDC 0000 8000 0000 015C", + "0117 FB23 00A0 F7C0 0000 0000 0000 1FDC", + "0117 F9FA 0035 FA45 0000 0000 0000 1FDC", + "0117 FA38 00C8 FC18 0000 0000 0000 1FDC", + "0117 F8A2 FFB0 FC44 0000 0000 0000 1FDC", + "0117 FB13 FF90 FC65 0000 0000 0000 1FDC", + "012D FA11 00A0 F894 0000 0000 0000 1CC1" + ] + }, + { + "File": { + "Name": "Scene 11, Room 3", + "Start": "025AB000", + "End": "025B2C50", + "RemapStart": null + }, + "Objects": [ + "004D", + "000E", + "0090", + "0190", + "00A8", + "00A4", + "0032", + "0024", + "006B" + ], + "Actors": [ + "01CD FB7B 0117 F545 0000 C000 0000 0000", + "00F0 F962 00B4 F4D4 0000 4000 0000 FFFF", + "005E F962 0077 F4D4 0000 0000 0000 03FF", + "01D1 FB49 009F F548 0000 4000 0006 38FF", + "0002 FA8C 009F F5CD 0000 0000 0000 0002", + "0002 FA1F 009F F51C 0000 0000 0000 0002", + "0037 F9BC 01C1 F64D 0000 0000 0000 0001", + "0037 FB31 01C1 F54F 0000 C000 0000 0001", + "0037 F9E6 01C1 F551 0000 0D83 0000 0001", + "0187 FA03 0117 F5F4 0000 0000 0000 0C3C", + "0185 F9D8 00E7 F6FD 0000 0000 000B 4C83", + "0139 F9D7 FFD7 F347 0000 0000 0000 000B", + "00FF F9D7 FFD7 F347 0000 0000 0000 0BC7", + "00FF F9D7 009F F40F 0000 0000 0000 0BC3", + "00EF FCA0 00EF F547 0000 C000 0000 030F", + "000A FACD 009F F4D6 0000 8000 0000 7951" + ] + }, + { + "File": { + "Name": "Scene 11, Room 4", + "Start": "025B3000", + "End": "025BD1E0", + "RemapStart": null + }, + "Objects": [ + "004D", + "000E", + "0090", + "000D", + "011C", + "017F", + "002C" + ], + "Actors": [ + "012D FFB7 0044 F545 0000 11C7 0000 FFC0", + "012D FF59 00EF F757 0000 0000 0000 FFC0", + "000A FFBF 0180 F31F 0000 8000 0015 8063", + "012A FFC7 FF69 F48D 0000 0000 0000 0403", + "0112 FFB6 00A7 F546 0000 0000 0001 1093", + "0062 FF9C 0002 F50D FC72 905B 0000 0015", + "0062 FFF2 000B F52A FC72 4FA5 0000 0015", + "0062 FF79 0028 F55C F555 D05B 0000 0015", + "0062 FFCA FFF0 F57C FC72 105B 0000 0015", + "0061 FFB3 FF5F F545 0000 0000 0000 0015", + "0185 009F FFBE F546 0000 0000 0045 4D95", + "0049 FFC7 FF69 F48E 0000 0000 0000 3FFE", + "0049 FF3C FF69 F4BE 0000 0000 0000 3FFE", + "0049 003D FF69 F4C6 0000 0000 0000 3FFE", + "0049 FF06 FF69 F540 0000 0000 0000 3FFE", + "0049 0068 FF69 F54F 0000 0000 0000 3FFE", + "0049 FF30 FF69 F5C6 0000 0000 0000 3FFE", + "0049 002B FF69 F5CD 0000 0000 0000 3FFE", + "0049 FFB0 FF69 F5FB 0000 0000 0000 3FFE" + ] + }, + { + "File": { + "Name": "Scene 11, Room 5", + "Start": "025BE000", + "End": "025C3020", + "RemapStart": null + }, + "Objects": [ + "004D", + "000E", + "0090", + "00B7", + "0106", + "0025" + ], + "Actors": [ + "0113 0562 FFBF F53A 0000 C000 0000 FF02", + "0038 05E6 FFAF F487 0000 0000 0000 FFFF", + "0038 0532 FFAF F5F2 0000 705B 0000 FFFF", + "000A 05A6 0064 F544 0000 C000 0038 884E", + "012A 06C9 FF9C F4CD 0000 0000 0000 1000", + "0049 05A6 FFBF F546 0000 0000 0000 2FD0", + "000A 05A1 FFAF F427 0000 8000 0000 7952", + "0187 05A8 FFBF F542 0000 0000 0000 643C", + "0185 05A7 FFBF F548 0000 0000 0045 4C99", + "012A 05A3 006E F6B4 C000 0000 0000 3803" + ] + }, + { + "File": { + "Name": "Scene 11, Room 6", + "Start": "025C4000", + "End": "025CBF80", + "RemapStart": null + }, + "Objects": [ + "004D", + "002B", + "005D", + "011C", + "00A4", + "000E", + "0179", + "0170", + "000B" + ], + "Actors": [ + "005E 0595 FF11 FBD7 0000 0000 0000 2400", + "0069 054B FEDD F887 0000 0000 0000 FFFE", + "0069 0678 FEDD F9CE 0000 0000 0000 FFFE", + "0069 0579 FECC FA97 0000 0000 0000 FFFE", + "012A 05E3 FFAF F781 0000 0000 0000 0001", + "012D 041A FFB1 FA10 0000 0000 0000 00C1", + "0117 05D4 FF2A F9EA 0000 0000 0000 018C", + "0117 0618 FF11 F8BB 0000 0000 0000 1FCC", + "0117 046E FF11 F8CF 0000 0000 0000 1FCC", + "0117 057C FF11 F98B 0000 0000 0000 1FCC", + "0117 0618 FF11 FA9C 0000 0000 0000 1FCC", + "0117 043B FF11 FAA2 0000 0000 0000 1FCC", + "0117 0525 FF11 FB25 0000 0000 0000 1FCC", + "012D 0536 FE7B F8B8 0000 0000 0000 0CC1", + "012D 04D1 FE7B F98B 0000 0000 0000 0CC1", + "012D 0641 FE7A F99C 0000 0000 0000 0CC1", + "0185 05CB FF2A FCF0 0000 0000 000B 4D16", + "005E 071D FF10 FA19 0000 0000 0000 107F", + "0049 0619 FF11 F8BE 0000 0000 0000 207F", + "0049 046F FF11 F8CE 0000 0000 0000 207F", + "0049 057E FF11 F98A 0000 0000 0000 207F", + "0049 0619 FF11 FA9C 0000 0000 0000 207F", + "0049 043D FF11 FAA6 0000 0000 0000 207F", + "0049 0523 FF11 FB23 0000 0000 0000 207F" + ] + }, + { + "File": { + "Name": "Scene 11, Room 7", + "Start": "025CC000", + "End": "025D42C0", + "RemapStart": null + }, + "Objects": [ + "004D", + "000E", + "0090", + "0038", + "000C", + "001B" + ], + "Actors": [ + "0025 058E FFB9 FEC6 0000 D8E4 0000 FFFE", + "0025 0644 FFBB FF7C 0000 CFA5 0000 FFFE", + "0025 04CC FFB0 FF3A 0000 CC17 0000 FFFF", + "0012 063F FFB0 FE7C 0000 BE94 0000 FFFF", + "0012 060E FFB0 0023 0000 B555 0000 FFFF", + "0054 04A7 FFEC 0061 0000 6000 0000 FFFF", + "000A 05C9 0078 FF45 0000 8000 001E 8841", + "0187 0611 FFC5 FF55 0000 0000 0000 783C", + "0185 04E3 FFC6 FE8A 0000 0000 0045 4C9E", + "0112 05C9 0070 FDD0 0000 0000 0001 1AE7" + ] + }, + { + "File": { + "Name": "Scene 11, Room 8", + "Start": "025D5000", + "End": "025DD230", + "RemapStart": null + }, + "Objects": [ + "004D", + "002B", + "005D", + "011C", + "00A4", + "000E", + "0179", + "0170", + "000B" + ], + "Actors": [ + "01CD FEE9 0078 FB64 0000 0000 0000 0001", + "01A0 FFC5 FFB0 F9C2 0000 0000 0000 FFFF", + "0008 0038 00EF F8E9 0000 0000 0000 03F8", + "0008 FF56 00EF F8E9 0000 0000 0000 03F8", + "005E FF63 00C8 FB63 0000 0000 0000 2400", + "005E 0026 00C8 FB63 0000 0000 0000 2400", + "012A FFC4 FFB0 F9C2 0000 0000 0000 0101", + "0112 01F4 FFB0 FAD5 0000 8000 0000 3FC2", + "000A 003A 00F0 F88B 0000 0000 0001 BB24", + "000A 00B6 FFB0 FA11 0000 C000 0000 5885", + "000A FD7F FFB0 F9FE 0000 8000 0000 5986", + "000A 0153 FFB0 F971 0000 0000 0000 5E48", + "000A FED5 FFB0 F82F 0000 C000 0000 5E49", + "000A FE48 FFB0 F81C 0000 8000 0000 59CA", + "000A FFEB 00C9 FB29 0000 4000 0000 5AAB" + ] + }, + { + "File": { + "Name": "Scene 11, Room 9", + "Start": "025DE000", + "End": "025E1870", + "RemapStart": null + }, + "Objects": [ + "004D", + "000E", + "0090", + "00B5", + "0021", + "0059", + "013B", + "011C", + "0026", + "0036", + "0056", + "000B" + ], + "Actors": [ + "018C 08E5 FE47 FA7C 0000 2CCD 0000 0000", + "018C 091A FEA8 FA32 0000 EFA5 0000 0000", + "00D4 0901 FDD5 FA4D 0000 0000 0000 00FF", + "0063 0900 FFD9 FA47 0000 0000 0000 FFFF", + "00C5 08D0 FC40 FA1C 0000 20B6 0000 FFFF", + "012D 0903 FD64 F95A 0000 0000 0000 FFC2", + "012D 09EF FD61 FA46 0000 C000 0000 FFC2", + "012D 0811 FD61 FA48 0000 4000 0000 FFC2", + "012D 0903 FD61 FB38 0000 8000 0000 FFC2", + "000A 0887 FF94 F9D0 0000 C000 001B 884D", + "0185 0894 FF4D FA46 0000 0000 0045 4CDB", + "0117 083D FF66 F9E8 0000 0000 0000 00DB", + "0117 0995 FC86 F9B4 0000 0000 0000 1FDB", + "0117 08FE FCE3 FA48 0000 0000 0000 1FDB", + "0117 0870 FC7C FADD 0000 0000 0000 1FDB", + "000F 08FC FF0B FA47 0000 0000 0000 0FF9" + ] + }, + { + "File": { + "Name": "Scene 11, Room 10", + "Start": "025E2000", + "End": "025E7C50", + "RemapStart": null + }, + "Objects": [ + "004D", + "000E", + "0090", + "00E5", + "0114" + ], + "Actors": [ + "0121 F9C3 009F F05F 0000 0000 0000 0000", + "0121 F978 00D2 F046 0000 0C17 0000 0000", + "00EC FA3D 008B F099 0000 0000 0000 0000", + "00EC F97A 008B F107 0000 0000 0000 0000", + "00EC FA29 008B F191 0000 0000 0000 0000", + "000A F979 00D2 F043 0000 93E9 0000 7AA2" + ] + } + ] + }, + { + "File": { + "Name": "Scene 13", + "Start": "025E8000", + "End": "026097D0", + "RemapStart": null + }, + "TActors": [ + "10FF 01FF 0023 0000 FF10 012A 8000 003F", + "0BFF 0AFF 0023 F1C9 FF2E FCB8 4000 003F", + "01FF 00FF 002E 0000 0096 0251 0000 007F", + "09FF 09FF 002E F881 FF10 FCB8 4000 007F", + "03FF 02FF 002E 0930 FF06 FCB8 C000 02D6", + "0AFF 08FF 002E F499 FF10 FCB8 4000 02D4", + "06FF 05FF 002E 0487 006E 048F 9555 007F", + "07FF 06FF 002E 06F3 006E 08C1 9555 00B8", + "01FF 05FF 002E 0268 0096 00E3 1555 003F", + "02FF 01FF 002E 04D0 FF10 FCB8 C000 003F", + "01FF 09FF 002E FAD9 FF10 FCB8 C000 003F", + "01FF 0EFF 002E FD98 0096 F88D 9555 003F", + "0CFF 01FF 002E 0268 0096 F88D EAAB 003F", + "04FF 03FF 002E 0DA4 FF10 FCB8 C000 0082", + "0DFF 0CFF 002E 0844 00D2 EE67 EAAB 008B", + "0FFF 0EFF 002E F860 0099 F0EB 1555 0081", + "01FF 11FF 002E FD98 0096 00E3 EAAB 003F", + "12FF 11FF 002E FB1B 0096 02B3 2AAB 008F", + "13FF 12FF 002E FAF0 0096 057D 6AAB 008E", + "08FF 09FF 002E F72F FF10 FCB8 4000 02D5", + "12FF 12FF 002E F993 0096 02B2 6AAB 0088" + ], + "Paths": [ + { + "Points": [ + [ + -27, + 190, + 1079 + ], + [ + -27, + 302, + 1376 + ], + [ + -27, + 412, + 1771 + ], + [ + -27, + 311, + 1374 + ], + [ + -27, + 197, + 1091 + ] + ] + }, + { + "Points": [ + [ + 34, + 242, + 1079 + ], + [ + 34, + 280, + 1246 + ], + [ + 34, + 338, + 1504 + ], + [ + 33, + 366, + 1777 + ], + [ + 35, + 335, + 1504 + ], + [ + 33, + 307, + 1373 + ], + [ + 34, + 287, + 1246 + ], + [ + 34, + 242, + 1094 + ] + ] + }, + { + "Points": [ + [ + -2603, + -270, + -1010 + ], + [ + -2558, + -270, + -994 + ], + [ + -2521, + -270, + -964 + ], + [ + -2493, + -270, + -930 + ], + [ + -2476, + -270, + -887 + ], + [ + -2469, + -270, + -843 + ], + [ + -2472, + -270, + -796 + ], + [ + -2489, + -270, + -754 + ], + [ + -2518, + -270, + -716 + ], + [ + -2555, + -270, + -687 + ], + [ + -2600, + -270, + -666 + ], + [ + -2647, + -270, + -661 + ], + [ + -2694, + -270, + -666 + ], + [ + -2738, + -270, + -683 + ], + [ + -2775, + -270, + -711 + ], + [ + -2802, + -270, + -746 + ], + [ + -2820, + -270, + -792 + ], + [ + -2827, + -270, + -839 + ], + [ + -2820, + -270, + -886 + ], + [ + -2801, + -270, + -931 + ], + [ + -2774, + -270, + -967 + ], + [ + -2737, + -270, + -995 + ], + [ + -2694, + -270, + -1009 + ], + [ + -2647, + -270, + -1014 + ], + [ + -2603, + -270, + -1010 + ] + ] + }, + { + "Points": [ + [ + 860, + 247, + -2283 + ], + [ + 920, + 182, + -2242 + ], + [ + 914, + 84, + -2241 + ], + [ + 860, + 54, + -2274 + ], + [ + 806, + 94, + -2310 + ], + [ + 803, + 185, + -2313 + ], + [ + 860, + 235, + -2284 + ] + ] + }, + { + "Points": [ + [ + -1513, + 176, + 569 + ], + [ + -1511, + 268, + 571 + ] + ] + }, + { + "Points": [ + [ + -1684, + 283, + 854 + ], + [ + -1682, + 194, + 856 + ] + ] + } + ], + "Rooms": [ + { + "File": { + "Name": "Scene 13, Room 0", + "Start": "0260A000", + "End": "02613210", + "RemapStart": null + }, + "Objects": [ + "0179", + "005D", + "0106", + "0038", + "0085", + "00A4" + ], + "Actors": [ + "0054 FF91 00D2 0318 0000 0000 0000 FFFF", + "0054 006D 00D2 0318 0000 0000 0000 FFFF", + "0113 0003 0096 02B2 0000 0000 0000 FF02", + "0008 005A 0173 073E 0000 0000 0000 03F5", + "0008 FFA5 0118 05AD 0000 0000 0000 03F5", + "0008 FFA7 0173 073D 0000 0000 0000 03F5", + "0008 005A 0118 05AE 0000 0000 0000 03F5", + "005E FF66 010E 027A 0000 0000 0000 2400", + "005E 0095 010E 0278 0000 0000 0000 2400", + "0069 FFE5 00BE 0437 0000 0000 0000 00FB", + "0069 0022 00F2 0436 0000 0000 0000 11FB", + "0080 0046 0096 0319 0000 C000 0000 0310" + ] + }, + { + "File": { + "Name": "Scene 13, Room 1", + "Start": "02614000", + "End": "026309D0", + "RemapStart": null + }, + "Objects": [ + "0179", + "000E", + "009A", + "0168", + "004A" + ], + "Actors": [ + "01B6 0000 FF10 0062 0000 8000 0000 0002", + "01A7 0000 FF10 FCB8 0000 0000 0000 0000", + "0097 0000 FF10 FCB8 0000 0000 0000 0005", + "0092 FB44 FF10 FCB8 0000 4000 0000 0401", + "0112 FDA3 0096 00AE 0000 0000 0000 3FF7", + "0112 FDC2 0096 00B9 0000 0000 0000 3FF7" + ] + }, + { + "File": { + "Name": "Scene 13, Room 2", + "Start": "02631000", + "End": "026387E0", + "RemapStart": null + }, + "Objects": [ + "0179", + "006B", + "000E", + "0085", + "00E5", + "013A", + "00A6", + "0114", + "00B7" + ], + "Actors": [ + "00A5 07A7 FF06 FDDF 0000 982E 0000 FFFF", + "0121 0714 FF06 FD69 0000 8666 0000 FFFF", + "0121 0766 FF06 FCBA 0000 DA50 0000 FFFF", + "0121 078C FF06 FBAE 0000 F8E4 0000 FFFF", + "01C7 07C0 FF06 FDC9 0000 0000 0000 0000", + "01C7 0790 FF06 FDD9 0000 0000 0000 0000", + "01C7 077C FF06 FE01 0000 0000 0000 0000", + "01C7 07FC FF06 FDB1 0000 0000 0000 0000", + "01C7 07A8 FF06 FB9D 0000 0000 0000 0000", + "01C7 07D8 FF06 FBA5 0000 0000 0000 0000", + "01C7 074C FF06 FB69 0000 0000 0000 0000", + "01C7 0774 FF06 FB81 0000 0000 0000 0000", + "01C7 0806 003C FD65 0000 0000 0000 0002", + "01C7 0791 003C FD6E 0000 0000 0000 0002", + "01C7 0748 003C FDC8 0000 0000 0000 0002", + "01C7 07D2 003C FBD4 0000 0000 0000 0002", + "01C7 0762 003C FBD4 0000 0000 0000 0002", + "01C7 06FF 003C FB8B 0000 0000 0000 0002", + "00F0 06C4 FF24 FCB8 0000 0000 0000 FFFF", + "00EF 06DA FF06 FB80 0000 0000 0000 00FF", + "00EF 06CF FF06 FDEF 0000 0000 0000 00FF", + "00EF 0830 FF06 FC0D 0000 0000 0000 00FF", + "000A 06D9 FF06 FB81 0000 8E39 0000 59C1", + "00EF 08A1 FF13 FC87 0000 0000 0000 000D", + "00EF 0896 FF0E FCB3 0000 0000 0000 000D", + "00EF 0892 FF12 FCE3 0000 0000 0000 000D", + "00EF 0898 FF15 FD0D 0000 0000 0000 000D", + "012A 07B5 FF06 FDF9 0000 0000 0000 3C03", + "015F 06C6 FF06 FCB7 0004 0006 0005 1F0B", + "0015 06CF FF06 FDF0 0000 0000 0000 3F03" + ] + }, + { + "File": { + "Name": "Scene 13, Room 3", + "Start": "02639000", + "End": "02642A40", + "RemapStart": null + }, + "Objects": [ + "0179", + "006B", + "0114", + "000D", + "000E", + "0090" + ], + "Actors": [ + "0013 0B4C FFDE FD6D 0000 2889 0000 0004", + "01B7 0BD8 FEC0 FC7C 0000 4000 0000 0000", + "01B7 0AE8 FEC0 FC04 0000 4000 0000 0000", + "0013 0B01 FEE0 FDB3 0000 84FA 0000 0003", + "0013 0B9F FEE2 FD4C 0000 C38E 0000 8003", + "0013 0BC3 FFA1 FBFA 0000 25B0 0000 0000", + "00EF 0B5A FF88 FA36 0000 0000 0000 00FF", + "0117 0AC5 FE5C FD03 0000 0000 0000 1142", + "0117 0B60 FF25 FC35 0000 0000 0000 1142", + "0117 0B59 FF88 FA3A 0000 0000 0000 1142", + "0117 0CB5 FEC6 FD77 0000 0000 0000 1142", + "0117 0B59 FEC0 FB11 0000 0000 0000 1142", + "0117 0A16 FEC0 FCDE 0000 0000 0000 0142", + "00EF 0D2A FF10 FC4A 0000 C000 0000 0006", + "00EF 0D2A FF10 FC87 0000 C000 0000 0006", + "00EF 0D2A FF10 FCBE 0000 C000 0000 0006", + "00EF 0D2A FF10 FCF8 0000 C000 0000 0006", + "00EF 0D2A FF10 FD27 0000 C000 0000 0006" + ] + }, + { + "File": { + "Name": "Scene 13, Room 4", + "Start": "02643000", + "End": "0264AC90", + "RemapStart": null + }, + "Objects": [ + "0179", + "006B", + "00ED", + "00CA", + "00BA", + "0075" + ], + "Actors": [ + "01A7 0F7A FF2E FCB8 0000 C000 0000 0001", + "00D2 0F7A FFA6 FCB8 2000 C000 0000 0002", + "0008 0F08 FF3B FD2C 0000 0000 0000 03FE", + "0008 0F09 FF3B FC4B 0000 0000 0000 03FE", + "0111 0DD8 FF10 FC5D 0000 0000 0000 7203", + "0111 0DD5 FF10 FD0D 0000 0000 0000 7409" + ] + }, + { + "File": { + "Name": "Scene 13, Room 5", + "Start": "0264B000", + "End": "02652520", + "RemapStart": null + }, + "Objects": [ + "0179", + "00AA", + "0069", + "0032", + "00A4" + ], + "Actors": [ + "005E 0435 0136 0493 0000 9555 0000 2400", + "0002 03FA 006E 0277 0000 BA50 0000 FFFF", + "0002 02F5 006E 0318 0000 3777 0000 FFFF", + "00BC 0476 015E 0470 0000 9555 0000 0004", + "0015 04B2 0136 044C 0000 0000 0000 0111" + ] + }, + { + "File": { + "Name": "Scene 13, Room 6", + "Start": "02653000", + "End": "02662C60", + "RemapStart": null + }, + "Objects": [ + "0179", + "0069", + "011C", + "0190", + "00A8", + "0038", + "008B", + "000E", + "0090" + ], + "Actors": [ + "012D 0508 001E 0755 0000 1555 0000 FFC2", + "0054 0666 0032 05D1 0000 D555 0000 FFFF", + "01B4 058F FFB9 084C 0000 1555 0000 FF01", + "0054 058F 015E 084C 0000 1555 0000 0000", + "00BC 0783 00AB 082C 0000 9555 0000 0004", + "00BC 0629 009F 08F4 0000 9555 0000 0004", + "00BC 0550 00A4 045C 0000 1555 0000 0004", + "00BC 03F6 00A4 0524 0000 1555 0000 0004", + "008A 04DF 0032 06ED 0000 1555 0000 0500", + "008A 0718 FFCE 0777 0000 4000 0000 0500", + "008A 064F 0032 0616 0000 0000 0000 0501", + "008A 05F6 0032 070B 0000 2AAB 0000 0501", + "008A 0669 001E 07DB 0000 5555 0000 0501", + "008A 0601 0076 08AB 0000 6AAB 0000 0501", + "000A 04DB 00DC 04B6 0000 5555 0005 8942", + "000A 0699 0096 0627 0000 5555 0007 8023", + "012A 03E5 0097 0505 0000 1555 0000 0502", + "012A 0796 0097 084D 0000 9555 0000 0782", + "012A 058F FFB9 084C 0000 1555 0000 3820", + "01D6 058F 0097 084C 0000 1555 0000 183A", + "01D6 058F 00FA 084C 0000 1555 0000 983A" + ] + }, + { + "File": { + "Name": "Scene 13, Room 7", + "Start": "02663000", + "End": "0266AC90", + "RemapStart": null + }, + "Objects": [ + "0179", + "0069", + "00ED", + "00BA", + "00BC", + "0075" + ], + "Actors": [ + "01A7 07DE 008C 0A58 0000 9555 0000 0006", + "00C9 07DE 0104 0A5E 2000 9555 0000 0002", + "0008 0807 0096 09C0 0000 0000 0000 03FB", + "0008 0743 0096 0A32 0000 0000 0000 03FB", + "0111 0751 006E 08CC 0000 0000 0000 6A03", + "0111 06BE 006E 0916 0000 0000 0000 6C0F" + ] + }, + { + "File": { + "Name": "Scene 13, Room 8", + "Start": "0266B000", + "End": "02674020", + "RemapStart": null + }, + "Objects": [ + "0179", + "002C", + "008B", + "011C", + "00B7", + "011F" + ], + "Actors": [ + "012D F5AC 0028 FCB9 4000 0000 0000 FFC2", + "000C F623 FEF2 FC38 0000 1C72 0000 00FF", + "000C F621 FEF2 FD2F 0000 638E 0000 00FF", + "008A F5AB FF88 FCB9 0000 8000 0000 0501", + "0130 F57A FEF2 FC0E 0000 51C7 0000 0C02", + "0015 F5A1 FF10 FDDB 0000 0000 0000 3D03", + "0015 F636 FF10 FBB8 0000 0000 0000 3E03" + ] + }, + { + "File": { + "Name": "Scene 13, Room 9", + "Start": "02675000", + "End": "02680820", + "RemapStart": null + }, + "Objects": [ + "0179", + "000E", + "0090", + "001B", + "0025" + ], + "Actors": [ + "0008 F7F9 FF5A FC30 0000 0000 0000 83F0", + "0008 F810 FF5A FC30 0000 0000 0000 83F0", + "0008 F805 FF5A FC3B 0000 0000 0000 83F0", + "0008 F7AC FF5B FC3B 0000 0000 0000 83F0", + "0008 F7B7 FF5B FC30 0000 0000 0000 83F0", + "0008 F7A1 FF5B FC30 0000 0000 0000 83F0", + "0038 F90F FF10 FC28 0000 2B61 0000 FFFF", + "0038 F9EE FF10 FD66 0000 CFA5 0000 FFFF", + "0025 F957 FF10 FD30 0000 4C17 0000 FFFE", + "000A F7D5 FF7E FC43 0000 8000 0011 8904", + "012E F77D FF14 FCB6 0000 4000 0001 1C91", + "0112 F74B FF10 FCBB 0000 0000 0000 3FF6" + ] + }, + { + "File": { + "Name": "Scene 13, Room 10", + "Start": "02681000", + "End": "02687BC0", + "RemapStart": null + }, + "Objects": [ + "0179", + "001B", + "00ED", + "00BA", + "00A7", + "0075", + "0024" + ], + "Actors": [ + "01B6 F269 FF2E FCB8 0000 4000 0000 0000", + "0008 F334 FF38 FD28 0000 0000 0000 03FA", + "0008 F333 FF38 FC47 0000 0000 0000 03FA", + "0095 F334 FF3C FD3E 0000 0000 0000 0000", + "01B4 F25E FF60 FCE7 4000 4000 0000 3601", + "01B4 F25E FF60 FC83 4000 4000 0000 3601", + "01B4 F25E FFC4 FCE7 4000 4000 0000 3601", + "01B4 F25E FFC4 FC83 4000 4000 0000 3601", + "012A F333 FF18 FC48 0000 0000 0000 3613" + ] + }, + { + "File": { + "Name": "Scene 13, Room 11", + "Start": "02688000", + "End": "0268E950", + "RemapStart": null + }, + "Objects": [ + "0179", + "001B", + "00ED", + "00BA", + "00A7", + "0075", + "0024" + ], + "Actors": [ + "01A7 EFCB FF4C FCB8 0000 4000 0000 0002", + "00A6 EFCC FFC4 FCB9 2000 4000 0000 0002", + "0008 F03E FF56 FC4C 0000 0000 0000 03FA", + "0008 F03B FF56 FD29 0000 0000 0000 03FA", + "0111 F0FE FF2E FD09 0000 0000 0000 760E", + "0111 F0FB FF2E FC5B 0000 0000 0000 7803" + ] + }, + { + "File": { + "Name": "Scene 13, Room 12", + "Start": "0268F000", + "End": "0269A270", + "RemapStart": null + }, + "Objects": [ + "0179", + "000E", + "0090", + "0069", + "0031", + "005D", + "008B", + "00A4" + ], + "Actors": [ + "01B4 0624 0096 F125 0000 EAAB 0000 0000", + "005E 0232 0096 F806 0000 1555 0000 2400", + "004C 0512 0096 F728 0000 0000 0000 FFFF", + "00BC 072C 00FC F03A 0000 0889 0000 0000", + "00AF 0500 0096 F57C 0000 2AAB 0000 0000", + "0069 035C 00E8 F716 0000 0000 0000 33FB", + "008A 05FA 0096 EFEA 0000 0000 0000 0500", + "008A 04FE 0096 F3DA 0000 EAAB 0000 0501", + "008A 0632 0096 F19C 0000 0000 0000 0501", + "008A 067F 0096 F1BB 0000 8000 0000 0501", + "000A 0213 00FA F62A 0000 AAAB 0009 8940", + "000A 06DD 01CE F1F5 0000 6AAB 000C 8845", + "0112 0511 0096 F727 0000 0000 0003 1809", + "0117 052A 0096 F72A 0000 0000 0000 1FCB", + "0117 04FF 0096 F3D9 0000 0000 0000 1FCB", + "0117 05F9 0096 EFEB 0000 0000 0000 1FCB", + "0117 0725 0098 F019 0000 0000 0000 1FCB", + "0117 044C 0096 F606 0000 0000 0000 1FCB", + "0117 0281 0096 F827 0000 0000 0000 014B", + "012A 05A3 003F F300 0000 6AAB 0000 0C02", + "01B4 05F6 0096 F27E 0000 EAAB 0000 3D01", + "005E 0505 0064 F354 0000 EAAB 0000 107D" + ] + }, + { + "File": { + "Name": "Scene 13, Room 13", + "Start": "0269B000", + "End": "026A2D40", + "RemapStart": null + }, + "Objects": [ + "0179", + "00F1", + "016D", + "00BA", + "00ED", + "0087", + "0075" + ], + "Actors": [ + "01A7 092F 00F0 ECD0 0000 EAAB 0000 0004", + "00A9 092E 0168 ECD4 2000 EAAB 0000 0002", + "0008 0956 00FA ED6A 0000 0000 0000 03FD", + "0008 0893 00FA ECFD 0000 0000 0000 03FD", + "0111 0819 00D2 EE10 0000 0000 0000 640E", + "0111 08A9 00D2 EE5C 0000 0000 0000 7009" + ] + }, + { + "File": { + "Name": "Scene 13, Room 14", + "Start": "026A3000", + "End": "026AD1D0", + "RemapStart": null + }, + "Objects": [ + "0179", + "002C", + "0025", + "005D", + "011C", + "009A", + "008B" + ], + "Actors": [ + "012D F9D5 0098 F495 0000 1555 0000 FFC0", + "0038 FA4C 0097 F652 0000 DC72 0000 FFFF", + "0038 FA20 0097 F6DB 0000 24FA 0000 FFFF", + "0046 FB7C 0014 F244 0000 9555 0000 0001", + "0046 FCE9 0014 F74B 0000 D555 0000 0001", + "0046 F8D6 0014 F644 0000 9555 0000 0001", + "0043 FD53 0014 F47E 0000 1555 0000 FF01", + "0043 FAD1 0014 F550 0000 1555 0000 FF01", + "0043 F96F 0014 F36E 0000 1555 0000 FF01", + "0046 FDE3 0014 F58A 0000 1555 0000 0000", + "0046 FC54 0014 F511 0000 1555 0000 0000", + "0046 FCDE 0014 F607 0000 1555 0000 0000", + "0046 FA80 0014 F2CE 0000 1555 0000 0000", + "0046 F83F 0014 F400 0000 1555 0000 0000", + "0092 FC31 003D F158 0000 1555 0000 FF00", + "0092 FA97 003B F749 0000 9555 0000 FF00", + "008A FC6D 0098 F1C1 0000 0000 0000 0500", + "012D F8ED 0099 F10E 0000 1555 0000 01C1", + "0117 FC36 0098 F15D 0000 0000 0000 1FC1", + "0117 F89D 00DE F53F 0000 0000 0000 1FC1", + "0117 F804 00F4 F2E6 0000 0000 0000 1FC1", + "0117 FD52 0280 F47F 0000 0000 0000 1FC1", + "0117 F989 0078 F7AB 0000 0000 0000 1FC1", + "0117 FD8E 0096 F832 0000 0000 0000 0141" + ] + }, + { + "File": { + "Name": "Scene 13, Room 15", + "Start": "026AE000", + "End": "026B5D40", + "RemapStart": null + }, + "Objects": [ + "0179", + "002C", + "00BA", + "00ED", + "009D", + "0075" + ], + "Actors": [ + "01A7 F775 00B7 EF54 0000 1555 0000 0003", + "00A8 F775 012F EF58 2000 1555 0000 0002", + "0008 F80F 00C1 EF7B 0000 0000 0000 03FC", + "0008 F74A 00C1 EFEC 0000 0000 0000 03FC", + "0111 F882 0099 F08B 0000 0000 0000 6E03", + "0111 F7FC 0099 F0D0 0000 0000 0000 700F" + ] + }, + { + "File": { + "Name": "Scene 13, Room 16", + "Start": "026B6000", + "End": "026B8E30", + "RemapStart": null + }, + "Objects": [ + "0179", + "000E", + "009A", + "0168", + "004A" + ], + "Actors": [ + "0195 FF3F FF10 02B6 0000 349F 0000 0000", + "0195 005C FF10 03C9 0000 9555 0000 0005", + "0195 FF43 FF10 0361 0000 5555 0000 0007", + "0195 FFAC FF10 03CA 0000 6AAB 0000 0006", + "0195 00D2 FF10 0366 0000 AAAB 0000 0008", + "0018 FFFF FF72 02F9 0000 0000 0000 0004" + ] + }, + { + "File": { + "Name": "Scene 13, Room 17", + "Start": "026B9000", + "End": "026C1620", + "RemapStart": null + }, + "Objects": [ + "0179", + "016C", + "0106", + "0025", + "000D" + ], + "Actors": [ + "0008 FD5C 0100 039A 00B6 AAAB 0000 83F0", + "0008 FD67 00FF 0386 0000 AB61 0000 83F0", + "0008 FD58 00FF 038A FF4A AAAB 0000 83F0", + "0008 FE24 0100 023F FF4A AAAB 0000 83F0", + "0008 FE2F 00FF 022C 00B6 AAAB 0000 83F0", + "0008 FE20 00FF 0230 0000 AB61 0000 83F0", + "0008 FC25 00FF 0118 0000 2B61 0000 83F0", + "0008 FC30 00FF 0104 00B6 2AAB 0000 83F0", + "0008 FC34 00FF 0114 0000 2B61 0000 83F0", + "0038 FC68 0096 01BF 0000 0000 0000 FFFF", + "0013 FD83 0124 0214 0000 CCCD 0000 0000", + "0013 FC21 010F 02C8 0000 9A50 0000 0000", + "0113 FC4F 019B 0336 0000 6AAB 0000 FF03", + "0169 FCEB 0096 0244 0000 0AAB 0000 0001", + "0169 FCB9 0096 0227 0000 4E39 0000 0001", + "0169 FCCD 0096 0274 0000 CAAB 0000 0001", + "0169 FC9D 0096 0258 0000 8AAB 0000 0001", + "012A FCC2 0096 024C 0000 1555 0000 0F01", + "01B4 FC50 019A 0337 0000 0000 0000 3701", + "012A FD8E 0141 00F4 0000 EAAB 0000 3712" + ] + }, + { + "File": { + "Name": "Scene 13, Room 18", + "Start": "026C2000", + "End": "026CE6E0", + "RemapStart": null + }, + "Objects": [ + "0179", + "012A", + "00AB", + "000E", + "0090", + "00A4", + "0163", + "000B", + "000E", + "0090", + "0098", + "005D" + ], + "Actors": [ + "0008 F8FA 00D7 0363 0000 2B61 0000 83F0", + "0008 F8F5 00D7 0354 FF4A 2AAB 0000 83F0", + "0008 F8EA 00D7 0367 0000 2B61 0000 83F0", + "0008 F9E0 00D7 01D5 FF4A 2AAB 0000 83F0", + "0008 F9DB 00D7 01C5 00B6 2AAB 0000 83F0", + "0008 F9D0 00D7 01D9 FF4A 2AAB 0000 83F0", + "0090 FA6B 0096 0415 0000 AAAB 0000 7FFE", + "0090 FBBE 0096 041D 0000 EAAB 0000 7F02", + "0090 FB65 0096 04AA 0000 CD83 0000 7F01", + "0069 FA17 00BE 0237 0000 3333 0000 42FB", + "0069 F96D 010E 0356 0000 693F 0000 52FB", + "000A FABA 0096 04DC 0000 C71C 003C B6C6", + "000A FB96 00FA 0564 0000 0AAB 003E 8907", + "012A F9D0 0172 034F 8000 0000 0000 0803", + "000A FC0D 00FA 047F 0000 4AAB 003D 8848", + "000A FB35 00FA 0400 0000 8AAB 0038 8909", + "01B5 FB69 01C1 04AC 0000 2AAB 0000 0A01", + "01B5 FB69 0096 04AC 0000 2AAB 0000 0A02", + "01B5 FB69 0186 04AC 0000 2AAB 0000 0A00", + "000A F9CE 0096 021F 0000 AAAB 0000 506A", + "0150 FAF8 0145 056E 0000 6AAB 0000 0E00", + "000A F901 0096 037E 0000 AAAB 0000 6954", + "0112 FAFC 0096 029F 0000 0000 0000 3FF7", + "0150 FB33 0136 03E9 0000 0AAB 0000 3830", + "0011 FB4F 0096 04D5 0000 0000 0000 3902", + "0150 FABA 0154 0447 0000 2AAB 0000 3930", + "0150 FBCF 010E 03FE 0000 EAAB 0000 3A30", + "0150 FC1A 010E 050D 0000 AAAB 0000 3B30", + "0150 FA9F 0136 04E2 0000 47D2 0000 3C30", + "0150 FC2A 0136 0475 0000 CAAB 0000 3D30", + "0150 FBA5 0136 0578 0000 8E39 0000 3E30" + ] + }, + { + "File": { + "Name": "Scene 13, Room 19", + "Start": "026CF000", + "End": "026D6D40", + "RemapStart": null + }, + "Objects": [ + "0179", + "0072", + "0073", + "00BA", + "00ED", + "00B3", + "0075" + ], + "Actors": [ + "01A7 FA05 00B4 0714 0000 6AAB 0000 0005", + "00C3 FA05 012C 0714 2000 6AAB 0000 0002", + "0008 FA9E 00C1 06F1 0000 0000 0000 03F9", + "0008 F9DA 00C1 067E 0000 0000 0000 03F9", + "0111 FA86 0096 0586 0000 0000 0000 660C", + "0111 FB18 0096 05DC 0000 0000 0000 680F" + ] + } + ] + } +] \ No newline at end of file From 4caa231cb00e08fd06924e434a9a6576dd799d46 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Tue, 14 Aug 2018 00:54:38 -0400 Subject: [PATCH 279/755] Shop items have proper text --- ItemList.py | 4 ++-- Items.py | 2 +- Messages.py | 1 + Rom.py | 53 ++++++++++++++++++++++++++++++++++++++--------------- Rules.py | 2 +- version.py | 2 +- 6 files changed, 44 insertions(+), 20 deletions(-) diff --git a/ItemList.py b/ItemList.py index 3cd1b46fe..0781b6c84 100644 --- a/ItemList.py +++ b/ItemList.py @@ -351,8 +351,8 @@ def get_pool_core(world): placed_items['Gerudo Fortress Membership Card'] = 'Gerudo Membership Card' pool.extend(['Buy Deku Nut (5)'] + ['Buy Arrows (30)'] + ['Buy Arrows (50)'] + ['Buy Bombs (5)'] + ['Buy Deku Nut (10)'] + ['Buy Deku Stick (1)'] + ['Buy Bombs (10)'] + - ['Buy Fish'] + ['Buy Red Potion'] + ['Buy Green Potion'] + ['Buy Blue Potion'] + ['Buy Hylian Shield'] + ['Buy Deku Shield'] + ['Buy Goron Tunic'] + ['Buy Zora Tunic'] + - ['Buy Heart'] + ['Buy Bombchu (10)'] + ['Buy Bombchu (20)'] + ['Buy Bombchu (5)'] + ['Buy Deku Seeds (30)'] + ['Sold Out'] * 16 + ['Buy Blue Fire'] + ['Buy Bottle Bug'] + + ['Buy Fish'] + ['Buy Red Potion'] + ['Buy Green Potion'] + ['Buy Hylian Shield'] + ['Buy Deku Shield'] + ['Buy Goron Tunic'] + ['Buy Zora Tunic'] + + ['Buy Heart'] + ['Buy Bombchu (10)'] + ['Buy Bombchu (20)'] + ['Buy Bombchu (5)'] + ['Buy Deku Seeds (30)'] + ['Sold Out'] * 17 + ['Buy Blue Fire'] + ['Buy Bottle Bug'] + ['Buy Fairy\'s Spirit'] + ['Buy Arrow (10)'] + ['Buy Bombs (20)'] + ['Buy Bombs (30)'] + ['Rupees (5)'] * 14) pool.extend(alwaysitems) diff --git a/Items.py b/Items.py index 01d1e370e..859b9db94 100644 --- a/Items.py +++ b/Items.py @@ -202,7 +202,7 @@ def __init__(self, model, gid, price): 'Buy Fish': (False, True, 'Shop', None, 0x07, 0x00F4, 0x3F), 'Buy Red Potion': (False, True, 'Shop', None, 0x08, 0x00EB, 0x15), 'Buy Green Potion': (False, True, 'Shop', None, 0x09, 0x00EB, 0x16), - 'Buy Blue Potion': (False, True, 'Shop', None, 0x0A, 0x00EB, 0x17), + #'Buy Blue Potion': (False, True, 'Shop', None, 0x0A, 0x00EB, 0x17), 'Buy Hylian Shield': (True, False, 'Shop', None, 0x0C, 0x00DC, 0x2C), 'Buy Deku Shield': (True, False, 'Shop', None, 0x0D, 0x00CB, 0x1D), 'Buy Goron Tunic': (True, False, 'Shop', None, 0x0E, 0x00F2, 0x3C), diff --git a/Messages.py b/Messages.py index 8253aecf7..e92c614b1 100644 --- a/Messages.py +++ b/Messages.py @@ -512,6 +512,7 @@ def update_message_by_index(messages, index, text, opts=None): if opts is None: opts = messages[index].opts messages[index] = Message.from_string(text, messages[index].id, opts) + messages[index].index = index # wrapper for adding a string message to a list of messages def add_message(messages, text, id=0, opts=0x00): diff --git a/Rom.py b/Rom.py index 10cb471cf..71d7b2b87 100644 --- a/Rom.py +++ b/Rom.py @@ -1301,43 +1301,57 @@ def write_save_table(rom): free_shop_ids = list(unused_shop_ids) # kokiri shop - shop_objs = place_shop_items(rom, shop_items, free_shop_ids, world.get_region('Kokiri Shop').locations) | {0x00FC, 0x00B2, 0x0101, 0x0102, 0x00FD, 0x00C5} + shop_objs = place_shop_items(rom, shop_items, messages, free_shop_ids, + world.get_region('Kokiri Shop').locations) + shop_objs |= {0x00FC, 0x00B2, 0x0101, 0x0102, 0x00FD, 0x00C5} # Shop objects rom.write_byte(0x2587029, len(shop_objs)) rom.write_int32(0x258702C, 0x0300F600) rom.write_int16s(0x2596600, list(shop_objs)) # bazaar - shop_objs = place_shop_items(rom, shop_items, free_shop_ids, world.get_region('Castle Town Bazaar').locations) | {0x005B, 0x00B2, 0x00C5, 0x0107, 0x00C9, 0x016B} + shop_objs = place_shop_items(rom, shop_items, messages, free_shop_ids, + world.get_region('Castle Town Bazaar').locations) + shop_objs |= {0x005B, 0x00B2, 0x00C5, 0x0107, 0x00C9, 0x016B} # Shop objects rom.write_byte(0x28E4029, len(shop_objs)) rom.write_int32(0x28E402C, 0x0300FA18) rom.write_int16s(0x28EBA40, list(shop_objs)) # goron shop - shop_objs = place_shop_items(rom, shop_items, free_shop_ids, world.get_region('Goron Shop').locations) | {0x00C9, 0x00B2, 0x0103, 0x00AF} + shop_objs = place_shop_items(rom, shop_items, messages, free_shop_ids, + world.get_region('Goron Shop').locations) + shop_objs |= {0x00C9, 0x00B2, 0x0103, 0x00AF} # Shop objects rom.write_byte(0x2D33029, len(shop_objs)) rom.write_int32(0x2D3302C, 0x03004340) rom.write_int16s(0x2D37340, list(shop_objs)) # zora shop - shop_objs = place_shop_items(rom, shop_items, free_shop_ids, world.get_region('Zora Shop').locations) | {0x005B, 0x00B2, 0x0104, 0x00FE} + shop_objs = place_shop_items(rom, shop_items, messages, free_shop_ids, + world.get_region('Zora Shop').locations) + shop_objs |= {0x005B, 0x00B2, 0x0104, 0x00FE} # Shop objects rom.write_byte(0x2D5B029, len(shop_objs)) rom.write_int32(0x2D5B02C, 0x03004B40) rom.write_int16s(0x2D5FB40, list(shop_objs)) # kakariko potion shop - shop_objs = place_shop_items(rom, shop_items, free_shop_ids, world.get_region('Kakariko Potion Shop Front').locations) | {0x0159, 0x00B2, 0x0175, 0x0122} + shop_objs = place_shop_items(rom, shop_items, messages, free_shop_ids, + world.get_region('Kakariko Potion Shop Front').locations) + shop_objs |= {0x0159, 0x00B2, 0x0175, 0x0122} # Shop objects rom.write_byte(0x2D83029, len(shop_objs)) rom.write_int32(0x2D8302C, 0x0300A500) rom.write_int16s(0x2D8D500, list(shop_objs)) # market potion shop - shop_objs = place_shop_items(rom, shop_items, free_shop_ids, world.get_region('Castle Town Potion Shop').locations) | {0x0159, 0x00B2, 0x0175, 0x00C5, 0x010C, 0x016B} + shop_objs = place_shop_items(rom, shop_items, messages, free_shop_ids, + world.get_region('Castle Town Potion Shop').locations) + shop_objs |= {0x0159, 0x00B2, 0x0175, 0x00C5, 0x010C, 0x016B} # Shop objects rom.write_byte(0x2DB0029, len(shop_objs)) rom.write_int32(0x2DB002C, 0x03004E40) rom.write_int16s(0x2DB4E40, list(shop_objs)) # bombchu shop - shop_objs = place_shop_items(rom, shop_items, free_shop_ids, world.get_region('Castle Town Bombchu Shop').locations) | {0x0165, 0x00B2} + shop_objs = place_shop_items(rom, shop_items, messages, free_shop_ids, + world.get_region('Castle Town Bombchu Shop').locations) + shop_objs |= {0x0165, 0x00B2} # Shop objects rom.write_byte(0x2DD8029, len(shop_objs)) rom.write_int32(0x2DD802C, 0x03006A40) rom.write_int16s(0x2DDEA40, list(shop_objs)) @@ -1729,9 +1743,10 @@ def update_chest_sizes(rom, override_table): rom.write_int16(address, default) -unused_shop_ids = [0x0B, 0x11, 0x12, 0x13, 0x14, 0x17, 0x19, 0x1A, 0x1B, 0x1C, 0x29, 0x2A, 0x2F, 0x30, 0x31] -def place_shop_items(rom, shop_items, free_shop_ids, locations): +unused_shop_ids = [0x11, 0x12, 0x13, 0x14, 0x17, 0x19, 0x1A, 0x1B, 0x1C, 0x29, 0x2A, 0x2F, 0x30, 0x31] +def place_shop_items(rom, shop_items, messages, free_shop_ids, locations): shop_objs = set() + messages for location in locations: shop_objs.add(location.item.object) if location.item.type == 'Shop': @@ -1739,10 +1754,18 @@ def place_shop_items(rom, shop_items, free_shop_ids, locations): else: shop_id = free_shop_ids.pop() rom.write_int16(location.address, shop_id) - shop_items[shop_id].object = location.item.object - shop_items[shop_id].model = location.item.model - shop_items[shop_id].price = location.item.price - shop_items[shop_id].pieces = 1 - shop_items[shop_id].get_item_id = location.item.index - shop_items[shop_id].func2 = 0x8086365C + shop_item = shop_items[shop_id] + shop_item.object = location.item.object + shop_item.model = location.item.model - 1 + shop_item.price = location.item.price + shop_item.pieces = 1 + shop_item.get_item_id = location.item.index + shop_item.func2 = 0x8086365C + + message_id = unused_shop_ids.index(shop_id) * 2 + shop_item.description_message = 0x8000 | message_id + shop_item.purchase_message = 0x8000 | message_id + 1 + add_message(messages, '\x08\x05\x41%s %d Rupees\x01\x05\x40Special deal! ONE LEFT!\x01Get it while it lasts!\x09\x0A\x02' % (location.item.name, location.item.price), shop_item.description_message, 0x03) + add_message(messages, '\x08%s %d Rupees\x09\x01\x01\x1B\x05\x42Buy\x01Don\'t buy\x05\x40\x02' % (location.item.name, location.item.price), shop_item.purchase_message, 0x03) + return shop_objs diff --git a/Rules.py b/Rules.py index 82bba3301..dfa618958 100644 --- a/Rules.py +++ b/Rules.py @@ -281,7 +281,7 @@ def global_rules(world): if location.type != 'Chest': forbid_item(location, 'Ice Trap') add_item_rule(location, lambda i: not (i.type == 'Song' and not i.world.shuffle_song_items and i.world.id != location.world.id)) - if location.type == 'Shop' and not location.name.endswith('7') and not location.name.endswith('8'): + if location.type == 'Shop' and not location.name.endswith('5') and not location.name.endswith('7'): add_item_rule(location, lambda i: (i.type == 'Shop')) else: add_item_rule(location, lambda i: (i.type != 'Shop')) diff --git a/version.py b/version.py index 144dbfac6..dadfe3f27 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.22 f.LUM' +__version__ = '2.15.23 f.LUM' From f150e308cee509d35b8ceeb3117d74c653575910 Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Tue, 14 Aug 2018 12:16:22 -0300 Subject: [PATCH 280/755] Logic for DMT HP For ohko + closed kakariko. Also minor edits to the can_leave_forest usage. --- Rules.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/Rules.py b/Rules.py index 871d5f694..84aa07aa6 100644 --- a/Rules.py +++ b/Rules.py @@ -99,6 +99,7 @@ def global_rules(world): set_rule(world.get_location('Composer Grave Chest'), lambda state: state.has_fire_source()) set_rule(world.get_entrance('Bottom of the Well'), lambda state: state.can_play('Song of Storms')) set_rule(world.get_entrance('Death Mountain Entrance'), lambda state: state.has('Zeldas Letter') or state.is_adult() or world.open_kakariko) + set_rule(world.get_location('DM Trail Freestanding PoH'), lambda state: world.open_kakariko or (world.difficulty != 'ohko') or (state.has('Zeldas Letter') or state.can_blast_or_smash() or (state.is_adult() and (state.has('Bow') or state.has('Progressive Strength Upgrade') or state.has_bottle() or state.has('Hover Boots') or (state.has('Nayrus Love') and state.has('Magic Meter')))))) set_rule(world.get_location('Death Mountain Bombable Chest'), lambda state: state.can_blast_or_smash()) set_rule(world.get_location('Biggoron'), lambda state: (not world.logic_no_trade_biggoron) and (state.has('Progressive Strength Upgrade') or state.can_blast_or_smash() or state.has('Bow')) and state.is_adult() and state.can_finish_adult_trades() and state.guarantee_hint()) set_rule(world.get_location('Goron City Leftmost Maze Chest'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade', 2) or state.has('Hammer'))) @@ -127,7 +128,7 @@ def global_rules(world): set_rule(world.get_location('Adult Shooting Gallery'), lambda state: state.has('Bow') and state.is_adult()) set_rule(world.get_location('10 Big Poes'), lambda state: (not world.logic_no_big_poes) and (state.has('Bow') and state.has('Epona') and state.has_bottle() and state.is_adult() and state.guarantee_hint())) set_rule(world.get_location('Treasure Chest Game'), lambda state: state.has('Lens of Truth') and state.has('Magic Meter')) - set_rule(world.get_entrance('Lost Woods Dive Warp'), lambda state: state.can_dive() and (state.can_leave_forest())) + set_rule(world.get_entrance('Lost Woods Dive Warp'), lambda state: state.can_dive() and state.can_leave_forest()) set_rule(world.get_entrance('Zora River Dive Warp'), lambda state: state.can_dive()) set_rule(world.get_entrance('Lake Hylia Dive Warp'), lambda state: state.can_dive()) set_rule(world.get_entrance('Zoras Domain Dive Warp'), lambda state: state.can_dive()) @@ -152,8 +153,8 @@ def global_rules(world): set_rule(world.get_location('Talons Chickens'), lambda state: state.has('Zeldas Letter')) set_rule(world.get_location('Song from Malon'), lambda state: state.has('Zeldas Letter') and state.has_ocarina()) set_rule(world.get_location('Epona'), lambda state: state.can_play('Eponas Song') and state.is_adult()) - set_rule(world.get_entrance('Adult Forest Warp Pad'), lambda state: state.can_play('Minuet of Forest') and state.is_adult() and state.can_leave_forest()) - set_rule(world.get_entrance('Child Forest Warp Pad'), lambda state: state.can_play('Minuet of Forest') and state.can_leave_forest()) + set_rule(world.get_entrance('Adult Forest Warp Pad'), lambda state: state.can_play('Minuet of Forest') and state.is_adult()) + set_rule(world.get_entrance('Child Forest Warp Pad'), lambda state: state.can_play('Minuet of Forest')) set_rule(world.get_entrance('Adult Meadow Access'), lambda state: state.can_play('Sarias Song') and state.is_adult()) set_rule(world.get_entrance('Forest Temple Entrance'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) set_rule(world.get_entrance('Dampes Grave'), lambda state: state.is_adult()) @@ -206,9 +207,9 @@ def global_rules(world): set_rule(world.get_location('Zelda'), lambda state: state.has('Shadow Medallion') and state.has('Spirit Medallion') and state.is_adult()) set_rule(world.get_location('Ganon'), lambda state: (state.has('Boss Key (Ganons Castle)') or world.unlocked_ganondorf) and (state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows')) ) set_rule(world.get_entrance('Kokiri Forest Storms Grotto'), lambda state: state.can_play('Song of Storms')) - set_rule(world.get_entrance('Lost Woods Generic Grotto'), lambda state: state.has('Bomb Bag') or (state.can_blast_or_smash() and (state.can_leave_forest()))) - set_rule(world.get_entrance('Lost Woods Sales Grotto'), lambda state: (state.has('Bomb Bag') or (state.has_bombchus() and (state.can_leave_forest()))) or (state.has('Hammer') and state.is_adult() and (state.can_play('Minuet of Forest') or state.can_play('Sarias Song')))) - set_rule(world.get_entrance('Front of Meadow Grotto'), lambda state: (state.has('Bomb Bag') or (state.has_bombchus() and (state.can_leave_forest()))) or (state.has('Hammer') and state.is_adult() and (state.can_play('Minuet of Forest') or state.can_play('Sarias Song')))) + set_rule(world.get_entrance('Lost Woods Generic Grotto'), lambda state: state.has('Bomb Bag') or (state.can_blast_or_smash() and state.can_leave_forest())) + set_rule(world.get_entrance('Lost Woods Sales Grotto'), lambda state: (state.has('Bomb Bag') or (state.has_bombchus() and state.can_leave_forest())) or (state.has('Hammer') and state.is_adult() and (state.can_play('Minuet of Forest') or state.can_play('Sarias Song')))) + set_rule(world.get_entrance('Front of Meadow Grotto'), lambda state: (state.has('Bomb Bag') or (state.has_bombchus() and state.can_leave_forest())) or (state.has('Hammer') and state.is_adult() and (state.can_play('Minuet of Forest') or state.can_play('Sarias Song')))) set_rule(world.get_entrance('Remote Southern Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Field Near Lake Inside Fence Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Field Valley Grotto'), lambda state: state.can_blast_or_smash()) @@ -224,7 +225,7 @@ def global_rules(world): set_rule(world.get_entrance('Zora River Plateau Open Grotto'), lambda state: state.has_explosives() or state.has('Progressive Scale') or state.is_adult()) set_rule(world.get_entrance('Zora River Plateau Bombable Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_location('Tektite Grotto Freestanding PoH'), lambda state: state.has('Progressive Scale', 2) or (state.has('Iron Boots') and state.is_adult())) - set_rule(world.get_location('GS Kokiri Know It All House'), lambda state: state.nighttime() and state.can_reach('Hyrule Field')) + set_rule(world.get_location('GS Kokiri Know It All House'), lambda state: state.nighttime() and state.can_leave_forest()) set_rule(world.get_location('GS Kokiri Bean Patch'), lambda state: state.has_bottle()) set_rule(world.get_location('GS Kokiri House of Twins'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.nighttime()) set_rule(world.get_location('GS Lost Woods Bean Patch Near Bridge'), lambda state: state.has_bottle()) @@ -293,7 +294,7 @@ def dung_rules_dt0(world): set_rule(world.get_entrance('Deku Tree Basement Path'), lambda state: state.has('Slingshot')) # GS - set_rule(world.get_location('GS Deku Tree Basement Back Room'), lambda state: state.has('Boomerang') and (state.has('Bomb Bag') or (state.has_bombchus() and (state.can_leave_forest())))) + set_rule(world.get_location('GS Deku Tree Basement Back Room'), lambda state: state.has('Boomerang') and (state.has('Bomb Bag') or (state.has_bombchus() and state.can_leave_forest()))) def dung_rules_dc0(world): # Dodongo's Cavern Vanilla From 81100a45ff16a2e68dbfd924d64ac9c01a2f5716 Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Tue, 14 Aug 2018 12:27:30 -0300 Subject: [PATCH 281/755] Logic Fix --- Rules.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Rules.py b/Rules.py index 84aa07aa6..75a5e24c6 100644 --- a/Rules.py +++ b/Rules.py @@ -99,7 +99,7 @@ def global_rules(world): set_rule(world.get_location('Composer Grave Chest'), lambda state: state.has_fire_source()) set_rule(world.get_entrance('Bottom of the Well'), lambda state: state.can_play('Song of Storms')) set_rule(world.get_entrance('Death Mountain Entrance'), lambda state: state.has('Zeldas Letter') or state.is_adult() or world.open_kakariko) - set_rule(world.get_location('DM Trail Freestanding PoH'), lambda state: world.open_kakariko or (world.difficulty != 'ohko') or (state.has('Zeldas Letter') or state.can_blast_or_smash() or (state.is_adult() and (state.has('Bow') or state.has('Progressive Strength Upgrade') or state.has_bottle() or state.has('Hover Boots') or (state.has('Nayrus Love') and state.has('Magic Meter')))))) + set_rule(world.get_location('DM Trail Freestanding PoH'), lambda state: world.open_kakariko or (state.has('Zeldas Letter') or state.can_blast_or_smash() or (state.is_adult() and ((world.difficulty != 'ohko') or state.has('Bow') or state.has('Progressive Strength Upgrade') or state.has_bottle() or state.has('Hover Boots') or (state.has('Nayrus Love') and state.has('Magic Meter')))))) set_rule(world.get_location('Death Mountain Bombable Chest'), lambda state: state.can_blast_or_smash()) set_rule(world.get_location('Biggoron'), lambda state: (not world.logic_no_trade_biggoron) and (state.has('Progressive Strength Upgrade') or state.can_blast_or_smash() or state.has('Bow')) and state.is_adult() and state.can_finish_adult_trades() and state.guarantee_hint()) set_rule(world.get_location('Goron City Leftmost Maze Chest'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade', 2) or state.has('Hammer'))) From 1b9d05096a233e49e7b4c79b976136d4cf70023d Mon Sep 17 00:00:00 2001 From: Chris Muncey Date: Tue, 14 Aug 2018 14:07:21 -0400 Subject: [PATCH 282/755] Updated Compressors --- Compress/Compress | Bin 22584 -> 18408 bytes Compress/Compress.exe | Bin 51200 -> 53760 bytes Compress/Compress.out | Bin 15108 -> 19524 bytes Compress/Compress32.exe | Bin 0 -> 55808 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100755 Compress/Compress32.exe diff --git a/Compress/Compress b/Compress/Compress index 1386ef9776b14f16380a349be5d4eb32cc90ddc6..27560aa5e7217909f3f1f5dde6f094621816bb13 100755 GIT binary patch literal 18408 zcmeHv4|o(+mTz^^fd)dVm4Fd&D4oV3E5tM;Od5=nN~)on?I0td%pem(r(>ca$xFHs z{7{nV1XJ4<;*8JFo!vL%?9ROBw{LdkxekN)FHIncIL<}{g`fg1Xf+Xtq7eDl?{{w1 zO*$E}GvE97&HFwtU+3I&?m6e4d+xdC-dokpX0Lxyip?hQk}BLO5VkDSq!d{Vvt+9R zP$U!xJdM%J_97FY)hq*+Y7QM1Jr&T7PeF=F7zw9ad>nEM2~vNfm7;}a z3x|RrF#^evt;gQ!a{ZQEza__^VA;15-Mn; z!XfceS#~m1LG@$#4E-bcdy_11$mPBdIkNN5El!K^Zr| z+yBWk`{y0|<~()vsZ8RP@F5*+TvV|+Q;2pmKG`=tG2Qb;l!pf>!%GwRuOCigSOkBs zMZXSoiE#}7a|-CS_?1!g&l-h(b`(8}N1;y}MNj1@^ogU;$${6hf5|BH6QkJkBKRe= zjVw2hqURT2yjH)rkHY`@DEwnb;omz7|NEoRKOBX=VHEv88HIoUDD=Wn^vnUjgwM#b z283(*=U(W!Wh683`ce2Z!GE2QB}hdQlj8YjzC|w@K^L%Y>qAuy!SV`Pthqv&Z$)WY zMX(|GKy_m%*s!9sq^7PmxT1V*P0(z+W{ahwY+X1M+yL>$P($5DVK}wAwmLL|R8tpt zXpj_u5uxB9`e0pk?I2?64c9UOm>eKu=L?mUHQ~l8p{%UFp}ICySr({zNC<8~HboISwyqolYuwlvsH?3c*`To4?<+1To0~H?Cx5W+&Ks=G%NeTYLDvK8>S`@r zWi-htRyIvR&5k-j`j>_eWlK&Woc@_O<=dgU4T%9EB2b=|@Ci??9!DIlL`1Pc^Gkqy zpLqJIXOM=+2v4D%XrUX4KTY_13(u^so=7|1^A>LEOBvM1_gNmF%O+DVf?!ztDW^Lv zx}!*9?VQf>L*Fy$v?tL1!OO8E`gl$RG?M6I61_i(p1g?+B+#Lw3kojs%^I$vKz zzd4ESu=I=t4K5ih&LleD52-OLiO%IFwD$XZK^z7#qg7I92zeqTRUR+}MKM_tL z7k4uJ9|)&Viwg|@8R4|_evz82)3zuP3~n;g1kLiSX?V zZy=mPD*hb9A0(VYDZY*2YYC?iiZ?O*hlEq;#OoP;H{ldA@%tIRgm4O#__9Iy%5A_| zk?)o7@o5+2mGX*}%Q4Ang&MWboP{=3Q(Oh^cBA)OsOyD)BO%${2@Ptra4}RGDHyCT zy4j)X`S(%VEx=!=c~-TKHvsGg*{5oUcMv{i-W~e%?#!jaCwF}1WO!k7Rl{k!VQ?J@t)Sbo+gY_(90_xt@)1XUY%SWVN zS6q4SBVPA;@{mKE(L`F+=q8tA$Ou@Z>a(ZGkxrX&BdqX8=iCA-)W9ZJo-bOOrP|`E z=65-b-!KzV^F>!WEcd}lwy58gr=?F-11ns4P-YysOoK-s!^Ud71~PPa=5yVt>m*|p zbV8kzbPTEV3Q79ZNC)PJ=}glgtax(8#|tone(h6Z1EUxI0CeLwh$J=8qoz(?0u%#w zzHuJY5-pZgZSv+^Ec$LO7A)RzXr+VWeNgJ z&pGwi2!j;pi%!vQ5PvthWTqfgYWLdR`};Bm{h4;0a*eI0slY8hEvS**HnsU8^&S3q za-&1lE~&9k(~JjM2ZfVh3r$Jdix4xuGKqIGqVXv(z2wRpE6{&eS`ZABZ@SXzP@|%y zUAY}X(eS?D8r*&ds+)Rzp!UZJy)ulwD_4H$2 zz2vH2`^vAK^Xqf2LsBW#L!AhbBEkJ88F$pLor3Ef#>tDABF{%*LybO4W=HlqjO$3B zr!V{&Vm{v`2u2T>(81vxbnrAfU~@@JE5(=zG3Y2pqe-Nd~n?ldlc&1}vGZuGPICRdj6iAfcS+H2M?Q4aY7>QO{VWFS@C z`W?7d(d#d(fg`@xFd&v*{d&OZi*(w3u}{+cTF8|pzkWZOD#aNs!~&!8W6vsY~S1z53qX8UjMQ^#Fu*{^B?p>)O8t{qWh$0T)J zhniaW1L#qs>z%$pk3wrxq4@RReA+NzrGmxeRLE9E>qgACtK;^f3(6&iBzBux_G*XF zf!W%jYKKVsP-_P!;wvPtCE9EWW{*dAOSJnW2W%&Up?kI(eT+sc`67FqvaOvgn60hA zJpFnAOVfkli>>3aN)Z)rQ5xI|GIFpJ3+xDXedFh*Z=Xb)s>KEqFG8ck*iUWRQR8Qj zf&4=xztoa9g4m$cNa3R(3ZZgD#HXb0E|YcDY_Lv(xVv428wx7adFgD62$$m!psrpc z-zTq;eV>NQ3f7uGZp7t~BZK^);+YA)WhM9@Ul~DMl zI76Y9LJi1DRZnXMR6PT#b~1D$reXo1i1UeS632!*SkpnPbqI&Nj~Mm*Vx}hhD&*DJ z)l^mM$K-xbwRNiRTn%MGq0Lg5P71lfBlR^Ey1^!dZ-=+v|0~p1l0E5|kX~TM8aTmF zF@(;vap1F&coV!Poa=x}jEC6Q#4EvJ;?c!+vAbi)UTpyAwjo@;XJz(#%e8lRl9J{= zx?9PwT!)n=s)w4dQbiG$e&p$W>>+>PEq`D?{A>GqCrfg+i{cES_55Rbvbe(|7c2#G%{u6!UIfCE?ZtV-I*edJ6hsPaV#{{0$=Z2YJJ>}Mf}H&x8;;z3n#QAu zsv*BhLy^r9dBvrlD4tW|)+W$=fe+QdDX%-B+AgtfRofMe%Zq^(E8>o6O2HZ-Tp*hk zDz3|YSk<^VBciszuX^>^SY4fLvkgI=1qOY*DaQq}hUkbVqvzPLk_3nqkf*ch$x zsrnKdhQCR~{M|7rJXY2AdEVU|S3Don&<@Jl0U0~44?~kZr@}AGk;~>JdbMmtR6f?1 z!AJ?*;^Q+Bi`GD?cXMusQi5zwbJC2*&*4aAkxh&HwhyisI*$$>Myqfboo*dQ?{lqk zA89?0Ex@TFCC(DJZowu_hp{4`b_wI}R9w>poXWiJ6Ye8jiVHg^_ISm`Zr`+f=Th9t zkt>L(F}Q!QjIJFvBPsiEbDUyHRJ-NouPK&xnrq{(ZoS0jIZRstKAEEa1w_@r*9a&x zX8Zw`F?_mxp`xAIrfQvP_Ekhq-k73-+;BP_TO#dF3T(0E9dse<#VH;`d_0Z0bdyVx zS;sv8m54hsQ+Ylg)-xm{IygB2l6%dA5Z(4Edp%X2}KXrpvlw zw*i?h>Tf}>85lJCEKbDMD>x*>FBpuXUDVEsTfP97UXqY?zbhrXhkCccb#lybM6O&X zZuwU<`vPC8f&JzTC~Zn!QJa!k!~#WJY^Z@ZF}hUUd!|iEFQUQP`Vf{hH0_Gm@@*^= zGE#hEBYH;q34NE1RfW;B*jU9Ke%CZr54noiVOQUjYHLeRH6Hw&osotHL=vm82b(K{ z#wxb{Ex9hTrz$zeuso)Rua*W*!0Om1c4b^=aU0Z=)w1^c_$ru$=!TI9Vv6qgQmjn4 zL(vW@I4wym-^V|t8<0Bzo_Nk+I|yd$n;>;rt1Mm)jm(`)9BShKgl6Nr{p9N=*eDEJ z-?QS|5J7yOehP7G_-V9hy|X0Rxi^CXyBt_RT3RP)#yV*7M<>6BdTHzakjEdul>4H^ z*nckgkruLwqnXbF&!SLqE{WzHGESYv(Y&2v0|5dKvE_M$s;s|uKl(PWM}dTK09-z8 zx6)QMwoCXy`6IbLbc`dQ;nVMSiaQX$XV8V*Ry+nY>d6@!Z~{#O8Z)v`vl~S?+2Atf zhH;9n&X6hk<(!l4XwkuvNC75+V?(}BaXkBF)FQ8Mh$?4a=!0Fwmc~N`M*f2zX z-}vumD7~hg_zsj}F=Ww^Wr05s!UZT=l*JCJOQLu58xfQ5Rq&xfVzfHY{HcY{S+dSj z?Ml?{lC?Dgu6eSy&hFJpr^}kxfgrL2rW=K%MKA2U1-_2K3VVGZ=07+yKoA%*uad~MSJ${>iy5qG<)6`Tl!H^78d>zlH!x}!by%G4q7OG zy^)JH;{|5(s8MXgd#Er63Uxa0U&WpS+F%psy{OZydrC1yc zpQSHKRkYa{+i8&1=;UAFsew29D^fvcXpGMnfP=gIsrk*+q{V%>JT~2tf@+N`s}%Z? zf!1Sb!eMpbAkSjgzan=o&cY`9wO>mZiPLD-E}HX%>s*)dHYhYLj`%+!(2-A~lV7}< z{FQ$L5;j{Q?sg^nVq|xU@i};L&Kr+*V=u`qEZl;+xb-ANv3O^>+mn{BwO$ZU$7kYx zLlMW)A0mlG5Q5yfG?4c!B1)lqk+GJHW5Gme&1DvrI4J`8DjQDG2)*L!t=!<47v@KV)w;r9N^>?Mv$|-7V7~8gX z4Auwon6s_;E3F?Zq^ z9W4W>oW&t}{XS5?u9U^2-Jr%Q#l9{;)Q{|e%sV#X2es~NuE}9{FK(Ir>a#l!Q`_gw7ss#a{>{!_LQcSxo$sO6 zQ910sqU!e)$@lp6t?X{K5;sx@tit0|X4rCT9S^rlo|oR_^SlGYKD7)JTlOI>ijObA z-$JrZYx>bGyY)sNzS6X9>Sy{#4s zPNyKY&_zPrkv;|oy_zw$*zqhmcG9Vgi!(fxS5iQA0I}_(^QrigPF%LU;*Rq;z2Fq| z2RYK4kl*d}y1Tr#&%N$W+5NukeoOJhyjs6kEa_^#ME(l@7)p;(_oezvu4Q8dVUf7w zSGQV~P4iRb*oiFfxXYk!ns3A3(0ug!sZ)-9;sDt@?n}jee9-dNMF^ATOKg&sH(z3N zu+i)8^}4&=?Oyjm#l3g6qTR05*@rG0g*11eP$A9QD^TVnDC|$ zAbV2rP2L-sxBoBY)&DT>^_Y1N`@SDxZ%p|FdunSt9=nMx#aOX#&{{OwPg>NyV#_>G z>D>r5SkLIs8fQ;{!Cbek=df;Z&7qzAjPVRkmUtu5`Y#~jtmeQrpRUDlmY>qL!gWI| zp4C?2y1q?uO=`naO6?sY_+6P=EEad7a-H@L-UgWU$>KiG?vUu-|2hH)792H}z$(9v zTPH5gxUFrP3F=390BJLxgE_v)Wqa6&dNajtkK#%X-A=5T5YIHlA!In9VYp=Fpd|G$ zi-rZWvv6s#n-2~ZI`80hi+SLQcm6wno<;lvz|dxF2aFG3^(+zzsF z6g9R>B<&B{MfaP1S%d2>60_4Or1@(+To*#$kEV#-g%vfyN5Y>(i}B>Fu%WT2Jlu;5 zgxEb3BT5wFPeu4mU3T=1rS+xDcxx4l+8+n+{cu_MOmhsXzNg!Da0(sfd(nw2Z;)s| z`a>EPy#zX&Qlkt5XJKPLYn9wn&fM@cJY zVCe`YDaLPxl%#MaK5eg&XDPS?&=1KF=11F&iy?&>9z&cm-x!rn!GU+^jgi(7>$68L z;rT}kt%u0&TzA5K{^eANSo>MDI9=?-Asad{s)l3 z1RMe|o@ImBL=TFrXW$qPdxiK1v?%&tU!liFnXlv$l>$VwyL_?Z_CB$48y@C4eV)T& z%l|+l?h$`K8E>iVQ`uD{s!T=5AR3gZ2p4THATv(Zx&8#fjZw+!!&ab|R^T7sH{i;r=n0ozr~??K z$0;7J<;n4*2n;*FEr;f+OqdivbM&SUvn1;4 z9#HTkLQ8uaxY0&B4_Q}B?NDsk&C>I3Xwt%)N+Ga$p>~Ka4NdSf?p+H&g7v?kbc+v8 zj@i9*?Rv!W!z5^4iaL&}Sl6%6A++!HZIMJOz4;D5gjX*}wX~$RLfTkCQdS0kiL{;H z1%F^sbQw2N6Y@~(D1-EBdJ(E}^JOsD!)x(Mk6y^oHz19Prkc<^@-&3w(@7{gaVD(6 zxI4kKYc9mh3B4WM%ywfk$w80t0r-*oPJYB&E}05WT+bBHv$mv!a|Vs3f&+~0QAgiv zL%EU0&GLtqpks(%pLwUqUX9ElxZJ0m_h|?H*(X^}i(N@I#-dlX^>j#bAK~Y9yukEp z=M`v3WPU(TzE#hMVZ77a<4B67r1SB)4mgdzJ3^6wf!gpLv6xAvNNgZsUc9wYT9TJiJzr?=De&_jq&G;_Gh9>6>p5 zlLB??>KlTMjn#FvIfB2gyn={wL!hd9eK1E*f}vm_6s(YDR)7-vX(mE?iSl`<)QXt~G6!Li82J@tkjEWBCKHo9mKR`)cuZKk4qf zO4mrMmz9UAq{_Mm310)`R7>*S@&+3I0?Ajq9^dV&kgBOEka20%NS)Mys+*AfJR2bo#Ki_!Z8xQ=Ycp%sPzxVGiWgOqw@&D2T zh?x-uPh8lx%6G*e_6hnce`;arrFwM3lou%k)%-qeMEHP3YmsUUd;pDOr{ zzO>2q;gBbQ>}OT{4h^iY;L?EKFt3N<|39Hy$#~9|>P{V>QGotN^s#sX z#8rIg8^n8X8}0aW^xdDDLF!8WNS!)?=Hw;lQa{Bl33XvnhBJ~ z*Vy3H#UtIf2E;$|>0Q_2{2_>?BgN5e0Y1;7|EK#BiSJwf(rIp=NR>0BEq3@glBQ-X zOTC&hK4X@WAt5gKlu|q%fb34Zn)^G{g_KYRjh{ZBfnJ2QHjn5iG%u7iYC!uhgX0}F zhL&dBpE@5sUSpco3DmD2y4vyncM|DE%r3=z(0o;Z-VOSbM3-s4Qs57VO0h8;pBA(i zVC{cQ?cNOM6K4Eltcd@$h=0f+UKu~l`Agt;yo>ch3u`Fuz1N6)C8NofI(N)9jYg!K zYu9cUgy+$J5coCqskDw%n)A|(qK0cZfce)CJw4DvuKcF_|KS1tJ0t$PA}eJGBjHQd zaMCTl|>T05na9aOV_&(8ZRrp@g zZng6ZY|Jv)GRxf0AwQXE8Tx~z!%F|15`#Qe>#Yi{V=8zG&I;awu(E2L2|1npLIWgj zcfZ+;-+h~fohMMmj}KVke0UJf#s_m5>8gbfSc(%C&h5hYMHv5!Ry)2P%5XjoOa1>b zF!;Oe5gN~1jvZqKz!VGKYQgyyTx7v}ELds5^%mS>!DlS^UoE)9f}Iw8&w`&=@Vo`b zSOGW1g11_5z6BRq@E!|RT5!Duw^(q*@ctyqe_yw_q-23KYvtN-Z73{#7r#)g?qaX8Cj=J|~01FqvvRLBQhp653X`TxH_`H#lV<$0c2 z1RCW8F37@|sPKHvAF=O{ zVvqOF_hJ73s_=!us@W{deZzsQ7V Ll8LBuIZpncT`y-m literal 22584 zcmeHv4Rl-8mF~TkoG6LoDahG*pwJMe^`L2u6-3>gA9Qrl#-;1Bg=^wj_oB& zA)zVQqd533p)}Lsbpd@dlX>mD(pmFbN;4TZ&|<|&Y(i`7iYu;LK*2?jc_u2dGz0W@T?DL~@ug+s$-+}^B6nL@;cL;`{W##<2 zH@7y;YHewYteds2YW}SGbIUv1%V)E8lYZi@yL$<%iPUgck(Zz-WmAteq$NYSwJ)ypR(ysOmlx4$xT4gRKJD7dPnGaL*p zZm4Z-ZwoGNT-h2l%El})RruFL!ohVA?+l09*9+OymbR8~4ym<0@KA;nfDz$f1~pVg z+87V443K^Eh34kgNat$7@9zk;w1u1ffz=NQ!FABw+};sv6FP#SPBdH_pxk@6QU?5TKG!hFBCSL z_>`8G$+VI^W8#Lsf{Z@Ce)4!+co|bGoHEx*PIsDgheu`%oX+vLzHZQI4KtS<#&_64 zpTsD}zodmOS?H%M^s6lN5et2~h0ezl?I~z&;faqYqRX5J=rr}vHUTclq!J6A`hh3e zLg#BWm6clP*8NO{g>GHXt1R@)76p1d7CQGS>DMfDbZ90mw9qGJsDki-geKboQ8Pn)CCY`9wMAVD|MLR z`w6FzN)0o7FX5LG-p}xzgkMJZa}3`>IE7AXE5n~BoI)nGh2j59IE6~8i{bx^a0-!B z2g9EsoI)eDA|v0t1vpE}H?JVSHGLpC0==4ka0hkjuMOg$rWcC0$U<@&D|49VKu%&>gflUQi9Xg**M@K3V&i8|*Mtag-RUaJ`8{Fq3hpBuu%IgE?w8Te+$s(#PUVWfa7O0-W zn;?;V97H90&Nf&m0;MEv-jDyj__r&3@mbG;S&J`oRs4#=x>=f`3c^bj$f6c!atCSG z_xSXaO04dbG^FSYWaK_)ITvyxELV!$IYlogyNTzf|j@~O0W3hMO6 z!>)4;ffLG0D^L?U&sqN>GHk@vNB7w46Gsbu(B*^;Pea@%UeIFYTI^d6HMVw|wEg}P zO;0L%N=qbV_ikz9-$FLF!By(J<`3G0vm5t^CoAzOcj#|xi4SCL!fTqXdJeQ`v9(SZ zuj)Qmk?)!#$&;{2jR8^hA%tnaHeol^>L*C6G^8aCLw2|R7L*#L1DgI8=^QN`K#(28 z1aqf;Qz=aSm}QrhI$$pu8B<*#Kk7ta$kfOMaeIXd*Ocmu;hyKtpu^o8Tu!NHD#jmN z_*2Lyp9WcjWQi}f!r{|DN)CY#Uss5Mq6N~)2g#}NC8AG1%6euXSqe(eiAQI5-BvDb z`~y6p#cRd*lC&o7JYFKr=mG_un9!pAV%NGfcy4#zywdhWJygPm2!i7KW zyJl!+7g9I{_V~PgQ%UgsM9TS-E@+Wd5brF|Bz2#j5E5G7tU&vkj`Bz5YtchCO)qF3 ztZ~d0l3z0Wt7+att(jS*0QM&*lkpgWN4{k3{d@2ve?oZ#_cfSg2|f)R^A!4}s!5wu z#3rxERalO+rOTCN%5vpfiXT03aE~aYZiC;FeGuUBUwNWl-}fy||3Hg=cxvHdU%c>{ zDNq}qd>sST@4&e9)aF^T@Hrc|h+!Sb5-ncX4XC+CH2p~UN_6Y3gkmY2ygYrlxt!}? zK0vd~C=U60VvNtLVQR`QKwe8+fIm(lP`<8-d$fHQ!X;2BnhJ|ZVLp9b)sNjsfZVA~_gxEL)EIAqGCp9!-PvHdciDV9XMi4$5Fy2JUqK%7#p}d6X*)I&-m1Co2;z89ai4uG=^k8b z*WcAgq61=mG$FbVMSc|>DPTdOmo1glo#@_yrL2NMszo5&YVYX!h9OcFtrDe;&w)+R zPb>O?L6Q)ZvNu?BlhyF?mHo1aqd`C9b-(^t5=Na< z+&kBf^Xey6eb|eEs-dl_dw+PYS3hw4$7X*iF;N$3lvkNH#{^4skM<9oPIu@OWP%-YEq<}wb5)J2D*smZ;;S`w_g?+ujzZ;uRWGh-5*fX4k-HTN^~c>a6nYt z$0EPP%x-j|S1(f~^@I3A7%78WdVD5g(QGKyZuITwKvs-yw)A-FGg^KPvSIP@=Q88P zvcHM`aWytK)6C7yGS>r@Z}*&LYX)Z5Qfc!htj=0ob$RObvuOVw)pfPttvv0m{IK%v zLDl7gF#;gl9ncs)!W9i8L>(?!6m6 zM3Af^^!*qb8n!I%gONQ-^h|-Y>2(;3XuT)XjL0X`Nmsn7j?N+)|X(Iq$ zR=UqKqICCp)jcF_Zi6}XftR(wDIe^s@`(r0WSNA2MZMt@-&6E{7Vjq>bxYgDs&SFo ztS@MpavZ-DF<>93#TSZdm0hGT7k$)Bgw zwQ+T>c-u0U(+ADeODk9`vSg2t%&8U3WR=~HmU zYtu^H=PD>0rrJfgPDvyk(esx`n|^`f`oQN}V877=YOgxi)2mMLut1UOl3L(pw9Xdy ze%z}Td8o1CafBr`O+PPfybi;JjFg^OkD4+4gl}PO)nIffYpb-~=ekqo%MH6je zZ;>r|<7e2nSsO$W4`AgqMg|p0Jx`PCqPtdG=NLAR#UmFQ0w2Qa#8JCCVNXpj)RWbU z{+rYTFbUBOBN4=K)s)oT7@2T~svl6X+mhLQpZW+yggbar<(YC2jMA4u8iWlnKu9%0 zBXcJchnmzsqd57ePsrC@#9|rW`dNH`DOF>2vKni5X@T)tY--PqG6v>jpgw$)s;AVl zM1#J|XDbYXj{SvxPl=W|f}LZXqwDqpLF)M*P^sBw-A~1VeKZ8HaeNa&>(nqwIQDo; zgye)zu?>TputtN#_EcV{55Y4Gv)C-4>J8IWJxIF~RbOLQ_3t=TJyMiBc?wfoy!xq` zSeXORg8UQ6M`yiSMmzYekcZPtEBh^OH`^KiDu!beI z2w9ZH@11emBE;!dG)CV$D15W=k&0ezeBz9=cl9{^x4jDs^}SeM6URz=7uqpaoyj+_ zP0(wnMf+z&51-Nk!&+?eBA7%?uZ07snPO^>QX*>PisX1Ql%~5;4=Bjr1t4#_Wmip zV8(4CzN^0Somu*+!2)WUr#CddcjdUmh!b({?5+7iKb1(9^wxZyOk<;`+m>QN#l&8H z0N;#~{}YA{+Nc^Ldq6L&$NbhTo!s9nwa@xLutke+p+`bM=lv8Y;LPm?oc?PDX*~yZ zH$Ja6OBX)IgzRjVLc?OS^!9I>RjIunB_qh3#3pO)UQoYmR;2fbKut7D#|HtCe|r~X z_KCy~YWtU9-D%3O;t^Bk`0orksAhHir}dlm>_pW}H(3cg{(slcTyyd)bC2{k41OOD zJf4usJf}4GPN^q^X!;C&xe);)(EjrF_yUZq$)Rfz!13^Sv5$J2m+L!ckEfL~am*oY z@1HZJTXSE~ha<^94MPR`wX&b0Wpuxz#lPXv;{Qf#IYQ{Kpp&V~>@W1h>;jrz6Dg*z z=yA>chCW34s{gh1g)REd@NExI>ppY1xNuV6n^)kxdUE%ffBaELW8VQFk!ha|bf4LD z(~D2_9i*~Py3b5}VCY}^4iWMpOzC?Axq;@a{j3(h-=o~`i*IIo?vh7ml6m`|R_rb7_Ov9v&doiC#kKc;_)nuKt@e#_BZ7+~*JKky7J0kVW2T{@Y zVT+;YuPOSlexQ%)JwDB>N3DDr;cpjT)v5)jQ;;^&MpN2eG!7eq)^TFu_a#c=h*O=A zVz`ZG3P5!L5%<#mMf%%EnSyp=ws(!QHZXex@ zR#V@F!`0MlFObBJM;edKfNv3#xf@q+CB8L4l`8J`imxq&9#x+)s_F%*c*i$a_5LvR z1f;#v&kmqk>1T z5`1Zn7v434X214XzrYcyW#-!k6y%vN8gTk9KsFO!ocD6)?f*yf>YttWhK+d-#|W2W zsY-57VTJAK$6>6ru?8ddB^ry#6`YC#uQ{O787&pCT?Cz~JeGu*F>ZT4!??vBk+u;Z zC%;c8MEz3FPeH_v!hwxWk)FU_@ABTot}7C$lHMlQrM;@_vR-Tg^nFC|xu)m|octhj ziM}tk#A)QGN_*Wq!&2q`U(cJmu%g8E)P_VLMuD5;O0vqzFK z?-Xgsjnm=q&BQtd;y8{WaR?=!1z)!0M zjPnlS?NP)fxuM5eR(49#O7To<1F}PP5<=xCCyu+ z2|MjVy1&F3rx3n3Rv-;kH?;;Ii5!j9;AEvb)ahxA9E#OAq@kH;QMwxcnj$a9702=M zG``{rj?@z|`zG+NfXgBucPF6g>v4M=oWg+d+-35-t7Te`n(-xRhYULF(&YQFkL{w9 zySb%tJ8fyK0aO}8o4??nhDkmo|S`#jj}QqSXLP<$Sprl1YqCS_j`Cl1f% zp`TF6;L_!(Pmh2Un|#+*tfdscJLpS+(Nf|!TKYCg#;fO%mX|0Wn_OauJWV3xUqfUk z3el@SfLcTH9}VtfSF#FfiCfNaKZ!zv?GeWI9Y?a!Q1D7T<;nA5*vhfB+ryL5>I|40jt0oE$uS7M1 zmtJQeMUmE~wj07SUMy(Bzt*746l5OFexor&VzSVlWk~hS^7{6O z+|(|&wTI=^jcbE)qoImyVVZA}J6eN{ok2N*4_^H6GJ2>poTzv}%MdKY?#PLp|(=aK; z-2XLVFw@xlg5W|q@oOI#Z4io`3yMqblqNmw=n}qu)onMMa~HrZ;6<*2=&cVcmgTI{ST zb|{lT_OUFU^Mmz8e5%j~e}ZpG?z;sw#U-0^fB%&peKZm1*T1GKw6q8kmMe;u-f= zb-C_a4&qmQde2y#4}#c`D~@Wb@S*Xs4CCTn)Bkbm+b3*FvAoF+A4dzd;)S*g1rv)) z)nXZO!Ml{=@pZ^{VeI?>d7&U&Ozo%7A3=BEtN$FLBbCxW=${LkOukZzotr53qBbZc zr&8o8#SX6#6E}f3c{rUOv4i)|$6H--muUNqeax6Zgc)Oo#`asNI|$sO&zp%~jpA1$ zUpEwcLSw}jYu7IF5l(8T%Pyvi9=Pa%iypY>fr}ov=z)tKxafh49=Pa%iypY>fr}ov z=z;(K9^k)A;=e;Ok9dS!_+zuFMJDW}LkA@KfdVD_4F<%!^(^t5-fB&Bv_Wa)4w*rI z#_@oe;pdll$jcI*cCu7q{#c09J*L6j?o%co|4k9EpZ}JH^WlLPYah&IBpkIeeArZs zXTuEVcHuP=hCgAJ<9LVRyd7q>|79Ta`|TW!^kxdBJtlm^ghx$y+JxiG0J+?R*PC#@ z2^W~~eiJsEaIFb9neh82{NEw7= zAy`XocuK+NuWb5M+=n1rNi1&@F3-$2)=}4uLFIo-^p)>Ve%Mp_yqXL{uP%QYWTYQjHzdZ$Ec;$tmPjVe^!+YdEV3`n+svB z$Zve)Y|EYlLVqL=|C5}5CNo2rV*p`m9{z2hlRtCklZ2_K!}R|~ zQ_m}T^c=}U9|2u9WvyU5HX@f4Tp{pvl9x>ZeJnrUK>V z>Cc*U&aavDf61Xg2>Mv{(z7v&=PlP876wg2pUA_%H4mMBljua844L(sY6N;Gh4l0L zfxc!IY=a((tLIF9-mV>a^uNmJ#e&n^D1U%BrbO|=<`XjxeFj-L0y^1~JB~gv`T4rZ zo-sn^G^3ls7C`SGkp2pD1I(U*qkI~tUt=({=cmZJ7~P`4%-)iRei!KEhrS#?+-K_V zGUu6pGW9IWqo*wo{jW(s;xN|_n~9Ek`*Z639@A4SbeQ!Pn)N;dx@_jHU>oDNQjGjy z9{NY1U;9;dfqwjR=@|PW8w?mLZm$EK?Du$Nrj5tXEsP)b&onBL%{US0r;qdsPJ5^v zH-Ch}o#9AxGqR&socP0Q{J80(E!c^hHk#V~t6JMvHn#ek!tJ3>e`91FQ_&g>2b;=o znLoF3Y$m$#qs8AC3N^0BD?#B9ZVw4Ht_k{^B5T&HhlmC9(?uv*tbYH3`;-Q+-+Q;} z_k%f$0k@2(-@IFCsISc~VONTPgqxB4Ud_~?srL!~I^R7tiqC(~f(47bi~Wn08lRW6 zw$eo;fzAjsRiGD%j9XpkLK2V1dLs$Hx5c=TCA;kI`EzR1Xd#39Eu_W{%wzlg-9%hsh>c-T_0m;ldo;`@(%adg)8H3|zoG?`;d4chO{* zBMQ-W`tlu&TiMxZ`itGMW4#?{R0X*TFUf_2 zZB6Z7sAz6k=SR;QHwTTfk?F=YLfN!Xuo>MZbhfO)`*9>s*A8W~7?%TO)BJwip=1ti zx?(8Yu72a5`_w;knG(B5C|e01k;bJ+|2Mj%d%x@*kzZa-*K@~HjUk)RJ%He z>zRb|&h=|BH~_;T1Fq&d7V#ZIIo>4Y;gC_XHW=zeP-P*0l!bz=jU-^^I$Fa*Ig6xnWXo5z1I2Yy_)n8BnA+K# zQ65}vPPeO@poC+Fs4?#v5;dw;x^vjw31XHcwMrc z*Z-86;gEmd!Sc%zUyn^xxEmQd+Tim2W`;w4Um$&-B0q6?eqMM#XxJiToBu`(Za^*LJMn2)+SNZu9hx|MjEG&_&)}#Zm z%JXxo49syjy$48%!zYoq%JcIq4!ONd2>&?F;os%R^Zh%A&*vNg@p`$wALhvOb9oN= z`84OxZU0Y9dES5gdm4wHJniTDex4)G&)YcM#u-hRTR(ljqAGa({9G;ra|F2GxZ0PI zp|c|zLzMVA4!_4Um!IPt9)OI550~fXMyGBkZKM5VV52yf|2+yQ_P9JhU*h+q@`myF z|~$1LRaa^6dj8B6}mJqE`G&S=71`Tq+Mf@{$L diff --git a/Compress/Compress.exe b/Compress/Compress.exe index 46ab74eaa8b2b4809d9dadcea72fc87cd659ec47..f7bc1b107b586452cdc7bbcc9d71682f7e8503be 100755 GIT binary patch delta 17466 zcmch8d0dp$+x{~T3=YOPV={^&GUy$gAJ%p<0y98 zQ{&rWo0&$L;1Y-mni;7TE*X~PLug^8qM7qv=b59K@9(eP@8>t4&&_q6bMCX<=RWHU zMWtRvZ+Mli>oSASpTx0G3m45l!t;ULIz*h<^jfs9QNeNE95?ENO=kz{I0e_x4knGK`CG@{%9fV$jgczv1MR9 zWIg18kC98SiprZg-8P-$a{ZC86Vef~f&8NAGT^u`D5~SyLf(Kp@G){R#;8J1)*KZQ z8X;6~2N}wD@u{LMZrK#lu}cw`Q57}YqbTb@&m48mH7O-WH6`28_AJ5a9U3DWBq$PX z5S+QH*sE4&=x4tXw=y(Qg}B(OP9I0BLQ~uU8Js>PRhr`IV71D<-*U1sS+Xx8ORj2) z4M5bK`YxI7)5&a}M_a1?d=baFb%TGSNxGtU0U|He<;rQ(|AO7lFGnXkp{K~ImD826 zm*r6Rcga4V9K}y0w2eMuJ?&2Dm*+Vy#Wl~MNX@)zss7Q+DmF>#Wr!=eB#4IvXX4xE z$$~bW>@O^(733-e@tSmwa?$)PD)9f#BDM%(wcw~xNact(C7idPusE)&M%0@7z#3Gu z&y%P``f8@!hP!W5&<#YCQ*FXujGiEBtxlyu4(LLuvao_Cw*?iID*O$EnTsn?np5}N zIT+_;!6T9q&2%c8&yir2ZcrX`)6?M!k>)kFOw&5jnJmSdU3-#0$R32uwQ7{2u~9mA4e&<^;1H2m*%#K4Yj zT_KC~g<1wOxa&bWAtSt5Kcy*gM)@Y+Xm5UVJ~^m9z@N`6f2!R|g*``bDR04vsI$g{ zr+)9@s7%?!;={rFuy|urF8U=ntp=mCt39>jBQ%AEQNm=Cc-T>;5S2GBqVdzQ9$B5b zN)(e?a?&=?;!ILmoKFU%W`1iGuUW;>hIG4CoNN$=IlW&T;q*T%HNYE7s;o}LS)EAM z6i7oN3DcLw2;y+9S!_*pC26Z$Rc7%v zsxYlf@;Np zKub6>JU}6hK(lCjgjCsQEvU*Wo|Jmri?)hiO2g+*x{Ibdje0rGA8~fUE9f~yqD@Y-VZ2EkD2TUA;zI8fah57YT-enl4)>Fq7t(Ai zFhJrhX{eS4YzFlBmXO)am8=kbq+5@2+@6nDrv=_@78|NtgR5_QM;x4e@_AS+;gqKM zIJF!q2p=4v*?0>9$DeLZaSQ6_Dq;|n=EybZCN)A&tQ7-X-dhk&9n0zcl%~!k9&woz zR`G^eT%wm_#KYongUiI5#9t9kiMVO?io1?And%-AhljgNUMb>VX3-viWUIJDrKuB# zN5VzM!$_Mk6N`ofaGDbPCv;}fG4%@Ch*;R+NOAyY$^2Fj&q!Y_pfL>|d;f;UNacuW zI*n;0_XZB0w+TMTi3e%P5oa9-c_|kvZr!S%(0Z2;Bb`C;Ue`CY!S*08?>UpEPMczy zY_d-=O*KucDWy$7-Ef7rXoWoL@K$YFX8#xA1*zh7X#~oVeNy&LI09`IngoZ&aKd*x z|3d+}>Bu)oedYRYQ-wyMQ81#nruyQ zF&zlHeorgKKuw-c+CCc7t2;7b@&{s@$<{3F<9I>FIHw0gi3fvTd4VgpcUq?)S2{%T zNe!f{|3KcifsFBgnV!?$_yr#6%ingMH3Ot7sU0J1m>zbk6H?EQ{7R z&!CUJq1kPXL(*BnaYP{<%OZbt?iunllK&CEiRwGQMECqO5#44xvYE9j!#0*Trf~%(0RVeGR zB$s!IJVx}`aDT+yx&?H$yVT2Zkh8jk4AUMxwB%JxT7o^zbHLaSR*D9a=s=U*G|n{E zG{!V~%($_mussNZ_%%j37zIcs=y_H^v8Dp$cuS8X#v-0E?V%x-R4s_gw@yR-cBaQd zU7&;_&aa`tYto;Hey|i?^7WJ=N807Gcy3-R$l7lh>@7OPxav<&@ZSDX}Ljy+F-aHIijBVwr4f zavW5c_R^Id#O|o}PB@i+A*J}7ri3o}Xn7cIxl7#xV0JD4%j$}|c8cTn%Bxm1ZK2C* zh_{HG8s_5+K^zMSD zA9k9%zy<7B?#x~2QdJA|)6|tziAQXoi*v8Y zBzUPK&_F25CY46hMzHJ;X0{oINb&cx-GaVVVZZ3f6M}f!$dV~oujs*QJR;~2=;gxH zM^9pe{lRgDI3%#8%(IfgVmFIri~SCeG&IBi(?Zg|=^WSmni+dzeADw7T1*@}Yyy49 zmGLx>-mMF5!0Ku?7*WmmntL-#c1@fK;=E2k8BWy<%R7U{piv0X{YYt{4SWM*AvRRX zyVB49dsnh`8XR==b8K7m%&vL7L2MABFo7mbt#Rr;L_7xll!N0ui~5-ix~N}9bL2%m ziMG9(agJP}pJJ@PBhxt)3TX3dnVV&(%|1+uq_ZtLP zmlxWp)0%1#=hlspt5ClTEzg|oi`<@3nF$ILy zT=z@SBh6DvXDE0|nFfYZRLvEo%%tLpiU24I;wkB8lHb*=I863*UBMTBMFs@*=0EtF zWCkVi9lj!O1;z23Pm>ElUDSn`drj0$+`7Z3iL%>%{>CYCs9PUC_$%^zw`BgQQzSmP zKks)+)|N0XOgrurc`mq!fBhusq>tv4P7y)>6#vVYly$R`3^YW?&G`arMXOs>zKNTPO^M+PuaPWJDz!S*Uslqy=26=)i{qBUmS%A@ zDR2Ux%Zj6+gj$Wmb4ChMBW&4=*3%ChzeZs#IVXrg z*Rkl@dJDBmse()l4dlP5AWK50bj}@%?2cMoZ*WYRY*1OmNP{3I&aNO=L%XFvK~qbr zu$tP&BWo1O(4ts$W*}&j4~7l*0M~e2NY$Z;p_^g#_ukT(G57Q7QTOdVavrY=GO1@0 zKP!j4+A}Dqit0E=ju+5frSzdEl;H`zLC*B-KV%%u1}|SIh%eS-Kro{&%>vMq1suKz z=M3DQLZFpOZJQ0t(rl5@M% z)!8H^yq6-C;=2;jLn$KjHdNxr#y3Ow1i$HH(i9QWaS_rLF!4n6+^N1ZlTPr;qeR~;eD?2{eX!6GTLZQ8 zsam6%cF3(8Uq`pRqd0%alRoySI4sw#;}I*k(sBfGSd36REFR^#r4TH=uuMCo)vm!% z$RDJJQ{p~_yR=)Us3W_2MQL}{(%X?O35!O!TNhYIe(e?bcw4l`(fEayVU}mt1Q5X2L<9H9DHtq{v%9m-_uoGNE@GpOs18 z0fd&5TfL+B>mQPc$QRUfBXitx+s?Xm>RR%7WDK8wn7AWNgHKPVk2-GMi$}1S)Be*b ziDmrWegWS;vkS5GCf<+sS$E+ug0;#|cai0NdhwqfB5(D1ti#iXFeAc{TuOb|$E{m> zh}`NE=Q{}Tm@sX2k%3Vo2S1g8R*(6G+AIZo(0E*l&PXW;I}$JK^o&#OZJIhJ+^Noj zvRl_1wYhbF)sX#B`u1(osC_iWFVc3p)Bzdfm#AL+_!`nBI;q#&(-4WB3^g`;#~!8D zzabE&?_$DqFUuOE@eU;Gi>dmZi6pDP!Tu{=u=aF>oy5*}*1LtKnm@9e+!_4%qw%j} zs-lN6Y^wM9giIMS^ik=xe@1`1o4h|HwdaxDbb*07ytgg3jznHTccKxPY&233Z@YEh ze@yg=U4~>sRkJ(U=*TqRbu_j(>Xhq}jV%sk>_a8@gr0zdb<+2qGTgc=ACtw2J^7p` z$kxQ}y!i=oFtI=1?uqiQ`=_J>q`xe8n32fN5;#vk~DACjG>;qklZ!iIjhb>qOO zc{Rn)!?;*eVQ0@8t}|05YV46%p|GszoV!SLQa8TGPV#utH2%Y#WM|SGe%lA6Yw{HJ z3(%2!<&3+sgX}ejlO4&A^KC{FcXBWF3p?oQRS*n6tRF!Jn0xT=jUbcEDS^3IYT$@% zosNB|9Skq!u#7YAllM_Z65nP7ahn4Iu3F%arDxslJqD;X1yBpR)ZbW0bV@Y8%|bF# zg4L$?)LN8vBS40hLSIa&*S&MOTH6g$b2D}52Q4c|2~D7Ez$h0 z6jETB++!4`kF@v^TJJf$N;tjfcCA_+f3;;-rA>#P_DvywSX%jbGx=qN!SX1kkt4@j zAuVc)nbqQ1Q)}G1j_=R|gL>{{6ohpUXNNMG>Y4z!7whSOOXk>nC;W+I(#Qx!JSiEu zR*_58*0A0Jre1S7-Uv_wz2WNx@iSEaWfJn;QK4AJV7HB${?jBf%^J*aO(I3szCH42 z`g1hh)AU47(+_k+eRBJsNFrZZ6T2*X=0TgY9cR2#IpY};nHuP~=uKKe2Nd675*d}+ zyYG%D&%QFA?JGts7d`JQRbr`=_myj~fUMHAlI%=P;C(ie z6=TQoDVxbxV-vegeT6p9@isa|$H!ORi7Ye{dweR185bM)*+3ZLC;Dbsa>J&=dB!o+ zW3LYfk`?1((p%PIz|_CtFC8?`f(Tz~Km=FtlV~+Wx^=mmv6g}fjw-yND)-A-KE0PE zyY$}Ui&OdTT5@Mx;KcvDOm7NaILFYZ9BhR4bZQv9wcr&N8+Ew2!l0MNVM^V$2}>HF~lp{GC-V8Oj%pzpdc6yhP?tjOXXRMBbYC*dx7O!kDfUoP9!GD!(={RKeeV zfdovR#h-bete*T7|J-v#IVF_8`y7d!@-6?}bL5e!gL?n)EZk~~>{S@tGjOs4TI!0w z-hibXkKwHs?V!8Yff$lIbwdBQ2sVaq1gDeQ+Wifl7_c~@46JW&Ac=;*!SaYdu8~Gc z&qzh&uc^6wZ$cJM3+10BK0^j)%;5jrL|)AZSG<_5+>M{thCJAbdH$@dFJ+XFV1KRVNw=PheVPk{Wdz+sfIfw~#x%%N z@Rg^@cR6wPJ&S1$tXgi}bXifk6^gOAAjAcM)GG6rbDXa?S5>Q=4@R2|yX1kQ$CG-} zP)ZAEhKIJgbtB|)q=_fvwR-rXp; zf?5+f?l-eWYtjqOMXKL4+NA;bvq&pNKPo4*H{%Nv&n55hP!cj%r z$eZ&+`GZTy@%f$k*O!pX^FzDmB0ug;ODRMgs#WG&&oR*E4){I*4=(|O<3>SM<8sofF$=wv!xxjs z7aI7G#iU?i7_S{dwl3Vt*9{^=bB+3r^6f-@If1q%8Q%*htDNa7X*j;&L%U-Jk*&F7 z6d~k~+);|piLhv>Vgp&b$lBS|7M4Ga>#uy72(Q5bgRTHl1i7*(P@yKOyx>k(edV?6 zBHAI3V+BqU93BaV=JgCn&zE<&P@&|iO^=G|;_1{GkWW_Rh51IuP!Icm+aJB^g_9gR@D-`F6(Ul$e_YeiX~)2VFZ7@FR3Wp zz-RR(mZd}a(7r@mx{7}@miR6k%4fwA%d)Nf;h6HKWm<)OASS$9U+NBh9;6hwhT&p{ z*$l@r9L8_}!=4N~GW2110~48+_Y=df86IG`Lq@whbSsP4z;G2qx~k9urZP-pIFw-& z!)^@QF}#cUPxJl4@B+gV3=c5eLD3FHy7ABq8yGHTn9Xo3!(j}g7p zhC6I_kK$Gqv4P<#h6@-@WthfrD8nd*-59oGcoz$i+yI6b7@lBwfZ+~1BU>46V7Q9m z0)|r=rZF5U<3GMJU43O8<}_|p;Rg{1q%c997aNdC^kN znvWVPX$`3LEJc@YGcCrYegzu%_5P*R%Y2(N={a!Hw^H(TdHW6*yON(g-jM z-U9#rhSO8a_c=%$LyK|-eGTsHXLT7qMhnq z(|wV0dvbu(gh0tv#OpQ1c*n$UJkwwmTzyufRQk>BL)FvrT>S%0_})YMn*M^uIUk2H ztHEj!Z=`w^1V}F-(&8MW!Z8GKw=ANM=-0)XX*O7y{i>y{RE2iRF58aoZM3=T{!yG) zfnG}Ul%-{53IDq+oE7kGIMi^e zbcYd(AGX+?NjRhE8WF-5ztzqp`W<#%#SM&#*_ENeSHOqO8cU-@pOq^P$i}TTRp0Uc zU3e2mn%6tdO!=u&co6noO|r_*D?28 zKN1=xH&!LPlJ5$x#IftB@BCsFn^RpY4y*8u25re1i`WX2tE6xCV+a$zE4YkTRcAXS zIgY5LzEx;;!tVuF;p=Nqky&xwPot@D$A00BL|H@27HJK`-_6 zgg@|vRZ>TU(SPNuo(QevBP*ykA}rl*rM+*GegoowF_*^uZpF)zR|;phI`x8c zyvpn>>}nOiPZ569K1*CGcxCkP>b3cjBe6$W5pAG7(H6}QE6csSP!zNheW zgGbO9dR|J+thI#Pk^Iptvnaurt1P~UtYTw|cuA<1^qM-Mx>1iPoTNkkq{)IWzN~E^ zW1o7|UWtir73puvCda5)!{`s*U`4IPaYT=y)tVIFXm+OunDN>n(BJM!pWlRm5^$T* zlo;rQbE=bP!Y;cJ{lN11dKcO}K`R}QHciE9`Hn}c7qq1L z50*rWIKKf(j>Jou$Yz@g4@(b$+As8#;{hk0iflNBu0FI5YV>8x^X&kB=Y<^apgGdM zhjQ2>X-&0Ckrs?k(?Pm$xYUh$D3?B@%>AQPIH%IR!SRgSE#D30gT(zmV+8TXDNSQn z;i4~p==jr5zNN%yocY{$@DB4h7S-e=G3+>T= zrapW2ysUhEUe^5Svlq->Fsm(zUK2vn*7RtfH-lR;gEKvuELg^-M9rAJfaI-7;5m-G zzsB(7DBJWr8`Slg3+LzNW##A3UbrBNvo4%IlSZ2IGIM4x&WhsF7V4*axITMf!Gf8Q zdRxxyd}Jz^H&bt$J~vB0UB4s;Er{aEPp!G5%rs}&vNCO1Gxeb}p@o8Ro031n=U_sUr{gaQUMsdk`S<~ehRwZKoZk*iEc_=-q{O9!p`S#b1avG{wui!-9}0i;P`K*G{o>^OrFZ`sUiVPA@SkBjSM<*ae69A+25BD( z2Rsyxc_^IwkbQPO)WG!O2ODU|zZNWiFoNSU9?DSqP`I9rpWI#iDSRm1_E0$Yq44nJ z36MG@WB|87j)Rv0-+?rM z?*vvt&VyG0&q5l(8-ag8E`f9XI4%exf$M>0$QAH(;6z9Zcm}Wt@&`D@r|tODia;sw zRmdIiGGGma`yRaquI>+?051iOj6;LL(}4>hUBPpKr4R$v0eTI91;Dky%>!Wt@G_t~ z9=-w2CE#a>5G%O73S`wFjvJ3a5l}H0CI#059~*+r3fu@>2`Q#Jz)g5AD+MnDu6zvU zrSZUc6UTi-^?}17=fTr~zd;(oxg<0W(gLmpW+Y+!|3CnQI|sP~-UxIjV|;!<1~bR4 zO+hcgOM$b7p*P^Uz|)W+;Elkqhod)?1DhZ-!CQbz0i6NY0tZ6ofg6D{AvW+_0ptHH z0xJ+G10I4DgVzJkLDqve0-GSE;4PF}kcV<$PQE^rwn9J~m) z77__w3Vaz716~Gv3(_BaC$Q@i@C9%^a6Lqz`oNo`;Ai06XmH59OBjD{45r6e%xffM z04?J%1mNkwagb6P51b8o7CaaD3!0g~g;9AHY@KWH1kSg#hV8TQUE!6=Y zrvhFNjF^P_8xV+@glPu31YQdK9MVFSfImR)fVTh_PDbm0L?eJBrohzT>A?R$x`OWn zcA5&yf$M=`kQne7U=5@{cs=kZh#9=a4)WDBmvT9b4Uw#J+KMV3f=+?wHG4eWmF7&9-;y- z1AYqe2d@IwLIS|+fu|r{!5e|Qm!fd01Khg|Wl#?M6=DQ$0Zv#B-vZA7Ww)_qoP+{^FRz1zz{`LK zAX@M$;7N!-cq1@Wgtfq9fO{cb!K;A7pT;5vo(|jqi2*NtdNOWtPB;_-THr8a(WCUw{Iqg$^F^^=l&Gk)JRr%C= zH}Wkgk>-94x1{ZFcka}oE!RQOo_koUJmbv-g^m@!$%w@fLaX0nEZ?!st}Kt+{+1$a zh}=3f5T8401xNp*_YVbavFCFfuLS*-icKLp`#$-91F@tqlo+-$^lRhEW?(pgVH(33 z3=0{qXZRY!N`}W6USQbbK|9x0<*A@6!$^k17*1rkfZ-~JFEiZ1@Cd{63~w-0`LgmE z4rOSS5v#>y7Lmtr4Z|{qA2FjA+a~LkBi2Au=7O|CK zCBx$k&ojKi@ZKo;J>sd*z_2gFB!+1WCo`PKa23O6fV6&YGmCha;XZ~(7=F#Lk>M4F ze=xkuQ03=o(4!2yGVIAPieWrMqn|>qpBup{ zuV;~+`>#wR48gyfMex7>#x$aS@ULbO_5c6EG@|wYt63z^zyJF*`q#6l-2Tygg=P&u zJj*s}X}&FMzGXr7!t&;iS9_~gd(Y3BpE*C5%&F|}v(Y=Zz?M%oSH_b|Z$*%+Z|VP+ z?0-{jADQxGT8gz_->8}M=24UQVfm0limMp%L44hn8hV+Ao|6 sJy@1#EH_nst_bAxCOIL4;ffm`1*6s^D{PAKA?*$hR>YK#IJjH+KP+;T{Qv*} delta 15296 zcmc(G30PCt+V0MVU{GUl*op!Y6c7 z+MZ)u2c*SPwQA!CXtiij$7FZ zDS8zrBa(A+++J@I43EO+jtFrr+hbFpo_^o!UfMW-PTpX|@$#K9B;kMb$Oh z0meg$AbGw7n(gXsXOYb= zysm(@41m(qOO>E{Aq6QpSdW5Jpr35h$R8{rZ>W3q7^ehvDaEzA;$3L_4AJHpVo(ec zFb{1IZMmB0TV`9x&hLmz9g-j-F8Y?utFTF>D{6}jHm_o*u4pP)wfdtooMKFt?2X9c zTe_lPAZoV1LZ*6kNbXJTVb>m-$8j#f?>m|#I9~xsyu5F&k~Z}Z*zL+I)LmOy7Ma?M}$KPdF~cJ}+36o^vbh$oC#*sX^A}Bd++GD4h^( z3GaMD7BuT%eH(5p+H+N+^s{`Kaw++1RM765G^tUPj);ZFRPslNH}$(>J)2f|OEaW8 zITF^Onvo+=iF{&;(uTyBDF}TLWz(AQjnNY&AG1vztOSG*sw^&{$<09}wFcjQFmurX zlx7p|oQ84E=eLm6Xr@hl^E3(62>s(w>>)bTZW9*Yf+h9`A}n7;t61c3h(z6Hr3uN=?%4PWN_7ibU;RUvwm_zTZmT3y&eK}om0WJN= zzto~fzzO6`&$(xoeomIm!4W5ud^x%GJjBsaPVzBJ570>YH+WmJ4e80!P=BeHS+X`r zD?F2>9E~)$rDzYxMJe*{)Fq`$a#Bl7$VdyK;5?UPPaWm~otkkIv!+ZoO)^b3WtpZN zbC~R<*)a71YHpL1?l0!l%1tQ3WFHe~8Zg>FO-k|6*+Ebb&=& z2%1Ib=DTZA&c}42mk&P!TAkugm$H2{=H_~`Fr+Qn+_rDv!Uu354?3U|kIkg{=?B@n zBfFgZ4Edq0A^f}3G)lOP1#+hD*~qs_6pY>J#*j)k27FY)RZi(xq9UINQ9OT&JQVu! zwY4O+{T4p5w(?y2seJcSCzX+SG%T3F#U;^*JR+LJ~iI2PD&7G{pFl}Ca* zW=1_R7$zQ;jTfrnP_<_1=uKVW5l^x3sLz`F4_z+KGRns5Y7(Z;o3T9qx^0jrc-|u8 z)cmh(gEYDtI%2K_d`-`bT5|+N4YYgOl@X%* ziA(6`-YPPd(fvcrHto|RQSn=O+Ekc|da(Qsm_rws3|l{LFwq5=NP)h+R}gZ_L1e4m z&-!(?yPId+C{@cI$hgLZB0Tfwh_(zL_<)M)U#1#ZEc&C3isxiaY4{RxE+GX|3(m84 z>ErgqAh)|c3!va`&t94x#mT)uV9TvaN;-#+VNYJyhsD^HQsEr%hFs_x$?HxLkKiPJc?}VRd-I+(igrDQmuW}Vkbedj z@UK>rZXrGSm>M!JWG#RFB)JmOg+F@o`Or1qzn!2>xg@u(Tpv18)oLJYDKCdPL|bgm zd*o)fXqA%$g!SMrWRoFb0qyh0Q}tt_6jyDe2Ob2}=PJmmu;5lJ&{Mf8nr01ny@Kos z>%;fWCO5)*MXnu(xqMWVE=FIzS>X~o&?@ahOKeyoyaC&xyp(E`p{!;VWN`PMu@jDC z1#EIj>JO%1{a0i3!j8$~q2w^zwBPQ*>RMcDNlh!fud-yM6*j2MHsP~9WM_Agm-dif zyZ1H?g$|bWcmNI*DKyltT33iwh&C?(;k1vy>BmTSVsr6jQ3_Ba-qJ&?RyUQCXTtsX zZ_3GY;gdU-j6tr#YAnVV)1*nknlvdQSd9}PavL=?hkBI2Z zV9*9Hj2gB)`#7Avw6Tbxll#bbp7Q6UpevaMff|5ZO(4 zX{S5>=4N_Ax4s=Z`y&w&Sgt-;qNMo-X+*SrgL2V9b&1o!S5a{#5Mzuzd_DM zb?4vMLGDKdwO@mD6-+z-Hfx{U9}rqU$pp z8(qTvgXBohD4%zcAJq)Pni1v_S{x#-o_@nRVb&Gae_B}MQ<7?Q2_K>y=x9XgZi9-J zzhgLN1{;m&%Ww}-I&0|)o1DXxkvIQLNAqVn;yw_k;c;Y+A%o8!NA?3^-yz=7QM~#c z(l7cY?ewvz=)TMHl}q^JBl2~$fuDPT=weI*uEEKp&%1;Y%$j}5yvLNBn04&Q&SKLx zY)7Byp|cn5vv3w?PdLn{+lehEoIkdod>AvZ?b`jA5#5mNpg!#75*F?!-o0YIV-SxC z(_uRq+-vB7=i%q_=-bq0DPfp7add%7LAWsC_CMX@RE_h1Xd4}7)8<1NhkMlK5`NuB z&h*l^?vO$4qbquuTG_4*8%-Yd3gr-l6>LQRHy%xxHE-mrHmLW7iOk=0EPXq;2yLj{EnCWVG8I<8Y~Z zi%g2`J;m@Lt<4;qEuEChXq)ZYzVt+dWh6|Lu;ZJg`zCr)JSx936oZI)tDN#+*aF2l zgxgh0bM8Guy%wv?rRejIl^SM}pJKZS&np_EaOJ|$%bpwzzxlX|^yrhKk3&jvt@Nob zxheXd>vPc#B}D_8E@46yarBAjKdB;T`=oaWp)Iuwug#%=Jz8o=lP=1IB&P3OeKYu% z%m>mVtUBinTn+-J;@i~k;-W+>viHkKN}P$WDkCLv869VqAw`#b947@IPM0BzIiF*> z^N_R1PjOv>M~W!E*rm9TS&H<`M=Ud$k4`iJtP-Y2X358%IipM2Cmp1<@Sxeu85KIuCkQjk+n1wAL8u#BQh zJ1z+F1+r{_zQbvx*oKNJQay%PsxhnXo4PyY4=O7LbWycCyA{1qMLXdbI3YzlCGEkj zXhUnNZm8+rd%iIkYf3wy{PiHZE2EhJ%J7Jq0rd2L`O-?g0lG_X5g zwwrV^hVz!)B-Lo(x9lcMjX`|iZt|+JBk#GJR2fI{hj)^ereSSFOg|NRXkb%4U>BKh zN^H~g(qE&`>?DUw>7iBF4bW}dP~E)c$=!P&|qtPdpo(D@-P1Vw}~@#aNHYoVM9M$!eB6JUR}|PFfP_q*x9{? z3%#ilHFgqKC@d?&itS|J;Lg0?KgpEAQ}{RkNt}b9;kW&RM2M5M&p}7&l`Zz#TjX?F z7&$Bs<2x9ME-hTU@h!S~j#q5w66R|1IgU96u)dNHE_h{wnFR?l;Kebma)a| zc@t#};yVl^x*@*4em9be%N6%4foUur?S_C_KZIHV_El}K`j1Zw-esnpRC3F{Nd z)*-R{+i#H1hGZtGXy(nAaCvYx8g(E*o7ML#~^KSSnbc2|kyh0Nzv1teg2w;tm# z^=?+;mWqi=kNkR3I*sbT?TdU5H7K@lfXhNn|7l{0s{yDh)3X=ZFM;U?1Wd(SZ-`LwrYms5(8`ZK4pJMb(xHw9dU;{SlFllA5UY><1MfYft*%CS~A?r!j zOm|l4-&yr?@5(ikAE~Xs74$ zT}y~{dI(=sLbgx0@*X9m+l(&!H_wrwGp6x(*O5Ily742PBNu1b+aFs;x1xp)n7(-O zjmJsKCG1&8R?KwhUMR-&O46vz(zhYl6h!RTP)kYbcWFd2RhKSeR1Fi4!67#H zBM0UtbeR!A%T$~+056JoK&KJ*OzaOvoVo>A zBa97vBv`?e@$1T;g1xQdAO(HE5|XtR=^=EquV z=F%KkwOqn*MNwUjT+z57#72Tts|#~E&fAl7R;yQm(I&$#YeCWDxqdX1(g>RCrcExP zztS%4o?f)_`3Sg#z}2{r(L$8T9E~_xY)eZ>Y3+;B5>Sz7Pl3_Y=jW2W3sU&XSn~UV zFz?~(X+rFf^(5lip}dewmOVSftM*w~Z6&FFwnxHB)FI}0t`${vu6jI@ig=f}ldSVG z=|$T@%^jW3GGBZx^pOX)Q4(4w2OHQWPv}LWa|P7`GB{VC;fZ`VU)2SovVe}1Z)6)7 z!pjhDScyTR3nRiN8lLy>us01;KV<3F81g}GR{yltwCUPBq`F_UU?2AOGX}F#v{{0~ z-R33-_j43f+%as|zry^dsWNp~uiJoktQE<@4jC$p?$(CzQhPqA%kTR{B25 z#1qV!Wz z*~a_!BpLZeeJE~0XkcG#X`&5}>$W6~EmI>8#&b2I3!+GQ{%DnncrG5Px<$qU3{lbL<23-NMsk6z3CEdLHDK{n|W;QvvWVxmasxBcSpCm5LRlP{|EbYf% zn@N6H+D{ckf|pHHogf9vB2+Jv-OGGCS)1YZ0@rdiJa|&8C#`iR`DU5F3awk_t1=K_ zd1#m6O0iS&Xuku35uk^hUf4j27SX7L{5&#wd3cDLrYJY_DU-42JP&>MIfU(ZVK()t zS!CDpuDrGxIk&uRw|8dI=2k7Fg{W5`fZlDUAO*}wJCC$j;ol=25z=X#+;oZ= z@e==J8fnvz<`Txb%kiH@Myv?dv{&MGEhMW~_yv04V284QoJsZ8Lht4U(UytFaO|)` z)l9N)MKJ&JOmcNaur&`l@SNhcFojJ$9U=Szn12O}eI__PNwyYk<9*~jy0p`GyG!{$ zq3Dq`v05Dlpr2}WC}S=m9_!i7SKXGdsoNkP)1|#~39VMUX0Uaykp8&f5S!bz-q3If z8*_ec+O zA*7=Sqw86CNhj-*qLD~ zhL6yEn*TP#s|?RFJj{^pHx4Tlx3P#)hN~GaU^s?hD#JbuLm9SW_z3HTQZd7;3{Ntw zVz^yFxb^sK&dR}8aj?J#H*4`Zb!s*a(Tde!0hS?)VFtrQhEWVVGi=515f&q*Aq=lF zJj;;&o<-BkpF#bUY-16n3|BK;z%Ywp2E#;#Q4BjXY{l>qRvx7R46iag%kVJ6@;TU& zl?JegQiiJ;E?}6&FoR(t!zhNG8Mb2h2+NJq0ESl?o@IELVY!u&Z465pu4cG^VHU#- zhKUTL6ns2{rm?0mrqQNRj}P%UL#z?#+9XPwgXyE694=!+u(<;`*Zv;*Dh(GYi8$ML zgSKcBHF8(nGWH__e#SZ`fANrfT-4sW0Kb{Z-{MCsdLmXqK|Z(zTUbt=*+UqCGxzE`6@6k&c1}>uS2!*=OsDoluC-rO9$W%GiHcak=Uve|X*%|A}p~X)+eI z_EHDkhr)ZEusTa)J)_UxYz8;IiWHo5tOaq=y3JT|j;h2p4`@C4{}OY~i1vgks&M36 zwH$zg=@Zd?l=mJY<*j9S8~wwhTKzUc^rI{N7~inV7DSlsD}&?A_Sl&l@%CSM!tfE6 zA8x+^UkLfgpJMaGj~6J;WJ_t(S!+zRhv2{H6dDZLC(6O?HfN7%j-UNx%z#b|AMW3@p(&(*%sR!!-zB1p^g9;H;Vqs?D_&n zHiP^;_hOtvZC(GuhS9NZkR-W{hl6d&{dgu^sBebqab?ALoWFqlwmhrX>%NWlkNEr#hlAl zvpr-Aa*6g8KBhy^;>1Jv;^;n|R(R4g?Z|bt8J9x6S(4K{JcC7>L9~t2B-?WRMd^-7 z`b|9YgTCJvx}tT+gd>_k47w?LpDtMHi^iU^v`kjrkuKv!R4;meCVFUFW}^aZgy}ga z#h}}A!h^0ZSF!|qOHR@Iq$o8?_rxQzURNU?sYjNRI3fkzBnu>e>%l3s`@QivJ}FMa z8iNxZS|j>kVD#<@4^B$zuMZnBV{uG`eo$rl)~;T}_~vjcu5l^|SBD=mfWup3 zn*h%Sz6)syUI9GY4u5e7UI)Ab2?OV_zjUE{47dT<2QnMn2;2(E1up|`hpYsz09HYY zz@5Mo5Ninnbs$UdKCuD3065W?<6Z{O242IJa~F6c@Qncc;U#zl(6=+kT>;kvo9Uqk z?gJbKX#&p#ehzsEUJs1u%5mH|G!(cv6rBMt2*r^ls2d__0&o^24m=k)C5+?Z!Lxy1 zLbAc@f&SqfHxFD7+|>g;1Fry1jX(#$bAb;bo58tAEGUqz;F&->qzv2vd^zzx8@kP2`k@H@y}@J8TW$Z>Ek0oH)jfKxmTsROSA{*;Jer24=mMvQ+W0tH5n z8;kkx`5Af)JPz>zuLGVOgx*jNyab5@uLu4Li3jJBIIbJS2yOt5f{5VRz#>Q{xC6Ks zG7j7cJPpYPuS>%CUqWCy0`f60(Str41tBL2pB+OAs1){-~`A;@N8fS>K| z?xb;$YvA?3A0RS#BQRhn$NdPd2Zlo$!3{t&n$cs9`b489&BkPBP_;Vxh} zfa@Wi;11wR5Dj=4u%#IS?gLy2@u&L08yRpk@J8T`Vdx0uz#+p?Id~?p-v|r=xDhxQ zGW`O^KNDm;WHu7AfrCb3e$x!V?xRo%xB<8XvH`pR_$FjCcm=TgXe?IX2H-(R8MqVJ zaSY53t_LoJ>;o?V9)cXFI>67yVEpS4s7GMRSacpd8`ysw;=ql-O^`z%L-a;Pt>06JR0mI^Z0ffWp9YfgLBok-_y=ko^!50Vi<9WS9uN z0I1J`Rj3lM{}ebQxDj|D8-79cfu|r_!Rvt6AZ6fZHRm4X|AgL6cpuUdoSVUMZ6QA3df-7wJDLG_9TE)Q2y8zS zCZ#&S?`FdRX*_TpZjMH92e9p2Sd{7j>7{=jcqVZ1e2!cC1;)PsH5aV~ zHvn%egz0EJunBSyoXg|577!=65AYD=IJgsd3GxYeJy2K#e*)J7*Fmm;JAiv2GI#~> zLo2?1M8F9=25AJZ18%oqzEUON&U~2bOK{*fkapnpz_i71F7Qm?NJtoXHt-Ed1l0!~ zg!Be?0(UKe)6sZfB_tEv>I69s8HGR{@B(BUcsw)Vbd%+z*-CEQK?gQMl7UO>bfeHlH7s5nT30MxfM&p4; zAu@O!P$+`6!1chLkVdKl>|2aQ4BQA@4e`8)VFliSv;^nYVbg=O12+QCLHxn%*Ck_p zehv;rl}a$DArauY5}X6l8@vE$gT#RwZ5$W65xqVK{{Z%f#9zdJnPfa)9vuxO70S8L z4y}YxGf?#QRB@hzU_O@aDWGvv`t!%$>6iD4eY^$fQ#ENAF+ zqm}!LMf}LntI1tKCx%fB6B$lmxPak0hFcj{F|1*Dh2bNHE$_R__g4@`jA0R}46_+p z7#1*eFxCzIE~>vhKm^%FkH`YGsA5UmHuNQv55B> z9%Oiup}V~}d9YdVx6KwS^ZNh8>GHSF7VCdDUH4I_iduI#A|38^7)DQmF z*+TvAKbS7G{=ap$;AoDs5cBf?{dA$)|Kn__+;e!osxrb^;7O{E$B@S3eQ>oymj8bO z3;$oJd}zvuj1+UPn5gOVaEQd1ppO4uQ2&3Q@c$^j^Z&ACN&_lSpG=@Z0c!&YGVj~x-kD5>_N~?R z*6Q-Dm#g=j{hfWzKKtx*?mqjTJ7n)yXRpO`oX)^;HF}QYc-&2K99PeoL2=yexJBGf zXPz+6_MmOiLMk12=?22Ti%3oiI&eDkZAw4v&!pRUKJ^dmG{wjRo;tQjW7;3NYLc<>qqjOCGN7- zZVxKO%B#Lhl{Zo|8ey_~T~%IBX~hby zJXT(}Chw(qwF2R2c>{Ds6{piz@mOg^k+Za-xRT+4^Xt7=)vrbs#}ST|p|My->!bm; zaXPI+z7WO1dSE6qX=UN{qG3`OYdE5-(^*mGtXf;Xyt2%>+Uxm;^1|Y1y;1w{Mf3Ts zFhK5fuBhyvh3oY*p*`uBq_rU&D{s^Qd1ZzFlYS|hyl$-x;b?g@-sA!DT$SbJl@;Nl z>+EMy^$SEzW)!K~HryC_|8wuKFPLw$+QZLmX3RVQ(`6l|=A;*!ClzvIIj#n(b6h6J z;ZfugkS|3ZzLsTjTo)RoWT9NIt_`x`W-G_dMP6+OALTcI&chvjjRBzhj_AS|dJ~*i zT1*+i8*!U)liK(Csyz3Wl`g-xXl+>$FkRoqO?piF^tFBI>t?rYK2-l;lKj$-#-YrF zn;Slq-QNjgD#Mk6@lv~{TNsQa)Xyy3#KUknJcNWOEZVO!gVP1}*SSv%nHj`jl^(XAGW5;#(HR1wS?=2Kkl;h6GP0B<=nQ*AS zkN?3&P_@@?g5zi%frNK-I9%IB*Lk5fNG)>w8+a1o&~@5T0!nxb)i|4Fe=)lv{c8mg z%(sj(%^r1|FF_1#7t_9|K4(okYUSr0wej=z*+W4w6v#~rR`0S(BZRsu`c@Ju@V54c z3fen~=2!_(^!S7ag!_dhLjGb=E-=-l>wGs0vQE-tf!st&zR9lDKo zT$9dE=;nVg2X%zB4|xAn5Dv-Kok632OC9}TjNak;M5yhg(J$~%jL-4EIF}^ZQG|@C zWwZ1(Y8Hr$_dX2x=6SOpzJ>E8*hAZM(@s{O5z@8`{JiZL@)Cqf2Rr!6< zbwQ}@P-pAKnWQ9}tq!6hv(;$XHE_Q8mXSBi9?8@E1jV!qG(Sf$KS!YKA$zEUDce!K z%cjoHn=ld0&z|191a*F(xjIF{!$N`Zh~O+}*Ep=MC@<-jhWhjLY5PPu*W@|esUs1+ zd;b1>)}1L4r7NNww{slAWSJ8&FP*kVwBTsaze8J5TGAl-wpaq-HOam$Hp?l?ept(9 zfz8f}Qo$w~U}Qc}y+-ug8b!%CPLz&YrPHE6_c@2ZeoY7l^82fiDX)AT3SllD%d)$6 z@-0S#-L<#DI=op3bqb-Ktu^S~DqT3BU@$d&%l^deLa0NiyOzLjcpfb1Af)}R`uUz? z0F73u=bqf>Lc8iN-Q<~ScU^2Ko8Bz=AJ8{AroWy+Go?;fcF-^WrHvMBZ|VSjrR~9! z#@g*Cz>(e${v{#t5L)Z(u25!!H>0_YwmPi(O;+7C(Y3$9aZ9tH+bKvFNwu(6^(!%^ zT-Pa4wl!omj5G_O9k%+=6L+8pvO+ojIc9no{k~@9NrWXN&ZfJH+D%!0>nt7Fl^L_o zvR@q=|4hp@tjPL4FGjQj^VrZZQb!_h5&hLV9SIE!oX!N=ngqW!Ue}vo3G^CCuqY4z z>sab4QB2S6_VHrfj*^G^SB&yoY~xY>Do>R5Nay{cIqin()K2~P3Lj5x$ck@RK12!z zdrS>Eag--DlkbHrj-WIdrcSj->WUd%rV4_kSmnD-pgfw%?{ zSBv>sBd_r(oqWE=_k2LSi{O1pyo-EFM?deI+-}0OTCpx*EatDhCuUFp%Gc{*%7S*X zUwz*bqXp@LP3jWrPUz~c>3laaLtFOe)(3o!-es0RL3{3mpjPPc-!cP}ug)*u(iKz^ z_?Bt6SuO}ujZcTM_concfGO46)AsoeL6-Mcu;HO@v+TyKTo}V~Xgk&T>_zN(d~yw* z1-8GvNwaJTIQ((%qsqYf;#)2Rd(dBge5U1)Fm+fn-?EPtc;f}j7bs}#FUV30FmQvI z5rFUY1uyQay_~qTYs(YKwU>t?_fD?8eB#Eq8@!WR|8yHX@a30YUR~&$T+m*7`444p zHF`(aUVd`o+nao&T91HT(B67f%|1}GLo6fn{9XUoKae;Kgzeva%Mn%oA(@r~Ph^IMmUQ&Mc0qT*DqXf5NjuEX+imHxNq-Y+KfMY? zu*1GQIS=neLhuwxeQxr10U+3#coOiL$%_bnoRGMWF&6_R?uKP_-S*mRS9uf1uU~=n z($fZ6!nVf?PbUj)G)ukT61IJBMZ+(JHkz#7VL}_tmay%^+})RicW9_K>55IdY?HpS zN|$WXB{n~Tv;*B(CsTk1!ZBG5(Lm-;R)aKF8lSjZ(0!l|Z@+ZlK)awj1}TW*)GM|j<(stTMgeeGVB`nf(pCF z1EBE`mf__Pl_nhoTiBm?QRFvAq z`eVKXhjdXnG=k&Wz~#0Q8_|eEx}Y3EAzUm9ye6vjI$`O!(n-00U6&|*q_O&A?-ac--f7`v+Sq-+~~(Dg&b0!B7zk7ma9b10nN9p+d*`yTK+ZB<5+q2NVSJs z!adv??%}q?AT$h6FH8P`f^AqjTIUM%&^q4(GTiw#(BaPiOD$)ezXFoIu2&{00>raz;L6+U2=Q z3Uz^?Qk1`+;P6i$jwvNG+{TLAw_zkkHl@m0I0!r+&*2bBlyu}=j9Y20MX6JijwoLc z8!GQ-)iSzZMv}7^FuZUUqdK(s7J?4tPROV3e*^wDI;UVY9scnzlU|5r+l(j-cR=gt zS&}4=8YicV!O!(d6ZIoyCuoqkfF=eF%6b(hX|PI#=DKu_-|!X$TaG#W>voX6`ulOv zBDtVUKwXEc91G)|k`CG~4;v@S_9O(@N9;0!Y*|dON)ulYA^bY6k8%RpZZ+$ZXa6mjRTc19`cV!fnxgYl>1DpczRAm2}uQw{_L+& zc@!#3n1(nWL?=7u1t>;Ub-uUFCewGYHtnJdZwzyGUV?3vRjkO?if+CGCuIr1_g12e zp2TG2IH9O6L_bab>=0}$`bYl`k72HK&LR6+)%e!ZXW4}%C`w0_bZS}Gfn$KZKBaD5 zlOF5L2kooxz$;g)7Qc#eI`qGlI<9L+)%Sd7(fhB_JL?gvXgAi5D9=)Ujw4(0H+t3I ztOLYY=RhEqfL)$pmDg>NbDOQY%cASZn^cjxo}~#89i))A5nhA zWMnM874!>?9&H6J$_5d^_jFNSlcdb0aumpG%*xaVouJ$up-sxS8J(`&%<^@u%1{t? zdCoXR$B2JZF5`4ps0(E}{2A+2&&oe@0y@gJH|hc=n(w-Hlkg6`5DRU~kcQ*q9N9QC zM|R9i5T)F1QL=R{a23rQCEL2vZSQ(LvMqq+omEpkGl}!YXZeSjrQCzC%3aJ$?zJ1@ zb7b#K6Aa;yPAZ$A1X{|u@6yB2C3R8uu59a89}?R^_Keu&c)a3b-yH`3MSVJw;Q2H5 zz+Ye;Sat3I1$;A;V8 z{JwHDk>(7`F762uDs`eMZ5VpZpC3^^WHpW}FC(YLx0U5jn3RmZPzddQj`bnd&BDZt zeiiYDZwzL1JGLgJmm13H%D<}(672G$CZ&}gX@5p7RoJan$U}}Zl)4>a)Mm*iNA}0X zd3LFr@RgV`~LC>XA!94M$N-V-sffO#%TY(G1|Xx9O&QE2l#giB%so`h)Oq- z!e%I}`uN);9Unn-AsaV_ef+2a{*?LqFpv3r^73?ey8)uq_gla5$3)7;C$T`|foSVc z(L5s{O@js#0O=vp;4nHH9?)NG{FBltk{Om>fCY9{emWOB$A%CFQ3Yb0lwS z0t&OFhf_x(7*NJzTySa2QJps3B0#kM57s&;-!8fi__J^<3!Ys%q|67~UfS`8+6CVh zrJxw>nJWe_jnj3N2A+q$LRyD!5e_#?o& zDaoJR8vw( zhaf#R4kfBJQ6fn5Qh-%+s(7MZo|hs@wpPh^P`WT-pCBzvl9qG}5}Z!l3+TpSFy~4u z@Vvym$~xt;YUZTEnz;df!*^MHH~KUU0#C>^8k0Y6FM~mcYl7gn!Cb^jR#~lVxJh__ z@R~(A8^)iXlp{~;$&yEIc1WKq+wolEwP3?62zE&2%?=8@{q@VJAJ-*yo4B8C=k0dM zY3el4L7GGAX_z11uxf~egBVjocANxP_kK`GYREQ<{>69)`CM6X8b`*`yis+59Ig}8Xfk@5FIlIPx5Y~fIo!Kh=f{;R*d?)9 zDikhCAKB$0HT3N z36i4UL)=v2A3lr*h4&Cz-&=7T*{mE455ez#a9`tf1nE;5F+CwIqp*me3-xAi;XhMeIBJpnUq(4 z3W_9gVFx-I3n1dZ;Xk99zH|O*EKaujt<%X4Z)2l?9Z+YwS&$vm5gkk0Y3CQ<9VXx? z$V^o&ZE zm8W1%dEE~5aE=^{VHO@NHpRqT2__;)d|tXD6&#F~vkp%mo+?cLeN+c;fx2_ymQ06DsuF?mbtT8%2|Rj>pU`_v_G-51GU*WN$eMXZum87|n{PT4ZJ6!1{sip1zV1G$#_f3KddNk5@8AB>&@cR@b1QeOt z%5lpuk+i)`Q}z85I!sSuhuHjrcEl+K?V<5j)CrBhkEJ3@b6DzN=>nGKv2+nj^I3X7 zOP8|rL6$zu(nnZI{f5RbXK4{ji&VNV`&9TSF_Z^QZGv%MGEWqN7o|)6BdWY z`;a%5P+`w!n2r*-N3Q2Xq9zixpQzbHbrE$RQEf!!6ZHmB%Zd6eQI$kB5mimp^F&ER zJwp_QCOzwk`UO#Ih-xOPf~ajo6%qA5Q4bRJXQJ|mIz!ZbL|q|j4pBof>pfG58beeH zQ8S3TgQ$F>MiNEeczcEt^)yi&QLhlyhi_FSZxD3`6y(yW8T*Y0ycVMghi`LT>)GfV zk2L$uQ#fCXEz{|)a8(w$XPdJMi_BG}kGqF*w3Bk4<@ey`ghkn+{eIiz<)sx|YUHxe z6+s|a!C*3Ifk6v=Q!J2b`QQEbO&Q0a9{)-UV9mr_oYn1hyS(lq^Y|jOtJ34H8p=Jk zoU?g6m7dw=>`Gr*QN`U}b1{C`i=@nL_7*NL!!9!Z&S`2vmD%GiFD$LV?}&$TOR5T2 zV6(}tEME;tRpy866{~$-^P+{h1?GqH3cV%f;!2OX(&r7A4&@#w^ibQ`W_!h>g=M8h z=F)HzZNI{8@>1{iYA)9C8brUjWIy& zRc>>k`LPm=L2Gm$NMftP+^GMUr<8S2;eL#CjusC2;ZdPm)~XDai>{LGaTl`YnikPK zQqxgcSVZazs*;RNd-*8bw7;j|ri*d}-gN2qEsevkj&wTu?Rq8(=srFk39d}s)NUAl z5j#t3fik@b4bB@meI8!4PQ-J%)gw7$9$xA5ZbdnDHkvbx;q|%3Qe%+k zwY*8of2-whXnC8KcWL>4E&ouBtDT0U0GCu;c&Ezi{Q94*h+ z@<+71M9V!|UajR%YWY8HfWZcX78ta^paljkFld263k+Id&;o-N7_`8k1qLlJXo3I3 z78o%$Wf^{a#Er;w(m#bSbggo_N>({n_zFEm+;=^uMzy@i?eVPU!hp_l0O+5~vVT7B z#HR$*;A#%zs|LGtjhan7DNJ&?yWF*UEs5qDIZtX#Z^ebBWmG;3<*vfAvPu`BOd$7~ zQZLaW=weq{WtE#y9--ngUsVaArGzS1yDJDRBY=Y@CZU7?4rq#qvswjAz#5{f+-{~# zjgFAlUB+~1V2BQdSj|R)#9o2SC_eM6)x_5 zT?KbQx5CXmuXk~;>KDwI#_iV^mvR^M<%Qfv1G7nXi5r@{V!%-u_l2Rf0;g?Uvk{Al z+h+8*i}MSYb9-@wRbGN=ce^lX{27HpT30{RIek;7IE!)nDsU3#baH16?6ge3!tHg^ zCoXP_PW|e|UBTb7=*D+beWmq*g^R4*E}d%eVjtA(G#I#=5ja6>#7AqW;B{9NRg(UF zI{aA)IvnKwVDy!JLdQe#NSv=k{jXv$@ap*@b1U>_yq! z8HhfA2ShiUq1_rR5*PQhp`r+ufnr+>NPdFGO*jkGW1alMu*$8SD{}8r-}jJKX-JyV zQG>OzRd~7Wh6UU{@Vn;_D+5Wl6?|WLHXZ$PpBU&bYAC1>$RQpjHOo-}2f=7vXQb0r zt^plySPoVLC5@DHQze?UUmMv#UqzMfm0%pEWYa1nO_aP$$>vo$n(y7H(@eN^6H;{#tQpdD;|X1}F0VQMd>kf{T{PP~PA*eXKnIvNYIrq1dK1PE z6FHu~DqB=cpN)B)+M4*8guypz{2UD@Xn3)PO&WfLFdCjfN7UY}@$)qPYKoyn2>&vS@iS(^zt?ac=9=&yHJqv89brEHeGBpT z5k~);wEhljeEK^C#Q#Xcd1F;fKR=-QONQnQk#vi8P%^GI^h!^~3 z4d1TuTQy7{!^wV)IKxK9P1JCcrf-^tYczhAhBLMCFVt}A4QhM0hUrWkB4f2A9U*buswa82m~M{#^`iiNRwq%(1xfd4R)_edKRnd1LEHy%xH3ht@6={GT0irfs`GjY$torar!L;~l?&B2|4``>Wm%DfZF zINW%=xPMjOX3mLyGVJ_`)^-GhVzK+3(|P^2=)^{<`e>qjoAl2Q+xxyXZ;Xry9&`!aK@a91vve96lBp;7>3A+>0{_V+G z5#C;%`0y9mb)6OAz1B%#03}R-77bu$562fyEpB4FxYMic?arv5yKvE90Jl?WVL+YmJd1pwKpTdD3JziFvBk?0T)~2AeIR&5zmlJNIJD z>_2;-=brCs@+>?1;$uJf+{#SHG{ywztG=XHI;I`Gv^Mj= zd|mr}qs4*w>M~(%W>K!LUO+AI6y>T<3Tx-oEYQ^su4Ih3Ssk?GsN;ftPTZ&+H)@G9 zwNP9=rz=ly*J0EU7kRt5IG4iZ-Pnv;yLwVwS72zTlnmTt7?8kdSdN-&Dw;CPHY#oQ z|7)15wtQ~*mSMO!#c(?GcJ&ogQChwct$N+$m|Kz(9XLJaTh(fFUL{x>SQ_NRT(1|k z;BR42tCle~3MoQO0os>C2ib$71Ik;0Yt$#i*_OFLc{C-K-g_Baeelb()k*VWTjJ7q z^5w7Hzv9$H*UC+neI~WUvRI7IR<~I;W->UlquCO?HoW%bX#e$NHEAD-;+tPO=Dsx` zi0d=ez8MdQf1RZY8QG#~j+&E^Bi7GSS7mso-!_{ut!OMaDRa88ZDa-_I+xCvTR!XEKVg09 zo0z)+X0tKv610*$B<(*RN%P1bY0rS4MlCx@)slR{BVX6POGag+2;0c$YrN3~Etals z$Z9CP3$#*BdgKXhCZN-L{1d_=u=RN7FyVb7ZPDfGUc#Od2Hq}>9W(xjFJVa;=} z&650|&aKWZ&dtt;9*j!e?@MlkQ)R)tDErc+*osdOv6jTf!;B1I4$RtoH1)*FDrV8# zO+QV#lQcV$JR-?&YZtif1?^XmUS*MUfHrNzQfuB*kc?F*m8ULRN6YG)1CK}YiM7=C^;hGED8A!K$rgWn8bxDq1(E7l={=d?y{*p{$8EY{FNfuoDC-$wXlr>3q zop6;-G&FoZrSRvLf2VDQy+^*%@<`Q@EtmnSSiO3(Q$0Bm)@9dZ4&J)t$ z6^m{kyZamtkz015tFq`n0+&u`J9*ERe+3&syo_~s4m+$pS1ESI)$5Hlo7Xr`QHqpe zxmB=2G&ct{P=YFL5_uDc%c;2j$2#hi*V}<6IVu49grmhkjH4o#d`Fbxd>_rEn57hM zlYFZF2u10H6zhyju{old26WdDRGcK64CZh1I- zzbCe0BesL2LF1(1jPKj&6fRw{vE#oJdY{8941{VQt1&%ry|_jsGKJ7KA1z^%L^ff(D#g|f2|(Si;~W5wPG%= zRy@UNlI+EXbd7HGhl}ScuF=)5*CLsoSmDP=d)M~e*!7Alft_34wYNB%g{POtW|YX@ zH!zTQVdj=!bDPWs)yj-;u?^9CH!U@y*s8(?u@+ck1tV!+f z;MgM4;6=Mc)6FmqOcF+5)M0GJ1EdAbGy02J&LBs+*gS*_{+4yNvYtB1WYB3->`6 zN_f{zIpC<_`UoV=0(xlybUyJJLNZ6Hq*%1{>qcukC`twJk6?aKq#qWMYSjo;B}*g`PG4jMRi2@Hb3=R;)YT zbk~h$A!=}ZyBM1j+wKi{sB+1NPI*T* z4#2axPmqyMcuXZ;If6WHxdIKYE3ZGm%DdLsnf0k}p`TcHEt0uYcFmXkllm#tpg^Xw zjj*rOJzjF);pqoDrpa#)UbP*NEF`lJL?yEntD*Z?{)6WD?_`qNcPH|?FOCDD`;6Vx zy>g#NzAO!1wm8pL=4A^W|2QrA>)d^1p3SX9rjEfd>6A{Jb{ODV8KS*YkCu*{SH9v# zA}v2#xhfl}^*m4DF&OG+rt&`B%Y-DqqwOVi%<^X>AuN@9@I8y9Y(7ygXXPuK-zb+K z$~S{2ssYlRiZ>hcQ7(Jz^F8th+U>k)?xWNcTV#vw>3Ps3PX7gM0~CBmF5bTI^NW5e z)uGcRyi*%p$Skgo-FBCHK6lQY@9{OJi}XiW#hbRoH({nPsvAf#KdsJNkQ05{xJ@J1 zW9ArLmqYPn;dAhjEc^~HU*KggFTc;rAM)}=UeX><7SfJS7XE~nFY&UEmp|uaKQE8- z@&qqW@{(>ESF-RlCkbA@%FAJ1p5^5zFMq?!*LZmjB^EoD`zFTcd@xyfMpWfH7DgS= zULC~<8aEO;O=ugTenO3ejuLu|P%oiwLeCJ26Y3#!n9!4ijuPr1^h-iPLT3oo6Z$=& zZGvlE=mWDgREX4K|*4x94p+H@IyFCOM0+QaE;d-0On>EqCWKOk?_tiDWU z>ceLP%VI(=z6$c0DBz=`B)TS7|4dqM$Qna#Gi1FXgNE!d^0<3L-rf; zv>`_g`MNH*uy+l`e;IPzkbgI%d4V3_OhaZHa-kuM47t*f4wA=&(&Ws8wdQ|zn1vkG z;^>L`eC^?ozb@?aH|}O}7IMsT`22Ov&8>c75?G+4DNMKqxWV7t+8!YGFtLW_NP8o( zT4K8bVcw{bNNZalNHuLl+9G;Q2NBu>RMRDZMM1g01H>BI0|6dIoU?GCxtS~varO_P zrZ6|{CE9W$#v_~tTKsK$$hePaTObr_4G}%TX{ad}ZXlZARNsg`e<*Nko$hlKdiC6f z+ti;sw@2HX1A#WO9w%#>AKmq&L7Vx|uxaQKeE2_?{7NSOW96bdw8kFx=jdayhz`fb4%xo4TL0dFMO)Ee~p*fS=Pf)TL>zV@ca1MFu) zAn0$c53otW#1i-&BDPj;ePB~1J16i{=xc}|x*n5>jnBZT=)#XJ5t9@M*0)mF9}1C{ zhxFshj>2dRzbHi?8H9q-x@IPe?4Lvv>&5Y5efR@L4Ep%_WIqhZI3vhUG9vt@Kz=|DM9zUBDgZ11WJ4nv* zQ5%mgLOEVa#XTqz%TZjs7e!Y&ia0N-feume78Mt(g-w{$lW?ICAFrm#!nBmw#)L6b z++3Rw<3d6hH+N0DnBFDU^zy7uQ%VWbj=@t_gCHJdwU{kZ(0?3OT-8V$oELEed`jV= zdIw%|FoyXjUPT=CHp70CQ9q8qQmFnBgI~|V4;%K!4PI;Tmx)JV&}b-z41+d<|CTsB zbs_(f!+$rpW1h}08@$b^f8XFG#(@52a65iYP9<~w`yJV za*Elt6#j7v&&1}w*~=X%{QeYPlft)tk*{aIFDlrs6i#Oan}FdOVtIJ&c=Pct#Ctp5 z0=$LlVQIq(00#~LqiY+N9Y1CNpO#hXUbj;{@3yNmtL_3PFBGj6^E)m0nv&2*EgTQ;my4{s<^|6_x9k$xjgT?HiR4yfPLTn`-C>D$>9 JtPh0P{{j`y`ZoXo diff --git a/Compress/Compress32.exe b/Compress/Compress32.exe new file mode 100755 index 0000000000000000000000000000000000000000..ce62ca3751084d8d581aa69b8a760b89d8c18a60 GIT binary patch literal 55808 zcmeFa3wTu3xi>yDnZQ7X%%BNI4KmuXCK@nNw235kLM{XajocLwfdoM#&}0vwqLS`J z*ximNJ%^s7t!+u6r=HfH>M6x2UJ?=*P-_EJMe#zt?r}h(Scss^_xrtj&tw9j=RE)O zKi_k{=jr6hti9KI*Sp^J-qyP=d(Y%sT5Ksco6U*;Sj=W?L&{G;zW?^u8Wg9GdN$p* zdB`6xY_m`LFzL4A zlJv``8h5x+9=A)sY&M?>%L=T6kCj+AcAGB^mjS!YNFXtb{wv?ke7h}c0Ko3ycH4Rq zc81RwrFNBqvaUvaks$Wtkd@q`pTwA7Ydo}104Io_LDvWr_@QiKIVhB0=Fj#2$up^-%!60*CMk3 z;0EF5&!@xn&-we^sT?@c8QT19W`>@-go%1EyP$nhV+pxD`Id0%!IV;wemK=gTz#0h zYOj`|dcAr&h z)4axt#b~*tctgNuSMDlkSG%&~WT7^MYcp)X6y3b2Mb9h-WsT30KKhQ(4|o+^<9Yg~ ztVNB-)9lK3nK(Sncc4-AnI=?D_dGZkH~J5IaZ}LVyvOsS_Q>_f39TS?E%yd&hH?js z*syxHf(m)8pc!U`U94~(au&6y2lHAFpqJrtKde?#m)A_48BCr2EF>FQ)|!tFY2|*m zaoyeMUsqn|qL%3e?a$CewU1`b2uW4l0RU(I@p5})gHd{?A{ZqkFeU?)%Sq^?jGm1Jr zO_?YHu?C!f3^X{ko*vIrBcFs&n%jf#wr<8n!G5*Z?rAy+0myxGyQgU~tED>8JBmfJ z1?UKFoA-N~hNHaok!J!_gKRKK+y_!8^4T7~ZLx0kpxYP^eLzObnt&~qSqHj6#6~yN zgHT?Gq;wTnGHD6$J%`e8YB9bolsxq>cIA?1NRQfX_iXX5Iqtjv z6YXX7h<(lRi#+8oM-2d4`rWiAI6Qi8-#uU-7;08S(dQcr(TF}$__tpfakQe_-iFb~ zw#ZXa@n_G|?Hg?y0yZ!dT3gYg?Fc!W>9e(phcvMA35c)xs8+FFFQF=U9xek-1^cy= zy7Ol&FGhK2m0c_L8;!WsC$HC>kLvE9shxIhwciC0ZIa(#w|qRC+^(atd1=0-QZns<4c{s2sR zCMDRsCpgsj2ej78vQX`pvu~X@w^L-gRk#W1H#<(oVvxuv)H3cQEH#57Zyv@HH0JV| zGDBh%0it<-IF&$@xTpE>H?i1S(W}UZxYRQIvCIrp+L8IlFk#soab=mf+{AS#XtPCr z43L8M$T74<7PcZUv<1L%c|w!IsT3D67}wU&&fJlI{u;(DV2N_pF)pymSD?H_KGSK4 zQ(@KmRW527bni(hu9+{H8=X*`=9n^^1=%)fX=gWDdZV?PCGAQfS}E;o8y*f(%m{+tNIdYOnP$T- zZCmpmWeC7oGq#7+jR@F``3t}mONiQ0OW(t(Y?z-H`4zdFZqH<(WT5}*!K_xHu3eA{ zRo$)Z9H??j!v}|pdG6|L(Ls+MaC&xjnpk*`n?!rlXST5&vec#5`ThDFzfV{EbOp2& zn|3%i+IW}|kEg1)@dTnITN}STH|`6$ueE{NRl&l01j ze4F+iwaXqQI$bQ+Ejce+_O1?S&xNr5<-^Z-B#Y?EBpetXuX@kvLpxuV6u{vaG!L0Tdnoxpl(zXb{0=EJQRD8Wx3Zf!ft{o`x}hj7bbo7rQnw8~1$nUX*1YQGOEG?Oay znBde7i-n+4o&_8rVWEsMXS9r>!=BJEv=4>wKQF+E@eDoo!Em%W{%lJg*^a_&dvFNE zF|OR7z525v13b?b1Ig32!$8JCoWZbW09$}23JVEU*dg~~&sr)1Q0CzdB6p4<<2+j? z`SVru)eh+5b>+pg+SY(zVA|X30w(~U59=GN_PRVxhfy-_3F)Zkp%}b2^dTSaYO-ew zK{xv!0RXU8t#e*WX~D%@r1d}vszTHJv#494ax_Gxz;Fl!GAfs$g5obHG|NC5uglf0 z)p1SmBQFnmIp~TO_B_bZ3r3I=s)${N67{R$o(DIx-8n$Jt>aTy<5x6*b>-PNi}P7G zEqj)yvLiIrp?0PKSB`3&1&)qgSDrCTI-XJoXJU3U2ZHkf7sf!Br+GNTMD)h&-9ys5 z&^-G(XAwE4?X&L;O+vTK(cOMR#`oY-P=XGig(}e`VC<(yq4L4f%gFD+KNuL=o&;o_ z9Z}c1a`(;Zr;d*IokQM2gwyF*H_bhZq(-KZ5>son!{|fyR(27n{UjD?4sLC^9gT$?X z4{hWHBG;z$i}(LOPF zuE9uW)PN~^<|c$KR!(TV9om?;ky%FNStuRd#Mlsd&4-j6y~3$GTY%T4SGajq%$_=p z4RvrA?S%3)RXfnegSVk2(B%~3k*^_)c^^>Pc2JoWuCU!a|DJqpu}kY&S20-Y>F9N> zs~E)8yRIS?sgbp=!WpXY!WigS*`zV!L@ajaiEMr3YLld_(DG6C6Y9r3+IX*4@7__C zVb{j`jq}+|8Ed*^EJ4e?h`O~rzu`ksD?0=OEYJgPQp|1uBsE?nc>%AL{TXVel(0eV z1Srqe8nUz$T==vyClbF_=0cLAmAR2*X+ZRx8R0KS6~mbh4vwtDCHTvnP?>!rZ;ek8 z3$*>A@rLt{MYVk$y`wsgJ9D=!+4Ij3W6@qu6UU@+BR4<_o`3i&uGJGUPt!qM01t() zy=#m`J9^1&M7lVm<721Rp=H6+vUKNnJUg}046rO)FaHkW6qG=2<==7PvI1ihF5OVc zZ0%LR`@UJP(vT5IQYj-<6%{!n)v`jq!kM-N&%9-N$;r#=X_)htpu# zYFBYVyLh{V)a@rIWxc|sk8NS=m!pb4*-M#$2;Kcdk-9adaImn#9T`Ep={Mg;oR)<; zjMKz}hOQemF73XF+U~IE<+|#@9bdWBcJI2XquTC{uaN!~X(Vf1)t8{068F(*ljx3K z^fN{6%9`ETH@`wx??G3M#hAy1Q_vOk1po}16Fx2l)?p>Au7 zwoNHsncaB&KzeFg+Z*R#S}?5fc8yj(2PLnXQaaF-+xMsr|GBU%GzVFy%JL7X}Sj) zC8P&#&P9@*e|z#vy`E-*z}LX_xG^Nv`Mvnh*eZ=B;up^r_XXNcgcujtI}T)Z{KY$@ z17qn0DQ4p6IN%!6VgIA{lII`WQ9BC^#@tiesX_{|z3m0Z?M{Eerv<$Qll$L?RW;vPYY3fBe@5m`nlNY^!I%i#3?7y7Ov=~pcWQ&wF071+4VIAEo~B=s17tP3O&rhPGyl_3o~9w-FM#{PSI?GC z(BRp!eo!^$95ncj_p`KaXb>|;+=R@I_q{{ljhN9iXeu&>B#Ng?o!A^U5yc?e8 zPMC6J5}IP`?9cNz-@a~REAe zy|~QKDxG~jjYD~Uw><&o`Ca%lxITMl{ET&@gT>%mHL|sRyA5qy;}^8$qn)taZKs=i zH$XZ}`xkTX_@4sF_^DWSryaT=rhTi)Kj#nOqUb~~t>x&gVR>v3%Hg}HGRB{4BzK3W zi3>W2fZXITi;$Y*I_ka-s1jx>UM<^i9L6nCK8-YlsK*+^PLAeaghUu3LKvdY=7*8h^HD%b|{syigUaI}I@qHRTQIhVu9d+6A5&>!>ApsMlBL zv!pr#@7F86o}EQIl`Nqe&5~+ZJl8A?FUhNuxDL8kVNRuFS0NPkFbGHSPWgj5JuyP{EGL;{}a;4lhjRc86RT@GPu5) zU9bmy@kPDjuhebM#^Yd_O_{Dcf9Tm+Qd3uZPcWjF{}97@Nqs|Le(-JFU_ieZNMcyG zw$%h*Qn$HG=-bdw#RDXLx53Xt&L8!dHrm-Dqb|GULrpRU5~koEfkvq93>@9Y+gMmZ z7E25ts7ziznF;}TL9a`PS|BXfoo6GAu!RS$+&XK`V)4CjNc$Pp?=6nKsfyy8LAjl2mt2RBL&K7$tZ6a0Hwp2 z)gL9MPf1A8`)uRnd=uvdge>+Ow?Jm0jKKiQ0Yhy1c%PQZ*bANO(8v2dJ9Bqxn5sC{ z6AsUV_kn5Zw)}!v!O>?@0NtXG2Nw`?y09!D@jRAm)NS6Pmm5CPdYfPuDr%5~=fDXt z{YA>5({8ko3N9Ihp_VxvAF%H(fC{V=DYSV>%1D1+Ee#{@qz6XnvA=BuH*6hw%)AtCnsCS13Y z5Z;vI#xl1~Hk8ClqY7nOn4BaZQFPXzBNZet(+Sd_B|fz`)m%XaQ6Iu8`|WXV~cbxl%8ndnF z(#J_dCW4hOnxmL@T-#?njp;Bt6b}9x^^?Q{`zzY9@`Zw<(Y5jQWJ_KXAg{c*yk?s6 znm{Sk>!T^Jts<{|YX@@^=2mo%;gdc=)SD@it4Ii*T%aG+M|tDcw(Lhpg#w_K0QwF zDA{Ng#T}~Lpx)zjD3@(zG-)|$=O?us?bU>{edj{?5c(=V^ zfAo1w9PV-2ls}+HNf21mivA)|A9e*bDb&4f3_p%;a|SO`-%n`+gJbG(yD|(sJnq1L z{jq)O&Tr6wQ*#uwAHm?XS&li#kP`hQVLzM*XJBOT=@*2`#4;{49funhlrTs7|IcQ@ znq?mrzKyCY;}Lk{G`(a&JE!>=X`J?R+tmXj%<+)rpw|UTT#%nv1edfPpffyhsRvR> zCe8~)zR=b=D{(~Pb370vx zss}znSKOMNj>nncr-{GANF4w_>N=&|-tm5_dSH~jo3%R=0~+u<<$%D5#=>=H-xV;` z``Es1PMgdp3fgf+L$KDbXU@>VPysLevui`ZX5?Lo(d(*WY|u6zRqh;jZO|1hFB+%4 zt5oW@V%;Zrgo6jwJw8;QGZRj>FdUFLO6$}r-JvoG%mE|u!*y_uQMY!)G%K~tWskRI zLt6+E5Zc^2uk%#AFU~;q&IIO-Bq_S71-f(#$82-N7LxBqP@#_$lJ_gO7QGuB7M+#Q zZ*8wW)h#DpieC5psH16T@DRj(t-91@SI&+TvJx1e)U$7erkP>UN1UbZ*DKvh0Ty&Q zk3Bpcm?B<_Gmc9G~;o(@P1g8}CQ!u;AK_2q=W%fguC15+SyK#R5-WPSencqa+})ps#&(ap->GEPe;m5bj#{ht}Hz<=BYIaPm8pbG4D|oOCR5EqYND z4h|2EJsD*vfU_^uZD7jSP86Z*TwIrr+y*$yZIHiOCxRE~qMHV||F0Orf4>>f%{ahx zA5y&x>{mE!8F!H8vi$h%Y`NtgqLfa;ZRlR7_GUqQn3GLgSS22Q)K9+7{i?BpJFguP z$C2N(&H~Y>w_JPVN#w;FzqOa@X@)?i8t9`%`3`xSf+V^krk9Aq>|uh?6< z!lJ5J(QeQ8Z{($O=x$@25_T#V)*lE}+oK=%$x9o_mbH;{@Eu(T{l~8P_LWz_ZDlvN zZ)97ZX0G^ig134~TzA-oa4JjriF}IDE_ZvJsm?>pq+mnNbC6&M^_*UE%Zd8YU-tLU zGTz0zyX;HwT1bI{O++AY$<9Dn8u2jGdG8465TQ+w~oFR|)Y@=O_SkNnyUH?YH84BA`- z0WR7`Eb}0I&zjZ#Vq4oK$PNyUo~`!Yp=3cWYl>5B!7q3>bVs=}lV2k^6O3gRqfWJP zG01G0F|}ZkwPWaxD(3LN=J$w#xmE$!#u51$w;#7 zM13O)k!w3zb9_ST+Zgrsg)2pFR;XS{o}D(QAsvt}zO6ZpR+$y5EaXU9nGF(R#&{^H zKC%b%nQ&zd;lh=iVA^7Pwe7LYUe4OWvAv-g89<-qV0pRBK$+54aueFcND%8L96Mr} zAIjVac7nmUGDEWb=$}?u=h;%}L*x;zT+E8R$Lg@^oq~Hr5j(@C}dzMp-)|+uXK3{e@|GnpT1iOiF|MMPP^ol-(lTWbJ+NXuy~6X?l*m zTO-2*77K4fMZGKoBE1Y1^s6{~j=ipzWy$e985QIxU${(|8pcj7KA|#MGqXc{p|V2b zQA}9$e-c**A#juzGQb}vp@kAlcccgC$?RLv36W=OIhaot2^XlPlb~kdRA%!7LLzoB zD6SuRU@?vdlw}2Hfard63|+i#g3`sHgNU1dfb?jY->Hm4Ps1sPU-<32Y%iZ&Pnx1c zMj->|HBP~5;j_A&4zI*6|111S(=wd9KLc|sT%lRn)R&WophpQ;)eb69#v!ZE zW0BJ{W?1vX$u6z5m=(8U!5*M-nW*i{(RX9(^}?d2e*lZ(4gLg8^feeV@ATz3vhhp^#J^ixg)7hcj;4{8deUv7#=tD{w|TuG~#r=QW;yaz^AZ zI!Lim_@r&iVaxtNqk5mqrVM9q+Ni^}V5;$}qt+M@=T}09r%Z`V1lp}@02uu~%uomO zHwGYUE9`CMHF~l{7EXOAX0$bzDUcZNP-Lqz;&mvLBM>>K;#G(_rjo<5ol;k-xy@qT%4!O_@jf4f!XyI@IH!G3V?Th=gR-(Pg> z{-KZCl|kyucI<)dHi8GyW6{CbYv7bQ)ZHe8yEtO^NCX|H*BW1R9*E;o-%;f*b(~$9 z1v@N&GK3a8vAU0qhxMOA23+mDmBEKE5qwY<06k zkCG`!wL6?bHb)dFXDcpjo;0&PFfeh?MiKZ`VNrGQb_}#%n zjVJj8n5XH7guCCa^*qmed%LGRTp}em7$N6xNiU7a9LZsdCoAaulv_g?Pmo<>^y}#`60KdSIU+p6ApDN^-G2d=#Tf-g zzJ{kS*b~`Hhra^*E5d)eeCVUEXe5!Y9D-#HFp29~!f)8zAq!Ke_^0fOp#tH!kt9TV z6m~wsY#e%)JOGPd{NpE3<4l=xPb0N^FuzxFbuSQR>(}Lh)tTdN$!WlFQ^e}JSD%8& z=R7P(xQcp$Z^Y3&2y2M<iFgR}q1P;j^&%=I zgQ9U&VI7N64J2l1cjjnQaT+Z@auw9c|K$s*`C-aO_t6je4#ksJXdrXFhL$ zP|}4dp4eODCuCJ0JiNQn`-Qlj40GsIv3%4QUy?P+_k`bR!VgABz(TBf_a@}UV^LV{ zCTl)Numl4erUx){!UJj2K7hYSmM8J8vhb(-3M*<>$_EaMtE;2GHzSi%8=R3q zAj6y9;0!*8acT%c!szd<@vwC{&AL4}*y0EInS&8X_QxP0Z*%+oX{Hdx9~~XnpE2L*;oNqJi07p#?IDfyRabqIUoUOGrkWVWxmH#(21%3qucDt zVEuY;^RD~TSv((zO?dUd5%v9(>Q1LN)xWOH2U>vK44tb%Pc@;hBpENTpC%&{^Jng- zz=BX?B|E+q2Y=P$wiQScCzqf@wpd!!-jgf0W3HXS z9`4t61iK85O%~J5C>(Pv<4aHyuVj2e4SPfQ1B*!jMK>+NdJXBrNM&pT5X3nK)I5#K zCN<+vqvj_`h~ZWY9rvfTz9I>zUyJSZ_l*Y+VtoV8KG;%V!r6%kfYgdq%r+y$0-f=mJx8=BnJ92xPry&PV zzJ^XE)~6nK2iH9A z@if0n5n=vY?$5Ae=|pTp5q2atTTm?7mLAD=zNa~#9RT;@r9M=;=_V^D+~j|S);2L< zVyr>oj2S}LLjOrTgsbjMJ&jeSA&^y5Nc5#3I*xoAGOHucgVuPw4o)q@ZDM>$=pS^5 z5sr>SDaI%70%D)xMX&>laE*I}>l?~B7KpL)FR_?thiRQO^56%0^7U>uojS(cZ#k^}Jwr>e#@K2l{gMz{q3EF;efe3D2tPLV3{1nh8UB9;aLKRWIzkYY4EUZlbmwD z8&lz!f|DiKDNN`GX-6NhAE|La@kAQnxNRs<7+*=BS*{+Ct>9DXNB^Y(M3m`7rXDz^ znA__JIWRvSs{Z9z8qW7=Lr>YCR1cVYu>JXwOfRhbKcn~X-=fz$(Eca;Q!OGBX~g@d zRXf2unZKai#h#o}?viqIyx0+e!gZSc-meTj27e7Djd2i48ZWBfhGv&@DNk|3e8EO= z7`w>gSx$m-Jo@1`m#vHptc=pNWxprd^>keS&Gu%T-X65@)bEFCKK$!kD4CP49?~1c0?1&p2Jh<2bSjr;p}>PI!W> zAcrT&=pUYt0V-qK1oFE|o4}c~sp?>_=rE+gFd;r5;IUx@EZT&u;CHZBiKlm+vZNiu zkrkYWOjRz#&R+D{IJ7Jwp(GmV)928UB_znn{~t9Z>h-ZcE%^m^ChE^UI}(_9_T$CP|R9Z%8Fg$kl_zn2yWS14y3 ztFH|t`jOcMUf}WeKn$M6v-V+t={MH3A%=;mUwyH9l=@XnPF$?cRKH4Z!=qES2hwnK zMGkv;Zs@>dzzN~RG8Y4lJ^`z-=Ajb?59sgF35f5Tet}wGFupk^#xm(UQ7G5eDX3E! z)i=)pQfj3ZU(G|s&;(i4z0CBbT?kLY6D01m8llu-IU*i!1>PjJ1?YpbiX;{2F#sa5SZEL&nelZ3f%z<5I z46*VY$W~6a312u4qTFQunb*d_m$BBY0PGop=oUIPR=oTWOz55|InZ0}Vi9zQZS0hY8_y1EqB=%cgdn+;I`5C|_ z{JpG%pBHc7-vOp}`Nff$U`7;Fl3%~+;}_O0Jxv>V->|s(XfTgl!X25DV3c{LY&cj- zYkCN!*7#VKVX}^p1MDpP4epV5KZQ#p@2-M&#d)Vph?9T#P2pRX$vy^FE%Bm1qezYz zMvgCqlvUH8y zc>v-gcg|r5WocG$7_{o+_fR17r#LlTP$j6?a_}gg^%Sy1@{wDR8=p@WVy2d)FJOgp zBl8$pARgfOu$898^;|5XB2fAkU;gE8LXoWM<*cq>e1&d z1}g_kt?2vugm@748JvZYeI=J$wC&1W`pmIlf(x86eupzQ`h;R_*;uHbm#0DCj2X{n zqhYSfWW_S`VX>I$4Y4+r6b(nMy#R4hUE^Ad?(<+1YT)Edxj0R4WDYnW$L%C8Ptu3J z?t0N(Kle1zU0kw4S>*0PFhxe2KC3* zWpMD;i%>hdLtix(2UO~j`SUsF`G0HS%7Zt7-SQHn@7InVWS-I$($}{n}Y~Y zWy6cf6E9xu>w|YPZfn~L+8aA;YdS7%+2P4C7|)WsQZ05TGcTakxtWMAvY?s48e1bq4{24}LG+e*!f-M%` zsqV<4QJ2L_J|^5%f9AjwHxpA~EPTR0wLMGi#L(-7b{Q@JV^shP4JY>keN0J1M+T!h z*)!yrr(%b7&G`oWm0s-)2goklvA3{ef{lZJOZ11QrEp?P##mv|y+fg$DJEC21l&m;S{Q%b^#r=0lwnQnMj4Wvrrv; zmGIDQ%EIvR98n)^BEBHJ0VzRV#@BiMU<6-6KeK2MCov09$HkO$(RF5s_8B=tSWi^4 z1%ny4#;tOU!fAbl=K3#Bzh$U}F{K$9$1Y!s)iD9jd7?W55T z;`1$IHeBStapsA&vNxkoNZn{xLVu`V8x zdBqDCqDJ(UzIc!H((EHDCXC3I0Y7Pc?~AuB78`dAM(oDT;9lc$tQc6?;QS9!fCby} z@a5U?NY~&z&q)A4>pFvlcu2CS(*3|-Jaq%};j1pP`7RW^T?Sy6d<}MXVylcs=_$u9 zkI(cCGT+YDV9QoU3l3loqROMz=W*owLzSX?J(wtkLlrZEi97?k68c~fQ7g3(vUpfyCTn~uVgO%qE8&8|mEw@lt@BVl`n$NkCDEtL z8&8Z&O&YOxZPKV;$;GzN(hM$^P5$EmRG!b04_@t0<=JS4Y5*pox(2okm%50|E-U!~ za!za-X{w{@}&%oa!XlP*m=AJ_N&1fLe zzQy0vmsvZ`-(%>>8TtF{S7+caYN!mMpk(T54bc~ANFWHqV>DDfyO_Y3R==A~w@*A{PUh%%4N|XHf%R+a>(k7JNqp zDs(H~V#!u$D(Kp7`4cOON$^|UAzK}p7#IL8qlbnXh*Pt1#IC$M`cVJ%I#d3|Fu-bK zIRppkBmR{~mE-Gu)jC|cu~*J3XgfU3?O>)p75(uvKgr87@YM5gr{ucBWnw3}+q7;C z2k%kv5DJd%gV*%8%!Z?zgGa&3yrDa@Lic7HFK}AO;6KkiEAj8R#|wk}noI7Zt`@<5 zcM;A)^5rkaeQ+TlF(MsX!`gh`hZp4Mz(itLp@XZ&>rA2-Slu*c69^BhYOZh@M{ZjW zA3?iF%3_O4HGvUuLxH(Y5k52}t5YQ*<&$|}-}!Cl*iyM?^t!EE+=#7k12P}ehm5AtCtkpRbK z)Hb$bjh@H_6<2F>n5~&2l!MUL`~$P5{?8L7tyjCu=$wx?CG;PtWV{4oXy}=qHA zu{R68|MNerY;ITcJPe+10@;{-bJ*p#C`#Xcy|ZAK_R?A&$w)!zkrp|f(TlkR`3+Q9 zm|p9EIORdJjssY|HxWp@+z&sdbkk>Qe?)M(S9=c=bWDS&=$aeLg9a9Av48;hfbPV=?n|ZNMjhNre8=_!V*;CL5m?Oqen0+TKD7f& zVw}Z0>wppAh(yx|Kq`3BtjoOkCDL$NxinYCgSU8} z&o@s!+s>HVJG-ErF&@tE<6NUW#HyFc63{7&v<$0%c_FG=57K$#>#gzl5V+#!Ld5@a zzGF>B`G~TQQTIAV7+8HNILg?2WIX#RWXI#;ggw9l@1{}ii0+H)J5PXTZCu5O7wp@( zn!#`azLoiq@P{%@!t0n4$9K&01?KqH%1VsMfGQyI@&tXAt6#j#vy5)R23M1T;Fv)& zk0o*w!MTz#FJhXfd<>9fB5tZpQheNpfi>#PD49=tay89ZiJH-_e$NXI=nww?_7}j% zB`vTHd>p{PAm5x7n*M_J-v_Up_Wa|i{v`Q4AADcH!SxH%nniv`vB$yDs|q{_)*Ev_ zqipezbNqQ_JgK~LXyeJBJ%~NxzphAq{^z(b-Z&&~8LZ2ORI-d??_m*t8!|7$-TBDH z!_ilR(n)+dwDJ%7YX2njjga99VqS3ypx?%2R*MWF;onv|i*~H&k_D9GL%s;EiMI8R zFF-2&aex1cj^QalT9QqCraWb7?Y{yZlu$>xsG6!?V^`85TNn(B*EB&H7@PWd>U_wG zXVAhlzD2PbN;(UVm&074f;q-FZ%JH*fWy=DPiP(sPdNxlWCMugz?K|Hz$Ira^AYiP zUOA$F7#MIa(PpckUa|&>r>O*h)*ibLm(MdMM{jfDJ_!PfWpWQfmexH@t-wIC_;7Ah zyOM6$v9Ew`ranIcH4#f#^LBZ`+egT1W#t#SLBv6z=sm2$cqW|Sz>PR38(4)9WtkA6 zT+`exh?LPqCzK(^ru`C-Y-~P+=A>EWF|_)K@iJQNYpkWG>mknsnFLDiZZHwXp?ZZ_{s3 zXnX($2t=fn{x5DH(y^qD_VuxueiGyr9I|MGFnM|~mT7I<3HIQ>8X7Q1I^k@o|H6&P z3JgZ3ej1lq^yDEc!qX!rzaEm>LJ(i3egf6as=Mg5zZv0azMU2RiaW!2ld{8$v_Meg zU8^BW-%b6-`C7&UQ0@Sjo*}Ul<6a#0;k(R1d3leTLqAcjU&Y8k&tci?81JzyacC7* z_bi_R5c&lAGoE2&Rc;Cyn>ppjnjLQAD6wl2^ht9>Wj4cSswC8i#}BYwH0`iQUpM(d zdady*54ZzR_^X)eSs1}C6J6IJIgFN}J8ui!TUD^<8So(%kN1b+8uP{-<_-i_e7LZM zZ7Whu(X12uqK8?5nL<&S%k!|@>_)uGkg2)}94fB(vmdsj3ES!u&iT_Yt`%36A9UdznLe3!S zvKoCfw|d!?*UW%HF3DRwZIptM2_ zFV*lvKl;Rx`&%M}kr0BC(>RW?jCfOJl-k7|FY)iVl+5@&&KmqB)L`xj ziwc&x(KwKelPRI{fcmK&&kkx+UFLJsW?+h*0xEQUp4wS%E-N8+kX9mTeBM<=cYj%E z>TTeHsQ?%^LsP4?3`>Sim;v;!Oy+~ZJiMa-J0zIV(HY^*o6+@_Kcf4PSXfkD9zncuYNEnn&23?ZOAVhp-$b$DBbong)ApApp z@aO#j`BQ05nVWPFZ0`=2NqmigTb?dIolAJHh_Hz5L_Wa@RjYp%tE&D6tKP(5304&X zlx^az=DFJ}2E?14>ek+ft|h$*MwtBi7PMqQ{tUJBIVnDgPm0gc&&EhSTs;mWIfULd zUPD#Fu7kCVfJg9Q-S^%WYDic&SG2IF!1YNOCVWf~2l}|4WzBOiL#Il|=QWmTd=9lY zE&6piaV!-d#SoqWUUAXfzeWjgu=GKs)7TB!SHhTVOvjRT^4z!r_epbOfrr<-b!(g; zrOddHbxvDeKx>hU$c)W$eirfd&0oe>oKfa!PDP=9euVRr(A08hev&@tL7xlu7~jD{ z3yF{Z#5#Y^t=ItGz;Q2^GEE-ncZy*hQYPb}YibD#EQh6jV-KE3re0sAcHRcdH@VXO zxd`54z1r!APxDqu#kzv#i2G?MMG1zL?l}4Q{{1% zY_x`HDBZGj$56hKw(@~5x6CDg0Kt@Aj%8kLQgW81cF{)@<1cX~w+Z5Ce|Y5L7PKhO z@8w|*9Ogd$Bt1)P3nPUGHmJR>TxeRMauwdUWez(6z=@aT@35r^8jS5w5OWs*S`pl> zk0NDg=r(i$Lu>PE&{N|!EDd1_?RoGM+(CV^K>>Wxz#|bh(o9|T2fr^XNXd@hsOX88 z;-O4nf#Uh0lzi(Uk6Vnj6fbMLXJ7w~>#=mhPOZHRWZ?9$XDzjrY>!-M=J49{U|7gL#}7>*rx0+TncFUu^nV^*f-8ahSiY#5|2>>c(p5sTc}*`A&yw)0mcT%>|}Ny zf0Le%C;;=IOY7U!F1)J}FWlih3I;UAa?PS=$Iu8B$$8p-QdcKFI%fXC=^$QO{8*6 zt>lJ}16vi(vF?qNP#X6r;J#NlX6@DMbMW$5ymBy>`6WXeJnJrRC=16jbI>vl)tPdM zWd_XX3mnfX*oRlmW)~QEk!_FJ$~oG$V|zA|3N16awP&9^_r>zI8$k%-5cE%ezas~| z#803MaoXB-yeoXVGo0Fld-fU(#5a)C*zuN*S^RnkMR;6v<0RZjKedXUR<@y4e3|$q z9@J~WibE{(A(Kk;Axm(=$yTJltE9wbj0BSsJT&zKzbTNS@RX7HBMwlI`18`Rn;a-J zb(JrUb^((y3tOTxxiaDU*_)gnRZ9v%9#3rgm7(EOxk0D!wtwX;KHhkZn*4D2*0Dak z@Qq(Z?Wl-^vQ8&njq`awNT>~P%8Zq~0$p^*KGM{M_$2!HqSN#PZ?}J5Tc{Qwzbw>xivyXp>4f^K$8;LM7 z0!#aRA5QTzkAd-^BcOX3Odd~NIaqi9sO{N+?VW&Ne<$FTh5{}mUfLDTCsQ;}aE*w| zPWvbta|{1Q?1XTc6YcS{|AYSej&{r!FD3c6WC+@4{KSCkd@zaakXd-+2G99*gRJ-) z3^xyx6#yR`zxhyi5*hg@GmhZvwDU1&Az#1BhId!uOzXpM0<~V^#9hJu&`f8GKD4M~ zWx9TkGv!8C(N53zISaudT6LSd=t%H=ND8MaT+kncQDIM$>@r-%+M(>(9UnOC?`oAU zbFI<%0#GRv+<3n+ERYAUT-?s4F1E6QUY_Lyx>)9VQERO7;`kPnBUJsh`u+*!YSjp+ z2VPXhAkUXFk~N4TV4*-RgD~?zYKvgN4u+Dcrm|yp)!YLw*dMtLj?8@U56lZ}6?r)g zK3(5O1=SE|jh%jXyqwRMU?}Cj`av+}g-C@+BsanPTOY^83s0CuO%nn40^zXz$OWY4K@JFRhr974Gd=1|utA&K zt`G8TK?HQaGqet`JHi21eyhj5AuM%(Hx*r;rgMQwJ?`@~t&x-D@`uFtSpAvdt|fYt{BNCiuCqFN$eG7rq)Gq##PI#qK%~!Ym!8XeDm+`x*4}9R6L);p zj02)K`mo$YEL$pGS(g%hp6GX`q~KX|Y2a$EmW+%3t3HfAPdb%8?49|%q8M+s71f}+}i<}!7dhn(gfm5 zP+;7OiIL!mZn5IY5nFwWNtiHLA$- zh87vZ#tn&LhIfmS%capZiSpsBZpBO4XgUl0v!-q%y}0Je!ss<{g>dKihG)v*c$-2+ zmj#<0u{RJ3x^Wc8#YZZ!BGGL=Qn^2YEk56~j*_50-p_Ls=cQURL|Q>F#&h!^l*KQ0 zms?~&!EPC=KrhCIPNfVk+Gin_-z~upmN-p%TP<=mp*s#!=1R;rwH`Es6`&W;p z^LTEk@NrU;lZn3f!>3odG`vL(5z4LDLOT^Wx*J$FvJtI2`WE$9?5P|N?(jW3{{VvP zM>A~7LVy;`vbd;tjH}=WqAu{)*e^!{vLqfuH!KiOb2IA74Yl`OVHwnaxIRmW*$uU|T9#*=f;3)eKH%kA)Z4XRLjh+;7JHO>Y>CT*@&w}p)dEz~Lh*$UYwVR@K zcjEnI(&C>XV6=Fhw21DylUr?!nr$y16q<&%aYnpgm&GQ$L$;{1esIco7ZU0JHnabG zv~I46p4y(-8sihRb~xU@LFgKYL4T6qr(z!MQqqAZX?|(e=kwF3|6#m-5`SiyH11dM zx@X`!I{p%$G8oUmw5buu27zHt(Y{~=XN*j=N$n}*hl!uR--F|P((8(DWGD17>Bn!C z6zEHwf9s`268}OiCePN8wm1Xp2T^grKpz+=UV{3w7yJ|bIjg_^9O3hN0W38i>+Uc{ zMSEzkGiMYWO-PVG7URWJPF(l5PEDBf4>GCwSojkUoz{R5Fm1Qz>ARuDH)S+qL1lQB z(xG4HF4_qau0sG_e-;%7JUR&#K58Ns#S6NlhuJ>ft*N$W=v90l^k5JVPxVIg{s#}lU(5Jy z1313Edpss^3=sXOgQ8mgrs&mrcftN~Xx6i~7+ye*q{}kB$x_TsoSm_YbI!&hMeO1^ zOpwm9(rH#&ZKac}w8~1$tu$bz#a3EqrDLr$-%9hW)NiFeE6ujjEGx~hQm>V|t<+_u zPAj!p>DO@9q`TKjzqHaGD>bb2Lo0pTO8;!7JFT?cO53b-vz0z>rJE$BUd8`f$70M$ z@+T0mb8V_*3WK4jPW(i2?0a9EGpC!>gR2m&>gVDVLB%7+^E@elZ9mMljE; zaM+K+A;nLGaPS=h(J|CW`XzzS0KzN|VdhW9@+Ujwe3-St&Jsc(;rzh-$&R0+8d@}7 zw5k&$20i}ng~4|ZFt}R_6Gh&4KnZ?+fWNz&Ov`<&>69fZBNx{gDr7%D-W=Owb4}ok zkq-cUBro-|Lt}r0BAYgS6PH^*gHJ(7#LExl(#6Ytaw%^B{v$4Rz?OOOMk~B2?_Jbw z2~|8fP=|04L}n&8lTyzmIdsg(V)pb+#5_o!f>+cKJtlP)(fwM;0BkD> zEz0t&m7Snszi|mO`O6wFC}clcy7^Idh*?_220P-mq#r=hDmLr<4HTGv1>V1&llwBR zE1uKG=P_*$m3i>%$WH%J2vnQ9-ZQbYqt~fbY%;!w3Dh(9L1J2XV+}AL`K9OS5sS2Q zaHKX>evQuFy{53hvmQUDVsAXo>On&fZn_hvT|v>6sBI}0^<+5^Y~&C18L$4LU%?vY zJ&Qc8C!ES3-$O8gFpWQP$d78IY~;_=g(|v$)%<-AeJ-9^!ee_et>Q7h1qiKe=NxX1 z%;E0D8&|OagQZ)%7niF&ShShoBap$Y>5t*{D>L=`9@Bzx{|uc1rE-W3QoyCFCmRZH zS_KveoW?cV@Dkw@!PoU*OMy8*A#J+z1-_;jn19?QA?+Hy$O{M>Um)rav&TlUTdY?)vy;U6ICuf3$F^$CO@ZFAqdgt zZq}x^X_MRasw~)^5?q7#1?iKYKshF0(>K{)(x$hk3?p0c+8r7?m`Kah+~^OsyL2hj z_Cb@kQO_&dw2UIE^#ELm72ATp3wCP>O!)RjMeUEvXi{M+$TIl&IHXM9}0_D%xSU-yLedMAgC{iowr5eS( z9k?M{dI>?`S8qouK;-nL#Ag0d%hZ2DJ|zYzPKTubKwbKeUSyi9mZHTM0X|gQQ_y}h zciTeqzvfRdRdGOAcM4=L?y>3)eEdXSq7p*Mh;;5Lpnt?YxJ5bh2=l_5Ene%fS-1>*RKFI9QbEm_YVTL1Ni6G z$Wz#wFtPpp`~MXV)Gb+X`@)6u8s^okykd00n3}pe+q`-8wYM*6P-^SvEvlb?SM9td zOBXFeZcXh#`GVk%(FIqVb+217Z;DmBtZsfoLv4f2cJa5y*7z1JsjF@9)z{uNf63A% zOK%@)yBj}yJFj->!euqJ*Z9WIukkf3xuziFYUs>#1w5;B@EU3hDq5L!F*OQ!Ud=r-+Y%eFH)-2sYg9yVjSV%bu4aRKYmEY^iV2e2Apx8eh)E4Y_#|wt(0?U)_?W z=p4EQw0#}xyEFSXz63q4FS!_l{!00t6z?qBDC?_dU7D3lNOHtx<2jxUII**`4G@*q-yXcH zcB$g4S;mOV#No>+zj1Qu#2a$^iW?w+U>(@4-0jPmI&lKZY&Wi`tzT5PY^AS${?glP z<5h2*Q8A@*(v357ZPOOlB9Lnc)+rRVvTT{J;ja00b-3~^UVr#_C3n?|JcISM*9^6l*3?K`2r(?4-vC?jEx8L3;BE!+>wLvGKY;}z>8n#+zl`P`ueEXs!cE4uzWh}e zuOeJrn#&t%gEh;*Cg?Kk8XC78RhKPXR_6oX8<=r%%^2#!->S1@ZDI9YkmCq@Xzt%ZRB0R_13aZ{u++-6DGxf; z)Rc!ELpw`%l!i;UgM!jD;&}}JzVcY?Jfy(modP_}-;Dp90rClUYCqU6`;i6sF9{&+ zj!(4fcqysb>(T^v62J_=U!DwqC+RZ#$Lv$vN$?BxICk^HJmDAea12R4)%fNj=|1GO zF-PbrO?R(NsZ94i=qydoP*cm&vmHMgnx0YGneHv!k?t-Hr@KnGlfjcu&qT}!G>_oF zydoAmNxAglEKS1cPie9PY2|51Zy2ztc?0Io95B~rn}uex(RMqIw!D{+ukUN8 zV>{EG*QZT4FKk&T{t&Q>0n5{YCamLE0J8ab4`cWmWmofB@GKvSveGm(3-z$EEj~h> zbwez6Zvw_K%>tW_%z{T9?A}&Y%I%! zSM}0ywp)cV=Tz*roT=S1v^#B}c1zQ;QGXrkE7M~!9!W>L)sxdF;d_Gc)rYLdt@4Lh zo{;x6$eV(yNFzP_;Sb6bRUvA>3R4@yVT)V@V^QNx_^D9_N&qZj>-WDxGt@J00Jt~ z=A40m!ZINGUV1)~IqAjtHvQ`)wEOt1SZpKch|4;Ep=H`tX;ZDM(lo~eA)7p2gF613 zW3hEfb$m-K^(d7(RFsJjx%lxX0pA4p353UoIJ%J6jy&pflANGAx29*~`=&lw363uT z-wk-2)s_#(2N(4J738rUewdeyyq(Cyl8$_smyf&;PsuB%?c9Pl^O#^#cNX&Ukat;9 zULEqPkaw1qNBdcWylKc2+RM^iuncr|w%8Bb+kkQG1?&MVhE|I?j8FHe zDG!1~8N(k#+JriM)FG}DzA2{l({DXzm6I2YEubV~P*u3yhyQh`i><3j$IO5ws2 z6keBBmVA4C+6^cyv)qNmL4L^mIpDe(Dd`x%HUo~&2GIA4wEK`-aoS)8G?dwD;Om+b zi!C@4-U^t?L%?vV(N9Pd-F*)AzMO0Ew9m)T?cJEUMt@g19$BjM!IZTQM}7K3_EOxMHZv9idIfk^5KmvbRcLocQo9trZ4Ulx0G~ZC z78`%2ekOdu!~vLieVSupdj3SP;?{IOAgj}huS*XsNT(w)$LcQNci$F^6{4*qdZ1f% zN!Dxfya%v8z#g+;2a+Y2cN)tp(V69_lh5%6^}n|IV)=FO98r}UBf04D-_ztfD6nXcy1fZ))-8y|ew*MQV&94f zQ&fy$wCOICf4#6TW+fl?A+HyCkKx*O-KpbZzT>u2Wu0$|n)ot+cTP<#1{Crk4LQi0 zg}m9!!LTupvd9mLuc2=7dDcfz9{0r-Uz1~?KwbJ+$jlKC(UqMZ%g{%(0M7y7NlWzg zv~e)tSTKN^AbJ}hcY@@e8eo;DiT!{{J20M{rVOw@_PIC}yk8WH z$wLHvz7X}r7ebBtg&t*Tjz{}DN8liyCg3T?t5a%lokT~!vENZ9!(PPz)L_PA#_q2G zPYv*7_U}(Jo`B^KVrsSBqT8+GX z-82B;_c zkFq%^OQvm~1@9&dy%BoN%8xiQ&%_u8Rt4j2HG0JD5{1(Bg%G0Kp_4?s5J!1>%uLG_}fNL=P z^ME!`nZ9Na<|PBz;!Wwjsbwg|`0%xPaZ~(argbsR0-24p6nUipPrhDaoL^8U`8@Pu)TM3m!@N4=)gbR8$uaZRAaBhndFzq) zSW+JK>v80@A&)u$yK}W@ewf#TJlkD;aK!DzVuu@f zXTt4Ad0tW-;weO4A@X?557SA=8;iVj$uaY8Ltg$VaEgU54wnP?b;!#B++x=4XPf=? zny{MzTlZgpZ2{~7z&;7sd(Wg-9FbPZbY!}C#+mZ%csISUGCeR+Zf=op^Lnye59B^e z(-4^u8)r$UjyMz2CP|@f5@=GO6pt;#xj)NKC&ytJRPT^U8YXb31k#S{(sL@)^RG|O z!}mmM@>UIeUBEYKc`O#R@FilB{02caD@i}GN`kw1oKl{)N+1^Y!%02Jg5z9;2eeM} zmH8`9!&#NKNa|NxG*K63p?+a~EC!b=ALi8|Z!GeV$cJO!8rEelUFPZ5~box)8-0B4@RbNr!QEN+O!rds$^gm3wi zrGxjHjv0OwW$eQSz{&irPjBzC0zr{Cb^1BLoHA#UIN`eV{O<`?M*t*Zs*sqMl%-8R zC4h*p%>vzNYnSAK*s>Cf-9rG-V(|c@k?OoI-G{lzDH;VZAO5G|e-i4|AZ0!F)%Sne zIoH^@iYtzf*B2>bqm@aclByQkx~N4Wo2>1%V~2IH<45ddlQ^*n2?XqY+;vR$#qQeJ zB$SkL+iK6<))&SjhFi9KFbJVLsDmsBg3A*N_(&z+DT~NlJCVb*x>SJvGrolCF$#h zSMeX+e_Om&<5Zb*iQl%;;5InLnOaHRhw!HHd`F)OSvzHc9rnYSm8@;Um7G7FUv=n5Q?k-;UdWT zvV`N3vYmvMf>x^@(Kb0Si!vkXcQR)yqpWw1BIhOKEO{W8TM)sNNmac@7=2h(ci!)$ zs#az57A^BCGRKkm+9EO;Ggis$bEay@9M&>NndF@L4E2<{B=fbUbGh6ri|AQ9?G6gO zD)BM|)@5@Qxe?^PV96~nXD_3pvVz#?L|R$FGgA=#1`Ou!$XOwEp?2AfidT{0XIYy& z=yd$023hMTea3UhJvNVDU=g|WMOAX8T@!n}NcguOEFUvnhISsBUEhVzV4iak+O0gx zCA1aLu0YeiBHowF2d;X4tqP9?wg| z&uF61YYjU|N-2T3?Kb)fI&9*-q>ZLqVg;noMsL(@oV3x+`*XQ=;pOsyacINPo)7{y zTVeaM3RGt5Vw6%gj}h)T;Y#i2IJA=$v{TStgH~!&=b*g}%_DJgiM)%@E<^jersVt1 z%g~lSl*|1>XvO+e=116Aqa25vvOH0vco8FU4b$EoL~f~0yP+M2rq{0Ec?G1Py#?(Z z?j`Y;&ihC4q4l!3g7amV8y!(qGt=js(%+cPRDD~IRY|y{{=F9t8Q@|Og=J0Y(uBh? zt#6wwA*C#`@+k{E+82B?746EyMc-wO{-HN-<-1&d`s57=tgHv?ou;k_+w^ZOjuEHS z&7;KSKfo>^%Bg1lP|sxeRh4XeNWV`<;5g*+Gbb3-FZp?Z_Nu$llqt5p}O((P8H!zAkhah@g4t>yVxYUiWknyW0QK4;n$*x(u+ zaRr7b{=83}_WB%KqFm*&N^Q1xyUy1!o!_%HlvuE~3q|1X5(ZR}7k$1yQ7w|9?Qba}1pLnKa-y&L|O!m!2Fv>Sdm zkJ3(Np$~Dl<8kB@NPl9fwC`$W<>5!Ye$-;I-#)AICcfFWINBdc3>&YU_Ve zIE(FNS=rMo)Ucy`t&8j8uH~5R)9cy$5qlC{4j1I(FXy?QPNI)s$zjX4M;S0n<}Wdm z+JD!@H$Uj&d&L|>`puGB-0z$$c@y8D_IC+A93EWT4Lc;u+}a_#S@+udbHB5$?0_Zv#ACT!oaZ`r zE-nRDx9-xd>>mBg!boKUO7H;?180$Ukh{n$&J%GK6~<5_&aA5$mj_ErSSMq|LQf)j z=O^eXu=EGk+K|;Yxfwv|`ThvKbn}SIy+;S9*RZH}>vvst9}zxA_>0^NWy@4s=LxF_ zc~5W9A`FN?G^t+>w!K|JragYQ?ag?+=&MA8&W9#wwhzI|gL&KEG78Tguo9lfx!25h zI@4N{c~rlndbw8Vw)M2gMP^cDZY$)y<8CWr(f2)Y3LbmB=;mGW>O3@U0|Ds=M&$oP zENTX%`PcPI=3&iGkf~$T482TiSw2!W<;bPbCcH zYSpWN_-G{7!XSNvlksxNd!KWfw-I~IyIy@cfY@e{eU$(65m(K;m2M7mtg_(|r-L<# zDsrDwhKiL2-{-8g2D@pIx-9uGx}ANp*k1`v^70Hcf)=iN>67q+(S=-2+~oQ6(XQzK zGYaAJdHI{9F!I+h1#|v}2Gs=YYx!3j)QM%qcbhKv$d?+_Bj6}F4o-o$z@NdtfPr&u z1y}{vgPkA+4uE6eMQ{fE4!jSpf+iLqZw5Xv3L;=XcnrJ%PJ`cq_kqD5x0ZnxunMdL zJ3$N_06zjRf>*(t;1A#u_z*0;u|eGe)`E>70_1v-`w_4JPJmP34e&0w1U>`?mCglj z0=EDk@Ph%c1>6N9AOYsU0q}kB6nGB22wn!SfivJ7I1es>_rTx4N8mqT3CCY91I^$Y zzzf!b^&kLtfJty4kn38ReE!PBB|DFHumy)rf04ntu$hu=Kf}R9Bxa`7nCfRsl$n23 z2lLzg%)wc9Q1vPGvh_a3#`)A91VDR-t%S1WuU~cwhJ&#&M9coA57fX+Dh4HMOZ$f! zWFJ<#l2Jt)hSH`P&>QXM)f){P%xwQmI!%;pV+yl(Uj3??HWE>9mQcs_&OxPqQ$>SO zIULB$r)h-a1JZ0=6BX5ULJtHpS-mk)sT<{eb22g$vvekX8-yl`SR1y)n_*EFZpEjC&{O| ztWr-GX`|`sr0k1R&uZFqcrT|BB;fhGV*~}*rN)5;m05dz<49(}49!eUnd#B|J~(wt zW55i~Rg{Nw?8%dCWVf7F1IszlxIH+X zF$)%@)UO-2V;RAWSuhu+eh)34oHgqjpn4aMjG5IYr_`V1jlF|*`QB`d6~6Vzb4lq9 z%e!SV<>j(lzEtFGq)02|Z9-^wB=+daP^=u35q7Kg8DlZiOsVe}V>6kQnTS|Qea{#- z)A8v9mTnuYdfXU~W%^?5s*`^L@l4_F2*zei^`yKJP5y1c7*EgFtQOB3brn&s8`j=H z;*))TO8wlX=;C2UVcZ#<&JHEho7osSor;-TL$d9TKM}rZe;K1hZMs?`M{1yM!knAV zsdh|D*PXf!sHVMsn;M3WT18Zx3Oszo-+ zf5xJm;t^H>BPtu1)n>U9X3U6YOmnZ=VMMbghnd`ML}f!YUk)4O^%T0PBZh2O6+3yt zh@0^+BrHarQu7LH;YlitdP<&1k5bPVDQgq%f?+AZiUkT#x<4^cK#MzR$ez|9Q?1tx zk{&~0tc0h8MDe~cYb!4uwT!#IK-e_6eam2=y-lA2L-LlBw*OVcGqd4z)=r5O)))Ko z-q2e}U{h1Cx;$5Wmwo7?0)LTKV7~V7#mE6~pK1n|8~fOE&XD8U^?#ZJ%-2adI8dGe z4T|1M{2^6z;S>MS&fW%kQ+dl@{@dr`g#!(GT3T0mTip7vFNQ!pEq9C$dAeHMnJmM; zpbUX}TIS76%kAr~_sf}K@lb5uP54Bnr)4IcSeps&VfvHt#HYjQWF{HSdN?p;Z7>sG zHQU>ET#{2S zirntZOe)2|O&^PKCoIVaG8~&hNxD6rf+&m0jBFiqk3@P}_L*%QZRYD(<7w^ib$Wd5 z;SNu*BWilQ-mZvgn(dMHsQ00g?D_P%tXWi#_Kw!}u26T-(-G-Lk7y|3=`!0Qo?x5L z=WT22h<3LJKN~%|7S+QSY>T#aneCpA_E5LS=kv9CLc#8^C(_v+@dbUsPP4u1Gty&K z>!O;pMmyJZhSzj@y1Ztq$Jf^0?dk3ag*;vD5pT3J;*A8?XieO@W?+GzzGzy#i)zwk zdZTNCt!9>!ibguT!Pbsow=SE!CjQkWR;jDT>M~=eDOqi|CF}Sj K@3pID4*VC9z0p1Z literal 0 HcmV?d00001 From e85eccf44ba6c1c5f1a2357953e6a8a3bd0a6f76 Mon Sep 17 00:00:00 2001 From: Aharon Turpie Date: Tue, 14 Aug 2018 14:30:26 -0400 Subject: [PATCH 283/755] Added win 32-bit support, and updates linux and mac compressors --- Main.py | 11 +++++++---- version.py | 2 +- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/Main.py b/Main.py index abc440fb0..0fe8b87a0 100644 --- a/Main.py +++ b/Main.py @@ -7,7 +7,7 @@ import subprocess import time import os - +import struct from BaseClasses import World, CollectionState, Item from EntranceShuffle import link_entrances @@ -122,13 +122,16 @@ def main(settings, window=dummy_window()): window.update_status('Compressing ROM') logger.info('Compressing ROM.') if platform.system() == 'Windows': - run_process(window, logger, ["Compress\\Compress.exe", rom_path, os.path.join(output_dir, '%s-comp.z64' % outfilebase)]) + if 8 * struct.calcsize("P") == 64: + run_process(window, logger, ["Compress\\Compress.exe", rom_path, os.path.join(output_dir, '%s-comp.z64' % outfilebase)]) + else: + run_process(window, logger, ["Compress\\Compress32.exe", rom_path, os.path.join(output_dir, '%s-comp.z64' % outfilebase)]) os.remove(rom_path) elif platform.system() == 'Linux': - run_process(window, logger, ["Compress/Compress", rom_path]) + run_process(window, logger, ["Compress/Compress", rom_path, os.path.join(output_dir, '%s-comp.z64' % outfilebase)]) os.remove(rom_path) elif platform.system() == 'Darwin': - run_process(window, logger, ["Compress/Compress.out", rom_path]) + run_process(window, logger, ["Compress/Compress.out", rom_path, os.path.join(output_dir, '%s-comp.z64' % outfilebase)]) os.remove(rom_path) else: logger.info('OS not supported for compression') diff --git a/version.py b/version.py index 108b01727..144dbfac6 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.21 f.LUM' +__version__ = '2.15.22 f.LUM' From 5621b2749f120ea7f8d0e4bd8e8baf62b2e1293b Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Tue, 14 Aug 2018 16:01:35 -0300 Subject: [PATCH 284/755] DMT HP Fix (again) --- Rules.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Rules.py b/Rules.py index 75a5e24c6..fd0c01b1a 100644 --- a/Rules.py +++ b/Rules.py @@ -99,7 +99,7 @@ def global_rules(world): set_rule(world.get_location('Composer Grave Chest'), lambda state: state.has_fire_source()) set_rule(world.get_entrance('Bottom of the Well'), lambda state: state.can_play('Song of Storms')) set_rule(world.get_entrance('Death Mountain Entrance'), lambda state: state.has('Zeldas Letter') or state.is_adult() or world.open_kakariko) - set_rule(world.get_location('DM Trail Freestanding PoH'), lambda state: world.open_kakariko or (state.has('Zeldas Letter') or state.can_blast_or_smash() or (state.is_adult() and ((world.difficulty != 'ohko') or state.has('Bow') or state.has('Progressive Strength Upgrade') or state.has_bottle() or state.has('Hover Boots') or (state.has('Nayrus Love') and state.has('Magic Meter')))))) + set_rule(world.get_location('DM Trail Freestanding PoH'), lambda state: world.open_kakariko or (world.difficulty != 'ohko') or state.has('Zeldas Letter') or state.can_blast_or_smash() or (state.has('Dins Fire') and state.has('Magic Meter')) or state.has('Bow') or state.has('Progressive Strength Upgrade') or state.has_bottle() or state.has('Hover Boots') or (state.has('Nayrus Love') and state.has('Magic Meter'))) set_rule(world.get_location('Death Mountain Bombable Chest'), lambda state: state.can_blast_or_smash()) set_rule(world.get_location('Biggoron'), lambda state: (not world.logic_no_trade_biggoron) and (state.has('Progressive Strength Upgrade') or state.can_blast_or_smash() or state.has('Bow')) and state.is_adult() and state.can_finish_adult_trades() and state.guarantee_hint()) set_rule(world.get_location('Goron City Leftmost Maze Chest'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade', 2) or state.has('Hammer'))) From f36e92ba6d06eb1e0ccac8b2be4b4f9a079531ac Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Tue, 14 Aug 2018 16:05:47 -0300 Subject: [PATCH 285/755] DMT HP Logic (again) --- Rules.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Rules.py b/Rules.py index fd0c01b1a..ca2f67f1d 100644 --- a/Rules.py +++ b/Rules.py @@ -99,7 +99,7 @@ def global_rules(world): set_rule(world.get_location('Composer Grave Chest'), lambda state: state.has_fire_source()) set_rule(world.get_entrance('Bottom of the Well'), lambda state: state.can_play('Song of Storms')) set_rule(world.get_entrance('Death Mountain Entrance'), lambda state: state.has('Zeldas Letter') or state.is_adult() or world.open_kakariko) - set_rule(world.get_location('DM Trail Freestanding PoH'), lambda state: world.open_kakariko or (world.difficulty != 'ohko') or state.has('Zeldas Letter') or state.can_blast_or_smash() or (state.has('Dins Fire') and state.has('Magic Meter')) or state.has('Bow') or state.has('Progressive Strength Upgrade') or state.has_bottle() or state.has('Hover Boots') or (state.has('Nayrus Love') and state.has('Magic Meter'))) + set_rule(world.get_location('DM Trail Freestanding PoH'), lambda state: world.open_kakariko or (world.difficulty != 'ohko') or state.has('Zeldas Letter') or state.can_blast_or_smash() or ((state.has('Dins Fire') or state.has('Nayrus Love')) and state.has('Magic Meter')) or state.has('Bow') or state.has('Progressive Strength Upgrade') or state.has_bottle() or state.has('Hover Boots')) set_rule(world.get_location('Death Mountain Bombable Chest'), lambda state: state.can_blast_or_smash()) set_rule(world.get_location('Biggoron'), lambda state: (not world.logic_no_trade_biggoron) and (state.has('Progressive Strength Upgrade') or state.can_blast_or_smash() or state.has('Bow')) and state.is_adult() and state.can_finish_adult_trades() and state.guarantee_hint()) set_rule(world.get_location('Goron City Leftmost Maze Chest'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade', 2) or state.has('Hammer'))) From f85c620a4d1e7b02ee5e1800ba04825bb49f0e63 Mon Sep 17 00:00:00 2001 From: Sicilica Date: Tue, 14 Aug 2018 17:47:41 -0600 Subject: [PATCH 286/755] rework dungeon item shuffling --- BaseClasses.py | 59 ++++++++++++++++++++++--------------------- Fill.py | 25 ++++++++----------- ItemList.py | 11 -------- Settings.py | 68 ++++++++++++++++++++++++-------------------------- 4 files changed, 74 insertions(+), 89 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 51d486380..6873f95df 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -25,7 +25,7 @@ def __init__(self, settings): self.settings = settings self.__dict__.update(settings.__dict__) # rename a few attributes... - self.place_dungeon_items = not self.nodungeonitems + self.keysanity = self.shuffle_dungeon_items == 'keysanity' self.check_beatable_only = not self.all_reachable # group a few others self.tunic_colors = [self.kokiricolor, self.goroncolor, self.zoracolor] @@ -142,8 +142,26 @@ def get_location(self, location): def get_items(self): return [loc.item for loc in self.get_filled_locations()] + self.itempool - def get_dungeon_items(self): - itempool = [item for dungeon in self.dungeons for item in dungeon.all_items if item.key or self.place_dungeon_items] + # get a list of items that should stay in their proper dungeon + def get_restricted_dungeon_items(self): + if self.shuffle_dungeon_items == 'keysanity': + itempool = [] + elif self.shuffle_dungeon_items == 'leavekeys': + itempool = [item for dungeon in self.dungeons for item in dungeon.all_items if item.key] + else: + itempool = [item for dungeon in self.dungeons for item in dungeon.all_items] + for item in itempool: + item.world = self + return itempool + + # get a list of items that don't have to be in their proper dungeon + def get_unrestricted_dungeon_items(self): + if self.shuffle_dungeon_items == 'keysanity': + itempool = [item for dungeon in self.dungeons for item in dungeon.all_items] + elif self.shuffle_dungeon_items == 'leavekeys': + itempool = [item for dungeon in self.dungeons for item in dungeon.all_items if not item.key] + else: + itempool = [] for item in itempool: item.world = self return itempool @@ -201,26 +219,6 @@ def unlocks_new_location(self, item): def has_beaten_game(self, state): return state.has('Triforce') - @property - def option_identifier(self): - id_value = 0 - id_value_max = 1 - - def markbool(value): - nonlocal id_value, id_value_max - id_value += id_value_max * bool(value) - id_value_max *= 2 - def marksequence(options, value): - nonlocal id_value, id_value_max - id_value += id_value_max * options.index(value) - id_value_max *= len(options) - markbool(self.place_dungeon_items) - marksequence(['ganon', 'pedestal', 'dungeons'], self.bridge) - marksequence(['vanilla', 'simple'], self.shuffle) - markbool(self.check_beatable_only) - assert id_value_max <= 0xFFFFFFFF - return id_value - class CollectionState(object): @@ -509,10 +507,10 @@ def update_required_items(worlds): item_locations = [] if worlds[0].spoiler.playthrough: item_locations = [location for _,sphere in worlds[0].spoiler.playthrough.items() for location in sphere - if location.item.type != 'Event' and not location.event and (worlds[0].settings.keysanity or not location.item.key)] + if location.item.type != 'Event' and not location.event and (worlds[0].keysanity or not location.item.key)] else: item_locations = [location for world in worlds for location in world.get_filled_locations() - if location.item.advancement and location.item.type != 'Event' and not location.event and (worlds[0].settings.keysanity or not location.item.key)] + if location.item.advancement and location.item.type != 'Event' and not location.event and (worlds[0].keysanity or not location.item.key)] required_locations = [] for location in item_locations: @@ -564,10 +562,13 @@ def can_reach(self, state): return False def can_fill(self, item): - if self.world.keysanity: - return True - is_dungeon_item = item.key or item.map or item.compass - if is_dungeon_item: + if self.world.shuffle_dungeon_items == 'keysanity': + is_dungeon_restricted = False + elif self.world.shuffle_dungeon_items == 'leavekeys': + is_dungeon_restricted = item.key + else: + is_dungeon_restricted = item.key or item.map or item.compass + if is_dungeon_restricted: return self.dungeon and self.dungeon.is_dungeon_item(item) return True diff --git a/Fill.py b/Fill.py index e6169d87d..ededfd1ef 100644 --- a/Fill.py +++ b/Fill.py @@ -27,23 +27,20 @@ def distribute_items_restrictive(window, worlds, fill_locations=None): itempool.extend(songitempool) fill_locations.extend(song_locations) + # add unrestricted dungeon items to main item pool + itempool.extend([item for world in worlds for item in world.get_unrestricted_dungeon_items()]) + random.shuffle(itempool) # randomize item placement order. this ordering can greatly affect the location accessibility bias progitempool = [item for item in itempool if item.advancement] prioitempool = [item for item in itempool if not item.advancement and item.priority] restitempool = [item for item in itempool if not item.advancement and not item.priority] - # If not keysanity, we must place the dungeon items first to make sure - # that there is always a locations to place them. This could probably - # be replaced for more intelligent item placement, but will leave as is - # for now - if worlds[0].keysanity: - # add dungeon items to main pool - progitempool.extend([item for world in worlds for item in world.get_dungeon_items()]) - random.shuffle(progitempool) - else: - # place dungeon items - random.shuffle(fill_locations) - fill_dungeons_restrictive(window, worlds, fill_locations, itempool + songitempool) + # If there are dungeon items that are restricted to their original dungeon, + # we must place them first to make sure that there is always a location to + # place them. This could probably be replaced for more intelligent item + # placement, but will leave as is for now + random.shuffle(fill_locations) + fill_dungeons_restrictive(window, worlds, fill_locations, itempool + songitempool) # I have no idea why the locations are reversed but this is how it was, # so whatever. It can't hurt I guess @@ -87,13 +84,13 @@ def distribute_items_restrictive(window, worlds, fill_locations=None): raise FillError('Not all locations have an item.') -# Places all dungeon items into the worlds. To ensure there is room for them. +# Places restricted dungeon items into the worlds. To ensure there is room for them. # they are placed first so it will assume all other items are reachable def fill_dungeons_restrictive(window, worlds, shuffled_locations, itempool): # List of states with all non-key items all_state_base_list = CollectionState.get_states_with_items([world.state for world in worlds], itempool) # list of all dungeon items to be placed - dungeon_items = [item for world in worlds for item in world.get_dungeon_items()] + dungeon_items = [item for world in worlds for item in world.get_restricted_dungeon_items()] # shuffle this list to avoid placement bias random.shuffle(dungeon_items) diff --git a/ItemList.py b/ItemList.py index 5554d52fc..5cfac2a14 100644 --- a/ItemList.py +++ b/ItemList.py @@ -63,14 +63,6 @@ 'Bottle with Poe'] # 'Bottle with Blue Fire' normal_bottle_count = 3 -# notmapcompass = ['Rupees (5)'] * 20 -notmapcompass = ( - ['Bombs (5)'] * 4 - + ['Arrows (5)'] * 3 - + ['Deku Nuts (5)'] * 3 - + ['Rupees (5)'] * 7 - + ['Rupees (20)'] * 2 - + ['Rupees (50)']) # 10 items get removed for hard+ harditems = ( @@ -268,9 +260,6 @@ def generate_itempool(world): def get_pool_core(world): pool = [] placed_items = {} - - if not world.place_dungeon_items: - pool.extend(notmapcompass) if world.shuffle_kokiri_sword: pool.append('Kokiri Sword') diff --git a/Settings.py b/Settings.py index 26d859252..668cbf78b 100644 --- a/Settings.py +++ b/Settings.py @@ -686,46 +686,44 @@ def __init__(self, settings_dict): Plays spiritually best with Keysanity. ''' }), - Setting_Info('nodungeonitems', bool, 1, True, - { - 'help': '''\ - Remove Maps and Compasses from Itempool, replacing them by - empty slots. - ''', - 'action': 'store_true' - }, - { - 'text': 'Remove Maps and Compasses', - 'group': 'logic', - 'widget': 'Checkbutton', - 'default': 'checked', - 'tooltip':'''\ - Dungeons will have 2 more possible item - locations. This helps make some dungeons - more profitable, such as Ice Cavern and - Jabu Jabu's Belly. - ''' - }), - Setting_Info('keysanity', bool, 1, True, - { - 'help': '''\ - Small Keys, Boss Keys, Maps, and Compasses will be shuffled into the pool at - large, instead of just being restricted to their own dungeons. - ''', - 'action': 'store_true' + Setting_Info('shuffle_dungeon_items', str, 2, True, + { + 'default': 'leavekeys', + 'const': 'leavekeys', + 'nargs': '?', + 'choices': ['off', 'leavekeys', 'keysanity'], + 'help': '''\ + Dungeon items can appear outside of their + respective dungeon. + off: Don't use this feature + leavekeys: All items besides keys will be shuffled + keysanity: All items will be shuffled + ''' }, { - 'text': 'Keysanity', + 'text': 'Shuffle Dungeon Items', 'group': 'logic', - 'widget': 'Checkbutton', - 'default': 'unchecked', + 'widget': 'Combobox', + 'default': 'Maps and Compasses', + 'options': { + 'Off': 'off', + 'Maps and Compasses': 'leavekeys', + 'Full Keysanity': 'keysanity' + }, 'tooltip':'''\ - Dungeon items can appear outside of their - respective dungeon. Gerudo Fortress keys - are also shuffled. + Dungeon items will be shuffled into the pool + at large, instead of just being restricted to + their own dungeon. + + 'Maps and Compasses': Dungeons will have + 2 more possible item locations. This helps + make some dungeons more profitable, such as + Ice Cavern and Jabu Jabu's Belly. - A difficult mode since it it more likely - to need to enter a dungeon multiple times. + 'Full Keysanity': All items, including small and + boss keys, will be shuffled. A difficult mode, + since it is more likely to need to enter a dungeon + multiple times. ''' }), Setting_Info('tokensanity', str, 2, True, From 0d2355792acd4270ebaf3154022c83c3145c849f Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 15 Aug 2018 01:43:14 -0400 Subject: [PATCH 287/755] Changed prog_items to use Counter --- BaseClasses.py | 18 +++++++++--------- version.py | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 51d486380..d4cff8f2b 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -1,7 +1,7 @@ import copy from enum import Enum, unique import logging -from collections import OrderedDict +from collections import OrderedDict, Counter from version import __version__ as OoTRVersion @@ -225,7 +225,7 @@ def marksequence(options, value): class CollectionState(object): def __init__(self, parent): - self.prog_items = [] + self.prog_items = Counter() self.world = parent self.region_cache = {} self.location_cache = {} @@ -293,12 +293,10 @@ def can_reach(self, spot, resolution_hint=None): return correct_cache[spot] def has(self, item, count=1): - if count == 1: - return item in self.prog_items - return self.item_count(item) >= count + return self.prog_items[item] >= count def item_count(self, item): - return len([pritem for pritem in self.prog_items if pritem == item]) + return self.prog_items[item] def is_adult(self): return self.has('Master Sword') @@ -387,10 +385,10 @@ def collect(self, item): changed = False if item.name.startswith('Bottle'): if self.bottle_count() < 4: - self.prog_items.append(item.name) + self.prog_items[item.name] += 1 changed = True elif item.advancement: - self.prog_items.append(item.name) + self.prog_items[item.name] += 1 changed = True if changed: @@ -402,7 +400,9 @@ def remove(self, item): if to_remove is not None: try: - self.prog_items.remove(to_remove) + self.prog_items[item.name] -= 1 + if self.prog_items[item.name] <= 0: + del self.prog_items[item.name] except ValueError: return diff --git a/version.py b/version.py index 144dbfac6..dadfe3f27 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.22 f.LUM' +__version__ = '2.15.23 f.LUM' From 46ecbe539a996aa5b468ba60e4ee901b678c264d Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 15 Aug 2018 02:20:13 -0400 Subject: [PATCH 288/755] Simplified state.remove, Counters do not raise KeyError --- BaseClasses.py | 26 ++++++++++---------------- version.py | 2 +- 2 files changed, 11 insertions(+), 17 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index d4cff8f2b..af91159af 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -395,22 +395,16 @@ def collect(self, item): self.clear_cached_unreachable() def remove(self, item): - if item.advancement: - to_remove = item.name - - if to_remove is not None: - try: - self.prog_items[item.name] -= 1 - if self.prog_items[item.name] <= 0: - del self.prog_items[item.name] - except ValueError: - return - - # invalidate collected cache. unreachable locations are still unreachable - self.region_cache = {k: v for k, v in self.region_cache.items() if not v} - self.location_cache = {k: v for k, v in self.location_cache.items() if not v} - self.entrance_cache = {k: v for k, v in self.entrance_cache.items() if not v} - self.recursion_count = 0 + if self.prog_items[item.name] > 0: + self.prog_items[item.name] -= 1 + if self.prog_items[item.name] <= 0: + del self.prog_items[item.name] + + # invalidate collected cache. unreachable locations are still unreachable + self.region_cache = {k: v for k, v in self.region_cache.items() if not v} + self.location_cache = {k: v for k, v in self.location_cache.items() if not v} + self.entrance_cache = {k: v for k, v in self.entrance_cache.items() if not v} + self.recursion_count = 0 def __getattr__(self, item): if item.startswith('can_reach_'): diff --git a/version.py b/version.py index dadfe3f27..fedf27c1a 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.23 f.LUM' +__version__ = '2.15.24 f.LUM' From b2c4b1fb95657b9fe4f8a1e8b60393ae46f9e783 Mon Sep 17 00:00:00 2001 From: mzxrules Date: Wed, 15 Aug 2018 15:30:24 -0400 Subject: [PATCH 289/755] Add scene/room ids, changed to N0 addresses --- data/mqu.json | 1215 +++++++++++++++++++++++++++++-------------------- 1 file changed, 729 insertions(+), 486 deletions(-) diff --git a/data/mqu.json b/data/mqu.json index 016a994e7..e1d72c463 100644 --- a/data/mqu.json +++ b/data/mqu.json @@ -2,10 +2,11 @@ { "File": { "Name": "Scene 0", - "Start": "01F06000", - "End": "01F13A20", + "Start": "02499000", + "End": "024A6A10", "RemapStart": null }, + "Id": 0, "TActors": [ "01FF 00FF 002E FE39 0190 01C7 6000 003F", "06FF 05FF 002E FA01 FD08 042E 4000 01C9", @@ -25,10 +26,11 @@ { "File": { "Name": "Scene 0, Room 0", - "Start": "01F14000", - "End": "01F29350", + "Start": "024A7000", + "End": "024BC2F0", "RemapStart": null }, + "Id": 0, "Objects": [ "0036", "001E", @@ -84,10 +86,11 @@ { "File": { "Name": "Scene 0, Room 1", - "Start": "01F2A000", - "End": "01F2E200", + "Start": "024BD000", + "End": "024C1150", "RemapStart": null }, + "Id": 1, "Objects": [ "0036", "001E", @@ -118,10 +121,11 @@ { "File": { "Name": "Scene 0, Room 2", - "Start": "01F2F000", - "End": "01F34F30", + "Start": "024C2000", + "End": "024C7E30", "RemapStart": null }, + "Id": 2, "Objects": [ "0036", "001E", @@ -170,10 +174,11 @@ { "File": { "Name": "Scene 0, Room 3", - "Start": "01F35000", - "End": "01F491B0", + "Start": "024C8000", + "End": "024DC1A0", "RemapStart": null }, + "Id": 3, "Objects": [ "0036", "001E", @@ -217,10 +222,11 @@ { "File": { "Name": "Scene 0, Room 4", - "Start": "01F4A000", - "End": "01F4EC30", + "Start": "024DD000", + "End": "024E1BD0", "RemapStart": null }, + "Id": 4, "Objects": [ "0036", "001E", @@ -251,10 +257,11 @@ { "File": { "Name": "Scene 0, Room 5", - "Start": "01F4F000", - "End": "01F57390", + "Start": "024E2000", + "End": "024EA320", "RemapStart": null }, + "Id": 5, "Objects": [ "0036", "001E", @@ -295,10 +302,11 @@ { "File": { "Name": "Scene 0, Room 6", - "Start": "01F58000", - "End": "01F5CF00", + "Start": "024EB000", + "End": "024EFEC0", "RemapStart": null }, + "Id": 6, "Objects": [ "0036", "001E", @@ -330,10 +338,11 @@ { "File": { "Name": "Scene 0, Room 7", - "Start": "01F5D000", - "End": "01F65AA0", + "Start": "024F0000", + "End": "024F8910", "RemapStart": null }, + "Id": 7, "Objects": [ "0036", "001E", @@ -392,10 +401,11 @@ { "File": { "Name": "Scene 0, Room 8", - "Start": "01F66000", - "End": "01F66D90", + "Start": "024F9000", + "End": "024F9D00", "RemapStart": null }, + "Id": 8, "Objects": [ "0036", "001E", @@ -425,10 +435,11 @@ { "File": { "Name": "Scene 0, Room 9", - "Start": "01F67000", - "End": "01F708A0", + "Start": "024FA000", + "End": "025038A0", "RemapStart": null }, + "Id": 9, "Objects": [ "0036", "001E", @@ -459,10 +470,11 @@ { "File": { "Name": "Scene 0, Room 10", - "Start": "01F71000", - "End": "01F75E00", + "Start": "02504000", + "End": "02508D80", "RemapStart": null }, + "Id": 10, "Objects": [ "0036", "001E", @@ -502,10 +514,11 @@ { "File": { "Name": "Scene 0, Room 11", - "Start": "01F76000", - "End": "01F7D170", + "Start": "02509000", + "End": "02510170", "RemapStart": null }, + "Id": 11, "Objects": [ "0036", "001E", @@ -524,10 +537,11 @@ { "File": { "Name": "Scene 1", - "Start": "01F7E000", - "End": "01F93140", + "Start": "01F12000", + "End": "01F27140", "RemapStart": null }, + "Id": 1, "TActors": [ "00FF 01FF 0023 0474 0000 FEC0 4000 003F", "00FF 09FF 0023 0474 0213 FEC0 4000 003F", @@ -558,10 +572,11 @@ { "File": { "Name": "Scene 1, Room 0", - "Start": "01F94000", - "End": "01FAF8A0", + "Start": "01F28000", + "End": "01F438A0", "RemapStart": null }, + "Id": 0, "Objects": [ "002B", "018A", @@ -615,10 +630,11 @@ { "File": { "Name": "Scene 1, Room 1", - "Start": "01FB0000", - "End": "01FB9B70", + "Start": "01F44000", + "End": "01F4DB00", "RemapStart": null }, + "Id": 1, "Objects": [ "002B", "018A", @@ -669,10 +685,11 @@ { "File": { "Name": "Scene 1, Room 2", - "Start": "01FBA000", - "End": "01FC1EC0", + "Start": "01F4E000", + "End": "01F55DA0", "RemapStart": null }, + "Id": 2, "Objects": [ "002B", "018A", @@ -735,10 +752,11 @@ { "File": { "Name": "Scene 1, Room 3", - "Start": "01FC2000", - "End": "01FCFE70", + "Start": "01F56000", + "End": "01F63DC0", "RemapStart": null }, + "Id": 3, "Objects": [ "002B", "001B", @@ -776,10 +794,11 @@ { "File": { "Name": "Scene 1, Room 4", - "Start": "01FD0000", - "End": "01FD9960", + "Start": "01F64000", + "End": "01F6D850", "RemapStart": null }, + "Id": 4, "Objects": [ "002B", "0031", @@ -826,10 +845,11 @@ { "File": { "Name": "Scene 1, Room 5", - "Start": "01FDA000", - "End": "01FDFEC0", + "Start": "01F6E000", + "End": "01F73EE0", "RemapStart": null }, + "Id": 5, "Objects": [ "002B", "0031", @@ -854,10 +874,11 @@ { "File": { "Name": "Scene 1, Room 6", - "Start": "01FE0000", - "End": "01FE24B0", + "Start": "01F74000", + "End": "01F76400", "RemapStart": null }, + "Id": 6, "Objects": [ "002B", "0024", @@ -885,10 +906,11 @@ { "File": { "Name": "Scene 1, Room 7", - "Start": "01FE3000", - "End": "01FEA700", + "Start": "01F77000", + "End": "01F7E6D0", "RemapStart": null }, + "Id": 7, "Objects": [ "002B", "001F", @@ -918,10 +940,11 @@ { "File": { "Name": "Scene 1, Room 8", - "Start": "01FEB000", - "End": "01FF45A0", + "Start": "01F7F000", + "End": "01F88400", "RemapStart": null }, + "Id": 8, "Objects": [ "002B", "001F", @@ -974,10 +997,11 @@ { "File": { "Name": "Scene 1, Room 9", - "Start": "01FF5000", - "End": "02000530", + "Start": "01F89000", + "End": "01F94550", "RemapStart": null }, + "Id": 9, "Objects": [ "002B", "018A", @@ -1015,10 +1039,11 @@ { "File": { "Name": "Scene 1, Room 10", - "Start": "02001000", - "End": "02008F10", + "Start": "01F95000", + "End": "01F9CE50", "RemapStart": null }, + "Id": 10, "Objects": [ "002B", "018A", @@ -1062,10 +1087,11 @@ { "File": { "Name": "Scene 1, Room 11", - "Start": "02009000", - "End": "0200B030", + "Start": "01F9D000", + "End": "01F9F080", "RemapStart": null }, + "Id": 11, "Objects": [ "002B", "0168" @@ -1077,10 +1103,11 @@ { "File": { "Name": "Scene 1, Room 12", - "Start": "0200C000", - "End": "02014780", + "Start": "01FA0000", + "End": "01FA8730", "RemapStart": null }, + "Id": 12, "Objects": [ "002B", "018A", @@ -1116,10 +1143,11 @@ { "File": { "Name": "Scene 1, Room 13", - "Start": "02015000", - "End": "020174D0", + "Start": "01FA9000", + "End": "01FAB480", "RemapStart": null }, + "Id": 13, "Objects": [ "002B", "00A4", @@ -1141,10 +1169,11 @@ { "File": { "Name": "Scene 1, Room 14", - "Start": "02018000", - "End": "0201A4D0", + "Start": "01FAC000", + "End": "01FAE490", "RemapStart": null }, + "Id": 14, "Objects": [ "002B", "012B", @@ -1164,10 +1193,11 @@ { "File": { "Name": "Scene 1, Room 15", - "Start": "0201B000", - "End": "0201D930", + "Start": "01FAF000", + "End": "01FB1850", "RemapStart": null }, + "Id": 15, "Objects": [ "002B", "0190", @@ -1201,10 +1231,11 @@ { "File": { "Name": "Scene 1, Room 16", - "Start": "0201E000", - "End": "02023560", + "Start": "01FB2000", + "End": "01FB7550", "RemapStart": null }, + "Id": 16, "Objects": [ "002B", "001F", @@ -1223,10 +1254,11 @@ { "File": { "Name": "Scene 2", - "Start": "02024000", - "End": "020397E0", + "Start": "0273E000", + "End": "027537C0", "RemapStart": null }, + "Id": 2, "TActors": [ "0FFF 05FF 002E 0550 FF10 F7B9 0000 0094", "01FF 00FF 002E 0000 FF10 FB99 0000 0095", @@ -1256,10 +1288,11 @@ { "File": { "Name": "Scene 2, Room 0", - "Start": "0203A000", - "End": "0203E140", + "Start": "02754000", + "End": "02758070", "RemapStart": null }, + "Id": 0, "Objects": [ "0096", "018B", @@ -1297,10 +1330,11 @@ { "File": { "Name": "Scene 2, Room 1", - "Start": "0203F000", - "End": "02044FC0", + "Start": "02759000", + "End": "0275EE90", "RemapStart": null }, + "Id": 1, "Objects": [ "0096", "018B", @@ -1347,10 +1381,11 @@ { "File": { "Name": "Scene 2, Room 2", - "Start": "02045000", - "End": "0204E240", + "Start": "0275F000", + "End": "027681D0", "RemapStart": null }, + "Id": 2, "Objects": [ "0096", "00A3", @@ -1387,10 +1422,11 @@ { "File": { "Name": "Scene 2, Room 3", - "Start": "0204F000", - "End": "02056260", + "Start": "02769000", + "End": "02770160", "RemapStart": null }, + "Id": 3, "Objects": [ "0096", "00A3", @@ -1436,10 +1472,11 @@ { "File": { "Name": "Scene 2, Room 4", - "Start": "02057000", - "End": "0205B100", + "Start": "02771000", + "End": "02775050", "RemapStart": null }, + "Id": 4, "Objects": [ "0096", "012B", @@ -1472,10 +1509,11 @@ { "File": { "Name": "Scene 2, Room 5", - "Start": "0205C000", - "End": "02062090", + "Start": "02776000", + "End": "0277C020", "RemapStart": null }, + "Id": 5, "Objects": [ "0096", "00D4", @@ -1509,10 +1547,11 @@ { "File": { "Name": "Scene 2, Room 6", - "Start": "02063000", - "End": "02067240", + "Start": "0277D000", + "End": "02781240", "RemapStart": null }, + "Id": 6, "Objects": [ "0096", "00A3", @@ -1541,10 +1580,11 @@ { "File": { "Name": "Scene 2, Room 7", - "Start": "02068000", - "End": "0206B4D0", + "Start": "02782000", + "End": "02785520", "RemapStart": null }, + "Id": 7, "Objects": [ "0096", "0022", @@ -1574,10 +1614,11 @@ { "File": { "Name": "Scene 2, Room 8", - "Start": "0206C000", - "End": "0206F840", + "Start": "02786000", + "End": "02789880", "RemapStart": null }, + "Id": 8, "Objects": [ "0096", "00A3", @@ -1592,10 +1633,11 @@ { "File": { "Name": "Scene 2, Room 9", - "Start": "02070000", - "End": "02073C30", + "Start": "0278A000", + "End": "0278DC70", "RemapStart": null }, + "Id": 9, "Objects": [ "0096", "00A3", @@ -1610,10 +1652,11 @@ { "File": { "Name": "Scene 2, Room 10", - "Start": "02074000", - "End": "02077820", + "Start": "0278E000", + "End": "02791830", "RemapStart": null }, + "Id": 10, "Objects": [ "0096", "00A3", @@ -1627,10 +1670,11 @@ { "File": { "Name": "Scene 2, Room 11", - "Start": "02078000", - "End": "0207B9F0", + "Start": "02792000", + "End": "02795800", "RemapStart": null }, + "Id": 11, "Objects": [ "0096", "00A3", @@ -1683,10 +1727,11 @@ { "File": { "Name": "Scene 2, Room 12", - "Start": "0207C000", - "End": "0207FCE0", + "Start": "02796000", + "End": "02799CD0", "RemapStart": null }, + "Id": 12, "Objects": [ "0096", "00A3", @@ -1718,10 +1763,11 @@ { "File": { "Name": "Scene 2, Room 13", - "Start": "02080000", - "End": "02082B80", + "Start": "0279A000", + "End": "0279CB50", "RemapStart": null }, + "Id": 13, "Objects": [ "0096", "00A3", @@ -1749,10 +1795,11 @@ { "File": { "Name": "Scene 2, Room 14", - "Start": "02083000", - "End": "020891D0", + "Start": "0279D000", + "End": "027A31E0", "RemapStart": null }, + "Id": 14, "Objects": [ "0096", "000E", @@ -1791,10 +1838,11 @@ { "File": { "Name": "Scene 2, Room 15", - "Start": "0208A000", - "End": "0208C6E0", + "Start": "027A4000", + "End": "027A66E0", "RemapStart": null }, + "Id": 15, "Objects": [ "0096", "00A3", @@ -1812,10 +1860,11 @@ { "File": { "Name": "Scene 3", - "Start": "0208D000", - "End": "020A2F90", + "Start": "023CF000", + "End": "023E4F90", "RemapStart": null }, + "Id": 3, "TActors": [ "01FF 00FF 0009 0077 0167 003C 0000 003F", "04FF 02FF 0009 0077 01D3 F62C 0000 003F", @@ -1852,10 +1901,11 @@ { "File": { "Name": "Scene 3, Room 0", - "Start": "020A3000", - "End": "020B0B90", + "Start": "023E5000", + "End": "023F2BC0", "RemapStart": null }, + "Id": 0, "Objects": [ "0073", "0072", @@ -1879,10 +1929,11 @@ { "File": { "Name": "Scene 3, Room 1", - "Start": "020B1000", - "End": "020B6B70", + "Start": "023F3000", + "End": "023F8B60", "RemapStart": null }, + "Id": 1, "Objects": [ "0073", "0072", @@ -1903,10 +1954,11 @@ { "File": { "Name": "Scene 3, Room 2", - "Start": "020B7000", - "End": "020C6980", + "Start": "023F9000", + "End": "02408A30", "RemapStart": null }, + "Id": 2, "Objects": [ "0073", "0072", @@ -1949,10 +2001,11 @@ { "File": { "Name": "Scene 3, Room 3", - "Start": "020C7000", - "End": "020CA9E0", + "Start": "02409000", + "End": "0240CA10", "RemapStart": null }, + "Id": 3, "Objects": [ "0073", "0072", @@ -1971,10 +2024,11 @@ { "File": { "Name": "Scene 3, Room 4", - "Start": "020CB000", - "End": "020CE2C0", + "Start": "0240D000", + "End": "024102B0", "RemapStart": null }, + "Id": 4, "Objects": [ "0073", "0072", @@ -1993,10 +2047,11 @@ { "File": { "Name": "Scene 3, Room 5", - "Start": "020CF000", - "End": "020D25D0", + "Start": "02411000", + "End": "024145E0", "RemapStart": null }, + "Id": 5, "Objects": [ "0073", "0072", @@ -2018,10 +2073,11 @@ { "File": { "Name": "Scene 3, Room 6", - "Start": "020D3000", - "End": "020DC430", + "Start": "02415000", + "End": "0241E4C0", "RemapStart": null }, + "Id": 6, "Objects": [ "0073", "0072", @@ -2052,10 +2108,11 @@ { "File": { "Name": "Scene 3, Room 7", - "Start": "020DD000", - "End": "020EFFE0", + "Start": "0241F000", + "End": "02432000", "RemapStart": null }, + "Id": 7, "Objects": [ "0073", "0072", @@ -2096,10 +2153,11 @@ { "File": { "Name": "Scene 3, Room 8", - "Start": "020F0000", - "End": "02107AB0", + "Start": "02432000", + "End": "02449B70", "RemapStart": null }, + "Id": 8, "Objects": [ "0073", "0072", @@ -2133,10 +2191,11 @@ { "File": { "Name": "Scene 3, Room 9", - "Start": "02108000", - "End": "02112160", + "Start": "0244A000", + "End": "02454190", "RemapStart": null }, + "Id": 9, "Objects": [ "0073", "0072", @@ -2161,10 +2220,11 @@ { "File": { "Name": "Scene 3, Room 10", - "Start": "02113000", - "End": "021183E0", + "Start": "02455000", + "End": "0245A3E0", "RemapStart": null }, + "Id": 10, "Objects": [ "0073", "0072", @@ -2185,10 +2245,11 @@ { "File": { "Name": "Scene 3, Room 11", - "Start": "02119000", - "End": "02123BE0", + "Start": "0245B000", + "End": "02465BD0", "RemapStart": null }, + "Id": 11, "Objects": [ "0073", "0072", @@ -2230,10 +2291,11 @@ { "File": { "Name": "Scene 3, Room 12", - "Start": "02124000", - "End": "0212C3E0", + "Start": "02466000", + "End": "0246E3E0", "RemapStart": null }, + "Id": 12, "Objects": [ "0073", "0072", @@ -2257,10 +2319,11 @@ { "File": { "Name": "Scene 3, Room 13", - "Start": "0212D000", - "End": "02135AB0", + "Start": "0246F000", + "End": "02477AB0", "RemapStart": null }, + "Id": 13, "Objects": [ "0073", "0072", @@ -2286,10 +2349,11 @@ { "File": { "Name": "Scene 3, Room 14", - "Start": "02136000", - "End": "0213BB70", + "Start": "02478000", + "End": "0247DBB0", "RemapStart": null }, + "Id": 14, "Objects": [ "0073", "0072", @@ -2317,10 +2381,11 @@ { "File": { "Name": "Scene 3, Room 15", - "Start": "0213C000", - "End": "0213E6E0", + "Start": "0247E000", + "End": "02480690", "RemapStart": null }, + "Id": 15, "Objects": [ "0073", "0072", @@ -2347,10 +2412,11 @@ { "File": { "Name": "Scene 3, Room 16", - "Start": "0213F000", - "End": "02143FA0", + "Start": "02481000", + "End": "02485FA0", "RemapStart": null }, + "Id": 16, "Objects": [ "0073", "0072", @@ -2374,10 +2440,11 @@ { "File": { "Name": "Scene 3, Room 17", - "Start": "02144000", - "End": "0214D0F0", + "Start": "02486000", + "End": "0248F150", "RemapStart": null }, + "Id": 17, "Objects": [ "0073", "0072", @@ -2409,10 +2476,11 @@ { "File": { "Name": "Scene 3, Room 18", - "Start": "0214E000", - "End": "0214F330", + "Start": "02490000", + "End": "02491340", "RemapStart": null }, + "Id": 18, "Objects": [ "0073", "0072", @@ -2431,10 +2499,11 @@ { "File": { "Name": "Scene 3, Room 19", - "Start": "02150000", - "End": "02150500", + "Start": "02492000", + "End": "02492510", "RemapStart": null }, + "Id": 19, "Objects": [ "0073", "0072", @@ -2457,10 +2526,11 @@ { "File": { "Name": "Scene 3, Room 20", - "Start": "02151000", - "End": "02152300", + "Start": "02493000", + "End": "02494300", "RemapStart": null }, + "Id": 20, "Objects": [ "0073", "0072", @@ -2483,10 +2553,11 @@ { "File": { "Name": "Scene 3, Room 21", - "Start": "02153000", - "End": "02154770", + "Start": "02495000", + "End": "02496780", "RemapStart": null }, + "Id": 21, "Objects": [ "0073", "0072", @@ -2506,10 +2577,11 @@ { "File": { "Name": "Scene 3, Room 22", - "Start": "02155000", - "End": "02156DE0", + "Start": "02497000", + "End": "02498DE0", "RemapStart": null }, + "Id": 22, "Objects": [ "0073", "0072", @@ -2527,10 +2599,11 @@ { "File": { "Name": "Scene 4", - "Start": "02157000", - "End": "021717D0", + "Start": "022D8000", + "End": "022F2970", "RemapStart": null }, + "Id": 4, "TActors": [ "05FF 04FF 0023 0820 0992 FD80 4000 00BF", "0AFF 02FF 0023 FC04 07C6 0000 0000 00BF", @@ -2632,10 +2705,11 @@ { "File": { "Name": "Scene 4, Room 0", - "Start": "02172000", - "End": "021792F0", + "Start": "022F3000", + "End": "022FA2C0", "RemapStart": null }, + "Id": 0, "Objects": [ "002C", "000E", @@ -2659,10 +2733,11 @@ { "File": { "Name": "Scene 4, Room 1", - "Start": "0217A000", - "End": "02186930", + "Start": "022FB000", + "End": "023079E0", "RemapStart": null }, + "Id": 1, "Objects": [ "002C", "011C", @@ -2697,10 +2772,11 @@ { "File": { "Name": "Scene 4, Room 2", - "Start": "02187000", - "End": "02197030", + "Start": "02308000", + "End": "02317FD0", "RemapStart": null }, + "Id": 2, "Objects": [ "002C", "000E", @@ -2737,10 +2813,11 @@ { "File": { "Name": "Scene 4, Room 3", - "Start": "02198000", - "End": "0219A4D0", + "Start": "02318000", + "End": "0231A4E0", "RemapStart": null }, + "Id": 3, "Objects": [ "002C", "00A4", @@ -2756,10 +2833,11 @@ { "File": { "Name": "Scene 4, Room 4", - "Start": "0219B000", - "End": "021A28F0", + "Start": "0231B000", + "End": "02322890", "RemapStart": null }, + "Id": 4, "Objects": [ "002C", "000E", @@ -2794,10 +2872,11 @@ { "File": { "Name": "Scene 4, Room 5", - "Start": "021A3000", - "End": "021AD2E0", + "Start": "02323000", + "End": "0232D230", "RemapStart": null }, + "Id": 5, "Objects": [ "002C", "000E", @@ -2849,10 +2928,11 @@ { "File": { "Name": "Scene 4, Room 6", - "Start": "021AE000", - "End": "021B4F90", + "Start": "0232E000", + "End": "02334FA0", "RemapStart": null }, + "Id": 6, "Objects": [ "002C", "011C", @@ -2871,10 +2951,11 @@ { "File": { "Name": "Scene 4, Room 7", - "Start": "021B5000", - "End": "021B8A50", + "Start": "02335000", + "End": "023389E0", "RemapStart": null }, + "Id": 7, "Objects": [ "002C", "0025", @@ -2895,10 +2976,11 @@ { "File": { "Name": "Scene 4, Room 8", - "Start": "021B9000", - "End": "021C2AE0", + "Start": "02339000", + "End": "02342AC0", "RemapStart": null }, + "Id": 8, "Objects": [ "002C", "011C", @@ -2921,10 +3003,11 @@ { "File": { "Name": "Scene 4, Room 9", - "Start": "021C3000", - "End": "021CB770", + "Start": "02343000", + "End": "0234B770", "RemapStart": null }, + "Id": 9, "Objects": [ "002C", "018E" @@ -2939,10 +3022,11 @@ { "File": { "Name": "Scene 4, Room 10", - "Start": "021CC000", - "End": "021E4420", + "Start": "0234C000", + "End": "023644A0", "RemapStart": null }, + "Id": 10, "Objects": [ "002C", "000E", @@ -3016,10 +3100,11 @@ { "File": { "Name": "Scene 4, Room 11", - "Start": "021E5000", - "End": "021E87E0", + "Start": "02365000", + "End": "023687C0", "RemapStart": null }, + "Id": 11, "Objects": [ "002C", "00A4", @@ -3046,10 +3131,11 @@ { "File": { "Name": "Scene 4, Room 12", - "Start": "021E9000", - "End": "021EBB70", + "Start": "02369000", + "End": "0236BB80", "RemapStart": null }, + "Id": 12, "Objects": [ "002C", "0025", @@ -3066,10 +3152,11 @@ { "File": { "Name": "Scene 4, Room 13", - "Start": "021EC000", - "End": "021F8B90", + "Start": "0236C000", + "End": "02378BE0", "RemapStart": null }, + "Id": 13, "Objects": [ "002C", "00A4", @@ -3097,10 +3184,11 @@ { "File": { "Name": "Scene 4, Room 14", - "Start": "021F9000", - "End": "021FB200", + "Start": "02379000", + "End": "0237B260", "RemapStart": null }, + "Id": 14, "Objects": [ "002C", "00A4", @@ -3118,10 +3206,11 @@ { "File": { "Name": "Scene 4, Room 15", - "Start": "021FC000", - "End": "021FD190", + "Start": "0237C000", + "End": "0237D1D0", "RemapStart": null }, + "Id": 15, "Objects": [ "002C", "0032", @@ -3137,10 +3226,11 @@ { "File": { "Name": "Scene 4, Room 16", - "Start": "021FE000", - "End": "022099E0", + "Start": "0237E000", + "End": "02389970", "RemapStart": null }, + "Id": 16, "Objects": [ "002C", "00A4", @@ -3172,10 +3262,11 @@ { "File": { "Name": "Scene 4, Room 17", - "Start": "0220A000", - "End": "02213170", + "Start": "0238A000", + "End": "02393140", "RemapStart": null }, + "Id": 17, "Objects": [ "002C", "00C9", @@ -3201,10 +3292,11 @@ { "File": { "Name": "Scene 4, Room 18", - "Start": "02214000", - "End": "02217C00", + "Start": "02394000", + "End": "02397B80", "RemapStart": null }, + "Id": 18, "Objects": [ "002C", "005F", @@ -3233,10 +3325,11 @@ { "File": { "Name": "Scene 4, Room 19", - "Start": "02218000", - "End": "0221C230", + "Start": "02398000", + "End": "0239C1E0", "RemapStart": null }, + "Id": 19, "Objects": [ "002C", "00A4", @@ -3266,10 +3359,11 @@ { "File": { "Name": "Scene 4, Room 20", - "Start": "0221D000", - "End": "02223D10", + "Start": "0239D000", + "End": "023A3D10", "RemapStart": null }, + "Id": 20, "Objects": [ "002C", "000E", @@ -3290,10 +3384,11 @@ { "File": { "Name": "Scene 4, Room 21", - "Start": "02224000", - "End": "0222C480", + "Start": "023A4000", + "End": "023AC4C0", "RemapStart": null }, + "Id": 21, "Objects": [ "002C", "00A4", @@ -3311,10 +3406,11 @@ { "File": { "Name": "Scene 4, Room 22", - "Start": "0222D000", - "End": "02233AF0", + "Start": "023AD000", + "End": "023B3B00", "RemapStart": null }, + "Id": 22, "Objects": [ "002C", "000E", @@ -3333,10 +3429,11 @@ { "File": { "Name": "Scene 4, Room 23", - "Start": "02234000", - "End": "0223AD20", + "Start": "023B4000", + "End": "023BAD20", "RemapStart": null }, + "Id": 23, "Objects": [ "002C", "0025", @@ -3360,10 +3457,11 @@ { "File": { "Name": "Scene 4, Room 24", - "Start": "0223B000", - "End": "02240540", + "Start": "023BB000", + "End": "023C0540", "RemapStart": null }, + "Id": 24, "Objects": [ "002C", "009E", @@ -3379,10 +3477,11 @@ { "File": { "Name": "Scene 4, Room 25", - "Start": "02241000", - "End": "02247AE0", + "Start": "023C1000", + "End": "023C7AE0", "RemapStart": null }, + "Id": 25, "Objects": [ "002C", "0024", @@ -3399,10 +3498,11 @@ { "File": { "Name": "Scene 4, Room 26", - "Start": "02248000", - "End": "0224E8A0", + "Start": "023C8000", + "End": "023CE8A0", "RemapStart": null }, + "Id": 26, "Objects": [ "002C", "000E", @@ -3423,10 +3523,11 @@ { "File": { "Name": "Scene 5", - "Start": "0224F000", - "End": "02264C30", + "Start": "025B8000", + "End": "025CDCF0", "RemapStart": null }, + "Id": 5, "TActors": [ "00FF 11FF 0023 0294 0000 0000 0000 01BF", "04FF 00FF 0023 0294 01CC FE98 0000 01BF", @@ -3505,10 +3606,11 @@ { "File": { "Name": "Scene 5, Room 0", - "Start": "02265000", - "End": "0227AC30", + "Start": "025CE000", + "End": "025E3C80", "RemapStart": null }, + "Id": 0, "Objects": [ "0059", "00A4", @@ -3547,10 +3649,11 @@ { "File": { "Name": "Scene 5, Room 1", - "Start": "0227B000", - "End": "022851D0", + "Start": "025E4000", + "End": "025EE160", "RemapStart": null }, + "Id": 1, "Objects": [ "0059", "00A4", @@ -3579,10 +3682,11 @@ { "File": { "Name": "Scene 5, Room 2", - "Start": "02286000", - "End": "0228BC90", + "Start": "025EF000", + "End": "025F4B90", "RemapStart": null }, + "Id": 2, "Objects": [ "0059", "00A4", @@ -3627,10 +3731,11 @@ { "File": { "Name": "Scene 5, Room 3", - "Start": "0228C000", - "End": "022927C0", + "Start": "025F5000", + "End": "025FB710", "RemapStart": null }, + "Id": 3, "Objects": [ "0059", "00A4", @@ -3674,10 +3779,11 @@ { "File": { "Name": "Scene 5, Room 4", - "Start": "02293000", - "End": "02299020", + "Start": "025FC000", + "End": "02601FE0", "RemapStart": null }, + "Id": 4, "Objects": [ "0059", "00A4", @@ -3707,10 +3813,11 @@ { "File": { "Name": "Scene 5, Room 5", - "Start": "0229A000", - "End": "022A4640", + "Start": "02602000", + "End": "0260C5F0", "RemapStart": null }, + "Id": 5, "Objects": [ "0059", "013B", @@ -3750,10 +3857,11 @@ { "File": { "Name": "Scene 5, Room 6", - "Start": "022A5000", - "End": "022B0300", + "Start": "0260D000", + "End": "026182C0", "RemapStart": null }, + "Id": 6, "Objects": [ "0059", "0125", @@ -3784,10 +3892,11 @@ { "File": { "Name": "Scene 5, Room 7", - "Start": "022B1000", - "End": "022B6560", + "Start": "02619000", + "End": "0261E550", "RemapStart": null }, + "Id": 7, "Objects": [ "0059", "0125", @@ -3814,10 +3923,11 @@ { "File": { "Name": "Scene 5, Room 8", - "Start": "022B7000", - "End": "022C4D80", + "Start": "0261F000", + "End": "0262CCD0", "RemapStart": null }, + "Id": 8, "Objects": [ "0059", "0170", @@ -3852,10 +3962,11 @@ { "File": { "Name": "Scene 5, Room 9", - "Start": "022C5000", - "End": "022CD0B0", + "Start": "0262D000", + "End": "02634FE0", "RemapStart": null }, + "Id": 9, "Objects": [ "0059", "013A", @@ -3888,10 +3999,11 @@ { "File": { "Name": "Scene 5, Room 10", - "Start": "022CE000", - "End": "022D4070", + "Start": "02635000", + "End": "0263AFB0", "RemapStart": null }, + "Id": 10, "Objects": [ "0059", "0170", @@ -3927,10 +4039,11 @@ { "File": { "Name": "Scene 5, Room 11", - "Start": "022D5000", - "End": "022D9A20", + "Start": "0263B000", + "End": "0263F9B0", "RemapStart": null }, + "Id": 11, "Objects": [ "0059", "013B", @@ -3961,10 +4074,11 @@ { "File": { "Name": "Scene 5, Room 12", - "Start": "022DA000", - "End": "022E0E30", + "Start": "02640000", + "End": "02646D90", "RemapStart": null }, + "Id": 12, "Objects": [ "0059", "013B", @@ -4004,10 +4118,11 @@ { "File": { "Name": "Scene 5, Room 13", - "Start": "022E1000", - "End": "022E1A00", + "Start": "02647000", + "End": "02647A00", "RemapStart": null }, + "Id": 13, "Objects": [ "0059", "0125", @@ -4022,10 +4137,11 @@ { "File": { "Name": "Scene 5, Room 14", - "Start": "022E2000", - "End": "022E8E80", + "Start": "02648000", + "End": "0264EE60", "RemapStart": null }, + "Id": 14, "Objects": [ "0059", "011C", @@ -4055,10 +4171,11 @@ { "File": { "Name": "Scene 5, Room 15", - "Start": "022E9000", - "End": "022F0470", + "Start": "0264F000", + "End": "02656430", "RemapStart": null }, + "Id": 15, "Objects": [ "0059", "013B", @@ -4089,10 +4206,11 @@ { "File": { "Name": "Scene 5, Room 16", - "Start": "022F1000", - "End": "022F4B30", + "Start": "02657000", + "End": "0265AAD0", "RemapStart": null }, + "Id": 16, "Objects": [ "0059", "000E", @@ -4116,10 +4234,11 @@ { "File": { "Name": "Scene 5, Room 17", - "Start": "022F5000", - "End": "022FDAB0", + "Start": "0265B000", + "End": "02663A20", "RemapStart": null }, + "Id": 17, "Objects": [ "0059", "000E", @@ -4156,10 +4275,11 @@ { "File": { "Name": "Scene 5, Room 18", - "Start": "022FE000", - "End": "02302100", + "Start": "02664000", + "End": "026680C0", "RemapStart": null }, + "Id": 18, "Objects": [ "0059", "000E", @@ -4183,10 +4303,11 @@ { "File": { "Name": "Scene 5, Room 19", - "Start": "02303000", - "End": "02306930", + "Start": "02669000", + "End": "0266C930", "RemapStart": null }, + "Id": 19, "Objects": [ "0059", "000E", @@ -4205,10 +4326,11 @@ { "File": { "Name": "Scene 5, Room 20", - "Start": "02307000", - "End": "0230D840", + "Start": "0266D000", + "End": "02673740", "RemapStart": null }, + "Id": 20, "Objects": [ "0059", "000E", @@ -4247,10 +4369,11 @@ { "File": { "Name": "Scene 5, Room 21", - "Start": "0230E000", - "End": "023154A0", + "Start": "02674000", + "End": "0267B4A0", "RemapStart": null }, + "Id": 21, "Objects": [ "0059", "013B", @@ -4284,10 +4407,11 @@ { "File": { "Name": "Scene 5, Room 22", - "Start": "02316000", - "End": "0231F0F0", + "Start": "0267C000", + "End": "026850F0", "RemapStart": null }, + "Id": 22, "Objects": [ "0059", "013B", @@ -4307,10 +4431,11 @@ { "File": { "Name": "Scene 6", - "Start": "02320000", - "End": "02339B20", + "Start": "02ADE000", + "End": "02AF7B40", "RemapStart": null }, + "Id": 6, "TActors": [ "19FF 18FF 002E 0140 06C5 FCC2 4000 00B5", "1AFF 19FF 002E FF38 06C5 FCC2 4000 0093", @@ -4492,10 +4617,11 @@ { "File": { "Name": "Scene 6, Room 0", - "Start": "0233A000", - "End": "0234AFF0", + "Start": "02AF8000", + "End": "02B08F40", "RemapStart": null }, + "Id": 0, "Objects": [ "00F1", "016D", @@ -4541,10 +4667,11 @@ { "File": { "Name": "Scene 6, Room 1", - "Start": "0234B000", - "End": "02354350", + "Start": "02B09000", + "End": "02B12300", "RemapStart": null }, + "Id": 1, "Objects": [ "00F1", "016D", @@ -4578,10 +4705,11 @@ { "File": { "Name": "Scene 6, Room 2", - "Start": "02355000", - "End": "0235ABB0", + "Start": "02B13000", + "End": "02B18C10", "RemapStart": null }, + "Id": 2, "Objects": [ "00F1", "016D", @@ -4610,10 +4738,11 @@ { "File": { "Name": "Scene 6, Room 3", - "Start": "0235B000", - "End": "0235EBD0", + "Start": "02B19000", + "End": "02B1CB50", "RemapStart": null }, + "Id": 3, "Objects": [ "00F1", "016D", @@ -4645,10 +4774,11 @@ { "File": { "Name": "Scene 6, Room 4", - "Start": "0235F000", - "End": "02366280", + "Start": "02B1D000", + "End": "02B24270", "RemapStart": null }, + "Id": 4, "Objects": [ "00F1", "016D", @@ -4685,10 +4815,11 @@ { "File": { "Name": "Scene 6, Room 5", - "Start": "02367000", - "End": "0237F010", + "Start": "02B25000", + "End": "02B3CF40", "RemapStart": null }, + "Id": 5, "Objects": [ "00F1", "016D", @@ -4752,10 +4883,11 @@ { "File": { "Name": "Scene 6, Room 6", - "Start": "02380000", - "End": "023847F0", + "Start": "02B3D000", + "End": "02B41800", "RemapStart": null }, + "Id": 6, "Objects": [ "00F1", "016D", @@ -4782,10 +4914,11 @@ { "File": { "Name": "Scene 6, Room 7", - "Start": "02385000", - "End": "0238A510", + "Start": "02B42000", + "End": "02B47510", "RemapStart": null }, + "Id": 7, "Objects": [ "00F1", "016D", @@ -4803,10 +4936,11 @@ { "File": { "Name": "Scene 6, Room 8", - "Start": "0238B000", - "End": "023930B0", + "Start": "02B48000", + "End": "02B50070", "RemapStart": null }, + "Id": 8, "Objects": [ "00F1", "016D", @@ -4852,10 +4986,11 @@ { "File": { "Name": "Scene 6, Room 9", - "Start": "02394000", - "End": "02399DD0", + "Start": "02B51000", + "End": "02B56DF0", "RemapStart": null }, + "Id": 9, "Objects": [ "00F1", "016D", @@ -4875,10 +5010,11 @@ { "File": { "Name": "Scene 6, Room 10", - "Start": "0239A000", - "End": "023A21A0", + "Start": "02B57000", + "End": "02B5F1A0", "RemapStart": null }, + "Id": 10, "Objects": [ "00F1", "016D", @@ -4904,10 +5040,11 @@ { "File": { "Name": "Scene 6, Room 11", - "Start": "023A3000", - "End": "023A4010", + "Start": "02B60000", + "End": "02B61010", "RemapStart": null }, + "Id": 11, "Objects": [ "00F1", "016D", @@ -4919,10 +5056,11 @@ { "File": { "Name": "Scene 6, Room 12", - "Start": "023A5000", - "End": "023A70E0", + "Start": "02B62000", + "End": "02B64060", "RemapStart": null }, + "Id": 12, "Objects": [ "00F1", "016D", @@ -4948,10 +5086,11 @@ { "File": { "Name": "Scene 6, Room 13", - "Start": "023A8000", - "End": "023AD8B0", + "Start": "02B65000", + "End": "02B6A850", "RemapStart": null }, + "Id": 13, "Objects": [ "00F1", "016D", @@ -4987,10 +5126,11 @@ { "File": { "Name": "Scene 6, Room 14", - "Start": "023AE000", - "End": "023B2CA0", + "Start": "02B6B000", + "End": "02B6FC90", "RemapStart": null }, + "Id": 14, "Objects": [ "00F1", "016D", @@ -5010,10 +5150,11 @@ { "File": { "Name": "Scene 6, Room 15", - "Start": "023B3000", - "End": "023BB4A0", + "Start": "02B70000", + "End": "02B78470", "RemapStart": null }, + "Id": 15, "Objects": [ "00F1", "016D", @@ -5049,10 +5190,11 @@ { "File": { "Name": "Scene 6, Room 16", - "Start": "023BC000", - "End": "023C21C0", + "Start": "02B79000", + "End": "02B7F190", "RemapStart": null }, + "Id": 16, "Objects": [ "00F1", "016D", @@ -5075,10 +5217,11 @@ { "File": { "Name": "Scene 6, Room 17", - "Start": "023C3000", - "End": "023CC650", + "Start": "02B80000", + "End": "02B89610", "RemapStart": null }, + "Id": 17, "Objects": [ "00F1", "016D", @@ -5104,10 +5247,11 @@ { "File": { "Name": "Scene 6, Room 18", - "Start": "023CD000", - "End": "023D2CE0", + "Start": "02B8A000", + "End": "02B8FCB0", "RemapStart": null }, + "Id": 18, "Objects": [ "00F1", "016D", @@ -5136,10 +5280,11 @@ { "File": { "Name": "Scene 6, Room 19", - "Start": "023D3000", - "End": "023D8DD0", + "Start": "02B90000", + "End": "02B95DE0", "RemapStart": null }, + "Id": 19, "Objects": [ "00F1", "016D", @@ -5159,10 +5304,11 @@ { "File": { "Name": "Scene 6, Room 20", - "Start": "023D9000", - "End": "023E11C0", + "Start": "02B96000", + "End": "02B9E1C0", "RemapStart": null }, + "Id": 20, "Objects": [ "00F1", "016D", @@ -5188,10 +5334,11 @@ { "File": { "Name": "Scene 6, Room 21", - "Start": "023E2000", - "End": "023E6660", + "Start": "02B9F000", + "End": "02BA3650", "RemapStart": null }, + "Id": 21, "Objects": [ "00F1", "016D", @@ -5208,10 +5355,11 @@ { "File": { "Name": "Scene 6, Room 22", - "Start": "023E7000", - "End": "023EA070", + "Start": "02BA4000", + "End": "02BA70D0", "RemapStart": null }, + "Id": 22, "Objects": [ "00F1", "016D", @@ -5238,10 +5386,11 @@ { "File": { "Name": "Scene 6, Room 23", - "Start": "023EB000", - "End": "023F4210", + "Start": "02BA8000", + "End": "02BB1190", "RemapStart": null }, + "Id": 23, "Objects": [ "00F1", "016D", @@ -5278,10 +5427,11 @@ { "File": { "Name": "Scene 6, Room 24", - "Start": "023F5000", - "End": "023FB4D0", + "Start": "02BB2000", + "End": "02BB84B0", "RemapStart": null }, + "Id": 24, "Objects": [ "00F1", "016D" @@ -5298,10 +5448,11 @@ { "File": { "Name": "Scene 6, Room 25", - "Start": "023FC000", - "End": "02411BA0", + "Start": "02BB9000", + "End": "02BCEB70", "RemapStart": null }, + "Id": 25, "Objects": [ "00F1", "016D", @@ -5336,10 +5487,11 @@ { "File": { "Name": "Scene 6, Room 26", - "Start": "02412000", - "End": "0241EB00", + "Start": "02BCF000", + "End": "02BDBB20", "RemapStart": null }, + "Id": 26, "Objects": [ "00F1", "016D", @@ -5365,10 +5517,11 @@ { "File": { "Name": "Scene 6, Room 27", - "Start": "0241F000", - "End": "02424710", + "Start": "02BDC000", + "End": "02BE16C0", "RemapStart": null }, + "Id": 27, "Objects": [ "00F1", "016D", @@ -5394,10 +5547,11 @@ { "File": { "Name": "Scene 6, Room 28", - "Start": "02425000", - "End": "0242DA30", + "Start": "02BE2000", + "End": "02BEAA20", "RemapStart": null }, + "Id": 28, "Objects": [ "00F1", "016D", @@ -5420,10 +5574,11 @@ { "File": { "Name": "Scene 7", - "Start": "0242E000", - "End": "024463C0", + "Start": "027A7000", + "End": "027BF3C0", "RemapStart": null }, + "Id": 7, "TActors": [ "00FF 04FF 002E F7FA FFC1 FE6B C000 007F", "00FF 01FF 002E FCE6 FFC1 FD53 8000 007F", @@ -5454,10 +5609,11 @@ { "File": { "Name": "Scene 7, Room 0", - "Start": "02447000", - "End": "02452150", + "Start": "027C0000", + "End": "027CB0C0", "RemapStart": null }, + "Id": 0, "Objects": [ "0069", "0187", @@ -5497,10 +5653,11 @@ { "File": { "Name": "Scene 7, Room 1", - "Start": "02453000", - "End": "02454AF0", + "Start": "027CC000", + "End": "027CDAC0", "RemapStart": null }, + "Id": 1, "Objects": [ "0069", "0187", @@ -5523,10 +5680,11 @@ { "File": { "Name": "Scene 7, Room 2", - "Start": "02455000", - "End": "0245F9E0", + "Start": "027CE000", + "End": "027D8910", "RemapStart": null }, + "Id": 2, "Objects": [ "0069", "0187", @@ -5562,10 +5720,11 @@ { "File": { "Name": "Scene 7, Room 3", - "Start": "02460000", - "End": "02462980", + "Start": "027D9000", + "End": "027DB940", "RemapStart": null }, + "Id": 3, "Objects": [ "0069", "0187", @@ -5584,10 +5743,11 @@ { "File": { "Name": "Scene 7, Room 4", - "Start": "02463000", - "End": "02464C60", + "Start": "027DC000", + "End": "027DDC40", "RemapStart": null }, + "Id": 4, "Objects": [ "0069", "0187", @@ -5612,10 +5772,11 @@ { "File": { "Name": "Scene 7, Room 5", - "Start": "02465000", - "End": "0246AAC0", + "Start": "027DE000", + "End": "027E3A60", "RemapStart": null }, + "Id": 5, "Objects": [ "0069", "0187", @@ -5633,10 +5794,11 @@ { "File": { "Name": "Scene 7, Room 6", - "Start": "0246B000", - "End": "024725F0", + "Start": "027E4000", + "End": "027EB570", "RemapStart": null }, + "Id": 6, "Objects": [ "0069", "0187", @@ -5674,10 +5836,11 @@ { "File": { "Name": "Scene 7, Room 7", - "Start": "02473000", - "End": "02474AE0", + "Start": "027EC000", + "End": "027EDAB0", "RemapStart": null }, + "Id": 7, "Objects": [ "0069", "0187", @@ -5698,10 +5861,11 @@ { "File": { "Name": "Scene 7, Room 8", - "Start": "02475000", - "End": "0247A0A0", + "Start": "027EE000", + "End": "027F3060", "RemapStart": null }, + "Id": 8, "Objects": [ "0069", "0187", @@ -5726,10 +5890,11 @@ { "File": { "Name": "Scene 7, Room 9", - "Start": "0247B000", - "End": "02487C90", + "Start": "027F4000", + "End": "02800B60", "RemapStart": null }, + "Id": 9, "Objects": [ "0069", "0187", @@ -5779,10 +5944,11 @@ { "File": { "Name": "Scene 7, Room 10", - "Start": "02488000", - "End": "0248F7F0", + "Start": "02801000", + "End": "028087A0", "RemapStart": null }, + "Id": 10, "Objects": [ "0069", "0187", @@ -5814,10 +5980,11 @@ { "File": { "Name": "Scene 7, Room 11", - "Start": "02490000", - "End": "02493E60", + "Start": "02809000", + "End": "0280CD40", "RemapStart": null }, + "Id": 11, "Objects": [ "0069", "0187", @@ -5856,10 +6023,11 @@ { "File": { "Name": "Scene 7, Room 12", - "Start": "02494000", - "End": "02499750", + "Start": "0280D000", + "End": "02812720", "RemapStart": null }, + "Id": 12, "Objects": [ "0069", "0187", @@ -5892,10 +6060,11 @@ { "File": { "Name": "Scene 7, Room 13", - "Start": "0249A000", - "End": "0249B020", + "Start": "02813000", + "End": "02813FB0", "RemapStart": null }, + "Id": 13, "Objects": [ "0069", "0187", @@ -5923,10 +6092,11 @@ { "File": { "Name": "Scene 7, Room 14", - "Start": "0249C000", - "End": "024A1900", + "Start": "02814000", + "End": "02819940", "RemapStart": null }, + "Id": 14, "Objects": [ "0069", "0187", @@ -5947,10 +6117,11 @@ { "File": { "Name": "Scene 7, Room 15", - "Start": "024A2000", - "End": "024A92C0", + "Start": "0281A000", + "End": "02821270", "RemapStart": null }, + "Id": 15, "Objects": [ "0069", "0187", @@ -5976,10 +6147,11 @@ { "File": { "Name": "Scene 7, Room 16", - "Start": "024AA000", - "End": "024AC930", + "Start": "02822000", + "End": "02824880", "RemapStart": null }, + "Id": 16, "Objects": [ "0069", "0187", @@ -6023,10 +6195,11 @@ { "File": { "Name": "Scene 7, Room 17", - "Start": "024AD000", - "End": "024AFDE0", + "Start": "02825000", + "End": "02827CD0", "RemapStart": null }, + "Id": 17, "Objects": [ "0069", "0187", @@ -6060,10 +6233,11 @@ { "File": { "Name": "Scene 7, Room 18", - "Start": "024B0000", - "End": "024BD310", + "Start": "02828000", + "End": "02835280", "RemapStart": null }, + "Id": 18, "Objects": [ "0069", "0187", @@ -6089,10 +6263,11 @@ { "File": { "Name": "Scene 7, Room 19", - "Start": "024BE000", - "End": "024C0D80", + "Start": "02836000", + "End": "02838D20", "RemapStart": null }, + "Id": 19, "Objects": [ "0069", "0187", @@ -6116,10 +6291,11 @@ { "File": { "Name": "Scene 7, Room 20", - "Start": "024C1000", - "End": "024C2E40", + "Start": "02839000", + "End": "0283AE20", "RemapStart": null }, + "Id": 20, "Objects": [ "0069", "0187", @@ -6147,10 +6323,11 @@ { "File": { "Name": "Scene 7, Room 21", - "Start": "024C3000", - "End": "024CE5B0", + "Start": "0283B000", + "End": "028464B0", "RemapStart": null }, + "Id": 21, "Objects": [ "0069", "0187", @@ -6205,10 +6382,11 @@ { "File": { "Name": "Scene 7, Room 22", - "Start": "024CF000", - "End": "024D19B0", + "Start": "02847000", + "End": "028499A0", "RemapStart": null }, + "Id": 22, "Objects": [ "0069", "0187", @@ -6223,10 +6401,11 @@ { "File": { "Name": "Scene 8", - "Start": "024D2000", - "End": "024DE590", + "Start": "032C6000", + "End": "032D2560", "RemapStart": null }, + "Id": 8, "TActors": [ "01FF 00FF 002E FC86 0000 FF9C 0000 009F", "03FF 00FF 002E 0366 0000 FCA4 0000 02D5", @@ -6318,10 +6497,11 @@ { "File": { "Name": "Scene 8, Room 0", - "Start": "024DF000", - "End": "024F4720", + "Start": "032D3000", + "End": "032E85F0", "RemapStart": null }, + "Id": 0, "Objects": [ "008D", "0187", @@ -6398,10 +6578,11 @@ { "File": { "Name": "Scene 8, Room 1", - "Start": "024F5000", - "End": "02500130", + "Start": "032E9000", + "End": "032F42D0", "RemapStart": null }, + "Id": 1, "Objects": [ "008D", "0187", @@ -6454,10 +6635,11 @@ { "File": { "Name": "Scene 8, Room 2", - "Start": "02501000", - "End": "02504160", + "Start": "032F5000", + "End": "032F8190", "RemapStart": null }, + "Id": 2, "Objects": [ "008D", "0187", @@ -6486,10 +6668,11 @@ { "File": { "Name": "Scene 8, Room 3", - "Start": "02505000", - "End": "02506CC0", + "Start": "032F9000", + "End": "032FAC60", "RemapStart": null }, + "Id": 3, "Objects": [ "008D", "0187", @@ -6524,10 +6707,11 @@ { "File": { "Name": "Scene 8, Room 4", - "Start": "02507000", - "End": "025094A0", + "Start": "032FB000", + "End": "032FD450", "RemapStart": null }, + "Id": 4, "Objects": [ "008D", "0187", @@ -6553,10 +6737,11 @@ { "File": { "Name": "Scene 8, Room 5", - "Start": "0250A000", - "End": "0250C990", + "Start": "032FE000", + "End": "03300960", "RemapStart": null }, + "Id": 5, "Objects": [ "008D", "0187", @@ -6588,10 +6773,11 @@ { "File": { "Name": "Scene 8, Room 6", - "Start": "0250D000", - "End": "0250FEA0", + "Start": "03301000", + "End": "03303E80", "RemapStart": null }, + "Id": 6, "Objects": [ "008D", "0187", @@ -6616,10 +6802,11 @@ { "File": { "Name": "Scene 9", - "Start": "02510000", - "End": "025216C0", + "Start": "02BEB000", + "End": "02BFC610", "RemapStart": null }, + "Id": 9, "TActors": [ "01FF 0AFF 0023 FD66 009B 059A AFA5 013F", "03FF 08FF 0023 0386 00AC FCF7 1F4A 013F", @@ -6810,10 +6997,11 @@ { "File": { "Name": "Scene 9, Room 0", - "Start": "02522000", - "End": "0252A680", + "Start": "02BFD000", + "End": "02C05660", "RemapStart": null }, + "Id": 0, "Objects": [ "006B", "0016", @@ -6841,10 +7029,11 @@ { "File": { "Name": "Scene 9, Room 1", - "Start": "0252B000", - "End": "02537530", + "Start": "02C06000", + "End": "02C12540", "RemapStart": null }, + "Id": 1, "Objects": [ "006B", "0016", @@ -6878,10 +7067,11 @@ { "File": { "Name": "Scene 9, Room 2", - "Start": "02538000", - "End": "0253DB00", + "Start": "02C13000", + "End": "02C18AF0", "RemapStart": null }, + "Id": 2, "Objects": [ "006B", "0016", @@ -6909,10 +7099,11 @@ { "File": { "Name": "Scene 9, Room 3", - "Start": "0253E000", - "End": "02546090", + "Start": "02C19000", + "End": "02C21080", "RemapStart": null }, + "Id": 3, "Objects": [ "006B", "0016", @@ -6953,10 +7144,11 @@ { "File": { "Name": "Scene 9, Room 4", - "Start": "02547000", - "End": "0254E650", + "Start": "02C22000", + "End": "02C29670", "RemapStart": null }, + "Id": 4, "Objects": [ "006B", "0016", @@ -6983,10 +7175,11 @@ { "File": { "Name": "Scene 9, Room 5", - "Start": "0254F000", - "End": "02557880", + "Start": "02C2A000", + "End": "02C32890", "RemapStart": null }, + "Id": 5, "Objects": [ "006B", "0016", @@ -7026,10 +7219,11 @@ { "File": { "Name": "Scene 9, Room 6", - "Start": "02558000", - "End": "0255C1B0", + "Start": "02C33000", + "End": "02C37260", "RemapStart": null }, + "Id": 6, "Objects": [ "006B", "0016", @@ -7058,10 +7252,11 @@ { "File": { "Name": "Scene 9, Room 7", - "Start": "0255D000", - "End": "025628F0", + "Start": "02C38000", + "End": "02C3D8F0", "RemapStart": null }, + "Id": 7, "Objects": [ "006B", "008A", @@ -7079,10 +7274,11 @@ { "File": { "Name": "Scene 9, Room 8", - "Start": "02563000", - "End": "02564920", + "Start": "02C3E000", + "End": "02C3F950", "RemapStart": null }, + "Id": 8, "Objects": [ "006B", "0016", @@ -7110,10 +7306,11 @@ { "File": { "Name": "Scene 9, Room 9", - "Start": "02565000", - "End": "0256D690", + "Start": "02C40000", + "End": "02C48650", "RemapStart": null }, + "Id": 9, "Objects": [ "006B", "0016", @@ -7154,10 +7351,11 @@ { "File": { "Name": "Scene 9, Room 10", - "Start": "0256E000", - "End": "025723E0", + "Start": "02C49000", + "End": "02C4D3E0", "RemapStart": null }, + "Id": 10, "Objects": [ "006B", "0016", @@ -7178,10 +7376,11 @@ { "File": { "Name": "Scene 9, Room 11", - "Start": "02573000", - "End": "02578850", + "Start": "02C4E000", + "End": "02C53900", "RemapStart": null }, + "Id": 11, "Objects": [ "006B", "0016", @@ -7222,10 +7421,11 @@ { "File": { "Name": "Scene 10", - "Start": "0300B000", - "End": "0301B7B0", + "Start": "02EE3000", + "End": "02EF37B0", "RemapStart": null }, + "Id": 10, "TActors": [ "0303 02FF 002E 0000 012C 01FA 8000 008A", "0505 04FF 002E FE06 0230 0000 4000 007F", @@ -7242,10 +7442,11 @@ { "File": { "Name": "Scene 10, Room 0", - "Start": "0301C000", - "End": "03023ED0", + "Start": "02EF4000", + "End": "02EFBED0", "RemapStart": null }, + "Id": 0, "Objects": [ "0139", "00A4", @@ -7266,10 +7467,11 @@ { "File": { "Name": "Scene 10, Room 1", - "Start": "03024000", - "End": "0302B770", + "Start": "02EFC000", + "End": "02F03770", "RemapStart": null }, + "Id": 1, "Objects": [ "0139", "00A4", @@ -7288,10 +7490,11 @@ { "File": { "Name": "Scene 10, Room 2", - "Start": "0302C000", - "End": "03033850", + "Start": "02F04000", + "End": "02F0B850", "RemapStart": null }, + "Id": 2, "Objects": [ "0139", "00A4", @@ -7317,10 +7520,11 @@ { "File": { "Name": "Scene 10, Room 3", - "Start": "03034000", - "End": "0303B730", + "Start": "02F0C000", + "End": "02F13730", "RemapStart": null }, + "Id": 3, "Objects": [ "0139", "00A4", @@ -7342,10 +7546,11 @@ { "File": { "Name": "Scene 10, Room 4", - "Start": "0303C000", - "End": "030450D0", + "Start": "02F14000", + "End": "02F1D0D0", "RemapStart": null }, + "Id": 4, "Objects": [ "0139", "00A4", @@ -7367,10 +7572,11 @@ { "File": { "Name": "Scene 10, Room 5", - "Start": "03046000", - "End": "0304EB10", + "Start": "02F1E000", + "End": "02F26B10", "RemapStart": null }, + "Id": 5, "Objects": [ "0139", "00B0" @@ -7386,10 +7592,11 @@ { "File": { "Name": "Scene 10, Room 6", - "Start": "0304F000", - "End": "03058BA0", + "Start": "02F27000", + "End": "02F30BA0", "RemapStart": null }, + "Id": 6, "Objects": [ "0139", "00B0" @@ -7401,10 +7608,11 @@ { "File": { "Name": "Scene 10, Room 7", - "Start": "03059000", - "End": "030637A0", + "Start": "02F31000", + "End": "02F3B7A0", "RemapStart": null }, + "Id": 7, "Objects": [ "0139", "00A4", @@ -7431,10 +7639,11 @@ { "File": { "Name": "Scene 10, Room 8", - "Start": "03064000", - "End": "0306ABE0", + "Start": "02F3C000", + "End": "02F42BE0", "RemapStart": null }, + "Id": 8, "Objects": [ "0139", "00B0" @@ -7464,10 +7673,11 @@ { "File": { "Name": "Scene 10, Room 9", - "Start": "0306B000", - "End": "03070920", + "Start": "02F43000", + "End": "02F48920", "RemapStart": null }, + "Id": 9, "Objects": [ "0139", "00B0" @@ -7479,10 +7689,11 @@ { "File": { "Name": "Scene 11", - "Start": "02579000", - "End": "0258A4C0", + "Start": "02875000", + "End": "02886530", "RemapStart": null }, + "Id": 11, "TActors": [ "06FF 08FF 0023 0320 FFB0 FA10 C000 003F", "02FF 01FF 002E F9D4 FFB0 FD94 0000 009F", @@ -7512,10 +7723,11 @@ { "File": { "Name": "Scene 11, Room 0", - "Start": "0258B000", - "End": "0259AF90", + "Start": "02887000", + "End": "02896F90", "RemapStart": null }, + "Id": 0, "Objects": [ "004D", "00A4", @@ -7540,10 +7752,11 @@ { "File": { "Name": "Scene 11, Room 1", - "Start": "0259B000", - "End": "025A4270", + "Start": "02897000", + "End": "028A0290", "RemapStart": null }, + "Id": 1, "Objects": [ "004D", "000E", @@ -7561,10 +7774,11 @@ { "File": { "Name": "Scene 11, Room 2", - "Start": "025A5000", - "End": "025AA050", + "Start": "028A1000", + "End": "028A5F80", "RemapStart": null }, + "Id": 2, "Objects": [ "004D", "002C", @@ -7614,10 +7828,11 @@ { "File": { "Name": "Scene 11, Room 3", - "Start": "025AB000", - "End": "025B2C50", + "Start": "028A6000", + "End": "028ADC20", "RemapStart": null }, + "Id": 3, "Objects": [ "004D", "000E", @@ -7651,10 +7866,11 @@ { "File": { "Name": "Scene 11, Room 4", - "Start": "025B3000", - "End": "025BD1E0", + "Start": "028AE000", + "End": "028B8150", "RemapStart": null }, + "Id": 4, "Objects": [ "004D", "000E", @@ -7689,10 +7905,11 @@ { "File": { "Name": "Scene 11, Room 5", - "Start": "025BE000", - "End": "025C3020", + "Start": "028B9000", + "End": "028BE0E0", "RemapStart": null }, + "Id": 5, "Objects": [ "004D", "000E", @@ -7717,10 +7934,11 @@ { "File": { "Name": "Scene 11, Room 6", - "Start": "025C4000", - "End": "025CBF80", + "Start": "028BF000", + "End": "028C6F40", "RemapStart": null }, + "Id": 6, "Objects": [ "004D", "002B", @@ -7762,10 +7980,11 @@ { "File": { "Name": "Scene 11, Room 7", - "Start": "025CC000", - "End": "025D42C0", + "Start": "028C7000", + "End": "028CF330", "RemapStart": null }, + "Id": 7, "Objects": [ "004D", "000E", @@ -7790,10 +8009,11 @@ { "File": { "Name": "Scene 11, Room 8", - "Start": "025D5000", - "End": "025DD230", + "Start": "028D0000", + "End": "028D8210", "RemapStart": null }, + "Id": 8, "Objects": [ "004D", "002B", @@ -7826,10 +8046,11 @@ { "File": { "Name": "Scene 11, Room 9", - "Start": "025DE000", - "End": "025E1870", + "Start": "028D9000", + "End": "028DC8F0", "RemapStart": null }, + "Id": 9, "Objects": [ "004D", "000E", @@ -7866,10 +8087,11 @@ { "File": { "Name": "Scene 11, Room 10", - "Start": "025E2000", - "End": "025E7C50", + "Start": "028DD000", + "End": "028E2C60", "RemapStart": null }, + "Id": 10, "Objects": [ "004D", "000E", @@ -7891,10 +8113,11 @@ { "File": { "Name": "Scene 13", - "Start": "025E8000", - "End": "026097D0", + "Start": "0318E000", + "End": "031AF7C0", "RemapStart": null }, + "Id": 13, "TActors": [ "10FF 01FF 0023 0000 FF10 012A 8000 003F", "0BFF 0AFF 0023 F1C9 FF2E FCB8 4000 003F", @@ -8193,10 +8416,11 @@ { "File": { "Name": "Scene 13, Room 0", - "Start": "0260A000", - "End": "02613210", + "Start": "031B0000", + "End": "031B91C0", "RemapStart": null }, + "Id": 0, "Objects": [ "0179", "005D", @@ -8223,10 +8447,11 @@ { "File": { "Name": "Scene 13, Room 1", - "Start": "02614000", - "End": "026309D0", + "Start": "031BA000", + "End": "031D69B0", "RemapStart": null }, + "Id": 1, "Objects": [ "0179", "000E", @@ -8246,10 +8471,11 @@ { "File": { "Name": "Scene 13, Room 2", - "Start": "02631000", - "End": "026387E0", + "Start": "031D7000", + "End": "031DE7E0", "RemapStart": null }, + "Id": 2, "Objects": [ "0179", "006B", @@ -8297,10 +8523,11 @@ { "File": { "Name": "Scene 13, Room 3", - "Start": "02639000", - "End": "02642A40", + "Start": "031DF000", + "End": "031E8990", "RemapStart": null }, + "Id": 3, "Objects": [ "0179", "006B", @@ -8333,10 +8560,11 @@ { "File": { "Name": "Scene 13, Room 4", - "Start": "02643000", - "End": "0264AC90", + "Start": "031E9000", + "End": "031F0C90", "RemapStart": null }, + "Id": 4, "Objects": [ "0179", "006B", @@ -8357,10 +8585,11 @@ { "File": { "Name": "Scene 13, Room 5", - "Start": "0264B000", - "End": "02652520", + "Start": "031F1000", + "End": "031F8540", "RemapStart": null }, + "Id": 5, "Objects": [ "0179", "00AA", @@ -8379,10 +8608,11 @@ { "File": { "Name": "Scene 13, Room 6", - "Start": "02653000", - "End": "02662C60", + "Start": "031F9000", + "End": "03208BF0", "RemapStart": null }, + "Id": 6, "Objects": [ "0179", "0069", @@ -8421,10 +8651,11 @@ { "File": { "Name": "Scene 13, Room 7", - "Start": "02663000", - "End": "0266AC90", + "Start": "03209000", + "End": "03210C90", "RemapStart": null }, + "Id": 7, "Objects": [ "0179", "0069", @@ -8445,10 +8676,11 @@ { "File": { "Name": "Scene 13, Room 8", - "Start": "0266B000", - "End": "02674020", + "Start": "03211000", + "End": "0321A070", "RemapStart": null }, + "Id": 8, "Objects": [ "0179", "002C", @@ -8470,10 +8702,11 @@ { "File": { "Name": "Scene 13, Room 9", - "Start": "02675000", - "End": "02680820", + "Start": "0321B000", + "End": "03226890", "RemapStart": null }, + "Id": 9, "Objects": [ "0179", "000E", @@ -8499,10 +8732,11 @@ { "File": { "Name": "Scene 13, Room 10", - "Start": "02681000", - "End": "02687BC0", + "Start": "03227000", + "End": "0322DB70", "RemapStart": null }, + "Id": 10, "Objects": [ "0179", "001B", @@ -8527,10 +8761,11 @@ { "File": { "Name": "Scene 13, Room 11", - "Start": "02688000", - "End": "0268E950", + "Start": "0322E000", + "End": "03234950", "RemapStart": null }, + "Id": 11, "Objects": [ "0179", "001B", @@ -8552,10 +8787,11 @@ { "File": { "Name": "Scene 13, Room 12", - "Start": "0268F000", - "End": "0269A270", + "Start": "03235000", + "End": "03240370", "RemapStart": null }, + "Id": 12, "Objects": [ "0179", "000E", @@ -8594,10 +8830,11 @@ { "File": { "Name": "Scene 13, Room 13", - "Start": "0269B000", - "End": "026A2D40", + "Start": "03241000", + "End": "03248D40", "RemapStart": null }, + "Id": 13, "Objects": [ "0179", "00F1", @@ -8619,10 +8856,11 @@ { "File": { "Name": "Scene 13, Room 14", - "Start": "026A3000", - "End": "026AD1D0", + "Start": "03249000", + "End": "032531A0", "RemapStart": null }, + "Id": 14, "Objects": [ "0179", "002C", @@ -8662,10 +8900,11 @@ { "File": { "Name": "Scene 13, Room 15", - "Start": "026AE000", - "End": "026B5D40", + "Start": "03254000", + "End": "0325BD40", "RemapStart": null }, + "Id": 15, "Objects": [ "0179", "002C", @@ -8686,10 +8925,11 @@ { "File": { "Name": "Scene 13, Room 16", - "Start": "026B6000", - "End": "026B8E30", + "Start": "0325C000", + "End": "0325EE20", "RemapStart": null }, + "Id": 16, "Objects": [ "0179", "000E", @@ -8709,10 +8949,11 @@ { "File": { "Name": "Scene 13, Room 17", - "Start": "026B9000", - "End": "026C1620", + "Start": "0325F000", + "End": "032676A0", "RemapStart": null }, + "Id": 17, "Objects": [ "0179", "016C", @@ -8746,10 +8987,11 @@ { "File": { "Name": "Scene 13, Room 18", - "Start": "026C2000", - "End": "026CE6E0", + "Start": "03268000", + "End": "03274670", "RemapStart": null }, + "Id": 18, "Objects": [ "0179", "012A", @@ -8801,10 +9043,11 @@ { "File": { "Name": "Scene 13, Room 19", - "Start": "026CF000", - "End": "026D6D40", + "Start": "03275000", + "End": "0327CD40", "RemapStart": null }, + "Id": 19, "Objects": [ "0179", "0072", From d5f62a1d449c28e37f93a7b2a7c563c87ecaf6e3 Mon Sep 17 00:00:00 2001 From: BeeLuigi Date: Thu, 16 Aug 2018 00:24:45 +0200 Subject: [PATCH 290/755] Fixed Ocarina hint --- HintList.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/HintList.py b/HintList.py index 86768b7e4..4d459da76 100644 --- a/HintList.py +++ b/HintList.py @@ -46,7 +46,7 @@ def getHintGroup(string, world): 'Ice Arrows': ("the refrigerator rocket", 'item'), 'Lens of Truth': ("the perjurless porthole", 'item'), 'Dins Fire': ("an inferno", 'item'), - 'Fairy Ocarina': ("a brown flute", 'item'), + 'Ocarina': ("a flute", 'item'), 'Goron Tunic': ("ruby robes", 'item'), 'Zora Tunic': ("a sapphire suit", 'item'), 'Iron Boots': ("sink shoes", 'item'), @@ -63,7 +63,6 @@ def getHintGroup(string, world): 'Slingshot': ("a seed shooter", 'item'), 'Boomerang': ("a banana", 'item'), 'Fire Arrows': ("the furnace firearm", 'item'), - 'Ocarina of Time': ("blue flute", 'item'), 'Bottle': ("a fairy prison", 'item'), 'Bottle with Letter': ("a call for help", 'item'), 'Bottle with Milk': ("cow juice", 'item'), From 31fee01293eda8ffc5f51981771712c11c5b2e56 Mon Sep 17 00:00:00 2001 From: BeeLuigi Date: Thu, 16 Aug 2018 01:02:29 +0200 Subject: [PATCH 291/755] Readded the alternate Ocarinas --- HintList.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HintList.py b/HintList.py index 4d459da76..966d4cc26 100644 --- a/HintList.py +++ b/HintList.py @@ -47,6 +47,7 @@ def getHintGroup(string, world): 'Lens of Truth': ("the perjurless porthole", 'item'), 'Dins Fire': ("an inferno", 'item'), 'Ocarina': ("a flute", 'item'), + 'Fairy Ocarina': ("a brown flute", 'item'), 'Goron Tunic': ("ruby robes", 'item'), 'Zora Tunic': ("a sapphire suit", 'item'), 'Iron Boots': ("sink shoes", 'item'), @@ -63,6 +64,7 @@ def getHintGroup(string, world): 'Slingshot': ("a seed shooter", 'item'), 'Boomerang': ("a banana", 'item'), 'Fire Arrows': ("the furnace firearm", 'item'), + 'Ocarina of Time': ("blue flute", 'item'), 'Bottle': ("a fairy prison", 'item'), 'Bottle with Letter': ("a call for help", 'item'), 'Bottle with Milk': ("cow juice", 'item'), From ee313e4293aaaeefc8af4570448ce36f6015f9f0 Mon Sep 17 00:00:00 2001 From: mzxrules Date: Wed, 15 Aug 2018 20:27:24 -0400 Subject: [PATCH 292/755] Added utility to patch Master Quest data to scene/room files --- MQ.py | 297 ++++++++++++++++++++++++++++++++++++++++++++++++++ data/mqu.json | 30 ++--- 2 files changed, 312 insertions(+), 15 deletions(-) create mode 100644 MQ.py diff --git a/MQ.py b/MQ.py new file mode 100644 index 000000000..788752bdc --- /dev/null +++ b/MQ.py @@ -0,0 +1,297 @@ +# mzxrules 2018 +# +# In order to patch MQ to the existing data... +# +# Ice Cavern (Scene 9) needs to have it's header altered to support MQ's path list. This +# expansion will delete the otherwise unused alternate headers command +# +# Scenes: +# +# Transition actors will be patched over the old data, as the number of records is the same +# Path data will be appended to the end of the scene file. +# +# The size of a single path on file is NUM_POINTS * 6, rounded up to the nearest 4 byte boundary +# The total size consumed by the path data is NUM_PATHS * 8, plus the sum of all path file sizes +# padded to the nearest 0x10 bytes +# +# Rooms: +# +# Object file initialization data will be patched over the existing object file data, bleeding +# into the subsequent original actor spawn data, thus won't contribute to the room file size +# +# Actor spawn data will be appended to the end of the room file. +# The total size consumed by the actor spawn data is NUM_ACTORS * 0x10 +# +# Finally: +# +# Scene and room files will be padded to the nearest 0x10 bytes + +from Utils import local_path +from Rom import LocalRom +import json + +SCENE_DMADATA = 0xB320 # address where scene files begin to appear in dmadata +SCENE_TABLE = 0xB71440 + + + +class File(object): + def __init__(self, file): + self.name = file['Name'] + self.start = int(file['Start'], 16) + self.end = int(file['End'], 16) + self.remap = file['RemapStart'] + + # used to update the file's associated dmadata record + self.dma_key = self.start + + if self.remap is not None: + self.remap = int(self.remap, 16) + + def __repr__(self): + return "{0}: {1} {2}, remap {3}".format(self.name, self.start, self.end, self.remap) + + def relocate(self, rom:LocalRom): + if self.remap is None: + return + + new_start = self.remap + + offset = new_start - self.start + new_end = self.end + offset + + rom.buffer[new_start:new_end] = rom.buffer[self.start:self.end] + self.start = new_start + self.end = new_end + + +class Scene(object): + def __init__(self, scene): + self.file = File(scene['File']) + self.id = scene['Id'] + self.transition_actors = [convert_actor_data(x) for x in scene['TActors']] + self.rooms = [Room(x) for x in scene['Rooms']] + self.paths = [] + temp_paths = scene['Paths'] + for item in temp_paths: + self.paths.append(item['Points']) + + + def write_data(self, rom:LocalRom): + + # move file to remap address + self.file.relocate(rom) + + start = self.file.start + headcur = self.file.start + + room_list_offset = 0 + + code = rom.read_byte(headcur) + loop = 0x20 + while loop > 0 and code != 0x14: #terminator + loop -= 1 + + if code == 0x04: #rooms + room_list_offset = rom.read_int24(headcur+5) + elif code == 0x0D: #paths + path_offset = self.write_path_data(rom) + rom.write_int32(headcur+4, path_offset) + elif code == 0x0E: #transition actors + t_offset = rom.read_int24(headcur+5) + addr = self.file.start + t_offset + write_actor_data(rom, addr, self.transition_actors) + + headcur += 8 + code = rom.read_byte(headcur) + + # update file references + update_dmadata(rom, self.file) + update_scene_table(rom, self.id, self.file.start, self.file.end) + + # write room file data + for room in self.rooms: + room.write_data(rom) + + cur = self.file.start + room_list_offset + for room in self.rooms: + rom.write_int32s(cur, [room.file.start, room.file.end]) + cur += 0x08 + + + def get_path_size(self, path): + return ((len(path)*6+3)//4) * 4 + + + def get_path_data_filesize(self): + size = len(self.paths) * 8 + for path in self.paths: + path_size = self.get_path_size(path) + size += path_size + return size + + + # returns segment address to path data + def write_path_data(self, rom:LocalRom): + start = self.file.start + cur = self.file.end + records = [] + records_offset = 0 + + for path in self.paths: + nodes = len(path) + offset = get_segment_address(2, cur-start) + records.append((nodes, offset)) + + #flatten + points = [x for points in path for x in points ] + rom.write_int16s(cur, points) + cur += self.get_path_size(path) + + records_offset = get_segment_address(2, cur-start) + for node, offset in records: + rom.write_byte(cur, node) + rom.write_int32(cur+4, offset) + cur += 8 + + # self.file.end = ((cur + 0xF)//0x10) * 0x10 + + return records_offset + + +class Room(object): + def __init__(self, room): + self.file = File(room['File']) + self.id = room['Id'] + self.objects = [int(x, 16) for x in room['Objects']] + self.actors = [convert_actor_data(x) for x in room['Actors']] + + def write_data(self, rom:LocalRom): + + # move file to remap address + self.file.relocate(rom) + + headcur = self.file.start + + code = rom.read_byte(headcur) + loop = 0x20 + while loop != 0 and code != 0x14: #terminator + loop -= 1 + + if code == 0x01: # actors + offset = self.file.end - self.file.start + write_actor_data(rom, self.file.end, self.actors) + self.file.end += len(self.actors) * 0x10 + + rom.write_byte(headcur + 1, len(self.actors)) + rom.write_int32(headcur + 4, get_segment_address(3, offset)) + elif code == 0x0B: # objects + offset = rom.read_int24(headcur+5) + addr = self.file.start + offset + + rom.write_byte(headcur + 1, len(self.objects)) + rom.write_int16s(addr, self.objects) + + headcur += 8 + code = rom.read_byte(headcur) + + update_dmadata(rom, self.file) + + +def patch_files(rom:LocalRom): + patch_ice_cavern_scene_header(rom) + + data = get_json() + scenes = [Scene(x) for x in data] + + for scene in scenes: + scene.write_data(rom) + + verify_dma(rom) + + +def get_json(): + with open(local_path('data/mqu.json'), 'r') as stream: + data = json.load(stream) + return data + + +def convert_actor_data(str): + spawn_args = str.split(" ") + return [ int(x,16) for x in spawn_args ] + + +def get_segment_address(base, offset): + offset &= 0xFFFFFF + base *= 0x01000000 + return base + offset + + +def patch_ice_cavern_scene_header(rom): + rom.buffer[0x2BEB000:0x2BEB038] = rom.buffer[0x2BEB008:0x2BEB040] + rom.write_int32s(0x2BEB038, [0x0D000000, 0x02000000]) + + +def get_dma_record(rom:LocalRom, cur): + start = rom.read_int32(cur) + end = rom.read_int32(cur+0x04) + size = end-start + return start, end, size + + +def verify_dma(rom:LocalRom): + cur = SCENE_DMADATA + + next_start = -1 + errors = [] + + while True: + this_start, this_end, this_size = get_dma_record(rom, cur) + next_start, next_end, next_size = get_dma_record(rom, cur + 0x10) + + if next_start == 0: + break + + if this_end > next_start: + errors.append('dmadata info') + st, e, si = get_dma_record(rom, cur-0x10) + errors.append("{0:x} {1:x} {2:x}".format(st, e, si)) + st, e, si = get_dma_record(rom, cur) + errors.append("{0:x} {1:x} {2:x} <-- overlapping record".format(st, e, si)) + st, e, si = get_dma_record(rom, cur+0x10) + errors.append("{0:x} {1:x} {2:x}".format(st, e, si)) + next_start = this_start + cur += 0x10 + + if len(errors) > 0: + for e in errors: + print(e) + Exception("overlapping dmadata records!") + + +def update_dmadata(rom:LocalRom, file:File): + cur = SCENE_DMADATA + + key, start, end = file.dma_key, file.start, file.end + + record_key = rom.read_int32(cur) + while record_key != 0 and record_key != key: + cur += 0x10 + record_key = rom.read_int32(cur) + + if record_key == 0: + raise Exception('dmadata update failed: key {0:x} not found in dmadata'.format(key)) + + else: + rom.write_int32s(cur, [start, end, start, 0]) + + +def update_scene_table(rom:LocalRom, sceneId, start, end): + cur = sceneId * 0x14 + SCENE_TABLE + rom.write_int32s(cur, [start, end]) + + +def write_actor_data(rom:LocalRom, cur, actors): + for actor in actors: + rom.write_int16s(cur, actor) + cur += 0x10 diff --git a/data/mqu.json b/data/mqu.json index e1d72c463..907a296ce 100644 --- a/data/mqu.json +++ b/data/mqu.json @@ -687,7 +687,7 @@ "Name": "Scene 1, Room 2", "Start": "01F4E000", "End": "01F55DA0", - "RemapStart": null + "RemapStart": "1F4DCB0" }, "Id": 2, "Objects": [ @@ -1332,7 +1332,7 @@ "Name": "Scene 2, Room 1", "Start": "02759000", "End": "0275EE90", - "RemapStart": null + "RemapStart": "2758190" }, "Id": 1, "Objects": [ @@ -2110,7 +2110,7 @@ "Name": "Scene 3, Room 7", "Start": "0241F000", "End": "02432000", - "RemapStart": null + "RemapStart": "241E580" }, "Id": 7, "Objects": [ @@ -2414,7 +2414,7 @@ "Name": "Scene 3, Room 16", "Start": "02481000", "End": "02485FA0", - "RemapStart": null + "RemapStart": "2480750" }, "Id": 16, "Objects": [ @@ -2774,7 +2774,7 @@ "Name": "Scene 4, Room 2", "Start": "02308000", "End": "02317FD0", - "RemapStart": null + "RemapStart": "2307B20" }, "Id": 2, "Objects": [ @@ -3781,7 +3781,7 @@ "Name": "Scene 5, Room 4", "Start": "025FC000", "End": "02601FE0", - "RemapStart": null + "RemapStart": "25fb8c0" }, "Id": 4, "Objects": [ @@ -3964,7 +3964,7 @@ "Name": "Scene 5, Room 9", "Start": "0262D000", "End": "02634FE0", - "RemapStart": null + "RemapStart": "262ce20" }, "Id": 9, "Objects": [ @@ -4001,7 +4001,7 @@ "Name": "Scene 5, Room 10", "Start": "02635000", "End": "0263AFB0", - "RemapStart": null + "RemapStart": "2634f20" }, "Id": 10, "Objects": [ @@ -4041,7 +4041,7 @@ "Name": "Scene 5, Room 11", "Start": "0263B000", "End": "0263F9B0", - "RemapStart": null + "RemapStart": "263b010" }, "Id": 11, "Objects": [ @@ -4619,7 +4619,7 @@ "Name": "Scene 6, Room 0", "Start": "02AF8000", "End": "02B08F40", - "RemapStart": null + "RemapStart": "2af7b40" }, "Id": 0, "Objects": [ @@ -4817,7 +4817,7 @@ "Name": "Scene 6, Room 5", "Start": "02B25000", "End": "02B3CF40", - "RemapStart": null + "RemapStart": "2b24360" }, "Id": 5, "Objects": [ @@ -6062,7 +6062,7 @@ "Name": "Scene 7, Room 13", "Start": "02813000", "End": "02813FB0", - "RemapStart": null + "RemapStart": "28127e0" }, "Id": 13, "Objects": [ @@ -7725,7 +7725,7 @@ "Name": "Scene 11, Room 0", "Start": "02887000", "End": "02896F90", - "RemapStart": null + "RemapStart": "2886530" }, "Id": 0, "Objects": [ @@ -7776,7 +7776,7 @@ "Name": "Scene 11, Room 2", "Start": "028A1000", "End": "028A5F80", - "RemapStart": null + "RemapStart": "28a0350" }, "Id": 2, "Objects": [ @@ -7936,7 +7936,7 @@ "Name": "Scene 11, Room 6", "Start": "028BF000", "End": "028C6F40", - "RemapStart": null + "RemapStart": "28be180" }, "Id": 6, "Objects": [ From 521ab8f8f1081e35217f3a2b57c4d10127012848 Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 15 Aug 2018 23:45:29 -0400 Subject: [PATCH 293/755] Updated some shuffle dungeon option text --- BaseClasses.py | 6 +++--- Settings.py | 25 ++++++++++++------------- version.py | 2 +- 3 files changed, 16 insertions(+), 17 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 849245603..6db07ca34 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -146,7 +146,7 @@ def get_items(self): def get_restricted_dungeon_items(self): if self.shuffle_dungeon_items == 'keysanity': itempool = [] - elif self.shuffle_dungeon_items == 'leavekeys': + elif self.shuffle_dungeon_items == 'mapcompass': itempool = [item for dungeon in self.dungeons for item in dungeon.all_items if item.key] else: itempool = [item for dungeon in self.dungeons for item in dungeon.all_items] @@ -158,7 +158,7 @@ def get_restricted_dungeon_items(self): def get_unrestricted_dungeon_items(self): if self.shuffle_dungeon_items == 'keysanity': itempool = [item for dungeon in self.dungeons for item in dungeon.all_items] - elif self.shuffle_dungeon_items == 'leavekeys': + elif self.shuffle_dungeon_items == 'mapcompass': itempool = [item for dungeon in self.dungeons for item in dungeon.all_items if not item.key] else: itempool = [] @@ -558,7 +558,7 @@ def can_reach(self, state): def can_fill(self, item): if self.world.shuffle_dungeon_items == 'keysanity': is_dungeon_restricted = False - elif self.world.shuffle_dungeon_items == 'leavekeys': + elif self.world.shuffle_dungeon_items == 'mapcompass': is_dungeon_restricted = item.key else: is_dungeon_restricted = item.key or item.map or item.compass diff --git a/Settings.py b/Settings.py index 668cbf78b..1af1c2904 100644 --- a/Settings.py +++ b/Settings.py @@ -688,16 +688,16 @@ def __init__(self, settings_dict): }), Setting_Info('shuffle_dungeon_items', str, 2, True, { - 'default': 'leavekeys', - 'const': 'leavekeys', + 'default': 'mapcompass', + 'const': 'mapcompass', 'nargs': '?', - 'choices': ['off', 'leavekeys', 'keysanity'], + 'choices': ['off', 'mapcompass', 'keysanity'], 'help': '''\ Dungeon items can appear outside of their respective dungeon. - off: Don't use this feature - leavekeys: All items besides keys will be shuffled - keysanity: All items will be shuffled + off: Dungeon items will be in their Dungeon + mapcompass: Maps and Compasses can appear anywhere + keysanity: Dungeon items can appear anywhere ''' }, { @@ -707,22 +707,21 @@ def __init__(self, settings_dict): 'default': 'Maps and Compasses', 'options': { 'Off': 'off', - 'Maps and Compasses': 'leavekeys', + 'Maps and Compasses': 'mapcompass', 'Full Keysanity': 'keysanity' }, 'tooltip':'''\ - Dungeon items will be shuffled into the pool - at large, instead of just being restricted to - their own dungeon. + Dungeon items can appear anywhere instead + of just being restricted to their own dungeon. 'Maps and Compasses': Dungeons will have 2 more possible item locations. This helps make some dungeons more profitable, such as Ice Cavern and Jabu Jabu's Belly. - 'Full Keysanity': All items, including small and - boss keys, will be shuffled. A difficult mode, - since it is more likely to need to enter a dungeon + 'Full Keysanity': Maps, Compasses, and Keys + can appear anywhere. A difficult mode, since + it is more likely to need to enter a dungeon multiple times. ''' }), diff --git a/version.py b/version.py index fedf27c1a..49d81f6cc 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.24 f.LUM' +__version__ = '2.15.25 f.LUM' From 9ceb4390992b35f7eb0dbc172c43daf314c2e741 Mon Sep 17 00:00:00 2001 From: scatterclegge Date: Thu, 16 Aug 2018 17:43:05 -0230 Subject: [PATCH 294/755] added option for disabling bg music --- Rom.py | 4 ++++ Settings.py | 17 ++++++++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/Rom.py b/Rom.py index 7c43568f8..adc91cc5a 100644 --- a/Rom.py +++ b/Rom.py @@ -1402,6 +1402,10 @@ def write_save_table(rom): # actually write the save table to rom write_save_table(rom) + + # disable music + if world.disable_music: + rom.write_bytes(0xB3CB18, [0x00, 0x00, 0x20, 0x25]) # re-seed for aesthetic effects. They shouldn't be affected by the generation seed random.seed() diff --git a/Settings.py b/Settings.py index 1af1c2904..47cf5799b 100644 --- a/Settings.py +++ b/Settings.py @@ -1319,7 +1319,22 @@ def __init__(self, settings_dict): } }), - + Setting_Info('disable_music', bool, 1, False, + { + 'action': 'store_true', + 'help': '''\ + Disable background music. SFX and ambient sounds remain. + ''' + }, + { + 'text': 'Disable Background Music', + 'group': 'aesthetic_tab', + 'widget': 'Checkbutton', + 'default': False, + 'tooltip': '''\ + Disable background music. SFX and ambient sounds remain. + ''' + }), Setting_Info('kokiricolor', str, 0, False, { From eb0028c1419d81ddf861b633abd2782a698d159c Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 16 Aug 2018 16:29:29 -0400 Subject: [PATCH 295/755] Shop items can sell out now --- ASM/src/build.asm | 1 + ASM/src/config.asm | 10 ++++++++++ ASM/src/cutscenes.asm | 16 ++++++++-------- ASM/src/hacks.asm | 13 +++++++++++++ ASM/src/shop.asm | 39 +++++++++++++++++++++++++++++++++++++++ Rom.py | 17 ++++++----------- data/base2current.json | 2 +- version.py | 2 +- 8 files changed, 79 insertions(+), 21 deletions(-) create mode 100644 ASM/src/shop.asm diff --git a/ASM/src/build.asm b/ASM/src/build.asm index fb8ce2d1c..a92cb66e6 100755 --- a/ASM/src/build.asm +++ b/ASM/src/build.asm @@ -34,6 +34,7 @@ .include "extended_items.asm" .include "item_overrides.asm" .include "cutscenes.asm" +.include "shop.asm" .include "every_frame.asm" .include "menu.asm" .include "time_travel.asm" diff --git a/ASM/src/config.asm b/ASM/src/config.asm index ff9c00223..78f32248f 100755 --- a/ASM/src/config.asm +++ b/ASM/src/config.asm @@ -50,3 +50,13 @@ FAIRY_ITEMS: .byte 0x52 ; Crater .byte 0x53 ; Ganon's Castle .align 4 + +; Shop Item save mask +SHOP_ITEM_SAVE_MASK: +.halfword 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 ; 00 - 07 +.halfword 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 ; 08 - 0F +.halfword 0x0000, 0x0001, 0x0002, 0x0004, 0x0008, 0x0000, 0x0000, 0x0010 ; 10 - 17 +.halfword 0x0000, 0x0020, 0x0040, 0x0080, 0x0100, 0x0000, 0x0000, 0x0000 ; 18 - 1F +.halfword 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 ; 20 - 27 +.halfword 0x0000, 0x0200, 0x0400, 0x0000, 0x0000, 0x0000, 0x0000, 0x0800 ; 28 - 2F +.halfword 0x1000, 0x2000 ; 30 - 31 diff --git a/ASM/src/cutscenes.asm b/ASM/src/cutscenes.asm index c063642d4..a96226c80 100644 --- a/ASM/src/cutscenes.asm +++ b/ASM/src/cutscenes.asm @@ -60,13 +60,13 @@ override_great_fairy_cutscene: override_light_arrow_cutscene: li t0, LIGHT_ARROW_ITEM lb t0, 0x00 (t0) - b store_pending_spedial_item + b store_pending_special_item nop override_fairy_ocarina_cutscene: li t0, FAIRY_OCARINA_ITEM lb t0, 0x00 (t0) - b store_pending_spedial_item + b store_pending_special_item nop ;a3 = item ID @@ -74,12 +74,12 @@ override_ocarina_songs: li v0, 0xFF addi t0, a3, -0x5A addi t0, t0, 0x61 - b store_pending_spedial_item + b store_pending_special_item nop override_requiem_song: li t0, 0x64 - b store_pending_spedial_item + b store_pending_special_item nop override_epona_song: @@ -90,7 +90,7 @@ override_epona_song: sb t0,0x0EDE(at) li t0, 0x68 - b store_pending_spedial_item + b store_pending_special_item nop override_suns_song: @@ -101,16 +101,16 @@ override_suns_song: sb t0,0x0EDE(at) li t0, 0x6A - b store_pending_spedial_item + b store_pending_special_item nop override_song_of_time: li a1, 3 li t0, 0x6B - b store_pending_spedial_item + b store_pending_special_item nop -store_pending_spedial_item: +store_pending_special_item: ; Don't add item if it's already pending li t1, PENDING_SPECIAL_ITEM li t2, PENDING_SPECIAL_ITEM_END ; max number of entries diff --git a/ASM/src/hacks.asm b/ASM/src/hacks.asm index 17b7561e5..5d7334dd6 100755 --- a/ASM/src/hacks.asm +++ b/ASM/src/hacks.asm @@ -409,3 +409,16 @@ ; sw zero, 0x1C (sp) .org 0xE9E20C sw t1, 0x1C (sp) + +;================================================================================================== +; Shop Injections +;================================================================================================== + +; Check sold out override +.org 0xC004EC + j Check_Sold_Out + +; Set sold out override +; lh t6, 0x1c(a1) +.org 0xC018A0 + jal Set_Sold_Out \ No newline at end of file diff --git a/ASM/src/shop.asm b/ASM/src/shop.asm new file mode 100644 index 000000000..46ce604dd --- /dev/null +++ b/ASM/src/shop.asm @@ -0,0 +1,39 @@ +Check_Sold_Out: + lh t6, 0x1c(a0) ; t0 = var + + li t1, SHOP_ITEM_SAVE_MASK + sll t0, t6, 1 + add t1, t1, t0 + lh t2, 0x00(t1) ; t2 = shop mask + li t1, SAVE_CONTEXT + lh t3, 0x0F30(t1) ; t3 = shop flags + and t4, t2, t3 + + li v0, 0 + beqz t4, @@return ; if flag is not set, return 0 + nop + + li t5, 0x26 + sh t5, 0x1c(a0) ; set item to SOLD OUT + + li v0, 1 ; return 1 + +@@return: + jr ra + nop + + +Set_Sold_Out: + lh t6, 0x1c(a1) ; t0 = var + + li t1, SHOP_ITEM_SAVE_MASK + sll t0, t6, 1 + add t1, t1, t0 + lh t2, 0x00(t1) ; t2 = shop mask + li t1, SAVE_CONTEXT + lh t3, 0x0F30(t1) ; t3 = shop flags + or t4, t2, t3 + sh t4, 0x0F30(t1) ; set shop flag + + jr ra + nop diff --git a/Rom.py b/Rom.py index 71d7b2b87..45446616d 100644 --- a/Rom.py +++ b/Rom.py @@ -253,12 +253,10 @@ def patch_rom(world, rom): # Remove locked door to Boss Key Chest in Fire Temple rom.write_byte(0x22D82B7, 0x3F) - if world.bombchus_in_logic: - # Change Bombchu Shop check to bombchus - rom.write_bytes(0xC6CED8, [0x80, 0x8A, 0x00, 0x7C, 0x24, 0x0B, 0x00, 0x09, 0x11, 0x4B, 0x00, 0x05]) - # Change Bombchu Shop to never sell out - rom.write_bytes(0xC019C0, [0x10, 0x00, 0x00, 0x30]) + # Change Bombchi Shop to be always open + rom.write_int32(0xC6CEDC, 0x240B0001) # li t3, 1 + if world.bombchus_in_logic: # Change Bowling Alley check to bombchus (Part 1) rom.write_bytes(0x00E2D714, [0x81, 0xEF, 0xA6, 0x4C]) rom.write_bytes(0x00E2D720, [0x24, 0x18, 0x00, 0x09, 0x11, 0xF8, 0x00, 0x06]) @@ -266,10 +264,6 @@ def patch_rom(world, rom): # Change Bowling Alley check to bombchus (Part 2) rom.write_bytes(0x00E2D890, [0x81, 0x6B, 0xA6, 0x4C, 0x24, 0x0C, 0x00, 0x09, 0x51, 0x6C, 0x00, 0x0A]) else: - # Change Bombchu Shop check to Bomb Bag - rom.write_bytes(0xC6CEDA, [0x00, 0xA2]) - rom.write_byte(0xC6CEDF, 0x18) - # Change Bowling Alley check to Bomb Bag (Part 1) rom.write_bytes(0x00E2D716, [0xA6, 0x72]) rom.write_byte(0x00E2D723, 0x18) @@ -1745,7 +1739,7 @@ def update_chest_sizes(rom, override_table): unused_shop_ids = [0x11, 0x12, 0x13, 0x14, 0x17, 0x19, 0x1A, 0x1B, 0x1C, 0x29, 0x2A, 0x2F, 0x30, 0x31] def place_shop_items(rom, shop_items, messages, free_shop_ids, locations): - shop_objs = set() + shop_objs = { 0x0148 } # Sold Out messages for location in locations: shop_objs.add(location.item.object) @@ -1760,7 +1754,8 @@ def place_shop_items(rom, shop_items, messages, free_shop_ids, locations): shop_item.price = location.item.price shop_item.pieces = 1 shop_item.get_item_id = location.item.index - shop_item.func2 = 0x8086365C + shop_item.func2 = 0x808636B8 + shop_item.func4 = 0x80863FB4 message_id = unused_shop_ids.index(shop_id) * 2 shop_item.description_message = 0x8000 | message_id diff --git a/data/base2current.json b/data/base2current.json index 01d601258..9273b9805 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -1 +1 @@ -[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 196]}, {"11311804": [12, 16, 11, 205]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 190, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 101]}, {"11427312": [12, 16, 13, 14]}, {"11427320": [12, 16, 11, 200]}, {"11427332": [0, 0]}, {"11427335": [0]}, {"11431496": [12, 16, 11, 195, 1, 15, 192, 33]}, {"11559936": [130]}, {"11559938": [14, 222]}, {"11559948": [49, 248, 0, 2]}, {"11562028": [12, 16, 13, 47]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 30]}, {"11882076": [12, 16, 12, 251]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 68, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 75, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 82, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 61, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 140]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 18]}, {"12427480": [12, 16, 10, 106]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 110]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 12, 8, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 152]}, {"12491480": [12, 16, 10, 161]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 147]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 89]}, {"14109028": [16, 0]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 128, 73, 14, 222]}, {"14149508": [52]}, {"14149510": [0, 1, 2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 208]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 224]}, {"14624335": [118]}, {"14720872": [128]}, {"14720874": [14, 222]}, {"14720884": [49, 248, 0, 4]}, {"14720944": [12, 16, 11, 216]}, {"14848904": [8, 16, 11, 247]}, {"14852164": [12, 16, 12, 0]}, {"14872723": [52]}, {"15327704": [52, 9, 64, 0]}, {"15327728": [52]}, {"15327730": [91, 8]}, {"15327744": [52]}, {"15327746": [0, 10]}, {"15327757": [169]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 236, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 48, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 76, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 104, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 220, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 108, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 140, 128, 64, 38, 132, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 172, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 39, 212, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 28, 128, 64, 40]}, {"55059600": [83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 3, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 44, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [2, 52, 2]}, {"55060003": [69, 52, 2]}, {"55060007": [70, 3, 224]}, {"55060011": [8]}, {"55060016": [144, 136]}, {"55060019": [162, 49, 8]}, {"55060023": [6, 17]}, {"55060027": [2, 52, 2]}, {"55060031": [55, 52, 2]}, {"55060035": [56, 3, 224]}, {"55060039": [8]}, {"55060044": [144, 136]}, {"55060047": [161, 49, 8]}, {"55060051": [32, 17]}, {"55060055": [2, 52, 2]}, {"55060059": [121, 52, 2]}, {"55060063": [122, 3, 224]}, {"55060067": [8]}, {"55060072": [144, 136]}, {"55060075": [161, 49, 8]}, {"55060079": [4, 17]}, {"55060083": [2, 52, 2]}, {"55060087": [119, 52, 2]}, {"55060091": [120, 3, 224]}, {"55060095": [8]}, {"55060100": [144, 136]}, {"55060103": [50, 17]}, {"55060107": [2, 52, 2]}, {"55060111": [192, 52, 2]}, {"55060115": [193, 3, 224]}, {"55060119": [8]}, {"55060124": [144, 136]}, {"55060127": [163, 49, 8]}, {"55060131": [3, 17]}, {"55060135": [2, 52, 2]}, {"55060139": [77, 52, 162]}, {"55060144": [3, 224]}, {"55060147": [8]}, {"55060152": [144, 136]}, {"55060155": [163, 49, 8]}, {"55060159": [24, 17]}, {"55060163": [2, 52, 2]}, {"55060167": [77, 52, 162]}, {"55060172": [3, 224]}, {"55060175": [8]}, {"55060180": [3, 224]}, {"55060183": [8]}, {"55060188": [52, 8]}, {"55060191": [1, 160, 136]}, {"55060195": [62, 3, 224]}, {"55060199": [8]}, {"55060204": [36, 136]}, {"55060207": [134, 36, 9, 255, 255, 37, 41]}, {"55060215": [1, 52, 1]}, {"55060219": [3]}, {"55060221": [41, 8, 42, 20, 32]}, {"55060227": [7]}, {"55060232": [1, 9, 80, 33, 145, 75]}, {"55060240": [52, 1]}, {"55060243": [255, 21, 97, 255, 247]}, {"55060252": [161, 69]}, {"55060256": [3, 224]}, {"55060259": [8]}, {"55060264": [36, 136]}, {"55060267": [168, 1, 6, 64, 33, 145, 9]}, {"55060276": [1, 37, 72, 37, 161, 9]}, {"55060284": [3, 224]}, {"55060287": [8]}, {"55060292": [36, 136]}, {"55060295": [188, 1, 5, 64, 33, 129, 9]}, {"55060304": [5, 33]}, {"55060307": [2]}, {"55060312": [52, 9]}, {"55060316": [37, 41]}, {"55060319": [1, 161, 9]}, {"55060324": [3, 224]}, {"55060327": [8]}, {"55060332": [52, 8]}, {"55060335": [1, 160, 136]}, {"55060339": [61, 52, 8]}, {"55060343": [20, 160, 136]}, {"55060347": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [50, 160, 136]}, {"55060375": [58, 52, 8]}, {"55060379": [48, 164, 136, 19, 244, 160, 136]}, {"55060387": [51, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [2, 160, 136]}, {"55060403": [50, 52, 8]}, {"55060407": [1, 160, 136]}, {"55060411": [58, 160, 136]}, {"55060415": [60, 52, 8]}, {"55060419": [96, 164, 136, 19, 244, 160, 136]}, {"55060427": [51, 3, 224]}, {"55060431": [8]}, {"55060436": [144, 136]}, {"55060439": [124, 52, 1]}, {"55060443": [255, 17, 1]}, {"55060447": [6, 52, 2]}, {"55060451": [107, 144, 136]}, {"55060455": [148, 45, 8]}, {"55060459": [6, 17]}, {"55060463": [2, 52, 2]}, {"55060467": [106, 52, 2]}, {"55060471": [3, 3, 224]}, {"55060475": [8]}, {"55060480": [144, 136]}, {"55060483": [123, 52, 1]}, {"55060487": [255, 17, 1]}, {"55060491": [2, 52, 162]}, {"55060496": [52, 2]}, {"55060499": [12, 3, 224]}, {"55060503": [8]}, {"55060508": [52, 8]}, {"55060511": [7, 160, 136]}, {"55060515": [123, 3, 224]}, {"55060519": [8]}, {"55060524": [52, 8]}, {"55060527": [1]}, {"55060529": [168, 64, 4, 140, 137]}, {"55060535": [164, 1, 40, 72, 37, 172, 137]}, {"55060543": [164, 3, 224]}, {"55060547": [8]}, {"55060552": [48, 132]}, {"55060555": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060567": [140, 16, 129]}, {"55060571": [22, 145, 2]}, {"55060575": [117, 52, 1]}, {"55060579": [141, 16, 129]}, {"55060583": [19, 145, 2]}, {"55060587": [117, 16, 128]}, {"55060591": [17, 145, 2]}, {"55060595": [116, 52, 1]}, {"55060599": [138, 16, 129]}, {"55060603": [14, 145, 2]}, {"55060607": [116, 52, 1]}, {"55060611": [139, 16, 129]}, {"55060615": [11, 145, 2]}, {"55060619": [116, 52, 1]}, {"55060623": [88, 16, 129]}, {"55060627": [8, 52, 2]}, {"55060632": [52, 1]}, {"55060635": [120, 16, 129]}, {"55060639": [5, 52, 2]}, {"55060644": [52, 1]}, {"55060647": [121, 16, 129]}, {"55060651": [2, 52, 2]}, {"55060656": [52, 2]}, {"55060659": [255, 3, 224]}, {"55060663": [8]}, {"55060668": [39, 189, 255, 224, 175, 191]}, {"55060675": [16, 175, 176]}, {"55060679": [20, 12, 16, 11, 11]}, {"55060688": [4, 65]}, {"55060691": [2]}, {"55060696": [52, 2]}, {"55060699": [91]}, {"55060701": [64, 32, 33, 12, 16, 11, 114]}, {"55060712": [16, 96]}, {"55060715": [22, 175, 163]}, {"55060719": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060728": [133, 9]}, {"55060731": [2, 17, 32]}, {"55060735": [3, 52, 10]}, {"55060739": [1, 16]}, {"55060743": [12, 165, 10]}, {"55060748": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060759": [6, 144, 102]}, {"55060763": [7, 140, 105]}, {"55060767": [8, 1, 32, 248, 9]}, {"55060776": [143, 163]}, {"55060779": [28, 144, 101]}, {"55060783": [1, 12, 1, 191, 115, 2, 32, 32, 33, 143, 163]}, {"55060795": [28, 144, 101]}, {"55060799": [3, 16]}, {"55060803": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060815": [6]}, {"55060817": [74]}, {"55060819": [24]}, {"55060822": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060832": [60, 8, 128, 64, 37, 8, 32]}, {"55060840": [133, 9]}, {"55060843": [2, 17, 32]}, {"55060847": [3, 52, 10]}, {"55060851": [1, 165, 10]}, {"55060856": [52, 5]}, {"55060859": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060871": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060882": [48, 33, 143, 191]}, {"55060887": [16, 143, 176]}, {"55060891": [20, 39, 189]}, {"55060895": [32, 3, 224]}, {"55060899": [8]}, {"55060904": [143, 166]}, {"55060907": [48, 132, 197]}, {"55060911": [4, 8, 16, 10, 114]}, {"55060920": [143, 185]}, {"55060923": [44, 135, 37]}, {"55060927": [4, 8, 16, 10, 114]}, {"55060936": [60, 10, 128, 64, 37, 74, 32, 8, 141, 75]}, {"55060947": [12, 17, 96]}, {"55060951": [2]}, {"55060956": [149, 69]}, {"55060959": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060972": [60, 9, 128, 64, 37, 41, 32, 24, 129, 42]}, {"55060983": [3, 5, 64]}, {"55060987": [11, 1, 42, 72, 32, 129, 40]}, {"55060996": [52, 10]}, {"55060999": [127, 21, 10]}, {"55061003": [6]}, {"55061008": [60, 10, 128, 18, 37, 74, 165, 208, 133, 72]}, {"55061019": [144, 33, 8]}, {"55061023": [1, 165, 72]}, {"55061027": [144, 161, 32]}, {"55061032": [3, 224]}, {"55061035": [8]}, {"55061040": [60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061051": [12, 17, 32]}, {"55061055": [2]}, {"55061060": [129, 3]}, {"55061063": [2]}, {"55061065": [3, 15, 195]}, {"55061069": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061083": [8]}, {"55061088": [144, 69]}, {"55061091": [3, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061103": [12, 17, 32]}, {"55061107": [2]}, {"55061112": [145, 5]}, {"55061115": [3, 3, 224]}, {"55061119": [8]}, {"55061124": [143, 162]}, {"55061127": [36, 144, 69]}, {"55061132": [60, 8, 128, 64, 37, 8, 32]}, {"55061140": [133, 9]}, {"55061143": [2, 17, 32]}, {"55061147": [4, 52, 10]}, {"55061151": [1, 165, 10]}, {"55061156": [16]}, {"55061159": [24, 52, 5]}, {"55061163": [65, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061175": [12, 17, 32]}, {"55061179": [19]}, {"55061184": [145, 5]}, {"55061187": [1, 175, 164]}, {"55061192": [175, 165]}, {"55061195": [4, 175, 166]}, {"55061199": [8, 39, 189, 255, 232, 175, 191]}, {"55061207": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061219": [6, 145, 6]}, {"55061223": [7, 141, 9]}, {"55061227": [8, 1, 32, 248, 9]}, {"55061236": [143, 191]}, {"55061239": [16, 39, 189]}, {"55061243": [24, 143, 164]}, {"55061248": [143, 165]}, {"55061251": [4, 143, 166]}, {"55061255": [8, 3, 224]}, {"55061259": [8]}, {"55061264": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061275": [16, 175, 163]}, {"55061279": [20, 175, 191]}, {"55061283": [24, 12, 16, 10, 209]}, {"55061292": [143, 162]}, {"55061295": [16, 143, 163]}, {"55061299": [20, 143, 191]}, {"55061303": [24, 39, 189]}, {"55061307": [32, 3, 224]}, {"55061311": [8]}, {"55061316": [39, 189, 255, 232, 175, 191]}, {"55061323": [16, 60, 8, 128, 64, 37, 8, 32, 8, 173]}, {"55061336": [173]}, {"55061339": [4, 173]}, {"55061343": [8, 173]}, {"55061347": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061363": [42]}, {"55061369": [9, 15, 195, 1, 33, 32, 38]}, {"55061377": [129, 32, 35, 141, 5, 4, 40, 12, 16, 11, 11]}, {"55061392": [4, 64]}, {"55061395": [34]}, {"55061400": [52, 68]}, {"55061404": [12, 16, 11, 114]}, {"55061412": [16, 96]}, {"55061415": [12]}, {"55061420": [60, 8, 128, 64, 37, 8, 32, 8, 140, 105]}, {"55061432": [173, 9]}, {"55061436": [140, 105]}, {"55061439": [4, 173, 9]}, {"55061443": [4, 140, 105]}, {"55061447": [8, 173, 9]}, {"55061451": [8, 52, 9]}, {"55061455": [1, 173, 9]}, {"55061459": [12, 144, 98]}, {"55061464": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061480": [52, 1]}, {"55061483": [10, 21, 65]}, {"55061487": [6]}, {"55061492": [149, 42]}, {"55061495": [28, 49, 74, 240, 31]}, {"55061501": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061511": [28, 129, 9, 4, 36, 5, 33]}, {"55061519": [2]}, {"55061525": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061535": [16, 39, 189]}, {"55061539": [24, 3, 224]}, {"55061543": [8]}, {"55061548": [39, 189, 255, 232, 175, 191]}, {"55061555": [16, 12, 16, 11, 25]}, {"55061564": [36, 1, 255, 255, 16, 65]}, {"55061571": [4]}, {"55061576": [52, 68]}, {"55061580": [12, 16, 11, 77]}, {"55061588": [143, 191]}, {"55061591": [16, 39, 189]}, {"55061595": [24, 3, 224]}, {"55061599": [8]}, {"55061604": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061615": [164, 52, 8]}, {"55061620": [52, 137]}, {"55061624": [148, 170]}, {"55061628": [52, 1, 1, 156, 21, 65]}, {"55061635": [8]}, {"55061640": [52, 8]}, {"55061643": [3, 148, 171]}, {"55061647": [28, 49, 105]}, {"55061651": [255, 49, 98, 31]}, {"55061657": [2, 18, 2, 16]}, {"55061663": [31]}, {"55061668": [52, 1]}, {"55061671": [10, 21, 65]}, {"55061675": [14]}, {"55061680": [148, 171]}, {"55061683": [28, 52, 1]}, {"55061687": [16, 20, 65]}, {"55061691": [8]}, {"55061696": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061707": [4]}, {"55061712": [36, 2, 255, 255, 16]}, {"55061719": [21]}, {"55061724": [52, 8]}, {"55061727": [1, 49, 105]}, {"55061731": [31, 52, 1]}, {"55061735": [21, 21, 65]}, {"55061739": [12]}, {"55061744": [52, 1]}, {"55061747": [62, 16, 129]}, {"55061751": [7]}, {"55061756": [52, 1]}, {"55061759": [66, 16, 129]}, {"55061763": [4]}, {"55061768": [36, 2, 255, 255, 16]}, {"55061775": [7]}, {"55061780": [52, 8]}, {"55061783": [2, 144, 169, 1, 65]}, {"55061789": [2, 18]}, {"55061793": [72, 16, 37]}, {"55061797": [2, 18]}, {"55061801": [73, 16, 37, 3, 224]}, {"55061807": [8]}, {"55061812": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061824": [129, 9]}, {"55061828": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061851": [4, 141, 9]}, {"55061856": [17, 32]}, {"55061859": [23]}, {"55061865": [9, 82, 2, 49, 75, 248]}, {"55061873": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061896": [49, 34]}, {"55061899": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061920": [60, 12, 128, 64, 37, 140, 28]}, {"55061928": [129, 140]}, {"55061932": [17, 108]}, {"55061935": [4, 165, 32]}, {"55061939": [2, 161, 43]}, {"55061943": [2, 161, 34]}, {"55061947": [3, 173, 36]}, {"55061951": [4, 3, 224]}, {"55061955": [8]}, {"55061960": [39, 189, 255, 224, 175, 176]}, {"55061967": [16, 175, 177]}, {"55061971": [20, 175, 191]}, {"55061975": [24, 52, 130]}, {"55061980": [52, 80]}, {"55061984": [38, 8, 255, 128, 5]}, {"55061991": [18]}, {"55061996": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55062007": [16, 1, 9]}, {"55062011": [24]}, {"55062014": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55062032": [142, 40]}, {"55062035": [12, 1]}, {"55062038": [248, 9]}, {"55062044": [20, 80, 255, 239]}, {"55062052": [54, 35]}, {"55062056": [16]}, {"55062059": [2]}, {"55062064": [52, 3]}, {"55062068": [143, 176]}, {"55062071": [16, 143, 177]}, {"55062075": [20, 143, 191]}, {"55062079": [24, 39, 189]}, {"55062083": [32, 3, 224]}, {"55062087": [8]}, {"55062092": [140, 136, 29, 44, 52, 9]}, {"55062099": [1]}, {"55062101": [9, 78]}, {"55062104": [1, 9, 16, 36, 16, 64]}, {"55062111": [36]}, {"55062116": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062131": [164, 52, 1]}, {"55062135": [61, 17, 129]}, {"55062139": [10]}, {"55062145": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062155": [25]}, {"55062160": [52, 13]}, {"55062163": [1, 161, 141, 29, 40, 37, 74]}, {"55062171": [3, 16]}, {"55062175": [9]}, {"55062180": [52, 12]}, {"55062183": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062199": [14]}, {"55062204": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062240": [60, 9, 128, 64, 37, 41, 32, 24, 161, 40]}, {"55062252": [52, 2]}, {"55062256": [3, 224]}, {"55062259": [8]}, {"55062264": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062276": [16]}, {"55062279": [34]}, {"55062284": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062296": [16]}, {"55062299": [29]}, {"55062304": [52, 2]}, {"55062307": [255, 32, 232, 255, 166, 33, 8]}, {"55062315": [97, 16]}, {"55062319": [24]}, {"55062324": [52, 8]}, {"55062327": [100, 16]}, {"55062331": [21]}, {"55062336": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062351": [1, 160, 40, 14, 222, 52, 8]}, {"55062359": [104, 16]}, {"55062363": [13]}, {"55062368": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062383": [4, 160, 40, 14, 222, 52, 8]}, {"55062391": [106, 16]}, {"55062395": [5]}, {"55062400": [52, 5]}, {"55062403": [3, 52, 8]}, {"55062407": [107, 16]}, {"55062411": [1]}, {"55062416": [60, 9, 128, 64, 37, 41, 32, 24, 60, 10, 128, 64, 37, 74, 32, 27, 129, 44]}, {"55062436": [17, 136]}, {"55062439": [11, 33, 41]}, {"55062443": [1, 21, 42, 255, 252]}, {"55062452": [60, 9, 128, 64, 37, 41, 32, 23, 33, 41]}, {"55062463": [1, 17, 42]}, {"55062467": [4, 129, 44]}, {"55062472": [21, 128, 255, 252]}, {"55062480": [161, 40]}, {"55062484": [3, 224]}, {"55062487": [8]}, {"55062493": [96, 120, 33, 129, 236, 14, 223, 49, 142]}, {"55062503": [128, 17, 192]}, {"55062507": [3, 52, 3]}, {"55062511": [5, 3, 224]}, {"55062515": [8, 52, 2]}, {"55062519": [2, 3, 224]}, {"55062523": [8]}, {"55062525": [96, 16, 33, 133, 194]}, {"55062531": [164, 60, 8, 128, 18, 37, 8, 165, 208, 129, 9, 14, 223, 53, 41]}, {"55062547": [128, 161, 9, 14, 223, 3, 224]}, {"55062555": [8]}, {"55062560": [175, 164]}, {"55062563": [104, 175, 165]}, {"55062567": [108, 175, 166]}, {"55062571": [112, 175, 167]}, {"55062575": [116, 39, 189, 255, 232, 175, 163]}, {"55062583": [16, 175, 191]}, {"55062587": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062603": [32, 21]}, {"55062607": [31]}, {"55062612": [60, 9, 128, 64, 37, 41, 32, 27, 52, 10]}, {"55062623": [255, 161, 42]}, {"55062628": [60, 9, 128, 64, 37, 41, 32, 24, 36, 10, 255, 255, 52, 12]}, {"55062643": [3, 33, 74]}, {"55062647": [1, 17, 76]}, {"55062651": [20, 1, 42, 88, 32, 129, 104]}, {"55062660": [17]}, {"55062662": [255, 251]}, {"55062668": [60, 9, 128, 64, 37, 41, 32, 27, 161, 42]}, {"55062680": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062691": [1, 165, 42]}, {"55062696": [60, 9, 128, 65, 52, 10]}, {"55062703": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 209]}, {"55062732": [143, 163]}, {"55062735": [16, 143, 191]}, {"55062739": [20, 39, 189]}, {"55062743": [24, 143, 164]}, {"55062747": [104, 143, 165]}, {"55062751": [108, 143, 166]}, {"55062755": [112, 143, 167]}, {"55062759": [116, 132, 110, 19, 196, 3, 224]}, {"55062767": [8]}, {"55062772": [147, 25]}, {"55062775": [116, 52, 1]}, {"55062779": [255, 23, 33]}, {"55062783": [2]}, {"55062788": [52, 25]}, {"55062791": [44, 3, 224]}, {"55062795": [8, 167, 185]}, {"55062799": [154, 147, 44]}, {"55062803": [116, 52, 1]}, {"55062807": [255, 21, 129]}, {"55062811": [2]}, {"55062816": [52, 12]}, {"55062819": [44, 3, 224]}, {"55062823": [8]}, {"55062828": [145, 174]}, {"55062831": [116, 52, 1]}, {"55062835": [255, 21, 193]}, {"55062839": [2]}, {"55062844": [52, 14]}, {"55062847": [44, 3, 224]}, {"55062851": [8, 167, 174]}, {"55062855": [154, 145, 207]}, {"55062859": [116, 52, 1]}, {"55062863": [255, 21, 225]}, {"55062867": [2]}, {"55062872": [52, 15]}, {"55062875": [44, 3, 224]}, {"55062879": [8, 167, 175]}, {"55062883": [154, 60, 8, 128, 64, 37, 8, 32, 28, 142, 9]}, {"55062895": [104, 173, 9]}, {"55062900": [142, 9]}, {"55062903": [108, 173, 9]}, {"55062907": [4, 150, 9]}, {"55062911": [112, 165, 9]}, {"55062915": [8, 150, 9]}, {"55062919": [156, 165, 9]}, {"55062923": [10, 3, 224]}, {"55062927": [8, 142, 14]}, {"55062931": [4, 39, 189, 255, 224, 175, 176]}, {"55062939": [16, 175, 177]}, {"55062943": [20, 175, 191]}, {"55062947": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 28, 142, 8]}, {"55062967": [4, 17]}, {"55062971": [5]}, {"55062976": [12, 16, 12, 143]}, {"55062984": [16]}, {"55062987": [3]}, {"55062992": [12, 16, 12, 162]}, {"55063000": [12, 16, 12, 130, 52, 4]}, {"55063008": [12, 16, 12, 130, 52, 4]}, {"55063015": [1, 12, 16, 12, 130, 52, 4]}, {"55063023": [2, 143, 176]}, {"55063027": [16, 143, 177]}, {"55063031": [20, 143, 191]}, {"55063035": [24, 39, 189]}, {"55063039": [32, 3, 224]}, {"55063043": [8]}, {"55063048": [2, 4, 64, 33, 145, 9]}, {"55063055": [108, 52, 1]}, {"55063059": [255, 17, 33]}, {"55063063": [7]}, {"55063068": [2, 9, 72, 33, 145, 41]}, {"55063075": [116, 52, 1]}, {"55063079": [44, 17, 33]}, {"55063083": [2]}, {"55063088": [161, 9]}, {"55063091": [105, 3, 224]}, {"55063095": [8]}, {"55063100": [39, 189, 255, 232, 175, 191]}, {"55063107": [16, 142, 40]}, {"55063112": [174, 8]}, {"55063115": [64, 142, 40]}, {"55063119": [4, 174, 8]}, {"55063123": [68, 150, 40]}, {"55063127": [8, 166, 8]}, {"55063131": [72, 162]}, {"55063134": [15, 51, 146, 8]}, {"55063139": [74, 52, 1]}, {"55063143": [255, 21, 1]}, {"55063147": [3]}, {"55063152": [12, 16, 12, 176]}, {"55063160": [143, 191]}, {"55063163": [16, 39, 189]}, {"55063167": [24, 3, 224]}, {"55063171": [8]}, {"55063176": [142, 8]}, {"55063179": [64, 174, 8]}, {"55063183": [104, 142, 8]}, {"55063187": [68, 174, 8]}, {"55063191": [108, 150, 8]}, {"55063195": [72, 166, 8]}, {"55063199": [112, 146, 8]}, {"55063203": [104, 52, 1]}, {"55063207": [255, 21, 1]}, {"55063211": [3]}, {"55063216": [52, 8]}, {"55063219": [1, 162, 8, 15, 51, 3, 224]}, {"55063227": [8]}, {"55063232": [39, 189, 255, 232, 175, 191]}, {"55063239": [16, 150, 8]}, {"55063243": [156, 49, 8]}, {"55063247": [64, 17]}, {"55063251": [5]}, {"55063256": [150, 8]}, {"55063259": [112, 49, 8, 255, 15, 53, 8]}, {"55063267": [48, 166, 8]}, {"55063271": [112, 146, 40]}, {"55063275": [1, 162, 8]}, {"55063279": [105, 150, 40]}, {"55063283": [2, 166, 8]}, {"55063287": [106, 142, 40]}, {"55063291": [4, 174, 8]}, {"55063295": [108, 12, 16, 12, 202, 52, 4]}, {"55063304": [12, 16, 12, 202, 52, 4]}, {"55063311": [1, 12, 16, 12, 202, 52, 4]}, {"55063319": [2, 143, 191]}, {"55063323": [16, 39, 189]}, {"55063327": [24, 3, 224]}, {"55063331": [8]}, {"55063336": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 51, 212, 145, 10]}, {"55063351": [108, 52, 1]}, {"55063355": [255, 17, 65]}, {"55063359": [5]}, {"55063364": [1, 42, 72, 33, 145, 41]}, {"55063372": [21, 32]}, {"55063375": [28]}, {"55063380": [60, 9, 128, 64, 37, 41, 51, 199, 37, 41]}, {"55063391": [1, 145, 42]}, {"55063396": [17, 64]}, {"55063399": [19]}, {"55063404": [2, 10, 88, 33, 145, 107]}, {"55063411": [116, 52, 1]}, {"55063415": [255, 17, 97, 255, 248]}, {"55063424": [146, 12]}, {"55063427": [108, 17, 138, 255, 245]}, {"55063436": [146, 12]}, {"55063439": [109, 17, 138, 255, 242]}, {"55063448": [146, 12]}, {"55063451": [110, 17, 138, 255, 239]}, {"55063460": [161, 11]}, {"55063463": [105, 161, 10]}, {"55063467": [108, 16]}, {"55063471": [4]}, {"55063476": [52, 9]}, {"55063479": [255, 161, 9]}, {"55063483": [105, 161, 9]}, {"55063487": [108, 3, 224]}, {"55063491": [8]}, {"55063496": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063509": [1, 1, 1, 1, 1]}, {"55063515": [1, 1, 1, 1, 1]}, {"55063521": [1]}, {"55063523": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063533": [51, 8, 33, 32, 15]}, {"55063539": [71, 21, 234]}, {"55063543": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063555": [164]}, {"55063557": [15, 122, 3, 20, 64]}, {"55063563": [5, 52, 2, 72, 48, 21, 226]}, {"55063571": [7]}, {"55063576": [36, 25]}, {"55063579": [3, 16]}, {"55063583": [4, 52, 2, 99, 17, 21, 226]}, {"55063591": [2]}, {"55063596": [36, 25]}, {"55063599": [3, 3, 224]}, {"55063603": [8]}, {"55063608": [141, 173, 138, 160, 52, 2, 128]}, {"55063616": [16, 77]}, {"55063619": [2]}, {"55063624": [16]}, {"55063627": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063643": [1, 16, 64]}, {"55063647": [2]}, {"55063652": [16]}, {"55063655": [2, 52, 2]}, {"55063659": [1, 161, 226, 28, 191, 3, 224]}, {"55063667": [8]}, {"55063673": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063687": [164]}, {"55063689": [15, 122, 3, 20, 64]}, {"55063695": [5, 52, 2, 72, 48, 21, 226]}, {"55063703": [7]}, {"55063708": [36, 25]}, {"55063711": [3, 16]}, {"55063715": [4, 52, 2, 99, 17, 21, 226]}, {"55063723": [2]}, {"55063728": [36, 25]}, {"55063731": [3, 3, 224]}, {"55063735": [8]}, {"55063740": [162, 37]}, {"55063743": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063755": [4, 142, 10]}, {"55063760": [17, 64]}, {"55063763": [11]}, {"55063769": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063781": [24, 194, 2, 23]}, {"55063787": [3, 49, 89]}, {"55063791": [255, 129, 234]}, {"55063796": [3, 42, 200, 37, 8, 16, 13, 50, 161, 249]}, {"55063808": [3, 224]}, {"55063811": [8]}] \ No newline at end of file +[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 196]}, {"11311804": [12, 16, 11, 205]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 190, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 132]}, {"11427312": [12, 16, 13, 45]}, {"11427320": [12, 16, 11, 200]}, {"11427332": [0, 0]}, {"11427335": [0]}, {"11431496": [12, 16, 11, 195, 1, 15, 192, 33]}, {"11559936": [130]}, {"11559938": [14, 222]}, {"11559948": [49, 248, 0, 2]}, {"11562028": [12, 16, 13, 78]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 61]}, {"11882076": [12, 16, 13, 26]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 99, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 106, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 113, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 92, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 140]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 18]}, {"12427480": [12, 16, 10, 106]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 110]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 12, 39, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 152]}, {"12491480": [12, 16, 10, 161]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"12584172": [8, 16, 12, 8]}, {"12587128": [60, 9, 128, 17, 129, 42, 166, 76, 52, 11]}, {"12587139": [9, 17, 75]}, {"12587144": [52, 2, 0, 0, 52]}, {"12587151": [0]}, {"12589216": [12, 16, 12, 26]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 147]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 120]}, {"14109028": [16, 0]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 128, 73, 14, 222]}, {"14149508": [52]}, {"14149510": [0, 1, 2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 208]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 224]}, {"14624335": [118]}, {"14720872": [128]}, {"14720874": [14, 222]}, {"14720884": [49, 248, 0, 4]}, {"14720944": [12, 16, 11, 216]}, {"14848904": [8, 16, 11, 247]}, {"14852164": [12, 16, 12, 0]}, {"14872723": [52]}, {"15327704": [52, 9, 64, 0]}, {"15327728": [52]}, {"15327730": [91, 8]}, {"15327744": [52]}, {"15327746": [0, 10]}, {"15327757": [169]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55057455": [1]}, {"55057457": [2]}, {"55057459": [4]}, {"55057461": [8]}, {"55057467": [16]}, {"55057471": [32]}, {"55057473": [64]}, {"55057475": [128, 1]}, {"55057502": [2]}, {"55057504": [4]}, {"55057514": [8]}, {"55057516": [16]}, {"55057518": [32]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 236, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 48, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 76, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 104, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 220, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 108, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 140, 128, 64, 38, 132, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 172, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 39, 212, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 28, 128, 64, 40]}, {"55059600": [83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 3, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 44, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [2, 52, 2]}, {"55060003": [69, 52, 2]}, {"55060007": [70, 3, 224]}, {"55060011": [8]}, {"55060016": [144, 136]}, {"55060019": [162, 49, 8]}, {"55060023": [6, 17]}, {"55060027": [2, 52, 2]}, {"55060031": [55, 52, 2]}, {"55060035": [56, 3, 224]}, {"55060039": [8]}, {"55060044": [144, 136]}, {"55060047": [161, 49, 8]}, {"55060051": [32, 17]}, {"55060055": [2, 52, 2]}, {"55060059": [121, 52, 2]}, {"55060063": [122, 3, 224]}, {"55060067": [8]}, {"55060072": [144, 136]}, {"55060075": [161, 49, 8]}, {"55060079": [4, 17]}, {"55060083": [2, 52, 2]}, {"55060087": [119, 52, 2]}, {"55060091": [120, 3, 224]}, {"55060095": [8]}, {"55060100": [144, 136]}, {"55060103": [50, 17]}, {"55060107": [2, 52, 2]}, {"55060111": [192, 52, 2]}, {"55060115": [193, 3, 224]}, {"55060119": [8]}, {"55060124": [144, 136]}, {"55060127": [163, 49, 8]}, {"55060131": [3, 17]}, {"55060135": [2, 52, 2]}, {"55060139": [77, 52, 162]}, {"55060144": [3, 224]}, {"55060147": [8]}, {"55060152": [144, 136]}, {"55060155": [163, 49, 8]}, {"55060159": [24, 17]}, {"55060163": [2, 52, 2]}, {"55060167": [77, 52, 162]}, {"55060172": [3, 224]}, {"55060175": [8]}, {"55060180": [3, 224]}, {"55060183": [8]}, {"55060188": [52, 8]}, {"55060191": [1, 160, 136]}, {"55060195": [62, 3, 224]}, {"55060199": [8]}, {"55060204": [36, 136]}, {"55060207": [134, 36, 9, 255, 255, 37, 41]}, {"55060215": [1, 52, 1]}, {"55060219": [3]}, {"55060221": [41, 8, 42, 20, 32]}, {"55060227": [7]}, {"55060232": [1, 9, 80, 33, 145, 75]}, {"55060240": [52, 1]}, {"55060243": [255, 21, 97, 255, 247]}, {"55060252": [161, 69]}, {"55060256": [3, 224]}, {"55060259": [8]}, {"55060264": [36, 136]}, {"55060267": [168, 1, 6, 64, 33, 145, 9]}, {"55060276": [1, 37, 72, 37, 161, 9]}, {"55060284": [3, 224]}, {"55060287": [8]}, {"55060292": [36, 136]}, {"55060295": [188, 1, 5, 64, 33, 129, 9]}, {"55060304": [5, 33]}, {"55060307": [2]}, {"55060312": [52, 9]}, {"55060316": [37, 41]}, {"55060319": [1, 161, 9]}, {"55060324": [3, 224]}, {"55060327": [8]}, {"55060332": [52, 8]}, {"55060335": [1, 160, 136]}, {"55060339": [61, 52, 8]}, {"55060343": [20, 160, 136]}, {"55060347": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [50, 160, 136]}, {"55060375": [58, 52, 8]}, {"55060379": [48, 164, 136, 19, 244, 160, 136]}, {"55060387": [51, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [2, 160, 136]}, {"55060403": [50, 52, 8]}, {"55060407": [1, 160, 136]}, {"55060411": [58, 160, 136]}, {"55060415": [60, 52, 8]}, {"55060419": [96, 164, 136, 19, 244, 160, 136]}, {"55060427": [51, 3, 224]}, {"55060431": [8]}, {"55060436": [144, 136]}, {"55060439": [124, 52, 1]}, {"55060443": [255, 17, 1]}, {"55060447": [6, 52, 2]}, {"55060451": [107, 144, 136]}, {"55060455": [148, 45, 8]}, {"55060459": [6, 17]}, {"55060463": [2, 52, 2]}, {"55060467": [106, 52, 2]}, {"55060471": [3, 3, 224]}, {"55060475": [8]}, {"55060480": [144, 136]}, {"55060483": [123, 52, 1]}, {"55060487": [255, 17, 1]}, {"55060491": [2, 52, 162]}, {"55060496": [52, 2]}, {"55060499": [12, 3, 224]}, {"55060503": [8]}, {"55060508": [52, 8]}, {"55060511": [7, 160, 136]}, {"55060515": [123, 3, 224]}, {"55060519": [8]}, {"55060524": [52, 8]}, {"55060527": [1]}, {"55060529": [168, 64, 4, 140, 137]}, {"55060535": [164, 1, 40, 72, 37, 172, 137]}, {"55060543": [164, 3, 224]}, {"55060547": [8]}, {"55060552": [48, 132]}, {"55060555": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060567": [140, 16, 129]}, {"55060571": [22, 145, 2]}, {"55060575": [117, 52, 1]}, {"55060579": [141, 16, 129]}, {"55060583": [19, 145, 2]}, {"55060587": [117, 16, 128]}, {"55060591": [17, 145, 2]}, {"55060595": [116, 52, 1]}, {"55060599": [138, 16, 129]}, {"55060603": [14, 145, 2]}, {"55060607": [116, 52, 1]}, {"55060611": [139, 16, 129]}, {"55060615": [11, 145, 2]}, {"55060619": [116, 52, 1]}, {"55060623": [88, 16, 129]}, {"55060627": [8, 52, 2]}, {"55060632": [52, 1]}, {"55060635": [120, 16, 129]}, {"55060639": [5, 52, 2]}, {"55060644": [52, 1]}, {"55060647": [121, 16, 129]}, {"55060651": [2, 52, 2]}, {"55060656": [52, 2]}, {"55060659": [255, 3, 224]}, {"55060663": [8]}, {"55060668": [39, 189, 255, 224, 175, 191]}, {"55060675": [16, 175, 176]}, {"55060679": [20, 12, 16, 11, 11]}, {"55060688": [4, 65]}, {"55060691": [2]}, {"55060696": [52, 2]}, {"55060699": [91]}, {"55060701": [64, 32, 33, 12, 16, 11, 114]}, {"55060712": [16, 96]}, {"55060715": [22, 175, 163]}, {"55060719": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060728": [133, 9]}, {"55060731": [2, 17, 32]}, {"55060735": [3, 52, 10]}, {"55060739": [1, 16]}, {"55060743": [12, 165, 10]}, {"55060748": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060759": [6, 144, 102]}, {"55060763": [7, 140, 105]}, {"55060767": [8, 1, 32, 248, 9]}, {"55060776": [143, 163]}, {"55060779": [28, 144, 101]}, {"55060783": [1, 12, 1, 191, 115, 2, 32, 32, 33, 143, 163]}, {"55060795": [28, 144, 101]}, {"55060799": [3, 16]}, {"55060803": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060815": [6]}, {"55060817": [74]}, {"55060819": [24]}, {"55060822": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060832": [60, 8, 128, 64, 37, 8, 32]}, {"55060840": [133, 9]}, {"55060843": [2, 17, 32]}, {"55060847": [3, 52, 10]}, {"55060851": [1, 165, 10]}, {"55060856": [52, 5]}, {"55060859": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060871": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060882": [48, 33, 143, 191]}, {"55060887": [16, 143, 176]}, {"55060891": [20, 39, 189]}, {"55060895": [32, 3, 224]}, {"55060899": [8]}, {"55060904": [143, 166]}, {"55060907": [48, 132, 197]}, {"55060911": [4, 8, 16, 10, 114]}, {"55060920": [143, 185]}, {"55060923": [44, 135, 37]}, {"55060927": [4, 8, 16, 10, 114]}, {"55060936": [60, 10, 128, 64, 37, 74, 32, 8, 141, 75]}, {"55060947": [12, 17, 96]}, {"55060951": [2]}, {"55060956": [149, 69]}, {"55060959": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060972": [60, 9, 128, 64, 37, 41, 32, 24, 129, 42]}, {"55060983": [3, 5, 64]}, {"55060987": [11, 1, 42, 72, 32, 129, 40]}, {"55060996": [52, 10]}, {"55060999": [127, 21, 10]}, {"55061003": [6]}, {"55061008": [60, 10, 128, 18, 37, 74, 165, 208, 133, 72]}, {"55061019": [144, 33, 8]}, {"55061023": [1, 165, 72]}, {"55061027": [144, 161, 32]}, {"55061032": [3, 224]}, {"55061035": [8]}, {"55061040": [60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061051": [12, 17, 32]}, {"55061055": [2]}, {"55061060": [129, 3]}, {"55061063": [2]}, {"55061065": [3, 15, 195]}, {"55061069": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061083": [8]}, {"55061088": [144, 69]}, {"55061091": [3, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061103": [12, 17, 32]}, {"55061107": [2]}, {"55061112": [145, 5]}, {"55061115": [3, 3, 224]}, {"55061119": [8]}, {"55061124": [143, 162]}, {"55061127": [36, 144, 69]}, {"55061132": [60, 8, 128, 64, 37, 8, 32]}, {"55061140": [133, 9]}, {"55061143": [2, 17, 32]}, {"55061147": [4, 52, 10]}, {"55061151": [1, 165, 10]}, {"55061156": [16]}, {"55061159": [24, 52, 5]}, {"55061163": [65, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061175": [12, 17, 32]}, {"55061179": [19]}, {"55061184": [145, 5]}, {"55061187": [1, 175, 164]}, {"55061192": [175, 165]}, {"55061195": [4, 175, 166]}, {"55061199": [8, 39, 189, 255, 232, 175, 191]}, {"55061207": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061219": [6, 145, 6]}, {"55061223": [7, 141, 9]}, {"55061227": [8, 1, 32, 248, 9]}, {"55061236": [143, 191]}, {"55061239": [16, 39, 189]}, {"55061243": [24, 143, 164]}, {"55061248": [143, 165]}, {"55061251": [4, 143, 166]}, {"55061255": [8, 3, 224]}, {"55061259": [8]}, {"55061264": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061275": [16, 175, 163]}, {"55061279": [20, 175, 191]}, {"55061283": [24, 12, 16, 10, 209]}, {"55061292": [143, 162]}, {"55061295": [16, 143, 163]}, {"55061299": [20, 143, 191]}, {"55061303": [24, 39, 189]}, {"55061307": [32, 3, 224]}, {"55061311": [8]}, {"55061316": [39, 189, 255, 232, 175, 191]}, {"55061323": [16, 60, 8, 128, 64, 37, 8, 32, 8, 173]}, {"55061336": [173]}, {"55061339": [4, 173]}, {"55061343": [8, 173]}, {"55061347": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061363": [42]}, {"55061369": [9, 15, 195, 1, 33, 32, 38]}, {"55061377": [129, 32, 35, 141, 5, 4, 40, 12, 16, 11, 11]}, {"55061392": [4, 64]}, {"55061395": [34]}, {"55061400": [52, 68]}, {"55061404": [12, 16, 11, 114]}, {"55061412": [16, 96]}, {"55061415": [12]}, {"55061420": [60, 8, 128, 64, 37, 8, 32, 8, 140, 105]}, {"55061432": [173, 9]}, {"55061436": [140, 105]}, {"55061439": [4, 173, 9]}, {"55061443": [4, 140, 105]}, {"55061447": [8, 173, 9]}, {"55061451": [8, 52, 9]}, {"55061455": [1, 173, 9]}, {"55061459": [12, 144, 98]}, {"55061464": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061480": [52, 1]}, {"55061483": [10, 21, 65]}, {"55061487": [6]}, {"55061492": [149, 42]}, {"55061495": [28, 49, 74, 240, 31]}, {"55061501": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061511": [28, 129, 9, 4, 36, 5, 33]}, {"55061519": [2]}, {"55061525": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061535": [16, 39, 189]}, {"55061539": [24, 3, 224]}, {"55061543": [8]}, {"55061548": [39, 189, 255, 232, 175, 191]}, {"55061555": [16, 12, 16, 11, 25]}, {"55061564": [36, 1, 255, 255, 16, 65]}, {"55061571": [4]}, {"55061576": [52, 68]}, {"55061580": [12, 16, 11, 77]}, {"55061588": [143, 191]}, {"55061591": [16, 39, 189]}, {"55061595": [24, 3, 224]}, {"55061599": [8]}, {"55061604": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061615": [164, 52, 8]}, {"55061620": [52, 137]}, {"55061624": [148, 170]}, {"55061628": [52, 1, 1, 156, 21, 65]}, {"55061635": [8]}, {"55061640": [52, 8]}, {"55061643": [3, 148, 171]}, {"55061647": [28, 49, 105]}, {"55061651": [255, 49, 98, 31]}, {"55061657": [2, 18, 2, 16]}, {"55061663": [31]}, {"55061668": [52, 1]}, {"55061671": [10, 21, 65]}, {"55061675": [14]}, {"55061680": [148, 171]}, {"55061683": [28, 52, 1]}, {"55061687": [16, 20, 65]}, {"55061691": [8]}, {"55061696": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061707": [4]}, {"55061712": [36, 2, 255, 255, 16]}, {"55061719": [21]}, {"55061724": [52, 8]}, {"55061727": [1, 49, 105]}, {"55061731": [31, 52, 1]}, {"55061735": [21, 21, 65]}, {"55061739": [12]}, {"55061744": [52, 1]}, {"55061747": [62, 16, 129]}, {"55061751": [7]}, {"55061756": [52, 1]}, {"55061759": [66, 16, 129]}, {"55061763": [4]}, {"55061768": [36, 2, 255, 255, 16]}, {"55061775": [7]}, {"55061780": [52, 8]}, {"55061783": [2, 144, 169, 1, 65]}, {"55061789": [2, 18]}, {"55061793": [72, 16, 37]}, {"55061797": [2, 18]}, {"55061801": [73, 16, 37, 3, 224]}, {"55061807": [8]}, {"55061812": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061824": [129, 9]}, {"55061828": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061851": [4, 141, 9]}, {"55061856": [17, 32]}, {"55061859": [23]}, {"55061865": [9, 82, 2, 49, 75, 248]}, {"55061873": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061896": [49, 34]}, {"55061899": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061920": [60, 12, 128, 64, 37, 140, 28]}, {"55061928": [129, 140]}, {"55061932": [17, 108]}, {"55061935": [4, 165, 32]}, {"55061939": [2, 161, 43]}, {"55061943": [2, 161, 34]}, {"55061947": [3, 173, 36]}, {"55061951": [4, 3, 224]}, {"55061955": [8]}, {"55061960": [39, 189, 255, 224, 175, 176]}, {"55061967": [16, 175, 177]}, {"55061971": [20, 175, 191]}, {"55061975": [24, 52, 130]}, {"55061980": [52, 80]}, {"55061984": [38, 8, 255, 128, 5]}, {"55061991": [18]}, {"55061996": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55062007": [16, 1, 9]}, {"55062011": [24]}, {"55062014": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55062032": [142, 40]}, {"55062035": [12, 1]}, {"55062038": [248, 9]}, {"55062044": [20, 80, 255, 239]}, {"55062052": [54, 35]}, {"55062056": [16]}, {"55062059": [2]}, {"55062064": [52, 3]}, {"55062068": [143, 176]}, {"55062071": [16, 143, 177]}, {"55062075": [20, 143, 191]}, {"55062079": [24, 39, 189]}, {"55062083": [32, 3, 224]}, {"55062087": [8]}, {"55062092": [140, 136, 29, 44, 52, 9]}, {"55062099": [1]}, {"55062101": [9, 78]}, {"55062104": [1, 9, 16, 36, 16, 64]}, {"55062111": [36]}, {"55062116": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062131": [164, 52, 1]}, {"55062135": [61, 17, 129]}, {"55062139": [10]}, {"55062145": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062155": [25]}, {"55062160": [52, 13]}, {"55062163": [1, 161, 141, 29, 40, 37, 74]}, {"55062171": [3, 16]}, {"55062175": [9]}, {"55062180": [52, 12]}, {"55062183": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062199": [14]}, {"55062204": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062240": [60, 9, 128, 64, 37, 41, 32, 24, 161, 40]}, {"55062252": [52, 2]}, {"55062256": [3, 224]}, {"55062259": [8]}, {"55062264": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062276": [16]}, {"55062279": [34]}, {"55062284": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062296": [16]}, {"55062299": [29]}, {"55062304": [52, 2]}, {"55062307": [255, 32, 232, 255, 166, 33, 8]}, {"55062315": [97, 16]}, {"55062319": [24]}, {"55062324": [52, 8]}, {"55062327": [100, 16]}, {"55062331": [21]}, {"55062336": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062351": [1, 160, 40, 14, 222, 52, 8]}, {"55062359": [104, 16]}, {"55062363": [13]}, {"55062368": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062383": [4, 160, 40, 14, 222, 52, 8]}, {"55062391": [106, 16]}, {"55062395": [5]}, {"55062400": [52, 5]}, {"55062403": [3, 52, 8]}, {"55062407": [107, 16]}, {"55062411": [1]}, {"55062416": [60, 9, 128, 64, 37, 41, 32, 24, 60, 10, 128, 64, 37, 74, 32, 27, 129, 44]}, {"55062436": [17, 136]}, {"55062439": [11, 33, 41]}, {"55062443": [1, 21, 42, 255, 252]}, {"55062452": [60, 9, 128, 64, 37, 41, 32, 23, 33, 41]}, {"55062463": [1, 17, 42]}, {"55062467": [4, 129, 44]}, {"55062472": [21, 128, 255, 252]}, {"55062480": [161, 40]}, {"55062484": [3, 224]}, {"55062487": [8]}, {"55062493": [96, 120, 33, 129, 236, 14, 223, 49, 142]}, {"55062503": [128, 17, 192]}, {"55062507": [3, 52, 3]}, {"55062511": [5, 3, 224]}, {"55062515": [8, 52, 2]}, {"55062519": [2, 3, 224]}, {"55062523": [8]}, {"55062525": [96, 16, 33, 133, 194]}, {"55062531": [164, 60, 8, 128, 18, 37, 8, 165, 208, 129, 9, 14, 223, 53, 41]}, {"55062547": [128, 161, 9, 14, 223, 3, 224]}, {"55062555": [8]}, {"55062560": [132, 142]}, {"55062563": [28, 60, 9, 128, 64, 37, 41, 28, 12]}, {"55062573": [14, 64, 64, 1, 40, 72, 32, 133, 42]}, {"55062584": [60, 9, 128, 18, 37, 41, 165, 208, 133, 43, 15, 48, 1, 75, 96, 36, 52, 2]}, {"55062604": [17, 128]}, {"55062607": [4]}, {"55062612": [52, 13]}, {"55062615": [38, 164, 141]}, {"55062619": [28, 52, 2]}, {"55062623": [1, 3, 224]}, {"55062627": [8]}, {"55062632": [132, 174]}, {"55062635": [28, 60, 9, 128, 64, 37, 41, 28, 12]}, {"55062645": [14, 64, 64, 1, 40, 72, 32, 133, 42]}, {"55062656": [60, 9, 128, 18, 37, 41, 165, 208, 133, 43, 15, 48, 1, 75, 96, 37, 165, 44, 15, 48, 3, 224]}, {"55062679": [8]}, {"55062684": [175, 164]}, {"55062687": [104, 175, 165]}, {"55062691": [108, 175, 166]}, {"55062695": [112, 175, 167]}, {"55062699": [116, 39, 189, 255, 232, 175, 163]}, {"55062707": [16, 175, 191]}, {"55062711": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062727": [32, 21]}, {"55062731": [31]}, {"55062736": [60, 9, 128, 64, 37, 41, 32, 27, 52, 10]}, {"55062747": [255, 161, 42]}, {"55062752": [60, 9, 128, 64, 37, 41, 32, 24, 36, 10, 255, 255, 52, 12]}, {"55062767": [3, 33, 74]}, {"55062771": [1, 17, 76]}, {"55062775": [20, 1, 42, 88, 32, 129, 104]}, {"55062784": [17]}, {"55062786": [255, 251]}, {"55062792": [60, 9, 128, 64, 37, 41, 32, 27, 161, 42]}, {"55062804": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062815": [1, 165, 42]}, {"55062820": [60, 9, 128, 65, 52, 10]}, {"55062827": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 209]}, {"55062856": [143, 163]}, {"55062859": [16, 143, 191]}, {"55062863": [20, 39, 189]}, {"55062867": [24, 143, 164]}, {"55062871": [104, 143, 165]}, {"55062875": [108, 143, 166]}, {"55062879": [112, 143, 167]}, {"55062883": [116, 132, 110, 19, 196, 3, 224]}, {"55062891": [8]}, {"55062896": [147, 25]}, {"55062899": [116, 52, 1]}, {"55062903": [255, 23, 33]}, {"55062907": [2]}, {"55062912": [52, 25]}, {"55062915": [44, 3, 224]}, {"55062919": [8, 167, 185]}, {"55062923": [154, 147, 44]}, {"55062927": [116, 52, 1]}, {"55062931": [255, 21, 129]}, {"55062935": [2]}, {"55062940": [52, 12]}, {"55062943": [44, 3, 224]}, {"55062947": [8]}, {"55062952": [145, 174]}, {"55062955": [116, 52, 1]}, {"55062959": [255, 21, 193]}, {"55062963": [2]}, {"55062968": [52, 14]}, {"55062971": [44, 3, 224]}, {"55062975": [8, 167, 174]}, {"55062979": [154, 145, 207]}, {"55062983": [116, 52, 1]}, {"55062987": [255, 21, 225]}, {"55062991": [2]}, {"55062996": [52, 15]}, {"55062999": [44, 3, 224]}, {"55063003": [8, 167, 175]}, {"55063007": [154, 60, 8, 128, 64, 37, 8, 32, 28, 142, 9]}, {"55063019": [104, 173, 9]}, {"55063024": [142, 9]}, {"55063027": [108, 173, 9]}, {"55063031": [4, 150, 9]}, {"55063035": [112, 165, 9]}, {"55063039": [8, 150, 9]}, {"55063043": [156, 165, 9]}, {"55063047": [10, 3, 224]}, {"55063051": [8, 142, 14]}, {"55063055": [4, 39, 189, 255, 224, 175, 176]}, {"55063063": [16, 175, 177]}, {"55063067": [20, 175, 191]}, {"55063071": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 28, 142, 8]}, {"55063091": [4, 17]}, {"55063095": [5]}, {"55063100": [12, 16, 12, 174]}, {"55063108": [16]}, {"55063111": [3]}, {"55063116": [12, 16, 12, 193]}, {"55063124": [12, 16, 12, 161, 52, 4]}, {"55063132": [12, 16, 12, 161, 52, 4]}, {"55063139": [1, 12, 16, 12, 161, 52, 4]}, {"55063147": [2, 143, 176]}, {"55063151": [16, 143, 177]}, {"55063155": [20, 143, 191]}, {"55063159": [24, 39, 189]}, {"55063163": [32, 3, 224]}, {"55063167": [8]}, {"55063172": [2, 4, 64, 33, 145, 9]}, {"55063179": [108, 52, 1]}, {"55063183": [255, 17, 33]}, {"55063187": [7]}, {"55063192": [2, 9, 72, 33, 145, 41]}, {"55063199": [116, 52, 1]}, {"55063203": [44, 17, 33]}, {"55063207": [2]}, {"55063212": [161, 9]}, {"55063215": [105, 3, 224]}, {"55063219": [8]}, {"55063224": [39, 189, 255, 232, 175, 191]}, {"55063231": [16, 142, 40]}, {"55063236": [174, 8]}, {"55063239": [64, 142, 40]}, {"55063243": [4, 174, 8]}, {"55063247": [68, 150, 40]}, {"55063251": [8, 166, 8]}, {"55063255": [72, 162]}, {"55063258": [15, 51, 146, 8]}, {"55063263": [74, 52, 1]}, {"55063267": [255, 21, 1]}, {"55063271": [3]}, {"55063276": [12, 16, 12, 207]}, {"55063284": [143, 191]}, {"55063287": [16, 39, 189]}, {"55063291": [24, 3, 224]}, {"55063295": [8]}, {"55063300": [142, 8]}, {"55063303": [64, 174, 8]}, {"55063307": [104, 142, 8]}, {"55063311": [68, 174, 8]}, {"55063315": [108, 150, 8]}, {"55063319": [72, 166, 8]}, {"55063323": [112, 146, 8]}, {"55063327": [104, 52, 1]}, {"55063331": [255, 21, 1]}, {"55063335": [3]}, {"55063340": [52, 8]}, {"55063343": [1, 162, 8, 15, 51, 3, 224]}, {"55063351": [8]}, {"55063356": [39, 189, 255, 232, 175, 191]}, {"55063363": [16, 150, 8]}, {"55063367": [156, 49, 8]}, {"55063371": [64, 17]}, {"55063375": [5]}, {"55063380": [150, 8]}, {"55063383": [112, 49, 8, 255, 15, 53, 8]}, {"55063391": [48, 166, 8]}, {"55063395": [112, 146, 40]}, {"55063399": [1, 162, 8]}, {"55063403": [105, 150, 40]}, {"55063407": [2, 166, 8]}, {"55063411": [106, 142, 40]}, {"55063415": [4, 174, 8]}, {"55063419": [108, 12, 16, 12, 233, 52, 4]}, {"55063428": [12, 16, 12, 233, 52, 4]}, {"55063435": [1, 12, 16, 12, 233, 52, 4]}, {"55063443": [2, 143, 191]}, {"55063447": [16, 39, 189]}, {"55063451": [24, 3, 224]}, {"55063455": [8]}, {"55063460": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 52, 80, 145, 10]}, {"55063475": [108, 52, 1]}, {"55063479": [255, 17, 65]}, {"55063483": [5]}, {"55063488": [1, 42, 72, 33, 145, 41]}, {"55063496": [21, 32]}, {"55063499": [28]}, {"55063504": [60, 9, 128, 64, 37, 41, 52, 67, 37, 41]}, {"55063515": [1, 145, 42]}, {"55063520": [17, 64]}, {"55063523": [19]}, {"55063528": [2, 10, 88, 33, 145, 107]}, {"55063535": [116, 52, 1]}, {"55063539": [255, 17, 97, 255, 248]}, {"55063548": [146, 12]}, {"55063551": [108, 17, 138, 255, 245]}, {"55063560": [146, 12]}, {"55063563": [109, 17, 138, 255, 242]}, {"55063572": [146, 12]}, {"55063575": [110, 17, 138, 255, 239]}, {"55063584": [161, 11]}, {"55063587": [105, 161, 10]}, {"55063591": [108, 16]}, {"55063595": [4]}, {"55063600": [52, 9]}, {"55063603": [255, 161, 9]}, {"55063607": [105, 161, 9]}, {"55063611": [108, 3, 224]}, {"55063615": [8]}, {"55063620": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063633": [1, 1, 1, 1, 1]}, {"55063639": [1, 1, 1, 1, 1]}, {"55063645": [1]}, {"55063647": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063657": [51, 8, 33, 32, 15]}, {"55063663": [71, 21, 234]}, {"55063667": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063679": [164]}, {"55063681": [15, 122, 3, 20, 64]}, {"55063687": [5, 52, 2, 72, 48, 21, 226]}, {"55063695": [7]}, {"55063700": [36, 25]}, {"55063703": [3, 16]}, {"55063707": [4, 52, 2, 99, 17, 21, 226]}, {"55063715": [2]}, {"55063720": [36, 25]}, {"55063723": [3, 3, 224]}, {"55063727": [8]}, {"55063732": [141, 173, 138, 160, 52, 2, 128]}, {"55063740": [16, 77]}, {"55063743": [2]}, {"55063748": [16]}, {"55063751": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063767": [1, 16, 64]}, {"55063771": [2]}, {"55063776": [16]}, {"55063779": [2, 52, 2]}, {"55063783": [1, 161, 226, 28, 191, 3, 224]}, {"55063791": [8]}, {"55063797": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063811": [164]}, {"55063813": [15, 122, 3, 20, 64]}, {"55063819": [5, 52, 2, 72, 48, 21, 226]}, {"55063827": [7]}, {"55063832": [36, 25]}, {"55063835": [3, 16]}, {"55063839": [4, 52, 2, 99, 17, 21, 226]}, {"55063847": [2]}, {"55063852": [36, 25]}, {"55063855": [3, 3, 224]}, {"55063859": [8]}, {"55063864": [162, 37]}, {"55063867": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063879": [4, 142, 10]}, {"55063884": [17, 64]}, {"55063887": [11]}, {"55063893": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063905": [24, 194, 2, 23]}, {"55063911": [3, 49, 89]}, {"55063915": [255, 129, 234]}, {"55063920": [3, 42, 200, 37, 8, 16, 13, 81, 161, 249]}, {"55063932": [3, 224]}, {"55063935": [8]}] \ No newline at end of file diff --git a/version.py b/version.py index dadfe3f27..fedf27c1a 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.23 f.LUM' +__version__ = '2.15.24 f.LUM' From a7b55fe2834b2f7d36499f4dd0e3436e7ad7802a Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 16 Aug 2018 16:30:47 -0400 Subject: [PATCH 296/755] Corrected the number of blue and red rupees --- ItemList.py | 4 ++-- version.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ItemList.py b/ItemList.py index 5cfac2a14..80116a43b 100644 --- a/ItemList.py +++ b/ItemList.py @@ -30,8 +30,8 @@ + ['Progressive Strength Upgrade'] * 3 + ['Progressive Scale'] * 2 + ['Recovery Heart'] * 11 - + ['Rupees (5)'] * 17 - + ['Rupees (20)'] * 5 + + ['Rupees (5)'] * 16 + + ['Rupees (20)'] * 6 + ['Rupees (50)'] * 7 + ['Rupees (200)'] * 6 + ['Bow'] * 3 diff --git a/version.py b/version.py index 49d81f6cc..3b1f123ad 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.25 f.LUM' +__version__ = '2.15.26 f.LUM' From 312285b8295816cc65f162e65cb5afffe569d78c Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 16 Aug 2018 16:42:32 -0400 Subject: [PATCH 297/755] Put the option in a label frame --- Gui.py | 4 +++- Settings.py | 2 +- version.py | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Gui.py b/Gui.py index 3f5e08f8e..49ce87c28 100755 --- a/Gui.py +++ b/Gui.py @@ -121,8 +121,9 @@ def guiMain(settings=None): frames['other'] = LabelFrame(frames['other_tab'], text='Misc', labelanchor=NW) #Aesthetics tab + frames['cosmetics'] = LabelFrame(frames['aesthetic_tab'], text='General', labelanchor=NW) frames['tuniccolor'] = LabelFrame(frames['aesthetic_tab_left'], text='Tunic Color', labelanchor=NW) - frames['navicolor'] = LabelFrame(frames['aesthetic_tab_right'], text='Navi Color', labelanchor=NW) + frames['navicolor'] = LabelFrame(frames['aesthetic_tab_right'], text='Navi Color', labelanchor=NW) frames['lowhp'] = LabelFrame(frames['aesthetic_tab_left'], text='Low HP SFX', labelanchor=NW) frames['navihint'] = LabelFrame(frames['aesthetic_tab_right'], text='Navi SFX', labelanchor=NW) @@ -324,6 +325,7 @@ def open_readme(): frames['other'].pack( fill=BOTH, expand=True, anchor=N, side=LEFT, pady=(5,1) ) #Aesthetics tab + frames['cosmetics'].pack(fill=BOTH, expand=True, anchor=W, side=TOP) frames['aesthetic_tab_left'].pack( fill=BOTH, expand=True, anchor=W, side=LEFT) frames['aesthetic_tab_right'].pack(fill=BOTH, expand=True, anchor=W, side=RIGHT) diff --git a/Settings.py b/Settings.py index 47cf5799b..5837e9ace 100644 --- a/Settings.py +++ b/Settings.py @@ -1328,7 +1328,7 @@ def __init__(self, settings_dict): }, { 'text': 'Disable Background Music', - 'group': 'aesthetic_tab', + 'group': 'cosmetics', 'widget': 'Checkbutton', 'default': False, 'tooltip': '''\ diff --git a/version.py b/version.py index 3b1f123ad..bd3609be4 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.26 f.LUM' +__version__ = '2.15.27 f.LUM' From 4a767572d85b9b09662563bf96f2c2a645a49e1a Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 16 Aug 2018 18:46:35 -0400 Subject: [PATCH 298/755] Bombchus refills check if have bombchus --- ASM/src/hacks.asm | 20 +++++++++++++++++++- data/base2current.json | 2 +- version.py | 2 +- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/ASM/src/hacks.asm b/ASM/src/hacks.asm index 5d7334dd6..2e4e08189 100755 --- a/ASM/src/hacks.asm +++ b/ASM/src/hacks.asm @@ -421,4 +421,22 @@ ; Set sold out override ; lh t6, 0x1c(a1) .org 0xC018A0 - jal Set_Sold_Out \ No newline at end of file + jal Set_Sold_Out + + +; Bombchu item checks for bombchus +; Replaces +; addiu at, zero, 0xff +; bnel v0, at, 0x74 ; if no bombchu item +; addiu v0, zero, 1 ; if bombchu item, return v0 = 1 +; b 0x74 +; move v0, zero ; if not bombchu item, return v0 = 0 +; addiu v0, zero, 1 ; unreachable +.org 0xC01078 + lui t1, 0x8012 + lb t2, -0x59B4(t1) ; bombchu item (SAVE_CONTEXT + 0x7C) + li t3, 9 + beq t2, t3, @@return ; if has bombchu, return 1 (can buy) + li v0, 0 + li v0, 2 ; else, return 2 (can't buy) +@@return: diff --git a/data/base2current.json b/data/base2current.json index 9273b9805..1a68fac65 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -1 +1 @@ -[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 196]}, {"11311804": [12, 16, 11, 205]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 190, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 132]}, {"11427312": [12, 16, 13, 45]}, {"11427320": [12, 16, 11, 200]}, {"11427332": [0, 0]}, {"11427335": [0]}, {"11431496": [12, 16, 11, 195, 1, 15, 192, 33]}, {"11559936": [130]}, {"11559938": [14, 222]}, {"11559948": [49, 248, 0, 2]}, {"11562028": [12, 16, 13, 78]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 61]}, {"11882076": [12, 16, 13, 26]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 99, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 106, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 113, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 92, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 140]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 18]}, {"12427480": [12, 16, 10, 106]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 110]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 12, 39, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 152]}, {"12491480": [12, 16, 10, 161]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"12584172": [8, 16, 12, 8]}, {"12587128": [60, 9, 128, 17, 129, 42, 166, 76, 52, 11]}, {"12587139": [9, 17, 75]}, {"12587144": [52, 2, 0, 0, 52]}, {"12587151": [0]}, {"12589216": [12, 16, 12, 26]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 147]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 120]}, {"14109028": [16, 0]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 128, 73, 14, 222]}, {"14149508": [52]}, {"14149510": [0, 1, 2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 208]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 224]}, {"14624335": [118]}, {"14720872": [128]}, {"14720874": [14, 222]}, {"14720884": [49, 248, 0, 4]}, {"14720944": [12, 16, 11, 216]}, {"14848904": [8, 16, 11, 247]}, {"14852164": [12, 16, 12, 0]}, {"14872723": [52]}, {"15327704": [52, 9, 64, 0]}, {"15327728": [52]}, {"15327730": [91, 8]}, {"15327744": [52]}, {"15327746": [0, 10]}, {"15327757": [169]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55057455": [1]}, {"55057457": [2]}, {"55057459": [4]}, {"55057461": [8]}, {"55057467": [16]}, {"55057471": [32]}, {"55057473": [64]}, {"55057475": [128, 1]}, {"55057502": [2]}, {"55057504": [4]}, {"55057514": [8]}, {"55057516": [16]}, {"55057518": [32]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 236, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 48, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 76, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 104, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 220, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 108, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 140, 128, 64, 38, 132, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 172, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 39, 212, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 28, 128, 64, 40]}, {"55059600": [83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 3, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 44, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [2, 52, 2]}, {"55060003": [69, 52, 2]}, {"55060007": [70, 3, 224]}, {"55060011": [8]}, {"55060016": [144, 136]}, {"55060019": [162, 49, 8]}, {"55060023": [6, 17]}, {"55060027": [2, 52, 2]}, {"55060031": [55, 52, 2]}, {"55060035": [56, 3, 224]}, {"55060039": [8]}, {"55060044": [144, 136]}, {"55060047": [161, 49, 8]}, {"55060051": [32, 17]}, {"55060055": [2, 52, 2]}, {"55060059": [121, 52, 2]}, {"55060063": [122, 3, 224]}, {"55060067": [8]}, {"55060072": [144, 136]}, {"55060075": [161, 49, 8]}, {"55060079": [4, 17]}, {"55060083": [2, 52, 2]}, {"55060087": [119, 52, 2]}, {"55060091": [120, 3, 224]}, {"55060095": [8]}, {"55060100": [144, 136]}, {"55060103": [50, 17]}, {"55060107": [2, 52, 2]}, {"55060111": [192, 52, 2]}, {"55060115": [193, 3, 224]}, {"55060119": [8]}, {"55060124": [144, 136]}, {"55060127": [163, 49, 8]}, {"55060131": [3, 17]}, {"55060135": [2, 52, 2]}, {"55060139": [77, 52, 162]}, {"55060144": [3, 224]}, {"55060147": [8]}, {"55060152": [144, 136]}, {"55060155": [163, 49, 8]}, {"55060159": [24, 17]}, {"55060163": [2, 52, 2]}, {"55060167": [77, 52, 162]}, {"55060172": [3, 224]}, {"55060175": [8]}, {"55060180": [3, 224]}, {"55060183": [8]}, {"55060188": [52, 8]}, {"55060191": [1, 160, 136]}, {"55060195": [62, 3, 224]}, {"55060199": [8]}, {"55060204": [36, 136]}, {"55060207": [134, 36, 9, 255, 255, 37, 41]}, {"55060215": [1, 52, 1]}, {"55060219": [3]}, {"55060221": [41, 8, 42, 20, 32]}, {"55060227": [7]}, {"55060232": [1, 9, 80, 33, 145, 75]}, {"55060240": [52, 1]}, {"55060243": [255, 21, 97, 255, 247]}, {"55060252": [161, 69]}, {"55060256": [3, 224]}, {"55060259": [8]}, {"55060264": [36, 136]}, {"55060267": [168, 1, 6, 64, 33, 145, 9]}, {"55060276": [1, 37, 72, 37, 161, 9]}, {"55060284": [3, 224]}, {"55060287": [8]}, {"55060292": [36, 136]}, {"55060295": [188, 1, 5, 64, 33, 129, 9]}, {"55060304": [5, 33]}, {"55060307": [2]}, {"55060312": [52, 9]}, {"55060316": [37, 41]}, {"55060319": [1, 161, 9]}, {"55060324": [3, 224]}, {"55060327": [8]}, {"55060332": [52, 8]}, {"55060335": [1, 160, 136]}, {"55060339": [61, 52, 8]}, {"55060343": [20, 160, 136]}, {"55060347": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [50, 160, 136]}, {"55060375": [58, 52, 8]}, {"55060379": [48, 164, 136, 19, 244, 160, 136]}, {"55060387": [51, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [2, 160, 136]}, {"55060403": [50, 52, 8]}, {"55060407": [1, 160, 136]}, {"55060411": [58, 160, 136]}, {"55060415": [60, 52, 8]}, {"55060419": [96, 164, 136, 19, 244, 160, 136]}, {"55060427": [51, 3, 224]}, {"55060431": [8]}, {"55060436": [144, 136]}, {"55060439": [124, 52, 1]}, {"55060443": [255, 17, 1]}, {"55060447": [6, 52, 2]}, {"55060451": [107, 144, 136]}, {"55060455": [148, 45, 8]}, {"55060459": [6, 17]}, {"55060463": [2, 52, 2]}, {"55060467": [106, 52, 2]}, {"55060471": [3, 3, 224]}, {"55060475": [8]}, {"55060480": [144, 136]}, {"55060483": [123, 52, 1]}, {"55060487": [255, 17, 1]}, {"55060491": [2, 52, 162]}, {"55060496": [52, 2]}, {"55060499": [12, 3, 224]}, {"55060503": [8]}, {"55060508": [52, 8]}, {"55060511": [7, 160, 136]}, {"55060515": [123, 3, 224]}, {"55060519": [8]}, {"55060524": [52, 8]}, {"55060527": [1]}, {"55060529": [168, 64, 4, 140, 137]}, {"55060535": [164, 1, 40, 72, 37, 172, 137]}, {"55060543": [164, 3, 224]}, {"55060547": [8]}, {"55060552": [48, 132]}, {"55060555": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060567": [140, 16, 129]}, {"55060571": [22, 145, 2]}, {"55060575": [117, 52, 1]}, {"55060579": [141, 16, 129]}, {"55060583": [19, 145, 2]}, {"55060587": [117, 16, 128]}, {"55060591": [17, 145, 2]}, {"55060595": [116, 52, 1]}, {"55060599": [138, 16, 129]}, {"55060603": [14, 145, 2]}, {"55060607": [116, 52, 1]}, {"55060611": [139, 16, 129]}, {"55060615": [11, 145, 2]}, {"55060619": [116, 52, 1]}, {"55060623": [88, 16, 129]}, {"55060627": [8, 52, 2]}, {"55060632": [52, 1]}, {"55060635": [120, 16, 129]}, {"55060639": [5, 52, 2]}, {"55060644": [52, 1]}, {"55060647": [121, 16, 129]}, {"55060651": [2, 52, 2]}, {"55060656": [52, 2]}, {"55060659": [255, 3, 224]}, {"55060663": [8]}, {"55060668": [39, 189, 255, 224, 175, 191]}, {"55060675": [16, 175, 176]}, {"55060679": [20, 12, 16, 11, 11]}, {"55060688": [4, 65]}, {"55060691": [2]}, {"55060696": [52, 2]}, {"55060699": [91]}, {"55060701": [64, 32, 33, 12, 16, 11, 114]}, {"55060712": [16, 96]}, {"55060715": [22, 175, 163]}, {"55060719": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060728": [133, 9]}, {"55060731": [2, 17, 32]}, {"55060735": [3, 52, 10]}, {"55060739": [1, 16]}, {"55060743": [12, 165, 10]}, {"55060748": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060759": [6, 144, 102]}, {"55060763": [7, 140, 105]}, {"55060767": [8, 1, 32, 248, 9]}, {"55060776": [143, 163]}, {"55060779": [28, 144, 101]}, {"55060783": [1, 12, 1, 191, 115, 2, 32, 32, 33, 143, 163]}, {"55060795": [28, 144, 101]}, {"55060799": [3, 16]}, {"55060803": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060815": [6]}, {"55060817": [74]}, {"55060819": [24]}, {"55060822": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060832": [60, 8, 128, 64, 37, 8, 32]}, {"55060840": [133, 9]}, {"55060843": [2, 17, 32]}, {"55060847": [3, 52, 10]}, {"55060851": [1, 165, 10]}, {"55060856": [52, 5]}, {"55060859": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060871": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060882": [48, 33, 143, 191]}, {"55060887": [16, 143, 176]}, {"55060891": [20, 39, 189]}, {"55060895": [32, 3, 224]}, {"55060899": [8]}, {"55060904": [143, 166]}, {"55060907": [48, 132, 197]}, {"55060911": [4, 8, 16, 10, 114]}, {"55060920": [143, 185]}, {"55060923": [44, 135, 37]}, {"55060927": [4, 8, 16, 10, 114]}, {"55060936": [60, 10, 128, 64, 37, 74, 32, 8, 141, 75]}, {"55060947": [12, 17, 96]}, {"55060951": [2]}, {"55060956": [149, 69]}, {"55060959": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060972": [60, 9, 128, 64, 37, 41, 32, 24, 129, 42]}, {"55060983": [3, 5, 64]}, {"55060987": [11, 1, 42, 72, 32, 129, 40]}, {"55060996": [52, 10]}, {"55060999": [127, 21, 10]}, {"55061003": [6]}, {"55061008": [60, 10, 128, 18, 37, 74, 165, 208, 133, 72]}, {"55061019": [144, 33, 8]}, {"55061023": [1, 165, 72]}, {"55061027": [144, 161, 32]}, {"55061032": [3, 224]}, {"55061035": [8]}, {"55061040": [60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061051": [12, 17, 32]}, {"55061055": [2]}, {"55061060": [129, 3]}, {"55061063": [2]}, {"55061065": [3, 15, 195]}, {"55061069": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061083": [8]}, {"55061088": [144, 69]}, {"55061091": [3, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061103": [12, 17, 32]}, {"55061107": [2]}, {"55061112": [145, 5]}, {"55061115": [3, 3, 224]}, {"55061119": [8]}, {"55061124": [143, 162]}, {"55061127": [36, 144, 69]}, {"55061132": [60, 8, 128, 64, 37, 8, 32]}, {"55061140": [133, 9]}, {"55061143": [2, 17, 32]}, {"55061147": [4, 52, 10]}, {"55061151": [1, 165, 10]}, {"55061156": [16]}, {"55061159": [24, 52, 5]}, {"55061163": [65, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061175": [12, 17, 32]}, {"55061179": [19]}, {"55061184": [145, 5]}, {"55061187": [1, 175, 164]}, {"55061192": [175, 165]}, {"55061195": [4, 175, 166]}, {"55061199": [8, 39, 189, 255, 232, 175, 191]}, {"55061207": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061219": [6, 145, 6]}, {"55061223": [7, 141, 9]}, {"55061227": [8, 1, 32, 248, 9]}, {"55061236": [143, 191]}, {"55061239": [16, 39, 189]}, {"55061243": [24, 143, 164]}, {"55061248": [143, 165]}, {"55061251": [4, 143, 166]}, {"55061255": [8, 3, 224]}, {"55061259": [8]}, {"55061264": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061275": [16, 175, 163]}, {"55061279": [20, 175, 191]}, {"55061283": [24, 12, 16, 10, 209]}, {"55061292": [143, 162]}, {"55061295": [16, 143, 163]}, {"55061299": [20, 143, 191]}, {"55061303": [24, 39, 189]}, {"55061307": [32, 3, 224]}, {"55061311": [8]}, {"55061316": [39, 189, 255, 232, 175, 191]}, {"55061323": [16, 60, 8, 128, 64, 37, 8, 32, 8, 173]}, {"55061336": [173]}, {"55061339": [4, 173]}, {"55061343": [8, 173]}, {"55061347": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061363": [42]}, {"55061369": [9, 15, 195, 1, 33, 32, 38]}, {"55061377": [129, 32, 35, 141, 5, 4, 40, 12, 16, 11, 11]}, {"55061392": [4, 64]}, {"55061395": [34]}, {"55061400": [52, 68]}, {"55061404": [12, 16, 11, 114]}, {"55061412": [16, 96]}, {"55061415": [12]}, {"55061420": [60, 8, 128, 64, 37, 8, 32, 8, 140, 105]}, {"55061432": [173, 9]}, {"55061436": [140, 105]}, {"55061439": [4, 173, 9]}, {"55061443": [4, 140, 105]}, {"55061447": [8, 173, 9]}, {"55061451": [8, 52, 9]}, {"55061455": [1, 173, 9]}, {"55061459": [12, 144, 98]}, {"55061464": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061480": [52, 1]}, {"55061483": [10, 21, 65]}, {"55061487": [6]}, {"55061492": [149, 42]}, {"55061495": [28, 49, 74, 240, 31]}, {"55061501": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061511": [28, 129, 9, 4, 36, 5, 33]}, {"55061519": [2]}, {"55061525": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061535": [16, 39, 189]}, {"55061539": [24, 3, 224]}, {"55061543": [8]}, {"55061548": [39, 189, 255, 232, 175, 191]}, {"55061555": [16, 12, 16, 11, 25]}, {"55061564": [36, 1, 255, 255, 16, 65]}, {"55061571": [4]}, {"55061576": [52, 68]}, {"55061580": [12, 16, 11, 77]}, {"55061588": [143, 191]}, {"55061591": [16, 39, 189]}, {"55061595": [24, 3, 224]}, {"55061599": [8]}, {"55061604": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061615": [164, 52, 8]}, {"55061620": [52, 137]}, {"55061624": [148, 170]}, {"55061628": [52, 1, 1, 156, 21, 65]}, {"55061635": [8]}, {"55061640": [52, 8]}, {"55061643": [3, 148, 171]}, {"55061647": [28, 49, 105]}, {"55061651": [255, 49, 98, 31]}, {"55061657": [2, 18, 2, 16]}, {"55061663": [31]}, {"55061668": [52, 1]}, {"55061671": [10, 21, 65]}, {"55061675": [14]}, {"55061680": [148, 171]}, {"55061683": [28, 52, 1]}, {"55061687": [16, 20, 65]}, {"55061691": [8]}, {"55061696": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061707": [4]}, {"55061712": [36, 2, 255, 255, 16]}, {"55061719": [21]}, {"55061724": [52, 8]}, {"55061727": [1, 49, 105]}, {"55061731": [31, 52, 1]}, {"55061735": [21, 21, 65]}, {"55061739": [12]}, {"55061744": [52, 1]}, {"55061747": [62, 16, 129]}, {"55061751": [7]}, {"55061756": [52, 1]}, {"55061759": [66, 16, 129]}, {"55061763": [4]}, {"55061768": [36, 2, 255, 255, 16]}, {"55061775": [7]}, {"55061780": [52, 8]}, {"55061783": [2, 144, 169, 1, 65]}, {"55061789": [2, 18]}, {"55061793": [72, 16, 37]}, {"55061797": [2, 18]}, {"55061801": [73, 16, 37, 3, 224]}, {"55061807": [8]}, {"55061812": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061824": [129, 9]}, {"55061828": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061851": [4, 141, 9]}, {"55061856": [17, 32]}, {"55061859": [23]}, {"55061865": [9, 82, 2, 49, 75, 248]}, {"55061873": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061896": [49, 34]}, {"55061899": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061920": [60, 12, 128, 64, 37, 140, 28]}, {"55061928": [129, 140]}, {"55061932": [17, 108]}, {"55061935": [4, 165, 32]}, {"55061939": [2, 161, 43]}, {"55061943": [2, 161, 34]}, {"55061947": [3, 173, 36]}, {"55061951": [4, 3, 224]}, {"55061955": [8]}, {"55061960": [39, 189, 255, 224, 175, 176]}, {"55061967": [16, 175, 177]}, {"55061971": [20, 175, 191]}, {"55061975": [24, 52, 130]}, {"55061980": [52, 80]}, {"55061984": [38, 8, 255, 128, 5]}, {"55061991": [18]}, {"55061996": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55062007": [16, 1, 9]}, {"55062011": [24]}, {"55062014": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55062032": [142, 40]}, {"55062035": [12, 1]}, {"55062038": [248, 9]}, {"55062044": [20, 80, 255, 239]}, {"55062052": [54, 35]}, {"55062056": [16]}, {"55062059": [2]}, {"55062064": [52, 3]}, {"55062068": [143, 176]}, {"55062071": [16, 143, 177]}, {"55062075": [20, 143, 191]}, {"55062079": [24, 39, 189]}, {"55062083": [32, 3, 224]}, {"55062087": [8]}, {"55062092": [140, 136, 29, 44, 52, 9]}, {"55062099": [1]}, {"55062101": [9, 78]}, {"55062104": [1, 9, 16, 36, 16, 64]}, {"55062111": [36]}, {"55062116": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062131": [164, 52, 1]}, {"55062135": [61, 17, 129]}, {"55062139": [10]}, {"55062145": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062155": [25]}, {"55062160": [52, 13]}, {"55062163": [1, 161, 141, 29, 40, 37, 74]}, {"55062171": [3, 16]}, {"55062175": [9]}, {"55062180": [52, 12]}, {"55062183": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062199": [14]}, {"55062204": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062240": [60, 9, 128, 64, 37, 41, 32, 24, 161, 40]}, {"55062252": [52, 2]}, {"55062256": [3, 224]}, {"55062259": [8]}, {"55062264": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062276": [16]}, {"55062279": [34]}, {"55062284": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062296": [16]}, {"55062299": [29]}, {"55062304": [52, 2]}, {"55062307": [255, 32, 232, 255, 166, 33, 8]}, {"55062315": [97, 16]}, {"55062319": [24]}, {"55062324": [52, 8]}, {"55062327": [100, 16]}, {"55062331": [21]}, {"55062336": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062351": [1, 160, 40, 14, 222, 52, 8]}, {"55062359": [104, 16]}, {"55062363": [13]}, {"55062368": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062383": [4, 160, 40, 14, 222, 52, 8]}, {"55062391": [106, 16]}, {"55062395": [5]}, {"55062400": [52, 5]}, {"55062403": [3, 52, 8]}, {"55062407": [107, 16]}, {"55062411": [1]}, {"55062416": [60, 9, 128, 64, 37, 41, 32, 24, 60, 10, 128, 64, 37, 74, 32, 27, 129, 44]}, {"55062436": [17, 136]}, {"55062439": [11, 33, 41]}, {"55062443": [1, 21, 42, 255, 252]}, {"55062452": [60, 9, 128, 64, 37, 41, 32, 23, 33, 41]}, {"55062463": [1, 17, 42]}, {"55062467": [4, 129, 44]}, {"55062472": [21, 128, 255, 252]}, {"55062480": [161, 40]}, {"55062484": [3, 224]}, {"55062487": [8]}, {"55062493": [96, 120, 33, 129, 236, 14, 223, 49, 142]}, {"55062503": [128, 17, 192]}, {"55062507": [3, 52, 3]}, {"55062511": [5, 3, 224]}, {"55062515": [8, 52, 2]}, {"55062519": [2, 3, 224]}, {"55062523": [8]}, {"55062525": [96, 16, 33, 133, 194]}, {"55062531": [164, 60, 8, 128, 18, 37, 8, 165, 208, 129, 9, 14, 223, 53, 41]}, {"55062547": [128, 161, 9, 14, 223, 3, 224]}, {"55062555": [8]}, {"55062560": [132, 142]}, {"55062563": [28, 60, 9, 128, 64, 37, 41, 28, 12]}, {"55062573": [14, 64, 64, 1, 40, 72, 32, 133, 42]}, {"55062584": [60, 9, 128, 18, 37, 41, 165, 208, 133, 43, 15, 48, 1, 75, 96, 36, 52, 2]}, {"55062604": [17, 128]}, {"55062607": [4]}, {"55062612": [52, 13]}, {"55062615": [38, 164, 141]}, {"55062619": [28, 52, 2]}, {"55062623": [1, 3, 224]}, {"55062627": [8]}, {"55062632": [132, 174]}, {"55062635": [28, 60, 9, 128, 64, 37, 41, 28, 12]}, {"55062645": [14, 64, 64, 1, 40, 72, 32, 133, 42]}, {"55062656": [60, 9, 128, 18, 37, 41, 165, 208, 133, 43, 15, 48, 1, 75, 96, 37, 165, 44, 15, 48, 3, 224]}, {"55062679": [8]}, {"55062684": [175, 164]}, {"55062687": [104, 175, 165]}, {"55062691": [108, 175, 166]}, {"55062695": [112, 175, 167]}, {"55062699": [116, 39, 189, 255, 232, 175, 163]}, {"55062707": [16, 175, 191]}, {"55062711": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062727": [32, 21]}, {"55062731": [31]}, {"55062736": [60, 9, 128, 64, 37, 41, 32, 27, 52, 10]}, {"55062747": [255, 161, 42]}, {"55062752": [60, 9, 128, 64, 37, 41, 32, 24, 36, 10, 255, 255, 52, 12]}, {"55062767": [3, 33, 74]}, {"55062771": [1, 17, 76]}, {"55062775": [20, 1, 42, 88, 32, 129, 104]}, {"55062784": [17]}, {"55062786": [255, 251]}, {"55062792": [60, 9, 128, 64, 37, 41, 32, 27, 161, 42]}, {"55062804": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062815": [1, 165, 42]}, {"55062820": [60, 9, 128, 65, 52, 10]}, {"55062827": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 209]}, {"55062856": [143, 163]}, {"55062859": [16, 143, 191]}, {"55062863": [20, 39, 189]}, {"55062867": [24, 143, 164]}, {"55062871": [104, 143, 165]}, {"55062875": [108, 143, 166]}, {"55062879": [112, 143, 167]}, {"55062883": [116, 132, 110, 19, 196, 3, 224]}, {"55062891": [8]}, {"55062896": [147, 25]}, {"55062899": [116, 52, 1]}, {"55062903": [255, 23, 33]}, {"55062907": [2]}, {"55062912": [52, 25]}, {"55062915": [44, 3, 224]}, {"55062919": [8, 167, 185]}, {"55062923": [154, 147, 44]}, {"55062927": [116, 52, 1]}, {"55062931": [255, 21, 129]}, {"55062935": [2]}, {"55062940": [52, 12]}, {"55062943": [44, 3, 224]}, {"55062947": [8]}, {"55062952": [145, 174]}, {"55062955": [116, 52, 1]}, {"55062959": [255, 21, 193]}, {"55062963": [2]}, {"55062968": [52, 14]}, {"55062971": [44, 3, 224]}, {"55062975": [8, 167, 174]}, {"55062979": [154, 145, 207]}, {"55062983": [116, 52, 1]}, {"55062987": [255, 21, 225]}, {"55062991": [2]}, {"55062996": [52, 15]}, {"55062999": [44, 3, 224]}, {"55063003": [8, 167, 175]}, {"55063007": [154, 60, 8, 128, 64, 37, 8, 32, 28, 142, 9]}, {"55063019": [104, 173, 9]}, {"55063024": [142, 9]}, {"55063027": [108, 173, 9]}, {"55063031": [4, 150, 9]}, {"55063035": [112, 165, 9]}, {"55063039": [8, 150, 9]}, {"55063043": [156, 165, 9]}, {"55063047": [10, 3, 224]}, {"55063051": [8, 142, 14]}, {"55063055": [4, 39, 189, 255, 224, 175, 176]}, {"55063063": [16, 175, 177]}, {"55063067": [20, 175, 191]}, {"55063071": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 28, 142, 8]}, {"55063091": [4, 17]}, {"55063095": [5]}, {"55063100": [12, 16, 12, 174]}, {"55063108": [16]}, {"55063111": [3]}, {"55063116": [12, 16, 12, 193]}, {"55063124": [12, 16, 12, 161, 52, 4]}, {"55063132": [12, 16, 12, 161, 52, 4]}, {"55063139": [1, 12, 16, 12, 161, 52, 4]}, {"55063147": [2, 143, 176]}, {"55063151": [16, 143, 177]}, {"55063155": [20, 143, 191]}, {"55063159": [24, 39, 189]}, {"55063163": [32, 3, 224]}, {"55063167": [8]}, {"55063172": [2, 4, 64, 33, 145, 9]}, {"55063179": [108, 52, 1]}, {"55063183": [255, 17, 33]}, {"55063187": [7]}, {"55063192": [2, 9, 72, 33, 145, 41]}, {"55063199": [116, 52, 1]}, {"55063203": [44, 17, 33]}, {"55063207": [2]}, {"55063212": [161, 9]}, {"55063215": [105, 3, 224]}, {"55063219": [8]}, {"55063224": [39, 189, 255, 232, 175, 191]}, {"55063231": [16, 142, 40]}, {"55063236": [174, 8]}, {"55063239": [64, 142, 40]}, {"55063243": [4, 174, 8]}, {"55063247": [68, 150, 40]}, {"55063251": [8, 166, 8]}, {"55063255": [72, 162]}, {"55063258": [15, 51, 146, 8]}, {"55063263": [74, 52, 1]}, {"55063267": [255, 21, 1]}, {"55063271": [3]}, {"55063276": [12, 16, 12, 207]}, {"55063284": [143, 191]}, {"55063287": [16, 39, 189]}, {"55063291": [24, 3, 224]}, {"55063295": [8]}, {"55063300": [142, 8]}, {"55063303": [64, 174, 8]}, {"55063307": [104, 142, 8]}, {"55063311": [68, 174, 8]}, {"55063315": [108, 150, 8]}, {"55063319": [72, 166, 8]}, {"55063323": [112, 146, 8]}, {"55063327": [104, 52, 1]}, {"55063331": [255, 21, 1]}, {"55063335": [3]}, {"55063340": [52, 8]}, {"55063343": [1, 162, 8, 15, 51, 3, 224]}, {"55063351": [8]}, {"55063356": [39, 189, 255, 232, 175, 191]}, {"55063363": [16, 150, 8]}, {"55063367": [156, 49, 8]}, {"55063371": [64, 17]}, {"55063375": [5]}, {"55063380": [150, 8]}, {"55063383": [112, 49, 8, 255, 15, 53, 8]}, {"55063391": [48, 166, 8]}, {"55063395": [112, 146, 40]}, {"55063399": [1, 162, 8]}, {"55063403": [105, 150, 40]}, {"55063407": [2, 166, 8]}, {"55063411": [106, 142, 40]}, {"55063415": [4, 174, 8]}, {"55063419": [108, 12, 16, 12, 233, 52, 4]}, {"55063428": [12, 16, 12, 233, 52, 4]}, {"55063435": [1, 12, 16, 12, 233, 52, 4]}, {"55063443": [2, 143, 191]}, {"55063447": [16, 39, 189]}, {"55063451": [24, 3, 224]}, {"55063455": [8]}, {"55063460": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 52, 80, 145, 10]}, {"55063475": [108, 52, 1]}, {"55063479": [255, 17, 65]}, {"55063483": [5]}, {"55063488": [1, 42, 72, 33, 145, 41]}, {"55063496": [21, 32]}, {"55063499": [28]}, {"55063504": [60, 9, 128, 64, 37, 41, 52, 67, 37, 41]}, {"55063515": [1, 145, 42]}, {"55063520": [17, 64]}, {"55063523": [19]}, {"55063528": [2, 10, 88, 33, 145, 107]}, {"55063535": [116, 52, 1]}, {"55063539": [255, 17, 97, 255, 248]}, {"55063548": [146, 12]}, {"55063551": [108, 17, 138, 255, 245]}, {"55063560": [146, 12]}, {"55063563": [109, 17, 138, 255, 242]}, {"55063572": [146, 12]}, {"55063575": [110, 17, 138, 255, 239]}, {"55063584": [161, 11]}, {"55063587": [105, 161, 10]}, {"55063591": [108, 16]}, {"55063595": [4]}, {"55063600": [52, 9]}, {"55063603": [255, 161, 9]}, {"55063607": [105, 161, 9]}, {"55063611": [108, 3, 224]}, {"55063615": [8]}, {"55063620": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063633": [1, 1, 1, 1, 1]}, {"55063639": [1, 1, 1, 1, 1]}, {"55063645": [1]}, {"55063647": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063657": [51, 8, 33, 32, 15]}, {"55063663": [71, 21, 234]}, {"55063667": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063679": [164]}, {"55063681": [15, 122, 3, 20, 64]}, {"55063687": [5, 52, 2, 72, 48, 21, 226]}, {"55063695": [7]}, {"55063700": [36, 25]}, {"55063703": [3, 16]}, {"55063707": [4, 52, 2, 99, 17, 21, 226]}, {"55063715": [2]}, {"55063720": [36, 25]}, {"55063723": [3, 3, 224]}, {"55063727": [8]}, {"55063732": [141, 173, 138, 160, 52, 2, 128]}, {"55063740": [16, 77]}, {"55063743": [2]}, {"55063748": [16]}, {"55063751": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063767": [1, 16, 64]}, {"55063771": [2]}, {"55063776": [16]}, {"55063779": [2, 52, 2]}, {"55063783": [1, 161, 226, 28, 191, 3, 224]}, {"55063791": [8]}, {"55063797": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063811": [164]}, {"55063813": [15, 122, 3, 20, 64]}, {"55063819": [5, 52, 2, 72, 48, 21, 226]}, {"55063827": [7]}, {"55063832": [36, 25]}, {"55063835": [3, 16]}, {"55063839": [4, 52, 2, 99, 17, 21, 226]}, {"55063847": [2]}, {"55063852": [36, 25]}, {"55063855": [3, 3, 224]}, {"55063859": [8]}, {"55063864": [162, 37]}, {"55063867": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063879": [4, 142, 10]}, {"55063884": [17, 64]}, {"55063887": [11]}, {"55063893": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063905": [24, 194, 2, 23]}, {"55063911": [3, 49, 89]}, {"55063915": [255, 129, 234]}, {"55063920": [3, 42, 200, 37, 8, 16, 13, 81, 161, 249]}, {"55063932": [3, 224]}, {"55063935": [8]}] \ No newline at end of file +[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 196]}, {"11311804": [12, 16, 11, 205]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 190, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 132]}, {"11427312": [12, 16, 13, 45]}, {"11427320": [12, 16, 11, 200]}, {"11427332": [0, 0]}, {"11427335": [0]}, {"11431496": [12, 16, 11, 195, 1, 15, 192, 33]}, {"11559936": [130]}, {"11559938": [14, 222]}, {"11559948": [49, 248, 0, 2]}, {"11562028": [12, 16, 13, 78]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 61]}, {"11882076": [12, 16, 13, 26]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 99, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 106, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 113, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 92, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 140]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 18]}, {"12427480": [12, 16, 10, 106]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 110]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 12, 39, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 152]}, {"12491480": [12, 16, 10, 161]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"12584172": [8, 16, 12, 8]}, {"12587128": [60, 9, 128, 18, 129, 42, 166, 76, 52, 11]}, {"12587139": [9, 17, 75]}, {"12587144": [52, 2, 0, 0, 52]}, {"12587151": [2]}, {"12589216": [12, 16, 12, 26]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 147]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 120]}, {"14109028": [16, 0]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 128, 73, 14, 222]}, {"14149508": [52]}, {"14149510": [0, 1, 2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 208]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 224]}, {"14624335": [118]}, {"14720872": [128]}, {"14720874": [14, 222]}, {"14720884": [49, 248, 0, 4]}, {"14720944": [12, 16, 11, 216]}, {"14848904": [8, 16, 11, 247]}, {"14852164": [12, 16, 12, 0]}, {"14872723": [52]}, {"15327704": [52, 9, 64, 0]}, {"15327728": [52]}, {"15327730": [91, 8]}, {"15327744": [52]}, {"15327746": [0, 10]}, {"15327757": [169]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55057455": [1]}, {"55057457": [2]}, {"55057459": [4]}, {"55057461": [8]}, {"55057467": [16]}, {"55057471": [32]}, {"55057473": [64]}, {"55057475": [128, 1]}, {"55057502": [2]}, {"55057504": [4]}, {"55057514": [8]}, {"55057516": [16]}, {"55057518": [32]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 236, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 48, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 76, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 104, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 220, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 108, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 140, 128, 64, 38, 132, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 172, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 39, 212, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 28, 128, 64, 40]}, {"55059600": [83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 3, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 44, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [2, 52, 2]}, {"55060003": [69, 52, 2]}, {"55060007": [70, 3, 224]}, {"55060011": [8]}, {"55060016": [144, 136]}, {"55060019": [162, 49, 8]}, {"55060023": [6, 17]}, {"55060027": [2, 52, 2]}, {"55060031": [55, 52, 2]}, {"55060035": [56, 3, 224]}, {"55060039": [8]}, {"55060044": [144, 136]}, {"55060047": [161, 49, 8]}, {"55060051": [32, 17]}, {"55060055": [2, 52, 2]}, {"55060059": [121, 52, 2]}, {"55060063": [122, 3, 224]}, {"55060067": [8]}, {"55060072": [144, 136]}, {"55060075": [161, 49, 8]}, {"55060079": [4, 17]}, {"55060083": [2, 52, 2]}, {"55060087": [119, 52, 2]}, {"55060091": [120, 3, 224]}, {"55060095": [8]}, {"55060100": [144, 136]}, {"55060103": [50, 17]}, {"55060107": [2, 52, 2]}, {"55060111": [192, 52, 2]}, {"55060115": [193, 3, 224]}, {"55060119": [8]}, {"55060124": [144, 136]}, {"55060127": [163, 49, 8]}, {"55060131": [3, 17]}, {"55060135": [2, 52, 2]}, {"55060139": [77, 52, 162]}, {"55060144": [3, 224]}, {"55060147": [8]}, {"55060152": [144, 136]}, {"55060155": [163, 49, 8]}, {"55060159": [24, 17]}, {"55060163": [2, 52, 2]}, {"55060167": [77, 52, 162]}, {"55060172": [3, 224]}, {"55060175": [8]}, {"55060180": [3, 224]}, {"55060183": [8]}, {"55060188": [52, 8]}, {"55060191": [1, 160, 136]}, {"55060195": [62, 3, 224]}, {"55060199": [8]}, {"55060204": [36, 136]}, {"55060207": [134, 36, 9, 255, 255, 37, 41]}, {"55060215": [1, 52, 1]}, {"55060219": [3]}, {"55060221": [41, 8, 42, 20, 32]}, {"55060227": [7]}, {"55060232": [1, 9, 80, 33, 145, 75]}, {"55060240": [52, 1]}, {"55060243": [255, 21, 97, 255, 247]}, {"55060252": [161, 69]}, {"55060256": [3, 224]}, {"55060259": [8]}, {"55060264": [36, 136]}, {"55060267": [168, 1, 6, 64, 33, 145, 9]}, {"55060276": [1, 37, 72, 37, 161, 9]}, {"55060284": [3, 224]}, {"55060287": [8]}, {"55060292": [36, 136]}, {"55060295": [188, 1, 5, 64, 33, 129, 9]}, {"55060304": [5, 33]}, {"55060307": [2]}, {"55060312": [52, 9]}, {"55060316": [37, 41]}, {"55060319": [1, 161, 9]}, {"55060324": [3, 224]}, {"55060327": [8]}, {"55060332": [52, 8]}, {"55060335": [1, 160, 136]}, {"55060339": [61, 52, 8]}, {"55060343": [20, 160, 136]}, {"55060347": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [50, 160, 136]}, {"55060375": [58, 52, 8]}, {"55060379": [48, 164, 136, 19, 244, 160, 136]}, {"55060387": [51, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [2, 160, 136]}, {"55060403": [50, 52, 8]}, {"55060407": [1, 160, 136]}, {"55060411": [58, 160, 136]}, {"55060415": [60, 52, 8]}, {"55060419": [96, 164, 136, 19, 244, 160, 136]}, {"55060427": [51, 3, 224]}, {"55060431": [8]}, {"55060436": [144, 136]}, {"55060439": [124, 52, 1]}, {"55060443": [255, 17, 1]}, {"55060447": [6, 52, 2]}, {"55060451": [107, 144, 136]}, {"55060455": [148, 45, 8]}, {"55060459": [6, 17]}, {"55060463": [2, 52, 2]}, {"55060467": [106, 52, 2]}, {"55060471": [3, 3, 224]}, {"55060475": [8]}, {"55060480": [144, 136]}, {"55060483": [123, 52, 1]}, {"55060487": [255, 17, 1]}, {"55060491": [2, 52, 162]}, {"55060496": [52, 2]}, {"55060499": [12, 3, 224]}, {"55060503": [8]}, {"55060508": [52, 8]}, {"55060511": [7, 160, 136]}, {"55060515": [123, 3, 224]}, {"55060519": [8]}, {"55060524": [52, 8]}, {"55060527": [1]}, {"55060529": [168, 64, 4, 140, 137]}, {"55060535": [164, 1, 40, 72, 37, 172, 137]}, {"55060543": [164, 3, 224]}, {"55060547": [8]}, {"55060552": [48, 132]}, {"55060555": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060567": [140, 16, 129]}, {"55060571": [22, 145, 2]}, {"55060575": [117, 52, 1]}, {"55060579": [141, 16, 129]}, {"55060583": [19, 145, 2]}, {"55060587": [117, 16, 128]}, {"55060591": [17, 145, 2]}, {"55060595": [116, 52, 1]}, {"55060599": [138, 16, 129]}, {"55060603": [14, 145, 2]}, {"55060607": [116, 52, 1]}, {"55060611": [139, 16, 129]}, {"55060615": [11, 145, 2]}, {"55060619": [116, 52, 1]}, {"55060623": [88, 16, 129]}, {"55060627": [8, 52, 2]}, {"55060632": [52, 1]}, {"55060635": [120, 16, 129]}, {"55060639": [5, 52, 2]}, {"55060644": [52, 1]}, {"55060647": [121, 16, 129]}, {"55060651": [2, 52, 2]}, {"55060656": [52, 2]}, {"55060659": [255, 3, 224]}, {"55060663": [8]}, {"55060668": [39, 189, 255, 224, 175, 191]}, {"55060675": [16, 175, 176]}, {"55060679": [20, 12, 16, 11, 11]}, {"55060688": [4, 65]}, {"55060691": [2]}, {"55060696": [52, 2]}, {"55060699": [91]}, {"55060701": [64, 32, 33, 12, 16, 11, 114]}, {"55060712": [16, 96]}, {"55060715": [22, 175, 163]}, {"55060719": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060728": [133, 9]}, {"55060731": [2, 17, 32]}, {"55060735": [3, 52, 10]}, {"55060739": [1, 16]}, {"55060743": [12, 165, 10]}, {"55060748": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060759": [6, 144, 102]}, {"55060763": [7, 140, 105]}, {"55060767": [8, 1, 32, 248, 9]}, {"55060776": [143, 163]}, {"55060779": [28, 144, 101]}, {"55060783": [1, 12, 1, 191, 115, 2, 32, 32, 33, 143, 163]}, {"55060795": [28, 144, 101]}, {"55060799": [3, 16]}, {"55060803": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060815": [6]}, {"55060817": [74]}, {"55060819": [24]}, {"55060822": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060832": [60, 8, 128, 64, 37, 8, 32]}, {"55060840": [133, 9]}, {"55060843": [2, 17, 32]}, {"55060847": [3, 52, 10]}, {"55060851": [1, 165, 10]}, {"55060856": [52, 5]}, {"55060859": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060871": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060882": [48, 33, 143, 191]}, {"55060887": [16, 143, 176]}, {"55060891": [20, 39, 189]}, {"55060895": [32, 3, 224]}, {"55060899": [8]}, {"55060904": [143, 166]}, {"55060907": [48, 132, 197]}, {"55060911": [4, 8, 16, 10, 114]}, {"55060920": [143, 185]}, {"55060923": [44, 135, 37]}, {"55060927": [4, 8, 16, 10, 114]}, {"55060936": [60, 10, 128, 64, 37, 74, 32, 8, 141, 75]}, {"55060947": [12, 17, 96]}, {"55060951": [2]}, {"55060956": [149, 69]}, {"55060959": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060972": [60, 9, 128, 64, 37, 41, 32, 24, 129, 42]}, {"55060983": [3, 5, 64]}, {"55060987": [11, 1, 42, 72, 32, 129, 40]}, {"55060996": [52, 10]}, {"55060999": [127, 21, 10]}, {"55061003": [6]}, {"55061008": [60, 10, 128, 18, 37, 74, 165, 208, 133, 72]}, {"55061019": [144, 33, 8]}, {"55061023": [1, 165, 72]}, {"55061027": [144, 161, 32]}, {"55061032": [3, 224]}, {"55061035": [8]}, {"55061040": [60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061051": [12, 17, 32]}, {"55061055": [2]}, {"55061060": [129, 3]}, {"55061063": [2]}, {"55061065": [3, 15, 195]}, {"55061069": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061083": [8]}, {"55061088": [144, 69]}, {"55061091": [3, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061103": [12, 17, 32]}, {"55061107": [2]}, {"55061112": [145, 5]}, {"55061115": [3, 3, 224]}, {"55061119": [8]}, {"55061124": [143, 162]}, {"55061127": [36, 144, 69]}, {"55061132": [60, 8, 128, 64, 37, 8, 32]}, {"55061140": [133, 9]}, {"55061143": [2, 17, 32]}, {"55061147": [4, 52, 10]}, {"55061151": [1, 165, 10]}, {"55061156": [16]}, {"55061159": [24, 52, 5]}, {"55061163": [65, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061175": [12, 17, 32]}, {"55061179": [19]}, {"55061184": [145, 5]}, {"55061187": [1, 175, 164]}, {"55061192": [175, 165]}, {"55061195": [4, 175, 166]}, {"55061199": [8, 39, 189, 255, 232, 175, 191]}, {"55061207": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061219": [6, 145, 6]}, {"55061223": [7, 141, 9]}, {"55061227": [8, 1, 32, 248, 9]}, {"55061236": [143, 191]}, {"55061239": [16, 39, 189]}, {"55061243": [24, 143, 164]}, {"55061248": [143, 165]}, {"55061251": [4, 143, 166]}, {"55061255": [8, 3, 224]}, {"55061259": [8]}, {"55061264": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061275": [16, 175, 163]}, {"55061279": [20, 175, 191]}, {"55061283": [24, 12, 16, 10, 209]}, {"55061292": [143, 162]}, {"55061295": [16, 143, 163]}, {"55061299": [20, 143, 191]}, {"55061303": [24, 39, 189]}, {"55061307": [32, 3, 224]}, {"55061311": [8]}, {"55061316": [39, 189, 255, 232, 175, 191]}, {"55061323": [16, 60, 8, 128, 64, 37, 8, 32, 8, 173]}, {"55061336": [173]}, {"55061339": [4, 173]}, {"55061343": [8, 173]}, {"55061347": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061363": [42]}, {"55061369": [9, 15, 195, 1, 33, 32, 38]}, {"55061377": [129, 32, 35, 141, 5, 4, 40, 12, 16, 11, 11]}, {"55061392": [4, 64]}, {"55061395": [34]}, {"55061400": [52, 68]}, {"55061404": [12, 16, 11, 114]}, {"55061412": [16, 96]}, {"55061415": [12]}, {"55061420": [60, 8, 128, 64, 37, 8, 32, 8, 140, 105]}, {"55061432": [173, 9]}, {"55061436": [140, 105]}, {"55061439": [4, 173, 9]}, {"55061443": [4, 140, 105]}, {"55061447": [8, 173, 9]}, {"55061451": [8, 52, 9]}, {"55061455": [1, 173, 9]}, {"55061459": [12, 144, 98]}, {"55061464": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061480": [52, 1]}, {"55061483": [10, 21, 65]}, {"55061487": [6]}, {"55061492": [149, 42]}, {"55061495": [28, 49, 74, 240, 31]}, {"55061501": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061511": [28, 129, 9, 4, 36, 5, 33]}, {"55061519": [2]}, {"55061525": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061535": [16, 39, 189]}, {"55061539": [24, 3, 224]}, {"55061543": [8]}, {"55061548": [39, 189, 255, 232, 175, 191]}, {"55061555": [16, 12, 16, 11, 25]}, {"55061564": [36, 1, 255, 255, 16, 65]}, {"55061571": [4]}, {"55061576": [52, 68]}, {"55061580": [12, 16, 11, 77]}, {"55061588": [143, 191]}, {"55061591": [16, 39, 189]}, {"55061595": [24, 3, 224]}, {"55061599": [8]}, {"55061604": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061615": [164, 52, 8]}, {"55061620": [52, 137]}, {"55061624": [148, 170]}, {"55061628": [52, 1, 1, 156, 21, 65]}, {"55061635": [8]}, {"55061640": [52, 8]}, {"55061643": [3, 148, 171]}, {"55061647": [28, 49, 105]}, {"55061651": [255, 49, 98, 31]}, {"55061657": [2, 18, 2, 16]}, {"55061663": [31]}, {"55061668": [52, 1]}, {"55061671": [10, 21, 65]}, {"55061675": [14]}, {"55061680": [148, 171]}, {"55061683": [28, 52, 1]}, {"55061687": [16, 20, 65]}, {"55061691": [8]}, {"55061696": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061707": [4]}, {"55061712": [36, 2, 255, 255, 16]}, {"55061719": [21]}, {"55061724": [52, 8]}, {"55061727": [1, 49, 105]}, {"55061731": [31, 52, 1]}, {"55061735": [21, 21, 65]}, {"55061739": [12]}, {"55061744": [52, 1]}, {"55061747": [62, 16, 129]}, {"55061751": [7]}, {"55061756": [52, 1]}, {"55061759": [66, 16, 129]}, {"55061763": [4]}, {"55061768": [36, 2, 255, 255, 16]}, {"55061775": [7]}, {"55061780": [52, 8]}, {"55061783": [2, 144, 169, 1, 65]}, {"55061789": [2, 18]}, {"55061793": [72, 16, 37]}, {"55061797": [2, 18]}, {"55061801": [73, 16, 37, 3, 224]}, {"55061807": [8]}, {"55061812": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061824": [129, 9]}, {"55061828": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061851": [4, 141, 9]}, {"55061856": [17, 32]}, {"55061859": [23]}, {"55061865": [9, 82, 2, 49, 75, 248]}, {"55061873": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061896": [49, 34]}, {"55061899": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061920": [60, 12, 128, 64, 37, 140, 28]}, {"55061928": [129, 140]}, {"55061932": [17, 108]}, {"55061935": [4, 165, 32]}, {"55061939": [2, 161, 43]}, {"55061943": [2, 161, 34]}, {"55061947": [3, 173, 36]}, {"55061951": [4, 3, 224]}, {"55061955": [8]}, {"55061960": [39, 189, 255, 224, 175, 176]}, {"55061967": [16, 175, 177]}, {"55061971": [20, 175, 191]}, {"55061975": [24, 52, 130]}, {"55061980": [52, 80]}, {"55061984": [38, 8, 255, 128, 5]}, {"55061991": [18]}, {"55061996": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55062007": [16, 1, 9]}, {"55062011": [24]}, {"55062014": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55062032": [142, 40]}, {"55062035": [12, 1]}, {"55062038": [248, 9]}, {"55062044": [20, 80, 255, 239]}, {"55062052": [54, 35]}, {"55062056": [16]}, {"55062059": [2]}, {"55062064": [52, 3]}, {"55062068": [143, 176]}, {"55062071": [16, 143, 177]}, {"55062075": [20, 143, 191]}, {"55062079": [24, 39, 189]}, {"55062083": [32, 3, 224]}, {"55062087": [8]}, {"55062092": [140, 136, 29, 44, 52, 9]}, {"55062099": [1]}, {"55062101": [9, 78]}, {"55062104": [1, 9, 16, 36, 16, 64]}, {"55062111": [36]}, {"55062116": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062131": [164, 52, 1]}, {"55062135": [61, 17, 129]}, {"55062139": [10]}, {"55062145": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062155": [25]}, {"55062160": [52, 13]}, {"55062163": [1, 161, 141, 29, 40, 37, 74]}, {"55062171": [3, 16]}, {"55062175": [9]}, {"55062180": [52, 12]}, {"55062183": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062199": [14]}, {"55062204": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062240": [60, 9, 128, 64, 37, 41, 32, 24, 161, 40]}, {"55062252": [52, 2]}, {"55062256": [3, 224]}, {"55062259": [8]}, {"55062264": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062276": [16]}, {"55062279": [34]}, {"55062284": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062296": [16]}, {"55062299": [29]}, {"55062304": [52, 2]}, {"55062307": [255, 32, 232, 255, 166, 33, 8]}, {"55062315": [97, 16]}, {"55062319": [24]}, {"55062324": [52, 8]}, {"55062327": [100, 16]}, {"55062331": [21]}, {"55062336": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062351": [1, 160, 40, 14, 222, 52, 8]}, {"55062359": [104, 16]}, {"55062363": [13]}, {"55062368": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062383": [4, 160, 40, 14, 222, 52, 8]}, {"55062391": [106, 16]}, {"55062395": [5]}, {"55062400": [52, 5]}, {"55062403": [3, 52, 8]}, {"55062407": [107, 16]}, {"55062411": [1]}, {"55062416": [60, 9, 128, 64, 37, 41, 32, 24, 60, 10, 128, 64, 37, 74, 32, 27, 129, 44]}, {"55062436": [17, 136]}, {"55062439": [11, 33, 41]}, {"55062443": [1, 21, 42, 255, 252]}, {"55062452": [60, 9, 128, 64, 37, 41, 32, 23, 33, 41]}, {"55062463": [1, 17, 42]}, {"55062467": [4, 129, 44]}, {"55062472": [21, 128, 255, 252]}, {"55062480": [161, 40]}, {"55062484": [3, 224]}, {"55062487": [8]}, {"55062493": [96, 120, 33, 129, 236, 14, 223, 49, 142]}, {"55062503": [128, 17, 192]}, {"55062507": [3, 52, 3]}, {"55062511": [5, 3, 224]}, {"55062515": [8, 52, 2]}, {"55062519": [2, 3, 224]}, {"55062523": [8]}, {"55062525": [96, 16, 33, 133, 194]}, {"55062531": [164, 60, 8, 128, 18, 37, 8, 165, 208, 129, 9, 14, 223, 53, 41]}, {"55062547": [128, 161, 9, 14, 223, 3, 224]}, {"55062555": [8]}, {"55062560": [132, 142]}, {"55062563": [28, 60, 9, 128, 64, 37, 41, 28, 12]}, {"55062573": [14, 64, 64, 1, 40, 72, 32, 133, 42]}, {"55062584": [60, 9, 128, 18, 37, 41, 165, 208, 133, 43, 15, 48, 1, 75, 96, 36, 52, 2]}, {"55062604": [17, 128]}, {"55062607": [4]}, {"55062612": [52, 13]}, {"55062615": [38, 164, 141]}, {"55062619": [28, 52, 2]}, {"55062623": [1, 3, 224]}, {"55062627": [8]}, {"55062632": [132, 174]}, {"55062635": [28, 60, 9, 128, 64, 37, 41, 28, 12]}, {"55062645": [14, 64, 64, 1, 40, 72, 32, 133, 42]}, {"55062656": [60, 9, 128, 18, 37, 41, 165, 208, 133, 43, 15, 48, 1, 75, 96, 37, 165, 44, 15, 48, 3, 224]}, {"55062679": [8]}, {"55062684": [175, 164]}, {"55062687": [104, 175, 165]}, {"55062691": [108, 175, 166]}, {"55062695": [112, 175, 167]}, {"55062699": [116, 39, 189, 255, 232, 175, 163]}, {"55062707": [16, 175, 191]}, {"55062711": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062727": [32, 21]}, {"55062731": [31]}, {"55062736": [60, 9, 128, 64, 37, 41, 32, 27, 52, 10]}, {"55062747": [255, 161, 42]}, {"55062752": [60, 9, 128, 64, 37, 41, 32, 24, 36, 10, 255, 255, 52, 12]}, {"55062767": [3, 33, 74]}, {"55062771": [1, 17, 76]}, {"55062775": [20, 1, 42, 88, 32, 129, 104]}, {"55062784": [17]}, {"55062786": [255, 251]}, {"55062792": [60, 9, 128, 64, 37, 41, 32, 27, 161, 42]}, {"55062804": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062815": [1, 165, 42]}, {"55062820": [60, 9, 128, 65, 52, 10]}, {"55062827": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 209]}, {"55062856": [143, 163]}, {"55062859": [16, 143, 191]}, {"55062863": [20, 39, 189]}, {"55062867": [24, 143, 164]}, {"55062871": [104, 143, 165]}, {"55062875": [108, 143, 166]}, {"55062879": [112, 143, 167]}, {"55062883": [116, 132, 110, 19, 196, 3, 224]}, {"55062891": [8]}, {"55062896": [147, 25]}, {"55062899": [116, 52, 1]}, {"55062903": [255, 23, 33]}, {"55062907": [2]}, {"55062912": [52, 25]}, {"55062915": [44, 3, 224]}, {"55062919": [8, 167, 185]}, {"55062923": [154, 147, 44]}, {"55062927": [116, 52, 1]}, {"55062931": [255, 21, 129]}, {"55062935": [2]}, {"55062940": [52, 12]}, {"55062943": [44, 3, 224]}, {"55062947": [8]}, {"55062952": [145, 174]}, {"55062955": [116, 52, 1]}, {"55062959": [255, 21, 193]}, {"55062963": [2]}, {"55062968": [52, 14]}, {"55062971": [44, 3, 224]}, {"55062975": [8, 167, 174]}, {"55062979": [154, 145, 207]}, {"55062983": [116, 52, 1]}, {"55062987": [255, 21, 225]}, {"55062991": [2]}, {"55062996": [52, 15]}, {"55062999": [44, 3, 224]}, {"55063003": [8, 167, 175]}, {"55063007": [154, 60, 8, 128, 64, 37, 8, 32, 28, 142, 9]}, {"55063019": [104, 173, 9]}, {"55063024": [142, 9]}, {"55063027": [108, 173, 9]}, {"55063031": [4, 150, 9]}, {"55063035": [112, 165, 9]}, {"55063039": [8, 150, 9]}, {"55063043": [156, 165, 9]}, {"55063047": [10, 3, 224]}, {"55063051": [8, 142, 14]}, {"55063055": [4, 39, 189, 255, 224, 175, 176]}, {"55063063": [16, 175, 177]}, {"55063067": [20, 175, 191]}, {"55063071": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 28, 142, 8]}, {"55063091": [4, 17]}, {"55063095": [5]}, {"55063100": [12, 16, 12, 174]}, {"55063108": [16]}, {"55063111": [3]}, {"55063116": [12, 16, 12, 193]}, {"55063124": [12, 16, 12, 161, 52, 4]}, {"55063132": [12, 16, 12, 161, 52, 4]}, {"55063139": [1, 12, 16, 12, 161, 52, 4]}, {"55063147": [2, 143, 176]}, {"55063151": [16, 143, 177]}, {"55063155": [20, 143, 191]}, {"55063159": [24, 39, 189]}, {"55063163": [32, 3, 224]}, {"55063167": [8]}, {"55063172": [2, 4, 64, 33, 145, 9]}, {"55063179": [108, 52, 1]}, {"55063183": [255, 17, 33]}, {"55063187": [7]}, {"55063192": [2, 9, 72, 33, 145, 41]}, {"55063199": [116, 52, 1]}, {"55063203": [44, 17, 33]}, {"55063207": [2]}, {"55063212": [161, 9]}, {"55063215": [105, 3, 224]}, {"55063219": [8]}, {"55063224": [39, 189, 255, 232, 175, 191]}, {"55063231": [16, 142, 40]}, {"55063236": [174, 8]}, {"55063239": [64, 142, 40]}, {"55063243": [4, 174, 8]}, {"55063247": [68, 150, 40]}, {"55063251": [8, 166, 8]}, {"55063255": [72, 162]}, {"55063258": [15, 51, 146, 8]}, {"55063263": [74, 52, 1]}, {"55063267": [255, 21, 1]}, {"55063271": [3]}, {"55063276": [12, 16, 12, 207]}, {"55063284": [143, 191]}, {"55063287": [16, 39, 189]}, {"55063291": [24, 3, 224]}, {"55063295": [8]}, {"55063300": [142, 8]}, {"55063303": [64, 174, 8]}, {"55063307": [104, 142, 8]}, {"55063311": [68, 174, 8]}, {"55063315": [108, 150, 8]}, {"55063319": [72, 166, 8]}, {"55063323": [112, 146, 8]}, {"55063327": [104, 52, 1]}, {"55063331": [255, 21, 1]}, {"55063335": [3]}, {"55063340": [52, 8]}, {"55063343": [1, 162, 8, 15, 51, 3, 224]}, {"55063351": [8]}, {"55063356": [39, 189, 255, 232, 175, 191]}, {"55063363": [16, 150, 8]}, {"55063367": [156, 49, 8]}, {"55063371": [64, 17]}, {"55063375": [5]}, {"55063380": [150, 8]}, {"55063383": [112, 49, 8, 255, 15, 53, 8]}, {"55063391": [48, 166, 8]}, {"55063395": [112, 146, 40]}, {"55063399": [1, 162, 8]}, {"55063403": [105, 150, 40]}, {"55063407": [2, 166, 8]}, {"55063411": [106, 142, 40]}, {"55063415": [4, 174, 8]}, {"55063419": [108, 12, 16, 12, 233, 52, 4]}, {"55063428": [12, 16, 12, 233, 52, 4]}, {"55063435": [1, 12, 16, 12, 233, 52, 4]}, {"55063443": [2, 143, 191]}, {"55063447": [16, 39, 189]}, {"55063451": [24, 3, 224]}, {"55063455": [8]}, {"55063460": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 52, 80, 145, 10]}, {"55063475": [108, 52, 1]}, {"55063479": [255, 17, 65]}, {"55063483": [5]}, {"55063488": [1, 42, 72, 33, 145, 41]}, {"55063496": [21, 32]}, {"55063499": [28]}, {"55063504": [60, 9, 128, 64, 37, 41, 52, 67, 37, 41]}, {"55063515": [1, 145, 42]}, {"55063520": [17, 64]}, {"55063523": [19]}, {"55063528": [2, 10, 88, 33, 145, 107]}, {"55063535": [116, 52, 1]}, {"55063539": [255, 17, 97, 255, 248]}, {"55063548": [146, 12]}, {"55063551": [108, 17, 138, 255, 245]}, {"55063560": [146, 12]}, {"55063563": [109, 17, 138, 255, 242]}, {"55063572": [146, 12]}, {"55063575": [110, 17, 138, 255, 239]}, {"55063584": [161, 11]}, {"55063587": [105, 161, 10]}, {"55063591": [108, 16]}, {"55063595": [4]}, {"55063600": [52, 9]}, {"55063603": [255, 161, 9]}, {"55063607": [105, 161, 9]}, {"55063611": [108, 3, 224]}, {"55063615": [8]}, {"55063620": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063633": [1, 1, 1, 1, 1]}, {"55063639": [1, 1, 1, 1, 1]}, {"55063645": [1]}, {"55063647": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063657": [51, 8, 33, 32, 15]}, {"55063663": [71, 21, 234]}, {"55063667": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063679": [164]}, {"55063681": [15, 122, 3, 20, 64]}, {"55063687": [5, 52, 2, 72, 48, 21, 226]}, {"55063695": [7]}, {"55063700": [36, 25]}, {"55063703": [3, 16]}, {"55063707": [4, 52, 2, 99, 17, 21, 226]}, {"55063715": [2]}, {"55063720": [36, 25]}, {"55063723": [3, 3, 224]}, {"55063727": [8]}, {"55063732": [141, 173, 138, 160, 52, 2, 128]}, {"55063740": [16, 77]}, {"55063743": [2]}, {"55063748": [16]}, {"55063751": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063767": [1, 16, 64]}, {"55063771": [2]}, {"55063776": [16]}, {"55063779": [2, 52, 2]}, {"55063783": [1, 161, 226, 28, 191, 3, 224]}, {"55063791": [8]}, {"55063797": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063811": [164]}, {"55063813": [15, 122, 3, 20, 64]}, {"55063819": [5, 52, 2, 72, 48, 21, 226]}, {"55063827": [7]}, {"55063832": [36, 25]}, {"55063835": [3, 16]}, {"55063839": [4, 52, 2, 99, 17, 21, 226]}, {"55063847": [2]}, {"55063852": [36, 25]}, {"55063855": [3, 3, 224]}, {"55063859": [8]}, {"55063864": [162, 37]}, {"55063867": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063879": [4, 142, 10]}, {"55063884": [17, 64]}, {"55063887": [11]}, {"55063893": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063905": [24, 194, 2, 23]}, {"55063911": [3, 49, 89]}, {"55063915": [255, 129, 234]}, {"55063920": [3, 42, 200, 37, 8, 16, 13, 81, 161, 249]}, {"55063932": [3, 224]}, {"55063935": [8]}] \ No newline at end of file diff --git a/version.py b/version.py index fedf27c1a..49d81f6cc 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.24 f.LUM' +__version__ = '2.15.25 f.LUM' From 3330ebde2ebad6540cacd3be318065aec6f988d2 Mon Sep 17 00:00:00 2001 From: mzxrules Date: Thu, 16 Aug 2018 19:03:08 -0400 Subject: [PATCH 299/755] rom addresses converted to hexadecimal --- Rom.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Rom.py b/Rom.py index 7c43568f8..64c03321c 100644 --- a/Rom.py +++ b/Rom.py @@ -84,9 +84,9 @@ def __init__(self, settings, patch=True): romCRC = self.buffer[0x10:0x18] if romCRC not in validCRC: raise RuntimeError('ROM is not a valid OoT 1.0 US ROM.') - if len(self.buffer) < 33554432 or len(self.buffer) > 67108864 or file_name[1] not in ['.z64', '.n64']: + if len(self.buffer) < 0x2000000 or len(self.buffer) > (0x4000000) or file_name[1] not in ['.z64', '.n64']: raise RuntimeError('ROM is not a valid OoT 1.0 ROM.') - if len(self.buffer) == 33554432: + if len(self.buffer) == 0x2000000: if platform.system() == 'Windows': subprocess.call(["Decompress\\Decompress.exe", file, decomp_file]) with open(decomp_file, 'rb') as stream: @@ -102,7 +102,7 @@ def __init__(self, settings, patch=True): else: raise RuntimeError('Unsupported operating system for decompression. Please supply an already decompressed ROM.') # extend to 64MB - self.buffer.extend(bytearray([0x00] * (67108864 - len(self.buffer)))) + self.buffer.extend(bytearray([0x00] * (0x4000000 - len(self.buffer)))) def read_byte(self, address): return self.buffer[address] From da8a769c37cd9d40ff8a189db3f45054dd3767f4 Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 16 Aug 2018 19:41:56 -0400 Subject: [PATCH 300/755] Fix soft lock in happymask shop (issue #9) --- Rom.py | 2 ++ version.py | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Rom.py b/Rom.py index adc91cc5a..94d5df9ab 100644 --- a/Rom.py +++ b/Rom.py @@ -1319,6 +1319,8 @@ def write_save_table(rom): # give dungeon items the correct messages message_patch_for_dungeon_items(messages, shop_items, world) + # update happy mask shop to use new SOLD OUT text id + rom.write_int16(0xC01C06, shop_items[0x26].description_message) # add song messages add_song_messages(messages, world) diff --git a/version.py b/version.py index bd3609be4..0af1827a3 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.27 f.LUM' +__version__ = '2.15.28 f.LUM' From d345a01e63e8fcd2d80f5f83850479f187646d06 Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 16 Aug 2018 20:31:35 -0400 Subject: [PATCH 301/755] Shop items use override table to support extended item types --- Regions.py | 112 ++++++++++++++++++++++++++--------------------------- Rom.py | 4 +- version.py | 2 +- 3 files changed, 60 insertions(+), 58 deletions(-) diff --git a/Regions.py b/Regions.py index a50fe96c6..3865d8fe9 100644 --- a/Regions.py +++ b/Regions.py @@ -1010,60 +1010,60 @@ def _create_region(name, type, locations=None, exits=None): 'GS Desert Colossus Hill': (None, None, 0x04, 'GS Token', 0x15, 'Desert Colossus'), 'GS Desert Colossus Tree': (None, None, 0x08, 'GS Token', 0x15, 'Desert Colossus'), - 'Kokiri Shop Item 1': (0xC71ED0, None, 0x000D, 'Shop', None, 'Kokiri Forest'), - 'Kokiri Shop Item 2': (0xC71ED8, None, 0x0000, 'Shop', None, 'Kokiri Forest'), - 'Kokiri Shop Item 3': (0xC71EE0, None, 0x0004, 'Shop', None, 'Kokiri Forest'), - 'Kokiri Shop Item 4': (0xC71EE8, None, 0x0005, 'Shop', None, 'Kokiri Forest'), - 'Kokiri Shop Item 5': (0xC71EF0, None, 0x001D, 'Shop', None, 'Kokiri Forest'), - 'Kokiri Shop Item 6': (0xC71EF8, None, 0x002C, 'Shop', None, 'Kokiri Forest'), - 'Kokiri Shop Item 7': (0xC71F00, None, 0x0001, 'Shop', None, 'Kokiri Forest'), - 'Kokiri Shop Item 8': (0xC71F08, None, 0x0010, 'Shop', None, 'Kokiri Forest'), - 'Kakariko Potion Shop Item 1': (0xC71F10, None, 0x0009, 'Shop', None, 'Kakariko Village'), - 'Kakariko Potion Shop Item 2': (0xC71F18, None, 0x0027, 'Shop', None, 'Kakariko Village'), - 'Kakariko Potion Shop Item 3': (0xC71F20, None, 0x0008, 'Shop', None, 'Kakariko Village'), - 'Kakariko Potion Shop Item 4': (0xC71F28, None, 0x002B, 'Shop', None, 'Kakariko Village'), - 'Kakariko Potion Shop Item 5': (0xC71F30, None, 0x0000, 'Shop', None, 'Kakariko Village'), - 'Kakariko Potion Shop Item 6': (0xC71F38, None, 0x0028, 'Shop', None, 'Kakariko Village'), - 'Kakariko Potion Shop Item 7': (0xC71F40, None, 0x002A, 'Shop', None, 'Kakariko Village'), - 'Kakariko Potion Shop Item 8': (0xC71F48, None, 0x0007, 'Shop', None, 'Kakariko Village'), - 'Bombchu Shop Item 1': (0xC71F50, None, 0x0018, 'Shop', None, 'the market'), - 'Bombchu Shop Item 2': (0xC71F58, None, 0x001C, 'Shop', None, 'the market'), - 'Bombchu Shop Item 3': (0xC71F60, None, 0x0019, 'Shop', None, 'the market'), - 'Bombchu Shop Item 4': (0xC71F68, None, 0x0015, 'Shop', None, 'the market'), - 'Bombchu Shop Item 5': (0xC71F70, None, 0x001A, 'Shop', None, 'the market'), - 'Bombchu Shop Item 6': (0xC71F78, None, 0x0016, 'Shop', None, 'the market'), - 'Bombchu Shop Item 7': (0xC71F80, None, 0x001B, 'Shop', None, 'the market'), - 'Bombchu Shop Item 8': (0xC71F88, None, 0x0017, 'Shop', None, 'the market'), - 'Castle Town Potion Shop Item 1': (0xC71F90, None, 0x0009, 'Shop', None, 'the market'), - 'Castle Town Potion Shop Item 2': (0xC71F98, None, 0x0027, 'Shop', None, 'the market'), - 'Castle Town Potion Shop Item 3': (0xC71FA0, None, 0x0008, 'Shop', None, 'the market'), - 'Castle Town Potion Shop Item 4': (0xC71FA8, None, 0x002B, 'Shop', None, 'the market'), - 'Castle Town Potion Shop Item 5': (0xC71FB0, None, 0x0000, 'Shop', None, 'the market'), - 'Castle Town Potion Shop Item 6': (0xC71FB8, None, 0x0028, 'Shop', None, 'the market'), - 'Castle Town Potion Shop Item 7': (0xC71FC0, None, 0x002A, 'Shop', None, 'the market'), - 'Castle Town Potion Shop Item 8': (0xC71FC8, None, 0x0007, 'Shop', None, 'the market'), - 'Bazaar Item 1': (0xC71FD0, None, 0x000C, 'Shop', None, 'the market'), - 'Bazaar Item 2': (0xC71FD8, None, 0x002F, 'Shop', None, 'the market'), - 'Bazaar Item 3': (0xC71FE0, None, 0x0000, 'Shop', None, 'the market'), - 'Bazaar Item 4': (0xC71FE8, None, 0x0010, 'Shop', None, 'the market'), - 'Bazaar Item 5': (0xC71FF0, None, 0x002C, 'Shop', None, 'the market'), - 'Bazaar Item 6': (0xC71FF8, None, 0x0002, 'Shop', None, 'the market'), - 'Bazaar Item 7': (0xC72000, None, 0x0005, 'Shop', None, 'the market'), - 'Bazaar Item 8': (0xC72008, None, 0x0001, 'Shop', None, 'the market'), - 'Zora Shop Item 1': (0xC720D0, None, 0x000F, 'Shop', None, 'Zora\'s Domain'), - 'Zora Shop Item 2': (0xC720D8, None, 0x002C, 'Shop', None, 'Zora\'s Domain'), - 'Zora Shop Item 3': (0xC720E0, None, 0x0010, 'Shop', None, 'Zora\'s Domain'), - 'Zora Shop Item 4': (0xC720E8, None, 0x0001, 'Shop', None, 'Zora\'s Domain'), - 'Zora Shop Item 5': (0xC720F0, None, 0x0000, 'Shop', None, 'Zora\'s Domain'), - 'Zora Shop Item 6': (0xC720F8, None, 0x0002, 'Shop', None, 'Zora\'s Domain'), - 'Zora Shop Item 7': (0xC72100, None, 0x0007, 'Shop', None, 'Zora\'s Domain'), - 'Zora Shop Item 8': (0xC72108, None, 0x0031, 'Shop', None, 'Zora\'s Domain'), - 'Goron Shop Item 1': (0xC72110, None, 0x0003, 'Shop', None, 'Goron City'), - 'Goron Shop Item 2': (0xC72118, None, 0x0006, 'Shop', None, 'Goron City'), - 'Goron Shop Item 3': (0xC72120, None, 0x002D, 'Shop', None, 'Goron City'), - 'Goron Shop Item 4': (0xC72128, None, 0x002E, 'Shop', None, 'Goron City'), - 'Goron Shop Item 5': (0xC72130, None, 0x000E, 'Shop', None, 'Goron City'), - 'Goron Shop Item 6': (0xC72138, None, 0x0010, 'Shop', None, 'Goron City'), - 'Goron Shop Item 7': (0xC72140, None, 0x0030, 'Shop', None, 'Goron City'), - 'Goron Shop Item 8': (0xC72148, None, 0x0010, 'Shop', None, 'Goron City'), + 'Kokiri Shop Item 1': (0xC71ED0, None, 0x30, 'Shop', 0x2D, 'Kokiri Forest'), + 'Kokiri Shop Item 2': (0xC71ED8, None, 0x31, 'Shop', 0x2D, 'Kokiri Forest'), + 'Kokiri Shop Item 3': (0xC71EE0, None, 0x32, 'Shop', 0x2D, 'Kokiri Forest'), + 'Kokiri Shop Item 4': (0xC71EE8, None, 0x33, 'Shop', 0x2D, 'Kokiri Forest'), + 'Kokiri Shop Item 5': (0xC71EF0, None, 0x34, 'Shop', 0x2D, 'Kokiri Forest'), + 'Kokiri Shop Item 6': (0xC71EF8, None, 0x35, 'Shop', 0x2D, 'Kokiri Forest'), + 'Kokiri Shop Item 7': (0xC71F00, None, 0x36, 'Shop', 0x2D, 'Kokiri Forest'), + 'Kokiri Shop Item 8': (0xC71F08, None, 0x37, 'Shop', 0x2D, 'Kokiri Forest'), + 'Kakariko Potion Shop Item 1': (0xC71F10, None, 0x30, 'Shop', 0x30, 'Kakariko Village'), + 'Kakariko Potion Shop Item 2': (0xC71F18, None, 0x31, 'Shop', 0x30, 'Kakariko Village'), + 'Kakariko Potion Shop Item 3': (0xC71F20, None, 0x32, 'Shop', 0x30, 'Kakariko Village'), + 'Kakariko Potion Shop Item 4': (0xC71F28, None, 0x33, 'Shop', 0x30, 'Kakariko Village'), + 'Kakariko Potion Shop Item 5': (0xC71F30, None, 0x34, 'Shop', 0x30, 'Kakariko Village'), + 'Kakariko Potion Shop Item 6': (0xC71F38, None, 0x35, 'Shop', 0x30, 'Kakariko Village'), + 'Kakariko Potion Shop Item 7': (0xC71F40, None, 0x36, 'Shop', 0x30, 'Kakariko Village'), + 'Kakariko Potion Shop Item 8': (0xC71F48, None, 0x37, 'Shop', 0x30, 'Kakariko Village'), + 'Bombchu Shop Item 1': (0xC71F50, None, 0x30, 'Shop', 0x32, 'the market'), + 'Bombchu Shop Item 2': (0xC71F58, None, 0x31, 'Shop', 0x32, 'the market'), + 'Bombchu Shop Item 3': (0xC71F60, None, 0x32, 'Shop', 0x32, 'the market'), + 'Bombchu Shop Item 4': (0xC71F68, None, 0x33, 'Shop', 0x32, 'the market'), + 'Bombchu Shop Item 5': (0xC71F70, None, 0x34, 'Shop', 0x32, 'the market'), + 'Bombchu Shop Item 6': (0xC71F78, None, 0x35, 'Shop', 0x32, 'the market'), + 'Bombchu Shop Item 7': (0xC71F80, None, 0x36, 'Shop', 0x32, 'the market'), + 'Bombchu Shop Item 8': (0xC71F88, None, 0x37, 'Shop', 0x32, 'the market'), + 'Castle Town Potion Shop Item 1': (0xC71F90, None, 0x30, 'Shop', 0x31, 'the market'), + 'Castle Town Potion Shop Item 2': (0xC71F98, None, 0x31, 'Shop', 0x31, 'the market'), + 'Castle Town Potion Shop Item 3': (0xC71FA0, None, 0x32, 'Shop', 0x31, 'the market'), + 'Castle Town Potion Shop Item 4': (0xC71FA8, None, 0x33, 'Shop', 0x31, 'the market'), + 'Castle Town Potion Shop Item 5': (0xC71FB0, None, 0x34, 'Shop', 0x31, 'the market'), + 'Castle Town Potion Shop Item 6': (0xC71FB8, None, 0x35, 'Shop', 0x31, 'the market'), + 'Castle Town Potion Shop Item 7': (0xC71FC0, None, 0x36, 'Shop', 0x31, 'the market'), + 'Castle Town Potion Shop Item 8': (0xC71FC8, None, 0x37, 'Shop', 0x31, 'the market'), + 'Bazaar Item 1': (0xC71FD0, None, 0x30, 'Shop', 0x2C, 'the market'), + 'Bazaar Item 2': (0xC71FD8, None, 0x31, 'Shop', 0x2C, 'the market'), + 'Bazaar Item 3': (0xC71FE0, None, 0x32, 'Shop', 0x2C, 'the market'), + 'Bazaar Item 4': (0xC71FE8, None, 0x33, 'Shop', 0x2C, 'the market'), + 'Bazaar Item 5': (0xC71FF0, None, 0x34, 'Shop', 0x2C, 'the market'), + 'Bazaar Item 6': (0xC71FF8, None, 0x35, 'Shop', 0x2C, 'the market'), + 'Bazaar Item 7': (0xC72000, None, 0x36, 'Shop', 0x2C, 'the market'), + 'Bazaar Item 8': (0xC72008, None, 0x37, 'Shop', 0x2C, 'the market'), + 'Zora Shop Item 1': (0xC720D0, None, 0x30, 'Shop', 0x2F, 'Zora\'s Domain'), + 'Zora Shop Item 2': (0xC720D8, None, 0x31, 'Shop', 0x2F, 'Zora\'s Domain'), + 'Zora Shop Item 3': (0xC720E0, None, 0x32, 'Shop', 0x2F, 'Zora\'s Domain'), + 'Zora Shop Item 4': (0xC720E8, None, 0x33, 'Shop', 0x2F, 'Zora\'s Domain'), + 'Zora Shop Item 5': (0xC720F0, None, 0x34, 'Shop', 0x2F, 'Zora\'s Domain'), + 'Zora Shop Item 6': (0xC720F8, None, 0x35, 'Shop', 0x2F, 'Zora\'s Domain'), + 'Zora Shop Item 7': (0xC72100, None, 0x36, 'Shop', 0x2F, 'Zora\'s Domain'), + 'Zora Shop Item 8': (0xC72108, None, 0x37, 'Shop', 0x2F, 'Zora\'s Domain'), + 'Goron Shop Item 1': (0xC72110, None, 0x30, 'Shop', 0x2E, 'Goron City'), + 'Goron Shop Item 2': (0xC72118, None, 0x31, 'Shop', 0x2E, 'Goron City'), + 'Goron Shop Item 3': (0xC72120, None, 0x32, 'Shop', 0x2E, 'Goron City'), + 'Goron Shop Item 4': (0xC72128, None, 0x33, 'Shop', 0x2E, 'Goron City'), + 'Goron Shop Item 5': (0xC72130, None, 0x34, 'Shop', 0x2E, 'Goron City'), + 'Goron Shop Item 6': (0xC72138, None, 0x35, 'Shop', 0x2E, 'Goron City'), + 'Goron Shop Item 7': (0xC72140, None, 0x36, 'Shop', 0x2E, 'Goron City'), + 'Goron Shop Item 8': (0xC72148, None, 0x37, 'Shop', 0x2E, 'Goron City'), } diff --git a/Rom.py b/Rom.py index 45446616d..eaba82c0f 100644 --- a/Rom.py +++ b/Rom.py @@ -1611,6 +1611,8 @@ def get_override_entry(location): return [scene, player_id | 0x02, default, item_id] elif location.type == 'GS Token': return [scene, player_id | 0x03, default, item_id] + elif location.type == 'Shop' and location.item.type != 'Shop': + return [scene, player_id | 0x00, default, item_id] else: return [] @@ -1753,7 +1755,7 @@ def place_shop_items(rom, shop_items, messages, free_shop_ids, locations): shop_item.model = location.item.model - 1 shop_item.price = location.item.price shop_item.pieces = 1 - shop_item.get_item_id = location.item.index + shop_item.get_item_id = location.default shop_item.func2 = 0x808636B8 shop_item.func4 = 0x80863FB4 diff --git a/version.py b/version.py index 49d81f6cc..3b1f123ad 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.25 f.LUM' +__version__ = '2.15.26 f.LUM' From a8d11707bf407dc4a7c365c4b64fc3f11007b10e Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 16 Aug 2018 20:39:59 -0400 Subject: [PATCH 302/755] Impa does not despawn after watching the Zelda Escape CS --- ASM/src/hacks.asm | 4 ++++ data/base2current.json | 2 +- version.py | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/ASM/src/hacks.asm b/ASM/src/hacks.asm index 17b7561e5..d4271a95c 100755 --- a/ASM/src/hacks.asm +++ b/ASM/src/hacks.asm @@ -374,6 +374,10 @@ .skip 4 andi t8, t7, 0x02 +; Impa does not despawn from Zelda Escape CS +.org 0xD12F78 + li t7, 0 + ;li v1, 5 .org 0xE29388 j override_saria_song_check diff --git a/data/base2current.json b/data/base2current.json index 01d601258..387f961e5 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -1 +1 @@ -[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 196]}, {"11311804": [12, 16, 11, 205]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 190, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 101]}, {"11427312": [12, 16, 13, 14]}, {"11427320": [12, 16, 11, 200]}, {"11427332": [0, 0]}, {"11427335": [0]}, {"11431496": [12, 16, 11, 195, 1, 15, 192, 33]}, {"11559936": [130]}, {"11559938": [14, 222]}, {"11559948": [49, 248, 0, 2]}, {"11562028": [12, 16, 13, 47]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 30]}, {"11882076": [12, 16, 12, 251]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 68, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 75, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 82, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 61, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 140]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 18]}, {"12427480": [12, 16, 10, 106]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 110]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 12, 8, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 152]}, {"12491480": [12, 16, 10, 161]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 147]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 89]}, {"14109028": [16, 0]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 128, 73, 14, 222]}, {"14149508": [52]}, {"14149510": [0, 1, 2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 208]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 224]}, {"14624335": [118]}, {"14720872": [128]}, {"14720874": [14, 222]}, {"14720884": [49, 248, 0, 4]}, {"14720944": [12, 16, 11, 216]}, {"14848904": [8, 16, 11, 247]}, {"14852164": [12, 16, 12, 0]}, {"14872723": [52]}, {"15327704": [52, 9, 64, 0]}, {"15327728": [52]}, {"15327730": [91, 8]}, {"15327744": [52]}, {"15327746": [0, 10]}, {"15327757": [169]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 236, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 48, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 76, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 104, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 220, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 108, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 140, 128, 64, 38, 132, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 172, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 39, 212, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 28, 128, 64, 40]}, {"55059600": [83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 3, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 44, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [2, 52, 2]}, {"55060003": [69, 52, 2]}, {"55060007": [70, 3, 224]}, {"55060011": [8]}, {"55060016": [144, 136]}, {"55060019": [162, 49, 8]}, {"55060023": [6, 17]}, {"55060027": [2, 52, 2]}, {"55060031": [55, 52, 2]}, {"55060035": [56, 3, 224]}, {"55060039": [8]}, {"55060044": [144, 136]}, {"55060047": [161, 49, 8]}, {"55060051": [32, 17]}, {"55060055": [2, 52, 2]}, {"55060059": [121, 52, 2]}, {"55060063": [122, 3, 224]}, {"55060067": [8]}, {"55060072": [144, 136]}, {"55060075": [161, 49, 8]}, {"55060079": [4, 17]}, {"55060083": [2, 52, 2]}, {"55060087": [119, 52, 2]}, {"55060091": [120, 3, 224]}, {"55060095": [8]}, {"55060100": [144, 136]}, {"55060103": [50, 17]}, {"55060107": [2, 52, 2]}, {"55060111": [192, 52, 2]}, {"55060115": [193, 3, 224]}, {"55060119": [8]}, {"55060124": [144, 136]}, {"55060127": [163, 49, 8]}, {"55060131": [3, 17]}, {"55060135": [2, 52, 2]}, {"55060139": [77, 52, 162]}, {"55060144": [3, 224]}, {"55060147": [8]}, {"55060152": [144, 136]}, {"55060155": [163, 49, 8]}, {"55060159": [24, 17]}, {"55060163": [2, 52, 2]}, {"55060167": [77, 52, 162]}, {"55060172": [3, 224]}, {"55060175": [8]}, {"55060180": [3, 224]}, {"55060183": [8]}, {"55060188": [52, 8]}, {"55060191": [1, 160, 136]}, {"55060195": [62, 3, 224]}, {"55060199": [8]}, {"55060204": [36, 136]}, {"55060207": [134, 36, 9, 255, 255, 37, 41]}, {"55060215": [1, 52, 1]}, {"55060219": [3]}, {"55060221": [41, 8, 42, 20, 32]}, {"55060227": [7]}, {"55060232": [1, 9, 80, 33, 145, 75]}, {"55060240": [52, 1]}, {"55060243": [255, 21, 97, 255, 247]}, {"55060252": [161, 69]}, {"55060256": [3, 224]}, {"55060259": [8]}, {"55060264": [36, 136]}, {"55060267": [168, 1, 6, 64, 33, 145, 9]}, {"55060276": [1, 37, 72, 37, 161, 9]}, {"55060284": [3, 224]}, {"55060287": [8]}, {"55060292": [36, 136]}, {"55060295": [188, 1, 5, 64, 33, 129, 9]}, {"55060304": [5, 33]}, {"55060307": [2]}, {"55060312": [52, 9]}, {"55060316": [37, 41]}, {"55060319": [1, 161, 9]}, {"55060324": [3, 224]}, {"55060327": [8]}, {"55060332": [52, 8]}, {"55060335": [1, 160, 136]}, {"55060339": [61, 52, 8]}, {"55060343": [20, 160, 136]}, {"55060347": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [50, 160, 136]}, {"55060375": [58, 52, 8]}, {"55060379": [48, 164, 136, 19, 244, 160, 136]}, {"55060387": [51, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [2, 160, 136]}, {"55060403": [50, 52, 8]}, {"55060407": [1, 160, 136]}, {"55060411": [58, 160, 136]}, {"55060415": [60, 52, 8]}, {"55060419": [96, 164, 136, 19, 244, 160, 136]}, {"55060427": [51, 3, 224]}, {"55060431": [8]}, {"55060436": [144, 136]}, {"55060439": [124, 52, 1]}, {"55060443": [255, 17, 1]}, {"55060447": [6, 52, 2]}, {"55060451": [107, 144, 136]}, {"55060455": [148, 45, 8]}, {"55060459": [6, 17]}, {"55060463": [2, 52, 2]}, {"55060467": [106, 52, 2]}, {"55060471": [3, 3, 224]}, {"55060475": [8]}, {"55060480": [144, 136]}, {"55060483": [123, 52, 1]}, {"55060487": [255, 17, 1]}, {"55060491": [2, 52, 162]}, {"55060496": [52, 2]}, {"55060499": [12, 3, 224]}, {"55060503": [8]}, {"55060508": [52, 8]}, {"55060511": [7, 160, 136]}, {"55060515": [123, 3, 224]}, {"55060519": [8]}, {"55060524": [52, 8]}, {"55060527": [1]}, {"55060529": [168, 64, 4, 140, 137]}, {"55060535": [164, 1, 40, 72, 37, 172, 137]}, {"55060543": [164, 3, 224]}, {"55060547": [8]}, {"55060552": [48, 132]}, {"55060555": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060567": [140, 16, 129]}, {"55060571": [22, 145, 2]}, {"55060575": [117, 52, 1]}, {"55060579": [141, 16, 129]}, {"55060583": [19, 145, 2]}, {"55060587": [117, 16, 128]}, {"55060591": [17, 145, 2]}, {"55060595": [116, 52, 1]}, {"55060599": [138, 16, 129]}, {"55060603": [14, 145, 2]}, {"55060607": [116, 52, 1]}, {"55060611": [139, 16, 129]}, {"55060615": [11, 145, 2]}, {"55060619": [116, 52, 1]}, {"55060623": [88, 16, 129]}, {"55060627": [8, 52, 2]}, {"55060632": [52, 1]}, {"55060635": [120, 16, 129]}, {"55060639": [5, 52, 2]}, {"55060644": [52, 1]}, {"55060647": [121, 16, 129]}, {"55060651": [2, 52, 2]}, {"55060656": [52, 2]}, {"55060659": [255, 3, 224]}, {"55060663": [8]}, {"55060668": [39, 189, 255, 224, 175, 191]}, {"55060675": [16, 175, 176]}, {"55060679": [20, 12, 16, 11, 11]}, {"55060688": [4, 65]}, {"55060691": [2]}, {"55060696": [52, 2]}, {"55060699": [91]}, {"55060701": [64, 32, 33, 12, 16, 11, 114]}, {"55060712": [16, 96]}, {"55060715": [22, 175, 163]}, {"55060719": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060728": [133, 9]}, {"55060731": [2, 17, 32]}, {"55060735": [3, 52, 10]}, {"55060739": [1, 16]}, {"55060743": [12, 165, 10]}, {"55060748": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060759": [6, 144, 102]}, {"55060763": [7, 140, 105]}, {"55060767": [8, 1, 32, 248, 9]}, {"55060776": [143, 163]}, {"55060779": [28, 144, 101]}, {"55060783": [1, 12, 1, 191, 115, 2, 32, 32, 33, 143, 163]}, {"55060795": [28, 144, 101]}, {"55060799": [3, 16]}, {"55060803": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060815": [6]}, {"55060817": [74]}, {"55060819": [24]}, {"55060822": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060832": [60, 8, 128, 64, 37, 8, 32]}, {"55060840": [133, 9]}, {"55060843": [2, 17, 32]}, {"55060847": [3, 52, 10]}, {"55060851": [1, 165, 10]}, {"55060856": [52, 5]}, {"55060859": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060871": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060882": [48, 33, 143, 191]}, {"55060887": [16, 143, 176]}, {"55060891": [20, 39, 189]}, {"55060895": [32, 3, 224]}, {"55060899": [8]}, {"55060904": [143, 166]}, {"55060907": [48, 132, 197]}, {"55060911": [4, 8, 16, 10, 114]}, {"55060920": [143, 185]}, {"55060923": [44, 135, 37]}, {"55060927": [4, 8, 16, 10, 114]}, {"55060936": [60, 10, 128, 64, 37, 74, 32, 8, 141, 75]}, {"55060947": [12, 17, 96]}, {"55060951": [2]}, {"55060956": [149, 69]}, {"55060959": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060972": [60, 9, 128, 64, 37, 41, 32, 24, 129, 42]}, {"55060983": [3, 5, 64]}, {"55060987": [11, 1, 42, 72, 32, 129, 40]}, {"55060996": [52, 10]}, {"55060999": [127, 21, 10]}, {"55061003": [6]}, {"55061008": [60, 10, 128, 18, 37, 74, 165, 208, 133, 72]}, {"55061019": [144, 33, 8]}, {"55061023": [1, 165, 72]}, {"55061027": [144, 161, 32]}, {"55061032": [3, 224]}, {"55061035": [8]}, {"55061040": [60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061051": [12, 17, 32]}, {"55061055": [2]}, {"55061060": [129, 3]}, {"55061063": [2]}, {"55061065": [3, 15, 195]}, {"55061069": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061083": [8]}, {"55061088": [144, 69]}, {"55061091": [3, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061103": [12, 17, 32]}, {"55061107": [2]}, {"55061112": [145, 5]}, {"55061115": [3, 3, 224]}, {"55061119": [8]}, {"55061124": [143, 162]}, {"55061127": [36, 144, 69]}, {"55061132": [60, 8, 128, 64, 37, 8, 32]}, {"55061140": [133, 9]}, {"55061143": [2, 17, 32]}, {"55061147": [4, 52, 10]}, {"55061151": [1, 165, 10]}, {"55061156": [16]}, {"55061159": [24, 52, 5]}, {"55061163": [65, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061175": [12, 17, 32]}, {"55061179": [19]}, {"55061184": [145, 5]}, {"55061187": [1, 175, 164]}, {"55061192": [175, 165]}, {"55061195": [4, 175, 166]}, {"55061199": [8, 39, 189, 255, 232, 175, 191]}, {"55061207": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061219": [6, 145, 6]}, {"55061223": [7, 141, 9]}, {"55061227": [8, 1, 32, 248, 9]}, {"55061236": [143, 191]}, {"55061239": [16, 39, 189]}, {"55061243": [24, 143, 164]}, {"55061248": [143, 165]}, {"55061251": [4, 143, 166]}, {"55061255": [8, 3, 224]}, {"55061259": [8]}, {"55061264": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061275": [16, 175, 163]}, {"55061279": [20, 175, 191]}, {"55061283": [24, 12, 16, 10, 209]}, {"55061292": [143, 162]}, {"55061295": [16, 143, 163]}, {"55061299": [20, 143, 191]}, {"55061303": [24, 39, 189]}, {"55061307": [32, 3, 224]}, {"55061311": [8]}, {"55061316": [39, 189, 255, 232, 175, 191]}, {"55061323": [16, 60, 8, 128, 64, 37, 8, 32, 8, 173]}, {"55061336": [173]}, {"55061339": [4, 173]}, {"55061343": [8, 173]}, {"55061347": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061363": [42]}, {"55061369": [9, 15, 195, 1, 33, 32, 38]}, {"55061377": [129, 32, 35, 141, 5, 4, 40, 12, 16, 11, 11]}, {"55061392": [4, 64]}, {"55061395": [34]}, {"55061400": [52, 68]}, {"55061404": [12, 16, 11, 114]}, {"55061412": [16, 96]}, {"55061415": [12]}, {"55061420": [60, 8, 128, 64, 37, 8, 32, 8, 140, 105]}, {"55061432": [173, 9]}, {"55061436": [140, 105]}, {"55061439": [4, 173, 9]}, {"55061443": [4, 140, 105]}, {"55061447": [8, 173, 9]}, {"55061451": [8, 52, 9]}, {"55061455": [1, 173, 9]}, {"55061459": [12, 144, 98]}, {"55061464": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061480": [52, 1]}, {"55061483": [10, 21, 65]}, {"55061487": [6]}, {"55061492": [149, 42]}, {"55061495": [28, 49, 74, 240, 31]}, {"55061501": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061511": [28, 129, 9, 4, 36, 5, 33]}, {"55061519": [2]}, {"55061525": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061535": [16, 39, 189]}, {"55061539": [24, 3, 224]}, {"55061543": [8]}, {"55061548": [39, 189, 255, 232, 175, 191]}, {"55061555": [16, 12, 16, 11, 25]}, {"55061564": [36, 1, 255, 255, 16, 65]}, {"55061571": [4]}, {"55061576": [52, 68]}, {"55061580": [12, 16, 11, 77]}, {"55061588": [143, 191]}, {"55061591": [16, 39, 189]}, {"55061595": [24, 3, 224]}, {"55061599": [8]}, {"55061604": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061615": [164, 52, 8]}, {"55061620": [52, 137]}, {"55061624": [148, 170]}, {"55061628": [52, 1, 1, 156, 21, 65]}, {"55061635": [8]}, {"55061640": [52, 8]}, {"55061643": [3, 148, 171]}, {"55061647": [28, 49, 105]}, {"55061651": [255, 49, 98, 31]}, {"55061657": [2, 18, 2, 16]}, {"55061663": [31]}, {"55061668": [52, 1]}, {"55061671": [10, 21, 65]}, {"55061675": [14]}, {"55061680": [148, 171]}, {"55061683": [28, 52, 1]}, {"55061687": [16, 20, 65]}, {"55061691": [8]}, {"55061696": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061707": [4]}, {"55061712": [36, 2, 255, 255, 16]}, {"55061719": [21]}, {"55061724": [52, 8]}, {"55061727": [1, 49, 105]}, {"55061731": [31, 52, 1]}, {"55061735": [21, 21, 65]}, {"55061739": [12]}, {"55061744": [52, 1]}, {"55061747": [62, 16, 129]}, {"55061751": [7]}, {"55061756": [52, 1]}, {"55061759": [66, 16, 129]}, {"55061763": [4]}, {"55061768": [36, 2, 255, 255, 16]}, {"55061775": [7]}, {"55061780": [52, 8]}, {"55061783": [2, 144, 169, 1, 65]}, {"55061789": [2, 18]}, {"55061793": [72, 16, 37]}, {"55061797": [2, 18]}, {"55061801": [73, 16, 37, 3, 224]}, {"55061807": [8]}, {"55061812": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061824": [129, 9]}, {"55061828": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061851": [4, 141, 9]}, {"55061856": [17, 32]}, {"55061859": [23]}, {"55061865": [9, 82, 2, 49, 75, 248]}, {"55061873": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061896": [49, 34]}, {"55061899": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061920": [60, 12, 128, 64, 37, 140, 28]}, {"55061928": [129, 140]}, {"55061932": [17, 108]}, {"55061935": [4, 165, 32]}, {"55061939": [2, 161, 43]}, {"55061943": [2, 161, 34]}, {"55061947": [3, 173, 36]}, {"55061951": [4, 3, 224]}, {"55061955": [8]}, {"55061960": [39, 189, 255, 224, 175, 176]}, {"55061967": [16, 175, 177]}, {"55061971": [20, 175, 191]}, {"55061975": [24, 52, 130]}, {"55061980": [52, 80]}, {"55061984": [38, 8, 255, 128, 5]}, {"55061991": [18]}, {"55061996": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55062007": [16, 1, 9]}, {"55062011": [24]}, {"55062014": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55062032": [142, 40]}, {"55062035": [12, 1]}, {"55062038": [248, 9]}, {"55062044": [20, 80, 255, 239]}, {"55062052": [54, 35]}, {"55062056": [16]}, {"55062059": [2]}, {"55062064": [52, 3]}, {"55062068": [143, 176]}, {"55062071": [16, 143, 177]}, {"55062075": [20, 143, 191]}, {"55062079": [24, 39, 189]}, {"55062083": [32, 3, 224]}, {"55062087": [8]}, {"55062092": [140, 136, 29, 44, 52, 9]}, {"55062099": [1]}, {"55062101": [9, 78]}, {"55062104": [1, 9, 16, 36, 16, 64]}, {"55062111": [36]}, {"55062116": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062131": [164, 52, 1]}, {"55062135": [61, 17, 129]}, {"55062139": [10]}, {"55062145": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062155": [25]}, {"55062160": [52, 13]}, {"55062163": [1, 161, 141, 29, 40, 37, 74]}, {"55062171": [3, 16]}, {"55062175": [9]}, {"55062180": [52, 12]}, {"55062183": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062199": [14]}, {"55062204": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062240": [60, 9, 128, 64, 37, 41, 32, 24, 161, 40]}, {"55062252": [52, 2]}, {"55062256": [3, 224]}, {"55062259": [8]}, {"55062264": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062276": [16]}, {"55062279": [34]}, {"55062284": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062296": [16]}, {"55062299": [29]}, {"55062304": [52, 2]}, {"55062307": [255, 32, 232, 255, 166, 33, 8]}, {"55062315": [97, 16]}, {"55062319": [24]}, {"55062324": [52, 8]}, {"55062327": [100, 16]}, {"55062331": [21]}, {"55062336": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062351": [1, 160, 40, 14, 222, 52, 8]}, {"55062359": [104, 16]}, {"55062363": [13]}, {"55062368": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062383": [4, 160, 40, 14, 222, 52, 8]}, {"55062391": [106, 16]}, {"55062395": [5]}, {"55062400": [52, 5]}, {"55062403": [3, 52, 8]}, {"55062407": [107, 16]}, {"55062411": [1]}, {"55062416": [60, 9, 128, 64, 37, 41, 32, 24, 60, 10, 128, 64, 37, 74, 32, 27, 129, 44]}, {"55062436": [17, 136]}, {"55062439": [11, 33, 41]}, {"55062443": [1, 21, 42, 255, 252]}, {"55062452": [60, 9, 128, 64, 37, 41, 32, 23, 33, 41]}, {"55062463": [1, 17, 42]}, {"55062467": [4, 129, 44]}, {"55062472": [21, 128, 255, 252]}, {"55062480": [161, 40]}, {"55062484": [3, 224]}, {"55062487": [8]}, {"55062493": [96, 120, 33, 129, 236, 14, 223, 49, 142]}, {"55062503": [128, 17, 192]}, {"55062507": [3, 52, 3]}, {"55062511": [5, 3, 224]}, {"55062515": [8, 52, 2]}, {"55062519": [2, 3, 224]}, {"55062523": [8]}, {"55062525": [96, 16, 33, 133, 194]}, {"55062531": [164, 60, 8, 128, 18, 37, 8, 165, 208, 129, 9, 14, 223, 53, 41]}, {"55062547": [128, 161, 9, 14, 223, 3, 224]}, {"55062555": [8]}, {"55062560": [175, 164]}, {"55062563": [104, 175, 165]}, {"55062567": [108, 175, 166]}, {"55062571": [112, 175, 167]}, {"55062575": [116, 39, 189, 255, 232, 175, 163]}, {"55062583": [16, 175, 191]}, {"55062587": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062603": [32, 21]}, {"55062607": [31]}, {"55062612": [60, 9, 128, 64, 37, 41, 32, 27, 52, 10]}, {"55062623": [255, 161, 42]}, {"55062628": [60, 9, 128, 64, 37, 41, 32, 24, 36, 10, 255, 255, 52, 12]}, {"55062643": [3, 33, 74]}, {"55062647": [1, 17, 76]}, {"55062651": [20, 1, 42, 88, 32, 129, 104]}, {"55062660": [17]}, {"55062662": [255, 251]}, {"55062668": [60, 9, 128, 64, 37, 41, 32, 27, 161, 42]}, {"55062680": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062691": [1, 165, 42]}, {"55062696": [60, 9, 128, 65, 52, 10]}, {"55062703": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 209]}, {"55062732": [143, 163]}, {"55062735": [16, 143, 191]}, {"55062739": [20, 39, 189]}, {"55062743": [24, 143, 164]}, {"55062747": [104, 143, 165]}, {"55062751": [108, 143, 166]}, {"55062755": [112, 143, 167]}, {"55062759": [116, 132, 110, 19, 196, 3, 224]}, {"55062767": [8]}, {"55062772": [147, 25]}, {"55062775": [116, 52, 1]}, {"55062779": [255, 23, 33]}, {"55062783": [2]}, {"55062788": [52, 25]}, {"55062791": [44, 3, 224]}, {"55062795": [8, 167, 185]}, {"55062799": [154, 147, 44]}, {"55062803": [116, 52, 1]}, {"55062807": [255, 21, 129]}, {"55062811": [2]}, {"55062816": [52, 12]}, {"55062819": [44, 3, 224]}, {"55062823": [8]}, {"55062828": [145, 174]}, {"55062831": [116, 52, 1]}, {"55062835": [255, 21, 193]}, {"55062839": [2]}, {"55062844": [52, 14]}, {"55062847": [44, 3, 224]}, {"55062851": [8, 167, 174]}, {"55062855": [154, 145, 207]}, {"55062859": [116, 52, 1]}, {"55062863": [255, 21, 225]}, {"55062867": [2]}, {"55062872": [52, 15]}, {"55062875": [44, 3, 224]}, {"55062879": [8, 167, 175]}, {"55062883": [154, 60, 8, 128, 64, 37, 8, 32, 28, 142, 9]}, {"55062895": [104, 173, 9]}, {"55062900": [142, 9]}, {"55062903": [108, 173, 9]}, {"55062907": [4, 150, 9]}, {"55062911": [112, 165, 9]}, {"55062915": [8, 150, 9]}, {"55062919": [156, 165, 9]}, {"55062923": [10, 3, 224]}, {"55062927": [8, 142, 14]}, {"55062931": [4, 39, 189, 255, 224, 175, 176]}, {"55062939": [16, 175, 177]}, {"55062943": [20, 175, 191]}, {"55062947": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 28, 142, 8]}, {"55062967": [4, 17]}, {"55062971": [5]}, {"55062976": [12, 16, 12, 143]}, {"55062984": [16]}, {"55062987": [3]}, {"55062992": [12, 16, 12, 162]}, {"55063000": [12, 16, 12, 130, 52, 4]}, {"55063008": [12, 16, 12, 130, 52, 4]}, {"55063015": [1, 12, 16, 12, 130, 52, 4]}, {"55063023": [2, 143, 176]}, {"55063027": [16, 143, 177]}, {"55063031": [20, 143, 191]}, {"55063035": [24, 39, 189]}, {"55063039": [32, 3, 224]}, {"55063043": [8]}, {"55063048": [2, 4, 64, 33, 145, 9]}, {"55063055": [108, 52, 1]}, {"55063059": [255, 17, 33]}, {"55063063": [7]}, {"55063068": [2, 9, 72, 33, 145, 41]}, {"55063075": [116, 52, 1]}, {"55063079": [44, 17, 33]}, {"55063083": [2]}, {"55063088": [161, 9]}, {"55063091": [105, 3, 224]}, {"55063095": [8]}, {"55063100": [39, 189, 255, 232, 175, 191]}, {"55063107": [16, 142, 40]}, {"55063112": [174, 8]}, {"55063115": [64, 142, 40]}, {"55063119": [4, 174, 8]}, {"55063123": [68, 150, 40]}, {"55063127": [8, 166, 8]}, {"55063131": [72, 162]}, {"55063134": [15, 51, 146, 8]}, {"55063139": [74, 52, 1]}, {"55063143": [255, 21, 1]}, {"55063147": [3]}, {"55063152": [12, 16, 12, 176]}, {"55063160": [143, 191]}, {"55063163": [16, 39, 189]}, {"55063167": [24, 3, 224]}, {"55063171": [8]}, {"55063176": [142, 8]}, {"55063179": [64, 174, 8]}, {"55063183": [104, 142, 8]}, {"55063187": [68, 174, 8]}, {"55063191": [108, 150, 8]}, {"55063195": [72, 166, 8]}, {"55063199": [112, 146, 8]}, {"55063203": [104, 52, 1]}, {"55063207": [255, 21, 1]}, {"55063211": [3]}, {"55063216": [52, 8]}, {"55063219": [1, 162, 8, 15, 51, 3, 224]}, {"55063227": [8]}, {"55063232": [39, 189, 255, 232, 175, 191]}, {"55063239": [16, 150, 8]}, {"55063243": [156, 49, 8]}, {"55063247": [64, 17]}, {"55063251": [5]}, {"55063256": [150, 8]}, {"55063259": [112, 49, 8, 255, 15, 53, 8]}, {"55063267": [48, 166, 8]}, {"55063271": [112, 146, 40]}, {"55063275": [1, 162, 8]}, {"55063279": [105, 150, 40]}, {"55063283": [2, 166, 8]}, {"55063287": [106, 142, 40]}, {"55063291": [4, 174, 8]}, {"55063295": [108, 12, 16, 12, 202, 52, 4]}, {"55063304": [12, 16, 12, 202, 52, 4]}, {"55063311": [1, 12, 16, 12, 202, 52, 4]}, {"55063319": [2, 143, 191]}, {"55063323": [16, 39, 189]}, {"55063327": [24, 3, 224]}, {"55063331": [8]}, {"55063336": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 51, 212, 145, 10]}, {"55063351": [108, 52, 1]}, {"55063355": [255, 17, 65]}, {"55063359": [5]}, {"55063364": [1, 42, 72, 33, 145, 41]}, {"55063372": [21, 32]}, {"55063375": [28]}, {"55063380": [60, 9, 128, 64, 37, 41, 51, 199, 37, 41]}, {"55063391": [1, 145, 42]}, {"55063396": [17, 64]}, {"55063399": [19]}, {"55063404": [2, 10, 88, 33, 145, 107]}, {"55063411": [116, 52, 1]}, {"55063415": [255, 17, 97, 255, 248]}, {"55063424": [146, 12]}, {"55063427": [108, 17, 138, 255, 245]}, {"55063436": [146, 12]}, {"55063439": [109, 17, 138, 255, 242]}, {"55063448": [146, 12]}, {"55063451": [110, 17, 138, 255, 239]}, {"55063460": [161, 11]}, {"55063463": [105, 161, 10]}, {"55063467": [108, 16]}, {"55063471": [4]}, {"55063476": [52, 9]}, {"55063479": [255, 161, 9]}, {"55063483": [105, 161, 9]}, {"55063487": [108, 3, 224]}, {"55063491": [8]}, {"55063496": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063509": [1, 1, 1, 1, 1]}, {"55063515": [1, 1, 1, 1, 1]}, {"55063521": [1]}, {"55063523": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063533": [51, 8, 33, 32, 15]}, {"55063539": [71, 21, 234]}, {"55063543": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063555": [164]}, {"55063557": [15, 122, 3, 20, 64]}, {"55063563": [5, 52, 2, 72, 48, 21, 226]}, {"55063571": [7]}, {"55063576": [36, 25]}, {"55063579": [3, 16]}, {"55063583": [4, 52, 2, 99, 17, 21, 226]}, {"55063591": [2]}, {"55063596": [36, 25]}, {"55063599": [3, 3, 224]}, {"55063603": [8]}, {"55063608": [141, 173, 138, 160, 52, 2, 128]}, {"55063616": [16, 77]}, {"55063619": [2]}, {"55063624": [16]}, {"55063627": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063643": [1, 16, 64]}, {"55063647": [2]}, {"55063652": [16]}, {"55063655": [2, 52, 2]}, {"55063659": [1, 161, 226, 28, 191, 3, 224]}, {"55063667": [8]}, {"55063673": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063687": [164]}, {"55063689": [15, 122, 3, 20, 64]}, {"55063695": [5, 52, 2, 72, 48, 21, 226]}, {"55063703": [7]}, {"55063708": [36, 25]}, {"55063711": [3, 16]}, {"55063715": [4, 52, 2, 99, 17, 21, 226]}, {"55063723": [2]}, {"55063728": [36, 25]}, {"55063731": [3, 3, 224]}, {"55063735": [8]}, {"55063740": [162, 37]}, {"55063743": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063755": [4, 142, 10]}, {"55063760": [17, 64]}, {"55063763": [11]}, {"55063769": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063781": [24, 194, 2, 23]}, {"55063787": [3, 49, 89]}, {"55063791": [255, 129, 234]}, {"55063796": [3, 42, 200, 37, 8, 16, 13, 50, 161, 249]}, {"55063808": [3, 224]}, {"55063811": [8]}] \ No newline at end of file +[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 196]}, {"11311804": [12, 16, 11, 205]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 190, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 101]}, {"11427312": [12, 16, 13, 14]}, {"11427320": [12, 16, 11, 200]}, {"11427332": [0, 0]}, {"11427335": [0]}, {"11431496": [12, 16, 11, 195, 1, 15, 192, 33]}, {"11559936": [130]}, {"11559938": [14, 222]}, {"11559948": [49, 248, 0, 2]}, {"11562028": [12, 16, 13, 47]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 30]}, {"11882076": [12, 16, 12, 251]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 68, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 75, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 82, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 61, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 140]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 18]}, {"12427480": [12, 16, 10, 106]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 110]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 12, 8, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 152]}, {"12491480": [12, 16, 10, 161]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 147]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 89]}, {"13709176": [52, 15]}, {"13709179": [0]}, {"14109028": [16, 0]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 128, 73, 14, 222]}, {"14149508": [52]}, {"14149510": [0, 1, 2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 208]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 224]}, {"14624335": [118]}, {"14720872": [128]}, {"14720874": [14, 222]}, {"14720884": [49, 248, 0, 4]}, {"14720944": [12, 16, 11, 216]}, {"14848904": [8, 16, 11, 247]}, {"14852164": [12, 16, 12, 0]}, {"14872723": [52]}, {"15327704": [52, 9, 64, 0]}, {"15327728": [52]}, {"15327730": [91, 8]}, {"15327744": [52]}, {"15327746": [0, 10]}, {"15327757": [169]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 236, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 48, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 76, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 104, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 220, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 108, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 140, 128, 64, 38, 132, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 172, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 39, 212, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 28, 128, 64, 40]}, {"55059600": [83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 3, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 44, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [2, 52, 2]}, {"55060003": [69, 52, 2]}, {"55060007": [70, 3, 224]}, {"55060011": [8]}, {"55060016": [144, 136]}, {"55060019": [162, 49, 8]}, {"55060023": [6, 17]}, {"55060027": [2, 52, 2]}, {"55060031": [55, 52, 2]}, {"55060035": [56, 3, 224]}, {"55060039": [8]}, {"55060044": [144, 136]}, {"55060047": [161, 49, 8]}, {"55060051": [32, 17]}, {"55060055": [2, 52, 2]}, {"55060059": [121, 52, 2]}, {"55060063": [122, 3, 224]}, {"55060067": [8]}, {"55060072": [144, 136]}, {"55060075": [161, 49, 8]}, {"55060079": [4, 17]}, {"55060083": [2, 52, 2]}, {"55060087": [119, 52, 2]}, {"55060091": [120, 3, 224]}, {"55060095": [8]}, {"55060100": [144, 136]}, {"55060103": [50, 17]}, {"55060107": [2, 52, 2]}, {"55060111": [192, 52, 2]}, {"55060115": [193, 3, 224]}, {"55060119": [8]}, {"55060124": [144, 136]}, {"55060127": [163, 49, 8]}, {"55060131": [3, 17]}, {"55060135": [2, 52, 2]}, {"55060139": [77, 52, 162]}, {"55060144": [3, 224]}, {"55060147": [8]}, {"55060152": [144, 136]}, {"55060155": [163, 49, 8]}, {"55060159": [24, 17]}, {"55060163": [2, 52, 2]}, {"55060167": [77, 52, 162]}, {"55060172": [3, 224]}, {"55060175": [8]}, {"55060180": [3, 224]}, {"55060183": [8]}, {"55060188": [52, 8]}, {"55060191": [1, 160, 136]}, {"55060195": [62, 3, 224]}, {"55060199": [8]}, {"55060204": [36, 136]}, {"55060207": [134, 36, 9, 255, 255, 37, 41]}, {"55060215": [1, 52, 1]}, {"55060219": [3]}, {"55060221": [41, 8, 42, 20, 32]}, {"55060227": [7]}, {"55060232": [1, 9, 80, 33, 145, 75]}, {"55060240": [52, 1]}, {"55060243": [255, 21, 97, 255, 247]}, {"55060252": [161, 69]}, {"55060256": [3, 224]}, {"55060259": [8]}, {"55060264": [36, 136]}, {"55060267": [168, 1, 6, 64, 33, 145, 9]}, {"55060276": [1, 37, 72, 37, 161, 9]}, {"55060284": [3, 224]}, {"55060287": [8]}, {"55060292": [36, 136]}, {"55060295": [188, 1, 5, 64, 33, 129, 9]}, {"55060304": [5, 33]}, {"55060307": [2]}, {"55060312": [52, 9]}, {"55060316": [37, 41]}, {"55060319": [1, 161, 9]}, {"55060324": [3, 224]}, {"55060327": [8]}, {"55060332": [52, 8]}, {"55060335": [1, 160, 136]}, {"55060339": [61, 52, 8]}, {"55060343": [20, 160, 136]}, {"55060347": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [50, 160, 136]}, {"55060375": [58, 52, 8]}, {"55060379": [48, 164, 136, 19, 244, 160, 136]}, {"55060387": [51, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [2, 160, 136]}, {"55060403": [50, 52, 8]}, {"55060407": [1, 160, 136]}, {"55060411": [58, 160, 136]}, {"55060415": [60, 52, 8]}, {"55060419": [96, 164, 136, 19, 244, 160, 136]}, {"55060427": [51, 3, 224]}, {"55060431": [8]}, {"55060436": [144, 136]}, {"55060439": [124, 52, 1]}, {"55060443": [255, 17, 1]}, {"55060447": [6, 52, 2]}, {"55060451": [107, 144, 136]}, {"55060455": [148, 45, 8]}, {"55060459": [6, 17]}, {"55060463": [2, 52, 2]}, {"55060467": [106, 52, 2]}, {"55060471": [3, 3, 224]}, {"55060475": [8]}, {"55060480": [144, 136]}, {"55060483": [123, 52, 1]}, {"55060487": [255, 17, 1]}, {"55060491": [2, 52, 162]}, {"55060496": [52, 2]}, {"55060499": [12, 3, 224]}, {"55060503": [8]}, {"55060508": [52, 8]}, {"55060511": [7, 160, 136]}, {"55060515": [123, 3, 224]}, {"55060519": [8]}, {"55060524": [52, 8]}, {"55060527": [1]}, {"55060529": [168, 64, 4, 140, 137]}, {"55060535": [164, 1, 40, 72, 37, 172, 137]}, {"55060543": [164, 3, 224]}, {"55060547": [8]}, {"55060552": [48, 132]}, {"55060555": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060567": [140, 16, 129]}, {"55060571": [22, 145, 2]}, {"55060575": [117, 52, 1]}, {"55060579": [141, 16, 129]}, {"55060583": [19, 145, 2]}, {"55060587": [117, 16, 128]}, {"55060591": [17, 145, 2]}, {"55060595": [116, 52, 1]}, {"55060599": [138, 16, 129]}, {"55060603": [14, 145, 2]}, {"55060607": [116, 52, 1]}, {"55060611": [139, 16, 129]}, {"55060615": [11, 145, 2]}, {"55060619": [116, 52, 1]}, {"55060623": [88, 16, 129]}, {"55060627": [8, 52, 2]}, {"55060632": [52, 1]}, {"55060635": [120, 16, 129]}, {"55060639": [5, 52, 2]}, {"55060644": [52, 1]}, {"55060647": [121, 16, 129]}, {"55060651": [2, 52, 2]}, {"55060656": [52, 2]}, {"55060659": [255, 3, 224]}, {"55060663": [8]}, {"55060668": [39, 189, 255, 224, 175, 191]}, {"55060675": [16, 175, 176]}, {"55060679": [20, 12, 16, 11, 11]}, {"55060688": [4, 65]}, {"55060691": [2]}, {"55060696": [52, 2]}, {"55060699": [91]}, {"55060701": [64, 32, 33, 12, 16, 11, 114]}, {"55060712": [16, 96]}, {"55060715": [22, 175, 163]}, {"55060719": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060728": [133, 9]}, {"55060731": [2, 17, 32]}, {"55060735": [3, 52, 10]}, {"55060739": [1, 16]}, {"55060743": [12, 165, 10]}, {"55060748": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060759": [6, 144, 102]}, {"55060763": [7, 140, 105]}, {"55060767": [8, 1, 32, 248, 9]}, {"55060776": [143, 163]}, {"55060779": [28, 144, 101]}, {"55060783": [1, 12, 1, 191, 115, 2, 32, 32, 33, 143, 163]}, {"55060795": [28, 144, 101]}, {"55060799": [3, 16]}, {"55060803": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060815": [6]}, {"55060817": [74]}, {"55060819": [24]}, {"55060822": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060832": [60, 8, 128, 64, 37, 8, 32]}, {"55060840": [133, 9]}, {"55060843": [2, 17, 32]}, {"55060847": [3, 52, 10]}, {"55060851": [1, 165, 10]}, {"55060856": [52, 5]}, {"55060859": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060871": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060882": [48, 33, 143, 191]}, {"55060887": [16, 143, 176]}, {"55060891": [20, 39, 189]}, {"55060895": [32, 3, 224]}, {"55060899": [8]}, {"55060904": [143, 166]}, {"55060907": [48, 132, 197]}, {"55060911": [4, 8, 16, 10, 114]}, {"55060920": [143, 185]}, {"55060923": [44, 135, 37]}, {"55060927": [4, 8, 16, 10, 114]}, {"55060936": [60, 10, 128, 64, 37, 74, 32, 8, 141, 75]}, {"55060947": [12, 17, 96]}, {"55060951": [2]}, {"55060956": [149, 69]}, {"55060959": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060972": [60, 9, 128, 64, 37, 41, 32, 24, 129, 42]}, {"55060983": [3, 5, 64]}, {"55060987": [11, 1, 42, 72, 32, 129, 40]}, {"55060996": [52, 10]}, {"55060999": [127, 21, 10]}, {"55061003": [6]}, {"55061008": [60, 10, 128, 18, 37, 74, 165, 208, 133, 72]}, {"55061019": [144, 33, 8]}, {"55061023": [1, 165, 72]}, {"55061027": [144, 161, 32]}, {"55061032": [3, 224]}, {"55061035": [8]}, {"55061040": [60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061051": [12, 17, 32]}, {"55061055": [2]}, {"55061060": [129, 3]}, {"55061063": [2]}, {"55061065": [3, 15, 195]}, {"55061069": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061083": [8]}, {"55061088": [144, 69]}, {"55061091": [3, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061103": [12, 17, 32]}, {"55061107": [2]}, {"55061112": [145, 5]}, {"55061115": [3, 3, 224]}, {"55061119": [8]}, {"55061124": [143, 162]}, {"55061127": [36, 144, 69]}, {"55061132": [60, 8, 128, 64, 37, 8, 32]}, {"55061140": [133, 9]}, {"55061143": [2, 17, 32]}, {"55061147": [4, 52, 10]}, {"55061151": [1, 165, 10]}, {"55061156": [16]}, {"55061159": [24, 52, 5]}, {"55061163": [65, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061175": [12, 17, 32]}, {"55061179": [19]}, {"55061184": [145, 5]}, {"55061187": [1, 175, 164]}, {"55061192": [175, 165]}, {"55061195": [4, 175, 166]}, {"55061199": [8, 39, 189, 255, 232, 175, 191]}, {"55061207": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061219": [6, 145, 6]}, {"55061223": [7, 141, 9]}, {"55061227": [8, 1, 32, 248, 9]}, {"55061236": [143, 191]}, {"55061239": [16, 39, 189]}, {"55061243": [24, 143, 164]}, {"55061248": [143, 165]}, {"55061251": [4, 143, 166]}, {"55061255": [8, 3, 224]}, {"55061259": [8]}, {"55061264": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061275": [16, 175, 163]}, {"55061279": [20, 175, 191]}, {"55061283": [24, 12, 16, 10, 209]}, {"55061292": [143, 162]}, {"55061295": [16, 143, 163]}, {"55061299": [20, 143, 191]}, {"55061303": [24, 39, 189]}, {"55061307": [32, 3, 224]}, {"55061311": [8]}, {"55061316": [39, 189, 255, 232, 175, 191]}, {"55061323": [16, 60, 8, 128, 64, 37, 8, 32, 8, 173]}, {"55061336": [173]}, {"55061339": [4, 173]}, {"55061343": [8, 173]}, {"55061347": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061363": [42]}, {"55061369": [9, 15, 195, 1, 33, 32, 38]}, {"55061377": [129, 32, 35, 141, 5, 4, 40, 12, 16, 11, 11]}, {"55061392": [4, 64]}, {"55061395": [34]}, {"55061400": [52, 68]}, {"55061404": [12, 16, 11, 114]}, {"55061412": [16, 96]}, {"55061415": [12]}, {"55061420": [60, 8, 128, 64, 37, 8, 32, 8, 140, 105]}, {"55061432": [173, 9]}, {"55061436": [140, 105]}, {"55061439": [4, 173, 9]}, {"55061443": [4, 140, 105]}, {"55061447": [8, 173, 9]}, {"55061451": [8, 52, 9]}, {"55061455": [1, 173, 9]}, {"55061459": [12, 144, 98]}, {"55061464": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061480": [52, 1]}, {"55061483": [10, 21, 65]}, {"55061487": [6]}, {"55061492": [149, 42]}, {"55061495": [28, 49, 74, 240, 31]}, {"55061501": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061511": [28, 129, 9, 4, 36, 5, 33]}, {"55061519": [2]}, {"55061525": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061535": [16, 39, 189]}, {"55061539": [24, 3, 224]}, {"55061543": [8]}, {"55061548": [39, 189, 255, 232, 175, 191]}, {"55061555": [16, 12, 16, 11, 25]}, {"55061564": [36, 1, 255, 255, 16, 65]}, {"55061571": [4]}, {"55061576": [52, 68]}, {"55061580": [12, 16, 11, 77]}, {"55061588": [143, 191]}, {"55061591": [16, 39, 189]}, {"55061595": [24, 3, 224]}, {"55061599": [8]}, {"55061604": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061615": [164, 52, 8]}, {"55061620": [52, 137]}, {"55061624": [148, 170]}, {"55061628": [52, 1, 1, 156, 21, 65]}, {"55061635": [8]}, {"55061640": [52, 8]}, {"55061643": [3, 148, 171]}, {"55061647": [28, 49, 105]}, {"55061651": [255, 49, 98, 31]}, {"55061657": [2, 18, 2, 16]}, {"55061663": [31]}, {"55061668": [52, 1]}, {"55061671": [10, 21, 65]}, {"55061675": [14]}, {"55061680": [148, 171]}, {"55061683": [28, 52, 1]}, {"55061687": [16, 20, 65]}, {"55061691": [8]}, {"55061696": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061707": [4]}, {"55061712": [36, 2, 255, 255, 16]}, {"55061719": [21]}, {"55061724": [52, 8]}, {"55061727": [1, 49, 105]}, {"55061731": [31, 52, 1]}, {"55061735": [21, 21, 65]}, {"55061739": [12]}, {"55061744": [52, 1]}, {"55061747": [62, 16, 129]}, {"55061751": [7]}, {"55061756": [52, 1]}, {"55061759": [66, 16, 129]}, {"55061763": [4]}, {"55061768": [36, 2, 255, 255, 16]}, {"55061775": [7]}, {"55061780": [52, 8]}, {"55061783": [2, 144, 169, 1, 65]}, {"55061789": [2, 18]}, {"55061793": [72, 16, 37]}, {"55061797": [2, 18]}, {"55061801": [73, 16, 37, 3, 224]}, {"55061807": [8]}, {"55061812": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061824": [129, 9]}, {"55061828": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061851": [4, 141, 9]}, {"55061856": [17, 32]}, {"55061859": [23]}, {"55061865": [9, 82, 2, 49, 75, 248]}, {"55061873": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061896": [49, 34]}, {"55061899": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061920": [60, 12, 128, 64, 37, 140, 28]}, {"55061928": [129, 140]}, {"55061932": [17, 108]}, {"55061935": [4, 165, 32]}, {"55061939": [2, 161, 43]}, {"55061943": [2, 161, 34]}, {"55061947": [3, 173, 36]}, {"55061951": [4, 3, 224]}, {"55061955": [8]}, {"55061960": [39, 189, 255, 224, 175, 176]}, {"55061967": [16, 175, 177]}, {"55061971": [20, 175, 191]}, {"55061975": [24, 52, 130]}, {"55061980": [52, 80]}, {"55061984": [38, 8, 255, 128, 5]}, {"55061991": [18]}, {"55061996": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55062007": [16, 1, 9]}, {"55062011": [24]}, {"55062014": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55062032": [142, 40]}, {"55062035": [12, 1]}, {"55062038": [248, 9]}, {"55062044": [20, 80, 255, 239]}, {"55062052": [54, 35]}, {"55062056": [16]}, {"55062059": [2]}, {"55062064": [52, 3]}, {"55062068": [143, 176]}, {"55062071": [16, 143, 177]}, {"55062075": [20, 143, 191]}, {"55062079": [24, 39, 189]}, {"55062083": [32, 3, 224]}, {"55062087": [8]}, {"55062092": [140, 136, 29, 44, 52, 9]}, {"55062099": [1]}, {"55062101": [9, 78]}, {"55062104": [1, 9, 16, 36, 16, 64]}, {"55062111": [36]}, {"55062116": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062131": [164, 52, 1]}, {"55062135": [61, 17, 129]}, {"55062139": [10]}, {"55062145": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062155": [25]}, {"55062160": [52, 13]}, {"55062163": [1, 161, 141, 29, 40, 37, 74]}, {"55062171": [3, 16]}, {"55062175": [9]}, {"55062180": [52, 12]}, {"55062183": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062199": [14]}, {"55062204": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062240": [60, 9, 128, 64, 37, 41, 32, 24, 161, 40]}, {"55062252": [52, 2]}, {"55062256": [3, 224]}, {"55062259": [8]}, {"55062264": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062276": [16]}, {"55062279": [34]}, {"55062284": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062296": [16]}, {"55062299": [29]}, {"55062304": [52, 2]}, {"55062307": [255, 32, 232, 255, 166, 33, 8]}, {"55062315": [97, 16]}, {"55062319": [24]}, {"55062324": [52, 8]}, {"55062327": [100, 16]}, {"55062331": [21]}, {"55062336": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062351": [1, 160, 40, 14, 222, 52, 8]}, {"55062359": [104, 16]}, {"55062363": [13]}, {"55062368": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062383": [4, 160, 40, 14, 222, 52, 8]}, {"55062391": [106, 16]}, {"55062395": [5]}, {"55062400": [52, 5]}, {"55062403": [3, 52, 8]}, {"55062407": [107, 16]}, {"55062411": [1]}, {"55062416": [60, 9, 128, 64, 37, 41, 32, 24, 60, 10, 128, 64, 37, 74, 32, 27, 129, 44]}, {"55062436": [17, 136]}, {"55062439": [11, 33, 41]}, {"55062443": [1, 21, 42, 255, 252]}, {"55062452": [60, 9, 128, 64, 37, 41, 32, 23, 33, 41]}, {"55062463": [1, 17, 42]}, {"55062467": [4, 129, 44]}, {"55062472": [21, 128, 255, 252]}, {"55062480": [161, 40]}, {"55062484": [3, 224]}, {"55062487": [8]}, {"55062493": [96, 120, 33, 129, 236, 14, 223, 49, 142]}, {"55062503": [128, 17, 192]}, {"55062507": [3, 52, 3]}, {"55062511": [5, 3, 224]}, {"55062515": [8, 52, 2]}, {"55062519": [2, 3, 224]}, {"55062523": [8]}, {"55062525": [96, 16, 33, 133, 194]}, {"55062531": [164, 60, 8, 128, 18, 37, 8, 165, 208, 129, 9, 14, 223, 53, 41]}, {"55062547": [128, 161, 9, 14, 223, 3, 224]}, {"55062555": [8]}, {"55062560": [175, 164]}, {"55062563": [104, 175, 165]}, {"55062567": [108, 175, 166]}, {"55062571": [112, 175, 167]}, {"55062575": [116, 39, 189, 255, 232, 175, 163]}, {"55062583": [16, 175, 191]}, {"55062587": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062603": [32, 21]}, {"55062607": [31]}, {"55062612": [60, 9, 128, 64, 37, 41, 32, 27, 52, 10]}, {"55062623": [255, 161, 42]}, {"55062628": [60, 9, 128, 64, 37, 41, 32, 24, 36, 10, 255, 255, 52, 12]}, {"55062643": [3, 33, 74]}, {"55062647": [1, 17, 76]}, {"55062651": [20, 1, 42, 88, 32, 129, 104]}, {"55062660": [17]}, {"55062662": [255, 251]}, {"55062668": [60, 9, 128, 64, 37, 41, 32, 27, 161, 42]}, {"55062680": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062691": [1, 165, 42]}, {"55062696": [60, 9, 128, 65, 52, 10]}, {"55062703": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 209]}, {"55062732": [143, 163]}, {"55062735": [16, 143, 191]}, {"55062739": [20, 39, 189]}, {"55062743": [24, 143, 164]}, {"55062747": [104, 143, 165]}, {"55062751": [108, 143, 166]}, {"55062755": [112, 143, 167]}, {"55062759": [116, 132, 110, 19, 196, 3, 224]}, {"55062767": [8]}, {"55062772": [147, 25]}, {"55062775": [116, 52, 1]}, {"55062779": [255, 23, 33]}, {"55062783": [2]}, {"55062788": [52, 25]}, {"55062791": [44, 3, 224]}, {"55062795": [8, 167, 185]}, {"55062799": [154, 147, 44]}, {"55062803": [116, 52, 1]}, {"55062807": [255, 21, 129]}, {"55062811": [2]}, {"55062816": [52, 12]}, {"55062819": [44, 3, 224]}, {"55062823": [8]}, {"55062828": [145, 174]}, {"55062831": [116, 52, 1]}, {"55062835": [255, 21, 193]}, {"55062839": [2]}, {"55062844": [52, 14]}, {"55062847": [44, 3, 224]}, {"55062851": [8, 167, 174]}, {"55062855": [154, 145, 207]}, {"55062859": [116, 52, 1]}, {"55062863": [255, 21, 225]}, {"55062867": [2]}, {"55062872": [52, 15]}, {"55062875": [44, 3, 224]}, {"55062879": [8, 167, 175]}, {"55062883": [154, 60, 8, 128, 64, 37, 8, 32, 28, 142, 9]}, {"55062895": [104, 173, 9]}, {"55062900": [142, 9]}, {"55062903": [108, 173, 9]}, {"55062907": [4, 150, 9]}, {"55062911": [112, 165, 9]}, {"55062915": [8, 150, 9]}, {"55062919": [156, 165, 9]}, {"55062923": [10, 3, 224]}, {"55062927": [8, 142, 14]}, {"55062931": [4, 39, 189, 255, 224, 175, 176]}, {"55062939": [16, 175, 177]}, {"55062943": [20, 175, 191]}, {"55062947": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 28, 142, 8]}, {"55062967": [4, 17]}, {"55062971": [5]}, {"55062976": [12, 16, 12, 143]}, {"55062984": [16]}, {"55062987": [3]}, {"55062992": [12, 16, 12, 162]}, {"55063000": [12, 16, 12, 130, 52, 4]}, {"55063008": [12, 16, 12, 130, 52, 4]}, {"55063015": [1, 12, 16, 12, 130, 52, 4]}, {"55063023": [2, 143, 176]}, {"55063027": [16, 143, 177]}, {"55063031": [20, 143, 191]}, {"55063035": [24, 39, 189]}, {"55063039": [32, 3, 224]}, {"55063043": [8]}, {"55063048": [2, 4, 64, 33, 145, 9]}, {"55063055": [108, 52, 1]}, {"55063059": [255, 17, 33]}, {"55063063": [7]}, {"55063068": [2, 9, 72, 33, 145, 41]}, {"55063075": [116, 52, 1]}, {"55063079": [44, 17, 33]}, {"55063083": [2]}, {"55063088": [161, 9]}, {"55063091": [105, 3, 224]}, {"55063095": [8]}, {"55063100": [39, 189, 255, 232, 175, 191]}, {"55063107": [16, 142, 40]}, {"55063112": [174, 8]}, {"55063115": [64, 142, 40]}, {"55063119": [4, 174, 8]}, {"55063123": [68, 150, 40]}, {"55063127": [8, 166, 8]}, {"55063131": [72, 162]}, {"55063134": [15, 51, 146, 8]}, {"55063139": [74, 52, 1]}, {"55063143": [255, 21, 1]}, {"55063147": [3]}, {"55063152": [12, 16, 12, 176]}, {"55063160": [143, 191]}, {"55063163": [16, 39, 189]}, {"55063167": [24, 3, 224]}, {"55063171": [8]}, {"55063176": [142, 8]}, {"55063179": [64, 174, 8]}, {"55063183": [104, 142, 8]}, {"55063187": [68, 174, 8]}, {"55063191": [108, 150, 8]}, {"55063195": [72, 166, 8]}, {"55063199": [112, 146, 8]}, {"55063203": [104, 52, 1]}, {"55063207": [255, 21, 1]}, {"55063211": [3]}, {"55063216": [52, 8]}, {"55063219": [1, 162, 8, 15, 51, 3, 224]}, {"55063227": [8]}, {"55063232": [39, 189, 255, 232, 175, 191]}, {"55063239": [16, 150, 8]}, {"55063243": [156, 49, 8]}, {"55063247": [64, 17]}, {"55063251": [5]}, {"55063256": [150, 8]}, {"55063259": [112, 49, 8, 255, 15, 53, 8]}, {"55063267": [48, 166, 8]}, {"55063271": [112, 146, 40]}, {"55063275": [1, 162, 8]}, {"55063279": [105, 150, 40]}, {"55063283": [2, 166, 8]}, {"55063287": [106, 142, 40]}, {"55063291": [4, 174, 8]}, {"55063295": [108, 12, 16, 12, 202, 52, 4]}, {"55063304": [12, 16, 12, 202, 52, 4]}, {"55063311": [1, 12, 16, 12, 202, 52, 4]}, {"55063319": [2, 143, 191]}, {"55063323": [16, 39, 189]}, {"55063327": [24, 3, 224]}, {"55063331": [8]}, {"55063336": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 51, 212, 145, 10]}, {"55063351": [108, 52, 1]}, {"55063355": [255, 17, 65]}, {"55063359": [5]}, {"55063364": [1, 42, 72, 33, 145, 41]}, {"55063372": [21, 32]}, {"55063375": [28]}, {"55063380": [60, 9, 128, 64, 37, 41, 51, 199, 37, 41]}, {"55063391": [1, 145, 42]}, {"55063396": [17, 64]}, {"55063399": [19]}, {"55063404": [2, 10, 88, 33, 145, 107]}, {"55063411": [116, 52, 1]}, {"55063415": [255, 17, 97, 255, 248]}, {"55063424": [146, 12]}, {"55063427": [108, 17, 138, 255, 245]}, {"55063436": [146, 12]}, {"55063439": [109, 17, 138, 255, 242]}, {"55063448": [146, 12]}, {"55063451": [110, 17, 138, 255, 239]}, {"55063460": [161, 11]}, {"55063463": [105, 161, 10]}, {"55063467": [108, 16]}, {"55063471": [4]}, {"55063476": [52, 9]}, {"55063479": [255, 161, 9]}, {"55063483": [105, 161, 9]}, {"55063487": [108, 3, 224]}, {"55063491": [8]}, {"55063496": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063509": [1, 1, 1, 1, 1]}, {"55063515": [1, 1, 1, 1, 1]}, {"55063521": [1]}, {"55063523": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063533": [51, 8, 33, 32, 15]}, {"55063539": [71, 21, 234]}, {"55063543": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063555": [164]}, {"55063557": [15, 122, 3, 20, 64]}, {"55063563": [5, 52, 2, 72, 48, 21, 226]}, {"55063571": [7]}, {"55063576": [36, 25]}, {"55063579": [3, 16]}, {"55063583": [4, 52, 2, 99, 17, 21, 226]}, {"55063591": [2]}, {"55063596": [36, 25]}, {"55063599": [3, 3, 224]}, {"55063603": [8]}, {"55063608": [141, 173, 138, 160, 52, 2, 128]}, {"55063616": [16, 77]}, {"55063619": [2]}, {"55063624": [16]}, {"55063627": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063643": [1, 16, 64]}, {"55063647": [2]}, {"55063652": [16]}, {"55063655": [2, 52, 2]}, {"55063659": [1, 161, 226, 28, 191, 3, 224]}, {"55063667": [8]}, {"55063673": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063687": [164]}, {"55063689": [15, 122, 3, 20, 64]}, {"55063695": [5, 52, 2, 72, 48, 21, 226]}, {"55063703": [7]}, {"55063708": [36, 25]}, {"55063711": [3, 16]}, {"55063715": [4, 52, 2, 99, 17, 21, 226]}, {"55063723": [2]}, {"55063728": [36, 25]}, {"55063731": [3, 3, 224]}, {"55063735": [8]}, {"55063740": [162, 37]}, {"55063743": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063755": [4, 142, 10]}, {"55063760": [17, 64]}, {"55063763": [11]}, {"55063769": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063781": [24, 194, 2, 23]}, {"55063787": [3, 49, 89]}, {"55063791": [255, 129, 234]}, {"55063796": [3, 42, 200, 37, 8, 16, 13, 50, 161, 249]}, {"55063808": [3, 224]}, {"55063811": [8]}] \ No newline at end of file diff --git a/version.py b/version.py index 0af1827a3..aacd19b48 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.28 f.LUM' +__version__ = '2.15.29 f.LUM' From d39b89514cc9a648e21936f2ced6033a714cce93 Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 16 Aug 2018 21:17:06 -0400 Subject: [PATCH 303/755] Fix Bazaar object list repoint --- Rom.py | 4 ++-- version.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Rom.py b/Rom.py index eaba82c0f..009d5e845 100644 --- a/Rom.py +++ b/Rom.py @@ -1307,9 +1307,9 @@ def write_save_table(rom): world.get_region('Castle Town Bazaar').locations) shop_objs |= {0x005B, 0x00B2, 0x00C5, 0x0107, 0x00C9, 0x016B} # Shop objects rom.write_byte(0x28E4029, len(shop_objs)) - rom.write_int32(0x28E402C, 0x0300FA18) + rom.write_int32(0x28E402C, 0x03007A40) rom.write_int16s(0x28EBA40, list(shop_objs)) - + # goron shop shop_objs = place_shop_items(rom, shop_items, messages, free_shop_ids, world.get_region('Goron Shop').locations) diff --git a/version.py b/version.py index 3b1f123ad..bd3609be4 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.26 f.LUM' +__version__ = '2.15.27 f.LUM' From e430c5115ff005cb0e8c426c1bc203bb1c6c2e85 Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Fri, 17 Aug 2018 04:59:53 -0300 Subject: [PATCH 304/755] BotW Map Chest Logic --- Rules.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Rules.py b/Rules.py index ca2f67f1d..62c6349a7 100644 --- a/Rules.py +++ b/Rules.py @@ -458,7 +458,7 @@ def dung_rules_bw0(world): set_rule(world.get_location('Bottom of the Well Invisible Chest'), lambda state: state.can_play('Zeldas Lullaby') and state.can_see_with_lens()) set_rule(world.get_location('Bottom of the Well Underwater Front Chest'), lambda state: state.can_play('Zeldas Lullaby')) set_rule(world.get_location('Bottom of the Well Underwater Left Chest'), lambda state: state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('Bottom of the Well Basement Chest'), lambda state: state.has_explosives() or (state.has('Small Key (Bottom of the Well)', 3) and state.has('Progressive Strength Upgrade') and state.can_see_with_lens())) + set_rule(world.get_location('Bottom of the Well Basement Chest'), lambda state: state.has_explosives() or (((state.has('Small Key (Bottom of the Well)', 3) and state.can_see_with_lens()) or (state.has('Dins Fire') and state.has('Magic Meter'))) and state.has('Progressive Strength Upgrade'))) set_rule(world.get_location('Bottom of the Well Locked Pits'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.can_see_with_lens()) #These pits are really unfair. set_rule(world.get_location('Bottom of the Well Behind Right Grate'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.can_see_with_lens()) From 420f3627734da56630f6da9deea807530dc5e14a Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 17 Aug 2018 18:36:13 -0400 Subject: [PATCH 305/755] Skip Epona Race option now checks (Own Epona OR (Song AND Ocarina)) --- ASM/src/hacks.asm | 6 ++++++ ASM/src/song_fix.asm | 34 +++++++++++++++++++++++++++++++++- Rom.py | 7 +++---- data/base2current.json | 2 +- version.py | 2 +- 5 files changed, 44 insertions(+), 7 deletions(-) diff --git a/ASM/src/hacks.asm b/ASM/src/hacks.asm index d4271a95c..bbf49ce11 100755 --- a/ASM/src/hacks.asm +++ b/ASM/src/hacks.asm @@ -413,3 +413,9 @@ ; sw zero, 0x1C (sp) .org 0xE9E20C sw t1, 0x1C (sp) + +;================================================================================================== +; Epona Check Override +;================================================================================================== +.org 0xA9E838 + j Check_Has_Epona_Song diff --git a/ASM/src/song_fix.asm b/ASM/src/song_fix.asm index 0f283b140..6d6091ab0 100644 --- a/ASM/src/song_fix.asm +++ b/ASM/src/song_fix.asm @@ -72,4 +72,36 @@ warp_song_fix: @@return: jr ra - nop \ No newline at end of file + nop + +;================================================================================================== +; Change Epona check for owning or being able to play the song +;================================================================================================== +Check_Has_Epona_Song: + ; If epona is owned, then return True + bnez v0, @@return + nop + + ; If not Epona owned flag, then return result + li at, 0x18 + bne a0, at, @@return + + li t2, SAVE_CONTEXT + + ; Check if has Epona's Song + lb t0, 0xA6(t2) + andi t0, t0, 0x20 + beqz t0, @@return ; Return False if no song + li v0, 0 + + ; Check if has Ocarina + lb t0, 0x7B(t2) + li at, 0x07 + beq t0, at, @@return ; Return True if song & ocarina + li v0, 1 + li v0, 0 ; Else False + +@@return: + jr ra + nop + diff --git a/Rom.py b/Rom.py index 94d5df9ab..12716eafa 100644 --- a/Rom.py +++ b/Rom.py @@ -1117,10 +1117,9 @@ def write_save_table(rom): write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x04 + 0x3, 0xDC) # Thieves' Hideout switch flags (heard yells/unlocked doors) write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x0C + 0x2, 0xC4) # Thieves' Hideout collection flags (picked up keys, marks fights finished as well) - # Skip Epona race - if world.no_epona_race: - write_bits_to_save(0x0ED6, 0x01) # "Obtained Epona" - rom.write_bytes(0xAD065C, [0x92, 0x42, 0x00, 0xA6, 0x30, 0x42, 0x00, 0x20]) # Epona spawning checks for Song + # Revert change that Skips the Epona Race + if not world.no_epona_race: + rom.write_int32(0xA9E838, 0x03E00008) # skip castle guard stealth sequence if world.no_guard_stealth: diff --git a/data/base2current.json b/data/base2current.json index 387f961e5..0ea91407b 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -1 +1 @@ -[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 196]}, {"11311804": [12, 16, 11, 205]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 190, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 101]}, {"11427312": [12, 16, 13, 14]}, {"11427320": [12, 16, 11, 200]}, {"11427332": [0, 0]}, {"11427335": [0]}, {"11431496": [12, 16, 11, 195, 1, 15, 192, 33]}, {"11559936": [130]}, {"11559938": [14, 222]}, {"11559948": [49, 248, 0, 2]}, {"11562028": [12, 16, 13, 47]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 30]}, {"11882076": [12, 16, 12, 251]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 68, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 75, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 82, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 61, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 140]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 18]}, {"12427480": [12, 16, 10, 106]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 110]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 12, 8, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 152]}, {"12491480": [12, 16, 10, 161]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 147]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 89]}, {"13709176": [52, 15]}, {"13709179": [0]}, {"14109028": [16, 0]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 128, 73, 14, 222]}, {"14149508": [52]}, {"14149510": [0, 1, 2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 208]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 224]}, {"14624335": [118]}, {"14720872": [128]}, {"14720874": [14, 222]}, {"14720884": [49, 248, 0, 4]}, {"14720944": [12, 16, 11, 216]}, {"14848904": [8, 16, 11, 247]}, {"14852164": [12, 16, 12, 0]}, {"14872723": [52]}, {"15327704": [52, 9, 64, 0]}, {"15327728": [52]}, {"15327730": [91, 8]}, {"15327744": [52]}, {"15327746": [0, 10]}, {"15327757": [169]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 236, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 48, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 76, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 104, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 220, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 108, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 140, 128, 64, 38, 132, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 172, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 39, 212, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 28, 128, 64, 40]}, {"55059600": [83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 3, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 44, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [2, 52, 2]}, {"55060003": [69, 52, 2]}, {"55060007": [70, 3, 224]}, {"55060011": [8]}, {"55060016": [144, 136]}, {"55060019": [162, 49, 8]}, {"55060023": [6, 17]}, {"55060027": [2, 52, 2]}, {"55060031": [55, 52, 2]}, {"55060035": [56, 3, 224]}, {"55060039": [8]}, {"55060044": [144, 136]}, {"55060047": [161, 49, 8]}, {"55060051": [32, 17]}, {"55060055": [2, 52, 2]}, {"55060059": [121, 52, 2]}, {"55060063": [122, 3, 224]}, {"55060067": [8]}, {"55060072": [144, 136]}, {"55060075": [161, 49, 8]}, {"55060079": [4, 17]}, {"55060083": [2, 52, 2]}, {"55060087": [119, 52, 2]}, {"55060091": [120, 3, 224]}, {"55060095": [8]}, {"55060100": [144, 136]}, {"55060103": [50, 17]}, {"55060107": [2, 52, 2]}, {"55060111": [192, 52, 2]}, {"55060115": [193, 3, 224]}, {"55060119": [8]}, {"55060124": [144, 136]}, {"55060127": [163, 49, 8]}, {"55060131": [3, 17]}, {"55060135": [2, 52, 2]}, {"55060139": [77, 52, 162]}, {"55060144": [3, 224]}, {"55060147": [8]}, {"55060152": [144, 136]}, {"55060155": [163, 49, 8]}, {"55060159": [24, 17]}, {"55060163": [2, 52, 2]}, {"55060167": [77, 52, 162]}, {"55060172": [3, 224]}, {"55060175": [8]}, {"55060180": [3, 224]}, {"55060183": [8]}, {"55060188": [52, 8]}, {"55060191": [1, 160, 136]}, {"55060195": [62, 3, 224]}, {"55060199": [8]}, {"55060204": [36, 136]}, {"55060207": [134, 36, 9, 255, 255, 37, 41]}, {"55060215": [1, 52, 1]}, {"55060219": [3]}, {"55060221": [41, 8, 42, 20, 32]}, {"55060227": [7]}, {"55060232": [1, 9, 80, 33, 145, 75]}, {"55060240": [52, 1]}, {"55060243": [255, 21, 97, 255, 247]}, {"55060252": [161, 69]}, {"55060256": [3, 224]}, {"55060259": [8]}, {"55060264": [36, 136]}, {"55060267": [168, 1, 6, 64, 33, 145, 9]}, {"55060276": [1, 37, 72, 37, 161, 9]}, {"55060284": [3, 224]}, {"55060287": [8]}, {"55060292": [36, 136]}, {"55060295": [188, 1, 5, 64, 33, 129, 9]}, {"55060304": [5, 33]}, {"55060307": [2]}, {"55060312": [52, 9]}, {"55060316": [37, 41]}, {"55060319": [1, 161, 9]}, {"55060324": [3, 224]}, {"55060327": [8]}, {"55060332": [52, 8]}, {"55060335": [1, 160, 136]}, {"55060339": [61, 52, 8]}, {"55060343": [20, 160, 136]}, {"55060347": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [50, 160, 136]}, {"55060375": [58, 52, 8]}, {"55060379": [48, 164, 136, 19, 244, 160, 136]}, {"55060387": [51, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [2, 160, 136]}, {"55060403": [50, 52, 8]}, {"55060407": [1, 160, 136]}, {"55060411": [58, 160, 136]}, {"55060415": [60, 52, 8]}, {"55060419": [96, 164, 136, 19, 244, 160, 136]}, {"55060427": [51, 3, 224]}, {"55060431": [8]}, {"55060436": [144, 136]}, {"55060439": [124, 52, 1]}, {"55060443": [255, 17, 1]}, {"55060447": [6, 52, 2]}, {"55060451": [107, 144, 136]}, {"55060455": [148, 45, 8]}, {"55060459": [6, 17]}, {"55060463": [2, 52, 2]}, {"55060467": [106, 52, 2]}, {"55060471": [3, 3, 224]}, {"55060475": [8]}, {"55060480": [144, 136]}, {"55060483": [123, 52, 1]}, {"55060487": [255, 17, 1]}, {"55060491": [2, 52, 162]}, {"55060496": [52, 2]}, {"55060499": [12, 3, 224]}, {"55060503": [8]}, {"55060508": [52, 8]}, {"55060511": [7, 160, 136]}, {"55060515": [123, 3, 224]}, {"55060519": [8]}, {"55060524": [52, 8]}, {"55060527": [1]}, {"55060529": [168, 64, 4, 140, 137]}, {"55060535": [164, 1, 40, 72, 37, 172, 137]}, {"55060543": [164, 3, 224]}, {"55060547": [8]}, {"55060552": [48, 132]}, {"55060555": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060567": [140, 16, 129]}, {"55060571": [22, 145, 2]}, {"55060575": [117, 52, 1]}, {"55060579": [141, 16, 129]}, {"55060583": [19, 145, 2]}, {"55060587": [117, 16, 128]}, {"55060591": [17, 145, 2]}, {"55060595": [116, 52, 1]}, {"55060599": [138, 16, 129]}, {"55060603": [14, 145, 2]}, {"55060607": [116, 52, 1]}, {"55060611": [139, 16, 129]}, {"55060615": [11, 145, 2]}, {"55060619": [116, 52, 1]}, {"55060623": [88, 16, 129]}, {"55060627": [8, 52, 2]}, {"55060632": [52, 1]}, {"55060635": [120, 16, 129]}, {"55060639": [5, 52, 2]}, {"55060644": [52, 1]}, {"55060647": [121, 16, 129]}, {"55060651": [2, 52, 2]}, {"55060656": [52, 2]}, {"55060659": [255, 3, 224]}, {"55060663": [8]}, {"55060668": [39, 189, 255, 224, 175, 191]}, {"55060675": [16, 175, 176]}, {"55060679": [20, 12, 16, 11, 11]}, {"55060688": [4, 65]}, {"55060691": [2]}, {"55060696": [52, 2]}, {"55060699": [91]}, {"55060701": [64, 32, 33, 12, 16, 11, 114]}, {"55060712": [16, 96]}, {"55060715": [22, 175, 163]}, {"55060719": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060728": [133, 9]}, {"55060731": [2, 17, 32]}, {"55060735": [3, 52, 10]}, {"55060739": [1, 16]}, {"55060743": [12, 165, 10]}, {"55060748": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060759": [6, 144, 102]}, {"55060763": [7, 140, 105]}, {"55060767": [8, 1, 32, 248, 9]}, {"55060776": [143, 163]}, {"55060779": [28, 144, 101]}, {"55060783": [1, 12, 1, 191, 115, 2, 32, 32, 33, 143, 163]}, {"55060795": [28, 144, 101]}, {"55060799": [3, 16]}, {"55060803": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060815": [6]}, {"55060817": [74]}, {"55060819": [24]}, {"55060822": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060832": [60, 8, 128, 64, 37, 8, 32]}, {"55060840": [133, 9]}, {"55060843": [2, 17, 32]}, {"55060847": [3, 52, 10]}, {"55060851": [1, 165, 10]}, {"55060856": [52, 5]}, {"55060859": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060871": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060882": [48, 33, 143, 191]}, {"55060887": [16, 143, 176]}, {"55060891": [20, 39, 189]}, {"55060895": [32, 3, 224]}, {"55060899": [8]}, {"55060904": [143, 166]}, {"55060907": [48, 132, 197]}, {"55060911": [4, 8, 16, 10, 114]}, {"55060920": [143, 185]}, {"55060923": [44, 135, 37]}, {"55060927": [4, 8, 16, 10, 114]}, {"55060936": [60, 10, 128, 64, 37, 74, 32, 8, 141, 75]}, {"55060947": [12, 17, 96]}, {"55060951": [2]}, {"55060956": [149, 69]}, {"55060959": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060972": [60, 9, 128, 64, 37, 41, 32, 24, 129, 42]}, {"55060983": [3, 5, 64]}, {"55060987": [11, 1, 42, 72, 32, 129, 40]}, {"55060996": [52, 10]}, {"55060999": [127, 21, 10]}, {"55061003": [6]}, {"55061008": [60, 10, 128, 18, 37, 74, 165, 208, 133, 72]}, {"55061019": [144, 33, 8]}, {"55061023": [1, 165, 72]}, {"55061027": [144, 161, 32]}, {"55061032": [3, 224]}, {"55061035": [8]}, {"55061040": [60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061051": [12, 17, 32]}, {"55061055": [2]}, {"55061060": [129, 3]}, {"55061063": [2]}, {"55061065": [3, 15, 195]}, {"55061069": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061083": [8]}, {"55061088": [144, 69]}, {"55061091": [3, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061103": [12, 17, 32]}, {"55061107": [2]}, {"55061112": [145, 5]}, {"55061115": [3, 3, 224]}, {"55061119": [8]}, {"55061124": [143, 162]}, {"55061127": [36, 144, 69]}, {"55061132": [60, 8, 128, 64, 37, 8, 32]}, {"55061140": [133, 9]}, {"55061143": [2, 17, 32]}, {"55061147": [4, 52, 10]}, {"55061151": [1, 165, 10]}, {"55061156": [16]}, {"55061159": [24, 52, 5]}, {"55061163": [65, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061175": [12, 17, 32]}, {"55061179": [19]}, {"55061184": [145, 5]}, {"55061187": [1, 175, 164]}, {"55061192": [175, 165]}, {"55061195": [4, 175, 166]}, {"55061199": [8, 39, 189, 255, 232, 175, 191]}, {"55061207": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061219": [6, 145, 6]}, {"55061223": [7, 141, 9]}, {"55061227": [8, 1, 32, 248, 9]}, {"55061236": [143, 191]}, {"55061239": [16, 39, 189]}, {"55061243": [24, 143, 164]}, {"55061248": [143, 165]}, {"55061251": [4, 143, 166]}, {"55061255": [8, 3, 224]}, {"55061259": [8]}, {"55061264": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061275": [16, 175, 163]}, {"55061279": [20, 175, 191]}, {"55061283": [24, 12, 16, 10, 209]}, {"55061292": [143, 162]}, {"55061295": [16, 143, 163]}, {"55061299": [20, 143, 191]}, {"55061303": [24, 39, 189]}, {"55061307": [32, 3, 224]}, {"55061311": [8]}, {"55061316": [39, 189, 255, 232, 175, 191]}, {"55061323": [16, 60, 8, 128, 64, 37, 8, 32, 8, 173]}, {"55061336": [173]}, {"55061339": [4, 173]}, {"55061343": [8, 173]}, {"55061347": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061363": [42]}, {"55061369": [9, 15, 195, 1, 33, 32, 38]}, {"55061377": [129, 32, 35, 141, 5, 4, 40, 12, 16, 11, 11]}, {"55061392": [4, 64]}, {"55061395": [34]}, {"55061400": [52, 68]}, {"55061404": [12, 16, 11, 114]}, {"55061412": [16, 96]}, {"55061415": [12]}, {"55061420": [60, 8, 128, 64, 37, 8, 32, 8, 140, 105]}, {"55061432": [173, 9]}, {"55061436": [140, 105]}, {"55061439": [4, 173, 9]}, {"55061443": [4, 140, 105]}, {"55061447": [8, 173, 9]}, {"55061451": [8, 52, 9]}, {"55061455": [1, 173, 9]}, {"55061459": [12, 144, 98]}, {"55061464": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061480": [52, 1]}, {"55061483": [10, 21, 65]}, {"55061487": [6]}, {"55061492": [149, 42]}, {"55061495": [28, 49, 74, 240, 31]}, {"55061501": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061511": [28, 129, 9, 4, 36, 5, 33]}, {"55061519": [2]}, {"55061525": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061535": [16, 39, 189]}, {"55061539": [24, 3, 224]}, {"55061543": [8]}, {"55061548": [39, 189, 255, 232, 175, 191]}, {"55061555": [16, 12, 16, 11, 25]}, {"55061564": [36, 1, 255, 255, 16, 65]}, {"55061571": [4]}, {"55061576": [52, 68]}, {"55061580": [12, 16, 11, 77]}, {"55061588": [143, 191]}, {"55061591": [16, 39, 189]}, {"55061595": [24, 3, 224]}, {"55061599": [8]}, {"55061604": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061615": [164, 52, 8]}, {"55061620": [52, 137]}, {"55061624": [148, 170]}, {"55061628": [52, 1, 1, 156, 21, 65]}, {"55061635": [8]}, {"55061640": [52, 8]}, {"55061643": [3, 148, 171]}, {"55061647": [28, 49, 105]}, {"55061651": [255, 49, 98, 31]}, {"55061657": [2, 18, 2, 16]}, {"55061663": [31]}, {"55061668": [52, 1]}, {"55061671": [10, 21, 65]}, {"55061675": [14]}, {"55061680": [148, 171]}, {"55061683": [28, 52, 1]}, {"55061687": [16, 20, 65]}, {"55061691": [8]}, {"55061696": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061707": [4]}, {"55061712": [36, 2, 255, 255, 16]}, {"55061719": [21]}, {"55061724": [52, 8]}, {"55061727": [1, 49, 105]}, {"55061731": [31, 52, 1]}, {"55061735": [21, 21, 65]}, {"55061739": [12]}, {"55061744": [52, 1]}, {"55061747": [62, 16, 129]}, {"55061751": [7]}, {"55061756": [52, 1]}, {"55061759": [66, 16, 129]}, {"55061763": [4]}, {"55061768": [36, 2, 255, 255, 16]}, {"55061775": [7]}, {"55061780": [52, 8]}, {"55061783": [2, 144, 169, 1, 65]}, {"55061789": [2, 18]}, {"55061793": [72, 16, 37]}, {"55061797": [2, 18]}, {"55061801": [73, 16, 37, 3, 224]}, {"55061807": [8]}, {"55061812": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061824": [129, 9]}, {"55061828": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061851": [4, 141, 9]}, {"55061856": [17, 32]}, {"55061859": [23]}, {"55061865": [9, 82, 2, 49, 75, 248]}, {"55061873": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061896": [49, 34]}, {"55061899": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061920": [60, 12, 128, 64, 37, 140, 28]}, {"55061928": [129, 140]}, {"55061932": [17, 108]}, {"55061935": [4, 165, 32]}, {"55061939": [2, 161, 43]}, {"55061943": [2, 161, 34]}, {"55061947": [3, 173, 36]}, {"55061951": [4, 3, 224]}, {"55061955": [8]}, {"55061960": [39, 189, 255, 224, 175, 176]}, {"55061967": [16, 175, 177]}, {"55061971": [20, 175, 191]}, {"55061975": [24, 52, 130]}, {"55061980": [52, 80]}, {"55061984": [38, 8, 255, 128, 5]}, {"55061991": [18]}, {"55061996": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55062007": [16, 1, 9]}, {"55062011": [24]}, {"55062014": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55062032": [142, 40]}, {"55062035": [12, 1]}, {"55062038": [248, 9]}, {"55062044": [20, 80, 255, 239]}, {"55062052": [54, 35]}, {"55062056": [16]}, {"55062059": [2]}, {"55062064": [52, 3]}, {"55062068": [143, 176]}, {"55062071": [16, 143, 177]}, {"55062075": [20, 143, 191]}, {"55062079": [24, 39, 189]}, {"55062083": [32, 3, 224]}, {"55062087": [8]}, {"55062092": [140, 136, 29, 44, 52, 9]}, {"55062099": [1]}, {"55062101": [9, 78]}, {"55062104": [1, 9, 16, 36, 16, 64]}, {"55062111": [36]}, {"55062116": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062131": [164, 52, 1]}, {"55062135": [61, 17, 129]}, {"55062139": [10]}, {"55062145": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062155": [25]}, {"55062160": [52, 13]}, {"55062163": [1, 161, 141, 29, 40, 37, 74]}, {"55062171": [3, 16]}, {"55062175": [9]}, {"55062180": [52, 12]}, {"55062183": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062199": [14]}, {"55062204": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062240": [60, 9, 128, 64, 37, 41, 32, 24, 161, 40]}, {"55062252": [52, 2]}, {"55062256": [3, 224]}, {"55062259": [8]}, {"55062264": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062276": [16]}, {"55062279": [34]}, {"55062284": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062296": [16]}, {"55062299": [29]}, {"55062304": [52, 2]}, {"55062307": [255, 32, 232, 255, 166, 33, 8]}, {"55062315": [97, 16]}, {"55062319": [24]}, {"55062324": [52, 8]}, {"55062327": [100, 16]}, {"55062331": [21]}, {"55062336": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062351": [1, 160, 40, 14, 222, 52, 8]}, {"55062359": [104, 16]}, {"55062363": [13]}, {"55062368": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062383": [4, 160, 40, 14, 222, 52, 8]}, {"55062391": [106, 16]}, {"55062395": [5]}, {"55062400": [52, 5]}, {"55062403": [3, 52, 8]}, {"55062407": [107, 16]}, {"55062411": [1]}, {"55062416": [60, 9, 128, 64, 37, 41, 32, 24, 60, 10, 128, 64, 37, 74, 32, 27, 129, 44]}, {"55062436": [17, 136]}, {"55062439": [11, 33, 41]}, {"55062443": [1, 21, 42, 255, 252]}, {"55062452": [60, 9, 128, 64, 37, 41, 32, 23, 33, 41]}, {"55062463": [1, 17, 42]}, {"55062467": [4, 129, 44]}, {"55062472": [21, 128, 255, 252]}, {"55062480": [161, 40]}, {"55062484": [3, 224]}, {"55062487": [8]}, {"55062493": [96, 120, 33, 129, 236, 14, 223, 49, 142]}, {"55062503": [128, 17, 192]}, {"55062507": [3, 52, 3]}, {"55062511": [5, 3, 224]}, {"55062515": [8, 52, 2]}, {"55062519": [2, 3, 224]}, {"55062523": [8]}, {"55062525": [96, 16, 33, 133, 194]}, {"55062531": [164, 60, 8, 128, 18, 37, 8, 165, 208, 129, 9, 14, 223, 53, 41]}, {"55062547": [128, 161, 9, 14, 223, 3, 224]}, {"55062555": [8]}, {"55062560": [175, 164]}, {"55062563": [104, 175, 165]}, {"55062567": [108, 175, 166]}, {"55062571": [112, 175, 167]}, {"55062575": [116, 39, 189, 255, 232, 175, 163]}, {"55062583": [16, 175, 191]}, {"55062587": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062603": [32, 21]}, {"55062607": [31]}, {"55062612": [60, 9, 128, 64, 37, 41, 32, 27, 52, 10]}, {"55062623": [255, 161, 42]}, {"55062628": [60, 9, 128, 64, 37, 41, 32, 24, 36, 10, 255, 255, 52, 12]}, {"55062643": [3, 33, 74]}, {"55062647": [1, 17, 76]}, {"55062651": [20, 1, 42, 88, 32, 129, 104]}, {"55062660": [17]}, {"55062662": [255, 251]}, {"55062668": [60, 9, 128, 64, 37, 41, 32, 27, 161, 42]}, {"55062680": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062691": [1, 165, 42]}, {"55062696": [60, 9, 128, 65, 52, 10]}, {"55062703": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 209]}, {"55062732": [143, 163]}, {"55062735": [16, 143, 191]}, {"55062739": [20, 39, 189]}, {"55062743": [24, 143, 164]}, {"55062747": [104, 143, 165]}, {"55062751": [108, 143, 166]}, {"55062755": [112, 143, 167]}, {"55062759": [116, 132, 110, 19, 196, 3, 224]}, {"55062767": [8]}, {"55062772": [147, 25]}, {"55062775": [116, 52, 1]}, {"55062779": [255, 23, 33]}, {"55062783": [2]}, {"55062788": [52, 25]}, {"55062791": [44, 3, 224]}, {"55062795": [8, 167, 185]}, {"55062799": [154, 147, 44]}, {"55062803": [116, 52, 1]}, {"55062807": [255, 21, 129]}, {"55062811": [2]}, {"55062816": [52, 12]}, {"55062819": [44, 3, 224]}, {"55062823": [8]}, {"55062828": [145, 174]}, {"55062831": [116, 52, 1]}, {"55062835": [255, 21, 193]}, {"55062839": [2]}, {"55062844": [52, 14]}, {"55062847": [44, 3, 224]}, {"55062851": [8, 167, 174]}, {"55062855": [154, 145, 207]}, {"55062859": [116, 52, 1]}, {"55062863": [255, 21, 225]}, {"55062867": [2]}, {"55062872": [52, 15]}, {"55062875": [44, 3, 224]}, {"55062879": [8, 167, 175]}, {"55062883": [154, 60, 8, 128, 64, 37, 8, 32, 28, 142, 9]}, {"55062895": [104, 173, 9]}, {"55062900": [142, 9]}, {"55062903": [108, 173, 9]}, {"55062907": [4, 150, 9]}, {"55062911": [112, 165, 9]}, {"55062915": [8, 150, 9]}, {"55062919": [156, 165, 9]}, {"55062923": [10, 3, 224]}, {"55062927": [8, 142, 14]}, {"55062931": [4, 39, 189, 255, 224, 175, 176]}, {"55062939": [16, 175, 177]}, {"55062943": [20, 175, 191]}, {"55062947": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 28, 142, 8]}, {"55062967": [4, 17]}, {"55062971": [5]}, {"55062976": [12, 16, 12, 143]}, {"55062984": [16]}, {"55062987": [3]}, {"55062992": [12, 16, 12, 162]}, {"55063000": [12, 16, 12, 130, 52, 4]}, {"55063008": [12, 16, 12, 130, 52, 4]}, {"55063015": [1, 12, 16, 12, 130, 52, 4]}, {"55063023": [2, 143, 176]}, {"55063027": [16, 143, 177]}, {"55063031": [20, 143, 191]}, {"55063035": [24, 39, 189]}, {"55063039": [32, 3, 224]}, {"55063043": [8]}, {"55063048": [2, 4, 64, 33, 145, 9]}, {"55063055": [108, 52, 1]}, {"55063059": [255, 17, 33]}, {"55063063": [7]}, {"55063068": [2, 9, 72, 33, 145, 41]}, {"55063075": [116, 52, 1]}, {"55063079": [44, 17, 33]}, {"55063083": [2]}, {"55063088": [161, 9]}, {"55063091": [105, 3, 224]}, {"55063095": [8]}, {"55063100": [39, 189, 255, 232, 175, 191]}, {"55063107": [16, 142, 40]}, {"55063112": [174, 8]}, {"55063115": [64, 142, 40]}, {"55063119": [4, 174, 8]}, {"55063123": [68, 150, 40]}, {"55063127": [8, 166, 8]}, {"55063131": [72, 162]}, {"55063134": [15, 51, 146, 8]}, {"55063139": [74, 52, 1]}, {"55063143": [255, 21, 1]}, {"55063147": [3]}, {"55063152": [12, 16, 12, 176]}, {"55063160": [143, 191]}, {"55063163": [16, 39, 189]}, {"55063167": [24, 3, 224]}, {"55063171": [8]}, {"55063176": [142, 8]}, {"55063179": [64, 174, 8]}, {"55063183": [104, 142, 8]}, {"55063187": [68, 174, 8]}, {"55063191": [108, 150, 8]}, {"55063195": [72, 166, 8]}, {"55063199": [112, 146, 8]}, {"55063203": [104, 52, 1]}, {"55063207": [255, 21, 1]}, {"55063211": [3]}, {"55063216": [52, 8]}, {"55063219": [1, 162, 8, 15, 51, 3, 224]}, {"55063227": [8]}, {"55063232": [39, 189, 255, 232, 175, 191]}, {"55063239": [16, 150, 8]}, {"55063243": [156, 49, 8]}, {"55063247": [64, 17]}, {"55063251": [5]}, {"55063256": [150, 8]}, {"55063259": [112, 49, 8, 255, 15, 53, 8]}, {"55063267": [48, 166, 8]}, {"55063271": [112, 146, 40]}, {"55063275": [1, 162, 8]}, {"55063279": [105, 150, 40]}, {"55063283": [2, 166, 8]}, {"55063287": [106, 142, 40]}, {"55063291": [4, 174, 8]}, {"55063295": [108, 12, 16, 12, 202, 52, 4]}, {"55063304": [12, 16, 12, 202, 52, 4]}, {"55063311": [1, 12, 16, 12, 202, 52, 4]}, {"55063319": [2, 143, 191]}, {"55063323": [16, 39, 189]}, {"55063327": [24, 3, 224]}, {"55063331": [8]}, {"55063336": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 51, 212, 145, 10]}, {"55063351": [108, 52, 1]}, {"55063355": [255, 17, 65]}, {"55063359": [5]}, {"55063364": [1, 42, 72, 33, 145, 41]}, {"55063372": [21, 32]}, {"55063375": [28]}, {"55063380": [60, 9, 128, 64, 37, 41, 51, 199, 37, 41]}, {"55063391": [1, 145, 42]}, {"55063396": [17, 64]}, {"55063399": [19]}, {"55063404": [2, 10, 88, 33, 145, 107]}, {"55063411": [116, 52, 1]}, {"55063415": [255, 17, 97, 255, 248]}, {"55063424": [146, 12]}, {"55063427": [108, 17, 138, 255, 245]}, {"55063436": [146, 12]}, {"55063439": [109, 17, 138, 255, 242]}, {"55063448": [146, 12]}, {"55063451": [110, 17, 138, 255, 239]}, {"55063460": [161, 11]}, {"55063463": [105, 161, 10]}, {"55063467": [108, 16]}, {"55063471": [4]}, {"55063476": [52, 9]}, {"55063479": [255, 161, 9]}, {"55063483": [105, 161, 9]}, {"55063487": [108, 3, 224]}, {"55063491": [8]}, {"55063496": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063509": [1, 1, 1, 1, 1]}, {"55063515": [1, 1, 1, 1, 1]}, {"55063521": [1]}, {"55063523": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063533": [51, 8, 33, 32, 15]}, {"55063539": [71, 21, 234]}, {"55063543": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063555": [164]}, {"55063557": [15, 122, 3, 20, 64]}, {"55063563": [5, 52, 2, 72, 48, 21, 226]}, {"55063571": [7]}, {"55063576": [36, 25]}, {"55063579": [3, 16]}, {"55063583": [4, 52, 2, 99, 17, 21, 226]}, {"55063591": [2]}, {"55063596": [36, 25]}, {"55063599": [3, 3, 224]}, {"55063603": [8]}, {"55063608": [141, 173, 138, 160, 52, 2, 128]}, {"55063616": [16, 77]}, {"55063619": [2]}, {"55063624": [16]}, {"55063627": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063643": [1, 16, 64]}, {"55063647": [2]}, {"55063652": [16]}, {"55063655": [2, 52, 2]}, {"55063659": [1, 161, 226, 28, 191, 3, 224]}, {"55063667": [8]}, {"55063673": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063687": [164]}, {"55063689": [15, 122, 3, 20, 64]}, {"55063695": [5, 52, 2, 72, 48, 21, 226]}, {"55063703": [7]}, {"55063708": [36, 25]}, {"55063711": [3, 16]}, {"55063715": [4, 52, 2, 99, 17, 21, 226]}, {"55063723": [2]}, {"55063728": [36, 25]}, {"55063731": [3, 3, 224]}, {"55063735": [8]}, {"55063740": [162, 37]}, {"55063743": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063755": [4, 142, 10]}, {"55063760": [17, 64]}, {"55063763": [11]}, {"55063769": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063781": [24, 194, 2, 23]}, {"55063787": [3, 49, 89]}, {"55063791": [255, 129, 234]}, {"55063796": [3, 42, 200, 37, 8, 16, 13, 50, 161, 249]}, {"55063808": [3, 224]}, {"55063811": [8]}] \ No newline at end of file +[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 196]}, {"11135032": [8, 16, 13, 47]}, {"11311804": [12, 16, 11, 205]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 190, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 101]}, {"11427312": [12, 16, 13, 14]}, {"11427320": [12, 16, 11, 200]}, {"11427332": [0, 0]}, {"11427335": [0]}, {"11431496": [12, 16, 11, 195, 1, 15, 192, 33]}, {"11559936": [130]}, {"11559938": [14, 222]}, {"11559948": [49, 248, 0, 2]}, {"11562028": [12, 16, 13, 64]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 30]}, {"11882076": [12, 16, 12, 251]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 68, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 75, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 82, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 61, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 140]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 18]}, {"12427480": [12, 16, 10, 106]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 110]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 12, 8, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 152]}, {"12491480": [12, 16, 10, 161]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 147]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 89]}, {"13709176": [52, 15]}, {"13709179": [0]}, {"14109028": [16, 0]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 128, 73, 14, 222]}, {"14149508": [52]}, {"14149510": [0, 1, 2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 208]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 224]}, {"14624335": [118]}, {"14720872": [128]}, {"14720874": [14, 222]}, {"14720884": [49, 248, 0, 4]}, {"14720944": [12, 16, 11, 216]}, {"14848904": [8, 16, 11, 247]}, {"14852164": [12, 16, 12, 0]}, {"14872723": [52]}, {"15327704": [52, 9, 64, 0]}, {"15327728": [52]}, {"15327730": [91, 8]}, {"15327744": [52]}, {"15327746": [0, 10]}, {"15327757": [169]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 236, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 48, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 76, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 104, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 220, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 108, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 140, 128, 64, 38, 132, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 172, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 39, 212, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 28, 128, 64, 40]}, {"55059600": [83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 3, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 44, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [2, 52, 2]}, {"55060003": [69, 52, 2]}, {"55060007": [70, 3, 224]}, {"55060011": [8]}, {"55060016": [144, 136]}, {"55060019": [162, 49, 8]}, {"55060023": [6, 17]}, {"55060027": [2, 52, 2]}, {"55060031": [55, 52, 2]}, {"55060035": [56, 3, 224]}, {"55060039": [8]}, {"55060044": [144, 136]}, {"55060047": [161, 49, 8]}, {"55060051": [32, 17]}, {"55060055": [2, 52, 2]}, {"55060059": [121, 52, 2]}, {"55060063": [122, 3, 224]}, {"55060067": [8]}, {"55060072": [144, 136]}, {"55060075": [161, 49, 8]}, {"55060079": [4, 17]}, {"55060083": [2, 52, 2]}, {"55060087": [119, 52, 2]}, {"55060091": [120, 3, 224]}, {"55060095": [8]}, {"55060100": [144, 136]}, {"55060103": [50, 17]}, {"55060107": [2, 52, 2]}, {"55060111": [192, 52, 2]}, {"55060115": [193, 3, 224]}, {"55060119": [8]}, {"55060124": [144, 136]}, {"55060127": [163, 49, 8]}, {"55060131": [3, 17]}, {"55060135": [2, 52, 2]}, {"55060139": [77, 52, 162]}, {"55060144": [3, 224]}, {"55060147": [8]}, {"55060152": [144, 136]}, {"55060155": [163, 49, 8]}, {"55060159": [24, 17]}, {"55060163": [2, 52, 2]}, {"55060167": [77, 52, 162]}, {"55060172": [3, 224]}, {"55060175": [8]}, {"55060180": [3, 224]}, {"55060183": [8]}, {"55060188": [52, 8]}, {"55060191": [1, 160, 136]}, {"55060195": [62, 3, 224]}, {"55060199": [8]}, {"55060204": [36, 136]}, {"55060207": [134, 36, 9, 255, 255, 37, 41]}, {"55060215": [1, 52, 1]}, {"55060219": [3]}, {"55060221": [41, 8, 42, 20, 32]}, {"55060227": [7]}, {"55060232": [1, 9, 80, 33, 145, 75]}, {"55060240": [52, 1]}, {"55060243": [255, 21, 97, 255, 247]}, {"55060252": [161, 69]}, {"55060256": [3, 224]}, {"55060259": [8]}, {"55060264": [36, 136]}, {"55060267": [168, 1, 6, 64, 33, 145, 9]}, {"55060276": [1, 37, 72, 37, 161, 9]}, {"55060284": [3, 224]}, {"55060287": [8]}, {"55060292": [36, 136]}, {"55060295": [188, 1, 5, 64, 33, 129, 9]}, {"55060304": [5, 33]}, {"55060307": [2]}, {"55060312": [52, 9]}, {"55060316": [37, 41]}, {"55060319": [1, 161, 9]}, {"55060324": [3, 224]}, {"55060327": [8]}, {"55060332": [52, 8]}, {"55060335": [1, 160, 136]}, {"55060339": [61, 52, 8]}, {"55060343": [20, 160, 136]}, {"55060347": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [50, 160, 136]}, {"55060375": [58, 52, 8]}, {"55060379": [48, 164, 136, 19, 244, 160, 136]}, {"55060387": [51, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [2, 160, 136]}, {"55060403": [50, 52, 8]}, {"55060407": [1, 160, 136]}, {"55060411": [58, 160, 136]}, {"55060415": [60, 52, 8]}, {"55060419": [96, 164, 136, 19, 244, 160, 136]}, {"55060427": [51, 3, 224]}, {"55060431": [8]}, {"55060436": [144, 136]}, {"55060439": [124, 52, 1]}, {"55060443": [255, 17, 1]}, {"55060447": [6, 52, 2]}, {"55060451": [107, 144, 136]}, {"55060455": [148, 45, 8]}, {"55060459": [6, 17]}, {"55060463": [2, 52, 2]}, {"55060467": [106, 52, 2]}, {"55060471": [3, 3, 224]}, {"55060475": [8]}, {"55060480": [144, 136]}, {"55060483": [123, 52, 1]}, {"55060487": [255, 17, 1]}, {"55060491": [2, 52, 162]}, {"55060496": [52, 2]}, {"55060499": [12, 3, 224]}, {"55060503": [8]}, {"55060508": [52, 8]}, {"55060511": [7, 160, 136]}, {"55060515": [123, 3, 224]}, {"55060519": [8]}, {"55060524": [52, 8]}, {"55060527": [1]}, {"55060529": [168, 64, 4, 140, 137]}, {"55060535": [164, 1, 40, 72, 37, 172, 137]}, {"55060543": [164, 3, 224]}, {"55060547": [8]}, {"55060552": [48, 132]}, {"55060555": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060567": [140, 16, 129]}, {"55060571": [22, 145, 2]}, {"55060575": [117, 52, 1]}, {"55060579": [141, 16, 129]}, {"55060583": [19, 145, 2]}, {"55060587": [117, 16, 128]}, {"55060591": [17, 145, 2]}, {"55060595": [116, 52, 1]}, {"55060599": [138, 16, 129]}, {"55060603": [14, 145, 2]}, {"55060607": [116, 52, 1]}, {"55060611": [139, 16, 129]}, {"55060615": [11, 145, 2]}, {"55060619": [116, 52, 1]}, {"55060623": [88, 16, 129]}, {"55060627": [8, 52, 2]}, {"55060632": [52, 1]}, {"55060635": [120, 16, 129]}, {"55060639": [5, 52, 2]}, {"55060644": [52, 1]}, {"55060647": [121, 16, 129]}, {"55060651": [2, 52, 2]}, {"55060656": [52, 2]}, {"55060659": [255, 3, 224]}, {"55060663": [8]}, {"55060668": [39, 189, 255, 224, 175, 191]}, {"55060675": [16, 175, 176]}, {"55060679": [20, 12, 16, 11, 11]}, {"55060688": [4, 65]}, {"55060691": [2]}, {"55060696": [52, 2]}, {"55060699": [91]}, {"55060701": [64, 32, 33, 12, 16, 11, 114]}, {"55060712": [16, 96]}, {"55060715": [22, 175, 163]}, {"55060719": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060728": [133, 9]}, {"55060731": [2, 17, 32]}, {"55060735": [3, 52, 10]}, {"55060739": [1, 16]}, {"55060743": [12, 165, 10]}, {"55060748": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060759": [6, 144, 102]}, {"55060763": [7, 140, 105]}, {"55060767": [8, 1, 32, 248, 9]}, {"55060776": [143, 163]}, {"55060779": [28, 144, 101]}, {"55060783": [1, 12, 1, 191, 115, 2, 32, 32, 33, 143, 163]}, {"55060795": [28, 144, 101]}, {"55060799": [3, 16]}, {"55060803": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060815": [6]}, {"55060817": [74]}, {"55060819": [24]}, {"55060822": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060832": [60, 8, 128, 64, 37, 8, 32]}, {"55060840": [133, 9]}, {"55060843": [2, 17, 32]}, {"55060847": [3, 52, 10]}, {"55060851": [1, 165, 10]}, {"55060856": [52, 5]}, {"55060859": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060871": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060882": [48, 33, 143, 191]}, {"55060887": [16, 143, 176]}, {"55060891": [20, 39, 189]}, {"55060895": [32, 3, 224]}, {"55060899": [8]}, {"55060904": [143, 166]}, {"55060907": [48, 132, 197]}, {"55060911": [4, 8, 16, 10, 114]}, {"55060920": [143, 185]}, {"55060923": [44, 135, 37]}, {"55060927": [4, 8, 16, 10, 114]}, {"55060936": [60, 10, 128, 64, 37, 74, 32, 8, 141, 75]}, {"55060947": [12, 17, 96]}, {"55060951": [2]}, {"55060956": [149, 69]}, {"55060959": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060972": [60, 9, 128, 64, 37, 41, 32, 24, 129, 42]}, {"55060983": [3, 5, 64]}, {"55060987": [11, 1, 42, 72, 32, 129, 40]}, {"55060996": [52, 10]}, {"55060999": [127, 21, 10]}, {"55061003": [6]}, {"55061008": [60, 10, 128, 18, 37, 74, 165, 208, 133, 72]}, {"55061019": [144, 33, 8]}, {"55061023": [1, 165, 72]}, {"55061027": [144, 161, 32]}, {"55061032": [3, 224]}, {"55061035": [8]}, {"55061040": [60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061051": [12, 17, 32]}, {"55061055": [2]}, {"55061060": [129, 3]}, {"55061063": [2]}, {"55061065": [3, 15, 195]}, {"55061069": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061083": [8]}, {"55061088": [144, 69]}, {"55061091": [3, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061103": [12, 17, 32]}, {"55061107": [2]}, {"55061112": [145, 5]}, {"55061115": [3, 3, 224]}, {"55061119": [8]}, {"55061124": [143, 162]}, {"55061127": [36, 144, 69]}, {"55061132": [60, 8, 128, 64, 37, 8, 32]}, {"55061140": [133, 9]}, {"55061143": [2, 17, 32]}, {"55061147": [4, 52, 10]}, {"55061151": [1, 165, 10]}, {"55061156": [16]}, {"55061159": [24, 52, 5]}, {"55061163": [65, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061175": [12, 17, 32]}, {"55061179": [19]}, {"55061184": [145, 5]}, {"55061187": [1, 175, 164]}, {"55061192": [175, 165]}, {"55061195": [4, 175, 166]}, {"55061199": [8, 39, 189, 255, 232, 175, 191]}, {"55061207": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061219": [6, 145, 6]}, {"55061223": [7, 141, 9]}, {"55061227": [8, 1, 32, 248, 9]}, {"55061236": [143, 191]}, {"55061239": [16, 39, 189]}, {"55061243": [24, 143, 164]}, {"55061248": [143, 165]}, {"55061251": [4, 143, 166]}, {"55061255": [8, 3, 224]}, {"55061259": [8]}, {"55061264": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061275": [16, 175, 163]}, {"55061279": [20, 175, 191]}, {"55061283": [24, 12, 16, 10, 209]}, {"55061292": [143, 162]}, {"55061295": [16, 143, 163]}, {"55061299": [20, 143, 191]}, {"55061303": [24, 39, 189]}, {"55061307": [32, 3, 224]}, {"55061311": [8]}, {"55061316": [39, 189, 255, 232, 175, 191]}, {"55061323": [16, 60, 8, 128, 64, 37, 8, 32, 8, 173]}, {"55061336": [173]}, {"55061339": [4, 173]}, {"55061343": [8, 173]}, {"55061347": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061363": [42]}, {"55061369": [9, 15, 195, 1, 33, 32, 38]}, {"55061377": [129, 32, 35, 141, 5, 4, 40, 12, 16, 11, 11]}, {"55061392": [4, 64]}, {"55061395": [34]}, {"55061400": [52, 68]}, {"55061404": [12, 16, 11, 114]}, {"55061412": [16, 96]}, {"55061415": [12]}, {"55061420": [60, 8, 128, 64, 37, 8, 32, 8, 140, 105]}, {"55061432": [173, 9]}, {"55061436": [140, 105]}, {"55061439": [4, 173, 9]}, {"55061443": [4, 140, 105]}, {"55061447": [8, 173, 9]}, {"55061451": [8, 52, 9]}, {"55061455": [1, 173, 9]}, {"55061459": [12, 144, 98]}, {"55061464": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061480": [52, 1]}, {"55061483": [10, 21, 65]}, {"55061487": [6]}, {"55061492": [149, 42]}, {"55061495": [28, 49, 74, 240, 31]}, {"55061501": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061511": [28, 129, 9, 4, 36, 5, 33]}, {"55061519": [2]}, {"55061525": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061535": [16, 39, 189]}, {"55061539": [24, 3, 224]}, {"55061543": [8]}, {"55061548": [39, 189, 255, 232, 175, 191]}, {"55061555": [16, 12, 16, 11, 25]}, {"55061564": [36, 1, 255, 255, 16, 65]}, {"55061571": [4]}, {"55061576": [52, 68]}, {"55061580": [12, 16, 11, 77]}, {"55061588": [143, 191]}, {"55061591": [16, 39, 189]}, {"55061595": [24, 3, 224]}, {"55061599": [8]}, {"55061604": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061615": [164, 52, 8]}, {"55061620": [52, 137]}, {"55061624": [148, 170]}, {"55061628": [52, 1, 1, 156, 21, 65]}, {"55061635": [8]}, {"55061640": [52, 8]}, {"55061643": [3, 148, 171]}, {"55061647": [28, 49, 105]}, {"55061651": [255, 49, 98, 31]}, {"55061657": [2, 18, 2, 16]}, {"55061663": [31]}, {"55061668": [52, 1]}, {"55061671": [10, 21, 65]}, {"55061675": [14]}, {"55061680": [148, 171]}, {"55061683": [28, 52, 1]}, {"55061687": [16, 20, 65]}, {"55061691": [8]}, {"55061696": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061707": [4]}, {"55061712": [36, 2, 255, 255, 16]}, {"55061719": [21]}, {"55061724": [52, 8]}, {"55061727": [1, 49, 105]}, {"55061731": [31, 52, 1]}, {"55061735": [21, 21, 65]}, {"55061739": [12]}, {"55061744": [52, 1]}, {"55061747": [62, 16, 129]}, {"55061751": [7]}, {"55061756": [52, 1]}, {"55061759": [66, 16, 129]}, {"55061763": [4]}, {"55061768": [36, 2, 255, 255, 16]}, {"55061775": [7]}, {"55061780": [52, 8]}, {"55061783": [2, 144, 169, 1, 65]}, {"55061789": [2, 18]}, {"55061793": [72, 16, 37]}, {"55061797": [2, 18]}, {"55061801": [73, 16, 37, 3, 224]}, {"55061807": [8]}, {"55061812": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061824": [129, 9]}, {"55061828": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061851": [4, 141, 9]}, {"55061856": [17, 32]}, {"55061859": [23]}, {"55061865": [9, 82, 2, 49, 75, 248]}, {"55061873": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061896": [49, 34]}, {"55061899": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061920": [60, 12, 128, 64, 37, 140, 28]}, {"55061928": [129, 140]}, {"55061932": [17, 108]}, {"55061935": [4, 165, 32]}, {"55061939": [2, 161, 43]}, {"55061943": [2, 161, 34]}, {"55061947": [3, 173, 36]}, {"55061951": [4, 3, 224]}, {"55061955": [8]}, {"55061960": [39, 189, 255, 224, 175, 176]}, {"55061967": [16, 175, 177]}, {"55061971": [20, 175, 191]}, {"55061975": [24, 52, 130]}, {"55061980": [52, 80]}, {"55061984": [38, 8, 255, 128, 5]}, {"55061991": [18]}, {"55061996": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55062007": [16, 1, 9]}, {"55062011": [24]}, {"55062014": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55062032": [142, 40]}, {"55062035": [12, 1]}, {"55062038": [248, 9]}, {"55062044": [20, 80, 255, 239]}, {"55062052": [54, 35]}, {"55062056": [16]}, {"55062059": [2]}, {"55062064": [52, 3]}, {"55062068": [143, 176]}, {"55062071": [16, 143, 177]}, {"55062075": [20, 143, 191]}, {"55062079": [24, 39, 189]}, {"55062083": [32, 3, 224]}, {"55062087": [8]}, {"55062092": [140, 136, 29, 44, 52, 9]}, {"55062099": [1]}, {"55062101": [9, 78]}, {"55062104": [1, 9, 16, 36, 16, 64]}, {"55062111": [36]}, {"55062116": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062131": [164, 52, 1]}, {"55062135": [61, 17, 129]}, {"55062139": [10]}, {"55062145": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062155": [25]}, {"55062160": [52, 13]}, {"55062163": [1, 161, 141, 29, 40, 37, 74]}, {"55062171": [3, 16]}, {"55062175": [9]}, {"55062180": [52, 12]}, {"55062183": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062199": [14]}, {"55062204": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062240": [60, 9, 128, 64, 37, 41, 32, 24, 161, 40]}, {"55062252": [52, 2]}, {"55062256": [3, 224]}, {"55062259": [8]}, {"55062264": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062276": [16]}, {"55062279": [34]}, {"55062284": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062296": [16]}, {"55062299": [29]}, {"55062304": [52, 2]}, {"55062307": [255, 32, 232, 255, 166, 33, 8]}, {"55062315": [97, 16]}, {"55062319": [24]}, {"55062324": [52, 8]}, {"55062327": [100, 16]}, {"55062331": [21]}, {"55062336": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062351": [1, 160, 40, 14, 222, 52, 8]}, {"55062359": [104, 16]}, {"55062363": [13]}, {"55062368": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062383": [4, 160, 40, 14, 222, 52, 8]}, {"55062391": [106, 16]}, {"55062395": [5]}, {"55062400": [52, 5]}, {"55062403": [3, 52, 8]}, {"55062407": [107, 16]}, {"55062411": [1]}, {"55062416": [60, 9, 128, 64, 37, 41, 32, 24, 60, 10, 128, 64, 37, 74, 32, 27, 129, 44]}, {"55062436": [17, 136]}, {"55062439": [11, 33, 41]}, {"55062443": [1, 21, 42, 255, 252]}, {"55062452": [60, 9, 128, 64, 37, 41, 32, 23, 33, 41]}, {"55062463": [1, 17, 42]}, {"55062467": [4, 129, 44]}, {"55062472": [21, 128, 255, 252]}, {"55062480": [161, 40]}, {"55062484": [3, 224]}, {"55062487": [8]}, {"55062493": [96, 120, 33, 129, 236, 14, 223, 49, 142]}, {"55062503": [128, 17, 192]}, {"55062507": [3, 52, 3]}, {"55062511": [5, 3, 224]}, {"55062515": [8, 52, 2]}, {"55062519": [2, 3, 224]}, {"55062523": [8]}, {"55062525": [96, 16, 33, 133, 194]}, {"55062531": [164, 60, 8, 128, 18, 37, 8, 165, 208, 129, 9, 14, 223, 53, 41]}, {"55062547": [128, 161, 9, 14, 223, 3, 224]}, {"55062555": [8]}, {"55062560": [175, 164]}, {"55062563": [104, 175, 165]}, {"55062567": [108, 175, 166]}, {"55062571": [112, 175, 167]}, {"55062575": [116, 39, 189, 255, 232, 175, 163]}, {"55062583": [16, 175, 191]}, {"55062587": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062603": [32, 21]}, {"55062607": [31]}, {"55062612": [60, 9, 128, 64, 37, 41, 32, 27, 52, 10]}, {"55062623": [255, 161, 42]}, {"55062628": [60, 9, 128, 64, 37, 41, 32, 24, 36, 10, 255, 255, 52, 12]}, {"55062643": [3, 33, 74]}, {"55062647": [1, 17, 76]}, {"55062651": [20, 1, 42, 88, 32, 129, 104]}, {"55062660": [17]}, {"55062662": [255, 251]}, {"55062668": [60, 9, 128, 64, 37, 41, 32, 27, 161, 42]}, {"55062680": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062691": [1, 165, 42]}, {"55062696": [60, 9, 128, 65, 52, 10]}, {"55062703": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 209]}, {"55062732": [143, 163]}, {"55062735": [16, 143, 191]}, {"55062739": [20, 39, 189]}, {"55062743": [24, 143, 164]}, {"55062747": [104, 143, 165]}, {"55062751": [108, 143, 166]}, {"55062755": [112, 143, 167]}, {"55062759": [116, 132, 110, 19, 196, 3, 224]}, {"55062767": [8]}, {"55062772": [147, 25]}, {"55062775": [116, 52, 1]}, {"55062779": [255, 23, 33]}, {"55062783": [2]}, {"55062788": [52, 25]}, {"55062791": [44, 3, 224]}, {"55062795": [8, 167, 185]}, {"55062799": [154, 147, 44]}, {"55062803": [116, 52, 1]}, {"55062807": [255, 21, 129]}, {"55062811": [2]}, {"55062816": [52, 12]}, {"55062819": [44, 3, 224]}, {"55062823": [8]}, {"55062828": [145, 174]}, {"55062831": [116, 52, 1]}, {"55062835": [255, 21, 193]}, {"55062839": [2]}, {"55062844": [52, 14]}, {"55062847": [44, 3, 224]}, {"55062851": [8, 167, 174]}, {"55062855": [154, 145, 207]}, {"55062859": [116, 52, 1]}, {"55062863": [255, 21, 225]}, {"55062867": [2]}, {"55062872": [52, 15]}, {"55062875": [44, 3, 224]}, {"55062879": [8, 167, 175]}, {"55062883": [154, 60, 8, 128, 64, 37, 8, 32, 28, 142, 9]}, {"55062895": [104, 173, 9]}, {"55062900": [142, 9]}, {"55062903": [108, 173, 9]}, {"55062907": [4, 150, 9]}, {"55062911": [112, 165, 9]}, {"55062915": [8, 150, 9]}, {"55062919": [156, 165, 9]}, {"55062923": [10, 3, 224]}, {"55062927": [8, 142, 14]}, {"55062931": [4, 39, 189, 255, 224, 175, 176]}, {"55062939": [16, 175, 177]}, {"55062943": [20, 175, 191]}, {"55062947": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 28, 142, 8]}, {"55062967": [4, 17]}, {"55062971": [5]}, {"55062976": [12, 16, 12, 143]}, {"55062984": [16]}, {"55062987": [3]}, {"55062992": [12, 16, 12, 162]}, {"55063000": [12, 16, 12, 130, 52, 4]}, {"55063008": [12, 16, 12, 130, 52, 4]}, {"55063015": [1, 12, 16, 12, 130, 52, 4]}, {"55063023": [2, 143, 176]}, {"55063027": [16, 143, 177]}, {"55063031": [20, 143, 191]}, {"55063035": [24, 39, 189]}, {"55063039": [32, 3, 224]}, {"55063043": [8]}, {"55063048": [2, 4, 64, 33, 145, 9]}, {"55063055": [108, 52, 1]}, {"55063059": [255, 17, 33]}, {"55063063": [7]}, {"55063068": [2, 9, 72, 33, 145, 41]}, {"55063075": [116, 52, 1]}, {"55063079": [44, 17, 33]}, {"55063083": [2]}, {"55063088": [161, 9]}, {"55063091": [105, 3, 224]}, {"55063095": [8]}, {"55063100": [39, 189, 255, 232, 175, 191]}, {"55063107": [16, 142, 40]}, {"55063112": [174, 8]}, {"55063115": [64, 142, 40]}, {"55063119": [4, 174, 8]}, {"55063123": [68, 150, 40]}, {"55063127": [8, 166, 8]}, {"55063131": [72, 162]}, {"55063134": [15, 51, 146, 8]}, {"55063139": [74, 52, 1]}, {"55063143": [255, 21, 1]}, {"55063147": [3]}, {"55063152": [12, 16, 12, 176]}, {"55063160": [143, 191]}, {"55063163": [16, 39, 189]}, {"55063167": [24, 3, 224]}, {"55063171": [8]}, {"55063176": [142, 8]}, {"55063179": [64, 174, 8]}, {"55063183": [104, 142, 8]}, {"55063187": [68, 174, 8]}, {"55063191": [108, 150, 8]}, {"55063195": [72, 166, 8]}, {"55063199": [112, 146, 8]}, {"55063203": [104, 52, 1]}, {"55063207": [255, 21, 1]}, {"55063211": [3]}, {"55063216": [52, 8]}, {"55063219": [1, 162, 8, 15, 51, 3, 224]}, {"55063227": [8]}, {"55063232": [39, 189, 255, 232, 175, 191]}, {"55063239": [16, 150, 8]}, {"55063243": [156, 49, 8]}, {"55063247": [64, 17]}, {"55063251": [5]}, {"55063256": [150, 8]}, {"55063259": [112, 49, 8, 255, 15, 53, 8]}, {"55063267": [48, 166, 8]}, {"55063271": [112, 146, 40]}, {"55063275": [1, 162, 8]}, {"55063279": [105, 150, 40]}, {"55063283": [2, 166, 8]}, {"55063287": [106, 142, 40]}, {"55063291": [4, 174, 8]}, {"55063295": [108, 12, 16, 12, 202, 52, 4]}, {"55063304": [12, 16, 12, 202, 52, 4]}, {"55063311": [1, 12, 16, 12, 202, 52, 4]}, {"55063319": [2, 143, 191]}, {"55063323": [16, 39, 189]}, {"55063327": [24, 3, 224]}, {"55063331": [8]}, {"55063336": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 51, 212, 145, 10]}, {"55063351": [108, 52, 1]}, {"55063355": [255, 17, 65]}, {"55063359": [5]}, {"55063364": [1, 42, 72, 33, 145, 41]}, {"55063372": [21, 32]}, {"55063375": [28]}, {"55063380": [60, 9, 128, 64, 37, 41, 51, 199, 37, 41]}, {"55063391": [1, 145, 42]}, {"55063396": [17, 64]}, {"55063399": [19]}, {"55063404": [2, 10, 88, 33, 145, 107]}, {"55063411": [116, 52, 1]}, {"55063415": [255, 17, 97, 255, 248]}, {"55063424": [146, 12]}, {"55063427": [108, 17, 138, 255, 245]}, {"55063436": [146, 12]}, {"55063439": [109, 17, 138, 255, 242]}, {"55063448": [146, 12]}, {"55063451": [110, 17, 138, 255, 239]}, {"55063460": [161, 11]}, {"55063463": [105, 161, 10]}, {"55063467": [108, 16]}, {"55063471": [4]}, {"55063476": [52, 9]}, {"55063479": [255, 161, 9]}, {"55063483": [105, 161, 9]}, {"55063487": [108, 3, 224]}, {"55063491": [8]}, {"55063496": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063509": [1, 1, 1, 1, 1]}, {"55063515": [1, 1, 1, 1, 1]}, {"55063521": [1]}, {"55063523": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063533": [51, 8, 33, 32, 15]}, {"55063539": [71, 21, 234]}, {"55063543": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063555": [164]}, {"55063557": [15, 122, 3, 20, 64]}, {"55063563": [5, 52, 2, 72, 48, 21, 226]}, {"55063571": [7]}, {"55063576": [36, 25]}, {"55063579": [3, 16]}, {"55063583": [4, 52, 2, 99, 17, 21, 226]}, {"55063591": [2]}, {"55063596": [36, 25]}, {"55063599": [3, 3, 224]}, {"55063603": [8]}, {"55063608": [141, 173, 138, 160, 52, 2, 128]}, {"55063616": [16, 77]}, {"55063619": [2]}, {"55063624": [16]}, {"55063627": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063643": [1, 16, 64]}, {"55063647": [2]}, {"55063652": [16]}, {"55063655": [2, 52, 2]}, {"55063659": [1, 161, 226, 28, 191, 3, 224]}, {"55063667": [8]}, {"55063673": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063687": [164]}, {"55063689": [15, 122, 3, 20, 64]}, {"55063695": [5, 52, 2, 72, 48, 21, 226]}, {"55063703": [7]}, {"55063708": [36, 25]}, {"55063711": [3, 16]}, {"55063715": [4, 52, 2, 99, 17, 21, 226]}, {"55063723": [2]}, {"55063728": [36, 25]}, {"55063731": [3, 3, 224]}, {"55063735": [8]}, {"55063740": [20, 64]}, {"55063743": [14]}, {"55063748": [52, 1]}, {"55063751": [24, 20, 129]}, {"55063755": [11, 60, 10, 128, 18, 37, 74, 165, 208, 129, 72]}, {"55063767": [166, 49, 8]}, {"55063771": [32, 17]}, {"55063775": [6, 52, 2]}, {"55063780": [129, 72]}, {"55063783": [123, 52, 1]}, {"55063787": [7, 17, 1]}, {"55063791": [2, 52, 2]}, {"55063795": [1, 52, 2]}, {"55063800": [3, 224]}, {"55063803": [8]}, {"55063808": [162, 37]}, {"55063811": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063823": [4, 142, 10]}, {"55063828": [17, 64]}, {"55063831": [11]}, {"55063837": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063849": [24, 194, 2, 23]}, {"55063855": [3, 49, 89]}, {"55063859": [255, 129, 234]}, {"55063864": [3, 42, 200, 37, 8, 16, 13, 67, 161, 249]}, {"55063876": [3, 224]}, {"55063879": [8]}] \ No newline at end of file diff --git a/version.py b/version.py index aacd19b48..e175d04dc 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.29 f.LUM' +__version__ = '2.15.30 f.LUM' From 6a2afb8bcb5664d080f095229ac7395f45f3b5c5 Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 17 Aug 2018 19:44:37 -0400 Subject: [PATCH 306/755] Fix Market Potion Shop softlock --- ItemList.py | 6 +++--- Items.py | 4 ++-- Rom.py | 62 ++++++++++++++++++++++++----------------------------- version.py | 2 +- 4 files changed, 34 insertions(+), 40 deletions(-) diff --git a/ItemList.py b/ItemList.py index 0781b6c84..93eebcc1a 100644 --- a/ItemList.py +++ b/ItemList.py @@ -350,10 +350,10 @@ def get_pool_core(world): else: placed_items['Gerudo Fortress Membership Card'] = 'Gerudo Membership Card' - pool.extend(['Buy Deku Nut (5)'] + ['Buy Arrows (30)'] + ['Buy Arrows (50)'] + ['Buy Bombs (5)'] + ['Buy Deku Nut (10)'] + ['Buy Deku Stick (1)'] + ['Buy Bombs (10)'] + + pool.extend(['Buy Deku Nut (5)'] + ['Buy Arrows (30)'] + ['Buy Bombs (5)'] + ['Buy Deku Nut (10)'] + ['Buy Deku Stick (1)'] + ['Buy Bombs (10)'] + ['Buy Fish'] + ['Buy Red Potion'] + ['Buy Green Potion'] + ['Buy Hylian Shield'] + ['Buy Deku Shield'] + ['Buy Goron Tunic'] + ['Buy Zora Tunic'] + - ['Buy Heart'] + ['Buy Bombchu (10)'] + ['Buy Bombchu (20)'] + ['Buy Bombchu (5)'] + ['Buy Deku Seeds (30)'] + ['Sold Out'] * 17 + ['Buy Blue Fire'] + ['Buy Bottle Bug'] + - ['Buy Fairy\'s Spirit'] + ['Buy Arrow (10)'] + ['Buy Bombs (20)'] + ['Buy Bombs (30)'] + ['Rupees (5)'] * 14) + ['Buy Heart'] + ['Buy Bombchu (10)'] + ['Buy Bombchu (20)'] + ['Buy Bombchu (5)'] + ['Buy Deku Seeds (30)'] + ['Sold Out'] * 19 + ['Buy Blue Fire'] + ['Buy Bottle Bug'] + + ['Buy Fairy\'s Spirit'] + ['Buy Arrow (10)'] + ['Buy Bombs (20)'] + ['Rupees (5)'] * 14) pool.extend(alwaysitems) for _ in range(normal_bottle_count): diff --git a/Items.py b/Items.py index 859b9db94..545a78bd8 100644 --- a/Items.py +++ b/Items.py @@ -194,7 +194,7 @@ def __init__(self, model, gid, price): 'Triforce': (True, False, 'Event', None, None, None, None), 'Buy Deku Nut (5)': (False, True, 'Shop', None, 0x00, 0x00BB, 0x12), 'Buy Arrows (30)': (False, True, 'Shop', None, 0x01, 0x00D8, 0x26), - 'Buy Arrows (50)': (False, True, 'Shop', None, 0x02, 0x00D8, 0x27), + #'Buy Arrows (50)': (False, True, 'Shop', None, 0x02, 0x00D8, 0x27), 'Buy Bombs (5)': (False, True, 'Shop', None, 0x03, 0x00CE, 0x20), 'Buy Deku Nut (10)': (False, True, 'Shop', None, 0x04, 0x00BB, 0x12), 'Buy Deku Stick (1)': (False, True, 'Shop', None, 0x05, 0x00C7, 0x1B), @@ -218,7 +218,7 @@ def __init__(self, model, gid, price): 'Buy Fairy\'s Spirit': (False, True, 'Shop', None, 0x2B, 0x0177, 0x6B), 'Buy Arrow (10)': (False, True, 'Shop', None, 0x2C, 0x00D8, 0x25), 'Buy Bombs (20)': (False, True, 'Shop', None, 0x2D, 0x00CE, 0x20), - 'Buy Bombs (30)': (False, True, 'Shop', None, 0x2E, 0x00CE, 0x20), + #'Buy Bombs (30)': (False, True, 'Shop', None, 0x2E, 0x00CE, 0x20), } item_data = { diff --git a/Rom.py b/Rom.py index 009d5e845..fb1c23789 100644 --- a/Rom.py +++ b/Rom.py @@ -1263,37 +1263,27 @@ def write_save_table(rom): rom.write_bytes(0xCA3EA2, [item_data[item.name][3][0], item_data[item.name][3][1]]) rom.write_bytes(0xCA3EA6, [item_data[item.name][3][2], item_data[item.name][3][3]]) - if world.bombchus_in_logic: - # add a cheaper bombchu pack to the bombchu shop - # describe - add_message(messages, '\x08\x05\x41Bombchu (5 pieces) 60 Rupees\x01\x05\x40This looks like a toy mouse, but\x01it\'s actually a self-propelled time\x01bomb!\x09\x0A', 0x80FE, 0x03) - # purchase - add_message(messages, '\x08Bombchu 5 Pieces 60 Rupees\x01\x01\x1B\x05\x42Buy\x01Don\'t buy\x05\x40\x09', 0x80FF, 0x03) - rbl_bombchu = shop_items[0x0018] - rbl_bombchu.price = 60 - rbl_bombchu.pieces = 5 - rbl_bombchu.get_item_id = 0x006A - rbl_bombchu.description_message = 0x80FE - rbl_bombchu.purchase_message = 0x80FF - - # Reduce 10 Pack Bombchus from 100 to 99 Rupees - shop_items[0x0015].price = 99 - shop_items[0x0019].price = 99 - shop_items[0x001C].price = 99 - update_message_by_id(messages, shop_items[0x001C].description_message, "\x08\x05\x41Bombchu (10 pieces) 99 Rupees\x01\x05\x40This looks like a toy mouse, but\x01it's actually a self-propelled time\x01bomb!\x09\x0A") - update_message_by_id(messages, shop_items[0x001C].purchase_message, "\x08Bombchu 10 pieces 100 Rupees\x09\x01\x01\x1B\x05\x42Buy\x01Don't buy\x05\x40") - - #Fix bombchu chest animations - chestAnimations = { - 0x6A: 0x28, #0xD8 #Bombchu (5) - 0x03: 0x28, #0xD8 #Bombchu (10) - 0x6B: 0x28, #0xD8 #Bombchu (20) - } - for item_id, gfx_id in chestAnimations.items(): - rom.write_byte(0xBEEE8E + (item_id * 6) + 2, gfx_id) - free_shop_ids = list(unused_shop_ids) + # add a cheaper bombchu pack to the bombchu shop + # describe + add_message(messages, '\x08\x05\x41Bombchu (5 pieces) 60 Rupees\x01\x05\x40This looks like a toy mouse, but\x01it\'s actually a self-propelled time\x01bomb!\x09\x0A', 0x80FE, 0x03) + # purchase + add_message(messages, '\x08Bombchu 5 Pieces 60 Rupees\x01\x01\x1B\x05\x42Buy\x01Don\'t buy\x05\x40\x09', 0x80FF, 0x03) + rbl_bombchu = shop_items[0x0018] + rbl_bombchu.price = 60 + rbl_bombchu.pieces = 5 + rbl_bombchu.get_item_id = 0x006A + rbl_bombchu.description_message = 0x80FE + rbl_bombchu.purchase_message = 0x80FF + + # Reduce 10 Pack Bombchus from 100 to 99 Rupees + shop_items[0x0015].price = 99 + shop_items[0x0019].price = 99 + shop_items[0x001C].price = 99 + update_message_by_id(messages, shop_items[0x001C].description_message, "\x08\x05\x41Bombchu (10 pieces) 99 Rupees\x01\x05\x40This looks like a toy mouse, but\x01it's actually a self-propelled time\x01bomb!\x09\x0A") + update_message_by_id(messages, shop_items[0x001C].purchase_message, "\x08Bombchu 10 pieces 100 Rupees\x09\x01\x01\x1B\x05\x42Buy\x01Don't buy\x05\x40") + # kokiri shop shop_objs = place_shop_items(rom, shop_items, messages, free_shop_ids, world.get_region('Kokiri Shop').locations) @@ -1359,6 +1349,11 @@ def write_save_table(rom): 0x4F: 0xED, #0x13 #Heart Container 0x76: 0xEC, #0x14 #WINNER! Piece of Heart } + if world.bombchus_in_logic: + #Fix bombchu chest animations + chestAnimations[0x6A] = 0x28 #0xD8 #Bombchu (5) + chestAnimations[0x03] = 0x28 #0xD8 #Bombchu (10) + chestAnimations[0x6B] = 0x28 #0xD8 #Bombchu (20) for item_id, gfx_id in chestAnimations.items(): rom.write_byte(0xBEEE8E + (item_id * 6) + 2, gfx_id) @@ -1738,8 +1733,7 @@ def update_chest_sizes(rom, override_table): default = (default & 0x0FFF) | newChestType rom.write_int16(address, default) - -unused_shop_ids = [0x11, 0x12, 0x13, 0x14, 0x17, 0x19, 0x1A, 0x1B, 0x1C, 0x29, 0x2A, 0x2F, 0x30, 0x31] +unused_shop_ids = [0x02, 0x11, 0x12, 0x17, 0x19, 0x1A, 0x1B, 0x1C, 0x29, 0x2A, 0x2E, 0x2F, 0x30, 0x31] def place_shop_items(rom, shop_items, messages, free_shop_ids, locations): shop_objs = { 0x0148 } # Sold Out messages @@ -1759,9 +1753,9 @@ def place_shop_items(rom, shop_items, messages, free_shop_ids, locations): shop_item.func2 = 0x808636B8 shop_item.func4 = 0x80863FB4 - message_id = unused_shop_ids.index(shop_id) * 2 - shop_item.description_message = 0x8000 | message_id - shop_item.purchase_message = 0x8000 | message_id + 1 + message_id = unused_shop_ids.index(shop_id) * 2 + shop_item.description_message = 0x8100 + message_id + shop_item.purchase_message = 0x8100 + message_id + 1 add_message(messages, '\x08\x05\x41%s %d Rupees\x01\x05\x40Special deal! ONE LEFT!\x01Get it while it lasts!\x09\x0A\x02' % (location.item.name, location.item.price), shop_item.description_message, 0x03) add_message(messages, '\x08%s %d Rupees\x09\x01\x01\x1B\x05\x42Buy\x01Don\'t buy\x05\x40\x02' % (location.item.name, location.item.price), shop_item.purchase_message, 0x03) diff --git a/version.py b/version.py index bd3609be4..0af1827a3 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.27 f.LUM' +__version__ = '2.15.28 f.LUM' From 97b82fd9f438cbc1a56e2738775f2b70fbe5cd63 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 19 Aug 2018 00:47:39 -0400 Subject: [PATCH 307/755] Made version checking threaded, moved check from main.py to ootrandimzer.py --- Gui.py | 12 +++++++----- GuiUtils.py | 14 +++++++++++--- Main.py | 9 ++------- OoTRandomizer.py | 11 ++++++++++- Utils.py | 20 +++++++++----------- version.py | 2 +- 6 files changed, 40 insertions(+), 28 deletions(-) diff --git a/Gui.py b/Gui.py index 49ce87c28..5cfb153c6 100755 --- a/Gui.py +++ b/Gui.py @@ -9,7 +9,7 @@ from urllib.parse import urlparse from urllib.request import urlopen -from GuiUtils import ToolTips, set_icon, BackgroundTaskProgress, Dialog +from GuiUtils import ToolTips, set_icon, BackgroundTask, BackgroundTaskProgress, Dialog from Main import main from Utils import is_bundled, local_path, default_output_path, open_file, check_version from Rom import get_tunic_color_options, get_navi_color_options @@ -17,7 +17,6 @@ from version import __version__ as ESVersion import webbrowser - def settings_to_guivars(settings, guivars): for info in setting_infos: name = info.name @@ -419,9 +418,12 @@ def generateRom(): show_settings() def gui_check_version(): - version_error = check_version(guivars['checked_version'].get()) - if version_error: - dialog = Dialog(mainWindow, title="Version Error", question=version_error, oktext='Don\'t show again', canceltext='OK') + task = BackgroundTask(mainWindow, check_version, guivars['checked_version'].get()) + while task.running: + mainWindow.update() + + if task.status: + dialog = Dialog(mainWindow, title="Version Error", question=task.status, oktext='Don\'t show again', canceltext='OK') if dialog.result: guivars['checked_version'].set(ESVersion) diff --git a/GuiUtils.py b/GuiUtils.py index 085ce1f55..cea2793d0 100644 --- a/GuiUtils.py +++ b/GuiUtils.py @@ -18,6 +18,7 @@ def set_icon(window): class BackgroundTask(object): def __init__(self, window, code_to_run, code_arg): self.window = window + self.status = None self.queue = queue.Queue() self.running = True self.task = threading.Thread(target=self.try_run, args=(code_to_run, code_arg)) @@ -27,15 +28,17 @@ def __init__(self, window, code_to_run, code_arg): def try_run(self, code_to_run, code_arg): self.update_status('Starting Thread') try: - code_to_run(code_arg, self) - self.update_status('Success: Rom patched successfully') + if isinstance(code_arg, tuple): + code_to_run(*code_arg) + else: + code_to_run(code_arg) except Exception as e: self.update_status('Error: ' + str(e)) traceback.print_exc() self.queue_event(self.stop) def update_status(self, text): - pass + self.status = text def stop(self): self.running = False @@ -96,6 +99,11 @@ def __init__(self, parent, title, code_to_run, code_arg): self.window.geometry("+%d+%d" % (parent.winfo_rootx()+50, parent.winfo_rooty()+150)) self.window.focus_set() + if isinstance(code_arg, tuple): + code_arg = tuple(list(code_arg) + [self]) + else: + code_arg = (code_arg, self) + super().__init__(self.window, code_to_run, code_arg) self.parent.wait_window(self.window) diff --git a/Main.py b/Main.py index 0fe8b87a0..6210147ff 100644 --- a/Main.py +++ b/Main.py @@ -17,7 +17,7 @@ from Rules import set_rules from Fill import distribute_items_restrictive from ItemList import generate_itempool -from Utils import default_output_path, check_version +from Utils import default_output_path from version import __version__ class dummy_window(): @@ -34,11 +34,6 @@ def main(settings, window=dummy_window()): logger = logging.getLogger('') - if not settings.check_version: - version_error = check_version(settings.checked_version) - if version_error: - logger.warning(version_error) - # initialize the world worlds = [] @@ -143,7 +138,7 @@ def main(settings, window=dummy_window()): worlds[settings.player_num - 1].spoiler.to_file(os.path.join(output_dir, '%s_Spoiler.txt' % outfilebase)) window.update_progress(100) - window.update_status('Done. Enjoy.') + window.update_status('Success: Rom patched successfully') logger.info('Done. Enjoy.') logger.debug('Total Time: %s', time.clock() - start) diff --git a/OoTRandomizer.py b/OoTRandomizer.py index bafbaea88..c798c8198 100644 --- a/OoTRandomizer.py +++ b/OoTRandomizer.py @@ -8,7 +8,7 @@ from Gui import guiMain from Main import main -from Utils import is_bundled, close_console +from Utils import is_bundled, close_console, check_version, VersionError from Rom import get_tunic_color_options, get_navi_color_options from Settings import get_settings_from_command_line_args @@ -41,6 +41,15 @@ def start(): loglevel = {'error': logging.ERROR, 'info': logging.INFO, 'warning': logging.WARNING, 'debug': logging.DEBUG}[args_loglevel] logging.basicConfig(format='%(message)s', level=loglevel) + logger = logging.getLogger('') + if not settings.check_version: + try: + version_error = check_version(settings.checked_version) + except VersionError as e: + logger.warning(str(e)) + except (URLError, HTTPError) as e: + logger.warning("Could not fetch latest version: " + str(e)) + if gui: guiMain(settings) elif settings.count is not None: diff --git a/Utils.py b/Utils.py index 934690d25..b04465383 100644 --- a/Utils.py +++ b/Utils.py @@ -67,15 +67,13 @@ def compare_version(a, b): return -1 return 0 +class VersionError(Exception): + pass + def check_version(checked_version): - try: - with urllib.request.urlopen('http://raw.githubusercontent.com/TestRunnerSRL/OoT-Randomizer/Dev/version.py') as versionurl: - version = versionurl.read() - version = re.search(".__version__ = '(.+)'", str(version)).group(1) - - if compare_version(version, __version__) > 0 and compare_version(checked_version, __version__) < 0: - return ("You do not seem to be on the latest version!\nYou are on version " + __version__ + ", and the latest is version " + version + ".") - except URLError as e: - return ("Could not fetch latest version: " + e.reason) - except HTTPError as e: - return ("Could not fetch latest version. Error Code: " + e.code) \ No newline at end of file + with urllib.request.urlopen('http://raw.githubusercontent.com/TestRunnerSRL/OoT-Randomizer/Dev/version.py') as versionurl: + version = versionurl.read() + version = re.search(".__version__ = '(.+)'", str(version)).group(1) + + if compare_version(version, __version__) > 0 and compare_version(checked_version, __version__) < 0: + raise VersionError("You do not seem to be on the latest version!\nYou are on version " + __version__ + ", and the latest is version " + version + ".") diff --git a/version.py b/version.py index e175d04dc..47f69432c 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.30 f.LUM' +__version__ = '2.15.31 f.LUM' From 3e1eaf58ee988aa14a32318c0e9ec9f2cb46de82 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 19 Aug 2018 01:00:34 -0400 Subject: [PATCH 308/755] Fixed throwing version error message when no error --- GuiUtils.py | 21 ++++++--------------- version.py | 2 +- 2 files changed, 7 insertions(+), 16 deletions(-) diff --git a/GuiUtils.py b/GuiUtils.py index cea2793d0..397ce0906 100644 --- a/GuiUtils.py +++ b/GuiUtils.py @@ -16,22 +16,18 @@ def set_icon(window): # some which may be platform specific, or depend on if the TCL library was compiled without # multithreading support. Therefore I will assume it is not thread safe to avoid any possible problems class BackgroundTask(object): - def __init__(self, window, code_to_run, code_arg): + def __init__(self, window, code_to_run, *code_arg): self.window = window self.status = None self.queue = queue.Queue() self.running = True - self.task = threading.Thread(target=self.try_run, args=(code_to_run, code_arg)) + self.task = threading.Thread(target=self.try_run, args=(code_to_run, *code_arg)) self.task.start() self.process_queue() - def try_run(self, code_to_run, code_arg): - self.update_status('Starting Thread') + def try_run(self, code_to_run, *code_arg): try: - if isinstance(code_arg, tuple): - code_to_run(*code_arg) - else: - code_to_run(code_arg) + code_to_run(*code_arg) except Exception as e: self.update_status('Error: ' + str(e)) traceback.print_exc() @@ -64,7 +60,7 @@ def process_queue(self): class BackgroundTaskProgress(BackgroundTask): - def __init__(self, parent, title, code_to_run, code_arg): + def __init__(self, parent, title, code_to_run, *code_arg): self.parent = parent self.window = tk.Toplevel(parent) self.window['padx'] = 5 @@ -99,12 +95,7 @@ def __init__(self, parent, title, code_to_run, code_arg): self.window.geometry("+%d+%d" % (parent.winfo_rootx()+50, parent.winfo_rooty()+150)) self.window.focus_set() - if isinstance(code_arg, tuple): - code_arg = tuple(list(code_arg) + [self]) - else: - code_arg = (code_arg, self) - - super().__init__(self.window, code_to_run, code_arg) + super().__init__(self.window, code_to_run, *tuple(list(code_arg) + [self])) self.parent.wait_window(self.window) diff --git a/version.py b/version.py index 47f69432c..e84e976ae 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.31 f.LUM' +__version__ = '2.15.32 f.LUM' From f419ff5946f632dc89495b03947e88c58f8f1a89 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 19 Aug 2018 02:05:37 -0400 Subject: [PATCH 309/755] Fix shop model for Bottles --- Items.py | 18 +++++++++--------- version.py | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Items.py b/Items.py index 545a78bd8..44a7895e8 100644 --- a/Items.py +++ b/Items.py @@ -47,17 +47,17 @@ def __init__(self, model, gid, price): 'Fairy Ocarina': (True, False, None, 0x0760, 0x3B, 0x010E, 0x46), 'Ocarina of Time': (True, False, None, 0x0180, 0x0C, 0x00DE, 0x2F), 'Ocarina': (True, False, None, 0x0180, 0xC3, 0x00DE, 0x2F), - 'Bottle': (True, False, None, 0x01E0, 0x0F, 0x00C5, 0x01), + 'Bottle': (True, False, None, 0x01E0, 0x0F, 0x00C6, 0x01), 'Bottle with Letter': (True, False, None, 0x02A0, 0x15, 0x010B, 0x45), 'Bottle with Milk': (True, False, None, 0x0280, 0x14, 0x00DF, 0x30), - 'Bottle with Red Potion': (True, False, None, None, 0x89, 0x00C5, 0x01), - 'Bottle with Green Potion': (True, False, None, None, 0x8A, 0x00C5, 0x01), - 'Bottle with Blue Potion': (True, False, None, None, 0x8B, 0x00C5, 0x01), - 'Bottle with Fairy': (True, False, None, None, 0x8C, 0x00C5, 0x01), - 'Bottle with Fish': (True, False, None, None, 0x8D, 0x00C5, 0x01), - 'Bottle with Blue Fire': (True, False, None, None, 0x8E, 0x00C5, 0x01), - 'Bottle with Bugs': (True, False, None, None, 0x8F, 0x00C5, 0x01), - 'Bottle with Poe': (True, False, None, None, 0x91, 0x00C5, 0x01), + 'Bottle with Red Potion': (True, False, None, None, 0x89, 0x00C6, 0x01), + 'Bottle with Green Potion': (True, False, None, None, 0x8A, 0x00C6, 0x01), + 'Bottle with Blue Potion': (True, False, None, None, 0x8B, 0x00C6, 0x01), + 'Bottle with Fairy': (True, False, None, None, 0x8C, 0x00C6, 0x01), + 'Bottle with Fish': (True, False, None, None, 0x8D, 0x00C6, 0x01), + 'Bottle with Blue Fire': (True, False, None, None, 0x8E, 0x00C6, 0x01), + 'Bottle with Bugs': (True, False, None, None, 0x8F, 0x00C6, 0x01), + 'Bottle with Poe': (True, False, None, None, 0x91, 0x00C6, 0x01), 'Weird Egg': (True, False, None, 0x08E0, 0x47, 0x00DA, 0x29), 'Pocket Egg': (True, False, None, 0x03A0, 0x1D, 0x00DA, 0x29), 'Pocket Cucco': (True, False, None, 0x03C0, 0x1E, 0x0109, 0x44), diff --git a/version.py b/version.py index 0af1827a3..aacd19b48 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.28 f.LUM' +__version__ = '2.15.29 f.LUM' From 5a7ad91325cae3d82a0fce65afd5b8fd3ebbf09d Mon Sep 17 00:00:00 2001 From: AmazingAmpharos Date: Mon, 20 Aug 2018 01:26:48 -0500 Subject: [PATCH 310/755] Change Big Poe convenience feature to selectable Instead of simply making the Big Poe requirement 1, this now allows the user to specify any requirement 1-10 or to make the requirement random. I also fixed several minor typos. --- Messages.py | 2 +- Rom.py | 20 +++++++++++++------- Settings.py | 54 ++++++++++++++++++++++++++++++++++------------------- 3 files changed, 49 insertions(+), 27 deletions(-) diff --git a/Messages.py b/Messages.py index 8253aecf7..98135a850 100644 --- a/Messages.py +++ b/Messages.py @@ -90,7 +90,7 @@ 0x0030: "\x08\x13\x06You found the \x05\x41Fairy Slingshot\x05\x40!", 0x0031: "\x08\x13\x03You found the \x05\x41Fairy Bow\x05\x40!", 0x0032: "\x08\x13\x02You got \x05\x41Bombs\x05\x40!\x01If you see something\x01suspicious, bomb it!", - 0x0033: "\x08\x13\x09You got \x05\x41Bombchu\x05\x40!", + 0x0033: "\x08\x13\x09You got \x05\x41Bombchus\x05\x40!", 0x0034: "\x08\x13\x01You got a \x05\x41Deku Nut\x05\x40!", 0x0035: "\x08\x13\x0EYou found the \x05\x41Boomerang\x05\x40!", 0x0036: "\x08\x13\x0AYou found the \x05\x41Hookshot\x05\x40!\x01It's a spring-loaded chain that\x01you can cast out to hook things.", diff --git a/Rom.py b/Rom.py index 454385b79..1b94dcc94 100644 --- a/Rom.py +++ b/Rom.py @@ -1131,13 +1131,19 @@ def write_save_table(rom): shop_items = read_shop_items(rom) remove_unused_messages(messages) - # only one big poe needs to be caught to get the buyer's reward - if world.only_one_big_poe: - # change the value checked (in code) from 1000 to 100 - rom.write_bytes(0xEE69CE, [0x00, 0x64]) - # update dialogue - update_message_by_id(messages, 0x70f7, "\x1AOh, you brought a Poe today!\x04\x1AHmmmm!\x04\x1AVery interesting!\x01This is a \x05\x41Big Poe\x05\x40!\x04\x1AI'll buy it for \x05\x4150 Rupees\x05\x40.\x04On top of that, I'll put \x05\x41100\x01points \x05\x40on your card.\x04\x1AIf you earn \x05\x41100 points\x05\x40, you'll\x01be a happy man! Heh heh.") - update_message_by_id(messages, 0x70f8, "\x1AWait a minute! WOW!\x04\x1AYou have earned \x05\x41100 points\x05\x40!\x04\x1AYoung man, you are a genuine\x01\x05\x41Ghost Hunter\x05\x40!\x04\x1AIs that what you expected me to\x01say? Heh heh heh!\x04\x1ABecause of you, I have extra\x01inventory of \x05\x41Big Poes\x05\x40, so this will\x01be the last time I can buy a \x01ghost.\x04\x1AYou're thinking about what I \x01promised would happen when you\x01earned 100 points. Heh heh.\x04\x1ADon't worry, I didn't forget.\x01Just take this.") + # Set Big Poe count to get reward from buyer + if world.big_poe_count == 'random': + world.big_poe_count = random.randint(1, 10) + poe_points = world.big_poe_count * 0x64 + poe_points_high = poe_points >> 8 + poe_points_low = poe_points & 0x00FF + rom.write_bytes(0xEE69CE, [poe_points_high, poe_points_low]) + # update dialogue + if world.big_poe_count != 10: + new_message = "\x1AOh, you brought a Poe today!\x04\x1AHmmmm!\x04\x1AVery interesting!\x01This is a \x05\x41Big Poe\x05\x40!\x04\x1AI'll buy it for \x05\x4150 Rupees\x05\x40.\x04On top of that, I'll put \x05\x41100\x01points \x05\x40on your card.\x04\x1AIf you earn \x05\x41"+str(world.big_poe_count)+"00 points\x05\x40, you'll\x01be a happy man! Heh heh." + update_message_by_id(messages, 0x70f7, new_message) + new_message = "\x1AWait a minute! WOW!\x04\x1AYou have earned \x05\x41"+str(world.big_poe_count)+"00 points\x05\x40!\x04\x1AYoung man, you are a genuine\x01\x05\x41Ghost Hunter\x05\x40!\x04\x1AIs that what you expected me to\x01say? Heh heh heh!\x04\x1ABecause of you, I have extra\x01inventory of \x05\x41Big Poes\x05\x40, so this will\x01be the last time I can buy a \x01ghost.\x04\x1AYou're thinking about what I \x01promised would happen when you\x01earned "+str(world.big_poe_count)+"00 points. Heh heh.\x04\x1ADon't worry, I didn't forget.\x01Just take this." + update_message_by_id(messages, 0x70f8, new_message) # Sets hooks for gossip stone changes if world.hints != 'none': diff --git a/Settings.py b/Settings.py index 5837e9ace..9a8ccc8a4 100644 --- a/Settings.py +++ b/Settings.py @@ -448,7 +448,7 @@ def __init__(self, settings_dict): 'default': 'unchecked', 'tooltip':'''\ The crawlspace into Hyrule Castle goes - straight to zelda, skipping the guards. + straight to Zelda, skipping the guards. ''' }), Setting_Info('no_epona_race', bool, 1, True, @@ -465,23 +465,7 @@ def __init__(self, settings_dict): 'default': 'unchecked', 'tooltip':'''\ Epona can be summoned with Epona's Song - without needed to race Ingo. - ''' - }), - Setting_Info('only_one_big_poe', bool, 1, True, - { - 'help': '''\ - The Poe buyer will give a reward for turning in a single Big Poe. - ''', - 'action': 'store_true' - }, - { - 'text': 'Big Poe Reward only requires one Big Poe', - 'group': 'convenience', - 'widget': 'Checkbutton', - 'default': 'unchecked', - 'tooltip':'''\ - Makes Big Poes less tedious. + without needing to race Ingo. ''' }), Setting_Info('fast_chests', bool, 1, True, @@ -501,6 +485,38 @@ def __init__(self, settings_dict): the animation time is slow for major items. ''' }), + Setting_Info('big_poe_count', str, 4, True, + { + 'default': 'random', + 'const': 'random', + 'nargs': '?', + 'choices': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 'random'], + 'help': '''\ + Select the number of Big Poes to receive an item from the buyer. + ''' + }, + { + 'text': 'Big Poe target count', + 'group': 'convenience', + 'widget': 'Combobox', + 'default': 'Random', + 'options': { + 'Random': 'random', + '1': 1, + '2': 2, + '3': 3, + '4': 4, + '5': 5, + '6': 6, + '7': 7, + '8': 8, + '9': 9, + '10': 10 + }, + 'tooltip': '''\ + The Poe buyer will give a reward for turning in the chosen number of Big Poes. + ''', + }), Setting_Info('free_scarecrow', bool, 1, True, { 'help': '''\ @@ -695,7 +711,7 @@ def __init__(self, settings_dict): 'help': '''\ Dungeon items can appear outside of their respective dungeon. - off: Dungeon items will be in their Dungeon + off: Dungeon items will be in their dungeons mapcompass: Maps and Compasses can appear anywhere keysanity: Dungeon items can appear anywhere ''' From 3c34d92410c5655de1091e16d97d40c6c79acabc Mon Sep 17 00:00:00 2001 From: AmazingAmpharos Date: Mon, 20 Aug 2018 01:36:22 -0500 Subject: [PATCH 311/755] Handle typing properly for Big Poe feature I tried to do this in the sloppiest way before and hope it would somehow just work. This is doing it right. --- Rom.py | 1 + Settings.py | 22 +++++++++++----------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/Rom.py b/Rom.py index 1b94dcc94..a4871b39d 100644 --- a/Rom.py +++ b/Rom.py @@ -1134,6 +1134,7 @@ def write_save_table(rom): # Set Big Poe count to get reward from buyer if world.big_poe_count == 'random': world.big_poe_count = random.randint(1, 10) + world.big_poe_count = int(world.big_poe_count) poe_points = world.big_poe_count * 0x64 poe_points_high = poe_points >> 8 poe_points_low = poe_points & 0x00FF diff --git a/Settings.py b/Settings.py index 9a8ccc8a4..fdf206693 100644 --- a/Settings.py +++ b/Settings.py @@ -490,7 +490,7 @@ def __init__(self, settings_dict): 'default': 'random', 'const': 'random', 'nargs': '?', - 'choices': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 'random'], + 'choices': ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'random'], 'help': '''\ Select the number of Big Poes to receive an item from the buyer. ''' @@ -502,16 +502,16 @@ def __init__(self, settings_dict): 'default': 'Random', 'options': { 'Random': 'random', - '1': 1, - '2': 2, - '3': 3, - '4': 4, - '5': 5, - '6': 6, - '7': 7, - '8': 8, - '9': 9, - '10': 10 + '1': '1', + '2': '2', + '3': '3', + '4': '4', + '5': '5', + '6': '6', + '7': '7', + '8': '8', + '9': '9', + '10': '10' }, 'tooltip': '''\ The Poe buyer will give a reward for turning in the chosen number of Big Poes. From ede6c7c020d605741ee13520401e18d0b6842b82 Mon Sep 17 00:00:00 2001 From: AmazingAmpharos Date: Mon, 20 Aug 2018 01:48:41 -0500 Subject: [PATCH 312/755] Slight improvement I just reshuffled when I cast things to int and str to be a little more concise and I think on average more efficient. --- Rom.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/Rom.py b/Rom.py index a4871b39d..f0e559f7c 100644 --- a/Rom.py +++ b/Rom.py @@ -1133,17 +1133,16 @@ def write_save_table(rom): # Set Big Poe count to get reward from buyer if world.big_poe_count == 'random': - world.big_poe_count = random.randint(1, 10) - world.big_poe_count = int(world.big_poe_count) - poe_points = world.big_poe_count * 0x64 + world.big_poe_count = str(random.randint(1, 10)) + poe_points = int(world.big_poe_count) * 0x64 poe_points_high = poe_points >> 8 poe_points_low = poe_points & 0x00FF rom.write_bytes(0xEE69CE, [poe_points_high, poe_points_low]) # update dialogue if world.big_poe_count != 10: - new_message = "\x1AOh, you brought a Poe today!\x04\x1AHmmmm!\x04\x1AVery interesting!\x01This is a \x05\x41Big Poe\x05\x40!\x04\x1AI'll buy it for \x05\x4150 Rupees\x05\x40.\x04On top of that, I'll put \x05\x41100\x01points \x05\x40on your card.\x04\x1AIf you earn \x05\x41"+str(world.big_poe_count)+"00 points\x05\x40, you'll\x01be a happy man! Heh heh." + new_message = "\x1AOh, you brought a Poe today!\x04\x1AHmmmm!\x04\x1AVery interesting!\x01This is a \x05\x41Big Poe\x05\x40!\x04\x1AI'll buy it for \x05\x4150 Rupees\x05\x40.\x04On top of that, I'll put \x05\x41100\x01points \x05\x40on your card.\x04\x1AIf you earn \x05\x41"+world.big_poe_count+"00 points\x05\x40, you'll\x01be a happy man! Heh heh." update_message_by_id(messages, 0x70f7, new_message) - new_message = "\x1AWait a minute! WOW!\x04\x1AYou have earned \x05\x41"+str(world.big_poe_count)+"00 points\x05\x40!\x04\x1AYoung man, you are a genuine\x01\x05\x41Ghost Hunter\x05\x40!\x04\x1AIs that what you expected me to\x01say? Heh heh heh!\x04\x1ABecause of you, I have extra\x01inventory of \x05\x41Big Poes\x05\x40, so this will\x01be the last time I can buy a \x01ghost.\x04\x1AYou're thinking about what I \x01promised would happen when you\x01earned "+str(world.big_poe_count)+"00 points. Heh heh.\x04\x1ADon't worry, I didn't forget.\x01Just take this." + new_message = "\x1AWait a minute! WOW!\x04\x1AYou have earned \x05\x41"+world.big_poe_count+"00 points\x05\x40!\x04\x1AYoung man, you are a genuine\x01\x05\x41Ghost Hunter\x05\x40!\x04\x1AIs that what you expected me to\x01say? Heh heh heh!\x04\x1ABecause of you, I have extra\x01inventory of \x05\x41Big Poes\x05\x40, so this will\x01be the last time I can buy a \x01ghost.\x04\x1AYou're thinking about what I \x01promised would happen when you\x01earned "+world.big_poe_count+"00 points. Heh heh.\x04\x1ADon't worry, I didn't forget.\x01Just take this." update_message_by_id(messages, 0x70f8, new_message) # Sets hooks for gossip stone changes From aa45dccca04b5044b8932a82b18fdefc47856748 Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 20 Aug 2018 03:29:21 -0400 Subject: [PATCH 313/755] Made some minor changes to simplify code --- Rom.py | 12 +++++------- Settings.py | 3 ++- version.py | 2 +- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/Rom.py b/Rom.py index f0e559f7c..6abf8e85e 100644 --- a/Rom.py +++ b/Rom.py @@ -1133,16 +1133,14 @@ def write_save_table(rom): # Set Big Poe count to get reward from buyer if world.big_poe_count == 'random': - world.big_poe_count = str(random.randint(1, 10)) - poe_points = int(world.big_poe_count) * 0x64 - poe_points_high = poe_points >> 8 - poe_points_low = poe_points & 0x00FF - rom.write_bytes(0xEE69CE, [poe_points_high, poe_points_low]) + world.big_poe_count = random.randint(1, 10) + poe_points = world.big_poe_count * 100 + rom.write_int16(0xEE69CE, poe_points) # update dialogue if world.big_poe_count != 10: - new_message = "\x1AOh, you brought a Poe today!\x04\x1AHmmmm!\x04\x1AVery interesting!\x01This is a \x05\x41Big Poe\x05\x40!\x04\x1AI'll buy it for \x05\x4150 Rupees\x05\x40.\x04On top of that, I'll put \x05\x41100\x01points \x05\x40on your card.\x04\x1AIf you earn \x05\x41"+world.big_poe_count+"00 points\x05\x40, you'll\x01be a happy man! Heh heh." + new_message = "\x1AOh, you brought a Poe today!\x04\x1AHmmmm!\x04\x1AVery interesting!\x01This is a \x05\x41Big Poe\x05\x40!\x04\x1AI'll buy it for \x05\x4150 Rupees\x05\x40.\x04On top of that, I'll put \x05\x41100\x01points \x05\x40on your card.\x04\x1AIf you earn \x05\x41%d points\x05\x40, you'll\x01be a happy man! Heh heh." % poe_points update_message_by_id(messages, 0x70f7, new_message) - new_message = "\x1AWait a minute! WOW!\x04\x1AYou have earned \x05\x41"+world.big_poe_count+"00 points\x05\x40!\x04\x1AYoung man, you are a genuine\x01\x05\x41Ghost Hunter\x05\x40!\x04\x1AIs that what you expected me to\x01say? Heh heh heh!\x04\x1ABecause of you, I have extra\x01inventory of \x05\x41Big Poes\x05\x40, so this will\x01be the last time I can buy a \x01ghost.\x04\x1AYou're thinking about what I \x01promised would happen when you\x01earned "+world.big_poe_count+"00 points. Heh heh.\x04\x1ADon't worry, I didn't forget.\x01Just take this." + new_message = "\x1AWait a minute! WOW!\x04\x1AYou have earned \x05\x41%d points\x05\x40!\x04\x1AYoung man, you are a genuine\x01\x05\x41Ghost Hunter\x05\x40!\x04\x1AIs that what you expected me to\x01say? Heh heh heh!\x04\x1ABecause of you, I have extra\x01inventory of \x05\x41Big Poes\x05\x40, so this will\x01be the last time I can buy a \x01ghost.\x04\x1AYou're thinking about what I \x01promised would happen when you\x01earned %d points. Heh heh.\x04\x1ADon't worry, I didn't forget.\x01Just take this." % (poe_points, poe_points) update_message_by_id(messages, 0x70f8, new_message) # Sets hooks for gossip stone changes diff --git a/Settings.py b/Settings.py index fdf206693..e7ce6d472 100644 --- a/Settings.py +++ b/Settings.py @@ -514,7 +514,8 @@ def __init__(self, settings_dict): '10': '10' }, 'tooltip': '''\ - The Poe buyer will give a reward for turning in the chosen number of Big Poes. + The Poe buyer will give a reward for turning + in the chosen number of Big Poes. ''', }), Setting_Info('free_scarecrow', bool, 1, True, diff --git a/version.py b/version.py index e84e976ae..2858c3533 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.32 f.LUM' +__version__ = '2.15.33 f.LUM' From 98e42b60f7e3779c92aa1cbb328c4fdd7b82ced9 Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 20 Aug 2018 04:05:13 -0400 Subject: [PATCH 314/755] Fix shops not writing data to the correct addresses Fixes issue with Zora and Goron shops --- Regions.py | 114 +++++++++++++++++++++++++++-------------------------- version.py | 2 +- 2 files changed, 59 insertions(+), 57 deletions(-) diff --git a/Regions.py b/Regions.py index 3865d8fe9..33ce7cc7d 100644 --- a/Regions.py +++ b/Regions.py @@ -1,6 +1,8 @@ import collections from BaseClasses import Region, Location, Entrance, RegionType +def shop_address(shop_id, shelf_id): + return 0xC71ED0 + (0x40 * shop_id) + (0x08 * shelf_id) def create_regions(world): @@ -1010,60 +1012,60 @@ def _create_region(name, type, locations=None, exits=None): 'GS Desert Colossus Hill': (None, None, 0x04, 'GS Token', 0x15, 'Desert Colossus'), 'GS Desert Colossus Tree': (None, None, 0x08, 'GS Token', 0x15, 'Desert Colossus'), - 'Kokiri Shop Item 1': (0xC71ED0, None, 0x30, 'Shop', 0x2D, 'Kokiri Forest'), - 'Kokiri Shop Item 2': (0xC71ED8, None, 0x31, 'Shop', 0x2D, 'Kokiri Forest'), - 'Kokiri Shop Item 3': (0xC71EE0, None, 0x32, 'Shop', 0x2D, 'Kokiri Forest'), - 'Kokiri Shop Item 4': (0xC71EE8, None, 0x33, 'Shop', 0x2D, 'Kokiri Forest'), - 'Kokiri Shop Item 5': (0xC71EF0, None, 0x34, 'Shop', 0x2D, 'Kokiri Forest'), - 'Kokiri Shop Item 6': (0xC71EF8, None, 0x35, 'Shop', 0x2D, 'Kokiri Forest'), - 'Kokiri Shop Item 7': (0xC71F00, None, 0x36, 'Shop', 0x2D, 'Kokiri Forest'), - 'Kokiri Shop Item 8': (0xC71F08, None, 0x37, 'Shop', 0x2D, 'Kokiri Forest'), - 'Kakariko Potion Shop Item 1': (0xC71F10, None, 0x30, 'Shop', 0x30, 'Kakariko Village'), - 'Kakariko Potion Shop Item 2': (0xC71F18, None, 0x31, 'Shop', 0x30, 'Kakariko Village'), - 'Kakariko Potion Shop Item 3': (0xC71F20, None, 0x32, 'Shop', 0x30, 'Kakariko Village'), - 'Kakariko Potion Shop Item 4': (0xC71F28, None, 0x33, 'Shop', 0x30, 'Kakariko Village'), - 'Kakariko Potion Shop Item 5': (0xC71F30, None, 0x34, 'Shop', 0x30, 'Kakariko Village'), - 'Kakariko Potion Shop Item 6': (0xC71F38, None, 0x35, 'Shop', 0x30, 'Kakariko Village'), - 'Kakariko Potion Shop Item 7': (0xC71F40, None, 0x36, 'Shop', 0x30, 'Kakariko Village'), - 'Kakariko Potion Shop Item 8': (0xC71F48, None, 0x37, 'Shop', 0x30, 'Kakariko Village'), - 'Bombchu Shop Item 1': (0xC71F50, None, 0x30, 'Shop', 0x32, 'the market'), - 'Bombchu Shop Item 2': (0xC71F58, None, 0x31, 'Shop', 0x32, 'the market'), - 'Bombchu Shop Item 3': (0xC71F60, None, 0x32, 'Shop', 0x32, 'the market'), - 'Bombchu Shop Item 4': (0xC71F68, None, 0x33, 'Shop', 0x32, 'the market'), - 'Bombchu Shop Item 5': (0xC71F70, None, 0x34, 'Shop', 0x32, 'the market'), - 'Bombchu Shop Item 6': (0xC71F78, None, 0x35, 'Shop', 0x32, 'the market'), - 'Bombchu Shop Item 7': (0xC71F80, None, 0x36, 'Shop', 0x32, 'the market'), - 'Bombchu Shop Item 8': (0xC71F88, None, 0x37, 'Shop', 0x32, 'the market'), - 'Castle Town Potion Shop Item 1': (0xC71F90, None, 0x30, 'Shop', 0x31, 'the market'), - 'Castle Town Potion Shop Item 2': (0xC71F98, None, 0x31, 'Shop', 0x31, 'the market'), - 'Castle Town Potion Shop Item 3': (0xC71FA0, None, 0x32, 'Shop', 0x31, 'the market'), - 'Castle Town Potion Shop Item 4': (0xC71FA8, None, 0x33, 'Shop', 0x31, 'the market'), - 'Castle Town Potion Shop Item 5': (0xC71FB0, None, 0x34, 'Shop', 0x31, 'the market'), - 'Castle Town Potion Shop Item 6': (0xC71FB8, None, 0x35, 'Shop', 0x31, 'the market'), - 'Castle Town Potion Shop Item 7': (0xC71FC0, None, 0x36, 'Shop', 0x31, 'the market'), - 'Castle Town Potion Shop Item 8': (0xC71FC8, None, 0x37, 'Shop', 0x31, 'the market'), - 'Bazaar Item 1': (0xC71FD0, None, 0x30, 'Shop', 0x2C, 'the market'), - 'Bazaar Item 2': (0xC71FD8, None, 0x31, 'Shop', 0x2C, 'the market'), - 'Bazaar Item 3': (0xC71FE0, None, 0x32, 'Shop', 0x2C, 'the market'), - 'Bazaar Item 4': (0xC71FE8, None, 0x33, 'Shop', 0x2C, 'the market'), - 'Bazaar Item 5': (0xC71FF0, None, 0x34, 'Shop', 0x2C, 'the market'), - 'Bazaar Item 6': (0xC71FF8, None, 0x35, 'Shop', 0x2C, 'the market'), - 'Bazaar Item 7': (0xC72000, None, 0x36, 'Shop', 0x2C, 'the market'), - 'Bazaar Item 8': (0xC72008, None, 0x37, 'Shop', 0x2C, 'the market'), - 'Zora Shop Item 1': (0xC720D0, None, 0x30, 'Shop', 0x2F, 'Zora\'s Domain'), - 'Zora Shop Item 2': (0xC720D8, None, 0x31, 'Shop', 0x2F, 'Zora\'s Domain'), - 'Zora Shop Item 3': (0xC720E0, None, 0x32, 'Shop', 0x2F, 'Zora\'s Domain'), - 'Zora Shop Item 4': (0xC720E8, None, 0x33, 'Shop', 0x2F, 'Zora\'s Domain'), - 'Zora Shop Item 5': (0xC720F0, None, 0x34, 'Shop', 0x2F, 'Zora\'s Domain'), - 'Zora Shop Item 6': (0xC720F8, None, 0x35, 'Shop', 0x2F, 'Zora\'s Domain'), - 'Zora Shop Item 7': (0xC72100, None, 0x36, 'Shop', 0x2F, 'Zora\'s Domain'), - 'Zora Shop Item 8': (0xC72108, None, 0x37, 'Shop', 0x2F, 'Zora\'s Domain'), - 'Goron Shop Item 1': (0xC72110, None, 0x30, 'Shop', 0x2E, 'Goron City'), - 'Goron Shop Item 2': (0xC72118, None, 0x31, 'Shop', 0x2E, 'Goron City'), - 'Goron Shop Item 3': (0xC72120, None, 0x32, 'Shop', 0x2E, 'Goron City'), - 'Goron Shop Item 4': (0xC72128, None, 0x33, 'Shop', 0x2E, 'Goron City'), - 'Goron Shop Item 5': (0xC72130, None, 0x34, 'Shop', 0x2E, 'Goron City'), - 'Goron Shop Item 6': (0xC72138, None, 0x35, 'Shop', 0x2E, 'Goron City'), - 'Goron Shop Item 7': (0xC72140, None, 0x36, 'Shop', 0x2E, 'Goron City'), - 'Goron Shop Item 8': (0xC72148, None, 0x37, 'Shop', 0x2E, 'Goron City'), + 'Kokiri Shop Item 1': (shop_address(0, 0), None, 0x30, 'Shop', 0x2D, 'Kokiri Forest'), + 'Kokiri Shop Item 2': (shop_address(0, 1), None, 0x31, 'Shop', 0x2D, 'Kokiri Forest'), + 'Kokiri Shop Item 3': (shop_address(0, 2), None, 0x32, 'Shop', 0x2D, 'Kokiri Forest'), + 'Kokiri Shop Item 4': (shop_address(0, 3), None, 0x33, 'Shop', 0x2D, 'Kokiri Forest'), + 'Kokiri Shop Item 5': (shop_address(0, 4), None, 0x34, 'Shop', 0x2D, 'Kokiri Forest'), + 'Kokiri Shop Item 6': (shop_address(0, 5), None, 0x35, 'Shop', 0x2D, 'Kokiri Forest'), + 'Kokiri Shop Item 7': (shop_address(0, 6), None, 0x36, 'Shop', 0x2D, 'Kokiri Forest'), + 'Kokiri Shop Item 8': (shop_address(0, 7), None, 0x37, 'Shop', 0x2D, 'Kokiri Forest'), + 'Kakariko Potion Shop Item 1': (shop_address(1, 0), None, 0x30, 'Shop', 0x30, 'Kakariko Village'), + 'Kakariko Potion Shop Item 2': (shop_address(1, 1), None, 0x31, 'Shop', 0x30, 'Kakariko Village'), + 'Kakariko Potion Shop Item 3': (shop_address(1, 2), None, 0x32, 'Shop', 0x30, 'Kakariko Village'), + 'Kakariko Potion Shop Item 4': (shop_address(1, 3), None, 0x33, 'Shop', 0x30, 'Kakariko Village'), + 'Kakariko Potion Shop Item 5': (shop_address(1, 4), None, 0x34, 'Shop', 0x30, 'Kakariko Village'), + 'Kakariko Potion Shop Item 6': (shop_address(1, 5), None, 0x35, 'Shop', 0x30, 'Kakariko Village'), + 'Kakariko Potion Shop Item 7': (shop_address(1, 6), None, 0x36, 'Shop', 0x30, 'Kakariko Village'), + 'Kakariko Potion Shop Item 8': (shop_address(1, 7), None, 0x37, 'Shop', 0x30, 'Kakariko Village'), + 'Bombchu Shop Item 1': (shop_address(2, 0), None, 0x30, 'Shop', 0x32, 'the market'), + 'Bombchu Shop Item 2': (shop_address(2, 1), None, 0x31, 'Shop', 0x32, 'the market'), + 'Bombchu Shop Item 3': (shop_address(2, 2), None, 0x32, 'Shop', 0x32, 'the market'), + 'Bombchu Shop Item 4': (shop_address(2, 3), None, 0x33, 'Shop', 0x32, 'the market'), + 'Bombchu Shop Item 5': (shop_address(2, 4), None, 0x34, 'Shop', 0x32, 'the market'), + 'Bombchu Shop Item 6': (shop_address(2, 5), None, 0x35, 'Shop', 0x32, 'the market'), + 'Bombchu Shop Item 7': (shop_address(2, 6), None, 0x36, 'Shop', 0x32, 'the market'), + 'Bombchu Shop Item 8': (shop_address(2, 7), None, 0x37, 'Shop', 0x32, 'the market'), + 'Castle Town Potion Shop Item 1': (shop_address(3, 0), None, 0x30, 'Shop', 0x31, 'the market'), + 'Castle Town Potion Shop Item 2': (shop_address(3, 1), None, 0x31, 'Shop', 0x31, 'the market'), + 'Castle Town Potion Shop Item 3': (shop_address(3, 2), None, 0x32, 'Shop', 0x31, 'the market'), + 'Castle Town Potion Shop Item 4': (shop_address(3, 3), None, 0x33, 'Shop', 0x31, 'the market'), + 'Castle Town Potion Shop Item 5': (shop_address(3, 4), None, 0x34, 'Shop', 0x31, 'the market'), + 'Castle Town Potion Shop Item 6': (shop_address(3, 5), None, 0x35, 'Shop', 0x31, 'the market'), + 'Castle Town Potion Shop Item 7': (shop_address(3, 6), None, 0x36, 'Shop', 0x31, 'the market'), + 'Castle Town Potion Shop Item 8': (shop_address(3, 7), None, 0x37, 'Shop', 0x31, 'the market'), + 'Bazaar Item 1': (shop_address(4, 0), None, 0x30, 'Shop', 0x2C, 'the market'), + 'Bazaar Item 2': (shop_address(4, 1), None, 0x31, 'Shop', 0x2C, 'the market'), + 'Bazaar Item 3': (shop_address(4, 2), None, 0x32, 'Shop', 0x2C, 'the market'), + 'Bazaar Item 4': (shop_address(4, 3), None, 0x33, 'Shop', 0x2C, 'the market'), + 'Bazaar Item 5': (shop_address(4, 4), None, 0x34, 'Shop', 0x2C, 'the market'), + 'Bazaar Item 6': (shop_address(4, 5), None, 0x35, 'Shop', 0x2C, 'the market'), + 'Bazaar Item 7': (shop_address(4, 6), None, 0x36, 'Shop', 0x2C, 'the market'), + 'Bazaar Item 8': (shop_address(4, 7), None, 0x37, 'Shop', 0x2C, 'the market'), + 'Zora Shop Item 1': (shop_address(7, 0), None, 0x30, 'Shop', 0x2F, 'Zora\'s Domain'), + 'Zora Shop Item 2': (shop_address(7, 1), None, 0x31, 'Shop', 0x2F, 'Zora\'s Domain'), + 'Zora Shop Item 3': (shop_address(7, 2), None, 0x32, 'Shop', 0x2F, 'Zora\'s Domain'), + 'Zora Shop Item 4': (shop_address(7, 3), None, 0x33, 'Shop', 0x2F, 'Zora\'s Domain'), + 'Zora Shop Item 5': (shop_address(7, 4), None, 0x34, 'Shop', 0x2F, 'Zora\'s Domain'), + 'Zora Shop Item 6': (shop_address(7, 5), None, 0x35, 'Shop', 0x2F, 'Zora\'s Domain'), + 'Zora Shop Item 7': (shop_address(7, 6), None, 0x36, 'Shop', 0x2F, 'Zora\'s Domain'), + 'Zora Shop Item 8': (shop_address(7, 7), None, 0x37, 'Shop', 0x2F, 'Zora\'s Domain'), + 'Goron Shop Item 1': (shop_address(8, 0), None, 0x30, 'Shop', 0x2E, 'Goron City'), + 'Goron Shop Item 2': (shop_address(8, 1), None, 0x31, 'Shop', 0x2E, 'Goron City'), + 'Goron Shop Item 3': (shop_address(8, 2), None, 0x32, 'Shop', 0x2E, 'Goron City'), + 'Goron Shop Item 4': (shop_address(8, 3), None, 0x33, 'Shop', 0x2E, 'Goron City'), + 'Goron Shop Item 5': (shop_address(8, 4), None, 0x34, 'Shop', 0x2E, 'Goron City'), + 'Goron Shop Item 6': (shop_address(8, 5), None, 0x35, 'Shop', 0x2E, 'Goron City'), + 'Goron Shop Item 7': (shop_address(8, 6), None, 0x36, 'Shop', 0x2E, 'Goron City'), + 'Goron Shop Item 8': (shop_address(8, 7), None, 0x37, 'Shop', 0x2E, 'Goron City'), } diff --git a/version.py b/version.py index aacd19b48..e175d04dc 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.29 f.LUM' +__version__ = '2.15.30 f.LUM' From 405e66635a2139d6ee7265b065c618fdce57bf2b Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 20 Aug 2018 04:13:27 -0400 Subject: [PATCH 315/755] Fix type error with poe count PS: I hate python --- Rom.py | 4 ++-- version.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Rom.py b/Rom.py index 6abf8e85e..d3019c54f 100644 --- a/Rom.py +++ b/Rom.py @@ -1133,8 +1133,8 @@ def write_save_table(rom): # Set Big Poe count to get reward from buyer if world.big_poe_count == 'random': - world.big_poe_count = random.randint(1, 10) - poe_points = world.big_poe_count * 100 + world.big_poe_count = str(random.randint(1, 10)) + poe_points = int(world.big_poe_count) * 100 rom.write_int16(0xEE69CE, poe_points) # update dialogue if world.big_poe_count != 10: diff --git a/version.py b/version.py index 2858c3533..b4944936b 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.33 f.LUM' +__version__ = '2.15.34 f.LUM' From 7696773b6ff100de29f4be4428daf3439e8cc6be Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 20 Aug 2018 04:16:15 -0400 Subject: [PATCH 316/755] Prices are tried to shop location, not the item Makes shop logic simpler --- BaseClasses.py | 6 +++--- Rom.py | 6 +++--- version.py | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 9466f6a2d..dcd15ce3e 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -89,20 +89,19 @@ def initialize_regions(self): region.world = self for location in region.locations: location.world = self + if location.type == 'Shop': + location.price = int(random.betavariate(1.5, 2) * 60) * 5 def initialize_items(self): for item in self.itempool: item.world = self - item.price = int(random.betavariate(1.5, 2) * 300) for region in self.regions: for location in region.locations: if location.item != None: location.item.world = self - location.item.price = int(random.betavariate(1.5, 2) * 300) for dungeon in self.dungeons: for item in dungeon.all_items: item.world = self - item.price = int(random.betavariate(1.5, 2) * 300) @@ -558,6 +557,7 @@ def __init__(self, name, type): self.world = None self.spot_type = 'Region' self.recursion_count = 0 + self.price = None def can_reach(self, state): for entrance in self.entrances: diff --git a/Rom.py b/Rom.py index fb1c23789..09041327b 100644 --- a/Rom.py +++ b/Rom.py @@ -1747,7 +1747,7 @@ def place_shop_items(rom, shop_items, messages, free_shop_ids, locations): shop_item = shop_items[shop_id] shop_item.object = location.item.object shop_item.model = location.item.model - 1 - shop_item.price = location.item.price + shop_item.price = location.price shop_item.pieces = 1 shop_item.get_item_id = location.default shop_item.func2 = 0x808636B8 @@ -1756,7 +1756,7 @@ def place_shop_items(rom, shop_items, messages, free_shop_ids, locations): message_id = unused_shop_ids.index(shop_id) * 2 shop_item.description_message = 0x8100 + message_id shop_item.purchase_message = 0x8100 + message_id + 1 - add_message(messages, '\x08\x05\x41%s %d Rupees\x01\x05\x40Special deal! ONE LEFT!\x01Get it while it lasts!\x09\x0A\x02' % (location.item.name, location.item.price), shop_item.description_message, 0x03) - add_message(messages, '\x08%s %d Rupees\x09\x01\x01\x1B\x05\x42Buy\x01Don\'t buy\x05\x40\x02' % (location.item.name, location.item.price), shop_item.purchase_message, 0x03) + add_message(messages, '\x08\x05\x41%s %d Rupees\x01\x05\x40Special deal! ONE LEFT!\x01Get it while it lasts!\x09\x0A\x02' % (location.item.name, location.price), shop_item.description_message, 0x03) + add_message(messages, '\x08%s %d Rupees\x09\x01\x01\x1B\x05\x42Buy\x01Don\'t buy\x05\x40\x02' % (location.item.name, location.price), shop_item.purchase_message, 0x03) return shop_objs diff --git a/version.py b/version.py index e175d04dc..47f69432c 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.30 f.LUM' +__version__ = '2.15.31 f.LUM' From 10d180a40076dd95220202b51d845267070441af Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 20 Aug 2018 04:17:09 -0400 Subject: [PATCH 317/755] Update BaseClasses to handle shop rando logic --- BaseClasses.py | 79 +++++++++++++++++++++++++++++++++++++++++++++----- Items.py | 2 +- version.py | 2 +- 3 files changed, 74 insertions(+), 9 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index dcd15ce3e..07e8543e0 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -307,23 +307,68 @@ def item_count(self, item): def is_adult(self): return self.has('Master Sword') + def can_child_attack(self): + return self.has_slingshot() or \ + self.has('Boomerang') or \ + self.has_sticks() or \ + self.has_explosives() or \ + self.has('Kokiri Sword') or \ + (self.has('Dins Fire') and self.has('Magic Meter')) + + def can_stun_deku(self): + return self.is_adult() or \ + self.can_child_attack() or \ + self.has_nuts() or \ + self.has('Buy Deku Shield') + + def has_nuts(self): + return self.has('Buy Deku Nut (5)') or self.has('Buy Deku Nut (10)') + + def has_sticks(self): + return self.has('Buy Deku Stick (1)') + + def has_bow(self): + return self.has('Bow') and + (self.has('Buy Arrows (10)') or self.has('Buy Arrows (30)') or self.has('Buy Arrows (50)')) + + def has_slingshot(self): + return self.has('Slingshot') and self.has('Buy Deku Seeds (30)') + + def has_bombs(self): + return self.has('Bomb Bag') and + (self.has('Buy Bombs (5)') or self.has('Buy Bombs (10)') or self.has('Buy Bombs (20)')) + + def has_blue_fire(self): + return self.has_bottle() and + (self.can_reach('Ice Cavern') + or self.can_reach('Ganons Castle Water Trial') + or (self.has('Buy Blue Fire') and self.has('Progressive Wallet', 2))) + def has_ocarina(self): return (self.has('Ocarina') or self.has("Fairy Ocarina") or self.has("Ocarina of Time")) def can_play(self, song): return self.has_ocarina() and self.has(song) + def can_buy_bombchus(self): + return (self.has('Buy Bombchu (5)') or \ + state.has('Buy Bombchu (10)') or \ + (self.has('Buy Bombchu (20)') and self.has('Progressive Wallet'))) + or (self.has('Progressive Wallet') and self.can_reach('Haunted Wasteland')) + def has_bombchus(self): return (self.world.bombchus_in_logic and \ - (any(pritem.startswith('Bombchus') for pritem in self.prog_items) \ + ((any(pritem.startswith('Bombchus') for pritem in self.prog_items) and \ + self.can_buy_bombchus()) \ or (self.has('Progressive Wallet') and self.can_reach('Haunted Wasteland')))) \ - or (not self.world.bombchus_in_logic and self.has('Bomb Bag')) + or (not self.world.bombchus_in_logic and self.has('Bomb Bag') and \ + self.can_buy_bombchus()) def has_explosives(self): - return self.has('Bomb Bag') or self.has_bombchus() + return self.has_bombs() or self.has_bombchus() def can_blast_or_smash(self): - return self.has('Bomb Bag') or (self.is_adult() and self.has('Hammer')) or self.has_bombchus() + return self.has_explosives() or (self.is_adult() and self.has('Hammer')) def can_dive(self): return self.has('Progressive Scale') @@ -334,11 +379,31 @@ def can_lift_rocks(self): def can_see_with_lens(self): return ((self.has('Magic Meter') and self.has('Lens of Truth')) or self.world.logic_lens != 'all') + def can_reach_tunic(self, tunic): + tunic_locations = self.world.find_items(tunic) + for location in tunic_locations: + if location.parent.name == 'Goron Shop': + if self.can_reach('Goron Shop') and \ + (self.has_explosives() or self.has('Progressive Strength Upgrade') or self.has_bow()): + return True + elif location.parent.name == 'Zora Shop': + if self.can_reach('Zoras Domain Adult Access') and self.has_blue_fire(): + return True + else: + return True + return False + def has_GoronTunic(self): - return (self.has('Goron Tunic') or (self.has('Progressive Wallet') and (self.has_explosives() or self.has('Progressive Strength Upgrade') or self.has('Bow')))) + return (self.has('Goron Tunic') or + (self.has('Progressive Wallet') and + self.has('Buy Goron Tunic') and + self.can_reach_tunic('Buy Goron Tunic'))) def has_ZoraTunic(self): - return (self.has('Zora Tunic') or (self.has('Progressive Wallet', 2) and self.has_bottle() and self.can_play('Zeldas Lullaby'))) + return (self.has('Zora Tunic') or + (self.has('Progressive Wallet', 2) and + self.has('Buy Zora Tunic') and + self.can_reach_tunic('Buy Zora Tunic'))) def can_finish_adult_trades(self): zora_thawed = self.has_bottle() and self.has('Zeldas Lullaby') and (self.can_reach('Ice Cavern') or self.can_reach('Ganons Castle Water Trial') or self.has('Progressive Wallet', 2)) @@ -368,7 +433,7 @@ def can_lift_pillars(self): return self.has('Gold Gauntlets') and self.is_adult() def has_fire_source(self): - return ((self.has('Dins Fire') or (self.has('Bow') and self.has('Fire Arrows') and self.is_adult())) and self.has('Magic Meter')) + return ((self.has('Dins Fire') or (self.has() and self.has('Fire Arrows') and self.is_adult())) and self.has('Magic Meter')) def guarantee_hint(self): if(self.world.hints == 'mask'): diff --git a/Items.py b/Items.py index 44a7895e8..c1742ddfd 100644 --- a/Items.py +++ b/Items.py @@ -216,7 +216,7 @@ def __init__(self, model, gid, price): 'Buy Blue Fire': (True, False, 'Shop', None, 0x27, 0x0173, 0x67), 'Buy Bottle Bug': (False, True, 'Shop', None, 0x28, 0x0174, 0x68), 'Buy Fairy\'s Spirit': (False, True, 'Shop', None, 0x2B, 0x0177, 0x6B), - 'Buy Arrow (10)': (False, True, 'Shop', None, 0x2C, 0x00D8, 0x25), + 'Buy Arrows (10)': (False, True, 'Shop', None, 0x2C, 0x00D8, 0x25), 'Buy Bombs (20)': (False, True, 'Shop', None, 0x2D, 0x00CE, 0x20), #'Buy Bombs (30)': (False, True, 'Shop', None, 0x2E, 0x00CE, 0x20), } diff --git a/version.py b/version.py index 47f69432c..e84e976ae 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.31 f.LUM' +__version__ = '2.15.32 f.LUM' From 1961be6aaea7c8fcffe7306d165dd7f27a9997b0 Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Mon, 20 Aug 2018 05:34:46 -0300 Subject: [PATCH 318/755] Shadow GS Logic Fix --- Regions.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Regions.py b/Regions.py index ba7cdb971..e8eca09d8 100644 --- a/Regions.py +++ b/Regions.py @@ -284,12 +284,13 @@ def create_regions(world): ['Shadow Temple Invisible Blades Visible Chest', 'Shadow Temple Invisible Blades Invisible Chest', 'Shadow Temple Falling Spikes Lower Chest', 'Shadow Temple Falling Spikes Upper Chest', 'Shadow Temple Falling Spikes Switch Chest', 'Shadow Temple Invisible Spikes Chest', - 'Shadow Temple Freestanding Key', 'GS Shadow Temple Like Like Room', 'GS Shadow Temple Crusher Room'], + 'Shadow Temple Freestanding Key', 'GS Shadow Temple Like Like Room', 'GS Shadow Temple Crusher Room', + 'GS Shadow Temple Single Giant Pot'], ['Shadow Temple Hookshot Target']), create_dungeon_region( 'Shadow Temple Wind Tunnel', ['Shadow Temple Wind Hint Chest', 'Shadow Temple After Wind Enemy Chest', - 'Shadow Temple After Wind Hidden Chest', 'GS Shadow Temple Single Giant Pot', 'GS Shadow Temple Near Ship'], + 'Shadow Temple After Wind Hidden Chest', 'GS Shadow Temple Near Ship'], ['Shadow Temple Boat']), create_dungeon_region( 'Shadow Temple Beyond Boat', From 8226b1505c29824fbaa4c039eee14d622fbb5c3b Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Mon, 20 Aug 2018 05:36:30 -0300 Subject: [PATCH 319/755] Shadow GS Logic Fix --- Rules.py | 1 + 1 file changed, 1 insertion(+) diff --git a/Rules.py b/Rules.py index 62c6349a7..2aac9b5f6 100644 --- a/Rules.py +++ b/Rules.py @@ -444,6 +444,7 @@ def dung_rules_sht0(world): # GS set_rule(world.get_location('GS Shadow Temple Like Like Room'), lambda state: state.has('Progressive Hookshot')) set_rule(world.get_location('GS Shadow Temple Crusher Room'), lambda state: state.has('Progressive Hookshot')) + set_rule(world.get_location('GS Shadow Temple Single Giant Pot'), lambda state: state.has('Small Key (Shadow Temple)', 2) and state.has('Progressive Hookshot')) set_rule(world.get_location('GS Shadow Temple Near Ship'), lambda state: state.has('Progressive Hookshot', 2) and state.has('Small Key (Shadow Temple)', 4)) def dung_rules_bw0(world): From a1cfcdc93e2f4706d4c7039cc6b3f0a9778437f6 Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Mon, 20 Aug 2018 08:03:58 -0300 Subject: [PATCH 320/755] Logic - BOTW GS Added key-for-key logic. I'm not 100% sure this works right so I'll hold off a bit on the PR... --- Rules.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Rules.py b/Rules.py index 2aac9b5f6..d7695b8b2 100644 --- a/Rules.py +++ b/Rules.py @@ -464,9 +464,11 @@ def dung_rules_bw0(world): set_rule(world.get_location('Bottom of the Well Behind Right Grate'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.can_see_with_lens()) # GS - set_rule(world.get_location('GS Well West Inner Room'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang') and state.can_see_with_lens()) - set_rule(world.get_location('GS Well East Inner Room'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang') and state.can_see_with_lens()) - set_rule(world.get_location('GS Well Like Like Cage'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang') and state.can_see_with_lens()) + set_always_allow(world.get_location('GS Well West Inner Room'), lambda item, state: item.name == 'Small Key (Bottom of the Well)') + set_rule(world.get_location('GS Well West Inner Room'), lambda state: state.has('Boomerang') and state.can_see_with_lens() and (state.has('Small Key (Bottom of the Well)', 3) or item_name(state, 'GS Well West Inner Room') == 'Small Key (Bottom of the Well)')) #If key for key, this lets the logic reduce the small key reqs for every other locked door. + set_always_allow(world.get_location('GS Well East Inner Room'), lambda item, state: item.name == 'Small Key (Bottom of the Well)') + set_rule(world.get_location('GS Well East Inner Room'), lambda state: state.has('Boomerang') and state.can_see_with_lens() and (state.has('Small Key (Bottom of the Well)', 3) or item_name(state, 'GS Well East Inner Room') == 'Small Key (Bottom of the Well)')) #If key for key, this lets the logic reduce the small key reqs for every other locked door. + set_rule(world.get_location('GS Well Like Like Cage'), lambda state: state.has('Boomerang') and state.can_see_with_lens() and state.has('Small Key (Bottom of the Well)', 3)) def dung_rules_ic0(world): # Ice Cavern Vanilla From a602c1de096c980a856d49fd994471b5442bb0ea Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 20 Aug 2018 20:10:25 -0400 Subject: [PATCH 321/755] Added initial shop logic --- BaseClasses.py | 18 ++--- Rules.py | 213 +++++++++++++++++++++++++++++-------------------- version.py | 2 +- 3 files changed, 135 insertions(+), 98 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 42fdf6503..50b583cd3 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -324,18 +324,18 @@ def has_sticks(self): return self.has('Buy Deku Stick (1)') def has_bow(self): - return self.has('Bow') and + return self.has('Bow') and \ (self.has('Buy Arrows (10)') or self.has('Buy Arrows (30)') or self.has('Buy Arrows (50)')) def has_slingshot(self): return self.has('Slingshot') and self.has('Buy Deku Seeds (30)') def has_bombs(self): - return self.has('Bomb Bag') and + return self.has('Bomb Bag') and \ (self.has('Buy Bombs (5)') or self.has('Buy Bombs (10)') or self.has('Buy Bombs (20)')) def has_blue_fire(self): - return self.has_bottle() and + return self.has_bottle() and \ (self.can_reach('Ice Cavern') or self.can_reach('Ganons Castle Water Trial') or (self.has('Buy Blue Fire') and self.has('Progressive Wallet', 2))) @@ -347,10 +347,10 @@ def can_play(self, song): return self.has_ocarina() and self.has(song) def can_buy_bombchus(self): - return (self.has('Buy Bombchu (5)') or \ - state.has('Buy Bombchu (10)') or \ - (self.has('Buy Bombchu (20)') and self.has('Progressive Wallet'))) - or (self.has('Progressive Wallet') and self.can_reach('Haunted Wasteland')) + return self.has('Buy Bombchu (5)') or \ + self.has('Buy Bombchu (10)') or \ + (self.has('Buy Bombchu (20)') and self.has('Progressive Wallet')) or \ + (self.has('Progressive Wallet') and self.can_reach('Haunted Wasteland')) def has_bombchus(self): return (self.world.bombchus_in_logic and \ @@ -402,7 +402,7 @@ def has_ZoraTunic(self): self.can_reach_tunic('Buy Zora Tunic'))) def can_leave_forest(self): - return (self.world.open_forest or (self.has('Slingshot') and self.has('Kokiri Sword'))) + return (self.world.open_forest or (self.has_slingshot() and self.has('Kokiri Sword') and self.has('Buy Deku Shield'))) def can_finish_adult_trades(self): zora_thawed = self.has_bottle() and self.has('Zeldas Lullaby') and (self.can_reach('Ice Cavern') or self.can_reach('Ganons Castle Water Trial') or self.has('Progressive Wallet', 2)) @@ -432,7 +432,7 @@ def can_lift_pillars(self): return self.has('Gold Gauntlets') and self.is_adult() def has_fire_source(self): - return ((self.has('Dins Fire') or (self.has() and self.has('Fire Arrows') and self.is_adult())) and self.has('Magic Meter')) + return ((self.has('Dins Fire') or (self.has_bow() and self.has('Fire Arrows') and self.is_adult())) and self.has('Magic Meter')) def guarantee_hint(self): if(self.world.hints == 'mask'): diff --git a/Rules.py b/Rules.py index b02359442..fd976b2cd 100644 --- a/Rules.py +++ b/Rules.py @@ -80,11 +80,11 @@ def global_rules(world): dung_rules_gc0(world) # overworld requirements - set_rule(world.get_entrance('Deku Tree'), lambda state: state.has('Kokiri Sword') or world.open_forest) + set_rule(world.get_entrance('Deku Tree'), lambda state: (state.has('Kokiri Sword') and state.has('Buy Deku Shield')) or world.open_forest) set_rule(world.get_entrance('Lost Woods Bridge'), lambda state: state.can_leave_forest()) set_rule(world.get_location('Skull Kid'), lambda state: state.can_play('Sarias Song')) set_rule(world.get_location('Ocarina Memory Game'), lambda state: (not world.logic_no_memory_game) and state.has_ocarina()) - set_rule(world.get_location('Target in Woods'), lambda state: state.has('Slingshot')) + set_rule(world.get_location('Target in Woods'), lambda state: state.has_slingshot()) set_rule(world.get_location('Deku Theater Skull Mask'), lambda state: (not world.logic_no_trade_skull_mask) and state.has('Zeldas Letter')) set_rule(world.get_location('Deku Theater Mask of Truth'), lambda state: (not world.logic_no_trade_mask_of_truth) and (state.has('Zeldas Letter') and state.can_play('Sarias Song') and state.has('Kokiri Emerald') and state.has('Goron Ruby') and state.has('Zora Sapphire') and state.guarantee_hint())) #Must befriend Skull Kid to sell Skull Mask, all stones to spawn running man. set_rule(world.get_location('Anju as Adult'), lambda state: state.is_adult()) @@ -96,22 +96,24 @@ def global_rules(world): set_rule(world.get_location('50 Gold Skulltulla Reward'), lambda state: (expected_skulltulas >= 50) and state.has('Gold Skulltulla Token', 50) and state.guarantee_hint()) set_rule(world.get_location('Heart Piece Grave Chest'), lambda state: state.can_play('Suns Song')) set_rule(world.get_entrance('Composer Grave'), lambda state: state.can_play('Zeldas Lullaby')) + + set_rule(world.get_location('Song from Composer Grave'), lambda state: state.is_adult() or state.can_child_attack()) set_rule(world.get_location('Composer Grave Chest'), lambda state: state.has_fire_source()) set_rule(world.get_entrance('Bottom of the Well'), lambda state: state.can_play('Song of Storms')) set_rule(world.get_entrance('Death Mountain Entrance'), lambda state: state.has('Zeldas Letter') or state.is_adult() or world.open_kakariko) - set_rule(world.get_location('DM Trail Freestanding PoH'), lambda state: world.open_kakariko or (world.difficulty != 'ohko') or state.has('Zeldas Letter') or state.can_blast_or_smash() or ((state.has('Dins Fire') or state.has('Nayrus Love')) and state.has('Magic Meter')) or state.has('Bow') or state.has('Progressive Strength Upgrade') or state.has_bottle() or state.has('Hover Boots')) + set_rule(world.get_location('DM Trail Freestanding PoH'), lambda state: world.open_kakariko or (world.difficulty != 'ohko') or state.has('Zeldas Letter') or state.can_blast_or_smash() or ((state.has('Dins Fire') or state.has('Nayrus Love')) and state.has('Magic Meter')) or state.has_bow() or state.has('Progressive Strength Upgrade') or state.has_bottle() or state.has('Hover Boots')) set_rule(world.get_location('Death Mountain Bombable Chest'), lambda state: state.can_blast_or_smash()) - set_rule(world.get_location('Biggoron'), lambda state: (not world.logic_no_trade_biggoron) and (state.has('Progressive Strength Upgrade') or state.can_blast_or_smash() or state.has('Bow')) and state.is_adult() and state.can_finish_adult_trades() and state.guarantee_hint()) + set_rule(world.get_location('Biggoron'), lambda state: (not world.logic_no_trade_biggoron) and (state.has('Progressive Strength Upgrade') or state.can_blast_or_smash() or state.has_bow()) and state.is_adult() and state.can_finish_adult_trades() and state.guarantee_hint()) set_rule(world.get_location('Goron City Leftmost Maze Chest'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade', 2) or state.has('Hammer'))) set_rule(world.get_location('Goron City Left Maze Chest'), lambda state: state.can_blast_or_smash() or (state.has('Progressive Strength Upgrade', 2) and state.is_adult())) set_rule(world.get_location('Goron City Right Maze Chest'), lambda state: state.can_blast_or_smash() or (state.has('Progressive Strength Upgrade', 2) and state.is_adult())) - set_rule(world.get_location('Rolling Goron as Child'), lambda state: state.has('Bomb Bag')) - set_rule(world.get_location('Goron City Pot Freestanding PoH'), lambda state: (state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) and (state.can_play('Zeldas Lullaby') or (state.has('Dins Fire') and state.has('Magic Meter')))) + set_rule(world.get_location('Rolling Goron as Child'), lambda state: state.has('Bomb Bag') and state.has_explosives()) + set_rule(world.get_location('Goron City Pot Freestanding PoH'), lambda state: (state.has_bombs() or state.has('Progressive Strength Upgrade')) and (state.can_play('Zeldas Lullaby') or (state.has('Dins Fire') and state.has('Magic Meter')))) set_rule(world.get_entrance('Darunias Chamber'), lambda state: state.can_play('Zeldas Lullaby')) set_rule(world.get_location('Darunias Joy'), lambda state: state.can_play('Sarias Song')) - set_rule(world.get_entrance('Goron City from Woods'), lambda state: (state.can_blast_or_smash() or (state.has('Dins Fire') and state.has('Magic Meter')) or ((state.has('Bow') or state.has('Progressive Strength Upgrade')) and state.is_adult())) and state.can_leave_forest()) - set_rule(world.get_location('King Dodongo'), lambda state: state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) - set_rule(world.get_location('King Dodongo Heart'), lambda state: state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) + set_rule(world.get_entrance('Goron City from Woods'), lambda state: (state.can_blast_or_smash() or (state.has('Dins Fire') and state.has('Magic Meter')) or ((state.has_bow() or state.has('Progressive Strength Upgrade')) and state.is_adult())) and state.can_leave_forest()) + set_rule(world.get_location('King Dodongo'), lambda state: state.has_bombs() or (state.has('Progressive Strength Upgrade') and (state.has_sticks() or state.has('Kokiri Sword')))) + set_rule(world.get_location('King Dodongo Heart'), lambda state: state.has_bombs() or (state.has('Progressive Strength Upgrade') and (state.has_sticks() or state.has('Kokiri Sword')))) set_rule(world.get_location('Song from Saria'), lambda state: state.has('Zeldas Letter')) set_rule(world.get_entrance('Mountain Summit Fairy'), lambda state: state.can_blast_or_smash()) set_rule(world.get_location('Crater Fairy Reward'), lambda state: state.can_play('Zeldas Lullaby')) @@ -126,7 +128,7 @@ def global_rules(world): set_rule(world.get_location('Bombchu Bowling Bomb Bag'), lambda state: state.has_bombchus()) set_rule(world.get_location('Bombchu Bowling Piece of Heart'), lambda state: state.has_bombchus()) set_rule(world.get_location('Adult Shooting Gallery'), lambda state: state.has('Bow') and state.is_adult()) - set_rule(world.get_location('10 Big Poes'), lambda state: (not world.logic_no_big_poes) and (state.has('Bow') and state.has('Epona') and state.has_bottle() and state.is_adult() and state.guarantee_hint())) + set_rule(world.get_location('10 Big Poes'), lambda state: (not world.logic_no_big_poes) and (state.has_bow() and state.has('Epona') and state.has_bottle() and state.is_adult() and state.guarantee_hint())) set_rule(world.get_location('Treasure Chest Game'), lambda state: state.has('Lens of Truth') and state.has('Magic Meter')) set_rule(world.get_entrance('Lost Woods Dive Warp'), lambda state: state.can_dive() and state.can_leave_forest()) set_rule(world.get_entrance('Zora River Dive Warp'), lambda state: state.can_dive()) @@ -144,6 +146,7 @@ def global_rules(world): set_rule(world.get_entrance('Zora River Adult'), lambda state: state.is_adult()) set_rule(world.get_entrance('Zoras Domain Adult Access'), lambda state: state.can_play('Zeldas Lullaby') or (state.has('Hover Boots') and world.logic_zora_with_hovers)) set_rule(world.get_entrance('Zoras Fountain Adult Access'), lambda state: state.can_reach('Zoras Fountain')) + set_rule(world.get_location('Zoras Domain Torch Run'), lambda state: state.has_sticks() or (state.has('Dins Fire') or state.has('Magic Meter'))) set_rule(world.get_entrance('Jabu Jabus Belly'), lambda state: state.has_bottle()) set_rule(world.get_entrance('Zoras Fountain Fairy'), lambda state: state.has_explosives()) set_rule(world.get_location('Zoras Fountain Fairy Reward'), lambda state: state.can_play('Zeldas Lullaby')) @@ -168,7 +171,7 @@ def global_rules(world): set_rule(world.get_location('Child Fishing'), lambda state: (not world.logic_no_child_fishing) and state.has('Kokiri Sword')) set_rule(world.get_location('Adult Fishing'), lambda state: (not world.logic_no_adult_fishing) and state.is_adult() and ((state.has('Progressive Hookshot') and state.has_ocarina()) or state.has('Magic Bean') or state.can_reach(world.get_location('Morpha')))) set_rule(world.get_location('Lake Hylia Freestanding PoH'), lambda state: state.is_adult() and ((state.has('Progressive Hookshot') and state.has_ocarina()) or state.has('Magic Bean'))) - set_rule(world.get_location('Lake Hylia Sun'), lambda state: ((state.has('Progressive Hookshot', 2) and state.has_ocarina()) or state.can_reach(world.get_location('Morpha'))) and state.has('Bow') and state.is_adult()) + set_rule(world.get_location('Lake Hylia Sun'), lambda state: ((state.has('Progressive Hookshot', 2) and state.has_ocarina()) or state.can_reach(world.get_location('Morpha'))) and state.has_bow() and state.is_adult()) set_rule(world.get_entrance('Crater Hover Boots'), lambda state: state.is_adult() and state.has('Hover Boots')) set_rule(world.get_entrance('Crater Ascent'), lambda state: state.is_adult()) set_rule(world.get_entrance('Crater Scarecrow'), lambda state: state.is_adult() and state.has_ocarina() and state.has('Progressive Hookshot', 2)) @@ -179,10 +182,12 @@ def global_rules(world): set_rule(world.get_location('DM Crater Volcano Freestanding PoH'), lambda state: state.is_adult() and ( (state.has('Magic Bean') and state.can_play('Bolero of Fire')) or (world.logic_crater_bean_hp_with_hovers and state.has('Hover Boots')) ) ) set_rule(world.get_entrance('Fire Temple Entrance'), lambda state: state.is_adult() and (world.logic_fewer_tunic_requirements or state.has_GoronTunic())) set_rule(world.get_location('Sheik in Crater'), lambda state: state.is_adult()) - set_rule(world.get_location('Link the Goron'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade') or state.has_explosives() or state.has('Bow'))) - set_rule(world.get_entrance('Crater Access'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade') or state.has_explosives() or state.has('Bow'))) + set_rule(world.get_location('Link the Goron'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade') or state.has_explosives() or state.has_bow())) + set_rule(world.get_entrance('Crater Access'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade') or state.has_explosives() or state.has_bow())) + set_rule(world.get_entrance('Goron Shop'), lambda state: state.can_play('Zeldas Lullaby') or (state.is_adult() and (state.has('Progressive Strength Upgrade') or state.has_explosives() or state.has_bow()))) set_rule(world.get_entrance('Lake Warp Pad'), lambda state: state.can_play('Serenade of Water') and state.can_leave_forest()) - set_rule(world.get_location('King Zora Thawed'), lambda state: state.has_bottle() and (state.can_reach('Ice Cavern') or state.can_reach('Ganons Castle Water Trial') or state.has('Progressive Wallet', 2))) + set_rule(world.get_location('King Zora Thawed'), lambda state: state.has_blue_fire()) + set_rule(world.get_entrance('Zora Shop'), lambda state: state.has_blue_fire()) set_rule(world.get_location('Zoras Fountain Bottom Freestanding PoH'), lambda state: state.has('Iron Boots') and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic())) set_rule(world.get_entrance('Water Temple Entrance'), lambda state: state.is_adult() and state.has('Iron Boots') and state.has('Progressive Hookshot') and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic())) set_rule(world.get_location('Sheik in Kakariko'), lambda state: state.is_adult() and state.has('Forest Medallion') and state.has('Fire Medallion') and state.has('Water Medallion')) @@ -190,9 +195,9 @@ def global_rules(world): set_rule(world.get_entrance('Shadow Temple Entrance'), lambda state: state.has('Dins Fire') and state.has('Magic Meter') and state.can_see_with_lens() and state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot'))) set_rule(world.get_entrance('Bridge Crossing'), lambda state: (state.has('Epona') or state.has('Progressive Hookshot', 2) or world.gerudo_fortress == 'open') and state.is_adult()) set_rule(world.get_location('Gerudo Valley Hammer Rocks Chest'), lambda state: state.has('Hammer') and state.is_adult()) - set_rule(world.get_location('Gerudo Fortress North F2 Carpenter'), lambda state: (state.has('Bow') or state.has('Progressive Hookshot') or state.has('Hover Boots')) and state.is_adult()) - set_rule(world.get_location('Gerudo Fortress Carpenter Rescue'), lambda state: ( (world.gerudo_fortress == 'normal' and state.has('Small Key (Gerudo Fortress)', 4) and (state.has('Bow') or state.has('Progressive Hookshot') or state.has('Hover Boots'))) or (world.gerudo_fortress == 'fast' and state.has('Small Key (Gerudo Fortress)', 1)) or world.gerudo_fortress == 'open') and state.is_adult()) - set_rule(world.get_location('Gerudo Fortress Membership Card'), lambda state: ( (world.gerudo_fortress == 'normal' and state.has('Small Key (Gerudo Fortress)', 4) and (state.has('Bow') or state.has('Progressive Hookshot') or state.has('Hover Boots'))) or (world.gerudo_fortress == 'fast' and state.has('Small Key (Gerudo Fortress)', 1)) or world.gerudo_fortress == 'open') and state.is_adult()) + set_rule(world.get_location('Gerudo Fortress North F2 Carpenter'), lambda state: (state.has_bow() or state.has('Progressive Hookshot') or state.has('Hover Boots')) and state.is_adult()) + set_rule(world.get_location('Gerudo Fortress Carpenter Rescue'), lambda state: ( (world.gerudo_fortress == 'normal' and state.has('Small Key (Gerudo Fortress)', 4) and (state.has_bow() or state.has('Progressive Hookshot') or state.has('Hover Boots'))) or (world.gerudo_fortress == 'fast' and state.has('Small Key (Gerudo Fortress)', 1)) or world.gerudo_fortress == 'open') and state.is_adult()) + set_rule(world.get_location('Gerudo Fortress Membership Card'), lambda state: ( (world.gerudo_fortress == 'normal' and state.has('Small Key (Gerudo Fortress)', 4) and (state.has_bow() or state.has('Progressive Hookshot') or state.has('Hover Boots'))) or (world.gerudo_fortress == 'fast' and state.has('Small Key (Gerudo Fortress)', 1)) or world.gerudo_fortress == 'open') and state.is_adult()) set_rule(world.get_entrance('Gerudo Training Grounds Entrance'), lambda state: state.has('Carpenter Rescue') and state.has('Gerudo Membership Card') and state.is_adult()) set_rule(world.get_entrance('Haunted Wasteland Entrance'), lambda state: state.has('Carpenter Rescue') and state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot', 2))) set_rule(world.get_entrance('Haunted Wasteland Crossing'), lambda state: (world.logic_lens == 'chest') or (state.has('Lens of Truth') and state.has('Magic Meter'))) @@ -205,11 +210,11 @@ def global_rules(world): set_rule(world.get_location('Horseback Archery 1500 Points'), lambda state: (not world.logic_no_1500_archery) and (state.has('Carpenter Rescue') and state.has('Epona') and state.has('Bow') and state.is_adult())) set_rule(world.get_location('Haunted Wasteland Structure Chest'), lambda state: state.has_fire_source()) set_rule(world.get_location('Zelda'), lambda state: state.has('Shadow Medallion') and state.has('Spirit Medallion') and state.is_adult()) - set_rule(world.get_location('Ganon'), lambda state: (state.has('Boss Key (Ganons Castle)') or world.unlocked_ganondorf) and (state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows')) ) + set_rule(world.get_location('Ganon'), lambda state: (state.has('Boss Key (Ganons Castle)') or world.unlocked_ganondorf) and (state.has('Magic Meter') and state.has_bow() and state.has('Light Arrows')) ) set_rule(world.get_entrance('Kokiri Forest Storms Grotto'), lambda state: state.can_play('Song of Storms')) - set_rule(world.get_entrance('Lost Woods Generic Grotto'), lambda state: state.has('Bomb Bag') or (state.can_blast_or_smash() and state.can_leave_forest())) - set_rule(world.get_entrance('Lost Woods Sales Grotto'), lambda state: (state.has('Bomb Bag') or (state.has_bombchus() and state.can_leave_forest())) or (state.has('Hammer') and state.is_adult() and (state.can_play('Minuet of Forest') or state.can_play('Sarias Song')))) - set_rule(world.get_entrance('Front of Meadow Grotto'), lambda state: (state.has('Bomb Bag') or (state.has_bombchus() and state.can_leave_forest())) or (state.has('Hammer') and state.is_adult() and (state.can_play('Minuet of Forest') or state.can_play('Sarias Song')))) + set_rule(world.get_entrance('Lost Woods Generic Grotto'), lambda state: state.can_blast_or_smash()) + set_rule(world.get_entrance('Lost Woods Sales Grotto'), lambda state: (state.has_explosives() or (state.has('Hammer') and state.is_adult() and (state.can_play('Minuet of Forest') or state.can_play('Sarias Song'))))) + set_rule(world.get_entrance('Front of Meadow Grotto'), lambda state: ((state.has_explosives() and (state.has_sticks() or state.has('Kokiri Sword'))) or (state.can_blast_or_smash() and state.is_adult() and (state.can_play('Minuet of Forest') or state.can_play('Sarias Song'))))) set_rule(world.get_entrance('Remote Southern Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Field Near Lake Inside Fence Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Field Valley Grotto'), lambda state: state.can_blast_or_smash()) @@ -218,18 +223,18 @@ def global_rules(world): set_rule(world.get_entrance('Field Kakariko Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Field North Lon Lon Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Castle Storms Grotto'), lambda state: state.can_play('Song of Storms')) - set_rule(world.get_entrance('Kakariko Bombable Grotto'), lambda state: state.can_blast_or_smash()) + set_rule(world.get_entrance('Kakariko Bombable Grotto'), lambda state: state.can_blast_or_smash() and (state.is_adult() or (state.has_sticks() or state.has('Kokiri Sword') or (state.has('Dins Fire') and state.has('Magi Meter'))))) set_rule(world.get_entrance('Mountain Bombable Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Mountain Storms Grotto'), lambda state: state.can_play('Song of Storms')) set_rule(world.get_entrance('Top of Crater Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Zora River Plateau Open Grotto'), lambda state: state.has_explosives() or state.has('Progressive Scale') or state.is_adult()) set_rule(world.get_entrance('Zora River Plateau Bombable Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_location('Tektite Grotto Freestanding PoH'), lambda state: state.has('Progressive Scale', 2) or (state.has('Iron Boots') and state.is_adult())) - set_rule(world.get_location('GS Kokiri Know It All House'), lambda state: state.nighttime() and state.can_leave_forest()) - set_rule(world.get_location('GS Kokiri Bean Patch'), lambda state: state.has_bottle()) + set_rule(world.get_location('GS Kokiri Know It All House'), lambda state: state.nighttime() and state.can_leave_forest() and state.can_child_attack()) + set_rule(world.get_location('GS Kokiri Bean Patch'), lambda state: state.has_bottle() and state.can_child_attack()) set_rule(world.get_location('GS Kokiri House of Twins'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.nighttime()) - set_rule(world.get_location('GS Lost Woods Bean Patch Near Bridge'), lambda state: state.has_bottle()) - set_rule(world.get_location('GS Lost Woods Bean Patch Near Stage'), lambda state: state.has_bottle()) + set_rule(world.get_location('GS Lost Woods Bean Patch Near Bridge'), lambda state: state.has_bottle() and state.can_child_attack()) + set_rule(world.get_location('GS Lost Woods Bean Patch Near Stage'), lambda state: state.has_bottle() and state.can_child_attack()) set_rule(world.get_location('GS Lost Woods Above Stage'), lambda state: state.has('Magic Bean') and state.nighttime()) set_rule(world.get_location('GS Sacred Forest Meadow'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.nighttime()) set_rule(world.get_location('GS Hyrule Field near Kakariko'), lambda state: (state.has('Boomerang') and state.has_explosives()) or (state.has('Progressive Hookshot') and state.is_adult())) @@ -242,48 +247,63 @@ def global_rules(world): set_rule(world.get_location('GS Kakariko Skulltula House'), lambda state: state.nighttime()) set_rule(world.get_location('GS Kakariko Guard\'s House'), lambda state: state.nighttime()) set_rule(world.get_location('GS Kakariko Tree'), lambda state: state.nighttime()) - set_rule(world.get_location('GS Kakariko Watchtower'), lambda state: (state.has('Slingshot') or state.has_bombchus()) and state.nighttime()) + set_rule(world.get_location('GS Kakariko Watchtower'), lambda state: (state.has_slingshot() or state.has_bombchus()) and state.nighttime()) set_rule(world.get_location('GS Kakariko Above Impa\'s House'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.nighttime()) set_rule(world.get_location('GS Graveyard Wall'), lambda state: state.has('Boomerang') and state.nighttime()) - set_rule(world.get_location('GS Graveyard Bean Patch'), lambda state: state.has_bottle()) + set_rule(world.get_location('GS Graveyard Bean Patch'), lambda state: state.has_bottle() and state.can_child_attack()) set_rule(world.get_location('GS Mountain Trail Bean Patch'), lambda state: state.has_bottle() and (state.has_explosives() or state.has('Progressive Strength Upgrade'))) set_rule(world.get_location('GS Mountain Trail Bomb Alcove'), lambda state: state.can_blast_or_smash()) set_rule(world.get_location('GS Mountain Trail Path to Crater'), lambda state: state.has('Hammer') and state.is_adult() and state.nighttime()) set_rule(world.get_location('GS Mountain Trail Above Dodongo\'s Cavern'), lambda state: state.has('Hammer') and state.is_adult() and state.nighttime()) set_rule(world.get_location('GS Goron City Boulder Maze'), lambda state: state.has_explosives()) set_rule(world.get_location('GS Goron City Center Platform'), lambda state: state.is_adult()) - set_rule(world.get_location('GS Mountain Crater Bean Patch'), lambda state: state.can_play('Bolero of Fire') and state.has_bottle()) - set_rule(world.get_location('GS Dodongo\'s Cavern Alcove Above Stairs'), lambda state: (state.has('Progressive Hookshot') and state.is_adult()) or (state.has('Boomerang') and (state.has_explosives() or state.has('Progressive Strength Upgrade')))) - set_rule(world.get_location('GS Dodongo\'s Cavern Scarecrow'), lambda state: state.is_adult() and ( (state.has('Progressive Hookshot') and state.has_ocarina()) or state.has('Progressive Hookshot', 2) )) - set_rule(world.get_location('GS Zora River Ladder'), lambda state: state.nighttime()) + set_rule(world.get_location('GS Mountain Crater Bean Patch'), lambda state: state.can_play('Bolero of Fire') and state.has_bottle() and state.can_child_attack()) + set_rule(world.get_location('GS Zora River Ladder'), lambda state: state.nighttime() and state.can_child_attack()) set_rule(world.get_location('GS Zora River Near Raised Grottos'), lambda state: state.has('Progressive Hookshot') and state.nighttime()) set_rule(world.get_location('GS Zora River Above Bridge'), lambda state: state.has('Progressive Hookshot') and state.nighttime()) - set_rule(world.get_location('GS Zora\'s Domain Frozen Waterfall'), lambda state: state.nighttime() and (state.has('Progressive Hookshot') or state.has('Bow') or state.has('Magic Meter'))) + set_rule(world.get_location('GS Zora\'s Domain Frozen Waterfall'), lambda state: state.nighttime() and (state.has('Progressive Hookshot') or state.has_bow() or state.has('Magic Meter'))) set_rule(world.get_location('GS Zora\'s Fountain Above the Log'), lambda state: state.has('Boomerang') and state.nighttime()) set_rule(world.get_location('GS Zora\'s Fountain Hidden Cave'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.can_blast_or_smash() and state.has('Progressive Hookshot') and state.nighttime()) # Jabu Jabu GS need no reqs becuase the access reqs for their zones cover them. - set_rule(world.get_location('GS Lake Hylia Bean Patch'), lambda state: state.has_bottle()) + set_rule(world.get_location('GS Lake Hylia Bean Patch'), lambda state: state.has_bottle() and state.can_child_attack()) set_rule(world.get_location('GS Lake Hylia Lab Wall'), lambda state: state.has('Boomerang') and state.nighttime()) - set_rule(world.get_location('GS Lake Hylia Small Island'), lambda state: state.nighttime()) + set_rule(world.get_location('GS Lake Hylia Small Island'), lambda state: state.nighttime() and state.can_child_attack()) set_rule(world.get_location('GS Lake Hylia Giant Tree'), lambda state: state.is_adult() and state.has('Progressive Hookshot', 2)) set_rule(world.get_location('GS Lab Underwater Crate'), lambda state: state.is_adult() and state.has('Iron Boots') and state.has('Progressive Hookshot')) set_rule(world.get_location('GS Gerudo Valley Small Bridge'), lambda state: state.has('Boomerang') and state.nighttime()) - set_rule(world.get_location('GS Gerudo Valley Bean Patch'), lambda state: state.has_bottle()) + set_rule(world.get_location('GS Gerudo Valley Bean Patch'), lambda state: state.has_bottle() and state.can_child_attack()) set_rule(world.get_location('GS Gerudo Valley Behind Tent'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.nighttime()) set_rule(world.get_location('GS Gerudo Valley Pillar'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.nighttime()) set_rule(world.get_location('GS Gerudo Fortress Archery Range'), lambda state: state.has('Progressive Hookshot') and state.has('Carpenter Rescue') and state.is_adult() and state.nighttime()) set_rule(world.get_location('GS Gerudo Fortress Top Floor'), lambda state: state.nighttime()) set_rule(world.get_location('GS Wasteland Ruins'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('GS Desert Colossus Bean Patch'), lambda state: state.has_bottle() and state.can_play('Requiem of Spirit')) + set_rule(world.get_location('GS Desert Colossus Bean Patch'), lambda state: state.has_bottle() and state.can_play('Requiem of Spirit') and state.can_child_attack()) set_rule(world.get_location('GS Desert Colossus Tree'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.nighttime()) set_rule(world.get_location('GS Desert Colossus Hill'), lambda state: ((state.has('Magic Bean') and state.can_play('Requiem of Spirit')) or state.has('Progressive Hookshot', 2)) and state.is_adult() and state.nighttime()) + set_rule(world.get_location('Deku Salesman Woods'), lambda state: state.can_stun_deku()) + set_rule(world.get_location('Deku Salesman Lost Woods Grotto'), lambda state: state.can_stun_deku()) + set_rule(world.get_location('Deku Salesman Hyrule Field Grotto'), lambda state: state.can_stun_deku()) + set_rule(world.get_location('GS Death Mountain Crater Crate'), lambda state: state.can_child_attack()) + set_rule(world.get_location('GS Zora River Tree'), lambda state: state.can_child_attack()) + for location in world.get_locations(): if location.type != 'Chest': forbid_item(location, 'Ice Trap') add_item_rule(location, lambda i: not (i.type == 'Song' and not i.world.shuffle_song_items and i.world.id != location.world.id)) - if location.type == 'Shop' and not location.name.endswith('5') and not location.name.endswith('7'): - add_item_rule(location, lambda i: (i.type == 'Shop')) + if location.type == 'Shop': + if location.name.startswith('Bombchu Shop') or location.name.startswith('Castle Town Potion Shop'): + forbid_item(location, 'Buy Goron Tunic') + forbid_item(location, 'Buy Zora Tunic') + + if location.name.endswith('5') or location.name.endswith('7'): + add_item_rule(location, lambda i: (i.type != 'Shop')) + if location.price > 200: + set_rule(location, lambda state: state.has('Progressive Wallet', 2)) + elif location.price > 99: + set_rule(location, lambda state: state.has('Progressive Wallet')) + else: + add_item_rule(location, lambda i: (i.type == 'Shop')) else: add_item_rule(location, lambda i: (i.type != 'Shop')) @@ -295,46 +315,61 @@ def global_rules(world): def dung_rules_dt0(world): # Deku Tree Vanilla - set_rule(world.get_entrance('Deku Tree Basement Path'), lambda state: state.has('Slingshot')) + set_rule(world.get_entrance('Deku Tree Basement Path'), lambda state: state.has_slingshot() and (state.has_sticks() or (state.has('Dins Fire') and state.has('Magic Meter')))) + set_rule(world.get_entrance('Deku Tree Slingshot Passage'), lambda state: state.has('Buy Deku Shield')) + + set_rule(world.get_location('Queen Gohma Heart'), lambda state: state.has('Buy Deku Shield') and (state.has('Kokiri Sword') or state.has_sticks())) + set_rule(world.get_location('Queen Gohma'), lambda state: state.has('Buy Deku Shield') and (state.has('Kokiri Sword') or state.has_sticks())) # GS - set_rule(world.get_location('GS Deku Tree Basement Back Room'), lambda state: state.has('Boomerang') and (state.has('Bomb Bag') or (state.has_bombchus() and state.can_leave_forest()))) + set_rule(world.get_location('GS Deku Tree Basement Back Room'), lambda state: state.has('Boomerang') and (state.has_explosives())) + set_rule(world.get_location('GS Deku Tree Basement Gate'), lambda state: state.can_child_attack()) + set_rule(world.get_location('GS Deku Tree Basement Vines'), lambda state: state.can_child_attack()) + set_rule(world.get_location('GS Deku Tree Compass Room'), lambda state: state.can_child_attack()) def dung_rules_dc0(world): # Dodongo's Cavern Vanilla set_rule(world.get_entrance('Dodongos Cavern Rocks'), lambda state: state.can_blast_or_smash() or state.has('Progressive Strength Upgrade') or state.is_adult()) set_rule(world.get_entrance('Dodongos Cavern Lobby'), lambda state: state.can_blast_or_smash() or state.has('Progressive Strength Upgrade')) - set_rule(world.get_entrance('Dodongos Cavern Left Door'), lambda state: state.has_explosives() or state.has('Progressive Strength Upgrade') or (state.has('Dins Fire') and state.has('Magic Meter')) or (state.has('Bow') and state.is_adult())) - set_rule(world.get_entrance('Dodongos Cavern Slingshot Target'), lambda state: state.has('Slingshot') or ((state.has('Bow') or state.has('Hover Boots') or state.has('Progressive Hookshot', 2) or world.logic_dc_jump) and state.is_adult())) - set_rule(world.get_location('Dodongos Cavern End of Bridge Chest'), lambda state: state.has_explosives() or ((state.has('Bow') or state.has('Hover Boots') or state.has('Progressive Hookshot', 2) or world.logic_dc_jump) and state.is_adult() and state.has('Hammer'))) + set_rule(world.get_entrance('Dodongos Cavern Left Door'), lambda state: (state.is_adult() or ((state.has_sticks() or (state.has('Dins Fire') and state.has('Magic Meter'))) and (state.has_slingshot() or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword'))) and (state.has_explosives() or state.has('Progressive Strength Upgrade') or (state.has('Dins Fire') and state.has('Magic Meter')) or (state.has_bow() and state.is_adult())))) + set_rule(world.get_location('Dodongos Cavern Compass Chest'), lambda state: (state.is_adult() or ((state.has_sticks() or (state.has('Dins Fire') and state.has('Magic Meter'))) and (state.has_slingshot() or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword'))))) + + set_rule(world.get_entrance('Dodongos Cavern Slingshot Target'), lambda state: state.has_slingshot() or ((state.has_bow() or state.has('Hover Boots') or state.has('Progressive Hookshot', 2) or world.logic_dc_jump) and state.is_adult())) + set_rule(world.get_location('Dodongos Cavern End of Bridge Chest'), lambda state: state.has_explosives() or ((state.has_bow() or state.has('Hover Boots') or state.has('Progressive Hookshot', 2) or world.logic_dc_jump) and state.is_adult() and state.has('Hammer'))) set_rule(world.get_entrance('Dodongos Cavern Bomb Drop'), lambda state: state.has_explosives()) + # GS + set_rule(world.get_location('GS Dodongo\'s Cavern Alcove Above Stairs'), lambda state: (state.has('Progressive Hookshot') and state.is_adult()) or (state.has('Boomerang') and (state.has_explosives() or state.has('Progressive Strength Upgrade')))) + set_rule(world.get_location('GS Dodongo\'s Cavern Scarecrow'), lambda state: state.is_adult() and ( (state.has('Progressive Hookshot') and state.has_ocarina()) or state.has('Progressive Hookshot', 2) )) + def dung_rules_jb0(world): - set_rule(world.get_entrance('Jabu Jabus Belly Ceiling Switch'), lambda state: state.has('Slingshot') or state.has_explosives() or state.has('Boomerang')) - set_rule(world.get_entrance('Jabu Jabus Belly Tentacles'), lambda state: state.has('Boomerang')) + set_rule(world.get_entrance('Jabu Jabus Belly Ceiling Switch'), lambda state: state.has_slingshot() or state.has_explosives() or state.has('Boomerang')) + set_rule(world.get_entrance('Jabu Jabus Belly Tentacles'), lambda state: state.has('Boomerang')) + set_rule(world.get_entrance('Jabu Jabus Belly Octopus'), lambda state: (state.has_nuts() or state.has_slingshot()) and (state.has_sticks() or state.has('Kokiri Sword'))) + set_rule(world.get_location('Boomerang Chest'), lambda state: state.has_slingshot() or state.has('Boomerang') or (state.has_nuts() and (state.has_sticks() or state.has('Kokiri Sword')))) def dung_rules_fot0(world): # Forest Temple Vanilla set_rule(world.get_entrance('Forest Temple Song of Time Block'), lambda state: state.can_play('Song of Time')) - set_rule(world.get_entrance('Forest Temple Lobby Eyeball Switch'), lambda state: state.has('Bow') and state.is_adult()) + set_rule(world.get_entrance('Forest Temple Lobby Eyeball Switch'), lambda state: state.has_bow() and state.is_adult()) set_rule(world.get_entrance('Forest Temple Lobby Locked Door'), lambda state: state.has('Small Key (Forest Temple)', 1)) set_rule(world.get_entrance('Forest Temple Well Connection'), lambda state: ((state.has('Iron Boots') or state.has('Progressive Hookshot', 2)) and state.is_adult()) or state.has('Progressive Scale', 2)) #Longshot can grab some very high up vines to drain the well. set_rule(world.get_entrance('Forest Temple Scarecrows Song'), lambda state: False) #For some reason you can't actually activate this from below. Cool game. - set_rule(world.get_entrance('Forest Temple Elevator'), lambda state: state.has('Bow') and state.is_adult() and state.has('Progressive Strength Upgrade') and state.has('Small Key (Forest Temple)', 3)) + set_rule(world.get_entrance('Forest Temple Elevator'), lambda state: state.has_bow() and state.is_adult() and state.has('Progressive Strength Upgrade') and state.has('Small Key (Forest Temple)', 3)) set_rule(world.get_entrance('Forest Temple Outside Backdoor'), lambda state: state.has('Hover Boots') and state.is_adult()) set_rule(world.get_entrance('Forest Temple Twisted Hall'), lambda state: state.has('Progressive Strength Upgrade') and state.has('Small Key (Forest Temple)', 3)) - set_rule(world.get_entrance('Forest Temple Straightened Hall'), lambda state: state.has('Progressive Strength Upgrade') and state.has('Small Key (Forest Temple)', 2) and state.has('Bow')) - set_rule(world.get_entrance('Forest Temple Drop to Falling Room'), lambda state: state.has('Small Key (Forest Temple)', 5) and (state.has('Bow') or (state.has('Dins Fire') and state.has('Magic Meter')))) - set_rule(world.get_location('Forest Temple Block Push Chest'), lambda state: state.has('Progressive Strength Upgrade') and state.has('Bow') and state.is_adult()) - set_rule(world.get_location('Forest Temple Red Poe Chest'), lambda state: state.has('Bow') and state.is_adult()) - set_rule(world.get_location('Forest Temple Blue Poe Chest'), lambda state: state.has('Bow') and state.is_adult()) + set_rule(world.get_entrance('Forest Temple Straightened Hall'), lambda state: state.has('Progressive Strength Upgrade') and state.has('Small Key (Forest Temple)', 2) and state.has_bow()) + set_rule(world.get_entrance('Forest Temple Drop to Falling Room'), lambda state: state.has('Small Key (Forest Temple)', 5) and (state.has_bow() or (state.has('Dins Fire') and state.has('Magic Meter')))) + set_rule(world.get_location('Forest Temple Block Push Chest'), lambda state: state.has('Progressive Strength Upgrade') and state.has_bow() and state.is_adult()) + set_rule(world.get_location('Forest Temple Red Poe Chest'), lambda state: state.has_bow() and state.is_adult()) + set_rule(world.get_location('Forest Temple Blue Poe Chest'), lambda state: state.has_bow() and state.is_adult()) # Boss set_rule(world.get_location('Phantom Ganon'), lambda state: state.has('Boss Key (Forest Temple)')) set_rule(world.get_location('Phantom Ganon Heart'), lambda state: state.has('Boss Key (Forest Temple)')) # GS - set_rule(world.get_location('GS Forest Temple First Room'), lambda state: (state.has('Progressive Hookshot') or state.has('Bow') or (state.has('Dins Fire') and state.has('Magic Meter'))) and state.is_adult()) + set_rule(world.get_location('GS Forest Temple First Room'), lambda state: (state.has('Progressive Hookshot') or state.has_bow() or (state.has('Dins Fire') and state.has('Magic Meter'))) and state.is_adult()) set_rule(world.get_location('GS Forest Temple Lobby'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) set_rule(world.get_location('GS Forest Temple Outdoor East'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) set_rule(world.get_location('GS Forest Temple Outdoor West'), lambda state: (state.has('Progressive Hookshot', 2) or (state.has('Progressive Hookshot') and state.can_reach('Forest Temple Outside Upper Ledge'))) and state.is_adult()) @@ -342,13 +377,13 @@ def dung_rules_fot0(world): def dung_rules_fit0(world): # Fire Temple Vanilla - set_rule(world.get_entrance('Fire Temple Early Climb'), lambda state: state.has_GoronTunic() and state.has('Small Key (Fire Temple)', 3) and state.has('Progressive Strength Upgrade') and (state.has_explosives() or ((state.has('Bow') or state.has('Progressive Hookshot')) and state.is_adult()))) + set_rule(world.get_entrance('Fire Temple Early Climb'), lambda state: state.has_GoronTunic() and state.has('Small Key (Fire Temple)', 3) and state.has('Progressive Strength Upgrade') and (state.has_explosives() or ((state.has_bow() or state.has('Progressive Hookshot')) and state.is_adult()))) set_rule(world.get_entrance('Fire Temple Fire Maze Escape'), lambda state: state.has('Small Key (Fire Temple)', 7) or (state.has('Small Key (Fire Temple)', 6) and state.has('Hover Boots') and state.has('Hammer') and state.is_adult())) set_rule(world.get_location('Fire Temple Fire Dancer Chest'), lambda state: state.is_adult() and state.has('Hammer')) set_rule(world.get_location('Fire Temple Boss Key Chest'), lambda state: state.is_adult() and state.has('Hammer')) set_rule(world.get_location('Fire Temple Big Lava Room Bombable Chest'), lambda state: state.has('Small Key (Fire Temple)', 1) and state.has_explosives()) set_rule(world.get_location('Fire Temple Big Lava Room Open Chest'), lambda state: state.has('Small Key (Fire Temple)', 1)) - set_rule(world.get_location('Fire Temple Map Chest'), lambda state: state.has('Small Key (Fire Temple)', 5) or (state.has('Small Key (Fire Temple)', 4) and state.is_adult() and state.has('Bow'))) + set_rule(world.get_location('Fire Temple Map Chest'), lambda state: state.has('Small Key (Fire Temple)', 5) or (state.has('Small Key (Fire Temple)', 4) and state.is_adult() and state.has_bow())) set_rule(world.get_location('Fire Temple Boulder Maze Upper Chest'), lambda state: state.has('Small Key (Fire Temple)', 5)) set_rule(world.get_location('Fire Temple Boulder Maze Bombable Pit'), lambda state: state.has('Small Key (Fire Temple)', 5) and state.has_explosives()) set_rule(world.get_location('Fire Temple Scarecrow Chest'), lambda state: state.has_ocarina() and state.has('Small Key (Fire Temple)', 5) and state.has('Progressive Hookshot') and state.is_adult()) @@ -369,16 +404,16 @@ def dung_rules_fit0(world): def dung_rules_wt0(world): # Water Temple vanilla - set_rule(world.get_entrance('Water Temple Central Pillar'), lambda state: (state.has('Bow') or (state.has('Dins Fire') and state.has('Magic Meter')) or state.has('Small Key (Water Temple)', 5)) and state.can_play('Zeldas Lullaby')) + set_rule(world.get_entrance('Water Temple Central Pillar'), lambda state: (state.has_bow() or (state.has('Dins Fire') and state.has('Magic Meter')) or state.has('Small Key (Water Temple)', 5)) and state.can_play('Zeldas Lullaby')) set_rule(world.get_entrance('Water Temple Upper Locked Door'), lambda state: state.has('Small Key (Water Temple)', 5) and (state.can_play('Zeldas Lullaby') or world.keysanity)) - set_rule(world.get_location('Water Temple Torches Chest'), lambda state: (state.has('Bow') or (state.has('Dins Fire') and state.has('Magic Meter'))) and state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('Water Temple Dragon Chest'), lambda state: (state.has('Progressive Strength Upgrade') and state.can_play('Zeldas Lullaby')) or (state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity) and state.can_play('Song of Time') and state.has('Bow'))) - set_rule(world.get_location('Water Temple Central Bow Target Chest'), lambda state: state.has('Bow') and state.has('Progressive Strength Upgrade') and state.can_play('Zeldas Lullaby') and (state.has('Hover Boots') or state.has('Progressive Hookshot', 2))) + set_rule(world.get_location('Water Temple Torches Chest'), lambda state: (state.has_bow() or (state.has('Dins Fire') and state.has('Magic Meter'))) and state.can_play('Zeldas Lullaby')) + set_rule(world.get_location('Water Temple Dragon Chest'), lambda state: (state.has('Progressive Strength Upgrade') and state.can_play('Zeldas Lullaby')) or (state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity) and state.can_play('Song of Time') and state.has_bow())) + set_rule(world.get_location('Water Temple Central Bow Target Chest'), lambda state: state.has_bow() and state.has('Progressive Strength Upgrade') and state.can_play('Zeldas Lullaby') and (state.has('Hover Boots') or state.has('Progressive Hookshot', 2))) set_always_allow(world.get_location('Water Temple Boss Key Chest'), lambda item, state: item.name == 'Small Key (Water Temple)') set_rule(world.get_location('Water Temple Boss Key Chest'), lambda state: (state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity) and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and state.has('Progressive Hookshot', 2)) or item_name(state, 'Water Temple Boss Key Chest') == 'Small Key (Water Temple)') #If key for key, this lets the logic reduce the small key reqs for every other locked door. set_rule(world.get_location('Water Temple Cracked Wall Chest'), lambda state: state.has_explosives()) set_rule(world.get_location('Water Temple Dark Link Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity)) - set_rule(world.get_location('Water Temple River Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and state.can_play('Song of Time') and state.has('Bow') and (state.can_play('Zeldas Lullaby') or world.keysanity)) + set_rule(world.get_location('Water Temple River Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and state.can_play('Song of Time') and state.has_bow() and (state.can_play('Zeldas Lullaby') or world.keysanity)) set_rule(world.get_location('Water Temple Central Pillar Chest'), lambda state: state.has_ZoraTunic()) # boss rules @@ -401,17 +436,17 @@ def dung_rules_spt0(world): set_rule(world.get_entrance('Child Spirit Temple Passthrough'), lambda state: state.has_explosives()) set_rule(world.get_entrance('Adult Spirit Temple Passthrough'), lambda state: state.has('Small Key (Spirit Temple)', 1)) set_rule(world.get_entrance('Spirit Temple Central Locked Door'), lambda state: state.has('Small Key (Spirit Temple)', 4) and state.has('Progressive Strength Upgrade', 2) and state.is_adult()) - set_rule(world.get_entrance('Spirit Temple Final Locked Door'), lambda state: state.has('Small Key (Spirit Temple)', 5) and (state.has('Progressive Hookshot') or state.has('Bow') or state.has_explosives())) - set_rule(world.get_location('Spirit Temple Child Left Chest'), lambda state: state.has('Boomerang') or state.has('Slingshot') or state.has_bombchus()) - set_rule(world.get_location('Spirit Temple Child Right Chest'), lambda state: state.has('Boomerang') or state.has('Slingshot') or state.has_bombchus()) + set_rule(world.get_entrance('Spirit Temple Final Locked Door'), lambda state: state.has('Small Key (Spirit Temple)', 5) and (state.has('Progressive Hookshot') or state.has_bow() or state.has_explosives())) + set_rule(world.get_location('Spirit Temple Child Left Chest'), lambda state: state.has('Boomerang') or state.has_slingshot() or state.has_bombchus()) + set_rule(world.get_location('Spirit Temple Child Right Chest'), lambda state: state.has('Boomerang') or state.has_slingshot() or state.has_bombchus()) set_rule(world.get_location('Spirit Temple Compass Chest'), lambda state: state.has('Progressive Hookshot') and state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('Spirit Temple Early Adult Right Chest'), lambda state: state.has('Bow') or state.has('Progressive Hookshot') or state.has_bombchus()) #requires a very specific Bombchu use, Hover Boots can be skipped by jumping on top of the rolling rock. + set_rule(world.get_location('Spirit Temple Early Adult Right Chest'), lambda state: state.has_bow() or state.has('Progressive Hookshot') or state.has_bombchus()) #requires a very specific Bombchu use, Hover Boots can be skipped by jumping on top of the rolling rock. set_rule(world.get_location('Spirit Temple First Mirror Right Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3)) set_rule(world.get_location('Spirit Temple First Mirror Left Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3)) - set_rule(world.get_location('Spirit Temple Map Chest'), lambda state: (state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit')) or (state.has('Magic Meter') and (state.has('Dins Fire') or (state.has('Fire Arrows') and state.has('Bow') and state.has('Progressive Strength Upgrade', 2) and state.has('Small Key (Spirit Temple)', 3) and state.is_adult())))) - set_rule(world.get_location('Spirit Temple Child Climb East Chest'), lambda state: state.has_explosives() or ((state.has('Boomerang') or state.has('Slingshot')) and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 5) and state.can_play('Requiem of Spirit') and (state.has('Boomerang') or state.has('Slingshot')))) - set_rule(world.get_location('Spirit Temple Child Climb North Chest'), lambda state: state.has_explosives() or ((state.has('Boomerang') or state.has('Slingshot')) and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 5) and state.can_play('Requiem of Spirit') and (state.has('Boomerang') or state.has('Slingshot')))) - set_rule(world.get_location('Spirit Temple Sun Block Room Chest'), lambda state: (state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit')) or (state.has('Magic Meter') and (state.has('Dins Fire') or (state.has('Fire Arrows') and state.has('Bow') and state.has('Progressive Strength Upgrade', 2) and state.has('Small Key (Spirit Temple)', 3) and state.is_adult())))) + set_rule(world.get_location('Spirit Temple Map Chest'), lambda state: (state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit') and (state.has_sticks() or (state.has('Magic Meter') and state.has('Dins Fire')))) or (state.has('Magic Meter') and (state.has('Dins Fire') or (state.has('Fire Arrows') and state.has_bow() and state.has('Progressive Strength Upgrade', 2) and state.has('Small Key (Spirit Temple)', 3) and state.is_adult())))) + set_rule(world.get_location('Spirit Temple Child Climb East Chest'), lambda state: state.has_explosives() or ((state.has('Boomerang') or state.has_slingshot()) and (state.has('Progressive Hookshot') or state.has_bow())) or (state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and (state.has('Progressive Hookshot') or state.has_bow())) or (state.has('Small Key (Spirit Temple)', 5) and state.can_play('Requiem of Spirit') and (state.has('Boomerang') or state.has_slingshot()))) + set_rule(world.get_location('Spirit Temple Child Climb North Chest'), lambda state: state.has_explosives() or ((state.has('Boomerang') or state.has_slingshot()) and (state.has('Progressive Hookshot') or state.has_bow())) or (state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and (state.has('Progressive Hookshot') or state.has_bow())) or (state.has('Small Key (Spirit Temple)', 5) and state.can_play('Requiem of Spirit') and (state.has('Boomerang') or state.has_slingshot()))) + set_rule(world.get_location('Spirit Temple Sun Block Room Chest'), lambda state: (state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit') and (state.has_sticks() or (state.has('Magic Meter') and state.has('Dins Fire')))) or (state.has('Magic Meter') and (state.has('Dins Fire') or (state.has('Fire Arrows') and state.has_bow() and state.has('Progressive Strength Upgrade', 2) and state.has('Small Key (Spirit Temple)', 3) and state.is_adult())))) set_rule(world.get_location('Spirit Temple Statue Hand Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.can_play('Zeldas Lullaby')) set_rule(world.get_location('Spirit Temple NE Main Room Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.can_play('Zeldas Lullaby') and (state.has('Progressive Hookshot') or state.has("Hover Boots"))) set_rule(world.get_location('Mirror Shield Chest'), lambda state: state.has('Small Key (Spirit Temple)', 4) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.has_explosives()) @@ -419,16 +454,17 @@ def dung_rules_spt0(world): set_rule(world.get_location('Spirit Temple Near Four Armos Chest'), lambda state: state.has('Mirror Shield') and state.has_explosives()) set_rule(world.get_location('Spirit Temple Hallway Left Invisible Chest'), lambda state: state.can_see_with_lens() and state.has_explosives()) set_rule(world.get_location('Spirit Temple Hallway Right Invisible Chest'), lambda state: state.can_see_with_lens() and state.has_explosives()) - set_rule(world.get_location('Spirit Temple Boss Key Chest'), lambda state: state.can_play('Zeldas Lullaby') and state.has('Bow') and state.has('Progressive Hookshot') and state.can_blast_or_smash()) + set_rule(world.get_location('Spirit Temple Boss Key Chest'), lambda state: state.can_play('Zeldas Lullaby') and state.has_bow() and state.has('Progressive Hookshot') and state.can_blast_or_smash()) set_rule(world.get_location('Spirit Temple Topmost Chest'), lambda state: state.has('Mirror Shield')) set_rule(world.get_location('Twinrova'), lambda state: state.has('Mirror Shield') and state.has_explosives() and state.has('Progressive Hookshot') and state.has('Boss Key (Spirit Temple)')) set_rule(world.get_location('Twinrova Heart'), lambda state: state.has('Mirror Shield') and state.has_explosives() and state.has('Progressive Hookshot') and state.has('Boss Key (Spirit Temple)')) # GS - set_rule(world.get_location('GS Spirit Temple Metal Fence'), lambda state: state.has('Boomerang') or state.has('Slingshot') or state.has_bombchus()) + set_rule(world.get_location('GS Spirit Temple Metal Fence'), lambda state: state.has('Boomerang') or state.has_slingshot() or state.has_bombchus()) set_rule(world.get_location('GS Spirit Temple Hall to West Iron Knuckle'), lambda state: (state.has('Boomerang') and state.has('Progressive Hookshot')) or (state.has('Boomerang') and state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit')) or (state.has('Progressive Hookshot') and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.has('Small Key (Spirit Temple)', 3))) - set_rule(world.get_location('GS Spirit Temple Boulder Room'), lambda state: state.can_play('Song of Time') and (state.has('Bow') or state.has('Progressive Hookshot') or state.has_bombchus())) + set_rule(world.get_location('GS Spirit Temple Boulder Room'), lambda state: state.can_play('Song of Time') and (state.has_bow() or state.has('Progressive Hookshot') or state.has_bombchus())) set_rule(world.get_location('GS Spirit Temple Lobby'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.has('Small Key (Spirit Temple)', 3) and state.is_adult() and (state.has('Progressive Hookshot', 2) or (state.has('Progressive Hookshot') and state.has_ocarina()) or state.has('Hover Boots'))) + set_rule(world.get_location('GS Spirit Temple Bomb for Light Room'), lambda state: (state.has('Small Key (Spirit Temple)', 1) and state.can_play('Requiem of Spirit') and state.can_child_attack()) or (state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.has('Small Key (Spirit Temple)', 1))) def dung_rules_sht0(world): # Shadow Temple Vanilla @@ -442,8 +478,8 @@ def dung_rules_sht0(world): set_rule(world.get_location('Shadow Temple Freestanding Key'), lambda state: state.has('Small Key (Shadow Temple)', 2) and state.has('Progressive Hookshot')) # boss rules - set_rule(world.get_location('Bongo Bongo'), lambda state: state.has('Small Key (Shadow Temple)', 5) and (state.has('Bow') or state.has('Progressive Hookshot', 2)) and state.has('Boss Key (Shadow Temple)')) - set_rule(world.get_location('Bongo Bongo Heart'), lambda state: state.has('Small Key (Shadow Temple)', 5) and (state.has('Bow') or state.has('Progressive Hookshot', 2)) and state.has('Boss Key (Shadow Temple)')) + set_rule(world.get_location('Bongo Bongo'), lambda state: state.has('Small Key (Shadow Temple)', 5) and (state.has_bow() or state.has('Progressive Hookshot', 2)) and state.has('Boss Key (Shadow Temple)')) + set_rule(world.get_location('Bongo Bongo Heart'), lambda state: state.has('Small Key (Shadow Temple)', 5) and (state.has_bow() or state.has('Progressive Hookshot', 2)) and state.has('Boss Key (Shadow Temple)')) # GS set_rule(world.get_location('GS Shadow Temple Like Like Room'), lambda state: state.has('Progressive Hookshot')) @@ -458,13 +494,14 @@ def dung_rules_bw0(world): set_rule(world.get_location('Bottom of the Well Center Large Chest'), lambda state: state.can_see_with_lens()) set_rule(world.get_location('Bottom of the Well Center Small Chest'), lambda state: state.can_see_with_lens()) set_rule(world.get_location('Bottom of the Well Back Left Bombable'), lambda state: state.has_explosives()) - set_rule(world.get_location('Bottom of the Well Defeat Boss'), lambda state: state.can_play('Zeldas Lullaby') and (state.has('Kokiri Sword') or world.logic_child_deadhand)) #Sword not strictly necessary but frankly being forced to do this with sticks isn't fair + set_rule(world.get_location('Bottom of the Well Defeat Boss'), lambda state: state.can_play('Zeldas Lullaby') and (state.has('Kokiri Sword') or (state.has_sticks() and world.logic_child_deadhand))) #Sword not strictly necessary but frankly being forced to do this with sticks isn't fair set_rule(world.get_location('Bottom of the Well Invisible Chest'), lambda state: state.can_play('Zeldas Lullaby') and state.can_see_with_lens()) set_rule(world.get_location('Bottom of the Well Underwater Front Chest'), lambda state: state.can_play('Zeldas Lullaby')) set_rule(world.get_location('Bottom of the Well Underwater Left Chest'), lambda state: state.can_play('Zeldas Lullaby')) set_rule(world.get_location('Bottom of the Well Basement Chest'), lambda state: state.has_explosives() or (((state.has('Small Key (Bottom of the Well)', 3) and state.can_see_with_lens()) or (state.has('Dins Fire') and state.has('Magic Meter'))) and state.has('Progressive Strength Upgrade'))) set_rule(world.get_location('Bottom of the Well Locked Pits'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.can_see_with_lens()) #These pits are really unfair. set_rule(world.get_location('Bottom of the Well Behind Right Grate'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.can_see_with_lens()) + set_rule(world.get_location('Bottom of the Well Freestanding Key'), lambda state: state.has_sticks() or (state.has('Dins Fire') or state.has('Magic Meter'))) # GS set_rule(world.get_location('GS Well West Inner Room'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang') and state.can_see_with_lens()) @@ -490,10 +527,10 @@ def dung_rules_gtg0(world): set_rule(world.get_entrance('Gerudo Training Grounds Right Locked Doors'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 9)) set_rule(world.get_entrance('Gerudo Training Grounds Maze Ledge'), lambda state: state.can_play('Song of Time')) set_rule(world.get_entrance('Gerudo Training Grounds Right Hookshot Target'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_entrance('Gerudo Training Grounds Hammer Target'), lambda state: state.has('Hammer') and state.has('Bow') and state.is_adult()) + set_rule(world.get_entrance('Gerudo Training Grounds Hammer Target'), lambda state: state.has('Hammer') and state.has_bow() and state.is_adult()) set_rule(world.get_entrance('Gerudo Training Grounds Hidden Hookshot Target'), lambda state: state.has('Progressive Hookshot') and state.can_see_with_lens() and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Lobby Left Chest'), lambda state: state.has('Bow') and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Lobby Right Chest'), lambda state: state.has('Bow') and state.is_adult()) + set_rule(world.get_location('Gerudo Training Grounds Lobby Left Chest'), lambda state: state.has_bow() and state.is_adult()) + set_rule(world.get_location('Gerudo Training Grounds Lobby Right Chest'), lambda state: state.has_bow() and state.is_adult()) set_rule(world.get_location('Gerudo Training Grounds Beamos Chest'), lambda state: state.has_explosives()) set_rule(world.get_location('Gerudo Training Grounds Hidden Ceiling Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 3) and state.can_see_with_lens()) set_rule(world.get_location('Gerudo Training Grounds Maze Path First Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 4)) @@ -503,8 +540,8 @@ def dung_rules_gtg0(world): set_always_allow(world.get_location('Gerudo Training Grounds Maze Path Final Chest'), lambda item, state: item.name == 'Small Key (Gerudo Training Grounds)') set_rule(world.get_location('Gerudo Training Grounds Underwater Silver Rupee Chest'), lambda state: state.has('Progressive Hookshot') and state.can_play('Song of Time') and state.has('Iron Boots') and state.is_adult() and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic())) set_rule(world.get_location('Gerudo Training Grounds Hammer Room Switch Chest'), lambda state: state.has('Hammer') and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Eye Statue Chest'), lambda state: state.has('Bow') and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Near Scarecrow Chest'), lambda state: state.has('Bow') and state.is_adult()) + set_rule(world.get_location('Gerudo Training Grounds Eye Statue Chest'), lambda state: state.has_bow() and state.is_adult()) + set_rule(world.get_location('Gerudo Training Grounds Near Scarecrow Chest'), lambda state: state.has_bow() and state.is_adult()) set_rule(world.get_location('Gerudo Training Grounds Heavy Block First Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.can_see_with_lens() and state.is_adult()) set_rule(world.get_location('Gerudo Training Grounds Heavy Block Second Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.can_see_with_lens() and state.is_adult()) set_rule(world.get_location('Gerudo Training Grounds Heavy Block Third Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.can_see_with_lens() and state.is_adult()) @@ -513,16 +550,16 @@ def dung_rules_gtg0(world): def dung_rules_gc0(world): set_rule(world.get_entrance('Ganons Castle Light Trial'), lambda state: state.has('Progressive Strength Upgrade', 3)) set_rule(world.get_entrance('Ganons Castle Tower'), lambda state: (world.skipped_trials['Forest'] or state.has('Forest Trial Clear')) and (world.skipped_trials['Fire'] or state.has('Fire Trial Clear')) and (world.skipped_trials['Water'] or state.has('Water Trial Clear')) and (world.skipped_trials['Shadow'] or state.has('Shadow Trial Clear')) and (world.skipped_trials['Spirit'] or state.has('Spirit Trial Clear')) and (world.skipped_trials['Light'] or state.has('Light Trial Clear'))) - set_rule(world.get_location('Ganons Castle Forest Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and (state.has('Fire Arrows') or state.has('Dins Fire'))) - set_rule(world.get_location('Ganons Castle Fire Trial Clear'), lambda state: state.has_GoronTunic() and state.has('Progressive Strength Upgrade', 3) and state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and state.has('Progressive Hookshot', 2)) - set_rule(world.get_location('Ganons Castle Water Trial Clear'), lambda state: state.has_bottle() and state.has('Hammer') and state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows')) - set_rule(world.get_location('Ganons Castle Shadow Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and state.has('Hammer') and ((state.has('Fire Arrows') and (state.has('Hover Boots') or state.can_see_with_lens())) or (state.has('Progressive Hookshot', 2) and (state.has('Hover Boots') or (state.has('Dins Fire') and state.can_see_with_lens()))))) - set_rule(world.get_location('Ganons Castle Shadow Trial First Chest'), lambda state: (state.has('Magic Meter') and state.has('Bow') and state.has('Fire Arrows')) or state.has('Progressive Hookshot') or state.has('Hover Boots') or state.can_play('Song of Time')) - set_rule(world.get_location('Ganons Castle Shadow Trial Second Chest'), lambda state: (state.has('Magic Meter') and state.has('Bow') and state.has('Fire Arrows')) or (state.has('Progressive Hookshot', 2) and (state.has('Hover Boots') or (state.has('Dins Fire') and state.has('Magic Meter'))))) - set_rule(world.get_location('Ganons Castle Spirit Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and state.has('Mirror Shield') and state.has_bombchus() and state.has('Progressive Hookshot')) + set_rule(world.get_location('Ganons Castle Forest Trial Clear'), lambda state: state.has('Magic Meter') and state.has_bow() and state.has('Light Arrows') and (state.has('Fire Arrows') or state.has('Dins Fire'))) + set_rule(world.get_location('Ganons Castle Fire Trial Clear'), lambda state: state.has_GoronTunic() and state.has('Progressive Strength Upgrade', 3) and state.has('Magic Meter') and state.has_bow() and state.has('Light Arrows') and state.has('Progressive Hookshot', 2)) + set_rule(world.get_location('Ganons Castle Water Trial Clear'), lambda state: state.has_bottle() and state.has('Hammer') and state.has('Magic Meter') and state.has_bow() and state.has('Light Arrows')) + set_rule(world.get_location('Ganons Castle Shadow Trial Clear'), lambda state: state.has('Magic Meter') and state.has_bow() and state.has('Light Arrows') and state.has('Hammer') and ((state.has('Fire Arrows') and (state.has('Hover Boots') or state.can_see_with_lens())) or (state.has('Progressive Hookshot', 2) and (state.has('Hover Boots') or (state.has('Dins Fire') and state.can_see_with_lens()))))) + set_rule(world.get_location('Ganons Castle Shadow Trial First Chest'), lambda state: (state.has('Magic Meter') and state.has_bow() and state.has('Fire Arrows')) or state.has('Progressive Hookshot') or state.has('Hover Boots') or state.can_play('Song of Time')) + set_rule(world.get_location('Ganons Castle Shadow Trial Second Chest'), lambda state: (state.has('Magic Meter') and state.has_bow() and state.has('Fire Arrows')) or (state.has('Progressive Hookshot', 2) and (state.has('Hover Boots') or (state.has('Dins Fire') and state.has('Magic Meter'))))) + set_rule(world.get_location('Ganons Castle Spirit Trial Clear'), lambda state: state.has('Magic Meter') and state.has_bow() and state.has('Light Arrows') and state.has('Mirror Shield') and state.has_bombchus() and state.has('Progressive Hookshot')) set_rule(world.get_location('Ganons Castle Spirit Trial First Chest'), lambda state: state.has('Progressive Hookshot')) set_rule(world.get_location('Ganons Castle Spirit Trial Second Chest'), lambda state: state.has('Progressive Hookshot') and state.has_bombchus() and state.can_see_with_lens()) - set_rule(world.get_location('Ganons Castle Light Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Progressive Hookshot') and state.has('Light Arrows') and state.has('Small Key (Ganons Castle)', 2)) + set_rule(world.get_location('Ganons Castle Light Trial Clear'), lambda state: state.has('Magic Meter') and state.has_bow() and state.has('Progressive Hookshot') and state.has('Light Arrows') and state.has('Small Key (Ganons Castle)', 2)) set_rule(world.get_location('Ganons Castle Light Trail Invisible Enemies Chest'), lambda state: state.can_see_with_lens()) set_rule(world.get_location('Ganons Castle Light Trial Lullaby Chest'), lambda state: state.can_play('Zeldas Lullaby') and state.has('Small Key (Ganons Castle)', 1)) diff --git a/version.py b/version.py index 2858c3533..b4944936b 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.33 f.LUM' +__version__ = '2.15.34 f.LUM' From bf3b82500924da34cd414d5027ba2be1913bd832 Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 20 Aug 2018 21:20:47 -0400 Subject: [PATCH 322/755] Added shopsanity setting --- ItemList.py | 105 +- Notes/shop item notes.txt | 2474 +++++++++++++++++++++++++++++++++++++ Rules.py | 2 +- Settings.py | 48 + version.py | 2 +- 5 files changed, 2625 insertions(+), 6 deletions(-) create mode 100644 Notes/shop item notes.txt diff --git a/ItemList.py b/ItemList.py index 8d53086b2..b1e8276ea 100644 --- a/ItemList.py +++ b/ItemList.py @@ -81,6 +81,13 @@ + ['Rupees (20)'] * 2 + ['Rupees (50)']) +shopfiller = ( + ['Bombs (5)'] * 3 + + ['Arrows (5)'] * 3 + + ['Deku Nuts (5)'] * 3 + + ['Rupees (5)'] * 4 + + ['Rupees (20)']) + rewardlist = [ 'Kokiri Emerald', 'Goron Ruby', @@ -339,10 +346,100 @@ def get_pool_core(world): else: placed_items['Gerudo Fortress Membership Card'] = 'Gerudo Membership Card' - pool.extend(['Buy Deku Nut (5)'] + ['Buy Arrows (30)'] + ['Buy Bombs (5)'] + ['Buy Deku Nut (10)'] + ['Buy Deku Stick (1)'] + ['Buy Bombs (10)'] + - ['Buy Fish'] + ['Buy Red Potion'] + ['Buy Green Potion'] + ['Buy Hylian Shield'] + ['Buy Deku Shield'] + ['Buy Goron Tunic'] + ['Buy Zora Tunic'] + - ['Buy Heart'] + ['Buy Bombchu (10)'] + ['Buy Bombchu (20)'] + ['Buy Bombchu (5)'] + ['Buy Deku Seeds (30)'] + ['Sold Out'] * 19 + ['Buy Blue Fire'] + ['Buy Bottle Bug'] + - ['Buy Fairy\'s Spirit'] + ['Buy Arrow (10)'] + ['Buy Bombs (20)'] + ['Rupees (5)'] * 14) + if world.shopsanity == 'off': + placed_items['Kokiri Shop Item 1'] = 'Buy Deku Shield' + placed_items['Kokiri Shop Item 2'] = 'Buy Deku Nut (5)' + placed_items['Kokiri Shop Item 3'] = 'Buy Deku Nut (10)' + placed_items['Kokiri Shop Item 4'] = 'Buy Deku Stick (1)' + placed_items['Kokiri Shop Item 5'] = 'Buy Deku Seeds (30)' + placed_items['Kokiri Shop Item 6'] = 'Buy Arrows (10)' + placed_items['Kokiri Shop Item 7'] = 'Buy Arrows (30)' + placed_items['Kokiri Shop Item 8'] = 'Sold Out' + placed_items['Kakariko Potion Shop Item 1'] = 'Buy Green Potion' + placed_items['Kakariko Potion Shop Item 2'] = 'Buy Blue Fire' + placed_items['Kakariko Potion Shop Item 3'] = 'Buy Red Potion' + placed_items['Kakariko Potion Shop Item 4'] = 'Buy Fairy\'s Spirit' + placed_items['Kakariko Potion Shop Item 5'] = 'Buy Deku Nut (5)' + placed_items['Kakariko Potion Shop Item 6'] = 'Buy Bottle Bug' + placed_items['Kakariko Potion Shop Item 7'] = 'Sold Out' + placed_items['Kakariko Potion Shop Item 8'] = 'Buy Fish' + placed_items['Bombchu Shop Item 1'] = 'Buy Bombchu (5)' + placed_items['Bombchu Shop Item 2'] = 'Buy Bombchu (10)' + placed_items['Bombchu Shop Item 3'] = 'Buy Bombchu (10)' + placed_items['Bombchu Shop Item 4'] = 'Buy Bombchu (10)' + placed_items['Bombchu Shop Item 5'] = 'Buy Bombchu (20)' + placed_items['Bombchu Shop Item 6'] = 'Buy Bombchu (20)' + placed_items['Bombchu Shop Item 7'] = 'Buy Bombchu (20)' + placed_items['Bombchu Shop Item 8'] = 'Buy Bombchu (20)' + placed_items['Castle Town Potion Shop Item 1'] = 'Buy Green Potion' + placed_items['Castle Town Potion Shop Item 2'] = 'Buy Blue Fire' + placed_items['Castle Town Potion Shop Item 3'] = 'Buy Red Potion' + placed_items['Castle Town Potion Shop Item 4'] = 'Buy Fairy\'s Spirit' + placed_items['Castle Town Potion Shop Item 5'] = 'Buy Deku Nut (5)' + placed_items['Castle Town Potion Shop Item 6'] = 'Buy Bottle Bug' + placed_items['Castle Town Potion Shop Item 7'] = 'Sold Out' + placed_items['Castle Town Potion Shop Item 8'] = 'Buy Fish' + placed_items['Bazaar Item 1'] = 'Buy Hylian Shield' + placed_items['Bazaar Item 2'] = 'Buy Bombs (5)' + placed_items['Bazaar Item 3'] = 'Buy Deku Nut (5)' + placed_items['Bazaar Item 4'] = 'Sold Out' + placed_items['Bazaar Item 5'] = 'Buy Arrows (10)' + placed_items['Bazaar Item 6'] = 'Sold Out' + placed_items['Bazaar Item 7'] = 'Buy Deku Stick (1)' + placed_items['Bazaar Item 8'] = 'Buy Arrows (30)' + placed_items['Zora Shop Item 1'] = 'Buy Zora Tunic' + placed_items['Zora Shop Item 2'] = 'Buy Arrows (10)' + placed_items['Zora Shop Item 3'] = 'Sold Out' + placed_items['Zora Shop Item 4'] = 'Buy Arrows (30)' + placed_items['Zora Shop Item 5'] = 'Buy Deku Nut (5)' + placed_items['Zora Shop Item 6'] = 'Sold Out' + placed_items['Zora Shop Item 7'] = 'Buy Fish' + placed_items['Zora Shop Item 8'] = 'Buy Red Potion' + placed_items['Goron Shop Item 1'] = 'Buy Bombs (5)' + placed_items['Goron Shop Item 2'] = 'Buy Bombs (10)' + placed_items['Goron Shop Item 3'] = 'Buy Bombs (20)' + placed_items['Goron Shop Item 4'] = 'Sold Out' + placed_items['Goron Shop Item 5'] = 'Buy Goron Tunic' + placed_items['Goron Shop Item 6'] = 'Sold Out' + placed_items['Goron Shop Item 7'] = 'Buy Red Potion' + placed_items['Goron Shop Item 8'] = 'Sold Out' + elif world.shopsanity == 'on': + pool.extend(['Buy Deku Shield'] + + ['Buy Hylian Shield'] + + ['Buy Goron Tunic'] + + ['Buy Zora Tunic'] + + ['Buy Deku Nut (5)'] * 3 + ['Buy Deku Nut (10)'] * 1 + + ['Buy Deku Stick (1)'] * 4 + + ['Buy Deku Seeds (30)'] * 3 + + ['Buy Arrows (10)'] * 2 + ['Buy Arrows (30)'] * 2 + + ['Buy Bombchu (5)'] * 2 + ['Buy Bombchu (10)'] * 2 + ['Buy Bombchu (20)'] + + ['Buy Bombs (5)'] * 2 + ['Buy Bombs (10)'] * 2 + ['Buy Bombs (20)'] + + ['Buy Green Potion'] * 3 + + ['Buy Red Potion'] * 2 + + ['Buy Blue Fire'] * 2 + + ['Buy Fairy\'s Spirit'] * 2 + + ['Buy Bottle Bug'] * 2 + + ['Buy Fish'] * 2 + + shopfiller) + else: + pool.extend(['Buy Deku Shield'] + + ['Buy Hylian Shield'] + + ['Buy Goron Tunic'] + + ['Buy Zora Tunic'] + + ['Buy Deku Nut (5)'] * 1 + ['Buy Deku Nut (10)'] * 1 + + ['Buy Deku Stick (1)'] * 2 + + ['Buy Deku Seeds (30)'] * 2 + + ['Buy Arrows (10)'] * 1 + ['Buy Arrows (30)'] * 1 + + ['Buy Bombchu (5)'] * 1 + ['Buy Bombchu (10)'] * 1 + ['Buy Bombchu (20)'] + + ['Buy Bombs (5)'] * 1 + ['Buy Bombs (10)'] * 1 + ['Buy Bombs (20)'] + + ['Buy Green Potion'] * 1 + + ['Buy Red Potion'] * 1 + + ['Buy Blue Fire'] * 1 + + ['Buy Fairy\'s Spirit'] * 1 + + ['Buy Bottle Bug'] * 1 + + ['Buy Fish'] * 1 + + ['Sold Out'] * 18 + + shopfiller) pool.extend(alwaysitems) for _ in range(normal_bottle_count): diff --git a/Notes/shop item notes.txt b/Notes/shop item notes.txt new file mode 100644 index 000000000..a0351cf07 --- /dev/null +++ b/Notes/shop item notes.txt @@ -0,0 +1,2474 @@ +scene shop item object loads +[scene] address: object +[0x2C] 0x028E4044: 0x00D8 +[0x2C] 0x028E4046: 0x00B7 +[0x2C] 0x028E4048: 0x00C7 +[0x2C] 0x028E404A: 0x00DC +[0x2C] 0x028E404C: 0x00BB +[0x2C] 0x028E404E: 0x00CE + +[0x2D] 0x02587042: 0x00D8 +[0x2D] 0x02587044: 0x00B7 +[0x2D] 0x02587046: 0x00CB +[0x2D] 0x02587048: 0x00BB +[0x2D] 0x0258704A: 0x00C7 +[0x2D] 0x0258704E: 0x0119 + +[0x2E] 0x02D33042: 0x00B7 +[0x2E] 0x02D33044: 0x00C7 +[0x2E] 0x02D33046: 0x00CE +[0x2E] 0x02D3304A: 0x00EB +[0x2E] 0x02D3304C: 0x00F2 +[0x2E] 0x02D3304E: 0x00F8 + +[0x2F] 0x02D5B044: 0x00B7 +[0x2F] 0x02D5B046: 0x00BB +[0x2F] 0x02D5B048: 0x00D8 +[0x2F] 0x02D5B04A: 0x00EB +[0x2F] 0x02D5B04C: 0x00F4 +[0x2F] 0x02D5B04E: 0x00F2 + +[0x30] 0x02D83044: 0x00EB +[0x30] 0x02D83046: 0x0173 +[0x30] 0x02D83048: 0x0174 +[0x30] 0x02D8304C: 0x00F4 +[0x30] 0x02D8304E: 0x0176 +[0x30] 0x02D83050: 0x0177 +[0x30] 0x02D83054: 0x00BB + +[0x31] 0x02DB0044: 0x00EB +[0x31] 0x02DB0046: 0x0173 +[0x31] 0x02DB0048: 0x0174 +[0x31] 0x02DB004C: 0x00F4 +[0x31] 0x02DB004E: 0x0176 +[0x31] 0x02DB0050: 0x0177 +[0x31] 0x02DB0058: 0x00BB + +[0x32] 0x02DD8044: 0x0148 +[0x32] 0x02DD8046: 0x00D9 + +[0x33] 0x0340A044: 0x0134 +[0x33] 0x0340A046: 0x0135 +[0x33] 0x0340A048: 0x0136 +[0x33] 0x0340A04A: 0x0137 +[0x33] 0x0340A04C: 0x0138 +[0x33] 0x0340A04E: 0x0150 +[0x33] 0x0340A050: 0x0151 +[0x33] 0x0340A052: 0x0152 + +.org 0xC022CC +scene shop item table +0 Deku Nut, x5, 15 00BB 0011 80022554 000F 0005 00B2 007F 00000063 80862FDC 80863B4C 80863FB4 +1 Arrows (2), x30, 60 00D8 0025 80022438 003C 001E 00C1 009B 0000004A 80862E8C 80863A64 80863FB4 +2 Arrows (3), x50, 90 00D8 0026 80022438 005A 0032 00B0 007D 0000004B 80862E8C 80863A64 80863FB4 +3 Bombs, x5, 25 00CE 001F 80022438 0019 0005 00A3 008B 00000001 80862F3C 80863AAC 80863FB4 +4 Deku Nut, x10, 30 00BB 0011 80022554 001E 000A 00A2 0087 00000064 80862FDC 80863B4C 80863FB4 +5 Deku Stick, x1, 10 00C7 001A 00000000 000A 0001 00A1 0088 00000007 80863094 80863BBC 80863FB4 +6 Bombs, x10, 50 00CE 001F 80022438 0032 000A 00B1 007C 00000066 80862F3C 80863AAC 80863FB4 +7 Fish, x1, 200 00F4 003E 80022554 00C8 0001 00B3 007E 0000006C 8086314C 00000000 80863FB4 +8 Red Potion, x1, 30 00EB 0037 80022438 001E 0001 00A5 008E 00000010 808631C4 80863E84 80863FB4 +9 Green Potion, x1, 30 00EB 0036 80022438 001E 0001 00A6 008F 00000011 8086323C 80863E84 80863FB4 +10 Blue Potion, x1, 60 00EB 0038 80022438 003C 0001 00A7 0090 00000012 808632B4 80863E84 80863FB4 +11 Giant's Knife, x1, 00F8 0042 80022438 03E8 0001 00A8 0091 00000028 8086332C 80863BF8 80863FB4 +12 Hylian Shield, x1, 80 00DC 002B 80022438 0050 0001 00A9 0092 0000002A 808633C0 80863C40 80863FB4 +13 Deku Shield, x1, 40 00CB 001C 80022438 0028 0001 009F 0089 00000029 80863440 80863C7C 80863FB4 +14 Goron Tunic, x1, 200 00F2 003B 00000000 00C8 0001 00AA 0093 0000002C 808634C0 80863CB8 80864054 +15 Zora Tunic, x1, 300 00F2 003C 00000000 012C 0001 00AB 0094 0000002D 80863568 80863CF4 80864084 +16 Heart, x16, 10 00B7 0008 00000000 000A 0010 00AC 0095 00000048 80863610 80863D30 80863FB4 +17 Milk Bottle (U) 00DF 002F 808648CC 0064 0001 00AD 0097 00000014 8086365C 80863D70 80863FB4 +18 Weird Egg (U) 00DA 0028 80022438 0064 0001 00AE 0099 00000047 808636B8 80863DAC 80863FB4 +19 Milk Bottle (U) 00DF 002F 808648CC 2710 0001 00B4 0085 00000000 80863714 80863DE8 80863FB4 +20 Weird Egg (U) 00DA 0028 80022438 2710 0001 00B5 0085 00000000 80863728 80863E18 80863FB4 +21 Bombchu, x10, 100 00D9 0027 80022438 0064 000A 00BC 008C 00000003 8086373C 00000000 808640B4 +22 Bombchu, x20, 180 00D9 0027 80022438 00B4 0014 0061 002A 0000006B 8086373C 00000000 808640B4 +23 Bombchu, x20, 180 00D9 0027 80022438 00B4 0014 0061 002A 0000006B 8086373C 00000000 808640B4 +24 Bombchu, x10, 100 00D9 0027 80022438 0064 000A 00BC 008C 00000003 8086373C 00000000 808640B4 +25 Bombchu, x10, 100 00D9 0027 80022438 0064 000A 00BC 008C 00000003 8086373C 00000000 808640B4 +26 Bombchu, x20, 180 00D9 0027 80022438 00B4 0014 0061 002A 0000006B 8086373C 00000000 808640B4 +27 Bombchu, x20, 180 00D9 0027 80022438 00B4 0014 0061 002A 0000006B 8086373C 00000000 808640B4 +28 Bombchu, x10, 100 00D9 0027 80022438 0064 000A 00BC 008C 00000003 8086373C 00000000 808640B4 +29 Deku Seeds, x30, 30 0119 0047 80022438 001E 001E 00DF 00DE 00000069 808637C0 80863E48 80863FB4 +30 Keaton Mask, x1, 0 0134 0030 80022438 0000 0001 70B2 70BE 0000001A 808637C0 80863E48 80863FB4 +31 Spooky Mask, x1, 0 0135 0031 80022438 0000 0001 70B1 70BD 00000018 808637C0 80863E48 80863FB4 +32 Skull Mask, x1, 0 0136 004E 80022438 0000 0001 70B0 70BC 00000017 808637C0 80863E48 80863FB4 +33 Bunny Hood, x1, 0 0137 004F 80022438 0000 0001 70B3 70BF 0000001B 808637C0 80863E48 80863FB4 +34 Mask of Truth, x1, 0 0138 0050 808648CC 0000 0001 70AF 70C3 0000001C 808637C0 80863E48 80863FB4 +35 Zora Mask, x1, 0 0151 005B 00000000 0000 0001 70B9 70C1 00000052 808637C0 80863E48 80863FB4 +36 Goron Mask, x1, 0 0150 005A 00000000 0000 0001 70B8 70C0 00000051 808637C0 80863E48 80863FB4 +37 Gerudo Mask, x1, 0 0152 005C 00000000 0000 0001 70BA 70C2 00000053 808637C0 80863E48 80863FB4 +38 Sold Out, x0, 0 0148 0058 80022438 0000 0000 00BD 70C2 00000053 80863870 00000000 00000000 +39 Blue Fire, x1, 300 0173 0066 80022438 012C 0001 00B9 00B8 0000006E 80863884 80863E84 80863FB4 +40 Bottle Bug, x1, 50 0174 0067 808648CC 0032 0001 00BB 00BA 0000006D 808638FC 80863E84 80863FB4 +41 Big Poe (U), x1, 50 0176 006F 808648CC 0032 0001 506F 5070 00000070 80863974 80863E84 80863FB4 +42 Poe, x1, 30 0176 0069 808648CC 001E 0001 506D 506E 0000006F 80863974 80863E84 80863FB4 +43 Fairy's Spirit, x1, 50 0177 006A 808648CC 0032 0001 00B7 00B6 00000013 808639EC 80863E84 80863FB4 +44 Arrow (1), x10, 20 00D8 0024 80022438 0014 000A 00A0 008A 00000049 80862E8C 80863A64 80863FB4 +45 Bombs, x20, 80 00CE 001F 80022438 0050 0014 001C 0006 00000067 80862F3C 80863AAC 80863FB4 +46 Bombs, x30, 120 00CE 001F 80022438 0078 001E 001D 001E 00000068 80862F3C 80863AAC 80863FB4 +47 Bombs, x5, 35 00CE 001F 80022438 0023 0005 00CB 00CA 00000001 80862F3C 80863AAC 80863FB4 +48 Red Potion, x1, 40 00EB 0037 80022438 0028 0001 0064 0062 00000010 808631C4 80863E84 80863FB4 +49 Red Potion, x1, 50 00EB 0037 80022438 0032 0001 0065 0063 00000010 808631C4 80863E84 80863FB4 + + +00BB 0011 80022554 000F 0005 80B2807F 00000063 801EEEAC 801EFA1C 801EFE84 + +0x1f17a0 + +1ebb50 +00D9 0027 80022438 003C 0005 80FE80FF 0000006A 801E9B7C 00000000 801EA4F4 + + +1f08bc + +0x17, 0x19, 0x1A, 0x1B, 0x1C, + +0xC022CC + (id * 0x20) + 0x1C + + +[0x11, 0x12, 0x13, 0x14, 0x17, 0x19, 0x1A, 0x1B, 0x1C, 0x29, 0x2A, 0x2F, 0x30, 0x31] + Function_1, Function_2, Function_3, Function_4 + ---------------------------------------------- + ["Deku Nut, x5, 15 ", 0x00A984B4, 0x00C008BC, 0x00C0142C, 0x00C01894], + ["Arrows (2), x30, 60 ", 0x00A98398, 0x00C0076C, 0x00C01344, 0x00C01894], + ["Arrows (3), x50, 90 ", 0x00A98398, 0x00C0076C, 0x00C01344, 0x00C01894], X + ["Bombs, x5, 25 ", 0x00A98398, 0x00C0081C, 0x00C0138C, 0x00C01894], + ["Deku Nut, x10, 30 ", 0x00A984B4, 0x00C008BC, 0x00C0142C, 0x00C01894], + ["Deku Stick, x1, 10 ", , 0x00C00974, 0x00C0149C, 0x00C01894], + ["Bombs, x10, 50 ", 0x00A98398, 0x00C0081C, 0x00C0138C, 0x00C01894], + ["Fish, x1, 200 ", 0x00A984B4, 0x00C00A2C, , 0x00C01894], X + ["Red Potion, x1, 30 ", 0x00A98398, 0x00C00AA4, 0x00C01764, 0x00C01894], + ["Green Potion, x1, 30 ", 0x00A98398, 0x00C00B1C, 0x00C01764, 0x00C01894], + ["Blue Potion, x1, 60 ", 0x00A98398, 0x00C00B94, 0x00C01764, 0x00C01894], + ["Giant's Knife, x1, ", 0x00A98398, 0x00C00C0C, 0x00C014D8, 0x00C01894], X + ["Hylian Shield, x1, 80 ", 0x00A98398, 0x00C00CA0, 0x00C01520, 0x00C01894], + ["Deku Shield, x1, 40 ", 0x00A98398, 0x00C00D20, 0x00C0155C, 0x00C01894], + ["Goron Tunic, x1, 200 ", , 0x00C00DA0, 0x00C01598, 0x00C01934], + ["Zora Tunic, x1, 300 ", , 0x00C00E48, 0x00C015D4, 0x00C01964], + ["Heart, x16, 10 ", , 0x00C00EF0, 0x00C01610, 0x00C01894], + ["Milk Bottle (U) ", 0x00C021AC, 0x00C00F3C, 0x00C01650, 0x00C01894], X + ["Weird Egg (U) ", 0x00A98398, 0x00C00F98, 0x00C0168C, 0x00C01894], X + ["Milk Bottle (U) ", 0x00C021AC, 0x00C00FF4, 0x00C016C8, 0x00C01894], X + ["Weird Egg (U) ", 0x00A98398, 0x00C01008, 0x00C016F8, 0x00C01894], X + ["Bombchu, x10, 100 ", 0x00A98398, 0x00C0101C, , 0x00C01994], + ["Bombchu, x20, 180 ", 0x00A98398, 0x00C0101C, , 0x00C01994], + ["Bombchu, x20, 180 ", 0x00A98398, 0x00C0101C, , 0x00C01994], + ["Bombchu, x10, 100 ", 0x00A98398, 0x00C0101C, , 0x00C01994], X + ["Bombchu, x10, 100 ", 0x00A98398, 0x00C0101C, , 0x00C01994], X + ["Bombchu, x20, 180 ", 0x00A98398, 0x00C0101C, , 0x00C01994], X + ["Bombchu, x20, 180 ", 0x00A98398, 0x00C0101C, , 0x00C01994], X + ["Bombchu, x10, 100 ", 0x00A98398, 0x00C0101C, , 0x00C01994], X + ["Deku Seeds, x30, 30 ", 0x00A98398, 0x00C010A0, 0x00C01728, 0x00C01894], + ["Keaton Mask, x1, 0 ", 0x00A98398, 0x00C010A0, 0x00C01728, 0x00C01894], + ["Spooky Mask, x1, 0 ", 0x00A98398, 0x00C010A0, 0x00C01728, 0x00C01894], + ["Skull Mask, x1, 0 ", 0x00A98398, 0x00C010A0, 0x00C01728, 0x00C01894], + ["Bunny Hood, x1, 0 ", 0x00A98398, 0x00C010A0, 0x00C01728, 0x00C01894], + ["Mask of Truth, x1, 0 ", 0x00C021AC, 0x00C010A0, 0x00C01728, 0x00C01894], + ["Zora Mask, x1, 0 ", , 0x00C010A0, 0x00C01728, 0x00C01894], + ["Goron Mask, x1, 0 ", , 0x00C010A0, 0x00C01728, 0x00C01894], + ["Gerudo Mask, x1, 0 ", , 0x00C010A0, 0x00C01728, 0x00C01894], + ["Sold Out, x0, 0 ", 0x00A98398, 0x00C01150, , ], + ["Blue Fire, x1, 300 ", 0x00A98398, 0x00C01164, 0x00C01764, 0x00C01894], + ["Bottle Bug, x1, 50 ", 0x00C021AC, 0x00C011DC, 0x00C01764, 0x00C01894], + ["Big Poe (U), x1, 50 ", 0x00C021AC, 0x00C01254, 0x00C01764, 0x00C01894], X + ["Poe, x1, 30 ", 0x00C021AC, 0x00C01254, 0x00C01764, 0x00C01894], X + ["Fairy's Spirit, x1, 50 ", 0x00C021AC, 0x00C012CC, 0x00C01764, 0x00C01894], + ["Arrow (1), x10, 20 ", 0x00A98398, 0x00C0076C, 0x00C01344, 0x00C01894], + ["Bombs, x20, 80 ", 0x00A98398, 0x00C0081C, 0x00C0138C, 0x00C01894], + ["Bombs, x30, 120 ", 0x00A98398, 0x00C0081C, 0x00C0138C, 0x00C01894], X + ["Bombs, x5, 35 ", 0x00A98398, 0x00C0081C, 0x00C0138C, 0x00C01894], X + ["Red Potion, x1, 40 ", 0x00A98398, 0x00C00AA4, 0x00C01764, 0x00C01894], X + ["Red Potion, x1, 50 ", 0x00A98398, 0x00C00AA4, 0x00C01764, 0x00C01894], X + + +shop actor item list [shop item id, X, Y ,Z] * 8 +.org 0xC71ED0 +-----------------------------------RIGHT SIDE------------------------------------- ---------------------------------LEFT SIDE---------------------------------------- +bottom left top left bottom right top right bottom right top right bottom left top left +000D 0032 0034 FFEC, 0000 0032 004C FFEC, 0004 0050 0034 FFFD, 0005 0050 004C FFFD, 001D FFCE 0034 FFEC, 002C FFCE 004C FFEC, 0001 FFB0 0034 FFFD, 0010 FFB0 004C FFFD, +0009 0032 0034 FFEC, 0027 0032 004C FFEC, 0008 0050 0034 FFFD, 002B 0050 004C FFFD, 0000 FFCE 0034 FFEC, 0028 FFCE 004C FFEC, 002A FFB0 0034 FFFD, 0007 FFB0 004C FFFD, +0018 0032 0034 FFEC, 001C 0032 004C FFEC, 0019 0050 0034 FFFD, 0015 0050 004C FFFD, 001A FFCE 0034 FFEC, 0016 FFCE 004C FFEC, 001B FFB0 0034 FFFD, 0017 FFB0 004C FFFD, +0009 0032 0034 FFEC, 0027 0032 004C FFEC, 0008 0050 0034 FFFD, 002B 0050 004C FFFD, 0000 FFCE 0034 FFEC, 0028 FFCE 004C FFEC, 002A FFB0 0034 FFFD, 0007 FFB0 004C FFFD, +000C 0032 0034 FFEC, 002F 0032 004C FFEC, 0000 0050 0034 FFFD, 0010 0050 004C FFFD, 002C FFCE 0034 FFEC, 0002 FFCE 004C FFEC, 0005 FFB0 0034 FFFD, 0001 FFB0 004C FFFD, +000C 0032 0034 FFEC, 0003 0032 004C FFEC, 0000 0050 0034 FFFD, 0010 0050 004C FFFD, 002C FFCE 0034 FFEC, 0002 FFCE 004C FFEC, 0005 FFB0 0034 FFFD, 0001 FFB0 004C FFFD, +0011 0032 0034 FFEC, 0000 0032 004C FFEC, 0004 0050 0034 FFFD, 0010 0050 004C FFFD, 0012 FFCE 0034 FFEC, 0005 FFCE 004C FFEC, 0010 FFB0 0034 FFFD, 0010 FFB0 004C FFFD, +000F 0032 0034 FFEC, 002C 0032 004C FFEC, 0010 0050 0034 FFFD, 0001 0050 004C FFFD, 0000 FFCE 0034 FFEC, 0002 FFCE 004C FFEC, 0007 FFB0 0034 FFFD, 0031 FFB0 004C FFFD, +0003 0032 0034 FFEC, 0006 0032 004C FFEC, 002D 0050 0034 FFFD, 002E 0050 004C FFFD, 000E FFCE 0034 FFEC, 0010 FFCE 004C FFEC, 0030 FFB0 0034 FFFD, 0010 FFB0 004C FFFD, +0013 0032 0034 FFEC, 0013 0032 004C FFEC, 0013 0050 0034 FFFD, 0013 0050 004C FFFD, 0014 FFCE 0034 FFEC, 0014 FFCE 004C FFEC, 0014 FFB0 0034 FFFD, 0014 FFB0 004C FFFD, +0025 0032 0034 FFEC, 0023 0032 004C FFEC, 0022 0050 0034 FFFD, 0024 0050 004C FFFD, 0020 FFCE 0034 FFEC, 001E FFCE 004C FFEC, 0021 FFB0 0034 FFFD, 001F FFB0 004C FFFD, + + + + +init = 808649B0 = +id 0004 +type 06 +room 00 +flags 00000019 +objectid 0001 +0000 +size 000001C4 +init 80862E28 - C00708 +0x00000000: addiu $sp, $sp, -0x18 +0x00000004: sw $ra, 0x14($sp) +0x00000008: sw $a0, 0x18($sp) +0x0000000c: sw $a1, 0x1c($sp) +0x00000010: jal 0x862c0c ; c004ec +0x00000014: lw $a0, 0x18($sp) +0x00000018: lw $a0, 0x18($sp) +0x0000001c: jal 0x862d84 ; +0x00000020: lw $a1, 0x1c($sp) +0x00000024: lw $ra, 0x14($sp) +0x00000028: addiu $sp, $sp, 0x18 +0x0000002c: jr $ra +0x00000030: nop + + .word data_80A3A780 + .word data_80A3A8C4 + .word data_80A3A8C4 + .word data_80A3A8C4 + .word data_80A3A858 + .word data_80A3A87C + .word data_80A3A8A0 + .word data_80A3A7A4 + .word data_80A3A7C8 + .word data_80A3A7EC + .word data_80A3A810 + .word data_80A3A834 + +func_0x862c0c_C004EC: +0x00000000: lh $t6, 0x1c($a0) ; t6 = var +0x00000004: addiu $t7, $t6, -0x11 ; t7 = var - 0x11 +0x00000008: sltiu $at, $t7, 0xc +0x0000000c: beqz $at, 0x16c ; if not 0x11 < var < 0x1D, return +0x00000010: sll $t7, $t7, 2 ; t7 = t7 << 2 +0x00000014: lui $at, 0x8086 +0x00000018: addu $at, $at, $t7 +0x0000001c: lw $t7, 0x5040($at) ; t7 = (?? + t7) +0x00000020: jr $t7 +0x00000024: nop + +0x00000028: lui $t8, 0x8012 +0x0000002c: lhu $t8, -0x4b40($t8) +0x00000030: addiu $t0, $zero, 0x10 +0x00000034: addiu $v0, $zero, 1 +0x00000038: andi $t9, $t8, 4 +0x0000003c: beql $t9, $zero, 0x170 +0x00000040: move $v0, $zero +0x00000044: jr $ra +0x00000048: sh $t0, 0x1c($a0) + +0x0000004c: lui $t1, 0x8012 +0x00000050: lhu $t1, -0x4b40($t1) +0x00000054: addiu $t3, $zero, 0x26 +0x00000058: addiu $v0, $zero, 1 +0x0000005c: andi $t2, $t1, 0x40 +0x00000060: beql $t2, $zero, 0x170 +0x00000064: move $v0, $zero +0x00000068: jr $ra +0x0000006c: sh $t3, 0x1c($a0) + +0x00000070: lui $t4, 0x8012 +0x00000074: lhu $t4, -0x4b40($t4) +0x00000078: addiu $t6, $zero, 0x26 +0x0000007c: addiu $v0, $zero, 1 +0x00000080: andi $t5, $t4, 0x80 +0x00000084: beql $t5, $zero, 0x170 +0x00000088: move $v0, $zero +0x0000008c: jr $ra +0x00000090: sh $t6, 0x1c($a0) + +0x00000094: lui $t7, 0x8012 +0x00000098: lhu $t7, -0x4b40($t7) +0x0000009c: addiu $t9, $zero, 0x26 +0x000000a0: addiu $v0, $zero, 1 +0x000000a4: andi $t8, $t7, 0x100 +0x000000a8: beql $t8, $zero, 0x170 +0x000000ac: move $v0, $zero +0x000000b0: jr $ra +0x000000b4: sh $t9, 0x1c($a0) + +0x000000b8: lui $t0, 0x8012 +0x000000bc: lhu $t0, -0x4b40($t0) +0x000000c0: addiu $t2, $zero, 0x26 +0x000000c4: addiu $v0, $zero, 1 +0x000000c8: andi $t1, $t0, 0x200 +0x000000cc: beql $t1, $zero, 0x170 +0x000000d0: move $v0, $zero +0x000000d4: jr $ra +0x000000d8: sh $t2, 0x1c($a0) + +0x000000dc: lui $t3, 0x8012 +0x000000e0: lhu $t3, -0x4b40($t3) +0x000000e4: addiu $t5, $zero, 0x26 +0x000000e8: addiu $v0, $zero, 1 +0x000000ec: andi $t4, $t3, 0x400 +0x000000f0: beql $t4, $zero, 0x170 +0x000000f4: move $v0, $zero +0x000000f8: jr $ra +0x000000fc: sh $t5, 0x1c($a0) + +0x00000100: lui $t6, 0x8012 +0x00000104: lhu $t6, -0x4b40($t6) +0x00000108: addiu $t8, $zero, 0x26 +0x0000010c: addiu $v0, $zero, 1 +0x00000110: andi $t7, $t6, 8 +0x00000114: beql $t7, $zero, 0x170 +0x00000118: move $v0, $zero +0x0000011c: jr $ra +0x00000120: sh $t8, 0x1c($a0) + +0x00000124: lui $t9, 0x8012 +0x00000128: lhu $t9, -0x4b40($t9) +0x0000012c: addiu $t1, $zero, 0x26 +0x00000130: addiu $v0, $zero, 1 +0x00000134: andi $t0, $t9, 0x10 +0x00000138: beql $t0, $zero, 0x170 +0x0000013c: move $v0, $zero +0x00000140: jr $ra +0x00000144: sh $t1, 0x1c($a0) + +0x00000148: lui $t2, 0x8012 +0x0000014c: lhu $t2, -0x4b40($t2) +0x00000150: addiu $t4, $zero, 0x26 +0x00000154: addiu $v0, $zero, 1 +0x00000158: andi $t3, $t2, 0x20 +0x0000015c: beql $t3, $zero, 0x170 +0x00000160: move $v0, $zero +0x00000164: jr $ra +0x00000168: sh $t4, 0x1c($a0) + +0x0000016c: move $v0, $zero +0x00000170: jr $ra +0x00000174: nop + + + +func_0x862d84: +0x00000000: addiu $sp, $sp, -0x20 +0x00000004: sw $ra, 0x14($sp) +0x00000008: move $a2, $a0 +0x0000000c: move $a3, $a1 +0x00000010: lh $v1, 0x1c($a2) +0x00000014: lui $a1, 0x8086 +0x00000018: slti $at, $v1, 0x32 +0x0000001c: bnez $at, 0x3c +0x00000020: sll $t6, $v1, 5 +0x00000024: bgezl $v1, 0x40 +0x00000028: lui $at, 1 + +; shop item id not valid range +0x0000002c: jal 0x20eb4 +0x00000030: move $a0, $a2 +0x00000034: b 0x98 +0x00000038: lw $ra, 0x14($sp) + +; shop item id valid range +0x0000003c: lui $at, 1 +0x00000040: ori $at, $at, 0x17a4 +0x00000044: addu $a1, $a1, $t6 +0x00000048: lh $a1, 0x49ec($a1) +0x0000004c: addu $a0, $a3, $at +0x00000050: sh $v1, 0x1e($sp) +0x00000054: jal 0x81628 +0x00000058: sw $a2, 0x20($sp) +0x0000005c: lw $a2, 0x20($sp) +0x00000060: lh $v1, 0x1e($sp) +0x00000064: lui $t8, 0x8086 +0x00000068: sb $v0, 0x184($a2) +0x0000006c: lb $t7, 0x184($a2) +0x00000070: addiu $t8, $t8, 0x443c +0x00000074: bgezl $t7, 0x90 +0x00000078: sh $v1, 0x1c($a2) +0x0000007c: jal 0x20eb4 +0x00000080: move $a0, $a2 +0x00000084: b 0x98 +0x00000088: lw $ra, 0x14($sp) + +0x0000008c: sh $v1, 0x1c($a2) +0x00000090: sw $t8, 0x188($a2) +0x00000094: lw $ra, 0x14($sp) +0x00000098: addiu $sp, $sp, 0x20 +0x0000009c: jr $ra +0x000000a0: nop + + +dest 80862E5C + + +main 808648A8 - C02188 +0x00000000: addiu $sp, $sp, -0x18 +0x00000004: sw $ra, 0x14($sp) +0x00000008: lw $t9, 0x188($a0) +0x0000000c: jalr $t9 +0x00000010: nop +0x00000014: lw $ra, 0x14($sp) +0x00000018: addiu $sp, $sp, 0x18 +0x0000001c: jr $ra +0x00000020: nop + +draw 00000000 + + + + + + + + + + +------------------------------------------------------------------------------------------------------------ +Function_1 +------------------------------------------------------------------------------------------------------------ +func_0x00A984B4: +0x00000000: addiu $sp, $sp, -0x58 +0x00000004: sw $s0, 0x18($sp) +0x00000008: move $s0, $a1 +0x0000000c: sw $ra, 0x1c($sp) +0x00000010: sw $a0, 0x58($sp) +0x00000014: sw $a2, 0x60($sp) +0x00000018: lui $at, 1 +0x0000001c: addu $v0, $s0, $at +0x00000020: lb $t6, 0xa4e($v0) +0x00000024: lw $a0, 0x58($sp) +0x00000028: addiu $a1, $s0, 0xe0 +0x0000002c: mtc1 $t6, $f4 +0x00000030: addiu $a2, $sp, 0x48 +0x00000034: addiu $a0, $a0, 0x24 +0x00000038: cvt.s.w $f6, $f4 +0x0000003c: swc1 $f6, 0x48($sp) +0x00000040: lb $t7, 0xa4f($v0) +0x00000044: mtc1 $t7, $f8 +0x00000048: nop +0x0000004c: cvt.s.w $f10, $f8 +0x00000050: swc1 $f10, 0x4c($sp) +0x00000054: lb $t8, 0xa50($v0) +0x00000058: mtc1 $t8, $f16 +0x0000005c: nop +0x00000060: cvt.s.w $f18, $f16 +0x00000064: swc1 $f18, 0x50($sp) +0x00000068: jal 0x22400 +0x0000006c: lw $a3, ($s0) +0x00000070: lw $t9, 0x60($sp) +0x00000074: lui $t0, 0xdf00 +0x00000078: beql $t9, $zero, 0x10c +0x0000007c: lw $ra, 0x1c($sp) +0x00000080: lw $a0, ($s0) +0x00000084: lw $v1, 0x2c4($a0) +0x00000088: addiu $v1, $v1, -0x10 +0x0000008c: sw $v1, 0x2c4($a0) +0x00000090: lw $a1, ($s0) +0x00000094: lw $t1, ($v0) +0x00000098: lw $t6, 4($v0) +0x0000009c: lui $at, 0xf200 +0x000000a0: andi $t2, $t1, 0xfff +0x000000a4: sll $t3, $t2, 0xc +0x000000a8: or $t4, $t3, $at +0x000000ac: andi $t7, $t6, 0xfff +0x000000b0: or $t8, $t4, $t7 +0x000000b4: sw $t8, ($v1) +0x000000b8: lw $t9, ($v0) +0x000000bc: lw $t6, 4($v0) +0x000000c0: lui $at, 0x100 +0x000000c4: addiu $t1, $t9, 0x3c +0x000000c8: andi $t2, $t1, 0xfff +0x000000cc: sll $t3, $t2, 0xc +0x000000d0: addiu $t7, $t6, 0x3c +0x000000d4: andi $t8, $t7, 0xfff +0x000000d8: or $t5, $t3, $at +0x000000dc: or $t9, $t5, $t8 +0x000000e0: sw $t9, 4($v1) +0x000000e4: sw $t0, 8($v1) +0x000000e8: sw $zero, 0xc($v1) +0x000000ec: lw $a3, 0x2d0($a1) +0x000000f0: lui $t2, 0xdb06 +0x000000f4: ori $t2, $t2, 0x1c +0x000000f8: addiu $t1, $a3, 8 +0x000000fc: sw $t1, 0x2d0($a1) +0x00000100: sw $v1, 4($a3) +0x00000104: sw $t2, ($a3) +0x00000108: lw $ra, 0x1c($sp) +0x0000010c: lw $s0, 0x18($sp) +0x00000110: addiu $sp, $sp, 0x58 +0x00000114: jr $ra +0x00000118: nop + + +func_0x00A98398: +0x00000000: addiu $sp, $sp, -0x58 +0x00000004: sw $s0, 0x18($sp) +0x00000008: move $s0, $a1 +0x0000000c: sw $ra, 0x1c($sp) +0x00000010: sw $a0, 0x58($sp) +0x00000014: sw $a2, 0x60($sp) +0x00000018: lui $at, 1 +0x0000001c: addu $v0, $s0, $at +0x00000020: lb $t6, 0xa4e($v0) +0x00000024: lw $a0, 0x58($sp) +0x00000028: addiu $a1, $s0, 0xe0 +0x0000002c: mtc1 $t6, $f4 +0x00000030: addiu $a2, $sp, 0x48 +0x00000034: addiu $a0, $a0, 0x24 +0x00000038: cvt.s.w $f6, $f4 +0x0000003c: swc1 $f6, 0x48($sp) +0x00000040: lb $t7, 0xa4f($v0) +0x00000044: mtc1 $t7, $f8 +0x00000048: nop +0x0000004c: cvt.s.w $f10, $f8 +0x00000050: swc1 $f10, 0x4c($sp) +0x00000054: lb $t8, 0xa50($v0) +0x00000058: mtc1 $t8, $f16 +0x0000005c: nop +0x00000060: cvt.s.w $f18, $f16 +0x00000064: swc1 $f18, 0x50($sp) +0x00000068: jal 0x223c8 +0x0000006c: lw $a3, ($s0) +0x00000070: lw $t9, 0x60($sp) +0x00000074: lui $t0, 0xdf00 +0x00000078: beql $t9, $zero, 0x10c +0x0000007c: lw $ra, 0x1c($sp) +0x00000080: lw $a0, ($s0) +0x00000084: lw $v1, 0x2c4($a0) +0x00000088: addiu $v1, $v1, -0x10 +0x0000008c: sw $v1, 0x2c4($a0) +0x00000090: lw $a1, ($s0) +0x00000094: lw $t1, ($v0) +0x00000098: lw $t6, 4($v0) +0x0000009c: lui $at, 0xf200 +0x000000a0: andi $t2, $t1, 0xfff +0x000000a4: sll $t3, $t2, 0xc +0x000000a8: or $t4, $t3, $at +0x000000ac: andi $t7, $t6, 0xfff +0x000000b0: or $t8, $t4, $t7 +0x000000b4: sw $t8, ($v1) +0x000000b8: lw $t9, ($v0) +0x000000bc: lw $t6, 4($v0) +0x000000c0: lui $at, 0x100 +0x000000c4: addiu $t1, $t9, 0x3c +0x000000c8: andi $t2, $t1, 0xfff +0x000000cc: sll $t3, $t2, 0xc +0x000000d0: addiu $t7, $t6, 0x3c +0x000000d4: andi $t8, $t7, 0xfff +0x000000d8: or $t5, $t3, $at +0x000000dc: or $t9, $t5, $t8 +0x000000e0: sw $t9, 4($v1) +0x000000e4: sw $t0, 8($v1) +0x000000e8: sw $zero, 0xc($v1) +0x000000ec: lw $a3, 0x2c0($a1) +0x000000f0: lui $t2, 0xdb06 +0x000000f4: ori $t2, $t2, 0x1c +0x000000f8: addiu $t1, $a3, 8 +0x000000fc: sw $t1, 0x2c0($a1) +0x00000100: sw $v1, 4($a3) +0x00000104: sw $t2, ($a3) +0x00000108: lw $ra, 0x1c($sp) +0x0000010c: lw $s0, 0x18($sp) +0x00000110: addiu $sp, $sp, 0x58 +0x00000114: jr $ra +0x00000118: nop + + +func_0x00C021AC: +0x00000000: addiu $sp, $sp, -0x18 +0x00000004: sw $ra, 0x14($sp) +0x00000008: sw $a0, 0x18($sp) +0x0000000c: sw $a1, 0x1c($sp) +0x00000010: sw $a2, 0x20($sp) +0x00000014: lw $a0, 0x18($sp) +0x00000018: lw $a1, 0x1c($sp) +0x0000001c: jal 0x22438 +0x00000020: move $a2, $zero +0x00000024: lw $a0, 0x18($sp) +0x00000028: lw $a1, 0x1c($sp) +0x0000002c: jal 0x22554 +0x00000030: move $a2, $zero +0x00000034: lw $ra, 0x14($sp) +0x00000038: addiu $sp, $sp, 0x18 +0x0000003c: jr $ra +0x00000040: nop + + + + + + + +------------------------------------------------------------------------------------------------------------ +Function_2 +------------------------------------------------------------------------------------------------------------ +;a0 = ??? +;a1 = actor +;-------- +; +ext_func_0x71420_AE7370: +0x00000000: sw $a0, ($sp) +0x00000004: lui $a2, 0x8010 +0x00000008: addiu $a2, $a2, -0x70cc ; a2 = ?? +0x0000000c: andi $a0, $a0, 0xff ; a0 = a0 & 0xff +0x00000010: addu $t6, $a2, $a0 ; t6 = a2 + item id +0x00000014: lbu $v1, ($t6) ; v1 = ??? +0x00000018: slti $at, $a0, 0x8a ; at = item id < 0x8A ? +0x0000001c: move $v0, $a0 ; v0 = item id +0x00000020: sll $a1, $v1, 0x10 +0x00000024: bnez $at, 0x44 ; if item id < 0x8A +0x00000028: sra $a1, $a1, 0x10 ; a1 = v1 & 0x0000FFFF + 0x0000002c: sll $t7, $v0, 1 ; t7 = item id << 1 + 0x00000030: lui $t8, 0x800f + 0x00000034: addu $t8, $t8, $t7 + 0x00000038: lh $t8, 0x7400($t8) ; t8 = *(??? + item id) + 0x0000003c: addu $t9, $a2, $t8 ; t9 = a2 + t8 + 0x00000040: lbu $a1, ($t9) ; a1 = (t9) + +0x00000044: slti $at, $v0, 0x66 +0x00000048: bnez $at, 0x60 ; if item id >= 0x66 +0x0000004c: slti $at, $v0, 0x6c +0x00000050: beql $at, $zero, 0x64 ; if item id < 0x6C +0x00000054: slti $at, $v0, 0x6c + 0x00000058: jr $ra + 0x0000005c: addiu $v0, $zero, 0xff ; return FF if medallion + +0x00000060: slti $at, $v0, 0x6c +0x00000064: bnez $at, 0x7c ; if item id >= 0x6C +0x00000068: slti $at, $v0, 0x72 +0x0000006c: beql $at, $zero, 0x80 ; if item id < 0x80 +0x00000070: slti $at, $v0, 0x3b + 0x00000074: jr $ra + 0x00000078: addiu $v0, $zero, 0xff ; return if more junk... + +0x0000007c: slti $at, $v0, 0x3b +0x00000080: bnez $at, 0xdc ; if item id >= 0x3B +0x00000084: slti $at, $v0, 0x3e +0x00000088: beqz $at, 0xdc ; if item id < 0x3E +0x0000008c: addiu $at, $zero, 0x3d + 0x00000090: bne $v0, $at, 0xa0 ; if item id == 0x3D + 0x00000094: sll $t0, $v0, 2 ; t0 = item id << 2 + 0x00000098: jr $ra + 0x0000009c: addiu $v0, $zero, 0xff ; return FF if biggoron sword + ; if swords + 0x000000a0: lui $t1, 0x8010 + 0x000000a4: addu $t1, $t1, $t0 + 0x000000a8: lui $t2, 0x8010 + 0x000000ac: lbu $t2, -0x7340($t2); t2 = ??? + 0x000000b0: lw $t1, -0x74fc($t1) ; t1 = (??? + item id) + 0x000000b4: lui $t4, 0x8012 + 0x000000b8: lhu $t4, -0x5994($t4); t4 = ??? + 0x000000bc: sllv $t3, $t1, $t2 ; t3 = t1 << t2 + 0x000000c0: and $t5, $t3, $t4 ; t5 = t3 & t4 + 0x000000c4: beqz $t5, 0xd4 ; if t5 is found + 0x000000c8: nop + 0x000000cc: jr $ra + 0x000000d0: move $v0, $a0 ; return item if found + 0x000000d4: jr $ra + 0x000000d8: addiu $v0, $zero, 0xff ; return ff + +0x000000dc: slti $at, $v0, 0x3e +0x000000e0: bnez $at, 0x12c ; if item id >= 0x3E +0x000000e4: slti $at, $v0, 0x41 +0x000000e8: beqz $at, 0x12c ; if item id < 0x41 +0x000000ec: sll $t6, $v0, 2 + ; if shields + 0x000000f0: lui $t7, 0x8010 + 0x000000f4: addu $t7, $t7, $t6 + 0x000000f8: lui $t8, 0x8010 + 0x000000fc: lbu $t8, -0x733f($t8) + 0x00000100: lw $t7, -0x7508($t7) + 0x00000104: lui $t0, 0x8012 + 0x00000108: lhu $t0, -0x5994($t0) + 0x0000010c: sllv $t9, $t7, $t8 + 0x00000110: and $t1, $t9, $t0 + 0x00000114: beqz $t1, 0x124 + 0x00000118: nop + 0x0000011c: jr $ra + 0x00000120: move $v0, $a0 + 0x00000124: jr $ra + 0x00000128: addiu $v0, $zero, 0xff + +0x0000012c: slti $at, $v0, 0x41 +0x00000130: bnez $at, 0x17c ; if item id >= 0x41 +0x00000134: slti $at, $v0, 0x44 +0x00000138: beqz $at, 0x17c ; if item id < 0x44 +0x0000013c: sll $t2, $v0, 2 + ; tunics + 0x00000140: lui $t3, 0x8010 + 0x00000144: addu $t3, $t3, $t2 + 0x00000148: lui $t4, 0x8010 + 0x0000014c: lbu $t4, -0x733e($t4) + 0x00000150: lw $t3, -0x7514($t3) + 0x00000154: lui $t6, 0x8012 + 0x00000158: lhu $t6, -0x5994($t6) + 0x0000015c: sllv $t5, $t3, $t4 + 0x00000160: and $t7, $t5, $t6 + 0x00000164: beqz $t7, 0x174 + 0x00000168: nop + 0x0000016c: jr $ra + 0x00000170: move $v0, $a0 + 0x00000174: jr $ra + 0x00000178: addiu $v0, $zero, 0xff + +0x0000017c: slti $at, $v0, 0x44 +0x00000180: bnez $at, 0x1cc ; if item id >= 0x44 +0x00000184: slti $at, $v0, 0x47 +0x00000188: beqz $at, 0x1cc ; if item id < 0x47 +0x0000018c: sll $t8, $v0, 2 + ; if boots + 0x00000190: lui $t9, 0x8010 + 0x00000194: addu $t9, $t9, $t8 + 0x00000198: lui $t0, 0x8010 + 0x0000019c: lbu $t0, -0x733d($t0) + 0x000001a0: lw $t9, -0x7520($t9) + 0x000001a4: lui $t2, 0x8012 + 0x000001a8: lhu $t2, -0x5994($t2) + 0x000001ac: sllv $t1, $t9, $t0 + 0x000001b0: and $t3, $t1, $t2 + 0x000001b4: beqz $t3, 0x1c4 + 0x000001b8: nop + 0x000001bc: jr $ra + 0x000001c0: move $v0, $a0 + 0x000001c4: jr $ra + 0x000001c8: addiu $v0, $zero, 0xff + +0x000001cc: addiu $at, $zero, 0x74 +0x000001d0: beq $v0, $at, 0x1e8 ; if item id == 0x74 ;boss key +0x000001d4: addiu $at, $zero, 0x75 +0x000001d8: beq $v0, $at, 0x1e8 ; if item id == 0x75 ;compass +0x000001dc: addiu $at, $zero, 0x76 +0x000001e0: bnel $v0, $at, 0x1f4 ; if item id == 0x76 ;map +0x000001e4: addiu $at, $zero, 0x77 + 0x000001e8: jr $ra + 0x000001ec: addiu $v0, $zero, 0xff ; return ff + +0x000001f0: addiu $at, $zero, 0x77 +0x000001f4: bnel $v0, $at, 0x208 ; if item id == 0x77 ;key +0x000001f8: slti $at, $v0, 6 + 0x000001fc: jr $ra + 0x00000200: addiu $v0, $zero, 0xff ; return ff + +0x00000204: slti $at, $v0, 6 +0x00000208: bnez $at, 0x220 ; if item id >= 0x06 +0x0000020c: slti $at, $v0, 0xa +0x00000210: beql $at, $zero, 0x224 ; if item id < 0x0A +0x00000214: addiu $at, $zero, 0x96 + ; slingshot, ocarina, bombchu, hookshot = FF + 0x00000218: jr $ra + 0x0000021c: addiu $v0, $zero, 0xff + +0x00000220: addiu $at, $zero, 0x96 +0x00000224: beq $v0, $at, 0x234 ; if item id == 0x96 ; bombchu 5 +0x00000228: addiu $at, $zero, 0x97 +0x0000022c: bnel $v0, $at, 0x240 ; if item id == 0x97 ; bombchu 20 +0x00000230: addiu $at, $zero, 0x4a + ; bombchus (5/20) = FF + 0x00000234: jr $ra + 0x00000238: addiu $v0, $zero, 0xff + +0x0000023c: addiu $at, $zero, 0x4a +0x00000240: beq $v0, $at, 0x250 ; if item id == 0x4A ; quiver 30 +0x00000244: lui $t4, 0x8012 +0x00000248: addiu $at, $zero, 3 +0x0000024c: bne $v0, $at, 0x284 ; if item id == 0x03 ; bow + 0x00000250: lui $t5, 0x8010 + 0x00000254: lw $t5, -0x7380($t5) + 0x00000258: lw $t4, -0x5990($t4) + 0x0000025c: lui $t7, 0x8010 + 0x00000260: lbu $t7, -0x733c($t7) + 0x00000264: and $t6, $t4, $t5 + 0x00000268: srav $t8, $t6, $t7 + 0x0000026c: bnez $t8, 0x27c + 0x00000270: nop + 0x00000274: jr $ra + 0x00000278: addiu $v0, $zero, 0xff ; if no bow, return FF + 0x0000027c: jr $ra + 0x00000280: move $v0, $zero ; if bow, return 0 + +0x00000284: addiu $at, $zero, 0x4b +0x00000288: beq $v0, $at, 0x298 ; if item id == 0x4B ; quiver 40 +0x0000028c: addiu $at, $zero, 0x4c +0x00000290: bnel $v0, $at, 0x2a4 ; if item id == 0x4C ; quiver 50 +0x00000294: addiu $at, $zero, 0x48 + 0x00000298: jr $ra + 0x0000029c: addiu $v0, $zero, 0xff ; return FF + +0x000002a0: addiu $at, $zero, 0x48 +0x000002a4: beq $v0, $at, 0x2b4 ; if item id == 0x48 ; bullet bag 40 +0x000002a8: addiu $at, $zero, 0x49 +0x000002ac: bnel $v0, $at, 0x2c0 ; if item id == 0x49 ; bullet bag 50 +0x000002b0: addiu $at, $zero, 0x4d + 0x000002b4: jr $ra + 0x000002b8: addiu $v0, $zero, 0xff ; return ff + +0x000002bc: addiu $at, $zero, 0x4d +0x000002c0: beq $v0, $at, 0x2d0 ; if item id == 0x4D ; bomb bag 20 +0x000002c4: lui $t9, 0x8012 +0x000002c8: addiu $at, $zero, 2 +0x000002cc: bne $v0, $at, 0x304 ; if item id == 0x02 ; bombs + 0x000002d0: lui $t0, 0x8010 + 0x000002d4: lw $t0, -0x737c($t0) + 0x000002d8: lw $t9, -0x5990($t9) + 0x000002dc: lui $t2, 0x8010 + 0x000002e0: lbu $t2, -0x733b($t2) + 0x000002e4: and $t1, $t9, $t0 + 0x000002e8: srav $t3, $t1, $t2 + 0x000002ec: bnez $t3, 0x2fc + 0x000002f0: nop + 0x000002f4: jr $ra + 0x000002f8: addiu $v0, $zero, 0xff ; if no bomb, return ff + 0x000002fc: jr $ra + 0x00000300: move $v0, $zero ; if bomb, return 0 + +0x00000304: slti $at, $v0, 0x98 +0x00000308: bnez $at, 0x320 ; if item id >= 0x98 +0x0000030c: slti $at, $v0, 0x9c +0x00000310: beql $at, $zero, 0x324 ; if item id < 0x9C +0x00000314: slti $at, $v0, 0x4e + ; stick and nut capacity upgrades = FF + 0x00000318: jr $ra + 0x0000031c: addiu $v0, $zero, 0xff + +0x00000320: slti $at, $v0, 0x4e +0x00000324: bnez $at, 0x33c ; if item id >= 0x4E +0x00000328: slti $at, $v0, 0x58 +0x0000032c: beql $at, $zero, 0x340 ; if item id < 0x58 + ; bomb bag 30/40, bracelets, scales, wallets = FF + 0x00000330: addiu $at, $zero, 0xb + 0x00000334: jr $ra + 0x00000338: addiu $v0, $zero, 0xff + +0x0000033c: addiu $at, $zero, 0xb +0x00000340: bnel $v0, $at, 0x354 ; if item id == 0x0B ; longshot +0x00000344: addiu $at, $zero, 0x58 + 0x00000348: jr $ra + 0x0000034c: addiu $v0, $zero, 0xff ; return FF + +0x00000350: addiu $at, $zero, 0x58 +0x00000354: beq $v0, $at, 0x368 ; if item id == 0x58 ; deku seeds 5 +0x00000358: lui $t4, 0x8012 +0x0000035c: addiu $at, $zero, 0x95 +0x00000360: bnel $v0, $at, 0x38c ; if item id == 0x95 ; deku seeds 30 +0x00000364: addiu $at, $zero, 0x10 + 0x00000368: lhu $t4, -0x4b3e($t4) + 0x0000036c: andi $t5, $t4, 8 + 0x00000370: bnez $t5, 0x380 + 0x00000374: nop + 0x00000378: jr $ra + 0x0000037c: addiu $v0, $zero, 0xff ; if no seed bag, return ff + 0x00000380: jr $ra + 0x00000384: addiu $v0, $zero, 0x58 ; if seed bag, return 58 + +0x00000388: addiu $at, $zero, 0x10 +0x0000038c: bnel $v0, $at, 0x3a0 ; if item id == 0x10 ; magic bean +0x00000390: addiu $at, $zero, 0x7a + 0x00000394: jr $ra + 0x00000398: addiu $v0, $zero, 0xff ; return FF + +0x0000039c: addiu $at, $zero, 0x7a +0x000003a0: beq $v0, $at, 0x3b0 ; if item id == 0x7A ; heart piece +0x000003a4: addiu $at, $zero, 0x73 +0x000003a8: bnel $v0, $at, 0x3bc ; if item id == 0x73 ; heart piece +0x000003ac: addiu $at, $zero, 0x72 + 0x000003b0: jr $ra + 0x000003b4: addiu $v0, $zero, 0xff ; return FF + +0x000003b8: addiu $at, $zero, 0x72 +0x000003bc: bnel $v0, $at, 0x3d0 ; if item id == 0x72 ; heart container +0x000003c0: addiu $at, $zero, 0x83 + 0x000003c4: jr $ra + 0x000003c8: addiu $v0, $zero, 0xff ; return FF + +0x000003cc: addiu $at, $zero, 0x83 +0x000003d0: bnel $v0, $at, 0x3e4 ; if item id == 0x83 ; recovery heart +0x000003d4: addiu $at, $zero, 0x78 + 0x000003d8: jr $ra + 0x000003dc: addiu $v0, $zero, 0x83 ; return 83 + +0x000003e0: addiu $at, $zero, 0x78 +0x000003e4: beq $v0, $at, 0x3f8 ; if item id == 0x78 ; small magic refill +0x000003e8: lui $t6, 0x8012 +0x000003ec: addiu $at, $zero, 0x79 +0x000003f0: bnel $v0, $at, 0x41c ; if item id == 0x79 ; large magic refill +0x000003f4: slti $at, $v0, 0x84 + 0x000003f8: lhu $t6, -0x4b06($t6) + 0x000003fc: andi $t7, $t6, 0x100 + 0x00000400: bnez $t7, 0x410 + 0x00000404: nop + 0x00000408: jr $ra + 0x0000040c: addiu $v0, $zero, 0xff ; no magic = return ff + 0x00000410: jr $ra + 0x00000414: move $v0, $a0 ; magic = return item id + +0x00000418: slti $at, $v0, 0x84 +0x0000041c: bnez $at, 0x438 ; if item id >= 0x84 +0x00000420: addiu $a2, $zero, 0x14 +0x00000424: slti $at, $v0, 0x8a +0x00000428: beqz $at, 0x438 ; if item id < 0x8A +0x0000042c: nop + ; rupee 1/5/20/50/200 = FF + 0x00000430: jr $ra + 0x00000434: addiu $v0, $zero, 0xff + +0x00000438: bne $a2, $v0, 0x448 ; if item id == 0x14 ; bottle +0x0000043c: slti $at, $v0, 0x15 + 0x00000440: jr $ra + 0x00000444: addiu $v0, $zero, 0xff ; return FF + +0x00000448: bnez $at, 0x454 ; if item id >= 0x15 +0x0000044c: slti $at, $v0, 0x21 +0x00000450: bnez $at, 0x45c ; if item id < 0x21 +0x00000454: addiu $at, $zero, 0x82 +0x00000458: bne $v0, $at, 0x510 ; if item id == 0x82 ; milk + ; if item is bottled item + 0x0000045c: sll $a0, $v1, 0x10 + 0x00000460: addiu $at, $zero, 0x1a + 0x00000464: beq $v0, $at, 0x4c8 + 0x00000468: sra $a0, $a0, 0x10 ; a0 = v1 & 0x0000FFFF + 0x0000046c: addiu $at, $zero, 0x1b + 0x00000470: beq $v0, $at, 0x4c8 ; if item id == 0x1B ; ruto's letter + 0x00000474: lui $t8, 0x8012 + 0x00000478: addiu $at, $zero, 0x82 + 0x0000047c: bne $v0, $at, 0x48c ; if item id == 0x82 ; milk + 0x00000480: addiu $t8, $t8, -0x5a30 ; t8 = inventory + 0x00000484: lui $a0, 0x8010 + 0x00000488: lbu $a0, -0x70b2($a0) ; a0 = ?? + 0x0000048c: move $v0, $zero ; v0 = 0 + 0x00000490: addu $v1, $a0, $t8 ; v1 = inventory item slot + 0x00000494: addu $t9, $v1, $v0 ; t9 = inventory item slot + + 0x00000498: lbu $t0, 0x74($t9) ; t0 = inventory item + 0x0000049c: addiu $v0, $v0, 1 ; v0++ + 0x000004a0: sll $v0, $v0, 0x10 + 0x000004a4: bne $a2, $t0, 0x4b4 ; if inventory item == item id + 0x000004a8: sra $v0, $v0, 0x10 ; v0 = v0 & 0x0000FFFF ? + 0x000004ac: jr $ra + 0x000004b0: addiu $v0, $zero, 0xff ; return FF + 0x000004b4: slti $at, $v0, 4 + 0x000004b8: bnezl $at, 0x498 ; if v0 < 4, loop + 0x000004bc: addu $t9, $v1, $v0 ; t9 = inventory item slot + 0x000004c0: b 0x52c ; return ?? + 0x000004c4: nop + + ; ruto's letter + 0x000004c8: lui $t1, 0x8012 + 0x000004cc: addiu $t1, $t1, -0x5a30 ; t1 = inventory + 0x000004d0: addu $v1, $a0, $t1 ; v1 = inventory item slot + 0x000004d4: addiu $a0, $zero, 0xff ; a0 = FF + 0x000004d8: move $v0, $zero ; v0 = 0 + 0x000004dc: addu $t2, $v1, $v0 ; t2 = inventory item slot + + 0x000004e0: lbu $t3, 0x74($t2) ; t3 = inventory item + 0x000004e4: addiu $v0, $v0, 1 ; v0++ + 0x000004e8: sll $v0, $v0, 0x10 + 0x000004ec: bne $a0, $t3, 0x4fc ; if inventory item == FF + 0x000004f0: sra $v0, $v0, 0x10 ; v0 = v0 & 0x0000FFFF ? + 0x000004f4: jr $ra + 0x000004f8: addiu $v0, $zero, 0xff ; return FF + 0x000004fc: slti $at, $v0, 4 + 0x00000500: bnezl $at, 0x4e0 ; if v0 < 4, loop + 0x00000504: addu $t2, $v1, $v0 ; t2 = inventory item slot + 0x00000508: b 0x52c ; return ?? + 0x0000050c: nop + +0x00000510: slti $at, $v0, 0x21 +0x00000514: bnez $at, 0x52c ; if item id >= 0x21 +0x00000518: slti $at, $v0, 0x38 +0x0000051c: beqz $at, 0x52c ; if item id >= 0x38 +0x00000520: nop + ; child/adult trade items + 0x00000524: jr $ra + 0x00000528: addiu $v0, $zero, 0xff ; return FF + +0x0000052c: lui $v0, 0x8012 +0x00000530: addu $v0, $v0, $a1 +0x00000534: lbu $v0, -0x59bc($v0) ; return ??? +0x00000538: jr $ra +0x0000053c: nop + + + + + + + + + + + + + + + + + + + + + +; Called when attempting to buy item +;a0 = ??? +;a1 = actor +;-------- +;v0 = 0 = already have one +; 1 = can buy! +; 2 = can't hold any more/already own +; 3 = no empty bottle +; 4 = not enough rupees +; 5 = not adult/can't buy + +func_0x00C0076C: +0x00000000: addiu sp, sp, -0x18 +0x00000004: sw ra, 0x14(sp) +0x00000008: sw a0, 0x18(sp) +0x0000000c: sw a1, 0x1c(sp) +0x00000010: jal 0x71420 ; get inventory slot with bow +0x00000014: addiu a0, zero, 3 ; a0 = 3 +0x00000018: addiu at, zero, 0xff ; at = 0xFF +0x0000001c: bne v0, at, 0x2c ; if has bow +0x00000020: lw ra, 0x14(sp) +0x00000024: b 0xa8 +0x00000028: addiu v0, zero, 5 ; if v0 == 0xFF, return v0 = 5 + +0x0000002c: lui v0, 0x8012 +0x00000030: addiu v0, v0, -0x5a30 ; v0 = save context +0x00000034: lui t0, 0x8010 +0x00000038: lw t0, -0x7380(t0) ; t0 = bow_bitflag +0x0000003c: lw t9, 0xa0(v0) ; t9 = equipment +0x00000040: lui t2, 0x8010 +0x00000044: lbu t2, -0x733c(t2) ; t2 = bow_bit +0x00000048: lui t6, 0x8010 +0x0000004c: lbu t6, -0x70c9(t6) ; t6 = bowslot +0x00000050: and t1, t9, t0 ; t1 = equipment & bow_bitflag +0x00000054: srav t3, t1, t2 ; t3 = t1 >> bow_bit +0x00000058: sll t4, t3, 1 ; t4 = t3 << 1 +0x0000005c: lui t5, 0x8010 +0x00000060: addu t5, t5, t4 ; t5 = quiver_index +0x00000064: addu t7, v0, t6 ; t7 = save + bowslot +0x00000068: lb t8, 0x8c(t7) ; t8 = arrow_ammo +0x0000006c: lhu t5, -0x7334(t5) ; t5 = arrow_max +0x00000070: lw t7, 0x1c(sp) ; t7 = a1 +0x00000074: slt at, t8, t5 ; at = arrow_ammo < arrow_max +0x00000078: bnezl at, 0x8c ; if arrow_ammo < arrow_max +0x0000007c: lh t6, 0x34(v0) ; t6 = rupees +0x00000080: b 0xa8 +0x00000084: addiu v0, zero, 2 ; if arrow_ammo >= arrow_max, return v0 = 2 + +0x00000088: lh t6, 0x34(v0) ; unreachable? + +0x0000008c: lh t9, 0x1b8(t7) ; t9 = cost +0x00000090: addiu v0, zero, 1 ; v0 = 1 +0x00000094: slt at, t6, t9 ; at = rupees < cost +0x00000098: beqz at, 0xa8 ; if rupees < cost, return v0 = 1 +0x0000009c: nop +0x000000a0: b 0xa8 +0x000000a4: addiu v0, zero, 4 ; return v0 = 4 +0x000000a8: jr ra +0x000000ac: addiu sp, sp, 0x18 + +func_0x00C0081C: +0x00000000: lui v0, 0x8012 +0x00000004: addiu v0, v0, -0x5a30 +0x00000008: sw a0, (sp) +0x0000000c: lui t6, 0x8010 +0x00000010: lw t6, -0x73c4(t6) +0x00000014: lw t7, 0xa4(v0) +0x00000018: lui t9, 0x8010 +0x0000001c: lui t3, 0x8010 +0x00000020: and t8, t6, t7 +0x00000024: bnez t8, 0x34 +0x00000028: lui t5, 0x8010 +0x0000002c: jr ra +0x00000030: addiu v0, zero, 2 +0x00000034: lw t2, 0xa0(v0) +0x00000038: lw t3, -0x737c(t3) +0x0000003c: lbu t5, -0x733b(t5) +0x00000040: lbu t9, -0x70ca(t9) +0x00000044: and t4, t2, t3 +0x00000048: srav t6, t4, t5 +0x0000004c: sll t7, t6, 1 +0x00000050: lui t8, 0x8010 +0x00000054: addu t8, t8, t7 +0x00000058: addu t0, v0, t9 +0x0000005c: lb t1, 0x8c(t0) +0x00000060: lhu t8, -0x732c(t8) +0x00000064: slt at, t1, t8 +0x00000068: bnezl at, 0x7c +0x0000006c: lh t9, 0x34(v0) +0x00000070: jr ra +0x00000074: addiu v0, zero, 2 +0x00000078: lh t9, 0x34(v0) +0x0000007c: lh t0, 0x1b8(a1) +0x00000080: addiu v0, zero, 1 +0x00000084: slt at, t9, t0 +0x00000088: beqz at, 0x98 +0x0000008c: nop +0x00000090: jr ra +0x00000094: addiu v0, zero, 4 +0x00000098: jr ra +0x0000009c: nop + + +func_0x00C008BC: +0x00000000: addiu sp, sp, -0x18 +0x00000004: lui v1, 0x8012 +0x00000008: addiu v1, v1, -0x5a30 +0x0000000c: sw ra, 0x14(sp) +0x00000010: sw a0, 0x18(sp) +0x00000014: lui t7, 0x8010 +0x00000018: lw t7, -0x7364(t7) +0x0000001c: lw t6, 0xa0(v1) +0x00000020: lui t9, 0x8010 +0x00000024: lbu t9, -0x7335(t9) +0x00000028: and t8, t6, t7 +0x0000002c: lui v0, 0x8010 +0x00000030: srav t0, t8, t9 +0x00000034: sll t1, t0, 1 +0x00000038: addu v0, v0, t1 +0x0000003c: lhu v0, -0x72fc(v0) +0x00000040: lui t2, 0x8010 +0x00000044: beql v0, zero, 0x70 +0x00000048: lh t5, 0x34(v1) +0x0000004c: lbu t2, -0x70cb(t2) +0x00000050: addu t3, v1, t2 +0x00000054: lb t4, 0x8c(t3) +0x00000058: slt at, t4, v0 +0x0000005c: bnezl at, 0x70 +0x00000060: lh t5, 0x34(v1) +0x00000064: b 0xa8 +0x00000068: addiu v0, zero, 2 +0x0000006c: lh t5, 0x34(v1) +0x00000070: lh t6, 0x1b8(a1) +0x00000074: slt at, t5, t6 +0x00000078: beqz at, 0x88 +0x0000007c: nop +0x00000080: b 0xa8 +0x00000084: addiu v0, zero, 4 +0x00000088: jal 0x71420 +0x0000008c: addiu a0, zero, 1 +0x00000090: addiu at, zero, 0xff +0x00000094: bnel v0, at, 0xa8 +0x00000098: addiu v0, zero, 1 +0x0000009c: b 0xa8 +0x000000a0: move v0, zero +0x000000a4: addiu v0, zero, 1 +0x000000a8: lw ra, 0x14(sp) +0x000000ac: addiu sp, sp, 0x18 +0x000000b0: jr ra +0x000000b4: nop + + +func_0x00C00974: +0x00000000: addiu sp, sp, -0x18 +0x00000004: lui v1, 0x8012 +0x00000008: addiu v1, v1, -0x5a30 +0x0000000c: sw ra, 0x14(sp) +0x00000010: sw a0, 0x18(sp) +0x00000014: lui t7, 0x8010 +0x00000018: lw t7, -0x7368(t7) +0x0000001c: lw t6, 0xa0(v1) +0x00000020: lui t9, 0x8010 +0x00000024: lbu t9, -0x7336(t9) +0x00000028: and t8, t6, t7 +0x0000002c: lui v0, 0x8010 +0x00000030: srav t0, t8, t9 +0x00000034: sll t1, t0, 1 +0x00000038: addu v0, v0, t1 +0x0000003c: lhu v0, -0x7304(v0) +0x00000040: lui t2, 0x8010 +0x00000044: beql v0, zero, 0x70 +0x00000048: lh t5, 0x34(v1) +0x0000004c: lbu t2, -0x70cc(t2) +0x00000050: addu t3, v1, t2 +0x00000054: lb t4, 0x8c(t3) +0x00000058: slt at, t4, v0 +0x0000005c: bnezl at, 0x70 +0x00000060: lh t5, 0x34(v1) +0x00000064: b 0xa8 +0x00000068: addiu v0, zero, 2 +0x0000006c: lh t5, 0x34(v1) +0x00000070: lh t6, 0x1b8(a1) +0x00000074: slt at, t5, t6 +0x00000078: beqz at, 0x88 +0x0000007c: nop +0x00000080: b 0xa8 +0x00000084: addiu v0, zero, 4 +0x00000088: jal 0x71420 +0x0000008c: move a0, zero +0x00000090: addiu at, zero, 0xff +0x00000094: bnel v0, at, 0xa8 +0x00000098: addiu v0, zero, 1 +0x0000009c: b 0xa8 +0x000000a0: move v0, zero +0x000000a4: addiu v0, zero, 1 +0x000000a8: lw ra, 0x14(sp) +0x000000ac: addiu sp, sp, 0x18 +0x000000b0: jr ra +0x000000b4: nop + + +func_0x00C00A2C: +0x00000000: addiu sp, sp, -0x18 +0x00000004: sw ra, 0x14(sp) +0x00000008: sw a0, 0x18(sp) +0x0000000c: sw a1, 0x1c(sp) +0x00000010: jal 0x71a94 +0x00000014: nop +0x00000018: bnez v0, 0x28 +0x0000001c: lw t7, 0x1c(sp) +0x00000020: b 0x68 +0x00000024: addiu v0, zero, 3 +0x00000028: lui t6, 0x8012 +0x0000002c: lh t6, -0x59fc(t6) +0x00000030: lh t8, 0x1b8(t7) +0x00000034: slt at, t6, t8 +0x00000038: beqz at, 0x48 +0x0000003c: nop +0x00000040: b 0x68 +0x00000044: addiu v0, zero, 4 +0x00000048: jal 0x71420 +0x0000004c: addiu a0, zero, 0x19 +0x00000050: addiu at, zero, 0xff +0x00000054: bnel v0, at, 0x68 +0x00000058: addiu v0, zero, 1 +0x0000005c: b 0x68 +0x00000060: move v0, zero +0x00000064: addiu v0, zero, 1 +0x00000068: lw ra, 0x14(sp) +0x0000006c: addiu sp, sp, 0x18 +0x00000070: jr ra +0x00000074: nop + + +func_0x00C00AA4: +0x00000000: addiu sp, sp, -0x18 +0x00000004: sw ra, 0x14(sp) +0x00000008: sw a0, 0x18(sp) +0x0000000c: sw a1, 0x1c(sp) +0x00000010: jal 0x71a94 +0x00000014: nop +0x00000018: bnez v0, 0x28 +0x0000001c: lw t7, 0x1c(sp) +0x00000020: b 0x68 +0x00000024: addiu v0, zero, 3 +0x00000028: lui t6, 0x8012 +0x0000002c: lh t6, -0x59fc(t6) +0x00000030: lh t8, 0x1b8(t7) +0x00000034: slt at, t6, t8 +0x00000038: beqz at, 0x48 +0x0000003c: nop +0x00000040: b 0x68 +0x00000044: addiu v0, zero, 4 +0x00000048: jal 0x71420 +0x0000004c: addiu a0, zero, 0x15 +0x00000050: addiu at, zero, 0xff +0x00000054: bnel v0, at, 0x68 +0x00000058: addiu v0, zero, 1 +0x0000005c: b 0x68 +0x00000060: move v0, zero +0x00000064: addiu v0, zero, 1 +0x00000068: lw ra, 0x14(sp) +0x0000006c: addiu sp, sp, 0x18 +0x00000070: jr ra +0x00000074: nop + + +func_0x00C00B1C: +0x00000000: addiu sp, sp, -0x18 +0x00000004: sw ra, 0x14(sp) +0x00000008: sw a0, 0x18(sp) +0x0000000c: sw a1, 0x1c(sp) +0x00000010: jal 0x71a94 +0x00000014: nop +0x00000018: bnez v0, 0x28 +0x0000001c: lw t7, 0x1c(sp) +0x00000020: b 0x68 +0x00000024: addiu v0, zero, 3 +0x00000028: lui t6, 0x8012 +0x0000002c: lh t6, -0x59fc(t6) +0x00000030: lh t8, 0x1b8(t7) +0x00000034: slt at, t6, t8 +0x00000038: beqz at, 0x48 +0x0000003c: nop +0x00000040: b 0x68 +0x00000044: addiu v0, zero, 4 +0x00000048: jal 0x71420 +0x0000004c: addiu a0, zero, 0x16 +0x00000050: addiu at, zero, 0xff +0x00000054: bnel v0, at, 0x68 +0x00000058: addiu v0, zero, 1 +0x0000005c: b 0x68 +0x00000060: move v0, zero +0x00000064: addiu v0, zero, 1 +0x00000068: lw ra, 0x14(sp) +0x0000006c: addiu sp, sp, 0x18 +0x00000070: jr ra +0x00000074: nop + + +func_0x00C00B94: +0x00000000: addiu sp, sp, -0x18 +0x00000004: sw ra, 0x14(sp) +0x00000008: sw a0, 0x18(sp) +0x0000000c: sw a1, 0x1c(sp) +0x00000010: jal 0x71a94 +0x00000014: nop +0x00000018: bnez v0, 0x28 +0x0000001c: lw t7, 0x1c(sp) +0x00000020: b 0x68 +0x00000024: addiu v0, zero, 3 +0x00000028: lui t6, 0x8012 +0x0000002c: lh t6, -0x59fc(t6) +0x00000030: lh t8, 0x1b8(t7) +0x00000034: slt at, t6, t8 +0x00000038: beqz at, 0x48 +0x0000003c: nop +0x00000040: b 0x68 +0x00000044: addiu v0, zero, 4 +0x00000048: jal 0x71420 +0x0000004c: addiu a0, zero, 0x17 +0x00000050: addiu at, zero, 0xff +0x00000054: bnel v0, at, 0x68 +0x00000058: addiu v0, zero, 1 +0x0000005c: b 0x68 +0x00000060: move v0, zero +0x00000064: addiu v0, zero, 1 +0x00000068: lw ra, 0x14(sp) +0x0000006c: addiu sp, sp, 0x18 +0x00000070: jr ra +0x00000074: nop + + +func_0x00C00C0C: +0x00000000: addiu sp, sp, -0x18 +0x00000004: sw a0, 0x18(sp) +0x00000008: lui a0, 0x8012 +0x0000000c: lui v1, 0x8010 +0x00000010: addiu v1, v1, -0x7410 +0x00000014: addiu a0, a0, -0x5a30 +0x00000018: sw ra, 0x14(sp) +0x0000001c: lhu v0, 0x9c(a0) +0x00000020: lw t6, 8(v1) +0x00000024: and t7, t6, v0 +0x00000028: beql t7, zero, 0x4c +0x0000002c: lh t0, 0x34(a0) +0x00000030: lw t8, 0xc(v1) +0x00000034: and t9, t8, v0 +0x00000038: bnezl t9, 0x4c +0x0000003c: lh t0, 0x34(a0) +0x00000040: b 0x84 +0x00000044: addiu v0, zero, 2 +0x00000048: lh t0, 0x34(a0) +0x0000004c: lh t1, 0x1b8(a1) +0x00000050: slt at, t0, t1 +0x00000054: beqz at, 0x64 +0x00000058: nop +0x0000005c: b 0x84 +0x00000060: addiu v0, zero, 4 +0x00000064: jal 0x71420 +0x00000068: addiu a0, zero, 0x3d +0x0000006c: addiu at, zero, 0xff +0x00000070: bnel v0, at, 0x84 +0x00000074: addiu v0, zero, 1 +0x00000078: b 0x84 +0x0000007c: move v0, zero +0x00000080: addiu v0, zero, 1 +0x00000084: lw ra, 0x14(sp) +0x00000088: addiu sp, sp, 0x18 +0x0000008c: jr ra +0x00000090: nop + + +func_0x00C00CA0: +0x00000000: addiu sp, sp, -0x18 +0x00000004: lui v0, 0x8012 +0x00000008: addiu v0, v0, -0x5a30 +0x0000000c: sw ra, 0x14(sp) +0x00000010: sw a0, 0x18(sp) +0x00000014: lui t6, 0x8010 +0x00000018: lw t6, -0x73fc(t6) +0x0000001c: lhu t7, 0x9c(v0) +0x00000020: and t8, t6, t7 +0x00000024: beql t8, zero, 0x38 +0x00000028: lh t9, 0x34(v0) +0x0000002c: b 0x70 +0x00000030: addiu v0, zero, 2 +0x00000034: lh t9, 0x34(v0) +0x00000038: lh t0, 0x1b8(a1) +0x0000003c: slt at, t9, t0 +0x00000040: beqz at, 0x50 +0x00000044: nop +0x00000048: b 0x70 +0x0000004c: addiu v0, zero, 4 +0x00000050: jal 0x71420 +0x00000054: addiu a0, zero, 0x3f +0x00000058: addiu at, zero, 0xff +0x0000005c: bnel v0, at, 0x70 +0x00000060: addiu v0, zero, 1 +0x00000064: b 0x70 +0x00000068: move v0, zero +0x0000006c: addiu v0, zero, 1 +0x00000070: lw ra, 0x14(sp) +0x00000074: addiu sp, sp, 0x18 +0x00000078: jr ra +0x0000007c: nop + + +func_0x00C00D20: +0x00000000: addiu sp, sp, -0x18 +0x00000004: lui v0, 0x8012 +0x00000008: addiu v0, v0, -0x5a30 +0x0000000c: sw ra, 0x14(sp) +0x00000010: sw a0, 0x18(sp) +0x00000014: lui t6, 0x8010 +0x00000018: lw t6, -0x7400(t6) +0x0000001c: lhu t7, 0x9c(v0) +0x00000020: and t8, t6, t7 +0x00000024: beql t8, zero, 0x38 +0x00000028: lh t9, 0x34(v0) +0x0000002c: b 0x70 +0x00000030: addiu v0, zero, 2 +0x00000034: lh t9, 0x34(v0) +0x00000038: lh t0, 0x1b8(a1) +0x0000003c: slt at, t9, t0 +0x00000040: beqz at, 0x50 +0x00000044: nop +0x00000048: b 0x70 +0x0000004c: addiu v0, zero, 4 +0x00000050: jal 0x71420 +0x00000054: addiu a0, zero, 0x3e +0x00000058: addiu at, zero, 0xff +0x0000005c: bnel v0, at, 0x70 +0x00000060: addiu v0, zero, 1 +0x00000064: b 0x70 +0x00000068: move v0, zero +0x0000006c: addiu v0, zero, 1 +0x00000070: lw ra, 0x14(sp) +0x00000074: addiu sp, sp, 0x18 +0x00000078: jr ra +0x0000007c: nop + + +func_0x00C00DA0: +0x00000000: addiu sp, sp, -0x18 +0x00000004: lui v1, 0x8012 +0x00000008: addiu v1, v1, -0x5a30 ; v1 = save context +0x0000000c: sw ra, 0x14(sp) +0x00000010: sw a0, 0x18(sp) +0x00000014: lw t6, 4(v1) ; t6 = age +0x00000018: addiu at, zero, 5 ; at = 5 +0x0000001c: addiu v0, zero, 0x11 ; v0 = 0x11 +0x00000020: beqz t6, 0x30 ; if adult +0x00000024: lui t7, 0x8010 +0x00000028: b 0x30 ; if child, return v0 = 5 +0x0000002c: addiu v0, zero, 5 + +0x00000030: bne v0, at, 0x40 ; if 5 != 11??????? +0x00000034: nop +0x00000038: b 0x98 +0x0000003c: addiu v0, zero, 2 ; this is unreachable + +0x00000040: lw t7, -0x73ec(t7) ; fire tunic bitmask +0x00000044: lhu t8, 0x9c(v1) ; t8 = equipment +0x00000048: and t9, t7, t8 ; t9 = has fire tunic +0x0000004c: beql t9, zero, 0x60 ; if not has fire tunic +0x00000050: lh t0, 0x34(v1) ; t0 = rupees +0x00000054: b 0x98 ; if has fire tunic, return v0 = 2 +0x00000058: addiu v0, zero, 2 + +0x0000005c: lh t0, 0x34(v1) ; unreachable + +0x00000060: lh t1, 0x1b8(a1) ; t1 = cost +0x00000064: slt at, t0, t1 ; at = rupees < cost +0x00000068: beqz at, 0x78 +0x0000006c: nop +0x00000070: b 0x98 +0x00000074: addiu v0, zero, 4 +0x00000078: jal 0x71420 +0x0000007c: addiu a0, zero, 0x42 +0x00000080: addiu at, zero, 0xff +0x00000084: bnel v0, at, 0x98 +0x00000088: addiu v0, zero, 1 +0x0000008c: b 0x98 +0x00000090: move v0, zero +0x00000094: addiu v0, zero, 1 +0x00000098: lw ra, 0x14(sp) +0x0000009c: addiu sp, sp, 0x18 +0x000000a0: jr ra +0x000000a4: nop + + +func_0x00C00E48: +0x00000000: addiu sp, sp, -0x18 +0x00000004: lui v1, 0x8012 +0x00000008: addiu v1, v1, -0x5a30 +0x0000000c: sw ra, 0x14(sp) +0x00000010: sw a0, 0x18(sp) +0x00000014: lw t6, 4(v1) +0x00000018: addiu at, zero, 5 +0x0000001c: addiu v0, zero, 0x11 +0x00000020: beqz t6, 0x30 +0x00000024: lui t7, 0x8010 +0x00000028: b 0x30 +0x0000002c: addiu v0, zero, 5 +0x00000030: bne v0, at, 0x40 +0x00000034: nop +0x00000038: b 0x98 +0x0000003c: addiu v0, zero, 2 +0x00000040: lw t7, -0x73e8(t7) +0x00000044: lhu t8, 0x9c(v1) +0x00000048: and t9, t7, t8 +0x0000004c: beql t9, zero, 0x60 +0x00000050: lh t0, 0x34(v1) +0x00000054: b 0x98 +0x00000058: addiu v0, zero, 2 +0x0000005c: lh t0, 0x34(v1) +0x00000060: lh t1, 0x1b8(a1) +0x00000064: slt at, t0, t1 +0x00000068: beqz at, 0x78 +0x0000006c: nop +0x00000070: b 0x98 +0x00000074: addiu v0, zero, 4 +0x00000078: jal 0x71420 +0x0000007c: addiu a0, zero, 0x43 +0x00000080: addiu at, zero, 0xff +0x00000084: bnel v0, at, 0x98 +0x00000088: addiu v0, zero, 1 +0x0000008c: b 0x98 +0x00000090: move v0, zero +0x00000094: addiu v0, zero, 1 +0x00000098: lw ra, 0x14(sp) +0x0000009c: addiu sp, sp, 0x18 +0x000000a0: jr ra +0x000000a4: nop + + +func_0x00C00EF0: +0x00000000: lui v0, 0x8012 +0x00000004: addiu v0, v0, -0x5a30 +0x00000008: sw a0, (sp) +0x0000000c: lh t6, 0x30(v0) +0x00000010: lh t7, 0x2e(v0) +0x00000014: bnel t6, t7, 0x28 +0x00000018: lh t8, 0x34(v0) +0x0000001c: jr ra +0x00000020: addiu v0, zero, 2 +0x00000024: lh t8, 0x34(v0) +0x00000028: lh t9, 0x1b8(a1) +0x0000002c: addiu v0, zero, 1 +0x00000030: slt at, t8, t9 +0x00000034: beqz at, 0x44 +0x00000038: nop +0x0000003c: jr ra +0x00000040: addiu v0, zero, 4 +0x00000044: jr ra +0x00000048: nop + +------------------------------------------------------------------------------------------------------------ +func_0x00C00F3C: +0x00000000: addiu sp, sp, -0x18 +0x00000004: sw ra, 0x14(sp) +0x00000008: sw a0, 0x18(sp) +0x0000000c: lui t6, 0x8012 +0x00000010: lh t6, -0x59fc(t6) +0x00000014: lh t7, 0x1b8(a1) +0x00000018: slt at, t6, t7 +0x0000001c: beqz at, 0x2c +0x00000020: nop +0x00000024: b 0x4c +0x00000028: addiu v0, zero, 4 +0x0000002c: jal 0x71420 +0x00000030: addiu a0, zero, 0x1a +0x00000034: addiu at, zero, 0xff +0x00000038: bnel v0, at, 0x4c +0x0000003c: addiu v0, zero, 1 +0x00000040: b 0x4c +0x00000044: move v0, zero +0x00000048: addiu v0, zero, 1 +0x0000004c: lw ra, 0x14(sp) +0x00000050: addiu sp, sp, 0x18 +0x00000054: jr ra +0x00000058: nop + + +func_0x00C00F98: +0x00000000: addiu sp, sp, -0x18 +0x00000004: sw ra, 0x14(sp) +0x00000008: sw a0, 0x18(sp) +0x0000000c: lui t6, 0x8012 +0x00000010: lh t6, -0x59fc(t6) +0x00000014: lh t7, 0x1b8(a1) +0x00000018: slt at, t6, t7 +0x0000001c: beqz at, 0x2c +0x00000020: nop +0x00000024: b 0x4c +0x00000028: addiu v0, zero, 4 +0x0000002c: jal 0x71420 +0x00000030: addiu a0, zero, 0x23 +0x00000034: addiu at, zero, 0xff +0x00000038: bnel v0, at, 0x4c +0x0000003c: addiu v0, zero, 1 +0x00000040: b 0x4c +0x00000044: move v0, zero +0x00000048: addiu v0, zero, 1 +0x0000004c: lw ra, 0x14(sp) +0x00000050: addiu sp, sp, 0x18 +0x00000054: jr ra +0x00000058: nop + + +func_0x00C00FF4: +0x00000000: sw a0, (sp) +0x00000004: sw a1, 4(sp) +0x00000008: addiu v0, zero, 4 +0x0000000c: jr ra +0x00000010: nop + + +func_0x00C01008: +0x00000000: sw a0, (sp) +0x00000004: sw a1, 4(sp) +0x00000008: addiu v0, zero, 4 +0x0000000c: jr ra +0x00000010: nop + + +func_0x00C0101C: +0x00000000: addiu sp, sp, -0x18 +0x00000004: lui v0, 0x8012 +0x00000008: addiu v0, v0, -0x5a30 ;v0 = save +0x0000000c: sw ra, 0x14(sp) +0x00000010: sw a0, 0x18(sp) +0x00000014: lui t6, 0x8010 +0x00000018: lbu t6, -0x70c3(t6) ; t6 = bombchu slot id +0x0000001c: addu t7, v0, t6 ; t7 = save + bomchu slot id +0x00000020: lb t8, 0x8c(t7) ; t8 = bombchu count +0x00000024: slti at, t8, 0x32 +0x00000028: bnezl at, 0x3c ; if bombchu count < 50 +0x0000002c: lh t9, 0x34(v0) ; t9 = rupees +0x00000030: b 0x74 +0x00000034: addiu v0, zero, 2 ; if bombchu count >= 50, return v0 = 2 + +0x00000038: lh t9, 0x34(v0) ; unreachable + +0x0000003c: lh t0, 0x1b8(a1) ; t0 = cost +0x00000040: slt at, t9, t0 +0x00000044: beqz at, 0x54 ; if rupees < cost +0x00000048: nop +0x0000004c: b 0x74 +0x00000050: addiu v0, zero, 4 ; if rupees < cost return v0 = 4 + +0x00000054: jal 0x71420 ; v0 = bombchu item slot +0x00000058: addiu a0, zero, 9 +0x0000005c: addiu at, zero, 0xff +0x00000060: bnel v0, at, 0x74 ; if no bombchu item +0x00000064: addiu v0, zero, 1 ; if bombchu item, return v0 = 1 +0x00000068: b 0x74 +0x0000006c: move v0, zero ; if not bombchu item, return v0 = 0 + +0x00000070: addiu v0, zero, 1 ; unreachable + +0x00000074: lw ra, 0x14(sp) +0x00000078: addiu sp, sp, 0x18 +0x0000007c: jr ra +0x00000080: nop + + +func_0x00C010A0: +0x00000000: addiu sp, sp, -0x18 +0x00000004: lui v0, 0x8012 +0x00000008: addiu v0, v0, -0x5a30 ; v0 = save +0x0000000c: sw ra, 0x14(sp) +0x00000010: sw a0, 0x18(sp) +0x00000014: lui t0, 0x8010 +0x00000018: lw t0, -0x736c(t0) ; t0 = ?? +0x0000001c: lw t9, 0xa0(v0) ; t9 = equipment +0x00000020: lui t2, 0x8010 +0x00000024: lbu t2, -0x7337(t2) ; t2 = ?? +0x00000028: lui t6, 0x8010 +0x0000002c: lbu t6, -0x70c6(t6) ; t6 = ?? +0x00000030: and t1, t9, t0 ; t1 = equipment & t0 +0x00000034: srav t3, t1, t2 ; t3 = t1 >> t2 +0x00000038: sll t4, t3, 1 ; t4 = t3 << 1 +0x0000003c: lui t5, 0x8010 +0x00000040: addu t5, t5, t4 +0x00000044: addu t7, v0, t6 ; t7 = save + ?? +0x00000048: lb t8, 0x8c(t7) ; t8 = ammo +0x0000004c: lhu t5, -0x730c(t5) ; t5 = max_ammo +0x00000050: slt at, t8, t5 +0x00000054: bnezl at, 0x68 ; if ammo < max_ammo +0x00000058: lh t6, 0x34(v0) ; t6 = rupees + 0x0000005c: b 0xa0 + 0x00000060: addiu v0, zero, 2 ; return 2 +0x00000064: lh t6, 0x34(v0) ; unreachable + +0x00000068: lh t7, 0x1b8(a1) ; t7 = cost +0x0000006c: slt at, t6, t7 +0x00000070: beqz at, 0x80 ; if rupee < cost +0x00000074: nop + 0x00000078: b 0xa0 + 0x0000007c: addiu v0, zero, 4 ; return 4 +0x00000080: jal 0x71420 ; v0 = item in deku seed slot +0x00000084: addiu a0, zero, 0x58 ; a0 = deku seeds +0x00000088: addiu at, zero, 0xff +0x0000008c: bnel v0, at, 0xa0 ; if no item +0x00000090: addiu v0, zero, 1 + 0x00000094: b 0xa0 + 0x00000098: move v0, zero ; return 0 +0x0000009c: addiu v0, zero, 1 ; return 1 +0x000000a0: lw ra, 0x14(sp) +0x000000a4: addiu sp, sp, 0x18 +0x000000a8: jr ra +0x000000ac: nop + + +func_0x00C01150: +0x00000000: sw a0, (sp) +0x00000004: sw a1, 4(sp) +0x00000008: addiu v0, zero, 5 +0x0000000c: jr ra +0x00000010: nop + + +func_0x00C01164: +0x00000000: addiu sp, sp, -0x18 +0x00000004: sw ra, 0x14(sp) +0x00000008: sw a0, 0x18(sp) +0x0000000c: sw a1, 0x1c(sp) +0x00000010: jal 0x71a94 +0x00000014: nop +0x00000018: bnez v0, 0x28 +0x0000001c: lw t7, 0x1c(sp) +0x00000020: b 0x68 +0x00000024: addiu v0, zero, 3 +0x00000028: lui t6, 0x8012 +0x0000002c: lh t6, -0x59fc(t6) +0x00000030: lh t8, 0x1b8(t7) +0x00000034: slt at, t6, t8 +0x00000038: beqz at, 0x48 +0x0000003c: nop +0x00000040: b 0x68 +0x00000044: addiu v0, zero, 4 +0x00000048: jal 0x71420 +0x0000004c: addiu a0, zero, 0x1c +0x00000050: addiu at, zero, 0xff +0x00000054: bnel v0, at, 0x68 +0x00000058: addiu v0, zero, 1 +0x0000005c: b 0x68 +0x00000060: move v0, zero +0x00000064: addiu v0, zero, 1 +0x00000068: lw ra, 0x14(sp) +0x0000006c: addiu sp, sp, 0x18 +0x00000070: jr ra +0x00000074: nop + + +func_0x00C011DC: +0x00000000: addiu sp, sp, -0x18 +0x00000004: sw ra, 0x14(sp) +0x00000008: sw a0, 0x18(sp) +0x0000000c: sw a1, 0x1c(sp) +0x00000010: jal 0x71a94 +0x00000014: nop +0x00000018: bnez v0, 0x28 +0x0000001c: lw t7, 0x1c(sp) +0x00000020: b 0x68 +0x00000024: addiu v0, zero, 3 +0x00000028: lui t6, 0x8012 +0x0000002c: lh t6, -0x59fc(t6) +0x00000030: lh t8, 0x1b8(t7) +0x00000034: slt at, t6, t8 +0x00000038: beqz at, 0x48 +0x0000003c: nop +0x00000040: b 0x68 +0x00000044: addiu v0, zero, 4 +0x00000048: jal 0x71420 +0x0000004c: addiu a0, zero, 0x1d +0x00000050: addiu at, zero, 0xff +0x00000054: bnel v0, at, 0x68 +0x00000058: addiu v0, zero, 1 +0x0000005c: b 0x68 +0x00000060: move v0, zero +0x00000064: addiu v0, zero, 1 +0x00000068: lw ra, 0x14(sp) +0x0000006c: addiu sp, sp, 0x18 +0x00000070: jr ra +0x00000074: nop + + +func_0x00C01254: +0x00000000: addiu sp, sp, -0x18 +0x00000004: sw ra, 0x14(sp) +0x00000008: sw a0, 0x18(sp) +0x0000000c: sw a1, 0x1c(sp) +0x00000010: jal 0x71a94 +0x00000014: nop +0x00000018: bnez v0, 0x28 +0x0000001c: lw t7, 0x1c(sp) +0x00000020: b 0x68 +0x00000024: addiu v0, zero, 3 +0x00000028: lui t6, 0x8012 +0x0000002c: lh t6, -0x59fc(t6) +0x00000030: lh t8, 0x1b8(t7) +0x00000034: slt at, t6, t8 +0x00000038: beqz at, 0x48 +0x0000003c: nop +0x00000040: b 0x68 +0x00000044: addiu v0, zero, 4 +0x00000048: jal 0x71420 +0x0000004c: addiu a0, zero, 0x20 +0x00000050: addiu at, zero, 0xff +0x00000054: bnel v0, at, 0x68 +0x00000058: addiu v0, zero, 1 +0x0000005c: b 0x68 +0x00000060: move v0, zero +0x00000064: addiu v0, zero, 1 +0x00000068: lw ra, 0x14(sp) +0x0000006c: addiu sp, sp, 0x18 +0x00000070: jr ra +0x00000074: nop + + +func_0x00C012CC: +0x00000000: addiu sp, sp, -0x18 +0x00000004: sw ra, 0x14(sp) +0x00000008: sw a0, 0x18(sp) +0x0000000c: sw a1, 0x1c(sp) +0x00000010: jal 0x71a94 +0x00000014: nop +0x00000018: bnez v0, 0x28 +0x0000001c: lw t7, 0x1c(sp) +0x00000020: b 0x68 +0x00000024: addiu v0, zero, 3 +0x00000028: lui t6, 0x8012 +0x0000002c: lh t6, -0x59fc(t6) +0x00000030: lh t8, 0x1b8(t7) +0x00000034: slt at, t6, t8 +0x00000038: beqz at, 0x48 +0x0000003c: nop +0x00000040: b 0x68 +0x00000044: addiu v0, zero, 4 +0x00000048: jal 0x71420 +0x0000004c: addiu a0, zero, 0x18 +0x00000050: addiu at, zero, 0xff +0x00000054: bnel v0, at, 0x68 +0x00000058: addiu v0, zero, 1 +0x0000005c: b 0x68 +0x00000060: move v0, zero +0x00000064: addiu v0, zero, 1 +0x00000068: lw ra, 0x14(sp) +0x0000006c: addiu sp, sp, 0x18 +0x00000070: jr ra +0x00000074: nop + + + + + + + + + + + + + + +------------------------------------------------------------------------------------------------------------ +Function_3 +------------------------------------------------------------------------------------------------------------ +;a0 = global context +;a1 = actor +;-------- +;none +func_0x00C01344: +0x00000000: addiu $sp, $sp, -0x18 +0x00000004: sw $ra, 0x14($sp) +0x00000008: sw $a0, 0x18($sp) +0x0000000c: sw $a1, 0x1c($sp) +0x00000010: lw $t6, 0x1c($sp) ; t6 = actor +0x00000014: addiu $a0, $zero, 3 ; a0 = 3 +0x00000018: jal 0x721f4 ; ? +0x0000001c: lh $a1, 0x1ba($t6) ; a1 = count +; subtract money +0x00000020: lw $t7, 0x1c($sp) ; t7 = actor +0x00000024: lh $a0, 0x1b8($t7) ; a0 = cost +0x00000028: negu $a0, $a0 ; +0x0000002c: sll $a0, $a0, 0x10 +0x00000030: jal 0x721cc +0x00000034: sra $a0, $a0, 0x10 ; a0 = -cost +0x00000038: lw $ra, 0x14($sp) +0x0000003c: addiu $sp, $sp, 0x18 +0x00000040: jr $ra +0x00000044: nop + + +func_0x00C0138C: +0x00000000: addiu $sp, $sp, -0x18 +0x00000004: sw $ra, 0x14($sp) +0x00000008: sw $a1, 0x1c($sp) +0x0000000c: lw $t6, 0x1c($sp) ; t6 = actor +0x00000010: addiu $at, $zero, 5 ; at = 5 +0x00000014: lh $v0, 0x1ba($t6) ; v0 = count +0x00000018: beq $v0, $at, 0x40 ; if count = 5 +0x0000001c: addiu $at, $zero, 0xa +0x00000020: beq $v0, $at, 0x50 ; if count = 10 +0x00000024: addiu $at, $zero, 0x14 +0x00000028: beq $v0, $at, 0x60 ; if count = 15 +0x0000002c: addiu $at, $zero, 0x1e +0x00000030: beq $v0, $at, 0x70 ; if count = 20 +0x00000034: nop +0x00000038: b 0x7c ; else give nothing +0x0000003c: lw $t7, 0x1c($sp) +; give bombs +0x00000040: jal 0x6fdcc +0x00000044: addiu $a1, $zero, 0x8e +0x00000048: b 0x7c +0x0000004c: lw $t7, 0x1c($sp) + +0x00000050: jal 0x6fdcc +0x00000054: addiu $a1, $zero, 0x8f +0x00000058: b 0x7c +0x0000005c: lw $t7, 0x1c($sp) + +0x00000060: jal 0x6fdcc +0x00000064: addiu $a1, $zero, 0x90 +0x00000068: b 0x7c +0x0000006c: lw $t7, 0x1c($sp) + +0x00000070: jal 0x6fdcc +0x00000074: addiu $a1, $zero, 0x91 +0x00000078: lw $t7, 0x1c($sp) +; subtract money +0x0000007c: lh $a0, 0x1b8($t7) +0x00000080: negu $a0, $a0 +0x00000084: sll $a0, $a0, 0x10 +0x00000088: jal 0x721cc +0x0000008c: sra $a0, $a0, 0x10 +0x00000090: lw $ra, 0x14($sp) +0x00000094: addiu $sp, $sp, 0x18 +0x00000098: jr $ra +0x0000009c: nop + + +func_0x00C0142C: +0x00000000: addiu $sp, $sp, -0x18 +0x00000004: sw $ra, 0x14($sp) +0x00000008: sw $a1, 0x1c($sp) +0x0000000c: lw $t6, 0x1c($sp) +0x00000010: addiu $at, $zero, 5 +0x00000014: lh $v0, 0x1ba($t6) +0x00000018: beq $v0, $at, 0x30 +0x0000001c: addiu $at, $zero, 0xa +0x00000020: beq $v0, $at, 0x40 +0x00000024: nop +0x00000028: b 0x4c +0x0000002c: lw $t7, 0x1c($sp) +0x00000030: jal 0x6fdcc +0x00000034: addiu $a1, $zero, 0x8c +0x00000038: b 0x4c +0x0000003c: lw $t7, 0x1c($sp) +0x00000040: jal 0x6fdcc +0x00000044: addiu $a1, $zero, 0x8d +0x00000048: lw $t7, 0x1c($sp) +0x0000004c: lh $a0, 0x1b8($t7) +0x00000050: negu $a0, $a0 +0x00000054: sll $a0, $a0, 0x10 +0x00000058: jal 0x721cc +0x0000005c: sra $a0, $a0, 0x10 +0x00000060: lw $ra, 0x14($sp) +0x00000064: addiu $sp, $sp, 0x18 +0x00000068: jr $ra +0x0000006c: nop + + +func_0x00C0149C: +0x00000000: addiu $sp, $sp, -0x18 +0x00000004: sw $ra, 0x14($sp) +0x00000008: sw $a1, 0x1c($sp) +0x0000000c: jal 0x6fdcc +0x00000010: move $a1, $zero +0x00000014: lw $t6, 0x1c($sp) +0x00000018: lh $a0, 0x1b8($t6) +0x0000001c: negu $a0, $a0 +0x00000020: sll $a0, $a0, 0x10 +0x00000024: jal 0x721cc +0x00000028: sra $a0, $a0, 0x10 +0x0000002c: lw $ra, 0x14($sp) +0x00000030: addiu $sp, $sp, 0x18 +0x00000034: jr $ra +0x00000038: nop + + +func_0x00C014D8: +0x00000000: addiu $sp, $sp, -0x18 +0x00000004: sw $ra, 0x14($sp) +0x00000008: sw $a1, 0x1c($sp) +0x0000000c: jal 0x6fad0 +0x00000010: nop +0x00000014: lw $t7, 0x1c($sp) +0x00000018: addiu $t6, $zero, 8 +0x0000001c: lui $at, 0x8012 +0x00000020: sh $t6, -0x59fa($at) +0x00000024: lh $a0, 0x1b8($t7) +0x00000028: negu $a0, $a0 +0x0000002c: sll $a0, $a0, 0x10 +0x00000030: jal 0x721cc +0x00000034: sra $a0, $a0, 0x10 +0x00000038: lw $ra, 0x14($sp) +0x0000003c: addiu $sp, $sp, 0x18 +0x00000040: jr $ra +0x00000044: nop + + +func_0x00C01520: +0x00000000: addiu $sp, $sp, -0x18 +0x00000004: sw $ra, 0x14($sp) +0x00000008: sw $a1, 0x1c($sp) +0x0000000c: jal 0x6fdcc +0x00000010: addiu $a1, $zero, 0x3f +0x00000014: lw $t6, 0x1c($sp) +0x00000018: lh $a0, 0x1b8($t6) +0x0000001c: negu $a0, $a0 +0x00000020: sll $a0, $a0, 0x10 +0x00000024: jal 0x721cc +0x00000028: sra $a0, $a0, 0x10 +0x0000002c: lw $ra, 0x14($sp) +0x00000030: addiu $sp, $sp, 0x18 +0x00000034: jr $ra +0x00000038: nop + + +func_0x00C0155C: +0x00000000: addiu $sp, $sp, -0x18 +0x00000004: sw $ra, 0x14($sp) +0x00000008: sw $a1, 0x1c($sp) +0x0000000c: jal 0x6fdcc +0x00000010: addiu $a1, $zero, 0x3e +0x00000014: lw $t6, 0x1c($sp) +0x00000018: lh $a0, 0x1b8($t6) +0x0000001c: negu $a0, $a0 +0x00000020: sll $a0, $a0, 0x10 +0x00000024: jal 0x721cc +0x00000028: sra $a0, $a0, 0x10 +0x0000002c: lw $ra, 0x14($sp) +0x00000030: addiu $sp, $sp, 0x18 +0x00000034: jr $ra +0x00000038: nop + + +func_0x00C01598: +0x00000000: addiu $sp, $sp, -0x18 +0x00000004: sw $ra, 0x14($sp) +0x00000008: sw $a1, 0x1c($sp) +0x0000000c: jal 0x6fdcc ; give goron tunic +0x00000010: addiu $a1, $zero, 0x42 ; a1 = goron tunic item +; subtract money +0x00000014: lw $t6, 0x1c($sp) ; t6 = actor +0x00000018: lh $a0, 0x1b8($t6) ; a0 = cost +0x0000001c: negu $a0, $a0 +0x00000020: sll $a0, $a0, 0x10 +0x00000024: jal 0x721cc +0x00000028: sra $a0, $a0, 0x10 +0x0000002c: lw $ra, 0x14($sp) +0x00000030: addiu $sp, $sp, 0x18 +0x00000034: jr $ra +0x00000038: nop + + +func_0x00C015D4: +0x00000000: addiu $sp, $sp, -0x18 +0x00000004: sw $ra, 0x14($sp) +0x00000008: sw $a1, 0x1c($sp) +0x0000000c: jal 0x6fdcc +0x00000010: addiu $a1, $zero, 0x43 +0x00000014: lw $t6, 0x1c($sp) +0x00000018: lh $a0, 0x1b8($t6) +0x0000001c: negu $a0, $a0 +0x00000020: sll $a0, $a0, 0x10 +0x00000024: jal 0x721cc +0x00000028: sra $a0, $a0, 0x10 +0x0000002c: lw $ra, 0x14($sp) +0x00000030: addiu $sp, $sp, 0x18 +0x00000034: jr $ra +0x00000038: nop + + +func_0x00C01610: +0x00000000: addiu $sp, $sp, -0x18 +0x00000004: sw $ra, 0x14($sp) +0x00000008: sw $a1, 0x1c($sp) +0x0000000c: lw $t6, 0x1c($sp) +0x00000010: jal 0x720bc +0x00000014: lh $a1, 0x1ba($t6) +0x00000018: lw $t7, 0x1c($sp) +0x0000001c: lh $a0, 0x1b8($t7) +0x00000020: negu $a0, $a0 +0x00000024: sll $a0, $a0, 0x10 +0x00000028: jal 0x721cc +0x0000002c: sra $a0, $a0, 0x10 +0x00000030: lw $ra, 0x14($sp) +0x00000034: addiu $sp, $sp, 0x18 +0x00000038: jr $ra +0x0000003c: nop + + +func_0x00C01650: +0x00000000: addiu $sp, $sp, -0x18 +0x00000004: sw $ra, 0x14($sp) +0x00000008: sw $a1, 0x1c($sp) +0x0000000c: jal 0x6fdcc +0x00000010: addiu $a1, $zero, 0x1a +0x00000014: lw $t6, 0x1c($sp) +0x00000018: lh $a0, 0x1b8($t6) +0x0000001c: negu $a0, $a0 +0x00000020: sll $a0, $a0, 0x10 +0x00000024: jal 0x721cc +0x00000028: sra $a0, $a0, 0x10 +0x0000002c: lw $ra, 0x14($sp) +0x00000030: addiu $sp, $sp, 0x18 +0x00000034: jr $ra +0x00000038: nop + + +func_0x00C0168C: +0x00000000: addiu $sp, $sp, -0x18 +0x00000004: sw $ra, 0x14($sp) +0x00000008: sw $a1, 0x1c($sp) +0x0000000c: jal 0x6fdcc +0x00000010: addiu $a1, $zero, 0x21 +0x00000014: lw $t6, 0x1c($sp) +0x00000018: lh $a0, 0x1b8($t6) +0x0000001c: negu $a0, $a0 +0x00000020: sll $a0, $a0, 0x10 +0x00000024: jal 0x721cc +0x00000028: sra $a0, $a0, 0x10 +0x0000002c: lw $ra, 0x14($sp) +0x00000030: addiu $sp, $sp, 0x18 +0x00000034: jr $ra +0x00000038: nop + + +func_0x00C016C8: +0x00000000: addiu $sp, $sp, -0x18 +0x00000004: sw $ra, 0x14($sp) +0x00000008: sw $a0, 0x18($sp) +0x0000000c: lh $a0, 0x1b8($a1) +0x00000010: negu $a0, $a0 +0x00000014: sll $a0, $a0, 0x10 +0x00000018: jal 0x721cc +0x0000001c: sra $a0, $a0, 0x10 +0x00000020: lw $ra, 0x14($sp) +0x00000024: addiu $sp, $sp, 0x18 +0x00000028: jr $ra +0x0000002c: nop + + +func_0x00C016F8: +0x00000000: addiu $sp, $sp, -0x18 +0x00000004: sw $ra, 0x14($sp) +0x00000008: sw $a0, 0x18($sp) +0x0000000c: lh $a0, 0x1b8($a1) +0x00000010: negu $a0, $a0 +0x00000014: sll $a0, $a0, 0x10 +0x00000018: jal 0x721cc +0x0000001c: sra $a0, $a0, 0x10 +0x00000020: lw $ra, 0x14($sp) +0x00000024: addiu $sp, $sp, 0x18 +0x00000028: jr $ra +0x0000002c: nop + + +func_0x00C01728: +0x00000000: addiu $sp, $sp, -0x18 +0x00000004: sw $ra, 0x14($sp) +0x00000008: sw $a1, 0x1c($sp) +0x0000000c: jal 0x6fdcc +0x00000010: addiu $a1, $zero, 0x95 +0x00000014: lw $t6, 0x1c($sp) +0x00000018: lh $a0, 0x1b8($t6) +0x0000001c: negu $a0, $a0 +0x00000020: sll $a0, $a0, 0x10 +0x00000024: jal 0x721cc +0x00000028: sra $a0, $a0, 0x10 +0x0000002c: lw $ra, 0x14($sp) +0x00000030: addiu $sp, $sp, 0x18 +0x00000034: jr $ra +0x00000038: nop + + +func_0x00C01764: +0x00000000: addiu $sp, $sp, -0x18 +0x00000004: sw $ra, 0x14($sp) +0x00000008: sw $a1, 0x1c($sp) +0x0000000c: lw $t6, 0x1c($sp) +0x00000010: lh $v0, 0x1c($t6) +0x00000014: slti $at, $v0, 0xa +0x00000018: bnez $at, 0x5c +0x0000001c: addiu $t7, $v0, -0x27 +0x00000020: slti $at, $v0, 0xb +0x00000024: bnez $at, 0x48 +0x00000028: sltiu $at, $t7, 5 +0x0000002c: beqz $at, 0x108 +0x00000030: sll $t7, $t7, 2 +0x00000034: lui $at, 0x8086 +0x00000038: addu $at, $at, $t7 +0x0000003c: lw $t7, 0x5070($at) +0x00000040: jr $t7 +0x00000044: nop +0x00000048: addiu $at, $zero, 0xa +0x0000004c: beq $v0, $at, 0xb0 +0x00000050: nop +0x00000054: b 0x10c +0x00000058: lw $t8, 0x1c($sp) +0x0000005c: addiu $at, $zero, 7 +0x00000060: beq $v0, $at, 0x80 +0x00000064: addiu $at, $zero, 8 +0x00000068: beq $v0, $at, 0x90 +0x0000006c: addiu $at, $zero, 9 +0x00000070: beq $v0, $at, 0xa0 +0x00000074: nop +0x00000078: b 0x10c +0x0000007c: lw $t8, 0x1c($sp) +; give item +0x00000080: jal 0x6fdcc +0x00000084: addiu $a1, $zero, 0x19 +0x00000088: b 0x10c +0x0000008c: lw $t8, 0x1c($sp) +0x00000090: jal 0x6fdcc +0x00000094: addiu $a1, $zero, 0x15 +0x00000098: b 0x10c +0x0000009c: lw $t8, 0x1c($sp) +0x000000a0: jal 0x6fdcc +0x000000a4: addiu $a1, $zero, 0x16 +0x000000a8: b 0x10c +0x000000ac: lw $t8, 0x1c($sp) +0x000000b0: jal 0x6fdcc +0x000000b4: addiu $a1, $zero, 0x17 +0x000000b8: b 0x10c +0x000000bc: lw $t8, 0x1c($sp) +0x000000c0: jal 0x6fdcc +0x000000c4: addiu $a1, $zero, 0x1c +0x000000c8: b 0x10c +0x000000cc: lw $t8, 0x1c($sp) +0x000000d0: jal 0x6fdcc +0x000000d4: addiu $a1, $zero, 0x1d +0x000000d8: b 0x10c +0x000000dc: lw $t8, 0x1c($sp) +0x000000e0: jal 0x6fdcc +0x000000e4: addiu $a1, $zero, 0x1e +0x000000e8: b 0x10c +0x000000ec: lw $t8, 0x1c($sp) +0x000000f0: jal 0x6fdcc +0x000000f4: addiu $a1, $zero, 0x20 +0x000000f8: b 0x10c +0x000000fc: lw $t8, 0x1c($sp) +0x00000100: jal 0x6fdcc +0x00000104: addiu $a1, $zero, 0x18 +;subtract money +0x00000108: lw $t8, 0x1c($sp) +0x0000010c: lh $a0, 0x1b8($t8) +0x00000110: negu $a0, $a0 +0x00000114: sll $a0, $a0, 0x10 +0x00000118: jal 0x721cc +0x0000011c: sra $a0, $a0, 0x10 +0x00000120: lw $ra, 0x14($sp) +0x00000124: addiu $sp, $sp, 0x18 +0x00000128: jr $ra +0x0000012c: nop + + + + + + + + + + + + + + + + + + + + + + + + + +------------------------------------------------------------------------------------------------------------ +Function_4 +------------------------------------------------------------------------------------------------------------ +;called when item is bought +;a0 = ??? +;a1 = actor +;----- +;no return +func_0x00C01894: +0x00000000: addiu sp, sp, -0x18 +0x00000004: sw ra, 0x14(sp) +0x00000008: sw a0, 0x18(sp) +0x0000000c: lh t6, 0x1c(a1) ; t6 = actor variable +0x00000010: addiu at, zero, 0xc ; at = 0xc +0x00000014: lui t7, 0x8012 +0x00000018: bnel t6, at, 0x80 ; if var != 0xC Hylian Shield +0x0000001c: lh a0, 0x1b8(a1) ; a0 = cost + +0x00000020: lhu t7, -0x4b2a(t7) ; t7 = ??? +0x00000024: lui at, 0x8086 +0x00000028: andi t8, t7, 0x40 ; t8 = t7 & 0x40 +0x0000002c: beql t8, zero, 0x80 ; if not t8flag +0x00000030: lh a0, 0x1b8(a1) + +; hylian shield discount? +0x00000034: lwc1 f12, 0x5084(at) ; f12 = ??? +0x00000038: jal 0x26d64 +0x0000003c: sw a1, 0x1c(sp) +0x00000040: trunc.w.s f4, f0 +0x00000044: lw a1, 0x1c(sp) +0x00000048: lui t3, 0x8086 +0x0000004c: mfc1 t1, f4 +0x00000050: lh t9, 0x1b8(a1) +0x00000054: sll t2, t1, 1 +0x00000058: addu t3, t3, t2 +0x0000005c: lh t3, 0x502c(t3) +0x00000060: subu a0, t9, t3 +0x00000064: negu a0, a0 +0x00000068: sll a0, a0, 0x10 +0x0000006c: jal 0x721cc +0x00000070: sra a0, a0, 0x10 +0x00000074: b 0x94 +0x00000078: lw ra, 0x14(sp) + +0x0000007c: lh a0, 0x1b8(a1) ; unreachable +; subtract money +0x00000080: negu a0, a0 +0x00000084: sll a0, a0, 0x10 +0x00000088: jal 0x721cc +0x0000008c: sra a0, a0, 0x10 +0x00000090: lw ra, 0x14(sp) +0x00000094: addiu sp, sp, 0x18 +0x00000098: jr ra +0x0000009c: nop + +func_0x00C01934: +0x00000000: addiu sp, sp, -0x1b +0x00000004: sw ra, 0x14(sp) +0x00000008: sw a0, 0x18(sp) +0x0000000c: lh a0, 0x1b8(a1) ; a0 = *(a1 + 0x1B8) +0x00000010: negu a0, a0 ; a0 = ~a0 +0x00000014: sll a0, a0, 0x10 ; a0 = a0 << 0x10 +0x00000018: jal 0x721cc +0x0000001c: sra a0, a0, 0x10 ; a0 = ~(*(a1 + 0x1B8)) & 0x0000FFFF +0x00000020: lw ra, 0x14(sp) +0x00000024: addiu sp, sp, 0x18 +0x00000028: jr ra +0x0000002c: nop + +func_0x00C01964: +0x00000000: addiu sp, sp, -0x18 +0x00000004: sw ra, 0x14(sp) +0x00000008: sw a0, 0x18(sp) +0x0000000c: lh a0, 0x1b8(a1) +0x00000010: negu a0, a0 +0x00000014: sll a0, a0, 0x10 +0x00000018: jal 0x721cc +0x0000001c: sra a0, a0, 0x10 +0x00000020: lw ra, 0x14(sp) +0x00000024: addiu sp, sp, 0x18 +0x00000028: jr ra +0x0000002c: nop + +func_0x00C01994: +0x00000000: addiu sp, sp, -0x18 +0x00000004: sw ra, 0x14(sp) +0x00000008: sw a0, 0x18(sp) +0x0000000c: lh t6, 0x1c(a1) ; t6 = actor variable +0x00000010: addiu t7, t6, -0x15 ; t7 = t6 - 0x15 (bombchu index) +0x00000014: sltiu at, t7, 8 ; at = t7 < 8 +0x00000018: beqz at, 0xf0 ; if 0 >= bombchu index > 8 (not bombchu panic handler) +0x0000001c: sll t7, t7, 2 ; t7 = bombchu index << 2 +0x00000020: lui at, 0x8086 +0x00000024: addu at, at, t7 +0x00000028: lw t7, 0x5088(at) ; t7 = (??? + bombchu index) +0x0000002c: jr t7 ; jump to t7 +0x00000030: nop + +0x00000034: lui v0, 0x8012 +0x00000038: addiu v0, v0, -0x5a30 ; v0 = save context +0x0000003c: lhu t8, 0xef0(v0) ; t8 = item_get_flags +0x00000040: ori t9, t8, 0x40 ; t9 = t8 | bombchu_shot_slot_flag +0x00000044: b 0xf0 +0x00000048: sh t9, 0xef0(v0) ; + +0x0000004c: lui v0, 0x8012 +0x00000050: addiu v0, v0, -0x5a30 +0x00000054: lhu t0, 0xef0(v0) +0x00000058: ori t1, t0, 0x80 +0x0000005c: b 0xf0 +0x00000060: sh t1, 0xef0(v0) + +0x00000064: lui v0, 0x8012 +0x00000068: addiu v0, v0, -0x5a30 +0x0000006c: lhu t2, 0xef0(v0) +0x00000070: ori t3, t2, 0x100 +0x00000074: b 0xf0 +0x00000078: sh t3, 0xef0(v0) + +0x0000007c: lui v0, 0x8012 +0x00000080: addiu v0, v0, -0x5a30 +0x00000084: lhu t4, 0xef0(v0) +0x00000088: ori t5, t4, 0x200 +0x0000008c: b 0xf0 +0x00000090: sh t5, 0xef0(v0) + +0x00000094: lui v0, 0x8012 +0x00000098: addiu v0, v0, -0x5a30 +0x0000009c: lhu t6, 0xef0(v0) +0x000000a0: ori t7, t6, 0x400 +0x000000a4: b 0xf0 +0x000000a8: sh t7, 0xef0(v0) + +0x000000ac: lui v0, 0x8012 +0x000000b0: addiu v0, v0, -0x5a30 +0x000000b4: lhu t8, 0xef0(v0) +0x000000b8: ori t9, t8, 8 +0x000000bc: b 0xf0 +0x000000c0: sh t9, 0xef0(v0) + +0x000000c4: lui v0, 0x8012 +0x000000c8: addiu v0, v0, -0x5a30 +0x000000cc: lhu t0, 0xef0(v0) +0x000000d0: ori t1, t0, 0x10 +0x000000d4: b 0xf0 +0x000000d8: sh t1, 0xef0(v0) + +0x000000dc: lui v0, 0x8012 +0x000000e0: addiu v0, v0, -0x5a30 +0x000000e4: lhu t2, 0xef0(v0) +0x000000e8: ori t3, t2, 0x20 +0x000000ec: sh t3, 0xef0(v0) + +; subtract money +0x000000f0: lh a0, 0x1b8(a1) +0x000000f4: negu a0, a0 +0x000000f8: sll a0, a0, 0x10 +0x000000fc: jal 0x721cc +0x00000100: sra a0, a0, 0x10 +0x00000104: lw ra, 0x14(sp) +0x00000108: addiu sp, sp, 0x18 +0x0000010c: jr ra +0x00000110: nop + + +ext_func_0x721cc: ; add money +0x00000000: sw a0, (sp) +0x00000004: sll a0, a0, 0x10 +0x00000008: lui v0, 0x8012 +0x0000000c: addiu v0, v0, -0x5a30 +0x00000010: sra a0, a0, 0x10 +0x00000014: lh t6, 0x13cc(v0) +0x00000018: addu t7, t6, a0 +0x0000001c: sh t7, 0x13cc(v0) +0x00000020: jr ra +0x00000024: nop \ No newline at end of file diff --git a/Rules.py b/Rules.py index fd976b2cd..7a38c09de 100644 --- a/Rules.py +++ b/Rules.py @@ -296,7 +296,7 @@ def global_rules(world): forbid_item(location, 'Buy Goron Tunic') forbid_item(location, 'Buy Zora Tunic') - if location.name.endswith('5') or location.name.endswith('7'): + if (location.name.endswith('5') or location.name.endswith('7')) and world.shopsanity != 'off': add_item_rule(location, lambda i: (i.type != 'Shop')) if location.price > 200: set_rule(location, lambda state: state.has('Progressive Wallet', 2)) diff --git a/Settings.py b/Settings.py index e7ce6d472..abae93457 100644 --- a/Settings.py +++ b/Settings.py @@ -781,6 +781,54 @@ def __init__(self, settings_dict): new locations for items to appear. ''' }), + Setting_Info('shopsanity', str, 2, True, + { + 'default': 'off', + 'const': 'off', + 'nargs': '?', + 'choices': ['off', 'on', 'sparse'], + 'help': '''\ + Shop contents are randomized. There are Two items + in every shop that are one time buy and are not + refill items. + off: Normal Shops* + on: Shop contents are shuffled + sparse: Shop contents are shuffled and shops + sell fewer items. Harder mode. + ''' + }, + { + 'text': 'Shopsanity', + 'group': 'logic', + 'widget': 'Combobox', + 'default': 'Off', + 'options': { + 'Off': 'off', + 'Shuffled Shops': 'on', + 'Sparse Shuffle Shops': 'sparse', + }, + 'tooltip':'''\ + Shop contents are randomized. + The lower left two items are + one stock items that are not + refill items. This means every + shop has 2 more possible item + locations. + + Bombchus refills cannot be + bought until Bomchus have been + obtained. + + Logic guarantees you have access + to a shop item refill to be able + to use the item. + + 'Sparse': Shops have fewer + refill items. This means it + will be more difficult to fine + ammo. + ''' + }), Setting_Info('logic_skulltulas', int, 3, True, { 'default': 50, diff --git a/version.py b/version.py index b4944936b..bbd3426ea 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.34 f.LUM' +__version__ = '2.15.35 f.LUM' From 385e798b4e1b37b252de6fc548f2ac0b47ef3b1d Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 20 Aug 2018 21:31:51 -0400 Subject: [PATCH 323/755] phasing out bombchus in logic option --- ItemList.py | 4 +- Rom.py | 118 ++++++++++++++++++++++++++++------------------------ Settings.py | 5 ++- version.py | 2 +- 4 files changed, 70 insertions(+), 59 deletions(-) diff --git a/ItemList.py b/ItemList.py index b1e8276ea..6faa0e3c7 100644 --- a/ItemList.py +++ b/ItemList.py @@ -354,7 +354,7 @@ def get_pool_core(world): placed_items['Kokiri Shop Item 5'] = 'Buy Deku Seeds (30)' placed_items['Kokiri Shop Item 6'] = 'Buy Arrows (10)' placed_items['Kokiri Shop Item 7'] = 'Buy Arrows (30)' - placed_items['Kokiri Shop Item 8'] = 'Sold Out' + placed_items['Kokiri Shop Item 8'] = 'Buy Bombchu (5)' placed_items['Kakariko Potion Shop Item 1'] = 'Buy Green Potion' placed_items['Kakariko Potion Shop Item 2'] = 'Buy Blue Fire' placed_items['Kakariko Potion Shop Item 3'] = 'Buy Red Potion' @@ -382,7 +382,7 @@ def get_pool_core(world): placed_items['Bazaar Item 1'] = 'Buy Hylian Shield' placed_items['Bazaar Item 2'] = 'Buy Bombs (5)' placed_items['Bazaar Item 3'] = 'Buy Deku Nut (5)' - placed_items['Bazaar Item 4'] = 'Sold Out' + placed_items['Bazaar Item 4'] = 'Buy Bombchu (5)' placed_items['Bazaar Item 5'] = 'Buy Arrows (10)' placed_items['Bazaar Item 6'] = 'Sold Out' placed_items['Bazaar Item 7'] = 'Buy Deku Stick (1)' diff --git a/Rom.py b/Rom.py index a3f1e9060..0b4dddd49 100644 --- a/Rom.py +++ b/Rom.py @@ -1287,61 +1287,69 @@ def write_save_table(rom): update_message_by_id(messages, shop_items[0x001C].description_message, "\x08\x05\x41Bombchu (10 pieces) 99 Rupees\x01\x05\x40This looks like a toy mouse, but\x01it's actually a self-propelled time\x01bomb!\x09\x0A") update_message_by_id(messages, shop_items[0x001C].purchase_message, "\x08Bombchu 10 pieces 100 Rupees\x09\x01\x01\x1B\x05\x42Buy\x01Don't buy\x05\x40") - # kokiri shop - shop_objs = place_shop_items(rom, shop_items, messages, free_shop_ids, - world.get_region('Kokiri Shop').locations) - shop_objs |= {0x00FC, 0x00B2, 0x0101, 0x0102, 0x00FD, 0x00C5} # Shop objects - rom.write_byte(0x2587029, len(shop_objs)) - rom.write_int32(0x258702C, 0x0300F600) - rom.write_int16s(0x2596600, list(shop_objs)) - - # bazaar - shop_objs = place_shop_items(rom, shop_items, messages, free_shop_ids, - world.get_region('Castle Town Bazaar').locations) - shop_objs |= {0x005B, 0x00B2, 0x00C5, 0x0107, 0x00C9, 0x016B} # Shop objects - rom.write_byte(0x28E4029, len(shop_objs)) - rom.write_int32(0x28E402C, 0x03007A40) - rom.write_int16s(0x28EBA40, list(shop_objs)) - - # goron shop - shop_objs = place_shop_items(rom, shop_items, messages, free_shop_ids, - world.get_region('Goron Shop').locations) - shop_objs |= {0x00C9, 0x00B2, 0x0103, 0x00AF} # Shop objects - rom.write_byte(0x2D33029, len(shop_objs)) - rom.write_int32(0x2D3302C, 0x03004340) - rom.write_int16s(0x2D37340, list(shop_objs)) - - # zora shop - shop_objs = place_shop_items(rom, shop_items, messages, free_shop_ids, - world.get_region('Zora Shop').locations) - shop_objs |= {0x005B, 0x00B2, 0x0104, 0x00FE} # Shop objects - rom.write_byte(0x2D5B029, len(shop_objs)) - rom.write_int32(0x2D5B02C, 0x03004B40) - rom.write_int16s(0x2D5FB40, list(shop_objs)) - - # kakariko potion shop - shop_objs = place_shop_items(rom, shop_items, messages, free_shop_ids, - world.get_region('Kakariko Potion Shop Front').locations) - shop_objs |= {0x0159, 0x00B2, 0x0175, 0x0122} # Shop objects - rom.write_byte(0x2D83029, len(shop_objs)) - rom.write_int32(0x2D8302C, 0x0300A500) - rom.write_int16s(0x2D8D500, list(shop_objs)) - - # market potion shop - shop_objs = place_shop_items(rom, shop_items, messages, free_shop_ids, - world.get_region('Castle Town Potion Shop').locations) - shop_objs |= {0x0159, 0x00B2, 0x0175, 0x00C5, 0x010C, 0x016B} # Shop objects - rom.write_byte(0x2DB0029, len(shop_objs)) - rom.write_int32(0x2DB002C, 0x03004E40) - rom.write_int16s(0x2DB4E40, list(shop_objs)) - - # bombchu shop - shop_objs = place_shop_items(rom, shop_items, messages, free_shop_ids, - world.get_region('Castle Town Bombchu Shop').locations) - shop_objs |= {0x0165, 0x00B2} # Shop objects - rom.write_byte(0x2DD8029, len(shop_objs)) - rom.write_int32(0x2DD802C, 0x03006A40) - rom.write_int16s(0x2DDEA40, list(shop_objs)) + + if world.shopsanity == 'off': + # Add more bombchus to make them more accessible + rom.write_int16(world.get_location('Kokiri Shop Item 8').address, + ItemFactory('Buy Bombchu (5)').index) + rom.write_int16(world.get_location('Bazaar Item 8').address, + ItemFactory('Buy Bombchu (5)').index) + else: + # kokiri shop + shop_objs = place_shop_items(rom, shop_items, messages, free_shop_ids, + world.get_region('Kokiri Shop').locations) + shop_objs |= {0x00FC, 0x00B2, 0x0101, 0x0102, 0x00FD, 0x00C5} # Shop objects + rom.write_byte(0x2587029, len(shop_objs)) + rom.write_int32(0x258702C, 0x0300F600) + rom.write_int16s(0x2596600, list(shop_objs)) + + # bazaar + shop_objs = place_shop_items(rom, shop_items, messages, free_shop_ids, + world.get_region('Castle Town Bazaar').locations) + shop_objs |= {0x005B, 0x00B2, 0x00C5, 0x0107, 0x00C9, 0x016B} # Shop objects + rom.write_byte(0x28E4029, len(shop_objs)) + rom.write_int32(0x28E402C, 0x03007A40) + rom.write_int16s(0x28EBA40, list(shop_objs)) + + # goron shop + shop_objs = place_shop_items(rom, shop_items, messages, free_shop_ids, + world.get_region('Goron Shop').locations) + shop_objs |= {0x00C9, 0x00B2, 0x0103, 0x00AF} # Shop objects + rom.write_byte(0x2D33029, len(shop_objs)) + rom.write_int32(0x2D3302C, 0x03004340) + rom.write_int16s(0x2D37340, list(shop_objs)) + + # zora shop + shop_objs = place_shop_items(rom, shop_items, messages, free_shop_ids, + world.get_region('Zora Shop').locations) + shop_objs |= {0x005B, 0x00B2, 0x0104, 0x00FE} # Shop objects + rom.write_byte(0x2D5B029, len(shop_objs)) + rom.write_int32(0x2D5B02C, 0x03004B40) + rom.write_int16s(0x2D5FB40, list(shop_objs)) + + # kakariko potion shop + shop_objs = place_shop_items(rom, shop_items, messages, free_shop_ids, + world.get_region('Kakariko Potion Shop Front').locations) + shop_objs |= {0x0159, 0x00B2, 0x0175, 0x0122} # Shop objects + rom.write_byte(0x2D83029, len(shop_objs)) + rom.write_int32(0x2D8302C, 0x0300A500) + rom.write_int16s(0x2D8D500, list(shop_objs)) + + # market potion shop + shop_objs = place_shop_items(rom, shop_items, messages, free_shop_ids, + world.get_region('Castle Town Potion Shop').locations) + shop_objs |= {0x0159, 0x00B2, 0x0175, 0x00C5, 0x010C, 0x016B} # Shop objects + rom.write_byte(0x2DB0029, len(shop_objs)) + rom.write_int32(0x2DB002C, 0x03004E40) + rom.write_int16s(0x2DB4E40, list(shop_objs)) + + # bombchu shop + shop_objs = place_shop_items(rom, shop_items, messages, free_shop_ids, + world.get_region('Castle Town Bombchu Shop').locations) + shop_objs |= {0x0165, 0x00B2} # Shop objects + rom.write_byte(0x2DD8029, len(shop_objs)) + rom.write_int32(0x2DD802C, 0x03006A40) + rom.write_int16s(0x2DDEA40, list(shop_objs)) #Fix item chest animations chestAnimations = { diff --git a/Settings.py b/Settings.py index abae93457..2620f79bf 100644 --- a/Settings.py +++ b/Settings.py @@ -390,7 +390,10 @@ def __init__(self, settings_dict): rupees once they are been found. Bombchu Bowling opens with bombchus. - ''' + Bombchus are available at Kokiri Shop + and the Bazaar. + ''', + 'dependency': lambda guivar: False }), Setting_Info('trials', int, 3, True, { diff --git a/version.py b/version.py index bbd3426ea..c80dbac11 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.35 f.LUM' +__version__ = '2.15.36 f.LUM' From ef0fa9e725230898cdbc8dd2052d1d01585747fc Mon Sep 17 00:00:00 2001 From: BeeLuigi Date: Tue, 21 Aug 2018 05:44:23 +0200 Subject: [PATCH 324/755] Made Shop items Advancement items --- Items.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/Items.py b/Items.py index c1742ddfd..d317211b8 100644 --- a/Items.py +++ b/Items.py @@ -192,13 +192,13 @@ def __init__(self, model, gid, price): 'Spirit Trial Clear': (True, False, 'Event', None, None, None, None), 'Light Trial Clear': (True, False, 'Event', None, None, None, None), 'Triforce': (True, False, 'Event', None, None, None, None), - 'Buy Deku Nut (5)': (False, True, 'Shop', None, 0x00, 0x00BB, 0x12), - 'Buy Arrows (30)': (False, True, 'Shop', None, 0x01, 0x00D8, 0x26), - #'Buy Arrows (50)': (False, True, 'Shop', None, 0x02, 0x00D8, 0x27), - 'Buy Bombs (5)': (False, True, 'Shop', None, 0x03, 0x00CE, 0x20), - 'Buy Deku Nut (10)': (False, True, 'Shop', None, 0x04, 0x00BB, 0x12), - 'Buy Deku Stick (1)': (False, True, 'Shop', None, 0x05, 0x00C7, 0x1B), - 'Buy Bombs (10)': (False, True, 'Shop', None, 0x06, 0x00CE, 0x20), + 'Buy Deku Nut (5)': (True, False, 'Shop', None, 0x00, 0x00BB, 0x12), + 'Buy Arrows (30)': (True, False, 'Shop', None, 0x01, 0x00D8, 0x26), + #'Buy Arrows (50)': (True, False, 'Shop', None, 0x02, 0x00D8, 0x27), + 'Buy Bombs (5)': (True, False, 'Shop', None, 0x03, 0x00CE, 0x20), + 'Buy Deku Nut (10)': (True, False, 'Shop', None, 0x04, 0x00BB, 0x12), + 'Buy Deku Stick (1)': (True, False, 'Shop', None, 0x05, 0x00C7, 0x1B), + 'Buy Bombs (10)': (True, False, 'Shop', None, 0x06, 0x00CE, 0x20), 'Buy Fish': (False, True, 'Shop', None, 0x07, 0x00F4, 0x3F), 'Buy Red Potion': (False, True, 'Shop', None, 0x08, 0x00EB, 0x15), 'Buy Green Potion': (False, True, 'Shop', None, 0x09, 0x00EB, 0x16), @@ -211,14 +211,14 @@ def __init__(self, model, gid, price): 'Buy Bombchu (10)': (True, False, 'Shop', None, 0x15, 0x00D9, 0x28), 'Buy Bombchu (20)': (True, False, 'Shop', None, 0x16, 0x00D9, 0x28), 'Buy Bombchu (5)': (True, False, 'Shop', None, 0x18, 0x00D9, 0x28), - 'Buy Deku Seeds (30)': (False, True, 'Shop', None, 0x1D, 0x0119, 0x48), + 'Buy Deku Seeds (30)': (True, False, 'Shop', None, 0x1D, 0x0119, 0x48), 'Sold Out': (False, True, 'Shop', None, 0x26, 0x0148, 0x59), 'Buy Blue Fire': (True, False, 'Shop', None, 0x27, 0x0173, 0x67), 'Buy Bottle Bug': (False, True, 'Shop', None, 0x28, 0x0174, 0x68), 'Buy Fairy\'s Spirit': (False, True, 'Shop', None, 0x2B, 0x0177, 0x6B), - 'Buy Arrows (10)': (False, True, 'Shop', None, 0x2C, 0x00D8, 0x25), - 'Buy Bombs (20)': (False, True, 'Shop', None, 0x2D, 0x00CE, 0x20), - #'Buy Bombs (30)': (False, True, 'Shop', None, 0x2E, 0x00CE, 0x20), + 'Buy Arrows (10)': (True, False, 'Shop', None, 0x2C, 0x00D8, 0x25), + 'Buy Bombs (20)': (True, False, 'Shop', None, 0x2D, 0x00CE, 0x20), + #'Buy Bombs (30)': (True, False, 'Shop', None, 0x2E, 0x00CE, 0x20), } item_data = { From dcf43c379ffb00f0f0edd663c86ab8e4a0326d0d Mon Sep 17 00:00:00 2001 From: BeeLuigi Date: Tue, 21 Aug 2018 05:47:43 +0200 Subject: [PATCH 325/755] (Hopefully) fixed some errors in can_reach_tunic --- BaseClasses.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 50b583cd3..866ac1ab9 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -378,12 +378,12 @@ def can_see_with_lens(self): def can_reach_tunic(self, tunic): tunic_locations = self.world.find_items(tunic) for location in tunic_locations: - if location.parent.name == 'Goron Shop': + if location.parent_region.name == 'Goron Shop': if self.can_reach('Goron Shop') and \ (self.has_explosives() or self.has('Progressive Strength Upgrade') or self.has_bow()): return True - elif location.parent.name == 'Zora Shop': - if self.can_reach('Zoras Domain Adult Access') and self.has_blue_fire(): + elif location.parent_region.name == 'Zora Shop': + if self.can_reach('Zoras Domain Adult Access', 'Entrance') and self.has_blue_fire(): return True else: return True From 6cbc8c7cc185ea614b738fa54e3f8e86e2601752 Mon Sep 17 00:00:00 2001 From: AmazingAmpharos Date: Tue, 21 Aug 2018 00:41:30 -0500 Subject: [PATCH 326/755] Initial implementation of MQ Only contains Deku Tree and Dodongo's Cavern for now. Does not update the hint system. Still has a few things that need fixed: -Need to go through and make a few new items that are MQ only: Large Magic Container, Deku Stick (1), and Loser Green Rupee. -Need to fix the hack solution to make Rom.py run with the MQ.py import. The class LocalRom should be defined in its own file which will require a lot of across the board refactors. -Need a generalized solution to Bombchus in the item pool playing nice with both flags. I'll figure that out when it comes up I'm sure. -This logic is courtesy of r0bd0g and looks good on the surface, but let's be honest it's not tested at all. -The hint system has not been touched but it will need adapting to the new set of locations. -I'm pretty sure none of the pre-written flags for DT or DC matter in the modern rando, but starting with Jabu's those are going to require specific work to make sure dungeons are initialized correctly in both forms. --- BaseClasses.py | 16 +++++ Dungeons.py | 37 ++++++---- EntranceShuffle.py | 51 ++++++++++---- ItemList.py | 61 ++++++++++++---- MQ.py | 10 +-- Main.py | 9 +++ Regions.py | 172 ++++++++++++++++++++++++++++++++------------- Rom.py | 18 ++--- Rules.py | 47 +++++++++++-- 9 files changed, 316 insertions(+), 105 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 6db07ca34..a4a657b6d 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -40,6 +40,21 @@ def __init__(self, settings): 'Shadow': False, 'Light': False } + # dungeon forms will be decided later + self.dungeon_mq = { + 'DT': False, + 'DC': False, + 'JB': False, + 'BW': False, + 'IC': False, + 'GTG': False, + 'FoT': False, + 'FiT': False, + 'WT': False, + 'SpT': False, + 'ShT': False, + 'GC': False +} self.can_take_damage = True self.spoiler = Spoiler(self) @@ -48,6 +63,7 @@ def __init__(self, settings): def copy(self): ret = World(self.settings) ret.skipped_trials = copy.copy(self.skipped_trials) + ret.dungeon_mq = copy.copy(self.dungeon_mq) ret.can_take_damage = self.can_take_damage ret.id = self.id from Regions import create_regions diff --git a/Dungeons.py b/Dungeons.py index 995acf012..753b62726 100644 --- a/Dungeons.py +++ b/Dungeons.py @@ -11,18 +11,32 @@ def make_dungeon(name, dungeon_regions, boss_key, small_keys, dungeon_items): world.get_region(region).dungeon = dungeon return dungeon - DT = make_dungeon( - 'Deku Tree', - ['Deku Tree Lobby', 'Deku Tree Slingshot Room', 'Deku Tree Boss Room'], - None, [], - ItemFactory(['Map (Deku Tree)', 'Compass (Deku Tree)'])) + if world.dungeon_mq['DT']: + DT = make_dungeon( + 'Deku Tree', + ['Deku Tree Lobby', 'Deku Tree Compass Room', 'Deku Tree Boss Room'], + None, [], + ItemFactory(['Map (Deku Tree)', 'Compass (Deku Tree)'])) + else: + DT = make_dungeon( + 'Deku Tree', + ['Deku Tree Lobby', 'Deku Tree Slingshot Room', 'Deku Tree Boss Room'], + None, [], + ItemFactory(['Map (Deku Tree)', 'Compass (Deku Tree)'])) - DC = make_dungeon( - 'Dodongos Cavern', - ['Dodongos Cavern Beginning', 'Dodongos Cavern Lobby', 'Dodongos Cavern Climb', 'Dodongos Cavern Far Bridge', - 'Dodongos Cavern Boss Area'], - None, [], - ItemFactory(['Map (Dodongos Cavern)', 'Compass (Dodongos Cavern)'])) + if world.dungeon_mq['DC']: + DC = make_dungeon( + 'Dodongos Cavern', + ['Dodongos Cavern Beginning', 'Dodongos Cavern Lobby', 'Dodongos Cavern Boss Area'], + None, [], + ItemFactory(['Map (Dodongos Cavern)', 'Compass (Dodongos Cavern)'])) + else: + DC = make_dungeon( + 'Dodongos Cavern', + ['Dodongos Cavern Beginning', 'Dodongos Cavern Lobby', 'Dodongos Cavern Climb', 'Dodongos Cavern Far Bridge', + 'Dodongos Cavern Boss Area'], + None, [], + ItemFactory(['Map (Dodongos Cavern)', 'Compass (Dodongos Cavern)'])) JB = make_dungeon( 'Jabu Jabus Belly', @@ -100,4 +114,3 @@ def make_dungeon(name, dungeon_regions, boss_key, small_keys, dungeon_items): []) world.dungeons = [DT, DC, JB, FoT, BW, FiT, IC, WT, ShT, GTG, SpT, GC] - diff --git a/EntranceShuffle.py b/EntranceShuffle.py index 954e52a26..f41ac56e4 100644 --- a/EntranceShuffle.py +++ b/EntranceShuffle.py @@ -5,7 +5,18 @@ def link_entrances(world): # setup mandatory connections for exitname, regionname in mandatory_connections: connect_simple(world, exitname, regionname) - + if world.dungeon_mq['DT']: + for exitname, regionname in DT_MQ_connections: + connect_simple(world, exitname, regionname) + else: + for exitname, regionname in DT_vanilla_connections: + connect_simple(world, exitname, regionname) + if world.dungeon_mq['DC']: + for exitname, regionname in DC_MQ_connections: + connect_simple(world, exitname, regionname) + else: + for exitname, regionname in DC_vanilla_connections: + connect_simple(world, exitname, regionname) # if we do not shuffle, set default connections if world.shuffle == 'vanilla': for exitname, regionname in default_connections: @@ -154,18 +165,6 @@ def connect_doors(world, doors, targets): ('Zoras Fountain Adult Access', 'Outside Ice Cavern'), ('Lon Lon Rance Entrance', 'Lon Lon Ranch'), ('Lon Lon Exit', 'Hyrule Field'), - ('Deku Tree Slingshot Passage', 'Deku Tree Slingshot Room'), - ('Deku Tree Slingshot Exit', 'Deku Tree Lobby'), - ('Deku Tree Basement Path', 'Deku Tree Boss Room'), - ('Deku Tree Basement Vines', 'Deku Tree Lobby'), - ('Dodongos Cavern Lobby', 'Dodongos Cavern Lobby'), - ('Dodongos Cavern Retreat', 'Dodongos Cavern Beginning'), - ('Dodongos Cavern Left Door', 'Dodongos Cavern Climb'), - ('Dodongos Cavern Bridge Fall', 'Dodongos Cavern Lobby'), - ('Dodongos Cavern Slingshot Target', 'Dodongos Cavern Far Bridge'), - ('Dodongos Cavern Bridge Fall 2', 'Dodongos Cavern Lobby'), - ('Dodongos Cavern Bomb Drop', 'Dodongos Cavern Boss Area'), - ('Dodongos Cavern Exit Skull', 'Dodongos Cavern Lobby'), ('Jabu Jabus Belly Ceiling Switch', 'Jabu Jabus Belly Main'), ('Jabu Jabus Belly Retreat', 'Jabu Jabus Belly Beginning'), ('Jabu Jabus Belly Tentacles', 'Jabu Jabus Belly Depths'), @@ -225,6 +224,32 @@ def connect_doors(world, doors, targets): ('Ganons Castle Tower', 'Ganons Castle Tower') ] +DT_vanilla_connections = [('Deku Tree Slingshot Passage', 'Deku Tree Slingshot Room'), + ('Deku Tree Slingshot Exit', 'Deku Tree Lobby'), + ('Deku Tree Basement Path', 'Deku Tree Boss Room'), + ('Deku Tree Basement Vines', 'Deku Tree Lobby') + ] + +DT_MQ_connections = [('Deku Tree Compass Passage', 'Deku Tree Compass Room'), + ('Deku Tree Compass Exit', 'Deku Tree Lobby'), + ('Deku Tree Basement Path', 'Deku Tree Boss Room'), + ('Deku Tree Basement Vines', 'Deku Tree Lobby') + ] + +DC_vanilla_connections = [('Dodongos Cavern Lobby', 'Dodongos Cavern Lobby'), + ('Dodongos Cavern Retreat', 'Dodongos Cavern Beginning'), + ('Dodongos Cavern Left Door', 'Dodongos Cavern Climb'), + ('Dodongos Cavern Bridge Fall', 'Dodongos Cavern Lobby'), + ('Dodongos Cavern Slingshot Target', 'Dodongos Cavern Far Bridge'), + ('Dodongos Cavern Bridge Fall 2', 'Dodongos Cavern Lobby'), + ('Dodongos Cavern Bomb Drop', 'Dodongos Cavern Boss Area'), + ('Dodongos Cavern Exit Skull', 'Dodongos Cavern Lobby') + ] + +DC_MQ_connections = [('Dodongos Cavern Lobby', 'Dodongos Cavern Lobby'), + ('Dodongos Cavern Bomb Drop', 'Dodongos Cavern Boss Area') + ] + # non-shuffled entrance links default_connections = [('Links House Exit', 'Kokiri Forest'), ('Links House', 'Links House'), diff --git a/ItemList.py b/ItemList.py index 80116a43b..e6e301976 100644 --- a/ItemList.py +++ b/ItemList.py @@ -29,9 +29,9 @@ + ['Hylian Shield'] * 2 + ['Progressive Strength Upgrade'] * 3 + ['Progressive Scale'] * 2 - + ['Recovery Heart'] * 11 + + ['Recovery Heart'] * 9 + ['Rupees (5)'] * 16 - + ['Rupees (20)'] * 6 + + ['Rupees (20)'] * 5 + ['Rupees (50)'] * 7 + ['Rupees (200)'] * 6 + ['Bow'] * 3 @@ -51,6 +51,16 @@ + ['Deku Nut Capacity'] * 2 + ['Magic Meter']) +DT_vanilla = (['Recovery Heart'] * 2) + +DT_MQ = (['Deku Shield'] * 2 + + ['Rupees (50)']) + +DC_vanilla = (['Rupees (20)']) + +DC_MQ = (['Hylian Shield'] + + ['Rupees (5)']) + normal_bottles = [ 'Bottle', 'Bottle with Milk', @@ -114,10 +124,6 @@ 'GS Lost Woods Bean Patch Near Stage', 'GS Lost Woods Above Stage', 'GS Sacred Forest Meadow', - 'GS Deku Tree Compass Room', - 'GS Deku Tree Basement Vines', - 'GS Deku Tree Basement Gate', - 'GS Deku Tree Basement Back Room', 'GS Hyrule Field near Kakariko', 'GS Hyrule Field Near Gerudo Valley', 'GS Castle Market Guard House', @@ -144,11 +150,6 @@ 'GS Goron City Center Platform', 'GS Death Mountain Crater Crate', 'GS Mountain Crater Bean Patch', - 'GS Dodongo\'s Cavern East Side Room', - 'GS Dodongo\'s Cavern Vines Above Stairs', - 'GS Dodongo\'s Cavern Back Room', - 'GS Dodongo\'s Cavern Alcove Above Stairs', - 'GS Dodongo\'s Cavern Scarecrow', 'GS Zora River Ladder', 'GS Zora River Tree', 'GS Zora River Near Raised Grottos', @@ -277,11 +278,37 @@ def get_pool_core(world): placed_items['Gift from Saria'] = 'Ocarina' placed_items['Ocarina of Time'] = 'Ocarina' + if world.dungeon_mq['DT']: + skulltulla_locations_final = skulltulla_locations + [ + 'GS Deku Tree MQ Lobby', + 'GS Deku Tree MQ Compass Room', + 'GS Deku Tree MQ Basement Ceiling', + 'GS Deku Tree MQ Basement Back Room'] + else: + skulltulla_locations_final = skulltulla_locations + [ + 'GS Deku Tree Compass Room', + 'GS Deku Tree Basement Vines', + 'GS Deku Tree Basement Gate', + 'GS Deku Tree Basement Back Room'] + if world.dungeon_mq['DC']: + skulltulla_locations_final.extend([ + 'GS Dodongo\'s Cavern MQ Scrub Room', + 'GS Dodongo\'s Cavern MQ Song of Time Block Room', + 'GS Dodongo\'s Cavern MQ Lizalfos Room', + 'GS Dodongo\'s Cavern MQ Larva Room', + 'GS Dodongo\'s Cavern MQ Back Area']) + else: + skulltulla_locations_final.extend([ + 'GS Dodongo\'s Cavern East Side Room', + 'GS Dodongo\'s Cavern Vines Above Stairs', + 'GS Dodongo\'s Cavern Back Room', + 'GS Dodongo\'s Cavern Alcove Above Stairs', + 'GS Dodongo\'s Cavern Scarecrow']) if world.tokensanity == 'off': - for location in skulltulla_locations: + for location in skulltulla_locations_final: placed_items[location] = 'Gold Skulltulla Token' elif world.tokensanity == 'dungeons': - for location in skulltulla_locations: + for location in skulltulla_locations_final: if world.get_location(location).scene >= 0x0A: placed_items[location] = 'Gold Skulltulla Token' else: @@ -341,6 +368,14 @@ def get_pool_core(world): pool.extend(alwaysitems) + if world.dungeon_mq['DT']: + pool.extend(DT_MQ) + else: + pool.extend(DT_vanilla) + if world.dungeon_mq['DC']: + pool.extend(DC_MQ) + else: + pool.extend(DC_vanilla) for _ in range(normal_bottle_count): bottle = random.choice(normal_bottles) pool.append(bottle) diff --git a/MQ.py b/MQ.py index 788752bdc..f212c4e54 100644 --- a/MQ.py +++ b/MQ.py @@ -198,14 +198,16 @@ def write_data(self, rom:LocalRom): update_dmadata(rom, self.file) -def patch_files(rom:LocalRom): - patch_ice_cavern_scene_header(rom) +def patch_files(world, rom:LocalRom): + #patch_ice_cavern_scene_header(rom) data = get_json() scenes = [Scene(x) for x in data] - for scene in scenes: - scene.write_data(rom) + if world.dungeon_mq['DT']: + scenes[0].write_data(rom) + if world.dungeon_mq['DC']: + scenes[1].write_data(rom) verify_dma(rom) diff --git a/Main.py b/Main.py index 6210147ff..270c7ff94 100644 --- a/Main.py +++ b/Main.py @@ -62,6 +62,15 @@ def main(settings, window=dummy_window()): window.update_progress(0 + (((id + 1) / settings.world_count) * 1)) logger.info('Creating Overworld') + if world.quest == 'master': + for dungeon in world.dungeon_mq: + world.dungeon_mq[dungeon] = True + elif world.quest == 'mixed': + for dungeon in world.dungeon_mq: + world.dungeon_mq[dungeon] = random.choice([True, False]) + else: + for dungeon in world.dungeon_mq: + world.dungeon_mq[dungeon] = False create_regions(world) window.update_progress(0 + (((id + 1) / settings.world_count) * 2)) diff --git a/Regions.py b/Regions.py index ba7cdb971..3fb61bbab 100644 --- a/Regions.py +++ b/Regions.py @@ -35,20 +35,6 @@ def create_regions(world): 'Kokiri Shop', None, ['Kokiri Shop Exit']), - create_dungeon_region( - 'Deku Tree Lobby', - ['Deku Tree Lobby Chest', 'Deku Tree Compass Chest', 'Deku Tree Compass Room Side Chest', - 'Deku Tree Basement Chest', 'GS Deku Tree Compass Room', 'GS Deku Tree Basement Vines', - 'GS Deku Tree Basement Gate'], - ['Deku Tree Exit', 'Deku Tree Slingshot Passage', 'Deku Tree Basement Path']), - create_dungeon_region( - 'Deku Tree Slingshot Room', - ['Deku Tree Slingshot Chest', 'Deku Tree Slingshot Room Side Chest'], - ['Deku Tree Slingshot Exit']), - create_dungeon_region( - 'Deku Tree Boss Room', - ['GS Deku Tree Basement Back Room', 'Queen Gohma Heart', 'Queen Gohma'], - ['Deku Tree Basement Vines']), create_ow_region( 'Lost Woods', ['Skull Kid', 'Ocarina Memory Game', 'Target in Woods', 'Deku Salesman Woods', @@ -334,28 +320,6 @@ def create_regions(world): 'Crater Fairy', ['Crater Fairy Reward']), create_interior_region('Mountain Summit Fairy', ['Mountain Summit Fairy Reward']), - create_dungeon_region( - 'Dodongos Cavern Beginning', - None, - ['Dodongos Cavern Exit', 'Dodongos Cavern Lobby']), - create_dungeon_region( - 'Dodongos Cavern Lobby', - ['Dodongos Cavern Map Chest', 'Dodongos Cavern Compass Chest', 'GS Dodongo\'s Cavern East Side Room', - 'GS Dodongo\'s Cavern Scarecrow'], - ['Dodongos Cavern Retreat', 'Dodongos Cavern Left Door']), - create_dungeon_region( - 'Dodongos Cavern Climb', - ['Dodongos Cavern Bomb Flower Platform', 'GS Dodongo\'s Cavern Vines Above Stairs'], - ['Dodongos Cavern Bridge Fall', 'Dodongos Cavern Slingshot Target']), - create_dungeon_region( - 'Dodongos Cavern Far Bridge', - ['Dodongos Cavern Bomb Bag Chest', 'Dodongos Cavern End of Bridge Chest', - 'GS Dodongo\'s Cavern Alcove Above Stairs'], - ['Dodongos Cavern Bomb Drop', 'Dodongos Cavern Bridge Fall 2']), - create_dungeon_region( - 'Dodongos Cavern Boss Area', - ['Chest Above King Dodongo', 'King Dodongo Heart', 'King Dodongo', 'GS Dodongo\'s Cavern Back Room'], - ['Dodongos Cavern Exit Skull']), create_ow_region( 'Zora River Front', ['GS Zora River Tree'], @@ -544,6 +508,87 @@ def create_regions(world): create_grotto_region('Lake Hylia Grotto') ] + if world.dungeon_mq['DT']: + world.regions.extend([ + create_dungeon_region( + 'Deku Tree Lobby', + ['Deku Tree MQ Lobby Chest', 'Deku Tree MQ Slingshot Chest', 'Deku Tree MQ Slingshot Room Back Chest', + 'Deku Tree MQ Basement Chest', 'GS Deku Tree MQ Lobby'], + ['Deku Tree Exit', 'Deku Tree Compass Passage', 'Deku Tree Basement Path']), + create_dungeon_region( + 'Deku Tree Compass Room', + ['Deku Tree MQ Compass Chest', 'GS Deku Tree MQ Compass Room'], + ['Deku Tree Compass Exit']), + create_dungeon_region( + 'Deku Tree Boss Room', + ['Deku Tree MQ Before Spinning Log Chest', 'Deku Tree MQ After Spinning Log Chest', + 'GS Deku Tree MQ Basement Ceiling', 'GS Deku Tree MQ Basement Back Room', + 'Queen Gohma Heart', 'Queen Gohma'], + ['Deku Tree Basement Vines']) + ]) + else: + world.regions.extend([ + create_dungeon_region( + 'Deku Tree Lobby', + ['Deku Tree Lobby Chest', 'Deku Tree Compass Chest', 'Deku Tree Compass Room Side Chest', + 'Deku Tree Basement Chest', 'GS Deku Tree Compass Room', 'GS Deku Tree Basement Vines', + 'GS Deku Tree Basement Gate'], + ['Deku Tree Exit', 'Deku Tree Slingshot Passage', 'Deku Tree Basement Path']), + create_dungeon_region( + 'Deku Tree Slingshot Room', + ['Deku Tree Slingshot Chest', 'Deku Tree Slingshot Room Side Chest'], + ['Deku Tree Slingshot Exit']), + create_dungeon_region( + 'Deku Tree Boss Room', + ['GS Deku Tree Basement Back Room', 'Queen Gohma Heart', 'Queen Gohma'], + ['Deku Tree Basement Vines']) + ]) + + if world.dungeon_mq['DC']: + world.regions.extend([ + create_dungeon_region( + 'Dodongos Cavern Beginning', + None, + ['Dodongos Cavern Exit', 'Dodongos Cavern Lobby']), + create_dungeon_region( + 'Dodongos Cavern Lobby', + ['Dodongos Cavern MQ Map Chest', 'Dodongos Cavern MQ Compass Chest', 'Dodongos Cavern MQ Larva Room Chest', + 'Dodongos Cavern MQ Torch Puzzle Room Chest', 'Dodongos Cavern MQ Bomb Bag Chest', + 'GS Dodongo\'s Cavern MQ Song of Time Block Room', 'GS Dodongo\'s Cavern MQ Larva Room', + 'GS Dodongo\'s Cavern MQ Lizalfos Room', 'GS Dodongo\'s Cavern MQ Scrub Room'], + ['Dodongos Cavern Bomb Drop']), + create_dungeon_region( + 'Dodongos Cavern Boss Area', + ['Dodongos Cavern MQ Under Grave Chest', 'Chest Above King Dodongo', 'King Dodongo Heart', + 'King Dodongo', 'GS Dodongo\'s Cavern MQ Back Area']), + ]) + else: + world.regions.extend([ + create_dungeon_region( + 'Dodongos Cavern Beginning', + None, + ['Dodongos Cavern Exit', 'Dodongos Cavern Lobby']), + create_dungeon_region( + 'Dodongos Cavern Lobby', + ['Dodongos Cavern Map Chest', 'Dodongos Cavern Compass Chest', 'GS Dodongo\'s Cavern East Side Room', + 'GS Dodongo\'s Cavern Scarecrow'], + ['Dodongos Cavern Retreat', 'Dodongos Cavern Left Door']), + create_dungeon_region( + 'Dodongos Cavern Climb', + ['Dodongos Cavern Bomb Flower Platform', 'GS Dodongo\'s Cavern Vines Above Stairs'], + ['Dodongos Cavern Bridge Fall', 'Dodongos Cavern Slingshot Target']), + create_dungeon_region( + 'Dodongos Cavern Far Bridge', + ['Dodongos Cavern Bomb Bag Chest', 'Dodongos Cavern End of Bridge Chest', + 'GS Dodongo\'s Cavern Alcove Above Stairs'], + ['Dodongos Cavern Bomb Drop', 'Dodongos Cavern Bridge Fall 2']), + create_dungeon_region( + 'Dodongos Cavern Boss Area', + ['Chest Above King Dodongo', 'King Dodongo Heart', 'King Dodongo', 'GS Dodongo\'s Cavern Back Room'], + ['Dodongos Cavern Exit Skull']) + ]) + + world.initialize_regions() def create_ow_region(name, locations=None, exits=None): @@ -592,18 +637,6 @@ def _create_region(name, type, locations=None, exits=None): 'Haunted Wasteland Structure Chest': (0x21E20DE, None, 0x8AA0, 'Chest', 0x5E, 'Haunted Wasteland'), 'Redead Grotto Chest': (0x26CF076, None, 0x7ACA, 'Chest', 0x3E, 'Kakariko Village'), 'Wolfos Grotto Chest': (0x26EB076, None, 0x7AB1, 'Chest', 0x3E, 'Sacred Forest Meadow'), - 'Deku Tree Lobby Chest': (0x24A7146, None, 0x0823, 'Chest', 0x00, 'Deku Tree'), - 'Deku Tree Slingshot Chest': (0x24C20C6, None, 0x00A1, 'Chest', 0x00, 'Deku Tree'), - 'Deku Tree Slingshot Room Side Chest': (0x24C20D6, None, 0x5905, 'Chest', 0x00, 'Deku Tree'), - 'Deku Tree Compass Chest': (0x25040D6, None, 0x0802, 'Chest', 0x00, 'Deku Tree'), - 'Deku Tree Compass Room Side Chest': (0x25040E6, None, 0x5906, 'Chest', 0x00, 'Deku Tree'), - 'Deku Tree Basement Chest': (0x24C8166, None, 0x5904, 'Chest', 0x00, 'Deku Tree'), - 'Dodongos Cavern Map Chest': (0x1F2819E, None, 0x0828, 'Chest', 0x01, 'Dodongo\'s Cavern'), - 'Dodongos Cavern Compass Chest': (0x1FAF0AA, None, 0x0805, 'Chest', 0x01, 'Dodongo\'s Cavern'), - 'Dodongos Cavern Bomb Flower Platform': (0x1F890DE, None, 0x59C6, 'Chest', 0x01, 'Dodongo\'s Cavern'), - 'Dodongos Cavern Bomb Bag Chest': (0x1F890CE, None, 0x0644, 'Chest', 0x01, 'Dodongo\'s Cavern'), - 'Dodongos Cavern End of Bridge Chest': (0x1F281CE, None, 0x552A, 'Chest', 0x01, 'Dodongo\'s Cavern'), - 'Chest Above King Dodongo': (0x2EB00BA, None, 0x5020, 'Chest', 0x12, 'Dodongo\'s Cavern'), 'Boomerang Chest': (0x278A0BA, None, 0x10C1, 'Chest', 0x02, 'Jabu Jabu\'s Belly'), 'Jabu Jabus Belly Map Chest': (0x278E08A, None, 0x1822, 'Chest', 0x02, 'Jabu Jabu\'s Belly'), 'Jabu Jabus Belly Compass Chest': (0x279608A, None, 0xB804, 'Chest', 0x02, 'Jabu Jabu\'s Belly'), @@ -851,6 +884,38 @@ def _create_region(name, type, locations=None, exits=None): 'Ganons Castle Spirit Trial Clear': (None, None, None, 'Event', None, 'Ganon\'s Castle'), 'Ganons Castle Light Trial Clear': (None, None, None, 'Event', None, 'Ganon\'s Castle'), + # Deku Tree vanilla + 'Deku Tree Lobby Chest': (0x24A7146, None, 0x0823, 'Chest', 0x00, 'Deku Tree'), + 'Deku Tree Slingshot Chest': (0x24C20C6, None, 0x00A1, 'Chest', 0x00, 'Deku Tree'), + 'Deku Tree Slingshot Room Side Chest': (0x24C20D6, None, 0x5905, 'Chest', 0x00, 'Deku Tree'), + 'Deku Tree Compass Chest': (0x25040D6, None, 0x0802, 'Chest', 0x00, 'Deku Tree'), + 'Deku Tree Compass Room Side Chest': (0x25040E6, None, 0x5906, 'Chest', 0x00, 'Deku Tree'), + 'Deku Tree Basement Chest': (0x24C8166, None, 0x5904, 'Chest', 0x00, 'Deku Tree'), + # Deku Tree MQ + 'Deku Tree MQ Lobby Chest': (0, None, 0x0823, 'Chest', 0x00, 'Deku Tree'), + 'Deku Tree MQ Compass Chest': (0, None, 0x0801, 'Chest', 0x00, 'Deku Tree'), + 'Deku Tree MQ Slingshot Chest': (0, None, 0x10A6, 'Chest', 0x00, 'Deku Tree'), + 'Deku Tree MQ Slingshot Room Back Chest': (0, None, 0x8522, 'Chest', 0x00, 'Deku Tree'), + 'Deku Tree MQ Basement Chest': (0, None, 0x8524, 'Chest', 0x00, 'Deku Tree'), + 'Deku Tree MQ Before Spinning Log Chest': (0, None, 0x5905, 'Chest', 0x00, 'Deku Tree'), + 'Deku Tree MQ After Spinning Log Chest': (0, None, 0x5AA0, 'Chest', 0x00, 'Deku Tree'), + + # Dodongo's Cavern shared + 'Chest Above King Dodongo': (0x2EB00BA, None, 0x5020, 'Chest', 0x12, 'Dodongo\'s Cavern'), + # Dodongo's Cavern vanilla + 'Dodongos Cavern Map Chest': (0x1F2819E, None, 0x0828, 'Chest', 0x01, 'Dodongo\'s Cavern'), + 'Dodongos Cavern Compass Chest': (0x1FAF0AA, None, 0x0805, 'Chest', 0x01, 'Dodongo\'s Cavern'), + 'Dodongos Cavern Bomb Flower Platform': (0x1F890DE, None, 0x59C6, 'Chest', 0x01, 'Dodongo\'s Cavern'), + 'Dodongos Cavern Bomb Bag Chest': (0x1F890CE, None, 0x0644, 'Chest', 0x01, 'Dodongo\'s Cavern'), + 'Dodongos Cavern End of Bridge Chest': (0x1F281CE, None, 0x552A, 'Chest', 0x01, 'Dodongo\'s Cavern'), + # Dodongo's Cavern MQ + 'Dodongos Cavern MQ Map Chest': (0, None, 0x0820, 'Chest', 0x01, 'Dodongo\'s Cavern'), + 'Dodongos Cavern MQ Bomb Bag Chest': (0, None, 0x0644, 'Chest', 0x01, 'Dodongo\'s Cavern'), + 'Dodongos Cavern MQ Compass Chest': (0, None, 0x1805, 'Chest', 0x01, 'Dodongo\'s Cavern'), + 'Dodongos Cavern MQ Larva Room Chest': (0, None, 0x7522, 'Chest', 0x01, 'Dodongo\'s Cavern'), + 'Dodongos Cavern MQ Torch Puzzle Room Chest': (0, None, 0x59A3, 'Chest', 0x01, 'Dodongo\'s Cavern'), + 'Dodongos Cavern MQ Under Grave Chest': (0, None, 0x5541, 'Chest', 0x01, 'Dodongo\'s Cavern'), + # I don't think the addresses matter for Link's Pocket anymore, but they can't be None for some reason 'Links Pocket': (0x34806FB, 0x34806FF, None, 'Boss', None, 'Link\'s Pocket'), 'Queen Gohma': (0xCA315F, 0x2079571, 0x6C, 'Boss', None, 'Deku Tree'), @@ -870,12 +935,23 @@ def _create_region(name, type, locations=None, exits=None): 'GS Deku Tree Basement Vines': (None, None, 0x04, 'GS Token', 0x00, 'Deku Tree'), 'GS Deku Tree Compass Room': (None, None, 0x08, 'GS Token', 0x00, 'Deku Tree'), + 'GS Deku Tree MQ Lobby': (None, None, 0x02, 'GS Token', 0x00, 'Deku Tree'), + 'GS Deku Tree MQ Compass Room': (None, None, 0x08, 'GS Token', 0x00, 'Deku Tree'), + 'GS Deku Tree MQ Basement Ceiling': (None, None, 0x04, 'GS Token', 0x00, 'Deku Tree'), + 'GS Deku Tree MQ Basement Back Room': (None, None, 0x01, 'GS Token', 0x00, 'Deku Tree'), + 'GS Dodongo\'s Cavern Vines Above Stairs': (None, None, 0x01, 'GS Token', 0x01, 'Dodongo\'s Cavern'), 'GS Dodongo\'s Cavern Scarecrow': (None, None, 0x02, 'GS Token', 0x01, 'Dodongo\'s Cavern'), 'GS Dodongo\'s Cavern Alcove Above Stairs': (None, None, 0x04, 'GS Token', 0x01, 'Dodongo\'s Cavern'), 'GS Dodongo\'s Cavern Back Room': (None, None, 0x08, 'GS Token', 0x01, 'Dodongo\'s Cavern'), 'GS Dodongo\'s Cavern East Side Room': (None, None, 0x10, 'GS Token', 0x01, 'Dodongo\'s Cavern'), + 'GS Dodongo\'s Cavern MQ Scrub Room': (None, None, 0x02, 'GS Token', 0x01, 'Dodongo\'s Cavern'), + 'GS Dodongo\'s Cavern MQ Song of Time Block Room': (None, None, 0x08, 'GS Token', 0x01, 'Dodongo\'s Cavern'), + 'GS Dodongo\'s Cavern MQ Lizalfos Room': (None, None, 0x04, 'GS Token', 0x01, 'Dodongo\'s Cavern'), + 'GS Dodongo\'s Cavern MQ Larva Room': (None, None, 0x10, 'GS Token', 0x01, 'Dodongo\'s Cavern'), + 'GS Dodongo\'s Cavern MQ Back Area': (None, None, 0x01, 'GS Token', 0x01, 'Dodongo\'s Cavern'), + 'GS Jabu Jabu Lobby Basement Lower': (None, None, 0x01, 'GS Token', 0x02, 'Jabu Jabu\'s Belly'), 'GS Jabu Jabu Lobby Basement Upper': (None, None, 0x02, 'GS Token', 0x02, 'Jabu Jabu\'s Belly'), 'GS Jabu Jabu Near Boss': (None, None, 0x04, 'GS Token', 0x02, 'Jabu Jabu\'s Belly'), diff --git a/Rom.py b/Rom.py index f0e559f7c..9971bc89e 100644 --- a/Rom.py +++ b/Rom.py @@ -196,7 +196,7 @@ def bytes_as_int32(values): return (values[0] << 24) | (values[1] << 16) | (values[2] << 8) | values[3] - +from MQ import patch_files def patch_rom(world, rom): with open(local_path('data/base2current.json'), 'r') as stream: @@ -960,13 +960,13 @@ def write_save_table(rom): # Initial Save Data write_bits_to_save(0x003F, 0x02) # Some Biggoron's Sword flag? - write_bits_to_save(0x00D4 + 0x00 * 0x1C + 0x04 + 0x0, 0x80) # Deku tree switch flag (navi text?) - write_bits_to_save(0x00D4 + 0x00 * 0x1C + 0x04 + 0x1, 0x02) # Deku tree switch flag (navi text?) - write_bits_to_save(0x00D4 + 0x00 * 0x1C + 0x04 + 0x2, 0x80) # Deku tree switch flag (navi text?) - write_bits_to_save(0x00D4 + 0x00 * 0x1C + 0x04 + 0x2, 0x04) # Deku tree switch flag (navi text?) - write_bits_to_save(0x00D4 + 0x01 * 0x1C + 0x04 + 0x2, 0x40) # Dodongo's Cavern switch flag (navi text?) - write_bits_to_save(0x00D4 + 0x01 * 0x1C + 0x04 + 0x2, 0x08) # Dodongo's Cavern switch flag (navi text?) - write_bits_to_save(0x00D4 + 0x01 * 0x1C + 0x04 + 0x2, 0x01) # Dodongo's Cavern switch flag (navi text?) + #write_bits_to_save(0x00D4 + 0x00 * 0x1C + 0x04 + 0x0, 0x80) # Deku tree switch flag (navi text?) + #write_bits_to_save(0x00D4 + 0x00 * 0x1C + 0x04 + 0x1, 0x02) # Deku tree switch flag (navi text?) + #write_bits_to_save(0x00D4 + 0x00 * 0x1C + 0x04 + 0x2, 0x80) # Deku tree switch flag (navi text?) + #write_bits_to_save(0x00D4 + 0x00 * 0x1C + 0x04 + 0x2, 0x04) # Deku tree switch flag (navi text?) + #write_bits_to_save(0x00D4 + 0x01 * 0x1C + 0x04 + 0x2, 0x40) # Dodongo's Cavern switch flag (navi text?) + #write_bits_to_save(0x00D4 + 0x01 * 0x1C + 0x04 + 0x2, 0x08) # Dodongo's Cavern switch flag (navi text?) + #write_bits_to_save(0x00D4 + 0x01 * 0x1C + 0x04 + 0x2, 0x01) # Dodongo's Cavern switch flag (navi text?) write_bits_to_save(0x00D4 + 0x02 * 0x1C + 0x04 + 0x0, 0x08) # Inside Jabu-Jabu's Belly switch flag (ruto?) write_bits_to_save(0x00D4 + 0x02 * 0x1C + 0x04 + 0x0, 0x04) # Inside Jabu-Jabu's Belly switch flag (ruto?) write_bits_to_save(0x00D4 + 0x02 * 0x1C + 0x04 + 0x0, 0x02) # Inside Jabu-Jabu's Belly switch flag (ruto?) @@ -1414,6 +1414,8 @@ def write_save_table(rom): if world.disable_music: rom.write_bytes(0xB3CB18, [0x00, 0x00, 0x20, 0x25]) + patch_files(world, rom) + # re-seed for aesthetic effects. They shouldn't be affected by the generation seed random.seed() diff --git a/Rules.py b/Rules.py index 62c6349a7..c1318202d 100644 --- a/Rules.py +++ b/Rules.py @@ -66,8 +66,15 @@ def global_rules(world): world.get_region('Links House').can_reach = lambda state: True # dungeon requirements (including gold skulltulas) - dung_rules_dt0(world) - dung_rules_dc0(world) + + if world.dungeon_mq['DT']: + dung_rules_dtmq(world) + else: + dung_rules_dt0(world) + if world.dungeon_mq['DC']: + dung_rules_dcmq(world) + else: + dung_rules_dc0(world) dung_rules_jb0(world) dung_rules_fot0(world) dung_rules_fit0(world) @@ -99,6 +106,7 @@ def global_rules(world): set_rule(world.get_location('Composer Grave Chest'), lambda state: state.has_fire_source()) set_rule(world.get_entrance('Bottom of the Well'), lambda state: state.can_play('Song of Storms')) set_rule(world.get_entrance('Death Mountain Entrance'), lambda state: state.has('Zeldas Letter') or state.is_adult() or world.open_kakariko) + set_rule(world.get_entrance('Dodongos Cavern Rocks'), lambda state: state.has_explosives() or state.has('Progressive Strength Upgrade') or state.is_adult()) set_rule(world.get_location('DM Trail Freestanding PoH'), lambda state: world.open_kakariko or (world.difficulty != 'ohko') or state.has('Zeldas Letter') or state.can_blast_or_smash() or ((state.has('Dins Fire') or state.has('Nayrus Love')) and state.has('Magic Meter')) or state.has('Bow') or state.has('Progressive Strength Upgrade') or state.has_bottle() or state.has('Hover Boots')) set_rule(world.get_location('Death Mountain Bombable Chest'), lambda state: state.can_blast_or_smash()) set_rule(world.get_location('Biggoron'), lambda state: (not world.logic_no_trade_biggoron) and (state.has('Progressive Strength Upgrade') or state.can_blast_or_smash() or state.has('Bow')) and state.is_adult() and state.can_finish_adult_trades() and state.guarantee_hint()) @@ -253,8 +261,6 @@ def global_rules(world): set_rule(world.get_location('GS Goron City Boulder Maze'), lambda state: state.has_explosives()) set_rule(world.get_location('GS Goron City Center Platform'), lambda state: state.is_adult()) set_rule(world.get_location('GS Mountain Crater Bean Patch'), lambda state: state.can_play('Bolero of Fire') and state.has_bottle()) - set_rule(world.get_location('GS Dodongo\'s Cavern Alcove Above Stairs'), lambda state: (state.has('Progressive Hookshot') and state.is_adult()) or (state.has('Boomerang') and (state.has_explosives() or state.has('Progressive Strength Upgrade')))) - set_rule(world.get_location('GS Dodongo\'s Cavern Scarecrow'), lambda state: state.is_adult() and ( (state.has('Progressive Hookshot') and state.has_ocarina()) or state.has('Progressive Hookshot', 2) )) set_rule(world.get_location('GS Zora River Ladder'), lambda state: state.nighttime()) set_rule(world.get_location('GS Zora River Near Raised Grottos'), lambda state: state.has('Progressive Hookshot') and state.nighttime()) set_rule(world.get_location('GS Zora River Above Bridge'), lambda state: state.has('Progressive Hookshot') and state.nighttime()) @@ -289,22 +295,49 @@ def global_rules(world): forbid_item(world.get_location('Bombchu Bowling Bomb Bag'), 'Biggoron Sword') forbid_item(world.get_location('Bombchu Bowling Piece of Heart'), 'Biggoron Sword') +# Deku Tree Vanilla def dung_rules_dt0(world): - # Deku Tree Vanilla set_rule(world.get_entrance('Deku Tree Basement Path'), lambda state: state.has('Slingshot')) # GS set_rule(world.get_location('GS Deku Tree Basement Back Room'), lambda state: state.has('Boomerang') and (state.has('Bomb Bag') or (state.has_bombchus() and state.can_leave_forest()))) +# MQ Deku Tree +def dung_rules_dtmq(world): + set_rule(world.get_entrance('Deku Tree Compass Passage'), lambda state: state.has('Slingshot')) + set_rule(world.get_entrance('Deku Tree Basement Path'), lambda state: state.has('Slingshot')) + set_rule(world.get_location('Deku Tree MQ After Spinning Log Chest'), lambda state: state.can_play('Song of Time')) + + # GS + set_rule(world.get_location('GS Deku Tree MQ Compass Room'), lambda state: state.has('Boomerang') and ((state.has('Bomb Bag') and state.can_play('Song of Time')) or (state.has_bombchus() and state.can_leave_forest()))) + set_rule(world.get_location('GS Deku Tree MQ Basement Ceiling'), lambda state: state.has('Boomerang') and state.can_play('Song of Time')) + set_rule(world.get_location('GS Deku Tree MQ Basement Back Room'), lambda state: state.has('Boomerang')) + +# Dodongo's Cavern Vanilla def dung_rules_dc0(world): - # Dodongo's Cavern Vanilla - set_rule(world.get_entrance('Dodongos Cavern Rocks'), lambda state: state.can_blast_or_smash() or state.has('Progressive Strength Upgrade') or state.is_adult()) set_rule(world.get_entrance('Dodongos Cavern Lobby'), lambda state: state.can_blast_or_smash() or state.has('Progressive Strength Upgrade')) set_rule(world.get_entrance('Dodongos Cavern Left Door'), lambda state: state.has_explosives() or state.has('Progressive Strength Upgrade') or (state.has('Dins Fire') and state.has('Magic Meter')) or (state.has('Bow') and state.is_adult())) set_rule(world.get_entrance('Dodongos Cavern Slingshot Target'), lambda state: state.has('Slingshot') or ((state.has('Bow') or state.has('Hover Boots') or state.has('Progressive Hookshot', 2) or world.logic_dc_jump) and state.is_adult())) set_rule(world.get_location('Dodongos Cavern End of Bridge Chest'), lambda state: state.has_explosives() or ((state.has('Bow') or state.has('Hover Boots') or state.has('Progressive Hookshot', 2) or world.logic_dc_jump) and state.is_adult() and state.has('Hammer'))) set_rule(world.get_entrance('Dodongos Cavern Bomb Drop'), lambda state: state.has_explosives()) + # GS + set_rule(world.get_location('GS Dodongo\'s Cavern Alcove Above Stairs'), lambda state: (state.has('Progressive Hookshot') and state.is_adult()) or (state.has('Boomerang') and (state.has_explosives() or state.has('Progressive Strength Upgrade')))) + set_rule(world.get_location('GS Dodongo\'s Cavern Scarecrow'), lambda state: state.is_adult() and ( (state.has('Progressive Hookshot') and state.has_ocarina()) or state.has('Progressive Hookshot', 2) )) + +# Dodongo's Cavern MQ +def dung_rules_dcmq(world): + set_rule(world.get_entrance('Dodongos Cavern Lobby'), lambda state: state.can_blast_or_smash() or state.has('Progressive Strength Upgrade')) + set_rule(world.get_entrance('Dodongos Cavern Bomb Drop'), lambda state: state.has_explosives()) + set_rule(world.get_location('Dodongos Cavern MQ Larva Room Chest'), lambda state: state.has_explosives or state.has('Progressive Strength Upgrade') or state.has_fire_source()) + set_rule(world.get_location('Dodongos Cavern MQ Bomb Bag Chest'), lambda state: state.has('Slingshot') or state.is_adult()) + + # GS + set_rule(world.get_location('GS Dodongo\'s Cavern MQ Song of Time Block Room'), lambda state: state.can_play('Song of Time')) + set_rule(world.get_location('GS Dodongo\'s Cavern MQ Larva Room'), lambda state: state.has_explosives or state.has('Progressive Strength Upgrade') or state.has_fire_source()) + set_rule(world.get_location('GS Dodongo\'s Cavern MQ Lizalfos Room'), lambda state: state.can_blast_or_smash()) + set_rule(world.get_location('GS Dodongo\'s Cavern MQ Scrub Room'), lambda state: ((state.has('Slingshot') or (state.is_adult() and state.has_explosives())) and state.has('Boomerang') and (state.has_explosives() or state.has('Progressive Strength Upgrade'))) or (state.is_adult() and state.has('Progressive Hookshot') and (state.has_explosives() or state.has('Progressive Strength Upgrade') or state.has('Bow') or (state.has('Dins Fire') and state.has('Magic Meter'))))) # You may have to kill the lower Lizalfos as adult, then use Bombs to jump down from the upper Lizalfos as child, so you can use the Boomerang to get this GS without needing the Slingshot. (Or you could do the jumpslash recoil, but that's not in logic.) + def dung_rules_jb0(world): set_rule(world.get_entrance('Jabu Jabus Belly Ceiling Switch'), lambda state: state.has('Slingshot') or state.has_explosives() or state.has('Boomerang')) set_rule(world.get_entrance('Jabu Jabus Belly Tentacles'), lambda state: state.has('Boomerang')) From e8e5221eada6c6fb6fb9094f0547955ec1556bfc Mon Sep 17 00:00:00 2001 From: AmazingAmpharos Date: Tue, 21 Aug 2018 00:42:38 -0500 Subject: [PATCH 327/755] Need this file for MQ too Oops, did this the night before and missed it in the initial upload. --- Settings.py | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/Settings.py b/Settings.py index fdf206693..2ce50d7a1 100644 --- a/Settings.py +++ b/Settings.py @@ -496,7 +496,7 @@ def __init__(self, settings_dict): ''' }, { - 'text': 'Big Poe target count', + 'text': 'Big Poe Target Count', 'group': 'convenience', 'widget': 'Combobox', 'default': 'Random', @@ -780,6 +780,40 @@ def __init__(self, settings_dict): new locations for items to appear. ''' }), + Setting_Info('quest', str, 2, True, + { + 'default': 'vanilla', + 'const': 'vanilla', + 'nargs': '?', + 'choices': ['vanilla', 'master', 'mixed'], + 'help': '''\ + Select requirement to spawn the Rainbow Bridge to reach Ganon's Castle. (default: %(default)s) + Vanilla: Dungeons will be the original Ocarina of Time dungeons. + Master: Dungeons will be in the form of the Master Quest. + Mixed: Each dungeon will randomly be either standard or Master Quest. + ''' + }, + { + 'text': 'Dungeon Quest', + 'group': 'logic', + 'widget': 'Combobox', + 'default': 'Vanilla', + 'options': { + 'Vanilla': 'vanilla', + 'Master Quest': 'master', + 'Mixed': 'mixed', + }, + 'tooltip':'''\ + 'Vanilla': Dungeons will be in their + default OoT form. + + 'Master Quest': Dungeons will be in the + form found in OoT: Master Quest. + + 'Mixed': Each dungeon will have a + random chance to be in either form. + ''' + }), Setting_Info('logic_skulltulas', int, 3, True, { 'default': 50, From b97368d26bbaa14fc87d14fd5acba64d8d70f101 Mon Sep 17 00:00:00 2001 From: Unknown Date: Tue, 21 Aug 2018 01:46:40 -0400 Subject: [PATCH 328/755] Avoiding a dependent instruction in a delay slot --- ASM/src/song_fix.asm | 10 +++++----- data/base2current.json | 2 +- version.py | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/ASM/src/song_fix.asm b/ASM/src/song_fix.asm index 6d6091ab0..530aa24dd 100644 --- a/ASM/src/song_fix.asm +++ b/ASM/src/song_fix.asm @@ -78,13 +78,14 @@ warp_song_fix: ; Change Epona check for owning or being able to play the song ;================================================================================================== Check_Has_Epona_Song: - ; If epona is owned, then return True - bnez v0, @@return - nop - ; If not Epona owned flag, then return result li at, 0x18 bne a0, at, @@return + nop + + ; If epona is owned, then return True + bnez v0, @@return + nop li t2, SAVE_CONTEXT @@ -104,4 +105,3 @@ Check_Has_Epona_Song: @@return: jr ra nop - diff --git a/data/base2current.json b/data/base2current.json index 0ea91407b..29d88bdf9 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -1 +1 @@ -[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 196]}, {"11135032": [8, 16, 13, 47]}, {"11311804": [12, 16, 11, 205]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 190, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 101]}, {"11427312": [12, 16, 13, 14]}, {"11427320": [12, 16, 11, 200]}, {"11427332": [0, 0]}, {"11427335": [0]}, {"11431496": [12, 16, 11, 195, 1, 15, 192, 33]}, {"11559936": [130]}, {"11559938": [14, 222]}, {"11559948": [49, 248, 0, 2]}, {"11562028": [12, 16, 13, 64]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 30]}, {"11882076": [12, 16, 12, 251]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 68, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 75, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 82, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 61, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 140]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 18]}, {"12427480": [12, 16, 10, 106]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 110]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 12, 8, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 152]}, {"12491480": [12, 16, 10, 161]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 147]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 89]}, {"13709176": [52, 15]}, {"13709179": [0]}, {"14109028": [16, 0]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 128, 73, 14, 222]}, {"14149508": [52]}, {"14149510": [0, 1, 2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 208]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 224]}, {"14624335": [118]}, {"14720872": [128]}, {"14720874": [14, 222]}, {"14720884": [49, 248, 0, 4]}, {"14720944": [12, 16, 11, 216]}, {"14848904": [8, 16, 11, 247]}, {"14852164": [12, 16, 12, 0]}, {"14872723": [52]}, {"15327704": [52, 9, 64, 0]}, {"15327728": [52]}, {"15327730": [91, 8]}, {"15327744": [52]}, {"15327746": [0, 10]}, {"15327757": [169]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 236, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 48, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 76, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 104, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 220, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 108, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 140, 128, 64, 38, 132, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 172, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 39, 212, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 28, 128, 64, 40]}, {"55059600": [83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 3, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 44, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [2, 52, 2]}, {"55060003": [69, 52, 2]}, {"55060007": [70, 3, 224]}, {"55060011": [8]}, {"55060016": [144, 136]}, {"55060019": [162, 49, 8]}, {"55060023": [6, 17]}, {"55060027": [2, 52, 2]}, {"55060031": [55, 52, 2]}, {"55060035": [56, 3, 224]}, {"55060039": [8]}, {"55060044": [144, 136]}, {"55060047": [161, 49, 8]}, {"55060051": [32, 17]}, {"55060055": [2, 52, 2]}, {"55060059": [121, 52, 2]}, {"55060063": [122, 3, 224]}, {"55060067": [8]}, {"55060072": [144, 136]}, {"55060075": [161, 49, 8]}, {"55060079": [4, 17]}, {"55060083": [2, 52, 2]}, {"55060087": [119, 52, 2]}, {"55060091": [120, 3, 224]}, {"55060095": [8]}, {"55060100": [144, 136]}, {"55060103": [50, 17]}, {"55060107": [2, 52, 2]}, {"55060111": [192, 52, 2]}, {"55060115": [193, 3, 224]}, {"55060119": [8]}, {"55060124": [144, 136]}, {"55060127": [163, 49, 8]}, {"55060131": [3, 17]}, {"55060135": [2, 52, 2]}, {"55060139": [77, 52, 162]}, {"55060144": [3, 224]}, {"55060147": [8]}, {"55060152": [144, 136]}, {"55060155": [163, 49, 8]}, {"55060159": [24, 17]}, {"55060163": [2, 52, 2]}, {"55060167": [77, 52, 162]}, {"55060172": [3, 224]}, {"55060175": [8]}, {"55060180": [3, 224]}, {"55060183": [8]}, {"55060188": [52, 8]}, {"55060191": [1, 160, 136]}, {"55060195": [62, 3, 224]}, {"55060199": [8]}, {"55060204": [36, 136]}, {"55060207": [134, 36, 9, 255, 255, 37, 41]}, {"55060215": [1, 52, 1]}, {"55060219": [3]}, {"55060221": [41, 8, 42, 20, 32]}, {"55060227": [7]}, {"55060232": [1, 9, 80, 33, 145, 75]}, {"55060240": [52, 1]}, {"55060243": [255, 21, 97, 255, 247]}, {"55060252": [161, 69]}, {"55060256": [3, 224]}, {"55060259": [8]}, {"55060264": [36, 136]}, {"55060267": [168, 1, 6, 64, 33, 145, 9]}, {"55060276": [1, 37, 72, 37, 161, 9]}, {"55060284": [3, 224]}, {"55060287": [8]}, {"55060292": [36, 136]}, {"55060295": [188, 1, 5, 64, 33, 129, 9]}, {"55060304": [5, 33]}, {"55060307": [2]}, {"55060312": [52, 9]}, {"55060316": [37, 41]}, {"55060319": [1, 161, 9]}, {"55060324": [3, 224]}, {"55060327": [8]}, {"55060332": [52, 8]}, {"55060335": [1, 160, 136]}, {"55060339": [61, 52, 8]}, {"55060343": [20, 160, 136]}, {"55060347": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [50, 160, 136]}, {"55060375": [58, 52, 8]}, {"55060379": [48, 164, 136, 19, 244, 160, 136]}, {"55060387": [51, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [2, 160, 136]}, {"55060403": [50, 52, 8]}, {"55060407": [1, 160, 136]}, {"55060411": [58, 160, 136]}, {"55060415": [60, 52, 8]}, {"55060419": [96, 164, 136, 19, 244, 160, 136]}, {"55060427": [51, 3, 224]}, {"55060431": [8]}, {"55060436": [144, 136]}, {"55060439": [124, 52, 1]}, {"55060443": [255, 17, 1]}, {"55060447": [6, 52, 2]}, {"55060451": [107, 144, 136]}, {"55060455": [148, 45, 8]}, {"55060459": [6, 17]}, {"55060463": [2, 52, 2]}, {"55060467": [106, 52, 2]}, {"55060471": [3, 3, 224]}, {"55060475": [8]}, {"55060480": [144, 136]}, {"55060483": [123, 52, 1]}, {"55060487": [255, 17, 1]}, {"55060491": [2, 52, 162]}, {"55060496": [52, 2]}, {"55060499": [12, 3, 224]}, {"55060503": [8]}, {"55060508": [52, 8]}, {"55060511": [7, 160, 136]}, {"55060515": [123, 3, 224]}, {"55060519": [8]}, {"55060524": [52, 8]}, {"55060527": [1]}, {"55060529": [168, 64, 4, 140, 137]}, {"55060535": [164, 1, 40, 72, 37, 172, 137]}, {"55060543": [164, 3, 224]}, {"55060547": [8]}, {"55060552": [48, 132]}, {"55060555": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060567": [140, 16, 129]}, {"55060571": [22, 145, 2]}, {"55060575": [117, 52, 1]}, {"55060579": [141, 16, 129]}, {"55060583": [19, 145, 2]}, {"55060587": [117, 16, 128]}, {"55060591": [17, 145, 2]}, {"55060595": [116, 52, 1]}, {"55060599": [138, 16, 129]}, {"55060603": [14, 145, 2]}, {"55060607": [116, 52, 1]}, {"55060611": [139, 16, 129]}, {"55060615": [11, 145, 2]}, {"55060619": [116, 52, 1]}, {"55060623": [88, 16, 129]}, {"55060627": [8, 52, 2]}, {"55060632": [52, 1]}, {"55060635": [120, 16, 129]}, {"55060639": [5, 52, 2]}, {"55060644": [52, 1]}, {"55060647": [121, 16, 129]}, {"55060651": [2, 52, 2]}, {"55060656": [52, 2]}, {"55060659": [255, 3, 224]}, {"55060663": [8]}, {"55060668": [39, 189, 255, 224, 175, 191]}, {"55060675": [16, 175, 176]}, {"55060679": [20, 12, 16, 11, 11]}, {"55060688": [4, 65]}, {"55060691": [2]}, {"55060696": [52, 2]}, {"55060699": [91]}, {"55060701": [64, 32, 33, 12, 16, 11, 114]}, {"55060712": [16, 96]}, {"55060715": [22, 175, 163]}, {"55060719": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060728": [133, 9]}, {"55060731": [2, 17, 32]}, {"55060735": [3, 52, 10]}, {"55060739": [1, 16]}, {"55060743": [12, 165, 10]}, {"55060748": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060759": [6, 144, 102]}, {"55060763": [7, 140, 105]}, {"55060767": [8, 1, 32, 248, 9]}, {"55060776": [143, 163]}, {"55060779": [28, 144, 101]}, {"55060783": [1, 12, 1, 191, 115, 2, 32, 32, 33, 143, 163]}, {"55060795": [28, 144, 101]}, {"55060799": [3, 16]}, {"55060803": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060815": [6]}, {"55060817": [74]}, {"55060819": [24]}, {"55060822": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060832": [60, 8, 128, 64, 37, 8, 32]}, {"55060840": [133, 9]}, {"55060843": [2, 17, 32]}, {"55060847": [3, 52, 10]}, {"55060851": [1, 165, 10]}, {"55060856": [52, 5]}, {"55060859": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060871": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060882": [48, 33, 143, 191]}, {"55060887": [16, 143, 176]}, {"55060891": [20, 39, 189]}, {"55060895": [32, 3, 224]}, {"55060899": [8]}, {"55060904": [143, 166]}, {"55060907": [48, 132, 197]}, {"55060911": [4, 8, 16, 10, 114]}, {"55060920": [143, 185]}, {"55060923": [44, 135, 37]}, {"55060927": [4, 8, 16, 10, 114]}, {"55060936": [60, 10, 128, 64, 37, 74, 32, 8, 141, 75]}, {"55060947": [12, 17, 96]}, {"55060951": [2]}, {"55060956": [149, 69]}, {"55060959": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060972": [60, 9, 128, 64, 37, 41, 32, 24, 129, 42]}, {"55060983": [3, 5, 64]}, {"55060987": [11, 1, 42, 72, 32, 129, 40]}, {"55060996": [52, 10]}, {"55060999": [127, 21, 10]}, {"55061003": [6]}, {"55061008": [60, 10, 128, 18, 37, 74, 165, 208, 133, 72]}, {"55061019": [144, 33, 8]}, {"55061023": [1, 165, 72]}, {"55061027": [144, 161, 32]}, {"55061032": [3, 224]}, {"55061035": [8]}, {"55061040": [60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061051": [12, 17, 32]}, {"55061055": [2]}, {"55061060": [129, 3]}, {"55061063": [2]}, {"55061065": [3, 15, 195]}, {"55061069": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061083": [8]}, {"55061088": [144, 69]}, {"55061091": [3, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061103": [12, 17, 32]}, {"55061107": [2]}, {"55061112": [145, 5]}, {"55061115": [3, 3, 224]}, {"55061119": [8]}, {"55061124": [143, 162]}, {"55061127": [36, 144, 69]}, {"55061132": [60, 8, 128, 64, 37, 8, 32]}, {"55061140": [133, 9]}, {"55061143": [2, 17, 32]}, {"55061147": [4, 52, 10]}, {"55061151": [1, 165, 10]}, {"55061156": [16]}, {"55061159": [24, 52, 5]}, {"55061163": [65, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061175": [12, 17, 32]}, {"55061179": [19]}, {"55061184": [145, 5]}, {"55061187": [1, 175, 164]}, {"55061192": [175, 165]}, {"55061195": [4, 175, 166]}, {"55061199": [8, 39, 189, 255, 232, 175, 191]}, {"55061207": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061219": [6, 145, 6]}, {"55061223": [7, 141, 9]}, {"55061227": [8, 1, 32, 248, 9]}, {"55061236": [143, 191]}, {"55061239": [16, 39, 189]}, {"55061243": [24, 143, 164]}, {"55061248": [143, 165]}, {"55061251": [4, 143, 166]}, {"55061255": [8, 3, 224]}, {"55061259": [8]}, {"55061264": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061275": [16, 175, 163]}, {"55061279": [20, 175, 191]}, {"55061283": [24, 12, 16, 10, 209]}, {"55061292": [143, 162]}, {"55061295": [16, 143, 163]}, {"55061299": [20, 143, 191]}, {"55061303": [24, 39, 189]}, {"55061307": [32, 3, 224]}, {"55061311": [8]}, {"55061316": [39, 189, 255, 232, 175, 191]}, {"55061323": [16, 60, 8, 128, 64, 37, 8, 32, 8, 173]}, {"55061336": [173]}, {"55061339": [4, 173]}, {"55061343": [8, 173]}, {"55061347": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061363": [42]}, {"55061369": [9, 15, 195, 1, 33, 32, 38]}, {"55061377": [129, 32, 35, 141, 5, 4, 40, 12, 16, 11, 11]}, {"55061392": [4, 64]}, {"55061395": [34]}, {"55061400": [52, 68]}, {"55061404": [12, 16, 11, 114]}, {"55061412": [16, 96]}, {"55061415": [12]}, {"55061420": [60, 8, 128, 64, 37, 8, 32, 8, 140, 105]}, {"55061432": [173, 9]}, {"55061436": [140, 105]}, {"55061439": [4, 173, 9]}, {"55061443": [4, 140, 105]}, {"55061447": [8, 173, 9]}, {"55061451": [8, 52, 9]}, {"55061455": [1, 173, 9]}, {"55061459": [12, 144, 98]}, {"55061464": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061480": [52, 1]}, {"55061483": [10, 21, 65]}, {"55061487": [6]}, {"55061492": [149, 42]}, {"55061495": [28, 49, 74, 240, 31]}, {"55061501": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061511": [28, 129, 9, 4, 36, 5, 33]}, {"55061519": [2]}, {"55061525": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061535": [16, 39, 189]}, {"55061539": [24, 3, 224]}, {"55061543": [8]}, {"55061548": [39, 189, 255, 232, 175, 191]}, {"55061555": [16, 12, 16, 11, 25]}, {"55061564": [36, 1, 255, 255, 16, 65]}, {"55061571": [4]}, {"55061576": [52, 68]}, {"55061580": [12, 16, 11, 77]}, {"55061588": [143, 191]}, {"55061591": [16, 39, 189]}, {"55061595": [24, 3, 224]}, {"55061599": [8]}, {"55061604": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061615": [164, 52, 8]}, {"55061620": [52, 137]}, {"55061624": [148, 170]}, {"55061628": [52, 1, 1, 156, 21, 65]}, {"55061635": [8]}, {"55061640": [52, 8]}, {"55061643": [3, 148, 171]}, {"55061647": [28, 49, 105]}, {"55061651": [255, 49, 98, 31]}, {"55061657": [2, 18, 2, 16]}, {"55061663": [31]}, {"55061668": [52, 1]}, {"55061671": [10, 21, 65]}, {"55061675": [14]}, {"55061680": [148, 171]}, {"55061683": [28, 52, 1]}, {"55061687": [16, 20, 65]}, {"55061691": [8]}, {"55061696": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061707": [4]}, {"55061712": [36, 2, 255, 255, 16]}, {"55061719": [21]}, {"55061724": [52, 8]}, {"55061727": [1, 49, 105]}, {"55061731": [31, 52, 1]}, {"55061735": [21, 21, 65]}, {"55061739": [12]}, {"55061744": [52, 1]}, {"55061747": [62, 16, 129]}, {"55061751": [7]}, {"55061756": [52, 1]}, {"55061759": [66, 16, 129]}, {"55061763": [4]}, {"55061768": [36, 2, 255, 255, 16]}, {"55061775": [7]}, {"55061780": [52, 8]}, {"55061783": [2, 144, 169, 1, 65]}, {"55061789": [2, 18]}, {"55061793": [72, 16, 37]}, {"55061797": [2, 18]}, {"55061801": [73, 16, 37, 3, 224]}, {"55061807": [8]}, {"55061812": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061824": [129, 9]}, {"55061828": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061851": [4, 141, 9]}, {"55061856": [17, 32]}, {"55061859": [23]}, {"55061865": [9, 82, 2, 49, 75, 248]}, {"55061873": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061896": [49, 34]}, {"55061899": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061920": [60, 12, 128, 64, 37, 140, 28]}, {"55061928": [129, 140]}, {"55061932": [17, 108]}, {"55061935": [4, 165, 32]}, {"55061939": [2, 161, 43]}, {"55061943": [2, 161, 34]}, {"55061947": [3, 173, 36]}, {"55061951": [4, 3, 224]}, {"55061955": [8]}, {"55061960": [39, 189, 255, 224, 175, 176]}, {"55061967": [16, 175, 177]}, {"55061971": [20, 175, 191]}, {"55061975": [24, 52, 130]}, {"55061980": [52, 80]}, {"55061984": [38, 8, 255, 128, 5]}, {"55061991": [18]}, {"55061996": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55062007": [16, 1, 9]}, {"55062011": [24]}, {"55062014": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55062032": [142, 40]}, {"55062035": [12, 1]}, {"55062038": [248, 9]}, {"55062044": [20, 80, 255, 239]}, {"55062052": [54, 35]}, {"55062056": [16]}, {"55062059": [2]}, {"55062064": [52, 3]}, {"55062068": [143, 176]}, {"55062071": [16, 143, 177]}, {"55062075": [20, 143, 191]}, {"55062079": [24, 39, 189]}, {"55062083": [32, 3, 224]}, {"55062087": [8]}, {"55062092": [140, 136, 29, 44, 52, 9]}, {"55062099": [1]}, {"55062101": [9, 78]}, {"55062104": [1, 9, 16, 36, 16, 64]}, {"55062111": [36]}, {"55062116": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062131": [164, 52, 1]}, {"55062135": [61, 17, 129]}, {"55062139": [10]}, {"55062145": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062155": [25]}, {"55062160": [52, 13]}, {"55062163": [1, 161, 141, 29, 40, 37, 74]}, {"55062171": [3, 16]}, {"55062175": [9]}, {"55062180": [52, 12]}, {"55062183": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062199": [14]}, {"55062204": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062240": [60, 9, 128, 64, 37, 41, 32, 24, 161, 40]}, {"55062252": [52, 2]}, {"55062256": [3, 224]}, {"55062259": [8]}, {"55062264": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062276": [16]}, {"55062279": [34]}, {"55062284": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062296": [16]}, {"55062299": [29]}, {"55062304": [52, 2]}, {"55062307": [255, 32, 232, 255, 166, 33, 8]}, {"55062315": [97, 16]}, {"55062319": [24]}, {"55062324": [52, 8]}, {"55062327": [100, 16]}, {"55062331": [21]}, {"55062336": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062351": [1, 160, 40, 14, 222, 52, 8]}, {"55062359": [104, 16]}, {"55062363": [13]}, {"55062368": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062383": [4, 160, 40, 14, 222, 52, 8]}, {"55062391": [106, 16]}, {"55062395": [5]}, {"55062400": [52, 5]}, {"55062403": [3, 52, 8]}, {"55062407": [107, 16]}, {"55062411": [1]}, {"55062416": [60, 9, 128, 64, 37, 41, 32, 24, 60, 10, 128, 64, 37, 74, 32, 27, 129, 44]}, {"55062436": [17, 136]}, {"55062439": [11, 33, 41]}, {"55062443": [1, 21, 42, 255, 252]}, {"55062452": [60, 9, 128, 64, 37, 41, 32, 23, 33, 41]}, {"55062463": [1, 17, 42]}, {"55062467": [4, 129, 44]}, {"55062472": [21, 128, 255, 252]}, {"55062480": [161, 40]}, {"55062484": [3, 224]}, {"55062487": [8]}, {"55062493": [96, 120, 33, 129, 236, 14, 223, 49, 142]}, {"55062503": [128, 17, 192]}, {"55062507": [3, 52, 3]}, {"55062511": [5, 3, 224]}, {"55062515": [8, 52, 2]}, {"55062519": [2, 3, 224]}, {"55062523": [8]}, {"55062525": [96, 16, 33, 133, 194]}, {"55062531": [164, 60, 8, 128, 18, 37, 8, 165, 208, 129, 9, 14, 223, 53, 41]}, {"55062547": [128, 161, 9, 14, 223, 3, 224]}, {"55062555": [8]}, {"55062560": [175, 164]}, {"55062563": [104, 175, 165]}, {"55062567": [108, 175, 166]}, {"55062571": [112, 175, 167]}, {"55062575": [116, 39, 189, 255, 232, 175, 163]}, {"55062583": [16, 175, 191]}, {"55062587": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062603": [32, 21]}, {"55062607": [31]}, {"55062612": [60, 9, 128, 64, 37, 41, 32, 27, 52, 10]}, {"55062623": [255, 161, 42]}, {"55062628": [60, 9, 128, 64, 37, 41, 32, 24, 36, 10, 255, 255, 52, 12]}, {"55062643": [3, 33, 74]}, {"55062647": [1, 17, 76]}, {"55062651": [20, 1, 42, 88, 32, 129, 104]}, {"55062660": [17]}, {"55062662": [255, 251]}, {"55062668": [60, 9, 128, 64, 37, 41, 32, 27, 161, 42]}, {"55062680": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062691": [1, 165, 42]}, {"55062696": [60, 9, 128, 65, 52, 10]}, {"55062703": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 209]}, {"55062732": [143, 163]}, {"55062735": [16, 143, 191]}, {"55062739": [20, 39, 189]}, {"55062743": [24, 143, 164]}, {"55062747": [104, 143, 165]}, {"55062751": [108, 143, 166]}, {"55062755": [112, 143, 167]}, {"55062759": [116, 132, 110, 19, 196, 3, 224]}, {"55062767": [8]}, {"55062772": [147, 25]}, {"55062775": [116, 52, 1]}, {"55062779": [255, 23, 33]}, {"55062783": [2]}, {"55062788": [52, 25]}, {"55062791": [44, 3, 224]}, {"55062795": [8, 167, 185]}, {"55062799": [154, 147, 44]}, {"55062803": [116, 52, 1]}, {"55062807": [255, 21, 129]}, {"55062811": [2]}, {"55062816": [52, 12]}, {"55062819": [44, 3, 224]}, {"55062823": [8]}, {"55062828": [145, 174]}, {"55062831": [116, 52, 1]}, {"55062835": [255, 21, 193]}, {"55062839": [2]}, {"55062844": [52, 14]}, {"55062847": [44, 3, 224]}, {"55062851": [8, 167, 174]}, {"55062855": [154, 145, 207]}, {"55062859": [116, 52, 1]}, {"55062863": [255, 21, 225]}, {"55062867": [2]}, {"55062872": [52, 15]}, {"55062875": [44, 3, 224]}, {"55062879": [8, 167, 175]}, {"55062883": [154, 60, 8, 128, 64, 37, 8, 32, 28, 142, 9]}, {"55062895": [104, 173, 9]}, {"55062900": [142, 9]}, {"55062903": [108, 173, 9]}, {"55062907": [4, 150, 9]}, {"55062911": [112, 165, 9]}, {"55062915": [8, 150, 9]}, {"55062919": [156, 165, 9]}, {"55062923": [10, 3, 224]}, {"55062927": [8, 142, 14]}, {"55062931": [4, 39, 189, 255, 224, 175, 176]}, {"55062939": [16, 175, 177]}, {"55062943": [20, 175, 191]}, {"55062947": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 28, 142, 8]}, {"55062967": [4, 17]}, {"55062971": [5]}, {"55062976": [12, 16, 12, 143]}, {"55062984": [16]}, {"55062987": [3]}, {"55062992": [12, 16, 12, 162]}, {"55063000": [12, 16, 12, 130, 52, 4]}, {"55063008": [12, 16, 12, 130, 52, 4]}, {"55063015": [1, 12, 16, 12, 130, 52, 4]}, {"55063023": [2, 143, 176]}, {"55063027": [16, 143, 177]}, {"55063031": [20, 143, 191]}, {"55063035": [24, 39, 189]}, {"55063039": [32, 3, 224]}, {"55063043": [8]}, {"55063048": [2, 4, 64, 33, 145, 9]}, {"55063055": [108, 52, 1]}, {"55063059": [255, 17, 33]}, {"55063063": [7]}, {"55063068": [2, 9, 72, 33, 145, 41]}, {"55063075": [116, 52, 1]}, {"55063079": [44, 17, 33]}, {"55063083": [2]}, {"55063088": [161, 9]}, {"55063091": [105, 3, 224]}, {"55063095": [8]}, {"55063100": [39, 189, 255, 232, 175, 191]}, {"55063107": [16, 142, 40]}, {"55063112": [174, 8]}, {"55063115": [64, 142, 40]}, {"55063119": [4, 174, 8]}, {"55063123": [68, 150, 40]}, {"55063127": [8, 166, 8]}, {"55063131": [72, 162]}, {"55063134": [15, 51, 146, 8]}, {"55063139": [74, 52, 1]}, {"55063143": [255, 21, 1]}, {"55063147": [3]}, {"55063152": [12, 16, 12, 176]}, {"55063160": [143, 191]}, {"55063163": [16, 39, 189]}, {"55063167": [24, 3, 224]}, {"55063171": [8]}, {"55063176": [142, 8]}, {"55063179": [64, 174, 8]}, {"55063183": [104, 142, 8]}, {"55063187": [68, 174, 8]}, {"55063191": [108, 150, 8]}, {"55063195": [72, 166, 8]}, {"55063199": [112, 146, 8]}, {"55063203": [104, 52, 1]}, {"55063207": [255, 21, 1]}, {"55063211": [3]}, {"55063216": [52, 8]}, {"55063219": [1, 162, 8, 15, 51, 3, 224]}, {"55063227": [8]}, {"55063232": [39, 189, 255, 232, 175, 191]}, {"55063239": [16, 150, 8]}, {"55063243": [156, 49, 8]}, {"55063247": [64, 17]}, {"55063251": [5]}, {"55063256": [150, 8]}, {"55063259": [112, 49, 8, 255, 15, 53, 8]}, {"55063267": [48, 166, 8]}, {"55063271": [112, 146, 40]}, {"55063275": [1, 162, 8]}, {"55063279": [105, 150, 40]}, {"55063283": [2, 166, 8]}, {"55063287": [106, 142, 40]}, {"55063291": [4, 174, 8]}, {"55063295": [108, 12, 16, 12, 202, 52, 4]}, {"55063304": [12, 16, 12, 202, 52, 4]}, {"55063311": [1, 12, 16, 12, 202, 52, 4]}, {"55063319": [2, 143, 191]}, {"55063323": [16, 39, 189]}, {"55063327": [24, 3, 224]}, {"55063331": [8]}, {"55063336": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 51, 212, 145, 10]}, {"55063351": [108, 52, 1]}, {"55063355": [255, 17, 65]}, {"55063359": [5]}, {"55063364": [1, 42, 72, 33, 145, 41]}, {"55063372": [21, 32]}, {"55063375": [28]}, {"55063380": [60, 9, 128, 64, 37, 41, 51, 199, 37, 41]}, {"55063391": [1, 145, 42]}, {"55063396": [17, 64]}, {"55063399": [19]}, {"55063404": [2, 10, 88, 33, 145, 107]}, {"55063411": [116, 52, 1]}, {"55063415": [255, 17, 97, 255, 248]}, {"55063424": [146, 12]}, {"55063427": [108, 17, 138, 255, 245]}, {"55063436": [146, 12]}, {"55063439": [109, 17, 138, 255, 242]}, {"55063448": [146, 12]}, {"55063451": [110, 17, 138, 255, 239]}, {"55063460": [161, 11]}, {"55063463": [105, 161, 10]}, {"55063467": [108, 16]}, {"55063471": [4]}, {"55063476": [52, 9]}, {"55063479": [255, 161, 9]}, {"55063483": [105, 161, 9]}, {"55063487": [108, 3, 224]}, {"55063491": [8]}, {"55063496": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063509": [1, 1, 1, 1, 1]}, {"55063515": [1, 1, 1, 1, 1]}, {"55063521": [1]}, {"55063523": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063533": [51, 8, 33, 32, 15]}, {"55063539": [71, 21, 234]}, {"55063543": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063555": [164]}, {"55063557": [15, 122, 3, 20, 64]}, {"55063563": [5, 52, 2, 72, 48, 21, 226]}, {"55063571": [7]}, {"55063576": [36, 25]}, {"55063579": [3, 16]}, {"55063583": [4, 52, 2, 99, 17, 21, 226]}, {"55063591": [2]}, {"55063596": [36, 25]}, {"55063599": [3, 3, 224]}, {"55063603": [8]}, {"55063608": [141, 173, 138, 160, 52, 2, 128]}, {"55063616": [16, 77]}, {"55063619": [2]}, {"55063624": [16]}, {"55063627": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063643": [1, 16, 64]}, {"55063647": [2]}, {"55063652": [16]}, {"55063655": [2, 52, 2]}, {"55063659": [1, 161, 226, 28, 191, 3, 224]}, {"55063667": [8]}, {"55063673": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063687": [164]}, {"55063689": [15, 122, 3, 20, 64]}, {"55063695": [5, 52, 2, 72, 48, 21, 226]}, {"55063703": [7]}, {"55063708": [36, 25]}, {"55063711": [3, 16]}, {"55063715": [4, 52, 2, 99, 17, 21, 226]}, {"55063723": [2]}, {"55063728": [36, 25]}, {"55063731": [3, 3, 224]}, {"55063735": [8]}, {"55063740": [20, 64]}, {"55063743": [14]}, {"55063748": [52, 1]}, {"55063751": [24, 20, 129]}, {"55063755": [11, 60, 10, 128, 18, 37, 74, 165, 208, 129, 72]}, {"55063767": [166, 49, 8]}, {"55063771": [32, 17]}, {"55063775": [6, 52, 2]}, {"55063780": [129, 72]}, {"55063783": [123, 52, 1]}, {"55063787": [7, 17, 1]}, {"55063791": [2, 52, 2]}, {"55063795": [1, 52, 2]}, {"55063800": [3, 224]}, {"55063803": [8]}, {"55063808": [162, 37]}, {"55063811": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063823": [4, 142, 10]}, {"55063828": [17, 64]}, {"55063831": [11]}, {"55063837": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063849": [24, 194, 2, 23]}, {"55063855": [3, 49, 89]}, {"55063859": [255, 129, 234]}, {"55063864": [3, 42, 200, 37, 8, 16, 13, 67, 161, 249]}, {"55063876": [3, 224]}, {"55063879": [8]}] \ No newline at end of file +[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 196]}, {"11135032": [8, 16, 13, 47]}, {"11311804": [12, 16, 11, 205]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 190, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 101]}, {"11427312": [12, 16, 13, 14]}, {"11427320": [12, 16, 11, 200]}, {"11427332": [0, 0]}, {"11427335": [0]}, {"11431496": [12, 16, 11, 195, 1, 15, 192, 33]}, {"11559936": [130]}, {"11559938": [14, 222]}, {"11559948": [49, 248, 0, 2]}, {"11562028": [12, 16, 13, 65]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 30]}, {"11882076": [12, 16, 12, 251]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 68, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 75, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 82, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 61, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 140]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 18]}, {"12427480": [12, 16, 10, 106]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 110]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 12, 8, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 152]}, {"12491480": [12, 16, 10, 161]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 147]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 89]}, {"13709176": [52, 15]}, {"13709179": [0]}, {"14109028": [16, 0]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 128, 73, 14, 222]}, {"14149508": [52]}, {"14149510": [0, 1, 2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 208]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 224]}, {"14624335": [118]}, {"14720872": [128]}, {"14720874": [14, 222]}, {"14720884": [49, 248, 0, 4]}, {"14720944": [12, 16, 11, 216]}, {"14848904": [8, 16, 11, 247]}, {"14852164": [12, 16, 12, 0]}, {"14872723": [52]}, {"15327704": [52, 9, 64, 0]}, {"15327728": [52]}, {"15327730": [91, 8]}, {"15327744": [52]}, {"15327746": [0, 10]}, {"15327757": [169]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 236, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 48, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 76, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 104, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 220, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 108, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 140, 128, 64, 38, 132, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 172, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 39, 212, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 28, 128, 64, 40]}, {"55059600": [83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 3, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 44, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [2, 52, 2]}, {"55060003": [69, 52, 2]}, {"55060007": [70, 3, 224]}, {"55060011": [8]}, {"55060016": [144, 136]}, {"55060019": [162, 49, 8]}, {"55060023": [6, 17]}, {"55060027": [2, 52, 2]}, {"55060031": [55, 52, 2]}, {"55060035": [56, 3, 224]}, {"55060039": [8]}, {"55060044": [144, 136]}, {"55060047": [161, 49, 8]}, {"55060051": [32, 17]}, {"55060055": [2, 52, 2]}, {"55060059": [121, 52, 2]}, {"55060063": [122, 3, 224]}, {"55060067": [8]}, {"55060072": [144, 136]}, {"55060075": [161, 49, 8]}, {"55060079": [4, 17]}, {"55060083": [2, 52, 2]}, {"55060087": [119, 52, 2]}, {"55060091": [120, 3, 224]}, {"55060095": [8]}, {"55060100": [144, 136]}, {"55060103": [50, 17]}, {"55060107": [2, 52, 2]}, {"55060111": [192, 52, 2]}, {"55060115": [193, 3, 224]}, {"55060119": [8]}, {"55060124": [144, 136]}, {"55060127": [163, 49, 8]}, {"55060131": [3, 17]}, {"55060135": [2, 52, 2]}, {"55060139": [77, 52, 162]}, {"55060144": [3, 224]}, {"55060147": [8]}, {"55060152": [144, 136]}, {"55060155": [163, 49, 8]}, {"55060159": [24, 17]}, {"55060163": [2, 52, 2]}, {"55060167": [77, 52, 162]}, {"55060172": [3, 224]}, {"55060175": [8]}, {"55060180": [3, 224]}, {"55060183": [8]}, {"55060188": [52, 8]}, {"55060191": [1, 160, 136]}, {"55060195": [62, 3, 224]}, {"55060199": [8]}, {"55060204": [36, 136]}, {"55060207": [134, 36, 9, 255, 255, 37, 41]}, {"55060215": [1, 52, 1]}, {"55060219": [3]}, {"55060221": [41, 8, 42, 20, 32]}, {"55060227": [7]}, {"55060232": [1, 9, 80, 33, 145, 75]}, {"55060240": [52, 1]}, {"55060243": [255, 21, 97, 255, 247]}, {"55060252": [161, 69]}, {"55060256": [3, 224]}, {"55060259": [8]}, {"55060264": [36, 136]}, {"55060267": [168, 1, 6, 64, 33, 145, 9]}, {"55060276": [1, 37, 72, 37, 161, 9]}, {"55060284": [3, 224]}, {"55060287": [8]}, {"55060292": [36, 136]}, {"55060295": [188, 1, 5, 64, 33, 129, 9]}, {"55060304": [5, 33]}, {"55060307": [2]}, {"55060312": [52, 9]}, {"55060316": [37, 41]}, {"55060319": [1, 161, 9]}, {"55060324": [3, 224]}, {"55060327": [8]}, {"55060332": [52, 8]}, {"55060335": [1, 160, 136]}, {"55060339": [61, 52, 8]}, {"55060343": [20, 160, 136]}, {"55060347": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [50, 160, 136]}, {"55060375": [58, 52, 8]}, {"55060379": [48, 164, 136, 19, 244, 160, 136]}, {"55060387": [51, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [2, 160, 136]}, {"55060403": [50, 52, 8]}, {"55060407": [1, 160, 136]}, {"55060411": [58, 160, 136]}, {"55060415": [60, 52, 8]}, {"55060419": [96, 164, 136, 19, 244, 160, 136]}, {"55060427": [51, 3, 224]}, {"55060431": [8]}, {"55060436": [144, 136]}, {"55060439": [124, 52, 1]}, {"55060443": [255, 17, 1]}, {"55060447": [6, 52, 2]}, {"55060451": [107, 144, 136]}, {"55060455": [148, 45, 8]}, {"55060459": [6, 17]}, {"55060463": [2, 52, 2]}, {"55060467": [106, 52, 2]}, {"55060471": [3, 3, 224]}, {"55060475": [8]}, {"55060480": [144, 136]}, {"55060483": [123, 52, 1]}, {"55060487": [255, 17, 1]}, {"55060491": [2, 52, 162]}, {"55060496": [52, 2]}, {"55060499": [12, 3, 224]}, {"55060503": [8]}, {"55060508": [52, 8]}, {"55060511": [7, 160, 136]}, {"55060515": [123, 3, 224]}, {"55060519": [8]}, {"55060524": [52, 8]}, {"55060527": [1]}, {"55060529": [168, 64, 4, 140, 137]}, {"55060535": [164, 1, 40, 72, 37, 172, 137]}, {"55060543": [164, 3, 224]}, {"55060547": [8]}, {"55060552": [48, 132]}, {"55060555": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060567": [140, 16, 129]}, {"55060571": [22, 145, 2]}, {"55060575": [117, 52, 1]}, {"55060579": [141, 16, 129]}, {"55060583": [19, 145, 2]}, {"55060587": [117, 16, 128]}, {"55060591": [17, 145, 2]}, {"55060595": [116, 52, 1]}, {"55060599": [138, 16, 129]}, {"55060603": [14, 145, 2]}, {"55060607": [116, 52, 1]}, {"55060611": [139, 16, 129]}, {"55060615": [11, 145, 2]}, {"55060619": [116, 52, 1]}, {"55060623": [88, 16, 129]}, {"55060627": [8, 52, 2]}, {"55060632": [52, 1]}, {"55060635": [120, 16, 129]}, {"55060639": [5, 52, 2]}, {"55060644": [52, 1]}, {"55060647": [121, 16, 129]}, {"55060651": [2, 52, 2]}, {"55060656": [52, 2]}, {"55060659": [255, 3, 224]}, {"55060663": [8]}, {"55060668": [39, 189, 255, 224, 175, 191]}, {"55060675": [16, 175, 176]}, {"55060679": [20, 12, 16, 11, 11]}, {"55060688": [4, 65]}, {"55060691": [2]}, {"55060696": [52, 2]}, {"55060699": [91]}, {"55060701": [64, 32, 33, 12, 16, 11, 114]}, {"55060712": [16, 96]}, {"55060715": [22, 175, 163]}, {"55060719": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060728": [133, 9]}, {"55060731": [2, 17, 32]}, {"55060735": [3, 52, 10]}, {"55060739": [1, 16]}, {"55060743": [12, 165, 10]}, {"55060748": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060759": [6, 144, 102]}, {"55060763": [7, 140, 105]}, {"55060767": [8, 1, 32, 248, 9]}, {"55060776": [143, 163]}, {"55060779": [28, 144, 101]}, {"55060783": [1, 12, 1, 191, 115, 2, 32, 32, 33, 143, 163]}, {"55060795": [28, 144, 101]}, {"55060799": [3, 16]}, {"55060803": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060815": [6]}, {"55060817": [74]}, {"55060819": [24]}, {"55060822": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060832": [60, 8, 128, 64, 37, 8, 32]}, {"55060840": [133, 9]}, {"55060843": [2, 17, 32]}, {"55060847": [3, 52, 10]}, {"55060851": [1, 165, 10]}, {"55060856": [52, 5]}, {"55060859": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060871": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060882": [48, 33, 143, 191]}, {"55060887": [16, 143, 176]}, {"55060891": [20, 39, 189]}, {"55060895": [32, 3, 224]}, {"55060899": [8]}, {"55060904": [143, 166]}, {"55060907": [48, 132, 197]}, {"55060911": [4, 8, 16, 10, 114]}, {"55060920": [143, 185]}, {"55060923": [44, 135, 37]}, {"55060927": [4, 8, 16, 10, 114]}, {"55060936": [60, 10, 128, 64, 37, 74, 32, 8, 141, 75]}, {"55060947": [12, 17, 96]}, {"55060951": [2]}, {"55060956": [149, 69]}, {"55060959": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060972": [60, 9, 128, 64, 37, 41, 32, 24, 129, 42]}, {"55060983": [3, 5, 64]}, {"55060987": [11, 1, 42, 72, 32, 129, 40]}, {"55060996": [52, 10]}, {"55060999": [127, 21, 10]}, {"55061003": [6]}, {"55061008": [60, 10, 128, 18, 37, 74, 165, 208, 133, 72]}, {"55061019": [144, 33, 8]}, {"55061023": [1, 165, 72]}, {"55061027": [144, 161, 32]}, {"55061032": [3, 224]}, {"55061035": [8]}, {"55061040": [60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061051": [12, 17, 32]}, {"55061055": [2]}, {"55061060": [129, 3]}, {"55061063": [2]}, {"55061065": [3, 15, 195]}, {"55061069": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061083": [8]}, {"55061088": [144, 69]}, {"55061091": [3, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061103": [12, 17, 32]}, {"55061107": [2]}, {"55061112": [145, 5]}, {"55061115": [3, 3, 224]}, {"55061119": [8]}, {"55061124": [143, 162]}, {"55061127": [36, 144, 69]}, {"55061132": [60, 8, 128, 64, 37, 8, 32]}, {"55061140": [133, 9]}, {"55061143": [2, 17, 32]}, {"55061147": [4, 52, 10]}, {"55061151": [1, 165, 10]}, {"55061156": [16]}, {"55061159": [24, 52, 5]}, {"55061163": [65, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061175": [12, 17, 32]}, {"55061179": [19]}, {"55061184": [145, 5]}, {"55061187": [1, 175, 164]}, {"55061192": [175, 165]}, {"55061195": [4, 175, 166]}, {"55061199": [8, 39, 189, 255, 232, 175, 191]}, {"55061207": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061219": [6, 145, 6]}, {"55061223": [7, 141, 9]}, {"55061227": [8, 1, 32, 248, 9]}, {"55061236": [143, 191]}, {"55061239": [16, 39, 189]}, {"55061243": [24, 143, 164]}, {"55061248": [143, 165]}, {"55061251": [4, 143, 166]}, {"55061255": [8, 3, 224]}, {"55061259": [8]}, {"55061264": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061275": [16, 175, 163]}, {"55061279": [20, 175, 191]}, {"55061283": [24, 12, 16, 10, 209]}, {"55061292": [143, 162]}, {"55061295": [16, 143, 163]}, {"55061299": [20, 143, 191]}, {"55061303": [24, 39, 189]}, {"55061307": [32, 3, 224]}, {"55061311": [8]}, {"55061316": [39, 189, 255, 232, 175, 191]}, {"55061323": [16, 60, 8, 128, 64, 37, 8, 32, 8, 173]}, {"55061336": [173]}, {"55061339": [4, 173]}, {"55061343": [8, 173]}, {"55061347": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061363": [42]}, {"55061369": [9, 15, 195, 1, 33, 32, 38]}, {"55061377": [129, 32, 35, 141, 5, 4, 40, 12, 16, 11, 11]}, {"55061392": [4, 64]}, {"55061395": [34]}, {"55061400": [52, 68]}, {"55061404": [12, 16, 11, 114]}, {"55061412": [16, 96]}, {"55061415": [12]}, {"55061420": [60, 8, 128, 64, 37, 8, 32, 8, 140, 105]}, {"55061432": [173, 9]}, {"55061436": [140, 105]}, {"55061439": [4, 173, 9]}, {"55061443": [4, 140, 105]}, {"55061447": [8, 173, 9]}, {"55061451": [8, 52, 9]}, {"55061455": [1, 173, 9]}, {"55061459": [12, 144, 98]}, {"55061464": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061480": [52, 1]}, {"55061483": [10, 21, 65]}, {"55061487": [6]}, {"55061492": [149, 42]}, {"55061495": [28, 49, 74, 240, 31]}, {"55061501": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061511": [28, 129, 9, 4, 36, 5, 33]}, {"55061519": [2]}, {"55061525": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061535": [16, 39, 189]}, {"55061539": [24, 3, 224]}, {"55061543": [8]}, {"55061548": [39, 189, 255, 232, 175, 191]}, {"55061555": [16, 12, 16, 11, 25]}, {"55061564": [36, 1, 255, 255, 16, 65]}, {"55061571": [4]}, {"55061576": [52, 68]}, {"55061580": [12, 16, 11, 77]}, {"55061588": [143, 191]}, {"55061591": [16, 39, 189]}, {"55061595": [24, 3, 224]}, {"55061599": [8]}, {"55061604": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061615": [164, 52, 8]}, {"55061620": [52, 137]}, {"55061624": [148, 170]}, {"55061628": [52, 1, 1, 156, 21, 65]}, {"55061635": [8]}, {"55061640": [52, 8]}, {"55061643": [3, 148, 171]}, {"55061647": [28, 49, 105]}, {"55061651": [255, 49, 98, 31]}, {"55061657": [2, 18, 2, 16]}, {"55061663": [31]}, {"55061668": [52, 1]}, {"55061671": [10, 21, 65]}, {"55061675": [14]}, {"55061680": [148, 171]}, {"55061683": [28, 52, 1]}, {"55061687": [16, 20, 65]}, {"55061691": [8]}, {"55061696": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061707": [4]}, {"55061712": [36, 2, 255, 255, 16]}, {"55061719": [21]}, {"55061724": [52, 8]}, {"55061727": [1, 49, 105]}, {"55061731": [31, 52, 1]}, {"55061735": [21, 21, 65]}, {"55061739": [12]}, {"55061744": [52, 1]}, {"55061747": [62, 16, 129]}, {"55061751": [7]}, {"55061756": [52, 1]}, {"55061759": [66, 16, 129]}, {"55061763": [4]}, {"55061768": [36, 2, 255, 255, 16]}, {"55061775": [7]}, {"55061780": [52, 8]}, {"55061783": [2, 144, 169, 1, 65]}, {"55061789": [2, 18]}, {"55061793": [72, 16, 37]}, {"55061797": [2, 18]}, {"55061801": [73, 16, 37, 3, 224]}, {"55061807": [8]}, {"55061812": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061824": [129, 9]}, {"55061828": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061851": [4, 141, 9]}, {"55061856": [17, 32]}, {"55061859": [23]}, {"55061865": [9, 82, 2, 49, 75, 248]}, {"55061873": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061896": [49, 34]}, {"55061899": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061920": [60, 12, 128, 64, 37, 140, 28]}, {"55061928": [129, 140]}, {"55061932": [17, 108]}, {"55061935": [4, 165, 32]}, {"55061939": [2, 161, 43]}, {"55061943": [2, 161, 34]}, {"55061947": [3, 173, 36]}, {"55061951": [4, 3, 224]}, {"55061955": [8]}, {"55061960": [39, 189, 255, 224, 175, 176]}, {"55061967": [16, 175, 177]}, {"55061971": [20, 175, 191]}, {"55061975": [24, 52, 130]}, {"55061980": [52, 80]}, {"55061984": [38, 8, 255, 128, 5]}, {"55061991": [18]}, {"55061996": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55062007": [16, 1, 9]}, {"55062011": [24]}, {"55062014": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55062032": [142, 40]}, {"55062035": [12, 1]}, {"55062038": [248, 9]}, {"55062044": [20, 80, 255, 239]}, {"55062052": [54, 35]}, {"55062056": [16]}, {"55062059": [2]}, {"55062064": [52, 3]}, {"55062068": [143, 176]}, {"55062071": [16, 143, 177]}, {"55062075": [20, 143, 191]}, {"55062079": [24, 39, 189]}, {"55062083": [32, 3, 224]}, {"55062087": [8]}, {"55062092": [140, 136, 29, 44, 52, 9]}, {"55062099": [1]}, {"55062101": [9, 78]}, {"55062104": [1, 9, 16, 36, 16, 64]}, {"55062111": [36]}, {"55062116": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062131": [164, 52, 1]}, {"55062135": [61, 17, 129]}, {"55062139": [10]}, {"55062145": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062155": [25]}, {"55062160": [52, 13]}, {"55062163": [1, 161, 141, 29, 40, 37, 74]}, {"55062171": [3, 16]}, {"55062175": [9]}, {"55062180": [52, 12]}, {"55062183": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062199": [14]}, {"55062204": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062240": [60, 9, 128, 64, 37, 41, 32, 24, 161, 40]}, {"55062252": [52, 2]}, {"55062256": [3, 224]}, {"55062259": [8]}, {"55062264": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062276": [16]}, {"55062279": [34]}, {"55062284": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062296": [16]}, {"55062299": [29]}, {"55062304": [52, 2]}, {"55062307": [255, 32, 232, 255, 166, 33, 8]}, {"55062315": [97, 16]}, {"55062319": [24]}, {"55062324": [52, 8]}, {"55062327": [100, 16]}, {"55062331": [21]}, {"55062336": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062351": [1, 160, 40, 14, 222, 52, 8]}, {"55062359": [104, 16]}, {"55062363": [13]}, {"55062368": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062383": [4, 160, 40, 14, 222, 52, 8]}, {"55062391": [106, 16]}, {"55062395": [5]}, {"55062400": [52, 5]}, {"55062403": [3, 52, 8]}, {"55062407": [107, 16]}, {"55062411": [1]}, {"55062416": [60, 9, 128, 64, 37, 41, 32, 24, 60, 10, 128, 64, 37, 74, 32, 27, 129, 44]}, {"55062436": [17, 136]}, {"55062439": [11, 33, 41]}, {"55062443": [1, 21, 42, 255, 252]}, {"55062452": [60, 9, 128, 64, 37, 41, 32, 23, 33, 41]}, {"55062463": [1, 17, 42]}, {"55062467": [4, 129, 44]}, {"55062472": [21, 128, 255, 252]}, {"55062480": [161, 40]}, {"55062484": [3, 224]}, {"55062487": [8]}, {"55062493": [96, 120, 33, 129, 236, 14, 223, 49, 142]}, {"55062503": [128, 17, 192]}, {"55062507": [3, 52, 3]}, {"55062511": [5, 3, 224]}, {"55062515": [8, 52, 2]}, {"55062519": [2, 3, 224]}, {"55062523": [8]}, {"55062525": [96, 16, 33, 133, 194]}, {"55062531": [164, 60, 8, 128, 18, 37, 8, 165, 208, 129, 9, 14, 223, 53, 41]}, {"55062547": [128, 161, 9, 14, 223, 3, 224]}, {"55062555": [8]}, {"55062560": [175, 164]}, {"55062563": [104, 175, 165]}, {"55062567": [108, 175, 166]}, {"55062571": [112, 175, 167]}, {"55062575": [116, 39, 189, 255, 232, 175, 163]}, {"55062583": [16, 175, 191]}, {"55062587": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062603": [32, 21]}, {"55062607": [31]}, {"55062612": [60, 9, 128, 64, 37, 41, 32, 27, 52, 10]}, {"55062623": [255, 161, 42]}, {"55062628": [60, 9, 128, 64, 37, 41, 32, 24, 36, 10, 255, 255, 52, 12]}, {"55062643": [3, 33, 74]}, {"55062647": [1, 17, 76]}, {"55062651": [20, 1, 42, 88, 32, 129, 104]}, {"55062660": [17]}, {"55062662": [255, 251]}, {"55062668": [60, 9, 128, 64, 37, 41, 32, 27, 161, 42]}, {"55062680": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062691": [1, 165, 42]}, {"55062696": [60, 9, 128, 65, 52, 10]}, {"55062703": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 209]}, {"55062732": [143, 163]}, {"55062735": [16, 143, 191]}, {"55062739": [20, 39, 189]}, {"55062743": [24, 143, 164]}, {"55062747": [104, 143, 165]}, {"55062751": [108, 143, 166]}, {"55062755": [112, 143, 167]}, {"55062759": [116, 132, 110, 19, 196, 3, 224]}, {"55062767": [8]}, {"55062772": [147, 25]}, {"55062775": [116, 52, 1]}, {"55062779": [255, 23, 33]}, {"55062783": [2]}, {"55062788": [52, 25]}, {"55062791": [44, 3, 224]}, {"55062795": [8, 167, 185]}, {"55062799": [154, 147, 44]}, {"55062803": [116, 52, 1]}, {"55062807": [255, 21, 129]}, {"55062811": [2]}, {"55062816": [52, 12]}, {"55062819": [44, 3, 224]}, {"55062823": [8]}, {"55062828": [145, 174]}, {"55062831": [116, 52, 1]}, {"55062835": [255, 21, 193]}, {"55062839": [2]}, {"55062844": [52, 14]}, {"55062847": [44, 3, 224]}, {"55062851": [8, 167, 174]}, {"55062855": [154, 145, 207]}, {"55062859": [116, 52, 1]}, {"55062863": [255, 21, 225]}, {"55062867": [2]}, {"55062872": [52, 15]}, {"55062875": [44, 3, 224]}, {"55062879": [8, 167, 175]}, {"55062883": [154, 60, 8, 128, 64, 37, 8, 32, 28, 142, 9]}, {"55062895": [104, 173, 9]}, {"55062900": [142, 9]}, {"55062903": [108, 173, 9]}, {"55062907": [4, 150, 9]}, {"55062911": [112, 165, 9]}, {"55062915": [8, 150, 9]}, {"55062919": [156, 165, 9]}, {"55062923": [10, 3, 224]}, {"55062927": [8, 142, 14]}, {"55062931": [4, 39, 189, 255, 224, 175, 176]}, {"55062939": [16, 175, 177]}, {"55062943": [20, 175, 191]}, {"55062947": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 28, 142, 8]}, {"55062967": [4, 17]}, {"55062971": [5]}, {"55062976": [12, 16, 12, 143]}, {"55062984": [16]}, {"55062987": [3]}, {"55062992": [12, 16, 12, 162]}, {"55063000": [12, 16, 12, 130, 52, 4]}, {"55063008": [12, 16, 12, 130, 52, 4]}, {"55063015": [1, 12, 16, 12, 130, 52, 4]}, {"55063023": [2, 143, 176]}, {"55063027": [16, 143, 177]}, {"55063031": [20, 143, 191]}, {"55063035": [24, 39, 189]}, {"55063039": [32, 3, 224]}, {"55063043": [8]}, {"55063048": [2, 4, 64, 33, 145, 9]}, {"55063055": [108, 52, 1]}, {"55063059": [255, 17, 33]}, {"55063063": [7]}, {"55063068": [2, 9, 72, 33, 145, 41]}, {"55063075": [116, 52, 1]}, {"55063079": [44, 17, 33]}, {"55063083": [2]}, {"55063088": [161, 9]}, {"55063091": [105, 3, 224]}, {"55063095": [8]}, {"55063100": [39, 189, 255, 232, 175, 191]}, {"55063107": [16, 142, 40]}, {"55063112": [174, 8]}, {"55063115": [64, 142, 40]}, {"55063119": [4, 174, 8]}, {"55063123": [68, 150, 40]}, {"55063127": [8, 166, 8]}, {"55063131": [72, 162]}, {"55063134": [15, 51, 146, 8]}, {"55063139": [74, 52, 1]}, {"55063143": [255, 21, 1]}, {"55063147": [3]}, {"55063152": [12, 16, 12, 176]}, {"55063160": [143, 191]}, {"55063163": [16, 39, 189]}, {"55063167": [24, 3, 224]}, {"55063171": [8]}, {"55063176": [142, 8]}, {"55063179": [64, 174, 8]}, {"55063183": [104, 142, 8]}, {"55063187": [68, 174, 8]}, {"55063191": [108, 150, 8]}, {"55063195": [72, 166, 8]}, {"55063199": [112, 146, 8]}, {"55063203": [104, 52, 1]}, {"55063207": [255, 21, 1]}, {"55063211": [3]}, {"55063216": [52, 8]}, {"55063219": [1, 162, 8, 15, 51, 3, 224]}, {"55063227": [8]}, {"55063232": [39, 189, 255, 232, 175, 191]}, {"55063239": [16, 150, 8]}, {"55063243": [156, 49, 8]}, {"55063247": [64, 17]}, {"55063251": [5]}, {"55063256": [150, 8]}, {"55063259": [112, 49, 8, 255, 15, 53, 8]}, {"55063267": [48, 166, 8]}, {"55063271": [112, 146, 40]}, {"55063275": [1, 162, 8]}, {"55063279": [105, 150, 40]}, {"55063283": [2, 166, 8]}, {"55063287": [106, 142, 40]}, {"55063291": [4, 174, 8]}, {"55063295": [108, 12, 16, 12, 202, 52, 4]}, {"55063304": [12, 16, 12, 202, 52, 4]}, {"55063311": [1, 12, 16, 12, 202, 52, 4]}, {"55063319": [2, 143, 191]}, {"55063323": [16, 39, 189]}, {"55063327": [24, 3, 224]}, {"55063331": [8]}, {"55063336": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 51, 212, 145, 10]}, {"55063351": [108, 52, 1]}, {"55063355": [255, 17, 65]}, {"55063359": [5]}, {"55063364": [1, 42, 72, 33, 145, 41]}, {"55063372": [21, 32]}, {"55063375": [28]}, {"55063380": [60, 9, 128, 64, 37, 41, 51, 199, 37, 41]}, {"55063391": [1, 145, 42]}, {"55063396": [17, 64]}, {"55063399": [19]}, {"55063404": [2, 10, 88, 33, 145, 107]}, {"55063411": [116, 52, 1]}, {"55063415": [255, 17, 97, 255, 248]}, {"55063424": [146, 12]}, {"55063427": [108, 17, 138, 255, 245]}, {"55063436": [146, 12]}, {"55063439": [109, 17, 138, 255, 242]}, {"55063448": [146, 12]}, {"55063451": [110, 17, 138, 255, 239]}, {"55063460": [161, 11]}, {"55063463": [105, 161, 10]}, {"55063467": [108, 16]}, {"55063471": [4]}, {"55063476": [52, 9]}, {"55063479": [255, 161, 9]}, {"55063483": [105, 161, 9]}, {"55063487": [108, 3, 224]}, {"55063491": [8]}, {"55063496": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063509": [1, 1, 1, 1, 1]}, {"55063515": [1, 1, 1, 1, 1]}, {"55063521": [1]}, {"55063523": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063533": [51, 8, 33, 32, 15]}, {"55063539": [71, 21, 234]}, {"55063543": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063555": [164]}, {"55063557": [15, 122, 3, 20, 64]}, {"55063563": [5, 52, 2, 72, 48, 21, 226]}, {"55063571": [7]}, {"55063576": [36, 25]}, {"55063579": [3, 16]}, {"55063583": [4, 52, 2, 99, 17, 21, 226]}, {"55063591": [2]}, {"55063596": [36, 25]}, {"55063599": [3, 3, 224]}, {"55063603": [8]}, {"55063608": [141, 173, 138, 160, 52, 2, 128]}, {"55063616": [16, 77]}, {"55063619": [2]}, {"55063624": [16]}, {"55063627": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063643": [1, 16, 64]}, {"55063647": [2]}, {"55063652": [16]}, {"55063655": [2, 52, 2]}, {"55063659": [1, 161, 226, 28, 191, 3, 224]}, {"55063667": [8]}, {"55063673": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063687": [164]}, {"55063689": [15, 122, 3, 20, 64]}, {"55063695": [5, 52, 2, 72, 48, 21, 226]}, {"55063703": [7]}, {"55063708": [36, 25]}, {"55063711": [3, 16]}, {"55063715": [4, 52, 2, 99, 17, 21, 226]}, {"55063723": [2]}, {"55063728": [36, 25]}, {"55063731": [3, 3, 224]}, {"55063735": [8]}, {"55063740": [52, 1]}, {"55063743": [24, 20, 129]}, {"55063747": [14]}, {"55063752": [20, 64]}, {"55063755": [12]}, {"55063760": [60, 10, 128, 18, 37, 74, 165, 208, 129, 72]}, {"55063771": [166, 49, 8]}, {"55063775": [32, 17]}, {"55063779": [6, 52, 2]}, {"55063784": [129, 72]}, {"55063787": [123, 52, 1]}, {"55063791": [7, 17, 1]}, {"55063795": [2, 52, 2]}, {"55063799": [1, 52, 2]}, {"55063804": [3, 224]}, {"55063807": [8]}, {"55063812": [162, 37]}, {"55063815": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063827": [4, 142, 10]}, {"55063832": [17, 64]}, {"55063835": [11]}, {"55063841": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063853": [24, 194, 2, 23]}, {"55063859": [3, 49, 89]}, {"55063863": [255, 129, 234]}, {"55063868": [3, 42, 200, 37, 8, 16, 13, 68, 161, 249]}, {"55063880": [3, 224]}, {"55063883": [8]}] \ No newline at end of file diff --git a/version.py b/version.py index b4944936b..bbd3426ea 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.34 f.LUM' +__version__ = '2.15.35 f.LUM' From 835aa1108d964ce2dc346421e430566c1a738d7d Mon Sep 17 00:00:00 2001 From: Unknown Date: Tue, 21 Aug 2018 02:02:03 -0400 Subject: [PATCH 329/755] Fix Epona not checking for the OoT (Issue #55) --- ASM/src/song_fix.asm | 9 ++++++--- data/base2current.json | 2 +- version.py | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/ASM/src/song_fix.asm b/ASM/src/song_fix.asm index 530aa24dd..6d7651657 100644 --- a/ASM/src/song_fix.asm +++ b/ASM/src/song_fix.asm @@ -96,10 +96,13 @@ Check_Has_Epona_Song: li v0, 0 ; Check if has Ocarina - lb t0, 0x7B(t2) - li at, 0x07 - beq t0, at, @@return ; Return True if song & ocarina li v0, 1 + lb t0, 0x7B(t2) + li t1, 0x07 ; Fairy ocarina + beq t0, t1, @@return + li t2, 0x08 ; Ocarina of Time + beq t0, t2, @@return ; Return True if song & (fairy or oot) ocarina + nop li v0, 0 ; Else False @@return: diff --git a/data/base2current.json b/data/base2current.json index 29d88bdf9..64f2aa142 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -1 +1 @@ -[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 196]}, {"11135032": [8, 16, 13, 47]}, {"11311804": [12, 16, 11, 205]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 190, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 101]}, {"11427312": [12, 16, 13, 14]}, {"11427320": [12, 16, 11, 200]}, {"11427332": [0, 0]}, {"11427335": [0]}, {"11431496": [12, 16, 11, 195, 1, 15, 192, 33]}, {"11559936": [130]}, {"11559938": [14, 222]}, {"11559948": [49, 248, 0, 2]}, {"11562028": [12, 16, 13, 65]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 30]}, {"11882076": [12, 16, 12, 251]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 68, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 75, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 82, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 61, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 140]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 18]}, {"12427480": [12, 16, 10, 106]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 110]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 12, 8, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 152]}, {"12491480": [12, 16, 10, 161]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 147]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 89]}, {"13709176": [52, 15]}, {"13709179": [0]}, {"14109028": [16, 0]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 128, 73, 14, 222]}, {"14149508": [52]}, {"14149510": [0, 1, 2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 208]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 224]}, {"14624335": [118]}, {"14720872": [128]}, {"14720874": [14, 222]}, {"14720884": [49, 248, 0, 4]}, {"14720944": [12, 16, 11, 216]}, {"14848904": [8, 16, 11, 247]}, {"14852164": [12, 16, 12, 0]}, {"14872723": [52]}, {"15327704": [52, 9, 64, 0]}, {"15327728": [52]}, {"15327730": [91, 8]}, {"15327744": [52]}, {"15327746": [0, 10]}, {"15327757": [169]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 236, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 48, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 76, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 104, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 220, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 108, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 140, 128, 64, 38, 132, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 172, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 39, 212, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 28, 128, 64, 40]}, {"55059600": [83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 3, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 44, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [2, 52, 2]}, {"55060003": [69, 52, 2]}, {"55060007": [70, 3, 224]}, {"55060011": [8]}, {"55060016": [144, 136]}, {"55060019": [162, 49, 8]}, {"55060023": [6, 17]}, {"55060027": [2, 52, 2]}, {"55060031": [55, 52, 2]}, {"55060035": [56, 3, 224]}, {"55060039": [8]}, {"55060044": [144, 136]}, {"55060047": [161, 49, 8]}, {"55060051": [32, 17]}, {"55060055": [2, 52, 2]}, {"55060059": [121, 52, 2]}, {"55060063": [122, 3, 224]}, {"55060067": [8]}, {"55060072": [144, 136]}, {"55060075": [161, 49, 8]}, {"55060079": [4, 17]}, {"55060083": [2, 52, 2]}, {"55060087": [119, 52, 2]}, {"55060091": [120, 3, 224]}, {"55060095": [8]}, {"55060100": [144, 136]}, {"55060103": [50, 17]}, {"55060107": [2, 52, 2]}, {"55060111": [192, 52, 2]}, {"55060115": [193, 3, 224]}, {"55060119": [8]}, {"55060124": [144, 136]}, {"55060127": [163, 49, 8]}, {"55060131": [3, 17]}, {"55060135": [2, 52, 2]}, {"55060139": [77, 52, 162]}, {"55060144": [3, 224]}, {"55060147": [8]}, {"55060152": [144, 136]}, {"55060155": [163, 49, 8]}, {"55060159": [24, 17]}, {"55060163": [2, 52, 2]}, {"55060167": [77, 52, 162]}, {"55060172": [3, 224]}, {"55060175": [8]}, {"55060180": [3, 224]}, {"55060183": [8]}, {"55060188": [52, 8]}, {"55060191": [1, 160, 136]}, {"55060195": [62, 3, 224]}, {"55060199": [8]}, {"55060204": [36, 136]}, {"55060207": [134, 36, 9, 255, 255, 37, 41]}, {"55060215": [1, 52, 1]}, {"55060219": [3]}, {"55060221": [41, 8, 42, 20, 32]}, {"55060227": [7]}, {"55060232": [1, 9, 80, 33, 145, 75]}, {"55060240": [52, 1]}, {"55060243": [255, 21, 97, 255, 247]}, {"55060252": [161, 69]}, {"55060256": [3, 224]}, {"55060259": [8]}, {"55060264": [36, 136]}, {"55060267": [168, 1, 6, 64, 33, 145, 9]}, {"55060276": [1, 37, 72, 37, 161, 9]}, {"55060284": [3, 224]}, {"55060287": [8]}, {"55060292": [36, 136]}, {"55060295": [188, 1, 5, 64, 33, 129, 9]}, {"55060304": [5, 33]}, {"55060307": [2]}, {"55060312": [52, 9]}, {"55060316": [37, 41]}, {"55060319": [1, 161, 9]}, {"55060324": [3, 224]}, {"55060327": [8]}, {"55060332": [52, 8]}, {"55060335": [1, 160, 136]}, {"55060339": [61, 52, 8]}, {"55060343": [20, 160, 136]}, {"55060347": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [50, 160, 136]}, {"55060375": [58, 52, 8]}, {"55060379": [48, 164, 136, 19, 244, 160, 136]}, {"55060387": [51, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [2, 160, 136]}, {"55060403": [50, 52, 8]}, {"55060407": [1, 160, 136]}, {"55060411": [58, 160, 136]}, {"55060415": [60, 52, 8]}, {"55060419": [96, 164, 136, 19, 244, 160, 136]}, {"55060427": [51, 3, 224]}, {"55060431": [8]}, {"55060436": [144, 136]}, {"55060439": [124, 52, 1]}, {"55060443": [255, 17, 1]}, {"55060447": [6, 52, 2]}, {"55060451": [107, 144, 136]}, {"55060455": [148, 45, 8]}, {"55060459": [6, 17]}, {"55060463": [2, 52, 2]}, {"55060467": [106, 52, 2]}, {"55060471": [3, 3, 224]}, {"55060475": [8]}, {"55060480": [144, 136]}, {"55060483": [123, 52, 1]}, {"55060487": [255, 17, 1]}, {"55060491": [2, 52, 162]}, {"55060496": [52, 2]}, {"55060499": [12, 3, 224]}, {"55060503": [8]}, {"55060508": [52, 8]}, {"55060511": [7, 160, 136]}, {"55060515": [123, 3, 224]}, {"55060519": [8]}, {"55060524": [52, 8]}, {"55060527": [1]}, {"55060529": [168, 64, 4, 140, 137]}, {"55060535": [164, 1, 40, 72, 37, 172, 137]}, {"55060543": [164, 3, 224]}, {"55060547": [8]}, {"55060552": [48, 132]}, {"55060555": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060567": [140, 16, 129]}, {"55060571": [22, 145, 2]}, {"55060575": [117, 52, 1]}, {"55060579": [141, 16, 129]}, {"55060583": [19, 145, 2]}, {"55060587": [117, 16, 128]}, {"55060591": [17, 145, 2]}, {"55060595": [116, 52, 1]}, {"55060599": [138, 16, 129]}, {"55060603": [14, 145, 2]}, {"55060607": [116, 52, 1]}, {"55060611": [139, 16, 129]}, {"55060615": [11, 145, 2]}, {"55060619": [116, 52, 1]}, {"55060623": [88, 16, 129]}, {"55060627": [8, 52, 2]}, {"55060632": [52, 1]}, {"55060635": [120, 16, 129]}, {"55060639": [5, 52, 2]}, {"55060644": [52, 1]}, {"55060647": [121, 16, 129]}, {"55060651": [2, 52, 2]}, {"55060656": [52, 2]}, {"55060659": [255, 3, 224]}, {"55060663": [8]}, {"55060668": [39, 189, 255, 224, 175, 191]}, {"55060675": [16, 175, 176]}, {"55060679": [20, 12, 16, 11, 11]}, {"55060688": [4, 65]}, {"55060691": [2]}, {"55060696": [52, 2]}, {"55060699": [91]}, {"55060701": [64, 32, 33, 12, 16, 11, 114]}, {"55060712": [16, 96]}, {"55060715": [22, 175, 163]}, {"55060719": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060728": [133, 9]}, {"55060731": [2, 17, 32]}, {"55060735": [3, 52, 10]}, {"55060739": [1, 16]}, {"55060743": [12, 165, 10]}, {"55060748": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060759": [6, 144, 102]}, {"55060763": [7, 140, 105]}, {"55060767": [8, 1, 32, 248, 9]}, {"55060776": [143, 163]}, {"55060779": [28, 144, 101]}, {"55060783": [1, 12, 1, 191, 115, 2, 32, 32, 33, 143, 163]}, {"55060795": [28, 144, 101]}, {"55060799": [3, 16]}, {"55060803": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060815": [6]}, {"55060817": [74]}, {"55060819": [24]}, {"55060822": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060832": [60, 8, 128, 64, 37, 8, 32]}, {"55060840": [133, 9]}, {"55060843": [2, 17, 32]}, {"55060847": [3, 52, 10]}, {"55060851": [1, 165, 10]}, {"55060856": [52, 5]}, {"55060859": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060871": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060882": [48, 33, 143, 191]}, {"55060887": [16, 143, 176]}, {"55060891": [20, 39, 189]}, {"55060895": [32, 3, 224]}, {"55060899": [8]}, {"55060904": [143, 166]}, {"55060907": [48, 132, 197]}, {"55060911": [4, 8, 16, 10, 114]}, {"55060920": [143, 185]}, {"55060923": [44, 135, 37]}, {"55060927": [4, 8, 16, 10, 114]}, {"55060936": [60, 10, 128, 64, 37, 74, 32, 8, 141, 75]}, {"55060947": [12, 17, 96]}, {"55060951": [2]}, {"55060956": [149, 69]}, {"55060959": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060972": [60, 9, 128, 64, 37, 41, 32, 24, 129, 42]}, {"55060983": [3, 5, 64]}, {"55060987": [11, 1, 42, 72, 32, 129, 40]}, {"55060996": [52, 10]}, {"55060999": [127, 21, 10]}, {"55061003": [6]}, {"55061008": [60, 10, 128, 18, 37, 74, 165, 208, 133, 72]}, {"55061019": [144, 33, 8]}, {"55061023": [1, 165, 72]}, {"55061027": [144, 161, 32]}, {"55061032": [3, 224]}, {"55061035": [8]}, {"55061040": [60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061051": [12, 17, 32]}, {"55061055": [2]}, {"55061060": [129, 3]}, {"55061063": [2]}, {"55061065": [3, 15, 195]}, {"55061069": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061083": [8]}, {"55061088": [144, 69]}, {"55061091": [3, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061103": [12, 17, 32]}, {"55061107": [2]}, {"55061112": [145, 5]}, {"55061115": [3, 3, 224]}, {"55061119": [8]}, {"55061124": [143, 162]}, {"55061127": [36, 144, 69]}, {"55061132": [60, 8, 128, 64, 37, 8, 32]}, {"55061140": [133, 9]}, {"55061143": [2, 17, 32]}, {"55061147": [4, 52, 10]}, {"55061151": [1, 165, 10]}, {"55061156": [16]}, {"55061159": [24, 52, 5]}, {"55061163": [65, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061175": [12, 17, 32]}, {"55061179": [19]}, {"55061184": [145, 5]}, {"55061187": [1, 175, 164]}, {"55061192": [175, 165]}, {"55061195": [4, 175, 166]}, {"55061199": [8, 39, 189, 255, 232, 175, 191]}, {"55061207": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061219": [6, 145, 6]}, {"55061223": [7, 141, 9]}, {"55061227": [8, 1, 32, 248, 9]}, {"55061236": [143, 191]}, {"55061239": [16, 39, 189]}, {"55061243": [24, 143, 164]}, {"55061248": [143, 165]}, {"55061251": [4, 143, 166]}, {"55061255": [8, 3, 224]}, {"55061259": [8]}, {"55061264": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061275": [16, 175, 163]}, {"55061279": [20, 175, 191]}, {"55061283": [24, 12, 16, 10, 209]}, {"55061292": [143, 162]}, {"55061295": [16, 143, 163]}, {"55061299": [20, 143, 191]}, {"55061303": [24, 39, 189]}, {"55061307": [32, 3, 224]}, {"55061311": [8]}, {"55061316": [39, 189, 255, 232, 175, 191]}, {"55061323": [16, 60, 8, 128, 64, 37, 8, 32, 8, 173]}, {"55061336": [173]}, {"55061339": [4, 173]}, {"55061343": [8, 173]}, {"55061347": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061363": [42]}, {"55061369": [9, 15, 195, 1, 33, 32, 38]}, {"55061377": [129, 32, 35, 141, 5, 4, 40, 12, 16, 11, 11]}, {"55061392": [4, 64]}, {"55061395": [34]}, {"55061400": [52, 68]}, {"55061404": [12, 16, 11, 114]}, {"55061412": [16, 96]}, {"55061415": [12]}, {"55061420": [60, 8, 128, 64, 37, 8, 32, 8, 140, 105]}, {"55061432": [173, 9]}, {"55061436": [140, 105]}, {"55061439": [4, 173, 9]}, {"55061443": [4, 140, 105]}, {"55061447": [8, 173, 9]}, {"55061451": [8, 52, 9]}, {"55061455": [1, 173, 9]}, {"55061459": [12, 144, 98]}, {"55061464": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061480": [52, 1]}, {"55061483": [10, 21, 65]}, {"55061487": [6]}, {"55061492": [149, 42]}, {"55061495": [28, 49, 74, 240, 31]}, {"55061501": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061511": [28, 129, 9, 4, 36, 5, 33]}, {"55061519": [2]}, {"55061525": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061535": [16, 39, 189]}, {"55061539": [24, 3, 224]}, {"55061543": [8]}, {"55061548": [39, 189, 255, 232, 175, 191]}, {"55061555": [16, 12, 16, 11, 25]}, {"55061564": [36, 1, 255, 255, 16, 65]}, {"55061571": [4]}, {"55061576": [52, 68]}, {"55061580": [12, 16, 11, 77]}, {"55061588": [143, 191]}, {"55061591": [16, 39, 189]}, {"55061595": [24, 3, 224]}, {"55061599": [8]}, {"55061604": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061615": [164, 52, 8]}, {"55061620": [52, 137]}, {"55061624": [148, 170]}, {"55061628": [52, 1, 1, 156, 21, 65]}, {"55061635": [8]}, {"55061640": [52, 8]}, {"55061643": [3, 148, 171]}, {"55061647": [28, 49, 105]}, {"55061651": [255, 49, 98, 31]}, {"55061657": [2, 18, 2, 16]}, {"55061663": [31]}, {"55061668": [52, 1]}, {"55061671": [10, 21, 65]}, {"55061675": [14]}, {"55061680": [148, 171]}, {"55061683": [28, 52, 1]}, {"55061687": [16, 20, 65]}, {"55061691": [8]}, {"55061696": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061707": [4]}, {"55061712": [36, 2, 255, 255, 16]}, {"55061719": [21]}, {"55061724": [52, 8]}, {"55061727": [1, 49, 105]}, {"55061731": [31, 52, 1]}, {"55061735": [21, 21, 65]}, {"55061739": [12]}, {"55061744": [52, 1]}, {"55061747": [62, 16, 129]}, {"55061751": [7]}, {"55061756": [52, 1]}, {"55061759": [66, 16, 129]}, {"55061763": [4]}, {"55061768": [36, 2, 255, 255, 16]}, {"55061775": [7]}, {"55061780": [52, 8]}, {"55061783": [2, 144, 169, 1, 65]}, {"55061789": [2, 18]}, {"55061793": [72, 16, 37]}, {"55061797": [2, 18]}, {"55061801": [73, 16, 37, 3, 224]}, {"55061807": [8]}, {"55061812": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061824": [129, 9]}, {"55061828": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061851": [4, 141, 9]}, {"55061856": [17, 32]}, {"55061859": [23]}, {"55061865": [9, 82, 2, 49, 75, 248]}, {"55061873": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061896": [49, 34]}, {"55061899": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061920": [60, 12, 128, 64, 37, 140, 28]}, {"55061928": [129, 140]}, {"55061932": [17, 108]}, {"55061935": [4, 165, 32]}, {"55061939": [2, 161, 43]}, {"55061943": [2, 161, 34]}, {"55061947": [3, 173, 36]}, {"55061951": [4, 3, 224]}, {"55061955": [8]}, {"55061960": [39, 189, 255, 224, 175, 176]}, {"55061967": [16, 175, 177]}, {"55061971": [20, 175, 191]}, {"55061975": [24, 52, 130]}, {"55061980": [52, 80]}, {"55061984": [38, 8, 255, 128, 5]}, {"55061991": [18]}, {"55061996": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55062007": [16, 1, 9]}, {"55062011": [24]}, {"55062014": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55062032": [142, 40]}, {"55062035": [12, 1]}, {"55062038": [248, 9]}, {"55062044": [20, 80, 255, 239]}, {"55062052": [54, 35]}, {"55062056": [16]}, {"55062059": [2]}, {"55062064": [52, 3]}, {"55062068": [143, 176]}, {"55062071": [16, 143, 177]}, {"55062075": [20, 143, 191]}, {"55062079": [24, 39, 189]}, {"55062083": [32, 3, 224]}, {"55062087": [8]}, {"55062092": [140, 136, 29, 44, 52, 9]}, {"55062099": [1]}, {"55062101": [9, 78]}, {"55062104": [1, 9, 16, 36, 16, 64]}, {"55062111": [36]}, {"55062116": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062131": [164, 52, 1]}, {"55062135": [61, 17, 129]}, {"55062139": [10]}, {"55062145": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062155": [25]}, {"55062160": [52, 13]}, {"55062163": [1, 161, 141, 29, 40, 37, 74]}, {"55062171": [3, 16]}, {"55062175": [9]}, {"55062180": [52, 12]}, {"55062183": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062199": [14]}, {"55062204": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062240": [60, 9, 128, 64, 37, 41, 32, 24, 161, 40]}, {"55062252": [52, 2]}, {"55062256": [3, 224]}, {"55062259": [8]}, {"55062264": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062276": [16]}, {"55062279": [34]}, {"55062284": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062296": [16]}, {"55062299": [29]}, {"55062304": [52, 2]}, {"55062307": [255, 32, 232, 255, 166, 33, 8]}, {"55062315": [97, 16]}, {"55062319": [24]}, {"55062324": [52, 8]}, {"55062327": [100, 16]}, {"55062331": [21]}, {"55062336": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062351": [1, 160, 40, 14, 222, 52, 8]}, {"55062359": [104, 16]}, {"55062363": [13]}, {"55062368": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062383": [4, 160, 40, 14, 222, 52, 8]}, {"55062391": [106, 16]}, {"55062395": [5]}, {"55062400": [52, 5]}, {"55062403": [3, 52, 8]}, {"55062407": [107, 16]}, {"55062411": [1]}, {"55062416": [60, 9, 128, 64, 37, 41, 32, 24, 60, 10, 128, 64, 37, 74, 32, 27, 129, 44]}, {"55062436": [17, 136]}, {"55062439": [11, 33, 41]}, {"55062443": [1, 21, 42, 255, 252]}, {"55062452": [60, 9, 128, 64, 37, 41, 32, 23, 33, 41]}, {"55062463": [1, 17, 42]}, {"55062467": [4, 129, 44]}, {"55062472": [21, 128, 255, 252]}, {"55062480": [161, 40]}, {"55062484": [3, 224]}, {"55062487": [8]}, {"55062493": [96, 120, 33, 129, 236, 14, 223, 49, 142]}, {"55062503": [128, 17, 192]}, {"55062507": [3, 52, 3]}, {"55062511": [5, 3, 224]}, {"55062515": [8, 52, 2]}, {"55062519": [2, 3, 224]}, {"55062523": [8]}, {"55062525": [96, 16, 33, 133, 194]}, {"55062531": [164, 60, 8, 128, 18, 37, 8, 165, 208, 129, 9, 14, 223, 53, 41]}, {"55062547": [128, 161, 9, 14, 223, 3, 224]}, {"55062555": [8]}, {"55062560": [175, 164]}, {"55062563": [104, 175, 165]}, {"55062567": [108, 175, 166]}, {"55062571": [112, 175, 167]}, {"55062575": [116, 39, 189, 255, 232, 175, 163]}, {"55062583": [16, 175, 191]}, {"55062587": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062603": [32, 21]}, {"55062607": [31]}, {"55062612": [60, 9, 128, 64, 37, 41, 32, 27, 52, 10]}, {"55062623": [255, 161, 42]}, {"55062628": [60, 9, 128, 64, 37, 41, 32, 24, 36, 10, 255, 255, 52, 12]}, {"55062643": [3, 33, 74]}, {"55062647": [1, 17, 76]}, {"55062651": [20, 1, 42, 88, 32, 129, 104]}, {"55062660": [17]}, {"55062662": [255, 251]}, {"55062668": [60, 9, 128, 64, 37, 41, 32, 27, 161, 42]}, {"55062680": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062691": [1, 165, 42]}, {"55062696": [60, 9, 128, 65, 52, 10]}, {"55062703": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 209]}, {"55062732": [143, 163]}, {"55062735": [16, 143, 191]}, {"55062739": [20, 39, 189]}, {"55062743": [24, 143, 164]}, {"55062747": [104, 143, 165]}, {"55062751": [108, 143, 166]}, {"55062755": [112, 143, 167]}, {"55062759": [116, 132, 110, 19, 196, 3, 224]}, {"55062767": [8]}, {"55062772": [147, 25]}, {"55062775": [116, 52, 1]}, {"55062779": [255, 23, 33]}, {"55062783": [2]}, {"55062788": [52, 25]}, {"55062791": [44, 3, 224]}, {"55062795": [8, 167, 185]}, {"55062799": [154, 147, 44]}, {"55062803": [116, 52, 1]}, {"55062807": [255, 21, 129]}, {"55062811": [2]}, {"55062816": [52, 12]}, {"55062819": [44, 3, 224]}, {"55062823": [8]}, {"55062828": [145, 174]}, {"55062831": [116, 52, 1]}, {"55062835": [255, 21, 193]}, {"55062839": [2]}, {"55062844": [52, 14]}, {"55062847": [44, 3, 224]}, {"55062851": [8, 167, 174]}, {"55062855": [154, 145, 207]}, {"55062859": [116, 52, 1]}, {"55062863": [255, 21, 225]}, {"55062867": [2]}, {"55062872": [52, 15]}, {"55062875": [44, 3, 224]}, {"55062879": [8, 167, 175]}, {"55062883": [154, 60, 8, 128, 64, 37, 8, 32, 28, 142, 9]}, {"55062895": [104, 173, 9]}, {"55062900": [142, 9]}, {"55062903": [108, 173, 9]}, {"55062907": [4, 150, 9]}, {"55062911": [112, 165, 9]}, {"55062915": [8, 150, 9]}, {"55062919": [156, 165, 9]}, {"55062923": [10, 3, 224]}, {"55062927": [8, 142, 14]}, {"55062931": [4, 39, 189, 255, 224, 175, 176]}, {"55062939": [16, 175, 177]}, {"55062943": [20, 175, 191]}, {"55062947": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 28, 142, 8]}, {"55062967": [4, 17]}, {"55062971": [5]}, {"55062976": [12, 16, 12, 143]}, {"55062984": [16]}, {"55062987": [3]}, {"55062992": [12, 16, 12, 162]}, {"55063000": [12, 16, 12, 130, 52, 4]}, {"55063008": [12, 16, 12, 130, 52, 4]}, {"55063015": [1, 12, 16, 12, 130, 52, 4]}, {"55063023": [2, 143, 176]}, {"55063027": [16, 143, 177]}, {"55063031": [20, 143, 191]}, {"55063035": [24, 39, 189]}, {"55063039": [32, 3, 224]}, {"55063043": [8]}, {"55063048": [2, 4, 64, 33, 145, 9]}, {"55063055": [108, 52, 1]}, {"55063059": [255, 17, 33]}, {"55063063": [7]}, {"55063068": [2, 9, 72, 33, 145, 41]}, {"55063075": [116, 52, 1]}, {"55063079": [44, 17, 33]}, {"55063083": [2]}, {"55063088": [161, 9]}, {"55063091": [105, 3, 224]}, {"55063095": [8]}, {"55063100": [39, 189, 255, 232, 175, 191]}, {"55063107": [16, 142, 40]}, {"55063112": [174, 8]}, {"55063115": [64, 142, 40]}, {"55063119": [4, 174, 8]}, {"55063123": [68, 150, 40]}, {"55063127": [8, 166, 8]}, {"55063131": [72, 162]}, {"55063134": [15, 51, 146, 8]}, {"55063139": [74, 52, 1]}, {"55063143": [255, 21, 1]}, {"55063147": [3]}, {"55063152": [12, 16, 12, 176]}, {"55063160": [143, 191]}, {"55063163": [16, 39, 189]}, {"55063167": [24, 3, 224]}, {"55063171": [8]}, {"55063176": [142, 8]}, {"55063179": [64, 174, 8]}, {"55063183": [104, 142, 8]}, {"55063187": [68, 174, 8]}, {"55063191": [108, 150, 8]}, {"55063195": [72, 166, 8]}, {"55063199": [112, 146, 8]}, {"55063203": [104, 52, 1]}, {"55063207": [255, 21, 1]}, {"55063211": [3]}, {"55063216": [52, 8]}, {"55063219": [1, 162, 8, 15, 51, 3, 224]}, {"55063227": [8]}, {"55063232": [39, 189, 255, 232, 175, 191]}, {"55063239": [16, 150, 8]}, {"55063243": [156, 49, 8]}, {"55063247": [64, 17]}, {"55063251": [5]}, {"55063256": [150, 8]}, {"55063259": [112, 49, 8, 255, 15, 53, 8]}, {"55063267": [48, 166, 8]}, {"55063271": [112, 146, 40]}, {"55063275": [1, 162, 8]}, {"55063279": [105, 150, 40]}, {"55063283": [2, 166, 8]}, {"55063287": [106, 142, 40]}, {"55063291": [4, 174, 8]}, {"55063295": [108, 12, 16, 12, 202, 52, 4]}, {"55063304": [12, 16, 12, 202, 52, 4]}, {"55063311": [1, 12, 16, 12, 202, 52, 4]}, {"55063319": [2, 143, 191]}, {"55063323": [16, 39, 189]}, {"55063327": [24, 3, 224]}, {"55063331": [8]}, {"55063336": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 51, 212, 145, 10]}, {"55063351": [108, 52, 1]}, {"55063355": [255, 17, 65]}, {"55063359": [5]}, {"55063364": [1, 42, 72, 33, 145, 41]}, {"55063372": [21, 32]}, {"55063375": [28]}, {"55063380": [60, 9, 128, 64, 37, 41, 51, 199, 37, 41]}, {"55063391": [1, 145, 42]}, {"55063396": [17, 64]}, {"55063399": [19]}, {"55063404": [2, 10, 88, 33, 145, 107]}, {"55063411": [116, 52, 1]}, {"55063415": [255, 17, 97, 255, 248]}, {"55063424": [146, 12]}, {"55063427": [108, 17, 138, 255, 245]}, {"55063436": [146, 12]}, {"55063439": [109, 17, 138, 255, 242]}, {"55063448": [146, 12]}, {"55063451": [110, 17, 138, 255, 239]}, {"55063460": [161, 11]}, {"55063463": [105, 161, 10]}, {"55063467": [108, 16]}, {"55063471": [4]}, {"55063476": [52, 9]}, {"55063479": [255, 161, 9]}, {"55063483": [105, 161, 9]}, {"55063487": [108, 3, 224]}, {"55063491": [8]}, {"55063496": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063509": [1, 1, 1, 1, 1]}, {"55063515": [1, 1, 1, 1, 1]}, {"55063521": [1]}, {"55063523": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063533": [51, 8, 33, 32, 15]}, {"55063539": [71, 21, 234]}, {"55063543": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063555": [164]}, {"55063557": [15, 122, 3, 20, 64]}, {"55063563": [5, 52, 2, 72, 48, 21, 226]}, {"55063571": [7]}, {"55063576": [36, 25]}, {"55063579": [3, 16]}, {"55063583": [4, 52, 2, 99, 17, 21, 226]}, {"55063591": [2]}, {"55063596": [36, 25]}, {"55063599": [3, 3, 224]}, {"55063603": [8]}, {"55063608": [141, 173, 138, 160, 52, 2, 128]}, {"55063616": [16, 77]}, {"55063619": [2]}, {"55063624": [16]}, {"55063627": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063643": [1, 16, 64]}, {"55063647": [2]}, {"55063652": [16]}, {"55063655": [2, 52, 2]}, {"55063659": [1, 161, 226, 28, 191, 3, 224]}, {"55063667": [8]}, {"55063673": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063687": [164]}, {"55063689": [15, 122, 3, 20, 64]}, {"55063695": [5, 52, 2, 72, 48, 21, 226]}, {"55063703": [7]}, {"55063708": [36, 25]}, {"55063711": [3, 16]}, {"55063715": [4, 52, 2, 99, 17, 21, 226]}, {"55063723": [2]}, {"55063728": [36, 25]}, {"55063731": [3, 3, 224]}, {"55063735": [8]}, {"55063740": [52, 1]}, {"55063743": [24, 20, 129]}, {"55063747": [14]}, {"55063752": [20, 64]}, {"55063755": [12]}, {"55063760": [60, 10, 128, 18, 37, 74, 165, 208, 129, 72]}, {"55063771": [166, 49, 8]}, {"55063775": [32, 17]}, {"55063779": [6, 52, 2]}, {"55063784": [129, 72]}, {"55063787": [123, 52, 1]}, {"55063791": [7, 17, 1]}, {"55063795": [2, 52, 2]}, {"55063799": [1, 52, 2]}, {"55063804": [3, 224]}, {"55063807": [8]}, {"55063812": [162, 37]}, {"55063815": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063827": [4, 142, 10]}, {"55063832": [17, 64]}, {"55063835": [11]}, {"55063841": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063853": [24, 194, 2, 23]}, {"55063859": [3, 49, 89]}, {"55063863": [255, 129, 234]}, {"55063868": [3, 42, 200, 37, 8, 16, 13, 68, 161, 249]}, {"55063880": [3, 224]}, {"55063883": [8]}] \ No newline at end of file +[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 196]}, {"11135032": [8, 16, 13, 47]}, {"11311804": [12, 16, 11, 205]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 190, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 101]}, {"11427312": [12, 16, 13, 14]}, {"11427320": [12, 16, 11, 200]}, {"11427332": [0, 0]}, {"11427335": [0]}, {"11431496": [12, 16, 11, 195, 1, 15, 192, 33]}, {"11559936": [130]}, {"11559938": [14, 222]}, {"11559948": [49, 248, 0, 2]}, {"11562028": [12, 16, 13, 68]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 30]}, {"11882076": [12, 16, 12, 251]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 68, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 75, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 82, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 61, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 140]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 18]}, {"12427480": [12, 16, 10, 106]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 110]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 12, 8, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 152]}, {"12491480": [12, 16, 10, 161]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 147]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 89]}, {"13709176": [52, 15]}, {"13709179": [0]}, {"14109028": [16, 0]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 128, 73, 14, 222]}, {"14149508": [52]}, {"14149510": [0, 1, 2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 208]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 224]}, {"14624335": [118]}, {"14720872": [128]}, {"14720874": [14, 222]}, {"14720884": [49, 248, 0, 4]}, {"14720944": [12, 16, 11, 216]}, {"14848904": [8, 16, 11, 247]}, {"14852164": [12, 16, 12, 0]}, {"14872723": [52]}, {"15327704": [52, 9, 64, 0]}, {"15327728": [52]}, {"15327730": [91, 8]}, {"15327744": [52]}, {"15327746": [0, 10]}, {"15327757": [169]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 236, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 48, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 76, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 104, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 220, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 108, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 140, 128, 64, 38, 132, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 172, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 39, 212, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 28, 128, 64, 40]}, {"55059600": [83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 3, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 44, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [2, 52, 2]}, {"55060003": [69, 52, 2]}, {"55060007": [70, 3, 224]}, {"55060011": [8]}, {"55060016": [144, 136]}, {"55060019": [162, 49, 8]}, {"55060023": [6, 17]}, {"55060027": [2, 52, 2]}, {"55060031": [55, 52, 2]}, {"55060035": [56, 3, 224]}, {"55060039": [8]}, {"55060044": [144, 136]}, {"55060047": [161, 49, 8]}, {"55060051": [32, 17]}, {"55060055": [2, 52, 2]}, {"55060059": [121, 52, 2]}, {"55060063": [122, 3, 224]}, {"55060067": [8]}, {"55060072": [144, 136]}, {"55060075": [161, 49, 8]}, {"55060079": [4, 17]}, {"55060083": [2, 52, 2]}, {"55060087": [119, 52, 2]}, {"55060091": [120, 3, 224]}, {"55060095": [8]}, {"55060100": [144, 136]}, {"55060103": [50, 17]}, {"55060107": [2, 52, 2]}, {"55060111": [192, 52, 2]}, {"55060115": [193, 3, 224]}, {"55060119": [8]}, {"55060124": [144, 136]}, {"55060127": [163, 49, 8]}, {"55060131": [3, 17]}, {"55060135": [2, 52, 2]}, {"55060139": [77, 52, 162]}, {"55060144": [3, 224]}, {"55060147": [8]}, {"55060152": [144, 136]}, {"55060155": [163, 49, 8]}, {"55060159": [24, 17]}, {"55060163": [2, 52, 2]}, {"55060167": [77, 52, 162]}, {"55060172": [3, 224]}, {"55060175": [8]}, {"55060180": [3, 224]}, {"55060183": [8]}, {"55060188": [52, 8]}, {"55060191": [1, 160, 136]}, {"55060195": [62, 3, 224]}, {"55060199": [8]}, {"55060204": [36, 136]}, {"55060207": [134, 36, 9, 255, 255, 37, 41]}, {"55060215": [1, 52, 1]}, {"55060219": [3]}, {"55060221": [41, 8, 42, 20, 32]}, {"55060227": [7]}, {"55060232": [1, 9, 80, 33, 145, 75]}, {"55060240": [52, 1]}, {"55060243": [255, 21, 97, 255, 247]}, {"55060252": [161, 69]}, {"55060256": [3, 224]}, {"55060259": [8]}, {"55060264": [36, 136]}, {"55060267": [168, 1, 6, 64, 33, 145, 9]}, {"55060276": [1, 37, 72, 37, 161, 9]}, {"55060284": [3, 224]}, {"55060287": [8]}, {"55060292": [36, 136]}, {"55060295": [188, 1, 5, 64, 33, 129, 9]}, {"55060304": [5, 33]}, {"55060307": [2]}, {"55060312": [52, 9]}, {"55060316": [37, 41]}, {"55060319": [1, 161, 9]}, {"55060324": [3, 224]}, {"55060327": [8]}, {"55060332": [52, 8]}, {"55060335": [1, 160, 136]}, {"55060339": [61, 52, 8]}, {"55060343": [20, 160, 136]}, {"55060347": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [50, 160, 136]}, {"55060375": [58, 52, 8]}, {"55060379": [48, 164, 136, 19, 244, 160, 136]}, {"55060387": [51, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [2, 160, 136]}, {"55060403": [50, 52, 8]}, {"55060407": [1, 160, 136]}, {"55060411": [58, 160, 136]}, {"55060415": [60, 52, 8]}, {"55060419": [96, 164, 136, 19, 244, 160, 136]}, {"55060427": [51, 3, 224]}, {"55060431": [8]}, {"55060436": [144, 136]}, {"55060439": [124, 52, 1]}, {"55060443": [255, 17, 1]}, {"55060447": [6, 52, 2]}, {"55060451": [107, 144, 136]}, {"55060455": [148, 45, 8]}, {"55060459": [6, 17]}, {"55060463": [2, 52, 2]}, {"55060467": [106, 52, 2]}, {"55060471": [3, 3, 224]}, {"55060475": [8]}, {"55060480": [144, 136]}, {"55060483": [123, 52, 1]}, {"55060487": [255, 17, 1]}, {"55060491": [2, 52, 162]}, {"55060496": [52, 2]}, {"55060499": [12, 3, 224]}, {"55060503": [8]}, {"55060508": [52, 8]}, {"55060511": [7, 160, 136]}, {"55060515": [123, 3, 224]}, {"55060519": [8]}, {"55060524": [52, 8]}, {"55060527": [1]}, {"55060529": [168, 64, 4, 140, 137]}, {"55060535": [164, 1, 40, 72, 37, 172, 137]}, {"55060543": [164, 3, 224]}, {"55060547": [8]}, {"55060552": [48, 132]}, {"55060555": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060567": [140, 16, 129]}, {"55060571": [22, 145, 2]}, {"55060575": [117, 52, 1]}, {"55060579": [141, 16, 129]}, {"55060583": [19, 145, 2]}, {"55060587": [117, 16, 128]}, {"55060591": [17, 145, 2]}, {"55060595": [116, 52, 1]}, {"55060599": [138, 16, 129]}, {"55060603": [14, 145, 2]}, {"55060607": [116, 52, 1]}, {"55060611": [139, 16, 129]}, {"55060615": [11, 145, 2]}, {"55060619": [116, 52, 1]}, {"55060623": [88, 16, 129]}, {"55060627": [8, 52, 2]}, {"55060632": [52, 1]}, {"55060635": [120, 16, 129]}, {"55060639": [5, 52, 2]}, {"55060644": [52, 1]}, {"55060647": [121, 16, 129]}, {"55060651": [2, 52, 2]}, {"55060656": [52, 2]}, {"55060659": [255, 3, 224]}, {"55060663": [8]}, {"55060668": [39, 189, 255, 224, 175, 191]}, {"55060675": [16, 175, 176]}, {"55060679": [20, 12, 16, 11, 11]}, {"55060688": [4, 65]}, {"55060691": [2]}, {"55060696": [52, 2]}, {"55060699": [91]}, {"55060701": [64, 32, 33, 12, 16, 11, 114]}, {"55060712": [16, 96]}, {"55060715": [22, 175, 163]}, {"55060719": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060728": [133, 9]}, {"55060731": [2, 17, 32]}, {"55060735": [3, 52, 10]}, {"55060739": [1, 16]}, {"55060743": [12, 165, 10]}, {"55060748": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060759": [6, 144, 102]}, {"55060763": [7, 140, 105]}, {"55060767": [8, 1, 32, 248, 9]}, {"55060776": [143, 163]}, {"55060779": [28, 144, 101]}, {"55060783": [1, 12, 1, 191, 115, 2, 32, 32, 33, 143, 163]}, {"55060795": [28, 144, 101]}, {"55060799": [3, 16]}, {"55060803": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060815": [6]}, {"55060817": [74]}, {"55060819": [24]}, {"55060822": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060832": [60, 8, 128, 64, 37, 8, 32]}, {"55060840": [133, 9]}, {"55060843": [2, 17, 32]}, {"55060847": [3, 52, 10]}, {"55060851": [1, 165, 10]}, {"55060856": [52, 5]}, {"55060859": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060871": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060882": [48, 33, 143, 191]}, {"55060887": [16, 143, 176]}, {"55060891": [20, 39, 189]}, {"55060895": [32, 3, 224]}, {"55060899": [8]}, {"55060904": [143, 166]}, {"55060907": [48, 132, 197]}, {"55060911": [4, 8, 16, 10, 114]}, {"55060920": [143, 185]}, {"55060923": [44, 135, 37]}, {"55060927": [4, 8, 16, 10, 114]}, {"55060936": [60, 10, 128, 64, 37, 74, 32, 8, 141, 75]}, {"55060947": [12, 17, 96]}, {"55060951": [2]}, {"55060956": [149, 69]}, {"55060959": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060972": [60, 9, 128, 64, 37, 41, 32, 24, 129, 42]}, {"55060983": [3, 5, 64]}, {"55060987": [11, 1, 42, 72, 32, 129, 40]}, {"55060996": [52, 10]}, {"55060999": [127, 21, 10]}, {"55061003": [6]}, {"55061008": [60, 10, 128, 18, 37, 74, 165, 208, 133, 72]}, {"55061019": [144, 33, 8]}, {"55061023": [1, 165, 72]}, {"55061027": [144, 161, 32]}, {"55061032": [3, 224]}, {"55061035": [8]}, {"55061040": [60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061051": [12, 17, 32]}, {"55061055": [2]}, {"55061060": [129, 3]}, {"55061063": [2]}, {"55061065": [3, 15, 195]}, {"55061069": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061083": [8]}, {"55061088": [144, 69]}, {"55061091": [3, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061103": [12, 17, 32]}, {"55061107": [2]}, {"55061112": [145, 5]}, {"55061115": [3, 3, 224]}, {"55061119": [8]}, {"55061124": [143, 162]}, {"55061127": [36, 144, 69]}, {"55061132": [60, 8, 128, 64, 37, 8, 32]}, {"55061140": [133, 9]}, {"55061143": [2, 17, 32]}, {"55061147": [4, 52, 10]}, {"55061151": [1, 165, 10]}, {"55061156": [16]}, {"55061159": [24, 52, 5]}, {"55061163": [65, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061175": [12, 17, 32]}, {"55061179": [19]}, {"55061184": [145, 5]}, {"55061187": [1, 175, 164]}, {"55061192": [175, 165]}, {"55061195": [4, 175, 166]}, {"55061199": [8, 39, 189, 255, 232, 175, 191]}, {"55061207": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061219": [6, 145, 6]}, {"55061223": [7, 141, 9]}, {"55061227": [8, 1, 32, 248, 9]}, {"55061236": [143, 191]}, {"55061239": [16, 39, 189]}, {"55061243": [24, 143, 164]}, {"55061248": [143, 165]}, {"55061251": [4, 143, 166]}, {"55061255": [8, 3, 224]}, {"55061259": [8]}, {"55061264": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061275": [16, 175, 163]}, {"55061279": [20, 175, 191]}, {"55061283": [24, 12, 16, 10, 209]}, {"55061292": [143, 162]}, {"55061295": [16, 143, 163]}, {"55061299": [20, 143, 191]}, {"55061303": [24, 39, 189]}, {"55061307": [32, 3, 224]}, {"55061311": [8]}, {"55061316": [39, 189, 255, 232, 175, 191]}, {"55061323": [16, 60, 8, 128, 64, 37, 8, 32, 8, 173]}, {"55061336": [173]}, {"55061339": [4, 173]}, {"55061343": [8, 173]}, {"55061347": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061363": [42]}, {"55061369": [9, 15, 195, 1, 33, 32, 38]}, {"55061377": [129, 32, 35, 141, 5, 4, 40, 12, 16, 11, 11]}, {"55061392": [4, 64]}, {"55061395": [34]}, {"55061400": [52, 68]}, {"55061404": [12, 16, 11, 114]}, {"55061412": [16, 96]}, {"55061415": [12]}, {"55061420": [60, 8, 128, 64, 37, 8, 32, 8, 140, 105]}, {"55061432": [173, 9]}, {"55061436": [140, 105]}, {"55061439": [4, 173, 9]}, {"55061443": [4, 140, 105]}, {"55061447": [8, 173, 9]}, {"55061451": [8, 52, 9]}, {"55061455": [1, 173, 9]}, {"55061459": [12, 144, 98]}, {"55061464": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061480": [52, 1]}, {"55061483": [10, 21, 65]}, {"55061487": [6]}, {"55061492": [149, 42]}, {"55061495": [28, 49, 74, 240, 31]}, {"55061501": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061511": [28, 129, 9, 4, 36, 5, 33]}, {"55061519": [2]}, {"55061525": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061535": [16, 39, 189]}, {"55061539": [24, 3, 224]}, {"55061543": [8]}, {"55061548": [39, 189, 255, 232, 175, 191]}, {"55061555": [16, 12, 16, 11, 25]}, {"55061564": [36, 1, 255, 255, 16, 65]}, {"55061571": [4]}, {"55061576": [52, 68]}, {"55061580": [12, 16, 11, 77]}, {"55061588": [143, 191]}, {"55061591": [16, 39, 189]}, {"55061595": [24, 3, 224]}, {"55061599": [8]}, {"55061604": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061615": [164, 52, 8]}, {"55061620": [52, 137]}, {"55061624": [148, 170]}, {"55061628": [52, 1, 1, 156, 21, 65]}, {"55061635": [8]}, {"55061640": [52, 8]}, {"55061643": [3, 148, 171]}, {"55061647": [28, 49, 105]}, {"55061651": [255, 49, 98, 31]}, {"55061657": [2, 18, 2, 16]}, {"55061663": [31]}, {"55061668": [52, 1]}, {"55061671": [10, 21, 65]}, {"55061675": [14]}, {"55061680": [148, 171]}, {"55061683": [28, 52, 1]}, {"55061687": [16, 20, 65]}, {"55061691": [8]}, {"55061696": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061707": [4]}, {"55061712": [36, 2, 255, 255, 16]}, {"55061719": [21]}, {"55061724": [52, 8]}, {"55061727": [1, 49, 105]}, {"55061731": [31, 52, 1]}, {"55061735": [21, 21, 65]}, {"55061739": [12]}, {"55061744": [52, 1]}, {"55061747": [62, 16, 129]}, {"55061751": [7]}, {"55061756": [52, 1]}, {"55061759": [66, 16, 129]}, {"55061763": [4]}, {"55061768": [36, 2, 255, 255, 16]}, {"55061775": [7]}, {"55061780": [52, 8]}, {"55061783": [2, 144, 169, 1, 65]}, {"55061789": [2, 18]}, {"55061793": [72, 16, 37]}, {"55061797": [2, 18]}, {"55061801": [73, 16, 37, 3, 224]}, {"55061807": [8]}, {"55061812": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061824": [129, 9]}, {"55061828": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061851": [4, 141, 9]}, {"55061856": [17, 32]}, {"55061859": [23]}, {"55061865": [9, 82, 2, 49, 75, 248]}, {"55061873": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061896": [49, 34]}, {"55061899": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061920": [60, 12, 128, 64, 37, 140, 28]}, {"55061928": [129, 140]}, {"55061932": [17, 108]}, {"55061935": [4, 165, 32]}, {"55061939": [2, 161, 43]}, {"55061943": [2, 161, 34]}, {"55061947": [3, 173, 36]}, {"55061951": [4, 3, 224]}, {"55061955": [8]}, {"55061960": [39, 189, 255, 224, 175, 176]}, {"55061967": [16, 175, 177]}, {"55061971": [20, 175, 191]}, {"55061975": [24, 52, 130]}, {"55061980": [52, 80]}, {"55061984": [38, 8, 255, 128, 5]}, {"55061991": [18]}, {"55061996": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55062007": [16, 1, 9]}, {"55062011": [24]}, {"55062014": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55062032": [142, 40]}, {"55062035": [12, 1]}, {"55062038": [248, 9]}, {"55062044": [20, 80, 255, 239]}, {"55062052": [54, 35]}, {"55062056": [16]}, {"55062059": [2]}, {"55062064": [52, 3]}, {"55062068": [143, 176]}, {"55062071": [16, 143, 177]}, {"55062075": [20, 143, 191]}, {"55062079": [24, 39, 189]}, {"55062083": [32, 3, 224]}, {"55062087": [8]}, {"55062092": [140, 136, 29, 44, 52, 9]}, {"55062099": [1]}, {"55062101": [9, 78]}, {"55062104": [1, 9, 16, 36, 16, 64]}, {"55062111": [36]}, {"55062116": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062131": [164, 52, 1]}, {"55062135": [61, 17, 129]}, {"55062139": [10]}, {"55062145": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062155": [25]}, {"55062160": [52, 13]}, {"55062163": [1, 161, 141, 29, 40, 37, 74]}, {"55062171": [3, 16]}, {"55062175": [9]}, {"55062180": [52, 12]}, {"55062183": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062199": [14]}, {"55062204": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062240": [60, 9, 128, 64, 37, 41, 32, 24, 161, 40]}, {"55062252": [52, 2]}, {"55062256": [3, 224]}, {"55062259": [8]}, {"55062264": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062276": [16]}, {"55062279": [34]}, {"55062284": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062296": [16]}, {"55062299": [29]}, {"55062304": [52, 2]}, {"55062307": [255, 32, 232, 255, 166, 33, 8]}, {"55062315": [97, 16]}, {"55062319": [24]}, {"55062324": [52, 8]}, {"55062327": [100, 16]}, {"55062331": [21]}, {"55062336": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062351": [1, 160, 40, 14, 222, 52, 8]}, {"55062359": [104, 16]}, {"55062363": [13]}, {"55062368": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062383": [4, 160, 40, 14, 222, 52, 8]}, {"55062391": [106, 16]}, {"55062395": [5]}, {"55062400": [52, 5]}, {"55062403": [3, 52, 8]}, {"55062407": [107, 16]}, {"55062411": [1]}, {"55062416": [60, 9, 128, 64, 37, 41, 32, 24, 60, 10, 128, 64, 37, 74, 32, 27, 129, 44]}, {"55062436": [17, 136]}, {"55062439": [11, 33, 41]}, {"55062443": [1, 21, 42, 255, 252]}, {"55062452": [60, 9, 128, 64, 37, 41, 32, 23, 33, 41]}, {"55062463": [1, 17, 42]}, {"55062467": [4, 129, 44]}, {"55062472": [21, 128, 255, 252]}, {"55062480": [161, 40]}, {"55062484": [3, 224]}, {"55062487": [8]}, {"55062493": [96, 120, 33, 129, 236, 14, 223, 49, 142]}, {"55062503": [128, 17, 192]}, {"55062507": [3, 52, 3]}, {"55062511": [5, 3, 224]}, {"55062515": [8, 52, 2]}, {"55062519": [2, 3, 224]}, {"55062523": [8]}, {"55062525": [96, 16, 33, 133, 194]}, {"55062531": [164, 60, 8, 128, 18, 37, 8, 165, 208, 129, 9, 14, 223, 53, 41]}, {"55062547": [128, 161, 9, 14, 223, 3, 224]}, {"55062555": [8]}, {"55062560": [175, 164]}, {"55062563": [104, 175, 165]}, {"55062567": [108, 175, 166]}, {"55062571": [112, 175, 167]}, {"55062575": [116, 39, 189, 255, 232, 175, 163]}, {"55062583": [16, 175, 191]}, {"55062587": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062603": [32, 21]}, {"55062607": [31]}, {"55062612": [60, 9, 128, 64, 37, 41, 32, 27, 52, 10]}, {"55062623": [255, 161, 42]}, {"55062628": [60, 9, 128, 64, 37, 41, 32, 24, 36, 10, 255, 255, 52, 12]}, {"55062643": [3, 33, 74]}, {"55062647": [1, 17, 76]}, {"55062651": [20, 1, 42, 88, 32, 129, 104]}, {"55062660": [17]}, {"55062662": [255, 251]}, {"55062668": [60, 9, 128, 64, 37, 41, 32, 27, 161, 42]}, {"55062680": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062691": [1, 165, 42]}, {"55062696": [60, 9, 128, 65, 52, 10]}, {"55062703": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 209]}, {"55062732": [143, 163]}, {"55062735": [16, 143, 191]}, {"55062739": [20, 39, 189]}, {"55062743": [24, 143, 164]}, {"55062747": [104, 143, 165]}, {"55062751": [108, 143, 166]}, {"55062755": [112, 143, 167]}, {"55062759": [116, 132, 110, 19, 196, 3, 224]}, {"55062767": [8]}, {"55062772": [147, 25]}, {"55062775": [116, 52, 1]}, {"55062779": [255, 23, 33]}, {"55062783": [2]}, {"55062788": [52, 25]}, {"55062791": [44, 3, 224]}, {"55062795": [8, 167, 185]}, {"55062799": [154, 147, 44]}, {"55062803": [116, 52, 1]}, {"55062807": [255, 21, 129]}, {"55062811": [2]}, {"55062816": [52, 12]}, {"55062819": [44, 3, 224]}, {"55062823": [8]}, {"55062828": [145, 174]}, {"55062831": [116, 52, 1]}, {"55062835": [255, 21, 193]}, {"55062839": [2]}, {"55062844": [52, 14]}, {"55062847": [44, 3, 224]}, {"55062851": [8, 167, 174]}, {"55062855": [154, 145, 207]}, {"55062859": [116, 52, 1]}, {"55062863": [255, 21, 225]}, {"55062867": [2]}, {"55062872": [52, 15]}, {"55062875": [44, 3, 224]}, {"55062879": [8, 167, 175]}, {"55062883": [154, 60, 8, 128, 64, 37, 8, 32, 28, 142, 9]}, {"55062895": [104, 173, 9]}, {"55062900": [142, 9]}, {"55062903": [108, 173, 9]}, {"55062907": [4, 150, 9]}, {"55062911": [112, 165, 9]}, {"55062915": [8, 150, 9]}, {"55062919": [156, 165, 9]}, {"55062923": [10, 3, 224]}, {"55062927": [8, 142, 14]}, {"55062931": [4, 39, 189, 255, 224, 175, 176]}, {"55062939": [16, 175, 177]}, {"55062943": [20, 175, 191]}, {"55062947": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 28, 142, 8]}, {"55062967": [4, 17]}, {"55062971": [5]}, {"55062976": [12, 16, 12, 143]}, {"55062984": [16]}, {"55062987": [3]}, {"55062992": [12, 16, 12, 162]}, {"55063000": [12, 16, 12, 130, 52, 4]}, {"55063008": [12, 16, 12, 130, 52, 4]}, {"55063015": [1, 12, 16, 12, 130, 52, 4]}, {"55063023": [2, 143, 176]}, {"55063027": [16, 143, 177]}, {"55063031": [20, 143, 191]}, {"55063035": [24, 39, 189]}, {"55063039": [32, 3, 224]}, {"55063043": [8]}, {"55063048": [2, 4, 64, 33, 145, 9]}, {"55063055": [108, 52, 1]}, {"55063059": [255, 17, 33]}, {"55063063": [7]}, {"55063068": [2, 9, 72, 33, 145, 41]}, {"55063075": [116, 52, 1]}, {"55063079": [44, 17, 33]}, {"55063083": [2]}, {"55063088": [161, 9]}, {"55063091": [105, 3, 224]}, {"55063095": [8]}, {"55063100": [39, 189, 255, 232, 175, 191]}, {"55063107": [16, 142, 40]}, {"55063112": [174, 8]}, {"55063115": [64, 142, 40]}, {"55063119": [4, 174, 8]}, {"55063123": [68, 150, 40]}, {"55063127": [8, 166, 8]}, {"55063131": [72, 162]}, {"55063134": [15, 51, 146, 8]}, {"55063139": [74, 52, 1]}, {"55063143": [255, 21, 1]}, {"55063147": [3]}, {"55063152": [12, 16, 12, 176]}, {"55063160": [143, 191]}, {"55063163": [16, 39, 189]}, {"55063167": [24, 3, 224]}, {"55063171": [8]}, {"55063176": [142, 8]}, {"55063179": [64, 174, 8]}, {"55063183": [104, 142, 8]}, {"55063187": [68, 174, 8]}, {"55063191": [108, 150, 8]}, {"55063195": [72, 166, 8]}, {"55063199": [112, 146, 8]}, {"55063203": [104, 52, 1]}, {"55063207": [255, 21, 1]}, {"55063211": [3]}, {"55063216": [52, 8]}, {"55063219": [1, 162, 8, 15, 51, 3, 224]}, {"55063227": [8]}, {"55063232": [39, 189, 255, 232, 175, 191]}, {"55063239": [16, 150, 8]}, {"55063243": [156, 49, 8]}, {"55063247": [64, 17]}, {"55063251": [5]}, {"55063256": [150, 8]}, {"55063259": [112, 49, 8, 255, 15, 53, 8]}, {"55063267": [48, 166, 8]}, {"55063271": [112, 146, 40]}, {"55063275": [1, 162, 8]}, {"55063279": [105, 150, 40]}, {"55063283": [2, 166, 8]}, {"55063287": [106, 142, 40]}, {"55063291": [4, 174, 8]}, {"55063295": [108, 12, 16, 12, 202, 52, 4]}, {"55063304": [12, 16, 12, 202, 52, 4]}, {"55063311": [1, 12, 16, 12, 202, 52, 4]}, {"55063319": [2, 143, 191]}, {"55063323": [16, 39, 189]}, {"55063327": [24, 3, 224]}, {"55063331": [8]}, {"55063336": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 51, 212, 145, 10]}, {"55063351": [108, 52, 1]}, {"55063355": [255, 17, 65]}, {"55063359": [5]}, {"55063364": [1, 42, 72, 33, 145, 41]}, {"55063372": [21, 32]}, {"55063375": [28]}, {"55063380": [60, 9, 128, 64, 37, 41, 51, 199, 37, 41]}, {"55063391": [1, 145, 42]}, {"55063396": [17, 64]}, {"55063399": [19]}, {"55063404": [2, 10, 88, 33, 145, 107]}, {"55063411": [116, 52, 1]}, {"55063415": [255, 17, 97, 255, 248]}, {"55063424": [146, 12]}, {"55063427": [108, 17, 138, 255, 245]}, {"55063436": [146, 12]}, {"55063439": [109, 17, 138, 255, 242]}, {"55063448": [146, 12]}, {"55063451": [110, 17, 138, 255, 239]}, {"55063460": [161, 11]}, {"55063463": [105, 161, 10]}, {"55063467": [108, 16]}, {"55063471": [4]}, {"55063476": [52, 9]}, {"55063479": [255, 161, 9]}, {"55063483": [105, 161, 9]}, {"55063487": [108, 3, 224]}, {"55063491": [8]}, {"55063496": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063509": [1, 1, 1, 1, 1]}, {"55063515": [1, 1, 1, 1, 1]}, {"55063521": [1]}, {"55063523": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063533": [51, 8, 33, 32, 15]}, {"55063539": [71, 21, 234]}, {"55063543": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063555": [164]}, {"55063557": [15, 122, 3, 20, 64]}, {"55063563": [5, 52, 2, 72, 48, 21, 226]}, {"55063571": [7]}, {"55063576": [36, 25]}, {"55063579": [3, 16]}, {"55063583": [4, 52, 2, 99, 17, 21, 226]}, {"55063591": [2]}, {"55063596": [36, 25]}, {"55063599": [3, 3, 224]}, {"55063603": [8]}, {"55063608": [141, 173, 138, 160, 52, 2, 128]}, {"55063616": [16, 77]}, {"55063619": [2]}, {"55063624": [16]}, {"55063627": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063643": [1, 16, 64]}, {"55063647": [2]}, {"55063652": [16]}, {"55063655": [2, 52, 2]}, {"55063659": [1, 161, 226, 28, 191, 3, 224]}, {"55063667": [8]}, {"55063673": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063687": [164]}, {"55063689": [15, 122, 3, 20, 64]}, {"55063695": [5, 52, 2, 72, 48, 21, 226]}, {"55063703": [7]}, {"55063708": [36, 25]}, {"55063711": [3, 16]}, {"55063715": [4, 52, 2, 99, 17, 21, 226]}, {"55063723": [2]}, {"55063728": [36, 25]}, {"55063731": [3, 3, 224]}, {"55063735": [8]}, {"55063740": [52, 1]}, {"55063743": [24, 20, 129]}, {"55063747": [17]}, {"55063752": [20, 64]}, {"55063755": [15]}, {"55063760": [60, 10, 128, 18, 37, 74, 165, 208, 129, 72]}, {"55063771": [166, 49, 8]}, {"55063775": [32, 17]}, {"55063779": [9, 52, 2]}, {"55063784": [52, 2]}, {"55063787": [1, 129, 72]}, {"55063791": [123, 52, 9]}, {"55063795": [7, 17, 9]}, {"55063799": [4, 52, 10]}, {"55063803": [8, 17, 10]}, {"55063807": [2]}, {"55063812": [52, 2]}, {"55063816": [3, 224]}, {"55063819": [8]}, {"55063824": [162, 37]}, {"55063827": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063839": [4, 142, 10]}, {"55063844": [17, 64]}, {"55063847": [11]}, {"55063853": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063865": [24, 194, 2, 23]}, {"55063871": [3, 49, 89]}, {"55063875": [255, 129, 234]}, {"55063880": [3, 42, 200, 37, 8, 16, 13, 71, 161, 249]}, {"55063892": [3, 224]}, {"55063895": [8]}] \ No newline at end of file diff --git a/version.py b/version.py index bbd3426ea..c80dbac11 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.35 f.LUM' +__version__ = '2.15.36 f.LUM' From 3d916bd6edbcf8a4ace6b49a1250217d737216d1 Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Tue, 21 Aug 2018 14:13:02 -0300 Subject: [PATCH 330/755] Logic Fixes - Biggoron, Mask of Truth, Night Skulls --- BaseClasses.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 6db07ca34..82d8ebbcd 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -336,7 +336,7 @@ def can_leave_forest(self): return (self.world.open_forest or (self.has('Slingshot') and self.has('Kokiri Sword'))) def can_finish_adult_trades(self): - zora_thawed = self.has_bottle() and self.has('Zeldas Lullaby') and (self.can_reach('Ice Cavern') or self.can_reach('Ganons Castle Water Trial') or self.has('Progressive Wallet', 2)) + zora_thawed = self.has_bottle() and (self.can_play('Zeldas Lullaby') or (self.has('Hover Boots') and self.world.logic_zora_with_hovers)) and (self.can_reach('Ice Cavern') or self.can_reach('Ganons Castle Water Trial') or self.has('Progressive Wallet', 2)) carpenter_access = self.has('Epona') or self.has('Progressive Hookshot', 2) return (self.has('Claim Check') or ((self.has('Eyedrops') or self.has('Eyeball Frog') or self.has('Prescription') or self.has('Broken Sword')) and zora_thawed) or ((self.has('Poachers Saw') or self.has('Odd Mushroom') or self.has('Cojiro') or self.has('Pocket Cucco') or self.has('Pocket Egg')) and zora_thawed and carpenter_access)) @@ -368,7 +368,7 @@ def has_fire_source(self): def guarantee_hint(self): if(self.world.hints == 'mask'): # has the mask of truth - return self.has('Zeldas Letter') and self.has('Sarias Song') and self.has('Kokiri Emerald') and self.has('Goron Ruby') and self.has('Zora Sapphire') + return self.has('Zeldas Letter') and self.can_play('Sarias Song') and self.has('Kokiri Emerald') and self.has('Goron Ruby') and self.has('Zora Sapphire') elif(self.world.hints == 'agony'): # has the stone of agony return self.has('Stone of Agony') @@ -376,7 +376,7 @@ def guarantee_hint(self): def nighttime(self): if self.world.logic_no_night_tokens_without_suns_song: - return self.has('Suns Song') + return self.can_play('Suns Song') return True def collect(self, item): From 8258a8246312e1a971b50afa208fb8f5161f3d2f Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 22 Aug 2018 23:50:24 -0400 Subject: [PATCH 331/755] make update_message add message if it doesn't exist This fixes some songs not being properly updated in songsanity. messenger.add_message() should not be called directly --- Messages.py | 12 +++++++----- Rom.py | 8 ++++---- version.py | 2 +- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/Messages.py b/Messages.py index ea68020ba..43deaa51a 100644 --- a/Messages.py +++ b/Messages.py @@ -490,13 +490,15 @@ def from_string(cls, text, id=0, opts=0x00): __str__ = __repr__ = display # wrapper for updating the text of a message, given its message id -# if the id does not exist in the list, this will silently do nothing +# if the id does not exist in the list, then it will add it def update_message_by_id(messages, id, text, opts=None): # get the message index index = next( (m.index for m in messages if m.id == id), -1) # update if it was found if index >= 0: update_message_by_index(messages, index, text, opts) + else: + add_message(messages, text, id, opts) # Gets the message by its ID. Returns None if the index does not exist def get_message_by_id(messages, id): @@ -644,9 +646,9 @@ def add_keysanity_messages(messages, world): while ord(text[index]) in CONTROL_CODES: index = index + CONTROL_CODES[ord(text[index])][1] + 1 new_text = text[:index] + "\x08\x05\x42Player \x18:\x05\x40\x01" + text[index:] - add_message(messages, new_text, id, 0x23) + update_message_by_id(messages, id, new_text, 0x23) else: - add_message(messages, text, id, 0x23) + update_message_by_id(messages, id, text, 0x23) # add the song messages # make sure to call this AFTER move_shop_item_messages() @@ -657,9 +659,9 @@ def add_song_messages(messages, world): while ord(text[index]) in CONTROL_CODES: index = index + CONTROL_CODES[ord(text[index])][1] + 1 new_text = text[:index] + "\x08\x05\x42Player \x18:\x05\x40\x01" + text[index:] - add_message(messages, new_text, id, 0x23) + update_message_by_id(messages, id, new_text, 0x23) else: - add_message(messages, text, id, 0x23) + update_message_by_id(messages, id, text, 0x23) # reduce item message sizes def update_item_messages(messages, world): diff --git a/Rom.py b/Rom.py index 0b4dddd49..53b23ebe4 100644 --- a/Rom.py +++ b/Rom.py @@ -1270,9 +1270,9 @@ def write_save_table(rom): # add a cheaper bombchu pack to the bombchu shop # describe - add_message(messages, '\x08\x05\x41Bombchu (5 pieces) 60 Rupees\x01\x05\x40This looks like a toy mouse, but\x01it\'s actually a self-propelled time\x01bomb!\x09\x0A', 0x80FE, 0x03) + update_message_by_id(messages, 0x80FE, '\x08\x05\x41Bombchu (5 pieces) 60 Rupees\x01\x05\x40This looks like a toy mouse, but\x01it\'s actually a self-propelled time\x01bomb!\x09\x0A', 0x03) # purchase - add_message(messages, '\x08Bombchu 5 Pieces 60 Rupees\x01\x01\x1B\x05\x42Buy\x01Don\'t buy\x05\x40\x09', 0x80FF, 0x03) + update_message_by_id(messages, 0x80FF, '\x08Bombchu 5 Pieces 60 Rupees\x01\x01\x1B\x05\x42Buy\x01Don\'t buy\x05\x40\x09', 0x03) rbl_bombchu = shop_items[0x0018] rbl_bombchu.price = 60 rbl_bombchu.pieces = 5 @@ -1773,7 +1773,7 @@ def place_shop_items(rom, shop_items, messages, free_shop_ids, locations): message_id = unused_shop_ids.index(shop_id) * 2 shop_item.description_message = 0x8100 + message_id shop_item.purchase_message = 0x8100 + message_id + 1 - add_message(messages, '\x08\x05\x41%s %d Rupees\x01\x05\x40Special deal! ONE LEFT!\x01Get it while it lasts!\x09\x0A\x02' % (location.item.name, location.price), shop_item.description_message, 0x03) - add_message(messages, '\x08%s %d Rupees\x09\x01\x01\x1B\x05\x42Buy\x01Don\'t buy\x05\x40\x02' % (location.item.name, location.price), shop_item.purchase_message, 0x03) + update_message_by_id(messages, shop_item.description_message, '\x08\x05\x41%s %d Rupees\x01\x05\x40Special deal! ONE LEFT!\x01Get it while it lasts!\x09\x0A\x02' % (location.item.name, location.price), 0x03) + update_message_by_id(messages, shop_item.purchase_message, '\x08%s %d Rupees\x09\x01\x01\x1B\x05\x42Buy\x01Don\'t buy\x05\x40\x02' % (location.item.name, location.price), 0x03) return shop_objs diff --git a/version.py b/version.py index c80dbac11..458ad6456 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.36 f.LUM' +__version__ = '2.15.37 f.LUM' From 83699f402d0396d0e0fd6daec8dbd0b5f0162b16 Mon Sep 17 00:00:00 2001 From: mzxrules Date: Thu, 23 Aug 2018 15:16:43 -0400 Subject: [PATCH 332/755] Changed Water Temple locked door to be bound to Switch Flag 02 --- data/mqu.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mqu.json b/data/mqu.json index 907a296ce..c1f97cccb 100644 --- a/data/mqu.json +++ b/data/mqu.json @@ -3551,7 +3551,7 @@ "07FF 0DFF 002E F3D0 0424 F18C 0000 007F", "09FF 08FF 002E FB8C 003C F93E 8000 009B", "0CFF 10FF 002E FB00 006C F57E 8000 007F", - "0FFF 0CFF 0009 FC90 0078 F57E 0000 0083", + "0FFF 0CFF 0009 FC90 0078 F57E 0000 0082", "12FF 11FF 002E 0492 0000 00B4 C000 00BE", "0AFF 00FF 002E FCB8 035C 0122 4000 00BF", "16FF 0BFF 002E FF4C 0406 F7F4 0000 0154", From b0696aaf4c741b58b9d95142775d7d2ef2b7cd08 Mon Sep 17 00:00:00 2001 From: mzxrules Date: Thu, 23 Aug 2018 15:30:10 -0400 Subject: [PATCH 333/755] line endings --- Dungeons.py | 214 ++++++++++++++++++++++++++-------------------------- 1 file changed, 107 insertions(+), 107 deletions(-) diff --git a/Dungeons.py b/Dungeons.py index 753b62726..fc98b0ed9 100644 --- a/Dungeons.py +++ b/Dungeons.py @@ -1,116 +1,116 @@ -import random - -from BaseClasses import Dungeon -from Items import ItemFactory - - -def create_dungeons(world): - def make_dungeon(name, dungeon_regions, boss_key, small_keys, dungeon_items): - dungeon = Dungeon(name, dungeon_regions, boss_key, small_keys, dungeon_items) - for region in dungeon.regions: - world.get_region(region).dungeon = dungeon - return dungeon - - if world.dungeon_mq['DT']: +import random + +from BaseClasses import Dungeon +from Items import ItemFactory + + +def create_dungeons(world): + def make_dungeon(name, dungeon_regions, boss_key, small_keys, dungeon_items): + dungeon = Dungeon(name, dungeon_regions, boss_key, small_keys, dungeon_items) + for region in dungeon.regions: + world.get_region(region).dungeon = dungeon + return dungeon + + if world.dungeon_mq['DT']: DT = make_dungeon( 'Deku Tree', ['Deku Tree Lobby', 'Deku Tree Compass Room', 'Deku Tree Boss Room'], None, [], - ItemFactory(['Map (Deku Tree)', 'Compass (Deku Tree)'])) + ItemFactory(['Map (Deku Tree)', 'Compass (Deku Tree)'])) else: - DT = make_dungeon( - 'Deku Tree', - ['Deku Tree Lobby', 'Deku Tree Slingshot Room', 'Deku Tree Boss Room'], - None, [], - ItemFactory(['Map (Deku Tree)', 'Compass (Deku Tree)'])) - - if world.dungeon_mq['DC']: + DT = make_dungeon( + 'Deku Tree', + ['Deku Tree Lobby', 'Deku Tree Slingshot Room', 'Deku Tree Boss Room'], + None, [], + ItemFactory(['Map (Deku Tree)', 'Compass (Deku Tree)'])) + + if world.dungeon_mq['DC']: DC = make_dungeon( 'Dodongos Cavern', ['Dodongos Cavern Beginning', 'Dodongos Cavern Lobby', 'Dodongos Cavern Boss Area'], None, [], - ItemFactory(['Map (Dodongos Cavern)', 'Compass (Dodongos Cavern)'])) - else: - DC = make_dungeon( - 'Dodongos Cavern', - ['Dodongos Cavern Beginning', 'Dodongos Cavern Lobby', 'Dodongos Cavern Climb', 'Dodongos Cavern Far Bridge', - 'Dodongos Cavern Boss Area'], - None, [], - ItemFactory(['Map (Dodongos Cavern)', 'Compass (Dodongos Cavern)'])) - - JB = make_dungeon( - 'Jabu Jabus Belly', - ['Jabu Jabus Belly Beginning', 'Jabu Jabus Belly Main', 'Jabu Jabus Belly Depths', 'Jabu Jabus Belly Boss Area'], - None, [], - ItemFactory(['Map (Jabu Jabus Belly)', 'Compass (Jabu Jabus Belly)'])) - - FoT = make_dungeon( - 'Forest Temple', - ['Forest Temple Lobby', 'Forest Temple NW Outdoors', 'Forest Temple NE Outdoors', 'Forest Temple Falling Room', - 'Forest Temple Block Push Room', 'Forest Temple Straightened Hall', 'Forest Temple Outside Upper Ledge', - 'Forest Temple Bow Region', 'Forest Temple Boss Region'], - ItemFactory('Boss Key (Forest Temple)'), - ItemFactory(['Small Key (Forest Temple)'] * 5), - ItemFactory(['Map (Forest Temple)', 'Compass (Forest Temple)'])) - - BW = make_dungeon( - 'Bottom of the Well', - ['Bottom of the Well'], - None, - ItemFactory(['Small Key (Bottom of the Well)'] * 3), - ItemFactory(['Map (Bottom of the Well)', 'Compass (Bottom of the Well)'])) - FiT = make_dungeon( - 'Fire Temple', - ['Fire Temple Lower', 'Fire Temple Middle', 'Fire Temple Upper'], - ItemFactory('Boss Key (Fire Temple)'), - ItemFactory(['Small Key (Fire Temple)'] * 8), - ItemFactory(['Map (Fire Temple)', 'Compass (Fire Temple)'])) - - IC = make_dungeon( - 'Ice Cavern', - ['Ice Cavern'], - None, [], - ItemFactory(['Map (Ice Cavern)', 'Compass (Ice Cavern)'])) - - WT = make_dungeon( - 'Water Temple', - ['Water Temple Lobby', 'Water Temple Middle Water Level', 'Water Temple Dark Link Region'], - ItemFactory('Boss Key (Water Temple)'), - ItemFactory(['Small Key (Water Temple)'] * 6), - ItemFactory(['Map (Water Temple)', 'Compass (Water Temple)'])) - - ShT = make_dungeon( - 'Shadow Temple', - ['Shadow Temple Beginning', 'Shadow Temple First Beamos', 'Shadow Temple Huge Pit', 'Shadow Temple Wind Tunnel', - 'Shadow Temple Beyond Boat'], - ItemFactory('Boss Key (Shadow Temple)'), - ItemFactory(['Small Key (Shadow Temple)'] * 5), - ItemFactory(['Map (Shadow Temple)', 'Compass (Shadow Temple)'])) - - GTG = make_dungeon( - 'Gerudo Training Grounds', - ['Gerudo Training Grounds Lobby', 'Gerudo Training Grounds Central Maze', - 'Gerudo Training Grounds Central Maze Right', 'Gerudo Training Grounds Lava Room', - 'Gerudo Training Grounds Hammer Room', 'Gerudo Training Grounds Eye Statue Lower', - 'Gerudo Training Grounds Eye Statue Upper', 'Gerudo Training Grounds Heavy Block Room'], - None, - ItemFactory(['Small Key (Gerudo Training Grounds)'] * 9), - []) - - SpT = make_dungeon( - 'Spirit Temple', - ['Spirit Temple Lobby', 'Child Spirit Temple', 'Child Spirit Temple Climb', 'Early Adult Spirit Temple', - 'Spirit Temple Central Chamber', 'Spirit Temple Beyond Central Locked Door', 'Spirit Temple Beyond Final Locked Door'], - ItemFactory('Boss Key (Spirit Temple)'), - ItemFactory(['Small Key (Spirit Temple)'] * 5), - ItemFactory(['Map (Spirit Temple)', 'Compass (Spirit Temple)'])) - - GC = make_dungeon( - 'Ganons Castle', - ['Ganons Castle Lobby', 'Ganons Castle Forest Trial', 'Ganons Castle Fire Trial', 'Ganons Castle Water Trial', - 'Ganons Castle Shadow Trial', 'Ganons Castle Spirit Trial', 'Ganons Castle Light Trial', 'Ganons Castle Tower'], - ItemFactory('Boss Key (Ganons Castle)'), - ItemFactory(['Small Key (Ganons Castle)'] * 2), - []) - - world.dungeons = [DT, DC, JB, FoT, BW, FiT, IC, WT, ShT, GTG, SpT, GC] + ItemFactory(['Map (Dodongos Cavern)', 'Compass (Dodongos Cavern)'])) + else: + DC = make_dungeon( + 'Dodongos Cavern', + ['Dodongos Cavern Beginning', 'Dodongos Cavern Lobby', 'Dodongos Cavern Climb', 'Dodongos Cavern Far Bridge', + 'Dodongos Cavern Boss Area'], + None, [], + ItemFactory(['Map (Dodongos Cavern)', 'Compass (Dodongos Cavern)'])) + + JB = make_dungeon( + 'Jabu Jabus Belly', + ['Jabu Jabus Belly Beginning', 'Jabu Jabus Belly Main', 'Jabu Jabus Belly Depths', 'Jabu Jabus Belly Boss Area'], + None, [], + ItemFactory(['Map (Jabu Jabus Belly)', 'Compass (Jabu Jabus Belly)'])) + + FoT = make_dungeon( + 'Forest Temple', + ['Forest Temple Lobby', 'Forest Temple NW Outdoors', 'Forest Temple NE Outdoors', 'Forest Temple Falling Room', + 'Forest Temple Block Push Room', 'Forest Temple Straightened Hall', 'Forest Temple Outside Upper Ledge', + 'Forest Temple Bow Region', 'Forest Temple Boss Region'], + ItemFactory('Boss Key (Forest Temple)'), + ItemFactory(['Small Key (Forest Temple)'] * 5), + ItemFactory(['Map (Forest Temple)', 'Compass (Forest Temple)'])) + + BW = make_dungeon( + 'Bottom of the Well', + ['Bottom of the Well'], + None, + ItemFactory(['Small Key (Bottom of the Well)'] * 3), + ItemFactory(['Map (Bottom of the Well)', 'Compass (Bottom of the Well)'])) + FiT = make_dungeon( + 'Fire Temple', + ['Fire Temple Lower', 'Fire Temple Middle', 'Fire Temple Upper'], + ItemFactory('Boss Key (Fire Temple)'), + ItemFactory(['Small Key (Fire Temple)'] * 8), + ItemFactory(['Map (Fire Temple)', 'Compass (Fire Temple)'])) + + IC = make_dungeon( + 'Ice Cavern', + ['Ice Cavern'], + None, [], + ItemFactory(['Map (Ice Cavern)', 'Compass (Ice Cavern)'])) + + WT = make_dungeon( + 'Water Temple', + ['Water Temple Lobby', 'Water Temple Middle Water Level', 'Water Temple Dark Link Region'], + ItemFactory('Boss Key (Water Temple)'), + ItemFactory(['Small Key (Water Temple)'] * 6), + ItemFactory(['Map (Water Temple)', 'Compass (Water Temple)'])) + + ShT = make_dungeon( + 'Shadow Temple', + ['Shadow Temple Beginning', 'Shadow Temple First Beamos', 'Shadow Temple Huge Pit', 'Shadow Temple Wind Tunnel', + 'Shadow Temple Beyond Boat'], + ItemFactory('Boss Key (Shadow Temple)'), + ItemFactory(['Small Key (Shadow Temple)'] * 5), + ItemFactory(['Map (Shadow Temple)', 'Compass (Shadow Temple)'])) + + GTG = make_dungeon( + 'Gerudo Training Grounds', + ['Gerudo Training Grounds Lobby', 'Gerudo Training Grounds Central Maze', + 'Gerudo Training Grounds Central Maze Right', 'Gerudo Training Grounds Lava Room', + 'Gerudo Training Grounds Hammer Room', 'Gerudo Training Grounds Eye Statue Lower', + 'Gerudo Training Grounds Eye Statue Upper', 'Gerudo Training Grounds Heavy Block Room'], + None, + ItemFactory(['Small Key (Gerudo Training Grounds)'] * 9), + []) + + SpT = make_dungeon( + 'Spirit Temple', + ['Spirit Temple Lobby', 'Child Spirit Temple', 'Child Spirit Temple Climb', 'Early Adult Spirit Temple', + 'Spirit Temple Central Chamber', 'Spirit Temple Beyond Central Locked Door', 'Spirit Temple Beyond Final Locked Door'], + ItemFactory('Boss Key (Spirit Temple)'), + ItemFactory(['Small Key (Spirit Temple)'] * 5), + ItemFactory(['Map (Spirit Temple)', 'Compass (Spirit Temple)'])) + + GC = make_dungeon( + 'Ganons Castle', + ['Ganons Castle Lobby', 'Ganons Castle Forest Trial', 'Ganons Castle Fire Trial', 'Ganons Castle Water Trial', + 'Ganons Castle Shadow Trial', 'Ganons Castle Spirit Trial', 'Ganons Castle Light Trial', 'Ganons Castle Tower'], + ItemFactory('Boss Key (Ganons Castle)'), + ItemFactory(['Small Key (Ganons Castle)'] * 2), + []) + + world.dungeons = [DT, DC, JB, FoT, BW, FiT, IC, WT, ShT, GTG, SpT, GC] From 28fcccc03a2077acf325fac855a18751e1ab2f8f Mon Sep 17 00:00:00 2001 From: mzxrules Date: Thu, 23 Aug 2018 15:48:30 -0400 Subject: [PATCH 334/755] Moved Rom.py to Patches.py --- Rom.py => Patches.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Rom.py => Patches.py (100%) diff --git a/Rom.py b/Patches.py similarity index 100% rename from Rom.py rename to Patches.py From c27e9760e5850fed42f718b06514e1c159143f54 Mon Sep 17 00:00:00 2001 From: mzxrules Date: Thu, 23 Aug 2018 16:10:23 -0400 Subject: [PATCH 335/755] Split Patches.py into Rom.py and Patches.py --- Gui.py | 2 +- Main.py | 3 +- Patches.py | 136 +------------------------------------------------ Rom.py | 143 ++++++++++++++++++++++++++++++++++++++++++++++++++++ Settings.py | 2 +- 5 files changed, 148 insertions(+), 138 deletions(-) create mode 100644 Rom.py diff --git a/Gui.py b/Gui.py index 5cfb153c6..4c43a2f0b 100755 --- a/Gui.py +++ b/Gui.py @@ -12,7 +12,7 @@ from GuiUtils import ToolTips, set_icon, BackgroundTask, BackgroundTaskProgress, Dialog from Main import main from Utils import is_bundled, local_path, default_output_path, open_file, check_version -from Rom import get_tunic_color_options, get_navi_color_options +from Patches import get_tunic_color_options, get_navi_color_options from Settings import Settings, setting_infos from version import __version__ as ESVersion import webbrowser diff --git a/Main.py b/Main.py index 270c7ff94..13437935f 100644 --- a/Main.py +++ b/Main.py @@ -11,7 +11,8 @@ from BaseClasses import World, CollectionState, Item from EntranceShuffle import link_entrances -from Rom import patch_rom, LocalRom +from Rom import LocalRom +from Patches import patch_rom from Regions import create_regions from Dungeons import create_dungeons from Rules import set_rules diff --git a/Patches.py b/Patches.py index bd52e583a..6f57bb0d5 100644 --- a/Patches.py +++ b/Patches.py @@ -13,6 +13,7 @@ from Items import ItemFactory, item_data from Messages import * from OcarinaSongs import Song, replace_songs, subsong +from MQ import patch_files TunicColors = { "Kokiri Green": [0x1E, 0x69, 0x1B], @@ -63,141 +64,6 @@ def get_navi_colors(): def get_navi_color_options(): return ["Random Choice", "Completely Random"] + get_navi_colors() -class LocalRom(object): - - def __init__(self, settings, patch=True): - self.last_address = None - - file = settings.rom - decomp_file = os.path.join(default_output_path(settings.output_dir), 'ZOOTDEC.z64') - - validCRC = [] - validCRC.append(bytearray([0xEC, 0x70, 0x11, 0xB7, 0x76, 0x16, 0xD7, 0x2B])) # Compressed - validCRC.append(bytearray([0x70, 0xEC, 0xB7, 0x11, 0x16, 0x76, 0x2B, 0xD7])) # Byteswap compressed - validCRC.append(bytearray([0x93, 0x52, 0x2E, 0x7B, 0xE5, 0x06, 0xD4, 0x27])) # Decompressed - - os.chdir(os.path.dirname(os.path.realpath(__file__))) - #os.chdir(output_path(os.path.dirname(os.path.realpath(__file__)))) - with open(file, 'rb') as stream: - self.buffer = read_rom(stream) - file_name = os.path.splitext(file) - romCRC = self.buffer[0x10:0x18] - if romCRC not in validCRC: - raise RuntimeError('ROM is not a valid OoT 1.0 US ROM.') - if len(self.buffer) < 0x2000000 or len(self.buffer) > (0x4000000) or file_name[1] not in ['.z64', '.n64']: - raise RuntimeError('ROM is not a valid OoT 1.0 ROM.') - if len(self.buffer) == 0x2000000: - if platform.system() == 'Windows': - subprocess.call(["Decompress\\Decompress.exe", file, decomp_file]) - with open(decomp_file, 'rb') as stream: - self.buffer = read_rom(stream) - elif platform.system() == 'Linux': - subprocess.call(["Decompress/Decompress", file]) - with open(("ZOOTDEC.z64"), 'rb') as stream: - self.buffer = read_rom(stream) - elif platform.system() == 'Darwin': - subprocess.call(["Decompress/Decompress.out", file]) - with open(("ZOOTDEC.z64"), 'rb') as stream: - self.buffer = read_rom(stream) - else: - raise RuntimeError('Unsupported operating system for decompression. Please supply an already decompressed ROM.') - # extend to 64MB - self.buffer.extend(bytearray([0x00] * (0x4000000 - len(self.buffer)))) - - def read_byte(self, address): - return self.buffer[address] - - def read_bytes(self, address, len): - return self.buffer[address : address + len] - - def read_int16(self, address): - return bytes_as_int16(self.read_bytes(address, 2)) - - def read_int24(self, address): - return bytes_as_int24(self.read_bytes(address, 3)) - - def read_int32(self, address): - return bytes_as_int32(self.read_bytes(address, 4)) - - def write_byte(self, address, value): - if address == None: - address = self.last_address - self.buffer[address] = value - self.last_address = address + 1 - - def write_int16(self, address, value): - if address == None: - address = self.last_address - self.write_bytes(address, int16_as_bytes(value)) - - def write_int24(self, address, value): - if address == None: - address = self.last_address - self.write_bytes(address, int24_as_bytes(value)) - - def write_int32(self, address, value): - if address == None: - address = self.last_address - self.write_bytes(address, int32_as_bytes(value)) - - def write_bytes(self, startaddress, values): - if startaddress == None: - startaddress = self.last_address - for i, value in enumerate(values): - self.write_byte(startaddress + i, value) - - def write_int16s(self, startaddress, values): - if startaddress == None: - startaddress = self.last_address - for i, value in enumerate(values): - self.write_int16(startaddress + (i * 2), value) - - def write_int24s(self, startaddress, values): - if startaddress == None: - startaddress = self.last_address - for i, value in enumerate(values): - self.write_int24(startaddress + (i * 3), value) - - def write_int32s(self, startaddress, values): - if startaddress == None: - startaddress = self.last_address - for i, value in enumerate(values): - self.write_int32(startaddress + (i * 4), value) - - def write_to_file(self, file): - with open(file, 'wb') as outfile: - outfile.write(self.buffer) - -def read_rom(stream): - "Reads rom into bytearray" - buffer = bytearray(stream.read()) - return buffer - - -def int16_as_bytes(value): - value = value & 0xFFFF - return [(value >> 8) & 0xFF, value & 0xFF] - -def int24_as_bytes(value): - value = value & 0xFFFFFFFF - return [(value >> 16) & 0xFF, (value >> 8) & 0xFF, value & 0xFF] - -def int32_as_bytes(value): - value = value & 0xFFFFFFFF - return [(value >> 24) & 0xFF, (value >> 16) & 0xFF, (value >> 8) & 0xFF, value & 0xFF] - -def bytes_as_int16(values): - return (values[0] << 8) | values[1] - -def bytes_as_int24(values): - return (values[0] << 16) | (values[1] << 8) | values[2] - -def bytes_as_int32(values): - return (values[0] << 24) | (values[1] << 16) | (values[2] << 8) | values[3] - - -from MQ import patch_files - def patch_rom(world, rom): with open(local_path('data/base2current.json'), 'r') as stream: patches = json.load(stream) diff --git a/Rom.py b/Rom.py new file mode 100644 index 000000000..21096a6eb --- /dev/null +++ b/Rom.py @@ -0,0 +1,143 @@ +import io +import json +import logging +import os +import platform +import struct +import subprocess +import random +import copy + +from Utils import default_output_path + +class LocalRom(object): + + def __init__(self, settings, patch=True): + self.last_address = None + + file = settings.rom + decomp_file = os.path.join(default_output_path(settings.output_dir), 'ZOOTDEC.z64') + + validCRC = [] + validCRC.append(bytearray([0xEC, 0x70, 0x11, 0xB7, 0x76, 0x16, 0xD7, 0x2B])) # Compressed + validCRC.append(bytearray([0x70, 0xEC, 0xB7, 0x11, 0x16, 0x76, 0x2B, 0xD7])) # Byteswap compressed + validCRC.append(bytearray([0x93, 0x52, 0x2E, 0x7B, 0xE5, 0x06, 0xD4, 0x27])) # Decompressed + + os.chdir(os.path.dirname(os.path.realpath(__file__))) + #os.chdir(output_path(os.path.dirname(os.path.realpath(__file__)))) + with open(file, 'rb') as stream: + self.buffer = read_rom(stream) + file_name = os.path.splitext(file) + romCRC = self.buffer[0x10:0x18] + if romCRC not in validCRC: + raise RuntimeError('ROM is not a valid OoT 1.0 US ROM.') + if len(self.buffer) < 0x2000000 or len(self.buffer) > (0x4000000) or file_name[1] not in ['.z64', '.n64']: + raise RuntimeError('ROM is not a valid OoT 1.0 ROM.') + if len(self.buffer) == 0x2000000: + if platform.system() == 'Windows': + subprocess.call(["Decompress\\Decompress.exe", file, decomp_file]) + with open(decomp_file, 'rb') as stream: + self.buffer = read_rom(stream) + elif platform.system() == 'Linux': + subprocess.call(["Decompress/Decompress", file]) + with open(("ZOOTDEC.z64"), 'rb') as stream: + self.buffer = read_rom(stream) + elif platform.system() == 'Darwin': + subprocess.call(["Decompress/Decompress.out", file]) + with open(("ZOOTDEC.z64"), 'rb') as stream: + self.buffer = read_rom(stream) + else: + raise RuntimeError('Unsupported operating system for decompression. Please supply an already decompressed ROM.') + # extend to 64MB + self.buffer.extend(bytearray([0x00] * (0x4000000 - len(self.buffer)))) + + def read_byte(self, address): + return self.buffer[address] + + def read_bytes(self, address, len): + return self.buffer[address : address + len] + + def read_int16(self, address): + return bytes_as_int16(self.read_bytes(address, 2)) + + def read_int24(self, address): + return bytes_as_int24(self.read_bytes(address, 3)) + + def read_int32(self, address): + return bytes_as_int32(self.read_bytes(address, 4)) + + def write_byte(self, address, value): + if address == None: + address = self.last_address + self.buffer[address] = value + self.last_address = address + 1 + + def write_int16(self, address, value): + if address == None: + address = self.last_address + self.write_bytes(address, int16_as_bytes(value)) + + def write_int24(self, address, value): + if address == None: + address = self.last_address + self.write_bytes(address, int24_as_bytes(value)) + + def write_int32(self, address, value): + if address == None: + address = self.last_address + self.write_bytes(address, int32_as_bytes(value)) + + def write_bytes(self, startaddress, values): + if startaddress == None: + startaddress = self.last_address + for i, value in enumerate(values): + self.write_byte(startaddress + i, value) + + def write_int16s(self, startaddress, values): + if startaddress == None: + startaddress = self.last_address + for i, value in enumerate(values): + self.write_int16(startaddress + (i * 2), value) + + def write_int24s(self, startaddress, values): + if startaddress == None: + startaddress = self.last_address + for i, value in enumerate(values): + self.write_int24(startaddress + (i * 3), value) + + def write_int32s(self, startaddress, values): + if startaddress == None: + startaddress = self.last_address + for i, value in enumerate(values): + self.write_int32(startaddress + (i * 4), value) + + def write_to_file(self, file): + with open(file, 'wb') as outfile: + outfile.write(self.buffer) + +def read_rom(stream): + "Reads rom into bytearray" + buffer = bytearray(stream.read()) + return buffer + + +def int16_as_bytes(value): + value = value & 0xFFFF + return [(value >> 8) & 0xFF, value & 0xFF] + +def int24_as_bytes(value): + value = value & 0xFFFFFFFF + return [(value >> 16) & 0xFF, (value >> 8) & 0xFF, value & 0xFF] + +def int32_as_bytes(value): + value = value & 0xFFFFFFFF + return [(value >> 24) & 0xFF, (value >> 16) & 0xFF, (value >> 8) & 0xFF, value & 0xFF] + +def bytes_as_int16(values): + return (values[0] << 8) | values[1] + +def bytes_as_int24(values): + return (values[0] << 16) | (values[1] << 8) | values[2] + +def bytes_as_int32(values): + return (values[0] << 24) | (values[1] << 16) | (values[2] << 8) | values[3] \ No newline at end of file diff --git a/Settings.py b/Settings.py index a5663baf2..28a8f5ca6 100644 --- a/Settings.py +++ b/Settings.py @@ -5,7 +5,7 @@ import random import hashlib -from Rom import get_tunic_color_options, get_navi_color_options +from Patches import get_tunic_color_options, get_navi_color_options from version import __version__ class ArgumentDefaultsHelpFormatter(argparse.RawTextHelpFormatter): From a37eed2e1f804f248623c01309f26a558e344bd8 Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 23 Aug 2018 17:50:26 -0400 Subject: [PATCH 336/755] shopsanity has a 3rd wallet upgrade and more money --- ASM/src/extended_items.asm | 14 +++++++++++- ItemList.py | 44 ++++++++++++++++++++++++-------------- Rom.py | 5 +++++ data/base2current.json | 2 +- version.py | 2 +- 5 files changed, 48 insertions(+), 19 deletions(-) diff --git a/ASM/src/extended_items.asm b/ASM/src/extended_items.asm index 328851594..69c4da68d 100755 --- a/ASM/src/extended_items.asm +++ b/ASM/src/extended_items.asm @@ -54,7 +54,7 @@ Item_Row -1, -1, -1, -1, -1, strength_upgrade, no_effect, -1, -1 ; 0x81 = Progr Item_Row -1, -1, -1, -1, -1, bomb_bag_upgrade, no_effect, -1, -1 ; 0x82 = Progressive Bomb Bag Item_Row -1, -1, -1, -1, -1, bow_upgrade, no_effect, -1, -1 ; 0x83 = Progressive Bow Item_Row -1, -1, -1, -1, -1, slingshot_upgrade, no_effect, -1, -1 ; 0x84 = Progressive Slingshot -Item_Row -1, -1, -1, -1, -1, wallet_upgrade, no_effect, -1, -1 ; 0x85 = Progressive Wallet +Item_Row 0x53, 0x41, 0x23, 0xF8, 0x00D1, wallet_upgrade, tycoon_wallet, -1, -1 ; 0x85 = Progressive Wallet Item_Row -1, -1, -1, -1, -1, scale_upgrade, no_effect, -1, -1 ; 0x86 = Progressive Scale Item_Row -1, -1, -1, -1, -1, nut_upgrade, no_effect, -1, -1 ; 0x87 = Progressive Nut Capacity Item_Row -1, -1, -1, -1, -1, stick_upgrade, no_effect, -1, -1 ; 0x88 = Progressive Stick Capacity @@ -244,12 +244,24 @@ wallet_upgrade: beqz t0, @@return li v0, 0x45 ; Adult's Wallet + li t1, 0x10 + beq t0, t1, @@return li v0, 0x46 ; Giant's Wallet + ori v0, a1, 0 ; Tycoon's Wallet (unchanged) + @@return: jr ra nop +tycoon_wallet: + ; a0 = save context + lbu t0, 0xA2 (a0) ; Load wallet from inventory + ori t0, t0, 0x30 ; Give lvl 3 wallet + sb t0, 0xA2 (a0) ; Store wallet to inventory + jr ra + nop + ;================================================================================================== scale_upgrade: diff --git a/ItemList.py b/ItemList.py index 6faa0e3c7..ae46f74f5 100644 --- a/ItemList.py +++ b/ItemList.py @@ -30,10 +30,6 @@ + ['Progressive Strength Upgrade'] * 3 + ['Progressive Scale'] * 2 + ['Recovery Heart'] * 11 - + ['Rupees (5)'] * 16 - + ['Rupees (20)'] * 6 - + ['Rupees (50)'] * 7 - + ['Rupees (200)'] * 6 + ['Bow'] * 3 + ['Slingshot'] * 3 + ['Bomb Bag'] * 3 @@ -88,6 +84,19 @@ + ['Rupees (5)'] * 4 + ['Rupees (20)']) +normal_rupees =( + ['Rupees (5)'] * 16 + + ['Rupees (20)'] * 6 + + ['Rupees (50)'] * 7 + + ['Rupees (200)'] * 6) + +shopsanity_rupees = ( + ['Rupees (5)'] * 5 + + ['Rupees (20)'] * 11 + + ['Rupees (50)'] * 10 + + ['Rupees (200)'] * 8 + + ['Progressive Wallet']) + rewardlist = [ 'Kokiri Emerald', 'Goron Ruby', @@ -403,6 +412,7 @@ def get_pool_core(world): placed_items['Goron Shop Item 6'] = 'Sold Out' placed_items['Goron Shop Item 7'] = 'Buy Red Potion' placed_items['Goron Shop Item 8'] = 'Sold Out' + pool.extend(normal_rupees) elif world.shopsanity == 'on': pool.extend(['Buy Deku Shield'] + ['Buy Hylian Shield'] @@ -420,26 +430,28 @@ def get_pool_core(world): + ['Buy Fairy\'s Spirit'] * 2 + ['Buy Bottle Bug'] * 2 + ['Buy Fish'] * 2 - + shopfiller) + + shopfiller + + shopsanity_rupees) else: pool.extend(['Buy Deku Shield'] + ['Buy Hylian Shield'] + ['Buy Goron Tunic'] + ['Buy Zora Tunic'] - + ['Buy Deku Nut (5)'] * 1 + ['Buy Deku Nut (10)'] * 1 + + ['Buy Deku Nut (5)'] + ['Buy Deku Nut (10)'] + ['Buy Deku Stick (1)'] * 2 + ['Buy Deku Seeds (30)'] * 2 - + ['Buy Arrows (10)'] * 1 + ['Buy Arrows (30)'] * 1 - + ['Buy Bombchu (5)'] * 1 + ['Buy Bombchu (10)'] * 1 + ['Buy Bombchu (20)'] - + ['Buy Bombs (5)'] * 1 + ['Buy Bombs (10)'] * 1 + ['Buy Bombs (20)'] - + ['Buy Green Potion'] * 1 - + ['Buy Red Potion'] * 1 - + ['Buy Blue Fire'] * 1 - + ['Buy Fairy\'s Spirit'] * 1 - + ['Buy Bottle Bug'] * 1 - + ['Buy Fish'] * 1 + + ['Buy Arrows (10)'] + ['Buy Arrows (30)'] + + ['Buy Bombchu (5)'] + ['Buy Bombchu (10)'] + ['Buy Bombchu (20)'] + + ['Buy Bombs (5)'] + ['Buy Bombs (10)'] + ['Buy Bombs (20)'] + + ['Buy Green Potion'] + + ['Buy Red Potion'] + + ['Buy Blue Fire'] + + ['Buy Fairy\'s Spirit'] + + ['Buy Bottle Bug'] + + ['Buy Fish'] + ['Sold Out'] * 18 - + shopfiller) + + shopfiller + + shopsanity_rupees) pool.extend(alwaysitems) for _ in range(normal_bottle_count): diff --git a/Rom.py b/Rom.py index 53b23ebe4..13eaa1c6f 100644 --- a/Rom.py +++ b/Rom.py @@ -1386,6 +1386,11 @@ def write_save_table(rom): # reduce item message lengths update_item_messages(messages, world) + # Add 3rd Wallet Upgrade + rom.write_int16(0xB6D57E, 0x0003) + rom.write_int16(0xB6EC52, 999) + update_message_by_id(messages, 0x00F8, "\x08\x13\x57You got a \x05\x43Tycoon's Wallet\x05\x40!\x01Now you can hold\x01up to \x05\x46999\x05\x40 \x05\x46Rupees\x05\x40.", 0x23) + repack_messages(rom, messages) write_shop_items(rom, shop_items) diff --git a/data/base2current.json b/data/base2current.json index 6f5c9189f..7751046c3 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -1 +1 @@ -[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 196]}, {"11135032": [8, 16, 13, 78]}, {"11311804": [12, 16, 11, 205]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 190, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 132]}, {"11427312": [12, 16, 13, 45]}, {"11427320": [12, 16, 11, 200]}, {"11427332": [0, 0]}, {"11427335": [0]}, {"11431496": [12, 16, 11, 195, 1, 15, 192, 33]}, {"11559936": [130]}, {"11559938": [14, 222]}, {"11559948": [49, 248, 0, 2]}, {"11562028": [12, 16, 13, 95]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 61]}, {"11882076": [12, 16, 13, 26]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 99, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 106, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 113, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 92, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 140]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 18]}, {"12427480": [12, 16, 10, 106]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 110]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 12, 39, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 152]}, {"12491480": [12, 16, 10, 161]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"12584172": [8, 16, 12, 8]}, {"12587128": [60, 9, 128, 18, 129, 42, 166, 76, 52, 11]}, {"12587139": [9, 17, 75]}, {"12587144": [52, 2, 0, 0, 52]}, {"12587151": [2]}, {"12589216": [12, 16, 12, 26]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 147]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 120]}, {"13709176": [52, 15]}, {"13709179": [0]}, {"14109028": [16, 0]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 128, 73, 14, 222]}, {"14149508": [52]}, {"14149510": [0, 1, 2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 208]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 224]}, {"14624335": [118]}, {"14720872": [128]}, {"14720874": [14, 222]}, {"14720884": [49, 248, 0, 4]}, {"14720944": [12, 16, 11, 216]}, {"14848904": [8, 16, 11, 247]}, {"14852164": [12, 16, 12, 0]}, {"14872723": [52]}, {"15327704": [52, 9, 64, 0]}, {"15327728": [52]}, {"15327730": [91, 8]}, {"15327744": [52]}, {"15327746": [0, 10]}, {"15327757": [169]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55057455": [1]}, {"55057457": [2]}, {"55057459": [4]}, {"55057461": [8]}, {"55057467": [16]}, {"55057471": [32]}, {"55057473": [64]}, {"55057475": [128, 1]}, {"55057502": [2]}, {"55057504": [4]}, {"55057514": [8]}, {"55057516": [16]}, {"55057518": [32]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 236, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 48, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 76, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 104, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 220, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 108, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 140, 128, 64, 38, 132, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 172, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 39, 212, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 28, 128, 64, 40]}, {"55059600": [83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 3, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 44, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [2, 52, 2]}, {"55060003": [69, 52, 2]}, {"55060007": [70, 3, 224]}, {"55060011": [8]}, {"55060016": [144, 136]}, {"55060019": [162, 49, 8]}, {"55060023": [6, 17]}, {"55060027": [2, 52, 2]}, {"55060031": [55, 52, 2]}, {"55060035": [56, 3, 224]}, {"55060039": [8]}, {"55060044": [144, 136]}, {"55060047": [161, 49, 8]}, {"55060051": [32, 17]}, {"55060055": [2, 52, 2]}, {"55060059": [121, 52, 2]}, {"55060063": [122, 3, 224]}, {"55060067": [8]}, {"55060072": [144, 136]}, {"55060075": [161, 49, 8]}, {"55060079": [4, 17]}, {"55060083": [2, 52, 2]}, {"55060087": [119, 52, 2]}, {"55060091": [120, 3, 224]}, {"55060095": [8]}, {"55060100": [144, 136]}, {"55060103": [50, 17]}, {"55060107": [2, 52, 2]}, {"55060111": [192, 52, 2]}, {"55060115": [193, 3, 224]}, {"55060119": [8]}, {"55060124": [144, 136]}, {"55060127": [163, 49, 8]}, {"55060131": [3, 17]}, {"55060135": [2, 52, 2]}, {"55060139": [77, 52, 162]}, {"55060144": [3, 224]}, {"55060147": [8]}, {"55060152": [144, 136]}, {"55060155": [163, 49, 8]}, {"55060159": [24, 17]}, {"55060163": [2, 52, 2]}, {"55060167": [77, 52, 162]}, {"55060172": [3, 224]}, {"55060175": [8]}, {"55060180": [3, 224]}, {"55060183": [8]}, {"55060188": [52, 8]}, {"55060191": [1, 160, 136]}, {"55060195": [62, 3, 224]}, {"55060199": [8]}, {"55060204": [36, 136]}, {"55060207": [134, 36, 9, 255, 255, 37, 41]}, {"55060215": [1, 52, 1]}, {"55060219": [3]}, {"55060221": [41, 8, 42, 20, 32]}, {"55060227": [7]}, {"55060232": [1, 9, 80, 33, 145, 75]}, {"55060240": [52, 1]}, {"55060243": [255, 21, 97, 255, 247]}, {"55060252": [161, 69]}, {"55060256": [3, 224]}, {"55060259": [8]}, {"55060264": [36, 136]}, {"55060267": [168, 1, 6, 64, 33, 145, 9]}, {"55060276": [1, 37, 72, 37, 161, 9]}, {"55060284": [3, 224]}, {"55060287": [8]}, {"55060292": [36, 136]}, {"55060295": [188, 1, 5, 64, 33, 129, 9]}, {"55060304": [5, 33]}, {"55060307": [2]}, {"55060312": [52, 9]}, {"55060316": [37, 41]}, {"55060319": [1, 161, 9]}, {"55060324": [3, 224]}, {"55060327": [8]}, {"55060332": [52, 8]}, {"55060335": [1, 160, 136]}, {"55060339": [61, 52, 8]}, {"55060343": [20, 160, 136]}, {"55060347": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [50, 160, 136]}, {"55060375": [58, 52, 8]}, {"55060379": [48, 164, 136, 19, 244, 160, 136]}, {"55060387": [51, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [2, 160, 136]}, {"55060403": [50, 52, 8]}, {"55060407": [1, 160, 136]}, {"55060411": [58, 160, 136]}, {"55060415": [60, 52, 8]}, {"55060419": [96, 164, 136, 19, 244, 160, 136]}, {"55060427": [51, 3, 224]}, {"55060431": [8]}, {"55060436": [144, 136]}, {"55060439": [124, 52, 1]}, {"55060443": [255, 17, 1]}, {"55060447": [6, 52, 2]}, {"55060451": [107, 144, 136]}, {"55060455": [148, 45, 8]}, {"55060459": [6, 17]}, {"55060463": [2, 52, 2]}, {"55060467": [106, 52, 2]}, {"55060471": [3, 3, 224]}, {"55060475": [8]}, {"55060480": [144, 136]}, {"55060483": [123, 52, 1]}, {"55060487": [255, 17, 1]}, {"55060491": [2, 52, 162]}, {"55060496": [52, 2]}, {"55060499": [12, 3, 224]}, {"55060503": [8]}, {"55060508": [52, 8]}, {"55060511": [7, 160, 136]}, {"55060515": [123, 3, 224]}, {"55060519": [8]}, {"55060524": [52, 8]}, {"55060527": [1]}, {"55060529": [168, 64, 4, 140, 137]}, {"55060535": [164, 1, 40, 72, 37, 172, 137]}, {"55060543": [164, 3, 224]}, {"55060547": [8]}, {"55060552": [48, 132]}, {"55060555": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060567": [140, 16, 129]}, {"55060571": [22, 145, 2]}, {"55060575": [117, 52, 1]}, {"55060579": [141, 16, 129]}, {"55060583": [19, 145, 2]}, {"55060587": [117, 16, 128]}, {"55060591": [17, 145, 2]}, {"55060595": [116, 52, 1]}, {"55060599": [138, 16, 129]}, {"55060603": [14, 145, 2]}, {"55060607": [116, 52, 1]}, {"55060611": [139, 16, 129]}, {"55060615": [11, 145, 2]}, {"55060619": [116, 52, 1]}, {"55060623": [88, 16, 129]}, {"55060627": [8, 52, 2]}, {"55060632": [52, 1]}, {"55060635": [120, 16, 129]}, {"55060639": [5, 52, 2]}, {"55060644": [52, 1]}, {"55060647": [121, 16, 129]}, {"55060651": [2, 52, 2]}, {"55060656": [52, 2]}, {"55060659": [255, 3, 224]}, {"55060663": [8]}, {"55060668": [39, 189, 255, 224, 175, 191]}, {"55060675": [16, 175, 176]}, {"55060679": [20, 12, 16, 11, 11]}, {"55060688": [4, 65]}, {"55060691": [2]}, {"55060696": [52, 2]}, {"55060699": [91]}, {"55060701": [64, 32, 33, 12, 16, 11, 114]}, {"55060712": [16, 96]}, {"55060715": [22, 175, 163]}, {"55060719": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060728": [133, 9]}, {"55060731": [2, 17, 32]}, {"55060735": [3, 52, 10]}, {"55060739": [1, 16]}, {"55060743": [12, 165, 10]}, {"55060748": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060759": [6, 144, 102]}, {"55060763": [7, 140, 105]}, {"55060767": [8, 1, 32, 248, 9]}, {"55060776": [143, 163]}, {"55060779": [28, 144, 101]}, {"55060783": [1, 12, 1, 191, 115, 2, 32, 32, 33, 143, 163]}, {"55060795": [28, 144, 101]}, {"55060799": [3, 16]}, {"55060803": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060815": [6]}, {"55060817": [74]}, {"55060819": [24]}, {"55060822": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060832": [60, 8, 128, 64, 37, 8, 32]}, {"55060840": [133, 9]}, {"55060843": [2, 17, 32]}, {"55060847": [3, 52, 10]}, {"55060851": [1, 165, 10]}, {"55060856": [52, 5]}, {"55060859": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060871": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060882": [48, 33, 143, 191]}, {"55060887": [16, 143, 176]}, {"55060891": [20, 39, 189]}, {"55060895": [32, 3, 224]}, {"55060899": [8]}, {"55060904": [143, 166]}, {"55060907": [48, 132, 197]}, {"55060911": [4, 8, 16, 10, 114]}, {"55060920": [143, 185]}, {"55060923": [44, 135, 37]}, {"55060927": [4, 8, 16, 10, 114]}, {"55060936": [60, 10, 128, 64, 37, 74, 32, 8, 141, 75]}, {"55060947": [12, 17, 96]}, {"55060951": [2]}, {"55060956": [149, 69]}, {"55060959": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060972": [60, 9, 128, 64, 37, 41, 32, 24, 129, 42]}, {"55060983": [3, 5, 64]}, {"55060987": [11, 1, 42, 72, 32, 129, 40]}, {"55060996": [52, 10]}, {"55060999": [127, 21, 10]}, {"55061003": [6]}, {"55061008": [60, 10, 128, 18, 37, 74, 165, 208, 133, 72]}, {"55061019": [144, 33, 8]}, {"55061023": [1, 165, 72]}, {"55061027": [144, 161, 32]}, {"55061032": [3, 224]}, {"55061035": [8]}, {"55061040": [60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061051": [12, 17, 32]}, {"55061055": [2]}, {"55061060": [129, 3]}, {"55061063": [2]}, {"55061065": [3, 15, 195]}, {"55061069": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061083": [8]}, {"55061088": [144, 69]}, {"55061091": [3, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061103": [12, 17, 32]}, {"55061107": [2]}, {"55061112": [145, 5]}, {"55061115": [3, 3, 224]}, {"55061119": [8]}, {"55061124": [143, 162]}, {"55061127": [36, 144, 69]}, {"55061132": [60, 8, 128, 64, 37, 8, 32]}, {"55061140": [133, 9]}, {"55061143": [2, 17, 32]}, {"55061147": [4, 52, 10]}, {"55061151": [1, 165, 10]}, {"55061156": [16]}, {"55061159": [24, 52, 5]}, {"55061163": [65, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061175": [12, 17, 32]}, {"55061179": [19]}, {"55061184": [145, 5]}, {"55061187": [1, 175, 164]}, {"55061192": [175, 165]}, {"55061195": [4, 175, 166]}, {"55061199": [8, 39, 189, 255, 232, 175, 191]}, {"55061207": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061219": [6, 145, 6]}, {"55061223": [7, 141, 9]}, {"55061227": [8, 1, 32, 248, 9]}, {"55061236": [143, 191]}, {"55061239": [16, 39, 189]}, {"55061243": [24, 143, 164]}, {"55061248": [143, 165]}, {"55061251": [4, 143, 166]}, {"55061255": [8, 3, 224]}, {"55061259": [8]}, {"55061264": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061275": [16, 175, 163]}, {"55061279": [20, 175, 191]}, {"55061283": [24, 12, 16, 10, 209]}, {"55061292": [143, 162]}, {"55061295": [16, 143, 163]}, {"55061299": [20, 143, 191]}, {"55061303": [24, 39, 189]}, {"55061307": [32, 3, 224]}, {"55061311": [8]}, {"55061316": [39, 189, 255, 232, 175, 191]}, {"55061323": [16, 60, 8, 128, 64, 37, 8, 32, 8, 173]}, {"55061336": [173]}, {"55061339": [4, 173]}, {"55061343": [8, 173]}, {"55061347": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061363": [42]}, {"55061369": [9, 15, 195, 1, 33, 32, 38]}, {"55061377": [129, 32, 35, 141, 5, 4, 40, 12, 16, 11, 11]}, {"55061392": [4, 64]}, {"55061395": [34]}, {"55061400": [52, 68]}, {"55061404": [12, 16, 11, 114]}, {"55061412": [16, 96]}, {"55061415": [12]}, {"55061420": [60, 8, 128, 64, 37, 8, 32, 8, 140, 105]}, {"55061432": [173, 9]}, {"55061436": [140, 105]}, {"55061439": [4, 173, 9]}, {"55061443": [4, 140, 105]}, {"55061447": [8, 173, 9]}, {"55061451": [8, 52, 9]}, {"55061455": [1, 173, 9]}, {"55061459": [12, 144, 98]}, {"55061464": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061480": [52, 1]}, {"55061483": [10, 21, 65]}, {"55061487": [6]}, {"55061492": [149, 42]}, {"55061495": [28, 49, 74, 240, 31]}, {"55061501": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061511": [28, 129, 9, 4, 36, 5, 33]}, {"55061519": [2]}, {"55061525": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061535": [16, 39, 189]}, {"55061539": [24, 3, 224]}, {"55061543": [8]}, {"55061548": [39, 189, 255, 232, 175, 191]}, {"55061555": [16, 12, 16, 11, 25]}, {"55061564": [36, 1, 255, 255, 16, 65]}, {"55061571": [4]}, {"55061576": [52, 68]}, {"55061580": [12, 16, 11, 77]}, {"55061588": [143, 191]}, {"55061591": [16, 39, 189]}, {"55061595": [24, 3, 224]}, {"55061599": [8]}, {"55061604": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061615": [164, 52, 8]}, {"55061620": [52, 137]}, {"55061624": [148, 170]}, {"55061628": [52, 1, 1, 156, 21, 65]}, {"55061635": [8]}, {"55061640": [52, 8]}, {"55061643": [3, 148, 171]}, {"55061647": [28, 49, 105]}, {"55061651": [255, 49, 98, 31]}, {"55061657": [2, 18, 2, 16]}, {"55061663": [31]}, {"55061668": [52, 1]}, {"55061671": [10, 21, 65]}, {"55061675": [14]}, {"55061680": [148, 171]}, {"55061683": [28, 52, 1]}, {"55061687": [16, 20, 65]}, {"55061691": [8]}, {"55061696": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061707": [4]}, {"55061712": [36, 2, 255, 255, 16]}, {"55061719": [21]}, {"55061724": [52, 8]}, {"55061727": [1, 49, 105]}, {"55061731": [31, 52, 1]}, {"55061735": [21, 21, 65]}, {"55061739": [12]}, {"55061744": [52, 1]}, {"55061747": [62, 16, 129]}, {"55061751": [7]}, {"55061756": [52, 1]}, {"55061759": [66, 16, 129]}, {"55061763": [4]}, {"55061768": [36, 2, 255, 255, 16]}, {"55061775": [7]}, {"55061780": [52, 8]}, {"55061783": [2, 144, 169, 1, 65]}, {"55061789": [2, 18]}, {"55061793": [72, 16, 37]}, {"55061797": [2, 18]}, {"55061801": [73, 16, 37, 3, 224]}, {"55061807": [8]}, {"55061812": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061824": [129, 9]}, {"55061828": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061851": [4, 141, 9]}, {"55061856": [17, 32]}, {"55061859": [23]}, {"55061865": [9, 82, 2, 49, 75, 248]}, {"55061873": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061896": [49, 34]}, {"55061899": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061920": [60, 12, 128, 64, 37, 140, 28]}, {"55061928": [129, 140]}, {"55061932": [17, 108]}, {"55061935": [4, 165, 32]}, {"55061939": [2, 161, 43]}, {"55061943": [2, 161, 34]}, {"55061947": [3, 173, 36]}, {"55061951": [4, 3, 224]}, {"55061955": [8]}, {"55061960": [39, 189, 255, 224, 175, 176]}, {"55061967": [16, 175, 177]}, {"55061971": [20, 175, 191]}, {"55061975": [24, 52, 130]}, {"55061980": [52, 80]}, {"55061984": [38, 8, 255, 128, 5]}, {"55061991": [18]}, {"55061996": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55062007": [16, 1, 9]}, {"55062011": [24]}, {"55062014": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55062032": [142, 40]}, {"55062035": [12, 1]}, {"55062038": [248, 9]}, {"55062044": [20, 80, 255, 239]}, {"55062052": [54, 35]}, {"55062056": [16]}, {"55062059": [2]}, {"55062064": [52, 3]}, {"55062068": [143, 176]}, {"55062071": [16, 143, 177]}, {"55062075": [20, 143, 191]}, {"55062079": [24, 39, 189]}, {"55062083": [32, 3, 224]}, {"55062087": [8]}, {"55062092": [140, 136, 29, 44, 52, 9]}, {"55062099": [1]}, {"55062101": [9, 78]}, {"55062104": [1, 9, 16, 36, 16, 64]}, {"55062111": [36]}, {"55062116": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062131": [164, 52, 1]}, {"55062135": [61, 17, 129]}, {"55062139": [10]}, {"55062145": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062155": [25]}, {"55062160": [52, 13]}, {"55062163": [1, 161, 141, 29, 40, 37, 74]}, {"55062171": [3, 16]}, {"55062175": [9]}, {"55062180": [52, 12]}, {"55062183": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062199": [14]}, {"55062204": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062240": [60, 9, 128, 64, 37, 41, 32, 24, 161, 40]}, {"55062252": [52, 2]}, {"55062256": [3, 224]}, {"55062259": [8]}, {"55062264": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062276": [16]}, {"55062279": [34]}, {"55062284": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062296": [16]}, {"55062299": [29]}, {"55062304": [52, 2]}, {"55062307": [255, 32, 232, 255, 166, 33, 8]}, {"55062315": [97, 16]}, {"55062319": [24]}, {"55062324": [52, 8]}, {"55062327": [100, 16]}, {"55062331": [21]}, {"55062336": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062351": [1, 160, 40, 14, 222, 52, 8]}, {"55062359": [104, 16]}, {"55062363": [13]}, {"55062368": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062383": [4, 160, 40, 14, 222, 52, 8]}, {"55062391": [106, 16]}, {"55062395": [5]}, {"55062400": [52, 5]}, {"55062403": [3, 52, 8]}, {"55062407": [107, 16]}, {"55062411": [1]}, {"55062416": [60, 9, 128, 64, 37, 41, 32, 24, 60, 10, 128, 64, 37, 74, 32, 27, 129, 44]}, {"55062436": [17, 136]}, {"55062439": [11, 33, 41]}, {"55062443": [1, 21, 42, 255, 252]}, {"55062452": [60, 9, 128, 64, 37, 41, 32, 23, 33, 41]}, {"55062463": [1, 17, 42]}, {"55062467": [4, 129, 44]}, {"55062472": [21, 128, 255, 252]}, {"55062480": [161, 40]}, {"55062484": [3, 224]}, {"55062487": [8]}, {"55062493": [96, 120, 33, 129, 236, 14, 223, 49, 142]}, {"55062503": [128, 17, 192]}, {"55062507": [3, 52, 3]}, {"55062511": [5, 3, 224]}, {"55062515": [8, 52, 2]}, {"55062519": [2, 3, 224]}, {"55062523": [8]}, {"55062525": [96, 16, 33, 133, 194]}, {"55062531": [164, 60, 8, 128, 18, 37, 8, 165, 208, 129, 9, 14, 223, 53, 41]}, {"55062547": [128, 161, 9, 14, 223, 3, 224]}, {"55062555": [8]}, {"55062560": [132, 142]}, {"55062563": [28, 60, 9, 128, 64, 37, 41, 28, 12]}, {"55062573": [14, 64, 64, 1, 40, 72, 32, 133, 42]}, {"55062584": [60, 9, 128, 18, 37, 41, 165, 208, 133, 43, 15, 48, 1, 75, 96, 36, 52, 2]}, {"55062604": [17, 128]}, {"55062607": [4]}, {"55062612": [52, 13]}, {"55062615": [38, 164, 141]}, {"55062619": [28, 52, 2]}, {"55062623": [1, 3, 224]}, {"55062627": [8]}, {"55062632": [132, 174]}, {"55062635": [28, 60, 9, 128, 64, 37, 41, 28, 12]}, {"55062645": [14, 64, 64, 1, 40, 72, 32, 133, 42]}, {"55062656": [60, 9, 128, 18, 37, 41, 165, 208, 133, 43, 15, 48, 1, 75, 96, 37, 165, 44, 15, 48, 3, 224]}, {"55062679": [8]}, {"55062684": [175, 164]}, {"55062687": [104, 175, 165]}, {"55062691": [108, 175, 166]}, {"55062695": [112, 175, 167]}, {"55062699": [116, 39, 189, 255, 232, 175, 163]}, {"55062707": [16, 175, 191]}, {"55062711": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062727": [32, 21]}, {"55062731": [31]}, {"55062736": [60, 9, 128, 64, 37, 41, 32, 27, 52, 10]}, {"55062747": [255, 161, 42]}, {"55062752": [60, 9, 128, 64, 37, 41, 32, 24, 36, 10, 255, 255, 52, 12]}, {"55062767": [3, 33, 74]}, {"55062771": [1, 17, 76]}, {"55062775": [20, 1, 42, 88, 32, 129, 104]}, {"55062784": [17]}, {"55062786": [255, 251]}, {"55062792": [60, 9, 128, 64, 37, 41, 32, 27, 161, 42]}, {"55062804": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062815": [1, 165, 42]}, {"55062820": [60, 9, 128, 65, 52, 10]}, {"55062827": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 209]}, {"55062856": [143, 163]}, {"55062859": [16, 143, 191]}, {"55062863": [20, 39, 189]}, {"55062867": [24, 143, 164]}, {"55062871": [104, 143, 165]}, {"55062875": [108, 143, 166]}, {"55062879": [112, 143, 167]}, {"55062883": [116, 132, 110, 19, 196, 3, 224]}, {"55062891": [8]}, {"55062896": [147, 25]}, {"55062899": [116, 52, 1]}, {"55062903": [255, 23, 33]}, {"55062907": [2]}, {"55062912": [52, 25]}, {"55062915": [44, 3, 224]}, {"55062919": [8, 167, 185]}, {"55062923": [154, 147, 44]}, {"55062927": [116, 52, 1]}, {"55062931": [255, 21, 129]}, {"55062935": [2]}, {"55062940": [52, 12]}, {"55062943": [44, 3, 224]}, {"55062947": [8]}, {"55062952": [145, 174]}, {"55062955": [116, 52, 1]}, {"55062959": [255, 21, 193]}, {"55062963": [2]}, {"55062968": [52, 14]}, {"55062971": [44, 3, 224]}, {"55062975": [8, 167, 174]}, {"55062979": [154, 145, 207]}, {"55062983": [116, 52, 1]}, {"55062987": [255, 21, 225]}, {"55062991": [2]}, {"55062996": [52, 15]}, {"55062999": [44, 3, 224]}, {"55063003": [8, 167, 175]}, {"55063007": [154, 60, 8, 128, 64, 37, 8, 32, 28, 142, 9]}, {"55063019": [104, 173, 9]}, {"55063024": [142, 9]}, {"55063027": [108, 173, 9]}, {"55063031": [4, 150, 9]}, {"55063035": [112, 165, 9]}, {"55063039": [8, 150, 9]}, {"55063043": [156, 165, 9]}, {"55063047": [10, 3, 224]}, {"55063051": [8, 142, 14]}, {"55063055": [4, 39, 189, 255, 224, 175, 176]}, {"55063063": [16, 175, 177]}, {"55063067": [20, 175, 191]}, {"55063071": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 28, 142, 8]}, {"55063091": [4, 17]}, {"55063095": [5]}, {"55063100": [12, 16, 12, 174]}, {"55063108": [16]}, {"55063111": [3]}, {"55063116": [12, 16, 12, 193]}, {"55063124": [12, 16, 12, 161, 52, 4]}, {"55063132": [12, 16, 12, 161, 52, 4]}, {"55063139": [1, 12, 16, 12, 161, 52, 4]}, {"55063147": [2, 143, 176]}, {"55063151": [16, 143, 177]}, {"55063155": [20, 143, 191]}, {"55063159": [24, 39, 189]}, {"55063163": [32, 3, 224]}, {"55063167": [8]}, {"55063172": [2, 4, 64, 33, 145, 9]}, {"55063179": [108, 52, 1]}, {"55063183": [255, 17, 33]}, {"55063187": [7]}, {"55063192": [2, 9, 72, 33, 145, 41]}, {"55063199": [116, 52, 1]}, {"55063203": [44, 17, 33]}, {"55063207": [2]}, {"55063212": [161, 9]}, {"55063215": [105, 3, 224]}, {"55063219": [8]}, {"55063224": [39, 189, 255, 232, 175, 191]}, {"55063231": [16, 142, 40]}, {"55063236": [174, 8]}, {"55063239": [64, 142, 40]}, {"55063243": [4, 174, 8]}, {"55063247": [68, 150, 40]}, {"55063251": [8, 166, 8]}, {"55063255": [72, 162]}, {"55063258": [15, 51, 146, 8]}, {"55063263": [74, 52, 1]}, {"55063267": [255, 21, 1]}, {"55063271": [3]}, {"55063276": [12, 16, 12, 207]}, {"55063284": [143, 191]}, {"55063287": [16, 39, 189]}, {"55063291": [24, 3, 224]}, {"55063295": [8]}, {"55063300": [142, 8]}, {"55063303": [64, 174, 8]}, {"55063307": [104, 142, 8]}, {"55063311": [68, 174, 8]}, {"55063315": [108, 150, 8]}, {"55063319": [72, 166, 8]}, {"55063323": [112, 146, 8]}, {"55063327": [104, 52, 1]}, {"55063331": [255, 21, 1]}, {"55063335": [3]}, {"55063340": [52, 8]}, {"55063343": [1, 162, 8, 15, 51, 3, 224]}, {"55063351": [8]}, {"55063356": [39, 189, 255, 232, 175, 191]}, {"55063363": [16, 150, 8]}, {"55063367": [156, 49, 8]}, {"55063371": [64, 17]}, {"55063375": [5]}, {"55063380": [150, 8]}, {"55063383": [112, 49, 8, 255, 15, 53, 8]}, {"55063391": [48, 166, 8]}, {"55063395": [112, 146, 40]}, {"55063399": [1, 162, 8]}, {"55063403": [105, 150, 40]}, {"55063407": [2, 166, 8]}, {"55063411": [106, 142, 40]}, {"55063415": [4, 174, 8]}, {"55063419": [108, 12, 16, 12, 233, 52, 4]}, {"55063428": [12, 16, 12, 233, 52, 4]}, {"55063435": [1, 12, 16, 12, 233, 52, 4]}, {"55063443": [2, 143, 191]}, {"55063447": [16, 39, 189]}, {"55063451": [24, 3, 224]}, {"55063455": [8]}, {"55063460": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 52, 80, 145, 10]}, {"55063475": [108, 52, 1]}, {"55063479": [255, 17, 65]}, {"55063483": [5]}, {"55063488": [1, 42, 72, 33, 145, 41]}, {"55063496": [21, 32]}, {"55063499": [28]}, {"55063504": [60, 9, 128, 64, 37, 41, 52, 67, 37, 41]}, {"55063515": [1, 145, 42]}, {"55063520": [17, 64]}, {"55063523": [19]}, {"55063528": [2, 10, 88, 33, 145, 107]}, {"55063535": [116, 52, 1]}, {"55063539": [255, 17, 97, 255, 248]}, {"55063548": [146, 12]}, {"55063551": [108, 17, 138, 255, 245]}, {"55063560": [146, 12]}, {"55063563": [109, 17, 138, 255, 242]}, {"55063572": [146, 12]}, {"55063575": [110, 17, 138, 255, 239]}, {"55063584": [161, 11]}, {"55063587": [105, 161, 10]}, {"55063591": [108, 16]}, {"55063595": [4]}, {"55063600": [52, 9]}, {"55063603": [255, 161, 9]}, {"55063607": [105, 161, 9]}, {"55063611": [108, 3, 224]}, {"55063615": [8]}, {"55063620": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063633": [1, 1, 1, 1, 1]}, {"55063639": [1, 1, 1, 1, 1]}, {"55063645": [1]}, {"55063647": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063657": [51, 8, 33, 32, 15]}, {"55063663": [71, 21, 234]}, {"55063667": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063679": [164]}, {"55063681": [15, 122, 3, 20, 64]}, {"55063687": [5, 52, 2, 72, 48, 21, 226]}, {"55063695": [7]}, {"55063700": [36, 25]}, {"55063703": [3, 16]}, {"55063707": [4, 52, 2, 99, 17, 21, 226]}, {"55063715": [2]}, {"55063720": [36, 25]}, {"55063723": [3, 3, 224]}, {"55063727": [8]}, {"55063732": [141, 173, 138, 160, 52, 2, 128]}, {"55063740": [16, 77]}, {"55063743": [2]}, {"55063748": [16]}, {"55063751": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063767": [1, 16, 64]}, {"55063771": [2]}, {"55063776": [16]}, {"55063779": [2, 52, 2]}, {"55063783": [1, 161, 226, 28, 191, 3, 224]}, {"55063791": [8]}, {"55063797": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063811": [164]}, {"55063813": [15, 122, 3, 20, 64]}, {"55063819": [5, 52, 2, 72, 48, 21, 226]}, {"55063827": [7]}, {"55063832": [36, 25]}, {"55063835": [3, 16]}, {"55063839": [4, 52, 2, 99, 17, 21, 226]}, {"55063847": [2]}, {"55063852": [36, 25]}, {"55063855": [3, 3, 224]}, {"55063859": [8]}, {"55063864": [20, 64]}, {"55063867": [14]}, {"55063872": [52, 1]}, {"55063875": [24, 20, 129]}, {"55063879": [11, 60, 10, 128, 18, 37, 74, 165, 208, 129, 72]}, {"55063891": [166, 49, 8]}, {"55063895": [32, 17]}, {"55063899": [6, 52, 2]}, {"55063904": [129, 72]}, {"55063907": [123, 52, 1]}, {"55063911": [7, 17, 1]}, {"55063915": [2, 52, 2]}, {"55063919": [1, 52, 2]}, {"55063924": [3, 224]}, {"55063927": [8]}, {"55063932": [162, 37]}, {"55063935": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063947": [4, 142, 10]}, {"55063952": [17, 64]}, {"55063955": [11]}, {"55063961": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063973": [24, 194, 2, 23]}, {"55063979": [3, 49, 89]}, {"55063983": [255, 129, 234]}, {"55063988": [3, 42, 200, 37, 8, 16, 13, 98, 161, 249]}, {"55064000": [3, 224]}, {"55064003": [8]}] \ No newline at end of file +[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 204]}, {"11135032": [8, 16, 13, 86]}, {"11311804": [12, 16, 11, 213]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 198, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 140]}, {"11427312": [12, 16, 13, 53]}, {"11427320": [12, 16, 11, 208]}, {"11427332": [0, 0]}, {"11427335": [0]}, {"11431496": [12, 16, 11, 203, 1, 15, 192, 33]}, {"11559936": [130]}, {"11559938": [14, 222]}, {"11559948": [49, 248, 0, 2]}, {"11562028": [12, 16, 13, 103]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 69]}, {"11882076": [12, 16, 13, 34]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 107, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 114, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 121, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 100, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 148]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 26]}, {"12427480": [12, 16, 10, 114]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 118]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 12, 47, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 160]}, {"12491480": [12, 16, 10, 169]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"12584172": [8, 16, 12, 16]}, {"12587128": [60, 9, 128, 18, 129, 42, 166, 76, 52, 11]}, {"12587139": [9, 17, 75]}, {"12587144": [52, 2, 0, 0, 52]}, {"12587151": [2]}, {"12589216": [12, 16, 12, 34]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 155]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 128]}, {"13709176": [52, 15]}, {"13709179": [0]}, {"14109028": [16, 0]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 128, 73, 14, 222]}, {"14149508": [52]}, {"14149510": [0, 1, 2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 216]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 232]}, {"14624335": [118]}, {"14720872": [128]}, {"14720874": [14, 222]}, {"14720884": [49, 248, 0, 4]}, {"14720944": [12, 16, 11, 224]}, {"14848904": [8, 16, 11, 255]}, {"14852164": [12, 16, 12, 8]}, {"14872723": [52]}, {"15327704": [52, 9, 64, 0]}, {"15327728": [52]}, {"15327730": [91, 8]}, {"15327744": [52]}, {"15327746": [0, 10]}, {"15327757": [169]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 55, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 55, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55057455": [1]}, {"55057457": [2]}, {"55057459": [4]}, {"55057461": [8]}, {"55057467": [16]}, {"55057471": [32]}, {"55057473": [64]}, {"55057475": [128, 1]}, {"55057502": [2]}, {"55057504": [4]}, {"55057514": [8]}, {"55057516": [16]}, {"55057518": [32]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 236, 83, 65, 35, 67]}, {"55058597": [209, 255, 255, 128, 64, 38, 60, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 38, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 38, 108, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 38, 136, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 252, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 244, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 244, 128, 64, 38, 188, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 244, 128, 64, 38, 188, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 244, 128, 64, 38, 188, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 244, 128, 64, 38, 216, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 244, 128, 64, 38, 216, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 244, 128, 64, 38, 216, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 244, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 244, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 140, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 172, 128, 64, 38, 164, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 204, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 39, 244, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 60, 128, 64, 40, 32, 83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 4, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 6, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 3, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 8, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 5, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 7, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 76, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [5, 52, 2]}, {"55060003": [69, 52, 9]}, {"55060007": [16, 17, 9]}, {"55060011": [2, 52, 2]}, {"55060015": [70, 52, 162]}, {"55060020": [3, 224]}, {"55060023": [8]}, {"55060028": [144, 136]}, {"55060031": [162, 53, 8]}, {"55060035": [48, 160, 136]}, {"55060039": [162, 3, 224]}, {"55060043": [8]}, {"55060048": [144, 136]}, {"55060051": [162, 49, 8]}, {"55060055": [6, 17]}, {"55060059": [2, 52, 2]}, {"55060063": [55, 52, 2]}, {"55060067": [56, 3, 224]}, {"55060071": [8]}, {"55060076": [144, 136]}, {"55060079": [161, 49, 8]}, {"55060083": [32, 17]}, {"55060087": [2, 52, 2]}, {"55060091": [121, 52, 2]}, {"55060095": [122, 3, 224]}, {"55060099": [8]}, {"55060104": [144, 136]}, {"55060107": [161, 49, 8]}, {"55060111": [4, 17]}, {"55060115": [2, 52, 2]}, {"55060119": [119, 52, 2]}, {"55060123": [120, 3, 224]}, {"55060127": [8]}, {"55060132": [144, 136]}, {"55060135": [50, 17]}, {"55060139": [2, 52, 2]}, {"55060143": [192, 52, 2]}, {"55060147": [193, 3, 224]}, {"55060151": [8]}, {"55060156": [144, 136]}, {"55060159": [163, 49, 8]}, {"55060163": [3, 17]}, {"55060167": [2, 52, 2]}, {"55060171": [77, 52, 162]}, {"55060176": [3, 224]}, {"55060179": [8]}, {"55060184": [144, 136]}, {"55060187": [163, 49, 8]}, {"55060191": [24, 17]}, {"55060195": [2, 52, 2]}, {"55060199": [77, 52, 162]}, {"55060204": [3, 224]}, {"55060207": [8]}, {"55060212": [3, 224]}, {"55060215": [8]}, {"55060220": [52, 8]}, {"55060223": [1, 160, 136]}, {"55060227": [62, 3, 224]}, {"55060231": [8]}, {"55060236": [36, 136]}, {"55060239": [134, 36, 9, 255, 255, 37, 41]}, {"55060247": [1, 52, 1]}, {"55060251": [3]}, {"55060253": [41, 8, 42, 20, 32]}, {"55060259": [7]}, {"55060264": [1, 9, 80, 33, 145, 75]}, {"55060272": [52, 1]}, {"55060275": [255, 21, 97, 255, 247]}, {"55060284": [161, 69]}, {"55060288": [3, 224]}, {"55060291": [8]}, {"55060296": [36, 136]}, {"55060299": [168, 1, 6, 64, 33, 145, 9]}, {"55060308": [1, 37, 72, 37, 161, 9]}, {"55060316": [3, 224]}, {"55060319": [8]}, {"55060324": [36, 136]}, {"55060327": [188, 1, 5, 64, 33, 129, 9]}, {"55060336": [5, 33]}, {"55060339": [2]}, {"55060344": [52, 9]}, {"55060348": [37, 41]}, {"55060351": [1, 161, 9]}, {"55060356": [3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [61, 52, 8]}, {"55060375": [20, 160, 136]}, {"55060379": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [1, 160, 136]}, {"55060403": [50, 160, 136]}, {"55060407": [58, 52, 8]}, {"55060411": [48, 164, 136, 19, 244, 160, 136]}, {"55060419": [51, 3, 224]}, {"55060423": [8]}, {"55060428": [52, 8]}, {"55060431": [2, 160, 136]}, {"55060435": [50, 52, 8]}, {"55060439": [1, 160, 136]}, {"55060443": [58, 160, 136]}, {"55060447": [60, 52, 8]}, {"55060451": [96, 164, 136, 19, 244, 160, 136]}, {"55060459": [51, 3, 224]}, {"55060463": [8]}, {"55060468": [144, 136]}, {"55060471": [124, 52, 1]}, {"55060475": [255, 17, 1]}, {"55060479": [6, 52, 2]}, {"55060483": [107, 144, 136]}, {"55060487": [148, 45, 8]}, {"55060491": [6, 17]}, {"55060495": [2, 52, 2]}, {"55060499": [106, 52, 2]}, {"55060503": [3, 3, 224]}, {"55060507": [8]}, {"55060512": [144, 136]}, {"55060515": [123, 52, 1]}, {"55060519": [255, 17, 1]}, {"55060523": [2, 52, 162]}, {"55060528": [52, 2]}, {"55060531": [12, 3, 224]}, {"55060535": [8]}, {"55060540": [52, 8]}, {"55060543": [7, 160, 136]}, {"55060547": [123, 3, 224]}, {"55060551": [8]}, {"55060556": [52, 8]}, {"55060559": [1]}, {"55060561": [168, 64, 4, 140, 137]}, {"55060567": [164, 1, 40, 72, 37, 172, 137]}, {"55060575": [164, 3, 224]}, {"55060579": [8]}, {"55060584": [48, 132]}, {"55060587": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060599": [140, 16, 129]}, {"55060603": [22, 145, 2]}, {"55060607": [117, 52, 1]}, {"55060611": [141, 16, 129]}, {"55060615": [19, 145, 2]}, {"55060619": [117, 16, 128]}, {"55060623": [17, 145, 2]}, {"55060627": [116, 52, 1]}, {"55060631": [138, 16, 129]}, {"55060635": [14, 145, 2]}, {"55060639": [116, 52, 1]}, {"55060643": [139, 16, 129]}, {"55060647": [11, 145, 2]}, {"55060651": [116, 52, 1]}, {"55060655": [88, 16, 129]}, {"55060659": [8, 52, 2]}, {"55060664": [52, 1]}, {"55060667": [120, 16, 129]}, {"55060671": [5, 52, 2]}, {"55060676": [52, 1]}, {"55060679": [121, 16, 129]}, {"55060683": [2, 52, 2]}, {"55060688": [52, 2]}, {"55060691": [255, 3, 224]}, {"55060695": [8]}, {"55060700": [39, 189, 255, 224, 175, 191]}, {"55060707": [16, 175, 176]}, {"55060711": [20, 12, 16, 11, 19]}, {"55060720": [4, 65]}, {"55060723": [2]}, {"55060728": [52, 2]}, {"55060731": [91]}, {"55060733": [64, 32, 33, 12, 16, 11, 122]}, {"55060744": [16, 96]}, {"55060747": [22, 175, 163]}, {"55060751": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060760": [133, 9]}, {"55060763": [2, 17, 32]}, {"55060767": [3, 52, 10]}, {"55060771": [1, 16]}, {"55060775": [12, 165, 10]}, {"55060780": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060791": [6, 144, 102]}, {"55060795": [7, 140, 105]}, {"55060799": [8, 1, 32, 248, 9]}, {"55060808": [143, 163]}, {"55060811": [28, 144, 101]}, {"55060815": [1, 12, 1, 191, 115, 2, 32, 32, 33, 143, 163]}, {"55060827": [28, 144, 101]}, {"55060831": [3, 16]}, {"55060835": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060847": [6]}, {"55060849": [74]}, {"55060851": [24]}, {"55060854": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060864": [60, 8, 128, 64, 37, 8, 32]}, {"55060872": [133, 9]}, {"55060875": [2, 17, 32]}, {"55060879": [3, 52, 10]}, {"55060883": [1, 165, 10]}, {"55060888": [52, 5]}, {"55060891": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060903": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060914": [48, 33, 143, 191]}, {"55060919": [16, 143, 176]}, {"55060923": [20, 39, 189]}, {"55060927": [32, 3, 224]}, {"55060931": [8]}, {"55060936": [143, 166]}, {"55060939": [48, 132, 197]}, {"55060943": [4, 8, 16, 10, 122]}, {"55060952": [143, 185]}, {"55060955": [44, 135, 37]}, {"55060959": [4, 8, 16, 10, 122]}, {"55060968": [60, 10, 128, 64, 37, 74, 32, 8, 141, 75]}, {"55060979": [12, 17, 96]}, {"55060983": [2]}, {"55060988": [149, 69]}, {"55060991": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55061004": [60, 9, 128, 64, 37, 41, 32, 24, 129, 42]}, {"55061015": [3, 5, 64]}, {"55061019": [11, 1, 42, 72, 32, 129, 40]}, {"55061028": [52, 10]}, {"55061031": [127, 21, 10]}, {"55061035": [6]}, {"55061040": [60, 10, 128, 18, 37, 74, 165, 208, 133, 72]}, {"55061051": [144, 33, 8]}, {"55061055": [1, 165, 72]}, {"55061059": [144, 161, 32]}, {"55061064": [3, 224]}, {"55061067": [8]}, {"55061072": [60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061083": [12, 17, 32]}, {"55061087": [2]}, {"55061092": [129, 3]}, {"55061095": [2]}, {"55061097": [3, 15, 195]}, {"55061101": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061115": [8]}, {"55061120": [144, 69]}, {"55061123": [3, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061135": [12, 17, 32]}, {"55061139": [2]}, {"55061144": [145, 5]}, {"55061147": [3, 3, 224]}, {"55061151": [8]}, {"55061156": [143, 162]}, {"55061159": [36, 144, 69]}, {"55061164": [60, 8, 128, 64, 37, 8, 32]}, {"55061172": [133, 9]}, {"55061175": [2, 17, 32]}, {"55061179": [4, 52, 10]}, {"55061183": [1, 165, 10]}, {"55061188": [16]}, {"55061191": [24, 52, 5]}, {"55061195": [65, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061207": [12, 17, 32]}, {"55061211": [19]}, {"55061216": [145, 5]}, {"55061219": [1, 175, 164]}, {"55061224": [175, 165]}, {"55061227": [4, 175, 166]}, {"55061231": [8, 39, 189, 255, 232, 175, 191]}, {"55061239": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061251": [6, 145, 6]}, {"55061255": [7, 141, 9]}, {"55061259": [8, 1, 32, 248, 9]}, {"55061268": [143, 191]}, {"55061271": [16, 39, 189]}, {"55061275": [24, 143, 164]}, {"55061280": [143, 165]}, {"55061283": [4, 143, 166]}, {"55061287": [8, 3, 224]}, {"55061291": [8]}, {"55061296": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061307": [16, 175, 163]}, {"55061311": [20, 175, 191]}, {"55061315": [24, 12, 16, 10, 217]}, {"55061324": [143, 162]}, {"55061327": [16, 143, 163]}, {"55061331": [20, 143, 191]}, {"55061335": [24, 39, 189]}, {"55061339": [32, 3, 224]}, {"55061343": [8]}, {"55061348": [39, 189, 255, 232, 175, 191]}, {"55061355": [16, 60, 8, 128, 64, 37, 8, 32, 8, 173]}, {"55061368": [173]}, {"55061371": [4, 173]}, {"55061375": [8, 173]}, {"55061379": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061395": [42]}, {"55061401": [9, 15, 195, 1, 33, 32, 38]}, {"55061409": [129, 32, 35, 141, 5, 4, 40, 12, 16, 11, 19]}, {"55061424": [4, 64]}, {"55061427": [34]}, {"55061432": [52, 68]}, {"55061436": [12, 16, 11, 122]}, {"55061444": [16, 96]}, {"55061447": [12]}, {"55061452": [60, 8, 128, 64, 37, 8, 32, 8, 140, 105]}, {"55061464": [173, 9]}, {"55061468": [140, 105]}, {"55061471": [4, 173, 9]}, {"55061475": [4, 140, 105]}, {"55061479": [8, 173, 9]}, {"55061483": [8, 52, 9]}, {"55061487": [1, 173, 9]}, {"55061491": [12, 144, 98]}, {"55061496": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061512": [52, 1]}, {"55061515": [10, 21, 65]}, {"55061519": [6]}, {"55061524": [149, 42]}, {"55061527": [28, 49, 74, 240, 31]}, {"55061533": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061543": [28, 129, 9, 4, 36, 5, 33]}, {"55061551": [2]}, {"55061557": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061567": [16, 39, 189]}, {"55061571": [24, 3, 224]}, {"55061575": [8]}, {"55061580": [39, 189, 255, 232, 175, 191]}, {"55061587": [16, 12, 16, 11, 33]}, {"55061596": [36, 1, 255, 255, 16, 65]}, {"55061603": [4]}, {"55061608": [52, 68]}, {"55061612": [12, 16, 11, 85]}, {"55061620": [143, 191]}, {"55061623": [16, 39, 189]}, {"55061627": [24, 3, 224]}, {"55061631": [8]}, {"55061636": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061647": [164, 52, 8]}, {"55061652": [52, 137]}, {"55061656": [148, 170]}, {"55061660": [52, 1, 1, 156, 21, 65]}, {"55061667": [8]}, {"55061672": [52, 8]}, {"55061675": [3, 148, 171]}, {"55061679": [28, 49, 105]}, {"55061683": [255, 49, 98, 31]}, {"55061689": [2, 18, 2, 16]}, {"55061695": [31]}, {"55061700": [52, 1]}, {"55061703": [10, 21, 65]}, {"55061707": [14]}, {"55061712": [148, 171]}, {"55061715": [28, 52, 1]}, {"55061719": [16, 20, 65]}, {"55061723": [8]}, {"55061728": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061739": [4]}, {"55061744": [36, 2, 255, 255, 16]}, {"55061751": [21]}, {"55061756": [52, 8]}, {"55061759": [1, 49, 105]}, {"55061763": [31, 52, 1]}, {"55061767": [21, 21, 65]}, {"55061771": [12]}, {"55061776": [52, 1]}, {"55061779": [62, 16, 129]}, {"55061783": [7]}, {"55061788": [52, 1]}, {"55061791": [66, 16, 129]}, {"55061795": [4]}, {"55061800": [36, 2, 255, 255, 16]}, {"55061807": [7]}, {"55061812": [52, 8]}, {"55061815": [2, 144, 169, 1, 65]}, {"55061821": [2, 18]}, {"55061825": [72, 16, 37]}, {"55061829": [2, 18]}, {"55061833": [73, 16, 37, 3, 224]}, {"55061839": [8]}, {"55061844": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061856": [129, 9]}, {"55061860": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061883": [4, 141, 9]}, {"55061888": [17, 32]}, {"55061891": [23]}, {"55061897": [9, 82, 2, 49, 75, 248]}, {"55061905": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061928": [49, 34]}, {"55061931": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061952": [60, 12, 128, 64, 37, 140, 28]}, {"55061960": [129, 140]}, {"55061964": [17, 108]}, {"55061967": [4, 165, 32]}, {"55061971": [2, 161, 43]}, {"55061975": [2, 161, 34]}, {"55061979": [3, 173, 36]}, {"55061983": [4, 3, 224]}, {"55061987": [8]}, {"55061992": [39, 189, 255, 224, 175, 176]}, {"55061999": [16, 175, 177]}, {"55062003": [20, 175, 191]}, {"55062007": [24, 52, 130]}, {"55062012": [52, 80]}, {"55062016": [38, 8, 255, 128, 5]}, {"55062023": [18]}, {"55062028": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55062039": [16, 1, 9]}, {"55062043": [24]}, {"55062046": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55062064": [142, 40]}, {"55062067": [12, 1]}, {"55062070": [248, 9]}, {"55062076": [20, 80, 255, 239]}, {"55062084": [54, 35]}, {"55062088": [16]}, {"55062091": [2]}, {"55062096": [52, 3]}, {"55062100": [143, 176]}, {"55062103": [16, 143, 177]}, {"55062107": [20, 143, 191]}, {"55062111": [24, 39, 189]}, {"55062115": [32, 3, 224]}, {"55062119": [8]}, {"55062124": [140, 136, 29, 44, 52, 9]}, {"55062131": [1]}, {"55062133": [9, 78]}, {"55062136": [1, 9, 16, 36, 16, 64]}, {"55062143": [36]}, {"55062148": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062163": [164, 52, 1]}, {"55062167": [61, 17, 129]}, {"55062171": [10]}, {"55062177": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062187": [25]}, {"55062192": [52, 13]}, {"55062195": [1, 161, 141, 29, 40, 37, 74]}, {"55062203": [3, 16]}, {"55062207": [9]}, {"55062212": [52, 12]}, {"55062215": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062231": [14]}, {"55062236": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062272": [60, 9, 128, 64, 37, 41, 32, 24, 161, 40]}, {"55062284": [52, 2]}, {"55062288": [3, 224]}, {"55062291": [8]}, {"55062296": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062308": [16]}, {"55062311": [34]}, {"55062316": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062328": [16]}, {"55062331": [29]}, {"55062336": [52, 2]}, {"55062339": [255, 32, 232, 255, 166, 33, 8]}, {"55062347": [97, 16]}, {"55062351": [24]}, {"55062356": [52, 8]}, {"55062359": [100, 16]}, {"55062363": [21]}, {"55062368": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062383": [1, 160, 40, 14, 222, 52, 8]}, {"55062391": [104, 16]}, {"55062395": [13]}, {"55062400": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062415": [4, 160, 40, 14, 222, 52, 8]}, {"55062423": [106, 16]}, {"55062427": [5]}, {"55062432": [52, 5]}, {"55062435": [3, 52, 8]}, {"55062439": [107, 16]}, {"55062443": [1]}, {"55062448": [60, 9, 128, 64, 37, 41, 32, 24, 60, 10, 128, 64, 37, 74, 32, 27, 129, 44]}, {"55062468": [17, 136]}, {"55062471": [11, 33, 41]}, {"55062475": [1, 21, 42, 255, 252]}, {"55062484": [60, 9, 128, 64, 37, 41, 32, 23, 33, 41]}, {"55062495": [1, 17, 42]}, {"55062499": [4, 129, 44]}, {"55062504": [21, 128, 255, 252]}, {"55062512": [161, 40]}, {"55062516": [3, 224]}, {"55062519": [8]}, {"55062525": [96, 120, 33, 129, 236, 14, 223, 49, 142]}, {"55062535": [128, 17, 192]}, {"55062539": [3, 52, 3]}, {"55062543": [5, 3, 224]}, {"55062547": [8, 52, 2]}, {"55062551": [2, 3, 224]}, {"55062555": [8]}, {"55062557": [96, 16, 33, 133, 194]}, {"55062563": [164, 60, 8, 128, 18, 37, 8, 165, 208, 129, 9, 14, 223, 53, 41]}, {"55062579": [128, 161, 9, 14, 223, 3, 224]}, {"55062587": [8]}, {"55062592": [132, 142]}, {"55062595": [28, 60, 9, 128, 64, 37, 41, 28, 12]}, {"55062605": [14, 64, 64, 1, 40, 72, 32, 133, 42]}, {"55062616": [60, 9, 128, 18, 37, 41, 165, 208, 133, 43, 15, 48, 1, 75, 96, 36, 52, 2]}, {"55062636": [17, 128]}, {"55062639": [4]}, {"55062644": [52, 13]}, {"55062647": [38, 164, 141]}, {"55062651": [28, 52, 2]}, {"55062655": [1, 3, 224]}, {"55062659": [8]}, {"55062664": [132, 174]}, {"55062667": [28, 60, 9, 128, 64, 37, 41, 28, 12]}, {"55062677": [14, 64, 64, 1, 40, 72, 32, 133, 42]}, {"55062688": [60, 9, 128, 18, 37, 41, 165, 208, 133, 43, 15, 48, 1, 75, 96, 37, 165, 44, 15, 48, 3, 224]}, {"55062711": [8]}, {"55062716": [175, 164]}, {"55062719": [104, 175, 165]}, {"55062723": [108, 175, 166]}, {"55062727": [112, 175, 167]}, {"55062731": [116, 39, 189, 255, 232, 175, 163]}, {"55062739": [16, 175, 191]}, {"55062743": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062759": [32, 21]}, {"55062763": [31]}, {"55062768": [60, 9, 128, 64, 37, 41, 32, 27, 52, 10]}, {"55062779": [255, 161, 42]}, {"55062784": [60, 9, 128, 64, 37, 41, 32, 24, 36, 10, 255, 255, 52, 12]}, {"55062799": [3, 33, 74]}, {"55062803": [1, 17, 76]}, {"55062807": [20, 1, 42, 88, 32, 129, 104]}, {"55062816": [17]}, {"55062818": [255, 251]}, {"55062824": [60, 9, 128, 64, 37, 41, 32, 27, 161, 42]}, {"55062836": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062847": [1, 165, 42]}, {"55062852": [60, 9, 128, 65, 52, 10]}, {"55062859": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 217]}, {"55062888": [143, 163]}, {"55062891": [16, 143, 191]}, {"55062895": [20, 39, 189]}, {"55062899": [24, 143, 164]}, {"55062903": [104, 143, 165]}, {"55062907": [108, 143, 166]}, {"55062911": [112, 143, 167]}, {"55062915": [116, 132, 110, 19, 196, 3, 224]}, {"55062923": [8]}, {"55062928": [147, 25]}, {"55062931": [116, 52, 1]}, {"55062935": [255, 23, 33]}, {"55062939": [2]}, {"55062944": [52, 25]}, {"55062947": [44, 3, 224]}, {"55062951": [8, 167, 185]}, {"55062955": [154, 147, 44]}, {"55062959": [116, 52, 1]}, {"55062963": [255, 21, 129]}, {"55062967": [2]}, {"55062972": [52, 12]}, {"55062975": [44, 3, 224]}, {"55062979": [8]}, {"55062984": [145, 174]}, {"55062987": [116, 52, 1]}, {"55062991": [255, 21, 193]}, {"55062995": [2]}, {"55063000": [52, 14]}, {"55063003": [44, 3, 224]}, {"55063007": [8, 167, 174]}, {"55063011": [154, 145, 207]}, {"55063015": [116, 52, 1]}, {"55063019": [255, 21, 225]}, {"55063023": [2]}, {"55063028": [52, 15]}, {"55063031": [44, 3, 224]}, {"55063035": [8, 167, 175]}, {"55063039": [154, 60, 8, 128, 64, 37, 8, 32, 28, 142, 9]}, {"55063051": [104, 173, 9]}, {"55063056": [142, 9]}, {"55063059": [108, 173, 9]}, {"55063063": [4, 150, 9]}, {"55063067": [112, 165, 9]}, {"55063071": [8, 150, 9]}, {"55063075": [156, 165, 9]}, {"55063079": [10, 3, 224]}, {"55063083": [8, 142, 14]}, {"55063087": [4, 39, 189, 255, 224, 175, 176]}, {"55063095": [16, 175, 177]}, {"55063099": [20, 175, 191]}, {"55063103": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 28, 142, 8]}, {"55063123": [4, 17]}, {"55063127": [5]}, {"55063132": [12, 16, 12, 182]}, {"55063140": [16]}, {"55063143": [3]}, {"55063148": [12, 16, 12, 201]}, {"55063156": [12, 16, 12, 169, 52, 4]}, {"55063164": [12, 16, 12, 169, 52, 4]}, {"55063171": [1, 12, 16, 12, 169, 52, 4]}, {"55063179": [2, 143, 176]}, {"55063183": [16, 143, 177]}, {"55063187": [20, 143, 191]}, {"55063191": [24, 39, 189]}, {"55063195": [32, 3, 224]}, {"55063199": [8]}, {"55063204": [2, 4, 64, 33, 145, 9]}, {"55063211": [108, 52, 1]}, {"55063215": [255, 17, 33]}, {"55063219": [7]}, {"55063224": [2, 9, 72, 33, 145, 41]}, {"55063231": [116, 52, 1]}, {"55063235": [44, 17, 33]}, {"55063239": [2]}, {"55063244": [161, 9]}, {"55063247": [105, 3, 224]}, {"55063251": [8]}, {"55063256": [39, 189, 255, 232, 175, 191]}, {"55063263": [16, 142, 40]}, {"55063268": [174, 8]}, {"55063271": [64, 142, 40]}, {"55063275": [4, 174, 8]}, {"55063279": [68, 150, 40]}, {"55063283": [8, 166, 8]}, {"55063287": [72, 162]}, {"55063290": [15, 51, 146, 8]}, {"55063295": [74, 52, 1]}, {"55063299": [255, 21, 1]}, {"55063303": [3]}, {"55063308": [12, 16, 12, 215]}, {"55063316": [143, 191]}, {"55063319": [16, 39, 189]}, {"55063323": [24, 3, 224]}, {"55063327": [8]}, {"55063332": [142, 8]}, {"55063335": [64, 174, 8]}, {"55063339": [104, 142, 8]}, {"55063343": [68, 174, 8]}, {"55063347": [108, 150, 8]}, {"55063351": [72, 166, 8]}, {"55063355": [112, 146, 8]}, {"55063359": [104, 52, 1]}, {"55063363": [255, 21, 1]}, {"55063367": [3]}, {"55063372": [52, 8]}, {"55063375": [1, 162, 8, 15, 51, 3, 224]}, {"55063383": [8]}, {"55063388": [39, 189, 255, 232, 175, 191]}, {"55063395": [16, 150, 8]}, {"55063399": [156, 49, 8]}, {"55063403": [64, 17]}, {"55063407": [5]}, {"55063412": [150, 8]}, {"55063415": [112, 49, 8, 255, 15, 53, 8]}, {"55063423": [48, 166, 8]}, {"55063427": [112, 146, 40]}, {"55063431": [1, 162, 8]}, {"55063435": [105, 150, 40]}, {"55063439": [2, 166, 8]}, {"55063443": [106, 142, 40]}, {"55063447": [4, 174, 8]}, {"55063451": [108, 12, 16, 12, 241, 52, 4]}, {"55063460": [12, 16, 12, 241, 52, 4]}, {"55063467": [1, 12, 16, 12, 241, 52, 4]}, {"55063475": [2, 143, 191]}, {"55063479": [16, 39, 189]}, {"55063483": [24, 3, 224]}, {"55063487": [8]}, {"55063492": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 52, 112, 145, 10]}, {"55063507": [108, 52, 1]}, {"55063511": [255, 17, 65]}, {"55063515": [5]}, {"55063520": [1, 42, 72, 33, 145, 41]}, {"55063528": [21, 32]}, {"55063531": [28]}, {"55063536": [60, 9, 128, 64, 37, 41, 52, 99, 37, 41]}, {"55063547": [1, 145, 42]}, {"55063552": [17, 64]}, {"55063555": [19]}, {"55063560": [2, 10, 88, 33, 145, 107]}, {"55063567": [116, 52, 1]}, {"55063571": [255, 17, 97, 255, 248]}, {"55063580": [146, 12]}, {"55063583": [108, 17, 138, 255, 245]}, {"55063592": [146, 12]}, {"55063595": [109, 17, 138, 255, 242]}, {"55063604": [146, 12]}, {"55063607": [110, 17, 138, 255, 239]}, {"55063616": [161, 11]}, {"55063619": [105, 161, 10]}, {"55063623": [108, 16]}, {"55063627": [4]}, {"55063632": [52, 9]}, {"55063635": [255, 161, 9]}, {"55063639": [105, 161, 9]}, {"55063643": [108, 3, 224]}, {"55063647": [8]}, {"55063652": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063665": [1, 1, 1, 1, 1]}, {"55063671": [1, 1, 1, 1, 1]}, {"55063677": [1]}, {"55063679": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063689": [51, 8, 33, 32, 15]}, {"55063695": [71, 21, 234]}, {"55063699": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063711": [164]}, {"55063713": [15, 122, 3, 20, 64]}, {"55063719": [5, 52, 2, 72, 48, 21, 226]}, {"55063727": [7]}, {"55063732": [36, 25]}, {"55063735": [3, 16]}, {"55063739": [4, 52, 2, 99, 17, 21, 226]}, {"55063747": [2]}, {"55063752": [36, 25]}, {"55063755": [3, 3, 224]}, {"55063759": [8]}, {"55063764": [141, 173, 138, 160, 52, 2, 128]}, {"55063772": [16, 77]}, {"55063775": [2]}, {"55063780": [16]}, {"55063783": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063799": [1, 16, 64]}, {"55063803": [2]}, {"55063808": [16]}, {"55063811": [2, 52, 2]}, {"55063815": [1, 161, 226, 28, 191, 3, 224]}, {"55063823": [8]}, {"55063829": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063843": [164]}, {"55063845": [15, 122, 3, 20, 64]}, {"55063851": [5, 52, 2, 72, 48, 21, 226]}, {"55063859": [7]}, {"55063864": [36, 25]}, {"55063867": [3, 16]}, {"55063871": [4, 52, 2, 99, 17, 21, 226]}, {"55063879": [2]}, {"55063884": [36, 25]}, {"55063887": [3, 3, 224]}, {"55063891": [8]}, {"55063896": [20, 64]}, {"55063899": [14]}, {"55063904": [52, 1]}, {"55063907": [24, 20, 129]}, {"55063911": [11, 60, 10, 128, 18, 37, 74, 165, 208, 129, 72]}, {"55063923": [166, 49, 8]}, {"55063927": [32, 17]}, {"55063931": [6, 52, 2]}, {"55063936": [129, 72]}, {"55063939": [123, 52, 1]}, {"55063943": [7, 17, 1]}, {"55063947": [2, 52, 2]}, {"55063951": [1, 52, 2]}, {"55063956": [3, 224]}, {"55063959": [8]}, {"55063964": [162, 37]}, {"55063967": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063979": [4, 142, 10]}, {"55063984": [17, 64]}, {"55063987": [11]}, {"55063993": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55064005": [24, 194, 2, 23]}, {"55064011": [3, 49, 89]}, {"55064015": [255, 129, 234]}, {"55064020": [3, 42, 200, 37, 8, 16, 13, 106, 161, 249]}, {"55064032": [3, 224]}, {"55064035": [8]}] \ No newline at end of file diff --git a/version.py b/version.py index 458ad6456..1edd241ec 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.37 f.LUM' +__version__ = '2.15.38 f.LUM' From 53d33dc90c78d2bc597ebef80a65f47aace18f2d Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 23 Aug 2018 18:32:31 -0400 Subject: [PATCH 337/755] Added not-bombchu functionality for shopsaniity --- ASM/src/hacks.asm | 18 ------------------ Rom.py | 18 ++++++++++++++---- Settings.py | 1 - data/base2current.json | 2 +- version.py | 2 +- 5 files changed, 16 insertions(+), 25 deletions(-) diff --git a/ASM/src/hacks.asm b/ASM/src/hacks.asm index 3fc26c880..ab9cb71f3 100755 --- a/ASM/src/hacks.asm +++ b/ASM/src/hacks.asm @@ -432,21 +432,3 @@ ; lh t6, 0x1c(a1) .org 0xC018A0 jal Set_Sold_Out - - -; Bombchu item checks for bombchus -; Replaces -; addiu at, zero, 0xff -; bnel v0, at, 0x74 ; if no bombchu item -; addiu v0, zero, 1 ; if bombchu item, return v0 = 1 -; b 0x74 -; move v0, zero ; if not bombchu item, return v0 = 0 -; addiu v0, zero, 1 ; unreachable -.org 0xC01078 - lui t1, 0x8012 - lb t2, -0x59B4(t1) ; bombchu item (SAVE_CONTEXT + 0x7C) - li t3, 9 - beq t2, t3, @@return ; if has bombchu, return 1 (can buy) - li v0, 0 - li v0, 2 ; else, return 2 (can't buy) -@@return: diff --git a/Rom.py b/Rom.py index 13eaa1c6f..9ed01789f 100644 --- a/Rom.py +++ b/Rom.py @@ -263,6 +263,15 @@ def patch_rom(world, rom): # Change Bowling Alley check to bombchus (Part 2) rom.write_bytes(0x00E2D890, [0x81, 0x6B, 0xA6, 0x4C, 0x24, 0x0C, 0x00, 0x09, 0x51, 0x6C, 0x00, 0x0A]) + + # Cannot buy bombchu refills without Bombchus + rom.write_int32s(0xC01078, + [0x3C098012, # lui t1, 0x8012 + 0x812AA64C, # lb t2, -0x59B4(t1) ; bombchu item (SAVE_CONTEXT + 0x7C) + 0x340B0009, # li t3, 9 + 0x114B0002, # beq t2, t3, @@return ; if has bombchu, return 1 (can buy) + 0x34020000, # li v0, 0 + 0x34020002]) # li v0, 2 ; else, return 2 (can't buy) else: # Change Bowling Alley check to Bomb Bag (Part 1) rom.write_bytes(0x00E2D716, [0xA6, 0x72]) @@ -1290,10 +1299,11 @@ def write_save_table(rom): if world.shopsanity == 'off': # Add more bombchus to make them more accessible - rom.write_int16(world.get_location('Kokiri Shop Item 8').address, - ItemFactory('Buy Bombchu (5)').index) - rom.write_int16(world.get_location('Bazaar Item 8').address, - ItemFactory('Buy Bombchu (5)').index) + if world.bombchus_in_logic: + rom.write_int16(world.get_location('Kokiri Shop Item 8').address, + ItemFactory('Buy Bombchu (5)').index) + rom.write_int16(world.get_location('Bazaar Item 8').address, + ItemFactory('Buy Bombchu (5)').index) else: # kokiri shop shop_objs = place_shop_items(rom, shop_items, messages, free_shop_ids, diff --git a/Settings.py b/Settings.py index 2620f79bf..a2857a00b 100644 --- a/Settings.py +++ b/Settings.py @@ -393,7 +393,6 @@ def __init__(self, settings_dict): Bombchus are available at Kokiri Shop and the Bazaar. ''', - 'dependency': lambda guivar: False }), Setting_Info('trials', int, 3, True, { diff --git a/data/base2current.json b/data/base2current.json index 7751046c3..8cbbd8ba0 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -1 +1 @@ -[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 204]}, {"11135032": [8, 16, 13, 86]}, {"11311804": [12, 16, 11, 213]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 198, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 140]}, {"11427312": [12, 16, 13, 53]}, {"11427320": [12, 16, 11, 208]}, {"11427332": [0, 0]}, {"11427335": [0]}, {"11431496": [12, 16, 11, 203, 1, 15, 192, 33]}, {"11559936": [130]}, {"11559938": [14, 222]}, {"11559948": [49, 248, 0, 2]}, {"11562028": [12, 16, 13, 103]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 69]}, {"11882076": [12, 16, 13, 34]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 107, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 114, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 121, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 100, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 148]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 26]}, {"12427480": [12, 16, 10, 114]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 118]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 12, 47, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 160]}, {"12491480": [12, 16, 10, 169]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"12584172": [8, 16, 12, 16]}, {"12587128": [60, 9, 128, 18, 129, 42, 166, 76, 52, 11]}, {"12587139": [9, 17, 75]}, {"12587144": [52, 2, 0, 0, 52]}, {"12587151": [2]}, {"12589216": [12, 16, 12, 34]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 155]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 128]}, {"13709176": [52, 15]}, {"13709179": [0]}, {"14109028": [16, 0]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 128, 73, 14, 222]}, {"14149508": [52]}, {"14149510": [0, 1, 2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 216]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 232]}, {"14624335": [118]}, {"14720872": [128]}, {"14720874": [14, 222]}, {"14720884": [49, 248, 0, 4]}, {"14720944": [12, 16, 11, 224]}, {"14848904": [8, 16, 11, 255]}, {"14852164": [12, 16, 12, 8]}, {"14872723": [52]}, {"15327704": [52, 9, 64, 0]}, {"15327728": [52]}, {"15327730": [91, 8]}, {"15327744": [52]}, {"15327746": [0, 10]}, {"15327757": [169]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 55, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 55, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55057455": [1]}, {"55057457": [2]}, {"55057459": [4]}, {"55057461": [8]}, {"55057467": [16]}, {"55057471": [32]}, {"55057473": [64]}, {"55057475": [128, 1]}, {"55057502": [2]}, {"55057504": [4]}, {"55057514": [8]}, {"55057516": [16]}, {"55057518": [32]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 236, 83, 65, 35, 67]}, {"55058597": [209, 255, 255, 128, 64, 38, 60, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 38, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 38, 108, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 38, 136, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 252, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 244, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 244, 128, 64, 38, 188, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 244, 128, 64, 38, 188, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 244, 128, 64, 38, 188, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 244, 128, 64, 38, 216, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 244, 128, 64, 38, 216, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 244, 128, 64, 38, 216, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 244, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 244, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 140, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 172, 128, 64, 38, 164, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 204, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 39, 244, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 60, 128, 64, 40, 32, 83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 4, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 6, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 3, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 8, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 5, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 7, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 76, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [5, 52, 2]}, {"55060003": [69, 52, 9]}, {"55060007": [16, 17, 9]}, {"55060011": [2, 52, 2]}, {"55060015": [70, 52, 162]}, {"55060020": [3, 224]}, {"55060023": [8]}, {"55060028": [144, 136]}, {"55060031": [162, 53, 8]}, {"55060035": [48, 160, 136]}, {"55060039": [162, 3, 224]}, {"55060043": [8]}, {"55060048": [144, 136]}, {"55060051": [162, 49, 8]}, {"55060055": [6, 17]}, {"55060059": [2, 52, 2]}, {"55060063": [55, 52, 2]}, {"55060067": [56, 3, 224]}, {"55060071": [8]}, {"55060076": [144, 136]}, {"55060079": [161, 49, 8]}, {"55060083": [32, 17]}, {"55060087": [2, 52, 2]}, {"55060091": [121, 52, 2]}, {"55060095": [122, 3, 224]}, {"55060099": [8]}, {"55060104": [144, 136]}, {"55060107": [161, 49, 8]}, {"55060111": [4, 17]}, {"55060115": [2, 52, 2]}, {"55060119": [119, 52, 2]}, {"55060123": [120, 3, 224]}, {"55060127": [8]}, {"55060132": [144, 136]}, {"55060135": [50, 17]}, {"55060139": [2, 52, 2]}, {"55060143": [192, 52, 2]}, {"55060147": [193, 3, 224]}, {"55060151": [8]}, {"55060156": [144, 136]}, {"55060159": [163, 49, 8]}, {"55060163": [3, 17]}, {"55060167": [2, 52, 2]}, {"55060171": [77, 52, 162]}, {"55060176": [3, 224]}, {"55060179": [8]}, {"55060184": [144, 136]}, {"55060187": [163, 49, 8]}, {"55060191": [24, 17]}, {"55060195": [2, 52, 2]}, {"55060199": [77, 52, 162]}, {"55060204": [3, 224]}, {"55060207": [8]}, {"55060212": [3, 224]}, {"55060215": [8]}, {"55060220": [52, 8]}, {"55060223": [1, 160, 136]}, {"55060227": [62, 3, 224]}, {"55060231": [8]}, {"55060236": [36, 136]}, {"55060239": [134, 36, 9, 255, 255, 37, 41]}, {"55060247": [1, 52, 1]}, {"55060251": [3]}, {"55060253": [41, 8, 42, 20, 32]}, {"55060259": [7]}, {"55060264": [1, 9, 80, 33, 145, 75]}, {"55060272": [52, 1]}, {"55060275": [255, 21, 97, 255, 247]}, {"55060284": [161, 69]}, {"55060288": [3, 224]}, {"55060291": [8]}, {"55060296": [36, 136]}, {"55060299": [168, 1, 6, 64, 33, 145, 9]}, {"55060308": [1, 37, 72, 37, 161, 9]}, {"55060316": [3, 224]}, {"55060319": [8]}, {"55060324": [36, 136]}, {"55060327": [188, 1, 5, 64, 33, 129, 9]}, {"55060336": [5, 33]}, {"55060339": [2]}, {"55060344": [52, 9]}, {"55060348": [37, 41]}, {"55060351": [1, 161, 9]}, {"55060356": [3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [61, 52, 8]}, {"55060375": [20, 160, 136]}, {"55060379": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [1, 160, 136]}, {"55060403": [50, 160, 136]}, {"55060407": [58, 52, 8]}, {"55060411": [48, 164, 136, 19, 244, 160, 136]}, {"55060419": [51, 3, 224]}, {"55060423": [8]}, {"55060428": [52, 8]}, {"55060431": [2, 160, 136]}, {"55060435": [50, 52, 8]}, {"55060439": [1, 160, 136]}, {"55060443": [58, 160, 136]}, {"55060447": [60, 52, 8]}, {"55060451": [96, 164, 136, 19, 244, 160, 136]}, {"55060459": [51, 3, 224]}, {"55060463": [8]}, {"55060468": [144, 136]}, {"55060471": [124, 52, 1]}, {"55060475": [255, 17, 1]}, {"55060479": [6, 52, 2]}, {"55060483": [107, 144, 136]}, {"55060487": [148, 45, 8]}, {"55060491": [6, 17]}, {"55060495": [2, 52, 2]}, {"55060499": [106, 52, 2]}, {"55060503": [3, 3, 224]}, {"55060507": [8]}, {"55060512": [144, 136]}, {"55060515": [123, 52, 1]}, {"55060519": [255, 17, 1]}, {"55060523": [2, 52, 162]}, {"55060528": [52, 2]}, {"55060531": [12, 3, 224]}, {"55060535": [8]}, {"55060540": [52, 8]}, {"55060543": [7, 160, 136]}, {"55060547": [123, 3, 224]}, {"55060551": [8]}, {"55060556": [52, 8]}, {"55060559": [1]}, {"55060561": [168, 64, 4, 140, 137]}, {"55060567": [164, 1, 40, 72, 37, 172, 137]}, {"55060575": [164, 3, 224]}, {"55060579": [8]}, {"55060584": [48, 132]}, {"55060587": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060599": [140, 16, 129]}, {"55060603": [22, 145, 2]}, {"55060607": [117, 52, 1]}, {"55060611": [141, 16, 129]}, {"55060615": [19, 145, 2]}, {"55060619": [117, 16, 128]}, {"55060623": [17, 145, 2]}, {"55060627": [116, 52, 1]}, {"55060631": [138, 16, 129]}, {"55060635": [14, 145, 2]}, {"55060639": [116, 52, 1]}, {"55060643": [139, 16, 129]}, {"55060647": [11, 145, 2]}, {"55060651": [116, 52, 1]}, {"55060655": [88, 16, 129]}, {"55060659": [8, 52, 2]}, {"55060664": [52, 1]}, {"55060667": [120, 16, 129]}, {"55060671": [5, 52, 2]}, {"55060676": [52, 1]}, {"55060679": [121, 16, 129]}, {"55060683": [2, 52, 2]}, {"55060688": [52, 2]}, {"55060691": [255, 3, 224]}, {"55060695": [8]}, {"55060700": [39, 189, 255, 224, 175, 191]}, {"55060707": [16, 175, 176]}, {"55060711": [20, 12, 16, 11, 19]}, {"55060720": [4, 65]}, {"55060723": [2]}, {"55060728": [52, 2]}, {"55060731": [91]}, {"55060733": [64, 32, 33, 12, 16, 11, 122]}, {"55060744": [16, 96]}, {"55060747": [22, 175, 163]}, {"55060751": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060760": [133, 9]}, {"55060763": [2, 17, 32]}, {"55060767": [3, 52, 10]}, {"55060771": [1, 16]}, {"55060775": [12, 165, 10]}, {"55060780": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060791": [6, 144, 102]}, {"55060795": [7, 140, 105]}, {"55060799": [8, 1, 32, 248, 9]}, {"55060808": [143, 163]}, {"55060811": [28, 144, 101]}, {"55060815": [1, 12, 1, 191, 115, 2, 32, 32, 33, 143, 163]}, {"55060827": [28, 144, 101]}, {"55060831": [3, 16]}, {"55060835": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060847": [6]}, {"55060849": [74]}, {"55060851": [24]}, {"55060854": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060864": [60, 8, 128, 64, 37, 8, 32]}, {"55060872": [133, 9]}, {"55060875": [2, 17, 32]}, {"55060879": [3, 52, 10]}, {"55060883": [1, 165, 10]}, {"55060888": [52, 5]}, {"55060891": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060903": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060914": [48, 33, 143, 191]}, {"55060919": [16, 143, 176]}, {"55060923": [20, 39, 189]}, {"55060927": [32, 3, 224]}, {"55060931": [8]}, {"55060936": [143, 166]}, {"55060939": [48, 132, 197]}, {"55060943": [4, 8, 16, 10, 122]}, {"55060952": [143, 185]}, {"55060955": [44, 135, 37]}, {"55060959": [4, 8, 16, 10, 122]}, {"55060968": [60, 10, 128, 64, 37, 74, 32, 8, 141, 75]}, {"55060979": [12, 17, 96]}, {"55060983": [2]}, {"55060988": [149, 69]}, {"55060991": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55061004": [60, 9, 128, 64, 37, 41, 32, 24, 129, 42]}, {"55061015": [3, 5, 64]}, {"55061019": [11, 1, 42, 72, 32, 129, 40]}, {"55061028": [52, 10]}, {"55061031": [127, 21, 10]}, {"55061035": [6]}, {"55061040": [60, 10, 128, 18, 37, 74, 165, 208, 133, 72]}, {"55061051": [144, 33, 8]}, {"55061055": [1, 165, 72]}, {"55061059": [144, 161, 32]}, {"55061064": [3, 224]}, {"55061067": [8]}, {"55061072": [60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061083": [12, 17, 32]}, {"55061087": [2]}, {"55061092": [129, 3]}, {"55061095": [2]}, {"55061097": [3, 15, 195]}, {"55061101": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061115": [8]}, {"55061120": [144, 69]}, {"55061123": [3, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061135": [12, 17, 32]}, {"55061139": [2]}, {"55061144": [145, 5]}, {"55061147": [3, 3, 224]}, {"55061151": [8]}, {"55061156": [143, 162]}, {"55061159": [36, 144, 69]}, {"55061164": [60, 8, 128, 64, 37, 8, 32]}, {"55061172": [133, 9]}, {"55061175": [2, 17, 32]}, {"55061179": [4, 52, 10]}, {"55061183": [1, 165, 10]}, {"55061188": [16]}, {"55061191": [24, 52, 5]}, {"55061195": [65, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061207": [12, 17, 32]}, {"55061211": [19]}, {"55061216": [145, 5]}, {"55061219": [1, 175, 164]}, {"55061224": [175, 165]}, {"55061227": [4, 175, 166]}, {"55061231": [8, 39, 189, 255, 232, 175, 191]}, {"55061239": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061251": [6, 145, 6]}, {"55061255": [7, 141, 9]}, {"55061259": [8, 1, 32, 248, 9]}, {"55061268": [143, 191]}, {"55061271": [16, 39, 189]}, {"55061275": [24, 143, 164]}, {"55061280": [143, 165]}, {"55061283": [4, 143, 166]}, {"55061287": [8, 3, 224]}, {"55061291": [8]}, {"55061296": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061307": [16, 175, 163]}, {"55061311": [20, 175, 191]}, {"55061315": [24, 12, 16, 10, 217]}, {"55061324": [143, 162]}, {"55061327": [16, 143, 163]}, {"55061331": [20, 143, 191]}, {"55061335": [24, 39, 189]}, {"55061339": [32, 3, 224]}, {"55061343": [8]}, {"55061348": [39, 189, 255, 232, 175, 191]}, {"55061355": [16, 60, 8, 128, 64, 37, 8, 32, 8, 173]}, {"55061368": [173]}, {"55061371": [4, 173]}, {"55061375": [8, 173]}, {"55061379": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061395": [42]}, {"55061401": [9, 15, 195, 1, 33, 32, 38]}, {"55061409": [129, 32, 35, 141, 5, 4, 40, 12, 16, 11, 19]}, {"55061424": [4, 64]}, {"55061427": [34]}, {"55061432": [52, 68]}, {"55061436": [12, 16, 11, 122]}, {"55061444": [16, 96]}, {"55061447": [12]}, {"55061452": [60, 8, 128, 64, 37, 8, 32, 8, 140, 105]}, {"55061464": [173, 9]}, {"55061468": [140, 105]}, {"55061471": [4, 173, 9]}, {"55061475": [4, 140, 105]}, {"55061479": [8, 173, 9]}, {"55061483": [8, 52, 9]}, {"55061487": [1, 173, 9]}, {"55061491": [12, 144, 98]}, {"55061496": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061512": [52, 1]}, {"55061515": [10, 21, 65]}, {"55061519": [6]}, {"55061524": [149, 42]}, {"55061527": [28, 49, 74, 240, 31]}, {"55061533": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061543": [28, 129, 9, 4, 36, 5, 33]}, {"55061551": [2]}, {"55061557": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061567": [16, 39, 189]}, {"55061571": [24, 3, 224]}, {"55061575": [8]}, {"55061580": [39, 189, 255, 232, 175, 191]}, {"55061587": [16, 12, 16, 11, 33]}, {"55061596": [36, 1, 255, 255, 16, 65]}, {"55061603": [4]}, {"55061608": [52, 68]}, {"55061612": [12, 16, 11, 85]}, {"55061620": [143, 191]}, {"55061623": [16, 39, 189]}, {"55061627": [24, 3, 224]}, {"55061631": [8]}, {"55061636": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061647": [164, 52, 8]}, {"55061652": [52, 137]}, {"55061656": [148, 170]}, {"55061660": [52, 1, 1, 156, 21, 65]}, {"55061667": [8]}, {"55061672": [52, 8]}, {"55061675": [3, 148, 171]}, {"55061679": [28, 49, 105]}, {"55061683": [255, 49, 98, 31]}, {"55061689": [2, 18, 2, 16]}, {"55061695": [31]}, {"55061700": [52, 1]}, {"55061703": [10, 21, 65]}, {"55061707": [14]}, {"55061712": [148, 171]}, {"55061715": [28, 52, 1]}, {"55061719": [16, 20, 65]}, {"55061723": [8]}, {"55061728": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061739": [4]}, {"55061744": [36, 2, 255, 255, 16]}, {"55061751": [21]}, {"55061756": [52, 8]}, {"55061759": [1, 49, 105]}, {"55061763": [31, 52, 1]}, {"55061767": [21, 21, 65]}, {"55061771": [12]}, {"55061776": [52, 1]}, {"55061779": [62, 16, 129]}, {"55061783": [7]}, {"55061788": [52, 1]}, {"55061791": [66, 16, 129]}, {"55061795": [4]}, {"55061800": [36, 2, 255, 255, 16]}, {"55061807": [7]}, {"55061812": [52, 8]}, {"55061815": [2, 144, 169, 1, 65]}, {"55061821": [2, 18]}, {"55061825": [72, 16, 37]}, {"55061829": [2, 18]}, {"55061833": [73, 16, 37, 3, 224]}, {"55061839": [8]}, {"55061844": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061856": [129, 9]}, {"55061860": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061883": [4, 141, 9]}, {"55061888": [17, 32]}, {"55061891": [23]}, {"55061897": [9, 82, 2, 49, 75, 248]}, {"55061905": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061928": [49, 34]}, {"55061931": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061952": [60, 12, 128, 64, 37, 140, 28]}, {"55061960": [129, 140]}, {"55061964": [17, 108]}, {"55061967": [4, 165, 32]}, {"55061971": [2, 161, 43]}, {"55061975": [2, 161, 34]}, {"55061979": [3, 173, 36]}, {"55061983": [4, 3, 224]}, {"55061987": [8]}, {"55061992": [39, 189, 255, 224, 175, 176]}, {"55061999": [16, 175, 177]}, {"55062003": [20, 175, 191]}, {"55062007": [24, 52, 130]}, {"55062012": [52, 80]}, {"55062016": [38, 8, 255, 128, 5]}, {"55062023": [18]}, {"55062028": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55062039": [16, 1, 9]}, {"55062043": [24]}, {"55062046": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55062064": [142, 40]}, {"55062067": [12, 1]}, {"55062070": [248, 9]}, {"55062076": [20, 80, 255, 239]}, {"55062084": [54, 35]}, {"55062088": [16]}, {"55062091": [2]}, {"55062096": [52, 3]}, {"55062100": [143, 176]}, {"55062103": [16, 143, 177]}, {"55062107": [20, 143, 191]}, {"55062111": [24, 39, 189]}, {"55062115": [32, 3, 224]}, {"55062119": [8]}, {"55062124": [140, 136, 29, 44, 52, 9]}, {"55062131": [1]}, {"55062133": [9, 78]}, {"55062136": [1, 9, 16, 36, 16, 64]}, {"55062143": [36]}, {"55062148": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062163": [164, 52, 1]}, {"55062167": [61, 17, 129]}, {"55062171": [10]}, {"55062177": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062187": [25]}, {"55062192": [52, 13]}, {"55062195": [1, 161, 141, 29, 40, 37, 74]}, {"55062203": [3, 16]}, {"55062207": [9]}, {"55062212": [52, 12]}, {"55062215": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062231": [14]}, {"55062236": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062272": [60, 9, 128, 64, 37, 41, 32, 24, 161, 40]}, {"55062284": [52, 2]}, {"55062288": [3, 224]}, {"55062291": [8]}, {"55062296": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062308": [16]}, {"55062311": [34]}, {"55062316": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062328": [16]}, {"55062331": [29]}, {"55062336": [52, 2]}, {"55062339": [255, 32, 232, 255, 166, 33, 8]}, {"55062347": [97, 16]}, {"55062351": [24]}, {"55062356": [52, 8]}, {"55062359": [100, 16]}, {"55062363": [21]}, {"55062368": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062383": [1, 160, 40, 14, 222, 52, 8]}, {"55062391": [104, 16]}, {"55062395": [13]}, {"55062400": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062415": [4, 160, 40, 14, 222, 52, 8]}, {"55062423": [106, 16]}, {"55062427": [5]}, {"55062432": [52, 5]}, {"55062435": [3, 52, 8]}, {"55062439": [107, 16]}, {"55062443": [1]}, {"55062448": [60, 9, 128, 64, 37, 41, 32, 24, 60, 10, 128, 64, 37, 74, 32, 27, 129, 44]}, {"55062468": [17, 136]}, {"55062471": [11, 33, 41]}, {"55062475": [1, 21, 42, 255, 252]}, {"55062484": [60, 9, 128, 64, 37, 41, 32, 23, 33, 41]}, {"55062495": [1, 17, 42]}, {"55062499": [4, 129, 44]}, {"55062504": [21, 128, 255, 252]}, {"55062512": [161, 40]}, {"55062516": [3, 224]}, {"55062519": [8]}, {"55062525": [96, 120, 33, 129, 236, 14, 223, 49, 142]}, {"55062535": [128, 17, 192]}, {"55062539": [3, 52, 3]}, {"55062543": [5, 3, 224]}, {"55062547": [8, 52, 2]}, {"55062551": [2, 3, 224]}, {"55062555": [8]}, {"55062557": [96, 16, 33, 133, 194]}, {"55062563": [164, 60, 8, 128, 18, 37, 8, 165, 208, 129, 9, 14, 223, 53, 41]}, {"55062579": [128, 161, 9, 14, 223, 3, 224]}, {"55062587": [8]}, {"55062592": [132, 142]}, {"55062595": [28, 60, 9, 128, 64, 37, 41, 28, 12]}, {"55062605": [14, 64, 64, 1, 40, 72, 32, 133, 42]}, {"55062616": [60, 9, 128, 18, 37, 41, 165, 208, 133, 43, 15, 48, 1, 75, 96, 36, 52, 2]}, {"55062636": [17, 128]}, {"55062639": [4]}, {"55062644": [52, 13]}, {"55062647": [38, 164, 141]}, {"55062651": [28, 52, 2]}, {"55062655": [1, 3, 224]}, {"55062659": [8]}, {"55062664": [132, 174]}, {"55062667": [28, 60, 9, 128, 64, 37, 41, 28, 12]}, {"55062677": [14, 64, 64, 1, 40, 72, 32, 133, 42]}, {"55062688": [60, 9, 128, 18, 37, 41, 165, 208, 133, 43, 15, 48, 1, 75, 96, 37, 165, 44, 15, 48, 3, 224]}, {"55062711": [8]}, {"55062716": [175, 164]}, {"55062719": [104, 175, 165]}, {"55062723": [108, 175, 166]}, {"55062727": [112, 175, 167]}, {"55062731": [116, 39, 189, 255, 232, 175, 163]}, {"55062739": [16, 175, 191]}, {"55062743": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062759": [32, 21]}, {"55062763": [31]}, {"55062768": [60, 9, 128, 64, 37, 41, 32, 27, 52, 10]}, {"55062779": [255, 161, 42]}, {"55062784": [60, 9, 128, 64, 37, 41, 32, 24, 36, 10, 255, 255, 52, 12]}, {"55062799": [3, 33, 74]}, {"55062803": [1, 17, 76]}, {"55062807": [20, 1, 42, 88, 32, 129, 104]}, {"55062816": [17]}, {"55062818": [255, 251]}, {"55062824": [60, 9, 128, 64, 37, 41, 32, 27, 161, 42]}, {"55062836": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062847": [1, 165, 42]}, {"55062852": [60, 9, 128, 65, 52, 10]}, {"55062859": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 217]}, {"55062888": [143, 163]}, {"55062891": [16, 143, 191]}, {"55062895": [20, 39, 189]}, {"55062899": [24, 143, 164]}, {"55062903": [104, 143, 165]}, {"55062907": [108, 143, 166]}, {"55062911": [112, 143, 167]}, {"55062915": [116, 132, 110, 19, 196, 3, 224]}, {"55062923": [8]}, {"55062928": [147, 25]}, {"55062931": [116, 52, 1]}, {"55062935": [255, 23, 33]}, {"55062939": [2]}, {"55062944": [52, 25]}, {"55062947": [44, 3, 224]}, {"55062951": [8, 167, 185]}, {"55062955": [154, 147, 44]}, {"55062959": [116, 52, 1]}, {"55062963": [255, 21, 129]}, {"55062967": [2]}, {"55062972": [52, 12]}, {"55062975": [44, 3, 224]}, {"55062979": [8]}, {"55062984": [145, 174]}, {"55062987": [116, 52, 1]}, {"55062991": [255, 21, 193]}, {"55062995": [2]}, {"55063000": [52, 14]}, {"55063003": [44, 3, 224]}, {"55063007": [8, 167, 174]}, {"55063011": [154, 145, 207]}, {"55063015": [116, 52, 1]}, {"55063019": [255, 21, 225]}, {"55063023": [2]}, {"55063028": [52, 15]}, {"55063031": [44, 3, 224]}, {"55063035": [8, 167, 175]}, {"55063039": [154, 60, 8, 128, 64, 37, 8, 32, 28, 142, 9]}, {"55063051": [104, 173, 9]}, {"55063056": [142, 9]}, {"55063059": [108, 173, 9]}, {"55063063": [4, 150, 9]}, {"55063067": [112, 165, 9]}, {"55063071": [8, 150, 9]}, {"55063075": [156, 165, 9]}, {"55063079": [10, 3, 224]}, {"55063083": [8, 142, 14]}, {"55063087": [4, 39, 189, 255, 224, 175, 176]}, {"55063095": [16, 175, 177]}, {"55063099": [20, 175, 191]}, {"55063103": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 28, 142, 8]}, {"55063123": [4, 17]}, {"55063127": [5]}, {"55063132": [12, 16, 12, 182]}, {"55063140": [16]}, {"55063143": [3]}, {"55063148": [12, 16, 12, 201]}, {"55063156": [12, 16, 12, 169, 52, 4]}, {"55063164": [12, 16, 12, 169, 52, 4]}, {"55063171": [1, 12, 16, 12, 169, 52, 4]}, {"55063179": [2, 143, 176]}, {"55063183": [16, 143, 177]}, {"55063187": [20, 143, 191]}, {"55063191": [24, 39, 189]}, {"55063195": [32, 3, 224]}, {"55063199": [8]}, {"55063204": [2, 4, 64, 33, 145, 9]}, {"55063211": [108, 52, 1]}, {"55063215": [255, 17, 33]}, {"55063219": [7]}, {"55063224": [2, 9, 72, 33, 145, 41]}, {"55063231": [116, 52, 1]}, {"55063235": [44, 17, 33]}, {"55063239": [2]}, {"55063244": [161, 9]}, {"55063247": [105, 3, 224]}, {"55063251": [8]}, {"55063256": [39, 189, 255, 232, 175, 191]}, {"55063263": [16, 142, 40]}, {"55063268": [174, 8]}, {"55063271": [64, 142, 40]}, {"55063275": [4, 174, 8]}, {"55063279": [68, 150, 40]}, {"55063283": [8, 166, 8]}, {"55063287": [72, 162]}, {"55063290": [15, 51, 146, 8]}, {"55063295": [74, 52, 1]}, {"55063299": [255, 21, 1]}, {"55063303": [3]}, {"55063308": [12, 16, 12, 215]}, {"55063316": [143, 191]}, {"55063319": [16, 39, 189]}, {"55063323": [24, 3, 224]}, {"55063327": [8]}, {"55063332": [142, 8]}, {"55063335": [64, 174, 8]}, {"55063339": [104, 142, 8]}, {"55063343": [68, 174, 8]}, {"55063347": [108, 150, 8]}, {"55063351": [72, 166, 8]}, {"55063355": [112, 146, 8]}, {"55063359": [104, 52, 1]}, {"55063363": [255, 21, 1]}, {"55063367": [3]}, {"55063372": [52, 8]}, {"55063375": [1, 162, 8, 15, 51, 3, 224]}, {"55063383": [8]}, {"55063388": [39, 189, 255, 232, 175, 191]}, {"55063395": [16, 150, 8]}, {"55063399": [156, 49, 8]}, {"55063403": [64, 17]}, {"55063407": [5]}, {"55063412": [150, 8]}, {"55063415": [112, 49, 8, 255, 15, 53, 8]}, {"55063423": [48, 166, 8]}, {"55063427": [112, 146, 40]}, {"55063431": [1, 162, 8]}, {"55063435": [105, 150, 40]}, {"55063439": [2, 166, 8]}, {"55063443": [106, 142, 40]}, {"55063447": [4, 174, 8]}, {"55063451": [108, 12, 16, 12, 241, 52, 4]}, {"55063460": [12, 16, 12, 241, 52, 4]}, {"55063467": [1, 12, 16, 12, 241, 52, 4]}, {"55063475": [2, 143, 191]}, {"55063479": [16, 39, 189]}, {"55063483": [24, 3, 224]}, {"55063487": [8]}, {"55063492": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 52, 112, 145, 10]}, {"55063507": [108, 52, 1]}, {"55063511": [255, 17, 65]}, {"55063515": [5]}, {"55063520": [1, 42, 72, 33, 145, 41]}, {"55063528": [21, 32]}, {"55063531": [28]}, {"55063536": [60, 9, 128, 64, 37, 41, 52, 99, 37, 41]}, {"55063547": [1, 145, 42]}, {"55063552": [17, 64]}, {"55063555": [19]}, {"55063560": [2, 10, 88, 33, 145, 107]}, {"55063567": [116, 52, 1]}, {"55063571": [255, 17, 97, 255, 248]}, {"55063580": [146, 12]}, {"55063583": [108, 17, 138, 255, 245]}, {"55063592": [146, 12]}, {"55063595": [109, 17, 138, 255, 242]}, {"55063604": [146, 12]}, {"55063607": [110, 17, 138, 255, 239]}, {"55063616": [161, 11]}, {"55063619": [105, 161, 10]}, {"55063623": [108, 16]}, {"55063627": [4]}, {"55063632": [52, 9]}, {"55063635": [255, 161, 9]}, {"55063639": [105, 161, 9]}, {"55063643": [108, 3, 224]}, {"55063647": [8]}, {"55063652": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063665": [1, 1, 1, 1, 1]}, {"55063671": [1, 1, 1, 1, 1]}, {"55063677": [1]}, {"55063679": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063689": [51, 8, 33, 32, 15]}, {"55063695": [71, 21, 234]}, {"55063699": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063711": [164]}, {"55063713": [15, 122, 3, 20, 64]}, {"55063719": [5, 52, 2, 72, 48, 21, 226]}, {"55063727": [7]}, {"55063732": [36, 25]}, {"55063735": [3, 16]}, {"55063739": [4, 52, 2, 99, 17, 21, 226]}, {"55063747": [2]}, {"55063752": [36, 25]}, {"55063755": [3, 3, 224]}, {"55063759": [8]}, {"55063764": [141, 173, 138, 160, 52, 2, 128]}, {"55063772": [16, 77]}, {"55063775": [2]}, {"55063780": [16]}, {"55063783": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063799": [1, 16, 64]}, {"55063803": [2]}, {"55063808": [16]}, {"55063811": [2, 52, 2]}, {"55063815": [1, 161, 226, 28, 191, 3, 224]}, {"55063823": [8]}, {"55063829": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063843": [164]}, {"55063845": [15, 122, 3, 20, 64]}, {"55063851": [5, 52, 2, 72, 48, 21, 226]}, {"55063859": [7]}, {"55063864": [36, 25]}, {"55063867": [3, 16]}, {"55063871": [4, 52, 2, 99, 17, 21, 226]}, {"55063879": [2]}, {"55063884": [36, 25]}, {"55063887": [3, 3, 224]}, {"55063891": [8]}, {"55063896": [20, 64]}, {"55063899": [14]}, {"55063904": [52, 1]}, {"55063907": [24, 20, 129]}, {"55063911": [11, 60, 10, 128, 18, 37, 74, 165, 208, 129, 72]}, {"55063923": [166, 49, 8]}, {"55063927": [32, 17]}, {"55063931": [6, 52, 2]}, {"55063936": [129, 72]}, {"55063939": [123, 52, 1]}, {"55063943": [7, 17, 1]}, {"55063947": [2, 52, 2]}, {"55063951": [1, 52, 2]}, {"55063956": [3, 224]}, {"55063959": [8]}, {"55063964": [162, 37]}, {"55063967": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063979": [4, 142, 10]}, {"55063984": [17, 64]}, {"55063987": [11]}, {"55063993": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55064005": [24, 194, 2, 23]}, {"55064011": [3, 49, 89]}, {"55064015": [255, 129, 234]}, {"55064020": [3, 42, 200, 37, 8, 16, 13, 106, 161, 249]}, {"55064032": [3, 224]}, {"55064035": [8]}] \ No newline at end of file +[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 204]}, {"11135032": [8, 16, 13, 86]}, {"11311804": [12, 16, 11, 213]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 198, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 140]}, {"11427312": [12, 16, 13, 53]}, {"11427320": [12, 16, 11, 208]}, {"11427332": [0, 0]}, {"11427335": [0]}, {"11431496": [12, 16, 11, 203, 1, 15, 192, 33]}, {"11559936": [130]}, {"11559938": [14, 222]}, {"11559948": [49, 248, 0, 2]}, {"11562028": [12, 16, 13, 103]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 69]}, {"11882076": [12, 16, 13, 34]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 107, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 114, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 121, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 100, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 148]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 26]}, {"12427480": [12, 16, 10, 114]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 118]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 12, 47, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 160]}, {"12491480": [12, 16, 10, 169]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"12584172": [8, 16, 12, 16]}, {"12589216": [12, 16, 12, 34]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 155]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 128]}, {"13709176": [52, 15]}, {"13709179": [0]}, {"14109028": [16, 0]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 128, 73, 14, 222]}, {"14149508": [52]}, {"14149510": [0, 1, 2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 216]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 232]}, {"14624335": [118]}, {"14720872": [128]}, {"14720874": [14, 222]}, {"14720884": [49, 248, 0, 4]}, {"14720944": [12, 16, 11, 224]}, {"14848904": [8, 16, 11, 255]}, {"14852164": [12, 16, 12, 8]}, {"14872723": [52]}, {"15327704": [52, 9, 64, 0]}, {"15327728": [52]}, {"15327730": [91, 8]}, {"15327744": [52]}, {"15327746": [0, 10]}, {"15327757": [169]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 55, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 55, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55057455": [1]}, {"55057457": [2]}, {"55057459": [4]}, {"55057461": [8]}, {"55057467": [16]}, {"55057471": [32]}, {"55057473": [64]}, {"55057475": [128, 1]}, {"55057502": [2]}, {"55057504": [4]}, {"55057514": [8]}, {"55057516": [16]}, {"55057518": [32]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 236, 83, 65, 35, 248]}, {"55058597": [209, 255, 255, 128, 64, 38, 60, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 38, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 38, 108, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 38, 136, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 252, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 244, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 244, 128, 64, 38, 188, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 244, 128, 64, 38, 188, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 244, 128, 64, 38, 188, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 244, 128, 64, 38, 216, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 244, 128, 64, 38, 216, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 244, 128, 64, 38, 216, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 244, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 244, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 140, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 172, 128, 64, 38, 164, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 204, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 39, 244, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 60, 128, 64, 40, 32, 83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 4, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 6, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 3, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 8, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 5, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 7, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 76, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [5, 52, 2]}, {"55060003": [69, 52, 9]}, {"55060007": [16, 17, 9]}, {"55060011": [2, 52, 2]}, {"55060015": [70, 52, 162]}, {"55060020": [3, 224]}, {"55060023": [8]}, {"55060028": [144, 136]}, {"55060031": [162, 53, 8]}, {"55060035": [48, 160, 136]}, {"55060039": [162, 3, 224]}, {"55060043": [8]}, {"55060048": [144, 136]}, {"55060051": [162, 49, 8]}, {"55060055": [6, 17]}, {"55060059": [2, 52, 2]}, {"55060063": [55, 52, 2]}, {"55060067": [56, 3, 224]}, {"55060071": [8]}, {"55060076": [144, 136]}, {"55060079": [161, 49, 8]}, {"55060083": [32, 17]}, {"55060087": [2, 52, 2]}, {"55060091": [121, 52, 2]}, {"55060095": [122, 3, 224]}, {"55060099": [8]}, {"55060104": [144, 136]}, {"55060107": [161, 49, 8]}, {"55060111": [4, 17]}, {"55060115": [2, 52, 2]}, {"55060119": [119, 52, 2]}, {"55060123": [120, 3, 224]}, {"55060127": [8]}, {"55060132": [144, 136]}, {"55060135": [50, 17]}, {"55060139": [2, 52, 2]}, {"55060143": [192, 52, 2]}, {"55060147": [193, 3, 224]}, {"55060151": [8]}, {"55060156": [144, 136]}, {"55060159": [163, 49, 8]}, {"55060163": [3, 17]}, {"55060167": [2, 52, 2]}, {"55060171": [77, 52, 162]}, {"55060176": [3, 224]}, {"55060179": [8]}, {"55060184": [144, 136]}, {"55060187": [163, 49, 8]}, {"55060191": [24, 17]}, {"55060195": [2, 52, 2]}, {"55060199": [77, 52, 162]}, {"55060204": [3, 224]}, {"55060207": [8]}, {"55060212": [3, 224]}, {"55060215": [8]}, {"55060220": [52, 8]}, {"55060223": [1, 160, 136]}, {"55060227": [62, 3, 224]}, {"55060231": [8]}, {"55060236": [36, 136]}, {"55060239": [134, 36, 9, 255, 255, 37, 41]}, {"55060247": [1, 52, 1]}, {"55060251": [3]}, {"55060253": [41, 8, 42, 20, 32]}, {"55060259": [7]}, {"55060264": [1, 9, 80, 33, 145, 75]}, {"55060272": [52, 1]}, {"55060275": [255, 21, 97, 255, 247]}, {"55060284": [161, 69]}, {"55060288": [3, 224]}, {"55060291": [8]}, {"55060296": [36, 136]}, {"55060299": [168, 1, 6, 64, 33, 145, 9]}, {"55060308": [1, 37, 72, 37, 161, 9]}, {"55060316": [3, 224]}, {"55060319": [8]}, {"55060324": [36, 136]}, {"55060327": [188, 1, 5, 64, 33, 129, 9]}, {"55060336": [5, 33]}, {"55060339": [2]}, {"55060344": [52, 9]}, {"55060348": [37, 41]}, {"55060351": [1, 161, 9]}, {"55060356": [3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [61, 52, 8]}, {"55060375": [20, 160, 136]}, {"55060379": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [1, 160, 136]}, {"55060403": [50, 160, 136]}, {"55060407": [58, 52, 8]}, {"55060411": [48, 164, 136, 19, 244, 160, 136]}, {"55060419": [51, 3, 224]}, {"55060423": [8]}, {"55060428": [52, 8]}, {"55060431": [2, 160, 136]}, {"55060435": [50, 52, 8]}, {"55060439": [1, 160, 136]}, {"55060443": [58, 160, 136]}, {"55060447": [60, 52, 8]}, {"55060451": [96, 164, 136, 19, 244, 160, 136]}, {"55060459": [51, 3, 224]}, {"55060463": [8]}, {"55060468": [144, 136]}, {"55060471": [124, 52, 1]}, {"55060475": [255, 17, 1]}, {"55060479": [6, 52, 2]}, {"55060483": [107, 144, 136]}, {"55060487": [148, 45, 8]}, {"55060491": [6, 17]}, {"55060495": [2, 52, 2]}, {"55060499": [106, 52, 2]}, {"55060503": [3, 3, 224]}, {"55060507": [8]}, {"55060512": [144, 136]}, {"55060515": [123, 52, 1]}, {"55060519": [255, 17, 1]}, {"55060523": [2, 52, 162]}, {"55060528": [52, 2]}, {"55060531": [12, 3, 224]}, {"55060535": [8]}, {"55060540": [52, 8]}, {"55060543": [7, 160, 136]}, {"55060547": [123, 3, 224]}, {"55060551": [8]}, {"55060556": [52, 8]}, {"55060559": [1]}, {"55060561": [168, 64, 4, 140, 137]}, {"55060567": [164, 1, 40, 72, 37, 172, 137]}, {"55060575": [164, 3, 224]}, {"55060579": [8]}, {"55060584": [48, 132]}, {"55060587": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060599": [140, 16, 129]}, {"55060603": [22, 145, 2]}, {"55060607": [117, 52, 1]}, {"55060611": [141, 16, 129]}, {"55060615": [19, 145, 2]}, {"55060619": [117, 16, 128]}, {"55060623": [17, 145, 2]}, {"55060627": [116, 52, 1]}, {"55060631": [138, 16, 129]}, {"55060635": [14, 145, 2]}, {"55060639": [116, 52, 1]}, {"55060643": [139, 16, 129]}, {"55060647": [11, 145, 2]}, {"55060651": [116, 52, 1]}, {"55060655": [88, 16, 129]}, {"55060659": [8, 52, 2]}, {"55060664": [52, 1]}, {"55060667": [120, 16, 129]}, {"55060671": [5, 52, 2]}, {"55060676": [52, 1]}, {"55060679": [121, 16, 129]}, {"55060683": [2, 52, 2]}, {"55060688": [52, 2]}, {"55060691": [255, 3, 224]}, {"55060695": [8]}, {"55060700": [39, 189, 255, 224, 175, 191]}, {"55060707": [16, 175, 176]}, {"55060711": [20, 12, 16, 11, 19]}, {"55060720": [4, 65]}, {"55060723": [2]}, {"55060728": [52, 2]}, {"55060731": [91]}, {"55060733": [64, 32, 33, 12, 16, 11, 122]}, {"55060744": [16, 96]}, {"55060747": [22, 175, 163]}, {"55060751": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060760": [133, 9]}, {"55060763": [2, 17, 32]}, {"55060767": [3, 52, 10]}, {"55060771": [1, 16]}, {"55060775": [12, 165, 10]}, {"55060780": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060791": [6, 144, 102]}, {"55060795": [7, 140, 105]}, {"55060799": [8, 1, 32, 248, 9]}, {"55060808": [143, 163]}, {"55060811": [28, 144, 101]}, {"55060815": [1, 12, 1, 191, 115, 2, 32, 32, 33, 143, 163]}, {"55060827": [28, 144, 101]}, {"55060831": [3, 16]}, {"55060835": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060847": [6]}, {"55060849": [74]}, {"55060851": [24]}, {"55060854": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060864": [60, 8, 128, 64, 37, 8, 32]}, {"55060872": [133, 9]}, {"55060875": [2, 17, 32]}, {"55060879": [3, 52, 10]}, {"55060883": [1, 165, 10]}, {"55060888": [52, 5]}, {"55060891": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060903": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060914": [48, 33, 143, 191]}, {"55060919": [16, 143, 176]}, {"55060923": [20, 39, 189]}, {"55060927": [32, 3, 224]}, {"55060931": [8]}, {"55060936": [143, 166]}, {"55060939": [48, 132, 197]}, {"55060943": [4, 8, 16, 10, 122]}, {"55060952": [143, 185]}, {"55060955": [44, 135, 37]}, {"55060959": [4, 8, 16, 10, 122]}, {"55060968": [60, 10, 128, 64, 37, 74, 32, 8, 141, 75]}, {"55060979": [12, 17, 96]}, {"55060983": [2]}, {"55060988": [149, 69]}, {"55060991": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55061004": [60, 9, 128, 64, 37, 41, 32, 24, 129, 42]}, {"55061015": [3, 5, 64]}, {"55061019": [11, 1, 42, 72, 32, 129, 40]}, {"55061028": [52, 10]}, {"55061031": [127, 21, 10]}, {"55061035": [6]}, {"55061040": [60, 10, 128, 18, 37, 74, 165, 208, 133, 72]}, {"55061051": [144, 33, 8]}, {"55061055": [1, 165, 72]}, {"55061059": [144, 161, 32]}, {"55061064": [3, 224]}, {"55061067": [8]}, {"55061072": [60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061083": [12, 17, 32]}, {"55061087": [2]}, {"55061092": [129, 3]}, {"55061095": [2]}, {"55061097": [3, 15, 195]}, {"55061101": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061115": [8]}, {"55061120": [144, 69]}, {"55061123": [3, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061135": [12, 17, 32]}, {"55061139": [2]}, {"55061144": [145, 5]}, {"55061147": [3, 3, 224]}, {"55061151": [8]}, {"55061156": [143, 162]}, {"55061159": [36, 144, 69]}, {"55061164": [60, 8, 128, 64, 37, 8, 32]}, {"55061172": [133, 9]}, {"55061175": [2, 17, 32]}, {"55061179": [4, 52, 10]}, {"55061183": [1, 165, 10]}, {"55061188": [16]}, {"55061191": [24, 52, 5]}, {"55061195": [65, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061207": [12, 17, 32]}, {"55061211": [19]}, {"55061216": [145, 5]}, {"55061219": [1, 175, 164]}, {"55061224": [175, 165]}, {"55061227": [4, 175, 166]}, {"55061231": [8, 39, 189, 255, 232, 175, 191]}, {"55061239": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061251": [6, 145, 6]}, {"55061255": [7, 141, 9]}, {"55061259": [8, 1, 32, 248, 9]}, {"55061268": [143, 191]}, {"55061271": [16, 39, 189]}, {"55061275": [24, 143, 164]}, {"55061280": [143, 165]}, {"55061283": [4, 143, 166]}, {"55061287": [8, 3, 224]}, {"55061291": [8]}, {"55061296": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061307": [16, 175, 163]}, {"55061311": [20, 175, 191]}, {"55061315": [24, 12, 16, 10, 217]}, {"55061324": [143, 162]}, {"55061327": [16, 143, 163]}, {"55061331": [20, 143, 191]}, {"55061335": [24, 39, 189]}, {"55061339": [32, 3, 224]}, {"55061343": [8]}, {"55061348": [39, 189, 255, 232, 175, 191]}, {"55061355": [16, 60, 8, 128, 64, 37, 8, 32, 8, 173]}, {"55061368": [173]}, {"55061371": [4, 173]}, {"55061375": [8, 173]}, {"55061379": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061395": [42]}, {"55061401": [9, 15, 195, 1, 33, 32, 38]}, {"55061409": [129, 32, 35, 141, 5, 4, 40, 12, 16, 11, 19]}, {"55061424": [4, 64]}, {"55061427": [34]}, {"55061432": [52, 68]}, {"55061436": [12, 16, 11, 122]}, {"55061444": [16, 96]}, {"55061447": [12]}, {"55061452": [60, 8, 128, 64, 37, 8, 32, 8, 140, 105]}, {"55061464": [173, 9]}, {"55061468": [140, 105]}, {"55061471": [4, 173, 9]}, {"55061475": [4, 140, 105]}, {"55061479": [8, 173, 9]}, {"55061483": [8, 52, 9]}, {"55061487": [1, 173, 9]}, {"55061491": [12, 144, 98]}, {"55061496": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061512": [52, 1]}, {"55061515": [10, 21, 65]}, {"55061519": [6]}, {"55061524": [149, 42]}, {"55061527": [28, 49, 74, 240, 31]}, {"55061533": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061543": [28, 129, 9, 4, 36, 5, 33]}, {"55061551": [2]}, {"55061557": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061567": [16, 39, 189]}, {"55061571": [24, 3, 224]}, {"55061575": [8]}, {"55061580": [39, 189, 255, 232, 175, 191]}, {"55061587": [16, 12, 16, 11, 33]}, {"55061596": [36, 1, 255, 255, 16, 65]}, {"55061603": [4]}, {"55061608": [52, 68]}, {"55061612": [12, 16, 11, 85]}, {"55061620": [143, 191]}, {"55061623": [16, 39, 189]}, {"55061627": [24, 3, 224]}, {"55061631": [8]}, {"55061636": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061647": [164, 52, 8]}, {"55061652": [52, 137]}, {"55061656": [148, 170]}, {"55061660": [52, 1, 1, 156, 21, 65]}, {"55061667": [8]}, {"55061672": [52, 8]}, {"55061675": [3, 148, 171]}, {"55061679": [28, 49, 105]}, {"55061683": [255, 49, 98, 31]}, {"55061689": [2, 18, 2, 16]}, {"55061695": [31]}, {"55061700": [52, 1]}, {"55061703": [10, 21, 65]}, {"55061707": [14]}, {"55061712": [148, 171]}, {"55061715": [28, 52, 1]}, {"55061719": [16, 20, 65]}, {"55061723": [8]}, {"55061728": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061739": [4]}, {"55061744": [36, 2, 255, 255, 16]}, {"55061751": [21]}, {"55061756": [52, 8]}, {"55061759": [1, 49, 105]}, {"55061763": [31, 52, 1]}, {"55061767": [21, 21, 65]}, {"55061771": [12]}, {"55061776": [52, 1]}, {"55061779": [62, 16, 129]}, {"55061783": [7]}, {"55061788": [52, 1]}, {"55061791": [66, 16, 129]}, {"55061795": [4]}, {"55061800": [36, 2, 255, 255, 16]}, {"55061807": [7]}, {"55061812": [52, 8]}, {"55061815": [2, 144, 169, 1, 65]}, {"55061821": [2, 18]}, {"55061825": [72, 16, 37]}, {"55061829": [2, 18]}, {"55061833": [73, 16, 37, 3, 224]}, {"55061839": [8]}, {"55061844": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061856": [129, 9]}, {"55061860": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061883": [4, 141, 9]}, {"55061888": [17, 32]}, {"55061891": [23]}, {"55061897": [9, 82, 2, 49, 75, 248]}, {"55061905": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061928": [49, 34]}, {"55061931": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061952": [60, 12, 128, 64, 37, 140, 28]}, {"55061960": [129, 140]}, {"55061964": [17, 108]}, {"55061967": [4, 165, 32]}, {"55061971": [2, 161, 43]}, {"55061975": [2, 161, 34]}, {"55061979": [3, 173, 36]}, {"55061983": [4, 3, 224]}, {"55061987": [8]}, {"55061992": [39, 189, 255, 224, 175, 176]}, {"55061999": [16, 175, 177]}, {"55062003": [20, 175, 191]}, {"55062007": [24, 52, 130]}, {"55062012": [52, 80]}, {"55062016": [38, 8, 255, 128, 5]}, {"55062023": [18]}, {"55062028": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55062039": [16, 1, 9]}, {"55062043": [24]}, {"55062046": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55062064": [142, 40]}, {"55062067": [12, 1]}, {"55062070": [248, 9]}, {"55062076": [20, 80, 255, 239]}, {"55062084": [54, 35]}, {"55062088": [16]}, {"55062091": [2]}, {"55062096": [52, 3]}, {"55062100": [143, 176]}, {"55062103": [16, 143, 177]}, {"55062107": [20, 143, 191]}, {"55062111": [24, 39, 189]}, {"55062115": [32, 3, 224]}, {"55062119": [8]}, {"55062124": [140, 136, 29, 44, 52, 9]}, {"55062131": [1]}, {"55062133": [9, 78]}, {"55062136": [1, 9, 16, 36, 16, 64]}, {"55062143": [36]}, {"55062148": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062163": [164, 52, 1]}, {"55062167": [61, 17, 129]}, {"55062171": [10]}, {"55062177": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062187": [25]}, {"55062192": [52, 13]}, {"55062195": [1, 161, 141, 29, 40, 37, 74]}, {"55062203": [3, 16]}, {"55062207": [9]}, {"55062212": [52, 12]}, {"55062215": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062231": [14]}, {"55062236": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062272": [60, 9, 128, 64, 37, 41, 32, 24, 161, 40]}, {"55062284": [52, 2]}, {"55062288": [3, 224]}, {"55062291": [8]}, {"55062296": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062308": [16]}, {"55062311": [34]}, {"55062316": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062328": [16]}, {"55062331": [29]}, {"55062336": [52, 2]}, {"55062339": [255, 32, 232, 255, 166, 33, 8]}, {"55062347": [97, 16]}, {"55062351": [24]}, {"55062356": [52, 8]}, {"55062359": [100, 16]}, {"55062363": [21]}, {"55062368": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062383": [1, 160, 40, 14, 222, 52, 8]}, {"55062391": [104, 16]}, {"55062395": [13]}, {"55062400": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062415": [4, 160, 40, 14, 222, 52, 8]}, {"55062423": [106, 16]}, {"55062427": [5]}, {"55062432": [52, 5]}, {"55062435": [3, 52, 8]}, {"55062439": [107, 16]}, {"55062443": [1]}, {"55062448": [60, 9, 128, 64, 37, 41, 32, 24, 60, 10, 128, 64, 37, 74, 32, 27, 129, 44]}, {"55062468": [17, 136]}, {"55062471": [11, 33, 41]}, {"55062475": [1, 21, 42, 255, 252]}, {"55062484": [60, 9, 128, 64, 37, 41, 32, 23, 33, 41]}, {"55062495": [1, 17, 42]}, {"55062499": [4, 129, 44]}, {"55062504": [21, 128, 255, 252]}, {"55062512": [161, 40]}, {"55062516": [3, 224]}, {"55062519": [8]}, {"55062525": [96, 120, 33, 129, 236, 14, 223, 49, 142]}, {"55062535": [128, 17, 192]}, {"55062539": [3, 52, 3]}, {"55062543": [5, 3, 224]}, {"55062547": [8, 52, 2]}, {"55062551": [2, 3, 224]}, {"55062555": [8]}, {"55062557": [96, 16, 33, 133, 194]}, {"55062563": [164, 60, 8, 128, 18, 37, 8, 165, 208, 129, 9, 14, 223, 53, 41]}, {"55062579": [128, 161, 9, 14, 223, 3, 224]}, {"55062587": [8]}, {"55062592": [132, 142]}, {"55062595": [28, 60, 9, 128, 64, 37, 41, 28, 12]}, {"55062605": [14, 64, 64, 1, 40, 72, 32, 133, 42]}, {"55062616": [60, 9, 128, 18, 37, 41, 165, 208, 133, 43, 15, 48, 1, 75, 96, 36, 52, 2]}, {"55062636": [17, 128]}, {"55062639": [4]}, {"55062644": [52, 13]}, {"55062647": [38, 164, 141]}, {"55062651": [28, 52, 2]}, {"55062655": [1, 3, 224]}, {"55062659": [8]}, {"55062664": [132, 174]}, {"55062667": [28, 60, 9, 128, 64, 37, 41, 28, 12]}, {"55062677": [14, 64, 64, 1, 40, 72, 32, 133, 42]}, {"55062688": [60, 9, 128, 18, 37, 41, 165, 208, 133, 43, 15, 48, 1, 75, 96, 37, 165, 44, 15, 48, 3, 224]}, {"55062711": [8]}, {"55062716": [175, 164]}, {"55062719": [104, 175, 165]}, {"55062723": [108, 175, 166]}, {"55062727": [112, 175, 167]}, {"55062731": [116, 39, 189, 255, 232, 175, 163]}, {"55062739": [16, 175, 191]}, {"55062743": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062759": [32, 21]}, {"55062763": [31]}, {"55062768": [60, 9, 128, 64, 37, 41, 32, 27, 52, 10]}, {"55062779": [255, 161, 42]}, {"55062784": [60, 9, 128, 64, 37, 41, 32, 24, 36, 10, 255, 255, 52, 12]}, {"55062799": [3, 33, 74]}, {"55062803": [1, 17, 76]}, {"55062807": [20, 1, 42, 88, 32, 129, 104]}, {"55062816": [17]}, {"55062818": [255, 251]}, {"55062824": [60, 9, 128, 64, 37, 41, 32, 27, 161, 42]}, {"55062836": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062847": [1, 165, 42]}, {"55062852": [60, 9, 128, 65, 52, 10]}, {"55062859": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 217]}, {"55062888": [143, 163]}, {"55062891": [16, 143, 191]}, {"55062895": [20, 39, 189]}, {"55062899": [24, 143, 164]}, {"55062903": [104, 143, 165]}, {"55062907": [108, 143, 166]}, {"55062911": [112, 143, 167]}, {"55062915": [116, 132, 110, 19, 196, 3, 224]}, {"55062923": [8]}, {"55062928": [147, 25]}, {"55062931": [116, 52, 1]}, {"55062935": [255, 23, 33]}, {"55062939": [2]}, {"55062944": [52, 25]}, {"55062947": [44, 3, 224]}, {"55062951": [8, 167, 185]}, {"55062955": [154, 147, 44]}, {"55062959": [116, 52, 1]}, {"55062963": [255, 21, 129]}, {"55062967": [2]}, {"55062972": [52, 12]}, {"55062975": [44, 3, 224]}, {"55062979": [8]}, {"55062984": [145, 174]}, {"55062987": [116, 52, 1]}, {"55062991": [255, 21, 193]}, {"55062995": [2]}, {"55063000": [52, 14]}, {"55063003": [44, 3, 224]}, {"55063007": [8, 167, 174]}, {"55063011": [154, 145, 207]}, {"55063015": [116, 52, 1]}, {"55063019": [255, 21, 225]}, {"55063023": [2]}, {"55063028": [52, 15]}, {"55063031": [44, 3, 224]}, {"55063035": [8, 167, 175]}, {"55063039": [154, 60, 8, 128, 64, 37, 8, 32, 28, 142, 9]}, {"55063051": [104, 173, 9]}, {"55063056": [142, 9]}, {"55063059": [108, 173, 9]}, {"55063063": [4, 150, 9]}, {"55063067": [112, 165, 9]}, {"55063071": [8, 150, 9]}, {"55063075": [156, 165, 9]}, {"55063079": [10, 3, 224]}, {"55063083": [8, 142, 14]}, {"55063087": [4, 39, 189, 255, 224, 175, 176]}, {"55063095": [16, 175, 177]}, {"55063099": [20, 175, 191]}, {"55063103": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 28, 142, 8]}, {"55063123": [4, 17]}, {"55063127": [5]}, {"55063132": [12, 16, 12, 182]}, {"55063140": [16]}, {"55063143": [3]}, {"55063148": [12, 16, 12, 201]}, {"55063156": [12, 16, 12, 169, 52, 4]}, {"55063164": [12, 16, 12, 169, 52, 4]}, {"55063171": [1, 12, 16, 12, 169, 52, 4]}, {"55063179": [2, 143, 176]}, {"55063183": [16, 143, 177]}, {"55063187": [20, 143, 191]}, {"55063191": [24, 39, 189]}, {"55063195": [32, 3, 224]}, {"55063199": [8]}, {"55063204": [2, 4, 64, 33, 145, 9]}, {"55063211": [108, 52, 1]}, {"55063215": [255, 17, 33]}, {"55063219": [7]}, {"55063224": [2, 9, 72, 33, 145, 41]}, {"55063231": [116, 52, 1]}, {"55063235": [44, 17, 33]}, {"55063239": [2]}, {"55063244": [161, 9]}, {"55063247": [105, 3, 224]}, {"55063251": [8]}, {"55063256": [39, 189, 255, 232, 175, 191]}, {"55063263": [16, 142, 40]}, {"55063268": [174, 8]}, {"55063271": [64, 142, 40]}, {"55063275": [4, 174, 8]}, {"55063279": [68, 150, 40]}, {"55063283": [8, 166, 8]}, {"55063287": [72, 162]}, {"55063290": [15, 51, 146, 8]}, {"55063295": [74, 52, 1]}, {"55063299": [255, 21, 1]}, {"55063303": [3]}, {"55063308": [12, 16, 12, 215]}, {"55063316": [143, 191]}, {"55063319": [16, 39, 189]}, {"55063323": [24, 3, 224]}, {"55063327": [8]}, {"55063332": [142, 8]}, {"55063335": [64, 174, 8]}, {"55063339": [104, 142, 8]}, {"55063343": [68, 174, 8]}, {"55063347": [108, 150, 8]}, {"55063351": [72, 166, 8]}, {"55063355": [112, 146, 8]}, {"55063359": [104, 52, 1]}, {"55063363": [255, 21, 1]}, {"55063367": [3]}, {"55063372": [52, 8]}, {"55063375": [1, 162, 8, 15, 51, 3, 224]}, {"55063383": [8]}, {"55063388": [39, 189, 255, 232, 175, 191]}, {"55063395": [16, 150, 8]}, {"55063399": [156, 49, 8]}, {"55063403": [64, 17]}, {"55063407": [5]}, {"55063412": [150, 8]}, {"55063415": [112, 49, 8, 255, 15, 53, 8]}, {"55063423": [48, 166, 8]}, {"55063427": [112, 146, 40]}, {"55063431": [1, 162, 8]}, {"55063435": [105, 150, 40]}, {"55063439": [2, 166, 8]}, {"55063443": [106, 142, 40]}, {"55063447": [4, 174, 8]}, {"55063451": [108, 12, 16, 12, 241, 52, 4]}, {"55063460": [12, 16, 12, 241, 52, 4]}, {"55063467": [1, 12, 16, 12, 241, 52, 4]}, {"55063475": [2, 143, 191]}, {"55063479": [16, 39, 189]}, {"55063483": [24, 3, 224]}, {"55063487": [8]}, {"55063492": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 52, 112, 145, 10]}, {"55063507": [108, 52, 1]}, {"55063511": [255, 17, 65]}, {"55063515": [5]}, {"55063520": [1, 42, 72, 33, 145, 41]}, {"55063528": [21, 32]}, {"55063531": [28]}, {"55063536": [60, 9, 128, 64, 37, 41, 52, 99, 37, 41]}, {"55063547": [1, 145, 42]}, {"55063552": [17, 64]}, {"55063555": [19]}, {"55063560": [2, 10, 88, 33, 145, 107]}, {"55063567": [116, 52, 1]}, {"55063571": [255, 17, 97, 255, 248]}, {"55063580": [146, 12]}, {"55063583": [108, 17, 138, 255, 245]}, {"55063592": [146, 12]}, {"55063595": [109, 17, 138, 255, 242]}, {"55063604": [146, 12]}, {"55063607": [110, 17, 138, 255, 239]}, {"55063616": [161, 11]}, {"55063619": [105, 161, 10]}, {"55063623": [108, 16]}, {"55063627": [4]}, {"55063632": [52, 9]}, {"55063635": [255, 161, 9]}, {"55063639": [105, 161, 9]}, {"55063643": [108, 3, 224]}, {"55063647": [8]}, {"55063652": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063665": [1, 1, 1, 1, 1]}, {"55063671": [1, 1, 1, 1, 1]}, {"55063677": [1]}, {"55063679": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063689": [51, 8, 33, 32, 15]}, {"55063695": [71, 21, 234]}, {"55063699": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063711": [164]}, {"55063713": [15, 122, 3, 20, 64]}, {"55063719": [5, 52, 2, 72, 48, 21, 226]}, {"55063727": [7]}, {"55063732": [36, 25]}, {"55063735": [3, 16]}, {"55063739": [4, 52, 2, 99, 17, 21, 226]}, {"55063747": [2]}, {"55063752": [36, 25]}, {"55063755": [3, 3, 224]}, {"55063759": [8]}, {"55063764": [141, 173, 138, 160, 52, 2, 128]}, {"55063772": [16, 77]}, {"55063775": [2]}, {"55063780": [16]}, {"55063783": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063799": [1, 16, 64]}, {"55063803": [2]}, {"55063808": [16]}, {"55063811": [2, 52, 2]}, {"55063815": [1, 161, 226, 28, 191, 3, 224]}, {"55063823": [8]}, {"55063829": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063843": [164]}, {"55063845": [15, 122, 3, 20, 64]}, {"55063851": [5, 52, 2, 72, 48, 21, 226]}, {"55063859": [7]}, {"55063864": [36, 25]}, {"55063867": [3, 16]}, {"55063871": [4, 52, 2, 99, 17, 21, 226]}, {"55063879": [2]}, {"55063884": [36, 25]}, {"55063887": [3, 3, 224]}, {"55063891": [8]}, {"55063896": [20, 64]}, {"55063899": [14]}, {"55063904": [52, 1]}, {"55063907": [24, 20, 129]}, {"55063911": [11, 60, 10, 128, 18, 37, 74, 165, 208, 129, 72]}, {"55063923": [166, 49, 8]}, {"55063927": [32, 17]}, {"55063931": [6, 52, 2]}, {"55063936": [129, 72]}, {"55063939": [123, 52, 1]}, {"55063943": [7, 17, 1]}, {"55063947": [2, 52, 2]}, {"55063951": [1, 52, 2]}, {"55063956": [3, 224]}, {"55063959": [8]}, {"55063964": [162, 37]}, {"55063967": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063979": [4, 142, 10]}, {"55063984": [17, 64]}, {"55063987": [11]}, {"55063993": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55064005": [24, 194, 2, 23]}, {"55064011": [3, 49, 89]}, {"55064015": [255, 129, 234]}, {"55064020": [3, 42, 200, 37, 8, 16, 13, 106, 161, 249]}, {"55064032": [3, 224]}, {"55064035": [8]}] \ No newline at end of file diff --git a/version.py b/version.py index 1edd241ec..76dc4dd12 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.38 f.LUM' +__version__ = '2.15.39 f.LUM' From 320e6030827c16541c451bef7dd046810e22ade6 Mon Sep 17 00:00:00 2001 From: mzxrules Date: Thu, 23 Aug 2018 22:08:00 -0400 Subject: [PATCH 338/755] Added CRC calculation, applied to rom on generation --- Patches.py | 4 ---- Rom.py | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 4 deletions(-) diff --git a/Patches.py b/Patches.py index 6f57bb0d5..353d387d9 100644 --- a/Patches.py +++ b/Patches.py @@ -775,10 +775,6 @@ def patch_rom(world, rom): rom.write_bytes(0x3480800, Block_code) rom.write_bytes(0xD270, [0x03, 0x48, 0x00, 0x00, 0x03, 0x48, 0x50, 0x00, 0x03, 0x48, 0x00, 0x00]) - # Fix checksum (Thanks Nintendo) - Block_code = [0x93, 0x5E, 0x8E, 0x5B, 0xD0, 0x9C, 0x5A, 0x58] - rom.write_bytes(0x10, Block_code) - # Set hooks for various code rom.write_bytes(0xDBF428, [0x0C, 0x10, 0x03, 0x00]) #Set Fishing Hook diff --git a/Rom.py b/Rom.py index 21096a6eb..abbbe31ff 100644 --- a/Rom.py +++ b/Rom.py @@ -112,9 +112,45 @@ def write_int32s(self, startaddress, values): self.write_int32(startaddress + (i * 4), value) def write_to_file(self, file): + self.update_crc() with open(file, 'wb') as outfile: outfile.write(self.buffer) + def update_crc(self): + t1 = t2 = t3 = t4 = t5 = t6 = 0xDF26F436 + u32 = 0xFFFFFFFF + + cur = 0x1000 + while cur < 0x00101000: + d = self.read_int32(cur) + + if ((t6 + d) & u32) < t6: + t4 += 1 + + t6 = (t6+d) & u32 + t3 ^= d + shift = d & 0x1F + r = ((d << shift) | (d >> (32 - shift))) & u32 + t5 = (t5 + r) & u32 + + if t2 > d: + t2 ^= r + else: + t2 ^= t6 ^ d + + data2 = self.read_int32(0x750 + (cur & 0xFF)) + t1 += data2 ^ d + t1 &= u32 + + cur += 4 + + crc0 = t6 ^ t4 ^ t3 + crc1 = t5 ^ t2 ^ t1 + + # Finally write the crc back to the rom + self.write_int32s(0x10, [crc0, crc1]) + + def read_rom(stream): "Reads rom into bytearray" buffer = bytearray(stream.read()) From f5eb5ce34c452463fc92ca6304479b8a4f7c0b15 Mon Sep 17 00:00:00 2001 From: AmazingAmpharos Date: Fri, 24 Aug 2018 03:27:48 -0500 Subject: [PATCH 339/755] MQ initial implementation This is still VERY rough. In addition to integrating mzx's pull request to split rom.py into two files to maintain reasonable integrity over organization, the following problems are still known: -The block in Spirit Temple can render a chest permanently unobtainable. -The pre-set flags aren't really handled at all and are probably all wrong. Dungeons after other than Deku/Dodongo's/Shadow/BotW/Ice/Ganon's all might have various problems possibly extending to completely breaking the dungeons. -The hint system is not tuned to work with MQ at all. It may attempt bad behavior if it wants to give a hint for a location from a non-existent dungeon. -There's a bug with always_allow that causes the key for key on the Fire Temple skull to sometimes generate impossible seeds. -I literally just guessed for all of the collectible flags. The odds of them all being correct are not so good. -This logic has not been double checked. r0bd0g is a cool dude and all, but I seriously doubt this much code comes out flawless on the first pass. -The bugged door in Water Temple MQ is still bugged. The logic currently assumes it doesn't exist. -I'm like 95% certain that just dropping the Deku Stick (1) into the item pool is going to cause problems with NPCs holding it and that a custom version needs to be made. This just hasn't been done yet. --- BaseClasses.py | 5 +- Dungeons.py | 296 ++++++---- EntranceShuffle.py | 829 +++++++++++++++----------- ItemList.py | 273 +++++++-- Items.py | 3 + MQ.py | 23 +- Regions.py | 1205 ++++++++++++++++++++++++++------------ Rules.py | 1392 ++++++++++++++++++++++++++------------------ 8 files changed, 2602 insertions(+), 1424 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index a4a657b6d..e4c2b8baa 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -352,7 +352,10 @@ def can_leave_forest(self): return (self.world.open_forest or (self.has('Slingshot') and self.has('Kokiri Sword'))) def can_finish_adult_trades(self): - zora_thawed = self.has_bottle() and self.has('Zeldas Lullaby') and (self.can_reach('Ice Cavern') or self.can_reach('Ganons Castle Water Trial') or self.has('Progressive Wallet', 2)) + if self.world.dungeon_mq['GTG']: + zora_thawed = self.has_bottle() and (self.can_play('Zeldas Lullaby') or (self.has('Hover Boots') and self.world.logic_zora_with_hovers)) and (self.can_reach('Ice Cavern') or self.can_reach('Ganons Castle Water Trial') or self.has('Progressive Wallet', 2) or self.can_reach('Gerudo Training Grounds Stalfos Room')) + else: + zora_thawed = self.has_bottle() and (self.can_play('Zeldas Lullaby') or (self.has('Hover Boots') and self.world.logic_zora_with_hovers)) and (self.can_reach('Ice Cavern') or self.can_reach('Ganons Castle Water Trial') or self.has('Progressive Wallet', 2)) carpenter_access = self.has('Epona') or self.has('Progressive Hookshot', 2) return (self.has('Claim Check') or ((self.has('Eyedrops') or self.has('Eyeball Frog') or self.has('Prescription') or self.has('Broken Sword')) and zora_thawed) or ((self.has('Poachers Saw') or self.has('Odd Mushroom') or self.has('Cojiro') or self.has('Pocket Cucco') or self.has('Pocket Egg')) and zora_thawed and carpenter_access)) diff --git a/Dungeons.py b/Dungeons.py index 753b62726..7a10d0a34 100644 --- a/Dungeons.py +++ b/Dungeons.py @@ -1,116 +1,198 @@ -import random - -from BaseClasses import Dungeon -from Items import ItemFactory - - -def create_dungeons(world): - def make_dungeon(name, dungeon_regions, boss_key, small_keys, dungeon_items): - dungeon = Dungeon(name, dungeon_regions, boss_key, small_keys, dungeon_items) - for region in dungeon.regions: - world.get_region(region).dungeon = dungeon - return dungeon - - if world.dungeon_mq['DT']: +import random + +from BaseClasses import Dungeon +from Items import ItemFactory + + +def create_dungeons(world): + def make_dungeon(name, dungeon_regions, boss_key, small_keys, dungeon_items): + dungeon = Dungeon(name, dungeon_regions, boss_key, small_keys, dungeon_items) + for region in dungeon.regions: + world.get_region(region).dungeon = dungeon + return dungeon + + if world.dungeon_mq['DT']: DT = make_dungeon( 'Deku Tree', ['Deku Tree Lobby', 'Deku Tree Compass Room', 'Deku Tree Boss Room'], None, [], - ItemFactory(['Map (Deku Tree)', 'Compass (Deku Tree)'])) + ItemFactory(['Map (Deku Tree)', 'Compass (Deku Tree)'])) else: - DT = make_dungeon( - 'Deku Tree', - ['Deku Tree Lobby', 'Deku Tree Slingshot Room', 'Deku Tree Boss Room'], - None, [], - ItemFactory(['Map (Deku Tree)', 'Compass (Deku Tree)'])) - - if world.dungeon_mq['DC']: + DT = make_dungeon( + 'Deku Tree', + ['Deku Tree Lobby', 'Deku Tree Slingshot Room', 'Deku Tree Boss Room'], + None, [], + ItemFactory(['Map (Deku Tree)', 'Compass (Deku Tree)'])) + + if world.dungeon_mq['DC']: DC = make_dungeon( 'Dodongos Cavern', ['Dodongos Cavern Beginning', 'Dodongos Cavern Lobby', 'Dodongos Cavern Boss Area'], None, [], - ItemFactory(['Map (Dodongos Cavern)', 'Compass (Dodongos Cavern)'])) - else: - DC = make_dungeon( - 'Dodongos Cavern', - ['Dodongos Cavern Beginning', 'Dodongos Cavern Lobby', 'Dodongos Cavern Climb', 'Dodongos Cavern Far Bridge', - 'Dodongos Cavern Boss Area'], - None, [], - ItemFactory(['Map (Dodongos Cavern)', 'Compass (Dodongos Cavern)'])) - - JB = make_dungeon( - 'Jabu Jabus Belly', - ['Jabu Jabus Belly Beginning', 'Jabu Jabus Belly Main', 'Jabu Jabus Belly Depths', 'Jabu Jabus Belly Boss Area'], - None, [], - ItemFactory(['Map (Jabu Jabus Belly)', 'Compass (Jabu Jabus Belly)'])) - - FoT = make_dungeon( - 'Forest Temple', - ['Forest Temple Lobby', 'Forest Temple NW Outdoors', 'Forest Temple NE Outdoors', 'Forest Temple Falling Room', - 'Forest Temple Block Push Room', 'Forest Temple Straightened Hall', 'Forest Temple Outside Upper Ledge', - 'Forest Temple Bow Region', 'Forest Temple Boss Region'], - ItemFactory('Boss Key (Forest Temple)'), - ItemFactory(['Small Key (Forest Temple)'] * 5), - ItemFactory(['Map (Forest Temple)', 'Compass (Forest Temple)'])) - - BW = make_dungeon( - 'Bottom of the Well', - ['Bottom of the Well'], - None, - ItemFactory(['Small Key (Bottom of the Well)'] * 3), - ItemFactory(['Map (Bottom of the Well)', 'Compass (Bottom of the Well)'])) - FiT = make_dungeon( - 'Fire Temple', - ['Fire Temple Lower', 'Fire Temple Middle', 'Fire Temple Upper'], - ItemFactory('Boss Key (Fire Temple)'), - ItemFactory(['Small Key (Fire Temple)'] * 8), - ItemFactory(['Map (Fire Temple)', 'Compass (Fire Temple)'])) - - IC = make_dungeon( - 'Ice Cavern', - ['Ice Cavern'], - None, [], - ItemFactory(['Map (Ice Cavern)', 'Compass (Ice Cavern)'])) - - WT = make_dungeon( - 'Water Temple', - ['Water Temple Lobby', 'Water Temple Middle Water Level', 'Water Temple Dark Link Region'], - ItemFactory('Boss Key (Water Temple)'), - ItemFactory(['Small Key (Water Temple)'] * 6), - ItemFactory(['Map (Water Temple)', 'Compass (Water Temple)'])) - - ShT = make_dungeon( - 'Shadow Temple', - ['Shadow Temple Beginning', 'Shadow Temple First Beamos', 'Shadow Temple Huge Pit', 'Shadow Temple Wind Tunnel', - 'Shadow Temple Beyond Boat'], - ItemFactory('Boss Key (Shadow Temple)'), - ItemFactory(['Small Key (Shadow Temple)'] * 5), - ItemFactory(['Map (Shadow Temple)', 'Compass (Shadow Temple)'])) - - GTG = make_dungeon( - 'Gerudo Training Grounds', - ['Gerudo Training Grounds Lobby', 'Gerudo Training Grounds Central Maze', - 'Gerudo Training Grounds Central Maze Right', 'Gerudo Training Grounds Lava Room', - 'Gerudo Training Grounds Hammer Room', 'Gerudo Training Grounds Eye Statue Lower', - 'Gerudo Training Grounds Eye Statue Upper', 'Gerudo Training Grounds Heavy Block Room'], - None, - ItemFactory(['Small Key (Gerudo Training Grounds)'] * 9), - []) - - SpT = make_dungeon( - 'Spirit Temple', - ['Spirit Temple Lobby', 'Child Spirit Temple', 'Child Spirit Temple Climb', 'Early Adult Spirit Temple', - 'Spirit Temple Central Chamber', 'Spirit Temple Beyond Central Locked Door', 'Spirit Temple Beyond Final Locked Door'], - ItemFactory('Boss Key (Spirit Temple)'), - ItemFactory(['Small Key (Spirit Temple)'] * 5), - ItemFactory(['Map (Spirit Temple)', 'Compass (Spirit Temple)'])) - - GC = make_dungeon( - 'Ganons Castle', - ['Ganons Castle Lobby', 'Ganons Castle Forest Trial', 'Ganons Castle Fire Trial', 'Ganons Castle Water Trial', - 'Ganons Castle Shadow Trial', 'Ganons Castle Spirit Trial', 'Ganons Castle Light Trial', 'Ganons Castle Tower'], - ItemFactory('Boss Key (Ganons Castle)'), - ItemFactory(['Small Key (Ganons Castle)'] * 2), - []) - - world.dungeons = [DT, DC, JB, FoT, BW, FiT, IC, WT, ShT, GTG, SpT, GC] + ItemFactory(['Map (Dodongos Cavern)', 'Compass (Dodongos Cavern)'])) + else: + DC = make_dungeon( + 'Dodongos Cavern', + ['Dodongos Cavern Beginning', 'Dodongos Cavern Lobby', 'Dodongos Cavern Climb', 'Dodongos Cavern Far Bridge', + 'Dodongos Cavern Boss Area'], + None, [], + ItemFactory(['Map (Dodongos Cavern)', 'Compass (Dodongos Cavern)'])) + + if world.dungeon_mq['JB']: + JB = make_dungeon( + 'Jabu Jabus Belly', + ['Jabu Jabus Belly Beginning', 'Jabu Jabus Belly Main', 'Jabu Jabus Belly Depths', 'Jabu Jabus Belly Boss Area'], + None, [], + ItemFactory(['Map (Jabu Jabus Belly)', 'Compass (Jabu Jabus Belly)'])) + else: + JB = make_dungeon( + 'Jabu Jabus Belly', + ['Jabu Jabus Belly Beginning', 'Jabu Jabus Belly Main', 'Jabu Jabus Belly Depths', 'Jabu Jabus Belly Boss Area'], + None, [], + ItemFactory(['Map (Jabu Jabus Belly)', 'Compass (Jabu Jabus Belly)'])) + + if world.dungeon_mq['FoT']: + FoT = make_dungeon( + 'Forest Temple', + ['Forest Temple Lobby', 'Forest Temple Central Area', 'Forest Temple After Block Puzzle', 'Forest Temple NW Outdoors', + 'Forest Temple NE Outdoors', 'Forest Temple Outdoors Top Ledges', 'Forest Temple NE Outdoors Ledge', + 'Forest Temple Bow Region', 'Forest Temple Falling Room', 'Forest Temple Boss Region'], + ItemFactory('Boss Key (Forest Temple)'), + ItemFactory(['Small Key (Forest Temple)'] * 6), + ItemFactory(['Map (Forest Temple)', 'Compass (Forest Temple)'])) + else: + FoT = make_dungeon( + 'Forest Temple', + ['Forest Temple Lobby', 'Forest Temple NW Outdoors', 'Forest Temple NE Outdoors', 'Forest Temple Falling Room', + 'Forest Temple Block Push Room', 'Forest Temple Straightened Hall', 'Forest Temple Outside Upper Ledge', + 'Forest Temple Bow Region', 'Forest Temple Boss Region'], + ItemFactory('Boss Key (Forest Temple)'), + ItemFactory(['Small Key (Forest Temple)'] * 5), + ItemFactory(['Map (Forest Temple)', 'Compass (Forest Temple)'])) + + if world.dungeon_mq['BW']: + BW = make_dungeon( + 'Bottom of the Well', + ['Bottom of the Well'], + None, + ItemFactory(['Small Key (Bottom of the Well)'] * 2), + ItemFactory(['Map (Bottom of the Well)', 'Compass (Bottom of the Well)'])) + else: + BW = make_dungeon( + 'Bottom of the Well', + ['Bottom of the Well'], + None, + ItemFactory(['Small Key (Bottom of the Well)'] * 3), + ItemFactory(['Map (Bottom of the Well)', 'Compass (Bottom of the Well)'])) + + if world.dungeon_mq['FiT']: + FiT = make_dungeon( + 'Fire Temple', + ['Fire Temple Lower', 'Fire Lower Locked Door', 'Fire Big Lava Room', 'Fire Lower Maze', 'Fire Upper Maze', + 'Fire Temple Upper', 'Fire Boss Room'], + ItemFactory('Boss Key (Fire Temple)'), + ItemFactory(['Small Key (Fire Temple)'] * 5), + ItemFactory(['Map (Fire Temple)', 'Compass (Fire Temple)'])) + else: + FiT = make_dungeon( + 'Fire Temple', + ['Fire Temple Lower', 'Fire Temple Middle', 'Fire Temple Upper'], + ItemFactory('Boss Key (Fire Temple)'), + ItemFactory(['Small Key (Fire Temple)'] * 8), + ItemFactory(['Map (Fire Temple)', 'Compass (Fire Temple)'])) + + # Ice Cavern is built identically in vanilla and MQ + IC = make_dungeon( + 'Ice Cavern', + ['Ice Cavern'], + None, [], + ItemFactory(['Map (Ice Cavern)', 'Compass (Ice Cavern)'])) + + if world.dungeon_mq['WT']: + WT = make_dungeon( + 'Water Temple', + ['Water Temple Lobby', 'Water Temple Lowered Water Levels', 'Water Temple Dark Link Region', + 'Water Temple Basement Gated Areas'], + ItemFactory('Boss Key (Water Temple)'), + ItemFactory(['Small Key (Water Temple)'] * 2), + ItemFactory(['Map (Water Temple)', 'Compass (Water Temple)'])) + else: + WT = make_dungeon( + 'Water Temple', + ['Water Temple Lobby', 'Water Temple Middle Water Level', 'Water Temple Dark Link Region'], + ItemFactory('Boss Key (Water Temple)'), + ItemFactory(['Small Key (Water Temple)'] * 6), + ItemFactory(['Map (Water Temple)', 'Compass (Water Temple)'])) + + if world.dungeon_mq['ShT']: + ShT = make_dungeon( + 'Shadow Temple', + ['Shadow Temple Beginning', 'Shadow Temple Dead Hand Area', 'Shadow Temple First Beamos', 'Shadow Temple Huge Pit', + 'Shadow Temple Wind Tunnel', 'Shadow Temple Beyond Boat', 'Shadow Temple Invisible Maze'], + ItemFactory('Boss Key (Shadow Temple)'), + ItemFactory(['Small Key (Shadow Temple)'] * 6), + ItemFactory(['Map (Shadow Temple)', 'Compass (Shadow Temple)'])) + else: + ShT = make_dungeon( + 'Shadow Temple', + ['Shadow Temple Beginning', 'Shadow Temple First Beamos', 'Shadow Temple Huge Pit', 'Shadow Temple Wind Tunnel', + 'Shadow Temple Beyond Boat'], + ItemFactory('Boss Key (Shadow Temple)'), + ItemFactory(['Small Key (Shadow Temple)'] * 5), + ItemFactory(['Map (Shadow Temple)', 'Compass (Shadow Temple)'])) + + if world.dungeon_mq['GTG']: + GTG = make_dungeon( + 'Gerudo Training Grounds', + ['Gerudo Training Grounds Lobby', 'Gerudo Training Grounds Right Side', + 'Gerudo Training Grounds Left Side', 'Gerudo Training Grounds Stalfos Room', + 'Gerudo Training Grounds Back Areas', 'Gerudo Training Grounds Central Maze Right'], + None, + ItemFactory(['Small Key (Gerudo Training Grounds)'] * 3), + []) + else: + GTG = make_dungeon( + 'Gerudo Training Grounds', + ['Gerudo Training Grounds Lobby', 'Gerudo Training Grounds Central Maze', + 'Gerudo Training Grounds Central Maze Right', 'Gerudo Training Grounds Lava Room', + 'Gerudo Training Grounds Hammer Room', 'Gerudo Training Grounds Eye Statue Lower', + 'Gerudo Training Grounds Eye Statue Upper', 'Gerudo Training Grounds Heavy Block Room'], + None, + ItemFactory(['Small Key (Gerudo Training Grounds)'] * 9), + []) + + if world.dungeon_mq['SpT']: + SpT = make_dungeon( + 'Spirit Temple', + ['Spirit Temple Lobby', 'Child Spirit Temple', 'Adult Spirit Temple', 'Spirit Temple Shared', + 'Lower Adult Spirit Temple', 'Spirit Temple Boss Area'], + ItemFactory('Boss Key (Spirit Temple)'), + ItemFactory(['Small Key (Spirit Temple)'] * 7), + ItemFactory(['Map (Spirit Temple)', 'Compass (Spirit Temple)'])) + else: + SpT = make_dungeon( + 'Spirit Temple', + ['Spirit Temple Lobby', 'Child Spirit Temple', 'Child Spirit Temple Climb', 'Early Adult Spirit Temple', + 'Spirit Temple Central Chamber', 'Spirit Temple Beyond Central Locked Door', 'Spirit Temple Beyond Final Locked Door'], + ItemFactory('Boss Key (Spirit Temple)'), + ItemFactory(['Small Key (Spirit Temple)'] * 5), + ItemFactory(['Map (Spirit Temple)', 'Compass (Spirit Temple)'])) + + if world.dungeon_mq['GC']: + GC = make_dungeon( + 'Ganons Castle', + ['Ganons Castle Lobby', 'Ganons Castle Forest Trial', 'Ganons Castle Fire Trial', 'Ganons Castle Water Trial', + 'Ganons Castle Shadow Trial', 'Ganons Castle Spirit Trial', 'Ganons Castle Light Trial', 'Ganons Castle Tower'], + ItemFactory('Boss Key (Ganons Castle)'), + ItemFactory(['Small Key (Ganons Castle)'] * 3), + []) + else: + GC = make_dungeon( + 'Ganons Castle', + ['Ganons Castle Lobby', 'Ganons Castle Forest Trial', 'Ganons Castle Fire Trial', 'Ganons Castle Water Trial', + 'Ganons Castle Shadow Trial', 'Ganons Castle Spirit Trial', 'Ganons Castle Light Trial', 'Ganons Castle Tower'], + ItemFactory('Boss Key (Ganons Castle)'), + ItemFactory(['Small Key (Ganons Castle)'] * 2), + []) + + world.dungeons = [DT, DC, JB, FoT, BW, FiT, IC, WT, ShT, GTG, SpT, GC] diff --git a/EntranceShuffle.py b/EntranceShuffle.py index f41ac56e4..83fc31c50 100644 --- a/EntranceShuffle.py +++ b/EntranceShuffle.py @@ -1,358 +1,479 @@ -import random - -def link_entrances(world): - - # setup mandatory connections - for exitname, regionname in mandatory_connections: - connect_simple(world, exitname, regionname) - if world.dungeon_mq['DT']: - for exitname, regionname in DT_MQ_connections: - connect_simple(world, exitname, regionname) - else: - for exitname, regionname in DT_vanilla_connections: - connect_simple(world, exitname, regionname) - if world.dungeon_mq['DC']: - for exitname, regionname in DC_MQ_connections: - connect_simple(world, exitname, regionname) - else: - for exitname, regionname in DC_vanilla_connections: - connect_simple(world, exitname, regionname) - # if we do not shuffle, set default connections - if world.shuffle == 'vanilla': - for exitname, regionname in default_connections: - connect_simple(world, exitname, regionname) - for exitname, regionname in default_dungeon_connections: - connect_simple(world, exitname, regionname) - else: - raise NotImplementedError('Shuffling not supported yet') - - -def connect_simple(world, exitname, regionname): - world.get_entrance(exitname).connect(world.get_region(regionname)) - -def connect_entrance(world, entrancename, exitname): - entrance = world.get_entrance(entrancename) - # check if we got an entrance or a region to connect to - try: - region = world.get_region(exitname) - exit = None - except RuntimeError: - exit = world.get_entrance(exitname) - region = exit.parent_region - - # if this was already connected somewhere, remove the backreference - if entrance.connected_region is not None: - entrance.connected_region.entrances.remove(entrance) - - target = exit_ids[exit.name][0] if exit is not None else exit_ids.get(region.name, None) - addresses = door_addresses[entrance.name][0] - - entrance.connect(region, addresses, target) - world.spoiler.set_entrance(entrance.name, exit.name if exit is not None else region.name, 'entrance') - - -def connect_exit(world, exitname, entrancename): - entrance = world.get_entrance(entrancename) - exit = world.get_entrance(exitname) - - # if this was already connected somewhere, remove the backreference - if exit.connected_region is not None: - exit.connected_region.entrances.remove(exit) - - exit.connect(entrance.parent_region, door_addresses[entrance.name][1], exit_ids[exit.name][1]) - world.spoiler.set_entrance(entrance.name, exit.name, 'exit') - - -def connect_random(world, exitlist, targetlist, two_way=False): - targetlist = list(targetlist) - random.shuffle(targetlist) - - for exit, target in zip(exitlist, targetlist): - if two_way: - connect_two_way(world, exit, target) - else: - connect_entrance(world, exit, target) - - -def connect_doors(world, doors, targets): - """This works inplace""" - random.shuffle(doors) - random.shuffle(targets) - while doors: - door = doors.pop() - target = targets.pop() - connect_entrance(world, door, target) - -# these are connections that cannot be shuffled and always exist. They link together separate parts of the world we need to divide into regions -mandatory_connections = [('Adult Forest Warp Pad', 'Forest Temple Entry Area'), - ('Child Forest Warp Pad', 'Sacred Forest Meadow'), - ('Temple Warp Pad', 'Temple of Time'), - ('Crater Warp Pad', 'Death Mountain Crater Central'), - ('Lake Warp Pad', 'Lake Hylia'), - ('Graveyard Warp Pad', 'Shadow Temple Warp Region'), - ('Colossus Warp Pad', 'Desert Colossus'), - ('Lost Woods', 'Lost Woods'), - ('Lost Woods Front', 'Kokiri Forest'), - ('Woods to Goron City', 'Goron City Woods Warp'), - ('Goron City to Woods', 'Lost Woods'), - ('Goron City from Woods', 'Goron City'), - ('Goron City Bomb Wall', 'Goron City Woods Warp'), - ('Lost Woods Dive Warp', 'Zora River Child'), - ('Zora River Dive Warp', 'Lost Woods'), - ('Meadow Entrance', 'Sacred Forest Meadow Entryway'), - ('Meadow Exit', 'Lost Woods'), - ('Meadow Gate', 'Sacred Forest Meadow'), - ('Meadow Gate Exit', 'Sacred Forest Meadow Entryway'), - ('Adult Meadow Access', 'Forest Temple Entry Area'), - ('Adult Meadow Exit', 'Lost Woods'), - ('Lost Woods Bridge', 'Lost Woods Bridge'), - ('Kokiri Forest Entrance', 'Kokiri Forest'), - ('Field to Forest', 'Lost Woods Bridge'), - ('Forest Exit', 'Hyrule Field'), - ('Field to Lake', 'Lake Hylia'), - ('Lake Hylia Dive Warp', 'Zoras Domain'), - ('Zoras Domain Dive Warp', 'Lake Hylia'), - ('Lake Exit', 'Hyrule Field'), - ('Field to Valley', 'Gerudo Valley'), - ('Valley Exit', 'Hyrule Field'), - ('Valley River', 'Lake Hylia'), - ('Bridge Crossing', 'Gerudo Valley Far Side'), - ('Fortress Entrance', 'Gerudo Fortress'), - ('Haunted Wasteland Entrance', 'Haunted Wasteland'), - ('Haunted Wasteland Crossing', 'Desert Colossus'), - ('Field to Castle Town', 'Castle Town'), - ('Castle Town Exit', 'Hyrule Field'), - ('Hyrule Castle Grounds', 'Hyrule Castle Grounds'), - ('Hyrule Castle Grounds Exit', 'Castle Town'), - ('Hyrule Castle Garden', 'Hyrule Castle Garden'), - ('Hyrule Castle Garden Exit', 'Hyrule Castle Grounds'), - ('Ganons Castle Grounds', 'Ganons Castle Grounds'), - ('Ganons Castle Grounds Exit', 'Castle Town'), - ('Field to Kakariko', 'Kakariko Village'), - ('Kakariko Exit', 'Hyrule Field'), - ('Graveyard Entrance', 'Graveyard'), - ('Graveyard Exit', 'Kakariko Village'), - ('Drop to Graveyard', 'Graveyard'), - ('Death Mountain Entrance', 'Death Mountain'), - ('Death Mountain Exit', 'Kakariko Village'), - ('Goron City Entrance', 'Goron City'), - ('Goron City Exit', 'Death Mountain'), - ('Darunias Chamber', 'Darunias Chamber'), - ('Darunias Chamber Exit', 'Goron City'), - ('Mountain Crater Entrance', 'Death Mountain Crater Upper'), - ('Crater Exit', 'Death Mountain'), - ('Crater Hover Boots', 'Death Mountain Crater Lower'), - ('Crater Ascent', 'Death Mountain Crater Upper'), - ('Crater Scarecrow', 'Death Mountain Crater Central'), - ('Crater Bridge', 'Death Mountain Crater Central'), - ('Crater Bridge Reverse', 'Death Mountain Crater Lower'), - ('Crater to City', 'Goron City'), - ('Crater Access', 'Death Mountain Crater Lower'), - ('Dodongos Cavern Rocks', 'Dodongos Cavern Entryway'), - ('Mountain Access from Behind Rock', 'Death Mountain'), - ('Field to Zora River', 'Zora River Front'), - ('Zora River Exit', 'Hyrule Field'), - ('Zora River Rocks', 'Zora River Child'), - ('Zora River Downstream', 'Zora River Front'), - ('Zora River Child to Shared', 'Zora River Shared'), - ('Zora River Adult to Shared', 'Zora River Shared'), - ('Zora River Waterfall', 'Zoras Domain'), - ('Zoras Domain Exit', 'Zora River Child'), - ('Behind King Zora', 'Zoras Fountain'), - ('Zoras Fountain Exit', 'Zoras Domain'), - ('Zora River Adult', 'Zora River Adult'), - ('Zoras Domain Adult Access', 'Zoras Domain Frozen'), - ('Zoras Fountain Adult Access', 'Outside Ice Cavern'), - ('Lon Lon Rance Entrance', 'Lon Lon Ranch'), - ('Lon Lon Exit', 'Hyrule Field'), - ('Jabu Jabus Belly Ceiling Switch', 'Jabu Jabus Belly Main'), - ('Jabu Jabus Belly Retreat', 'Jabu Jabus Belly Beginning'), - ('Jabu Jabus Belly Tentacles', 'Jabu Jabus Belly Depths'), - ('Jabu Jabus Belly Elevator', 'Jabu Jabus Belly Main'), - ('Jabu Jabus Belly Octopus', 'Jabu Jabus Belly Boss Area'), - ('Jabu Jabus Belly Final Backtrack', 'Jabu Jabus Belly Main'), - ('Forest Temple Song of Time Block', 'Forest Temple NW Outdoors'), - ('Forest Temple Lobby Eyeball Switch', 'Forest Temple NE Outdoors'), - ('Forest Temple Lobby Locked Door', 'Forest Temple Block Push Room'), - ('Forest Temple Through Map Room', 'Forest Temple NE Outdoors'), - ('Forest Temple Well Connection', 'Forest Temple NW Outdoors'), - ('Forest Temple Outside to Lobby', 'Forest Temple Lobby'), - ('Forest Temple Scarecrows Song', 'Forest Temple Falling Room'), - ('Forest Temple Falling Room Exit', 'Forest Temple NE Outdoors'), - ('Forest Temple Elevator', 'Forest Temple Boss Region'), - ('Forest Temple Outside Backdoor', 'Forest Temple Outside Upper Ledge'), - ('Forest Temple Twisted Hall', 'Forest Temple Bow Region'), - ('Forest Temple Straightened Hall', 'Forest Temple Straightened Hall'), - ('Forest Temple Boss Key Chest Drop', 'Forest Temple Outside Upper Ledge'), - ('Forest Temple Outside Ledge Drop', 'Forest Temple NW Outdoors'), - ('Forest Temple Drop to Falling Room', 'Forest Temple Falling Room'), - ('Fire Temple Early Climb', 'Fire Temple Middle'), - ('Fire Temple Fire Maze Escape', 'Fire Temple Upper'), - ('Water Temple Central Pillar', 'Water Temple Middle Water Level'), - ('Water Temple Upper Locked Door', 'Water Temple Dark Link Region'), - ('Shadow Temple First Pit', 'Shadow Temple First Beamos'), - ('Shadow Temple Bomb Wall', 'Shadow Temple Huge Pit'), - ('Shadow Temple Hookshot Target', 'Shadow Temple Wind Tunnel'), - ('Shadow Temple Boat', 'Shadow Temple Beyond Boat'), - ('Gerudo Training Ground Left Silver Rupees', 'Gerudo Training Grounds Heavy Block Room'), - ('Gerudo Training Ground Beamos', 'Gerudo Training Grounds Lava Room'), - ('Gerudo Training Ground Central Door', 'Gerudo Training Grounds Central Maze'), - ('Gerudo Training Grounds Right Locked Doors', 'Gerudo Training Grounds Central Maze Right'), - ('Gerudo Training Grounds Maze Exit', 'Gerudo Training Grounds Lava Room'), - ('Gerudo Training Grounds Maze Ledge', 'Gerudo Training Grounds Central Maze Right'), - ('Gerudo Training Grounds Right Hookshot Target', 'Gerudo Training Grounds Hammer Room'), - ('Gerudo Training Grounds Hammer Target', 'Gerudo Training Grounds Eye Statue Lower'), - ('Gerudo Training Grounds Hammer Room Clear', 'Gerudo Training Grounds Lava Room'), - ('Gerudo Training Grounds Eye Statue Exit', 'Gerudo Training Grounds Hammer Room'), - ('Gerudo Training Grounds Eye Statue Drop', 'Gerudo Training Grounds Eye Statue Lower'), - ('Gerudo Training Grounds Hidden Hookshot Target', 'Gerudo Training Grounds Eye Statue Upper'), - ('Spirit Temple Crawl Passage', 'Child Spirit Temple'), - ('Spirit Temple Silver Block', 'Early Adult Spirit Temple'), - ('Child Spirit Temple Climb', 'Child Spirit Temple Climb'), - ('Child Spirit Temple Passthrough', 'Spirit Temple Central Chamber'), - ('Adult Spirit Temple Passthrough', 'Spirit Temple Central Chamber'), - ('Spirit Temple Middle Child Door', 'Child Spirit Temple Climb'), - ('Spirit Temple to Hands', 'Spirit Temple Outdoor Hands'), - ('Spirit Temple Central Locked Door', 'Spirit Temple Beyond Central Locked Door'), - ('Spirit Temple Final Locked Door', 'Spirit Temple Beyond Final Locked Door'), - ('Ganons Castle Forest Trial', 'Ganons Castle Forest Trial'), - ('Ganons Castle Fire Trial', 'Ganons Castle Fire Trial'), - ('Ganons Castle Water Trial', 'Ganons Castle Water Trial'), - ('Ganons Castle Shadow Trial', 'Ganons Castle Shadow Trial'), - ('Ganons Castle Spirit Trial', 'Ganons Castle Spirit Trial'), - ('Ganons Castle Light Trial', 'Ganons Castle Light Trial'), - ('Ganons Castle Tower', 'Ganons Castle Tower') - ] - -DT_vanilla_connections = [('Deku Tree Slingshot Passage', 'Deku Tree Slingshot Room'), - ('Deku Tree Slingshot Exit', 'Deku Tree Lobby'), - ('Deku Tree Basement Path', 'Deku Tree Boss Room'), - ('Deku Tree Basement Vines', 'Deku Tree Lobby') - ] - +import random + +def link_entrances(world): + + # setup mandatory connections + for exitname, regionname in mandatory_connections: + connect_simple(world, exitname, regionname) + if world.dungeon_mq['DT']: + for exitname, regionname in DT_MQ_connections: + connect_simple(world, exitname, regionname) + else: + for exitname, regionname in DT_vanilla_connections: + connect_simple(world, exitname, regionname) + if world.dungeon_mq['DC']: + for exitname, regionname in DC_MQ_connections: + connect_simple(world, exitname, regionname) + else: + for exitname, regionname in DC_vanilla_connections: + connect_simple(world, exitname, regionname) + if world.dungeon_mq['JB']: + for exitname, regionname in JB_MQ_connections: + connect_simple(world, exitname, regionname) + else: + for exitname, regionname in JB_vanilla_connections: + connect_simple(world, exitname, regionname) + if world.dungeon_mq['FoT']: + for exitname, regionname in FoT_MQ_connections: + connect_simple(world, exitname, regionname) + else: + for exitname, regionname in FoT_vanilla_connections: + connect_simple(world, exitname, regionname) + if world.dungeon_mq['FiT']: + for exitname, regionname in FiT_MQ_connections: + connect_simple(world, exitname, regionname) + else: + for exitname, regionname in FiT_vanilla_connections: + connect_simple(world, exitname, regionname) + if world.dungeon_mq['WT']: + for exitname, regionname in WT_MQ_connections: + connect_simple(world, exitname, regionname) + else: + for exitname, regionname in WT_vanilla_connections: + connect_simple(world, exitname, regionname) + if world.dungeon_mq['GTG']: + for exitname, regionname in GTG_MQ_connections: + connect_simple(world, exitname, regionname) + else: + for exitname, regionname in GTG_vanilla_connections: + connect_simple(world, exitname, regionname) + if world.dungeon_mq['SpT']: + for exitname, regionname in SpT_MQ_connections: + connect_simple(world, exitname, regionname) + else: + for exitname, regionname in SpT_vanilla_connections: + connect_simple(world, exitname, regionname) + if world.dungeon_mq['ShT']: + for exitname, regionname in ShT_MQ_connections: + connect_simple(world, exitname, regionname) + else: + for exitname, regionname in ShT_vanilla_connections: + connect_simple(world, exitname, regionname) + # if we do not shuffle, set default connections + if world.shuffle == 'vanilla': + for exitname, regionname in default_connections: + connect_simple(world, exitname, regionname) + for exitname, regionname in default_dungeon_connections: + connect_simple(world, exitname, regionname) + else: + raise NotImplementedError('Shuffling not supported yet') + + +def connect_simple(world, exitname, regionname): + world.get_entrance(exitname).connect(world.get_region(regionname)) + +def connect_entrance(world, entrancename, exitname): + entrance = world.get_entrance(entrancename) + # check if we got an entrance or a region to connect to + try: + region = world.get_region(exitname) + exit = None + except RuntimeError: + exit = world.get_entrance(exitname) + region = exit.parent_region + + # if this was already connected somewhere, remove the backreference + if entrance.connected_region is not None: + entrance.connected_region.entrances.remove(entrance) + + target = exit_ids[exit.name][0] if exit is not None else exit_ids.get(region.name, None) + addresses = door_addresses[entrance.name][0] + + entrance.connect(region, addresses, target) + world.spoiler.set_entrance(entrance.name, exit.name if exit is not None else region.name, 'entrance') + + +def connect_exit(world, exitname, entrancename): + entrance = world.get_entrance(entrancename) + exit = world.get_entrance(exitname) + + # if this was already connected somewhere, remove the backreference + if exit.connected_region is not None: + exit.connected_region.entrances.remove(exit) + + exit.connect(entrance.parent_region, door_addresses[entrance.name][1], exit_ids[exit.name][1]) + world.spoiler.set_entrance(entrance.name, exit.name, 'exit') + + +def connect_random(world, exitlist, targetlist, two_way=False): + targetlist = list(targetlist) + random.shuffle(targetlist) + + for exit, target in zip(exitlist, targetlist): + if two_way: + connect_two_way(world, exit, target) + else: + connect_entrance(world, exit, target) + + +def connect_doors(world, doors, targets): + """This works inplace""" + random.shuffle(doors) + random.shuffle(targets) + while doors: + door = doors.pop() + target = targets.pop() + connect_entrance(world, door, target) + +# these are connections that cannot be shuffled and always exist. They link together separate parts of the world we need to divide into regions +mandatory_connections = [('Adult Forest Warp Pad', 'Forest Temple Entry Area'), + ('Child Forest Warp Pad', 'Sacred Forest Meadow'), + ('Temple Warp Pad', 'Temple of Time'), + ('Crater Warp Pad', 'Death Mountain Crater Central'), + ('Lake Warp Pad', 'Lake Hylia'), + ('Graveyard Warp Pad', 'Shadow Temple Warp Region'), + ('Colossus Warp Pad', 'Desert Colossus'), + ('Lost Woods', 'Lost Woods'), + ('Lost Woods Front', 'Kokiri Forest'), + ('Woods to Goron City', 'Goron City Woods Warp'), + ('Goron City to Woods', 'Lost Woods'), + ('Goron City from Woods', 'Goron City'), + ('Goron City Bomb Wall', 'Goron City Woods Warp'), + ('Lost Woods Dive Warp', 'Zora River Child'), + ('Zora River Dive Warp', 'Lost Woods'), + ('Meadow Entrance', 'Sacred Forest Meadow Entryway'), + ('Meadow Exit', 'Lost Woods'), + ('Meadow Gate', 'Sacred Forest Meadow'), + ('Meadow Gate Exit', 'Sacred Forest Meadow Entryway'), + ('Adult Meadow Access', 'Forest Temple Entry Area'), + ('Adult Meadow Exit', 'Lost Woods'), + ('Lost Woods Bridge', 'Lost Woods Bridge'), + ('Kokiri Forest Entrance', 'Kokiri Forest'), + ('Field to Forest', 'Lost Woods Bridge'), + ('Forest Exit', 'Hyrule Field'), + ('Field to Lake', 'Lake Hylia'), + ('Lake Hylia Dive Warp', 'Zoras Domain'), + ('Zoras Domain Dive Warp', 'Lake Hylia'), + ('Lake Exit', 'Hyrule Field'), + ('Field to Valley', 'Gerudo Valley'), + ('Valley Exit', 'Hyrule Field'), + ('Valley River', 'Lake Hylia'), + ('Bridge Crossing', 'Gerudo Valley Far Side'), + ('Fortress Entrance', 'Gerudo Fortress'), + ('Haunted Wasteland Entrance', 'Haunted Wasteland'), + ('Haunted Wasteland Crossing', 'Desert Colossus'), + ('Field to Castle Town', 'Castle Town'), + ('Castle Town Exit', 'Hyrule Field'), + ('Hyrule Castle Grounds', 'Hyrule Castle Grounds'), + ('Hyrule Castle Grounds Exit', 'Castle Town'), + ('Hyrule Castle Garden', 'Hyrule Castle Garden'), + ('Hyrule Castle Garden Exit', 'Hyrule Castle Grounds'), + ('Ganons Castle Grounds', 'Ganons Castle Grounds'), + ('Ganons Castle Grounds Exit', 'Castle Town'), + ('Field to Kakariko', 'Kakariko Village'), + ('Kakariko Exit', 'Hyrule Field'), + ('Graveyard Entrance', 'Graveyard'), + ('Graveyard Exit', 'Kakariko Village'), + ('Drop to Graveyard', 'Graveyard'), + ('Death Mountain Entrance', 'Death Mountain'), + ('Death Mountain Exit', 'Kakariko Village'), + ('Goron City Entrance', 'Goron City'), + ('Goron City Exit', 'Death Mountain'), + ('Darunias Chamber', 'Darunias Chamber'), + ('Darunias Chamber Exit', 'Goron City'), + ('Mountain Crater Entrance', 'Death Mountain Crater Upper'), + ('Crater Exit', 'Death Mountain'), + ('Crater Hover Boots', 'Death Mountain Crater Lower'), + ('Crater Ascent', 'Death Mountain Crater Upper'), + ('Crater Scarecrow', 'Death Mountain Crater Central'), + ('Crater Bridge', 'Death Mountain Crater Central'), + ('Crater Bridge Reverse', 'Death Mountain Crater Lower'), + ('Crater to City', 'Goron City'), + ('Crater Access', 'Death Mountain Crater Lower'), + ('Dodongos Cavern Rocks', 'Dodongos Cavern Entryway'), + ('Mountain Access from Behind Rock', 'Death Mountain'), + ('Field to Zora River', 'Zora River Front'), + ('Zora River Exit', 'Hyrule Field'), + ('Zora River Rocks', 'Zora River Child'), + ('Zora River Downstream', 'Zora River Front'), + ('Zora River Child to Shared', 'Zora River Shared'), + ('Zora River Adult to Shared', 'Zora River Shared'), + ('Zora River Waterfall', 'Zoras Domain'), + ('Zoras Domain Exit', 'Zora River Child'), + ('Behind King Zora', 'Zoras Fountain'), + ('Zoras Fountain Exit', 'Zoras Domain'), + ('Zora River Adult', 'Zora River Adult'), + ('Zoras Domain Adult Access', 'Zoras Domain Frozen'), + ('Zoras Fountain Adult Access', 'Outside Ice Cavern'), + ('Lon Lon Rance Entrance', 'Lon Lon Ranch'), + ('Lon Lon Exit', 'Hyrule Field'), + ('Ganons Castle Forest Trial', 'Ganons Castle Forest Trial'), + ('Ganons Castle Fire Trial', 'Ganons Castle Fire Trial'), + ('Ganons Castle Water Trial', 'Ganons Castle Water Trial'), + ('Ganons Castle Shadow Trial', 'Ganons Castle Shadow Trial'), + ('Ganons Castle Spirit Trial', 'Ganons Castle Spirit Trial'), + ('Ganons Castle Light Trial', 'Ganons Castle Light Trial'), + ('Ganons Castle Tower', 'Ganons Castle Tower') + ] + +DT_vanilla_connections = [('Deku Tree Slingshot Passage', 'Deku Tree Slingshot Room'), + ('Deku Tree Slingshot Exit', 'Deku Tree Lobby'), + ('Deku Tree Basement Path', 'Deku Tree Boss Room'), + ('Deku Tree Basement Vines', 'Deku Tree Lobby') + ] + DT_MQ_connections = [('Deku Tree Compass Passage', 'Deku Tree Compass Room'), ('Deku Tree Compass Exit', 'Deku Tree Lobby'), ('Deku Tree Basement Path', 'Deku Tree Boss Room'), - ('Deku Tree Basement Vines', 'Deku Tree Lobby') - ] - -DC_vanilla_connections = [('Dodongos Cavern Lobby', 'Dodongos Cavern Lobby'), - ('Dodongos Cavern Retreat', 'Dodongos Cavern Beginning'), - ('Dodongos Cavern Left Door', 'Dodongos Cavern Climb'), - ('Dodongos Cavern Bridge Fall', 'Dodongos Cavern Lobby'), - ('Dodongos Cavern Slingshot Target', 'Dodongos Cavern Far Bridge'), - ('Dodongos Cavern Bridge Fall 2', 'Dodongos Cavern Lobby'), - ('Dodongos Cavern Bomb Drop', 'Dodongos Cavern Boss Area'), - ('Dodongos Cavern Exit Skull', 'Dodongos Cavern Lobby') - ] - + ('Deku Tree Basement Vines', 'Deku Tree Lobby') + ] + +DC_vanilla_connections = [('Dodongos Cavern Lobby', 'Dodongos Cavern Lobby'), + ('Dodongos Cavern Retreat', 'Dodongos Cavern Beginning'), + ('Dodongos Cavern Left Door', 'Dodongos Cavern Climb'), + ('Dodongos Cavern Bridge Fall', 'Dodongos Cavern Lobby'), + ('Dodongos Cavern Slingshot Target', 'Dodongos Cavern Far Bridge'), + ('Dodongos Cavern Bridge Fall 2', 'Dodongos Cavern Lobby'), + ('Dodongos Cavern Bomb Drop', 'Dodongos Cavern Boss Area'), + ('Dodongos Cavern Exit Skull', 'Dodongos Cavern Lobby') + ] + DC_MQ_connections = [('Dodongos Cavern Lobby', 'Dodongos Cavern Lobby'), - ('Dodongos Cavern Bomb Drop', 'Dodongos Cavern Boss Area') - ] - -# non-shuffled entrance links -default_connections = [('Links House Exit', 'Kokiri Forest'), - ('Links House', 'Links House'), - ('Mido House Exit', 'Kokiri Forest'), - ('Mido House', 'Mido House'), - ('Saria House Exit', 'Kokiri Forest'), - ('Saria House', 'Saria House'), - ('House of Twins Exit', 'Kokiri Forest'), - ('House of Twins', 'House of Twins'), - ('Know It All House Exit', 'Kokiri Forest'), - ('Know It All House', 'Know It All House'), - ('Kokiri Shop Exit', 'Kokiri Forest'), - ('Kokiri Shop', 'Kokiri Shop'), - ('Lake Hylia Lab', 'Lake Hylia Lab'), - ('Fishing Hole', 'Fishing Hole'), - ('Colossus Fairy', 'Colossus Fairy'), - ('Temple of Time', 'Temple of Time'), - ('Temple of Time Exit', 'Castle Town'), - ('Door of Time', 'Beyond Door of Time'), - ('Emerge as Adult', 'Temple of Time'), - ('Hyrule Castle Fairy', 'Hyrule Castle Fairy'), - ('Ganons Castle Fairy', 'Ganons Castle Fairy'), - ('Castle Town Rupee Room', 'Castle Town Rupee Room'), - ('Castle Town Bazaar', 'Castle Town Bazaar'), - ('Castle Town Mask Shop', 'Castle Town Mask Shop'), - ('Castle Town Shooting Gallery', 'Castle Town Shooting Gallery'), - ('Castle Town Bombchu Bowling', 'Castle Town Bombchu Bowling'), - ('Castle Town Potion Shop', 'Castle Town Potion Shop'), - ('Castle Town Treasure Chest Game', 'Castle Town Treasure Chest Game'), - ('Castle Town Bombchu Shop', 'Castle Town Bombchu Shop'), - ('Castle Town Dog Lady', 'Castle Town Dog Lady'), - ('Castle Town Man in Green House', 'Castle Town Man in Green House'), - ('Carpenter Boss House', 'Carpenter Boss House'), - ('House of Skulltulla', 'House of Skulltulla'), - ('Impas House', 'Impas House'), - ('Impas House Back', 'Impas House Back'), - ('Windmill', 'Windmill'), - ('Kakariko Bazaar', 'Kakariko Bazaar'), - ('Kakariko Shooting Gallery', 'Kakariko Shooting Gallery'), - ('Kakariko Potion Shop Front', 'Kakariko Potion Shop Front'), - ('Kakariko Potion Shop Back', 'Kakariko Potion Shop Back'), - ('Odd Medicine Building', 'Odd Medicine Building'), - ('Shield Grave', 'Shield Grave'), - ('Heart Piece Grave', 'Heart Piece Grave'), - ('Composer Grave', 'Composer Grave'), - ('Dampes Grave', 'Dampes Grave'), - ('Crater Fairy', 'Crater Fairy'), - ('Mountain Summit Fairy', 'Mountain Summit Fairy'), - ('Dampes House', 'Dampes House'), - ('Talon House', 'Talon House'), - ('Ingo Barn', 'Ingo Barn'), - ('Lon Lon Corner Tower', 'Lon Lon Corner Tower'), - ('Zora Shop', 'Zora Shop'), - ('Zoras Fountain Fairy', 'Zoras Fountain Fairy'), - ('Kokiri Forest Storms Grotto', 'Kokiri Forest Storms Grotto'), - ('Lost Woods Generic Grotto', 'Lost Woods Generic Grotto'), - ('Deku Theater', 'Deku Theater'), - ('Lost Woods Sales Grotto', 'Lost Woods Sales Grotto'), - ('Meadow Fairy Grotto', 'Meadow Fairy Grotto'), - ('Front of Meadow Grotto', 'Front of Meadow Grotto'), - ('Lon Lon Grotto', 'Lon Lon Grotto'), - ('Remote Southern Grotto', 'Remote Southern Grotto'), - ('Field Near Lake Outside Fence Grotto', 'Field Near Lake Outside Fence Grotto'), - ('Field Near Lake Inside Fence Grotto', 'Field Near Lake Inside Fence Grotto'), - ('Field Valley Grotto', 'Field Valley Grotto'), - ('Field West Castle Town Grotto', 'Field West Castle Town Grotto'), - ('Field Far West Castle Town Grotto', 'Field Far West Castle Town Grotto'), - ('Field Kakariko Grotto', 'Field Kakariko Grotto'), - ('Kakariko Bombable Grotto', 'Kakariko Bombable Grotto'), - ('Kakariko Back Grotto', 'Kakariko Back Grotto'), - ('Mountain Bombable Grotto', 'Mountain Bombable Grotto'), - ('Mountain Storms Grotto', 'Mountain Storms Grotto'), - ('Top of Crater Grotto', 'Top of Crater Grotto'), - ('Field North Lon Lon Grotto', 'Field North Lon Lon Grotto'), - ('Castle Storms Grotto', 'Castle Storms Grotto'), - ('Zora River Plateau Open Grotto', 'Zora River Plateau Open Grotto'), - ('Zora River Plateau Bombable Grotto', 'Zora River Plateau Bombable Grotto'), - ('Lake Hylia Grotto', 'Lake Hylia Grotto') - ] - -# non shuffled dungeons -default_dungeon_connections = [('Deku Tree', 'Deku Tree Lobby'), - ('Deku Tree Exit', 'Kokiri Forest'), - ('Dodongos Cavern', 'Dodongos Cavern Beginning'), - ('Dodongos Cavern Exit', 'Dodongos Cavern Entryway'), - ('Jabu Jabus Belly', 'Jabu Jabus Belly Beginning'), - ('Jabu Jabus Belly Exit', 'Zoras Fountain'), - ('Forest Temple Entrance', 'Forest Temple Lobby'), - ('Forest Temple Exit', 'Forest Temple Entry Area'), - ('Bottom of the Well', 'Bottom of the Well'), - ('Bottom of the Well Exit', 'Kakariko Village'), - ('Fire Temple Entrance', 'Fire Temple Lower'), - ('Fire Temple Exit', 'Death Mountain Crater Central'), - ('Ice Cavern Entrance', 'Ice Cavern'), - ('Ice Cavern Exit', 'Outside Ice Cavern'), - ('Water Temple Entrance', 'Water Temple Lobby'), - ('Water Temple Exit', 'Lake Hylia'), - ('Shadow Temple Entrance', 'Shadow Temple Beginning'), - ('Shadow Temple Exit', 'Shadow Temple Warp Region'), - ('Gerudo Training Grounds Entrance', 'Gerudo Training Grounds Lobby'), - ('Gerudo Training Grounds Exit', 'Gerudo Fortress'), - ('Spirit Temple Entrance', 'Spirit Temple Lobby'), - ('Spirit Temple Exit', 'Desert Colossus'), - ('Rainbow Bridge', 'Ganons Castle Lobby'), - ('Ganons Castle Exit', 'Ganons Castle Grounds') - ] + ('Dodongos Cavern Bomb Drop', 'Dodongos Cavern Boss Area') + ] + +JB_vanilla_connections = [('Jabu Jabus Belly Ceiling Switch', 'Jabu Jabus Belly Main'), + ('Jabu Jabus Belly Retreat', 'Jabu Jabus Belly Beginning'), + ('Jabu Jabus Belly Tentacles', 'Jabu Jabus Belly Depths'), + ('Jabu Jabus Belly Elevator', 'Jabu Jabus Belly Main'), + ('Jabu Jabus Belly Octopus', 'Jabu Jabus Belly Boss Area'), + ('Jabu Jabus Belly Final Backtrack', 'Jabu Jabus Belly Main') + ] + +JB_MQ_connections = [('Jabu Jabus Belly Cow Switch', 'Jabu Jabus Belly Main'), + ('Jabu Jabus Belly Retreat', 'Jabu Jabus Belly Beginning'), + ('Jabu Jabus Belly Tentacle Access', 'Jabu Jabus Belly Depths'), + ('Jabu Jabus Belly Elevator', 'Jabu Jabus Belly Main'), + ('Jabu Jabus Belly Octopus', 'Jabu Jabus Belly Boss Area'), + ('Jabu Jabus Belly Final Backtrack', 'Jabu Jabus Belly Main') + ] + +FoT_vanilla_connections = [('Forest Temple Song of Time Block', 'Forest Temple NW Outdoors'), + ('Forest Temple Lobby Eyeball Switch', 'Forest Temple NE Outdoors'), + ('Forest Temple Lobby Locked Door', 'Forest Temple Block Push Room'), + ('Forest Temple Through Map Room', 'Forest Temple NE Outdoors'), + ('Forest Temple Well Connection', 'Forest Temple NW Outdoors'), + ('Forest Temple Outside to Lobby', 'Forest Temple Lobby'), + ('Forest Temple Scarecrows Song', 'Forest Temple Falling Room'), + ('Forest Temple Falling Room Exit', 'Forest Temple NE Outdoors'), + ('Forest Temple Elevator', 'Forest Temple Boss Region'), + ('Forest Temple Outside Backdoor', 'Forest Temple Outside Upper Ledge'), + ('Forest Temple Twisted Hall', 'Forest Temple Bow Region'), + ('Forest Temple Straightened Hall', 'Forest Temple Straightened Hall'), + ('Forest Temple Boss Key Chest Drop', 'Forest Temple Outside Upper Ledge'), + ('Forest Temple Outside Ledge Drop', 'Forest Temple NW Outdoors'), + ('Forest Temple Drop to Falling Room', 'Forest Temple Falling Room') + ] + +FoT_MQ_connections = [('Forest Temple Lobby Locked Door', 'Forest Temple Central Area'), + ('Forest Temple West Eye Switch', 'Forest Temple NW Outdoors'), + ('Forest Temple East Eye Switch', 'Forest Temple NE Outdoors'), + ('Forest Temple Block Puzzle Solve', 'Forest Temple After Block Puzzle'), + ('Forest Temple Drop to NW Outdoors', 'Forest Temple NW Outdoors'), + ('Forest Temple Well Connection', 'Forest Temple NE Outdoors'), + ('Forest Temple Webs', 'Forest Temple Outdoors Top Ledges'), + ('Forest Temple Climb to Top Ledges', 'Forest Temple Outdoors Top Ledges'), + ('Forest Temple Longshot to NE Outdoors Ledge', 'Forest Temple NE Outdoors Ledge'), + ('Forest Temple Top Drop to NE Outdoors', 'Forest Temple NE Outdoors'), + ('Forest Temple Drop to NE Outdoors', 'Forest Temple NE Outdoors'), + ('Forest Temple Song of Time Block Climb', 'Forest Temple Falling Room'), + ('Forest Temple Twisted Hall', 'Forest Temple Bow Region'), + ('Forest Temple Drop to Falling Room', 'Forest Temple Falling Room'), + ('Forest Temple Falling Room Exit', 'Forest Temple NE Outdoors Ledge'), + ('Forest Temple Elevator', 'Forest Temple Boss Region') + ] + +FiT_vanilla_connections = [('Fire Temple Early Climb', 'Fire Temple Middle'), + ('Fire Temple Fire Maze Escape', 'Fire Temple Upper') + ] + +FiT_MQ_connections = [('Fire Temple Boss Door', 'Fire Boss Room'), + ('Fire Temple Lower Locked Door', 'Fire Lower Locked Door'), + ('Fire Temple Hammer Statue', 'Fire Big Lava Room'), + ('Fire Temple Early Climb', 'Fire Lower Maze'), + ('Fire Temple Maze Climb', 'Fire Upper Maze'), + ('Fire Temple Maze Escape', 'Fire Temple Upper') + ] + +WT_vanilla_connections = [('Water Temple Central Pillar', 'Water Temple Middle Water Level'), + ('Water Temple Upper Locked Door', 'Water Temple Dark Link Region') + ] + +WT_MQ_connections = [('Water Temple Water Level Switch', 'Water Temple Lowered Water Levels'), + ('Water Temple Locked Door', 'Water Temple Dark Link Region'), + ('Water Temple Basement Gates Switch', 'Water Temple Basement Gated Areas') + ] + +GTG_vanilla_connections = [('Gerudo Training Ground Left Silver Rupees', 'Gerudo Training Grounds Heavy Block Room'), + ('Gerudo Training Ground Beamos', 'Gerudo Training Grounds Lava Room'), + ('Gerudo Training Ground Central Door', 'Gerudo Training Grounds Central Maze'), + ('Gerudo Training Grounds Right Locked Doors', 'Gerudo Training Grounds Central Maze Right'), + ('Gerudo Training Grounds Maze Exit', 'Gerudo Training Grounds Lava Room'), + ('Gerudo Training Grounds Maze Ledge', 'Gerudo Training Grounds Central Maze Right'), + ('Gerudo Training Grounds Right Hookshot Target', 'Gerudo Training Grounds Hammer Room'), + ('Gerudo Training Grounds Hammer Target', 'Gerudo Training Grounds Eye Statue Lower'), + ('Gerudo Training Grounds Hammer Room Clear', 'Gerudo Training Grounds Lava Room'), + ('Gerudo Training Grounds Eye Statue Exit', 'Gerudo Training Grounds Hammer Room'), + ('Gerudo Training Grounds Eye Statue Drop', 'Gerudo Training Grounds Eye Statue Lower'), + ('Gerudo Training Grounds Hidden Hookshot Target', 'Gerudo Training Grounds Eye Statue Upper') + ] + +GTG_MQ_connections = [('Gerudo Training Grounds Left Door', 'Gerudo Training Grounds Left Side'), + ('Gerudo Training Grounds Right Door', 'Gerudo Training Grounds Right Side'), + ('Gerudo Training Grounds Longshot Target', 'Gerudo Training Grounds Stalfos Room'), + ('Gerudo Training Grounds Song of Time Block', 'Gerudo Training Grounds Back Areas'), + ('Gerudo Training Grounds Rusted Switch', 'Gerudo Training Grounds Central Maze Right'), + ('Gerudo Training Grounds Loop Around', 'Gerudo Training Grounds Right Side') + ] + +SpT_vanilla_connections = [('Spirit Temple Crawl Passage', 'Child Spirit Temple'), + ('Spirit Temple Silver Block', 'Early Adult Spirit Temple'), + ('Child Spirit Temple Climb', 'Child Spirit Temple Climb'), + ('Child Spirit Temple Passthrough', 'Spirit Temple Central Chamber'), + ('Adult Spirit Temple Passthrough', 'Spirit Temple Central Chamber'), + ('Spirit Temple Middle Child Door', 'Child Spirit Temple Climb'), + ('Spirit Temple to Hands', 'Spirit Temple Outdoor Hands'), + ('Spirit Temple Central Locked Door', 'Spirit Temple Beyond Central Locked Door'), + ('Spirit Temple Final Locked Door', 'Spirit Temple Beyond Final Locked Door'), + ] + +SpT_MQ_connections = [('Spirit Temple Crawl Passage', 'Child Spirit Temple'), + ('Spirit Temple Ceiling Passage', 'Adult Spirit Temple'), + ('Child Spirit Temple to Shared', 'Spirit Temple Shared'), + ('Adult Spirit Temple to Shared', 'Spirit Temple Shared'), + ('Adult Spirit Temple Descent', 'Lower Adult Spirit Temple'), + ('Spirit Temple Climbable Wall', 'Spirit Temple Boss Area'), + ('Mirror Shield Exit', 'Mirror Shield Hand'), + ('Silver Gauntlets Exit', 'Silver Gauntlets Hand') + ] + +ShT_vanilla_connections = [('Shadow Temple First Pit', 'Shadow Temple First Beamos'), + ('Shadow Temple Bomb Wall', 'Shadow Temple Huge Pit'), + ('Shadow Temple Hookshot Target', 'Shadow Temple Wind Tunnel'), + ('Shadow Temple Boat', 'Shadow Temple Beyond Boat') + ] + +ShT_MQ_connections = [('Shadow Temple First Pit', 'Shadow Temple First Beamos'), + ('Shadow Temple Beginning Locked Door', 'Shadow Temple Dead Hand Area'), + ('Shadow Temple Bomb Wall', 'Shadow Temple Huge Pit'), + ('Shadow Temple Hookshot Target', 'Shadow Temple Wind Tunnel'), + ('Shadow Temple Boat', 'Shadow Temple Beyond Boat'), + ('Shadow Temple Longshot Target', 'Shadow Temple Invisible Maze') + ] + +# non-shuffled entrance links +default_connections = [('Links House Exit', 'Kokiri Forest'), + ('Links House', 'Links House'), + ('Mido House Exit', 'Kokiri Forest'), + ('Mido House', 'Mido House'), + ('Saria House Exit', 'Kokiri Forest'), + ('Saria House', 'Saria House'), + ('House of Twins Exit', 'Kokiri Forest'), + ('House of Twins', 'House of Twins'), + ('Know It All House Exit', 'Kokiri Forest'), + ('Know It All House', 'Know It All House'), + ('Kokiri Shop Exit', 'Kokiri Forest'), + ('Kokiri Shop', 'Kokiri Shop'), + ('Lake Hylia Lab', 'Lake Hylia Lab'), + ('Fishing Hole', 'Fishing Hole'), + ('Colossus Fairy', 'Colossus Fairy'), + ('Temple of Time', 'Temple of Time'), + ('Temple of Time Exit', 'Castle Town'), + ('Door of Time', 'Beyond Door of Time'), + ('Emerge as Adult', 'Temple of Time'), + ('Hyrule Castle Fairy', 'Hyrule Castle Fairy'), + ('Ganons Castle Fairy', 'Ganons Castle Fairy'), + ('Castle Town Rupee Room', 'Castle Town Rupee Room'), + ('Castle Town Bazaar', 'Castle Town Bazaar'), + ('Castle Town Mask Shop', 'Castle Town Mask Shop'), + ('Castle Town Shooting Gallery', 'Castle Town Shooting Gallery'), + ('Castle Town Bombchu Bowling', 'Castle Town Bombchu Bowling'), + ('Castle Town Potion Shop', 'Castle Town Potion Shop'), + ('Castle Town Treasure Chest Game', 'Castle Town Treasure Chest Game'), + ('Castle Town Bombchu Shop', 'Castle Town Bombchu Shop'), + ('Castle Town Dog Lady', 'Castle Town Dog Lady'), + ('Castle Town Man in Green House', 'Castle Town Man in Green House'), + ('Carpenter Boss House', 'Carpenter Boss House'), + ('House of Skulltulla', 'House of Skulltulla'), + ('Impas House', 'Impas House'), + ('Impas House Back', 'Impas House Back'), + ('Windmill', 'Windmill'), + ('Kakariko Bazaar', 'Kakariko Bazaar'), + ('Kakariko Shooting Gallery', 'Kakariko Shooting Gallery'), + ('Kakariko Potion Shop Front', 'Kakariko Potion Shop Front'), + ('Kakariko Potion Shop Back', 'Kakariko Potion Shop Back'), + ('Odd Medicine Building', 'Odd Medicine Building'), + ('Shield Grave', 'Shield Grave'), + ('Heart Piece Grave', 'Heart Piece Grave'), + ('Composer Grave', 'Composer Grave'), + ('Dampes Grave', 'Dampes Grave'), + ('Crater Fairy', 'Crater Fairy'), + ('Mountain Summit Fairy', 'Mountain Summit Fairy'), + ('Dampes House', 'Dampes House'), + ('Talon House', 'Talon House'), + ('Ingo Barn', 'Ingo Barn'), + ('Lon Lon Corner Tower', 'Lon Lon Corner Tower'), + ('Zora Shop', 'Zora Shop'), + ('Zoras Fountain Fairy', 'Zoras Fountain Fairy'), + ('Kokiri Forest Storms Grotto', 'Kokiri Forest Storms Grotto'), + ('Lost Woods Generic Grotto', 'Lost Woods Generic Grotto'), + ('Deku Theater', 'Deku Theater'), + ('Lost Woods Sales Grotto', 'Lost Woods Sales Grotto'), + ('Meadow Fairy Grotto', 'Meadow Fairy Grotto'), + ('Front of Meadow Grotto', 'Front of Meadow Grotto'), + ('Lon Lon Grotto', 'Lon Lon Grotto'), + ('Remote Southern Grotto', 'Remote Southern Grotto'), + ('Field Near Lake Outside Fence Grotto', 'Field Near Lake Outside Fence Grotto'), + ('Field Near Lake Inside Fence Grotto', 'Field Near Lake Inside Fence Grotto'), + ('Field Valley Grotto', 'Field Valley Grotto'), + ('Field West Castle Town Grotto', 'Field West Castle Town Grotto'), + ('Field Far West Castle Town Grotto', 'Field Far West Castle Town Grotto'), + ('Field Kakariko Grotto', 'Field Kakariko Grotto'), + ('Kakariko Bombable Grotto', 'Kakariko Bombable Grotto'), + ('Kakariko Back Grotto', 'Kakariko Back Grotto'), + ('Mountain Bombable Grotto', 'Mountain Bombable Grotto'), + ('Mountain Storms Grotto', 'Mountain Storms Grotto'), + ('Top of Crater Grotto', 'Top of Crater Grotto'), + ('Field North Lon Lon Grotto', 'Field North Lon Lon Grotto'), + ('Castle Storms Grotto', 'Castle Storms Grotto'), + ('Zora River Plateau Open Grotto', 'Zora River Plateau Open Grotto'), + ('Zora River Plateau Bombable Grotto', 'Zora River Plateau Bombable Grotto'), + ('Lake Hylia Grotto', 'Lake Hylia Grotto') + ] + +# non shuffled dungeons +default_dungeon_connections = [('Deku Tree', 'Deku Tree Lobby'), + ('Deku Tree Exit', 'Kokiri Forest'), + ('Dodongos Cavern', 'Dodongos Cavern Beginning'), + ('Dodongos Cavern Exit', 'Dodongos Cavern Entryway'), + ('Jabu Jabus Belly', 'Jabu Jabus Belly Beginning'), + ('Jabu Jabus Belly Exit', 'Zoras Fountain'), + ('Forest Temple Entrance', 'Forest Temple Lobby'), + ('Forest Temple Exit', 'Forest Temple Entry Area'), + ('Bottom of the Well', 'Bottom of the Well'), + ('Bottom of the Well Exit', 'Kakariko Village'), + ('Fire Temple Entrance', 'Fire Temple Lower'), + ('Fire Temple Exit', 'Death Mountain Crater Central'), + ('Ice Cavern Entrance', 'Ice Cavern'), + ('Ice Cavern Exit', 'Outside Ice Cavern'), + ('Water Temple Entrance', 'Water Temple Lobby'), + ('Water Temple Exit', 'Lake Hylia'), + ('Shadow Temple Entrance', 'Shadow Temple Beginning'), + ('Shadow Temple Exit', 'Shadow Temple Warp Region'), + ('Gerudo Training Grounds Entrance', 'Gerudo Training Grounds Lobby'), + ('Gerudo Training Grounds Exit', 'Gerudo Fortress'), + ('Spirit Temple Entrance', 'Spirit Temple Lobby'), + ('Spirit Temple Exit', 'Desert Colossus'), + ('Rainbow Bridge', 'Ganons Castle Lobby'), + ('Ganons Castle Exit', 'Ganons Castle Grounds') + ] diff --git a/ItemList.py b/ItemList.py index e6e301976..6e3b0a7a5 100644 --- a/ItemList.py +++ b/ItemList.py @@ -25,27 +25,24 @@ 'Farores Wind', 'Rupee (1)'] + ['Progressive Hookshot'] * 2 - + ['Deku Shield'] * 4 - + ['Hylian Shield'] * 2 + + ['Deku Shield'] + + ['Hylian Shield'] + ['Progressive Strength Upgrade'] * 3 + ['Progressive Scale'] * 2 - + ['Recovery Heart'] * 9 - + ['Rupees (5)'] * 16 + + ['Recovery Heart'] * 6 + + ['Rupees (5)'] * 13 + ['Rupees (20)'] * 5 + ['Rupees (50)'] * 7 - + ['Rupees (200)'] * 6 + + ['Rupees (200)'] * 4 + ['Bow'] * 3 + ['Slingshot'] * 3 + ['Bomb Bag'] * 3 + ['Bottle with Letter'] + ['Bombs (5)'] * 2 - + ['Bombs (10)'] * 2 - + ['Bombs (20)'] * 2 + + ['Bombs (10)'] + + ['Bombs (20)'] + ['Arrows (5)'] - + ['Arrows (10)'] * 6 - + ['Arrows (30)'] * 6 - + ['Deku Nuts (5)'] - + ['Deku Nuts (10)'] + + ['Arrows (10)'] * 5 + ['Progressive Wallet'] * 2 + ['Deku Stick Capacity'] * 2 + ['Deku Nut Capacity'] * 2 @@ -61,6 +58,57 @@ DC_MQ = (['Hylian Shield'] + ['Rupees (5)']) +JB_MQ = (['Deku Nuts (5)'] * 4 + + ['Recovery Heart'] + + ['Deku Shield'] + + ['Deku Stick (1)']) + +FoT_vanilla = (['Recovery Heart'] + + ['Arrows (10)'] + + ['Arrows (30)']) + +FoT_MQ = (['Arrows (5)']) + +FiT_vanilla = (['Rupees (200)']) + +FiT_MQ = (['Bombs (20)'] + + ['Hylian Shield']) + +SpT_vanilla = (['Deku Shield'] * 2 + + ['Recovery Heart'] + + ['Bombs (20)']) + +SpT_MQ = (['Rupees (50)'] + + ['Arrows (30)']) + +ShT_vanilla = (['Arrows (30)']) + +ShT_MQ = (['Arrows (5)'] * 2 + + ['Rupees (20)']) + +BW_vanilla = (['Recovery Heart'] + + ['Bombs (10)'] + + ['Deku Nuts (5)'] + + ['Deku Nuts (10)'] + + ['Deku Shield'] + + ['Hylian Shield']) + +GTG_vanilla = (['Arrows (30)'] * 3 + + ['Rupees (200)']) + +GTG_MQ = (['Rupee (Treasure Chest Game)'] * 2 + + ['Arrows (10)'] + + ['Rupee (1)'] + + ['Rupees (50)']) + +GC_vanilla = (['Rupees (5)'] * 3 + + ['Arrows (30)']) + +GC_MQ = (['Arrows (10)'] * 2 + + ['Bombs (5)'] + + ['Rupees (20)'] + + ['Recovery Heart']) + normal_bottles = [ 'Bottle', 'Bottle with Milk', @@ -158,41 +206,11 @@ 'GS Zora\'s Fountain Tree', 'GS Zora\'s Fountain Above the Log', 'GS Zora\'s Fountain Hidden Cave', - 'GS Jabu Jabu Water Switch Room', - 'GS Jabu Jabu Lobby Basement Lower', - 'GS Jabu Jabu Lobby Basement Upper', - 'GS Jabu Jabu Near Boss', 'GS Lake Hylia Bean Patch', 'GS Lake Hylia Lab Wall', 'GS Lake Hylia Small Island', 'GS Lake Hylia Giant Tree', 'GS Lab Underwater Crate', - 'GS Forest Temple First Room', - 'GS Forest Temple Lobby', - 'GS Forest Temple Outdoor East', - 'GS Forest Temple Outdoor West', - 'GS Forest Temple Basement', - 'GS Fire Temple Song of Time Room', - 'GS Fire Temple Unmarked Bomb Wall', - 'GS Fire Temple East Tower Climb', - 'GS Fire Temple East Tower Top', - 'GS Fire Temple Basement', - 'GS Ice Cavern Spinning Scythe Room', - 'GS Ice Cavern Heart Piece Room', - 'GS Ice Cavern Push Block Room', - 'GS Water Temple South Basement', - 'GS Water Temple Serpent River', - 'GS Water Temple Falling Platform Room', - 'GS Water Temple Central Room', - 'GS Water Temple Near Boss Key Chest', - 'GS Well West Inner Room', - 'GS Well East Inner Room', - 'GS Well Like Like Cage', - 'GS Shadow Temple Like Like Room', - 'GS Shadow Temple Crusher Room', - 'GS Shadow Temple Single Giant Pot', - 'GS Shadow Temple Near Ship', - 'GS Shadow Temple Tripple Giant Pot', 'GS Gerudo Valley Small Bridge', 'GS Gerudo Valley Bean Patch', 'GS Gerudo Valley Behind Tent', @@ -202,12 +220,7 @@ 'GS Wasteland Ruins', 'GS Desert Colossus Bean Patch', 'GS Desert Colossus Tree', - 'GS Desert Colossus Hill', - 'GS Spirit Temple Metal Fence', - 'GS Spirit Temple Bomb for Light Room', - 'GS Spirit Temple Hall to West Iron Knuckle', - 'GS Spirit Temple Boulder Room', - 'GS Spirit Temple Lobby']) + 'GS Desert Colossus Hill']) tradeitems = [ 'Pocket Egg', @@ -304,6 +317,108 @@ def get_pool_core(world): 'GS Dodongo\'s Cavern Back Room', 'GS Dodongo\'s Cavern Alcove Above Stairs', 'GS Dodongo\'s Cavern Scarecrow']) + if world.dungeon_mq['JB']: + skulltulla_locations_final.extend([ + 'GS Jabu Jabu MQ Tailpasaran Room', + 'GS Jabu Jabu MQ Invisible Enemies Room', + 'GS Jabu Jabu MQ Boomerang Room', + 'GS Jabu Jabu MQ Near Boss']) + else: + skulltulla_locations_final.extend([ + 'GS Jabu Jabu Water Switch Room', + 'GS Jabu Jabu Lobby Basement Lower', + 'GS Jabu Jabu Lobby Basement Upper', + 'GS Jabu Jabu Near Boss']) + if world.dungeon_mq['FoT']: + skulltulla_locations_final.extend([ + 'GS Forest Temple MQ First Hallway', + 'GS Forest Temple MQ Block Push Room', + 'GS Forest Temple MQ Outdoor East', + 'GS Forest Temple MQ Outdoor West', + 'GS Forest Temple MQ Well']) + else: + skulltulla_locations_final.extend([ + 'GS Forest Temple First Room', + 'GS Forest Temple Lobby', + 'GS Forest Temple Outdoor East', + 'GS Forest Temple Outdoor West', + 'GS Forest Temple Basement']) + if world.dungeon_mq['FiT']: + skulltulla_locations_final.extend([ + 'GS Fire Temple MQ Above Fire Wall Maze', + 'GS Fire Temple MQ Fire Wall Maze Center', + 'GS Fire Temple MQ Big Lava Room', + 'GS Fire Temple MQ Fire Wall Maze Side Room', + 'GS Fire Temple MQ East Tower Top']) + else: + skulltulla_locations_final.extend([ + 'GS Fire Temple Song of Time Room', + 'GS Fire Temple Unmarked Bomb Wall', + 'GS Fire Temple East Tower Climb', + 'GS Fire Temple East Tower Top', + 'GS Fire Temple Basement']) + if world.dungeon_mq['WT']: + skulltulla_locations_final.extend([ + 'GS Water Temple MQ Before Upper Water Switch', + 'GS Water Temple MQ North Basement', + 'GS Water Temple MQ Lizalfos Hallway', + 'GS Water Temple MQ Serpent River', + 'GS Water Temple MQ South Basement']) + else: + skulltulla_locations_final.extend([ + 'GS Water Temple South Basement', + 'GS Water Temple Serpent River', + 'GS Water Temple Falling Platform Room', + 'GS Water Temple Central Room', + 'GS Water Temple Near Boss Key Chest']) + if world.dungeon_mq['SpT']: + skulltulla_locations_final.extend([ + 'GS Spirit Temple MQ Lower Adult Right', + 'GS Spirit Temple MQ Lower Adult Left', + 'GS Spirit Temple MQ Iron Knuckle West', + 'GS Spirit Temple MQ Iron Knuckle North', + 'GS Spirit Temple MQ Sun Block Room']) + else: + skulltulla_locations_final.extend([ + 'GS Spirit Temple Metal Fence', + 'GS Spirit Temple Bomb for Light Room', + 'GS Spirit Temple Hall to West Iron Knuckle', + 'GS Spirit Temple Boulder Room', + 'GS Spirit Temple Lobby']) + if world.dungeon_mq['ShT']: + skulltulla_locations_final.extend([ + 'GS Shadow Temple MQ Crusher Room', + 'GS Shadow Temple MQ Wind Hint Room', + 'GS Shadow Temple MQ After Wind', + 'GS Shadow Temple MQ After Ship', + 'GS Shadow Temple MQ Near Boss']) + else: + skulltulla_locations_final.extend([ + 'GS Shadow Temple Like Like Room', + 'GS Shadow Temple Crusher Room', + 'GS Shadow Temple Single Giant Pot', + 'GS Shadow Temple Near Ship', + 'GS Shadow Temple Tripple Giant Pot']) + if world.dungeon_mq['BW']: + skulltulla_locations_final.extend([ + 'GS Well MQ Basement', + 'GS Well MQ Coffin Room', + 'GS Well MQ West Inner Room']) + else: + skulltulla_locations_final.extend([ + 'GS Well West Inner Room', + 'GS Well East Inner Room', + 'GS Well Like Like Cage']) + if world.dungeon_mq['IC']: + skulltulla_locations_final.extend([ + 'GS Ice Cavern MQ Scarecrow', + 'GS Ice Cavern MQ Ice Block', + 'GS Ice Cavern MQ Red Ice']) + else: + skulltulla_locations_final.extend([ + 'GS Ice Cavern Spinning Scythe Room', + 'GS Ice Cavern Heart Piece Room', + 'GS Ice Cavern Push Block Room']) if world.tokensanity == 'off': for location in skulltulla_locations_final: placed_items[location] = 'Gold Skulltulla Token' @@ -317,14 +432,42 @@ def get_pool_core(world): pool.extend(['Gold Skulltulla Token'] * 100) if world.bombchus_in_logic: - pool.extend(['Bombchus'] * 5) + pool.extend(['Bombchus'] * 4) + if world.dungeon_mq['JB']: + pool.extend(['Bombchus']) + if world.dungeon_mq['SpT']: + pool.extend(['Bombchus'] * 2) + if not world.dungeon_mq['BW']: + pool.extend(['Bombchus']) + if world.dungeon_mq['GTG']: + pool.extend(['Bombchus']) else: - pool.extend(['Bombchus (5)'] + ['Bombchus (10)'] * 3 + ['Bombchus (20)']) + pool.extend(['Bombchus (5)'] + ['Bombchus (10)'] * 2) + if world.dungeon_mq['JB']: + pool.extend(['Bombchus (10)']) + if world.dungeon_mq['SpT']: + pool.extend(['Bombchus (10)'] * 2) + if not world.dungeon_mq['BW']: + pool.extend(['Bombchus (10)']) + if world.dungeon_mq['GTG']: + pool.extend(['Bombchus (10)']) + if world.dungeon_mq['GC']: + pool.extend(['Bombchus (10)']) + else: + pool.extend(['Bombchus (20)']) if world.difficulty == 'ohko': - pool.extend(['Recovery Heart'] * 6) + pool.extend(['Recovery Heart']) + if not world.dungeon_mq['GTG']: + pool.extend(['Recovery Heart']) + if not world.dungeon_mq['GC']: + pool.extend(['Recovery Heart'] * 4) else: - pool.extend(['Ice Trap'] * 6) + pool.extend(['Ice Trap']) + if not world.dungeon_mq['GTG']: + pool.extend(['Ice Trap']) + if not world.dungeon_mq['GC']: + pool.extend(['Ice Trap'] * 4) if world.difficulty == 'normal': pool.extend(['Magic Meter', 'Double Defense'] + ['Heart Container'] * 8) @@ -376,6 +519,34 @@ def get_pool_core(world): pool.extend(DC_MQ) else: pool.extend(DC_vanilla) + if world.dungeon_mq['JB']: + pool.extend(JB_MQ) + if world.dungeon_mq['FoT']: + pool.extend(FoT_MQ) + else: + pool.extend(FoT_vanilla) + if world.dungeon_mq['FiT']: + pool.extend(FiT_MQ) + else: + pool.extend(FiT_vanilla) + if world.dungeon_mq['SpT']: + pool.extend(SpT_MQ) + else: + pool.extend(SpT_vanilla) + if world.dungeon_mq['ShT']: + pool.extend(ShT_MQ) + else: + pool.extend(ShT_vanilla) + if not world.dungeon_mq['BW']: + pool.extend(BW_vanilla) + if world.dungeon_mq['GTG']: + pool.extend(GTG_MQ) + else: + pool.extend(GTG_vanilla) + if world.dungeon_mq['GC']: + pool.extend(GC_MQ) + else: + pool.extend(GC_vanilla) for _ in range(normal_bottle_count): bottle = random.choice(normal_bottles) pool.append(bottle) diff --git a/Items.py b/Items.py index d37b60d4d..163416ae1 100644 --- a/Items.py +++ b/Items.py @@ -49,6 +49,7 @@ def ItemFactory(items): 'Bottle with Fish': (True, False, None, None, 0x8D), 'Bottle with Blue Fire': (True, False, None, None, 0x8E), 'Bottle with Bugs': (True, False, None, None, 0x8F), + 'Bottle with Big Poe': (True, False, None, None, 0x90), 'Bottle with Poe': (True, False, None, None, 0x91), 'Weird Egg': (True, False, None, 0x08E0, 0x47), 'Pocket Egg': (True, False, None, 0x03A0, 0x1D), @@ -97,6 +98,8 @@ def ItemFactory(items): 'Bombchus': (True, False, None, None, 0xC2), 'Deku Nuts (5)': (False, False, None, None, 0xBD), 'Deku Nuts (10)': (False, False, None, None, 0xBE), + 'Deku Stick (1)': (False, False, None, 0x00E0, 0x07), # This probably will need an extended version made to be NPC friendly. + 'Rupee (Treasure Chest Game)': (False, False, None, 0x0E40, 0x72), 'Rupee (1)': (False, False, None, 0x0980, 0x4C), 'Rupees (5)': (False, False, None, 0x09A0, 0x4D), 'Rupees (20)': (False, False, None, 0x09C0, 0x4E), diff --git a/MQ.py b/MQ.py index f212c4e54..4c1f375e8 100644 --- a/MQ.py +++ b/MQ.py @@ -199,7 +199,6 @@ def write_data(self, rom:LocalRom): def patch_files(world, rom:LocalRom): - #patch_ice_cavern_scene_header(rom) data = get_json() scenes = [Scene(x) for x in data] @@ -208,6 +207,28 @@ def patch_files(world, rom:LocalRom): scenes[0].write_data(rom) if world.dungeon_mq['DC']: scenes[1].write_data(rom) + if world.dungeon_mq['JB']: + scenes[2].write_data(rom) + if world.dungeon_mq['FoT']: + scenes[3].write_data(rom) + if world.dungeon_mq['FiT']: + scenes[4].write_data(rom) + if world.dungeon_mq['WT']: + scenes[5].write_data(rom) + if world.dungeon_mq['SpT']: + scenes[6].write_data(rom) + if world.dungeon_mq['ShT']: + scenes[7].write_data(rom) + if world.dungeon_mq['BW']: + scenes[8].write_data(rom) + if world.dungeon_mq['IC']: + patch_ice_cavern_scene_header(rom) + scenes[9].write_data(rom) + # Scene 10 is identical between vanilla and MQ so no need to write? + if world.dungeon_mq['GTG']: + scenes[11].write_data(rom) + if world.dungeon_mq['GC']: + scenes[12].write_data(rom) # Since there is no scene 12, the 12th entry should represent the 13th scene. verify_dma(rom) diff --git a/Regions.py b/Regions.py index 3fb61bbab..4b8e053d9 100644 --- a/Regions.py +++ b/Regions.py @@ -43,6 +43,10 @@ def create_regions(world): 'Lost Woods Generic Grotto', 'Deku Theater', 'Lost Woods Sales Grotto']), create_ow_region('Sacred Forest Meadow Entryway', None, ['Meadow Exit', 'Meadow Gate', 'Front of Meadow Grotto']), create_ow_region('Sacred Forest Meadow', ['Song from Saria'], ['Meadow Gate Exit', 'Meadow Fairy Grotto']), + create_ow_region( + 'Forest Temple Entry Area', + ['Sheik Forest Song', 'GS Lost Woods Above Stage', 'GS Sacred Forest Meadow'], + ['Adult Meadow Exit', 'Forest Temple Entrance']), create_ow_region('Lost Woods Bridge', ['Gift from Saria'], ['Kokiri Forest Entrance', 'Forest Exit']), create_ow_region('Hyrule Field', ['Ocarina of Time', 'Song from Ocarina of Time'], @@ -57,19 +61,6 @@ def create_regions(world): ['Lake Exit', 'Lake Hylia Dive Warp', 'Lake Hylia Lab', 'Fishing Hole', 'Water Temple Entrance', 'Lake Hylia Grotto']), create_interior_region('Lake Hylia Lab', ['Diving in the Lab', 'GS Lab Underwater Crate']), create_interior_region('Fishing Hole', ['Child Fishing', 'Adult Fishing']), - create_dungeon_region( - 'Water Temple Lobby', - ['Water Temple Map Chest', 'Water Temple Compass Chest', 'Water Temple Torches Chest', 'Water Temple Dragon Chest', - 'Water Temple Central Bow Target Chest', 'Water Temple Boss Key Chest', 'Morpha Heart', 'Morpha', - 'GS Water Temple South Basement', 'GS Water Temple Near Boss Key Chest'], - ['Water Temple Exit', 'Water Temple Central Pillar', 'Water Temple Upper Locked Door']), - create_dungeon_region( - 'Water Temple Middle Water Level', - ['Water Temple Central Pillar Chest', 'Water Temple Cracked Wall Chest', 'GS Water Temple Central Room']), - create_dungeon_region( - 'Water Temple Dark Link Region', - ['Water Temple Dark Link Chest', 'Water Temple River Chest', 'GS Water Temple Serpent River', - 'GS Water Temple Falling Platform Room']), create_ow_region( 'Gerudo Valley', ['Gerudo Valley Waterfall Freestanding PoH', 'Gerudo Valley Crate Freestanding PoH', @@ -98,80 +89,6 @@ def create_regions(world): create_interior_region( 'Colossus Fairy', ['Desert Colossus Fairy Reward']), - create_dungeon_region( - 'Gerudo Training Grounds Lobby', - ['Gerudo Training Grounds Lobby Left Chest', 'Gerudo Training Grounds Lobby Right Chest', - 'Gerudo Training Grounds Stalfos Chest', 'Gerudo Training Grounds Beamos Chest'], - ['Gerudo Training Grounds Exit', 'Gerudo Training Ground Left Silver Rupees', 'Gerudo Training Ground Beamos', - 'Gerudo Training Ground Central Door']), - create_dungeon_region( - 'Gerudo Training Grounds Central Maze', - ['Gerudo Training Grounds Hidden Ceiling Chest', 'Gerudo Training Grounds Maze Path First Chest', - 'Gerudo Training Grounds Maze Path Second Chest', 'Gerudo Training Grounds Maze Path Third Chest', - 'Gerudo Training Grounds Maze Path Final Chest'], - ['Gerudo Training Grounds Right Locked Doors']), - create_dungeon_region( - 'Gerudo Training Grounds Central Maze Right', - ['Gerudo Training Grounds Maze Right Central Chest', 'Gerudo Training Grounds Maze Right Side Chest', - 'Gerudo Training Grounds Freestanding Key'], - ['Gerudo Training Grounds Maze Exit']), - create_dungeon_region( - 'Gerudo Training Grounds Lava Room', - ['Gerudo Training Grounds Underwater Silver Rupee Chest'], - ['Gerudo Training Grounds Maze Ledge', 'Gerudo Training Grounds Right Hookshot Target']), - create_dungeon_region( - 'Gerudo Training Grounds Hammer Room', - ['Gerudo Training Grounds Hammer Room Clear Chest', 'Gerudo Training Grounds Hammer Room Switch Chest'], - ['Gerudo Training Grounds Hammer Target', 'Gerudo Training Grounds Hammer Room Clear']), - create_dungeon_region( - 'Gerudo Training Grounds Eye Statue Lower', - ['Gerudo Training Grounds Eye Statue Chest'], - ['Gerudo Training Grounds Eye Statue Exit']), - create_dungeon_region( - 'Gerudo Training Grounds Eye Statue Upper', - ['Gerudo Training Grounds Near Scarecrow Chest'], - ['Gerudo Training Grounds Eye Statue Drop']), - create_dungeon_region( - 'Gerudo Training Grounds Heavy Block Room', - ['Gerudo Training Grounds Before Heavy Block Chest', 'Gerudo Training Grounds Heavy Block First Chest', - 'Gerudo Training Grounds Heavy Block Second Chest', 'Gerudo Training Grounds Heavy Block Third Chest', - 'Gerudo Training Grounds Heavy Block Fourth Chest'], - ['Gerudo Training Grounds Hidden Hookshot Target']), - create_dungeon_region( - 'Spirit Temple Lobby', - None, - ['Spirit Temple Exit', 'Spirit Temple Crawl Passage', 'Spirit Temple Silver Block']), - create_dungeon_region( - 'Child Spirit Temple', - ['Spirit Temple Child Left Chest', 'Spirit Temple Child Right Chest', 'GS Spirit Temple Metal Fence'], - ['Child Spirit Temple Climb']), - create_dungeon_region( - 'Child Spirit Temple Climb', - ['Spirit Temple Child Climb East Chest', 'Spirit Temple Child Climb North Chest', - 'GS Spirit Temple Bomb for Light Room'], - ['Child Spirit Temple Passthrough']), - create_dungeon_region( - 'Early Adult Spirit Temple', - ['Spirit Temple Compass Chest', 'Spirit Temple Early Adult Right Chest', - 'Spirit Temple First Mirror Right Chest', 'Spirit Temple First Mirror Left Chest', - 'GS Spirit Temple Boulder Room'], - ['Adult Spirit Temple Passthrough']), - create_dungeon_region( - 'Spirit Temple Central Chamber', - ['Spirit Temple Map Chest', 'Spirit Temple Sun Block Room Chest', 'Spirit Temple Statue Hand Chest', - 'Spirit Temple NE Main Room Chest', 'GS Spirit Temple Hall to West Iron Knuckle', 'GS Spirit Temple Lobby'], - ['Spirit Temple to Hands', 'Spirit Temple Central Locked Door', 'Spirit Temple Middle Child Door']), - create_dungeon_region( - 'Spirit Temple Outdoor Hands', - ['Silver Gauntlets Chest', 'Mirror Shield Chest']), - create_dungeon_region( - 'Spirit Temple Beyond Central Locked Door', - ['Spirit Temple Near Four Armos Chest', 'Spirit Temple Hallway Left Invisible Chest', - 'Spirit Temple Hallway Right Invisible Chest'], - ['Spirit Temple Final Locked Door']), - create_dungeon_region( - 'Spirit Temple Beyond Final Locked Door', - ['Spirit Temple Boss Key Chest', 'Spirit Temple Topmost Chest', 'Twinrova Heart', 'Twinrova']), create_ow_region( 'Castle Town', None, @@ -237,16 +154,6 @@ def create_regions(world): create_interior_region('Kakariko Potion Shop Front'), create_interior_region('Kakariko Potion Shop Back'), create_interior_region('Odd Medicine Building'), - create_dungeon_region( - 'Bottom of the Well', - ['Bottom of the Well Front Left Hidden Wall', 'Bottom of the Well Front Center Bombable', - 'Bottom of the Well Right Bottom Hidden Wall', 'Bottom of the Well Center Large Chest', - 'Bottom of the Well Center Small Chest', 'Bottom of the Well Back Left Bombable', - 'Bottom of the Well Freestanding Key', 'Bottom of the Well Defeat Boss', 'Bottom of the Well Invisible Chest', - 'Bottom of the Well Underwater Front Chest', 'Bottom of the Well Underwater Left Chest', - 'Bottom of the Well Basement Chest', 'Bottom of the Well Locked Pits', 'Bottom of the Well Behind Right Grate', - 'GS Well West Inner Room', 'GS Well East Inner Room', 'GS Well Like Like Cage'], - ['Bottom of the Well Exit']), create_ow_region( 'Graveyard', ['Graveyard Freestanding PoH', 'Gravedigging Tour', 'GS Graveyard Wall', 'GS Graveyard Bean Patch'], @@ -257,31 +164,6 @@ def create_regions(world): create_interior_region('Dampes Grave', ['Hookshot Chest', 'Dampe Race Freestanding PoH']), create_interior_region('Dampes House'), create_ow_region('Shadow Temple Warp Region', None, ['Drop to Graveyard', 'Shadow Temple Entrance']), - create_dungeon_region( - 'Shadow Temple Beginning', - ['Shadow Temple Map Chest', 'Shadow Temple Hover Boots Chest'], - ['Shadow Temple Exit', 'Shadow Temple First Pit']), - create_dungeon_region( - 'Shadow Temple First Beamos', - ['Shadow Temple Compass Chest', 'Shadow Temple Early Silver Rupee Chest'], - ['Shadow Temple Bomb Wall']), - create_dungeon_region( - 'Shadow Temple Huge Pit', - ['Shadow Temple Invisible Blades Visible Chest', 'Shadow Temple Invisible Blades Invisible Chest', - 'Shadow Temple Falling Spikes Lower Chest', 'Shadow Temple Falling Spikes Upper Chest', - 'Shadow Temple Falling Spikes Switch Chest', 'Shadow Temple Invisible Spikes Chest', - 'Shadow Temple Freestanding Key', 'GS Shadow Temple Like Like Room', 'GS Shadow Temple Crusher Room'], - ['Shadow Temple Hookshot Target']), - create_dungeon_region( - 'Shadow Temple Wind Tunnel', - ['Shadow Temple Wind Hint Chest', 'Shadow Temple After Wind Enemy Chest', - 'Shadow Temple After Wind Hidden Chest', 'GS Shadow Temple Single Giant Pot', 'GS Shadow Temple Near Ship'], - ['Shadow Temple Boat']), - create_dungeon_region( - 'Shadow Temple Beyond Boat', - ['Shadow Temple Spike Walls Left Chest', 'Shadow Temple Boss Key Chest', - 'Shadow Temple Hidden Floormaster Chest', 'Bongo Bongo Heart', 'Bongo Bongo', - 'GS Shadow Temple Tripple Giant Pot']), create_ow_region( 'Death Mountain', ['Death Mountain Bombable Chest', 'Biggoron', 'DM Trail Freestanding PoH', 'GS Mountain Trail Bean Patch', @@ -354,31 +236,8 @@ def create_regions(world): ['Zoras Fountain Iceberg Freestanding PoH', 'Zoras Fountain Bottom Freestanding PoH', 'GS Zora\'s Fountain Hidden Cave'], ['Ice Cavern Entrance']), - create_dungeon_region( - 'Ice Cavern', - ['Ice Cavern Map Chest', 'Ice Cavern Compass Chest', 'Ice Cavern Iron Boots Chest', - 'Ice Cavern Freestanding PoH', 'Sheik in Ice Cavern', 'GS Ice Cavern Spinning Scythe Room', - 'GS Ice Cavern Heart Piece Room', 'GS Ice Cavern Push Block Room'], - ['Ice Cavern Exit']), create_interior_region('Zora Shop'), create_interior_region('Zoras Fountain Fairy', ['Zoras Fountain Fairy Reward']), - create_dungeon_region( - 'Jabu Jabus Belly Beginning', - None, - ['Jabu Jabus Belly Exit', 'Jabu Jabus Belly Ceiling Switch']), - create_dungeon_region( - 'Jabu Jabus Belly Main', - ['Boomerang Chest', 'GS Jabu Jabu Water Switch Room'], - ['Jabu Jabus Belly Retreat', 'Jabu Jabus Belly Tentacles']), - create_dungeon_region( - 'Jabu Jabus Belly Depths', - ['Jabu Jabus Belly Map Chest', 'Jabu Jabus Belly Compass Chest', 'GS Jabu Jabu Lobby Basement Lower', - 'GS Jabu Jabu Lobby Basement Upper'], - ['Jabu Jabus Belly Elevator', 'Jabu Jabus Belly Octopus']), - create_dungeon_region( - 'Jabu Jabus Belly Boss Area', - ['Barinade Heart', 'Barinade', 'GS Jabu Jabu Near Boss'], - ['Jabu Jabus Belly Final Backtrack']), create_ow_region( 'Lon Lon Ranch', ['Epona', 'Song from Malon', 'GS Lon Lon Ranch Tree', 'GS Lon Lon Ranch Rain Shed', @@ -387,94 +246,12 @@ def create_regions(world): create_interior_region('Talon House', ['Talons Chickens']), create_interior_region('Ingo Barn'), create_interior_region('Lon Lon Corner Tower', ['Lon Lon Tower Freestanding PoH']), - create_interior_region( - 'Forest Temple Entry Area', - ['Sheik Forest Song', 'GS Lost Woods Above Stage', 'GS Sacred Forest Meadow'], - ['Adult Meadow Exit', 'Forest Temple Entrance']), - create_dungeon_region( - 'Forest Temple Lobby', - ['Forest Temple First Chest', 'Forest Temple Chest Behind Lobby', 'GS Forest Temple First Room', - 'GS Forest Temple Lobby'], - ['Forest Temple Exit', 'Forest Temple Song of Time Block', 'Forest Temple Lobby Eyeball Switch', - 'Forest Temple Lobby Locked Door']), - create_dungeon_region( - 'Forest Temple NW Outdoors', - ['Forest Temple Well Chest', 'Forest Temple Map Chest', 'GS Forest Temple Outdoor West'], - ['Forest Temple Through Map Room']), - create_dungeon_region( - 'Forest Temple NE Outdoors', - ['Forest Temple Outside Hookshot Chest', 'GS Forest Temple Outdoor East'], - ['Forest Temple Well Connection', 'Forest Temple Outside to Lobby', 'Forest Temple Scarecrows Song']), - create_dungeon_region( - 'Forest Temple Falling Room', - ['Forest Temple Falling Room Chest'], - ['Forest Temple Falling Room Exit', 'Forest Temple Elevator']), - create_dungeon_region( - 'Forest Temple Block Push Room', - ['Forest Temple Block Push Chest'], - ['Forest Temple Outside Backdoor', 'Forest Temple Twisted Hall', 'Forest Temple Straightened Hall']), - create_dungeon_region( - 'Forest Temple Straightened Hall', - ['Forest Temple Boss Key Chest'], - ['Forest Temple Boss Key Chest Drop']), - create_dungeon_region( - 'Forest Temple Outside Upper Ledge', - ['Forest Temple Floormaster Chest'], - ['Forest Temple Outside Ledge Drop']), - create_dungeon_region( - 'Forest Temple Bow Region', - ['Forest Temple Bow Chest', 'Forest Temple Red Poe Chest', 'Forest Temple Blue Poe Chest'], - ['Forest Temple Drop to Falling Room']), - create_dungeon_region( - 'Forest Temple Boss Region', - ['Forest Temple Near Boss Chest', 'Phantom Ganon Heart', 'Phantom Ganon', 'GS Forest Temple Basement']), - create_dungeon_region( - 'Fire Temple Lower', - ['Fire Temple Chest Near Boss', 'Fire Temple Fire Dancer Chest', 'Fire Temple Boss Key Chest', - 'Fire Temple Big Lava Room Bombable Chest', 'Fire Temple Big Lava Room Open Chest', 'Volvagia Heart', - 'Volvagia', 'GS Fire Temple Song of Time Room', 'GS Fire Temple Basement'], - ['Fire Temple Exit', 'Fire Temple Early Climb']), - create_dungeon_region( - 'Fire Temple Middle', - ['Fire Temple Boulder Maze Lower Chest', 'Fire Temple Boulder Maze Upper Chest', - 'Fire Temple Boulder Maze Side Room', 'Fire Temple Boulder Maze Bombable Pit', 'Fire Temple Scarecrow Chest', - 'Fire Temple Map Chest', 'Fire Temple Compass Chest', 'GS Fire Temple Unmarked Bomb Wall', - 'GS Fire Temple East Tower Climb', 'GS Fire Temple East Tower Top'], - ['Fire Temple Fire Maze Escape']), - create_dungeon_region( - 'Fire Temple Upper', - ['Fire Temple Highest Goron Chest', 'Fire Temple Megaton Hammer Chest']), create_dungeon_region( 'Ganons Castle Lobby', None, ['Ganons Castle Exit', 'Ganons Castle Forest Trial', 'Ganons Castle Fire Trial', 'Ganons Castle Water Trial', 'Ganons Castle Shadow Trial', 'Ganons Castle Spirit Trial', 'Ganons Castle Light Trial', 'Ganons Castle Tower']), - create_dungeon_region( - 'Ganons Castle Forest Trial', - ['Ganons Castle Forest Trial Chest', 'Ganons Castle Forest Trial Clear']), - create_dungeon_region( - 'Ganons Castle Fire Trial', - ['Ganons Castle Fire Trial Clear']), - create_dungeon_region( - 'Ganons Castle Water Trial', - ['Ganons Castle Water Trial Left Chest', 'Ganons Castle Water Trial Right Chest', - 'Ganons Castle Water Trial Clear']), - create_dungeon_region( - 'Ganons Castle Shadow Trial', - ['Ganons Castle Shadow Trial First Chest', 'Ganons Castle Shadow Trial Second Chest', - 'Ganons Castle Shadow Trial Clear']), - create_dungeon_region( - 'Ganons Castle Spirit Trial', - ['Ganons Castle Spirit Trial First Chest', 'Ganons Castle Spirit Trial Second Chest', - 'Ganons Castle Spirit Trial Clear']), - create_dungeon_region( - 'Ganons Castle Light Trial', - ['Ganons Castle Light Trial First Left Chest', 'Ganons Castle Light Trial Second Left Chest', - 'Ganons Castle Light Trial Third Left Chest', 'Ganons Castle Light Trial First Right Chest', - 'Ganons Castle Light Trial Second Right Chest', 'Ganons Castle Light Trial Third Right Chest', - 'Ganons Castle Light Trail Invisible Enemies Chest', 'Ganons Castle Light Trial Lullaby Chest', - 'Ganons Castle Light Trial Clear']), create_dungeon_region( 'Ganons Castle Tower', ['Ganons Tower Boss Key Chest', 'Ganon']), @@ -588,6 +365,526 @@ def create_regions(world): ['Dodongos Cavern Exit Skull']) ]) + if world.dungeon_mq['JB']: + world.regions.extend([ + create_dungeon_region( + 'Jabu Jabus Belly Beginning', + ['Jabu Jabus Belly MQ Map Chest', 'Jabu Jabus Belly MQ Entry Side Chest'], + ['Jabu Jabus Belly Exit', 'Jabu Jabus Belly Cow Switch']), + create_dungeon_region( + 'Jabu Jabus Belly Main', + ['Jabu Jabus Belly MQ Second Room Lower Chest', 'Jabu Jabus Belly MQ Compass Chest', + 'Jabu Jabus Belly MQ Basement South Chest', 'Jabu Jabus Belly MQ Basement North Chest', + 'Jabu Jabus Belly MQ Boomerang Room Small Chest', 'MQ Boomerang Chest', 'GS Jabu Jabu MQ Boomerang Room'], + ['Jabu Jabus Belly Retreat', 'Jabu Jabus Belly Tentacle Access']), + create_dungeon_region( + 'Jabu Jabus Belly Depths', + ['Jabu Jabus Belly MQ Falling Like Like Room Chest', 'GS Jabu Jabu MQ Tailpasaran Room', + 'GS Jabu Jabu MQ Invisible Enemies Room'], + ['Jabu Jabus Belly Elevator', 'Jabu Jabus Belly Octopus']), + create_dungeon_region( + 'Jabu Jabus Belly Boss Area', + ['Jabu Jabus Belly MQ Second Room Upper Chest', 'Jabu Jabus Belly MQ Near Boss Chest', + 'Barinade Heart', 'Barinade', 'GS Jabu Jabu MQ Near Boss'], + ['Jabu Jabus Belly Final Backtrack']) + ]) + else: + world.regions.extend([ + create_dungeon_region( + 'Jabu Jabus Belly Beginning', + None, + ['Jabu Jabus Belly Exit', 'Jabu Jabus Belly Ceiling Switch']), + create_dungeon_region( + 'Jabu Jabus Belly Main', + ['Boomerang Chest', 'GS Jabu Jabu Water Switch Room'], + ['Jabu Jabus Belly Retreat', 'Jabu Jabus Belly Tentacles']), + create_dungeon_region( + 'Jabu Jabus Belly Depths', + ['Jabu Jabus Belly Map Chest', 'Jabu Jabus Belly Compass Chest', 'GS Jabu Jabu Lobby Basement Lower', + 'GS Jabu Jabu Lobby Basement Upper'], + ['Jabu Jabus Belly Elevator', 'Jabu Jabus Belly Octopus']), + create_dungeon_region( + 'Jabu Jabus Belly Boss Area', + ['Barinade Heart', 'Barinade', 'GS Jabu Jabu Near Boss'], + ['Jabu Jabus Belly Final Backtrack']) + ]) + + if world.dungeon_mq['FoT']: + world.regions.extend([ + create_dungeon_region( + 'Forest Temple Lobby', + ['Forest Temple MQ First Chest', 'GS Forest Temple MQ First Hallway'], + ['Forest Temple Exit', 'Forest Temple Lobby Locked Door']), + create_dungeon_region( + 'Forest Temple Central Area', + ['Forest Temple MQ Chest Behind Lobby', 'GS Forest Temple MQ Block Push Room'], + ['Forest Temple West Eye Switch', 'Forest Temple East Eye Switch', + 'Forest Temple Block Puzzle Solve']), + create_dungeon_region( + 'Forest Temple After Block Puzzle', + ['Forest Temple MQ Boss Key Chest', 'Forest Temple MQ Redead Chest'], + ['Forest Temple Drop to NW Outdoors', 'Forest Temple Twisted Hall']), + create_dungeon_region( + 'Forest Temple NW Outdoors', + ['GS Forest Temple MQ Outdoor West'], + ['Forest Temple Well Connection', 'Forest Temple Webs']), + create_dungeon_region( + 'Forest Temple NE Outdoors', + ['Forest Temple MQ Well Chest', 'GS Forest Temple MQ Outdoor East', 'GS Forest Temple MQ Well'], + ['Forest Temple Climb to Top Ledges', 'Forest Temple Longshot to NE Outdoors Ledge']), + create_dungeon_region( + 'Forest Temple Outdoors Top Ledges', + ['Forest Temple MQ NE Outdoors Upper Chest'], + ['Forest Temple Top Drop to NE Outdoors']), + create_dungeon_region( + 'Forest Temple NE Outdoors Ledge', + ['Forest Temple MQ NE Outdoors Lower Chest'], + ['Forest Temple Drop to NE Outdoors', 'Forest Temple Song of Time Block Climb']), + create_dungeon_region( + 'Forest Temple Bow Region', + ['Forest Temple MQ Bow Chest', 'Forest Temple MQ Map Chest', 'Forest Temple MQ Compass Chest'], + ['Forest Temple Drop to Falling Room']), + create_dungeon_region( + 'Forest Temple Falling Room', + ['Forest Temple MQ Falling Room Chest'], + ['Forest Temple Falling Room Exit', 'Forest Temple Elevator']), + create_dungeon_region( + 'Forest Temple Boss Region', + ['Forest Temple MQ Near Boss Chest', 'Phantom Ganon Heart', 'Phantom Ganon']) + ]) + else: + world.regions.extend([ + create_dungeon_region( + 'Forest Temple Lobby', + ['Forest Temple First Chest', 'Forest Temple Chest Behind Lobby', 'GS Forest Temple First Room', + 'GS Forest Temple Lobby'], + ['Forest Temple Exit', 'Forest Temple Song of Time Block', 'Forest Temple Lobby Eyeball Switch', + 'Forest Temple Lobby Locked Door']), + create_dungeon_region( + 'Forest Temple NW Outdoors', + ['Forest Temple Well Chest', 'Forest Temple Map Chest', 'GS Forest Temple Outdoor West'], + ['Forest Temple Through Map Room']), + create_dungeon_region( + 'Forest Temple NE Outdoors', + ['Forest Temple Outside Hookshot Chest', 'GS Forest Temple Outdoor East'], + ['Forest Temple Well Connection', 'Forest Temple Outside to Lobby', 'Forest Temple Scarecrows Song']), + create_dungeon_region( + 'Forest Temple Falling Room', + ['Forest Temple Falling Room Chest'], + ['Forest Temple Falling Room Exit', 'Forest Temple Elevator']), + create_dungeon_region( + 'Forest Temple Block Push Room', + ['Forest Temple Block Push Chest'], + ['Forest Temple Outside Backdoor', 'Forest Temple Twisted Hall', 'Forest Temple Straightened Hall']), + create_dungeon_region( + 'Forest Temple Straightened Hall', + ['Forest Temple Boss Key Chest'], + ['Forest Temple Boss Key Chest Drop']), + create_dungeon_region( + 'Forest Temple Outside Upper Ledge', + ['Forest Temple Floormaster Chest'], + ['Forest Temple Outside Ledge Drop']), + create_dungeon_region( + 'Forest Temple Bow Region', + ['Forest Temple Bow Chest', 'Forest Temple Red Poe Chest', 'Forest Temple Blue Poe Chest'], + ['Forest Temple Drop to Falling Room']), + create_dungeon_region( + 'Forest Temple Boss Region', + ['Forest Temple Near Boss Chest', 'Phantom Ganon Heart', 'Phantom Ganon', 'GS Forest Temple Basement']) + ]) + + if world.dungeon_mq['FiT']: + world.regions.extend([ + create_dungeon_region( + 'Fire Temple Lower', + ['Fire Temple MQ Entrance Hallway Small Chest', 'Fire Temple MQ Chest Near Boss'], + ['Fire Temple Exit', 'Fire Temple Boss Door', 'Fire Temple Lower Locked Door', 'Fire Temple Hammer Statue']), + create_dungeon_region( + 'Fire Lower Locked Door', + ['Fire Temple MQ Megaton Hammer Chest', 'Fire Temple MQ Map Chest']), + create_dungeon_region( + 'Fire Big Lava Room', + ['Fire Temple MQ Boss Key Chest', 'Fire Temple MQ Big Lava Room Bombable Chest', 'GS Fire Temple MQ Big Lava Room'], + ['Fire Temple Early Climb']), + create_dungeon_region( + 'Fire Lower Maze', + ['Fire Temple MQ Maze Lower Chest'], + ['Fire Temple Maze Climb']), + create_dungeon_region( + 'Fire Upper Maze', + ['Fire Temple MQ Maze Upper Chest', 'Fire Temple MQ Maze Side Room', 'Fire Temple MQ Compass Chest', + 'GS Fire Temple MQ East Tower Top'], + ['Fire Temple Maze Escape']), + create_dungeon_region( + 'Fire Temple Upper', + ['Fire Temple MQ Freestanding Key', 'Fire Temple MQ West Tower Top Chest', 'GS Fire Temple MQ Fire Wall Maze Side Room', + 'GS Fire Temple MQ Fire Wall Maze Center', 'GS Fire Temple MQ Above Fire Wall Maze']), + create_dungeon_region( + 'Fire Boss Room', + ['Volvagia Heart', 'Volvagia']) + ]) + else: + world.regions.extend([ + create_dungeon_region( + 'Fire Temple Lower', + ['Fire Temple Chest Near Boss', 'Fire Temple Fire Dancer Chest', 'Fire Temple Boss Key Chest', + 'Fire Temple Big Lava Room Bombable Chest', 'Fire Temple Big Lava Room Open Chest', 'Volvagia Heart', + 'Volvagia', 'GS Fire Temple Song of Time Room', 'GS Fire Temple Basement'], + ['Fire Temple Exit', 'Fire Temple Early Climb']), + create_dungeon_region( + 'Fire Temple Middle', + ['Fire Temple Boulder Maze Lower Chest', 'Fire Temple Boulder Maze Upper Chest', + 'Fire Temple Boulder Maze Side Room', 'Fire Temple Boulder Maze Bombable Pit', 'Fire Temple Scarecrow Chest', + 'Fire Temple Map Chest', 'Fire Temple Compass Chest', 'GS Fire Temple Unmarked Bomb Wall', + 'GS Fire Temple East Tower Climb', 'GS Fire Temple East Tower Top'], + ['Fire Temple Fire Maze Escape']), + create_dungeon_region( + 'Fire Temple Upper', + ['Fire Temple Highest Goron Chest', 'Fire Temple Megaton Hammer Chest']) + ]) + + if world.dungeon_mq['WT']: + world.regions.extend([ + create_dungeon_region( + 'Water Temple Lobby', + ['Water Temple MQ Map Chest', 'Water Temple MQ Central Pillar Chest', 'Morpha Heart', 'Morpha'], + ['Water Temple Exit', 'Water Temple Water Level Switch', 'Water Temple Locked Door']), + create_dungeon_region( + 'Water Temple Lowered Water Levels', + ['Water Temple MQ Compass Chest', 'Water Temple MQ Longshot Chest', + 'GS Water Temple MQ Lizalfos Hallway', 'GS Water Temple MQ Before Upper Water Switch']), + create_dungeon_region( + 'Water Temple Dark Link Region', + ['Water Temple MQ Boss Key Chest', 'GS Water Temple MQ Serpent River'], + ['Water Temple Basement Gates Switch']), + create_dungeon_region( + 'Water Temple Basement Gated Areas', + ['Water Temple MQ Freestanding Key', 'GS Water Temple MQ South Basement', 'GS Water Temple MQ North Basement']) + ]) + else: + world.regions.extend([ + create_dungeon_region( + 'Water Temple Lobby', + ['Water Temple Map Chest', 'Water Temple Compass Chest', 'Water Temple Torches Chest', 'Water Temple Dragon Chest', + 'Water Temple Central Bow Target Chest', 'Water Temple Boss Key Chest', 'Morpha Heart', 'Morpha', + 'GS Water Temple South Basement', 'GS Water Temple Near Boss Key Chest'], + ['Water Temple Exit', 'Water Temple Central Pillar', 'Water Temple Upper Locked Door']), + create_dungeon_region( + 'Water Temple Middle Water Level', + ['Water Temple Central Pillar Chest', 'Water Temple Cracked Wall Chest', 'GS Water Temple Central Room']), + create_dungeon_region( + 'Water Temple Dark Link Region', + ['Water Temple Dark Link Chest', 'Water Temple River Chest', 'GS Water Temple Serpent River', + 'GS Water Temple Falling Platform Room']) + ]) + + if world.dungeon_mq['SpT']: + world.regions.extend([ + create_dungeon_region( + 'Spirit Temple Lobby', + ['Spirit Temple MQ Entrance Front Left Chest', 'Spirit Temple MQ Entrance Back Left Chest', + 'Spirit Temple MQ Entrance Back Right Chest'], + ['Spirit Temple Exit', 'Spirit Temple Crawl Passage', 'Spirit Temple Ceiling Passage']), + create_dungeon_region( + 'Child Spirit Temple', + ['Spirit Temple MQ Child Left Chest', 'Spirit Temple MQ Map Chest', 'Spirit Temple MQ Silver Block Hallway Chest'], + ['Child Spirit Temple to Shared']), + create_dungeon_region( + 'Adult Spirit Temple', + ['Spirit Temple MQ Child Center Chest', 'Spirit Temple MQ Child Climb South Chest', 'Spirit Temple MQ Lower NE Main Room Chest', + 'Spirit Temple MQ Upper NE Main Room Chest', 'Spirit Temple MQ Beamos Room Chest', 'Spirit Temple MQ Ice Trap Chest', + 'Spirit Temple MQ Boss Key Chest', 'GS Spirit Temple MQ Iron Knuckle West', 'GS Spirit Temple MQ Iron Knuckle North'], + ['Adult Spirit Temple Descent', 'Adult Spirit Temple to Shared', 'Spirit Temple Climbable Wall', 'Mirror Shield Exit']), + create_dungeon_region( + 'Spirit Temple Shared', + ['Spirit Temple MQ Child Climb North Chest', 'Spirit Temple MQ Compass Chest', 'Spirit Temple MQ Sun Block Room Chest', + 'GS Spirit Temple MQ Sun Block Room'], + ['Silver Gauntlets Exit']), + create_dungeon_region( + 'Lower Adult Spirit Temple', + ['Spirit Temple MQ Lower Adult Left Chest', 'Spirit Temple MQ Lower Adult Right Chest', + 'Spirit Temple MQ Entrance Front Right Chest', 'GS Spirit Temple MQ Lower Adult Left', + 'GS Spirit Temple MQ Lower Adult Right']), + create_dungeon_region( + 'Spirit Temple Boss Area', + ['Spirit Temple MQ Mirror Puzzle Invisible Chest', 'Twinrova Heart', 'Twinrova']), + create_dungeon_region( + 'Mirror Shield Hand', + ['Mirror Shield Chest']), + create_dungeon_region( + 'Silver Gauntlets Hand', + ['Silver Gauntlets Chest']) + ]) + else: + world.regions.extend([ + create_dungeon_region( + 'Spirit Temple Lobby', + None, + ['Spirit Temple Exit', 'Spirit Temple Crawl Passage', 'Spirit Temple Silver Block']), + create_dungeon_region( + 'Child Spirit Temple', + ['Spirit Temple Child Left Chest', 'Spirit Temple Child Right Chest', 'GS Spirit Temple Metal Fence'], + ['Child Spirit Temple Climb']), + create_dungeon_region( + 'Child Spirit Temple Climb', + ['Spirit Temple Child Climb East Chest', 'Spirit Temple Child Climb North Chest', + 'GS Spirit Temple Bomb for Light Room'], + ['Child Spirit Temple Passthrough']), + create_dungeon_region( + 'Early Adult Spirit Temple', + ['Spirit Temple Compass Chest', 'Spirit Temple Early Adult Right Chest', + 'Spirit Temple First Mirror Right Chest', 'Spirit Temple First Mirror Left Chest', + 'GS Spirit Temple Boulder Room'], + ['Adult Spirit Temple Passthrough']), + create_dungeon_region( + 'Spirit Temple Central Chamber', + ['Spirit Temple Map Chest', 'Spirit Temple Sun Block Room Chest', 'Spirit Temple Statue Hand Chest', + 'Spirit Temple NE Main Room Chest', 'GS Spirit Temple Hall to West Iron Knuckle', 'GS Spirit Temple Lobby'], + ['Spirit Temple to Hands', 'Spirit Temple Central Locked Door', 'Spirit Temple Middle Child Door']), + create_dungeon_region( + 'Spirit Temple Outdoor Hands', + ['Silver Gauntlets Chest', 'Mirror Shield Chest']), + create_dungeon_region( + 'Spirit Temple Beyond Central Locked Door', + ['Spirit Temple Near Four Armos Chest', 'Spirit Temple Hallway Left Invisible Chest', + 'Spirit Temple Hallway Right Invisible Chest'], + ['Spirit Temple Final Locked Door']), + create_dungeon_region( + 'Spirit Temple Beyond Final Locked Door', + ['Spirit Temple Boss Key Chest', 'Spirit Temple Topmost Chest', 'Twinrova Heart', 'Twinrova']) + ]) + + if world.dungeon_mq['ShT']: + world.regions.extend([ + create_dungeon_region( + 'Shadow Temple Beginning', + None, + ['Shadow Temple Exit', 'Shadow Temple First Pit', 'Shadow Temple Beginning Locked Door']), + create_dungeon_region( + 'Shadow Temple Dead Hand Area', + ['Shadow Temple MQ Compass Chest', 'Shadow Temple MQ Hover Boots Chest']), + create_dungeon_region( + 'Shadow Temple First Beamos', + ['Shadow Temple MQ Map Chest', 'Shadow Temple MQ Early Gibdos Chest', 'Shadow Temple MQ Near Ship Invisible Chest'], + ['Shadow Temple Bomb Wall']), + create_dungeon_region( + 'Shadow Temple Huge Pit', + ['Shadow Temple MQ Invisible Blades Visible Chest', 'Shadow Temple MQ Invisible Blades Invisible Chest', + 'Shadow Temple MQ Beamos Silver Rupees Chest', 'Shadow Temple MQ Falling Spikes Lower Chest', + 'Shadow Temple MQ Falling Spikes Upper Chest', 'Shadow Temple MQ Falling Spikes Switch Chest', + 'Shadow Temple MQ Invisible Spikes Chest', 'Shadow Temple MQ Stalfos Room Chest', 'GS Shadow Temple MQ Crusher Room'], + ['Shadow Temple Hookshot Target']), + create_dungeon_region( + 'Shadow Temple Wind Tunnel', + ['Shadow Temple MQ Wind Hint Chest', 'Shadow Temple MQ After Wind Enemy Chest', 'Shadow Temple MQ After Wind Hidden Chest', + 'GS Shadow Temple MQ Wind Hint Room', 'GS Shadow Temple MQ After Wind'], + ['Shadow Temple Boat']), + create_dungeon_region( + 'Shadow Temple Beyond Boat', + ['Bongo Bongo Heart', 'Bongo Bongo', 'GS Shadow Temple MQ After Ship', 'GS Shadow Temple MQ Near Boss'], + ['Shadow Temple Longshot Target']), + create_dungeon_region( + 'Shadow Temple Invisible Maze', + ['Shadow Temple MQ Spike Walls Left Chest', 'Shadow Temple MQ Boss Key Chest', + 'Shadow Temple MQ Bomb Flower Chest', 'Shadow Temple MQ Freestanding Key']) + ]) + else: + world.regions.extend([ + create_dungeon_region( + 'Shadow Temple Beginning', + ['Shadow Temple Map Chest', 'Shadow Temple Hover Boots Chest'], + ['Shadow Temple Exit', 'Shadow Temple First Pit']), + create_dungeon_region( + 'Shadow Temple First Beamos', + ['Shadow Temple Compass Chest', 'Shadow Temple Early Silver Rupee Chest'], + ['Shadow Temple Bomb Wall']), + create_dungeon_region( + 'Shadow Temple Huge Pit', + ['Shadow Temple Invisible Blades Visible Chest', 'Shadow Temple Invisible Blades Invisible Chest', + 'Shadow Temple Falling Spikes Lower Chest', 'Shadow Temple Falling Spikes Upper Chest', + 'Shadow Temple Falling Spikes Switch Chest', 'Shadow Temple Invisible Spikes Chest', + 'Shadow Temple Freestanding Key', 'GS Shadow Temple Like Like Room', 'GS Shadow Temple Crusher Room'], + ['Shadow Temple Hookshot Target']), + create_dungeon_region( + 'Shadow Temple Wind Tunnel', + ['Shadow Temple Wind Hint Chest', 'Shadow Temple After Wind Enemy Chest', + 'Shadow Temple After Wind Hidden Chest', 'GS Shadow Temple Single Giant Pot', 'GS Shadow Temple Near Ship'], + ['Shadow Temple Boat']), + create_dungeon_region( + 'Shadow Temple Beyond Boat', + ['Shadow Temple Spike Walls Left Chest', 'Shadow Temple Boss Key Chest', + 'Shadow Temple Hidden Floormaster Chest', 'Bongo Bongo Heart', 'Bongo Bongo', + 'GS Shadow Temple Tripple Giant Pot']) + ]) + + if world.dungeon_mq['BW']: + world.regions.extend([ + create_dungeon_region( + 'Bottom of the Well', + ['Bottom of the Well MQ Compass Chest', 'Bottom of the Well MQ Map Chest', 'Bottom of the Well MQ Lens Chest', + 'Bottom of the Well MQ Dead Hand Freestanding Key', 'Bottom of the Well MQ East Inner Room Freestanding Key', + 'GS Well MQ Basement', 'GS Well MQ West Inner Room', 'GS Well MQ Coffin Room'], + ['Bottom of the Well Exit']) + ]) + else: + world.regions.extend([ + create_dungeon_region( + 'Bottom of the Well', + ['Bottom of the Well Front Left Hidden Wall', 'Bottom of the Well Front Center Bombable', + 'Bottom of the Well Right Bottom Hidden Wall', 'Bottom of the Well Center Large Chest', + 'Bottom of the Well Center Small Chest', 'Bottom of the Well Back Left Bombable', + 'Bottom of the Well Freestanding Key', 'Bottom of the Well Defeat Boss', 'Bottom of the Well Invisible Chest', + 'Bottom of the Well Underwater Front Chest', 'Bottom of the Well Underwater Left Chest', + 'Bottom of the Well Basement Chest', 'Bottom of the Well Locked Pits', 'Bottom of the Well Behind Right Grate', + 'GS Well West Inner Room', 'GS Well East Inner Room', 'GS Well Like Like Cage'], + ['Bottom of the Well Exit']) + ]) + + if world.dungeon_mq['IC']: + world.regions.extend([ + create_dungeon_region( + 'Ice Cavern', + ['Ice Cavern MQ Map Chest', 'Ice Cavern MQ Compass Chest', 'Ice Cavern MQ Iron Boots Chest', + 'Ice Cavern MQ Freestanding PoH', 'Sheik in Ice Cavern', 'GS Ice Cavern MQ Red Ice', + 'GS Ice Cavern MQ Ice Block', 'GS Ice Cavern MQ Scarecrow'], + ['Ice Cavern Exit']) + ]) + else: + world.regions.extend([ + create_dungeon_region( + 'Ice Cavern', + ['Ice Cavern Map Chest', 'Ice Cavern Compass Chest', 'Ice Cavern Iron Boots Chest', + 'Ice Cavern Freestanding PoH', 'Sheik in Ice Cavern', 'GS Ice Cavern Spinning Scythe Room', + 'GS Ice Cavern Heart Piece Room', 'GS Ice Cavern Push Block Room'], + ['Ice Cavern Exit']) + ]) + + if world.dungeon_mq['GTG']: + world.regions.extend([ + create_dungeon_region( + 'Gerudo Training Grounds Lobby', + ['Gerudo Training Grounds MQ Lobby Left Chest', 'Gerudo Training Grounds MQ Lobby Right Chest', + 'Gerudo Training Grounds MQ Hidden Ceiling Chest', 'Gerudo Training Grounds MQ Maze Path First Chest', + 'Gerudo Training Grounds MQ Maze Path Second Chest', 'Gerudo Training Grounds MQ Maze Path Third Chest'], + ['Gerudo Training Grounds Exit', 'Gerudo Training Grounds Left Door', 'Gerudo Training Grounds Right Door']), + create_dungeon_region( + 'Gerudo Training Grounds Right Side', + ['Gerudo Training Grounds MQ Dinolfos Chest', 'Gerudo Training Grounds MQ Underwater Silver Rupee Chest']), + create_dungeon_region( + 'Gerudo Training Grounds Left Side', + ['Gerudo Training Grounds MQ First Iron Knuckle Chest'], + ['Gerudo Training Grounds Longshot Target']), + create_dungeon_region( + 'Gerudo Training Grounds Stalfos Room', + ['Gerudo Training Grounds MQ Before Heavy Block Chest', 'Gerudo Training Grounds MQ Heavy Block Chest'], + ['Gerudo Training Grounds Song of Time Block']), + create_dungeon_region( + 'Gerudo Training Grounds Back Areas', + ['Gerudo Training Grounds MQ Eye Statue Chest', 'Gerudo Training Grounds MQ Second Iron Knuckle Chest', + 'Gerudo Training Grounds MQ Flame Circle Chest'], + ['Gerudo Training Grounds Rusted Switch', 'Gerudo Training Grounds Loop Around']), + create_dungeon_region( + 'Gerudo Training Grounds Central Maze Right', + ['Gerudo Training Grounds MQ Maze Right Central Chest', 'Gerudo Training Grounds MQ Maze Right Side Chest', + 'Gerudo Training Grounds MQ Ice Arrows Chest']) + ]) + else: + world.regions.extend([ + create_dungeon_region( + 'Gerudo Training Grounds Lobby', + ['Gerudo Training Grounds Lobby Left Chest', 'Gerudo Training Grounds Lobby Right Chest', + 'Gerudo Training Grounds Stalfos Chest', 'Gerudo Training Grounds Beamos Chest'], + ['Gerudo Training Grounds Exit', 'Gerudo Training Ground Left Silver Rupees', 'Gerudo Training Ground Beamos', + 'Gerudo Training Ground Central Door']), + create_dungeon_region( + 'Gerudo Training Grounds Central Maze', + ['Gerudo Training Grounds Hidden Ceiling Chest', 'Gerudo Training Grounds Maze Path First Chest', + 'Gerudo Training Grounds Maze Path Second Chest', 'Gerudo Training Grounds Maze Path Third Chest', + 'Gerudo Training Grounds Maze Path Final Chest'], + ['Gerudo Training Grounds Right Locked Doors']), + create_dungeon_region( + 'Gerudo Training Grounds Central Maze Right', + ['Gerudo Training Grounds Maze Right Central Chest', 'Gerudo Training Grounds Maze Right Side Chest', + 'Gerudo Training Grounds Freestanding Key'], + ['Gerudo Training Grounds Maze Exit']), + create_dungeon_region( + 'Gerudo Training Grounds Lava Room', + ['Gerudo Training Grounds Underwater Silver Rupee Chest'], + ['Gerudo Training Grounds Maze Ledge', 'Gerudo Training Grounds Right Hookshot Target']), + create_dungeon_region( + 'Gerudo Training Grounds Hammer Room', + ['Gerudo Training Grounds Hammer Room Clear Chest', 'Gerudo Training Grounds Hammer Room Switch Chest'], + ['Gerudo Training Grounds Hammer Target', 'Gerudo Training Grounds Hammer Room Clear']), + create_dungeon_region( + 'Gerudo Training Grounds Eye Statue Lower', + ['Gerudo Training Grounds Eye Statue Chest'], + ['Gerudo Training Grounds Eye Statue Exit']), + create_dungeon_region( + 'Gerudo Training Grounds Eye Statue Upper', + ['Gerudo Training Grounds Near Scarecrow Chest'], + ['Gerudo Training Grounds Eye Statue Drop']), + create_dungeon_region( + 'Gerudo Training Grounds Heavy Block Room', + ['Gerudo Training Grounds Before Heavy Block Chest', 'Gerudo Training Grounds Heavy Block First Chest', + 'Gerudo Training Grounds Heavy Block Second Chest', 'Gerudo Training Grounds Heavy Block Third Chest', + 'Gerudo Training Grounds Heavy Block Fourth Chest'], + ['Gerudo Training Grounds Hidden Hookshot Target']) + ]) + + if world.dungeon_mq['GC']: + world.regions.extend([ + create_dungeon_region( + 'Ganons Castle Forest Trial', + ['Ganons Castle MQ Forest Trial First Chest', 'Ganons Castle MQ Forest Trial Second Chest', + 'Ganons Castle MQ Forest Trial Freestanding Key', 'Ganons Castle Forest Trial Clear']), + create_dungeon_region( + 'Ganons Castle Fire Trial', + ['Ganons Castle Fire Trial Clear']), + create_dungeon_region( + 'Ganons Castle Water Trial', + ['Ganons Castle MQ Water Trial Chest', 'Ganons Castle Water Trial Clear']), + create_dungeon_region( + 'Ganons Castle Shadow Trial', + ['Ganons Castle MQ Shadow Trial First Chest', 'Ganons Castle MQ Shadow Trial Second Chest', + 'Ganons Castle Shadow Trial Clear']), + create_dungeon_region( + 'Ganons Castle Spirit Trial', + ['Ganons Castle MQ Spirit Trial First Chest', 'Ganons Castle MQ Spirit Trial Second Chest', + 'Ganons Castle MQ Spirit Trial Sun Front Left Chest', 'Ganons Castle MQ Spirit Trial Sun Back Left Chest', + 'Ganons Castle MQ Spirit Trial Golden Gauntlets Chest', 'Ganons Castle MQ Spirit Trial Sun Back Right Chest', + 'Ganons Castle Spirit Trial Clear']), + create_dungeon_region( + 'Ganons Castle Light Trial', + ['Ganons Castle MQ Light Trial Lullaby Chest', 'Ganons Castle Light Trial Clear']) + ]) + else: + world.regions.extend([ + create_dungeon_region( + 'Ganons Castle Forest Trial', + ['Ganons Castle Forest Trial Chest', 'Ganons Castle Forest Trial Clear']), + create_dungeon_region( + 'Ganons Castle Fire Trial', + ['Ganons Castle Fire Trial Clear']), + create_dungeon_region( + 'Ganons Castle Water Trial', + ['Ganons Castle Water Trial Left Chest', 'Ganons Castle Water Trial Right Chest', + 'Ganons Castle Water Trial Clear']), + create_dungeon_region( + 'Ganons Castle Shadow Trial', + ['Ganons Castle Shadow Trial First Chest', 'Ganons Castle Shadow Trial Second Chest', + 'Ganons Castle Shadow Trial Clear']), + create_dungeon_region( + 'Ganons Castle Spirit Trial', + ['Ganons Castle Spirit Trial First Chest', 'Ganons Castle Spirit Trial Second Chest', + 'Ganons Castle Spirit Trial Clear']), + create_dungeon_region( + 'Ganons Castle Light Trial', + ['Ganons Castle Light Trial First Left Chest', 'Ganons Castle Light Trial Second Left Chest', + 'Ganons Castle Light Trial Third Left Chest', 'Ganons Castle Light Trial First Right Chest', + 'Ganons Castle Light Trial Second Right Chest', 'Ganons Castle Light Trial Third Right Chest', + 'Ganons Castle Light Trail Invisible Enemies Chest', 'Ganons Castle Light Trial Lullaby Chest', + 'Ganons Castle Light Trial Clear']) + ]) world.initialize_regions() @@ -637,134 +934,8 @@ def _create_region(name, type, locations=None, exits=None): 'Haunted Wasteland Structure Chest': (0x21E20DE, None, 0x8AA0, 'Chest', 0x5E, 'Haunted Wasteland'), 'Redead Grotto Chest': (0x26CF076, None, 0x7ACA, 'Chest', 0x3E, 'Kakariko Village'), 'Wolfos Grotto Chest': (0x26EB076, None, 0x7AB1, 'Chest', 0x3E, 'Sacred Forest Meadow'), - 'Boomerang Chest': (0x278A0BA, None, 0x10C1, 'Chest', 0x02, 'Jabu Jabu\'s Belly'), - 'Jabu Jabus Belly Map Chest': (0x278E08A, None, 0x1822, 'Chest', 0x02, 'Jabu Jabu\'s Belly'), - 'Jabu Jabus Belly Compass Chest': (0x279608A, None, 0xB804, 'Chest', 0x02, 'Jabu Jabu\'s Belly'), - 'Forest Temple First Chest': (0x23E5092, None, 0x5843, 'Chest', 0x03, 'Forest Temple'), - 'Forest Temple Chest Behind Lobby': (0x2415082, None, 0x7840, 'Chest', 0x03, 'Forest Temple'), - 'Forest Temple Well Chest': (0x244A062, None, 0x5849, 'Chest', 0x03, 'Forest Temple'), - 'Forest Temple Map Chest': (0x2455076, None, 0x1821, 'Chest', 0x03, 'Forest Temple'), - 'Forest Temple Outside Hookshot Chest': (0x241F0D6, None, 0x5905, 'Chest', 0x03, 'Forest Temple'), - 'Forest Temple Falling Room Chest': (0x247E09E, None, 0x5947, 'Chest', 0x03, 'Forest Temple'), - 'Forest Temple Block Push Chest': (0x245B096, None, 0x8964, 'Chest', 0x03, 'Forest Temple'), - 'Forest Temple Boss Key Chest': (0xCB0DC2, None, 0x27EE, 'Chest', 0x03, 'Forest Temple'), - 'Forest Temple Floormaster Chest': (0x2490072, None, 0x7842, 'Chest', 0x03, 'Forest Temple'), - 'Forest Temple Bow Chest': (0x2415092, None, 0xB08C, 'Chest', 0x03, 'Forest Temple'), - 'Forest Temple Red Poe Chest': (0x246607E, None, 0x784D, 'Chest', 0x03, 'Forest Temple'), - 'Forest Temple Blue Poe Chest': (0x246F07E, None, 0x180F, 'Chest', 0x03, 'Forest Temple'), - 'Forest Temple Near Boss Chest': (0x2486082, None, 0x592B, 'Chest', 0x03, 'Forest Temple'), - 'Bottom of the Well Front Left Hidden Wall': (0x32D317E, None, 0x5848, 'Chest', 0x08, 'Bottom of the Well'), - 'Bottom of the Well Front Center Bombable': (0x32D30FE, None, 0x5062, 'Chest', 0x08, 'Bottom of the Well'), - 'Bottom of the Well Right Bottom Hidden Wall': (0x32D314E, None, 0x5845, 'Chest', 0x08, 'Bottom of the Well'), - 'Bottom of the Well Center Large Chest': (0x32D30EE, None, 0x0801, 'Chest', 0x08, 'Bottom of the Well'), - 'Bottom of the Well Center Small Chest': (0x32D31AE, None, 0x504E, 'Chest', 0x08, 'Bottom of the Well'), - 'Bottom of the Well Back Left Bombable': (0x32D313E, None, 0x5C84, 'Chest', 0x08, 'Bottom of the Well'), - 'Bottom of the Well Defeat Boss': (0x32FB0AA, None, 0x1143, 'Chest', 0x08, 'Bottom of the Well'), - 'Bottom of the Well Invisible Chest': (0x32FB0BA, None, 0x6AD4, 'Chest', 0x08, 'Bottom of the Well'), - 'Bottom of the Well Underwater Front Chest': (0x32D31BE, None, 0x5CD0, 'Chest', 0x08, 'Bottom of the Well'), - 'Bottom of the Well Underwater Left Chest': (0x32D318E, None, 0x5909, 'Chest', 0x08, 'Bottom of the Well'), - 'Bottom of the Well Basement Chest': (0x32E9252, None, 0x0827, 'Chest', 0x08, 'Bottom of the Well'), - 'Bottom of the Well Locked Pits': (0x32F90AA, None, 0x552A, 'Chest', 0x08, 'Bottom of the Well'), - 'Bottom of the Well Behind Right Grate': (0x32D319E, None, 0x554C, 'Chest', 0x08, 'Bottom of the Well'), - 'Fire Temple Chest Near Boss': (0x230808A, None, 0x5841, 'Chest', 0x04, 'Fire Temple'), - 'Fire Temple Fire Dancer Chest': (0x2318082, None, 0x7CC0, 'Chest', 0x04, 'Fire Temple'), - 'Fire Temple Boss Key Chest': (0x238A0D6, None, 0x27EC, 'Chest', 0x04, 'Fire Temple'), - 'Fire Temple Big Lava Room Bombable Chest': (0x23AD076, None, 0x5842, 'Chest', 0x04, 'Fire Temple'), - 'Fire Temple Big Lava Room Open Chest': (0x239D0A6, None, 0x5844, 'Chest', 0x04, 'Fire Temple'), - 'Fire Temple Boulder Maze Lower Chest': (0x2323152, None, 0x5843, 'Chest', 0x04, 'Fire Temple'), - 'Fire Temple Boulder Maze Upper Chest': (0x2323182, None, 0x5846, 'Chest', 0x04, 'Fire Temple'), - 'Fire Temple Boulder Maze Side Room': (0x23B40B2, None, 0x5848, 'Chest', 0x04, 'Fire Temple'), - 'Fire Temple Boulder Maze Bombable Pit': (0x231B0E2, None, 0x584B, 'Chest', 0x04, 'Fire Temple'), - 'Fire Temple Scarecrow Chest': (0x2339082, None, 0x5ACD, 'Chest', 0x04, 'Fire Temple'), - 'Fire Temple Map Chest': (0x237E0C2, None, 0x082A, 'Chest', 0x04, 'Fire Temple'), - 'Fire Temple Compass Chest': (0x23C1082, None, 0x0807, 'Chest', 0x04, 'Fire Temple'), - 'Fire Temple Highest Goron Chest': (0x2365066, None, 0x5849, 'Chest', 0x04, 'Fire Temple'), - 'Fire Temple Megaton Hammer Chest': (0x236C102, None, 0x01A5, 'Chest', 0x04, 'Fire Temple'), - 'Ice Cavern Map Chest': (0x2C4016A, None, 0x0820, 'Chest', 0x09, 'Ice Cavern'), - 'Ice Cavern Compass Chest': (0x2C4E236, None, 0x0801, 'Chest', 0x09, 'Ice Cavern'), - 'Ice Cavern Iron Boots Chest': (0x2C380A2, None, 0x15C2, 'Chest', 0x09, 'Ice Cavern'), - 'Water Temple Map Chest': (0x26690A6, None, 0x1822, 'Chest', 0x05, 'Water Temple'), - 'Water Temple Compass Chest': (0x25FC0D2, None, 0x0809, 'Chest', 0x05, 'Water Temple'), - 'Water Temple Torches Chest': (0x26640A6, None, 0x7841, 'Chest', 0x05, 'Water Temple'), - 'Water Temple Dragon Chest': (0x261F0BA, None, 0x584A, 'Chest', 0x05, 'Water Temple'), - 'Water Temple Central Bow Target Chest': (0x266D072, None, 0x5848, 'Chest', 0x05, 'Water Temple'), - 'Water Temple Central Pillar Chest': (0x25EF0D6, None, 0x5846, 'Chest', 0x05, 'Water Temple'), - 'Water Temple Cracked Wall Chest': (0x265B0A6, None, 0x5840, 'Chest', 0x05, 'Water Temple'), - 'Water Temple Boss Key Chest': (0x2657066, None, 0x27E5, 'Chest', 0x05, 'Water Temple'), - 'Water Temple Dark Link Chest': (0x261907A, None, 0x0127, 'Chest', 0x05, 'Water Temple'), - 'Water Temple River Chest': (0x26740DE, None, 0x5843, 'Chest', 0x05, 'Water Temple'), - 'Shadow Temple Map Chest': (0x27CC0AA, None, 0x1821, 'Chest', 0x07, 'Shadow Temple'), - 'Shadow Temple Hover Boots Chest': (0x27DC0CA, None, 0x15E7, 'Chest', 0x07, 'Shadow Temple'), - 'Shadow Temple Compass Chest': (0x27EC09E, None, 0x1803, 'Chest', 0x07, 'Shadow Temple'), - 'Shadow Temple Early Silver Rupee Chest': (0x27E40F6, None, 0x5842, 'Chest', 0x07, 'Shadow Temple'), - 'Shadow Temple Invisible Blades Visible Chest': (0x282212A, None, 0x588C, 'Chest', 0x07, 'Shadow Temple'), - 'Shadow Temple Invisible Blades Invisible Chest': (0x282211A, None, 0x6976, 'Chest', 0x07, 'Shadow Temple'), - 'Shadow Temple Falling Spikes Lower Chest': (0x2801132, None, 0x5945, 'Chest', 0x07, 'Shadow Temple'), - 'Shadow Temple Falling Spikes Upper Chest': (0x2801142, None, 0x5886, 'Chest', 0x07, 'Shadow Temple'), - 'Shadow Temple Falling Spikes Switch Chest': (0x2801122, None, 0x8844, 'Chest', 0x07, 'Shadow Temple'), - 'Shadow Temple Invisible Spikes Chest': (0x28090EE, None, 0x7889, 'Chest', 0x07, 'Shadow Temple'), - 'Shadow Temple Wind Hint Chest': (0x283609A, None, 0x6955, 'Chest', 0x07, 'Shadow Temple'), - 'Shadow Temple After Wind Enemy Chest': (0x28390FE, None, 0x7888, 'Chest', 0x07, 'Shadow Temple'), - 'Shadow Temple After Wind Hidden Chest': (0x28390EE, None, 0x6854, 'Chest', 0x07, 'Shadow Temple'), - 'Shadow Temple Spike Walls Left Chest': (0x28130B6, None, 0x588A, 'Chest', 0x07, 'Shadow Temple'), - 'Shadow Temple Boss Key Chest': (0x28130A6, None, 0x27EB, 'Chest', 0x07, 'Shadow Temple'), - 'Shadow Temple Hidden Floormaster Chest': (0x282508A, None, 0x784D, 'Chest', 0x07, 'Shadow Temple'), - 'Gerudo Training Grounds Lobby Left Chest': (0x28870CA, None, 0x8893, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Lobby Right Chest': (0x28870BA, None, 0x8947, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Stalfos Chest': (0x28970AA, None, 0x8840, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Beamos Chest': (0x28C715E, None, 0x8841, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Hidden Ceiling Chest': (0x28D010E, None, 0x584B, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Maze Path First Chest': (0x28D00CE, None, 0x5AA6, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Maze Path Second Chest': (0x28D00FE, None, 0x59CA, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Maze Path Third Chest': (0x28D00EE, None, 0x5969, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Maze Path Final Chest': (0x28D011E, None, 0x0B2C, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Maze Right Central Chest': (0x28D00BE, None, 0x5D45, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Maze Right Side Chest': (0x28D00DE, None, 0x5968, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Underwater Silver Rupee Chest': (0x28D91D6, None, 0x884D, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Hammer Room Clear Chest': (0x28B91AE, None, 0x7952, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Hammer Room Switch Chest': (0x28B919E, None, 0x5850, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Eye Statue Chest': (0x28AE09E, None, 0x8843, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Near Scarecrow Chest': (0x28D00AE, None, 0x5844, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Before Heavy Block Chest': (0x28A611E, None, 0x7971, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Heavy Block First Chest': (0x28DD0BE, None, 0x7ACF, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Heavy Block Second Chest': (0x28DD0AE, None, 0x788E, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Heavy Block Third Chest': (0x28DD08E, None, 0x6854, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Gerudo Training Grounds Heavy Block Fourth Chest': (0x28DD09E, None, 0x5F82, 'Chest', 0x0B, 'Gerudo Training Grounds'), - 'Spirit Temple Child Left Chest': (0x2B190BA, None, 0x5528, 'Chest', 0x06, 'Spirit Temple'), - 'Spirit Temple Child Right Chest': (0x2B13182, None, 0x8840, 'Chest', 0x06, 'Spirit Temple'), - 'Spirit Temple Compass Chest': (0x2B6B08A, None, 0x3804, 'Chest', 0x06, 'Spirit Temple'), - 'Spirit Temple Early Adult Right Chest': (0x2B6207A, None, 0x5847, 'Chest', 0x06, 'Spirit Temple'), - 'Spirit Temple First Mirror Right Chest': (0x2B700C6, None, 0x890D, 'Chest', 0x06, 'Spirit Temple'), - 'Spirit Temple First Mirror Left Chest': (0x2B700D6, None, 0x8F8E, 'Chest', 0x06, 'Spirit Temple'), - 'Spirit Temple Map Chest': (0x2B25126, None, 0xB823, 'Chest', 0x06, 'Spirit Temple'), - 'Spirit Temple Child Climb East Chest': (0x2B1D122, None, 0x8066, 'Chest', 0x06, 'Spirit Temple'), - 'Spirit Temple Child Climb North Chest': (0x2B1D132, None, 0x852C, 'Chest', 0x06, 'Spirit Temple'), - 'Spirit Temple Sun Block Room Chest': (0x2B481B2, None, 0x8841, 'Chest', 0x06, 'Spirit Temple'), - 'Spirit Temple Statue Hand Chest': (0x2B25136, None, 0x8842, 'Chest', 0x06, 'Spirit Temple'), - 'Spirit Temple NE Main Room Chest': (0x2B25146, None, 0x888F, 'Chest', 0x06, 'Spirit Temple'), 'Silver Gauntlets Chest': (0x21A02DE, 0x21A06F2, 0x06AB, 'Chest', 0x5C, 'Desert Colossus'), 'Mirror Shield Chest': (0x21A02CE, 0x21A06E2, 0x3569, 'Chest', 0x5C, 'Desert Colossus'), - 'Spirit Temple Near Four Armos Chest': (0x2B9F076, None, 0x5845, 'Chest', 0x06, 'Spirit Temple'), - 'Spirit Temple Hallway Left Invisible Chest': (0x2B900B6, None, 0x6914, 'Chest', 0x06, 'Spirit Temple'), - 'Spirit Temple Hallway Right Invisible Chest': (0x2B900C6, None, 0x6915, 'Chest', 0x06, 'Spirit Temple'), - 'Spirit Temple Boss Key Chest': (0x2BA4162, None, 0x27EA, 'Chest', 0x06, 'Spirit Temple'), - 'Spirit Temple Topmost Chest': (0x2BCF0FE, None, 0x8CF2, 'Chest', 0x06, 'Spirit Temple'), - 'Ganons Castle Forest Trial Chest': (0x31F106E, None, 0x7889, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Water Trial Left Chest': (0x31D7236, None, 0x5F87, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Water Trial Right Chest': (0x31D7226, None, 0x5906, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Shadow Trial First Chest': (0x32350CA, None, 0x5888, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Shadow Trial Second Chest': (0x32350BA, None, 0x36C5, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Spirit Trial First Chest': (0x3268132, None, 0x8D72, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Spirit Trial Second Chest': (0x3268142, None, 0x6954, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Light Trial First Left Chest': (0x321B11E, None, 0x588C, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Light Trial Second Left Chest': (0x321B10E, None, 0x5F8B, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Light Trial Third Left Chest': (0x321B12E, None, 0x590D, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Light Trial First Right Chest': (0x321B13E, None, 0x5F8E, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Light Trial Second Right Chest': (0x321B0FE, None, 0x596A, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Light Trial Third Right Chest': (0x321B14E, None, 0x5F8F, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Light Trail Invisible Enemies Chest': (0x321B15E, None, 0x7850, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Light Trial Lullaby Chest': (0x321B17E, None, 0x8851, 'Chest', 0x0D, 'my castle'), - 'Ganons Tower Boss Key Chest': (0x2F040EE, None, 0x27EB, 'Chest', 0x0A, 'my tower'), 'Field West Castle Town Grotto Chest': (None, None, 0x00, 'Chest', 0x3E, 'Hyrule Field'), 'Remote Southern Grotto Chest': (None, None, 0x02, 'Chest', 0x3E, 'Hyrule Field'), 'Field Near Lake Outside Fence Grotto Chest': (None, None, 0x03, 'Chest', 0x3E, 'Hyrule Field'), @@ -835,10 +1006,6 @@ def _create_region(name, type, locations=None, exits=None): 'Rolling Goron as Child': (0xED296F, 0xED6503, 0x34, 'NPC', 0x62, 'Goron City'), 'Lake Hylia Sun': (0xE9E1F2, None, 0x5B08, 'Chest', 0x57, 'Lake Hylia'), 'Underwater Bottle': (0xDE10FB, None, 0x15, 'NPC', 0x57, 'Lake Hylia'), - 'Shadow Temple Freestanding Key': (None, None, 0x01, 'Collectable', 0x07, 'Shadow Temple'), - 'Bottom of the Well Freestanding Key': (None, None, 0x01, 'Collectable', 0x08, 'Bottom of the Well'), - 'Gerudo Training Grounds Freestanding Key': (None, None, 0x01, 'Collectable', 0x0B, 'Gerudo Training Grounds'), - 'Ice Cavern Freestanding PoH': (None, None, 0x01, 'Collectable', 0x09, 'Ice Cavern'), 'Impa House Freestanding PoH': (None, None, 0x01, 'Collectable', 0x37, 'Kakariko Village'), 'Tektite Grotto Freestanding PoH': (None, None, 0x01, 'Collectable', 0x3E, 'Hyrule Field'), 'Windmill Freestanding PoH': (None, None, 0x01, 'Collectable', 0x48, 'Kakariko Village'), @@ -916,6 +1083,287 @@ def _create_region(name, type, locations=None, exits=None): 'Dodongos Cavern MQ Torch Puzzle Room Chest': (0, None, 0x59A3, 'Chest', 0x01, 'Dodongo\'s Cavern'), 'Dodongos Cavern MQ Under Grave Chest': (0, None, 0x5541, 'Chest', 0x01, 'Dodongo\'s Cavern'), + # Jabu Jabu's Belly vanilla + 'Boomerang Chest': (0x278A0BA, None, 0x10C1, 'Chest', 0x02, 'Jabu Jabu\'s Belly'), + 'Jabu Jabus Belly Map Chest': (0x278E08A, None, 0x1822, 'Chest', 0x02, 'Jabu Jabu\'s Belly'), + 'Jabu Jabus Belly Compass Chest': (0x279608A, None, 0xB804, 'Chest', 0x02, 'Jabu Jabu\'s Belly'), + # Jabu Jabu's Belly MQ + 'Jabu Jabus Belly MQ Entry Side Chest': (0, None, 0x8045, 'Chest', 0x02, 'Jabu Jabu\'s Belly'), + 'Jabu Jabus Belly MQ Map Chest': (0, None, 0xB823, 'Chest', 0x02, 'Jabu Jabu\'s Belly'), + 'Jabu Jabus Belly MQ Second Room Lower Chest': (0, None, 0x5042, 'Chest', 0x02, 'Jabu Jabu\'s Belly'), + 'Jabu Jabus Belly MQ Compass Chest': (0, None, 0xB800, 'Chest', 0x02, 'Jabu Jabu\'s Belly'), + 'Jabu Jabus Belly MQ Second Room Upper Chest': (0, None, 0x8907, 'Chest', 0x02, 'Jabu Jabu\'s Belly'), + 'Jabu Jabus Belly MQ Basement North Chest': (0, None, 0x8048, 'Chest', 0x02, 'Jabu Jabu\'s Belly'), + 'Jabu Jabus Belly MQ Basement South Chest': (0, None, 0x8064, 'Chest', 0x02, 'Jabu Jabu\'s Belly'), + 'Jabu Jabus Belly MQ Near Boss Chest': (0, None, 0x852A, 'Chest', 0x02, 'Jabu Jabu\'s Belly'), + 'Jabu Jabus Belly MQ Falling Like Like Room Chest': (0, None, 0x70E9, 'Chest', 0x02, 'Jabu Jabu\'s Belly'), + 'Jabu Jabus Belly MQ Boomerang Room Small Chest': (0, None, 0x5041, 'Chest', 0x02, 'Jabu Jabu\'s Belly'), + 'MQ Boomerang Chest': (0, None, 0x10C6, 'Chest', 0x02, 'Jabu Jabu\'s Belly'), + + # Forest Temple vanilla + 'Forest Temple First Chest': (0x23E5092, None, 0x5843, 'Chest', 0x03, 'Forest Temple'), + 'Forest Temple Chest Behind Lobby': (0x2415082, None, 0x7840, 'Chest', 0x03, 'Forest Temple'), + 'Forest Temple Well Chest': (0x244A062, None, 0x5849, 'Chest', 0x03, 'Forest Temple'), + 'Forest Temple Map Chest': (0x2455076, None, 0x1821, 'Chest', 0x03, 'Forest Temple'), + 'Forest Temple Outside Hookshot Chest': (0x241F0D6, None, 0x5905, 'Chest', 0x03, 'Forest Temple'), + 'Forest Temple Falling Room Chest': (0x247E09E, None, 0x5947, 'Chest', 0x03, 'Forest Temple'), + 'Forest Temple Block Push Chest': (0x245B096, None, 0x8964, 'Chest', 0x03, 'Forest Temple'), + 'Forest Temple Boss Key Chest': (0xCB0DC2, None, 0x27EE, 'Chest', 0x03, 'Forest Temple'), + 'Forest Temple Floormaster Chest': (0x2490072, None, 0x7842, 'Chest', 0x03, 'Forest Temple'), + 'Forest Temple Bow Chest': (0x2415092, None, 0xB08C, 'Chest', 0x03, 'Forest Temple'), + 'Forest Temple Red Poe Chest': (0x246607E, None, 0x784D, 'Chest', 0x03, 'Forest Temple'), + 'Forest Temple Blue Poe Chest': (0x246F07E, None, 0x180F, 'Chest', 0x03, 'Forest Temple'), + 'Forest Temple Near Boss Chest': (0x2486082, None, 0x592B, 'Chest', 0x03, 'Forest Temple'), + # Forest Temple MQ + 'Forest Temple MQ First Chest': (0, None, 0x8843, 'Chest', 0x03, 'Forest Temple'), + 'Forest Temple MQ Chest Behind Lobby': (0, None, 0x7840, 'Chest', 0x03, 'Forest Temple'), + 'Forest Temple MQ Bow Chest': (0, None, 0xB08C, 'Chest', 0x03, 'Forest Temple'), + 'Forest Temple MQ NE Outdoors Lower Chest': (0, None, 0x5841, 'Chest', 0x03, 'Forest Temple'), + 'Forest Temple MQ NE Outdoors Upper Chest': (0, None, 0x5845, 'Chest', 0x03, 'Forest Temple'), + 'Forest Temple MQ Well Chest': (0, None, 0x5849, 'Chest', 0x03, 'Forest Temple'), + 'Forest Temple MQ Map Chest': (0, None, 0x182D, 'Chest', 0x03, 'Forest Temple'), + 'Forest Temple MQ Compass Chest': (0, None, 0x180F, 'Chest', 0x03, 'Forest Temple'), + 'Forest Temple MQ Falling Room Chest': (0, None, 0x8926, 'Chest', 0x03, 'Forest Temple'), + 'Forest Temple MQ Near Boss Chest': (0, None, 0x592B, 'Chest', 0x03, 'Forest Temple'), + 'Forest Temple MQ Redead Chest': (0, None, 0x7842, 'Chest', 0x03, 'Forest Temple'), + 'Forest Temple MQ Boss Key Chest': (0, None, 0x27EE, 'Chest', 0x03, 'Forest Temple'), # This needs tested to see if it has changed from vanilla. + + # Fire Temple vanilla + 'Fire Temple Chest Near Boss': (0x230808A, None, 0x5841, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple Fire Dancer Chest': (0x2318082, None, 0x7CC0, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple Boss Key Chest': (0x238A0D6, None, 0x27EC, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple Big Lava Room Bombable Chest': (0x23AD076, None, 0x5842, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple Big Lava Room Open Chest': (0x239D0A6, None, 0x5844, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple Boulder Maze Lower Chest': (0x2323152, None, 0x5843, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple Boulder Maze Upper Chest': (0x2323182, None, 0x5846, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple Boulder Maze Side Room': (0x23B40B2, None, 0x5848, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple Boulder Maze Bombable Pit': (0x231B0E2, None, 0x584B, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple Scarecrow Chest': (0x2339082, None, 0x5ACD, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple Map Chest': (0x237E0C2, None, 0x082A, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple Compass Chest': (0x23C1082, None, 0x0807, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple Highest Goron Chest': (0x2365066, None, 0x5849, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple Megaton Hammer Chest': (0x236C102, None, 0x01A5, 'Chest', 0x04, 'Fire Temple'), + # Fire Temple MQ + 'Fire Temple MQ Chest Near Boss': (0, None, 0x5847, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple MQ Megaton Hammer Chest': (0, None, 0x11A0, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple MQ Compass Chest': (0, None, 0x080B, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple MQ Maze Lower Chest': (0, None, 0x5CC3, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple MQ Maze Upper Chest': (0, None, 0x5CE6, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple MQ West Tower Top Chest': (0, None, 0x5845, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple MQ Entrance Hallway Small Chest': (0, None, 0x7542, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple MQ Map Chest': (0, None, 0x082C, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple MQ Boss Key Chest': (0, None, 0x27E4, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple MQ Big Lava Room Bombable Chest': (0, None, 0x5841, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple MQ Maze Side Room': (0, None, 0x5848, 'Chest', 0x04, 'Fire Temple'), + 'Fire Temple MQ Freestanding Key': (None, None, 0x01, 'Collectable', 0x04, 'Fire Temple'), # Need to verify this is the correct collectible flag. + + # Water Temple vanilla + 'Water Temple Map Chest': (0x26690A6, None, 0x1822, 'Chest', 0x05, 'Water Temple'), + 'Water Temple Compass Chest': (0x25FC0D2, None, 0x0809, 'Chest', 0x05, 'Water Temple'), + 'Water Temple Torches Chest': (0x26640A6, None, 0x7841, 'Chest', 0x05, 'Water Temple'), + 'Water Temple Dragon Chest': (0x261F0BA, None, 0x584A, 'Chest', 0x05, 'Water Temple'), + 'Water Temple Central Bow Target Chest': (0x266D072, None, 0x5848, 'Chest', 0x05, 'Water Temple'), + 'Water Temple Central Pillar Chest': (0x25EF0D6, None, 0x5846, 'Chest', 0x05, 'Water Temple'), + 'Water Temple Cracked Wall Chest': (0x265B0A6, None, 0x5840, 'Chest', 0x05, 'Water Temple'), + 'Water Temple Boss Key Chest': (0x2657066, None, 0x27E5, 'Chest', 0x05, 'Water Temple'), + 'Water Temple Dark Link Chest': (0x261907A, None, 0x0127, 'Chest', 0x05, 'Water Temple'), + 'Water Temple River Chest': (0x26740DE, None, 0x5843, 'Chest', 0x05, 'Water Temple'), + # Water Temple MQ + 'Water Temple MQ Central Pillar Chest': (0, None, 0x8846, 'Chest', 0x05, 'Water Temple'), + 'Water Temple MQ Boss Key Chest': (0, None, 0x27E5, 'Chest', 0x05, 'Water Temple'), + 'Water Temple MQ Longshot Chest': (0, None, 0xB120, 'Chest', 0x05, 'Water Temple'), + 'Water Temple MQ Compass Chest': (0, None, 0x1801, 'Chest', 0x05, 'Water Temple'), + 'Water Temple MQ Map Chest': (0, None, 0xB822, 'Chest', 0x05, 'Water Temple'), + 'Water Temple MQ Freestanding Key': (None, None, 0x01, 'Collectable', 0x05, 'Water Temple'), # Need to verify this is the correct collectible flag. + + # Spirit Temple vanilla + 'Spirit Temple Child Left Chest': (0x2B190BA, None, 0x5528, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple Child Right Chest': (0x2B13182, None, 0x8840, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple Compass Chest': (0x2B6B08A, None, 0x3804, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple Early Adult Right Chest': (0x2B6207A, None, 0x5847, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple First Mirror Right Chest': (0x2B700C6, None, 0x890D, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple First Mirror Left Chest': (0x2B700D6, None, 0x8F8E, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple Map Chest': (0x2B25126, None, 0xB823, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple Child Climb East Chest': (0x2B1D122, None, 0x8066, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple Child Climb North Chest': (0x2B1D132, None, 0x852C, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple Sun Block Room Chest': (0x2B481B2, None, 0x8841, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple Statue Hand Chest': (0x2B25136, None, 0x8842, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple NE Main Room Chest': (0x2B25146, None, 0x888F, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple Near Four Armos Chest': (0x2B9F076, None, 0x5845, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple Hallway Left Invisible Chest': (0x2B900B6, None, 0x6914, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple Hallway Right Invisible Chest': (0x2B900C6, None, 0x6915, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple Boss Key Chest': (0x2BA4162, None, 0x27EA, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple Topmost Chest': (0x2BCF0FE, None, 0x8CF2, 'Chest', 0x06, 'Spirit Temple'), + # Spirit Temple MQ + 'Spirit Temple MQ Entrance Front Left Chest': (0, None, 0x507A, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple MQ Entrance Back Right Chest': (0, None, 0x807F, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple MQ Entrance Front Right Chest': (0, None, 0x885B, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple MQ Entrance Back Left Chest': (0, None, 0x885E, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple MQ Child Center Chest': (0, None, 0x885D, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple MQ Map Chest': (0, None, 0x0820, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple MQ Child Left Chest': (0, None, 0x7848, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple MQ Child Climb North Chest': (0, None, 0x7066, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple MQ Child Climb South Chest': (0, None, 0x884C, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple MQ Compass Chest': (0, None, 0xB803, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple MQ Lower NE Main Room Chest': (0, None, 0x888F, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple MQ Upper NE Main Room Chest': (0, None, 0x6902, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple MQ Silver Block Hallway Chest': (0, None, 0x885C, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple MQ Sun Block Room Chest': (0, None, 0x8901, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple MQ Lower Adult Right Chest': (0, None, 0x5AA7, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple MQ Lower Adult Left Chest': (0, None, 0x7AA4, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple MQ Beamos Room Chest': (0, None, 0x7979, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple MQ Ice Trap Chest': (0, None, 0x5F98, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple MQ Boss Key Chest': (0, None, 0x27E5, 'Chest', 0x06, 'Spirit Temple'), + 'Spirit Temple MQ Mirror Puzzle Invisible Chest': (0, None, 0x6852, 'Chest', 0x06, 'Spirit Temple'), + + # Shadow Temple vanilla + 'Shadow Temple Map Chest': (0x27CC0AA, None, 0x1821, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple Hover Boots Chest': (0x27DC0CA, None, 0x15E7, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple Compass Chest': (0x27EC09E, None, 0x1803, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple Early Silver Rupee Chest': (0x27E40F6, None, 0x5842, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple Invisible Blades Visible Chest': (0x282212A, None, 0x588C, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple Invisible Blades Invisible Chest': (0x282211A, None, 0x6976, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple Falling Spikes Lower Chest': (0x2801132, None, 0x5945, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple Falling Spikes Upper Chest': (0x2801142, None, 0x5886, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple Falling Spikes Switch Chest': (0x2801122, None, 0x8844, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple Invisible Spikes Chest': (0x28090EE, None, 0x7889, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple Wind Hint Chest': (0x283609A, None, 0x6955, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple After Wind Enemy Chest': (0x28390FE, None, 0x7888, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple After Wind Hidden Chest': (0x28390EE, None, 0x6854, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple Spike Walls Left Chest': (0x28130B6, None, 0x588A, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple Boss Key Chest': (0x28130A6, None, 0x27EB, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple Hidden Floormaster Chest': (0x282508A, None, 0x784D, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple Freestanding Key': (None, None, 0x01, 'Collectable', 0x07, 'Shadow Temple'), + # Shadow Temple MQ + 'Shadow Temple MQ Compass Chest': (0, None, 0x1801, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple MQ Hover Boots Chest': (0, None, 0x15E7, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple MQ Early Gibdos Chest': (0, None, 0x0822, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple MQ Map Chest': (0, None, 0x7843, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple MQ Beamos Silver Rupees Chest': (0, None, 0x892F, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple MQ Falling Spikes Switch Chest': (0, None, 0x8844, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple MQ Falling Spikes Lower Chest': (0, None, 0x5945, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple MQ Falling Spikes Upper Chest': (0, None, 0x5886, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple MQ Invisible Spikes Chest': (0, None, 0x7889, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple MQ Boss Key Chest': (0, None, 0x27EB, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple MQ Spike Walls Left Chest': (0, None, 0x588A, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple MQ Stalfos Room Chest': (0, None, 0x79D0, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple MQ Invisible Blades Invisible Chest': (0, None, 0x6856, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple MQ Invisible Blades Visible Chest': (0, None, 0x588C, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple MQ Bomb Flower Chest': (0, None, 0x794D, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple MQ Wind Hint Chest': (0, None, 0x6855, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple MQ After Wind Hidden Chest': (0, None, 0x6934, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple MQ After Wind Enemy Chest': (0, None, 0x7888, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple MQ Near Ship Invisible Chest': (0, None, 0x684E, 'Chest', 0x07, 'Shadow Temple'), + 'Shadow Temple MQ Freestanding Key': (None, None, 0x01, 'Collectable', 0x07, 'Shadow Temple'), # This needs tested + + # Bottom of the Well vanilla + 'Bottom of the Well Front Left Hidden Wall': (0x32D317E, None, 0x5848, 'Chest', 0x08, 'Bottom of the Well'), + 'Bottom of the Well Front Center Bombable': (0x32D30FE, None, 0x5062, 'Chest', 0x08, 'Bottom of the Well'), + 'Bottom of the Well Right Bottom Hidden Wall': (0x32D314E, None, 0x5845, 'Chest', 0x08, 'Bottom of the Well'), + 'Bottom of the Well Center Large Chest': (0x32D30EE, None, 0x0801, 'Chest', 0x08, 'Bottom of the Well'), + 'Bottom of the Well Center Small Chest': (0x32D31AE, None, 0x504E, 'Chest', 0x08, 'Bottom of the Well'), + 'Bottom of the Well Back Left Bombable': (0x32D313E, None, 0x5C84, 'Chest', 0x08, 'Bottom of the Well'), + 'Bottom of the Well Defeat Boss': (0x32FB0AA, None, 0x1143, 'Chest', 0x08, 'Bottom of the Well'), + 'Bottom of the Well Invisible Chest': (0x32FB0BA, None, 0x6AD4, 'Chest', 0x08, 'Bottom of the Well'), + 'Bottom of the Well Underwater Front Chest': (0x32D31BE, None, 0x5CD0, 'Chest', 0x08, 'Bottom of the Well'), + 'Bottom of the Well Underwater Left Chest': (0x32D318E, None, 0x5909, 'Chest', 0x08, 'Bottom of the Well'), + 'Bottom of the Well Basement Chest': (0x32E9252, None, 0x0827, 'Chest', 0x08, 'Bottom of the Well'), + 'Bottom of the Well Locked Pits': (0x32F90AA, None, 0x552A, 'Chest', 0x08, 'Bottom of the Well'), + 'Bottom of the Well Behind Right Grate': (0x32D319E, None, 0x554C, 'Chest', 0x08, 'Bottom of the Well'), + 'Bottom of the Well Freestanding Key': (None, None, 0x01, 'Collectable', 0x08, 'Bottom of the Well'), + # Bottom of the Well MQ + 'Bottom of the Well MQ Map Chest': (0, None, 0x0823, 'Chest', 0x08, 'Bottom of the Well'), + 'Bottom of the Well MQ Lens Chest': (0, None, 0xB141, 'Chest', 0x08, 'Bottom of the Well'), + 'Bottom of the Well MQ Compass Chest': (0, None, 0x1802, 'Chest', 0x08, 'Bottom of the Well'), + 'Bottom of the Well MQ Dead Hand Freestanding Key': (None, None, 0x01, 'Collectable', 0x08, 'Bottom of the Well'), # I have absolutely no idea what these flags are + 'Bottom of the Well MQ East Inner Room Freestanding Key': (None, None, 0x02, 'Collectable', 0x08, 'Bottom of the Well'), # These are extremely likely to be wrong + + # Ice Cavern vanilla + 'Ice Cavern Map Chest': (0x2C4016A, None, 0x0820, 'Chest', 0x09, 'Ice Cavern'), + 'Ice Cavern Compass Chest': (0x2C4E236, None, 0x0801, 'Chest', 0x09, 'Ice Cavern'), + 'Ice Cavern Iron Boots Chest': (0x2C380A2, None, 0x15C2, 'Chest', 0x09, 'Ice Cavern'), + 'Ice Cavern Freestanding PoH': (None, None, 0x01, 'Collectable', 0x09, 'Ice Cavern'), + # Ice Cavern MQ + 'Ice Cavern MQ Iron Boots Chest': (0, None, 0x15C2, 'Chest', 0x09, 'Ice Cavern'), + 'Ice Cavern MQ Compass Chest': (0, None, 0x0800, 'Chest', 0x09, 'Ice Cavern'), + 'Ice Cavern MQ Map Chest': (0, None, 0xB821, 'Chest', 0x09, 'Ice Cavern'), + 'Ice Cavern MQ Freestanding PoH': (None, None, 0x01, 'Collectable', 0x09, 'Ice Cavern'), + + # Gerudo Training Grounds vanilla + 'Gerudo Training Grounds Lobby Left Chest': (0x28870CA, None, 0x8893, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Lobby Right Chest': (0x28870BA, None, 0x8947, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Stalfos Chest': (0x28970AA, None, 0x8840, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Beamos Chest': (0x28C715E, None, 0x8841, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Hidden Ceiling Chest': (0x28D010E, None, 0x584B, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Maze Path First Chest': (0x28D00CE, None, 0x5AA6, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Maze Path Second Chest': (0x28D00FE, None, 0x59CA, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Maze Path Third Chest': (0x28D00EE, None, 0x5969, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Maze Path Final Chest': (0x28D011E, None, 0x0B2C, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Maze Right Central Chest': (0x28D00BE, None, 0x5D45, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Maze Right Side Chest': (0x28D00DE, None, 0x5968, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Underwater Silver Rupee Chest': (0x28D91D6, None, 0x884D, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Hammer Room Clear Chest': (0x28B91AE, None, 0x7952, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Hammer Room Switch Chest': (0x28B919E, None, 0x5850, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Eye Statue Chest': (0x28AE09E, None, 0x8843, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Near Scarecrow Chest': (0x28D00AE, None, 0x5844, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Before Heavy Block Chest': (0x28A611E, None, 0x7971, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Heavy Block First Chest': (0x28DD0BE, None, 0x7ACF, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Heavy Block Second Chest': (0x28DD0AE, None, 0x788E, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Heavy Block Third Chest': (0x28DD08E, None, 0x6854, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Heavy Block Fourth Chest': (0x28DD09E, None, 0x5F82, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds Freestanding Key': (None, None, 0x01, 'Collectable', 0x0B, 'Gerudo Training Grounds'), + # Gerudo Training Grounds MQ + 'Gerudo Training Grounds MQ Lobby Right Chest': (0, None, 0x5D47, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds MQ Lobby Left Chest': (0, None, 0x5953, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds MQ First Iron Knuckle Chest': (0, None, 0x89A0, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds MQ Before Heavy Block Chest': (0, None, 0x7951, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds MQ Eye Statue Chest': (0, None, 0x8063, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds MQ Flame Circle Chest': (0, None, 0x884E, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds MQ Second Iron Knuckle Chest': (0, None, 0x7952, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds MQ Dinolfos Chest': (0, None, 0x8841, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds MQ Ice Arrows Chest': (0, None, 0xBB24, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds MQ Maze Right Central Chest': (0, None, 0x5885, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds MQ Maze Path First Chest': (0, None, 0x5986, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds MQ Maze Right Side Chest': (0, None, 0x5E48, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds MQ Maze Path Third Chest': (0, None, 0x5E49, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds MQ Maze Path Second Chest': (0, None, 0x59CA, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds MQ Hidden Ceiling Chest': (0, None, 0x5AAB, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds MQ Underwater Silver Rupee Chest': (0, None, 0x884D, 'Chest', 0x0B, 'Gerudo Training Grounds'), + 'Gerudo Training Grounds MQ Heavy Block Chest': (0, None, 0x7AA2, 'Chest', 0x0B, 'Gerudo Training Grounds'), + + # Ganon's Castle shared + 'Ganons Tower Boss Key Chest': (0x2F040EE, None, 0x27EB, 'Chest', 0x0A, 'my tower'), + # Ganon's Castle vanilla + 'Ganons Castle Forest Trial Chest': (0x31F106E, None, 0x7889, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle Water Trial Left Chest': (0x31D7236, None, 0x5F87, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle Water Trial Right Chest': (0x31D7226, None, 0x5906, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle Shadow Trial First Chest': (0x32350CA, None, 0x5888, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle Shadow Trial Second Chest': (0x32350BA, None, 0x36C5, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle Spirit Trial First Chest': (0x3268132, None, 0x8D72, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle Spirit Trial Second Chest': (0x3268142, None, 0x6954, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle Light Trial First Left Chest': (0x321B11E, None, 0x588C, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle Light Trial Second Left Chest': (0x321B10E, None, 0x5F8B, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle Light Trial Third Left Chest': (0x321B12E, None, 0x590D, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle Light Trial First Right Chest': (0x321B13E, None, 0x5F8E, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle Light Trial Second Right Chest': (0x321B0FE, None, 0x596A, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle Light Trial Third Right Chest': (0x321B14E, None, 0x5F8F, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle Light Trail Invisible Enemies Chest': (0x321B15E, None, 0x7850, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle Light Trial Lullaby Chest': (0x321B17E, None, 0x8851, 'Chest', 0x0D, 'my castle'), + # Ganon's Castle MQ + 'Ganons Castle MQ Water Trial Chest': (0, None, 0x59C1, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle MQ Forest Trial First Chest': (0, None, 0x8942, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle MQ Forest Trial Second Chest': (0, None, 0x8023, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle MQ Light Trial Lullaby Chest': (0, None, 0x8904, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle MQ Shadow Trial First Chest': (0, None, 0x8940, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle MQ Shadow Trial Second Chest': (0, None, 0x8845, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle MQ Spirit Trial Golden Gauntlets Chest': (0, None, 0xB6C6, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle MQ Spirit Trial Sun Back Right Chest': (0, None, 0x8907, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle MQ Spirit Trial Sun Back Left Chest': (0, None, 0x8848, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle MQ Spirit Trial Sun Front Left Chest': (0, None, 0x8909, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle MQ Spirit Trial First Chest': (0, None, 0x506A, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle MQ Spirit Trial Second Chest': (0, None, 0x6954, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle MQ Forest Trial Freestanding Key': (None, None, 0x01, 'Collectable', 0x0D, 'my castle'), # This also needs checked to see if the flag is correct + # I don't think the addresses matter for Link's Pocket anymore, but they can't be None for some reason 'Links Pocket': (0x34806FB, 0x34806FF, None, 'Boss', None, 'Link\'s Pocket'), 'Queen Gohma': (0xCA315F, 0x2079571, 0x6C, 'Boss', None, 'Deku Tree'), @@ -957,44 +1405,87 @@ def _create_region(name, type, locations=None, exits=None): 'GS Jabu Jabu Near Boss': (None, None, 0x04, 'GS Token', 0x02, 'Jabu Jabu\'s Belly'), 'GS Jabu Jabu Water Switch Room': (None, None, 0x08, 'GS Token', 0x02, 'Jabu Jabu\'s Belly'), + 'GS Jabu Jabu MQ Tailpasaran Room': (None, None, 0x04, 'GS Token', 0x02, 'Jabu Jabu\'s Belly'), + 'GS Jabu Jabu MQ Invisible Enemies Room': (None, None, 0x08, 'GS Token', 0x02, 'Jabu Jabu\'s Belly'), + 'GS Jabu Jabu MQ Boomerang Room': (None, None, 0x01, 'GS Token', 0x02, 'Jabu Jabu\'s Belly'), + 'GS Jabu Jabu MQ Near Boss': (None, None, 0x02, 'GS Token', 0x02, 'Jabu Jabu\'s Belly'), + 'GS Forest Temple Outdoor East': (None, None, 0x01, 'GS Token', 0x03, 'Forest Temple'), 'GS Forest Temple First Room': (None, None, 0x02, 'GS Token', 0x03, 'Forest Temple'), 'GS Forest Temple Outdoor West': (None, None, 0x04, 'GS Token', 0x03, 'Forest Temple'), 'GS Forest Temple Lobby': (None, None, 0x08, 'GS Token', 0x03, 'Forest Temple'), 'GS Forest Temple Basement': (None, None, 0x10, 'GS Token', 0x03, 'Forest Temple'), + 'GS Forest Temple MQ First Hallway': (None, None, 0x02, 'GS Token', 0x03, 'Forest Temple'), + 'GS Forest Temple MQ Block Push Room': (None, None, 0x10, 'GS Token', 0x03, 'Forest Temple'), + 'GS Forest Temple MQ Outdoor East': (None, None, 0x01, 'GS Token', 0x03, 'Forest Temple'), + 'GS Forest Temple MQ Outdoor West': (None, None, 0x04, 'GS Token', 0x03, 'Forest Temple'), + 'GS Forest Temple MQ Well': (None, None, 0x08, 'GS Token', 0x03, 'Forest Temple'), + 'GS Fire Temple Song of Time Room': (None, None, 0x01, 'GS Token', 0x04, 'Fire Temple'), 'GS Fire Temple Basement': (None, None, 0x02, 'GS Token', 0x04, 'Fire Temple'), 'GS Fire Temple Unmarked Bomb Wall': (None, None, 0x04, 'GS Token', 0x04, 'Fire Temple'), 'GS Fire Temple East Tower Top': (None, None, 0x08, 'GS Token', 0x04, 'Fire Temple'), 'GS Fire Temple East Tower Climb': (None, None, 0x10, 'GS Token', 0x04, 'Fire Temple'), + 'GS Fire Temple MQ Above Fire Wall Maze': (None, None, 0x02, 'GS Token', 0x04, 'Fire Temple'), + 'GS Fire Temple MQ Fire Wall Maze Center': (None, None, 0x08, 'GS Token', 0x04, 'Fire Temple'), + 'GS Fire Temple MQ Big Lava Room': (None, None, 0x01, 'GS Token', 0x04, 'Fire Temple'), + 'GS Fire Temple MQ Fire Wall Maze Side Room': (None, None, 0x10, 'GS Token', 0x04, 'Fire Temple'), + 'GS Fire Temple MQ East Tower Top': (None, None, 0x04, 'GS Token', 0x04, 'Fire Temple'), + 'GS Water Temple South Basement': (None, None, 0x01, 'GS Token', 0x05, 'Water Temple'), 'GS Water Temple Falling Platform Room': (None, None, 0x02, 'GS Token', 0x05, 'Water Temple'), 'GS Water Temple Central Room': (None, None, 0x04, 'GS Token', 0x05, 'Water Temple'), 'GS Water Temple Near Boss Key Chest': (None, None, 0x08, 'GS Token', 0x05, 'Water Temple'), 'GS Water Temple Serpent River': (None, None, 0x10, 'GS Token', 0x05, 'Water Temple'), + 'GS Water Temple MQ Before Upper Water Switch': (None, None, 0x04, 'GS Token', 0x05, 'Water Temple'), + 'GS Water Temple MQ North Basement': (None, None, 0x08, 'GS Token', 0x05, 'Water Temple'), + 'GS Water Temple MQ Lizalfos Hallway': (None, None, 0x01, 'GS Token', 0x05, 'Water Temple'), + 'GS Water Temple MQ Serpent River': (None, None, 0x02, 'GS Token', 0x05, 'Water Temple'), + 'GS Water Temple MQ South Basement': (None, None, 0x10, 'GS Token', 0x05, 'Water Temple'), + 'GS Spirit Temple Hall to West Iron Knuckle': (None, None, 0x01, 'GS Token', 0x06, 'Spirit Temple'), 'GS Spirit Temple Boulder Room': (None, None, 0x02, 'GS Token', 0x06, 'Spirit Temple'), 'GS Spirit Temple Lobby': (None, None, 0x04, 'GS Token', 0x06, 'Spirit Temple'), 'GS Spirit Temple Bomb for Light Room': (None, None, 0x08, 'GS Token', 0x06, 'Spirit Temple'), 'GS Spirit Temple Metal Fence': (None, None, 0x10, 'GS Token', 0x06, 'Spirit Temple'), + 'GS Spirit Temple MQ Lower Adult Right': (None, None, 0x08, 'GS Token', 0x06, 'Spirit Temple'), + 'GS Spirit Temple MQ Lower Adult Left': (None, None, 0x02, 'GS Token', 0x06, 'Spirit Temple'), + 'GS Spirit Temple MQ Iron Knuckle West': (None, None, 0x04, 'GS Token', 0x06, 'Spirit Temple'), + 'GS Spirit Temple MQ Iron Knuckle North': (None, None, 0x10, 'GS Token', 0x06, 'Spirit Temple'), + 'GS Spirit Temple MQ Sun Block Room': (None, None, 0x01, 'GS Token', 0x06, 'Spirit Temple'), + 'GS Shadow Temple Single Giant Pot': (None, None, 0x01, 'GS Token', 0x07, 'Shadow Temple'), 'GS Shadow Temple Crusher Room': (None, None, 0x02, 'GS Token', 0x07, 'Shadow Temple'), 'GS Shadow Temple Tripple Giant Pot': (None, None, 0x04, 'GS Token', 0x07, 'Shadow Temple'), 'GS Shadow Temple Like Like Room': (None, None, 0x08, 'GS Token', 0x07, 'Shadow Temple'), 'GS Shadow Temple Near Ship': (None, None, 0x10, 'GS Token', 0x07, 'Shadow Temple'), + 'GS Shadow Temple MQ Crusher Room': (None, None, 0x02, 'GS Token', 0x07, 'Shadow Temple'), + 'GS Shadow Temple MQ Wind Hint Room': (None, None, 0x01, 'GS Token', 0x07, 'Shadow Temple'), + 'GS Shadow Temple MQ After Wind': (None, None, 0x08, 'GS Token', 0x07, 'Shadow Temple'), + 'GS Shadow Temple MQ After Ship': (None, None, 0x10, 'GS Token', 0x07, 'Shadow Temple'), + 'GS Shadow Temple MQ Near Boss': (None, None, 0x04, 'GS Token', 0x07, 'Shadow Temple'), + 'GS Well Like Like Cage': (None, None, 0x01, 'GS Token', 0x08, 'Bottom of the Well'), 'GS Well East Inner Room': (None, None, 0x02, 'GS Token', 0x08, 'Bottom of the Well'), 'GS Well West Inner Room': (None, None, 0x04, 'GS Token', 0x08, 'Bottom of the Well'), + 'GS Well MQ Basement': (None, None, 0x01, 'GS Token', 0x08, 'Bottom of the Well'), + 'GS Well MQ Coffin Room': (None, None, 0x04, 'GS Token', 0x08, 'Bottom of the Well'), + 'GS Well MQ West Inner Room': (None, None, 0x02, 'GS Token', 0x08, 'Bottom of the Well'), + 'GS Ice Cavern Push Block Room': (None, None, 0x01, 'GS Token', 0x09, 'Ice Cavern'), 'GS Ice Cavern Spinning Scythe Room': (None, None, 0x02, 'GS Token', 0x09, 'Ice Cavern'), 'GS Ice Cavern Heart Piece Room': (None, None, 0x04, 'GS Token', 0x09, 'Ice Cavern'), + 'GS Ice Cavern MQ Scarecrow': (None, None, 0x01, 'GS Token', 0x09, 'Ice Cavern'), + 'GS Ice Cavern MQ Ice Block': (None, None, 0x04, 'GS Token', 0x09, 'Ice Cavern'), + 'GS Ice Cavern MQ Red Ice': (None, None, 0x02, 'GS Token', 0x09, 'Ice Cavern'), + 'GS Hyrule Field Near Gerudo Valley': (None, None, 0x01, 'GS Token', 0x0A, 'Hyrule Field'), 'GS Hyrule Field near Kakariko': (None, None, 0x02, 'GS Token', 0x0A, 'Hyrule Field'), diff --git a/Rules.py b/Rules.py index c1318202d..d51893604 100644 --- a/Rules.py +++ b/Rules.py @@ -1,307 +1,337 @@ -import collections -import logging - - -def set_rules(world): - global_rules(world) - - if world.bridge == 'medallions': - # require all medallions to form the bridge - set_rule(world.get_entrance('Rainbow Bridge'), lambda state: state.has('Forest Medallion') and state.has('Fire Medallion') and state.has('Water Medallion') and state.has('Shadow Medallion') and state.has('Spirit Medallion') and state.has('Light Medallion')) - elif world.bridge == 'vanilla': - # require only what vanilla did to form the bridge - set_rule(world.get_entrance('Rainbow Bridge'), lambda state: state.has('Light Arrows') and state.has('Shadow Medallion') and state.has('Spirit Medallion')) - elif world.bridge == 'dungeons': - # require all medallions and stones to form the bridge - set_rule(world.get_entrance('Rainbow Bridge'), lambda state: state.has('Forest Medallion') and state.has('Fire Medallion') and state.has('Water Medallion') and state.has('Shadow Medallion') and state.has('Spirit Medallion') and state.has('Light Medallion') and state.has('Kokiri Emerald') and state.has('Goron Ruby') and state.has('Zora Sapphire')) - - -def set_rule(spot, rule): - spot.access_rule = rule - -def set_always_allow(spot, rule): - spot.always_allow = rule - - -def add_rule(spot, rule, combine='and'): - old_rule = spot.access_rule - if combine == 'or': - spot.access_rule = lambda state: rule(state) or old_rule(state) - else: - spot.access_rule = lambda state: rule(state) and old_rule(state) - -def add_item_rule(spot, rule, combine='and'): - old_rule = spot.item_rule - if combine == 'or': - spot.item_rule = lambda item: rule(item) or old_rule(item) - else: - spot.item_rule = lambda item: rule(item) and old_rule(item) - -def forbid_item(location, item): - old_rule = location.item_rule - location.item_rule = lambda i: i.name != item and old_rule(i) - - -def item_in_locations(state, item, locations): - for location in locations: - if item_name(state, location) == item: - return True - return False - -def item_name(state, location): - location = state.world.get_location(location) - if location.item is None: - return None - return location.item.name - - -def global_rules(world): - - expected_skulltulas = world.logic_skulltulas - - # ganon can only carry triforce - world.get_location('Ganon').item_rule = lambda item: item.name == 'Triforce' - - # these are default save&quit points and always accessible - world.get_region('Links House').can_reach = lambda state: True - - # dungeon requirements (including gold skulltulas) - - if world.dungeon_mq['DT']: - dung_rules_dtmq(world) - else: - dung_rules_dt0(world) - if world.dungeon_mq['DC']: - dung_rules_dcmq(world) - else: - dung_rules_dc0(world) - dung_rules_jb0(world) - dung_rules_fot0(world) - dung_rules_fit0(world) - dung_rules_wt0(world) - dung_rules_spt0(world) - dung_rules_sht0(world) - dung_rules_bw0(world) - dung_rules_ic0(world) - dung_rules_gtg0(world) - dung_rules_gc0(world) - - # overworld requirements - set_rule(world.get_entrance('Deku Tree'), lambda state: state.has('Kokiri Sword') or world.open_forest) - set_rule(world.get_entrance('Lost Woods Bridge'), lambda state: state.can_leave_forest()) - set_rule(world.get_location('Skull Kid'), lambda state: state.can_play('Sarias Song')) - set_rule(world.get_location('Ocarina Memory Game'), lambda state: (not world.logic_no_memory_game) and state.has_ocarina()) - set_rule(world.get_location('Target in Woods'), lambda state: state.has('Slingshot')) - set_rule(world.get_location('Deku Theater Skull Mask'), lambda state: (not world.logic_no_trade_skull_mask) and state.has('Zeldas Letter')) - set_rule(world.get_location('Deku Theater Mask of Truth'), lambda state: (not world.logic_no_trade_mask_of_truth) and (state.has('Zeldas Letter') and state.can_play('Sarias Song') and state.has('Kokiri Emerald') and state.has('Goron Ruby') and state.has('Zora Sapphire') and state.guarantee_hint())) #Must befriend Skull Kid to sell Skull Mask, all stones to spawn running man. - set_rule(world.get_location('Anju as Adult'), lambda state: state.is_adult()) - set_rule(world.get_location('Man on Roof'), lambda state: world.logic_man_on_roof or (state.has('Progressive Hookshot') and state.is_adult())) - set_rule(world.get_location('10 Gold Skulltulla Reward'), lambda state: (expected_skulltulas >= 10) and state.has('Gold Skulltulla Token', 10)) - set_rule(world.get_location('20 Gold Skulltulla Reward'), lambda state: (expected_skulltulas >= 20) and state.has('Gold Skulltulla Token', 20)) - set_rule(world.get_location('30 Gold Skulltulla Reward'), lambda state: (expected_skulltulas >= 30) and state.has('Gold Skulltulla Token', 30) and state.guarantee_hint()) - set_rule(world.get_location('40 Gold Skulltulla Reward'), lambda state: (expected_skulltulas >= 40) and state.has('Gold Skulltulla Token', 40) and state.guarantee_hint()) - set_rule(world.get_location('50 Gold Skulltulla Reward'), lambda state: (expected_skulltulas >= 50) and state.has('Gold Skulltulla Token', 50) and state.guarantee_hint()) - set_rule(world.get_location('Heart Piece Grave Chest'), lambda state: state.can_play('Suns Song')) - set_rule(world.get_entrance('Composer Grave'), lambda state: state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('Composer Grave Chest'), lambda state: state.has_fire_source()) - set_rule(world.get_entrance('Bottom of the Well'), lambda state: state.can_play('Song of Storms')) - set_rule(world.get_entrance('Death Mountain Entrance'), lambda state: state.has('Zeldas Letter') or state.is_adult() or world.open_kakariko) - set_rule(world.get_entrance('Dodongos Cavern Rocks'), lambda state: state.has_explosives() or state.has('Progressive Strength Upgrade') or state.is_adult()) - set_rule(world.get_location('DM Trail Freestanding PoH'), lambda state: world.open_kakariko or (world.difficulty != 'ohko') or state.has('Zeldas Letter') or state.can_blast_or_smash() or ((state.has('Dins Fire') or state.has('Nayrus Love')) and state.has('Magic Meter')) or state.has('Bow') or state.has('Progressive Strength Upgrade') or state.has_bottle() or state.has('Hover Boots')) - set_rule(world.get_location('Death Mountain Bombable Chest'), lambda state: state.can_blast_or_smash()) - set_rule(world.get_location('Biggoron'), lambda state: (not world.logic_no_trade_biggoron) and (state.has('Progressive Strength Upgrade') or state.can_blast_or_smash() or state.has('Bow')) and state.is_adult() and state.can_finish_adult_trades() and state.guarantee_hint()) - set_rule(world.get_location('Goron City Leftmost Maze Chest'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade', 2) or state.has('Hammer'))) - set_rule(world.get_location('Goron City Left Maze Chest'), lambda state: state.can_blast_or_smash() or (state.has('Progressive Strength Upgrade', 2) and state.is_adult())) - set_rule(world.get_location('Goron City Right Maze Chest'), lambda state: state.can_blast_or_smash() or (state.has('Progressive Strength Upgrade', 2) and state.is_adult())) - set_rule(world.get_location('Rolling Goron as Child'), lambda state: state.has('Bomb Bag')) - set_rule(world.get_location('Goron City Pot Freestanding PoH'), lambda state: (state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) and (state.can_play('Zeldas Lullaby') or (state.has('Dins Fire') and state.has('Magic Meter')))) - set_rule(world.get_entrance('Darunias Chamber'), lambda state: state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('Darunias Joy'), lambda state: state.can_play('Sarias Song')) - set_rule(world.get_entrance('Goron City from Woods'), lambda state: (state.can_blast_or_smash() or (state.has('Dins Fire') and state.has('Magic Meter')) or ((state.has('Bow') or state.has('Progressive Strength Upgrade')) and state.is_adult())) and state.can_leave_forest()) - set_rule(world.get_location('King Dodongo'), lambda state: state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) - set_rule(world.get_location('King Dodongo Heart'), lambda state: state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) - set_rule(world.get_location('Song from Saria'), lambda state: state.has('Zeldas Letter')) - set_rule(world.get_entrance('Mountain Summit Fairy'), lambda state: state.can_blast_or_smash()) - set_rule(world.get_location('Crater Fairy Reward'), lambda state: state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('Mountain Summit Fairy Reward'), lambda state: state.can_play('Zeldas Lullaby')) - set_rule(world.get_entrance('Mountain Crater Entrance'), lambda state: state.can_blast_or_smash()) - set_rule(world.get_entrance('Hyrule Castle Fairy'), lambda state: state.has_explosives()) - set_rule(world.get_location('Hyrule Castle Fairy Reward'), lambda state: state.can_play('Zeldas Lullaby')) - set_rule(world.get_entrance('Hyrule Castle Garden'), lambda state: state.has('Weird Egg') or (not world.shuffle_weird_egg)) - set_rule(world.get_entrance('Ganons Castle Grounds'), lambda state: state.is_adult()) - set_rule(world.get_entrance('Ganons Castle Fairy'), lambda state: state.has('Progressive Strength Upgrade', 3)) - set_rule(world.get_location('Ganons Castle Fairy Reward'), lambda state: state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('Bombchu Bowling Bomb Bag'), lambda state: state.has_bombchus()) - set_rule(world.get_location('Bombchu Bowling Piece of Heart'), lambda state: state.has_bombchus()) - set_rule(world.get_location('Adult Shooting Gallery'), lambda state: state.has('Bow') and state.is_adult()) - set_rule(world.get_location('10 Big Poes'), lambda state: (not world.logic_no_big_poes) and (state.has('Bow') and state.has('Epona') and state.has_bottle() and state.is_adult() and state.guarantee_hint())) - set_rule(world.get_location('Treasure Chest Game'), lambda state: state.has('Lens of Truth') and state.has('Magic Meter')) - set_rule(world.get_entrance('Lost Woods Dive Warp'), lambda state: state.can_dive() and state.can_leave_forest()) - set_rule(world.get_entrance('Zora River Dive Warp'), lambda state: state.can_dive()) - set_rule(world.get_entrance('Lake Hylia Dive Warp'), lambda state: state.can_dive()) - set_rule(world.get_entrance('Zoras Domain Dive Warp'), lambda state: state.can_dive()) - set_rule(world.get_entrance('Zora River Waterfall'), lambda state: state.can_play('Zeldas Lullaby') or world.logic_zora_with_cucco) - set_rule(world.get_entrance('Zora River Rocks'), lambda state: state.has_explosives()) - set_rule(world.get_location('Zora River Lower Freestanding PoH'), lambda state: state.has_explosives() or state.has('Progressive Scale') or (state.has('Hover Boots') and state.is_adult())) - set_rule(world.get_location('Zora River Upper Freestanding PoH'), lambda state: state.has_explosives() or state.has('Progressive Scale') or (state.has('Hover Boots') and state.is_adult())) - set_rule(world.get_location('Frog Ocarina Game'), lambda state: state.can_play('Zeldas Lullaby') and state.can_play('Sarias Song') and state.can_play('Suns Song') and state.can_play('Eponas Song') and state.can_play('Song of Time') and state.can_play('Song of Storms')) - set_rule(world.get_location('Frogs in the Rain'), lambda state: state.can_play('Song of Storms')) - set_rule(world.get_location('Underwater Bottle'), lambda state: state.can_dive()) - set_rule(world.get_location('King Zora Moves'), lambda state: state.has('Bottle with Letter')) - set_rule(world.get_entrance('Behind King Zora'), lambda state: state.has('Bottle with Letter')) - set_rule(world.get_entrance('Zora River Adult'), lambda state: state.is_adult()) - set_rule(world.get_entrance('Zoras Domain Adult Access'), lambda state: state.can_play('Zeldas Lullaby') or (state.has('Hover Boots') and world.logic_zora_with_hovers)) - set_rule(world.get_entrance('Zoras Fountain Adult Access'), lambda state: state.can_reach('Zoras Fountain')) - set_rule(world.get_entrance('Jabu Jabus Belly'), lambda state: state.has_bottle()) - set_rule(world.get_entrance('Zoras Fountain Fairy'), lambda state: state.has_explosives()) - set_rule(world.get_location('Zoras Fountain Fairy Reward'), lambda state: state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('Ocarina of Time'), lambda state: state.has('Kokiri Emerald') and state.has('Goron Ruby') and state.has('Zora Sapphire') and state.guarantee_hint()) - set_rule(world.get_location('Song from Ocarina of Time'), lambda state: state.has('Kokiri Emerald') and state.has('Goron Ruby') and state.has('Zora Sapphire') and state.guarantee_hint()) - set_rule(world.get_entrance('Door of Time'), lambda state: state.can_play('Song of Time') or world.open_door_of_time) - set_rule(world.get_location('Talons Chickens'), lambda state: state.has('Zeldas Letter')) - set_rule(world.get_location('Song from Malon'), lambda state: state.has('Zeldas Letter') and state.has_ocarina()) - set_rule(world.get_location('Epona'), lambda state: state.can_play('Eponas Song') and state.is_adult()) - set_rule(world.get_entrance('Adult Forest Warp Pad'), lambda state: state.can_play('Minuet of Forest') and state.is_adult()) - set_rule(world.get_entrance('Child Forest Warp Pad'), lambda state: state.can_play('Minuet of Forest')) - set_rule(world.get_entrance('Adult Meadow Access'), lambda state: state.can_play('Sarias Song') and state.is_adult()) - set_rule(world.get_entrance('Forest Temple Entrance'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_entrance('Dampes Grave'), lambda state: state.is_adult()) - set_rule(world.get_location('Dampe Race Freestanding PoH'), lambda state: not world.logic_no_second_dampe_race) - set_rule(world.get_location('Graveyard Freestanding PoH'), lambda state: state.is_adult() and (state.has('Magic Bean') or state.has('Progressive Hookshot', 2))) - set_rule(world.get_location('Song at Windmill'), lambda state: state.is_adult() and state.has_ocarina()) - set_rule(world.get_location('Windmill Freestanding PoH'), lambda state: (state.is_adult() and ( world.logic_windmill_hp or state.can_play('Song of Time') )) or state.has('Boomerang')) - set_rule(world.get_entrance('Temple Warp Pad'), lambda state: state.can_play('Prelude of Light') and state.can_leave_forest()) - set_rule(world.get_location('Sheik at Temple'), lambda state: state.has('Forest Medallion') and state.is_adult()) - set_rule(world.get_location('Diving in the Lab'), lambda state: state.has('Progressive Scale', 2)) - set_rule(world.get_location('Child Fishing'), lambda state: (not world.logic_no_child_fishing) and state.has('Kokiri Sword')) - set_rule(world.get_location('Adult Fishing'), lambda state: (not world.logic_no_adult_fishing) and state.is_adult() and ((state.has('Progressive Hookshot') and state.has_ocarina()) or state.has('Magic Bean') or state.can_reach(world.get_location('Morpha')))) - set_rule(world.get_location('Lake Hylia Freestanding PoH'), lambda state: state.is_adult() and ((state.has('Progressive Hookshot') and state.has_ocarina()) or state.has('Magic Bean'))) - set_rule(world.get_location('Lake Hylia Sun'), lambda state: ((state.has('Progressive Hookshot', 2) and state.has_ocarina()) or state.can_reach(world.get_location('Morpha'))) and state.has('Bow') and state.is_adult()) - set_rule(world.get_entrance('Crater Hover Boots'), lambda state: state.is_adult() and state.has('Hover Boots')) - set_rule(world.get_entrance('Crater Ascent'), lambda state: state.is_adult()) - set_rule(world.get_entrance('Crater Scarecrow'), lambda state: state.is_adult() and state.has_ocarina() and state.has('Progressive Hookshot', 2)) - set_rule(world.get_entrance('Crater Bridge'), lambda state: state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot'))) - set_rule(world.get_entrance('Crater Bridge Reverse'), lambda state: state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot') or state.has('Magic Bean'))) - set_rule(world.get_entrance('Crater Warp Pad'), lambda state: state.can_play('Bolero of Fire') and state.can_leave_forest()) - set_rule(world.get_entrance('Crater Fairy'), lambda state: state.is_adult() and state.has('Hammer')) - set_rule(world.get_location('DM Crater Volcano Freestanding PoH'), lambda state: state.is_adult() and ( (state.has('Magic Bean') and state.can_play('Bolero of Fire')) or (world.logic_crater_bean_hp_with_hovers and state.has('Hover Boots')) ) ) - set_rule(world.get_entrance('Fire Temple Entrance'), lambda state: state.is_adult() and (world.logic_fewer_tunic_requirements or state.has_GoronTunic())) - set_rule(world.get_location('Sheik in Crater'), lambda state: state.is_adult()) - set_rule(world.get_location('Link the Goron'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade') or state.has_explosives() or state.has('Bow'))) - set_rule(world.get_entrance('Crater Access'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade') or state.has_explosives() or state.has('Bow'))) - set_rule(world.get_entrance('Lake Warp Pad'), lambda state: state.can_play('Serenade of Water') and state.can_leave_forest()) - set_rule(world.get_location('King Zora Thawed'), lambda state: state.has_bottle() and (state.can_reach('Ice Cavern') or state.can_reach('Ganons Castle Water Trial') or state.has('Progressive Wallet', 2))) - set_rule(world.get_location('Zoras Fountain Bottom Freestanding PoH'), lambda state: state.has('Iron Boots') and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic())) - set_rule(world.get_entrance('Water Temple Entrance'), lambda state: state.is_adult() and state.has('Iron Boots') and state.has('Progressive Hookshot') and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic())) - set_rule(world.get_location('Sheik in Kakariko'), lambda state: state.is_adult() and state.has('Forest Medallion') and state.has('Fire Medallion') and state.has('Water Medallion')) - set_rule(world.get_entrance('Graveyard Warp Pad'), lambda state: state.can_play('Nocturne of Shadow') and state.can_leave_forest()) - set_rule(world.get_entrance('Shadow Temple Entrance'), lambda state: state.has('Dins Fire') and state.has('Magic Meter') and state.can_see_with_lens() and state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot'))) - set_rule(world.get_entrance('Bridge Crossing'), lambda state: (state.has('Epona') or state.has('Progressive Hookshot', 2) or world.gerudo_fortress == 'open') and state.is_adult()) - set_rule(world.get_location('Gerudo Valley Hammer Rocks Chest'), lambda state: state.has('Hammer') and state.is_adult()) - set_rule(world.get_location('Gerudo Fortress North F2 Carpenter'), lambda state: (state.has('Bow') or state.has('Progressive Hookshot') or state.has('Hover Boots')) and state.is_adult()) - set_rule(world.get_location('Gerudo Fortress Carpenter Rescue'), lambda state: ( (world.gerudo_fortress == 'normal' and state.has('Small Key (Gerudo Fortress)', 4) and (state.has('Bow') or state.has('Progressive Hookshot') or state.has('Hover Boots'))) or (world.gerudo_fortress == 'fast' and state.has('Small Key (Gerudo Fortress)', 1)) or world.gerudo_fortress == 'open') and state.is_adult()) - set_rule(world.get_location('Gerudo Fortress Membership Card'), lambda state: ( (world.gerudo_fortress == 'normal' and state.has('Small Key (Gerudo Fortress)', 4) and (state.has('Bow') or state.has('Progressive Hookshot') or state.has('Hover Boots'))) or (world.gerudo_fortress == 'fast' and state.has('Small Key (Gerudo Fortress)', 1)) or world.gerudo_fortress == 'open') and state.is_adult()) - set_rule(world.get_entrance('Gerudo Training Grounds Entrance'), lambda state: state.has('Carpenter Rescue') and state.has('Gerudo Membership Card') and state.is_adult()) - set_rule(world.get_entrance('Haunted Wasteland Entrance'), lambda state: state.has('Carpenter Rescue') and state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot', 2))) - set_rule(world.get_entrance('Haunted Wasteland Crossing'), lambda state: (world.logic_lens == 'chest') or (state.has('Lens of Truth') and state.has('Magic Meter'))) - set_rule(world.get_entrance('Colossus Warp Pad'), lambda state: state.can_play('Requiem of Spirit') and state.can_leave_forest()) - set_rule(world.get_entrance('Colossus Fairy'), lambda state: state.has_explosives()) - set_rule(world.get_location('Colossus Freestanding PoH'), lambda state: state.can_play('Requiem of Spirit') and state.has('Magic Bean') and state.is_adult()) - set_rule(world.get_location('Desert Colossus Fairy Reward'), lambda state: state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('Gerudo Fortress Rooftop Chest'), lambda state: (state.has('Hover Boots') or (state.has('Progressive Hookshot') and state.has_ocarina()) or (state.has('Progressive Hookshot', 2))) and state.is_adult()) - set_rule(world.get_location('Horseback Archery 1000 Points'), lambda state: state.has('Carpenter Rescue') and state.has('Epona') and state.has('Bow') and state.is_adult()) - set_rule(world.get_location('Horseback Archery 1500 Points'), lambda state: (not world.logic_no_1500_archery) and (state.has('Carpenter Rescue') and state.has('Epona') and state.has('Bow') and state.is_adult())) - set_rule(world.get_location('Haunted Wasteland Structure Chest'), lambda state: state.has_fire_source()) - set_rule(world.get_location('Zelda'), lambda state: state.has('Shadow Medallion') and state.has('Spirit Medallion') and state.is_adult()) - set_rule(world.get_location('Ganon'), lambda state: (state.has('Boss Key (Ganons Castle)') or world.unlocked_ganondorf) and (state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows')) ) - set_rule(world.get_entrance('Kokiri Forest Storms Grotto'), lambda state: state.can_play('Song of Storms')) - set_rule(world.get_entrance('Lost Woods Generic Grotto'), lambda state: state.has('Bomb Bag') or (state.can_blast_or_smash() and state.can_leave_forest())) - set_rule(world.get_entrance('Lost Woods Sales Grotto'), lambda state: (state.has('Bomb Bag') or (state.has_bombchus() and state.can_leave_forest())) or (state.has('Hammer') and state.is_adult() and (state.can_play('Minuet of Forest') or state.can_play('Sarias Song')))) - set_rule(world.get_entrance('Front of Meadow Grotto'), lambda state: (state.has('Bomb Bag') or (state.has_bombchus() and state.can_leave_forest())) or (state.has('Hammer') and state.is_adult() and (state.can_play('Minuet of Forest') or state.can_play('Sarias Song')))) - set_rule(world.get_entrance('Remote Southern Grotto'), lambda state: state.can_blast_or_smash()) - set_rule(world.get_entrance('Field Near Lake Inside Fence Grotto'), lambda state: state.can_blast_or_smash()) - set_rule(world.get_entrance('Field Valley Grotto'), lambda state: state.can_blast_or_smash()) - set_rule(world.get_entrance('Field West Castle Town Grotto'), lambda state: state.can_blast_or_smash()) - set_rule(world.get_entrance('Field Far West Castle Town Grotto'), lambda state: state.can_blast_or_smash()) - set_rule(world.get_entrance('Field Kakariko Grotto'), lambda state: state.can_blast_or_smash()) - set_rule(world.get_entrance('Field North Lon Lon Grotto'), lambda state: state.can_blast_or_smash()) - set_rule(world.get_entrance('Castle Storms Grotto'), lambda state: state.can_play('Song of Storms')) - set_rule(world.get_entrance('Kakariko Bombable Grotto'), lambda state: state.can_blast_or_smash()) - set_rule(world.get_entrance('Mountain Bombable Grotto'), lambda state: state.can_blast_or_smash()) - set_rule(world.get_entrance('Mountain Storms Grotto'), lambda state: state.can_play('Song of Storms')) - set_rule(world.get_entrance('Top of Crater Grotto'), lambda state: state.can_blast_or_smash()) - set_rule(world.get_entrance('Zora River Plateau Open Grotto'), lambda state: state.has_explosives() or state.has('Progressive Scale') or state.is_adult()) - set_rule(world.get_entrance('Zora River Plateau Bombable Grotto'), lambda state: state.can_blast_or_smash()) - set_rule(world.get_location('Tektite Grotto Freestanding PoH'), lambda state: state.has('Progressive Scale', 2) or (state.has('Iron Boots') and state.is_adult())) - set_rule(world.get_location('GS Kokiri Know It All House'), lambda state: state.nighttime() and state.can_leave_forest()) - set_rule(world.get_location('GS Kokiri Bean Patch'), lambda state: state.has_bottle()) - set_rule(world.get_location('GS Kokiri House of Twins'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.nighttime()) - set_rule(world.get_location('GS Lost Woods Bean Patch Near Bridge'), lambda state: state.has_bottle()) - set_rule(world.get_location('GS Lost Woods Bean Patch Near Stage'), lambda state: state.has_bottle()) - set_rule(world.get_location('GS Lost Woods Above Stage'), lambda state: state.has('Magic Bean') and state.nighttime()) - set_rule(world.get_location('GS Sacred Forest Meadow'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.nighttime()) - set_rule(world.get_location('GS Hyrule Field near Kakariko'), lambda state: (state.has('Boomerang') and state.has_explosives()) or (state.has('Progressive Hookshot') and state.is_adult())) - set_rule(world.get_location('GS Hyrule Field Near Gerudo Valley'), lambda state: (state.has('Hammer') and state.has_fire_source() and state.has('Progressive Hookshot') and state.is_adult()) or (state.has('Boomerang') and state.has_explosives() and state.has('Dins Fire') and state.has('Magic Meter'))) - set_rule(world.get_location('GS Hyrule Castle Grotto'), lambda state: state.has('Boomerang') and state.has_explosives()) - set_rule(world.get_location('GS Lon Lon Ranch Rain Shed'), lambda state: state.nighttime()) - set_rule(world.get_location('GS Lon Lon Ranch House Window'), lambda state: state.has('Boomerang') and state.nighttime()) - set_rule(world.get_location('GS Lon Lon Ranch Back Wall'), lambda state: state.has('Boomerang') and state.nighttime()) - set_rule(world.get_location('GS Kakariko House Under Construction'), lambda state: state.nighttime()) - set_rule(world.get_location('GS Kakariko Skulltula House'), lambda state: state.nighttime()) - set_rule(world.get_location('GS Kakariko Guard\'s House'), lambda state: state.nighttime()) - set_rule(world.get_location('GS Kakariko Tree'), lambda state: state.nighttime()) - set_rule(world.get_location('GS Kakariko Watchtower'), lambda state: (state.has('Slingshot') or state.has_bombchus()) and state.nighttime()) - set_rule(world.get_location('GS Kakariko Above Impa\'s House'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.nighttime()) - set_rule(world.get_location('GS Graveyard Wall'), lambda state: state.has('Boomerang') and state.nighttime()) - set_rule(world.get_location('GS Graveyard Bean Patch'), lambda state: state.has_bottle()) - set_rule(world.get_location('GS Mountain Trail Bean Patch'), lambda state: state.has_bottle() and (state.has_explosives() or state.has('Progressive Strength Upgrade'))) - set_rule(world.get_location('GS Mountain Trail Bomb Alcove'), lambda state: state.can_blast_or_smash()) - set_rule(world.get_location('GS Mountain Trail Path to Crater'), lambda state: state.has('Hammer') and state.is_adult() and state.nighttime()) - set_rule(world.get_location('GS Mountain Trail Above Dodongo\'s Cavern'), lambda state: state.has('Hammer') and state.is_adult() and state.nighttime()) - set_rule(world.get_location('GS Goron City Boulder Maze'), lambda state: state.has_explosives()) - set_rule(world.get_location('GS Goron City Center Platform'), lambda state: state.is_adult()) - set_rule(world.get_location('GS Mountain Crater Bean Patch'), lambda state: state.can_play('Bolero of Fire') and state.has_bottle()) - set_rule(world.get_location('GS Zora River Ladder'), lambda state: state.nighttime()) - set_rule(world.get_location('GS Zora River Near Raised Grottos'), lambda state: state.has('Progressive Hookshot') and state.nighttime()) - set_rule(world.get_location('GS Zora River Above Bridge'), lambda state: state.has('Progressive Hookshot') and state.nighttime()) - set_rule(world.get_location('GS Zora\'s Domain Frozen Waterfall'), lambda state: state.nighttime() and (state.has('Progressive Hookshot') or state.has('Bow') or state.has('Magic Meter'))) - set_rule(world.get_location('GS Zora\'s Fountain Above the Log'), lambda state: state.has('Boomerang') and state.nighttime()) - set_rule(world.get_location('GS Zora\'s Fountain Hidden Cave'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.can_blast_or_smash() and state.has('Progressive Hookshot') and state.nighttime()) -# Jabu Jabu GS need no reqs becuase the access reqs for their zones cover them. - set_rule(world.get_location('GS Lake Hylia Bean Patch'), lambda state: state.has_bottle()) - set_rule(world.get_location('GS Lake Hylia Lab Wall'), lambda state: state.has('Boomerang') and state.nighttime()) - set_rule(world.get_location('GS Lake Hylia Small Island'), lambda state: state.nighttime()) - set_rule(world.get_location('GS Lake Hylia Giant Tree'), lambda state: state.is_adult() and state.has('Progressive Hookshot', 2)) - set_rule(world.get_location('GS Lab Underwater Crate'), lambda state: state.is_adult() and state.has('Iron Boots') and state.has('Progressive Hookshot')) - set_rule(world.get_location('GS Gerudo Valley Small Bridge'), lambda state: state.has('Boomerang') and state.nighttime()) - set_rule(world.get_location('GS Gerudo Valley Bean Patch'), lambda state: state.has_bottle()) - set_rule(world.get_location('GS Gerudo Valley Behind Tent'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.nighttime()) - set_rule(world.get_location('GS Gerudo Valley Pillar'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.nighttime()) - set_rule(world.get_location('GS Gerudo Fortress Archery Range'), lambda state: state.has('Progressive Hookshot') and state.has('Carpenter Rescue') and state.is_adult() and state.nighttime()) - set_rule(world.get_location('GS Gerudo Fortress Top Floor'), lambda state: state.nighttime()) - set_rule(world.get_location('GS Wasteland Ruins'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('GS Desert Colossus Bean Patch'), lambda state: state.has_bottle() and state.can_play('Requiem of Spirit')) - set_rule(world.get_location('GS Desert Colossus Tree'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.nighttime()) - set_rule(world.get_location('GS Desert Colossus Hill'), lambda state: ((state.has('Magic Bean') and state.can_play('Requiem of Spirit')) or state.has('Progressive Hookshot', 2)) and state.is_adult() and state.nighttime()) - - for location in world.get_locations(): - if location.type != 'Chest': - forbid_item(location, 'Ice Trap') - add_item_rule(location, lambda i: not (i.type == 'Song' and not i.world.shuffle_song_items and i.world.id != location.world.id)) - - # Biggoron Sword at bombchu bowling seems to lead to a soft lock. - # Unsure what causes this, but I'm leaving this to original devs. - # For now just avoiding this combination, since BigSword is not that important. - forbid_item(world.get_location('Bombchu Bowling Bomb Bag'), 'Biggoron Sword') - forbid_item(world.get_location('Bombchu Bowling Piece of Heart'), 'Biggoron Sword') - -# Deku Tree Vanilla -def dung_rules_dt0(world): - set_rule(world.get_entrance('Deku Tree Basement Path'), lambda state: state.has('Slingshot')) - - # GS - set_rule(world.get_location('GS Deku Tree Basement Back Room'), lambda state: state.has('Boomerang') and (state.has('Bomb Bag') or (state.has_bombchus() and state.can_leave_forest()))) - +import collections +import logging + + +def set_rules(world): + global_rules(world) + + if world.bridge == 'medallions': + # require all medallions to form the bridge + set_rule(world.get_entrance('Rainbow Bridge'), lambda state: state.has('Forest Medallion') and state.has('Fire Medallion') and state.has('Water Medallion') and state.has('Shadow Medallion') and state.has('Spirit Medallion') and state.has('Light Medallion')) + elif world.bridge == 'vanilla': + # require only what vanilla did to form the bridge + set_rule(world.get_entrance('Rainbow Bridge'), lambda state: state.has('Light Arrows') and state.has('Shadow Medallion') and state.has('Spirit Medallion')) + elif world.bridge == 'dungeons': + # require all medallions and stones to form the bridge + set_rule(world.get_entrance('Rainbow Bridge'), lambda state: state.has('Forest Medallion') and state.has('Fire Medallion') and state.has('Water Medallion') and state.has('Shadow Medallion') and state.has('Spirit Medallion') and state.has('Light Medallion') and state.has('Kokiri Emerald') and state.has('Goron Ruby') and state.has('Zora Sapphire')) + + +def set_rule(spot, rule): + spot.access_rule = rule + +def set_always_allow(spot, rule): + spot.always_allow = rule + + +def add_rule(spot, rule, combine='and'): + old_rule = spot.access_rule + if combine == 'or': + spot.access_rule = lambda state: rule(state) or old_rule(state) + else: + spot.access_rule = lambda state: rule(state) and old_rule(state) + +def add_item_rule(spot, rule, combine='and'): + old_rule = spot.item_rule + if combine == 'or': + spot.item_rule = lambda item: rule(item) or old_rule(item) + else: + spot.item_rule = lambda item: rule(item) and old_rule(item) + +def forbid_item(location, item): + old_rule = location.item_rule + location.item_rule = lambda i: i.name != item and old_rule(i) + + +def item_in_locations(state, item, locations): + for location in locations: + if item_name(state, location) == item: + return True + return False + +def item_name(state, location): + location = state.world.get_location(location) + if location.item is None: + return None + return location.item.name + + +def global_rules(world): + + expected_skulltulas = world.logic_skulltulas + + # ganon can only carry triforce + world.get_location('Ganon').item_rule = lambda item: item.name == 'Triforce' + + # these are default save&quit points and always accessible + world.get_region('Links House').can_reach = lambda state: True + + # dungeon requirements (including gold skulltulas) + + if world.dungeon_mq['DT']: + dung_rules_dtmq(world) + else: + dung_rules_dt0(world) + if world.dungeon_mq['DC']: + dung_rules_dcmq(world) + else: + dung_rules_dc0(world) + if world.dungeon_mq['JB']: + dung_rules_jbmq(world) + else: + dung_rules_jb0(world) + if world.dungeon_mq['FoT']: + dung_rules_fotmq(world) + else: + dung_rules_fot0(world) + if world.dungeon_mq['FiT']: + dung_rules_fitmq(world) + else: + dung_rules_fit0(world) + if world.dungeon_mq['WT']: + dung_rules_wtmq(world) + else: + dung_rules_wt0(world) + if world.dungeon_mq['SpT']: + dung_rules_sptmq(world) + else: + dung_rules_spt0(world) + if world.dungeon_mq['ShT']: + dung_rules_shtmq(world) + else: + dung_rules_sht0(world) + if world.dungeon_mq['BW']: + dung_rules_bwmq(world) + else: + dung_rules_bw0(world) + if world.dungeon_mq['IC']: + dung_rules_icmq(world) + else: + dung_rules_ic0(world) + if world.dungeon_mq['GTG']: + dung_rules_gtgmq(world) + else: + dung_rules_gtg0(world) + if world.dungeon_mq['GC']: + dung_rules_gcmq(world) + else: + dung_rules_gc0(world) + + # overworld requirements + set_rule(world.get_entrance('Deku Tree'), lambda state: state.has('Kokiri Sword') or world.open_forest) + set_rule(world.get_entrance('Lost Woods Bridge'), lambda state: state.can_leave_forest()) + set_rule(world.get_location('Skull Kid'), lambda state: state.can_play('Sarias Song')) + set_rule(world.get_location('Ocarina Memory Game'), lambda state: (not world.logic_no_memory_game) and state.has_ocarina()) + set_rule(world.get_location('Target in Woods'), lambda state: state.has('Slingshot')) + set_rule(world.get_location('Deku Theater Skull Mask'), lambda state: (not world.logic_no_trade_skull_mask) and state.has('Zeldas Letter')) + set_rule(world.get_location('Deku Theater Mask of Truth'), lambda state: (not world.logic_no_trade_mask_of_truth) and (state.has('Zeldas Letter') and state.can_play('Sarias Song') and state.has('Kokiri Emerald') and state.has('Goron Ruby') and state.has('Zora Sapphire') and state.guarantee_hint())) #Must befriend Skull Kid to sell Skull Mask, all stones to spawn running man. + set_rule(world.get_location('Anju as Adult'), lambda state: state.is_adult()) + set_rule(world.get_location('Man on Roof'), lambda state: world.logic_man_on_roof or (state.has('Progressive Hookshot') and state.is_adult())) + set_rule(world.get_location('10 Gold Skulltulla Reward'), lambda state: (expected_skulltulas >= 10) and state.has('Gold Skulltulla Token', 10)) + set_rule(world.get_location('20 Gold Skulltulla Reward'), lambda state: (expected_skulltulas >= 20) and state.has('Gold Skulltulla Token', 20)) + set_rule(world.get_location('30 Gold Skulltulla Reward'), lambda state: (expected_skulltulas >= 30) and state.has('Gold Skulltulla Token', 30) and state.guarantee_hint()) + set_rule(world.get_location('40 Gold Skulltulla Reward'), lambda state: (expected_skulltulas >= 40) and state.has('Gold Skulltulla Token', 40) and state.guarantee_hint()) + set_rule(world.get_location('50 Gold Skulltulla Reward'), lambda state: (expected_skulltulas >= 50) and state.has('Gold Skulltulla Token', 50) and state.guarantee_hint()) + set_rule(world.get_location('Heart Piece Grave Chest'), lambda state: state.can_play('Suns Song')) + set_rule(world.get_entrance('Composer Grave'), lambda state: state.can_play('Zeldas Lullaby')) + set_rule(world.get_location('Composer Grave Chest'), lambda state: state.has_fire_source()) + set_rule(world.get_entrance('Bottom of the Well'), lambda state: state.can_play('Song of Storms')) + set_rule(world.get_entrance('Death Mountain Entrance'), lambda state: state.has('Zeldas Letter') or state.is_adult() or world.open_kakariko) + set_rule(world.get_entrance('Dodongos Cavern Rocks'), lambda state: state.has_explosives() or state.has('Progressive Strength Upgrade') or state.is_adult()) + set_rule(world.get_location('DM Trail Freestanding PoH'), lambda state: world.open_kakariko or (world.difficulty != 'ohko') or state.has('Zeldas Letter') or state.can_blast_or_smash() or ((state.has('Dins Fire') or state.has('Nayrus Love')) and state.has('Magic Meter')) or state.has('Bow') or state.has('Progressive Strength Upgrade') or state.has_bottle() or state.has('Hover Boots')) + set_rule(world.get_location('Death Mountain Bombable Chest'), lambda state: state.can_blast_or_smash()) + set_rule(world.get_location('Biggoron'), lambda state: (not world.logic_no_trade_biggoron) and (state.has('Progressive Strength Upgrade') or state.can_blast_or_smash() or state.has('Bow')) and state.is_adult() and state.can_finish_adult_trades() and state.guarantee_hint()) + set_rule(world.get_location('Goron City Leftmost Maze Chest'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade', 2) or state.has('Hammer'))) + set_rule(world.get_location('Goron City Left Maze Chest'), lambda state: state.can_blast_or_smash() or (state.has('Progressive Strength Upgrade', 2) and state.is_adult())) + set_rule(world.get_location('Goron City Right Maze Chest'), lambda state: state.can_blast_or_smash() or (state.has('Progressive Strength Upgrade', 2) and state.is_adult())) + set_rule(world.get_location('Rolling Goron as Child'), lambda state: state.has('Bomb Bag')) + set_rule(world.get_location('Goron City Pot Freestanding PoH'), lambda state: (state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) and (state.can_play('Zeldas Lullaby') or (state.has('Dins Fire') and state.has('Magic Meter')))) + set_rule(world.get_entrance('Darunias Chamber'), lambda state: state.can_play('Zeldas Lullaby')) + set_rule(world.get_location('Darunias Joy'), lambda state: state.can_play('Sarias Song')) + set_rule(world.get_entrance('Goron City from Woods'), lambda state: (state.can_blast_or_smash() or (state.has('Dins Fire') and state.has('Magic Meter')) or ((state.has('Bow') or state.has('Progressive Strength Upgrade')) and state.is_adult())) and state.can_leave_forest()) + set_rule(world.get_location('King Dodongo'), lambda state: state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) + set_rule(world.get_location('King Dodongo Heart'), lambda state: state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) + set_rule(world.get_location('Song from Saria'), lambda state: state.has('Zeldas Letter')) + set_rule(world.get_entrance('Mountain Summit Fairy'), lambda state: state.can_blast_or_smash()) + set_rule(world.get_location('Crater Fairy Reward'), lambda state: state.can_play('Zeldas Lullaby')) + set_rule(world.get_location('Mountain Summit Fairy Reward'), lambda state: state.can_play('Zeldas Lullaby')) + set_rule(world.get_entrance('Mountain Crater Entrance'), lambda state: state.can_blast_or_smash()) + set_rule(world.get_entrance('Hyrule Castle Fairy'), lambda state: state.has_explosives()) + set_rule(world.get_location('Hyrule Castle Fairy Reward'), lambda state: state.can_play('Zeldas Lullaby')) + set_rule(world.get_entrance('Hyrule Castle Garden'), lambda state: state.has('Weird Egg') or (not world.shuffle_weird_egg)) + set_rule(world.get_entrance('Ganons Castle Grounds'), lambda state: state.is_adult()) + set_rule(world.get_entrance('Ganons Castle Fairy'), lambda state: state.has('Progressive Strength Upgrade', 3)) + set_rule(world.get_location('Ganons Castle Fairy Reward'), lambda state: state.can_play('Zeldas Lullaby')) + set_rule(world.get_location('Bombchu Bowling Bomb Bag'), lambda state: state.has_bombchus()) + set_rule(world.get_location('Bombchu Bowling Piece of Heart'), lambda state: state.has_bombchus()) + set_rule(world.get_location('Adult Shooting Gallery'), lambda state: state.has('Bow') and state.is_adult()) + set_rule(world.get_location('10 Big Poes'), lambda state: (not world.logic_no_big_poes) and (state.has('Bow') and state.has('Epona') and state.has_bottle() and state.is_adult() and state.guarantee_hint())) + set_rule(world.get_location('Treasure Chest Game'), lambda state: state.has('Lens of Truth') and state.has('Magic Meter')) + set_rule(world.get_entrance('Lost Woods Dive Warp'), lambda state: state.can_dive() and state.can_leave_forest()) + set_rule(world.get_entrance('Zora River Dive Warp'), lambda state: state.can_dive()) + set_rule(world.get_entrance('Lake Hylia Dive Warp'), lambda state: state.can_dive()) + set_rule(world.get_entrance('Zoras Domain Dive Warp'), lambda state: state.can_dive()) + set_rule(world.get_entrance('Zora River Waterfall'), lambda state: state.can_play('Zeldas Lullaby') or world.logic_zora_with_cucco) + set_rule(world.get_entrance('Zora River Rocks'), lambda state: state.has_explosives()) + set_rule(world.get_location('Zora River Lower Freestanding PoH'), lambda state: state.has_explosives() or state.has('Progressive Scale') or (state.has('Hover Boots') and state.is_adult())) + set_rule(world.get_location('Zora River Upper Freestanding PoH'), lambda state: state.has_explosives() or state.has('Progressive Scale') or (state.has('Hover Boots') and state.is_adult())) + set_rule(world.get_location('Frog Ocarina Game'), lambda state: state.can_play('Zeldas Lullaby') and state.can_play('Sarias Song') and state.can_play('Suns Song') and state.can_play('Eponas Song') and state.can_play('Song of Time') and state.can_play('Song of Storms')) + set_rule(world.get_location('Frogs in the Rain'), lambda state: state.can_play('Song of Storms')) + set_rule(world.get_location('Underwater Bottle'), lambda state: state.can_dive()) + set_rule(world.get_location('King Zora Moves'), lambda state: state.has('Bottle with Letter')) + set_rule(world.get_entrance('Behind King Zora'), lambda state: state.has('Bottle with Letter')) + set_rule(world.get_entrance('Zora River Adult'), lambda state: state.is_adult()) + set_rule(world.get_entrance('Zoras Domain Adult Access'), lambda state: state.can_play('Zeldas Lullaby') or (state.has('Hover Boots') and world.logic_zora_with_hovers)) + set_rule(world.get_entrance('Zoras Fountain Adult Access'), lambda state: state.can_reach('Zoras Fountain')) + set_rule(world.get_entrance('Jabu Jabus Belly'), lambda state: state.has_bottle()) + set_rule(world.get_entrance('Zoras Fountain Fairy'), lambda state: state.has_explosives()) + set_rule(world.get_location('Zoras Fountain Fairy Reward'), lambda state: state.can_play('Zeldas Lullaby')) + set_rule(world.get_location('Ocarina of Time'), lambda state: state.has('Kokiri Emerald') and state.has('Goron Ruby') and state.has('Zora Sapphire') and state.guarantee_hint()) + set_rule(world.get_location('Song from Ocarina of Time'), lambda state: state.has('Kokiri Emerald') and state.has('Goron Ruby') and state.has('Zora Sapphire') and state.guarantee_hint()) + set_rule(world.get_entrance('Door of Time'), lambda state: state.can_play('Song of Time') or world.open_door_of_time) + set_rule(world.get_location('Talons Chickens'), lambda state: state.has('Zeldas Letter')) + set_rule(world.get_location('Song from Malon'), lambda state: state.has('Zeldas Letter') and state.has_ocarina()) + set_rule(world.get_location('Epona'), lambda state: state.can_play('Eponas Song') and state.is_adult()) + set_rule(world.get_entrance('Adult Forest Warp Pad'), lambda state: state.can_play('Minuet of Forest') and state.is_adult()) + set_rule(world.get_entrance('Child Forest Warp Pad'), lambda state: state.can_play('Minuet of Forest')) + set_rule(world.get_entrance('Adult Meadow Access'), lambda state: state.can_play('Sarias Song') and state.is_adult()) + set_rule(world.get_entrance('Forest Temple Entrance'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) + set_rule(world.get_entrance('Dampes Grave'), lambda state: state.is_adult()) + set_rule(world.get_location('Dampe Race Freestanding PoH'), lambda state: not world.logic_no_second_dampe_race) + set_rule(world.get_location('Graveyard Freestanding PoH'), lambda state: state.is_adult() and (state.has('Magic Bean') or state.has('Progressive Hookshot', 2))) + set_rule(world.get_location('Song at Windmill'), lambda state: state.is_adult() and state.has_ocarina()) + set_rule(world.get_location('Windmill Freestanding PoH'), lambda state: (state.is_adult() and ( world.logic_windmill_hp or state.can_play('Song of Time') )) or state.has('Boomerang')) + set_rule(world.get_entrance('Temple Warp Pad'), lambda state: state.can_play('Prelude of Light') and state.can_leave_forest()) + set_rule(world.get_location('Sheik at Temple'), lambda state: state.has('Forest Medallion') and state.is_adult()) + set_rule(world.get_location('Diving in the Lab'), lambda state: state.has('Progressive Scale', 2)) + set_rule(world.get_location('Child Fishing'), lambda state: (not world.logic_no_child_fishing) and state.has('Kokiri Sword')) + set_rule(world.get_location('Adult Fishing'), lambda state: (not world.logic_no_adult_fishing) and state.is_adult() and ((state.has('Progressive Hookshot') and state.has_ocarina()) or state.has('Magic Bean') or state.can_reach(world.get_location('Morpha')))) + set_rule(world.get_location('Lake Hylia Freestanding PoH'), lambda state: state.is_adult() and ((state.has('Progressive Hookshot') and state.has_ocarina()) or state.has('Magic Bean'))) + set_rule(world.get_location('Lake Hylia Sun'), lambda state: ((state.has('Progressive Hookshot', 2) and state.has_ocarina()) or state.can_reach(world.get_location('Morpha'))) and state.has('Bow') and state.is_adult()) + set_rule(world.get_entrance('Crater Hover Boots'), lambda state: state.is_adult() and state.has('Hover Boots')) + set_rule(world.get_entrance('Crater Ascent'), lambda state: state.is_adult()) + set_rule(world.get_entrance('Crater Scarecrow'), lambda state: state.is_adult() and state.has_ocarina() and state.has('Progressive Hookshot', 2)) + set_rule(world.get_entrance('Crater Bridge'), lambda state: state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot'))) + set_rule(world.get_entrance('Crater Bridge Reverse'), lambda state: state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot') or state.has('Magic Bean'))) + set_rule(world.get_entrance('Crater Warp Pad'), lambda state: state.can_play('Bolero of Fire') and state.can_leave_forest()) + set_rule(world.get_entrance('Crater Fairy'), lambda state: state.is_adult() and state.has('Hammer')) + set_rule(world.get_location('DM Crater Volcano Freestanding PoH'), lambda state: state.is_adult() and ( (state.has('Magic Bean') and state.can_play('Bolero of Fire')) or (world.logic_crater_bean_hp_with_hovers and state.has('Hover Boots')) ) ) + set_rule(world.get_entrance('Fire Temple Entrance'), lambda state: state.is_adult() and (world.logic_fewer_tunic_requirements or state.has_GoronTunic())) + set_rule(world.get_location('Sheik in Crater'), lambda state: state.is_adult()) + set_rule(world.get_location('Link the Goron'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade') or state.has_explosives() or state.has('Bow'))) + set_rule(world.get_entrance('Crater Access'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade') or state.has_explosives() or state.has('Bow'))) + set_rule(world.get_entrance('Lake Warp Pad'), lambda state: state.can_play('Serenade of Water') and state.can_leave_forest()) + set_rule(world.get_location('King Zora Thawed'), lambda state: state.has_bottle() and (state.can_reach('Ice Cavern') or state.can_reach('Ganons Castle Water Trial') or state.has('Progressive Wallet', 2))) + set_rule(world.get_location('Zoras Fountain Bottom Freestanding PoH'), lambda state: state.has('Iron Boots') and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic())) + set_rule(world.get_entrance('Water Temple Entrance'), lambda state: state.is_adult() and state.has('Iron Boots') and state.has('Progressive Hookshot') and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic())) + set_rule(world.get_location('Sheik in Kakariko'), lambda state: state.is_adult() and state.has('Forest Medallion') and state.has('Fire Medallion') and state.has('Water Medallion')) + set_rule(world.get_entrance('Graveyard Warp Pad'), lambda state: state.can_play('Nocturne of Shadow') and state.can_leave_forest()) + set_rule(world.get_entrance('Shadow Temple Entrance'), lambda state: state.has('Dins Fire') and state.has('Magic Meter') and state.can_see_with_lens() and state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot'))) + set_rule(world.get_entrance('Bridge Crossing'), lambda state: (state.has('Epona') or state.has('Progressive Hookshot', 2) or world.gerudo_fortress == 'open') and state.is_adult()) + set_rule(world.get_location('Gerudo Valley Hammer Rocks Chest'), lambda state: state.has('Hammer') and state.is_adult()) + set_rule(world.get_location('Gerudo Fortress North F2 Carpenter'), lambda state: (state.has('Bow') or state.has('Progressive Hookshot') or state.has('Hover Boots')) and state.is_adult()) + set_rule(world.get_location('Gerudo Fortress Carpenter Rescue'), lambda state: ( (world.gerudo_fortress == 'normal' and state.has('Small Key (Gerudo Fortress)', 4) and (state.has('Bow') or state.has('Progressive Hookshot') or state.has('Hover Boots'))) or (world.gerudo_fortress == 'fast' and state.has('Small Key (Gerudo Fortress)', 1)) or world.gerudo_fortress == 'open') and state.is_adult()) + set_rule(world.get_location('Gerudo Fortress Membership Card'), lambda state: ( (world.gerudo_fortress == 'normal' and state.has('Small Key (Gerudo Fortress)', 4) and (state.has('Bow') or state.has('Progressive Hookshot') or state.has('Hover Boots'))) or (world.gerudo_fortress == 'fast' and state.has('Small Key (Gerudo Fortress)', 1)) or world.gerudo_fortress == 'open') and state.is_adult()) + set_rule(world.get_entrance('Gerudo Training Grounds Entrance'), lambda state: state.has('Carpenter Rescue') and state.has('Gerudo Membership Card') and state.is_adult()) + set_rule(world.get_entrance('Haunted Wasteland Entrance'), lambda state: state.has('Carpenter Rescue') and state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot', 2))) + set_rule(world.get_entrance('Haunted Wasteland Crossing'), lambda state: (world.logic_lens == 'chest') or (state.has('Lens of Truth') and state.has('Magic Meter'))) + set_rule(world.get_entrance('Colossus Warp Pad'), lambda state: state.can_play('Requiem of Spirit') and state.can_leave_forest()) + set_rule(world.get_entrance('Colossus Fairy'), lambda state: state.has_explosives()) + set_rule(world.get_location('Colossus Freestanding PoH'), lambda state: state.can_play('Requiem of Spirit') and state.has('Magic Bean') and state.is_adult()) + set_rule(world.get_location('Desert Colossus Fairy Reward'), lambda state: state.can_play('Zeldas Lullaby')) + set_rule(world.get_location('Gerudo Fortress Rooftop Chest'), lambda state: (state.has('Hover Boots') or (state.has('Progressive Hookshot') and state.has_ocarina()) or (state.has('Progressive Hookshot', 2))) and state.is_adult()) + set_rule(world.get_location('Horseback Archery 1000 Points'), lambda state: state.has('Carpenter Rescue') and state.has('Epona') and state.has('Bow') and state.is_adult()) + set_rule(world.get_location('Horseback Archery 1500 Points'), lambda state: (not world.logic_no_1500_archery) and (state.has('Carpenter Rescue') and state.has('Epona') and state.has('Bow') and state.is_adult())) + set_rule(world.get_location('Haunted Wasteland Structure Chest'), lambda state: state.has_fire_source()) + set_rule(world.get_location('Zelda'), lambda state: state.has('Shadow Medallion') and state.has('Spirit Medallion') and state.is_adult()) + set_rule(world.get_location('Ganon'), lambda state: (state.has('Boss Key (Ganons Castle)') or world.unlocked_ganondorf) and (state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows')) ) + set_rule(world.get_entrance('Kokiri Forest Storms Grotto'), lambda state: state.can_play('Song of Storms')) + set_rule(world.get_entrance('Lost Woods Generic Grotto'), lambda state: state.has('Bomb Bag') or (state.can_blast_or_smash() and state.can_leave_forest())) + set_rule(world.get_entrance('Lost Woods Sales Grotto'), lambda state: (state.has('Bomb Bag') or (state.has_bombchus() and state.can_leave_forest())) or (state.has('Hammer') and state.is_adult() and (state.can_play('Minuet of Forest') or state.can_play('Sarias Song')))) + set_rule(world.get_entrance('Front of Meadow Grotto'), lambda state: (state.has('Bomb Bag') or (state.has_bombchus() and state.can_leave_forest())) or (state.has('Hammer') and state.is_adult() and (state.can_play('Minuet of Forest') or state.can_play('Sarias Song')))) + set_rule(world.get_entrance('Remote Southern Grotto'), lambda state: state.can_blast_or_smash()) + set_rule(world.get_entrance('Field Near Lake Inside Fence Grotto'), lambda state: state.can_blast_or_smash()) + set_rule(world.get_entrance('Field Valley Grotto'), lambda state: state.can_blast_or_smash()) + set_rule(world.get_entrance('Field West Castle Town Grotto'), lambda state: state.can_blast_or_smash()) + set_rule(world.get_entrance('Field Far West Castle Town Grotto'), lambda state: state.can_blast_or_smash()) + set_rule(world.get_entrance('Field Kakariko Grotto'), lambda state: state.can_blast_or_smash()) + set_rule(world.get_entrance('Field North Lon Lon Grotto'), lambda state: state.can_blast_or_smash()) + set_rule(world.get_entrance('Castle Storms Grotto'), lambda state: state.can_play('Song of Storms')) + set_rule(world.get_entrance('Kakariko Bombable Grotto'), lambda state: state.can_blast_or_smash()) + set_rule(world.get_entrance('Mountain Bombable Grotto'), lambda state: state.can_blast_or_smash()) + set_rule(world.get_entrance('Mountain Storms Grotto'), lambda state: state.can_play('Song of Storms')) + set_rule(world.get_entrance('Top of Crater Grotto'), lambda state: state.can_blast_or_smash()) + set_rule(world.get_entrance('Zora River Plateau Open Grotto'), lambda state: state.has_explosives() or state.has('Progressive Scale') or state.is_adult()) + set_rule(world.get_entrance('Zora River Plateau Bombable Grotto'), lambda state: state.can_blast_or_smash()) + set_rule(world.get_location('Tektite Grotto Freestanding PoH'), lambda state: state.has('Progressive Scale', 2) or (state.has('Iron Boots') and state.is_adult())) + set_rule(world.get_location('GS Kokiri Know It All House'), lambda state: state.nighttime() and state.can_leave_forest()) + set_rule(world.get_location('GS Kokiri Bean Patch'), lambda state: state.has_bottle()) + set_rule(world.get_location('GS Kokiri House of Twins'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.nighttime()) + set_rule(world.get_location('GS Lost Woods Bean Patch Near Bridge'), lambda state: state.has_bottle()) + set_rule(world.get_location('GS Lost Woods Bean Patch Near Stage'), lambda state: state.has_bottle()) + set_rule(world.get_location('GS Lost Woods Above Stage'), lambda state: state.has('Magic Bean') and state.nighttime()) + set_rule(world.get_location('GS Sacred Forest Meadow'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.nighttime()) + set_rule(world.get_location('GS Hyrule Field near Kakariko'), lambda state: (state.has('Boomerang') and state.has_explosives()) or (state.has('Progressive Hookshot') and state.is_adult())) + set_rule(world.get_location('GS Hyrule Field Near Gerudo Valley'), lambda state: (state.has('Hammer') and state.has_fire_source() and state.has('Progressive Hookshot') and state.is_adult()) or (state.has('Boomerang') and state.has_explosives() and state.has('Dins Fire') and state.has('Magic Meter'))) + set_rule(world.get_location('GS Hyrule Castle Grotto'), lambda state: state.has('Boomerang') and state.has_explosives()) + set_rule(world.get_location('GS Lon Lon Ranch Rain Shed'), lambda state: state.nighttime()) + set_rule(world.get_location('GS Lon Lon Ranch House Window'), lambda state: state.has('Boomerang') and state.nighttime()) + set_rule(world.get_location('GS Lon Lon Ranch Back Wall'), lambda state: state.has('Boomerang') and state.nighttime()) + set_rule(world.get_location('GS Kakariko House Under Construction'), lambda state: state.nighttime()) + set_rule(world.get_location('GS Kakariko Skulltula House'), lambda state: state.nighttime()) + set_rule(world.get_location('GS Kakariko Guard\'s House'), lambda state: state.nighttime()) + set_rule(world.get_location('GS Kakariko Tree'), lambda state: state.nighttime()) + set_rule(world.get_location('GS Kakariko Watchtower'), lambda state: (state.has('Slingshot') or state.has_bombchus()) and state.nighttime()) + set_rule(world.get_location('GS Kakariko Above Impa\'s House'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.nighttime()) + set_rule(world.get_location('GS Graveyard Wall'), lambda state: state.has('Boomerang') and state.nighttime()) + set_rule(world.get_location('GS Graveyard Bean Patch'), lambda state: state.has_bottle()) + set_rule(world.get_location('GS Mountain Trail Bean Patch'), lambda state: state.has_bottle() and (state.has_explosives() or state.has('Progressive Strength Upgrade'))) + set_rule(world.get_location('GS Mountain Trail Bomb Alcove'), lambda state: state.can_blast_or_smash()) + set_rule(world.get_location('GS Mountain Trail Path to Crater'), lambda state: state.has('Hammer') and state.is_adult() and state.nighttime()) + set_rule(world.get_location('GS Mountain Trail Above Dodongo\'s Cavern'), lambda state: state.has('Hammer') and state.is_adult() and state.nighttime()) + set_rule(world.get_location('GS Goron City Boulder Maze'), lambda state: state.has_explosives()) + set_rule(world.get_location('GS Goron City Center Platform'), lambda state: state.is_adult()) + set_rule(world.get_location('GS Mountain Crater Bean Patch'), lambda state: state.can_play('Bolero of Fire') and state.has_bottle()) + set_rule(world.get_location('GS Zora River Ladder'), lambda state: state.nighttime()) + set_rule(world.get_location('GS Zora River Near Raised Grottos'), lambda state: state.has('Progressive Hookshot') and state.nighttime()) + set_rule(world.get_location('GS Zora River Above Bridge'), lambda state: state.has('Progressive Hookshot') and state.nighttime()) + set_rule(world.get_location('GS Zora\'s Domain Frozen Waterfall'), lambda state: state.nighttime() and (state.has('Progressive Hookshot') or state.has('Bow') or state.has('Magic Meter'))) + set_rule(world.get_location('GS Zora\'s Fountain Above the Log'), lambda state: state.has('Boomerang') and state.nighttime()) + set_rule(world.get_location('GS Zora\'s Fountain Hidden Cave'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.can_blast_or_smash() and state.has('Progressive Hookshot') and state.nighttime()) +# Jabu Jabu GS need no reqs becuase the access reqs for their zones cover them. + set_rule(world.get_location('GS Lake Hylia Bean Patch'), lambda state: state.has_bottle()) + set_rule(world.get_location('GS Lake Hylia Lab Wall'), lambda state: state.has('Boomerang') and state.nighttime()) + set_rule(world.get_location('GS Lake Hylia Small Island'), lambda state: state.nighttime()) + set_rule(world.get_location('GS Lake Hylia Giant Tree'), lambda state: state.is_adult() and state.has('Progressive Hookshot', 2)) + set_rule(world.get_location('GS Lab Underwater Crate'), lambda state: state.is_adult() and state.has('Iron Boots') and state.has('Progressive Hookshot')) + set_rule(world.get_location('GS Gerudo Valley Small Bridge'), lambda state: state.has('Boomerang') and state.nighttime()) + set_rule(world.get_location('GS Gerudo Valley Bean Patch'), lambda state: state.has_bottle()) + set_rule(world.get_location('GS Gerudo Valley Behind Tent'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.nighttime()) + set_rule(world.get_location('GS Gerudo Valley Pillar'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.nighttime()) + set_rule(world.get_location('GS Gerudo Fortress Archery Range'), lambda state: state.has('Progressive Hookshot') and state.has('Carpenter Rescue') and state.is_adult() and state.nighttime()) + set_rule(world.get_location('GS Gerudo Fortress Top Floor'), lambda state: state.nighttime()) + set_rule(world.get_location('GS Wasteland Ruins'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) + set_rule(world.get_location('GS Desert Colossus Bean Patch'), lambda state: state.has_bottle() and state.can_play('Requiem of Spirit')) + set_rule(world.get_location('GS Desert Colossus Tree'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.nighttime()) + set_rule(world.get_location('GS Desert Colossus Hill'), lambda state: ((state.has('Magic Bean') and state.can_play('Requiem of Spirit')) or state.has('Progressive Hookshot', 2)) and state.is_adult() and state.nighttime()) + + for location in world.get_locations(): + if location.type != 'Chest': + forbid_item(location, 'Ice Trap') + add_item_rule(location, lambda i: not (i.type == 'Song' and not i.world.shuffle_song_items and i.world.id != location.world.id)) + + # Biggoron Sword at bombchu bowling seems to lead to a soft lock. + # Unsure what causes this, but I'm leaving this to original devs. + # For now just avoiding this combination, since BigSword is not that important. + forbid_item(world.get_location('Bombchu Bowling Bomb Bag'), 'Biggoron Sword') + forbid_item(world.get_location('Bombchu Bowling Piece of Heart'), 'Biggoron Sword') + +# Deku Tree Vanilla +def dung_rules_dt0(world): + set_rule(world.get_entrance('Deku Tree Basement Path'), lambda state: state.has('Slingshot')) + + # GS + set_rule(world.get_location('GS Deku Tree Basement Back Room'), lambda state: state.has('Boomerang') and (state.has('Bomb Bag') or (state.has_bombchus() and state.can_leave_forest()))) + # MQ Deku Tree def dung_rules_dtmq(world): set_rule(world.get_entrance('Deku Tree Compass Passage'), lambda state: state.has('Slingshot')) @@ -311,259 +341,515 @@ def dung_rules_dtmq(world): # GS set_rule(world.get_location('GS Deku Tree MQ Compass Room'), lambda state: state.has('Boomerang') and ((state.has('Bomb Bag') and state.can_play('Song of Time')) or (state.has_bombchus() and state.can_leave_forest()))) set_rule(world.get_location('GS Deku Tree MQ Basement Ceiling'), lambda state: state.has('Boomerang') and state.can_play('Song of Time')) - set_rule(world.get_location('GS Deku Tree MQ Basement Back Room'), lambda state: state.has('Boomerang')) - -# Dodongo's Cavern Vanilla -def dung_rules_dc0(world): - set_rule(world.get_entrance('Dodongos Cavern Lobby'), lambda state: state.can_blast_or_smash() or state.has('Progressive Strength Upgrade')) - set_rule(world.get_entrance('Dodongos Cavern Left Door'), lambda state: state.has_explosives() or state.has('Progressive Strength Upgrade') or (state.has('Dins Fire') and state.has('Magic Meter')) or (state.has('Bow') and state.is_adult())) - set_rule(world.get_entrance('Dodongos Cavern Slingshot Target'), lambda state: state.has('Slingshot') or ((state.has('Bow') or state.has('Hover Boots') or state.has('Progressive Hookshot', 2) or world.logic_dc_jump) and state.is_adult())) - set_rule(world.get_location('Dodongos Cavern End of Bridge Chest'), lambda state: state.has_explosives() or ((state.has('Bow') or state.has('Hover Boots') or state.has('Progressive Hookshot', 2) or world.logic_dc_jump) and state.is_adult() and state.has('Hammer'))) - set_rule(world.get_entrance('Dodongos Cavern Bomb Drop'), lambda state: state.has_explosives()) - - # GS - set_rule(world.get_location('GS Dodongo\'s Cavern Alcove Above Stairs'), lambda state: (state.has('Progressive Hookshot') and state.is_adult()) or (state.has('Boomerang') and (state.has_explosives() or state.has('Progressive Strength Upgrade')))) - set_rule(world.get_location('GS Dodongo\'s Cavern Scarecrow'), lambda state: state.is_adult() and ( (state.has('Progressive Hookshot') and state.has_ocarina()) or state.has('Progressive Hookshot', 2) )) - -# Dodongo's Cavern MQ -def dung_rules_dcmq(world): + set_rule(world.get_location('GS Deku Tree MQ Basement Back Room'), lambda state: state.has('Boomerang')) + +# Dodongo's Cavern Vanilla +def dung_rules_dc0(world): + set_rule(world.get_entrance('Dodongos Cavern Lobby'), lambda state: state.can_blast_or_smash() or state.has('Progressive Strength Upgrade')) + set_rule(world.get_entrance('Dodongos Cavern Left Door'), lambda state: state.has_explosives() or state.has('Progressive Strength Upgrade') or (state.has('Dins Fire') and state.has('Magic Meter')) or (state.has('Bow') and state.is_adult())) + set_rule(world.get_entrance('Dodongos Cavern Slingshot Target'), lambda state: state.has('Slingshot') or ((state.has('Bow') or state.has('Hover Boots') or state.has('Progressive Hookshot', 2) or world.logic_dc_jump) and state.is_adult())) + set_rule(world.get_location('Dodongos Cavern End of Bridge Chest'), lambda state: state.has_explosives() or ((state.has('Bow') or state.has('Hover Boots') or state.has('Progressive Hookshot', 2) or world.logic_dc_jump) and state.is_adult() and state.has('Hammer'))) + set_rule(world.get_entrance('Dodongos Cavern Bomb Drop'), lambda state: state.has_explosives()) + + # GS + set_rule(world.get_location('GS Dodongo\'s Cavern Alcove Above Stairs'), lambda state: (state.has('Progressive Hookshot') and state.is_adult()) or (state.has('Boomerang') and (state.has_explosives() or state.has('Progressive Strength Upgrade')))) + set_rule(world.get_location('GS Dodongo\'s Cavern Scarecrow'), lambda state: state.is_adult() and ( (state.has('Progressive Hookshot') and state.has_ocarina()) or state.has('Progressive Hookshot', 2) )) + +# Dodongo's Cavern MQ +def dung_rules_dcmq(world): set_rule(world.get_entrance('Dodongos Cavern Lobby'), lambda state: state.can_blast_or_smash() or state.has('Progressive Strength Upgrade')) set_rule(world.get_entrance('Dodongos Cavern Bomb Drop'), lambda state: state.has_explosives()) set_rule(world.get_location('Dodongos Cavern MQ Larva Room Chest'), lambda state: state.has_explosives or state.has('Progressive Strength Upgrade') or state.has_fire_source()) - set_rule(world.get_location('Dodongos Cavern MQ Bomb Bag Chest'), lambda state: state.has('Slingshot') or state.is_adult()) - + set_rule(world.get_location('Dodongos Cavern MQ Bomb Bag Chest'), lambda state: state.has('Slingshot') or state.is_adult()) + # GS set_rule(world.get_location('GS Dodongo\'s Cavern MQ Song of Time Block Room'), lambda state: state.can_play('Song of Time')) set_rule(world.get_location('GS Dodongo\'s Cavern MQ Larva Room'), lambda state: state.has_explosives or state.has('Progressive Strength Upgrade') or state.has_fire_source()) set_rule(world.get_location('GS Dodongo\'s Cavern MQ Lizalfos Room'), lambda state: state.can_blast_or_smash()) - set_rule(world.get_location('GS Dodongo\'s Cavern MQ Scrub Room'), lambda state: ((state.has('Slingshot') or (state.is_adult() and state.has_explosives())) and state.has('Boomerang') and (state.has_explosives() or state.has('Progressive Strength Upgrade'))) or (state.is_adult() and state.has('Progressive Hookshot') and (state.has_explosives() or state.has('Progressive Strength Upgrade') or state.has('Bow') or (state.has('Dins Fire') and state.has('Magic Meter'))))) # You may have to kill the lower Lizalfos as adult, then use Bombs to jump down from the upper Lizalfos as child, so you can use the Boomerang to get this GS without needing the Slingshot. (Or you could do the jumpslash recoil, but that's not in logic.) - -def dung_rules_jb0(world): - set_rule(world.get_entrance('Jabu Jabus Belly Ceiling Switch'), lambda state: state.has('Slingshot') or state.has_explosives() or state.has('Boomerang')) - set_rule(world.get_entrance('Jabu Jabus Belly Tentacles'), lambda state: state.has('Boomerang')) - -def dung_rules_fot0(world): - # Forest Temple Vanilla - set_rule(world.get_entrance('Forest Temple Song of Time Block'), lambda state: state.can_play('Song of Time')) - set_rule(world.get_entrance('Forest Temple Lobby Eyeball Switch'), lambda state: state.has('Bow') and state.is_adult()) - set_rule(world.get_entrance('Forest Temple Lobby Locked Door'), lambda state: state.has('Small Key (Forest Temple)', 1)) - set_rule(world.get_entrance('Forest Temple Well Connection'), lambda state: ((state.has('Iron Boots') or state.has('Progressive Hookshot', 2)) and state.is_adult()) or state.has('Progressive Scale', 2)) #Longshot can grab some very high up vines to drain the well. - set_rule(world.get_entrance('Forest Temple Scarecrows Song'), lambda state: False) #For some reason you can't actually activate this from below. Cool game. - set_rule(world.get_entrance('Forest Temple Elevator'), lambda state: state.has('Bow') and state.is_adult() and state.has('Progressive Strength Upgrade') and state.has('Small Key (Forest Temple)', 3)) - set_rule(world.get_entrance('Forest Temple Outside Backdoor'), lambda state: state.has('Hover Boots') and state.is_adult()) - set_rule(world.get_entrance('Forest Temple Twisted Hall'), lambda state: state.has('Progressive Strength Upgrade') and state.has('Small Key (Forest Temple)', 3)) - set_rule(world.get_entrance('Forest Temple Straightened Hall'), lambda state: state.has('Progressive Strength Upgrade') and state.has('Small Key (Forest Temple)', 2) and state.has('Bow')) - set_rule(world.get_entrance('Forest Temple Drop to Falling Room'), lambda state: state.has('Small Key (Forest Temple)', 5) and (state.has('Bow') or (state.has('Dins Fire') and state.has('Magic Meter')))) - set_rule(world.get_location('Forest Temple Block Push Chest'), lambda state: state.has('Progressive Strength Upgrade') and state.has('Bow') and state.is_adult()) - set_rule(world.get_location('Forest Temple Red Poe Chest'), lambda state: state.has('Bow') and state.is_adult()) - set_rule(world.get_location('Forest Temple Blue Poe Chest'), lambda state: state.has('Bow') and state.is_adult()) - - # Boss - set_rule(world.get_location('Phantom Ganon'), lambda state: state.has('Boss Key (Forest Temple)')) - set_rule(world.get_location('Phantom Ganon Heart'), lambda state: state.has('Boss Key (Forest Temple)')) - - # GS - set_rule(world.get_location('GS Forest Temple First Room'), lambda state: (state.has('Progressive Hookshot') or state.has('Bow') or (state.has('Dins Fire') and state.has('Magic Meter'))) and state.is_adult()) - set_rule(world.get_location('GS Forest Temple Lobby'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('GS Forest Temple Outdoor East'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('GS Forest Temple Outdoor West'), lambda state: (state.has('Progressive Hookshot', 2) or (state.has('Progressive Hookshot') and state.can_reach('Forest Temple Outside Upper Ledge'))) and state.is_adult()) - set_rule(world.get_location('GS Forest Temple Basement'), lambda state: state.has('Progressive Hookshot')) - -def dung_rules_fit0(world): - # Fire Temple Vanilla - set_rule(world.get_entrance('Fire Temple Early Climb'), lambda state: state.has_GoronTunic() and state.has('Small Key (Fire Temple)', 3) and state.has('Progressive Strength Upgrade') and (state.has_explosives() or ((state.has('Bow') or state.has('Progressive Hookshot')) and state.is_adult()))) - set_rule(world.get_entrance('Fire Temple Fire Maze Escape'), lambda state: state.has('Small Key (Fire Temple)', 7) or (state.has('Small Key (Fire Temple)', 6) and state.has('Hover Boots') and state.has('Hammer') and state.is_adult())) - set_rule(world.get_location('Fire Temple Fire Dancer Chest'), lambda state: state.is_adult() and state.has('Hammer')) - set_rule(world.get_location('Fire Temple Boss Key Chest'), lambda state: state.is_adult() and state.has('Hammer')) - set_rule(world.get_location('Fire Temple Big Lava Room Bombable Chest'), lambda state: state.has('Small Key (Fire Temple)', 1) and state.has_explosives()) - set_rule(world.get_location('Fire Temple Big Lava Room Open Chest'), lambda state: state.has('Small Key (Fire Temple)', 1)) - set_rule(world.get_location('Fire Temple Map Chest'), lambda state: state.has('Small Key (Fire Temple)', 5) or (state.has('Small Key (Fire Temple)', 4) and state.is_adult() and state.has('Bow'))) - set_rule(world.get_location('Fire Temple Boulder Maze Upper Chest'), lambda state: state.has('Small Key (Fire Temple)', 5)) - set_rule(world.get_location('Fire Temple Boulder Maze Bombable Pit'), lambda state: state.has('Small Key (Fire Temple)', 5) and state.has_explosives()) - set_rule(world.get_location('Fire Temple Scarecrow Chest'), lambda state: state.has_ocarina() and state.has('Small Key (Fire Temple)', 5) and state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('Fire Temple Compass Chest'), lambda state: state.has('Small Key (Fire Temple)', 6)) - set_rule(world.get_location('Fire Temple Highest Goron Chest'), lambda state: state.can_play('Song of Time') and state.has('Hammer') and state.is_adult()) - set_rule(world.get_location('Fire Temple Megaton Hammer Chest'), lambda state: state.has_explosives()) - - #boss - set_rule(world.get_location('Volvagia'), lambda state: state.has_GoronTunic() and state.has('Hammer') and state.is_adult() and state.has('Boss Key (Fire Temple)') and (state.has('Hover Boots') or (state.can_reach('Fire Temple Upper') and (state.can_play('Song of Time') or state.has_explosives())))) - set_rule(world.get_location('Volvagia Heart'), lambda state: state.has_GoronTunic() and state.has('Hammer') and state.is_adult() and state.has('Boss Key (Fire Temple)') and (state.has('Hover Boots') or (state.can_reach('Fire Temple Upper') and (state.can_play('Song of Time') or state.has_explosives())))) - - # GS - set_rule(world.get_location('GS Fire Temple Song of Time Room'), lambda state: state.has('Small Key (Fire Temple)', 1) and state.can_play('Song of Time')) - set_rule(world.get_location('GS Fire Temple Unmarked Bomb Wall'), lambda state: state.has('Small Key (Fire Temple)', 3) and state.has_explosives()) - set_rule(world.get_location('GS Fire Temple East Tower Climb'), lambda state: state.has_ocarina() and state.has('Small Key (Fire Temple)', 5) and state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('GS Fire Temple East Tower Top'), lambda state: state.has_ocarina() and state.has('Small Key (Fire Temple)', 5) and state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('GS Fire Temple Basement'), lambda state: state.has('Hammer') and state.is_adult()) - -def dung_rules_wt0(world): - # Water Temple vanilla - set_rule(world.get_entrance('Water Temple Central Pillar'), lambda state: (state.has('Bow') or (state.has('Dins Fire') and state.has('Magic Meter')) or state.has('Small Key (Water Temple)', 5)) and state.can_play('Zeldas Lullaby')) - set_rule(world.get_entrance('Water Temple Upper Locked Door'), lambda state: state.has('Small Key (Water Temple)', 5) and (state.can_play('Zeldas Lullaby') or world.keysanity)) - set_rule(world.get_location('Water Temple Torches Chest'), lambda state: (state.has('Bow') or (state.has('Dins Fire') and state.has('Magic Meter'))) and state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('Water Temple Dragon Chest'), lambda state: (state.has('Progressive Strength Upgrade') and state.can_play('Zeldas Lullaby')) or (state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity) and state.can_play('Song of Time') and state.has('Bow'))) - set_rule(world.get_location('Water Temple Central Bow Target Chest'), lambda state: state.has('Bow') and state.has('Progressive Strength Upgrade') and state.can_play('Zeldas Lullaby') and (state.has('Hover Boots') or state.has('Progressive Hookshot', 2))) - set_always_allow(world.get_location('Water Temple Boss Key Chest'), lambda item, state: item.name == 'Small Key (Water Temple)') - set_rule(world.get_location('Water Temple Boss Key Chest'), lambda state: (state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity) and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and state.has('Progressive Hookshot', 2)) or item_name(state, 'Water Temple Boss Key Chest') == 'Small Key (Water Temple)') #If key for key, this lets the logic reduce the small key reqs for every other locked door. - set_rule(world.get_location('Water Temple Cracked Wall Chest'), lambda state: state.has_explosives()) - set_rule(world.get_location('Water Temple Dark Link Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity)) - set_rule(world.get_location('Water Temple River Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and state.can_play('Song of Time') and state.has('Bow') and (state.can_play('Zeldas Lullaby') or world.keysanity)) - set_rule(world.get_location('Water Temple Central Pillar Chest'), lambda state: state.has_ZoraTunic()) - - # boss rules - set_rule(world.get_location('Morpha'), lambda state: state.has('Boss Key (Water Temple)') and state.has('Progressive Hookshot', 2)) - set_rule(world.get_location('Morpha Heart'), lambda state: state.has('Boss Key (Water Temple)') and state.has('Progressive Hookshot', 2)) - - # GS - set_rule(world.get_location('GS Water Temple South Basement'), lambda state: state.has_explosives() and state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('GS Water Temple Serpent River'), lambda state: state.can_play('Song of Time') and state.has('Small Key (Water Temple)', 6)) - set_rule(world.get_location('GS Water Temple Falling Platform Room'), lambda state: state.has('Progressive Hookshot', 2)) - set_rule(world.get_location('GS Water Temple Central Room'), lambda state: state.has('Progressive Hookshot', 2) or (state.has('Farores Wind') and state.has('Magic'))) - #5 keys would be better but it wouldn't be compatible with the key for key scenarios, 6 will be identical pre-keysanity. - set_rule(world.get_location('GS Water Temple Near Boss Key Chest'), lambda state: state.has('Progressive Hookshot', 2) and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and (state.can_play('Zeldas Lullaby') or world.keysanity) and state.has('Small Key (Water Temple)', 6)) - -def dung_rules_spt0(world): - # Spirit Temple vanilla - set_rule(world.get_entrance('Spirit Temple Crawl Passage'), lambda state: state.can_play('Requiem of Spirit')) - set_rule(world.get_entrance('Spirit Temple Silver Block'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.is_adult()) - set_rule(world.get_entrance('Child Spirit Temple Climb'), lambda state: state.has('Small Key (Spirit Temple)', 1)) - set_rule(world.get_entrance('Child Spirit Temple Passthrough'), lambda state: state.has_explosives()) - set_rule(world.get_entrance('Adult Spirit Temple Passthrough'), lambda state: state.has('Small Key (Spirit Temple)', 1)) - set_rule(world.get_entrance('Spirit Temple Central Locked Door'), lambda state: state.has('Small Key (Spirit Temple)', 4) and state.has('Progressive Strength Upgrade', 2) and state.is_adult()) - set_rule(world.get_entrance('Spirit Temple Final Locked Door'), lambda state: state.has('Small Key (Spirit Temple)', 5) and (state.has('Progressive Hookshot') or state.has('Bow') or state.has_explosives())) - set_rule(world.get_location('Spirit Temple Child Left Chest'), lambda state: state.has('Boomerang') or state.has('Slingshot') or state.has_bombchus()) - set_rule(world.get_location('Spirit Temple Child Right Chest'), lambda state: state.has('Boomerang') or state.has('Slingshot') or state.has_bombchus()) - set_rule(world.get_location('Spirit Temple Compass Chest'), lambda state: state.has('Progressive Hookshot') and state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('Spirit Temple Early Adult Right Chest'), lambda state: state.has('Bow') or state.has('Progressive Hookshot') or state.has_bombchus()) #requires a very specific Bombchu use, Hover Boots can be skipped by jumping on top of the rolling rock. - set_rule(world.get_location('Spirit Temple First Mirror Right Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3)) - set_rule(world.get_location('Spirit Temple First Mirror Left Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3)) - set_rule(world.get_location('Spirit Temple Map Chest'), lambda state: (state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit')) or (state.has('Magic Meter') and (state.has('Dins Fire') or (state.has('Fire Arrows') and state.has('Bow') and state.has('Progressive Strength Upgrade', 2) and state.has('Small Key (Spirit Temple)', 3) and state.is_adult())))) - set_rule(world.get_location('Spirit Temple Child Climb East Chest'), lambda state: state.has_explosives() or ((state.has('Boomerang') or state.has('Slingshot')) and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 5) and state.can_play('Requiem of Spirit') and (state.has('Boomerang') or state.has('Slingshot')))) - set_rule(world.get_location('Spirit Temple Child Climb North Chest'), lambda state: state.has_explosives() or ((state.has('Boomerang') or state.has('Slingshot')) and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 5) and state.can_play('Requiem of Spirit') and (state.has('Boomerang') or state.has('Slingshot')))) - set_rule(world.get_location('Spirit Temple Sun Block Room Chest'), lambda state: (state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit')) or (state.has('Magic Meter') and (state.has('Dins Fire') or (state.has('Fire Arrows') and state.has('Bow') and state.has('Progressive Strength Upgrade', 2) and state.has('Small Key (Spirit Temple)', 3) and state.is_adult())))) - set_rule(world.get_location('Spirit Temple Statue Hand Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('Spirit Temple NE Main Room Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.can_play('Zeldas Lullaby') and (state.has('Progressive Hookshot') or state.has("Hover Boots"))) - set_rule(world.get_location('Mirror Shield Chest'), lambda state: state.has('Small Key (Spirit Temple)', 4) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.has_explosives()) - set_rule(world.get_location('Silver Gauntlets Chest'), lambda state: (state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Hookshot', 2) and state.has_explosives()) or state.has('Small Key (Spirit Temple)', 5)) - set_rule(world.get_location('Spirit Temple Near Four Armos Chest'), lambda state: state.has('Mirror Shield') and state.has_explosives()) - set_rule(world.get_location('Spirit Temple Hallway Left Invisible Chest'), lambda state: state.can_see_with_lens() and state.has_explosives()) - set_rule(world.get_location('Spirit Temple Hallway Right Invisible Chest'), lambda state: state.can_see_with_lens() and state.has_explosives()) - set_rule(world.get_location('Spirit Temple Boss Key Chest'), lambda state: state.can_play('Zeldas Lullaby') and state.has('Bow') and state.has('Progressive Hookshot') and state.can_blast_or_smash()) - set_rule(world.get_location('Spirit Temple Topmost Chest'), lambda state: state.has('Mirror Shield')) - set_rule(world.get_location('Twinrova'), lambda state: state.has('Mirror Shield') and state.has_explosives() and state.has('Progressive Hookshot') and state.has('Boss Key (Spirit Temple)')) - set_rule(world.get_location('Twinrova Heart'), lambda state: state.has('Mirror Shield') and state.has_explosives() and state.has('Progressive Hookshot') and state.has('Boss Key (Spirit Temple)')) - - # GS - set_rule(world.get_location('GS Spirit Temple Metal Fence'), lambda state: state.has('Boomerang') or state.has('Slingshot') or state.has_bombchus()) - set_rule(world.get_location('GS Spirit Temple Hall to West Iron Knuckle'), lambda state: (state.has('Boomerang') and state.has('Progressive Hookshot')) or (state.has('Boomerang') and state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit')) or (state.has('Progressive Hookshot') and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.has('Small Key (Spirit Temple)', 3))) - set_rule(world.get_location('GS Spirit Temple Boulder Room'), lambda state: state.can_play('Song of Time') and (state.has('Bow') or state.has('Progressive Hookshot') or state.has_bombchus())) - set_rule(world.get_location('GS Spirit Temple Lobby'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.has('Small Key (Spirit Temple)', 3) and state.is_adult() and (state.has('Progressive Hookshot', 2) or (state.has('Progressive Hookshot') and state.has_ocarina()) or state.has('Hover Boots'))) - -def dung_rules_sht0(world): - # Shadow Temple Vanilla - set_rule(world.get_entrance('Shadow Temple First Pit'), lambda state: state.has('Hover Boots')) - set_rule(world.get_entrance('Shadow Temple Bomb Wall'), lambda state: state.has_explosives() and state.has('Small Key (Shadow Temple)', 1)) - set_rule(world.get_entrance('Shadow Temple Hookshot Target'), lambda state: state.has('Progressive Hookshot') and state.has('Small Key (Shadow Temple)', 3)) - set_rule(world.get_entrance('Shadow Temple Boat'), lambda state: state.can_play('Zeldas Lullaby') and state.has('Small Key (Shadow Temple)', 4)) - set_rule(world.get_location('Shadow Temple Falling Spikes Upper Chest'), lambda state: state.has('Progressive Strength Upgrade')) - set_rule(world.get_location('Shadow Temple Falling Spikes Switch Chest'), lambda state: state.has('Progressive Strength Upgrade')) - set_rule(world.get_location('Shadow Temple Invisible Spikes Chest'), lambda state: state.has('Small Key (Shadow Temple)', 2)) - set_rule(world.get_location('Shadow Temple Freestanding Key'), lambda state: state.has('Small Key (Shadow Temple)', 2) and state.has('Progressive Hookshot')) - - # boss rules - set_rule(world.get_location('Bongo Bongo'), lambda state: state.has('Small Key (Shadow Temple)', 5) and (state.has('Bow') or state.has('Progressive Hookshot', 2)) and state.has('Boss Key (Shadow Temple)')) - set_rule(world.get_location('Bongo Bongo Heart'), lambda state: state.has('Small Key (Shadow Temple)', 5) and (state.has('Bow') or state.has('Progressive Hookshot', 2)) and state.has('Boss Key (Shadow Temple)')) - - # GS - set_rule(world.get_location('GS Shadow Temple Like Like Room'), lambda state: state.has('Progressive Hookshot')) - set_rule(world.get_location('GS Shadow Temple Crusher Room'), lambda state: state.has('Progressive Hookshot')) - set_rule(world.get_location('GS Shadow Temple Near Ship'), lambda state: state.has('Progressive Hookshot', 2) and state.has('Small Key (Shadow Temple)', 4)) - -def dung_rules_bw0(world): - # Bottom of the Well Vanilla - set_rule(world.get_location('Bottom of the Well Front Left Hidden Wall'), lambda state: state.can_see_with_lens()) - set_rule(world.get_location('Bottom of the Well Front Center Bombable'), lambda state: state.has_explosives()) - set_rule(world.get_location('Bottom of the Well Right Bottom Hidden Wall'), lambda state: state.can_see_with_lens()) - set_rule(world.get_location('Bottom of the Well Center Large Chest'), lambda state: state.can_see_with_lens()) - set_rule(world.get_location('Bottom of the Well Center Small Chest'), lambda state: state.can_see_with_lens()) - set_rule(world.get_location('Bottom of the Well Back Left Bombable'), lambda state: state.has_explosives()) - set_rule(world.get_location('Bottom of the Well Defeat Boss'), lambda state: state.can_play('Zeldas Lullaby') and (state.has('Kokiri Sword') or world.logic_child_deadhand)) #Sword not strictly necessary but frankly being forced to do this with sticks isn't fair - set_rule(world.get_location('Bottom of the Well Invisible Chest'), lambda state: state.can_play('Zeldas Lullaby') and state.can_see_with_lens()) - set_rule(world.get_location('Bottom of the Well Underwater Front Chest'), lambda state: state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('Bottom of the Well Underwater Left Chest'), lambda state: state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('Bottom of the Well Basement Chest'), lambda state: state.has_explosives() or (((state.has('Small Key (Bottom of the Well)', 3) and state.can_see_with_lens()) or (state.has('Dins Fire') and state.has('Magic Meter'))) and state.has('Progressive Strength Upgrade'))) - set_rule(world.get_location('Bottom of the Well Locked Pits'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.can_see_with_lens()) #These pits are really unfair. - set_rule(world.get_location('Bottom of the Well Behind Right Grate'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.can_see_with_lens()) - - # GS - set_rule(world.get_location('GS Well West Inner Room'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang') and state.can_see_with_lens()) - set_rule(world.get_location('GS Well East Inner Room'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang') and state.can_see_with_lens()) - set_rule(world.get_location('GS Well Like Like Cage'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang') and state.can_see_with_lens()) - -def dung_rules_ic0(world): - # Ice Cavern Vanilla - set_rule(world.get_location('Ice Cavern Map Chest'), lambda state: state.has_bottle()) - set_rule(world.get_location('Ice Cavern Compass Chest'), lambda state: state.has_bottle()) - set_rule(world.get_location('Ice Cavern Freestanding PoH'), lambda state: state.has_bottle()) - set_rule(world.get_location('Ice Cavern Iron Boots Chest'), lambda state: state.has_bottle()) - set_rule(world.get_location('Sheik in Ice Cavern'), lambda state: state.has_bottle() and state.is_adult()) - - # GS - set_rule(world.get_location('GS Ice Cavern Spinning Scythe Room'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('GS Ice Cavern Heart Piece Room'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.has_bottle()) - set_rule(world.get_location('GS Ice Cavern Push Block Room'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.has_bottle()) - -def dung_rules_gtg0(world): - set_rule(world.get_entrance('Gerudo Training Ground Left Silver Rupees'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_entrance('Gerudo Training Ground Beamos'), lambda state: state.has_explosives()) - set_rule(world.get_entrance('Gerudo Training Grounds Right Locked Doors'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 9)) - set_rule(world.get_entrance('Gerudo Training Grounds Maze Ledge'), lambda state: state.can_play('Song of Time')) - set_rule(world.get_entrance('Gerudo Training Grounds Right Hookshot Target'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_entrance('Gerudo Training Grounds Hammer Target'), lambda state: state.has('Hammer') and state.has('Bow') and state.is_adult()) - set_rule(world.get_entrance('Gerudo Training Grounds Hidden Hookshot Target'), lambda state: state.has('Progressive Hookshot') and state.can_see_with_lens() and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Lobby Left Chest'), lambda state: state.has('Bow') and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Lobby Right Chest'), lambda state: state.has('Bow') and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Beamos Chest'), lambda state: state.has_explosives()) - set_rule(world.get_location('Gerudo Training Grounds Hidden Ceiling Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 3) and state.can_see_with_lens()) - set_rule(world.get_location('Gerudo Training Grounds Maze Path First Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 4)) - set_rule(world.get_location('Gerudo Training Grounds Maze Path Second Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 6)) - set_rule(world.get_location('Gerudo Training Grounds Maze Path Third Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 7)) - set_rule(world.get_location('Gerudo Training Grounds Maze Path Final Chest'), lambda state: (state.has('Small Key (Gerudo Training Grounds)', 9)) or (item_name(state, 'Gerudo Training Grounds Maze Path Final Chest') == 'Small Key (Gerudo Training Grounds)' and state.has('Small Key (Gerudo Training Grounds)', 8))) #Allow key for key - set_always_allow(world.get_location('Gerudo Training Grounds Maze Path Final Chest'), lambda item, state: item.name == 'Small Key (Gerudo Training Grounds)') - set_rule(world.get_location('Gerudo Training Grounds Underwater Silver Rupee Chest'), lambda state: state.has('Progressive Hookshot') and state.can_play('Song of Time') and state.has('Iron Boots') and state.is_adult() and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic())) - set_rule(world.get_location('Gerudo Training Grounds Hammer Room Switch Chest'), lambda state: state.has('Hammer') and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Eye Statue Chest'), lambda state: state.has('Bow') and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Near Scarecrow Chest'), lambda state: state.has('Bow') and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Heavy Block First Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.can_see_with_lens() and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Heavy Block Second Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.can_see_with_lens() and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Heavy Block Third Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.can_see_with_lens() and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Heavy Block Fourth Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.can_see_with_lens() and state.is_adult()) - -def dung_rules_gc0(world): - set_rule(world.get_entrance('Ganons Castle Light Trial'), lambda state: state.has('Progressive Strength Upgrade', 3)) - set_rule(world.get_entrance('Ganons Castle Tower'), lambda state: (world.skipped_trials['Forest'] or state.has('Forest Trial Clear')) and (world.skipped_trials['Fire'] or state.has('Fire Trial Clear')) and (world.skipped_trials['Water'] or state.has('Water Trial Clear')) and (world.skipped_trials['Shadow'] or state.has('Shadow Trial Clear')) and (world.skipped_trials['Spirit'] or state.has('Spirit Trial Clear')) and (world.skipped_trials['Light'] or state.has('Light Trial Clear'))) - set_rule(world.get_location('Ganons Castle Forest Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and (state.has('Fire Arrows') or state.has('Dins Fire'))) - set_rule(world.get_location('Ganons Castle Fire Trial Clear'), lambda state: state.has_GoronTunic() and state.has('Progressive Strength Upgrade', 3) and state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and state.has('Progressive Hookshot', 2)) - set_rule(world.get_location('Ganons Castle Water Trial Clear'), lambda state: state.has_bottle() and state.has('Hammer') and state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows')) - set_rule(world.get_location('Ganons Castle Shadow Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and state.has('Hammer') and ((state.has('Fire Arrows') and (state.has('Hover Boots') or state.can_see_with_lens())) or (state.has('Progressive Hookshot', 2) and (state.has('Hover Boots') or (state.has('Dins Fire') and state.can_see_with_lens()))))) - set_rule(world.get_location('Ganons Castle Shadow Trial First Chest'), lambda state: (state.has('Magic Meter') and state.has('Bow') and state.has('Fire Arrows')) or state.has('Progressive Hookshot') or state.has('Hover Boots') or state.can_play('Song of Time')) - set_rule(world.get_location('Ganons Castle Shadow Trial Second Chest'), lambda state: (state.has('Magic Meter') and state.has('Bow') and state.has('Fire Arrows')) or (state.has('Progressive Hookshot', 2) and (state.has('Hover Boots') or (state.has('Dins Fire') and state.has('Magic Meter'))))) - set_rule(world.get_location('Ganons Castle Spirit Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and state.has('Mirror Shield') and state.has_bombchus() and state.has('Progressive Hookshot')) - set_rule(world.get_location('Ganons Castle Spirit Trial First Chest'), lambda state: state.has('Progressive Hookshot')) - set_rule(world.get_location('Ganons Castle Spirit Trial Second Chest'), lambda state: state.has('Progressive Hookshot') and state.has_bombchus() and state.can_see_with_lens()) - set_rule(world.get_location('Ganons Castle Light Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Progressive Hookshot') and state.has('Light Arrows') and state.has('Small Key (Ganons Castle)', 2)) - set_rule(world.get_location('Ganons Castle Light Trail Invisible Enemies Chest'), lambda state: state.can_see_with_lens()) - set_rule(world.get_location('Ganons Castle Light Trial Lullaby Chest'), lambda state: state.can_play('Zeldas Lullaby') and state.has('Small Key (Ganons Castle)', 1)) - - - - # Song locations can only be a song - #song_locations = [world.get_location(location) for location in - # ['Song from Composer Grave', 'Impa at Castle', 'Song from Malon', 'Song from Saria', - # 'Song from Ocarina of Time', 'Song at Windmill', 'Sheik Forest Song', 'Sheik at Temple', - # 'Sheik in Crater', 'Sheik in Ice Cavern', 'Sheik in Kakariko', 'Sheik at Colossus']] - #for location in world.get_locations(): - # if location in song_locations: - # add_item_rule(location, lambda item: item.type == 'Song') - # else: - # add_item_rule(location, lambda item: item.type != 'Song') + set_rule(world.get_location('GS Dodongo\'s Cavern MQ Scrub Room'), lambda state: ((state.has('Slingshot') or (state.is_adult() and state.has_explosives())) and state.has('Boomerang') and (state.has_explosives() or state.has('Progressive Strength Upgrade'))) or (state.is_adult() and state.has('Progressive Hookshot') and (state.has_explosives() or state.has('Progressive Strength Upgrade') or state.has('Bow') or (state.has('Dins Fire') and state.has('Magic Meter'))))) # You may have to kill the lower Lizalfos as adult, then use Bombs to jump down from the upper Lizalfos as child, so you can use the Boomerang to get this GS without needing the Slingshot. (Or you could do the jumpslash recoil, but that's not in logic.) + +# Jabu Jabu's Belly Vanilla +def dung_rules_jb0(world): + set_rule(world.get_entrance('Jabu Jabus Belly Ceiling Switch'), lambda state: state.has('Slingshot') or state.has_explosives() or state.has('Boomerang')) + set_rule(world.get_entrance('Jabu Jabus Belly Tentacles'), lambda state: state.has('Boomerang')) + +# Jabu Jabu's Belly MQ +def dung_rules_jbmq(world): + set_rule(world.get_entrance('Jabu Jabus Belly Cow Switch'), lambda state: state.has('Slingshot')) + set_rule(world.get_entrance('Jabu Jabus Belly Tentacle Access'), lambda state: state.has_explosives() and state.has('Boomerang')) + set_rule(world.get_location('Jabu Jabus Belly MQ Map Chest'), lambda state: state.has_explosives()) + set_rule(world.get_location('Jabu Jabus Belly MQ Entry Side Chest'), lambda state: state.has('Slingshot')) + + # GS + set_rule(world.get_location('GS Jabu Jabu MQ Boomerang Room'), lambda state: state.can_play('Song of Time')) + set_rule(world.get_location('GS Jabu Jabu MQ Invisible Enemies Room'), lambda state: state.can_see_with_lens()) + +# Forest Temple Vanilla +def dung_rules_fot0(world): + set_rule(world.get_entrance('Forest Temple Song of Time Block'), lambda state: state.can_play('Song of Time')) + set_rule(world.get_entrance('Forest Temple Lobby Eyeball Switch'), lambda state: state.has('Bow') and state.is_adult()) + set_rule(world.get_entrance('Forest Temple Lobby Locked Door'), lambda state: state.has('Small Key (Forest Temple)', 1)) + set_rule(world.get_entrance('Forest Temple Well Connection'), lambda state: ((state.has('Iron Boots') or state.has('Progressive Hookshot', 2)) and state.is_adult()) or state.has('Progressive Scale', 2)) #Longshot can grab some very high up vines to drain the well. + set_rule(world.get_entrance('Forest Temple Scarecrows Song'), lambda state: False) #For some reason you can't actually activate this from below. Cool game. + set_rule(world.get_entrance('Forest Temple Elevator'), lambda state: state.has('Bow') and state.is_adult() and state.has('Progressive Strength Upgrade') and state.has('Small Key (Forest Temple)', 3)) + set_rule(world.get_entrance('Forest Temple Outside Backdoor'), lambda state: state.has('Hover Boots') and state.is_adult()) + set_rule(world.get_entrance('Forest Temple Twisted Hall'), lambda state: state.has('Progressive Strength Upgrade') and state.has('Small Key (Forest Temple)', 3)) + set_rule(world.get_entrance('Forest Temple Straightened Hall'), lambda state: state.has('Progressive Strength Upgrade') and state.has('Small Key (Forest Temple)', 2) and state.has('Bow')) + set_rule(world.get_entrance('Forest Temple Drop to Falling Room'), lambda state: state.has('Small Key (Forest Temple)', 5) and (state.has('Bow') or (state.has('Dins Fire') and state.has('Magic Meter')))) + set_rule(world.get_location('Forest Temple Block Push Chest'), lambda state: state.has('Progressive Strength Upgrade') and state.has('Bow') and state.is_adult()) + set_rule(world.get_location('Forest Temple Red Poe Chest'), lambda state: state.has('Bow') and state.is_adult()) + set_rule(world.get_location('Forest Temple Blue Poe Chest'), lambda state: state.has('Bow') and state.is_adult()) + + # Boss + set_rule(world.get_location('Phantom Ganon'), lambda state: state.has('Boss Key (Forest Temple)')) + set_rule(world.get_location('Phantom Ganon Heart'), lambda state: state.has('Boss Key (Forest Temple)')) + + # GS + set_rule(world.get_location('GS Forest Temple First Room'), lambda state: (state.has('Progressive Hookshot') or state.has('Bow') or (state.has('Dins Fire') and state.has('Magic Meter'))) and state.is_adult()) + set_rule(world.get_location('GS Forest Temple Lobby'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) + set_rule(world.get_location('GS Forest Temple Outdoor East'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) + set_rule(world.get_location('GS Forest Temple Outdoor West'), lambda state: (state.has('Progressive Hookshot', 2) or (state.has('Progressive Hookshot') and state.can_reach('Forest Temple Outside Upper Ledge'))) and state.is_adult()) + set_rule(world.get_location('GS Forest Temple Basement'), lambda state: state.has('Progressive Hookshot')) + +# MQ Forest Temple +# "Quirks to Know": +# - In the block puzzle room, if you turn left immediately and send a bombchu straight up the wall, it'll hit a shortcut switch and you can skip the puzzle (and needing Goron Bracelet). +# - Additionally, after hitting that switch, you can jump, from the 2nd ice block that appears, down to where the hallway twist switch is located, and then jumpslash it through the ice blocks. (You'll recoil off if you jumpslash too early, but the timing is still pretty lenient.) +def dung_rules_fotmq(world): + set_rule(world.get_entrance('Forest Temple Lobby Locked Door'), lambda state: state.has('Small Key (Forest Temple)', 1)) + set_rule(world.get_entrance('Forest Temple West Eye Switch'), lambda state: state.has('Bow')) + set_rule(world.get_entrance('Forest Temple East Eye Switch'), lambda state: state.has('Bow')) + set_rule(world.get_entrance('Forest Temple Block Puzzle Solve'), lambda state: state.has_bombchus() or state.has('Progressive Strength Upgrade')) + set_rule(world.get_entrance('Forest Temple Twisted Hall'), lambda state: state.has('Small Key (Forest Temple)', 4)) + set_rule(world.get_entrance('Forest Temple Well Connection'), lambda state: state.has('Iron Boots') or state.has('Progressive Hookshot', 2) or state.has('Progressive Scale', 2)) + set_rule(world.get_entrance('Forest Temple Webs'), lambda state: state.has('Magic Meter') and state.has('Fire Arrows') and state.has('Bow')) + set_rule(world.get_entrance('Forest Temple Climb to Top Ledges'), lambda state: state.has('Progressive Hookshot', 2) or state.has('Hover Boots') or state.can_play('Song of Time')) + set_rule(world.get_entrance('Forest Temple Longshot to NE Outdoors Ledge'), lambda state: state.has('Progressive Hookshot', 2)) + set_rule(world.get_entrance('Forest Temple Song of Time Block Climb'), lambda state: state.can_play('Song of Time')) + set_rule(world.get_entrance('Forest Temple Drop to Falling Room'), lambda state: state.has('Small Key (Forest Temple)', 5) and (state.has('Bow') or (state.has('Dins Fire') and state.has('Magic Meter')))) # Only 5 keys because the door you could 'waste' your key on is the door you're trying to use keys to get to. If you do something out of logic to open that door, then I suppose you could be forced to go out of logic again if you don't get the chest or beat Amy. But there shouldn't be any non-glitch thing that you could do that wouldn't be repeatable even if it is out of logic. + set_rule(world.get_entrance('Forest Temple Elevator'), lambda state: state.has('Bow') and state.has('Small Key (Forest Temple)', 6) and state.can_reach('Forest Temple Bow Region')) + if not (world.keysanity or world.tokensanity != 'off'): # Normal seeds will fail to generate if the Boss Key is placed at this location, as it must be a key to progress into the temple. This solution not ideal as it does not allow the Boss Key to appear at this location in beatable only seeds. + forbid_item(world.get_location('Forest Temple MQ First Chest'), 'Boss Key (Forest Temple)') + set_rule(world.get_location('Forest Temple MQ Chest Behind Lobby'), lambda state: state.can_play('Song of Time')) + set_rule(world.get_location('Forest Temple MQ Boss Key Chest'), lambda state: state.has('Small Key (Forest Temple)', 3)) + set_rule(world.get_location('Forest Temple MQ Well Chest'), lambda state: state.has('Bow')) + set_rule(world.get_location('Forest Temple MQ Map Chest'), lambda state: state.has('Bow')) + set_rule(world.get_location('Forest Temple MQ Compass Chest'), lambda state: state.has('Bow')) + + # Boss + set_rule(world.get_location('Phantom Ganon'), lambda state: state.has('Boss Key (Forest Temple)')) + set_rule(world.get_location('Phantom Ganon Heart'), lambda state: state.has('Boss Key (Forest Temple)')) + + # GS + set_rule(world.get_location('GS Forest Temple MQ Well'), lambda state: state.has('Iron Boots') or state.has('Bow')) + +# Fire Temple Vanilla +def dung_rules_fit0(world): + set_rule(world.get_entrance('Fire Temple Early Climb'), lambda state: state.has_GoronTunic() and state.has('Small Key (Fire Temple)', 3) and state.has('Progressive Strength Upgrade') and (state.has_explosives() or ((state.has('Bow') or state.has('Progressive Hookshot')) and state.is_adult()))) + set_rule(world.get_entrance('Fire Temple Fire Maze Escape'), lambda state: state.has('Small Key (Fire Temple)', 7) or (state.has('Small Key (Fire Temple)', 6) and state.has('Hover Boots') and state.has('Hammer') and state.is_adult())) + set_rule(world.get_location('Fire Temple Fire Dancer Chest'), lambda state: state.is_adult() and state.has('Hammer')) + set_rule(world.get_location('Fire Temple Boss Key Chest'), lambda state: state.is_adult() and state.has('Hammer')) + set_rule(world.get_location('Fire Temple Big Lava Room Bombable Chest'), lambda state: state.has('Small Key (Fire Temple)', 1) and state.has_explosives()) + set_rule(world.get_location('Fire Temple Big Lava Room Open Chest'), lambda state: state.has('Small Key (Fire Temple)', 1)) + set_rule(world.get_location('Fire Temple Map Chest'), lambda state: state.has('Small Key (Fire Temple)', 5) or (state.has('Small Key (Fire Temple)', 4) and state.is_adult() and state.has('Bow'))) + set_rule(world.get_location('Fire Temple Boulder Maze Upper Chest'), lambda state: state.has('Small Key (Fire Temple)', 5)) + set_rule(world.get_location('Fire Temple Boulder Maze Bombable Pit'), lambda state: state.has('Small Key (Fire Temple)', 5) and state.has_explosives()) + set_rule(world.get_location('Fire Temple Scarecrow Chest'), lambda state: state.has_ocarina() and state.has('Small Key (Fire Temple)', 5) and state.has('Progressive Hookshot') and state.is_adult()) + set_rule(world.get_location('Fire Temple Compass Chest'), lambda state: state.has('Small Key (Fire Temple)', 6)) + set_rule(world.get_location('Fire Temple Highest Goron Chest'), lambda state: state.can_play('Song of Time') and state.has('Hammer') and state.is_adult()) + set_rule(world.get_location('Fire Temple Megaton Hammer Chest'), lambda state: state.has_explosives()) + + # Boss + set_rule(world.get_location('Volvagia'), lambda state: state.has_GoronTunic() and state.has('Hammer') and state.is_adult() and state.has('Boss Key (Fire Temple)') and (state.has('Hover Boots') or (state.can_reach('Fire Temple Upper') and (state.can_play('Song of Time') or state.has_explosives())))) + set_rule(world.get_location('Volvagia Heart'), lambda state: state.has_GoronTunic() and state.has('Hammer') and state.is_adult() and state.has('Boss Key (Fire Temple)') and (state.has('Hover Boots') or (state.can_reach('Fire Temple Upper') and (state.can_play('Song of Time') or state.has_explosives())))) + + # GS + set_rule(world.get_location('GS Fire Temple Song of Time Room'), lambda state: state.has('Small Key (Fire Temple)', 1) and state.can_play('Song of Time')) + set_rule(world.get_location('GS Fire Temple Unmarked Bomb Wall'), lambda state: state.has('Small Key (Fire Temple)', 3) and state.has_explosives()) + set_rule(world.get_location('GS Fire Temple East Tower Climb'), lambda state: state.has_ocarina() and state.has('Small Key (Fire Temple)', 5) and state.has('Progressive Hookshot') and state.is_adult()) + set_rule(world.get_location('GS Fire Temple East Tower Top'), lambda state: state.has_ocarina() and state.has('Small Key (Fire Temple)', 5) and state.has('Progressive Hookshot') and state.is_adult()) + set_rule(world.get_location('GS Fire Temple Basement'), lambda state: state.has('Hammer') and state.is_adult()) + +# MQ Fire Temple +# "Quirks to Know": +# - In the "Big Lava Room", the torches are a little glitchy I guess and can only be lit with just Dins (using no Bow) if you light them in a certain order. +# - That order is south torch, then one of the other two torches, and ignoring the 3rd torch, and without leaving the room between lighting those two torches. +# - If you fail to hit the torches in this this specific way, you must leave the dungeon to reset the puzzle to try again. +# - Now actually, the ledge torch and the north torch can be lit with just Dins but you really have to know what you're doing and you have to move really quickly. +def dung_rules_fitmq(world): + set_rule(world.get_entrance('Fire Temple Lower Locked Door'), lambda state: state.has('Small Key (Fire Temple)', 5) and (state.has_explosives() or state.has('Hammer') or state.has('Progressive Hookshot'))) + set_rule(world.get_entrance('Fire Temple Hammer Statue'), lambda state: state.has('Hammer')) + set_rule(world.get_entrance('Fire Temple Early Climb'), lambda state: state.has_GoronTunic() and state.has('Small Key (Fire Temple)', 2) and state.has_fire_source()) + set_rule(world.get_entrance('Fire Temple Maze Climb'), lambda state: state.has_explosives() and state.has('Progressive Hookshot')) + set_rule(world.get_entrance('Fire Temple Maze Escape'), lambda state: state.has('Small Key (Fire Temple)', 3) and state.has('Bow')) + set_rule(world.get_location('Fire Temple MQ Chest Near Boss'), lambda state: (state.has('Hover Boots') and state.has_fire_source()) or (state.has('Progressive Hookshot') and state.has('Magic Meter') and ((state.has('Fire Arrows') and state.has('Bow')) or (state.has('Dins Fire') and ((world.difficulty != 'ohko') or state.has_GoronTunic() or state.has('Bow') or state.has('Progressive Hookshot', 2)))))) + set_rule(world.get_location('Fire Temple MQ Map Chest'), lambda state: state.has('Hammer')) + set_rule(world.get_location('Fire Temple MQ Boss Key Chest'), lambda state: state.has_fire_source() and state.has('Progressive Hookshot')) + set_rule(world.get_location('Fire Temple MQ Big Lava Room Bombable Chest'), lambda state: state.has_fire_source() and state.has('Progressive Hookshot') and state.has_explosives()) + set_rule(world.get_location('Fire Temple MQ West Tower Top Chest'), lambda state: state.has('Small Key (Fire Temple)', 4)) + + # Boss + set_rule(world.get_entrance('Fire Temple Boss Door'), lambda state: state.has_fire_source() and state.has_GoronTunic() and state.has('Hammer') and state.has('Boss Key (Fire Temple)') and (state.has('Hover Boots') or state.can_reach('Fire Temple Upper'))) + + # GS + set_rule(world.get_location('GS Fire Temple MQ East Tower Top'), lambda state: state.can_play('Song of Time') or state.has('Progressive Hookshot', 2)) + set_rule(world.get_location('GS Fire Temple MQ Fire Wall Maze Side Room'), lambda state: state.can_play('Song of Time') or state.has('Hover Boots')) + set_rule(world.get_location('GS Fire Temple MQ Above Fire Wall Maze'), lambda state: state.has('Small Key (Fire Temple)', 5) or (item_name(state, 'GS Fire Temple MQ Above Fire Wall Maze') == 'Small Key (Fire Temple)' and state.has('Small Key (Fire Temple)', 4))) # Allow key for key + set_always_allow(world.get_location('GS Fire Temple MQ Above Fire Wall Maze'), lambda item, state: item.name == 'Small Key (Fire Temple)') + +# Water Temple Vanilla +def dung_rules_wt0(world): + set_rule(world.get_entrance('Water Temple Central Pillar'), lambda state: (state.has('Bow') or (state.has('Dins Fire') and state.has('Magic Meter')) or state.has('Small Key (Water Temple)', 5)) and state.can_play('Zeldas Lullaby')) + set_rule(world.get_entrance('Water Temple Upper Locked Door'), lambda state: state.has('Small Key (Water Temple)', 5) and (state.can_play('Zeldas Lullaby') or world.keysanity)) + set_rule(world.get_location('Water Temple Torches Chest'), lambda state: (state.has('Bow') or (state.has('Dins Fire') and state.has('Magic Meter'))) and state.can_play('Zeldas Lullaby')) + set_rule(world.get_location('Water Temple Dragon Chest'), lambda state: (state.has('Progressive Strength Upgrade') and state.can_play('Zeldas Lullaby')) or (state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity) and state.can_play('Song of Time') and state.has('Bow'))) + set_rule(world.get_location('Water Temple Central Bow Target Chest'), lambda state: state.has('Bow') and state.has('Progressive Strength Upgrade') and state.can_play('Zeldas Lullaby') and (state.has('Hover Boots') or state.has('Progressive Hookshot', 2))) + set_always_allow(world.get_location('Water Temple Boss Key Chest'), lambda item, state: item.name == 'Small Key (Water Temple)') + set_rule(world.get_location('Water Temple Boss Key Chest'), lambda state: (state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity) and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and state.has('Progressive Hookshot', 2)) or item_name(state, 'Water Temple Boss Key Chest') == 'Small Key (Water Temple)') #If key for key, this lets the logic reduce the small key reqs for every other locked door. + set_rule(world.get_location('Water Temple Cracked Wall Chest'), lambda state: state.has_explosives()) + set_rule(world.get_location('Water Temple Dark Link Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity)) + set_rule(world.get_location('Water Temple River Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and state.can_play('Song of Time') and state.has('Bow') and (state.can_play('Zeldas Lullaby') or world.keysanity)) + set_rule(world.get_location('Water Temple Central Pillar Chest'), lambda state: state.has_ZoraTunic()) + + # Boss + set_rule(world.get_location('Morpha'), lambda state: state.has('Boss Key (Water Temple)') and state.has('Progressive Hookshot', 2)) + set_rule(world.get_location('Morpha Heart'), lambda state: state.has('Boss Key (Water Temple)') and state.has('Progressive Hookshot', 2)) + + # GS + set_rule(world.get_location('GS Water Temple South Basement'), lambda state: state.has_explosives() and state.can_play('Zeldas Lullaby')) + set_rule(world.get_location('GS Water Temple Serpent River'), lambda state: state.can_play('Song of Time') and state.has('Small Key (Water Temple)', 6)) + set_rule(world.get_location('GS Water Temple Falling Platform Room'), lambda state: state.has('Progressive Hookshot', 2)) + set_rule(world.get_location('GS Water Temple Central Room'), lambda state: state.has('Progressive Hookshot', 2) or (state.has('Farores Wind') and state.has('Magic'))) + #5 keys would be better but it wouldn't be compatible with the key for key scenarios, 6 will be identical pre-keysanity. + set_rule(world.get_location('GS Water Temple Near Boss Key Chest'), lambda state: state.has('Progressive Hookshot', 2) and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and (state.can_play('Zeldas Lullaby') or world.keysanity) and state.has('Small Key (Water Temple)', 6)) + +# MQ Water Temple +# Water Temple Freestanding Key: +# - There's an extra key in water temple because the door it was supposed to unlock shares a flag with something that it's required to do in order to reach the door in the first place. +# - This was fixed in OoT3D; these rules presume the door is removed. +def dung_rules_wtmq(world): + set_rule(world.get_entrance('Water Temple Water Level Switch'), lambda state: state.can_play('Zeldas Lullaby')) + set_rule(world.get_entrance('Water Temple Locked Door'), lambda state: state.has('Small Key (Water Temple)') and state.has('Progressive Hookshot', 2)) + set_rule(world.get_entrance('Water Temple Basement Gates Switch'), lambda state: state.has('Dins Fire') and state.has('Magic Meter') and (state.has('Hover Boots') or state.has_ocarina())) + set_rule(world.get_location('Water Temple MQ Map Chest'), lambda state: state.has_fire_source()) + set_rule(world.get_location('Water Temple MQ Central Pillar Chest'), lambda state: state.has_ZoraTunic() and state.has('Magic Meter') and ((state.has('Fire Arrows') and state.has('Bow')) or (state.has('Dins Fire') and state.can_play('Song of Time')))) + set_rule(world.get_location('Water Temple MQ Compass Chest'), lambda state: state.has('Bow') or (state.has('Dins Fire') and state.has('Magic Meter'))) + set_rule(world.get_location('Water Temple MQ Boss Key Chest'), lambda state: state.has('Dins Fire') and state.has('Magic Meter')) + + # Boss + set_rule(world.get_location('Morpha'), lambda state: state.has('Boss Key (Water Temple)') and state.has('Progressive Hookshot', 2)) + set_rule(world.get_location('Morpha Heart'), lambda state: state.has('Boss Key (Water Temple)') and state.has('Progressive Hookshot', 2)) + + # GS + set_rule(world.get_location('GS Water Temple MQ Lizalfos Hallway'), lambda state: state.has('Dins Fire') and state.has('Magic Meter')) + set_rule(world.get_location('GS Water Temple MQ Before Upper Water Switch'), lambda state: state.has('Progressive Hookshot', 2)) + set_rule(world.get_location('GS Water Temple MQ South Basement'), lambda state: state.has('Fire Arrows') and state.has('Bow')) + +# Spirit Temple Vanilla +def dung_rules_spt0(world): + set_rule(world.get_entrance('Spirit Temple Crawl Passage'), lambda state: state.can_play('Requiem of Spirit')) + set_rule(world.get_entrance('Spirit Temple Silver Block'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.is_adult()) + set_rule(world.get_entrance('Child Spirit Temple Climb'), lambda state: state.has('Small Key (Spirit Temple)', 1)) + set_rule(world.get_entrance('Child Spirit Temple Passthrough'), lambda state: state.has_explosives()) + set_rule(world.get_entrance('Adult Spirit Temple Passthrough'), lambda state: state.has('Small Key (Spirit Temple)', 1)) + set_rule(world.get_entrance('Spirit Temple Central Locked Door'), lambda state: state.has('Small Key (Spirit Temple)', 4) and state.has('Progressive Strength Upgrade', 2) and state.is_adult()) + set_rule(world.get_entrance('Spirit Temple Final Locked Door'), lambda state: state.has('Small Key (Spirit Temple)', 5) and (state.has('Progressive Hookshot') or state.has('Bow') or state.has_explosives())) + set_rule(world.get_location('Spirit Temple Child Left Chest'), lambda state: state.has('Boomerang') or state.has('Slingshot') or state.has_bombchus()) + set_rule(world.get_location('Spirit Temple Child Right Chest'), lambda state: state.has('Boomerang') or state.has('Slingshot') or state.has_bombchus()) + set_rule(world.get_location('Spirit Temple Compass Chest'), lambda state: state.has('Progressive Hookshot') and state.can_play('Zeldas Lullaby')) + set_rule(world.get_location('Spirit Temple Early Adult Right Chest'), lambda state: state.has('Bow') or state.has('Progressive Hookshot') or state.has_bombchus()) #requires a very specific Bombchu use, Hover Boots can be skipped by jumping on top of the rolling rock. + set_rule(world.get_location('Spirit Temple First Mirror Right Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3)) + set_rule(world.get_location('Spirit Temple First Mirror Left Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3)) + set_rule(world.get_location('Spirit Temple Map Chest'), lambda state: (state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit')) or (state.has('Magic Meter') and (state.has('Dins Fire') or (state.has('Fire Arrows') and state.has('Bow') and state.has('Progressive Strength Upgrade', 2) and state.has('Small Key (Spirit Temple)', 3) and state.is_adult())))) + set_rule(world.get_location('Spirit Temple Child Climb East Chest'), lambda state: state.has_explosives() or ((state.has('Boomerang') or state.has('Slingshot')) and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 5) and state.can_play('Requiem of Spirit') and (state.has('Boomerang') or state.has('Slingshot')))) + set_rule(world.get_location('Spirit Temple Child Climb North Chest'), lambda state: state.has_explosives() or ((state.has('Boomerang') or state.has('Slingshot')) and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 5) and state.can_play('Requiem of Spirit') and (state.has('Boomerang') or state.has('Slingshot')))) + set_rule(world.get_location('Spirit Temple Sun Block Room Chest'), lambda state: (state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit')) or (state.has('Magic Meter') and (state.has('Dins Fire') or (state.has('Fire Arrows') and state.has('Bow') and state.has('Progressive Strength Upgrade', 2) and state.has('Small Key (Spirit Temple)', 3) and state.is_adult())))) + set_rule(world.get_location('Spirit Temple Statue Hand Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.can_play('Zeldas Lullaby')) + set_rule(world.get_location('Spirit Temple NE Main Room Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.can_play('Zeldas Lullaby') and (state.has('Progressive Hookshot') or state.has("Hover Boots"))) + set_rule(world.get_location('Mirror Shield Chest'), lambda state: state.has('Small Key (Spirit Temple)', 4) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.has_explosives()) + set_rule(world.get_location('Silver Gauntlets Chest'), lambda state: (state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Hookshot', 2) and state.has_explosives()) or state.has('Small Key (Spirit Temple)', 5)) + set_rule(world.get_location('Spirit Temple Near Four Armos Chest'), lambda state: state.has('Mirror Shield') and state.has_explosives()) + set_rule(world.get_location('Spirit Temple Hallway Left Invisible Chest'), lambda state: state.can_see_with_lens() and state.has_explosives()) + set_rule(world.get_location('Spirit Temple Hallway Right Invisible Chest'), lambda state: state.can_see_with_lens() and state.has_explosives()) + set_rule(world.get_location('Spirit Temple Boss Key Chest'), lambda state: state.can_play('Zeldas Lullaby') and state.has('Bow') and state.has('Progressive Hookshot') and state.can_blast_or_smash()) + set_rule(world.get_location('Spirit Temple Topmost Chest'), lambda state: state.has('Mirror Shield')) + + # Boss + set_rule(world.get_location('Twinrova'), lambda state: state.has('Mirror Shield') and state.has_explosives() and state.has('Progressive Hookshot') and state.has('Boss Key (Spirit Temple)')) + set_rule(world.get_location('Twinrova Heart'), lambda state: state.has('Mirror Shield') and state.has_explosives() and state.has('Progressive Hookshot') and state.has('Boss Key (Spirit Temple)')) + + # GS + set_rule(world.get_location('GS Spirit Temple Metal Fence'), lambda state: state.has('Boomerang') or state.has('Slingshot') or state.has_bombchus()) + set_rule(world.get_location('GS Spirit Temple Hall to West Iron Knuckle'), lambda state: (state.has('Boomerang') and state.has('Progressive Hookshot')) or (state.has('Boomerang') and state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit')) or (state.has('Progressive Hookshot') and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.has('Small Key (Spirit Temple)', 3))) + set_rule(world.get_location('GS Spirit Temple Boulder Room'), lambda state: state.can_play('Song of Time') and (state.has('Bow') or state.has('Progressive Hookshot') or state.has_bombchus())) + set_rule(world.get_location('GS Spirit Temple Lobby'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.has('Small Key (Spirit Temple)', 3) and state.is_adult() and (state.has('Progressive Hookshot', 2) or (state.has('Progressive Hookshot') and state.has_ocarina()) or state.has('Hover Boots'))) + +# Spirit Temple MQ +# "Quirks to Know": +# Spirit Temple Sun Block Room: +# - The switch to enter this room can be reached as adult with the Hover Boots, not just with Song of Time. +# GS Spirit Temple Sun Block Room: +# - You can get the GS with Boomerang. You do have to stand in about the right spot. +# Spirit Temple Silver Block Hallway Chest: +# - In the vanilla game, this eye switch gets permanently blocked off after the silver block is pushed. The logic assumes this will be changed to a temp flag. +# - You can thaw the eye switch and get this door open with Fire Arrows as adult, by the way. +# - It can also be done with bow but the only place you can get a line of sight is with the Song of Time. The shot is a little bit precise. +def dung_rules_sptmq(world): + set_rule(world.get_entrance('Spirit Temple Crawl Passage'), lambda state: state.can_play('Requiem of Spirit')) + set_rule(world.get_entrance('Spirit Temple Ceiling Passage'), lambda state: state.has_bombchus() and state.has('Progressive Hookshot', 2) and state.has('Progressive Strength Upgrade', 2) and state.is_adult()) + set_rule(world.get_entrance('Child Spirit Temple to Shared'), lambda state: state.has_bombchus() and state.has('Small Key (Spirit Temple)', 2)) + set_rule(world.get_entrance('Adult Spirit Temple Descent'), lambda state: state.has('Fire Arrows') and state.has('Bow') and state.has('Magic Meter') and state.has('Mirror Shield')) + set_rule(world.get_entrance('Spirit Temple Climbable Wall'), lambda state: state.has('Small Key (Spirit Temple)', 6) and state.can_play('Zeldas Lullaby') and state.has('Hammer')) + set_rule(world.get_location('Spirit Temple MQ Entrance Back Left Chest'), lambda state: state.can_blast_or_smash() and ((state.can_play('Requiem of Spirit') and state.has('Slingshot')) or (state.is_adult() and state.has('Bow')))) + set_rule(world.get_location('Spirit Temple MQ Entrance Back Right Chest'), lambda state: state.has_bombchus() or ((state.is_adult() and (state.has('Bow') or state.has('Progressive Hookshot'))) or (state.can_play('Requiem of Spirit') and (state.has('Slingshot') or state.has('Boomerang'))))) + set_rule(world.get_location('Spirit Temple MQ Child Left Chest'), lambda state: state.has_bombchus() and state.has('Slingshot') and state.has('Dins Fire') and state.has('Magic Meter')) + set_rule(world.get_location('Spirit Temple MQ Silver Block Hallway Chest'), lambda state: state.has_bombchus() and state.has('Small Key (Spirit Temple)', 7) and state.has('Slingshot') and ((state.has('Dins Fire') and state.has('Magic Meter')) or (state.is_adult() and state.has('Progressive Hookshot', 2) and state.has('Progressive Strength Upgrade', 2) and state.has('Bow') and ((state.has('Fire Arrows') and state.has('Magic Meter')) or state.can_play('Song of Time'))))) + set_rule(world.get_location('Spirit Temple MQ Child Center Chest'), lambda state: state.has('Small Key (Spirit Temple)', 7) and state.has('Hammer') and state.can_play('Requiem of Spirit')) + set_rule(world.get_location('Spirit Temple MQ Child Climb South Chest'), lambda state: state.has('Small Key (Spirit Temple)', 7)) + set_rule(world.get_location('Spirit Temple MQ Lower NE Main Room Chest'), lambda state: state.can_play('Zelda Lullaby')) + set_rule(world.get_location('Spirit Temple MQ Upper NE Main Room Chest'), lambda state: state.can_see_with_lens()) + set_rule(world.get_location('Spirit Temple MQ Beamos Room Chest'), lambda state: state.has('Small Key (Spirit Temple)', 5)) + set_rule(world.get_location('Spirit Temple MQ Ice Trap Chest'), lambda state: state.has('Small Key (Spirit Temple)', 5) and state.can_play('Song of Time')) + set_rule(world.get_entrance('Mirror Shield Exit'), lambda state: state.has('Small Key (Spirit Temple)', 5) and state.can_play('Song of Time') and state.can_see_with_lens()) + set_rule(world.get_location('Spirit Temple MQ Boss Key Chest'), lambda state: state.has('Small Key (Spirit Temple)', 5) and state.can_play('Song of Time') and state.has('Mirror Shield')) + set_rule(world.get_location('Spirit Temple MQ Entrance Front Right Chest'), lambda state: state.has('Hammer')) + set_rule(world.get_location('Spirit Temple MQ Lower Adult Right Chest'), lambda state: state.has('Small Key (Spirit Temple)', 7) and state.has('Hammer') and state.has_ocarina() and state.has('Song of Time') and state.has('Eponas Song') and state.has('Suns Song') and state.has('Song of Storms') and state.has('Zeldas Lullaby')) + set_rule(world.get_location('Spirit Temple MQ Child Climb North Chest'), lambda state: state.has('Small Key (Spirit Temple)', 6)) + set_rule(world.get_location('Spirit Temple MQ Compass Chest'), lambda state: (state.can_play('Requiem of Spirit') and state.has('Small Key (Spirit Temple)', 7) and state.has('Slingshot')) or (state.is_adult() and state.has('Progressive Hookshot', 2) and state.has('Progressive Strength Upgrade', 2) and state.has('Bow')) or (state.has('Slingshot') and state.has('Bow'))) + set_rule(world.get_location('Spirit Temple MQ Sun Block Room Chest'), lambda state: state.can_play('Song of Time') or (state.is_adult() and state.has('Progressive Hookshot', 2) and state.has('Progressive Strength Upgrade', 2) and state.has('Hover Boots'))) + set_rule(world.get_entrance('Silver Gauntlets Exit'), lambda state: (state.has('Small Key (Spirit Temple)', 7) and ((state.can_play('Requiem of Spirit') and state.can_play('Song of Time')) or (state.is_adult() and state.has('Progressive Hookshot', 2) and state.has('Progressive Strength Upgrade', 2) and (state.has('Hover Boots') or state.can_play('Song of Time'))))) or (state.has('Small Key (Spirit Temple)', 4) and state.can_play('Song of Time') and state.can_see_with_lens())) + set_rule(world.get_location('Spirit Temple MQ Mirror Puzzle Invisible Chest'), lambda state: state.can_see_with_lens()) + + # Boss + set_rule(world.get_location('Twinrova'), lambda state: state.has('Mirror Shield') and state.has('Boss Key (Spirit Temple)')) + set_rule(world.get_location('Twinrova Heart'), lambda state: state.has('Mirror Shield') and state.has('Boss Key (Spirit Temple)')) + + # GS + set_rule(world.get_location('GS Spirit Temple MQ Lower Adult Right'), lambda state: state.has('Small Key (Spirit Temple)', 7) and state.has('Hammer') and state.has_ocarina() and state.has('Song of Time') and state.has('Eponas Song') and state.has('Suns Song') and state.has('Song of Storms') and state.has('Zeldas Lullaby')) + set_rule(world.get_location('GS Spirit Temple MQ Sun Block Room'), lambda state: (state.is_adult() and state.has('Progressive Hookshot', 2) and state.has('Progressive Strength Upgrade', 2) and (state.has('Hover Boots') or state.can_play('Song of Time'))) or (state.can_play('Song of Time') and state.has('Boomerang'))) + set_rule(world.get_location('GS Spirit Temple MQ Iron Knuckle West'), lambda state: state.has('Small Key (Spirit Temple)', 7)) + set_rule(world.get_location('GS Spirit Temple MQ Iron Knuckle North'), lambda state: state.has('Small Key (Spirit Temple)', 7)) + +# Shadow Temple Vanilla +def dung_rules_sht0(world): + set_rule(world.get_entrance('Shadow Temple First Pit'), lambda state: state.has('Hover Boots')) + set_rule(world.get_entrance('Shadow Temple Bomb Wall'), lambda state: state.has_explosives() and state.has('Small Key (Shadow Temple)', 1)) + set_rule(world.get_entrance('Shadow Temple Hookshot Target'), lambda state: state.has('Progressive Hookshot') and state.has('Small Key (Shadow Temple)', 3)) + set_rule(world.get_entrance('Shadow Temple Boat'), lambda state: state.can_play('Zeldas Lullaby') and state.has('Small Key (Shadow Temple)', 4)) + set_rule(world.get_location('Shadow Temple Falling Spikes Upper Chest'), lambda state: state.has('Progressive Strength Upgrade')) + set_rule(world.get_location('Shadow Temple Falling Spikes Switch Chest'), lambda state: state.has('Progressive Strength Upgrade')) + set_rule(world.get_location('Shadow Temple Invisible Spikes Chest'), lambda state: state.has('Small Key (Shadow Temple)', 2)) + set_rule(world.get_location('Shadow Temple Freestanding Key'), lambda state: state.has('Small Key (Shadow Temple)', 2) and state.has('Progressive Hookshot')) + + # Boss + set_rule(world.get_location('Bongo Bongo'), lambda state: state.has('Small Key (Shadow Temple)', 5) and (state.has('Bow') or state.has('Progressive Hookshot', 2)) and state.has('Boss Key (Shadow Temple)')) + set_rule(world.get_location('Bongo Bongo Heart'), lambda state: state.has('Small Key (Shadow Temple)', 5) and (state.has('Bow') or state.has('Progressive Hookshot', 2)) and state.has('Boss Key (Shadow Temple)')) + + # GS + set_rule(world.get_location('GS Shadow Temple Like Like Room'), lambda state: state.has('Progressive Hookshot')) + set_rule(world.get_location('GS Shadow Temple Crusher Room'), lambda state: state.has('Progressive Hookshot')) + set_rule(world.get_location('GS Shadow Temple Near Ship'), lambda state: state.has('Progressive Hookshot', 2) and state.has('Small Key (Shadow Temple)', 4)) + +# Shadow Temple MQ +# "Quirks to Know": +# GS Shadow Temple After Ship: +# - You do not need to bring down the statue to get this. +# - If you position carefully you can get it with just the hookshot. Hopefully you don't fall in! +# Shadow Temple Bomb Flower Room Chest: +# - With lens logic off, you may have to fight this guy not knowing where he is. +# - Dins can set off all the flowers, then a few bombs can maybe hit the few spots in the room that doesn't reach. +# - And arrows can help too if you run out of magic. And maybe you'll have strength a fair amount of the time. +# - So I think if you're really playing with lens logic off, you should be able to handle this. +def dung_rules_shtmq(world): + set_rule(world.get_entrance('Shadow Temple First Pit'), lambda state: (state.has('Fire Arrows') and state.has('Bow')) or state.has('Hover Boots')) + set_rule(world.get_entrance('Shadow Temple Beginning Locked Door'), lambda state: state.has_explosives() and state.has('Small Key (Shadow Temple)', 6)) + set_rule(world.get_entrance('Shadow Temple Bomb Wall'), lambda state: state.has_explosives() and state.has('Small Key (Shadow Temple)', 2)) + set_rule(world.get_entrance('Shadow Temple Hookshot Target'), lambda state: state.has('Hover Boots') and state.has('Progressive Hookshot') and state.has('Small Key (Shadow Temple)', 4)) + set_rule(world.get_entrance('Shadow Temple Boat'), lambda state: state.can_play('Zeldas Lullaby') and state.has('Small Key (Shadow Temple)', 5)) + set_rule(world.get_entrance('Shadow Temple Longshot Target'), lambda state: state.has('Bow') and state.can_play('Song of Time') and state.has('Progressive Hookshot', 2)) + set_rule(world.get_location('Shadow Temple MQ Hover Boots Chest'), lambda state: state.can_play('Song of Time') and state.has('Bow')) + set_rule(world.get_location('Shadow Temple MQ Invisible Blades Visible Chest'), lambda state: state.can_play('Song of Time')) + set_rule(world.get_location('Shadow Temple MQ Invisible Blades Invisible Chest'), lambda state: state.can_play('Song of Time')) + set_rule(world.get_location('Shadow Temple MQ Beamos Silver Rupees Chest'), lambda state: state.has('Progressive Hookshot', 2)) + set_rule(world.get_location('Shadow Temple MQ Falling Spikes Upper Chest'), lambda state: state.has('Progressive Strength Upgrade')) + set_rule(world.get_location('Shadow Temple MQ Falling Spikes Switch Chest'), lambda state: state.has('Progressive Strength Upgrade')) + set_rule(world.get_location('Shadow Temple MQ Invisible Spikes Chest'), lambda state: state.has('Hover Boots') and state.has('Small Key (Shadow Temple)', 3)) + set_rule(world.get_location('Shadow Temple MQ Stalfos Room Chest'), lambda state: state.has('Hover Boots') and state.has('Small Key (Shadow Temple)', 3) and state.has('Progressive Hookshot', 2)) + set_rule(world.get_location('Shadow Temple MQ Spike Walls Left Chest'), lambda state: state.has('Small Key (Shadow Temple)', 6)) + set_rule(world.get_location('Shadow Temple MQ Boss Key Chest'), lambda state: state.has('Small Key (Shadow Temple)', 6)) + + # Boss + set_rule(world.get_location('Bongo Bongo'), lambda state: state.has('Bow') and state.has('Boss Key (Shadow Temple)')) + set_rule(world.get_location('Bongo Bongo Heart'), lambda state: state.has('Bow') and state.has('Boss Key (Shadow Temple)')) + + # GS + set_rule(world.get_location('GS Shadow Temple MQ Crusher Room'), lambda state: state.has('Progressive Hookshot')) + set_rule(world.get_location('GS Shadow Temple MQ Near Boss'), lambda state: state.has('Bow')) + + +# Bottom of the Well Vanilla +def dung_rules_bw0(world): + set_rule(world.get_location('Bottom of the Well Front Left Hidden Wall'), lambda state: state.can_see_with_lens()) + set_rule(world.get_location('Bottom of the Well Front Center Bombable'), lambda state: state.has_explosives()) + set_rule(world.get_location('Bottom of the Well Right Bottom Hidden Wall'), lambda state: state.can_see_with_lens()) + set_rule(world.get_location('Bottom of the Well Center Large Chest'), lambda state: state.can_see_with_lens()) + set_rule(world.get_location('Bottom of the Well Center Small Chest'), lambda state: state.can_see_with_lens()) + set_rule(world.get_location('Bottom of the Well Back Left Bombable'), lambda state: state.has_explosives()) + set_rule(world.get_location('Bottom of the Well Defeat Boss'), lambda state: state.can_play('Zeldas Lullaby') and (state.has('Kokiri Sword') or world.logic_child_deadhand)) #Sword not strictly necessary but frankly being forced to do this with sticks isn't fair + set_rule(world.get_location('Bottom of the Well Invisible Chest'), lambda state: state.can_play('Zeldas Lullaby') and state.can_see_with_lens()) + set_rule(world.get_location('Bottom of the Well Underwater Front Chest'), lambda state: state.can_play('Zeldas Lullaby')) + set_rule(world.get_location('Bottom of the Well Underwater Left Chest'), lambda state: state.can_play('Zeldas Lullaby')) + set_rule(world.get_location('Bottom of the Well Basement Chest'), lambda state: state.has_explosives() or (((state.has('Small Key (Bottom of the Well)', 3) and state.can_see_with_lens()) or (state.has('Dins Fire') and state.has('Magic Meter'))) and state.has('Progressive Strength Upgrade'))) + set_rule(world.get_location('Bottom of the Well Locked Pits'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.can_see_with_lens()) #These pits are really unfair. + set_rule(world.get_location('Bottom of the Well Behind Right Grate'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.can_see_with_lens()) + + # GS + set_rule(world.get_location('GS Well West Inner Room'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang') and state.can_see_with_lens()) + set_rule(world.get_location('GS Well East Inner Room'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang') and state.can_see_with_lens()) + set_rule(world.get_location('GS Well Like Like Cage'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang') and state.can_see_with_lens()) + +# Bottom of the Well MQ +# "Quirks to Know": +# Water Lowering Switch: +# - You can jumpslash this switch by jumping off with a Deku Stick, so no requirements need to be listed to lower the water. +# Switch for West Inner Room Door: +# - Explosives are not required to reach this switch. You can sidehop or backflip over the corner of the pit. +def dung_rules_bwmq(world): + set_rule(world.get_location('Bottom of the Well MQ Compass Chest'), lambda state: state.has('Kokiri Sword') or world.logic_child_deadhand) + set_rule(world.get_location('Bottom of the Well MQ Dead Hand Freestanding Key'), lambda state: state.has_explosives()) + set_rule(world.get_location('Bottom of the Well MQ Map Chest'), lambda state: state.can_play('Zeldas Lullaby')) + set_rule(world.get_location('Bottom of the Well MQ East Inner Room Freestanding Key'), lambda state: state.can_play('Zeldas Lullaby') and (state.has_explosives() or state.has('Slingshot') or state.has('Boomerang'))) + set_always_allow(world.get_location('Bottom of the Well MQ Lens Chest'), lambda item, state: item.name == 'Small Key (Bottom of the Well)') + set_rule(world.get_location('Bottom of the Well MQ Lens Chest'), lambda state: state.can_play('Zeldas Lullaby') and state.has_explosives() and (state.has('Small Key (Bottom of the Well)', 2) or item_name(state, 'Bottom of the Well MQ Lens Chest') == 'Small Key (Bottom of the Well)')) + + # GS + set_rule(world.get_location('GS Well MQ West Inner Room'), lambda state: state.can_play('Zeldas Lullaby') and state.can_see_with_lens()) + set_always_allow(world.get_location('GS Well MQ Coffin Room'), lambda item, state: item.name == 'Small Key (Bottom of the Well)') + set_rule(world.get_location('GS Well MQ Coffin Room'), lambda state: state.has('Small Key (Bottom of the Well)', 2) or item_name(state, 'GS Well MQ Coffin Room') == 'Small Key (Bottom of the Well)') + +# Ice Cavern Vanilla +def dung_rules_ic0(world): + set_rule(world.get_location('Ice Cavern Map Chest'), lambda state: state.has_bottle()) + set_rule(world.get_location('Ice Cavern Compass Chest'), lambda state: state.has_bottle()) + set_rule(world.get_location('Ice Cavern Freestanding PoH'), lambda state: state.has_bottle()) + set_rule(world.get_location('Ice Cavern Iron Boots Chest'), lambda state: state.has_bottle()) + set_rule(world.get_location('Sheik in Ice Cavern'), lambda state: state.has_bottle() and state.is_adult()) + + # GS + set_rule(world.get_location('GS Ice Cavern Spinning Scythe Room'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) + set_rule(world.get_location('GS Ice Cavern Heart Piece Room'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.has_bottle()) + set_rule(world.get_location('GS Ice Cavern Push Block Room'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.has_bottle()) + +# Ice Cavern MQ +# The rule exists on the entrance to avoid needing to change Blue Fire checks elsewhere. +# "Quirks to Know": +# GS Ice Cavern Scarecrow: +# - You can use the hover boots to get onto one of the taller pillars, and from there you can Longshot to the GS. +# - This skips the Ocarina requirement and is only relevant if Hover Boots into Zora's Domain is in logic. +def dung_rules_icmq(world): + set_rule(world.get_entrance('Ice Cavern Entrance'), lambda state: state.has_bottle() and (state.has_explosives() or state.has('Progressive Hookshot') or state.has('Bow'))) + set_rule(world.get_location('Ice Cavern MQ Freestanding PoH'), lambda state: state.has_explosives()) + + # GS + set_rule(world.get_location('GS Ice Cavern MQ Red Ice'), lambda state: state.can_play('Song of Time')) + set_rule(world.get_location('GS Ice Cavern MQ Scarecrow'), lambda state: (state.has_ocarina() and state.has('Progressive Hookshot')) or (state.has('Hover Boots') and state.has('Progressive Hookshot', 2))) + +# Gerudo Training Grounds Vanilla +def dung_rules_gtg0(world): + set_rule(world.get_entrance('Gerudo Training Ground Left Silver Rupees'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) + set_rule(world.get_entrance('Gerudo Training Ground Beamos'), lambda state: state.has_explosives()) + set_rule(world.get_entrance('Gerudo Training Grounds Right Locked Doors'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 9)) + set_rule(world.get_entrance('Gerudo Training Grounds Maze Ledge'), lambda state: state.can_play('Song of Time')) + set_rule(world.get_entrance('Gerudo Training Grounds Right Hookshot Target'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) + set_rule(world.get_entrance('Gerudo Training Grounds Hammer Target'), lambda state: state.has('Hammer') and state.has('Bow') and state.is_adult()) + set_rule(world.get_entrance('Gerudo Training Grounds Hidden Hookshot Target'), lambda state: state.has('Progressive Hookshot') and state.can_see_with_lens() and state.is_adult()) + set_rule(world.get_location('Gerudo Training Grounds Lobby Left Chest'), lambda state: state.has('Bow') and state.is_adult()) + set_rule(world.get_location('Gerudo Training Grounds Lobby Right Chest'), lambda state: state.has('Bow') and state.is_adult()) + set_rule(world.get_location('Gerudo Training Grounds Beamos Chest'), lambda state: state.has_explosives()) + set_rule(world.get_location('Gerudo Training Grounds Hidden Ceiling Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 3) and state.can_see_with_lens()) + set_rule(world.get_location('Gerudo Training Grounds Maze Path First Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 4)) + set_rule(world.get_location('Gerudo Training Grounds Maze Path Second Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 6)) + set_rule(world.get_location('Gerudo Training Grounds Maze Path Third Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 7)) + set_rule(world.get_location('Gerudo Training Grounds Maze Path Final Chest'), lambda state: (state.has('Small Key (Gerudo Training Grounds)', 9)) or (item_name(state, 'Gerudo Training Grounds Maze Path Final Chest') == 'Small Key (Gerudo Training Grounds)' and state.has('Small Key (Gerudo Training Grounds)', 8))) #Allow key for key + set_always_allow(world.get_location('Gerudo Training Grounds Maze Path Final Chest'), lambda item, state: item.name == 'Small Key (Gerudo Training Grounds)') + set_rule(world.get_location('Gerudo Training Grounds Underwater Silver Rupee Chest'), lambda state: state.has('Progressive Hookshot') and state.can_play('Song of Time') and state.has('Iron Boots') and state.is_adult() and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic())) + set_rule(world.get_location('Gerudo Training Grounds Hammer Room Switch Chest'), lambda state: state.has('Hammer') and state.is_adult()) + set_rule(world.get_location('Gerudo Training Grounds Eye Statue Chest'), lambda state: state.has('Bow') and state.is_adult()) + set_rule(world.get_location('Gerudo Training Grounds Near Scarecrow Chest'), lambda state: state.has('Bow') and state.is_adult()) + set_rule(world.get_location('Gerudo Training Grounds Heavy Block First Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.can_see_with_lens() and state.is_adult()) + set_rule(world.get_location('Gerudo Training Grounds Heavy Block Second Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.can_see_with_lens() and state.is_adult()) + set_rule(world.get_location('Gerudo Training Grounds Heavy Block Third Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.can_see_with_lens() and state.is_adult()) + set_rule(world.get_location('Gerudo Training Grounds Heavy Block Fourth Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.can_see_with_lens() and state.is_adult()) + +# Gerudo Training Grounds MQ +def dung_rules_gtgmq(world): + set_rule(world.get_entrance('Gerudo Training Grounds Left Door'), lambda state: state.has_fire_source()) + set_rule(world.get_entrance('Gerudo Training Grounds Right Door'), lambda state: state.has('Bow')) + set_rule(world.get_entrance('Gerudo Training Grounds Longshot Target'), lambda state: state.has('Progressive Hookshot', 2)) + set_rule(world.get_entrance('Gerudo Training Grounds Song of Time Block'), lambda state: state.can_play('Song of Time') and state.can_see_with_lens() and state.has_bottle()) + set_rule(world.get_entrance('Gerudo Training Grounds Rusted Switch'), lambda state: state.has('Hammer')) + set_rule(world.get_location('Gerudo Training Grounds MQ Hidden Ceiling Chest'), lambda state: state.can_see_with_lens()) + set_rule(world.get_location('Gerudo Training Grounds MQ Maze Path Third Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 1)) + set_rule(world.get_location('Gerudo Training Grounds MQ Underwater Silver Rupee Chest'), lambda state: state.has('Hover Boots') and state.has_fire_source() and state.has('Progressive Hookshot') and state.has('Iron Boots') and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic()) and ((world.difficulty != 'ohko') or state.has_bottle() or (state.has('Nayrus Love') and state.has('Magic Meter')))) + set_rule(world.get_location('Gerudo Training Grounds MQ Heavy Block Chest'), lambda state: state.has('Progressive Strength Upgrade', 2)) + set_rule(world.get_location('Gerudo Training Grounds MQ Eye Statue Chest'), lambda state: state.has('Bow')) + set_rule(world.get_location('Gerudo Training Grounds MQ Ice Arrows Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 3) or (item_name(state, 'Gerudo Training Grounds MQ Ice Arrows Chest') == 'Small Key (Gerudo Training Grounds)' and state.has('Small Key (Gerudo Training Grounds)'))) + set_always_allow(world.get_location('Gerudo Training Grounds MQ Ice Arrows Chest'), lambda item, state: item.name == 'Small Key (Gerudo Training Grounds)') + # There is Blue Fire in GTG. I also had to make this edit to the same check in baseclasses. + add_rule(world.get_location('King Zora Thawed'), lambda state: state.has_bottle() and state.can_reach('Gerudo Training Grounds Stalfos Room'), 'or') + +# Ganon's Castle Vanilla +def dung_rules_gc0(world): + set_rule(world.get_entrance('Ganons Castle Light Trial'), lambda state: state.has('Progressive Strength Upgrade', 3)) + set_rule(world.get_entrance('Ganons Castle Tower'), lambda state: (world.skipped_trials['Forest'] or state.has('Forest Trial Clear')) and (world.skipped_trials['Fire'] or state.has('Fire Trial Clear')) and (world.skipped_trials['Water'] or state.has('Water Trial Clear')) and (world.skipped_trials['Shadow'] or state.has('Shadow Trial Clear')) and (world.skipped_trials['Spirit'] or state.has('Spirit Trial Clear')) and (world.skipped_trials['Light'] or state.has('Light Trial Clear'))) + set_rule(world.get_location('Ganons Castle Forest Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and (state.has('Fire Arrows') or state.has('Dins Fire'))) + set_rule(world.get_location('Ganons Castle Fire Trial Clear'), lambda state: state.has_GoronTunic() and state.has('Progressive Strength Upgrade', 3) and state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and state.has('Progressive Hookshot', 2)) + set_rule(world.get_location('Ganons Castle Water Trial Clear'), lambda state: state.has_bottle() and state.has('Hammer') and state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows')) + set_rule(world.get_location('Ganons Castle Shadow Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and state.has('Hammer') and ((state.has('Fire Arrows') and (state.has('Hover Boots') or state.can_see_with_lens())) or (state.has('Progressive Hookshot', 2) and (state.has('Hover Boots') or (state.has('Dins Fire') and state.can_see_with_lens()))))) + set_rule(world.get_location('Ganons Castle Shadow Trial First Chest'), lambda state: (state.has('Magic Meter') and state.has('Bow') and state.has('Fire Arrows')) or state.has('Progressive Hookshot') or state.has('Hover Boots') or state.can_play('Song of Time')) + set_rule(world.get_location('Ganons Castle Shadow Trial Second Chest'), lambda state: (state.has('Magic Meter') and state.has('Bow') and state.has('Fire Arrows')) or (state.has('Progressive Hookshot', 2) and (state.has('Hover Boots') or (state.has('Dins Fire') and state.has('Magic Meter'))))) + set_rule(world.get_location('Ganons Castle Spirit Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and state.has('Mirror Shield') and state.has_bombchus() and state.has('Progressive Hookshot')) + set_rule(world.get_location('Ganons Castle Spirit Trial First Chest'), lambda state: state.has('Progressive Hookshot')) + set_rule(world.get_location('Ganons Castle Spirit Trial Second Chest'), lambda state: state.has('Progressive Hookshot') and state.has_bombchus() and state.can_see_with_lens()) + set_rule(world.get_location('Ganons Castle Light Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Progressive Hookshot') and state.has('Light Arrows') and state.has('Small Key (Ganons Castle)', 2)) + set_rule(world.get_location('Ganons Castle Light Trail Invisible Enemies Chest'), lambda state: state.can_see_with_lens()) + set_rule(world.get_location('Ganons Castle Light Trial Lullaby Chest'), lambda state: state.can_play('Zeldas Lullaby') and state.has('Small Key (Ganons Castle)', 1)) +# Ganon's Castle MQ +# MQ Ganons Castle +# "Quirks to Know": +# Ganons Castle Shadow Trial First Chest: +# - You can spawn this chest with strength but you have to make sure the bombflower explodes in about the same position it spawns in. +# Just in general I want to say if there's a silver rupee inside a Beamos, you can just brush the Beamos to get it. That comes up a few times, but this trial without explosives can get a little hairy. +def dung_rules_gcmq(world): + set_rule(world.get_entrance('Ganons Castle Light Trial'), lambda state: state.has('Progressive Strength Upgrade', 3)) + set_rule(world.get_entrance('Ganons Castle Tower'), lambda state: (world.skipped_trials['Forest'] or state.has('Forest Trial Clear')) and (world.skipped_trials['Fire'] or state.has('Fire Trial Clear')) and (world.skipped_trials['Water'] or state.has('Water Trial Clear')) and (world.skipped_trials['Shadow'] or state.has('Shadow Trial Clear')) and (world.skipped_trials['Spirit'] or state.has('Spirit Trial Clear')) and (world.skipped_trials['Light'] or state.has('Light Trial Clear'))) + set_rule(world.get_location('Ganons Castle MQ Forest Trial First Chest'), lambda state: state.has('Bow')) + set_rule(world.get_location('Ganons Castle MQ Forest Trial Second Chest'), lambda state: state.has_fire_source()) + set_rule(world.get_location('Ganons Castle MQ Forest Trial Freestanding Key'), lambda state: state.has('Progressive Hookshot')) + set_rule(world.get_location('Ganons Castle Forest Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and state.can_play('Song of Time')) + set_rule(world.get_location('Ganons Castle Fire Trial Clear'), lambda state: state.has_GoronTunic() and state.has('Progressive Strength Upgrade', 3) and state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and (state.has('Progressive Hookshot', 2) or state.has('Hover Boots'))) + set_rule(world.get_location('Ganons Castle MQ Water Trial Chest'), lambda state: state.has_bottle()) + set_rule(world.get_location('Ganons Castle Water Trial Clear'), lambda state: state.has_bottle() and state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and state.has('Small Key (Ganons Castle)', 3)) + set_rule(world.get_location('Ganons Castle MQ Shadow Trial First Chest'), lambda state: (state.has('Bow') and (state.has('Progressive Hookshot') or state.has('Hover Boots'))) or (state.has('Hover Boots') and state.can_see_with_lens() and (state.has_explosives() or state.has('Progressive Strength Upgrade') or (state.has('Dins Fire') and state.has('Magic Meter'))))) + set_rule(world.get_location('Ganons Castle MQ Shadow Trial Second Chest'), lambda state: state.has('Bow') and state.can_see_with_lens() and (state.has('Hover Boots') or (state.has('Progressive Hookshot') and state.has_fire_source()))) + set_rule(world.get_location('Ganons Castle Shadow Trial Clear'), lambda state: state.has('Bow') and state.has('Magic Meter') and state.has('Light Arrows') and state.can_see_with_lens() and (state.has('Hover Boots') or (state.has('Progressive Hookshot') and state.has_fire_source()))) + set_rule(world.get_location('Ganons Castle MQ Spirit Trial First Chest'), lambda state: state.has('Bow') and state.has('Hammer')) + set_rule(world.get_location('Ganons Castle MQ Spirit Trial Second Chest'), lambda state: state.has('Bow') and state.has('Hammer') and state.has_bombchus() and state.can_see_with_lens()) + set_rule(world.get_location('Ganons Castle MQ Spirit Trial Sun Front Left Chest'), lambda state: state.has('Bow') and state.has('Hammer') and state.has_bombchus() and state.has('Fire Arrows') and state.has('Magic Meter') and state.has('Mirror Shield')) + set_rule(world.get_location('Ganons Castle MQ Spirit Trial Sun Back Left Chest'), lambda state: state.has('Bow') and state.has('Hammer') and state.has_bombchus() and state.has('Fire Arrows') and state.has('Magic Meter') and state.has('Mirror Shield')) + set_rule(world.get_location('Ganons Castle MQ Spirit Trial Golden Gauntlets Chest'), lambda state: state.has('Bow') and state.has('Hammer') and state.has_bombchus() and state.has('Fire Arrows') and state.has('Magic Meter') and state.has('Mirror Shield')) + set_rule(world.get_location('Ganons Castle MQ Spirit Trial Sun Back Right Chest'), lambda state: state.has('Bow') and state.has('Hammer') and state.has_bombchus() and state.has('Fire Arrows') and state.has('Magic Meter') and state.has('Mirror Shield')) + set_rule(world.get_location('Ganons Castle Spirit Trial Clear'), lambda state: state.has('Bow') and state.has('Hammer') and state.has_bombchus() and state.has('Fire Arrows') and state.has('Magic Meter') and state.has('Mirror Shield') and state.has('Light Arrows')) + set_rule(world.get_location('Ganons Castle MQ Light Trial Lullaby Chest'), lambda state: state.can_play('Zeldas Lullaby')) + set_rule(world.get_location('Ganons Castle Light Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Progressive Hookshot') and state.has('Light Arrows') and state.has('Small Key (Ganons Castle)', 3)) + + # Song locations can only be a song + #song_locations = [world.get_location(location) for location in + # ['Song from Composer Grave', 'Impa at Castle', 'Song from Malon', 'Song from Saria', + # 'Song from Ocarina of Time', 'Song at Windmill', 'Sheik Forest Song', 'Sheik at Temple', + # 'Sheik in Crater', 'Sheik in Ice Cavern', 'Sheik in Kakariko', 'Sheik at Colossus']] + #for location in world.get_locations(): + # if location in song_locations: + # add_item_rule(location, lambda item: item.type == 'Song') + # else: + # add_item_rule(location, lambda item: item.type != 'Song') From 168440ee53e45d380cdefb156d32b4c03c8b8377 Mon Sep 17 00:00:00 2001 From: AmazingAmpharos Date: Fri, 24 Aug 2018 04:36:13 -0500 Subject: [PATCH 340/755] Fix item counts I was short a Rupees (50) in Spirit Temple MQ and missed pulling the Rupees (200) from the always item pool to vanilla BotW. These errors offset to cause the item pool to appear correctly sized in both vanilla and MQ but caused waves in mixed. I feel pretty good about this being the correct item pool now. --- ItemList.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ItemList.py b/ItemList.py index 6e3b0a7a5..8d2d30ed9 100644 --- a/ItemList.py +++ b/ItemList.py @@ -33,7 +33,7 @@ + ['Rupees (5)'] * 13 + ['Rupees (20)'] * 5 + ['Rupees (50)'] * 7 - + ['Rupees (200)'] * 4 + + ['Rupees (200)'] * 3 + ['Bow'] * 3 + ['Slingshot'] * 3 + ['Bomb Bag'] * 3 @@ -78,7 +78,7 @@ + ['Recovery Heart'] + ['Bombs (20)']) -SpT_MQ = (['Rupees (50)'] +SpT_MQ = (['Rupees (50)'] * 2 + ['Arrows (30)']) ShT_vanilla = (['Arrows (30)']) @@ -88,6 +88,7 @@ BW_vanilla = (['Recovery Heart'] + ['Bombs (10)'] + + ['Rupees (200)'] + ['Deku Nuts (5)'] + ['Deku Nuts (10)'] + ['Deku Shield'] From ad648c940612f7ae45a865cc86f25630cf30100c Mon Sep 17 00:00:00 2001 From: mzxrules Date: Sat, 25 Aug 2018 01:52:10 -0400 Subject: [PATCH 341/755] Fixed issues with corrupted Master Quest data --- MQ.py | 95 ++++++++++++++++++++++++++++++++++----------------- data/mqu.json | 28 +++++++-------- 2 files changed, 78 insertions(+), 45 deletions(-) diff --git a/MQ.py b/MQ.py index 4c1f375e8..dc2c3f25c 100644 --- a/MQ.py +++ b/MQ.py @@ -16,10 +16,11 @@ # # Rooms: # -# Object file initialization data will be patched over the existing object file data, bleeding -# into the subsequent original actor spawn data, thus won't contribute to the room file size +# Object file initialization data will be appended to the end of the room file. +# The total size consumed by the object file data is NUM_OBJECTS * 0x02, aligned to +# the nearest 0x04 bytes # -# Actor spawn data will be appended to the end of the room file. +# Actor spawn data will be appended to the end of the room file, after the objects. # The total size consumed by the actor spawn data is NUM_ACTORS * 0x10 # # Finally: @@ -49,7 +50,10 @@ def __init__(self, file): self.remap = int(self.remap, 16) def __repr__(self): - return "{0}: {1} {2}, remap {3}".format(self.name, self.start, self.end, self.remap) + remap = "None" + if self.remap is not None: + remap = "{0:x}".format(self.remap) + return "{0}: {1:x} {2:x}, remap {3}".format(self.name, self.start, self.end, remap) def relocate(self, rom:LocalRom): if self.remap is None: @@ -93,12 +97,14 @@ def write_data(self, rom:LocalRom): loop -= 1 if code == 0x04: #rooms - room_list_offset = rom.read_int24(headcur+5) + room_list_offset = rom.read_int24(headcur + 5) + elif code == 0x0D: #paths - path_offset = self.write_path_data(rom) - rom.write_int32(headcur+4, path_offset) + path_offset = self.append_path_data(rom) + rom.write_int32(headcur + 4, path_offset) + elif code == 0x0E: #transition actors - t_offset = rom.read_int24(headcur+5) + t_offset = rom.read_int24(headcur + 5) addr = self.file.start + t_offset write_actor_data(rom, addr, self.transition_actors) @@ -106,6 +112,7 @@ def write_data(self, rom:LocalRom): code = rom.read_byte(headcur) # update file references + self.file.end = align16(self.file.end) update_dmadata(rom, self.file) update_scene_table(rom, self.id, self.file.start, self.file.end) @@ -118,21 +125,10 @@ def write_data(self, rom:LocalRom): rom.write_int32s(cur, [room.file.start, room.file.end]) cur += 0x08 - - def get_path_size(self, path): - return ((len(path)*6+3)//4) * 4 - - - def get_path_data_filesize(self): - size = len(self.paths) * 8 - for path in self.paths: - path_size = self.get_path_size(path) - size += path_size - return size - + # appends path data to the end of the rom # returns segment address to path data - def write_path_data(self, rom:LocalRom): + def append_path_data(self, rom:LocalRom): start = self.file.start cur = self.file.end records = [] @@ -140,22 +136,22 @@ def write_path_data(self, rom:LocalRom): for path in self.paths: nodes = len(path) - offset = get_segment_address(2, cur-start) + offset = get_segment_address(2, cur - start) records.append((nodes, offset)) #flatten - points = [x for points in path for x in points ] + points = [x for points in path for x in points] rom.write_int16s(cur, points) - cur += self.get_path_size(path) + path_size = align4(len(path) * 6) + cur += path_size - records_offset = get_segment_address(2, cur-start) + records_offset = get_segment_address(2, cur - start) for node, offset in records: rom.write_byte(cur, node) - rom.write_int32(cur+4, offset) + rom.write_int32(cur + 4, offset) cur += 8 - # self.file.end = ((cur + 0xF)//0x10) * 0x10 - + self.file.end = cur return records_offset @@ -185,17 +181,29 @@ def write_data(self, rom:LocalRom): rom.write_byte(headcur + 1, len(self.actors)) rom.write_int32(headcur + 4, get_segment_address(3, offset)) + elif code == 0x0B: # objects - offset = rom.read_int24(headcur+5) - addr = self.file.start + offset + offset = self.append_object_data(rom, self.objects) rom.write_byte(headcur + 1, len(self.objects)) - rom.write_int16s(addr, self.objects) + rom.write_int32(headcur + 4, get_segment_address(3, offset)) headcur += 8 code = rom.read_byte(headcur) + # update file reference + self.file.end = align16(self.file.end) update_dmadata(rom, self.file) + + + def append_object_data(self, rom:LocalRom, objects): + offset = self.file.end - self.file.start + cur = self.file.end + rom.write_int16s(cur, objects) + + objects_size = align4(len(objects) * 2) + self.file.end += objects_size + return offset def patch_files(world, rom:LocalRom): @@ -262,6 +270,25 @@ def get_dma_record(rom:LocalRom, cur): return start, end, size +def verify_remap(scenes): + def test_remap(file:File): + if file.remap is not None: + if file.start < file.remap: + return False + return True + print("test code: verify remap won't corrupt data") + + for scene in scenes: + file = scene.file + result = test_remap(file) + print("{0} - {1}".format(result, file)) + + for room in scene.rooms: + file = room.file + result = test_remap(file) + print("{0} - {1}".format(result, file)) + + def verify_dma(rom:LocalRom): cur = SCENE_DMADATA @@ -318,3 +345,9 @@ def write_actor_data(rom:LocalRom, cur, actors): for actor in actors: rom.write_int16s(cur, actor) cur += 0x10 + +def align4(value): + return ((value + 3) // 4) * 4 + +def align16(value): + return ((value + 0xF) // 0x10) * 0x10 \ No newline at end of file diff --git a/data/mqu.json b/data/mqu.json index c1f97cccb..49f72bbd9 100644 --- a/data/mqu.json +++ b/data/mqu.json @@ -687,7 +687,7 @@ "Name": "Scene 1, Room 2", "Start": "01F4E000", "End": "01F55DA0", - "RemapStart": "1F4DCB0" + "RemapStart": "1F4DCD0" }, "Id": 2, "Objects": [ @@ -1332,7 +1332,7 @@ "Name": "Scene 2, Room 1", "Start": "02759000", "End": "0275EE90", - "RemapStart": "2758190" + "RemapStart": "27581B0" }, "Id": 1, "Objects": [ @@ -2110,7 +2110,7 @@ "Name": "Scene 3, Room 7", "Start": "0241F000", "End": "02432000", - "RemapStart": "241E580" + "RemapStart": "241E5A0" }, "Id": 7, "Objects": [ @@ -2414,7 +2414,7 @@ "Name": "Scene 3, Room 16", "Start": "02481000", "End": "02485FA0", - "RemapStart": "2480750" + "RemapStart": "2480760" }, "Id": 16, "Objects": [ @@ -2774,7 +2774,7 @@ "Name": "Scene 4, Room 2", "Start": "02308000", "End": "02317FD0", - "RemapStart": "2307B20" + "RemapStart": "2307B30" }, "Id": 2, "Objects": [ @@ -3781,7 +3781,7 @@ "Name": "Scene 5, Room 4", "Start": "025FC000", "End": "02601FE0", - "RemapStart": "25fb8c0" + "RemapStart": "25FB8D0" }, "Id": 4, "Objects": [ @@ -3925,7 +3925,7 @@ "Name": "Scene 5, Room 8", "Start": "0261F000", "End": "0262CCD0", - "RemapStart": null + "RemapStart": "0261EF00" }, "Id": 8, "Objects": [ @@ -3964,7 +3964,7 @@ "Name": "Scene 5, Room 9", "Start": "0262D000", "End": "02634FE0", - "RemapStart": "262ce20" + "RemapStart": "262CD30" }, "Id": 9, "Objects": [ @@ -4001,7 +4001,7 @@ "Name": "Scene 5, Room 10", "Start": "02635000", "End": "0263AFB0", - "RemapStart": "2634f20" + "RemapStart": "2634E40" }, "Id": 10, "Objects": [ @@ -4041,7 +4041,7 @@ "Name": "Scene 5, Room 11", "Start": "0263B000", "End": "0263F9B0", - "RemapStart": "263b010" + "RemapStart": null }, "Id": 11, "Objects": [ @@ -4619,7 +4619,7 @@ "Name": "Scene 6, Room 0", "Start": "02AF8000", "End": "02B08F40", - "RemapStart": "2af7b40" + "RemapStart": "2AF7C00" }, "Id": 0, "Objects": [ @@ -4817,7 +4817,7 @@ "Name": "Scene 6, Room 5", "Start": "02B25000", "End": "02B3CF40", - "RemapStart": "2b24360" + "RemapStart": "2B24380" }, "Id": 5, "Objects": [ @@ -6062,7 +6062,7 @@ "Name": "Scene 7, Room 13", "Start": "02813000", "End": "02813FB0", - "RemapStart": "28127e0" + "RemapStart": "2812800" }, "Id": 13, "Objects": [ @@ -7936,7 +7936,7 @@ "Name": "Scene 11, Room 6", "Start": "028BF000", "End": "028C6F40", - "RemapStart": "28be180" + "RemapStart": "28BE190" }, "Id": 6, "Objects": [ From d203bc9495707e3cc7228d50c5e5756a3e96d165 Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Sun, 26 Aug 2018 19:22:50 -0300 Subject: [PATCH 342/755] Biggoron Logic Fix --- Rules.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Rules.py b/Rules.py index d7695b8b2..de15ad53d 100644 --- a/Rules.py +++ b/Rules.py @@ -101,7 +101,7 @@ def global_rules(world): set_rule(world.get_entrance('Death Mountain Entrance'), lambda state: state.has('Zeldas Letter') or state.is_adult() or world.open_kakariko) set_rule(world.get_location('DM Trail Freestanding PoH'), lambda state: world.open_kakariko or (world.difficulty != 'ohko') or state.has('Zeldas Letter') or state.can_blast_or_smash() or ((state.has('Dins Fire') or state.has('Nayrus Love')) and state.has('Magic Meter')) or state.has('Bow') or state.has('Progressive Strength Upgrade') or state.has_bottle() or state.has('Hover Boots')) set_rule(world.get_location('Death Mountain Bombable Chest'), lambda state: state.can_blast_or_smash()) - set_rule(world.get_location('Biggoron'), lambda state: (not world.logic_no_trade_biggoron) and (state.has('Progressive Strength Upgrade') or state.can_blast_or_smash() or state.has('Bow')) and state.is_adult() and state.can_finish_adult_trades() and state.guarantee_hint()) + set_rule(world.get_location('Biggoron'), lambda state: (not world.logic_no_trade_biggoron) and state.is_adult() and state.can_finish_adult_trades() and state.guarantee_hint()) set_rule(world.get_location('Goron City Leftmost Maze Chest'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade', 2) or state.has('Hammer'))) set_rule(world.get_location('Goron City Left Maze Chest'), lambda state: state.can_blast_or_smash() or (state.has('Progressive Strength Upgrade', 2) and state.is_adult())) set_rule(world.get_location('Goron City Right Maze Chest'), lambda state: state.can_blast_or_smash() or (state.has('Progressive Strength Upgrade', 2) and state.is_adult())) From debc2dd6a43463f1dbf70ab60af42a079e8304aa Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Sun, 26 Aug 2018 19:22:54 -0300 Subject: [PATCH 343/755] Biggoron Logic Fix --- Regions.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Regions.py b/Regions.py index e8eca09d8..ae41e881a 100644 --- a/Regions.py +++ b/Regions.py @@ -299,7 +299,7 @@ def create_regions(world): 'GS Shadow Temple Tripple Giant Pot']), create_ow_region( 'Death Mountain', - ['Death Mountain Bombable Chest', 'Biggoron', 'DM Trail Freestanding PoH', 'GS Mountain Trail Bean Patch', + ['Death Mountain Bombable Chest', 'DM Trail Freestanding PoH', 'GS Mountain Trail Bean Patch', 'GS Mountain Trail Bomb Alcove', 'GS Mountain Trail Path to Crater', 'GS Mountain Trail Above Dodongo\'s Cavern'], ['Death Mountain Exit', 'Goron City Entrance', 'Mountain Crater Entrance', 'Mountain Summit Fairy', @@ -321,7 +321,7 @@ def create_regions(world): create_ow_region('Darunias Chamber', ['Darunias Joy'], ['Darunias Chamber Exit']), create_ow_region( 'Death Mountain Crater Upper', - ['DM Crater Wall Freestanding PoH', 'GS Death Mountain Crater Crate'], + ['DM Crater Wall Freestanding PoH', 'Biggoron', 'GS Death Mountain Crater Crate'], ['Crater Exit', 'Crater Hover Boots', 'Crater Scarecrow', 'Top of Crater Grotto']), create_ow_region( 'Death Mountain Crater Lower', From 494c00610b43a8fff24577ca21995570d2b9ec8d Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Sun, 26 Aug 2018 19:22:57 -0300 Subject: [PATCH 344/755] Biggoron Logic Fix --- BaseClasses.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BaseClasses.py b/BaseClasses.py index 82d8ebbcd..8b0d308b0 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -338,7 +338,7 @@ def can_leave_forest(self): def can_finish_adult_trades(self): zora_thawed = self.has_bottle() and (self.can_play('Zeldas Lullaby') or (self.has('Hover Boots') and self.world.logic_zora_with_hovers)) and (self.can_reach('Ice Cavern') or self.can_reach('Ganons Castle Water Trial') or self.has('Progressive Wallet', 2)) carpenter_access = self.has('Epona') or self.has('Progressive Hookshot', 2) - return (self.has('Claim Check') or ((self.has('Eyedrops') or self.has('Eyeball Frog') or self.has('Prescription') or self.has('Broken Sword')) and zora_thawed) or ((self.has('Poachers Saw') or self.has('Odd Mushroom') or self.has('Cojiro') or self.has('Pocket Cucco') or self.has('Pocket Egg')) and zora_thawed and carpenter_access)) + return (self.has('Claim Check') or ((self.has('Progressive Strength Upgrade') or self.can_blast_or_smash() or self.has('Bow')) and (((self.has('Eyedrops') or self.has('Eyeball Frog') or self.has('Prescription') or self.has('Broken Sword')) and zora_thawed) or ((self.has('Poachers Saw') or self.has('Odd Mushroom') or self.has('Cojiro') or self.has('Pocket Cucco') or self.has('Pocket Egg')) and zora_thawed and carpenter_access)))) def has_bottle(self): is_normal_bottle = lambda item: (item.startswith('Bottle') and item != 'Bottle with Letter') From ac19f7ea31f33fdc54cc3adb45db981da549d4b7 Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Mon, 27 Aug 2018 18:48:17 -0300 Subject: [PATCH 345/755] Logic Fix: Shadow Temple Freestanding Key This was unintentionally in logic using Bombchus. --- Rules.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Rules.py b/Rules.py index de15ad53d..2a8950b05 100644 --- a/Rules.py +++ b/Rules.py @@ -435,7 +435,7 @@ def dung_rules_sht0(world): set_rule(world.get_location('Shadow Temple Falling Spikes Upper Chest'), lambda state: state.has('Progressive Strength Upgrade')) set_rule(world.get_location('Shadow Temple Falling Spikes Switch Chest'), lambda state: state.has('Progressive Strength Upgrade')) set_rule(world.get_location('Shadow Temple Invisible Spikes Chest'), lambda state: state.has('Small Key (Shadow Temple)', 2)) - set_rule(world.get_location('Shadow Temple Freestanding Key'), lambda state: state.has('Small Key (Shadow Temple)', 2) and state.has('Progressive Hookshot')) + set_rule(world.get_location('Shadow Temple Freestanding Key'), lambda state: state.has('Small Key (Shadow Temple)', 2) and state.has('Progressive Hookshot') and (state.has('Bomb Bag') or state.has('Progressive Strength Upgrade'))) # boss rules set_rule(world.get_location('Bongo Bongo'), lambda state: state.has('Small Key (Shadow Temple)', 5) and (state.has('Bow') or state.has('Progressive Hookshot', 2)) and state.has('Boss Key (Shadow Temple)')) From c357b6aae626c5d6ed1013beb3b3f89d6d047752 Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Mon, 27 Aug 2018 18:52:12 -0300 Subject: [PATCH 346/755] Logic Fix: GS Death Mountain Crater Crate This GS was not checking for the child access requirements, so it thought you could get it as adult. --- Rules.py | 1 + 1 file changed, 1 insertion(+) diff --git a/Rules.py b/Rules.py index 2a8950b05..3b4a125b8 100644 --- a/Rules.py +++ b/Rules.py @@ -251,6 +251,7 @@ def global_rules(world): set_rule(world.get_location('GS Mountain Trail Path to Crater'), lambda state: state.has('Hammer') and state.is_adult() and state.nighttime()) set_rule(world.get_location('GS Mountain Trail Above Dodongo\'s Cavern'), lambda state: state.has('Hammer') and state.is_adult() and state.nighttime()) set_rule(world.get_location('GS Goron City Boulder Maze'), lambda state: state.has_explosives()) + set_rule(world.get_location('GS Death Mountain Crater Crate'), lambda state: state.can_blast_or_smash()) set_rule(world.get_location('GS Goron City Center Platform'), lambda state: state.is_adult()) set_rule(world.get_location('GS Mountain Crater Bean Patch'), lambda state: state.can_play('Bolero of Fire') and state.has_bottle()) set_rule(world.get_location('GS Dodongo\'s Cavern Alcove Above Stairs'), lambda state: (state.has('Progressive Hookshot') and state.is_adult()) or (state.has('Boomerang') and (state.has_explosives() or state.has('Progressive Strength Upgrade')))) From 54333754a55ce156244dbcae4a59261358de353b Mon Sep 17 00:00:00 2001 From: Unknown Date: Tue, 28 Aug 2018 18:38:07 -0400 Subject: [PATCH 347/755] Allow more than 2 items per shop --- ASM/src/config.asm | 10 -- ASM/src/hacks.asm | 12 +++ ASM/src/shop.asm | 85 +++++++++++++---- ItemList.py | 37 ++++---- MQ.py | 207 +++++++++++++++++++++++++++++++++++++++-- Messages.py | 20 ++-- Rom.py | 72 ++++++++++---- Rules.py | 4 +- data/base2current.json | 2 +- version.py | 2 +- 10 files changed, 362 insertions(+), 89 deletions(-) diff --git a/ASM/src/config.asm b/ASM/src/config.asm index 78f32248f..ff9c00223 100755 --- a/ASM/src/config.asm +++ b/ASM/src/config.asm @@ -50,13 +50,3 @@ FAIRY_ITEMS: .byte 0x52 ; Crater .byte 0x53 ; Ganon's Castle .align 4 - -; Shop Item save mask -SHOP_ITEM_SAVE_MASK: -.halfword 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 ; 00 - 07 -.halfword 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 ; 08 - 0F -.halfword 0x0000, 0x0001, 0x0002, 0x0004, 0x0008, 0x0000, 0x0000, 0x0010 ; 10 - 17 -.halfword 0x0000, 0x0020, 0x0040, 0x0080, 0x0100, 0x0000, 0x0000, 0x0000 ; 18 - 1F -.halfword 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 ; 20 - 27 -.halfword 0x0000, 0x0200, 0x0400, 0x0000, 0x0000, 0x0000, 0x0000, 0x0800 ; 28 - 2F -.halfword 0x1000, 0x2000 ; 30 - 31 diff --git a/ASM/src/hacks.asm b/ASM/src/hacks.asm index ab9cb71f3..6fb800c77 100755 --- a/ASM/src/hacks.asm +++ b/ASM/src/hacks.asm @@ -428,7 +428,19 @@ .org 0xC004EC j Check_Sold_Out +; Allow Shop Item ID up to 100 instead of 50 +; slti at, v1, 0x32 +.org 0xC0067C + slti at, v1, 100 + ; Set sold out override ; lh t6, 0x1c(a1) .org 0xC018A0 jal Set_Sold_Out + +; Only run init function if ID is in normal range +; jr t9 +.org 0xC6C7A8 + jal Shop_Keeper_Init_ID +.org 0xC6C920 + jal Shop_Keeper_Init_ID diff --git a/ASM/src/shop.asm b/ASM/src/shop.asm index 46ce604dd..fa33b812f 100644 --- a/ASM/src/shop.asm +++ b/ASM/src/shop.asm @@ -1,21 +1,37 @@ +.definelabel Shop_Item_Save_Offset, 0xD4 + (0x2C * 0x1C) + 0x10 + Check_Sold_Out: - lh t6, 0x1c(a0) ; t0 = var + lh t6, 0x1c(a0) + + ; if var is under 0x32, never sell out + addi t5, t6, -0x32 + bltz t5, @@return + li v0, 0 + + ; t2 = bit mask + andi t1, t5, 0x07 + li t2, 1 + sllv t2, t2, t1 + + ; t1 = byte offset + srl t1, t5, 3 - li t1, SHOP_ITEM_SAVE_MASK - sll t0, t6, 1 - add t1, t1, t0 - lh t2, 0x00(t1) ; t2 = shop mask - li t1, SAVE_CONTEXT - lh t3, 0x0F30(t1) ; t3 = shop flags - and t4, t2, t3 + ; load byte from save + li t4, SAVE_CONTEXT + add t4, t4, t1 + lb t3, (Shop_Item_Save_Offset)(t4) + ; mask out the bit flag + and t3, t3, t2 + + ; if not set then, do nothing li v0, 0 - beqz t4, @@return ; if flag is not set, return 0 + beqz t3, @@return nop + ; Else, change to sold out li t5, 0x26 sh t5, 0x1c(a0) ; set item to SOLD OUT - li v0, 1 ; return 1 @@return: @@ -24,16 +40,47 @@ Check_Sold_Out: Set_Sold_Out: - lh t6, 0x1c(a1) ; t0 = var + lh t6, 0x1c(a1) + + ; if var is under 0x32, never sell out + addi t5, t6, -0x32 + bltz t5, @@return + li v0, 0 + + ; t2 = bit mask + andi t1, t5, 0x07 + li t2, 1 + sllv t2, t2, t1 - li t1, SHOP_ITEM_SAVE_MASK - sll t0, t6, 1 - add t1, t1, t0 - lh t2, 0x00(t1) ; t2 = shop mask - li t1, SAVE_CONTEXT - lh t3, 0x0F30(t1) ; t3 = shop flags - or t4, t2, t3 - sh t4, 0x0F30(t1) ; set shop flag + ; t1 = byte offset + srl t1, t5, 3 + ; load byte from save + li t4, SAVE_CONTEXT + add t4, t4, t1 + lb t3, (Shop_Item_Save_Offset)(t4) + + ; set and save the bit flag + or t3, t3, t2 + sb t3, (Shop_Item_Save_Offset)(t4) + +@@return: jr ra nop + + +Shop_Keeper_Init_ID: + addiu sp, sp, -0x10 + sw ra, 0x08 (sp) + + slti at, a0, 0x32 + beqz at, @@return + move v0, a0 + + jalr t9 + nop +@@return: + lw ra, 0x08 (sp) + addiu sp, sp, 0x10 + jr ra + nop diff --git a/ItemList.py b/ItemList.py index ae46f74f5..13eab277e 100644 --- a/ItemList.py +++ b/ItemList.py @@ -418,39 +418,38 @@ def get_pool_core(world): + ['Buy Hylian Shield'] + ['Buy Goron Tunic'] + ['Buy Zora Tunic'] - + ['Buy Deku Nut (5)'] * 3 + ['Buy Deku Nut (10)'] * 1 - + ['Buy Deku Stick (1)'] * 4 - + ['Buy Deku Seeds (30)'] * 3 - + ['Buy Arrows (10)'] * 2 + ['Buy Arrows (30)'] * 2 - + ['Buy Bombchu (5)'] * 2 + ['Buy Bombchu (10)'] * 2 + ['Buy Bombchu (20)'] - + ['Buy Bombs (5)'] * 2 + ['Buy Bombs (10)'] * 2 + ['Buy Bombs (20)'] - + ['Buy Green Potion'] * 3 - + ['Buy Red Potion'] * 2 - + ['Buy Blue Fire'] * 2 - + ['Buy Fairy\'s Spirit'] * 2 - + ['Buy Bottle Bug'] * 2 - + ['Buy Fish'] * 2 - + shopfiller + + ['Buy Deku Nut (5)'] * 2 + ['Buy Deku Nut (10)'] + + ['Buy Deku Stick (1)'] * 3 + + ['Buy Deku Seeds (30)'] * 2 + + ['Buy Arrows (10)'] + ['Buy Arrows (30)'] + + ['Buy Bombchu (5)'] * 2 + ['Buy Bombchu (10)'] + ['Buy Bombchu (20)'] + + ['Buy Bombs (5)'] * 2 + ['Buy Bombs (10)'] + ['Buy Bombs (20)'] + + ['Buy Green Potion'] + + ['Buy Red Potion'] + + ['Buy Blue Fire'] + + ['Buy Fairy\'s Spirit'] + + ['Buy Bottle Bug'] + + ['Buy Fish'] + + shopfiller * 2 + shopsanity_rupees) else: pool.extend(['Buy Deku Shield'] + ['Buy Hylian Shield'] + ['Buy Goron Tunic'] + ['Buy Zora Tunic'] - + ['Buy Deku Nut (5)'] + ['Buy Deku Nut (10)'] - + ['Buy Deku Stick (1)'] * 2 + + ['Buy Deku Nut (5)'] * 2 + ['Buy Deku Nut (10)'] + + ['Buy Deku Stick (1)'] * 3 + ['Buy Deku Seeds (30)'] * 2 + ['Buy Arrows (10)'] + ['Buy Arrows (30)'] - + ['Buy Bombchu (5)'] + ['Buy Bombchu (10)'] + ['Buy Bombchu (20)'] - + ['Buy Bombs (5)'] + ['Buy Bombs (10)'] + ['Buy Bombs (20)'] + + ['Buy Bombchu (5)'] * 2 + ['Buy Bombchu (10)'] + ['Buy Bombchu (20)'] + + ['Buy Bombs (5)'] * 2 + ['Buy Bombs (10)'] + ['Buy Bombs (20)'] + ['Buy Green Potion'] + ['Buy Red Potion'] + ['Buy Blue Fire'] + ['Buy Fairy\'s Spirit'] + ['Buy Bottle Bug'] + ['Buy Fish'] - + ['Sold Out'] * 18 - + shopfiller + + shopfiller * 2 + shopsanity_rupees) pool.extend(alwaysitems) diff --git a/MQ.py b/MQ.py index 788752bdc..92bffe289 100644 --- a/MQ.py +++ b/MQ.py @@ -29,12 +29,12 @@ from Utils import local_path from Rom import LocalRom import json +from struct import pack, unpack -SCENE_DMADATA = 0xB320 # address where scene files begin to appear in dmadata +DMA_TABLE = 0x7430 SCENE_TABLE = 0xB71440 - class File(object): def __init__(self, file): self.name = file['Name'] @@ -240,7 +240,7 @@ def get_dma_record(rom:LocalRom, cur): def verify_dma(rom:LocalRom): - cur = SCENE_DMADATA + cur = DMA_TABLE next_start = -1 errors = [] @@ -249,7 +249,7 @@ def verify_dma(rom:LocalRom): this_start, this_end, this_size = get_dma_record(rom, cur) next_start, next_end, next_size = get_dma_record(rom, cur + 0x10) - if next_start == 0: + if next_start == 0 and next_end == 0: break if this_end > next_start: @@ -270,16 +270,19 @@ def verify_dma(rom:LocalRom): def update_dmadata(rom:LocalRom, file:File): - cur = SCENE_DMADATA + cur = DMA_TABLE key, start, end = file.dma_key, file.start, file.end - record_key = rom.read_int32(cur) - while record_key != 0 and record_key != key: + dma_start, dma_end, dma_size = get_dma_record(rom, cur) + while dma_start != key: + if dma_start == 0 and dma_end == 0: + break + cur += 0x10 - record_key = rom.read_int32(cur) + dma_start, dma_end, dma_size = get_dma_record(rom, cur) - if record_key == 0: + if dma_start == 0: raise Exception('dmadata update failed: key {0:x} not found in dmadata'.format(key)) else: @@ -295,3 +298,189 @@ def write_actor_data(rom:LocalRom, cur, actors): for actor in actors: rom.write_int16s(cur, actor) cur += 0x10 + + +# This function inserts space in a ovl section at the section's offset +# The section size is expanded +# Every relocation entry in the section after the offet is moved accordingly +# Every relocation value that is after the inserted space is increased accordingly +def insert_space(rom, file, vram_start, insert_section, insert_offset, insert_size): + sections = [] + val_hi = {} + adr_hi = {} + + # get the ovl header + cur = file.end - rom.read_int32(file.end - 4) + section_total = 0 + for i in range(0, 4): + # build the section offsets + section_size = rom.read_int32(cur) + sections.append(section_total) + section_total += section_size + + # increase the section to be expanded + if insert_section == i: + rom.write_int32(cur, section_size + insert_size) + + cur += 4 + + # calculate the insert address in vram + insert_vram = sections[insert_section] + insert_offset + vram_start + insert_rom = sections[insert_section] + insert_offset + file.start + + # iterate over the relocation table + relocate_count = rom.read_int32(cur) + cur += 4 + for i in range(0, relocate_count): + entry = rom.read_int32(cur) + + # parse relocation entry + section = ((entry & 0xC0000000) >> 30) - 1 + type = (entry & 0x3F000000) >> 24 + offset = entry & 0x00FFFFFF + + # calculate relocation address in rom + address = file.start + sections[section] + offset + + # move relocation if section is increased and it's after the insert + if insert_section == section and offset >= insert_offset: + # rebuild new relocation entry + rom.write_int32(cur, + ((section + 1) << 30) | + (type << 24) | + (offset + insert_size)) + + # value contains the vram address + value = rom.read_int32(address) + raw_value = value + if type == 2: + # Data entry: value is the raw vram address + pass + elif type == 4: + # Jump OP: Get the address from a Jump instruction + value = 0x80000000 | (value & 0x03FFFFFF) << 2 + elif type == 5: + # Load High: Upper half of an address load + reg = (value >> 16) & 0x1F + val_hi[reg] = (value & 0x0000FFFF) << 16 + adr_hi[reg] = address + # Do not process, wait until the lower half is read + value = None + elif type == 6: + # Load Low: Lower half of the address load + reg = (value >> 21) & 0x1F + val_low = value & 0x0000FFFF + val_low = unpack('h', pack('H', val_low))[0] + # combine with previous load high + value = val_hi[reg] + val_low + else: + # unknown. OoT does not use any other types + value = None + + # update the vram values if it's been moved + if value != None and value >= insert_vram: + # value = new vram address + new_value = value + insert_size + + if type == 2: + # Data entry: value is the raw vram address + rom.write_int32(address, new_value) + elif type == 4: + # Jump OP: Set the address in the Jump instruction + op = rom.read_int32(address) & 0xFC000000 + new_value = (new_value & 0x0FFFFFFC) >> 2 + new_value = op | new_value + rom.write_int32(address, new_value) + elif type == 6: + # Load Low: Lower half of the address load + op = rom.read_int32(address) & 0xFFFF0000 + new_val_low = new_value & 0x0000FFFF + rom.write_int32(address, op | new_val_low) + + # Load High: Upper half of an address load + op = rom.read_int32(adr_hi[reg]) & 0xFFFF0000 + new_val_hi = (new_value & 0xFFFF0000) >> 16 + if new_val_low >= 0x8000: + # add 1 if the lower part is negative for borrow + new_val_hi += 1 + rom.write_int32(adr_hi[reg], op | new_val_hi) + + cur += 4 + + # Move rom bytes + rom.buffer[(insert_rom + insert_size):(file.end + insert_size)] = rom.buffer[insert_rom:file.end] + rom.buffer[insert_rom:(insert_rom + insert_size)] = [0] * insert_size + file.end += insert_size + + +def add_relocations(rom, file, addresses): + relocations = [] + sections = [] + header_size = rom.read_int32(file.end - 4) + header = file.end - header_size + cur = header + + # read section sizes and build offsets + section_total = 0 + for i in range(0, 4): + section_size = rom.read_int32(cur) + sections.append(section_total) + section_total += section_size + cur += 4 + + # get all entries in relocation table + relocate_count = rom.read_int32(cur) + cur += 4 + for i in range(0, relocate_count): + relocations.append(rom.read_int32(cur)) + cur += 4 + + # create new enties + for address in addresses: + if isinstance(address, tuple): + # if type provided use it + type, address = address + else: + # Otherwise, try to infer type from value + value = rom.read_int32(address) + op = value >> 26 + type = 2 # default: data + if op == 0x02 or op == 0x03: # j or jal + type = 4 + elif op == 0x0F: # lui + type = 5 + elif op == 0x08: # addi + type = 6 + + # Calculate section and offset + address = address - file.start + section = 0 + for section_start in sections: + if address >= section_start: + section += 1 + else: + break + offset = address - sections[section - 1] + + # generate relocation entry + relocations.append((section << 30) + | (type << 24) + | (offset & 0x00FFFFFF)) + + # Rebuild Relocation Table + cur = header + 0x10 + relocations.sort(key = lambda val: val & 0xC0FFFFFF) + rom.write_int32(cur, len(relocations)) + cur += 4 + for relocation in relocations: + rom.write_int32(cur, relocation) + cur += 4 + + # Add padded 0? + rom.write_int32(cur, 0) + cur += 4 + + # Update Header and File size + new_header_size = (cur + 4) - header + rom.write_int32(cur, new_header_size) + file.end += (new_header_size - header_size) diff --git a/Messages.py b/Messages.py index 43deaa51a..6fcafc89a 100644 --- a/Messages.py +++ b/Messages.py @@ -8,8 +8,6 @@ TABLE_SIZE_LIMIT = 0x43A8 TEXT_SIZE_LIMIT = 0x38130 -SHOP_ITEM_START = 0xC022CC - # name of type, followed by number of additional bytes to read, follwed by a function that prints the code CONTROL_CODES = { 0x00: ('pad', 0, lambda _: '' ), @@ -541,9 +539,9 @@ def display(self): return ', '.join(meta_data) + '\n' + ', '.join(func_data) # write the shop item back - def write(self, rom, index): + def write(self, rom, shop_table_address, index): - entry_offset = SHOP_ITEM_START + 0x20 * index + entry_offset = shop_table_address + 0x20 * index bytes = [] bytes += int_to_bytes(self.object, 2) @@ -562,9 +560,9 @@ def write(self, rom, index): rom.write_bytes(entry_offset, bytes) # read a single message - def __init__(self, rom, index): + def __init__(self, rom, shop_table_address, index): - entry_offset = SHOP_ITEM_START + 0x20 * index + entry_offset = shop_table_address + 0x20 * index entry = rom.read_bytes(entry_offset, 0x20) self.index = index @@ -584,18 +582,18 @@ def __init__(self, rom, index): __str__ = __repr__ = display # reads each of the shop items -def read_shop_items(rom): +def read_shop_items(rom, shop_table_address): shop_items = [] - for index in range(0x032): - shop_items.append( Shop_Item(rom, index) ) + for index in range(0, 100): + shop_items.append( Shop_Item(rom, shop_table_address, index) ) return shop_items # writes each of the shop item back into rom -def write_shop_items(rom, shop_items): +def write_shop_items(rom, shop_table_address, shop_items): for s in shop_items: - s.write(rom, s.index) + s.write(rom, shop_table_address, s.index) # these are unused shop items, and contain text ids that are used elsewhere, and should not be moved SHOP_ITEM_EXCEPTIONS = [0x0A, 0x0B, 0x11, 0x12, 0x13, 0x14, 0x29] diff --git a/Rom.py b/Rom.py index 9ed01789f..593b7796b 100644 --- a/Rom.py +++ b/Rom.py @@ -1129,9 +1129,42 @@ def write_save_table(rom): # change the exit at child/day crawlspace to the end of zelda's goddess cutscene rom.write_bytes(0x21F60DE, [0x05, 0xF0]) + ### Load Shop File + from MQ import File, verify_dma, update_dmadata, insert_space, add_relocations + # Move shop actor file to free space + shop_item_file = File({ + 'Name':'En_GirlA', + 'Start':'00C004E0', + 'End':'00C02E00', + 'RemapStart':'03485000', + }) + shop_item_file.relocate(rom) + + # Increase the shop item table size + shop_item_vram_start = rom.read_int32(0x00B5E490 + (0x20 * 4) + 0x08) + insert_space(rom, shop_item_file, shop_item_vram_start, 1, 0x3C + (0x20 * 50), 0x20 * 50) + + # Add relocation entries for shop item table + new_relocations = [] + for i in range(50, 100): + new_relocations.append(shop_item_file.start + 0x1DEC + (i * 0x20) + 0x04) + new_relocations.append(shop_item_file.start + 0x1DEC + (i * 0x20) + 0x14) + new_relocations.append(shop_item_file.start + 0x1DEC + (i * 0x20) + 0x1C) + add_relocations(rom, shop_item_file, new_relocations) + + # update actor table + rom.write_int32s(0x00B5E490 + (0x20 * 4), + [shop_item_file.start, + shop_item_file.end, + shop_item_vram_start, + shop_item_vram_start + (shop_item_file.end - shop_item_file.start)]) + + # Update DMA Table + update_dmadata(rom, shop_item_file) + verify_dma(rom) messages = read_messages(rom) - shop_items = read_shop_items(rom) + shop_items = read_shop_items(rom, shop_item_file.start + 0x1DEC) remove_unused_messages(messages) # Set Big Poe count to get reward from buyer @@ -1275,8 +1308,6 @@ def write_save_table(rom): rom.write_bytes(0xCA3EA2, [item_data[item.name][3][0], item_data[item.name][3][1]]) rom.write_bytes(0xCA3EA6, [item_data[item.name][3][2], item_data[item.name][3][3]]) - free_shop_ids = list(unused_shop_ids) - # add a cheaper bombchu pack to the bombchu shop # describe update_message_by_id(messages, 0x80FE, '\x08\x05\x41Bombchu (5 pieces) 60 Rupees\x01\x05\x40This looks like a toy mouse, but\x01it\'s actually a self-propelled time\x01bomb!\x09\x0A', 0x03) @@ -1296,7 +1327,6 @@ def write_save_table(rom): update_message_by_id(messages, shop_items[0x001C].description_message, "\x08\x05\x41Bombchu (10 pieces) 99 Rupees\x01\x05\x40This looks like a toy mouse, but\x01it's actually a self-propelled time\x01bomb!\x09\x0A") update_message_by_id(messages, shop_items[0x001C].purchase_message, "\x08Bombchu 10 pieces 100 Rupees\x09\x01\x01\x1B\x05\x42Buy\x01Don't buy\x05\x40") - if world.shopsanity == 'off': # Add more bombchus to make them more accessible if world.bombchus_in_logic: @@ -1306,15 +1336,15 @@ def write_save_table(rom): ItemFactory('Buy Bombchu (5)').index) else: # kokiri shop - shop_objs = place_shop_items(rom, shop_items, messages, free_shop_ids, - world.get_region('Kokiri Shop').locations) + shop_objs = place_shop_items(rom, shop_items, messages, + world.get_region('Kokiri Shop').locations, True) shop_objs |= {0x00FC, 0x00B2, 0x0101, 0x0102, 0x00FD, 0x00C5} # Shop objects rom.write_byte(0x2587029, len(shop_objs)) rom.write_int32(0x258702C, 0x0300F600) rom.write_int16s(0x2596600, list(shop_objs)) # bazaar - shop_objs = place_shop_items(rom, shop_items, messages, free_shop_ids, + shop_objs = place_shop_items(rom, shop_items, messages, world.get_region('Castle Town Bazaar').locations) shop_objs |= {0x005B, 0x00B2, 0x00C5, 0x0107, 0x00C9, 0x016B} # Shop objects rom.write_byte(0x28E4029, len(shop_objs)) @@ -1322,7 +1352,7 @@ def write_save_table(rom): rom.write_int16s(0x28EBA40, list(shop_objs)) # goron shop - shop_objs = place_shop_items(rom, shop_items, messages, free_shop_ids, + shop_objs = place_shop_items(rom, shop_items, messages, world.get_region('Goron Shop').locations) shop_objs |= {0x00C9, 0x00B2, 0x0103, 0x00AF} # Shop objects rom.write_byte(0x2D33029, len(shop_objs)) @@ -1330,7 +1360,7 @@ def write_save_table(rom): rom.write_int16s(0x2D37340, list(shop_objs)) # zora shop - shop_objs = place_shop_items(rom, shop_items, messages, free_shop_ids, + shop_objs = place_shop_items(rom, shop_items, messages, world.get_region('Zora Shop').locations) shop_objs |= {0x005B, 0x00B2, 0x0104, 0x00FE} # Shop objects rom.write_byte(0x2D5B029, len(shop_objs)) @@ -1338,7 +1368,7 @@ def write_save_table(rom): rom.write_int16s(0x2D5FB40, list(shop_objs)) # kakariko potion shop - shop_objs = place_shop_items(rom, shop_items, messages, free_shop_ids, + shop_objs = place_shop_items(rom, shop_items, messages, world.get_region('Kakariko Potion Shop Front').locations) shop_objs |= {0x0159, 0x00B2, 0x0175, 0x0122} # Shop objects rom.write_byte(0x2D83029, len(shop_objs)) @@ -1346,7 +1376,7 @@ def write_save_table(rom): rom.write_int16s(0x2D8D500, list(shop_objs)) # market potion shop - shop_objs = place_shop_items(rom, shop_items, messages, free_shop_ids, + shop_objs = place_shop_items(rom, shop_items, messages, world.get_region('Castle Town Potion Shop').locations) shop_objs |= {0x0159, 0x00B2, 0x0175, 0x00C5, 0x010C, 0x016B} # Shop objects rom.write_byte(0x2DB0029, len(shop_objs)) @@ -1354,7 +1384,7 @@ def write_save_table(rom): rom.write_int16s(0x2DB4E40, list(shop_objs)) # bombchu shop - shop_objs = place_shop_items(rom, shop_items, messages, free_shop_ids, + shop_objs = place_shop_items(rom, shop_items, messages, world.get_region('Castle Town Bombchu Shop').locations) shop_objs |= {0x0165, 0x00B2} # Shop objects rom.write_byte(0x2DD8029, len(shop_objs)) @@ -1402,7 +1432,7 @@ def write_save_table(rom): update_message_by_id(messages, 0x00F8, "\x08\x13\x57You got a \x05\x43Tycoon's Wallet\x05\x40!\x01Now you can hold\x01up to \x05\x46999\x05\x40 \x05\x46Rupees\x05\x40.", 0x23) repack_messages(rom, messages) - write_shop_items(rom, shop_items) + write_shop_items(rom, shop_item_file.start + 0x1DEC, shop_items) # text shuffle if world.text_shuffle == 'except_hints': @@ -1765,8 +1795,11 @@ def update_chest_sizes(rom, override_table): default = (default & 0x0FFF) | newChestType rom.write_int16(address, default) -unused_shop_ids = [0x02, 0x11, 0x12, 0x17, 0x19, 0x1A, 0x1B, 0x1C, 0x29, 0x2A, 0x2E, 0x2F, 0x30, 0x31] -def place_shop_items(rom, shop_items, messages, free_shop_ids, locations): + +def place_shop_items(rom, shop_items, messages, locations, init_shop_id=False): + if init_shop_id: + place_shop_items.shop_id = 0x32 + shop_objs = { 0x0148 } # Sold Out messages for location in locations: @@ -1774,21 +1807,26 @@ def place_shop_items(rom, shop_items, messages, free_shop_ids, locations): if location.item.type == 'Shop': rom.write_int16(location.address, location.item.index) else: - shop_id = free_shop_ids.pop() + shop_id = place_shop_items.shop_id rom.write_int16(location.address, shop_id) shop_item = shop_items[shop_id] + shop_item.object = location.item.object shop_item.model = location.item.model - 1 shop_item.price = location.price shop_item.pieces = 1 shop_item.get_item_id = location.default + shop_item.func1 = 0x808648CC shop_item.func2 = 0x808636B8 + shop_item.func3 = 0x00000000 shop_item.func4 = 0x80863FB4 - message_id = unused_shop_ids.index(shop_id) * 2 + message_id = (shop_id - 0x32) * 2 shop_item.description_message = 0x8100 + message_id shop_item.purchase_message = 0x8100 + message_id + 1 update_message_by_id(messages, shop_item.description_message, '\x08\x05\x41%s %d Rupees\x01\x05\x40Special deal! ONE LEFT!\x01Get it while it lasts!\x09\x0A\x02' % (location.item.name, location.price), 0x03) update_message_by_id(messages, shop_item.purchase_message, '\x08%s %d Rupees\x09\x01\x01\x1B\x05\x42Buy\x01Don\'t buy\x05\x40\x02' % (location.item.name, location.price), 0x03) + place_shop_items.shop_id += 1 + return shop_objs diff --git a/Rules.py b/Rules.py index 7a38c09de..928f907ee 100644 --- a/Rules.py +++ b/Rules.py @@ -223,7 +223,7 @@ def global_rules(world): set_rule(world.get_entrance('Field Kakariko Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Field North Lon Lon Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Castle Storms Grotto'), lambda state: state.can_play('Song of Storms')) - set_rule(world.get_entrance('Kakariko Bombable Grotto'), lambda state: state.can_blast_or_smash() and (state.is_adult() or (state.has_sticks() or state.has('Kokiri Sword') or (state.has('Dins Fire') and state.has('Magi Meter'))))) + set_rule(world.get_entrance('Kakariko Bombable Grotto'), lambda state: state.can_blast_or_smash() and (state.is_adult() or (state.has_sticks() or state.has('Kokiri Sword') or (state.has('Dins Fire') and state.has('Magic Meter'))))) set_rule(world.get_entrance('Mountain Bombable Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Mountain Storms Grotto'), lambda state: state.can_play('Song of Storms')) set_rule(world.get_entrance('Top of Crater Grotto'), lambda state: state.can_blast_or_smash()) @@ -296,7 +296,7 @@ def global_rules(world): forbid_item(location, 'Buy Goron Tunic') forbid_item(location, 'Buy Zora Tunic') - if (location.name.endswith('5') or location.name.endswith('7')) and world.shopsanity != 'off': + if (location.name.endswith('5') or location.name.endswith('6') or location.name.endswith('7') or location.name.endswith('8')) and world.shopsanity != 'off': add_item_rule(location, lambda i: (i.type != 'Shop')) if location.price > 200: set_rule(location, lambda state: state.has('Progressive Wallet', 2)) diff --git a/data/base2current.json b/data/base2current.json index 8cbbd8ba0..cf39a5126 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -1 +1 @@ -[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 204]}, {"11135032": [8, 16, 13, 86]}, {"11311804": [12, 16, 11, 213]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 198, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 140]}, {"11427312": [12, 16, 13, 53]}, {"11427320": [12, 16, 11, 208]}, {"11427332": [0, 0]}, {"11427335": [0]}, {"11431496": [12, 16, 11, 203, 1, 15, 192, 33]}, {"11559936": [130]}, {"11559938": [14, 222]}, {"11559948": [49, 248, 0, 2]}, {"11562028": [12, 16, 13, 103]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 69]}, {"11882076": [12, 16, 13, 34]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 107, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 114, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 121, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 100, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 148]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 26]}, {"12427480": [12, 16, 10, 114]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 118]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 12, 47, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 160]}, {"12491480": [12, 16, 10, 169]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"12584172": [8, 16, 12, 16]}, {"12589216": [12, 16, 12, 34]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 155]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 128]}, {"13709176": [52, 15]}, {"13709179": [0]}, {"14109028": [16, 0]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 128, 73, 14, 222]}, {"14149508": [52]}, {"14149510": [0, 1, 2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 216]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 232]}, {"14624335": [118]}, {"14720872": [128]}, {"14720874": [14, 222]}, {"14720884": [49, 248, 0, 4]}, {"14720944": [12, 16, 11, 224]}, {"14848904": [8, 16, 11, 255]}, {"14852164": [12, 16, 12, 8]}, {"14872723": [52]}, {"15327704": [52, 9, 64, 0]}, {"15327728": [52]}, {"15327730": [91, 8]}, {"15327744": [52]}, {"15327746": [0, 10]}, {"15327757": [169]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 55, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 55, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55057455": [1]}, {"55057457": [2]}, {"55057459": [4]}, {"55057461": [8]}, {"55057467": [16]}, {"55057471": [32]}, {"55057473": [64]}, {"55057475": [128, 1]}, {"55057502": [2]}, {"55057504": [4]}, {"55057514": [8]}, {"55057516": [16]}, {"55057518": [32]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 236, 83, 65, 35, 248]}, {"55058597": [209, 255, 255, 128, 64, 38, 60, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 38, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 38, 108, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 38, 136, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 252, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 244, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 244, 128, 64, 38, 188, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 244, 128, 64, 38, 188, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 244, 128, 64, 38, 188, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 244, 128, 64, 38, 216, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 244, 128, 64, 38, 216, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 244, 128, 64, 38, 216, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 244, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 244, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 140, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 172, 128, 64, 38, 164, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 204, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 39, 244, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 60, 128, 64, 40, 32, 83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 4, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 6, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 3, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 8, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 5, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 7, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 76, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [5, 52, 2]}, {"55060003": [69, 52, 9]}, {"55060007": [16, 17, 9]}, {"55060011": [2, 52, 2]}, {"55060015": [70, 52, 162]}, {"55060020": [3, 224]}, {"55060023": [8]}, {"55060028": [144, 136]}, {"55060031": [162, 53, 8]}, {"55060035": [48, 160, 136]}, {"55060039": [162, 3, 224]}, {"55060043": [8]}, {"55060048": [144, 136]}, {"55060051": [162, 49, 8]}, {"55060055": [6, 17]}, {"55060059": [2, 52, 2]}, {"55060063": [55, 52, 2]}, {"55060067": [56, 3, 224]}, {"55060071": [8]}, {"55060076": [144, 136]}, {"55060079": [161, 49, 8]}, {"55060083": [32, 17]}, {"55060087": [2, 52, 2]}, {"55060091": [121, 52, 2]}, {"55060095": [122, 3, 224]}, {"55060099": [8]}, {"55060104": [144, 136]}, {"55060107": [161, 49, 8]}, {"55060111": [4, 17]}, {"55060115": [2, 52, 2]}, {"55060119": [119, 52, 2]}, {"55060123": [120, 3, 224]}, {"55060127": [8]}, {"55060132": [144, 136]}, {"55060135": [50, 17]}, {"55060139": [2, 52, 2]}, {"55060143": [192, 52, 2]}, {"55060147": [193, 3, 224]}, {"55060151": [8]}, {"55060156": [144, 136]}, {"55060159": [163, 49, 8]}, {"55060163": [3, 17]}, {"55060167": [2, 52, 2]}, {"55060171": [77, 52, 162]}, {"55060176": [3, 224]}, {"55060179": [8]}, {"55060184": [144, 136]}, {"55060187": [163, 49, 8]}, {"55060191": [24, 17]}, {"55060195": [2, 52, 2]}, {"55060199": [77, 52, 162]}, {"55060204": [3, 224]}, {"55060207": [8]}, {"55060212": [3, 224]}, {"55060215": [8]}, {"55060220": [52, 8]}, {"55060223": [1, 160, 136]}, {"55060227": [62, 3, 224]}, {"55060231": [8]}, {"55060236": [36, 136]}, {"55060239": [134, 36, 9, 255, 255, 37, 41]}, {"55060247": [1, 52, 1]}, {"55060251": [3]}, {"55060253": [41, 8, 42, 20, 32]}, {"55060259": [7]}, {"55060264": [1, 9, 80, 33, 145, 75]}, {"55060272": [52, 1]}, {"55060275": [255, 21, 97, 255, 247]}, {"55060284": [161, 69]}, {"55060288": [3, 224]}, {"55060291": [8]}, {"55060296": [36, 136]}, {"55060299": [168, 1, 6, 64, 33, 145, 9]}, {"55060308": [1, 37, 72, 37, 161, 9]}, {"55060316": [3, 224]}, {"55060319": [8]}, {"55060324": [36, 136]}, {"55060327": [188, 1, 5, 64, 33, 129, 9]}, {"55060336": [5, 33]}, {"55060339": [2]}, {"55060344": [52, 9]}, {"55060348": [37, 41]}, {"55060351": [1, 161, 9]}, {"55060356": [3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [61, 52, 8]}, {"55060375": [20, 160, 136]}, {"55060379": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [1, 160, 136]}, {"55060403": [50, 160, 136]}, {"55060407": [58, 52, 8]}, {"55060411": [48, 164, 136, 19, 244, 160, 136]}, {"55060419": [51, 3, 224]}, {"55060423": [8]}, {"55060428": [52, 8]}, {"55060431": [2, 160, 136]}, {"55060435": [50, 52, 8]}, {"55060439": [1, 160, 136]}, {"55060443": [58, 160, 136]}, {"55060447": [60, 52, 8]}, {"55060451": [96, 164, 136, 19, 244, 160, 136]}, {"55060459": [51, 3, 224]}, {"55060463": [8]}, {"55060468": [144, 136]}, {"55060471": [124, 52, 1]}, {"55060475": [255, 17, 1]}, {"55060479": [6, 52, 2]}, {"55060483": [107, 144, 136]}, {"55060487": [148, 45, 8]}, {"55060491": [6, 17]}, {"55060495": [2, 52, 2]}, {"55060499": [106, 52, 2]}, {"55060503": [3, 3, 224]}, {"55060507": [8]}, {"55060512": [144, 136]}, {"55060515": [123, 52, 1]}, {"55060519": [255, 17, 1]}, {"55060523": [2, 52, 162]}, {"55060528": [52, 2]}, {"55060531": [12, 3, 224]}, {"55060535": [8]}, {"55060540": [52, 8]}, {"55060543": [7, 160, 136]}, {"55060547": [123, 3, 224]}, {"55060551": [8]}, {"55060556": [52, 8]}, {"55060559": [1]}, {"55060561": [168, 64, 4, 140, 137]}, {"55060567": [164, 1, 40, 72, 37, 172, 137]}, {"55060575": [164, 3, 224]}, {"55060579": [8]}, {"55060584": [48, 132]}, {"55060587": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060599": [140, 16, 129]}, {"55060603": [22, 145, 2]}, {"55060607": [117, 52, 1]}, {"55060611": [141, 16, 129]}, {"55060615": [19, 145, 2]}, {"55060619": [117, 16, 128]}, {"55060623": [17, 145, 2]}, {"55060627": [116, 52, 1]}, {"55060631": [138, 16, 129]}, {"55060635": [14, 145, 2]}, {"55060639": [116, 52, 1]}, {"55060643": [139, 16, 129]}, {"55060647": [11, 145, 2]}, {"55060651": [116, 52, 1]}, {"55060655": [88, 16, 129]}, {"55060659": [8, 52, 2]}, {"55060664": [52, 1]}, {"55060667": [120, 16, 129]}, {"55060671": [5, 52, 2]}, {"55060676": [52, 1]}, {"55060679": [121, 16, 129]}, {"55060683": [2, 52, 2]}, {"55060688": [52, 2]}, {"55060691": [255, 3, 224]}, {"55060695": [8]}, {"55060700": [39, 189, 255, 224, 175, 191]}, {"55060707": [16, 175, 176]}, {"55060711": [20, 12, 16, 11, 19]}, {"55060720": [4, 65]}, {"55060723": [2]}, {"55060728": [52, 2]}, {"55060731": [91]}, {"55060733": [64, 32, 33, 12, 16, 11, 122]}, {"55060744": [16, 96]}, {"55060747": [22, 175, 163]}, {"55060751": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060760": [133, 9]}, {"55060763": [2, 17, 32]}, {"55060767": [3, 52, 10]}, {"55060771": [1, 16]}, {"55060775": [12, 165, 10]}, {"55060780": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060791": [6, 144, 102]}, {"55060795": [7, 140, 105]}, {"55060799": [8, 1, 32, 248, 9]}, {"55060808": [143, 163]}, {"55060811": [28, 144, 101]}, {"55060815": [1, 12, 1, 191, 115, 2, 32, 32, 33, 143, 163]}, {"55060827": [28, 144, 101]}, {"55060831": [3, 16]}, {"55060835": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060847": [6]}, {"55060849": [74]}, {"55060851": [24]}, {"55060854": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060864": [60, 8, 128, 64, 37, 8, 32]}, {"55060872": [133, 9]}, {"55060875": [2, 17, 32]}, {"55060879": [3, 52, 10]}, {"55060883": [1, 165, 10]}, {"55060888": [52, 5]}, {"55060891": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060903": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060914": [48, 33, 143, 191]}, {"55060919": [16, 143, 176]}, {"55060923": [20, 39, 189]}, {"55060927": [32, 3, 224]}, {"55060931": [8]}, {"55060936": [143, 166]}, {"55060939": [48, 132, 197]}, {"55060943": [4, 8, 16, 10, 122]}, {"55060952": [143, 185]}, {"55060955": [44, 135, 37]}, {"55060959": [4, 8, 16, 10, 122]}, {"55060968": [60, 10, 128, 64, 37, 74, 32, 8, 141, 75]}, {"55060979": [12, 17, 96]}, {"55060983": [2]}, {"55060988": [149, 69]}, {"55060991": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55061004": [60, 9, 128, 64, 37, 41, 32, 24, 129, 42]}, {"55061015": [3, 5, 64]}, {"55061019": [11, 1, 42, 72, 32, 129, 40]}, {"55061028": [52, 10]}, {"55061031": [127, 21, 10]}, {"55061035": [6]}, {"55061040": [60, 10, 128, 18, 37, 74, 165, 208, 133, 72]}, {"55061051": [144, 33, 8]}, {"55061055": [1, 165, 72]}, {"55061059": [144, 161, 32]}, {"55061064": [3, 224]}, {"55061067": [8]}, {"55061072": [60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061083": [12, 17, 32]}, {"55061087": [2]}, {"55061092": [129, 3]}, {"55061095": [2]}, {"55061097": [3, 15, 195]}, {"55061101": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061115": [8]}, {"55061120": [144, 69]}, {"55061123": [3, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061135": [12, 17, 32]}, {"55061139": [2]}, {"55061144": [145, 5]}, {"55061147": [3, 3, 224]}, {"55061151": [8]}, {"55061156": [143, 162]}, {"55061159": [36, 144, 69]}, {"55061164": [60, 8, 128, 64, 37, 8, 32]}, {"55061172": [133, 9]}, {"55061175": [2, 17, 32]}, {"55061179": [4, 52, 10]}, {"55061183": [1, 165, 10]}, {"55061188": [16]}, {"55061191": [24, 52, 5]}, {"55061195": [65, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061207": [12, 17, 32]}, {"55061211": [19]}, {"55061216": [145, 5]}, {"55061219": [1, 175, 164]}, {"55061224": [175, 165]}, {"55061227": [4, 175, 166]}, {"55061231": [8, 39, 189, 255, 232, 175, 191]}, {"55061239": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061251": [6, 145, 6]}, {"55061255": [7, 141, 9]}, {"55061259": [8, 1, 32, 248, 9]}, {"55061268": [143, 191]}, {"55061271": [16, 39, 189]}, {"55061275": [24, 143, 164]}, {"55061280": [143, 165]}, {"55061283": [4, 143, 166]}, {"55061287": [8, 3, 224]}, {"55061291": [8]}, {"55061296": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061307": [16, 175, 163]}, {"55061311": [20, 175, 191]}, {"55061315": [24, 12, 16, 10, 217]}, {"55061324": [143, 162]}, {"55061327": [16, 143, 163]}, {"55061331": [20, 143, 191]}, {"55061335": [24, 39, 189]}, {"55061339": [32, 3, 224]}, {"55061343": [8]}, {"55061348": [39, 189, 255, 232, 175, 191]}, {"55061355": [16, 60, 8, 128, 64, 37, 8, 32, 8, 173]}, {"55061368": [173]}, {"55061371": [4, 173]}, {"55061375": [8, 173]}, {"55061379": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061395": [42]}, {"55061401": [9, 15, 195, 1, 33, 32, 38]}, {"55061409": [129, 32, 35, 141, 5, 4, 40, 12, 16, 11, 19]}, {"55061424": [4, 64]}, {"55061427": [34]}, {"55061432": [52, 68]}, {"55061436": [12, 16, 11, 122]}, {"55061444": [16, 96]}, {"55061447": [12]}, {"55061452": [60, 8, 128, 64, 37, 8, 32, 8, 140, 105]}, {"55061464": [173, 9]}, {"55061468": [140, 105]}, {"55061471": [4, 173, 9]}, {"55061475": [4, 140, 105]}, {"55061479": [8, 173, 9]}, {"55061483": [8, 52, 9]}, {"55061487": [1, 173, 9]}, {"55061491": [12, 144, 98]}, {"55061496": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061512": [52, 1]}, {"55061515": [10, 21, 65]}, {"55061519": [6]}, {"55061524": [149, 42]}, {"55061527": [28, 49, 74, 240, 31]}, {"55061533": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061543": [28, 129, 9, 4, 36, 5, 33]}, {"55061551": [2]}, {"55061557": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061567": [16, 39, 189]}, {"55061571": [24, 3, 224]}, {"55061575": [8]}, {"55061580": [39, 189, 255, 232, 175, 191]}, {"55061587": [16, 12, 16, 11, 33]}, {"55061596": [36, 1, 255, 255, 16, 65]}, {"55061603": [4]}, {"55061608": [52, 68]}, {"55061612": [12, 16, 11, 85]}, {"55061620": [143, 191]}, {"55061623": [16, 39, 189]}, {"55061627": [24, 3, 224]}, {"55061631": [8]}, {"55061636": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061647": [164, 52, 8]}, {"55061652": [52, 137]}, {"55061656": [148, 170]}, {"55061660": [52, 1, 1, 156, 21, 65]}, {"55061667": [8]}, {"55061672": [52, 8]}, {"55061675": [3, 148, 171]}, {"55061679": [28, 49, 105]}, {"55061683": [255, 49, 98, 31]}, {"55061689": [2, 18, 2, 16]}, {"55061695": [31]}, {"55061700": [52, 1]}, {"55061703": [10, 21, 65]}, {"55061707": [14]}, {"55061712": [148, 171]}, {"55061715": [28, 52, 1]}, {"55061719": [16, 20, 65]}, {"55061723": [8]}, {"55061728": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061739": [4]}, {"55061744": [36, 2, 255, 255, 16]}, {"55061751": [21]}, {"55061756": [52, 8]}, {"55061759": [1, 49, 105]}, {"55061763": [31, 52, 1]}, {"55061767": [21, 21, 65]}, {"55061771": [12]}, {"55061776": [52, 1]}, {"55061779": [62, 16, 129]}, {"55061783": [7]}, {"55061788": [52, 1]}, {"55061791": [66, 16, 129]}, {"55061795": [4]}, {"55061800": [36, 2, 255, 255, 16]}, {"55061807": [7]}, {"55061812": [52, 8]}, {"55061815": [2, 144, 169, 1, 65]}, {"55061821": [2, 18]}, {"55061825": [72, 16, 37]}, {"55061829": [2, 18]}, {"55061833": [73, 16, 37, 3, 224]}, {"55061839": [8]}, {"55061844": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061856": [129, 9]}, {"55061860": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061883": [4, 141, 9]}, {"55061888": [17, 32]}, {"55061891": [23]}, {"55061897": [9, 82, 2, 49, 75, 248]}, {"55061905": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061928": [49, 34]}, {"55061931": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061952": [60, 12, 128, 64, 37, 140, 28]}, {"55061960": [129, 140]}, {"55061964": [17, 108]}, {"55061967": [4, 165, 32]}, {"55061971": [2, 161, 43]}, {"55061975": [2, 161, 34]}, {"55061979": [3, 173, 36]}, {"55061983": [4, 3, 224]}, {"55061987": [8]}, {"55061992": [39, 189, 255, 224, 175, 176]}, {"55061999": [16, 175, 177]}, {"55062003": [20, 175, 191]}, {"55062007": [24, 52, 130]}, {"55062012": [52, 80]}, {"55062016": [38, 8, 255, 128, 5]}, {"55062023": [18]}, {"55062028": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55062039": [16, 1, 9]}, {"55062043": [24]}, {"55062046": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55062064": [142, 40]}, {"55062067": [12, 1]}, {"55062070": [248, 9]}, {"55062076": [20, 80, 255, 239]}, {"55062084": [54, 35]}, {"55062088": [16]}, {"55062091": [2]}, {"55062096": [52, 3]}, {"55062100": [143, 176]}, {"55062103": [16, 143, 177]}, {"55062107": [20, 143, 191]}, {"55062111": [24, 39, 189]}, {"55062115": [32, 3, 224]}, {"55062119": [8]}, {"55062124": [140, 136, 29, 44, 52, 9]}, {"55062131": [1]}, {"55062133": [9, 78]}, {"55062136": [1, 9, 16, 36, 16, 64]}, {"55062143": [36]}, {"55062148": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062163": [164, 52, 1]}, {"55062167": [61, 17, 129]}, {"55062171": [10]}, {"55062177": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062187": [25]}, {"55062192": [52, 13]}, {"55062195": [1, 161, 141, 29, 40, 37, 74]}, {"55062203": [3, 16]}, {"55062207": [9]}, {"55062212": [52, 12]}, {"55062215": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062231": [14]}, {"55062236": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062272": [60, 9, 128, 64, 37, 41, 32, 24, 161, 40]}, {"55062284": [52, 2]}, {"55062288": [3, 224]}, {"55062291": [8]}, {"55062296": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062308": [16]}, {"55062311": [34]}, {"55062316": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062328": [16]}, {"55062331": [29]}, {"55062336": [52, 2]}, {"55062339": [255, 32, 232, 255, 166, 33, 8]}, {"55062347": [97, 16]}, {"55062351": [24]}, {"55062356": [52, 8]}, {"55062359": [100, 16]}, {"55062363": [21]}, {"55062368": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062383": [1, 160, 40, 14, 222, 52, 8]}, {"55062391": [104, 16]}, {"55062395": [13]}, {"55062400": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062415": [4, 160, 40, 14, 222, 52, 8]}, {"55062423": [106, 16]}, {"55062427": [5]}, {"55062432": [52, 5]}, {"55062435": [3, 52, 8]}, {"55062439": [107, 16]}, {"55062443": [1]}, {"55062448": [60, 9, 128, 64, 37, 41, 32, 24, 60, 10, 128, 64, 37, 74, 32, 27, 129, 44]}, {"55062468": [17, 136]}, {"55062471": [11, 33, 41]}, {"55062475": [1, 21, 42, 255, 252]}, {"55062484": [60, 9, 128, 64, 37, 41, 32, 23, 33, 41]}, {"55062495": [1, 17, 42]}, {"55062499": [4, 129, 44]}, {"55062504": [21, 128, 255, 252]}, {"55062512": [161, 40]}, {"55062516": [3, 224]}, {"55062519": [8]}, {"55062525": [96, 120, 33, 129, 236, 14, 223, 49, 142]}, {"55062535": [128, 17, 192]}, {"55062539": [3, 52, 3]}, {"55062543": [5, 3, 224]}, {"55062547": [8, 52, 2]}, {"55062551": [2, 3, 224]}, {"55062555": [8]}, {"55062557": [96, 16, 33, 133, 194]}, {"55062563": [164, 60, 8, 128, 18, 37, 8, 165, 208, 129, 9, 14, 223, 53, 41]}, {"55062579": [128, 161, 9, 14, 223, 3, 224]}, {"55062587": [8]}, {"55062592": [132, 142]}, {"55062595": [28, 60, 9, 128, 64, 37, 41, 28, 12]}, {"55062605": [14, 64, 64, 1, 40, 72, 32, 133, 42]}, {"55062616": [60, 9, 128, 18, 37, 41, 165, 208, 133, 43, 15, 48, 1, 75, 96, 36, 52, 2]}, {"55062636": [17, 128]}, {"55062639": [4]}, {"55062644": [52, 13]}, {"55062647": [38, 164, 141]}, {"55062651": [28, 52, 2]}, {"55062655": [1, 3, 224]}, {"55062659": [8]}, {"55062664": [132, 174]}, {"55062667": [28, 60, 9, 128, 64, 37, 41, 28, 12]}, {"55062677": [14, 64, 64, 1, 40, 72, 32, 133, 42]}, {"55062688": [60, 9, 128, 18, 37, 41, 165, 208, 133, 43, 15, 48, 1, 75, 96, 37, 165, 44, 15, 48, 3, 224]}, {"55062711": [8]}, {"55062716": [175, 164]}, {"55062719": [104, 175, 165]}, {"55062723": [108, 175, 166]}, {"55062727": [112, 175, 167]}, {"55062731": [116, 39, 189, 255, 232, 175, 163]}, {"55062739": [16, 175, 191]}, {"55062743": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062759": [32, 21]}, {"55062763": [31]}, {"55062768": [60, 9, 128, 64, 37, 41, 32, 27, 52, 10]}, {"55062779": [255, 161, 42]}, {"55062784": [60, 9, 128, 64, 37, 41, 32, 24, 36, 10, 255, 255, 52, 12]}, {"55062799": [3, 33, 74]}, {"55062803": [1, 17, 76]}, {"55062807": [20, 1, 42, 88, 32, 129, 104]}, {"55062816": [17]}, {"55062818": [255, 251]}, {"55062824": [60, 9, 128, 64, 37, 41, 32, 27, 161, 42]}, {"55062836": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062847": [1, 165, 42]}, {"55062852": [60, 9, 128, 65, 52, 10]}, {"55062859": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 217]}, {"55062888": [143, 163]}, {"55062891": [16, 143, 191]}, {"55062895": [20, 39, 189]}, {"55062899": [24, 143, 164]}, {"55062903": [104, 143, 165]}, {"55062907": [108, 143, 166]}, {"55062911": [112, 143, 167]}, {"55062915": [116, 132, 110, 19, 196, 3, 224]}, {"55062923": [8]}, {"55062928": [147, 25]}, {"55062931": [116, 52, 1]}, {"55062935": [255, 23, 33]}, {"55062939": [2]}, {"55062944": [52, 25]}, {"55062947": [44, 3, 224]}, {"55062951": [8, 167, 185]}, {"55062955": [154, 147, 44]}, {"55062959": [116, 52, 1]}, {"55062963": [255, 21, 129]}, {"55062967": [2]}, {"55062972": [52, 12]}, {"55062975": [44, 3, 224]}, {"55062979": [8]}, {"55062984": [145, 174]}, {"55062987": [116, 52, 1]}, {"55062991": [255, 21, 193]}, {"55062995": [2]}, {"55063000": [52, 14]}, {"55063003": [44, 3, 224]}, {"55063007": [8, 167, 174]}, {"55063011": [154, 145, 207]}, {"55063015": [116, 52, 1]}, {"55063019": [255, 21, 225]}, {"55063023": [2]}, {"55063028": [52, 15]}, {"55063031": [44, 3, 224]}, {"55063035": [8, 167, 175]}, {"55063039": [154, 60, 8, 128, 64, 37, 8, 32, 28, 142, 9]}, {"55063051": [104, 173, 9]}, {"55063056": [142, 9]}, {"55063059": [108, 173, 9]}, {"55063063": [4, 150, 9]}, {"55063067": [112, 165, 9]}, {"55063071": [8, 150, 9]}, {"55063075": [156, 165, 9]}, {"55063079": [10, 3, 224]}, {"55063083": [8, 142, 14]}, {"55063087": [4, 39, 189, 255, 224, 175, 176]}, {"55063095": [16, 175, 177]}, {"55063099": [20, 175, 191]}, {"55063103": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 28, 142, 8]}, {"55063123": [4, 17]}, {"55063127": [5]}, {"55063132": [12, 16, 12, 182]}, {"55063140": [16]}, {"55063143": [3]}, {"55063148": [12, 16, 12, 201]}, {"55063156": [12, 16, 12, 169, 52, 4]}, {"55063164": [12, 16, 12, 169, 52, 4]}, {"55063171": [1, 12, 16, 12, 169, 52, 4]}, {"55063179": [2, 143, 176]}, {"55063183": [16, 143, 177]}, {"55063187": [20, 143, 191]}, {"55063191": [24, 39, 189]}, {"55063195": [32, 3, 224]}, {"55063199": [8]}, {"55063204": [2, 4, 64, 33, 145, 9]}, {"55063211": [108, 52, 1]}, {"55063215": [255, 17, 33]}, {"55063219": [7]}, {"55063224": [2, 9, 72, 33, 145, 41]}, {"55063231": [116, 52, 1]}, {"55063235": [44, 17, 33]}, {"55063239": [2]}, {"55063244": [161, 9]}, {"55063247": [105, 3, 224]}, {"55063251": [8]}, {"55063256": [39, 189, 255, 232, 175, 191]}, {"55063263": [16, 142, 40]}, {"55063268": [174, 8]}, {"55063271": [64, 142, 40]}, {"55063275": [4, 174, 8]}, {"55063279": [68, 150, 40]}, {"55063283": [8, 166, 8]}, {"55063287": [72, 162]}, {"55063290": [15, 51, 146, 8]}, {"55063295": [74, 52, 1]}, {"55063299": [255, 21, 1]}, {"55063303": [3]}, {"55063308": [12, 16, 12, 215]}, {"55063316": [143, 191]}, {"55063319": [16, 39, 189]}, {"55063323": [24, 3, 224]}, {"55063327": [8]}, {"55063332": [142, 8]}, {"55063335": [64, 174, 8]}, {"55063339": [104, 142, 8]}, {"55063343": [68, 174, 8]}, {"55063347": [108, 150, 8]}, {"55063351": [72, 166, 8]}, {"55063355": [112, 146, 8]}, {"55063359": [104, 52, 1]}, {"55063363": [255, 21, 1]}, {"55063367": [3]}, {"55063372": [52, 8]}, {"55063375": [1, 162, 8, 15, 51, 3, 224]}, {"55063383": [8]}, {"55063388": [39, 189, 255, 232, 175, 191]}, {"55063395": [16, 150, 8]}, {"55063399": [156, 49, 8]}, {"55063403": [64, 17]}, {"55063407": [5]}, {"55063412": [150, 8]}, {"55063415": [112, 49, 8, 255, 15, 53, 8]}, {"55063423": [48, 166, 8]}, {"55063427": [112, 146, 40]}, {"55063431": [1, 162, 8]}, {"55063435": [105, 150, 40]}, {"55063439": [2, 166, 8]}, {"55063443": [106, 142, 40]}, {"55063447": [4, 174, 8]}, {"55063451": [108, 12, 16, 12, 241, 52, 4]}, {"55063460": [12, 16, 12, 241, 52, 4]}, {"55063467": [1, 12, 16, 12, 241, 52, 4]}, {"55063475": [2, 143, 191]}, {"55063479": [16, 39, 189]}, {"55063483": [24, 3, 224]}, {"55063487": [8]}, {"55063492": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 52, 112, 145, 10]}, {"55063507": [108, 52, 1]}, {"55063511": [255, 17, 65]}, {"55063515": [5]}, {"55063520": [1, 42, 72, 33, 145, 41]}, {"55063528": [21, 32]}, {"55063531": [28]}, {"55063536": [60, 9, 128, 64, 37, 41, 52, 99, 37, 41]}, {"55063547": [1, 145, 42]}, {"55063552": [17, 64]}, {"55063555": [19]}, {"55063560": [2, 10, 88, 33, 145, 107]}, {"55063567": [116, 52, 1]}, {"55063571": [255, 17, 97, 255, 248]}, {"55063580": [146, 12]}, {"55063583": [108, 17, 138, 255, 245]}, {"55063592": [146, 12]}, {"55063595": [109, 17, 138, 255, 242]}, {"55063604": [146, 12]}, {"55063607": [110, 17, 138, 255, 239]}, {"55063616": [161, 11]}, {"55063619": [105, 161, 10]}, {"55063623": [108, 16]}, {"55063627": [4]}, {"55063632": [52, 9]}, {"55063635": [255, 161, 9]}, {"55063639": [105, 161, 9]}, {"55063643": [108, 3, 224]}, {"55063647": [8]}, {"55063652": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063665": [1, 1, 1, 1, 1]}, {"55063671": [1, 1, 1, 1, 1]}, {"55063677": [1]}, {"55063679": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063689": [51, 8, 33, 32, 15]}, {"55063695": [71, 21, 234]}, {"55063699": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063711": [164]}, {"55063713": [15, 122, 3, 20, 64]}, {"55063719": [5, 52, 2, 72, 48, 21, 226]}, {"55063727": [7]}, {"55063732": [36, 25]}, {"55063735": [3, 16]}, {"55063739": [4, 52, 2, 99, 17, 21, 226]}, {"55063747": [2]}, {"55063752": [36, 25]}, {"55063755": [3, 3, 224]}, {"55063759": [8]}, {"55063764": [141, 173, 138, 160, 52, 2, 128]}, {"55063772": [16, 77]}, {"55063775": [2]}, {"55063780": [16]}, {"55063783": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063799": [1, 16, 64]}, {"55063803": [2]}, {"55063808": [16]}, {"55063811": [2, 52, 2]}, {"55063815": [1, 161, 226, 28, 191, 3, 224]}, {"55063823": [8]}, {"55063829": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063843": [164]}, {"55063845": [15, 122, 3, 20, 64]}, {"55063851": [5, 52, 2, 72, 48, 21, 226]}, {"55063859": [7]}, {"55063864": [36, 25]}, {"55063867": [3, 16]}, {"55063871": [4, 52, 2, 99, 17, 21, 226]}, {"55063879": [2]}, {"55063884": [36, 25]}, {"55063887": [3, 3, 224]}, {"55063891": [8]}, {"55063896": [20, 64]}, {"55063899": [14]}, {"55063904": [52, 1]}, {"55063907": [24, 20, 129]}, {"55063911": [11, 60, 10, 128, 18, 37, 74, 165, 208, 129, 72]}, {"55063923": [166, 49, 8]}, {"55063927": [32, 17]}, {"55063931": [6, 52, 2]}, {"55063936": [129, 72]}, {"55063939": [123, 52, 1]}, {"55063943": [7, 17, 1]}, {"55063947": [2, 52, 2]}, {"55063951": [1, 52, 2]}, {"55063956": [3, 224]}, {"55063959": [8]}, {"55063964": [162, 37]}, {"55063967": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063979": [4, 142, 10]}, {"55063984": [17, 64]}, {"55063987": [11]}, {"55063993": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55064005": [24, 194, 2, 23]}, {"55064011": [3, 49, 89]}, {"55064015": [255, 129, 234]}, {"55064020": [3, 42, 200, 37, 8, 16, 13, 106, 161, 249]}, {"55064032": [3, 224]}, {"55064035": [8]}] \ No newline at end of file +[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 204]}, {"11135032": [8, 16, 13, 103]}, {"11311804": [12, 16, 11, 213]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 198, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 157]}, {"11427312": [12, 16, 13, 70]}, {"11427320": [12, 16, 11, 208]}, {"11427332": [0, 0]}, {"11427335": [0]}, {"11431496": [12, 16, 11, 203, 1, 15, 192, 33]}, {"11559936": [130]}, {"11559938": [14, 222]}, {"11559948": [49, 248, 0, 2]}, {"11562028": [12, 16, 13, 120]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 86]}, {"11882076": [12, 16, 13, 51]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 124, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 131, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 138, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 117, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 148]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 26]}, {"12427480": [12, 16, 10, 114]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 118]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 12, 64, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 160]}, {"12491480": [12, 16, 10, 169]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"12584172": [8, 16, 12, 16]}, {"12584575": [100]}, {"12589216": [12, 16, 12, 37]}, {"13027240": [12, 16, 12, 53]}, {"13027616": [12, 16, 12, 53]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 155]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 145]}, {"13709176": [52, 15]}, {"13709179": [0]}, {"14109028": [16, 0]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 128, 73, 14, 222]}, {"14149508": [52]}, {"14149510": [0, 1, 2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 216]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 232]}, {"14624335": [118]}, {"14720872": [128]}, {"14720874": [14, 222]}, {"14720884": [49, 248, 0, 4]}, {"14720944": [12, 16, 11, 224]}, {"14848904": [8, 16, 11, 255]}, {"14852164": [12, 16, 12, 8]}, {"14872723": [52]}, {"15327704": [52, 9, 64, 0]}, {"15327728": [52]}, {"15327730": [91, 8]}, {"15327744": [52]}, {"15327746": [0, 10]}, {"15327757": [169]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 55, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 55, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 236, 83, 65, 35, 248]}, {"55058597": [209, 255, 255, 128, 64, 38, 60, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 38, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 38, 108, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 38, 136, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 252, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 244, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 244, 128, 64, 38, 188, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 244, 128, 64, 38, 188, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 244, 128, 64, 38, 188, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 244, 128, 64, 38, 216, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 244, 128, 64, 38, 216, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 244, 128, 64, 38, 216, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 244, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 244, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 140, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 172, 128, 64, 38, 164, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 204, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 39, 244, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 60, 128, 64, 40, 32, 83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 4, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 6, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 3, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 8, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 5, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 7, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 76, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [5, 52, 2]}, {"55060003": [69, 52, 9]}, {"55060007": [16, 17, 9]}, {"55060011": [2, 52, 2]}, {"55060015": [70, 52, 162]}, {"55060020": [3, 224]}, {"55060023": [8]}, {"55060028": [144, 136]}, {"55060031": [162, 53, 8]}, {"55060035": [48, 160, 136]}, {"55060039": [162, 3, 224]}, {"55060043": [8]}, {"55060048": [144, 136]}, {"55060051": [162, 49, 8]}, {"55060055": [6, 17]}, {"55060059": [2, 52, 2]}, {"55060063": [55, 52, 2]}, {"55060067": [56, 3, 224]}, {"55060071": [8]}, {"55060076": [144, 136]}, {"55060079": [161, 49, 8]}, {"55060083": [32, 17]}, {"55060087": [2, 52, 2]}, {"55060091": [121, 52, 2]}, {"55060095": [122, 3, 224]}, {"55060099": [8]}, {"55060104": [144, 136]}, {"55060107": [161, 49, 8]}, {"55060111": [4, 17]}, {"55060115": [2, 52, 2]}, {"55060119": [119, 52, 2]}, {"55060123": [120, 3, 224]}, {"55060127": [8]}, {"55060132": [144, 136]}, {"55060135": [50, 17]}, {"55060139": [2, 52, 2]}, {"55060143": [192, 52, 2]}, {"55060147": [193, 3, 224]}, {"55060151": [8]}, {"55060156": [144, 136]}, {"55060159": [163, 49, 8]}, {"55060163": [3, 17]}, {"55060167": [2, 52, 2]}, {"55060171": [77, 52, 162]}, {"55060176": [3, 224]}, {"55060179": [8]}, {"55060184": [144, 136]}, {"55060187": [163, 49, 8]}, {"55060191": [24, 17]}, {"55060195": [2, 52, 2]}, {"55060199": [77, 52, 162]}, {"55060204": [3, 224]}, {"55060207": [8]}, {"55060212": [3, 224]}, {"55060215": [8]}, {"55060220": [52, 8]}, {"55060223": [1, 160, 136]}, {"55060227": [62, 3, 224]}, {"55060231": [8]}, {"55060236": [36, 136]}, {"55060239": [134, 36, 9, 255, 255, 37, 41]}, {"55060247": [1, 52, 1]}, {"55060251": [3]}, {"55060253": [41, 8, 42, 20, 32]}, {"55060259": [7]}, {"55060264": [1, 9, 80, 33, 145, 75]}, {"55060272": [52, 1]}, {"55060275": [255, 21, 97, 255, 247]}, {"55060284": [161, 69]}, {"55060288": [3, 224]}, {"55060291": [8]}, {"55060296": [36, 136]}, {"55060299": [168, 1, 6, 64, 33, 145, 9]}, {"55060308": [1, 37, 72, 37, 161, 9]}, {"55060316": [3, 224]}, {"55060319": [8]}, {"55060324": [36, 136]}, {"55060327": [188, 1, 5, 64, 33, 129, 9]}, {"55060336": [5, 33]}, {"55060339": [2]}, {"55060344": [52, 9]}, {"55060348": [37, 41]}, {"55060351": [1, 161, 9]}, {"55060356": [3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [61, 52, 8]}, {"55060375": [20, 160, 136]}, {"55060379": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [1, 160, 136]}, {"55060403": [50, 160, 136]}, {"55060407": [58, 52, 8]}, {"55060411": [48, 164, 136, 19, 244, 160, 136]}, {"55060419": [51, 3, 224]}, {"55060423": [8]}, {"55060428": [52, 8]}, {"55060431": [2, 160, 136]}, {"55060435": [50, 52, 8]}, {"55060439": [1, 160, 136]}, {"55060443": [58, 160, 136]}, {"55060447": [60, 52, 8]}, {"55060451": [96, 164, 136, 19, 244, 160, 136]}, {"55060459": [51, 3, 224]}, {"55060463": [8]}, {"55060468": [144, 136]}, {"55060471": [124, 52, 1]}, {"55060475": [255, 17, 1]}, {"55060479": [6, 52, 2]}, {"55060483": [107, 144, 136]}, {"55060487": [148, 45, 8]}, {"55060491": [6, 17]}, {"55060495": [2, 52, 2]}, {"55060499": [106, 52, 2]}, {"55060503": [3, 3, 224]}, {"55060507": [8]}, {"55060512": [144, 136]}, {"55060515": [123, 52, 1]}, {"55060519": [255, 17, 1]}, {"55060523": [2, 52, 162]}, {"55060528": [52, 2]}, {"55060531": [12, 3, 224]}, {"55060535": [8]}, {"55060540": [52, 8]}, {"55060543": [7, 160, 136]}, {"55060547": [123, 3, 224]}, {"55060551": [8]}, {"55060556": [52, 8]}, {"55060559": [1]}, {"55060561": [168, 64, 4, 140, 137]}, {"55060567": [164, 1, 40, 72, 37, 172, 137]}, {"55060575": [164, 3, 224]}, {"55060579": [8]}, {"55060584": [48, 132]}, {"55060587": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060599": [140, 16, 129]}, {"55060603": [22, 145, 2]}, {"55060607": [117, 52, 1]}, {"55060611": [141, 16, 129]}, {"55060615": [19, 145, 2]}, {"55060619": [117, 16, 128]}, {"55060623": [17, 145, 2]}, {"55060627": [116, 52, 1]}, {"55060631": [138, 16, 129]}, {"55060635": [14, 145, 2]}, {"55060639": [116, 52, 1]}, {"55060643": [139, 16, 129]}, {"55060647": [11, 145, 2]}, {"55060651": [116, 52, 1]}, {"55060655": [88, 16, 129]}, {"55060659": [8, 52, 2]}, {"55060664": [52, 1]}, {"55060667": [120, 16, 129]}, {"55060671": [5, 52, 2]}, {"55060676": [52, 1]}, {"55060679": [121, 16, 129]}, {"55060683": [2, 52, 2]}, {"55060688": [52, 2]}, {"55060691": [255, 3, 224]}, {"55060695": [8]}, {"55060700": [39, 189, 255, 224, 175, 191]}, {"55060707": [16, 175, 176]}, {"55060711": [20, 12, 16, 11, 19]}, {"55060720": [4, 65]}, {"55060723": [2]}, {"55060728": [52, 2]}, {"55060731": [91]}, {"55060733": [64, 32, 33, 12, 16, 11, 122]}, {"55060744": [16, 96]}, {"55060747": [22, 175, 163]}, {"55060751": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060760": [133, 9]}, {"55060763": [2, 17, 32]}, {"55060767": [3, 52, 10]}, {"55060771": [1, 16]}, {"55060775": [12, 165, 10]}, {"55060780": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060791": [6, 144, 102]}, {"55060795": [7, 140, 105]}, {"55060799": [8, 1, 32, 248, 9]}, {"55060808": [143, 163]}, {"55060811": [28, 144, 101]}, {"55060815": [1, 12, 1, 191, 115, 2, 32, 32, 33, 143, 163]}, {"55060827": [28, 144, 101]}, {"55060831": [3, 16]}, {"55060835": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060847": [6]}, {"55060849": [74]}, {"55060851": [24]}, {"55060854": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060864": [60, 8, 128, 64, 37, 8, 32]}, {"55060872": [133, 9]}, {"55060875": [2, 17, 32]}, {"55060879": [3, 52, 10]}, {"55060883": [1, 165, 10]}, {"55060888": [52, 5]}, {"55060891": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060903": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060914": [48, 33, 143, 191]}, {"55060919": [16, 143, 176]}, {"55060923": [20, 39, 189]}, {"55060927": [32, 3, 224]}, {"55060931": [8]}, {"55060936": [143, 166]}, {"55060939": [48, 132, 197]}, {"55060943": [4, 8, 16, 10, 122]}, {"55060952": [143, 185]}, {"55060955": [44, 135, 37]}, {"55060959": [4, 8, 16, 10, 122]}, {"55060968": [60, 10, 128, 64, 37, 74, 32, 8, 141, 75]}, {"55060979": [12, 17, 96]}, {"55060983": [2]}, {"55060988": [149, 69]}, {"55060991": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55061004": [60, 9, 128, 64, 37, 41, 32, 24, 129, 42]}, {"55061015": [3, 5, 64]}, {"55061019": [11, 1, 42, 72, 32, 129, 40]}, {"55061028": [52, 10]}, {"55061031": [127, 21, 10]}, {"55061035": [6]}, {"55061040": [60, 10, 128, 18, 37, 74, 165, 208, 133, 72]}, {"55061051": [144, 33, 8]}, {"55061055": [1, 165, 72]}, {"55061059": [144, 161, 32]}, {"55061064": [3, 224]}, {"55061067": [8]}, {"55061072": [60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061083": [12, 17, 32]}, {"55061087": [2]}, {"55061092": [129, 3]}, {"55061095": [2]}, {"55061097": [3, 15, 195]}, {"55061101": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061115": [8]}, {"55061120": [144, 69]}, {"55061123": [3, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061135": [12, 17, 32]}, {"55061139": [2]}, {"55061144": [145, 5]}, {"55061147": [3, 3, 224]}, {"55061151": [8]}, {"55061156": [143, 162]}, {"55061159": [36, 144, 69]}, {"55061164": [60, 8, 128, 64, 37, 8, 32]}, {"55061172": [133, 9]}, {"55061175": [2, 17, 32]}, {"55061179": [4, 52, 10]}, {"55061183": [1, 165, 10]}, {"55061188": [16]}, {"55061191": [24, 52, 5]}, {"55061195": [65, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061207": [12, 17, 32]}, {"55061211": [19]}, {"55061216": [145, 5]}, {"55061219": [1, 175, 164]}, {"55061224": [175, 165]}, {"55061227": [4, 175, 166]}, {"55061231": [8, 39, 189, 255, 232, 175, 191]}, {"55061239": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061251": [6, 145, 6]}, {"55061255": [7, 141, 9]}, {"55061259": [8, 1, 32, 248, 9]}, {"55061268": [143, 191]}, {"55061271": [16, 39, 189]}, {"55061275": [24, 143, 164]}, {"55061280": [143, 165]}, {"55061283": [4, 143, 166]}, {"55061287": [8, 3, 224]}, {"55061291": [8]}, {"55061296": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061307": [16, 175, 163]}, {"55061311": [20, 175, 191]}, {"55061315": [24, 12, 16, 10, 217]}, {"55061324": [143, 162]}, {"55061327": [16, 143, 163]}, {"55061331": [20, 143, 191]}, {"55061335": [24, 39, 189]}, {"55061339": [32, 3, 224]}, {"55061343": [8]}, {"55061348": [39, 189, 255, 232, 175, 191]}, {"55061355": [16, 60, 8, 128, 64, 37, 8, 32, 8, 173]}, {"55061368": [173]}, {"55061371": [4, 173]}, {"55061375": [8, 173]}, {"55061379": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061395": [42]}, {"55061401": [9, 15, 195, 1, 33, 32, 38]}, {"55061409": [129, 32, 35, 141, 5, 4, 40, 12, 16, 11, 19]}, {"55061424": [4, 64]}, {"55061427": [34]}, {"55061432": [52, 68]}, {"55061436": [12, 16, 11, 122]}, {"55061444": [16, 96]}, {"55061447": [12]}, {"55061452": [60, 8, 128, 64, 37, 8, 32, 8, 140, 105]}, {"55061464": [173, 9]}, {"55061468": [140, 105]}, {"55061471": [4, 173, 9]}, {"55061475": [4, 140, 105]}, {"55061479": [8, 173, 9]}, {"55061483": [8, 52, 9]}, {"55061487": [1, 173, 9]}, {"55061491": [12, 144, 98]}, {"55061496": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061512": [52, 1]}, {"55061515": [10, 21, 65]}, {"55061519": [6]}, {"55061524": [149, 42]}, {"55061527": [28, 49, 74, 240, 31]}, {"55061533": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061543": [28, 129, 9, 4, 36, 5, 33]}, {"55061551": [2]}, {"55061557": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061567": [16, 39, 189]}, {"55061571": [24, 3, 224]}, {"55061575": [8]}, {"55061580": [39, 189, 255, 232, 175, 191]}, {"55061587": [16, 12, 16, 11, 33]}, {"55061596": [36, 1, 255, 255, 16, 65]}, {"55061603": [4]}, {"55061608": [52, 68]}, {"55061612": [12, 16, 11, 85]}, {"55061620": [143, 191]}, {"55061623": [16, 39, 189]}, {"55061627": [24, 3, 224]}, {"55061631": [8]}, {"55061636": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061647": [164, 52, 8]}, {"55061652": [52, 137]}, {"55061656": [148, 170]}, {"55061660": [52, 1, 1, 156, 21, 65]}, {"55061667": [8]}, {"55061672": [52, 8]}, {"55061675": [3, 148, 171]}, {"55061679": [28, 49, 105]}, {"55061683": [255, 49, 98, 31]}, {"55061689": [2, 18, 2, 16]}, {"55061695": [31]}, {"55061700": [52, 1]}, {"55061703": [10, 21, 65]}, {"55061707": [14]}, {"55061712": [148, 171]}, {"55061715": [28, 52, 1]}, {"55061719": [16, 20, 65]}, {"55061723": [8]}, {"55061728": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061739": [4]}, {"55061744": [36, 2, 255, 255, 16]}, {"55061751": [21]}, {"55061756": [52, 8]}, {"55061759": [1, 49, 105]}, {"55061763": [31, 52, 1]}, {"55061767": [21, 21, 65]}, {"55061771": [12]}, {"55061776": [52, 1]}, {"55061779": [62, 16, 129]}, {"55061783": [7]}, {"55061788": [52, 1]}, {"55061791": [66, 16, 129]}, {"55061795": [4]}, {"55061800": [36, 2, 255, 255, 16]}, {"55061807": [7]}, {"55061812": [52, 8]}, {"55061815": [2, 144, 169, 1, 65]}, {"55061821": [2, 18]}, {"55061825": [72, 16, 37]}, {"55061829": [2, 18]}, {"55061833": [73, 16, 37, 3, 224]}, {"55061839": [8]}, {"55061844": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061856": [129, 9]}, {"55061860": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061883": [4, 141, 9]}, {"55061888": [17, 32]}, {"55061891": [23]}, {"55061897": [9, 82, 2, 49, 75, 248]}, {"55061905": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061928": [49, 34]}, {"55061931": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061952": [60, 12, 128, 64, 37, 140, 28]}, {"55061960": [129, 140]}, {"55061964": [17, 108]}, {"55061967": [4, 165, 32]}, {"55061971": [2, 161, 43]}, {"55061975": [2, 161, 34]}, {"55061979": [3, 173, 36]}, {"55061983": [4, 3, 224]}, {"55061987": [8]}, {"55061992": [39, 189, 255, 224, 175, 176]}, {"55061999": [16, 175, 177]}, {"55062003": [20, 175, 191]}, {"55062007": [24, 52, 130]}, {"55062012": [52, 80]}, {"55062016": [38, 8, 255, 128, 5]}, {"55062023": [18]}, {"55062028": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55062039": [16, 1, 9]}, {"55062043": [24]}, {"55062046": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55062064": [142, 40]}, {"55062067": [12, 1]}, {"55062070": [248, 9]}, {"55062076": [20, 80, 255, 239]}, {"55062084": [54, 35]}, {"55062088": [16]}, {"55062091": [2]}, {"55062096": [52, 3]}, {"55062100": [143, 176]}, {"55062103": [16, 143, 177]}, {"55062107": [20, 143, 191]}, {"55062111": [24, 39, 189]}, {"55062115": [32, 3, 224]}, {"55062119": [8]}, {"55062124": [140, 136, 29, 44, 52, 9]}, {"55062131": [1]}, {"55062133": [9, 78]}, {"55062136": [1, 9, 16, 36, 16, 64]}, {"55062143": [36]}, {"55062148": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062163": [164, 52, 1]}, {"55062167": [61, 17, 129]}, {"55062171": [10]}, {"55062177": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062187": [25]}, {"55062192": [52, 13]}, {"55062195": [1, 161, 141, 29, 40, 37, 74]}, {"55062203": [3, 16]}, {"55062207": [9]}, {"55062212": [52, 12]}, {"55062215": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062231": [14]}, {"55062236": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062272": [60, 9, 128, 64, 37, 41, 32, 24, 161, 40]}, {"55062284": [52, 2]}, {"55062288": [3, 224]}, {"55062291": [8]}, {"55062296": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062308": [16]}, {"55062311": [34]}, {"55062316": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062328": [16]}, {"55062331": [29]}, {"55062336": [52, 2]}, {"55062339": [255, 32, 232, 255, 166, 33, 8]}, {"55062347": [97, 16]}, {"55062351": [24]}, {"55062356": [52, 8]}, {"55062359": [100, 16]}, {"55062363": [21]}, {"55062368": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062383": [1, 160, 40, 14, 222, 52, 8]}, {"55062391": [104, 16]}, {"55062395": [13]}, {"55062400": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062415": [4, 160, 40, 14, 222, 52, 8]}, {"55062423": [106, 16]}, {"55062427": [5]}, {"55062432": [52, 5]}, {"55062435": [3, 52, 8]}, {"55062439": [107, 16]}, {"55062443": [1]}, {"55062448": [60, 9, 128, 64, 37, 41, 32, 24, 60, 10, 128, 64, 37, 74, 32, 27, 129, 44]}, {"55062468": [17, 136]}, {"55062471": [11, 33, 41]}, {"55062475": [1, 21, 42, 255, 252]}, {"55062484": [60, 9, 128, 64, 37, 41, 32, 23, 33, 41]}, {"55062495": [1, 17, 42]}, {"55062499": [4, 129, 44]}, {"55062504": [21, 128, 255, 252]}, {"55062512": [161, 40]}, {"55062516": [3, 224]}, {"55062519": [8]}, {"55062525": [96, 120, 33, 129, 236, 14, 223, 49, 142]}, {"55062535": [128, 17, 192]}, {"55062539": [3, 52, 3]}, {"55062543": [5, 3, 224]}, {"55062547": [8, 52, 2]}, {"55062551": [2, 3, 224]}, {"55062555": [8]}, {"55062557": [96, 16, 33, 133, 194]}, {"55062563": [164, 60, 8, 128, 18, 37, 8, 165, 208, 129, 9, 14, 223, 53, 41]}, {"55062579": [128, 161, 9, 14, 223, 3, 224]}, {"55062587": [8]}, {"55062592": [132, 142]}, {"55062595": [28, 33, 205, 255, 206, 5, 160]}, {"55062603": [16, 52, 2]}, {"55062608": [49, 169]}, {"55062611": [7, 52, 10]}, {"55062615": [1, 1, 42, 80, 4]}, {"55062621": [13, 72, 194, 60, 12, 128, 18, 37, 140, 165, 208, 1, 137, 96, 32, 129, 139, 5, 180, 1, 106, 88, 36, 52, 2]}, {"55062648": [17, 96]}, {"55062651": [4]}, {"55062656": [52, 13]}, {"55062659": [38, 164, 141]}, {"55062663": [28, 52, 2]}, {"55062667": [1, 3, 224]}, {"55062671": [8]}, {"55062676": [132, 174]}, {"55062679": [28, 33, 205, 255, 206, 5, 160]}, {"55062687": [11, 52, 2]}, {"55062692": [49, 169]}, {"55062695": [7, 52, 10]}, {"55062699": [1, 1, 42, 80, 4]}, {"55062705": [13, 72, 194, 60, 12, 128, 18, 37, 140, 165, 208, 1, 137, 96, 32, 129, 139, 5, 180, 1, 106, 88, 37, 161, 139, 5, 180, 3, 224]}, {"55062735": [8]}, {"55062740": [39, 189, 255, 240, 175, 191]}, {"55062747": [8, 40, 129]}, {"55062751": [50, 16, 32]}, {"55062755": [3]}, {"55062757": [128, 16, 33, 3, 32, 248, 9]}, {"55062768": [143, 191]}, {"55062771": [8, 39, 189]}, {"55062775": [16, 3, 224]}, {"55062779": [8]}, {"55062784": [175, 164]}, {"55062787": [104, 175, 165]}, {"55062791": [108, 175, 166]}, {"55062795": [112, 175, 167]}, {"55062799": [116, 39, 189, 255, 232, 175, 163]}, {"55062807": [16, 175, 191]}, {"55062811": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062827": [32, 21]}, {"55062831": [31]}, {"55062836": [60, 9, 128, 64, 37, 41, 32, 27, 52, 10]}, {"55062847": [255, 161, 42]}, {"55062852": [60, 9, 128, 64, 37, 41, 32, 24, 36, 10, 255, 255, 52, 12]}, {"55062867": [3, 33, 74]}, {"55062871": [1, 17, 76]}, {"55062875": [20, 1, 42, 88, 32, 129, 104]}, {"55062884": [17]}, {"55062886": [255, 251]}, {"55062892": [60, 9, 128, 64, 37, 41, 32, 27, 161, 42]}, {"55062904": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062915": [1, 165, 42]}, {"55062920": [60, 9, 128, 65, 52, 10]}, {"55062927": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 217]}, {"55062956": [143, 163]}, {"55062959": [16, 143, 191]}, {"55062963": [20, 39, 189]}, {"55062967": [24, 143, 164]}, {"55062971": [104, 143, 165]}, {"55062975": [108, 143, 166]}, {"55062979": [112, 143, 167]}, {"55062983": [116, 132, 110, 19, 196, 3, 224]}, {"55062991": [8]}, {"55062996": [147, 25]}, {"55062999": [116, 52, 1]}, {"55063003": [255, 23, 33]}, {"55063007": [2]}, {"55063012": [52, 25]}, {"55063015": [44, 3, 224]}, {"55063019": [8, 167, 185]}, {"55063023": [154, 147, 44]}, {"55063027": [116, 52, 1]}, {"55063031": [255, 21, 129]}, {"55063035": [2]}, {"55063040": [52, 12]}, {"55063043": [44, 3, 224]}, {"55063047": [8]}, {"55063052": [145, 174]}, {"55063055": [116, 52, 1]}, {"55063059": [255, 21, 193]}, {"55063063": [2]}, {"55063068": [52, 14]}, {"55063071": [44, 3, 224]}, {"55063075": [8, 167, 174]}, {"55063079": [154, 145, 207]}, {"55063083": [116, 52, 1]}, {"55063087": [255, 21, 225]}, {"55063091": [2]}, {"55063096": [52, 15]}, {"55063099": [44, 3, 224]}, {"55063103": [8, 167, 175]}, {"55063107": [154, 60, 8, 128, 64, 37, 8, 32, 28, 142, 9]}, {"55063119": [104, 173, 9]}, {"55063124": [142, 9]}, {"55063127": [108, 173, 9]}, {"55063131": [4, 150, 9]}, {"55063135": [112, 165, 9]}, {"55063139": [8, 150, 9]}, {"55063143": [156, 165, 9]}, {"55063147": [10, 3, 224]}, {"55063151": [8, 142, 14]}, {"55063155": [4, 39, 189, 255, 224, 175, 176]}, {"55063163": [16, 175, 177]}, {"55063167": [20, 175, 191]}, {"55063171": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 28, 142, 8]}, {"55063191": [4, 17]}, {"55063195": [5]}, {"55063200": [12, 16, 12, 199]}, {"55063208": [16]}, {"55063211": [3]}, {"55063216": [12, 16, 12, 218]}, {"55063224": [12, 16, 12, 186, 52, 4]}, {"55063232": [12, 16, 12, 186, 52, 4]}, {"55063239": [1, 12, 16, 12, 186, 52, 4]}, {"55063247": [2, 143, 176]}, {"55063251": [16, 143, 177]}, {"55063255": [20, 143, 191]}, {"55063259": [24, 39, 189]}, {"55063263": [32, 3, 224]}, {"55063267": [8]}, {"55063272": [2, 4, 64, 33, 145, 9]}, {"55063279": [108, 52, 1]}, {"55063283": [255, 17, 33]}, {"55063287": [7]}, {"55063292": [2, 9, 72, 33, 145, 41]}, {"55063299": [116, 52, 1]}, {"55063303": [44, 17, 33]}, {"55063307": [2]}, {"55063312": [161, 9]}, {"55063315": [105, 3, 224]}, {"55063319": [8]}, {"55063324": [39, 189, 255, 232, 175, 191]}, {"55063331": [16, 142, 40]}, {"55063336": [174, 8]}, {"55063339": [64, 142, 40]}, {"55063343": [4, 174, 8]}, {"55063347": [68, 150, 40]}, {"55063351": [8, 166, 8]}, {"55063355": [72, 162]}, {"55063358": [15, 51, 146, 8]}, {"55063363": [74, 52, 1]}, {"55063367": [255, 21, 1]}, {"55063371": [3]}, {"55063376": [12, 16, 12, 232]}, {"55063384": [143, 191]}, {"55063387": [16, 39, 189]}, {"55063391": [24, 3, 224]}, {"55063395": [8]}, {"55063400": [142, 8]}, {"55063403": [64, 174, 8]}, {"55063407": [104, 142, 8]}, {"55063411": [68, 174, 8]}, {"55063415": [108, 150, 8]}, {"55063419": [72, 166, 8]}, {"55063423": [112, 146, 8]}, {"55063427": [104, 52, 1]}, {"55063431": [255, 21, 1]}, {"55063435": [3]}, {"55063440": [52, 8]}, {"55063443": [1, 162, 8, 15, 51, 3, 224]}, {"55063451": [8]}, {"55063456": [39, 189, 255, 232, 175, 191]}, {"55063463": [16, 150, 8]}, {"55063467": [156, 49, 8]}, {"55063471": [64, 17]}, {"55063475": [5]}, {"55063480": [150, 8]}, {"55063483": [112, 49, 8, 255, 15, 53, 8]}, {"55063491": [48, 166, 8]}, {"55063495": [112, 146, 40]}, {"55063499": [1, 162, 8]}, {"55063503": [105, 150, 40]}, {"55063507": [2, 166, 8]}, {"55063511": [106, 142, 40]}, {"55063515": [4, 174, 8]}, {"55063519": [108, 12, 16, 13, 2, 52, 4]}, {"55063528": [12, 16, 13, 2, 52, 4]}, {"55063535": [1, 12, 16, 13, 2, 52, 4]}, {"55063543": [2, 143, 191]}, {"55063547": [16, 39, 189]}, {"55063551": [24, 3, 224]}, {"55063555": [8]}, {"55063560": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 52, 180, 145, 10]}, {"55063575": [108, 52, 1]}, {"55063579": [255, 17, 65]}, {"55063583": [5]}, {"55063588": [1, 42, 72, 33, 145, 41]}, {"55063596": [21, 32]}, {"55063599": [28]}, {"55063604": [60, 9, 128, 64, 37, 41, 52, 167, 37, 41]}, {"55063615": [1, 145, 42]}, {"55063620": [17, 64]}, {"55063623": [19]}, {"55063628": [2, 10, 88, 33, 145, 107]}, {"55063635": [116, 52, 1]}, {"55063639": [255, 17, 97, 255, 248]}, {"55063648": [146, 12]}, {"55063651": [108, 17, 138, 255, 245]}, {"55063660": [146, 12]}, {"55063663": [109, 17, 138, 255, 242]}, {"55063672": [146, 12]}, {"55063675": [110, 17, 138, 255, 239]}, {"55063684": [161, 11]}, {"55063687": [105, 161, 10]}, {"55063691": [108, 16]}, {"55063695": [4]}, {"55063700": [52, 9]}, {"55063703": [255, 161, 9]}, {"55063707": [105, 161, 9]}, {"55063711": [108, 3, 224]}, {"55063715": [8]}, {"55063720": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063733": [1, 1, 1, 1, 1]}, {"55063739": [1, 1, 1, 1, 1]}, {"55063745": [1]}, {"55063747": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063757": [51, 8, 33, 32, 15]}, {"55063763": [71, 21, 234]}, {"55063767": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063779": [164]}, {"55063781": [15, 122, 3, 20, 64]}, {"55063787": [5, 52, 2, 72, 48, 21, 226]}, {"55063795": [7]}, {"55063800": [36, 25]}, {"55063803": [3, 16]}, {"55063807": [4, 52, 2, 99, 17, 21, 226]}, {"55063815": [2]}, {"55063820": [36, 25]}, {"55063823": [3, 3, 224]}, {"55063827": [8]}, {"55063832": [141, 173, 138, 160, 52, 2, 128]}, {"55063840": [16, 77]}, {"55063843": [2]}, {"55063848": [16]}, {"55063851": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063867": [1, 16, 64]}, {"55063871": [2]}, {"55063876": [16]}, {"55063879": [2, 52, 2]}, {"55063883": [1, 161, 226, 28, 191, 3, 224]}, {"55063891": [8]}, {"55063897": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063911": [164]}, {"55063913": [15, 122, 3, 20, 64]}, {"55063919": [5, 52, 2, 72, 48, 21, 226]}, {"55063927": [7]}, {"55063932": [36, 25]}, {"55063935": [3, 16]}, {"55063939": [4, 52, 2, 99, 17, 21, 226]}, {"55063947": [2]}, {"55063952": [36, 25]}, {"55063955": [3, 3, 224]}, {"55063959": [8]}, {"55063964": [20, 64]}, {"55063967": [14]}, {"55063972": [52, 1]}, {"55063975": [24, 20, 129]}, {"55063979": [11, 60, 10, 128, 18, 37, 74, 165, 208, 129, 72]}, {"55063991": [166, 49, 8]}, {"55063995": [32, 17]}, {"55063999": [6, 52, 2]}, {"55064004": [129, 72]}, {"55064007": [123, 52, 1]}, {"55064011": [7, 17, 1]}, {"55064015": [2, 52, 2]}, {"55064019": [1, 52, 2]}, {"55064024": [3, 224]}, {"55064027": [8]}, {"55064032": [162, 37]}, {"55064035": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55064047": [4, 142, 10]}, {"55064052": [17, 64]}, {"55064055": [11]}, {"55064061": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55064073": [24, 194, 2, 23]}, {"55064079": [3, 49, 89]}, {"55064083": [255, 129, 234]}, {"55064088": [3, 42, 200, 37, 8, 16, 13, 123, 161, 249]}, {"55064100": [3, 224]}, {"55064103": [8]}] \ No newline at end of file diff --git a/version.py b/version.py index 76dc4dd12..d07d0f169 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.39 f.LUM' +__version__ = '2.15.40 f.LUM' From 9c17c440d92f824110ac319013a4710b5b4cb3f5 Mon Sep 17 00:00:00 2001 From: Unknown Date: Tue, 28 Aug 2018 21:08:26 -0400 Subject: [PATCH 348/755] Shopsanity can set the number of items per shop --- ItemList.py | 194 +++++++++++++++++++++++++--------------------------- Items.py | 16 +++-- Main.py | 3 + Rules.py | 3 +- Settings.py | 48 +++++++------ version.py | 2 +- 6 files changed, 137 insertions(+), 129 deletions(-) diff --git a/ItemList.py b/ItemList.py index 13eab277e..1ed53727e 100644 --- a/ItemList.py +++ b/ItemList.py @@ -77,13 +77,6 @@ + ['Rupees (20)'] * 2 + ['Rupees (50)']) -shopfiller = ( - ['Bombs (5)'] * 3 - + ['Arrows (5)'] * 3 - + ['Deku Nuts (5)'] * 3 - + ['Rupees (5)'] * 4 - + ['Rupees (20)']) - normal_rupees =( ['Rupees (5)'] * 16 + ['Rupees (20)'] * 6 @@ -97,6 +90,83 @@ + ['Rupees (200)'] * 8 + ['Progressive Wallet']) +vanilla_shop_items = { + 'Kokiri Shop Item 1': 'Buy Deku Shield', + 'Kokiri Shop Item 2': 'Buy Deku Nut (5)', + 'Kokiri Shop Item 3': 'Buy Deku Nut (10)', + 'Kokiri Shop Item 4': 'Buy Deku Stick (1)', + 'Kokiri Shop Item 5': 'Buy Deku Seeds (30)', + 'Kokiri Shop Item 6': 'Buy Arrows (10)', + 'Kokiri Shop Item 7': 'Buy Arrows (30)', + 'Kokiri Shop Item 8': 'Buy Heart', + 'Kakariko Potion Shop Item 1': 'Buy Deku Nut (5)', + 'Kakariko Potion Shop Item 2': 'Buy Fish', + 'Kakariko Potion Shop Item 3': 'Buy Red Potion [30]', + 'Kakariko Potion Shop Item 4': 'Buy Green Potion', + 'Kakariko Potion Shop Item 5': 'Buy Blue Fire', + 'Kakariko Potion Shop Item 6': 'Buy Bottle Bug', + 'Kakariko Potion Shop Item 7': 'Buy Poe', + 'Kakariko Potion Shop Item 8': 'Buy Fairy\'s Spirit', + 'Bombchu Shop Item 1': 'Buy Bombchu (5)', + 'Bombchu Shop Item 2': 'Buy Bombchu (10)', + 'Bombchu Shop Item 3': 'Buy Bombchu (10)', + 'Bombchu Shop Item 4': 'Buy Bombchu (10)', + 'Bombchu Shop Item 5': 'Buy Bombchu (20)', + 'Bombchu Shop Item 6': 'Buy Bombchu (20)', + 'Bombchu Shop Item 7': 'Buy Bombchu (20)', + 'Bombchu Shop Item 8': 'Buy Bombchu (20)', + 'Castle Town Potion Shop Item 1': 'Buy Green Potion', + 'Castle Town Potion Shop Item 2': 'Buy Blue Fire', + 'Castle Town Potion Shop Item 3': 'Buy Red Potion [30]', + 'Castle Town Potion Shop Item 4': 'Buy Fairy\'s Spirit', + 'Castle Town Potion Shop Item 5': 'Buy Deku Nut (5)', + 'Castle Town Potion Shop Item 6': 'Buy Bottle Bug', + 'Castle Town Potion Shop Item 7': 'Buy Poe', + 'Castle Town Potion Shop Item 8': 'Buy Fish', + 'Bazaar Item 1': 'Buy Hylian Shield', + 'Bazaar Item 2': 'Buy Bombs (5) [35]', + 'Bazaar Item 3': 'Buy Deku Nut (5)', + 'Bazaar Item 4': 'Buy Heart', + 'Bazaar Item 5': 'Buy Arrows (10)', + 'Bazaar Item 6': 'Buy Arrows (50)', + 'Bazaar Item 7': 'Buy Deku Stick (1)', + 'Bazaar Item 8': 'Buy Arrows (30)', + 'Zora Shop Item 1': 'Buy Zora Tunic', + 'Zora Shop Item 2': 'Buy Arrows (10)', + 'Zora Shop Item 3': 'Buy Heart', + 'Zora Shop Item 4': 'Buy Arrows (30)', + 'Zora Shop Item 5': 'Buy Deku Nut (5)', + 'Zora Shop Item 6': 'Buy Arrows (50)', + 'Zora Shop Item 7': 'Buy Fish', + 'Zora Shop Item 8': 'Buy Red Potion [50]', + 'Goron Shop Item 1': 'Buy Bombs (5) [25]', + 'Goron Shop Item 2': 'Buy Bombs (10)', + 'Goron Shop Item 3': 'Buy Bombs (20)', + 'Goron Shop Item 4': 'Buy Bombs (30)', + 'Goron Shop Item 5': 'Buy Goron Tunic', + 'Goron Shop Item 6': 'Buy Heart', + 'Goron Shop Item 7': 'Buy Red Potion [40]', + 'Goron Shop Item 8': 'Buy Heart', +} + +min_shop_items = ( + ['Buy Deku Shield'] + + ['Buy Hylian Shield'] + + ['Buy Goron Tunic'] + + ['Buy Zora Tunic'] + + ['Buy Deku Nut (5)'] * 2 + ['Buy Deku Nut (10)'] + + ['Buy Deku Stick (1)'] * 2 + + ['Buy Deku Seeds (30)'] + + ['Buy Arrows (10)'] * 2 + ['Buy Arrows (30)'] + ['Buy Arrows (50)'] + + ['Buy Bombchu (5)'] + ['Buy Bombchu (10)'] * 2 + ['Buy Bombchu (20)'] + + ['Buy Bombs (5) [25]'] + ['Buy Bombs (5) [35]'] + ['Buy Bombs (10)'] + ['Buy Bombs (20)'] + + ['Buy Green Potion'] + + ['Buy Red Potion [30]'] + + ['Buy Blue Fire'] + + ['Buy Fairy\'s Spirit'] + + ['Buy Bottle Bug'] + + ['Buy Fish']) + rewardlist = [ 'Kokiri Emerald', 'Goron Ruby', @@ -356,101 +426,25 @@ def get_pool_core(world): placed_items['Gerudo Fortress Membership Card'] = 'Gerudo Membership Card' if world.shopsanity == 'off': - placed_items['Kokiri Shop Item 1'] = 'Buy Deku Shield' - placed_items['Kokiri Shop Item 2'] = 'Buy Deku Nut (5)' - placed_items['Kokiri Shop Item 3'] = 'Buy Deku Nut (10)' - placed_items['Kokiri Shop Item 4'] = 'Buy Deku Stick (1)' - placed_items['Kokiri Shop Item 5'] = 'Buy Deku Seeds (30)' - placed_items['Kokiri Shop Item 6'] = 'Buy Arrows (10)' - placed_items['Kokiri Shop Item 7'] = 'Buy Arrows (30)' - placed_items['Kokiri Shop Item 8'] = 'Buy Bombchu (5)' - placed_items['Kakariko Potion Shop Item 1'] = 'Buy Green Potion' - placed_items['Kakariko Potion Shop Item 2'] = 'Buy Blue Fire' - placed_items['Kakariko Potion Shop Item 3'] = 'Buy Red Potion' - placed_items['Kakariko Potion Shop Item 4'] = 'Buy Fairy\'s Spirit' - placed_items['Kakariko Potion Shop Item 5'] = 'Buy Deku Nut (5)' - placed_items['Kakariko Potion Shop Item 6'] = 'Buy Bottle Bug' - placed_items['Kakariko Potion Shop Item 7'] = 'Sold Out' - placed_items['Kakariko Potion Shop Item 8'] = 'Buy Fish' - placed_items['Bombchu Shop Item 1'] = 'Buy Bombchu (5)' - placed_items['Bombchu Shop Item 2'] = 'Buy Bombchu (10)' - placed_items['Bombchu Shop Item 3'] = 'Buy Bombchu (10)' - placed_items['Bombchu Shop Item 4'] = 'Buy Bombchu (10)' - placed_items['Bombchu Shop Item 5'] = 'Buy Bombchu (20)' - placed_items['Bombchu Shop Item 6'] = 'Buy Bombchu (20)' - placed_items['Bombchu Shop Item 7'] = 'Buy Bombchu (20)' - placed_items['Bombchu Shop Item 8'] = 'Buy Bombchu (20)' - placed_items['Castle Town Potion Shop Item 1'] = 'Buy Green Potion' - placed_items['Castle Town Potion Shop Item 2'] = 'Buy Blue Fire' - placed_items['Castle Town Potion Shop Item 3'] = 'Buy Red Potion' - placed_items['Castle Town Potion Shop Item 4'] = 'Buy Fairy\'s Spirit' - placed_items['Castle Town Potion Shop Item 5'] = 'Buy Deku Nut (5)' - placed_items['Castle Town Potion Shop Item 6'] = 'Buy Bottle Bug' - placed_items['Castle Town Potion Shop Item 7'] = 'Sold Out' - placed_items['Castle Town Potion Shop Item 8'] = 'Buy Fish' - placed_items['Bazaar Item 1'] = 'Buy Hylian Shield' - placed_items['Bazaar Item 2'] = 'Buy Bombs (5)' - placed_items['Bazaar Item 3'] = 'Buy Deku Nut (5)' - placed_items['Bazaar Item 4'] = 'Buy Bombchu (5)' - placed_items['Bazaar Item 5'] = 'Buy Arrows (10)' - placed_items['Bazaar Item 6'] = 'Sold Out' - placed_items['Bazaar Item 7'] = 'Buy Deku Stick (1)' - placed_items['Bazaar Item 8'] = 'Buy Arrows (30)' - placed_items['Zora Shop Item 1'] = 'Buy Zora Tunic' - placed_items['Zora Shop Item 2'] = 'Buy Arrows (10)' - placed_items['Zora Shop Item 3'] = 'Sold Out' - placed_items['Zora Shop Item 4'] = 'Buy Arrows (30)' - placed_items['Zora Shop Item 5'] = 'Buy Deku Nut (5)' - placed_items['Zora Shop Item 6'] = 'Sold Out' - placed_items['Zora Shop Item 7'] = 'Buy Fish' - placed_items['Zora Shop Item 8'] = 'Buy Red Potion' - placed_items['Goron Shop Item 1'] = 'Buy Bombs (5)' - placed_items['Goron Shop Item 2'] = 'Buy Bombs (10)' - placed_items['Goron Shop Item 3'] = 'Buy Bombs (20)' - placed_items['Goron Shop Item 4'] = 'Sold Out' - placed_items['Goron Shop Item 5'] = 'Buy Goron Tunic' - placed_items['Goron Shop Item 6'] = 'Sold Out' - placed_items['Goron Shop Item 7'] = 'Buy Red Potion' - placed_items['Goron Shop Item 8'] = 'Sold Out' + for location, item in vanilla_shop_items.items(): + placed_items[location] = item + if world.bombchus_in_logic: + placed_items['Kokiri Shop Item 8'] = 'Buy Bombchu (5)', + placed_items['Bazaar Item 4'] = 'Buy Bombchu (5)', pool.extend(normal_rupees) - elif world.shopsanity == 'on': - pool.extend(['Buy Deku Shield'] - + ['Buy Hylian Shield'] - + ['Buy Goron Tunic'] - + ['Buy Zora Tunic'] - + ['Buy Deku Nut (5)'] * 2 + ['Buy Deku Nut (10)'] - + ['Buy Deku Stick (1)'] * 3 - + ['Buy Deku Seeds (30)'] * 2 - + ['Buy Arrows (10)'] + ['Buy Arrows (30)'] - + ['Buy Bombchu (5)'] * 2 + ['Buy Bombchu (10)'] + ['Buy Bombchu (20)'] - + ['Buy Bombs (5)'] * 2 + ['Buy Bombs (10)'] + ['Buy Bombs (20)'] - + ['Buy Green Potion'] - + ['Buy Red Potion'] - + ['Buy Blue Fire'] - + ['Buy Fairy\'s Spirit'] - + ['Buy Bottle Bug'] - + ['Buy Fish'] - + shopfiller * 2 - + shopsanity_rupees) else: - pool.extend(['Buy Deku Shield'] - + ['Buy Hylian Shield'] - + ['Buy Goron Tunic'] - + ['Buy Zora Tunic'] - + ['Buy Deku Nut (5)'] * 2 + ['Buy Deku Nut (10)'] - + ['Buy Deku Stick (1)'] * 3 - + ['Buy Deku Seeds (30)'] * 2 - + ['Buy Arrows (10)'] + ['Buy Arrows (30)'] - + ['Buy Bombchu (5)'] * 2 + ['Buy Bombchu (10)'] + ['Buy Bombchu (20)'] - + ['Buy Bombs (5)'] * 2 + ['Buy Bombs (10)'] + ['Buy Bombs (20)'] - + ['Buy Green Potion'] - + ['Buy Red Potion'] - + ['Buy Blue Fire'] - + ['Buy Fairy\'s Spirit'] - + ['Buy Bottle Bug'] - + ['Buy Fish'] - + shopfiller * 2 - + shopsanity_rupees) + remain_shop_items = [item for _,item in vanilla_shop_items.items()] + pool.extend(min_shop_items) + for item in min_shop_items: + remain_shop_items.remove(item) + + shop_slots_count = len(remain_shop_items) + shop_nonitem_count = len(world.shop_prices) + shop_item_count = shop_slots_count - shop_nonitem_count + + pool.extend(random.sample(remain_shop_items, shop_item_count)) + pool.extend(random.sample(veryharditems, shop_nonitem_count)) + pool.extend(shopsanity_rupees) pool.extend(alwaysitems) for _ in range(normal_bottle_count): diff --git a/Items.py b/Items.py index d317211b8..bdb72f661 100644 --- a/Items.py +++ b/Items.py @@ -194,15 +194,15 @@ def __init__(self, model, gid, price): 'Triforce': (True, False, 'Event', None, None, None, None), 'Buy Deku Nut (5)': (True, False, 'Shop', None, 0x00, 0x00BB, 0x12), 'Buy Arrows (30)': (True, False, 'Shop', None, 0x01, 0x00D8, 0x26), - #'Buy Arrows (50)': (True, False, 'Shop', None, 0x02, 0x00D8, 0x27), - 'Buy Bombs (5)': (True, False, 'Shop', None, 0x03, 0x00CE, 0x20), + 'Buy Arrows (50)': (True, False, 'Shop', None, 0x02, 0x00D8, 0x27), + 'Buy Bombs (5) [25]': (True, False, 'Shop', None, 0x03, 0x00CE, 0x20), 'Buy Deku Nut (10)': (True, False, 'Shop', None, 0x04, 0x00BB, 0x12), 'Buy Deku Stick (1)': (True, False, 'Shop', None, 0x05, 0x00C7, 0x1B), 'Buy Bombs (10)': (True, False, 'Shop', None, 0x06, 0x00CE, 0x20), 'Buy Fish': (False, True, 'Shop', None, 0x07, 0x00F4, 0x3F), - 'Buy Red Potion': (False, True, 'Shop', None, 0x08, 0x00EB, 0x15), - 'Buy Green Potion': (False, True, 'Shop', None, 0x09, 0x00EB, 0x16), - #'Buy Blue Potion': (False, True, 'Shop', None, 0x0A, 0x00EB, 0x17), + 'Buy Red Potion [30]': (False, True, 'Shop', None, 0x08, 0x00EB, 0x38), + 'Buy Green Potion': (False, True, 'Shop', None, 0x09, 0x00EB, 0x37), + 'Buy Blue Potion': (False, True, 'Shop', None, 0x0A, 0x00EB, 0x39), 'Buy Hylian Shield': (True, False, 'Shop', None, 0x0C, 0x00DC, 0x2C), 'Buy Deku Shield': (True, False, 'Shop', None, 0x0D, 0x00CB, 0x1D), 'Buy Goron Tunic': (True, False, 'Shop', None, 0x0E, 0x00F2, 0x3C), @@ -215,10 +215,14 @@ def __init__(self, model, gid, price): 'Sold Out': (False, True, 'Shop', None, 0x26, 0x0148, 0x59), 'Buy Blue Fire': (True, False, 'Shop', None, 0x27, 0x0173, 0x67), 'Buy Bottle Bug': (False, True, 'Shop', None, 0x28, 0x0174, 0x68), + 'Buy Poe': (False, True, 'Shop', None, 0x2A, 0x0176, 0x6A), 'Buy Fairy\'s Spirit': (False, True, 'Shop', None, 0x2B, 0x0177, 0x6B), 'Buy Arrows (10)': (True, False, 'Shop', None, 0x2C, 0x00D8, 0x25), 'Buy Bombs (20)': (True, False, 'Shop', None, 0x2D, 0x00CE, 0x20), - #'Buy Bombs (30)': (True, False, 'Shop', None, 0x2E, 0x00CE, 0x20), + 'Buy Bombs (30)': (True, False, 'Shop', None, 0x2E, 0x00CE, 0x20), + 'Buy Bombs (5) [35]': (True, False, 'Shop', None, 0x2F, 0x00CE, 0x20), + 'Buy Red Potion [40]': (False, True, 'Shop', None, 0x30, 0x00EB, 0x38), + 'Buy Red Potion [50]': (False, True, 'Shop', None, 0x31, 0x00EB, 0x38), } item_data = { diff --git a/Main.py b/Main.py index 6210147ff..b184bb8df 100644 --- a/Main.py +++ b/Main.py @@ -72,6 +72,9 @@ def main(settings, window=dummy_window()): logger.info('Linking Entrances') link_entrances(world) + if settings.shopsanity != 'off': + world.random_shop_prices() + window.update_progress(0 + (((id + 1) / settings.world_count) * 4)) logger.info('Calculating Access Rules.') set_rules(world) diff --git a/Rules.py b/Rules.py index 928f907ee..77a7dd4d1 100644 --- a/Rules.py +++ b/Rules.py @@ -296,7 +296,8 @@ def global_rules(world): forbid_item(location, 'Buy Goron Tunic') forbid_item(location, 'Buy Zora Tunic') - if (location.name.endswith('5') or location.name.endswith('6') or location.name.endswith('7') or location.name.endswith('8')) and world.shopsanity != 'off': + if location.name in world.shop_prices: + location.price = world.shop_prices[location.name] add_item_rule(location, lambda i: (i.type != 'Shop')) if location.price > 200: set_rule(location, lambda state: state.has('Progressive Wallet', 2)) diff --git a/Settings.py b/Settings.py index a2857a00b..69776fb72 100644 --- a/Settings.py +++ b/Settings.py @@ -370,7 +370,7 @@ def __init__(self, settings_dict): Bombchus will be considered in logic. This has a few effects: -Back alley shop will open once you've found Bombchus -It will sell an affordable pack (5 for 60), and never sell out - -Bombchu Bowling will open once you've found Bombchus + -Bombchus refills cannot be bought until Bomchus have been obtained. ''', 'action': 'store_true' }, @@ -391,7 +391,9 @@ def __init__(self, settings_dict): Bombchu Bowling opens with bombchus. Bombchus are available at Kokiri Shop - and the Bazaar. + and the Bazaar. Bombchus refills cannot + be bought until Bomchus have been + obtained. ''', }), Setting_Info('trials', int, 3, True, @@ -788,15 +790,17 @@ def __init__(self, settings_dict): 'default': 'off', 'const': 'off', 'nargs': '?', - 'choices': ['off', 'on', 'sparse'], + 'choices': ['off', '0', '1', '2', '3', '4', 'random'], 'help': '''\ Shop contents are randomized. There are Two items in every shop that are one time buy and are not refill items. off: Normal Shops* - on: Shop contents are shuffled - sparse: Shop contents are shuffled and shops - sell fewer items. Harder mode. + 0-4: Shop contents are shuffled and N non-shop + items are added to every shop. So more + possible item locations. + random: Shop contents are shuffles and each shop + will have a random number of non-shop items ''' }, { @@ -806,29 +810,31 @@ def __init__(self, settings_dict): 'default': 'Off', 'options': { 'Off': 'off', - 'Shuffled Shops': 'on', - 'Sparse Shuffle Shops': 'sparse', + 'Shuffled Shops (0 Items)': '0', + 'Shuffled Shops (1 Items)': '1', + 'Shuffled Shops (2 Items)': '2', + 'Shuffled Shops (3 Items)': '3', + 'Shuffled Shops (4 Items)': '4', + 'Shuffled Shops (Random)': 'random', }, 'tooltip':'''\ Shop contents are randomized. - The lower left two items are - one stock items that are not - refill items. This means every - shop has 2 more possible item - locations. - Bombchus refills cannot be - bought until Bomchus have been - obtained. + (X Items): Shops have X random + non-shop items in every. They + will always be on the left side. + This means every shop will have + more possible item locations. + So +2 means 2 items per shop. + + (Random): Each shop will have + a random number of non-shop + items. Each shop can have a + maximum of 4 items. Logic guarantees you have access to a shop item refill to be able to use the item. - - 'Sparse': Shops have fewer - refill items. This means it - will be more difficult to fine - ammo. ''' }), Setting_Info('logic_skulltulas', int, 3, True, diff --git a/version.py b/version.py index d07d0f169..06e0c9828 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.40 f.LUM' +__version__ = '2.15.41 f.LUM' From 6ec9f4a06f0e18a4315558866206cab983007b77 Mon Sep 17 00:00:00 2001 From: Unknown Date: Tue, 28 Aug 2018 21:25:00 -0400 Subject: [PATCH 349/755] Added CRC calculation from MZX's branch --- Rom.py | 3696 ++++++++++++++++++++++++++-------------------------- version.py | 2 +- 2 files changed, 1865 insertions(+), 1833 deletions(-) diff --git a/Rom.py b/Rom.py index 593b7796b..123828794 100644 --- a/Rom.py +++ b/Rom.py @@ -1,1832 +1,1864 @@ -import io -import json -import logging -import os -import platform -import struct -import subprocess -import random -import copy - -from Hints import buildGossipHints, buildBossRewardHints, buildGanonText -from Utils import local_path, default_output_path -from Items import ItemFactory, item_data -from Messages import * -from OcarinaSongs import Song, replace_songs, subsong - -TunicColors = { - "Kokiri Green": [0x1E, 0x69, 0x1B], - "Goron Red": [0x64, 0x14, 0x00], - "Zora Blue": [0x00, 0x3C, 0x64], - "Black": [0x30, 0x30, 0x30], - "White": [0xF0, 0xF0, 0xFF], - "Purple": [0x95, 0x30, 0x80], - "Yellow": [0xE0, 0xD8, 0x60], - "Orange": [0xE0, 0x79, 0x40], - "Pink": [0xFF, 0x90, 0xB3], - "Gray": [0xA0, 0xA0, 0xB0], - "Brown": [0x95, 0x59, 0x0A], - "Gold": [0xD8, 0xB0, 0x60], - "Silver": [0xD0, 0xF0, 0xFF], - "Beige": [0xC0, 0xA0, 0xA0], - "Teal": [0x30, 0xD0, 0xB0], - "Royal Blue": [0x40, 0x00, 0x90], - "Sonic Blue": [0x50, 0x90, 0xE0], - "Blood Red": [0x30, 0x10, 0x10], - "Blood Orange": [0xF0, 0x30, 0x30], - "NES Green": [0x00, 0xD0, 0x00], - "Dark Green": [0x00, 0x25, 0x18], - "Only": [80, 140, 240], -} - -NaviColors = { - "White": [0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00], - "Green": [0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00], - "Light Blue": [0x96, 0x96, 0xFF, 0xFF, 0x96, 0x96, 0xFF, 0x00], - "Yellow": [0xFF, 0xFF, 0x00, 0xFF, 0xC8, 0x9B, 0x00, 0x00], - "Red": [0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00], - "Magenta": [0xFF, 0x00, 0xFF, 0xFF, 0xC8, 0x00, 0x9B, 0x00], - "Black": [0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00], - "Tatl": [0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0x98, 0x00, 0x00], - "Tael": [0x49, 0x14, 0x6C, 0xFF, 0xFF, 0x00, 0x00, 0x00], -} - -def get_tunic_colors(): - return list(TunicColors.keys()) - -def get_tunic_color_options(): - return ["Random Choice", "Completely Random"] + get_tunic_colors() - -def get_navi_colors(): - return list(NaviColors.keys()) - -def get_navi_color_options(): - return ["Random Choice", "Completely Random"] + get_navi_colors() - -class LocalRom(object): - - def __init__(self, settings, patch=True): - self.last_address = None - - file = settings.rom - decomp_file = os.path.join(default_output_path(settings.output_dir), 'ZOOTDEC.z64') - - validCRC = [] - validCRC.append(bytearray([0xEC, 0x70, 0x11, 0xB7, 0x76, 0x16, 0xD7, 0x2B])) # Compressed - validCRC.append(bytearray([0x70, 0xEC, 0xB7, 0x11, 0x16, 0x76, 0x2B, 0xD7])) # Byteswap compressed - validCRC.append(bytearray([0x93, 0x52, 0x2E, 0x7B, 0xE5, 0x06, 0xD4, 0x27])) # Decompressed - - os.chdir(os.path.dirname(os.path.realpath(__file__))) - #os.chdir(output_path(os.path.dirname(os.path.realpath(__file__)))) - with open(file, 'rb') as stream: - self.buffer = read_rom(stream) - file_name = os.path.splitext(file) - romCRC = self.buffer[0x10:0x18] - if romCRC not in validCRC: - raise RuntimeError('ROM is not a valid OoT 1.0 US ROM.') - if len(self.buffer) < 0x2000000 or len(self.buffer) > (0x4000000) or file_name[1] not in ['.z64', '.n64']: - raise RuntimeError('ROM is not a valid OoT 1.0 ROM.') - if len(self.buffer) == 0x2000000: - if platform.system() == 'Windows': - subprocess.call(["Decompress\\Decompress.exe", file, decomp_file]) - with open(decomp_file, 'rb') as stream: - self.buffer = read_rom(stream) - elif platform.system() == 'Linux': - subprocess.call(["Decompress/Decompress", file]) - with open(("ZOOTDEC.z64"), 'rb') as stream: - self.buffer = read_rom(stream) - elif platform.system() == 'Darwin': - subprocess.call(["Decompress/Decompress.out", file]) - with open(("ZOOTDEC.z64"), 'rb') as stream: - self.buffer = read_rom(stream) - else: - raise RuntimeError('Unsupported operating system for decompression. Please supply an already decompressed ROM.') - # extend to 64MB - self.buffer.extend(bytearray([0x00] * (0x4000000 - len(self.buffer)))) - - def read_byte(self, address): - return self.buffer[address] - - def read_bytes(self, address, len): - return self.buffer[address : address + len] - - def read_int16(self, address): - return bytes_as_int16(self.read_bytes(address, 2)) - - def read_int24(self, address): - return bytes_as_int24(self.read_bytes(address, 3)) - - def read_int32(self, address): - return bytes_as_int32(self.read_bytes(address, 4)) - - def write_byte(self, address, value): - if address == None: - address = self.last_address - self.buffer[address] = value - self.last_address = address + 1 - - def write_int16(self, address, value): - if address == None: - address = self.last_address - self.write_bytes(address, int16_as_bytes(value)) - - def write_int24(self, address, value): - if address == None: - address = self.last_address - self.write_bytes(address, int24_as_bytes(value)) - - def write_int32(self, address, value): - if address == None: - address = self.last_address - self.write_bytes(address, int32_as_bytes(value)) - - def write_bytes(self, startaddress, values): - if startaddress == None: - startaddress = self.last_address - for i, value in enumerate(values): - self.write_byte(startaddress + i, value) - - def write_int16s(self, startaddress, values): - if startaddress == None: - startaddress = self.last_address - for i, value in enumerate(values): - self.write_int16(startaddress + (i * 2), value) - - def write_int24s(self, startaddress, values): - if startaddress == None: - startaddress = self.last_address - for i, value in enumerate(values): - self.write_int24(startaddress + (i * 3), value) - - def write_int32s(self, startaddress, values): - if startaddress == None: - startaddress = self.last_address - for i, value in enumerate(values): - self.write_int32(startaddress + (i * 4), value) - - def write_to_file(self, file): - with open(file, 'wb') as outfile: - outfile.write(self.buffer) - -def read_rom(stream): - "Reads rom into bytearray" - buffer = bytearray(stream.read()) - return buffer - - -def int16_as_bytes(value): - value = value & 0xFFFF - return [(value >> 8) & 0xFF, value & 0xFF] - -def int24_as_bytes(value): - value = value & 0xFFFFFFFF - return [(value >> 16) & 0xFF, (value >> 8) & 0xFF, value & 0xFF] - -def int32_as_bytes(value): - value = value & 0xFFFFFFFF - return [(value >> 24) & 0xFF, (value >> 16) & 0xFF, (value >> 8) & 0xFF, value & 0xFF] - -def bytes_as_int16(values): - return (values[0] << 8) | values[1] - -def bytes_as_int24(values): - return (values[0] << 16) | (values[1] << 8) | values[2] - -def bytes_as_int32(values): - return (values[0] << 24) | (values[1] << 16) | (values[2] << 8) | values[3] - - - - -def patch_rom(world, rom): - with open(local_path('data/base2current.json'), 'r') as stream: - patches = json.load(stream) - for patch in patches: - if isinstance(patch, dict): - for baseaddress, values in patch.items(): - rom.write_bytes(int(baseaddress), values) - - # Can always return to youth - rom.write_byte(0xCB6844, 0x35) - rom.write_byte(0x253C0E2, 0x03) # Moves sheik from pedestal - - # Fix child shooting gallery reward to be static - rom.write_bytes(0xD35EFC, [0x00, 0x00, 0x00, 0x00]) - - # Fix target in woods reward to be static - rom.write_bytes(0xE59CD4, [0x00, 0x00, 0x00, 0x00]) - - # Fix GS rewards to be static - rom.write_bytes(0xEA3934, [0x00, 0x00, 0x00, 0x00]) - rom.write_bytes(0xEA3940 , [0x10, 0x00]) - - # Fix horseback archery rewards to be static - rom.write_byte(0xE12BA5, 0x00) - rom.write_byte(0xE12ADD, 0x00) - - # Fix adult shooting gallery reward to be static - rom.write_byte(0xD35F55, 0x00) - - # Fix deku theater rewards to be static - rom.write_bytes(0xEC9A7C, [0x00, 0x00, 0x00, 0x00]) #Sticks - rom.write_byte(0xEC9CD5, 0x00) #Nuts - - # Fix deku scrub who sells stick upgrade - rom.write_bytes(0xDF8060, [0x00, 0x00, 0x00, 0x00]) - - # Fix deku scrub who sells nut upgrade - rom.write_bytes(0xDF80D4, [0x00, 0x00, 0x00, 0x00]) - - # Fix rolling goron as child reward to be static - rom.write_bytes(0xED2960, [0x00, 0x00, 0x00, 0x00]) - - # Fix proximity text boxes (Navi) (Part 1) - rom.write_bytes(0xDF8B84, [0x00, 0x00, 0x00, 0x00]) - - # Fix final magic bean to cost 99 - rom.write_byte(0xE20A0F, 0x63) - rom.write_bytes(0x94FCDD, [0x08, 0x39, 0x39]) - - # Remove intro cutscene - rom.write_bytes(0xB06BBA, [0x00, 0x00]) - - # Remove locked door to Boss Key Chest in Fire Temple - rom.write_byte(0x22D82B7, 0x3F) - - # Change Bombchi Shop to be always open - rom.write_int32(0xC6CEDC, 0x240B0001) # li t3, 1 - - if world.bombchus_in_logic: - # Change Bowling Alley check to bombchus (Part 1) - rom.write_bytes(0x00E2D714, [0x81, 0xEF, 0xA6, 0x4C]) - rom.write_bytes(0x00E2D720, [0x24, 0x18, 0x00, 0x09, 0x11, 0xF8, 0x00, 0x06]) - - # Change Bowling Alley check to bombchus (Part 2) - rom.write_bytes(0x00E2D890, [0x81, 0x6B, 0xA6, 0x4C, 0x24, 0x0C, 0x00, 0x09, 0x51, 0x6C, 0x00, 0x0A]) - - # Cannot buy bombchu refills without Bombchus - rom.write_int32s(0xC01078, - [0x3C098012, # lui t1, 0x8012 - 0x812AA64C, # lb t2, -0x59B4(t1) ; bombchu item (SAVE_CONTEXT + 0x7C) - 0x340B0009, # li t3, 9 - 0x114B0002, # beq t2, t3, @@return ; if has bombchu, return 1 (can buy) - 0x34020000, # li v0, 0 - 0x34020002]) # li v0, 2 ; else, return 2 (can't buy) - else: - # Change Bowling Alley check to Bomb Bag (Part 1) - rom.write_bytes(0x00E2D716, [0xA6, 0x72]) - rom.write_byte(0x00E2D723, 0x18) - - # Change Bowling Alley check to Bomb Bag (Part 2) - rom.write_bytes(0x00E2D892, [0xA6, 0x72]) - rom.write_byte(0x00E2D897, 0x18) - - # Change Bazaar check to Bomb Bag (Child?) - rom.write_bytes(0x00C0082A, [0x00, 0x18]) - rom.write_bytes(0x00C0082C, [0x00, 0x0E, 0X74, 0X02]) - rom.write_byte(0x00C00833, 0xA0) - - # Change Bazaar check to Bomb Bag (Adult?) - rom.write_bytes(0x00DF7A8E, [0x00, 0x18]) - rom.write_bytes(0x00DF7A90, [0x00, 0x0E, 0X74, 0X02]) - rom.write_byte(0x00DF7A97, 0xA0) - - # Change Goron Shop check to Bomb Bag - rom.write_bytes(0x00C6ED86, [0x00, 0xA2]) - rom.write_bytes(0x00C6ED8A, [0x00, 0x18]) - - # Change graveyard graves to not allow grabbing on to the ledge - rom.write_byte(0x0202039D, 0x20) - rom.write_byte(0x0202043C, 0x24) - - # Fix Link the Goron to always work - rom.write_bytes(0xED2FAC, [0x80, 0x6E, 0x0F, 0x18]) - rom.write_bytes(0xED2FEC, [0x24, 0x0A, 0x00, 0x00]) - rom.write_bytes(0xAE74D8, [0x24, 0x0E, 0x00, 0x00]) - - # Fix King Zora Thawed to always work - rom.write_bytes(0xE55C4C, [0x00, 0x00, 0x00, 0x00]) - rom.write_bytes(0xE56290, [0x00, 0x00, 0x00, 0x00]) - rom.write_bytes(0xE56298, [0x00, 0x00, 0x00, 0x00]) - - # Fix Castle Courtyard to check for meeting Zelda, not Zelda fleeing, to block you - rom.write_bytes(0xCD5E76, [0x0E, 0xDC]) - rom.write_bytes(0xCD5E12, [0x0E, 0xDC]) - - # Cutscene for all medallions never triggers when leaving shadow or spirit temples(hopefully stops warp to colossus on shadow completion with boss reward shuffle) - rom.write_byte(0xACA409, 0xAD) - rom.write_byte(0xACA49D, 0xCE) - - # Speed Zelda's Letter scene - rom.write_bytes(0x290E08E, [0x05, 0xF0]) - rom.write_byte(0xEFCBA7, 0x08) - rom.write_byte(0xEFE7C7, 0x05) - #rom.write_byte(0xEFEAF7, 0x08) - #rom.write_byte(0xEFE7C7, 0x05) - rom.write_bytes(0xEFE938, [0x00, 0x00, 0x00, 0x00]) - rom.write_bytes(0xEFE948, [0x00, 0x00, 0x00, 0x00]) - rom.write_bytes(0xEFE950, [0x00, 0x00, 0x00, 0x00]) - - # Speed Zelda escaping from Hyrule Castle - Block_code = [0x00, 0x00, 0x00, 0x01, 0x00, 0x21, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02] - rom.write_bytes(0x1FC0CF8, Block_code) - - # Speed learning Zelda's Lullaby - rom.write_int32s(0x02E8E90C, [0x000003E8, 0x00000001]) # Terminator Execution - if world.shuffle_song_items: - rom.write_int16s(None, [0x0073, 0x001, 0x0002, 0x0002]) # ID, start, end, end - else: - rom.write_int16s(None, [0x0073, 0x003B, 0x003C, 0x003C]) # ID, start, end, end - - - rom.write_int32s(0x02E8E91C, [0x00000013, 0x0000000C]) # Textbox, Count - if world.shuffle_song_items: - rom.write_int16s(None, [0xFFFF, 0x0000, 0x0010, 0xFFFF, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 - else: - rom.write_int16s(None, [0x0017, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 - rom.write_int16s(None, [0x00D4, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 - - # Speed learning Sun's Song - if world.shuffle_song_items: - rom.write_int32(0x0332A4A4, 0xFFFFFFFF) # Header: frame_count - else: - rom.write_int32(0x0332A4A4, 0x0000003C) # Header: frame_count - - rom.write_int32s(0x0332A868, [0x00000013, 0x00000008]) # Textbox, Count - rom.write_int16s(None, [0x0018, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 - rom.write_int16s(None, [0x00D3, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 - - # Speed learning Saria's Song - if world.shuffle_song_items: - rom.write_int32(0x020B1734, 0xFFFFFFFF) # Header: frame_count - else: - rom.write_int32(0x020B1734, 0x0000003C) # Header: frame_count - - rom.write_int32s(0x20B1DA8, [0x00000013, 0x0000000C]) # Textbox, Count - rom.write_int16s(None, [0x0015, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 - rom.write_int16s(None, [0x00D1, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 - - rom.write_int32s(0x020B19C0, [0x0000000A, 0x00000006]) # Link, Count - rom.write_int16s(0x020B19C8, [0x0011, 0x0000, 0x0010, 0x0000]) #action, start, end, ???? - rom.write_int16s(0x020B19F8, [0x003E, 0x0011, 0x0020, 0x0000]) #action, start, end, ???? - rom.write_int32s(None, [0x80000000, # ??? - 0x00000000, 0x000001D4, 0xFFFFF731, # start_XYZ - 0x00000000, 0x000001D4, 0xFFFFF712]) # end_XYZ - - # Speed learning Epona's Song - rom.write_int32s(0x029BEF60, [0x000003E8, 0x00000001]) # Terminator Execution - if world.shuffle_song_items: - rom.write_int16s(None, [0x005E, 0x0001, 0x0002, 0x0002]) # ID, start, end, end - else: - rom.write_int16s(None, [0x005E, 0x000A, 0x000B, 0x000B]) # ID, start, end, end - - rom.write_int32s(0x029BECB0, [0x00000013, 0x00000002]) # Textbox, Count - if world.shuffle_song_items: - rom.write_int16s(None, [0xFFFF, 0x0000, 0x0009, 0xFFFF, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 - else: - rom.write_int16s(None, [0x00D2, 0x0000, 0x0009, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 - rom.write_int16s(None, [0xFFFF, 0x000A, 0x003C, 0xFFFF, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 - - # Speed learning Song of Time - rom.write_int32s(0x0252FB98, [0x000003E8, 0x00000001]) # Terminator Execution - if world.shuffle_song_items: - rom.write_int16s(None, [0x0035, 0x0001, 0x0002, 0x0002]) # ID, start, end, end - else: - rom.write_int16s(None, [0x0035, 0x003B, 0x003C, 0x003C]) # ID, start, end, end - - rom.write_int32s(0x0252FC80, [0x00000013, 0x0000000C]) # Textbox, Count - if world.shuffle_song_items: - rom.write_int16s(None, [0xFFFF, 0x0000, 0x0010, 0xFFFF, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 - else: - rom.write_int16s(None, [0x0019, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 - rom.write_int16s(None, [0x00D5, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 - - rom.write_int32(0x01FC3B84, 0xFFFFFFFF) # Other Header?: frame_count - - # Speed learning Song of Storms - if world.shuffle_song_items: - rom.write_int32(0x03041084, 0xFFFFFFFF) # Header: frame_count - else: - rom.write_int32(0x03041084, 0x0000000A) # Header: frame_count - - rom.write_int32s(0x03041088, [0x00000013, 0x00000002]) # Textbox, Count - rom.write_int16s(None, [0x00D6, 0x0000, 0x0009, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 - rom.write_int16s(None, [0xFFFF, 0x00BE, 0x00C8, 0xFFFF, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 - - # Speed learning Minuet of Forest - if world.shuffle_song_items: - rom.write_int32(0x020AFF84, 0xFFFFFFFF) # Header: frame_count - else: - rom.write_int32(0x020AFF84, 0x0000003C) # Header: frame_count - - rom.write_int32s(0x020B0800, [0x00000013, 0x0000000A]) # Textbox, Count - rom.write_int16s(None, [0x000F, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 - rom.write_int16s(None, [0x0073, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 - - rom.write_int32s(0x020AFF88, [0x0000000A, 0x00000005]) # Link, Count - rom.write_int16s(0x020AFF90, [0x0011, 0x0000, 0x0010, 0x0000]) #action, start, end, ???? - rom.write_int16s(0x020AFFC1, [0x003E, 0x0011, 0x0020, 0x0000]) #action, start, end, ???? - - rom.write_int32s(0x020B0488, [0x00000056, 0x00000001]) # Music Change, Count - rom.write_int16s(None, [0x003F, 0x0021, 0x0022, 0x0000]) #action, start, end, ???? - - rom.write_int32s(0x020B04C0, [0x0000007C, 0x00000001]) # Music Fade Out, Count - rom.write_int16s(None, [0x0004, 0x0000, 0x0000, 0x0000]) #action, start, end, ???? - - # Speed learning Bolero of Fire - if world.shuffle_song_items: - rom.write_int32(0x0224B5D4, 0xFFFFFFFF) # Header: frame_count - else: - rom.write_int32(0x0224B5D4, 0x0000003C) # Header: frame_count - - rom.write_int32s(0x0224D7E8, [0x00000013, 0x0000000A]) # Textbox, Count - rom.write_int16s(None, [0x0010, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 - rom.write_int16s(None, [0x0074, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 - - rom.write_int32s(0x0224B5D8, [0x0000000A, 0x0000000B]) # Link, Count - rom.write_int16s(0x0224B5E0, [0x0011, 0x0000, 0x0010, 0x0000]) #action, start, end, ???? - rom.write_int16s(0x0224B610, [0x003E, 0x0011, 0x0020, 0x0000]) #action, start, end, ???? - - rom.write_int32s(0x0224B7F0, [0x0000002F, 0x0000000E]) # Sheik, Count - rom.write_int16s(0x0224B7F8, [0x0000]) #action - rom.write_int16s(0x0224B828, [0x0000]) #action - rom.write_int16s(0x0224B858, [0x0000]) #action - rom.write_int16s(0x0224B888, [0x0000]) #action - - # Speed learning Serenade of Water - if world.shuffle_song_items: - rom.write_int32(0x02BEB254, 0xFFFFFFFF) # Header: frame_count - else: - rom.write_int32(0x02BEB254, 0x0000003C) # Header: frame_count - - rom.write_int32s(0x02BEC880, [0x00000013, 0x00000010]) # Textbox, Count - rom.write_int16s(None, [0x0011, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 - rom.write_int16s(None, [0x0075, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 - - rom.write_int32s(0x02BEB258, [0x0000000A, 0x0000000F]) # Link, Count - rom.write_int16s(0x02BEB260, [0x0011, 0x0000, 0x0010, 0x0000]) #action, start, end, ???? - rom.write_int16s(0x02BEB290, [0x003E, 0x0011, 0x0020, 0x0000]) #action, start, end, ???? - - rom.write_int32s(0x02BEB530, [0x0000002F, 0x00000006]) # Sheik, Count - rom.write_int16s(0x02BEB538, [0x0000, 0x0000, 0x018A, 0x0000]) #action, start, end, ???? - rom.write_int32s(None, [0x1BBB0000, # ??? - 0xFFFFFB10, 0x8000011A, 0x00000330, # start_XYZ - 0xFFFFFB10, 0x8000011A, 0x00000330]) # end_XYZ - - rom.write_int32s(0x02BEC848, [0x00000056, 0x00000001]) # Music Change, Count - rom.write_int16s(None, [0x0059, 0x0021, 0x0022, 0x0000]) #action, start, end, ???? - - # Speed learning Nocturne of Shadow - rom.write_int32s(0x01FFE458, [0x000003E8, 0x00000001]) # Other Scene? Terminator Execution - rom.write_int16s(None, [0x002F, 0x0001, 0x0002, 0x0002]) # ID, start, end, end - - rom.write_int32(0x01FFFDF4, 0x0000003C) # Header: frame_count - - rom.write_int32s(0x02000FD8, [0x00000013, 0x0000000E]) # Textbox, Count - if world.shuffle_song_items: - rom.write_int16s(None, [0xFFFF, 0x0000, 0x0010, 0xFFFF, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 - else: - rom.write_int16s(None, [0x0013, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 - rom.write_int16s(None, [0x0077, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 - - rom.write_int32s(0x02000128, [0x000003E8, 0x00000001]) # Terminator Execution - if world.shuffle_song_items: - rom.write_int16s(None, [0x0032, 0x0001, 0x0002, 0x0002]) # ID, start, end, end - else: - rom.write_int16s(None, [0x0032, 0x003A, 0x003B, 0x003B]) # ID, start, end, end - - # Speed learning Requiem of Spirit - rom.write_int32(0x0218AF14, 0x0000003C) # Header: frame_count - - rom.write_int32s(0x0218C574, [0x00000013, 0x00000008]) # Textbox, Count - if world.shuffle_song_items: - rom.write_int16s(None, [0xFFFF, 0x0000, 0x0010, 0xFFFF, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 - else: - rom.write_int16s(None, [0x0012, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 - rom.write_int16s(None, [0x0076, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 - - rom.write_int32s(0x0218B478, [0x000003E8, 0x00000001]) # Terminator Execution - if world.shuffle_song_items: - rom.write_int16s(None, [0x0030, 0x0001, 0x0002, 0x0002]) # ID, start, end, end - else: - rom.write_int16s(None, [0x0030, 0x003A, 0x003B, 0x003B]) # ID, start, end, end - - rom.write_int32s(0x0218AF18, [0x0000000A, 0x0000000B]) # Link, Count - rom.write_int16s(0x0218AF20, [0x0011, 0x0000, 0x0010, 0x0000]) #action, start, end, ???? - rom.write_int32s(None, [0x40000000, # ??? - 0xFFFFFAF9, 0x00000008, 0x00000001, # start_XYZ - 0xFFFFFAF9, 0x00000008, 0x00000001, # end_XYZ - 0x0F671408, 0x00000000, 0x00000001]) # normal_XYZ - rom.write_int16s(0x0218AF50, [0x003E, 0x0011, 0x0020, 0x0000]) #action, start, end, ???? - - # Speed learning Prelude of Light - if world.shuffle_song_items: - rom.write_int32(0x0252FD24, 0xFFFFFFFF) # Header: frame_count - else: - rom.write_int32(0x0252FD24, 0x0000003C) # Header: frame_count - - rom.write_int32s(0x02531320, [0x00000013, 0x0000000E]) # Textbox, Count - rom.write_int16s(None, [0x0014, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 - rom.write_int16s(None, [0x0078, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 - - rom.write_int32s(0x0252FF10, [0x0000002F, 0x00000009]) # Sheik, Count - rom.write_int16s(0x0252FF18, [0x0006, 0x0000, 0x0000, 0x0000]) #action, start, end, ???? - - rom.write_int32s(0x025313D0, [0x00000056, 0x00000001]) # Music Change, Count - rom.write_int16s(None, [0x003B, 0x0021, 0x0022, 0x0000]) #action, start, end, ???? - - # Speed scene after Deku Tree - rom.write_bytes(0x2077E20, [0x00, 0x07, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) - rom.write_bytes(0x2078A10, [0x00, 0x0E, 0x00, 0x1F, 0x00, 0x20, 0x00, 0x20]) - Block_code = [0x00, 0x80, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0x1E, 0x00, 0x28, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF] - rom.write_bytes(0x2079570, Block_code) - - # Speed scene after Dodongo's Cavern - rom.write_bytes(0x2221E88, [0x00, 0x0C, 0x00, 0x3B, 0x00, 0x3C, 0x00, 0x3C]) - rom.write_bytes(0x2223308, [0x00, 0x81, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00]) - - # Speed scene after Jabu Jabu's Belly - rom.write_bytes(0xCA3530, [0x00, 0x00, 0x00, 0x00]) - rom.write_bytes(0x2113340, [0x00, 0x0D, 0x00, 0x3B, 0x00, 0x3C, 0x00, 0x3C]) - rom.write_bytes(0x2113C18, [0x00, 0x82, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00]) - rom.write_bytes(0x21131D0, [0x00, 0x01, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x3C]) - - # Speed scene after Forest Temple - rom.write_bytes(0xD4ED68, [0x00, 0x45, 0x00, 0x3B, 0x00, 0x3C, 0x00, 0x3C]) - rom.write_bytes(0xD4ED78, [0x00, 0x3E, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00]) - rom.write_bytes(0x207B9D4, [0xFF, 0xFF, 0xFF, 0xFF]) - - # Speed scene after Fire Temple - rom.write_bytes(0x2001848, [0x00, 0x1E, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) - rom.write_bytes(0xD100B4, [0x00, 0x62, 0x00, 0x3B, 0x00, 0x3C, 0x00, 0x3C]) - rom.write_bytes(0xD10134, [0x00, 0x3C, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00]) - - # Speed scene after Water Temple - rom.write_bytes(0xD5A458, [0x00, 0x15, 0x00, 0x3B, 0x00, 0x3C, 0x00, 0x3C]) - rom.write_bytes(0xD5A3A8, [0x00, 0x3D, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00]) - rom.write_bytes(0x20D0D20, [0x00, 0x29, 0x00, 0xC7, 0x00, 0xC8, 0x00, 0xC8]) - - # Speed scene after Shadow Temple - rom.write_bytes(0xD13EC8, [0x00, 0x61, 0x00, 0x3B, 0x00, 0x3C, 0x00, 0x3C]) - rom.write_bytes(0xD13E18, [0x00, 0x41, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00]) - - # Speed scene after Spirit Temple - rom.write_bytes(0xD3A0A8, [0x00, 0x60, 0x00, 0x3B, 0x00, 0x3C, 0x00, 0x3C]) - rom.write_bytes(0xD39FF0, [0x00, 0x3F, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00]) - - # Speed Nabooru defeat scene - rom.write_bytes(0x2F5AF84, [0x00, 0x00, 0x00, 0x05]) - rom.write_bytes(0x2F5C7DA, [0x00, 0x01, 0x00, 0x02]) - rom.write_bytes(0x2F5C7A2, [0x00, 0x03, 0x00, 0x04]) - rom.write_byte(0x2F5B369, 0x09) - rom.write_byte(0x2F5B491, 0x04) - rom.write_byte(0x2F5B559, 0x04) - rom.write_byte(0x2F5B621, 0x04) - rom.write_byte(0x2F5B761, 0x07) - - # Speed scene with all medallions - rom.write_bytes(0x2512680, [0x00, 0x74, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) - - # Speed collapse of Ganon's Tower - rom.write_bytes(0x33FB328, [0x00, 0x76, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) - - # Speed Phantom Ganon defeat scene - rom.write_bytes(0xC944D8, [0x00, 0x00, 0x00, 0x00]) - rom.write_bytes(0xC94548, [0x00, 0x00, 0x00, 0x00]) - rom.write_bytes(0xC94730, [0x00, 0x00, 0x00, 0x00]) - rom.write_bytes(0xC945A8, [0x00, 0x00, 0x00, 0x00]) - rom.write_bytes(0xC94594, [0x00, 0x00, 0x00, 0x00]) - - # Speed Twinrova defeat scene - rom.write_bytes(0xD678CC, [0x24, 0x01, 0x03, 0xA2, 0xA6, 0x01, 0x01, 0x42]) - rom.write_bytes(0xD67BA4, [0x10, 0x00]) - - # Speed scenes during final battle - # Ganondorf battle end - rom.write_byte(0xD82047, 0x09) - # Zelda descends - rom.write_byte(0xD82AB3, 0x66) - rom.write_byte(0xD82FAF, 0x65) - rom.write_bytes(0xD82D2E, [0x04, 0x1F]) - rom.write_bytes(0xD83142, [0x00, 0x6B]) - rom.write_bytes(0xD82DD8, [0x00, 0x00, 0x00, 0x00]) - rom.write_bytes(0xD82ED4, [0x00, 0x00, 0x00, 0x00]) - rom.write_byte(0xD82FDF, 0x33) - # After tower collapse - rom.write_byte(0xE82E0F, 0x04) - # Ganon intro - rom.write_bytes(0xE83D28, [0x00, 0x00, 0x00, 0x00]) - rom.write_bytes(0xE83B5C, [0x00, 0x00, 0x00, 0x00]) - rom.write_bytes(0xE84C80, [0x10, 0x00]) - - # Speed completion of the trials in Ganon's Castle - rom.write_bytes(0x31A8090, [0x00, 0x6B, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) #Forest - rom.write_bytes(0x31A9E00, [0x00, 0x6E, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) #Fire - rom.write_bytes(0x31A8B18, [0x00, 0x6C, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) #Water - rom.write_bytes(0x31A9430, [0x00, 0x6D, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) #Shadow - rom.write_bytes(0x31AB200, [0x00, 0x70, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) #Spirit - rom.write_bytes(0x31AA830, [0x00, 0x6F, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) #Light - - # Speed obtaining Fairy Ocarina - rom.write_bytes(0x2150CD0, [0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x30]) - Block_code = [0xFF, 0xFF, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0x3C, 0x00, 0x81, 0xFF, 0xFF] - rom.write_bytes(0x2151240, Block_code) - rom.write_bytes(0x2150E20, [0xFF, 0xFF, 0xFA, 0x4C]) - - # Speed Zelda Light Arrow cutscene - rom.write_bytes(0x2531B40, [0x00, 0x28, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) - rom.write_bytes(0x2532FBC, [0x00, 0x75]) - rom.write_bytes(0x2532FEA, [0x00, 0x75, 0x00, 0x80]) - rom.write_byte(0x2533115, 0x05) - rom.write_bytes(0x2533141, [0x06, 0x00, 0x06, 0x00, 0x10]) - rom.write_bytes(0x2533171, [0x0F, 0x00, 0x11, 0x00, 0x40]) - rom.write_bytes(0x25331A1, [0x07, 0x00, 0x41, 0x00, 0x65]) - rom.write_bytes(0x2533642, [0x00, 0x50]) - rom.write_byte(0x253389D, 0x74) - rom.write_bytes(0x25338A4, [0x00, 0x72, 0x00, 0x75, 0x00, 0x79]) - rom.write_bytes(0x25338BC, [0xFF, 0xFF]) - rom.write_bytes(0x25338C2, [0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF]) - rom.write_bytes(0x25339C2, [0x00, 0x75, 0x00, 0x76]) - rom.write_bytes(0x2533830, [0x00, 0x31, 0x00, 0x81, 0x00, 0x82, 0x00, 0x82]) - - # Speed Bridge of Light cutscene - rom.write_bytes(0x292D644, [0x00, 0x00, 0x00, 0xA0]) - rom.write_bytes(0x292D680, [0x00, 0x02, 0x00, 0x0A, 0x00, 0x6C, 0x00, 0x00]) - rom.write_bytes(0x292D6E8, [0x00, 0x27]) - rom.write_bytes(0x292D718, [0x00, 0x32]) - rom.write_bytes(0x292D810, [0x00, 0x02, 0x00, 0x3C]) - rom.write_bytes(0x292D924, [0xFF, 0xFF, 0x00, 0x14, 0x00, 0x96, 0xFF, 0xFF]) - - # Remove remaining owls - rom.write_bytes(0x1FE30CE, [0x01, 0x4B]) - rom.write_bytes(0x1FE30DE, [0x01, 0x4B]) - rom.write_bytes(0x1FE30EE, [0x01, 0x4B]) - rom.write_bytes(0x205909E, [0x00, 0x3F]) - rom.write_byte(0x2059094, 0x80) - - # Darunia won't dance - rom.write_bytes(0x22769E4, [0xFF, 0xFF, 0xFF, 0xFF]) - - # Zora moves quickly - rom.write_bytes(0xE56924, [0x00, 0x00, 0x00, 0x00]) - - # Speed Jabu Jabu swallowing Link - rom.write_bytes(0xCA0784, [0x00, 0x18, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) - - # Ruto no longer points to Zora Sapphire - rom.write_bytes(0xD03BAC, [0xFF, 0xFF, 0xFF, 0xFF]) - - # Ruto never disappears from Jabu Jabu's Belly - rom.write_byte(0xD01EA3, 0x00) - - # Speed up Epona race start - rom.write_bytes(0x29BE984, [0x00, 0x00, 0x00, 0x02]) - rom.write_bytes(0x29BE9CA, [0x00, 0x01, 0x00, 0x02]) - - # Speed start of Horseback Archery - #rom.write_bytes(0x21B2064, [0x00, 0x00, 0x00, 0x02]) - #rom.write_bytes(0x21B20AA, [0x00, 0x01, 0x00, 0x02]) - - # Speed up Epona escape - rom.write_bytes(0x1FC8B36, [0x00, 0x2A]) - - # Speed up draining the well - rom.write_bytes(0xE0A010, [0x00, 0x2A, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) - rom.write_bytes(0x2001110, [0x00, 0x2B, 0x00, 0xB7, 0x00, 0xB8, 0x00, 0xB8]) - - # Speed up opening the royal tomb for both child and adult - rom.write_bytes(0x2025026, [0x00, 0x01]) - rom.write_bytes(0x2023C86, [0x00, 0x01]) - rom.write_byte(0x2025159, 0x02) - rom.write_byte(0x2023E19, 0x02) - - #Speed opening of Door of Time - rom.write_bytes(0xE0A176, [0x00, 0x02]) - rom.write_bytes(0xE0A35A, [0x00, 0x01, 0x00, 0x02]) - - # Poacher's Saw no longer messes up Deku Theater - rom.write_bytes(0xAE72CC, [0x00, 0x00, 0x00, 0x00]) - - # Learning Serenade tied to opening chest in room - Block_code = [0x3C, 0x0F, 0x80, 0x1D, 0x81, 0xE8, 0xA1, 0xDB, 0x24, 0x19, 0x00, 0x04, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8C, 0xA2, 0x1C, 0x44, - 0x00, 0x00, 0x00, 0x00] - rom.write_bytes(0xC7BCF0, Block_code) - - # Dampe Chest spawn condition looks at chest flag instead of having obtained hookshot - Block_code = [0x93, 0x18, 0xAE, 0x7E, 0x27, 0xA5, 0x00, 0x24, 0x33, 0x19, 0x00, 0x01, - 0x00, 0x00, 0x00, 0x00] - rom.write_bytes(0xDFEC40, Block_code) - - # Darunia sets an event flag and checks for it - Block_code = [0x24, 0x19, 0x00, 0x40, 0x8F, 0x09, 0xB4, 0xA8, 0x01, 0x39, 0x40, 0x24, - 0x01, 0x39, 0xC8, 0x25, 0xAF, 0x19, 0xB4, 0xA8, 0x24, 0x09, 0x00, 0x06] - rom.write_bytes(0xCF1AB8, Block_code) - - # Change Prelude CS to check for medallion - rom.write_bytes(0x00C805E6, [0x00, 0xA6]) - rom.write_bytes(0x00C805F2, [0x00, 0x01]) - - # Change Nocturne CS to check for medallions - rom.write_bytes(0x00ACCD8E, [0x00, 0xA6]) - rom.write_bytes(0x00ACCD92, [0x00, 0x01]) - rom.write_bytes(0x00ACCD9A, [0x00, 0x02]) - rom.write_bytes(0x00ACCDA2, [0x00, 0x04]) - - # Change King Zora to move even if Zora Sapphire is in inventory - rom.write_bytes(0x00E55BB0, [0x85, 0xCE, 0x8C, 0x3C]) - rom.write_bytes(0x00E55BB4, [0x84, 0x4F, 0x0E, 0xDA]) - - # Remove extra Forest Temple medallions - rom.write_bytes(0x00D4D37C, [0x00, 0x00, 0x00, 0x00]) - - # Remove extra Fire Temple medallions - rom.write_bytes(0x00AC9754, [0x00, 0x00, 0x00, 0x00]) - rom.write_bytes(0x00D0DB8C, [0x00, 0x00, 0x00, 0x00]) - - # Remove extra Water Temple medallions - rom.write_bytes(0x00D57F94, [0x00, 0x00, 0x00, 0x00]) - - # Remove extra Spirit Temple medallions - rom.write_bytes(0x00D370C4, [0x00, 0x00, 0x00, 0x00]) - rom.write_bytes(0x00D379C4, [0x00, 0x00, 0x00, 0x00]) - - # Remove extra Shadow Temple medallions - rom.write_bytes(0x00D116E0, [0x00, 0x00, 0x00, 0x00]) - - # Change Mido, Saria, and Kokiri to check for Deku Tree complete flag - # bitwise pointer for 0x80 - kokiriAddresses = [0xE52836, 0xE53A56, 0xE51D4E, 0xE51F3E, 0xE51D96, 0xE51E1E, 0xE51E7E, 0xE51EDE, 0xE51FC6, 0xE51F96, 0xE293B6, 0xE29B8E, 0xE62EDA, 0xE630D6, 0xE62642, 0xE633AA, 0xE6369E] - for kokiri in kokiriAddresses: - rom.write_bytes(kokiri, [0x8C, 0x0C]) - # Kokiri - rom.write_bytes(0xE52838, [0x94, 0x48, 0x0E, 0xD4]) - rom.write_bytes(0xE53A58, [0x94, 0x49, 0x0E, 0xD4]) - rom.write_bytes(0xE51D50, [0x94, 0x58, 0x0E, 0xD4]) - rom.write_bytes(0xE51F40, [0x94, 0x4B, 0x0E, 0xD4]) - rom.write_bytes(0xE51D98, [0x94, 0x4B, 0x0E, 0xD4]) - rom.write_bytes(0xE51E20, [0x94, 0x4A, 0x0E, 0xD4]) - rom.write_bytes(0xE51E80, [0x94, 0x59, 0x0E, 0xD4]) - rom.write_bytes(0xE51EE0, [0x94, 0x4E, 0x0E, 0xD4]) - rom.write_bytes(0xE51FC8, [0x94, 0x49, 0x0E, 0xD4]) - rom.write_bytes(0xE51F98, [0x94, 0x58, 0x0E, 0xD4]) - # Saria - rom.write_bytes(0xE293B8, [0x94, 0x78, 0x0E, 0xD4]) - rom.write_bytes(0xE29B90, [0x94, 0x68, 0x0E, 0xD4]) - # Mido - rom.write_bytes(0xE62EDC, [0x94, 0x6F, 0x0E, 0xD4]) - rom.write_bytes(0xE630D8, [0x94, 0x4F, 0x0E, 0xD4]) - rom.write_bytes(0xE62644, [0x94, 0x6F, 0x0E, 0xD4]) - rom.write_bytes(0xE633AC, [0x94, 0x68, 0x0E, 0xD4]) - rom.write_bytes(0xE636A0, [0x94, 0x48, 0x0E, 0xD4]) - - # Change adult Kokiri Forest to check for Forest Temple complete flag - rom.write_bytes(0xE5369E, [0xB4, 0xAC]) - rom.write_bytes(0xD5A83C, [0x80, 0x49, 0x0E, 0xDC]) - - # Change adult Goron City to check for Fire Temple complete flag - rom.write_bytes(0xED59DC, [0x80, 0xC9, 0x0E, 0xDC]) - - # Change Pokey to check DT complete flag - rom.write_bytes(0xE5400A, [0x8C, 0x4C]) - rom.write_bytes(0xE5400E, [0xB4, 0xA4]) - if world.open_forest: - rom.write_bytes(0xE5401C, [0x14, 0x0B]) - - # Fix Shadow Temple to check for different rewards for scene - rom.write_bytes(0xCA3F32, [0x00, 0x00, 0x25, 0x4A, 0x00, 0x10]) - - # Fix Spirit Temple to check for different rewards for scene - rom.write_bytes(0xCA3EA2, [0x00, 0x00, 0x25, 0x4A, 0x00, 0x08]) - - # Fix Biggoron to check a different flag. - rom.write_byte(0xED329B, 0x72) - rom.write_byte(0xED43E7, 0x72) - rom.write_bytes(0xED3370, [0x3C, 0x0D, 0x80, 0x12]) - rom.write_bytes(0xED3378, [0x91, 0xB8, 0xA6, 0x42, 0xA1, 0xA8, 0xA6, 0x42]) - rom.write_bytes(0xED6574, [0x00, 0x00, 0x00, 0x00]) - - # Remove the check on the number of days that passed for claim check. - rom.write_bytes(0xED4470, [0x00, 0x00, 0x00, 0x00]) - rom.write_bytes(0xED4498, [0x00, 0x00, 0x00, 0x00]) - - # Fixed reward order for Bombchu Bowling - rom.write_bytes(0xE2E698, [0x80, 0xAA, 0xE2, 0x64]) - rom.write_bytes(0xE2E6A0, [0x80, 0xAA, 0xE2, 0x4C]) - rom.write_bytes(0xE2D440, [0x24, 0x19, 0x00, 0x00]) - - # Make fishing less obnoxious - Block_code = [0x3C, 0x0A, 0x80, 0x12, 0x8D, 0x4A, 0xA5, 0xD4, 0x14, 0x0A, 0x00, 0x06, - 0x31, 0x78, 0x00, 0x01, 0x14, 0x18, 0x00, 0x02, 0x3c, 0x18, 0x42, 0x30, - 0x3C, 0x18, 0x42, 0x50, 0x03, 0xe0, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, - 0x14, 0x18, 0x00, 0x02, 0x3C, 0x18, 0x42, 0x10, 0x3C, 0x18, 0x42, 0x38, - 0x03, 0xE0, 0x00, 0x08] - rom.write_bytes(0x3480C00, Block_code) - rom.write_bytes(0xDBF434, [0x44, 0x98, 0x90, 0x00, 0xE6, 0x52, 0x01, 0x9C]) - rom.write_bytes(0xDBF484, [0x00, 0x00, 0x00, 0x00]) - rom.write_bytes(0xDBF4A8, [0x00, 0x00, 0x00, 0x00]) - rom.write_bytes(0xDCBEAA, [0x42, 0x48]) #set adult fish size requirement - rom.write_bytes(0xDCBF26, [0x42, 0x48]) #set adult fish size requirement - rom.write_bytes(0xDCBF32, [0x42, 0x30]) #set child fish size requirement - rom.write_bytes(0xDCBF9E, [0x42, 0x30]) #set child fish size requirement - - # Dampe always digs something up and first dig is always the Piece of Heart - rom.write_bytes(0xCC3FA8, [0xA2, 0x01, 0x01, 0xF8]) - rom.write_bytes(0xCC4024, [0x00, 0x00, 0x00, 0x00]) - - # Allow owl to always carry the kid down Death Mountain - rom.write_bytes(0xE304F0, [0x24, 0x0E, 0x00, 0x01]) - - # Forbid Sun's Song from a bunch of cutscenes - Suns_scenes = [0x2016FC9, 0x2017219, 0x20173D9, 0x20174C9, 0x2017679, 0x20C1539, 0x20C15D9, 0x21A0719, 0x21A07F9, 0x2E90129, 0x2E901B9, 0x2E90249, 0x225E829, 0x225E939, 0x306D009] - for address in Suns_scenes: - rom.write_byte(address,0x01) - - # Remove forcible text triggers - Wonder_text = [0x27C00C6, 0x27C00D6, 0x27C00E6, 0x27C00F6, 0x27C0106, 0x27C0116, 0x27C0126, 0x27C0136] - for address in Wonder_text: - rom.write_byte(address, 0x02) - rom.write_byte(0x27CE08A, 0x09) - rom.write_byte(0x27CE09A, 0x0F) - Wonder_text = [0x288707A, 0x288708A, 0x288709A, 0x289707A, 0x28C713E, 0x28D91C6] - for address in Wonder_text: - rom.write_byte(address, 0x0C) - Wonder_text = [0x28A60FE, 0x28AE08E, 0x28B917E, 0x28BF172, 0x28BF182, 0x28BF192] - for address in Wonder_text: - rom.write_byte(address, 0x0D) - rom.write_byte(0x28A114E, 0x0E) - rom.write_byte(0x28A610E, 0x0E) - Wonder_text = [0x9367F6, 0x93673D, 0x93679D] - for address in Wonder_text: - rom.write_byte(address, 0x08) - Wonder_text = [0x289707B, 0x28AE08F, 0x28C713F] - for address in Wonder_text: - rom.write_byte(address, 0xAF) - rom.write_byte(0x28A114F, 0x6F) - rom.write_byte(0x28B917F, 0x6F) - rom.write_byte(0x28A60FF, 0xEF) - rom.write_byte(0x28D91C7, 0xEF) - Wonder_text = [0x28A610F, 0x28BF173, 0x28BF183, 0x28BF193] - for address in Wonder_text: - rom.write_byte(address, 0x2F) - Wonder_text = [0x27CE08B, 0x27C00C7, 0x27C00D7, 0x27C0117, 0x27C0127] - for address in Wonder_text: - rom.write_byte(address, 0x3D) - rom.write_byte(0x27C00E7, 0x7D) - rom.write_byte(0x27C00F7, 0x7D) - rom.write_byte(0x27C0107, 0xBD) - rom.write_byte(0x27C0137, 0xBD) - Wonder_text = [0x27C00BC, 0x27C00CC, 0x27C00DC, 0x27C00EC, 0x27C00FC, 0x27C010C, 0x27C011C, 0x27C012C, 0x27CE080, 0x27CE090, 0x2887070, 0x2887080, 0x2887090, 0x2897070, 0x28C7134, 0x28D91BC, 0x28A60F4, 0x28AE084, 0x28B9174, 0x28BF168, 0x28BF178, 0x28BF188, 0x28A1144, 0x28A6104] - for address in Wonder_text: - rom.write_byte(address, 0xFE) - - # Speed dig text for Dampe - rom.write_bytes(0x9532F8, [0x08, 0x08, 0x08, 0x59]) - - # Make item descriptions into a single box - Short_item_descriptions = [0x92EC84, 0x92F9E3, 0x92F2B4, 0x92F37A, 0x92F513, 0x92F5C6, 0x92E93B, 0x92EA12] - for address in Short_item_descriptions: - rom.write_byte(address,0x02) - - # Fix text for Pocket Cucco. - rom.write_byte(0xBEEF45, 0x0B) - rom.write_byte(0x92D41A, 0x2E) - Block_code = [0x59, 0x6f, 0x75, 0x20, 0x67, 0x6f, 0x74, 0x20, 0x61, 0x20, 0x05, 0x41, - 0x50, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x20, 0x43, 0x75, 0x63, 0x63, 0x6f, - 0x2c, 0x20, 0x05, 0x40, 0x6f, 0x6e, 0x65, 0x01, 0x6f, 0x66, 0x20, 0x41, - 0x6e, 0x6a, 0x75, 0x27, 0x73, 0x20, 0x70, 0x72, 0x69, 0x7a, 0x65, 0x64, - 0x20, 0x68, 0x65, 0x6e, 0x73, 0x21, 0x20, 0x49, 0x74, 0x20, 0x66, 0x69, - 0x74, 0x73, 0x20, 0x01, 0x69, 0x6e, 0x20, 0x79, 0x6f, 0x75, 0x72, 0x20, - 0x70, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x02] - rom.write_bytes(0x92D41C, Block_code) - - # DMA in extra code - Block_code = [0xAF, 0xBF, 0x00, 0x1C, 0xAF, 0xA4, 0x01, 0x40, 0x3C, 0x05, 0x03, 0x48, - 0x3C, 0x04, 0x80, 0x40, 0x0C, 0x00, 0x03, 0x7C, 0x24, 0x06, 0x50, 0x00, - 0x0C, 0x10, 0x02, 0x00] - rom.write_bytes(0xB17BB4, Block_code) - Block_code = [0x3C, 0x02, 0x80, 0x12, 0x24, 0x42, 0xD2, 0xA0, 0x24, 0x0E, 0x01, 0x40, - 0xAC, 0x2E, 0xE5, 0x00, 0x03, 0xE0, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00] - rom.write_bytes(0x3480800, Block_code) - rom.write_bytes(0xD270, [0x03, 0x48, 0x00, 0x00, 0x03, 0x48, 0x50, 0x00, 0x03, 0x48, 0x00, 0x00]) - - # Fix checksum (Thanks Nintendo) - Block_code = [0x93, 0x5E, 0x8E, 0x5B, 0xD0, 0x9C, 0x5A, 0x58] - rom.write_bytes(0x10, Block_code) - - # Set hooks for various code - rom.write_bytes(0xDBF428, [0x0C, 0x10, 0x03, 0x00]) #Set Fishing Hook - - - # will be populated with data to be written to initial save - # see initial_save.asm and config.asm for more details on specifics - # or just use the following functions to add an entry to the table - initial_save_table = [] - - # will set the bits of value to the offset in the save (or'ing them with what is already there) - def write_bits_to_save(offset, value, filter=None): - nonlocal initial_save_table - - if filter and not filter(value): - return - - initial_save_table += [(offset & 0xFF00) >> 8, offset & 0xFF, 0x00, value] - - - - # will overwrite the byte at offset with the given value - def write_byte_to_save(offset, value, filter=None): - nonlocal initial_save_table - - if filter and not filter(value): - return - - initial_save_table += [(offset & 0xFF00) >> 8, offset & 0xFF, 0x01, value] - - # will overwrite the byte at offset with the given value - def write_bytes_to_save(offset, bytes, filter=None): - for i, value in enumerate(bytes): - write_byte_to_save(offset + i, value, filter) - - # will overwrite the byte at offset with the given value - def write_save_table(rom): - nonlocal initial_save_table - - table_len = len(initial_save_table) - if table_len > 0x400: - raise Exception("The Initial Save Table has exceeded it's maximum capacity: 0x%03X/0x400" % table_len) - rom.write_bytes(0x3481800, initial_save_table) - - - # Initial Save Data - write_bits_to_save(0x003F, 0x02) # Some Biggoron's Sword flag? - - write_bits_to_save(0x00D4 + 0x00 * 0x1C + 0x04 + 0x0, 0x80) # Deku tree switch flag (navi text?) - write_bits_to_save(0x00D4 + 0x00 * 0x1C + 0x04 + 0x1, 0x02) # Deku tree switch flag (navi text?) - write_bits_to_save(0x00D4 + 0x00 * 0x1C + 0x04 + 0x2, 0x80) # Deku tree switch flag (navi text?) - write_bits_to_save(0x00D4 + 0x00 * 0x1C + 0x04 + 0x2, 0x04) # Deku tree switch flag (navi text?) - write_bits_to_save(0x00D4 + 0x01 * 0x1C + 0x04 + 0x2, 0x40) # Dodongo's Cavern switch flag (navi text?) - write_bits_to_save(0x00D4 + 0x01 * 0x1C + 0x04 + 0x2, 0x08) # Dodongo's Cavern switch flag (navi text?) - write_bits_to_save(0x00D4 + 0x01 * 0x1C + 0x04 + 0x2, 0x01) # Dodongo's Cavern switch flag (navi text?) - write_bits_to_save(0x00D4 + 0x02 * 0x1C + 0x04 + 0x0, 0x08) # Inside Jabu-Jabu's Belly switch flag (ruto?) - write_bits_to_save(0x00D4 + 0x02 * 0x1C + 0x04 + 0x0, 0x04) # Inside Jabu-Jabu's Belly switch flag (ruto?) - write_bits_to_save(0x00D4 + 0x02 * 0x1C + 0x04 + 0x0, 0x02) # Inside Jabu-Jabu's Belly switch flag (ruto?) - write_bits_to_save(0x00D4 + 0x02 * 0x1C + 0x04 + 0x0, 0x01) # Inside Jabu-Jabu's Belly switch flag (ruto?) - write_bits_to_save(0x00D4 + 0x02 * 0x1C + 0x04 + 0x1, 0x01) # Inside Jabu-Jabu's Belly switch flag (ruto?) - write_bits_to_save(0x00D4 + 0x03 * 0x1C + 0x04 + 0x0, 0x08) # Forest Temple switch flag (poes?) - write_bits_to_save(0x00D4 + 0x03 * 0x1C + 0x04 + 0x0, 0x01) # Forest Temple switch flag (poes?) - write_bits_to_save(0x00D4 + 0x03 * 0x1C + 0x04 + 0x2, 0x02) # Forest Temple switch flag (poes?) - write_bits_to_save(0x00D4 + 0x03 * 0x1C + 0x04 + 0x2, 0x01) # Forest Temple switch flag (poes?) - write_bits_to_save(0x00D4 + 0x04 * 0x1C + 0x04 + 0x1, 0x08) # Fire Temple switch flag (First locked door?) - write_bits_to_save(0x00D4 + 0x05 * 0x1C + 0x04 + 0x1, 0x01) # Water temple switch flag (navi text?) - write_bits_to_save(0x00D4 + 0x0B * 0x1C + 0x04 + 0x2, 0x01) # Gerudo Training Ground switch flag (command text?) - write_bits_to_save(0x00D4 + 0x51 * 0x1C + 0x04 + 0x2, 0x08) # Hyrule Field switch flag (???) - write_bits_to_save(0x00D4 + 0x55 * 0x1C + 0x04 + 0x0, 0x80) # Kokiri Forest switch flag (???) - write_bits_to_save(0x00D4 + 0x56 * 0x1C + 0x04 + 0x2, 0x40) # Sacred Forest Meadow switch flag (???) - write_bits_to_save(0x00D4 + 0x5B * 0x1C + 0x04 + 0x2, 0x01) # Lost Woods switch flag (???) - write_bits_to_save(0x00D4 + 0x5B * 0x1C + 0x04 + 0x3, 0x80) # Lost Woods switch flag (???) - write_bits_to_save(0x00D4 + 0x5C * 0x1C + 0x04 + 0x0, 0x80) # Desert Colossus switch flag (???) - write_bits_to_save(0x00D4 + 0x5F * 0x1C + 0x04 + 0x3, 0x20) # Hyrule Castle switch flag (???) - - write_bits_to_save(0x0ED4, 0x10) # "Met Deku Tree" - write_bits_to_save(0x0ED5, 0x20) # "Deku Tree Opened Mouth" - write_bits_to_save(0x0ED6, 0x08) # "Rented Horse From Ingo" - write_bits_to_save(0x0EDA, 0x08) # "Began Nabooru Battle" - write_bits_to_save(0x0EDC, 0x80) # "Entered the Master Sword Chamber" - write_bits_to_save(0x0EDD, 0x20) # "Pulled Master Sword from Pedestal" - write_bits_to_save(0x0EE0, 0x80) # "Spoke to Kaepora Gaebora by Lost Woods" - write_bits_to_save(0x0EE7, 0x20) # "Nabooru Captured by Twinrova" - write_bits_to_save(0x0EE7, 0x10) # "Spoke to Nabooru in Spirit Temple" - write_bits_to_save(0x0EED, 0x20) # "Sheik, Spawned at Master Sword Pedestal as Adult" - write_bits_to_save(0x0EED, 0x01) # "Nabooru Ordered to Fight by Twinrova" - write_bits_to_save(0x0EF9, 0x01) # "Greeted by Saria" - write_bits_to_save(0x0F0A, 0x04) # "Spoke to Ingo Once as Adult" - write_bits_to_save(0x0F1A, 0x04) # "Met Darunia in Fire Temple" - - write_bits_to_save(0x0ED7, 0x01) # "Spoke to Child Malon at Castle or Market" - write_bits_to_save(0x0ED7, 0x20) # "Spoke to Child Malon at Ranch" - write_bits_to_save(0x0ED7, 0x40) # "Invited to Sing With Child Malon" - write_bits_to_save(0x0F09, 0x10) # "Met Child Malon at Castle or Market" - write_bits_to_save(0x0F09, 0x20) # "Child Malon Said Epona Was Scared of You" - - write_bits_to_save(0x0F21, 0x04) # "Ruto in JJ (M3) Talk First Time" - write_bits_to_save(0x0F21, 0x02) # "Ruto in JJ (M2) Meet Ruto" - - write_bits_to_save(0x0EE2, 0x01) # "Began Ganondorf Battle" - write_bits_to_save(0x0EE3, 0x80) # "Began Bongo Bongo Battle" - write_bits_to_save(0x0EE3, 0x40) # "Began Barinade Battle" - write_bits_to_save(0x0EE3, 0x20) # "Began Twinrova Battle" - write_bits_to_save(0x0EE3, 0x10) # "Began Morpha Battle" - write_bits_to_save(0x0EE3, 0x08) # "Began Volvagia Battle" - write_bits_to_save(0x0EE3, 0x04) # "Began Phantom Ganon Battle" - write_bits_to_save(0x0EE3, 0x02) # "Began King Dodongo Battle" - write_bits_to_save(0x0EE3, 0x01) # "Began Gohma Battle" - - write_bits_to_save(0x0EE8, 0x01) # "Entered Deku Tree" - write_bits_to_save(0x0EE9, 0x80) # "Entered Temple of Time" - write_bits_to_save(0x0EE9, 0x40) # "Entered Goron City" - write_bits_to_save(0x0EE9, 0x20) # "Entered Hyrule Castle" - write_bits_to_save(0x0EE9, 0x10) # "Entered Zora's Domain" - write_bits_to_save(0x0EE9, 0x08) # "Entered Kakariko Village" - write_bits_to_save(0x0EE9, 0x02) # "Entered Death Mountain Trail" - write_bits_to_save(0x0EE9, 0x01) # "Entered Hyrule Field" - write_bits_to_save(0x0EEA, 0x04) # "Entered Ganon's Castle (Exterior)" - write_bits_to_save(0x0EEA, 0x02) # "Entered Death Mountain Crater" - write_bits_to_save(0x0EEA, 0x01) # "Entered Desert Colossus" - write_bits_to_save(0x0EEB, 0x80) # "Entered Zora's Fountain" - write_bits_to_save(0x0EEB, 0x40) # "Entered Graveyard" - write_bits_to_save(0x0EEB, 0x20) # "Entered Jabu-Jabu's Belly" - write_bits_to_save(0x0EEB, 0x10) # "Entered Lon Lon Ranch" - write_bits_to_save(0x0EEB, 0x08) # "Entered Gerudo's Fortress" - write_bits_to_save(0x0EEB, 0x04) # "Entered Gerudo Valley" - write_bits_to_save(0x0EEB, 0x02) # "Entered Lake Hylia" - write_bits_to_save(0x0EEB, 0x01) # "Entered Dodongo's Cavern" - write_bits_to_save(0x0F08, 0x08) # "Entered Hyrule Castle" - - # Make the Kakariko Gate not open with the MS - if not world.open_kakariko: - rom.write_int32(0xDD3538, 0x34190000) # li t9, 0 - - # Make all chest opening animations fast - if world.fast_chests: - rom.write_int32(0xBDA2E8, 0x240AFFFF) # addiu t2, r0, -1 - # replaces # lb t2, 0x0002 (t1) - - # Set up for Rainbow Bridge dungeons condition - Block_code = [0x15, 0x41, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x80, 0xEA, 0x00, 0xA5, - 0x24, 0x01, 0x00, 0x1C, 0x31, 0x4A, 0x00, 0x1C, 0x08, 0x07, 0x88, 0xD9] - rom.write_bytes(0x3480820, Block_code) - - # Gossip stones resond to stone of agony - Block_code = [0x3C, 0x01, 0x80, 0x12, 0x80, 0x21, 0xA6, 0x75, 0x30, 0x21, 0x00, 0x20, - 0x03, 0xE0, 0x00, 0x08] - # Gossip stones always respond - if(world.hints == 'always'): - Block_code = [0x24, 0x01, 0x00, 0x20, 0x03, 0xE0, 0x00, 0x08] - rom.write_bytes(0x3480840, Block_code) - - # Set up Rainbow Bridge conditions - if world.bridge == 'medallions': - Block_code = [0x80, 0xEA, 0x00, 0xA7, 0x24, 0x01, 0x00, 0x3F, - 0x31, 0x4A, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00] - rom.write_bytes(0xE2B454, Block_code) - elif world.bridge == 'open': - write_bits_to_save(0xEDC, 0x20) # "Rainbow Bridge Built by Sages" - elif world.bridge == 'dungeons': - Block_code = [0x80, 0xEA, 0x00, 0xA7, 0x24, 0x01, 0x00, 0x3F, - 0x08, 0x10, 0x02, 0x08, 0x31, 0x4A, 0x00, 0x3F] - rom.write_bytes(0xE2B454, Block_code) - - if world.open_forest: - write_bits_to_save(0xED5, 0x10) # "Showed Mido Sword & Shield" - - if world.open_door_of_time: - write_bits_to_save(0xEDC, 0x08) # "Opened the Door of Time" - - # "fast-ganon" stuff - if world.no_escape_sequence: - rom.write_bytes(0xD82A12, [0x05, 0x17]) # Sets exit from Ganondorf fight to entrance to Ganon fight - if world.unlocked_ganondorf: - write_bits_to_save(0x00D4 + 0x0A * 0x1C + 0x04 + 0x1, 0x10) # Ganon's Tower switch flag (unlock boss key door) - if world.skipped_trials['Forest']: - write_bits_to_save(0x0EEA, 0x08) # "Completed Forest Trial" - if world.skipped_trials['Fire']: - write_bits_to_save(0x0EEA, 0x40) # "Completed Fire Trial" - if world.skipped_trials['Water']: - write_bits_to_save(0x0EEA, 0x10) # "Completed Water Trial" - if world.skipped_trials['Spirit']: - write_bits_to_save(0x0EE8, 0x20) # "Completed Spirit Trial" - if world.skipped_trials['Shadow']: - write_bits_to_save(0x0EEA, 0x20) # "Completed Shadow Trial" - if world.skipped_trials['Light']: - write_bits_to_save(0x0EEA, 0x80) # "Completed Light Trial" - if world.trials == 0: - write_bits_to_save(0x0EED, 0x08) # "Dispelled Ganon's Tower Barrier" - - # open gerudo fortress - if world.gerudo_fortress == 'open': - write_bits_to_save(0x00A5, 0x40) # Give Gerudo Card - write_bits_to_save(0x0EE7, 0x0F) # Free all 4 carpenters - write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x04 + 0x1, 0x0F) # Thieves' Hideout switch flags (started all fights) - write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x04 + 0x2, 0x01) # Thieves' Hideout switch flags (heard yells/unlocked doors) - write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x04 + 0x3, 0xFE) # Thieves' Hideout switch flags (heard yells/unlocked doors) - write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x0C + 0x2, 0xD4) # Thieves' Hideout collection flags (picked up keys, marks fights finished as well) - elif world.gerudo_fortress == 'fast': - write_bits_to_save(0x0EE7, 0x0E) # Free 3 carpenters - write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x04 + 0x1, 0x0D) # Thieves' Hideout switch flags (started all fights) - write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x04 + 0x2, 0x01) # Thieves' Hideout switch flags (heard yells/unlocked doors) - write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x04 + 0x3, 0xDC) # Thieves' Hideout switch flags (heard yells/unlocked doors) - write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x0C + 0x2, 0xC4) # Thieves' Hideout collection flags (picked up keys, marks fights finished as well) - - # Revert change that Skips the Epona Race - if not world.no_epona_race: - rom.write_int32(0xA9E838, 0x03E00008) - - # skip castle guard stealth sequence - if world.no_guard_stealth: - # change the exit at child/day crawlspace to the end of zelda's goddess cutscene - rom.write_bytes(0x21F60DE, [0x05, 0xF0]) - - ### Load Shop File - from MQ import File, verify_dma, update_dmadata, insert_space, add_relocations - # Move shop actor file to free space - shop_item_file = File({ - 'Name':'En_GirlA', - 'Start':'00C004E0', - 'End':'00C02E00', - 'RemapStart':'03485000', - }) - shop_item_file.relocate(rom) - - # Increase the shop item table size - shop_item_vram_start = rom.read_int32(0x00B5E490 + (0x20 * 4) + 0x08) - insert_space(rom, shop_item_file, shop_item_vram_start, 1, 0x3C + (0x20 * 50), 0x20 * 50) - - # Add relocation entries for shop item table - new_relocations = [] - for i in range(50, 100): - new_relocations.append(shop_item_file.start + 0x1DEC + (i * 0x20) + 0x04) - new_relocations.append(shop_item_file.start + 0x1DEC + (i * 0x20) + 0x14) - new_relocations.append(shop_item_file.start + 0x1DEC + (i * 0x20) + 0x1C) - add_relocations(rom, shop_item_file, new_relocations) - - # update actor table - rom.write_int32s(0x00B5E490 + (0x20 * 4), - [shop_item_file.start, - shop_item_file.end, - shop_item_vram_start, - shop_item_vram_start + (shop_item_file.end - shop_item_file.start)]) - - # Update DMA Table - update_dmadata(rom, shop_item_file) - verify_dma(rom) - - messages = read_messages(rom) - shop_items = read_shop_items(rom, shop_item_file.start + 0x1DEC) - remove_unused_messages(messages) - - # Set Big Poe count to get reward from buyer - if world.big_poe_count == 'random': - world.big_poe_count = str(random.randint(1, 10)) - poe_points = int(world.big_poe_count) * 100 - rom.write_int16(0xEE69CE, poe_points) - # update dialogue - if world.big_poe_count != 10: - new_message = "\x1AOh, you brought a Poe today!\x04\x1AHmmmm!\x04\x1AVery interesting!\x01This is a \x05\x41Big Poe\x05\x40!\x04\x1AI'll buy it for \x05\x4150 Rupees\x05\x40.\x04On top of that, I'll put \x05\x41100\x01points \x05\x40on your card.\x04\x1AIf you earn \x05\x41%d points\x05\x40, you'll\x01be a happy man! Heh heh." % poe_points - update_message_by_id(messages, 0x70f7, new_message) - new_message = "\x1AWait a minute! WOW!\x04\x1AYou have earned \x05\x41%d points\x05\x40!\x04\x1AYoung man, you are a genuine\x01\x05\x41Ghost Hunter\x05\x40!\x04\x1AIs that what you expected me to\x01say? Heh heh heh!\x04\x1ABecause of you, I have extra\x01inventory of \x05\x41Big Poes\x05\x40, so this will\x01be the last time I can buy a \x01ghost.\x04\x1AYou're thinking about what I \x01promised would happen when you\x01earned %d points. Heh heh.\x04\x1ADon't worry, I didn't forget.\x01Just take this." % (poe_points, poe_points) - update_message_by_id(messages, 0x70f8, new_message) - - # Sets hooks for gossip stone changes - if world.hints != 'none': - if world.hints != 'mask': - rom.write_bytes(0xEE7B84, [0x0C, 0x10, 0x02, 0x10]) - rom.write_bytes(0xEE7B8C, [0x24, 0x02, 0x00, 0x20]) - buildGossipHints(world, messages) - - # Set hints for boss reward shuffle - rom.write_bytes(0xE2ADB2, [0x70, 0x7A]) - rom.write_bytes(0xE2ADB6, [0x70, 0x57]) - buildBossRewardHints(world, messages) - - # build silly ganon lines - buildGanonText(world, messages) - - # Write item overrides - override_table = get_override_table(world) - rom.write_bytes(0x3481000, sum(override_table, [])) - rom.write_byte(0x03481C00, world.id + 1) # Write player ID - - # Revert Song Get Override Injection - if not world.shuffle_song_items: - # general get song - rom.write_int32(0xAE5DF8, 0x240200FF) - rom.write_int32(0xAE5E04, 0xAD0F00A4) - # requiem of spirit - rom.write_int32s(0xAC9ABC, [0x3C010001, 0x00300821]) - # sun song - rom.write_int32(0xE09F68, 0x8C6F00A4) - rom.write_int32(0xE09F74, 0x01CFC024) - rom.write_int32(0xE09FB0, 0x240F0001) - # epona - rom.write_int32(0xD7E77C, 0x8C4900A4) - rom.write_int32(0xD7E784, 0x8D088C24) - rom.write_int32s(0xD7E8D4, [0x8DCE8C24, 0x8C4F00A4]) - rom.write_int32s(0xD7E140, [0x8DCE8C24, 0x8C6F00A4]) - rom.write_int32(0xD7EBBC, 0x14410008) - rom.write_int32(0xD7EC1C, 0x17010010) - # song of time - rom.write_int32(0xDB532C, 0x24050003) - - # Set Default targeting option to Hold - if world.default_targeting == 'hold': - rom.write_bytes(0xB07200, [0x20, 0x0C, 0x00, 0x01 ]) - - # Set OHKO mode - if world.difficulty == 'ohko': - rom.write_int32(0xAE80A8, 0xA4A00030) # sh zero,48(a1) - rom.write_int32(0xAE80B4, 0x06000003) # bltz s0, +0003 - - # Patch songs and boss rewards - for location in world.get_locations(): - item = location.item - itemid = copy.copy(item.code) - locationaddress = location.address - secondaryaddress = location.address2 - - if itemid is None or location.address is None: - continue - - if location.type == 'Song' and not world.shuffle_song_items: - rom.write_byte(locationaddress, itemid[0]) - itemid[0] = itemid[0] + 0x0D - rom.write_byte(secondaryaddress, itemid[0]) - if location.name == 'Impa at Castle': - impa_fix = 0x65 - itemid[1] - rom.write_byte(0xD12ECB, impa_fix) - rom.write_byte(0x2E8E931, item_data[item.name]) #Fix text box - elif location.name == 'Song from Malon': - if item.name == 'Suns Song': - rom.write_byte(locationaddress, itemid[0]) - malon_fix = 0x8C34 - (itemid[1] * 4) - malon_fix_high = malon_fix >> 8 - malon_fix_low = malon_fix & 0x00FF - rom.write_bytes(0xD7E142, [malon_fix_high, malon_fix_low]) - rom.write_bytes(0xD7E8D6, [malon_fix_high, malon_fix_low]) # I really don't like hardcoding these addresses, but for now..... - rom.write_bytes(0xD7E786, [malon_fix_high, malon_fix_low]) - rom.write_byte(0x29BECB9, item_data[item.name]) #Fix text box - elif location.name == 'Song from Composer Grave': - sun_fix = 0x8C34 - (itemid[1] * 4) - sun_fix_high = sun_fix >> 8 - sun_fix_low = sun_fix & 0x00FF - rom.write_bytes(0xE09F66, [sun_fix_high, sun_fix_low]) - rom.write_byte(0x332A87D, item_data[item.name]) #Fix text box - elif location.name == 'Song from Saria': - saria_fix = 0x65 - itemid[1] - rom.write_byte(0xE2A02B, saria_fix) - rom.write_byte(0x20B1DBD, item_data[item.name]) #Fix text box - elif location.name == 'Song from Ocarina of Time': - rom.write_byte(0x252FC95, item_data[item.name]) #Fix text box - elif location.name == 'Song at Windmill': - windmill_fix = 0x65 - itemid[1] - rom.write_byte(0xE42ABF, windmill_fix) - rom.write_byte(0x3041091, item_data[item.name]) #Fix text box - elif location.name == 'Sheik Forest Song': - minuet_fix = 0x65 - itemid[1] - rom.write_byte(0xC7BAA3, minuet_fix) - rom.write_byte(0x20B0815, item_data[item.name]) #Fix text box - elif location.name == 'Sheik at Temple': - prelude_fix = 0x65 - itemid[1] - rom.write_byte(0xC805EF, prelude_fix) - rom.write_byte(0x2531335, item_data[item.name]) #Fix text box - elif location.name == 'Sheik in Crater': - bolero_fix = 0x65 - itemid[1] - rom.write_byte(0xC7BC57, bolero_fix) - rom.write_byte(0x224D7FD, item_data[item.name]) #Fix text box - elif location.name == 'Sheik in Ice Cavern': - serenade_fix = 0x65 - itemid[1] - rom.write_byte(0xC7BD77, serenade_fix) - rom.write_byte(0x2BEC895, item_data[item.name]) #Fix text box - elif location.name == 'Sheik in Kakariko': - nocturne_fix = 0x65 - itemid[1] - rom.write_byte(0xAC9A5B, nocturne_fix) - rom.write_byte(0x2000FED, item_data[item.name]) #Fix text box - elif location.name == 'Sheik at Colossus': - rom.write_byte(0x218C589, item_data[item.name]) #Fix text box - elif location.type == 'Boss': - if location.name == 'Links Pocket': - write_bits_to_save(item_data[item.name][1], item_data[item.name][0]) - else: - rom.write_byte(locationaddress, itemid) - rom.write_byte(secondaryaddress, item_data[item.name][2]) - if location.name == 'Bongo Bongo': - rom.write_bytes(0xCA3F32, [item_data[item.name][3][0], item_data[item.name][3][1]]) - rom.write_bytes(0xCA3F36, [item_data[item.name][3][2], item_data[item.name][3][3]]) - elif location.name == 'Twinrova': - rom.write_bytes(0xCA3EA2, [item_data[item.name][3][0], item_data[item.name][3][1]]) - rom.write_bytes(0xCA3EA6, [item_data[item.name][3][2], item_data[item.name][3][3]]) - - # add a cheaper bombchu pack to the bombchu shop - # describe - update_message_by_id(messages, 0x80FE, '\x08\x05\x41Bombchu (5 pieces) 60 Rupees\x01\x05\x40This looks like a toy mouse, but\x01it\'s actually a self-propelled time\x01bomb!\x09\x0A', 0x03) - # purchase - update_message_by_id(messages, 0x80FF, '\x08Bombchu 5 Pieces 60 Rupees\x01\x01\x1B\x05\x42Buy\x01Don\'t buy\x05\x40\x09', 0x03) - rbl_bombchu = shop_items[0x0018] - rbl_bombchu.price = 60 - rbl_bombchu.pieces = 5 - rbl_bombchu.get_item_id = 0x006A - rbl_bombchu.description_message = 0x80FE - rbl_bombchu.purchase_message = 0x80FF - - # Reduce 10 Pack Bombchus from 100 to 99 Rupees - shop_items[0x0015].price = 99 - shop_items[0x0019].price = 99 - shop_items[0x001C].price = 99 - update_message_by_id(messages, shop_items[0x001C].description_message, "\x08\x05\x41Bombchu (10 pieces) 99 Rupees\x01\x05\x40This looks like a toy mouse, but\x01it's actually a self-propelled time\x01bomb!\x09\x0A") - update_message_by_id(messages, shop_items[0x001C].purchase_message, "\x08Bombchu 10 pieces 100 Rupees\x09\x01\x01\x1B\x05\x42Buy\x01Don't buy\x05\x40") - - if world.shopsanity == 'off': - # Add more bombchus to make them more accessible - if world.bombchus_in_logic: - rom.write_int16(world.get_location('Kokiri Shop Item 8').address, - ItemFactory('Buy Bombchu (5)').index) - rom.write_int16(world.get_location('Bazaar Item 8').address, - ItemFactory('Buy Bombchu (5)').index) - else: - # kokiri shop - shop_objs = place_shop_items(rom, shop_items, messages, - world.get_region('Kokiri Shop').locations, True) - shop_objs |= {0x00FC, 0x00B2, 0x0101, 0x0102, 0x00FD, 0x00C5} # Shop objects - rom.write_byte(0x2587029, len(shop_objs)) - rom.write_int32(0x258702C, 0x0300F600) - rom.write_int16s(0x2596600, list(shop_objs)) - - # bazaar - shop_objs = place_shop_items(rom, shop_items, messages, - world.get_region('Castle Town Bazaar').locations) - shop_objs |= {0x005B, 0x00B2, 0x00C5, 0x0107, 0x00C9, 0x016B} # Shop objects - rom.write_byte(0x28E4029, len(shop_objs)) - rom.write_int32(0x28E402C, 0x03007A40) - rom.write_int16s(0x28EBA40, list(shop_objs)) - - # goron shop - shop_objs = place_shop_items(rom, shop_items, messages, - world.get_region('Goron Shop').locations) - shop_objs |= {0x00C9, 0x00B2, 0x0103, 0x00AF} # Shop objects - rom.write_byte(0x2D33029, len(shop_objs)) - rom.write_int32(0x2D3302C, 0x03004340) - rom.write_int16s(0x2D37340, list(shop_objs)) - - # zora shop - shop_objs = place_shop_items(rom, shop_items, messages, - world.get_region('Zora Shop').locations) - shop_objs |= {0x005B, 0x00B2, 0x0104, 0x00FE} # Shop objects - rom.write_byte(0x2D5B029, len(shop_objs)) - rom.write_int32(0x2D5B02C, 0x03004B40) - rom.write_int16s(0x2D5FB40, list(shop_objs)) - - # kakariko potion shop - shop_objs = place_shop_items(rom, shop_items, messages, - world.get_region('Kakariko Potion Shop Front').locations) - shop_objs |= {0x0159, 0x00B2, 0x0175, 0x0122} # Shop objects - rom.write_byte(0x2D83029, len(shop_objs)) - rom.write_int32(0x2D8302C, 0x0300A500) - rom.write_int16s(0x2D8D500, list(shop_objs)) - - # market potion shop - shop_objs = place_shop_items(rom, shop_items, messages, - world.get_region('Castle Town Potion Shop').locations) - shop_objs |= {0x0159, 0x00B2, 0x0175, 0x00C5, 0x010C, 0x016B} # Shop objects - rom.write_byte(0x2DB0029, len(shop_objs)) - rom.write_int32(0x2DB002C, 0x03004E40) - rom.write_int16s(0x2DB4E40, list(shop_objs)) - - # bombchu shop - shop_objs = place_shop_items(rom, shop_items, messages, - world.get_region('Castle Town Bombchu Shop').locations) - shop_objs |= {0x0165, 0x00B2} # Shop objects - rom.write_byte(0x2DD8029, len(shop_objs)) - rom.write_int32(0x2DD802C, 0x03006A40) - rom.write_int16s(0x2DDEA40, list(shop_objs)) - - #Fix item chest animations - chestAnimations = { - 0x3D: 0xED, #0x13 #Heart Container - 0x3E: 0xEC, #0x14 #Piece of Heart - 0x42: 0x02, #0xFE #Small Key - 0x48: 0xF7, #0x09 #Recovery Heart - 0x4F: 0xED, #0x13 #Heart Container - 0x76: 0xEC, #0x14 #WINNER! Piece of Heart - } - if world.bombchus_in_logic: - #Fix bombchu chest animations - chestAnimations[0x6A] = 0x28 #0xD8 #Bombchu (5) - chestAnimations[0x03] = 0x28 #0xD8 #Bombchu (10) - chestAnimations[0x6B] = 0x28 #0xD8 #Bombchu (20) - for item_id, gfx_id in chestAnimations.items(): - rom.write_byte(0xBEEE8E + (item_id * 6) + 2, gfx_id) - - # Update chest type sizes - if world.correct_chest_sizes: - update_chest_sizes(rom, override_table) - - # Move Ganon's Castle's Zelda's Lullaby Chest back so is reachable if large - rom.write_int16(0x321B176, 0xFC40) # original 0xFC48 - - # give dungeon items the correct messages - message_patch_for_dungeon_items(messages, shop_items, world) - # update happy mask shop to use new SOLD OUT text id - rom.write_int16(0xC01C06, shop_items[0x26].description_message) - - # add song messages - add_song_messages(messages, world) - - # reduce item message lengths - update_item_messages(messages, world) - - # Add 3rd Wallet Upgrade - rom.write_int16(0xB6D57E, 0x0003) - rom.write_int16(0xB6EC52, 999) - update_message_by_id(messages, 0x00F8, "\x08\x13\x57You got a \x05\x43Tycoon's Wallet\x05\x40!\x01Now you can hold\x01up to \x05\x46999\x05\x40 \x05\x46Rupees\x05\x40.", 0x23) - - repack_messages(rom, messages) - write_shop_items(rom, shop_item_file.start + 0x1DEC, shop_items) - - # text shuffle - if world.text_shuffle == 'except_hints': - shuffle_messages(rom, True) - elif world.text_shuffle == 'complete': - shuffle_messages(rom, False) - - # output a text dump, for testing... - #with open('keysanity_' + str(world.seed) + '_dump.txt', 'w', encoding='utf-16') as f: - # messages = read_messages(rom) - # f.write('item_message_strings = {\n') - # for m in messages: - # f.write("\t0x%04X: \"%s\",\n" % (m.id, m.get_python_string())) - # f.write('}\n') - - - scarecrow_song = None - if world.free_scarecrow: - original_songs = [ - 'LURLUR', - 'ULRULR', - 'DRLDRL', - 'RDURDU', - 'RADRAD', - 'ADUADU', - 'AULRLR', - 'DADALDLD', - 'ADRRL', - 'ADALDA', - 'LRRALRD', - 'URURLU' - ] - - note_map = { - 'A': 0, - 'D': 1, - 'R': 2, - 'L': 3, - 'U': 4 - } - - if len(world.scarecrow_song) != 8: - raise Exception('Scarecrow Song must be 8 notes long') - - if len(set(world.scarecrow_song.upper())) == 1: - raise Exception('Scarecrow Song must contain at least two different notes') - - notes = [] - for c in world.scarecrow_song.upper(): - if c not in note_map: - raise Exception('Invalid note %s. Valid notes are A, D, R, L, U' % c) - - notes.append(note_map[c]) - scarecrow_song = Song(activation=notes) - - if not world.ocarina_songs: - for original_song in original_songs: - song_notes = [] - for c in original_song: - song_notes.append(note_map[c]) - song = Song(activation=song_notes) - - if subsong(scarecrow_song, song): - raise Exception('You may not have the Scarecrow Song contain an existing song') - - write_bits_to_save(0x0EE6, 0x10) # Played song as adult - write_byte_to_save(0x12C5, 0x01) # Song is remembered - write_bytes_to_save(0x12C6, scarecrow_song.playback_data[:(16*8)], lambda v: v != 0) - - if world.ocarina_songs: - replace_songs(rom, scarecrow_song) - - # actually write the save table to rom - write_save_table(rom) - - # disable music - if world.disable_music: - rom.write_bytes(0xB3CB18, [0x00, 0x00, 0x20, 0x25]) - - # re-seed for aesthetic effects. They shouldn't be affected by the generation seed - random.seed() - - # patch tunic colors - # Custom color tunic stuff - Tunics = [] - Tunics.append(0x00B6DA38) # Kokiri Tunic - Tunics.append(0x00B6DA3B) # Goron Tunic - Tunics.append(0x00B6DA3E) # Zora Tunic - colorList = get_tunic_colors() - randomColors = random.choices(colorList, k=3) - - for i in range(len(Tunics)): - # get the color option - thisColor = world.tunic_colors[i] - # handle true random - randColor = [random.getrandbits(8), random.getrandbits(8), random.getrandbits(8)] - if thisColor == 'Completely Random': - color = randColor - else: - # handle random - if world.tunic_colors[i] == 'Random Choice': - thisColor = randomColors[i] - # grab the color from the list - color = TunicColors[thisColor] - rom.write_bytes(Tunics[i], color) - - # patch navi colors - Navi = [] - Navi.append([0x00B5E184]) # Default - Navi.append([0x00B5E19C, 0x00B5E1BC]) # Enemy, Boss - Navi.append([0x00B5E194]) # NPC - Navi.append([0x00B5E174, 0x00B5E17C, 0x00B5E18C, 0x00B5E1A4, 0x00B5E1AC, 0x00B5E1B4, 0x00B5E1C4, 0x00B5E1CC, 0x00B5E1D4]) # Everything else - naviList = get_navi_colors() - randomColors = random.choices(naviList, k=4) - - for i in range(len(Navi)): - # do everything in the inner loop so that "true random" changes even for subcategories - for j in range(len(Navi[i])): - # get the color option - thisColor = world.navi_colors[i] - # handle true random - randColor = [random.getrandbits(8), random.getrandbits(8), random.getrandbits(8), 0xFF, - random.getrandbits(8), random.getrandbits(8), random.getrandbits(8), 0x00] - if thisColor == 'Completely Random': - color = randColor - else: - # handle random - if world.navi_colors[i] == 'Random Choice': - thisColor = randomColors[i] - # grab the color from the list - color = NaviColors[thisColor] - rom.write_bytes(Navi[i][j], color) - - #Navi hints - NaviHint = [] - NaviHint.append([0xAE7EF2, 0xC26C7E]) #Overworld Hint - NaviHint.append([0xAE7EC6]) #Enemy Target Hint - naviHintSFXList = ['Default', 'Notification', 'Rupee', 'Timer', 'Tamborine', 'Recovery Heart', 'Carrot Refill', 'Navi - Hey!', 'Navi - Random', 'Zelda - Gasp', 'Cluck', 'Mweep!', 'None'] - randomNaviHintSFX = random.choices(naviHintSFXList, k=2) - - for i in range(len(NaviHint)): - for j in range(len(NaviHint[i])): - thisNaviHintSFX = world.navi_hint_sounds[i] - if thisNaviHintSFX == 'Random Choice': - thisNaviHintSFX = randomNaviHintSFX[i] - if thisNaviHintSFX == 'Notification': - naviHintSFX = [0x48, 0x20] - elif thisNaviHintSFX == 'Rupee': - naviHintSFX = [0x48, 0x03] - elif thisNaviHintSFX == 'Timer': - naviHintSFX = [0x48, 0x1A] - elif thisNaviHintSFX == 'Tamborine': - naviHintSFX = [0x48, 0x42] - elif thisNaviHintSFX == 'Recovery Heart': - naviHintSFX = [0x48, 0x0B] - elif thisNaviHintSFX == 'Carrot Refill': - naviHintSFX = [0x48, 0x45] - elif thisNaviHintSFX == 'Navi - Hey!': - naviHintSFX = [0x68, 0x5F] - elif thisNaviHintSFX == 'Navi - Random': - naviHintSFX = [0x68, 0x43] - elif thisNaviHintSFX == 'Zelda - Gasp': - naviHintSFX = [0x68, 0x79] - elif thisNaviHintSFX == 'Cluck': - naviHintSFX = [0x28, 0x12] - elif thisNaviHintSFX == 'Mweep!': - naviHintSFX = [0x68, 0x7A] - elif thisNaviHintSFX == 'None': - naviHintSFX = [0x00, 0x00] - if thisNaviHintSFX != 'Default': - rom.write_bytes(NaviHint[i][j], naviHintSFX) - - #Low health beep - healthSFXList = ['Default', 'Softer Beep', 'Rupee', 'Timer', 'Tamborine', 'Recovery Heart', 'Carrot Refill', 'Navi - Hey!', 'Zelda - Gasp', 'Cluck', 'Mweep!', 'None'] - randomSFX = random.choice(healthSFXList) - address = 0xADBA1A - - if world.healthSFX == 'Random Choice': - thisHealthSFX = randomSFX - else: - thisHealthSFX = world.healthSFX - if thisHealthSFX == 'Default': - healthSFX = [0x48, 0x1B] - elif thisHealthSFX == 'Softer Beep': - healthSFX = [0x48, 0x04] - elif thisHealthSFX == 'Rupee': - healthSFX = [0x48, 0x03] - elif thisHealthSFX == 'Timer': - healthSFX = [0x48, 0x1A] - elif thisHealthSFX == 'Tamborine': - healthSFX = [0x48, 0x42] - elif thisHealthSFX == 'Recovery Heart': - healthSFX = [0x48, 0x0B] - elif thisHealthSFX == 'Carrot Refill': - healthSFX = [0x48, 0x45] - elif thisHealthSFX == 'Navi - Hey!': - healthSFX = [0x68, 0x5F] - elif thisHealthSFX == 'Zelda - Gasp': - healthSFX = [0x68, 0x79] - elif thisHealthSFX == 'Cluck': - healthSFX = [0x28, 0x12] - elif thisHealthSFX == 'Mweep!': - healthSFX = [0x68, 0x7A] - elif thisHealthSFX == 'None': - healthSFX = [0x00, 0x00, 0x00, 0x00] - address = 0xADBA14 - rom.write_bytes(address, healthSFX) - - return rom - -def get_override_table(world): - override_entries = [] - for location in world.get_locations(): - override_entries.append(get_override_entry(location)) - override_entries.sort() - return override_entries - -def get_override_entry(location): - scene = location.scene - default = location.default - item_id = location.item.index - if None in [scene, default, item_id]: - return [] - - player_id = (location.item.world.id + 1) << 3 - - if location.type in ['NPC', 'BossHeart', 'Song']: - return [scene, player_id | 0x00, default, item_id] - elif location.type == 'Chest': - flag = default & 0x1F - return [scene, player_id | 0x01, flag, item_id] - elif location.type == 'Collectable': - return [scene, player_id | 0x02, default, item_id] - elif location.type == 'GS Token': - return [scene, player_id | 0x03, default, item_id] - elif location.type == 'Shop' and location.item.type != 'Shop': - return [scene, player_id | 0x00, default, item_id] - else: - return [] - - -chestTypeMap = { - # small big boss - 0x0000: [0x5000, 0x0000, 0x2000], #Large - 0x1000: [0x7000, 0x1000, 0x1000], #Large, Appears, Clear Flag - 0x2000: [0x5000, 0x0000, 0x2000], #Boss Key’s Chest - 0x3000: [0x8000, 0x3000, 0x3000], #Large, Falling, Switch Flag - 0x4000: [0x6000, 0x4000, 0x4000], #Large, Invisible - 0x5000: [0x5000, 0x0000, 0x2000], #Small - 0x6000: [0x6000, 0x4000, 0x4000], #Small, Invisible - 0x7000: [0x7000, 0x1000, 0x1000], #Small, Appears, Clear Flag - 0x8000: [0x8000, 0x3000, 0x3000], #Small, Falling, Switch Flag - 0x9000: [0x9000, 0x9000, 0x9000], #Large, Appears, Zelda's Lullaby - 0xA000: [0xA000, 0xA000, 0xA000], #Large, Appears, Sun's Song Triggered - 0xB000: [0xB000, 0xB000, 0xB000], #Large, Appears, Switch Flag - 0xC000: [0x5000, 0x0000, 0x2000], #Large - 0xD000: [0x5000, 0x0000, 0x2000], #Large - 0xE000: [0x5000, 0x0000, 0x2000], #Large - 0xF000: [0x5000, 0x0000, 0x2000], #Large -} - -chestAnimationExtendedFast = [ - 0x87, # Progressive Nut Capacity - 0x88, # Progressive Stick Capacity - 0xB6, # Recovery Heart - 0xB7, # Arrows (5) - 0xB8, # Arrows (10) - 0xB9, # Arrows (30) - 0xBA, # Bombs (5) - 0xBB, # Bombs (10) - 0xBC, # Bombs (20) - 0xBD, # Deku Nuts (5) - 0xBE, # Deku Nuts (10) -] - - -def room_get_chests(rom, room_data, scene, chests, alternate=None): - room_start = alternate or room_data - command = 0 - while command != 0x14: # 0x14 = end header - command = rom.read_byte(room_data) - if command == 0x01: # actor list - actor_count = rom.read_byte(room_data + 1) - actor_list = room_start + (rom.read_int32(room_data + 4) & 0x00FFFFFF) - for _ in range(0, actor_count): - actor_id = rom.read_int16(actor_list); - actor_var = rom.read_int16(actor_list + 14) - if actor_id == 0x000A: #Chest Actor - chests[actor_list + 14] = [scene, actor_var & 0x001F] - actor_list = actor_list + 16 - if command == 0x18 and scene >= 81 and scene <= 99: # Alternate header list - header_list = room_start + (rom.read_int32(room_data + 4) & 0x00FFFFFF) - for alt_id in range(0,2): - header_data = room_start + (rom.read_int32(header_list + 4) & 0x00FFFFFF) - if header_data != 0 and not alternate: - room_get_chests(rom, header_data, scene, chests, room_start) - header_list = header_list + 4 - room_data = room_data + 8 - - -def scene_get_chests(rom, scene_data, scene, chests, alternate=None): - scene_start = alternate or scene_data - command = 0 - while command != 0x14: # 0x14 = end header - command = rom.read_byte(scene_data) - if command == 0x04: #room list - room_count = rom.read_byte(scene_data + 1) - room_list = scene_start + (rom.read_int32(scene_data + 4) & 0x00FFFFFF) - for _ in range(0, room_count): - room_data = rom.read_int32(room_list); - room_get_chests(rom, room_data, scene, chests) - room_list = room_list + 8 - if command == 0x18 and scene >= 81 and scene <= 99: # Alternate header list - header_list = scene_start + (rom.read_int32(scene_data + 4) & 0x00FFFFFF) - for alt_id in range(0,2): - header_data = scene_start + (rom.read_int32(header_list + 4) & 0x00FFFFFF) - if header_data != 0 and not alternate: - scene_get_chests(rom, header_data, scene, chests, scene_start) - header_list = header_list + 4 - - scene_data = scene_data + 8 - - -def get_chest_list(rom): - chests = {} - scene_table = 0x00B71440 - for scene in range(0x00, 0x65): - scene_data = rom.read_int32(scene_table + (scene * 0x14)); - scene_get_chests(rom, scene_data, scene, chests) - return chests - - -def get_override_itemid(override_table, scene, type, flags): - for entry in override_table: - if len(entry) == 4 and entry[0] == scene and (entry[1] & 0x07) == type and entry[2] == flags: - return entry[3] - return None - -def update_chest_sizes(rom, override_table): - chest_list = get_chest_list(rom) - for address, [scene, flags] in chest_list.items(): - item_id = get_override_itemid(override_table, scene, 1, flags) - - if None in [address, scene, flags, item_id]: - continue - - itemType = 0 # Item animation - - if item_id >= 0x80: # if extended item, always big except from exception list - itemType = 0 if item_id in chestAnimationExtendedFast else 1 - elif rom.read_byte(0xBEEE8E + (item_id * 6) + 2) & 0x80: # get animation from rom, ice trap is big - itemType = 0 # No animation, small chest - else: - itemType = 1 # Long animation, big chest - # Don't use boss chests - - default = rom.read_int16(address) - chestType = default & 0xF000 - newChestType = chestTypeMap[chestType][itemType] - default = (default & 0x0FFF) | newChestType - rom.write_int16(address, default) - - -def place_shop_items(rom, shop_items, messages, locations, init_shop_id=False): - if init_shop_id: - place_shop_items.shop_id = 0x32 - - shop_objs = { 0x0148 } # Sold Out - messages - for location in locations: - shop_objs.add(location.item.object) - if location.item.type == 'Shop': - rom.write_int16(location.address, location.item.index) - else: - shop_id = place_shop_items.shop_id - rom.write_int16(location.address, shop_id) - shop_item = shop_items[shop_id] - - shop_item.object = location.item.object - shop_item.model = location.item.model - 1 - shop_item.price = location.price - shop_item.pieces = 1 - shop_item.get_item_id = location.default - shop_item.func1 = 0x808648CC - shop_item.func2 = 0x808636B8 - shop_item.func3 = 0x00000000 - shop_item.func4 = 0x80863FB4 - - message_id = (shop_id - 0x32) * 2 - shop_item.description_message = 0x8100 + message_id - shop_item.purchase_message = 0x8100 + message_id + 1 - update_message_by_id(messages, shop_item.description_message, '\x08\x05\x41%s %d Rupees\x01\x05\x40Special deal! ONE LEFT!\x01Get it while it lasts!\x09\x0A\x02' % (location.item.name, location.price), 0x03) - update_message_by_id(messages, shop_item.purchase_message, '\x08%s %d Rupees\x09\x01\x01\x1B\x05\x42Buy\x01Don\'t buy\x05\x40\x02' % (location.item.name, location.price), 0x03) - - place_shop_items.shop_id += 1 - - return shop_objs +import io +import json +import logging +import os +import platform +import struct +import subprocess +import random +import copy + +from Hints import buildGossipHints, buildBossRewardHints, buildGanonText +from Utils import local_path, default_output_path +from Items import ItemFactory, item_data +from Messages import * +from OcarinaSongs import Song, replace_songs, subsong + +TunicColors = { + "Kokiri Green": [0x1E, 0x69, 0x1B], + "Goron Red": [0x64, 0x14, 0x00], + "Zora Blue": [0x00, 0x3C, 0x64], + "Black": [0x30, 0x30, 0x30], + "White": [0xF0, 0xF0, 0xFF], + "Purple": [0x95, 0x30, 0x80], + "Yellow": [0xE0, 0xD8, 0x60], + "Orange": [0xE0, 0x79, 0x40], + "Pink": [0xFF, 0x90, 0xB3], + "Gray": [0xA0, 0xA0, 0xB0], + "Brown": [0x95, 0x59, 0x0A], + "Gold": [0xD8, 0xB0, 0x60], + "Silver": [0xD0, 0xF0, 0xFF], + "Beige": [0xC0, 0xA0, 0xA0], + "Teal": [0x30, 0xD0, 0xB0], + "Royal Blue": [0x40, 0x00, 0x90], + "Sonic Blue": [0x50, 0x90, 0xE0], + "Blood Red": [0x30, 0x10, 0x10], + "Blood Orange": [0xF0, 0x30, 0x30], + "NES Green": [0x00, 0xD0, 0x00], + "Dark Green": [0x00, 0x25, 0x18], + "Only": [80, 140, 240], +} + +NaviColors = { + "White": [0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00], + "Green": [0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00], + "Light Blue": [0x96, 0x96, 0xFF, 0xFF, 0x96, 0x96, 0xFF, 0x00], + "Yellow": [0xFF, 0xFF, 0x00, 0xFF, 0xC8, 0x9B, 0x00, 0x00], + "Red": [0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00], + "Magenta": [0xFF, 0x00, 0xFF, 0xFF, 0xC8, 0x00, 0x9B, 0x00], + "Black": [0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00], + "Tatl": [0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0x98, 0x00, 0x00], + "Tael": [0x49, 0x14, 0x6C, 0xFF, 0xFF, 0x00, 0x00, 0x00], +} + +def get_tunic_colors(): + return list(TunicColors.keys()) + +def get_tunic_color_options(): + return ["Random Choice", "Completely Random"] + get_tunic_colors() + +def get_navi_colors(): + return list(NaviColors.keys()) + +def get_navi_color_options(): + return ["Random Choice", "Completely Random"] + get_navi_colors() + +class LocalRom(object): + + def __init__(self, settings, patch=True): + self.last_address = None + + file = settings.rom + decomp_file = os.path.join(default_output_path(settings.output_dir), 'ZOOTDEC.z64') + + validCRC = [] + validCRC.append(bytearray([0xEC, 0x70, 0x11, 0xB7, 0x76, 0x16, 0xD7, 0x2B])) # Compressed + validCRC.append(bytearray([0x70, 0xEC, 0xB7, 0x11, 0x16, 0x76, 0x2B, 0xD7])) # Byteswap compressed + validCRC.append(bytearray([0x93, 0x52, 0x2E, 0x7B, 0xE5, 0x06, 0xD4, 0x27])) # Decompressed + + os.chdir(os.path.dirname(os.path.realpath(__file__))) + #os.chdir(output_path(os.path.dirname(os.path.realpath(__file__)))) + with open(file, 'rb') as stream: + self.buffer = read_rom(stream) + file_name = os.path.splitext(file) + romCRC = self.buffer[0x10:0x18] + if romCRC not in validCRC: + raise RuntimeError('ROM is not a valid OoT 1.0 US ROM.') + if len(self.buffer) < 0x2000000 or len(self.buffer) > (0x4000000) or file_name[1] not in ['.z64', '.n64']: + raise RuntimeError('ROM is not a valid OoT 1.0 ROM.') + if len(self.buffer) == 0x2000000: + if platform.system() == 'Windows': + subprocess.call(["Decompress\\Decompress.exe", file, decomp_file]) + with open(decomp_file, 'rb') as stream: + self.buffer = read_rom(stream) + elif platform.system() == 'Linux': + subprocess.call(["Decompress/Decompress", file]) + with open(("ZOOTDEC.z64"), 'rb') as stream: + self.buffer = read_rom(stream) + elif platform.system() == 'Darwin': + subprocess.call(["Decompress/Decompress.out", file]) + with open(("ZOOTDEC.z64"), 'rb') as stream: + self.buffer = read_rom(stream) + else: + raise RuntimeError('Unsupported operating system for decompression. Please supply an already decompressed ROM.') + # extend to 64MB + self.buffer.extend(bytearray([0x00] * (0x4000000 - len(self.buffer)))) + + def read_byte(self, address): + return self.buffer[address] + + def read_bytes(self, address, len): + return self.buffer[address : address + len] + + def read_int16(self, address): + return bytes_as_int16(self.read_bytes(address, 2)) + + def read_int24(self, address): + return bytes_as_int24(self.read_bytes(address, 3)) + + def read_int32(self, address): + return bytes_as_int32(self.read_bytes(address, 4)) + + def write_byte(self, address, value): + if address == None: + address = self.last_address + self.buffer[address] = value + self.last_address = address + 1 + + def write_int16(self, address, value): + if address == None: + address = self.last_address + self.write_bytes(address, int16_as_bytes(value)) + + def write_int24(self, address, value): + if address == None: + address = self.last_address + self.write_bytes(address, int24_as_bytes(value)) + + def write_int32(self, address, value): + if address == None: + address = self.last_address + self.write_bytes(address, int32_as_bytes(value)) + + def write_bytes(self, startaddress, values): + if startaddress == None: + startaddress = self.last_address + for i, value in enumerate(values): + self.write_byte(startaddress + i, value) + + def write_int16s(self, startaddress, values): + if startaddress == None: + startaddress = self.last_address + for i, value in enumerate(values): + self.write_int16(startaddress + (i * 2), value) + + def write_int24s(self, startaddress, values): + if startaddress == None: + startaddress = self.last_address + for i, value in enumerate(values): + self.write_int24(startaddress + (i * 3), value) + + def write_int32s(self, startaddress, values): + if startaddress == None: + startaddress = self.last_address + for i, value in enumerate(values): + self.write_int32(startaddress + (i * 4), value) + + def write_to_file(self, file): + self.update_crc() + with open(file, 'wb') as outfile: + outfile.write(self.buffer) + + def update_crc(self): + t1 = t2 = t3 = t4 = t5 = t6 = 0xDF26F436 + u32 = 0xFFFFFFFF + + cur = 0x1000 + while cur < 0x00101000: + d = self.read_int32(cur) + + if ((t6 + d) & u32) < t6: + t4 += 1 + + t6 = (t6+d) & u32 + t3 ^= d + shift = d & 0x1F + r = ((d << shift) | (d >> (32 - shift))) & u32 + t5 = (t5 + r) & u32 + + if t2 > d: + t2 ^= r + else: + t2 ^= t6 ^ d + + data2 = self.read_int32(0x750 + (cur & 0xFF)) + t1 += data2 ^ d + t1 &= u32 + + cur += 4 + + crc0 = t6 ^ t4 ^ t3 + crc1 = t5 ^ t2 ^ t1 + + # Finally write the crc back to the rom + self.write_int32s(0x10, [crc0, crc1]) + + +def read_rom(stream): + "Reads rom into bytearray" + buffer = bytearray(stream.read()) + return buffer + + +def int16_as_bytes(value): + value = value & 0xFFFF + return [(value >> 8) & 0xFF, value & 0xFF] + +def int24_as_bytes(value): + value = value & 0xFFFFFFFF + return [(value >> 16) & 0xFF, (value >> 8) & 0xFF, value & 0xFF] + +def int32_as_bytes(value): + value = value & 0xFFFFFFFF + return [(value >> 24) & 0xFF, (value >> 16) & 0xFF, (value >> 8) & 0xFF, value & 0xFF] + +def bytes_as_int16(values): + return (values[0] << 8) | values[1] + +def bytes_as_int24(values): + return (values[0] << 16) | (values[1] << 8) | values[2] + +def bytes_as_int32(values): + return (values[0] << 24) | (values[1] << 16) | (values[2] << 8) | values[3] + + + + +def patch_rom(world, rom): + with open(local_path('data/base2current.json'), 'r') as stream: + patches = json.load(stream) + for patch in patches: + if isinstance(patch, dict): + for baseaddress, values in patch.items(): + rom.write_bytes(int(baseaddress), values) + + # Can always return to youth + rom.write_byte(0xCB6844, 0x35) + rom.write_byte(0x253C0E2, 0x03) # Moves sheik from pedestal + + # Fix child shooting gallery reward to be static + rom.write_bytes(0xD35EFC, [0x00, 0x00, 0x00, 0x00]) + + # Fix target in woods reward to be static + rom.write_bytes(0xE59CD4, [0x00, 0x00, 0x00, 0x00]) + + # Fix GS rewards to be static + rom.write_bytes(0xEA3934, [0x00, 0x00, 0x00, 0x00]) + rom.write_bytes(0xEA3940 , [0x10, 0x00]) + + # Fix horseback archery rewards to be static + rom.write_byte(0xE12BA5, 0x00) + rom.write_byte(0xE12ADD, 0x00) + + # Fix adult shooting gallery reward to be static + rom.write_byte(0xD35F55, 0x00) + + # Fix deku theater rewards to be static + rom.write_bytes(0xEC9A7C, [0x00, 0x00, 0x00, 0x00]) #Sticks + rom.write_byte(0xEC9CD5, 0x00) #Nuts + + # Fix deku scrub who sells stick upgrade + rom.write_bytes(0xDF8060, [0x00, 0x00, 0x00, 0x00]) + + # Fix deku scrub who sells nut upgrade + rom.write_bytes(0xDF80D4, [0x00, 0x00, 0x00, 0x00]) + + # Fix rolling goron as child reward to be static + rom.write_bytes(0xED2960, [0x00, 0x00, 0x00, 0x00]) + + # Fix proximity text boxes (Navi) (Part 1) + rom.write_bytes(0xDF8B84, [0x00, 0x00, 0x00, 0x00]) + + # Fix final magic bean to cost 99 + rom.write_byte(0xE20A0F, 0x63) + rom.write_bytes(0x94FCDD, [0x08, 0x39, 0x39]) + + # Remove intro cutscene + rom.write_bytes(0xB06BBA, [0x00, 0x00]) + + # Remove locked door to Boss Key Chest in Fire Temple + rom.write_byte(0x22D82B7, 0x3F) + + # Change Bombchi Shop to be always open + rom.write_int32(0xC6CEDC, 0x240B0001) # li t3, 1 + + if world.bombchus_in_logic: + # Change Bowling Alley check to bombchus (Part 1) + rom.write_bytes(0x00E2D714, [0x81, 0xEF, 0xA6, 0x4C]) + rom.write_bytes(0x00E2D720, [0x24, 0x18, 0x00, 0x09, 0x11, 0xF8, 0x00, 0x06]) + + # Change Bowling Alley check to bombchus (Part 2) + rom.write_bytes(0x00E2D890, [0x81, 0x6B, 0xA6, 0x4C, 0x24, 0x0C, 0x00, 0x09, 0x51, 0x6C, 0x00, 0x0A]) + + # Cannot buy bombchu refills without Bombchus + rom.write_int32s(0xC01078, + [0x3C098012, # lui t1, 0x8012 + 0x812AA64C, # lb t2, -0x59B4(t1) ; bombchu item (SAVE_CONTEXT + 0x7C) + 0x340B0009, # li t3, 9 + 0x114B0002, # beq t2, t3, @@return ; if has bombchu, return 1 (can buy) + 0x34020000, # li v0, 0 + 0x34020002]) # li v0, 2 ; else, return 2 (can't buy) + else: + # Change Bowling Alley check to Bomb Bag (Part 1) + rom.write_bytes(0x00E2D716, [0xA6, 0x72]) + rom.write_byte(0x00E2D723, 0x18) + + # Change Bowling Alley check to Bomb Bag (Part 2) + rom.write_bytes(0x00E2D892, [0xA6, 0x72]) + rom.write_byte(0x00E2D897, 0x18) + + # Change Bazaar check to Bomb Bag (Child?) + rom.write_bytes(0x00C0082A, [0x00, 0x18]) + rom.write_bytes(0x00C0082C, [0x00, 0x0E, 0X74, 0X02]) + rom.write_byte(0x00C00833, 0xA0) + + # Change Bazaar check to Bomb Bag (Adult?) + rom.write_bytes(0x00DF7A8E, [0x00, 0x18]) + rom.write_bytes(0x00DF7A90, [0x00, 0x0E, 0X74, 0X02]) + rom.write_byte(0x00DF7A97, 0xA0) + + # Change Goron Shop check to Bomb Bag + rom.write_bytes(0x00C6ED86, [0x00, 0xA2]) + rom.write_bytes(0x00C6ED8A, [0x00, 0x18]) + + # Change graveyard graves to not allow grabbing on to the ledge + rom.write_byte(0x0202039D, 0x20) + rom.write_byte(0x0202043C, 0x24) + + # Fix Link the Goron to always work + rom.write_bytes(0xED2FAC, [0x80, 0x6E, 0x0F, 0x18]) + rom.write_bytes(0xED2FEC, [0x24, 0x0A, 0x00, 0x00]) + rom.write_bytes(0xAE74D8, [0x24, 0x0E, 0x00, 0x00]) + + # Fix King Zora Thawed to always work + rom.write_bytes(0xE55C4C, [0x00, 0x00, 0x00, 0x00]) + rom.write_bytes(0xE56290, [0x00, 0x00, 0x00, 0x00]) + rom.write_bytes(0xE56298, [0x00, 0x00, 0x00, 0x00]) + + # Fix Castle Courtyard to check for meeting Zelda, not Zelda fleeing, to block you + rom.write_bytes(0xCD5E76, [0x0E, 0xDC]) + rom.write_bytes(0xCD5E12, [0x0E, 0xDC]) + + # Cutscene for all medallions never triggers when leaving shadow or spirit temples(hopefully stops warp to colossus on shadow completion with boss reward shuffle) + rom.write_byte(0xACA409, 0xAD) + rom.write_byte(0xACA49D, 0xCE) + + # Speed Zelda's Letter scene + rom.write_bytes(0x290E08E, [0x05, 0xF0]) + rom.write_byte(0xEFCBA7, 0x08) + rom.write_byte(0xEFE7C7, 0x05) + #rom.write_byte(0xEFEAF7, 0x08) + #rom.write_byte(0xEFE7C7, 0x05) + rom.write_bytes(0xEFE938, [0x00, 0x00, 0x00, 0x00]) + rom.write_bytes(0xEFE948, [0x00, 0x00, 0x00, 0x00]) + rom.write_bytes(0xEFE950, [0x00, 0x00, 0x00, 0x00]) + + # Speed Zelda escaping from Hyrule Castle + Block_code = [0x00, 0x00, 0x00, 0x01, 0x00, 0x21, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02] + rom.write_bytes(0x1FC0CF8, Block_code) + + # Speed learning Zelda's Lullaby + rom.write_int32s(0x02E8E90C, [0x000003E8, 0x00000001]) # Terminator Execution + if world.shuffle_song_items: + rom.write_int16s(None, [0x0073, 0x001, 0x0002, 0x0002]) # ID, start, end, end + else: + rom.write_int16s(None, [0x0073, 0x003B, 0x003C, 0x003C]) # ID, start, end, end + + + rom.write_int32s(0x02E8E91C, [0x00000013, 0x0000000C]) # Textbox, Count + if world.shuffle_song_items: + rom.write_int16s(None, [0xFFFF, 0x0000, 0x0010, 0xFFFF, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + else: + rom.write_int16s(None, [0x0017, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 + rom.write_int16s(None, [0x00D4, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + + # Speed learning Sun's Song + if world.shuffle_song_items: + rom.write_int32(0x0332A4A4, 0xFFFFFFFF) # Header: frame_count + else: + rom.write_int32(0x0332A4A4, 0x0000003C) # Header: frame_count + + rom.write_int32s(0x0332A868, [0x00000013, 0x00000008]) # Textbox, Count + rom.write_int16s(None, [0x0018, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 + rom.write_int16s(None, [0x00D3, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + + # Speed learning Saria's Song + if world.shuffle_song_items: + rom.write_int32(0x020B1734, 0xFFFFFFFF) # Header: frame_count + else: + rom.write_int32(0x020B1734, 0x0000003C) # Header: frame_count + + rom.write_int32s(0x20B1DA8, [0x00000013, 0x0000000C]) # Textbox, Count + rom.write_int16s(None, [0x0015, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 + rom.write_int16s(None, [0x00D1, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + + rom.write_int32s(0x020B19C0, [0x0000000A, 0x00000006]) # Link, Count + rom.write_int16s(0x020B19C8, [0x0011, 0x0000, 0x0010, 0x0000]) #action, start, end, ???? + rom.write_int16s(0x020B19F8, [0x003E, 0x0011, 0x0020, 0x0000]) #action, start, end, ???? + rom.write_int32s(None, [0x80000000, # ??? + 0x00000000, 0x000001D4, 0xFFFFF731, # start_XYZ + 0x00000000, 0x000001D4, 0xFFFFF712]) # end_XYZ + + # Speed learning Epona's Song + rom.write_int32s(0x029BEF60, [0x000003E8, 0x00000001]) # Terminator Execution + if world.shuffle_song_items: + rom.write_int16s(None, [0x005E, 0x0001, 0x0002, 0x0002]) # ID, start, end, end + else: + rom.write_int16s(None, [0x005E, 0x000A, 0x000B, 0x000B]) # ID, start, end, end + + rom.write_int32s(0x029BECB0, [0x00000013, 0x00000002]) # Textbox, Count + if world.shuffle_song_items: + rom.write_int16s(None, [0xFFFF, 0x0000, 0x0009, 0xFFFF, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + else: + rom.write_int16s(None, [0x00D2, 0x0000, 0x0009, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + rom.write_int16s(None, [0xFFFF, 0x000A, 0x003C, 0xFFFF, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + + # Speed learning Song of Time + rom.write_int32s(0x0252FB98, [0x000003E8, 0x00000001]) # Terminator Execution + if world.shuffle_song_items: + rom.write_int16s(None, [0x0035, 0x0001, 0x0002, 0x0002]) # ID, start, end, end + else: + rom.write_int16s(None, [0x0035, 0x003B, 0x003C, 0x003C]) # ID, start, end, end + + rom.write_int32s(0x0252FC80, [0x00000013, 0x0000000C]) # Textbox, Count + if world.shuffle_song_items: + rom.write_int16s(None, [0xFFFF, 0x0000, 0x0010, 0xFFFF, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + else: + rom.write_int16s(None, [0x0019, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 + rom.write_int16s(None, [0x00D5, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + + rom.write_int32(0x01FC3B84, 0xFFFFFFFF) # Other Header?: frame_count + + # Speed learning Song of Storms + if world.shuffle_song_items: + rom.write_int32(0x03041084, 0xFFFFFFFF) # Header: frame_count + else: + rom.write_int32(0x03041084, 0x0000000A) # Header: frame_count + + rom.write_int32s(0x03041088, [0x00000013, 0x00000002]) # Textbox, Count + rom.write_int16s(None, [0x00D6, 0x0000, 0x0009, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + rom.write_int16s(None, [0xFFFF, 0x00BE, 0x00C8, 0xFFFF, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + + # Speed learning Minuet of Forest + if world.shuffle_song_items: + rom.write_int32(0x020AFF84, 0xFFFFFFFF) # Header: frame_count + else: + rom.write_int32(0x020AFF84, 0x0000003C) # Header: frame_count + + rom.write_int32s(0x020B0800, [0x00000013, 0x0000000A]) # Textbox, Count + rom.write_int16s(None, [0x000F, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 + rom.write_int16s(None, [0x0073, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + + rom.write_int32s(0x020AFF88, [0x0000000A, 0x00000005]) # Link, Count + rom.write_int16s(0x020AFF90, [0x0011, 0x0000, 0x0010, 0x0000]) #action, start, end, ???? + rom.write_int16s(0x020AFFC1, [0x003E, 0x0011, 0x0020, 0x0000]) #action, start, end, ???? + + rom.write_int32s(0x020B0488, [0x00000056, 0x00000001]) # Music Change, Count + rom.write_int16s(None, [0x003F, 0x0021, 0x0022, 0x0000]) #action, start, end, ???? + + rom.write_int32s(0x020B04C0, [0x0000007C, 0x00000001]) # Music Fade Out, Count + rom.write_int16s(None, [0x0004, 0x0000, 0x0000, 0x0000]) #action, start, end, ???? + + # Speed learning Bolero of Fire + if world.shuffle_song_items: + rom.write_int32(0x0224B5D4, 0xFFFFFFFF) # Header: frame_count + else: + rom.write_int32(0x0224B5D4, 0x0000003C) # Header: frame_count + + rom.write_int32s(0x0224D7E8, [0x00000013, 0x0000000A]) # Textbox, Count + rom.write_int16s(None, [0x0010, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 + rom.write_int16s(None, [0x0074, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + + rom.write_int32s(0x0224B5D8, [0x0000000A, 0x0000000B]) # Link, Count + rom.write_int16s(0x0224B5E0, [0x0011, 0x0000, 0x0010, 0x0000]) #action, start, end, ???? + rom.write_int16s(0x0224B610, [0x003E, 0x0011, 0x0020, 0x0000]) #action, start, end, ???? + + rom.write_int32s(0x0224B7F0, [0x0000002F, 0x0000000E]) # Sheik, Count + rom.write_int16s(0x0224B7F8, [0x0000]) #action + rom.write_int16s(0x0224B828, [0x0000]) #action + rom.write_int16s(0x0224B858, [0x0000]) #action + rom.write_int16s(0x0224B888, [0x0000]) #action + + # Speed learning Serenade of Water + if world.shuffle_song_items: + rom.write_int32(0x02BEB254, 0xFFFFFFFF) # Header: frame_count + else: + rom.write_int32(0x02BEB254, 0x0000003C) # Header: frame_count + + rom.write_int32s(0x02BEC880, [0x00000013, 0x00000010]) # Textbox, Count + rom.write_int16s(None, [0x0011, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 + rom.write_int16s(None, [0x0075, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + + rom.write_int32s(0x02BEB258, [0x0000000A, 0x0000000F]) # Link, Count + rom.write_int16s(0x02BEB260, [0x0011, 0x0000, 0x0010, 0x0000]) #action, start, end, ???? + rom.write_int16s(0x02BEB290, [0x003E, 0x0011, 0x0020, 0x0000]) #action, start, end, ???? + + rom.write_int32s(0x02BEB530, [0x0000002F, 0x00000006]) # Sheik, Count + rom.write_int16s(0x02BEB538, [0x0000, 0x0000, 0x018A, 0x0000]) #action, start, end, ???? + rom.write_int32s(None, [0x1BBB0000, # ??? + 0xFFFFFB10, 0x8000011A, 0x00000330, # start_XYZ + 0xFFFFFB10, 0x8000011A, 0x00000330]) # end_XYZ + + rom.write_int32s(0x02BEC848, [0x00000056, 0x00000001]) # Music Change, Count + rom.write_int16s(None, [0x0059, 0x0021, 0x0022, 0x0000]) #action, start, end, ???? + + # Speed learning Nocturne of Shadow + rom.write_int32s(0x01FFE458, [0x000003E8, 0x00000001]) # Other Scene? Terminator Execution + rom.write_int16s(None, [0x002F, 0x0001, 0x0002, 0x0002]) # ID, start, end, end + + rom.write_int32(0x01FFFDF4, 0x0000003C) # Header: frame_count + + rom.write_int32s(0x02000FD8, [0x00000013, 0x0000000E]) # Textbox, Count + if world.shuffle_song_items: + rom.write_int16s(None, [0xFFFF, 0x0000, 0x0010, 0xFFFF, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + else: + rom.write_int16s(None, [0x0013, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 + rom.write_int16s(None, [0x0077, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + + rom.write_int32s(0x02000128, [0x000003E8, 0x00000001]) # Terminator Execution + if world.shuffle_song_items: + rom.write_int16s(None, [0x0032, 0x0001, 0x0002, 0x0002]) # ID, start, end, end + else: + rom.write_int16s(None, [0x0032, 0x003A, 0x003B, 0x003B]) # ID, start, end, end + + # Speed learning Requiem of Spirit + rom.write_int32(0x0218AF14, 0x0000003C) # Header: frame_count + + rom.write_int32s(0x0218C574, [0x00000013, 0x00000008]) # Textbox, Count + if world.shuffle_song_items: + rom.write_int16s(None, [0xFFFF, 0x0000, 0x0010, 0xFFFF, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + else: + rom.write_int16s(None, [0x0012, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 + rom.write_int16s(None, [0x0076, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + + rom.write_int32s(0x0218B478, [0x000003E8, 0x00000001]) # Terminator Execution + if world.shuffle_song_items: + rom.write_int16s(None, [0x0030, 0x0001, 0x0002, 0x0002]) # ID, start, end, end + else: + rom.write_int16s(None, [0x0030, 0x003A, 0x003B, 0x003B]) # ID, start, end, end + + rom.write_int32s(0x0218AF18, [0x0000000A, 0x0000000B]) # Link, Count + rom.write_int16s(0x0218AF20, [0x0011, 0x0000, 0x0010, 0x0000]) #action, start, end, ???? + rom.write_int32s(None, [0x40000000, # ??? + 0xFFFFFAF9, 0x00000008, 0x00000001, # start_XYZ + 0xFFFFFAF9, 0x00000008, 0x00000001, # end_XYZ + 0x0F671408, 0x00000000, 0x00000001]) # normal_XYZ + rom.write_int16s(0x0218AF50, [0x003E, 0x0011, 0x0020, 0x0000]) #action, start, end, ???? + + # Speed learning Prelude of Light + if world.shuffle_song_items: + rom.write_int32(0x0252FD24, 0xFFFFFFFF) # Header: frame_count + else: + rom.write_int32(0x0252FD24, 0x0000003C) # Header: frame_count + + rom.write_int32s(0x02531320, [0x00000013, 0x0000000E]) # Textbox, Count + rom.write_int16s(None, [0x0014, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 + rom.write_int16s(None, [0x0078, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + + rom.write_int32s(0x0252FF10, [0x0000002F, 0x00000009]) # Sheik, Count + rom.write_int16s(0x0252FF18, [0x0006, 0x0000, 0x0000, 0x0000]) #action, start, end, ???? + + rom.write_int32s(0x025313D0, [0x00000056, 0x00000001]) # Music Change, Count + rom.write_int16s(None, [0x003B, 0x0021, 0x0022, 0x0000]) #action, start, end, ???? + + # Speed scene after Deku Tree + rom.write_bytes(0x2077E20, [0x00, 0x07, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) + rom.write_bytes(0x2078A10, [0x00, 0x0E, 0x00, 0x1F, 0x00, 0x20, 0x00, 0x20]) + Block_code = [0x00, 0x80, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0x00, 0x1E, 0x00, 0x28, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF] + rom.write_bytes(0x2079570, Block_code) + + # Speed scene after Dodongo's Cavern + rom.write_bytes(0x2221E88, [0x00, 0x0C, 0x00, 0x3B, 0x00, 0x3C, 0x00, 0x3C]) + rom.write_bytes(0x2223308, [0x00, 0x81, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00]) + + # Speed scene after Jabu Jabu's Belly + rom.write_bytes(0xCA3530, [0x00, 0x00, 0x00, 0x00]) + rom.write_bytes(0x2113340, [0x00, 0x0D, 0x00, 0x3B, 0x00, 0x3C, 0x00, 0x3C]) + rom.write_bytes(0x2113C18, [0x00, 0x82, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00]) + rom.write_bytes(0x21131D0, [0x00, 0x01, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x3C]) + + # Speed scene after Forest Temple + rom.write_bytes(0xD4ED68, [0x00, 0x45, 0x00, 0x3B, 0x00, 0x3C, 0x00, 0x3C]) + rom.write_bytes(0xD4ED78, [0x00, 0x3E, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00]) + rom.write_bytes(0x207B9D4, [0xFF, 0xFF, 0xFF, 0xFF]) + + # Speed scene after Fire Temple + rom.write_bytes(0x2001848, [0x00, 0x1E, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) + rom.write_bytes(0xD100B4, [0x00, 0x62, 0x00, 0x3B, 0x00, 0x3C, 0x00, 0x3C]) + rom.write_bytes(0xD10134, [0x00, 0x3C, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00]) + + # Speed scene after Water Temple + rom.write_bytes(0xD5A458, [0x00, 0x15, 0x00, 0x3B, 0x00, 0x3C, 0x00, 0x3C]) + rom.write_bytes(0xD5A3A8, [0x00, 0x3D, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00]) + rom.write_bytes(0x20D0D20, [0x00, 0x29, 0x00, 0xC7, 0x00, 0xC8, 0x00, 0xC8]) + + # Speed scene after Shadow Temple + rom.write_bytes(0xD13EC8, [0x00, 0x61, 0x00, 0x3B, 0x00, 0x3C, 0x00, 0x3C]) + rom.write_bytes(0xD13E18, [0x00, 0x41, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00]) + + # Speed scene after Spirit Temple + rom.write_bytes(0xD3A0A8, [0x00, 0x60, 0x00, 0x3B, 0x00, 0x3C, 0x00, 0x3C]) + rom.write_bytes(0xD39FF0, [0x00, 0x3F, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00]) + + # Speed Nabooru defeat scene + rom.write_bytes(0x2F5AF84, [0x00, 0x00, 0x00, 0x05]) + rom.write_bytes(0x2F5C7DA, [0x00, 0x01, 0x00, 0x02]) + rom.write_bytes(0x2F5C7A2, [0x00, 0x03, 0x00, 0x04]) + rom.write_byte(0x2F5B369, 0x09) + rom.write_byte(0x2F5B491, 0x04) + rom.write_byte(0x2F5B559, 0x04) + rom.write_byte(0x2F5B621, 0x04) + rom.write_byte(0x2F5B761, 0x07) + + # Speed scene with all medallions + rom.write_bytes(0x2512680, [0x00, 0x74, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) + + # Speed collapse of Ganon's Tower + rom.write_bytes(0x33FB328, [0x00, 0x76, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) + + # Speed Phantom Ganon defeat scene + rom.write_bytes(0xC944D8, [0x00, 0x00, 0x00, 0x00]) + rom.write_bytes(0xC94548, [0x00, 0x00, 0x00, 0x00]) + rom.write_bytes(0xC94730, [0x00, 0x00, 0x00, 0x00]) + rom.write_bytes(0xC945A8, [0x00, 0x00, 0x00, 0x00]) + rom.write_bytes(0xC94594, [0x00, 0x00, 0x00, 0x00]) + + # Speed Twinrova defeat scene + rom.write_bytes(0xD678CC, [0x24, 0x01, 0x03, 0xA2, 0xA6, 0x01, 0x01, 0x42]) + rom.write_bytes(0xD67BA4, [0x10, 0x00]) + + # Speed scenes during final battle + # Ganondorf battle end + rom.write_byte(0xD82047, 0x09) + # Zelda descends + rom.write_byte(0xD82AB3, 0x66) + rom.write_byte(0xD82FAF, 0x65) + rom.write_bytes(0xD82D2E, [0x04, 0x1F]) + rom.write_bytes(0xD83142, [0x00, 0x6B]) + rom.write_bytes(0xD82DD8, [0x00, 0x00, 0x00, 0x00]) + rom.write_bytes(0xD82ED4, [0x00, 0x00, 0x00, 0x00]) + rom.write_byte(0xD82FDF, 0x33) + # After tower collapse + rom.write_byte(0xE82E0F, 0x04) + # Ganon intro + rom.write_bytes(0xE83D28, [0x00, 0x00, 0x00, 0x00]) + rom.write_bytes(0xE83B5C, [0x00, 0x00, 0x00, 0x00]) + rom.write_bytes(0xE84C80, [0x10, 0x00]) + + # Speed completion of the trials in Ganon's Castle + rom.write_bytes(0x31A8090, [0x00, 0x6B, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) #Forest + rom.write_bytes(0x31A9E00, [0x00, 0x6E, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) #Fire + rom.write_bytes(0x31A8B18, [0x00, 0x6C, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) #Water + rom.write_bytes(0x31A9430, [0x00, 0x6D, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) #Shadow + rom.write_bytes(0x31AB200, [0x00, 0x70, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) #Spirit + rom.write_bytes(0x31AA830, [0x00, 0x6F, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) #Light + + # Speed obtaining Fairy Ocarina + rom.write_bytes(0x2150CD0, [0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x30]) + Block_code = [0xFF, 0xFF, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0x00, 0x3C, 0x00, 0x81, 0xFF, 0xFF] + rom.write_bytes(0x2151240, Block_code) + rom.write_bytes(0x2150E20, [0xFF, 0xFF, 0xFA, 0x4C]) + + # Speed Zelda Light Arrow cutscene + rom.write_bytes(0x2531B40, [0x00, 0x28, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) + rom.write_bytes(0x2532FBC, [0x00, 0x75]) + rom.write_bytes(0x2532FEA, [0x00, 0x75, 0x00, 0x80]) + rom.write_byte(0x2533115, 0x05) + rom.write_bytes(0x2533141, [0x06, 0x00, 0x06, 0x00, 0x10]) + rom.write_bytes(0x2533171, [0x0F, 0x00, 0x11, 0x00, 0x40]) + rom.write_bytes(0x25331A1, [0x07, 0x00, 0x41, 0x00, 0x65]) + rom.write_bytes(0x2533642, [0x00, 0x50]) + rom.write_byte(0x253389D, 0x74) + rom.write_bytes(0x25338A4, [0x00, 0x72, 0x00, 0x75, 0x00, 0x79]) + rom.write_bytes(0x25338BC, [0xFF, 0xFF]) + rom.write_bytes(0x25338C2, [0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF]) + rom.write_bytes(0x25339C2, [0x00, 0x75, 0x00, 0x76]) + rom.write_bytes(0x2533830, [0x00, 0x31, 0x00, 0x81, 0x00, 0x82, 0x00, 0x82]) + + # Speed Bridge of Light cutscene + rom.write_bytes(0x292D644, [0x00, 0x00, 0x00, 0xA0]) + rom.write_bytes(0x292D680, [0x00, 0x02, 0x00, 0x0A, 0x00, 0x6C, 0x00, 0x00]) + rom.write_bytes(0x292D6E8, [0x00, 0x27]) + rom.write_bytes(0x292D718, [0x00, 0x32]) + rom.write_bytes(0x292D810, [0x00, 0x02, 0x00, 0x3C]) + rom.write_bytes(0x292D924, [0xFF, 0xFF, 0x00, 0x14, 0x00, 0x96, 0xFF, 0xFF]) + + # Remove remaining owls + rom.write_bytes(0x1FE30CE, [0x01, 0x4B]) + rom.write_bytes(0x1FE30DE, [0x01, 0x4B]) + rom.write_bytes(0x1FE30EE, [0x01, 0x4B]) + rom.write_bytes(0x205909E, [0x00, 0x3F]) + rom.write_byte(0x2059094, 0x80) + + # Darunia won't dance + rom.write_bytes(0x22769E4, [0xFF, 0xFF, 0xFF, 0xFF]) + + # Zora moves quickly + rom.write_bytes(0xE56924, [0x00, 0x00, 0x00, 0x00]) + + # Speed Jabu Jabu swallowing Link + rom.write_bytes(0xCA0784, [0x00, 0x18, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) + + # Ruto no longer points to Zora Sapphire + rom.write_bytes(0xD03BAC, [0xFF, 0xFF, 0xFF, 0xFF]) + + # Ruto never disappears from Jabu Jabu's Belly + rom.write_byte(0xD01EA3, 0x00) + + # Speed up Epona race start + rom.write_bytes(0x29BE984, [0x00, 0x00, 0x00, 0x02]) + rom.write_bytes(0x29BE9CA, [0x00, 0x01, 0x00, 0x02]) + + # Speed start of Horseback Archery + #rom.write_bytes(0x21B2064, [0x00, 0x00, 0x00, 0x02]) + #rom.write_bytes(0x21B20AA, [0x00, 0x01, 0x00, 0x02]) + + # Speed up Epona escape + rom.write_bytes(0x1FC8B36, [0x00, 0x2A]) + + # Speed up draining the well + rom.write_bytes(0xE0A010, [0x00, 0x2A, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) + rom.write_bytes(0x2001110, [0x00, 0x2B, 0x00, 0xB7, 0x00, 0xB8, 0x00, 0xB8]) + + # Speed up opening the royal tomb for both child and adult + rom.write_bytes(0x2025026, [0x00, 0x01]) + rom.write_bytes(0x2023C86, [0x00, 0x01]) + rom.write_byte(0x2025159, 0x02) + rom.write_byte(0x2023E19, 0x02) + + #Speed opening of Door of Time + rom.write_bytes(0xE0A176, [0x00, 0x02]) + rom.write_bytes(0xE0A35A, [0x00, 0x01, 0x00, 0x02]) + + # Poacher's Saw no longer messes up Deku Theater + rom.write_bytes(0xAE72CC, [0x00, 0x00, 0x00, 0x00]) + + # Learning Serenade tied to opening chest in room + Block_code = [0x3C, 0x0F, 0x80, 0x1D, 0x81, 0xE8, 0xA1, 0xDB, 0x24, 0x19, 0x00, 0x04, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8C, 0xA2, 0x1C, 0x44, + 0x00, 0x00, 0x00, 0x00] + rom.write_bytes(0xC7BCF0, Block_code) + + # Dampe Chest spawn condition looks at chest flag instead of having obtained hookshot + Block_code = [0x93, 0x18, 0xAE, 0x7E, 0x27, 0xA5, 0x00, 0x24, 0x33, 0x19, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x00] + rom.write_bytes(0xDFEC40, Block_code) + + # Darunia sets an event flag and checks for it + Block_code = [0x24, 0x19, 0x00, 0x40, 0x8F, 0x09, 0xB4, 0xA8, 0x01, 0x39, 0x40, 0x24, + 0x01, 0x39, 0xC8, 0x25, 0xAF, 0x19, 0xB4, 0xA8, 0x24, 0x09, 0x00, 0x06] + rom.write_bytes(0xCF1AB8, Block_code) + + # Change Prelude CS to check for medallion + rom.write_bytes(0x00C805E6, [0x00, 0xA6]) + rom.write_bytes(0x00C805F2, [0x00, 0x01]) + + # Change Nocturne CS to check for medallions + rom.write_bytes(0x00ACCD8E, [0x00, 0xA6]) + rom.write_bytes(0x00ACCD92, [0x00, 0x01]) + rom.write_bytes(0x00ACCD9A, [0x00, 0x02]) + rom.write_bytes(0x00ACCDA2, [0x00, 0x04]) + + # Change King Zora to move even if Zora Sapphire is in inventory + rom.write_bytes(0x00E55BB0, [0x85, 0xCE, 0x8C, 0x3C]) + rom.write_bytes(0x00E55BB4, [0x84, 0x4F, 0x0E, 0xDA]) + + # Remove extra Forest Temple medallions + rom.write_bytes(0x00D4D37C, [0x00, 0x00, 0x00, 0x00]) + + # Remove extra Fire Temple medallions + rom.write_bytes(0x00AC9754, [0x00, 0x00, 0x00, 0x00]) + rom.write_bytes(0x00D0DB8C, [0x00, 0x00, 0x00, 0x00]) + + # Remove extra Water Temple medallions + rom.write_bytes(0x00D57F94, [0x00, 0x00, 0x00, 0x00]) + + # Remove extra Spirit Temple medallions + rom.write_bytes(0x00D370C4, [0x00, 0x00, 0x00, 0x00]) + rom.write_bytes(0x00D379C4, [0x00, 0x00, 0x00, 0x00]) + + # Remove extra Shadow Temple medallions + rom.write_bytes(0x00D116E0, [0x00, 0x00, 0x00, 0x00]) + + # Change Mido, Saria, and Kokiri to check for Deku Tree complete flag + # bitwise pointer for 0x80 + kokiriAddresses = [0xE52836, 0xE53A56, 0xE51D4E, 0xE51F3E, 0xE51D96, 0xE51E1E, 0xE51E7E, 0xE51EDE, 0xE51FC6, 0xE51F96, 0xE293B6, 0xE29B8E, 0xE62EDA, 0xE630D6, 0xE62642, 0xE633AA, 0xE6369E] + for kokiri in kokiriAddresses: + rom.write_bytes(kokiri, [0x8C, 0x0C]) + # Kokiri + rom.write_bytes(0xE52838, [0x94, 0x48, 0x0E, 0xD4]) + rom.write_bytes(0xE53A58, [0x94, 0x49, 0x0E, 0xD4]) + rom.write_bytes(0xE51D50, [0x94, 0x58, 0x0E, 0xD4]) + rom.write_bytes(0xE51F40, [0x94, 0x4B, 0x0E, 0xD4]) + rom.write_bytes(0xE51D98, [0x94, 0x4B, 0x0E, 0xD4]) + rom.write_bytes(0xE51E20, [0x94, 0x4A, 0x0E, 0xD4]) + rom.write_bytes(0xE51E80, [0x94, 0x59, 0x0E, 0xD4]) + rom.write_bytes(0xE51EE0, [0x94, 0x4E, 0x0E, 0xD4]) + rom.write_bytes(0xE51FC8, [0x94, 0x49, 0x0E, 0xD4]) + rom.write_bytes(0xE51F98, [0x94, 0x58, 0x0E, 0xD4]) + # Saria + rom.write_bytes(0xE293B8, [0x94, 0x78, 0x0E, 0xD4]) + rom.write_bytes(0xE29B90, [0x94, 0x68, 0x0E, 0xD4]) + # Mido + rom.write_bytes(0xE62EDC, [0x94, 0x6F, 0x0E, 0xD4]) + rom.write_bytes(0xE630D8, [0x94, 0x4F, 0x0E, 0xD4]) + rom.write_bytes(0xE62644, [0x94, 0x6F, 0x0E, 0xD4]) + rom.write_bytes(0xE633AC, [0x94, 0x68, 0x0E, 0xD4]) + rom.write_bytes(0xE636A0, [0x94, 0x48, 0x0E, 0xD4]) + + # Change adult Kokiri Forest to check for Forest Temple complete flag + rom.write_bytes(0xE5369E, [0xB4, 0xAC]) + rom.write_bytes(0xD5A83C, [0x80, 0x49, 0x0E, 0xDC]) + + # Change adult Goron City to check for Fire Temple complete flag + rom.write_bytes(0xED59DC, [0x80, 0xC9, 0x0E, 0xDC]) + + # Change Pokey to check DT complete flag + rom.write_bytes(0xE5400A, [0x8C, 0x4C]) + rom.write_bytes(0xE5400E, [0xB4, 0xA4]) + if world.open_forest: + rom.write_bytes(0xE5401C, [0x14, 0x0B]) + + # Fix Shadow Temple to check for different rewards for scene + rom.write_bytes(0xCA3F32, [0x00, 0x00, 0x25, 0x4A, 0x00, 0x10]) + + # Fix Spirit Temple to check for different rewards for scene + rom.write_bytes(0xCA3EA2, [0x00, 0x00, 0x25, 0x4A, 0x00, 0x08]) + + # Fix Biggoron to check a different flag. + rom.write_byte(0xED329B, 0x72) + rom.write_byte(0xED43E7, 0x72) + rom.write_bytes(0xED3370, [0x3C, 0x0D, 0x80, 0x12]) + rom.write_bytes(0xED3378, [0x91, 0xB8, 0xA6, 0x42, 0xA1, 0xA8, 0xA6, 0x42]) + rom.write_bytes(0xED6574, [0x00, 0x00, 0x00, 0x00]) + + # Remove the check on the number of days that passed for claim check. + rom.write_bytes(0xED4470, [0x00, 0x00, 0x00, 0x00]) + rom.write_bytes(0xED4498, [0x00, 0x00, 0x00, 0x00]) + + # Fixed reward order for Bombchu Bowling + rom.write_bytes(0xE2E698, [0x80, 0xAA, 0xE2, 0x64]) + rom.write_bytes(0xE2E6A0, [0x80, 0xAA, 0xE2, 0x4C]) + rom.write_bytes(0xE2D440, [0x24, 0x19, 0x00, 0x00]) + + # Make fishing less obnoxious + Block_code = [0x3C, 0x0A, 0x80, 0x12, 0x8D, 0x4A, 0xA5, 0xD4, 0x14, 0x0A, 0x00, 0x06, + 0x31, 0x78, 0x00, 0x01, 0x14, 0x18, 0x00, 0x02, 0x3c, 0x18, 0x42, 0x30, + 0x3C, 0x18, 0x42, 0x50, 0x03, 0xe0, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, + 0x14, 0x18, 0x00, 0x02, 0x3C, 0x18, 0x42, 0x10, 0x3C, 0x18, 0x42, 0x38, + 0x03, 0xE0, 0x00, 0x08] + rom.write_bytes(0x3480C00, Block_code) + rom.write_bytes(0xDBF434, [0x44, 0x98, 0x90, 0x00, 0xE6, 0x52, 0x01, 0x9C]) + rom.write_bytes(0xDBF484, [0x00, 0x00, 0x00, 0x00]) + rom.write_bytes(0xDBF4A8, [0x00, 0x00, 0x00, 0x00]) + rom.write_bytes(0xDCBEAA, [0x42, 0x48]) #set adult fish size requirement + rom.write_bytes(0xDCBF26, [0x42, 0x48]) #set adult fish size requirement + rom.write_bytes(0xDCBF32, [0x42, 0x30]) #set child fish size requirement + rom.write_bytes(0xDCBF9E, [0x42, 0x30]) #set child fish size requirement + + # Dampe always digs something up and first dig is always the Piece of Heart + rom.write_bytes(0xCC3FA8, [0xA2, 0x01, 0x01, 0xF8]) + rom.write_bytes(0xCC4024, [0x00, 0x00, 0x00, 0x00]) + + # Allow owl to always carry the kid down Death Mountain + rom.write_bytes(0xE304F0, [0x24, 0x0E, 0x00, 0x01]) + + # Forbid Sun's Song from a bunch of cutscenes + Suns_scenes = [0x2016FC9, 0x2017219, 0x20173D9, 0x20174C9, 0x2017679, 0x20C1539, 0x20C15D9, 0x21A0719, 0x21A07F9, 0x2E90129, 0x2E901B9, 0x2E90249, 0x225E829, 0x225E939, 0x306D009] + for address in Suns_scenes: + rom.write_byte(address,0x01) + + # Remove forcible text triggers + Wonder_text = [0x27C00C6, 0x27C00D6, 0x27C00E6, 0x27C00F6, 0x27C0106, 0x27C0116, 0x27C0126, 0x27C0136] + for address in Wonder_text: + rom.write_byte(address, 0x02) + rom.write_byte(0x27CE08A, 0x09) + rom.write_byte(0x27CE09A, 0x0F) + Wonder_text = [0x288707A, 0x288708A, 0x288709A, 0x289707A, 0x28C713E, 0x28D91C6] + for address in Wonder_text: + rom.write_byte(address, 0x0C) + Wonder_text = [0x28A60FE, 0x28AE08E, 0x28B917E, 0x28BF172, 0x28BF182, 0x28BF192] + for address in Wonder_text: + rom.write_byte(address, 0x0D) + rom.write_byte(0x28A114E, 0x0E) + rom.write_byte(0x28A610E, 0x0E) + Wonder_text = [0x9367F6, 0x93673D, 0x93679D] + for address in Wonder_text: + rom.write_byte(address, 0x08) + Wonder_text = [0x289707B, 0x28AE08F, 0x28C713F] + for address in Wonder_text: + rom.write_byte(address, 0xAF) + rom.write_byte(0x28A114F, 0x6F) + rom.write_byte(0x28B917F, 0x6F) + rom.write_byte(0x28A60FF, 0xEF) + rom.write_byte(0x28D91C7, 0xEF) + Wonder_text = [0x28A610F, 0x28BF173, 0x28BF183, 0x28BF193] + for address in Wonder_text: + rom.write_byte(address, 0x2F) + Wonder_text = [0x27CE08B, 0x27C00C7, 0x27C00D7, 0x27C0117, 0x27C0127] + for address in Wonder_text: + rom.write_byte(address, 0x3D) + rom.write_byte(0x27C00E7, 0x7D) + rom.write_byte(0x27C00F7, 0x7D) + rom.write_byte(0x27C0107, 0xBD) + rom.write_byte(0x27C0137, 0xBD) + Wonder_text = [0x27C00BC, 0x27C00CC, 0x27C00DC, 0x27C00EC, 0x27C00FC, 0x27C010C, 0x27C011C, 0x27C012C, 0x27CE080, 0x27CE090, 0x2887070, 0x2887080, 0x2887090, 0x2897070, 0x28C7134, 0x28D91BC, 0x28A60F4, 0x28AE084, 0x28B9174, 0x28BF168, 0x28BF178, 0x28BF188, 0x28A1144, 0x28A6104] + for address in Wonder_text: + rom.write_byte(address, 0xFE) + + # Speed dig text for Dampe + rom.write_bytes(0x9532F8, [0x08, 0x08, 0x08, 0x59]) + + # Make item descriptions into a single box + Short_item_descriptions = [0x92EC84, 0x92F9E3, 0x92F2B4, 0x92F37A, 0x92F513, 0x92F5C6, 0x92E93B, 0x92EA12] + for address in Short_item_descriptions: + rom.write_byte(address,0x02) + + # Fix text for Pocket Cucco. + rom.write_byte(0xBEEF45, 0x0B) + rom.write_byte(0x92D41A, 0x2E) + Block_code = [0x59, 0x6f, 0x75, 0x20, 0x67, 0x6f, 0x74, 0x20, 0x61, 0x20, 0x05, 0x41, + 0x50, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x20, 0x43, 0x75, 0x63, 0x63, 0x6f, + 0x2c, 0x20, 0x05, 0x40, 0x6f, 0x6e, 0x65, 0x01, 0x6f, 0x66, 0x20, 0x41, + 0x6e, 0x6a, 0x75, 0x27, 0x73, 0x20, 0x70, 0x72, 0x69, 0x7a, 0x65, 0x64, + 0x20, 0x68, 0x65, 0x6e, 0x73, 0x21, 0x20, 0x49, 0x74, 0x20, 0x66, 0x69, + 0x74, 0x73, 0x20, 0x01, 0x69, 0x6e, 0x20, 0x79, 0x6f, 0x75, 0x72, 0x20, + 0x70, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x02] + rom.write_bytes(0x92D41C, Block_code) + + # DMA in extra code + Block_code = [0xAF, 0xBF, 0x00, 0x1C, 0xAF, 0xA4, 0x01, 0x40, 0x3C, 0x05, 0x03, 0x48, + 0x3C, 0x04, 0x80, 0x40, 0x0C, 0x00, 0x03, 0x7C, 0x24, 0x06, 0x50, 0x00, + 0x0C, 0x10, 0x02, 0x00] + rom.write_bytes(0xB17BB4, Block_code) + Block_code = [0x3C, 0x02, 0x80, 0x12, 0x24, 0x42, 0xD2, 0xA0, 0x24, 0x0E, 0x01, 0x40, + 0xAC, 0x2E, 0xE5, 0x00, 0x03, 0xE0, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00] + rom.write_bytes(0x3480800, Block_code) + rom.write_bytes(0xD270, [0x03, 0x48, 0x00, 0x00, 0x03, 0x48, 0x50, 0x00, 0x03, 0x48, 0x00, 0x00]) + + # Set hooks for various code + rom.write_bytes(0xDBF428, [0x0C, 0x10, 0x03, 0x00]) #Set Fishing Hook + + + # will be populated with data to be written to initial save + # see initial_save.asm and config.asm for more details on specifics + # or just use the following functions to add an entry to the table + initial_save_table = [] + + # will set the bits of value to the offset in the save (or'ing them with what is already there) + def write_bits_to_save(offset, value, filter=None): + nonlocal initial_save_table + + if filter and not filter(value): + return + + initial_save_table += [(offset & 0xFF00) >> 8, offset & 0xFF, 0x00, value] + + + + # will overwrite the byte at offset with the given value + def write_byte_to_save(offset, value, filter=None): + nonlocal initial_save_table + + if filter and not filter(value): + return + + initial_save_table += [(offset & 0xFF00) >> 8, offset & 0xFF, 0x01, value] + + # will overwrite the byte at offset with the given value + def write_bytes_to_save(offset, bytes, filter=None): + for i, value in enumerate(bytes): + write_byte_to_save(offset + i, value, filter) + + # will overwrite the byte at offset with the given value + def write_save_table(rom): + nonlocal initial_save_table + + table_len = len(initial_save_table) + if table_len > 0x400: + raise Exception("The Initial Save Table has exceeded it's maximum capacity: 0x%03X/0x400" % table_len) + rom.write_bytes(0x3481800, initial_save_table) + + + # Initial Save Data + write_bits_to_save(0x003F, 0x02) # Some Biggoron's Sword flag? + + write_bits_to_save(0x00D4 + 0x00 * 0x1C + 0x04 + 0x0, 0x80) # Deku tree switch flag (navi text?) + write_bits_to_save(0x00D4 + 0x00 * 0x1C + 0x04 + 0x1, 0x02) # Deku tree switch flag (navi text?) + write_bits_to_save(0x00D4 + 0x00 * 0x1C + 0x04 + 0x2, 0x80) # Deku tree switch flag (navi text?) + write_bits_to_save(0x00D4 + 0x00 * 0x1C + 0x04 + 0x2, 0x04) # Deku tree switch flag (navi text?) + write_bits_to_save(0x00D4 + 0x01 * 0x1C + 0x04 + 0x2, 0x40) # Dodongo's Cavern switch flag (navi text?) + write_bits_to_save(0x00D4 + 0x01 * 0x1C + 0x04 + 0x2, 0x08) # Dodongo's Cavern switch flag (navi text?) + write_bits_to_save(0x00D4 + 0x01 * 0x1C + 0x04 + 0x2, 0x01) # Dodongo's Cavern switch flag (navi text?) + write_bits_to_save(0x00D4 + 0x02 * 0x1C + 0x04 + 0x0, 0x08) # Inside Jabu-Jabu's Belly switch flag (ruto?) + write_bits_to_save(0x00D4 + 0x02 * 0x1C + 0x04 + 0x0, 0x04) # Inside Jabu-Jabu's Belly switch flag (ruto?) + write_bits_to_save(0x00D4 + 0x02 * 0x1C + 0x04 + 0x0, 0x02) # Inside Jabu-Jabu's Belly switch flag (ruto?) + write_bits_to_save(0x00D4 + 0x02 * 0x1C + 0x04 + 0x0, 0x01) # Inside Jabu-Jabu's Belly switch flag (ruto?) + write_bits_to_save(0x00D4 + 0x02 * 0x1C + 0x04 + 0x1, 0x01) # Inside Jabu-Jabu's Belly switch flag (ruto?) + write_bits_to_save(0x00D4 + 0x03 * 0x1C + 0x04 + 0x0, 0x08) # Forest Temple switch flag (poes?) + write_bits_to_save(0x00D4 + 0x03 * 0x1C + 0x04 + 0x0, 0x01) # Forest Temple switch flag (poes?) + write_bits_to_save(0x00D4 + 0x03 * 0x1C + 0x04 + 0x2, 0x02) # Forest Temple switch flag (poes?) + write_bits_to_save(0x00D4 + 0x03 * 0x1C + 0x04 + 0x2, 0x01) # Forest Temple switch flag (poes?) + write_bits_to_save(0x00D4 + 0x04 * 0x1C + 0x04 + 0x1, 0x08) # Fire Temple switch flag (First locked door?) + write_bits_to_save(0x00D4 + 0x05 * 0x1C + 0x04 + 0x1, 0x01) # Water temple switch flag (navi text?) + write_bits_to_save(0x00D4 + 0x0B * 0x1C + 0x04 + 0x2, 0x01) # Gerudo Training Ground switch flag (command text?) + write_bits_to_save(0x00D4 + 0x51 * 0x1C + 0x04 + 0x2, 0x08) # Hyrule Field switch flag (???) + write_bits_to_save(0x00D4 + 0x55 * 0x1C + 0x04 + 0x0, 0x80) # Kokiri Forest switch flag (???) + write_bits_to_save(0x00D4 + 0x56 * 0x1C + 0x04 + 0x2, 0x40) # Sacred Forest Meadow switch flag (???) + write_bits_to_save(0x00D4 + 0x5B * 0x1C + 0x04 + 0x2, 0x01) # Lost Woods switch flag (???) + write_bits_to_save(0x00D4 + 0x5B * 0x1C + 0x04 + 0x3, 0x80) # Lost Woods switch flag (???) + write_bits_to_save(0x00D4 + 0x5C * 0x1C + 0x04 + 0x0, 0x80) # Desert Colossus switch flag (???) + write_bits_to_save(0x00D4 + 0x5F * 0x1C + 0x04 + 0x3, 0x20) # Hyrule Castle switch flag (???) + + write_bits_to_save(0x0ED4, 0x10) # "Met Deku Tree" + write_bits_to_save(0x0ED5, 0x20) # "Deku Tree Opened Mouth" + write_bits_to_save(0x0ED6, 0x08) # "Rented Horse From Ingo" + write_bits_to_save(0x0EDA, 0x08) # "Began Nabooru Battle" + write_bits_to_save(0x0EDC, 0x80) # "Entered the Master Sword Chamber" + write_bits_to_save(0x0EDD, 0x20) # "Pulled Master Sword from Pedestal" + write_bits_to_save(0x0EE0, 0x80) # "Spoke to Kaepora Gaebora by Lost Woods" + write_bits_to_save(0x0EE7, 0x20) # "Nabooru Captured by Twinrova" + write_bits_to_save(0x0EE7, 0x10) # "Spoke to Nabooru in Spirit Temple" + write_bits_to_save(0x0EED, 0x20) # "Sheik, Spawned at Master Sword Pedestal as Adult" + write_bits_to_save(0x0EED, 0x01) # "Nabooru Ordered to Fight by Twinrova" + write_bits_to_save(0x0EF9, 0x01) # "Greeted by Saria" + write_bits_to_save(0x0F0A, 0x04) # "Spoke to Ingo Once as Adult" + write_bits_to_save(0x0F1A, 0x04) # "Met Darunia in Fire Temple" + + write_bits_to_save(0x0ED7, 0x01) # "Spoke to Child Malon at Castle or Market" + write_bits_to_save(0x0ED7, 0x20) # "Spoke to Child Malon at Ranch" + write_bits_to_save(0x0ED7, 0x40) # "Invited to Sing With Child Malon" + write_bits_to_save(0x0F09, 0x10) # "Met Child Malon at Castle or Market" + write_bits_to_save(0x0F09, 0x20) # "Child Malon Said Epona Was Scared of You" + + write_bits_to_save(0x0F21, 0x04) # "Ruto in JJ (M3) Talk First Time" + write_bits_to_save(0x0F21, 0x02) # "Ruto in JJ (M2) Meet Ruto" + + write_bits_to_save(0x0EE2, 0x01) # "Began Ganondorf Battle" + write_bits_to_save(0x0EE3, 0x80) # "Began Bongo Bongo Battle" + write_bits_to_save(0x0EE3, 0x40) # "Began Barinade Battle" + write_bits_to_save(0x0EE3, 0x20) # "Began Twinrova Battle" + write_bits_to_save(0x0EE3, 0x10) # "Began Morpha Battle" + write_bits_to_save(0x0EE3, 0x08) # "Began Volvagia Battle" + write_bits_to_save(0x0EE3, 0x04) # "Began Phantom Ganon Battle" + write_bits_to_save(0x0EE3, 0x02) # "Began King Dodongo Battle" + write_bits_to_save(0x0EE3, 0x01) # "Began Gohma Battle" + + write_bits_to_save(0x0EE8, 0x01) # "Entered Deku Tree" + write_bits_to_save(0x0EE9, 0x80) # "Entered Temple of Time" + write_bits_to_save(0x0EE9, 0x40) # "Entered Goron City" + write_bits_to_save(0x0EE9, 0x20) # "Entered Hyrule Castle" + write_bits_to_save(0x0EE9, 0x10) # "Entered Zora's Domain" + write_bits_to_save(0x0EE9, 0x08) # "Entered Kakariko Village" + write_bits_to_save(0x0EE9, 0x02) # "Entered Death Mountain Trail" + write_bits_to_save(0x0EE9, 0x01) # "Entered Hyrule Field" + write_bits_to_save(0x0EEA, 0x04) # "Entered Ganon's Castle (Exterior)" + write_bits_to_save(0x0EEA, 0x02) # "Entered Death Mountain Crater" + write_bits_to_save(0x0EEA, 0x01) # "Entered Desert Colossus" + write_bits_to_save(0x0EEB, 0x80) # "Entered Zora's Fountain" + write_bits_to_save(0x0EEB, 0x40) # "Entered Graveyard" + write_bits_to_save(0x0EEB, 0x20) # "Entered Jabu-Jabu's Belly" + write_bits_to_save(0x0EEB, 0x10) # "Entered Lon Lon Ranch" + write_bits_to_save(0x0EEB, 0x08) # "Entered Gerudo's Fortress" + write_bits_to_save(0x0EEB, 0x04) # "Entered Gerudo Valley" + write_bits_to_save(0x0EEB, 0x02) # "Entered Lake Hylia" + write_bits_to_save(0x0EEB, 0x01) # "Entered Dodongo's Cavern" + write_bits_to_save(0x0F08, 0x08) # "Entered Hyrule Castle" + + # Make the Kakariko Gate not open with the MS + if not world.open_kakariko: + rom.write_int32(0xDD3538, 0x34190000) # li t9, 0 + + # Make all chest opening animations fast + if world.fast_chests: + rom.write_int32(0xBDA2E8, 0x240AFFFF) # addiu t2, r0, -1 + # replaces # lb t2, 0x0002 (t1) + + # Set up for Rainbow Bridge dungeons condition + Block_code = [0x15, 0x41, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x80, 0xEA, 0x00, 0xA5, + 0x24, 0x01, 0x00, 0x1C, 0x31, 0x4A, 0x00, 0x1C, 0x08, 0x07, 0x88, 0xD9] + rom.write_bytes(0x3480820, Block_code) + + # Gossip stones resond to stone of agony + Block_code = [0x3C, 0x01, 0x80, 0x12, 0x80, 0x21, 0xA6, 0x75, 0x30, 0x21, 0x00, 0x20, + 0x03, 0xE0, 0x00, 0x08] + # Gossip stones always respond + if(world.hints == 'always'): + Block_code = [0x24, 0x01, 0x00, 0x20, 0x03, 0xE0, 0x00, 0x08] + rom.write_bytes(0x3480840, Block_code) + + # Set up Rainbow Bridge conditions + if world.bridge == 'medallions': + Block_code = [0x80, 0xEA, 0x00, 0xA7, 0x24, 0x01, 0x00, 0x3F, + 0x31, 0x4A, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00] + rom.write_bytes(0xE2B454, Block_code) + elif world.bridge == 'open': + write_bits_to_save(0xEDC, 0x20) # "Rainbow Bridge Built by Sages" + elif world.bridge == 'dungeons': + Block_code = [0x80, 0xEA, 0x00, 0xA7, 0x24, 0x01, 0x00, 0x3F, + 0x08, 0x10, 0x02, 0x08, 0x31, 0x4A, 0x00, 0x3F] + rom.write_bytes(0xE2B454, Block_code) + + if world.open_forest: + write_bits_to_save(0xED5, 0x10) # "Showed Mido Sword & Shield" + + if world.open_door_of_time: + write_bits_to_save(0xEDC, 0x08) # "Opened the Door of Time" + + # "fast-ganon" stuff + if world.no_escape_sequence: + rom.write_bytes(0xD82A12, [0x05, 0x17]) # Sets exit from Ganondorf fight to entrance to Ganon fight + if world.unlocked_ganondorf: + write_bits_to_save(0x00D4 + 0x0A * 0x1C + 0x04 + 0x1, 0x10) # Ganon's Tower switch flag (unlock boss key door) + if world.skipped_trials['Forest']: + write_bits_to_save(0x0EEA, 0x08) # "Completed Forest Trial" + if world.skipped_trials['Fire']: + write_bits_to_save(0x0EEA, 0x40) # "Completed Fire Trial" + if world.skipped_trials['Water']: + write_bits_to_save(0x0EEA, 0x10) # "Completed Water Trial" + if world.skipped_trials['Spirit']: + write_bits_to_save(0x0EE8, 0x20) # "Completed Spirit Trial" + if world.skipped_trials['Shadow']: + write_bits_to_save(0x0EEA, 0x20) # "Completed Shadow Trial" + if world.skipped_trials['Light']: + write_bits_to_save(0x0EEA, 0x80) # "Completed Light Trial" + if world.trials == 0: + write_bits_to_save(0x0EED, 0x08) # "Dispelled Ganon's Tower Barrier" + + # open gerudo fortress + if world.gerudo_fortress == 'open': + write_bits_to_save(0x00A5, 0x40) # Give Gerudo Card + write_bits_to_save(0x0EE7, 0x0F) # Free all 4 carpenters + write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x04 + 0x1, 0x0F) # Thieves' Hideout switch flags (started all fights) + write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x04 + 0x2, 0x01) # Thieves' Hideout switch flags (heard yells/unlocked doors) + write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x04 + 0x3, 0xFE) # Thieves' Hideout switch flags (heard yells/unlocked doors) + write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x0C + 0x2, 0xD4) # Thieves' Hideout collection flags (picked up keys, marks fights finished as well) + elif world.gerudo_fortress == 'fast': + write_bits_to_save(0x0EE7, 0x0E) # Free 3 carpenters + write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x04 + 0x1, 0x0D) # Thieves' Hideout switch flags (started all fights) + write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x04 + 0x2, 0x01) # Thieves' Hideout switch flags (heard yells/unlocked doors) + write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x04 + 0x3, 0xDC) # Thieves' Hideout switch flags (heard yells/unlocked doors) + write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x0C + 0x2, 0xC4) # Thieves' Hideout collection flags (picked up keys, marks fights finished as well) + + # Revert change that Skips the Epona Race + if not world.no_epona_race: + rom.write_int32(0xA9E838, 0x03E00008) + + # skip castle guard stealth sequence + if world.no_guard_stealth: + # change the exit at child/day crawlspace to the end of zelda's goddess cutscene + rom.write_bytes(0x21F60DE, [0x05, 0xF0]) + + ### Load Shop File + from MQ import File, verify_dma, update_dmadata, insert_space, add_relocations + # Move shop actor file to free space + shop_item_file = File({ + 'Name':'En_GirlA', + 'Start':'00C004E0', + 'End':'00C02E00', + 'RemapStart':'03485000', + }) + shop_item_file.relocate(rom) + + # Increase the shop item table size + shop_item_vram_start = rom.read_int32(0x00B5E490 + (0x20 * 4) + 0x08) + insert_space(rom, shop_item_file, shop_item_vram_start, 1, 0x3C + (0x20 * 50), 0x20 * 50) + + # Add relocation entries for shop item table + new_relocations = [] + for i in range(50, 100): + new_relocations.append(shop_item_file.start + 0x1DEC + (i * 0x20) + 0x04) + new_relocations.append(shop_item_file.start + 0x1DEC + (i * 0x20) + 0x14) + new_relocations.append(shop_item_file.start + 0x1DEC + (i * 0x20) + 0x1C) + add_relocations(rom, shop_item_file, new_relocations) + + # update actor table + rom.write_int32s(0x00B5E490 + (0x20 * 4), + [shop_item_file.start, + shop_item_file.end, + shop_item_vram_start, + shop_item_vram_start + (shop_item_file.end - shop_item_file.start)]) + + # Update DMA Table + update_dmadata(rom, shop_item_file) + verify_dma(rom) + + messages = read_messages(rom) + shop_items = read_shop_items(rom, shop_item_file.start + 0x1DEC) + remove_unused_messages(messages) + + # Set Big Poe count to get reward from buyer + if world.big_poe_count == 'random': + world.big_poe_count = str(random.randint(1, 10)) + poe_points = int(world.big_poe_count) * 100 + rom.write_int16(0xEE69CE, poe_points) + # update dialogue + if world.big_poe_count != 10: + new_message = "\x1AOh, you brought a Poe today!\x04\x1AHmmmm!\x04\x1AVery interesting!\x01This is a \x05\x41Big Poe\x05\x40!\x04\x1AI'll buy it for \x05\x4150 Rupees\x05\x40.\x04On top of that, I'll put \x05\x41100\x01points \x05\x40on your card.\x04\x1AIf you earn \x05\x41%d points\x05\x40, you'll\x01be a happy man! Heh heh." % poe_points + update_message_by_id(messages, 0x70f7, new_message) + new_message = "\x1AWait a minute! WOW!\x04\x1AYou have earned \x05\x41%d points\x05\x40!\x04\x1AYoung man, you are a genuine\x01\x05\x41Ghost Hunter\x05\x40!\x04\x1AIs that what you expected me to\x01say? Heh heh heh!\x04\x1ABecause of you, I have extra\x01inventory of \x05\x41Big Poes\x05\x40, so this will\x01be the last time I can buy a \x01ghost.\x04\x1AYou're thinking about what I \x01promised would happen when you\x01earned %d points. Heh heh.\x04\x1ADon't worry, I didn't forget.\x01Just take this." % (poe_points, poe_points) + update_message_by_id(messages, 0x70f8, new_message) + + # Sets hooks for gossip stone changes + if world.hints != 'none': + if world.hints != 'mask': + rom.write_bytes(0xEE7B84, [0x0C, 0x10, 0x02, 0x10]) + rom.write_bytes(0xEE7B8C, [0x24, 0x02, 0x00, 0x20]) + buildGossipHints(world, messages) + + # Set hints for boss reward shuffle + rom.write_bytes(0xE2ADB2, [0x70, 0x7A]) + rom.write_bytes(0xE2ADB6, [0x70, 0x57]) + buildBossRewardHints(world, messages) + + # build silly ganon lines + buildGanonText(world, messages) + + # Write item overrides + override_table = get_override_table(world) + rom.write_bytes(0x3481000, sum(override_table, [])) + rom.write_byte(0x03481C00, world.id + 1) # Write player ID + + # Revert Song Get Override Injection + if not world.shuffle_song_items: + # general get song + rom.write_int32(0xAE5DF8, 0x240200FF) + rom.write_int32(0xAE5E04, 0xAD0F00A4) + # requiem of spirit + rom.write_int32s(0xAC9ABC, [0x3C010001, 0x00300821]) + # sun song + rom.write_int32(0xE09F68, 0x8C6F00A4) + rom.write_int32(0xE09F74, 0x01CFC024) + rom.write_int32(0xE09FB0, 0x240F0001) + # epona + rom.write_int32(0xD7E77C, 0x8C4900A4) + rom.write_int32(0xD7E784, 0x8D088C24) + rom.write_int32s(0xD7E8D4, [0x8DCE8C24, 0x8C4F00A4]) + rom.write_int32s(0xD7E140, [0x8DCE8C24, 0x8C6F00A4]) + rom.write_int32(0xD7EBBC, 0x14410008) + rom.write_int32(0xD7EC1C, 0x17010010) + # song of time + rom.write_int32(0xDB532C, 0x24050003) + + # Set Default targeting option to Hold + if world.default_targeting == 'hold': + rom.write_bytes(0xB07200, [0x20, 0x0C, 0x00, 0x01 ]) + + # Set OHKO mode + if world.difficulty == 'ohko': + rom.write_int32(0xAE80A8, 0xA4A00030) # sh zero,48(a1) + rom.write_int32(0xAE80B4, 0x06000003) # bltz s0, +0003 + + # Patch songs and boss rewards + for location in world.get_locations(): + item = location.item + itemid = copy.copy(item.code) + locationaddress = location.address + secondaryaddress = location.address2 + + if itemid is None or location.address is None: + continue + + if location.type == 'Song' and not world.shuffle_song_items: + rom.write_byte(locationaddress, itemid[0]) + itemid[0] = itemid[0] + 0x0D + rom.write_byte(secondaryaddress, itemid[0]) + if location.name == 'Impa at Castle': + impa_fix = 0x65 - itemid[1] + rom.write_byte(0xD12ECB, impa_fix) + rom.write_byte(0x2E8E931, item_data[item.name]) #Fix text box + elif location.name == 'Song from Malon': + if item.name == 'Suns Song': + rom.write_byte(locationaddress, itemid[0]) + malon_fix = 0x8C34 - (itemid[1] * 4) + malon_fix_high = malon_fix >> 8 + malon_fix_low = malon_fix & 0x00FF + rom.write_bytes(0xD7E142, [malon_fix_high, malon_fix_low]) + rom.write_bytes(0xD7E8D6, [malon_fix_high, malon_fix_low]) # I really don't like hardcoding these addresses, but for now..... + rom.write_bytes(0xD7E786, [malon_fix_high, malon_fix_low]) + rom.write_byte(0x29BECB9, item_data[item.name]) #Fix text box + elif location.name == 'Song from Composer Grave': + sun_fix = 0x8C34 - (itemid[1] * 4) + sun_fix_high = sun_fix >> 8 + sun_fix_low = sun_fix & 0x00FF + rom.write_bytes(0xE09F66, [sun_fix_high, sun_fix_low]) + rom.write_byte(0x332A87D, item_data[item.name]) #Fix text box + elif location.name == 'Song from Saria': + saria_fix = 0x65 - itemid[1] + rom.write_byte(0xE2A02B, saria_fix) + rom.write_byte(0x20B1DBD, item_data[item.name]) #Fix text box + elif location.name == 'Song from Ocarina of Time': + rom.write_byte(0x252FC95, item_data[item.name]) #Fix text box + elif location.name == 'Song at Windmill': + windmill_fix = 0x65 - itemid[1] + rom.write_byte(0xE42ABF, windmill_fix) + rom.write_byte(0x3041091, item_data[item.name]) #Fix text box + elif location.name == 'Sheik Forest Song': + minuet_fix = 0x65 - itemid[1] + rom.write_byte(0xC7BAA3, minuet_fix) + rom.write_byte(0x20B0815, item_data[item.name]) #Fix text box + elif location.name == 'Sheik at Temple': + prelude_fix = 0x65 - itemid[1] + rom.write_byte(0xC805EF, prelude_fix) + rom.write_byte(0x2531335, item_data[item.name]) #Fix text box + elif location.name == 'Sheik in Crater': + bolero_fix = 0x65 - itemid[1] + rom.write_byte(0xC7BC57, bolero_fix) + rom.write_byte(0x224D7FD, item_data[item.name]) #Fix text box + elif location.name == 'Sheik in Ice Cavern': + serenade_fix = 0x65 - itemid[1] + rom.write_byte(0xC7BD77, serenade_fix) + rom.write_byte(0x2BEC895, item_data[item.name]) #Fix text box + elif location.name == 'Sheik in Kakariko': + nocturne_fix = 0x65 - itemid[1] + rom.write_byte(0xAC9A5B, nocturne_fix) + rom.write_byte(0x2000FED, item_data[item.name]) #Fix text box + elif location.name == 'Sheik at Colossus': + rom.write_byte(0x218C589, item_data[item.name]) #Fix text box + elif location.type == 'Boss': + if location.name == 'Links Pocket': + write_bits_to_save(item_data[item.name][1], item_data[item.name][0]) + else: + rom.write_byte(locationaddress, itemid) + rom.write_byte(secondaryaddress, item_data[item.name][2]) + if location.name == 'Bongo Bongo': + rom.write_bytes(0xCA3F32, [item_data[item.name][3][0], item_data[item.name][3][1]]) + rom.write_bytes(0xCA3F36, [item_data[item.name][3][2], item_data[item.name][3][3]]) + elif location.name == 'Twinrova': + rom.write_bytes(0xCA3EA2, [item_data[item.name][3][0], item_data[item.name][3][1]]) + rom.write_bytes(0xCA3EA6, [item_data[item.name][3][2], item_data[item.name][3][3]]) + + # add a cheaper bombchu pack to the bombchu shop + # describe + update_message_by_id(messages, 0x80FE, '\x08\x05\x41Bombchu (5 pieces) 60 Rupees\x01\x05\x40This looks like a toy mouse, but\x01it\'s actually a self-propelled time\x01bomb!\x09\x0A', 0x03) + # purchase + update_message_by_id(messages, 0x80FF, '\x08Bombchu 5 Pieces 60 Rupees\x01\x01\x1B\x05\x42Buy\x01Don\'t buy\x05\x40\x09', 0x03) + rbl_bombchu = shop_items[0x0018] + rbl_bombchu.price = 60 + rbl_bombchu.pieces = 5 + rbl_bombchu.get_item_id = 0x006A + rbl_bombchu.description_message = 0x80FE + rbl_bombchu.purchase_message = 0x80FF + + # Reduce 10 Pack Bombchus from 100 to 99 Rupees + shop_items[0x0015].price = 99 + shop_items[0x0019].price = 99 + shop_items[0x001C].price = 99 + update_message_by_id(messages, shop_items[0x001C].description_message, "\x08\x05\x41Bombchu (10 pieces) 99 Rupees\x01\x05\x40This looks like a toy mouse, but\x01it's actually a self-propelled time\x01bomb!\x09\x0A") + update_message_by_id(messages, shop_items[0x001C].purchase_message, "\x08Bombchu 10 pieces 100 Rupees\x09\x01\x01\x1B\x05\x42Buy\x01Don't buy\x05\x40") + + if world.shopsanity == 'off': + # Add more bombchus to make them more accessible + if world.bombchus_in_logic: + rom.write_int16(world.get_location('Kokiri Shop Item 8').address, + ItemFactory('Buy Bombchu (5)').index) + rom.write_int16(world.get_location('Bazaar Item 8').address, + ItemFactory('Buy Bombchu (5)').index) + else: + # kokiri shop + shop_objs = place_shop_items(rom, shop_items, messages, + world.get_region('Kokiri Shop').locations, True) + shop_objs |= {0x00FC, 0x00B2, 0x0101, 0x0102, 0x00FD, 0x00C5} # Shop objects + rom.write_byte(0x2587029, len(shop_objs)) + rom.write_int32(0x258702C, 0x0300F600) + rom.write_int16s(0x2596600, list(shop_objs)) + + # bazaar + shop_objs = place_shop_items(rom, shop_items, messages, + world.get_region('Castle Town Bazaar').locations) + shop_objs |= {0x005B, 0x00B2, 0x00C5, 0x0107, 0x00C9, 0x016B} # Shop objects + rom.write_byte(0x28E4029, len(shop_objs)) + rom.write_int32(0x28E402C, 0x03007A40) + rom.write_int16s(0x28EBA40, list(shop_objs)) + + # goron shop + shop_objs = place_shop_items(rom, shop_items, messages, + world.get_region('Goron Shop').locations) + shop_objs |= {0x00C9, 0x00B2, 0x0103, 0x00AF} # Shop objects + rom.write_byte(0x2D33029, len(shop_objs)) + rom.write_int32(0x2D3302C, 0x03004340) + rom.write_int16s(0x2D37340, list(shop_objs)) + + # zora shop + shop_objs = place_shop_items(rom, shop_items, messages, + world.get_region('Zora Shop').locations) + shop_objs |= {0x005B, 0x00B2, 0x0104, 0x00FE} # Shop objects + rom.write_byte(0x2D5B029, len(shop_objs)) + rom.write_int32(0x2D5B02C, 0x03004B40) + rom.write_int16s(0x2D5FB40, list(shop_objs)) + + # kakariko potion shop + shop_objs = place_shop_items(rom, shop_items, messages, + world.get_region('Kakariko Potion Shop Front').locations) + shop_objs |= {0x0159, 0x00B2, 0x0175, 0x0122} # Shop objects + rom.write_byte(0x2D83029, len(shop_objs)) + rom.write_int32(0x2D8302C, 0x0300A500) + rom.write_int16s(0x2D8D500, list(shop_objs)) + + # market potion shop + shop_objs = place_shop_items(rom, shop_items, messages, + world.get_region('Castle Town Potion Shop').locations) + shop_objs |= {0x0159, 0x00B2, 0x0175, 0x00C5, 0x010C, 0x016B} # Shop objects + rom.write_byte(0x2DB0029, len(shop_objs)) + rom.write_int32(0x2DB002C, 0x03004E40) + rom.write_int16s(0x2DB4E40, list(shop_objs)) + + # bombchu shop + shop_objs = place_shop_items(rom, shop_items, messages, + world.get_region('Castle Town Bombchu Shop').locations) + shop_objs |= {0x0165, 0x00B2} # Shop objects + rom.write_byte(0x2DD8029, len(shop_objs)) + rom.write_int32(0x2DD802C, 0x03006A40) + rom.write_int16s(0x2DDEA40, list(shop_objs)) + + #Fix item chest animations + chestAnimations = { + 0x3D: 0xED, #0x13 #Heart Container + 0x3E: 0xEC, #0x14 #Piece of Heart + 0x42: 0x02, #0xFE #Small Key + 0x48: 0xF7, #0x09 #Recovery Heart + 0x4F: 0xED, #0x13 #Heart Container + 0x76: 0xEC, #0x14 #WINNER! Piece of Heart + } + if world.bombchus_in_logic: + #Fix bombchu chest animations + chestAnimations[0x6A] = 0x28 #0xD8 #Bombchu (5) + chestAnimations[0x03] = 0x28 #0xD8 #Bombchu (10) + chestAnimations[0x6B] = 0x28 #0xD8 #Bombchu (20) + for item_id, gfx_id in chestAnimations.items(): + rom.write_byte(0xBEEE8E + (item_id * 6) + 2, gfx_id) + + # Update chest type sizes + if world.correct_chest_sizes: + update_chest_sizes(rom, override_table) + + # Move Ganon's Castle's Zelda's Lullaby Chest back so is reachable if large + rom.write_int16(0x321B176, 0xFC40) # original 0xFC48 + + # give dungeon items the correct messages + message_patch_for_dungeon_items(messages, shop_items, world) + # update happy mask shop to use new SOLD OUT text id + rom.write_int16(0xC01C06, shop_items[0x26].description_message) + + # add song messages + add_song_messages(messages, world) + + # reduce item message lengths + update_item_messages(messages, world) + + # Add 3rd Wallet Upgrade + rom.write_int16(0xB6D57E, 0x0003) + rom.write_int16(0xB6EC52, 999) + update_message_by_id(messages, 0x00F8, "\x08\x13\x57You got a \x05\x43Tycoon's Wallet\x05\x40!\x01Now you can hold\x01up to \x05\x46999\x05\x40 \x05\x46Rupees\x05\x40.", 0x23) + + repack_messages(rom, messages) + write_shop_items(rom, shop_item_file.start + 0x1DEC, shop_items) + + # text shuffle + if world.text_shuffle == 'except_hints': + shuffle_messages(rom, True) + elif world.text_shuffle == 'complete': + shuffle_messages(rom, False) + + # output a text dump, for testing... + #with open('keysanity_' + str(world.seed) + '_dump.txt', 'w', encoding='utf-16') as f: + # messages = read_messages(rom) + # f.write('item_message_strings = {\n') + # for m in messages: + # f.write("\t0x%04X: \"%s\",\n" % (m.id, m.get_python_string())) + # f.write('}\n') + + + scarecrow_song = None + if world.free_scarecrow: + original_songs = [ + 'LURLUR', + 'ULRULR', + 'DRLDRL', + 'RDURDU', + 'RADRAD', + 'ADUADU', + 'AULRLR', + 'DADALDLD', + 'ADRRL', + 'ADALDA', + 'LRRALRD', + 'URURLU' + ] + + note_map = { + 'A': 0, + 'D': 1, + 'R': 2, + 'L': 3, + 'U': 4 + } + + if len(world.scarecrow_song) != 8: + raise Exception('Scarecrow Song must be 8 notes long') + + if len(set(world.scarecrow_song.upper())) == 1: + raise Exception('Scarecrow Song must contain at least two different notes') + + notes = [] + for c in world.scarecrow_song.upper(): + if c not in note_map: + raise Exception('Invalid note %s. Valid notes are A, D, R, L, U' % c) + + notes.append(note_map[c]) + scarecrow_song = Song(activation=notes) + + if not world.ocarina_songs: + for original_song in original_songs: + song_notes = [] + for c in original_song: + song_notes.append(note_map[c]) + song = Song(activation=song_notes) + + if subsong(scarecrow_song, song): + raise Exception('You may not have the Scarecrow Song contain an existing song') + + write_bits_to_save(0x0EE6, 0x10) # Played song as adult + write_byte_to_save(0x12C5, 0x01) # Song is remembered + write_bytes_to_save(0x12C6, scarecrow_song.playback_data[:(16*8)], lambda v: v != 0) + + if world.ocarina_songs: + replace_songs(rom, scarecrow_song) + + # actually write the save table to rom + write_save_table(rom) + + # disable music + if world.disable_music: + rom.write_bytes(0xB3CB18, [0x00, 0x00, 0x20, 0x25]) + + # re-seed for aesthetic effects. They shouldn't be affected by the generation seed + random.seed() + + # patch tunic colors + # Custom color tunic stuff + Tunics = [] + Tunics.append(0x00B6DA38) # Kokiri Tunic + Tunics.append(0x00B6DA3B) # Goron Tunic + Tunics.append(0x00B6DA3E) # Zora Tunic + colorList = get_tunic_colors() + randomColors = random.choices(colorList, k=3) + + for i in range(len(Tunics)): + # get the color option + thisColor = world.tunic_colors[i] + # handle true random + randColor = [random.getrandbits(8), random.getrandbits(8), random.getrandbits(8)] + if thisColor == 'Completely Random': + color = randColor + else: + # handle random + if world.tunic_colors[i] == 'Random Choice': + thisColor = randomColors[i] + # grab the color from the list + color = TunicColors[thisColor] + rom.write_bytes(Tunics[i], color) + + # patch navi colors + Navi = [] + Navi.append([0x00B5E184]) # Default + Navi.append([0x00B5E19C, 0x00B5E1BC]) # Enemy, Boss + Navi.append([0x00B5E194]) # NPC + Navi.append([0x00B5E174, 0x00B5E17C, 0x00B5E18C, 0x00B5E1A4, 0x00B5E1AC, 0x00B5E1B4, 0x00B5E1C4, 0x00B5E1CC, 0x00B5E1D4]) # Everything else + naviList = get_navi_colors() + randomColors = random.choices(naviList, k=4) + + for i in range(len(Navi)): + # do everything in the inner loop so that "true random" changes even for subcategories + for j in range(len(Navi[i])): + # get the color option + thisColor = world.navi_colors[i] + # handle true random + randColor = [random.getrandbits(8), random.getrandbits(8), random.getrandbits(8), 0xFF, + random.getrandbits(8), random.getrandbits(8), random.getrandbits(8), 0x00] + if thisColor == 'Completely Random': + color = randColor + else: + # handle random + if world.navi_colors[i] == 'Random Choice': + thisColor = randomColors[i] + # grab the color from the list + color = NaviColors[thisColor] + rom.write_bytes(Navi[i][j], color) + + #Navi hints + NaviHint = [] + NaviHint.append([0xAE7EF2, 0xC26C7E]) #Overworld Hint + NaviHint.append([0xAE7EC6]) #Enemy Target Hint + naviHintSFXList = ['Default', 'Notification', 'Rupee', 'Timer', 'Tamborine', 'Recovery Heart', 'Carrot Refill', 'Navi - Hey!', 'Navi - Random', 'Zelda - Gasp', 'Cluck', 'Mweep!', 'None'] + randomNaviHintSFX = random.choices(naviHintSFXList, k=2) + + for i in range(len(NaviHint)): + for j in range(len(NaviHint[i])): + thisNaviHintSFX = world.navi_hint_sounds[i] + if thisNaviHintSFX == 'Random Choice': + thisNaviHintSFX = randomNaviHintSFX[i] + if thisNaviHintSFX == 'Notification': + naviHintSFX = [0x48, 0x20] + elif thisNaviHintSFX == 'Rupee': + naviHintSFX = [0x48, 0x03] + elif thisNaviHintSFX == 'Timer': + naviHintSFX = [0x48, 0x1A] + elif thisNaviHintSFX == 'Tamborine': + naviHintSFX = [0x48, 0x42] + elif thisNaviHintSFX == 'Recovery Heart': + naviHintSFX = [0x48, 0x0B] + elif thisNaviHintSFX == 'Carrot Refill': + naviHintSFX = [0x48, 0x45] + elif thisNaviHintSFX == 'Navi - Hey!': + naviHintSFX = [0x68, 0x5F] + elif thisNaviHintSFX == 'Navi - Random': + naviHintSFX = [0x68, 0x43] + elif thisNaviHintSFX == 'Zelda - Gasp': + naviHintSFX = [0x68, 0x79] + elif thisNaviHintSFX == 'Cluck': + naviHintSFX = [0x28, 0x12] + elif thisNaviHintSFX == 'Mweep!': + naviHintSFX = [0x68, 0x7A] + elif thisNaviHintSFX == 'None': + naviHintSFX = [0x00, 0x00] + if thisNaviHintSFX != 'Default': + rom.write_bytes(NaviHint[i][j], naviHintSFX) + + #Low health beep + healthSFXList = ['Default', 'Softer Beep', 'Rupee', 'Timer', 'Tamborine', 'Recovery Heart', 'Carrot Refill', 'Navi - Hey!', 'Zelda - Gasp', 'Cluck', 'Mweep!', 'None'] + randomSFX = random.choice(healthSFXList) + address = 0xADBA1A + + if world.healthSFX == 'Random Choice': + thisHealthSFX = randomSFX + else: + thisHealthSFX = world.healthSFX + if thisHealthSFX == 'Default': + healthSFX = [0x48, 0x1B] + elif thisHealthSFX == 'Softer Beep': + healthSFX = [0x48, 0x04] + elif thisHealthSFX == 'Rupee': + healthSFX = [0x48, 0x03] + elif thisHealthSFX == 'Timer': + healthSFX = [0x48, 0x1A] + elif thisHealthSFX == 'Tamborine': + healthSFX = [0x48, 0x42] + elif thisHealthSFX == 'Recovery Heart': + healthSFX = [0x48, 0x0B] + elif thisHealthSFX == 'Carrot Refill': + healthSFX = [0x48, 0x45] + elif thisHealthSFX == 'Navi - Hey!': + healthSFX = [0x68, 0x5F] + elif thisHealthSFX == 'Zelda - Gasp': + healthSFX = [0x68, 0x79] + elif thisHealthSFX == 'Cluck': + healthSFX = [0x28, 0x12] + elif thisHealthSFX == 'Mweep!': + healthSFX = [0x68, 0x7A] + elif thisHealthSFX == 'None': + healthSFX = [0x00, 0x00, 0x00, 0x00] + address = 0xADBA14 + rom.write_bytes(address, healthSFX) + + return rom + +def get_override_table(world): + override_entries = [] + for location in world.get_locations(): + override_entries.append(get_override_entry(location)) + override_entries.sort() + return override_entries + +def get_override_entry(location): + scene = location.scene + default = location.default + item_id = location.item.index + if None in [scene, default, item_id]: + return [] + + player_id = (location.item.world.id + 1) << 3 + + if location.type in ['NPC', 'BossHeart', 'Song']: + return [scene, player_id | 0x00, default, item_id] + elif location.type == 'Chest': + flag = default & 0x1F + return [scene, player_id | 0x01, flag, item_id] + elif location.type == 'Collectable': + return [scene, player_id | 0x02, default, item_id] + elif location.type == 'GS Token': + return [scene, player_id | 0x03, default, item_id] + elif location.type == 'Shop' and location.item.type != 'Shop': + return [scene, player_id | 0x00, default, item_id] + else: + return [] + + +chestTypeMap = { + # small big boss + 0x0000: [0x5000, 0x0000, 0x2000], #Large + 0x1000: [0x7000, 0x1000, 0x1000], #Large, Appears, Clear Flag + 0x2000: [0x5000, 0x0000, 0x2000], #Boss Key’s Chest + 0x3000: [0x8000, 0x3000, 0x3000], #Large, Falling, Switch Flag + 0x4000: [0x6000, 0x4000, 0x4000], #Large, Invisible + 0x5000: [0x5000, 0x0000, 0x2000], #Small + 0x6000: [0x6000, 0x4000, 0x4000], #Small, Invisible + 0x7000: [0x7000, 0x1000, 0x1000], #Small, Appears, Clear Flag + 0x8000: [0x8000, 0x3000, 0x3000], #Small, Falling, Switch Flag + 0x9000: [0x9000, 0x9000, 0x9000], #Large, Appears, Zelda's Lullaby + 0xA000: [0xA000, 0xA000, 0xA000], #Large, Appears, Sun's Song Triggered + 0xB000: [0xB000, 0xB000, 0xB000], #Large, Appears, Switch Flag + 0xC000: [0x5000, 0x0000, 0x2000], #Large + 0xD000: [0x5000, 0x0000, 0x2000], #Large + 0xE000: [0x5000, 0x0000, 0x2000], #Large + 0xF000: [0x5000, 0x0000, 0x2000], #Large +} + +chestAnimationExtendedFast = [ + 0x87, # Progressive Nut Capacity + 0x88, # Progressive Stick Capacity + 0xB6, # Recovery Heart + 0xB7, # Arrows (5) + 0xB8, # Arrows (10) + 0xB9, # Arrows (30) + 0xBA, # Bombs (5) + 0xBB, # Bombs (10) + 0xBC, # Bombs (20) + 0xBD, # Deku Nuts (5) + 0xBE, # Deku Nuts (10) +] + + +def room_get_chests(rom, room_data, scene, chests, alternate=None): + room_start = alternate or room_data + command = 0 + while command != 0x14: # 0x14 = end header + command = rom.read_byte(room_data) + if command == 0x01: # actor list + actor_count = rom.read_byte(room_data + 1) + actor_list = room_start + (rom.read_int32(room_data + 4) & 0x00FFFFFF) + for _ in range(0, actor_count): + actor_id = rom.read_int16(actor_list); + actor_var = rom.read_int16(actor_list + 14) + if actor_id == 0x000A: #Chest Actor + chests[actor_list + 14] = [scene, actor_var & 0x001F] + actor_list = actor_list + 16 + if command == 0x18 and scene >= 81 and scene <= 99: # Alternate header list + header_list = room_start + (rom.read_int32(room_data + 4) & 0x00FFFFFF) + for alt_id in range(0,2): + header_data = room_start + (rom.read_int32(header_list + 4) & 0x00FFFFFF) + if header_data != 0 and not alternate: + room_get_chests(rom, header_data, scene, chests, room_start) + header_list = header_list + 4 + room_data = room_data + 8 + + +def scene_get_chests(rom, scene_data, scene, chests, alternate=None): + scene_start = alternate or scene_data + command = 0 + while command != 0x14: # 0x14 = end header + command = rom.read_byte(scene_data) + if command == 0x04: #room list + room_count = rom.read_byte(scene_data + 1) + room_list = scene_start + (rom.read_int32(scene_data + 4) & 0x00FFFFFF) + for _ in range(0, room_count): + room_data = rom.read_int32(room_list); + room_get_chests(rom, room_data, scene, chests) + room_list = room_list + 8 + if command == 0x18 and scene >= 81 and scene <= 99: # Alternate header list + header_list = scene_start + (rom.read_int32(scene_data + 4) & 0x00FFFFFF) + for alt_id in range(0,2): + header_data = scene_start + (rom.read_int32(header_list + 4) & 0x00FFFFFF) + if header_data != 0 and not alternate: + scene_get_chests(rom, header_data, scene, chests, scene_start) + header_list = header_list + 4 + + scene_data = scene_data + 8 + + +def get_chest_list(rom): + chests = {} + scene_table = 0x00B71440 + for scene in range(0x00, 0x65): + scene_data = rom.read_int32(scene_table + (scene * 0x14)); + scene_get_chests(rom, scene_data, scene, chests) + return chests + + +def get_override_itemid(override_table, scene, type, flags): + for entry in override_table: + if len(entry) == 4 and entry[0] == scene and (entry[1] & 0x07) == type and entry[2] == flags: + return entry[3] + return None + +def update_chest_sizes(rom, override_table): + chest_list = get_chest_list(rom) + for address, [scene, flags] in chest_list.items(): + item_id = get_override_itemid(override_table, scene, 1, flags) + + if None in [address, scene, flags, item_id]: + continue + + itemType = 0 # Item animation + + if item_id >= 0x80: # if extended item, always big except from exception list + itemType = 0 if item_id in chestAnimationExtendedFast else 1 + elif rom.read_byte(0xBEEE8E + (item_id * 6) + 2) & 0x80: # get animation from rom, ice trap is big + itemType = 0 # No animation, small chest + else: + itemType = 1 # Long animation, big chest + # Don't use boss chests + + default = rom.read_int16(address) + chestType = default & 0xF000 + newChestType = chestTypeMap[chestType][itemType] + default = (default & 0x0FFF) | newChestType + rom.write_int16(address, default) + + +def place_shop_items(rom, shop_items, messages, locations, init_shop_id=False): + if init_shop_id: + place_shop_items.shop_id = 0x32 + + shop_objs = { 0x0148 } # Sold Out + messages + for location in locations: + shop_objs.add(location.item.object) + if location.item.type == 'Shop': + rom.write_int16(location.address, location.item.index) + else: + shop_id = place_shop_items.shop_id + rom.write_int16(location.address, shop_id) + shop_item = shop_items[shop_id] + + shop_item.object = location.item.object + shop_item.model = location.item.model - 1 + shop_item.price = location.price + shop_item.pieces = 1 + shop_item.get_item_id = location.default + shop_item.func1 = 0x808648CC + shop_item.func2 = 0x808636B8 + shop_item.func3 = 0x00000000 + shop_item.func4 = 0x80863FB4 + + message_id = (shop_id - 0x32) * 2 + shop_item.description_message = 0x8100 + message_id + shop_item.purchase_message = 0x8100 + message_id + 1 + update_message_by_id(messages, shop_item.description_message, '\x08\x05\x41%s %d Rupees\x01\x05\x40Special deal! ONE LEFT!\x01Get it while it lasts!\x09\x0A\x02' % (location.item.name, location.price), 0x03) + update_message_by_id(messages, shop_item.purchase_message, '\x08%s %d Rupees\x09\x01\x01\x1B\x05\x42Buy\x01Don\'t buy\x05\x40\x02' % (location.item.name, location.price), 0x03) + + place_shop_items.shop_id += 1 + + return shop_objs diff --git a/version.py b/version.py index 06e0c9828..b3dd3f1ae 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.41 f.LUM' +__version__ = '2.15.42 f.LUM' From 8e92217821a20ca25848b89d11c0eb846ff5c9a7 Mon Sep 17 00:00:00 2001 From: Unknown Date: Tue, 28 Aug 2018 21:30:42 -0400 Subject: [PATCH 350/755] Shop shot selection moved to baseclasses --- BaseClasses.py | 21 ++++++++++++++++++--- Rom.py | 3 +-- version.py | 2 +- 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 866ac1ab9..4423c1a26 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -20,6 +20,7 @@ def __init__(self, settings): self._entrance_cache = {} self._location_cache = {} self.required_locations = [] + self.shop_prices = {} # dump settings directly into world's namespace # this gives the world an attribute for every setting listed in Settings.py @@ -50,6 +51,7 @@ def copy(self): ret = World(self.settings) ret.skipped_trials = copy.copy(self.skipped_trials) ret.can_take_damage = self.can_take_damage + ret.shop_prices = copy.copy(self.shop_prices) ret.id = self.id from Regions import create_regions from Dungeons import create_dungeons @@ -89,8 +91,6 @@ def initialize_regions(self): region.world = self for location in region.locations: location.world = self - if location.type == 'Shop': - location.price = int(random.betavariate(1.5, 2) * 60) * 5 def initialize_items(self): for item in self.itempool: @@ -103,7 +103,19 @@ def initialize_items(self): for item in dungeon.all_items: item.world = self + def random_shop_prices(self): + shop_item_indexes = ['7', '5', '8', '6'] + self.shop_prices = {} + for region in self.regions: + if self.shopsanity == 'random': + shop_item_count = random.randint(0,4) + else: + shop_item_count = int(self.shopsanity) + for location in region.locations: + if location.type == 'Shop': + if location.name[-1:] in shop_item_indexes[:shop_item_count]: + self.shop_prices[location.name] = int(random.betavariate(1.5, 2) * 60) * 5 def get_region(self, regionname): if isinstance(regionname, Region): @@ -332,7 +344,10 @@ def has_slingshot(self): def has_bombs(self): return self.has('Bomb Bag') and \ - (self.has('Buy Bombs (5)') or self.has('Buy Bombs (10)') or self.has('Buy Bombs (20)')) + (self.has('Buy Bombs (5) [25]') + or self.has('Buy Bombs (5) [35]') + or self.has('Buy Bombs (10)') + or self.has('Buy Bombs (20)')) def has_blue_fire(self): return self.has_bottle() and \ diff --git a/Rom.py b/Rom.py index 123828794..71454b90a 100644 --- a/Rom.py +++ b/Rom.py @@ -1162,7 +1162,7 @@ def write_save_table(rom): rom.write_bytes(0x21F60DE, [0x05, 0xF0]) ### Load Shop File - from MQ import File, verify_dma, update_dmadata, insert_space, add_relocations + from MQ import File, update_dmadata, insert_space, add_relocations # Move shop actor file to free space shop_item_file = File({ 'Name':'En_GirlA', @@ -1193,7 +1193,6 @@ def write_save_table(rom): # Update DMA Table update_dmadata(rom, shop_item_file) - verify_dma(rom) messages = read_messages(rom) shop_items = read_shop_items(rom, shop_item_file.start + 0x1DEC) diff --git a/version.py b/version.py index b3dd3f1ae..ed913d6fe 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.42 f.LUM' +__version__ = '2.15.43 f.LUM' From ec7f70dc513837d2153e969ed55f16b8d7895a7e Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Tue, 28 Aug 2018 22:36:20 -0300 Subject: [PATCH 351/755] Spirit Temple Logic Update Some routes (the ones for if you had the requirements to get the goals both as child and as adult with only 1 key) were not checking for explosives. What could happen is, you unlock the lower door as child, and you have silver gauntlets but not explosives, the randomizer expected you to be able to reach goals in the main room because you had 1 key and silver gauntlets. But also, besides 1 key and explosives, 2 keys is enough to ensure you really have access to the main room. Except it's possible to waste your keys as child if you have out of logic explosives. So the 2-key options need to check that bombchu logic is on, because only in that case we know for sure we can use explosives again. The GS adds a Boomerang check to make sure you can really get it if you get there as child. The Fire Arrows routes for the Map and Sun Block chests required full adult access, but this was not necessary. Din's Fire and Fire Arrows are actually functionally equivalent since child can use sticks, or adult could use the fire source. (Shopsanity, however, is a different story for a different time.) Spirit hurt my brain. --- Rules.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Rules.py b/Rules.py index 3b4a125b8..cf9b1fc1f 100644 --- a/Rules.py +++ b/Rules.py @@ -405,10 +405,10 @@ def dung_rules_spt0(world): set_rule(world.get_location('Spirit Temple Early Adult Right Chest'), lambda state: state.has('Bow') or state.has('Progressive Hookshot') or state.has_bombchus()) #requires a very specific Bombchu use, Hover Boots can be skipped by jumping on top of the rolling rock. set_rule(world.get_location('Spirit Temple First Mirror Right Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3)) set_rule(world.get_location('Spirit Temple First Mirror Left Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3)) - set_rule(world.get_location('Spirit Temple Map Chest'), lambda state: (state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit')) or (state.has('Magic Meter') and (state.has('Dins Fire') or (state.has('Fire Arrows') and state.has('Bow') and state.has('Progressive Strength Upgrade', 2) and state.has('Small Key (Spirit Temple)', 3) and state.is_adult())))) - set_rule(world.get_location('Spirit Temple Child Climb East Chest'), lambda state: state.has_explosives() or ((state.has('Boomerang') or state.has('Slingshot')) and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 5) and state.can_play('Requiem of Spirit') and (state.has('Boomerang') or state.has('Slingshot')))) - set_rule(world.get_location('Spirit Temple Child Climb North Chest'), lambda state: state.has_explosives() or ((state.has('Boomerang') or state.has('Slingshot')) and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 5) and state.can_play('Requiem of Spirit') and (state.has('Boomerang') or state.has('Slingshot')))) - set_rule(world.get_location('Spirit Temple Sun Block Room Chest'), lambda state: (state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit')) or (state.has('Magic Meter') and (state.has('Dins Fire') or (state.has('Fire Arrows') and state.has('Bow') and state.has('Progressive Strength Upgrade', 2) and state.has('Small Key (Spirit Temple)', 3) and state.is_adult())))) + set_rule(world.get_location('Spirit Temple Map Chest'), lambda state: ((state.has_explosives() or state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and world.bombchus_in_logic)) and state.has('Magic Meter') and (state.has('Dins Fire') or (state.has('Fire Arrows') and state.has('Bow')))) or (state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit'))) + set_rule(world.get_location('Spirit Temple Child Climb East Chest'), lambda state: state.has_explosives() or ((state.has('Boomerang') or state.has('Slingshot')) and (state.has('Progressive Hookshot') or state.has('Bow'))) or ((state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and world.bombchus_in_logic)) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 5) and state.can_play('Requiem of Spirit') and (state.has('Boomerang') or state.has('Slingshot')))) + set_rule(world.get_location('Spirit Temple Child Climb North Chest'), lambda state: state.has_explosives() or ((state.has('Boomerang') or state.has('Slingshot')) and (state.has('Progressive Hookshot') or state.has('Bow'))) or ((state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and world.bombchus_in_logic)) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 5) and state.can_play('Requiem of Spirit') and (state.has('Boomerang') or state.has('Slingshot')))) + set_rule(world.get_location('Spirit Temple Sun Block Room Chest'), lambda state: ((state.has_explosives() or state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and world.bombchus_in_logic)) and state.has('Magic Meter') and (state.has('Dins Fire') or (state.has('Fire Arrows') and state.has('Bow')))) or (state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit'))) set_rule(world.get_location('Spirit Temple Statue Hand Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.can_play('Zeldas Lullaby')) set_rule(world.get_location('Spirit Temple NE Main Room Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.can_play('Zeldas Lullaby') and (state.has('Progressive Hookshot') or state.has("Hover Boots"))) set_rule(world.get_location('Mirror Shield Chest'), lambda state: state.has('Small Key (Spirit Temple)', 4) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.has_explosives()) @@ -423,7 +423,7 @@ def dung_rules_spt0(world): # GS set_rule(world.get_location('GS Spirit Temple Metal Fence'), lambda state: state.has('Boomerang') or state.has('Slingshot') or state.has_bombchus()) - set_rule(world.get_location('GS Spirit Temple Hall to West Iron Knuckle'), lambda state: (state.has('Boomerang') and state.has('Progressive Hookshot')) or (state.has('Boomerang') and state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit')) or (state.has('Progressive Hookshot') and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.has('Small Key (Spirit Temple)', 3))) + set_rule(world.get_location('GS Spirit Temple Hall to West Iron Knuckle'), lambda state: (state.has_explosives() and state.has('Boomerang') and state.has('Progressive Hookshot')) or (state.has('Boomerang') and state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit')) or (state.has('Progressive Hookshot') and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and (state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and state.has('Boomerang') and world.bombchus_in_logic)))) set_rule(world.get_location('GS Spirit Temple Boulder Room'), lambda state: state.can_play('Song of Time') and (state.has('Bow') or state.has('Progressive Hookshot') or state.has_bombchus())) set_rule(world.get_location('GS Spirit Temple Lobby'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.has('Small Key (Spirit Temple)', 3) and state.is_adult() and (state.has('Progressive Hookshot', 2) or (state.has('Progressive Hookshot') and state.has_ocarina()) or state.has('Hover Boots'))) From d1dcf218f393875d2c5a1e2e664d18b5481c1eff Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Wed, 29 Aug 2018 02:15:05 -0300 Subject: [PATCH 352/755] Dodongos Cavern Logic Fix I moved the Boss and GS rules in together with the rest of the DC logic. The slingshot target rule needed to check the child entry requirements to make sure the slingshot was actually usable. The adult trick-jump could be forced otherwise, say if you were in here with slingshot, hammer, and dins/bow. I believe the logic on the end of bridge chest was not needed. It seemed like it was checking for adult entry requirements so you could use the hammer on the wall, but you could just hit the switch as child and come back as adult to use the hammer. The logic here was actually preventing this scenario from being able to occur. --- Rules.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/Rules.py b/Rules.py index cf9b1fc1f..9a740492f 100644 --- a/Rules.py +++ b/Rules.py @@ -110,8 +110,6 @@ def global_rules(world): set_rule(world.get_entrance('Darunias Chamber'), lambda state: state.can_play('Zeldas Lullaby')) set_rule(world.get_location('Darunias Joy'), lambda state: state.can_play('Sarias Song')) set_rule(world.get_entrance('Goron City from Woods'), lambda state: (state.can_blast_or_smash() or (state.has('Dins Fire') and state.has('Magic Meter')) or ((state.has('Bow') or state.has('Progressive Strength Upgrade')) and state.is_adult())) and state.can_leave_forest()) - set_rule(world.get_location('King Dodongo'), lambda state: state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) - set_rule(world.get_location('King Dodongo Heart'), lambda state: state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) set_rule(world.get_location('Song from Saria'), lambda state: state.has('Zeldas Letter')) set_rule(world.get_entrance('Mountain Summit Fairy'), lambda state: state.can_blast_or_smash()) set_rule(world.get_location('Crater Fairy Reward'), lambda state: state.can_play('Zeldas Lullaby')) @@ -254,8 +252,6 @@ def global_rules(world): set_rule(world.get_location('GS Death Mountain Crater Crate'), lambda state: state.can_blast_or_smash()) set_rule(world.get_location('GS Goron City Center Platform'), lambda state: state.is_adult()) set_rule(world.get_location('GS Mountain Crater Bean Patch'), lambda state: state.can_play('Bolero of Fire') and state.has_bottle()) - set_rule(world.get_location('GS Dodongo\'s Cavern Alcove Above Stairs'), lambda state: (state.has('Progressive Hookshot') and state.is_adult()) or (state.has('Boomerang') and (state.has_explosives() or state.has('Progressive Strength Upgrade')))) - set_rule(world.get_location('GS Dodongo\'s Cavern Scarecrow'), lambda state: state.is_adult() and ( (state.has('Progressive Hookshot') and state.has_ocarina()) or state.has('Progressive Hookshot', 2) )) set_rule(world.get_location('GS Zora River Ladder'), lambda state: state.nighttime()) set_rule(world.get_location('GS Zora River Near Raised Grottos'), lambda state: state.has('Progressive Hookshot') and state.nighttime()) set_rule(world.get_location('GS Zora River Above Bridge'), lambda state: state.has('Progressive Hookshot') and state.nighttime()) @@ -302,10 +298,18 @@ def dung_rules_dc0(world): set_rule(world.get_entrance('Dodongos Cavern Rocks'), lambda state: state.can_blast_or_smash() or state.has('Progressive Strength Upgrade') or state.is_adult()) set_rule(world.get_entrance('Dodongos Cavern Lobby'), lambda state: state.can_blast_or_smash() or state.has('Progressive Strength Upgrade')) set_rule(world.get_entrance('Dodongos Cavern Left Door'), lambda state: state.has_explosives() or state.has('Progressive Strength Upgrade') or (state.has('Dins Fire') and state.has('Magic Meter')) or (state.has('Bow') and state.is_adult())) - set_rule(world.get_entrance('Dodongos Cavern Slingshot Target'), lambda state: state.has('Slingshot') or ((state.has('Bow') or state.has('Hover Boots') or state.has('Progressive Hookshot', 2) or world.logic_dc_jump) and state.is_adult())) - set_rule(world.get_location('Dodongos Cavern End of Bridge Chest'), lambda state: state.has_explosives() or ((state.has('Bow') or state.has('Hover Boots') or state.has('Progressive Hookshot', 2) or world.logic_dc_jump) and state.is_adult() and state.has('Hammer'))) + set_rule(world.get_entrance('Dodongos Cavern Slingshot Target'), lambda state: (state.has('Slingshot') and (state.has_explosives() or state.has('Progressive Strength Upgrade'))) or ((state.has('Bow') or state.has('Hover Boots') or state.has('Progressive Hookshot', 2) or world.logic_dc_jump) and state.is_adult())) + set_rule(world.get_location('Dodongos Cavern End of Bridge Chest'), lambda state: can_blast_or_smash()) set_rule(world.get_entrance('Dodongos Cavern Bomb Drop'), lambda state: state.has_explosives()) + # Boss + set_rule(world.get_location('King Dodongo'), lambda state: state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) + set_rule(world.get_location('King Dodongo Heart'), lambda state: state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) + + # GS + set_rule(world.get_location('GS Dodongo\'s Cavern Alcove Above Stairs'), lambda state: (state.has('Progressive Hookshot') and state.is_adult()) or (state.has('Boomerang') and (state.has_explosives() or state.has('Progressive Strength Upgrade')))) + set_rule(world.get_location('GS Dodongo\'s Cavern Scarecrow'), lambda state: state.is_adult() and ( (state.has('Progressive Hookshot') and state.has_ocarina()) or state.has('Progressive Hookshot', 2) )) + def dung_rules_jb0(world): set_rule(world.get_entrance('Jabu Jabus Belly Ceiling Switch'), lambda state: state.has('Slingshot') or state.has_explosives() or state.has('Boomerang')) set_rule(world.get_entrance('Jabu Jabus Belly Tentacles'), lambda state: state.has('Boomerang')) From 0b857c5b93cde851c4e924e007c3e9678bb3f100 Mon Sep 17 00:00:00 2001 From: AmazingAmpharos Date: Wed, 29 Aug 2018 03:23:05 -0500 Subject: [PATCH 353/755] Large logic refactor I refactored most of the logic in Rules.py to be simply shorter and thus a lot more readable. I also implemented all of the recent logic fixes r0bd0g has been all over. I also dealt with some inherent problems in key for key that were plaguing both Fire Temple MQ and Water Temple vanilla; this will have a noticeable impact on Water Temple's logic flow and significantly improves the value of the gs near the boss key in tokensanity/keysanity. I put in a few minor collectible flag fixes for MQ; this should make BotW MQ actually correct while Fire and Shadow freestanding keys are still a mystery but at least are maybe correct now. --- BaseClasses.py | 60 +++++-- Fill.py | 2 + Regions.py | 17 +- Rules.py | 420 +++++++++++++++++++++++++------------------------ 4 files changed, 274 insertions(+), 225 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index e4c2b8baa..24bdd55ea 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -57,6 +57,7 @@ def __init__(self, settings): } self.can_take_damage = True + self.keys_placed = False self.spoiler = Spoiler(self) @@ -321,6 +322,31 @@ def has_ocarina(self): def can_play(self, song): return self.has_ocarina() and self.has(song) + def can_use(self, item): + magic_items = ['Dins Fire', 'Farores Wind', 'Nayrus Love', 'Lens of Truth'] + adult_items = ['Bow', 'Hammer', 'Iron Boots', 'Hover Boots', 'Magic Bean'] + magic_arrows = ['Fire Arrows', 'Light Arrows'] + if item in magic_items: + return self.has(item) and self.has('Magic Meter') + elif item in adult_items: + return self.has(item) and self.is_adult() + elif item in magic_arrows: + return self.has(item) and self.is_adult() and self.has('Bow') and self.has('Magic Meter') + elif item == 'Hookshot': + return self.has('Progressive Hookshot') and self.is_adult() + elif item == 'Longshot': + return self.has('Progressive Hookshot', 2) and self.is_adult() + elif item == 'Silver Gauntlets': + return self.has('Progressive Strength Upgrade', 2) and self.is_adult() + elif item == 'Golden Gauntlets': + return self.has('Progressive Strength Upgrade', 3) and self.is_adult() + elif item == 'Scarecrow': + return self.has('Progressive Hookshot') and self.is_adult() and self.has_ocarina() + elif item == 'Distant Scarecrow': + return self.has('Progressive Hookshot', 2) and self.is_adult() and self.has_ocarina() + else: + return self.has(item) + def has_bombchus(self): return (self.world.bombchus_in_logic and \ (any(pritem.startswith('Bombchus') for pritem in self.prog_items) \ @@ -336,12 +362,19 @@ def can_blast_or_smash(self): def can_dive(self): return self.has('Progressive Scale') - def can_lift_rocks(self): - return (self.has('Silver Gauntlets') or self.has('Gold Gauntlets')) and self.is_adult() - def can_see_with_lens(self): return ((self.has('Magic Meter') and self.has('Lens of Truth')) or self.world.logic_lens != 'all') + def has_projectile(self, age='either'): + if age == 'child': + return self.has_explosives or self.has('Slingshot') or self.has('Boomerang') + elif age == 'adult': + return self.has_explosives or self.has('Bow') or self.has('Progressive Hookshot') + elif age == 'both': + return self.has_explosives or ((self.has('Bow') or self.has('Progressive Hookshot')) and (self.has('Slingshot') or self.has('Boomerang'))) + else: + return self.has_explosives or ((self.has('Bow') or self.has('Progressive Hookshot')) or (self.has('Slingshot') or self.has('Boomerang'))) + def has_GoronTunic(self): return (self.has('Goron Tunic') or (self.has('Progressive Wallet') and (self.has_explosives() or self.has('Progressive Strength Upgrade') or self.has('Bow')))) @@ -357,7 +390,7 @@ def can_finish_adult_trades(self): else: zora_thawed = self.has_bottle() and (self.can_play('Zeldas Lullaby') or (self.has('Hover Boots') and self.world.logic_zora_with_hovers)) and (self.can_reach('Ice Cavern') or self.can_reach('Ganons Castle Water Trial') or self.has('Progressive Wallet', 2)) carpenter_access = self.has('Epona') or self.has('Progressive Hookshot', 2) - return (self.has('Claim Check') or ((self.has('Eyedrops') or self.has('Eyeball Frog') or self.has('Prescription') or self.has('Broken Sword')) and zora_thawed) or ((self.has('Poachers Saw') or self.has('Odd Mushroom') or self.has('Cojiro') or self.has('Pocket Cucco') or self.has('Pocket Egg')) and zora_thawed and carpenter_access)) + return (self.has('Claim Check') or ((self.has('Progressive Strength Upgrade') or self.can_blast_or_smash() or self.has('Bow')) and (((self.has('Eyedrops') or self.has('Eyeball Frog') or self.has('Prescription') or self.has('Broken Sword')) and zora_thawed) or ((self.has('Poachers Saw') or self.has('Odd Mushroom') or self.has('Cojiro') or self.has('Pocket Cucco') or self.has('Pocket Egg')) and zora_thawed and carpenter_access)))) def has_bottle(self): is_normal_bottle = lambda item: (item.startswith('Bottle') and item != 'Bottle with Letter') @@ -378,26 +411,31 @@ def heart_count(self): + 3 # starting hearts ) - def can_lift_pillars(self): - return self.has('Gold Gauntlets') and self.is_adult() - def has_fire_source(self): return ((self.has('Dins Fire') or (self.has('Bow') and self.has('Fire Arrows') and self.is_adult())) and self.has('Magic Meter')) def guarantee_hint(self): if(self.world.hints == 'mask'): - # has the mask of truth - return self.has('Zeldas Letter') and self.has('Sarias Song') and self.has('Kokiri Emerald') and self.has('Goron Ruby') and self.has('Zora Sapphire') + # has the Mask of Truth + return self.has('Zeldas Letter') and self.can_play('Sarias Song') and self.has('Kokiri Emerald') and self.has('Goron Ruby') and self.has('Zora Sapphire') elif(self.world.hints == 'agony'): - # has the stone of agony + # has the Stone of Agony return self.has('Stone of Agony') return True def nighttime(self): if self.world.logic_no_night_tokens_without_suns_song: - return self.has('Suns Song') + return self.can_play('Suns Song') return True + def can_finish_GerudoFortress(self): + if self.world.gerudo_fortress == 'normal': + return self.has('Small Key (Gerudo Fortress)', 4) and (self.can_use('Bow') or self.can_use('Hookshot') or self.can_use('Hover Boots')) + elif self.world.gerudo_fortress == 'fast': + return self.has('Small Key (Gerudo Fortress)', 1) and self.is_adult() + else: + return self.is_adult() + def collect(self, item): changed = False if item.name.startswith('Bottle'): diff --git a/Fill.py b/Fill.py index ededfd1ef..cf7d86ffa 100644 --- a/Fill.py +++ b/Fill.py @@ -41,6 +41,8 @@ def distribute_items_restrictive(window, worlds, fill_locations=None): # placement, but will leave as is for now random.shuffle(fill_locations) fill_dungeons_restrictive(window, worlds, fill_locations, itempool + songitempool) + for world in worlds: + world.keys_placed = True # I have no idea why the locations are reversed but this is how it was, # so whatever. It can't hurt I guess diff --git a/Regions.py b/Regions.py index 4b8e053d9..a8efd6cce 100644 --- a/Regions.py +++ b/Regions.py @@ -166,7 +166,7 @@ def create_regions(world): create_ow_region('Shadow Temple Warp Region', None, ['Drop to Graveyard', 'Shadow Temple Entrance']), create_ow_region( 'Death Mountain', - ['Death Mountain Bombable Chest', 'Biggoron', 'DM Trail Freestanding PoH', 'GS Mountain Trail Bean Patch', + ['Death Mountain Bombable Chest', 'DM Trail Freestanding PoH', 'GS Mountain Trail Bean Patch', 'GS Mountain Trail Bomb Alcove', 'GS Mountain Trail Path to Crater', 'GS Mountain Trail Above Dodongo\'s Cavern'], ['Death Mountain Exit', 'Goron City Entrance', 'Mountain Crater Entrance', 'Mountain Summit Fairy', @@ -188,7 +188,7 @@ def create_regions(world): create_ow_region('Darunias Chamber', ['Darunias Joy'], ['Darunias Chamber Exit']), create_ow_region( 'Death Mountain Crater Upper', - ['DM Crater Wall Freestanding PoH', 'GS Death Mountain Crater Crate'], + ['Biggoron', 'DM Crater Wall Freestanding PoH', 'GS Death Mountain Crater Crate'], ['Crater Exit', 'Crater Hover Boots', 'Crater Scarecrow', 'Top of Crater Grotto']), create_ow_region( 'Death Mountain Crater Lower', @@ -703,12 +703,13 @@ def create_regions(world): ['Shadow Temple Invisible Blades Visible Chest', 'Shadow Temple Invisible Blades Invisible Chest', 'Shadow Temple Falling Spikes Lower Chest', 'Shadow Temple Falling Spikes Upper Chest', 'Shadow Temple Falling Spikes Switch Chest', 'Shadow Temple Invisible Spikes Chest', - 'Shadow Temple Freestanding Key', 'GS Shadow Temple Like Like Room', 'GS Shadow Temple Crusher Room'], + 'Shadow Temple Freestanding Key', 'GS Shadow Temple Like Like Room', 'GS Shadow Temple Crusher Room', + 'GS Shadow Temple Single Giant Pot'], ['Shadow Temple Hookshot Target']), create_dungeon_region( 'Shadow Temple Wind Tunnel', ['Shadow Temple Wind Hint Chest', 'Shadow Temple After Wind Enemy Chest', - 'Shadow Temple After Wind Hidden Chest', 'GS Shadow Temple Single Giant Pot', 'GS Shadow Temple Near Ship'], + 'Shadow Temple After Wind Hidden Chest', 'GS Shadow Temple Near Ship'], ['Shadow Temple Boat']), create_dungeon_region( 'Shadow Temple Beyond Boat', @@ -1155,7 +1156,7 @@ def _create_region(name, type, locations=None, exits=None): 'Fire Temple MQ Boss Key Chest': (0, None, 0x27E4, 'Chest', 0x04, 'Fire Temple'), 'Fire Temple MQ Big Lava Room Bombable Chest': (0, None, 0x5841, 'Chest', 0x04, 'Fire Temple'), 'Fire Temple MQ Maze Side Room': (0, None, 0x5848, 'Chest', 0x04, 'Fire Temple'), - 'Fire Temple MQ Freestanding Key': (None, None, 0x01, 'Collectable', 0x04, 'Fire Temple'), # Need to verify this is the correct collectible flag. + 'Fire Temple MQ Freestanding Key': (None, None, 0x02, 'Collectable', 0x04, 'Fire Temple'), # Need to verify this is the correct collectible flag. # Water Temple vanilla 'Water Temple Map Chest': (0x26690A6, None, 0x1822, 'Chest', 0x05, 'Water Temple'), @@ -1254,7 +1255,7 @@ def _create_region(name, type, locations=None, exits=None): 'Shadow Temple MQ After Wind Hidden Chest': (0, None, 0x6934, 'Chest', 0x07, 'Shadow Temple'), 'Shadow Temple MQ After Wind Enemy Chest': (0, None, 0x7888, 'Chest', 0x07, 'Shadow Temple'), 'Shadow Temple MQ Near Ship Invisible Chest': (0, None, 0x684E, 'Chest', 0x07, 'Shadow Temple'), - 'Shadow Temple MQ Freestanding Key': (None, None, 0x01, 'Collectable', 0x07, 'Shadow Temple'), # This needs tested + 'Shadow Temple MQ Freestanding Key': (None, None, 0x02, 'Collectable', 0x07, 'Shadow Temple'), # This needs tested # Bottom of the Well vanilla 'Bottom of the Well Front Left Hidden Wall': (0x32D317E, None, 0x5848, 'Chest', 0x08, 'Bottom of the Well'), @@ -1275,8 +1276,8 @@ def _create_region(name, type, locations=None, exits=None): 'Bottom of the Well MQ Map Chest': (0, None, 0x0823, 'Chest', 0x08, 'Bottom of the Well'), 'Bottom of the Well MQ Lens Chest': (0, None, 0xB141, 'Chest', 0x08, 'Bottom of the Well'), 'Bottom of the Well MQ Compass Chest': (0, None, 0x1802, 'Chest', 0x08, 'Bottom of the Well'), - 'Bottom of the Well MQ Dead Hand Freestanding Key': (None, None, 0x01, 'Collectable', 0x08, 'Bottom of the Well'), # I have absolutely no idea what these flags are - 'Bottom of the Well MQ East Inner Room Freestanding Key': (None, None, 0x02, 'Collectable', 0x08, 'Bottom of the Well'), # These are extremely likely to be wrong + 'Bottom of the Well MQ Dead Hand Freestanding Key': (None, None, 0x02, 'Collectable', 0x08, 'Bottom of the Well'), # Flags seem probably correct? + 'Bottom of the Well MQ East Inner Room Freestanding Key': (None, None, 0x01, 'Collectable', 0x08, 'Bottom of the Well'), # Should test # Ice Cavern vanilla 'Ice Cavern Map Chest': (0x2C4016A, None, 0x0820, 'Chest', 0x09, 'Ice Cavern'), diff --git a/Rules.py b/Rules.py index d51893604..981409970 100644 --- a/Rules.py +++ b/Rules.py @@ -125,7 +125,7 @@ def global_rules(world): set_rule(world.get_location('Deku Theater Skull Mask'), lambda state: (not world.logic_no_trade_skull_mask) and state.has('Zeldas Letter')) set_rule(world.get_location('Deku Theater Mask of Truth'), lambda state: (not world.logic_no_trade_mask_of_truth) and (state.has('Zeldas Letter') and state.can_play('Sarias Song') and state.has('Kokiri Emerald') and state.has('Goron Ruby') and state.has('Zora Sapphire') and state.guarantee_hint())) #Must befriend Skull Kid to sell Skull Mask, all stones to spawn running man. set_rule(world.get_location('Anju as Adult'), lambda state: state.is_adult()) - set_rule(world.get_location('Man on Roof'), lambda state: world.logic_man_on_roof or (state.has('Progressive Hookshot') and state.is_adult())) + set_rule(world.get_location('Man on Roof'), lambda state: world.logic_man_on_roof or state.can_use('Hookshot')) set_rule(world.get_location('10 Gold Skulltulla Reward'), lambda state: (expected_skulltulas >= 10) and state.has('Gold Skulltulla Token', 10)) set_rule(world.get_location('20 Gold Skulltulla Reward'), lambda state: (expected_skulltulas >= 20) and state.has('Gold Skulltulla Token', 20)) set_rule(world.get_location('30 Gold Skulltulla Reward'), lambda state: (expected_skulltulas >= 30) and state.has('Gold Skulltulla Token', 30) and state.guarantee_hint()) @@ -137,19 +137,17 @@ def global_rules(world): set_rule(world.get_entrance('Bottom of the Well'), lambda state: state.can_play('Song of Storms')) set_rule(world.get_entrance('Death Mountain Entrance'), lambda state: state.has('Zeldas Letter') or state.is_adult() or world.open_kakariko) set_rule(world.get_entrance('Dodongos Cavern Rocks'), lambda state: state.has_explosives() or state.has('Progressive Strength Upgrade') or state.is_adult()) - set_rule(world.get_location('DM Trail Freestanding PoH'), lambda state: world.open_kakariko or (world.difficulty != 'ohko') or state.has('Zeldas Letter') or state.can_blast_or_smash() or ((state.has('Dins Fire') or state.has('Nayrus Love')) and state.has('Magic Meter')) or state.has('Bow') or state.has('Progressive Strength Upgrade') or state.has_bottle() or state.has('Hover Boots')) + set_rule(world.get_location('DM Trail Freestanding PoH'), lambda state: world.open_kakariko or (world.difficulty != 'ohko') or state.has('Zeldas Letter') or state.can_blast_or_smash() or state.can_use('Dins Fire') or state.can_use('Nayrus Love') or state.has('Bow') or state.has('Progressive Strength Upgrade') or state.has_bottle() or state.has('Hover Boots')) set_rule(world.get_location('Death Mountain Bombable Chest'), lambda state: state.can_blast_or_smash()) - set_rule(world.get_location('Biggoron'), lambda state: (not world.logic_no_trade_biggoron) and (state.has('Progressive Strength Upgrade') or state.can_blast_or_smash() or state.has('Bow')) and state.is_adult() and state.can_finish_adult_trades() and state.guarantee_hint()) - set_rule(world.get_location('Goron City Leftmost Maze Chest'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade', 2) or state.has('Hammer'))) - set_rule(world.get_location('Goron City Left Maze Chest'), lambda state: state.can_blast_or_smash() or (state.has('Progressive Strength Upgrade', 2) and state.is_adult())) - set_rule(world.get_location('Goron City Right Maze Chest'), lambda state: state.can_blast_or_smash() or (state.has('Progressive Strength Upgrade', 2) and state.is_adult())) + set_rule(world.get_location('Biggoron'), lambda state: (not world.logic_no_trade_biggoron) and state.is_adult() and state.can_finish_adult_trades() and state.guarantee_hint()) + set_rule(world.get_location('Goron City Leftmost Maze Chest'), lambda state: state.can_use('Hammer') or state.can_use('Silver Gauntlets')) + set_rule(world.get_location('Goron City Left Maze Chest'), lambda state: state.can_blast_or_smash() or state.can_use('Silver Gauntlets')) + set_rule(world.get_location('Goron City Right Maze Chest'), lambda state: state.can_blast_or_smash() or state.can_use('Silver Gauntlets')) set_rule(world.get_location('Rolling Goron as Child'), lambda state: state.has('Bomb Bag')) - set_rule(world.get_location('Goron City Pot Freestanding PoH'), lambda state: (state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) and (state.can_play('Zeldas Lullaby') or (state.has('Dins Fire') and state.has('Magic Meter')))) + set_rule(world.get_location('Goron City Pot Freestanding PoH'), lambda state: (state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) and (state.can_play('Zeldas Lullaby') or state.can_use('Dins Fire'))) set_rule(world.get_entrance('Darunias Chamber'), lambda state: state.can_play('Zeldas Lullaby')) set_rule(world.get_location('Darunias Joy'), lambda state: state.can_play('Sarias Song')) - set_rule(world.get_entrance('Goron City from Woods'), lambda state: (state.can_blast_or_smash() or (state.has('Dins Fire') and state.has('Magic Meter')) or ((state.has('Bow') or state.has('Progressive Strength Upgrade')) and state.is_adult())) and state.can_leave_forest()) - set_rule(world.get_location('King Dodongo'), lambda state: state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) - set_rule(world.get_location('King Dodongo Heart'), lambda state: state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) + set_rule(world.get_entrance('Goron City from Woods'), lambda state: (state.can_blast_or_smash() or state.can_use('Dins Fire') or ((state.has('Bow') or state.has('Progressive Strength Upgrade')) and state.is_adult())) and state.can_leave_forest()) set_rule(world.get_location('Song from Saria'), lambda state: state.has('Zeldas Letter')) set_rule(world.get_entrance('Mountain Summit Fairy'), lambda state: state.can_blast_or_smash()) set_rule(world.get_location('Crater Fairy Reward'), lambda state: state.can_play('Zeldas Lullaby')) @@ -159,21 +157,21 @@ def global_rules(world): set_rule(world.get_location('Hyrule Castle Fairy Reward'), lambda state: state.can_play('Zeldas Lullaby')) set_rule(world.get_entrance('Hyrule Castle Garden'), lambda state: state.has('Weird Egg') or (not world.shuffle_weird_egg)) set_rule(world.get_entrance('Ganons Castle Grounds'), lambda state: state.is_adult()) - set_rule(world.get_entrance('Ganons Castle Fairy'), lambda state: state.has('Progressive Strength Upgrade', 3)) + set_rule(world.get_entrance('Ganons Castle Fairy'), lambda state: state.can_use('Golden Gauntlets')) set_rule(world.get_location('Ganons Castle Fairy Reward'), lambda state: state.can_play('Zeldas Lullaby')) set_rule(world.get_location('Bombchu Bowling Bomb Bag'), lambda state: state.has_bombchus()) set_rule(world.get_location('Bombchu Bowling Piece of Heart'), lambda state: state.has_bombchus()) - set_rule(world.get_location('Adult Shooting Gallery'), lambda state: state.has('Bow') and state.is_adult()) - set_rule(world.get_location('10 Big Poes'), lambda state: (not world.logic_no_big_poes) and (state.has('Bow') and state.has('Epona') and state.has_bottle() and state.is_adult() and state.guarantee_hint())) - set_rule(world.get_location('Treasure Chest Game'), lambda state: state.has('Lens of Truth') and state.has('Magic Meter')) + set_rule(world.get_location('Adult Shooting Gallery'), lambda state: state.can_use('Bow')) + set_rule(world.get_location('10 Big Poes'), lambda state: (not world.logic_no_big_poes) and state.can_use('Bow') and state.has('Epona') and state.has_bottle() and state.guarantee_hint()) + set_rule(world.get_location('Treasure Chest Game'), lambda state: state.can_use('Lens of Truth')) set_rule(world.get_entrance('Lost Woods Dive Warp'), lambda state: state.can_dive() and state.can_leave_forest()) set_rule(world.get_entrance('Zora River Dive Warp'), lambda state: state.can_dive()) set_rule(world.get_entrance('Lake Hylia Dive Warp'), lambda state: state.can_dive()) set_rule(world.get_entrance('Zoras Domain Dive Warp'), lambda state: state.can_dive()) set_rule(world.get_entrance('Zora River Waterfall'), lambda state: state.can_play('Zeldas Lullaby') or world.logic_zora_with_cucco) set_rule(world.get_entrance('Zora River Rocks'), lambda state: state.has_explosives()) - set_rule(world.get_location('Zora River Lower Freestanding PoH'), lambda state: state.has_explosives() or state.has('Progressive Scale') or (state.has('Hover Boots') and state.is_adult())) - set_rule(world.get_location('Zora River Upper Freestanding PoH'), lambda state: state.has_explosives() or state.has('Progressive Scale') or (state.has('Hover Boots') and state.is_adult())) + set_rule(world.get_location('Zora River Lower Freestanding PoH'), lambda state: state.has_explosives() or state.has('Progressive Scale') or state.can_use('Hover Boots')) + set_rule(world.get_location('Zora River Upper Freestanding PoH'), lambda state: state.has_explosives() or state.has('Progressive Scale') or state.can_use('Hover Boots')) set_rule(world.get_location('Frog Ocarina Game'), lambda state: state.can_play('Zeldas Lullaby') and state.can_play('Sarias Song') and state.can_play('Suns Song') and state.can_play('Eponas Song') and state.can_play('Song of Time') and state.can_play('Song of Storms')) set_rule(world.get_location('Frogs in the Rain'), lambda state: state.can_play('Song of Storms')) set_rule(world.get_location('Underwater Bottle'), lambda state: state.can_dive()) @@ -194,27 +192,27 @@ def global_rules(world): set_rule(world.get_entrance('Adult Forest Warp Pad'), lambda state: state.can_play('Minuet of Forest') and state.is_adult()) set_rule(world.get_entrance('Child Forest Warp Pad'), lambda state: state.can_play('Minuet of Forest')) set_rule(world.get_entrance('Adult Meadow Access'), lambda state: state.can_play('Sarias Song') and state.is_adult()) - set_rule(world.get_entrance('Forest Temple Entrance'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) + set_rule(world.get_entrance('Forest Temple Entrance'), lambda state: state.can_use('Hookshot')) set_rule(world.get_entrance('Dampes Grave'), lambda state: state.is_adult()) set_rule(world.get_location('Dampe Race Freestanding PoH'), lambda state: not world.logic_no_second_dampe_race) - set_rule(world.get_location('Graveyard Freestanding PoH'), lambda state: state.is_adult() and (state.has('Magic Bean') or state.has('Progressive Hookshot', 2))) + set_rule(world.get_location('Graveyard Freestanding PoH'), lambda state: state.can_use('Magic Bean') or state.can_use('Longshot')) set_rule(world.get_location('Song at Windmill'), lambda state: state.is_adult() and state.has_ocarina()) - set_rule(world.get_location('Windmill Freestanding PoH'), lambda state: (state.is_adult() and ( world.logic_windmill_hp or state.can_play('Song of Time') )) or state.has('Boomerang')) + set_rule(world.get_location('Windmill Freestanding PoH'), lambda state: (state.is_adult() and (world.logic_windmill_hp or state.can_play('Song of Time'))) or state.has('Boomerang')) set_rule(world.get_entrance('Temple Warp Pad'), lambda state: state.can_play('Prelude of Light') and state.can_leave_forest()) set_rule(world.get_location('Sheik at Temple'), lambda state: state.has('Forest Medallion') and state.is_adult()) set_rule(world.get_location('Diving in the Lab'), lambda state: state.has('Progressive Scale', 2)) set_rule(world.get_location('Child Fishing'), lambda state: (not world.logic_no_child_fishing) and state.has('Kokiri Sword')) - set_rule(world.get_location('Adult Fishing'), lambda state: (not world.logic_no_adult_fishing) and state.is_adult() and ((state.has('Progressive Hookshot') and state.has_ocarina()) or state.has('Magic Bean') or state.can_reach(world.get_location('Morpha')))) - set_rule(world.get_location('Lake Hylia Freestanding PoH'), lambda state: state.is_adult() and ((state.has('Progressive Hookshot') and state.has_ocarina()) or state.has('Magic Bean'))) - set_rule(world.get_location('Lake Hylia Sun'), lambda state: ((state.has('Progressive Hookshot', 2) and state.has_ocarina()) or state.can_reach(world.get_location('Morpha'))) and state.has('Bow') and state.is_adult()) - set_rule(world.get_entrance('Crater Hover Boots'), lambda state: state.is_adult() and state.has('Hover Boots')) + set_rule(world.get_location('Adult Fishing'), lambda state: (not world.logic_no_adult_fishing) and (state.can_use('Scarecrow') or state.can_use('Magic Bean') or state.can_reach(world.get_location('Morpha')))) + set_rule(world.get_location('Lake Hylia Freestanding PoH'), lambda state: state.can_use('Scarecrow') or state.can_use('Magic Bean')) + set_rule(world.get_location('Lake Hylia Sun'), lambda state: (state.can_use('Distant Scarecrow') or state.can_reach(world.get_location('Morpha'))) and state.can_use('Bow')) + set_rule(world.get_entrance('Crater Hover Boots'), lambda state: state.can_use('Hover Boots')) set_rule(world.get_entrance('Crater Ascent'), lambda state: state.is_adult()) - set_rule(world.get_entrance('Crater Scarecrow'), lambda state: state.is_adult() and state.has_ocarina() and state.has('Progressive Hookshot', 2)) - set_rule(world.get_entrance('Crater Bridge'), lambda state: state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot'))) - set_rule(world.get_entrance('Crater Bridge Reverse'), lambda state: state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot') or state.has('Magic Bean'))) + set_rule(world.get_entrance('Crater Scarecrow'), lambda state: state.has_ocarina() and state.can_use('Longshot')) + set_rule(world.get_entrance('Crater Bridge'), lambda state: state.can_use('Hover Boots') or state.can_use('Hookshot')) + set_rule(world.get_entrance('Crater Bridge Reverse'), lambda state: state.can_use('Hover Boots') or state.can_use('Hookshot') or state.can_use('Magic Bean')) set_rule(world.get_entrance('Crater Warp Pad'), lambda state: state.can_play('Bolero of Fire') and state.can_leave_forest()) - set_rule(world.get_entrance('Crater Fairy'), lambda state: state.is_adult() and state.has('Hammer')) - set_rule(world.get_location('DM Crater Volcano Freestanding PoH'), lambda state: state.is_adult() and ( (state.has('Magic Bean') and state.can_play('Bolero of Fire')) or (world.logic_crater_bean_hp_with_hovers and state.has('Hover Boots')) ) ) + set_rule(world.get_entrance('Crater Fairy'), lambda state: state.can_use('Hammer')) + set_rule(world.get_location('DM Crater Volcano Freestanding PoH'), lambda state: (state.can_use('Magic Bean') and state.can_play('Bolero of Fire')) or (world.logic_crater_bean_hp_with_hovers and state.can_use('Hover Boots'))) set_rule(world.get_entrance('Fire Temple Entrance'), lambda state: state.is_adult() and (world.logic_fewer_tunic_requirements or state.has_GoronTunic())) set_rule(world.get_location('Sheik in Crater'), lambda state: state.is_adult()) set_rule(world.get_location('Link the Goron'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade') or state.has_explosives() or state.has('Bow'))) @@ -222,32 +220,32 @@ def global_rules(world): set_rule(world.get_entrance('Lake Warp Pad'), lambda state: state.can_play('Serenade of Water') and state.can_leave_forest()) set_rule(world.get_location('King Zora Thawed'), lambda state: state.has_bottle() and (state.can_reach('Ice Cavern') or state.can_reach('Ganons Castle Water Trial') or state.has('Progressive Wallet', 2))) set_rule(world.get_location('Zoras Fountain Bottom Freestanding PoH'), lambda state: state.has('Iron Boots') and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic())) - set_rule(world.get_entrance('Water Temple Entrance'), lambda state: state.is_adult() and state.has('Iron Boots') and state.has('Progressive Hookshot') and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic())) + set_rule(world.get_entrance('Water Temple Entrance'), lambda state: state.has('Iron Boots') and state.can_use('Hookshot') and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic())) set_rule(world.get_location('Sheik in Kakariko'), lambda state: state.is_adult() and state.has('Forest Medallion') and state.has('Fire Medallion') and state.has('Water Medallion')) set_rule(world.get_entrance('Graveyard Warp Pad'), lambda state: state.can_play('Nocturne of Shadow') and state.can_leave_forest()) - set_rule(world.get_entrance('Shadow Temple Entrance'), lambda state: state.has('Dins Fire') and state.has('Magic Meter') and state.can_see_with_lens() and state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot'))) - set_rule(world.get_entrance('Bridge Crossing'), lambda state: (state.has('Epona') or state.has('Progressive Hookshot', 2) or world.gerudo_fortress == 'open') and state.is_adult()) - set_rule(world.get_location('Gerudo Valley Hammer Rocks Chest'), lambda state: state.has('Hammer') and state.is_adult()) - set_rule(world.get_location('Gerudo Fortress North F2 Carpenter'), lambda state: (state.has('Bow') or state.has('Progressive Hookshot') or state.has('Hover Boots')) and state.is_adult()) - set_rule(world.get_location('Gerudo Fortress Carpenter Rescue'), lambda state: ( (world.gerudo_fortress == 'normal' and state.has('Small Key (Gerudo Fortress)', 4) and (state.has('Bow') or state.has('Progressive Hookshot') or state.has('Hover Boots'))) or (world.gerudo_fortress == 'fast' and state.has('Small Key (Gerudo Fortress)', 1)) or world.gerudo_fortress == 'open') and state.is_adult()) - set_rule(world.get_location('Gerudo Fortress Membership Card'), lambda state: ( (world.gerudo_fortress == 'normal' and state.has('Small Key (Gerudo Fortress)', 4) and (state.has('Bow') or state.has('Progressive Hookshot') or state.has('Hover Boots'))) or (world.gerudo_fortress == 'fast' and state.has('Small Key (Gerudo Fortress)', 1)) or world.gerudo_fortress == 'open') and state.is_adult()) + set_rule(world.get_entrance('Shadow Temple Entrance'), lambda state: state.can_use('Dins Fire') and state.can_see_with_lens() and (state.can_use('Hover Boots') or state.can_use('Hookshot'))) + set_rule(world.get_entrance('Bridge Crossing'), lambda state: state.has('Epona') or state.can_use('Longshot') or ((world.gerudo_fortress == 'open') and state.is_adult())) + set_rule(world.get_location('Gerudo Valley Hammer Rocks Chest'), lambda state: state.can_use('Hammer')) + set_rule(world.get_location('Gerudo Fortress North F2 Carpenter'), lambda state: state.can_use('Bow') or state.can_use('Hookshot') or state.can_use('Hover Boots')) + set_rule(world.get_location('Gerudo Fortress Carpenter Rescue'), lambda state: state.can_finish_GerudoFortress()) + set_rule(world.get_location('Gerudo Fortress Membership Card'), lambda state: state.can_finish_GerudoFortress()) set_rule(world.get_entrance('Gerudo Training Grounds Entrance'), lambda state: state.has('Carpenter Rescue') and state.has('Gerudo Membership Card') and state.is_adult()) - set_rule(world.get_entrance('Haunted Wasteland Entrance'), lambda state: state.has('Carpenter Rescue') and state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot', 2))) - set_rule(world.get_entrance('Haunted Wasteland Crossing'), lambda state: (world.logic_lens == 'chest') or (state.has('Lens of Truth') and state.has('Magic Meter'))) + set_rule(world.get_entrance('Haunted Wasteland Entrance'), lambda state: state.has('Carpenter Rescue') and (state.can_use('Hover Boots') or state.can_use('Longshot'))) + set_rule(world.get_entrance('Haunted Wasteland Crossing'), lambda state: (world.logic_lens == 'chest') or state.can_use('Lens of Truth')) set_rule(world.get_entrance('Colossus Warp Pad'), lambda state: state.can_play('Requiem of Spirit') and state.can_leave_forest()) set_rule(world.get_entrance('Colossus Fairy'), lambda state: state.has_explosives()) - set_rule(world.get_location('Colossus Freestanding PoH'), lambda state: state.can_play('Requiem of Spirit') and state.has('Magic Bean') and state.is_adult()) + set_rule(world.get_location('Colossus Freestanding PoH'), lambda state: state.can_play('Requiem of Spirit') and state.can_use('Magic Bean')) set_rule(world.get_location('Desert Colossus Fairy Reward'), lambda state: state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('Gerudo Fortress Rooftop Chest'), lambda state: (state.has('Hover Boots') or (state.has('Progressive Hookshot') and state.has_ocarina()) or (state.has('Progressive Hookshot', 2))) and state.is_adult()) - set_rule(world.get_location('Horseback Archery 1000 Points'), lambda state: state.has('Carpenter Rescue') and state.has('Epona') and state.has('Bow') and state.is_adult()) - set_rule(world.get_location('Horseback Archery 1500 Points'), lambda state: (not world.logic_no_1500_archery) and (state.has('Carpenter Rescue') and state.has('Epona') and state.has('Bow') and state.is_adult())) + set_rule(world.get_location('Gerudo Fortress Rooftop Chest'), lambda state: state.can_use('Hover Boots') or state.can_use('Scarecrow') or state.can_use('Longshot')) + set_rule(world.get_location('Horseback Archery 1000 Points'), lambda state: state.has('Carpenter Rescue') and state.has('Epona') and state.can_use('Bow')) + set_rule(world.get_location('Horseback Archery 1500 Points'), lambda state: (not world.logic_no_1500_archery) and (state.has('Carpenter Rescue') and state.has('Epona') and state.can_use('Bow'))) set_rule(world.get_location('Haunted Wasteland Structure Chest'), lambda state: state.has_fire_source()) set_rule(world.get_location('Zelda'), lambda state: state.has('Shadow Medallion') and state.has('Spirit Medallion') and state.is_adult()) - set_rule(world.get_location('Ganon'), lambda state: (state.has('Boss Key (Ganons Castle)') or world.unlocked_ganondorf) and (state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows')) ) + set_rule(world.get_location('Ganon'), lambda state: (state.has('Boss Key (Ganons Castle)') or world.unlocked_ganondorf) and state.can_use('Light Arrows')) set_rule(world.get_entrance('Kokiri Forest Storms Grotto'), lambda state: state.can_play('Song of Storms')) set_rule(world.get_entrance('Lost Woods Generic Grotto'), lambda state: state.has('Bomb Bag') or (state.can_blast_or_smash() and state.can_leave_forest())) - set_rule(world.get_entrance('Lost Woods Sales Grotto'), lambda state: (state.has('Bomb Bag') or (state.has_bombchus() and state.can_leave_forest())) or (state.has('Hammer') and state.is_adult() and (state.can_play('Minuet of Forest') or state.can_play('Sarias Song')))) - set_rule(world.get_entrance('Front of Meadow Grotto'), lambda state: (state.has('Bomb Bag') or (state.has_bombchus() and state.can_leave_forest())) or (state.has('Hammer') and state.is_adult() and (state.can_play('Minuet of Forest') or state.can_play('Sarias Song')))) + set_rule(world.get_entrance('Lost Woods Sales Grotto'), lambda state: (state.has('Bomb Bag') or (state.has_bombchus() and state.can_leave_forest())) or (state.can_use('Hammer') and (state.can_play('Minuet of Forest') or state.can_play('Sarias Song')))) + set_rule(world.get_entrance('Front of Meadow Grotto'), lambda state: (state.has('Bomb Bag') or (state.has_bombchus() and state.can_leave_forest())) or (state.can_use('Hammer') and (state.can_play('Minuet of Forest') or state.can_play('Sarias Song')))) set_rule(world.get_entrance('Remote Southern Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Field Near Lake Inside Fence Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Field Valley Grotto'), lambda state: state.can_blast_or_smash()) @@ -262,16 +260,16 @@ def global_rules(world): set_rule(world.get_entrance('Top of Crater Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Zora River Plateau Open Grotto'), lambda state: state.has_explosives() or state.has('Progressive Scale') or state.is_adult()) set_rule(world.get_entrance('Zora River Plateau Bombable Grotto'), lambda state: state.can_blast_or_smash()) - set_rule(world.get_location('Tektite Grotto Freestanding PoH'), lambda state: state.has('Progressive Scale', 2) or (state.has('Iron Boots') and state.is_adult())) + set_rule(world.get_location('Tektite Grotto Freestanding PoH'), lambda state: state.has('Progressive Scale', 2) or state.can_use('Iron Boots')) set_rule(world.get_location('GS Kokiri Know It All House'), lambda state: state.nighttime() and state.can_leave_forest()) set_rule(world.get_location('GS Kokiri Bean Patch'), lambda state: state.has_bottle()) - set_rule(world.get_location('GS Kokiri House of Twins'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.nighttime()) + set_rule(world.get_location('GS Kokiri House of Twins'), lambda state: state.can_use('Hookshot') and state.nighttime()) set_rule(world.get_location('GS Lost Woods Bean Patch Near Bridge'), lambda state: state.has_bottle()) set_rule(world.get_location('GS Lost Woods Bean Patch Near Stage'), lambda state: state.has_bottle()) set_rule(world.get_location('GS Lost Woods Above Stage'), lambda state: state.has('Magic Bean') and state.nighttime()) - set_rule(world.get_location('GS Sacred Forest Meadow'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.nighttime()) - set_rule(world.get_location('GS Hyrule Field near Kakariko'), lambda state: (state.has('Boomerang') and state.has_explosives()) or (state.has('Progressive Hookshot') and state.is_adult())) - set_rule(world.get_location('GS Hyrule Field Near Gerudo Valley'), lambda state: (state.has('Hammer') and state.has_fire_source() and state.has('Progressive Hookshot') and state.is_adult()) or (state.has('Boomerang') and state.has_explosives() and state.has('Dins Fire') and state.has('Magic Meter'))) + set_rule(world.get_location('GS Sacred Forest Meadow'), lambda state: state.can_use('Hookshot') and state.nighttime()) + set_rule(world.get_location('GS Hyrule Field near Kakariko'), lambda state: (state.has('Boomerang') and state.has_explosives()) or state.can_use('Hookshot')) + set_rule(world.get_location('GS Hyrule Field Near Gerudo Valley'), lambda state: (state.has('Hammer') and state.has_fire_source() and state.can_use('Hookshot')) or (state.has('Boomerang') and state.has_explosives() and state.can_use('Dins Fire'))) set_rule(world.get_location('GS Hyrule Castle Grotto'), lambda state: state.has('Boomerang') and state.has_explosives()) set_rule(world.get_location('GS Lon Lon Ranch Rain Shed'), lambda state: state.nighttime()) set_rule(world.get_location('GS Lon Lon Ranch House Window'), lambda state: state.has('Boomerang') and state.nighttime()) @@ -281,38 +279,38 @@ def global_rules(world): set_rule(world.get_location('GS Kakariko Guard\'s House'), lambda state: state.nighttime()) set_rule(world.get_location('GS Kakariko Tree'), lambda state: state.nighttime()) set_rule(world.get_location('GS Kakariko Watchtower'), lambda state: (state.has('Slingshot') or state.has_bombchus()) and state.nighttime()) - set_rule(world.get_location('GS Kakariko Above Impa\'s House'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.nighttime()) + set_rule(world.get_location('GS Kakariko Above Impa\'s House'), lambda state: state.can_use('Hookshot') and state.nighttime()) set_rule(world.get_location('GS Graveyard Wall'), lambda state: state.has('Boomerang') and state.nighttime()) set_rule(world.get_location('GS Graveyard Bean Patch'), lambda state: state.has_bottle()) set_rule(world.get_location('GS Mountain Trail Bean Patch'), lambda state: state.has_bottle() and (state.has_explosives() or state.has('Progressive Strength Upgrade'))) set_rule(world.get_location('GS Mountain Trail Bomb Alcove'), lambda state: state.can_blast_or_smash()) - set_rule(world.get_location('GS Mountain Trail Path to Crater'), lambda state: state.has('Hammer') and state.is_adult() and state.nighttime()) - set_rule(world.get_location('GS Mountain Trail Above Dodongo\'s Cavern'), lambda state: state.has('Hammer') and state.is_adult() and state.nighttime()) + set_rule(world.get_location('GS Mountain Trail Path to Crater'), lambda state: state.can_use('Hammer') and state.nighttime()) + set_rule(world.get_location('GS Mountain Trail Above Dodongo\'s Cavern'), lambda state: state.can_use('Hammer') and state.nighttime()) set_rule(world.get_location('GS Goron City Boulder Maze'), lambda state: state.has_explosives()) set_rule(world.get_location('GS Goron City Center Platform'), lambda state: state.is_adult()) + set_rule(world.get_location('GS Death Mountain Crater Crate'), lambda state: state.can_blast_or_smash()) set_rule(world.get_location('GS Mountain Crater Bean Patch'), lambda state: state.can_play('Bolero of Fire') and state.has_bottle()) set_rule(world.get_location('GS Zora River Ladder'), lambda state: state.nighttime()) - set_rule(world.get_location('GS Zora River Near Raised Grottos'), lambda state: state.has('Progressive Hookshot') and state.nighttime()) - set_rule(world.get_location('GS Zora River Above Bridge'), lambda state: state.has('Progressive Hookshot') and state.nighttime()) + set_rule(world.get_location('GS Zora River Near Raised Grottos'), lambda state: state.can_use('Hookshot') and state.nighttime()) + set_rule(world.get_location('GS Zora River Above Bridge'), lambda state: state.can_use('Hookshot') and state.nighttime()) set_rule(world.get_location('GS Zora\'s Domain Frozen Waterfall'), lambda state: state.nighttime() and (state.has('Progressive Hookshot') or state.has('Bow') or state.has('Magic Meter'))) set_rule(world.get_location('GS Zora\'s Fountain Above the Log'), lambda state: state.has('Boomerang') and state.nighttime()) set_rule(world.get_location('GS Zora\'s Fountain Hidden Cave'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.can_blast_or_smash() and state.has('Progressive Hookshot') and state.nighttime()) -# Jabu Jabu GS need no reqs becuase the access reqs for their zones cover them. set_rule(world.get_location('GS Lake Hylia Bean Patch'), lambda state: state.has_bottle()) set_rule(world.get_location('GS Lake Hylia Lab Wall'), lambda state: state.has('Boomerang') and state.nighttime()) set_rule(world.get_location('GS Lake Hylia Small Island'), lambda state: state.nighttime()) - set_rule(world.get_location('GS Lake Hylia Giant Tree'), lambda state: state.is_adult() and state.has('Progressive Hookshot', 2)) - set_rule(world.get_location('GS Lab Underwater Crate'), lambda state: state.is_adult() and state.has('Iron Boots') and state.has('Progressive Hookshot')) + set_rule(world.get_location('GS Lake Hylia Giant Tree'), lambda state: state.can_use('Longshot')) + set_rule(world.get_location('GS Lab Underwater Crate'), lambda state: state.has('Iron Boots') and state.can_use('Hookshot')) set_rule(world.get_location('GS Gerudo Valley Small Bridge'), lambda state: state.has('Boomerang') and state.nighttime()) set_rule(world.get_location('GS Gerudo Valley Bean Patch'), lambda state: state.has_bottle()) - set_rule(world.get_location('GS Gerudo Valley Behind Tent'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.nighttime()) - set_rule(world.get_location('GS Gerudo Valley Pillar'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.nighttime()) - set_rule(world.get_location('GS Gerudo Fortress Archery Range'), lambda state: state.has('Progressive Hookshot') and state.has('Carpenter Rescue') and state.is_adult() and state.nighttime()) + set_rule(world.get_location('GS Gerudo Valley Behind Tent'), lambda state: state.can_use('Hookshot') and state.nighttime()) + set_rule(world.get_location('GS Gerudo Valley Pillar'), lambda state: state.can_use('Hookshot') and state.nighttime()) + set_rule(world.get_location('GS Gerudo Fortress Archery Range'), lambda state: state.can_use('Hookshot') and state.has('Carpenter Rescue') and state.nighttime()) set_rule(world.get_location('GS Gerudo Fortress Top Floor'), lambda state: state.nighttime()) - set_rule(world.get_location('GS Wasteland Ruins'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) + set_rule(world.get_location('GS Wasteland Ruins'), lambda state: state.can_use('Hookshot')) set_rule(world.get_location('GS Desert Colossus Bean Patch'), lambda state: state.has_bottle() and state.can_play('Requiem of Spirit')) - set_rule(world.get_location('GS Desert Colossus Tree'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.nighttime()) - set_rule(world.get_location('GS Desert Colossus Hill'), lambda state: ((state.has('Magic Bean') and state.can_play('Requiem of Spirit')) or state.has('Progressive Hookshot', 2)) and state.is_adult() and state.nighttime()) + set_rule(world.get_location('GS Desert Colossus Tree'), lambda state: state.can_use('Hookshot') and state.nighttime()) + set_rule(world.get_location('GS Desert Colossus Hill'), lambda state: ((state.can_use('Magic Bean') and state.can_play('Requiem of Spirit')) or state.can_use('Longshot')) and state.nighttime()) for location in world.get_locations(): if location.type != 'Chest': @@ -346,14 +344,18 @@ def dung_rules_dtmq(world): # Dodongo's Cavern Vanilla def dung_rules_dc0(world): set_rule(world.get_entrance('Dodongos Cavern Lobby'), lambda state: state.can_blast_or_smash() or state.has('Progressive Strength Upgrade')) - set_rule(world.get_entrance('Dodongos Cavern Left Door'), lambda state: state.has_explosives() or state.has('Progressive Strength Upgrade') or (state.has('Dins Fire') and state.has('Magic Meter')) or (state.has('Bow') and state.is_adult())) - set_rule(world.get_entrance('Dodongos Cavern Slingshot Target'), lambda state: state.has('Slingshot') or ((state.has('Bow') or state.has('Hover Boots') or state.has('Progressive Hookshot', 2) or world.logic_dc_jump) and state.is_adult())) - set_rule(world.get_location('Dodongos Cavern End of Bridge Chest'), lambda state: state.has_explosives() or ((state.has('Bow') or state.has('Hover Boots') or state.has('Progressive Hookshot', 2) or world.logic_dc_jump) and state.is_adult() and state.has('Hammer'))) + set_rule(world.get_entrance('Dodongos Cavern Left Door'), lambda state: state.has_explosives() or state.has('Progressive Strength Upgrade') or state.can_use('Dins Fire') or state.can_use('Bow')) + set_rule(world.get_entrance('Dodongos Cavern Slingshot Target'), lambda state: (state.has('Slingshot') and (state.has_explosives() or state.has('Progressive Strength Upgrade'))) or state.can_use('Bow') or state.can_use('Hover Boots') or state.can_use('Longshot') or (world.logic_dc_jump and state.is_adult())) + set_rule(world.get_location('Dodongos Cavern End of Bridge Chest'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Dodongos Cavern Bomb Drop'), lambda state: state.has_explosives()) + # Boss + set_rule(world.get_location('King Dodongo'), lambda state: state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) + set_rule(world.get_location('King Dodongo Heart'), lambda state: state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) + # GS - set_rule(world.get_location('GS Dodongo\'s Cavern Alcove Above Stairs'), lambda state: (state.has('Progressive Hookshot') and state.is_adult()) or (state.has('Boomerang') and (state.has_explosives() or state.has('Progressive Strength Upgrade')))) - set_rule(world.get_location('GS Dodongo\'s Cavern Scarecrow'), lambda state: state.is_adult() and ( (state.has('Progressive Hookshot') and state.has_ocarina()) or state.has('Progressive Hookshot', 2) )) + set_rule(world.get_location('GS Dodongo\'s Cavern Alcove Above Stairs'), lambda state: state.can_use('Hookshot') or (state.has('Boomerang') and (state.has_explosives() or state.has('Progressive Strength Upgrade')))) + set_rule(world.get_location('GS Dodongo\'s Cavern Scarecrow'), lambda state: state.can_use('Scarecrow') or state.can_use('Longshot')) # Dodongo's Cavern MQ def dung_rules_dcmq(world): @@ -362,11 +364,16 @@ def dung_rules_dcmq(world): set_rule(world.get_location('Dodongos Cavern MQ Larva Room Chest'), lambda state: state.has_explosives or state.has('Progressive Strength Upgrade') or state.has_fire_source()) set_rule(world.get_location('Dodongos Cavern MQ Bomb Bag Chest'), lambda state: state.has('Slingshot') or state.is_adult()) + # Boss + set_rule(world.get_location('King Dodongo'), lambda state: state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) + set_rule(world.get_location('King Dodongo Heart'), lambda state: state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) + # GS set_rule(world.get_location('GS Dodongo\'s Cavern MQ Song of Time Block Room'), lambda state: state.can_play('Song of Time')) set_rule(world.get_location('GS Dodongo\'s Cavern MQ Larva Room'), lambda state: state.has_explosives or state.has('Progressive Strength Upgrade') or state.has_fire_source()) set_rule(world.get_location('GS Dodongo\'s Cavern MQ Lizalfos Room'), lambda state: state.can_blast_or_smash()) - set_rule(world.get_location('GS Dodongo\'s Cavern MQ Scrub Room'), lambda state: ((state.has('Slingshot') or (state.is_adult() and state.has_explosives())) and state.has('Boomerang') and (state.has_explosives() or state.has('Progressive Strength Upgrade'))) or (state.is_adult() and state.has('Progressive Hookshot') and (state.has_explosives() or state.has('Progressive Strength Upgrade') or state.has('Bow') or (state.has('Dins Fire') and state.has('Magic Meter'))))) # You may have to kill the lower Lizalfos as adult, then use Bombs to jump down from the upper Lizalfos as child, so you can use the Boomerang to get this GS without needing the Slingshot. (Or you could do the jumpslash recoil, but that's not in logic.) + set_rule(world.get_location('GS Dodongo\'s Cavern MQ Scrub Room'), lambda state: ((state.has('Slingshot') or (state.is_adult() and state.has_explosives())) and state.has('Boomerang') and (state.has_explosives() or state.has('Progressive Strength Upgrade'))) or (state.can_use('Hookshot') and (state.has_explosives() or state.has('Progressive Strength Upgrade') or state.has('Bow') or state.can_use('Dins Fire')))) + # You may have to kill the lower Lizalfos as adult, then use Bombs to jump down from the upper Lizalfos as child, so you can use the Boomerang to get this GS without needing the Slingshot. (Or you could do the jumpslash recoil, but that's not in logic.) # Jabu Jabu's Belly Vanilla def dung_rules_jb0(world): @@ -387,29 +394,29 @@ def dung_rules_jbmq(world): # Forest Temple Vanilla def dung_rules_fot0(world): set_rule(world.get_entrance('Forest Temple Song of Time Block'), lambda state: state.can_play('Song of Time')) - set_rule(world.get_entrance('Forest Temple Lobby Eyeball Switch'), lambda state: state.has('Bow') and state.is_adult()) + set_rule(world.get_entrance('Forest Temple Lobby Eyeball Switch'), lambda state: state.can_use('Bow')) set_rule(world.get_entrance('Forest Temple Lobby Locked Door'), lambda state: state.has('Small Key (Forest Temple)', 1)) - set_rule(world.get_entrance('Forest Temple Well Connection'), lambda state: ((state.has('Iron Boots') or state.has('Progressive Hookshot', 2)) and state.is_adult()) or state.has('Progressive Scale', 2)) #Longshot can grab some very high up vines to drain the well. + set_rule(world.get_entrance('Forest Temple Well Connection'), lambda state: state.can_use('Iron Boots') or state.can_use('Longshot') or state.has('Progressive Scale', 2)) #Longshot can grab some very high up vines to drain the well. set_rule(world.get_entrance('Forest Temple Scarecrows Song'), lambda state: False) #For some reason you can't actually activate this from below. Cool game. - set_rule(world.get_entrance('Forest Temple Elevator'), lambda state: state.has('Bow') and state.is_adult() and state.has('Progressive Strength Upgrade') and state.has('Small Key (Forest Temple)', 3)) - set_rule(world.get_entrance('Forest Temple Outside Backdoor'), lambda state: state.has('Hover Boots') and state.is_adult()) + set_rule(world.get_entrance('Forest Temple Elevator'), lambda state: state.can_use('Bow')) + set_rule(world.get_entrance('Forest Temple Outside Backdoor'), lambda state: state.can_use('Hover Boots')) set_rule(world.get_entrance('Forest Temple Twisted Hall'), lambda state: state.has('Progressive Strength Upgrade') and state.has('Small Key (Forest Temple)', 3)) - set_rule(world.get_entrance('Forest Temple Straightened Hall'), lambda state: state.has('Progressive Strength Upgrade') and state.has('Small Key (Forest Temple)', 2) and state.has('Bow')) - set_rule(world.get_entrance('Forest Temple Drop to Falling Room'), lambda state: state.has('Small Key (Forest Temple)', 5) and (state.has('Bow') or (state.has('Dins Fire') and state.has('Magic Meter')))) - set_rule(world.get_location('Forest Temple Block Push Chest'), lambda state: state.has('Progressive Strength Upgrade') and state.has('Bow') and state.is_adult()) - set_rule(world.get_location('Forest Temple Red Poe Chest'), lambda state: state.has('Bow') and state.is_adult()) - set_rule(world.get_location('Forest Temple Blue Poe Chest'), lambda state: state.has('Bow') and state.is_adult()) + set_rule(world.get_entrance('Forest Temple Straightened Hall'), lambda state: state.has('Progressive Strength Upgrade') and state.has('Small Key (Forest Temple)', 2) and state.can_use('Bow')) + set_rule(world.get_entrance('Forest Temple Drop to Falling Room'), lambda state: state.has('Small Key (Forest Temple)', 5) and (state.has('Bow') or state.can_use('Dins Fire'))) + set_rule(world.get_location('Forest Temple Block Push Chest'), lambda state: state.has('Progressive Strength Upgrade') and state.can_use('Bow')) + set_rule(world.get_location('Forest Temple Red Poe Chest'), lambda state: state.can_use('Bow')) + set_rule(world.get_location('Forest Temple Blue Poe Chest'), lambda state: state.can_use('Bow')) # Boss set_rule(world.get_location('Phantom Ganon'), lambda state: state.has('Boss Key (Forest Temple)')) set_rule(world.get_location('Phantom Ganon Heart'), lambda state: state.has('Boss Key (Forest Temple)')) # GS - set_rule(world.get_location('GS Forest Temple First Room'), lambda state: (state.has('Progressive Hookshot') or state.has('Bow') or (state.has('Dins Fire') and state.has('Magic Meter'))) and state.is_adult()) - set_rule(world.get_location('GS Forest Temple Lobby'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('GS Forest Temple Outdoor East'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('GS Forest Temple Outdoor West'), lambda state: (state.has('Progressive Hookshot', 2) or (state.has('Progressive Hookshot') and state.can_reach('Forest Temple Outside Upper Ledge'))) and state.is_adult()) - set_rule(world.get_location('GS Forest Temple Basement'), lambda state: state.has('Progressive Hookshot')) + set_rule(world.get_location('GS Forest Temple First Room'), lambda state: state.can_use('Hookshot') or state.can_use('Bow') or state.can_use('Dins Fire')) + set_rule(world.get_location('GS Forest Temple Lobby'), lambda state: state.can_use('Hookshot')) + set_rule(world.get_location('GS Forest Temple Outdoor East'), lambda state: state.can_use('Hookshot')) + set_rule(world.get_location('GS Forest Temple Outdoor West'), lambda state: state.can_use('Longshot') or (state.can_use('Hookshot') and state.can_reach('Forest Temple Outside Upper Ledge'))) + set_rule(world.get_location('GS Forest Temple Basement'), lambda state: state.can_use('Hookshot')) # MQ Forest Temple # "Quirks to Know": @@ -417,58 +424,58 @@ def dung_rules_fot0(world): # - Additionally, after hitting that switch, you can jump, from the 2nd ice block that appears, down to where the hallway twist switch is located, and then jumpslash it through the ice blocks. (You'll recoil off if you jumpslash too early, but the timing is still pretty lenient.) def dung_rules_fotmq(world): set_rule(world.get_entrance('Forest Temple Lobby Locked Door'), lambda state: state.has('Small Key (Forest Temple)', 1)) - set_rule(world.get_entrance('Forest Temple West Eye Switch'), lambda state: state.has('Bow')) - set_rule(world.get_entrance('Forest Temple East Eye Switch'), lambda state: state.has('Bow')) + set_rule(world.get_entrance('Forest Temple West Eye Switch'), lambda state: state.can_use('Bow')) + set_rule(world.get_entrance('Forest Temple East Eye Switch'), lambda state: state.can_use('Bow')) set_rule(world.get_entrance('Forest Temple Block Puzzle Solve'), lambda state: state.has_bombchus() or state.has('Progressive Strength Upgrade')) set_rule(world.get_entrance('Forest Temple Twisted Hall'), lambda state: state.has('Small Key (Forest Temple)', 4)) - set_rule(world.get_entrance('Forest Temple Well Connection'), lambda state: state.has('Iron Boots') or state.has('Progressive Hookshot', 2) or state.has('Progressive Scale', 2)) - set_rule(world.get_entrance('Forest Temple Webs'), lambda state: state.has('Magic Meter') and state.has('Fire Arrows') and state.has('Bow')) - set_rule(world.get_entrance('Forest Temple Climb to Top Ledges'), lambda state: state.has('Progressive Hookshot', 2) or state.has('Hover Boots') or state.can_play('Song of Time')) - set_rule(world.get_entrance('Forest Temple Longshot to NE Outdoors Ledge'), lambda state: state.has('Progressive Hookshot', 2)) + set_rule(world.get_entrance('Forest Temple Well Connection'), lambda state: state.can_use('Iron Boots') or state.can_use('Longshot') or state.has('Progressive Scale', 2)) + set_rule(world.get_entrance('Forest Temple Webs'), lambda state: state.can_use('Fire Arrows')) + set_rule(world.get_entrance('Forest Temple Climb to Top Ledges'), lambda state: state.can_use('Longshot') or state.can_use('Hover Boots') or state.can_play('Song of Time')) + set_rule(world.get_entrance('Forest Temple Longshot to NE Outdoors Ledge'), lambda state: state.can_use('Longshot')) set_rule(world.get_entrance('Forest Temple Song of Time Block Climb'), lambda state: state.can_play('Song of Time')) - set_rule(world.get_entrance('Forest Temple Drop to Falling Room'), lambda state: state.has('Small Key (Forest Temple)', 5) and (state.has('Bow') or (state.has('Dins Fire') and state.has('Magic Meter')))) # Only 5 keys because the door you could 'waste' your key on is the door you're trying to use keys to get to. If you do something out of logic to open that door, then I suppose you could be forced to go out of logic again if you don't get the chest or beat Amy. But there shouldn't be any non-glitch thing that you could do that wouldn't be repeatable even if it is out of logic. - set_rule(world.get_entrance('Forest Temple Elevator'), lambda state: state.has('Bow') and state.has('Small Key (Forest Temple)', 6) and state.can_reach('Forest Temple Bow Region')) + set_rule(world.get_entrance('Forest Temple Drop to Falling Room'), lambda state: state.has('Small Key (Forest Temple)', 5) and (state.can_use('Bow') or state.can_use('Dins Fire'))) # Only 5 keys because the door you could 'waste' your key on is the door you're trying to use keys to get to. If you do something out of logic to open that door, then I suppose you could be forced to go out of logic again if you don't get the chest or beat Amy. But there shouldn't be any non-glitch thing that you could do that wouldn't be repeatable even if it is out of logic. + set_rule(world.get_entrance('Forest Temple Elevator'), lambda state: state.can_use('Bow') and state.has('Small Key (Forest Temple)', 6) and state.can_reach('Forest Temple Bow Region')) if not (world.keysanity or world.tokensanity != 'off'): # Normal seeds will fail to generate if the Boss Key is placed at this location, as it must be a key to progress into the temple. This solution not ideal as it does not allow the Boss Key to appear at this location in beatable only seeds. forbid_item(world.get_location('Forest Temple MQ First Chest'), 'Boss Key (Forest Temple)') set_rule(world.get_location('Forest Temple MQ Chest Behind Lobby'), lambda state: state.can_play('Song of Time')) set_rule(world.get_location('Forest Temple MQ Boss Key Chest'), lambda state: state.has('Small Key (Forest Temple)', 3)) - set_rule(world.get_location('Forest Temple MQ Well Chest'), lambda state: state.has('Bow')) - set_rule(world.get_location('Forest Temple MQ Map Chest'), lambda state: state.has('Bow')) - set_rule(world.get_location('Forest Temple MQ Compass Chest'), lambda state: state.has('Bow')) + set_rule(world.get_location('Forest Temple MQ Well Chest'), lambda state: state.can_use('Bow')) + set_rule(world.get_location('Forest Temple MQ Map Chest'), lambda state: state.can_use('Bow')) + set_rule(world.get_location('Forest Temple MQ Compass Chest'), lambda state: state.can_use('Bow')) # Boss set_rule(world.get_location('Phantom Ganon'), lambda state: state.has('Boss Key (Forest Temple)')) set_rule(world.get_location('Phantom Ganon Heart'), lambda state: state.has('Boss Key (Forest Temple)')) # GS - set_rule(world.get_location('GS Forest Temple MQ Well'), lambda state: state.has('Iron Boots') or state.has('Bow')) + set_rule(world.get_location('GS Forest Temple MQ Well'), lambda state: state.can_use('Iron Boots') or state.can_use('Bow')) # Fire Temple Vanilla def dung_rules_fit0(world): - set_rule(world.get_entrance('Fire Temple Early Climb'), lambda state: state.has_GoronTunic() and state.has('Small Key (Fire Temple)', 3) and state.has('Progressive Strength Upgrade') and (state.has_explosives() or ((state.has('Bow') or state.has('Progressive Hookshot')) and state.is_adult()))) - set_rule(world.get_entrance('Fire Temple Fire Maze Escape'), lambda state: state.has('Small Key (Fire Temple)', 7) or (state.has('Small Key (Fire Temple)', 6) and state.has('Hover Boots') and state.has('Hammer') and state.is_adult())) - set_rule(world.get_location('Fire Temple Fire Dancer Chest'), lambda state: state.is_adult() and state.has('Hammer')) - set_rule(world.get_location('Fire Temple Boss Key Chest'), lambda state: state.is_adult() and state.has('Hammer')) + set_rule(world.get_entrance('Fire Temple Early Climb'), lambda state: state.has_GoronTunic() and state.has('Small Key (Fire Temple)', 3) and state.has('Progressive Strength Upgrade') and (state.has_explosives() or state.can_use('Bow') or state.can_use('Hookshot'))) + set_rule(world.get_entrance('Fire Temple Fire Maze Escape'), lambda state: state.has('Small Key (Fire Temple)', 7) or (state.has('Small Key (Fire Temple)', 6) and state.has('Hover Boots') and state.can_use('Hammer'))) + set_rule(world.get_location('Fire Temple Fire Dancer Chest'), lambda state: state.can_use('Hammer')) + set_rule(world.get_location('Fire Temple Boss Key Chest'), lambda state: state.can_use('Hammer')) set_rule(world.get_location('Fire Temple Big Lava Room Bombable Chest'), lambda state: state.has('Small Key (Fire Temple)', 1) and state.has_explosives()) set_rule(world.get_location('Fire Temple Big Lava Room Open Chest'), lambda state: state.has('Small Key (Fire Temple)', 1)) - set_rule(world.get_location('Fire Temple Map Chest'), lambda state: state.has('Small Key (Fire Temple)', 5) or (state.has('Small Key (Fire Temple)', 4) and state.is_adult() and state.has('Bow'))) + set_rule(world.get_location('Fire Temple Map Chest'), lambda state: state.has('Small Key (Fire Temple)', 5) or (state.has('Small Key (Fire Temple)', 4) and state.can_use('Bow'))) set_rule(world.get_location('Fire Temple Boulder Maze Upper Chest'), lambda state: state.has('Small Key (Fire Temple)', 5)) set_rule(world.get_location('Fire Temple Boulder Maze Bombable Pit'), lambda state: state.has('Small Key (Fire Temple)', 5) and state.has_explosives()) - set_rule(world.get_location('Fire Temple Scarecrow Chest'), lambda state: state.has_ocarina() and state.has('Small Key (Fire Temple)', 5) and state.has('Progressive Hookshot') and state.is_adult()) + set_rule(world.get_location('Fire Temple Scarecrow Chest'), lambda state: state.has('Small Key (Fire Temple)', 5) and state.can_use('Scarecrow')) set_rule(world.get_location('Fire Temple Compass Chest'), lambda state: state.has('Small Key (Fire Temple)', 6)) - set_rule(world.get_location('Fire Temple Highest Goron Chest'), lambda state: state.can_play('Song of Time') and state.has('Hammer') and state.is_adult()) + set_rule(world.get_location('Fire Temple Highest Goron Chest'), lambda state: state.can_play('Song of Time') and state.can_use('Hammer')) set_rule(world.get_location('Fire Temple Megaton Hammer Chest'), lambda state: state.has_explosives()) # Boss - set_rule(world.get_location('Volvagia'), lambda state: state.has_GoronTunic() and state.has('Hammer') and state.is_adult() and state.has('Boss Key (Fire Temple)') and (state.has('Hover Boots') or (state.can_reach('Fire Temple Upper') and (state.can_play('Song of Time') or state.has_explosives())))) - set_rule(world.get_location('Volvagia Heart'), lambda state: state.has_GoronTunic() and state.has('Hammer') and state.is_adult() and state.has('Boss Key (Fire Temple)') and (state.has('Hover Boots') or (state.can_reach('Fire Temple Upper') and (state.can_play('Song of Time') or state.has_explosives())))) + set_rule(world.get_location('Volvagia'), lambda state: state.has_GoronTunic() and state.can_use('Hammer') and state.has('Boss Key (Fire Temple)') and (state.has('Hover Boots') or (state.can_reach('Fire Temple Upper') and (state.can_play('Song of Time') or state.has_explosives())))) + set_rule(world.get_location('Volvagia Heart'), lambda state: state.has_GoronTunic() and state.can_use('Hammer') and state.has('Boss Key (Fire Temple)') and (state.has('Hover Boots') or (state.can_reach('Fire Temple Upper') and (state.can_play('Song of Time') or state.has_explosives())))) # GS set_rule(world.get_location('GS Fire Temple Song of Time Room'), lambda state: state.has('Small Key (Fire Temple)', 1) and state.can_play('Song of Time')) set_rule(world.get_location('GS Fire Temple Unmarked Bomb Wall'), lambda state: state.has('Small Key (Fire Temple)', 3) and state.has_explosives()) - set_rule(world.get_location('GS Fire Temple East Tower Climb'), lambda state: state.has_ocarina() and state.has('Small Key (Fire Temple)', 5) and state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('GS Fire Temple East Tower Top'), lambda state: state.has_ocarina() and state.has('Small Key (Fire Temple)', 5) and state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('GS Fire Temple Basement'), lambda state: state.has('Hammer') and state.is_adult()) + set_rule(world.get_location('GS Fire Temple East Tower Climb'), lambda state: state.has('Small Key (Fire Temple)', 5) and state.can_use('Scarecrow')) + set_rule(world.get_location('GS Fire Temple East Tower Top'), lambda state: state.has('Small Key (Fire Temple)', 5) and state.can_use('Scarecrow')) + set_rule(world.get_location('GS Fire Temple Basement'), lambda state: state.can_use('Hammer')) # MQ Fire Temple # "Quirks to Know": @@ -478,9 +485,9 @@ def dung_rules_fit0(world): # - Now actually, the ledge torch and the north torch can be lit with just Dins but you really have to know what you're doing and you have to move really quickly. def dung_rules_fitmq(world): set_rule(world.get_entrance('Fire Temple Lower Locked Door'), lambda state: state.has('Small Key (Fire Temple)', 5) and (state.has_explosives() or state.has('Hammer') or state.has('Progressive Hookshot'))) - set_rule(world.get_entrance('Fire Temple Hammer Statue'), lambda state: state.has('Hammer')) + set_rule(world.get_entrance('Fire Temple Hammer Statue'), lambda state: state.can_use('Hammer')) set_rule(world.get_entrance('Fire Temple Early Climb'), lambda state: state.has_GoronTunic() and state.has('Small Key (Fire Temple)', 2) and state.has_fire_source()) - set_rule(world.get_entrance('Fire Temple Maze Climb'), lambda state: state.has_explosives() and state.has('Progressive Hookshot')) + set_rule(world.get_entrance('Fire Temple Maze Climb'), lambda state: state.has_explosives() and state.can_use('Hookshot')) set_rule(world.get_entrance('Fire Temple Maze Escape'), lambda state: state.has('Small Key (Fire Temple)', 3) and state.has('Bow')) set_rule(world.get_location('Fire Temple MQ Chest Near Boss'), lambda state: (state.has('Hover Boots') and state.has_fire_source()) or (state.has('Progressive Hookshot') and state.has('Magic Meter') and ((state.has('Fire Arrows') and state.has('Bow')) or (state.has('Dins Fire') and ((world.difficulty != 'ohko') or state.has_GoronTunic() or state.has('Bow') or state.has('Progressive Hookshot', 2)))))) set_rule(world.get_location('Fire Temple MQ Map Chest'), lambda state: state.has('Hammer')) @@ -492,36 +499,34 @@ def dung_rules_fitmq(world): set_rule(world.get_entrance('Fire Temple Boss Door'), lambda state: state.has_fire_source() and state.has_GoronTunic() and state.has('Hammer') and state.has('Boss Key (Fire Temple)') and (state.has('Hover Boots') or state.can_reach('Fire Temple Upper'))) # GS - set_rule(world.get_location('GS Fire Temple MQ East Tower Top'), lambda state: state.can_play('Song of Time') or state.has('Progressive Hookshot', 2)) + set_rule(world.get_location('GS Fire Temple MQ East Tower Top'), lambda state: state.can_play('Song of Time') or state.can_use('Longshot')) set_rule(world.get_location('GS Fire Temple MQ Fire Wall Maze Side Room'), lambda state: state.can_play('Song of Time') or state.has('Hover Boots')) - set_rule(world.get_location('GS Fire Temple MQ Above Fire Wall Maze'), lambda state: state.has('Small Key (Fire Temple)', 5) or (item_name(state, 'GS Fire Temple MQ Above Fire Wall Maze') == 'Small Key (Fire Temple)' and state.has('Small Key (Fire Temple)', 4))) # Allow key for key - set_always_allow(world.get_location('GS Fire Temple MQ Above Fire Wall Maze'), lambda item, state: item.name == 'Small Key (Fire Temple)') + set_rule(world.get_location('GS Fire Temple MQ Above Fire Wall Maze'), lambda state: state.has('Small Key (Fire Temple)', 5) or ((item_name(state, 'GS Fire Temple MQ Above Fire Wall Maze') == 'Small Key (Fire Temple)' or not world.keys_placed) and state.has('Small Key (Fire Temple)', 4))) # Water Temple Vanilla def dung_rules_wt0(world): - set_rule(world.get_entrance('Water Temple Central Pillar'), lambda state: (state.has('Bow') or (state.has('Dins Fire') and state.has('Magic Meter')) or state.has('Small Key (Water Temple)', 5)) and state.can_play('Zeldas Lullaby')) + set_rule(world.get_entrance('Water Temple Central Pillar'), lambda state: (state.has('Bow') or state.can_use('Dins Fire') or state.has('Small Key (Water Temple)', 5)) and state.can_play('Zeldas Lullaby')) set_rule(world.get_entrance('Water Temple Upper Locked Door'), lambda state: state.has('Small Key (Water Temple)', 5) and (state.can_play('Zeldas Lullaby') or world.keysanity)) - set_rule(world.get_location('Water Temple Torches Chest'), lambda state: (state.has('Bow') or (state.has('Dins Fire') and state.has('Magic Meter'))) and state.can_play('Zeldas Lullaby')) + set_rule(world.get_location('Water Temple Torches Chest'), lambda state: (state.has('Bow') or state.can_use('Dins Fire')) and state.can_play('Zeldas Lullaby')) set_rule(world.get_location('Water Temple Dragon Chest'), lambda state: (state.has('Progressive Strength Upgrade') and state.can_play('Zeldas Lullaby')) or (state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity) and state.can_play('Song of Time') and state.has('Bow'))) - set_rule(world.get_location('Water Temple Central Bow Target Chest'), lambda state: state.has('Bow') and state.has('Progressive Strength Upgrade') and state.can_play('Zeldas Lullaby') and (state.has('Hover Boots') or state.has('Progressive Hookshot', 2))) - set_always_allow(world.get_location('Water Temple Boss Key Chest'), lambda item, state: item.name == 'Small Key (Water Temple)') - set_rule(world.get_location('Water Temple Boss Key Chest'), lambda state: (state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity) and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and state.has('Progressive Hookshot', 2)) or item_name(state, 'Water Temple Boss Key Chest') == 'Small Key (Water Temple)') #If key for key, this lets the logic reduce the small key reqs for every other locked door. + set_rule(world.get_location('Water Temple Central Bow Target Chest'), lambda state: state.has('Bow') and state.has('Progressive Strength Upgrade') and state.can_play('Zeldas Lullaby') and (state.has('Hover Boots') or state.can_use('Longshot'))) + set_rule(world.get_location('Water Temple Boss Key Chest'), lambda state: (state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity) and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and state.can_use('Longshot')) or (state.has('Small Key (Water Temple)', 5) and (item_name(state, 'Water Temple Boss Key Chest') == 'Small Key (Water Temple)' or not world.keys_placed))) #If key for key, this lets the logic reduce the small key reqs for every other locked door. set_rule(world.get_location('Water Temple Cracked Wall Chest'), lambda state: state.has_explosives()) set_rule(world.get_location('Water Temple Dark Link Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity)) set_rule(world.get_location('Water Temple River Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and state.can_play('Song of Time') and state.has('Bow') and (state.can_play('Zeldas Lullaby') or world.keysanity)) set_rule(world.get_location('Water Temple Central Pillar Chest'), lambda state: state.has_ZoraTunic()) # Boss - set_rule(world.get_location('Morpha'), lambda state: state.has('Boss Key (Water Temple)') and state.has('Progressive Hookshot', 2)) - set_rule(world.get_location('Morpha Heart'), lambda state: state.has('Boss Key (Water Temple)') and state.has('Progressive Hookshot', 2)) + set_rule(world.get_location('Morpha'), lambda state: state.has('Boss Key (Water Temple)') and state.can_use('Longshot')) + set_rule(world.get_location('Morpha Heart'), lambda state: state.has('Boss Key (Water Temple)') and state.can_use('Longshot')) # GS set_rule(world.get_location('GS Water Temple South Basement'), lambda state: state.has_explosives() and state.can_play('Zeldas Lullaby')) set_rule(world.get_location('GS Water Temple Serpent River'), lambda state: state.can_play('Song of Time') and state.has('Small Key (Water Temple)', 6)) - set_rule(world.get_location('GS Water Temple Falling Platform Room'), lambda state: state.has('Progressive Hookshot', 2)) - set_rule(world.get_location('GS Water Temple Central Room'), lambda state: state.has('Progressive Hookshot', 2) or (state.has('Farores Wind') and state.has('Magic'))) + set_rule(world.get_location('GS Water Temple Falling Platform Room'), lambda state: state.can_use('Longshot')) + set_rule(world.get_location('GS Water Temple Central Room'), lambda state: state.can_use('Longshot') or state.can_use('Farores Wind')) #5 keys would be better but it wouldn't be compatible with the key for key scenarios, 6 will be identical pre-keysanity. - set_rule(world.get_location('GS Water Temple Near Boss Key Chest'), lambda state: state.has('Progressive Hookshot', 2) and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and (state.can_play('Zeldas Lullaby') or world.keysanity) and state.has('Small Key (Water Temple)', 6)) + set_rule(world.get_location('GS Water Temple Near Boss Key Chest'), lambda state: state.can_use('Longshot') and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and (state.can_play('Zeldas Lullaby') or world.keysanity) and state.has('Small Key (Water Temple)', 5)) # MQ Water Temple # Water Temple Freestanding Key: @@ -529,44 +534,44 @@ def dung_rules_wt0(world): # - This was fixed in OoT3D; these rules presume the door is removed. def dung_rules_wtmq(world): set_rule(world.get_entrance('Water Temple Water Level Switch'), lambda state: state.can_play('Zeldas Lullaby')) - set_rule(world.get_entrance('Water Temple Locked Door'), lambda state: state.has('Small Key (Water Temple)') and state.has('Progressive Hookshot', 2)) - set_rule(world.get_entrance('Water Temple Basement Gates Switch'), lambda state: state.has('Dins Fire') and state.has('Magic Meter') and (state.has('Hover Boots') or state.has_ocarina())) + set_rule(world.get_entrance('Water Temple Locked Door'), lambda state: state.has('Small Key (Water Temple)') and state.can_use('Longshot')) + set_rule(world.get_entrance('Water Temple Basement Gates Switch'), lambda state: state.can_use('Dins Fire') and (state.has('Hover Boots') or state.has_ocarina())) set_rule(world.get_location('Water Temple MQ Map Chest'), lambda state: state.has_fire_source()) - set_rule(world.get_location('Water Temple MQ Central Pillar Chest'), lambda state: state.has_ZoraTunic() and state.has('Magic Meter') and ((state.has('Fire Arrows') and state.has('Bow')) or (state.has('Dins Fire') and state.can_play('Song of Time')))) - set_rule(world.get_location('Water Temple MQ Compass Chest'), lambda state: state.has('Bow') or (state.has('Dins Fire') and state.has('Magic Meter'))) - set_rule(world.get_location('Water Temple MQ Boss Key Chest'), lambda state: state.has('Dins Fire') and state.has('Magic Meter')) + set_rule(world.get_location('Water Temple MQ Central Pillar Chest'), lambda state: state.has_ZoraTunic() and (state.can_use('Fire Arrows') or (state.can_use('Dins Fire') and state.can_play('Song of Time')))) + set_rule(world.get_location('Water Temple MQ Compass Chest'), lambda state: state.has('Bow') or state.can_use('Dins Fire')) + set_rule(world.get_location('Water Temple MQ Boss Key Chest'), lambda state: state.can_use('Dins Fire')) # Boss - set_rule(world.get_location('Morpha'), lambda state: state.has('Boss Key (Water Temple)') and state.has('Progressive Hookshot', 2)) - set_rule(world.get_location('Morpha Heart'), lambda state: state.has('Boss Key (Water Temple)') and state.has('Progressive Hookshot', 2)) + set_rule(world.get_location('Morpha'), lambda state: state.has('Boss Key (Water Temple)') and state.can_use('Longshot')) + set_rule(world.get_location('Morpha Heart'), lambda state: state.has('Boss Key (Water Temple)') and state.can_use('Longshot')) # GS - set_rule(world.get_location('GS Water Temple MQ Lizalfos Hallway'), lambda state: state.has('Dins Fire') and state.has('Magic Meter')) - set_rule(world.get_location('GS Water Temple MQ Before Upper Water Switch'), lambda state: state.has('Progressive Hookshot', 2)) - set_rule(world.get_location('GS Water Temple MQ South Basement'), lambda state: state.has('Fire Arrows') and state.has('Bow')) + set_rule(world.get_location('GS Water Temple MQ Lizalfos Hallway'), lambda state: state.can_use('Dins Fire')) + set_rule(world.get_location('GS Water Temple MQ Before Upper Water Switch'), lambda state: state.can_use('Longshot')) + set_rule(world.get_location('GS Water Temple MQ South Basement'), lambda state: state.can_use('Fire Arrows')) # Spirit Temple Vanilla def dung_rules_spt0(world): set_rule(world.get_entrance('Spirit Temple Crawl Passage'), lambda state: state.can_play('Requiem of Spirit')) - set_rule(world.get_entrance('Spirit Temple Silver Block'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.is_adult()) + set_rule(world.get_entrance('Spirit Temple Silver Block'), lambda state: state.can_use('Silver Gauntlets')) set_rule(world.get_entrance('Child Spirit Temple Climb'), lambda state: state.has('Small Key (Spirit Temple)', 1)) set_rule(world.get_entrance('Child Spirit Temple Passthrough'), lambda state: state.has_explosives()) set_rule(world.get_entrance('Adult Spirit Temple Passthrough'), lambda state: state.has('Small Key (Spirit Temple)', 1)) - set_rule(world.get_entrance('Spirit Temple Central Locked Door'), lambda state: state.has('Small Key (Spirit Temple)', 4) and state.has('Progressive Strength Upgrade', 2) and state.is_adult()) - set_rule(world.get_entrance('Spirit Temple Final Locked Door'), lambda state: state.has('Small Key (Spirit Temple)', 5) and (state.has('Progressive Hookshot') or state.has('Bow') or state.has_explosives())) + set_rule(world.get_entrance('Spirit Temple Central Locked Door'), lambda state: state.has('Small Key (Spirit Temple)', 4) and state.can_use('Silver Gauntlets')) + set_rule(world.get_entrance('Spirit Temple Final Locked Door'), lambda state: state.has('Small Key (Spirit Temple)', 5) and state.has_projectile('adult')) set_rule(world.get_location('Spirit Temple Child Left Chest'), lambda state: state.has('Boomerang') or state.has('Slingshot') or state.has_bombchus()) set_rule(world.get_location('Spirit Temple Child Right Chest'), lambda state: state.has('Boomerang') or state.has('Slingshot') or state.has_bombchus()) set_rule(world.get_location('Spirit Temple Compass Chest'), lambda state: state.has('Progressive Hookshot') and state.can_play('Zeldas Lullaby')) set_rule(world.get_location('Spirit Temple Early Adult Right Chest'), lambda state: state.has('Bow') or state.has('Progressive Hookshot') or state.has_bombchus()) #requires a very specific Bombchu use, Hover Boots can be skipped by jumping on top of the rolling rock. set_rule(world.get_location('Spirit Temple First Mirror Right Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3)) set_rule(world.get_location('Spirit Temple First Mirror Left Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3)) - set_rule(world.get_location('Spirit Temple Map Chest'), lambda state: (state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit')) or (state.has('Magic Meter') and (state.has('Dins Fire') or (state.has('Fire Arrows') and state.has('Bow') and state.has('Progressive Strength Upgrade', 2) and state.has('Small Key (Spirit Temple)', 3) and state.is_adult())))) - set_rule(world.get_location('Spirit Temple Child Climb East Chest'), lambda state: state.has_explosives() or ((state.has('Boomerang') or state.has('Slingshot')) and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 5) and state.can_play('Requiem of Spirit') and (state.has('Boomerang') or state.has('Slingshot')))) - set_rule(world.get_location('Spirit Temple Child Climb North Chest'), lambda state: state.has_explosives() or ((state.has('Boomerang') or state.has('Slingshot')) and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and (state.has('Progressive Hookshot') or state.has('Bow'))) or (state.has('Small Key (Spirit Temple)', 5) and state.can_play('Requiem of Spirit') and (state.has('Boomerang') or state.has('Slingshot')))) - set_rule(world.get_location('Spirit Temple Sun Block Room Chest'), lambda state: (state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit')) or (state.has('Magic Meter') and (state.has('Dins Fire') or (state.has('Fire Arrows') and state.has('Bow') and state.has('Progressive Strength Upgrade', 2) and state.has('Small Key (Spirit Temple)', 3) and state.is_adult())))) - set_rule(world.get_location('Spirit Temple Statue Hand Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('Spirit Temple NE Main Room Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.can_play('Zeldas Lullaby') and (state.has('Progressive Hookshot') or state.has("Hover Boots"))) - set_rule(world.get_location('Mirror Shield Chest'), lambda state: state.has('Small Key (Spirit Temple)', 4) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.has_explosives()) + set_rule(world.get_location('Spirit Temple Map Chest'), lambda state: ((state.has_explosives() or state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and world.bombchus_in_logic)) and state.can_use('Magic Meter') and (state.has('Dins Fire') or (state.has('Fire Arrows') and state.has('Bow')))) or (state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit'))) + set_rule(world.get_location('Spirit Temple Child Climb East Chest'), lambda state: state.has_projectile('both') or ((state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and world.bombchus_in_logic)) and state.can_use('Silver Gauntlets') and state.has_projectile('adult')) or (state.has('Small Key (Spirit Temple)', 5) and state.can_play('Requiem of Spirit') and state.has_projectile('child'))) + set_rule(world.get_location('Spirit Temple Child Climb North Chest'), lambda state: state.has_projectile('both') or ((state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and world.bombchus_in_logic)) and state.can_use('Silver Gauntlets') and state.has_projectile('adult')) or (state.has('Small Key (Spirit Temple)', 5) and state.can_play('Requiem of Spirit') and state.has_projectile('child'))) + set_rule(world.get_location('Spirit Temple Sun Block Room Chest'), lambda state: ((state.has_explosives() or state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and world.bombchus_in_logic)) and state.has('Magic Meter') and (state.has('Dins Fire') or (state.has('Fire Arrows') and state.has('Bow')))) or (state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit'))) + set_rule(world.get_location('Spirit Temple Statue Hand Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3) and state.can_use('Silver Gauntlets') and state.can_play('Zeldas Lullaby')) + set_rule(world.get_location('Spirit Temple NE Main Room Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3) and state.can_use('Silver Gauntlets') and state.can_play('Zeldas Lullaby') and (state.has('Progressive Hookshot') or state.has("Hover Boots"))) + set_rule(world.get_location('Mirror Shield Chest'), lambda state: state.has('Small Key (Spirit Temple)', 4) and state.can_use('Silver Gauntlets') and state.has_explosives()) set_rule(world.get_location('Silver Gauntlets Chest'), lambda state: (state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Hookshot', 2) and state.has_explosives()) or state.has('Small Key (Spirit Temple)', 5)) set_rule(world.get_location('Spirit Temple Near Four Armos Chest'), lambda state: state.has('Mirror Shield') and state.has_explosives()) set_rule(world.get_location('Spirit Temple Hallway Left Invisible Chest'), lambda state: state.can_see_with_lens() and state.has_explosives()) @@ -580,9 +585,9 @@ def dung_rules_spt0(world): # GS set_rule(world.get_location('GS Spirit Temple Metal Fence'), lambda state: state.has('Boomerang') or state.has('Slingshot') or state.has_bombchus()) - set_rule(world.get_location('GS Spirit Temple Hall to West Iron Knuckle'), lambda state: (state.has('Boomerang') and state.has('Progressive Hookshot')) or (state.has('Boomerang') and state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit')) or (state.has('Progressive Hookshot') and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.has('Small Key (Spirit Temple)', 3))) + set_rule(world.get_location('GS Spirit Temple Hall to West Iron Knuckle'), lambda state: (state.has_explosives() and state.has('Boomerang') and state.has('Progressive Hookshot')) or (state.has('Boomerang') and state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit')) or (state.has('Progressive Hookshot') and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and (state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and state.has('Boomerang') and world.bombchus_in_logic)))) set_rule(world.get_location('GS Spirit Temple Boulder Room'), lambda state: state.can_play('Song of Time') and (state.has('Bow') or state.has('Progressive Hookshot') or state.has_bombchus())) - set_rule(world.get_location('GS Spirit Temple Lobby'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.has('Small Key (Spirit Temple)', 3) and state.is_adult() and (state.has('Progressive Hookshot', 2) or (state.has('Progressive Hookshot') and state.has_ocarina()) or state.has('Hover Boots'))) + set_rule(world.get_location('GS Spirit Temple Lobby'), lambda state: state.can_use('Silver Gauntlets') and state.has('Small Key (Spirit Temple)', 3) and (state.can_use('Longshot') or (state.can_use('Scarecrow') or state.has('Hover Boots')))) # Spirit Temple MQ # "Quirks to Know": @@ -596,14 +601,14 @@ def dung_rules_spt0(world): # - It can also be done with bow but the only place you can get a line of sight is with the Song of Time. The shot is a little bit precise. def dung_rules_sptmq(world): set_rule(world.get_entrance('Spirit Temple Crawl Passage'), lambda state: state.can_play('Requiem of Spirit')) - set_rule(world.get_entrance('Spirit Temple Ceiling Passage'), lambda state: state.has_bombchus() and state.has('Progressive Hookshot', 2) and state.has('Progressive Strength Upgrade', 2) and state.is_adult()) + set_rule(world.get_entrance('Spirit Temple Ceiling Passage'), lambda state: state.has_bombchus() and state.can_use('Longshot') and state.can_use('Silver Gauntlets')) set_rule(world.get_entrance('Child Spirit Temple to Shared'), lambda state: state.has_bombchus() and state.has('Small Key (Spirit Temple)', 2)) - set_rule(world.get_entrance('Adult Spirit Temple Descent'), lambda state: state.has('Fire Arrows') and state.has('Bow') and state.has('Magic Meter') and state.has('Mirror Shield')) + set_rule(world.get_entrance('Adult Spirit Temple Descent'), lambda state: state.can_use('Fire Arrows') and state.has('Mirror Shield')) set_rule(world.get_entrance('Spirit Temple Climbable Wall'), lambda state: state.has('Small Key (Spirit Temple)', 6) and state.can_play('Zeldas Lullaby') and state.has('Hammer')) - set_rule(world.get_location('Spirit Temple MQ Entrance Back Left Chest'), lambda state: state.can_blast_or_smash() and ((state.can_play('Requiem of Spirit') and state.has('Slingshot')) or (state.is_adult() and state.has('Bow')))) + set_rule(world.get_location('Spirit Temple MQ Entrance Back Left Chest'), lambda state: state.can_blast_or_smash() and ((state.can_play('Requiem of Spirit') and state.has('Slingshot')) or state.can_use('Bow'))) set_rule(world.get_location('Spirit Temple MQ Entrance Back Right Chest'), lambda state: state.has_bombchus() or ((state.is_adult() and (state.has('Bow') or state.has('Progressive Hookshot'))) or (state.can_play('Requiem of Spirit') and (state.has('Slingshot') or state.has('Boomerang'))))) - set_rule(world.get_location('Spirit Temple MQ Child Left Chest'), lambda state: state.has_bombchus() and state.has('Slingshot') and state.has('Dins Fire') and state.has('Magic Meter')) - set_rule(world.get_location('Spirit Temple MQ Silver Block Hallway Chest'), lambda state: state.has_bombchus() and state.has('Small Key (Spirit Temple)', 7) and state.has('Slingshot') and ((state.has('Dins Fire') and state.has('Magic Meter')) or (state.is_adult() and state.has('Progressive Hookshot', 2) and state.has('Progressive Strength Upgrade', 2) and state.has('Bow') and ((state.has('Fire Arrows') and state.has('Magic Meter')) or state.can_play('Song of Time'))))) + set_rule(world.get_location('Spirit Temple MQ Child Left Chest'), lambda state: state.has_bombchus() and state.has('Slingshot') and state.can_use('Dins Fire')) + set_rule(world.get_location('Spirit Temple MQ Silver Block Hallway Chest'), lambda state: state.has_bombchus() and state.has('Small Key (Spirit Temple)', 7) and state.has('Slingshot') and (state.can_use('Dins Fire') or (state.can_use('Longshot') and state.can_use('Silver Gauntlets') and state.has('Bow') and (state.can_use('Fire Arrows') or state.can_play('Song of Time'))))) set_rule(world.get_location('Spirit Temple MQ Child Center Chest'), lambda state: state.has('Small Key (Spirit Temple)', 7) and state.has('Hammer') and state.can_play('Requiem of Spirit')) set_rule(world.get_location('Spirit Temple MQ Child Climb South Chest'), lambda state: state.has('Small Key (Spirit Temple)', 7)) set_rule(world.get_location('Spirit Temple MQ Lower NE Main Room Chest'), lambda state: state.can_play('Zelda Lullaby')) @@ -615,9 +620,9 @@ def dung_rules_sptmq(world): set_rule(world.get_location('Spirit Temple MQ Entrance Front Right Chest'), lambda state: state.has('Hammer')) set_rule(world.get_location('Spirit Temple MQ Lower Adult Right Chest'), lambda state: state.has('Small Key (Spirit Temple)', 7) and state.has('Hammer') and state.has_ocarina() and state.has('Song of Time') and state.has('Eponas Song') and state.has('Suns Song') and state.has('Song of Storms') and state.has('Zeldas Lullaby')) set_rule(world.get_location('Spirit Temple MQ Child Climb North Chest'), lambda state: state.has('Small Key (Spirit Temple)', 6)) - set_rule(world.get_location('Spirit Temple MQ Compass Chest'), lambda state: (state.can_play('Requiem of Spirit') and state.has('Small Key (Spirit Temple)', 7) and state.has('Slingshot')) or (state.is_adult() and state.has('Progressive Hookshot', 2) and state.has('Progressive Strength Upgrade', 2) and state.has('Bow')) or (state.has('Slingshot') and state.has('Bow'))) - set_rule(world.get_location('Spirit Temple MQ Sun Block Room Chest'), lambda state: state.can_play('Song of Time') or (state.is_adult() and state.has('Progressive Hookshot', 2) and state.has('Progressive Strength Upgrade', 2) and state.has('Hover Boots'))) - set_rule(world.get_entrance('Silver Gauntlets Exit'), lambda state: (state.has('Small Key (Spirit Temple)', 7) and ((state.can_play('Requiem of Spirit') and state.can_play('Song of Time')) or (state.is_adult() and state.has('Progressive Hookshot', 2) and state.has('Progressive Strength Upgrade', 2) and (state.has('Hover Boots') or state.can_play('Song of Time'))))) or (state.has('Small Key (Spirit Temple)', 4) and state.can_play('Song of Time') and state.can_see_with_lens())) + set_rule(world.get_location('Spirit Temple MQ Compass Chest'), lambda state: (state.can_play('Requiem of Spirit') and state.has('Small Key (Spirit Temple)', 7) and state.has('Slingshot')) or (state.can_use('Longshot') and state.can_use('Silver Gauntlets') and state.has('Bow')) or (state.has('Slingshot') and state.has('Bow'))) + set_rule(world.get_location('Spirit Temple MQ Sun Block Room Chest'), lambda state: state.can_play('Song of Time') or (state.can_use('Longshot') and state.can_use('Silver Gauntlets') and state.has('Hover Boots'))) + set_rule(world.get_entrance('Silver Gauntlets Exit'), lambda state: (state.has('Small Key (Spirit Temple)', 7) and ((state.can_play('Requiem of Spirit') and state.can_play('Song of Time')) or (state.can_use('Longshot') and state.can_use('Silver Gauntlets') and (state.has('Hover Boots') or state.can_play('Song of Time'))))) or (state.has('Small Key (Spirit Temple)', 4) and state.can_play('Song of Time') and state.can_see_with_lens())) set_rule(world.get_location('Spirit Temple MQ Mirror Puzzle Invisible Chest'), lambda state: state.can_see_with_lens()) # Boss @@ -626,7 +631,7 @@ def dung_rules_sptmq(world): # GS set_rule(world.get_location('GS Spirit Temple MQ Lower Adult Right'), lambda state: state.has('Small Key (Spirit Temple)', 7) and state.has('Hammer') and state.has_ocarina() and state.has('Song of Time') and state.has('Eponas Song') and state.has('Suns Song') and state.has('Song of Storms') and state.has('Zeldas Lullaby')) - set_rule(world.get_location('GS Spirit Temple MQ Sun Block Room'), lambda state: (state.is_adult() and state.has('Progressive Hookshot', 2) and state.has('Progressive Strength Upgrade', 2) and (state.has('Hover Boots') or state.can_play('Song of Time'))) or (state.can_play('Song of Time') and state.has('Boomerang'))) + set_rule(world.get_location('GS Spirit Temple MQ Sun Block Room'), lambda state: (state.can_use('Longshot') and state.can_use('Silver Gauntlets') and (state.has('Hover Boots') or state.can_play('Song of Time'))) or (state.can_play('Song of Time') and state.has('Boomerang'))) set_rule(world.get_location('GS Spirit Temple MQ Iron Knuckle West'), lambda state: state.has('Small Key (Spirit Temple)', 7)) set_rule(world.get_location('GS Spirit Temple MQ Iron Knuckle North'), lambda state: state.has('Small Key (Spirit Temple)', 7)) @@ -639,16 +644,17 @@ def dung_rules_sht0(world): set_rule(world.get_location('Shadow Temple Falling Spikes Upper Chest'), lambda state: state.has('Progressive Strength Upgrade')) set_rule(world.get_location('Shadow Temple Falling Spikes Switch Chest'), lambda state: state.has('Progressive Strength Upgrade')) set_rule(world.get_location('Shadow Temple Invisible Spikes Chest'), lambda state: state.has('Small Key (Shadow Temple)', 2)) - set_rule(world.get_location('Shadow Temple Freestanding Key'), lambda state: state.has('Small Key (Shadow Temple)', 2) and state.has('Progressive Hookshot')) + set_rule(world.get_location('Shadow Temple Freestanding Key'), lambda state: state.has('Small Key (Shadow Temple)', 2) and state.has('Progressive Hookshot') and (state.has('Bomb Bag') or state.has('Progressive Strength Upgrade'))) # Boss - set_rule(world.get_location('Bongo Bongo'), lambda state: state.has('Small Key (Shadow Temple)', 5) and (state.has('Bow') or state.has('Progressive Hookshot', 2)) and state.has('Boss Key (Shadow Temple)')) - set_rule(world.get_location('Bongo Bongo Heart'), lambda state: state.has('Small Key (Shadow Temple)', 5) and (state.has('Bow') or state.has('Progressive Hookshot', 2)) and state.has('Boss Key (Shadow Temple)')) + set_rule(world.get_location('Bongo Bongo'), lambda state: state.has('Small Key (Shadow Temple)', 5) and (state.has('Bow') or state.can_use('Distant Scarecrow')) and state.has('Boss Key (Shadow Temple)')) + set_rule(world.get_location('Bongo Bongo Heart'), lambda state: state.has('Small Key (Shadow Temple)', 5) and (state.has('Bow') or state.can_use('Distant Scarecrow')) and state.has('Boss Key (Shadow Temple)')) # GS set_rule(world.get_location('GS Shadow Temple Like Like Room'), lambda state: state.has('Progressive Hookshot')) set_rule(world.get_location('GS Shadow Temple Crusher Room'), lambda state: state.has('Progressive Hookshot')) - set_rule(world.get_location('GS Shadow Temple Near Ship'), lambda state: state.has('Progressive Hookshot', 2) and state.has('Small Key (Shadow Temple)', 4)) + set_rule(world.get_location('GS Shadow Temple Single Giant Pot'), lambda state: state.has('Small Key (Shadow Temple)', 2) and state.has('Progressive Hookshot')) + set_rule(world.get_location('GS Shadow Temple Near Ship'), lambda state: state.can_use('Longshot') and state.has('Small Key (Shadow Temple)', 4)) # Shadow Temple MQ # "Quirks to Know": @@ -666,15 +672,15 @@ def dung_rules_shtmq(world): set_rule(world.get_entrance('Shadow Temple Bomb Wall'), lambda state: state.has_explosives() and state.has('Small Key (Shadow Temple)', 2)) set_rule(world.get_entrance('Shadow Temple Hookshot Target'), lambda state: state.has('Hover Boots') and state.has('Progressive Hookshot') and state.has('Small Key (Shadow Temple)', 4)) set_rule(world.get_entrance('Shadow Temple Boat'), lambda state: state.can_play('Zeldas Lullaby') and state.has('Small Key (Shadow Temple)', 5)) - set_rule(world.get_entrance('Shadow Temple Longshot Target'), lambda state: state.has('Bow') and state.can_play('Song of Time') and state.has('Progressive Hookshot', 2)) + set_rule(world.get_entrance('Shadow Temple Longshot Target'), lambda state: state.has('Bow') and state.can_play('Song of Time') and state.can_use('Longshot')) set_rule(world.get_location('Shadow Temple MQ Hover Boots Chest'), lambda state: state.can_play('Song of Time') and state.has('Bow')) set_rule(world.get_location('Shadow Temple MQ Invisible Blades Visible Chest'), lambda state: state.can_play('Song of Time')) set_rule(world.get_location('Shadow Temple MQ Invisible Blades Invisible Chest'), lambda state: state.can_play('Song of Time')) - set_rule(world.get_location('Shadow Temple MQ Beamos Silver Rupees Chest'), lambda state: state.has('Progressive Hookshot', 2)) + set_rule(world.get_location('Shadow Temple MQ Beamos Silver Rupees Chest'), lambda state: state.can_use('Longshot')) set_rule(world.get_location('Shadow Temple MQ Falling Spikes Upper Chest'), lambda state: state.has('Progressive Strength Upgrade')) set_rule(world.get_location('Shadow Temple MQ Falling Spikes Switch Chest'), lambda state: state.has('Progressive Strength Upgrade')) set_rule(world.get_location('Shadow Temple MQ Invisible Spikes Chest'), lambda state: state.has('Hover Boots') and state.has('Small Key (Shadow Temple)', 3)) - set_rule(world.get_location('Shadow Temple MQ Stalfos Room Chest'), lambda state: state.has('Hover Boots') and state.has('Small Key (Shadow Temple)', 3) and state.has('Progressive Hookshot', 2)) + set_rule(world.get_location('Shadow Temple MQ Stalfos Room Chest'), lambda state: state.has('Hover Boots') and state.has('Small Key (Shadow Temple)', 3) and state.can_use('Longshot')) set_rule(world.get_location('Shadow Temple MQ Spike Walls Left Chest'), lambda state: state.has('Small Key (Shadow Temple)', 6)) set_rule(world.get_location('Shadow Temple MQ Boss Key Chest'), lambda state: state.has('Small Key (Shadow Temple)', 6)) @@ -699,13 +705,15 @@ def dung_rules_bw0(world): set_rule(world.get_location('Bottom of the Well Invisible Chest'), lambda state: state.can_play('Zeldas Lullaby') and state.can_see_with_lens()) set_rule(world.get_location('Bottom of the Well Underwater Front Chest'), lambda state: state.can_play('Zeldas Lullaby')) set_rule(world.get_location('Bottom of the Well Underwater Left Chest'), lambda state: state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('Bottom of the Well Basement Chest'), lambda state: state.has_explosives() or (((state.has('Small Key (Bottom of the Well)', 3) and state.can_see_with_lens()) or (state.has('Dins Fire') and state.has('Magic Meter'))) and state.has('Progressive Strength Upgrade'))) + set_rule(world.get_location('Bottom of the Well Basement Chest'), lambda state: state.has_explosives() or (((state.has('Small Key (Bottom of the Well)', 3) and state.can_see_with_lens()) or state.can_use('Dins Fire')) and state.has('Progressive Strength Upgrade'))) set_rule(world.get_location('Bottom of the Well Locked Pits'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.can_see_with_lens()) #These pits are really unfair. set_rule(world.get_location('Bottom of the Well Behind Right Grate'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.can_see_with_lens()) # GS - set_rule(world.get_location('GS Well West Inner Room'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang') and state.can_see_with_lens()) - set_rule(world.get_location('GS Well East Inner Room'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang') and state.can_see_with_lens()) + set_always_allow(world.get_location('GS Well West Inner Room'), lambda item, state: item.name == 'Small Key (Bottom of the Well)') + set_rule(world.get_location('GS Well West Inner Room'), lambda state: state.has('Boomerang') and state.can_see_with_lens() and (state.has('Small Key (Bottom of the Well)', 3) or item_name(state, 'GS Well West Inner Room') == 'Small Key (Bottom of the Well)')) + set_always_allow(world.get_location('GS Well East Inner Room'), lambda item, state: item.name == 'Small Key (Bottom of the Well)') + set_rule(world.get_location('GS Well East Inner Room'), lambda state: state.has('Boomerang') and state.can_see_with_lens() and (state.has('Small Key (Bottom of the Well)', 3) or item_name(state, 'GS Well East Inner Room') == 'Small Key (Bottom of the Well)')) set_rule(world.get_location('GS Well Like Like Cage'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang') and state.can_see_with_lens()) # Bottom of the Well MQ @@ -718,7 +726,7 @@ def dung_rules_bwmq(world): set_rule(world.get_location('Bottom of the Well MQ Compass Chest'), lambda state: state.has('Kokiri Sword') or world.logic_child_deadhand) set_rule(world.get_location('Bottom of the Well MQ Dead Hand Freestanding Key'), lambda state: state.has_explosives()) set_rule(world.get_location('Bottom of the Well MQ Map Chest'), lambda state: state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('Bottom of the Well MQ East Inner Room Freestanding Key'), lambda state: state.can_play('Zeldas Lullaby') and (state.has_explosives() or state.has('Slingshot') or state.has('Boomerang'))) + set_rule(world.get_location('Bottom of the Well MQ East Inner Room Freestanding Key'), lambda state: state.can_play('Zeldas Lullaby') and state.has_projectile('child')) set_always_allow(world.get_location('Bottom of the Well MQ Lens Chest'), lambda item, state: item.name == 'Small Key (Bottom of the Well)') set_rule(world.get_location('Bottom of the Well MQ Lens Chest'), lambda state: state.can_play('Zeldas Lullaby') and state.has_explosives() and (state.has('Small Key (Bottom of the Well)', 2) or item_name(state, 'Bottom of the Well MQ Lens Chest') == 'Small Key (Bottom of the Well)')) @@ -736,9 +744,9 @@ def dung_rules_ic0(world): set_rule(world.get_location('Sheik in Ice Cavern'), lambda state: state.has_bottle() and state.is_adult()) # GS - set_rule(world.get_location('GS Ice Cavern Spinning Scythe Room'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('GS Ice Cavern Heart Piece Room'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.has_bottle()) - set_rule(world.get_location('GS Ice Cavern Push Block Room'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.has_bottle()) + set_rule(world.get_location('GS Ice Cavern Spinning Scythe Room'), lambda state: state.can_use('Hookshot')) + set_rule(world.get_location('GS Ice Cavern Heart Piece Room'), lambda state: state.can_use('Hookshot') and state.has_bottle()) + set_rule(world.get_location('GS Ice Cavern Push Block Room'), lambda state: state.can_use('Hookshot') and state.has_bottle()) # Ice Cavern MQ # The rule exists on the entrance to avoid needing to change Blue Fire checks elsewhere. @@ -747,24 +755,24 @@ def dung_rules_ic0(world): # - You can use the hover boots to get onto one of the taller pillars, and from there you can Longshot to the GS. # - This skips the Ocarina requirement and is only relevant if Hover Boots into Zora's Domain is in logic. def dung_rules_icmq(world): - set_rule(world.get_entrance('Ice Cavern Entrance'), lambda state: state.has_bottle() and (state.has_explosives() or state.has('Progressive Hookshot') or state.has('Bow'))) + set_rule(world.get_entrance('Ice Cavern Entrance'), lambda state: state.has_bottle() and state.has_projectile('adult')) set_rule(world.get_location('Ice Cavern MQ Freestanding PoH'), lambda state: state.has_explosives()) # GS set_rule(world.get_location('GS Ice Cavern MQ Red Ice'), lambda state: state.can_play('Song of Time')) - set_rule(world.get_location('GS Ice Cavern MQ Scarecrow'), lambda state: (state.has_ocarina() and state.has('Progressive Hookshot')) or (state.has('Hover Boots') and state.has('Progressive Hookshot', 2))) + set_rule(world.get_location('GS Ice Cavern MQ Scarecrow'), lambda state: state.can_use('Scarecrow') or (state.has('Hover Boots') and state.can_use('Longshot'))) # Gerudo Training Grounds Vanilla def dung_rules_gtg0(world): - set_rule(world.get_entrance('Gerudo Training Ground Left Silver Rupees'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) + set_rule(world.get_entrance('Gerudo Training Ground Left Silver Rupees'), lambda state: state.can_use('Hookshot')) set_rule(world.get_entrance('Gerudo Training Ground Beamos'), lambda state: state.has_explosives()) set_rule(world.get_entrance('Gerudo Training Grounds Right Locked Doors'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 9)) set_rule(world.get_entrance('Gerudo Training Grounds Maze Ledge'), lambda state: state.can_play('Song of Time')) - set_rule(world.get_entrance('Gerudo Training Grounds Right Hookshot Target'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_entrance('Gerudo Training Grounds Hammer Target'), lambda state: state.has('Hammer') and state.has('Bow') and state.is_adult()) - set_rule(world.get_entrance('Gerudo Training Grounds Hidden Hookshot Target'), lambda state: state.has('Progressive Hookshot') and state.can_see_with_lens() and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Lobby Left Chest'), lambda state: state.has('Bow') and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Lobby Right Chest'), lambda state: state.has('Bow') and state.is_adult()) + set_rule(world.get_entrance('Gerudo Training Grounds Right Hookshot Target'), lambda state: state.can_use('Progressive Hookshot')) + set_rule(world.get_entrance('Gerudo Training Grounds Hammer Target'), lambda state: state.can_use('Hammer') and state.has('Bow')) + set_rule(world.get_entrance('Gerudo Training Grounds Hidden Hookshot Target'), lambda state: state.can_use('Hookshot') and state.can_see_with_lens()) + set_rule(world.get_location('Gerudo Training Grounds Lobby Left Chest'), lambda state: state.can_use('Bow')) + set_rule(world.get_location('Gerudo Training Grounds Lobby Right Chest'), lambda state: state.can_use('Bow')) set_rule(world.get_location('Gerudo Training Grounds Beamos Chest'), lambda state: state.has_explosives()) set_rule(world.get_location('Gerudo Training Grounds Hidden Ceiling Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 3) and state.can_see_with_lens()) set_rule(world.get_location('Gerudo Training Grounds Maze Path First Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 4)) @@ -772,25 +780,25 @@ def dung_rules_gtg0(world): set_rule(world.get_location('Gerudo Training Grounds Maze Path Third Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 7)) set_rule(world.get_location('Gerudo Training Grounds Maze Path Final Chest'), lambda state: (state.has('Small Key (Gerudo Training Grounds)', 9)) or (item_name(state, 'Gerudo Training Grounds Maze Path Final Chest') == 'Small Key (Gerudo Training Grounds)' and state.has('Small Key (Gerudo Training Grounds)', 8))) #Allow key for key set_always_allow(world.get_location('Gerudo Training Grounds Maze Path Final Chest'), lambda item, state: item.name == 'Small Key (Gerudo Training Grounds)') - set_rule(world.get_location('Gerudo Training Grounds Underwater Silver Rupee Chest'), lambda state: state.has('Progressive Hookshot') and state.can_play('Song of Time') and state.has('Iron Boots') and state.is_adult() and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic())) - set_rule(world.get_location('Gerudo Training Grounds Hammer Room Switch Chest'), lambda state: state.has('Hammer') and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Eye Statue Chest'), lambda state: state.has('Bow') and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Near Scarecrow Chest'), lambda state: state.has('Bow') and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Heavy Block First Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.can_see_with_lens() and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Heavy Block Second Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.can_see_with_lens() and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Heavy Block Third Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.can_see_with_lens() and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Heavy Block Fourth Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.can_see_with_lens() and state.is_adult()) + set_rule(world.get_location('Gerudo Training Grounds Underwater Silver Rupee Chest'), lambda state: state.can_use('Hookshot') and state.can_play('Song of Time') and state.has('Iron Boots') and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic())) + set_rule(world.get_location('Gerudo Training Grounds Hammer Room Switch Chest'), lambda state: state.can_use('Hammer')) + set_rule(world.get_location('Gerudo Training Grounds Eye Statue Chest'), lambda state: state.can_use('Bow')) + set_rule(world.get_location('Gerudo Training Grounds Near Scarecrow Chest'), lambda state: state.can_use('Bow')) + set_rule(world.get_location('Gerudo Training Grounds Heavy Block First Chest'), lambda state: state.can_use('Silver Gauntlets') and state.can_see_with_lens()) + set_rule(world.get_location('Gerudo Training Grounds Heavy Block Second Chest'), lambda state: state.can_use('Silver Gauntlets') and state.can_see_with_lens()) + set_rule(world.get_location('Gerudo Training Grounds Heavy Block Third Chest'), lambda state: state.can_use('Silver Gauntlets') and state.can_see_with_lens()) + set_rule(world.get_location('Gerudo Training Grounds Heavy Block Fourth Chest'), lambda state: state.can_use('Silver Gauntlets') and state.can_see_with_lens()) # Gerudo Training Grounds MQ def dung_rules_gtgmq(world): set_rule(world.get_entrance('Gerudo Training Grounds Left Door'), lambda state: state.has_fire_source()) set_rule(world.get_entrance('Gerudo Training Grounds Right Door'), lambda state: state.has('Bow')) - set_rule(world.get_entrance('Gerudo Training Grounds Longshot Target'), lambda state: state.has('Progressive Hookshot', 2)) + set_rule(world.get_entrance('Gerudo Training Grounds Longshot Target'), lambda state: state.can_use('Longshot')) set_rule(world.get_entrance('Gerudo Training Grounds Song of Time Block'), lambda state: state.can_play('Song of Time') and state.can_see_with_lens() and state.has_bottle()) set_rule(world.get_entrance('Gerudo Training Grounds Rusted Switch'), lambda state: state.has('Hammer')) set_rule(world.get_location('Gerudo Training Grounds MQ Hidden Ceiling Chest'), lambda state: state.can_see_with_lens()) set_rule(world.get_location('Gerudo Training Grounds MQ Maze Path Third Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 1)) - set_rule(world.get_location('Gerudo Training Grounds MQ Underwater Silver Rupee Chest'), lambda state: state.has('Hover Boots') and state.has_fire_source() and state.has('Progressive Hookshot') and state.has('Iron Boots') and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic()) and ((world.difficulty != 'ohko') or state.has_bottle() or (state.has('Nayrus Love') and state.has('Magic Meter')))) + set_rule(world.get_location('Gerudo Training Grounds MQ Underwater Silver Rupee Chest'), lambda state: state.has('Hover Boots') and state.has_fire_source() and state.has('Progressive Hookshot') and state.has('Iron Boots') and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic()) and ((world.difficulty != 'ohko') or state.has_bottle() or state.can_use('Nayrus Love'))) set_rule(world.get_location('Gerudo Training Grounds MQ Heavy Block Chest'), lambda state: state.has('Progressive Strength Upgrade', 2)) set_rule(world.get_location('Gerudo Training Grounds MQ Eye Statue Chest'), lambda state: state.has('Bow')) set_rule(world.get_location('Gerudo Training Grounds MQ Ice Arrows Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 3) or (item_name(state, 'Gerudo Training Grounds MQ Ice Arrows Chest') == 'Small Key (Gerudo Training Grounds)' and state.has('Small Key (Gerudo Training Grounds)'))) @@ -800,18 +808,18 @@ def dung_rules_gtgmq(world): # Ganon's Castle Vanilla def dung_rules_gc0(world): - set_rule(world.get_entrance('Ganons Castle Light Trial'), lambda state: state.has('Progressive Strength Upgrade', 3)) + set_rule(world.get_entrance('Ganons Castle Light Trial'), lambda state: state.can_use('Golden Gauntlets')) set_rule(world.get_entrance('Ganons Castle Tower'), lambda state: (world.skipped_trials['Forest'] or state.has('Forest Trial Clear')) and (world.skipped_trials['Fire'] or state.has('Fire Trial Clear')) and (world.skipped_trials['Water'] or state.has('Water Trial Clear')) and (world.skipped_trials['Shadow'] or state.has('Shadow Trial Clear')) and (world.skipped_trials['Spirit'] or state.has('Spirit Trial Clear')) and (world.skipped_trials['Light'] or state.has('Light Trial Clear'))) - set_rule(world.get_location('Ganons Castle Forest Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and (state.has('Fire Arrows') or state.has('Dins Fire'))) - set_rule(world.get_location('Ganons Castle Fire Trial Clear'), lambda state: state.has_GoronTunic() and state.has('Progressive Strength Upgrade', 3) and state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and state.has('Progressive Hookshot', 2)) - set_rule(world.get_location('Ganons Castle Water Trial Clear'), lambda state: state.has_bottle() and state.has('Hammer') and state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows')) - set_rule(world.get_location('Ganons Castle Shadow Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and state.has('Hammer') and ((state.has('Fire Arrows') and (state.has('Hover Boots') or state.can_see_with_lens())) or (state.has('Progressive Hookshot', 2) and (state.has('Hover Boots') or (state.has('Dins Fire') and state.can_see_with_lens()))))) - set_rule(world.get_location('Ganons Castle Shadow Trial First Chest'), lambda state: (state.has('Magic Meter') and state.has('Bow') and state.has('Fire Arrows')) or state.has('Progressive Hookshot') or state.has('Hover Boots') or state.can_play('Song of Time')) - set_rule(world.get_location('Ganons Castle Shadow Trial Second Chest'), lambda state: (state.has('Magic Meter') and state.has('Bow') and state.has('Fire Arrows')) or (state.has('Progressive Hookshot', 2) and (state.has('Hover Boots') or (state.has('Dins Fire') and state.has('Magic Meter'))))) - set_rule(world.get_location('Ganons Castle Spirit Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and state.has('Mirror Shield') and state.has_bombchus() and state.has('Progressive Hookshot')) + set_rule(world.get_location('Ganons Castle Forest Trial Clear'), lambda state: state.can_use('Light Arrows') and (state.has('Fire Arrows') or state.has('Dins Fire'))) + set_rule(world.get_location('Ganons Castle Fire Trial Clear'), lambda state: state.has_GoronTunic() and state.can_use('Golden Gauntlets') and state.can_use('Light Arrows') and state.can_use('Longshot')) + set_rule(world.get_location('Ganons Castle Water Trial Clear'), lambda state: state.has_bottle() and state.has('Hammer') and state.can_use('Light Arrows')) + set_rule(world.get_location('Ganons Castle Shadow Trial Clear'), lambda state: state.can_use('Light Arrows') and state.has('Hammer') and ((state.has('Fire Arrows') and (state.has('Hover Boots') or state.can_see_with_lens())) or (state.can_use('Longshot') and (state.has('Hover Boots') or (state.has('Dins Fire') and state.can_see_with_lens()))))) + set_rule(world.get_location('Ganons Castle Shadow Trial First Chest'), lambda state: state.can_use('Fire Arrows') or state.can_use('Longshot') or state.has('Hover Boots') or state.can_play('Song of Time')) + set_rule(world.get_location('Ganons Castle Shadow Trial Second Chest'), lambda state: state.can_use('Fire Arrows') or (state.can_use('Longshot') and (state.has('Hover Boots') or state.can_use('Dins Fire')))) + set_rule(world.get_location('Ganons Castle Spirit Trial Clear'), lambda state: state.can_use('Light Arrows') and state.has('Mirror Shield') and state.has_bombchus() and state.has('Progressive Hookshot')) set_rule(world.get_location('Ganons Castle Spirit Trial First Chest'), lambda state: state.has('Progressive Hookshot')) set_rule(world.get_location('Ganons Castle Spirit Trial Second Chest'), lambda state: state.has('Progressive Hookshot') and state.has_bombchus() and state.can_see_with_lens()) - set_rule(world.get_location('Ganons Castle Light Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Progressive Hookshot') and state.has('Light Arrows') and state.has('Small Key (Ganons Castle)', 2)) + set_rule(world.get_location('Ganons Castle Light Trial Clear'), lambda state: state.can_use('Light Arrows') and state.has('Progressive Hookshot') and state.has('Small Key (Ganons Castle)', 2)) set_rule(world.get_location('Ganons Castle Light Trail Invisible Enemies Chest'), lambda state: state.can_see_with_lens()) set_rule(world.get_location('Ganons Castle Light Trial Lullaby Chest'), lambda state: state.can_play('Zeldas Lullaby') and state.has('Small Key (Ganons Castle)', 1)) # Ganon's Castle MQ @@ -821,27 +829,27 @@ def dung_rules_gc0(world): # - You can spawn this chest with strength but you have to make sure the bombflower explodes in about the same position it spawns in. # Just in general I want to say if there's a silver rupee inside a Beamos, you can just brush the Beamos to get it. That comes up a few times, but this trial without explosives can get a little hairy. def dung_rules_gcmq(world): - set_rule(world.get_entrance('Ganons Castle Light Trial'), lambda state: state.has('Progressive Strength Upgrade', 3)) + set_rule(world.get_entrance('Ganons Castle Light Trial'), lambda state: state.can_use('Golden Gauntlets')) set_rule(world.get_entrance('Ganons Castle Tower'), lambda state: (world.skipped_trials['Forest'] or state.has('Forest Trial Clear')) and (world.skipped_trials['Fire'] or state.has('Fire Trial Clear')) and (world.skipped_trials['Water'] or state.has('Water Trial Clear')) and (world.skipped_trials['Shadow'] or state.has('Shadow Trial Clear')) and (world.skipped_trials['Spirit'] or state.has('Spirit Trial Clear')) and (world.skipped_trials['Light'] or state.has('Light Trial Clear'))) set_rule(world.get_location('Ganons Castle MQ Forest Trial First Chest'), lambda state: state.has('Bow')) set_rule(world.get_location('Ganons Castle MQ Forest Trial Second Chest'), lambda state: state.has_fire_source()) set_rule(world.get_location('Ganons Castle MQ Forest Trial Freestanding Key'), lambda state: state.has('Progressive Hookshot')) - set_rule(world.get_location('Ganons Castle Forest Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and state.can_play('Song of Time')) - set_rule(world.get_location('Ganons Castle Fire Trial Clear'), lambda state: state.has_GoronTunic() and state.has('Progressive Strength Upgrade', 3) and state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and (state.has('Progressive Hookshot', 2) or state.has('Hover Boots'))) + set_rule(world.get_location('Ganons Castle Forest Trial Clear'), lambda state: state.can_use('Light Arrows') and state.can_play('Song of Time')) + set_rule(world.get_location('Ganons Castle Fire Trial Clear'), lambda state: state.has_GoronTunic() and state.can_use('Golden Gauntlets') and state.can_use('Light Arrows') and (state.can_use('Longshot') or state.has('Hover Boots'))) set_rule(world.get_location('Ganons Castle MQ Water Trial Chest'), lambda state: state.has_bottle()) - set_rule(world.get_location('Ganons Castle Water Trial Clear'), lambda state: state.has_bottle() and state.has('Magic Meter') and state.has('Bow') and state.has('Light Arrows') and state.has('Small Key (Ganons Castle)', 3)) - set_rule(world.get_location('Ganons Castle MQ Shadow Trial First Chest'), lambda state: (state.has('Bow') and (state.has('Progressive Hookshot') or state.has('Hover Boots'))) or (state.has('Hover Boots') and state.can_see_with_lens() and (state.has_explosives() or state.has('Progressive Strength Upgrade') or (state.has('Dins Fire') and state.has('Magic Meter'))))) + set_rule(world.get_location('Ganons Castle Water Trial Clear'), lambda state: state.has_bottle() and state.can_use('Light Arrows') and state.has('Small Key (Ganons Castle)', 3)) + set_rule(world.get_location('Ganons Castle MQ Shadow Trial First Chest'), lambda state: (state.has('Bow') and (state.has('Progressive Hookshot') or state.has('Hover Boots'))) or (state.has('Hover Boots') and state.can_see_with_lens() and (state.has_explosives() or state.has('Progressive Strength Upgrade') or state.can_use('Dins Fire')))) set_rule(world.get_location('Ganons Castle MQ Shadow Trial Second Chest'), lambda state: state.has('Bow') and state.can_see_with_lens() and (state.has('Hover Boots') or (state.has('Progressive Hookshot') and state.has_fire_source()))) - set_rule(world.get_location('Ganons Castle Shadow Trial Clear'), lambda state: state.has('Bow') and state.has('Magic Meter') and state.has('Light Arrows') and state.can_see_with_lens() and (state.has('Hover Boots') or (state.has('Progressive Hookshot') and state.has_fire_source()))) + set_rule(world.get_location('Ganons Castle Shadow Trial Clear'), lambda state: state.can_use('Light Arrows') and state.can_see_with_lens() and (state.has('Hover Boots') or (state.has('Progressive Hookshot') and state.has_fire_source()))) set_rule(world.get_location('Ganons Castle MQ Spirit Trial First Chest'), lambda state: state.has('Bow') and state.has('Hammer')) set_rule(world.get_location('Ganons Castle MQ Spirit Trial Second Chest'), lambda state: state.has('Bow') and state.has('Hammer') and state.has_bombchus() and state.can_see_with_lens()) - set_rule(world.get_location('Ganons Castle MQ Spirit Trial Sun Front Left Chest'), lambda state: state.has('Bow') and state.has('Hammer') and state.has_bombchus() and state.has('Fire Arrows') and state.has('Magic Meter') and state.has('Mirror Shield')) - set_rule(world.get_location('Ganons Castle MQ Spirit Trial Sun Back Left Chest'), lambda state: state.has('Bow') and state.has('Hammer') and state.has_bombchus() and state.has('Fire Arrows') and state.has('Magic Meter') and state.has('Mirror Shield')) - set_rule(world.get_location('Ganons Castle MQ Spirit Trial Golden Gauntlets Chest'), lambda state: state.has('Bow') and state.has('Hammer') and state.has_bombchus() and state.has('Fire Arrows') and state.has('Magic Meter') and state.has('Mirror Shield')) - set_rule(world.get_location('Ganons Castle MQ Spirit Trial Sun Back Right Chest'), lambda state: state.has('Bow') and state.has('Hammer') and state.has_bombchus() and state.has('Fire Arrows') and state.has('Magic Meter') and state.has('Mirror Shield')) - set_rule(world.get_location('Ganons Castle Spirit Trial Clear'), lambda state: state.has('Bow') and state.has('Hammer') and state.has_bombchus() and state.has('Fire Arrows') and state.has('Magic Meter') and state.has('Mirror Shield') and state.has('Light Arrows')) + set_rule(world.get_location('Ganons Castle MQ Spirit Trial Sun Front Left Chest'), lambda state: state.has('Hammer') and state.has_bombchus() and state.can_use('Fire Arrows') and state.has('Mirror Shield')) + set_rule(world.get_location('Ganons Castle MQ Spirit Trial Sun Back Left Chest'), lambda state: state.has('Hammer') and state.has_bombchus() and state.can_use('Fire Arrows') and state.has('Mirror Shield')) + set_rule(world.get_location('Ganons Castle MQ Spirit Trial Golden Gauntlets Chest'), lambda state: state.has('Hammer') and state.has_bombchus() and state.can_use('Fire Arrows') and state.has('Mirror Shield')) + set_rule(world.get_location('Ganons Castle MQ Spirit Trial Sun Back Right Chest'), lambda state: state.has('Hammer') and state.has_bombchus() and state.can_use('Fire Arrows') and state.has('Mirror Shield')) + set_rule(world.get_location('Ganons Castle Spirit Trial Clear'), lambda state: state.can_use('Light Arrows') and state.has('Hammer') and state.has_bombchus() and state.has('Fire Arrows') and state.has('Mirror Shield')) set_rule(world.get_location('Ganons Castle MQ Light Trial Lullaby Chest'), lambda state: state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('Ganons Castle Light Trial Clear'), lambda state: state.has('Magic Meter') and state.has('Bow') and state.has('Progressive Hookshot') and state.has('Light Arrows') and state.has('Small Key (Ganons Castle)', 3)) + set_rule(world.get_location('Ganons Castle Light Trial Clear'), lambda state: state.can_use('Light Arrows') and state.has('Progressive Hookshot') and state.has('Small Key (Ganons Castle)', 3)) # Song locations can only be a song #song_locations = [world.get_location(location) for location in From e5132d62dc1fc7f7e4f7dd43f0f6194a036136d8 Mon Sep 17 00:00:00 2001 From: Chris Date: Wed, 29 Aug 2018 18:28:44 -0400 Subject: [PATCH 354/755] Updated Compressor/Decompressor --- Decompress/Decompress.exe | Bin Decompress/Decompress32.exe | Bin 0 -> 20992 bytes Rom.py | 7 +++++-- 3 files changed, 5 insertions(+), 2 deletions(-) mode change 100644 => 100755 Decompress/Decompress.exe create mode 100755 Decompress/Decompress32.exe diff --git a/Decompress/Decompress.exe b/Decompress/Decompress.exe old mode 100644 new mode 100755 diff --git a/Decompress/Decompress32.exe b/Decompress/Decompress32.exe new file mode 100755 index 0000000000000000000000000000000000000000..0de1251d86543fa832e16e27162ffb679a4caf91 GIT binary patch literal 20992 zcmeHv3v?7!o_BS31)HSlYBbTPK})vLWF~<$37BBwbWDPv0Rn`Ff`(4I8ls(t-PJsl zRbr=++OnOV9ma9ys2|yQR(IF=#+i=^_`(i}NkC@};EYim2U(oy5L{vO03W*c_xstC^Q z+sFUgzLR9RXt zqj7``K?0Gk=kQ;})vlWAcF8Vum7p-)p)>a#YK&b@t}r^)ry)Ld8Q`@jW|aIf9J&LZ zbE>qa-UIKv3!8GQP%J3LC@B}iYw-IC|@(NX>_|MqGpvrvi4UP=9b54M#MzU-(gUxPrQfad3l-0r@mQiD?7&(12?I z@kD~h@;f&{hk+`)jf2Xl%{Hy(GpXk7*{HgxuQL-0DOGk$?5GI+`to}{ktL4k%TSh6 zK3TRjyyUsX%6q|M8$bV-orQqK-ngFQ^7_J6_G^QOjt_8e;~H@CT4mNMi&ojRDpRYn zwJL|I;F06%4CaTELg)!2$GJOceR7;sm-A|Q8|*!rS=uXfWT6Yf#!OiEAp@@*KQ8=Y zQZAeliUvOF%*T!6VDPj-==d5AVC_&;=$J>t(s*b`Zed`C^f{WLgF?qd^mq2vvM|UY z;{c0{!~;(Js2Lv$9<#(2AsztOmgnT+SzgEmA-Y~9(*nx|mwXIs#8zGode5PEAnil+ zk+W3_u@#OzqnYqu$9_3K__0C0>1C297&QppwoPZmhySR&75v<=>C9xI>aEcj5cT-( z*dLfUdi7WvxR0c3!_al2YZy$_Nz8r+RT<8s3|@P5enbvzD_z!zLBgK#M_$mO94)B|Sbh~_g?vG*sz1P2Gw2#Gu{gg*O^c>FOI zS0hJot7O{aS+$zCM_d4CxWtZVWoxu7L@NwhBR>U-BRX;lyvT$L0Sk8nIpI%4(m)!y zizvkAPoQ~b8F}(6Om2pj?58oYse1of^hemWgeKx*%xZPU9Evi;UM&Lhw+KcG_t!B> z=}kbh+|24Vn)qFZC|Du%6&Ru9*p($m;`@Wg%*ueeud|qXqH+niRE+U{g#?zbB=iMD2dik7#@MXv4(*r61D!_3_mgy2!d?$#z$&^E zm6LkB52O)ey569lkqxx$X$E8f=pQ_m-N~ejGNMeXp-xf`Qdt<|Vol>cy^+O^sIq(C zQDtBI2{E|y(-#av^*&|az7gfE_Rk3rJPgQN%3h!x&>%Vq0w+Rq%are*AW?<%-)Li?G{=h|F5e}hIK zXGL%Ona%mHJ+O0YXCVlzfi#tD{#u4Ja^S8KN(HjZNH*!msF`+3$b5z-09A4@S zKTA^R+xE8#BXm4NR(b3cykAZd2^|jtP)_n7xXdKd>mSbBds+w)ijr?vympK78Gdaj znXfWtNqY$0mg|&3p}XcfL(ie?o{w$gdxY+)>r7f@>^Wo}-(&c-vRC-~C`M<)z*sAk z!63X4KM-}CG4OWBQO9XVjonuIe}&53%0N4oJ~D*RL3?$P#UAYC4K?=6_Afb`jSDB$n#twN4I>Zg z5VFbZGrzd;_akcn0WYSSBW8lK$~YBvJdN8-Wi~&iX#z|5`I|{J;pYSA;f=-j60CmM z=Z}@aZnXd_!~0^&?)E>?Tt3;0nY;V^={^LM9&P@!>E82~LdkrF&Fo$SVu6A_Y8`T>uI&+l{vK19PT3{C-&csYLDfxW@qW(|84^pu6*Zhov8 zI1%Q5bR3TFrS%ZYVCPQSsNvCTF_>&a9)(nE5EQ|v6DGIBKGqJG)DxRT8YK2Zw%Oa% zm3EOvc2FEaxuZa*?Vis2Naww7>T(FIKe&}{Lvd$iG%V% zL|^}f9oWi@n-6)E+rBQ{8#q3?iu2iu zf)-760!Or9HDM6c6n^c~@u zp3(!tGrPy{rT+0f!H-SC)}D^NLdS8qOU<+g&x{u~AHjY2j<4XGYzSdNd}Q{F7=t~A zaAp`?oKk1EIrgi?5vBNtIG>d6TlYEmQ?O>Mz*Pp7y@n4Ar%Nq%@DYl0|uhw+lhTg-!J!sA24EeDE%WJ(in@~@V;S$ zOoX$L&~3)qEboI`FfX@QW(7VSX~ksLPT!FToSEB6sQ}nE_6R0Z@N^u`%oaKxg+&mr zG}B@aPQ-&p0_!ed5lSbe5op*P4UmHcFb5rG)Y*DK6jHy8(MqpMP_(`SY?gcgAcp`~ z1E4cvnTZ$={9s?MGK@1AkcdV+D@sRT0DB2Mwts4|C=wk9)I$7ijlwQC_naE;g_50S z9KYEU>-BgP@kHW73=*#8RVS}xQ7@jiM}mD8WMZ(s!5)}Ai} zKb=p=Vs&J(V?4swRNl!(E`T7TAG7l^J{Mkg*pPyMf=}op?Wnb_B5?*PyBS^l2ScyZ(O0dFsI;)w<$Ejja z-aYn1{ESXWp&p5_?X6Iqu?;2&ofMvUAAV5FpF_)W5L-<|O)u?PXH_5MO$*GWgTkY~ zB)|6>g1arHp9c;@L8U)tM*QGZJRo!o)94vAI-Ikj=iiKmkCfTw0hUaP{Rvp6+bwv0 zzzocU&&@fS&-qRopjKsLr^dAGU}0@R)HFkx+;Htz!NXt5GlMZ_@X#CbR8r71iAE3! zr%nRUOsK784>mChHc-e4rjcTXU|%5}W*i4c?!ZD8&#D3jjOSg%{Kdzf#4a)>1%=`5 zX7raN`q!eL4(Nbo0~Yh3txc0eKBq>V^fWkO{hW}up6_`u^cy;Rb-7pvc_`c%owi(@iSzud-`a7 z1ZnlkV87Y)VTVb4h@2U6nb+RCgK61^-%Srnp)^3?Za3TC00n1h} zKZT1aQ^pyNt2X4OJ_yfyI~hx0N~Iq~2)XGpE?%iC)h zQb2e(_G3Jt2s^6Z_9#sMF*iKA5rouxqD=D<0}<@LLV2(K9T1Cex&?&Z8>6z2sB~Aq zy~Q;8I*}hVnUn#I!Ax{1w~YRyI)QXEoKP!xrd@?ub)FT-Kl>7hP#CV;O0Ihb?X%Vc zb{@bAs+v@;{0AHtT{o{BhsCH6q?uoyMz^6q;uiMCIR-V46EUKD$7Ki;O5cA6(SfNq zP4B?U-#}D9Cx`PZFVyf5OP}9};9)C#B*st{l@?#E=#7Lli$LY}m<+ zG9--6a~KNrL9n5Y_z>ek1HoqOJaX=Mn>IesM;(wfaT1H2!YUQJ_e?y_=!|yj&pYLl zn8x?QA1S0r^VpjhLA&2ddI%^d1fH4XY>m(5^L>nBEJkWEB$Cq2%-ELfrsJI_wVyGq zP4-Wu;q3Vddp=n2g#F@Kg;?3tNiX4^jzR_Nsaa0T9ag4X+HXx1=)Xay(jR{hM?p*I zq-<6zc^s$XL+T21=wRSrlG-W^1S-x2+EHsQhwRNsoCrF%Gj9cK*w2;YEAGW+y8T8N zh4~A+44IXz8_R~glrfPju|$hHVa0@oU8&?Xc{_D+6()BAr_vnH()laL!3IorLFM@9 z2!oUmqGr5a0n1L>plRdeb4a;~ylz0HjAC(hUX zEPCo3vvLPJHI2huI2UQa0Iasn}Ky; z)C~W`4xVBsZS6SK8_^9dghCk08lZ&tWyAv`C#uVtFdGmYp@YhB;In}=>Y{5Pjhw{p z5=O|^{5kq;a(&b3%U5aGQyU!R>}z*7lp(DMxMX)l>~x15Hfz9%yJuX>>9=Naw8*)if7-J1UUl_8pT=kn9I(fI`2 zK1=8~4yr*I=#zrK7!Uhq*$O%-&zIWx8@2IA65~_svs{z$pp0xc=$*XnCQ-gDv`5|< z9D#3eFw89-4vaWRymR=;WDkvgKSC%JW%ok$5WvZJO!*ig5n0*pQr%ez9M&Bpw*nlWrm>G(P>n3K)J?b5n(m{xD2M*A_ z%PDYRqpuOdCpE$>@B)_6&xn6;6jsbs=irzTxD3K$rFt)P@R69>W?9kRPbw?NAxv`5 zURaBqGLAOLefYB4N9aB{o-3f5b*vlB>j7Z-T^JIdlKCh-d&j5P^xC4=X1(V1n$zpA zFzE^Zv|fLq*T?nxm|n;9`iNd1((4cPdRVXD)$1X>ep{~x^}0{5U(@UDdi|nazo6IK z^!jPNj_CE{toB64{&l{KH83TiLVG9xlgI}6(n<+f;3`QmP zH+2HboAM42M#{-S3DYV&@|6xsk>Zt+gHoPIq1touhUpah4hEaDNEvkk%l%@3GrUj7 zdBtLnjfZ|}774Bl6U9z;n^Q>RiSl%wL3EUrg=Xb616zXqwp(PR(L(o=$zbGv#QWyx04mG6hHbTMrI*eM&NdwqL4HA_woRSoy?fpC0>@Oh*UQz{`=r%Pep&LdFGZ#LrWQ{tpl<0xa7N(10>?~k z>>X?C7wMxby)M6B^5clz@LjIj=WF%N5-VE+UU$n)vgm1Qaf`C6!7HVspVRvD#VLLf zUl7x0!}1zQY;5)Uq()ivH$5nE>l(Pb7c8i&s;->+;LKvOzKE^F+2-V4`Wq*=q~-pW z)^#nSM10U!-|PYfpD#CW79-k%-`pvy!C`ftDCYVkd9BM^js_+`g>QABS!$6*cWbi? z-zhU1Vs6!fc@=Z#=Z$syn_5-}ye?mpyg|%eJok3=aSPT;K99F`o#=D5td}beI{tb!~WfjU(D6gT+gFfpD z*3B%Y547c`W=Zt8n!Ev@G%KB}aJwOyU!2k=u5pn^#HMD~YN@~ve>AnWaH6=h$tMR~ z-h~0lw}B0W4xUz@IK?eCY>*|t=#oWOk_z)zVoa^CRVKd@JB(V_B(H(5-I7?ie#(0I zRZMuZ%`XMqtuUaswb4a<>Em*_wXxMJ!tQ# zC3PmL;M-AhF90XBbM?pvjP%F`{uhM6_}-S}YuuZ{_KpmO zTLZKh@TaBX-%oOB`VshCKG}dVdtn@9(TPvcXnejGGK*-Ipvb?9$7iC}`r6XbSCLUk z7|;i0B}xQ1524n_*J()iXw_^DcO$yDpd112QgRN{slsY`%rx6-+ss#3GlOZcyUAfl zw`PKYt)ky*sTi=DE8ZlQ9za3r9H{aCToBoHK7}%{G{gUWJK*E9`Bx-Hv;@NVg+^Jq6ex>J;0K(IVS!A={p- zTSW%N8~yD|$vg4*O-b7z-YWGtf5ngza9W&W$a(QZ@sNXZ=(Tvfn-Ew$fwA$&=~goZ z&21UAR&zB)L?*iDpvbSs<9I#7=4G7@r{=k_O87+E4SbT9n{TzP)Z>(Fxe@T$1lM_r z_kkr;r3p?pTaNMqaEJz7M31g>`6Skmr-6&t4($3i+)cox<$~Q*>BSYF=#GtMA;5m9!t`P4{?7nnMfWgwq01?XbggN30oRhvH4B& zzYN8R{)ed_GH<5X4w``JPPbYxBh83vzA|G~N^3UORI=lGln#vjHrtSVB*z-y-iaD= zIE}Yk+4rNxXl?@>->0yPa4Bw{28{jjCE+f!@)y%F;m^1K3^@|GF9DbAMi;>fQC>`e zU5pp`fb@s}cOmLzEaKLQLiT(YeY5mAdiFZuG)An&(B=_qA%5pyV9lVo--t5w20koJ zou~SKG(TmQk`FE>rxP?t&gHw~@&B#M5;W3EwFr}j7VN4FL>Zetvon19-MkFrdcC_c zvvwHDrO&ByYvhW%EaANUwfYoizCZP4pLof3o9RJpQy!hv{4kooH#An=#LtGuJAv zVZ$qv&=suBeD?*$$r%4(>UdeV$!!_NMGV!Y1FDE1B)PaB67j~piM@kp;!4Du1+dFC z5GSH0J7fb^PO!0gxItHu{rT(~bQJ^V2^}XybM-OWhxGlm+FDqT)#KdV6{0V(W@1@B zYj@SoPOpJh8)&u?&4tPNZ(N}>CV3B`yat>C)O3j`WUFDoSPazAxneGz2ky);)}Ye# z%tq|l`?2Q$moA!T`G7eA+em;Ees}5os%Z7uY^+M?O=|(|zmH?g^E3vw(dShS?Z3n| zx$)kfVXRGUS7bDycdouIUo@r@emXrcwkIU~^aWrDujF;HIhO+rD*WDfd^};Z^&jgq zJ3A8K()H(Bpls6^W?u*~(~kWh1-5E4;sLM=T{(|pj-b?_+>O$L(t+|*lz&Fqg))S4 z809MzOAzN=6emh8%6%wXP$DSLq5Kl%Ur`RB&~+U3*C2c-<97Ugb~H7Gum zjVN1CA}CLx`~%91DBDqXq4c8+p$wxOMmdV|CzLZNM(CW5l8JI1N-oNDlrogrD77ee zqtNyLo4&u{swA%@OO?oYBKPQBtmpntaMj3I`pyM&9>Z*(B-J!E_*}jXT)*LVNv;ea zgWDn_;n#?4A~$e8Y_6MoD+OA&#wWSl0CH(YjIVL|WtKYTxT~l=uhkv!N^@K-__LA< zWakJ*#PxI~z8EFQVi}pyK-*m8tt+^{WsnWXXE)a&$64W@jie*paX+D+x~9hak(F+d zIqp;A+!ko+@*>@Qu5!7i8p*ZxJTUiNQ%$SOt?LYleqv$?(OP7MTYb%xuVus~AJ@V! zmgFTZYnbfr>h+CM8)Y;h4Q$Ch#4q+rQXAf^)k(hQrWThhC5*;J_&Tp2qAqoL0}}TP ze^DabE?&>dVk~7?@mXU6!o=dZn<zib57Fw$%nX=w4-)cX13))Svfz+}V zyJUU6x3RTlErVdTq3xICdRJRpy}Y4K;<)=YNWc$?wQM`bJ;c?!8k^nT7A}IjX8-DX z#)#|W>KnDY%MJA&`d>ge?p^~U4fUJ32HdwcaNHh4J#xMGbFIdDUB=r@^??=!yN-7? zwEAT3yF7vs5RRM4YcxxFPa|^WpjpLxTHB-+ZZ_{}^EI`|9&Qfq0&*i)!+R*SxOr3q zb20DnOVa(^Qr;s=c=Y*f5o2u7S#;w z|FS~vWz*S+2F?IL;RWD?N6(GRU*fp$^VHI=vhS^LPQIiqpX``gI9Zfh@RAqroXaOK zsheF;GFkM?I1IVyFj78wgXEw5y<5}E=$nD&2JZ$D<6HdYlLNk%S^mZ~QnSln(A?DM zYxTE!Kvr z0ea1^H39HR4+OwMa@YEr*5drQTJk6QQhTe{V<4UCYNWLiUfrXlxl2Z^N7Lh9)n4h48I5It!hwr3p}mL!1{!dJ;7$(hUU# z^tHm=DtwthUo_wg4ML$e`D56kKhV~OLl}G2zYHj?>->1F4^N5(1xZpmlH|t!_%_#F zKKUVOdZEKnJmcm9$Bg2c1;s^;GYVWYJW@enVToIkq#}2br|@r6%=4d@<>qgcqiBYs zsHCCPRWQR{3OPIt?t&6&y1T$Ny|}n=`t%u|(jwP?jT|N4C`Yktx@UTcR8%mdsG+o= zxVYF+(BLX@>*C^-s>rx%qLl+I{q zC@3j%7kXy83*D}pnIs~c8Hm9DylWhV-zZ6mROq?c<(OX3;Atp=Z={j}cxpyLaf!!0 rqtNA;;VNam(IhFGmJ*e0YD_yT*s+vMOROcgCcbh@tWKBega!T|GSKfj literal 0 HcmV?d00001 diff --git a/Rom.py b/Rom.py index abbbe31ff..db017dc96 100644 --- a/Rom.py +++ b/Rom.py @@ -35,7 +35,10 @@ def __init__(self, settings, patch=True): raise RuntimeError('ROM is not a valid OoT 1.0 ROM.') if len(self.buffer) == 0x2000000: if platform.system() == 'Windows': - subprocess.call(["Decompress\\Decompress.exe", file, decomp_file]) + if 8 * struct.calcsize("P") == 64: + subprocess.call(["Decompress\\Decompress.exe", file, decomp_file]) + else: + subprocess.call(["Decompress\\Decompress32.exe", file, decomp_file]) with open(decomp_file, 'rb') as stream: self.buffer = read_rom(stream) elif platform.system() == 'Linux': @@ -176,4 +179,4 @@ def bytes_as_int24(values): return (values[0] << 16) | (values[1] << 8) | values[2] def bytes_as_int32(values): - return (values[0] << 24) | (values[1] << 16) | (values[2] << 8) | values[3] \ No newline at end of file + return (values[0] << 24) | (values[1] << 16) | (values[2] << 8) | values[3] From 4f6d61b7bceaf77344d118c42ed07d27f170db01 Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 30 Aug 2018 01:48:33 -0400 Subject: [PATCH 355/755] Added 32-Bit Decompressor (Issue #58) --- Decompress/Decompress32.exe | Bin 0 -> 20992 bytes Rom.py | 5 ++++- version.py | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 Decompress/Decompress32.exe diff --git a/Decompress/Decompress32.exe b/Decompress/Decompress32.exe new file mode 100644 index 0000000000000000000000000000000000000000..0de1251d86543fa832e16e27162ffb679a4caf91 GIT binary patch literal 20992 zcmeHv3v?7!o_BS31)HSlYBbTPK})vLWF~<$37BBwbWDPv0Rn`Ff`(4I8ls(t-PJsl zRbr=++OnOV9ma9ys2|yQR(IF=#+i=^_`(i}NkC@};EYim2U(oy5L{vO03W*c_xstC^Q z+sFUgzLR9RXt zqj7``K?0Gk=kQ;})vlWAcF8Vum7p-)p)>a#YK&b@t}r^)ry)Ld8Q`@jW|aIf9J&LZ zbE>qa-UIKv3!8GQP%J3LC@B}iYw-IC|@(NX>_|MqGpvrvi4UP=9b54M#MzU-(gUxPrQfad3l-0r@mQiD?7&(12?I z@kD~h@;f&{hk+`)jf2Xl%{Hy(GpXk7*{HgxuQL-0DOGk$?5GI+`to}{ktL4k%TSh6 zK3TRjyyUsX%6q|M8$bV-orQqK-ngFQ^7_J6_G^QOjt_8e;~H@CT4mNMi&ojRDpRYn zwJL|I;F06%4CaTELg)!2$GJOceR7;sm-A|Q8|*!rS=uXfWT6Yf#!OiEAp@@*KQ8=Y zQZAeliUvOF%*T!6VDPj-==d5AVC_&;=$J>t(s*b`Zed`C^f{WLgF?qd^mq2vvM|UY z;{c0{!~;(Js2Lv$9<#(2AsztOmgnT+SzgEmA-Y~9(*nx|mwXIs#8zGode5PEAnil+ zk+W3_u@#OzqnYqu$9_3K__0C0>1C297&QppwoPZmhySR&75v<=>C9xI>aEcj5cT-( z*dLfUdi7WvxR0c3!_al2YZy$_Nz8r+RT<8s3|@P5enbvzD_z!zLBgK#M_$mO94)B|Sbh~_g?vG*sz1P2Gw2#Gu{gg*O^c>FOI zS0hJot7O{aS+$zCM_d4CxWtZVWoxu7L@NwhBR>U-BRX;lyvT$L0Sk8nIpI%4(m)!y zizvkAPoQ~b8F}(6Om2pj?58oYse1of^hemWgeKx*%xZPU9Evi;UM&Lhw+KcG_t!B> z=}kbh+|24Vn)qFZC|Du%6&Ru9*p($m;`@Wg%*ueeud|qXqH+niRE+U{g#?zbB=iMD2dik7#@MXv4(*r61D!_3_mgy2!d?$#z$&^E zm6LkB52O)ey569lkqxx$X$E8f=pQ_m-N~ejGNMeXp-xf`Qdt<|Vol>cy^+O^sIq(C zQDtBI2{E|y(-#av^*&|az7gfE_Rk3rJPgQN%3h!x&>%Vq0w+Rq%are*AW?<%-)Li?G{=h|F5e}hIK zXGL%Ona%mHJ+O0YXCVlzfi#tD{#u4Ja^S8KN(HjZNH*!msF`+3$b5z-09A4@S zKTA^R+xE8#BXm4NR(b3cykAZd2^|jtP)_n7xXdKd>mSbBds+w)ijr?vympK78Gdaj znXfWtNqY$0mg|&3p}XcfL(ie?o{w$gdxY+)>r7f@>^Wo}-(&c-vRC-~C`M<)z*sAk z!63X4KM-}CG4OWBQO9XVjonuIe}&53%0N4oJ~D*RL3?$P#UAYC4K?=6_Afb`jSDB$n#twN4I>Zg z5VFbZGrzd;_akcn0WYSSBW8lK$~YBvJdN8-Wi~&iX#z|5`I|{J;pYSA;f=-j60CmM z=Z}@aZnXd_!~0^&?)E>?Tt3;0nY;V^={^LM9&P@!>E82~LdkrF&Fo$SVu6A_Y8`T>uI&+l{vK19PT3{C-&csYLDfxW@qW(|84^pu6*Zhov8 zI1%Q5bR3TFrS%ZYVCPQSsNvCTF_>&a9)(nE5EQ|v6DGIBKGqJG)DxRT8YK2Zw%Oa% zm3EOvc2FEaxuZa*?Vis2Naww7>T(FIKe&}{Lvd$iG%V% zL|^}f9oWi@n-6)E+rBQ{8#q3?iu2iu zf)-760!Or9HDM6c6n^c~@u zp3(!tGrPy{rT+0f!H-SC)}D^NLdS8qOU<+g&x{u~AHjY2j<4XGYzSdNd}Q{F7=t~A zaAp`?oKk1EIrgi?5vBNtIG>d6TlYEmQ?O>Mz*Pp7y@n4Ar%Nq%@DYl0|uhw+lhTg-!J!sA24EeDE%WJ(in@~@V;S$ zOoX$L&~3)qEboI`FfX@QW(7VSX~ksLPT!FToSEB6sQ}nE_6R0Z@N^u`%oaKxg+&mr zG}B@aPQ-&p0_!ed5lSbe5op*P4UmHcFb5rG)Y*DK6jHy8(MqpMP_(`SY?gcgAcp`~ z1E4cvnTZ$={9s?MGK@1AkcdV+D@sRT0DB2Mwts4|C=wk9)I$7ijlwQC_naE;g_50S z9KYEU>-BgP@kHW73=*#8RVS}xQ7@jiM}mD8WMZ(s!5)}Ai} zKb=p=Vs&J(V?4swRNl!(E`T7TAG7l^J{Mkg*pPyMf=}op?Wnb_B5?*PyBS^l2ScyZ(O0dFsI;)w<$Ejja z-aYn1{ESXWp&p5_?X6Iqu?;2&ofMvUAAV5FpF_)W5L-<|O)u?PXH_5MO$*GWgTkY~ zB)|6>g1arHp9c;@L8U)tM*QGZJRo!o)94vAI-Ikj=iiKmkCfTw0hUaP{Rvp6+bwv0 zzzocU&&@fS&-qRopjKsLr^dAGU}0@R)HFkx+;Htz!NXt5GlMZ_@X#CbR8r71iAE3! zr%nRUOsK784>mChHc-e4rjcTXU|%5}W*i4c?!ZD8&#D3jjOSg%{Kdzf#4a)>1%=`5 zX7raN`q!eL4(Nbo0~Yh3txc0eKBq>V^fWkO{hW}up6_`u^cy;Rb-7pvc_`c%owi(@iSzud-`a7 z1ZnlkV87Y)VTVb4h@2U6nb+RCgK61^-%Srnp)^3?Za3TC00n1h} zKZT1aQ^pyNt2X4OJ_yfyI~hx0N~Iq~2)XGpE?%iC)h zQb2e(_G3Jt2s^6Z_9#sMF*iKA5rouxqD=D<0}<@LLV2(K9T1Cex&?&Z8>6z2sB~Aq zy~Q;8I*}hVnUn#I!Ax{1w~YRyI)QXEoKP!xrd@?ub)FT-Kl>7hP#CV;O0Ihb?X%Vc zb{@bAs+v@;{0AHtT{o{BhsCH6q?uoyMz^6q;uiMCIR-V46EUKD$7Ki;O5cA6(SfNq zP4B?U-#}D9Cx`PZFVyf5OP}9};9)C#B*st{l@?#E=#7Lli$LY}m<+ zG9--6a~KNrL9n5Y_z>ek1HoqOJaX=Mn>IesM;(wfaT1H2!YUQJ_e?y_=!|yj&pYLl zn8x?QA1S0r^VpjhLA&2ddI%^d1fH4XY>m(5^L>nBEJkWEB$Cq2%-ELfrsJI_wVyGq zP4-Wu;q3Vddp=n2g#F@Kg;?3tNiX4^jzR_Nsaa0T9ag4X+HXx1=)Xay(jR{hM?p*I zq-<6zc^s$XL+T21=wRSrlG-W^1S-x2+EHsQhwRNsoCrF%Gj9cK*w2;YEAGW+y8T8N zh4~A+44IXz8_R~glrfPju|$hHVa0@oU8&?Xc{_D+6()BAr_vnH()laL!3IorLFM@9 z2!oUmqGr5a0n1L>plRdeb4a;~ylz0HjAC(hUX zEPCo3vvLPJHI2huI2UQa0Iasn}Ky; z)C~W`4xVBsZS6SK8_^9dghCk08lZ&tWyAv`C#uVtFdGmYp@YhB;In}=>Y{5Pjhw{p z5=O|^{5kq;a(&b3%U5aGQyU!R>}z*7lp(DMxMX)l>~x15Hfz9%yJuX>>9=Naw8*)if7-J1UUl_8pT=kn9I(fI`2 zK1=8~4yr*I=#zrK7!Uhq*$O%-&zIWx8@2IA65~_svs{z$pp0xc=$*XnCQ-gDv`5|< z9D#3eFw89-4vaWRymR=;WDkvgKSC%JW%ok$5WvZJO!*ig5n0*pQr%ez9M&Bpw*nlWrm>G(P>n3K)J?b5n(m{xD2M*A_ z%PDYRqpuOdCpE$>@B)_6&xn6;6jsbs=irzTxD3K$rFt)P@R69>W?9kRPbw?NAxv`5 zURaBqGLAOLefYB4N9aB{o-3f5b*vlB>j7Z-T^JIdlKCh-d&j5P^xC4=X1(V1n$zpA zFzE^Zv|fLq*T?nxm|n;9`iNd1((4cPdRVXD)$1X>ep{~x^}0{5U(@UDdi|nazo6IK z^!jPNj_CE{toB64{&l{KH83TiLVG9xlgI}6(n<+f;3`QmP zH+2HboAM42M#{-S3DYV&@|6xsk>Zt+gHoPIq1touhUpah4hEaDNEvkk%l%@3GrUj7 zdBtLnjfZ|}774Bl6U9z;n^Q>RiSl%wL3EUrg=Xb616zXqwp(PR(L(o=$zbGv#QWyx04mG6hHbTMrI*eM&NdwqL4HA_woRSoy?fpC0>@Oh*UQz{`=r%Pep&LdFGZ#LrWQ{tpl<0xa7N(10>?~k z>>X?C7wMxby)M6B^5clz@LjIj=WF%N5-VE+UU$n)vgm1Qaf`C6!7HVspVRvD#VLLf zUl7x0!}1zQY;5)Uq()ivH$5nE>l(Pb7c8i&s;->+;LKvOzKE^F+2-V4`Wq*=q~-pW z)^#nSM10U!-|PYfpD#CW79-k%-`pvy!C`ftDCYVkd9BM^js_+`g>QABS!$6*cWbi? z-zhU1Vs6!fc@=Z#=Z$syn_5-}ye?mpyg|%eJok3=aSPT;K99F`o#=D5td}beI{tb!~WfjU(D6gT+gFfpD z*3B%Y547c`W=Zt8n!Ev@G%KB}aJwOyU!2k=u5pn^#HMD~YN@~ve>AnWaH6=h$tMR~ z-h~0lw}B0W4xUz@IK?eCY>*|t=#oWOk_z)zVoa^CRVKd@JB(V_B(H(5-I7?ie#(0I zRZMuZ%`XMqtuUaswb4a<>Em*_wXxMJ!tQ# zC3PmL;M-AhF90XBbM?pvjP%F`{uhM6_}-S}YuuZ{_KpmO zTLZKh@TaBX-%oOB`VshCKG}dVdtn@9(TPvcXnejGGK*-Ipvb?9$7iC}`r6XbSCLUk z7|;i0B}xQ1524n_*J()iXw_^DcO$yDpd112QgRN{slsY`%rx6-+ss#3GlOZcyUAfl zw`PKYt)ky*sTi=DE8ZlQ9za3r9H{aCToBoHK7}%{G{gUWJK*E9`Bx-Hv;@NVg+^Jq6ex>J;0K(IVS!A={p- zTSW%N8~yD|$vg4*O-b7z-YWGtf5ngza9W&W$a(QZ@sNXZ=(Tvfn-Ew$fwA$&=~goZ z&21UAR&zB)L?*iDpvbSs<9I#7=4G7@r{=k_O87+E4SbT9n{TzP)Z>(Fxe@T$1lM_r z_kkr;r3p?pTaNMqaEJz7M31g>`6Skmr-6&t4($3i+)cox<$~Q*>BSYF=#GtMA;5m9!t`P4{?7nnMfWgwq01?XbggN30oRhvH4B& zzYN8R{)ed_GH<5X4w``JPPbYxBh83vzA|G~N^3UORI=lGln#vjHrtSVB*z-y-iaD= zIE}Yk+4rNxXl?@>->0yPa4Bw{28{jjCE+f!@)y%F;m^1K3^@|GF9DbAMi;>fQC>`e zU5pp`fb@s}cOmLzEaKLQLiT(YeY5mAdiFZuG)An&(B=_qA%5pyV9lVo--t5w20koJ zou~SKG(TmQk`FE>rxP?t&gHw~@&B#M5;W3EwFr}j7VN4FL>Zetvon19-MkFrdcC_c zvvwHDrO&ByYvhW%EaANUwfYoizCZP4pLof3o9RJpQy!hv{4kooH#An=#LtGuJAv zVZ$qv&=suBeD?*$$r%4(>UdeV$!!_NMGV!Y1FDE1B)PaB67j~piM@kp;!4Du1+dFC z5GSH0J7fb^PO!0gxItHu{rT(~bQJ^V2^}XybM-OWhxGlm+FDqT)#KdV6{0V(W@1@B zYj@SoPOpJh8)&u?&4tPNZ(N}>CV3B`yat>C)O3j`WUFDoSPazAxneGz2ky);)}Ye# z%tq|l`?2Q$moA!T`G7eA+em;Ees}5os%Z7uY^+M?O=|(|zmH?g^E3vw(dShS?Z3n| zx$)kfVXRGUS7bDycdouIUo@r@emXrcwkIU~^aWrDujF;HIhO+rD*WDfd^};Z^&jgq zJ3A8K()H(Bpls6^W?u*~(~kWh1-5E4;sLM=T{(|pj-b?_+>O$L(t+|*lz&Fqg))S4 z809MzOAzN=6emh8%6%wXP$DSLq5Kl%Ur`RB&~+U3*C2c-<97Ugb~H7Gum zjVN1CA}CLx`~%91DBDqXq4c8+p$wxOMmdV|CzLZNM(CW5l8JI1N-oNDlrogrD77ee zqtNyLo4&u{swA%@OO?oYBKPQBtmpntaMj3I`pyM&9>Z*(B-J!E_*}jXT)*LVNv;ea zgWDn_;n#?4A~$e8Y_6MoD+OA&#wWSl0CH(YjIVL|WtKYTxT~l=uhkv!N^@K-__LA< zWakJ*#PxI~z8EFQVi}pyK-*m8tt+^{WsnWXXE)a&$64W@jie*paX+D+x~9hak(F+d zIqp;A+!ko+@*>@Qu5!7i8p*ZxJTUiNQ%$SOt?LYleqv$?(OP7MTYb%xuVus~AJ@V! zmgFTZYnbfr>h+CM8)Y;h4Q$Ch#4q+rQXAf^)k(hQrWThhC5*;J_&Tp2qAqoL0}}TP ze^DabE?&>dVk~7?@mXU6!o=dZn<zib57Fw$%nX=w4-)cX13))Svfz+}V zyJUU6x3RTlErVdTq3xICdRJRpy}Y4K;<)=YNWc$?wQM`bJ;c?!8k^nT7A}IjX8-DX z#)#|W>KnDY%MJA&`d>ge?p^~U4fUJ32HdwcaNHh4J#xMGbFIdDUB=r@^??=!yN-7? zwEAT3yF7vs5RRM4YcxxFPa|^WpjpLxTHB-+ZZ_{}^EI`|9&Qfq0&*i)!+R*SxOr3q zb20DnOVa(^Qr;s=c=Y*f5o2u7S#;w z|FS~vWz*S+2F?IL;RWD?N6(GRU*fp$^VHI=vhS^LPQIiqpX``gI9Zfh@RAqroXaOK zsheF;GFkM?I1IVyFj78wgXEw5y<5}E=$nD&2JZ$D<6HdYlLNk%S^mZ~QnSln(A?DM zYxTE!Kvr z0ea1^H39HR4+OwMa@YEr*5drQTJk6QQhTe{V<4UCYNWLiUfrXlxl2Z^N7Lh9)n4h48I5It!hwr3p}mL!1{!dJ;7$(hUU# z^tHm=DtwthUo_wg4ML$e`D56kKhV~OLl}G2zYHj?>->1F4^N5(1xZpmlH|t!_%_#F zKKUVOdZEKnJmcm9$Bg2c1;s^;GYVWYJW@enVToIkq#}2br|@r6%=4d@<>qgcqiBYs zsHCCPRWQR{3OPIt?t&6&y1T$Ny|}n=`t%u|(jwP?jT|N4C`Yktx@UTcR8%mdsG+o= zxVYF+(BLX@>*C^-s>rx%qLl+I{q zC@3j%7kXy83*D}pnIs~c8Hm9DylWhV-zZ6mROq?c<(OX3;Atp=Z={j}cxpyLaf!!0 rqtNA;;VNam(IhFGmJ*e0YD_yT*s+vMOROcgCcbh@tWKBega!T|GSKfj literal 0 HcmV?d00001 diff --git a/Rom.py b/Rom.py index d3019c54f..8a8e3f076 100644 --- a/Rom.py +++ b/Rom.py @@ -88,7 +88,10 @@ def __init__(self, settings, patch=True): raise RuntimeError('ROM is not a valid OoT 1.0 ROM.') if len(self.buffer) == 0x2000000: if platform.system() == 'Windows': - subprocess.call(["Decompress\\Decompress.exe", file, decomp_file]) + if 8 * struct.calcsize("P") == 64: + subprocess.call(["Decompress\\Decompress.exe", file, decomp_file]) + else: + subprocess.call(["Decompress\\Decompress32.exe", file, decomp_file]) with open(decomp_file, 'rb') as stream: self.buffer = read_rom(stream) elif platform.system() == 'Linux': diff --git a/version.py b/version.py index c80dbac11..1edd241ec 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.36 f.LUM' +__version__ = '2.15.38 f.LUM' From e73e52efa88e7c2a6f68a1fc0b8834782cdc115d Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 30 Aug 2018 02:45:26 -0400 Subject: [PATCH 356/755] Try to load existing decompressed file before making a new one ZOOTDEC is also moved to be in ROOT instead of out the Output Directory. --- Rom.py | 55 +++++++++++++++++++++++++++++++++++++----------------- Rules.py | 2 +- version.py | 2 +- 3 files changed, 40 insertions(+), 19 deletions(-) diff --git a/Rom.py b/Rom.py index 8a8e3f076..02159efeb 100644 --- a/Rom.py +++ b/Rom.py @@ -64,29 +64,48 @@ def get_navi_color_options(): return ["Random Choice", "Completely Random"] + get_navi_colors() class LocalRom(object): - def __init__(self, settings, patch=True): self.last_address = None file = settings.rom - decomp_file = os.path.join(default_output_path(settings.output_dir), 'ZOOTDEC.z64') - - validCRC = [] - validCRC.append(bytearray([0xEC, 0x70, 0x11, 0xB7, 0x76, 0x16, 0xD7, 0x2B])) # Compressed - validCRC.append(bytearray([0x70, 0xEC, 0xB7, 0x11, 0x16, 0x76, 0x2B, 0xD7])) # Byteswap compressed - validCRC.append(bytearray([0x93, 0x52, 0x2E, 0x7B, 0xE5, 0x06, 0xD4, 0x27])) # Decompressed + decomp_file = 'ZOOTDEC.z64' os.chdir(os.path.dirname(os.path.realpath(__file__))) #os.chdir(output_path(os.path.dirname(os.path.realpath(__file__)))) - with open(file, 'rb') as stream: - self.buffer = read_rom(stream) + + try: + # Read decompressed file if it exists + with open(decomp_file, 'rb') as stream: + self.buffer = read_rom(stream) + # This is mainly for validation testing, but just in case... + self.decompress_rom_file(decomp_file, decomp_file) + except Exception as ex: + # No decompressed file, instead read Input ROM + with open(file, 'rb') as stream: + self.buffer = read_rom(stream) + self.decompress_rom_file(file, decomp_file) + + # Add file to maximum size + self.buffer.extend(bytearray([0x00] * (0x4000000 - len(self.buffer)))) + + def decompress_rom_file(self, file, decomp_file): + validCRC = [ + [0xEC, 0x70, 0x11, 0xB7, 0x76, 0x16, 0xD7, 0x2B], # Compressed + [0x70, 0xEC, 0xB7, 0x11, 0x16, 0x76, 0x2B, 0xD7], # Byteswap compressed + [0x93, 0x52, 0x2E, 0x7B, 0xE5, 0x06, 0xD4, 0x27], # Decompressed + ] + + # Validate ROM file file_name = os.path.splitext(file) - romCRC = self.buffer[0x10:0x18] + romCRC = list(self.buffer[0x10:0x18]) if romCRC not in validCRC: - raise RuntimeError('ROM is not a valid OoT 1.0 US ROM.') - if len(self.buffer) < 0x2000000 or len(self.buffer) > (0x4000000) or file_name[1] not in ['.z64', '.n64']: - raise RuntimeError('ROM is not a valid OoT 1.0 ROM.') - if len(self.buffer) == 0x2000000: + # Bad CRC validation + raise RuntimeError('ROM file %s is not a valid OoT 1.0 US ROM.' % file) + elif len(self.buffer) < 0x2000000 or len(self.buffer) > (0x4000000) or file_name[1] not in ['.z64', '.n64']: + # ROM is too big, or too small, or not a bad type + raise RuntimeError('ROM file %s is not a valid OoT 1.0 US ROM.' % file) + elif len(self.buffer) == 0x2000000: + # If Input ROM is compressed, then Decompress it if platform.system() == 'Windows': if 8 * struct.calcsize("P") == 64: subprocess.call(["Decompress\\Decompress.exe", file, decomp_file]) @@ -104,9 +123,11 @@ def __init__(self, settings, patch=True): self.buffer = read_rom(stream) else: raise RuntimeError('Unsupported operating system for decompression. Please supply an already decompressed ROM.') - # extend to 64MB - self.buffer.extend(bytearray([0x00] * (0x4000000 - len(self.buffer)))) - + else: + # ROM file is a valid and already uncompressed + pass + + def read_byte(self, address): return self.buffer[address] diff --git a/Rules.py b/Rules.py index 9a740492f..0a57d309c 100644 --- a/Rules.py +++ b/Rules.py @@ -299,7 +299,7 @@ def dung_rules_dc0(world): set_rule(world.get_entrance('Dodongos Cavern Lobby'), lambda state: state.can_blast_or_smash() or state.has('Progressive Strength Upgrade')) set_rule(world.get_entrance('Dodongos Cavern Left Door'), lambda state: state.has_explosives() or state.has('Progressive Strength Upgrade') or (state.has('Dins Fire') and state.has('Magic Meter')) or (state.has('Bow') and state.is_adult())) set_rule(world.get_entrance('Dodongos Cavern Slingshot Target'), lambda state: (state.has('Slingshot') and (state.has_explosives() or state.has('Progressive Strength Upgrade'))) or ((state.has('Bow') or state.has('Hover Boots') or state.has('Progressive Hookshot', 2) or world.logic_dc_jump) and state.is_adult())) - set_rule(world.get_location('Dodongos Cavern End of Bridge Chest'), lambda state: can_blast_or_smash()) + set_rule(world.get_location('Dodongos Cavern End of Bridge Chest'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Dodongos Cavern Bomb Drop'), lambda state: state.has_explosives()) # Boss diff --git a/version.py b/version.py index 1edd241ec..76dc4dd12 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.38 f.LUM' +__version__ = '2.15.39 f.LUM' From 52d41f5f11d02e24df4fb217576c55afcfdcebe7 Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 30 Aug 2018 02:48:52 -0400 Subject: [PATCH 357/755] Fixed ganon hint for dungeon items and added missing bombchu hint --- HintList.py | 5 +++-- Hints.py | 2 +- version.py | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/HintList.py b/HintList.py index 966d4cc26..258fed219 100644 --- a/HintList.py +++ b/HintList.py @@ -16,7 +16,7 @@ def getHint(string): ret = Hint(hint, text, type) break else: - text, type = hintTable['useless'] + text, type = hintTable['KeyError'] ret = Hint(hint, text, type) return ret @@ -119,7 +119,7 @@ def getHintGroup(string, world): 'BossKey': ("a master of unlocking", 'item'), 'SmallKey': ("a tool for unlocking", 'item'), 'FortressSmallKey': ("a get out of jail free card", 'item'), - 'useless': ("something worthless", 'item'), + 'KeyError': ("something mysterious", 'item'), 'Arrows (5)': ("danger darts", 'item'), 'Arrows (10)': ("danger darts", 'item'), 'Arrows (30)': ("danger darts", 'item'), @@ -128,6 +128,7 @@ def getHintGroup(string, world): 'Bombs (20)': ("lots-o-explosives", 'item'), 'Ice Trap': ("a gift from Ganon", 'item'), 'Magic Bean': ("wizardly legumes", 'item'), + 'Bombchus': ("mice bombs", 'item'), 'Bombchus (5)': ("mice bombs", 'item'), 'Bombchus (10)': ("mice bombs", 'item'), 'Bombchus (20)': ("mice bombs", 'item'), diff --git a/Hints.py b/Hints.py index 0fa2a0f6a..4f150bbbb 100644 --- a/Hints.py +++ b/Hints.py @@ -258,7 +258,7 @@ def buildGanonText(world, messages): text = get_raw_text(getHint('Validation Line').text) for location in world.get_locations(): if location.name == 'Ganons Tower Boss Key Chest': - text += get_raw_text(getHint(location.item.name).text) + text += get_raw_text(getItemGenericName(getHint(location.item.name).text)) update_message_by_id(messages, 0x70CC, text) diff --git a/version.py b/version.py index 76dc4dd12..d07d0f169 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.39 f.LUM' +__version__ = '2.15.40 f.LUM' From 38bd4a6f4009cc36c7f31079335638197d245d77 Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 30 Aug 2018 02:55:38 -0400 Subject: [PATCH 358/755] Fixed a tooltip, fixed issue with ganon hint --- Hints.py | 2 +- Settings.py | 7 +++---- version.py | 2 +- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/Hints.py b/Hints.py index 4f150bbbb..7455b8992 100644 --- a/Hints.py +++ b/Hints.py @@ -258,7 +258,7 @@ def buildGanonText(world, messages): text = get_raw_text(getHint('Validation Line').text) for location in world.get_locations(): if location.name == 'Ganons Tower Boss Key Chest': - text += get_raw_text(getItemGenericName(getHint(location.item.name).text)) + text += get_raw_text(getHint(getItemGenericName(location.item)).text) update_message_by_id(messages, 0x70CC, text) diff --git a/Settings.py b/Settings.py index e7ce6d472..de9e3ee93 100644 --- a/Settings.py +++ b/Settings.py @@ -818,11 +818,10 @@ def __init__(self, settings_dict): 'widget': 'Checkbutton', 'default': 'unchecked', 'tooltip':'''\ - Skulltula Token that can only be obtained + Skulltula Tokens that can only be obtained during the night expect you to have Sun's - Song because needed to collect them. This - option prevents needing to wait for time - of day for some locations. + Song to collect them. This prevents needing + to wait until night for some locations.s ''' }), Setting_Info('logic_no_big_poes', bool, 1, True, diff --git a/version.py b/version.py index d07d0f169..06e0c9828 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.40 f.LUM' +__version__ = '2.15.41 f.LUM' From 7700d89c796d1bc1003e1d2a5a0801490d9e7b9b Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 30 Aug 2018 03:08:16 -0400 Subject: [PATCH 359/755] Kakariko and Markey Bazaar are separate shops --- ItemList.py | 27 ++++++++++++++++++--------- Regions.py | 35 ++++++++++++++++++++++++----------- Rom.py | 35 +++++++++++++++++++++++++++++++++-- version.py | 2 +- 4 files changed, 76 insertions(+), 23 deletions(-) diff --git a/ItemList.py b/ItemList.py index 1ed53727e..944ccb449 100644 --- a/ItemList.py +++ b/ItemList.py @@ -123,14 +123,22 @@ 'Castle Town Potion Shop Item 6': 'Buy Bottle Bug', 'Castle Town Potion Shop Item 7': 'Buy Poe', 'Castle Town Potion Shop Item 8': 'Buy Fish', - 'Bazaar Item 1': 'Buy Hylian Shield', - 'Bazaar Item 2': 'Buy Bombs (5) [35]', - 'Bazaar Item 3': 'Buy Deku Nut (5)', - 'Bazaar Item 4': 'Buy Heart', - 'Bazaar Item 5': 'Buy Arrows (10)', - 'Bazaar Item 6': 'Buy Arrows (50)', - 'Bazaar Item 7': 'Buy Deku Stick (1)', - 'Bazaar Item 8': 'Buy Arrows (30)', + 'Castle Town Bazaar Item 1': 'Buy Hylian Shield', + 'Castle Town Bazaar Item 2': 'Buy Bombs (5) [35]', + 'Castle Town Bazaar Item 3': 'Buy Deku Nut (5)', + 'Castle Town Bazaar Item 4': 'Buy Heart', + 'Castle Town Bazaar Item 5': 'Buy Arrows (10)', + 'Castle Town Bazaar Item 6': 'Buy Arrows (50)', + 'Castle Town Bazaar Item 7': 'Buy Deku Stick (1)', + 'Castle Town Bazaar Item 8': 'Buy Arrows (30)', + 'Kakariko Bazaar Item 1': 'Buy Hylian Shield', + 'Kakariko Bazaar Item 2': 'Buy Bombs (5) [35]', + 'Kakariko Bazaar Item 3': 'Buy Deku Nut (5)', + 'Kakariko Bazaar Item 4': 'Buy Heart', + 'Kakariko Bazaar Item 5': 'Buy Arrows (10)', + 'Kakariko Bazaar Item 6': 'Buy Arrows (50)', + 'Kakariko Bazaar Item 7': 'Buy Deku Stick (1)', + 'Kakariko Bazaar Item 8': 'Buy Arrows (30)', 'Zora Shop Item 1': 'Buy Zora Tunic', 'Zora Shop Item 2': 'Buy Arrows (10)', 'Zora Shop Item 3': 'Buy Heart', @@ -430,7 +438,8 @@ def get_pool_core(world): placed_items[location] = item if world.bombchus_in_logic: placed_items['Kokiri Shop Item 8'] = 'Buy Bombchu (5)', - placed_items['Bazaar Item 4'] = 'Buy Bombchu (5)', + placed_items['Castle Town Bazaar Item 4'] = 'Buy Bombchu (5)', + placed_items['Kakariko Bazaar Item 4'] = 'Buy Bombchu (5)', pool.extend(normal_rupees) else: remain_shop_items = [item for _,item in vanilla_shop_items.items()] diff --git a/Regions.py b/Regions.py index 98f58cb72..41eacf5de 100644 --- a/Regions.py +++ b/Regions.py @@ -223,8 +223,9 @@ def create_regions(world): create_interior_region('Castle Town Rupee Room', ['10 Big Poes', 'GS Castle Market Guard House']), create_interior_region( 'Castle Town Bazaar', - ['Bazaar Item 1', 'Bazaar Item 2', 'Bazaar Item 3', 'Bazaar Item 4', - 'Bazaar Item 5', 'Bazaar Item 6', 'Bazaar Item 7', 'Bazaar Item 8']), + ['Castle Town Bazaar Item 1', 'Castle Town Bazaar Item 2', 'Castle Town Bazaar Item 3', + 'Castle Town Bazaar Item 4', 'Castle Town Bazaar Item 5', 'Castle Town Bazaar Item 6', + 'Castle Town Bazaar Item 7', 'Castle Town Bazaar Item 8']), create_interior_region('Castle Town Mask Shop'), create_interior_region('Castle Town Shooting Gallery', ['Child Shooting Gallery']), create_interior_region( @@ -260,7 +261,11 @@ def create_regions(world): create_interior_region('Impas House'), create_interior_region('Impas House Back', ['Impa House Freestanding PoH']), create_interior_region('Windmill', ['Windmill Freestanding PoH', 'Song at Windmill']), - create_interior_region('Kakariko Bazaar', None, ['Castle Town Bazaar']), + create_interior_region( + 'Kakariko Bazaar', + ['Kakariko Bazaar Item 1', 'Kakariko Bazaar Item 2', 'Kakariko Bazaar Item 3', + 'Kakariko Bazaar Item 4', 'Kakariko Bazaar Item 5', 'Kakariko Bazaar Item 6', + 'Kakariko Bazaar Item 7', 'Kakariko Bazaar Item 8']), create_interior_region('Kakariko Shooting Gallery', ['Adult Shooting Gallery']), create_interior_region( 'Kakariko Potion Shop Front', @@ -1044,14 +1049,22 @@ def _create_region(name, type, locations=None, exits=None): 'Castle Town Potion Shop Item 6': (shop_address(3, 5), None, 0x35, 'Shop', 0x31, 'the market'), 'Castle Town Potion Shop Item 7': (shop_address(3, 6), None, 0x36, 'Shop', 0x31, 'the market'), 'Castle Town Potion Shop Item 8': (shop_address(3, 7), None, 0x37, 'Shop', 0x31, 'the market'), - 'Bazaar Item 1': (shop_address(4, 0), None, 0x30, 'Shop', 0x2C, 'the market'), - 'Bazaar Item 2': (shop_address(4, 1), None, 0x31, 'Shop', 0x2C, 'the market'), - 'Bazaar Item 3': (shop_address(4, 2), None, 0x32, 'Shop', 0x2C, 'the market'), - 'Bazaar Item 4': (shop_address(4, 3), None, 0x33, 'Shop', 0x2C, 'the market'), - 'Bazaar Item 5': (shop_address(4, 4), None, 0x34, 'Shop', 0x2C, 'the market'), - 'Bazaar Item 6': (shop_address(4, 5), None, 0x35, 'Shop', 0x2C, 'the market'), - 'Bazaar Item 7': (shop_address(4, 6), None, 0x36, 'Shop', 0x2C, 'the market'), - 'Bazaar Item 8': (shop_address(4, 7), None, 0x37, 'Shop', 0x2C, 'the market'), + 'Castle Town Bazaar Item 1': (shop_address(4, 0), None, 0x30, 'Shop', 0x2C, 'the market'), + 'Castle Town Bazaar Item 2': (shop_address(4, 1), None, 0x31, 'Shop', 0x2C, 'the market'), + 'Castle Town Bazaar Item 3': (shop_address(4, 2), None, 0x32, 'Shop', 0x2C, 'the market'), + 'Castle Town Bazaar Item 4': (shop_address(4, 3), None, 0x33, 'Shop', 0x2C, 'the market'), + 'Castle Town Bazaar Item 5': (shop_address(4, 4), None, 0x34, 'Shop', 0x2C, 'the market'), + 'Castle Town Bazaar Item 6': (shop_address(4, 5), None, 0x35, 'Shop', 0x2C, 'the market'), + 'Castle Town Bazaar Item 7': (shop_address(4, 6), None, 0x36, 'Shop', 0x2C, 'the market'), + 'Castle Town Bazaar Item 8': (shop_address(4, 7), None, 0x37, 'Shop', 0x2C, 'the market'), + 'Kakariko Bazaar Item 1': (shop_address(5, 0), None, 0x38, 'Shop', 0x2C, 'Kakariko Village'), + 'Kakariko Bazaar Item 2': (shop_address(5, 1), None, 0x39, 'Shop', 0x2C, 'Kakariko Village'), + 'Kakariko Bazaar Item 3': (shop_address(5, 2), None, 0x3A, 'Shop', 0x2C, 'Kakariko Village'), + 'Kakariko Bazaar Item 4': (shop_address(5, 3), None, 0x3B, 'Shop', 0x2C, 'Kakariko Village'), + 'Kakariko Bazaar Item 5': (shop_address(5, 4), None, 0x3D, 'Shop', 0x2C, 'Kakariko Village'), + 'Kakariko Bazaar Item 6': (shop_address(5, 5), None, 0x3E, 'Shop', 0x2C, 'Kakariko Village'), + 'Kakariko Bazaar Item 7': (shop_address(5, 6), None, 0x3F, 'Shop', 0x2C, 'Kakariko Village'), + 'Kakariko Bazaar Item 8': (shop_address(5, 7), None, 0x40, 'Shop', 0x2C, 'Kakariko Village'), 'Zora Shop Item 1': (shop_address(7, 0), None, 0x30, 'Shop', 0x2F, 'Zora\'s Domain'), 'Zora Shop Item 2': (shop_address(7, 1), None, 0x31, 'Shop', 0x2F, 'Zora\'s Domain'), 'Zora Shop Item 3': (shop_address(7, 2), None, 0x32, 'Shop', 0x2F, 'Zora\'s Domain'), diff --git a/Rom.py b/Rom.py index 71454b90a..130947027 100644 --- a/Rom.py +++ b/Rom.py @@ -1194,6 +1194,29 @@ def write_save_table(rom): # Update DMA Table update_dmadata(rom, shop_item_file) + # Create 2nd Bazaar Room + bazaar_room_file = File({ + 'Name':'shop1_room_1', + 'Start':'028E4000', + 'End':'0290D7B0', + 'RemapStart':'03489000', + }) + bazaar_room_file.dma_key = 0x03472000 + bazaar_room_file.relocate(rom) + # Update DMA Table + update_dmadata(rom, bazaar_room_file) + + # Add new Bazaar Room to Bazaar Scene + rom.write_int32s(0x28E3030, [0x00010000, 0x02000058]) #reduce position list size + rom.write_int32s(0x28E3008, [0x04020000, 0x02000070]) #expand room list size + + rom.write_int32s(0x28E3070, [0x028E4000, 0x0290D7B0, + bazaar_room_file.start, bazaar_room_file.end]) #room list + rom.write_int16s(0x28E3080, [0x0000, 0x0001]) # entrance list + rom.write_int16(0x28E4076, 0x0005) # Change shop to Kakariko Bazaar + #rom.write_int16(0x3489076, 0x0005) # Change shop to Kakariko Bazaar + + # Load Message and Shop Data messages = read_messages(rom) shop_items = read_shop_items(rom, shop_item_file.start + 0x1DEC) remove_unused_messages(messages) @@ -1374,14 +1397,22 @@ def write_save_table(rom): rom.write_int32(0x258702C, 0x0300F600) rom.write_int16s(0x2596600, list(shop_objs)) - # bazaar + # kakariko bazaar shop_objs = place_shop_items(rom, shop_items, messages, - world.get_region('Castle Town Bazaar').locations) + world.get_region('Kakariko Bazaar').locations) shop_objs |= {0x005B, 0x00B2, 0x00C5, 0x0107, 0x00C9, 0x016B} # Shop objects rom.write_byte(0x28E4029, len(shop_objs)) rom.write_int32(0x28E402C, 0x03007A40) rom.write_int16s(0x28EBA40, list(shop_objs)) + # castle town bazaar + shop_objs = place_shop_items(rom, shop_items, messages, + world.get_region('Castle Town Bazaar').locations) + shop_objs |= {0x005B, 0x00B2, 0x00C5, 0x0107, 0x00C9, 0x016B} # Shop objects + rom.write_byte(0x3489029, len(shop_objs)) + rom.write_int32(0x348902C, 0x03007A40) + rom.write_int16s(0x3490A40, list(shop_objs)) + # goron shop shop_objs = place_shop_items(rom, shop_items, messages, world.get_region('Goron Shop').locations) diff --git a/version.py b/version.py index ed913d6fe..180f38b16 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.43 f.LUM' +__version__ = '2.15.44 f.LUM' From 49deb249d8dc9faec047b5002dcfb2675b1dee65 Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 30 Aug 2018 03:12:12 -0400 Subject: [PATCH 360/755] Fix setting scarecrow song via CLI --- Settings.py | 6 ++++-- version.py | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Settings.py b/Settings.py index de9e3ee93..a03cab948 100644 --- a/Settings.py +++ b/Settings.py @@ -539,10 +539,12 @@ def __init__(self, settings_dict): }), Setting_Info('scarecrow_song', str, 0, False, { + 'default': 'DAAAAAAA', + 'const': 'DAAAAAAA', + 'nargs': '?', 'help': '''\ The song started with if 'free_scarecrow' is True ''', - 'action': 'store_true' }, { 'group': 'convenience', @@ -821,7 +823,7 @@ def __init__(self, settings_dict): Skulltula Tokens that can only be obtained during the night expect you to have Sun's Song to collect them. This prevents needing - to wait until night for some locations.s + to wait until night for some locations. ''' }), Setting_Info('logic_no_big_poes', bool, 1, True, diff --git a/version.py b/version.py index 06e0c9828..b3dd3f1ae 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.41 f.LUM' +__version__ = '2.15.42 f.LUM' From ce562d3d50e4511f47322cd1b1eb242299ca2da4 Mon Sep 17 00:00:00 2001 From: pksage Date: Thu, 30 Aug 2018 13:01:17 -0700 Subject: [PATCH 361/755] Fix some typos/grammar in hint text --- HintList.py | 52 ++++++++++++++++++++++++++-------------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/HintList.py b/HintList.py index 258fed219..f75aa23c8 100644 --- a/HintList.py +++ b/HintList.py @@ -36,7 +36,7 @@ def getHintGroup(string, world): hintTable = {'Hammer': ("the dragon smasher", 'item'), 'Magic Meter': ("pixie dust", 'item'), 'Double Defense': ("a white outline", 'item'), - 'Progressive Hookshot': ("Dampe's Keepsake", 'item'), + 'Progressive Hookshot': ("Dampe's keepsake", 'item'), 'Progressive Strength Upgrade': ("power gloves", 'item'), 'Hover Boots': ("butter boots", 'item'), 'Master Sword': ("evil's bane", 'item'), @@ -44,7 +44,7 @@ def getHintGroup(string, world): 'Farores Wind': ("teleportation", 'item'), 'Nayrus Love': ("a safe space", 'item'), 'Ice Arrows': ("the refrigerator rocket", 'item'), - 'Lens of Truth': ("the perjurless porthole", 'item'), + 'Lens of Truth': ("the perjureless porthole", 'item'), 'Dins Fire': ("an inferno", 'item'), 'Ocarina': ("a flute", 'item'), 'Fairy Ocarina': ("a brown flute", 'item'), @@ -56,7 +56,7 @@ def getHintGroup(string, world): 'Nocturne of Shadow': ("a song of spooky spirits", 'item'), 'Bow': ("an archery enabler", 'item'), 'Bomb Bag': ("an explosive container", 'item'), - 'Sarias Song': ("a song of dancing gorons", 'item'), + 'Sarias Song': ("a song of dancing Gorons", 'item'), 'Song of Time': ("a song 7 years long", 'item'), 'Song of Storms': ("Rain Dance", 'item'), 'Minuet of Forest': ("the song of tall trees", 'item'), @@ -64,19 +64,19 @@ def getHintGroup(string, world): 'Slingshot': ("a seed shooter", 'item'), 'Boomerang': ("a banana", 'item'), 'Fire Arrows': ("the furnace firearm", 'item'), - 'Ocarina of Time': ("blue flute", 'item'), + 'Ocarina of Time': ("a blue flute", 'item'), 'Bottle': ("a fairy prison", 'item'), 'Bottle with Letter': ("a call for help", 'item'), 'Bottle with Milk': ("cow juice", 'item'), 'Bottle with Red Potion': ("a vitality vial", 'item'), 'Bottle with Green Potion': ("a magic mixture", 'item'), - 'Bottle with Blue Potion': ("an all-cure antidote", 'item'), + 'Bottle with Blue Potion': ("a cure-all antidote", 'item'), 'Bottle with Fairy': ("an imprisoned fairy", 'item'), 'Bottle with Fish': ("an aquarium", 'item'), 'Bottle with Blue Fire': ("a conflagration canteen", 'item'), 'Bottle with Bugs': ("a terrarium", 'item'), 'Bottle with Poe': ("a spooky ghost", 'item'), - 'Progressive Scale': ("Zora Flippers", 'item'), + 'Progressive Scale': ("Zora's Flippers", 'item'), 'Stone of Agony': ("an empty chest", 'item'), 'Eponas Song': ("an equestrian etude", 'item'), 'Epona': ("a horse", 'item'), @@ -102,12 +102,12 @@ def getHintGroup(string, world): 'Light Arrows': ("the shining shot", 'item'), 'Kokiri Sword': ("a butter knife", 'item'), 'Biggoron Sword': ("a shield disabler", 'item'), - 'Pocket Egg': ("a cucco container", 'item'), + 'Pocket Egg': ("a Cucco container", 'item'), 'Weird Egg': ("a chicken dilemma", 'item'), 'Pocket Cucco': ("a little clucker", 'item'), 'Cojiro': ("a cerulean capon", 'item'), 'Odd Mushroom': ("a powder ingredient", 'item'), - 'Odd Potion': ("granny's goodies", 'item'), + 'Odd Potion': ("Granny's goodies", 'item'), 'Poachers Saw': ("a tree killer", 'item'), 'Broken Sword': ("a shattered slicer", 'item'), 'Prescription': ("a pill pamphlet", 'item'), @@ -138,14 +138,14 @@ def getHintGroup(string, world): #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box '10 Big Poes': ("They say that Big Poes leads&to", 'alwaysLocation'), 'Deku Theater Mask of Truth': ("They say that the Mask of Truth&yields", 'alwaysLocation'), - '30 Gold Skulltulla Reward': ("They say that slaying&30 Gold Skulltullas&reveals", 'alwaysLocation'), - '40 Gold Skulltulla Reward': ("They say that slaying&40 Gold Skulltullas&reveals", 'alwaysLocation'), - '50 Gold Skulltulla Reward': ("They say that slaying&50 Gold Skulltullas&reveals", 'alwaysLocation'), + '30 Gold Skulltulla Reward': ("They say that slaying&30 Gold Skulltulas&reveals", 'alwaysLocation'), + '40 Gold Skulltulla Reward': ("They say that slaying&40 Gold Skulltulas&reveals", 'alwaysLocation'), + '50 Gold Skulltulla Reward': ("They say that slaying&50 Gold Skulltulas&reveals", 'alwaysLocation'), 'Song from Ocarina of Time': ("They say the Ocarina of Time&teaches", 'alwaysLocation'), 'Biggoron': ("They say that Biggoron&crafts", 'alwaysLocation'), 'Child Fishing': ("They say that fishing in youth&bestows", 'location'), 'Adult Fishing': ("They say that fishing in maturity&bestows", 'location'), - '20 Gold Skulltulla Reward': ("They say that slaying&20 Gold Skulltullas&reveals", 'location'), + '20 Gold Skulltulla Reward': ("They say that slaying&20 Gold Skulltulas&reveals", 'location'), 'Treasure Chest Game': ("They say that gambling&grants", 'location'), 'Darunias Joy': ("They say that Darunia's dance leads&to", 'location'), 'Frog Ocarina Game': ("They say The Frogs of Zora River&hold", 'location'), @@ -157,7 +157,7 @@ def getHintGroup(string, world): 'Forest Temple Floormaster Chest': ("Deep in the forest, shadows guard a&chest containing", 'location'), 'Fire Temple Scarecrow Chest': ("They say high in the Fire Temple,&Pierre hid", 'location'), 'Fire Temple Megaton Hammer Chest': ("They say that the highest&chest in the crater&holds", 'location'), - 'Water Temple River Chest': ("They say deep under the lake&beyond the currents&hides", 'location'), + 'Water Temple River Chest': ("They say deep under the lake,&beyond the currents,&hides", 'location'), 'Water Temple Boss Key Chest': ("Deep under the lake,&the gilded chest&contains", 'location'), 'Gerudo Training Grounds Underwater Silver Rupee Chest': ("They say those who seek&sunken silver rupees will&find", 'location'), 'Gerudo Training Grounds Maze Path Final Chest': ("They say that past all the locked&doors is", 'location'), @@ -171,11 +171,11 @@ def getHintGroup(string, world): 'Song at Windmill': ("They say that Guru-guru is driven&mad by", 'location'), 'Sheik Forest Song': ("They say that deep&in the forest Sheik&teaches", 'location'), 'Sheik at Temple': ("They say that Sheik&waits at a monument to time to&teach", 'location'), - 'Sheik in Crater': ("They say that the craters melody&is", 'location'), + 'Sheik in Crater': ("They say that the crater's melody&is", 'location'), 'Sheik in Ice Cavern': ("They say that the&frozen cavern echoes&with", 'location'), 'Sheik in Kakariko': ("They say that a&ravaged village mourns&with", 'location'), 'Sheik at Colossus': ("They say that a hero ventures&beyond the Wasteland to&learn", 'location'), - 'Zoras Fountain Bottom Freestanding PoH': ("They say under the icy waters&lies", 'location'), + 'Zoras Fountain Bottom Freestanding PoH': ("They say that under the icy waters&lies", 'location'), 'Colossus Freestanding PoH': ("They say that riding a&beanstalk in the desert&leads to", 'location'), 'DM Crater Volcano Freestanding PoH': ("They say that riding a&beanstalk in the crater&leads to", 'location'), 'Goron City Pot Freestanding PoH': ("They say that spinning&Goron pottery&contains", 'location'), @@ -188,7 +188,7 @@ def getHintGroup(string, world): '1007': ("They say that PJ64 is a terrible&emulator.", 'junkHint'), '1008': ("'Member when Ganon was a blue pig?^I 'member.", 'junkHint'), '1009': ("One who does not have Triforce&can't go in.", 'junkHint'), - '1010': ("Save your future,&end the Happy Mask Salesmen.", 'junkHint'), + '1010': ("Save your future,&end the Happy Mask Salesman.", 'junkHint'), '1012': ("I'm stoned. Get it?", 'junkHint'), '1013': ("Hoot! Hoot! Would you like me to&repeat that?", 'junkHint'), '1014': ("Gorons are stupid.&They eat rocks.", 'junkHint'), @@ -196,16 +196,16 @@ def getHintGroup(string, world): '1016': ("The single rupee is a&unique item.", 'junkHint'), '1017': ("Without the Lens of Truth, the&Treasure Chest Mini-Game&is a 1 out of 32 chance.^Good luck!", 'junkHint'), '1018': ("Use bombs wisely.", 'junkHint'), - '1021': ("I found you faker!", 'junkHint'), + '1021': ("I found you, faker!", 'junkHint'), '1022': ("You're comparing&yourself to me?^Ha! You're not even good&enough to be my fake.", 'junkHint'), '1023': ("I'll make you eat those words.", 'junkHint'), '1024': ("What happened to Sheik?", 'junkHint'), '1025': ("L2P @.", 'junkHint'), '1026': ("I heard @ isn't&very good at Zelda.", 'junkHint'), - '1027': ("I'm Lunk from Pennsylvania.", 'junkHint'), + '1027': ("I'm Lonk from Pennsylvania.", 'junkHint'), '1028': ("I bet you'd like to&have more bombs.", 'junkHint'), - '1029': ("When all else fails&use Fire.", 'junkHint'), - '1030': ("Here's a hint @.&Don't be bad.", 'junkHint'), + '1029': ("When all else fails,&use Fire.", 'junkHint'), + '1030': ("Here's a hint, @.&Don't be bad.", 'junkHint'), '1031': ("Game Over.&Return of Ganon.", 'junkHint'), '1032': ("May the way of the Hero&lead to the Triforce.", 'junkHint'), '1033': ("Can't find an item?&Scan an Amiibo.", 'junkHint'), @@ -217,7 +217,7 @@ def getHintGroup(string, world): '1039': ("Medigoron sells the earliest&Breath of the Wild demo.", 'junkHint'), '1040': ("There's a reason why I am special&inquisitor!", 'junkHint'), '1041': ("You were almost a @&sandwich.", 'junkHint'), - '1042': ("I'm a helpful hint Gossip Stone!^See I'm helping.", 'junkHint'), + '1042': ("I'm a helpful hint Gossip Stone!^See, I'm helping.", 'junkHint'), '1043': ("Dear @, please come to the&castle. I've baked a cake for you.&&Yours truly, princess Zelda.", 'junkHint'), '1044': ("I like shorts! They're comfy and&easy to wear!", 'junkHint'), '1044': ("They say all toasters toast toast.", 'junkHint'), @@ -233,7 +233,7 @@ def getHintGroup(string, world): 'Spirit Temple': ("the goddess of the sand", 'dungeon'), 'Ice Cavern': ("a frozen maze", 'dungeon'), 'Bottom of the Well': ("a shadow\'s prison", 'dungeon'), - 'Gerudo Training Grounds': ("the test of theives", 'dungeon'), + 'Gerudo Training Grounds': ("the test of thieves", 'dungeon'), 'Ganons Castle': ("a conquered citadel", 'dungeon'), #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box 'Spiritual Stone Text Start': ("Ye who owns 3 Spiritual Stones...^", 'boss'), @@ -251,19 +251,19 @@ def getHintGroup(string, world): 'Spiritual Stone Text End': ("Stand with the Ocarina of Time&and play the Song of Time.", 'boss'), 'Medallion Text End': ("Together with the Hero of Time,&the awakened ones will bind the&evil and return the light of peace&to the world.", 'boss'), #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box - 'Validation Line': ("Hmph... Since you made it this far&I'll let you know what glorious&prize of Ganon's you likely&missed out on in my tower.^Behold...^", 'validation line'), + 'Validation Line': ("Hmph... Since you made it this far,&I'll let you know what glorious&prize of Ganon's you likely&missed out on in my tower.^Behold...^", 'validation line'), 'Light Arrow Location': ("Ha ha ha... You'll never beat me by&reflecting my lightning bolts&and unleashing the arrows from&", 'Light Arrow Location'), '2001': ("Oh! It's @.&I was expecting someone called&Sheik. Do you know what&happened to them?", 'ganonLine'), '2002': ("I knew I shouldn't have put the key&on the other side of my door.", 'ganonLine'), '2003': ("Looks like it's time for a&round of tennis.", 'ganonLine'), - '2004': ("You'll never deflect my bolts of&energy with your sword,&then shot me with those Light&Arrows you happen to have.", 'ganonLine'), + '2004': ("You'll never deflect my bolts of&energy with your sword,&then shoot me with those Light&Arrows you happen to have.", 'ganonLine'), '2005': ("Why did I leave my trident&back in the desert?", 'ganonLine'), '2006': ("Zelda is probably going to do&something stupid, like send you&back to your own timeline.^So this is quite meaningless.&Do you really want&to save this moron?", 'ganonLine'), '2007': ("What about Zelda makes you think&she'd be a better ruler than I?^I saved Lon Lon Ranch,&fed the hungry,&and my castle floats.", 'ganonLine'), '2008': ("I've learned this spell,&it's really neat,&I'll keep it later&for your treat!", 'ganonLine'), '2009': ("Many tricks are up my sleeve,&to save yourself&you'd better leave!", 'ganonLine'), - '2010': ("After what you did to&Koholint Island how can&you call me the bad guy?", 'ganonLine'), - '2011': ("Today let's begin down&'The Hero is Defeated' timeline.", 'ganonLine'), + '2010': ("After what you did to&Koholint Island, how can&you call me the bad guy?", 'ganonLine'), + '2011': ("Today, let's begin down&'The Hero is Defeated' timeline.", 'ganonLine'), } # exclusions from the list for custom logic From e9c3fef38c9c8f7b0f84a3cc305df3341b628bd4 Mon Sep 17 00:00:00 2001 From: pksage Date: Thu, 30 Aug 2018 14:03:48 -0700 Subject: [PATCH 362/755] Revert change to a line that might have made it too long --- HintList.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HintList.py b/HintList.py index f75aa23c8..ed3edfc9b 100644 --- a/HintList.py +++ b/HintList.py @@ -175,7 +175,7 @@ def getHintGroup(string, world): 'Sheik in Ice Cavern': ("They say that the&frozen cavern echoes&with", 'location'), 'Sheik in Kakariko': ("They say that a&ravaged village mourns&with", 'location'), 'Sheik at Colossus': ("They say that a hero ventures&beyond the Wasteland to&learn", 'location'), - 'Zoras Fountain Bottom Freestanding PoH': ("They say that under the icy waters&lies", 'location'), + 'Zoras Fountain Bottom Freestanding PoH': ("They say under the icy waters&lies", 'location'), 'Colossus Freestanding PoH': ("They say that riding a&beanstalk in the desert&leads to", 'location'), 'DM Crater Volcano Freestanding PoH': ("They say that riding a&beanstalk in the crater&leads to", 'location'), 'Goron City Pot Freestanding PoH': ("They say that spinning&Goron pottery&contains", 'location'), From aa690a857ca0b055217ceb1746c2751c40b7c5bd Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 30 Aug 2018 19:42:41 -0400 Subject: [PATCH 363/755] Initial ASM changes for Deku Salescrub rando --- ASM/src/hacks.asm | 26 +++++++++++++++-- ASM/src/shop.asm | 64 ++++++++++++++++++++++++++++++++++++++++-- Rom.py | 19 +++++++++++-- data/base2current.json | 2 +- version.py | 2 +- 5 files changed, 104 insertions(+), 9 deletions(-) diff --git a/ASM/src/hacks.asm b/ASM/src/hacks.asm index 6fb800c77..66d07cb9a 100755 --- a/ASM/src/hacks.asm +++ b/ASM/src/hacks.asm @@ -426,7 +426,7 @@ ; Check sold out override .org 0xC004EC - j Check_Sold_Out + j Shop_Check_Sold_Out ; Allow Shop Item ID up to 100 instead of 50 ; slti at, v1, 0x32 @@ -436,7 +436,7 @@ ; Set sold out override ; lh t6, 0x1c(a1) .org 0xC018A0 - jal Set_Sold_Out + jal Shop_Set_Sold_Out ; Only run init function if ID is in normal range ; jr t9 @@ -444,3 +444,25 @@ jal Shop_Keeper_Init_ID .org 0xC6C920 jal Shop_Keeper_Init_ID + +; Override Deku Salescrub sold out check +; addiu at, zero, 2 +; lui v1, 0x8012 +; bne v0, at, 0xd8 +; addiu v1, v1, -0x5a30 +; lhu t9, 0xef0(v1) +.org 0xEBB85C + jal Deku_Check_Sold_Out + .skip 4 + bnez v0, @Deku_Check_True + .skip 4 + b @Deku_Check_False +.org 0xEBB8B0 +@Deku_Check_True: +.org 0xEBB8C0 +@Deku_Check_False: + +; Ovveride Deku Scrub set sold out +; sh t7, 0xef0(v0) +.org 0xDF7CB0 + jal Deku_Set_Sold_Out diff --git a/ASM/src/shop.asm b/ASM/src/shop.asm index fa33b812f..03aec3b2c 100644 --- a/ASM/src/shop.asm +++ b/ASM/src/shop.asm @@ -1,6 +1,6 @@ .definelabel Shop_Item_Save_Offset, 0xD4 + (0x2C * 0x1C) + 0x10 -Check_Sold_Out: +Shop_Check_Sold_Out: lh t6, 0x1c(a0) ; if var is under 0x32, never sell out @@ -39,7 +39,7 @@ Check_Sold_Out: nop -Set_Sold_Out: +Shop_Set_Sold_Out: lh t6, 0x1c(a1) ; if var is under 0x32, never sell out @@ -84,3 +84,63 @@ Shop_Keeper_Init_ID: addiu sp, sp, 0x10 jr ra nop + +Deku_Check_Sold_Out: + li t0, GLOBAL_CONTEXT + li t1, SAVE_CONTEXT + + lh t2, 0xA4(t0) ; current scene number + li at, 0x3E ; Grotto Scene + bne t2, at, @@continue ; If in grotto, use a free scene + + lb t3, 0x1397(t1) ; Grotto ID + addi t2, t3, 0x2D + +@@continue: + lh t3, 0x1C(s0) ; var + addi t3, t3, 1 + li t4, 1 + sllv t4, t4, t3 ; saleman item bitmask + + li at, 0x1C ; Permanant flag entry size + mult t2, at + mflo t5 ; Permanant flag entry offset + + add t6, t1, t5 + lw t7, 0x10(t6) ; Saleman bitflag (originally unused) + + and v0, t4, t7 ; return if flag is set + + jr ra + nop + + +Deku_Set_Sold_Out: + li t0, GLOBAL_CONTEXT + li t1, SAVE_CONTEXT + + lh t2, 0xA4(t0) ; current scene number + li at, 0x3E ; Grotto Scene + bne t2, at, @@continue ; If in grotto, use a free scene + + lb t3, 0x1397(t1) ; Grotto ID + addi t2, t3, 0x2D + +@@continue: + lh t3, 0x1C(a0) ; var + addi t3, t3, 1 + li t4, 1 + sllv t4, t4, t3 ; saleman item bitmask + + li at, 0x1C ; Permanant flag entry size + mult t2, at + mflo t5 ; Permanant flag entry offset + + add t6, t1, t5 + lw t7, 0x10(t6) ; Saleman bitflag (originally unused) + + or t7, t4, t7 ; return if flag is set + sw t7, 0x10(t6) + + jr ra + nop diff --git a/Rom.py b/Rom.py index 130947027..fb9888ed2 100644 --- a/Rom.py +++ b/Rom.py @@ -1388,6 +1388,16 @@ def write_save_table(rom): ItemFactory('Buy Bombchu (5)').index) rom.write_int16(world.get_location('Bazaar Item 8').address, ItemFactory('Buy Bombchu (5)').index) + + # Revert Deku Scrubs changes + rom.write_int32s(0xEBB85C, [ + 0x24010002, # addiu at, zero, 2 + 0x3C038012, # lui v1, 0x8012 + 0x14410004, # bne v0, at, 0xd8 + 0x2463A5D0, # addiu v1, v1, -0x5a30 + 0x94790EF0])# lhu t9, 0xef0(v1) + rom.write_int32(0xDF7CB0, + 0xA44F0EF0) # sh t7, 0xef0(v0) else: # kokiri shop shop_objs = place_shop_items(rom, shop_items, messages, @@ -1795,7 +1805,7 @@ def room_get_chests(rom, room_data, scene, chests, alternate=None): room_data = room_data + 8 -def scene_get_chests(rom, scene_data, scene, chests, alternate=None): +def scene_get_chests(rom, scene_data, scene, chests, alternate=None, processed_rooms=[]): scene_start = alternate or scene_data command = 0 while command != 0x14: # 0x14 = end header @@ -1805,14 +1815,17 @@ def scene_get_chests(rom, scene_data, scene, chests, alternate=None): room_list = scene_start + (rom.read_int32(scene_data + 4) & 0x00FFFFFF) for _ in range(0, room_count): room_data = rom.read_int32(room_list); - room_get_chests(rom, room_data, scene, chests) + + if not room_data in processed_rooms: + room_get_chests(rom, room_data, scene, chests) + processed_rooms.append(room_data) room_list = room_list + 8 if command == 0x18 and scene >= 81 and scene <= 99: # Alternate header list header_list = scene_start + (rom.read_int32(scene_data + 4) & 0x00FFFFFF) for alt_id in range(0,2): header_data = scene_start + (rom.read_int32(header_list + 4) & 0x00FFFFFF) if header_data != 0 and not alternate: - scene_get_chests(rom, header_data, scene, chests, scene_start) + scene_get_chests(rom, header_data, scene, chests, scene_start, processed_rooms) header_list = header_list + 4 scene_data = scene_data + 8 diff --git a/data/base2current.json b/data/base2current.json index cf39a5126..23e3ccea9 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -1 +1 @@ -[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 204]}, {"11135032": [8, 16, 13, 103]}, {"11311804": [12, 16, 11, 213]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 198, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 157]}, {"11427312": [12, 16, 13, 70]}, {"11427320": [12, 16, 11, 208]}, {"11427332": [0, 0]}, {"11427335": [0]}, {"11431496": [12, 16, 11, 203, 1, 15, 192, 33]}, {"11559936": [130]}, {"11559938": [14, 222]}, {"11559948": [49, 248, 0, 2]}, {"11562028": [12, 16, 13, 120]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 86]}, {"11882076": [12, 16, 13, 51]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 124, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 131, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 138, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 117, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 148]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 26]}, {"12427480": [12, 16, 10, 114]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 118]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 12, 64, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 160]}, {"12491480": [12, 16, 10, 169]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"12584172": [8, 16, 12, 16]}, {"12584575": [100]}, {"12589216": [12, 16, 12, 37]}, {"13027240": [12, 16, 12, 53]}, {"13027616": [12, 16, 12, 53]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 155]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 145]}, {"13709176": [52, 15]}, {"13709179": [0]}, {"14109028": [16, 0]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 128, 73, 14, 222]}, {"14149508": [52]}, {"14149510": [0, 1, 2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 216]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 232]}, {"14624335": [118]}, {"14720872": [128]}, {"14720874": [14, 222]}, {"14720884": [49, 248, 0, 4]}, {"14720944": [12, 16, 11, 224]}, {"14848904": [8, 16, 11, 255]}, {"14852164": [12, 16, 12, 8]}, {"14872723": [52]}, {"15327704": [52, 9, 64, 0]}, {"15327728": [52]}, {"15327730": [91, 8]}, {"15327744": [52]}, {"15327746": [0, 10]}, {"15327757": [169]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 55, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 55, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 236, 83, 65, 35, 248]}, {"55058597": [209, 255, 255, 128, 64, 38, 60, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 38, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 38, 108, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 38, 136, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 252, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 244, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 244, 128, 64, 38, 188, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 244, 128, 64, 38, 188, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 244, 128, 64, 38, 188, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 244, 128, 64, 38, 216, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 244, 128, 64, 38, 216, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 244, 128, 64, 38, 216, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 244, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 244, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 140, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 172, 128, 64, 38, 164, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 204, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 39, 244, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 60, 128, 64, 40, 32, 83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 4, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 6, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 3, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 8, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 5, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 7, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 76, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [5, 52, 2]}, {"55060003": [69, 52, 9]}, {"55060007": [16, 17, 9]}, {"55060011": [2, 52, 2]}, {"55060015": [70, 52, 162]}, {"55060020": [3, 224]}, {"55060023": [8]}, {"55060028": [144, 136]}, {"55060031": [162, 53, 8]}, {"55060035": [48, 160, 136]}, {"55060039": [162, 3, 224]}, {"55060043": [8]}, {"55060048": [144, 136]}, {"55060051": [162, 49, 8]}, {"55060055": [6, 17]}, {"55060059": [2, 52, 2]}, {"55060063": [55, 52, 2]}, {"55060067": [56, 3, 224]}, {"55060071": [8]}, {"55060076": [144, 136]}, {"55060079": [161, 49, 8]}, {"55060083": [32, 17]}, {"55060087": [2, 52, 2]}, {"55060091": [121, 52, 2]}, {"55060095": [122, 3, 224]}, {"55060099": [8]}, {"55060104": [144, 136]}, {"55060107": [161, 49, 8]}, {"55060111": [4, 17]}, {"55060115": [2, 52, 2]}, {"55060119": [119, 52, 2]}, {"55060123": [120, 3, 224]}, {"55060127": [8]}, {"55060132": [144, 136]}, {"55060135": [50, 17]}, {"55060139": [2, 52, 2]}, {"55060143": [192, 52, 2]}, {"55060147": [193, 3, 224]}, {"55060151": [8]}, {"55060156": [144, 136]}, {"55060159": [163, 49, 8]}, {"55060163": [3, 17]}, {"55060167": [2, 52, 2]}, {"55060171": [77, 52, 162]}, {"55060176": [3, 224]}, {"55060179": [8]}, {"55060184": [144, 136]}, {"55060187": [163, 49, 8]}, {"55060191": [24, 17]}, {"55060195": [2, 52, 2]}, {"55060199": [77, 52, 162]}, {"55060204": [3, 224]}, {"55060207": [8]}, {"55060212": [3, 224]}, {"55060215": [8]}, {"55060220": [52, 8]}, {"55060223": [1, 160, 136]}, {"55060227": [62, 3, 224]}, {"55060231": [8]}, {"55060236": [36, 136]}, {"55060239": [134, 36, 9, 255, 255, 37, 41]}, {"55060247": [1, 52, 1]}, {"55060251": [3]}, {"55060253": [41, 8, 42, 20, 32]}, {"55060259": [7]}, {"55060264": [1, 9, 80, 33, 145, 75]}, {"55060272": [52, 1]}, {"55060275": [255, 21, 97, 255, 247]}, {"55060284": [161, 69]}, {"55060288": [3, 224]}, {"55060291": [8]}, {"55060296": [36, 136]}, {"55060299": [168, 1, 6, 64, 33, 145, 9]}, {"55060308": [1, 37, 72, 37, 161, 9]}, {"55060316": [3, 224]}, {"55060319": [8]}, {"55060324": [36, 136]}, {"55060327": [188, 1, 5, 64, 33, 129, 9]}, {"55060336": [5, 33]}, {"55060339": [2]}, {"55060344": [52, 9]}, {"55060348": [37, 41]}, {"55060351": [1, 161, 9]}, {"55060356": [3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [61, 52, 8]}, {"55060375": [20, 160, 136]}, {"55060379": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [1, 160, 136]}, {"55060403": [50, 160, 136]}, {"55060407": [58, 52, 8]}, {"55060411": [48, 164, 136, 19, 244, 160, 136]}, {"55060419": [51, 3, 224]}, {"55060423": [8]}, {"55060428": [52, 8]}, {"55060431": [2, 160, 136]}, {"55060435": [50, 52, 8]}, {"55060439": [1, 160, 136]}, {"55060443": [58, 160, 136]}, {"55060447": [60, 52, 8]}, {"55060451": [96, 164, 136, 19, 244, 160, 136]}, {"55060459": [51, 3, 224]}, {"55060463": [8]}, {"55060468": [144, 136]}, {"55060471": [124, 52, 1]}, {"55060475": [255, 17, 1]}, {"55060479": [6, 52, 2]}, {"55060483": [107, 144, 136]}, {"55060487": [148, 45, 8]}, {"55060491": [6, 17]}, {"55060495": [2, 52, 2]}, {"55060499": [106, 52, 2]}, {"55060503": [3, 3, 224]}, {"55060507": [8]}, {"55060512": [144, 136]}, {"55060515": [123, 52, 1]}, {"55060519": [255, 17, 1]}, {"55060523": [2, 52, 162]}, {"55060528": [52, 2]}, {"55060531": [12, 3, 224]}, {"55060535": [8]}, {"55060540": [52, 8]}, {"55060543": [7, 160, 136]}, {"55060547": [123, 3, 224]}, {"55060551": [8]}, {"55060556": [52, 8]}, {"55060559": [1]}, {"55060561": [168, 64, 4, 140, 137]}, {"55060567": [164, 1, 40, 72, 37, 172, 137]}, {"55060575": [164, 3, 224]}, {"55060579": [8]}, {"55060584": [48, 132]}, {"55060587": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060599": [140, 16, 129]}, {"55060603": [22, 145, 2]}, {"55060607": [117, 52, 1]}, {"55060611": [141, 16, 129]}, {"55060615": [19, 145, 2]}, {"55060619": [117, 16, 128]}, {"55060623": [17, 145, 2]}, {"55060627": [116, 52, 1]}, {"55060631": [138, 16, 129]}, {"55060635": [14, 145, 2]}, {"55060639": [116, 52, 1]}, {"55060643": [139, 16, 129]}, {"55060647": [11, 145, 2]}, {"55060651": [116, 52, 1]}, {"55060655": [88, 16, 129]}, {"55060659": [8, 52, 2]}, {"55060664": [52, 1]}, {"55060667": [120, 16, 129]}, {"55060671": [5, 52, 2]}, {"55060676": [52, 1]}, {"55060679": [121, 16, 129]}, {"55060683": [2, 52, 2]}, {"55060688": [52, 2]}, {"55060691": [255, 3, 224]}, {"55060695": [8]}, {"55060700": [39, 189, 255, 224, 175, 191]}, {"55060707": [16, 175, 176]}, {"55060711": [20, 12, 16, 11, 19]}, {"55060720": [4, 65]}, {"55060723": [2]}, {"55060728": [52, 2]}, {"55060731": [91]}, {"55060733": [64, 32, 33, 12, 16, 11, 122]}, {"55060744": [16, 96]}, {"55060747": [22, 175, 163]}, {"55060751": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060760": [133, 9]}, {"55060763": [2, 17, 32]}, {"55060767": [3, 52, 10]}, {"55060771": [1, 16]}, {"55060775": [12, 165, 10]}, {"55060780": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060791": [6, 144, 102]}, {"55060795": [7, 140, 105]}, {"55060799": [8, 1, 32, 248, 9]}, {"55060808": [143, 163]}, {"55060811": [28, 144, 101]}, {"55060815": [1, 12, 1, 191, 115, 2, 32, 32, 33, 143, 163]}, {"55060827": [28, 144, 101]}, {"55060831": [3, 16]}, {"55060835": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060847": [6]}, {"55060849": [74]}, {"55060851": [24]}, {"55060854": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060864": [60, 8, 128, 64, 37, 8, 32]}, {"55060872": [133, 9]}, {"55060875": [2, 17, 32]}, {"55060879": [3, 52, 10]}, {"55060883": [1, 165, 10]}, {"55060888": [52, 5]}, {"55060891": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060903": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060914": [48, 33, 143, 191]}, {"55060919": [16, 143, 176]}, {"55060923": [20, 39, 189]}, {"55060927": [32, 3, 224]}, {"55060931": [8]}, {"55060936": [143, 166]}, {"55060939": [48, 132, 197]}, {"55060943": [4, 8, 16, 10, 122]}, {"55060952": [143, 185]}, {"55060955": [44, 135, 37]}, {"55060959": [4, 8, 16, 10, 122]}, {"55060968": [60, 10, 128, 64, 37, 74, 32, 8, 141, 75]}, {"55060979": [12, 17, 96]}, {"55060983": [2]}, {"55060988": [149, 69]}, {"55060991": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55061004": [60, 9, 128, 64, 37, 41, 32, 24, 129, 42]}, {"55061015": [3, 5, 64]}, {"55061019": [11, 1, 42, 72, 32, 129, 40]}, {"55061028": [52, 10]}, {"55061031": [127, 21, 10]}, {"55061035": [6]}, {"55061040": [60, 10, 128, 18, 37, 74, 165, 208, 133, 72]}, {"55061051": [144, 33, 8]}, {"55061055": [1, 165, 72]}, {"55061059": [144, 161, 32]}, {"55061064": [3, 224]}, {"55061067": [8]}, {"55061072": [60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061083": [12, 17, 32]}, {"55061087": [2]}, {"55061092": [129, 3]}, {"55061095": [2]}, {"55061097": [3, 15, 195]}, {"55061101": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061115": [8]}, {"55061120": [144, 69]}, {"55061123": [3, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061135": [12, 17, 32]}, {"55061139": [2]}, {"55061144": [145, 5]}, {"55061147": [3, 3, 224]}, {"55061151": [8]}, {"55061156": [143, 162]}, {"55061159": [36, 144, 69]}, {"55061164": [60, 8, 128, 64, 37, 8, 32]}, {"55061172": [133, 9]}, {"55061175": [2, 17, 32]}, {"55061179": [4, 52, 10]}, {"55061183": [1, 165, 10]}, {"55061188": [16]}, {"55061191": [24, 52, 5]}, {"55061195": [65, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061207": [12, 17, 32]}, {"55061211": [19]}, {"55061216": [145, 5]}, {"55061219": [1, 175, 164]}, {"55061224": [175, 165]}, {"55061227": [4, 175, 166]}, {"55061231": [8, 39, 189, 255, 232, 175, 191]}, {"55061239": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061251": [6, 145, 6]}, {"55061255": [7, 141, 9]}, {"55061259": [8, 1, 32, 248, 9]}, {"55061268": [143, 191]}, {"55061271": [16, 39, 189]}, {"55061275": [24, 143, 164]}, {"55061280": [143, 165]}, {"55061283": [4, 143, 166]}, {"55061287": [8, 3, 224]}, {"55061291": [8]}, {"55061296": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061307": [16, 175, 163]}, {"55061311": [20, 175, 191]}, {"55061315": [24, 12, 16, 10, 217]}, {"55061324": [143, 162]}, {"55061327": [16, 143, 163]}, {"55061331": [20, 143, 191]}, {"55061335": [24, 39, 189]}, {"55061339": [32, 3, 224]}, {"55061343": [8]}, {"55061348": [39, 189, 255, 232, 175, 191]}, {"55061355": [16, 60, 8, 128, 64, 37, 8, 32, 8, 173]}, {"55061368": [173]}, {"55061371": [4, 173]}, {"55061375": [8, 173]}, {"55061379": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061395": [42]}, {"55061401": [9, 15, 195, 1, 33, 32, 38]}, {"55061409": [129, 32, 35, 141, 5, 4, 40, 12, 16, 11, 19]}, {"55061424": [4, 64]}, {"55061427": [34]}, {"55061432": [52, 68]}, {"55061436": [12, 16, 11, 122]}, {"55061444": [16, 96]}, {"55061447": [12]}, {"55061452": [60, 8, 128, 64, 37, 8, 32, 8, 140, 105]}, {"55061464": [173, 9]}, {"55061468": [140, 105]}, {"55061471": [4, 173, 9]}, {"55061475": [4, 140, 105]}, {"55061479": [8, 173, 9]}, {"55061483": [8, 52, 9]}, {"55061487": [1, 173, 9]}, {"55061491": [12, 144, 98]}, {"55061496": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061512": [52, 1]}, {"55061515": [10, 21, 65]}, {"55061519": [6]}, {"55061524": [149, 42]}, {"55061527": [28, 49, 74, 240, 31]}, {"55061533": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061543": [28, 129, 9, 4, 36, 5, 33]}, {"55061551": [2]}, {"55061557": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061567": [16, 39, 189]}, {"55061571": [24, 3, 224]}, {"55061575": [8]}, {"55061580": [39, 189, 255, 232, 175, 191]}, {"55061587": [16, 12, 16, 11, 33]}, {"55061596": [36, 1, 255, 255, 16, 65]}, {"55061603": [4]}, {"55061608": [52, 68]}, {"55061612": [12, 16, 11, 85]}, {"55061620": [143, 191]}, {"55061623": [16, 39, 189]}, {"55061627": [24, 3, 224]}, {"55061631": [8]}, {"55061636": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061647": [164, 52, 8]}, {"55061652": [52, 137]}, {"55061656": [148, 170]}, {"55061660": [52, 1, 1, 156, 21, 65]}, {"55061667": [8]}, {"55061672": [52, 8]}, {"55061675": [3, 148, 171]}, {"55061679": [28, 49, 105]}, {"55061683": [255, 49, 98, 31]}, {"55061689": [2, 18, 2, 16]}, {"55061695": [31]}, {"55061700": [52, 1]}, {"55061703": [10, 21, 65]}, {"55061707": [14]}, {"55061712": [148, 171]}, {"55061715": [28, 52, 1]}, {"55061719": [16, 20, 65]}, {"55061723": [8]}, {"55061728": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061739": [4]}, {"55061744": [36, 2, 255, 255, 16]}, {"55061751": [21]}, {"55061756": [52, 8]}, {"55061759": [1, 49, 105]}, {"55061763": [31, 52, 1]}, {"55061767": [21, 21, 65]}, {"55061771": [12]}, {"55061776": [52, 1]}, {"55061779": [62, 16, 129]}, {"55061783": [7]}, {"55061788": [52, 1]}, {"55061791": [66, 16, 129]}, {"55061795": [4]}, {"55061800": [36, 2, 255, 255, 16]}, {"55061807": [7]}, {"55061812": [52, 8]}, {"55061815": [2, 144, 169, 1, 65]}, {"55061821": [2, 18]}, {"55061825": [72, 16, 37]}, {"55061829": [2, 18]}, {"55061833": [73, 16, 37, 3, 224]}, {"55061839": [8]}, {"55061844": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061856": [129, 9]}, {"55061860": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061883": [4, 141, 9]}, {"55061888": [17, 32]}, {"55061891": [23]}, {"55061897": [9, 82, 2, 49, 75, 248]}, {"55061905": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061928": [49, 34]}, {"55061931": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061952": [60, 12, 128, 64, 37, 140, 28]}, {"55061960": [129, 140]}, {"55061964": [17, 108]}, {"55061967": [4, 165, 32]}, {"55061971": [2, 161, 43]}, {"55061975": [2, 161, 34]}, {"55061979": [3, 173, 36]}, {"55061983": [4, 3, 224]}, {"55061987": [8]}, {"55061992": [39, 189, 255, 224, 175, 176]}, {"55061999": [16, 175, 177]}, {"55062003": [20, 175, 191]}, {"55062007": [24, 52, 130]}, {"55062012": [52, 80]}, {"55062016": [38, 8, 255, 128, 5]}, {"55062023": [18]}, {"55062028": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55062039": [16, 1, 9]}, {"55062043": [24]}, {"55062046": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55062064": [142, 40]}, {"55062067": [12, 1]}, {"55062070": [248, 9]}, {"55062076": [20, 80, 255, 239]}, {"55062084": [54, 35]}, {"55062088": [16]}, {"55062091": [2]}, {"55062096": [52, 3]}, {"55062100": [143, 176]}, {"55062103": [16, 143, 177]}, {"55062107": [20, 143, 191]}, {"55062111": [24, 39, 189]}, {"55062115": [32, 3, 224]}, {"55062119": [8]}, {"55062124": [140, 136, 29, 44, 52, 9]}, {"55062131": [1]}, {"55062133": [9, 78]}, {"55062136": [1, 9, 16, 36, 16, 64]}, {"55062143": [36]}, {"55062148": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062163": [164, 52, 1]}, {"55062167": [61, 17, 129]}, {"55062171": [10]}, {"55062177": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062187": [25]}, {"55062192": [52, 13]}, {"55062195": [1, 161, 141, 29, 40, 37, 74]}, {"55062203": [3, 16]}, {"55062207": [9]}, {"55062212": [52, 12]}, {"55062215": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062231": [14]}, {"55062236": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062272": [60, 9, 128, 64, 37, 41, 32, 24, 161, 40]}, {"55062284": [52, 2]}, {"55062288": [3, 224]}, {"55062291": [8]}, {"55062296": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062308": [16]}, {"55062311": [34]}, {"55062316": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062328": [16]}, {"55062331": [29]}, {"55062336": [52, 2]}, {"55062339": [255, 32, 232, 255, 166, 33, 8]}, {"55062347": [97, 16]}, {"55062351": [24]}, {"55062356": [52, 8]}, {"55062359": [100, 16]}, {"55062363": [21]}, {"55062368": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062383": [1, 160, 40, 14, 222, 52, 8]}, {"55062391": [104, 16]}, {"55062395": [13]}, {"55062400": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062415": [4, 160, 40, 14, 222, 52, 8]}, {"55062423": [106, 16]}, {"55062427": [5]}, {"55062432": [52, 5]}, {"55062435": [3, 52, 8]}, {"55062439": [107, 16]}, {"55062443": [1]}, {"55062448": [60, 9, 128, 64, 37, 41, 32, 24, 60, 10, 128, 64, 37, 74, 32, 27, 129, 44]}, {"55062468": [17, 136]}, {"55062471": [11, 33, 41]}, {"55062475": [1, 21, 42, 255, 252]}, {"55062484": [60, 9, 128, 64, 37, 41, 32, 23, 33, 41]}, {"55062495": [1, 17, 42]}, {"55062499": [4, 129, 44]}, {"55062504": [21, 128, 255, 252]}, {"55062512": [161, 40]}, {"55062516": [3, 224]}, {"55062519": [8]}, {"55062525": [96, 120, 33, 129, 236, 14, 223, 49, 142]}, {"55062535": [128, 17, 192]}, {"55062539": [3, 52, 3]}, {"55062543": [5, 3, 224]}, {"55062547": [8, 52, 2]}, {"55062551": [2, 3, 224]}, {"55062555": [8]}, {"55062557": [96, 16, 33, 133, 194]}, {"55062563": [164, 60, 8, 128, 18, 37, 8, 165, 208, 129, 9, 14, 223, 53, 41]}, {"55062579": [128, 161, 9, 14, 223, 3, 224]}, {"55062587": [8]}, {"55062592": [132, 142]}, {"55062595": [28, 33, 205, 255, 206, 5, 160]}, {"55062603": [16, 52, 2]}, {"55062608": [49, 169]}, {"55062611": [7, 52, 10]}, {"55062615": [1, 1, 42, 80, 4]}, {"55062621": [13, 72, 194, 60, 12, 128, 18, 37, 140, 165, 208, 1, 137, 96, 32, 129, 139, 5, 180, 1, 106, 88, 36, 52, 2]}, {"55062648": [17, 96]}, {"55062651": [4]}, {"55062656": [52, 13]}, {"55062659": [38, 164, 141]}, {"55062663": [28, 52, 2]}, {"55062667": [1, 3, 224]}, {"55062671": [8]}, {"55062676": [132, 174]}, {"55062679": [28, 33, 205, 255, 206, 5, 160]}, {"55062687": [11, 52, 2]}, {"55062692": [49, 169]}, {"55062695": [7, 52, 10]}, {"55062699": [1, 1, 42, 80, 4]}, {"55062705": [13, 72, 194, 60, 12, 128, 18, 37, 140, 165, 208, 1, 137, 96, 32, 129, 139, 5, 180, 1, 106, 88, 37, 161, 139, 5, 180, 3, 224]}, {"55062735": [8]}, {"55062740": [39, 189, 255, 240, 175, 191]}, {"55062747": [8, 40, 129]}, {"55062751": [50, 16, 32]}, {"55062755": [3]}, {"55062757": [128, 16, 33, 3, 32, 248, 9]}, {"55062768": [143, 191]}, {"55062771": [8, 39, 189]}, {"55062775": [16, 3, 224]}, {"55062779": [8]}, {"55062784": [175, 164]}, {"55062787": [104, 175, 165]}, {"55062791": [108, 175, 166]}, {"55062795": [112, 175, 167]}, {"55062799": [116, 39, 189, 255, 232, 175, 163]}, {"55062807": [16, 175, 191]}, {"55062811": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062827": [32, 21]}, {"55062831": [31]}, {"55062836": [60, 9, 128, 64, 37, 41, 32, 27, 52, 10]}, {"55062847": [255, 161, 42]}, {"55062852": [60, 9, 128, 64, 37, 41, 32, 24, 36, 10, 255, 255, 52, 12]}, {"55062867": [3, 33, 74]}, {"55062871": [1, 17, 76]}, {"55062875": [20, 1, 42, 88, 32, 129, 104]}, {"55062884": [17]}, {"55062886": [255, 251]}, {"55062892": [60, 9, 128, 64, 37, 41, 32, 27, 161, 42]}, {"55062904": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062915": [1, 165, 42]}, {"55062920": [60, 9, 128, 65, 52, 10]}, {"55062927": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 217]}, {"55062956": [143, 163]}, {"55062959": [16, 143, 191]}, {"55062963": [20, 39, 189]}, {"55062967": [24, 143, 164]}, {"55062971": [104, 143, 165]}, {"55062975": [108, 143, 166]}, {"55062979": [112, 143, 167]}, {"55062983": [116, 132, 110, 19, 196, 3, 224]}, {"55062991": [8]}, {"55062996": [147, 25]}, {"55062999": [116, 52, 1]}, {"55063003": [255, 23, 33]}, {"55063007": [2]}, {"55063012": [52, 25]}, {"55063015": [44, 3, 224]}, {"55063019": [8, 167, 185]}, {"55063023": [154, 147, 44]}, {"55063027": [116, 52, 1]}, {"55063031": [255, 21, 129]}, {"55063035": [2]}, {"55063040": [52, 12]}, {"55063043": [44, 3, 224]}, {"55063047": [8]}, {"55063052": [145, 174]}, {"55063055": [116, 52, 1]}, {"55063059": [255, 21, 193]}, {"55063063": [2]}, {"55063068": [52, 14]}, {"55063071": [44, 3, 224]}, {"55063075": [8, 167, 174]}, {"55063079": [154, 145, 207]}, {"55063083": [116, 52, 1]}, {"55063087": [255, 21, 225]}, {"55063091": [2]}, {"55063096": [52, 15]}, {"55063099": [44, 3, 224]}, {"55063103": [8, 167, 175]}, {"55063107": [154, 60, 8, 128, 64, 37, 8, 32, 28, 142, 9]}, {"55063119": [104, 173, 9]}, {"55063124": [142, 9]}, {"55063127": [108, 173, 9]}, {"55063131": [4, 150, 9]}, {"55063135": [112, 165, 9]}, {"55063139": [8, 150, 9]}, {"55063143": [156, 165, 9]}, {"55063147": [10, 3, 224]}, {"55063151": [8, 142, 14]}, {"55063155": [4, 39, 189, 255, 224, 175, 176]}, {"55063163": [16, 175, 177]}, {"55063167": [20, 175, 191]}, {"55063171": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 28, 142, 8]}, {"55063191": [4, 17]}, {"55063195": [5]}, {"55063200": [12, 16, 12, 199]}, {"55063208": [16]}, {"55063211": [3]}, {"55063216": [12, 16, 12, 218]}, {"55063224": [12, 16, 12, 186, 52, 4]}, {"55063232": [12, 16, 12, 186, 52, 4]}, {"55063239": [1, 12, 16, 12, 186, 52, 4]}, {"55063247": [2, 143, 176]}, {"55063251": [16, 143, 177]}, {"55063255": [20, 143, 191]}, {"55063259": [24, 39, 189]}, {"55063263": [32, 3, 224]}, {"55063267": [8]}, {"55063272": [2, 4, 64, 33, 145, 9]}, {"55063279": [108, 52, 1]}, {"55063283": [255, 17, 33]}, {"55063287": [7]}, {"55063292": [2, 9, 72, 33, 145, 41]}, {"55063299": [116, 52, 1]}, {"55063303": [44, 17, 33]}, {"55063307": [2]}, {"55063312": [161, 9]}, {"55063315": [105, 3, 224]}, {"55063319": [8]}, {"55063324": [39, 189, 255, 232, 175, 191]}, {"55063331": [16, 142, 40]}, {"55063336": [174, 8]}, {"55063339": [64, 142, 40]}, {"55063343": [4, 174, 8]}, {"55063347": [68, 150, 40]}, {"55063351": [8, 166, 8]}, {"55063355": [72, 162]}, {"55063358": [15, 51, 146, 8]}, {"55063363": [74, 52, 1]}, {"55063367": [255, 21, 1]}, {"55063371": [3]}, {"55063376": [12, 16, 12, 232]}, {"55063384": [143, 191]}, {"55063387": [16, 39, 189]}, {"55063391": [24, 3, 224]}, {"55063395": [8]}, {"55063400": [142, 8]}, {"55063403": [64, 174, 8]}, {"55063407": [104, 142, 8]}, {"55063411": [68, 174, 8]}, {"55063415": [108, 150, 8]}, {"55063419": [72, 166, 8]}, {"55063423": [112, 146, 8]}, {"55063427": [104, 52, 1]}, {"55063431": [255, 21, 1]}, {"55063435": [3]}, {"55063440": [52, 8]}, {"55063443": [1, 162, 8, 15, 51, 3, 224]}, {"55063451": [8]}, {"55063456": [39, 189, 255, 232, 175, 191]}, {"55063463": [16, 150, 8]}, {"55063467": [156, 49, 8]}, {"55063471": [64, 17]}, {"55063475": [5]}, {"55063480": [150, 8]}, {"55063483": [112, 49, 8, 255, 15, 53, 8]}, {"55063491": [48, 166, 8]}, {"55063495": [112, 146, 40]}, {"55063499": [1, 162, 8]}, {"55063503": [105, 150, 40]}, {"55063507": [2, 166, 8]}, {"55063511": [106, 142, 40]}, {"55063515": [4, 174, 8]}, {"55063519": [108, 12, 16, 13, 2, 52, 4]}, {"55063528": [12, 16, 13, 2, 52, 4]}, {"55063535": [1, 12, 16, 13, 2, 52, 4]}, {"55063543": [2, 143, 191]}, {"55063547": [16, 39, 189]}, {"55063551": [24, 3, 224]}, {"55063555": [8]}, {"55063560": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 52, 180, 145, 10]}, {"55063575": [108, 52, 1]}, {"55063579": [255, 17, 65]}, {"55063583": [5]}, {"55063588": [1, 42, 72, 33, 145, 41]}, {"55063596": [21, 32]}, {"55063599": [28]}, {"55063604": [60, 9, 128, 64, 37, 41, 52, 167, 37, 41]}, {"55063615": [1, 145, 42]}, {"55063620": [17, 64]}, {"55063623": [19]}, {"55063628": [2, 10, 88, 33, 145, 107]}, {"55063635": [116, 52, 1]}, {"55063639": [255, 17, 97, 255, 248]}, {"55063648": [146, 12]}, {"55063651": [108, 17, 138, 255, 245]}, {"55063660": [146, 12]}, {"55063663": [109, 17, 138, 255, 242]}, {"55063672": [146, 12]}, {"55063675": [110, 17, 138, 255, 239]}, {"55063684": [161, 11]}, {"55063687": [105, 161, 10]}, {"55063691": [108, 16]}, {"55063695": [4]}, {"55063700": [52, 9]}, {"55063703": [255, 161, 9]}, {"55063707": [105, 161, 9]}, {"55063711": [108, 3, 224]}, {"55063715": [8]}, {"55063720": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063733": [1, 1, 1, 1, 1]}, {"55063739": [1, 1, 1, 1, 1]}, {"55063745": [1]}, {"55063747": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063757": [51, 8, 33, 32, 15]}, {"55063763": [71, 21, 234]}, {"55063767": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063779": [164]}, {"55063781": [15, 122, 3, 20, 64]}, {"55063787": [5, 52, 2, 72, 48, 21, 226]}, {"55063795": [7]}, {"55063800": [36, 25]}, {"55063803": [3, 16]}, {"55063807": [4, 52, 2, 99, 17, 21, 226]}, {"55063815": [2]}, {"55063820": [36, 25]}, {"55063823": [3, 3, 224]}, {"55063827": [8]}, {"55063832": [141, 173, 138, 160, 52, 2, 128]}, {"55063840": [16, 77]}, {"55063843": [2]}, {"55063848": [16]}, {"55063851": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063867": [1, 16, 64]}, {"55063871": [2]}, {"55063876": [16]}, {"55063879": [2, 52, 2]}, {"55063883": [1, 161, 226, 28, 191, 3, 224]}, {"55063891": [8]}, {"55063897": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063911": [164]}, {"55063913": [15, 122, 3, 20, 64]}, {"55063919": [5, 52, 2, 72, 48, 21, 226]}, {"55063927": [7]}, {"55063932": [36, 25]}, {"55063935": [3, 16]}, {"55063939": [4, 52, 2, 99, 17, 21, 226]}, {"55063947": [2]}, {"55063952": [36, 25]}, {"55063955": [3, 3, 224]}, {"55063959": [8]}, {"55063964": [20, 64]}, {"55063967": [14]}, {"55063972": [52, 1]}, {"55063975": [24, 20, 129]}, {"55063979": [11, 60, 10, 128, 18, 37, 74, 165, 208, 129, 72]}, {"55063991": [166, 49, 8]}, {"55063995": [32, 17]}, {"55063999": [6, 52, 2]}, {"55064004": [129, 72]}, {"55064007": [123, 52, 1]}, {"55064011": [7, 17, 1]}, {"55064015": [2, 52, 2]}, {"55064019": [1, 52, 2]}, {"55064024": [3, 224]}, {"55064027": [8]}, {"55064032": [162, 37]}, {"55064035": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55064047": [4, 142, 10]}, {"55064052": [17, 64]}, {"55064055": [11]}, {"55064061": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55064073": [24, 194, 2, 23]}, {"55064079": [3, 49, 89]}, {"55064083": [255, 129, 234]}, {"55064088": [3, 42, 200, 37, 8, 16, 13, 123, 161, 249]}, {"55064100": [3, 224]}, {"55064103": [8]}] \ No newline at end of file +[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 204]}, {"11135032": [8, 16, 13, 146]}, {"11311804": [12, 16, 11, 213]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 198, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 200]}, {"11427312": [12, 16, 13, 113]}, {"11427320": [12, 16, 11, 208]}, {"11427332": [0, 0]}, {"11427335": [0]}, {"11431496": [12, 16, 11, 203, 1, 15, 192, 33]}, {"11559936": [130]}, {"11559938": [14, 222]}, {"11559948": [49, 248, 0, 2]}, {"11562028": [12, 16, 13, 163]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 129]}, {"11882076": [12, 16, 13, 94]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 167, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 174, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 181, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 160, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 148]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 26]}, {"12427480": [12, 16, 10, 114]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 118]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 12, 107, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 160]}, {"12491480": [12, 16, 10, 169]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"12584172": [8, 16, 12, 16]}, {"12584575": [100]}, {"12589216": [12, 16, 12, 37]}, {"13027240": [12, 16, 12, 53]}, {"13027616": [12, 16, 12, 53]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 155]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 188]}, {"13709176": [52, 15]}, {"13709179": [0]}, {"14109028": [16, 0]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 128, 73, 14, 222]}, {"14149508": [52]}, {"14149510": [0, 1, 2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 216]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 232]}, {"14624335": [118]}, {"14646448": [12, 16, 12, 85]}, {"14720872": [128]}, {"14720874": [14, 222]}, {"14720884": [49, 248, 0, 4]}, {"14720944": [12, 16, 11, 224]}, {"14848904": [8, 16, 11, 255]}, {"14852164": [12, 16, 12, 8]}, {"14872723": [52]}, {"15327704": [52, 9, 64, 0]}, {"15327728": [52]}, {"15327730": [91, 8]}, {"15327744": [52]}, {"15327746": [0, 10]}, {"15327757": [169]}, {"15448156": [12, 16, 12, 64]}, {"15448165": [64]}, {"15448167": [18]}, {"15448172": [16, 0, 0, 20]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 55, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 55, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 236, 83, 65, 35, 248]}, {"55058597": [209, 255, 255, 128, 64, 38, 60, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 38, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 38, 108, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 38, 136, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 252, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 244, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 244, 128, 64, 38, 188, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 244, 128, 64, 38, 188, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 244, 128, 64, 38, 188, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 244, 128, 64, 38, 216, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 244, 128, 64, 38, 216, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 244, 128, 64, 38, 216, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 244, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 244, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 140, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 172, 128, 64, 38, 164, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 204, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 39, 244, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 60, 128, 64, 40, 32, 83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 4, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 6, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 3, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 8, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 5, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 7, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 76, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [5, 52, 2]}, {"55060003": [69, 52, 9]}, {"55060007": [16, 17, 9]}, {"55060011": [2, 52, 2]}, {"55060015": [70, 52, 162]}, {"55060020": [3, 224]}, {"55060023": [8]}, {"55060028": [144, 136]}, {"55060031": [162, 53, 8]}, {"55060035": [48, 160, 136]}, {"55060039": [162, 3, 224]}, {"55060043": [8]}, {"55060048": [144, 136]}, {"55060051": [162, 49, 8]}, {"55060055": [6, 17]}, {"55060059": [2, 52, 2]}, {"55060063": [55, 52, 2]}, {"55060067": [56, 3, 224]}, {"55060071": [8]}, {"55060076": [144, 136]}, {"55060079": [161, 49, 8]}, {"55060083": [32, 17]}, {"55060087": [2, 52, 2]}, {"55060091": [121, 52, 2]}, {"55060095": [122, 3, 224]}, {"55060099": [8]}, {"55060104": [144, 136]}, {"55060107": [161, 49, 8]}, {"55060111": [4, 17]}, {"55060115": [2, 52, 2]}, {"55060119": [119, 52, 2]}, {"55060123": [120, 3, 224]}, {"55060127": [8]}, {"55060132": [144, 136]}, {"55060135": [50, 17]}, {"55060139": [2, 52, 2]}, {"55060143": [192, 52, 2]}, {"55060147": [193, 3, 224]}, {"55060151": [8]}, {"55060156": [144, 136]}, {"55060159": [163, 49, 8]}, {"55060163": [3, 17]}, {"55060167": [2, 52, 2]}, {"55060171": [77, 52, 162]}, {"55060176": [3, 224]}, {"55060179": [8]}, {"55060184": [144, 136]}, {"55060187": [163, 49, 8]}, {"55060191": [24, 17]}, {"55060195": [2, 52, 2]}, {"55060199": [77, 52, 162]}, {"55060204": [3, 224]}, {"55060207": [8]}, {"55060212": [3, 224]}, {"55060215": [8]}, {"55060220": [52, 8]}, {"55060223": [1, 160, 136]}, {"55060227": [62, 3, 224]}, {"55060231": [8]}, {"55060236": [36, 136]}, {"55060239": [134, 36, 9, 255, 255, 37, 41]}, {"55060247": [1, 52, 1]}, {"55060251": [3]}, {"55060253": [41, 8, 42, 20, 32]}, {"55060259": [7]}, {"55060264": [1, 9, 80, 33, 145, 75]}, {"55060272": [52, 1]}, {"55060275": [255, 21, 97, 255, 247]}, {"55060284": [161, 69]}, {"55060288": [3, 224]}, {"55060291": [8]}, {"55060296": [36, 136]}, {"55060299": [168, 1, 6, 64, 33, 145, 9]}, {"55060308": [1, 37, 72, 37, 161, 9]}, {"55060316": [3, 224]}, {"55060319": [8]}, {"55060324": [36, 136]}, {"55060327": [188, 1, 5, 64, 33, 129, 9]}, {"55060336": [5, 33]}, {"55060339": [2]}, {"55060344": [52, 9]}, {"55060348": [37, 41]}, {"55060351": [1, 161, 9]}, {"55060356": [3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [61, 52, 8]}, {"55060375": [20, 160, 136]}, {"55060379": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [1, 160, 136]}, {"55060403": [50, 160, 136]}, {"55060407": [58, 52, 8]}, {"55060411": [48, 164, 136, 19, 244, 160, 136]}, {"55060419": [51, 3, 224]}, {"55060423": [8]}, {"55060428": [52, 8]}, {"55060431": [2, 160, 136]}, {"55060435": [50, 52, 8]}, {"55060439": [1, 160, 136]}, {"55060443": [58, 160, 136]}, {"55060447": [60, 52, 8]}, {"55060451": [96, 164, 136, 19, 244, 160, 136]}, {"55060459": [51, 3, 224]}, {"55060463": [8]}, {"55060468": [144, 136]}, {"55060471": [124, 52, 1]}, {"55060475": [255, 17, 1]}, {"55060479": [6, 52, 2]}, {"55060483": [107, 144, 136]}, {"55060487": [148, 45, 8]}, {"55060491": [6, 17]}, {"55060495": [2, 52, 2]}, {"55060499": [106, 52, 2]}, {"55060503": [3, 3, 224]}, {"55060507": [8]}, {"55060512": [144, 136]}, {"55060515": [123, 52, 1]}, {"55060519": [255, 17, 1]}, {"55060523": [2, 52, 162]}, {"55060528": [52, 2]}, {"55060531": [12, 3, 224]}, {"55060535": [8]}, {"55060540": [52, 8]}, {"55060543": [7, 160, 136]}, {"55060547": [123, 3, 224]}, {"55060551": [8]}, {"55060556": [52, 8]}, {"55060559": [1]}, {"55060561": [168, 64, 4, 140, 137]}, {"55060567": [164, 1, 40, 72, 37, 172, 137]}, {"55060575": [164, 3, 224]}, {"55060579": [8]}, {"55060584": [48, 132]}, {"55060587": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060599": [140, 16, 129]}, {"55060603": [22, 145, 2]}, {"55060607": [117, 52, 1]}, {"55060611": [141, 16, 129]}, {"55060615": [19, 145, 2]}, {"55060619": [117, 16, 128]}, {"55060623": [17, 145, 2]}, {"55060627": [116, 52, 1]}, {"55060631": [138, 16, 129]}, {"55060635": [14, 145, 2]}, {"55060639": [116, 52, 1]}, {"55060643": [139, 16, 129]}, {"55060647": [11, 145, 2]}, {"55060651": [116, 52, 1]}, {"55060655": [88, 16, 129]}, {"55060659": [8, 52, 2]}, {"55060664": [52, 1]}, {"55060667": [120, 16, 129]}, {"55060671": [5, 52, 2]}, {"55060676": [52, 1]}, {"55060679": [121, 16, 129]}, {"55060683": [2, 52, 2]}, {"55060688": [52, 2]}, {"55060691": [255, 3, 224]}, {"55060695": [8]}, {"55060700": [39, 189, 255, 224, 175, 191]}, {"55060707": [16, 175, 176]}, {"55060711": [20, 12, 16, 11, 19]}, {"55060720": [4, 65]}, {"55060723": [2]}, {"55060728": [52, 2]}, {"55060731": [91]}, {"55060733": [64, 32, 33, 12, 16, 11, 122]}, {"55060744": [16, 96]}, {"55060747": [22, 175, 163]}, {"55060751": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060760": [133, 9]}, {"55060763": [2, 17, 32]}, {"55060767": [3, 52, 10]}, {"55060771": [1, 16]}, {"55060775": [12, 165, 10]}, {"55060780": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060791": [6, 144, 102]}, {"55060795": [7, 140, 105]}, {"55060799": [8, 1, 32, 248, 9]}, {"55060808": [143, 163]}, {"55060811": [28, 144, 101]}, {"55060815": [1, 12, 1, 191, 115, 2, 32, 32, 33, 143, 163]}, {"55060827": [28, 144, 101]}, {"55060831": [3, 16]}, {"55060835": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060847": [6]}, {"55060849": [74]}, {"55060851": [24]}, {"55060854": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060864": [60, 8, 128, 64, 37, 8, 32]}, {"55060872": [133, 9]}, {"55060875": [2, 17, 32]}, {"55060879": [3, 52, 10]}, {"55060883": [1, 165, 10]}, {"55060888": [52, 5]}, {"55060891": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060903": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060914": [48, 33, 143, 191]}, {"55060919": [16, 143, 176]}, {"55060923": [20, 39, 189]}, {"55060927": [32, 3, 224]}, {"55060931": [8]}, {"55060936": [143, 166]}, {"55060939": [48, 132, 197]}, {"55060943": [4, 8, 16, 10, 122]}, {"55060952": [143, 185]}, {"55060955": [44, 135, 37]}, {"55060959": [4, 8, 16, 10, 122]}, {"55060968": [60, 10, 128, 64, 37, 74, 32, 8, 141, 75]}, {"55060979": [12, 17, 96]}, {"55060983": [2]}, {"55060988": [149, 69]}, {"55060991": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55061004": [60, 9, 128, 64, 37, 41, 32, 24, 129, 42]}, {"55061015": [3, 5, 64]}, {"55061019": [11, 1, 42, 72, 32, 129, 40]}, {"55061028": [52, 10]}, {"55061031": [127, 21, 10]}, {"55061035": [6]}, {"55061040": [60, 10, 128, 18, 37, 74, 165, 208, 133, 72]}, {"55061051": [144, 33, 8]}, {"55061055": [1, 165, 72]}, {"55061059": [144, 161, 32]}, {"55061064": [3, 224]}, {"55061067": [8]}, {"55061072": [60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061083": [12, 17, 32]}, {"55061087": [2]}, {"55061092": [129, 3]}, {"55061095": [2]}, {"55061097": [3, 15, 195]}, {"55061101": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061115": [8]}, {"55061120": [144, 69]}, {"55061123": [3, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061135": [12, 17, 32]}, {"55061139": [2]}, {"55061144": [145, 5]}, {"55061147": [3, 3, 224]}, {"55061151": [8]}, {"55061156": [143, 162]}, {"55061159": [36, 144, 69]}, {"55061164": [60, 8, 128, 64, 37, 8, 32]}, {"55061172": [133, 9]}, {"55061175": [2, 17, 32]}, {"55061179": [4, 52, 10]}, {"55061183": [1, 165, 10]}, {"55061188": [16]}, {"55061191": [24, 52, 5]}, {"55061195": [65, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061207": [12, 17, 32]}, {"55061211": [19]}, {"55061216": [145, 5]}, {"55061219": [1, 175, 164]}, {"55061224": [175, 165]}, {"55061227": [4, 175, 166]}, {"55061231": [8, 39, 189, 255, 232, 175, 191]}, {"55061239": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061251": [6, 145, 6]}, {"55061255": [7, 141, 9]}, {"55061259": [8, 1, 32, 248, 9]}, {"55061268": [143, 191]}, {"55061271": [16, 39, 189]}, {"55061275": [24, 143, 164]}, {"55061280": [143, 165]}, {"55061283": [4, 143, 166]}, {"55061287": [8, 3, 224]}, {"55061291": [8]}, {"55061296": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061307": [16, 175, 163]}, {"55061311": [20, 175, 191]}, {"55061315": [24, 12, 16, 10, 217]}, {"55061324": [143, 162]}, {"55061327": [16, 143, 163]}, {"55061331": [20, 143, 191]}, {"55061335": [24, 39, 189]}, {"55061339": [32, 3, 224]}, {"55061343": [8]}, {"55061348": [39, 189, 255, 232, 175, 191]}, {"55061355": [16, 60, 8, 128, 64, 37, 8, 32, 8, 173]}, {"55061368": [173]}, {"55061371": [4, 173]}, {"55061375": [8, 173]}, {"55061379": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061395": [42]}, {"55061401": [9, 15, 195, 1, 33, 32, 38]}, {"55061409": [129, 32, 35, 141, 5, 4, 40, 12, 16, 11, 19]}, {"55061424": [4, 64]}, {"55061427": [34]}, {"55061432": [52, 68]}, {"55061436": [12, 16, 11, 122]}, {"55061444": [16, 96]}, {"55061447": [12]}, {"55061452": [60, 8, 128, 64, 37, 8, 32, 8, 140, 105]}, {"55061464": [173, 9]}, {"55061468": [140, 105]}, {"55061471": [4, 173, 9]}, {"55061475": [4, 140, 105]}, {"55061479": [8, 173, 9]}, {"55061483": [8, 52, 9]}, {"55061487": [1, 173, 9]}, {"55061491": [12, 144, 98]}, {"55061496": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061512": [52, 1]}, {"55061515": [10, 21, 65]}, {"55061519": [6]}, {"55061524": [149, 42]}, {"55061527": [28, 49, 74, 240, 31]}, {"55061533": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061543": [28, 129, 9, 4, 36, 5, 33]}, {"55061551": [2]}, {"55061557": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061567": [16, 39, 189]}, {"55061571": [24, 3, 224]}, {"55061575": [8]}, {"55061580": [39, 189, 255, 232, 175, 191]}, {"55061587": [16, 12, 16, 11, 33]}, {"55061596": [36, 1, 255, 255, 16, 65]}, {"55061603": [4]}, {"55061608": [52, 68]}, {"55061612": [12, 16, 11, 85]}, {"55061620": [143, 191]}, {"55061623": [16, 39, 189]}, {"55061627": [24, 3, 224]}, {"55061631": [8]}, {"55061636": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061647": [164, 52, 8]}, {"55061652": [52, 137]}, {"55061656": [148, 170]}, {"55061660": [52, 1, 1, 156, 21, 65]}, {"55061667": [8]}, {"55061672": [52, 8]}, {"55061675": [3, 148, 171]}, {"55061679": [28, 49, 105]}, {"55061683": [255, 49, 98, 31]}, {"55061689": [2, 18, 2, 16]}, {"55061695": [31]}, {"55061700": [52, 1]}, {"55061703": [10, 21, 65]}, {"55061707": [14]}, {"55061712": [148, 171]}, {"55061715": [28, 52, 1]}, {"55061719": [16, 20, 65]}, {"55061723": [8]}, {"55061728": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061739": [4]}, {"55061744": [36, 2, 255, 255, 16]}, {"55061751": [21]}, {"55061756": [52, 8]}, {"55061759": [1, 49, 105]}, {"55061763": [31, 52, 1]}, {"55061767": [21, 21, 65]}, {"55061771": [12]}, {"55061776": [52, 1]}, {"55061779": [62, 16, 129]}, {"55061783": [7]}, {"55061788": [52, 1]}, {"55061791": [66, 16, 129]}, {"55061795": [4]}, {"55061800": [36, 2, 255, 255, 16]}, {"55061807": [7]}, {"55061812": [52, 8]}, {"55061815": [2, 144, 169, 1, 65]}, {"55061821": [2, 18]}, {"55061825": [72, 16, 37]}, {"55061829": [2, 18]}, {"55061833": [73, 16, 37, 3, 224]}, {"55061839": [8]}, {"55061844": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061856": [129, 9]}, {"55061860": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061883": [4, 141, 9]}, {"55061888": [17, 32]}, {"55061891": [23]}, {"55061897": [9, 82, 2, 49, 75, 248]}, {"55061905": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061928": [49, 34]}, {"55061931": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061952": [60, 12, 128, 64, 37, 140, 28]}, {"55061960": [129, 140]}, {"55061964": [17, 108]}, {"55061967": [4, 165, 32]}, {"55061971": [2, 161, 43]}, {"55061975": [2, 161, 34]}, {"55061979": [3, 173, 36]}, {"55061983": [4, 3, 224]}, {"55061987": [8]}, {"55061992": [39, 189, 255, 224, 175, 176]}, {"55061999": [16, 175, 177]}, {"55062003": [20, 175, 191]}, {"55062007": [24, 52, 130]}, {"55062012": [52, 80]}, {"55062016": [38, 8, 255, 128, 5]}, {"55062023": [18]}, {"55062028": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55062039": [16, 1, 9]}, {"55062043": [24]}, {"55062046": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55062064": [142, 40]}, {"55062067": [12, 1]}, {"55062070": [248, 9]}, {"55062076": [20, 80, 255, 239]}, {"55062084": [54, 35]}, {"55062088": [16]}, {"55062091": [2]}, {"55062096": [52, 3]}, {"55062100": [143, 176]}, {"55062103": [16, 143, 177]}, {"55062107": [20, 143, 191]}, {"55062111": [24, 39, 189]}, {"55062115": [32, 3, 224]}, {"55062119": [8]}, {"55062124": [140, 136, 29, 44, 52, 9]}, {"55062131": [1]}, {"55062133": [9, 78]}, {"55062136": [1, 9, 16, 36, 16, 64]}, {"55062143": [36]}, {"55062148": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062163": [164, 52, 1]}, {"55062167": [61, 17, 129]}, {"55062171": [10]}, {"55062177": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062187": [25]}, {"55062192": [52, 13]}, {"55062195": [1, 161, 141, 29, 40, 37, 74]}, {"55062203": [3, 16]}, {"55062207": [9]}, {"55062212": [52, 12]}, {"55062215": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062231": [14]}, {"55062236": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062272": [60, 9, 128, 64, 37, 41, 32, 24, 161, 40]}, {"55062284": [52, 2]}, {"55062288": [3, 224]}, {"55062291": [8]}, {"55062296": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062308": [16]}, {"55062311": [34]}, {"55062316": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062328": [16]}, {"55062331": [29]}, {"55062336": [52, 2]}, {"55062339": [255, 32, 232, 255, 166, 33, 8]}, {"55062347": [97, 16]}, {"55062351": [24]}, {"55062356": [52, 8]}, {"55062359": [100, 16]}, {"55062363": [21]}, {"55062368": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062383": [1, 160, 40, 14, 222, 52, 8]}, {"55062391": [104, 16]}, {"55062395": [13]}, {"55062400": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062415": [4, 160, 40, 14, 222, 52, 8]}, {"55062423": [106, 16]}, {"55062427": [5]}, {"55062432": [52, 5]}, {"55062435": [3, 52, 8]}, {"55062439": [107, 16]}, {"55062443": [1]}, {"55062448": [60, 9, 128, 64, 37, 41, 32, 24, 60, 10, 128, 64, 37, 74, 32, 27, 129, 44]}, {"55062468": [17, 136]}, {"55062471": [11, 33, 41]}, {"55062475": [1, 21, 42, 255, 252]}, {"55062484": [60, 9, 128, 64, 37, 41, 32, 23, 33, 41]}, {"55062495": [1, 17, 42]}, {"55062499": [4, 129, 44]}, {"55062504": [21, 128, 255, 252]}, {"55062512": [161, 40]}, {"55062516": [3, 224]}, {"55062519": [8]}, {"55062525": [96, 120, 33, 129, 236, 14, 223, 49, 142]}, {"55062535": [128, 17, 192]}, {"55062539": [3, 52, 3]}, {"55062543": [5, 3, 224]}, {"55062547": [8, 52, 2]}, {"55062551": [2, 3, 224]}, {"55062555": [8]}, {"55062557": [96, 16, 33, 133, 194]}, {"55062563": [164, 60, 8, 128, 18, 37, 8, 165, 208, 129, 9, 14, 223, 53, 41]}, {"55062579": [128, 161, 9, 14, 223, 3, 224]}, {"55062587": [8]}, {"55062592": [132, 142]}, {"55062595": [28, 33, 205, 255, 206, 5, 160]}, {"55062603": [16, 52, 2]}, {"55062608": [49, 169]}, {"55062611": [7, 52, 10]}, {"55062615": [1, 1, 42, 80, 4]}, {"55062621": [13, 72, 194, 60, 12, 128, 18, 37, 140, 165, 208, 1, 137, 96, 32, 129, 139, 5, 180, 1, 106, 88, 36, 52, 2]}, {"55062648": [17, 96]}, {"55062651": [4]}, {"55062656": [52, 13]}, {"55062659": [38, 164, 141]}, {"55062663": [28, 52, 2]}, {"55062667": [1, 3, 224]}, {"55062671": [8]}, {"55062676": [132, 174]}, {"55062679": [28, 33, 205, 255, 206, 5, 160]}, {"55062687": [11, 52, 2]}, {"55062692": [49, 169]}, {"55062695": [7, 52, 10]}, {"55062699": [1, 1, 42, 80, 4]}, {"55062705": [13, 72, 194, 60, 12, 128, 18, 37, 140, 165, 208, 1, 137, 96, 32, 129, 139, 5, 180, 1, 106, 88, 37, 161, 139, 5, 180, 3, 224]}, {"55062735": [8]}, {"55062740": [39, 189, 255, 240, 175, 191]}, {"55062747": [8, 40, 129]}, {"55062751": [50, 16, 32]}, {"55062755": [3]}, {"55062757": [128, 16, 33, 3, 32, 248, 9]}, {"55062768": [143, 191]}, {"55062771": [8, 39, 189]}, {"55062775": [16, 3, 224]}, {"55062779": [8]}, {"55062784": [60, 8, 128, 29, 37, 8, 132, 160, 60, 9, 128, 18, 37, 41, 165, 208, 133, 10]}, {"55062803": [164, 52, 1]}, {"55062807": [62, 21, 65]}, {"55062811": [2, 129, 43, 19, 151, 33, 106]}, {"55062819": [45, 134, 11]}, {"55062823": [28, 33, 107]}, {"55062827": [1, 52, 12]}, {"55062831": [1, 1, 108, 96, 4, 52, 1]}, {"55062839": [28, 1, 65]}, {"55062843": [24]}, {"55062846": [104, 18, 1, 45, 112, 32, 141, 207]}, {"55062855": [16, 1, 143, 16, 36, 3, 224]}, {"55062863": [8]}, {"55062868": [60, 8, 128, 29, 37, 8, 132, 160, 60, 9, 128, 18, 37, 41, 165, 208, 133, 10]}, {"55062887": [164, 52, 1]}, {"55062891": [62, 21, 65]}, {"55062895": [2, 129, 43, 19, 151, 33, 106]}, {"55062903": [45, 132, 139]}, {"55062907": [28, 33, 107]}, {"55062911": [1, 52, 12]}, {"55062915": [1, 1, 108, 96, 4, 52, 1]}, {"55062923": [28, 1, 65]}, {"55062927": [24]}, {"55062930": [104, 18, 1, 45, 112, 32, 141, 207]}, {"55062939": [16, 1, 143, 120, 37, 173, 207]}, {"55062947": [16, 3, 224]}, {"55062951": [8]}, {"55062956": [175, 164]}, {"55062959": [104, 175, 165]}, {"55062963": [108, 175, 166]}, {"55062967": [112, 175, 167]}, {"55062971": [116, 39, 189, 255, 232, 175, 163]}, {"55062979": [16, 175, 191]}, {"55062983": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062999": [32, 21]}, {"55063003": [31]}, {"55063008": [60, 9, 128, 64, 37, 41, 32, 27, 52, 10]}, {"55063019": [255, 161, 42]}, {"55063024": [60, 9, 128, 64, 37, 41, 32, 24, 36, 10, 255, 255, 52, 12]}, {"55063039": [3, 33, 74]}, {"55063043": [1, 17, 76]}, {"55063047": [20, 1, 42, 88, 32, 129, 104]}, {"55063056": [17]}, {"55063058": [255, 251]}, {"55063064": [60, 9, 128, 64, 37, 41, 32, 27, 161, 42]}, {"55063076": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55063087": [1, 165, 42]}, {"55063092": [60, 9, 128, 65, 52, 10]}, {"55063099": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 217]}, {"55063128": [143, 163]}, {"55063131": [16, 143, 191]}, {"55063135": [20, 39, 189]}, {"55063139": [24, 143, 164]}, {"55063143": [104, 143, 165]}, {"55063147": [108, 143, 166]}, {"55063151": [112, 143, 167]}, {"55063155": [116, 132, 110, 19, 196, 3, 224]}, {"55063163": [8]}, {"55063168": [147, 25]}, {"55063171": [116, 52, 1]}, {"55063175": [255, 23, 33]}, {"55063179": [2]}, {"55063184": [52, 25]}, {"55063187": [44, 3, 224]}, {"55063191": [8, 167, 185]}, {"55063195": [154, 147, 44]}, {"55063199": [116, 52, 1]}, {"55063203": [255, 21, 129]}, {"55063207": [2]}, {"55063212": [52, 12]}, {"55063215": [44, 3, 224]}, {"55063219": [8]}, {"55063224": [145, 174]}, {"55063227": [116, 52, 1]}, {"55063231": [255, 21, 193]}, {"55063235": [2]}, {"55063240": [52, 14]}, {"55063243": [44, 3, 224]}, {"55063247": [8, 167, 174]}, {"55063251": [154, 145, 207]}, {"55063255": [116, 52, 1]}, {"55063259": [255, 21, 225]}, {"55063263": [2]}, {"55063268": [52, 15]}, {"55063271": [44, 3, 224]}, {"55063275": [8, 167, 175]}, {"55063279": [154, 60, 8, 128, 64, 37, 8, 32, 28, 142, 9]}, {"55063291": [104, 173, 9]}, {"55063296": [142, 9]}, {"55063299": [108, 173, 9]}, {"55063303": [4, 150, 9]}, {"55063307": [112, 165, 9]}, {"55063311": [8, 150, 9]}, {"55063315": [156, 165, 9]}, {"55063319": [10, 3, 224]}, {"55063323": [8, 142, 14]}, {"55063327": [4, 39, 189, 255, 224, 175, 176]}, {"55063335": [16, 175, 177]}, {"55063339": [20, 175, 191]}, {"55063343": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 28, 142, 8]}, {"55063363": [4, 17]}, {"55063367": [5]}, {"55063372": [12, 16, 12, 242]}, {"55063380": [16]}, {"55063383": [3]}, {"55063388": [12, 16, 13, 5]}, {"55063396": [12, 16, 12, 229, 52, 4]}, {"55063404": [12, 16, 12, 229, 52, 4]}, {"55063411": [1, 12, 16, 12, 229, 52, 4]}, {"55063419": [2, 143, 176]}, {"55063423": [16, 143, 177]}, {"55063427": [20, 143, 191]}, {"55063431": [24, 39, 189]}, {"55063435": [32, 3, 224]}, {"55063439": [8]}, {"55063444": [2, 4, 64, 33, 145, 9]}, {"55063451": [108, 52, 1]}, {"55063455": [255, 17, 33]}, {"55063459": [7]}, {"55063464": [2, 9, 72, 33, 145, 41]}, {"55063471": [116, 52, 1]}, {"55063475": [44, 17, 33]}, {"55063479": [2]}, {"55063484": [161, 9]}, {"55063487": [105, 3, 224]}, {"55063491": [8]}, {"55063496": [39, 189, 255, 232, 175, 191]}, {"55063503": [16, 142, 40]}, {"55063508": [174, 8]}, {"55063511": [64, 142, 40]}, {"55063515": [4, 174, 8]}, {"55063519": [68, 150, 40]}, {"55063523": [8, 166, 8]}, {"55063527": [72, 162]}, {"55063530": [15, 51, 146, 8]}, {"55063535": [74, 52, 1]}, {"55063539": [255, 21, 1]}, {"55063543": [3]}, {"55063548": [12, 16, 13, 19]}, {"55063556": [143, 191]}, {"55063559": [16, 39, 189]}, {"55063563": [24, 3, 224]}, {"55063567": [8]}, {"55063572": [142, 8]}, {"55063575": [64, 174, 8]}, {"55063579": [104, 142, 8]}, {"55063583": [68, 174, 8]}, {"55063587": [108, 150, 8]}, {"55063591": [72, 166, 8]}, {"55063595": [112, 146, 8]}, {"55063599": [104, 52, 1]}, {"55063603": [255, 21, 1]}, {"55063607": [3]}, {"55063612": [52, 8]}, {"55063615": [1, 162, 8, 15, 51, 3, 224]}, {"55063623": [8]}, {"55063628": [39, 189, 255, 232, 175, 191]}, {"55063635": [16, 150, 8]}, {"55063639": [156, 49, 8]}, {"55063643": [64, 17]}, {"55063647": [5]}, {"55063652": [150, 8]}, {"55063655": [112, 49, 8, 255, 15, 53, 8]}, {"55063663": [48, 166, 8]}, {"55063667": [112, 146, 40]}, {"55063671": [1, 162, 8]}, {"55063675": [105, 150, 40]}, {"55063679": [2, 166, 8]}, {"55063683": [106, 142, 40]}, {"55063687": [4, 174, 8]}, {"55063691": [108, 12, 16, 13, 45, 52, 4]}, {"55063700": [12, 16, 13, 45, 52, 4]}, {"55063707": [1, 12, 16, 13, 45, 52, 4]}, {"55063715": [2, 143, 191]}, {"55063719": [16, 39, 189]}, {"55063723": [24, 3, 224]}, {"55063727": [8]}, {"55063732": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 53, 96, 145, 10]}, {"55063747": [108, 52, 1]}, {"55063751": [255, 17, 65]}, {"55063755": [5]}, {"55063760": [1, 42, 72, 33, 145, 41]}, {"55063768": [21, 32]}, {"55063771": [28]}, {"55063776": [60, 9, 128, 64, 37, 41, 53, 83, 37, 41]}, {"55063787": [1, 145, 42]}, {"55063792": [17, 64]}, {"55063795": [19]}, {"55063800": [2, 10, 88, 33, 145, 107]}, {"55063807": [116, 52, 1]}, {"55063811": [255, 17, 97, 255, 248]}, {"55063820": [146, 12]}, {"55063823": [108, 17, 138, 255, 245]}, {"55063832": [146, 12]}, {"55063835": [109, 17, 138, 255, 242]}, {"55063844": [146, 12]}, {"55063847": [110, 17, 138, 255, 239]}, {"55063856": [161, 11]}, {"55063859": [105, 161, 10]}, {"55063863": [108, 16]}, {"55063867": [4]}, {"55063872": [52, 9]}, {"55063875": [255, 161, 9]}, {"55063879": [105, 161, 9]}, {"55063883": [108, 3, 224]}, {"55063887": [8]}, {"55063892": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063905": [1, 1, 1, 1, 1]}, {"55063911": [1, 1, 1, 1, 1]}, {"55063917": [1]}, {"55063919": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063929": [51, 8, 33, 32, 15]}, {"55063935": [71, 21, 234]}, {"55063939": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063951": [164]}, {"55063953": [15, 122, 3, 20, 64]}, {"55063959": [5, 52, 2, 72, 48, 21, 226]}, {"55063967": [7]}, {"55063972": [36, 25]}, {"55063975": [3, 16]}, {"55063979": [4, 52, 2, 99, 17, 21, 226]}, {"55063987": [2]}, {"55063992": [36, 25]}, {"55063995": [3, 3, 224]}, {"55063999": [8]}, {"55064004": [141, 173, 138, 160, 52, 2, 128]}, {"55064012": [16, 77]}, {"55064015": [2]}, {"55064020": [16]}, {"55064023": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55064039": [1, 16, 64]}, {"55064043": [2]}, {"55064048": [16]}, {"55064051": [2, 52, 2]}, {"55064055": [1, 161, 226, 28, 191, 3, 224]}, {"55064063": [8]}, {"55064069": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55064083": [164]}, {"55064085": [15, 122, 3, 20, 64]}, {"55064091": [5, 52, 2, 72, 48, 21, 226]}, {"55064099": [7]}, {"55064104": [36, 25]}, {"55064107": [3, 16]}, {"55064111": [4, 52, 2, 99, 17, 21, 226]}, {"55064119": [2]}, {"55064124": [36, 25]}, {"55064127": [3, 3, 224]}, {"55064131": [8]}, {"55064136": [20, 64]}, {"55064139": [14]}, {"55064144": [52, 1]}, {"55064147": [24, 20, 129]}, {"55064151": [11, 60, 10, 128, 18, 37, 74, 165, 208, 129, 72]}, {"55064163": [166, 49, 8]}, {"55064167": [32, 17]}, {"55064171": [6, 52, 2]}, {"55064176": [129, 72]}, {"55064179": [123, 52, 1]}, {"55064183": [7, 17, 1]}, {"55064187": [2, 52, 2]}, {"55064191": [1, 52, 2]}, {"55064196": [3, 224]}, {"55064199": [8]}, {"55064204": [162, 37]}, {"55064207": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55064219": [4, 142, 10]}, {"55064224": [17, 64]}, {"55064227": [11]}, {"55064233": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55064245": [24, 194, 2, 23]}, {"55064251": [3, 49, 89]}, {"55064255": [255, 129, 234]}, {"55064260": [3, 42, 200, 37, 8, 16, 13, 166, 161, 249]}, {"55064272": [3, 224]}, {"55064275": [8]}] \ No newline at end of file diff --git a/version.py b/version.py index 180f38b16..802feacfa 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.44 f.LUM' +__version__ = '2.15.45 f.LUM' From 7ac09b981de2e8f12d4d42320479470c91b666f8 Mon Sep 17 00:00:00 2001 From: scatterclegge Date: Fri, 31 Aug 2018 01:03:46 -0230 Subject: [PATCH 364/755] added randomize music option with MusicLog output for debug --- Rom.py | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++-- Settings.py | 16 ++++++++++ 2 files changed, 99 insertions(+), 3 deletions(-) diff --git a/Rom.py b/Rom.py index 02159efeb..44f1a3364 100644 --- a/Rom.py +++ b/Rom.py @@ -1431,14 +1431,19 @@ def write_save_table(rom): # actually write the save table to rom write_save_table(rom) + + # re-seed for aesthetic effects. They shouldn't be affected by the generation seed + random.seed() + + # patch music + # randomize music + if world.randomize_music: + randomize_music(rom) # disable music if world.disable_music: rom.write_bytes(0xB3CB18, [0x00, 0x00, 0x20, 0x25]) - # re-seed for aesthetic effects. They shouldn't be affected by the generation seed - random.seed() - # patch tunic colors # Custom color tunic stuff Tunics = [] @@ -1716,3 +1721,78 @@ def update_chest_sizes(rom, override_table): newChestType = chestTypeMap[chestType][itemType] default = (default & 0x0FFF) | newChestType rom.write_int16(address, default) + +def randomize_music(rom): + # Format: (Title, Sequence ID) + music_to_randomize = [ + ('Hyrule Field', 0x02), + ('Dodongos Cavern', 0x18), + ('Kakariko Adult', 0x19), + ('Battle', 0x1A), + ('Boss Battle', 0x1B), + ('Inside Deku Tree', 0x1C), + ('Market', 0x1D), + ('Title Theme', 0x1E), + ('House', 0x1F), + ('Jabu Jabu', 0x26), + ('Kakariko Child', 0x27), + ('Fairy Fountain', 0x28), + ('Zelda Theme', 0x29), + ('Fire Temple', 0x2A), + ('Forest Temple', 0x2C), + ('Castle Courtyard', 0x2D), + ('Ganondorf Theme', 0x2E), + ('Lon Lon Ranch', 0x2F), + ('Goron City', 0x30), + ('Miniboss Battle', 0x38), + ('Temple of Time', 0x3A), + ('Kokiri Forest', 0x3C), + ('Lost Woods', 0x3E), + ('Spirit Temple', 0x3F), + ('Horse Race', 0x40), + ('Ingo Theme', 0x42), + ('Fairy Flying', 0x4A), + ('Deku Tree', 0x4B), # different from inside? + ('Windmill Hut', 0x4C), + # ('Legend of Hyrule', 0x4D), # doesn't loop + ('Shooting Gallery', 0x4E), + ('Sheik Theme', 0x4F), + ('Zoras Domain', 0x50), + ('Shop', 0x55), + ('Chamber of the Sages', 0x56), + ('File Select', 0x57), + ('Ice Cavern', 0x58), + ('Kaepora Gaebora', 0x5A), + ('Shadow Temple', 0x5B), + ('Water Temple', 0x5C), + # ('Castle Bridge', 0x5D), # doesn't loop + # ('Ocarina of Time', 0x5E), # doesn't loop + ('Gerudo Valley', 0x5F), + ('Potion Shop', 0x60), + ('Kotake and Koume', 0x61), + ('Castle Escape', 0x62), + ('Castle Underground', 0x63), + ('Ganondorf Battle', 0x64), + ('Ganon Battle', 0x65), + # ('Seal of Six Sages', 0x66), # doesn't loop + # ('Credits I', 0x67), # doesn't loop + ('Fire Boss', 0x6B), + ('Mini-game', 0x6C) + ] + sources = list(music_to_randomize) + random.shuffle(sources) + musiclog = '' + musicseqbuf = list() + instrbuf = list() + for i in range(len(sources)): + musiclog += sources[i][0] + ' -> ' + music_to_randomize[i][0] + '\n' + source = sources[i][1] + dest = music_to_randomize[i][1] + musicseqbuf.append(rom.read_bytes(0xB89AE0 + (source * 0x10), 0x10)) + instrbuf.append(rom.read_bytes(0xB89910 + 0xDD + (source * 2), 2)) + for i in range(len(music_to_randomize)): + dest = music_to_randomize[i][1] + rom.write_bytes(0xB89AE0 + (dest * 0x10), musicseqbuf[i]) + rom.write_bytes(0xB89910 + 0xDD + (dest * 2), instrbuf[i]) + with open('MusicLog.txt', 'w') as outfile: + outfile.write(musiclog) \ No newline at end of file diff --git a/Settings.py b/Settings.py index a03cab948..82166e39d 100644 --- a/Settings.py +++ b/Settings.py @@ -1353,6 +1353,22 @@ def __init__(self, settings_dict): Disable background music. SFX and ambient sounds remain. ''' }), + Setting_Info('randomize_music', bool, 1, False, + { + 'action': 'store_true', + 'help': '''\ + Randomize background music. + ''' + }, + { + 'text': 'Randomize Background Music', + 'group': 'cosmetics', + 'widget': 'Checkbutton', + 'default': False, + 'tooltip': '''\ + Randomize background music. + ''' + }), Setting_Info('kokiricolor', str, 0, False, { From dc4ab2d3568e40a544a6a6bc711221c921bb770e Mon Sep 17 00:00:00 2001 From: scatterclegge Date: Fri, 31 Aug 2018 18:19:48 -0230 Subject: [PATCH 365/755] improved disable music option and removed music log --- Rom.py | 128 ++++++++++++++++++++++++++++----------------------------- 1 file changed, 63 insertions(+), 65 deletions(-) diff --git a/Rom.py b/Rom.py index 44f1a3364..fc81010e4 100644 --- a/Rom.py +++ b/Rom.py @@ -1442,7 +1442,7 @@ def write_save_table(rom): # disable music if world.disable_music: - rom.write_bytes(0xB3CB18, [0x00, 0x00, 0x20, 0x25]) + disable_music(rom) # patch tunic colors # Custom color tunic stuff @@ -1723,76 +1723,74 @@ def update_chest_sizes(rom, override_table): rom.write_int16(address, default) def randomize_music(rom): - # Format: (Title, Sequence ID) - music_to_randomize = [ - ('Hyrule Field', 0x02), - ('Dodongos Cavern', 0x18), - ('Kakariko Adult', 0x19), - ('Battle', 0x1A), - ('Boss Battle', 0x1B), - ('Inside Deku Tree', 0x1C), - ('Market', 0x1D), - ('Title Theme', 0x1E), - ('House', 0x1F), - ('Jabu Jabu', 0x26), - ('Kakariko Child', 0x27), - ('Fairy Fountain', 0x28), - ('Zelda Theme', 0x29), - ('Fire Temple', 0x2A), - ('Forest Temple', 0x2C), - ('Castle Courtyard', 0x2D), - ('Ganondorf Theme', 0x2E), - ('Lon Lon Ranch', 0x2F), - ('Goron City', 0x30), - ('Miniboss Battle', 0x38), - ('Temple of Time', 0x3A), - ('Kokiri Forest', 0x3C), - ('Lost Woods', 0x3E), - ('Spirit Temple', 0x3F), - ('Horse Race', 0x40), - ('Ingo Theme', 0x42), - ('Fairy Flying', 0x4A), - ('Deku Tree', 0x4B), # different from inside? - ('Windmill Hut', 0x4C), - # ('Legend of Hyrule', 0x4D), # doesn't loop - ('Shooting Gallery', 0x4E), - ('Sheik Theme', 0x4F), - ('Zoras Domain', 0x50), - ('Shop', 0x55), - ('Chamber of the Sages', 0x56), - ('File Select', 0x57), - ('Ice Cavern', 0x58), - ('Kaepora Gaebora', 0x5A), - ('Shadow Temple', 0x5B), - ('Water Temple', 0x5C), - # ('Castle Bridge', 0x5D), # doesn't loop - # ('Ocarina of Time', 0x5E), # doesn't loop - ('Gerudo Valley', 0x5F), - ('Potion Shop', 0x60), - ('Kotake and Koume', 0x61), - ('Castle Escape', 0x62), - ('Castle Underground', 0x63), - ('Ganondorf Battle', 0x64), - ('Ganon Battle', 0x65), - # ('Seal of Six Sages', 0x66), # doesn't loop - # ('Credits I', 0x67), # doesn't loop - ('Fire Boss', 0x6B), - ('Mini-game', 0x6C) - ] - sources = list(music_to_randomize) + sources = list(bgm_sequence_ids) random.shuffle(sources) - musiclog = '' musicseqbuf = list() instrbuf = list() for i in range(len(sources)): - musiclog += sources[i][0] + ' -> ' + music_to_randomize[i][0] + '\n' source = sources[i][1] - dest = music_to_randomize[i][1] + dest = bgm_sequence_ids[i][1] musicseqbuf.append(rom.read_bytes(0xB89AE0 + (source * 0x10), 0x10)) instrbuf.append(rom.read_bytes(0xB89910 + 0xDD + (source * 2), 2)) - for i in range(len(music_to_randomize)): - dest = music_to_randomize[i][1] + for i in range(len(bgm_sequence_ids)): + dest = bgm_sequence_ids[i][1] rom.write_bytes(0xB89AE0 + (dest * 0x10), musicseqbuf[i]) rom.write_bytes(0xB89910 + 0xDD + (dest * 2), instrbuf[i]) - with open('MusicLog.txt', 'w') as outfile: - outfile.write(musiclog) \ No newline at end of file + +def disable_music(rom): + blank_track = rom.read_bytes(0xB89AE0, 0x10) + for i in range(len(bgm_sequence_ids)): + dest = bgm_sequence_ids[i][1] + rom.write_bytes(0xB89AE0 + (dest * 0x10), blank_track) + +# Format: (Title, Sequence ID) +bgm_sequence_ids = [ + ('Hyrule Field', 0x02), + ('Dodongos Cavern', 0x18), + ('Kakariko Adult', 0x19), + ('Battle', 0x1A), + ('Boss Battle', 0x1B), + ('Inside Deku Tree', 0x1C), + ('Market', 0x1D), + ('Title Theme', 0x1E), + ('House', 0x1F), + ('Jabu Jabu', 0x26), + ('Kakariko Child', 0x27), + ('Fairy Fountain', 0x28), + ('Zelda Theme', 0x29), + ('Fire Temple', 0x2A), + ('Forest Temple', 0x2C), + ('Castle Courtyard', 0x2D), + ('Ganondorf Theme', 0x2E), + ('Lon Lon Ranch', 0x2F), + ('Goron City', 0x30), + ('Miniboss Battle', 0x38), + ('Temple of Time', 0x3A), + ('Kokiri Forest', 0x3C), + ('Lost Woods', 0x3E), + ('Spirit Temple', 0x3F), + ('Horse Race', 0x40), + ('Ingo Theme', 0x42), + ('Fairy Flying', 0x4A), + ('Deku Tree', 0x4B), + ('Windmill Hut', 0x4C), + ('Shooting Gallery', 0x4E), + ('Sheik Theme', 0x4F), + ('Zoras Domain', 0x50), + ('Shop', 0x55), + ('Chamber of the Sages', 0x56), + ('File Select', 0x57), + ('Ice Cavern', 0x58), + ('Kaepora Gaebora', 0x5A), + ('Shadow Temple', 0x5B), + ('Water Temple', 0x5C), + ('Gerudo Valley', 0x5F), + ('Potion Shop', 0x60), + ('Kotake and Koume', 0x61), + ('Castle Escape', 0x62), + ('Castle Underground', 0x63), + ('Ganondorf Battle', 0x64), + ('Ganon Battle', 0x65), + ('Fire Boss', 0x6B), + ('Mini-game', 0x6C) +] From 1951cfacb638d9ff83194087d841f39d5c4e9bf5 Mon Sep 17 00:00:00 2001 From: scatterclegge Date: Fri, 31 Aug 2018 18:26:16 -0230 Subject: [PATCH 366/755] removed unnecessary line --- Rom.py | 1 - 1 file changed, 1 deletion(-) diff --git a/Rom.py b/Rom.py index fc81010e4..ab211b443 100644 --- a/Rom.py +++ b/Rom.py @@ -1729,7 +1729,6 @@ def randomize_music(rom): instrbuf = list() for i in range(len(sources)): source = sources[i][1] - dest = bgm_sequence_ids[i][1] musicseqbuf.append(rom.read_bytes(0xB89AE0 + (source * 0x10), 0x10)) instrbuf.append(rom.read_bytes(0xB89910 + 0xDD + (source * 2), 2)) for i in range(len(bgm_sequence_ids)): From c150726c96c8992573d82e37566cfd5a88cf05cb Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 31 Aug 2018 18:37:50 -0400 Subject: [PATCH 367/755] Deku Salescrubs items are randomized --- ASM/src/build.asm | 6 +++ ASM/src/debug.asm | 40 ++++++++++++++++ ASM/src/item_overrides.asm | 13 +++++- ItemList.py | 54 ++++++++++++++++++++- Notes/shop item notes.txt | 52 +++++++++++++-------- Regions.py | 96 ++++++++++++++++++++++++++++++-------- Rom.py | 92 +++++++++++++++++++++++++++--------- Rules.py | 20 ++++++-- data/base2current.json | 2 +- version.py | 2 +- 10 files changed, 307 insertions(+), 70 deletions(-) create mode 100644 ASM/src/debug.asm diff --git a/ASM/src/build.asm b/ASM/src/build.asm index a92cb66e6..423fb929f 100755 --- a/ASM/src/build.asm +++ b/ASM/src/build.asm @@ -19,6 +19,12 @@ .include "constants.asm" +.org 0x80400000 +.area 0x1000 +DebugOutput: +.include "debug.asm" +.endarea + .org 0x80401000 .area 0x1000, 0 .include "config.asm" diff --git a/ASM/src/debug.asm b/ASM/src/debug.asm new file mode 100644 index 000000000..a01ce662a --- /dev/null +++ b/ASM/src/debug.asm @@ -0,0 +1,40 @@ +.macro debug_print,reg + addi sp, sp, -0x20 + sw t0, 0x04(sp) + sw t1, 0x08(sp) + sw t2, 0x0C(sp) + sw t3, 0x10(sp) + sw at, 0x14(sp) + + ori t3, reg, 0 + + li t0, DebugOutput + lw t1, 0x00(t0) + + add t2, t0, t1 + sw t3, 0x04(t2) + + addi t1, t1, 4 + sw t1, 0x00(t0) + + lw t0, 0x04(sp) + lw t1, 0x08(sp) + lw t2, 0x0C(sp) + lw t3, 0x10(sp) + lw at, 0x14(sp) + addi sp, sp, 0x20 +.endmacro + +.macro debug_printi,val + addi sp, sp, -0x10 + sw at, 0x04(sp) + sw t4, 0x08(sp) + + li t4, val + debug_print t4 + + lw at, 0x04(sp) + lw t4, 0x08(sp) + addi sp, sp, 0x10 +.endmacro + diff --git a/ASM/src/item_overrides.asm b/ASM/src/item_overrides.asm index 8607d881b..25dd00cef 100755 --- a/ASM/src/item_overrides.asm +++ b/ASM/src/item_overrides.asm @@ -434,7 +434,18 @@ get_override_search_key: li t0, 0x02 lbu t1, 0x0141 (a1) ; t1 = collectable flag @@not_collectable: + bne t2, 0x011A, @@not_grotto_deku_scrub + nop + bne v0, 0x3E, @@not_grotto_deku_scrub + nop + + ; If grotto scene and deku salescrub, then use the + ; grotto id for the scene. + li t0, 0x04 + li t3, SAVE_CONTEXT + lb v0, 0x1397(t3) ; v0 = Grotto ID +@@not_grotto_deku_scrub: ; Construct ID used to search the override table ; v0 = (scene << 16) | (override_type << 8) | override_id sll v0, v0, 8 @@ -471,7 +482,7 @@ scan_override_table: srl t3, t3, 11 ; t3 = player id lui t4, 0xFFFF - ori t4, t4, 0x03FF ;t4 = 0xFFFF07FF masks out the player id + ori t4, t4, 0x07FF ;t4 = 0xFFFF07FF masks out the player id and t2, t2, t4 bne t2, a0, @@lookup_loop nop diff --git a/ItemList.py b/ItemList.py index 944ccb449..2ff7ddbf2 100644 --- a/ItemList.py +++ b/ItemList.py @@ -175,6 +175,53 @@ + ['Buy Bottle Bug'] + ['Buy Fish']) +vanilla_deku_scrubs = { + 'DC Deku Scrub Deku Nuts': 'Buy Deku Nut (5)', + 'DC Deku Scrub Deku Sticks': 'Buy Deku Stick (1)', + 'DC Deku Scrub Deku Seeds': 'Buy Deku Seeds (30)', + 'DC Deku Scrub Deku Shield': 'Buy Deku Shield', + 'Jabu Deku Scrub Deku Nuts': 'Buy Deku Nut (5)', + 'GC Deku Scrub Bombs': 'Buy Bombs (5)', + 'GC Deku Scrub Arrows': 'Buy Arrows (30)', + 'GC Deku Scrub Red Potion': 'Buy Red Potion [30]', + 'GC Deku Scrub Green Potion': 'Buy Green Potion', + 'ZR Grotto Deku Scrub Red Potion': 'Buy Red Potion [30]', + 'ZR Grotto Deku Scrub Green Potion': 'Buy Green Potion', + 'SFM Grotto Deku Scrub Red Potion': 'Buy Red Potion [30]', + 'SFM Grotto Deku Scrub Green Potion': 'Buy Green Potion', + 'LH Grotto Deku Scrub Deku Nuts': 'Buy Deku Nut (5)', + 'LH Grotto Deku Scrub Bombs': 'Buy Bombs (5)', + 'LH Grotto Deku Scrub Arrows': 'Buy Arrows (30)', + 'Valley Grotto Deku Scrub Red Potion': 'Buy Red Potion [30]', + 'Valley Grotto Deku Scrub Green Potion': 'Buy Green Potion', + 'LW Deku Scrub Deku Nuts': 'Buy Deku Nut (5)', + 'LW Deku Scrub Deku Sticks': 'Buy Deku Stick (1)', + 'LW Grotto Deku Scrub Arrows': 'Buy Arrows (30)', + 'Desert Grotto Deku Scrub Red Potion': 'Buy Red Potion [30]', + 'Desert Grotto Deku Scrub Green Potion': 'Buy Green Potion', + 'DMC Deku Scrub Bombs': 'Buy Bombs (5)', + 'DMC Grotto Deku Scrub Deku Nuts': 'Buy Deku Nut (5)', + 'DMC Grotto Deku Scrub Bombs': 'Buy Bombs (5)', + 'DMC Grotto Deku Scrub Arrows': 'Buy Arrows (30)', + 'Goron Grotto Deku Scrub Deku Nuts': 'Buy Deku Nut (5)', + 'Goron Grotto Deku Scrub Bombs': 'Buy Bombs (5)', + 'Goron Grotto Deku Scrub Arrows': 'Buy Arrows (30)', + 'LLR Grotto Deku Scrub Deku Nuts': 'Buy Deku Nut (5)', + 'LLR Grotto Deku Scrub Bombs': 'Buy Bombs (5)', + 'LLR Grotto Deku Scrub Arrows': 'Buy Arrows (30)', +} + +deku_scrubs_items = ( + ['Deku Nuts (5)'] * 7 + + ['Rupees (20)'] * 2 # ['Deku Stick (1)'] * 2 + + ['Arrows (5)'] # ['Deku Seeds (30)'] + + ['Deku Shield'] + + ['Bombs (5)'] * 6 + + ['Arrows (30)'] * 6 + + ['Recovery Heart'] * 5 + + ['Rupees (5)'] * 5 # ['Green Potion'] +) + rewardlist = [ 'Kokiri Emerald', 'Goron Ruby', @@ -434,13 +481,14 @@ def get_pool_core(world): placed_items['Gerudo Fortress Membership Card'] = 'Gerudo Membership Card' if world.shopsanity == 'off': - for location, item in vanilla_shop_items.items(): - placed_items[location] = item + placed_items.update(vanilla_shop_items) if world.bombchus_in_logic: placed_items['Kokiri Shop Item 8'] = 'Buy Bombchu (5)', placed_items['Castle Town Bazaar Item 4'] = 'Buy Bombchu (5)', placed_items['Kakariko Bazaar Item 4'] = 'Buy Bombchu (5)', pool.extend(normal_rupees) + + placed_items.update(vanilla_deku_scrubs) else: remain_shop_items = [item for _,item in vanilla_shop_items.items()] pool.extend(min_shop_items) @@ -455,6 +503,8 @@ def get_pool_core(world): pool.extend(random.sample(veryharditems, shop_nonitem_count)) pool.extend(shopsanity_rupees) + pool.extend(deku_scrubs_items) + pool.extend(alwaysitems) for _ in range(normal_bottle_count): bottle = random.choice(normal_bottles) diff --git a/Notes/shop item notes.txt b/Notes/shop item notes.txt index a0351cf07..a348e5756 100644 --- a/Notes/shop item notes.txt +++ b/Notes/shop item notes.txt @@ -342,43 +342,43 @@ func_0x862c0c_C004EC: 0x00000174: nop - -func_0x862d84: +func_0x862d84_c00664: 0x00000000: addiu $sp, $sp, -0x20 0x00000004: sw $ra, 0x14($sp) -0x00000008: move $a2, $a0 +0x00000008: move $a2, $a0 ; a0 = a2 = actor 0x0000000c: move $a3, $a1 -0x00000010: lh $v1, 0x1c($a2) +0x00000010: lh $v1, 0x1c($a2) ; v1 = variable 0x00000014: lui $a1, 0x8086 -0x00000018: slti $at, $v1, 0x32 -0x0000001c: bnez $at, 0x3c -0x00000020: sll $t6, $v1, 5 -0x00000024: bgezl $v1, 0x40 +0x00000018: slti $at, $v1, 0x32 +0x0000001c: bnez $at, 0x3c +0x00000020: sll $t6, $v1, 5 ; t6 = variable << 5 (row offset) +0x00000024: bgezl $v1, 0x40 ; if variable not between 0-0x32 0x00000028: lui $at, 1 -; shop item id not valid range -0x0000002c: jal 0x20eb4 -0x00000030: move $a0, $a2 -0x00000034: b 0x98 -0x00000038: lw $ra, 0x14($sp) + ; shop item id not valid range + 0x0000002c: jal 0x20eb4 + 0x00000030: move $a0, $a2 + 0x00000034: b 0x98 + 0x00000038: lw $ra, 0x14($sp) ; shop item id valid range 0x0000003c: lui $at, 1 -0x00000040: ori $at, $at, 0x17a4 -0x00000044: addu $a1, $a1, $t6 -0x00000048: lh $a1, 0x49ec($a1) -0x0000004c: addu $a0, $a3, $at +0x00000040: ori $at, $at, 0x17a4 ; at = 0x117A4 +0x00000044: addu $a1, $a1, $t6 ; a1 = partial address + row offset +0x00000048: lh $a1, 0x49ec($a1) ; a1 = (shop item table + row offset)[0] = model +0x0000004c: addu $a0, $a3, $at ; a0 = ctx + 0x117A4 0x00000050: sh $v1, 0x1e($sp) 0x00000054: jal 0x81628 0x00000058: sw $a2, 0x20($sp) 0x0000005c: lw $a2, 0x20($sp) 0x00000060: lh $v1, 0x1e($sp) -0x00000064: lui $t8, 0x8086 +0x00000064: lui $t8, 0x8086 ; t8 = state1_8086443c_c01d1c 0x00000068: sb $v0, 0x184($a2) 0x0000006c: lb $t7, 0x184($a2) 0x00000070: addiu $t8, $t8, 0x443c 0x00000074: bgezl $t7, 0x90 0x00000078: sh $v1, 0x1c($a2) + 0x0000007c: jal 0x20eb4 0x00000080: move $a0, $a2 0x00000084: b 0x98 @@ -386,14 +386,26 @@ func_0x862d84: 0x0000008c: sh $v1, 0x1c($a2) 0x00000090: sw $t8, 0x188($a2) + 0x00000094: lw $ra, 0x14($sp) 0x00000098: addiu $sp, $sp, 0x20 0x0000009c: jr $ra 0x000000a0: nop -dest 80862E5C - +dest 80862E5C_c0073c +0x00000000: addiu $sp, $sp, -0x18 +0x00000004: sw $ra, 0x14($sp) +0x00000008: move $a2, $a0 +0x0000000c: lw $t6, 0x18c($a2) +0x00000010: beql $t6, $zero, 0x24 +0x00000014: lw $ra, 0x14($sp) +0x00000018: jal 0x8d6d0 +0x0000001c: addiu $a0, $a2, 0x13c +0x00000020: lw $ra, 0x14($sp) +0x00000024: addiu $sp, $sp, 0x18 +0x00000028: jr $ra +0x0000002c: nop main 808648A8 - C02188 0x00000000: addiu $sp, $sp, -0x18 diff --git a/Regions.py b/Regions.py index 41eacf5de..da9140abc 100644 --- a/Regions.py +++ b/Regions.py @@ -54,12 +54,16 @@ def create_regions(world): ['Deku Tree Basement Vines']), create_ow_region( 'Lost Woods', - ['Skull Kid', 'Ocarina Memory Game', 'Target in Woods', 'Deku Salesman Woods', - 'GS Lost Woods Bean Patch Near Bridge', 'GS Lost Woods Bean Patch Near Stage'], + ['Skull Kid', 'Ocarina Memory Game', 'Target in Woods', 'LW Deku Scrub Deku Stick Upgrade', + 'GS Lost Woods Bean Patch Near Bridge', 'GS Lost Woods Bean Patch Near Stage', + 'LW Deku Scrub Deku Nuts', 'LW Deku Scrub Deku Sticks'], ['Lost Woods Front', 'Meadow Entrance', 'Woods to Goron City', 'Lost Woods Dive Warp', 'Adult Meadow Access', 'Lost Woods Generic Grotto', 'Deku Theater', 'Lost Woods Sales Grotto']), create_ow_region('Sacred Forest Meadow Entryway', None, ['Meadow Exit', 'Meadow Gate', 'Front of Meadow Grotto']), - create_ow_region('Sacred Forest Meadow', ['Song from Saria'], ['Meadow Gate Exit', 'Meadow Fairy Grotto']), + create_ow_region( + 'Sacred Forest Meadow', + ['Song from Saria'], + ['Meadow Gate Exit', 'Meadow Fairy Grotto', 'Meadow Song of Storms Grotto']), create_ow_region('Lost Woods Bridge', ['Gift from Saria'], ['Kokiri Forest Entrance', 'Forest Exit']), create_ow_region('Hyrule Field', ['Ocarina of Time', 'Song from Ocarina of Time'], @@ -95,7 +99,7 @@ def create_regions(world): create_ow_region( 'Gerudo Valley Far Side', ['Gerudo Valley Hammer Rocks Chest', 'GS Gerudo Valley Behind Tent', 'GS Gerudo Valley Pillar'], - ['Fortress Entrance']), + ['Fortress Entrance', 'Gerudo Valley Grotto']), create_ow_region( 'Gerudo Fortress', ['Gerudo Fortress Rooftop Chest', 'Horseback Archery 1000 Points', 'Horseback Archery 1500 Points', @@ -111,7 +115,7 @@ def create_regions(world): 'Desert Colossus', ['Colossus Freestanding PoH', 'Sheik at Colossus', 'GS Desert Colossus Bean Patch', 'GS Desert Colossus Tree', 'GS Desert Colossus Hill'], - ['Colossus Fairy', 'Spirit Temple Entrance']), + ['Colossus Fairy', 'Spirit Temple Entrance', 'Desert Colossus Grotto']), create_interior_region( 'Colossus Fairy', ['Desert Colossus Fairy Reward']), @@ -336,7 +340,8 @@ def create_regions(world): ['Goron City Leftmost Maze Chest', 'Goron City Left Maze Chest', 'Goron City Right Maze Chest', 'Goron City Pot Freestanding PoH', 'Rolling Goron as Child', 'Link the Goron', 'GS Goron City Boulder Maze', 'GS Goron City Center Platform'], - ['Goron City Exit', 'Goron City Bomb Wall', 'Darunias Chamber', 'Crater Access', 'Goron Shop']), + ['Goron City Exit', 'Goron City Bomb Wall', 'Darunias Chamber', + 'Crater Access', 'Goron Shop', 'Goron City Grotto']), create_ow_region( 'Goron City Woods Warp', None, @@ -348,8 +353,9 @@ def create_regions(world): create_ow_region('Darunias Chamber', ['Darunias Joy'], ['Darunias Chamber Exit']), create_ow_region( 'Death Mountain Crater Upper', - ['DM Crater Wall Freestanding PoH', 'GS Death Mountain Crater Crate'], - ['Crater Exit', 'Crater Hover Boots', 'Crater Scarecrow', 'Top of Crater Grotto']), + ['DM Crater Wall Freestanding PoH', 'GS Death Mountain Crater Crate', 'DMC Deku Scrub Bombs'], + ['Crater Exit', 'Crater Hover Boots', 'Crater Scarecrow', + 'Top of Crater Grotto', 'DMC Hammer Grotto']), create_ow_region( 'Death Mountain Crater Lower', None, @@ -369,11 +375,12 @@ def create_regions(world): create_dungeon_region( 'Dodongos Cavern Lobby', ['Dodongos Cavern Map Chest', 'Dodongos Cavern Compass Chest', 'GS Dodongo\'s Cavern East Side Room', - 'GS Dodongo\'s Cavern Scarecrow'], + 'GS Dodongo\'s Cavern Scarecrow', 'DC Deku Scrub Deku Sticks', 'DC Deku Scrub Deku Shield'], ['Dodongos Cavern Retreat', 'Dodongos Cavern Left Door']), create_dungeon_region( 'Dodongos Cavern Climb', - ['Dodongos Cavern Bomb Flower Platform', 'GS Dodongo\'s Cavern Vines Above Stairs'], + ['Dodongos Cavern Bomb Flower Platform', 'GS Dodongo\'s Cavern Vines Above Stairs', + 'DC Deku Scrub Deku Seeds', 'DC Deku Scrub Deku Nuts'], ['Dodongos Cavern Bridge Fall', 'Dodongos Cavern Slingshot Target']), create_dungeon_region( 'Dodongos Cavern Far Bridge', @@ -400,7 +407,7 @@ def create_regions(world): 'Zora River Shared', ['Zora River Lower Freestanding PoH', 'Zora River Upper Freestanding PoH'], ['Zora River Downstream', 'Zora River Plateau Open Grotto', 'Zora River Plateau Bombable Grotto', - 'Zora River Dive Warp']), + 'Zora River Dive Warp', 'Zora River Song of Storms Grotto']), create_ow_region( 'Zoras Domain', ['Diving Minigame', 'Zoras Domain Torch Run', 'King Zora Moves'], @@ -435,7 +442,7 @@ def create_regions(world): ['Jabu Jabus Belly Exit', 'Jabu Jabus Belly Ceiling Switch']), create_dungeon_region( 'Jabu Jabus Belly Main', - ['Boomerang Chest', 'GS Jabu Jabu Water Switch Room'], + ['Boomerang Chest', 'GS Jabu Jabu Water Switch Room', 'Jabu Deku Scrub Deku Nuts'], ['Jabu Jabus Belly Retreat', 'Jabu Jabus Belly Tentacles']), create_dungeon_region( 'Jabu Jabus Belly Depths', @@ -513,7 +520,7 @@ def create_regions(world): ['Fire Temple Highest Goron Chest', 'Fire Temple Megaton Hammer Chest']), create_dungeon_region( 'Ganons Castle Lobby', - None, + ['GC Deku Scrub Bombs', 'GC Deku Scrub Arrows', 'GC Deku Scrub Red Potion', 'GC Deku Scrub Green Potion'], ['Ganons Castle Exit', 'Ganons Castle Forest Trial', 'Ganons Castle Fire Trial', 'Ganons Castle Water Trial', 'Ganons Castle Shadow Trial', 'Ganons Castle Spirit Trial', 'Ganons Castle Light Trial', 'Ganons Castle Tower']), @@ -552,13 +559,17 @@ def create_regions(world): 'Lost Woods Generic Grotto', ['Lost Woods Generic Grotto Chest']), create_grotto_region('Deku Theater', ['Deku Theater Skull Mask', 'Deku Theater Mask of Truth']), - create_grotto_region('Lost Woods Sales Grotto', ['Deku Salesman Lost Woods Grotto']), + create_grotto_region('Lost Woods Sales Grotto', + ['LW Grotto Deku Scrub Arrows', 'LW Grotto Deku Scrub Deku Nut Upgrade']), create_grotto_region('Meadow Fairy Grotto'), + create_grotto_region('Meadow Song of Storms Grotto', + ['SFM Grotto Deku Scrub Red Potion', 'SFM Grotto Deku Scrub Green Potion']), create_grotto_region('Front of Meadow Grotto', ['Wolfos Grotto Chest']), - create_grotto_region('Lon Lon Grotto'), + create_grotto_region('Lon Lon Grotto', + ['LLR Grotto Deku Scrub Deku Nuts', 'LLR Grotto Deku Scrub Bombs', 'LLR Grotto Deku Scrub Arrows']), create_grotto_region('Remote Southern Grotto', ['Remote Southern Grotto Chest']), create_grotto_region('Field Near Lake Outside Fence Grotto', ['Field Near Lake Outside Fence Grotto Chest']), - create_grotto_region('Field Near Lake Inside Fence Grotto', ['Deku Salesman Hyrule Field Grotto']), + create_grotto_region('Field Near Lake Inside Fence Grotto', ['HF Grotto Deku Scrub Piece of Heart']), create_grotto_region('Field Valley Grotto', ['GS Hyrule Field Near Gerudo Valley']), create_grotto_region('Field West Castle Town Grotto', ['Field West Castle Town Grotto Chest']), create_grotto_region('Field Far West Castle Town Grotto'), @@ -569,10 +580,21 @@ def create_regions(world): create_grotto_region('Kakariko Back Grotto', ['Kakariko Back Grotto Chest']), create_grotto_region('Mountain Bombable Grotto'), create_grotto_region('Mountain Storms Grotto', ['Mountain Storms Grotto Chest']), + create_grotto_region('Goron City Grotto', + ['Goron Grotto Deku Scrub Deku Nuts', 'Goron Grotto Deku Scrub Bombs', 'Goron Grotto Deku Scrub Arrows']), create_grotto_region('Top of Crater Grotto', ['Top of Crater Grotto Chest']), + create_grotto_region('DMC Hammer Grotto', + ['DMC Grotto Deku Scrub Deku Nuts', 'DMC Grotto Deku Scrub Bombs', 'DMC Grotto Deku Scrub Arrows']), create_grotto_region('Zora River Plateau Open Grotto', ['Zora River Plateau Open Grotto Chest']), create_grotto_region('Zora River Plateau Bombable Grotto'), - create_grotto_region('Lake Hylia Grotto'), + create_grotto_region('Zora River Song of Storms Grotto', + ['ZR Grotto Deku Scrub Red Potion', 'ZR Grotto Deku Scrub Green Potion']), + create_grotto_region('Lake Hylia Grotto', + ['LH Grotto Deku Scrub Deku Nuts', 'LH Grotto Deku Scrub Bombs', 'LH Grotto Deku Scrub Arrows']), + create_grotto_region('Desert Colossus Grotto', + ['Desert Grotto Deku Scrub Red Potion', 'Desert Grotto Deku Scrub Green Potion']), + create_grotto_region('Gerudo Valley Grotto', + ['Valley Grotto Deku Scrub Red Potion', 'Valley Grotto Deku Scrub Green Potion']), ] world.initialize_regions() @@ -822,9 +844,6 @@ def _create_region(name, type, locations=None, exits=None): 'Target in Woods': (0xE59CDF, None, 0x60, 'NPC', 0x5B, 'the Lost Woods'), 'Deku Theater Skull Mask': (0xEC9A87, None, 0x77, 'NPC', 0x3E, 'the Lost Woods'), 'Deku Theater Mask of Truth': (0xEC9CE7, None, 0x7A, 'NPC', 0x3E, 'the Lost Woods'), - 'Deku Salesman Woods': (0xDF8073, None, 0x77, 'NPC', 0x5B, 'the Lost Woods'), - 'Deku Salesman Lost Woods Grotto': (0xDF80E7, None, 0x79, 'NPC', 0x3E, 'the Lost Woods'), - 'Deku Salesman Hyrule Field Grotto': (0xDF86AB, None, 0x3E, 'NPC', 0x3E, 'Hyrule Field'), 'Anju as Adult': (0xE1EABB, None, 0x1D, 'NPC', 0x52, 'Kakariko Village'), 'Biggoron': (0xED338F, 0xED650F, 0x57, 'NPC', 0x60, 'Death Mountain Trail'), 'Anjus Chickens': (0xE1E7A7, None, 0x0F, 'NPC', 0x52, 'Kakariko Village'), @@ -1081,4 +1100,41 @@ def _create_region(name, type, locations=None, exits=None): 'Goron Shop Item 6': (shop_address(8, 5), None, 0x35, 'Shop', 0x2E, 'Goron City'), 'Goron Shop Item 7': (shop_address(8, 6), None, 0x36, 'Shop', 0x2E, 'Goron City'), 'Goron Shop Item 8': (shop_address(8, 7), None, 0x37, 'Shop', 0x2E, 'Goron City'), + + 'DC Deku Scrub Deku Nuts': (None, None, 0x30, 'NPC', 0x01, 'Dodongo\'s Cavern'), + 'DC Deku Scrub Deku Sticks': (None, None, 0x31, 'NPC', 0x01, 'Dodongo\'s Cavern'), + 'DC Deku Scrub Deku Seeds': (None, None, 0x33, 'NPC', 0x01, 'Dodongo\'s Cavern'), + 'DC Deku Scrub Deku Shield': (None, None, 0x34, 'NPC', 0x01, 'Dodongo\'s Cavern'), + 'Jabu Deku Scrub Deku Nuts': (None, None, 0x30, 'NPC', 0x02, 'Jabu Jabu\'s Belly'), + 'GC Deku Scrub Bombs': (None, None, 0x37, 'NPC', 0x0D, 'Ganon\'s Castle'), + 'GC Deku Scrub Arrows': (None, None, 0x33, 'NPC', 0x0D, 'Ganon\'s Castle'), + 'GC Deku Scrub Red Potion': (None, None, 0x39, 'NPC', 0x0D, 'Ganon\'s Castle'), + 'GC Deku Scrub Green Potion': (None, None, 0x3A, 'NPC', 0x0D, 'Ganon\'s Castle'), + 'HF Grotto Deku Scrub Piece of Heart': (None, None, 0x3E, 'GrottoNPC', 0x01, 'Hyrule Field'), + 'ZR Grotto Deku Scrub Red Potion': (None, None, 0x39, 'GrottoNPC', 0x02, 'Zora\'s River'), + 'ZR Grotto Deku Scrub Green Potion': (None, None, 0x3A, 'GrottoNPC', 0x02, 'Zora\'s River'), + 'SFM Grotto Deku Scrub Red Potion': (None, None, 0x39, 'GrottoNPC', 0x03, 'Sacred Forest Meadow'), + 'SFM Grotto Deku Scrub Green Potion': (None, None, 0x3A, 'GrottoNPC', 0x03, 'Sacred Forest Meadow'), + 'LH Grotto Deku Scrub Deku Nuts': (None, None, 0x30, 'GrottoNPC', 0x04, 'Lake Hylia'), + 'LH Grotto Deku Scrub Bombs': (None, None, 0x37, 'GrottoNPC', 0x04, 'Lake Hylia'), + 'LH Grotto Deku Scrub Arrows': (None, None, 0x33, 'GrottoNPC', 0x04, 'Lake Hylia'), + 'Valley Grotto Deku Scrub Red Potion': (None, None, 0x39, 'GrottoNPC', 0x05, 'Gerudo Valley'), + 'Valley Grotto Deku Scrub Green Potion': (None, None, 0x3A, 'GrottoNPC', 0x05, 'Gerudo Valley'), + 'LW Deku Scrub Deku Nuts': (None, None, 0x30, 'NPC', 0x5B, 'Lost Woods'), + 'LW Deku Scrub Deku Sticks': (None, None, 0x31, 'NPC', 0x5B, 'Lost Woods'), + 'LW Deku Scrub Deku Stick Upgrade': (None, None, 0x77, 'NPC', 0x5B, 'Lost Woods'), + 'LW Grotto Deku Scrub Arrows': (None, None, 0x33, 'GrottoNPC', 0x06, 'Lost Woods'), + 'LW Grotto Deku Scrub Deku Nut Upgrade': (None, None, 0x79, 'GrottoNPC', 0x06, 'Lost Woods'), + 'Desert Grotto Deku Scrub Red Potion': (None, None, 0x39, 'GrottoNPC', 0x07, 'Desert Colossus'), + 'Desert Grotto Deku Scrub Green Potion': (None, None, 0x3A, 'GrottoNPC', 0x07, 'Desert Colossus'), + 'DMC Deku Scrub Bombs': (None, None, 0x37, 'NPC', 0x61, 'Death Mountain Crater'), + 'DMC Grotto Deku Scrub Deku Nuts': (None, None, 0x30, 'GrottoNPC', 0x08, 'Death Mountain Crater'), + 'DMC Grotto Deku Scrub Bombs': (None, None, 0x37, 'GrottoNPC', 0x08, 'Death Mountain Crater'), + 'DMC Grotto Deku Scrub Arrows': (None, None, 0x33, 'GrottoNPC', 0x08, 'Death Mountain Crater'), + 'Goron Grotto Deku Scrub Deku Nuts': (None, None, 0x30, 'GrottoNPC', 0x09, 'Goron City'), + 'Goron Grotto Deku Scrub Bombs': (None, None, 0x37, 'GrottoNPC', 0x09, 'Goron City'), + 'Goron Grotto Deku Scrub Arrows': (None, None, 0x33, 'GrottoNPC', 0x09, 'Goron City'), + 'LLR Grotto Deku Scrub Deku Nuts': (None, None, 0x30, 'GrottoNPC', 0x0A, 'Lon Lon Ranch'), + 'LLR Grotto Deku Scrub Bombs': (None, None, 0x37, 'GrottoNPC', 0x0A, 'Lon Lon Ranch'), + 'LLR Grotto Deku Scrub Arrows': (None, None, 0x33, 'GrottoNPC', 0x0A, 'Lon Lon Ranch'), } diff --git a/Rom.py b/Rom.py index fb9888ed2..f7e8eb2c1 100644 --- a/Rom.py +++ b/Rom.py @@ -104,10 +104,15 @@ def __init__(self, settings, patch=True): # extend to 64MB self.buffer.extend(bytearray([0x00] * (0x4000000 - len(self.buffer)))) + def seek_address(self, address): + self.last_address = address + def read_byte(self, address): + self.last_address = address + 1 return self.buffer[address] def read_bytes(self, address, len): + self.last_address = address + len return self.buffer[address : address + len] def read_int16(self, address): @@ -1463,6 +1468,19 @@ def write_save_table(rom): rom.write_int32(0x2DD802C, 0x03006A40) rom.write_int16s(0x2DDEA40, list(shop_objs)) + # Rebuild Deku Salescrub Item Table + scrub_items = [0x30, 0x31, 0x3E, 0x33, 0x34, 0x37, 0x38, 0x39, 0x3A, 0x77, 0x79] + rom.seek_address(0xDF8684) + for scrub_item in scrub_items: + rom.write_int16(None, 10) # Price + rom.write_int16(None, 1) # Count + rom.write_int32(None, scrub_item) # Item + rom.write_int32(None, 0x80A74FF8) # Can_Buy_Func + rom.write_int32(None, 0x80A75354) # Buy_Func + + # update actor IDs + set_deku_salesman_data(rom) + #Fix item chest animations chestAnimations = { 0x3D: 0xED, #0x13 #Heart Container @@ -1741,7 +1759,9 @@ def get_override_entry(location): elif location.type == 'GS Token': return [scene, player_id | 0x03, default, item_id] elif location.type == 'Shop' and location.item.type != 'Shop': - return [scene, player_id | 0x00, default, item_id] + return [scene, player_id | 0x00, default, item_id] + elif location.type == 'GrottoNPC' and location.item.type != 'Shop': + return [scene, player_id | 0x04, default, item_id] else: return [] @@ -1781,7 +1801,8 @@ def get_override_entry(location): ] -def room_get_chests(rom, room_data, scene, chests, alternate=None): +def room_get_actors(rom, actor_func, room_data, scene, alternate=None): + actors = {} room_start = alternate or room_data command = 0 while command != 0x14: # 0x14 = end header @@ -1790,22 +1811,23 @@ def room_get_chests(rom, room_data, scene, chests, alternate=None): actor_count = rom.read_byte(room_data + 1) actor_list = room_start + (rom.read_int32(room_data + 4) & 0x00FFFFFF) for _ in range(0, actor_count): - actor_id = rom.read_int16(actor_list); - actor_var = rom.read_int16(actor_list + 14) - if actor_id == 0x000A: #Chest Actor - chests[actor_list + 14] = [scene, actor_var & 0x001F] + entry = actor_func(rom, actor_list, scene) + if entry: + actors[actor_list] = entry actor_list = actor_list + 16 if command == 0x18 and scene >= 81 and scene <= 99: # Alternate header list header_list = room_start + (rom.read_int32(room_data + 4) & 0x00FFFFFF) for alt_id in range(0,2): header_data = room_start + (rom.read_int32(header_list + 4) & 0x00FFFFFF) if header_data != 0 and not alternate: - room_get_chests(rom, header_data, scene, chests, room_start) + actors.update(room_get_actors(rom, actor_func, header_data, scene, room_start)) header_list = header_list + 4 room_data = room_data + 8 + return actors -def scene_get_chests(rom, scene_data, scene, chests, alternate=None, processed_rooms=[]): +def scene_get_actors(rom, actor_func, scene_data, scene, alternate=None, processed_rooms=[]): + actors = {} scene_start = alternate or scene_data command = 0 while command != 0x14: # 0x14 = end header @@ -1817,7 +1839,7 @@ def scene_get_chests(rom, scene_data, scene, chests, alternate=None, processed_r room_data = rom.read_int32(room_list); if not room_data in processed_rooms: - room_get_chests(rom, room_data, scene, chests) + actors.update(room_get_actors(rom, actor_func, room_data, scene)) processed_rooms.append(room_data) room_list = room_list + 8 if command == 0x18 and scene >= 81 and scene <= 99: # Alternate header list @@ -1825,20 +1847,19 @@ def scene_get_chests(rom, scene_data, scene, chests, alternate=None, processed_r for alt_id in range(0,2): header_data = scene_start + (rom.read_int32(header_list + 4) & 0x00FFFFFF) if header_data != 0 and not alternate: - scene_get_chests(rom, header_data, scene, chests, scene_start, processed_rooms) + actors.update(scene_get_actors(rom, actor_func, header_data, scene, scene_start, processed_rooms)) header_list = header_list + 4 scene_data = scene_data + 8 + return actors - -def get_chest_list(rom): - chests = {} +def get_actor_list(rom, actor_func): + actors = {} scene_table = 0x00B71440 for scene in range(0x00, 0x65): scene_data = rom.read_int32(scene_table + (scene * 0x14)); - scene_get_chests(rom, scene_data, scene, chests) - return chests - + actors.update(scene_get_actors(rom, actor_func, scene_data, scene)) + return actors def get_override_itemid(override_table, scene, type, flags): for entry in override_table: @@ -1847,11 +1868,17 @@ def get_override_itemid(override_table, scene, type, flags): return None def update_chest_sizes(rom, override_table): - chest_list = get_chest_list(rom) - for address, [scene, flags] in chest_list.items(): + def get_chest(rom, actor, scene): + actor_id = rom.read_int16(actor); + if actor_id == 0x000A: #Chest Actor + actor_var = rom.read_int16(actor + 14) + return [scene, actor_var & 0x001F] + + chest_list = get_actor_list(rom, get_chest) + for actor, [scene, flags] in chest_list.items(): item_id = get_override_itemid(override_table, scene, 1, flags) - if None in [address, scene, flags, item_id]: + if None in [actor, scene, flags, item_id]: continue itemType = 0 # Item animation @@ -1864,12 +1891,33 @@ def update_chest_sizes(rom, override_table): itemType = 1 # Long animation, big chest # Don't use boss chests - default = rom.read_int16(address) + default = rom.read_int16(actor + 0x14) chestType = default & 0xF000 newChestType = chestTypeMap[chestType][itemType] default = (default & 0x0FFF) | newChestType - rom.write_int16(address, default) - + rom.write_int16(actor + 0x14, default) + +def set_deku_salesman_data(rom): + def set_deku_salesman_and_grotto_id(rom, actor, scene): + actor_id = rom.read_int16(actor); + if actor_id == 0x009B: #Grotto + actor_zrot = rom.read_int16(actor + 12) + actor_var = rom.read_int16(actor + 14); + grotto_scene = actor_var >> 12 + grotto_entrance = actor_zrot & 0x000F + grotto_id = actor_var & 0x00FF + + if grotto_scene == 0 and grotto_entrance in [2, 4, 7, 10]: + grotto_scenes.add(scene) + rom.write_byte(actor + 15, len(grotto_scenes)) + elif actor_id == 0x0195: #Salesman + actor_var = rom.read_int16(actor + 14) + if actor_var == 6: + rom.write_int16(actor + 14, 0x0003) + + grotto_scenes = set() + + get_actor_list(rom, set_deku_salesman_and_grotto_id) def place_shop_items(rom, shop_items, messages, locations, init_shop_id=False): if init_shop_id: diff --git a/Rules.py b/Rules.py index 77a7dd4d1..b78f8cab3 100644 --- a/Rules.py +++ b/Rules.py @@ -280,11 +280,21 @@ def global_rules(world): set_rule(world.get_location('GS Desert Colossus Bean Patch'), lambda state: state.has_bottle() and state.can_play('Requiem of Spirit') and state.can_child_attack()) set_rule(world.get_location('GS Desert Colossus Tree'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.nighttime()) set_rule(world.get_location('GS Desert Colossus Hill'), lambda state: ((state.has('Magic Bean') and state.can_play('Requiem of Spirit')) or state.has('Progressive Hookshot', 2)) and state.is_adult() and state.nighttime()) - set_rule(world.get_location('Deku Salesman Woods'), lambda state: state.can_stun_deku()) - set_rule(world.get_location('Deku Salesman Lost Woods Grotto'), lambda state: state.can_stun_deku()) - set_rule(world.get_location('Deku Salesman Hyrule Field Grotto'), lambda state: state.can_stun_deku()) set_rule(world.get_location('GS Death Mountain Crater Crate'), lambda state: state.can_child_attack()) set_rule(world.get_location('GS Zora River Tree'), lambda state: state.can_child_attack()) + set_rule(world.get_location('HF Grotto Deku Scrub Piece of Heart'), lambda state: state.can_stun_deku()) + set_rule(world.get_entrance('Zora River Song of Storms Grotto'), lambda state: state.can_play('Song of Storms') and state.can_stun_deku()) + set_rule(world.get_entrance('Meadow Song of Storms Grotto'), lambda state: state.can_play('Song of Storms') and ((state.can_child_attack() or state.has_nuts() or state.has('Buy Deku Shield')) or (state.is_adult() and (state.can_play('Minuet of Forest') or state.can_play('Sarias Song'))))) + set_rule(world.get_entrance('Lake Hylia Grotto'), lambda state: state.is_adult()) + set_rule(world.get_location('LW Deku Scrub Deku Nuts'), lambda state: state.can_stun_deku()) + set_rule(world.get_location('LW Deku Scrub Deku Sticks'), lambda state: state.can_stun_deku()) + set_rule(world.get_location('LW Deku Scrub Deku Stick Upgrade'), lambda state: state.can_stun_deku()) + set_rule(world.get_entrance('Desert Colossus Grotto'), lambda state: state.has('Hammer') and state.is_adult()) + set_rule(world.get_location('DMC Deku Scrub Bombs'), lambda state: state.can_child_attack() or state.has_nuts() or state.has('Buy Deku Shield')) + set_rule(world.get_entrance('DMC Hammer Grotto'), lambda state: state.has('Hammer') and state.is_adult()) + set_rule(world.get_entrance('Goron City Grotto'), lambda state: state.is_adult() and state.has('Progressive Hookshot', 2) and (state.can_play('Song of Time') or (world.difficulty != 'ohko' and state.has_GoronTunic()))) + set_rule(world.get_entrance('Lon Lon Grotto'), lambda state: state.can_child_attack() or state.has_nuts() or state.has('Buy Deku Shield')) + set_rule(world.get_entrance('Gerudo Valley Grotto'), lambda state: state.can_play('Song of Storms')) for location in world.get_locations(): @@ -334,8 +344,12 @@ def dung_rules_dc0(world): set_rule(world.get_entrance('Dodongos Cavern Lobby'), lambda state: state.can_blast_or_smash() or state.has('Progressive Strength Upgrade')) set_rule(world.get_entrance('Dodongos Cavern Left Door'), lambda state: (state.is_adult() or ((state.has_sticks() or (state.has('Dins Fire') and state.has('Magic Meter'))) and (state.has_slingshot() or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword'))) and (state.has_explosives() or state.has('Progressive Strength Upgrade') or (state.has('Dins Fire') and state.has('Magic Meter')) or (state.has_bow() and state.is_adult())))) set_rule(world.get_location('Dodongos Cavern Compass Chest'), lambda state: (state.is_adult() or ((state.has_sticks() or (state.has('Dins Fire') and state.has('Magic Meter'))) and (state.has_slingshot() or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword'))))) + set_rule(world.get_location('DC Deku Scrub Deku Sticks'), lambda state: (state.is_adult() or (state.has_slingshot() or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword')))) + set_rule(world.get_location('DC Deku Scrub Deku Shield'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Dodongos Cavern Slingshot Target'), lambda state: state.has_slingshot() or ((state.has_bow() or state.has('Hover Boots') or state.has('Progressive Hookshot', 2) or world.logic_dc_jump) and state.is_adult())) + set_rule(world.get_location('DC Deku Scrub Deku Nuts'), lambda state: state.can_blast_or_smash()) + set_rule(world.get_location('DC Deku Scrub Deku Seeds'), lambda state: state.can_blast_or_smash()) set_rule(world.get_location('Dodongos Cavern End of Bridge Chest'), lambda state: state.has_explosives() or ((state.has_bow() or state.has('Hover Boots') or state.has('Progressive Hookshot', 2) or world.logic_dc_jump) and state.is_adult() and state.has('Hammer'))) set_rule(world.get_entrance('Dodongos Cavern Bomb Drop'), lambda state: state.has_explosives()) diff --git a/data/base2current.json b/data/base2current.json index 23e3ccea9..d5fae4a41 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -1 +1 @@ -[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 204]}, {"11135032": [8, 16, 13, 146]}, {"11311804": [12, 16, 11, 213]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 198, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 200]}, {"11427312": [12, 16, 13, 113]}, {"11427320": [12, 16, 11, 208]}, {"11427332": [0, 0]}, {"11427335": [0]}, {"11431496": [12, 16, 11, 203, 1, 15, 192, 33]}, {"11559936": [130]}, {"11559938": [14, 222]}, {"11559948": [49, 248, 0, 2]}, {"11562028": [12, 16, 13, 163]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 129]}, {"11882076": [12, 16, 13, 94]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 167, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 174, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 181, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 160, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 148]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 26]}, {"12427480": [12, 16, 10, 114]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 118]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 12, 107, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 160]}, {"12491480": [12, 16, 10, 169]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"12584172": [8, 16, 12, 16]}, {"12584575": [100]}, {"12589216": [12, 16, 12, 37]}, {"13027240": [12, 16, 12, 53]}, {"13027616": [12, 16, 12, 53]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 155]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 188]}, {"13709176": [52, 15]}, {"13709179": [0]}, {"14109028": [16, 0]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 128, 73, 14, 222]}, {"14149508": [52]}, {"14149510": [0, 1, 2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 216]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 232]}, {"14624335": [118]}, {"14646448": [12, 16, 12, 85]}, {"14720872": [128]}, {"14720874": [14, 222]}, {"14720884": [49, 248, 0, 4]}, {"14720944": [12, 16, 11, 224]}, {"14848904": [8, 16, 11, 255]}, {"14852164": [12, 16, 12, 8]}, {"14872723": [52]}, {"15327704": [52, 9, 64, 0]}, {"15327728": [52]}, {"15327730": [91, 8]}, {"15327744": [52]}, {"15327746": [0, 10]}, {"15327757": [169]}, {"15448156": [12, 16, 12, 64]}, {"15448165": [64]}, {"15448167": [18]}, {"15448172": [16, 0, 0, 20]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 55, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 55, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 236, 83, 65, 35, 248]}, {"55058597": [209, 255, 255, 128, 64, 38, 60, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 38, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 38, 108, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 38, 136, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 252, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 244, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 244, 128, 64, 38, 188, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 244, 128, 64, 38, 188, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 244, 128, 64, 38, 188, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 244, 128, 64, 38, 216, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 244, 128, 64, 38, 216, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 244, 128, 64, 38, 216, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 244, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 244, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 140, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 172, 128, 64, 38, 164, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 204, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 39, 244, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 60, 128, 64, 40, 32, 83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 4, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 6, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 3, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 8, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 5, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 7, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 76, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [5, 52, 2]}, {"55060003": [69, 52, 9]}, {"55060007": [16, 17, 9]}, {"55060011": [2, 52, 2]}, {"55060015": [70, 52, 162]}, {"55060020": [3, 224]}, {"55060023": [8]}, {"55060028": [144, 136]}, {"55060031": [162, 53, 8]}, {"55060035": [48, 160, 136]}, {"55060039": [162, 3, 224]}, {"55060043": [8]}, {"55060048": [144, 136]}, {"55060051": [162, 49, 8]}, {"55060055": [6, 17]}, {"55060059": [2, 52, 2]}, {"55060063": [55, 52, 2]}, {"55060067": [56, 3, 224]}, {"55060071": [8]}, {"55060076": [144, 136]}, {"55060079": [161, 49, 8]}, {"55060083": [32, 17]}, {"55060087": [2, 52, 2]}, {"55060091": [121, 52, 2]}, {"55060095": [122, 3, 224]}, {"55060099": [8]}, {"55060104": [144, 136]}, {"55060107": [161, 49, 8]}, {"55060111": [4, 17]}, {"55060115": [2, 52, 2]}, {"55060119": [119, 52, 2]}, {"55060123": [120, 3, 224]}, {"55060127": [8]}, {"55060132": [144, 136]}, {"55060135": [50, 17]}, {"55060139": [2, 52, 2]}, {"55060143": [192, 52, 2]}, {"55060147": [193, 3, 224]}, {"55060151": [8]}, {"55060156": [144, 136]}, {"55060159": [163, 49, 8]}, {"55060163": [3, 17]}, {"55060167": [2, 52, 2]}, {"55060171": [77, 52, 162]}, {"55060176": [3, 224]}, {"55060179": [8]}, {"55060184": [144, 136]}, {"55060187": [163, 49, 8]}, {"55060191": [24, 17]}, {"55060195": [2, 52, 2]}, {"55060199": [77, 52, 162]}, {"55060204": [3, 224]}, {"55060207": [8]}, {"55060212": [3, 224]}, {"55060215": [8]}, {"55060220": [52, 8]}, {"55060223": [1, 160, 136]}, {"55060227": [62, 3, 224]}, {"55060231": [8]}, {"55060236": [36, 136]}, {"55060239": [134, 36, 9, 255, 255, 37, 41]}, {"55060247": [1, 52, 1]}, {"55060251": [3]}, {"55060253": [41, 8, 42, 20, 32]}, {"55060259": [7]}, {"55060264": [1, 9, 80, 33, 145, 75]}, {"55060272": [52, 1]}, {"55060275": [255, 21, 97, 255, 247]}, {"55060284": [161, 69]}, {"55060288": [3, 224]}, {"55060291": [8]}, {"55060296": [36, 136]}, {"55060299": [168, 1, 6, 64, 33, 145, 9]}, {"55060308": [1, 37, 72, 37, 161, 9]}, {"55060316": [3, 224]}, {"55060319": [8]}, {"55060324": [36, 136]}, {"55060327": [188, 1, 5, 64, 33, 129, 9]}, {"55060336": [5, 33]}, {"55060339": [2]}, {"55060344": [52, 9]}, {"55060348": [37, 41]}, {"55060351": [1, 161, 9]}, {"55060356": [3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [61, 52, 8]}, {"55060375": [20, 160, 136]}, {"55060379": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [1, 160, 136]}, {"55060403": [50, 160, 136]}, {"55060407": [58, 52, 8]}, {"55060411": [48, 164, 136, 19, 244, 160, 136]}, {"55060419": [51, 3, 224]}, {"55060423": [8]}, {"55060428": [52, 8]}, {"55060431": [2, 160, 136]}, {"55060435": [50, 52, 8]}, {"55060439": [1, 160, 136]}, {"55060443": [58, 160, 136]}, {"55060447": [60, 52, 8]}, {"55060451": [96, 164, 136, 19, 244, 160, 136]}, {"55060459": [51, 3, 224]}, {"55060463": [8]}, {"55060468": [144, 136]}, {"55060471": [124, 52, 1]}, {"55060475": [255, 17, 1]}, {"55060479": [6, 52, 2]}, {"55060483": [107, 144, 136]}, {"55060487": [148, 45, 8]}, {"55060491": [6, 17]}, {"55060495": [2, 52, 2]}, {"55060499": [106, 52, 2]}, {"55060503": [3, 3, 224]}, {"55060507": [8]}, {"55060512": [144, 136]}, {"55060515": [123, 52, 1]}, {"55060519": [255, 17, 1]}, {"55060523": [2, 52, 162]}, {"55060528": [52, 2]}, {"55060531": [12, 3, 224]}, {"55060535": [8]}, {"55060540": [52, 8]}, {"55060543": [7, 160, 136]}, {"55060547": [123, 3, 224]}, {"55060551": [8]}, {"55060556": [52, 8]}, {"55060559": [1]}, {"55060561": [168, 64, 4, 140, 137]}, {"55060567": [164, 1, 40, 72, 37, 172, 137]}, {"55060575": [164, 3, 224]}, {"55060579": [8]}, {"55060584": [48, 132]}, {"55060587": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060599": [140, 16, 129]}, {"55060603": [22, 145, 2]}, {"55060607": [117, 52, 1]}, {"55060611": [141, 16, 129]}, {"55060615": [19, 145, 2]}, {"55060619": [117, 16, 128]}, {"55060623": [17, 145, 2]}, {"55060627": [116, 52, 1]}, {"55060631": [138, 16, 129]}, {"55060635": [14, 145, 2]}, {"55060639": [116, 52, 1]}, {"55060643": [139, 16, 129]}, {"55060647": [11, 145, 2]}, {"55060651": [116, 52, 1]}, {"55060655": [88, 16, 129]}, {"55060659": [8, 52, 2]}, {"55060664": [52, 1]}, {"55060667": [120, 16, 129]}, {"55060671": [5, 52, 2]}, {"55060676": [52, 1]}, {"55060679": [121, 16, 129]}, {"55060683": [2, 52, 2]}, {"55060688": [52, 2]}, {"55060691": [255, 3, 224]}, {"55060695": [8]}, {"55060700": [39, 189, 255, 224, 175, 191]}, {"55060707": [16, 175, 176]}, {"55060711": [20, 12, 16, 11, 19]}, {"55060720": [4, 65]}, {"55060723": [2]}, {"55060728": [52, 2]}, {"55060731": [91]}, {"55060733": [64, 32, 33, 12, 16, 11, 122]}, {"55060744": [16, 96]}, {"55060747": [22, 175, 163]}, {"55060751": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060760": [133, 9]}, {"55060763": [2, 17, 32]}, {"55060767": [3, 52, 10]}, {"55060771": [1, 16]}, {"55060775": [12, 165, 10]}, {"55060780": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060791": [6, 144, 102]}, {"55060795": [7, 140, 105]}, {"55060799": [8, 1, 32, 248, 9]}, {"55060808": [143, 163]}, {"55060811": [28, 144, 101]}, {"55060815": [1, 12, 1, 191, 115, 2, 32, 32, 33, 143, 163]}, {"55060827": [28, 144, 101]}, {"55060831": [3, 16]}, {"55060835": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060847": [6]}, {"55060849": [74]}, {"55060851": [24]}, {"55060854": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060864": [60, 8, 128, 64, 37, 8, 32]}, {"55060872": [133, 9]}, {"55060875": [2, 17, 32]}, {"55060879": [3, 52, 10]}, {"55060883": [1, 165, 10]}, {"55060888": [52, 5]}, {"55060891": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060903": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060914": [48, 33, 143, 191]}, {"55060919": [16, 143, 176]}, {"55060923": [20, 39, 189]}, {"55060927": [32, 3, 224]}, {"55060931": [8]}, {"55060936": [143, 166]}, {"55060939": [48, 132, 197]}, {"55060943": [4, 8, 16, 10, 122]}, {"55060952": [143, 185]}, {"55060955": [44, 135, 37]}, {"55060959": [4, 8, 16, 10, 122]}, {"55060968": [60, 10, 128, 64, 37, 74, 32, 8, 141, 75]}, {"55060979": [12, 17, 96]}, {"55060983": [2]}, {"55060988": [149, 69]}, {"55060991": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55061004": [60, 9, 128, 64, 37, 41, 32, 24, 129, 42]}, {"55061015": [3, 5, 64]}, {"55061019": [11, 1, 42, 72, 32, 129, 40]}, {"55061028": [52, 10]}, {"55061031": [127, 21, 10]}, {"55061035": [6]}, {"55061040": [60, 10, 128, 18, 37, 74, 165, 208, 133, 72]}, {"55061051": [144, 33, 8]}, {"55061055": [1, 165, 72]}, {"55061059": [144, 161, 32]}, {"55061064": [3, 224]}, {"55061067": [8]}, {"55061072": [60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061083": [12, 17, 32]}, {"55061087": [2]}, {"55061092": [129, 3]}, {"55061095": [2]}, {"55061097": [3, 15, 195]}, {"55061101": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061115": [8]}, {"55061120": [144, 69]}, {"55061123": [3, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061135": [12, 17, 32]}, {"55061139": [2]}, {"55061144": [145, 5]}, {"55061147": [3, 3, 224]}, {"55061151": [8]}, {"55061156": [143, 162]}, {"55061159": [36, 144, 69]}, {"55061164": [60, 8, 128, 64, 37, 8, 32]}, {"55061172": [133, 9]}, {"55061175": [2, 17, 32]}, {"55061179": [4, 52, 10]}, {"55061183": [1, 165, 10]}, {"55061188": [16]}, {"55061191": [24, 52, 5]}, {"55061195": [65, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061207": [12, 17, 32]}, {"55061211": [19]}, {"55061216": [145, 5]}, {"55061219": [1, 175, 164]}, {"55061224": [175, 165]}, {"55061227": [4, 175, 166]}, {"55061231": [8, 39, 189, 255, 232, 175, 191]}, {"55061239": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061251": [6, 145, 6]}, {"55061255": [7, 141, 9]}, {"55061259": [8, 1, 32, 248, 9]}, {"55061268": [143, 191]}, {"55061271": [16, 39, 189]}, {"55061275": [24, 143, 164]}, {"55061280": [143, 165]}, {"55061283": [4, 143, 166]}, {"55061287": [8, 3, 224]}, {"55061291": [8]}, {"55061296": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061307": [16, 175, 163]}, {"55061311": [20, 175, 191]}, {"55061315": [24, 12, 16, 10, 217]}, {"55061324": [143, 162]}, {"55061327": [16, 143, 163]}, {"55061331": [20, 143, 191]}, {"55061335": [24, 39, 189]}, {"55061339": [32, 3, 224]}, {"55061343": [8]}, {"55061348": [39, 189, 255, 232, 175, 191]}, {"55061355": [16, 60, 8, 128, 64, 37, 8, 32, 8, 173]}, {"55061368": [173]}, {"55061371": [4, 173]}, {"55061375": [8, 173]}, {"55061379": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061395": [42]}, {"55061401": [9, 15, 195, 1, 33, 32, 38]}, {"55061409": [129, 32, 35, 141, 5, 4, 40, 12, 16, 11, 19]}, {"55061424": [4, 64]}, {"55061427": [34]}, {"55061432": [52, 68]}, {"55061436": [12, 16, 11, 122]}, {"55061444": [16, 96]}, {"55061447": [12]}, {"55061452": [60, 8, 128, 64, 37, 8, 32, 8, 140, 105]}, {"55061464": [173, 9]}, {"55061468": [140, 105]}, {"55061471": [4, 173, 9]}, {"55061475": [4, 140, 105]}, {"55061479": [8, 173, 9]}, {"55061483": [8, 52, 9]}, {"55061487": [1, 173, 9]}, {"55061491": [12, 144, 98]}, {"55061496": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061512": [52, 1]}, {"55061515": [10, 21, 65]}, {"55061519": [6]}, {"55061524": [149, 42]}, {"55061527": [28, 49, 74, 240, 31]}, {"55061533": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061543": [28, 129, 9, 4, 36, 5, 33]}, {"55061551": [2]}, {"55061557": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061567": [16, 39, 189]}, {"55061571": [24, 3, 224]}, {"55061575": [8]}, {"55061580": [39, 189, 255, 232, 175, 191]}, {"55061587": [16, 12, 16, 11, 33]}, {"55061596": [36, 1, 255, 255, 16, 65]}, {"55061603": [4]}, {"55061608": [52, 68]}, {"55061612": [12, 16, 11, 85]}, {"55061620": [143, 191]}, {"55061623": [16, 39, 189]}, {"55061627": [24, 3, 224]}, {"55061631": [8]}, {"55061636": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061647": [164, 52, 8]}, {"55061652": [52, 137]}, {"55061656": [148, 170]}, {"55061660": [52, 1, 1, 156, 21, 65]}, {"55061667": [8]}, {"55061672": [52, 8]}, {"55061675": [3, 148, 171]}, {"55061679": [28, 49, 105]}, {"55061683": [255, 49, 98, 31]}, {"55061689": [2, 18, 2, 16]}, {"55061695": [31]}, {"55061700": [52, 1]}, {"55061703": [10, 21, 65]}, {"55061707": [14]}, {"55061712": [148, 171]}, {"55061715": [28, 52, 1]}, {"55061719": [16, 20, 65]}, {"55061723": [8]}, {"55061728": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061739": [4]}, {"55061744": [36, 2, 255, 255, 16]}, {"55061751": [21]}, {"55061756": [52, 8]}, {"55061759": [1, 49, 105]}, {"55061763": [31, 52, 1]}, {"55061767": [21, 21, 65]}, {"55061771": [12]}, {"55061776": [52, 1]}, {"55061779": [62, 16, 129]}, {"55061783": [7]}, {"55061788": [52, 1]}, {"55061791": [66, 16, 129]}, {"55061795": [4]}, {"55061800": [36, 2, 255, 255, 16]}, {"55061807": [7]}, {"55061812": [52, 8]}, {"55061815": [2, 144, 169, 1, 65]}, {"55061821": [2, 18]}, {"55061825": [72, 16, 37]}, {"55061829": [2, 18]}, {"55061833": [73, 16, 37, 3, 224]}, {"55061839": [8]}, {"55061844": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061856": [129, 9]}, {"55061860": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061883": [4, 141, 9]}, {"55061888": [17, 32]}, {"55061891": [23]}, {"55061897": [9, 82, 2, 49, 75, 248]}, {"55061905": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061928": [49, 34]}, {"55061931": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061952": [60, 12, 128, 64, 37, 140, 28]}, {"55061960": [129, 140]}, {"55061964": [17, 108]}, {"55061967": [4, 165, 32]}, {"55061971": [2, 161, 43]}, {"55061975": [2, 161, 34]}, {"55061979": [3, 173, 36]}, {"55061983": [4, 3, 224]}, {"55061987": [8]}, {"55061992": [39, 189, 255, 224, 175, 176]}, {"55061999": [16, 175, 177]}, {"55062003": [20, 175, 191]}, {"55062007": [24, 52, 130]}, {"55062012": [52, 80]}, {"55062016": [38, 8, 255, 128, 5]}, {"55062023": [18]}, {"55062028": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55062039": [16, 1, 9]}, {"55062043": [24]}, {"55062046": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55062064": [142, 40]}, {"55062067": [12, 1]}, {"55062070": [248, 9]}, {"55062076": [20, 80, 255, 239]}, {"55062084": [54, 35]}, {"55062088": [16]}, {"55062091": [2]}, {"55062096": [52, 3]}, {"55062100": [143, 176]}, {"55062103": [16, 143, 177]}, {"55062107": [20, 143, 191]}, {"55062111": [24, 39, 189]}, {"55062115": [32, 3, 224]}, {"55062119": [8]}, {"55062124": [140, 136, 29, 44, 52, 9]}, {"55062131": [1]}, {"55062133": [9, 78]}, {"55062136": [1, 9, 16, 36, 16, 64]}, {"55062143": [36]}, {"55062148": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062163": [164, 52, 1]}, {"55062167": [61, 17, 129]}, {"55062171": [10]}, {"55062177": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062187": [25]}, {"55062192": [52, 13]}, {"55062195": [1, 161, 141, 29, 40, 37, 74]}, {"55062203": [3, 16]}, {"55062207": [9]}, {"55062212": [52, 12]}, {"55062215": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062231": [14]}, {"55062236": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062272": [60, 9, 128, 64, 37, 41, 32, 24, 161, 40]}, {"55062284": [52, 2]}, {"55062288": [3, 224]}, {"55062291": [8]}, {"55062296": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062308": [16]}, {"55062311": [34]}, {"55062316": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062328": [16]}, {"55062331": [29]}, {"55062336": [52, 2]}, {"55062339": [255, 32, 232, 255, 166, 33, 8]}, {"55062347": [97, 16]}, {"55062351": [24]}, {"55062356": [52, 8]}, {"55062359": [100, 16]}, {"55062363": [21]}, {"55062368": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062383": [1, 160, 40, 14, 222, 52, 8]}, {"55062391": [104, 16]}, {"55062395": [13]}, {"55062400": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062415": [4, 160, 40, 14, 222, 52, 8]}, {"55062423": [106, 16]}, {"55062427": [5]}, {"55062432": [52, 5]}, {"55062435": [3, 52, 8]}, {"55062439": [107, 16]}, {"55062443": [1]}, {"55062448": [60, 9, 128, 64, 37, 41, 32, 24, 60, 10, 128, 64, 37, 74, 32, 27, 129, 44]}, {"55062468": [17, 136]}, {"55062471": [11, 33, 41]}, {"55062475": [1, 21, 42, 255, 252]}, {"55062484": [60, 9, 128, 64, 37, 41, 32, 23, 33, 41]}, {"55062495": [1, 17, 42]}, {"55062499": [4, 129, 44]}, {"55062504": [21, 128, 255, 252]}, {"55062512": [161, 40]}, {"55062516": [3, 224]}, {"55062519": [8]}, {"55062525": [96, 120, 33, 129, 236, 14, 223, 49, 142]}, {"55062535": [128, 17, 192]}, {"55062539": [3, 52, 3]}, {"55062543": [5, 3, 224]}, {"55062547": [8, 52, 2]}, {"55062551": [2, 3, 224]}, {"55062555": [8]}, {"55062557": [96, 16, 33, 133, 194]}, {"55062563": [164, 60, 8, 128, 18, 37, 8, 165, 208, 129, 9, 14, 223, 53, 41]}, {"55062579": [128, 161, 9, 14, 223, 3, 224]}, {"55062587": [8]}, {"55062592": [132, 142]}, {"55062595": [28, 33, 205, 255, 206, 5, 160]}, {"55062603": [16, 52, 2]}, {"55062608": [49, 169]}, {"55062611": [7, 52, 10]}, {"55062615": [1, 1, 42, 80, 4]}, {"55062621": [13, 72, 194, 60, 12, 128, 18, 37, 140, 165, 208, 1, 137, 96, 32, 129, 139, 5, 180, 1, 106, 88, 36, 52, 2]}, {"55062648": [17, 96]}, {"55062651": [4]}, {"55062656": [52, 13]}, {"55062659": [38, 164, 141]}, {"55062663": [28, 52, 2]}, {"55062667": [1, 3, 224]}, {"55062671": [8]}, {"55062676": [132, 174]}, {"55062679": [28, 33, 205, 255, 206, 5, 160]}, {"55062687": [11, 52, 2]}, {"55062692": [49, 169]}, {"55062695": [7, 52, 10]}, {"55062699": [1, 1, 42, 80, 4]}, {"55062705": [13, 72, 194, 60, 12, 128, 18, 37, 140, 165, 208, 1, 137, 96, 32, 129, 139, 5, 180, 1, 106, 88, 37, 161, 139, 5, 180, 3, 224]}, {"55062735": [8]}, {"55062740": [39, 189, 255, 240, 175, 191]}, {"55062747": [8, 40, 129]}, {"55062751": [50, 16, 32]}, {"55062755": [3]}, {"55062757": [128, 16, 33, 3, 32, 248, 9]}, {"55062768": [143, 191]}, {"55062771": [8, 39, 189]}, {"55062775": [16, 3, 224]}, {"55062779": [8]}, {"55062784": [60, 8, 128, 29, 37, 8, 132, 160, 60, 9, 128, 18, 37, 41, 165, 208, 133, 10]}, {"55062803": [164, 52, 1]}, {"55062807": [62, 21, 65]}, {"55062811": [2, 129, 43, 19, 151, 33, 106]}, {"55062819": [45, 134, 11]}, {"55062823": [28, 33, 107]}, {"55062827": [1, 52, 12]}, {"55062831": [1, 1, 108, 96, 4, 52, 1]}, {"55062839": [28, 1, 65]}, {"55062843": [24]}, {"55062846": [104, 18, 1, 45, 112, 32, 141, 207]}, {"55062855": [16, 1, 143, 16, 36, 3, 224]}, {"55062863": [8]}, {"55062868": [60, 8, 128, 29, 37, 8, 132, 160, 60, 9, 128, 18, 37, 41, 165, 208, 133, 10]}, {"55062887": [164, 52, 1]}, {"55062891": [62, 21, 65]}, {"55062895": [2, 129, 43, 19, 151, 33, 106]}, {"55062903": [45, 132, 139]}, {"55062907": [28, 33, 107]}, {"55062911": [1, 52, 12]}, {"55062915": [1, 1, 108, 96, 4, 52, 1]}, {"55062923": [28, 1, 65]}, {"55062927": [24]}, {"55062930": [104, 18, 1, 45, 112, 32, 141, 207]}, {"55062939": [16, 1, 143, 120, 37, 173, 207]}, {"55062947": [16, 3, 224]}, {"55062951": [8]}, {"55062956": [175, 164]}, {"55062959": [104, 175, 165]}, {"55062963": [108, 175, 166]}, {"55062967": [112, 175, 167]}, {"55062971": [116, 39, 189, 255, 232, 175, 163]}, {"55062979": [16, 175, 191]}, {"55062983": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062999": [32, 21]}, {"55063003": [31]}, {"55063008": [60, 9, 128, 64, 37, 41, 32, 27, 52, 10]}, {"55063019": [255, 161, 42]}, {"55063024": [60, 9, 128, 64, 37, 41, 32, 24, 36, 10, 255, 255, 52, 12]}, {"55063039": [3, 33, 74]}, {"55063043": [1, 17, 76]}, {"55063047": [20, 1, 42, 88, 32, 129, 104]}, {"55063056": [17]}, {"55063058": [255, 251]}, {"55063064": [60, 9, 128, 64, 37, 41, 32, 27, 161, 42]}, {"55063076": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55063087": [1, 165, 42]}, {"55063092": [60, 9, 128, 65, 52, 10]}, {"55063099": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 217]}, {"55063128": [143, 163]}, {"55063131": [16, 143, 191]}, {"55063135": [20, 39, 189]}, {"55063139": [24, 143, 164]}, {"55063143": [104, 143, 165]}, {"55063147": [108, 143, 166]}, {"55063151": [112, 143, 167]}, {"55063155": [116, 132, 110, 19, 196, 3, 224]}, {"55063163": [8]}, {"55063168": [147, 25]}, {"55063171": [116, 52, 1]}, {"55063175": [255, 23, 33]}, {"55063179": [2]}, {"55063184": [52, 25]}, {"55063187": [44, 3, 224]}, {"55063191": [8, 167, 185]}, {"55063195": [154, 147, 44]}, {"55063199": [116, 52, 1]}, {"55063203": [255, 21, 129]}, {"55063207": [2]}, {"55063212": [52, 12]}, {"55063215": [44, 3, 224]}, {"55063219": [8]}, {"55063224": [145, 174]}, {"55063227": [116, 52, 1]}, {"55063231": [255, 21, 193]}, {"55063235": [2]}, {"55063240": [52, 14]}, {"55063243": [44, 3, 224]}, {"55063247": [8, 167, 174]}, {"55063251": [154, 145, 207]}, {"55063255": [116, 52, 1]}, {"55063259": [255, 21, 225]}, {"55063263": [2]}, {"55063268": [52, 15]}, {"55063271": [44, 3, 224]}, {"55063275": [8, 167, 175]}, {"55063279": [154, 60, 8, 128, 64, 37, 8, 32, 28, 142, 9]}, {"55063291": [104, 173, 9]}, {"55063296": [142, 9]}, {"55063299": [108, 173, 9]}, {"55063303": [4, 150, 9]}, {"55063307": [112, 165, 9]}, {"55063311": [8, 150, 9]}, {"55063315": [156, 165, 9]}, {"55063319": [10, 3, 224]}, {"55063323": [8, 142, 14]}, {"55063327": [4, 39, 189, 255, 224, 175, 176]}, {"55063335": [16, 175, 177]}, {"55063339": [20, 175, 191]}, {"55063343": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 28, 142, 8]}, {"55063363": [4, 17]}, {"55063367": [5]}, {"55063372": [12, 16, 12, 242]}, {"55063380": [16]}, {"55063383": [3]}, {"55063388": [12, 16, 13, 5]}, {"55063396": [12, 16, 12, 229, 52, 4]}, {"55063404": [12, 16, 12, 229, 52, 4]}, {"55063411": [1, 12, 16, 12, 229, 52, 4]}, {"55063419": [2, 143, 176]}, {"55063423": [16, 143, 177]}, {"55063427": [20, 143, 191]}, {"55063431": [24, 39, 189]}, {"55063435": [32, 3, 224]}, {"55063439": [8]}, {"55063444": [2, 4, 64, 33, 145, 9]}, {"55063451": [108, 52, 1]}, {"55063455": [255, 17, 33]}, {"55063459": [7]}, {"55063464": [2, 9, 72, 33, 145, 41]}, {"55063471": [116, 52, 1]}, {"55063475": [44, 17, 33]}, {"55063479": [2]}, {"55063484": [161, 9]}, {"55063487": [105, 3, 224]}, {"55063491": [8]}, {"55063496": [39, 189, 255, 232, 175, 191]}, {"55063503": [16, 142, 40]}, {"55063508": [174, 8]}, {"55063511": [64, 142, 40]}, {"55063515": [4, 174, 8]}, {"55063519": [68, 150, 40]}, {"55063523": [8, 166, 8]}, {"55063527": [72, 162]}, {"55063530": [15, 51, 146, 8]}, {"55063535": [74, 52, 1]}, {"55063539": [255, 21, 1]}, {"55063543": [3]}, {"55063548": [12, 16, 13, 19]}, {"55063556": [143, 191]}, {"55063559": [16, 39, 189]}, {"55063563": [24, 3, 224]}, {"55063567": [8]}, {"55063572": [142, 8]}, {"55063575": [64, 174, 8]}, {"55063579": [104, 142, 8]}, {"55063583": [68, 174, 8]}, {"55063587": [108, 150, 8]}, {"55063591": [72, 166, 8]}, {"55063595": [112, 146, 8]}, {"55063599": [104, 52, 1]}, {"55063603": [255, 21, 1]}, {"55063607": [3]}, {"55063612": [52, 8]}, {"55063615": [1, 162, 8, 15, 51, 3, 224]}, {"55063623": [8]}, {"55063628": [39, 189, 255, 232, 175, 191]}, {"55063635": [16, 150, 8]}, {"55063639": [156, 49, 8]}, {"55063643": [64, 17]}, {"55063647": [5]}, {"55063652": [150, 8]}, {"55063655": [112, 49, 8, 255, 15, 53, 8]}, {"55063663": [48, 166, 8]}, {"55063667": [112, 146, 40]}, {"55063671": [1, 162, 8]}, {"55063675": [105, 150, 40]}, {"55063679": [2, 166, 8]}, {"55063683": [106, 142, 40]}, {"55063687": [4, 174, 8]}, {"55063691": [108, 12, 16, 13, 45, 52, 4]}, {"55063700": [12, 16, 13, 45, 52, 4]}, {"55063707": [1, 12, 16, 13, 45, 52, 4]}, {"55063715": [2, 143, 191]}, {"55063719": [16, 39, 189]}, {"55063723": [24, 3, 224]}, {"55063727": [8]}, {"55063732": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 53, 96, 145, 10]}, {"55063747": [108, 52, 1]}, {"55063751": [255, 17, 65]}, {"55063755": [5]}, {"55063760": [1, 42, 72, 33, 145, 41]}, {"55063768": [21, 32]}, {"55063771": [28]}, {"55063776": [60, 9, 128, 64, 37, 41, 53, 83, 37, 41]}, {"55063787": [1, 145, 42]}, {"55063792": [17, 64]}, {"55063795": [19]}, {"55063800": [2, 10, 88, 33, 145, 107]}, {"55063807": [116, 52, 1]}, {"55063811": [255, 17, 97, 255, 248]}, {"55063820": [146, 12]}, {"55063823": [108, 17, 138, 255, 245]}, {"55063832": [146, 12]}, {"55063835": [109, 17, 138, 255, 242]}, {"55063844": [146, 12]}, {"55063847": [110, 17, 138, 255, 239]}, {"55063856": [161, 11]}, {"55063859": [105, 161, 10]}, {"55063863": [108, 16]}, {"55063867": [4]}, {"55063872": [52, 9]}, {"55063875": [255, 161, 9]}, {"55063879": [105, 161, 9]}, {"55063883": [108, 3, 224]}, {"55063887": [8]}, {"55063892": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063905": [1, 1, 1, 1, 1]}, {"55063911": [1, 1, 1, 1, 1]}, {"55063917": [1]}, {"55063919": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063929": [51, 8, 33, 32, 15]}, {"55063935": [71, 21, 234]}, {"55063939": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063951": [164]}, {"55063953": [15, 122, 3, 20, 64]}, {"55063959": [5, 52, 2, 72, 48, 21, 226]}, {"55063967": [7]}, {"55063972": [36, 25]}, {"55063975": [3, 16]}, {"55063979": [4, 52, 2, 99, 17, 21, 226]}, {"55063987": [2]}, {"55063992": [36, 25]}, {"55063995": [3, 3, 224]}, {"55063999": [8]}, {"55064004": [141, 173, 138, 160, 52, 2, 128]}, {"55064012": [16, 77]}, {"55064015": [2]}, {"55064020": [16]}, {"55064023": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55064039": [1, 16, 64]}, {"55064043": [2]}, {"55064048": [16]}, {"55064051": [2, 52, 2]}, {"55064055": [1, 161, 226, 28, 191, 3, 224]}, {"55064063": [8]}, {"55064069": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55064083": [164]}, {"55064085": [15, 122, 3, 20, 64]}, {"55064091": [5, 52, 2, 72, 48, 21, 226]}, {"55064099": [7]}, {"55064104": [36, 25]}, {"55064107": [3, 16]}, {"55064111": [4, 52, 2, 99, 17, 21, 226]}, {"55064119": [2]}, {"55064124": [36, 25]}, {"55064127": [3, 3, 224]}, {"55064131": [8]}, {"55064136": [20, 64]}, {"55064139": [14]}, {"55064144": [52, 1]}, {"55064147": [24, 20, 129]}, {"55064151": [11, 60, 10, 128, 18, 37, 74, 165, 208, 129, 72]}, {"55064163": [166, 49, 8]}, {"55064167": [32, 17]}, {"55064171": [6, 52, 2]}, {"55064176": [129, 72]}, {"55064179": [123, 52, 1]}, {"55064183": [7, 17, 1]}, {"55064187": [2, 52, 2]}, {"55064191": [1, 52, 2]}, {"55064196": [3, 224]}, {"55064199": [8]}, {"55064204": [162, 37]}, {"55064207": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55064219": [4, 142, 10]}, {"55064224": [17, 64]}, {"55064227": [11]}, {"55064233": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55064245": [24, 194, 2, 23]}, {"55064251": [3, 49, 89]}, {"55064255": [255, 129, 234]}, {"55064260": [3, 42, 200, 37, 8, 16, 13, 166, 161, 249]}, {"55064272": [3, 224]}, {"55064275": [8]}] \ No newline at end of file +[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 204]}, {"11135032": [8, 16, 13, 156]}, {"11311804": [12, 16, 11, 223]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 208, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 210]}, {"11427312": [12, 16, 13, 123]}, {"11427320": [12, 16, 11, 218]}, {"11427332": [0, 0]}, {"11427335": [0]}, {"11431496": [12, 16, 11, 213, 1, 15, 192, 33]}, {"11559936": [130]}, {"11559938": [14, 222]}, {"11559948": [49, 248, 0, 2]}, {"11562028": [12, 16, 13, 173]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 139]}, {"11882076": [12, 16, 13, 104]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 177, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 184, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 191, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 170, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 148]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 26]}, {"12427480": [12, 16, 10, 114]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 118]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 12, 117, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 160]}, {"12491480": [12, 16, 10, 169]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"12584172": [8, 16, 12, 26]}, {"12584575": [100]}, {"12589216": [12, 16, 12, 47]}, {"13027240": [12, 16, 12, 63]}, {"13027616": [12, 16, 12, 63]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 165]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 198]}, {"13709176": [52, 15]}, {"13709179": [0]}, {"14109028": [16, 0]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 128, 73, 14, 222]}, {"14149508": [52]}, {"14149510": [0, 1, 2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 226]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 242]}, {"14624335": [118]}, {"14646448": [12, 16, 12, 95]}, {"14720872": [128]}, {"14720874": [14, 222]}, {"14720884": [49, 248, 0, 4]}, {"14720944": [12, 16, 11, 234]}, {"14848904": [8, 16, 12, 9]}, {"14852164": [12, 16, 12, 18]}, {"14872723": [52]}, {"15327704": [52, 9, 64, 0]}, {"15327728": [52]}, {"15327730": [91, 8]}, {"15327744": [52]}, {"15327746": [0, 10]}, {"15327757": [169]}, {"15448156": [12, 16, 12, 74]}, {"15448165": [64]}, {"15448167": [18]}, {"15448172": [16, 0, 0, 20]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 55, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 55, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 236, 83, 65, 35, 248]}, {"55058597": [209, 255, 255, 128, 64, 38, 60, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 38, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 38, 108, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 38, 136, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 252, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 244, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 244, 128, 64, 38, 188, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 244, 128, 64, 38, 188, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 244, 128, 64, 38, 188, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 244, 128, 64, 38, 216, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 244, 128, 64, 38, 216, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 244, 128, 64, 38, 216, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 244, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 244, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 140, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 172, 128, 64, 38, 164, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 204, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 39, 244, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 60, 128, 64, 40, 32, 83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 4, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 6, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 3, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 8, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 5, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 7, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 76, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [5, 52, 2]}, {"55060003": [69, 52, 9]}, {"55060007": [16, 17, 9]}, {"55060011": [2, 52, 2]}, {"55060015": [70, 52, 162]}, {"55060020": [3, 224]}, {"55060023": [8]}, {"55060028": [144, 136]}, {"55060031": [162, 53, 8]}, {"55060035": [48, 160, 136]}, {"55060039": [162, 3, 224]}, {"55060043": [8]}, {"55060048": [144, 136]}, {"55060051": [162, 49, 8]}, {"55060055": [6, 17]}, {"55060059": [2, 52, 2]}, {"55060063": [55, 52, 2]}, {"55060067": [56, 3, 224]}, {"55060071": [8]}, {"55060076": [144, 136]}, {"55060079": [161, 49, 8]}, {"55060083": [32, 17]}, {"55060087": [2, 52, 2]}, {"55060091": [121, 52, 2]}, {"55060095": [122, 3, 224]}, {"55060099": [8]}, {"55060104": [144, 136]}, {"55060107": [161, 49, 8]}, {"55060111": [4, 17]}, {"55060115": [2, 52, 2]}, {"55060119": [119, 52, 2]}, {"55060123": [120, 3, 224]}, {"55060127": [8]}, {"55060132": [144, 136]}, {"55060135": [50, 17]}, {"55060139": [2, 52, 2]}, {"55060143": [192, 52, 2]}, {"55060147": [193, 3, 224]}, {"55060151": [8]}, {"55060156": [144, 136]}, {"55060159": [163, 49, 8]}, {"55060163": [3, 17]}, {"55060167": [2, 52, 2]}, {"55060171": [77, 52, 162]}, {"55060176": [3, 224]}, {"55060179": [8]}, {"55060184": [144, 136]}, {"55060187": [163, 49, 8]}, {"55060191": [24, 17]}, {"55060195": [2, 52, 2]}, {"55060199": [77, 52, 162]}, {"55060204": [3, 224]}, {"55060207": [8]}, {"55060212": [3, 224]}, {"55060215": [8]}, {"55060220": [52, 8]}, {"55060223": [1, 160, 136]}, {"55060227": [62, 3, 224]}, {"55060231": [8]}, {"55060236": [36, 136]}, {"55060239": [134, 36, 9, 255, 255, 37, 41]}, {"55060247": [1, 52, 1]}, {"55060251": [3]}, {"55060253": [41, 8, 42, 20, 32]}, {"55060259": [7]}, {"55060264": [1, 9, 80, 33, 145, 75]}, {"55060272": [52, 1]}, {"55060275": [255, 21, 97, 255, 247]}, {"55060284": [161, 69]}, {"55060288": [3, 224]}, {"55060291": [8]}, {"55060296": [36, 136]}, {"55060299": [168, 1, 6, 64, 33, 145, 9]}, {"55060308": [1, 37, 72, 37, 161, 9]}, {"55060316": [3, 224]}, {"55060319": [8]}, {"55060324": [36, 136]}, {"55060327": [188, 1, 5, 64, 33, 129, 9]}, {"55060336": [5, 33]}, {"55060339": [2]}, {"55060344": [52, 9]}, {"55060348": [37, 41]}, {"55060351": [1, 161, 9]}, {"55060356": [3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [61, 52, 8]}, {"55060375": [20, 160, 136]}, {"55060379": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [1, 160, 136]}, {"55060403": [50, 160, 136]}, {"55060407": [58, 52, 8]}, {"55060411": [48, 164, 136, 19, 244, 160, 136]}, {"55060419": [51, 3, 224]}, {"55060423": [8]}, {"55060428": [52, 8]}, {"55060431": [2, 160, 136]}, {"55060435": [50, 52, 8]}, {"55060439": [1, 160, 136]}, {"55060443": [58, 160, 136]}, {"55060447": [60, 52, 8]}, {"55060451": [96, 164, 136, 19, 244, 160, 136]}, {"55060459": [51, 3, 224]}, {"55060463": [8]}, {"55060468": [144, 136]}, {"55060471": [124, 52, 1]}, {"55060475": [255, 17, 1]}, {"55060479": [6, 52, 2]}, {"55060483": [107, 144, 136]}, {"55060487": [148, 45, 8]}, {"55060491": [6, 17]}, {"55060495": [2, 52, 2]}, {"55060499": [106, 52, 2]}, {"55060503": [3, 3, 224]}, {"55060507": [8]}, {"55060512": [144, 136]}, {"55060515": [123, 52, 1]}, {"55060519": [255, 17, 1]}, {"55060523": [2, 52, 162]}, {"55060528": [52, 2]}, {"55060531": [12, 3, 224]}, {"55060535": [8]}, {"55060540": [52, 8]}, {"55060543": [7, 160, 136]}, {"55060547": [123, 3, 224]}, {"55060551": [8]}, {"55060556": [52, 8]}, {"55060559": [1]}, {"55060561": [168, 64, 4, 140, 137]}, {"55060567": [164, 1, 40, 72, 37, 172, 137]}, {"55060575": [164, 3, 224]}, {"55060579": [8]}, {"55060584": [48, 132]}, {"55060587": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060599": [140, 16, 129]}, {"55060603": [22, 145, 2]}, {"55060607": [117, 52, 1]}, {"55060611": [141, 16, 129]}, {"55060615": [19, 145, 2]}, {"55060619": [117, 16, 128]}, {"55060623": [17, 145, 2]}, {"55060627": [116, 52, 1]}, {"55060631": [138, 16, 129]}, {"55060635": [14, 145, 2]}, {"55060639": [116, 52, 1]}, {"55060643": [139, 16, 129]}, {"55060647": [11, 145, 2]}, {"55060651": [116, 52, 1]}, {"55060655": [88, 16, 129]}, {"55060659": [8, 52, 2]}, {"55060664": [52, 1]}, {"55060667": [120, 16, 129]}, {"55060671": [5, 52, 2]}, {"55060676": [52, 1]}, {"55060679": [121, 16, 129]}, {"55060683": [2, 52, 2]}, {"55060688": [52, 2]}, {"55060691": [255, 3, 224]}, {"55060695": [8]}, {"55060700": [39, 189, 255, 224, 175, 191]}, {"55060707": [16, 175, 176]}, {"55060711": [20, 12, 16, 11, 19]}, {"55060720": [4, 65]}, {"55060723": [2]}, {"55060728": [52, 2]}, {"55060731": [91]}, {"55060733": [64, 32, 33, 12, 16, 11, 132]}, {"55060744": [16, 96]}, {"55060747": [22, 175, 163]}, {"55060751": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060760": [133, 9]}, {"55060763": [2, 17, 32]}, {"55060767": [3, 52, 10]}, {"55060771": [1, 16]}, {"55060775": [12, 165, 10]}, {"55060780": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060791": [6, 144, 102]}, {"55060795": [7, 140, 105]}, {"55060799": [8, 1, 32, 248, 9]}, {"55060808": [143, 163]}, {"55060811": [28, 144, 101]}, {"55060815": [1, 12, 1, 191, 115, 2, 32, 32, 33, 143, 163]}, {"55060827": [28, 144, 101]}, {"55060831": [3, 16]}, {"55060835": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060847": [6]}, {"55060849": [74]}, {"55060851": [24]}, {"55060854": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060864": [60, 8, 128, 64, 37, 8, 32]}, {"55060872": [133, 9]}, {"55060875": [2, 17, 32]}, {"55060879": [3, 52, 10]}, {"55060883": [1, 165, 10]}, {"55060888": [52, 5]}, {"55060891": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060903": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060914": [48, 33, 143, 191]}, {"55060919": [16, 143, 176]}, {"55060923": [20, 39, 189]}, {"55060927": [32, 3, 224]}, {"55060931": [8]}, {"55060936": [143, 166]}, {"55060939": [48, 132, 197]}, {"55060943": [4, 8, 16, 10, 122]}, {"55060952": [143, 185]}, {"55060955": [44, 135, 37]}, {"55060959": [4, 8, 16, 10, 122]}, {"55060968": [60, 10, 128, 64, 37, 74, 32, 8, 141, 75]}, {"55060979": [12, 17, 96]}, {"55060983": [2]}, {"55060988": [149, 69]}, {"55060991": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55061004": [60, 9, 128, 64, 37, 41, 32, 24, 129, 42]}, {"55061015": [3, 5, 64]}, {"55061019": [11, 1, 42, 72, 32, 129, 40]}, {"55061028": [52, 10]}, {"55061031": [127, 21, 10]}, {"55061035": [6]}, {"55061040": [60, 10, 128, 18, 37, 74, 165, 208, 133, 72]}, {"55061051": [144, 33, 8]}, {"55061055": [1, 165, 72]}, {"55061059": [144, 161, 32]}, {"55061064": [3, 224]}, {"55061067": [8]}, {"55061072": [60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061083": [12, 17, 32]}, {"55061087": [2]}, {"55061092": [129, 3]}, {"55061095": [2]}, {"55061097": [3, 15, 195]}, {"55061101": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061115": [8]}, {"55061120": [144, 69]}, {"55061123": [3, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061135": [12, 17, 32]}, {"55061139": [2]}, {"55061144": [145, 5]}, {"55061147": [3, 3, 224]}, {"55061151": [8]}, {"55061156": [143, 162]}, {"55061159": [36, 144, 69]}, {"55061164": [60, 8, 128, 64, 37, 8, 32]}, {"55061172": [133, 9]}, {"55061175": [2, 17, 32]}, {"55061179": [4, 52, 10]}, {"55061183": [1, 165, 10]}, {"55061188": [16]}, {"55061191": [24, 52, 5]}, {"55061195": [65, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061207": [12, 17, 32]}, {"55061211": [19]}, {"55061216": [145, 5]}, {"55061219": [1, 175, 164]}, {"55061224": [175, 165]}, {"55061227": [4, 175, 166]}, {"55061231": [8, 39, 189, 255, 232, 175, 191]}, {"55061239": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061251": [6, 145, 6]}, {"55061255": [7, 141, 9]}, {"55061259": [8, 1, 32, 248, 9]}, {"55061268": [143, 191]}, {"55061271": [16, 39, 189]}, {"55061275": [24, 143, 164]}, {"55061280": [143, 165]}, {"55061283": [4, 143, 166]}, {"55061287": [8, 3, 224]}, {"55061291": [8]}, {"55061296": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061307": [16, 175, 163]}, {"55061311": [20, 175, 191]}, {"55061315": [24, 12, 16, 10, 217]}, {"55061324": [143, 162]}, {"55061327": [16, 143, 163]}, {"55061331": [20, 143, 191]}, {"55061335": [24, 39, 189]}, {"55061339": [32, 3, 224]}, {"55061343": [8]}, {"55061348": [39, 189, 255, 232, 175, 191]}, {"55061355": [16, 60, 8, 128, 64, 37, 8, 32, 8, 173]}, {"55061368": [173]}, {"55061371": [4, 173]}, {"55061375": [8, 173]}, {"55061379": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061395": [42]}, {"55061401": [9, 15, 195, 1, 33, 32, 38]}, {"55061409": [129, 32, 35, 141, 5, 4, 40, 12, 16, 11, 19]}, {"55061424": [4, 64]}, {"55061427": [34]}, {"55061432": [52, 68]}, {"55061436": [12, 16, 11, 132]}, {"55061444": [16, 96]}, {"55061447": [12]}, {"55061452": [60, 8, 128, 64, 37, 8, 32, 8, 140, 105]}, {"55061464": [173, 9]}, {"55061468": [140, 105]}, {"55061471": [4, 173, 9]}, {"55061475": [4, 140, 105]}, {"55061479": [8, 173, 9]}, {"55061483": [8, 52, 9]}, {"55061487": [1, 173, 9]}, {"55061491": [12, 144, 98]}, {"55061496": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061512": [52, 1]}, {"55061515": [10, 21, 65]}, {"55061519": [6]}, {"55061524": [149, 42]}, {"55061527": [28, 49, 74, 240, 31]}, {"55061533": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061543": [28, 129, 9, 4, 36, 5, 33]}, {"55061551": [2]}, {"55061557": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061567": [16, 39, 189]}, {"55061571": [24, 3, 224]}, {"55061575": [8]}, {"55061580": [39, 189, 255, 232, 175, 191]}, {"55061587": [16, 12, 16, 11, 33]}, {"55061596": [36, 1, 255, 255, 16, 65]}, {"55061603": [4]}, {"55061608": [52, 68]}, {"55061612": [12, 16, 11, 95]}, {"55061620": [143, 191]}, {"55061623": [16, 39, 189]}, {"55061627": [24, 3, 224]}, {"55061631": [8]}, {"55061636": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061647": [164, 52, 8]}, {"55061652": [52, 137]}, {"55061656": [148, 170]}, {"55061660": [52, 1, 1, 156, 21, 65]}, {"55061667": [8]}, {"55061672": [52, 8]}, {"55061675": [3, 148, 171]}, {"55061679": [28, 49, 105]}, {"55061683": [255, 49, 98, 31]}, {"55061689": [2, 18, 2, 16]}, {"55061695": [31]}, {"55061700": [52, 1]}, {"55061703": [10, 21, 65]}, {"55061707": [14]}, {"55061712": [148, 171]}, {"55061715": [28, 52, 1]}, {"55061719": [16, 20, 65]}, {"55061723": [8]}, {"55061728": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061739": [4]}, {"55061744": [36, 2, 255, 255, 16]}, {"55061751": [31]}, {"55061756": [52, 8]}, {"55061759": [1, 49, 105]}, {"55061763": [31, 52, 1]}, {"55061767": [21, 21, 65]}, {"55061771": [12]}, {"55061776": [52, 1]}, {"55061779": [62, 16, 129]}, {"55061783": [7]}, {"55061788": [52, 1]}, {"55061791": [66, 16, 129]}, {"55061795": [4]}, {"55061800": [36, 2, 255, 255, 16]}, {"55061807": [17]}, {"55061812": [52, 8]}, {"55061815": [2, 144, 169, 1, 65, 52, 1, 1, 26, 21, 65]}, {"55061827": [8]}, {"55061832": [52, 1]}, {"55061835": [62, 20, 65]}, {"55061839": [5]}, {"55061844": [52, 8]}, {"55061847": [4, 60, 11, 128, 18, 37, 107, 165, 208, 129, 98, 19, 151]}, {"55061861": [2, 18]}, {"55061865": [72, 16, 37]}, {"55061869": [2, 18]}, {"55061873": [73, 16, 37, 3, 224]}, {"55061879": [8]}, {"55061884": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061896": [129, 9]}, {"55061900": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061923": [4, 141, 9]}, {"55061928": [17, 32]}, {"55061931": [23]}, {"55061937": [9, 82, 2, 49, 75, 248]}, {"55061945": [11, 90, 194, 60, 12, 255, 255, 53, 140, 7, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061968": [49, 34]}, {"55061971": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061992": [60, 12, 128, 64, 37, 140, 28]}, {"55062000": [129, 140]}, {"55062004": [17, 108]}, {"55062007": [4, 165, 32]}, {"55062011": [2, 161, 43]}, {"55062015": [2, 161, 34]}, {"55062019": [3, 173, 36]}, {"55062023": [4, 3, 224]}, {"55062027": [8]}, {"55062032": [39, 189, 255, 224, 175, 176]}, {"55062039": [16, 175, 177]}, {"55062043": [20, 175, 191]}, {"55062047": [24, 52, 130]}, {"55062052": [52, 80]}, {"55062056": [38, 8, 255, 128, 5]}, {"55062063": [18]}, {"55062068": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55062079": [16, 1, 9]}, {"55062083": [24]}, {"55062086": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55062104": [142, 40]}, {"55062107": [12, 1]}, {"55062110": [248, 9]}, {"55062116": [20, 80, 255, 239]}, {"55062124": [54, 35]}, {"55062128": [16]}, {"55062131": [2]}, {"55062136": [52, 3]}, {"55062140": [143, 176]}, {"55062143": [16, 143, 177]}, {"55062147": [20, 143, 191]}, {"55062151": [24, 39, 189]}, {"55062155": [32, 3, 224]}, {"55062159": [8]}, {"55062164": [140, 136, 29, 44, 52, 9]}, {"55062171": [1]}, {"55062173": [9, 78]}, {"55062176": [1, 9, 16, 36, 16, 64]}, {"55062183": [36]}, {"55062188": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062203": [164, 52, 1]}, {"55062207": [61, 17, 129]}, {"55062211": [10]}, {"55062217": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062227": [25]}, {"55062232": [52, 13]}, {"55062235": [1, 161, 141, 29, 40, 37, 74]}, {"55062243": [3, 16]}, {"55062247": [9]}, {"55062252": [52, 12]}, {"55062255": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062271": [14]}, {"55062276": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062312": [60, 9, 128, 64, 37, 41, 32, 24, 161, 40]}, {"55062324": [52, 2]}, {"55062328": [3, 224]}, {"55062331": [8]}, {"55062336": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062348": [16]}, {"55062351": [34]}, {"55062356": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062368": [16]}, {"55062371": [29]}, {"55062376": [52, 2]}, {"55062379": [255, 32, 232, 255, 166, 33, 8]}, {"55062387": [97, 16]}, {"55062391": [24]}, {"55062396": [52, 8]}, {"55062399": [100, 16]}, {"55062403": [21]}, {"55062408": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062423": [1, 160, 40, 14, 222, 52, 8]}, {"55062431": [104, 16]}, {"55062435": [13]}, {"55062440": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062455": [4, 160, 40, 14, 222, 52, 8]}, {"55062463": [106, 16]}, {"55062467": [5]}, {"55062472": [52, 5]}, {"55062475": [3, 52, 8]}, {"55062479": [107, 16]}, {"55062483": [1]}, {"55062488": [60, 9, 128, 64, 37, 41, 32, 24, 60, 10, 128, 64, 37, 74, 32, 27, 129, 44]}, {"55062508": [17, 136]}, {"55062511": [11, 33, 41]}, {"55062515": [1, 21, 42, 255, 252]}, {"55062524": [60, 9, 128, 64, 37, 41, 32, 23, 33, 41]}, {"55062535": [1, 17, 42]}, {"55062539": [4, 129, 44]}, {"55062544": [21, 128, 255, 252]}, {"55062552": [161, 40]}, {"55062556": [3, 224]}, {"55062559": [8]}, {"55062565": [96, 120, 33, 129, 236, 14, 223, 49, 142]}, {"55062575": [128, 17, 192]}, {"55062579": [3, 52, 3]}, {"55062583": [5, 3, 224]}, {"55062587": [8, 52, 2]}, {"55062591": [2, 3, 224]}, {"55062595": [8]}, {"55062597": [96, 16, 33, 133, 194]}, {"55062603": [164, 60, 8, 128, 18, 37, 8, 165, 208, 129, 9, 14, 223, 53, 41]}, {"55062619": [128, 161, 9, 14, 223, 3, 224]}, {"55062627": [8]}, {"55062632": [132, 142]}, {"55062635": [28, 33, 205, 255, 206, 5, 160]}, {"55062643": [16, 52, 2]}, {"55062648": [49, 169]}, {"55062651": [7, 52, 10]}, {"55062655": [1, 1, 42, 80, 4]}, {"55062661": [13, 72, 194, 60, 12, 128, 18, 37, 140, 165, 208, 1, 137, 96, 32, 129, 139, 5, 180, 1, 106, 88, 36, 52, 2]}, {"55062688": [17, 96]}, {"55062691": [4]}, {"55062696": [52, 13]}, {"55062699": [38, 164, 141]}, {"55062703": [28, 52, 2]}, {"55062707": [1, 3, 224]}, {"55062711": [8]}, {"55062716": [132, 174]}, {"55062719": [28, 33, 205, 255, 206, 5, 160]}, {"55062727": [11, 52, 2]}, {"55062732": [49, 169]}, {"55062735": [7, 52, 10]}, {"55062739": [1, 1, 42, 80, 4]}, {"55062745": [13, 72, 194, 60, 12, 128, 18, 37, 140, 165, 208, 1, 137, 96, 32, 129, 139, 5, 180, 1, 106, 88, 37, 161, 139, 5, 180, 3, 224]}, {"55062775": [8]}, {"55062780": [39, 189, 255, 240, 175, 191]}, {"55062787": [8, 40, 129]}, {"55062791": [50, 16, 32]}, {"55062795": [3]}, {"55062797": [128, 16, 33, 3, 32, 248, 9]}, {"55062808": [143, 191]}, {"55062811": [8, 39, 189]}, {"55062815": [16, 3, 224]}, {"55062819": [8]}, {"55062824": [60, 8, 128, 29, 37, 8, 132, 160, 60, 9, 128, 18, 37, 41, 165, 208, 133, 10]}, {"55062843": [164, 52, 1]}, {"55062847": [62, 21, 65]}, {"55062851": [2, 129, 43, 19, 151, 33, 106]}, {"55062859": [45, 134, 11]}, {"55062863": [28, 33, 107]}, {"55062867": [1, 52, 12]}, {"55062871": [1, 1, 108, 96, 4, 52, 1]}, {"55062879": [28, 1, 65]}, {"55062883": [24]}, {"55062886": [104, 18, 1, 45, 112, 32, 141, 207]}, {"55062895": [16, 1, 143, 16, 36, 3, 224]}, {"55062903": [8]}, {"55062908": [60, 8, 128, 29, 37, 8, 132, 160, 60, 9, 128, 18, 37, 41, 165, 208, 133, 10]}, {"55062927": [164, 52, 1]}, {"55062931": [62, 21, 65]}, {"55062935": [2, 129, 43, 19, 151, 33, 106]}, {"55062943": [45, 132, 139]}, {"55062947": [28, 33, 107]}, {"55062951": [1, 52, 12]}, {"55062955": [1, 1, 108, 96, 4, 52, 1]}, {"55062963": [28, 1, 65]}, {"55062967": [24]}, {"55062970": [104, 18, 1, 45, 112, 32, 141, 207]}, {"55062979": [16, 1, 143, 120, 37, 173, 207]}, {"55062987": [16, 3, 224]}, {"55062991": [8]}, {"55062996": [175, 164]}, {"55062999": [104, 175, 165]}, {"55063003": [108, 175, 166]}, {"55063007": [112, 175, 167]}, {"55063011": [116, 39, 189, 255, 232, 175, 163]}, {"55063019": [16, 175, 191]}, {"55063023": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55063039": [32, 21]}, {"55063043": [31]}, {"55063048": [60, 9, 128, 64, 37, 41, 32, 27, 52, 10]}, {"55063059": [255, 161, 42]}, {"55063064": [60, 9, 128, 64, 37, 41, 32, 24, 36, 10, 255, 255, 52, 12]}, {"55063079": [3, 33, 74]}, {"55063083": [1, 17, 76]}, {"55063087": [20, 1, 42, 88, 32, 129, 104]}, {"55063096": [17]}, {"55063098": [255, 251]}, {"55063104": [60, 9, 128, 64, 37, 41, 32, 27, 161, 42]}, {"55063116": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55063127": [1, 165, 42]}, {"55063132": [60, 9, 128, 65, 52, 10]}, {"55063139": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 217]}, {"55063168": [143, 163]}, {"55063171": [16, 143, 191]}, {"55063175": [20, 39, 189]}, {"55063179": [24, 143, 164]}, {"55063183": [104, 143, 165]}, {"55063187": [108, 143, 166]}, {"55063191": [112, 143, 167]}, {"55063195": [116, 132, 110, 19, 196, 3, 224]}, {"55063203": [8]}, {"55063208": [147, 25]}, {"55063211": [116, 52, 1]}, {"55063215": [255, 23, 33]}, {"55063219": [2]}, {"55063224": [52, 25]}, {"55063227": [44, 3, 224]}, {"55063231": [8, 167, 185]}, {"55063235": [154, 147, 44]}, {"55063239": [116, 52, 1]}, {"55063243": [255, 21, 129]}, {"55063247": [2]}, {"55063252": [52, 12]}, {"55063255": [44, 3, 224]}, {"55063259": [8]}, {"55063264": [145, 174]}, {"55063267": [116, 52, 1]}, {"55063271": [255, 21, 193]}, {"55063275": [2]}, {"55063280": [52, 14]}, {"55063283": [44, 3, 224]}, {"55063287": [8, 167, 174]}, {"55063291": [154, 145, 207]}, {"55063295": [116, 52, 1]}, {"55063299": [255, 21, 225]}, {"55063303": [2]}, {"55063308": [52, 15]}, {"55063311": [44, 3, 224]}, {"55063315": [8, 167, 175]}, {"55063319": [154, 60, 8, 128, 64, 37, 8, 32, 28, 142, 9]}, {"55063331": [104, 173, 9]}, {"55063336": [142, 9]}, {"55063339": [108, 173, 9]}, {"55063343": [4, 150, 9]}, {"55063347": [112, 165, 9]}, {"55063351": [8, 150, 9]}, {"55063355": [156, 165, 9]}, {"55063359": [10, 3, 224]}, {"55063363": [8, 142, 14]}, {"55063367": [4, 39, 189, 255, 224, 175, 176]}, {"55063375": [16, 175, 177]}, {"55063379": [20, 175, 191]}, {"55063383": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 28, 142, 8]}, {"55063403": [4, 17]}, {"55063407": [5]}, {"55063412": [12, 16, 12, 252]}, {"55063420": [16]}, {"55063423": [3]}, {"55063428": [12, 16, 13, 15]}, {"55063436": [12, 16, 12, 239, 52, 4]}, {"55063444": [12, 16, 12, 239, 52, 4]}, {"55063451": [1, 12, 16, 12, 239, 52, 4]}, {"55063459": [2, 143, 176]}, {"55063463": [16, 143, 177]}, {"55063467": [20, 143, 191]}, {"55063471": [24, 39, 189]}, {"55063475": [32, 3, 224]}, {"55063479": [8]}, {"55063484": [2, 4, 64, 33, 145, 9]}, {"55063491": [108, 52, 1]}, {"55063495": [255, 17, 33]}, {"55063499": [7]}, {"55063504": [2, 9, 72, 33, 145, 41]}, {"55063511": [116, 52, 1]}, {"55063515": [44, 17, 33]}, {"55063519": [2]}, {"55063524": [161, 9]}, {"55063527": [105, 3, 224]}, {"55063531": [8]}, {"55063536": [39, 189, 255, 232, 175, 191]}, {"55063543": [16, 142, 40]}, {"55063548": [174, 8]}, {"55063551": [64, 142, 40]}, {"55063555": [4, 174, 8]}, {"55063559": [68, 150, 40]}, {"55063563": [8, 166, 8]}, {"55063567": [72, 162]}, {"55063570": [15, 51, 146, 8]}, {"55063575": [74, 52, 1]}, {"55063579": [255, 21, 1]}, {"55063583": [3]}, {"55063588": [12, 16, 13, 29]}, {"55063596": [143, 191]}, {"55063599": [16, 39, 189]}, {"55063603": [24, 3, 224]}, {"55063607": [8]}, {"55063612": [142, 8]}, {"55063615": [64, 174, 8]}, {"55063619": [104, 142, 8]}, {"55063623": [68, 174, 8]}, {"55063627": [108, 150, 8]}, {"55063631": [72, 166, 8]}, {"55063635": [112, 146, 8]}, {"55063639": [104, 52, 1]}, {"55063643": [255, 21, 1]}, {"55063647": [3]}, {"55063652": [52, 8]}, {"55063655": [1, 162, 8, 15, 51, 3, 224]}, {"55063663": [8]}, {"55063668": [39, 189, 255, 232, 175, 191]}, {"55063675": [16, 150, 8]}, {"55063679": [156, 49, 8]}, {"55063683": [64, 17]}, {"55063687": [5]}, {"55063692": [150, 8]}, {"55063695": [112, 49, 8, 255, 15, 53, 8]}, {"55063703": [48, 166, 8]}, {"55063707": [112, 146, 40]}, {"55063711": [1, 162, 8]}, {"55063715": [105, 150, 40]}, {"55063719": [2, 166, 8]}, {"55063723": [106, 142, 40]}, {"55063727": [4, 174, 8]}, {"55063731": [108, 12, 16, 13, 55, 52, 4]}, {"55063740": [12, 16, 13, 55, 52, 4]}, {"55063747": [1, 12, 16, 13, 55, 52, 4]}, {"55063755": [2, 143, 191]}, {"55063759": [16, 39, 189]}, {"55063763": [24, 3, 224]}, {"55063767": [8]}, {"55063772": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 53, 136, 145, 10]}, {"55063787": [108, 52, 1]}, {"55063791": [255, 17, 65]}, {"55063795": [5]}, {"55063800": [1, 42, 72, 33, 145, 41]}, {"55063808": [21, 32]}, {"55063811": [28]}, {"55063816": [60, 9, 128, 64, 37, 41, 53, 123, 37, 41]}, {"55063827": [1, 145, 42]}, {"55063832": [17, 64]}, {"55063835": [19]}, {"55063840": [2, 10, 88, 33, 145, 107]}, {"55063847": [116, 52, 1]}, {"55063851": [255, 17, 97, 255, 248]}, {"55063860": [146, 12]}, {"55063863": [108, 17, 138, 255, 245]}, {"55063872": [146, 12]}, {"55063875": [109, 17, 138, 255, 242]}, {"55063884": [146, 12]}, {"55063887": [110, 17, 138, 255, 239]}, {"55063896": [161, 11]}, {"55063899": [105, 161, 10]}, {"55063903": [108, 16]}, {"55063907": [4]}, {"55063912": [52, 9]}, {"55063915": [255, 161, 9]}, {"55063919": [105, 161, 9]}, {"55063923": [108, 3, 224]}, {"55063927": [8]}, {"55063932": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063945": [1, 1, 1, 1, 1]}, {"55063951": [1, 1, 1, 1, 1]}, {"55063957": [1]}, {"55063959": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063969": [51, 8, 33, 32, 15]}, {"55063975": [71, 21, 234]}, {"55063979": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063991": [164]}, {"55063993": [15, 122, 3, 20, 64]}, {"55063999": [5, 52, 2, 72, 48, 21, 226]}, {"55064007": [7]}, {"55064012": [36, 25]}, {"55064015": [3, 16]}, {"55064019": [4, 52, 2, 99, 17, 21, 226]}, {"55064027": [2]}, {"55064032": [36, 25]}, {"55064035": [3, 3, 224]}, {"55064039": [8]}, {"55064044": [141, 173, 138, 160, 52, 2, 128]}, {"55064052": [16, 77]}, {"55064055": [2]}, {"55064060": [16]}, {"55064063": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55064079": [1, 16, 64]}, {"55064083": [2]}, {"55064088": [16]}, {"55064091": [2, 52, 2]}, {"55064095": [1, 161, 226, 28, 191, 3, 224]}, {"55064103": [8]}, {"55064109": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55064123": [164]}, {"55064125": [15, 122, 3, 20, 64]}, {"55064131": [5, 52, 2, 72, 48, 21, 226]}, {"55064139": [7]}, {"55064144": [36, 25]}, {"55064147": [3, 16]}, {"55064151": [4, 52, 2, 99, 17, 21, 226]}, {"55064159": [2]}, {"55064164": [36, 25]}, {"55064167": [3, 3, 224]}, {"55064171": [8]}, {"55064176": [20, 64]}, {"55064179": [14]}, {"55064184": [52, 1]}, {"55064187": [24, 20, 129]}, {"55064191": [11, 60, 10, 128, 18, 37, 74, 165, 208, 129, 72]}, {"55064203": [166, 49, 8]}, {"55064207": [32, 17]}, {"55064211": [6, 52, 2]}, {"55064216": [129, 72]}, {"55064219": [123, 52, 1]}, {"55064223": [7, 17, 1]}, {"55064227": [2, 52, 2]}, {"55064231": [1, 52, 2]}, {"55064236": [3, 224]}, {"55064239": [8]}, {"55064244": [162, 37]}, {"55064247": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55064259": [4, 142, 10]}, {"55064264": [17, 64]}, {"55064267": [11]}, {"55064273": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55064285": [24, 194, 2, 23]}, {"55064291": [3, 49, 89]}, {"55064295": [255, 129, 234]}, {"55064300": [3, 42, 200, 37, 8, 16, 13, 176, 161, 249]}, {"55064312": [3, 224]}, {"55064315": [8]}] \ No newline at end of file diff --git a/version.py b/version.py index 802feacfa..e445b424e 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.45 f.LUM' +__version__ = '2.15.46 f.LUM' From e09552e0c2dd0301b74d4f7644c45c542a5ab506 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 2 Sep 2018 15:41:25 -0400 Subject: [PATCH 368/755] Added shuffle scrubs option, shop placement now retries --- BaseClasses.py | 1 + Fill.py | 58 ++++++++++++++++++++++++++++++++++++++++++++------ ItemList.py | 16 ++++++++------ Rom.py | 1 + Rules.py | 7 +----- Settings.py | 19 +++++++++++++++++ version.py | 2 +- 7 files changed, 83 insertions(+), 21 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 4423c1a26..96c303ebd 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -737,6 +737,7 @@ def __init__(self, name='', address=None, address2=None, default=None, type='Che self.access_rule = lambda state: True self.item_rule = lambda item: True self.event = False + self.price = None def can_fill(self, state, item, check_access=True): return self.always_allow(item, self) or (self.parent_region.can_fill(item) and self.item_rule(item) and (not check_access or self.can_reach(state))) diff --git a/Fill.py b/Fill.py index ededfd1ef..f86db7a3f 100644 --- a/Fill.py +++ b/Fill.py @@ -12,35 +12,49 @@ def distribute_items_restrictive(window, worlds, fill_locations=None): 'Song from Ocarina of Time', 'Song at Windmill', 'Sheik Forest Song', 'Sheik at Temple', 'Sheik in Crater', 'Sheik in Ice Cavern', 'Sheik in Kakariko', 'Sheik at Colossus']] + shop_locations = [location for world in worlds for location in world.get_unfilled_locations() if location.type == 'Shop' and location.price == None] + # If not passed in, then get a shuffled list of locations to fill in if not fill_locations: - fill_locations = [location for world in worlds for location in world.get_unfilled_locations() if location not in song_locations] + fill_locations = [location for world in worlds for location in world.get_unfilled_locations() if location not in song_locations and location not in shop_locations] world_states = [world.state for world in worlds] window.locationcount = len(fill_locations) + len(song_locations) window.fillcount = 0 # Generate the itempools + shopitempool = [item for world in worlds for item in world.itempool if item.type == 'Shop'] songitempool = [item for world in worlds for item in world.itempool if item.type == 'Song'] - itempool = [item for world in worlds for item in world.itempool if item.type != 'Song'] + itempool = [item for world in worlds for item in world.itempool if item.type != 'Shop' and item.type != 'Song'] if worlds[0].shuffle_song_items: itempool.extend(songitempool) fill_locations.extend(song_locations) # add unrestricted dungeon items to main item pool itempool.extend([item for world in worlds for item in world.get_unrestricted_dungeon_items()]) + dungeon_items = [item for world in worlds for item in world.get_restricted_dungeon_items()] random.shuffle(itempool) # randomize item placement order. this ordering can greatly affect the location accessibility bias progitempool = [item for item in itempool if item.advancement] prioitempool = [item for item in itempool if not item.advancement and item.priority] restitempool = [item for item in itempool if not item.advancement and not item.priority] + + # We place all the shop items first. Like songs, they have a more limited + # set of locations that they can be placed in, so placing them first will + # reduce the odds of creating unbeatable seeds. This also avoids needing + # to create item rules for every location for whether they are a shop item + # or not. This shouldn't have much affect on item bias. + if shop_locations: + random.shuffle(shop_locations) + fill_shops(window, worlds, shop_locations, shopitempool, itempool + songitempool + dungeon_items) + # If there are dungeon items that are restricted to their original dungeon, # we must place them first to make sure that there is always a location to # place them. This could probably be replaced for more intelligent item # placement, but will leave as is for now random.shuffle(fill_locations) - fill_dungeons_restrictive(window, worlds, fill_locations, itempool + songitempool) + fill_dungeons_restrictive(window, worlds, fill_locations, dungeon_items, itempool + songitempool) # I have no idea why the locations are reversed but this is how it was, # so whatever. It can't hurt I guess @@ -78,6 +92,12 @@ def distribute_items_restrictive(window, worlds, fill_locations=None): # Log unplaced item/location warnings for item in progitempool + prioitempool + restitempool: logging.getLogger('').debug('Unplaced Items: %s [World %d]' % (item.name, item.world.id)) + if progitempool + prioitempool + restitempool: + for item in progitempool + prioitempool + restitempool: + print('Unplaced Items: %s [World %d]' % (item.name, item.world.id)) + + raise FillError('Not all items are placed.') + if fill_locations: for location in fill_locations: logging.getLogger('').debug('Unfilled Locations: %s [World %d]' % (location.name, location.world.id)) @@ -86,11 +106,9 @@ def distribute_items_restrictive(window, worlds, fill_locations=None): # Places restricted dungeon items into the worlds. To ensure there is room for them. # they are placed first so it will assume all other items are reachable -def fill_dungeons_restrictive(window, worlds, shuffled_locations, itempool): +def fill_dungeons_restrictive(window, worlds, shuffled_locations, dungeon_items, itempool): # List of states with all non-key items all_state_base_list = CollectionState.get_states_with_items([world.state for world in worlds], itempool) - # list of all dungeon items to be placed - dungeon_items = [item for world in worlds for item in world.get_restricted_dungeon_items()] # shuffle this list to avoid placement bias random.shuffle(dungeon_items) @@ -107,6 +125,31 @@ def fill_dungeons_restrictive(window, worlds, shuffled_locations, itempool): world.state.clear_cached_unreachable() +# Places the shop items into the world at the Shop locations +def fill_shops(window, worlds, locations, shoppool, itempool, attempts=15): + # List of states with all items + all_state_base_list = CollectionState.get_states_with_items([world.state for world in worlds], itempool) + + while attempts: + attempts -= 1 + try: + prizepool = list(shoppool) + prize_locs = list(locations) + random.shuffle(prizepool) + random.shuffle(prize_locs) + fill_restrictive(window, worlds, all_state_base_list, prize_locs, prizepool) + logging.getLogger('').info("Shop items placed") + except FillError as e: + logging.getLogger('').info("Failed to place shop items. Will retry %s more times", attempts) + for location in locations: + location.item = None + logging.getLogger('').info('\t%s' % str(e)) + continue + break + else: + raise FillError('Unable to place songs') + + # Places the songs into the world at the Song locations def fill_songs(window, worlds, locations, songpool, itempool, attempts=15): # get the song locations for each world @@ -127,11 +170,12 @@ def fill_songs(window, worlds, locations, songpool, itempool, attempts=15): random.shuffle(prizepool) random.shuffle(prize_locs) fill_restrictive(window, worlds, all_state_base_list, prize_locs, prizepool) + logging.getLogger('').info("Songs placed") except FillError as e: logging.getLogger('').info("Failed to place songs. Will retry %s more times", attempts) for location in empty_song_locations: location.item = None - logging.getLogger('').info(str(e)) + logging.getLogger('').info('\t%s' % str(e)) continue break else: diff --git a/ItemList.py b/ItemList.py index 2ff7ddbf2..5b4fd954f 100644 --- a/ItemList.py +++ b/ItemList.py @@ -181,7 +181,7 @@ 'DC Deku Scrub Deku Seeds': 'Buy Deku Seeds (30)', 'DC Deku Scrub Deku Shield': 'Buy Deku Shield', 'Jabu Deku Scrub Deku Nuts': 'Buy Deku Nut (5)', - 'GC Deku Scrub Bombs': 'Buy Bombs (5)', + 'GC Deku Scrub Bombs': 'Buy Bombs (5) [35]', 'GC Deku Scrub Arrows': 'Buy Arrows (30)', 'GC Deku Scrub Red Potion': 'Buy Red Potion [30]', 'GC Deku Scrub Green Potion': 'Buy Green Potion', @@ -190,7 +190,7 @@ 'SFM Grotto Deku Scrub Red Potion': 'Buy Red Potion [30]', 'SFM Grotto Deku Scrub Green Potion': 'Buy Green Potion', 'LH Grotto Deku Scrub Deku Nuts': 'Buy Deku Nut (5)', - 'LH Grotto Deku Scrub Bombs': 'Buy Bombs (5)', + 'LH Grotto Deku Scrub Bombs': 'Buy Bombs (5) [35]', 'LH Grotto Deku Scrub Arrows': 'Buy Arrows (30)', 'Valley Grotto Deku Scrub Red Potion': 'Buy Red Potion [30]', 'Valley Grotto Deku Scrub Green Potion': 'Buy Green Potion', @@ -199,15 +199,15 @@ 'LW Grotto Deku Scrub Arrows': 'Buy Arrows (30)', 'Desert Grotto Deku Scrub Red Potion': 'Buy Red Potion [30]', 'Desert Grotto Deku Scrub Green Potion': 'Buy Green Potion', - 'DMC Deku Scrub Bombs': 'Buy Bombs (5)', + 'DMC Deku Scrub Bombs': 'Buy Bombs (5) [35]', 'DMC Grotto Deku Scrub Deku Nuts': 'Buy Deku Nut (5)', - 'DMC Grotto Deku Scrub Bombs': 'Buy Bombs (5)', + 'DMC Grotto Deku Scrub Bombs': 'Buy Bombs (5) [35]', 'DMC Grotto Deku Scrub Arrows': 'Buy Arrows (30)', 'Goron Grotto Deku Scrub Deku Nuts': 'Buy Deku Nut (5)', - 'Goron Grotto Deku Scrub Bombs': 'Buy Bombs (5)', + 'Goron Grotto Deku Scrub Bombs': 'Buy Bombs (5) [35]', 'Goron Grotto Deku Scrub Arrows': 'Buy Arrows (30)', 'LLR Grotto Deku Scrub Deku Nuts': 'Buy Deku Nut (5)', - 'LLR Grotto Deku Scrub Bombs': 'Buy Bombs (5)', + 'LLR Grotto Deku Scrub Bombs': 'Buy Bombs (5) [35]', 'LLR Grotto Deku Scrub Arrows': 'Buy Arrows (30)', } @@ -488,7 +488,6 @@ def get_pool_core(world): placed_items['Kakariko Bazaar Item 4'] = 'Buy Bombchu (5)', pool.extend(normal_rupees) - placed_items.update(vanilla_deku_scrubs) else: remain_shop_items = [item for _,item in vanilla_shop_items.items()] pool.extend(min_shop_items) @@ -503,7 +502,10 @@ def get_pool_core(world): pool.extend(random.sample(veryharditems, shop_nonitem_count)) pool.extend(shopsanity_rupees) + if world.shuffle_scrubs: pool.extend(deku_scrubs_items) + else: + placed_items.update(vanilla_deku_scrubs) pool.extend(alwaysitems) for _ in range(normal_bottle_count): diff --git a/Rom.py b/Rom.py index f7e8eb2c1..ed11dacd6 100644 --- a/Rom.py +++ b/Rom.py @@ -1468,6 +1468,7 @@ def write_save_table(rom): rom.write_int32(0x2DD802C, 0x03006A40) rom.write_int16s(0x2DDEA40, list(shop_objs)) + if world.shuffle_scrubs: # Rebuild Deku Salescrub Item Table scrub_items = [0x30, 0x31, 0x3E, 0x33, 0x34, 0x37, 0x38, 0x39, 0x3A, 0x77, 0x79] rom.seek_address(0xDF8684) diff --git a/Rules.py b/Rules.py index b78f8cab3..5f6c5e061 100644 --- a/Rules.py +++ b/Rules.py @@ -302,21 +302,16 @@ def global_rules(world): forbid_item(location, 'Ice Trap') add_item_rule(location, lambda i: not (i.type == 'Song' and not i.world.shuffle_song_items and i.world.id != location.world.id)) if location.type == 'Shop': - if location.name.startswith('Bombchu Shop') or location.name.startswith('Castle Town Potion Shop'): + if location.name.startswith('Bombchu Shop') or location.name.startswith('Castle Town Potion Shop') or location.name.startswith('Castle Town Bazaar'): forbid_item(location, 'Buy Goron Tunic') forbid_item(location, 'Buy Zora Tunic') if location.name in world.shop_prices: location.price = world.shop_prices[location.name] - add_item_rule(location, lambda i: (i.type != 'Shop')) if location.price > 200: set_rule(location, lambda state: state.has('Progressive Wallet', 2)) elif location.price > 99: set_rule(location, lambda state: state.has('Progressive Wallet')) - else: - add_item_rule(location, lambda i: (i.type == 'Shop')) - else: - add_item_rule(location, lambda i: (i.type != 'Shop')) # Biggoron Sword at bombchu bowling seems to lead to a soft lock. # Unsure what causes this, but I'm leaving this to original devs. diff --git a/Settings.py b/Settings.py index 69776fb72..84c8286e0 100644 --- a/Settings.py +++ b/Settings.py @@ -707,6 +707,25 @@ def __init__(self, settings_dict): Plays spiritually best with Keysanity. ''' }), + Setting_Info('shuffle_scrubs', bool, 1, True, + { + 'help': '''\ + All Deku Salesmen will give a random item. + ''', + 'action': 'store_true' + }, + { + 'text': 'Shuffle Deku Salescrubs', + 'group': 'logic', + 'widget': 'Checkbutton', + 'default': 'unchecked', + 'tooltip':'''\ + Every Deku Salescrub will give + a random item. This adds 31 new + item locations. Scrubs prices + are all reduced to 10 Rupees. + ''' + }), Setting_Info('shuffle_dungeon_items', str, 2, True, { 'default': 'mapcompass', diff --git a/version.py b/version.py index e445b424e..56c2449a4 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.46 f.LUM' +__version__ = '2.15.47 f.LUM' From 467fb526d2efa10cf3b809c9faf56ab0ae176019 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 2 Sep 2018 15:56:07 -0400 Subject: [PATCH 369/755] Updated Readme --- README.md | 14 ++++++++++++++ version.py | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f3376fce4..afe37e525 100644 --- a/README.md +++ b/README.md @@ -103,6 +103,20 @@ Gold Skulltula Token are added to the item pool, and Gold Skulltula locations gi In addition there is an option for the logic to expect Sun's Song to obtain any night-only skulltula token. +## Shopsanity + +Shop items are shuffled within the world's shops. The logic ensures that ammo is always available from a shop in order to use the associated item. The Kakariko and Market Bazaar are seperate shops, meaning that there is a total of 8 shops in the game. + +There is also an option to replace some number of shop items in each shop with a non-shop item. These items can only be purchased once, and may require having 1 or 2 wallet upgrades but never more than 300 rupees. You can choose to have up to 4 non-shop items per shop, making a total of 32 new item locations. The random option will have each shop have a different number of these items (0 to 4). These items will always be on the left side of the shop. + +Since a lot more money is excepted to be needed to buy items, more money is added to the pool as well as a 3rd Wallet upgrade. The highest tier can hold 999 rupees. This will make it easier to obtain wallets earlier to help hold the added money. + +## Shuffle Deku Scrubs + +This option will shuffle all the Deku Salesscrubs to give random items. There is a total of 36 total scrubs that sell items. You can only buy from each scrubs once. Because of the large amount of money normally required to purchase from all the scrubs (well over 1000 rupees) the cost of all scrubs is reduced to 10 rupees. For a reference, here is a list of all the locations: . + +When this option is off, only the three unique Deku Salescrubs (Heart Piece, Stick Upgrade, and Nut Upgrade) will be randomized to a new item. Their prices and all other scrubs are unaffected. + ## Changed hint system The hint system has been changed to include different kinds of hints (such as saying a location has something good, but not saying what item it is, or saying a specific item is somewhere in a dungeon, instead of giving the specific location, and so on.) An option has been added to allow talking to gossip stones from the start. Yes, this makes the Stone of Agony completely useless. diff --git a/version.py b/version.py index 56c2449a4..4889f96e0 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.47 f.LUM' +__version__ = '2.16.1 f.LUM' From 91cf8c0c17b3c0d0eaaf38eafc5e345898e5e6d3 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 2 Sep 2018 20:47:28 -0400 Subject: [PATCH 370/755] Fix Goron Shop logic --- BaseClasses.py | 1 + EntranceShuffle.py | 1 + Rules.py | 2 +- version.py | 2 +- 4 files changed, 4 insertions(+), 2 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index c829d54d5..65cddb36f 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -395,6 +395,7 @@ def can_reach_tunic(self, tunic): for location in tunic_locations: if location.parent_region.name == 'Goron Shop': if self.can_reach('Goron Shop') and \ + self.is_adult() and \ (self.has_explosives() or self.has('Progressive Strength Upgrade') or self.has_bow()): return True elif location.parent_region.name == 'Zora Shop': diff --git a/EntranceShuffle.py b/EntranceShuffle.py index 954e52a26..67f5a30f6 100644 --- a/EntranceShuffle.py +++ b/EntranceShuffle.py @@ -278,6 +278,7 @@ def connect_doors(world, doors, targets): ('Ingo Barn', 'Ingo Barn'), ('Lon Lon Corner Tower', 'Lon Lon Corner Tower'), ('Zora Shop', 'Zora Shop'), + ('Goron Shop', 'Goron Shop'), ('Zoras Fountain Fairy', 'Zoras Fountain Fairy'), ('Kokiri Forest Storms Grotto', 'Kokiri Forest Storms Grotto'), ('Lost Woods Generic Grotto', 'Lost Woods Generic Grotto'), diff --git a/Rules.py b/Rules.py index bda81a49a..4e315a267 100644 --- a/Rules.py +++ b/Rules.py @@ -182,7 +182,7 @@ def global_rules(world): set_rule(world.get_location('Sheik in Crater'), lambda state: state.is_adult()) set_rule(world.get_location('Link the Goron'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade') or state.has_explosives() or state.has_bow())) set_rule(world.get_entrance('Crater Access'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade') or state.has_explosives() or state.has_bow())) - set_rule(world.get_entrance('Goron Shop'), lambda state: state.can_play('Zeldas Lullaby') or (state.is_adult() and (state.has('Progressive Strength Upgrade') or state.has_explosives() or state.has_bow()))) + set_rule(world.get_entrance('Goron Shop'), lambda state: state.has_explosives() or state.has('Progressive Strength') or (state.has_bow() and state.is_adult()) or ((state.has('Zeldas Letter') or world.open_kakariko) and ((state.has('Dins Fire') and state.has('Magic Meter')) or (state.can_play('Zeldas Lullaby') and state.has_sticks())))) set_rule(world.get_entrance('Lake Warp Pad'), lambda state: state.can_play('Serenade of Water') and state.can_leave_forest()) set_rule(world.get_location('King Zora Thawed'), lambda state: state.has_blue_fire()) set_rule(world.get_entrance('Zora Shop'), lambda state: state.has_blue_fire()) diff --git a/version.py b/version.py index 989da0f1b..9e497a636 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.16.2 f.LUM' +__version__ = '2.16.3 f.LUM' From 56aa061f5767ab87951420dc24d030287fd85b07 Mon Sep 17 00:00:00 2001 From: scatterclegge Date: Mon, 3 Sep 2018 03:13:56 -0230 Subject: [PATCH 371/755] added custom color options --- Gui.py | 15 +++++++++++++-- Rom.py | 17 +++++++++++++---- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/Gui.py b/Gui.py index 5cfb153c6..2806f9b8b 100755 --- a/Gui.py +++ b/Gui.py @@ -3,9 +3,11 @@ from glob import glob import json import random +import re import os import shutil from tkinter import Scale, Checkbutton, OptionMenu, Toplevel, LabelFrame, Radiobutton, PhotoImage, Tk, BOTH, LEFT, RIGHT, BOTTOM, TOP, StringVar, IntVar, Frame, Label, W, E, X, N, S, NW, Entry, Spinbox, Button, filedialog, messagebox, ttk, HORIZONTAL, Toplevel +from tkinter.colorchooser import * from urllib.parse import urlparse from urllib.request import urlopen @@ -58,7 +60,10 @@ def guivars_to_settings(guivars): result[name] = bool(guivar.get()) # dropdown/radiobox if info.type == str: - if info.gui_params and 'options' in info.gui_params: + # set guivar to hexcode if custom color + if re.match(r'Custom \(#[A-Fa-f0-9]{6}\)', guivar.get()): + result[name] = re.findall(r'[A-Fa-f0-9]{6}', guivar.get())[0] + elif info.gui_params and 'options' in info.gui_params: result[name] = info.gui_params['options'][guivar.get()] else: result[name] = guivar.get() @@ -135,7 +140,7 @@ def guiMain(settings=None): def show_settings(event=None): settings = guivars_to_settings(guivars) settings_string_var.set( settings.get_settings_string() ) - + # Update any dependencies for info in setting_infos: if info.gui_params and 'dependency' in info.gui_params: @@ -146,6 +151,12 @@ def show_settings(event=None): child.configure(state= 'normal' if dep_met else 'disabled') else: widgets[info.name].config(state = 'normal' if dep_met else 'disabled') + + if info.name in guivars and guivars[info.name].get() == 'Custom Color': + color = askcolor() + if color == (None, None): + color = ((0,0,0),'#000000') + guivars[info.name].set('Custom (' + color[1] + ')') def import_settings(event=None): diff --git a/Rom.py b/Rom.py index 02159efeb..1c78305ac 100644 --- a/Rom.py +++ b/Rom.py @@ -55,13 +55,13 @@ def get_tunic_colors(): return list(TunicColors.keys()) def get_tunic_color_options(): - return ["Random Choice", "Completely Random"] + get_tunic_colors() + return ["Custom Color", "Random Choice", "Completely Random"] + get_tunic_colors() def get_navi_colors(): return list(NaviColors.keys()) def get_navi_color_options(): - return ["Random Choice", "Completely Random"] + get_navi_colors() + return ["Custom Color", "Random Choice", "Completely Random"] + get_navi_colors() class LocalRom(object): def __init__(self, settings, patch=True): @@ -1460,7 +1460,11 @@ def write_save_table(rom): if world.tunic_colors[i] == 'Random Choice': thisColor = randomColors[i] # grab the color from the list - color = TunicColors[thisColor] + elif thisColor in TunicColors: + color = TunicColors[thisColor] + # build color from hex code + else: + color = list(int(thisColor[i:i+2], 16) for i in (0, 2 ,4)) rom.write_bytes(Tunics[i], color) # patch navi colors @@ -1487,7 +1491,12 @@ def write_save_table(rom): if world.navi_colors[i] == 'Random Choice': thisColor = randomColors[i] # grab the color from the list - color = NaviColors[thisColor] + elif thisColor in NaviColors: + color = NaviColors[thisColor] + # build color from hex code + else: + color = list(int(thisColor[i:i+2], 16) for i in (0, 2 ,4)) + color = color + [0xFF] + color + [0x00] rom.write_bytes(Navi[i][j], color) #Navi hints From 5b98088610b5d9ef00a5227a6044abeceeb834c4 Mon Sep 17 00:00:00 2001 From: scatterclegge Date: Mon, 3 Sep 2018 03:19:17 -0230 Subject: [PATCH 372/755] added custom color fallback to color lists --- Rom.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Rom.py b/Rom.py index 1c78305ac..dbdb3442a 100644 --- a/Rom.py +++ b/Rom.py @@ -37,6 +37,7 @@ "NES Green": [0x00, 0xD0, 0x00], "Dark Green": [0x00, 0x25, 0x18], "Only": [80, 140, 240], + "Custom Color": [0, 0, 0], } NaviColors = { @@ -49,6 +50,7 @@ "Black": [0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00], "Tatl": [0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0x98, 0x00, 0x00], "Tael": [0x49, 0x14, 0x6C, 0xFF, 0xFF, 0x00, 0x00, 0x00], + "Custom Color": [0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00], } def get_tunic_colors(): From 2d04e6e2303f3819e5fc473adba0bb7bf4ad3da6 Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 3 Sep 2018 02:30:30 -0400 Subject: [PATCH 373/755] Made code a bit more pythonic, made setting a dropdown --- Rom.py | 54 +++++++++++++++++++++++++++-------------------------- Settings.py | 47 +++++++++++++++++++++++----------------------- version.py | 2 +- 3 files changed, 52 insertions(+), 51 deletions(-) diff --git a/Rom.py b/Rom.py index ab211b443..46db76d38 100644 --- a/Rom.py +++ b/Rom.py @@ -1436,12 +1436,9 @@ def write_save_table(rom): random.seed() # patch music - # randomize music - if world.randomize_music: + if world.background_music == 'random': randomize_music(rom) - - # disable music - if world.disable_music: + elif world.background_music == 'off': disable_music(rom) # patch tunic colors @@ -1721,27 +1718,8 @@ def update_chest_sizes(rom, override_table): newChestType = chestTypeMap[chestType][itemType] default = (default & 0x0FFF) | newChestType rom.write_int16(address, default) - -def randomize_music(rom): - sources = list(bgm_sequence_ids) - random.shuffle(sources) - musicseqbuf = list() - instrbuf = list() - for i in range(len(sources)): - source = sources[i][1] - musicseqbuf.append(rom.read_bytes(0xB89AE0 + (source * 0x10), 0x10)) - instrbuf.append(rom.read_bytes(0xB89910 + 0xDD + (source * 2), 2)) - for i in range(len(bgm_sequence_ids)): - dest = bgm_sequence_ids[i][1] - rom.write_bytes(0xB89AE0 + (dest * 0x10), musicseqbuf[i]) - rom.write_bytes(0xB89910 + 0xDD + (dest * 2), instrbuf[i]) - -def disable_music(rom): - blank_track = rom.read_bytes(0xB89AE0, 0x10) - for i in range(len(bgm_sequence_ids)): - dest = bgm_sequence_ids[i][1] - rom.write_bytes(0xB89AE0 + (dest * 0x10), blank_track) - + + # Format: (Title, Sequence ID) bgm_sequence_ids = [ ('Hyrule Field', 0x02), @@ -1793,3 +1771,27 @@ def disable_music(rom): ('Fire Boss', 0x6B), ('Mini-game', 0x6C) ] + +def randomize_music(rom): + # Read in all the Music data + bgm_data = [] + for bgm in bgm_sequence_ids: + bgm_sequence = rom.read_bytes(0xB89AE0 + (bgm[1] * 0x10), 0x10) + bgm_instrument = rom.read_int16(0xB89910 + 0xDD + (bgm[1] * 2)) + bgm_data.append((bgm_sequence, bgm_instrument)) + + # shuffle data + random.shuffle(bgm_data) + + # Write Music data back in random ordering + for bgm in bgm_sequence_ids: + bgm_sequence, bgm_instrument = bgm_data.pop() + rom.write_bytes(0xB89AE0 + (bgm[1] * 0x10), bgm_sequence) + rom.write_int16(0xB89910 + 0xDD + (bgm[1] * 2), bgm_instrument) + +def disable_music(rom): + # First track is no music + blank_track = rom.read_bytes(0xB89AE0 + (0 * 0x10), 0x10) + for bgm in bgm_sequence_ids: + rom.write_bytes(0xB89AE0 + (bgm[1] * 0x10), blank_track) + \ No newline at end of file diff --git a/Settings.py b/Settings.py index 82166e39d..5488e9399 100644 --- a/Settings.py +++ b/Settings.py @@ -1336,37 +1336,36 @@ def __init__(self, settings_dict): 'Switch': 'switch', } }), - - Setting_Info('disable_music', bool, 1, False, - { - 'action': 'store_true', - 'help': '''\ - Disable background music. SFX and ambient sounds remain. - ''' - }, - { - 'text': 'Disable Background Music', - 'group': 'cosmetics', - 'widget': 'Checkbutton', - 'default': False, - 'tooltip': '''\ - Disable background music. SFX and ambient sounds remain. - ''' - }), - Setting_Info('randomize_music', bool, 1, False, + Setting_Info('background_music', str, 2, False, { - 'action': 'store_true', + 'default': 'normal', + 'const': 'normal', + 'nargs': '?', + 'choices': ['normal', 'off', 'random'], 'help': '''\ - Randomize background music. + Sets the background music behavior + normal: Areas play their normal background music + off: No background music + random: Areas play random background music ''' }, { - 'text': 'Randomize Background Music', + 'text': 'Background Music', 'group': 'cosmetics', - 'widget': 'Checkbutton', - 'default': False, + 'widget': 'Combobox', + 'default': 'Normal', + 'options': { + 'Normal': 'normal', + 'No Music': 'off', + 'Random': 'random', + }, 'tooltip': '''\ - Randomize background music. + 'No Music': No background is played. + Useful for playing your own music + over the game. + + 'Random': Area background music is + randomized. ''' }), diff --git a/version.py b/version.py index b3dd3f1ae..ed913d6fe 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.42 f.LUM' +__version__ = '2.15.43 f.LUM' From 4c57238e1d0d6e7da8932186bb48286902245396 Mon Sep 17 00:00:00 2001 From: scatterclegge Date: Mon, 3 Sep 2018 11:37:54 -0230 Subject: [PATCH 374/755] fixed custom color being in list twice --- Rom.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Rom.py b/Rom.py index dbdb3442a..a71e98f54 100644 --- a/Rom.py +++ b/Rom.py @@ -57,13 +57,13 @@ def get_tunic_colors(): return list(TunicColors.keys()) def get_tunic_color_options(): - return ["Custom Color", "Random Choice", "Completely Random"] + get_tunic_colors() + return ["Random Choice", "Completely Random"] + get_tunic_colors() def get_navi_colors(): return list(NaviColors.keys()) def get_navi_color_options(): - return ["Custom Color", "Random Choice", "Completely Random"] + get_navi_colors() + return ["Random Choice", "Completely Random"] + get_navi_colors() class LocalRom(object): def __init__(self, settings, patch=True): From a072e7cabddd1b8f11cf9b52ec0f1c0159adfab0 Mon Sep 17 00:00:00 2001 From: scatterclegge Date: Mon, 3 Sep 2018 12:47:00 -0230 Subject: [PATCH 375/755] made custom colors work with cli --- Settings.py | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/Settings.py b/Settings.py index a03cab948..e527c6ea3 100644 --- a/Settings.py +++ b/Settings.py @@ -155,6 +155,25 @@ def __init__(self, settings_dict): self.sanatize_seed() self.numeric_seed = self.get_numeric_seed() +def parse_custom_tunic_color(s): + if s == 'Custom Color': + raise argparse.ArgumentTypeError('Specify custom color by using \'Custom (#xxxxxx)\'') + elif re.match(r'^Custom \(#[A-Fa-f0-9]{6}\)$', s): + return re.findall(r'[A-Fa-f0-9]{6}', s)[0] + elif s in get_tunic_color_options(): + return s + else: + raise argparse.ArgumentTypeError('Invalid color specified') + +def parse_custom_navi_color(s): + if s == 'Custom Color': + raise argparse.ArgumentTypeError('Specify custom color by using \'Custom (#xxxxxx)\'') + elif re.match(r'^Custom \(#[A-Fa-f0-9]{6}\)$', s): + return re.findall(r'[A-Fa-f0-9]{6}', s)[0] + elif s in get_navi_color_options(): + return s + else: + raise argparse.ArgumentTypeError('Invalid color specified') # a list of the possible settings setting_infos = [ @@ -1359,7 +1378,7 @@ def __init__(self, settings_dict): 'default': 'Kokiri Green', 'const': 'Kokiri Green', 'nargs': '?', - 'choices': get_tunic_color_options(), + 'type': parse_custom_tunic_color, 'help': '''\ Choose the color for Link's Kokiri Tunic. (default: %(default)s) @@ -1383,7 +1402,7 @@ def __init__(self, settings_dict): 'default': 'Goron Red', 'const': 'Goron Red', 'nargs': '?', - 'choices': get_tunic_color_options(), + 'type': parse_custom_tunic_color, 'help': '''\ Choose the color for Link's Goron Tunic. (default: %(default)s) Color: Make the Goron Tunic this color. @@ -1409,7 +1428,7 @@ def __init__(self, settings_dict): 'default': 'Zora Blue', 'const': 'Zora Blue', 'nargs': '?', - 'choices': get_tunic_color_options(), + 'type': parse_custom_tunic_color, 'help': '''\ Choose the color for Link's Zora Tunic. (default: %(default)s) Color: Make the Zora Tunic this color. @@ -1435,7 +1454,7 @@ def __init__(self, settings_dict): 'default': 'White', 'const': 'White', 'nargs': '?', - 'choices': get_navi_color_options(), + 'type': parse_custom_navi_color, 'help': '''\ Choose the color for Navi when she is idle. (default: %(default)s) Color: Make the Navi this color. @@ -1461,7 +1480,7 @@ def __init__(self, settings_dict): 'default': 'Yellow', 'const': 'Yellow', 'nargs': '?', - 'choices': get_navi_color_options(), + 'type': parse_custom_navi_color, 'help': '''\ Choose the color for Navi when she is targeting an enemy. (default: %(default)s) Color: Make the Navi this color. @@ -1487,7 +1506,7 @@ def __init__(self, settings_dict): 'default': 'Light Blue', 'const': 'Light Blue', 'nargs': '?', - 'choices': get_navi_color_options(), + 'type': parse_custom_navi_color, 'help': '''\ Choose the color for Navi when she is targeting an NPC. (default: %(default)s) Color: Make the Navi this color. @@ -1513,7 +1532,7 @@ def __init__(self, settings_dict): 'default': 'Green', 'const': 'Green', 'nargs': '?', - 'choices': get_navi_color_options(), + 'type': parse_custom_navi_color, 'help': '''\ Choose the color for Navi when she is targeting a prop. (default: %(default)s) Color: Make the Navi this color. From a6bcd55a88b01f0d7a8e14dcbd4472472138f8fa Mon Sep 17 00:00:00 2001 From: scatterclegge Date: Mon, 3 Sep 2018 12:49:10 -0230 Subject: [PATCH 376/755] stricter regex for custom color, probably not necessary --- Gui.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gui.py b/Gui.py index 2806f9b8b..676243321 100755 --- a/Gui.py +++ b/Gui.py @@ -61,7 +61,7 @@ def guivars_to_settings(guivars): # dropdown/radiobox if info.type == str: # set guivar to hexcode if custom color - if re.match(r'Custom \(#[A-Fa-f0-9]{6}\)', guivar.get()): + if re.match(r'^Custom \(#[A-Fa-f0-9]{6}\)$', guivar.get()): result[name] = re.findall(r'[A-Fa-f0-9]{6}', guivar.get())[0] elif info.gui_params and 'options' in info.gui_params: result[name] = info.gui_params['options'][guivar.get()] From ea36cbd8b04b4e8fd3f8b8aaa933a8f79f09a546 Mon Sep 17 00:00:00 2001 From: scatterclegge Date: Mon, 3 Sep 2018 14:20:33 -0230 Subject: [PATCH 377/755] added saving for custom colors --- Gui.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Gui.py b/Gui.py index 676243321..ee4d4bc85 100755 --- a/Gui.py +++ b/Gui.py @@ -35,9 +35,12 @@ def settings_to_guivars(settings, guivars): guivar.set( "" ) else: if info.gui_params and 'options' in info.gui_params: - for gui_text,gui_value in info.gui_params['options'].items(): - if gui_value == value: - guivar.set( gui_text ) + if 'Custom Color' in info.gui_params['options'] and re.match(r'^[A-Fa-f0-9]{6}$', value): + guivar.set('Custom (#' + value + ')') + else: + for gui_text,gui_value in info.gui_params['options'].items(): + if gui_value == value: + guivar.set( gui_text ) else: guivar.set( value ) # text field for a number... From 77e388eac6c3a8ff04bda3f1084528d4a77a50db Mon Sep 17 00:00:00 2001 From: AmazingAmpharos Date: Mon, 3 Sep 2018 12:18:57 -0500 Subject: [PATCH 378/755] Don't pre-set flags for Navi This is important for MQ compatibility. --- Patches.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/Patches.py b/Patches.py index 353d387d9..06f2dc6c0 100644 --- a/Patches.py +++ b/Patches.py @@ -829,18 +829,18 @@ def write_save_table(rom): #write_bits_to_save(0x00D4 + 0x01 * 0x1C + 0x04 + 0x2, 0x40) # Dodongo's Cavern switch flag (navi text?) #write_bits_to_save(0x00D4 + 0x01 * 0x1C + 0x04 + 0x2, 0x08) # Dodongo's Cavern switch flag (navi text?) #write_bits_to_save(0x00D4 + 0x01 * 0x1C + 0x04 + 0x2, 0x01) # Dodongo's Cavern switch flag (navi text?) - write_bits_to_save(0x00D4 + 0x02 * 0x1C + 0x04 + 0x0, 0x08) # Inside Jabu-Jabu's Belly switch flag (ruto?) - write_bits_to_save(0x00D4 + 0x02 * 0x1C + 0x04 + 0x0, 0x04) # Inside Jabu-Jabu's Belly switch flag (ruto?) - write_bits_to_save(0x00D4 + 0x02 * 0x1C + 0x04 + 0x0, 0x02) # Inside Jabu-Jabu's Belly switch flag (ruto?) - write_bits_to_save(0x00D4 + 0x02 * 0x1C + 0x04 + 0x0, 0x01) # Inside Jabu-Jabu's Belly switch flag (ruto?) - write_bits_to_save(0x00D4 + 0x02 * 0x1C + 0x04 + 0x1, 0x01) # Inside Jabu-Jabu's Belly switch flag (ruto?) + #write_bits_to_save(0x00D4 + 0x02 * 0x1C + 0x04 + 0x0, 0x08) # Inside Jabu-Jabu's Belly switch flag (ruto?) + #write_bits_to_save(0x00D4 + 0x02 * 0x1C + 0x04 + 0x0, 0x04) # Inside Jabu-Jabu's Belly switch flag (ruto?) + #write_bits_to_save(0x00D4 + 0x02 * 0x1C + 0x04 + 0x0, 0x02) # Inside Jabu-Jabu's Belly switch flag (ruto?) + #write_bits_to_save(0x00D4 + 0x02 * 0x1C + 0x04 + 0x0, 0x01) # Inside Jabu-Jabu's Belly switch flag (ruto?) + #write_bits_to_save(0x00D4 + 0x02 * 0x1C + 0x04 + 0x1, 0x01) # Inside Jabu-Jabu's Belly switch flag (ruto?) write_bits_to_save(0x00D4 + 0x03 * 0x1C + 0x04 + 0x0, 0x08) # Forest Temple switch flag (poes?) - write_bits_to_save(0x00D4 + 0x03 * 0x1C + 0x04 + 0x0, 0x01) # Forest Temple switch flag (poes?) - write_bits_to_save(0x00D4 + 0x03 * 0x1C + 0x04 + 0x2, 0x02) # Forest Temple switch flag (poes?) - write_bits_to_save(0x00D4 + 0x03 * 0x1C + 0x04 + 0x2, 0x01) # Forest Temple switch flag (poes?) - write_bits_to_save(0x00D4 + 0x04 * 0x1C + 0x04 + 0x1, 0x08) # Fire Temple switch flag (First locked door?) + #write_bits_to_save(0x00D4 + 0x03 * 0x1C + 0x04 + 0x0, 0x01) # Forest Temple switch flag (Poe Sisters cutscene) + #write_bits_to_save(0x00D4 + 0x03 * 0x1C + 0x04 + 0x2, 0x02) # Forest Temple switch flag (poes?) + #write_bits_to_save(0x00D4 + 0x03 * 0x1C + 0x04 + 0x2, 0x01) # Forest Temple switch flag (poes?) + #write_bits_to_save(0x00D4 + 0x04 * 0x1C + 0x04 + 0x1, 0x08) # Fire Temple switch flag (First locked door?) write_bits_to_save(0x00D4 + 0x05 * 0x1C + 0x04 + 0x1, 0x01) # Water temple switch flag (navi text?) - write_bits_to_save(0x00D4 + 0x0B * 0x1C + 0x04 + 0x2, 0x01) # Gerudo Training Ground switch flag (command text?) + #write_bits_to_save(0x00D4 + 0x0B * 0x1C + 0x04 + 0x2, 0x01) # Gerudo Training Ground switch flag (command text?) write_bits_to_save(0x00D4 + 0x51 * 0x1C + 0x04 + 0x2, 0x08) # Hyrule Field switch flag (???) write_bits_to_save(0x00D4 + 0x55 * 0x1C + 0x04 + 0x0, 0x80) # Kokiri Forest switch flag (???) write_bits_to_save(0x00D4 + 0x56 * 0x1C + 0x04 + 0x2, 0x40) # Sacred Forest Meadow switch flag (???) From a36af20ad6dccbf362fc7c7320b5be088441683c Mon Sep 17 00:00:00 2001 From: AmazingAmpharos Date: Mon, 3 Sep 2018 13:31:36 -0500 Subject: [PATCH 379/755] Various updates from TR's fork The conflicts were too annoying; I did this manually. --- HintList.py | 49 ++++++++++++------------ Hints.py | 2 +- Patches.py | 89 ++++++++++++++++++++++++++++++++++++++++--- Rom.py | 106 +++++++++++++++++++++++++++++++--------------------- Settings.py | 58 +++++++++++++++++----------- version.py | 2 +- 6 files changed, 210 insertions(+), 96 deletions(-) diff --git a/HintList.py b/HintList.py index 966d4cc26..385b02412 100644 --- a/HintList.py +++ b/HintList.py @@ -16,7 +16,7 @@ def getHint(string): ret = Hint(hint, text, type) break else: - text, type = hintTable['useless'] + text, type = hintTable['KeyError'] ret = Hint(hint, text, type) return ret @@ -36,7 +36,7 @@ def getHintGroup(string, world): hintTable = {'Hammer': ("the dragon smasher", 'item'), 'Magic Meter': ("pixie dust", 'item'), 'Double Defense': ("a white outline", 'item'), - 'Progressive Hookshot': ("Dampe's Keepsake", 'item'), + 'Progressive Hookshot': ("Dampe's keepsake", 'item'), 'Progressive Strength Upgrade': ("power gloves", 'item'), 'Hover Boots': ("butter boots", 'item'), 'Master Sword': ("evil's bane", 'item'), @@ -44,7 +44,7 @@ def getHintGroup(string, world): 'Farores Wind': ("teleportation", 'item'), 'Nayrus Love': ("a safe space", 'item'), 'Ice Arrows': ("the refrigerator rocket", 'item'), - 'Lens of Truth': ("the perjurless porthole", 'item'), + 'Lens of Truth': ("the perjureless porthole", 'item'), 'Dins Fire': ("an inferno", 'item'), 'Ocarina': ("a flute", 'item'), 'Fairy Ocarina': ("a brown flute", 'item'), @@ -56,7 +56,7 @@ def getHintGroup(string, world): 'Nocturne of Shadow': ("a song of spooky spirits", 'item'), 'Bow': ("an archery enabler", 'item'), 'Bomb Bag': ("an explosive container", 'item'), - 'Sarias Song': ("a song of dancing gorons", 'item'), + 'Sarias Song': ("a song of dancing Gorons", 'item'), 'Song of Time': ("a song 7 years long", 'item'), 'Song of Storms': ("Rain Dance", 'item'), 'Minuet of Forest': ("the song of tall trees", 'item'), @@ -64,7 +64,7 @@ def getHintGroup(string, world): 'Slingshot': ("a seed shooter", 'item'), 'Boomerang': ("a banana", 'item'), 'Fire Arrows': ("the furnace firearm", 'item'), - 'Ocarina of Time': ("blue flute", 'item'), + 'Ocarina of Time': ("a blue flute", 'item'), 'Bottle': ("a fairy prison", 'item'), 'Bottle with Letter': ("a call for help", 'item'), 'Bottle with Milk': ("cow juice", 'item'), @@ -76,7 +76,7 @@ def getHintGroup(string, world): 'Bottle with Blue Fire': ("a conflagration canteen", 'item'), 'Bottle with Bugs': ("a terrarium", 'item'), 'Bottle with Poe': ("a spooky ghost", 'item'), - 'Progressive Scale': ("Zora Flippers", 'item'), + 'Progressive Scale': ("Zora's Flippers", 'item'), 'Stone of Agony': ("an empty chest", 'item'), 'Eponas Song': ("an equestrian etude", 'item'), 'Epona': ("a horse", 'item'), @@ -102,7 +102,7 @@ def getHintGroup(string, world): 'Light Arrows': ("the shining shot", 'item'), 'Kokiri Sword': ("a butter knife", 'item'), 'Biggoron Sword': ("a shield disabler", 'item'), - 'Pocket Egg': ("a cucco container", 'item'), + 'Pocket Egg': ("a Cucco container", 'item'), 'Weird Egg': ("a chicken dilemma", 'item'), 'Pocket Cucco': ("a little clucker", 'item'), 'Cojiro': ("a cerulean capon", 'item'), @@ -119,7 +119,7 @@ def getHintGroup(string, world): 'BossKey': ("a master of unlocking", 'item'), 'SmallKey': ("a tool for unlocking", 'item'), 'FortressSmallKey': ("a get out of jail free card", 'item'), - 'useless': ("something worthless", 'item'), + 'useless': ("something mysterious", 'item'), 'Arrows (5)': ("danger darts", 'item'), 'Arrows (10)': ("danger darts", 'item'), 'Arrows (30)': ("danger darts", 'item'), @@ -128,6 +128,7 @@ def getHintGroup(string, world): 'Bombs (20)': ("lots-o-explosives", 'item'), 'Ice Trap': ("a gift from Ganon", 'item'), 'Magic Bean': ("wizardly legumes", 'item'), + 'Bombchus': ("mice bombs", 'item'), 'Bombchus (5)': ("mice bombs", 'item'), 'Bombchus (10)': ("mice bombs", 'item'), 'Bombchus (20)': ("mice bombs", 'item'), @@ -137,14 +138,14 @@ def getHintGroup(string, world): #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box '10 Big Poes': ("They say that Big Poes leads&to", 'alwaysLocation'), 'Deku Theater Mask of Truth': ("They say that the Mask of Truth&yields", 'alwaysLocation'), - '30 Gold Skulltulla Reward': ("They say that slaying&30 Gold Skulltullas&reveals", 'alwaysLocation'), - '40 Gold Skulltulla Reward': ("They say that slaying&40 Gold Skulltullas&reveals", 'alwaysLocation'), - '50 Gold Skulltulla Reward': ("They say that slaying&50 Gold Skulltullas&reveals", 'alwaysLocation'), + '30 Gold Skulltulla Reward': ("They say that slaying&30 Gold Skulltulas&reveals", 'alwaysLocation'), + '40 Gold Skulltulla Reward': ("They say that slaying&40 Gold Skulltulas&reveals", 'alwaysLocation'), + '50 Gold Skulltulla Reward': ("They say that slaying&50 Gold Skulltulas&reveals", 'alwaysLocation'), 'Song from Ocarina of Time': ("They say the Ocarina of Time&teaches", 'alwaysLocation'), 'Biggoron': ("They say that Biggoron&crafts", 'alwaysLocation'), 'Child Fishing': ("They say that fishing in youth&bestows", 'location'), 'Adult Fishing': ("They say that fishing in maturity&bestows", 'location'), - '20 Gold Skulltulla Reward': ("They say that slaying&20 Gold Skulltullas&reveals", 'location'), + '20 Gold Skulltulla Reward': ("They say that slaying&20 Gold Skulltulas&reveals", 'location'), 'Treasure Chest Game': ("They say that gambling&grants", 'location'), 'Darunias Joy': ("They say that Darunia's dance leads&to", 'location'), 'Frog Ocarina Game': ("They say The Frogs of Zora River&hold", 'location'), @@ -156,7 +157,7 @@ def getHintGroup(string, world): 'Forest Temple Floormaster Chest': ("Deep in the forest, shadows guard a&chest containing", 'location'), 'Fire Temple Scarecrow Chest': ("They say high in the Fire Temple,&Pierre hid", 'location'), 'Fire Temple Megaton Hammer Chest': ("They say that the highest&chest in the crater&holds", 'location'), - 'Water Temple River Chest': ("They say deep under the lake&beyond the currents&hides", 'location'), + 'Water Temple River Chest': ("They say deep under the lake,&beyond the currents,&hides", 'location'), 'Water Temple Boss Key Chest': ("Deep under the lake,&the gilded chest&contains", 'location'), 'Gerudo Training Grounds Underwater Silver Rupee Chest': ("They say those who seek&sunken silver rupees will&find", 'location'), 'Gerudo Training Grounds Maze Path Final Chest': ("They say that past all the locked&doors is", 'location'), @@ -170,7 +171,7 @@ def getHintGroup(string, world): 'Song at Windmill': ("They say that Guru-guru is driven&mad by", 'location'), 'Sheik Forest Song': ("They say that deep&in the forest Sheik&teaches", 'location'), 'Sheik at Temple': ("They say that Sheik&waits at a monument to time to&teach", 'location'), - 'Sheik in Crater': ("They say that the craters melody&is", 'location'), + 'Sheik in Crater': ("They say that the crater's melody&is", 'location'), 'Sheik in Ice Cavern': ("They say that the&frozen cavern echoes&with", 'location'), 'Sheik in Kakariko': ("They say that a&ravaged village mourns&with", 'location'), 'Sheik at Colossus': ("They say that a hero ventures&beyond the Wasteland to&learn", 'location'), @@ -187,7 +188,7 @@ def getHintGroup(string, world): '1007': ("They say that PJ64 is a terrible&emulator.", 'junkHint'), '1008': ("'Member when Ganon was a blue pig?^I 'member.", 'junkHint'), '1009': ("One who does not have Triforce&can't go in.", 'junkHint'), - '1010': ("Save your future,&end the Happy Mask Salesmen.", 'junkHint'), + '1010': ("Save your future,&end the Happy Mask Salesman.", 'junkHint'), '1012': ("I'm stoned. Get it?", 'junkHint'), '1013': ("Hoot! Hoot! Would you like me to&repeat that?", 'junkHint'), '1014': ("Gorons are stupid.&They eat rocks.", 'junkHint'), @@ -195,13 +196,13 @@ def getHintGroup(string, world): '1016': ("The single rupee is a&unique item.", 'junkHint'), '1017': ("Without the Lens of Truth, the&Treasure Chest Mini-Game&is a 1 out of 32 chance.^Good luck!", 'junkHint'), '1018': ("Use bombs wisely.", 'junkHint'), - '1021': ("I found you faker!", 'junkHint'), + '1021': ("I found you, faker!", 'junkHint'), '1022': ("You're comparing&yourself to me?^Ha! You're not even good&enough to be my fake.", 'junkHint'), '1023': ("I'll make you eat those words.", 'junkHint'), '1024': ("What happened to Sheik?", 'junkHint'), '1025': ("L2P @.", 'junkHint'), '1026': ("I heard @ isn't&very good at Zelda.", 'junkHint'), - '1027': ("I'm Lunk from Pennsylvania.", 'junkHint'), + '1027': ("I'm Lonk from Pennsylvania.", 'junkHint'), '1028': ("I bet you'd like to&have more bombs.", 'junkHint'), '1029': ("When all else fails&use Fire.", 'junkHint'), '1030': ("Here's a hint @.&Don't be bad.", 'junkHint'), @@ -216,8 +217,8 @@ def getHintGroup(string, world): '1039': ("Medigoron sells the earliest&Breath of the Wild demo.", 'junkHint'), '1040': ("There's a reason why I am special&inquisitor!", 'junkHint'), '1041': ("You were almost a @&sandwich.", 'junkHint'), - '1042': ("I'm a helpful hint Gossip Stone!^See I'm helping.", 'junkHint'), - '1043': ("Dear @, please come to the&castle. I've baked a cake for you.&&Yours truly, princess Zelda.", 'junkHint'), + '1042': ("I'm a helpful hint Gossip Stone!^See, I'm helping.", 'junkHint'), + '1043': ("Dear @, please come to the&castle. I've baked a cake for you.&&Yours truly, Princess Zelda.", 'junkHint'), '1044': ("I like shorts! They're comfy and&easy to wear!", 'junkHint'), '1044': ("They say all toasters toast toast.", 'junkHint'), '1045': ("They say that Okami is&the best Zelda game.", 'junkHint'), @@ -232,7 +233,7 @@ def getHintGroup(string, world): 'Spirit Temple': ("the goddess of the sand", 'dungeon'), 'Ice Cavern': ("a frozen maze", 'dungeon'), 'Bottom of the Well': ("a shadow\'s prison", 'dungeon'), - 'Gerudo Training Grounds': ("the test of theives", 'dungeon'), + 'Gerudo Training Grounds': ("the test of thieves", 'dungeon'), 'Ganons Castle': ("a conquered citadel", 'dungeon'), #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box 'Spiritual Stone Text Start': ("Ye who owns 3 Spiritual Stones...^", 'boss'), @@ -250,19 +251,19 @@ def getHintGroup(string, world): 'Spiritual Stone Text End': ("Stand with the Ocarina of Time&and play the Song of Time.", 'boss'), 'Medallion Text End': ("Together with the Hero of Time,&the awakened ones will bind the&evil and return the light of peace&to the world.", 'boss'), #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box - 'Validation Line': ("Hmph... Since you made it this far&I'll let you know what glorious&prize of Ganon's you likely&missed out on in my tower.^Behold...^", 'validation line'), + 'Validation Line': ("Hmph... Since you made it this far,&I'll let you know what glorious&prize of Ganon's you likely&missed out on in my tower.^Behold...^", 'validation line'), 'Light Arrow Location': ("Ha ha ha... You'll never beat me by&reflecting my lightning bolts&and unleashing the arrows from&", 'Light Arrow Location'), '2001': ("Oh! It's @.&I was expecting someone called&Sheik. Do you know what&happened to them?", 'ganonLine'), '2002': ("I knew I shouldn't have put the key&on the other side of my door.", 'ganonLine'), '2003': ("Looks like it's time for a&round of tennis.", 'ganonLine'), - '2004': ("You'll never deflect my bolts of&energy with your sword,&then shot me with those Light&Arrows you happen to have.", 'ganonLine'), + '2004': ("You'll never deflect my bolts of&energy with your sword,&then shoot me with those Light&Arrows you happen to have.", 'ganonLine'), '2005': ("Why did I leave my trident&back in the desert?", 'ganonLine'), '2006': ("Zelda is probably going to do&something stupid, like send you&back to your own timeline.^So this is quite meaningless.&Do you really want&to save this moron?", 'ganonLine'), '2007': ("What about Zelda makes you think&she'd be a better ruler than I?^I saved Lon Lon Ranch,&fed the hungry,&and my castle floats.", 'ganonLine'), '2008': ("I've learned this spell,&it's really neat,&I'll keep it later&for your treat!", 'ganonLine'), '2009': ("Many tricks are up my sleeve,&to save yourself&you'd better leave!", 'ganonLine'), - '2010': ("After what you did to&Koholint Island how can&you call me the bad guy?", 'ganonLine'), - '2011': ("Today let's begin down&'The Hero is Defeated' timeline.", 'ganonLine'), + '2010': ("After what you did to&Koholint Island, how can&you call me the bad guy?", 'ganonLine'), + '2011': ("Today, let's begin down&'The Hero is Defeated' timeline.", 'ganonLine'), } # exclusions from the list for custom logic diff --git a/Hints.py b/Hints.py index 0fa2a0f6a..7455b8992 100644 --- a/Hints.py +++ b/Hints.py @@ -258,7 +258,7 @@ def buildGanonText(world, messages): text = get_raw_text(getHint('Validation Line').text) for location in world.get_locations(): if location.name == 'Ganons Tower Boss Key Chest': - text += get_raw_text(getHint(location.item.name).text) + text += get_raw_text(getHint(getItemGenericName(location.item)).text) update_message_by_id(messages, 0x70CC, text) diff --git a/Patches.py b/Patches.py index 06f2dc6c0..ba524f5b6 100644 --- a/Patches.py +++ b/Patches.py @@ -1270,14 +1270,14 @@ def write_save_table(rom): # actually write the save table to rom write_save_table(rom) - # disable music - if world.disable_music: - rom.write_bytes(0xB3CB18, [0x00, 0x00, 0x20, 0x25]) - - patch_files(world, rom) - # re-seed for aesthetic effects. They shouldn't be affected by the generation seed random.seed() + + # patch music + if world.background_music == 'random': + randomize_music(rom) + elif world.background_music == 'off': + disable_music(rom) # patch tunic colors # Custom color tunic stuff @@ -1556,3 +1556,80 @@ def update_chest_sizes(rom, override_table): newChestType = chestTypeMap[chestType][itemType] default = (default & 0x0FFF) | newChestType rom.write_int16(address, default) + + +# Format: (Title, Sequence ID) +bgm_sequence_ids = [ + ('Hyrule Field', 0x02), + ('Dodongos Cavern', 0x18), + ('Kakariko Adult', 0x19), + ('Battle', 0x1A), + ('Boss Battle', 0x1B), + ('Inside Deku Tree', 0x1C), + ('Market', 0x1D), + ('Title Theme', 0x1E), + ('House', 0x1F), + ('Jabu Jabu', 0x26), + ('Kakariko Child', 0x27), + ('Fairy Fountain', 0x28), + ('Zelda Theme', 0x29), + ('Fire Temple', 0x2A), + ('Forest Temple', 0x2C), + ('Castle Courtyard', 0x2D), + ('Ganondorf Theme', 0x2E), + ('Lon Lon Ranch', 0x2F), + ('Goron City', 0x30), + ('Miniboss Battle', 0x38), + ('Temple of Time', 0x3A), + ('Kokiri Forest', 0x3C), + ('Lost Woods', 0x3E), + ('Spirit Temple', 0x3F), + ('Horse Race', 0x40), + ('Ingo Theme', 0x42), + ('Fairy Flying', 0x4A), + ('Deku Tree', 0x4B), + ('Windmill Hut', 0x4C), + ('Shooting Gallery', 0x4E), + ('Sheik Theme', 0x4F), + ('Zoras Domain', 0x50), + ('Shop', 0x55), + ('Chamber of the Sages', 0x56), + ('File Select', 0x57), + ('Ice Cavern', 0x58), + ('Kaepora Gaebora', 0x5A), + ('Shadow Temple', 0x5B), + ('Water Temple', 0x5C), + ('Gerudo Valley', 0x5F), + ('Potion Shop', 0x60), + ('Kotake and Koume', 0x61), + ('Castle Escape', 0x62), + ('Castle Underground', 0x63), + ('Ganondorf Battle', 0x64), + ('Ganon Battle', 0x65), + ('Fire Boss', 0x6B), + ('Mini-game', 0x6C) +] + +def randomize_music(rom): + # Read in all the Music data + bgm_data = [] + for bgm in bgm_sequence_ids: + bgm_sequence = rom.read_bytes(0xB89AE0 + (bgm[1] * 0x10), 0x10) + bgm_instrument = rom.read_int16(0xB89910 + 0xDD + (bgm[1] * 2)) + bgm_data.append((bgm_sequence, bgm_instrument)) + + # shuffle data + random.shuffle(bgm_data) + + # Write Music data back in random ordering + for bgm in bgm_sequence_ids: + bgm_sequence, bgm_instrument = bgm_data.pop() + rom.write_bytes(0xB89AE0 + (bgm[1] * 0x10), bgm_sequence) + rom.write_int16(0xB89910 + 0xDD + (bgm[1] * 2), bgm_instrument) + +def disable_music(rom): + # First track is no music + blank_track = rom.read_bytes(0xB89AE0 + (0 * 0x10), 0x10) + for bgm in bgm_sequence_ids: + rom.write_bytes(0xB89AE0 + (bgm[1] * 0x10), blank_track) + \ No newline at end of file diff --git a/Rom.py b/Rom.py index db017dc96..8c9ce5a3a 100644 --- a/Rom.py +++ b/Rom.py @@ -10,49 +10,69 @@ from Utils import default_output_path -class LocalRom(object): - - def __init__(self, settings, patch=True): - self.last_address = None - - file = settings.rom - decomp_file = os.path.join(default_output_path(settings.output_dir), 'ZOOTDEC.z64') - - validCRC = [] - validCRC.append(bytearray([0xEC, 0x70, 0x11, 0xB7, 0x76, 0x16, 0xD7, 0x2B])) # Compressed - validCRC.append(bytearray([0x70, 0xEC, 0xB7, 0x11, 0x16, 0x76, 0x2B, 0xD7])) # Byteswap compressed - validCRC.append(bytearray([0x93, 0x52, 0x2E, 0x7B, 0xE5, 0x06, 0xD4, 0x27])) # Decompressed - - os.chdir(os.path.dirname(os.path.realpath(__file__))) - #os.chdir(output_path(os.path.dirname(os.path.realpath(__file__)))) - with open(file, 'rb') as stream: - self.buffer = read_rom(stream) - file_name = os.path.splitext(file) - romCRC = self.buffer[0x10:0x18] - if romCRC not in validCRC: - raise RuntimeError('ROM is not a valid OoT 1.0 US ROM.') - if len(self.buffer) < 0x2000000 or len(self.buffer) > (0x4000000) or file_name[1] not in ['.z64', '.n64']: - raise RuntimeError('ROM is not a valid OoT 1.0 ROM.') - if len(self.buffer) == 0x2000000: - if platform.system() == 'Windows': - if 8 * struct.calcsize("P") == 64: - subprocess.call(["Decompress\\Decompress.exe", file, decomp_file]) - else: - subprocess.call(["Decompress\\Decompress32.exe", file, decomp_file]) - with open(decomp_file, 'rb') as stream: - self.buffer = read_rom(stream) - elif platform.system() == 'Linux': - subprocess.call(["Decompress/Decompress", file]) - with open(("ZOOTDEC.z64"), 'rb') as stream: - self.buffer = read_rom(stream) - elif platform.system() == 'Darwin': - subprocess.call(["Decompress/Decompress.out", file]) - with open(("ZOOTDEC.z64"), 'rb') as stream: - self.buffer = read_rom(stream) - else: - raise RuntimeError('Unsupported operating system for decompression. Please supply an already decompressed ROM.') - # extend to 64MB - self.buffer.extend(bytearray([0x00] * (0x4000000 - len(self.buffer)))) +class LocalRom(object): + def __init__(self, settings, patch=True): + self.last_address = None + + file = settings.rom + decomp_file = 'ZOOTDEC.z64' + + os.chdir(os.path.dirname(os.path.realpath(__file__))) + #os.chdir(output_path(os.path.dirname(os.path.realpath(__file__)))) + + try: + # Read decompressed file if it exists + with open(decomp_file, 'rb') as stream: + self.buffer = read_rom(stream) + # This is mainly for validation testing, but just in case... + self.decompress_rom_file(decomp_file, decomp_file) + except Exception as ex: + # No decompressed file, instead read Input ROM + with open(file, 'rb') as stream: + self.buffer = read_rom(stream) + self.decompress_rom_file(file, decomp_file) + + # Add file to maximum size + self.buffer.extend(bytearray([0x00] * (0x4000000 - len(self.buffer)))) + + def decompress_rom_file(self, file, decomp_file): + validCRC = [ + [0xEC, 0x70, 0x11, 0xB7, 0x76, 0x16, 0xD7, 0x2B], # Compressed + [0x70, 0xEC, 0xB7, 0x11, 0x16, 0x76, 0x2B, 0xD7], # Byteswap compressed + [0x93, 0x52, 0x2E, 0x7B, 0xE5, 0x06, 0xD4, 0x27], # Decompressed + ] + + # Validate ROM file + file_name = os.path.splitext(file) + romCRC = list(self.buffer[0x10:0x18]) + if romCRC not in validCRC: + # Bad CRC validation + raise RuntimeError('ROM file %s is not a valid OoT 1.0 US ROM.' % file) + elif len(self.buffer) < 0x2000000 or len(self.buffer) > (0x4000000) or file_name[1] not in ['.z64', '.n64']: + # ROM is too big, or too small, or not a bad type + raise RuntimeError('ROM file %s is not a valid OoT 1.0 US ROM.' % file) + elif len(self.buffer) == 0x2000000: + # If Input ROM is compressed, then Decompress it + if platform.system() == 'Windows': + if 8 * struct.calcsize("P") == 64: + subprocess.call(["Decompress\\Decompress.exe", file, decomp_file]) + else: + subprocess.call(["Decompress\\Decompress32.exe", file, decomp_file]) + with open(decomp_file, 'rb') as stream: + self.buffer = read_rom(stream) + elif platform.system() == 'Linux': + subprocess.call(["Decompress/Decompress", file]) + with open(("ZOOTDEC.z64"), 'rb') as stream: + self.buffer = read_rom(stream) + elif platform.system() == 'Darwin': + subprocess.call(["Decompress/Decompress.out", file]) + with open(("ZOOTDEC.z64"), 'rb') as stream: + self.buffer = read_rom(stream) + else: + raise RuntimeError('Unsupported operating system for decompression. Please supply an already decompressed ROM.') + else: + # ROM file is a valid and already uncompressed + pass def read_byte(self, address): return self.buffer[address] diff --git a/Settings.py b/Settings.py index 28a8f5ca6..b7becf943 100644 --- a/Settings.py +++ b/Settings.py @@ -539,10 +539,12 @@ def __init__(self, settings_dict): }), Setting_Info('scarecrow_song', str, 0, False, { + 'default': 'DAAAAAAA', + 'const': 'DAAAAAAA', + 'nargs': '?', 'help': '''\ The song started with if 'free_scarecrow' is True - ''', - 'action': 'store_true' + ''' }, { 'group': 'convenience', @@ -852,11 +854,10 @@ def __init__(self, settings_dict): 'widget': 'Checkbutton', 'default': 'unchecked', 'tooltip':'''\ - Skulltula Token that can only be obtained + Skulltula Tokens that can only be obtained during the night expect you to have Sun's - Song because needed to collect them. This - option prevents needing to wait for time - of day for some locations. + Song to collect them. This prevents needing + to wait until night for some locations. ''' }), Setting_Info('logic_no_big_poes', bool, 1, True, @@ -1370,21 +1371,36 @@ def __init__(self, settings_dict): } }), - Setting_Info('disable_music', bool, 1, False, - { - 'action': 'store_true', - 'help': '''\ - Disable background music. SFX and ambient sounds remain. - ''' - }, - { - 'text': 'Disable Background Music', - 'group': 'cosmetics', - 'widget': 'Checkbutton', - 'default': False, - 'tooltip': '''\ - Disable background music. SFX and ambient sounds remain. - ''' + Setting_Info('background_music', str, 2, False, + { + 'default': 'normal', + 'const': 'normal', + 'nargs': '?', + 'choices': ['normal', 'off', 'random'], + 'help': '''\ + Sets the background music behavior + normal: Areas play their normal background music + off: No background music + random: Areas play random background music + ''' + }, + { + 'text': 'Background Music', + 'group': 'cosmetics', + 'widget': 'Combobox', + 'default': 'Normal', + 'options': { + 'Normal': 'normal', + 'No Music': 'off', + 'Random': 'random', + }, + 'tooltip': '''\ + 'No Music': No background is played. + Useful for playing your own music + over the game. + 'Random': Area background music is + randomized. + ''' }), Setting_Info('kokiricolor', str, 0, False, diff --git a/version.py b/version.py index c80dbac11..ed913d6fe 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.36 f.LUM' +__version__ = '2.15.43 f.LUM' From 41a5aa947e3f64839f7b6a0a1256e159293682d9 Mon Sep 17 00:00:00 2001 From: AmazingAmpharos Date: Mon, 3 Sep 2018 14:06:39 -0500 Subject: [PATCH 380/755] Add new MQ items to list Also fix a minor mistake --- HintList.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/HintList.py b/HintList.py index 385b02412..92ff82a8f 100644 --- a/HintList.py +++ b/HintList.py @@ -76,6 +76,7 @@ def getHintGroup(string, world): 'Bottle with Blue Fire': ("a conflagration canteen", 'item'), 'Bottle with Bugs': ("a terrarium", 'item'), 'Bottle with Poe': ("a spooky ghost", 'item'), + 'Bottle with Big Poe': ("a supersized spirit", 'item'), 'Progressive Scale': ("Zora's Flippers", 'item'), 'Stone of Agony': ("an empty chest", 'item'), 'Eponas Song': ("an equestrian etude", 'item'), @@ -94,6 +95,7 @@ def getHintGroup(string, world): 'Piece of Heart': ("love", 'item'), 'Piece of Heart (Treasure Chest Game)': ("WINNER!", 'item'), 'Recovery Heart': ("a free heal", 'item'), + 'Rupee (Treasure Chest Game)': ("the dollar of defeat", 'item'), 'Rupee (1)': ("rare riches", 'item'), 'Rupees (5)': ("a common coin", 'item'), 'Rupees (20)': ("couch cash", 'item'), @@ -119,7 +121,7 @@ def getHintGroup(string, world): 'BossKey': ("a master of unlocking", 'item'), 'SmallKey': ("a tool for unlocking", 'item'), 'FortressSmallKey': ("a get out of jail free card", 'item'), - 'useless': ("something mysterious", 'item'), + 'KeyError': ("something mysterious", 'item'), 'Arrows (5)': ("danger darts", 'item'), 'Arrows (10)': ("danger darts", 'item'), 'Arrows (30)': ("danger darts", 'item'), @@ -134,6 +136,7 @@ def getHintGroup(string, world): 'Bombchus (20)': ("mice bombs", 'item'), 'Deku Nuts (5)': ("some nuts", 'item'), 'Deku Nuts (10)': ("lots-o-nuts", 'item'), + 'Deku Stick (1)': ("a breakable branch", 'item'), 'Gold Skulltulla Token': ("proof of destruction", 'item'), #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box '10 Big Poes': ("They say that Big Poes leads&to", 'alwaysLocation'), From cbafc1ba113b5d600f7a75dc3736ba54961d9315 Mon Sep 17 00:00:00 2001 From: scatterclegge Date: Mon, 3 Sep 2018 21:06:13 -0230 Subject: [PATCH 381/755] removed file select music from random pool --- Rom.py | 1 - 1 file changed, 1 deletion(-) diff --git a/Rom.py b/Rom.py index 46db76d38..41551cd08 100644 --- a/Rom.py +++ b/Rom.py @@ -1756,7 +1756,6 @@ def update_chest_sizes(rom, override_table): ('Zoras Domain', 0x50), ('Shop', 0x55), ('Chamber of the Sages', 0x56), - ('File Select', 0x57), ('Ice Cavern', 0x58), ('Kaepora Gaebora', 0x5A), ('Shadow Temple', 0x5B), From a4eea4874bb8e36ca1e09bdae48c809b1b3343e0 Mon Sep 17 00:00:00 2001 From: scatterclegge Date: Mon, 3 Sep 2018 21:20:18 -0230 Subject: [PATCH 382/755] write fairy fountain instrument ptr over file select --- Rom.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Rom.py b/Rom.py index 41551cd08..2a737cfd3 100644 --- a/Rom.py +++ b/Rom.py @@ -1788,6 +1788,9 @@ def randomize_music(rom): rom.write_bytes(0xB89AE0 + (bgm[1] * 0x10), bgm_sequence) rom.write_int16(0xB89910 + 0xDD + (bgm[1] * 2), bgm_instrument) + # Write Fairy Fountain instrument to File Select (uses same track but different instrument set pointer for some reason) + rom.write_int16(0xB89910 + 0xDD + (0x57 * 2), rom.read_int16(0xB89910 + 0xDD + (0x28 * 2))) + def disable_music(rom): # First track is no music blank_track = rom.read_bytes(0xB89AE0 + (0 * 0x10), 0x10) From a149ddf56b1f1a3634d9a5849c37b2237635f35e Mon Sep 17 00:00:00 2001 From: AmazingAmpharos Date: Mon, 3 Sep 2018 20:06:13 -0500 Subject: [PATCH 383/755] Add map/compass features This adds a feature in which, in keysanity, compasses tell the dungeon item and further in mixed dungeons maps tell which form the dungeon will take (vanilla, MQ). --- Patches.py | 51 ++++++++++++++++++++++++++++++++++++++++++++++----- Settings.py | 24 ++++++++++++++++++++++++ 2 files changed, 70 insertions(+), 5 deletions(-) diff --git a/Patches.py b/Patches.py index ba524f5b6..e097cfa96 100644 --- a/Patches.py +++ b/Patches.py @@ -1012,11 +1012,6 @@ def write_save_table(rom): rom.write_bytes(0xEE7B8C, [0x24, 0x02, 0x00, 0x20]) buildGossipHints(world, messages) - # Set hints for boss reward shuffle - rom.write_bytes(0xE2ADB2, [0x70, 0x7A]) - rom.write_bytes(0xE2ADB6, [0x70, 0x57]) - buildBossRewardHints(world, messages) - # build silly ganon lines buildGanonText(world, messages) @@ -1184,6 +1179,52 @@ def write_save_table(rom): # give dungeon items the correct messages message_patch_for_dungeon_items(messages, shop_items, world) + if world.enhance_map_compass and world.shuffle_dungeon_items != 'off': + reward_list = {'Kokiri Emerald': "\x05\x42Kokiri Emerald\x05\x40", + 'Goron Ruby': "\x05\x41Goron Ruby\x05\x40", + 'Zora Sapphire': "\x05\x43Zora Sapphire\x05\x40", + 'Forest Medallion': "\x05\x42Forest Medallion\x05\x40", + 'Fire Medallion': "\x05\x41Fire Medallion\x05\x40", + 'Water Medallion': "\x05\x43Water Medallion\x05\x40", + 'Spirit Medallion': "\x05\x46Spirit Medallion\x05\x40", + 'Shadow Medallion': "\x05\x45Shadow Medallion\x05\x40", + 'Light Medallion': "\x05\x44Light Medallion\x05\x40" + } + dungeon_list = {'DT': ("the \x05\x42Deku Tree", 'Queen Gohma', 0x62, 0x88), + 'DC': ("\x05\x41Dodongo\'s Cavern", 'King Dodongo', 0x63, 0x89), + 'JB': ("\x05\x43Jabu Jabu\'s Belly", 'Barinade', 0x64, 0x8a), + 'FoT': ("the \x05\x42Forest Temple", 'Phantom Ganon', 0x65, 0x8b), + 'FiT': ("the \x05\x41Fire Temple", 'Volvagia', 0x7c, 0x8c), + 'WT': ("the \x05\x43Water Temple", 'Morpha', 0x7d, 0x8e), + 'SpT': ("the \x05\x46Spirit Temple", 'Twinrova', 0x7e, 0x8f), + 'ShT': ("the \x05\x45Shadow Temple", 'Bongo Bongo', 0x7f, 0xa3), + 'BW': ("the \x05\x45Bottom of the Well", None, 0xa2, 0xa5), + 'IC': ("the \x05\x44Ice Cavern", None, 0x87, 0x92) + } + for dungeon in world.dungeon_mq: + print(dungeon) + if dungeon in ['GTG', 'GC']: + pass + elif dungeon in ['BW', 'IC']: + dungeon_name, boss_name, compass_id, map_id = dungeon_list[dungeon] + if world.quest == 'mixed': + map_message = "\x13\x76\x08You found the \x05\x41Dungeon Map\x05\x40\x01for %s\x05\x40!\x01It\'s %s!\x09" % (dungeon_name, "masterful" if world.dungeon_mq[dungeon] else "ordinary") + update_message_by_id(messages, map_id, map_message) + else: + dungeon_name, boss_name, compass_id, map_id = dungeon_list[dungeon] + dungeon_reward = reward_list[world.get_location(boss_name).item.name] + compass_message = "\x13\x75\x08You found the \x05\x41Compass\x05\x40\x01for %s\x05\x40!\x01It holds the %s!\x09" % (dungeon_name, dungeon_reward) + update_message_by_id(messages, compass_id, compass_message) + if world.quest == 'mixed': + map_message = "\x13\x76\x08You found the \x05\x41Dungeon Map\x05\x40\x01for %s\x05\x40!\x01It\'s %s!\x09" % (dungeon_name, "masterful" if world.dungeon_mq[dungeon] else "ordinary") + update_message_by_id(messages, map_id, map_message) + + else: + # Set hints for boss reward shuffle + rom.write_bytes(0xE2ADB2, [0x70, 0x7A]) + rom.write_bytes(0xE2ADB6, [0x70, 0x57]) + buildBossRewardHints(world, messages) + # update happy mask shop to use new SOLD OUT text id rom.write_int16(0xC01C06, shop_items[0x26].description_message) diff --git a/Settings.py b/Settings.py index b7becf943..b8011b31b 100644 --- a/Settings.py +++ b/Settings.py @@ -1238,6 +1238,30 @@ def __init__(self, settings_dict): ammo, and rupees, so doing so is a risk. ''' }), + Setting_Info('enhance_map_compass', bool, 1, True, + { + 'help': '''\ + Gives the Map and Compass extra functionality. + Map will tell if a dungeon is vanilla or Master Quest. + Compass will tell what medallion or stone is within. + This setting will only activate these functions if the + other settings would make this useful information. + ''', + 'action': 'store_true' + }, + { + 'text': 'Maps and Compasses give information', + 'group': 'other', + 'widget': 'Checkbutton', + 'default': 'unchecked', + 'tooltip':'''\ + Gives the Map and Compass extra functionality. + Map will tell if a dungeon is vanilla or Master Quest. + Compass will tell what medallion or stone is within. + This setting will only activate these functions if the + other settings would make this useful information. + ''' + }), Setting_Info('hints', str, 2, True, { 'default': 'none', From d29c6d5a5ff8a8b5e1455c319063ee6c33dee9c7 Mon Sep 17 00:00:00 2001 From: AmazingAmpharos Date: Mon, 3 Sep 2018 23:21:11 -0500 Subject: [PATCH 384/755] Update hints for MQ, tokensanity This updates the hint system to properly use MQ locations and to consider giving hints for tokensanity only locations. The hint ratios have been rebalanced a bit; at least one junk hint should always exist as this is written but no more than 10 (these are the extremes of RNG on hint distribution; you expect an average of about 5). I also removed a line of debug code from Patches.py that I left in on accident on the last push. Oops! --- HintList.py | 526 +++++++++++++++++++++++++++++----------------------- Hints.py | 18 +- Patches.py | 1 - 3 files changed, 304 insertions(+), 241 deletions(-) diff --git a/HintList.py b/HintList.py index 92ff82a8f..e8d77ee0a 100644 --- a/HintList.py +++ b/HintList.py @@ -33,243 +33,257 @@ def getHintGroup(string, world): # & is a new line # @ will print the player name # # sets color to white (currently only used for dungeon reward hints). -hintTable = {'Hammer': ("the dragon smasher", 'item'), - 'Magic Meter': ("pixie dust", 'item'), - 'Double Defense': ("a white outline", 'item'), - 'Progressive Hookshot': ("Dampe's keepsake", 'item'), - 'Progressive Strength Upgrade': ("power gloves", 'item'), - 'Hover Boots': ("butter boots", 'item'), - 'Master Sword': ("evil's bane", 'item'), - 'Mirror Shield': ("the reflective rampart", 'item'), - 'Farores Wind': ("teleportation", 'item'), - 'Nayrus Love': ("a safe space", 'item'), - 'Ice Arrows': ("the refrigerator rocket", 'item'), - 'Lens of Truth': ("the perjureless porthole", 'item'), - 'Dins Fire': ("an inferno", 'item'), - 'Ocarina': ("a flute", 'item'), - 'Fairy Ocarina': ("a brown flute", 'item'), - 'Goron Tunic': ("ruby robes", 'item'), - 'Zora Tunic': ("a sapphire suit", 'item'), - 'Iron Boots': ("sink shoes", 'item'), - 'Zeldas Letter': ("an autograph", 'item'), - 'Zeldas Lullaby': ("a song of royal slumber", 'item'), - 'Nocturne of Shadow': ("a song of spooky spirits", 'item'), - 'Bow': ("an archery enabler", 'item'), - 'Bomb Bag': ("an explosive container", 'item'), - 'Sarias Song': ("a song of dancing Gorons", 'item'), - 'Song of Time': ("a song 7 years long", 'item'), - 'Song of Storms': ("Rain Dance", 'item'), - 'Minuet of Forest': ("the song of tall trees", 'item'), - 'Requiem of Spirit': ("a song of sandy statues", 'item'), - 'Slingshot': ("a seed shooter", 'item'), - 'Boomerang': ("a banana", 'item'), - 'Fire Arrows': ("the furnace firearm", 'item'), - 'Ocarina of Time': ("a blue flute", 'item'), - 'Bottle': ("a fairy prison", 'item'), - 'Bottle with Letter': ("a call for help", 'item'), - 'Bottle with Milk': ("cow juice", 'item'), - 'Bottle with Red Potion': ("a vitality vial", 'item'), - 'Bottle with Green Potion': ("a magic mixture", 'item'), - 'Bottle with Blue Potion': ("an all-cure antidote", 'item'), - 'Bottle with Fairy': ("an imprisoned fairy", 'item'), - 'Bottle with Fish': ("an aquarium", 'item'), - 'Bottle with Blue Fire': ("a conflagration canteen", 'item'), - 'Bottle with Bugs': ("a terrarium", 'item'), - 'Bottle with Poe': ("a spooky ghost", 'item'), - 'Bottle with Big Poe': ("a supersized spirit", 'item'), - 'Progressive Scale': ("Zora's Flippers", 'item'), - 'Stone of Agony': ("an empty chest", 'item'), - 'Eponas Song': ("an equestrian etude", 'item'), - 'Epona': ("a horse", 'item'), - 'Gerudo Membership Card': ("a GT subscription", 'item'), - 'Progressive Wallet': ("a mo' money holder", 'item'), - 'Bolero of Fire': ("a song of lethal lava", 'item'), - 'Suns Song': ("Sunny Day", 'item'), - 'Deku Shield': ("a wooden ward", 'item'), - 'Hylian Shield': ("a steel safeguard", 'item'), - 'Deku Stick Capacity': ("a bundle of sticks", 'item'), - 'Deku Nut Capacity': ("more nuts", 'item'), - 'Prelude of Light': ("a luminous prologue melody", 'item'), - 'Serenade of Water': ("a song of a damp ditch", 'item'), - 'Heart Container': ("a lot of love", 'item'), - 'Piece of Heart': ("love", 'item'), - 'Piece of Heart (Treasure Chest Game)': ("WINNER!", 'item'), - 'Recovery Heart': ("a free heal", 'item'), - 'Rupee (Treasure Chest Game)': ("the dollar of defeat", 'item'), - 'Rupee (1)': ("rare riches", 'item'), - 'Rupees (5)': ("a common coin", 'item'), - 'Rupees (20)': ("couch cash", 'item'), - 'Rupees (50)': ("big bucks", 'item'), - 'Rupees (200)': ("a juicy jackpot", 'item'), - 'Light Arrows': ("the shining shot", 'item'), - 'Kokiri Sword': ("a butter knife", 'item'), - 'Biggoron Sword': ("a shield disabler", 'item'), - 'Pocket Egg': ("a Cucco container", 'item'), - 'Weird Egg': ("a chicken dilemma", 'item'), - 'Pocket Cucco': ("a little clucker", 'item'), - 'Cojiro': ("a cerulean capon", 'item'), - 'Odd Mushroom': ("a powder ingredient", 'item'), - 'Odd Potion': ("granny's goodies", 'item'), - 'Poachers Saw': ("a tree killer", 'item'), - 'Broken Sword': ("a shattered slicer", 'item'), - 'Prescription': ("a pill pamphlet", 'item'), - 'Eyeball Frog': ("a perceiving polliwog", 'item'), - 'Eyedrops': ("a vision vial", 'item'), - 'Claim Check': ("a three day wait", 'item'), - 'Map': ("a dungeon atlas", 'item'), - 'Compass': ("a treasure tracker", 'item'), - 'BossKey': ("a master of unlocking", 'item'), - 'SmallKey': ("a tool for unlocking", 'item'), - 'FortressSmallKey': ("a get out of jail free card", 'item'), - 'KeyError': ("something mysterious", 'item'), - 'Arrows (5)': ("danger darts", 'item'), - 'Arrows (10)': ("danger darts", 'item'), - 'Arrows (30)': ("danger darts", 'item'), - 'Bombs (5)': ("explosives", 'item'), - 'Bombs (10)': ("explosives", 'item'), - 'Bombs (20)': ("lots-o-explosives", 'item'), - 'Ice Trap': ("a gift from Ganon", 'item'), - 'Magic Bean': ("wizardly legumes", 'item'), - 'Bombchus': ("mice bombs", 'item'), - 'Bombchus (5)': ("mice bombs", 'item'), - 'Bombchus (10)': ("mice bombs", 'item'), - 'Bombchus (20)': ("mice bombs", 'item'), - 'Deku Nuts (5)': ("some nuts", 'item'), - 'Deku Nuts (10)': ("lots-o-nuts", 'item'), - 'Deku Stick (1)': ("a breakable branch", 'item'), - 'Gold Skulltulla Token': ("proof of destruction", 'item'), - #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box - '10 Big Poes': ("They say that Big Poes leads&to", 'alwaysLocation'), - 'Deku Theater Mask of Truth': ("They say that the Mask of Truth&yields", 'alwaysLocation'), - '30 Gold Skulltulla Reward': ("They say that slaying&30 Gold Skulltulas&reveals", 'alwaysLocation'), - '40 Gold Skulltulla Reward': ("They say that slaying&40 Gold Skulltulas&reveals", 'alwaysLocation'), - '50 Gold Skulltulla Reward': ("They say that slaying&50 Gold Skulltulas&reveals", 'alwaysLocation'), - 'Song from Ocarina of Time': ("They say the Ocarina of Time&teaches", 'alwaysLocation'), - 'Biggoron': ("They say that Biggoron&crafts", 'alwaysLocation'), - 'Child Fishing': ("They say that fishing in youth&bestows", 'location'), - 'Adult Fishing': ("They say that fishing in maturity&bestows", 'location'), - '20 Gold Skulltulla Reward': ("They say that slaying&20 Gold Skulltulas&reveals", 'location'), - 'Treasure Chest Game': ("They say that gambling&grants", 'location'), - 'Darunias Joy': ("They say that Darunia's dance leads&to", 'location'), - 'Frog Ocarina Game': ("They say The Frogs of Zora River&hold", 'location'), - 'Horseback Archery 1500 Points': ("They say that mastery of horseback&archery grants", 'location'), - 'Lake Hylia Sun': ("They say staring into the sun&grants", 'location'), - 'Heart Piece Grave Chest': ("They say there's a hidden location&where the Sun's Song&spawns", 'location'), - 'Goron City Leftmost Maze Chest': ("They say in Goron City the hammer&unlocks", 'location'), - 'Chest Above King Dodongo': ("They say that the chest above the&Infernal Dinosaur&contains", 'location'), - 'Forest Temple Floormaster Chest': ("Deep in the forest, shadows guard a&chest containing", 'location'), - 'Fire Temple Scarecrow Chest': ("They say high in the Fire Temple,&Pierre hid", 'location'), - 'Fire Temple Megaton Hammer Chest': ("They say that the highest&chest in the crater&holds", 'location'), - 'Water Temple River Chest': ("They say deep under the lake,&beyond the currents,&hides", 'location'), - 'Water Temple Boss Key Chest': ("Deep under the lake,&the gilded chest&contains", 'location'), - 'Gerudo Training Grounds Underwater Silver Rupee Chest': ("They say those who seek&sunken silver rupees will&find", 'location'), - 'Gerudo Training Grounds Maze Path Final Chest': ("They say that past all the locked&doors is", 'location'), - 'Bottom of the Well Defeat Boss': ("They say that Dead Hand&holds", 'location'), - 'Silver Gauntlets Chest': ("They say that upon&the Colossus's southern edge&is", 'location'), - 'Mirror Shield Chest': ("They say that upon&the Colossus's northern edge&is", 'location'), - 'Shadow Temple Hidden Floormaster Chest': ("They say in a maze&guarded by shadows&hides", 'location'), - 'Haunted Wasteland Structure Chest': ("They say that deep in the Wasteland&is", 'location'), - 'Composer Grave Chest': ("They say that the Composer Brothers&hid", 'location'), - 'Song from Composer Grave': ("They say that the Composer Brothers&wrote", 'location'), - 'Song at Windmill': ("They say that Guru-guru is driven&mad by", 'location'), - 'Sheik Forest Song': ("They say that deep&in the forest Sheik&teaches", 'location'), - 'Sheik at Temple': ("They say that Sheik&waits at a monument to time to&teach", 'location'), - 'Sheik in Crater': ("They say that the crater's melody&is", 'location'), - 'Sheik in Ice Cavern': ("They say that the&frozen cavern echoes&with", 'location'), - 'Sheik in Kakariko': ("They say that a&ravaged village mourns&with", 'location'), - 'Sheik at Colossus': ("They say that a hero ventures&beyond the Wasteland to&learn", 'location'), - 'Zoras Fountain Bottom Freestanding PoH': ("They say under the icy waters&lies", 'location'), - 'Colossus Freestanding PoH': ("They say that riding a&beanstalk in the desert&leads to", 'location'), - 'DM Crater Volcano Freestanding PoH': ("They say that riding a&beanstalk in the crater&leads to", 'location'), - 'Goron City Pot Freestanding PoH': ("They say that spinning&Goron pottery&contains", 'location'), - #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box - '1001': ("Ganondorf 2020!", 'junkHint'), - '1002': ("They say that monarchy is a&terrible system of governance.", 'junkHint'), - '1003': ("They say that Zelda is a poor&leader.", 'junkHint'), - '1004': ("These hints can be quite useful.&This is an exception.", 'junkHint'), - '1006': ("They say that all the Zora drowned&in Wind Waker.", 'junkHint'), - '1007': ("They say that PJ64 is a terrible&emulator.", 'junkHint'), - '1008': ("'Member when Ganon was a blue pig?^I 'member.", 'junkHint'), - '1009': ("One who does not have Triforce&can't go in.", 'junkHint'), - '1010': ("Save your future,&end the Happy Mask Salesman.", 'junkHint'), - '1012': ("I'm stoned. Get it?", 'junkHint'), - '1013': ("Hoot! Hoot! Would you like me to&repeat that?", 'junkHint'), - '1014': ("Gorons are stupid.&They eat rocks.", 'junkHint'), - '1015': ("They say that Lon Lon Ranch&prospered under Ingo.", 'junkHint'), - '1016': ("The single rupee is a&unique item.", 'junkHint'), - '1017': ("Without the Lens of Truth, the&Treasure Chest Mini-Game&is a 1 out of 32 chance.^Good luck!", 'junkHint'), - '1018': ("Use bombs wisely.", 'junkHint'), - '1021': ("I found you, faker!", 'junkHint'), - '1022': ("You're comparing&yourself to me?^Ha! You're not even good&enough to be my fake.", 'junkHint'), - '1023': ("I'll make you eat those words.", 'junkHint'), - '1024': ("What happened to Sheik?", 'junkHint'), - '1025': ("L2P @.", 'junkHint'), - '1026': ("I heard @ isn't&very good at Zelda.", 'junkHint'), - '1027': ("I'm Lonk from Pennsylvania.", 'junkHint'), - '1028': ("I bet you'd like to&have more bombs.", 'junkHint'), - '1029': ("When all else fails&use Fire.", 'junkHint'), - '1030': ("Here's a hint @.&Don't be bad.", 'junkHint'), - '1031': ("Game Over.&Return of Ganon.", 'junkHint'), - '1032': ("May the way of the Hero&lead to the Triforce.", 'junkHint'), - '1033': ("Can't find an item?&Scan an Amiibo.", 'junkHint'), - '1034': ("They say this game has&just a few glitches.", 'junkHint'), - '1035': ("BRRING BRRING This is Ulrira.&Wrong number?", 'junkHint'), - '1036': ("Tingle Tingle Kooloo Limpah", 'junkHint'), - '1037': ("L is real 2041", 'junkHint'), - '1038': ("They say that Ganondorf will&appear in the next Mario Tennis.", 'junkHint'), - '1039': ("Medigoron sells the earliest&Breath of the Wild demo.", 'junkHint'), - '1040': ("There's a reason why I am special&inquisitor!", 'junkHint'), - '1041': ("You were almost a @&sandwich.", 'junkHint'), - '1042': ("I'm a helpful hint Gossip Stone!^See, I'm helping.", 'junkHint'), - '1043': ("Dear @, please come to the&castle. I've baked a cake for you.&&Yours truly, Princess Zelda.", 'junkHint'), - '1044': ("I like shorts! They're comfy and&easy to wear!", 'junkHint'), - '1044': ("They say all toasters toast toast.", 'junkHint'), - '1045': ("They say that Okami is&the best Zelda game.", 'junkHint'), - #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box - 'Deku Tree': ("an ancient tree", 'dungeon'), - 'Dodongos Cavern': ("an immense cavern", 'dungeon'), - 'Jabu Jabus Belly': ("the belly of a deity", 'dungeon'), - 'Forest Temple': ("a deep forest", 'dungeon'), - 'Fire Temple': ("a high mountain", 'dungeon'), - 'Water Temple': ("a vast lake", 'dungeon'), - 'Shadow Temple': ("the house of the dead", 'dungeon'), - 'Spirit Temple': ("the goddess of the sand", 'dungeon'), - 'Ice Cavern': ("a frozen maze", 'dungeon'), - 'Bottom of the Well': ("a shadow\'s prison", 'dungeon'), - 'Gerudo Training Grounds': ("the test of thieves", 'dungeon'), - 'Ganons Castle': ("a conquered citadel", 'dungeon'), - #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box - 'Spiritual Stone Text Start': ("Ye who owns 3 Spiritual Stones...^", 'boss'), - 'Spiritual Stone Text End': ("Stand with the Ocarina of Time&and play the Song of Time.", 'boss'), - 'Queen Gohma': ("One inside an #ancient tree#...^", 'boss'), - 'King Dodongo': ("One within an #immense cavern#...^", 'boss'), - 'Barinade': ("One in the #belly of a deity#...^", 'boss'), - 'Phantom Ganon': ("One in a #deep forest#...^", 'boss'), - 'Volvagia': ("One on a #high mountain#...^", 'boss'), - 'Morpha': ("One under a #vast lake#...^", 'boss'), - 'Bongo Bongo': ("One within the #house of the dead#...^", 'boss'), - 'Twinrova': ("One inside a #goddess of the sand#...^", 'boss'), - 'Links Pocket': ("One in #@'s pocket#...^", 'boss'), - 'Spiritual Stone Text Start': ("Ye who owns 3 Spiritual Stones...^", 'boss'), - 'Spiritual Stone Text End': ("Stand with the Ocarina of Time&and play the Song of Time.", 'boss'), - 'Medallion Text End': ("Together with the Hero of Time,&the awakened ones will bind the&evil and return the light of peace&to the world.", 'boss'), - #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box - 'Validation Line': ("Hmph... Since you made it this far,&I'll let you know what glorious&prize of Ganon's you likely&missed out on in my tower.^Behold...^", 'validation line'), - 'Light Arrow Location': ("Ha ha ha... You'll never beat me by&reflecting my lightning bolts&and unleashing the arrows from&", 'Light Arrow Location'), - '2001': ("Oh! It's @.&I was expecting someone called&Sheik. Do you know what&happened to them?", 'ganonLine'), - '2002': ("I knew I shouldn't have put the key&on the other side of my door.", 'ganonLine'), - '2003': ("Looks like it's time for a&round of tennis.", 'ganonLine'), - '2004': ("You'll never deflect my bolts of&energy with your sword,&then shoot me with those Light&Arrows you happen to have.", 'ganonLine'), - '2005': ("Why did I leave my trident&back in the desert?", 'ganonLine'), - '2006': ("Zelda is probably going to do&something stupid, like send you&back to your own timeline.^So this is quite meaningless.&Do you really want&to save this moron?", 'ganonLine'), - '2007': ("What about Zelda makes you think&she'd be a better ruler than I?^I saved Lon Lon Ranch,&fed the hungry,&and my castle floats.", 'ganonLine'), - '2008': ("I've learned this spell,&it's really neat,&I'll keep it later&for your treat!", 'ganonLine'), - '2009': ("Many tricks are up my sleeve,&to save yourself&you'd better leave!", 'ganonLine'), - '2010': ("After what you did to&Koholint Island, how can&you call me the bad guy?", 'ganonLine'), - '2011': ("Today, let's begin down&'The Hero is Defeated' timeline.", 'ganonLine'), +hintTable = {'Hammer': ("the dragon smasher", 'item'), + 'Magic Meter': ("pixie dust", 'item'), + 'Double Defense': ("a white outline", 'item'), + 'Progressive Hookshot': ("Dampe's keepsake", 'item'), + 'Progressive Strength Upgrade': ("power gloves", 'item'), + 'Hover Boots': ("butter boots", 'item'), + 'Master Sword': ("evil's bane", 'item'), + 'Mirror Shield': ("the reflective rampart", 'item'), + 'Farores Wind': ("teleportation", 'item'), + 'Nayrus Love': ("a safe space", 'item'), + 'Ice Arrows': ("the refrigerator rocket", 'item'), + 'Lens of Truth': ("the perjureless porthole", 'item'), + 'Dins Fire': ("an inferno", 'item'), + 'Ocarina': ("a flute", 'item'), + 'Fairy Ocarina': ("a brown flute", 'item'), + 'Goron Tunic': ("ruby robes", 'item'), + 'Zora Tunic': ("a sapphire suit", 'item'), + 'Iron Boots': ("sink shoes", 'item'), + 'Zeldas Letter': ("an autograph", 'item'), + 'Zeldas Lullaby': ("a song of royal slumber", 'item'), + 'Nocturne of Shadow': ("a song of spooky spirits", 'item'), + 'Bow': ("an archery enabler", 'item'), + 'Bomb Bag': ("an explosive container", 'item'), + 'Sarias Song': ("a song of dancing Gorons", 'item'), + 'Song of Time': ("a song 7 years long", 'item'), + 'Song of Storms': ("Rain Dance", 'item'), + 'Minuet of Forest': ("the song of tall trees", 'item'), + 'Requiem of Spirit': ("a song of sandy statues", 'item'), + 'Slingshot': ("a seed shooter", 'item'), + 'Boomerang': ("a banana", 'item'), + 'Fire Arrows': ("the furnace firearm", 'item'), + 'Ocarina of Time': ("a blue flute", 'item'), + 'Bottle': ("a fairy prison", 'item'), + 'Bottle with Letter': ("a call for help", 'item'), + 'Bottle with Milk': ("cow juice", 'item'), + 'Bottle with Red Potion': ("a vitality vial", 'item'), + 'Bottle with Green Potion': ("a magic mixture", 'item'), + 'Bottle with Blue Potion': ("an all-cure antidote", 'item'), + 'Bottle with Fairy': ("an imprisoned fairy", 'item'), + 'Bottle with Fish': ("an aquarium", 'item'), + 'Bottle with Blue Fire': ("a conflagration canteen", 'item'), + 'Bottle with Bugs': ("a terrarium", 'item'), + 'Bottle with Poe': ("a spooky ghost", 'item'), + 'Bottle with Big Poe': ("a supersized spirit", 'item'), + 'Progressive Scale': ("Zora's Flippers", 'item'), + 'Stone of Agony': ("an empty chest", 'item'), + 'Eponas Song': ("an equestrian etude", 'item'), + 'Epona': ("a horse", 'item'), + 'Gerudo Membership Card': ("a GT subscription", 'item'), + 'Progressive Wallet': ("a mo' money holder", 'item'), + 'Bolero of Fire': ("a song of lethal lava", 'item'), + 'Suns Song': ("Sunny Day", 'item'), + 'Deku Shield': ("a wooden ward", 'item'), + 'Hylian Shield': ("a steel safeguard", 'item'), + 'Deku Stick Capacity': ("a bundle of sticks", 'item'), + 'Deku Nut Capacity': ("more nuts", 'item'), + 'Prelude of Light': ("a luminous prologue melody", 'item'), + 'Serenade of Water': ("a song of a damp ditch", 'item'), + 'Heart Container': ("a lot of love", 'item'), + 'Piece of Heart': ("love", 'item'), + 'Piece of Heart (Treasure Chest Game)': ("WINNER!", 'item'), + 'Recovery Heart': ("a free heal", 'item'), + 'Rupee (Treasure Chest Game)': ("the dollar of defeat", 'item'), + 'Rupee (1)': ("rare riches", 'item'), + 'Rupees (5)': ("a common coin", 'item'), + 'Rupees (20)': ("couch cash", 'item'), + 'Rupees (50)': ("big bucks", 'item'), + 'Rupees (200)': ("a juicy jackpot", 'item'), + 'Light Arrows': ("the shining shot", 'item'), + 'Kokiri Sword': ("a butter knife", 'item'), + 'Biggoron Sword': ("a shield disabler", 'item'), + 'Pocket Egg': ("a Cucco container", 'item'), + 'Weird Egg': ("a chicken dilemma", 'item'), + 'Pocket Cucco': ("a little clucker", 'item'), + 'Cojiro': ("a cerulean capon", 'item'), + 'Odd Mushroom': ("a powder ingredient", 'item'), + 'Odd Potion': ("Granny's goodies", 'item'), + 'Poachers Saw': ("a tree killer", 'item'), + 'Broken Sword': ("a shattered slicer", 'item'), + 'Prescription': ("a pill pamphlet", 'item'), + 'Eyeball Frog': ("a perceiving polliwog", 'item'), + 'Eyedrops': ("a vision vial", 'item'), + 'Claim Check': ("a three day wait", 'item'), + 'Map': ("a dungeon atlas", 'item'), + 'Compass': ("a treasure tracker", 'item'), + 'BossKey': ("a master of unlocking", 'item'), + 'SmallKey': ("a tool for unlocking", 'item'), + 'FortressSmallKey': ("a get out of jail free card", 'item'), + 'KeyError': ("something mysterious", 'item'), + 'Arrows (5)': ("danger darts", 'item'), + 'Arrows (10)': ("danger darts", 'item'), + 'Arrows (30)': ("danger darts", 'item'), + 'Bombs (5)': ("explosives", 'item'), + 'Bombs (10)': ("explosives", 'item'), + 'Bombs (20)': ("lots-o-explosives", 'item'), + 'Ice Trap': ("a gift from Ganon", 'item'), + 'Magic Bean': ("wizardly legumes", 'item'), + 'Bombchus': ("mice bombs", 'item'), + 'Bombchus (5)': ("mice bombs", 'item'), + 'Bombchus (10)': ("mice bombs", 'item'), + 'Bombchus (20)': ("mice bombs", 'item'), + 'Deku Nuts (5)': ("some nuts", 'item'), + 'Deku Nuts (10)': ("lots-o-nuts", 'item'), + 'Deku Stick (1)': ("a breakable branch", 'item'), + 'Gold Skulltulla Token': ("proof of destruction", 'item'), + #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box + '10 Big Poes': ("They say that Big Poes leads&to", 'alwaysLocation'), + 'Deku Theater Mask of Truth': ("They say that the Mask of Truth&yields", 'alwaysLocation'), + '30 Gold Skulltulla Reward': ("They say that slaying&30 Gold Skulltulas&reveals", 'alwaysLocation'), + '40 Gold Skulltulla Reward': ("They say that slaying&40 Gold Skulltulas&reveals", 'alwaysLocation'), + '50 Gold Skulltulla Reward': ("They say that slaying&50 Gold Skulltulas&reveals", 'alwaysLocation'), + 'Song from Ocarina of Time': ("They say the Ocarina of Time&teaches", 'alwaysLocation'), + 'Ocarina of Time': ("They say the treasure thrown&by Princess Zelda&is", 'alwaysLocation'), + 'Biggoron': ("They say that Biggoron&crafts", 'alwaysLocation'), + 'Child Fishing': ("They say that fishing in youth&bestows", 'location'), + 'Adult Fishing': ("They say that fishing in maturity&bestows", 'location'), + '20 Gold Skulltulla Reward': ("They say that slaying&20 Gold Skulltulas&reveals", 'location'), + 'Treasure Chest Game': ("They say that gambling&grants", 'location'), + 'Darunias Joy': ("They say that Darunia's dance leads&to", 'location'), + 'Frog Ocarina Game': ("They say The Frogs of Zora River&hold", 'location'), + 'Horseback Archery 1500 Points': ("They say that mastery of horseback&archery grants", 'location'), + 'Lake Hylia Sun': ("They say staring into the sun&grants", 'location'), + 'Heart Piece Grave Chest': ("They say there's a hidden location&where the Sun's Song&spawns", 'location'), + 'Goron City Leftmost Maze Chest': ("They say in Goron City the hammer&unlocks", 'location'), + 'GS Hyrule Castle Grotto': ("They say that a storm&near the castle&reveals", 'location'), + 'GS Hyrule Field Near Gerudo Valley': ("They say that buried near&near the valley a spider&holds", 'location'), + 'GS Zora\'s Fountain Hidden Cave': ("They say a spider high&above the icy waters&holds", 'location'), + 'Deku Tree MQ After Spinning Log Chest': ("Within a tree, a temporal stone&contains", 'location'), + 'GS Jabu Jabu MQ Invisible Enemies Room': ("In the belly of a deity, a spider&surrounded by shadows&holds", 'location'), + 'Forest Temple Floormaster Chest': ("Deep in the forest, shadows guard a&chest containing", 'location'), + 'Fire Temple Scarecrow Chest': ("They say high in the Fire Temple,&Pierre hid", 'location'), + 'Fire Temple Megaton Hammer Chest': ("They say that the highest&chest in the crater&holds", 'location'), + 'Fire Temple MQ West Tower Top Chest': ("They say that the highest&chest in the crater&holds", 'location'), + 'Water Temple River Chest': ("They say deep under the lake,&beyond the currents,&hides", 'location'), + 'Water Temple Boss Key Chest': ("Deep under the lake,&the gilded chest&contains", 'location'), + 'Water Temple MQ Boss Key Chest': ("Deep under the lake,&the gilded chest&contains", 'location'), + 'Water Temple MQ Freestanding Key': ("Deep under the lake,&the apparent key&is really", 'location'), + 'GS Water Temple MQ North Basement': ("Deep under the lake,&the locked skull&holds", 'location'), + 'Gerudo Training Grounds Underwater Silver Rupee Chest': ("They say those who seek&sunken silver rupees will&find", 'location'), + 'Gerudo Training Grounds Maze Path Final Chest': ("They say that past all the locked&doors is", 'location'), + 'Gerudo Training Grounds MQ Underwater Silver Rupee Chest': ("They say those who seek&sunken silver rupees will&find", 'location'), + 'Gerudo Training Grounds MQ Ice Arrows Chest': ("They say that past all the locked&doors is", 'location'), + 'Bottom of the Well Defeat Boss': ("They say that Dead Hand&holds", 'location'), + 'Silver Gauntlets Chest': ("They say that upon&the Colossus's southern edge&is", 'location'), + 'Mirror Shield Chest': ("They say that upon&the Colossus's northern edge&is", 'location'), + 'Spirit Temple MQ Child Center Chest': ("Within the Colossus&a temporal paradox&yields", 'location'), + 'Spirit Temple MQ Lower Adult Right Chest': ("Within the Colossus&a symphony&yields", 'location'), + 'GS Spirit Temple MQ Lower Adult Right': ("Within the Colossus&a spider\'s symphony&yields", 'location'), + 'Shadow Temple Hidden Floormaster Chest': ("They say in a maze&guarded by shadows&hides", 'location'), + 'Shadow Temple MQ Bomb Flower Chest': ("They say in a maze&guarded by shadows&hides", 'location'), + 'Haunted Wasteland Structure Chest': ("They say that deep in the Wasteland&is", 'location'), + 'Composer Grave Chest': ("They say that the Composer Brothers&hid", 'location'), + 'Song from Composer Grave': ("They say that the Composer Brothers&wrote", 'location'), + 'Sheik Forest Song': ("They say that deep&in the forest Sheik&teaches", 'location'), + 'Sheik at Temple': ("They say that Sheik&waits at a monument to time to&teach", 'location'), + 'Sheik in Crater': ("They say that the crater's melody&is", 'location'), + 'Sheik in Ice Cavern': ("They say that the&frozen cavern echoes&with", 'location'), + 'Sheik in Kakariko': ("They say that a&ravaged village mourns&with", 'location'), + 'Sheik at Colossus': ("They say that a hero ventures&beyond the Wasteland to&learn", 'location'), + 'Zoras Fountain Bottom Freestanding PoH': ("They say under the icy waters&lies", 'location'), + 'Colossus Freestanding PoH': ("They say that riding a&beanstalk in the desert&leads to", 'location'), + 'DM Crater Volcano Freestanding PoH': ("They say that riding a&beanstalk in the crater&leads to", 'location'), + 'Goron City Pot Freestanding PoH': ("They say that spinning&Goron pottery&contains", 'location'), + #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box + '1001': ("Ganondorf 2020!", 'junkHint'), + '1002': ("They say that monarchy is a&terrible system of governance.", 'junkHint'), + '1003': ("They say that Zelda is a poor&leader.", 'junkHint'), + '1004': ("These hints can be quite useful.&This is an exception.", 'junkHint'), + '1006': ("They say that all the Zora drowned&in Wind Waker.", 'junkHint'), + '1007': ("They say that PJ64 is a terrible&emulator.", 'junkHint'), + '1008': ("'Member when Ganon was a blue pig?^I 'member.", 'junkHint'), + '1009': ("One who does not have Triforce&can't go in.", 'junkHint'), + '1010': ("Save your future,&end the Happy Mask Salesman.", 'junkHint'), + '1012': ("I'm stoned. Get it?", 'junkHint'), + '1013': ("Hoot! Hoot! Would you like me to&repeat that?", 'junkHint'), + '1014': ("Gorons are stupid.&They eat rocks.", 'junkHint'), + '1015': ("They say that Lon Lon Ranch&prospered under Ingo.", 'junkHint'), + '1016': ("The single rupee is a&unique item.", 'junkHint'), + '1017': ("Without the Lens of Truth, the&Treasure Chest Mini-Game&is a 1 out of 32 chance.^Good luck!", 'junkHint'), + '1018': ("Use bombs wisely.", 'junkHint'), + '1021': ("I found you, faker!", 'junkHint'), + '1022': ("You're comparing&yourself to me?^Ha! You're not even good&enough to be my fake.", 'junkHint'), + '1023': ("I'll make you eat those words.", 'junkHint'), + '1024': ("What happened to Sheik?", 'junkHint'), + '1025': ("L2P @.", 'junkHint'), + '1026': ("I heard @ isn't&very good at Zelda.", 'junkHint'), + '1027': ("I'm Lonk from Pennsylvania.", 'junkHint'), + '1028': ("I bet you'd like to&have more bombs.", 'junkHint'), + '1029': ("When all else fails&use Fire.", 'junkHint'), + '1030': ("Here's a hint @.&Don't be bad.", 'junkHint'), + '1031': ("Game Over.&Return of Ganon.", 'junkHint'), + '1032': ("May the way of the Hero&lead to the Triforce.", 'junkHint'), + '1033': ("Can't find an item?&Scan an Amiibo.", 'junkHint'), + '1034': ("They say this game has&just a few glitches.", 'junkHint'), + '1035': ("BRRING BRRING This is Ulrira.&Wrong number?", 'junkHint'), + '1036': ("Tingle Tingle Kooloo Limpah", 'junkHint'), + '1037': ("L is real 2041", 'junkHint'), + '1038': ("They say that Ganondorf will&appear in the next Mario Tennis.", 'junkHint'), + '1039': ("Medigoron sells the earliest&Breath of the Wild demo.", 'junkHint'), + '1040': ("There's a reason why I am special&inquisitor!", 'junkHint'), + '1041': ("You were almost a @&sandwich.", 'junkHint'), + '1042': ("I'm a helpful hint Gossip Stone!^See, I'm helping.", 'junkHint'), + '1043': ("Dear @, please come to the&castle. I've baked a cake for you.&&Yours truly, Princess Zelda.", 'junkHint'), + '1044': ("I like shorts! They're comfy and&easy to wear!", 'junkHint'), + '1044': ("They say all toasters toast toast.", 'junkHint'), + '1045': ("They say that Okami is&the best Zelda game.", 'junkHint'), + #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box + 'Deku Tree': ("an ancient tree", 'dungeon'), + 'Dodongos Cavern': ("an immense cavern", 'dungeon'), + 'Jabu Jabus Belly': ("the belly of a deity", 'dungeon'), + 'Forest Temple': ("a deep forest", 'dungeon'), + 'Fire Temple': ("a high mountain", 'dungeon'), + 'Water Temple': ("a vast lake", 'dungeon'), + 'Shadow Temple': ("the house of the dead", 'dungeon'), + 'Spirit Temple': ("the goddess of the sand", 'dungeon'), + 'Ice Cavern': ("a frozen maze", 'dungeon'), + 'Bottom of the Well': ("a shadow\'s prison", 'dungeon'), + 'Gerudo Training Grounds': ("the test of thieves", 'dungeon'), + 'Ganons Castle': ("a conquered citadel", 'dungeon'), + #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box + 'Spiritual Stone Text Start': ("Ye who owns 3 Spiritual Stones...^", 'boss'), + 'Spiritual Stone Text End': ("Stand with the Ocarina of Time&and play the Song of Time.", 'boss'), + 'Queen Gohma': ("One inside an #ancient tree#...^", 'boss'), + 'King Dodongo': ("One within an #immense cavern#...^", 'boss'), + 'Barinade': ("One in the #belly of a deity#...^", 'boss'), + 'Phantom Ganon': ("One in a #deep forest#...^", 'boss'), + 'Volvagia': ("One on a #high mountain#...^", 'boss'), + 'Morpha': ("One under a #vast lake#...^", 'boss'), + 'Bongo Bongo': ("One within the #house of the dead#...^", 'boss'), + 'Twinrova': ("One inside a #goddess of the sand#...^", 'boss'), + 'Links Pocket': ("One in #@'s pocket#...^", 'boss'), + 'Spiritual Stone Text Start': ("Ye who owns 3 Spiritual Stones...^", 'boss'), + 'Spiritual Stone Text End': ("Stand with the Ocarina of Time&and play the Song of Time.", 'boss'), + 'Medallion Text End': ("Together with the Hero of Time,&the awakened ones will bind the&evil and return the light of peace&to the world.", 'boss'), + #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box + 'Validation Line': ("Hmph... Since you made it this far,&I'll let you know what glorious&prize of Ganon's you likely&missed out on in my tower.^Behold...^", 'validation line'), + 'Light Arrow Location': ("Ha ha ha... You'll never beat me by&reflecting my lightning bolts&and unleashing the arrows from&", 'Light Arrow Location'), + '2001': ("Oh! It's @.&I was expecting someone called&Sheik. Do you know what&happened to them?", 'ganonLine'), + '2002': ("I knew I shouldn't have put the key&on the other side of my door.", 'ganonLine'), + '2003': ("Looks like it's time for a&round of tennis.", 'ganonLine'), + '2004': ("You'll never deflect my bolts of&energy with your sword,&then shoot me with those Light&Arrows you happen to have.", 'ganonLine'), + '2005': ("Why did I leave my trident&back in the desert?", 'ganonLine'), + '2006': ("Zelda is probably going to do&something stupid, like send you&back to your own timeline.^So this is quite meaningless.&Do you really want&to save this moron?", 'ganonLine'), + '2007': ("What about Zelda makes you think&she'd be a better ruler than I?^I saved Lon Lon Ranch,&fed the hungry,&and my castle floats.", 'ganonLine'), + '2008': ("I've learned this spell,&it's really neat,&I'll keep it later&for your treat!", 'ganonLine'), + '2009': ("Many tricks are up my sleeve,&to save yourself&you'd better leave!", 'ganonLine'), + '2010': ("After what you did to&Koholint Island, how can&you call me the bad guy?", 'ganonLine'), + '2011': ("Today, let's begin down&'The Hero is Defeated' timeline.", 'ganonLine'), } -# exclusions from the list for custom logic +# This specifies which hints will never appear due to either having known or known useless contents or due to the locations not existing. def hintExclusions(world): expected_skulltulas = world.logic_skulltulas @@ -296,4 +310,46 @@ def hintExclusions(world): exclusions.append('20 Gold Skulltulla Reward') if expected_skulltulas < 10: exclusions.append('10 Gold Skulltulla Reward') + if not world.shuffle_ocarinas: + exclusions.append('Ocarina of Time') + if world.tokensanity != 'all': + exclusions.append('GS Hyrule Castle Grotto') + exclusions.append('GS Hyrule Field Near Gerudo Valley') + exclusions.append('GS Zora\'s Fountain Hidden Cave') + if not world.dungeon_mq['DT']: + exclusions.append('Deku Tree MQ After Spinning Log Chest') + if world.tokensanity == 'off' or not world.dungeon_mq['JB']: + exclusions.append('GS Jabu Jabu MQ Invisible Enemies Room') + if world.dungeon_mq['FoT']: + exclusions.append('Forest Temple Floormaster Chest') + if world.dungeon_mq['FiT']: + exclusions.append('Fire Temple Scarecrow Chest') + exclusions.append('Fire Temple Megaton Hammer Chest') + else: + exclusions.append('Fire Temple MQ West Tower Top Chest') + if world.dungeon_mq['WT']: + exclusions.append('Water Temple River Chest') + exclusions.append('Water Temple Boss Key Chest') + else: + exclusions.append('Water Temple MQ Boss Key Chest') + exclusions.append('Water Temple MQ Freestanding Key') + if world.tokensanity == 'off' or not world.dungeon_mq['WT']: + exclusions.append('GS Water Temple MQ North Basement') + if world.dungeon_mq['GTG']: + exclusions.append('Gerudo Training Grounds Underwater Silver Rupee Chest') + exclusions.append('Gerudo Training Grounds Maze Path Final Chest') + else: + exclusions.append('Gerudo Training Grounds MQ Underwater Silver Rupee Chest') + exclusions.append('Gerudo Training Grounds MQ Ice Arrows Chest') + if world.dungeon_mq['BW']: + exclusions.append('Bottom of the Well Defeat Boss') + if not world.dungeon_mq['SpT']: + exclusions.append('Spirit Temple MQ Child Center Chest') + exclusions.append('Spirit Temple MQ Lower Adult Right Chest') + if world.tokensanity == 'off' or not world.dungeon_mq['SpT']: + exclusions.append('GS Spirit Temple MQ Lower Adult Right') + if world.dungeon_mq['ShT']: + exclusions.append('Shadow Temple Hidden Floormaster Chest') + else: + exclusions.append('Shadow Temple MQ Bomb Flower Chest') return exclusions diff --git a/Hints.py b/Hints.py index 7455b8992..954c7f352 100644 --- a/Hints.py +++ b/Hints.py @@ -67,7 +67,7 @@ def buildGossipHints(world, messages): 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, 0x0420] - #shuffles the stone addresses for randomization, always locations will be placed first and twice + #shuffles the stone addresses for randomization, always locations will be placed first random.shuffle(stoneIDs) # Add trial hints @@ -83,7 +83,7 @@ def buildGossipHints(world, messages): # add required items locations for hints (good hints) requiredSample = world.spoiler.required_locations if len(requiredSample) >= 5: - requiredSample = random.sample(requiredSample, random.randint(4,5)) + requiredSample = random.sample(requiredSample, random.randint(3,4)) for location in requiredSample: if location.parent_region.dungeon: update_hint(messages, stoneIDs.pop(0), buildHintString(getHint(location.parent_region.dungeon.name).text + \ @@ -107,7 +107,7 @@ def buildGossipHints(world, messages): # Add good location hints sometimesLocations = getHintGroup('location', world) if sometimesLocations: - for _ in range(0, random.randint(9,10) - len(alwaysLocations)): + for _ in range(0, random.randint(11,12) - len(alwaysLocations)): hint = random.choice(sometimesLocations) # Repick if location isn't new while hint.name in checkedLocations or hint.name in alwaysLocations: @@ -144,8 +144,16 @@ def buildGossipHints(world, messages): (world.tokensanity == 'all' or locationWorld.item.name != 'Gold Skulltulla Token') and \ not locationWorld.parent_region.dungeon] overworldSample = overworldlocations - if len(overworldSample) >= 4: - overworldSample = random.sample(overworldlocations, random.randint(3,4)) + if len(overworldSample) >= 3: + # Use this hint type to balance hints given via trials + if world.trials == 3: + overworldSample = random.sample(overworldlocations, random.randint(1,2)) + elif world.trials in [2, 4]: + overworldSample = random.sample(overworldlocations, random.randint(1,3)) + elif world.trials in [1, 5]: + overworldSample = random.sample(overworldlocations, random.randint(2,3)) + else: + overworldSample = random.sample(overworldlocations, random.randint(2,4)) for locationWorld in overworldSample: checkedLocations.append(locationWorld.name) update_hint(messages, stoneIDs.pop(0), buildHintString(getHint(getItemGenericName(locationWorld.item)).text + \ diff --git a/Patches.py b/Patches.py index e097cfa96..a06c979a4 100644 --- a/Patches.py +++ b/Patches.py @@ -1202,7 +1202,6 @@ def write_save_table(rom): 'IC': ("the \x05\x44Ice Cavern", None, 0x87, 0x92) } for dungeon in world.dungeon_mq: - print(dungeon) if dungeon in ['GTG', 'GC']: pass elif dungeon in ['BW', 'IC']: From 6a416d29d08bc45fd488881857920ccd83d4f58a Mon Sep 17 00:00:00 2001 From: AmazingAmpharos Date: Mon, 3 Sep 2018 23:51:10 -0500 Subject: [PATCH 385/755] Minor tweaks Fix up a few somewhat inaccurate hints. --- HintList.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/HintList.py b/HintList.py index e8d77ee0a..6659074f0 100644 --- a/HintList.py +++ b/HintList.py @@ -170,11 +170,11 @@ def getHintGroup(string, world): 'Water Temple Boss Key Chest': ("Deep under the lake,&the gilded chest&contains", 'location'), 'Water Temple MQ Boss Key Chest': ("Deep under the lake,&the gilded chest&contains", 'location'), 'Water Temple MQ Freestanding Key': ("Deep under the lake,&the apparent key&is really", 'location'), - 'GS Water Temple MQ North Basement': ("Deep under the lake,&the locked skull&holds", 'location'), + 'GS Water Temple MQ North Basement': ("Deep under the lake,&the locked spider&holds", 'location'), 'Gerudo Training Grounds Underwater Silver Rupee Chest': ("They say those who seek&sunken silver rupees will&find", 'location'), - 'Gerudo Training Grounds Maze Path Final Chest': ("They say that past all the locked&doors is", 'location'), + 'Gerudo Training Grounds Maze Path Final Chest': ("They say the final prize&of the thieves\' training&is", 'location'), 'Gerudo Training Grounds MQ Underwater Silver Rupee Chest': ("They say those who seek&sunken silver rupees will&find", 'location'), - 'Gerudo Training Grounds MQ Ice Arrows Chest': ("They say that past all the locked&doors is", 'location'), + 'Gerudo Training Grounds MQ Ice Arrows Chest': ("They say the final prize&of the thieves\' training&is" 'location'), 'Bottom of the Well Defeat Boss': ("They say that Dead Hand&holds", 'location'), 'Silver Gauntlets Chest': ("They say that upon&the Colossus's southern edge&is", 'location'), 'Mirror Shield Chest': ("They say that upon&the Colossus's northern edge&is", 'location'), @@ -210,7 +210,7 @@ def getHintGroup(string, world): '1013': ("Hoot! Hoot! Would you like me to&repeat that?", 'junkHint'), '1014': ("Gorons are stupid.&They eat rocks.", 'junkHint'), '1015': ("They say that Lon Lon Ranch&prospered under Ingo.", 'junkHint'), - '1016': ("The single rupee is a&unique item.", 'junkHint'), + '1016': ("The single rupee is a&unique item.&Well... sometimes.", 'junkHint'), '1017': ("Without the Lens of Truth, the&Treasure Chest Mini-Game&is a 1 out of 32 chance.^Good luck!", 'junkHint'), '1018': ("Use bombs wisely.", 'junkHint'), '1021': ("I found you, faker!", 'junkHint'), From cb940f26f6e1ad267da8a8c9da512bc2e6fb75a8 Mon Sep 17 00:00:00 2001 From: mzxrules Date: Thu, 23 Aug 2018 15:48:30 -0400 Subject: [PATCH 386/755] Moved Rom.py to Patches.py --- Rom.py => Patches.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Rom.py => Patches.py (100%) diff --git a/Rom.py b/Patches.py similarity index 100% rename from Rom.py rename to Patches.py From 64383c96497849ad94dd42b7df29856e65c5a45b Mon Sep 17 00:00:00 2001 From: mzxrules Date: Thu, 23 Aug 2018 16:10:23 -0400 Subject: [PATCH 387/755] Split Patches.py into Rom.py and Patches.py --- Gui.py | 2 +- Main.py | 3 +- Patches.py | 160 +--------------------------------------------------- Rom.py | 143 ++++++++++++++++++++++++++++++++++++++++++++++ Settings.py | 2 +- 5 files changed, 148 insertions(+), 162 deletions(-) create mode 100644 Rom.py diff --git a/Gui.py b/Gui.py index 5cfb153c6..4c43a2f0b 100755 --- a/Gui.py +++ b/Gui.py @@ -12,7 +12,7 @@ from GuiUtils import ToolTips, set_icon, BackgroundTask, BackgroundTaskProgress, Dialog from Main import main from Utils import is_bundled, local_path, default_output_path, open_file, check_version -from Rom import get_tunic_color_options, get_navi_color_options +from Patches import get_tunic_color_options, get_navi_color_options from Settings import Settings, setting_infos from version import __version__ as ESVersion import webbrowser diff --git a/Main.py b/Main.py index 270c7ff94..13437935f 100644 --- a/Main.py +++ b/Main.py @@ -11,7 +11,8 @@ from BaseClasses import World, CollectionState, Item from EntranceShuffle import link_entrances -from Rom import patch_rom, LocalRom +from Rom import LocalRom +from Patches import patch_rom from Regions import create_regions from Dungeons import create_dungeons from Rules import set_rules diff --git a/Patches.py b/Patches.py index 78cf07910..8b110beca 100644 --- a/Patches.py +++ b/Patches.py @@ -13,6 +13,7 @@ from Items import ItemFactory, item_data from Messages import * from OcarinaSongs import Song, replace_songs, subsong +from MQ import patch_files TunicColors = { "Kokiri Green": [0x1E, 0x69, 0x1B], @@ -63,165 +64,6 @@ def get_navi_colors(): def get_navi_color_options(): return ["Random Choice", "Completely Random"] + get_navi_colors() -class LocalRom(object): - def __init__(self, settings, patch=True): - self.last_address = None - - file = settings.rom - decomp_file = 'ZOOTDEC.z64' - - os.chdir(os.path.dirname(os.path.realpath(__file__))) - #os.chdir(output_path(os.path.dirname(os.path.realpath(__file__)))) - - try: - # Read decompressed file if it exists - with open(decomp_file, 'rb') as stream: - self.buffer = read_rom(stream) - # This is mainly for validation testing, but just in case... - self.decompress_rom_file(decomp_file, decomp_file) - except Exception as ex: - # No decompressed file, instead read Input ROM - with open(file, 'rb') as stream: - self.buffer = read_rom(stream) - self.decompress_rom_file(file, decomp_file) - - # Add file to maximum size - self.buffer.extend(bytearray([0x00] * (0x4000000 - len(self.buffer)))) - - def decompress_rom_file(self, file, decomp_file): - validCRC = [ - [0xEC, 0x70, 0x11, 0xB7, 0x76, 0x16, 0xD7, 0x2B], # Compressed - [0x70, 0xEC, 0xB7, 0x11, 0x16, 0x76, 0x2B, 0xD7], # Byteswap compressed - [0x93, 0x52, 0x2E, 0x7B, 0xE5, 0x06, 0xD4, 0x27], # Decompressed - ] - - # Validate ROM file - file_name = os.path.splitext(file) - romCRC = list(self.buffer[0x10:0x18]) - if romCRC not in validCRC: - # Bad CRC validation - raise RuntimeError('ROM file %s is not a valid OoT 1.0 US ROM.' % file) - elif len(self.buffer) < 0x2000000 or len(self.buffer) > (0x4000000) or file_name[1] not in ['.z64', '.n64']: - # ROM is too big, or too small, or not a bad type - raise RuntimeError('ROM file %s is not a valid OoT 1.0 US ROM.' % file) - elif len(self.buffer) == 0x2000000: - # If Input ROM is compressed, then Decompress it - if platform.system() == 'Windows': - if 8 * struct.calcsize("P") == 64: - subprocess.call(["Decompress\\Decompress.exe", file, decomp_file]) - else: - subprocess.call(["Decompress\\Decompress32.exe", file, decomp_file]) - with open(decomp_file, 'rb') as stream: - self.buffer = read_rom(stream) - elif platform.system() == 'Linux': - subprocess.call(["Decompress/Decompress", file]) - with open(("ZOOTDEC.z64"), 'rb') as stream: - self.buffer = read_rom(stream) - elif platform.system() == 'Darwin': - subprocess.call(["Decompress/Decompress.out", file]) - with open(("ZOOTDEC.z64"), 'rb') as stream: - self.buffer = read_rom(stream) - else: - raise RuntimeError('Unsupported operating system for decompression. Please supply an already decompressed ROM.') - else: - # ROM file is a valid and already uncompressed - pass - - - def read_byte(self, address): - return self.buffer[address] - - def read_bytes(self, address, len): - return self.buffer[address : address + len] - - def read_int16(self, address): - return bytes_as_int16(self.read_bytes(address, 2)) - - def read_int24(self, address): - return bytes_as_int24(self.read_bytes(address, 3)) - - def read_int32(self, address): - return bytes_as_int32(self.read_bytes(address, 4)) - - def write_byte(self, address, value): - if address == None: - address = self.last_address - self.buffer[address] = value - self.last_address = address + 1 - - def write_int16(self, address, value): - if address == None: - address = self.last_address - self.write_bytes(address, int16_as_bytes(value)) - - def write_int24(self, address, value): - if address == None: - address = self.last_address - self.write_bytes(address, int24_as_bytes(value)) - - def write_int32(self, address, value): - if address == None: - address = self.last_address - self.write_bytes(address, int32_as_bytes(value)) - - def write_bytes(self, startaddress, values): - if startaddress == None: - startaddress = self.last_address - for i, value in enumerate(values): - self.write_byte(startaddress + i, value) - - def write_int16s(self, startaddress, values): - if startaddress == None: - startaddress = self.last_address - for i, value in enumerate(values): - self.write_int16(startaddress + (i * 2), value) - - def write_int24s(self, startaddress, values): - if startaddress == None: - startaddress = self.last_address - for i, value in enumerate(values): - self.write_int24(startaddress + (i * 3), value) - - def write_int32s(self, startaddress, values): - if startaddress == None: - startaddress = self.last_address - for i, value in enumerate(values): - self.write_int32(startaddress + (i * 4), value) - - def write_to_file(self, file): - with open(file, 'wb') as outfile: - outfile.write(self.buffer) - -def read_rom(stream): - "Reads rom into bytearray" - buffer = bytearray(stream.read()) - return buffer - - -def int16_as_bytes(value): - value = value & 0xFFFF - return [(value >> 8) & 0xFF, value & 0xFF] - -def int24_as_bytes(value): - value = value & 0xFFFFFFFF - return [(value >> 16) & 0xFF, (value >> 8) & 0xFF, value & 0xFF] - -def int32_as_bytes(value): - value = value & 0xFFFFFFFF - return [(value >> 24) & 0xFF, (value >> 16) & 0xFF, (value >> 8) & 0xFF, value & 0xFF] - -def bytes_as_int16(values): - return (values[0] << 8) | values[1] - -def bytes_as_int24(values): - return (values[0] << 16) | (values[1] << 8) | values[2] - -def bytes_as_int32(values): - return (values[0] << 24) | (values[1] << 16) | (values[2] << 8) | values[3] - - -from MQ import patch_files - def patch_rom(world, rom): with open(local_path('data/base2current.json'), 'r') as stream: patches = json.load(stream) diff --git a/Rom.py b/Rom.py new file mode 100644 index 000000000..21096a6eb --- /dev/null +++ b/Rom.py @@ -0,0 +1,143 @@ +import io +import json +import logging +import os +import platform +import struct +import subprocess +import random +import copy + +from Utils import default_output_path + +class LocalRom(object): + + def __init__(self, settings, patch=True): + self.last_address = None + + file = settings.rom + decomp_file = os.path.join(default_output_path(settings.output_dir), 'ZOOTDEC.z64') + + validCRC = [] + validCRC.append(bytearray([0xEC, 0x70, 0x11, 0xB7, 0x76, 0x16, 0xD7, 0x2B])) # Compressed + validCRC.append(bytearray([0x70, 0xEC, 0xB7, 0x11, 0x16, 0x76, 0x2B, 0xD7])) # Byteswap compressed + validCRC.append(bytearray([0x93, 0x52, 0x2E, 0x7B, 0xE5, 0x06, 0xD4, 0x27])) # Decompressed + + os.chdir(os.path.dirname(os.path.realpath(__file__))) + #os.chdir(output_path(os.path.dirname(os.path.realpath(__file__)))) + with open(file, 'rb') as stream: + self.buffer = read_rom(stream) + file_name = os.path.splitext(file) + romCRC = self.buffer[0x10:0x18] + if romCRC not in validCRC: + raise RuntimeError('ROM is not a valid OoT 1.0 US ROM.') + if len(self.buffer) < 0x2000000 or len(self.buffer) > (0x4000000) or file_name[1] not in ['.z64', '.n64']: + raise RuntimeError('ROM is not a valid OoT 1.0 ROM.') + if len(self.buffer) == 0x2000000: + if platform.system() == 'Windows': + subprocess.call(["Decompress\\Decompress.exe", file, decomp_file]) + with open(decomp_file, 'rb') as stream: + self.buffer = read_rom(stream) + elif platform.system() == 'Linux': + subprocess.call(["Decompress/Decompress", file]) + with open(("ZOOTDEC.z64"), 'rb') as stream: + self.buffer = read_rom(stream) + elif platform.system() == 'Darwin': + subprocess.call(["Decompress/Decompress.out", file]) + with open(("ZOOTDEC.z64"), 'rb') as stream: + self.buffer = read_rom(stream) + else: + raise RuntimeError('Unsupported operating system for decompression. Please supply an already decompressed ROM.') + # extend to 64MB + self.buffer.extend(bytearray([0x00] * (0x4000000 - len(self.buffer)))) + + def read_byte(self, address): + return self.buffer[address] + + def read_bytes(self, address, len): + return self.buffer[address : address + len] + + def read_int16(self, address): + return bytes_as_int16(self.read_bytes(address, 2)) + + def read_int24(self, address): + return bytes_as_int24(self.read_bytes(address, 3)) + + def read_int32(self, address): + return bytes_as_int32(self.read_bytes(address, 4)) + + def write_byte(self, address, value): + if address == None: + address = self.last_address + self.buffer[address] = value + self.last_address = address + 1 + + def write_int16(self, address, value): + if address == None: + address = self.last_address + self.write_bytes(address, int16_as_bytes(value)) + + def write_int24(self, address, value): + if address == None: + address = self.last_address + self.write_bytes(address, int24_as_bytes(value)) + + def write_int32(self, address, value): + if address == None: + address = self.last_address + self.write_bytes(address, int32_as_bytes(value)) + + def write_bytes(self, startaddress, values): + if startaddress == None: + startaddress = self.last_address + for i, value in enumerate(values): + self.write_byte(startaddress + i, value) + + def write_int16s(self, startaddress, values): + if startaddress == None: + startaddress = self.last_address + for i, value in enumerate(values): + self.write_int16(startaddress + (i * 2), value) + + def write_int24s(self, startaddress, values): + if startaddress == None: + startaddress = self.last_address + for i, value in enumerate(values): + self.write_int24(startaddress + (i * 3), value) + + def write_int32s(self, startaddress, values): + if startaddress == None: + startaddress = self.last_address + for i, value in enumerate(values): + self.write_int32(startaddress + (i * 4), value) + + def write_to_file(self, file): + with open(file, 'wb') as outfile: + outfile.write(self.buffer) + +def read_rom(stream): + "Reads rom into bytearray" + buffer = bytearray(stream.read()) + return buffer + + +def int16_as_bytes(value): + value = value & 0xFFFF + return [(value >> 8) & 0xFF, value & 0xFF] + +def int24_as_bytes(value): + value = value & 0xFFFFFFFF + return [(value >> 16) & 0xFF, (value >> 8) & 0xFF, value & 0xFF] + +def int32_as_bytes(value): + value = value & 0xFFFFFFFF + return [(value >> 24) & 0xFF, (value >> 16) & 0xFF, (value >> 8) & 0xFF, value & 0xFF] + +def bytes_as_int16(values): + return (values[0] << 8) | values[1] + +def bytes_as_int24(values): + return (values[0] << 16) | (values[1] << 8) | values[2] + +def bytes_as_int32(values): + return (values[0] << 24) | (values[1] << 16) | (values[2] << 8) | values[3] \ No newline at end of file diff --git a/Settings.py b/Settings.py index 5d0f270b7..69bfa2f63 100644 --- a/Settings.py +++ b/Settings.py @@ -5,7 +5,7 @@ import random import hashlib -from Rom import get_tunic_color_options, get_navi_color_options +from Patches import get_tunic_color_options, get_navi_color_options from version import __version__ class ArgumentDefaultsHelpFormatter(argparse.RawTextHelpFormatter): From 5d9d99d9e38610331deea3ed222c891e8752f031 Mon Sep 17 00:00:00 2001 From: mzxrules Date: Tue, 4 Sep 2018 18:35:12 -0400 Subject: [PATCH 388/755] Apply LocalRom changes --- EntranceShuffle.py | 708 ++++++++++++++++++++++----------------------- Rom.py | 72 +++-- 2 files changed, 396 insertions(+), 384 deletions(-) diff --git a/EntranceShuffle.py b/EntranceShuffle.py index f41ac56e4..69a73aac3 100644 --- a/EntranceShuffle.py +++ b/EntranceShuffle.py @@ -1,358 +1,358 @@ -import random - -def link_entrances(world): - - # setup mandatory connections - for exitname, regionname in mandatory_connections: - connect_simple(world, exitname, regionname) - if world.dungeon_mq['DT']: - for exitname, regionname in DT_MQ_connections: - connect_simple(world, exitname, regionname) - else: - for exitname, regionname in DT_vanilla_connections: - connect_simple(world, exitname, regionname) - if world.dungeon_mq['DC']: - for exitname, regionname in DC_MQ_connections: - connect_simple(world, exitname, regionname) - else: - for exitname, regionname in DC_vanilla_connections: - connect_simple(world, exitname, regionname) - # if we do not shuffle, set default connections - if world.shuffle == 'vanilla': - for exitname, regionname in default_connections: - connect_simple(world, exitname, regionname) - for exitname, regionname in default_dungeon_connections: - connect_simple(world, exitname, regionname) - else: - raise NotImplementedError('Shuffling not supported yet') - - -def connect_simple(world, exitname, regionname): - world.get_entrance(exitname).connect(world.get_region(regionname)) - -def connect_entrance(world, entrancename, exitname): - entrance = world.get_entrance(entrancename) - # check if we got an entrance or a region to connect to - try: - region = world.get_region(exitname) - exit = None - except RuntimeError: - exit = world.get_entrance(exitname) - region = exit.parent_region - - # if this was already connected somewhere, remove the backreference - if entrance.connected_region is not None: - entrance.connected_region.entrances.remove(entrance) - - target = exit_ids[exit.name][0] if exit is not None else exit_ids.get(region.name, None) - addresses = door_addresses[entrance.name][0] - - entrance.connect(region, addresses, target) - world.spoiler.set_entrance(entrance.name, exit.name if exit is not None else region.name, 'entrance') - - -def connect_exit(world, exitname, entrancename): - entrance = world.get_entrance(entrancename) - exit = world.get_entrance(exitname) - - # if this was already connected somewhere, remove the backreference - if exit.connected_region is not None: - exit.connected_region.entrances.remove(exit) - - exit.connect(entrance.parent_region, door_addresses[entrance.name][1], exit_ids[exit.name][1]) - world.spoiler.set_entrance(entrance.name, exit.name, 'exit') - - -def connect_random(world, exitlist, targetlist, two_way=False): - targetlist = list(targetlist) - random.shuffle(targetlist) - - for exit, target in zip(exitlist, targetlist): - if two_way: - connect_two_way(world, exit, target) - else: - connect_entrance(world, exit, target) - - -def connect_doors(world, doors, targets): - """This works inplace""" - random.shuffle(doors) - random.shuffle(targets) - while doors: - door = doors.pop() - target = targets.pop() - connect_entrance(world, door, target) - -# these are connections that cannot be shuffled and always exist. They link together separate parts of the world we need to divide into regions -mandatory_connections = [('Adult Forest Warp Pad', 'Forest Temple Entry Area'), - ('Child Forest Warp Pad', 'Sacred Forest Meadow'), - ('Temple Warp Pad', 'Temple of Time'), - ('Crater Warp Pad', 'Death Mountain Crater Central'), - ('Lake Warp Pad', 'Lake Hylia'), - ('Graveyard Warp Pad', 'Shadow Temple Warp Region'), - ('Colossus Warp Pad', 'Desert Colossus'), - ('Lost Woods', 'Lost Woods'), - ('Lost Woods Front', 'Kokiri Forest'), - ('Woods to Goron City', 'Goron City Woods Warp'), - ('Goron City to Woods', 'Lost Woods'), - ('Goron City from Woods', 'Goron City'), - ('Goron City Bomb Wall', 'Goron City Woods Warp'), - ('Lost Woods Dive Warp', 'Zora River Child'), - ('Zora River Dive Warp', 'Lost Woods'), - ('Meadow Entrance', 'Sacred Forest Meadow Entryway'), - ('Meadow Exit', 'Lost Woods'), - ('Meadow Gate', 'Sacred Forest Meadow'), - ('Meadow Gate Exit', 'Sacred Forest Meadow Entryway'), - ('Adult Meadow Access', 'Forest Temple Entry Area'), - ('Adult Meadow Exit', 'Lost Woods'), - ('Lost Woods Bridge', 'Lost Woods Bridge'), - ('Kokiri Forest Entrance', 'Kokiri Forest'), - ('Field to Forest', 'Lost Woods Bridge'), - ('Forest Exit', 'Hyrule Field'), - ('Field to Lake', 'Lake Hylia'), - ('Lake Hylia Dive Warp', 'Zoras Domain'), - ('Zoras Domain Dive Warp', 'Lake Hylia'), - ('Lake Exit', 'Hyrule Field'), - ('Field to Valley', 'Gerudo Valley'), - ('Valley Exit', 'Hyrule Field'), - ('Valley River', 'Lake Hylia'), - ('Bridge Crossing', 'Gerudo Valley Far Side'), - ('Fortress Entrance', 'Gerudo Fortress'), - ('Haunted Wasteland Entrance', 'Haunted Wasteland'), - ('Haunted Wasteland Crossing', 'Desert Colossus'), - ('Field to Castle Town', 'Castle Town'), - ('Castle Town Exit', 'Hyrule Field'), - ('Hyrule Castle Grounds', 'Hyrule Castle Grounds'), - ('Hyrule Castle Grounds Exit', 'Castle Town'), - ('Hyrule Castle Garden', 'Hyrule Castle Garden'), - ('Hyrule Castle Garden Exit', 'Hyrule Castle Grounds'), - ('Ganons Castle Grounds', 'Ganons Castle Grounds'), - ('Ganons Castle Grounds Exit', 'Castle Town'), - ('Field to Kakariko', 'Kakariko Village'), - ('Kakariko Exit', 'Hyrule Field'), - ('Graveyard Entrance', 'Graveyard'), - ('Graveyard Exit', 'Kakariko Village'), - ('Drop to Graveyard', 'Graveyard'), - ('Death Mountain Entrance', 'Death Mountain'), - ('Death Mountain Exit', 'Kakariko Village'), - ('Goron City Entrance', 'Goron City'), - ('Goron City Exit', 'Death Mountain'), - ('Darunias Chamber', 'Darunias Chamber'), - ('Darunias Chamber Exit', 'Goron City'), - ('Mountain Crater Entrance', 'Death Mountain Crater Upper'), - ('Crater Exit', 'Death Mountain'), - ('Crater Hover Boots', 'Death Mountain Crater Lower'), - ('Crater Ascent', 'Death Mountain Crater Upper'), - ('Crater Scarecrow', 'Death Mountain Crater Central'), - ('Crater Bridge', 'Death Mountain Crater Central'), - ('Crater Bridge Reverse', 'Death Mountain Crater Lower'), - ('Crater to City', 'Goron City'), - ('Crater Access', 'Death Mountain Crater Lower'), - ('Dodongos Cavern Rocks', 'Dodongos Cavern Entryway'), - ('Mountain Access from Behind Rock', 'Death Mountain'), - ('Field to Zora River', 'Zora River Front'), - ('Zora River Exit', 'Hyrule Field'), - ('Zora River Rocks', 'Zora River Child'), - ('Zora River Downstream', 'Zora River Front'), - ('Zora River Child to Shared', 'Zora River Shared'), - ('Zora River Adult to Shared', 'Zora River Shared'), - ('Zora River Waterfall', 'Zoras Domain'), - ('Zoras Domain Exit', 'Zora River Child'), - ('Behind King Zora', 'Zoras Fountain'), - ('Zoras Fountain Exit', 'Zoras Domain'), - ('Zora River Adult', 'Zora River Adult'), - ('Zoras Domain Adult Access', 'Zoras Domain Frozen'), - ('Zoras Fountain Adult Access', 'Outside Ice Cavern'), - ('Lon Lon Rance Entrance', 'Lon Lon Ranch'), - ('Lon Lon Exit', 'Hyrule Field'), - ('Jabu Jabus Belly Ceiling Switch', 'Jabu Jabus Belly Main'), - ('Jabu Jabus Belly Retreat', 'Jabu Jabus Belly Beginning'), - ('Jabu Jabus Belly Tentacles', 'Jabu Jabus Belly Depths'), - ('Jabu Jabus Belly Elevator', 'Jabu Jabus Belly Main'), - ('Jabu Jabus Belly Octopus', 'Jabu Jabus Belly Boss Area'), - ('Jabu Jabus Belly Final Backtrack', 'Jabu Jabus Belly Main'), - ('Forest Temple Song of Time Block', 'Forest Temple NW Outdoors'), - ('Forest Temple Lobby Eyeball Switch', 'Forest Temple NE Outdoors'), - ('Forest Temple Lobby Locked Door', 'Forest Temple Block Push Room'), - ('Forest Temple Through Map Room', 'Forest Temple NE Outdoors'), - ('Forest Temple Well Connection', 'Forest Temple NW Outdoors'), - ('Forest Temple Outside to Lobby', 'Forest Temple Lobby'), - ('Forest Temple Scarecrows Song', 'Forest Temple Falling Room'), - ('Forest Temple Falling Room Exit', 'Forest Temple NE Outdoors'), - ('Forest Temple Elevator', 'Forest Temple Boss Region'), - ('Forest Temple Outside Backdoor', 'Forest Temple Outside Upper Ledge'), - ('Forest Temple Twisted Hall', 'Forest Temple Bow Region'), - ('Forest Temple Straightened Hall', 'Forest Temple Straightened Hall'), - ('Forest Temple Boss Key Chest Drop', 'Forest Temple Outside Upper Ledge'), - ('Forest Temple Outside Ledge Drop', 'Forest Temple NW Outdoors'), - ('Forest Temple Drop to Falling Room', 'Forest Temple Falling Room'), - ('Fire Temple Early Climb', 'Fire Temple Middle'), - ('Fire Temple Fire Maze Escape', 'Fire Temple Upper'), - ('Water Temple Central Pillar', 'Water Temple Middle Water Level'), - ('Water Temple Upper Locked Door', 'Water Temple Dark Link Region'), - ('Shadow Temple First Pit', 'Shadow Temple First Beamos'), - ('Shadow Temple Bomb Wall', 'Shadow Temple Huge Pit'), - ('Shadow Temple Hookshot Target', 'Shadow Temple Wind Tunnel'), - ('Shadow Temple Boat', 'Shadow Temple Beyond Boat'), - ('Gerudo Training Ground Left Silver Rupees', 'Gerudo Training Grounds Heavy Block Room'), - ('Gerudo Training Ground Beamos', 'Gerudo Training Grounds Lava Room'), - ('Gerudo Training Ground Central Door', 'Gerudo Training Grounds Central Maze'), - ('Gerudo Training Grounds Right Locked Doors', 'Gerudo Training Grounds Central Maze Right'), - ('Gerudo Training Grounds Maze Exit', 'Gerudo Training Grounds Lava Room'), - ('Gerudo Training Grounds Maze Ledge', 'Gerudo Training Grounds Central Maze Right'), - ('Gerudo Training Grounds Right Hookshot Target', 'Gerudo Training Grounds Hammer Room'), - ('Gerudo Training Grounds Hammer Target', 'Gerudo Training Grounds Eye Statue Lower'), - ('Gerudo Training Grounds Hammer Room Clear', 'Gerudo Training Grounds Lava Room'), - ('Gerudo Training Grounds Eye Statue Exit', 'Gerudo Training Grounds Hammer Room'), - ('Gerudo Training Grounds Eye Statue Drop', 'Gerudo Training Grounds Eye Statue Lower'), - ('Gerudo Training Grounds Hidden Hookshot Target', 'Gerudo Training Grounds Eye Statue Upper'), - ('Spirit Temple Crawl Passage', 'Child Spirit Temple'), - ('Spirit Temple Silver Block', 'Early Adult Spirit Temple'), - ('Child Spirit Temple Climb', 'Child Spirit Temple Climb'), - ('Child Spirit Temple Passthrough', 'Spirit Temple Central Chamber'), - ('Adult Spirit Temple Passthrough', 'Spirit Temple Central Chamber'), - ('Spirit Temple Middle Child Door', 'Child Spirit Temple Climb'), - ('Spirit Temple to Hands', 'Spirit Temple Outdoor Hands'), - ('Spirit Temple Central Locked Door', 'Spirit Temple Beyond Central Locked Door'), - ('Spirit Temple Final Locked Door', 'Spirit Temple Beyond Final Locked Door'), - ('Ganons Castle Forest Trial', 'Ganons Castle Forest Trial'), - ('Ganons Castle Fire Trial', 'Ganons Castle Fire Trial'), - ('Ganons Castle Water Trial', 'Ganons Castle Water Trial'), - ('Ganons Castle Shadow Trial', 'Ganons Castle Shadow Trial'), - ('Ganons Castle Spirit Trial', 'Ganons Castle Spirit Trial'), - ('Ganons Castle Light Trial', 'Ganons Castle Light Trial'), - ('Ganons Castle Tower', 'Ganons Castle Tower') - ] - -DT_vanilla_connections = [('Deku Tree Slingshot Passage', 'Deku Tree Slingshot Room'), - ('Deku Tree Slingshot Exit', 'Deku Tree Lobby'), - ('Deku Tree Basement Path', 'Deku Tree Boss Room'), - ('Deku Tree Basement Vines', 'Deku Tree Lobby') - ] - +import random + +def link_entrances(world): + + # setup mandatory connections + for exitname, regionname in mandatory_connections: + connect_simple(world, exitname, regionname) + if world.dungeon_mq['DT']: + for exitname, regionname in DT_MQ_connections: + connect_simple(world, exitname, regionname) + else: + for exitname, regionname in DT_vanilla_connections: + connect_simple(world, exitname, regionname) + if world.dungeon_mq['DC']: + for exitname, regionname in DC_MQ_connections: + connect_simple(world, exitname, regionname) + else: + for exitname, regionname in DC_vanilla_connections: + connect_simple(world, exitname, regionname) + # if we do not shuffle, set default connections + if world.shuffle == 'vanilla': + for exitname, regionname in default_connections: + connect_simple(world, exitname, regionname) + for exitname, regionname in default_dungeon_connections: + connect_simple(world, exitname, regionname) + else: + raise NotImplementedError('Shuffling not supported yet') + + +def connect_simple(world, exitname, regionname): + world.get_entrance(exitname).connect(world.get_region(regionname)) + +def connect_entrance(world, entrancename, exitname): + entrance = world.get_entrance(entrancename) + # check if we got an entrance or a region to connect to + try: + region = world.get_region(exitname) + exit = None + except RuntimeError: + exit = world.get_entrance(exitname) + region = exit.parent_region + + # if this was already connected somewhere, remove the backreference + if entrance.connected_region is not None: + entrance.connected_region.entrances.remove(entrance) + + target = exit_ids[exit.name][0] if exit is not None else exit_ids.get(region.name, None) + addresses = door_addresses[entrance.name][0] + + entrance.connect(region, addresses, target) + world.spoiler.set_entrance(entrance.name, exit.name if exit is not None else region.name, 'entrance') + + +def connect_exit(world, exitname, entrancename): + entrance = world.get_entrance(entrancename) + exit = world.get_entrance(exitname) + + # if this was already connected somewhere, remove the backreference + if exit.connected_region is not None: + exit.connected_region.entrances.remove(exit) + + exit.connect(entrance.parent_region, door_addresses[entrance.name][1], exit_ids[exit.name][1]) + world.spoiler.set_entrance(entrance.name, exit.name, 'exit') + + +def connect_random(world, exitlist, targetlist, two_way=False): + targetlist = list(targetlist) + random.shuffle(targetlist) + + for exit, target in zip(exitlist, targetlist): + if two_way: + connect_two_way(world, exit, target) + else: + connect_entrance(world, exit, target) + + +def connect_doors(world, doors, targets): + """This works inplace""" + random.shuffle(doors) + random.shuffle(targets) + while doors: + door = doors.pop() + target = targets.pop() + connect_entrance(world, door, target) + +# these are connections that cannot be shuffled and always exist. They link together separate parts of the world we need to divide into regions +mandatory_connections = [('Adult Forest Warp Pad', 'Forest Temple Entry Area'), + ('Child Forest Warp Pad', 'Sacred Forest Meadow'), + ('Temple Warp Pad', 'Temple of Time'), + ('Crater Warp Pad', 'Death Mountain Crater Central'), + ('Lake Warp Pad', 'Lake Hylia'), + ('Graveyard Warp Pad', 'Shadow Temple Warp Region'), + ('Colossus Warp Pad', 'Desert Colossus'), + ('Lost Woods', 'Lost Woods'), + ('Lost Woods Front', 'Kokiri Forest'), + ('Woods to Goron City', 'Goron City Woods Warp'), + ('Goron City to Woods', 'Lost Woods'), + ('Goron City from Woods', 'Goron City'), + ('Goron City Bomb Wall', 'Goron City Woods Warp'), + ('Lost Woods Dive Warp', 'Zora River Child'), + ('Zora River Dive Warp', 'Lost Woods'), + ('Meadow Entrance', 'Sacred Forest Meadow Entryway'), + ('Meadow Exit', 'Lost Woods'), + ('Meadow Gate', 'Sacred Forest Meadow'), + ('Meadow Gate Exit', 'Sacred Forest Meadow Entryway'), + ('Adult Meadow Access', 'Forest Temple Entry Area'), + ('Adult Meadow Exit', 'Lost Woods'), + ('Lost Woods Bridge', 'Lost Woods Bridge'), + ('Kokiri Forest Entrance', 'Kokiri Forest'), + ('Field to Forest', 'Lost Woods Bridge'), + ('Forest Exit', 'Hyrule Field'), + ('Field to Lake', 'Lake Hylia'), + ('Lake Hylia Dive Warp', 'Zoras Domain'), + ('Zoras Domain Dive Warp', 'Lake Hylia'), + ('Lake Exit', 'Hyrule Field'), + ('Field to Valley', 'Gerudo Valley'), + ('Valley Exit', 'Hyrule Field'), + ('Valley River', 'Lake Hylia'), + ('Bridge Crossing', 'Gerudo Valley Far Side'), + ('Fortress Entrance', 'Gerudo Fortress'), + ('Haunted Wasteland Entrance', 'Haunted Wasteland'), + ('Haunted Wasteland Crossing', 'Desert Colossus'), + ('Field to Castle Town', 'Castle Town'), + ('Castle Town Exit', 'Hyrule Field'), + ('Hyrule Castle Grounds', 'Hyrule Castle Grounds'), + ('Hyrule Castle Grounds Exit', 'Castle Town'), + ('Hyrule Castle Garden', 'Hyrule Castle Garden'), + ('Hyrule Castle Garden Exit', 'Hyrule Castle Grounds'), + ('Ganons Castle Grounds', 'Ganons Castle Grounds'), + ('Ganons Castle Grounds Exit', 'Castle Town'), + ('Field to Kakariko', 'Kakariko Village'), + ('Kakariko Exit', 'Hyrule Field'), + ('Graveyard Entrance', 'Graveyard'), + ('Graveyard Exit', 'Kakariko Village'), + ('Drop to Graveyard', 'Graveyard'), + ('Death Mountain Entrance', 'Death Mountain'), + ('Death Mountain Exit', 'Kakariko Village'), + ('Goron City Entrance', 'Goron City'), + ('Goron City Exit', 'Death Mountain'), + ('Darunias Chamber', 'Darunias Chamber'), + ('Darunias Chamber Exit', 'Goron City'), + ('Mountain Crater Entrance', 'Death Mountain Crater Upper'), + ('Crater Exit', 'Death Mountain'), + ('Crater Hover Boots', 'Death Mountain Crater Lower'), + ('Crater Ascent', 'Death Mountain Crater Upper'), + ('Crater Scarecrow', 'Death Mountain Crater Central'), + ('Crater Bridge', 'Death Mountain Crater Central'), + ('Crater Bridge Reverse', 'Death Mountain Crater Lower'), + ('Crater to City', 'Goron City'), + ('Crater Access', 'Death Mountain Crater Lower'), + ('Dodongos Cavern Rocks', 'Dodongos Cavern Entryway'), + ('Mountain Access from Behind Rock', 'Death Mountain'), + ('Field to Zora River', 'Zora River Front'), + ('Zora River Exit', 'Hyrule Field'), + ('Zora River Rocks', 'Zora River Child'), + ('Zora River Downstream', 'Zora River Front'), + ('Zora River Child to Shared', 'Zora River Shared'), + ('Zora River Adult to Shared', 'Zora River Shared'), + ('Zora River Waterfall', 'Zoras Domain'), + ('Zoras Domain Exit', 'Zora River Child'), + ('Behind King Zora', 'Zoras Fountain'), + ('Zoras Fountain Exit', 'Zoras Domain'), + ('Zora River Adult', 'Zora River Adult'), + ('Zoras Domain Adult Access', 'Zoras Domain Frozen'), + ('Zoras Fountain Adult Access', 'Outside Ice Cavern'), + ('Lon Lon Rance Entrance', 'Lon Lon Ranch'), + ('Lon Lon Exit', 'Hyrule Field'), + ('Jabu Jabus Belly Ceiling Switch', 'Jabu Jabus Belly Main'), + ('Jabu Jabus Belly Retreat', 'Jabu Jabus Belly Beginning'), + ('Jabu Jabus Belly Tentacles', 'Jabu Jabus Belly Depths'), + ('Jabu Jabus Belly Elevator', 'Jabu Jabus Belly Main'), + ('Jabu Jabus Belly Octopus', 'Jabu Jabus Belly Boss Area'), + ('Jabu Jabus Belly Final Backtrack', 'Jabu Jabus Belly Main'), + ('Forest Temple Song of Time Block', 'Forest Temple NW Outdoors'), + ('Forest Temple Lobby Eyeball Switch', 'Forest Temple NE Outdoors'), + ('Forest Temple Lobby Locked Door', 'Forest Temple Block Push Room'), + ('Forest Temple Through Map Room', 'Forest Temple NE Outdoors'), + ('Forest Temple Well Connection', 'Forest Temple NW Outdoors'), + ('Forest Temple Outside to Lobby', 'Forest Temple Lobby'), + ('Forest Temple Scarecrows Song', 'Forest Temple Falling Room'), + ('Forest Temple Falling Room Exit', 'Forest Temple NE Outdoors'), + ('Forest Temple Elevator', 'Forest Temple Boss Region'), + ('Forest Temple Outside Backdoor', 'Forest Temple Outside Upper Ledge'), + ('Forest Temple Twisted Hall', 'Forest Temple Bow Region'), + ('Forest Temple Straightened Hall', 'Forest Temple Straightened Hall'), + ('Forest Temple Boss Key Chest Drop', 'Forest Temple Outside Upper Ledge'), + ('Forest Temple Outside Ledge Drop', 'Forest Temple NW Outdoors'), + ('Forest Temple Drop to Falling Room', 'Forest Temple Falling Room'), + ('Fire Temple Early Climb', 'Fire Temple Middle'), + ('Fire Temple Fire Maze Escape', 'Fire Temple Upper'), + ('Water Temple Central Pillar', 'Water Temple Middle Water Level'), + ('Water Temple Upper Locked Door', 'Water Temple Dark Link Region'), + ('Shadow Temple First Pit', 'Shadow Temple First Beamos'), + ('Shadow Temple Bomb Wall', 'Shadow Temple Huge Pit'), + ('Shadow Temple Hookshot Target', 'Shadow Temple Wind Tunnel'), + ('Shadow Temple Boat', 'Shadow Temple Beyond Boat'), + ('Gerudo Training Ground Left Silver Rupees', 'Gerudo Training Grounds Heavy Block Room'), + ('Gerudo Training Ground Beamos', 'Gerudo Training Grounds Lava Room'), + ('Gerudo Training Ground Central Door', 'Gerudo Training Grounds Central Maze'), + ('Gerudo Training Grounds Right Locked Doors', 'Gerudo Training Grounds Central Maze Right'), + ('Gerudo Training Grounds Maze Exit', 'Gerudo Training Grounds Lava Room'), + ('Gerudo Training Grounds Maze Ledge', 'Gerudo Training Grounds Central Maze Right'), + ('Gerudo Training Grounds Right Hookshot Target', 'Gerudo Training Grounds Hammer Room'), + ('Gerudo Training Grounds Hammer Target', 'Gerudo Training Grounds Eye Statue Lower'), + ('Gerudo Training Grounds Hammer Room Clear', 'Gerudo Training Grounds Lava Room'), + ('Gerudo Training Grounds Eye Statue Exit', 'Gerudo Training Grounds Hammer Room'), + ('Gerudo Training Grounds Eye Statue Drop', 'Gerudo Training Grounds Eye Statue Lower'), + ('Gerudo Training Grounds Hidden Hookshot Target', 'Gerudo Training Grounds Eye Statue Upper'), + ('Spirit Temple Crawl Passage', 'Child Spirit Temple'), + ('Spirit Temple Silver Block', 'Early Adult Spirit Temple'), + ('Child Spirit Temple Climb', 'Child Spirit Temple Climb'), + ('Child Spirit Temple Passthrough', 'Spirit Temple Central Chamber'), + ('Adult Spirit Temple Passthrough', 'Spirit Temple Central Chamber'), + ('Spirit Temple Middle Child Door', 'Child Spirit Temple Climb'), + ('Spirit Temple to Hands', 'Spirit Temple Outdoor Hands'), + ('Spirit Temple Central Locked Door', 'Spirit Temple Beyond Central Locked Door'), + ('Spirit Temple Final Locked Door', 'Spirit Temple Beyond Final Locked Door'), + ('Ganons Castle Forest Trial', 'Ganons Castle Forest Trial'), + ('Ganons Castle Fire Trial', 'Ganons Castle Fire Trial'), + ('Ganons Castle Water Trial', 'Ganons Castle Water Trial'), + ('Ganons Castle Shadow Trial', 'Ganons Castle Shadow Trial'), + ('Ganons Castle Spirit Trial', 'Ganons Castle Spirit Trial'), + ('Ganons Castle Light Trial', 'Ganons Castle Light Trial'), + ('Ganons Castle Tower', 'Ganons Castle Tower') + ] + +DT_vanilla_connections = [('Deku Tree Slingshot Passage', 'Deku Tree Slingshot Room'), + ('Deku Tree Slingshot Exit', 'Deku Tree Lobby'), + ('Deku Tree Basement Path', 'Deku Tree Boss Room'), + ('Deku Tree Basement Vines', 'Deku Tree Lobby') + ] + DT_MQ_connections = [('Deku Tree Compass Passage', 'Deku Tree Compass Room'), ('Deku Tree Compass Exit', 'Deku Tree Lobby'), ('Deku Tree Basement Path', 'Deku Tree Boss Room'), - ('Deku Tree Basement Vines', 'Deku Tree Lobby') - ] - -DC_vanilla_connections = [('Dodongos Cavern Lobby', 'Dodongos Cavern Lobby'), - ('Dodongos Cavern Retreat', 'Dodongos Cavern Beginning'), - ('Dodongos Cavern Left Door', 'Dodongos Cavern Climb'), - ('Dodongos Cavern Bridge Fall', 'Dodongos Cavern Lobby'), - ('Dodongos Cavern Slingshot Target', 'Dodongos Cavern Far Bridge'), - ('Dodongos Cavern Bridge Fall 2', 'Dodongos Cavern Lobby'), - ('Dodongos Cavern Bomb Drop', 'Dodongos Cavern Boss Area'), - ('Dodongos Cavern Exit Skull', 'Dodongos Cavern Lobby') - ] - + ('Deku Tree Basement Vines', 'Deku Tree Lobby') + ] + +DC_vanilla_connections = [('Dodongos Cavern Lobby', 'Dodongos Cavern Lobby'), + ('Dodongos Cavern Retreat', 'Dodongos Cavern Beginning'), + ('Dodongos Cavern Left Door', 'Dodongos Cavern Climb'), + ('Dodongos Cavern Bridge Fall', 'Dodongos Cavern Lobby'), + ('Dodongos Cavern Slingshot Target', 'Dodongos Cavern Far Bridge'), + ('Dodongos Cavern Bridge Fall 2', 'Dodongos Cavern Lobby'), + ('Dodongos Cavern Bomb Drop', 'Dodongos Cavern Boss Area'), + ('Dodongos Cavern Exit Skull', 'Dodongos Cavern Lobby') + ] + DC_MQ_connections = [('Dodongos Cavern Lobby', 'Dodongos Cavern Lobby'), - ('Dodongos Cavern Bomb Drop', 'Dodongos Cavern Boss Area') - ] - -# non-shuffled entrance links -default_connections = [('Links House Exit', 'Kokiri Forest'), - ('Links House', 'Links House'), - ('Mido House Exit', 'Kokiri Forest'), - ('Mido House', 'Mido House'), - ('Saria House Exit', 'Kokiri Forest'), - ('Saria House', 'Saria House'), - ('House of Twins Exit', 'Kokiri Forest'), - ('House of Twins', 'House of Twins'), - ('Know It All House Exit', 'Kokiri Forest'), - ('Know It All House', 'Know It All House'), - ('Kokiri Shop Exit', 'Kokiri Forest'), - ('Kokiri Shop', 'Kokiri Shop'), - ('Lake Hylia Lab', 'Lake Hylia Lab'), - ('Fishing Hole', 'Fishing Hole'), - ('Colossus Fairy', 'Colossus Fairy'), - ('Temple of Time', 'Temple of Time'), - ('Temple of Time Exit', 'Castle Town'), - ('Door of Time', 'Beyond Door of Time'), - ('Emerge as Adult', 'Temple of Time'), - ('Hyrule Castle Fairy', 'Hyrule Castle Fairy'), - ('Ganons Castle Fairy', 'Ganons Castle Fairy'), - ('Castle Town Rupee Room', 'Castle Town Rupee Room'), - ('Castle Town Bazaar', 'Castle Town Bazaar'), - ('Castle Town Mask Shop', 'Castle Town Mask Shop'), - ('Castle Town Shooting Gallery', 'Castle Town Shooting Gallery'), - ('Castle Town Bombchu Bowling', 'Castle Town Bombchu Bowling'), - ('Castle Town Potion Shop', 'Castle Town Potion Shop'), - ('Castle Town Treasure Chest Game', 'Castle Town Treasure Chest Game'), - ('Castle Town Bombchu Shop', 'Castle Town Bombchu Shop'), - ('Castle Town Dog Lady', 'Castle Town Dog Lady'), - ('Castle Town Man in Green House', 'Castle Town Man in Green House'), - ('Carpenter Boss House', 'Carpenter Boss House'), - ('House of Skulltulla', 'House of Skulltulla'), - ('Impas House', 'Impas House'), - ('Impas House Back', 'Impas House Back'), - ('Windmill', 'Windmill'), - ('Kakariko Bazaar', 'Kakariko Bazaar'), - ('Kakariko Shooting Gallery', 'Kakariko Shooting Gallery'), - ('Kakariko Potion Shop Front', 'Kakariko Potion Shop Front'), - ('Kakariko Potion Shop Back', 'Kakariko Potion Shop Back'), - ('Odd Medicine Building', 'Odd Medicine Building'), - ('Shield Grave', 'Shield Grave'), - ('Heart Piece Grave', 'Heart Piece Grave'), - ('Composer Grave', 'Composer Grave'), - ('Dampes Grave', 'Dampes Grave'), - ('Crater Fairy', 'Crater Fairy'), - ('Mountain Summit Fairy', 'Mountain Summit Fairy'), - ('Dampes House', 'Dampes House'), - ('Talon House', 'Talon House'), - ('Ingo Barn', 'Ingo Barn'), - ('Lon Lon Corner Tower', 'Lon Lon Corner Tower'), - ('Zora Shop', 'Zora Shop'), - ('Zoras Fountain Fairy', 'Zoras Fountain Fairy'), - ('Kokiri Forest Storms Grotto', 'Kokiri Forest Storms Grotto'), - ('Lost Woods Generic Grotto', 'Lost Woods Generic Grotto'), - ('Deku Theater', 'Deku Theater'), - ('Lost Woods Sales Grotto', 'Lost Woods Sales Grotto'), - ('Meadow Fairy Grotto', 'Meadow Fairy Grotto'), - ('Front of Meadow Grotto', 'Front of Meadow Grotto'), - ('Lon Lon Grotto', 'Lon Lon Grotto'), - ('Remote Southern Grotto', 'Remote Southern Grotto'), - ('Field Near Lake Outside Fence Grotto', 'Field Near Lake Outside Fence Grotto'), - ('Field Near Lake Inside Fence Grotto', 'Field Near Lake Inside Fence Grotto'), - ('Field Valley Grotto', 'Field Valley Grotto'), - ('Field West Castle Town Grotto', 'Field West Castle Town Grotto'), - ('Field Far West Castle Town Grotto', 'Field Far West Castle Town Grotto'), - ('Field Kakariko Grotto', 'Field Kakariko Grotto'), - ('Kakariko Bombable Grotto', 'Kakariko Bombable Grotto'), - ('Kakariko Back Grotto', 'Kakariko Back Grotto'), - ('Mountain Bombable Grotto', 'Mountain Bombable Grotto'), - ('Mountain Storms Grotto', 'Mountain Storms Grotto'), - ('Top of Crater Grotto', 'Top of Crater Grotto'), - ('Field North Lon Lon Grotto', 'Field North Lon Lon Grotto'), - ('Castle Storms Grotto', 'Castle Storms Grotto'), - ('Zora River Plateau Open Grotto', 'Zora River Plateau Open Grotto'), - ('Zora River Plateau Bombable Grotto', 'Zora River Plateau Bombable Grotto'), - ('Lake Hylia Grotto', 'Lake Hylia Grotto') - ] - -# non shuffled dungeons -default_dungeon_connections = [('Deku Tree', 'Deku Tree Lobby'), - ('Deku Tree Exit', 'Kokiri Forest'), - ('Dodongos Cavern', 'Dodongos Cavern Beginning'), - ('Dodongos Cavern Exit', 'Dodongos Cavern Entryway'), - ('Jabu Jabus Belly', 'Jabu Jabus Belly Beginning'), - ('Jabu Jabus Belly Exit', 'Zoras Fountain'), - ('Forest Temple Entrance', 'Forest Temple Lobby'), - ('Forest Temple Exit', 'Forest Temple Entry Area'), - ('Bottom of the Well', 'Bottom of the Well'), - ('Bottom of the Well Exit', 'Kakariko Village'), - ('Fire Temple Entrance', 'Fire Temple Lower'), - ('Fire Temple Exit', 'Death Mountain Crater Central'), - ('Ice Cavern Entrance', 'Ice Cavern'), - ('Ice Cavern Exit', 'Outside Ice Cavern'), - ('Water Temple Entrance', 'Water Temple Lobby'), - ('Water Temple Exit', 'Lake Hylia'), - ('Shadow Temple Entrance', 'Shadow Temple Beginning'), - ('Shadow Temple Exit', 'Shadow Temple Warp Region'), - ('Gerudo Training Grounds Entrance', 'Gerudo Training Grounds Lobby'), - ('Gerudo Training Grounds Exit', 'Gerudo Fortress'), - ('Spirit Temple Entrance', 'Spirit Temple Lobby'), - ('Spirit Temple Exit', 'Desert Colossus'), - ('Rainbow Bridge', 'Ganons Castle Lobby'), - ('Ganons Castle Exit', 'Ganons Castle Grounds') - ] + ('Dodongos Cavern Bomb Drop', 'Dodongos Cavern Boss Area') + ] + +# non-shuffled entrance links +default_connections = [('Links House Exit', 'Kokiri Forest'), + ('Links House', 'Links House'), + ('Mido House Exit', 'Kokiri Forest'), + ('Mido House', 'Mido House'), + ('Saria House Exit', 'Kokiri Forest'), + ('Saria House', 'Saria House'), + ('House of Twins Exit', 'Kokiri Forest'), + ('House of Twins', 'House of Twins'), + ('Know It All House Exit', 'Kokiri Forest'), + ('Know It All House', 'Know It All House'), + ('Kokiri Shop Exit', 'Kokiri Forest'), + ('Kokiri Shop', 'Kokiri Shop'), + ('Lake Hylia Lab', 'Lake Hylia Lab'), + ('Fishing Hole', 'Fishing Hole'), + ('Colossus Fairy', 'Colossus Fairy'), + ('Temple of Time', 'Temple of Time'), + ('Temple of Time Exit', 'Castle Town'), + ('Door of Time', 'Beyond Door of Time'), + ('Emerge as Adult', 'Temple of Time'), + ('Hyrule Castle Fairy', 'Hyrule Castle Fairy'), + ('Ganons Castle Fairy', 'Ganons Castle Fairy'), + ('Castle Town Rupee Room', 'Castle Town Rupee Room'), + ('Castle Town Bazaar', 'Castle Town Bazaar'), + ('Castle Town Mask Shop', 'Castle Town Mask Shop'), + ('Castle Town Shooting Gallery', 'Castle Town Shooting Gallery'), + ('Castle Town Bombchu Bowling', 'Castle Town Bombchu Bowling'), + ('Castle Town Potion Shop', 'Castle Town Potion Shop'), + ('Castle Town Treasure Chest Game', 'Castle Town Treasure Chest Game'), + ('Castle Town Bombchu Shop', 'Castle Town Bombchu Shop'), + ('Castle Town Dog Lady', 'Castle Town Dog Lady'), + ('Castle Town Man in Green House', 'Castle Town Man in Green House'), + ('Carpenter Boss House', 'Carpenter Boss House'), + ('House of Skulltulla', 'House of Skulltulla'), + ('Impas House', 'Impas House'), + ('Impas House Back', 'Impas House Back'), + ('Windmill', 'Windmill'), + ('Kakariko Bazaar', 'Kakariko Bazaar'), + ('Kakariko Shooting Gallery', 'Kakariko Shooting Gallery'), + ('Kakariko Potion Shop Front', 'Kakariko Potion Shop Front'), + ('Kakariko Potion Shop Back', 'Kakariko Potion Shop Back'), + ('Odd Medicine Building', 'Odd Medicine Building'), + ('Shield Grave', 'Shield Grave'), + ('Heart Piece Grave', 'Heart Piece Grave'), + ('Composer Grave', 'Composer Grave'), + ('Dampes Grave', 'Dampes Grave'), + ('Crater Fairy', 'Crater Fairy'), + ('Mountain Summit Fairy', 'Mountain Summit Fairy'), + ('Dampes House', 'Dampes House'), + ('Talon House', 'Talon House'), + ('Ingo Barn', 'Ingo Barn'), + ('Lon Lon Corner Tower', 'Lon Lon Corner Tower'), + ('Zora Shop', 'Zora Shop'), + ('Zoras Fountain Fairy', 'Zoras Fountain Fairy'), + ('Kokiri Forest Storms Grotto', 'Kokiri Forest Storms Grotto'), + ('Lost Woods Generic Grotto', 'Lost Woods Generic Grotto'), + ('Deku Theater', 'Deku Theater'), + ('Lost Woods Sales Grotto', 'Lost Woods Sales Grotto'), + ('Meadow Fairy Grotto', 'Meadow Fairy Grotto'), + ('Front of Meadow Grotto', 'Front of Meadow Grotto'), + ('Lon Lon Grotto', 'Lon Lon Grotto'), + ('Remote Southern Grotto', 'Remote Southern Grotto'), + ('Field Near Lake Outside Fence Grotto', 'Field Near Lake Outside Fence Grotto'), + ('Field Near Lake Inside Fence Grotto', 'Field Near Lake Inside Fence Grotto'), + ('Field Valley Grotto', 'Field Valley Grotto'), + ('Field West Castle Town Grotto', 'Field West Castle Town Grotto'), + ('Field Far West Castle Town Grotto', 'Field Far West Castle Town Grotto'), + ('Field Kakariko Grotto', 'Field Kakariko Grotto'), + ('Kakariko Bombable Grotto', 'Kakariko Bombable Grotto'), + ('Kakariko Back Grotto', 'Kakariko Back Grotto'), + ('Mountain Bombable Grotto', 'Mountain Bombable Grotto'), + ('Mountain Storms Grotto', 'Mountain Storms Grotto'), + ('Top of Crater Grotto', 'Top of Crater Grotto'), + ('Field North Lon Lon Grotto', 'Field North Lon Lon Grotto'), + ('Castle Storms Grotto', 'Castle Storms Grotto'), + ('Zora River Plateau Open Grotto', 'Zora River Plateau Open Grotto'), + ('Zora River Plateau Bombable Grotto', 'Zora River Plateau Bombable Grotto'), + ('Lake Hylia Grotto', 'Lake Hylia Grotto') + ] + +# non shuffled dungeons +default_dungeon_connections = [('Deku Tree', 'Deku Tree Lobby'), + ('Deku Tree Exit', 'Kokiri Forest'), + ('Dodongos Cavern', 'Dodongos Cavern Beginning'), + ('Dodongos Cavern Exit', 'Dodongos Cavern Entryway'), + ('Jabu Jabus Belly', 'Jabu Jabus Belly Beginning'), + ('Jabu Jabus Belly Exit', 'Zoras Fountain'), + ('Forest Temple Entrance', 'Forest Temple Lobby'), + ('Forest Temple Exit', 'Forest Temple Entry Area'), + ('Bottom of the Well', 'Bottom of the Well'), + ('Bottom of the Well Exit', 'Kakariko Village'), + ('Fire Temple Entrance', 'Fire Temple Lower'), + ('Fire Temple Exit', 'Death Mountain Crater Central'), + ('Ice Cavern Entrance', 'Ice Cavern'), + ('Ice Cavern Exit', 'Outside Ice Cavern'), + ('Water Temple Entrance', 'Water Temple Lobby'), + ('Water Temple Exit', 'Lake Hylia'), + ('Shadow Temple Entrance', 'Shadow Temple Beginning'), + ('Shadow Temple Exit', 'Shadow Temple Warp Region'), + ('Gerudo Training Grounds Entrance', 'Gerudo Training Grounds Lobby'), + ('Gerudo Training Grounds Exit', 'Gerudo Fortress'), + ('Spirit Temple Entrance', 'Spirit Temple Lobby'), + ('Spirit Temple Exit', 'Desert Colossus'), + ('Rainbow Bridge', 'Ganons Castle Lobby'), + ('Ganons Castle Exit', 'Ganons Castle Grounds') + ] diff --git a/Rom.py b/Rom.py index 21096a6eb..c56eb0f9e 100644 --- a/Rom.py +++ b/Rom.py @@ -1,41 +1,51 @@ -import io -import json -import logging -import os -import platform -import struct -import subprocess -import random -import copy - -from Utils import default_output_path - class LocalRom(object): - def __init__(self, settings, patch=True): self.last_address = None file = settings.rom - decomp_file = os.path.join(default_output_path(settings.output_dir), 'ZOOTDEC.z64') - - validCRC = [] - validCRC.append(bytearray([0xEC, 0x70, 0x11, 0xB7, 0x76, 0x16, 0xD7, 0x2B])) # Compressed - validCRC.append(bytearray([0x70, 0xEC, 0xB7, 0x11, 0x16, 0x76, 0x2B, 0xD7])) # Byteswap compressed - validCRC.append(bytearray([0x93, 0x52, 0x2E, 0x7B, 0xE5, 0x06, 0xD4, 0x27])) # Decompressed + decomp_file = 'ZOOTDEC.z64' os.chdir(os.path.dirname(os.path.realpath(__file__))) #os.chdir(output_path(os.path.dirname(os.path.realpath(__file__)))) - with open(file, 'rb') as stream: - self.buffer = read_rom(stream) + + try: + # Read decompressed file if it exists + with open(decomp_file, 'rb') as stream: + self.buffer = read_rom(stream) + # This is mainly for validation testing, but just in case... + self.decompress_rom_file(decomp_file, decomp_file) + except Exception as ex: + # No decompressed file, instead read Input ROM + with open(file, 'rb') as stream: + self.buffer = read_rom(stream) + self.decompress_rom_file(file, decomp_file) + + # Add file to maximum size + self.buffer.extend(bytearray([0x00] * (0x4000000 - len(self.buffer)))) + + def decompress_rom_file(self, file, decomp_file): + validCRC = [ + [0xEC, 0x70, 0x11, 0xB7, 0x76, 0x16, 0xD7, 0x2B], # Compressed + [0x70, 0xEC, 0xB7, 0x11, 0x16, 0x76, 0x2B, 0xD7], # Byteswap compressed + [0x93, 0x52, 0x2E, 0x7B, 0xE5, 0x06, 0xD4, 0x27], # Decompressed + ] + + # Validate ROM file file_name = os.path.splitext(file) - romCRC = self.buffer[0x10:0x18] + romCRC = list(self.buffer[0x10:0x18]) if romCRC not in validCRC: - raise RuntimeError('ROM is not a valid OoT 1.0 US ROM.') - if len(self.buffer) < 0x2000000 or len(self.buffer) > (0x4000000) or file_name[1] not in ['.z64', '.n64']: - raise RuntimeError('ROM is not a valid OoT 1.0 ROM.') - if len(self.buffer) == 0x2000000: + # Bad CRC validation + raise RuntimeError('ROM file %s is not a valid OoT 1.0 US ROM.' % file) + elif len(self.buffer) < 0x2000000 or len(self.buffer) > (0x4000000) or file_name[1] not in ['.z64', '.n64']: + # ROM is too big, or too small, or not a bad type + raise RuntimeError('ROM file %s is not a valid OoT 1.0 US ROM.' % file) + elif len(self.buffer) == 0x2000000: + # If Input ROM is compressed, then Decompress it if platform.system() == 'Windows': - subprocess.call(["Decompress\\Decompress.exe", file, decomp_file]) + if 8 * struct.calcsize("P") == 64: + subprocess.call(["Decompress\\Decompress.exe", file, decomp_file]) + else: + subprocess.call(["Decompress\\Decompress32.exe", file, decomp_file]) with open(decomp_file, 'rb') as stream: self.buffer = read_rom(stream) elif platform.system() == 'Linux': @@ -48,9 +58,11 @@ def __init__(self, settings, patch=True): self.buffer = read_rom(stream) else: raise RuntimeError('Unsupported operating system for decompression. Please supply an already decompressed ROM.') - # extend to 64MB - self.buffer.extend(bytearray([0x00] * (0x4000000 - len(self.buffer)))) - + else: + # ROM file is a valid and already uncompressed + pass + + def read_byte(self, address): return self.buffer[address] From a31214b5746e3d392f351226c914a8ae17166c33 Mon Sep 17 00:00:00 2001 From: mzxrules Date: Thu, 23 Aug 2018 22:08:00 -0400 Subject: [PATCH 389/755] Added CRC calculation, applied to rom on generation --- Patches.py | 4 ---- Rom.py | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 4 deletions(-) diff --git a/Patches.py b/Patches.py index 8b110beca..c98829d1a 100644 --- a/Patches.py +++ b/Patches.py @@ -775,10 +775,6 @@ def patch_rom(world, rom): rom.write_bytes(0x3480800, Block_code) rom.write_bytes(0xD270, [0x03, 0x48, 0x00, 0x00, 0x03, 0x48, 0x50, 0x00, 0x03, 0x48, 0x00, 0x00]) - # Fix checksum (Thanks Nintendo) - Block_code = [0x93, 0x5E, 0x8E, 0x5B, 0xD0, 0x9C, 0x5A, 0x58] - rom.write_bytes(0x10, Block_code) - # Set hooks for various code rom.write_bytes(0xDBF428, [0x0C, 0x10, 0x03, 0x00]) #Set Fishing Hook diff --git a/Rom.py b/Rom.py index c56eb0f9e..b5af3819e 100644 --- a/Rom.py +++ b/Rom.py @@ -124,9 +124,45 @@ def write_int32s(self, startaddress, values): self.write_int32(startaddress + (i * 4), value) def write_to_file(self, file): + self.update_crc() with open(file, 'wb') as outfile: outfile.write(self.buffer) + def update_crc(self): + t1 = t2 = t3 = t4 = t5 = t6 = 0xDF26F436 + u32 = 0xFFFFFFFF + + cur = 0x1000 + while cur < 0x00101000: + d = self.read_int32(cur) + + if ((t6 + d) & u32) < t6: + t4 += 1 + + t6 = (t6+d) & u32 + t3 ^= d + shift = d & 0x1F + r = ((d << shift) | (d >> (32 - shift))) & u32 + t5 = (t5 + r) & u32 + + if t2 > d: + t2 ^= r + else: + t2 ^= t6 ^ d + + data2 = self.read_int32(0x750 + (cur & 0xFF)) + t1 += data2 ^ d + t1 &= u32 + + cur += 4 + + crc0 = t6 ^ t4 ^ t3 + crc1 = t5 ^ t2 ^ t1 + + # Finally write the crc back to the rom + self.write_int32s(0x10, [crc0, crc1]) + + def read_rom(stream): "Reads rom into bytearray" buffer = bytearray(stream.read()) From 015b85a1fe96688e2654279bbbc22a66093158a4 Mon Sep 17 00:00:00 2001 From: mzxrules Date: Sat, 25 Aug 2018 01:52:10 -0400 Subject: [PATCH 390/755] Fixed issues with corrupted Master Quest data --- MQ.py | 95 ++++++++++++++++++++++++++++++++++----------------- data/mqu.json | 28 +++++++-------- 2 files changed, 78 insertions(+), 45 deletions(-) diff --git a/MQ.py b/MQ.py index f212c4e54..f6626cd67 100644 --- a/MQ.py +++ b/MQ.py @@ -16,10 +16,11 @@ # # Rooms: # -# Object file initialization data will be patched over the existing object file data, bleeding -# into the subsequent original actor spawn data, thus won't contribute to the room file size +# Object file initialization data will be appended to the end of the room file. +# The total size consumed by the object file data is NUM_OBJECTS * 0x02, aligned to +# the nearest 0x04 bytes # -# Actor spawn data will be appended to the end of the room file. +# Actor spawn data will be appended to the end of the room file, after the objects. # The total size consumed by the actor spawn data is NUM_ACTORS * 0x10 # # Finally: @@ -49,7 +50,10 @@ def __init__(self, file): self.remap = int(self.remap, 16) def __repr__(self): - return "{0}: {1} {2}, remap {3}".format(self.name, self.start, self.end, self.remap) + remap = "None" + if self.remap is not None: + remap = "{0:x}".format(self.remap) + return "{0}: {1:x} {2:x}, remap {3}".format(self.name, self.start, self.end, remap) def relocate(self, rom:LocalRom): if self.remap is None: @@ -93,12 +97,14 @@ def write_data(self, rom:LocalRom): loop -= 1 if code == 0x04: #rooms - room_list_offset = rom.read_int24(headcur+5) + room_list_offset = rom.read_int24(headcur + 5) + elif code == 0x0D: #paths - path_offset = self.write_path_data(rom) - rom.write_int32(headcur+4, path_offset) + path_offset = self.append_path_data(rom) + rom.write_int32(headcur + 4, path_offset) + elif code == 0x0E: #transition actors - t_offset = rom.read_int24(headcur+5) + t_offset = rom.read_int24(headcur + 5) addr = self.file.start + t_offset write_actor_data(rom, addr, self.transition_actors) @@ -106,6 +112,7 @@ def write_data(self, rom:LocalRom): code = rom.read_byte(headcur) # update file references + self.file.end = align16(self.file.end) update_dmadata(rom, self.file) update_scene_table(rom, self.id, self.file.start, self.file.end) @@ -118,21 +125,10 @@ def write_data(self, rom:LocalRom): rom.write_int32s(cur, [room.file.start, room.file.end]) cur += 0x08 - - def get_path_size(self, path): - return ((len(path)*6+3)//4) * 4 - - - def get_path_data_filesize(self): - size = len(self.paths) * 8 - for path in self.paths: - path_size = self.get_path_size(path) - size += path_size - return size - + # appends path data to the end of the rom # returns segment address to path data - def write_path_data(self, rom:LocalRom): + def append_path_data(self, rom:LocalRom): start = self.file.start cur = self.file.end records = [] @@ -140,22 +136,22 @@ def write_path_data(self, rom:LocalRom): for path in self.paths: nodes = len(path) - offset = get_segment_address(2, cur-start) + offset = get_segment_address(2, cur - start) records.append((nodes, offset)) #flatten - points = [x for points in path for x in points ] + points = [x for points in path for x in points] rom.write_int16s(cur, points) - cur += self.get_path_size(path) + path_size = align4(len(path) * 6) + cur += path_size - records_offset = get_segment_address(2, cur-start) + records_offset = get_segment_address(2, cur - start) for node, offset in records: rom.write_byte(cur, node) - rom.write_int32(cur+4, offset) + rom.write_int32(cur + 4, offset) cur += 8 - # self.file.end = ((cur + 0xF)//0x10) * 0x10 - + self.file.end = cur return records_offset @@ -185,17 +181,29 @@ def write_data(self, rom:LocalRom): rom.write_byte(headcur + 1, len(self.actors)) rom.write_int32(headcur + 4, get_segment_address(3, offset)) + elif code == 0x0B: # objects - offset = rom.read_int24(headcur+5) - addr = self.file.start + offset + offset = self.append_object_data(rom, self.objects) rom.write_byte(headcur + 1, len(self.objects)) - rom.write_int16s(addr, self.objects) + rom.write_int32(headcur + 4, get_segment_address(3, offset)) headcur += 8 code = rom.read_byte(headcur) + # update file reference + self.file.end = align16(self.file.end) update_dmadata(rom, self.file) + + + def append_object_data(self, rom:LocalRom, objects): + offset = self.file.end - self.file.start + cur = self.file.end + rom.write_int16s(cur, objects) + + objects_size = align4(len(objects) * 2) + self.file.end += objects_size + return offset def patch_files(world, rom:LocalRom): @@ -241,6 +249,25 @@ def get_dma_record(rom:LocalRom, cur): return start, end, size +def verify_remap(scenes): + def test_remap(file:File): + if file.remap is not None: + if file.start < file.remap: + return False + return True + print("test code: verify remap won't corrupt data") + + for scene in scenes: + file = scene.file + result = test_remap(file) + print("{0} - {1}".format(result, file)) + + for room in scene.rooms: + file = room.file + result = test_remap(file) + print("{0} - {1}".format(result, file)) + + def verify_dma(rom:LocalRom): cur = SCENE_DMADATA @@ -297,3 +324,9 @@ def write_actor_data(rom:LocalRom, cur, actors): for actor in actors: rom.write_int16s(cur, actor) cur += 0x10 + +def align4(value): + return ((value + 3) // 4) * 4 + +def align16(value): + return ((value + 0xF) // 0x10) * 0x10 \ No newline at end of file diff --git a/data/mqu.json b/data/mqu.json index c1f97cccb..49f72bbd9 100644 --- a/data/mqu.json +++ b/data/mqu.json @@ -687,7 +687,7 @@ "Name": "Scene 1, Room 2", "Start": "01F4E000", "End": "01F55DA0", - "RemapStart": "1F4DCB0" + "RemapStart": "1F4DCD0" }, "Id": 2, "Objects": [ @@ -1332,7 +1332,7 @@ "Name": "Scene 2, Room 1", "Start": "02759000", "End": "0275EE90", - "RemapStart": "2758190" + "RemapStart": "27581B0" }, "Id": 1, "Objects": [ @@ -2110,7 +2110,7 @@ "Name": "Scene 3, Room 7", "Start": "0241F000", "End": "02432000", - "RemapStart": "241E580" + "RemapStart": "241E5A0" }, "Id": 7, "Objects": [ @@ -2414,7 +2414,7 @@ "Name": "Scene 3, Room 16", "Start": "02481000", "End": "02485FA0", - "RemapStart": "2480750" + "RemapStart": "2480760" }, "Id": 16, "Objects": [ @@ -2774,7 +2774,7 @@ "Name": "Scene 4, Room 2", "Start": "02308000", "End": "02317FD0", - "RemapStart": "2307B20" + "RemapStart": "2307B30" }, "Id": 2, "Objects": [ @@ -3781,7 +3781,7 @@ "Name": "Scene 5, Room 4", "Start": "025FC000", "End": "02601FE0", - "RemapStart": "25fb8c0" + "RemapStart": "25FB8D0" }, "Id": 4, "Objects": [ @@ -3925,7 +3925,7 @@ "Name": "Scene 5, Room 8", "Start": "0261F000", "End": "0262CCD0", - "RemapStart": null + "RemapStart": "0261EF00" }, "Id": 8, "Objects": [ @@ -3964,7 +3964,7 @@ "Name": "Scene 5, Room 9", "Start": "0262D000", "End": "02634FE0", - "RemapStart": "262ce20" + "RemapStart": "262CD30" }, "Id": 9, "Objects": [ @@ -4001,7 +4001,7 @@ "Name": "Scene 5, Room 10", "Start": "02635000", "End": "0263AFB0", - "RemapStart": "2634f20" + "RemapStart": "2634E40" }, "Id": 10, "Objects": [ @@ -4041,7 +4041,7 @@ "Name": "Scene 5, Room 11", "Start": "0263B000", "End": "0263F9B0", - "RemapStart": "263b010" + "RemapStart": null }, "Id": 11, "Objects": [ @@ -4619,7 +4619,7 @@ "Name": "Scene 6, Room 0", "Start": "02AF8000", "End": "02B08F40", - "RemapStart": "2af7b40" + "RemapStart": "2AF7C00" }, "Id": 0, "Objects": [ @@ -4817,7 +4817,7 @@ "Name": "Scene 6, Room 5", "Start": "02B25000", "End": "02B3CF40", - "RemapStart": "2b24360" + "RemapStart": "2B24380" }, "Id": 5, "Objects": [ @@ -6062,7 +6062,7 @@ "Name": "Scene 7, Room 13", "Start": "02813000", "End": "02813FB0", - "RemapStart": "28127e0" + "RemapStart": "2812800" }, "Id": 13, "Objects": [ @@ -7936,7 +7936,7 @@ "Name": "Scene 11, Room 6", "Start": "028BF000", "End": "028C6F40", - "RemapStart": "28be180" + "RemapStart": "28BE190" }, "Id": 6, "Objects": [ From 308504041334cb8d29506cda5d55e30054f73c85 Mon Sep 17 00:00:00 2001 From: mzxrules Date: Tue, 4 Sep 2018 19:57:53 -0400 Subject: [PATCH 391/755] Restore Imports --- Rom.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Rom.py b/Rom.py index b5af3819e..f5700029d 100644 --- a/Rom.py +++ b/Rom.py @@ -1,3 +1,15 @@ +import io +import json +import logging +import os +import platform +import struct +import subprocess +import random +import copy + +from Utils import default_output_path + class LocalRom(object): def __init__(self, settings, patch=True): self.last_address = None From ff1fb1257d2dd547523220578f1ee19e9018ed9f Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 5 Sep 2018 02:52:35 -0400 Subject: [PATCH 392/755] base2current.json is prettified, so git can parse it better --- ASM/scripts/rom_diff.py | 2 +- data/base2current.json | 9005 ++++++++++++++++++++++++++++++++++++++- version.py | 2 +- 3 files changed, 9006 insertions(+), 3 deletions(-) diff --git a/ASM/scripts/rom_diff.py b/ASM/scripts/rom_diff.py index 2355b0b2d..195e661f3 100644 --- a/ASM/scripts/rom_diff.py +++ b/ASM/scripts/rom_diff.py @@ -27,4 +27,4 @@ diffs.append({ run[0][0]: [value for (_, value) in run] }) with open(output_path, 'w') as output_file: - json.dump(diffs, output_file) + json.dump(diffs, output_file, indent=4, sort_keys=True) diff --git a/data/base2current.json b/data/base2current.json index 64f2aa142..fd0f01852 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -1 +1,9004 @@ -[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 196]}, {"11135032": [8, 16, 13, 47]}, {"11311804": [12, 16, 11, 205]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 190, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 101]}, {"11427312": [12, 16, 13, 14]}, {"11427320": [12, 16, 11, 200]}, {"11427332": [0, 0]}, {"11427335": [0]}, {"11431496": [12, 16, 11, 195, 1, 15, 192, 33]}, {"11559936": [130]}, {"11559938": [14, 222]}, {"11559948": [49, 248, 0, 2]}, {"11562028": [12, 16, 13, 68]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 30]}, {"11882076": [12, 16, 12, 251]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 68, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 75, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 82, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 61, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 140]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 18]}, {"12427480": [12, 16, 10, 106]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 110]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 12, 8, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 152]}, {"12491480": [12, 16, 10, 161]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 147]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 89]}, {"13709176": [52, 15]}, {"13709179": [0]}, {"14109028": [16, 0]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 128, 73, 14, 222]}, {"14149508": [52]}, {"14149510": [0, 1, 2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 208]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 224]}, {"14624335": [118]}, {"14720872": [128]}, {"14720874": [14, 222]}, {"14720884": [49, 248, 0, 4]}, {"14720944": [12, 16, 11, 216]}, {"14848904": [8, 16, 11, 247]}, {"14852164": [12, 16, 12, 0]}, {"14872723": [52]}, {"15327704": [52, 9, 64, 0]}, {"15327728": [52]}, {"15327730": [91, 8]}, {"15327744": [52]}, {"15327746": [0, 10]}, {"15327757": [169]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 236, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 48, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 76, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 104, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 220, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 108, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 140, 128, 64, 38, 132, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 172, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 39, 212, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 28, 128, 64, 40]}, {"55059600": [83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 3, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 44, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [2, 52, 2]}, {"55060003": [69, 52, 2]}, {"55060007": [70, 3, 224]}, {"55060011": [8]}, {"55060016": [144, 136]}, {"55060019": [162, 49, 8]}, {"55060023": [6, 17]}, {"55060027": [2, 52, 2]}, {"55060031": [55, 52, 2]}, {"55060035": [56, 3, 224]}, {"55060039": [8]}, {"55060044": [144, 136]}, {"55060047": [161, 49, 8]}, {"55060051": [32, 17]}, {"55060055": [2, 52, 2]}, {"55060059": [121, 52, 2]}, {"55060063": [122, 3, 224]}, {"55060067": [8]}, {"55060072": [144, 136]}, {"55060075": [161, 49, 8]}, {"55060079": [4, 17]}, {"55060083": [2, 52, 2]}, {"55060087": [119, 52, 2]}, {"55060091": [120, 3, 224]}, {"55060095": [8]}, {"55060100": [144, 136]}, {"55060103": [50, 17]}, {"55060107": [2, 52, 2]}, {"55060111": [192, 52, 2]}, {"55060115": [193, 3, 224]}, {"55060119": [8]}, {"55060124": [144, 136]}, {"55060127": [163, 49, 8]}, {"55060131": [3, 17]}, {"55060135": [2, 52, 2]}, {"55060139": [77, 52, 162]}, {"55060144": [3, 224]}, {"55060147": [8]}, {"55060152": [144, 136]}, {"55060155": [163, 49, 8]}, {"55060159": [24, 17]}, {"55060163": [2, 52, 2]}, {"55060167": [77, 52, 162]}, {"55060172": [3, 224]}, {"55060175": [8]}, {"55060180": [3, 224]}, {"55060183": [8]}, {"55060188": [52, 8]}, {"55060191": [1, 160, 136]}, {"55060195": [62, 3, 224]}, {"55060199": [8]}, {"55060204": [36, 136]}, {"55060207": [134, 36, 9, 255, 255, 37, 41]}, {"55060215": [1, 52, 1]}, {"55060219": [3]}, {"55060221": [41, 8, 42, 20, 32]}, {"55060227": [7]}, {"55060232": [1, 9, 80, 33, 145, 75]}, {"55060240": [52, 1]}, {"55060243": [255, 21, 97, 255, 247]}, {"55060252": [161, 69]}, {"55060256": [3, 224]}, {"55060259": [8]}, {"55060264": [36, 136]}, {"55060267": [168, 1, 6, 64, 33, 145, 9]}, {"55060276": [1, 37, 72, 37, 161, 9]}, {"55060284": [3, 224]}, {"55060287": [8]}, {"55060292": [36, 136]}, {"55060295": [188, 1, 5, 64, 33, 129, 9]}, {"55060304": [5, 33]}, {"55060307": [2]}, {"55060312": [52, 9]}, {"55060316": [37, 41]}, {"55060319": [1, 161, 9]}, {"55060324": [3, 224]}, {"55060327": [8]}, {"55060332": [52, 8]}, {"55060335": [1, 160, 136]}, {"55060339": [61, 52, 8]}, {"55060343": [20, 160, 136]}, {"55060347": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [50, 160, 136]}, {"55060375": [58, 52, 8]}, {"55060379": [48, 164, 136, 19, 244, 160, 136]}, {"55060387": [51, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [2, 160, 136]}, {"55060403": [50, 52, 8]}, {"55060407": [1, 160, 136]}, {"55060411": [58, 160, 136]}, {"55060415": [60, 52, 8]}, {"55060419": [96, 164, 136, 19, 244, 160, 136]}, {"55060427": [51, 3, 224]}, {"55060431": [8]}, {"55060436": [144, 136]}, {"55060439": [124, 52, 1]}, {"55060443": [255, 17, 1]}, {"55060447": [6, 52, 2]}, {"55060451": [107, 144, 136]}, {"55060455": [148, 45, 8]}, {"55060459": [6, 17]}, {"55060463": [2, 52, 2]}, {"55060467": [106, 52, 2]}, {"55060471": [3, 3, 224]}, {"55060475": [8]}, {"55060480": [144, 136]}, {"55060483": [123, 52, 1]}, {"55060487": [255, 17, 1]}, {"55060491": [2, 52, 162]}, {"55060496": [52, 2]}, {"55060499": [12, 3, 224]}, {"55060503": [8]}, {"55060508": [52, 8]}, {"55060511": [7, 160, 136]}, {"55060515": [123, 3, 224]}, {"55060519": [8]}, {"55060524": [52, 8]}, {"55060527": [1]}, {"55060529": [168, 64, 4, 140, 137]}, {"55060535": [164, 1, 40, 72, 37, 172, 137]}, {"55060543": [164, 3, 224]}, {"55060547": [8]}, {"55060552": [48, 132]}, {"55060555": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060567": [140, 16, 129]}, {"55060571": [22, 145, 2]}, {"55060575": [117, 52, 1]}, {"55060579": [141, 16, 129]}, {"55060583": [19, 145, 2]}, {"55060587": [117, 16, 128]}, {"55060591": [17, 145, 2]}, {"55060595": [116, 52, 1]}, {"55060599": [138, 16, 129]}, {"55060603": [14, 145, 2]}, {"55060607": [116, 52, 1]}, {"55060611": [139, 16, 129]}, {"55060615": [11, 145, 2]}, {"55060619": [116, 52, 1]}, {"55060623": [88, 16, 129]}, {"55060627": [8, 52, 2]}, {"55060632": [52, 1]}, {"55060635": [120, 16, 129]}, {"55060639": [5, 52, 2]}, {"55060644": [52, 1]}, {"55060647": [121, 16, 129]}, {"55060651": [2, 52, 2]}, {"55060656": [52, 2]}, {"55060659": [255, 3, 224]}, {"55060663": [8]}, {"55060668": [39, 189, 255, 224, 175, 191]}, {"55060675": [16, 175, 176]}, {"55060679": [20, 12, 16, 11, 11]}, {"55060688": [4, 65]}, {"55060691": [2]}, {"55060696": [52, 2]}, {"55060699": [91]}, {"55060701": [64, 32, 33, 12, 16, 11, 114]}, {"55060712": [16, 96]}, {"55060715": [22, 175, 163]}, {"55060719": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060728": [133, 9]}, {"55060731": [2, 17, 32]}, {"55060735": [3, 52, 10]}, {"55060739": [1, 16]}, {"55060743": [12, 165, 10]}, {"55060748": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060759": [6, 144, 102]}, {"55060763": [7, 140, 105]}, {"55060767": [8, 1, 32, 248, 9]}, {"55060776": [143, 163]}, {"55060779": [28, 144, 101]}, {"55060783": [1, 12, 1, 191, 115, 2, 32, 32, 33, 143, 163]}, {"55060795": [28, 144, 101]}, {"55060799": [3, 16]}, {"55060803": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060815": [6]}, {"55060817": [74]}, {"55060819": [24]}, {"55060822": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060832": [60, 8, 128, 64, 37, 8, 32]}, {"55060840": [133, 9]}, {"55060843": [2, 17, 32]}, {"55060847": [3, 52, 10]}, {"55060851": [1, 165, 10]}, {"55060856": [52, 5]}, {"55060859": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060871": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060882": [48, 33, 143, 191]}, {"55060887": [16, 143, 176]}, {"55060891": [20, 39, 189]}, {"55060895": [32, 3, 224]}, {"55060899": [8]}, {"55060904": [143, 166]}, {"55060907": [48, 132, 197]}, {"55060911": [4, 8, 16, 10, 114]}, {"55060920": [143, 185]}, {"55060923": [44, 135, 37]}, {"55060927": [4, 8, 16, 10, 114]}, {"55060936": [60, 10, 128, 64, 37, 74, 32, 8, 141, 75]}, {"55060947": [12, 17, 96]}, {"55060951": [2]}, {"55060956": [149, 69]}, {"55060959": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060972": [60, 9, 128, 64, 37, 41, 32, 24, 129, 42]}, {"55060983": [3, 5, 64]}, {"55060987": [11, 1, 42, 72, 32, 129, 40]}, {"55060996": [52, 10]}, {"55060999": [127, 21, 10]}, {"55061003": [6]}, {"55061008": [60, 10, 128, 18, 37, 74, 165, 208, 133, 72]}, {"55061019": [144, 33, 8]}, {"55061023": [1, 165, 72]}, {"55061027": [144, 161, 32]}, {"55061032": [3, 224]}, {"55061035": [8]}, {"55061040": [60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061051": [12, 17, 32]}, {"55061055": [2]}, {"55061060": [129, 3]}, {"55061063": [2]}, {"55061065": [3, 15, 195]}, {"55061069": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061083": [8]}, {"55061088": [144, 69]}, {"55061091": [3, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061103": [12, 17, 32]}, {"55061107": [2]}, {"55061112": [145, 5]}, {"55061115": [3, 3, 224]}, {"55061119": [8]}, {"55061124": [143, 162]}, {"55061127": [36, 144, 69]}, {"55061132": [60, 8, 128, 64, 37, 8, 32]}, {"55061140": [133, 9]}, {"55061143": [2, 17, 32]}, {"55061147": [4, 52, 10]}, {"55061151": [1, 165, 10]}, {"55061156": [16]}, {"55061159": [24, 52, 5]}, {"55061163": [65, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061175": [12, 17, 32]}, {"55061179": [19]}, {"55061184": [145, 5]}, {"55061187": [1, 175, 164]}, {"55061192": [175, 165]}, {"55061195": [4, 175, 166]}, {"55061199": [8, 39, 189, 255, 232, 175, 191]}, {"55061207": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061219": [6, 145, 6]}, {"55061223": [7, 141, 9]}, {"55061227": [8, 1, 32, 248, 9]}, {"55061236": [143, 191]}, {"55061239": [16, 39, 189]}, {"55061243": [24, 143, 164]}, {"55061248": [143, 165]}, {"55061251": [4, 143, 166]}, {"55061255": [8, 3, 224]}, {"55061259": [8]}, {"55061264": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061275": [16, 175, 163]}, {"55061279": [20, 175, 191]}, {"55061283": [24, 12, 16, 10, 209]}, {"55061292": [143, 162]}, {"55061295": [16, 143, 163]}, {"55061299": [20, 143, 191]}, {"55061303": [24, 39, 189]}, {"55061307": [32, 3, 224]}, {"55061311": [8]}, {"55061316": [39, 189, 255, 232, 175, 191]}, {"55061323": [16, 60, 8, 128, 64, 37, 8, 32, 8, 173]}, {"55061336": [173]}, {"55061339": [4, 173]}, {"55061343": [8, 173]}, {"55061347": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061363": [42]}, {"55061369": [9, 15, 195, 1, 33, 32, 38]}, {"55061377": [129, 32, 35, 141, 5, 4, 40, 12, 16, 11, 11]}, {"55061392": [4, 64]}, {"55061395": [34]}, {"55061400": [52, 68]}, {"55061404": [12, 16, 11, 114]}, {"55061412": [16, 96]}, {"55061415": [12]}, {"55061420": [60, 8, 128, 64, 37, 8, 32, 8, 140, 105]}, {"55061432": [173, 9]}, {"55061436": [140, 105]}, {"55061439": [4, 173, 9]}, {"55061443": [4, 140, 105]}, {"55061447": [8, 173, 9]}, {"55061451": [8, 52, 9]}, {"55061455": [1, 173, 9]}, {"55061459": [12, 144, 98]}, {"55061464": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061480": [52, 1]}, {"55061483": [10, 21, 65]}, {"55061487": [6]}, {"55061492": [149, 42]}, {"55061495": [28, 49, 74, 240, 31]}, {"55061501": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061511": [28, 129, 9, 4, 36, 5, 33]}, {"55061519": [2]}, {"55061525": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061535": [16, 39, 189]}, {"55061539": [24, 3, 224]}, {"55061543": [8]}, {"55061548": [39, 189, 255, 232, 175, 191]}, {"55061555": [16, 12, 16, 11, 25]}, {"55061564": [36, 1, 255, 255, 16, 65]}, {"55061571": [4]}, {"55061576": [52, 68]}, {"55061580": [12, 16, 11, 77]}, {"55061588": [143, 191]}, {"55061591": [16, 39, 189]}, {"55061595": [24, 3, 224]}, {"55061599": [8]}, {"55061604": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061615": [164, 52, 8]}, {"55061620": [52, 137]}, {"55061624": [148, 170]}, {"55061628": [52, 1, 1, 156, 21, 65]}, {"55061635": [8]}, {"55061640": [52, 8]}, {"55061643": [3, 148, 171]}, {"55061647": [28, 49, 105]}, {"55061651": [255, 49, 98, 31]}, {"55061657": [2, 18, 2, 16]}, {"55061663": [31]}, {"55061668": [52, 1]}, {"55061671": [10, 21, 65]}, {"55061675": [14]}, {"55061680": [148, 171]}, {"55061683": [28, 52, 1]}, {"55061687": [16, 20, 65]}, {"55061691": [8]}, {"55061696": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061707": [4]}, {"55061712": [36, 2, 255, 255, 16]}, {"55061719": [21]}, {"55061724": [52, 8]}, {"55061727": [1, 49, 105]}, {"55061731": [31, 52, 1]}, {"55061735": [21, 21, 65]}, {"55061739": [12]}, {"55061744": [52, 1]}, {"55061747": [62, 16, 129]}, {"55061751": [7]}, {"55061756": [52, 1]}, {"55061759": [66, 16, 129]}, {"55061763": [4]}, {"55061768": [36, 2, 255, 255, 16]}, {"55061775": [7]}, {"55061780": [52, 8]}, {"55061783": [2, 144, 169, 1, 65]}, {"55061789": [2, 18]}, {"55061793": [72, 16, 37]}, {"55061797": [2, 18]}, {"55061801": [73, 16, 37, 3, 224]}, {"55061807": [8]}, {"55061812": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061824": [129, 9]}, {"55061828": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061851": [4, 141, 9]}, {"55061856": [17, 32]}, {"55061859": [23]}, {"55061865": [9, 82, 2, 49, 75, 248]}, {"55061873": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061896": [49, 34]}, {"55061899": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061920": [60, 12, 128, 64, 37, 140, 28]}, {"55061928": [129, 140]}, {"55061932": [17, 108]}, {"55061935": [4, 165, 32]}, {"55061939": [2, 161, 43]}, {"55061943": [2, 161, 34]}, {"55061947": [3, 173, 36]}, {"55061951": [4, 3, 224]}, {"55061955": [8]}, {"55061960": [39, 189, 255, 224, 175, 176]}, {"55061967": [16, 175, 177]}, {"55061971": [20, 175, 191]}, {"55061975": [24, 52, 130]}, {"55061980": [52, 80]}, {"55061984": [38, 8, 255, 128, 5]}, {"55061991": [18]}, {"55061996": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55062007": [16, 1, 9]}, {"55062011": [24]}, {"55062014": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55062032": [142, 40]}, {"55062035": [12, 1]}, {"55062038": [248, 9]}, {"55062044": [20, 80, 255, 239]}, {"55062052": [54, 35]}, {"55062056": [16]}, {"55062059": [2]}, {"55062064": [52, 3]}, {"55062068": [143, 176]}, {"55062071": [16, 143, 177]}, {"55062075": [20, 143, 191]}, {"55062079": [24, 39, 189]}, {"55062083": [32, 3, 224]}, {"55062087": [8]}, {"55062092": [140, 136, 29, 44, 52, 9]}, {"55062099": [1]}, {"55062101": [9, 78]}, {"55062104": [1, 9, 16, 36, 16, 64]}, {"55062111": [36]}, {"55062116": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062131": [164, 52, 1]}, {"55062135": [61, 17, 129]}, {"55062139": [10]}, {"55062145": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062155": [25]}, {"55062160": [52, 13]}, {"55062163": [1, 161, 141, 29, 40, 37, 74]}, {"55062171": [3, 16]}, {"55062175": [9]}, {"55062180": [52, 12]}, {"55062183": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062199": [14]}, {"55062204": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062240": [60, 9, 128, 64, 37, 41, 32, 24, 161, 40]}, {"55062252": [52, 2]}, {"55062256": [3, 224]}, {"55062259": [8]}, {"55062264": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062276": [16]}, {"55062279": [34]}, {"55062284": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062296": [16]}, {"55062299": [29]}, {"55062304": [52, 2]}, {"55062307": [255, 32, 232, 255, 166, 33, 8]}, {"55062315": [97, 16]}, {"55062319": [24]}, {"55062324": [52, 8]}, {"55062327": [100, 16]}, {"55062331": [21]}, {"55062336": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062351": [1, 160, 40, 14, 222, 52, 8]}, {"55062359": [104, 16]}, {"55062363": [13]}, {"55062368": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062383": [4, 160, 40, 14, 222, 52, 8]}, {"55062391": [106, 16]}, {"55062395": [5]}, {"55062400": [52, 5]}, {"55062403": [3, 52, 8]}, {"55062407": [107, 16]}, {"55062411": [1]}, {"55062416": [60, 9, 128, 64, 37, 41, 32, 24, 60, 10, 128, 64, 37, 74, 32, 27, 129, 44]}, {"55062436": [17, 136]}, {"55062439": [11, 33, 41]}, {"55062443": [1, 21, 42, 255, 252]}, {"55062452": [60, 9, 128, 64, 37, 41, 32, 23, 33, 41]}, {"55062463": [1, 17, 42]}, {"55062467": [4, 129, 44]}, {"55062472": [21, 128, 255, 252]}, {"55062480": [161, 40]}, {"55062484": [3, 224]}, {"55062487": [8]}, {"55062493": [96, 120, 33, 129, 236, 14, 223, 49, 142]}, {"55062503": [128, 17, 192]}, {"55062507": [3, 52, 3]}, {"55062511": [5, 3, 224]}, {"55062515": [8, 52, 2]}, {"55062519": [2, 3, 224]}, {"55062523": [8]}, {"55062525": [96, 16, 33, 133, 194]}, {"55062531": [164, 60, 8, 128, 18, 37, 8, 165, 208, 129, 9, 14, 223, 53, 41]}, {"55062547": [128, 161, 9, 14, 223, 3, 224]}, {"55062555": [8]}, {"55062560": [175, 164]}, {"55062563": [104, 175, 165]}, {"55062567": [108, 175, 166]}, {"55062571": [112, 175, 167]}, {"55062575": [116, 39, 189, 255, 232, 175, 163]}, {"55062583": [16, 175, 191]}, {"55062587": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062603": [32, 21]}, {"55062607": [31]}, {"55062612": [60, 9, 128, 64, 37, 41, 32, 27, 52, 10]}, {"55062623": [255, 161, 42]}, {"55062628": [60, 9, 128, 64, 37, 41, 32, 24, 36, 10, 255, 255, 52, 12]}, {"55062643": [3, 33, 74]}, {"55062647": [1, 17, 76]}, {"55062651": [20, 1, 42, 88, 32, 129, 104]}, {"55062660": [17]}, {"55062662": [255, 251]}, {"55062668": [60, 9, 128, 64, 37, 41, 32, 27, 161, 42]}, {"55062680": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062691": [1, 165, 42]}, {"55062696": [60, 9, 128, 65, 52, 10]}, {"55062703": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 209]}, {"55062732": [143, 163]}, {"55062735": [16, 143, 191]}, {"55062739": [20, 39, 189]}, {"55062743": [24, 143, 164]}, {"55062747": [104, 143, 165]}, {"55062751": [108, 143, 166]}, {"55062755": [112, 143, 167]}, {"55062759": [116, 132, 110, 19, 196, 3, 224]}, {"55062767": [8]}, {"55062772": [147, 25]}, {"55062775": [116, 52, 1]}, {"55062779": [255, 23, 33]}, {"55062783": [2]}, {"55062788": [52, 25]}, {"55062791": [44, 3, 224]}, {"55062795": [8, 167, 185]}, {"55062799": [154, 147, 44]}, {"55062803": [116, 52, 1]}, {"55062807": [255, 21, 129]}, {"55062811": [2]}, {"55062816": [52, 12]}, {"55062819": [44, 3, 224]}, {"55062823": [8]}, {"55062828": [145, 174]}, {"55062831": [116, 52, 1]}, {"55062835": [255, 21, 193]}, {"55062839": [2]}, {"55062844": [52, 14]}, {"55062847": [44, 3, 224]}, {"55062851": [8, 167, 174]}, {"55062855": [154, 145, 207]}, {"55062859": [116, 52, 1]}, {"55062863": [255, 21, 225]}, {"55062867": [2]}, {"55062872": [52, 15]}, {"55062875": [44, 3, 224]}, {"55062879": [8, 167, 175]}, {"55062883": [154, 60, 8, 128, 64, 37, 8, 32, 28, 142, 9]}, {"55062895": [104, 173, 9]}, {"55062900": [142, 9]}, {"55062903": [108, 173, 9]}, {"55062907": [4, 150, 9]}, {"55062911": [112, 165, 9]}, {"55062915": [8, 150, 9]}, {"55062919": [156, 165, 9]}, {"55062923": [10, 3, 224]}, {"55062927": [8, 142, 14]}, {"55062931": [4, 39, 189, 255, 224, 175, 176]}, {"55062939": [16, 175, 177]}, {"55062943": [20, 175, 191]}, {"55062947": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 28, 142, 8]}, {"55062967": [4, 17]}, {"55062971": [5]}, {"55062976": [12, 16, 12, 143]}, {"55062984": [16]}, {"55062987": [3]}, {"55062992": [12, 16, 12, 162]}, {"55063000": [12, 16, 12, 130, 52, 4]}, {"55063008": [12, 16, 12, 130, 52, 4]}, {"55063015": [1, 12, 16, 12, 130, 52, 4]}, {"55063023": [2, 143, 176]}, {"55063027": [16, 143, 177]}, {"55063031": [20, 143, 191]}, {"55063035": [24, 39, 189]}, {"55063039": [32, 3, 224]}, {"55063043": [8]}, {"55063048": [2, 4, 64, 33, 145, 9]}, {"55063055": [108, 52, 1]}, {"55063059": [255, 17, 33]}, {"55063063": [7]}, {"55063068": [2, 9, 72, 33, 145, 41]}, {"55063075": [116, 52, 1]}, {"55063079": [44, 17, 33]}, {"55063083": [2]}, {"55063088": [161, 9]}, {"55063091": [105, 3, 224]}, {"55063095": [8]}, {"55063100": [39, 189, 255, 232, 175, 191]}, {"55063107": [16, 142, 40]}, {"55063112": [174, 8]}, {"55063115": [64, 142, 40]}, {"55063119": [4, 174, 8]}, {"55063123": [68, 150, 40]}, {"55063127": [8, 166, 8]}, {"55063131": [72, 162]}, {"55063134": [15, 51, 146, 8]}, {"55063139": [74, 52, 1]}, {"55063143": [255, 21, 1]}, {"55063147": [3]}, {"55063152": [12, 16, 12, 176]}, {"55063160": [143, 191]}, {"55063163": [16, 39, 189]}, {"55063167": [24, 3, 224]}, {"55063171": [8]}, {"55063176": [142, 8]}, {"55063179": [64, 174, 8]}, {"55063183": [104, 142, 8]}, {"55063187": [68, 174, 8]}, {"55063191": [108, 150, 8]}, {"55063195": [72, 166, 8]}, {"55063199": [112, 146, 8]}, {"55063203": [104, 52, 1]}, {"55063207": [255, 21, 1]}, {"55063211": [3]}, {"55063216": [52, 8]}, {"55063219": [1, 162, 8, 15, 51, 3, 224]}, {"55063227": [8]}, {"55063232": [39, 189, 255, 232, 175, 191]}, {"55063239": [16, 150, 8]}, {"55063243": [156, 49, 8]}, {"55063247": [64, 17]}, {"55063251": [5]}, {"55063256": [150, 8]}, {"55063259": [112, 49, 8, 255, 15, 53, 8]}, {"55063267": [48, 166, 8]}, {"55063271": [112, 146, 40]}, {"55063275": [1, 162, 8]}, {"55063279": [105, 150, 40]}, {"55063283": [2, 166, 8]}, {"55063287": [106, 142, 40]}, {"55063291": [4, 174, 8]}, {"55063295": [108, 12, 16, 12, 202, 52, 4]}, {"55063304": [12, 16, 12, 202, 52, 4]}, {"55063311": [1, 12, 16, 12, 202, 52, 4]}, {"55063319": [2, 143, 191]}, {"55063323": [16, 39, 189]}, {"55063327": [24, 3, 224]}, {"55063331": [8]}, {"55063336": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 51, 212, 145, 10]}, {"55063351": [108, 52, 1]}, {"55063355": [255, 17, 65]}, {"55063359": [5]}, {"55063364": [1, 42, 72, 33, 145, 41]}, {"55063372": [21, 32]}, {"55063375": [28]}, {"55063380": [60, 9, 128, 64, 37, 41, 51, 199, 37, 41]}, {"55063391": [1, 145, 42]}, {"55063396": [17, 64]}, {"55063399": [19]}, {"55063404": [2, 10, 88, 33, 145, 107]}, {"55063411": [116, 52, 1]}, {"55063415": [255, 17, 97, 255, 248]}, {"55063424": [146, 12]}, {"55063427": [108, 17, 138, 255, 245]}, {"55063436": [146, 12]}, {"55063439": [109, 17, 138, 255, 242]}, {"55063448": [146, 12]}, {"55063451": [110, 17, 138, 255, 239]}, {"55063460": [161, 11]}, {"55063463": [105, 161, 10]}, {"55063467": [108, 16]}, {"55063471": [4]}, {"55063476": [52, 9]}, {"55063479": [255, 161, 9]}, {"55063483": [105, 161, 9]}, {"55063487": [108, 3, 224]}, {"55063491": [8]}, {"55063496": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063509": [1, 1, 1, 1, 1]}, {"55063515": [1, 1, 1, 1, 1]}, {"55063521": [1]}, {"55063523": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063533": [51, 8, 33, 32, 15]}, {"55063539": [71, 21, 234]}, {"55063543": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063555": [164]}, {"55063557": [15, 122, 3, 20, 64]}, {"55063563": [5, 52, 2, 72, 48, 21, 226]}, {"55063571": [7]}, {"55063576": [36, 25]}, {"55063579": [3, 16]}, {"55063583": [4, 52, 2, 99, 17, 21, 226]}, {"55063591": [2]}, {"55063596": [36, 25]}, {"55063599": [3, 3, 224]}, {"55063603": [8]}, {"55063608": [141, 173, 138, 160, 52, 2, 128]}, {"55063616": [16, 77]}, {"55063619": [2]}, {"55063624": [16]}, {"55063627": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063643": [1, 16, 64]}, {"55063647": [2]}, {"55063652": [16]}, {"55063655": [2, 52, 2]}, {"55063659": [1, 161, 226, 28, 191, 3, 224]}, {"55063667": [8]}, {"55063673": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063687": [164]}, {"55063689": [15, 122, 3, 20, 64]}, {"55063695": [5, 52, 2, 72, 48, 21, 226]}, {"55063703": [7]}, {"55063708": [36, 25]}, {"55063711": [3, 16]}, {"55063715": [4, 52, 2, 99, 17, 21, 226]}, {"55063723": [2]}, {"55063728": [36, 25]}, {"55063731": [3, 3, 224]}, {"55063735": [8]}, {"55063740": [52, 1]}, {"55063743": [24, 20, 129]}, {"55063747": [17]}, {"55063752": [20, 64]}, {"55063755": [15]}, {"55063760": [60, 10, 128, 18, 37, 74, 165, 208, 129, 72]}, {"55063771": [166, 49, 8]}, {"55063775": [32, 17]}, {"55063779": [9, 52, 2]}, {"55063784": [52, 2]}, {"55063787": [1, 129, 72]}, {"55063791": [123, 52, 9]}, {"55063795": [7, 17, 9]}, {"55063799": [4, 52, 10]}, {"55063803": [8, 17, 10]}, {"55063807": [2]}, {"55063812": [52, 2]}, {"55063816": [3, 224]}, {"55063819": [8]}, {"55063824": [162, 37]}, {"55063827": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063839": [4, 142, 10]}, {"55063844": [17, 64]}, {"55063847": [11]}, {"55063853": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063865": [24, 194, 2, 23]}, {"55063871": [3, 49, 89]}, {"55063875": [255, 129, 234]}, {"55063880": [3, 42, 200, 37, 8, 16, 13, 71, 161, 249]}, {"55063892": [3, 224]}, {"55063895": [8]}] \ No newline at end of file +[ + { + "9083985": [ + 0, + 0, + 0 + ] + }, + { + "9083989": [ + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "9083996": [ + 0, + 0, + 0, + 0 + ] + }, + { + "9084004": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "9084048": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "9084060": [ + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "9084067": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "9084112": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "9084124": [ + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "9084131": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "9084176": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "9084188": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "9084240": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "9084252": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "9084304": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "9084316": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "9084326": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "9084368": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "9084380": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "9084390": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "9084432": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "9084444": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "9084454": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "9084496": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "9084560": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "9084624": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "9084643": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "9084688": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "9084707": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "9084752": [ + 0, + 0, + 0, + 0 + ] + }, + { + "9084757": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "9084772": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "11111472": [ + 12, + 16, + 10, + 196 + ] + }, + { + "11135032": [ + 8, + 16, + 13, + 47 + ] + }, + { + "11311804": [ + 12, + 16, + 11, + 205 + ] + }, + { + "11311809": [ + 0, + 0, + 0 + ] + }, + { + "11325064": [ + 12, + 16, + 11, + 190, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "11325076": [ + 0 + ] + }, + { + "11325079": [ + 0, + 0, + 0 + ] + }, + { + "11325083": [ + 0 + ] + }, + { + "11426272": [ + 8, + 16, + 12, + 101 + ] + }, + { + "11427312": [ + 12, + 16, + 13, + 14 + ] + }, + { + "11427320": [ + 12, + 16, + 11, + 200 + ] + }, + { + "11427332": [ + 0, + 0 + ] + }, + { + "11427335": [ + 0 + ] + }, + { + "11431496": [ + 12, + 16, + 11, + 195, + 1, + 15, + 192, + 33 + ] + }, + { + "11559936": [ + 130 + ] + }, + { + "11559938": [ + 14, + 222 + ] + }, + { + "11559948": [ + 49, + 248, + 0, + 2 + ] + }, + { + "11562028": [ + 12, + 16, + 13, + 68 + ] + }, + { + "11562033": [ + 40 + ] + }, + { + "11562035": [ + 32 + ] + }, + { + "11881272": [ + 12, + 16, + 13, + 30 + ] + }, + { + "11882076": [ + 12, + 16, + 12, + 251 + ] + }, + { + "12250476": [ + 0, + 0 + ] + }, + { + "12250479": [ + 0 + ] + }, + { + "12285876": [ + 0, + 0 + ] + }, + { + "12285879": [ + 0 + ] + }, + { + "12286096": [ + 12, + 16, + 12, + 68, + 0, + 0 + ] + }, + { + "12286103": [ + 0 + ] + }, + { + "12286288": [ + 12, + 16, + 12, + 75, + 0, + 0 + ] + }, + { + "12286295": [ + 0 + ] + }, + { + "12286880": [ + 0, + 0 + ] + }, + { + "12286883": [ + 0 + ] + }, + { + "12286972": [ + 0, + 0 + ] + }, + { + "12286975": [ + 0 + ] + }, + { + "12287036": [ + 12, + 16, + 12, + 82, + 0, + 0 + ] + }, + { + "12287043": [ + 0 + ] + }, + { + "12287064": [ + 12, + 16, + 12, + 61, + 0, + 0 + ] + }, + { + "12287071": [ + 0 + ] + }, + { + "12381372": [ + 8, + 16, + 10, + 140 + ] + }, + { + "12381377": [ + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "12381383": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "12381395": [ + 0 + ] + }, + { + "12427425": [ + 16, + 10, + 18 + ] + }, + { + "12427480": [ + 12, + 16, + 10, + 106 + ] + }, + { + "12427492": [ + 0, + 0 + ] + }, + { + "12427495": [ + 0 + ] + }, + { + "12427876": [ + 12, + 16, + 10, + 110 + ] + }, + { + "12427888": [ + 0, + 0 + ] + }, + { + "12427891": [ + 0 + ] + }, + { + "12474768": [ + 12, + 16, + 12, + 8, + 0, + 0, + 0, + 0 + ] + }, + { + "12491456": [ + 12, + 16, + 10, + 152 + ] + }, + { + "12491480": [ + 12, + 16, + 10, + 161 + ] + }, + { + "12491492": [ + 0, + 0 + ] + }, + { + "12491742": [ + 131, + 131 + ] + }, + { + "13144796": [ + 52, + 14, + 0, + 1 + ] + }, + { + "13144860": [ + 52, + 10, + 0, + 1 + ] + }, + { + "13145925": [ + 16, + 11, + 147 + ] + }, + { + "13146216": [ + 146, + 14, + 29, + 40 + ] + }, + { + "13146276": [ + 146, + 25, + 29, + 41 + ] + }, + { + "13146312": [ + 146, + 10, + 29, + 42 + ] + }, + { + "13330528": [ + 12, + 16, + 12, + 89 + ] + }, + { + "13709176": [ + 52, + 15 + ] + }, + { + "13709179": [ + 0 + ] + }, + { + "14109028": [ + 16, + 0 + ] + }, + { + "14147904": [ + 52, + 14, + 0, + 1, + 128 + ] + }, + { + "14147910": [ + 14, + 222 + ] + }, + { + "14147936": [ + 132, + 136 + ] + }, + { + "14147939": [ + 164, + 52, + 1 + ] + }, + { + "14147943": [ + 99, + 20, + 40 + ] + }, + { + "14147947": [ + 3, + 52, + 2, + 32, + 73, + 16, + 0, + 0, + 6, + 0 + ] + }, + { + "14147959": [ + 0, + 148, + 105, + 14, + 214, + 49, + 41, + 0, + 4, + 21, + 32 + ] + }, + { + "14147971": [ + 2, + 52, + 2, + 32, + 68, + 52, + 2, + 32, + 67, + 143, + 191 + ] + }, + { + "14147983": [ + 20, + 39, + 189, + 0, + 24, + 3, + 224 + ] + }, + { + "14147991": [ + 8, + 0, + 0, + 0, + 0 + ] + }, + { + "14148504": [ + 148, + 137, + 14, + 214, + 49, + 40 + ] + }, + { + "14148511": [ + 16, + 49, + 41 + ] + }, + { + "14148515": [ + 4, + 1, + 9, + 64, + 37, + 52, + 9 + ] + }, + { + "14148523": [ + 20, + 52, + 1, + 0, + 95, + 20, + 35 + ] + }, + { + "14148531": [ + 6, + 0, + 0 + ] + }, + { + "14148535": [ + 0, + 17, + 9 + ] + }, + { + "14148539": [ + 4, + 0, + 0, + 0, + 0, + 52, + 2, + 0, + 1, + 3, + 224 + ] + }, + { + "14148551": [ + 8, + 0, + 0 + ] + }, + { + "14148555": [ + 0, + 20, + 194 + ] + }, + { + "14148559": [ + 9, + 52, + 1 + ] + }, + { + "14148563": [ + 99, + 20, + 35 + ] + }, + { + "14148567": [ + 7, + 140, + 138 + ] + }, + { + "14148571": [ + 16, + 21, + 64 + ] + }, + { + "14148575": [ + 5, + 0, + 0, + 0, + 0, + 21, + 9 + ] + }, + { + "14148583": [ + 3, + 52, + 2 + ] + }, + { + "14148587": [ + 1, + 3, + 224 + ] + }, + { + "14148591": [ + 8, + 0, + 0, + 0, + 0, + 52, + 2, + 0, + 0, + 3, + 224, + 0, + 8, + 0, + 0 + ] + }, + { + "14148607": [ + 0 + ] + }, + { + "14149484": [ + 143, + 184, + 0, + 68 + ] + }, + { + "14149496": [ + 135, + 24 + ] + }, + { + "14149499": [ + 164, + 128, + 73, + 14, + 222 + ] + }, + { + "14149508": [ + 52 + ] + }, + { + "14149510": [ + 0, + 1, + 2, + 0, + 32, + 33 + ] + }, + { + "14149528": [ + 21 + ] + }, + { + "14149531": [ + 2, + 52, + 25, + 0, + 95, + 23, + 56, + 0, + 5, + 174, + 11, + 1, + 128 + ] + }, + { + "14149776": [ + 0, + 0 + ] + }, + { + "14149779": [ + 0 + ] + }, + { + "14149792": [ + 16, + 0 + ] + }, + { + "14149795": [ + 7, + 49, + 74 + ] + }, + { + "14149799": [ + 4 + ] + }, + { + "14149808": [ + 0 + ] + }, + { + "14149811": [ + 0, + 0, + 0 + ] + }, + { + "14149815": [ + 0 + ] + }, + { + "14149824": [ + 52, + 11, + 0, + 20 + ] + }, + { + "14149832": [ + 1, + 75, + 80, + 37, + 21, + 75 + ] + }, + { + "14149839": [ + 20 + ] + }, + { + "14149844": [ + 52, + 14, + 0, + 1, + 128 + ] + }, + { + "14149850": [ + 14, + 222 + ] + }, + { + "14149856": [ + 87 + ] + }, + { + "14149859": [ + 15 + ] + }, + { + "14150588": [ + 12, + 16, + 11, + 208 + ] + }, + { + "14150684": [ + 0, + 0 + ] + }, + { + "14150687": [ + 0, + 52 + ] + }, + { + "14150691": [ + 5 + ] + }, + { + "14357459": [ + 118 + ] + }, + { + "14373676": [ + 12, + 16, + 11, + 224 + ] + }, + { + "14624335": [ + 118 + ] + }, + { + "14720872": [ + 128 + ] + }, + { + "14720874": [ + 14, + 222 + ] + }, + { + "14720884": [ + 49, + 248, + 0, + 4 + ] + }, + { + "14720944": [ + 12, + 16, + 11, + 216 + ] + }, + { + "14848904": [ + 8, + 16, + 11, + 247 + ] + }, + { + "14852164": [ + 12, + 16, + 12, + 0 + ] + }, + { + "14872723": [ + 52 + ] + }, + { + "15327704": [ + 52, + 9, + 64, + 0 + ] + }, + { + "15327728": [ + 52 + ] + }, + { + "15327730": [ + 91, + 8 + ] + }, + { + "15327744": [ + 52 + ] + }, + { + "15327746": [ + 0, + 10 + ] + }, + { + "15327757": [ + 169 + ] + }, + { + "15493308": [ + 143, + 173, + 0, + 44, + 52, + 12, + 0, + 10, + 165, + 172, + 1, + 16, + 12, + 16, + 10, + 47, + 2, + 0, + 40, + 33, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "15493335": [ + 0 + ] + }, + { + "15493338": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "15493549": [ + 173 + ] + }, + { + "15493551": [ + 44, + 52, + 12, + 0, + 10, + 165, + 172, + 1, + 16, + 12, + 16, + 10, + 47, + 2, + 0, + 40, + 33, + 0, + 0 + ] + }, + { + "15493571": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "15493579": [ + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "15493586": [ + 0, + 0 + ] + }, + { + "15506663": [ + 122 + ] + }, + { + "55057409": [ + 90, + 59, + 93, + 92, + 94, + 81, + 82, + 83 + ] + }, + { + "55058512": [ + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 128, + 64, + 38, + 212, + 128, + 64, + 37, + 88, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 128, + 64, + 38, + 212, + 128, + 64, + 37, + 116, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 128, + 64, + 38, + 212, + 128, + 64, + 37, + 156, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 128, + 64, + 38, + 212, + 128, + 64, + 37, + 196, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 128, + 64, + 38, + 212, + 128, + 64, + 37, + 236, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 128, + 64, + 38, + 212, + 128, + 64, + 38, + 20, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 128, + 64, + 38, + 212, + 128, + 64, + 38, + 48, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 128, + 64, + 38, + 212, + 128, + 64, + 38, + 76, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 128, + 64, + 38, + 212, + 128, + 64, + 38, + 104, + 83, + 65, + 56, + 67 + ] + }, + { + "55058661": [ + 235, + 21, + 255, + 128, + 64, + 38, + 236, + 128, + 64, + 37, + 80, + 83, + 65, + 55, + 68 + ] + }, + { + "55058677": [ + 235, + 22, + 255, + 128, + 64, + 38, + 236, + 128, + 64, + 37, + 80, + 83, + 65, + 57, + 69 + ] + }, + { + "55058693": [ + 235, + 23, + 255, + 128, + 64, + 38, + 236, + 128, + 64, + 37, + 80, + 83, + 65, + 107, + 70, + 1, + 119, + 24, + 255, + 128, + 64, + 38, + 236, + 128, + 64, + 37, + 80, + 83, + 65, + 63, + 71 + ] + }, + { + "55058725": [ + 244, + 25, + 255, + 128, + 64, + 38, + 236, + 128, + 64, + 37, + 80, + 83, + 65, + 103, + 93, + 1, + 115, + 28, + 255, + 128, + 64, + 38, + 236, + 128, + 64, + 37, + 80, + 83, + 65, + 104, + 122, + 1, + 116, + 29, + 255, + 128, + 64, + 38, + 236, + 128, + 64, + 37, + 80, + 83, + 65, + 112, + 249, + 1, + 118, + 30, + 255, + 128, + 64, + 38, + 236, + 128, + 64, + 37, + 80, + 83, + 65, + 106, + 151, + 1, + 118, + 32, + 255, + 128, + 64, + 38, + 236, + 128, + 64, + 37, + 80, + 83, + 65, + 10, + 6 + ] + }, + { + "55058805": [ + 185, + 1, + 3, + 128, + 64, + 39, + 40, + 128, + 64, + 37, + 80, + 83, + 65, + 10, + 28 + ] + }, + { + "55058821": [ + 185, + 1, + 4, + 128, + 64, + 39, + 40, + 128, + 64, + 37, + 80, + 83, + 65, + 10, + 29 + ] + }, + { + "55058837": [ + 185, + 1, + 5, + 128, + 64, + 39, + 40, + 128, + 64, + 37, + 80, + 83, + 65, + 10, + 30 + ] + }, + { + "55058853": [ + 185, + 1, + 6, + 128, + 64, + 39, + 40, + 128, + 64, + 37, + 80, + 83, + 65, + 10, + 42 + ] + }, + { + "55058869": [ + 185, + 1, + 7, + 128, + 64, + 39, + 40, + 128, + 64, + 37, + 80, + 83, + 65, + 10, + 97 + ] + }, + { + "55058885": [ + 185, + 1, + 10, + 128, + 64, + 39, + 40, + 128, + 64, + 37, + 80, + 83, + 65, + 11, + 98 + ] + }, + { + "55058901": [ + 184, + 2 + ] + }, + { + "55058904": [ + 128, + 64, + 39, + 40, + 128, + 64, + 37, + 80, + 83, + 65, + 11, + 99 + ] + }, + { + "55058917": [ + 184, + 2, + 1, + 128, + 64, + 39, + 40, + 128, + 64, + 37, + 80, + 83, + 65, + 11, + 100 + ] + }, + { + "55058933": [ + 184, + 2, + 2, + 128, + 64, + 39, + 40, + 128, + 64, + 37, + 80, + 83, + 65, + 11, + 101 + ] + }, + { + "55058949": [ + 184, + 2, + 3, + 128, + 64, + 39, + 40, + 128, + 64, + 37, + 80, + 83, + 65, + 11, + 124 + ] + }, + { + "55058965": [ + 184, + 2, + 4, + 128, + 64, + 39, + 40, + 128, + 64, + 37, + 80, + 83, + 65, + 11, + 125 + ] + }, + { + "55058981": [ + 184, + 2, + 5, + 128, + 64, + 39, + 40, + 128, + 64, + 37, + 80, + 83, + 65, + 11, + 126 + ] + }, + { + "55058997": [ + 184, + 2, + 6, + 128, + 64, + 39, + 40, + 128, + 64, + 37, + 80, + 83, + 65, + 11, + 127 + ] + }, + { + "55059013": [ + 184, + 2, + 7, + 128, + 64, + 39, + 40, + 128, + 64, + 37, + 80, + 83, + 65, + 11, + 162 + ] + }, + { + "55059029": [ + 184, + 2, + 8, + 128, + 64, + 39, + 40, + 128, + 64, + 37, + 80, + 83, + 65, + 11, + 135 + ] + }, + { + "55059045": [ + 184, + 2, + 9, + 128, + 64, + 39, + 40, + 128, + 64, + 37, + 80, + 83, + 65, + 28, + 136 + ] + }, + { + "55059061": [ + 200, + 4 + ] + }, + { + "55059064": [ + 128, + 64, + 39, + 40, + 128, + 64, + 37, + 80, + 83, + 65, + 28, + 137 + ] + }, + { + "55059077": [ + 200, + 4, + 1, + 128, + 64, + 39, + 40, + 128, + 64, + 37, + 80, + 83, + 65, + 28, + 138 + ] + }, + { + "55059093": [ + 200, + 4, + 2, + 128, + 64, + 39, + 40, + 128, + 64, + 37, + 80, + 83, + 65, + 28, + 139 + ] + }, + { + "55059109": [ + 200, + 4, + 3, + 128, + 64, + 39, + 40, + 128, + 64, + 37, + 80, + 83, + 65, + 28, + 140 + ] + }, + { + "55059125": [ + 200, + 4, + 4, + 128, + 64, + 39, + 40, + 128, + 64, + 37, + 80, + 83, + 65, + 28, + 142 + ] + }, + { + "55059141": [ + 200, + 4, + 5, + 128, + 64, + 39, + 40, + 128, + 64, + 37, + 80, + 83, + 65, + 28, + 143 + ] + }, + { + "55059157": [ + 200, + 4, + 6, + 128, + 64, + 39, + 40, + 128, + 64, + 37, + 80, + 83, + 65, + 28, + 163 + ] + }, + { + "55059173": [ + 200, + 4, + 7, + 128, + 64, + 39, + 40, + 128, + 64, + 37, + 80, + 83, + 65, + 28, + 165 + ] + }, + { + "55059189": [ + 200, + 4, + 8, + 128, + 64, + 39, + 40, + 128, + 64, + 37, + 80, + 83, + 65, + 28, + 146 + ] + }, + { + "55059205": [ + 200, + 4, + 9, + 128, + 64, + 39, + 40, + 128, + 64, + 37, + 80, + 83, + 65, + 2, + 147 + ] + }, + { + "55059221": [ + 170, + 3, + 255, + 128, + 64, + 39, + 68, + 128, + 64, + 37, + 80, + 83, + 65, + 2, + 148 + ] + }, + { + "55059237": [ + 170, + 4, + 255, + 128, + 64, + 39, + 68, + 128, + 64, + 37, + 80, + 83, + 65, + 2, + 149 + ] + }, + { + "55059253": [ + 170, + 5, + 255, + 128, + 64, + 39, + 68, + 128, + 64, + 37, + 80, + 83, + 65, + 2, + 166 + ] + }, + { + "55059269": [ + 170, + 6, + 255, + 128, + 64, + 39, + 68, + 128, + 64, + 37, + 80, + 83, + 65, + 2, + 169 + ] + }, + { + "55059285": [ + 170, + 7, + 255, + 128, + 64, + 39, + 68, + 128, + 64, + 37, + 80, + 83, + 65, + 2, + 155 + ] + }, + { + "55059301": [ + 170, + 8, + 255, + 128, + 64, + 39, + 68, + 128, + 64, + 37, + 80, + 83, + 65, + 2, + 159 + ] + }, + { + "55059317": [ + 170, + 11, + 255, + 128, + 64, + 39, + 68, + 128, + 64, + 37, + 80, + 83, + 65, + 2, + 160 + ] + }, + { + "55059333": [ + 170, + 12, + 255, + 128, + 64, + 39, + 68, + 128, + 64, + 37, + 80, + 83, + 65, + 2, + 161 + ] + }, + { + "55059349": [ + 170, + 13, + 255, + 128, + 64, + 39, + 68, + 128, + 64, + 37, + 80, + 83, + 61, + 67, + 12 + ] + }, + { + "55059365": [ + 248, + 255, + 255, + 128, + 64, + 38, + 220, + 128, + 64, + 37, + 80, + 77, + 131, + 247, + 85 + ] + }, + { + "55059381": [ + 183, + 255, + 255, + 128, + 64, + 38, + 212, + 128, + 64, + 37, + 80, + 77, + 146, + 219, + 230 + ] + }, + { + "55059397": [ + 216, + 255, + 255, + 128, + 64, + 38, + 212, + 128, + 64, + 38, + 156, + 77, + 147, + 218, + 230 + ] + }, + { + "55059413": [ + 216, + 255, + 255, + 128, + 64, + 38, + 212, + 128, + 64, + 38, + 156, + 77, + 148, + 217, + 230 + ] + }, + { + "55059429": [ + 216, + 255, + 255, + 128, + 64, + 38, + 212, + 128, + 64, + 38, + 156, + 77, + 142, + 224, + 50 + ] + }, + { + "55059445": [ + 206, + 255, + 255, + 128, + 64, + 38, + 212, + 128, + 64, + 38, + 184, + 77, + 143, + 224, + 50 + ] + }, + { + "55059461": [ + 206, + 255, + 255, + 128, + 64, + 38, + 212, + 128, + 64, + 38, + 184, + 77, + 144, + 224, + 50 + ] + }, + { + "55059477": [ + 206, + 255, + 255, + 128, + 64, + 38, + 212, + 128, + 64, + 38, + 184, + 77, + 140, + 238, + 52 + ] + }, + { + "55059493": [ + 187, + 255, + 255, + 128, + 64, + 38, + 212, + 128, + 64, + 37, + 80, + 77, + 141, + 238, + 52 + ] + }, + { + "55059509": [ + 187, + 255, + 255, + 128, + 64, + 38, + 212, + 128, + 64, + 37, + 80, + 79, + 65, + 19, + 233 + ] + }, + { + "55059525": [ + 189, + 255, + 255, + 128, + 64, + 39, + 108, + 128, + 64, + 37, + 80, + 79, + 65, + 30, + 228 + ] + }, + { + "55059541": [ + 205, + 255, + 255, + 128, + 64, + 39, + 140, + 128, + 64, + 38, + 132, + 79, + 65, + 31, + 232 + ] + }, + { + "55059557": [ + 205, + 255, + 255, + 128, + 64, + 39, + 172, + 128, + 64, + 37, + 80, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 128, + 64, + 38, + 212, + 128, + 64, + 39, + 212, + 83, + 65, + 70, + 74, + 1, + 14, + 255, + 255, + 128, + 64, + 40, + 28, + 128, + 64, + 40 + ] + }, + { + "55059600": [ + 83, + 65, + 3, + 176 + ] + }, + { + "55059605": [ + 182, + 6, + 255, + 128, + 64, + 40, + 44, + 128, + 64, + 37, + 80, + 83, + 65, + 4, + 177 + ] + }, + { + "55059621": [ + 182, + 7, + 255, + 128, + 64, + 40, + 44, + 128, + 64, + 37, + 80, + 83, + 65, + 5, + 178 + ] + }, + { + "55059637": [ + 182, + 8, + 255, + 128, + 64, + 40, + 44, + 128, + 64, + 37, + 80, + 83, + 65, + 6, + 179 + ] + }, + { + "55059653": [ + 182, + 9, + 255, + 128, + 64, + 40, + 44, + 128, + 64, + 37, + 80, + 83, + 65, + 7, + 182 + ] + }, + { + "55059669": [ + 182, + 10, + 255, + 128, + 64, + 40, + 44, + 128, + 64, + 37, + 80, + 83, + 65, + 8, + 183 + ] + }, + { + "55059685": [ + 182, + 11, + 255, + 128, + 64, + 40, + 44, + 128, + 64, + 37, + 80, + 83, + 65, + 4, + 184 + ] + }, + { + "55059701": [ + 182, + 12, + 255, + 128, + 64, + 40, + 44, + 128, + 64, + 37, + 80, + 83, + 65, + 6, + 185 + ] + }, + { + "55059717": [ + 182, + 13, + 255, + 128, + 64, + 40, + 44, + 128, + 64, + 37, + 80, + 83, + 65, + 3, + 186 + ] + }, + { + "55059733": [ + 182, + 14, + 255, + 128, + 64, + 40, + 44, + 128, + 64, + 37, + 80, + 83, + 65, + 8, + 187 + ] + }, + { + "55059749": [ + 182, + 15, + 255, + 128, + 64, + 40, + 44, + 128, + 64, + 37, + 80, + 83, + 65, + 5, + 188 + ] + }, + { + "55059765": [ + 182, + 16, + 255, + 128, + 64, + 40, + 44, + 128, + 64, + 37, + 80, + 83, + 65, + 7, + 189 + ] + }, + { + "55059781": [ + 182, + 17, + 255, + 128, + 64, + 40, + 44, + 128, + 64, + 37, + 80, + 3, + 224 + ] + }, + { + "55059795": [ + 8, + 52, + 162 + ] + }, + { + "55059800": [ + 144, + 136 + ] + }, + { + "55059803": [ + 125, + 52, + 1 + ] + }, + { + "55059807": [ + 255, + 17, + 1 + ] + }, + { + "55059811": [ + 2, + 52, + 2 + ] + }, + { + "55059815": [ + 8, + 52, + 2 + ] + }, + { + "55059819": [ + 9, + 3, + 224 + ] + }, + { + "55059823": [ + 8 + ] + }, + { + "55059828": [ + 144, + 136 + ] + }, + { + "55059831": [ + 163, + 49, + 8 + ] + }, + { + "55059835": [ + 192, + 17 + ] + }, + { + "55059839": [ + 5, + 52, + 2 + ] + }, + { + "55059843": [ + 84, + 52, + 1 + ] + }, + { + "55059847": [ + 64, + 17, + 1 + ] + }, + { + "55059851": [ + 2, + 52, + 2 + ] + }, + { + "55059855": [ + 53, + 52, + 2 + ] + }, + { + "55059859": [ + 54, + 3, + 224 + ] + }, + { + "55059863": [ + 8 + ] + }, + { + "55059868": [ + 144, + 136 + ] + }, + { + "55059871": [ + 163, + 49, + 8 + ] + }, + { + "55059875": [ + 24, + 17 + ] + }, + { + "55059879": [ + 5, + 52, + 2 + ] + }, + { + "55059883": [ + 50, + 52, + 1 + ] + }, + { + "55059887": [ + 8, + 17, + 1 + ] + }, + { + "55059891": [ + 2, + 52, + 2 + ] + }, + { + "55059895": [ + 51, + 52, + 2 + ] + }, + { + "55059899": [ + 52, + 3, + 224 + ] + }, + { + "55059903": [ + 8 + ] + }, + { + "55059908": [ + 144, + 136 + ] + }, + { + "55059911": [ + 163, + 49, + 8 + ] + }, + { + "55059915": [ + 3, + 17 + ] + }, + { + "55059919": [ + 5, + 52, + 2 + ] + }, + { + "55059923": [ + 4, + 52, + 1 + ] + }, + { + "55059927": [ + 1, + 17, + 1 + ] + }, + { + "55059931": [ + 2, + 52, + 2 + ] + }, + { + "55059935": [ + 48, + 52, + 2 + ] + }, + { + "55059939": [ + 49, + 3, + 224 + ] + }, + { + "55059943": [ + 8 + ] + }, + { + "55059948": [ + 144, + 136 + ] + }, + { + "55059951": [ + 162, + 49, + 8 + ] + }, + { + "55059955": [ + 192, + 17 + ] + }, + { + "55059959": [ + 5, + 52, + 2 + ] + }, + { + "55059963": [ + 5, + 52, + 1 + ] + }, + { + "55059967": [ + 64, + 17, + 1 + ] + }, + { + "55059971": [ + 2, + 52, + 2 + ] + }, + { + "55059975": [ + 96, + 52, + 2 + ] + }, + { + "55059979": [ + 123, + 3, + 224 + ] + }, + { + "55059983": [ + 8 + ] + }, + { + "55059988": [ + 144, + 136 + ] + }, + { + "55059991": [ + 162, + 49, + 8 + ] + }, + { + "55059995": [ + 48, + 17 + ] + }, + { + "55059999": [ + 2, + 52, + 2 + ] + }, + { + "55060003": [ + 69, + 52, + 2 + ] + }, + { + "55060007": [ + 70, + 3, + 224 + ] + }, + { + "55060011": [ + 8 + ] + }, + { + "55060016": [ + 144, + 136 + ] + }, + { + "55060019": [ + 162, + 49, + 8 + ] + }, + { + "55060023": [ + 6, + 17 + ] + }, + { + "55060027": [ + 2, + 52, + 2 + ] + }, + { + "55060031": [ + 55, + 52, + 2 + ] + }, + { + "55060035": [ + 56, + 3, + 224 + ] + }, + { + "55060039": [ + 8 + ] + }, + { + "55060044": [ + 144, + 136 + ] + }, + { + "55060047": [ + 161, + 49, + 8 + ] + }, + { + "55060051": [ + 32, + 17 + ] + }, + { + "55060055": [ + 2, + 52, + 2 + ] + }, + { + "55060059": [ + 121, + 52, + 2 + ] + }, + { + "55060063": [ + 122, + 3, + 224 + ] + }, + { + "55060067": [ + 8 + ] + }, + { + "55060072": [ + 144, + 136 + ] + }, + { + "55060075": [ + 161, + 49, + 8 + ] + }, + { + "55060079": [ + 4, + 17 + ] + }, + { + "55060083": [ + 2, + 52, + 2 + ] + }, + { + "55060087": [ + 119, + 52, + 2 + ] + }, + { + "55060091": [ + 120, + 3, + 224 + ] + }, + { + "55060095": [ + 8 + ] + }, + { + "55060100": [ + 144, + 136 + ] + }, + { + "55060103": [ + 50, + 17 + ] + }, + { + "55060107": [ + 2, + 52, + 2 + ] + }, + { + "55060111": [ + 192, + 52, + 2 + ] + }, + { + "55060115": [ + 193, + 3, + 224 + ] + }, + { + "55060119": [ + 8 + ] + }, + { + "55060124": [ + 144, + 136 + ] + }, + { + "55060127": [ + 163, + 49, + 8 + ] + }, + { + "55060131": [ + 3, + 17 + ] + }, + { + "55060135": [ + 2, + 52, + 2 + ] + }, + { + "55060139": [ + 77, + 52, + 162 + ] + }, + { + "55060144": [ + 3, + 224 + ] + }, + { + "55060147": [ + 8 + ] + }, + { + "55060152": [ + 144, + 136 + ] + }, + { + "55060155": [ + 163, + 49, + 8 + ] + }, + { + "55060159": [ + 24, + 17 + ] + }, + { + "55060163": [ + 2, + 52, + 2 + ] + }, + { + "55060167": [ + 77, + 52, + 162 + ] + }, + { + "55060172": [ + 3, + 224 + ] + }, + { + "55060175": [ + 8 + ] + }, + { + "55060180": [ + 3, + 224 + ] + }, + { + "55060183": [ + 8 + ] + }, + { + "55060188": [ + 52, + 8 + ] + }, + { + "55060191": [ + 1, + 160, + 136 + ] + }, + { + "55060195": [ + 62, + 3, + 224 + ] + }, + { + "55060199": [ + 8 + ] + }, + { + "55060204": [ + 36, + 136 + ] + }, + { + "55060207": [ + 134, + 36, + 9, + 255, + 255, + 37, + 41 + ] + }, + { + "55060215": [ + 1, + 52, + 1 + ] + }, + { + "55060219": [ + 3 + ] + }, + { + "55060221": [ + 41, + 8, + 42, + 20, + 32 + ] + }, + { + "55060227": [ + 7 + ] + }, + { + "55060232": [ + 1, + 9, + 80, + 33, + 145, + 75 + ] + }, + { + "55060240": [ + 52, + 1 + ] + }, + { + "55060243": [ + 255, + 21, + 97, + 255, + 247 + ] + }, + { + "55060252": [ + 161, + 69 + ] + }, + { + "55060256": [ + 3, + 224 + ] + }, + { + "55060259": [ + 8 + ] + }, + { + "55060264": [ + 36, + 136 + ] + }, + { + "55060267": [ + 168, + 1, + 6, + 64, + 33, + 145, + 9 + ] + }, + { + "55060276": [ + 1, + 37, + 72, + 37, + 161, + 9 + ] + }, + { + "55060284": [ + 3, + 224 + ] + }, + { + "55060287": [ + 8 + ] + }, + { + "55060292": [ + 36, + 136 + ] + }, + { + "55060295": [ + 188, + 1, + 5, + 64, + 33, + 129, + 9 + ] + }, + { + "55060304": [ + 5, + 33 + ] + }, + { + "55060307": [ + 2 + ] + }, + { + "55060312": [ + 52, + 9 + ] + }, + { + "55060316": [ + 37, + 41 + ] + }, + { + "55060319": [ + 1, + 161, + 9 + ] + }, + { + "55060324": [ + 3, + 224 + ] + }, + { + "55060327": [ + 8 + ] + }, + { + "55060332": [ + 52, + 8 + ] + }, + { + "55060335": [ + 1, + 160, + 136 + ] + }, + { + "55060339": [ + 61, + 52, + 8 + ] + }, + { + "55060343": [ + 20, + 160, + 136 + ] + }, + { + "55060347": [ + 207, + 52, + 8, + 1, + 64, + 164, + 136, + 20, + 36, + 3, + 224 + ] + }, + { + "55060359": [ + 8 + ] + }, + { + "55060364": [ + 52, + 8 + ] + }, + { + "55060367": [ + 1, + 160, + 136 + ] + }, + { + "55060371": [ + 50, + 160, + 136 + ] + }, + { + "55060375": [ + 58, + 52, + 8 + ] + }, + { + "55060379": [ + 48, + 164, + 136, + 19, + 244, + 160, + 136 + ] + }, + { + "55060387": [ + 51, + 3, + 224 + ] + }, + { + "55060391": [ + 8 + ] + }, + { + "55060396": [ + 52, + 8 + ] + }, + { + "55060399": [ + 2, + 160, + 136 + ] + }, + { + "55060403": [ + 50, + 52, + 8 + ] + }, + { + "55060407": [ + 1, + 160, + 136 + ] + }, + { + "55060411": [ + 58, + 160, + 136 + ] + }, + { + "55060415": [ + 60, + 52, + 8 + ] + }, + { + "55060419": [ + 96, + 164, + 136, + 19, + 244, + 160, + 136 + ] + }, + { + "55060427": [ + 51, + 3, + 224 + ] + }, + { + "55060431": [ + 8 + ] + }, + { + "55060436": [ + 144, + 136 + ] + }, + { + "55060439": [ + 124, + 52, + 1 + ] + }, + { + "55060443": [ + 255, + 17, + 1 + ] + }, + { + "55060447": [ + 6, + 52, + 2 + ] + }, + { + "55060451": [ + 107, + 144, + 136 + ] + }, + { + "55060455": [ + 148, + 45, + 8 + ] + }, + { + "55060459": [ + 6, + 17 + ] + }, + { + "55060463": [ + 2, + 52, + 2 + ] + }, + { + "55060467": [ + 106, + 52, + 2 + ] + }, + { + "55060471": [ + 3, + 3, + 224 + ] + }, + { + "55060475": [ + 8 + ] + }, + { + "55060480": [ + 144, + 136 + ] + }, + { + "55060483": [ + 123, + 52, + 1 + ] + }, + { + "55060487": [ + 255, + 17, + 1 + ] + }, + { + "55060491": [ + 2, + 52, + 162 + ] + }, + { + "55060496": [ + 52, + 2 + ] + }, + { + "55060499": [ + 12, + 3, + 224 + ] + }, + { + "55060503": [ + 8 + ] + }, + { + "55060508": [ + 52, + 8 + ] + }, + { + "55060511": [ + 7, + 160, + 136 + ] + }, + { + "55060515": [ + 123, + 3, + 224 + ] + }, + { + "55060519": [ + 8 + ] + }, + { + "55060524": [ + 52, + 8 + ] + }, + { + "55060527": [ + 1 + ] + }, + { + "55060529": [ + 168, + 64, + 4, + 140, + 137 + ] + }, + { + "55060535": [ + 164, + 1, + 40, + 72, + 37, + 172, + 137 + ] + }, + { + "55060543": [ + 164, + 3, + 224 + ] + }, + { + "55060547": [ + 8 + ] + }, + { + "55060552": [ + 48, + 132 + ] + }, + { + "55060555": [ + 255, + 60, + 8, + 128, + 18, + 37, + 8, + 165, + 208, + 52, + 1 + ] + }, + { + "55060567": [ + 140, + 16, + 129 + ] + }, + { + "55060571": [ + 22, + 145, + 2 + ] + }, + { + "55060575": [ + 117, + 52, + 1 + ] + }, + { + "55060579": [ + 141, + 16, + 129 + ] + }, + { + "55060583": [ + 19, + 145, + 2 + ] + }, + { + "55060587": [ + 117, + 16, + 128 + ] + }, + { + "55060591": [ + 17, + 145, + 2 + ] + }, + { + "55060595": [ + 116, + 52, + 1 + ] + }, + { + "55060599": [ + 138, + 16, + 129 + ] + }, + { + "55060603": [ + 14, + 145, + 2 + ] + }, + { + "55060607": [ + 116, + 52, + 1 + ] + }, + { + "55060611": [ + 139, + 16, + 129 + ] + }, + { + "55060615": [ + 11, + 145, + 2 + ] + }, + { + "55060619": [ + 116, + 52, + 1 + ] + }, + { + "55060623": [ + 88, + 16, + 129 + ] + }, + { + "55060627": [ + 8, + 52, + 2 + ] + }, + { + "55060632": [ + 52, + 1 + ] + }, + { + "55060635": [ + 120, + 16, + 129 + ] + }, + { + "55060639": [ + 5, + 52, + 2 + ] + }, + { + "55060644": [ + 52, + 1 + ] + }, + { + "55060647": [ + 121, + 16, + 129 + ] + }, + { + "55060651": [ + 2, + 52, + 2 + ] + }, + { + "55060656": [ + 52, + 2 + ] + }, + { + "55060659": [ + 255, + 3, + 224 + ] + }, + { + "55060663": [ + 8 + ] + }, + { + "55060668": [ + 39, + 189, + 255, + 224, + 175, + 191 + ] + }, + { + "55060675": [ + 16, + 175, + 176 + ] + }, + { + "55060679": [ + 20, + 12, + 16, + 11, + 11 + ] + }, + { + "55060688": [ + 4, + 65 + ] + }, + { + "55060691": [ + 2 + ] + }, + { + "55060696": [ + 52, + 2 + ] + }, + { + "55060699": [ + 91 + ] + }, + { + "55060701": [ + 64, + 32, + 33, + 12, + 16, + 11, + 114 + ] + }, + { + "55060712": [ + 16, + 96 + ] + }, + { + "55060715": [ + 22, + 175, + 163 + ] + }, + { + "55060719": [ + 28, + 60, + 8, + 128, + 64, + 37, + 8, + 32 + ] + }, + { + "55060728": [ + 133, + 9 + ] + }, + { + "55060731": [ + 2, + 17, + 32 + ] + }, + { + "55060735": [ + 3, + 52, + 10 + ] + }, + { + "55060739": [ + 1, + 16 + ] + }, + { + "55060743": [ + 12, + 165, + 10 + ] + }, + { + "55060748": [ + 60, + 4, + 128, + 18, + 36, + 132, + 165, + 208, + 144, + 101 + ] + }, + { + "55060759": [ + 6, + 144, + 102 + ] + }, + { + "55060763": [ + 7, + 140, + 105 + ] + }, + { + "55060767": [ + 8, + 1, + 32, + 248, + 9 + ] + }, + { + "55060776": [ + 143, + 163 + ] + }, + { + "55060779": [ + 28, + 144, + 101 + ] + }, + { + "55060783": [ + 1, + 12, + 1, + 191, + 115, + 2, + 32, + 32, + 33, + 143, + 163 + ] + }, + { + "55060795": [ + 28, + 144, + 101 + ] + }, + { + "55060799": [ + 3, + 16 + ] + }, + { + "55060803": [ + 17, + 60, + 9, + 128, + 59, + 37, + 41, + 158, + 126, + 52, + 10 + ] + }, + { + "55060815": [ + 6 + ] + }, + { + "55060817": [ + 74 + ] + }, + { + "55060819": [ + 24 + ] + }, + { + "55060822": [ + 80, + 18, + 1, + 42, + 128, + 33, + 130, + 5 + ] + }, + { + "55060832": [ + 60, + 8, + 128, + 64, + 37, + 8, + 32 + ] + }, + { + "55060840": [ + 133, + 9 + ] + }, + { + "55060843": [ + 2, + 17, + 32 + ] + }, + { + "55060847": [ + 3, + 52, + 10 + ] + }, + { + "55060851": [ + 1, + 165, + 10 + ] + }, + { + "55060856": [ + 52, + 5 + ] + }, + { + "55060859": [ + 65, + 12, + 1, + 191, + 115, + 2, + 32, + 32, + 33, + 146, + 5 + ] + }, + { + "55060871": [ + 3, + 2, + 32, + 32, + 33, + 12, + 3, + 115, + 133 + ] + }, + { + "55060882": [ + 48, + 33, + 143, + 191 + ] + }, + { + "55060887": [ + 16, + 143, + 176 + ] + }, + { + "55060891": [ + 20, + 39, + 189 + ] + }, + { + "55060895": [ + 32, + 3, + 224 + ] + }, + { + "55060899": [ + 8 + ] + }, + { + "55060904": [ + 143, + 166 + ] + }, + { + "55060907": [ + 48, + 132, + 197 + ] + }, + { + "55060911": [ + 4, + 8, + 16, + 10, + 114 + ] + }, + { + "55060920": [ + 143, + 185 + ] + }, + { + "55060923": [ + 44, + 135, + 37 + ] + }, + { + "55060927": [ + 4, + 8, + 16, + 10, + 114 + ] + }, + { + "55060936": [ + 60, + 10, + 128, + 64, + 37, + 74, + 32, + 8, + 141, + 75 + ] + }, + { + "55060947": [ + 12, + 17, + 96 + ] + }, + { + "55060951": [ + 2 + ] + }, + { + "55060956": [ + 149, + 69 + ] + }, + { + "55060959": [ + 4, + 60, + 10, + 128, + 30, + 37, + 74, + 137, + 132, + 165, + 64 + ] + }, + { + "55060972": [ + 60, + 9, + 128, + 64, + 37, + 41, + 32, + 24, + 129, + 42 + ] + }, + { + "55060983": [ + 3, + 5, + 64 + ] + }, + { + "55060987": [ + 11, + 1, + 42, + 72, + 32, + 129, + 40 + ] + }, + { + "55060996": [ + 52, + 10 + ] + }, + { + "55060999": [ + 127, + 21, + 10 + ] + }, + { + "55061003": [ + 6 + ] + }, + { + "55061008": [ + 60, + 10, + 128, + 18, + 37, + 74, + 165, + 208, + 133, + 72 + ] + }, + { + "55061019": [ + 144, + 33, + 8 + ] + }, + { + "55061023": [ + 1, + 165, + 72 + ] + }, + { + "55061027": [ + 144, + 161, + 32 + ] + }, + { + "55061032": [ + 3, + 224 + ] + }, + { + "55061035": [ + 8 + ] + }, + { + "55061040": [ + 60, + 8, + 128, + 64, + 37, + 8, + 32, + 8, + 141, + 9 + ] + }, + { + "55061051": [ + 12, + 17, + 32 + ] + }, + { + "55061055": [ + 2 + ] + }, + { + "55061060": [ + 129, + 3 + ] + }, + { + "55061063": [ + 2 + ] + }, + { + "55061065": [ + 3, + 15, + 195 + ] + }, + { + "55061069": [ + 97, + 64, + 38, + 1, + 1, + 64, + 35, + 160, + 136, + 8, + 82, + 3, + 224 + ] + }, + { + "55061083": [ + 8 + ] + }, + { + "55061088": [ + 144, + 69 + ] + }, + { + "55061091": [ + 3, + 60, + 8, + 128, + 64, + 37, + 8, + 32, + 8, + 141, + 9 + ] + }, + { + "55061103": [ + 12, + 17, + 32 + ] + }, + { + "55061107": [ + 2 + ] + }, + { + "55061112": [ + 145, + 5 + ] + }, + { + "55061115": [ + 3, + 3, + 224 + ] + }, + { + "55061119": [ + 8 + ] + }, + { + "55061124": [ + 143, + 162 + ] + }, + { + "55061127": [ + 36, + 144, + 69 + ] + }, + { + "55061132": [ + 60, + 8, + 128, + 64, + 37, + 8, + 32 + ] + }, + { + "55061140": [ + 133, + 9 + ] + }, + { + "55061143": [ + 2, + 17, + 32 + ] + }, + { + "55061147": [ + 4, + 52, + 10 + ] + }, + { + "55061151": [ + 1, + 165, + 10 + ] + }, + { + "55061156": [ + 16 + ] + }, + { + "55061159": [ + 24, + 52, + 5 + ] + }, + { + "55061163": [ + 65, + 60, + 8, + 128, + 64, + 37, + 8, + 32, + 8, + 141, + 9 + ] + }, + { + "55061175": [ + 12, + 17, + 32 + ] + }, + { + "55061179": [ + 19 + ] + }, + { + "55061184": [ + 145, + 5 + ] + }, + { + "55061187": [ + 1, + 175, + 164 + ] + }, + { + "55061192": [ + 175, + 165 + ] + }, + { + "55061195": [ + 4, + 175, + 166 + ] + }, + { + "55061199": [ + 8, + 39, + 189, + 255, + 232, + 175, + 191 + ] + }, + { + "55061207": [ + 16, + 60, + 4, + 128, + 18, + 36, + 132, + 165, + 208, + 145, + 5 + ] + }, + { + "55061219": [ + 6, + 145, + 6 + ] + }, + { + "55061223": [ + 7, + 141, + 9 + ] + }, + { + "55061227": [ + 8, + 1, + 32, + 248, + 9 + ] + }, + { + "55061236": [ + 143, + 191 + ] + }, + { + "55061239": [ + 16, + 39, + 189 + ] + }, + { + "55061243": [ + 24, + 143, + 164 + ] + }, + { + "55061248": [ + 143, + 165 + ] + }, + { + "55061251": [ + 4, + 143, + 166 + ] + }, + { + "55061255": [ + 8, + 3, + 224 + ] + }, + { + "55061259": [ + 8 + ] + }, + { + "55061264": [ + 160, + 230, + 4, + 36, + 39, + 189, + 255, + 224, + 175, + 162 + ] + }, + { + "55061275": [ + 16, + 175, + 163 + ] + }, + { + "55061279": [ + 20, + 175, + 191 + ] + }, + { + "55061283": [ + 24, + 12, + 16, + 10, + 209 + ] + }, + { + "55061292": [ + 143, + 162 + ] + }, + { + "55061295": [ + 16, + 143, + 163 + ] + }, + { + "55061299": [ + 20, + 143, + 191 + ] + }, + { + "55061303": [ + 24, + 39, + 189 + ] + }, + { + "55061307": [ + 32, + 3, + 224 + ] + }, + { + "55061311": [ + 8 + ] + }, + { + "55061316": [ + 39, + 189, + 255, + 232, + 175, + 191 + ] + }, + { + "55061323": [ + 16, + 60, + 8, + 128, + 64, + 37, + 8, + 32, + 8, + 173 + ] + }, + { + "55061336": [ + 173 + ] + }, + { + "55061339": [ + 4, + 173 + ] + }, + { + "55061343": [ + 8, + 173 + ] + }, + { + "55061347": [ + 12, + 60, + 8, + 128, + 30, + 37, + 8, + 170, + 48, + 129, + 9, + 4, + 36, + 17, + 32 + ] + }, + { + "55061363": [ + 42 + ] + }, + { + "55061369": [ + 9, + 15, + 195, + 1, + 33, + 32, + 38 + ] + }, + { + "55061377": [ + 129, + 32, + 35, + 141, + 5, + 4, + 40, + 12, + 16, + 11, + 11 + ] + }, + { + "55061392": [ + 4, + 64 + ] + }, + { + "55061395": [ + 34 + ] + }, + { + "55061400": [ + 52, + 68 + ] + }, + { + "55061404": [ + 12, + 16, + 11, + 114 + ] + }, + { + "55061412": [ + 16, + 96 + ] + }, + { + "55061415": [ + 12 + ] + }, + { + "55061420": [ + 60, + 8, + 128, + 64, + 37, + 8, + 32, + 8, + 140, + 105 + ] + }, + { + "55061432": [ + 173, + 9 + ] + }, + { + "55061436": [ + 140, + 105 + ] + }, + { + "55061439": [ + 4, + 173, + 9 + ] + }, + { + "55061443": [ + 4, + 140, + 105 + ] + }, + { + "55061447": [ + 8, + 173, + 9 + ] + }, + { + "55061451": [ + 8, + 52, + 9 + ] + }, + { + "55061455": [ + 1, + 173, + 9 + ] + }, + { + "55061459": [ + 12, + 144, + 98 + ] + }, + { + "55061464": [ + 60, + 8, + 128, + 30, + 37, + 8, + 170, + 48, + 141, + 9, + 4, + 40, + 149, + 42 + ] + }, + { + "55061480": [ + 52, + 1 + ] + }, + { + "55061483": [ + 10, + 21, + 65 + ] + }, + { + "55061487": [ + 6 + ] + }, + { + "55061492": [ + 149, + 42 + ] + }, + { + "55061495": [ + 28, + 49, + 74, + 240, + 31 + ] + }, + { + "55061501": [ + 2, + 89, + 64, + 1, + 75, + 80, + 37, + 165, + 42 + ] + }, + { + "55061511": [ + 28, + 129, + 9, + 4, + 36, + 5, + 33 + ] + }, + { + "55061519": [ + 2 + ] + }, + { + "55061525": [ + 2, + 16, + 35, + 161, + 2, + 4, + 36, + 143, + 191 + ] + }, + { + "55061535": [ + 16, + 39, + 189 + ] + }, + { + "55061539": [ + 24, + 3, + 224 + ] + }, + { + "55061543": [ + 8 + ] + }, + { + "55061548": [ + 39, + 189, + 255, + 232, + 175, + 191 + ] + }, + { + "55061555": [ + 16, + 12, + 16, + 11, + 25 + ] + }, + { + "55061564": [ + 36, + 1, + 255, + 255, + 16, + 65 + ] + }, + { + "55061571": [ + 4 + ] + }, + { + "55061576": [ + 52, + 68 + ] + }, + { + "55061580": [ + 12, + 16, + 11, + 77 + ] + }, + { + "55061588": [ + 143, + 191 + ] + }, + { + "55061591": [ + 16, + 39, + 189 + ] + }, + { + "55061595": [ + 24, + 3, + 224 + ] + }, + { + "55061599": [ + 8 + ] + }, + { + "55061604": [ + 60, + 2, + 128, + 29, + 36, + 66, + 132, + 160, + 148, + 66 + ] + }, + { + "55061615": [ + 164, + 52, + 8 + ] + }, + { + "55061620": [ + 52, + 137 + ] + }, + { + "55061624": [ + 148, + 170 + ] + }, + { + "55061628": [ + 52, + 1, + 1, + 156, + 21, + 65 + ] + }, + { + "55061635": [ + 8 + ] + }, + { + "55061640": [ + 52, + 8 + ] + }, + { + "55061643": [ + 3, + 148, + 171 + ] + }, + { + "55061647": [ + 28, + 49, + 105 + ] + }, + { + "55061651": [ + 255, + 49, + 98, + 31 + ] + }, + { + "55061657": [ + 2, + 18, + 2, + 16 + ] + }, + { + "55061663": [ + 31 + ] + }, + { + "55061668": [ + 52, + 1 + ] + }, + { + "55061671": [ + 10, + 21, + 65 + ] + }, + { + "55061675": [ + 14 + ] + }, + { + "55061680": [ + 148, + 171 + ] + }, + { + "55061683": [ + 28, + 52, + 1 + ] + }, + { + "55061687": [ + 16, + 20, + 65 + ] + }, + { + "55061691": [ + 8 + ] + }, + { + "55061696": [ + 49, + 108, + 15, + 224, + 52, + 1, + 14, + 160, + 21, + 129 + ] + }, + { + "55061707": [ + 4 + ] + }, + { + "55061712": [ + 36, + 2, + 255, + 255, + 16 + ] + }, + { + "55061719": [ + 21 + ] + }, + { + "55061724": [ + 52, + 8 + ] + }, + { + "55061727": [ + 1, + 49, + 105 + ] + }, + { + "55061731": [ + 31, + 52, + 1 + ] + }, + { + "55061735": [ + 21, + 21, + 65 + ] + }, + { + "55061739": [ + 12 + ] + }, + { + "55061744": [ + 52, + 1 + ] + }, + { + "55061747": [ + 62, + 16, + 129 + ] + }, + { + "55061751": [ + 7 + ] + }, + { + "55061756": [ + 52, + 1 + ] + }, + { + "55061759": [ + 66, + 16, + 129 + ] + }, + { + "55061763": [ + 4 + ] + }, + { + "55061768": [ + 36, + 2, + 255, + 255, + 16 + ] + }, + { + "55061775": [ + 7 + ] + }, + { + "55061780": [ + 52, + 8 + ] + }, + { + "55061783": [ + 2, + 144, + 169, + 1, + 65 + ] + }, + { + "55061789": [ + 2, + 18 + ] + }, + { + "55061793": [ + 72, + 16, + 37 + ] + }, + { + "55061797": [ + 2, + 18 + ] + }, + { + "55061801": [ + 73, + 16, + 37, + 3, + 224 + ] + }, + { + "55061807": [ + 8 + ] + }, + { + "55061812": [ + 36, + 2, + 255, + 255, + 60, + 8, + 128, + 64, + 37, + 8, + 28 + ] + }, + { + "55061824": [ + 129, + 9 + ] + }, + { + "55061828": [ + 60, + 8, + 128, + 18, + 37, + 8, + 165, + 208, + 165, + 9, + 20, + 6, + 60, + 8, + 128, + 64, + 37, + 8, + 15, + 252, + 37, + 8 + ] + }, + { + "55061851": [ + 4, + 141, + 9 + ] + }, + { + "55061856": [ + 17, + 32 + ] + }, + { + "55061859": [ + 23 + ] + }, + { + "55061865": [ + 9, + 82, + 2, + 49, + 75, + 248 + ] + }, + { + "55061873": [ + 11, + 90, + 194, + 60, + 12, + 255, + 255, + 53, + 140, + 3, + 255, + 1, + 76, + 80, + 36, + 21, + 68, + 255, + 245 + ] + }, + { + "55061896": [ + 49, + 34 + ] + }, + { + "55061899": [ + 255, + 60, + 8, + 128, + 18, + 37, + 8, + 165, + 208, + 165, + 11, + 20, + 6, + 60, + 9, + 128, + 64, + 37, + 41, + 32 + ] + }, + { + "55061920": [ + 60, + 12, + 128, + 64, + 37, + 140, + 28 + ] + }, + { + "55061928": [ + 129, + 140 + ] + }, + { + "55061932": [ + 17, + 108 + ] + }, + { + "55061935": [ + 4, + 165, + 32 + ] + }, + { + "55061939": [ + 2, + 161, + 43 + ] + }, + { + "55061943": [ + 2, + 161, + 34 + ] + }, + { + "55061947": [ + 3, + 173, + 36 + ] + }, + { + "55061951": [ + 4, + 3, + 224 + ] + }, + { + "55061955": [ + 8 + ] + }, + { + "55061960": [ + 39, + 189, + 255, + 224, + 175, + 176 + ] + }, + { + "55061967": [ + 16, + 175, + 177 + ] + }, + { + "55061971": [ + 20, + 175, + 191 + ] + }, + { + "55061975": [ + 24, + 52, + 130 + ] + }, + { + "55061980": [ + 52, + 80 + ] + }, + { + "55061984": [ + 38, + 8, + 255, + 128, + 5 + ] + }, + { + "55061991": [ + 18 + ] + }, + { + "55061996": [ + 60, + 17, + 128, + 64, + 38, + 49, + 32, + 80, + 52, + 9 + ] + }, + { + "55062007": [ + 16, + 1, + 9 + ] + }, + { + "55062011": [ + 24 + ] + }, + { + "55062014": [ + 64, + 18, + 2, + 40, + 136, + 33, + 60, + 4, + 128, + 18, + 36, + 132, + 165, + 208, + 54, + 5 + ] + }, + { + "55062032": [ + 142, + 40 + ] + }, + { + "55062035": [ + 12, + 1 + ] + }, + { + "55062038": [ + 248, + 9 + ] + }, + { + "55062044": [ + 20, + 80, + 255, + 239 + ] + }, + { + "55062052": [ + 54, + 35 + ] + }, + { + "55062056": [ + 16 + ] + }, + { + "55062059": [ + 2 + ] + }, + { + "55062064": [ + 52, + 3 + ] + }, + { + "55062068": [ + 143, + 176 + ] + }, + { + "55062071": [ + 16, + 143, + 177 + ] + }, + { + "55062075": [ + 20, + 143, + 191 + ] + }, + { + "55062079": [ + 24, + 39, + 189 + ] + }, + { + "55062083": [ + 32, + 3, + 224 + ] + }, + { + "55062087": [ + 8 + ] + }, + { + "55062092": [ + 140, + 136, + 29, + 44, + 52, + 9 + ] + }, + { + "55062099": [ + 1 + ] + }, + { + "55062101": [ + 9, + 78 + ] + }, + { + "55062104": [ + 1, + 9, + 16, + 36, + 16, + 64 + ] + }, + { + "55062111": [ + 36 + ] + }, + { + "55062116": [ + 148, + 202, + 2, + 220, + 60, + 11, + 128, + 18, + 37, + 107, + 165, + 208, + 148, + 140 + ] + }, + { + "55062131": [ + 164, + 52, + 1 + ] + }, + { + "55062135": [ + 61, + 17, + 129 + ] + }, + { + "55062139": [ + 10 + ] + }, + { + "55062145": [ + 138, + 96, + 33, + 145, + 141, + 29, + 40, + 21, + 160 + ] + }, + { + "55062155": [ + 25 + ] + }, + { + "55062160": [ + 52, + 13 + ] + }, + { + "55062163": [ + 1, + 161, + 141, + 29, + 40, + 37, + 74 + ] + }, + { + "55062171": [ + 3, + 16 + ] + }, + { + "55062175": [ + 9 + ] + }, + { + "55062180": [ + 52, + 12 + ] + }, + { + "55062183": [ + 1, + 1, + 76, + 96, + 4, + 145, + 109, + 14, + 242, + 1, + 172, + 112, + 36, + 21, + 192 + ] + }, + { + "55062199": [ + 14 + ] + }, + { + "55062204": [ + 1, + 172, + 112, + 37, + 161, + 110, + 14, + 242, + 1, + 41, + 72, + 39, + 1, + 9, + 64, + 36, + 172, + 136, + 29, + 44, + 60, + 8, + 128, + 64, + 37, + 8, + 28, + 3, + 1, + 10, + 64, + 33, + 129, + 8 + ] + }, + { + "55062240": [ + 60, + 9, + 128, + 64, + 37, + 41, + 32, + 24, + 161, + 40 + ] + }, + { + "55062252": [ + 52, + 2 + ] + }, + { + "55062256": [ + 3, + 224 + ] + }, + { + "55062259": [ + 8 + ] + }, + { + "55062264": [ + 60, + 8, + 128, + 64, + 37, + 8, + 28, + 1, + 129, + 8 + ] + }, + { + "55062276": [ + 16 + ] + }, + { + "55062279": [ + 34 + ] + }, + { + "55062284": [ + 60, + 8, + 128, + 64, + 37, + 8, + 28, + 2, + 129, + 8 + ] + }, + { + "55062296": [ + 16 + ] + }, + { + "55062299": [ + 29 + ] + }, + { + "55062304": [ + 52, + 2 + ] + }, + { + "55062307": [ + 255, + 32, + 232, + 255, + 166, + 33, + 8 + ] + }, + { + "55062315": [ + 97, + 16 + ] + }, + { + "55062319": [ + 24 + ] + }, + { + "55062324": [ + 52, + 8 + ] + }, + { + "55062327": [ + 100, + 16 + ] + }, + { + "55062331": [ + 21 + ] + }, + { + "55062336": [ + 60, + 1, + 128, + 18, + 36, + 33, + 165, + 208, + 128, + 40, + 14, + 222, + 53, + 8 + ] + }, + { + "55062351": [ + 1, + 160, + 40, + 14, + 222, + 52, + 8 + ] + }, + { + "55062359": [ + 104, + 16 + ] + }, + { + "55062363": [ + 13 + ] + }, + { + "55062368": [ + 60, + 1, + 128, + 18, + 36, + 33, + 165, + 208, + 128, + 40, + 14, + 222, + 53, + 8 + ] + }, + { + "55062383": [ + 4, + 160, + 40, + 14, + 222, + 52, + 8 + ] + }, + { + "55062391": [ + 106, + 16 + ] + }, + { + "55062395": [ + 5 + ] + }, + { + "55062400": [ + 52, + 5 + ] + }, + { + "55062403": [ + 3, + 52, + 8 + ] + }, + { + "55062407": [ + 107, + 16 + ] + }, + { + "55062411": [ + 1 + ] + }, + { + "55062416": [ + 60, + 9, + 128, + 64, + 37, + 41, + 32, + 24, + 60, + 10, + 128, + 64, + 37, + 74, + 32, + 27, + 129, + 44 + ] + }, + { + "55062436": [ + 17, + 136 + ] + }, + { + "55062439": [ + 11, + 33, + 41 + ] + }, + { + "55062443": [ + 1, + 21, + 42, + 255, + 252 + ] + }, + { + "55062452": [ + 60, + 9, + 128, + 64, + 37, + 41, + 32, + 23, + 33, + 41 + ] + }, + { + "55062463": [ + 1, + 17, + 42 + ] + }, + { + "55062467": [ + 4, + 129, + 44 + ] + }, + { + "55062472": [ + 21, + 128, + 255, + 252 + ] + }, + { + "55062480": [ + 161, + 40 + ] + }, + { + "55062484": [ + 3, + 224 + ] + }, + { + "55062487": [ + 8 + ] + }, + { + "55062493": [ + 96, + 120, + 33, + 129, + 236, + 14, + 223, + 49, + 142 + ] + }, + { + "55062503": [ + 128, + 17, + 192 + ] + }, + { + "55062507": [ + 3, + 52, + 3 + ] + }, + { + "55062511": [ + 5, + 3, + 224 + ] + }, + { + "55062515": [ + 8, + 52, + 2 + ] + }, + { + "55062519": [ + 2, + 3, + 224 + ] + }, + { + "55062523": [ + 8 + ] + }, + { + "55062525": [ + 96, + 16, + 33, + 133, + 194 + ] + }, + { + "55062531": [ + 164, + 60, + 8, + 128, + 18, + 37, + 8, + 165, + 208, + 129, + 9, + 14, + 223, + 53, + 41 + ] + }, + { + "55062547": [ + 128, + 161, + 9, + 14, + 223, + 3, + 224 + ] + }, + { + "55062555": [ + 8 + ] + }, + { + "55062560": [ + 175, + 164 + ] + }, + { + "55062563": [ + 104, + 175, + 165 + ] + }, + { + "55062567": [ + 108, + 175, + 166 + ] + }, + { + "55062571": [ + 112, + 175, + 167 + ] + }, + { + "55062575": [ + 116, + 39, + 189, + 255, + 232, + 175, + 163 + ] + }, + { + "55062583": [ + 16, + 175, + 191 + ] + }, + { + "55062587": [ + 20, + 60, + 10, + 128, + 30, + 37, + 74, + 170, + 48, + 129, + 72, + 6, + 108, + 49, + 8 + ] + }, + { + "55062603": [ + 32, + 21 + ] + }, + { + "55062607": [ + 31 + ] + }, + { + "55062612": [ + 60, + 9, + 128, + 64, + 37, + 41, + 32, + 27, + 52, + 10 + ] + }, + { + "55062623": [ + 255, + 161, + 42 + ] + }, + { + "55062628": [ + 60, + 9, + 128, + 64, + 37, + 41, + 32, + 24, + 36, + 10, + 255, + 255, + 52, + 12 + ] + }, + { + "55062643": [ + 3, + 33, + 74 + ] + }, + { + "55062647": [ + 1, + 17, + 76 + ] + }, + { + "55062651": [ + 20, + 1, + 42, + 88, + 32, + 129, + 104 + ] + }, + { + "55062660": [ + 17 + ] + }, + { + "55062662": [ + 255, + 251 + ] + }, + { + "55062668": [ + 60, + 9, + 128, + 64, + 37, + 41, + 32, + 27, + 161, + 42 + ] + }, + { + "55062680": [ + 60, + 9, + 128, + 30, + 37, + 41, + 137, + 132, + 52, + 10 + ] + }, + { + "55062691": [ + 1, + 165, + 42 + ] + }, + { + "55062696": [ + 60, + 9, + 128, + 65, + 52, + 10 + ] + }, + { + "55062703": [ + 1, + 173, + 42, + 1, + 48, + 60, + 10, + 128, + 30, + 37, + 74, + 170, + 48, + 161, + 72, + 4, + 36, + 173, + 73, + 4, + 40, + 12, + 16, + 10, + 209 + ] + }, + { + "55062732": [ + 143, + 163 + ] + }, + { + "55062735": [ + 16, + 143, + 191 + ] + }, + { + "55062739": [ + 20, + 39, + 189 + ] + }, + { + "55062743": [ + 24, + 143, + 164 + ] + }, + { + "55062747": [ + 104, + 143, + 165 + ] + }, + { + "55062751": [ + 108, + 143, + 166 + ] + }, + { + "55062755": [ + 112, + 143, + 167 + ] + }, + { + "55062759": [ + 116, + 132, + 110, + 19, + 196, + 3, + 224 + ] + }, + { + "55062767": [ + 8 + ] + }, + { + "55062772": [ + 147, + 25 + ] + }, + { + "55062775": [ + 116, + 52, + 1 + ] + }, + { + "55062779": [ + 255, + 23, + 33 + ] + }, + { + "55062783": [ + 2 + ] + }, + { + "55062788": [ + 52, + 25 + ] + }, + { + "55062791": [ + 44, + 3, + 224 + ] + }, + { + "55062795": [ + 8, + 167, + 185 + ] + }, + { + "55062799": [ + 154, + 147, + 44 + ] + }, + { + "55062803": [ + 116, + 52, + 1 + ] + }, + { + "55062807": [ + 255, + 21, + 129 + ] + }, + { + "55062811": [ + 2 + ] + }, + { + "55062816": [ + 52, + 12 + ] + }, + { + "55062819": [ + 44, + 3, + 224 + ] + }, + { + "55062823": [ + 8 + ] + }, + { + "55062828": [ + 145, + 174 + ] + }, + { + "55062831": [ + 116, + 52, + 1 + ] + }, + { + "55062835": [ + 255, + 21, + 193 + ] + }, + { + "55062839": [ + 2 + ] + }, + { + "55062844": [ + 52, + 14 + ] + }, + { + "55062847": [ + 44, + 3, + 224 + ] + }, + { + "55062851": [ + 8, + 167, + 174 + ] + }, + { + "55062855": [ + 154, + 145, + 207 + ] + }, + { + "55062859": [ + 116, + 52, + 1 + ] + }, + { + "55062863": [ + 255, + 21, + 225 + ] + }, + { + "55062867": [ + 2 + ] + }, + { + "55062872": [ + 52, + 15 + ] + }, + { + "55062875": [ + 44, + 3, + 224 + ] + }, + { + "55062879": [ + 8, + 167, + 175 + ] + }, + { + "55062883": [ + 154, + 60, + 8, + 128, + 64, + 37, + 8, + 32, + 28, + 142, + 9 + ] + }, + { + "55062895": [ + 104, + 173, + 9 + ] + }, + { + "55062900": [ + 142, + 9 + ] + }, + { + "55062903": [ + 108, + 173, + 9 + ] + }, + { + "55062907": [ + 4, + 150, + 9 + ] + }, + { + "55062911": [ + 112, + 165, + 9 + ] + }, + { + "55062915": [ + 8, + 150, + 9 + ] + }, + { + "55062919": [ + 156, + 165, + 9 + ] + }, + { + "55062923": [ + 10, + 3, + 224 + ] + }, + { + "55062927": [ + 8, + 142, + 14 + ] + }, + { + "55062931": [ + 4, + 39, + 189, + 255, + 224, + 175, + 176 + ] + }, + { + "55062939": [ + 16, + 175, + 177 + ] + }, + { + "55062943": [ + 20, + 175, + 191 + ] + }, + { + "55062947": [ + 24, + 60, + 16, + 128, + 18, + 38, + 16, + 165, + 208, + 60, + 17, + 128, + 64, + 38, + 49, + 32, + 28, + 142, + 8 + ] + }, + { + "55062967": [ + 4, + 17 + ] + }, + { + "55062971": [ + 5 + ] + }, + { + "55062976": [ + 12, + 16, + 12, + 143 + ] + }, + { + "55062984": [ + 16 + ] + }, + { + "55062987": [ + 3 + ] + }, + { + "55062992": [ + 12, + 16, + 12, + 162 + ] + }, + { + "55063000": [ + 12, + 16, + 12, + 130, + 52, + 4 + ] + }, + { + "55063008": [ + 12, + 16, + 12, + 130, + 52, + 4 + ] + }, + { + "55063015": [ + 1, + 12, + 16, + 12, + 130, + 52, + 4 + ] + }, + { + "55063023": [ + 2, + 143, + 176 + ] + }, + { + "55063027": [ + 16, + 143, + 177 + ] + }, + { + "55063031": [ + 20, + 143, + 191 + ] + }, + { + "55063035": [ + 24, + 39, + 189 + ] + }, + { + "55063039": [ + 32, + 3, + 224 + ] + }, + { + "55063043": [ + 8 + ] + }, + { + "55063048": [ + 2, + 4, + 64, + 33, + 145, + 9 + ] + }, + { + "55063055": [ + 108, + 52, + 1 + ] + }, + { + "55063059": [ + 255, + 17, + 33 + ] + }, + { + "55063063": [ + 7 + ] + }, + { + "55063068": [ + 2, + 9, + 72, + 33, + 145, + 41 + ] + }, + { + "55063075": [ + 116, + 52, + 1 + ] + }, + { + "55063079": [ + 44, + 17, + 33 + ] + }, + { + "55063083": [ + 2 + ] + }, + { + "55063088": [ + 161, + 9 + ] + }, + { + "55063091": [ + 105, + 3, + 224 + ] + }, + { + "55063095": [ + 8 + ] + }, + { + "55063100": [ + 39, + 189, + 255, + 232, + 175, + 191 + ] + }, + { + "55063107": [ + 16, + 142, + 40 + ] + }, + { + "55063112": [ + 174, + 8 + ] + }, + { + "55063115": [ + 64, + 142, + 40 + ] + }, + { + "55063119": [ + 4, + 174, + 8 + ] + }, + { + "55063123": [ + 68, + 150, + 40 + ] + }, + { + "55063127": [ + 8, + 166, + 8 + ] + }, + { + "55063131": [ + 72, + 162 + ] + }, + { + "55063134": [ + 15, + 51, + 146, + 8 + ] + }, + { + "55063139": [ + 74, + 52, + 1 + ] + }, + { + "55063143": [ + 255, + 21, + 1 + ] + }, + { + "55063147": [ + 3 + ] + }, + { + "55063152": [ + 12, + 16, + 12, + 176 + ] + }, + { + "55063160": [ + 143, + 191 + ] + }, + { + "55063163": [ + 16, + 39, + 189 + ] + }, + { + "55063167": [ + 24, + 3, + 224 + ] + }, + { + "55063171": [ + 8 + ] + }, + { + "55063176": [ + 142, + 8 + ] + }, + { + "55063179": [ + 64, + 174, + 8 + ] + }, + { + "55063183": [ + 104, + 142, + 8 + ] + }, + { + "55063187": [ + 68, + 174, + 8 + ] + }, + { + "55063191": [ + 108, + 150, + 8 + ] + }, + { + "55063195": [ + 72, + 166, + 8 + ] + }, + { + "55063199": [ + 112, + 146, + 8 + ] + }, + { + "55063203": [ + 104, + 52, + 1 + ] + }, + { + "55063207": [ + 255, + 21, + 1 + ] + }, + { + "55063211": [ + 3 + ] + }, + { + "55063216": [ + 52, + 8 + ] + }, + { + "55063219": [ + 1, + 162, + 8, + 15, + 51, + 3, + 224 + ] + }, + { + "55063227": [ + 8 + ] + }, + { + "55063232": [ + 39, + 189, + 255, + 232, + 175, + 191 + ] + }, + { + "55063239": [ + 16, + 150, + 8 + ] + }, + { + "55063243": [ + 156, + 49, + 8 + ] + }, + { + "55063247": [ + 64, + 17 + ] + }, + { + "55063251": [ + 5 + ] + }, + { + "55063256": [ + 150, + 8 + ] + }, + { + "55063259": [ + 112, + 49, + 8, + 255, + 15, + 53, + 8 + ] + }, + { + "55063267": [ + 48, + 166, + 8 + ] + }, + { + "55063271": [ + 112, + 146, + 40 + ] + }, + { + "55063275": [ + 1, + 162, + 8 + ] + }, + { + "55063279": [ + 105, + 150, + 40 + ] + }, + { + "55063283": [ + 2, + 166, + 8 + ] + }, + { + "55063287": [ + 106, + 142, + 40 + ] + }, + { + "55063291": [ + 4, + 174, + 8 + ] + }, + { + "55063295": [ + 108, + 12, + 16, + 12, + 202, + 52, + 4 + ] + }, + { + "55063304": [ + 12, + 16, + 12, + 202, + 52, + 4 + ] + }, + { + "55063311": [ + 1, + 12, + 16, + 12, + 202, + 52, + 4 + ] + }, + { + "55063319": [ + 2, + 143, + 191 + ] + }, + { + "55063323": [ + 16, + 39, + 189 + ] + }, + { + "55063327": [ + 24, + 3, + 224 + ] + }, + { + "55063331": [ + 8 + ] + }, + { + "55063336": [ + 2, + 4, + 64, + 33, + 60, + 9, + 128, + 64, + 37, + 41, + 51, + 212, + 145, + 10 + ] + }, + { + "55063351": [ + 108, + 52, + 1 + ] + }, + { + "55063355": [ + 255, + 17, + 65 + ] + }, + { + "55063359": [ + 5 + ] + }, + { + "55063364": [ + 1, + 42, + 72, + 33, + 145, + 41 + ] + }, + { + "55063372": [ + 21, + 32 + ] + }, + { + "55063375": [ + 28 + ] + }, + { + "55063380": [ + 60, + 9, + 128, + 64, + 37, + 41, + 51, + 199, + 37, + 41 + ] + }, + { + "55063391": [ + 1, + 145, + 42 + ] + }, + { + "55063396": [ + 17, + 64 + ] + }, + { + "55063399": [ + 19 + ] + }, + { + "55063404": [ + 2, + 10, + 88, + 33, + 145, + 107 + ] + }, + { + "55063411": [ + 116, + 52, + 1 + ] + }, + { + "55063415": [ + 255, + 17, + 97, + 255, + 248 + ] + }, + { + "55063424": [ + 146, + 12 + ] + }, + { + "55063427": [ + 108, + 17, + 138, + 255, + 245 + ] + }, + { + "55063436": [ + 146, + 12 + ] + }, + { + "55063439": [ + 109, + 17, + 138, + 255, + 242 + ] + }, + { + "55063448": [ + 146, + 12 + ] + }, + { + "55063451": [ + 110, + 17, + 138, + 255, + 239 + ] + }, + { + "55063460": [ + 161, + 11 + ] + }, + { + "55063463": [ + 105, + 161, + 10 + ] + }, + { + "55063467": [ + 108, + 16 + ] + }, + { + "55063471": [ + 4 + ] + }, + { + "55063476": [ + 52, + 9 + ] + }, + { + "55063479": [ + 255, + 161, + 9 + ] + }, + { + "55063483": [ + 105, + 161, + 9 + ] + }, + { + "55063487": [ + 108, + 3, + 224 + ] + }, + { + "55063491": [ + 8 + ] + }, + { + "55063496": [ + 7, + 9, + 15, + 2, + 3, + 1, + 13, + 11 + ] + }, + { + "55063509": [ + 1, + 1, + 1, + 1, + 1 + ] + }, + { + "55063515": [ + 1, + 1, + 1, + 1, + 1 + ] + }, + { + "55063521": [ + 1 + ] + }, + { + "55063523": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1 + ] + }, + { + "55063533": [ + 51, + 8, + 33, + 32, + 15 + ] + }, + { + "55063539": [ + 71, + 21, + 234 + ] + }, + { + "55063543": [ + 14, + 60, + 2, + 128, + 18, + 140, + 66, + 165, + 212, + 142, + 111 + ] + }, + { + "55063555": [ + 164 + ] + }, + { + "55063557": [ + 15, + 122, + 3, + 20, + 64 + ] + }, + { + "55063563": [ + 5, + 52, + 2, + 72, + 48, + 21, + 226 + ] + }, + { + "55063571": [ + 7 + ] + }, + { + "55063576": [ + 36, + 25 + ] + }, + { + "55063579": [ + 3, + 16 + ] + }, + { + "55063583": [ + 4, + 52, + 2, + 99, + 17, + 21, + 226 + ] + }, + { + "55063591": [ + 2 + ] + }, + { + "55063596": [ + 36, + 25 + ] + }, + { + "55063599": [ + 3, + 3, + 224 + ] + }, + { + "55063603": [ + 8 + ] + }, + { + "55063608": [ + 141, + 173, + 138, + 160, + 52, + 2, + 128 + ] + }, + { + "55063616": [ + 16, + 77 + ] + }, + { + "55063619": [ + 2 + ] + }, + { + "55063624": [ + 16 + ] + }, + { + "55063627": [ + 9, + 60, + 15, + 128, + 30, + 37, + 239, + 132, + 160, + 129, + 226, + 28, + 191, + 48, + 66 + ] + }, + { + "55063643": [ + 1, + 16, + 64 + ] + }, + { + "55063647": [ + 2 + ] + }, + { + "55063652": [ + 16 + ] + }, + { + "55063655": [ + 2, + 52, + 2 + ] + }, + { + "55063659": [ + 1, + 161, + 226, + 28, + 191, + 3, + 224 + ] + }, + { + "55063667": [ + 8 + ] + }, + { + "55063673": [ + 51, + 8, + 33, + 60, + 2, + 128, + 18, + 140, + 66, + 165, + 212, + 142, + 111 + ] + }, + { + "55063687": [ + 164 + ] + }, + { + "55063689": [ + 15, + 122, + 3, + 20, + 64 + ] + }, + { + "55063695": [ + 5, + 52, + 2, + 72, + 48, + 21, + 226 + ] + }, + { + "55063703": [ + 7 + ] + }, + { + "55063708": [ + 36, + 25 + ] + }, + { + "55063711": [ + 3, + 16 + ] + }, + { + "55063715": [ + 4, + 52, + 2, + 99, + 17, + 21, + 226 + ] + }, + { + "55063723": [ + 2 + ] + }, + { + "55063728": [ + 36, + 25 + ] + }, + { + "55063731": [ + 3, + 3, + 224 + ] + }, + { + "55063735": [ + 8 + ] + }, + { + "55063740": [ + 52, + 1 + ] + }, + { + "55063743": [ + 24, + 20, + 129 + ] + }, + { + "55063747": [ + 17 + ] + }, + { + "55063752": [ + 20, + 64 + ] + }, + { + "55063755": [ + 15 + ] + }, + { + "55063760": [ + 60, + 10, + 128, + 18, + 37, + 74, + 165, + 208, + 129, + 72 + ] + }, + { + "55063771": [ + 166, + 49, + 8 + ] + }, + { + "55063775": [ + 32, + 17 + ] + }, + { + "55063779": [ + 9, + 52, + 2 + ] + }, + { + "55063784": [ + 52, + 2 + ] + }, + { + "55063787": [ + 1, + 129, + 72 + ] + }, + { + "55063791": [ + 123, + 52, + 9 + ] + }, + { + "55063795": [ + 7, + 17, + 9 + ] + }, + { + "55063799": [ + 4, + 52, + 10 + ] + }, + { + "55063803": [ + 8, + 17, + 10 + ] + }, + { + "55063807": [ + 2 + ] + }, + { + "55063812": [ + 52, + 2 + ] + }, + { + "55063816": [ + 3, + 224 + ] + }, + { + "55063819": [ + 8 + ] + }, + { + "55063824": [ + 162, + 37 + ] + }, + { + "55063827": [ + 33, + 60, + 16, + 128, + 64, + 38, + 16, + 23, + 252, + 38, + 16 + ] + }, + { + "55063839": [ + 4, + 142, + 10 + ] + }, + { + "55063844": [ + 17, + 64 + ] + }, + { + "55063847": [ + 11 + ] + }, + { + "55063853": [ + 10, + 124, + 2, + 1, + 241, + 120, + 32, + 49, + 88, + 255 + ] + }, + { + "55063865": [ + 24, + 194, + 2, + 23 + ] + }, + { + "55063871": [ + 3, + 49, + 89 + ] + }, + { + "55063875": [ + 255, + 129, + 234 + ] + }, + { + "55063880": [ + 3, + 42, + 200, + 37, + 8, + 16, + 13, + 71, + 161, + 249 + ] + }, + { + "55063892": [ + 3, + 224 + ] + }, + { + "55063895": [ + 8 + ] + } +] \ No newline at end of file diff --git a/version.py b/version.py index 802feacfa..e445b424e 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.45 f.LUM' +__version__ = '2.15.46 f.LUM' From a84811c3fde3836798f95f6e045b076317684818 Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 5 Sep 2018 03:47:44 -0400 Subject: [PATCH 393/755] Fix Merge split rom/patches with shopsanity --- Patches.py | 350 +++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 288 insertions(+), 62 deletions(-) diff --git a/Patches.py b/Patches.py index cba4efac5..98cf3a316 100644 --- a/Patches.py +++ b/Patches.py @@ -121,23 +121,26 @@ def patch_rom(world, rom): # Remove locked door to Boss Key Chest in Fire Temple rom.write_byte(0x22D82B7, 0x3F) - if world.bombchus_in_logic: - # Change Bombchu Shop check to bombchus - rom.write_bytes(0xC6CED8, [0x80, 0x8A, 0x00, 0x7C, 0x24, 0x0B, 0x00, 0x09, 0x11, 0x4B, 0x00, 0x05]) - # Change Bombchu Shop to never sell out - rom.write_bytes(0xC019C0, [0x10, 0x00, 0x00, 0x30]) + # Change Bombchi Shop to be always open + rom.write_int32(0xC6CEDC, 0x240B0001) # li t3, 1 + if world.bombchus_in_logic: # Change Bowling Alley check to bombchus (Part 1) rom.write_bytes(0x00E2D714, [0x81, 0xEF, 0xA6, 0x4C]) rom.write_bytes(0x00E2D720, [0x24, 0x18, 0x00, 0x09, 0x11, 0xF8, 0x00, 0x06]) # Change Bowling Alley check to bombchus (Part 2) rom.write_bytes(0x00E2D890, [0x81, 0x6B, 0xA6, 0x4C, 0x24, 0x0C, 0x00, 0x09, 0x51, 0x6C, 0x00, 0x0A]) - else: - # Change Bombchu Shop check to Bomb Bag - rom.write_bytes(0xC6CEDA, [0x00, 0xA2]) - rom.write_byte(0xC6CEDF, 0x18) + # Cannot buy bombchu refills without Bombchus + rom.write_int32s(0xC01078, + [0x3C098012, # lui t1, 0x8012 + 0x812AA64C, # lb t2, -0x59B4(t1) ; bombchu item (SAVE_CONTEXT + 0x7C) + 0x340B0009, # li t3, 9 + 0x114B0002, # beq t2, t3, @@return ; if has bombchu, return 1 (can buy) + 0x34020000, # li v0, 0 + 0x34020002]) # li v0, 2 ; else, return 2 (can't buy) + else: # Change Bowling Alley check to Bomb Bag (Part 1) rom.write_bytes(0x00E2D716, [0xA6, 0x72]) rom.write_byte(0x00E2D723, 0x18) @@ -494,7 +497,7 @@ def patch_rom(world, rom): rom.write_bytes(0x31AA830, [0x00, 0x6F, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) #Light # Speed obtaining Fairy Ocarina - rom.write_bytes(0x2150CD0, [0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x30]) + rom.write_bytes(0x2150CD0, [0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x30]) Block_code = [0xFF, 0xFF, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x3C, 0x00, 0x81, 0xFF, 0xFF] rom.write_bytes(0x2151240, Block_code) @@ -990,9 +993,64 @@ def write_save_table(rom): # change the exit at child/day crawlspace to the end of zelda's goddess cutscene rom.write_bytes(0x21F60DE, [0x05, 0xF0]) - + ### Load Shop File + from MQ import File, update_dmadata, insert_space, add_relocations + # Move shop actor file to free space + shop_item_file = File({ + 'Name':'En_GirlA', + 'Start':'00C004E0', + 'End':'00C02E00', + 'RemapStart':'03485000', + }) + shop_item_file.relocate(rom) + + # Increase the shop item table size + shop_item_vram_start = rom.read_int32(0x00B5E490 + (0x20 * 4) + 0x08) + insert_space(rom, shop_item_file, shop_item_vram_start, 1, 0x3C + (0x20 * 50), 0x20 * 50) + + # Add relocation entries for shop item table + new_relocations = [] + for i in range(50, 100): + new_relocations.append(shop_item_file.start + 0x1DEC + (i * 0x20) + 0x04) + new_relocations.append(shop_item_file.start + 0x1DEC + (i * 0x20) + 0x14) + new_relocations.append(shop_item_file.start + 0x1DEC + (i * 0x20) + 0x1C) + add_relocations(rom, shop_item_file, new_relocations) + + # update actor table + rom.write_int32s(0x00B5E490 + (0x20 * 4), + [shop_item_file.start, + shop_item_file.end, + shop_item_vram_start, + shop_item_vram_start + (shop_item_file.end - shop_item_file.start)]) + + # Update DMA Table + update_dmadata(rom, shop_item_file) + + # Create 2nd Bazaar Room + bazaar_room_file = File({ + 'Name':'shop1_room_1', + 'Start':'028E4000', + 'End':'0290D7B0', + 'RemapStart':'03489000', + }) + bazaar_room_file.dma_key = 0x03472000 + bazaar_room_file.relocate(rom) + # Update DMA Table + update_dmadata(rom, bazaar_room_file) + + # Add new Bazaar Room to Bazaar Scene + rom.write_int32s(0x28E3030, [0x00010000, 0x02000058]) #reduce position list size + rom.write_int32s(0x28E3008, [0x04020000, 0x02000070]) #expand room list size + + rom.write_int32s(0x28E3070, [0x028E4000, 0x0290D7B0, + bazaar_room_file.start, bazaar_room_file.end]) #room list + rom.write_int16s(0x28E3080, [0x0000, 0x0001]) # entrance list + rom.write_int16(0x28E4076, 0x0005) # Change shop to Kakariko Bazaar + #rom.write_int16(0x3489076, 0x0005) # Change shop to Kakariko Bazaar + + # Load Message and Shop Data messages = read_messages(rom) - shop_items = read_shop_items(rom) + shop_items = read_shop_items(rom, shop_item_file.start + 0x1DEC) remove_unused_messages(messages) # Set Big Poe count to get reward from buyer @@ -1136,34 +1194,122 @@ def write_save_table(rom): rom.write_bytes(0xCA3EA2, [item_data[item.name][3][0], item_data[item.name][3][1]]) rom.write_bytes(0xCA3EA6, [item_data[item.name][3][2], item_data[item.name][3][3]]) - if world.bombchus_in_logic: - # add a cheaper bombchu pack to the bombchu shop - # describe - add_message(messages, '\x08\x05\x41Bombchu (5 pieces) 60 Rupees\x01\x05\x40This looks like a toy mouse, but\x01it\'s actually a self-propelled time\x01bomb!\x09\x0A', 0x80FE, 0x03) - # purchase - add_message(messages, '\x08Bombchu 5 Pieces 60 Rupees\x01\x01\x1B\x05\x42Buy\x01Don\'t buy\x05\x40\x09', 0x80FF, 0x03) - rbl_bombchu = shop_items[0x0018] - rbl_bombchu.price = 60 - rbl_bombchu.pieces = 5 - rbl_bombchu.get_item_id = 0x006A - rbl_bombchu.description_message = 0x80FE - rbl_bombchu.purchase_message = 0x80FF - - # Reduce 10 Pack Bombchus from 100 to 99 Rupees - shop_items[0x0015].price = 99 - shop_items[0x0019].price = 99 - shop_items[0x001C].price = 99 - update_message_by_id(messages, shop_items[0x001C].description_message, "\x08\x05\x41Bombchu (10 pieces) 99 Rupees\x01\x05\x40This looks like a toy mouse, but\x01it's actually a self-propelled time\x01bomb!\x09\x0A") - update_message_by_id(messages, shop_items[0x001C].purchase_message, "\x08Bombchu 10 pieces 100 Rupees\x09\x01\x01\x1B\x05\x42Buy\x01Don't buy\x05\x40") - - #Fix bombchu chest animations - chestAnimations = { - 0x6A: 0x28, #0xD8 #Bombchu (5) - 0x03: 0x28, #0xD8 #Bombchu (10) - 0x6B: 0x28, #0xD8 #Bombchu (20) - } - for item_id, gfx_id in chestAnimations.items(): - rom.write_byte(0xBEEE8E + (item_id * 6) + 2, gfx_id) + # add a cheaper bombchu pack to the bombchu shop + # describe + update_message_by_id(messages, 0x80FE, '\x08\x05\x41Bombchu (5 pieces) 60 Rupees\x01\x05\x40This looks like a toy mouse, but\x01it\'s actually a self-propelled time\x01bomb!\x09\x0A', 0x03) + # purchase + update_message_by_id(messages, 0x80FF, '\x08Bombchu 5 Pieces 60 Rupees\x01\x01\x1B\x05\x42Buy\x01Don\'t buy\x05\x40\x09', 0x03) + rbl_bombchu = shop_items[0x0018] + rbl_bombchu.price = 60 + rbl_bombchu.pieces = 5 + rbl_bombchu.get_item_id = 0x006A + rbl_bombchu.description_message = 0x80FE + rbl_bombchu.purchase_message = 0x80FF + + # Reduce 10 Pack Bombchus from 100 to 99 Rupees + shop_items[0x0015].price = 99 + shop_items[0x0019].price = 99 + shop_items[0x001C].price = 99 + update_message_by_id(messages, shop_items[0x001C].description_message, "\x08\x05\x41Bombchu (10 pieces) 99 Rupees\x01\x05\x40This looks like a toy mouse, but\x01it's actually a self-propelled time\x01bomb!\x09\x0A") + update_message_by_id(messages, shop_items[0x001C].purchase_message, "\x08Bombchu 10 pieces 100 Rupees\x09\x01\x01\x1B\x05\x42Buy\x01Don't buy\x05\x40") + + if world.shopsanity == 'off': + # Add more bombchus to make them more accessible + if world.bombchus_in_logic: + rom.write_int16(world.get_location('Kokiri Shop Item 8').address, + ItemFactory('Buy Bombchu (5)').index) + rom.write_int16(world.get_location('Castle Town Bazaar Item 8').address, + ItemFactory('Buy Bombchu (5)').index) + rom.write_int16(world.get_location('Kakariko Bazaar Item 8').address, + ItemFactory('Buy Bombchu (5)').index) + + # Revert Deku Scrubs changes + rom.write_int32s(0xEBB85C, [ + 0x24010002, # addiu at, zero, 2 + 0x3C038012, # lui v1, 0x8012 + 0x14410004, # bne v0, at, 0xd8 + 0x2463A5D0, # addiu v1, v1, -0x5a30 + 0x94790EF0])# lhu t9, 0xef0(v1) + rom.write_int32(0xDF7CB0, + 0xA44F0EF0) # sh t7, 0xef0(v0) + else: + # kokiri shop + shop_objs = place_shop_items(rom, shop_items, messages, + world.get_region('Kokiri Shop').locations, True) + shop_objs |= {0x00FC, 0x00B2, 0x0101, 0x0102, 0x00FD, 0x00C5} # Shop objects + rom.write_byte(0x2587029, len(shop_objs)) + rom.write_int32(0x258702C, 0x0300F600) + rom.write_int16s(0x2596600, list(shop_objs)) + + # kakariko bazaar + shop_objs = place_shop_items(rom, shop_items, messages, + world.get_region('Kakariko Bazaar').locations) + shop_objs |= {0x005B, 0x00B2, 0x00C5, 0x0107, 0x00C9, 0x016B} # Shop objects + rom.write_byte(0x28E4029, len(shop_objs)) + rom.write_int32(0x28E402C, 0x03007A40) + rom.write_int16s(0x28EBA40, list(shop_objs)) + + # castle town bazaar + shop_objs = place_shop_items(rom, shop_items, messages, + world.get_region('Castle Town Bazaar').locations) + shop_objs |= {0x005B, 0x00B2, 0x00C5, 0x0107, 0x00C9, 0x016B} # Shop objects + rom.write_byte(0x3489029, len(shop_objs)) + rom.write_int32(0x348902C, 0x03007A40) + rom.write_int16s(0x3490A40, list(shop_objs)) + + # goron shop + shop_objs = place_shop_items(rom, shop_items, messages, + world.get_region('Goron Shop').locations) + shop_objs |= {0x00C9, 0x00B2, 0x0103, 0x00AF} # Shop objects + rom.write_byte(0x2D33029, len(shop_objs)) + rom.write_int32(0x2D3302C, 0x03004340) + rom.write_int16s(0x2D37340, list(shop_objs)) + + # zora shop + shop_objs = place_shop_items(rom, shop_items, messages, + world.get_region('Zora Shop').locations) + shop_objs |= {0x005B, 0x00B2, 0x0104, 0x00FE} # Shop objects + rom.write_byte(0x2D5B029, len(shop_objs)) + rom.write_int32(0x2D5B02C, 0x03004B40) + rom.write_int16s(0x2D5FB40, list(shop_objs)) + + # kakariko potion shop + shop_objs = place_shop_items(rom, shop_items, messages, + world.get_region('Kakariko Potion Shop Front').locations) + shop_objs |= {0x0159, 0x00B2, 0x0175, 0x0122} # Shop objects + rom.write_byte(0x2D83029, len(shop_objs)) + rom.write_int32(0x2D8302C, 0x0300A500) + rom.write_int16s(0x2D8D500, list(shop_objs)) + + # market potion shop + shop_objs = place_shop_items(rom, shop_items, messages, + world.get_region('Castle Town Potion Shop').locations) + shop_objs |= {0x0159, 0x00B2, 0x0175, 0x00C5, 0x010C, 0x016B} # Shop objects + rom.write_byte(0x2DB0029, len(shop_objs)) + rom.write_int32(0x2DB002C, 0x03004E40) + rom.write_int16s(0x2DB4E40, list(shop_objs)) + + # bombchu shop + shop_objs = place_shop_items(rom, shop_items, messages, + world.get_region('Castle Town Bombchu Shop').locations) + shop_objs |= {0x0165, 0x00B2} # Shop objects + rom.write_byte(0x2DD8029, len(shop_objs)) + rom.write_int32(0x2DD802C, 0x03006A40) + rom.write_int16s(0x2DDEA40, list(shop_objs)) + + if world.shuffle_scrubs: + # Rebuild Deku Salescrub Item Table + scrub_items = [0x30, 0x31, 0x3E, 0x33, 0x34, 0x37, 0x38, 0x39, 0x3A, 0x77, 0x79] + rom.seek_address(0xDF8684) + for scrub_item in scrub_items: + rom.write_int16(None, 10) # Price + rom.write_int16(None, 1) # Count + rom.write_int32(None, scrub_item) # Item + rom.write_int32(None, 0x80A74FF8) # Can_Buy_Func + rom.write_int32(None, 0x80A75354) # Buy_Func + + # update actor IDs + set_deku_salesman_data(rom) #Fix item chest animations chestAnimations = { @@ -1174,6 +1320,11 @@ def write_save_table(rom): 0x4F: 0xED, #0x13 #Heart Container 0x76: 0xEC, #0x14 #WINNER! Piece of Heart } + if world.bombchus_in_logic: + #Fix bombchu chest animations + chestAnimations[0x6A] = 0x28 #0xD8 #Bombchu (5) + chestAnimations[0x03] = 0x28 #0xD8 #Bombchu (10) + chestAnimations[0x6B] = 0x28 #0xD8 #Bombchu (20) for item_id, gfx_id in chestAnimations.items(): rom.write_byte(0xBEEE8E + (item_id * 6) + 2, gfx_id) @@ -1195,8 +1346,13 @@ def write_save_table(rom): # reduce item message lengths update_item_messages(messages, world) + # Add 3rd Wallet Upgrade + rom.write_int16(0xB6D57E, 0x0003) + rom.write_int16(0xB6EC52, 999) + update_message_by_id(messages, 0x00F8, "\x08\x13\x57You got a \x05\x43Tycoon's Wallet\x05\x40!\x01Now you can hold\x01up to \x05\x46999\x05\x40 \x05\x46Rupees\x05\x40.", 0x23) + repack_messages(rom, messages) - write_shop_items(rom, shop_items) + write_shop_items(rom, shop_item_file.start + 0x1DEC, shop_items) # text shuffle if world.text_shuffle == 'except_hints': @@ -1445,6 +1601,10 @@ def get_override_entry(location): return [scene, player_id | 0x02, default, item_id] elif location.type == 'GS Token': return [scene, player_id | 0x03, default, item_id] + elif location.type == 'Shop' and location.item.type != 'Shop': + return [scene, player_id | 0x00, default, item_id] + elif location.type == 'GrottoNPC' and location.item.type != 'Shop': + return [scene, player_id | 0x04, default, item_id] else: return [] @@ -1484,7 +1644,8 @@ def get_override_entry(location): ] -def room_get_chests(rom, room_data, scene, chests, alternate=None): +def room_get_actors(rom, actor_func, room_data, scene, alternate=None): + actors = {} room_start = alternate or room_data command = 0 while command != 0x14: # 0x14 = end header @@ -1493,22 +1654,23 @@ def room_get_chests(rom, room_data, scene, chests, alternate=None): actor_count = rom.read_byte(room_data + 1) actor_list = room_start + (rom.read_int32(room_data + 4) & 0x00FFFFFF) for _ in range(0, actor_count): - actor_id = rom.read_int16(actor_list); - actor_var = rom.read_int16(actor_list + 14) - if actor_id == 0x000A: #Chest Actor - chests[actor_list + 14] = [scene, actor_var & 0x001F] + entry = actor_func(rom, actor_list, scene) + if entry: + actors[actor_list] = entry actor_list = actor_list + 16 if command == 0x18 and scene >= 81 and scene <= 99: # Alternate header list header_list = room_start + (rom.read_int32(room_data + 4) & 0x00FFFFFF) for alt_id in range(0,2): header_data = room_start + (rom.read_int32(header_list + 4) & 0x00FFFFFF) if header_data != 0 and not alternate: - room_get_chests(rom, header_data, scene, chests, room_start) + actors.update(room_get_actors(rom, actor_func, header_data, scene, room_start)) header_list = header_list + 4 room_data = room_data + 8 + return actors -def scene_get_chests(rom, scene_data, scene, chests, alternate=None): +def scene_get_actors(rom, actor_func, scene_data, scene, alternate=None, processed_rooms=[]): + actors = {} scene_start = alternate or scene_data command = 0 while command != 0x14: # 0x14 = end header @@ -1518,27 +1680,29 @@ def scene_get_chests(rom, scene_data, scene, chests, alternate=None): room_list = scene_start + (rom.read_int32(scene_data + 4) & 0x00FFFFFF) for _ in range(0, room_count): room_data = rom.read_int32(room_list); - room_get_chests(rom, room_data, scene, chests) + + if not room_data in processed_rooms: + actors.update(room_get_actors(rom, actor_func, room_data, scene)) + processed_rooms.append(room_data) room_list = room_list + 8 if command == 0x18 and scene >= 81 and scene <= 99: # Alternate header list header_list = scene_start + (rom.read_int32(scene_data + 4) & 0x00FFFFFF) for alt_id in range(0,2): header_data = scene_start + (rom.read_int32(header_list + 4) & 0x00FFFFFF) if header_data != 0 and not alternate: - scene_get_chests(rom, header_data, scene, chests, scene_start) + actors.update(scene_get_actors(rom, actor_func, header_data, scene, scene_start, processed_rooms)) header_list = header_list + 4 scene_data = scene_data + 8 + return actors - -def get_chest_list(rom): - chests = {} +def get_actor_list(rom, actor_func): + actors = {} scene_table = 0x00B71440 for scene in range(0x00, 0x65): scene_data = rom.read_int32(scene_table + (scene * 0x14)); - scene_get_chests(rom, scene_data, scene, chests) - return chests - + actors.update(scene_get_actors(rom, actor_func, scene_data, scene)) + return actors def get_override_itemid(override_table, scene, type, flags): for entry in override_table: @@ -1547,11 +1711,17 @@ def get_override_itemid(override_table, scene, type, flags): return None def update_chest_sizes(rom, override_table): - chest_list = get_chest_list(rom) - for address, [scene, flags] in chest_list.items(): + def get_chest(rom, actor, scene): + actor_id = rom.read_int16(actor); + if actor_id == 0x000A: #Chest Actor + actor_var = rom.read_int16(actor + 14) + return [scene, actor_var & 0x001F] + + chest_list = get_actor_list(rom, get_chest) + for actor, [scene, flags] in chest_list.items(): item_id = get_override_itemid(override_table, scene, 1, flags) - if None in [address, scene, flags, item_id]: + if None in [actor, scene, flags, item_id]: continue itemType = 0 # Item animation @@ -1564,12 +1734,68 @@ def update_chest_sizes(rom, override_table): itemType = 1 # Long animation, big chest # Don't use boss chests - default = rom.read_int16(address) + default = rom.read_int16(actor + 0x14) chestType = default & 0xF000 newChestType = chestTypeMap[chestType][itemType] default = (default & 0x0FFF) | newChestType - rom.write_int16(address, default) - + rom.write_int16(actor + 0x14, default) + +def set_deku_salesman_data(rom): + def set_deku_salesman_and_grotto_id(rom, actor, scene): + actor_id = rom.read_int16(actor); + if actor_id == 0x009B: #Grotto + actor_zrot = rom.read_int16(actor + 12) + actor_var = rom.read_int16(actor + 14); + grotto_scene = actor_var >> 12 + grotto_entrance = actor_zrot & 0x000F + grotto_id = actor_var & 0x00FF + + if grotto_scene == 0 and grotto_entrance in [2, 4, 7, 10]: + grotto_scenes.add(scene) + rom.write_byte(actor + 15, len(grotto_scenes)) + elif actor_id == 0x0195: #Salesman + actor_var = rom.read_int16(actor + 14) + if actor_var == 6: + rom.write_int16(actor + 14, 0x0003) + + grotto_scenes = set() + + get_actor_list(rom, set_deku_salesman_and_grotto_id) + +def place_shop_items(rom, shop_items, messages, locations, init_shop_id=False): + if init_shop_id: + place_shop_items.shop_id = 0x32 + + shop_objs = { 0x0148 } # Sold Out + messages + for location in locations: + shop_objs.add(location.item.object) + if location.item.type == 'Shop': + rom.write_int16(location.address, location.item.index) + else: + shop_id = place_shop_items.shop_id + rom.write_int16(location.address, shop_id) + shop_item = shop_items[shop_id] + + shop_item.object = location.item.object + shop_item.model = location.item.model - 1 + shop_item.price = location.price + shop_item.pieces = 1 + shop_item.get_item_id = location.default + shop_item.func1 = 0x808648CC + shop_item.func2 = 0x808636B8 + shop_item.func3 = 0x00000000 + shop_item.func4 = 0x80863FB4 + + message_id = (shop_id - 0x32) * 2 + shop_item.description_message = 0x8100 + message_id + shop_item.purchase_message = 0x8100 + message_id + 1 + update_message_by_id(messages, shop_item.description_message, '\x08\x05\x41%s %d Rupees\x01\x05\x40Special deal! ONE LEFT!\x01Get it while it lasts!\x09\x0A\x02' % (location.item.name, location.price), 0x03) + update_message_by_id(messages, shop_item.purchase_message, '\x08%s %d Rupees\x09\x01\x01\x1B\x05\x42Buy\x01Don\'t buy\x05\x40\x02' % (location.item.name, location.price), 0x03) + + place_shop_items.shop_id += 1 + + return shop_objs # Format: (Title, Sequence ID) bgm_sequence_ids = [ From 79da434af26afed34d41ad13035902aaa0b07d5f Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 5 Sep 2018 03:49:11 -0400 Subject: [PATCH 394/755] Updated base2current.json --- data/base2current.json | 2553 +++++++++++++++++++++++++--------------- version.py | 6 +- 2 files changed, 1619 insertions(+), 940 deletions(-) diff --git a/data/base2current.json b/data/base2current.json index c2e08637a..77934dbb7 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -1,6 +1,3 @@ -<<<<<<< HEAD -[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 204]}, {"11135032": [8, 16, 13, 156]}, {"11311804": [12, 16, 11, 223]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 208, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 210]}, {"11427312": [12, 16, 13, 123]}, {"11427320": [12, 16, 11, 218]}, {"11427332": [0, 0]}, {"11427335": [0]}, {"11431496": [12, 16, 11, 213, 1, 15, 192, 33]}, {"11559936": [130]}, {"11559938": [14, 222]}, {"11559948": [49, 248, 0, 2]}, {"11562028": [12, 16, 13, 177]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 139]}, {"11882076": [12, 16, 13, 104]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 177, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 184, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 191, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 170, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 148]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 26]}, {"12427480": [12, 16, 10, 114]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 118]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 12, 117, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 160]}, {"12491480": [12, 16, 10, 169]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"12584172": [8, 16, 12, 26]}, {"12584575": [100]}, {"12589216": [12, 16, 12, 47]}, {"13027240": [12, 16, 12, 63]}, {"13027616": [12, 16, 12, 63]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 165]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 198]}, {"13709176": [52, 15]}, {"13709179": [0]}, {"14109028": [16, 0]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 128, 73, 14, 222]}, {"14149508": [52]}, {"14149510": [0, 1, 2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 226]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 242]}, {"14624335": [118]}, {"14646448": [12, 16, 12, 95]}, {"14720872": [128]}, {"14720874": [14, 222]}, {"14720884": [49, 248, 0, 4]}, {"14720944": [12, 16, 11, 234]}, {"14848904": [8, 16, 12, 9]}, {"14852164": [12, 16, 12, 18]}, {"14872723": [52]}, {"15327704": [52, 9, 64, 0]}, {"15327728": [52]}, {"15327730": [91, 8]}, {"15327744": [52]}, {"15327746": [0, 10]}, {"15327757": [169]}, {"15448156": [12, 16, 12, 74]}, {"15448165": [64]}, {"15448167": [18]}, {"15448172": [16, 0, 0, 20]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 55, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 55, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 37, 236, 83, 65, 35, 248]}, {"55058597": [209, 255, 255, 128, 64, 38, 60, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 38, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 38, 108, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 38, 136, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 39, 12, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 72, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 100, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 252, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 244, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 244, 128, 64, 38, 188, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 244, 128, 64, 38, 188, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 244, 128, 64, 38, 188, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 244, 128, 64, 38, 216, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 244, 128, 64, 38, 216, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 244, 128, 64, 38, 216, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 244, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 244, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 140, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 172, 128, 64, 38, 164, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 204, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 244, 128, 64, 39, 244, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 60, 128, 64, 40, 32, 83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 4, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 6, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 3, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 8, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 5, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 76, 128, 64, 37, 80, 83, 65, 7, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 76, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [5, 52, 2]}, {"55060003": [69, 52, 9]}, {"55060007": [16, 17, 9]}, {"55060011": [2, 52, 2]}, {"55060015": [70, 52, 162]}, {"55060020": [3, 224]}, {"55060023": [8]}, {"55060028": [144, 136]}, {"55060031": [162, 53, 8]}, {"55060035": [48, 160, 136]}, {"55060039": [162, 3, 224]}, {"55060043": [8]}, {"55060048": [144, 136]}, {"55060051": [162, 49, 8]}, {"55060055": [6, 17]}, {"55060059": [2, 52, 2]}, {"55060063": [55, 52, 2]}, {"55060067": [56, 3, 224]}, {"55060071": [8]}, {"55060076": [144, 136]}, {"55060079": [161, 49, 8]}, {"55060083": [32, 17]}, {"55060087": [2, 52, 2]}, {"55060091": [121, 52, 2]}, {"55060095": [122, 3, 224]}, {"55060099": [8]}, {"55060104": [144, 136]}, {"55060107": [161, 49, 8]}, {"55060111": [4, 17]}, {"55060115": [2, 52, 2]}, {"55060119": [119, 52, 2]}, {"55060123": [120, 3, 224]}, {"55060127": [8]}, {"55060132": [144, 136]}, {"55060135": [50, 17]}, {"55060139": [2, 52, 2]}, {"55060143": [192, 52, 2]}, {"55060147": [193, 3, 224]}, {"55060151": [8]}, {"55060156": [144, 136]}, {"55060159": [163, 49, 8]}, {"55060163": [3, 17]}, {"55060167": [2, 52, 2]}, {"55060171": [77, 52, 162]}, {"55060176": [3, 224]}, {"55060179": [8]}, {"55060184": [144, 136]}, {"55060187": [163, 49, 8]}, {"55060191": [24, 17]}, {"55060195": [2, 52, 2]}, {"55060199": [77, 52, 162]}, {"55060204": [3, 224]}, {"55060207": [8]}, {"55060212": [3, 224]}, {"55060215": [8]}, {"55060220": [52, 8]}, {"55060223": [1, 160, 136]}, {"55060227": [62, 3, 224]}, {"55060231": [8]}, {"55060236": [36, 136]}, {"55060239": [134, 36, 9, 255, 255, 37, 41]}, {"55060247": [1, 52, 1]}, {"55060251": [3]}, {"55060253": [41, 8, 42, 20, 32]}, {"55060259": [7]}, {"55060264": [1, 9, 80, 33, 145, 75]}, {"55060272": [52, 1]}, {"55060275": [255, 21, 97, 255, 247]}, {"55060284": [161, 69]}, {"55060288": [3, 224]}, {"55060291": [8]}, {"55060296": [36, 136]}, {"55060299": [168, 1, 6, 64, 33, 145, 9]}, {"55060308": [1, 37, 72, 37, 161, 9]}, {"55060316": [3, 224]}, {"55060319": [8]}, {"55060324": [36, 136]}, {"55060327": [188, 1, 5, 64, 33, 129, 9]}, {"55060336": [5, 33]}, {"55060339": [2]}, {"55060344": [52, 9]}, {"55060348": [37, 41]}, {"55060351": [1, 161, 9]}, {"55060356": [3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [61, 52, 8]}, {"55060375": [20, 160, 136]}, {"55060379": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [1, 160, 136]}, {"55060403": [50, 160, 136]}, {"55060407": [58, 52, 8]}, {"55060411": [48, 164, 136, 19, 244, 160, 136]}, {"55060419": [51, 3, 224]}, {"55060423": [8]}, {"55060428": [52, 8]}, {"55060431": [2, 160, 136]}, {"55060435": [50, 52, 8]}, {"55060439": [1, 160, 136]}, {"55060443": [58, 160, 136]}, {"55060447": [60, 52, 8]}, {"55060451": [96, 164, 136, 19, 244, 160, 136]}, {"55060459": [51, 3, 224]}, {"55060463": [8]}, {"55060468": [144, 136]}, {"55060471": [124, 52, 1]}, {"55060475": [255, 17, 1]}, {"55060479": [6, 52, 2]}, {"55060483": [107, 144, 136]}, {"55060487": [148, 45, 8]}, {"55060491": [6, 17]}, {"55060495": [2, 52, 2]}, {"55060499": [106, 52, 2]}, {"55060503": [3, 3, 224]}, {"55060507": [8]}, {"55060512": [144, 136]}, {"55060515": [123, 52, 1]}, {"55060519": [255, 17, 1]}, {"55060523": [2, 52, 162]}, {"55060528": [52, 2]}, {"55060531": [12, 3, 224]}, {"55060535": [8]}, {"55060540": [52, 8]}, {"55060543": [7, 160, 136]}, {"55060547": [123, 3, 224]}, {"55060551": [8]}, {"55060556": [52, 8]}, {"55060559": [1]}, {"55060561": [168, 64, 4, 140, 137]}, {"55060567": [164, 1, 40, 72, 37, 172, 137]}, {"55060575": [164, 3, 224]}, {"55060579": [8]}, {"55060584": [48, 132]}, {"55060587": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060599": [140, 16, 129]}, {"55060603": [22, 145, 2]}, {"55060607": [117, 52, 1]}, {"55060611": [141, 16, 129]}, {"55060615": [19, 145, 2]}, {"55060619": [117, 16, 128]}, {"55060623": [17, 145, 2]}, {"55060627": [116, 52, 1]}, {"55060631": [138, 16, 129]}, {"55060635": [14, 145, 2]}, {"55060639": [116, 52, 1]}, {"55060643": [139, 16, 129]}, {"55060647": [11, 145, 2]}, {"55060651": [116, 52, 1]}, {"55060655": [88, 16, 129]}, {"55060659": [8, 52, 2]}, {"55060664": [52, 1]}, {"55060667": [120, 16, 129]}, {"55060671": [5, 52, 2]}, {"55060676": [52, 1]}, {"55060679": [121, 16, 129]}, {"55060683": [2, 52, 2]}, {"55060688": [52, 2]}, {"55060691": [255, 3, 224]}, {"55060695": [8]}, {"55060700": [39, 189, 255, 224, 175, 191]}, {"55060707": [16, 175, 176]}, {"55060711": [20, 12, 16, 11, 19]}, {"55060720": [4, 65]}, {"55060723": [2]}, {"55060728": [52, 2]}, {"55060731": [91]}, {"55060733": [64, 32, 33, 12, 16, 11, 132]}, {"55060744": [16, 96]}, {"55060747": [22, 175, 163]}, {"55060751": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060760": [133, 9]}, {"55060763": [2, 17, 32]}, {"55060767": [3, 52, 10]}, {"55060771": [1, 16]}, {"55060775": [12, 165, 10]}, {"55060780": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060791": [6, 144, 102]}, {"55060795": [7, 140, 105]}, {"55060799": [8, 1, 32, 248, 9]}, {"55060808": [143, 163]}, {"55060811": [28, 144, 101]}, {"55060815": [1, 12, 1, 191, 115, 2, 32, 32, 33, 143, 163]}, {"55060827": [28, 144, 101]}, {"55060831": [3, 16]}, {"55060835": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060847": [6]}, {"55060849": [74]}, {"55060851": [24]}, {"55060854": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060864": [60, 8, 128, 64, 37, 8, 32]}, {"55060872": [133, 9]}, {"55060875": [2, 17, 32]}, {"55060879": [3, 52, 10]}, {"55060883": [1, 165, 10]}, {"55060888": [52, 5]}, {"55060891": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060903": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060914": [48, 33, 143, 191]}, {"55060919": [16, 143, 176]}, {"55060923": [20, 39, 189]}, {"55060927": [32, 3, 224]}, {"55060931": [8]}, {"55060936": [143, 166]}, {"55060939": [48, 132, 197]}, {"55060943": [4, 8, 16, 10, 122]}, {"55060952": [143, 185]}, {"55060955": [44, 135, 37]}, {"55060959": [4, 8, 16, 10, 122]}, {"55060968": [60, 10, 128, 64, 37, 74, 32, 8, 141, 75]}, {"55060979": [12, 17, 96]}, {"55060983": [2]}, {"55060988": [149, 69]}, {"55060991": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55061004": [60, 9, 128, 64, 37, 41, 32, 24, 129, 42]}, {"55061015": [3, 5, 64]}, {"55061019": [11, 1, 42, 72, 32, 129, 40]}, {"55061028": [52, 10]}, {"55061031": [127, 21, 10]}, {"55061035": [6]}, {"55061040": [60, 10, 128, 18, 37, 74, 165, 208, 133, 72]}, {"55061051": [144, 33, 8]}, {"55061055": [1, 165, 72]}, {"55061059": [144, 161, 32]}, {"55061064": [3, 224]}, {"55061067": [8]}, {"55061072": [60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061083": [12, 17, 32]}, {"55061087": [2]}, {"55061092": [129, 3]}, {"55061095": [2]}, {"55061097": [3, 15, 195]}, {"55061101": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061115": [8]}, {"55061120": [144, 69]}, {"55061123": [3, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061135": [12, 17, 32]}, {"55061139": [2]}, {"55061144": [145, 5]}, {"55061147": [3, 3, 224]}, {"55061151": [8]}, {"55061156": [143, 162]}, {"55061159": [36, 144, 69]}, {"55061164": [60, 8, 128, 64, 37, 8, 32]}, {"55061172": [133, 9]}, {"55061175": [2, 17, 32]}, {"55061179": [4, 52, 10]}, {"55061183": [1, 165, 10]}, {"55061188": [16]}, {"55061191": [24, 52, 5]}, {"55061195": [65, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061207": [12, 17, 32]}, {"55061211": [19]}, {"55061216": [145, 5]}, {"55061219": [1, 175, 164]}, {"55061224": [175, 165]}, {"55061227": [4, 175, 166]}, {"55061231": [8, 39, 189, 255, 232, 175, 191]}, {"55061239": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061251": [6, 145, 6]}, {"55061255": [7, 141, 9]}, {"55061259": [8, 1, 32, 248, 9]}, {"55061268": [143, 191]}, {"55061271": [16, 39, 189]}, {"55061275": [24, 143, 164]}, {"55061280": [143, 165]}, {"55061283": [4, 143, 166]}, {"55061287": [8, 3, 224]}, {"55061291": [8]}, {"55061296": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061307": [16, 175, 163]}, {"55061311": [20, 175, 191]}, {"55061315": [24, 12, 16, 10, 217]}, {"55061324": [143, 162]}, {"55061327": [16, 143, 163]}, {"55061331": [20, 143, 191]}, {"55061335": [24, 39, 189]}, {"55061339": [32, 3, 224]}, {"55061343": [8]}, {"55061348": [39, 189, 255, 232, 175, 191]}, {"55061355": [16, 60, 8, 128, 64, 37, 8, 32, 8, 173]}, {"55061368": [173]}, {"55061371": [4, 173]}, {"55061375": [8, 173]}, {"55061379": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061395": [42]}, {"55061401": [9, 15, 195, 1, 33, 32, 38]}, {"55061409": [129, 32, 35, 141, 5, 4, 40, 12, 16, 11, 19]}, {"55061424": [4, 64]}, {"55061427": [34]}, {"55061432": [52, 68]}, {"55061436": [12, 16, 11, 132]}, {"55061444": [16, 96]}, {"55061447": [12]}, {"55061452": [60, 8, 128, 64, 37, 8, 32, 8, 140, 105]}, {"55061464": [173, 9]}, {"55061468": [140, 105]}, {"55061471": [4, 173, 9]}, {"55061475": [4, 140, 105]}, {"55061479": [8, 173, 9]}, {"55061483": [8, 52, 9]}, {"55061487": [1, 173, 9]}, {"55061491": [12, 144, 98]}, {"55061496": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061512": [52, 1]}, {"55061515": [10, 21, 65]}, {"55061519": [6]}, {"55061524": [149, 42]}, {"55061527": [28, 49, 74, 240, 31]}, {"55061533": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061543": [28, 129, 9, 4, 36, 5, 33]}, {"55061551": [2]}, {"55061557": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061567": [16, 39, 189]}, {"55061571": [24, 3, 224]}, {"55061575": [8]}, {"55061580": [39, 189, 255, 232, 175, 191]}, {"55061587": [16, 12, 16, 11, 33]}, {"55061596": [36, 1, 255, 255, 16, 65]}, {"55061603": [4]}, {"55061608": [52, 68]}, {"55061612": [12, 16, 11, 95]}, {"55061620": [143, 191]}, {"55061623": [16, 39, 189]}, {"55061627": [24, 3, 224]}, {"55061631": [8]}, {"55061636": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061647": [164, 52, 8]}, {"55061652": [52, 137]}, {"55061656": [148, 170]}, {"55061660": [52, 1, 1, 156, 21, 65]}, {"55061667": [8]}, {"55061672": [52, 8]}, {"55061675": [3, 148, 171]}, {"55061679": [28, 49, 105]}, {"55061683": [255, 49, 98, 31]}, {"55061689": [2, 18, 2, 16]}, {"55061695": [31]}, {"55061700": [52, 1]}, {"55061703": [10, 21, 65]}, {"55061707": [14]}, {"55061712": [148, 171]}, {"55061715": [28, 52, 1]}, {"55061719": [16, 20, 65]}, {"55061723": [8]}, {"55061728": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061739": [4]}, {"55061744": [36, 2, 255, 255, 16]}, {"55061751": [31]}, {"55061756": [52, 8]}, {"55061759": [1, 49, 105]}, {"55061763": [31, 52, 1]}, {"55061767": [21, 21, 65]}, {"55061771": [12]}, {"55061776": [52, 1]}, {"55061779": [62, 16, 129]}, {"55061783": [7]}, {"55061788": [52, 1]}, {"55061791": [66, 16, 129]}, {"55061795": [4]}, {"55061800": [36, 2, 255, 255, 16]}, {"55061807": [17]}, {"55061812": [52, 8]}, {"55061815": [2, 144, 169, 1, 65, 52, 1, 1, 26, 21, 65]}, {"55061827": [8]}, {"55061832": [52, 1]}, {"55061835": [62, 20, 65]}, {"55061839": [5]}, {"55061844": [52, 8]}, {"55061847": [4, 60, 11, 128, 18, 37, 107, 165, 208, 129, 98, 19, 151]}, {"55061861": [2, 18]}, {"55061865": [72, 16, 37]}, {"55061869": [2, 18]}, {"55061873": [73, 16, 37, 3, 224]}, {"55061879": [8]}, {"55061884": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061896": [129, 9]}, {"55061900": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061923": [4, 141, 9]}, {"55061928": [17, 32]}, {"55061931": [23]}, {"55061937": [9, 82, 2, 49, 75, 248]}, {"55061945": [11, 90, 194, 60, 12, 255, 255, 53, 140, 7, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061968": [49, 34]}, {"55061971": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061992": [60, 12, 128, 64, 37, 140, 28]}, {"55062000": [129, 140]}, {"55062004": [17, 108]}, {"55062007": [4, 165, 32]}, {"55062011": [2, 161, 43]}, {"55062015": [2, 161, 34]}, {"55062019": [3, 173, 36]}, {"55062023": [4, 3, 224]}, {"55062027": [8]}, {"55062032": [39, 189, 255, 224, 175, 176]}, {"55062039": [16, 175, 177]}, {"55062043": [20, 175, 191]}, {"55062047": [24, 52, 130]}, {"55062052": [52, 80]}, {"55062056": [38, 8, 255, 128, 5]}, {"55062063": [18]}, {"55062068": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55062079": [16, 1, 9]}, {"55062083": [24]}, {"55062086": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55062104": [142, 40]}, {"55062107": [12, 1]}, {"55062110": [248, 9]}, {"55062116": [20, 80, 255, 239]}, {"55062124": [54, 35]}, {"55062128": [16]}, {"55062131": [2]}, {"55062136": [52, 3]}, {"55062140": [143, 176]}, {"55062143": [16, 143, 177]}, {"55062147": [20, 143, 191]}, {"55062151": [24, 39, 189]}, {"55062155": [32, 3, 224]}, {"55062159": [8]}, {"55062164": [140, 136, 29, 44, 52, 9]}, {"55062171": [1]}, {"55062173": [9, 78]}, {"55062176": [1, 9, 16, 36, 16, 64]}, {"55062183": [36]}, {"55062188": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062203": [164, 52, 1]}, {"55062207": [61, 17, 129]}, {"55062211": [10]}, {"55062217": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062227": [25]}, {"55062232": [52, 13]}, {"55062235": [1, 161, 141, 29, 40, 37, 74]}, {"55062243": [3, 16]}, {"55062247": [9]}, {"55062252": [52, 12]}, {"55062255": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062271": [14]}, {"55062276": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062312": [60, 9, 128, 64, 37, 41, 32, 24, 161, 40]}, {"55062324": [52, 2]}, {"55062328": [3, 224]}, {"55062331": [8]}, {"55062336": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062348": [16]}, {"55062351": [34]}, {"55062356": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062368": [16]}, {"55062371": [29]}, {"55062376": [52, 2]}, {"55062379": [255, 32, 232, 255, 166, 33, 8]}, {"55062387": [97, 16]}, {"55062391": [24]}, {"55062396": [52, 8]}, {"55062399": [100, 16]}, {"55062403": [21]}, {"55062408": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062423": [1, 160, 40, 14, 222, 52, 8]}, {"55062431": [104, 16]}, {"55062435": [13]}, {"55062440": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062455": [4, 160, 40, 14, 222, 52, 8]}, {"55062463": [106, 16]}, {"55062467": [5]}, {"55062472": [52, 5]}, {"55062475": [3, 52, 8]}, {"55062479": [107, 16]}, {"55062483": [1]}, {"55062488": [60, 9, 128, 64, 37, 41, 32, 24, 60, 10, 128, 64, 37, 74, 32, 27, 129, 44]}, {"55062508": [17, 136]}, {"55062511": [11, 33, 41]}, {"55062515": [1, 21, 42, 255, 252]}, {"55062524": [60, 9, 128, 64, 37, 41, 32, 23, 33, 41]}, {"55062535": [1, 17, 42]}, {"55062539": [4, 129, 44]}, {"55062544": [21, 128, 255, 252]}, {"55062552": [161, 40]}, {"55062556": [3, 224]}, {"55062559": [8]}, {"55062565": [96, 120, 33, 129, 236, 14, 223, 49, 142]}, {"55062575": [128, 17, 192]}, {"55062579": [3, 52, 3]}, {"55062583": [5, 3, 224]}, {"55062587": [8, 52, 2]}, {"55062591": [2, 3, 224]}, {"55062595": [8]}, {"55062597": [96, 16, 33, 133, 194]}, {"55062603": [164, 60, 8, 128, 18, 37, 8, 165, 208, 129, 9, 14, 223, 53, 41]}, {"55062619": [128, 161, 9, 14, 223, 3, 224]}, {"55062627": [8]}, {"55062632": [132, 142]}, {"55062635": [28, 33, 205, 255, 206, 5, 160]}, {"55062643": [16, 52, 2]}, {"55062648": [49, 169]}, {"55062651": [7, 52, 10]}, {"55062655": [1, 1, 42, 80, 4]}, {"55062661": [13, 72, 194, 60, 12, 128, 18, 37, 140, 165, 208, 1, 137, 96, 32, 129, 139, 5, 180, 1, 106, 88, 36, 52, 2]}, {"55062688": [17, 96]}, {"55062691": [4]}, {"55062696": [52, 13]}, {"55062699": [38, 164, 141]}, {"55062703": [28, 52, 2]}, {"55062707": [1, 3, 224]}, {"55062711": [8]}, {"55062716": [132, 174]}, {"55062719": [28, 33, 205, 255, 206, 5, 160]}, {"55062727": [11, 52, 2]}, {"55062732": [49, 169]}, {"55062735": [7, 52, 10]}, {"55062739": [1, 1, 42, 80, 4]}, {"55062745": [13, 72, 194, 60, 12, 128, 18, 37, 140, 165, 208, 1, 137, 96, 32, 129, 139, 5, 180, 1, 106, 88, 37, 161, 139, 5, 180, 3, 224]}, {"55062775": [8]}, {"55062780": [39, 189, 255, 240, 175, 191]}, {"55062787": [8, 40, 129]}, {"55062791": [50, 16, 32]}, {"55062795": [3]}, {"55062797": [128, 16, 33, 3, 32, 248, 9]}, {"55062808": [143, 191]}, {"55062811": [8, 39, 189]}, {"55062815": [16, 3, 224]}, {"55062819": [8]}, {"55062824": [60, 8, 128, 29, 37, 8, 132, 160, 60, 9, 128, 18, 37, 41, 165, 208, 133, 10]}, {"55062843": [164, 52, 1]}, {"55062847": [62, 21, 65]}, {"55062851": [2, 129, 43, 19, 151, 33, 106]}, {"55062859": [45, 134, 11]}, {"55062863": [28, 33, 107]}, {"55062867": [1, 52, 12]}, {"55062871": [1, 1, 108, 96, 4, 52, 1]}, {"55062879": [28, 1, 65]}, {"55062883": [24]}, {"55062886": [104, 18, 1, 45, 112, 32, 141, 207]}, {"55062895": [16, 1, 143, 16, 36, 3, 224]}, {"55062903": [8]}, {"55062908": [60, 8, 128, 29, 37, 8, 132, 160, 60, 9, 128, 18, 37, 41, 165, 208, 133, 10]}, {"55062927": [164, 52, 1]}, {"55062931": [62, 21, 65]}, {"55062935": [2, 129, 43, 19, 151, 33, 106]}, {"55062943": [45, 132, 139]}, {"55062947": [28, 33, 107]}, {"55062951": [1, 52, 12]}, {"55062955": [1, 1, 108, 96, 4, 52, 1]}, {"55062963": [28, 1, 65]}, {"55062967": [24]}, {"55062970": [104, 18, 1, 45, 112, 32, 141, 207]}, {"55062979": [16, 1, 143, 120, 37, 173, 207]}, {"55062987": [16, 3, 224]}, {"55062991": [8]}, {"55062996": [175, 164]}, {"55062999": [104, 175, 165]}, {"55063003": [108, 175, 166]}, {"55063007": [112, 175, 167]}, {"55063011": [116, 39, 189, 255, 232, 175, 163]}, {"55063019": [16, 175, 191]}, {"55063023": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55063039": [32, 21]}, {"55063043": [31]}, {"55063048": [60, 9, 128, 64, 37, 41, 32, 27, 52, 10]}, {"55063059": [255, 161, 42]}, {"55063064": [60, 9, 128, 64, 37, 41, 32, 24, 36, 10, 255, 255, 52, 12]}, {"55063079": [3, 33, 74]}, {"55063083": [1, 17, 76]}, {"55063087": [20, 1, 42, 88, 32, 129, 104]}, {"55063096": [17]}, {"55063098": [255, 251]}, {"55063104": [60, 9, 128, 64, 37, 41, 32, 27, 161, 42]}, {"55063116": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55063127": [1, 165, 42]}, {"55063132": [60, 9, 128, 65, 52, 10]}, {"55063139": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 217]}, {"55063168": [143, 163]}, {"55063171": [16, 143, 191]}, {"55063175": [20, 39, 189]}, {"55063179": [24, 143, 164]}, {"55063183": [104, 143, 165]}, {"55063187": [108, 143, 166]}, {"55063191": [112, 143, 167]}, {"55063195": [116, 132, 110, 19, 196, 3, 224]}, {"55063203": [8]}, {"55063208": [147, 25]}, {"55063211": [116, 52, 1]}, {"55063215": [255, 23, 33]}, {"55063219": [2]}, {"55063224": [52, 25]}, {"55063227": [44, 3, 224]}, {"55063231": [8, 167, 185]}, {"55063235": [154, 147, 44]}, {"55063239": [116, 52, 1]}, {"55063243": [255, 21, 129]}, {"55063247": [2]}, {"55063252": [52, 12]}, {"55063255": [44, 3, 224]}, {"55063259": [8]}, {"55063264": [145, 174]}, {"55063267": [116, 52, 1]}, {"55063271": [255, 21, 193]}, {"55063275": [2]}, {"55063280": [52, 14]}, {"55063283": [44, 3, 224]}, {"55063287": [8, 167, 174]}, {"55063291": [154, 145, 207]}, {"55063295": [116, 52, 1]}, {"55063299": [255, 21, 225]}, {"55063303": [2]}, {"55063308": [52, 15]}, {"55063311": [44, 3, 224]}, {"55063315": [8, 167, 175]}, {"55063319": [154, 60, 8, 128, 64, 37, 8, 32, 28, 142, 9]}, {"55063331": [104, 173, 9]}, {"55063336": [142, 9]}, {"55063339": [108, 173, 9]}, {"55063343": [4, 150, 9]}, {"55063347": [112, 165, 9]}, {"55063351": [8, 150, 9]}, {"55063355": [156, 165, 9]}, {"55063359": [10, 3, 224]}, {"55063363": [8, 142, 14]}, {"55063367": [4, 39, 189, 255, 224, 175, 176]}, {"55063375": [16, 175, 177]}, {"55063379": [20, 175, 191]}, {"55063383": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 28, 142, 8]}, {"55063403": [4, 17]}, {"55063407": [5]}, {"55063412": [12, 16, 12, 252]}, {"55063420": [16]}, {"55063423": [3]}, {"55063428": [12, 16, 13, 15]}, {"55063436": [12, 16, 12, 239, 52, 4]}, {"55063444": [12, 16, 12, 239, 52, 4]}, {"55063451": [1, 12, 16, 12, 239, 52, 4]}, {"55063459": [2, 143, 176]}, {"55063463": [16, 143, 177]}, {"55063467": [20, 143, 191]}, {"55063471": [24, 39, 189]}, {"55063475": [32, 3, 224]}, {"55063479": [8]}, {"55063484": [2, 4, 64, 33, 145, 9]}, {"55063491": [108, 52, 1]}, {"55063495": [255, 17, 33]}, {"55063499": [7]}, {"55063504": [2, 9, 72, 33, 145, 41]}, {"55063511": [116, 52, 1]}, {"55063515": [44, 17, 33]}, {"55063519": [2]}, {"55063524": [161, 9]}, {"55063527": [105, 3, 224]}, {"55063531": [8]}, {"55063536": [39, 189, 255, 232, 175, 191]}, {"55063543": [16, 142, 40]}, {"55063548": [174, 8]}, {"55063551": [64, 142, 40]}, {"55063555": [4, 174, 8]}, {"55063559": [68, 150, 40]}, {"55063563": [8, 166, 8]}, {"55063567": [72, 162]}, {"55063570": [15, 51, 146, 8]}, {"55063575": [74, 52, 1]}, {"55063579": [255, 21, 1]}, {"55063583": [3]}, {"55063588": [12, 16, 13, 29]}, {"55063596": [143, 191]}, {"55063599": [16, 39, 189]}, {"55063603": [24, 3, 224]}, {"55063607": [8]}, {"55063612": [142, 8]}, {"55063615": [64, 174, 8]}, {"55063619": [104, 142, 8]}, {"55063623": [68, 174, 8]}, {"55063627": [108, 150, 8]}, {"55063631": [72, 166, 8]}, {"55063635": [112, 146, 8]}, {"55063639": [104, 52, 1]}, {"55063643": [255, 21, 1]}, {"55063647": [3]}, {"55063652": [52, 8]}, {"55063655": [1, 162, 8, 15, 51, 3, 224]}, {"55063663": [8]}, {"55063668": [39, 189, 255, 232, 175, 191]}, {"55063675": [16, 150, 8]}, {"55063679": [156, 49, 8]}, {"55063683": [64, 17]}, {"55063687": [5]}, {"55063692": [150, 8]}, {"55063695": [112, 49, 8, 255, 15, 53, 8]}, {"55063703": [48, 166, 8]}, {"55063707": [112, 146, 40]}, {"55063711": [1, 162, 8]}, {"55063715": [105, 150, 40]}, {"55063719": [2, 166, 8]}, {"55063723": [106, 142, 40]}, {"55063727": [4, 174, 8]}, {"55063731": [108, 12, 16, 13, 55, 52, 4]}, {"55063740": [12, 16, 13, 55, 52, 4]}, {"55063747": [1, 12, 16, 13, 55, 52, 4]}, {"55063755": [2, 143, 191]}, {"55063759": [16, 39, 189]}, {"55063763": [24, 3, 224]}, {"55063767": [8]}, {"55063772": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 53, 136, 145, 10]}, {"55063787": [108, 52, 1]}, {"55063791": [255, 17, 65]}, {"55063795": [5]}, {"55063800": [1, 42, 72, 33, 145, 41]}, {"55063808": [21, 32]}, {"55063811": [28]}, {"55063816": [60, 9, 128, 64, 37, 41, 53, 123, 37, 41]}, {"55063827": [1, 145, 42]}, {"55063832": [17, 64]}, {"55063835": [19]}, {"55063840": [2, 10, 88, 33, 145, 107]}, {"55063847": [116, 52, 1]}, {"55063851": [255, 17, 97, 255, 248]}, {"55063860": [146, 12]}, {"55063863": [108, 17, 138, 255, 245]}, {"55063872": [146, 12]}, {"55063875": [109, 17, 138, 255, 242]}, {"55063884": [146, 12]}, {"55063887": [110, 17, 138, 255, 239]}, {"55063896": [161, 11]}, {"55063899": [105, 161, 10]}, {"55063903": [108, 16]}, {"55063907": [4]}, {"55063912": [52, 9]}, {"55063915": [255, 161, 9]}, {"55063919": [105, 161, 9]}, {"55063923": [108, 3, 224]}, {"55063927": [8]}, {"55063932": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063945": [1, 1, 1, 1, 1]}, {"55063951": [1, 1, 1, 1, 1]}, {"55063957": [1]}, {"55063959": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063969": [51, 8, 33, 32, 15]}, {"55063975": [71, 21, 234]}, {"55063979": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063991": [164]}, {"55063993": [15, 122, 3, 20, 64]}, {"55063999": [5, 52, 2, 72, 48, 21, 226]}, {"55064007": [7]}, {"55064012": [36, 25]}, {"55064015": [3, 16]}, {"55064019": [4, 52, 2, 99, 17, 21, 226]}, {"55064027": [2]}, {"55064032": [36, 25]}, {"55064035": [3, 3, 224]}, {"55064039": [8]}, {"55064044": [141, 173, 138, 160, 52, 2, 128]}, {"55064052": [16, 77]}, {"55064055": [2]}, {"55064060": [16]}, {"55064063": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55064079": [1, 16, 64]}, {"55064083": [2]}, {"55064088": [16]}, {"55064091": [2, 52, 2]}, {"55064095": [1, 161, 226, 28, 191, 3, 224]}, {"55064103": [8]}, {"55064109": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55064123": [164]}, {"55064125": [15, 122, 3, 20, 64]}, {"55064131": [5, 52, 2, 72, 48, 21, 226]}, {"55064139": [7]}, {"55064144": [36, 25]}, {"55064147": [3, 16]}, {"55064151": [4, 52, 2, 99, 17, 21, 226]}, {"55064159": [2]}, {"55064164": [36, 25]}, {"55064167": [3, 3, 224]}, {"55064171": [8]}, {"55064176": [52, 1]}, {"55064179": [24, 20, 129]}, {"55064183": [17]}, {"55064188": [20, 64]}, {"55064191": [15]}, {"55064196": [60, 10, 128, 18, 37, 74, 165, 208, 129, 72]}, {"55064207": [166, 49, 8]}, {"55064211": [32, 17]}, {"55064215": [9, 52, 2]}, {"55064220": [52, 2]}, {"55064223": [1, 129, 72]}, {"55064227": [123, 52, 9]}, {"55064231": [7, 17, 9]}, {"55064235": [4, 52, 10]}, {"55064239": [8, 17, 10]}, {"55064243": [2]}, {"55064248": [52, 2]}, {"55064252": [3, 224]}, {"55064255": [8]}, {"55064260": [162, 37]}, {"55064263": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55064275": [4, 142, 10]}, {"55064280": [17, 64]}, {"55064283": [11]}, {"55064289": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55064301": [24, 194, 2, 23]}, {"55064307": [3, 49, 89]}, {"55064311": [255, 129, 234]}, {"55064316": [3, 42, 200, 37, 8, 16, 13, 180, 161, 249]}, {"55064328": [3, 224]}, {"55064331": [8]}] -======= [ { "9083985": [ @@ -516,7 +513,7 @@ 12, 16, 10, - 196 + 204 ] }, { @@ -524,7 +521,7 @@ 8, 16, 13, - 47 + 156 ] }, { @@ -532,7 +529,7 @@ 12, 16, 11, - 205 + 223 ] }, { @@ -547,7 +544,7 @@ 12, 16, 11, - 190, + 208, 0, 0, 0, @@ -578,7 +575,7 @@ 8, 16, 12, - 101 + 210 ] }, { @@ -586,7 +583,7 @@ 12, 16, 13, - 14 + 123 ] }, { @@ -594,7 +591,7 @@ 12, 16, 11, - 200 + 218 ] }, { @@ -613,7 +610,7 @@ 12, 16, 11, - 195, + 213, 1, 15, 192, @@ -644,7 +641,7 @@ 12, 16, 13, - 68 + 177 ] }, { @@ -662,15 +659,15 @@ 12, 16, 13, - 30 + 139 ] }, { "11882076": [ 12, 16, - 12, - 251 + 13, + 104 ] }, { @@ -700,7 +697,7 @@ 12, 16, 12, - 68, + 177, 0, 0 ] @@ -715,7 +712,7 @@ 12, 16, 12, - 75, + 184, 0, 0 ] @@ -752,7 +749,7 @@ 12, 16, 12, - 82, + 191, 0, 0 ] @@ -767,7 +764,7 @@ 12, 16, 12, - 61, + 170, 0, 0 ] @@ -782,7 +779,7 @@ 8, 16, 10, - 140 + 148 ] }, { @@ -818,7 +815,7 @@ "12427425": [ 16, 10, - 18 + 26 ] }, { @@ -826,7 +823,7 @@ 12, 16, 10, - 106 + 114 ] }, { @@ -845,7 +842,7 @@ 12, 16, 10, - 110 + 118 ] }, { @@ -864,7 +861,7 @@ 12, 16, 12, - 8, + 117, 0, 0, 0, @@ -876,7 +873,7 @@ 12, 16, 10, - 152 + 160 ] }, { @@ -884,7 +881,7 @@ 12, 16, 10, - 161 + 169 ] }, { @@ -899,6 +896,43 @@ 131 ] }, + { + "12584172": [ + 8, + 16, + 12, + 26 + ] + }, + { + "12584575": [ + 100 + ] + }, + { + "12589216": [ + 12, + 16, + 12, + 47 + ] + }, + { + "13027240": [ + 12, + 16, + 12, + 63 + ] + }, + { + "13027616": [ + 12, + 16, + 12, + 63 + ] + }, { "13144796": [ 52, @@ -919,7 +953,7 @@ "13145925": [ 16, 11, - 147 + 165 ] }, { @@ -951,7 +985,7 @@ 12, 16, 12, - 89 + 198 ] }, { @@ -1388,7 +1422,7 @@ 12, 16, 11, - 208 + 226 ] }, { @@ -1418,7 +1452,7 @@ 12, 16, 11, - 224 + 242 ] }, { @@ -1426,6 +1460,14 @@ 118 ] }, + { + "14646448": [ + 12, + 16, + 12, + 95 + ] + }, { "14720872": [ 128 @@ -1450,15 +1492,15 @@ 12, 16, 11, - 216 + 234 ] }, { "14848904": [ 8, 16, - 11, - 247 + 12, + 9 ] }, { @@ -1466,7 +1508,7 @@ 12, 16, 12, - 0 + 18 ] }, { @@ -1509,6 +1551,32 @@ 169 ] }, + { + "15448156": [ + 12, + 16, + 12, + 74 + ] + }, + { + "15448165": [ + 64 + ] + }, + { + "15448167": [ + 18 + ] + }, + { + "15448172": [ + 16, + 0, + 0, + 20 + ] + }, { "15493308": [ 143, @@ -1526,7 +1594,7 @@ 12, 16, 10, - 47, + 55, 2, 0, 40, @@ -1577,7 +1645,7 @@ 12, 16, 10, - 47, + 55, 2, 0, 40, @@ -1642,7 +1710,7 @@ 128, 64, 38, - 212, + 244, 128, 64, 37, @@ -1658,7 +1726,7 @@ 128, 64, 38, - 212, + 244, 128, 64, 37, @@ -1674,7 +1742,7 @@ 128, 64, 38, - 212, + 244, 128, 64, 37, @@ -1690,7 +1758,7 @@ 128, 64, 38, - 212, + 244, 128, 64, 37, @@ -1706,23 +1774,26 @@ 128, 64, 38, - 212, + 244, 128, 64, 37, 236, - 255, - 255, - 255, - 255, - 255, - 255, + 83, + 65, + 35, + 248 + ] + }, + { + "55058597": [ + 209, 255, 255, 128, 64, 38, - 212, + 60, 128, 64, 38, @@ -1738,11 +1809,11 @@ 128, 64, 38, - 212, + 244, 128, 64, 38, - 48, + 80, 255, 255, 255, @@ -1754,11 +1825,11 @@ 128, 64, 38, - 212, + 244, 128, 64, 38, - 76, + 108, 255, 255, 255, @@ -1770,11 +1841,11 @@ 128, 64, 38, - 212, + 244, 128, 64, 38, - 104, + 136, 83, 65, 56, @@ -1788,8 +1859,8 @@ 255, 128, 64, - 38, - 236, + 39, + 12, 128, 64, 37, @@ -1807,8 +1878,8 @@ 255, 128, 64, - 38, - 236, + 39, + 12, 128, 64, 37, @@ -1826,8 +1897,8 @@ 255, 128, 64, - 38, - 236, + 39, + 12, 128, 64, 37, @@ -1842,8 +1913,8 @@ 255, 128, 64, - 38, - 236, + 39, + 12, 128, 64, 37, @@ -1861,8 +1932,8 @@ 255, 128, 64, - 38, - 236, + 39, + 12, 128, 64, 37, @@ -1877,8 +1948,8 @@ 255, 128, 64, - 38, - 236, + 39, + 12, 128, 64, 37, @@ -1893,8 +1964,8 @@ 255, 128, 64, - 38, - 236, + 39, + 12, 128, 64, 37, @@ -1909,8 +1980,8 @@ 255, 128, 64, - 38, - 236, + 39, + 12, 128, 64, 37, @@ -1925,8 +1996,8 @@ 255, 128, 64, - 38, - 236, + 39, + 12, 128, 64, 37, @@ -1945,7 +2016,7 @@ 128, 64, 39, - 40, + 72, 128, 64, 37, @@ -1964,7 +2035,7 @@ 128, 64, 39, - 40, + 72, 128, 64, 37, @@ -1983,7 +2054,7 @@ 128, 64, 39, - 40, + 72, 128, 64, 37, @@ -2002,7 +2073,7 @@ 128, 64, 39, - 40, + 72, 128, 64, 37, @@ -2021,7 +2092,7 @@ 128, 64, 39, - 40, + 72, 128, 64, 37, @@ -2040,7 +2111,7 @@ 128, 64, 39, - 40, + 72, 128, 64, 37, @@ -2062,7 +2133,7 @@ 128, 64, 39, - 40, + 72, 128, 64, 37, @@ -2081,7 +2152,7 @@ 128, 64, 39, - 40, + 72, 128, 64, 37, @@ -2100,7 +2171,7 @@ 128, 64, 39, - 40, + 72, 128, 64, 37, @@ -2119,7 +2190,7 @@ 128, 64, 39, - 40, + 72, 128, 64, 37, @@ -2138,7 +2209,7 @@ 128, 64, 39, - 40, + 72, 128, 64, 37, @@ -2157,7 +2228,7 @@ 128, 64, 39, - 40, + 72, 128, 64, 37, @@ -2176,7 +2247,7 @@ 128, 64, 39, - 40, + 72, 128, 64, 37, @@ -2195,7 +2266,7 @@ 128, 64, 39, - 40, + 72, 128, 64, 37, @@ -2214,7 +2285,7 @@ 128, 64, 39, - 40, + 72, 128, 64, 37, @@ -2233,7 +2304,7 @@ 128, 64, 39, - 40, + 72, 128, 64, 37, @@ -2255,7 +2326,7 @@ 128, 64, 39, - 40, + 72, 128, 64, 37, @@ -2274,7 +2345,7 @@ 128, 64, 39, - 40, + 72, 128, 64, 37, @@ -2293,7 +2364,7 @@ 128, 64, 39, - 40, + 72, 128, 64, 37, @@ -2312,7 +2383,7 @@ 128, 64, 39, - 40, + 72, 128, 64, 37, @@ -2331,7 +2402,7 @@ 128, 64, 39, - 40, + 72, 128, 64, 37, @@ -2350,7 +2421,7 @@ 128, 64, 39, - 40, + 72, 128, 64, 37, @@ -2369,7 +2440,7 @@ 128, 64, 39, - 40, + 72, 128, 64, 37, @@ -2388,7 +2459,7 @@ 128, 64, 39, - 40, + 72, 128, 64, 37, @@ -2407,7 +2478,7 @@ 128, 64, 39, - 40, + 72, 128, 64, 37, @@ -2426,7 +2497,7 @@ 128, 64, 39, - 40, + 72, 128, 64, 37, @@ -2445,7 +2516,7 @@ 128, 64, 39, - 68, + 100, 128, 64, 37, @@ -2464,7 +2535,7 @@ 128, 64, 39, - 68, + 100, 128, 64, 37, @@ -2483,7 +2554,7 @@ 128, 64, 39, - 68, + 100, 128, 64, 37, @@ -2502,7 +2573,7 @@ 128, 64, 39, - 68, + 100, 128, 64, 37, @@ -2521,7 +2592,7 @@ 128, 64, 39, - 68, + 100, 128, 64, 37, @@ -2540,7 +2611,7 @@ 128, 64, 39, - 68, + 100, 128, 64, 37, @@ -2559,7 +2630,7 @@ 128, 64, 39, - 68, + 100, 128, 64, 37, @@ -2578,7 +2649,7 @@ 128, 64, 39, - 68, + 100, 128, 64, 37, @@ -2597,7 +2668,7 @@ 128, 64, 39, - 68, + 100, 128, 64, 37, @@ -2616,7 +2687,7 @@ 128, 64, 38, - 220, + 252, 128, 64, 37, @@ -2635,7 +2706,7 @@ 128, 64, 38, - 212, + 244, 128, 64, 37, @@ -2654,11 +2725,11 @@ 128, 64, 38, - 212, + 244, 128, 64, 38, - 156, + 188, 77, 147, 218, @@ -2673,11 +2744,11 @@ 128, 64, 38, - 212, + 244, 128, 64, 38, - 156, + 188, 77, 148, 217, @@ -2692,11 +2763,11 @@ 128, 64, 38, - 212, + 244, 128, 64, 38, - 156, + 188, 77, 142, 224, @@ -2711,11 +2782,11 @@ 128, 64, 38, - 212, + 244, 128, 64, 38, - 184, + 216, 77, 143, 224, @@ -2730,11 +2801,11 @@ 128, 64, 38, - 212, + 244, 128, 64, 38, - 184, + 216, 77, 144, 224, @@ -2749,11 +2820,11 @@ 128, 64, 38, - 212, + 244, 128, 64, 38, - 184, + 216, 77, 140, 238, @@ -2768,7 +2839,7 @@ 128, 64, 38, - 212, + 244, 128, 64, 37, @@ -2787,7 +2858,7 @@ 128, 64, 38, - 212, + 244, 128, 64, 37, @@ -2806,7 +2877,7 @@ 128, 64, 39, - 108, + 140, 128, 64, 37, @@ -2825,11 +2896,11 @@ 128, 64, 39, - 140, + 172, 128, 64, 38, - 132, + 164, 79, 65, 31, @@ -2844,7 +2915,7 @@ 128, 64, 39, - 172, + 204, 128, 64, 37, @@ -2860,11 +2931,11 @@ 128, 64, 38, - 212, + 244, 128, 64, 39, - 212, + 244, 83, 65, 70, @@ -2876,14 +2947,11 @@ 128, 64, 40, - 28, + 60, 128, 64, - 40 - ] - }, - { - "55059600": [ + 40, + 32, 83, 65, 3, @@ -2898,7 +2966,7 @@ 128, 64, 40, - 44, + 76, 128, 64, 37, @@ -2917,7 +2985,7 @@ 128, 64, 40, - 44, + 76, 128, 64, 37, @@ -2936,7 +3004,7 @@ 128, 64, 40, - 44, + 76, 128, 64, 37, @@ -2955,7 +3023,7 @@ 128, 64, 40, - 44, + 76, 128, 64, 37, @@ -2974,7 +3042,7 @@ 128, 64, 40, - 44, + 76, 128, 64, 37, @@ -2993,7 +3061,7 @@ 128, 64, 40, - 44, + 76, 128, 64, 37, @@ -3012,7 +3080,7 @@ 128, 64, 40, - 44, + 76, 128, 64, 37, @@ -3031,7 +3099,7 @@ 128, 64, 40, - 44, + 76, 128, 64, 37, @@ -3050,7 +3118,7 @@ 128, 64, 40, - 44, + 76, 128, 64, 37, @@ -3069,7 +3137,7 @@ 128, 64, 40, - 44, + 76, 128, 64, 37, @@ -3088,7 +3156,7 @@ 128, 64, 40, - 44, + 76, 128, 64, 37, @@ -3107,7 +3175,7 @@ 128, 64, 40, - 44, + 76, 128, 64, 37, @@ -3454,7 +3522,7 @@ }, { "55059999": [ - 2, + 5, 52, 2 ] @@ -3463,326 +3531,378 @@ "55060003": [ 69, 52, - 2 + 9 ] }, { "55060007": [ + 16, + 17, + 9 + ] + }, + { + "55060011": [ + 2, + 52, + 2 + ] + }, + { + "55060015": [ 70, + 52, + 162 + ] + }, + { + "55060020": [ 3, 224 ] }, { - "55060011": [ + "55060023": [ + 8 + ] + }, + { + "55060028": [ + 144, + 136 + ] + }, + { + "55060031": [ + 162, + 53, + 8 + ] + }, + { + "55060035": [ + 48, + 160, + 136 + ] + }, + { + "55060039": [ + 162, + 3, + 224 + ] + }, + { + "55060043": [ 8 ] }, { - "55060016": [ + "55060048": [ 144, 136 ] }, { - "55060019": [ + "55060051": [ 162, 49, 8 ] }, { - "55060023": [ + "55060055": [ 6, 17 ] }, { - "55060027": [ + "55060059": [ 2, 52, 2 ] }, { - "55060031": [ + "55060063": [ 55, 52, 2 ] }, { - "55060035": [ + "55060067": [ 56, 3, 224 ] }, { - "55060039": [ + "55060071": [ 8 ] }, { - "55060044": [ + "55060076": [ 144, 136 ] }, { - "55060047": [ + "55060079": [ 161, 49, 8 ] }, { - "55060051": [ + "55060083": [ 32, 17 ] }, { - "55060055": [ + "55060087": [ 2, 52, 2 ] }, { - "55060059": [ + "55060091": [ 121, 52, 2 ] }, { - "55060063": [ + "55060095": [ 122, 3, 224 ] }, { - "55060067": [ + "55060099": [ 8 ] }, { - "55060072": [ + "55060104": [ 144, 136 ] }, { - "55060075": [ + "55060107": [ 161, 49, 8 ] }, { - "55060079": [ + "55060111": [ 4, 17 ] }, { - "55060083": [ + "55060115": [ 2, 52, 2 ] }, { - "55060087": [ + "55060119": [ 119, 52, 2 ] }, { - "55060091": [ + "55060123": [ 120, 3, 224 ] }, { - "55060095": [ + "55060127": [ 8 ] }, { - "55060100": [ + "55060132": [ 144, 136 ] }, { - "55060103": [ + "55060135": [ 50, 17 ] }, { - "55060107": [ + "55060139": [ 2, 52, 2 ] }, { - "55060111": [ + "55060143": [ 192, 52, 2 ] }, { - "55060115": [ + "55060147": [ 193, 3, 224 ] }, { - "55060119": [ + "55060151": [ 8 ] }, { - "55060124": [ + "55060156": [ 144, 136 ] }, { - "55060127": [ + "55060159": [ 163, 49, 8 ] }, { - "55060131": [ + "55060163": [ 3, 17 ] }, { - "55060135": [ + "55060167": [ 2, 52, 2 ] }, { - "55060139": [ + "55060171": [ 77, 52, 162 ] }, { - "55060144": [ + "55060176": [ 3, 224 ] }, { - "55060147": [ + "55060179": [ 8 ] }, { - "55060152": [ + "55060184": [ 144, 136 ] }, { - "55060155": [ + "55060187": [ 163, 49, 8 ] }, { - "55060159": [ + "55060191": [ 24, 17 ] }, { - "55060163": [ + "55060195": [ 2, 52, 2 ] }, { - "55060167": [ + "55060199": [ 77, 52, 162 ] }, { - "55060172": [ + "55060204": [ 3, 224 ] }, { - "55060175": [ + "55060207": [ 8 ] }, { - "55060180": [ + "55060212": [ 3, 224 ] }, { - "55060183": [ + "55060215": [ 8 ] }, { - "55060188": [ + "55060220": [ 52, 8 ] }, { - "55060191": [ + "55060223": [ 1, 160, 136 ] }, { - "55060195": [ + "55060227": [ 62, 3, 224 ] }, { - "55060199": [ + "55060231": [ 8 ] }, { - "55060204": [ + "55060236": [ 36, 136 ] }, { - "55060207": [ + "55060239": [ 134, 36, 9, @@ -3793,19 +3913,19 @@ ] }, { - "55060215": [ + "55060247": [ 1, 52, 1 ] }, { - "55060219": [ + "55060251": [ 3 ] }, { - "55060221": [ + "55060253": [ 41, 8, 42, @@ -3814,12 +3934,12 @@ ] }, { - "55060227": [ + "55060259": [ 7 ] }, { - "55060232": [ + "55060264": [ 1, 9, 80, @@ -3829,13 +3949,13 @@ ] }, { - "55060240": [ + "55060272": [ 52, 1 ] }, { - "55060243": [ + "55060275": [ 255, 21, 97, @@ -3844,30 +3964,30 @@ ] }, { - "55060252": [ + "55060284": [ 161, 69 ] }, { - "55060256": [ + "55060288": [ 3, 224 ] }, { - "55060259": [ + "55060291": [ 8 ] }, { - "55060264": [ + "55060296": [ 36, 136 ] }, { - "55060267": [ + "55060299": [ 168, 1, 6, @@ -3878,7 +3998,7 @@ ] }, { - "55060276": [ + "55060308": [ 1, 37, 72, @@ -3888,24 +4008,24 @@ ] }, { - "55060284": [ + "55060316": [ 3, 224 ] }, { - "55060287": [ + "55060319": [ 8 ] }, { - "55060292": [ + "55060324": [ 36, 136 ] }, { - "55060295": [ + "55060327": [ 188, 1, 5, @@ -3916,75 +4036,75 @@ ] }, { - "55060304": [ + "55060336": [ 5, 33 ] }, { - "55060307": [ + "55060339": [ 2 ] }, { - "55060312": [ + "55060344": [ 52, 9 ] }, { - "55060316": [ + "55060348": [ 37, 41 ] }, { - "55060319": [ + "55060351": [ 1, 161, 9 ] }, { - "55060324": [ + "55060356": [ 3, 224 ] }, { - "55060327": [ + "55060359": [ 8 ] }, { - "55060332": [ + "55060364": [ 52, 8 ] }, { - "55060335": [ + "55060367": [ 1, 160, 136 ] }, { - "55060339": [ + "55060371": [ 61, 52, 8 ] }, { - "55060343": [ + "55060375": [ 20, 160, 136 ] }, { - "55060347": [ + "55060379": [ 207, 52, 8, @@ -3999,39 +4119,39 @@ ] }, { - "55060359": [ + "55060391": [ 8 ] }, { - "55060364": [ + "55060396": [ 52, 8 ] }, { - "55060367": [ + "55060399": [ 1, 160, 136 ] }, { - "55060371": [ + "55060403": [ 50, 160, 136 ] }, { - "55060375": [ + "55060407": [ 58, 52, 8 ] }, { - "55060379": [ + "55060411": [ 48, 164, 136, @@ -4042,60 +4162,60 @@ ] }, { - "55060387": [ + "55060419": [ 51, 3, 224 ] }, { - "55060391": [ + "55060423": [ 8 ] }, { - "55060396": [ + "55060428": [ 52, 8 ] }, { - "55060399": [ + "55060431": [ 2, 160, 136 ] }, { - "55060403": [ + "55060435": [ 50, 52, 8 ] }, { - "55060407": [ + "55060439": [ 1, 160, 136 ] }, { - "55060411": [ + "55060443": [ 58, 160, 136 ] }, { - "55060415": [ + "55060447": [ 60, 52, 8 ] }, { - "55060419": [ + "55060451": [ 96, 164, 136, @@ -4106,173 +4226,173 @@ ] }, { - "55060427": [ + "55060459": [ 51, 3, 224 ] }, { - "55060431": [ + "55060463": [ 8 ] }, { - "55060436": [ + "55060468": [ 144, 136 ] }, { - "55060439": [ + "55060471": [ 124, 52, 1 ] }, { - "55060443": [ + "55060475": [ 255, 17, 1 ] }, { - "55060447": [ + "55060479": [ 6, 52, 2 ] }, { - "55060451": [ + "55060483": [ 107, 144, 136 ] }, { - "55060455": [ + "55060487": [ 148, 45, 8 ] }, { - "55060459": [ + "55060491": [ 6, 17 ] }, { - "55060463": [ + "55060495": [ 2, 52, 2 ] }, { - "55060467": [ + "55060499": [ 106, 52, 2 ] }, { - "55060471": [ + "55060503": [ 3, 3, 224 ] }, { - "55060475": [ + "55060507": [ 8 ] }, { - "55060480": [ + "55060512": [ 144, 136 ] }, { - "55060483": [ + "55060515": [ 123, 52, 1 ] }, { - "55060487": [ + "55060519": [ 255, 17, 1 ] }, { - "55060491": [ + "55060523": [ 2, 52, 162 ] }, { - "55060496": [ + "55060528": [ 52, 2 ] }, { - "55060499": [ + "55060531": [ 12, 3, 224 ] }, { - "55060503": [ + "55060535": [ 8 ] }, { - "55060508": [ + "55060540": [ 52, 8 ] }, { - "55060511": [ + "55060543": [ 7, 160, 136 ] }, { - "55060515": [ + "55060547": [ 123, 3, 224 ] }, { - "55060519": [ + "55060551": [ 8 ] }, { - "55060524": [ + "55060556": [ 52, 8 ] }, { - "55060527": [ + "55060559": [ 1 ] }, { - "55060529": [ + "55060561": [ 168, 64, 4, @@ -4281,7 +4401,7 @@ ] }, { - "55060535": [ + "55060567": [ 164, 1, 40, @@ -4292,25 +4412,25 @@ ] }, { - "55060543": [ + "55060575": [ 164, 3, 224 ] }, { - "55060547": [ + "55060579": [ 8 ] }, { - "55060552": [ + "55060584": [ 48, 132 ] }, { - "55060555": [ + "55060587": [ 255, 60, 8, @@ -4325,177 +4445,177 @@ ] }, { - "55060567": [ + "55060599": [ 140, 16, 129 ] }, { - "55060571": [ + "55060603": [ 22, 145, 2 ] }, { - "55060575": [ + "55060607": [ 117, 52, 1 ] }, { - "55060579": [ + "55060611": [ 141, 16, 129 ] }, { - "55060583": [ + "55060615": [ 19, 145, 2 ] }, { - "55060587": [ + "55060619": [ 117, 16, 128 ] }, { - "55060591": [ + "55060623": [ 17, 145, 2 ] }, { - "55060595": [ + "55060627": [ 116, 52, 1 ] }, { - "55060599": [ + "55060631": [ 138, 16, 129 ] }, { - "55060603": [ + "55060635": [ 14, 145, 2 ] }, { - "55060607": [ + "55060639": [ 116, 52, 1 ] }, { - "55060611": [ + "55060643": [ 139, 16, 129 ] }, { - "55060615": [ + "55060647": [ 11, 145, 2 ] }, { - "55060619": [ + "55060651": [ 116, 52, 1 ] }, { - "55060623": [ + "55060655": [ 88, 16, 129 ] }, { - "55060627": [ + "55060659": [ 8, 52, 2 ] }, { - "55060632": [ + "55060664": [ 52, 1 ] }, { - "55060635": [ + "55060667": [ 120, 16, 129 ] }, { - "55060639": [ + "55060671": [ 5, 52, 2 ] }, { - "55060644": [ + "55060676": [ 52, 1 ] }, { - "55060647": [ + "55060679": [ 121, 16, 129 ] }, { - "55060651": [ + "55060683": [ 2, 52, 2 ] }, { - "55060656": [ + "55060688": [ 52, 2 ] }, { - "55060659": [ + "55060691": [ 255, 3, 224 ] }, { - "55060663": [ + "55060695": [ 8 ] }, { - "55060668": [ + "55060700": [ 39, 189, 255, @@ -4505,69 +4625,69 @@ ] }, { - "55060675": [ + "55060707": [ 16, 175, 176 ] }, { - "55060679": [ + "55060711": [ 20, 12, 16, 11, - 11 + 19 ] }, { - "55060688": [ + "55060720": [ 4, 65 ] }, { - "55060691": [ + "55060723": [ 2 ] }, { - "55060696": [ + "55060728": [ 52, 2 ] }, { - "55060699": [ + "55060731": [ 91 ] }, { - "55060701": [ + "55060733": [ 64, 32, 33, 12, 16, 11, - 114 + 132 ] }, { - "55060712": [ + "55060744": [ 16, 96 ] }, { - "55060715": [ + "55060747": [ 22, 175, 163 ] }, { - "55060719": [ + "55060751": [ 28, 60, 8, @@ -4579,40 +4699,40 @@ ] }, { - "55060728": [ + "55060760": [ 133, 9 ] }, { - "55060731": [ + "55060763": [ 2, 17, 32 ] }, { - "55060735": [ + "55060767": [ 3, 52, 10 ] }, { - "55060739": [ + "55060771": [ 1, 16 ] }, { - "55060743": [ + "55060775": [ 12, 165, 10 ] }, { - "55060748": [ + "55060780": [ 60, 4, 128, @@ -4626,21 +4746,21 @@ ] }, { - "55060759": [ + "55060791": [ 6, 144, 102 ] }, { - "55060763": [ + "55060795": [ 7, 140, 105 ] }, { - "55060767": [ + "55060799": [ 8, 1, 32, @@ -4649,20 +4769,20 @@ ] }, { - "55060776": [ + "55060808": [ 143, 163 ] }, { - "55060779": [ + "55060811": [ 28, 144, 101 ] }, { - "55060783": [ + "55060815": [ 1, 12, 1, @@ -4677,20 +4797,20 @@ ] }, { - "55060795": [ + "55060827": [ 28, 144, 101 ] }, { - "55060799": [ + "55060831": [ 3, 16 ] }, { - "55060803": [ + "55060835": [ 17, 60, 9, @@ -4705,22 +4825,22 @@ ] }, { - "55060815": [ + "55060847": [ 6 ] }, { - "55060817": [ + "55060849": [ 74 ] }, { - "55060819": [ + "55060851": [ 24 ] }, { - "55060822": [ + "55060854": [ 80, 18, 1, @@ -4732,7 +4852,7 @@ ] }, { - "55060832": [ + "55060864": [ 60, 8, 128, @@ -4743,40 +4863,40 @@ ] }, { - "55060840": [ + "55060872": [ 133, 9 ] }, { - "55060843": [ + "55060875": [ 2, 17, 32 ] }, { - "55060847": [ + "55060879": [ 3, 52, 10 ] }, { - "55060851": [ + "55060883": [ 1, 165, 10 ] }, { - "55060856": [ + "55060888": [ 52, 5 ] }, { - "55060859": [ + "55060891": [ 65, 12, 1, @@ -4791,7 +4911,7 @@ ] }, { - "55060871": [ + "55060903": [ 3, 2, 32, @@ -4804,7 +4924,7 @@ ] }, { - "55060882": [ + "55060914": [ 48, 33, 143, @@ -4812,77 +4932,77 @@ ] }, { - "55060887": [ + "55060919": [ 16, 143, 176 ] }, { - "55060891": [ + "55060923": [ 20, 39, 189 ] }, { - "55060895": [ + "55060927": [ 32, 3, 224 ] }, { - "55060899": [ + "55060931": [ 8 ] }, { - "55060904": [ + "55060936": [ 143, 166 ] }, { - "55060907": [ + "55060939": [ 48, 132, 197 ] }, { - "55060911": [ + "55060943": [ 4, 8, 16, 10, - 114 + 122 ] }, { - "55060920": [ + "55060952": [ 143, 185 ] }, { - "55060923": [ + "55060955": [ 44, 135, 37 ] }, { - "55060927": [ + "55060959": [ 4, 8, 16, 10, - 114 + 122 ] }, { - "55060936": [ + "55060968": [ 60, 10, 128, @@ -4896,25 +5016,25 @@ ] }, { - "55060947": [ + "55060979": [ 12, 17, 96 ] }, { - "55060951": [ + "55060983": [ 2 ] }, { - "55060956": [ + "55060988": [ 149, 69 ] }, { - "55060959": [ + "55060991": [ 4, 60, 10, @@ -4929,7 +5049,7 @@ ] }, { - "55060972": [ + "55061004": [ 60, 9, 128, @@ -4943,14 +5063,14 @@ ] }, { - "55060983": [ + "55061015": [ 3, 5, 64 ] }, { - "55060987": [ + "55061019": [ 11, 1, 42, @@ -4961,25 +5081,25 @@ ] }, { - "55060996": [ + "55061028": [ 52, 10 ] }, { - "55060999": [ + "55061031": [ 127, 21, 10 ] }, { - "55061003": [ + "55061035": [ 6 ] }, { - "55061008": [ + "55061040": [ 60, 10, 128, @@ -4993,39 +5113,39 @@ ] }, { - "55061019": [ + "55061051": [ 144, 33, 8 ] }, { - "55061023": [ + "55061055": [ 1, 165, 72 ] }, { - "55061027": [ + "55061059": [ 144, 161, 32 ] }, { - "55061032": [ + "55061064": [ 3, 224 ] }, { - "55061035": [ + "55061067": [ 8 ] }, { - "55061040": [ + "55061072": [ 60, 8, 128, @@ -5039,37 +5159,37 @@ ] }, { - "55061051": [ + "55061083": [ 12, 17, 32 ] }, { - "55061055": [ + "55061087": [ 2 ] }, { - "55061060": [ + "55061092": [ 129, 3 ] }, { - "55061063": [ + "55061095": [ 2 ] }, { - "55061065": [ + "55061097": [ 3, 15, 195 ] }, { - "55061069": [ + "55061101": [ 97, 64, 38, @@ -5086,18 +5206,18 @@ ] }, { - "55061083": [ + "55061115": [ 8 ] }, { - "55061088": [ + "55061120": [ 144, 69 ] }, { - "55061091": [ + "55061123": [ 3, 60, 8, @@ -5112,50 +5232,50 @@ ] }, { - "55061103": [ + "55061135": [ 12, 17, 32 ] }, { - "55061107": [ + "55061139": [ 2 ] }, { - "55061112": [ + "55061144": [ 145, 5 ] }, { - "55061115": [ + "55061147": [ 3, 3, 224 ] }, { - "55061119": [ + "55061151": [ 8 ] }, { - "55061124": [ + "55061156": [ 143, 162 ] }, { - "55061127": [ + "55061159": [ 36, 144, 69 ] }, { - "55061132": [ + "55061164": [ 60, 8, 128, @@ -5166,46 +5286,46 @@ ] }, { - "55061140": [ + "55061172": [ 133, 9 ] }, { - "55061143": [ + "55061175": [ 2, 17, 32 ] }, { - "55061147": [ + "55061179": [ 4, 52, 10 ] }, { - "55061151": [ + "55061183": [ 1, 165, 10 ] }, { - "55061156": [ + "55061188": [ 16 ] }, { - "55061159": [ + "55061191": [ 24, 52, 5 ] }, { - "55061163": [ + "55061195": [ 65, 60, 8, @@ -5220,45 +5340,45 @@ ] }, { - "55061175": [ + "55061207": [ 12, 17, 32 ] }, { - "55061179": [ + "55061211": [ 19 ] }, { - "55061184": [ + "55061216": [ 145, 5 ] }, { - "55061187": [ + "55061219": [ 1, 175, 164 ] }, { - "55061192": [ + "55061224": [ 175, 165 ] }, { - "55061195": [ + "55061227": [ 4, 175, 166 ] }, { - "55061199": [ + "55061231": [ 8, 39, 189, @@ -5269,7 +5389,7 @@ ] }, { - "55061207": [ + "55061239": [ 16, 60, 4, @@ -5284,21 +5404,21 @@ ] }, { - "55061219": [ + "55061251": [ 6, 145, 6 ] }, { - "55061223": [ + "55061255": [ 7, 141, 9 ] }, { - "55061227": [ + "55061259": [ 8, 1, 32, @@ -5307,52 +5427,52 @@ ] }, { - "55061236": [ + "55061268": [ 143, 191 ] }, { - "55061239": [ + "55061271": [ 16, 39, 189 ] }, { - "55061243": [ + "55061275": [ 24, 143, 164 ] }, { - "55061248": [ + "55061280": [ 143, 165 ] }, { - "55061251": [ + "55061283": [ 4, 143, 166 ] }, { - "55061255": [ + "55061287": [ 8, 3, 224 ] }, { - "55061259": [ + "55061291": [ 8 ] }, { - "55061264": [ + "55061296": [ 160, 230, 4, @@ -5366,69 +5486,69 @@ ] }, { - "55061275": [ + "55061307": [ 16, 175, 163 ] }, { - "55061279": [ + "55061311": [ 20, 175, 191 ] }, { - "55061283": [ + "55061315": [ 24, 12, 16, 10, - 209 + 217 ] }, { - "55061292": [ + "55061324": [ 143, 162 ] }, { - "55061295": [ + "55061327": [ 16, 143, 163 ] }, { - "55061299": [ + "55061331": [ 20, 143, 191 ] }, { - "55061303": [ + "55061335": [ 24, 39, 189 ] }, { - "55061307": [ + "55061339": [ 32, 3, 224 ] }, { - "55061311": [ + "55061343": [ 8 ] }, { - "55061316": [ + "55061348": [ 39, 189, 255, @@ -5438,7 +5558,7 @@ ] }, { - "55061323": [ + "55061355": [ 16, 60, 8, @@ -5452,24 +5572,24 @@ ] }, { - "55061336": [ + "55061368": [ 173 ] }, { - "55061339": [ + "55061371": [ 4, 173 ] }, { - "55061343": [ + "55061375": [ 8, 173 ] }, { - "55061347": [ + "55061379": [ 12, 60, 8, @@ -5488,12 +5608,12 @@ ] }, { - "55061363": [ + "55061395": [ 42 ] }, { - "55061369": [ + "55061401": [ 9, 15, 195, @@ -5504,7 +5624,7 @@ ] }, { - "55061377": [ + "55061409": [ 129, 32, 35, @@ -5515,47 +5635,47 @@ 12, 16, 11, - 11 + 19 ] }, { - "55061392": [ + "55061424": [ 4, 64 ] }, { - "55061395": [ + "55061427": [ 34 ] }, { - "55061400": [ + "55061432": [ 52, 68 ] }, { - "55061404": [ + "55061436": [ 12, 16, 11, - 114 + 132 ] }, { - "55061412": [ + "55061444": [ 16, 96 ] }, { - "55061415": [ + "55061447": [ 12 ] }, { - "55061420": [ + "55061452": [ 60, 8, 128, @@ -5569,61 +5689,61 @@ ] }, { - "55061432": [ + "55061464": [ 173, 9 ] }, { - "55061436": [ + "55061468": [ 140, 105 ] }, { - "55061439": [ + "55061471": [ 4, 173, 9 ] }, { - "55061443": [ + "55061475": [ 4, 140, 105 ] }, { - "55061447": [ + "55061479": [ 8, 173, 9 ] }, { - "55061451": [ + "55061483": [ 8, 52, 9 ] }, { - "55061455": [ + "55061487": [ 1, 173, 9 ] }, { - "55061459": [ + "55061491": [ 12, 144, 98 ] }, { - "55061464": [ + "55061496": [ 60, 8, 128, @@ -5641,31 +5761,31 @@ ] }, { - "55061480": [ + "55061512": [ 52, 1 ] }, { - "55061483": [ + "55061515": [ 10, 21, 65 ] }, { - "55061487": [ + "55061519": [ 6 ] }, { - "55061492": [ + "55061524": [ 149, 42 ] }, { - "55061495": [ + "55061527": [ 28, 49, 74, @@ -5674,7 +5794,7 @@ ] }, { - "55061501": [ + "55061533": [ 2, 89, 64, @@ -5687,7 +5807,7 @@ ] }, { - "55061511": [ + "55061543": [ 28, 129, 9, @@ -5698,12 +5818,12 @@ ] }, { - "55061519": [ + "55061551": [ 2 ] }, { - "55061525": [ + "55061557": [ 2, 16, 35, @@ -5716,26 +5836,26 @@ ] }, { - "55061535": [ + "55061567": [ 16, 39, 189 ] }, { - "55061539": [ + "55061571": [ 24, 3, 224 ] }, { - "55061543": [ + "55061575": [ 8 ] }, { - "55061548": [ + "55061580": [ 39, 189, 255, @@ -5745,16 +5865,16 @@ ] }, { - "55061555": [ + "55061587": [ 16, 12, 16, 11, - 25 + 33 ] }, { - "55061564": [ + "55061596": [ 36, 1, 255, @@ -5764,51 +5884,51 @@ ] }, { - "55061571": [ + "55061603": [ 4 ] }, { - "55061576": [ + "55061608": [ 52, 68 ] }, { - "55061580": [ + "55061612": [ 12, 16, 11, - 77 + 95 ] }, { - "55061588": [ + "55061620": [ 143, 191 ] }, { - "55061591": [ + "55061623": [ 16, 39, 189 ] }, { - "55061595": [ + "55061627": [ 24, 3, 224 ] }, { - "55061599": [ + "55061631": [ 8 ] }, { - "55061604": [ + "55061636": [ 60, 2, 128, @@ -5822,26 +5942,26 @@ ] }, { - "55061615": [ + "55061647": [ 164, 52, 8 ] }, { - "55061620": [ + "55061652": [ 52, 137 ] }, { - "55061624": [ + "55061656": [ 148, 170 ] }, { - "55061628": [ + "55061660": [ 52, 1, 1, @@ -5851,32 +5971,32 @@ ] }, { - "55061635": [ + "55061667": [ 8 ] }, { - "55061640": [ + "55061672": [ 52, 8 ] }, { - "55061643": [ + "55061675": [ 3, 148, 171 ] }, { - "55061647": [ + "55061679": [ 28, 49, 105 ] }, { - "55061651": [ + "55061683": [ 255, 49, 98, @@ -5884,7 +6004,7 @@ ] }, { - "55061657": [ + "55061689": [ 2, 18, 2, @@ -5892,55 +6012,55 @@ ] }, { - "55061663": [ + "55061695": [ 31 ] }, { - "55061668": [ + "55061700": [ 52, 1 ] }, { - "55061671": [ + "55061703": [ 10, 21, 65 ] }, { - "55061675": [ + "55061707": [ 14 ] }, { - "55061680": [ + "55061712": [ 148, 171 ] }, { - "55061683": [ + "55061715": [ 28, 52, 1 ] }, { - "55061687": [ + "55061719": [ 16, 20, 65 ] }, { - "55061691": [ + "55061723": [ 8 ] }, { - "55061696": [ + "55061728": [ 49, 108, 15, @@ -5954,12 +6074,12 @@ ] }, { - "55061707": [ + "55061739": [ 4 ] }, { - "55061712": [ + "55061744": [ 36, 2, 255, @@ -5968,80 +6088,80 @@ ] }, { - "55061719": [ - 21 + "55061751": [ + 31 ] }, { - "55061724": [ + "55061756": [ 52, 8 ] }, { - "55061727": [ + "55061759": [ 1, 49, 105 ] }, { - "55061731": [ + "55061763": [ 31, 52, 1 ] }, { - "55061735": [ + "55061767": [ 21, 21, 65 ] }, { - "55061739": [ + "55061771": [ 12 ] }, { - "55061744": [ + "55061776": [ 52, 1 ] }, { - "55061747": [ + "55061779": [ 62, 16, 129 ] }, { - "55061751": [ + "55061783": [ 7 ] }, { - "55061756": [ + "55061788": [ 52, 1 ] }, { - "55061759": [ + "55061791": [ 66, 16, 129 ] }, { - "55061763": [ + "55061795": [ 4 ] }, { - "55061768": [ + "55061800": [ 36, 2, 255, @@ -6050,46 +6170,98 @@ ] }, { - "55061775": [ - 7 + "55061807": [ + 17 ] }, { - "55061780": [ + "55061812": [ 52, 8 ] }, { - "55061783": [ + "55061815": [ 2, 144, 169, 1, + 65, + 52, + 1, + 1, + 26, + 21, + 65 + ] + }, + { + "55061827": [ + 8 + ] + }, + { + "55061832": [ + 52, + 1 + ] + }, + { + "55061835": [ + 62, + 20, 65 ] }, { - "55061789": [ + "55061839": [ + 5 + ] + }, + { + "55061844": [ + 52, + 8 + ] + }, + { + "55061847": [ + 4, + 60, + 11, + 128, + 18, + 37, + 107, + 165, + 208, + 129, + 98, + 19, + 151 + ] + }, + { + "55061861": [ 2, 18 ] }, { - "55061793": [ + "55061865": [ 72, 16, 37 ] }, { - "55061797": [ + "55061869": [ 2, 18 ] }, { - "55061801": [ + "55061873": [ 73, 16, 37, @@ -6098,12 +6270,12 @@ ] }, { - "55061807": [ + "55061879": [ 8 ] }, { - "55061812": [ + "55061884": [ 36, 2, 255, @@ -6118,13 +6290,13 @@ ] }, { - "55061824": [ + "55061896": [ 129, 9 ] }, { - "55061828": [ + "55061900": [ 60, 8, 128, @@ -6150,25 +6322,25 @@ ] }, { - "55061851": [ + "55061923": [ 4, 141, 9 ] }, { - "55061856": [ + "55061928": [ 17, 32 ] }, { - "55061859": [ + "55061931": [ 23 ] }, { - "55061865": [ + "55061937": [ 9, 82, 2, @@ -6178,7 +6350,7 @@ ] }, { - "55061873": [ + "55061945": [ 11, 90, 194, @@ -6188,7 +6360,7 @@ 255, 53, 140, - 3, + 7, 255, 1, 76, @@ -6201,13 +6373,13 @@ ] }, { - "55061896": [ + "55061968": [ 49, 34 ] }, { - "55061899": [ + "55061971": [ 255, 60, 8, @@ -6231,7 +6403,7 @@ ] }, { - "55061920": [ + "55061992": [ 60, 12, 128, @@ -6242,59 +6414,59 @@ ] }, { - "55061928": [ + "55062000": [ 129, 140 ] }, { - "55061932": [ + "55062004": [ 17, 108 ] }, { - "55061935": [ + "55062007": [ 4, 165, 32 ] }, { - "55061939": [ + "55062011": [ 2, 161, 43 ] }, { - "55061943": [ + "55062015": [ 2, 161, 34 ] }, { - "55061947": [ + "55062019": [ 3, 173, 36 ] }, { - "55061951": [ + "55062023": [ 4, 3, 224 ] }, { - "55061955": [ + "55062027": [ 8 ] }, { - "55061960": [ + "55062032": [ 39, 189, 255, @@ -6304,34 +6476,34 @@ ] }, { - "55061967": [ + "55062039": [ 16, 175, 177 ] }, { - "55061971": [ + "55062043": [ 20, 175, 191 ] }, { - "55061975": [ + "55062047": [ 24, 52, 130 ] }, { - "55061980": [ + "55062052": [ 52, 80 ] }, { - "55061984": [ + "55062056": [ 38, 8, 255, @@ -6340,12 +6512,12 @@ ] }, { - "55061991": [ + "55062063": [ 18 ] }, { - "55061996": [ + "55062068": [ 60, 17, 128, @@ -6359,19 +6531,19 @@ ] }, { - "55062007": [ + "55062079": [ 16, 1, 9 ] }, { - "55062011": [ + "55062083": [ 24 ] }, { - "55062014": [ + "55062086": [ 64, 18, 2, @@ -6391,25 +6563,25 @@ ] }, { - "55062032": [ + "55062104": [ 142, 40 ] }, { - "55062035": [ + "55062107": [ 12, 1 ] }, { - "55062038": [ + "55062110": [ 248, 9 ] }, { - "55062044": [ + "55062116": [ 20, 80, 255, @@ -6417,68 +6589,68 @@ ] }, { - "55062052": [ + "55062124": [ 54, 35 ] }, { - "55062056": [ + "55062128": [ 16 ] }, { - "55062059": [ + "55062131": [ 2 ] }, { - "55062064": [ + "55062136": [ 52, 3 ] }, { - "55062068": [ + "55062140": [ 143, 176 ] }, { - "55062071": [ + "55062143": [ 16, 143, 177 ] }, { - "55062075": [ + "55062147": [ 20, 143, 191 ] }, { - "55062079": [ + "55062151": [ 24, 39, 189 ] }, { - "55062083": [ + "55062155": [ 32, 3, 224 ] }, { - "55062087": [ + "55062159": [ 8 ] }, { - "55062092": [ + "55062164": [ 140, 136, 29, @@ -6488,18 +6660,18 @@ ] }, { - "55062099": [ + "55062171": [ 1 ] }, { - "55062101": [ + "55062173": [ 9, 78 ] }, { - "55062104": [ + "55062176": [ 1, 9, 16, @@ -6509,12 +6681,12 @@ ] }, { - "55062111": [ + "55062183": [ 36 ] }, { - "55062116": [ + "55062188": [ 148, 202, 2, @@ -6532,26 +6704,26 @@ ] }, { - "55062131": [ + "55062203": [ 164, 52, 1 ] }, { - "55062135": [ + "55062207": [ 61, 17, 129 ] }, { - "55062139": [ + "55062211": [ 10 ] }, { - "55062145": [ + "55062217": [ 138, 96, 33, @@ -6564,18 +6736,18 @@ ] }, { - "55062155": [ + "55062227": [ 25 ] }, { - "55062160": [ + "55062232": [ 52, 13 ] }, { - "55062163": [ + "55062235": [ 1, 161, 141, @@ -6586,24 +6758,24 @@ ] }, { - "55062171": [ + "55062243": [ 3, 16 ] }, { - "55062175": [ + "55062247": [ 9 ] }, { - "55062180": [ + "55062252": [ 52, 12 ] }, { - "55062183": [ + "55062255": [ 1, 1, 76, @@ -6622,12 +6794,12 @@ ] }, { - "55062199": [ + "55062271": [ 14 ] }, { - "55062204": [ + "55062276": [ 1, 172, 112, @@ -6665,7 +6837,7 @@ ] }, { - "55062240": [ + "55062312": [ 60, 9, 128, @@ -6679,24 +6851,24 @@ ] }, { - "55062252": [ + "55062324": [ 52, 2 ] }, { - "55062256": [ + "55062328": [ 3, 224 ] }, { - "55062259": [ + "55062331": [ 8 ] }, { - "55062264": [ + "55062336": [ 60, 8, 128, @@ -6710,17 +6882,17 @@ ] }, { - "55062276": [ + "55062348": [ 16 ] }, { - "55062279": [ + "55062351": [ 34 ] }, { - "55062284": [ + "55062356": [ 60, 8, 128, @@ -6734,23 +6906,23 @@ ] }, { - "55062296": [ + "55062368": [ 16 ] }, { - "55062299": [ + "55062371": [ 29 ] }, { - "55062304": [ + "55062376": [ 52, 2 ] }, { - "55062307": [ + "55062379": [ 255, 32, 232, @@ -6761,35 +6933,35 @@ ] }, { - "55062315": [ + "55062387": [ 97, 16 ] }, { - "55062319": [ + "55062391": [ 24 ] }, { - "55062324": [ + "55062396": [ 52, 8 ] }, { - "55062327": [ + "55062399": [ 100, 16 ] }, { - "55062331": [ + "55062403": [ 21 ] }, { - "55062336": [ + "55062408": [ 60, 1, 128, @@ -6807,7 +6979,7 @@ ] }, { - "55062351": [ + "55062423": [ 1, 160, 40, @@ -6818,18 +6990,18 @@ ] }, { - "55062359": [ + "55062431": [ 104, 16 ] }, { - "55062363": [ + "55062435": [ 13 ] }, { - "55062368": [ + "55062440": [ 60, 1, 128, @@ -6847,7 +7019,7 @@ ] }, { - "55062383": [ + "55062455": [ 4, 160, 40, @@ -6858,42 +7030,42 @@ ] }, { - "55062391": [ + "55062463": [ 106, 16 ] }, { - "55062395": [ + "55062467": [ 5 ] }, { - "55062400": [ + "55062472": [ 52, 5 ] }, { - "55062403": [ + "55062475": [ 3, 52, 8 ] }, { - "55062407": [ + "55062479": [ 107, 16 ] }, { - "55062411": [ + "55062483": [ 1 ] }, { - "55062416": [ + "55062488": [ 60, 9, 128, @@ -6915,20 +7087,20 @@ ] }, { - "55062436": [ + "55062508": [ 17, 136 ] }, { - "55062439": [ + "55062511": [ 11, 33, 41 ] }, { - "55062443": [ + "55062515": [ 1, 21, 42, @@ -6937,7 +7109,7 @@ ] }, { - "55062452": [ + "55062524": [ 60, 9, 128, @@ -6951,21 +7123,21 @@ ] }, { - "55062463": [ + "55062535": [ 1, 17, 42 ] }, { - "55062467": [ + "55062539": [ 4, 129, 44 ] }, { - "55062472": [ + "55062544": [ 21, 128, 255, @@ -6973,24 +7145,24 @@ ] }, { - "55062480": [ + "55062552": [ 161, 40 ] }, { - "55062484": [ + "55062556": [ 3, 224 ] }, { - "55062487": [ + "55062559": [ 8 ] }, { - "55062493": [ + "55062565": [ 96, 120, 33, @@ -7003,118 +7175,630 @@ ] }, { - "55062503": [ + "55062575": [ 128, 17, 192 ] }, { - "55062507": [ + "55062579": [ 3, 52, 3 ] }, { - "55062511": [ + "55062583": [ 5, 3, 224 ] }, { - "55062515": [ + "55062587": [ 8, 52, 2 ] }, { - "55062519": [ + "55062591": [ 2, 3, 224 ] }, { - "55062523": [ + "55062595": [ + 8 + ] + }, + { + "55062597": [ + 96, + 16, + 33, + 133, + 194 + ] + }, + { + "55062603": [ + 164, + 60, + 8, + 128, + 18, + 37, + 8, + 165, + 208, + 129, + 9, + 14, + 223, + 53, + 41 + ] + }, + { + "55062619": [ + 128, + 161, + 9, + 14, + 223, + 3, + 224 + ] + }, + { + "55062627": [ + 8 + ] + }, + { + "55062632": [ + 132, + 142 + ] + }, + { + "55062635": [ + 28, + 33, + 205, + 255, + 206, + 5, + 160 + ] + }, + { + "55062643": [ + 16, + 52, + 2 + ] + }, + { + "55062648": [ + 49, + 169 + ] + }, + { + "55062651": [ + 7, + 52, + 10 + ] + }, + { + "55062655": [ + 1, + 1, + 42, + 80, + 4 + ] + }, + { + "55062661": [ + 13, + 72, + 194, + 60, + 12, + 128, + 18, + 37, + 140, + 165, + 208, + 1, + 137, + 96, + 32, + 129, + 139, + 5, + 180, + 1, + 106, + 88, + 36, + 52, + 2 + ] + }, + { + "55062688": [ + 17, + 96 + ] + }, + { + "55062691": [ + 4 + ] + }, + { + "55062696": [ + 52, + 13 + ] + }, + { + "55062699": [ + 38, + 164, + 141 + ] + }, + { + "55062703": [ + 28, + 52, + 2 + ] + }, + { + "55062707": [ + 1, + 3, + 224 + ] + }, + { + "55062711": [ 8 ] }, { - "55062525": [ - 96, + "55062716": [ + 132, + 174 + ] + }, + { + "55062719": [ + 28, + 33, + 205, + 255, + 206, + 5, + 160 + ] + }, + { + "55062727": [ + 11, + 52, + 2 + ] + }, + { + "55062732": [ + 49, + 169 + ] + }, + { + "55062735": [ + 7, + 52, + 10 + ] + }, + { + "55062739": [ + 1, + 1, + 42, + 80, + 4 + ] + }, + { + "55062745": [ + 13, + 72, + 194, + 60, + 12, + 128, + 18, + 37, + 140, + 165, + 208, + 1, + 137, + 96, + 32, + 129, + 139, + 5, + 180, + 1, + 106, + 88, + 37, + 161, + 139, + 5, + 180, + 3, + 224 + ] + }, + { + "55062775": [ + 8 + ] + }, + { + "55062780": [ + 39, + 189, + 255, + 240, + 175, + 191 + ] + }, + { + "55062787": [ + 8, + 40, + 129 + ] + }, + { + "55062791": [ + 50, + 16, + 32 + ] + }, + { + "55062795": [ + 3 + ] + }, + { + "55062797": [ + 128, + 16, + 33, + 3, + 32, + 248, + 9 + ] + }, + { + "55062808": [ + 143, + 191 + ] + }, + { + "55062811": [ + 8, + 39, + 189 + ] + }, + { + "55062815": [ + 16, + 3, + 224 + ] + }, + { + "55062819": [ + 8 + ] + }, + { + "55062824": [ + 60, + 8, + 128, + 29, + 37, + 8, + 132, + 160, + 60, + 9, + 128, + 18, + 37, + 41, + 165, + 208, + 133, + 10 + ] + }, + { + "55062843": [ + 164, + 52, + 1 + ] + }, + { + "55062847": [ + 62, + 21, + 65 + ] + }, + { + "55062851": [ + 2, + 129, + 43, + 19, + 151, + 33, + 106 + ] + }, + { + "55062859": [ + 45, + 134, + 11 + ] + }, + { + "55062863": [ + 28, + 33, + 107 + ] + }, + { + "55062867": [ + 1, + 52, + 12 + ] + }, + { + "55062871": [ + 1, + 1, + 108, + 96, + 4, + 52, + 1 + ] + }, + { + "55062879": [ + 28, + 1, + 65 + ] + }, + { + "55062883": [ + 24 + ] + }, + { + "55062886": [ + 104, + 18, + 1, + 45, + 112, + 32, + 141, + 207 + ] + }, + { + "55062895": [ + 16, + 1, + 143, + 16, + 36, + 3, + 224 + ] + }, + { + "55062903": [ + 8 + ] + }, + { + "55062908": [ + 60, + 8, + 128, + 29, + 37, + 8, + 132, + 160, + 60, + 9, + 128, + 18, + 37, + 41, + 165, + 208, + 133, + 10 + ] + }, + { + "55062927": [ + 164, + 52, + 1 + ] + }, + { + "55062931": [ + 62, + 21, + 65 + ] + }, + { + "55062935": [ + 2, + 129, + 43, + 19, + 151, + 33, + 106 + ] + }, + { + "55062943": [ + 45, + 132, + 139 + ] + }, + { + "55062947": [ + 28, + 33, + 107 + ] + }, + { + "55062951": [ + 1, + 52, + 12 + ] + }, + { + "55062955": [ + 1, + 1, + 108, + 96, + 4, + 52, + 1 + ] + }, + { + "55062963": [ + 28, + 1, + 65 + ] + }, + { + "55062967": [ + 24 + ] + }, + { + "55062970": [ + 104, + 18, + 1, + 45, + 112, + 32, + 141, + 207 + ] + }, + { + "55062979": [ 16, - 33, - 133, - 194 - ] - }, - { - "55062531": [ - 164, - 60, - 8, - 128, - 18, + 1, + 143, + 120, 37, - 8, - 165, - 208, - 129, - 9, - 14, - 223, - 53, - 41 + 173, + 207 ] }, { - "55062547": [ - 128, - 161, - 9, - 14, - 223, + "55062987": [ + 16, 3, 224 ] }, { - "55062555": [ + "55062991": [ 8 ] }, { - "55062560": [ + "55062996": [ 175, 164 ] }, { - "55062563": [ + "55062999": [ 104, 175, 165 ] }, { - "55062567": [ + "55063003": [ 108, 175, 166 ] }, { - "55062571": [ + "55063007": [ 112, 175, 167 ] }, { - "55062575": [ + "55063011": [ 116, 39, 189, @@ -7125,14 +7809,14 @@ ] }, { - "55062583": [ + "55063019": [ 16, 175, 191 ] }, { - "55062587": [ + "55063023": [ 20, 60, 10, @@ -7151,18 +7835,18 @@ ] }, { - "55062603": [ + "55063039": [ 32, 21 ] }, { - "55062607": [ + "55063043": [ 31 ] }, { - "55062612": [ + "55063048": [ 60, 9, 128, @@ -7176,14 +7860,14 @@ ] }, { - "55062623": [ + "55063059": [ 255, 161, 42 ] }, { - "55062628": [ + "55063064": [ 60, 9, 128, @@ -7201,21 +7885,21 @@ ] }, { - "55062643": [ + "55063079": [ 3, 33, 74 ] }, { - "55062647": [ + "55063083": [ 1, 17, 76 ] }, { - "55062651": [ + "55063087": [ 20, 1, 42, @@ -7226,18 +7910,18 @@ ] }, { - "55062660": [ + "55063096": [ 17 ] }, { - "55062662": [ + "55063098": [ 255, 251 ] }, { - "55062668": [ + "55063104": [ 60, 9, 128, @@ -7251,7 +7935,7 @@ ] }, { - "55062680": [ + "55063116": [ 60, 9, 128, @@ -7265,14 +7949,14 @@ ] }, { - "55062691": [ + "55063127": [ 1, 165, 42 ] }, { - "55062696": [ + "55063132": [ 60, 9, 128, @@ -7282,7 +7966,7 @@ ] }, { - "55062703": [ + "55063139": [ 1, 173, 42, @@ -7307,59 +7991,59 @@ 12, 16, 10, - 209 + 217 ] }, { - "55062732": [ + "55063168": [ 143, 163 ] }, { - "55062735": [ + "55063171": [ 16, 143, 191 ] }, { - "55062739": [ + "55063175": [ 20, 39, 189 ] }, { - "55062743": [ + "55063179": [ 24, 143, 164 ] }, { - "55062747": [ + "55063183": [ 104, 143, 165 ] }, { - "55062751": [ + "55063187": [ 108, 143, 166 ] }, { - "55062755": [ + "55063191": [ 112, 143, 167 ] }, { - "55062759": [ + "55063195": [ 116, 132, 110, @@ -7370,192 +8054,192 @@ ] }, { - "55062767": [ + "55063203": [ 8 ] }, { - "55062772": [ + "55063208": [ 147, 25 ] }, { - "55062775": [ + "55063211": [ 116, 52, 1 ] }, { - "55062779": [ + "55063215": [ 255, 23, 33 ] }, { - "55062783": [ + "55063219": [ 2 ] }, { - "55062788": [ + "55063224": [ 52, 25 ] }, { - "55062791": [ + "55063227": [ 44, 3, 224 ] }, { - "55062795": [ + "55063231": [ 8, 167, 185 ] }, { - "55062799": [ + "55063235": [ 154, 147, 44 ] }, { - "55062803": [ + "55063239": [ 116, 52, 1 ] }, { - "55062807": [ + "55063243": [ 255, 21, 129 ] }, { - "55062811": [ + "55063247": [ 2 ] }, { - "55062816": [ + "55063252": [ 52, 12 ] }, { - "55062819": [ + "55063255": [ 44, 3, 224 ] }, { - "55062823": [ + "55063259": [ 8 ] }, { - "55062828": [ + "55063264": [ 145, 174 ] }, { - "55062831": [ + "55063267": [ 116, 52, 1 ] }, { - "55062835": [ + "55063271": [ 255, 21, 193 ] }, { - "55062839": [ + "55063275": [ 2 ] }, { - "55062844": [ + "55063280": [ 52, 14 ] }, { - "55062847": [ + "55063283": [ 44, 3, 224 ] }, { - "55062851": [ + "55063287": [ 8, 167, 174 ] }, { - "55062855": [ + "55063291": [ 154, 145, 207 ] }, { - "55062859": [ + "55063295": [ 116, 52, 1 ] }, { - "55062863": [ + "55063299": [ 255, 21, 225 ] }, { - "55062867": [ + "55063303": [ 2 ] }, { - "55062872": [ + "55063308": [ 52, 15 ] }, { - "55062875": [ + "55063311": [ 44, 3, 224 ] }, { - "55062879": [ + "55063315": [ 8, 167, 175 ] }, { - "55062883": [ + "55063319": [ 154, 60, 8, @@ -7570,69 +8254,69 @@ ] }, { - "55062895": [ + "55063331": [ 104, 173, 9 ] }, { - "55062900": [ + "55063336": [ 142, 9 ] }, { - "55062903": [ + "55063339": [ 108, 173, 9 ] }, { - "55062907": [ + "55063343": [ 4, 150, 9 ] }, { - "55062911": [ + "55063347": [ 112, 165, 9 ] }, { - "55062915": [ + "55063351": [ 8, 150, 9 ] }, { - "55062919": [ + "55063355": [ 156, 165, 9 ] }, { - "55062923": [ + "55063359": [ 10, 3, 224 ] }, { - "55062927": [ + "55063363": [ 8, 142, 14 ] }, { - "55062931": [ + "55063367": [ 4, 39, 189, @@ -7643,21 +8327,21 @@ ] }, { - "55062939": [ + "55063375": [ 16, 175, 177 ] }, { - "55062943": [ + "55063379": [ 20, 175, 191 ] }, { - "55062947": [ + "55063383": [ 24, 60, 16, @@ -7680,115 +8364,115 @@ ] }, { - "55062967": [ + "55063403": [ 4, 17 ] }, { - "55062971": [ + "55063407": [ 5 ] }, { - "55062976": [ + "55063412": [ 12, 16, 12, - 143 + 252 ] }, { - "55062984": [ + "55063420": [ 16 ] }, { - "55062987": [ + "55063423": [ 3 ] }, { - "55062992": [ + "55063428": [ 12, 16, - 12, - 162 + 13, + 15 ] }, { - "55063000": [ + "55063436": [ 12, 16, 12, - 130, + 239, 52, 4 ] }, { - "55063008": [ + "55063444": [ 12, 16, 12, - 130, + 239, 52, 4 ] }, { - "55063015": [ + "55063451": [ 1, 12, 16, 12, - 130, + 239, 52, 4 ] }, { - "55063023": [ + "55063459": [ 2, 143, 176 ] }, { - "55063027": [ + "55063463": [ 16, 143, 177 ] }, { - "55063031": [ + "55063467": [ 20, 143, 191 ] }, { - "55063035": [ + "55063471": [ 24, 39, 189 ] }, { - "55063039": [ + "55063475": [ 32, 3, 224 ] }, { - "55063043": [ + "55063479": [ 8 ] }, { - "55063048": [ + "55063484": [ 2, 4, 64, @@ -7798,26 +8482,26 @@ ] }, { - "55063055": [ + "55063491": [ 108, 52, 1 ] }, { - "55063059": [ + "55063495": [ 255, 17, 33 ] }, { - "55063063": [ + "55063499": [ 7 ] }, { - "55063068": [ + "55063504": [ 2, 9, 72, @@ -7827,44 +8511,44 @@ ] }, { - "55063075": [ + "55063511": [ 116, 52, 1 ] }, { - "55063079": [ + "55063515": [ 44, 17, 33 ] }, { - "55063083": [ + "55063519": [ 2 ] }, { - "55063088": [ + "55063524": [ 161, 9 ] }, { - "55063091": [ + "55063527": [ 105, 3, 224 ] }, { - "55063095": [ + "55063531": [ 8 ] }, { - "55063100": [ + "55063536": [ 39, 189, 255, @@ -7874,54 +8558,54 @@ ] }, { - "55063107": [ + "55063543": [ 16, 142, 40 ] }, { - "55063112": [ + "55063548": [ 174, 8 ] }, { - "55063115": [ + "55063551": [ 64, 142, 40 ] }, { - "55063119": [ + "55063555": [ 4, 174, 8 ] }, { - "55063123": [ + "55063559": [ 68, 150, 40 ] }, { - "55063127": [ + "55063563": [ 8, 166, 8 ] }, { - "55063131": [ + "55063567": [ 72, 162 ] }, { - "55063134": [ + "55063570": [ 15, 51, 146, @@ -7929,132 +8613,132 @@ ] }, { - "55063139": [ + "55063575": [ 74, 52, 1 ] }, { - "55063143": [ + "55063579": [ 255, 21, 1 ] }, { - "55063147": [ + "55063583": [ 3 ] }, { - "55063152": [ + "55063588": [ 12, 16, - 12, - 176 + 13, + 29 ] }, { - "55063160": [ + "55063596": [ 143, 191 ] }, { - "55063163": [ + "55063599": [ 16, 39, 189 ] }, { - "55063167": [ + "55063603": [ 24, 3, 224 ] }, { - "55063171": [ + "55063607": [ 8 ] }, { - "55063176": [ + "55063612": [ 142, 8 ] }, { - "55063179": [ + "55063615": [ 64, 174, 8 ] }, { - "55063183": [ + "55063619": [ 104, 142, 8 ] }, { - "55063187": [ + "55063623": [ 68, 174, 8 ] }, { - "55063191": [ + "55063627": [ 108, 150, 8 ] }, { - "55063195": [ + "55063631": [ 72, 166, 8 ] }, { - "55063199": [ + "55063635": [ 112, 146, 8 ] }, { - "55063203": [ + "55063639": [ 104, 52, 1 ] }, { - "55063207": [ + "55063643": [ 255, 21, 1 ] }, { - "55063211": [ + "55063647": [ 3 ] }, { - "55063216": [ + "55063652": [ 52, 8 ] }, { - "55063219": [ + "55063655": [ 1, 162, 8, @@ -8065,12 +8749,12 @@ ] }, { - "55063227": [ + "55063663": [ 8 ] }, { - "55063232": [ + "55063668": [ 39, 189, 255, @@ -8080,38 +8764,38 @@ ] }, { - "55063239": [ + "55063675": [ 16, 150, 8 ] }, { - "55063243": [ + "55063679": [ 156, 49, 8 ] }, { - "55063247": [ + "55063683": [ 64, 17 ] }, { - "55063251": [ + "55063687": [ 5 ] }, { - "55063256": [ + "55063692": [ 150, 8 ] }, { - "55063259": [ + "55063695": [ 112, 49, 8, @@ -8122,114 +8806,114 @@ ] }, { - "55063267": [ + "55063703": [ 48, 166, 8 ] }, { - "55063271": [ + "55063707": [ 112, 146, 40 ] }, { - "55063275": [ + "55063711": [ 1, 162, 8 ] }, { - "55063279": [ + "55063715": [ 105, 150, 40 ] }, { - "55063283": [ + "55063719": [ 2, 166, 8 ] }, { - "55063287": [ + "55063723": [ 106, 142, 40 ] }, { - "55063291": [ + "55063727": [ 4, 174, 8 ] }, { - "55063295": [ + "55063731": [ 108, 12, 16, - 12, - 202, + 13, + 55, 52, 4 ] }, { - "55063304": [ + "55063740": [ 12, 16, - 12, - 202, + 13, + 55, 52, 4 ] }, { - "55063311": [ + "55063747": [ 1, 12, 16, - 12, - 202, + 13, + 55, 52, 4 ] }, { - "55063319": [ + "55063755": [ 2, 143, 191 ] }, { - "55063323": [ + "55063759": [ 16, 39, 189 ] }, { - "55063327": [ + "55063763": [ 24, 3, 224 ] }, { - "55063331": [ + "55063767": [ 8 ] }, { - "55063336": [ + "55063772": [ 2, 4, 64, @@ -8240,33 +8924,33 @@ 64, 37, 41, - 51, - 212, + 53, + 136, 145, 10 ] }, { - "55063351": [ + "55063787": [ 108, 52, 1 ] }, { - "55063355": [ + "55063791": [ 255, 17, 65 ] }, { - "55063359": [ + "55063795": [ 5 ] }, { - "55063364": [ + "55063800": [ 1, 42, 72, @@ -8276,50 +8960,50 @@ ] }, { - "55063372": [ + "55063808": [ 21, 32 ] }, { - "55063375": [ + "55063811": [ 28 ] }, { - "55063380": [ + "55063816": [ 60, 9, 128, 64, 37, 41, - 51, - 199, + 53, + 123, 37, 41 ] }, { - "55063391": [ + "55063827": [ 1, 145, 42 ] }, { - "55063396": [ + "55063832": [ 17, 64 ] }, { - "55063399": [ + "55063835": [ 19 ] }, { - "55063404": [ + "55063840": [ 2, 10, 88, @@ -8329,14 +9013,14 @@ ] }, { - "55063411": [ + "55063847": [ 116, 52, 1 ] }, { - "55063415": [ + "55063851": [ 255, 17, 97, @@ -8345,13 +9029,13 @@ ] }, { - "55063424": [ + "55063860": [ 146, 12 ] }, { - "55063427": [ + "55063863": [ 108, 17, 138, @@ -8360,13 +9044,13 @@ ] }, { - "55063436": [ + "55063872": [ 146, 12 ] }, { - "55063439": [ + "55063875": [ 109, 17, 138, @@ -8375,13 +9059,13 @@ ] }, { - "55063448": [ + "55063884": [ 146, 12 ] }, { - "55063451": [ + "55063887": [ 110, 17, 138, @@ -8390,63 +9074,63 @@ ] }, { - "55063460": [ + "55063896": [ 161, 11 ] }, { - "55063463": [ + "55063899": [ 105, 161, 10 ] }, { - "55063467": [ + "55063903": [ 108, 16 ] }, { - "55063471": [ + "55063907": [ 4 ] }, { - "55063476": [ + "55063912": [ 52, 9 ] }, { - "55063479": [ + "55063915": [ 255, 161, 9 ] }, { - "55063483": [ + "55063919": [ 105, 161, 9 ] }, { - "55063487": [ + "55063923": [ 108, 3, 224 ] }, { - "55063491": [ + "55063927": [ 8 ] }, { - "55063496": [ + "55063932": [ 7, 9, 15, @@ -8458,7 +9142,7 @@ ] }, { - "55063509": [ + "55063945": [ 1, 1, 1, @@ -8467,7 +9151,7 @@ ] }, { - "55063515": [ + "55063951": [ 1, 1, 1, @@ -8476,12 +9160,12 @@ ] }, { - "55063521": [ + "55063957": [ 1 ] }, { - "55063523": [ + "55063959": [ 1, 1, 1, @@ -8493,7 +9177,7 @@ ] }, { - "55063533": [ + "55063969": [ 51, 8, 33, @@ -8502,14 +9186,14 @@ ] }, { - "55063539": [ + "55063975": [ 71, 21, 234 ] }, { - "55063543": [ + "55063979": [ 14, 60, 2, @@ -8524,12 +9208,12 @@ ] }, { - "55063555": [ + "55063991": [ 164 ] }, { - "55063557": [ + "55063993": [ 15, 122, 3, @@ -8538,7 +9222,7 @@ ] }, { - "55063563": [ + "55063999": [ 5, 52, 2, @@ -8549,24 +9233,24 @@ ] }, { - "55063571": [ + "55064007": [ 7 ] }, { - "55063576": [ + "55064012": [ 36, 25 ] }, { - "55063579": [ + "55064015": [ 3, 16 ] }, { - "55063583": [ + "55064019": [ 4, 52, 2, @@ -8577,30 +9261,30 @@ ] }, { - "55063591": [ + "55064027": [ 2 ] }, { - "55063596": [ + "55064032": [ 36, 25 ] }, { - "55063599": [ + "55064035": [ 3, 3, 224 ] }, { - "55063603": [ + "55064039": [ 8 ] }, { - "55063608": [ + "55064044": [ 141, 173, 138, @@ -8611,23 +9295,23 @@ ] }, { - "55063616": [ + "55064052": [ 16, 77 ] }, { - "55063619": [ + "55064055": [ 2 ] }, { - "55063624": [ + "55064060": [ 16 ] }, { - "55063627": [ + "55064063": [ 9, 60, 15, @@ -8646,31 +9330,31 @@ ] }, { - "55063643": [ + "55064079": [ 1, 16, 64 ] }, { - "55063647": [ + "55064083": [ 2 ] }, { - "55063652": [ + "55064088": [ 16 ] }, { - "55063655": [ + "55064091": [ 2, 52, 2 ] }, { - "55063659": [ + "55064095": [ 1, 161, 226, @@ -8681,12 +9365,12 @@ ] }, { - "55063667": [ + "55064103": [ 8 ] }, { - "55063673": [ + "55064109": [ 51, 8, 33, @@ -8703,12 +9387,12 @@ ] }, { - "55063687": [ + "55064123": [ 164 ] }, { - "55063689": [ + "55064125": [ 15, 122, 3, @@ -8717,7 +9401,7 @@ ] }, { - "55063695": [ + "55064131": [ 5, 52, 2, @@ -8728,24 +9412,24 @@ ] }, { - "55063703": [ + "55064139": [ 7 ] }, { - "55063708": [ + "55064144": [ 36, 25 ] }, { - "55063711": [ + "55064147": [ 3, 16 ] }, { - "55063715": [ + "55064151": [ 4, 52, 2, @@ -8756,59 +9440,59 @@ ] }, { - "55063723": [ + "55064159": [ 2 ] }, { - "55063728": [ + "55064164": [ 36, 25 ] }, { - "55063731": [ + "55064167": [ 3, 3, 224 ] }, { - "55063735": [ + "55064171": [ 8 ] }, { - "55063740": [ + "55064176": [ 52, 1 ] }, { - "55063743": [ + "55064179": [ 24, 20, 129 ] }, { - "55063747": [ + "55064183": [ 17 ] }, { - "55063752": [ + "55064188": [ 20, 64 ] }, { - "55063755": [ + "55064191": [ 15 ] }, { - "55063760": [ + "55064196": [ 60, 10, 128, @@ -8822,96 +9506,96 @@ ] }, { - "55063771": [ + "55064207": [ 166, 49, 8 ] }, { - "55063775": [ + "55064211": [ 32, 17 ] }, { - "55063779": [ + "55064215": [ 9, 52, 2 ] }, { - "55063784": [ + "55064220": [ 52, 2 ] }, { - "55063787": [ + "55064223": [ 1, 129, 72 ] }, { - "55063791": [ + "55064227": [ 123, 52, 9 ] }, { - "55063795": [ + "55064231": [ 7, 17, 9 ] }, { - "55063799": [ + "55064235": [ 4, 52, 10 ] }, { - "55063803": [ + "55064239": [ 8, 17, 10 ] }, { - "55063807": [ + "55064243": [ 2 ] }, { - "55063812": [ + "55064248": [ 52, 2 ] }, { - "55063816": [ + "55064252": [ 3, 224 ] }, { - "55063819": [ + "55064255": [ 8 ] }, { - "55063824": [ + "55064260": [ 162, 37 ] }, { - "55063827": [ + "55064263": [ 33, 60, 16, @@ -8926,25 +9610,25 @@ ] }, { - "55063839": [ + "55064275": [ 4, 142, 10 ] }, { - "55063844": [ + "55064280": [ 17, 64 ] }, { - "55063847": [ + "55064283": [ 11 ] }, { - "55063853": [ + "55064289": [ 10, 124, 2, @@ -8958,7 +9642,7 @@ ] }, { - "55063865": [ + "55064301": [ 24, 194, 2, @@ -8966,21 +9650,21 @@ ] }, { - "55063871": [ + "55064307": [ 3, 49, 89 ] }, { - "55063875": [ + "55064311": [ 255, 129, 234 ] }, { - "55063880": [ + "55064316": [ 3, 42, 200, @@ -8988,21 +9672,20 @@ 8, 16, 13, - 71, + 180, 161, 249 ] }, { - "55063892": [ + "55064328": [ 3, 224 ] }, { - "55063895": [ + "55064331": [ 8 ] } -] ->>>>>>> Dev +] \ No newline at end of file diff --git a/version.py b/version.py index 5d4528907..beb95bb0f 100644 --- a/version.py +++ b/version.py @@ -1,5 +1 @@ -<<<<<<< HEAD -__version__ = '2.16.3 f.LUM' -======= -__version__ = '2.15.46 f.LUM' ->>>>>>> Dev +__version__ = '2.16.5 f.LUM' From e5e9cb3e92e3df0e6c1ca76da55da6dac175ef82 Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 5 Sep 2018 03:51:35 -0400 Subject: [PATCH 395/755] Disable MQ option (not implemented yet) --- Settings.py | 3 ++- version.py | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Settings.py b/Settings.py index c4b2c25a3..134ecd622 100644 --- a/Settings.py +++ b/Settings.py @@ -909,7 +909,8 @@ def parse_custom_navi_color(s): 'Mixed': Each dungeon will have a random chance to be in either form. - ''' + ''', + 'dependency': lambda guivar: False, }), Setting_Info('logic_skulltulas', int, 3, True, { diff --git a/version.py b/version.py index beb95bb0f..706b280e6 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.16.5 f.LUM' +__version__ = '2.16.6 f.LUM' From b1c9832919e923b5036789bc0cb57523d35b4521 Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 5 Sep 2018 06:02:23 -0400 Subject: [PATCH 396/755] Fix missing grotto entrances and hints --- EntranceShuffle.py | 9 +++- Hints.py | 2 + ItemList.py | 6 +-- Regions.py | 14 +++--- Rules.py | 8 ++-- Settings.py | 106 ++++++++++++++++++++++----------------------- version.py | 2 +- 7 files changed, 78 insertions(+), 69 deletions(-) diff --git a/EntranceShuffle.py b/EntranceShuffle.py index 6907e1b1a..a6e9bce01 100644 --- a/EntranceShuffle.py +++ b/EntranceShuffle.py @@ -328,7 +328,14 @@ def connect_doors(world, doors, targets): ('Castle Storms Grotto', 'Castle Storms Grotto'), ('Zora River Plateau Open Grotto', 'Zora River Plateau Open Grotto'), ('Zora River Plateau Bombable Grotto', 'Zora River Plateau Bombable Grotto'), - ('Lake Hylia Grotto', 'Lake Hylia Grotto') + ('Lake Hylia Grotto', 'Lake Hylia Grotto'), + ('Meadow Storms Grotto', 'Meadow Storms Grotto'), + ('Gerudo Valley Storms Grotto','Gerudo Valley Storms Grotto'), + ('Desert Colossus Grotto','Desert Colossus Grotto'), + ('Goron City Grotto', 'Goron City Grotto'), + ('DMC Hammer Grotto', 'DMC Hammer Grotto'), + ('Zora River Storms Grotto', 'Zora River Storms Grotto'), + ('Zora Shop Adult Access', 'Zora Shop'), ] # non shuffled dungeons diff --git a/Hints.py b/Hints.py index 7455b8992..7782c821c 100644 --- a/Hints.py +++ b/Hints.py @@ -124,6 +124,7 @@ def buildGossipHints(world, messages): # Choose a randome dungeon location that is a non-dungeon item locationWorld = random.choice([location for region in dungeon.regions for location in world.get_region(region).locations if location.item.type != 'Event' and \ + location.item.type != 'Shop' and \ not location.event and \ not isDungeonItem(location.item) and \ (world.tokensanity != 'off' or location.item.name != 'Gold Skulltulla Token') and\ @@ -140,6 +141,7 @@ def buildGossipHints(world, messages): not locationWorld.name in alwaysLocations and \ not locationWorld.name in sometimesLocations and \ locationWorld.item.type != 'Event' and \ + locationWorld.item.type != 'Shop' and \ not locationWorld.event and \ (world.tokensanity == 'all' or locationWorld.item.name != 'Gold Skulltulla Token') and \ not locationWorld.parent_region.dungeon] diff --git a/ItemList.py b/ItemList.py index a3d6d70e1..92705c1fa 100644 --- a/ItemList.py +++ b/ItemList.py @@ -29,7 +29,7 @@ + ['Hylian Shield'] * 2 + ['Progressive Strength Upgrade'] * 3 + ['Progressive Scale'] * 2 - + ['Recovery Heart'] * 11 + + ['Recovery Heart'] * 9 + ['Bow'] * 3 + ['Slingshot'] * 3 + ['Bomb Bag'] * 3 @@ -89,13 +89,13 @@ normal_rupees =( ['Rupees (5)'] * 16 - + ['Rupees (20)'] * 6 + + ['Rupees (20)'] * 5 + ['Rupees (50)'] * 7 + ['Rupees (200)'] * 6) shopsanity_rupees = ( ['Rupees (5)'] * 5 - + ['Rupees (20)'] * 11 + + ['Rupees (20)'] * 10 + ['Rupees (50)'] * 10 + ['Rupees (200)'] * 8 + ['Progressive Wallet']) diff --git a/Regions.py b/Regions.py index a8b79e6f2..6b522fdeb 100644 --- a/Regions.py +++ b/Regions.py @@ -49,7 +49,7 @@ def create_regions(world): create_ow_region( 'Sacred Forest Meadow', ['Song from Saria'], - ['Meadow Gate Exit', 'Meadow Fairy Grotto', 'Meadow Song of Storms Grotto']), + ['Meadow Gate Exit', 'Meadow Fairy Grotto', 'Meadow Storms Grotto']), create_ow_region('Lost Woods Bridge', ['Gift from Saria'], ['Kokiri Forest Entrance', 'Forest Exit']), create_ow_region('Hyrule Field', ['Ocarina of Time', 'Song from Ocarina of Time'], @@ -85,7 +85,7 @@ def create_regions(world): create_ow_region( 'Gerudo Valley Far Side', ['Gerudo Valley Hammer Rocks Chest', 'GS Gerudo Valley Behind Tent', 'GS Gerudo Valley Pillar'], - ['Fortress Entrance', 'Gerudo Valley Grotto']), + ['Fortress Entrance', 'Gerudo Valley Storms Grotto']), create_ow_region( 'Gerudo Fortress', ['Gerudo Fortress Rooftop Chest', 'Horseback Archery 1000 Points', 'Horseback Archery 1500 Points', @@ -370,7 +370,7 @@ def create_regions(world): 'Zora River Shared', ['Zora River Lower Freestanding PoH', 'Zora River Upper Freestanding PoH'], ['Zora River Downstream', 'Zora River Plateau Open Grotto', 'Zora River Plateau Bombable Grotto', - 'Zora River Dive Warp', 'Zora River Song of Storms Grotto']), + 'Zora River Dive Warp', 'Zora River Storms Grotto']), create_ow_region( 'Zoras Domain', ['Diving Minigame', 'Zoras Domain Torch Run', 'King Zora Moves'], @@ -382,7 +382,7 @@ def create_regions(world): create_ow_region( 'Zoras Domain Frozen', ['King Zora Thawed', 'GS Zora\'s Domain Frozen Waterfall'], - ['Zoras Fountain Adult Access']), + ['Zoras Fountain Adult Access', 'Zora Shop Adult Access']), create_ow_region( 'Outside Ice Cavern', ['Zoras Fountain Iceberg Freestanding PoH', 'Zoras Fountain Bottom Freestanding PoH', @@ -525,7 +525,7 @@ def create_regions(world): create_grotto_region('Lost Woods Sales Grotto', ['LW Grotto Deku Scrub Arrows', 'LW Grotto Deku Scrub Deku Nut Upgrade']), create_grotto_region('Meadow Fairy Grotto'), - create_grotto_region('Meadow Song of Storms Grotto', + create_grotto_region('Meadow Storms Grotto', ['SFM Grotto Deku Scrub Red Potion', 'SFM Grotto Deku Scrub Green Potion']), create_grotto_region('Front of Meadow Grotto', ['Wolfos Grotto Chest']), create_grotto_region('Lon Lon Grotto', @@ -550,13 +550,13 @@ def create_regions(world): ['DMC Grotto Deku Scrub Deku Nuts', 'DMC Grotto Deku Scrub Bombs', 'DMC Grotto Deku Scrub Arrows']), create_grotto_region('Zora River Plateau Open Grotto', ['Zora River Plateau Open Grotto Chest']), create_grotto_region('Zora River Plateau Bombable Grotto'), - create_grotto_region('Zora River Song of Storms Grotto', + create_grotto_region('Zora River Storms Grotto', ['ZR Grotto Deku Scrub Red Potion', 'ZR Grotto Deku Scrub Green Potion']), create_grotto_region('Lake Hylia Grotto', ['LH Grotto Deku Scrub Deku Nuts', 'LH Grotto Deku Scrub Bombs', 'LH Grotto Deku Scrub Arrows']), create_grotto_region('Desert Colossus Grotto', ['Desert Grotto Deku Scrub Red Potion', 'Desert Grotto Deku Scrub Green Potion']), - create_grotto_region('Gerudo Valley Grotto', + create_grotto_region('Gerudo Valley Storms Grotto', ['Valley Grotto Deku Scrub Red Potion', 'Valley Grotto Deku Scrub Green Potion']), ] diff --git a/Rules.py b/Rules.py index 4e315a267..7164bbb16 100644 --- a/Rules.py +++ b/Rules.py @@ -185,7 +185,7 @@ def global_rules(world): set_rule(world.get_entrance('Goron Shop'), lambda state: state.has_explosives() or state.has('Progressive Strength') or (state.has_bow() and state.is_adult()) or ((state.has('Zeldas Letter') or world.open_kakariko) and ((state.has('Dins Fire') and state.has('Magic Meter')) or (state.can_play('Zeldas Lullaby') and state.has_sticks())))) set_rule(world.get_entrance('Lake Warp Pad'), lambda state: state.can_play('Serenade of Water') and state.can_leave_forest()) set_rule(world.get_location('King Zora Thawed'), lambda state: state.has_blue_fire()) - set_rule(world.get_entrance('Zora Shop'), lambda state: state.has_blue_fire()) + set_rule(world.get_entrance('Zora Shop Adult Access'), lambda state: state.has_blue_fire()) set_rule(world.get_location('Zoras Fountain Bottom Freestanding PoH'), lambda state: state.has('Iron Boots') and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic())) set_rule(world.get_entrance('Water Temple Entrance'), lambda state: state.is_adult() and state.has('Iron Boots') and state.has('Progressive Hookshot') and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic())) set_rule(world.get_location('Sheik in Kakariko'), lambda state: state.is_adult() and state.has('Forest Medallion') and state.has('Fire Medallion') and state.has('Water Medallion')) @@ -282,8 +282,8 @@ def global_rules(world): set_rule(world.get_location('GS Death Mountain Crater Crate'), lambda state: state.can_child_attack()) set_rule(world.get_location('GS Zora River Tree'), lambda state: state.can_child_attack()) set_rule(world.get_location('HF Grotto Deku Scrub Piece of Heart'), lambda state: state.can_stun_deku()) - set_rule(world.get_entrance('Zora River Song of Storms Grotto'), lambda state: state.can_play('Song of Storms') and state.can_stun_deku()) - set_rule(world.get_entrance('Meadow Song of Storms Grotto'), lambda state: state.can_play('Song of Storms') and ((state.can_child_attack() or state.has_nuts() or state.has('Buy Deku Shield')) or (state.is_adult() and (state.can_play('Minuet of Forest') or state.can_play('Sarias Song'))))) + set_rule(world.get_entrance('Zora River Storms Grotto'), lambda state: state.can_play('Song of Storms') and state.can_stun_deku()) + set_rule(world.get_entrance('Meadow Storms Grotto'), lambda state: state.can_play('Song of Storms') and ((state.can_child_attack() or state.has_nuts() or state.has('Buy Deku Shield')) or (state.is_adult() and (state.can_play('Minuet of Forest') or state.can_play('Sarias Song'))))) set_rule(world.get_entrance('Lake Hylia Grotto'), lambda state: state.is_adult()) set_rule(world.get_location('LW Deku Scrub Deku Nuts'), lambda state: state.can_stun_deku()) set_rule(world.get_location('LW Deku Scrub Deku Sticks'), lambda state: state.can_stun_deku()) @@ -293,7 +293,7 @@ def global_rules(world): set_rule(world.get_entrance('DMC Hammer Grotto'), lambda state: state.has('Hammer') and state.is_adult()) set_rule(world.get_entrance('Goron City Grotto'), lambda state: state.is_adult() and state.has('Progressive Hookshot', 2) and (state.can_play('Song of Time') or (world.difficulty != 'ohko' and state.has_GoronTunic()))) set_rule(world.get_entrance('Lon Lon Grotto'), lambda state: state.can_child_attack() or state.has_nuts() or state.has('Buy Deku Shield')) - set_rule(world.get_entrance('Gerudo Valley Grotto'), lambda state: state.can_play('Song of Storms')) + set_rule(world.get_entrance('Gerudo Valley Storms Grotto'), lambda state: state.can_play('Song of Storms')) for location in world.get_locations(): diff --git a/Settings.py b/Settings.py index 134ecd622..4e2a3d32d 100644 --- a/Settings.py +++ b/Settings.py @@ -747,6 +747,58 @@ def parse_custom_navi_color(s): are all reduced to 10 Rupees. ''' }), + Setting_Info('shopsanity', str, 2, True, + { + 'default': 'off', + 'const': 'off', + 'nargs': '?', + 'choices': ['off', '0', '1', '2', '3', '4', 'random'], + 'help': '''\ + Shop contents are randomized. There are Two items + in every shop that are one time buy and are not + refill items. + off: Normal Shops* + 0-4: Shop contents are shuffled and N non-shop + items are added to every shop. So more + possible item locations. + random: Shop contents are shuffles and each shop + will have a random number of non-shop items + ''' + }, + { + 'text': 'Shopsanity', + 'group': 'logic', + 'widget': 'Combobox', + 'default': 'Off', + 'options': { + 'Off': 'off', + 'Shuffled Shops (0 Items)': '0', + 'Shuffled Shops (1 Items)': '1', + 'Shuffled Shops (2 Items)': '2', + 'Shuffled Shops (3 Items)': '3', + 'Shuffled Shops (4 Items)': '4', + 'Shuffled Shops (Random)': 'random', + }, + 'tooltip':'''\ + Shop contents are randomized. + + (X Items): Shops have X random + non-shop items in every. They + will always be on the left side. + This means every shop will have + more possible item locations. + So +2 means 2 items per shop. + + (Random): Each shop will have + a random number of non-shop + items. Each shop can have a + maximum of 4 items. + + Logic guarantees you have access + to a shop item refill to be able + to use the item. + ''' + }), Setting_Info('shuffle_dungeon_items', str, 2, True, { 'default': 'mapcompass', @@ -824,59 +876,7 @@ def parse_custom_navi_color(s): 'All Tokens': Effectively adds 100 new locations for items to appear. ''' - }), - Setting_Info('shopsanity', str, 2, True, - { - 'default': 'off', - 'const': 'off', - 'nargs': '?', - 'choices': ['off', '0', '1', '2', '3', '4', 'random'], - 'help': '''\ - Shop contents are randomized. There are Two items - in every shop that are one time buy and are not - refill items. - off: Normal Shops* - 0-4: Shop contents are shuffled and N non-shop - items are added to every shop. So more - possible item locations. - random: Shop contents are shuffles and each shop - will have a random number of non-shop items - ''' - }, - { - 'text': 'Shopsanity', - 'group': 'logic', - 'widget': 'Combobox', - 'default': 'Off', - 'options': { - 'Off': 'off', - 'Shuffled Shops (0 Items)': '0', - 'Shuffled Shops (1 Items)': '1', - 'Shuffled Shops (2 Items)': '2', - 'Shuffled Shops (3 Items)': '3', - 'Shuffled Shops (4 Items)': '4', - 'Shuffled Shops (Random)': 'random', - }, - 'tooltip':'''\ - Shop contents are randomized. - - (X Items): Shops have X random - non-shop items in every. They - will always be on the left side. - This means every shop will have - more possible item locations. - So +2 means 2 items per shop. - - (Random): Each shop will have - a random number of non-shop - items. Each shop can have a - maximum of 4 items. - - Logic guarantees you have access - to a shop item refill to be able - to use the item. - ''' - }), + }), Setting_Info('quest', str, 2, True, { 'default': 'vanilla', diff --git a/version.py b/version.py index 706b280e6..e5831e38f 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.16.6 f.LUM' +__version__ = '2.16.7 f.LUM' From 117223fef216689d34ecdf011a6878ddbeb17bad Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 5 Sep 2018 06:03:06 -0400 Subject: [PATCH 397/755] Add shop item rules during fill --- BaseClasses.py | 52 ++++++++++++++++++++++---------------------------- Fill.py | 4 ++++ Rules.py | 44 +++++++++++++++++++++++++++++++++++++++--- version.py | 2 +- 4 files changed, 69 insertions(+), 33 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 8c9ef2e9c..3d6adcc93 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -56,7 +56,7 @@ def __init__(self, settings): 'SpT': False, 'ShT': False, 'GC': False -} + } self.can_take_damage = True self.spoiler = Spoiler(self) @@ -71,7 +71,7 @@ def copy(self): ret.id = self.id from Regions import create_regions from Dungeons import create_dungeons - from Rules import set_rules + from Rules import set_rules, set_shop_rules create_regions(ret) create_dungeons(ret) set_rules(ret) @@ -100,6 +100,8 @@ def copy(self): # copy progress items in state ret.state.prog_items = copy.copy(self.state.prog_items) + set_shop_rules(ret) + return ret def initialize_regions(self): @@ -369,7 +371,7 @@ def has_blue_fire(self): return self.has_bottle() and \ (self.can_reach('Ice Cavern') or self.can_reach('Ganons Castle Water Trial') - or (self.has('Buy Blue Fire') and self.has('Progressive Wallet', 2))) + or self.has('Buy Blue Fire')) def has_ocarina(self): return (self.has('Ocarina') or self.has("Fairy Ocarina") or self.has("Ocarina of Time")) @@ -380,7 +382,7 @@ def can_play(self, song): def can_buy_bombchus(self): return self.has('Buy Bombchu (5)') or \ self.has('Buy Bombchu (10)') or \ - (self.has('Buy Bombchu (20)') and self.has('Progressive Wallet')) or \ + self.has('Buy Bombchu (20)') or \ (self.has('Progressive Wallet') and self.can_reach('Haunted Wasteland')) def has_bombchus(self): @@ -391,6 +393,12 @@ def has_bombchus(self): or (not self.world.bombchus_in_logic and self.has('Bomb Bag') and \ self.can_buy_bombchus()) + def has_bombchus_item(self): + return (self.world.bombchus_in_logic and \ + (any(pritem.startswith('Bombchus') for pritem in self.prog_items) \ + or (self.has('Progressive Wallet') and self.can_reach('Haunted Wasteland')))) \ + or (not self.world.bombchus_in_logic and self.has('Bomb Bag')) + def has_explosives(self): return self.has_bombs() or self.has_bombchus() @@ -406,32 +414,11 @@ def can_lift_rocks(self): def can_see_with_lens(self): return ((self.has('Magic Meter') and self.has('Lens of Truth')) or self.world.logic_lens != 'all') - def can_reach_tunic(self, tunic): - tunic_locations = self.world.find_items(tunic) - for location in tunic_locations: - if location.parent_region.name == 'Goron Shop': - if self.can_reach('Goron Shop') and \ - self.is_adult() and \ - (self.has_explosives() or self.has('Progressive Strength Upgrade') or self.has_bow()): - return True - elif location.parent_region.name == 'Zora Shop': - if self.can_reach('Zoras Domain Adult Access', 'Entrance') and self.has_blue_fire(): - return True - else: - return True - return False - def has_GoronTunic(self): - return (self.has('Goron Tunic') or - (self.has('Progressive Wallet') and - self.has('Buy Goron Tunic') and - self.can_reach_tunic('Buy Goron Tunic'))) + return (self.has('Goron Tunic') or self.has('Buy Goron Tunic')) def has_ZoraTunic(self): - return (self.has('Zora Tunic') or - (self.has('Progressive Wallet', 2) and - self.has('Buy Zora Tunic') and - self.can_reach_tunic('Buy Zora Tunic'))) + return (self.has('Zora Tunic') or self.has('Buy Zora Tunic')) def can_leave_forest(self): return (self.world.open_forest or (self.has_slingshot() and self.has('Kokiri Sword') and self.has('Buy Deku Shield'))) @@ -602,10 +589,17 @@ def update_required_items(worlds): item_locations = [] if worlds[0].spoiler.playthrough: item_locations = [location for _,sphere in worlds[0].spoiler.playthrough.items() for location in sphere - if location.item.type != 'Event' and not location.event and (worlds[0].keysanity or not location.item.key)] + if location.item.type != 'Event' + and location.item.type != 'Shop' + and not location.event + and (worlds[0].keysanity or not location.item.key)] else: item_locations = [location for world in worlds for location in world.get_filled_locations() - if location.item.advancement and location.item.type != 'Event' and not location.event and (worlds[0].keysanity or not location.item.key)] + if location.item.advancement + and location.item.type != 'Event' + and location.item.type != 'Shop' + and not location.event + and (worlds[0].keysanity or not location.item.key)] required_locations = [] for location in item_locations: diff --git a/Fill.py b/Fill.py index f86db7a3f..7529ce540 100644 --- a/Fill.py +++ b/Fill.py @@ -1,6 +1,7 @@ import random import logging from BaseClasses import CollectionState +from Rules import set_shop_rules class FillError(RuntimeError): pass @@ -48,6 +49,9 @@ def distribute_items_restrictive(window, worlds, fill_locations=None): if shop_locations: random.shuffle(shop_locations) fill_shops(window, worlds, shop_locations, shopitempool, itempool + songitempool + dungeon_items) + # Update the shop item access rules + for world in worlds: + set_shop_rules(world) # If there are dungeon items that are restricted to their original dungeon, # we must place them first to make sure that there is always a location to diff --git a/Rules.py b/Rules.py index 7164bbb16..2900db75d 100644 --- a/Rules.py +++ b/Rules.py @@ -301,9 +301,7 @@ def global_rules(world): forbid_item(location, 'Ice Trap') add_item_rule(location, lambda i: not (i.type == 'Song' and not i.world.shuffle_song_items and i.world.id != location.world.id)) if location.type == 'Shop': - if location.name.startswith('Bombchu Shop') or location.name.startswith('Castle Town Potion Shop') or location.name.startswith('Castle Town Bazaar'): - forbid_item(location, 'Buy Goron Tunic') - forbid_item(location, 'Buy Zora Tunic') + forbid_item(location, 'Biggoron Sword') if location.name in world.shop_prices: location.price = world.shop_prices[location.name] @@ -318,6 +316,46 @@ def global_rules(world): forbid_item(world.get_location('Bombchu Bowling Bomb Bag'), 'Biggoron Sword') forbid_item(world.get_location('Bombchu Bowling Piece of Heart'), 'Biggoron Sword') + +# This function should be ran once after the shop items are placed in the world. +# It should be ran before other items are placed in the world so that logic has +# the correct checks for them. This is save to do since every shop is still +# accessible when all items are obtained and every shop item is not. +# This function should also be called when a world is copied if the original world +# had called this function because the world.copy does not copy the rules +def set_shop_rules(world): + for location in world.get_filled_locations(): + if location.item.type == 'Shop': + # Add wallet requirements + if location.item.name in ['Buy Arrows (50)', 'Buy Fish', 'Buy Goron Tunic', 'Buy Bombchu (20)', 'Buy Bombs (30)']: + add_rule(location, lambda state: state.has('Progressive Wallet')) + elif location.item.name in ['Buy Zora Tunic', 'Buy Blue Fire']: + add_rule(location, lambda state: state.has('Progressive Wallet', 2)) + + # Add adult only checks + if location.item.name in ['Buy Goron Tunic', 'Buy Zora Tunic']: + if location.parent_region.name == 'Goron Shop': + add_rule(location, lambda state: state.is_adult() and (state.has_explosives() or state.has('Progressive Strength Upgrade') or state.has_bow())) + elif location.parent_region.name == 'Zora Shop': + add_rule(location, lambda state: state.can_reach('Zora Shop Adult Access', 'Entrance')) + elif location.parent_region.name in ['Bombchu Shop', 'Castle Town Potion Shop', 'Castle Town Bazaar']: + set_rule(location, lambda state: False) + else: + add_rule(location, lambda state: state.is_adult()) + + # Add item prerequisit checks + if location.item.name in ['Buy Arrows (10)', 'Buy Arrows (30)', 'Buy Arrows (50)']: + add_rule(location, lambda state: state.has('Bow')) + if location.item.name in ['Buy Blue Fire', 'Buy Blue Potion', 'Buy Bottle Bug', 'Buy Fish', 'Buy Green Potion', 'Buy Poe', 'Buy Red Potion [30]', 'Buy Red Potion [40]', 'Buy Red Potion [50]', 'Fairy\'s Spirit']: + add_rule(location, lambda state: state.has_bottle()) + if location.item.name in ['Buy Bombchu (10)', 'Buy Bombchu (20)', 'Buy Bombchu (5)']: + add_rule(location, lambda state: state.has_bombchus_item()) + if location.item.name in ['Buy Bombs (10)', 'Buy Bombs (20)', 'Buy Bombs (30)', 'Buy Bombs (5) [25]', 'Buy Bombs (5) [35]']: + add_rule(location, lambda state: state.has('Bomb Bag')) + if location.item.name in ['Buy Deku Seeds (30)']: + add_rule(location, lambda state: state.has('Slingshot')) + + def dung_rules_dt0(world): # Deku Tree Vanilla set_rule(world.get_entrance('Deku Tree Basement Path'), lambda state: state.has_slingshot() and (state.has_sticks() or (state.has('Dins Fire') and state.has('Magic Meter')))) diff --git a/version.py b/version.py index e5831e38f..12d8174e3 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.16.7 f.LUM' +__version__ = '2.16.8 f.LUM' From 1a88018eaa57147281f3d79589ac121e2f53c214 Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 5 Sep 2018 07:16:11 -0400 Subject: [PATCH 398/755] Rule fixes for shopsanity --- BaseClasses.py | 13 ++++-------- EntranceShuffle.py | 5 +++-- Fill.py | 2 +- Regions.py | 10 +++++----- Rules.py | 49 ++++++++++++++++++++++++---------------------- version.py | 2 +- 6 files changed, 40 insertions(+), 41 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 3d6adcc93..c12082371 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -354,18 +354,13 @@ def has_sticks(self): return self.has('Buy Deku Stick (1)') def has_bow(self): - return self.has('Bow') and \ - (self.has('Buy Arrows (10)') or self.has('Buy Arrows (30)') or self.has('Buy Arrows (50)')) + return self.has('Bow') def has_slingshot(self): - return self.has('Slingshot') and self.has('Buy Deku Seeds (30)') + return self.has('Slingshot') def has_bombs(self): - return self.has('Bomb Bag') and \ - (self.has('Buy Bombs (5) [25]') - or self.has('Buy Bombs (5) [35]') - or self.has('Buy Bombs (10)') - or self.has('Buy Bombs (20)')) + return self.has('Bomb Bag') def has_blue_fire(self): return self.has_bottle() and \ @@ -383,7 +378,7 @@ def can_buy_bombchus(self): return self.has('Buy Bombchu (5)') or \ self.has('Buy Bombchu (10)') or \ self.has('Buy Bombchu (20)') or \ - (self.has('Progressive Wallet') and self.can_reach('Haunted Wasteland')) + self.can_reach('Castle Town Bombchu Bowling') def has_bombchus(self): return (self.world.bombchus_in_logic and \ diff --git a/EntranceShuffle.py b/EntranceShuffle.py index a6e9bce01..1e0023603 100644 --- a/EntranceShuffle.py +++ b/EntranceShuffle.py @@ -302,7 +302,7 @@ def connect_doors(world, doors, targets): ('Talon House', 'Talon House'), ('Ingo Barn', 'Ingo Barn'), ('Lon Lon Corner Tower', 'Lon Lon Corner Tower'), - ('Zora Shop', 'Zora Shop'), + ('Zora Shop Child Access', 'Zora Shop'), ('Goron Shop', 'Goron Shop'), ('Zoras Fountain Fairy', 'Zoras Fountain Fairy'), ('Kokiri Forest Storms Grotto', 'Kokiri Forest Storms Grotto'), @@ -329,7 +329,8 @@ def connect_doors(world, doors, targets): ('Zora River Plateau Open Grotto', 'Zora River Plateau Open Grotto'), ('Zora River Plateau Bombable Grotto', 'Zora River Plateau Bombable Grotto'), ('Lake Hylia Grotto', 'Lake Hylia Grotto'), - ('Meadow Storms Grotto', 'Meadow Storms Grotto'), + ('Meadow Storms Grotto Child Access', 'Meadow Storms Grotto'), + ('Meadow Storms Grotto Adult Access', 'Meadow Storms Grotto'), ('Gerudo Valley Storms Grotto','Gerudo Valley Storms Grotto'), ('Desert Colossus Grotto','Desert Colossus Grotto'), ('Goron City Grotto', 'Goron City Grotto'), diff --git a/Fill.py b/Fill.py index 7529ce540..714c4cd9f 100644 --- a/Fill.py +++ b/Fill.py @@ -151,7 +151,7 @@ def fill_shops(window, worlds, locations, shoppool, itempool, attempts=15): continue break else: - raise FillError('Unable to place songs') + raise FillError('Unable to place shops') # Places the songs into the world at the Song locations diff --git a/Regions.py b/Regions.py index 6b522fdeb..70795f998 100644 --- a/Regions.py +++ b/Regions.py @@ -341,11 +341,11 @@ def create_regions(world): create_ow_region( 'Death Mountain Crater Upper', ['DM Crater Wall Freestanding PoH', 'Biggoron', 'GS Death Mountain Crater Crate', 'DMC Deku Scrub Bombs'], - ['Crater Exit', 'Crater Hover Boots', 'Crater Scarecrow', 'Top of Crater Grotto', 'DMC Hammer Grotto']), + ['Crater Exit', 'Crater Hover Boots', 'Crater Scarecrow', 'Top of Crater Grotto']), create_ow_region( 'Death Mountain Crater Lower', None, - ['Crater to City', 'Crater Fairy', 'Crater Bridge', 'Crater Ascent']), + ['Crater to City', 'Crater Fairy', 'Crater Bridge', 'Crater Ascent', 'DMC Hammer Grotto']), create_ow_region( 'Death Mountain Crater Central', ['DM Crater Volcano Freestanding PoH', 'Sheik in Crater', 'GS Mountain Crater Bean Patch'], @@ -374,7 +374,7 @@ def create_regions(world): create_ow_region( 'Zoras Domain', ['Diving Minigame', 'Zoras Domain Torch Run', 'King Zora Moves'], - ['Zoras Domain Exit', 'Zoras Domain Dive Warp', 'Behind King Zora', 'Zora Shop']), + ['Zoras Domain Exit', 'Zoras Domain Dive Warp', 'Behind King Zora', 'Zora Shop Child Access']), create_ow_region( 'Zoras Fountain', ['GS Zora\'s Fountain Tree', 'GS Zora\'s Fountain Above the Log'], @@ -427,7 +427,7 @@ def create_regions(world): create_interior_region( 'Forest Temple Entry Area', ['Sheik Forest Song', 'GS Lost Woods Above Stage', 'GS Sacred Forest Meadow'], - ['Adult Meadow Exit', 'Forest Temple Entrance']), + ['Adult Meadow Exit', 'Forest Temple Entrance', 'Meadow Storm Grotto Adult Access']), create_dungeon_region( 'Forest Temple Lobby', ['Forest Temple First Chest', 'Forest Temple Chest Behind Lobby', 'GS Forest Temple First Room', @@ -628,7 +628,7 @@ def create_regions(world): create_dungeon_region( 'Dodongos Cavern Climb', ['Dodongos Cavern Bomb Flower Platform', 'GS Dodongo\'s Cavern Vines Above Stairs', - 'DC Deku Scrub Deku Seeds', 'DC Deku Scrub Deku Nuts'], + 'DC Deku Scrub Deku Seeds', 'DC Deku Scrub Deku Nuts'], ['Dodongos Cavern Bridge Fall', 'Dodongos Cavern Slingshot Target']), create_dungeon_region( 'Dodongos Cavern Far Bridge', diff --git a/Rules.py b/Rules.py index 2900db75d..c3d3c76af 100644 --- a/Rules.py +++ b/Rules.py @@ -97,9 +97,10 @@ def global_rules(world): set_rule(world.get_location('Heart Piece Grave Chest'), lambda state: state.can_play('Suns Song')) set_rule(world.get_entrance('Composer Grave'), lambda state: state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('Song from Composer Grave'), lambda state: state.is_adult() or state.can_child_attack()) + set_rule(world.get_location('Song from Composer Grave'), lambda state: state.is_adult() or (state.has_slingshot() or state.has('Boomerang') or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword'))) set_rule(world.get_location('Composer Grave Chest'), lambda state: state.has_fire_source()) - set_rule(world.get_entrance('Bottom of the Well'), lambda state: state.can_play('Song of Storms')) + + set_rule(world.get_entrance('Bottom of the Well'), lambda state: state.can_play('Song of Storms') and (world.dungeon_mq['BW'] or (state.has_slingshot() or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword') or (state.has('Dins Fire') and state.has('Magic Meter'))))) set_rule(world.get_entrance('Death Mountain Entrance'), lambda state: state.has('Zeldas Letter') or state.is_adult() or world.open_kakariko) set_rule(world.get_location('DM Trail Freestanding PoH'), lambda state: world.open_kakariko or (world.difficulty != 'ohko') or state.has('Zeldas Letter') or state.can_blast_or_smash() or ((state.has('Dins Fire') or state.has('Nayrus Love')) and state.has('Magic Meter')) or state.has_bow() or state.has('Progressive Strength Upgrade') or state.has_bottle() or state.has('Hover Boots')) set_rule(world.get_location('Death Mountain Bombable Chest'), lambda state: state.can_blast_or_smash()) @@ -108,7 +109,7 @@ def global_rules(world): set_rule(world.get_location('Goron City Left Maze Chest'), lambda state: state.can_blast_or_smash() or (state.has('Progressive Strength Upgrade', 2) and state.is_adult())) set_rule(world.get_location('Goron City Right Maze Chest'), lambda state: state.can_blast_or_smash() or (state.has('Progressive Strength Upgrade', 2) and state.is_adult())) set_rule(world.get_location('Rolling Goron as Child'), lambda state: state.has('Bomb Bag') and state.has_explosives()) - set_rule(world.get_location('Goron City Pot Freestanding PoH'), lambda state: (state.has_bombs() or state.has('Progressive Strength Upgrade')) and (state.can_play('Zeldas Lullaby') or (state.has('Dins Fire') and state.has('Magic Meter')))) + set_rule(world.get_location('Goron City Pot Freestanding PoH'), lambda state: (state.has_bombs() or state.has('Progressive Strength Upgrade')) and ((state.can_play('Zeldas Lullaby') and state.has_sticks()) or (state.has('Dins Fire') and state.has('Magic Meter')))) set_rule(world.get_entrance('Darunias Chamber'), lambda state: state.can_play('Zeldas Lullaby')) set_rule(world.get_location('Darunias Joy'), lambda state: state.can_play('Sarias Song')) set_rule(world.get_entrance('Goron City from Woods'), lambda state: (state.can_blast_or_smash() or (state.has('Dins Fire') and state.has('Magic Meter')) or ((state.has_bow() or state.has('Progressive Strength Upgrade')) and state.is_adult())) and state.can_leave_forest()) @@ -144,7 +145,7 @@ def global_rules(world): set_rule(world.get_entrance('Zora River Adult'), lambda state: state.is_adult()) set_rule(world.get_entrance('Zoras Domain Adult Access'), lambda state: state.can_play('Zeldas Lullaby') or (state.has('Hover Boots') and world.logic_zora_with_hovers)) set_rule(world.get_entrance('Zoras Fountain Adult Access'), lambda state: state.can_reach('Zoras Fountain')) - set_rule(world.get_location('Zoras Domain Torch Run'), lambda state: state.has_sticks() or (state.has('Dins Fire') or state.has('Magic Meter'))) + set_rule(world.get_location('Zoras Domain Torch Run'), lambda state: state.has_sticks()) set_rule(world.get_entrance('Jabu Jabus Belly'), lambda state: state.has_bottle()) set_rule(world.get_entrance('Zoras Fountain Fairy'), lambda state: state.has_explosives()) set_rule(world.get_location('Zoras Fountain Fairy Reward'), lambda state: state.can_play('Zeldas Lullaby')) @@ -182,7 +183,7 @@ def global_rules(world): set_rule(world.get_location('Sheik in Crater'), lambda state: state.is_adult()) set_rule(world.get_location('Link the Goron'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade') or state.has_explosives() or state.has_bow())) set_rule(world.get_entrance('Crater Access'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade') or state.has_explosives() or state.has_bow())) - set_rule(world.get_entrance('Goron Shop'), lambda state: state.has_explosives() or state.has('Progressive Strength') or (state.has_bow() and state.is_adult()) or ((state.has('Zeldas Letter') or world.open_kakariko) and ((state.has('Dins Fire') and state.has('Magic Meter')) or (state.can_play('Zeldas Lullaby') and state.has_sticks())))) + set_rule(world.get_entrance('Goron Shop'), lambda state: state.has_explosives() or state.has('Progressive Strength') or (state.has_bow() and state.is_adult()) or (state.has('Dins Fire') and state.has('Magic Meter')) or ((state.has('Zeldas Letter') or world.open_kakariko) and (state.can_play('Zeldas Lullaby') and state.has_sticks()))) set_rule(world.get_entrance('Lake Warp Pad'), lambda state: state.can_play('Serenade of Water') and state.can_leave_forest()) set_rule(world.get_location('King Zora Thawed'), lambda state: state.has_blue_fire()) set_rule(world.get_entrance('Zora Shop Adult Access'), lambda state: state.has_blue_fire()) @@ -212,7 +213,8 @@ def global_rules(world): set_rule(world.get_entrance('Kokiri Forest Storms Grotto'), lambda state: state.can_play('Song of Storms')) set_rule(world.get_entrance('Lost Woods Generic Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Lost Woods Sales Grotto'), lambda state: (state.has_explosives() or (state.has('Hammer') and state.is_adult() and (state.can_play('Minuet of Forest') or state.can_play('Sarias Song'))))) - set_rule(world.get_entrance('Front of Meadow Grotto'), lambda state: ((state.has_explosives() and (state.has_sticks() or state.has('Kokiri Sword'))) or (state.can_blast_or_smash() and state.is_adult() and (state.can_play('Minuet of Forest') or state.can_play('Sarias Song'))))) + set_rule(world.get_entrance('Front of Meadow Grotto'), lambda state: state.has_explosives() or (state.can_blast_or_smash() and state.is_adult() and (state.can_play('Minuet of Forest') or state.can_play('Sarias Song')))) + set_rule(world.get_entrance('Meadow Gate'), lambda state: (state.has_slingshot() or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword') or (state.has('Dins Fire') and state.has('Magic Meter')))) set_rule(world.get_entrance('Remote Southern Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Field Near Lake Inside Fence Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Field Valley Grotto'), lambda state: state.can_blast_or_smash()) @@ -228,15 +230,16 @@ def global_rules(world): set_rule(world.get_entrance('Zora River Plateau Open Grotto'), lambda state: state.has_explosives() or state.has('Progressive Scale') or state.is_adult()) set_rule(world.get_entrance('Zora River Plateau Bombable Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_location('Tektite Grotto Freestanding PoH'), lambda state: state.has('Progressive Scale', 2) or (state.has('Iron Boots') and state.is_adult())) - set_rule(world.get_location('GS Kokiri Know It All House'), lambda state: state.nighttime() and state.can_leave_forest() and state.can_child_attack()) + set_rule(world.get_location('GS Kokiri Know It All House'), lambda state: state.nighttime() and (state.can_leave_forest() or state.can_play('Suns Song')) and state.can_child_attack()) set_rule(world.get_location('GS Kokiri Bean Patch'), lambda state: state.has_bottle() and state.can_child_attack()) set_rule(world.get_location('GS Kokiri House of Twins'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.nighttime()) set_rule(world.get_location('GS Lost Woods Bean Patch Near Bridge'), lambda state: state.has_bottle() and state.can_child_attack()) - set_rule(world.get_location('GS Lost Woods Bean Patch Near Stage'), lambda state: state.has_bottle() and state.can_child_attack()) + set_rule(world.get_location('GS Lost Woods Bean Patch Near Stage'), lambda state: state.has_bottle() and (state.can_child_attack() or (not world.shuffle_scrubs and state.has('Buy Deku Shield')))) set_rule(world.get_location('GS Lost Woods Above Stage'), lambda state: state.has('Magic Bean') and state.nighttime()) set_rule(world.get_location('GS Sacred Forest Meadow'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.nighttime()) set_rule(world.get_location('GS Hyrule Field near Kakariko'), lambda state: (state.has('Boomerang') and state.has_explosives()) or (state.has('Progressive Hookshot') and state.is_adult())) set_rule(world.get_location('GS Hyrule Field Near Gerudo Valley'), lambda state: (state.has('Hammer') and state.has_fire_source() and state.has('Progressive Hookshot') and state.is_adult()) or (state.has('Boomerang') and state.has_explosives() and state.has('Dins Fire') and state.has('Magic Meter'))) + set_rule(world.get_location('GS Hyrule Castle Tree'), lambda state: state.can_child_attack()) set_rule(world.get_location('GS Hyrule Castle Grotto'), lambda state: state.has('Boomerang') and state.has_explosives()) set_rule(world.get_location('GS Lon Lon Ranch Rain Shed'), lambda state: state.nighttime()) set_rule(world.get_location('GS Lon Lon Ranch House Window'), lambda state: state.has('Boomerang') and state.nighttime()) @@ -254,7 +257,7 @@ def global_rules(world): set_rule(world.get_location('GS Mountain Trail Path to Crater'), lambda state: state.has('Hammer') and state.is_adult() and state.nighttime()) set_rule(world.get_location('GS Mountain Trail Above Dodongo\'s Cavern'), lambda state: state.has('Hammer') and state.is_adult() and state.nighttime()) set_rule(world.get_location('GS Goron City Boulder Maze'), lambda state: state.has_explosives()) - set_rule(world.get_location('GS Death Mountain Crater Crate'), lambda state: state.can_blast_or_smash()) + set_rule(world.get_location('GS Death Mountain Crater Crate'), lambda state: state.can_blast_or_smash() and state.can_child_attack()) set_rule(world.get_location('GS Goron City Center Platform'), lambda state: state.is_adult()) set_rule(world.get_location('GS Mountain Crater Bean Patch'), lambda state: state.can_play('Bolero of Fire') and state.has_bottle() and state.can_child_attack()) set_rule(world.get_location('GS Zora River Ladder'), lambda state: state.nighttime() and state.can_child_attack()) @@ -279,19 +282,19 @@ def global_rules(world): set_rule(world.get_location('GS Desert Colossus Bean Patch'), lambda state: state.has_bottle() and state.can_play('Requiem of Spirit') and state.can_child_attack()) set_rule(world.get_location('GS Desert Colossus Tree'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.nighttime()) set_rule(world.get_location('GS Desert Colossus Hill'), lambda state: ((state.has('Magic Bean') and state.can_play('Requiem of Spirit')) or state.has('Progressive Hookshot', 2)) and state.is_adult() and state.nighttime()) - set_rule(world.get_location('GS Death Mountain Crater Crate'), lambda state: state.can_child_attack()) set_rule(world.get_location('GS Zora River Tree'), lambda state: state.can_child_attack()) set_rule(world.get_location('HF Grotto Deku Scrub Piece of Heart'), lambda state: state.can_stun_deku()) set_rule(world.get_entrance('Zora River Storms Grotto'), lambda state: state.can_play('Song of Storms') and state.can_stun_deku()) - set_rule(world.get_entrance('Meadow Storms Grotto'), lambda state: state.can_play('Song of Storms') and ((state.can_child_attack() or state.has_nuts() or state.has('Buy Deku Shield')) or (state.is_adult() and (state.can_play('Minuet of Forest') or state.can_play('Sarias Song'))))) - set_rule(world.get_entrance('Lake Hylia Grotto'), lambda state: state.is_adult()) + set_rule(world.get_entrance('Meadow Storms Grotto Child Access'), lambda state: state.can_play('Song of Storms') and (state.can_child_attack() or state.has_nuts() or state.has('Buy Deku Shield'))) + set_rule(world.get_entrance('Meadow Storms Grotto Adult Access'), lambda state: state.can_play('Song of Storms')) + set_rule(world.get_entrance('Lake Hylia Grotto'), lambda state: state.can_stun_deku()) set_rule(world.get_location('LW Deku Scrub Deku Nuts'), lambda state: state.can_stun_deku()) set_rule(world.get_location('LW Deku Scrub Deku Sticks'), lambda state: state.can_stun_deku()) set_rule(world.get_location('LW Deku Scrub Deku Stick Upgrade'), lambda state: state.can_stun_deku()) - set_rule(world.get_entrance('Desert Colossus Grotto'), lambda state: state.has('Hammer') and state.is_adult()) - set_rule(world.get_location('DMC Deku Scrub Bombs'), lambda state: state.can_child_attack() or state.has_nuts() or state.has('Buy Deku Shield')) + set_rule(world.get_entrance('Desert Colossus Grotto'), lambda state: state.has('Progressive Strength', 2) and state.is_adult()) + set_rule(world.get_location('DMC Deku Scrub Bombs'), lambda state: state.can_blast_or_smash() and (state.can_child_attack() or state.has_nuts() or state.has('Buy Deku Shield'))) set_rule(world.get_entrance('DMC Hammer Grotto'), lambda state: state.has('Hammer') and state.is_adult()) - set_rule(world.get_entrance('Goron City Grotto'), lambda state: state.is_adult() and state.has('Progressive Hookshot', 2) and (state.can_play('Song of Time') or (world.difficulty != 'ohko' and state.has_GoronTunic()))) + set_rule(world.get_entrance('Goron City Grotto'), lambda state: state.is_adult() and ((state.can_play('Song of Time') and (world.difficulty != 'ohko' or state.has_GoronTunic() or state.has('Progressive Hookshot', 2) or (state.has('Nayrus Love') and state.has('Magic Meter')))) or (world.difficulty != 'ohko' and state.has_GoronTunic() and state.has('Progressive Hookshot')) or (state.has('Nayrus Love') and state.has('Magic Meter') and state.has('Progressive Hookshot')))) set_rule(world.get_entrance('Lon Lon Grotto'), lambda state: state.can_child_attack() or state.has_nuts() or state.has('Buy Deku Shield')) set_rule(world.get_entrance('Gerudo Valley Storms Grotto'), lambda state: state.can_play('Song of Storms')) @@ -367,17 +370,17 @@ def dung_rules_dt0(world): # GS set_rule(world.get_location('GS Deku Tree Basement Back Room'), lambda state: state.has('Boomerang') and (state.has_explosives())) set_rule(world.get_location('GS Deku Tree Basement Gate'), lambda state: state.can_child_attack()) - set_rule(world.get_location('GS Deku Tree Basement Vines'), lambda state: state.can_child_attack()) + set_rule(world.get_location('GS Deku Tree Basement Vines'), lambda state: state.has_slingshot() or state.has('Boomerang') or state.has_explosives() or (state.has('Dins Fire') and state.has('Magic Meter'))) + set_rule(world.get_location('GS Deku Tree Compass Room'), lambda state: state.can_child_attack()) def dung_rules_dc0(world): # Dodongo's Cavern Vanilla set_rule(world.get_entrance('Dodongos Cavern Rocks'), lambda state: state.can_blast_or_smash() or state.has('Progressive Strength Upgrade') or state.is_adult()) set_rule(world.get_entrance('Dodongos Cavern Lobby'), lambda state: state.can_blast_or_smash() or state.has('Progressive Strength Upgrade')) - set_rule(world.get_entrance('Dodongos Cavern Left Door'), lambda state: (state.is_adult() or ((state.has_sticks() or (state.has('Dins Fire') and state.has('Magic Meter'))) and (state.has_slingshot() or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword'))) and (state.has_explosives() or state.has('Progressive Strength Upgrade') or (state.has('Dins Fire') and state.has('Magic Meter')) or (state.has_bow() and state.is_adult())))) - set_rule(world.get_location('Dodongos Cavern Compass Chest'), lambda state: (state.is_adult() or ((state.has_sticks() or (state.has('Dins Fire') and state.has('Magic Meter'))) and (state.has_slingshot() or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword'))))) + set_rule(world.get_entrance('Dodongos Cavern Left Door'), lambda state: (state.is_adult() or ((state.has_sticks() or (state.has('Dins Fire') and state.has('Magic Meter'))) and (state.has_slingshot() or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword')))) and (state.has_explosives() or state.has('Progressive Strength Upgrade') or (state.has('Dins Fire') and state.has('Magic Meter')) or (state.has_bow() and state.is_adult()))) + set_rule(world.get_location('Dodongos Cavern Compass Chest'), lambda state: state.is_adult() or ((state.has_sticks() or (state.has('Dins Fire') and state.has('Magic Meter'))) and (state.has_slingshot() or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword')))) set_rule(world.get_location('DC Deku Scrub Deku Sticks'), lambda state: (state.is_adult() or (state.has_slingshot() or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword')))) - set_rule(world.get_location('DC Deku Scrub Deku Shield'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Dodongos Cavern Slingshot Target'), lambda state: (state.has_slingshot() and (state.has_explosives() or state.has('Progressive Strength Upgrade'))) or ((state.has_bow() or state.has('Hover Boots') or state.has('Progressive Hookshot', 2) or world.logic_dc_jump) and state.is_adult())) set_rule(world.get_location('DC Deku Scrub Deku Nuts'), lambda state: state.can_blast_or_smash()) @@ -386,18 +389,18 @@ def dung_rules_dc0(world): set_rule(world.get_entrance('Dodongos Cavern Bomb Drop'), lambda state: state.has_explosives()) # Boss - set_rule(world.get_location('King Dodongo'), lambda state: state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) - set_rule(world.get_location('King Dodongo Heart'), lambda state: state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) + set_rule(world.get_location('King Dodongo'), lambda state: (state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) and (state.is_adult() or state.has_sticks() or state.has('Kokiri Sword'))) + set_rule(world.get_location('King Dodongo Heart'), lambda state: (state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) and (state.is_adult() or state.has_sticks() or state.has('Kokiri Sword'))) # GS + set_rule(world.get_location('GS Dodongo\'s Cavern East Side Room'), lambda state: state.has_explosives() or state.is_adult() or state.has_slingshot() or state.has('Boomerang') or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword')) set_rule(world.get_location('GS Dodongo\'s Cavern Alcove Above Stairs'), lambda state: (state.has('Progressive Hookshot') and state.is_adult()) or (state.has('Boomerang') and (state.has_explosives() or state.has('Progressive Strength Upgrade')))) set_rule(world.get_location('GS Dodongo\'s Cavern Scarecrow'), lambda state: state.is_adult() and ( (state.has('Progressive Hookshot') and state.has_ocarina()) or state.has('Progressive Hookshot', 2) )) def dung_rules_jb0(world): set_rule(world.get_entrance('Jabu Jabus Belly Ceiling Switch'), lambda state: state.has_slingshot() or state.has_explosives() or state.has('Boomerang')) set_rule(world.get_entrance('Jabu Jabus Belly Tentacles'), lambda state: state.has('Boomerang')) - set_rule(world.get_entrance('Jabu Jabus Belly Octopus'), lambda state: (state.has_nuts() or state.has_slingshot()) and (state.has_sticks() or state.has('Kokiri Sword'))) - set_rule(world.get_location('Boomerang Chest'), lambda state: state.has_slingshot() or state.has('Boomerang') or (state.has_nuts() and (state.has_sticks() or state.has('Kokiri Sword')))) + set_rule(world.get_entrance('Jabu Jabus Belly Octopus'), lambda state: state.has_sticks() or state.has('Kokiri Sword')) def dung_rules_fot0(world): # Forest Temple Vanilla diff --git a/version.py b/version.py index 12d8174e3..2e909c9c0 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.16.8 f.LUM' +__version__ = '2.16.9 f.LUM' From 8b1319ca0c7d0b2acb26e616320ff11c0fb248fb Mon Sep 17 00:00:00 2001 From: scatterclegge Date: Wed, 5 Sep 2018 15:34:44 -0230 Subject: [PATCH 399/755] fixed random choice colors --- Patches.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Patches.py b/Patches.py index cba4efac5..84b1996cc 100644 --- a/Patches.py +++ b/Patches.py @@ -1302,7 +1302,7 @@ def write_save_table(rom): else: # handle random if world.tunic_colors[i] == 'Random Choice': - thisColor = randomColors[i] + color = TunicColors[randomColors[i]] # grab the color from the list elif thisColor in TunicColors: color = TunicColors[thisColor] @@ -1333,7 +1333,7 @@ def write_save_table(rom): else: # handle random if world.navi_colors[i] == 'Random Choice': - thisColor = randomColors[i] + color = NaviColors[randomColors[i]] # grab the color from the list elif thisColor in NaviColors: color = NaviColors[thisColor] From 8539cfcf88856ef357a849d7c2f2ecf58c2a9cbf Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 5 Sep 2018 17:34:17 -0400 Subject: [PATCH 400/755] Fixed typo in meadow storms grotto entrance --- Regions.py | 4 ++-- version.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Regions.py b/Regions.py index 70795f998..7e19db649 100644 --- a/Regions.py +++ b/Regions.py @@ -49,7 +49,7 @@ def create_regions(world): create_ow_region( 'Sacred Forest Meadow', ['Song from Saria'], - ['Meadow Gate Exit', 'Meadow Fairy Grotto', 'Meadow Storms Grotto']), + ['Meadow Gate Exit', 'Meadow Fairy Grotto', 'Meadow Storms Grotto Child Access']), create_ow_region('Lost Woods Bridge', ['Gift from Saria'], ['Kokiri Forest Entrance', 'Forest Exit']), create_ow_region('Hyrule Field', ['Ocarina of Time', 'Song from Ocarina of Time'], @@ -427,7 +427,7 @@ def create_regions(world): create_interior_region( 'Forest Temple Entry Area', ['Sheik Forest Song', 'GS Lost Woods Above Stage', 'GS Sacred Forest Meadow'], - ['Adult Meadow Exit', 'Forest Temple Entrance', 'Meadow Storm Grotto Adult Access']), + ['Adult Meadow Exit', 'Forest Temple Entrance', 'Meadow Storms Grotto Adult Access']), create_dungeon_region( 'Forest Temple Lobby', ['Forest Temple First Chest', 'Forest Temple Chest Behind Lobby', 'GS Forest Temple First Room', diff --git a/version.py b/version.py index 2e909c9c0..a6ab28c08 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.16.9 f.LUM' +__version__ = '2.16.10 f.LUM' From d422f2c82aebadafa8ea36942c46f46c3a948aaf Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 5 Sep 2018 18:08:42 -0400 Subject: [PATCH 401/755] bombchu refills to check for bombbag when bombchu not in logic Also removed unnecessary shop item logic --- Items.py | 20 ++++++++++---------- Patches.py | 9 +++++++++ Rules.py | 6 ------ version.py | 2 +- 4 files changed, 20 insertions(+), 17 deletions(-) diff --git a/Items.py b/Items.py index bdb72f661..9effcc2fb 100644 --- a/Items.py +++ b/Items.py @@ -193,17 +193,17 @@ def __init__(self, model, gid, price): 'Light Trial Clear': (True, False, 'Event', None, None, None, None), 'Triforce': (True, False, 'Event', None, None, None, None), 'Buy Deku Nut (5)': (True, False, 'Shop', None, 0x00, 0x00BB, 0x12), - 'Buy Arrows (30)': (True, False, 'Shop', None, 0x01, 0x00D8, 0x26), - 'Buy Arrows (50)': (True, False, 'Shop', None, 0x02, 0x00D8, 0x27), - 'Buy Bombs (5) [25]': (True, False, 'Shop', None, 0x03, 0x00CE, 0x20), + 'Buy Arrows (30)': (False, True, 'Shop', None, 0x01, 0x00D8, 0x26), + 'Buy Arrows (50)': (False, True, 'Shop', None, 0x02, 0x00D8, 0x27), + 'Buy Bombs (5) [25]': (False, True, 'Shop', None, 0x03, 0x00CE, 0x20), 'Buy Deku Nut (10)': (True, False, 'Shop', None, 0x04, 0x00BB, 0x12), 'Buy Deku Stick (1)': (True, False, 'Shop', None, 0x05, 0x00C7, 0x1B), - 'Buy Bombs (10)': (True, False, 'Shop', None, 0x06, 0x00CE, 0x20), + 'Buy Bombs (10)': (False, True, 'Shop', None, 0x06, 0x00CE, 0x20), 'Buy Fish': (False, True, 'Shop', None, 0x07, 0x00F4, 0x3F), 'Buy Red Potion [30]': (False, True, 'Shop', None, 0x08, 0x00EB, 0x38), 'Buy Green Potion': (False, True, 'Shop', None, 0x09, 0x00EB, 0x37), 'Buy Blue Potion': (False, True, 'Shop', None, 0x0A, 0x00EB, 0x39), - 'Buy Hylian Shield': (True, False, 'Shop', None, 0x0C, 0x00DC, 0x2C), + 'Buy Hylian Shield': (False, True, 'Shop', None, 0x0C, 0x00DC, 0x2C), 'Buy Deku Shield': (True, False, 'Shop', None, 0x0D, 0x00CB, 0x1D), 'Buy Goron Tunic': (True, False, 'Shop', None, 0x0E, 0x00F2, 0x3C), 'Buy Zora Tunic': (True, False, 'Shop', None, 0x0F, 0x00F2, 0x3D), @@ -211,16 +211,16 @@ def __init__(self, model, gid, price): 'Buy Bombchu (10)': (True, False, 'Shop', None, 0x15, 0x00D9, 0x28), 'Buy Bombchu (20)': (True, False, 'Shop', None, 0x16, 0x00D9, 0x28), 'Buy Bombchu (5)': (True, False, 'Shop', None, 0x18, 0x00D9, 0x28), - 'Buy Deku Seeds (30)': (True, False, 'Shop', None, 0x1D, 0x0119, 0x48), + 'Buy Deku Seeds (30)': (False, True, 'Shop', None, 0x1D, 0x0119, 0x48), 'Sold Out': (False, True, 'Shop', None, 0x26, 0x0148, 0x59), 'Buy Blue Fire': (True, False, 'Shop', None, 0x27, 0x0173, 0x67), 'Buy Bottle Bug': (False, True, 'Shop', None, 0x28, 0x0174, 0x68), 'Buy Poe': (False, True, 'Shop', None, 0x2A, 0x0176, 0x6A), 'Buy Fairy\'s Spirit': (False, True, 'Shop', None, 0x2B, 0x0177, 0x6B), - 'Buy Arrows (10)': (True, False, 'Shop', None, 0x2C, 0x00D8, 0x25), - 'Buy Bombs (20)': (True, False, 'Shop', None, 0x2D, 0x00CE, 0x20), - 'Buy Bombs (30)': (True, False, 'Shop', None, 0x2E, 0x00CE, 0x20), - 'Buy Bombs (5) [35]': (True, False, 'Shop', None, 0x2F, 0x00CE, 0x20), + 'Buy Arrows (10)': (False, True, 'Shop', None, 0x2C, 0x00D8, 0x25), + 'Buy Bombs (20)': (False, True, 'Shop', None, 0x2D, 0x00CE, 0x20), + 'Buy Bombs (30)': (False, True, 'Shop', None, 0x2E, 0x00CE, 0x20), + 'Buy Bombs (5) [35]': (False, True, 'Shop', None, 0x2F, 0x00CE, 0x20), 'Buy Red Potion [40]': (False, True, 'Shop', None, 0x30, 0x00EB, 0x38), 'Buy Red Potion [50]': (False, True, 'Shop', None, 0x31, 0x00EB, 0x38), } diff --git a/Patches.py b/Patches.py index 98cf3a316..0f1dfb37f 100644 --- a/Patches.py +++ b/Patches.py @@ -149,6 +149,15 @@ def patch_rom(world, rom): rom.write_bytes(0x00E2D892, [0xA6, 0x72]) rom.write_byte(0x00E2D897, 0x18) + # Cannot buy bombchu refills without Bomb Bag + rom.write_int32s(0xC01078, + [0x3C098012, # lui t1, 0x8012 + 0x812AA673, # lb t2, -0x598D(t1) ; bombbag size (SAVE_CONTEXT + 0xA3) + 0x314A0018, # andi t2, t2, 0x18 + 0x15200002, # bnez t2, @@return ; If has bombbag, return 1 (can buy) + 0x24020000, # li v0, 0 + 0x24020002]) # li v0, 2 ; else, return 2, (can't buy) + # Change Bazaar check to Bomb Bag (Child?) rom.write_bytes(0x00C0082A, [0x00, 0x18]) rom.write_bytes(0x00C0082C, [0x00, 0x0E, 0X74, 0X02]) diff --git a/Rules.py b/Rules.py index c3d3c76af..90bd97146 100644 --- a/Rules.py +++ b/Rules.py @@ -347,16 +347,10 @@ def set_shop_rules(world): add_rule(location, lambda state: state.is_adult()) # Add item prerequisit checks - if location.item.name in ['Buy Arrows (10)', 'Buy Arrows (30)', 'Buy Arrows (50)']: - add_rule(location, lambda state: state.has('Bow')) if location.item.name in ['Buy Blue Fire', 'Buy Blue Potion', 'Buy Bottle Bug', 'Buy Fish', 'Buy Green Potion', 'Buy Poe', 'Buy Red Potion [30]', 'Buy Red Potion [40]', 'Buy Red Potion [50]', 'Fairy\'s Spirit']: add_rule(location, lambda state: state.has_bottle()) if location.item.name in ['Buy Bombchu (10)', 'Buy Bombchu (20)', 'Buy Bombchu (5)']: add_rule(location, lambda state: state.has_bombchus_item()) - if location.item.name in ['Buy Bombs (10)', 'Buy Bombs (20)', 'Buy Bombs (30)', 'Buy Bombs (5) [25]', 'Buy Bombs (5) [35]']: - add_rule(location, lambda state: state.has('Bomb Bag')) - if location.item.name in ['Buy Deku Seeds (30)']: - add_rule(location, lambda state: state.has('Slingshot')) def dung_rules_dt0(world): diff --git a/version.py b/version.py index a6ab28c08..c9015bb49 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.16.10 f.LUM' +__version__ = '2.16.11 f.LUM' From c44cccc08d186d2b60d0e6a84073776eae550a2c Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 5 Sep 2018 19:24:43 -0400 Subject: [PATCH 402/755] Fix correct_chest_sizes --- Patches.py | 8 +++++--- version.py | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Patches.py b/Patches.py index 0f1dfb37f..21ae986ec 100644 --- a/Patches.py +++ b/Patches.py @@ -1678,7 +1678,9 @@ def room_get_actors(rom, actor_func, room_data, scene, alternate=None): return actors -def scene_get_actors(rom, actor_func, scene_data, scene, alternate=None, processed_rooms=[]): +def scene_get_actors(rom, actor_func, scene_data, scene, alternate=None, processed_rooms=None): + if processed_rooms == None: + processed_rooms = [] actors = {} scene_start = alternate or scene_data command = 0 @@ -1743,11 +1745,11 @@ def get_chest(rom, actor, scene): itemType = 1 # Long animation, big chest # Don't use boss chests - default = rom.read_int16(actor + 0x14) + default = rom.read_int16(actor + 14) chestType = default & 0xF000 newChestType = chestTypeMap[chestType][itemType] default = (default & 0x0FFF) | newChestType - rom.write_int16(actor + 0x14, default) + rom.write_int16(actor + 14, default) def set_deku_salesman_data(rom): def set_deku_salesman_and_grotto_id(rom, actor, scene): diff --git a/version.py b/version.py index c9015bb49..cb5b980fa 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.16.11 f.LUM' +__version__ = '2.16.12 f.LUM' From 1c432a578d25ca13a20eda70b4c78df94a19bfd5 Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 5 Sep 2018 21:07:24 -0400 Subject: [PATCH 403/755] Implemented Keysy Mode. Keysanity options separate for map/key/boss --- BaseClasses.py | 73 +++++---- Gui.py | 6 +- ItemList.py | 13 ++ Patches.py | 47 +++++- Rom.py | 414 ++++++++++++++++++++++++------------------------- Settings.py | 125 ++++++++++++--- version.py | 2 +- 7 files changed, 417 insertions(+), 263 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index c12082371..118cb84c0 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -27,7 +27,7 @@ def __init__(self, settings): self.settings = settings self.__dict__.update(settings.__dict__) # rename a few attributes... - self.keysanity = self.shuffle_dungeon_items == 'keysanity' + self.keysanity = self.shuffle_smallkeys == 'keysanity' self.check_beatable_only = not self.all_reachable # group a few others self.tunic_colors = [self.kokiricolor, self.goroncolor, self.zoracolor] @@ -117,9 +117,8 @@ def initialize_items(self): for location in region.locations: if location.item != None: location.item.world = self - for dungeon in self.dungeons: - for item in dungeon.all_items: - item.world = self + for item in [item for dungeon in self.dungeons for item in dungeon.all_items]: + item.world = self def random_shop_prices(self): shop_item_indexes = ['7', '5', '8', '6'] @@ -178,24 +177,28 @@ def get_items(self): # get a list of items that should stay in their proper dungeon def get_restricted_dungeon_items(self): - if self.shuffle_dungeon_items == 'keysanity': - itempool = [] - elif self.shuffle_dungeon_items == 'mapcompass': - itempool = [item for dungeon in self.dungeons for item in dungeon.all_items if item.key] - else: - itempool = [item for dungeon in self.dungeons for item in dungeon.all_items] + itempool = [] + if self.shuffle_mapcompass == 'dungeon': + itempool.extend([item for dungeon in self.dungeons for item in dungeon.dungeon_items]) + if self.shuffle_smallkeys == 'dungeon': + itempool.extend([item for dungeon in self.dungeons for item in dungeon.small_keys]) + if self.shuffle_bosskeys == 'dungeon': + itempool.extend([item for dungeon in self.dungeons for item in dungeon.boss_key]) + for item in itempool: item.world = self return itempool # get a list of items that don't have to be in their proper dungeon def get_unrestricted_dungeon_items(self): - if self.shuffle_dungeon_items == 'keysanity': - itempool = [item for dungeon in self.dungeons for item in dungeon.all_items] - elif self.shuffle_dungeon_items == 'mapcompass': - itempool = [item for dungeon in self.dungeons for item in dungeon.all_items if not item.key] - else: - itempool = [] + itempool = [] + if self.shuffle_mapcompass == 'keysanity': + itempool.extend([item for dungeon in self.dungeons for item in dungeon.dungeon_items]) + if self.shuffle_smallkeys == 'keysanity': + itempool.extend([item for dungeon in self.dungeons for item in dungeon.small_keys]) + if self.shuffle_bosskeys == 'keysanity': + itempool.extend([item for dungeon in self.dungeons for item in dungeon.boss_key]) + for item in itempool: item.world = self return itempool @@ -647,12 +650,14 @@ def can_reach(self, state): return False def can_fill(self, item): - if self.world.shuffle_dungeon_items == 'keysanity': - is_dungeon_restricted = False - elif self.world.shuffle_dungeon_items == 'mapcompass': - is_dungeon_restricted = item.key - else: - is_dungeon_restricted = item.key or item.map or item.compass + is_dungeon_restricted = False + if self.world.shuffle_mapcompass == 'dungeon': + is_dungeon_restricted = item.map or item.compass + elif self.world.shuffle_smallkeys == 'dungeon': + is_dungeon_restricted = item.smallkey + elif self.world.shuffle_bosskeys == 'dungeon': + is_dungeon_restricted = item.bosskey + if is_dungeon_restricted: return self.dungeon and self.dungeon.is_dungeon_item(item) return True @@ -700,15 +705,23 @@ def __unicode__(self): class Dungeon(object): def __init__(self, name, regions, boss_key, small_keys, dungeon_items): + def to_array(obj): + if obj == None: + return [] + if isinstance(obj, list): + return obj + else: + return [obj] + self.name = name self.regions = regions - self.boss_key = boss_key - self.small_keys = small_keys - self.dungeon_items = dungeon_items + self.boss_key = to_array(boss_key) + self.small_keys = to_array(small_keys) + self.dungeon_items = to_array(dungeon_items) @property def keys(self): - return self.small_keys + ([self.boss_key] if self.boss_key else []) + return self.small_keys + self.boss_key @property def all_items(self): @@ -784,6 +797,14 @@ def copy(self): def key(self): return self.type == 'SmallKey' or self.type == 'BossKey' + @property + def smallkey(self): + return self.type == 'SmallKey' + + @property + def bosskey(self): + return self.type == 'BossKey' + @property def crystal(self): return self.type == 'Crystal' diff --git a/Gui.py b/Gui.py index dc18526d0..fc8c494f1 100755 --- a/Gui.py +++ b/Gui.py @@ -117,6 +117,7 @@ def guiMain(settings=None): #Rules Tab frames['open'] = LabelFrame(frames['rules_tab'], text='Open', labelanchor=NW) + frames['world'] = LabelFrame(frames['rules_tab'], text='World', labelanchor=NW) frames['logic'] = LabelFrame(frames['rules_tab'], text='Shuffle', labelanchor=NW) # Logic tab @@ -326,8 +327,9 @@ def open_readme(): # pack the hierarchy - frames['open'].pack( fill=BOTH, expand=True, anchor=N, side=LEFT, pady=(5,1) ) - frames['logic'].pack( fill=BOTH, expand=True, anchor=N, side=LEFT, pady=(5,1) ) + frames['logic'].pack( fill=BOTH, expand=True, anchor=N, side=RIGHT, pady=(5,1) ) + frames['open'].pack( fill=BOTH, expand=True, anchor=W, side=TOP, pady=(5,1) ) + frames['world'].pack( fill=BOTH, expand=True, anchor=W, side=BOTTOM, pady=(5,1) ) # Logic tab frames['rewards'].pack(fill=BOTH, expand=True, anchor=N, side=LEFT, pady=(5,1) ) diff --git a/ItemList.py b/ItemList.py index 92705c1fa..cfb5ca92a 100644 --- a/ItemList.py +++ b/ItemList.py @@ -550,6 +550,19 @@ def get_pool_core(world): pool.append(tradeitem) pool.extend(songlist) + if world.shuffle_mapcompass == 'remove': + for item in [item for dungeon in world.dungeons for item in dungeon.dungeon_items]: + world.state.collect(item) + pool.append(random.choice(harditems)) + if world.shuffle_smallkeys == 'remove': + for item in [item for dungeon in world.dungeons for item in dungeon.small_keys]: + world.state.collect(item) + pool.append(random.choice(harditems)) + if world.shuffle_bosskeys == 'remove': + for item in [item for dungeon in world.dungeons for item in dungeon.boss_key]: + world.state.collect(item) + pool.append(random.choice(harditems)) + return (pool, placed_items) def choose_trials(world): diff --git a/Patches.py b/Patches.py index 21ae986ec..b9c075070 100644 --- a/Patches.py +++ b/Patches.py @@ -1320,6 +1320,11 @@ def write_save_table(rom): # update actor IDs set_deku_salesman_data(rom) + if world.shuffle_smallkeys == 'remove' or world.shuffle_bosskeys == 'remove': + locked_doors = get_locked_doors(rom, world) + for _,[door_byte, door_bits] in locked_doors.items(): + write_bits_to_save(door_byte, door_bits) + #Fix item chest animations chestAnimations = { 0x3D: 0xED, #0x13 #Heart Container @@ -1663,7 +1668,8 @@ def room_get_actors(rom, actor_func, room_data, scene, alternate=None): actor_count = rom.read_byte(room_data + 1) actor_list = room_start + (rom.read_int32(room_data + 4) & 0x00FFFFFF) for _ in range(0, actor_count): - entry = actor_func(rom, actor_list, scene) + actor_id = rom.read_int16(actor_list) + entry = actor_func(rom, actor_id, actor_list, scene) if entry: actors[actor_list] = entry actor_list = actor_list + 16 @@ -1696,6 +1702,15 @@ def scene_get_actors(rom, actor_func, scene_data, scene, alternate=None, process actors.update(room_get_actors(rom, actor_func, room_data, scene)) processed_rooms.append(room_data) room_list = room_list + 8 + if command == 0x0E: #transition actor list + actor_count = rom.read_byte(scene_data + 1) + actor_list = scene_start + (rom.read_int32(scene_data + 4) & 0x00FFFFFF) + for _ in range(0, actor_count): + actor_id = rom.read_int16(actor_list + 4) + entry = actor_func(rom, actor_id, actor_list, scene) + if entry: + actors[actor_list] = entry + actor_list = actor_list + 16 if command == 0x18 and scene >= 81 and scene <= 99: # Alternate header list header_list = scene_start + (rom.read_int32(scene_data + 4) & 0x00FFFFFF) for alt_id in range(0,2): @@ -1722,8 +1737,7 @@ def get_override_itemid(override_table, scene, type, flags): return None def update_chest_sizes(rom, override_table): - def get_chest(rom, actor, scene): - actor_id = rom.read_int16(actor); + def get_chest(rom, actor_id, actor, scene): if actor_id == 0x000A: #Chest Actor actor_var = rom.read_int16(actor + 14) return [scene, actor_var & 0x001F] @@ -1752,8 +1766,7 @@ def get_chest(rom, actor, scene): rom.write_int16(actor + 14, default) def set_deku_salesman_data(rom): - def set_deku_salesman_and_grotto_id(rom, actor, scene): - actor_id = rom.read_int16(actor); + def set_deku_salesman_and_grotto_id(rom, actor_id, actor, scene): if actor_id == 0x009B: #Grotto actor_zrot = rom.read_int16(actor + 12) actor_var = rom.read_int16(actor + 14); @@ -1773,6 +1786,30 @@ def set_deku_salesman_and_grotto_id(rom, actor, scene): get_actor_list(rom, set_deku_salesman_and_grotto_id) +def get_locked_doors(rom, world): + def locked_door(rom, actor_id, actor, scene): + actor_var = rom.read_int16(actor + 14) + actor_type = actor_var >> 6 + actor_flag = actor_var & 0x003F + + flag_id = (1 << actor_flag) + flag_byte = 3 - (actor_flag >> 3) + flag_bits = 1 << (actor_flag & 0x07) + + # If locked door, set the door's unlock flag + if world.shuffle_smallkeys == 'remove': + if actor_id == 0x0009 and actor_type == 0x02: + return [0x00D4 + scene * 0x1C + 0x04 + flag_byte, flag_bits] + if actor_id == 0x002E and actor_type == 0x0B: + return [0x00D4 + scene * 0x1C + 0x04 + flag_byte, flag_bits] + + # If boss door, set the door's unlock flag + if world.shuffle_bosskeys == 'remove': + if actor_id == 0x002E and actor_type == 0x05: + return [0x00D4 + scene * 0x1C + 0x04 + flag_byte, flag_bits] + + return get_actor_list(rom, locked_door) + def place_shop_items(rom, shop_items, messages, locations, init_shop_id=False): if init_shop_id: place_shop_items.shop_id = 0x32 diff --git a/Rom.py b/Rom.py index 88a1b2932..e96746a12 100644 --- a/Rom.py +++ b/Rom.py @@ -1,208 +1,208 @@ -import io -import json -import logging -import os -import platform -import struct -import subprocess -import random -import copy - -from Utils import default_output_path - -class LocalRom(object): - def __init__(self, settings, patch=True): - self.last_address = None - - file = settings.rom - decomp_file = 'ZOOTDEC.z64' - - os.chdir(os.path.dirname(os.path.realpath(__file__))) - #os.chdir(output_path(os.path.dirname(os.path.realpath(__file__)))) - - try: - # Read decompressed file if it exists - with open(decomp_file, 'rb') as stream: - self.buffer = read_rom(stream) - # This is mainly for validation testing, but just in case... - self.decompress_rom_file(decomp_file, decomp_file) - except Exception as ex: - # No decompressed file, instead read Input ROM - with open(file, 'rb') as stream: - self.buffer = read_rom(stream) - self.decompress_rom_file(file, decomp_file) - - # Add file to maximum size - self.buffer.extend(bytearray([0x00] * (0x4000000 - len(self.buffer)))) - - def decompress_rom_file(self, file, decomp_file): - validCRC = [ - [0xEC, 0x70, 0x11, 0xB7, 0x76, 0x16, 0xD7, 0x2B], # Compressed - [0x70, 0xEC, 0xB7, 0x11, 0x16, 0x76, 0x2B, 0xD7], # Byteswap compressed - [0x93, 0x52, 0x2E, 0x7B, 0xE5, 0x06, 0xD4, 0x27], # Decompressed - ] - - # Validate ROM file - file_name = os.path.splitext(file) - romCRC = list(self.buffer[0x10:0x18]) - if romCRC not in validCRC: - # Bad CRC validation - raise RuntimeError('ROM file %s is not a valid OoT 1.0 US ROM.' % file) - elif len(self.buffer) < 0x2000000 or len(self.buffer) > (0x4000000) or file_name[1] not in ['.z64', '.n64']: - # ROM is too big, or too small, or not a bad type - raise RuntimeError('ROM file %s is not a valid OoT 1.0 US ROM.' % file) - elif len(self.buffer) == 0x2000000: - # If Input ROM is compressed, then Decompress it - if platform.system() == 'Windows': - if 8 * struct.calcsize("P") == 64: - subprocess.call(["Decompress\\Decompress.exe", file, decomp_file]) - else: - subprocess.call(["Decompress\\Decompress32.exe", file, decomp_file]) - with open(decomp_file, 'rb') as stream: - self.buffer = read_rom(stream) - elif platform.system() == 'Linux': - subprocess.call(["Decompress/Decompress", file]) - with open(("ZOOTDEC.z64"), 'rb') as stream: - self.buffer = read_rom(stream) - elif platform.system() == 'Darwin': - subprocess.call(["Decompress/Decompress.out", file]) - with open(("ZOOTDEC.z64"), 'rb') as stream: - self.buffer = read_rom(stream) - else: - raise RuntimeError('Unsupported operating system for decompression. Please supply an already decompressed ROM.') - else: - # ROM file is a valid and already uncompressed - pass - - - def seek_address(self, address): - self.last_address = address - - def read_byte(self, address): - self.last_address = address + 1 - return self.buffer[address] - - def read_bytes(self, address, len): - self.last_address = address + len - return self.buffer[address : address + len] - - def read_int16(self, address): - return bytes_as_int16(self.read_bytes(address, 2)) - - def read_int24(self, address): - return bytes_as_int24(self.read_bytes(address, 3)) - - def read_int32(self, address): - return bytes_as_int32(self.read_bytes(address, 4)) - - def write_byte(self, address, value): - if address == None: - address = self.last_address - self.buffer[address] = value - self.last_address = address + 1 - - def write_int16(self, address, value): - if address == None: - address = self.last_address - self.write_bytes(address, int16_as_bytes(value)) - - def write_int24(self, address, value): - if address == None: - address = self.last_address - self.write_bytes(address, int24_as_bytes(value)) - - def write_int32(self, address, value): - if address == None: - address = self.last_address - self.write_bytes(address, int32_as_bytes(value)) - - def write_bytes(self, startaddress, values): - if startaddress == None: - startaddress = self.last_address - for i, value in enumerate(values): - self.write_byte(startaddress + i, value) - - def write_int16s(self, startaddress, values): - if startaddress == None: - startaddress = self.last_address - for i, value in enumerate(values): - self.write_int16(startaddress + (i * 2), value) - - def write_int24s(self, startaddress, values): - if startaddress == None: - startaddress = self.last_address - for i, value in enumerate(values): - self.write_int24(startaddress + (i * 3), value) - - def write_int32s(self, startaddress, values): - if startaddress == None: - startaddress = self.last_address - for i, value in enumerate(values): - self.write_int32(startaddress + (i * 4), value) - - def write_to_file(self, file): - self.update_crc() - with open(file, 'wb') as outfile: - outfile.write(self.buffer) - - def update_crc(self): - t1 = t2 = t3 = t4 = t5 = t6 = 0xDF26F436 - u32 = 0xFFFFFFFF - - cur = 0x1000 - while cur < 0x00101000: - d = self.read_int32(cur) - - if ((t6 + d) & u32) < t6: - t4 += 1 - - t6 = (t6+d) & u32 - t3 ^= d - shift = d & 0x1F - r = ((d << shift) | (d >> (32 - shift))) & u32 - t5 = (t5 + r) & u32 - - if t2 > d: - t2 ^= r - else: - t2 ^= t6 ^ d - - data2 = self.read_int32(0x750 + (cur & 0xFF)) - t1 += data2 ^ d - t1 &= u32 - - cur += 4 - - crc0 = t6 ^ t4 ^ t3 - crc1 = t5 ^ t2 ^ t1 - - # Finally write the crc back to the rom - self.write_int32s(0x10, [crc0, crc1]) - - -def read_rom(stream): - "Reads rom into bytearray" - buffer = bytearray(stream.read()) - return buffer - - -def int16_as_bytes(value): - value = value & 0xFFFF - return [(value >> 8) & 0xFF, value & 0xFF] - -def int24_as_bytes(value): - value = value & 0xFFFFFFFF - return [(value >> 16) & 0xFF, (value >> 8) & 0xFF, value & 0xFF] - -def int32_as_bytes(value): - value = value & 0xFFFFFFFF - return [(value >> 24) & 0xFF, (value >> 16) & 0xFF, (value >> 8) & 0xFF, value & 0xFF] - -def bytes_as_int16(values): - return (values[0] << 8) | values[1] - -def bytes_as_int24(values): - return (values[0] << 16) | (values[1] << 8) | values[2] - -def bytes_as_int32(values): +import io +import json +import logging +import os +import platform +import struct +import subprocess +import random +import copy + +from Utils import default_output_path + +class LocalRom(object): + def __init__(self, settings, patch=True): + self.last_address = None + + file = settings.rom + decomp_file = 'ZOOTDEC.z64' + + os.chdir(os.path.dirname(os.path.realpath(__file__))) + #os.chdir(output_path(os.path.dirname(os.path.realpath(__file__)))) + + try: + # Read decompressed file if it exists + with open(decomp_file, 'rb') as stream: + self.buffer = read_rom(stream) + # This is mainly for validation testing, but just in case... + self.decompress_rom_file(decomp_file, decomp_file) + except Exception as ex: + # No decompressed file, instead read Input ROM + with open(file, 'rb') as stream: + self.buffer = read_rom(stream) + self.decompress_rom_file(file, decomp_file) + + # Add file to maximum size + self.buffer.extend(bytearray([0x00] * (0x4000000 - len(self.buffer)))) + + def decompress_rom_file(self, file, decomp_file): + validCRC = [ + [0xEC, 0x70, 0x11, 0xB7, 0x76, 0x16, 0xD7, 0x2B], # Compressed + [0x70, 0xEC, 0xB7, 0x11, 0x16, 0x76, 0x2B, 0xD7], # Byteswap compressed + [0x93, 0x52, 0x2E, 0x7B, 0xE5, 0x06, 0xD4, 0x27], # Decompressed + ] + + # Validate ROM file + file_name = os.path.splitext(file) + romCRC = list(self.buffer[0x10:0x18]) + if romCRC not in validCRC: + # Bad CRC validation + raise RuntimeError('ROM file %s is not a valid OoT 1.0 US ROM.' % file) + elif len(self.buffer) < 0x2000000 or len(self.buffer) > (0x4000000) or file_name[1] not in ['.z64', '.n64']: + # ROM is too big, or too small, or not a bad type + raise RuntimeError('ROM file %s is not a valid OoT 1.0 US ROM.' % file) + elif len(self.buffer) == 0x2000000: + # If Input ROM is compressed, then Decompress it + if platform.system() == 'Windows': + if 8 * struct.calcsize("P") == 64: + subprocess.call(["Decompress\\Decompress.exe", file, decomp_file]) + else: + subprocess.call(["Decompress\\Decompress32.exe", file, decomp_file]) + with open(decomp_file, 'rb') as stream: + self.buffer = read_rom(stream) + elif platform.system() == 'Linux': + subprocess.call(["Decompress/Decompress", file]) + with open(("ZOOTDEC.z64"), 'rb') as stream: + self.buffer = read_rom(stream) + elif platform.system() == 'Darwin': + subprocess.call(["Decompress/Decompress.out", file]) + with open(("ZOOTDEC.z64"), 'rb') as stream: + self.buffer = read_rom(stream) + else: + raise RuntimeError('Unsupported operating system for decompression. Please supply an already decompressed ROM.') + else: + # ROM file is a valid and already uncompressed + pass + + + def seek_address(self, address): + self.last_address = address + + def read_byte(self, address): + self.last_address = address + 1 + return self.buffer[address] + + def read_bytes(self, address, len): + self.last_address = address + len + return self.buffer[address : address + len] + + def read_int16(self, address): + return bytes_as_int16(self.read_bytes(address, 2)) + + def read_int24(self, address): + return bytes_as_int24(self.read_bytes(address, 3)) + + def read_int32(self, address): + return bytes_as_int32(self.read_bytes(address, 4)) + + def write_byte(self, address, value): + if address == None: + address = self.last_address + self.buffer[address] = value + self.last_address = address + 1 + + def write_int16(self, address, value): + if address == None: + address = self.last_address + self.write_bytes(address, int16_as_bytes(value)) + + def write_int24(self, address, value): + if address == None: + address = self.last_address + self.write_bytes(address, int24_as_bytes(value)) + + def write_int32(self, address, value): + if address == None: + address = self.last_address + self.write_bytes(address, int32_as_bytes(value)) + + def write_bytes(self, startaddress, values): + if startaddress == None: + startaddress = self.last_address + for i, value in enumerate(values): + self.write_byte(startaddress + i, value) + + def write_int16s(self, startaddress, values): + if startaddress == None: + startaddress = self.last_address + for i, value in enumerate(values): + self.write_int16(startaddress + (i * 2), value) + + def write_int24s(self, startaddress, values): + if startaddress == None: + startaddress = self.last_address + for i, value in enumerate(values): + self.write_int24(startaddress + (i * 3), value) + + def write_int32s(self, startaddress, values): + if startaddress == None: + startaddress = self.last_address + for i, value in enumerate(values): + self.write_int32(startaddress + (i * 4), value) + + def write_to_file(self, file): + self.update_crc() + with open(file, 'wb') as outfile: + outfile.write(self.buffer) + + def update_crc(self): + t1 = t2 = t3 = t4 = t5 = t6 = 0xDF26F436 + u32 = 0xFFFFFFFF + + cur = 0x1000 + while cur < 0x00101000: + d = self.read_int32(cur) + + if ((t6 + d) & u32) < t6: + t4 += 1 + + t6 = (t6+d) & u32 + t3 ^= d + shift = d & 0x1F + r = ((d << shift) | (d >> (32 - shift))) & u32 + t5 = (t5 + r) & u32 + + if t2 > d: + t2 ^= r + else: + t2 ^= t6 ^ d + + data2 = self.read_int32(0x750 + (cur & 0xFF)) + t1 += data2 ^ d + t1 &= u32 + + cur += 4 + + crc0 = t6 ^ t4 ^ t3 + crc1 = t5 ^ t2 ^ t1 + + # Finally write the crc back to the rom + self.write_int32s(0x10, [crc0, crc1]) + + +def read_rom(stream): + "Reads rom into bytearray" + buffer = bytearray(stream.read()) + return buffer + + +def int16_as_bytes(value): + value = value & 0xFFFF + return [(value >> 8) & 0xFF, value & 0xFF] + +def int24_as_bytes(value): + value = value & 0xFFFFFFFF + return [(value >> 16) & 0xFF, (value >> 8) & 0xFF, value & 0xFF] + +def int32_as_bytes(value): + value = value & 0xFFFFFFFF + return [(value >> 24) & 0xFF, (value >> 16) & 0xFF, (value >> 8) & 0xFF, value & 0xFF] + +def bytes_as_int16(values): + return (values[0] << 8) | values[1] + +def bytes_as_int24(values): + return (values[0] << 16) | (values[1] << 8) | values[2] + +def bytes_as_int32(values): return (values[0] << 24) | (values[1] << 16) | (values[2] << 8) | values[3] \ No newline at end of file diff --git a/Settings.py b/Settings.py index 4e2a3d32d..2666b21f4 100644 --- a/Settings.py +++ b/Settings.py @@ -799,43 +799,124 @@ def parse_custom_navi_color(s): to use the item. ''' }), - Setting_Info('shuffle_dungeon_items', str, 2, True, + Setting_Info('shuffle_mapcompass', str, 2, True, { - 'default': 'mapcompass', - 'const': 'mapcompass', + 'default': 'dungeon', + 'const': 'dungeon', 'nargs': '?', - 'choices': ['off', 'mapcompass', 'keysanity'], + 'choices': ['remove', 'dungeon', 'keysanity'], 'help': '''\ - Dungeon items can appear outside of their - respective dungeon. - off: Dungeon items will be in their dungeons - mapcompass: Maps and Compasses can appear anywhere - keysanity: Dungeon items can appear anywhere + Sets the Map and Compass placement rules + remove: Maps and Compasses are removed from the world + dungeon: Maps and Compasses are put in their Dungeon + keysanity: Maps and Compasses can appear anywhere ''' }, { 'text': 'Shuffle Dungeon Items', 'group': 'logic', 'widget': 'Combobox', - 'default': 'Maps and Compasses', + 'default': 'Maps/Compasses: Dungeon Only', 'options': { - 'Off': 'off', - 'Maps and Compasses': 'mapcompass', - 'Full Keysanity': 'keysanity' + 'Maps/Compasses: Remove': 'remove', + 'Maps/Compasses: Dungeon Only': 'dungeon', + 'Maps/Compasses: Anywhere': 'keysanity' }, 'tooltip':'''\ - Dungeon items can appear anywhere instead - of just being restricted to their own dungeon. + 'Remove': Maps and Compasses are removed. + This will add a small amount of money and + refill items to the pool. - 'Maps and Compasses': Dungeons will have - 2 more possible item locations. This helps - make some dungeons more profitable, such as - Ice Cavern and Jabu Jabu's Belly. + 'Dungeon': Maps and Compasses can onlyappear + in their respective dungeon. + + 'Anywhere': Maps and Compaases can appear + anywhere in the world. + + Setting 'Remove' or 'Anywhere' will add 2 + more possible locations to each Dungeons. + This helps make some dungeons more profitable, + such as Ice Cavern and Jabu Jabu's Belly. + ''' + }), + Setting_Info('shuffle_smallkeys', str, 2, True, + { + 'default': 'dungeon', + 'const': 'dungeon', + 'nargs': '?', + 'choices': ['remove', 'dungeon', 'keysanity'], + 'help': '''\ + Sets the Small Keys placement rules + remove: Small Keys are removed from the world + dungeon: Small Keys are put in their Dungeon + keysanity: Small Keys can appear anywhere + ''' + }, + { + 'group': 'logic', + 'widget': 'Combobox', + 'default': 'Small Keys: Dungeon Only', + 'options': { + 'Small Keys: Remove (Keysy)': 'remove', + 'Small Keys: Dungeon Only': 'dungeon', + 'Small Keys: Anywhere (Keysanity)': 'keysanity' + }, + 'tooltip':'''\ + 'Remove': Small Keys are removed. All locked + doors in dungeons will be unlocked. An easier + mode. + + 'Dungeon': Small Keys can only appear in their + respective dungeon. + + 'Anywhere': Small Keys can appear + anywhere in the world. A difficult mode since + it is more likely to need to enter a dungeon + multiple times. - 'Full Keysanity': Maps, Compasses, and Keys - can appear anywhere. A difficult mode, since + Try different combination out, such as: + 'Small Keys: Dungeon' + 'Boss Keys: Anywhere' + for a milder Keysanity experience. + ''' + }), + Setting_Info('shuffle_bosskeys', str, 2, True, + { + 'default': 'dungeon', + 'const': 'dungeon', + 'nargs': '?', + 'choices': ['remove', 'dungeon', 'keysanity'], + 'help': '''\ + Sets the Boss Keys placement rules + remove: Boss Keys are removed from the world + dungeon: Boss Keys are put in their Dungeon + keysanity: Boss Keys can appear anywhere + ''' + }, + { + 'group': 'logic', + 'widget': 'Combobox', + 'default': 'Boss Keys: Dungeon Only', + 'options': { + 'Boss Keys: Remove (Keysy)': 'remove', + 'Boss Keys: Dungeon Only': 'dungeon', + 'Boss Keys: Anywhere (Keysanity)': 'keysanity' + }, + 'tooltip':'''\ + 'Remove': Boss Keys are removed. All locked + doors in dungeons will be unlocked. An easier + mode. + + 'Dungeon': Boss Keys can only appear in their + respective dungeon. + + 'Anywhere': Boss Keys can appear + anywhere in the world. A difficult mode since it is more likely to need to enter a dungeon multiple times. + + Try different combination out, such as: + 'Small Keys: Dungeon' + 'Boss Keys: Anywhere' + for a milder Keysanity experience. ''' }), Setting_Info('tokensanity', str, 2, True, @@ -892,7 +973,7 @@ def parse_custom_navi_color(s): }, { 'text': 'Dungeon Quest', - 'group': 'logic', + 'group': 'world', 'widget': 'Combobox', 'default': 'Vanilla', 'options': { diff --git a/version.py b/version.py index cb5b980fa..da2c26e37 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.16.12 f.LUM' +__version__ = '2.16.13 f.LUM' From 8d0a7fb5732f436184e3ca5c58fde51bacac1256 Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 5 Sep 2018 21:19:08 -0400 Subject: [PATCH 404/755] Update README --- README.md | 8 +++++--- Settings.py | 4 ---- version.py | 2 +- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index afe37e525..3258a9553 100644 --- a/README.md +++ b/README.md @@ -91,11 +91,13 @@ The Fairy Ocarina and Ocarina of Time can be shuffled into the item pool with `s Enabling `shuffle_song_items` will make learning songs into items and shuffle the songs into the item pool. Song can appear at any location, and any item can appear at the original song locations. -## Keysanity +## Shuffle Dungeon Items -Dungeon items (maps, compasses, small keys, boss keys) are shuffled into the item pool at large. +The shuffling rules can be set separately for Maps/Compasses, Small Keys, and Boss Keys using `shuffle_mapcompass`, `shuffle_smallkeys`, and `shuffle_bosskeys` respectively. They can use one of the following rules: -This was actually mostly implemented, I just pulled the trigger... +- `remove`: The dungeon item type is removed from the game. If it is a key, then the associated doors will be unlocked. +- `dungeon`: The dungeon item type will always appear in their own dungeon. +- `keysanity`: The dungeon item type are shuffles into the pool and can appear anywhere. ## Tokensanity diff --git a/Settings.py b/Settings.py index 2666b21f4..b4ff6a460 100644 --- a/Settings.py +++ b/Settings.py @@ -793,10 +793,6 @@ def parse_custom_navi_color(s): a random number of non-shop items. Each shop can have a maximum of 4 items. - - Logic guarantees you have access - to a shop item refill to be able - to use the item. ''' }), Setting_Info('shuffle_mapcompass', str, 2, True, diff --git a/version.py b/version.py index da2c26e37..62d0c8e4c 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.16.13 f.LUM' +__version__ = '2.16.14 f.LUM' From b154f214f57b421a6088cffdbe1de982fc81155e Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 5 Sep 2018 22:54:05 -0400 Subject: [PATCH 405/755] Can set random number of trials, and changed big poe gui --- Gui.py | 4 +++ ItemList.py | 2 ++ Patches.py | 6 ++-- Settings.py | 80 +++++++++++++++++++++++++++++++++++------------------ version.py | 2 +- 5 files changed, 63 insertions(+), 31 deletions(-) diff --git a/Gui.py b/Gui.py index dc18526d0..b430ab45e 100755 --- a/Gui.py +++ b/Gui.py @@ -152,7 +152,11 @@ def show_settings(event=None): if widgets[info.name].winfo_class() == 'Frame': for child in widgets[info.name].winfo_children(): child.configure(state= 'normal' if dep_met else 'disabled') + if child.winfo_class() == 'Scale': + child.configure(fg='Black'if dep_met else 'Grey') else: + if widgets[info.name].winfo_class() == 'Scale': + widgets[info.name].configure(fg='Black'if dep_met else 'Grey') widgets[info.name].config(state = 'normal' if dep_met else 'disabled') if info.name in guivars and guivars[info.name].get() == 'Custom Color': diff --git a/ItemList.py b/ItemList.py index e6e301976..5cc2eb497 100644 --- a/ItemList.py +++ b/ItemList.py @@ -386,6 +386,8 @@ def get_pool_core(world): return (pool, placed_items) def choose_trials(world): + if world.trials_random: + world.trials = random.randint(0, 6) num_trials = int(world.trials) choosen_trials = random.sample(['Forest', 'Fire', 'Water', 'Spirit', 'Shadow', 'Light'], num_trials) for trial in world.skipped_trials: diff --git a/Patches.py b/Patches.py index 84b1996cc..e33f596e1 100644 --- a/Patches.py +++ b/Patches.py @@ -996,9 +996,9 @@ def write_save_table(rom): remove_unused_messages(messages) # Set Big Poe count to get reward from buyer - if world.big_poe_count == 'random': - world.big_poe_count = str(random.randint(1, 10)) - poe_points = int(world.big_poe_count) * 100 + if world.big_poe_count_random: + world.big_poe_count = random.randint(1, 10) + poe_points = world.big_poe_count * 100 rom.write_int16(0xEE69CE, poe_points) # update dialogue if world.big_poe_count != 10: diff --git a/Settings.py b/Settings.py index ed6d05f67..3012f5321 100644 --- a/Settings.py +++ b/Settings.py @@ -411,6 +411,24 @@ def parse_custom_navi_color(s): Bombchu Bowling opens with bombchus. ''' }), + Setting_Info('trials_random', bool, 1, True, + { + 'help': '''\ + Sets the number of trials must be cleared to enter + Ganon's Tower to a random value. + ''', + 'action': 'store_true' + }, + { + 'text': 'Random Number of Ganon\'s Trials', + 'group': 'open', + 'widget': 'Checkbutton', + 'default': 'unchecked', + 'tooltip':'''\ + Sets a random number of trials to + enter Ganon's Tower. + ''' + }), Setting_Info('trials', int, 3, True, { 'default': 6, @@ -424,17 +442,18 @@ def parse_custom_navi_color(s): 'type': int }, { - 'text': 'Number of Ganon\'s Trials', 'group': 'open', 'widget': 'Scale', 'default': 6, 'min': 0, 'max': 6, + 'random': True, 'tooltip':'''\ Trials are randomly selected. If hints are enabled, then there will be hints for which trials need to be completed. - ''' + ''', + 'dependency': lambda guivar: not guivar['trials_random'].get(), }), Setting_Info('no_escape_sequence', bool, 1, True, { @@ -504,38 +523,45 @@ def parse_custom_navi_color(s): the animation time is slow for major items. ''' }), - Setting_Info('big_poe_count', str, 4, True, + Setting_Info('big_poe_count_random', bool, 1, True, + { + 'help': '''\ + Sets a random number of Big Poes to receive an item from the buyer. + ''', + 'action': 'store_true' + }, + { + 'text': 'Random Big Poe Target Count', + 'group': 'convenience', + 'widget': 'Checkbutton', + 'default': 'unchecked', + 'tooltip':'''\ + The Poe buyer will give a reward for turning + in a random number of Big Poes. + ''' + }), + Setting_Info('big_poe_count', int, 4, True, { - 'default': 'random', - 'const': 'random', + 'default': 10, + 'const': 10, 'nargs': '?', - 'choices': ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'random'], + 'choices': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 'help': '''\ Select the number of Big Poes to receive an item from the buyer. - ''' + ''', + 'type': int, }, { - 'text': 'Big Poe Target Count', 'group': 'convenience', - 'widget': 'Combobox', - 'default': 'Random', - 'options': { - 'Random': 'random', - '1': '1', - '2': '2', - '3': '3', - '4': '4', - '5': '5', - '6': '6', - '7': '7', - '8': '8', - '9': '9', - '10': '10' - }, - 'tooltip': '''\ - The Poe buyer will give a reward for turning - in the chosen number of Big Poes. - ''', + 'widget': 'Scale', + 'default': 10, + 'min': 1, + 'max': 10, + 'tooltip':'''\ + The Poe buyer will give a reward for turning + in the chosen number of Big Poes. + ''', + 'dependency': lambda guivar: not guivar['big_poe_count_random'].get(), }), Setting_Info('free_scarecrow', bool, 1, True, { diff --git a/version.py b/version.py index e445b424e..56c2449a4 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.46 f.LUM' +__version__ = '2.15.47 f.LUM' From b6dbb52522c03fd27a86be6a5a66b978386a42b0 Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 6 Sep 2018 00:51:07 -0400 Subject: [PATCH 406/755] Fix dungeon only options not working under certain configurations --- BaseClasses.py | 12 ++++++------ version.py | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 118cb84c0..ea82b50aa 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -651,12 +651,12 @@ def can_reach(self, state): def can_fill(self, item): is_dungeon_restricted = False - if self.world.shuffle_mapcompass == 'dungeon': - is_dungeon_restricted = item.map or item.compass - elif self.world.shuffle_smallkeys == 'dungeon': - is_dungeon_restricted = item.smallkey - elif self.world.shuffle_bosskeys == 'dungeon': - is_dungeon_restricted = item.bosskey + if item.map or item.compass: + is_dungeon_restricted = self.world.shuffle_mapcompass == 'dungeon' + elif item.smallkey: + is_dungeon_restricted = self.world.shuffle_smallkeys == 'dungeon' + elif item.bosskey: + is_dungeon_restricted = self.world.shuffle_bosskeys == 'dungeon' if is_dungeon_restricted: return self.dungeon and self.dungeon.is_dungeon_item(item) diff --git a/version.py b/version.py index 62d0c8e4c..30825cd2e 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.16.14 f.LUM' +__version__ = '2.16.15 f.LUM' From 0536877769152a1a5042a085d3b600a62cd448c1 Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Thu, 6 Sep 2018 02:06:23 -0300 Subject: [PATCH 407/755] Make Buy Fairy's Spirit a prog_item --- Items.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Items.py b/Items.py index 9effcc2fb..9735f49a2 100644 --- a/Items.py +++ b/Items.py @@ -216,7 +216,7 @@ def __init__(self, model, gid, price): 'Buy Blue Fire': (True, False, 'Shop', None, 0x27, 0x0173, 0x67), 'Buy Bottle Bug': (False, True, 'Shop', None, 0x28, 0x0174, 0x68), 'Buy Poe': (False, True, 'Shop', None, 0x2A, 0x0176, 0x6A), - 'Buy Fairy\'s Spirit': (False, True, 'Shop', None, 0x2B, 0x0177, 0x6B), + 'Buy Fairy\'s Spirit': (True, False, 'Shop', None, 0x2B, 0x0177, 0x6B), 'Buy Arrows (10)': (False, True, 'Shop', None, 0x2C, 0x00D8, 0x25), 'Buy Bombs (20)': (False, True, 'Shop', None, 0x2D, 0x00CE, 0x20), 'Buy Bombs (30)': (False, True, 'Shop', None, 0x2E, 0x00CE, 0x20), From 7f85e7d3fdbcb4ac2ba6e28c76d63d4933b48a01 Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Thu, 6 Sep 2018 02:10:45 -0300 Subject: [PATCH 408/755] Keysanity and Keesy are logically equivalent --- BaseClasses.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BaseClasses.py b/BaseClasses.py index ea82b50aa..360dd416c 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -27,7 +27,7 @@ def __init__(self, settings): self.settings = settings self.__dict__.update(settings.__dict__) # rename a few attributes... - self.keysanity = self.shuffle_smallkeys == 'keysanity' + self.keysanity = self.shuffle_smallkeys != 'dungeon' self.check_beatable_only = not self.all_reachable # group a few others self.tunic_colors = [self.kokiricolor, self.goroncolor, self.zoracolor] From 9d8e2264f2949a8d798f9304e9f6c4fae23e3760 Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Thu, 6 Sep 2018 02:18:21 -0300 Subject: [PATCH 409/755] Logic: Spirit, Goron Shop, Fairy Spirit Updated Spirit Logic for Shopsanity. Added Hammer+Adult as a means of accessing Goron Shop with Zelda's Lullaby and Sticks. Added Fairy Spirit as a prog_item and changed the DMT PoH OHKO logic to check for it instead. One day a separate method should be added like the other item refills have. Removed a couple of redundant checks and extra ( )'s. --- Rules.py | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/Rules.py b/Rules.py index 90bd97146..8c0c830ca 100644 --- a/Rules.py +++ b/Rules.py @@ -96,13 +96,12 @@ def global_rules(world): set_rule(world.get_location('50 Gold Skulltulla Reward'), lambda state: (expected_skulltulas >= 50) and state.has('Gold Skulltulla Token', 50) and state.guarantee_hint()) set_rule(world.get_location('Heart Piece Grave Chest'), lambda state: state.can_play('Suns Song')) set_rule(world.get_entrance('Composer Grave'), lambda state: state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('Song from Composer Grave'), lambda state: state.is_adult() or (state.has_slingshot() or state.has('Boomerang') or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword'))) set_rule(world.get_location('Composer Grave Chest'), lambda state: state.has_fire_source()) - set_rule(world.get_entrance('Bottom of the Well'), lambda state: state.can_play('Song of Storms') and (world.dungeon_mq['BW'] or (state.has_slingshot() or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword') or (state.has('Dins Fire') and state.has('Magic Meter'))))) set_rule(world.get_entrance('Death Mountain Entrance'), lambda state: state.has('Zeldas Letter') or state.is_adult() or world.open_kakariko) - set_rule(world.get_location('DM Trail Freestanding PoH'), lambda state: world.open_kakariko or (world.difficulty != 'ohko') or state.has('Zeldas Letter') or state.can_blast_or_smash() or ((state.has('Dins Fire') or state.has('Nayrus Love')) and state.has('Magic Meter')) or state.has_bow() or state.has('Progressive Strength Upgrade') or state.has_bottle() or state.has('Hover Boots')) + # In the future, 'Buy Fairy\'s Spirit' should be changed to has_fairy() so that other potential sources of fairies could be added. + set_rule(world.get_location('DM Trail Freestanding PoH'), lambda state: world.open_kakariko or (world.difficulty != 'ohko') or state.has('Zeldas Letter') or state.can_blast_or_smash() or ((state.has('Dins Fire') or state.has('Nayrus Love')) and state.has('Magic Meter')) or state.has_bow() or state.has('Progressive Strength Upgrade') or state.has('Buy Fairy\'s Spirit') or state.has('Hover Boots')) set_rule(world.get_location('Death Mountain Bombable Chest'), lambda state: state.can_blast_or_smash()) set_rule(world.get_location('Biggoron'), lambda state: (not world.logic_no_trade_biggoron) and state.is_adult() and state.can_finish_adult_trades() and state.guarantee_hint()) set_rule(world.get_location('Goron City Leftmost Maze Chest'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade', 2) or state.has('Hammer'))) @@ -183,7 +182,7 @@ def global_rules(world): set_rule(world.get_location('Sheik in Crater'), lambda state: state.is_adult()) set_rule(world.get_location('Link the Goron'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade') or state.has_explosives() or state.has_bow())) set_rule(world.get_entrance('Crater Access'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade') or state.has_explosives() or state.has_bow())) - set_rule(world.get_entrance('Goron Shop'), lambda state: state.has_explosives() or state.has('Progressive Strength') or (state.has_bow() and state.is_adult()) or (state.has('Dins Fire') and state.has('Magic Meter')) or ((state.has('Zeldas Letter') or world.open_kakariko) and (state.can_play('Zeldas Lullaby') and state.has_sticks()))) + set_rule(world.get_entrance('Goron Shop'), lambda state: state.has_explosives() or state.has('Progressive Strength') or (state.has_bow() and state.is_adult()) or (state.has('Dins Fire') and state.has('Magic Meter')) or ((state.has('Zeldas Letter') or world.open_kakariko or (state.has('Hammer') and state.is_adult())) and (state.can_play('Zeldas Lullaby') and state.has_sticks()))) set_rule(world.get_entrance('Lake Warp Pad'), lambda state: state.can_play('Serenade of Water') and state.can_leave_forest()) set_rule(world.get_location('King Zora Thawed'), lambda state: state.has_blue_fire()) set_rule(world.get_entrance('Zora Shop Adult Access'), lambda state: state.has_blue_fire()) @@ -212,9 +211,9 @@ def global_rules(world): set_rule(world.get_location('Ganon'), lambda state: (state.has('Boss Key (Ganons Castle)') or world.unlocked_ganondorf) and (state.has('Magic Meter') and state.has_bow() and state.has('Light Arrows')) ) set_rule(world.get_entrance('Kokiri Forest Storms Grotto'), lambda state: state.can_play('Song of Storms')) set_rule(world.get_entrance('Lost Woods Generic Grotto'), lambda state: state.can_blast_or_smash()) - set_rule(world.get_entrance('Lost Woods Sales Grotto'), lambda state: (state.has_explosives() or (state.has('Hammer') and state.is_adult() and (state.can_play('Minuet of Forest') or state.can_play('Sarias Song'))))) - set_rule(world.get_entrance('Front of Meadow Grotto'), lambda state: state.has_explosives() or (state.can_blast_or_smash() and state.is_adult() and (state.can_play('Minuet of Forest') or state.can_play('Sarias Song')))) - set_rule(world.get_entrance('Meadow Gate'), lambda state: (state.has_slingshot() or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword') or (state.has('Dins Fire') and state.has('Magic Meter')))) + set_rule(world.get_entrance('Lost Woods Sales Grotto'), lambda state: state.has_explosives() or (state.has('Hammer') and state.is_adult() and (state.can_play('Minuet of Forest') or state.can_play('Sarias Song')))) + set_rule(world.get_entrance('Front of Meadow Grotto'), lambda state: state.has_explosives() or (state.has('Hammer') and state.is_adult() and (state.can_play('Minuet of Forest') or state.can_play('Sarias Song')))) + set_rule(world.get_entrance('Meadow Gate'), lambda state: state.has_slingshot() or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword') or (state.has('Dins Fire') and state.has('Magic Meter'))) set_rule(world.get_entrance('Remote Southern Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Field Near Lake Inside Fence Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Field Valley Grotto'), lambda state: state.can_blast_or_smash()) @@ -387,7 +386,7 @@ def dung_rules_dc0(world): set_rule(world.get_location('King Dodongo Heart'), lambda state: (state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) and (state.is_adult() or state.has_sticks() or state.has('Kokiri Sword'))) # GS - set_rule(world.get_location('GS Dodongo\'s Cavern East Side Room'), lambda state: state.has_explosives() or state.is_adult() or state.has_slingshot() or state.has('Boomerang') or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword')) + set_rule(world.get_location('GS Dodongo\'s Cavern East Side Room'), lambda state: state.has_explosives() or state.is_adult() or state.has_slingshot() or state.has('Boomerang') or state.has_sticks() or state.has('Kokiri Sword')) set_rule(world.get_location('GS Dodongo\'s Cavern Alcove Above Stairs'), lambda state: (state.has('Progressive Hookshot') and state.is_adult()) or (state.has('Boomerang') and (state.has_explosives() or state.has('Progressive Strength Upgrade')))) set_rule(world.get_location('GS Dodongo\'s Cavern Scarecrow'), lambda state: state.is_adult() and ( (state.has('Progressive Hookshot') and state.has_ocarina()) or state.has('Progressive Hookshot', 2) )) @@ -485,16 +484,17 @@ def dung_rules_spt0(world): set_rule(world.get_entrance('Adult Spirit Temple Passthrough'), lambda state: state.has('Small Key (Spirit Temple)', 1)) set_rule(world.get_entrance('Spirit Temple Central Locked Door'), lambda state: state.has('Small Key (Spirit Temple)', 4) and state.has('Progressive Strength Upgrade', 2) and state.is_adult()) set_rule(world.get_entrance('Spirit Temple Final Locked Door'), lambda state: state.has('Small Key (Spirit Temple)', 5) and (state.has('Progressive Hookshot') or state.has_bow() or state.has_explosives())) - set_rule(world.get_location('Spirit Temple Child Left Chest'), lambda state: state.has('Boomerang') or state.has_slingshot() or state.has_bombchus()) - set_rule(world.get_location('Spirit Temple Child Right Chest'), lambda state: state.has('Boomerang') or state.has_slingshot() or state.has_bombchus()) + set_rule(world.get_location('Spirit Temple Child Left Chest'), lambda state: (state.has('Boomerang') or state.has_slingshot() or state.has_bombchus()) and (state.has_sticks() or state.has_explosives() or ((state.has_nuts() or state.has('Boomerang')) and (state.has('Kokiri Sword') or state.has_slingshot())))) + set_rule(world.get_location('Spirit Temple Child Right Chest'), lambda state: (state.has('Boomerang') or state.has_slingshot() or state.has_bombchus()) and (state.has_sticks() or state.has_explosives() or ((state.has_nuts() or state.has('Boomerang')) and (state.has('Kokiri Sword') or state.has_slingshot()))) and (state.has_sticks() or (state.has('Dins Fire') and state.has('Magic Meter')))) set_rule(world.get_location('Spirit Temple Compass Chest'), lambda state: state.has('Progressive Hookshot') and state.can_play('Zeldas Lullaby')) set_rule(world.get_location('Spirit Temple Early Adult Right Chest'), lambda state: state.has_bow() or state.has('Progressive Hookshot') or state.has_bombchus()) #requires a very specific Bombchu use, Hover Boots can be skipped by jumping on top of the rolling rock. set_rule(world.get_location('Spirit Temple First Mirror Right Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3)) set_rule(world.get_location('Spirit Temple First Mirror Left Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3)) - set_rule(world.get_location('Spirit Temple Map Chest'), lambda state: ((state.has_explosives() or state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and world.bombchus_in_logic)) and state.has('Magic Meter') and (state.has('Dins Fire') or (state.has('Fire Arrows') and state.has_bow()))) or (state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit') and (state.has_sticks() or (state.has('Magic Meter') and state.has('Dins Fire'))))) + # All of these paths that include a check for bombchus_in_logic need to ensure that you have access to bombchu refills as well. That's currently always true thanks to bombchu bowling. But other the sources require bombchus already to be bought, which is not how we'd need it to work if bombchu refills were suddenly to become more scarce. So for now I opted not to put in the check for bombchu refills. + set_rule(world.get_location('Spirit Temple Map Chest'), lambda state: ((state.has_explosives() or state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and world.bombchus_in_logic)) and state.has('Magic Meter') and (state.has('Dins Fire') or (state.has('Fire Arrows') and state.has_bow() and state.has_sticks()))) or (state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit') and state.has_sticks()) or (state.has('Small Key (Spirit Temple)', 3) and state.has('Fire Arrows') and state.has('Magic Meter') and state.has_bow() and state.has('Progressive Strength Upgrade', 2) and state.is_adult())) set_rule(world.get_location('Spirit Temple Child Climb East Chest'), lambda state: state.has_explosives() or ((state.has('Boomerang') or state.has_slingshot()) and (state.has('Progressive Hookshot') or state.has_bow())) or ((state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and world.bombchus_in_logic)) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and (state.has('Progressive Hookshot') or state.has_bow())) or (state.has('Small Key (Spirit Temple)', 5) and state.can_play('Requiem of Spirit') and (state.has('Boomerang') or state.has_slingshot()))) set_rule(world.get_location('Spirit Temple Child Climb North Chest'), lambda state: state.has_explosives() or ((state.has('Boomerang') or state.has_slingshot()) and (state.has('Progressive Hookshot') or state.has_bow())) or ((state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and world.bombchus_in_logic)) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and (state.has('Progressive Hookshot') or state.has_bow())) or (state.has('Small Key (Spirit Temple)', 5) and state.can_play('Requiem of Spirit') and (state.has('Boomerang') or state.has_slingshot()))) - set_rule(world.get_location('Spirit Temple Sun Block Room Chest'), lambda state: ((state.has_explosives() or state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and world.bombchus_in_logic)) and state.has('Magic Meter') and (state.has('Dins Fire') or (state.has('Fire Arrows') and state.has('Bow')))) or (state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit') and (state.has_sticks() or (state.has('Magic Meter') and state.has('Dins Fire'))))) + set_rule(world.get_location('Spirit Temple Sun Block Room Chest'), lambda state: ((state.has_explosives() or state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and world.bombchus_in_logic)) and state.has('Magic Meter') and (state.has('Dins Fire') or (state.has('Fire Arrows') and state.has_bow() and state.has_sticks()))) or (state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit') and state.has_sticks()) or (state.has('Small Key (Spirit Temple)', 3) and state.has('Fire Arrows') and state.has('Magic Meter') and state.has_bow() and state.has('Progressive Strength Upgrade', 2) and state.is_adult())) set_rule(world.get_location('Spirit Temple Statue Hand Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.can_play('Zeldas Lullaby')) set_rule(world.get_location('Spirit Temple NE Main Room Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.can_play('Zeldas Lullaby') and (state.has('Progressive Hookshot') or state.has("Hover Boots"))) set_rule(world.get_location('Mirror Shield Chest'), lambda state: state.has('Small Key (Spirit Temple)', 4) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.has_explosives()) @@ -508,11 +508,11 @@ def dung_rules_spt0(world): set_rule(world.get_location('Twinrova Heart'), lambda state: state.has('Mirror Shield') and state.has_explosives() and state.has('Progressive Hookshot') and state.has('Boss Key (Spirit Temple)')) # GS - set_rule(world.get_location('GS Spirit Temple Metal Fence'), lambda state: state.has('Boomerang') or state.has_slingshot() or state.has_bombchus()) + set_rule(world.get_location('GS Spirit Temple Metal Fence'), lambda state: (state.has('Boomerang') or state.has_slingshot() or state.has_bombchus()) and (state.has_sticks() or state.has_explosives() or ((state.has_nuts() or state.has('Boomerang')) and (state.has('Kokiri Sword') or state.has_slingshot())))) set_rule(world.get_location('GS Spirit Temple Hall to West Iron Knuckle'), lambda state: (state.has_explosives() and state.has('Boomerang') and state.has('Progressive Hookshot')) or (state.has('Boomerang') and state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit')) or (state.has('Progressive Hookshot') and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and (state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and state.has('Boomerang') and world.bombchus_in_logic)))) set_rule(world.get_location('GS Spirit Temple Boulder Room'), lambda state: state.can_play('Song of Time') and (state.has_bow() or state.has('Progressive Hookshot') or state.has_bombchus())) set_rule(world.get_location('GS Spirit Temple Lobby'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.has('Small Key (Spirit Temple)', 3) and state.is_adult() and (state.has('Progressive Hookshot', 2) or (state.has('Progressive Hookshot') and state.has_ocarina()) or state.has('Hover Boots'))) - set_rule(world.get_location('GS Spirit Temple Bomb for Light Room'), lambda state: (state.has('Small Key (Spirit Temple)', 1) and state.can_play('Requiem of Spirit') and state.can_child_attack()) or (state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.has('Small Key (Spirit Temple)', 1))) + set_rule(world.get_location('GS Spirit Temple Bomb for Light Room'), lambda state: state.can_child_attack() or ((state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and world.bombchus_in_logic)) and state.has('Progressive Strength Upgrade', 2) and state.is_adult())) def dung_rules_sht0(world): # Shadow Temple Vanilla From 78c7beca020a100bdccf9c90a03696dbb62d41ab Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Thu, 6 Sep 2018 02:58:04 -0300 Subject: [PATCH 410/755] has('Bomb Bag') to has_bombs() Couple of extra has('Bomb Bag')'s hanging around. Changed them to Bombs, not that it matters... --- Rules.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Rules.py b/Rules.py index 8c0c830ca..66feee8b4 100644 --- a/Rules.py +++ b/Rules.py @@ -382,8 +382,8 @@ def dung_rules_dc0(world): set_rule(world.get_entrance('Dodongos Cavern Bomb Drop'), lambda state: state.has_explosives()) # Boss - set_rule(world.get_location('King Dodongo'), lambda state: (state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) and (state.is_adult() or state.has_sticks() or state.has('Kokiri Sword'))) - set_rule(world.get_location('King Dodongo Heart'), lambda state: (state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) and (state.is_adult() or state.has_sticks() or state.has('Kokiri Sword'))) + set_rule(world.get_location('King Dodongo'), lambda state: (state.has_bombs() or state.has('Progressive Strength Upgrade')) and (state.is_adult() or state.has_sticks() or state.has('Kokiri Sword'))) + set_rule(world.get_location('King Dodongo Heart'), lambda state: (state.has_bombs() or state.has('Progressive Strength Upgrade')) and (state.is_adult() or state.has_sticks() or state.has('Kokiri Sword'))) # GS set_rule(world.get_location('GS Dodongo\'s Cavern East Side Room'), lambda state: state.has_explosives() or state.is_adult() or state.has_slingshot() or state.has('Boomerang') or state.has_sticks() or state.has('Kokiri Sword')) @@ -523,7 +523,7 @@ def dung_rules_sht0(world): set_rule(world.get_location('Shadow Temple Falling Spikes Upper Chest'), lambda state: state.has('Progressive Strength Upgrade')) set_rule(world.get_location('Shadow Temple Falling Spikes Switch Chest'), lambda state: state.has('Progressive Strength Upgrade')) set_rule(world.get_location('Shadow Temple Invisible Spikes Chest'), lambda state: state.has('Small Key (Shadow Temple)', 2)) - set_rule(world.get_location('Shadow Temple Freestanding Key'), lambda state: state.has('Small Key (Shadow Temple)', 2) and state.has('Progressive Hookshot') and (state.has('Bomb Bag') or state.has('Progressive Strength Upgrade'))) + set_rule(world.get_location('Shadow Temple Freestanding Key'), lambda state: state.has('Small Key (Shadow Temple)', 2) and state.has('Progressive Hookshot') and (state.has_bombs() or state.has('Progressive Strength Upgrade'))) # boss rules set_rule(world.get_location('Bongo Bongo'), lambda state: state.has('Small Key (Shadow Temple)', 5) and (state.has_bow() or state.has('Progressive Hookshot', 2)) and state.has('Boss Key (Shadow Temple)')) From 2f5db9e481ddcdc2b7ea4efa4f5ccaf9d2c6cc71 Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Thu, 6 Sep 2018 03:24:56 -0300 Subject: [PATCH 411/755] Fix requiring buying tunics from bombchu shop --- Rules.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Rules.py b/Rules.py index 66feee8b4..7bf05fb86 100644 --- a/Rules.py +++ b/Rules.py @@ -340,7 +340,7 @@ def set_shop_rules(world): add_rule(location, lambda state: state.is_adult() and (state.has_explosives() or state.has('Progressive Strength Upgrade') or state.has_bow())) elif location.parent_region.name == 'Zora Shop': add_rule(location, lambda state: state.can_reach('Zora Shop Adult Access', 'Entrance')) - elif location.parent_region.name in ['Bombchu Shop', 'Castle Town Potion Shop', 'Castle Town Bazaar']: + elif location.parent_region.name in ['Castle Town Bombchu Shop', 'Castle Town Potion Shop', 'Castle Town Bazaar']: set_rule(location, lambda state: False) else: add_rule(location, lambda state: state.is_adult()) From bd8451722909f52b7699cc582cc1104cc6725ec6 Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Thu, 6 Sep 2018 05:19:17 -0300 Subject: [PATCH 412/755] Actually patch the files (and the comma thing too) --- Patches.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Patches.py b/Patches.py index a06c979a4..cceeae9a4 100644 --- a/Patches.py +++ b/Patches.py @@ -1319,6 +1319,8 @@ def write_save_table(rom): elif world.background_music == 'off': disable_music(rom) + patch_files(world, rom) + # patch tunic colors # Custom color tunic stuff Tunics = [] @@ -1672,4 +1674,4 @@ def disable_music(rom): blank_track = rom.read_bytes(0xB89AE0 + (0 * 0x10), 0x10) for bgm in bgm_sequence_ids: rom.write_bytes(0xB89AE0 + (bgm[1] * 0x10), blank_track) - \ No newline at end of file + From 6ff759ac8518e9fa22e3d5a8f0f4e6dfe6de66b7 Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Thu, 6 Sep 2018 05:21:14 -0300 Subject: [PATCH 413/755] Comma --- HintList.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HintList.py b/HintList.py index 6659074f0..00410a862 100644 --- a/HintList.py +++ b/HintList.py @@ -174,7 +174,7 @@ def getHintGroup(string, world): 'Gerudo Training Grounds Underwater Silver Rupee Chest': ("They say those who seek&sunken silver rupees will&find", 'location'), 'Gerudo Training Grounds Maze Path Final Chest': ("They say the final prize&of the thieves\' training&is", 'location'), 'Gerudo Training Grounds MQ Underwater Silver Rupee Chest': ("They say those who seek&sunken silver rupees will&find", 'location'), - 'Gerudo Training Grounds MQ Ice Arrows Chest': ("They say the final prize&of the thieves\' training&is" 'location'), + 'Gerudo Training Grounds MQ Ice Arrows Chest': ("They say the final prize&of the thieves\' training&is", 'location'), 'Bottom of the Well Defeat Boss': ("They say that Dead Hand&holds", 'location'), 'Silver Gauntlets Chest': ("They say that upon&the Colossus's southern edge&is", 'location'), 'Mirror Shield Chest': ("They say that upon&the Colossus's northern edge&is", 'location'), From c6c0b27354fb40d5bc23ab5121e60d0a7e81075b Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 6 Sep 2018 20:02:57 -0400 Subject: [PATCH 414/755] Magic is a big chest (slow animation), map/compass a small chest --- ASM/src/extended_items.asm | 48 ++++++++++----------- Patches.py | 22 ++++++++++ data/base2current.json | 86 +++++++++++++++++++------------------- version.py | 2 +- 4 files changed, 90 insertions(+), 68 deletions(-) diff --git a/ASM/src/extended_items.asm b/ASM/src/extended_items.asm index 328851594..a2e00e0c5 100755 --- a/ASM/src/extended_items.asm +++ b/ASM/src/extended_items.asm @@ -76,27 +76,27 @@ Item_Row 0x53, 0x41, 0x0A, 0x1E, 0x00B9, no_upgrade, give_dungeon_item, 0x01, SP Item_Row 0x53, 0x41, 0x0A, 0x2A, 0x00B9, no_upgrade, give_dungeon_item, 0x01, SHADOW_ID ; 0x96 = Shadow Temple Boss Key Item_Row 0x53, 0x41, 0x0A, 0x61, 0x00B9, no_upgrade, give_dungeon_item, 0x01, TOWER_ID ; 0x97 = Ganon's Castle Boss Key -Item_Row 0x53, 0x41, 0x0B, 0x62, 0x00B8, no_upgrade, give_dungeon_item, 0x02, DEKU_ID ; 0x98 = Deku Tree Compass -Item_Row 0x53, 0x41, 0x0B, 0x63, 0x00B8, no_upgrade, give_dungeon_item, 0x02, DODONGO_ID ; 0x99 = Dodongo's Cavern Compass -Item_Row 0x53, 0x41, 0x0B, 0x64, 0x00B8, no_upgrade, give_dungeon_item, 0x02, JABU_ID ; 0x9A = Jabu Jabu Compass -Item_Row 0x53, 0x41, 0x0B, 0x65, 0x00B8, no_upgrade, give_dungeon_item, 0x02, FOREST_ID ; 0x9B = Forest Temple Compass -Item_Row 0x53, 0x41, 0x0B, 0x7C, 0x00B8, no_upgrade, give_dungeon_item, 0x02, FIRE_ID ; 0x9C = Fire Temple Compass -Item_Row 0x53, 0x41, 0x0B, 0x7D, 0x00B8, no_upgrade, give_dungeon_item, 0x02, WATER_ID ; 0x9D = Water Temple Compass -Item_Row 0x53, 0x41, 0x0B, 0x7E, 0x00B8, no_upgrade, give_dungeon_item, 0x02, SPIRIT_ID ; 0x9E = Spirit Temple Compass -Item_Row 0x53, 0x41, 0x0B, 0x7F, 0x00B8, no_upgrade, give_dungeon_item, 0x02, SHADOW_ID ; 0x9F = Shadow Temple Compass -Item_Row 0x53, 0x41, 0x0B, 0xA2, 0x00B8, no_upgrade, give_dungeon_item, 0x02, BOTW_ID ; 0xA0 = Bottom of the Well Compass -Item_Row 0x53, 0x41, 0x0B, 0x87, 0x00B8, no_upgrade, give_dungeon_item, 0x02, ICE_ID ; 0xA1 = Ice Cavern Compass - -Item_Row 0x53, 0x41, 0x1C, 0x88, 0x00C8, no_upgrade, give_dungeon_item, 0x04, DEKU_ID ; 0xA2 = Deku Tree Map -Item_Row 0x53, 0x41, 0x1C, 0x89, 0x00C8, no_upgrade, give_dungeon_item, 0x04, DODONGO_ID ; 0xA3 = Dodongo's Cavern Map -Item_Row 0x53, 0x41, 0x1C, 0x8A, 0x00C8, no_upgrade, give_dungeon_item, 0x04, JABU_ID ; 0xA4 = Jabu Jabu Map -Item_Row 0x53, 0x41, 0x1C, 0x8B, 0x00C8, no_upgrade, give_dungeon_item, 0x04, FOREST_ID ; 0xA5 = Forest Temple Map -Item_Row 0x53, 0x41, 0x1C, 0x8C, 0x00C8, no_upgrade, give_dungeon_item, 0x04, FIRE_ID ; 0xA6 = Fire Temple Map -Item_Row 0x53, 0x41, 0x1C, 0x8E, 0x00C8, no_upgrade, give_dungeon_item, 0x04, WATER_ID ; 0xA7 = Water Temple Map -Item_Row 0x53, 0x41, 0x1C, 0x8F, 0x00C8, no_upgrade, give_dungeon_item, 0x04, SPIRIT_ID ; 0xA8 = Spirit Temple Map -Item_Row 0x53, 0x41, 0x1C, 0xA3, 0x00C8, no_upgrade, give_dungeon_item, 0x04, SHADOW_ID ; 0xA9 = Shadow Temple Map -Item_Row 0x53, 0x41, 0x1C, 0xA5, 0x00C8, no_upgrade, give_dungeon_item, 0x04, BOTW_ID ; 0xAA = Bottom of the Well Map -Item_Row 0x53, 0x41, 0x1C, 0x92, 0x00C8, no_upgrade, give_dungeon_item, 0x04, ICE_ID ; 0xAB = Ice Cavern Map +Item_Row 0x4D, 0x41, 0xF5, 0x62, 0x00B8, no_upgrade, give_dungeon_item, 0x02, DEKU_ID ; 0x98 = Deku Tree Compass +Item_Row 0x4D, 0x41, 0xF5, 0x63, 0x00B8, no_upgrade, give_dungeon_item, 0x02, DODONGO_ID ; 0x99 = Dodongo's Cavern Compass +Item_Row 0x4D, 0x41, 0xF5, 0x64, 0x00B8, no_upgrade, give_dungeon_item, 0x02, JABU_ID ; 0x9A = Jabu Jabu Compass +Item_Row 0x4D, 0x41, 0xF5, 0x65, 0x00B8, no_upgrade, give_dungeon_item, 0x02, FOREST_ID ; 0x9B = Forest Temple Compass +Item_Row 0x4D, 0x41, 0xF5, 0x7C, 0x00B8, no_upgrade, give_dungeon_item, 0x02, FIRE_ID ; 0x9C = Fire Temple Compass +Item_Row 0x4D, 0x41, 0xF5, 0x7D, 0x00B8, no_upgrade, give_dungeon_item, 0x02, WATER_ID ; 0x9D = Water Temple Compass +Item_Row 0x4D, 0x41, 0xF5, 0x7E, 0x00B8, no_upgrade, give_dungeon_item, 0x02, SPIRIT_ID ; 0x9E = Spirit Temple Compass +Item_Row 0x4D, 0x41, 0xF5, 0x7F, 0x00B8, no_upgrade, give_dungeon_item, 0x02, SHADOW_ID ; 0x9F = Shadow Temple Compass +Item_Row 0x4D, 0x41, 0xF5, 0xA2, 0x00B8, no_upgrade, give_dungeon_item, 0x02, BOTW_ID ; 0xA0 = Bottom of the Well Compass +Item_Row 0x4D, 0x41, 0xF5, 0x87, 0x00B8, no_upgrade, give_dungeon_item, 0x02, ICE_ID ; 0xA1 = Ice Cavern Compass + +Item_Row 0x4D, 0x41, 0xE4, 0x88, 0x00C8, no_upgrade, give_dungeon_item, 0x04, DEKU_ID ; 0xA2 = Deku Tree Map +Item_Row 0x4D, 0x41, 0xE4, 0x89, 0x00C8, no_upgrade, give_dungeon_item, 0x04, DODONGO_ID ; 0xA3 = Dodongo's Cavern Map +Item_Row 0x4D, 0x41, 0xE4, 0x8A, 0x00C8, no_upgrade, give_dungeon_item, 0x04, JABU_ID ; 0xA4 = Jabu Jabu Map +Item_Row 0x4D, 0x41, 0xE4, 0x8B, 0x00C8, no_upgrade, give_dungeon_item, 0x04, FOREST_ID ; 0xA5 = Forest Temple Map +Item_Row 0x4D, 0x41, 0xE4, 0x8C, 0x00C8, no_upgrade, give_dungeon_item, 0x04, FIRE_ID ; 0xA6 = Fire Temple Map +Item_Row 0x4D, 0x41, 0xE4, 0x8E, 0x00C8, no_upgrade, give_dungeon_item, 0x04, WATER_ID ; 0xA7 = Water Temple Map +Item_Row 0x4D, 0x41, 0xE4, 0x8F, 0x00C8, no_upgrade, give_dungeon_item, 0x04, SPIRIT_ID ; 0xA8 = Spirit Temple Map +Item_Row 0x4D, 0x41, 0xE4, 0xA3, 0x00C8, no_upgrade, give_dungeon_item, 0x04, SHADOW_ID ; 0xA9 = Shadow Temple Map +Item_Row 0x4D, 0x41, 0xE4, 0xA5, 0x00C8, no_upgrade, give_dungeon_item, 0x04, BOTW_ID ; 0xAA = Bottom of the Well Map +Item_Row 0x4D, 0x41, 0xE4, 0x92, 0x00C8, no_upgrade, give_dungeon_item, 0x04, ICE_ID ; 0xAB = Ice Cavern Map Item_Row 0x53, 0x41, 0x02, 0x93, 0x00AA, no_upgrade, give_small_key, FOREST_ID, -1 ; 0xAC = Forest Temple Small Key Item_Row 0x53, 0x41, 0x02, 0x94, 0x00AA, no_upgrade, give_small_key, FIRE_ID, -1 ; 0xAD = Fire Temple Small Key @@ -120,9 +120,9 @@ Item_Row 0x4D, 0x90, 0xE0, 0x32, 0x00CE, bombs_to_rupee, no_effect, -1, -1 ; 0x Item_Row 0x4D, 0x8C, 0xEE, 0x34, 0x00BB, no_upgrade, no_effect, -1, -1 ; 0xBD = Deku Nuts (5) Item_Row 0x4D, 0x8D, 0xEE, 0x34, 0x00BB, no_upgrade, no_effect, -1, -1 ; 0xBE = Deku Nuts (10) -Item_Row 0x4F, 0x41, 0x13, 0xE9, 0x00BD, no_upgrade, give_defense, -1, -1 ; 0xBF = Double Defense -Item_Row 0x4F, 0x41, 0x1E, 0xE4, 0x00CD, magic_upgrade, give_magic, -1, -1 ; 0xC0 = Progressive Magic Meter -Item_Row 0x4F, 0x41, 0x1F, 0xE8, 0x00CD, no_upgrade, double_magic, -1, -1 ; 0xC1 = Double Magic +Item_Row 0x4F, 0x41, 0xED, 0xE9, 0x00BD, no_upgrade, give_defense, -1, -1 ; 0xBF = Double Defense +Item_Row 0x53, 0x41, 0x1E, 0xE4, 0x00CD, magic_upgrade, give_magic, -1, -1 ; 0xC0 = Progressive Magic Meter +Item_Row 0x53, 0x41, 0x1F, 0xE8, 0x00CD, no_upgrade, double_magic, -1, -1 ; 0xC1 = Double Magic Item_Row -1, -1, -1, -1, -1, bombchu_upgrade, no_effect, -1, -1 ; 0xC2 = Progressive Bombchus Item_Row 0x53, 0x41, 0x46, 0x4A, 0x010E, ocarina_upgrade, give_fairy_ocarina, -1, -1 ; 0xC3 = Progressive Ocarina diff --git a/Patches.py b/Patches.py index e33f596e1..37aee3217 100644 --- a/Patches.py +++ b/Patches.py @@ -1434,6 +1434,7 @@ def get_override_entry(location): if None in [scene, default, item_id]: return [] + item_id = 0x9E player_id = (location.item.world.id + 1) << 3 if location.type in ['NPC', 'BossHeart', 'Song']: @@ -1472,6 +1473,26 @@ def get_override_entry(location): chestAnimationExtendedFast = [ 0x87, # Progressive Nut Capacity 0x88, # Progressive Stick Capacity + 0x98, # Deku Tree Compass + 0x99, # Dodongo's Cavern Compass + 0x9A, # Jabu Jabu Compass + 0x9B, # Forest Temple Compass + 0x9C, # Fire Temple Compass + 0x9D, # Water Temple Compass + 0x9E, # Spirit Temple Compass + 0x9F, # Shadow Temple Compass + 0xA0, # Bottom of the Well Compass + 0xA1, # Ice Cavern Compass + 0xA2, # Deku Tree Map + 0xA3, # Dodongo's Cavern Map + 0xA4, # Jabu Jabu Map + 0xA5, # Forest Temple Map + 0xA6, # Fire Temple Map + 0xA7, # Water Temple Map + 0xA8, # Spirit Temple Map + 0xA9, # Shadow Temple Map + 0xAA, # Bottom of the Well Map + 0xAB, # Ice Cavern Map 0xB6, # Recovery Heart 0xB7, # Arrows (5) 0xB8, # Arrows (10) @@ -1481,6 +1502,7 @@ def get_override_entry(location): 0xBC, # Bombs (20) 0xBD, # Deku Nuts (5) 0xBE, # Deku Nuts (10) + 0xBF, # Double Defense ] diff --git a/data/base2current.json b/data/base2current.json index fd0f01852..b1918224e 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -2042,9 +2042,9 @@ 64, 37, 80, - 83, + 77, 65, - 11, + 245, 98 ] }, @@ -2064,9 +2064,9 @@ 64, 37, 80, - 83, + 77, 65, - 11, + 245, 99 ] }, @@ -2083,9 +2083,9 @@ 64, 37, 80, - 83, + 77, 65, - 11, + 245, 100 ] }, @@ -2102,9 +2102,9 @@ 64, 37, 80, - 83, + 77, 65, - 11, + 245, 101 ] }, @@ -2121,9 +2121,9 @@ 64, 37, 80, - 83, + 77, 65, - 11, + 245, 124 ] }, @@ -2140,9 +2140,9 @@ 64, 37, 80, - 83, + 77, 65, - 11, + 245, 125 ] }, @@ -2159,9 +2159,9 @@ 64, 37, 80, - 83, + 77, 65, - 11, + 245, 126 ] }, @@ -2178,9 +2178,9 @@ 64, 37, 80, - 83, + 77, 65, - 11, + 245, 127 ] }, @@ -2197,9 +2197,9 @@ 64, 37, 80, - 83, + 77, 65, - 11, + 245, 162 ] }, @@ -2216,9 +2216,9 @@ 64, 37, 80, - 83, + 77, 65, - 11, + 245, 135 ] }, @@ -2235,9 +2235,9 @@ 64, 37, 80, - 83, + 77, 65, - 28, + 228, 136 ] }, @@ -2257,9 +2257,9 @@ 64, 37, 80, - 83, + 77, 65, - 28, + 228, 137 ] }, @@ -2276,9 +2276,9 @@ 64, 37, 80, - 83, + 77, 65, - 28, + 228, 138 ] }, @@ -2295,9 +2295,9 @@ 64, 37, 80, - 83, + 77, 65, - 28, + 228, 139 ] }, @@ -2314,9 +2314,9 @@ 64, 37, 80, - 83, + 77, 65, - 28, + 228, 140 ] }, @@ -2333,9 +2333,9 @@ 64, 37, 80, - 83, + 77, 65, - 28, + 228, 142 ] }, @@ -2352,9 +2352,9 @@ 64, 37, 80, - 83, + 77, 65, - 28, + 228, 143 ] }, @@ -2371,9 +2371,9 @@ 64, 37, 80, - 83, + 77, 65, - 28, + 228, 163 ] }, @@ -2390,9 +2390,9 @@ 64, 37, 80, - 83, + 77, 65, - 28, + 228, 165 ] }, @@ -2409,9 +2409,9 @@ 64, 37, 80, - 83, + 77, 65, - 28, + 228, 146 ] }, @@ -2791,7 +2791,7 @@ 80, 79, 65, - 19, + 237, 233 ] }, @@ -2808,7 +2808,7 @@ 64, 37, 80, - 79, + 83, 65, 30, 228 @@ -2827,7 +2827,7 @@ 64, 38, 132, - 79, + 83, 65, 31, 232 diff --git a/version.py b/version.py index 56c2449a4..3f0499f2c 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.47 f.LUM' +__version__ = '2.15.48 f.LUM' From c454e8acff41c60d73e89a1db64ccee5999c0cbd Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 6 Sep 2018 20:32:10 -0400 Subject: [PATCH 415/755] verify_dma properly checks for overlaps. throws exception on failure --- MQ.py | 37 +++++++++++++++++++------------------ version.py | 2 +- 2 files changed, 20 insertions(+), 19 deletions(-) diff --git a/MQ.py b/MQ.py index ff2f37092..106493520 100644 --- a/MQ.py +++ b/MQ.py @@ -270,32 +270,33 @@ def test_remap(file:File): def verify_dma(rom:LocalRom): cur = DMA_TABLE - - next_start = -1 - errors = [] + overlapping_records = [] + dma_data = [] while True: this_start, this_end, this_size = get_dma_record(rom, cur) - next_start, next_end, next_size = get_dma_record(rom, cur + 0x10) - if next_start == 0 and next_end == 0: + if this_start == 0 and this_end == 0: break - if this_end > next_start: - errors.append('dmadata info') - st, e, si = get_dma_record(rom, cur-0x10) - errors.append("{0:x} {1:x} {2:x}".format(st, e, si)) - st, e, si = get_dma_record(rom, cur) - errors.append("{0:x} {1:x} {2:x} <-- overlapping record".format(st, e, si)) - st, e, si = get_dma_record(rom, cur+0x10) - errors.append("{0:x} {1:x} {2:x}".format(st, e, si)) - next_start = this_start + dma_data.append((this_start, this_end, this_size)) cur += 0x10 - if len(errors) > 0: - for e in errors: - print(e) - Exception("overlapping dmadata records!") + dma_data.sort(key=lambda v: v[0]) + + for i in range(0, len(dma_data) - 1): + this_start, this_end, this_size = dma_data[i] + next_start, next_end, next_size = dma_data[i + 1] + + if this_end > next_start: + overlapping_records.append( + '0x%08X - 0x%08X (Size: 0x%04X)\n0x%08X - 0x%08X (Size: 0x%04X)' % \ + (this_start, this_end, this_size, next_start, next_end, next_size) + ) + + if len(overlapping_records) > 0: + raise Exception("Overlapping DMA Data Records!\n%s" % \ + '\n-------------------------------------\n'.join(overlapping_records)) def update_dmadata(rom:LocalRom, file:File): diff --git a/version.py b/version.py index f942a0bf2..e54bcb824 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.16.17 f.LUM' +__version__ = '2.16.18 f.LUM' From 516c5f3c26a2bab066cecd7fa23fd82d08d549ae Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 6 Sep 2018 20:51:22 -0400 Subject: [PATCH 416/755] Removed debug line --- Patches.py | 1 - version.py | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/Patches.py b/Patches.py index 37aee3217..549dc54b2 100644 --- a/Patches.py +++ b/Patches.py @@ -1434,7 +1434,6 @@ def get_override_entry(location): if None in [scene, default, item_id]: return [] - item_id = 0x9E player_id = (location.item.world.id + 1) << 3 if location.type in ['NPC', 'BossHeart', 'Song']: diff --git a/version.py b/version.py index 3f0499f2c..f4fd1343f 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.48 f.LUM' +__version__ = '2.15.49 f.LUM' From 29c3b1737b2cc0d6ade41bfd6b18fc0e46d1f7d5 Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 6 Sep 2018 21:01:47 -0400 Subject: [PATCH 417/755] Fix dungeon scrubs sometimes not spawning --- ASM/src/shop.asm | 6 +++--- data/base2current.json | 6 +++--- version.py | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/ASM/src/shop.asm b/ASM/src/shop.asm index 03aec3b2c..db5e5007e 100644 --- a/ASM/src/shop.asm +++ b/ASM/src/shop.asm @@ -107,7 +107,7 @@ Deku_Check_Sold_Out: mflo t5 ; Permanant flag entry offset add t6, t1, t5 - lw t7, 0x10(t6) ; Saleman bitflag (originally unused) + lw t7, 0xE4(t6) ; Saleman bitflag (originally unused) and v0, t4, t7 ; return if flag is set @@ -137,10 +137,10 @@ Deku_Set_Sold_Out: mflo t5 ; Permanant flag entry offset add t6, t1, t5 - lw t7, 0x10(t6) ; Saleman bitflag (originally unused) + lw t7, 0xE4(t6) ; Saleman bitflag [0xD0 (PFlag Table) + 0x10 (unused offself)] or t7, t4, t7 ; return if flag is set - sw t7, 0x10(t6) + sw t7, 0xE4(t6) jr ra nop diff --git a/data/base2current.json b/data/base2current.json index 80b972d12..08e03fa5f 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -7630,7 +7630,7 @@ }, { "55062895": [ - 16, + 228, 1, 143, 16, @@ -7749,7 +7749,7 @@ }, { "55062979": [ - 16, + 228, 1, 143, 120, @@ -7760,7 +7760,7 @@ }, { "55062987": [ - 16, + 228, 3, 224 ] diff --git a/version.py b/version.py index 5d92e2968..e019ffda1 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.16.19 f.LUM' +__version__ = '2.16.20 f.LUM' From 3d38a634b088157e85a952d21bbed7540589ebe2 Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 6 Sep 2018 21:30:37 -0400 Subject: [PATCH 418/755] Fix grotto scene id data even when shuffle scrubs is off --- Gui.py | 4 ++-- Patches.py | 20 ++++++++++++++------ version.py | 2 +- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/Gui.py b/Gui.py index 76ce46e1e..7a6d03a2b 100755 --- a/Gui.py +++ b/Gui.py @@ -255,7 +255,7 @@ def open_readme(): # create a variable to access the box's state guivars[info.name] = IntVar(value=default_value) # create the checkbox - widgets[info.name] = Checkbutton(frames[info.gui_params['group']], text=info.gui_params['text'], variable=guivars[info.name], justify=LEFT, wraplength=200, command=show_settings) + widgets[info.name] = Checkbutton(frames[info.gui_params['group']], text=info.gui_params['text'], variable=guivars[info.name], justify=LEFT, wraplength=190, command=show_settings) widgets[info.name].pack(expand=False, anchor=W) elif info.gui_params['widget'] == 'Combobox': # create the variable to store the user's decision @@ -289,7 +289,7 @@ def open_readme(): anchor = N # add the radio buttons for option in info.gui_params["options"]: - radio_button = Radiobutton(widgets[info.name], text=option, value=option, variable=guivars[info.name], justify=LEFT, wraplength=200, indicatoron=False, command=show_settings) + radio_button = Radiobutton(widgets[info.name], text=option, value=option, variable=guivars[info.name], justify=LEFT, wraplength=190, indicatoron=False, command=show_settings) radio_button.pack(expand=True, side=side, anchor=anchor) # pack the frame widgets[info.name].pack(expand=False, side=TOP, anchor=W, padx=3, pady=3) diff --git a/Patches.py b/Patches.py index 1a0c7b2da..740b68175 100644 --- a/Patches.py +++ b/Patches.py @@ -1319,6 +1319,9 @@ def write_save_table(rom): # update actor IDs set_deku_salesman_data(rom) + + # Update grotto id data + set_grotto_id_data(rom) if world.shuffle_smallkeys == 'remove' or world.shuffle_bosskeys == 'remove': locked_doors = get_locked_doors(rom, world) @@ -1786,8 +1789,8 @@ def get_chest(rom, actor_id, actor, scene): default = (default & 0x0FFF) | newChestType rom.write_int16(actor + 14, default) -def set_deku_salesman_data(rom): - def set_deku_salesman_and_grotto_id(rom, actor_id, actor, scene): +def set_grotto_id_data(rom): + def set_grotto_id(rom, actor_id, actor, scene): if actor_id == 0x009B: #Grotto actor_zrot = rom.read_int16(actor + 12) actor_var = rom.read_int16(actor + 14); @@ -1798,14 +1801,19 @@ def set_deku_salesman_and_grotto_id(rom, actor_id, actor, scene): if grotto_scene == 0 and grotto_entrance in [2, 4, 7, 10]: grotto_scenes.add(scene) rom.write_byte(actor + 15, len(grotto_scenes)) - elif actor_id == 0x0195: #Salesman + + grotto_scenes = set() + + get_actor_list(rom, set_grotto_id) + +def set_deku_salesman_data(rom): + def set_deku_salesman(rom, actor_id, actor, scene): + if actor_id == 0x0195: #Salesman actor_var = rom.read_int16(actor + 14) if actor_var == 6: rom.write_int16(actor + 14, 0x0003) - grotto_scenes = set() - - get_actor_list(rom, set_deku_salesman_and_grotto_id) + get_actor_list(rom, set_deku_salesman) def get_locked_doors(rom, world): def locked_door(rom, actor_id, actor, scene): diff --git a/version.py b/version.py index e019ffda1..2d6ea0d88 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.16.20 f.LUM' +__version__ = '2.16.21 f.LUM' From 856d8369c402e0d35dbfa8205c1b89c41ee6ec09 Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 6 Sep 2018 22:26:05 -0400 Subject: [PATCH 419/755] Fixed issue with scanning alternate room/scene header list --- Patches.py | 19 ++++++++++--------- version.py | 2 +- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/Patches.py b/Patches.py index 740b68175..9f33b71d6 100644 --- a/Patches.py +++ b/Patches.py @@ -1319,7 +1319,7 @@ def write_save_table(rom): # update actor IDs set_deku_salesman_data(rom) - + # Update grotto id data set_grotto_id_data(rom) @@ -1684,7 +1684,7 @@ def get_override_entry(location): def room_get_actors(rom, actor_func, room_data, scene, alternate=None): actors = {} - room_start = alternate or room_data + room_start = alternate if alternate else room_data command = 0 while command != 0x14: # 0x14 = end header command = rom.read_byte(room_data) @@ -1697,10 +1697,10 @@ def room_get_actors(rom, actor_func, room_data, scene, alternate=None): if entry: actors[actor_list] = entry actor_list = actor_list + 16 - if command == 0x18 and scene >= 81 and scene <= 99: # Alternate header list + if command == 0x18: # Alternate header list header_list = room_start + (rom.read_int32(room_data + 4) & 0x00FFFFFF) - for alt_id in range(0,2): - header_data = room_start + (rom.read_int32(header_list + 4) & 0x00FFFFFF) + for alt_id in range(0,3): + header_data = room_start + (rom.read_int32(header_list) & 0x00FFFFFF) if header_data != 0 and not alternate: actors.update(room_get_actors(rom, actor_func, header_data, scene, room_start)) header_list = header_list + 4 @@ -1712,7 +1712,7 @@ def scene_get_actors(rom, actor_func, scene_data, scene, alternate=None, process if processed_rooms == None: processed_rooms = [] actors = {} - scene_start = alternate or scene_data + scene_start = alternate if alternate else scene_data command = 0 while command != 0x14: # 0x14 = end header command = rom.read_byte(scene_data) @@ -1735,10 +1735,10 @@ def scene_get_actors(rom, actor_func, scene_data, scene, alternate=None, process if entry: actors[actor_list] = entry actor_list = actor_list + 16 - if command == 0x18 and scene >= 81 and scene <= 99: # Alternate header list + if command == 0x18: # Alternate header list header_list = scene_start + (rom.read_int32(scene_data + 4) & 0x00FFFFFF) - for alt_id in range(0,2): - header_data = scene_start + (rom.read_int32(header_list + 4) & 0x00FFFFFF) + for alt_id in range(0,3): + header_data = scene_start + (rom.read_int32(header_list) & 0x00FFFFFF) if header_data != 0 and not alternate: actors.update(scene_get_actors(rom, actor_func, header_data, scene, scene_start, processed_rooms)) header_list = header_list + 4 @@ -1792,6 +1792,7 @@ def get_chest(rom, actor_id, actor, scene): def set_grotto_id_data(rom): def set_grotto_id(rom, actor_id, actor, scene): if actor_id == 0x009B: #Grotto + print('%02X %08X' % (scene, actor)) actor_zrot = rom.read_int16(actor + 12) actor_var = rom.read_int16(actor + 14); grotto_scene = actor_var >> 12 diff --git a/version.py b/version.py index 2d6ea0d88..17acdc037 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.16.21 f.LUM' +__version__ = '2.16.22 f.LUM' From 3054fd89f1fd7507724e38589bcbb2e3113b2d8a Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 6 Sep 2018 22:39:45 -0400 Subject: [PATCH 420/755] Disabled MQ temporarily. It's not supported on this branch --- Settings.py | 4 +++- version.py | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Settings.py b/Settings.py index 3012f5321..fc2c181fd 100644 --- a/Settings.py +++ b/Settings.py @@ -860,7 +860,9 @@ def parse_custom_navi_color(s): 'Mixed': Each dungeon will have a random chance to be in either form. - ''' + ''', + 'dependency': lambda guivar: False, + }), Setting_Info('logic_skulltulas', int, 3, True, { diff --git a/version.py b/version.py index f4fd1343f..aad0258ba 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.49 f.LUM' +__version__ = '2.15.50 f.LUM' From 664cd63914c3fdffc377f4112dd484c0901965aa Mon Sep 17 00:00:00 2001 From: Stephen Rollins Date: Thu, 6 Sep 2018 21:31:49 -0600 Subject: [PATCH 421/755] Use more helpful parameter names in hintlist --- HintList.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/HintList.py b/HintList.py index ed3edfc9b..303417983 100644 --- a/HintList.py +++ b/HintList.py @@ -8,10 +8,10 @@ def __init__(self, name, text, type): self.text = text self.type = type -def getHint(string): +def getHint(name): ret = Hint for hint in hintTable: - if string == hint: + if name == hint: text, type = hintTable[hint] ret = Hint(hint, text, type) break @@ -20,11 +20,11 @@ def getHint(string): ret = Hint(hint, text, type) return ret -def getHintGroup(string, world): +def getHintGroup(group, world): ret = [] for hint in hintTable: text, type = hintTable[hint] - if type == string and not (hint in hintExclusions(world)): + if type == group and not (hint in hintExclusions(world)): ret.append(Hint(hint, text, type)) return ret From e43b597b2bcb0aec79cc88bddce3800702ad23c1 Mon Sep 17 00:00:00 2001 From: Stephen Rollins Date: Thu, 6 Sep 2018 21:32:44 -0600 Subject: [PATCH 422/755] Remove redundant HintList entries --- HintList.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/HintList.py b/HintList.py index 303417983..5d3681744 100644 --- a/HintList.py +++ b/HintList.py @@ -236,8 +236,6 @@ def getHintGroup(group, world): 'Gerudo Training Grounds': ("the test of thieves", 'dungeon'), 'Ganons Castle': ("a conquered citadel", 'dungeon'), #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box - 'Spiritual Stone Text Start': ("Ye who owns 3 Spiritual Stones...^", 'boss'), - 'Spiritual Stone Text End': ("Stand with the Ocarina of Time&and play the Song of Time.", 'boss'), 'Queen Gohma': ("One inside an #ancient tree#...^", 'boss'), 'King Dodongo': ("One within an #immense cavern#...^", 'boss'), 'Barinade': ("One in the #belly of a deity#...^", 'boss'), From df5c33e4a3f09fb5f1acf448feb1912e699c2e8b Mon Sep 17 00:00:00 2001 From: mzxrules Date: Thu, 6 Sep 2018 23:51:31 -0400 Subject: [PATCH 423/755] Add Collision Delta to mqu --- data/mqu.json | 36226 +++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 29611 insertions(+), 6615 deletions(-) diff --git a/data/mqu.json b/data/mqu.json index 49f72bbd9..e4875f4e7 100644 --- a/data/mqu.json +++ b/data/mqu.json @@ -532,6891 +532,29689 @@ ], "Actors": [] } - ] - }, - { - "File": { - "Name": "Scene 1", - "Start": "01F12000", - "End": "01F27140", - "RemapStart": null - }, - "Id": 1, - "TActors": [ - "00FF 01FF 0023 0474 0000 FEC0 4000 003F", - "00FF 09FF 0023 0474 0213 FEC0 4000 003F", - "00FF 09FF 0023 0474 0213 FC68 4000 003F", - "07FF 08FF 0023 026C 004C F520 4000 003F", - "07FF 08FF 0023 0251 004C F11A 4000 003F", - "09FF 0CFF 0023 0924 0213 FC68 4000 003F", - "09FF 0AFF 0023 0924 0213 FEC0 4000 003F", - "07FF 00FF 002E 0000 004C F84E 0000 003F", - "04FF 03FF 002E 0AE3 0064 F680 2AAB 0085", - "01FF 03FF 002E 0DE8 0064 FB04 8000 0085", - "0AFF 03FF 002E 10F3 0213 FDA8 8000 0086", - "0CFF 03FF 002E 0EC4 0213 FC68 4000 0086", - "01FF 0BFF 002E 0A00 0000 0078 0000 003F", - "08FF 0EFF 002E 05C1 004C EF7B 8000 007F", - "0DFF 04FF 002E 0981 0064 F4B2 0000 01DE", - "02FF 0FFF 002E F858 0000 FD1C 0000 003F", - "06FF 09FF 002E 0730 019B FA38 0000 01E7", - "05FF 02FF 002E F858 0213 FD24 8000 00A5", - "00FF 05FF 002E F9F4 0213 FEC0 C000 007F", - "01FF 01FF 002E 0DE8 0064 FDD0 0000 00B6", - "10FF 07FF 002E FE98 0010 F520 4000 00A0", - "02FF 00FF 002E FCB8 0000 FA10 4000 0083", - "00FF 04FF 002E 05B4 0050 FC68 4000 009B" ], - "Paths": [], - "Rooms": [ - { - "File": { - "Name": "Scene 1, Room 0", - "Start": "01F28000", - "End": "01F438A0", - "RemapStart": null + "ColDelta": { + "IsLarger": true, + "Polys": [ + { + "Id": 459, + "Type": 11, + "Flags": 0 }, - "Id": 0, - "Objects": [ - "002B", - "018A", - "0031", - "000E", - "0038", - "0168", - "011B", - "0163", - "0024", - "0188", - "00A4", - "0036", - "001F", - "000D", - "0170" - ], - "Actors": [ - "01B9 FC37 0000 FC6C 0000 4000 0000 3E14", - "0058 FE5C FF4C FB64 0000 0000 0000 00FF", - "0058 0000 FF4C FCF4 0000 0000 0000 00FF", - "0058 01A4 FF4C FB64 0000 0000 0000 000A", - "0059 0000 0000 0014 0000 0000 0000 0007", - "0059 0334 0000 FA10 0000 C000 0000 A000", - "0059 FCCC 0000 FC68 0000 4000 0000 A01D", - "0059 0334 0000 FEC0 0000 C000 0000 A01F", - "003F 0000 00C4 F92A 0000 0000 0000 001A", - "011B 0010 FF67 FC05 0096 0000 0032 0C15", - "0112 FFD8 0000 0014 0000 0000 0000 3FD8", - "0112 0000 0000 0014 0000 0000 0000 3FD8", - "0112 0028 0000 0014 0000 0000 0000 3FD8", - "012A FC97 0213 F9FC 0000 4000 0000 0300", - "012A 01AD FF60 F94B 0000 0000 0000 0A00", - "0185 0242 0238 FC5F 0000 4000 0000 0338", - "0195 FC7E 0000 FEE7 0000 4000 0000 0003", - "0195 FC43 0000 FEA4 0000 4000 0000 0001", - "004C FEDB 0014 0133 0000 0000 0000 FFFF", - "004C FFFE 0000 FB6E 0000 0000 0000 FFFF", - "004C 0122 0014 0133 0000 0000 0000 FFFF", - "004C 0352 0213 FC65 0000 0000 0000 FFFF", - "0127 01B0 FF60 F949 0000 0000 0000 000E", - "0127 FE4D FF60 F948 0000 0000 0000 0011", - "0127 030F 0213 FC65 0000 4000 0000 0015", - "0127 0322 0213 FC34 0000 C000 0000 0015", - "0127 0327 0213 FC96 0000 0000 0000 0015", - "000A 03B6 0000 FA11 0000 4000 0000 0820", - "000A 0365 0050 FC68 0000 C000 0000 0644", - "005E FD03 0000 FA83 0000 0000 0000 03C3" - ] - }, - { - "File": { - "Name": "Scene 1, Room 1", - "Start": "01F44000", - "End": "01F4DB00", - "RemapStart": null + { + "Id": 460, + "Type": 11, + "Flags": 0 }, - "Id": 1, - "Objects": [ - "002B", - "018A", - "0031", - "000E", - "0038", - "0168", - "011B", - "0163", - "0024", - "0188", - "00A4", - "0036", - "001F", - "000D", - "0170" - ], - "Actors": [ - "012B 085C FF61 FE97 0000 0000 0000 0001", - "012B 085C FF61 FE20 0000 0000 0000 1201", - "0037 0C9B 0160 FE70 0000 C16C 0000 0001", - "0059 0A00 0000 FF95 0000 8000 0000 A001", - "0013 0D2D 00E7 FEA4 0000 0000 0000 0000", - "002F 0DC1 0064 FC7E 0000 093F 0000 FFFF", - "002F 0E06 0064 FBC2 0000 F1C7 0000 FFFF", - "0111 06BF 0000 FF69 0000 0000 0000 4400", - "0111 0717 0000 FF66 0000 0000 0000 4601", - "0111 0D72 0028 FE2B 0000 0000 0000 5000", - "0111 0E62 0028 FE2E 0000 0000 0000 5210", - "004C 085D 00A0 FD9B 0000 0000 0000 FFFF", - "004C 09A1 0000 FE6D 0000 0000 0000 FFFF", - "004C 0B2F 00A9 FF35 4000 671C 0000 FFFF", - "004C 0B43 00EA FF41 4000 671C 0000 FFFF", - "004C 0B46 0125 FF43 438E 671C 0000 FFFF", - "004C 0B4F 0154 FEEE 8000 0000 0000 FFFF", - "004C 0B5A 006B FF4F 4000 671C 0000 FFFF", - "004C 0B5D 0154 FF2A 8000 0000 0000 FFFF", - "004C 0B7A 0154 FE99 8000 0000 0000 FFFF", - "004C 0B8E 0154 FE3B 8000 0000 0000 FFFF", - "004C 0B90 0154 FEE0 8000 0000 0000 FFFF", - "004C 0BA2 0138 FE03 4000 11C7 0000 FFFF", - "004C 0BAE 0154 FE71 8000 0000 0000 FFFF", - "0127 09A0 0000 FE6E 0000 0000 0000 0008", - "0127 0B7E 00F0 FE11 0000 0000 0000 8012", - "012A 0B7E 0104 FE0C 0000 11C7 0000 3602" - ] - }, - { - "File": { - "Name": "Scene 1, Room 2", - "Start": "01F4E000", - "End": "01F55DA0", - "RemapStart": "1F4DCD0" + { + "Id": 461, + "Type": 12, + "Flags": 0 }, - "Id": 2, - "Objects": [ - "002B", - "018A", - "0031", - "00A4", - "011B", - "0170", - "0024", - "008B", - "0168", - "0039" - ], - "Actors": [ - "012B F85B FF9F F8F8 0000 0000 0000 2200", - "00C7 F893 0000 FC6B 0000 0000 0000 0001", - "0037 F779 02D0 FBA6 0000 C000 0000 0000", - "0037 F930 02D0 FBA6 0000 4000 0000 0000", - "0059 F858 0000 FBF0 0000 8000 0000 A002", - "005C F858 01E0 F894 0000 C000 0000 000B", - "011B F858 0014 FAE9 001E 0024 0000 BF14", - "008A F71B 0000 FAAE 0000 0000 0000 0401", - "008A F993 0000 FAAE 0000 0000 0000 0401", - "005E F7DF 0000 FBAC 0000 0000 0000 2400", - "0117 F71B 0000 FAAE 0000 0000 0000 1165", - "0117 F773 0000 F8D6 0000 0000 0000 1165", - "0117 F695 017C F8D4 0000 0000 0000 1165", - "0117 F88D 0273 FB25 0000 0000 0000 1165", - "0117 FA18 0213 FBC5 0000 0000 0000 1165", - "0117 F93B 0000 FA4B 0000 0000 0000 0165", - "0111 F6A9 0000 F8F4 0000 0000 0000 6603", - "0111 F6C7 0000 FB77 0000 0000 0000 6802", - "0111 FA0B 0000 F8F8 0000 0000 0000 6A02", - "0111 F9EA 0000 FB6F 0000 0000 0000 6C03", - "0195 F857 01EA F844 0000 0000 0000 0004", - "004C F7EA 0014 F97F 0000 0000 0000 FFFF", - "004C F7EA 0014 F9BB 0000 0000 0000 FFFF", - "004C F7EA 0014 F9F7 0000 0000 0000 FFFF", - "004C F7EA 0014 FA33 0000 0000 0000 FFFF", - "004C F7EA 0014 FA6F 0000 0000 0000 FFFF", - "004C F7EA 0014 FAAB 0000 0000 0000 FFFF", - "004C F7EA 0014 FAE7 0000 0000 0000 FFFF", - "004C F808 0037 FC34 4000 4000 0000 FFFF", - "004C F821 0014 FAE7 0000 0000 0000 FFFF", - "004C F891 0014 FAE7 0000 0000 0000 FFFF", - "004C F8CC 0014 F97F 0000 0000 0000 FFFF", - "004C F8CC 0014 F9BB 0000 0000 0000 FFFF", - "004C F8CC 0014 F9F7 0000 0000 0000 FFFF", - "004C F8CC 0014 FA33 0000 0000 0000 FFFF", - "004C F8CC 0014 FA6F 0000 0000 0000 FFFF", - "004C F8CC 0014 FAAB 0000 0000 0000 FFFF", - "004C F8CC 0014 FAE7 0000 0000 0000 FFFF", - "01A0 F695 017C F8D4 0000 0000 0000 FFFF", - "01A0 F696 0213 FBC4 0000 0000 0000 FFFF", - "01A0 F772 0000 F8D5 0000 0000 0000 FFFF", - "01A0 F93E 0000 F8D4 0000 0000 0000 FFFF", - "01A0 FA19 0213 FBC4 0000 0000 0000 FFFF", - "01A0 FA1A 017C F8D3 0000 0000 0000 FFFF" - ] - }, - { - "File": { - "Name": "Scene 1, Room 3", - "Start": "01F56000", - "End": "01F63DC0", - "RemapStart": null + { + "Id": 462, + "Type": 12, + "Flags": 0 }, - "Id": 3, - "Objects": [ - "002B", - "001B", - "0163", - "00A4", - "0024", - "015C" - ], - "Actors": [ - "003B 0F0B 0028 FA0A 0000 0000 0000 0006", - "0025 0F81 0064 F78F 0000 0000 0000 0500", - "0025 0B0D 0064 F857 0000 0000 0000 0501", - "0025 10A5 0213 FBE1 0000 0000 0000 0600", - "0025 115A 0213 FA96 0000 0000 0000 0601", - "0015 10AA 0064 F9D9 0000 ACCD 0000 1803", - "0095 0DF3 0213 F845 0000 0000 0000 8204", - "0111 0F1D 0213 FCD5 0000 0000 0000 5403", - "0111 0F1B 0213 FC37 0000 0000 0000 5603", - "0111 124F 0213 FBD1 0000 0000 0000 5801", - "0111 1255 0213 FB56 0000 0000 0000 5A01", - "0127 0EB0 01D7 FADA 0000 0000 0000 00FF", - "0127 0ED7 01D7 FA99 0000 0000 0000 00FF", - "0127 0EF8 01D7 FA63 0000 0000 0000 00FF", - "0127 0F3A 01D7 FA45 0000 0000 0000 00FF", - "0127 0F7D 01D7 FA3F 0000 0000 0000 00FF", - "0127 0FBC 01D7 FA40 0000 0000 0000 00FF", - "0127 0FE3 0213 FA31 0000 0000 0000 00FF", - "0127 0FFB 0213 FA1A 0000 0000 0000 00FF", - "0127 1025 0213 F9E7 0000 0000 0000 00FF", - "0127 1042 0213 F9D3 0000 0000 0000 00FF", - "0127 1052 01D7 F9BE 0000 0000 0000 00FF", - "0127 107B 01D7 F98D 0000 0000 0000 00FF" - ] - }, - { - "File": { - "Name": "Scene 1, Room 4", - "Start": "01F64000", - "End": "01F6D850", - "RemapStart": null + { + "Id": 570, + "Type": 13, + "Flags": 2 }, - "Id": 4, - "Objects": [ - "002B", - "0031", - "0163", - "00A2", - "0009", - "0170" - ], - "Actors": [ - "000D 06AA 0078 F9C1 0000 45B0 0000 0000", - "000D 06C1 0078 FCA6 0000 0000 0000 0000", - "000D 081F 0078 FB46 0000 BC72 0000 0000", - "0112 06E1 0156 FC2A 0000 0000 0003 18DB", - "0112 07FE 013A F894 0000 0000 0003 18DE", - "0111 0734 0050 F8B5 0000 0000 0000 5C03", - "0111 08E0 0050 F75B 0000 0000 0000 5E00", - "0111 08C0 0050 FAA7 0000 0000 0000 6201", - "0111 05FF 0050 FAED 0000 0000 0000 6403", - "004C 06C7 012D FBD9 5555 C000 0000 FFFF", - "004C 06CE 011B FBA5 5555 B777 0000 FFFF", - "004C 06D4 012D FC01 5555 DC72 0000 FFFF", - "004C 06F3 00F2 FB84 5555 A38E 0000 FFFF", - "004C 0718 00B5 FB77 4000 8000 0000 FFFF", - "004C 0742 007F FB78 4000 8000 0000 FFFF", - "004C 07E1 00B3 F82A 4000 3111 0000 FFFF", - "004C 07E8 011F F836 471C 31C7 0000 FFFF", - "004C 07EB 007F F805 4000 2AAB 0000 FFFF", - "004C 07EC 00F9 F814 5555 3111 0000 FFFF", - "004C 07F8 0128 F87D 471C 51C7 0000 FFFF", - "004C 06F3 0050 FD27 0000 0000 0000 FFFF", - "004C 08B0 0064 F64C 0000 0000 0000 FFFF", - "01A0 08B8 0050 FB3B 0000 C000 0000 FFFF", - "01A0 08B8 0050 FB77 0000 C000 0000 FFFF", - "01A0 08DB 0050 F8A4 0000 C000 0000 FFFF", - "01A0 08DB 0050 F8E0 0000 C000 0000 FFFF", - "01A0 0600 0050 FA55 0000 C000 0000 FFFF", - "01A0 0600 0050 FA91 0000 C000 0000 FFFF", - "01A0 0722 0050 FD18 0000 0000 0000 FFFF", - "01A0 075E 0050 FD18 0000 0000 0000 FFFF", - "009D 06DD 0165 FC11 ACCD 6000 0000 0000", - "009D 07F6 0158 F87B BA50 D27D 0000 0000" - ] - }, - { - "File": { - "Name": "Scene 1, Room 5", - "Start": "01F6E000", - "End": "01F73EE0", - "RemapStart": null + { + "Id": 571, + "Type": 13, + "Flags": 2 }, - "Id": 5, - "Objects": [ - "002B", - "0031", - "000C", - "00A4", - "000D", - "000E", - "012B" - ], - "Actors": [ - "0125 F74A 0213 FDD4 0000 0000 0000 0301", - "0125 F756 0213 FFC8 0000 0000 0000 0301", - "0125 F93D 0213 FFD3 0000 0000 0000 0301", - "0125 F947 0213 FDBD 0000 0000 0000 0301", - "0012 F788 0213 FE98 0000 EE39 0000 FFFF", - "0012 F8E1 0213 FF7F 0000 616C 0000 FFFF", - "0012 F8E7 0213 FE40 0000 B05B 0000 FFFF", - "004C F85B 0277 FEBE 0000 0000 0000 FFFF", - "000A F858 0213 FFE4 0000 0000 0000 1805" - ] - }, - { - "File": { - "Name": "Scene 1, Room 6", - "Start": "01F74000", - "End": "01F76400", - "RemapStart": null + { + "Id": 572, + "Type": 14, + "Flags": 2 }, - "Id": 6, - "Objects": [ - "002B", - "0024", - "0177", - "001E", - "0170", - "000E" - ], - "Actors": [ - "0095 080D 019B F911 0000 8000 0000 8210", - "002B 06B2 0303 F97C 0000 0000 0000 0008", - "002B 06D0 0303 F914 0000 0000 0000 0008", - "002B 072F 0303 F8C2 0000 0000 0000 0008", - "002B 0795 0303 F918 0000 0000 0000 0008", - "002B 07B6 0303 F982 0000 0000 0000 0008", - "01A0 0659 019B F90B 0000 4000 0000 FFFF", - "01A0 0659 019B F947 0000 4000 0000 FFFF", - "01A0 0713 019B F848 0000 0000 0000 FFFF", - "01A0 074F 019B F848 0000 0000 0000 FFFF", - "01A0 0807 019B F912 0000 4000 0000 FFFF", - "01A0 0807 019B F94E 0000 4000 0000 FFFF", - "000A 070F 019B F952 0000 8000 0000 7522" - ] - }, - { - "File": { - "Name": "Scene 1, Room 7", - "Start": "01F77000", - "End": "01F7E6D0", - "RemapStart": null + { + "Id": 573, + "Type": 14, + "Flags": 2 }, - "Id": 7, - "Objects": [ - "002B", - "001F", - "001B", - "0038", - "015C", - "0024", - "0031", - "00A2", - "0154", - "0179", - "012B" - ], - "Actors": [ - "002F FF35 0010 F48F 0000 0000 0000 FFFF", - "002F 0016 0010 F466 0000 2666 0000 FFFF", - "0112 FFC4 004C F762 0000 0000 0000 3FF0", - "0112 FFEC 004C F762 0000 0000 0000 3FF0", - "0112 0014 004C F762 0000 0000 0000 3FF0", - "0112 003C 004C F762 0000 0000 0000 3FF0", - "0111 0102 0010 F411 0000 0000 0000 7A04", - "0111 FEF7 0010 F63D 0000 0000 0000 7C03", - "012A FFFF 007E F36C 0000 0000 0000 2000", - "009D 0000 007E F374 0000 0000 0000 0000" - ] - }, - { - "File": { - "Name": "Scene 1, Room 8", - "Start": "01F7F000", - "End": "01F88400", - "RemapStart": null + { + "Id": 574, + "Type": 15, + "Flags": 0 }, - "Id": 8, - "Objects": [ - "002B", - "001F", - "001B", - "0038", - "015C", - "0024", - "0031", - "00A2", - "0154", - "0179", - "012B" - ], - "Actors": [ - "0054 050A 0010 F09A 0000 4000 0000 FFFF", - "0054 051D 0010 F0C4 0000 4000 0000 FFFF", - "0054 0540 0010 F0E1 0000 4000 0000 FFFF", - "0054 0525 0010 F103 0000 4000 0000 FFFF", - "0054 0541 0010 F128 0000 4000 0000 FFFF", - "0054 051D 0010 F148 0000 4000 0000 FFFF", - "0054 053B 0010 F160 0000 4000 0000 FFFF", - "01B4 04A9 0042 F0FF 4000 C000 0000 FF01", - "01B4 04F9 0010 F0FF 4000 4000 0000 1901", - "0125 06E5 0010 F09C 0000 0000 0000 FF01", - "0049 0677 0010 F196 0000 0000 0000 2FFC", - "0049 06B0 0010 F194 0000 0000 0000 2FFC", - "0049 06EA 0010 F193 0000 0000 0000 2FFC", - "002F 0530 004C F324 0000 349F 0000 FFFF", - "002F 06AB 004C F340 0000 D777 0000 FFFF", - "0025 0616 0010 F22C 0000 0000 0000 FFFF", - "0095 0611 00C4 F194 0000 0000 0000 8201", - "012A 0452 0094 F082 4000 0000 0000 1903", - "012A 06AD 0010 F133 0000 0000 0000 3C03", - "0111 03ED 004C F181 0000 0000 0000 4003", - "0111 042A 004C F181 0000 0000 0000 4212", - "0111 06DE 004C F386 0000 0000 0000 6E04", - "0111 04C7 004C F383 0000 0000 0000 7804", - "0185 06AE 0045 F132 0000 0000 002C FFFF", - "004C 04FC 0057 F087 4000 0000 0000 FFFF", - "004C 04D8 009B F085 4000 0000 0000 FFFF", - "004C 04AF 00D8 F084 4000 0000 0000 FFFF", - "004C 0487 00C4 F0AF 0000 0000 0000 FFFF", - "004C 046D 009E F0AF 4000 C000 0000 FFFF", - "009D 0509 0010 F259 0000 0000 0000 0000", - "009D 06B3 0010 F25A 0000 0000 0000 0000", - "009D 05DE 0010 F259 0000 0000 0000 0000", - "009D 065E 0010 F0D9 0000 C000 0000 0000" - ] - }, - { - "File": { - "Name": "Scene 1, Room 9", - "Start": "01F89000", - "End": "01F94550", - "RemapStart": null + { + "Id": 575, + "Type": 15, + "Flags": 0 }, - "Id": 9, - "Objects": [ - "002B", - "018A", - "0031", - "000E", - "0038", - "0168", - "011B", - "0163", - "0024", - "0188", - "00A4", - "0036", - "001F", - "000D", - "0170" - ], - "Actors": [ - "0125 06B1 019B FB22 0000 0000 0000 FF01", - "00FF 0654 015F FD8A 0000 0000 0000 FF40", - "00FF 06CC 015F FE3E 0000 0000 0000 FF40", - "00FF 06CC 015F FEF2 0000 0000 0000 FF40", - "00FF 07EE 015F FEC0 0000 0000 0000 FF40", - "0015 07A3 015F FDAC 0000 0000 0000 3003", - "005E 04E0 0213 FEA0 0000 0000 0000 2400", - "005E 0727 01D7 FF0F 0000 0000 0000 03E7", - "005E 062D 019B FF24 0000 0000 0000 10E7", - "005E 062E 019B FE93 0000 0000 0000 10E7", - "005E 062E 019B FE15 0000 0000 0000 10E7", - "0111 0723 024F FDB5 0000 0000 0000 4C01", - "0111 05FC 024F FB37 0000 0000 0000 4E03", - "000A 0672 024F FDFA 0000 0000 0000 59A3" - ] - }, - { - "File": { - "Name": "Scene 1, Room 10", - "Start": "01F95000", - "End": "01F9CE50", - "RemapStart": null + { + "Id": 576, + "Type": 15, + "Flags": 0 }, - "Id": 10, - "Objects": [ - "002B", - "018A", - "0031", - "000E", - "0038", - "0168", - "011B", - "0163", - "0024", - "0188", - "00A4", - "0036", - "001F", - "000D", - "0170" - ], - "Actors": [ - "0013 0E1F 0245 FEF8 0000 C000 0000 0003", - "0013 0FF8 027F FF06 0000 8E39 0000 0003", - "0013 1011 0247 FE74 0000 07D2 0000 0003", - "0037 0A5F 028B FEBF 0000 C000 0000 0000", - "0037 0CAC 028B FEC2 0000 C000 0000 0000", - "0037 0F00 028B FEBF 0000 C0B6 0000 0000", - "0125 0C75 019B FE1B 0000 0000 0000 FF01", - "0059 10E9 0213 FDFB 0000 F555 0000 A009", - "002F 0BBF 019B FE38 0000 DD28 0000 FFFF", - "002F 0BE8 019B FF52 0000 B6C1 0000 FFFF", - "002F 0BFB 019B FE4B 0000 D8E4 0000 FFFF", - "00FF 0A96 019B FE52 0000 0000 0000 FF40", - "00FF 0B86 0213 FEC0 0000 0000 0000 FF41", - "005E 0E28 0213 FEFA 0000 0000 0000 03E8", - "005E 09FC 0213 FE8E 0000 0000 0000 10A8", - "005E 0ADC 0213 FEF7 0000 0000 0000 10A8", - "0111 0C7B 019B FF65 0000 0000 0000 7210", - "0111 0A90 019B FE1D 0000 0000 0000 7410", - "004C 1028 0242 FE5F 4000 0E39 0000 FFFF", - "000F 0A2A 0213 FEC0 0000 C000 0000 1FD4" - ] - }, - { - "File": { - "Name": "Scene 1, Room 11", - "Start": "01F9D000", - "End": "01F9F080", - "RemapStart": null + { + "Id": 577, + "Type": 15, + "Flags": 0 }, - "Id": 11, - "Objects": [ - "002B", - "0168" - ], - "Actors": [ - "0195 09FD 0000 01BE 0000 8000 0000 0007" - ] - }, - { - "File": { - "Name": "Scene 1, Room 12", - "Start": "01FA0000", - "End": "01FA8730", - "RemapStart": null + { + "Id": 578, + "Type": 15, + "Flags": 0 }, - "Id": 12, - "Objects": [ - "002B", - "018A", - "0031", - "000E", - "0038", - "0168", - "011B", - "0163", - "0024", - "0188", - "00A4", - "0036", - "001F", - "000D", - "0170" - ], - "Actors": [ - "0013 0C11 024F FDA7 0000 8000 0000 0003", - "0013 0D1D 01F3 FBC4 0000 C000 0000 0003", - "0049 0C28 0213 FC67 0000 0000 0000 2FF9", - "0049 0B6E 0213 FC69 0000 0000 0000 2FFA", - "012A 0A99 019B FCE5 0000 0000 0000 3903", - "0111 0CFF 019B FCDB 0000 0000 0000 7610", - "0111 0CFE 019B FD0F 0000 0000 0000 7801", - "012A 0AB3 019B FBDC 0000 0000 0000 3A00", - "004C 0C10 0227 FD6E 0000 0000 0000 FFFF", - "0127 0AB1 019B FBDE 0000 0000 0000 8004", - "01A0 0AD8 019B FCD6 0000 4000 0000 FFFF", - "01A0 0C77 019B FC7F 0000 0000 0000 FFFF" - ] - }, - { - "File": { - "Name": "Scene 1, Room 13", - "Start": "01FA9000", - "End": "01FAB480", - "RemapStart": null + { + "Id": 579, + "Type": 15, + "Flags": 0 }, - "Id": 13, - "Objects": [ - "002B", - "00A4", - "0024", - "000D", - "015C", - "004A", - "012B" - ], - "Actors": [ - "0125 0A36 0064 F2C5 0000 0000 0000 FF01", - "0125 0A54 0064 F2D8 0000 0000 0000 FF01", - "0060 0915 0064 F38C 0000 0000 0000 FF00", - "0060 09F2 0064 F38C 0000 0000 0000 FF00", - "0013 0980 0145 F312 0000 0000 0000 0000", - "0095 0895 01B8 F2C2 0000 4000 0000 8202" - ] - }, - { - "File": { - "Name": "Scene 1, Room 14", - "Start": "01FAC000", - "End": "01FAE490", - "RemapStart": null + { + "Id": 580, + "Type": 15, + "Flags": 0 }, - "Id": 14, - "Objects": [ - "002B", - "012B", - "00A2", - "000E", - "0009" - ], - "Actors": [ - "0125 0505 004C EDAB 0000 0000 0000 FF01", - "000D 05C0 004C EE8D 0000 0000 0000 0000", - "0111 067F 004C EF29 0000 0000 0000 7004", - "0111 0670 004C EDAA 0000 0000 0000 7E04", - "009D 05C2 004C EE32 0000 0000 0000 0000", - "000A 05C1 004C EE21 0000 8000 0000 5541" - ] - }, - { - "File": { - "Name": "Scene 1, Room 15", - "Start": "01FAF000", - "End": "01FB1850", - "RemapStart": null + { + "Id": 581, + "Type": 15, + "Flags": 0 }, - "Id": 15, - "Objects": [ - "002B", - "0190", - "0024", - "015C", - "00A8" - ], - "Actors": [ - "0095 F793 0027 FF1E 0000 8000 0000 0000", - "0037 F7F4 0168 FE40 0000 8000 0000 0000", - "0037 F85A 0168 FF08 0000 8000 0000 0000", - "0037 F922 0168 FEA0 0000 8000 0000 0000", - "0095 F920 0000 FF02 0000 8000 0000 8208", - "01D1 F792 0000 FE2A 0000 0000 0000 88FF", - "01D1 F792 0000 FE8E 0000 0000 0000 88FF", - "01D1 F792 0000 FEF2 0000 0000 0000 88FF", - "01D1 F7F6 0000 FEF2 0000 0000 0000 88FF", - "01D1 F7F6 0000 FE8E 0000 0000 0000 88FF", - "01D1 F7F6 0000 FE2A 0000 0000 0000 88FF", - "01D1 F85A 0000 FEF2 0000 0000 0000 88FF", - "01D1 F85A 0000 FE8E 0000 0000 0000 88FF", - "01D1 F85A 0000 FE2A 0000 0000 0000 88FF", - "01D1 F8BE 0000 FEF2 0000 0000 0000 88FF", - "01D1 F8BE 0000 FE8E 0000 0000 0000 88FF", - "01D1 F8BE 0000 FE2A 0000 0000 0000 88FF", - "01D1 F922 0000 FE8E 0000 0000 0000 88FF", - "01D1 F922 0000 FE2A 0000 0000 0000 88FF", - "01D1 F922 0000 FEF2 0000 0000 0000 88FF" - ] - }, - { - "File": { - "Name": "Scene 1, Room 16", - "Start": "01FB2000", - "End": "01FB7550", - "RemapStart": null + { + "Id": 582, + "Type": 15, + "Flags": 0 }, - "Id": 16, - "Objects": [ - "002B", - "001F", - "001B", - "0059", - "0038", - "0179", - "00A4", - "015C", - "0024" - ], - "Actors": [] - } - ] - }, - { - "File": { - "Name": "Scene 2", - "Start": "0273E000", - "End": "027537C0", - "RemapStart": null - }, - "Id": 2, - "TActors": [ - "0FFF 05FF 002E 0550 FF10 F7B9 0000 0094", - "01FF 00FF 002E 0000 FF10 FB99 0000 0095", - "02FF 01FF 002E 0000 FEFC F675 0000 0099", - "04FF 06FF 002E FAB0 00A0 F714 8000 00A0", - "07FF 02FF 002E 0000 FEFC F071 0000 0093", - "07FF 0CFF 002E FD6C FEFC EBC1 8000 003F", - "08FF 07FF 002E 0000 FEFC EB49 0000 008D", - "07FF 0BFF 002E 0294 FEFC EBC1 8000 0081", - "01FF 04FF 002E FD94 00A0 F959 C000 0092", - "05FF 01FF 002E 026C FF10 F959 C000 003F", - "0AFF 07FF 002E FBDC FEFC EDB5 4000 003F", - "09FF 07FF 002E 0424 FEFC EDB5 C000 003F", - "0EFF 03FF 002E 01CC FBF7 F369 C000 00BC", - "03FF 0DFF 002E FDBB FBF7 F54A DD28 00BB", - "0EFF 01FF 002E 0139 FB7F F959 C000 003F", - "02FF 03FF 0023 FFD8 FD82 F3F5 4000 00BF", - "02FF 03FF 0023 0028 FD82 F305 4000 00BF", - "02FF 03FF 0023 FEFC FD82 F2B5 4000 00BF", - "02FF 03FF 0023 FED4 FD82 F4D1 4000 00BF", - "02FF 03FF 0023 00DC FD82 F37D 4000 00BF", - "02FF 03FF 0023 FFC4 FD82 F229 4000 00BF", - "03FF 06FF 002E FC17 FC59 F2F1 C000 009F" - ], - "Paths": [], - "Rooms": [ - { - "File": { - "Name": "Scene 2, Room 0", - "Start": "02754000", - "End": "02758070", - "RemapStart": null + { + "Id": 583, + "Type": 15, + "Flags": 0 }, - "Id": 0, - "Objects": [ - "0096", - "018B", - "012B", - "000E", - "0163", - "0007", - "0012", - "013A", - "0190", - "00A8", - "0031" - ], - "Actors": [ - "000E FFFE FEB6 FF20 0000 0000 0000 FF00", - "0125 00D5 FEB6 FE72 0000 0000 0000 FF01", - "0125 FF25 FEAC FFC3 0000 0000 0000 FF01", - "01C6 00E8 FF2D FDC3 0000 E666 0000 0000", - "01C6 FF20 FF2D FDBB 0000 199A 0000 0000", - "00E6 FFFE FEAB FECF 0000 0000 0000 3D02", - "0127 FFFF FEAC FED8 0000 0000 0000 0000", - "002D FF25 FF10 FE68 0000 0000 0000 FFFF", - "002D FEF7 FF9D FE99 0000 0000 0000 FFFF", - "002D FF05 FF42 FEF5 0000 0000 0000 FFFF", - "0173 00C5 FF4A FDF1 0000 0019 0001 3F00", - "0173 FF35 FF4A FDE7 0000 0016 0001 3F00", - "000A 00C8 FF10 FF10 0000 4000 0018 8045", - "0112 FF37 FF44 FDE6 0000 0000 0004 1915", - "0112 00C7 FF44 FDF4 0000 0000 0004 1918", - "0111 FF49 FEB6 FE3F 0000 0000 0000 7804", - "0111 00CA FEAC FFC2 0000 0000 0000 640C", - "000A 0000 FEAC FF91 0000 0000 003D B823" - ] - }, - { - "File": { - "Name": "Scene 2, Room 1", - "Start": "02759000", - "End": "0275EE90", - "RemapStart": "27581B0" + { + "Id": 584, + "Type": 15, + "Flags": 0 }, - "Id": 1, - "Objects": [ - "0096", - "018B", - "012B", - "000E", - "0021", - "0026", - "00D5", - "00AC", - "00B7", - "0059", - "013A" - ], - "Actors": [ - "0015 FE7A F9EF F961 0000 0000 0000 0100", - "0015 FE19 FA2E F95B 0000 0000 0000 0200", - "0015 FDDB FA80 F953 0000 0000 0000 0300", - "0034 0092 FD3C F904 0000 0000 0000 FFFF", - "0034 FF7A FFB8 F9B2 0000 0000 0000 FFFF", - "00B6 FF54 FEAC F9EF 0000 238E 0000 01FF", - "00B6 FF17 FEB6 F955 0000 0000 0000 01FF", - "00B6 FF4F FEAC F8BE 0000 E4FA 0000 01FF", - "0015 FF27 FEBA F9AC 0000 0000 0000 2703", - "0015 FF32 FEB2 F8FB 0000 0000 0000 2803", - "01C6 FEF2 F9F0 F954 DBBC 6666 EE39 0000", - "01C6 0115 FF06 F8DC 0000 D1C7 0000 0000", - "00C8 0000 FCFD F959 0000 0000 0000 FF01", - "00E6 FED2 F9F0 F967 0000 0000 0000 0F03", - "00E6 FD9C FB2E F8D4 0000 0000 0000 1902", - "00C8 0078 0050 F9D1 0000 0000 0000 1D03", - "018C FF89 FB22 F965 0000 0000 0000 0000", - "0173 00D8 FF27 F8F7 0000 0005 0001 3F00", - "000A 00BF FB2F F907 0000 9111 0000 5042", - "0112 00D8 FF22 F8F7 0000 D1C7 0004 1904", - "015F 0155 FB2F F958 0005 0005 0005 15C6", - "0111 FD4F FB2F F8F8 0000 0000 0000 7208", - "0111 FD4B FB2F F9B2 0000 0000 0000 740C", - "011B 01E4 FEC0 F959 001E 000C 0000 3631", - "000A FD6C FB2F F952 0000 C000 000F B800", - "000A 0161 FF24 F98B 0000 0000 0004 8907", - "00DF 01E4 FEC0 F959 0000 C000 0000 0B80" - ] - }, - { - "File": { - "Name": "Scene 2, Room 2", - "Start": "0275F000", - "End": "027681D0", - "RemapStart": null + { + "Id": 585, + "Type": 15, + "Flags": 0 }, - "Id": 2, - "Objects": [ - "0096", - "00A3", - "018B", - "012B", - "0021", - "0012", - "000E", - "0163", - "013A", - "0031", - "00AC", - "0024", - "015C", - "00D5" - ], - "Actors": [ - "0125 FF40 FEAC F377 0000 0000 0000 FF01", - "0125 015E FEAC F232 0000 0000 0000 FF01", - "0034 FFC3 FF60 F33D 0000 0000 0000 FFFF", - "0034 FEFB FF45 F406 0000 0000 0000 FFFF", - "00B6 0000 FE70 F17D 0000 0000 0000 00FF", - "01C6 00EB FF66 F555 0B61 749F 0000 0000", - "00A1 00D8 FEAC F400 0000 0000 0000 0202", - "0127 00F5 FF48 F518 0000 0000 0000 0006", - "0127 015E FEAC F233 0000 0000 0000 0008", - "0127 FF40 FEAC F375 0000 0000 0000 0009", - "0127 00DC FF4A F51A 0000 C93F 0000 0011", - "0127 0112 FF4D F51A 0000 BB06 0000 001A", - "0173 00F8 FF61 F51F 0000 0014 0001 3F00", - "0112 00F8 FF5B F52D 0000 0000 0004 1953" - ] - }, - { - "File": { - "Name": "Scene 2, Room 3", - "Start": "02769000", - "End": "02770160", - "RemapStart": null + { + "Id": 586, + "Type": 15, + "Flags": 0 }, - "Id": 3, - "Objects": [ - "0096", - "00A3", - "018B", - "012B", - "0021", - "0012", - "000E", - "0163", - "013A", - "0031", - "00AC", - "0024", - "015C", - "00D5" - ], - "Actors": [ - "0125 0131 FB4A F267 0000 0000 0000 FF01", - "0125 00E7 FB49 F209 0000 0000 0000 FF01", - "0125 FFA5 FB4A F501 0000 0000 0000 FF01", - "0034 FFF6 FB8A F2FE 0000 0000 0000 FFFF", - "01C6 FE81 FC51 F3A9 0000 4444 0000 0000", - "01C6 FED8 FC8B F212 0000 02D8 0000 0000", - "00A1 00DE FBA7 F33A 0000 0000 0000 0203", - "00E6 002C FBA6 F1F4 0000 0000 0000 3C00", - "00E6 FFF1 FB4C F2FE 0000 0000 0000 3A02", - "015F FFF4 FA88 F307 0000 0000 0003 0EBF", - "002D 001A FBCE F268 0000 0000 0000 FFFF", - "000A 010E FCBF F233 0000 5E94 0003 8048", - "000A FF6B FD04 F4F0 0000 F27D 0007 8064", - "0112 FEDF FC84 F236 0000 0000 0004 1983", - "0112 FEE6 FC96 F22B 0000 0000 0004 1983", - "0112 FED2 FC98 F238 0000 0000 0004 1983", - "0112 FE97 FC4D F3AF 0000 0000 0004 1987", - "0112 FEA0 FC59 F3A5 0000 0000 0004 1987", - "0112 FE94 FC4B F39F 0000 0000 0004 1987", - "011B FDD0 FC09 F2F4 001E 000D 0000 382F", - "011B FDED FBA7 F51F 001E 000C 0000 3731", - "00DF FDED FC09 F51F 0000 6000 0000 0B80", - "00DF FDD0 FC09 F2F4 0000 4000 0000 0C81" - ] - }, - { - "File": { - "Name": "Scene 2, Room 4", - "Start": "02771000", - "End": "02775050", - "RemapStart": null + { + "Id": 587, + "Type": 15, + "Flags": 0 }, - "Id": 4, - "Objects": [ - "0096", - "012B", - "011C", - "00D4", - "001B", - "00AC", - "011D", - "018B", - "00CB", - "00DC" - ], - "Actors": [ - "012D FA9B FFEF F7BD 0000 0000 0000 3DC1", - "012D FAC3 FFEF F7BD 0000 0000 0000 3DC1", - "012D FB2B FFAF F9CF 0000 4000 4000 3DC1", - "012D FB03 FFAF F9CE 4000 0000 0000 3DC1", - "0125 FBBF FFD8 FA2F 0000 0000 0000 FF01", - "00B6 FAB7 FFEC F934 0000 0000 0000 00FF", - "00B6 FBA7 FFD8 F951 0000 0000 0000 00FF", - "0025 FB33 0278 FA5A 0000 0000 0000 FFFF", - "01C6 FADC 0100 FB45 0000 80B6 0000 0000", - "01C6 FB17 FF94 F9F0 0000 0000 0000 0000", - "00E6 FCD3 004F F955 0000 0000 0000 1200", - "0110 FAC3 FFF4 F7BC 0000 0000 0000 FFFF", - "0110 FA9B FFF4 F7BD 0000 0000 0000 FFFF", - "0112 FADD 010F FB15 0000 0000 0004 19BD" - ] - }, - { - "File": { - "Name": "Scene 2, Room 5", - "Start": "02776000", - "End": "0277C020", - "RemapStart": null + { + "Id": 588, + "Type": 15, + "Flags": 0 }, - "Id": 5, - "Objects": [ - "0096", - "00D4", - "018B", - "011C", - "000E", - "012B", - "00DC", - "00CB", - "015C", - "0024" - ], - "Actors": [ - "012D 05AF FF60 FB7C 0000 0000 0000 3DC1", - "012D 05AF FF05 FB7C 0000 0000 0000 3EC1", - "0125 05C5 FE48 FAAA 0000 0000 0000 FF01", - "0125 069B FE48 F9D8 0000 0000 0000 FF01", - "00DD 0541 0183 FA58 0000 0000 0000 FFFF", - "00DD 066A 01E0 F96A 0000 0000 0000 FFFF", - "01C6 05B0 FF0E FB7C 0000 8000 0000 0000", - "01C6 076A FF65 F968 0000 C000 0000 0000", - "0095 0570 002A F973 5DDE 2222 0000 8302", - "0112 05B2 FF1E FB38 0000 0000 0004 193E", - "0112 0726 FF7A F968 0000 0000 0004 1968", - "0112 05AB FF78 FB2F 0000 0000 0004 1AFD", - "012A 05B0 FFC4 FB5C 0000 0000 0000 1403", - "0111 0519 FEDA F82B 0000 0000 0000 6212", - "000A 050D FF82 F876 0000 BF4A 0028 852A" - ] - }, - { - "File": { - "Name": "Scene 2, Room 6", - "Start": "0277D000", - "End": "02781240", - "RemapStart": null + { + "Id": 589, + "Type": 15, + "Flags": 0 }, - "Id": 6, - "Objects": [ - "0096", - "00A3", - "015F", - "0012", - "0021", - "0056", - "0026", - "0090", - "00AD", - "012B", - "018B" - ], - "Actors": [ - "0063 FAA9 019B F646 0000 0000 0000 FFFF", - "01C6 F94F 00CF F2E7 0000 4000 0000 0000", - "00A1 FAB0 FC2C F2F2 0000 4000 0000 0004", - "00C8 FAB0 FBFF F2F1 0000 C000 0000 1F00", - "0125 FBC2 0050 F2EE 0000 0000 0000 FF01", - "0125 FAB0 0050 F1EA 0000 0000 0000 FF01", - "008B FAB0 FC4C F2F1 0000 4000 0000 1015", - "0112 F99F 00E1 F2E9 0000 0000 0004 1920", - "0173 FAB0 FC5E F2F1 0006 0003 0000 3F3A" - ] - }, - { - "File": { - "Name": "Scene 2, Room 7", - "Start": "02782000", - "End": "02785520", - "RemapStart": null + { + "Id": 590, + "Type": 15, + "Flags": 0 }, - "Id": 7, - "Objects": [ - "0096", - "0022", - "00D5", - "0012", - "0056", - "0036", - "012B", - "0163", - "001B" - ], - "Actors": [ - "0025 0000 FEAC ED12 0000 0000 0000 FFFF", - "00A1 0006 FEAC EEFE 0000 8000 0000 0206", - "00E6 0001 FEAB EBC6 0000 0000 0000 0D00", - "0127 FFDB FEAC EBCB 0000 0000 0000 001C", - "0127 001F FEAC EBC7 0000 5BBC 0000 001C", - "0110 FD66 FEAC EDC1 0000 0000 0000 FFFF", - "0110 FE00 FEAC EE10 0000 0000 0000 FFFF", - "000F 033B FEAC EDB1 0000 C000 0000 1FD6", - "011B FCB8 FEAC EDB3 001E 000B 0000 3432", - "011B FD71 FEAC ECA5 001E 000B 0000 3532", - "00DF FD71 FEAC ECA5 0000 0000 0000 0A82", - "00DF FCB8 FEAC EDB3 0000 4000 0000 0A82" - ] - }, - { - "File": { - "Name": "Scene 2, Room 8", - "Start": "02786000", - "End": "02789880", - "RemapStart": null + { + "Id": 591, + "Type": 15, + "Flags": 0 }, - "Id": 8, - "Objects": [ - "0096", - "00A3", - "00D5", - "000E" - ], - "Actors": [ - "0187 FF8F FEAC E9DB 0000 0000 0000 2FFF", - "00DE 0001 0014 E957 0000 0000 0000 0B00" - ] - }, - { - "File": { - "Name": "Scene 2, Room 9", - "Start": "0278A000", - "End": "0278DC70", - "RemapStart": null + { + "Id": 592, + "Type": 15, + "Flags": 0 }, - "Id": 9, - "Objects": [ - "0096", - "00A3", - "00D5", - "000E" - ], - "Actors": [ - "0187 0607 FEAC ED23 0000 0000 0000 2BFF", - "00DE 0619 0014 EDB9 0000 C000 0000 0A02" - ] - }, - { - "File": { - "Name": "Scene 2, Room 10", - "Start": "0278E000", - "End": "02791830", - "RemapStart": null + { + "Id": 593, + "Type": 15, + "Flags": 0 }, - "Id": 10, - "Objects": [ - "0096", - "00A3", - "00D5" - ], - "Actors": [ - "0187 F9EA 0021 EDC8 0000 0000 0000 33FF", - "00DE F9E6 0014 EDB5 0000 4000 0000 0C01" - ] - }, - { - "File": { - "Name": "Scene 2, Room 11", - "Start": "02792000", - "End": "02795800", - "RemapStart": null + { + "Id": 594, + "Type": 15, + "Flags": 0 }, - "Id": 11, - "Objects": [ - "0096", - "00A3", - "000E", - "018B", - "00A8", - "0190", - "00D4", - "012B", - "011C", - "00CB", - "00DC", - "0090", - "00A4" - ], - "Actors": [ - "012D 03A5 012E E9DB 0000 0000 0000 25C1", - "012D 03A5 012E EA03 0000 0000 0000 25C1", - "012D 0182 012D E9DB 0000 0000 0000 27C1", - "012D 0182 012D EA02 0000 0000 0000 27C1", - "0125 028C FEAC E9C9 0000 0000 0000 FF01", - "00DD 03EB 00E0 E9F1 0000 C000 0000 FFFF", - "00DD 0144 00CF E9EC 0000 0000 0000 FFFF", - "01C6 014E FF36 E9F3 0000 5333 0000 0000", - "01C6 03DC FF17 E9DF 0000 CD83 0000 0000", - "005E 0316 FEAC EB04 0AAB 8000 0000 03C1", - "0187 0274 FFC4 EAA4 0000 0000 0000 07FF", - "01D1 03EB 006F E9EF 0000 0000 0000 80FF", - "01D1 03EB 00CA EA48 0000 0000 0000 80FF", - "01D1 0446 00CA E9EE 0000 0000 0000 80FF", - "01D1 03EA 00C9 E993 0000 0000 0000 80FF", - "01D1 013F 00CA E994 0000 0000 0000 80FF", - "01D1 00E6 00CA E9ED 0000 0000 0000 80FF", - "01D1 013F 00CA EA46 0000 0000 0000 80FF", - "01D1 013F 006C E9ED 0000 0000 0000 80FF", - "0112 03AD FF1B E9F2 0000 0000 0004 18E5", - "0112 03B2 FF21 E9FE 0000 0000 0004 18E5", - "0112 03B2 FF21 E9E5 0000 0000 0004 18E5", - "0112 017B FF38 E9E5 0000 0000 0004 19A7", - "0112 0178 FF43 E9EC 0000 0000 0004 19A7", - "0112 0179 FF44 E9DA 0000 0000 0004 19A7", - "000A 0297 FEAC E8D3 0000 8000 0000 70E9", - "0111 0264 FEC6 E8D4 0000 0000 0000 7A08", - "0112 028D FEAC E9C8 0000 0000 0003 1AFF", - "0112 028C FEAC E9C8 0000 0000 0003 1AFF", - "0112 028D FEAC E9C7 0000 0000 0003 1AFF", - "0111 02CE FEAC E8D7 0000 0000 0000 7E0B" - ] - }, - { - "File": { - "Name": "Scene 2, Room 12", - "Start": "02796000", - "End": "02799CD0", - "RemapStart": null + { + "Id": 595, + "Type": 15, + "Flags": 0 }, - "Id": 12, - "Objects": [ - "0096", - "00A3", - "0190", - "00A8", - "013A", - "012B", - "0024", - "015C", - "0163", - "0022", - "0012" - ], - "Actors": [ - "0095 FC89 FECB E8E8 0000 2000 0000 0000", - "0035 FDD9 FEAC E988 0000 0000 0000 FFFF", - "0035 FD02 FEAC E986 0000 0000 0000 FFFF", - "0035 FD6A FEAC EA4D 0000 0000 0000 FFFF", - "00E6 FD71 FEAB E9CC 0000 038E 0000 3D02", - "01D1 FE14 FF28 E9D0 0000 0000 0000 38FF", - "015F FD71 FDDB E9CD 0000 0000 0003 0F7F", - "0127 FE65 FF96 E9CE 0000 0000 0000 000E", - "0127 FC8B FEAC E8ED 0000 0000 0000 0010", - "002D FDEE FFC9 E92F 0000 0000 0000 FFFF", - "002D FCC6 FF58 EA37 0000 0000 0000 FFFF", - "0095 FE71 FFC5 E9C6 9E94 4EEF 0000 8304" - ] - }, - { - "File": { - "Name": "Scene 2, Room 13", - "Start": "0279A000", - "End": "0279CB50", - "RemapStart": null + { + "Id": 596, + "Type": 15, + "Flags": 0 }, - "Id": 13, - "Objects": [ - "0096", - "00A3", - "0026", - "000D", - "011C", - "0036", - "0024", - "015C" - ], - "Actors": [ - "012D FBEC FB0F F6E4 0000 1D28 0000 05C1", - "0013 FBE1 FBA7 F796 0000 0000 0000 8003", - "0013 FAEC FC32 F6AA 0000 3DDE 0000 8003", - "0013 FBBA FC33 F5B3 0000 1BBC 0000 8003", - "00E6 FB98 FB2E F62A 0000 0000 0000 3B02", - "018C FC25 FB4D F5D4 0000 E38E 0000 0000", - "018C FC99 FB75 F6F4 0000 A38E 0000 0000", - "0187 FC20 FB2F F6B6 0000 0000 0000 17FF", - "000F FB85 FBA7 F73D 0000 5DDE 0000 1FFE", - "000F FB83 FBA7 F73E 0000 DDDE 0000 1FFE", - "0095 FB43 FBEF F772 C000 DDDE 0000 8308" - ] - }, - { - "File": { - "Name": "Scene 2, Room 14", - "Start": "0279D000", - "End": "027A31E0", - "RemapStart": null + { + "Id": 597, + "Type": 15, + "Flags": 0 }, - "Id": 14, - "Objects": [ - "0096", - "000E", - "0026", - "001B", - "0190", - "00A8", - "012B", - "00D4", - "00CB", - "00DC", - "015C", - "0024", - "0090", - "0059", - "013A" - ], - "Actors": [ - "003A 0438 FAFD F72B 0000 8000 0000 000A", - "003A 039B FAF3 F6CD 0000 0000 0000 000A", - "0125 04CC FB57 F5A9 0000 0000 0000 FF01", - "00DD 04DE FAF3 F65A 0000 0000 0000 FFFF", - "0025 03A0 FB7F F370 0000 C7D2 0000 FFFF", - "00E6 04D8 FAF2 F6B1 0000 0000 0000 3902", - "00C8 044C FAFD F6B1 0000 0000 0000 3902", - "01D1 03AD FAF3 F5FC 0000 0000 0000 B8FF", - "000A 0508 FB57 F5B1 0000 0000 0000 5041", - "0095 03AC FAF3 F5E8 0000 0000 0000 8301", - "0111 02B9 FC73 F6F2 0000 0000 0000 6604", - "015F 044A FB36 F91C 0005 0005 0005 15C6", - "015F 024C FBCF F6AF 0005 0005 0002 15C6", - "000A 02BB FBCF F6B8 0000 C000 0000 10C6", - "0111 02BB FBE9 F673 0000 0000 0000 6808" - ] - }, - { - "File": { - "Name": "Scene 2, Room 15", - "Start": "027A4000", - "End": "027A66E0", - "RemapStart": null + { + "Id": 598, + "Type": 15, + "Flags": 0 }, - "Id": 15, - "Objects": [ - "0096", - "00A3", - "0007", - "0012", - "0021", - "0056", - "0026", - "00AC" - ], - "Actors": [] - } - ] - }, - { - "File": { - "Name": "Scene 3", - "Start": "023CF000", - "End": "023E4F90", - "RemapStart": null - }, - "Id": 3, - "TActors": [ - "01FF 00FF 0009 0077 0167 003C 0000 003F", - "04FF 02FF 0009 0077 01D3 F62C 0000 003F", - "0BFF 05FF 002E FAA9 017F FA60 4000 007F", - "07FF 0FFF 002E 067F 020B F4C4 8000 0099", - "0BFF 08FF 0009 FA22 020B F8B8 8000 003F", - "14FF 0DFF 002E 0676 04CC F308 C000 02C0", - "0DFF 06FF 002E 01F3 033B F308 C000 0095", - "0CFF 06FF 002E FE83 033B F308 4000 0095", - "04FF 06FF 002E 0077 01D3 F43E 8000 007F", - "08FF 0AFF 002E FF87 0320 F506 4000 003F", - "07FF 0AFF 002E 0167 0320 F506 C000 003F", - "08FF 15FF 002E F995 020B F516 8000 007F", - "08FF 12FF 002E F92F 020B F802 C000 007F", - "03FF 10FF 002E 0645 01CF FA60 4000 007F", - "02FF 05FF 002E FD07 017F FA60 C000 007F", - "08FF 02FF 002E FD63 00F3 F74C 2000 00A5", - "07FF 02FF 002E 038B 00F3 F74C E0B6 00AA", - "03FF 02FF 0009 03E7 01CF FA60 C000 003F", - "07FF 09FF 0023 04F1 FFB3 F920 0000 00BF", - "08FF 09FF 0023 FBFA FFB2 F920 0000 00BF", - "02FF 11FF 0023 0077 002D F9E2 0000 009B", - "14FF 0FFF 0023 084C 032D F28B 0000 00BF", - "13FF 15FF 0023 F91F 02AB F308 8000 00BF", - "02FF 01FF 0009 0077 017F FDBC 0000 0086", - "10FF 0FFF 0009 07C7 0193 F8E4 8000 0083", - "13FF 0BFF 002E F91F 04CC F8E4 0000 02C2", - "13FF 0CFF 002E FA78 04CC F308 4000 02C1", - "0EFF 14FF 002E 07CF 04CC F8E4 8000 02C4", - "16FF 11FF 002E 0077 FCF5 F503 0000 0154" - ], - "Paths": [], - "Rooms": [ - { - "File": { - "Name": "Scene 3, Room 0", - "Start": "023E5000", - "End": "023F2BC0", - "RemapStart": null + { + "Id": 599, + "Type": 15, + "Flags": 0 }, - "Id": 0, - "Objects": [ - "0073", - "0072", - "000E", - "00A4", - "005D", - "0024", - "015C" - ], - "Actors": [ - "0095 01C3 038D 0217 0000 C000 0000 0000", - "0095 01C3 027F 0236 0000 C000 0000 0000", - "0095 01C3 045F 026D 0000 C000 0000 0000", - "0095 01C3 0311 027B 0000 C000 0000 0000", - "0095 01C3 01ED 02A4 0000 C000 0000 0000", - "0037 0069 03FD 01F8 0000 671C 0000 0000", - "000A 018C 047F 0194 0000 4000 000D 8843", - "012A FF58 035C 0243 0000 505B 0000 0D00" - ] - }, - { - "File": { - "Name": "Scene 3, Room 1", - "Start": "023F3000", - "End": "023F8B60", - "RemapStart": null + { + "Id": 600, + "Type": 15, + "Flags": 0 }, - "Id": 1, - "Objects": [ - "0073", - "0072", - "000E", - "00A4", - "005D", - "0024", - "0190", - "00A8" - ], - "Actors": [ - "0037 0077 0209 FE85 0000 0000 0000 0000", - "0037 0077 01C6 FEFA 0000 0000 0000 0000", - "0037 0077 0201 FF75 0000 0000 0000 0000", - "0095 0048 0243 FDD3 0000 0000 0000 8402" - ] - }, - { - "File": { - "Name": "Scene 3, Room 2", - "Start": "023F9000", - "End": "02408A30", - "RemapStart": null + { + "Id": 601, + "Type": 15, + "Flags": 0 }, - "Id": 2, - "Objects": [ - "0073", - "0072", - "000E", - "00A4", - "005D", - "0024", - "0007", - "0039", - "00B7", - "015C", - "0190", - "00A8", - "0099" - ], - "Actors": [ - "0173 FFEA 0166 F957 0002 001D 0000 3F8C", - "0173 0106 0166 F959 0002 001F 0000 3F8C", - "0173 FFE9 0166 FA77 0002 001E 0000 3F8C", - "0173 0106 0166 FA77 0002 0020 0000 3F8C", - "0087 0077 00E9 F9E2 0000 0000 0000 001B", - "0105 FFEA 011D F958 0000 0000 0000 001C", - "0105 FFEA 011D FA78 0000 0000 0000 011D", - "0105 0107 011D F958 0000 0000 0000 021E", - "0105 0107 011D FA78 0000 0000 0000 031F", - "0111 02A3 0139 FC23 0000 9F4A 0000 400F", - "0111 FE53 0139 FC2B 0000 6000 0000 420F", - "0111 02D0 0139 FBF3 0000 9F4A 0000 4403", - "0111 FE23 0139 FBF6 0000 6000 0000 4603", - "0111 0276 0139 FC51 0000 9F4A 0000 4809", - "0111 FE80 0139 FC57 0000 6000 0000 4A09", - "012A FE66 0221 F852 0000 2000 0000 2502", - "012A 028A 0221 F852 0000 E000 0000 2A02", - "0173 FFE9 0166 F957 0002 005D 0000 2C8D", - "0173 FFE9 0166 FA73 0002 005E 0000 2D8D", - "0173 0108 0166 F957 0002 005F 0000 2E8D", - "0173 0106 0166 FA77 0002 0060 0000 2F8D" - ] - }, - { - "File": { - "Name": "Scene 3, Room 3", - "Start": "02409000", - "End": "0240CA10", - "RemapStart": null + { + "Id": 602, + "Type": 15, + "Flags": 0 }, - "Id": 3, - "Objects": [ - "0073", - "0072", - "000E", - "00A4", - "005D", - "0024" - ], - "Actors": [ - "0008 062F 0206 FA27 0000 C000 0000 83F0", - "0008 062F 0206 FA2F 0000 C000 0000 83F0", - "0008 062F 0206 FA91 0000 C000 0000 83F0", - "0008 062F 0206 FA99 0000 C000 0000 83F0" - ] - }, - { - "File": { - "Name": "Scene 3, Room 4", - "Start": "0240D000", - "End": "024102B0", - "RemapStart": null + { + "Id": 603, + "Type": 15, + "Flags": 0 }, - "Id": 4, - "Objects": [ - "0073", - "0072", - "000E", - "00A4", - "005D", - "0024", - "0190", - "00A8" - ], - "Actors": [ - "0173 0078 0208 F4C6 0000 0021 0001 3F05", - "01D1 0078 01D4 F484 0000 0000 0000 B820" - ] - }, - { - "File": { - "Name": "Scene 3, Room 5", - "Start": "02411000", - "End": "024145E0", - "RemapStart": null + { + "Id": 604, + "Type": 15, + "Flags": 0 }, - "Id": 5, - "Objects": [ - "0073", - "0072", - "000E", - "00A4", - "005D", - "0024", - "0032" - ], - "Actors": [ - "0008 FAC0 01B6 FA27 0000 4000 0000 83F0", - "0008 FAC0 01B6 FA2F 0000 4000 0000 83F0", - "0008 FAC0 01B6 FA91 0000 4000 0000 83F0", - "0008 FAC0 01B6 FA99 0000 4000 0000 83F0", - "0002 FC18 017F FA60 0000 4000 0000 FFFF", - "0187 FCC2 017F FA60 0000 0000 0000 4FFF" - ] - }, - { - "File": { - "Name": "Scene 3, Room 6", - "Start": "02415000", - "End": "0241E4C0", - "RemapStart": null + { + "Id": 605, + "Type": 15, + "Flags": 0 }, - "Id": 6, - "Objects": [ - "0073", - "0072", - "000E", - "00A4", - "005D", - "0024", - "0032", - "0190", - "00A8", - "0183" - ], - "Actors": [ - "01AF 0000 01D3 F2F4 0000 0E39 0000 FF00", - "01AF 00FA 01D3 F2F4 0000 F1C7 0000 FF00", - "000A 0077 01D3 F290 0000 8000 0000 7840", - "000A 0077 033B F290 0000 8000 0015 B08C", - "0086 00D1 033B F308 0000 0000 0000 1500", - "01D1 0078 01D4 F3F8 0000 8000 0000 B820", - "0111 005A 01D3 F201 0000 0000 0000 6203", - "0111 008E 01D3 F201 0000 0000 0000 6412", - "0111 00CE 033B F1D1 0000 0000 0000 6603", - "0111 0020 033B F43C 0000 8000 0000 6803", - "0111 001E 033B F1D1 0000 0000 0000 6A03", - "0111 00CA 033B F43C 0000 8000 0000 6C03" - ] - }, - { - "File": { - "Name": "Scene 3, Room 7", - "Start": "0241F000", - "End": "02432000", - "RemapStart": "241E5A0" + { + "Id": 678, + "Type": 16, + "Flags": 0 }, - "Id": 7, - "Objects": [ - "0073", - "0072", - "000E", - "00A4", - "005D", - "0024", - "0179", - "0036", - "0039", - "011C", - "00B7", - "015C", - "0190", - "00A8" - ], - "Actors": [ - "012D 021B 03DC F506 0000 4000 0000 FFC2", - "012D 03F7 0211 F6DE 0000 6000 0000 FFC2", - "0095 02C0 0389 F42F 0000 0000 0000 0000", - "0055 0604 0143 F5A0 0000 160B 0000 0000", - "0055 0446 00CB F5F1 0000 DF4A 0000 0001", - "0055 0464 00C4 F815 0000 25B0 0000 0001", - "0095 03FD 0212 F6D8 0000 6000 0000 8401", - "000A 05F0 0143 F545 0000 8000 0000 5841", - "000A 038D 0320 F3F3 0000 8000 0000 5845", - "000A 04B5 FF14 F920 0000 C000 0000 5849", - "01D1 0280 01EA F4A8 0000 0000 0000 2822", - "01D1 0280 0186 F588 0000 2000 0000 A823", - "01D1 06C5 017F F618 0000 0000 0000 3924", - "00E4 04F1 00AE F920 0000 0000 0000 0026", - "012A 04F3 0064 F8D0 0000 0000 0000 2602", - "01D1 06C5 0143 F5DC 0000 0000 0000 B927", - "01D1 06C5 01CF F596 0000 0000 0000 B928", - "01D1 0308 0186 F611 0000 2000 0000 2829" - ] - }, - { - "File": { - "Name": "Scene 3, Room 8", - "Start": "02432000", - "End": "02449B70", - "RemapStart": null + { + "Id": 679, + "Type": 16, + "Flags": 0 }, - "Id": 8, - "Objects": [ - "0073", - "0072", - "000E", - "00A4", - "005D", - "0024", - "0179", - "0036", - "0039", - "0007", - "00B7", - "015C" - ], - "Actors": [ - "000E FC5A 00BC F496 0000 293F 0000 FF00", - "000E FC0E 00BC F5A0 0000 1D28 0000 FF00", - "000E FACE 00BC F651 0000 3333 0000 FF00", - "0095 FECF 0301 F47E 0000 C000 0000 0000", - "0095 FECF 014D F49D 0000 C000 0000 0000", - "0095 FECF 026E F4BF 0000 C000 0000 0000", - "0037 FEB7 0370 F506 0000 C000 0000 0000", - "0095 FB6E 01A8 F9A7 0000 705B 0000 8404", - "000F FEC3 034D F4E3 438E C000 0000 0FE1", - "00E4 FBFD 00AE F920 0000 0000 0000 0026", - "0015 FB9C 01F8 F4D9 0000 0000 0000 2D03", - "0015 FB7B 01F8 F512 0000 0000 0000 2E03", - "0015 FB60 01F8 F548 0000 0000 0000 2F03" - ] - }, - { - "File": { - "Name": "Scene 3, Room 9", - "Start": "0244A000", - "End": "02454190", - "RemapStart": null + { + "Id": 680, + "Type": 17, + "Flags": 0 }, - "Id": 9, - "Objects": [ - "0073", - "0072", - "000E", - "00A4", - "005D", - "0024", - "0007", - "0039", - "00B7" - ], - "Actors": [ - "0095 FBAD FF06 F894 0000 4000 0000 8408", - "000A 04B5 FF14 F920 0000 C000 0000 5849", - "00E4 0077 FEE6 F8E4 0000 0000 0000 0026", - "012A 04F3 0064 F8D0 0000 0000 0000 2602", - "0015 0073 FF14 F925 0000 0000 0000 3803", - "0015 000F FF14 F925 0000 0000 0000 3903", - "0015 00D7 FF14 F925 0000 0000 0000 3A03" - ] - }, - { - "File": { - "Name": "Scene 3, Room 10", - "Start": "02455000", - "End": "0245A3E0", - "RemapStart": null + { + "Id": 681, + "Type": 17, + "Flags": 0 }, - "Id": 10, - "Objects": [ - "0073", - "0072", - "000E", - "00A4", - "005D", - "0024", - "0179", - "0036", - "0039" - ], - "Actors": [ - "0037 0030 038D F501 0000 293F 0000 0001", - "005E 0078 0320 F57D 0000 8000 0000 2400", - "000F FFB4 0320 F505 0000 3555 0000 1FE1" - ] - }, - { - "File": { - "Name": "Scene 3, Room 11", - "Start": "0245B000", - "End": "02465BD0", - "RemapStart": null + { + "Id": 682, + "Type": 17, + "Flags": 0 }, - "Id": 11, - "Objects": [ - "0073", - "0072", - "000E", - "00A4", - "005D", - "0024", - "0179", - "005C", - "006F", - "00B7", - "011C" - ], - "Actors": [ - "012D FA22 02AB F8F7 4000 0000 0000 FFC2", - "0069 FA16 04EF F946 0000 E9F5 0000 FFFF", - "0069 F944 04EF FACC 0000 F3E9 0000 FFFF", - "00FF F851 026F FB14 0000 4000 0000 0542", - "00FF F851 026F FC04 0000 4000 0000 0542", - "00FF F711 025B FC04 0000 0000 0000 0546", - "0139 F711 025B FC04 0000 0000 0000 0005", - "00FF F879 034B FB8C 0000 4000 0000 0702", - "00FF F8F1 034B FB8C 0000 4000 0000 0702", - "00FF F9B9 0337 FB8C 0000 0000 0000 0706", - "0139 F9B9 0337 FB8C 0000 0000 0000 0007", - "011B F781 026F FB16 0014 0029 0000 088F", - "012D F941 026F FACA 0000 8000 0000 0FC1", - "012D FA5C 03FF FB50 0000 8000 0000 0FC1", - "01B4 F9D7 02AB FAC4 0000 0000 0000 0F01", - "01B4 FA63 02E7 FAC4 0000 0000 0000 0F01", - "012A FA5C 03FF FB8B 0000 C000 0000 0F03", - "0095 FA74 017F FC22 0000 C000 0000 8410", - "01B4 FA22 028C F95B C000 0000 0000 1301", - "01B4 FA22 0228 F95B C000 0000 0000 1301", - "012A FA22 020B F933 0000 0000 0000 1313", - "0068 F91F 04FE F439 0000 0000 0000 7F13" - ] - }, - { - "File": { - "Name": "Scene 3, Room 12", - "Start": "02466000", - "End": "0246E3E0", - "RemapStart": null + { + "Id": 683, + "Type": 17, + "Flags": 0 }, - "Id": 12, - "Objects": [ - "0073", - "0072", - "000E", - "00A4", - "005D", - "0024", - "0179", - "005C", - "006F", - "0099" - ], - "Actors": [ - "0173 FE52 0371 F2B2 0002 001E 0000 3F94", - "0173 FE52 0371 F2B2 0002 005E 0000 0A95", - "000A FE36 033B F259 0000 4000 0000 182D", - "0093 FD3D 051C F2CC 0000 C000 0000 021D", - "0105 FE51 033B F2AE 0000 0000 0000 011D" - ] - }, - { - "File": { - "Name": "Scene 3, Room 13", - "Start": "0246F000", - "End": "02477AB0", - "RemapStart": null + { + "Id": 684, + "Type": 16, + "Flags": 0 }, - "Id": 13, - "Objects": [ - "0073", - "0072", - "000E", - "00A4", - "005D", - "0024", - "0070", - "0071", - "0099" - ], - "Actors": [ - "0173 0225 0371 F2B2 0002 001F 0000 3F94", - "0173 0225 0371 F2B2 0002 005F 0000 0B95", - "000A 023F 033B F256 0000 C000 0000 180F", - "0093 0339 051C F2CC 0000 4000 0000 031E", - "0105 0225 033B F2AE 0000 0000 0000 021E", - "0111 033E 033B F1C9 0000 0000 0000 4C03", - "0111 03AD 033B F1C8 0000 0000 0000 4E09", - "0111 0373 033B F1C8 0000 0000 0000 5009" - ] - }, - { - "File": { - "Name": "Scene 3, Room 14", - "Start": "02478000", - "End": "0247DBB0", - "RemapStart": null + { + "Id": 685, + "Type": 16, + "Flags": 0 }, - "Id": 14, - "Objects": [ - "0073", - "0072", - "000E", - "00A4", - "005D", - "0024", - "0070", - "0071", - "0179" - ], - "Actors": [ - "00E3 07CF 0422 FAD6 0000 0000 0000 FF00", - "0173 05EF 0549 FAD6 0003 0019 0000 3F97", - "0068 07CF 04FE F439 0000 0000 0000 FF18", - "012A 05EF 0549 FAD6 0000 4000 0000 1892", - "01B4 07D0 04FE F90C 4000 0000 0000 3801", - "005E 07F5 04BF FAD6 0000 C000 0000 03F8", - "012A 07C8 04CC FAD6 0000 4000 0000 3820", - "0110 0908 0445 FC96 0000 0000 0000 3808", - "0110 093C 0445 FC97 0000 0000 0000 3908", - "0110 063F 04CC FAD6 0000 4000 0000 3A03" - ] - }, - { - "File": { - "Name": "Scene 3, Room 15", - "Start": "0247E000", - "End": "02480690", - "RemapStart": null + { + "Id": 688, + "Type": 17, + "Flags": 0 }, - "Id": 15, - "Objects": [ - "0073", - "0072", - "000E", - "00A4", - "005D", - "0024" - ], - "Actors": [ - "0037 0728 02C6 F446 0000 8000 0000 0000", - "0037 0816 02C3 F44A 0000 8000 0000 0000", - "0037 0815 02C6 F537 0000 8000 0000 0000", - "0037 0725 02C6 F58B 0000 8000 0000 0000", - "0037 0866 02C3 F5DD 0000 8000 0000 0000", - "0037 077A 02C6 F6C3 0000 8000 0000 0000", - "0037 07CA 02C8 F768 0000 8000 0000 0000", - "0089 07C7 02AB F628 0000 8000 0000 FFFF", - "000A 0867 02F2 F628 0000 0000 000E 8926", - "011B 07C0 0193 F405 0032 002C 0014 4998", - "012A 0728 0193 F7B8 0000 0000 0000 0E00", - "012A 0817 0193 F769 0000 0000 0000 1900" - ] - }, - { - "File": { - "Name": "Scene 3, Room 16", - "Start": "02481000", - "End": "02485FA0", - "RemapStart": "2480760" + { + "Id": 689, + "Type": 17, + "Flags": 0 }, - "Id": 16, - "Objects": [ - "0073", - "0072", - "000E", - "00A4", - "005D", - "0024", - "0099" - ], - "Actors": [ - "0173 06B8 020E FAC1 0002 0020 0000 3F94", - "0173 06B8 020E FAC1 0002 0060 0000 0C95", - "0093 07ED 0373 FA42 0000 4000 0000 011F", - "0093 0933 025B FA60 0000 C000 0000 041F", - "0105 06B5 01CF FAC4 0000 4000 0000 031F", - "0093 0829 0373 FA06 0000 4000 0000 001F", - "0111 066F 01CF FA07 0000 0000 0000 5603", - "0111 066D 01CF F9CC 0000 0000 0000 5809" - ] - }, - { - "File": { - "Name": "Scene 3, Room 17", - "Start": "02486000", - "End": "0248F150", - "RemapStart": null + { + "Id": 690, + "Type": 17, + "Flags": 0 }, - "Id": 17, - "Objects": [ - "0073", - "0072", - "000E", - "00A4", - "005D", - "0024", - "015C", - "00B0" - ], - "Actors": [ - "0037 FEA6 FD30 FBB1 0000 6000 0000 0000", - "0037 FEDE FD30 FB75 0000 6000 0000 0001", - "0088 0077 FCF5 F9E2 0000 8000 0000 FFFF", - "000A FE8C FCF5 F7F0 0000 A000 0000 592B", - "00E3 0077 FCF5 FBFB 0000 8000 0000 1001", - "012A 031D FCF5 F9E2 0000 C000 0000 1000", - "00E3 0077 FCF5 F7C9 0000 0000 0000 1101", - "012A 0077 FDC6 FC0F 0000 0000 0000 1102", - "012A 0266 FD80 F9E2 8000 C000 0000 1203", - "00E3 0291 FCF5 F9E2 0000 C000 0000 1201", - "0087 0077 FCF5 F9E2 0000 0000 0000 001B", - "0111 FE33 FCF5 FBB9 0000 6000 0000 7003", - "0111 FEA1 FCF5 FC2D 0000 6000 0000 7203", - "0111 FE7D FCF5 FC06 0000 6000 0000 740B", - "0111 FE58 FCF5 FBDF 0000 6000 0000 7608" - ] - }, - { - "File": { - "Name": "Scene 3, Room 18", - "Start": "02490000", - "End": "02491340", - "RemapStart": null + { + "Id": 691, + "Type": 17, + "Flags": 0 }, - "Id": 18, - "Objects": [ - "0073", - "0072", - "000E", - "00A4", - "005D", - "0024", - "000B", - "0098" - ], - "Actors": [ - "0090 F83D 01F7 F8CE 0000 53E9 0000 7F00", - "000A F7F4 01F7 F804 0000 C000 0000 7842" - ] - }, - { - "File": { - "Name": "Scene 3, Room 19", - "Start": "02492000", - "End": "02492510", - "RemapStart": null + { + "Id": 700, + "Type": 18, + "Flags": 0 }, - "Id": 19, - "Objects": [ - "0073", - "0072", - "000E", - "00A4", - "005D", - "0024", - "0179", - "005C", - "006F", - "000B" - ], - "Actors": [ - "0011 F91D 05BB F30A 0000 0000 0000 0001", - "0173 F9F0 0595 F274 0000 0014 0000 3F92", - "0068 F91F 04FE F439 0000 0000 0000 3F13", - "011B F913 04B6 F3C9 0000 0000 0000 1691" - ] - }, - { - "File": { - "Name": "Scene 3, Room 20", - "Start": "02493000", - "End": "02494300", - "RemapStart": null + { + "Id": 701, + "Type": 18, + "Flags": 0 }, - "Id": 20, - "Objects": [ - "0073", - "0072", - "000E", - "00A4", - "005D", - "0024", - "0070", - "0071", - "000B" - ], - "Actors": [ - "0069 07CE 04FC F639 0000 8000 0000 01FC", - "0069 07D1 04F5 F78B 0000 8000 0000 01FC", - "0011 07CE 05C0 F302 0000 C0B6 0000 0001", - "011B 071A 04CC F309 0000 0000 0000 1791", - "0068 07CF 04FE F439 0000 0000 0000 BF18" - ] - }, - { - "File": { - "Name": "Scene 3, Room 21", - "Start": "02495000", - "End": "02496780", - "RemapStart": null + { + "Id": 726, + "Type": 16, + "Flags": 0 }, - "Id": 21, - "Objects": [ - "0073", - "0072", - "000E", - "00A4", - "005D", - "0024", - "0179", - "005C", - "006F", - "000B" - ], - "Actors": [ - "008E F996 020B F48A 0000 8000 0000 0000" - ] - }, - { - "File": { - "Name": "Scene 3, Room 22", - "Start": "02497000", - "End": "02498DE0", - "RemapStart": null + { + "Id": 727, + "Type": 16, + "Flags": 0 }, - "Id": 22, - "Objects": [ - "0073", - "0072", - "000E", - "00A4", - "005D", - "0024", - "015C", - "00B0" - ], - "Actors": [] - } - ] - }, - { - "File": { - "Name": "Scene 4", - "Start": "022D8000", - "End": "022F2970", - "RemapStart": null - }, - "Id": 4, - "TActors": [ - "05FF 04FF 0023 0820 0992 FD80 4000 00BF", - "0AFF 02FF 0023 FC04 07C6 0000 0000 00BF", - "06FF 01FF 0023 0618 076C 0000 8000 007F", - "08FF 06FF 0023 0618 0ED8 0000 8000 007F", - "0DFF 0BFF 0023 F90C 0ED8 0000 8000 007F", - "09FF 10FF 002E 0154 0B7C 00BE 4000 009F", - "04FF 15FF 0009 0BFE 080C 0000 4000 003F", - "0AFF 09FF 0009 FDD0 0B7C 00BE 4000 003F", - "0AFF 0BFF 002E F90C 0AF0 FEB6 0000 0099", - "0BFF 0AFF 0009 F90C 0AF0 014A 0000 003F", - "0DFF 0CFF 0009 F6BE 1130 0014 C000 0098", - "0CFF 18FF 0009 F576 0FA0 009F C000 003F", - "13FF 01FF 002E 0618 00F0 FA10 0000 00A9", - "14FF 0100 0009 0618 0064 F9E8 0000 003F", - "15FF 01FF 0009 0A8C 00C8 0000 C000 009E", - "16FF 01FF 0009 0618 00C8 062C 8000 003F", - "02FF 00FF 002E FE5C 00C8 0000 4000 00A8", - "00FF 11FF 002E FEE8 0000 008C 8000 007F", - "17FF 05FF 002E 06F4 0AF0 FA24 0000 00BE", - "10FF 06FF 002E 062C 0AF0 014A 8000 00BF", - "10FF 06FF 002E 04CE 0AF0 003C 4000 00BF", - "06FF 05FF 002E 060E 0AF0 FEB6 8000 00BF", - "05FF 07FF 0009 062C 0FA0 FDB2 0000 003F", - "08FF 07FF 002E 062C 1130 FDB2 8000 00B5", - "0BFF 0AFF 0009 FA56 0BA4 0000 4000 003F", - "11FF 03FF 002E FEE8 0000 FC7C 8000 007F", - "0AFF 18FF 002E F593 0B18 FF69 E000 007F", - "05FF 04FF 0009 0A14 0AF0 0000 C000 003F", - "10FF 05FF 0009 05B4 0B7C FD8A 4000 009A", - "03FF 12FF 002E 0000 0000 FB28 4000 007F", - "0AFF 0EFF 002E FB5C 0E60 FF3B A0B6 01FD", - "0EFF 0DFF 0009 F6EE 1054 FD03 E000 009B", - "12FF 0FFF 002E 00EE 0000 FC94 0000 007F", - "19FF 0AFF 0009 FBDE 0AF0 FC76 E000 003F", - "0FFF 00FF 0009 0118 0000 008C 0000 0097", - "1AFF 02FF 002E F9E8 00C8 0000 4000 0154", - "01FF 00FF 0009 01A4 00C8 0000 C000 003F" - ], - "Paths": [ - { - "Points": [ - [ - -310, - 0, - -318 - ], - [ - -309, - 0, - -127 - ] - ] - }, - { - "Points": [ - [ - 1879, - 100, - -1883 - ], - [ - 1685, - 100, - -1881 - ] - ] - }, - { - "Points": [ - [ - 1536, - 200, - 2035 - ], - [ - 1536, - 200, - 1860 - ] - ] - }, - { - "Points": [ - [ - 1462, - 2800, - -1817 - ], - [ - 1658, - 2800, - -1815 - ] - ] - } - ], - "Rooms": [ - { - "File": { - "Name": "Scene 4, Room 0", - "Start": "022F3000", - "End": "022FA2C0", - "RemapStart": null + { + "Id": 754, + "Type": 18, + "Flags": 0 }, - "Id": 0, - "Objects": [ - "002C", - "000E", - "00A4", - "018E" - ], - "Actors": [ - "0040 0172 0140 0000 0000 C000 0000 0601", - "0040 0172 0104 0000 0000 C000 0000 0C00", - "0040 0172 00C8 0000 0000 C000 0000 0D00", - "000C 0000 0004 0220 0000 0000 0000 00FF", - "0008 006A 00F6 FF6F 0000 0000 0000 0284", - "005E FF7C 00A0 014C 0000 0000 0000 1128", - "005E FF9A 00C7 FF6F 0000 0000 0000 1128", - "005E 0003 00DB FF74 0000 0000 0000 1128", - "005E 0083 00A0 0149 0000 0000 0000 1128", - "0111 FE9B 0000 03BD 0000 0000 0000 560F", - "0111 0164 0001 03BF 0000 0000 0000 580F" - ] - }, - { - "File": { - "Name": "Scene 4, Room 1", - "Start": "022FB000", - "End": "023079E0", - "RemapStart": null + { + "Id": 755, + "Type": 18, + "Flags": 0 }, - "Id": 1, - "Objects": [ - "002C", - "011C", - "00A4", - "000E", - "0024", - "015C" - ], - "Actors": [ - "012D 049C 0000 0086 0000 0000 0000 2AC1", - "012D 05C5 00F0 FAAA 0000 0000 0000 2AC1", - "012D 06A8 0000 FF2A 0000 0000 0000 2AC1", - "012D 06A9 0000 0399 0000 0000 0000 2AC1", - "008D 04E2 0000 0492 0000 0000 0000 00FF", - "008D 07FA 0000 0492 0000 8000 0000 00FF", - "0046 066B 0000 0431 0000 4000 0000 0001", - "0046 079A 0000 023B 0000 0000 0000 0001", - "0046 07AE 0000 FE67 0000 4000 0000 0001", - "00CF 0618 00C8 05DC 0000 8000 0000 0701", - "0043 073A 0000 FD1A 0000 0000 0000 FF01", - "0046 0514 0000 035B 0000 0000 0000 0000", - "0046 061E 0000 FC5F 0000 C000 0000 0000", - "0046 079A 0000 037B 0000 C000 0000 0000", - "005E 05EF 00F0 FA37 0000 0000 0000 10A9", - "005E 0864 016E FCBA 0000 0000 0000 10A9", - "005E 0631 00C8 0514 0000 0000 0000 106A", - "0111 066E 0068 FB14 0000 0000 0000 4009", - "0111 08B2 0190 FCD7 0000 0000 0000 420F", - "0111 0662 00C8 05C3 0000 0000 0000 440F" - ] - }, - { - "File": { - "Name": "Scene 4, Room 2", - "Start": "02308000", - "End": "02317FD0", - "RemapStart": "2307B30" + { + "Id": 756, + "Type": 18, + "Flags": 0 }, - "Id": 2, - "Objects": [ - "002C", - "000E", - "00A4", - "0170", - "009D", - "00B0", - "011C", - "0190", - "00A8", - "0024", - "015C" - ], - "Actors": [ - "003B FC6A 0000 FFD5 0000 0000 0000 0006", - "012D FB35 008C FE16 0000 0000 0000 FFC0", - "0098 FA71 00C8 0000 0000 4000 0000 FFFF", - "0041 FC04 0BB8 0000 0000 4000 0000 000E", - "006F FAD5 00C8 0329 0000 8000 0000 0800", - "005E FAD8 00C8 0184 0000 4000 0000 10C8", - "005E FB35 00C8 FE16 0000 0000 0000 10C8", - "005E FB97 016D FD78 0000 0000 0000 10C8", - "0111 FA6E 00C8 FD39 0000 0000 0000 5A0E", - "0111 FA6F 00C8 FD6C 0000 0000 0000 5C0A", - "01A0 FA4F 00C8 FDEA 0000 4000 0000 FFFF", - "01A0 FA4F 00C8 FE5F 0000 4000 0000 FFFF", - "01A0 FB45 012C FCF9 0000 0000 0000 FFFF", - "01A0 FB4B 00C8 02C5 0000 4000 0000 FFFF", - "01A0 FB4B 00C8 0301 0000 4000 0000 FFFF", - "01A0 FB96 0190 FD72 0000 0000 0000 FFFF", - "000A FAF9 00C8 03C5 0000 4000 0000 5847" - ] - }, - { - "File": { - "Name": "Scene 4, Room 3", - "Start": "02318000", - "End": "0231A4E0", - "RemapStart": null + { + "Id": 763, + "Type": 18, + "Flags": 0 }, - "Id": 3, - "Objects": [ - "002C", - "00A4", - "000E", - "009E" - ], - "Actors": [ - "0099 FE97 0050 FAEC 0000 0000 0000 FFFF", - "0049 FE97 0050 FAEC 0000 0000 0000 0FFF", - "000A FE97 0050 FAEC 0000 0000 0000 11A0" - ] - }, - { - "File": { - "Name": "Scene 4, Room 4", - "Start": "0231B000", - "End": "02322890", - "RemapStart": null + { + "Id": 764, + "Type": 18, + "Flags": 0 }, - "Id": 4, - "Objects": [ - "002C", - "000E", - "011C", - "00A4", - "001B", - "0170", - "0190", - "00A8", - "0024" - ], - "Actors": [ - "012D 0893 08D4 016A 0000 0000 0000 2BC1", - "012D 098A 0B6E 0004 4000 0000 0000 FFC2", - "012A 088E 0820 FFC7 0000 C000 0000 0401", - "0025 092F 09D8 FFE6 0000 0000 0000 FFFF", - "006F 0950 0820 0000 0000 4000 0000 0401", - "006F 0A10 0820 0000 0000 C000 0000 0401", - "0112 09D8 0802 0156 0000 0000 0002 18BF", - "0112 09D8 0802 0156 0000 0000 0002 193F", - "0112 09D8 0802 0156 0000 0000 0002 19BF", - "005E 0923 08E8 02BF 0000 0000 0000 106B", - "01A0 07EE 0820 0037 0000 0000 0000 FFFF", - "01A0 082A 0820 0037 0000 0000 0000 FFFF", - "01A0 0857 0820 FFC2 0000 4000 0000 FFFF", - "01A0 0866 0820 0037 0000 0000 0000 FFFF", - "01A0 088D 0820 FFC8 0000 0000 0000 FFFF", - "01A0 08C9 0820 FFC8 0000 0000 0000 FFFF", - "000A 09AA 0820 FFCE 0000 8000 0000 080B" - ] - }, - { - "File": { - "Name": "Scene 4, Room 5", - "Start": "02323000", - "End": "0232D230", - "RemapStart": null + { + "Id": 811, + "Type": 19, + "Flags": 0 }, - "Id": 5, - "Objects": [ - "002C", - "000E", - "011C", - "00A4", - "001B", - "0170", - "0190", - "00A8", - "0024" - ], - "Actors": [ - "012D 0617 0C80 FEA6 0000 0000 0000 2CC1", - "012D 07E4 0B7C FE22 0000 0000 0000 2CC1", - "012D 085C 0AB5 FB64 0000 0000 0000 2CC1", - "012D 08D4 0AB4 FB64 0000 0000 0000 2CC1", - "012D 098F 0B7C FE9F 0000 0000 0000 2CC1", - "012D 098F 0B7C 0154 0000 0000 0000 2CC1", - "0095 08E5 0B38 FB9B 0000 C000 0000 0000", - "012A 0895 0AF0 FBA2 0000 0000 0000 2C01", - "0025 06F1 0AF0 0231 0000 0000 0000 FFFF", - "0025 076C 0AF0 FCBD 0000 0000 0000 FFFF", - "0025 0885 0AF0 FFB9 0000 0000 0000 FFFF", - "0025 08D7 0AF0 0207 0000 0000 0000 FFFF", - "004E 062C 0C76 FCEA 0000 0000 0000 FFFF", - "00CF 0820 0B7C FD80 0000 4000 0000 0000", - "00CF 0708 0AF0 FB50 0000 0000 0000 2D02", - "00CF 07A8 0AF0 FB50 0000 0000 0000 2D02", - "00CF 0898 0AF0 FBF0 0000 0000 0000 2E02", - "006F 0887 0AF0 042D 0000 8000 0000 0302", - "006F 06E4 0B7C 04B9 0000 8000 0000 0A02", - "0112 0AC5 0B2E 0001 0000 0000 0006 1ABF", - "01D1 0761 0BC9 FE2A 0000 0000 0000 10FF", - "012A 084B 0AE6 0481 0000 0000 0000 0303", - "012A 06E2 0B7C 04CC 0000 0000 0000 0A03", - "012A 073F 0AF0 FA55 0000 0000 0000 3E20", - "01A0 06AE 0B7C 0538 0000 0000 0000 FFFF", - "01A0 06AE 0B7C 0508 0000 0000 0000 FFFF", - "01A0 0719 0B7C 0532 0000 4000 0000 FFFF", - "01A0 084C 0AF0 0482 0000 4000 0000 FFFF", - "01A0 08B6 0AF0 04AB 0000 0000 0000 FFFF", - "01A0 08B6 0AF0 047B 0000 0000 0000 FFFF", - "000A 08B4 0AF0 04A6 0000 4000 0000 5CC3", - "000A 0712 0B7C 0532 0000 4000 0000 5CE6", - "0110 06A3 0BB2 0534 0000 0000 0000 FFFF", - "0110 06A3 0BB2 050A 0000 0000 0000 FFFF" - ] - }, - { - "File": { - "Name": "Scene 4, Room 6", - "Start": "0232E000", - "End": "02334FA0", - "RemapStart": null + { + "Id": 812, + "Type": 19, + "Flags": 0 }, - "Id": 6, - "Objects": [ - "002C", - "011C", - "00A4", - "000E", - "0024", - "015C" - ], - "Actors": [ - "012D 060D 0BA0 FED0 0000 0000 0000 FFC2", - "0111 06DC 0AF0 FF65 0000 0000 0000 7212", - "0111 071B 0AF0 FFAE 0000 0000 0000 7409", - "0111 06FD 0AF0 FF86 0000 0000 0000 760B" - ] - }, - { - "File": { - "Name": "Scene 4, Room 7", - "Start": "02335000", - "End": "023389E0", - "RemapStart": null + { + "Id": 813, + "Type": 17, + "Flags": 0 }, - "Id": 7, - "Objects": [ - "002C", - "0025", - "011C" - ], - "Actors": [ - "012D 05B4 1098 FCA7 0000 0000 0000 FFC2", - "012D 062A 1250 FD3A 4000 0000 0000 FFC2", - "0038 053E 0FA0 FD5D 0000 0000 0000 FFFF", - "0038 05BE 1054 FD68 0000 8000 0000 FFFF", - "0112 0594 0FE8 FD39 0000 0000 0006 18BF", - "0112 0594 0FE8 FD39 0000 0000 0006 1AFF", - "0112 05B2 1038 FE8A 0000 0000 0006 18B5", - "0112 05B2 1038 FE8A 0000 0000 0006 1AF5", - "0173 05B1 103D FE8B 0000 0036 0001 3F00" - ] - }, - { - "File": { - "Name": "Scene 4, Room 8", - "Start": "02339000", - "End": "02342AC0", - "RemapStart": null + { + "Id": 814, + "Type": 17, + "Flags": 0 }, - "Id": 8, - "Objects": [ - "002C", - "011C", - "00A4", - "000E", - "0024", - "015C" - ], - "Actors": [ - "012D 05D4 1248 FD38 0000 0000 0000 3DC1", - "012D 073C 1248 FEC8 0000 2000 0000 3DC1", - "012D 05C9 122C 014F EE39 0000 F8E4 FF40", - "012A 07D3 1248 FE25 0000 2000 0000 3D01", - "0049 0792 1248 FE77 0000 0000 0000 1378", - "00FF 0792 1248 FE75 0000 2000 0000 FF00", - "0095 0792 1248 FE76 FF4A 2000 0000 8504", - "012A 04C5 1130 FDB1 0000 0000 0000 3800" - ] - }, - { - "File": { - "Name": "Scene 4, Room 9", - "Start": "02343000", - "End": "0234B770", - "RemapStart": null + { + "Id": 819, + "Type": 19, + "Flags": 0 }, - "Id": 9, - "Objects": [ - "002C", - "018E" - ], - "Actors": [ - "0008 FEC9 0BAE 0077 0000 0000 0000 03F4", - "0008 FEC9 0BAE 0105 0000 8000 0000 03F4", - "0008 0058 0BAE 0078 0000 0000 0000 03F4", - "0008 0059 0BAE 0106 0000 8000 0000 03F4" - ] - }, - { - "File": { - "Name": "Scene 4, Room 10", - "Start": "0234C000", - "End": "023644A0", - "RemapStart": null + { + "Id": 820, + "Type": 19, + "Flags": 0 }, - "Id": 10, - "Objects": [ - "002C", - "000E", - "00A4", - "0170", - "009D", - "00B0", - "011C", - "0190", - "00A8", - "0024", - "015C" - ], - "Actors": [ - "0041 FB3C 0E74 0000 0000 0000 0000 0110", - "0041 FC04 0BB8 0000 0000 4000 0000 000E", - "000C F8D5 0AF0 FD65 00B6 49F5 0000 00FF", - "000C F85A 0AF0 FB9D 0000 4000 0000 00FF", - "000C F8F8 0AF0 FCE3 FF4A 1DDE 0000 00FF", - "000C F770 0AF0 0210 FF4A 6000 0000 00FF", - "000C F7D7 0AF0 FCBD 0000 2000 0000 00FF", - "000C F83B 0AF0 FDDA 0000 3555 0000 00FF", - "000C FBF1 0AF0 FD85 0000 6000 0000 00FF", - "000C F9C0 0AF0 FDC2 0000 2000 0000 00FF", - "000C F892 0AF0 02A8 0000 0000 0000 00FF", - "000C F897 0AF0 01B8 0000 4000 0000 00FF", - "000C F897 0AF0 03E8 0000 0000 0000 00FF", - "000C F8E5 0AF0 02FB 0000 4000 0000 00FF", - "000C F8E6 0AF0 0399 0000 4000 0000 00FF", - "000C F835 0AF0 FC39 0000 2AAB 0000 00FF", - "000C F932 0AF0 02A8 0000 0000 0000 00FF", - "000C F984 0AF0 0392 0000 4000 0000 00FF", - "000C F987 0AF0 FE48 0000 4000 0000 00FF", - "000C F987 0AF0 01B8 0000 4000 0000 00FF", - "000C F987 0AF0 0258 0000 4000 0000 00FF", - "000C F98A 0AF0 0445 0000 4000 0000 00FF", - "000C F955 0AF0 FCE1 0000 DF4A 0000 00FF", - "000C FA23 0AF0 FEC3 0000 2000 0000 00FF", - "000C FA31 0AF0 FD4E 0000 2000 0000 00FF", - "000C FA38 0AF0 0129 0000 6000 0000 00FF", - "000C FA97 0AF0 FE59 0000 2000 0000 00FF", - "000C FAB2 0AF0 FC5F 0000 5555 0000 00FF", - "000C F769 0AF0 FD2F 0000 2000 0000 00FF", - "000C FAC5 0AF0 0227 0000 2000 0000 00FF", - "000C FB0C 0AF0 FDF1 0000 1777 0000 00FF", - "000C FB36 0AF0 0227 0000 6000 0000 00FF", - "000C FB86 0AF0 FD8A 0000 2000 0000 00FF", - "000C FB9B 0AF0 0343 FF4A 6000 0000 00FF", - "000C FCDA 0AF0 FDFE 0000 2000 0000 00FF", - "000C FC68 0AF0 FDFB 0000 6000 0000 00FF", - "000C F895 0AF0 FDA2 0000 F777 0000 00FF", - "000C F7D8 0AF0 FE12 0000 76C1 0000 00FF", - "000C F9B3 0AF0 FD53 0000 DF4A 0000 00FF", - "000C F757 0AF0 FDB0 0000 599A 0000 00FF", - "008D F702 0B18 FDFD 0000 6000 0000 0039", - "0095 FAEC 0EB8 004A 4000 6000 0000 8502", - "0112 F640 0BF7 FEB7 0000 0000 0006 1AFF", - "01D1 FCE6 0AF0 0003 0000 0000 0000 9837", - "01D6 FAC5 0B91 FF15 0000 0000 0000 1836", - "01D6 FC9E 0AF0 FD9A 0000 2000 0000 9836", - "0173 FCE8 0AF0 0004 0003 0000 0000 3FA5", - "0111 F757 0B18 FF5D 0000 0000 0000 4604", - "0111 F59F 0B18 FDB1 0000 0000 0000 4803", - "0111 F8C7 0AF0 FBA6 0000 0000 0000 4A03", - "0111 F7C2 0AF0 FD7A 0000 0000 0000 4C04", - "0111 F6F1 0AF0 0346 0000 0000 0000 4E12", - "0111 F713 0AF0 0323 0000 0000 0000 500B", - "012A F74F 0AF0 FC3A 0000 2000 0000 3900" - ] - }, - { - "File": { - "Name": "Scene 4, Room 11", - "Start": "02365000", - "End": "023687C0", - "RemapStart": null + { + "Id": 824, + "Type": 15, + "Flags": 0 }, - "Id": 11, - "Objects": [ - "002C", - "00A4", - "000E", - "011C", - "0024", - "015C", - "0154" - ], - "Actors": [ - "012D F82E 0B69 0062 0000 4000 0000 FFC0", - "012D F9E6 0B68 0066 0000 C000 0000 FFC0", - "012A F84A 0BA4 FF85 0000 4000 0000 1901", - "000C F976 0BA4 0000 0000 C000 0000 00FF", - "000C F976 0BA4 FF74 0000 C000 0000 00FF", - "000C F976 0BA4 FEE8 0000 C000 0000 00FF", - "000C F976 0BA4 008C 0000 C000 0000 00FF", - "000C F976 0BA4 0118 0000 C000 0000 00FF", - "008D F89C 0B54 0001 0000 C000 0000 00FF", - "00CF F9E6 0AF0 FFFD 0000 C000 0000 0B02", - "0095 FA35 0B1C FFFE C000 4000 0000 8508" - ] - }, - { - "File": { - "Name": "Scene 4, Room 12", - "Start": "02369000", - "End": "0236BB80", - "RemapStart": null + { + "Id": 825, + "Type": 15, + "Flags": 0 }, - "Id": 12, - "Objects": [ - "002C", - "0025", - "005D", - "000D", - "0085", - "00A4", - "005F" - ], - "Actors": [ - "0112 F64E 1035 0099 0000 0000 0006 1AFF" - ] - }, - { - "File": { - "Name": "Scene 4, Room 13", - "Start": "0236C000", - "End": "02378BE0", - "RemapStart": null + { + "Id": 826, + "Type": 15, + "Flags": 0 }, - "Id": 13, - "Objects": [ - "002C", - "00A4", - "000E", - "011C", - "0024", - "015C", - "0154" - ], - "Actors": [ - "012D F688 11E4 FFCF 0000 0000 0000 3CC1", - "012D F70D 1130 FF02 0000 A000 0000 3CC1", - "01C9 F8F6 120C 0237 0000 638E 0009 18FF", - "0041 F6DB 1144 FED4 0000 E000 0000 0211", - "0049 F77C 1248 017C 0000 4000 0000 117A", - "0008 F704 1293 017C 0000 4000 0000 03F5", - "0008 F77C 1293 0104 0000 4000 0000 03F5", - "0008 F77C 1293 01F4 0000 4000 0000 03F5", - "0008 F7F4 1293 017C 0000 4000 0000 03F5", - "012A F6AA 1130 FF00 0000 0000 0000 3C03", - "012A FA34 1130 012C 0000 2000 0000 3A00", - "000A F77C 1248 017C 0000 E000 0000 5845" - ] - }, - { - "File": { - "Name": "Scene 4, Room 14", - "Start": "02379000", - "End": "0237B260", - "RemapStart": null + { + "Id": 827, + "Type": 15, + "Flags": 0 }, - "Id": 14, - "Objects": [ - "002C", - "00A4", - "000E", - "0032" - ], - "Actors": [ - "0071 F8A4 1068 FC84 0000 A000 0000 0F00", - "0112 FAC9 0F5A FEA8 0000 0000 0006 1AFD", - "0002 F81B 1054 FC05 0000 0000 0000 FFFF", - "0002 F9A7 1018 FD8D 0000 0000 0000 0003", - "0173 FAC8 0F5F FEA9 0000 003E 0001 3F00" - ] - }, - { - "File": { - "Name": "Scene 4, Room 15", - "Start": "0237C000", - "End": "0237D1D0", - "RemapStart": null + { + "Id": 828, + "Type": 15, + "Flags": 0 }, - "Id": 15, - "Objects": [ - "002C", - "0032", - "000D" - ], - "Actors": [ - "0013 00CA 0040 FFFA 0000 4000 0000 0003", - "0183 0064 0000 FDD9 0000 0000 0000 FF40", - "0002 0066 0000 FDAA 0000 0000 0000 FFFF", - "0002 011B 0000 FEC0 0000 0000 0000 FFFF" - ] - }, - { - "File": { - "Name": "Scene 4, Room 16", - "Start": "0237E000", - "End": "02389970", - "RemapStart": null + { + "Id": 829, + "Type": 15, + "Flags": 0 }, - "Id": 16, - "Objects": [ - "002C", - "00A4", - "000E", - "011C", - "0170" - ], - "Actors": [ - "0112 020B 0B2F 00F6 0000 0000 0006 1AFF", - "005E 04C4 0D2A FFCE E38E 4000 0000 03FC", - "005E 035E 0B59 FF52 0000 0000 0000 03FC", - "005E 025C 0B59 FF3E 0000 0000 0000 03FC", - "005E 04C4 0CDA FFCE E38E 4000 0000 105F", - "0111 05D5 0AF0 0182 0000 0000 0000 5209", - "0111 05A5 0AF0 01BD 0000 0000 0000 5409", - "012A 04AF 0AF0 FF64 0000 2000 0000 3C20", - "01A0 04BA 0B7C 00A3 0000 E000 0000 FFFF", - "01A0 03E7 0ADC FE6E 0000 4000 0000 FFFF", - "01A0 0581 0AF0 FB68 0000 0000 0000 FFFF", - "01A0 0180 0B7C 015F 0000 4000 0000 FFFF", - "01A0 057F 0B18 FD0C 0000 4000 0000 FFFF", - "0110 04F3 0B7C 00C8 0000 2000 0000 FFFF", - "0110 04BA 0BB3 00A3 0000 1E94 0000 FFFF", - "0110 02AD 0ADC 00B7 0000 0000 0000 FFFF", - "0110 057D 0AF0 FC31 0000 0000 0000 FFFF", - "0110 01CC 0B7C 0172 0000 0000 0000 FFFF" - ] - }, - { - "File": { - "Name": "Scene 4, Room 17", - "Start": "0238A000", - "End": "02393140", - "RemapStart": null + { + "Id": 1161, + "Type": 11, + "Flags": 0 }, - "Id": 17, - "Objects": [ - "002C", - "00C9", - "000E", - "00D4", - "00F2" - ], - "Actors": [ - "011B FEE8 0000 FDBC 0000 0000 0000 12A9", - "012A FEE8 0000 FDBC 0000 0000 0000 0901", - "00DD FEE6 0082 FF70 0000 0000 0000 FFFF", - "006F FEE8 0000 FE20 0000 8000 0000 0900", - "006F FEED 0000 FEE8 0000 0000 0000 0900", - "01AE FECA 0000 FEC2 0000 0000 0000 2403", - "0008 FE9D 0032 FDBC 0000 0000 0000 03F4", - "0008 FE9D 0032 FF4C 0000 0000 0000 03F4", - "0008 FF33 0032 FDBC 0000 0000 0000 03F4", - "0008 FF33 0032 FF4C 0000 0000 0000 03F4", - "000A FF24 0000 FF24 0000 4000 0000 7542", - "000A FF10 0000 FE8E 0000 0000 0000 082C" - ] - }, - { - "File": { - "Name": "Scene 4, Room 18", - "Start": "02394000", - "End": "02397B80", - "RemapStart": null + { + "Id": 1173, + "Type": 11, + "Flags": 0 }, - "Id": 18, - "Objects": [ - "002C", - "005F", - "0106", - "016C" - ], - "Actors": [ - "0113 0152 0014 FA54 0000 0000 0000 FF01", - "006B 00FA FFF8 FAF0 0000 0000 0000 FFFF", - "006B 01AE FFF8 FAF0 0000 0000 0000 FFFF", - "006B 0154 FFF8 FB40 0000 0000 0000 0007", - "006B 01AE FFF8 FB90 0000 0000 0000 000D", - "006B 00FA FFF8 FB90 0000 0000 0000 0011", - "0169 0151 0014 FA3A 0000 C000 0000 0001", - "0183 0153 0014 F9E5 0000 0000 0000 FF40", - "0111 00BB 0014 FA57 0000 0000 0000 5E12", - "0111 00BC 0014 FA16 0000 0000 0000 6004", - "0111 01E7 0014 FA56 0000 0000 0000 6212", - "0111 01E6 0014 FA15 0000 0000 0000 6404", - "0111 0026 0000 FB65 0000 0000 0000 6604", - "0111 002A 0000 FAEE 0000 0000 0000 6804", - "0111 0208 0000 FC51 0000 0000 0000 6A12", - "0111 0023 0000 FC4E 0000 0000 0000 6C12" - ] - }, - { - "File": { - "Name": "Scene 4, Room 19", - "Start": "02398000", - "End": "0239C1E0", - "RemapStart": null + { + "Id": 1174, + "Type": 11, + "Flags": 0 }, - "Id": 19, - "Objects": [ - "002C", - "00A4", - "005F", - "000E", - "011C" - ], - "Actors": [ - "006B 0442 00E8 F8DA 0000 0000 0000 FFFF", - "006B 0442 00E8 F98E 0000 0000 0000 0003", - "006B 0492 00E8 F934 0000 0000 0000 0007", - "006B 04E2 00E8 F8DA 0000 0000 0000 0009", - "006B 04E2 00E8 F98E 0000 0000 0000 000D", - "006B 0532 00E8 F934 0000 0000 0000 0011", - "006B 0582 00E8 F8DA 0000 0000 0000 0015", - "006B 0582 00E8 F98E 0000 0000 0000 0019", - "008D 03C6 00A0 F933 0000 4000 0000 00FF", - "0112 032E 0138 F931 0000 0000 0006 1AFE", - "0112 0330 0136 F933 0000 0000 0001 1AFE", - "005E 04E8 00F0 F935 0000 0000 0000 2400", - "005E 036E 0104 F95D 0000 0000 0000 2400", - "0111 034D 0104 F9C9 0000 0000 0000 6E12", - "0111 0385 0104 F9C7 0000 0000 0000 700F", - "000A 0358 0104 F8D8 0000 C000 0000 27E4" - ] - }, - { - "File": { - "Name": "Scene 4, Room 20", - "Start": "0239D000", - "End": "023A3D10", - "RemapStart": null + { + "Id": 1175, + "Type": 11, + "Flags": 0 }, - "Id": 20, - "Objects": [ - "002C", - "000E", - "00A4", - "00C9", - "0024", - "015C" - ], - "Actors": [ - "012A 06F5 0064 F8BE 0000 C000 0000 0101", - "006F 0730 0064 F8C4 0000 C000 0000 0100", - "0095 07E7 0098 F8B8 0000 C000 0000 8501", - "01AE 0757 0064 F8A5 0000 C000 0000 0423", - "0008 06CC 0098 F871 0000 C000 0000 03F5", - "0008 06CC 0098 F907 0000 C000 0000 03F5" - ] - }, - { - "File": { - "Name": "Scene 4, Room 21", - "Start": "023A4000", - "End": "023AC4C0", - "RemapStart": null + { + "Id": 1176, + "Type": 11, + "Flags": 0 }, - "Id": 21, - "Objects": [ - "002C", - "00A4", - "00B7" - ], - "Actors": [ - "0043 0CEE 0078 0000 0000 0000 0000 2F00", - "0049 0CEE 0078 0000 0000 0000 0000 3FFF", - "0015 0D94 0280 FEB5 0000 0000 0000 2F03", - "0015 0CEB 01B8 00B4 0000 0000 0000 3003", - "0015 0DAE 0280 0140 0000 4000 0000 3403", - "005E 0CEB 01B8 FF57 0000 0000 0000 2400" - ] - }, - { - "File": { - "Name": "Scene 4, Room 22", - "Start": "023AD000", - "End": "023B3B00", - "RemapStart": null + { + "Id": 1177, + "Type": 11, + "Flags": 0 }, - "Id": 22, - "Objects": [ - "002C", - "000E", - "00A4", - "00C9", - "00D4" - ], - "Actors": [ - "006F 0616 00C8 07D0 0000 8000 0000 0200", - "01AE 0600 00C8 07F3 0000 8000 0000 0843", - "0008 0663 00FA 076C 0000 8000 0000 03F5", - "005E 05C9 00C4 076D 0000 0000 0000 1042", - "000A 0640 00C8 0852 0000 4000 0000 5841" - ] - }, - { - "File": { - "Name": "Scene 4, Room 23", - "Start": "023B4000", - "End": "023BAD20", - "RemapStart": null + { + "Id": 1194, + "Type": 20, + "Flags": 0 }, - "Id": 23, - "Objects": [ - "002C", - "0025", - "005D", - "000D", - "0085", - "00A4", - "005F", - "000E", - "00C9" - ], - "Actors": [ - "006F 05DC 0AF0 F900 0000 4000 0000 0500", - "01AE 05B6 0AF0 F8E7 0000 4000 0000 1463", - "0008 0640 0B24 F8AD 0000 4000 0000 03F5", - "0008 0640 0B24 F943 0000 4000 0000 03F5", - "012A 0640 0AF0 F8F8 0000 4000 0000 0500", - "000A 0550 0AF0 F8C6 0000 8000 0000 5848" - ] - }, - { - "File": { - "Name": "Scene 4, Room 24", - "Start": "023BB000", - "End": "023C0540", - "RemapStart": null + { + "Id": 1195, + "Type": 20, + "Flags": 0 }, - "Id": 24, - "Objects": [ - "002C", - "009E", - "00AA" - ], - "Actors": [ - "0099 F490 0B68 008B 0000 0000 0000 FFFF", - "0047 F490 0B18 008B 0000 4000 0000 FFFF", - "0049 F490 0B68 008B 0000 4000 0000 0FFF", - "0015 F48F 0B18 0089 0000 0000 0000 1C11" - ] - }, - { - "File": { - "Name": "Scene 4, Room 25", - "Start": "023C1000", - "End": "023C7AE0", - "RemapStart": null + { + "Id": 1196, + "Type": 21, + "Flags": 0 }, - "Id": 25, - "Objects": [ - "002C", - "0024", - "015C", - "001B" - ], - "Actors": [ - "0025 FCC8 0AF0 FB8A 0000 E000 0000 FFFF", - "0095 FD8E 0B36 FAC6 0000 E000 0000 8510", - "0008 FC8E 0B23 FB61 0000 2000 0000 03F5", - "0008 FCF3 0B27 FBC8 0000 A000 0000 03F5" - ] - }, - { - "File": { - "Name": "Scene 4, Room 26", - "Start": "023C8000", - "End": "023CE8A0", - "RemapStart": null + { + "Id": 1197, + "Type": 21, + "Flags": 0 }, - "Id": 26, - "Objects": [ - "002C", - "000E", - "00A4", - "0170", - "009D", - "00B0", - "011C", - "0190", - "00A8", - "0024", - "015C" - ], - "Actors": [] - } - ] - }, - { - "File": { - "Name": "Scene 5", - "Start": "025B8000", - "End": "025CDCF0", - "RemapStart": null - }, - "Id": 5, - "TActors": [ - "00FF 11FF 0023 0294 0000 0000 0000 01BF", - "04FF 00FF 0023 0294 01CC FE98 0000 01BF", - "00FF 14FF 0023 0294 030C 0000 0000 01BF", - "00FF 03FF 0023 FE98 0000 026C C000 01BF", - "14FF 00FF 0023 0000 01CC 02BC C000 01BF", - "02FF 01FF 0023 FF4C FE0C 00A0 8000 01BF", - "15FF 08FF 0023 F9E8 0104 F6FA 0000 01BF", - "09FF 00FF 0023 FB8C FEFC FE52 0000 01BF", - "05FF 00FF 0009 FCB8 030C FF4C 4000 0095", - "0CFF 00FF 002E FF4C 0000 F902 0000 003F", - "05FF 06FF 002E F510 02F8 FF4C C000 007F", - "0CFF 0EFF 002E FF4C 0000 F39E 8000 0068", - "0EFF 0FFF 002E FD58 0078 F1AA C000 01E6", - "13FF 11FF 002E 0492 030C 00B4 C000 01F7", - "01FF 00FF 002E FF4C 0050 0014 0000 003F", - "01FF 00FF 002E FF4C 01CC FE84 8000 003F", - "0BFF 00FF 0009 FF4C 0334 FB28 0000 003F", - "0AFF 00FF 002E FCB8 01CC FF4C 4000 00BB", - "06FF 0DFF 002E F3D0 0424 F984 8000 007F", - "07FF 0DFF 002E F3D0 0424 F18C 0000 007F", - "09FF 08FF 002E FB8C 003C F93E 8000 009B", - "0CFF 10FF 002E FB00 006C F57E 8000 007F", - "0FFF 0CFF 0009 FC90 0078 F57E 0000 0082", - "12FF 11FF 002E 0492 0000 00B4 C000 00BE", - "0AFF 00FF 002E FCB8 035C 0122 4000 00BF", - "16FF 0BFF 002E FF4C 0406 F7F4 0000 0154", - "07FF 15FF 0023 F3D0 0334 EF84 0000 00BF" - ], - "Paths": [ - { - "Points": [ - [ - -2561, - 621, - -186 - ], - [ - -2058, - 121, - -204 - ], - [ - -1797, - 114, - -186 - ], - [ - -1307, - 725, - -186 - ] - ] - }, - { - "Points": [ - [ - -1554, - 428, - -180 - ], - [ - -1784, - 145, - -180 - ], - [ - -1554, - 428, - -180 - ] - ] - } - ], - "Rooms": [ - { - "File": { - "Name": "Scene 5, Room 0", - "Start": "025CE000", - "End": "025E3C80", - "RemapStart": null + { + "Id": 1202, + "Type": 22, + "Flags": 0 }, - "Id": 0, - "Objects": [ - "0059", - "00A4", - "000E", - "011C", - "0190", - "00A8" - ], - "Actors": [ - "012D FF4D 0087 FBBA 0000 8000 0000 FFC2", - "012D FDA2 03A6 0165 0000 8000 0000 FFC2", - "012D FDFF 01B7 FF49 0000 C000 0000 FFC2", - "012D 0099 02F7 FF46 0000 4000 0000 FFC2", - "012D 0183 02F7 FF4D 0000 C000 0000 FFC2", - "012D FBE2 00BB FF24 4000 0000 0000 FFC2", - "0064 FCF4 030C FF4C 0000 0000 0000 1FFF", - "0064 FF50 0334 FBE4 0000 0000 0000 3FFF", - "0065 FF4C 02FD FF4C 0000 0000 0000 FF00", - "0185 FD4E 03A0 0156 0000 8000 0000 857F", - "012D FF9C 0000 01CD 0000 0000 0000 0EC1", - "012D FEFB 0000 FC68 0000 0000 0000 0EC1", - "01BB FF4D 0000 0204 0000 8000 0000 0FCE", - "01BB FF4D FF4C FBC4 0000 0000 0000 0FCE", - "01BB FCA2 003C FF49 0000 4000 0000 0FCE", - "012A FC65 003C FF4C 0000 0000 0000 0E00", - "0064 FF4C 030C 0064 0000 0000 0000 0FD9", - "012E FD4E 035C 0156 0000 8000 0000 1C9E", - "012D 003C 0000 FF4A 0000 0000 0000 1FC1", - "01BB FF4D 01CC 01E1 0000 8000 0000 00F9", - "012A FF27 01CC 019F 0000 0000 0000 3900", - "01BB 01E3 030C FF4D 0000 C000 0000 00FA", - "012A 0206 030C FF71 0000 0000 0000 3A00", - "012A FE2C 01CC FF49 0000 0000 0000 3B20" - ] - }, - { - "File": { - "Name": "Scene 5, Room 1", - "Start": "025E4000", - "End": "025EE160", - "RemapStart": null + { + "Id": 1203, + "Type": 22, + "Flags": 0 }, - "Id": 1, - "Objects": [ - "0059", - "00A4", - "000E", - "011C", - "0190", - "00A8", - "0170" - ], - "Actors": [ - "0064 FF4C 030C FFC4 0000 0000 0000 2FFF", - "0065 FF4C 02FD FF4C 0000 0000 0000 FF00", - "0185 FED4 01B0 FFF9 0000 8000 0000 857F", - "01A0 FF2E 02BC FEB0 0000 0000 0000 FFFF", - "01A0 FF6A 02BB FEB0 0000 0000 0000 FFFF", - "01D6 FF4B 0325 FF4D 0000 0000 0000 1106", - "01D6 FF4B 03D4 FF4D 0000 0000 0000 9106", - "005E FE8E 03CF FE8E 2000 2000 0000 110A", - "005E 000A 03CF FE8E 2000 E000 0000 110A", - "005E FE8E 03CF 000A 2000 6000 0000 110A", - "005E 000A 03CF 000A 2000 A000 0000 110A", - "01BB FF4D FFBF FF9E 4000 0000 0000 1FCA", - "012E FED4 017C FFF9 0000 8000 0000 1C9D" - ] - }, - { - "File": { - "Name": "Scene 5, Room 2", - "Start": "025EF000", - "End": "025F4B90", - "RemapStart": null + { + "Id": 1204, + "Type": 23, + "Flags": 0 }, - "Id": 2, - "Objects": [ - "0059", - "00A4", - "000E", - "011C", - "0170", - "011D", - "00E5" - ], - "Actors": [ - "012D 0206 FFCB 0257 4000 0000 0000 FFC2", - "00EC 01AF FEBD 00FB 0000 0000 0000 0000", - "012C 01A2 FE48 013D 4000 0000 0000 FFFC", - "012C 00B3 FE48 013E 0000 C000 4000 FFFC", - "012C 0101 FE48 01E0 0000 0000 4000 FFFC", - "012C 0012 FE07 00F0 0000 8000 4000 FFFC", - "012C 0101 FE48 0168 0000 0000 4000 FFFC", - "012C 003B FE48 013E 0000 C000 4000 FFFC", - "012C 0036 FDF4 00F0 0000 8000 4000 FFFC", - "01A0 0019 FE0C 0246 0000 4000 0000 FFFF", - "01A0 0019 FE0C 020A 0000 4000 0000 FFFF", - "01A0 005B FE0C 027C 0000 0000 0000 FFFF", - "01A0 0066 FE0C 00CC 0000 0000 0000 FFFF", - "01A0 0097 FE0C 027C 0000 0000 0000 FFFF", - "01A0 001F FE0C 027C 0000 0000 0000 FFFF", - "01A0 00A2 FE0C 00CC 0000 0000 0000 FFFF", - "01A0 00D7 FE0C 016E 0000 4000 0000 FFFF", - "01A0 00D7 FE0C 01AA 0000 4000 0000 FFFF", - "01A0 01C7 FE0C 016D 0000 4000 0000 FFFF", - "01A0 01C7 FE0C 01A9 0000 4000 0000 FFFF", - "01A0 00DE FE0C 00CC 0000 0000 0000 FFFF", - "01A0 00D7 FE0C 01E6 0000 4000 0000 FFFF", - "01A0 012B FE0C 01E5 0000 4000 0000 FFFF", - "000A 0294 FF92 0258 0000 4000 0023 8846", - "0112 02A4 FF5D 0257 0000 0000 0006 18A3", - "012A 00DC FDFD 00C9 0000 0000 0000 3903", - "01BB 016A FE95 00F5 C000 C000 0000 1FF9", - "012A 0011 FDFD 00C9 0000 0000 0000 3A03", - "01BB 01AC FE95 0293 C000 0000 0000 1FFA" - ] - }, - { - "File": { - "Name": "Scene 5, Room 3", - "Start": "025F5000", - "End": "025FB710", - "RemapStart": null + { + "Id": 1205, + "Type": 23, + "Flags": 0 }, - "Id": 3, - "Objects": [ - "0059", - "00A4", - "0024", - "011C", - "0170", - "0154", - "015C", - "0032" - ], - "Actors": [ - "012D FBB6 0000 035C 0000 0000 0000 FFC0", - "012D FE27 0064 035A 0000 C000 0000 FFC2", - "012D FAE5 00C6 035D 0000 4000 0000 FFC2", - "0112 F6F5 018B 035E 0000 0000 0007 1AFF", - "0065 003C 02FD 032A 0000 0000 0000 FF00", - "0002 F819 012C 02FD 0000 0000 0000 0003", - "0002 F819 012C 03C6 0000 0000 0000 0003", - "01A0 F9DD 0000 02E8 0000 0000 0000 FFFF", - "01A0 F9DD 0000 03CF 0000 0000 0000 FFFF", - "01A0 F9DD 0000 0318 0000 0000 0000 FFFF", - "01A0 FA19 0000 03CF 0000 0000 0000 FFFF", - "01A0 FC21 0000 03D0 0000 0000 0000 FFFF", - "01A0 FC1E 0000 02E8 0000 0000 0000 FFFF", - "01A0 F72C 0140 02E8 0000 0000 0000 FFFF", - "01A0 F768 0140 02E7 0000 0000 0000 FFFF", - "01A0 F779 0140 03D1 0000 0000 0000 FFFF", - "01C9 F8DE 012C 0363 0000 4000 0005 18CB", - "0095 F752 0208 035F 8000 0000 0000 8610", - "0065 F95C 007D 032A 0000 0000 0000 1A02", - "0111 F6F6 0140 0302 0000 4000 0000 4204", - "0111 F6F6 0140 0328 0000 4000 0000 4804", - "005E FC4F 01AD 035C 0000 0000 2000 10E7", - "005E FC4F 0173 0379 0000 0000 2000 10E7", - "005E FC4F 0173 033A 0000 0000 2000 10E7", - "01BB F7AA 0140 035B 0000 4000 0000 1FE7", - "0111 F6F7 0140 03B0 0000 4000 0000 5209", - "0111 F6F7 0140 0389 0000 4000 0000 6A09" - ] - }, - { - "File": { - "Name": "Scene 5, Room 4", - "Start": "025FC000", - "End": "02601FE0", - "RemapStart": "25FB8D0" + { + "Id": 1206, + "Type": 22, + "Flags": 0 }, - "Id": 4, - "Objects": [ - "0059", - "00A4", - "000E", - "011C", - "0170" - ], - "Actors": [ - "005E 0483 0320 FCC7 0000 0000 0000 2400", - "0065 0514 02FD FF4C 0000 4000 0000 FF00", - "01A0 04B5 0320 FBF4 0000 0000 0000 FFFF", - "01A0 04F1 0320 FBF4 0000 0000 0000 FFFF", - "01A0 055E 0320 FBF4 0000 0000 0000 FFFF", - "01A0 0600 0320 FC66 0000 4000 0000 FFFF", - "01A0 0600 0320 FCCB 0000 4000 0000 FFFF", - "01A0 0600 0320 FD38 0000 4000 0000 FFFF", - "01A0 059A 0320 FBF4 0000 0000 0000 FFFF", - "0110 0504 0320 FD93 0000 0000 0000 FFFF", - "0110 0571 0320 FD93 0000 0000 0000 FFFF", - "0110 053D 0320 FD93 0000 0000 0000 FFFF", - "0110 05BE 0320 FD92 0000 0000 0000 FFFF", - "0111 04C6 0320 FD97 0000 0000 0000 4003", - "0111 0462 0320 FD97 0000 0000 0000 4E03", - "0111 0494 0320 FD97 0000 0000 0000 5003" - ] - }, - { - "File": { - "Name": "Scene 5, Room 5", - "Start": "02602000", - "End": "0260C5F0", - "RemapStart": null + { + "Id": 1207, + "Type": 22, + "Flags": 0 }, - "Id": 5, - "Objects": [ - "0059", - "013B", - "013A", - "011C", - "00B5", - "00E5", - "0016", - "0012", - "0026", - "000D", - "0024", - "015C" - ], - "Actors": [ - "003B F87A 00DD 005E 0000 0000 0000 0000", - "012D FB2F 03B1 FF4C 4000 4000 0000 FFC2", - "0112 F5F8 0335 FE9E 0000 0000 0006 183F", - "0112 F5F3 0344 FE95 0000 0000 0006 193F", - "0112 F5F5 0339 FE9B 0000 0000 0006 1ABF", - "0173 F5F4 033A FFFE 0006 003E 001E 3F00", - "0064 F9EE 01A9 FF4C 0000 C000 0000 7180", - "012D F5FF 0259 FF4C 0000 0000 0000 3DC1", - "012D F5FF 01F5 FF4C 0000 0000 0000 3DC1", - "0112 F5F5 0336 0009 FF4A 0000 0006 1AFD", - "0112 F5F4 032D FFFE 0000 0000 0006 1AFD", - "0112 F5F2 033D FFF4 0000 0000 0006 1AFD", - "012D F701 00F4 FED2 0000 0000 0000 3EC1", - "012D F768 008B FE7B 0000 0000 0000 3EC1", - "012D F779 007B 001E 0000 0000 0000 3EC1", - "012D F6E0 0114 001A 0000 0000 0000 3EC1", - "012D F79F 0053 FF37 0000 0000 0000 3EC1", - "012D F69B 0158 FF8C 0000 0000 0000 3EC1", - "012A FB24 03E3 FF4C 0000 0000 4000 3E03" - ] - }, - { - "File": { - "Name": "Scene 5, Room 6", - "Start": "0260D000", - "End": "026182C0", - "RemapStart": null + { + "Id": 1208, + "Type": 24, + "Flags": 0 }, - "Id": 6, - "Objects": [ - "0059", - "0125", - "011C", - "0032" - ], - "Actors": [ - "012D F502 0328 FF0A 0000 C000 0000 FFC2", - "0183 F42D 0424 FA20 0000 0000 0000 FF40", - "0002 F3D6 0230 FE82 0000 416C 0000 FFFF", - "0002 F375 0230 FE39 0000 416C 0000 FFFF", - "0002 F373 0230 FE9D 0000 416C 0000 FFFF", - "0183 F369 0424 FA23 0000 0000 0000 FF41", - "0183 F3A4 02F8 FDE4 0000 0000 0000 FF40", - "0111 F38C 0424 F9A4 0000 0000 0000 560E", - "0111 F410 0424 F9A6 0000 0000 0000 580E", - "0111 F254 0320 FD11 0000 0000 0000 5A0C", - "0111 F254 0320 FD52 0000 0000 0000 5C12", - "0111 F254 0320 FCD6 0000 0000 0000 6012", - "0064 F3E4 02AD FCBE 0000 C000 0000 5FC3", - "0064 F2CA 02AD FF4C 0000 4000 0000 5FC3", - "0064 F39B 0389 FC25 0000 0000 0000 5FC3", - "0187 F3D3 03FC FC11 0000 0000 0000 0FFF", - "0065 F3A6 0251 FDE4 0000 0000 0000 3203", - "0064 F1DC 02D5 FDE6 0000 0000 0000 5FF2" - ] - }, - { - "File": { - "Name": "Scene 5, Room 7", - "Start": "02619000", - "End": "0261E550", - "RemapStart": null + { + "Id": 1209, + "Type": 24, + "Flags": 0 }, - "Id": 7, - "Objects": [ - "0059", - "0125", - "013B", - "013A", - "00B5", - "00E5", - "0016", - "0012", - "0026", - "011C", - "000E", - "0090", - "0190", - "00A8" - ], - "Actors": [ - "0112 F3D2 048B EF25 0000 0000 0006 18A5", - "01BB F3D0 041F EFAC C000 0000 0000 0FE5", - "0111 F400 0438 F048 0000 0000 0000 640A", - "0111 F39F 0438 F049 0000 0000 0000 6612" - ] - }, - { - "File": { - "Name": "Scene 5, Room 8", - "Start": "0261F000", - "End": "0262CCD0", - "RemapStart": "0261EF00" + { + "Id": 1210, + "Type": 15, + "Flags": 0 }, - "Id": 8, - "Objects": [ - "0059", - "0170", - "011C", - "011D", - "00A4" - ], - "Actors": [ - "012D F802 00E3 F863 4000 0000 0000 FFC2", - "012D F983 FFCB F861 4000 0000 0000 FFC2", - "012D FB52 00CF F8C4 4000 0000 0000 FFC2", - "012D F9E8 00EE F793 0000 0000 0000 FFC2", - "0112 FA3A FF7C F8DD 0000 0000 0006 18BF", - "0112 F75D 0073 F864 0000 0000 0006 18BF", - "0112 FA39 FF7C F8C5 0000 0000 0006 1AFF", - "00D4 FA74 0032 F862 0000 0000 0000 00FF", - "01A0 F76C 003C F846 0000 4000 0000 FFFF", - "01A0 F76C 003C F882 0000 4000 0000 FFFF", - "01A0 FB7F 003C F87A 0000 0000 0000 FFFF", - "01A0 FBBC 003C F87A 0000 0000 0000 FFFF", - "01A0 F833 FF24 F84C 0000 4000 0000 FFFF", - "01A0 F833 FF24 F888 0000 4000 0000 FFFF", - "01A0 F90E FF24 F82A 0000 0000 0000 FFFF", - "01A0 F94A FF24 F82A 0000 0000 0000 FFFF", - "0110 F75E 006C F839 0000 0000 0000 FFFF", - "0110 F75E 006C F889 0000 0000 0000 FFFF", - "0110 F75E 006C F860 0000 0000 0000 FFFF", - "005E F8B6 0088 F805 1555 E000 0000 109B", - "005E F8B5 0088 F8C0 1555 A000 0000 109B" - ] - }, - { - "File": { - "Name": "Scene 5, Room 9", - "Start": "0262D000", - "End": "02634FE0", - "RemapStart": "262CD30" + { + "Id": 1211, + "Type": 15, + "Flags": 0 }, - "Id": 9, - "Objects": [ - "0059", - "013A", - "011C", - "00A4", - "000E", - "0170" - ], - "Actors": [ - "012D FB8C 0027 FA68 0000 0000 0000 FFC2", - "01A0 FBD3 FEFC FA86 0000 0000 0000 FFFF", - "01A0 FB17 003C F9E1 0000 0000 0000 FFFF", - "01A0 FAEF FEFC FAEC 0000 4000 0000 FFFF", - "01A0 FC27 FEFC FACB 0000 4000 0000 FFFF", - "01A0 FAF7 FEFC FB4B 0000 0000 0000 FFFF", - "000A FB8B 003C FC05 0000 0000 0000 27E5", - "005E FB4F 003C FC03 0000 0000 0000 1093", - "005E FBC8 003C FC03 0000 0000 0000 1093", - "01BB FB8C 003C FBB4 0000 8000 0000 0FD3", - "01BB FB14 003C FBB4 0000 8000 0000 0FD3", - "01BB FC04 003C FBB4 0000 8000 0000 0FD3", - "01BB FB14 00B4 FBB4 0000 8000 0000 0FD3", - "01BB FB8C 00B4 FBB4 0000 8000 0000 0FD3", - "01BB FC04 00B4 FBB4 0000 8000 0000 0FD3", - "0111 FBF7 003C F9DF 0000 0000 0000 680E", - "012A FAE5 003C FA82 0000 0000 0000 3E03", - "015F FB8C FEDE FB0F 0000 0000 0000 0FBF" - ] - }, - { - "File": { - "Name": "Scene 5, Room 10", - "Start": "02635000", - "End": "0263AFB0", - "RemapStart": "2634E40" + { + "Id": 1212, + "Type": 15, + "Flags": 0 }, - "Id": 10, - "Objects": [ - "0059", - "0170", - "011C", - "000E", - "0024", - "015C", - "001B" - ], - "Actors": [ - "0025 FC00 043C 0079 0000 0000 0000 FFFF", - "0112 FC02 0219 010D 0000 0000 0006 1B3F", - "0065 FC0E 02FD 001E 0000 0000 0000 FF00", - "01A0 FBB1 01CC FEC5 0000 0000 0000 FFFF", - "01A0 FB82 01CC FF73 0000 0000 0000 FFFF", - "01A0 FC4F 01CC FEC5 0000 0000 0000 FFFF", - "01A0 FB7B 01CC FF23 0000 4000 0000 FFFF", - "01A0 FB83 01CC 00AD 0000 0000 0000 FFFF", - "01A0 FB82 035C 0038 0000 0000 0000 FFFF", - "01A0 FC8C 035C 0041 0000 4000 0000 FFFF", - "01A0 FC84 01CC FFA5 0000 0000 0000 FFFF", - "0110 FB72 01CC 0061 0000 0000 0000 FFFF", - "0110 FC20 035C 017E 0000 0000 0000 FFFF", - "0095 FB7E 035C 003A 0000 4000 0000 8604", - "012D FC07 035C 0018 0000 0000 0000 24C1", - "012D FBFD 0190 00CB 0000 0000 0000 24C1", - "012A FC85 01B4 FFA7 0000 0000 0000 2403", - "0111 FC23 01CC 00FF 0000 0000 0000 7003", - "0111 FBFE 01CC 0101 0000 0000 0000 7203", - "0111 FBDA 01CC 0100 0000 0000 0000 7403" - ] - }, - { - "File": { - "Name": "Scene 5, Room 11", - "Start": "0263B000", - "End": "0263F9B0", - "RemapStart": null + { + "Id": 1213, + "Type": 15, + "Flags": 0 }, - "Id": 11, - "Objects": [ - "0059", - "013B", - "013A", - "011C", - "00B5", - "00E5", - "0016", - "0012", - "0026", - "00B0", - "0090", - "0085" - ], - "Actors": [ - "0112 FF99 0360 FB0F 0000 0000 0006 18BF", - "0112 FEFE 035F FB10 0000 0000 0006 1AFF", - "0080 FFA3 039C F97D 0000 C000 ED83 0F10", - "0080 FEE8 03DC F8FD 0000 C000 ED83 0F10", - "0080 FEF2 035B F9FD 0000 4000 127D 0F10", - "012D FEE7 0406 F81C 0000 0000 0000 3EC1", - "012D FFAE 0406 F81C 0000 0000 0000 3EC1", - "012D FEE8 0334 FB00 0000 0000 0000 3EC1", - "012D FFB0 0334 FB00 0000 0000 0000 3EC1", - "012A FF4E 04FB F7E3 4000 0000 0000 3E03" - ] - }, - { - "File": { - "Name": "Scene 5, Room 12", - "Start": "02640000", - "End": "02646D90", - "RemapStart": null + { + "Id": 1214, + "Type": 15, + "Flags": 0 }, - "Id": 12, - "Objects": [ - "0059", - "013B", - "011C", - "0154", - "00A4", - "0170", - "0024", - "015C" - ], - "Actors": [ - "012D FF4A 00CF F60A 4000 0000 0000 FFC2", - "012D FC1A 00F7 F740 4000 0000 0000 FFC2", - "012D FAFF 00EB F5F0 4000 0000 0000 FFC2", - "0160 FE0C FF60 F4CA 0000 0000 0000 0000", - "0160 008C FF60 F74A 0000 0000 0000 0000", - "01BB FE98 0064 F470 8000 0000 0000 0FFF", - "01BB FF10 0064 F470 8000 0000 0000 0FFF", - "01BB FF88 0064 F470 8000 0000 0000 0FFF", - "01BB 0000 0064 F470 8000 0000 0000 0FFF", - "01A0 FE7A 0000 F3CA 0000 0000 0000 FFFF", - "01A0 FED1 0000 F3CA 0000 0000 0000 FFFF", - "01A0 FFA9 0000 F3CA 0000 0000 0000 FFFF", - "01A0 FFF9 0000 F3CA 0000 0000 0000 FFFF", - "01A0 FE8D 0000 F7E3 0000 0000 0000 FFFF", - "01A0 FFF5 0000 F7E5 0000 0000 0000 FFFF", - "01A0 007E FF60 F64B 0000 0000 0000 FFFF", - "01A0 FF89 FF60 F64F 0000 0000 0000 FFFF", - "01A0 FF05 FF60 F555 0000 0000 0000 FFFF", - "01A0 000B FF60 F54F 0000 0000 0000 FFFF", - "01A0 FE0E FF60 F59B 0000 0000 0000 FFFF", - "01A0 FE39 FF60 F6A6 0000 0000 0000 FFFF", - "0095 FE76 0000 F3C8 0000 4000 0000 8608", - "01C9 FD46 003C F722 0000 0000 0005 18CC" - ] - }, - { - "File": { - "Name": "Scene 5, Room 13", - "Start": "02647000", - "End": "02647A00", - "RemapStart": null + { + "Id": 1215, + "Type": 15, + "Flags": 0 }, - "Id": 13, - "Objects": [ - "0059", - "0125", - "013B", - "013A", - "0020" - ], - "Actors": [ - "0136 F3D0 0410 F588 0000 4000 0000 FFFF" - ] - }, - { - "File": { - "Name": "Scene 5, Room 14", - "Start": "02648000", - "End": "0264EE60", - "RemapStart": null + { + "Id": 1216, + "Type": 16, + "Flags": 0 }, - "Id": 14, - "Objects": [ - "0059", - "011C", - "000E", - "0170", - "000C" - ], - "Actors": [ - "012D FE55 FFEB F1A6 0000 4000 0000 FFC2", - "0012 FF5A FF60 F34B 0000 C16C 0000 FFFF", - "0012 FF17 FED4 F1EE 0000 C0B6 0000 FFFF", - "0012 FF52 FED4 F179 0000 0000 0000 FFFF", - "0012 FF71 FED4 F1F1 0000 C0B6 0000 FFFF", - "0012 FFDA FF60 F332 0000 DA50 0000 FFFF", - "0012 FF41 FED4 F22E 0000 0000 0000 FFFF", - "0012 FF52 FEF8 F13B 0000 D3E9 0000 FFFF", - "01A0 0024 FEC0 F18C 0000 4000 0000 FFFF", - "01A0 FEF1 FED4 F10E 0000 0000 0000 FFFF", - "01A0 FE73 FF60 F116 0000 4000 0000 FFFF", - "01A0 001E FF60 F371 0000 0000 0000 FFFF", - "01A0 FFAB FED4 F27C 0000 4000 0000 FFFF", - "0065 FF4B FEDE F29A 0000 0000 0000 1804", - "0111 001C FF60 F117 0000 0000 0000 7604", - "0111 FFE4 FF60 F117 0000 0000 0000 7804" - ] - }, - { - "File": { - "Name": "Scene 5, Room 15", - "Start": "0264F000", - "End": "02656430", - "RemapStart": null + { + "Id": 1217, + "Type": 16, + "Flags": 0 }, - "Id": 15, - "Objects": [ - "0059", - "013B", - "013A", - "011C", - "00B5", - "00E5", - "0016", - "0012", - "0026", - "000E", - "00A4", - "0090" - ], - "Actors": [ - "0112 FC2D 0095 F3DA 0000 0000 0000 10FF", - "0112 FC94 0099 F2EF 0000 0000 0000 11FF", - "005E FD53 00C8 F366 0000 0000 2000 1126", - "005E FBCD 00C8 F366 0000 0000 E000 1126", - "005E FC5A 0078 F492 0000 0000 0000 1126", - "005E FC5C 0078 F232 0000 0000 0000 1126", - "012A FD34 0078 F46E 0000 0000 0000 3803", - "015F FC2C FF10 F3E0 0000 0000 0000 0E3F", - "015F FC90 FF10 F2F0 0000 0000 0000 0E3F", - "015F FCCC FF10 F390 0000 0000 0000 0E3F" - ] - }, - { - "File": { - "Name": "Scene 5, Room 16", - "Start": "02657000", - "End": "0265AAD0", - "RemapStart": null + { + "Id": 1300, + "Type": 17, + "Flags": 0 }, - "Id": 16, - "Objects": [ - "0059", - "000E", - "0032", - "0170", - "00AA" - ], - "Actors": [ - "0112 FAFA 00A5 F40C 0000 0000 0006 18BF", - "0002 FAFB 006C F456 0000 0000 0000 FFFF", - "01A0 FA64 006C F4C5 0000 4000 0000 FFFF", - "01A0 FA65 006C F489 0000 4000 0000 FFFF", - "01A0 FB9B 006C F492 0000 4000 0000 FFFF", - "01A0 FB9B 006C F4CE 0000 4000 0000 FFFF", - "01A0 FA64 006C F532 0000 4000 0000 FFFF", - "0015 FA60 006C F534 0000 0000 0000 0111", - "0111 FA77 006C F42F 0000 0000 0000 7A12", - "0111 FB82 006C F429 0000 0000 0000 7C0E" - ] - }, - { - "File": { - "Name": "Scene 5, Room 17", - "Start": "0265B000", - "End": "02663A20", - "RemapStart": null + { + "Id": 1301, + "Type": 17, + "Flags": 0 }, - "Id": 17, - "Objects": [ - "0059", - "000E", - "011C", - "00A4", - "00CA", - "0190", - "00A8" - ], - "Actors": [ - "01D1 03D4 0168 0083 0000 4000 0000 08FF", - "005E 03DA 0000 0062 0000 0000 0000 2400", - "0065 03E3 02FD 00B4 0000 0000 0000 FF00", - "0173 064C 0214 00B3 0000 0018 0001 3F00", - "0185 03E7 035B 0152 0000 8000 0000 853F", - "000A 0565 01CC 00BB 0000 4000 0017 B120", - "00D2 03CD 0000 00B4 0000 C000 0000 1004", - "0112 064E 020A 00B3 0000 0000 0006 18D7", - "012E 03E7 030C 0152 0000 8000 0000 1C9C", - "012D 041C 0190 00B5 0000 0000 0000 1FC1", - "012D 035C 0000 0104 0000 0000 0000 1FC1", - "012D 035C 0000 0063 0000 0000 0000 1FC1", - "012D 035C 030C 0106 0000 0000 0000 1FC1", - "0111 0463 0000 003E 0000 4000 0000 4A0E", - "0111 0463 0000 0125 0000 4000 0000 4C0E", - "005E 034A 0384 0017 1C72 2000 0000 1137", - "005E 047B 0384 0017 1C72 E000 0000 1137", - "005E 034B 0384 0151 1C72 6000 0000 1137", - "005E 047C 0384 0152 1C72 A000 0000 1137", - "005E 0474 0014 001E 0000 C000 0000 10BE", - "005E 0474 0014 014A 0000 C000 0000 10BE" - ] - }, - { - "File": { - "Name": "Scene 5, Room 18", - "Start": "02664000", - "End": "026680C0", - "RemapStart": null + { + "Id": 1306, + "Type": 25, + "Flags": 0 }, - "Id": 18, - "Objects": [ - "0059", - "000E", - "011C", - "00E5", - "001B" - ], - "Actors": [ - "00EC 0630 0000 00B2 0000 0000 0000 0000", - "0025 06B8 014F 011B 0000 0000 0000 FFFF", - "0025 06B5 014F 0054 0000 0000 0000 FFFF", - "0112 071E 004B 00B6 0000 0000 0006 1ABF", - "0065 0546 02FD 00B4 0000 C000 0000 FF00", - "0173 071F 0057 00B3 0000 0000 0001 3F00", - "000A 066E 0000 00AC 0000 4000 0000 1801", - "012D 04BA FFC4 0104 0000 0000 0000 1FC1", - "012D 04BA FFC4 0064 0000 0000 0000 1FC1", - "0187 05D4 0000 00F8 0000 0000 0000 7FFF" - ] - }, - { - "File": { - "Name": "Scene 5, Room 19", - "Start": "02669000", - "End": "0266C930", - "RemapStart": null + { + "Id": 1307, + "Type": 25, + "Flags": 0 }, - "Id": 19, - "Objects": [ - "0059", - "000E", - "011C", - "0032" - ], - "Actors": [ - "0002 0612 030C 010C 0000 0000 0000 FFFF", - "0002 0615 030C 006B 0000 0000 0000 FFFF", - "0002 05CE 030C 00C0 0000 0000 0000 FFFF", - "0173 071D 0360 00B5 0000 000A 0001 3F00", - "000A 05E4 0310 00B6 0000 C000 0009 B822", - "0112 071E 0356 00B5 0000 0000 0006 1AC9" - ] - }, - { - "File": { - "Name": "Scene 5, Room 20", - "Start": "0266D000", - "End": "02673740", - "RemapStart": null + { + "Id": 1328, + "Type": 17, + "Flags": 0 }, - "Id": 20, - "Objects": [ - "0059", - "000E", - "011C", - "0170", - "001B", - "0024", - "015C", - "00A4" - ], - "Actors": [ - "0025 028D 02C2 03B9 0000 8000 0000 FFFF", - "0025 0292 03E0 00B8 0000 0000 0000 FFFF", - "0112 0293 0218 040A 0000 0000 0006 197F", - "0065 026C 02FD 0334 0000 0000 0000 FF00", - "01A0 0330 01C6 01FE 0000 C000 0000 FFFF", - "01A0 0330 01C6 023A 0000 C000 0000 FFFF", - "01A0 020D 01D6 03BA 0000 4000 0000 FFFF", - "01A0 020C 01D6 0347 0000 4000 0000 FFFF", - "01A0 031B 01D6 032A 0000 4000 0000 FFFF", - "01A0 031B 01D6 0366 0000 4000 0000 FFFF", - "01A0 02AE 01D6 03F8 0000 0000 0000 FFFF", - "01A0 010E 01CC 01F8 0000 0000 0000 FFFF", - "01A0 01B5 01CC 0240 0000 0000 0000 FFFF", - "01A0 02BA 01CC 018F 0000 4000 0000 FFFF", - "0095 0334 01C6 021C 0000 4000 0000 8601", - "005E 02E6 01C6 01F4 0000 0000 0000 1062", - "01BB 02D1 01CC 021A 0000 C000 0000 0FE2", - "0111 0200 01CC 0243 0000 0000 0000 4402", - "0111 025A 01D6 03FE 0000 0000 0000 4609", - "0111 0315 01D6 03B3 0000 0000 0000 540E", - "0111 0300 01C6 0235 0000 0000 0000 6E03", - "0111 02FF 01C6 0205 0000 0000 0000 7E03" - ] - }, - { - "File": { - "Name": "Scene 5, Room 21", - "Start": "02674000", - "End": "0267B4A0", - "RemapStart": null + { + "Id": 1329, + "Type": 17, + "Flags": 0 }, - "Id": 21, - "Objects": [ - "0059", - "013B", - "011C", - "0024", - "015C" - ], - "Actors": [ - "012D F516 0131 F0C8 0000 0000 0000 FFC0", - "012D F432 00AF F3B3 0000 0000 0000 FFC0", - "012D F681 00AF F31E 0000 0000 0000 FFC0", - "012D F472 00AF F61A 0000 0000 0000 FFC0", - "012D F60D 00AF F553 0000 0000 0000 FFC0", - "012D F802 00AF F432 0000 0000 0000 FFC0", - "012D F95A 00A1 F588 0000 0000 0000 FFC0", - "012D F7A2 0175 F687 0000 8000 0000 FFC2", - "012D F8A7 018C F53B 8000 8000 0000 FFC2", - "0160 F536 00C3 EEE6 0000 0000 0000 0000", - "0160 F600 006E F632 0000 0000 0000 0000", - "0160 F718 006E F2C2 0000 0000 0000 0000", - "0160 F7DF 006E F521 0000 0000 0000 0000", - "0160 F8A6 006E F639 0000 0000 0000 0000", - "0160 F91D 006E F4F7 0000 0000 0000 0000", - "0095 F5FB 01F9 F554 0000 0000 582E 8602", - "011B F4BB 017C F008 0028 0000 0000 47AB", - "011B F4D2 017C EEFA 0028 0000 0000 47AB", - "0111 F74E 0104 F649 0000 0000 0000 5E09", - "0111 F778 0104 F668 0000 0000 0000 6212" - ] - }, - { - "File": { - "Name": "Scene 5, Room 22", - "Start": "0267C000", - "End": "026850F0", - "RemapStart": null + { + "Id": 1330, + "Type": 17, + "Flags": 0 }, - "Id": 22, - "Objects": [ - "0059", - "013B", - "013A", - "011C", - "00B5", - "00E5", - "0016", - "0012", - "0026", - "00B0" - ], - "Actors": [] - } - ] - }, - { - "File": { - "Name": "Scene 6", - "Start": "02ADE000", - "End": "02AF7B40", - "RemapStart": null - }, - "Id": 6, - "TActors": [ - "19FF 18FF 002E 0140 06C5 FCC2 4000 00B5", - "1AFF 19FF 002E FF38 06C5 FCC2 4000 0093", - "0FFF 05FF 002E 030C 01E0 FCAE C000 0086", - "0FFF 00FF 002E 0424 0000 FDB6 0000 003F", - "0DFF 00FF 002E 055C 001E FDD1 D555 02C3", - "00FF 0EFF 002E 02EC 001E FDD1 AAAB 00B1", - "0BFF 14FF 002E 0528 03EB 05C2 4000 005A", - "0BFF 0AFF 002E FBDC 03EB 05C2 C000 0059", - "09FF 08FF 002E F95C 034B 01D6 8000 00A4", - "04FF 01FF 002E FBDC 0028 FBAA 0000 02DE", - "03FF 01FF 002E FAA4 001E FDD1 2AAB 007F", - "02FF 01FF 002E FD14 001E FDD1 D555 007F", - "16FF 18FF 002E 02A8 0661 FC72 0000 02C1", - "18FF 17FF 002E 02A8 0607 FE41 0000 0080", - "17FF 11FF 002E 0424 034B 0096 4000 02DC", - "15FF 12FF 002E 0762 034B FE66 0000 0096", - "14FF 13FF 002E 07A8 03EB 0496 8000 007F", - "13FF 12FF 002E 07A8 034B 01D6 8000 00AF", - "12FF 11FF 002E 06A4 034B 0096 C000 00AC", - "10FF 11FF 002E 0424 034B FF2E 4000 007F", - "10FF 05FF 002E 02BC 032D FDC6 8000 02DB", - "0AFF 09FF 002E F95C 03EB 0496 8000 02D5", - "07FF 08FF 002E FC54 034B FF2E C000 00A4", - "06FF 05FF 002E 003C 019D FD76 8000 0087", - "05FF 04FF 002E FD6C 01E0 FCAE C000 02D2", - "07FF 05FF 002E FDBC 032D FDC6 8000 0088", - "03FF 1BFF 002E FA65 001E FAD1 6000 007F", - "1BFF 02FF 002E FCCD 001E FA4A 1F4A 007F", - "0CFF 0DFF 002E 0621 FF7E F9BD 0000 0082", - "00FF 01FF 0023 FD8D FFCE FFFF C000 003F", - "1CFF 05FF 002E 003C 03EF F8EA 0000 0154", - "06FF 00FF 0023 0000 0179 FFC3 8000 00BF", - "19FF 05FF 0023 003C 05D0 FBBE 8000 00BF" - ], - "Paths": [ - { - "Points": [ - [ - -486, - -50, - -1 - ], - [ - -403, - -50, - -44 - ] - ] - }, - { - "Points": [ - [ - 1466, - -80, - -1423 - ], - [ - 1466, - -80, - -743 - ] - ] - }, - { - "Points": [ - [ - 1673, - -80, - -743 - ], - [ - 1673, - -80, - -1423 - ] - ] - }, - { - "Points": [ - [ - -555, - 1776, - -675 - ], - [ - -449, - 1823, - -717 - ], - [ - -440, - 1772, - -805 - ], - [ - -463, - 1818, - -902 - ], - [ - -565, - 1781, - -934 - ], - [ - -652, - 1827, - -906 - ], - [ - -685, - 1772, - -809 - ], - [ - -662, - 1823, - -722 - ], - [ - -555, - 1776, - -675 - ] - ] - }, - { - "Points": [ - [ - -565, - 1827, - -498 - ], - [ - -685, - 1767, - -442 - ], - [ - -740, - 1836, - -304 - ], - [ - -699, - 1762, - -179 - ], - [ - -551, - 1818, - -110 - ], - [ - -422, - 1758, - -170 - ], - [ - -366, - 1832, - -304 - ], - [ - -417, - 1758, - -452 - ], - [ - -565, - 1827, - -498 - ] - ] - } - ], - "Rooms": [ - { - "File": { - "Name": "Scene 6, Room 0", - "Start": "02AF8000", - "End": "02B08F40", - "RemapStart": "2AF7C00" + { + "Id": 1331, + "Type": 17, + "Flags": 0 }, - "Id": 0, - "Objects": [ - "00F1", - "016D", - "0163", - "000E", - "013A", - "011E", - "011C", - "0025", - "00B3", - "00B7" - ], - "Actors": [ - "012D 0000 01BA FF94 0000 0000 0000 FFC2", - "0127 FF60 FF6A 010E 0000 0000 0000 000B", - "0127 0000 0118 FFC4 0000 0000 0000 800C", - "0127 015E FFFF 00DC 0000 0E39 0000 800E", - "0127 00A0 FF6A 010E 0000 0000 0000 0010", - "0127 042E 0001 FEDE 0000 0000 0000 001D", - "012A 042E 0001 FEDE 0000 0000 0000 2301", - "012A 015C 0019 00CD 0000 8000 0000 2502", - "012A FF36 0107 0324 C000 0000 0000 2603", - "0117 03F8 FFCE FFB7 0000 0000 0000 1FF7", - "0117 00A0 FF6A 010C 0000 0000 0000 1FF7", - "0117 FF60 FF6A 010E 0000 0000 0000 1FF7", - "0117 03C7 0000 FDDD 0000 0000 0000 1FF7", - "0117 02E8 FFCE 0004 0000 0000 0000 1FF7", - "00C3 FE12 FFCE FFFF 0000 4000 0000 0006", - "000A FF83 FFCE 0021 0000 8000 0000 507A", - "000A 007D 006F FF4F 0000 8000 0026 807F", - "0111 FF01 FF6A 02E6 0000 0000 0000 4203", - "0111 0132 FF6A 02AA 0000 0000 0000 6403", - "0111 FED7 FF6A 02AF 0000 0000 0000 6204", - "0117 0055 FFCE 005A 0000 0000 0000 0177", - "0111 0104 FF6A 02DF 0000 0000 0000 440E", - "015F 02E6 FF01 FFFF 000A 0005 0007 18D7", - "0185 012E FFCD 0136 0000 EAAB 0016 083F", - "0185 FEE6 FFCD 0138 0000 1555 0016 087F", - "000A 0084 006F 0021 0000 8000 0037 885B", - "000A FF79 006F FF4F 0000 8000 0025 885E" - ] - }, - { - "File": { - "Name": "Scene 6, Room 1", - "Start": "02B09000", - "End": "02B12300", - "RemapStart": null + { + "Id": 1332, + "Type": 17, + "Flags": 0 }, - "Id": 1, - "Objects": [ - "00F1", - "016D", - "0163", - "000E", - "013A", - "011E", - "011C", - "0025", - "00B3", - "00B7" - ], - "Actors": [ - "0038 FB83 0000 FF24 0000 0000 0000 FFFF", - "0038 FC36 0000 FEA6 0000 0000 0000 FFFF", - "0013 FB7C 0048 FE0B 0000 1555 0000 0000", - "0013 FC3B 0048 FE0B 0000 EAAB 0000 0000", - "0127 FBDC 0000 FD58 0000 0000 0000 8005", - "012A FC37 0028 FC51 0000 0000 0000 0D01", - "0049 FB7C 0000 FDDF 0000 0000 0000 2FF8", - "0049 FC3B 0000 FDDF 0000 0000 0000 2FF8", - "0049 FB18 0000 FF23 0000 0000 0000 2FF8", - "0049 FCA4 0000 FF20 0000 0000 0000 2FF8", - "012A FBDC 00A9 FDD2 0000 0000 0000 3802", - "0111 FC82 FFCE FFCE 0000 0000 0000 4004", - "000A FBDE 00A7 FF8C 0000 0000 000D 885D", - "0015 FB81 0000 FDE9 0000 0000 0000 2C03", - "0015 FC30 0000 FDE9 0000 0000 0000 2E03" - ] - }, - { - "File": { - "Name": "Scene 6, Room 2", - "Start": "02B13000", - "End": "02B18C10", - "RemapStart": null + { + "Id": 1333, + "Type": 17, + "Flags": 0 }, - "Id": 2, - "Objects": [ - "00F1", - "016D", - "0163", - "0098", - "00A2", - "0179" - ], - "Actors": [ - "0090 FE0A 001E FD22 0000 0000 0000 7FFE", - "0090 FE5C 001E FACB 0000 C000 0000 7FFE", - "0090 FE5F 001E FB8B 0000 C000 0000 7FFE", - "009D FDB6 001E FD67 0000 0000 0000 0000", - "009D FE65 001E FD67 0000 0000 0000 0000", - "00FD FDB1 0020 FBE3 0000 8000 0000 0021", - "012A FE64 001E FD66 0000 0000 0000 2100", - "0127 FDAF 001E FAC4 0000 0000 0000 0028", - "01B4 FDB5 0050 FC50 0000 0000 0000 3601", - "012A FDAE 0046 FA93 0000 2000 0000 3602", - "0127 FCEE 0077 FC5E 0000 0000 0000 003C", - "0127 FE5B FFAA FBF4 0000 0000 0000 003D", - "0111 FE82 001E FB18 0000 0000 0000 6803", - "0111 FE83 001E FB49 0000 0000 0000 660E" - ] - }, - { - "File": { - "Name": "Scene 6, Room 3", - "Start": "02B19000", - "End": "02B1CB50", - "RemapStart": null + { + "Id": 1334, + "Type": 17, + "Flags": 0 }, - "Id": 3, - "Objects": [ - "00F1", - "016D", - "000E", - "00D6", - "000D", - "00A4", - "0114", - "00A2" - ], - "Actors": [ - "0013 F8F2 00BC FC63 0000 4000 0000 0003", - "0013 FAD0 0000 FC7A 0000 C000 0000 0003", - "0013 FA39 0051 FB8E 0000 0000 0000 0003", - "0013 F932 007A FDD5 0000 560B 0000 0003", - "0013 F9DD FFAA FBE2 0000 0000 0000 0003", - "005E F980 001E FB7B 0000 0000 0000 2400", - "005E FA39 001E FB7B 0000 0000 0000 2400", - "005E F980 001E FD38 0000 0000 0000 2400", - "005E FA39 001E FD38 0000 0000 0000 2400", - "009D F9A6 001E FAC6 0000 4000 0000 0000", - "00FD F9DF 001E FBE3 0000 0000 0000 002A", - "012A F9A4 001E FAC8 0000 0000 0000 2A00", - "00F6 F9E3 001E FD1C 0000 0000 0000 0002", - "000A F9E3 001E FD1B 0000 8000 0000 0820", - "000A F9DB 001E FB9A 0000 0000 0000 7848" - ] - }, - { - "File": { - "Name": "Scene 6, Room 4", - "Start": "02B1D000", - "End": "02B24270", - "RemapStart": null + { + "Id": 1335, + "Type": 17, + "Flags": 0 }, - "Id": 4, - "Objects": [ - "00F1", - "016D", - "00AB", - "012A", - "000E", - "001F", - "0059", - "008B", - "000D", - "00D4", - "00CB", - "00DC", - "00F2" - ], - "Actors": [ - "002F FBD3 01EB FCE3 0000 5555 0000 FFFF", - "002F FBEA 01F3 FD2B 0000 6444 0000 FFFF", - "002F FD1D 01E0 FC02 0000 E38E 0000 FFFF", - "002F FCD0 01E0 FBAF 0000 ECCD 0000 FFFF", - "00DD FBDE 0100 FB13 0000 0000 0000 FFFF", - "0150 FC67 01E0 FC87 C000 C000 0000 0F00", - "0159 FB78 02AE FC90 0000 0000 0000 000F", - "012A FBDE 0028 FB0E 0000 0000 0000 3E43", - "012A FBDA 01E3 FB76 0000 0000 0000 3E43", - "01BB FC18 00EC FB0A 4000 C000 0000 0FFE", - "000A FD11 01E0 FBB9 0000 5C72 0000 7066", - "008A FCD1 01E0 FCF8 0000 8000 0000 0A00", - "0111 FBF5 0028 FB28 0000 0000 0000 460E", - "0185 FC68 01E0 FC8C 0000 0000 000B 04BF", - "000A FC2A 02BF FD7D 0000 4000 000F 884C" - ] - }, - { - "File": { - "Name": "Scene 6, Room 5", - "Start": "02B25000", - "End": "02B3CF40", - "RemapStart": "2B24380" + { + "Id": 1336, + "Type": 26, + "Flags": 0 }, - "Id": 5, - "Objects": [ - "00F1", - "016D", - "00AB", - "00B0", - "00A4", - "012A", - "000E", - "0154", - "0190", - "00A8", - "016C", - "000B", - "0170" - ], - "Actors": [ - "0011 0042 0161 FB5C 0000 0000 0000 0001", - "008E 01DA 02F2 FD30 0000 C4FA 0000 0000", - "0158 003C 070A FBB2 0000 0000 0000 0000", - "015A 003C 0421 FA02 0000 0000 0000 FFFF", - "0169 003C 014D FC14 0000 0000 0000 0000", - "0169 FE34 032D FC36 0000 0000 0000 0000", - "0169 0244 032D FC36 0000 0000 0000 0000", - "0169 0244 014D FA56 0000 0000 0000 0000", - "0169 FE34 014D FA56 0000 0000 0000 0000", - "005E FF80 0287 FCB6 0000 0000 0000 2400", - "005E 00F4 0287 FCB1 0000 0000 0000 2400", - "01A0 023A 014D F9EA 0000 0000 0000 FFFF", - "01A0 01FE 014D F9EA 0000 0000 0000 FFFF", - "0110 FEF1 01F4 FC29 0000 0000 0000 FFFF", - "0156 003C 0487 FA63 0000 0000 0000 0004", - "012A 003C 0258 FD62 0000 8000 0000 0782", - "012A FEBA 029B FB2E 0000 0000 0000 0820", - "0157 003C 03CD FBBE 0000 0000 0000 0017", - "011D FDD1 032D F9F9 0000 0000 0000 FFE5", - "011D 029F 014D FB65 0000 0000 0000 FFE8", - "0011 01AA 0411 FB2B 0000 0000 0000 3302", - "012A FEBE 01B9 FA17 0000 C000 0000 3402", - "011D FF76 0287 FD1B 0000 0000 0000 FFF6", - "01D6 FDE6 02C9 FB96 0000 0000 0000 3838", - "01D6 FED9 0190 FC15 0000 0000 0000 B838", - "012E 01BD 02A2 FB0F 0000 0000 0000 1CB3", - "01D1 FE2A 01B8 FC04 0000 0000 0000 19FF", - "005E FE34 01ED FA56 0000 0000 0000 10C6", - "005E 0244 01ED FA56 0000 0000 0000 10C6", - "005E 003C 01ED FC14 0000 0000 0000 10C6", - "0111 027F 014D FB38 0000 0000 0000 4E03", - "01C9 02A1 01E0 FC41 0000 8000 0005 017F", - "0111 FDF7 032D F9D8 0000 0000 0000 4C08", - "0111 FDAD 032D F9D8 0000 0000 0000 480E", - "0111 FDD1 014D FB47 0000 0000 0000 6A0F", - "0111 02C0 014D FB38 0000 0000 0000 5210", - "0173 003B 0444 FA7E 0006 0005 0000 3C24", - "0185 01BD 02A2 FB0F 0000 0000 000B 8AF3", - "000A 003C 0164 FB3C 0000 8000 0034 B803", - "000A 020E 0502 F9C0 0000 8000 0033 888F", - "000A 02AC 032D F9FF 0000 0000 0000 6902", - "011B 003D 03C7 FBBE 001E 0000 0064 2791" - ] - }, - { - "File": { - "Name": "Scene 6, Room 6", - "Start": "02B3D000", - "End": "02B41800", - "RemapStart": null + { + "Id": 1337, + "Type": 26, + "Flags": 0 }, - "Id": 6, - "Objects": [ - "00F1", - "016D", - "0163", - "000E", - "013A", - "011E", - "011C", - "0025", - "00B3", - "00B7" - ], - "Actors": [ - "012D 0000 01BA FF94 0000 0000 0000 FFC2", - "00FF 021C 019D FEFB 0000 0000 0000 09C3", - "00FF 021C 00D5 FE33 0000 0000 0000 09C7", - "0139 021C 00D5 FE33 0000 0000 0000 0009", - "01D5 021C 019D FEFB 0000 0000 0000 0009", - "012A 021C 015B FDD1 0000 0000 0000 0A02", - "00FF 021C 00D5 FFC3 0000 0000 0000 3FC3", - "000A 003A 022C FE65 0000 0000 000A 885C" - ] - }, - { - "File": { - "Name": "Scene 6, Room 7", - "Start": "02B42000", - "End": "02B47510", - "RemapStart": null + { + "Id": 1338, + "Type": 17, + "Flags": 0 }, - "Id": 7, - "Objects": [ - "00F1", - "016D", - "002C" - ], - "Actors": [ - "0045 FD5A 0337 FEA5 0000 2444 0000 0000", - "0008 FCE0 0378 FED6 0000 0000 0000 03F4", - "0008 FCE0 0375 FF89 0000 0000 0000 03F4", - "0008 FD64 035A FE52 0000 0000 0000 03F4", - "0008 FDBC 036B FF2E 0000 0000 0000 03F4", - "0008 FE14 035B FE52 0000 0000 0000 03F4" - ] - }, - { - "File": { - "Name": "Scene 6, Room 8", - "Start": "02B48000", - "End": "02B50070", - "RemapStart": null + { + "Id": 1339, + "Type": 17, + "Flags": 0 }, - "Id": 8, - "Objects": [ - "00F1", - "016D", - "00AB", - "012A", - "000E", - "005D", - "000B", - "0024", - "015C", - "011C", - "0179" - ], - "Actors": [ - "012D FAC2 04B3 0010 4000 0000 0000 FFC2", - "01B4 FB85 0462 0190 0000 0000 0000 FF01", - "0069 FB4F 034B 0079 0000 9777 0000 FFFE", - "0069 FA09 034B FF19 0000 53E9 0000 FFFE", - "0069 F9B2 034B 0101 0000 B333 0000 FFFE", - "0150 FA95 034B FF74 0000 0000 0000 2421", - "00B7 F960 034B FF4D 0000 0000 0000 0001", - "0150 FAD1 034B FF74 0000 0000 0000 2B21", - "0049 F919 034B 0046 0000 4000 0000 2FF8", - "0049 FA63 034B 008C 0000 0000 0000 2FF8", - "0049 FB03 034B FE84 0000 0000 0000 2FF8", - "0049 FB03 034B FEC0 0000 0000 0000 2FF8", - "0049 F97D 034B 0046 0000 4000 0000 2FF8", - "0049 FA63 034B 00FA 0000 0000 0000 2FF8", - "0049 FA63 034B 0168 0000 0000 0000 2FF8", - "012A FAB8 039B FFAB 0000 0000 0000 3803", - "01B4 FAC1 0442 000B 0000 0000 0000 3901", - "0150 FA95 034B FFD8 0000 0000 0000 3921", - "0011 FA27 034B FF99 0000 0000 0000 3A02", - "0150 F9CD 034B 0078 0000 0000 0000 3A21", - "0011 FA0E 034B 00B8 0000 0000 0000 3B02", - "0150 F969 034B FE70 0000 0000 0000 3B21", - "0111 FB04 039B 01B0 0000 0000 0000 5603", - "0095 FB9A 0462 01A5 0000 0000 0000 8701", - "0111 F99D 039B FE42 0000 0000 0000 5410", - "000A FBC8 046C FE3E 0000 4000 002B 8901" - ] - }, - { - "File": { - "Name": "Scene 6, Room 9", - "Start": "02B51000", - "End": "02B56DF0", - "RemapStart": null + { + "Id": 1421, + "Type": 25, + "Flags": 0 }, - "Id": 9, - "Objects": [ - "00F1", - "016D", - "002C", - "0024" - ], - "Actors": [ - "0037 F95C 0463 0342 0000 8000 0000 0001", - "0008 F8F9 03CD 0336 0000 0000 0000 03F4", - "0008 F8F9 037E 024E 0000 0000 0000 03F4", - "0008 F8FA 041D 041E 0000 0000 0000 03F4", - "0008 F9BC 041D 041D 0000 0000 0000 03F4", - "0008 F9BC 03CB 0337 0000 0000 0000 03F4", - "0008 F9BD 037B 024F 0000 0000 0000 03F4" - ] - }, - { - "File": { - "Name": "Scene 6, Room 10", - "Start": "02B57000", - "End": "02B5F1A0", - "RemapStart": null + { + "Id": 1422, + "Type": 25, + "Flags": 0 }, - "Id": 10, - "Objects": [ - "00F1", - "016D", - "016C", - "0106" - ], - "Actors": [ - "0008 F88E 0417 0537 0000 0000 0000 03F4", - "0008 F88E 0417 064F 0000 0000 0000 03F4", - "0008 F952 0412 06CE 0000 0000 0000 03F4", - "0008 FAF6 0411 06CE 0000 0000 0000 03F4", - "0008 FB00 0411 04BA 0000 0000 0000 03F4", - "0113 FB1E 03EB 05C4 0000 C000 0000 1901", - "0169 FB41 03EB 05C2 0000 8000 0000 0001", - "0169 F8E4 03EB 054A 0000 4000 0000 0000", - "0169 F8E4 03EB 063A 0000 4000 0000 0000", - "0169 F9D4 03EB 054A 0000 4000 0000 0000", - "0169 F9D4 03EB 063A 0000 4000 0000 0000", - "0169 FAC4 03EB 054A 0000 4000 0000 0000", - "0169 FAC4 03EB 063A 0000 4000 0000 0000" - ] - }, - { - "File": { - "Name": "Scene 6, Room 11", - "Start": "02B60000", - "End": "02B61010", - "RemapStart": null + { + "Id": 1479, + "Type": 17, + "Flags": 0 }, - "Id": 11, - "Objects": [ - "00F1", - "016D", - "016C", - "0106" - ], - "Actors": [] - }, - { - "File": { - "Name": "Scene 6, Room 12", - "Start": "02B62000", - "End": "02B64060", - "RemapStart": null + { + "Id": 1480, + "Type": 17, + "Flags": 0 }, - "Id": 12, - "Objects": [ - "00F1", - "016D", - "000E", - "0024", - "015C", - "007C" - ], - "Actors": [ - "0037 05E5 0046 F8C5 0000 0000 0000 0000", - "0037 06A3 0046 F88E 0000 0000 0000 0000", - "0037 05BA 0046 F84D 0000 0000 0000 0000", - "0037 06B9 0046 F90B 0000 0000 0000 0000", - "0037 062C 0046 F822 0000 0000 0000 0002", - "0037 0657 0046 F8E5 0000 0000 0000 0001", - "0037 0621 0046 F879 0000 0000 0000 0001", - "0037 0627 0046 F92C 0000 0000 0000 0001", - "0037 05A4 0046 F91B 0000 0000 0000 0001", - "0095 06C7 0000 F966 4000 A000 0000 8708", - "000A 0625 FF7E F828 0000 8000 0000 5AA7" - ] - }, - { - "File": { - "Name": "Scene 6, Room 13", - "Start": "02B65000", - "End": "02B6A850", - "RemapStart": null + { + "Id": 1481, + "Type": 17, + "Flags": 0 }, - "Id": 13, - "Objects": [ - "00F1", - "016D", - "011F", - "0059", - "0190", - "00A8", - "00F0", - "012A", - "011F", - "0030" - ], - "Actors": [ - "0107 0517 007B FAB8 0000 0000 0000 00FF", - "004B 0621 FF7E FA53 0000 0000 0000 0000", - "0130 05BA FFB0 FA71 0000 0000 0000 0301", - "0130 0689 FFB0 FD19 0000 0000 0000 0302", - "0150 0533 0085 FCD2 0000 4000 0000 0300", - "01BB 0523 FFDF FBC5 0000 4000 0000 0FF8", - "01BB 0721 FFDF FB3E 0000 C000 0000 0FF9", - "01BB 0523 FFDF FCD3 0000 4000 0000 0FFA", - "01BB 0523 FFDF FAB7 0000 4000 0000 0FFB", - "012A 0621 001E FD9F 0000 0000 0000 3C01", - "01BB 0721 FFDF FC4D 0000 C000 0000 0FFC", - "01D1 072C 00A9 FC4C 0000 0000 0000 81FF", - "012E 04E1 FFDF FAB7 0000 0000 0000 1C7A", - "012E 04E1 FFDF FBC5 0000 0000 0000 1C82", - "012E 04E1 FFDF FCD3 0000 0000 0000 1CF9", - "012E 0760 FFDF FC4D 0000 0000 0000 1D3B", - "012E 0760 FFDF FB3E 0000 0000 0000 1D78" - ] - }, - { - "File": { - "Name": "Scene 6, Room 14", - "Start": "02B6B000", - "End": "02B6FC90", - "RemapStart": null + { + "Id": 1482, + "Type": 17, + "Flags": 0 }, - "Id": 14, - "Objects": [ - "00F1", - "016D", - "0017", - "000E", - "0024", - "015C" - ], - "Actors": [ - "00A7 0264 FF61 FBB8 0000 0000 0000 0041", - "012E 0175 001E FC98 0000 0000 0000 1CB1", - "0095 0205 010E FC15 8000 0000 0000 8702", - "0185 0175 001E FC98 0000 00B6 000B 8AF1", - "000A 0166 001E FA90 0000 8000 0000 7AA4" - ] - }, - { - "File": { - "Name": "Scene 6, Room 15", - "Start": "02B70000", - "End": "02B78470", - "RemapStart": null + { + "Id": 1483, + "Type": 17, + "Flags": 0 }, - "Id": 15, - "Objects": [ - "00F1", - "016D", - "00AB", - "012A", - "0032", - "000B", - "0059", - "0085" - ], - "Actors": [ - "0002 0489 01E0 FC09 0000 DA50 0000 0002", - "0002 048B 01E0 FD5A 0000 B333 0000 0002", - "0011 0480 01E0 FC96 0000 0000 0000 0000", - "0008 04C9 0035 FC50 0000 0000 0000 03F4", - "0008 04C9 0035 FD13 0000 0000 0000 03F4", - "01BB 0460 01D1 FAF6 4000 C000 0000 0FD1", - "0187 047A 027D FB16 0000 0000 0000 47FF", - "0011 03D0 01E0 FC72 0000 0000 0000 3A02", - "0150 054B 0212 FCB4 0000 C000 0000 3A30", - "0011 046A 01E0 FCD4 0000 0000 0000 3B02", - "0150 0549 0212 FD56 0000 C000 0000 3B30", - "0011 044E 01E0 FC57 0000 0000 0000 3D02", - "0150 054B 0212 FC0A 0000 C000 0000 3D30", - "00B7 0417 01E0 FC03 0000 0000 0000 0002", - "0111 04B4 0000 FC72 0000 0000 0000 6E03", - "0111 04B4 0000 FBFC 0000 0000 0000 7003", - "0080 04C4 0000 FD13 0000 C000 0000 0410", - "0080 03FC 0000 FC50 0000 4000 0000 0410", - "011B 0335 01E0 FCAE 0064 0012 0004 3291" - ] - }, - { - "File": { - "Name": "Scene 6, Room 16", - "Start": "02B79000", - "End": "02B7F190", - "RemapStart": null + { + "Id": 1484, + "Type": 17, + "Flags": 0 }, - "Id": 16, - "Objects": [ - "00F1", - "016D", - "002C", - "011C", - "016C" - ], - "Actors": [ - "012D 037B 0410 FF2A 4000 0000 0000 FFC2", - "012D 02BC 03F7 FE62 4000 0000 0000 FFC2", - "0049 02B7 0337 FF34 0000 0000 0000 2FFF", - "0049 0344 0337 FEA7 0000 0000 0000 2FFF", - "000C 0300 0337 FEEA 0000 2000 0000 00FF", - "0008 0264 0358 FE52 0000 0000 0000 03F4", - "0008 0314 0358 FE52 0000 0000 0000 03F4", - "0008 0398 0376 FED6 0000 0000 0000 03F4", - "0008 0398 0373 FF89 0000 0000 0000 03F4" - ] - }, - { - "File": { - "Name": "Scene 6, Room 17", - "Start": "02B80000", - "End": "02B89610", - "RemapStart": null + { + "Id": 1485, + "Type": 17, + "Flags": 0 }, - "Id": 17, - "Objects": [ - "00F1", - "016D", - "000E", - "008B", - "0190", - "00A8" - ], - "Actors": [ - "0110 0566 043B 00BE 0000 C000 0000 FFFF", - "012A 05B7 034B FEDD 0000 0000 0000 2C20", - "01D6 0566 0374 00BD 0000 0000 0000 1839", - "01D6 0566 03D8 00BD 0000 0000 0000 9839", - "01D6 0566 02E7 00BD 0000 0000 0000 183A", - "01D6 05BB 034B FEE7 0000 0000 0000 983A", - "008A 0510 034B 0037 0000 4000 0000 0400", - "008A 05BD 034B 0037 0000 8000 0000 0400", - "008A 05B9 034B FF8B 0000 C000 0000 0400", - "008A 050D 034B FF91 0000 0000 0000 0401", - "000A 066D 034B FF89 0000 4000 0000 7979" - ] - }, - { - "File": { - "Name": "Scene 6, Room 18", - "Start": "02B8A000", - "End": "02B8FCB0", - "RemapStart": null + { + "Id": 1486, + "Type": 17, + "Flags": 0 }, - "Id": 18, - "Objects": [ - "00F1", - "016D", - "00AB", - "012A", - "0190", - "00A8", - "001B", - "000E", - "0114" - ], - "Actors": [ - "0025 0782 048B FFB6 0000 E9F5 0000 FFFE", - "0025 07FB 048B 00F3 0000 A71C 0000 FFFE", - "0183 07F8 034B FF24 0000 0000 0000 FF40", - "0150 0893 03E0 FF26 0000 C000 0000 1600", - "00B7 07F8 034B FF24 0000 0000 0000 0003", - "0173 0821 0360 005B 0000 0030 0001 3F00", - "01D6 0762 034B FEAC 0000 0000 0000 1838", - "01D6 07F8 034B FF24 0000 0000 0000 9838", - "0112 0820 034B 005B 0000 0000 0002 192F", - "0112 0820 034B 005B 0000 0000 0000 192F", - "000A 0820 034B 005B 0000 4000 0000 5F98" - ] - }, - { - "File": { - "Name": "Scene 6, Room 19", - "Start": "02B90000", - "End": "02B95DE0", - "RemapStart": null + { + "Id": 1487, + "Type": 17, + "Flags": 0 }, - "Id": 19, - "Objects": [ - "00F1", - "016D", - "000E", - "000B" - ], - "Actors": [ - "008E 07A7 03EA 041B 0000 8000 0000 8000", - "0008 0745 0419 041F 0000 0000 0000 03F4", - "0008 0745 03CE 0337 0000 0000 0000 03F4", - "0008 0745 037A 024E 0000 0000 0000 03F4", - "0008 0808 041A 041F 0000 0000 0000 03F4", - "0008 0808 03CB 0337 0000 0000 0000 03F4", - "0008 0809 0379 024F 0000 0000 0000 03F4" - ] - }, - { - "File": { - "Name": "Scene 6, Room 20", - "Start": "02B96000", - "End": "02B9E1C0", - "RemapStart": null + { + "Id": 1488, + "Type": 17, + "Flags": 0 }, - "Id": 20, - "Objects": [ - "00F1", - "016D", - "016C", - "0106" - ], - "Actors": [ - "0008 0605 0416 04BB 0000 0000 0000 03F4", - "0008 060F 0416 06CC 0000 0000 0000 03F4", - "0008 07B3 0416 06CD 0000 0000 0000 03F4", - "0008 0877 0417 064E 0000 0000 0000 03F4", - "0008 0878 0416 0537 0000 0000 0000 03F4", - "0113 05EB 03EB 05C1 0000 4000 0000 1A01", - "0169 05C3 03EB 05C2 0000 0000 0000 0001", - "0169 0640 03EB 054A 0000 C000 0000 0000", - "0169 0640 03EB 063A 0000 C000 0000 0000", - "0169 0730 03EB 054A 0000 C000 0000 0000", - "0169 0730 03EB 063A 0000 C000 0000 0000", - "0169 0820 03EB 054A 0000 C000 0000 0000", - "0169 0820 03EB 063A 0000 C000 0000 0000" - ] - }, - { - "File": { - "Name": "Scene 6, Room 21", - "Start": "02B9F000", - "End": "02BA3650", - "RemapStart": null + { + "Id": 1489, + "Type": 17, + "Flags": 0 }, - "Id": 21, - "Objects": [ - "00F1", - "016D", - "000E", - "0098" - ], - "Actors": [ - "0090 0761 0369 FD84 0000 0000 0000 7FFE", - "0008 06F2 038F FD59 0000 0000 0000 03F4", - "0008 07D1 038F FD59 0000 0000 0000 03F4", - "000A 0763 0369 FD57 0000 8000 0000 27E5" - ] - }, - { - "File": { - "Name": "Scene 6, Room 22", - "Start": "02BA4000", - "End": "02BA70D0", - "RemapStart": null + { + "Id": 1520, + "Type": 26, + "Flags": 0 }, - "Id": 22, - "Objects": [ - "00F1", - "016D", - "015C", - "0024", - "0106", - "016C" - ], - "Actors": [ - "0113 02A9 0661 FADB 0000 0000 0000 FF02", - "0169 02AA 0661 F9C7 0000 C000 0000 0001", - "0169 02DC 0661 F995 0000 0000 0000 0001", - "0169 0278 0661 F995 0000 8000 0000 0001", - "0169 01B3 0661 FAF0 0000 4000 0000 0001", - "0169 01E5 0661 FB22 0000 0000 0000 0001", - "0169 01B3 0661 FB54 0000 C000 0000 0001", - "0169 039D 0661 FAF0 0000 4000 0000 0001", - "0169 039D 0661 FB54 0000 C000 0000 0001", - "0169 036B 0661 FB22 0000 8000 0000 0001", - "0095 019A 06C9 FB22 4000 4000 0000 8704", - "0095 02A9 06AC F97C 4000 0000 0000 8710" - ] - }, - { - "File": { - "Name": "Scene 6, Room 23", - "Start": "02BA8000", - "End": "02BB1190", - "RemapStart": null + { + "Id": 1521, + "Type": 26, + "Flags": 0 }, - "Id": 23, - "Objects": [ - "00F1", - "016D", - "00B7", - "00A4", - "000D", - "0025" - ], - "Actors": [ - "0095 02A9 04B0 FFA9 4000 0000 0000 0000", - "0038 0298 0607 FF1E 0000 182E 0000 FFFF", - "0013 0242 0686 00B9 0000 4889 0000 0000", - "0013 031C 0548 00DB 0000 A666 0000 0000", - "0013 0223 04B1 0006 0000 2CCD 0000 0000", - "0013 0316 0673 FF3E 0000 E000 0000 0000", - "00FA 02A8 04DB FFA9 0000 0000 0000 0000", - "00FA 02A8 053F FFA9 0000 0000 0000 0000", - "00FA 02A8 0413 FFA9 0000 0000 0000 0000", - "00FA 02A8 03AF FFA9 0000 0000 0000 0000", - "0117 02D3 03D1 FFB5 0000 0000 0000 1FC0", - "0117 0246 0435 FFB5 0000 0000 0000 1FC0", - "0117 02F2 050C FFB5 0000 0000 0000 1FC0", - "0117 0284 0570 FFB5 0000 0000 0000 1FC0", - "0117 02A9 049D FFB5 0000 0000 0000 1FC0", - "0111 033D 034B 00FA 0000 0000 0000 0203", - "0111 0213 034B 00F9 0000 0000 0000 0403", - "005E 0243 0387 0021 0000 0000 0000 03C0", - "005E 0243 0643 FEDF 0000 0000 0000 03C0", - "005E 030C 0387 0021 0000 0000 0000 03C0", - "005E 030C 0643 FEE2 0000 0000 0000 03C0", - "0117 02BF 034B 00A0 0000 0000 0000 0140" - ] - }, - { - "File": { - "Name": "Scene 6, Room 24", - "Start": "02BB2000", - "End": "02BB84B0", - "RemapStart": null + { + "Id": 1522, + "Type": 26, + "Flags": 0 }, - "Id": 24, - "Objects": [ - "00F1", - "016D" - ], - "Actors": [ - "0008 024E 068F FC95 0000 0000 0000 03F4", - "0008 0302 068F FC92 0000 0000 0000 03F4", - "012E 02A7 0661 FCD0 0000 0000 0000 1CB5", - "0111 030D 06C5 FCB7 0000 0000 0000 7403", - "0111 024B 06C5 FCB4 0000 0000 0000 7204", - "0185 02A7 0661 FCD0 0000 0000 000B 8AF5" - ] - }, - { - "File": { - "Name": "Scene 6, Room 25", - "Start": "02BB9000", - "End": "02BCEB70", - "RemapStart": null + { + "Id": 1523, + "Type": 26, + "Flags": 0 }, - "Id": 25, - "Objects": [ - "00F1", - "016D", - "00AB", - "00B0", - "00A4", - "012A", - "000E", - "0154", - "0190", - "00A8", - "016C", - "000B", - "0170" - ], - "Actors": [ - "0158 003C 070A FBB2 0000 0000 0000 0000", - "01A0 010E 064D FB5E 0000 0000 0000 FFFF", - "01A0 FF6A 064D FB5E 0000 0000 0000 FFFF", - "01A0 010E 064D FB8E 0000 0000 0000 FFFF", - "01A0 FF6A 064D FB8E 0000 0000 0000 FFFF", - "012A FF6D 064D FB5E 0000 0000 0000 1301", - "0150 003C 0675 FC84 0000 8000 0000 1700", - "0157 003C 064D FBBE 0000 0000 0000 0017", - "0112 FF59 06C5 FCC2 0000 0000 0000 3FE9", - "0111 00F4 06C5 FC83 0000 0000 0000 7803", - "0111 FF86 06C5 FD1B 0000 0000 0000 7A03", - "0111 00FA 06C5 FD1B 0000 0000 0000 7C03", - "0111 FF85 06C5 FC84 0000 0000 0000 760F" - ] - }, - { - "File": { - "Name": "Scene 6, Room 26", - "Start": "02BCF000", - "End": "02BDBB20", - "RemapStart": null + { + "Id": 1536, + "Type": 25, + "Flags": 0 }, - "Id": 26, - "Objects": [ - "00F1", - "016D", - "00AB", - "001B", - "005D", - "000E", - "012A", - "0025" - ], - "Actors": [ - "0038 FDDF 06CF FCC2 0000 8000 0000 FFFF", - "0025 FFE8 0797 FED0 0000 C000 0000 FFFE", - "0158 003C 070A FBB2 0000 0000 0000 0000", - "00B7 FDD2 06CF FECE 0000 0000 0000 0004", - "0049 003C 06CF FECB 0000 0000 0000 2FED", - "0150 FDD1 0765 FD74 0000 8000 0000 2D00", - "0069 FDD5 06F0 FD5D 0000 0000 0000 30FB", - "0069 0235 0723 FE0E 0000 0000 0000 40FB", - "000A 0030 06CF FDD1 0000 4000 0000 6852" - ] - }, - { - "File": { - "Name": "Scene 6, Room 27", - "Start": "02BDC000", - "End": "02BE16C0", - "RemapStart": null + { + "Id": 1537, + "Type": 25, + "Flags": 0 }, - "Id": 27, - "Objects": [ - "00F1", - "016D", - "0069", - "0032" - ], - "Actors": [ - "0049 FBA4 FFEC FA73 0000 0000 0000 0FFF", - "0049 FB15 FFEC FA22 0000 0000 0000 0FFF", - "0049 FB1F FFEC F88F 0000 0000 0000 0FFF", - "0049 FCA3 FFEC F895 0000 0000 0000 0FFF", - "0049 FC24 FFEC F84D 0000 0000 0000 0FFF", - "0049 FB8F FFEC F852 0000 0000 0000 0FFF", - "0049 FC38 FFEC FA6F 0000 0000 0000 0FFF", - "0002 FBE3 0096 F8F9 0000 0000 0000 0003", - "00AF FBE1 001E F970 0000 0000 0000 0002", - "0111 FB72 001E F875 0000 0000 0000 5C03", - "0111 FC41 001E F876 0000 0000 0000 5E03", - "0111 FCAB 001E F8D3 0000 0000 0000 6010", - "0111 FB1E 001E F8C4 0000 0000 0000 5A12" - ] - }, - { - "File": { - "Name": "Scene 6, Room 28", - "Start": "02BE2000", - "End": "02BEAA20", - "RemapStart": null + { + "Id": 1538, + "Type": 26, + "Flags": 0 }, - "Id": 28, - "Objects": [ - "00F1", - "016D", - "00AB", - "00B0", - "00A4", - "012A", - "000E", - "0154", - "0190", - "00A8", - "016C", - "000B", - "0170" - ], - "Actors": [] - } - ] - }, - { - "File": { - "Name": "Scene 7", - "Start": "027A7000", - "End": "027BF3C0", - "RemapStart": null - }, - "Id": 7, - "TActors": [ - "00FF 04FF 002E F7FA FFC1 FE6B C000 007F", - "00FF 01FF 002E FCE6 FFC1 FD53 8000 007F", - "00FF 02FF 0009 FFA2 FFC1 FF47 4000 0099", - "03FF 15FF 0009 F54A FAAD FF14 8000 003F", - "08FF 05FF 0009 0EFF FDE1 0037 C000 0096", - "05FF 06FF 002E 0D1E FDE1 FE56 8000 007F", - "05FF 07FF 002E 0D1E FDE1 0218 0000 007F", - "10FF 09FF 0009 1246 FB89 09FB 0000 003F", - "0BFF 09FF 0009 09AE FAC1 05C2 0000 0097", - "12FF 0BFF 0009 09AE FB4D 031A 0000 0098", - "0EFF 0BFF 002E 07BA FAC1 043C 4000 01C8", - "0FFF 0CFF 0009 EC59 FAAD F9CE C000 003F", - "0FFF 0DFF 002E EF2E FAAD F6F9 8000 02DB", - "0FFF 11FF 002E EF2E FAAD FCA2 0000 003F", - "0FFF 15FF 002E F202 FAAD F9CE 4000 009A", - "14FF 12FF 0009 1124 FAAD FD7A 0000 003F", - "12FF 13FF 0009 1278 FAAD FF82 4000 003F", - "15FF 14FF 0009 1124 FAAD FA82 0000 0095", - "0AFF 09FF 0023 05BF FAC1 0E1F 8000 013F", - "05FF 02FF 0023 08E4 FED1 0037 C000 013F", - "08FF 09FF 0023 0FB2 FC29 0554 C000 013F", - "16FF 03FF 002E F54A FAAD 034C 8000 0154", - "06FF 15FF 0023 0F8F FCF1 FB36 C000 00BF" - ], - "Paths": [], - "Rooms": [ - { - "File": { - "Name": "Scene 7, Room 0", - "Start": "027C0000", - "End": "027CB0C0", - "RemapStart": null + { + "Id": 1539, + "Type": 26, + "Flags": 0 }, - "Id": 0, - "Objects": [ - "0069", - "0187", - "000E", - "00A4", - "0190", - "00A8", - "0179" - ], - "Actors": [ - "01B4 F8D3 0008 FE6B 4000 4000 0000 0701", - "01B4 F8D3 FFA4 FE6B 4000 4000 0000 0701", - "01D1 FB97 FF71 FF47 0000 4000 0000 B80D", - "01D1 FB97 FFD5 FF47 0000 4000 0000 B80E", - "0111 FBEB FFC1 FF7E 0000 4000 0000 7003", - "0111 FBEB FFC1 FF10 0000 4000 0000 7203", - "011D F9B9 FFC1 003C 0000 8000 0000 03FB", - "011D FD1D FFC1 003C 0000 8000 0000 03FC", - "011D FA26 FFC1 003C 0000 8000 0000 03FD", - "011D FCB0 FFC1 003C 0000 8000 0000 03FE", - "0185 FBCE FFDA FF47 0000 4000 0001 4226", - "0185 FB07 FFDA FF47 0000 4000 0001 42A8", - "0185 FDC7 FFDA 005E 0000 8000 0001 42A9", - "0185 FC10 FFDA 005F 0000 8000 0001 426A", - "0185 FCE6 FFDA FE2F 0000 0000 0001 422B", - "0185 FDFE FFDA FF47 0000 4000 0001 42AC", - "012A F9ED 0005 005F 0000 8000 0000 0712", - "011C F911 0005 005F 0000 8000 0000 0000", - "011C FAC9 0005 005F 0000 8000 0000 0000", - "00AE F8D6 FFC1 FE6B 0000 C000 0000 0003", - "00AE FB06 FFC1 FF47 0000 C000 0000 0003", - "00AE FBCE FFC1 FF47 0000 C000 0000 0003", - "00AE FCE6 FFC1 FE2F 0000 0000 0000 0003", - "00AE FDFE FFC1 FF47 0000 C000 0000 0003" - ] - }, - { - "File": { - "Name": "Scene 7, Room 1", - "Start": "027CC000", - "End": "027CDAC0", - "RemapStart": null + { + "Id": 1540, + "Type": 26, + "Flags": 0 }, - "Id": 1, - "Objects": [ - "0069", - "0187", - "000E", - "00A4", - "0190", - "00A8", - "0098" - ], - "Actors": [ - "0090 FCA7 FFC1 FCA2 0000 60B6 0000 7F02", - "0090 FCC4 FFC1 FC55 0000 25B0 0000 7F02", - "0090 FD04 FFC1 FCAB 0000 9A50 0000 7F02", - "0090 FD19 FFC1 FC3E 0000 D8E4 0000 7F02", - "0111 FD6F FFC1 FC4B 0000 0000 0000 4E03", - "0111 FD37 FFC1 FC08 0000 0000 0000 5803", - "000A FCE6 FFC1 FC18 0000 8000 0000 1801" - ] - }, - { - "File": { - "Name": "Scene 7, Room 2", - "Start": "027CE000", - "End": "027D8910", - "RemapStart": null + { + "Id": 1541, + "Type": 26, + "Flags": 0 }, - "Id": 2, - "Objects": [ - "0069", - "0187", - "000E", - "00A4", - "011C", - "0179" - ], - "Actors": [ - "01B4 0420 FFC1 0037 0000 4000 0000 0501", - "005E 0565 004B FFBF 0AAB C000 0000 1085", - "005E 0565 004B 00AF 0AAB C000 0000 1085", - "0185 02E2 FFDA 0036 0000 0000 0001 493C", - "0185 0130 FFFE 0126 0000 C000 0015 4F3D", - "00AE 0146 FFC1 FF47 0000 4000 0000 0004", - "00AE 0146 FFC1 0127 0000 4000 0000 0004", - "00AE 0D1E FDE1 0037 0000 C000 0000 0006", - "00F7 029A FFC1 0037 0000 0000 0000 0B00", - "00BE 013C 0011 FF47 0000 4000 0000 0201", - "00F7 029A FFC1 0037 0000 0000 0000 0B01", - "00F7 01C8 0011 0037 0000 0000 0000 0B03", - "00F7 0231 0011 FF81 0000 D555 0000 0B03", - "00F7 0303 0011 FF81 0000 AAAB 0000 0B03", - "00F7 0231 0011 00ED 0000 2AAB 0000 0B03", - "00F7 0303 0011 00ED 0000 5555 0000 0B03", - "00F7 058D FFC1 0037 0000 0000 0000 0B02", - "0110 016E 0150 0072 0000 0000 0000 3009", - "0110 016B FFC1 FFF9 0000 0000 0000 310E", - "0110 016B FFC1 FFC2 0000 0000 0000 3904", - "0110 016D 0150 0034 0000 0000 0000 3A03" - ] - }, - { - "File": { - "Name": "Scene 7, Room 3", - "Start": "027D9000", - "End": "027DB940", - "RemapStart": null + { + "Id": 1548, + "Type": 17, + "Flags": 0 }, - "Id": 3, - "Objects": [ - "0069", - "0187", - "000E", - "00A4", - "00B0", - "005D", - "0024", - "015C" - ], - "Actors": [ - "0095 F3E9 FA87 020F 4000 0000 0000 8804", - "00AE F54A FAAD 0135 0000 0000 0000 0005" - ] - }, - { - "File": { - "Name": "Scene 7, Room 4", - "Start": "027DC000", - "End": "027DDC40", - "RemapStart": null + { + "Id": 1549, + "Type": 17, + "Flags": 0 }, - "Id": 4, - "Objects": [ - "0069", - "0187", - "000E", - "00A4", - "0190", - "00A8", - "0179", - "00A6" - ], - "Actors": [ - "00A5 F61A FFC1 FEA6 0000 0000 0000 FFFF", - "00A5 F620 FFC1 FE11 0000 0000 0000 FFFF", - "00A5 F678 FFC1 FDCE 0000 0000 0000 FFFF", - "00A5 F688 FFC1 FEED 0000 0000 0000 FFFF", - "00A5 F6DB FFC1 FEB1 0000 0000 0000 FFFF", - "00A5 F6E1 FFC1 FE1C 0000 0000 0000 FFFF", - "00A4 F688 FFC1 FE63 0000 0000 0000 FFFF", - "000A F562 FFC1 FE64 0000 C000 0001 15E7" - ] - }, - { - "File": { - "Name": "Scene 7, Room 5", - "Start": "027DE000", - "End": "027E3A60", - "RemapStart": null + { + "Id": 1550, + "Type": 17, + "Flags": 0 }, - "Id": 5, - "Objects": [ - "0069", - "0187", - "000E", - "00A4", - "008B" - ], - "Actors": [ - "008A 0D1E FDE1 0037 0000 C000 0000 0700", - "00AE 0D1E FDE1 0037 0000 C000 0000 0006", - "00BE 0E14 FE31 0037 0000 C000 0000 1E01", - "0183 0D1E FDE1 0037 0000 0000 0000 FF41" - ] - }, - { - "File": { - "Name": "Scene 7, Room 6", - "Start": "027E4000", - "End": "027EB570", - "RemapStart": null + { + "Id": 1551, + "Type": 17, + "Flags": 0 }, - "Id": 6, - "Objects": [ - "0069", - "0187", - "000E", - "00A4", - "0031", - "011C", - "0032", - "0024", - "015C", - "0154", - "00A8", - "0190", - "00B7" - ], - "Actors": [ - "0037 0B68 FE31 FC3F 0000 4000 0000 0000", - "0037 0DE6 FE31 FAA1 0000 0000 0000 0000", - "0037 0EC2 FE31 FB36 0000 C000 0000 0000", - "0037 0F32 FE31 FCEE 0000 C000 0000 0001", - "0117 0AFA FDE1 FC3F 0000 0000 0000 1FC1", - "0117 0BBF FE59 FB3A 0000 0000 0000 1FC1", - "0117 0CAB FDE1 FBDB 0000 0000 0000 1FC1", - "0117 0D47 FDE1 FCBA 0000 0000 0000 1FC1", - "0117 0DE6 FDE1 FA2E 0000 0000 0000 1FC1", - "0117 0D1F FE14 FC4D 0000 0000 0000 0141", - "0173 0FE1 FE20 FB35 0000 FFA6 0000 2181", - "0187 0D1E FDE1 FE2E 0000 0000 0000 1FFF", - "00AE 0F8A FDE1 FB36 0000 0000 0000 0007", - "00AF 0EB8 FDE1 FCEE 0000 4000 0000 0103", - "00B1 0D1E FDE1 FC4E 0000 0000 0000 0000", - "000A 0F98 FDE1 FCEE 0000 4000 0000 0822" - ] - }, - { - "File": { - "Name": "Scene 7, Room 7", - "Start": "027EC000", - "End": "027EDAB0", - "RemapStart": null + { + "Id": 1566, + "Type": 17, + "Flags": 0 }, - "Id": 7, - "Objects": [ - "0069", - "0187", - "000E", - "00A4", - "0098", - "000D" - ], - "Actors": [ - "0090 0C8C FDE1 02D6 0000 8000 0000 7FFE", - "0090 0DAA FDE1 02D1 0000 8000 0000 7FFE", - "005E 0CEE FDE1 033E 0000 8000 0000 2400", - "005E 0D50 FDE1 033B 0000 8000 0000 2400", - "0187 0D1E FDE1 0260 0000 0000 0000 1FFF", - "000A 0D22 FDE1 0375 0000 0000 0000 7843" - ] - }, - { - "File": { - "Name": "Scene 7, Room 8", - "Start": "027EE000", - "End": "027F3060", - "RemapStart": null + { + "Id": 1567, + "Type": 17, + "Flags": 0 }, - "Id": 8, - "Objects": [ - "0069", - "0187", - "000E", - "00A4", - "008B", - "0024", - "0085", - "011C" - ], - "Actors": [ - "012D 10A2 FD69 01A8 4000 0000 0000 FFC2", - "0037 10A2 FDBC 00FD 0000 4000 0000 0001", - "008A 1322 FD69 00FD 0000 8000 0000 0400", - "008A 10A2 FC29 035E 0000 8000 0000 0700", - "0080 115F FCED 0128 0000 8000 F333 0210", - "0080 11F0 FD1E 00D8 0000 0000 0CCD 0210", - "00BC 10A2 FCBD 0266 0000 0000 0000 0000", - "00BC 10A2 FCBD 045A 0000 0000 0000 0000" - ] - }, - { - "File": { - "Name": "Scene 7, Room 9", - "Start": "027F4000", - "End": "02800B60", - "RemapStart": null + { + "Id": 1568, + "Type": 17, + "Flags": 0 }, - "Id": 9, - "Objects": [ - "0069", - "0187", - "000E", - "00A4", - "008B", - "0085", - "005D", - "012F", - "011C", - "0179", - "0031" - ], - "Actors": [ - "012D 083E FCC4 0D2C 20B6 305B 0000 FFC2", - "01B4 0B18 FAE9 0D07 0000 0000 0000 0F01", - "01B4 0BD3 FB1F 0D07 0000 0000 0000 0F01", - "01B4 0C8E FB55 0D07 0000 0000 0000 0F01", - "01B4 0D48 FB89 0D07 0000 0000 0000 0F01", - "0069 0EB7 FB6E 0C33 0000 8000 0000 FFFE", - "008A 0E5E FB89 0CE9 0000 8000 0000 0700", - "008A 0EFE FB89 0CE9 0000 8000 0000 0700", - "0080 083E FAC1 0D2C 0000 0000 0000 1220", - "0080 083E FAC1 0D2C 0000 0000 0000 1620", - "008A 083E FAC1 0D2C 0000 4000 0000 0501", - "012A 0677 FAC1 0D2C 0000 4000 0000 0903", - "0141 0B4D FAC1 0A91 0000 127D 0000 0027", - "0117 07B2 FAC1 0D2C 0000 0000 0000 1FD1", - "0117 083E FBBC 0D2C 0000 0000 0000 1FD1", - "0117 083E FC36 0D2C 0000 0000 0000 1FD1", - "0117 0853 FAC1 0BD6 0000 0000 0000 1FD1", - "0117 08CA FAC1 0D2C 0000 0000 0000 1FD1", - "0117 0727 FB56 0D32 0000 0000 0000 0151", - "004C 0EAE FB89 0D0E 0000 0000 0000 FFFF", - "012A 11A6 FB4D 0D2E 0000 BF4A 0000 0F82", - "00BC 0B7D FB55 0A55 0000 0000 0000 0000", - "00BC 0EAE FCBD 09F0 0000 0000 0000 0000", - "00BC 0EAE FCBD 0874 0000 0000 0000 0005", - "00BC 0EAE FC1D 0BD0 0000 0000 0000 0005", - "00AF 06AF FAC1 0D2C 0000 C000 0000 0903", - "00AF 0A92 FAC1 07DE 0000 0000 0000 0000", - "00AE 0F56 FB17 0B48 0000 0000 0000 0008", - "000A 083E FCF8 0E87 0000 0000 0011 892F", - "0183 0EAE FB89 0D0E 0000 0000 0000 FF41" - ] - }, - { - "File": { - "Name": "Scene 7, Room 10", - "Start": "02801000", - "End": "028087A0", - "RemapStart": null + { + "Id": 1569, + "Type": 17, + "Flags": 0 }, - "Id": 10, - "Objects": [ - "0069", - "0187", - "000E", - "00A4", - "012F", - "0024", - "015C", - "0085" - ], - "Actors": [ - "00FF 03C1 FAC1 0E65 0000 0000 0000 FF02", - "0095 0302 FB08 0FE2 C000 4000 0000 8802", - "0141 046C FAC1 1007 0000 8000 0000 0026", - "0111 0266 FAC1 0DFB 0000 0000 0000 4803", - "0111 031E FAC1 0DF6 0000 0000 0000 4A04", - "0111 0495 FB61 0E7B 0000 0000 0000 5603", - "0111 0495 FB61 0E15 0000 0000 0000 5A03", - "012A 02E2 FB61 0FE3 0000 0000 0000 0400", - "0080 0277 FAC1 0E88 0000 4000 0000 0210", - "00AE 03C1 FAC1 0EAB 0000 0000 0000 0009", - "00BC 01FF FB89 0F0F 0000 0000 0000 0001", - "00BC 02C7 FB89 0F0F 0000 0000 0000 0001", - "000A 0453 FC00 0E4B 0000 4000 0004 8844", - "000A 01F9 FAC1 0E49 0000 4000 0000 5945", - "000A 00E0 FB61 0FF0 0000 C000 0000 5886" - ] - }, - { - "File": { - "Name": "Scene 7, Room 11", - "Start": "02809000", - "End": "0280CD40", - "RemapStart": null + { + "Id": 1570, + "Type": 17, + "Flags": 0 }, - "Id": 11, - "Objects": [ - "0069", - "0187", - "000E", - "00A4", - "0098", - "0179", - "011C" - ], - "Actors": [ - "012D 09AE FC79 04B0 4000 0000 0000 FFC2", - "012D 09AE FC79 057C 4000 0000 0000 FFC2", - "01B4 097C FBED 0360 0000 0000 0000 0801", - "01B4 097C FBED 03C4 0000 0000 0000 0801", - "01B4 09AE FB61 04B0 0000 0000 0000 0801", - "01B4 09AE FB61 057C 0000 0000 0000 0801", - "01B4 09E0 FBED 0360 0000 0000 0000 0801", - "01B4 09E0 FBED 03C4 0000 0000 0000 0801", - "0090 0849 FAC1 049F 0000 1555 0000 0102", - "0090 0B17 FAC1 04C1 0000 EAAB 0000 0102", - "0117 07FA FB4D 0351 0000 0000 0000 1FC8", - "0117 0857 FB37 0511 0000 0000 0000 1FC8", - "0117 08CE FB4D 03DC 0000 0000 0000 1FC8", - "0117 09AE FC31 037D 0000 0000 0000 1FC8", - "0117 09AE FAC1 04B8 0000 0000 0000 1FC8", - "0117 09AE FBB4 04B0 0000 0000 0000 1FC8", - "0117 09AE FBB4 057C 0000 0000 0000 1FC8", - "0117 0A91 FACF 0441 0000 0000 0000 1FC8", - "0117 0AAA FB4D 036C 0000 0000 0000 1FC8", - "0117 0B7C FB0F 042D 0000 0000 0000 1FC8", - "0117 09AE FAC1 0434 0000 0000 0000 0288", - "00AE 09AE FAC1 046E 0000 0000 0000 000C", - "000A 09AE FAC1 03F4 0000 8000 0000 7889" - ] - }, - { - "File": { - "Name": "Scene 7, Room 12", - "Start": "0280D000", - "End": "02812720", - "RemapStart": null + { + "Id": 1571, + "Type": 17, + "Flags": 0 }, - "Id": 12, - "Objects": [ - "0069", - "0187", - "000E", - "00A4", - "005D", - "00D4", - "00AA", - "00CD", - "000D", - "0024", - "015C", - "0031" - ], - "Actors": [ - "0015 E91E FAAD F9BB 0000 0000 0000 0611", - "0112 EC3B FBE6 F9CD 0000 C000 0001 19F8", - "0008 E87D FC59 FB1A 0000 0000 0000 03F7", - "0008 E87E FC56 F883 0000 0000 0000 03F7", - "0008 EBBE FBD1 F87D 0000 0000 0000 03F7", - "0008 EBC3 FBD1 FB16 0000 0000 0000 03F7", - "004C E818 FBB1 F91D 0000 0000 0000 FFFF", - "004C E818 FBB1 FA8A 0000 0000 0000 FFFF", - "00BB EA00 FAC1 F94F 0000 D555 0000 00FF", - "00BB EA00 FAC1 FA4A 0000 2AAB 0000 00FF", - "00BB EADA FAC1 F9CD 0000 8000 0000 00FF", - "00AF EA49 FAAD F9CD 0000 8000 0000 0002" - ] - }, - { - "File": { - "Name": "Scene 7, Room 13", - "Start": "02813000", - "End": "02813FB0", - "RemapStart": "2812800" + { + "Id": 1572, + "Type": 17, + "Flags": 0 }, - "Id": 13, - "Objects": [ - "0069", - "0187", - "000E", - "00A4", - "000D", - "0024" - ], - "Actors": [ - "0013 EFC0 FACB F583 0000 0000 0000 0003", - "0013 EE98 FAD0 F582 0000 0000 0000 0003", - "0013 EF91 FB2A F6E0 0000 8000 0000 0003", - "0013 EEA5 FADB F6DD 0000 8000 0000 0003", - "0037 F07B FB4D F5F6 0000 0000 0000 0002", - "0037 F03D FB4D F5BB 0000 C000 0000 0002", - "0037 EDE6 FB4D F63D 0000 0000 0000 0002", - "0037 F07D FB4D F67B 0000 0000 0000 0002", - "0111 EF31 FAAD F59F 0000 0000 0000 4C0E", - "00BC EE48 FAAD F631 0000 C000 0000 0003", - "00BC F014 FAAD F631 0000 C000 0000 0002", - "000A F07B FAAD F5BD 0000 8000 0000 27EB", - "000A EDE4 FAAD F5B8 0000 8000 0000 588A" - ] - }, - { - "File": { - "Name": "Scene 7, Room 14", - "Start": "02814000", - "End": "02819940", - "RemapStart": null + { + "Id": 1573, + "Type": 17, + "Flags": 0 }, - "Id": 14, - "Objects": [ - "0069", - "0187", - "000E", - "00A4", - "0032" - ], - "Actors": [ - "0008 04A2 FC66 052D 0000 0000 0000 03F7", - "0008 04A3 FC66 034A 0000 0000 0000 03F7", - "0008 0762 FBF6 034E 0000 0000 0000 03F7", - "0008 0762 FBF6 052A 0000 0000 0000 03F7", - "0002 045A FBC5 0439 0000 4000 0000 0003", - "0002 05D1 FAD5 043B 0000 4000 0000 0003", - "000A 04E4 FBC5 043B 0000 4000 0000 79D0" - ] - }, - { - "File": { - "Name": "Scene 7, Room 15", - "Start": "0281A000", - "End": "02821270", - "RemapStart": null + { + "Id": 1574, + "Type": 17, + "Flags": 0 }, - "Id": 15, - "Objects": [ - "0069", - "0187", - "000E", - "00A4", - "005D", - "00D4", - "00CB", - "00DC", - "00F2" - ], - "Actors": [ - "0069 EE15 FAAD F894 0000 6222 0000 FFFF", - "0069 F04A FAAD FB05 0000 E000 0000 FFFF", - "00DD EE69 FAAD F9CF 0000 4000 0000 FFFF", - "0008 EDAB FB00 F84A 0000 0000 0000 03F7", - "0008 EDAB FB00 FB50 0000 0000 0000 03F7", - "0008 F0B2 FB00 F84A 0000 0000 0000 03F7", - "0008 F0B4 FB00 FB50 0000 0000 0000 03F7", - "00AE EF2E FAAD F9CE 0000 0000 0000 000A" - ] - }, - { - "File": { - "Name": "Scene 7, Room 16", - "Start": "02822000", - "End": "02824880", - "RemapStart": null + { + "Id": 1579, + "Type": 17, + "Flags": 0 }, - "Id": 16, - "Objects": [ - "0069", - "0187", - "000E", - "00A4", - "000D", - "00D4", - "00DC", - "00F2", - "00CB", - "0190", - "00A8", - "00B7" - ], - "Actors": [ - "0013 1377 FC38 0A9A 0000 8000 0000 0003", - "0013 13E1 FC31 0611 0000 0000 0000 0003", - "0013 163E FC5A 09D8 0000 9555 0000 0003", - "00DD 1605 FB89 0856 0000 C000 0000 FFFF", - "0015 162C FBFC 061D 0000 0000 0000 2003", - "0015 163F FBFC 0635 0000 0000 0000 2103", - "01D1 1625 FB89 0631 0000 0000 0002 380A", - "01D1 1624 FB89 0A7D 0000 0000 0000 3812", - "0117 13E1 FB89 0801 0000 0000 0000 1FC3", - "0117 1426 FB89 090B 0000 0000 0000 1FC3", - "0117 1461 FB89 073C 0000 0000 0000 1FC3", - "0117 1496 FB89 0995 0000 0000 0000 1FC3", - "0117 151C FB89 07B9 0000 0000 0000 1FC3", - "0117 155A FB89 08C3 0000 0000 0000 1FC3", - "0117 1571 FB89 09AC 0000 0000 0000 1FC3", - "0117 15E1 FB89 076A 0000 0000 0000 1FC3", - "0117 1605 FB89 0856 0000 0000 0000 1FC3", - "0117 1623 FBED 0A7E 0000 0000 0000 1FC3", - "0117 1376 FB89 085A 0000 0000 0000 0283", - "00AF 1664 FB89 0856 0000 4000 0000 0303", - "00B1 14C6 FB89 0857 0000 C000 0000 0001", - "000A 1736 FB89 088C 0000 4000 0000 6856", - "000A 1735 FB89 081F 0000 4000 0000 588C" - ] - }, - { - "File": { - "Name": "Scene 7, Room 17", - "Start": "02825000", - "End": "02827CD0", - "RemapStart": null + { + "Id": 1580, + "Type": 17, + "Flags": 0 }, - "Id": 17, - "Objects": [ - "0069", - "0187", - "000E", - "00A4", - "000B", - "00A6", - "0031", - "012F" - ], - "Actors": [ - "00A4 EF30 FAAD FE36 0000 8000 0000 FFFF", - "0111 EE21 FAAD FCD5 0000 0000 0000 660B", - "0111 F03C FAAD FCD5 0000 0000 0000 680A", - "004C EE50 FAAD FE96 0000 216C 0000 FFFF", - "004C EE64 FAAD FD4A 0000 27D2 0000 FFFF", - "004C EE86 FAAD FE63 0000 D1C7 0000 FFFF", - "004C EE98 FAAD FD9E 0000 DD28 0000 FFFF", - "004C EED2 FAAD FE52 0000 6C17 0000 FFFF", - "004C EEFA FAAD FD44 0000 F99A 0000 FFFF", - "004C EF5D FAAD FD78 0000 149F 0000 FFFF", - "004C EF99 FAAD FEB9 0000 1555 0000 FFFF", - "004C EFB5 FAAD FE02 0000 1777 0000 FFFF", - "004C EFD1 FAAD FE86 0000 A16C 0000 FFFF", - "004C EFD5 FAAD FCF2 0000 22D8 0000 FFFF", - "004C EFEE FAAD FD3B 0000 B8E4 0000 FFFF", - "004C EFF7 FAAD FE35 0000 E444 0000 FFFF", - "000A EF2F FAAD FE95 0000 0000 0000 794D" - ] - }, - { - "File": { - "Name": "Scene 7, Room 18", - "Start": "02828000", - "End": "02835280", - "RemapStart": null + { + "Id": 1581, + "Type": 17, + "Flags": 0 }, - "Id": 18, - "Objects": [ - "0069", - "0187", - "000E", - "00A4", - "000D", - "0024", - "0085" - ], - "Actors": [ - "0037 0BA9 FC0D 002C 0000 0000 0000 0001", - "0080 0A37 FB4D 0137 0000 0000 0000 0110", - "0080 0B20 FB4D 018C 0000 8000 0000 0210", - "00AE 1124 FAAD FE6A 0000 0000 0000 000B", - "00BC 0BAC FB82 FF5B 0000 0000 0000 0004", - "00BC 0BD2 FB82 0162 0000 C000 0000 0004", - "00BC 0E02 FB82 FF82 0000 C000 0000 0004", - "00BC 0F94 FAE2 0070 0000 8000 0000 0004", - "00BC 105C FAE2 FE93 0000 0000 0000 0004", - "00BC 1124 FAE2 0070 0000 8000 0000 0004" - ] - }, - { - "File": { - "Name": "Scene 7, Room 19", - "Start": "02836000", - "End": "02838D20", - "RemapStart": null + { + "Id": 1582, + "Type": 17, + "Flags": 0 }, - "Id": 19, - "Objects": [ - "0069", - "0187", - "000E", - "00A4", - "0098", - "0024", - "015C" - ], - "Actors": [ - "0090 1376 FAAD FF9E 0000 44FA 0000 7F01", - "0090 138C FAAD FF2B 0000 1A50 0000 7F01", - "0090 13A2 FAAD FFCB 0000 5B06 0000 7F01", - "0090 13C5 FAAD FF5C 0000 305B 0000 7F01", - "0095 13F4 FB5D FF82 4000 C000 0000 8801", - "0183 1343 FAAD FF81 0000 0000 0000 FF40", - "0173 13ED FB37 FF82 0000 FFA6 0000 2228", - "000A 13D0 FAAD FFED 0000 4000 0000 6855" - ] - }, - { - "File": { - "Name": "Scene 7, Room 20", - "Start": "02839000", - "End": "0283AE20", - "RemapStart": null + { + "Id": 1583, + "Type": 17, + "Flags": 0 }, - "Id": 20, - "Objects": [ - "0069", - "0187", - "000E", - "00A4", - "008D", - "0098", - "0024", - "015C" - ], - "Actors": [ - "0090 109D FAAD FBD2 0000 1555 0000 7FFE", - "0090 11AF FAAD FBC7 0000 EAAB 0000 7FFE", - "0095 1063 FAAD FAED 0000 1C72 0000 8808", - "0111 107E FAAD FC6C 0000 0000 0000 5C01", - "0111 11C5 FAAD FC66 0000 0000 0000 640C", - "011D 1086 FAAD FB64 0000 0000 0000 00F6", - "011D 11C3 FAAD FB61 0000 0000 0000 03F7", - "00BE 106F FAC7 FAE1 0000 0000 0000 1302", - "00BE 11D9 FAC7 FD19 0000 8000 0000 1C02", - "000A 11E7 FAAD FD0D 0000 4000 0000 6934", - "000A 1129 FAAD FBCC 0000 8000 0000 7888" - ] - }, - { - "File": { - "Name": "Scene 7, Room 21", - "Start": "0283B000", - "End": "028464B0", - "RemapStart": null + { + "Id": 1589, + "Type": 17, + "Flags": 0 }, - "Id": 21, - "Objects": [ - "0069", - "0187", - "000E", - "00A4", - "0031", - "011C", - "0032", - "0024", - "015C", - "0154", - "00A8", - "0190", - "00B7" - ], - "Actors": [ - "012D F22A FC15 FC83 0000 4000 0000 0CC1", - "012D F34A FAAD FC8A 0000 0000 0000 0CC1", - "012E 123E FB78 F82B 0000 C000 0001 1CB8", - "0095 0F26 FC4A FA29 0000 4000 0000 0000", - "0037 0F47 FB9D FA32 0000 4000 0000 0002", - "01C9 0F84 FBED F9A0 0000 4000 0003 0539", - "00FF 0F62 FAAD FA32 0000 0000 0000 1D02", - "00FF 117E FA9E F9CE 0000 0000 0000 1DC6", - "0139 117E FA9E F9CE 0000 0000 0000 001D", - "0015 0F83 FBED F94C 0000 0000 0000 2203", - "0015 0F82 FBED F9E8 0000 0000 0000 2303", - "0015 F26F FC15 FC61 0000 0000 0000 3903", - "0015 F271 FC15 FC8C 0000 0000 0000 3A03", - "0015 F3A4 FB4F FD7A 0000 0000 0000 3C03", - "0095 F7FF FA35 FA75 4000 0000 0000 8810", - "01D1 F39E FAAD FD12 0000 0000 0002 B8FF", - "0002 04B9 FC32 F842 0000 0000 0000 0003", - "0002 0ABA FC21 F825 0000 0000 0000 0003", - "0173 F55C FAF3 FDAC 0006 0011 001E 2084", - "0111 F6A0 FAAD FA42 0000 0000 0000 7009", - "0111 F74A FAAD FA42 0000 0000 0000 7609", - "0111 F4D5 FAAD FE0F 0000 0000 0000 7A0A", - "0111 F5C0 FAAD FE14 0000 0000 0000 7C0E", - "012A F230 FC15 FC53 0000 0000 0000 1A00", - "004C F6EF FAAD FCFE 0000 8000 0000 FFFF", - "004C F70D FAAD FC93 0000 8000 0000 FFFF", - "004C F722 FAAD FD19 0000 8000 0000 FFFF", - "004C F736 FAAD FCBD 0000 8000 0000 FFFF", - "004C F74B FAAD FCF3 0000 8000 0000 FFFF", - "012A F39B FAD0 FD44 0000 8000 0000 0C02", - "00BE F72F FAD5 FD45 0000 0000 0000 1000", - "00B0 1282 FA8D F82A 0000 0000 0000 3800", - "000A 0F5A FB4D FAAA 0000 C000 0000 684E" - ] - }, - { - "File": { - "Name": "Scene 7, Room 22", - "Start": "02847000", - "End": "028499A0", - "RemapStart": null + { + "Id": 1590, + "Type": 17, + "Flags": 0 }, - "Id": 22, - "Objects": [ - "0069", - "0187", - "000E", - "00A4", - "00B0" - ], - "Actors": [] - } - ] + { + "Id": 1591, + "Type": 17, + "Flags": 0 + }, + { + "Id": 1592, + "Type": 17, + "Flags": 0 + }, + { + "Id": 1593, + "Type": 17, + "Flags": 0 + }, + { + "Id": 1594, + "Type": 17, + "Flags": 0 + }, + { + "Id": 1595, + "Type": 17, + "Flags": 0 + }, + { + "Id": 1596, + "Type": 17, + "Flags": 0 + }, + { + "Id": 1601, + "Type": 25, + "Flags": 0 + }, + { + "Id": 1602, + "Type": 25, + "Flags": 0 + }, + { + "Id": 1603, + "Type": 25, + "Flags": 0 + }, + { + "Id": 1610, + "Type": 16, + "Flags": 0 + }, + { + "Id": 1611, + "Type": 16, + "Flags": 0 + }, + { + "Id": 1612, + "Type": 16, + "Flags": 0 + }, + { + "Id": 1619, + "Type": 17, + "Flags": 0 + }, + { + "Id": 1620, + "Type": 17, + "Flags": 0 + }, + { + "Id": 1661, + "Type": 17, + "Flags": 0 + }, + { + "Id": 1662, + "Type": 17, + "Flags": 0 + }, + { + "Id": 1663, + "Type": 17, + "Flags": 0 + }, + { + "Id": 1664, + "Type": 17, + "Flags": 0 + }, + { + "Id": 1679, + "Type": 17, + "Flags": 0 + }, + { + "Id": 1680, + "Type": 17, + "Flags": 0 + }, + { + "Id": 1759, + "Type": 17, + "Flags": 0 + }, + { + "Id": 1760, + "Type": 17, + "Flags": 0 + }, + { + "Id": 1761, + "Type": 17, + "Flags": 0 + }, + { + "Id": 1762, + "Type": 17, + "Flags": 0 + }, + { + "Id": 1763, + "Type": 17, + "Flags": 0 + }, + { + "Id": 1764, + "Type": 17, + "Flags": 0 + }, + { + "Id": 1809, + "Type": 16, + "Flags": 0 + }, + { + "Id": 1810, + "Type": 16, + "Flags": 0 + }, + { + "Id": 1890, + "Type": 27, + "Flags": 0 + }, + { + "Id": 1891, + "Type": 27, + "Flags": 0 + }, + { + "Id": 1906, + "Type": 27, + "Flags": 0 + }, + { + "Id": 1907, + "Type": 27, + "Flags": 0 + }, + { + "Id": 1920, + "Type": 16, + "Flags": 0 + }, + { + "Id": 1921, + "Type": 16, + "Flags": 0 + }, + { + "Id": 1930, + "Type": 27, + "Flags": 0 + }, + { + "Id": 1931, + "Type": 27, + "Flags": 0 + }, + { + "Id": 1932, + "Type": 27, + "Flags": 0 + }, + { + "Id": 1933, + "Type": 27, + "Flags": 0 + }, + { + "Id": 1934, + "Type": 27, + "Flags": 0 + }, + { + "Id": 1935, + "Type": 27, + "Flags": 0 + }, + { + "Id": 1936, + "Type": 27, + "Flags": 0 + }, + { + "Id": 1937, + "Type": 27, + "Flags": 0 + }, + { + "Id": 1938, + "Type": 27, + "Flags": 0 + }, + { + "Id": 1939, + "Type": 27, + "Flags": 0 + }, + { + "Id": 1940, + "Type": 27, + "Flags": 0 + }, + { + "Id": 1941, + "Type": 27, + "Flags": 0 + }, + { + "Id": 1942, + "Type": 27, + "Flags": 0 + }, + { + "Id": 1943, + "Type": 27, + "Flags": 0 + }, + { + "Id": 1944, + "Type": 27, + "Flags": 0 + }, + { + "Id": 1945, + "Type": 27, + "Flags": 0 + }, + { + "Id": 1946, + "Type": 27, + "Flags": 0 + }, + { + "Id": 1947, + "Type": 27, + "Flags": 0 + }, + { + "Id": 1948, + "Type": 27, + "Flags": 0 + }, + { + "Id": 1949, + "Type": 27, + "Flags": 0 + }, + { + "Id": 1954, + "Type": 27, + "Flags": 0 + }, + { + "Id": 1955, + "Type": 27, + "Flags": 0 + }, + { + "Id": 1956, + "Type": 27, + "Flags": 0 + }, + { + "Id": 1957, + "Type": 27, + "Flags": 0 + }, + { + "Id": 1958, + "Type": 17, + "Flags": 0 + }, + { + "Id": 1959, + "Type": 17, + "Flags": 0 + }, + { + "Id": 1960, + "Type": 17, + "Flags": 0 + }, + { + "Id": 1961, + "Type": 17, + "Flags": 0 + }, + { + "Id": 1962, + "Type": 17, + "Flags": 0 + }, + { + "Id": 1963, + "Type": 17, + "Flags": 0 + }, + { + "Id": 1964, + "Type": 17, + "Flags": 0 + }, + { + "Id": 1977, + "Type": 16, + "Flags": 0 + }, + { + "Id": 1978, + "Type": 16, + "Flags": 0 + }, + { + "Id": 2021, + "Type": 28, + "Flags": 0 + }, + { + "Id": 2022, + "Type": 28, + "Flags": 0 + }, + { + "Id": 2023, + "Type": 28, + "Flags": 0 + }, + { + "Id": 2024, + "Type": 28, + "Flags": 0 + }, + { + "Id": 2025, + "Type": 28, + "Flags": 0 + }, + { + "Id": 2026, + "Type": 28, + "Flags": 0 + }, + { + "Id": 2027, + "Type": 28, + "Flags": 0 + }, + { + "Id": 2028, + "Type": 28, + "Flags": 0 + }, + { + "Id": 2029, + "Type": 28, + "Flags": 0 + }, + { + "Id": 2030, + "Type": 28, + "Flags": 0 + }, + { + "Id": 2031, + "Type": 28, + "Flags": 0 + }, + { + "Id": 2032, + "Type": 28, + "Flags": 0 + }, + { + "Id": 2033, + "Type": 28, + "Flags": 0 + }, + { + "Id": 2034, + "Type": 28, + "Flags": 0 + }, + { + "Id": 2035, + "Type": 28, + "Flags": 0 + }, + { + "Id": 2036, + "Type": 28, + "Flags": 0 + }, + { + "Id": 2037, + "Type": 28, + "Flags": 0 + }, + { + "Id": 2038, + "Type": 28, + "Flags": 0 + }, + { + "Id": 2039, + "Type": 28, + "Flags": 0 + }, + { + "Id": 2040, + "Type": 28, + "Flags": 0 + }, + { + "Id": 2041, + "Type": 28, + "Flags": 0 + }, + { + "Id": 2042, + "Type": 28, + "Flags": 0 + }, + { + "Id": 2043, + "Type": 28, + "Flags": 0 + }, + { + "Id": 2044, + "Type": 28, + "Flags": 0 + }, + { + "Id": 2166, + "Type": 29, + "Flags": 0 + }, + { + "Id": 2167, + "Type": 29, + "Flags": 0 + }, + { + "Id": 2168, + "Type": 29, + "Flags": 0 + }, + { + "Id": 2169, + "Type": 29, + "Flags": 0 + }, + { + "Id": 2170, + "Type": 29, + "Flags": 0 + }, + { + "Id": 2171, + "Type": 29, + "Flags": 0 + }, + { + "Id": 2172, + "Type": 29, + "Flags": 0 + }, + { + "Id": 2173, + "Type": 29, + "Flags": 0 + }, + { + "Id": 2174, + "Type": 29, + "Flags": 0 + }, + { + "Id": 2197, + "Type": 29, + "Flags": 0 + }, + { + "Id": 2198, + "Type": 29, + "Flags": 0 + }, + { + "Id": 2199, + "Type": 29, + "Flags": 0 + }, + { + "Id": 2200, + "Type": 29, + "Flags": 0 + }, + { + "Id": 2201, + "Type": 29, + "Flags": 0 + }, + { + "Id": 2202, + "Type": 29, + "Flags": 0 + }, + { + "Id": 2203, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2204, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2205, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2206, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2207, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2208, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2209, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2210, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2218, + "Type": 18, + "Flags": 0 + }, + { + "Id": 2219, + "Type": 18, + "Flags": 0 + }, + { + "Id": 2220, + "Type": 18, + "Flags": 0 + }, + { + "Id": 2257, + "Type": 16, + "Flags": 0 + }, + { + "Id": 2258, + "Type": 16, + "Flags": 0 + }, + { + "Id": 2289, + "Type": 18, + "Flags": 0 + }, + { + "Id": 2290, + "Type": 18, + "Flags": 0 + }, + { + "Id": 2293, + "Type": 18, + "Flags": 0 + }, + { + "Id": 2294, + "Type": 18, + "Flags": 0 + }, + { + "Id": 2295, + "Type": 18, + "Flags": 0 + }, + { + "Id": 2296, + "Type": 18, + "Flags": 0 + }, + { + "Id": 2297, + "Type": 18, + "Flags": 0 + }, + { + "Id": 2298, + "Type": 18, + "Flags": 0 + }, + { + "Id": 2310, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2311, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2312, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2313, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2314, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2315, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2316, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2317, + "Type": 30, + "Flags": 0 + }, + { + "Id": 2318, + "Type": 30, + "Flags": 0 + }, + { + "Id": 2319, + "Type": 30, + "Flags": 0 + }, + { + "Id": 2320, + "Type": 30, + "Flags": 0 + } + ], + "PolyTypes": [ + { + "Id": 11, + "High": 49159, + "Low": 30720 + }, + { + "Id": 12, + "High": 49158, + "Low": 30720 + }, + { + "Id": 13, + "High": 4194309, + "Low": 145354 + }, + { + "Id": 14, + "High": 6291461, + "Low": 14282 + }, + { + "Id": 15, + "High": 8388613, + "Low": 145354 + }, + { + "Id": 16, + "High": 5, + "Low": 12288 + }, + { + "Id": 17, + "High": 7, + "Low": 20480 + }, + { + "Id": 18, + "High": 6, + "Low": 20480 + }, + { + "Id": 19, + "High": 8, + "Low": 20480 + }, + { + "Id": 20, + "High": 2, + "Low": 30722 + }, + { + "Id": 21, + "High": 2, + "Low": 12290 + }, + { + "Id": 22, + "High": 10485765, + "Low": 14282 + }, + { + "Id": 23, + "High": 10485763, + "Low": 14282 + }, + { + "Id": 24, + "High": 10485764, + "Low": 14282 + }, + { + "Id": 25, + "High": 5, + "Low": 20480 + }, + { + "Id": 26, + "High": 10, + "Low": 20480 + }, + { + "Id": 27, + "High": 10, + "Low": 12288 + }, + { + "Id": 28, + "High": 7, + "Low": 16384 + }, + { + "Id": 29, + "High": 7, + "Low": 14272 + }, + { + "Id": 30, + "High": 517, + "Low": 14304 + } + ], + "Cams": [ + { + "Data": 1572867, + "PositionIndex": 0 + }, + { + "Data": 1572867, + "PositionIndex": 1 + }, + { + "Data": 1966086, + "PositionIndex": 2 + }, + { + "Data": 1441795, + "PositionIndex": 3 + }, + { + "Data": 1441795, + "PositionIndex": 4 + }, + { + "Data": 0, + "PositionIndex": -1 + }, + { + "Data": 196608, + "PositionIndex": -1 + }, + { + "Data": 4063232, + "PositionIndex": -1 + }, + { + "Data": 4259840, + "PositionIndex": -1 + }, + { + "Data": 327680, + "PositionIndex": -1 + }, + { + "Data": 262144, + "PositionIndex": -1 + } + ] + } }, { "File": { - "Name": "Scene 8", - "Start": "032C6000", - "End": "032D2560", + "Name": "Scene 1", + "Start": "01F12000", + "End": "01F27140", "RemapStart": null }, - "Id": 8, + "Id": 1, "TActors": [ - "01FF 00FF 002E FC86 0000 FF9C 0000 009F", - "03FF 00FF 002E 0366 0000 FCA4 0000 02D5", - "03FF 00FF 002E 0474 0000 FA74 8000 00BB", - "05FF 00FF 002E 01C2 0000 FC7C 0000 008A", - "06FF 00FF 002E FE66 0000 FC7C 0000 008C", - "00FF 02FF 002E F9DE 0000 FD1C C000 02D4", - "00FF 04FF 002E 0384 FFEC 00D2 4000 0056", - "00FF 01FF 0023 FECA FEE8 FDE4 0000 00BF", - "00FF 01FF 0023 FC7C FEE8 FA24 0000 00BF", - "00FF 01FF 0023 0000 FF10 FD1C 0000 00BF", - "05FF 01FF 0023 0172 FEE8 FB82 0000 00BF", - "00FF 01FF 0023 0280 FEE8 FA10 0000 00BF", - "03FF 01FF 0023 044C FEE8 FB28 C000 00BF", - "03FF 01FF 0023 0384 FEE8 FBB4 C000 00BF", - "03FF 01FF 0023 0410 FEE8 FC7C C000 00BF" - ], - "Paths": [ - { - "Points": [ - [ - 847, - -391, - -1432 - ], - [ - 565, - -654, - -1240 - ], - [ - 123, - -664, - -1109 - ], - [ - -41, - -645, - -634 - ], - [ - -8, - -654, - -282 - ], - [ - 75, - -645, - 29 - ] - ] - }, - { - "Points": [ - [ - 1286, - -391, - -1123 - ], - [ - 1066, - -673, - -1077 - ], - [ - 834, - -654, - -841 - ], - [ - 443, - -645, - -757 - ], - [ - 249, - -654, - -459 - ], - [ - 107, - -664, - -158 - ] - ] - } + "00FF 01FF 0023 0474 0000 FEC0 4000 003F", + "00FF 09FF 0023 0474 0213 FEC0 4000 003F", + "00FF 09FF 0023 0474 0213 FC68 4000 003F", + "07FF 08FF 0023 026C 004C F520 4000 003F", + "07FF 08FF 0023 0251 004C F11A 4000 003F", + "09FF 0CFF 0023 0924 0213 FC68 4000 003F", + "09FF 0AFF 0023 0924 0213 FEC0 4000 003F", + "07FF 00FF 002E 0000 004C F84E 0000 003F", + "04FF 03FF 002E 0AE3 0064 F680 2AAB 0085", + "01FF 03FF 002E 0DE8 0064 FB04 8000 0085", + "0AFF 03FF 002E 10F3 0213 FDA8 8000 0086", + "0CFF 03FF 002E 0EC4 0213 FC68 4000 0086", + "01FF 0BFF 002E 0A00 0000 0078 0000 003F", + "08FF 0EFF 002E 05C1 004C EF7B 8000 007F", + "0DFF 04FF 002E 0981 0064 F4B2 0000 01DE", + "02FF 0FFF 002E F858 0000 FD1C 0000 003F", + "06FF 09FF 002E 0730 019B FA38 0000 01E7", + "05FF 02FF 002E F858 0213 FD24 8000 00A5", + "00FF 05FF 002E F9F4 0213 FEC0 C000 007F", + "01FF 01FF 002E 0DE8 0064 FDD0 0000 00B6", + "10FF 07FF 002E FE98 0010 F520 4000 00A0", + "02FF 00FF 002E FCB8 0000 FA10 4000 0083", + "00FF 04FF 002E 05B4 0050 FC68 4000 009B" ], + "Paths": [], "Rooms": [ { "File": { - "Name": "Scene 8, Room 0", - "Start": "032D3000", - "End": "032E85F0", + "Name": "Scene 1, Room 0", + "Start": "01F28000", + "End": "01F438A0", "RemapStart": null }, "Id": 0, "Objects": [ - "008D", - "0187", + "002B", + "018A", + "0031", "000E", - "00A4", - "0098", - "0024", - "015C", - "0059", + "0038", + "0168", + "011B", "0163", - "000B", - "00AA", - "011F", - "0090", - "00B7" + "0024", + "0188", + "00A4", + "0036", + "001F", + "000D", + "0170" ], "Actors": [ - "0095 0455 0048 FD27 0000 C000 0000 0000", - "0095 0456 0068 FCEC 0000 C000 0000 0000", - "0037 FEC9 00A0 FE67 0000 C000 0000 0001", - "0011 FFFE 0000 FD1A 0000 0000 0000 0001", - "0090 001D 0000 0254 0000 DC72 0000 7F02", - "0112 FD92 0062 F9EF 0000 0000 0004 18BF", - "0112 FD92 0062 F9EF 0000 0000 0004 18BF", - "0112 027F 0060 F9EE 0000 0000 0004 18BF", - "0112 FD92 0062 F9EF 0000 0000 0004 19FF", - "0112 027F 0061 F9EC 0000 0000 0004 19FF", - "0112 FD92 0062 F9EF 0000 0000 0004 1AFF", - "0112 027F 0061 F9ED 0000 0000 0004 1AFF", - "0112 027F 0061 F9EE 0000 0000 0004 1AFF", - "0183 0153 0000 FE4B 0000 0000 0000 FF40", - "012A 0064 0058 F967 2EEF CAAB 0000 0303", - "00D7 0000 0000 FD1C 0000 0000 0000 0003", - "000A 0001 0000 FCE1 0000 0000 0000 0823", - "01BB 020F 0000 FF49 0000 4000 0000 0FC5", - "012A FE84 0056 FF61 0000 C000 0000 0502", - "0127 FDE3 0000 FE6C 0000 0000 0000 0006", - "0127 FDF7 0000 FE9F 0000 0000 0000 0007", - "01BB 0002 FFF6 FD44 C000 0000 0000 0FC8", - "012A 0452 0000 FCD0 0000 0000 0000 0800", - "01BB FC7C FFF6 F9E8 4000 0000 0000 0FC9", - "012A 015B 0074 FEC0 4000 8000 0000 0A03", - "005E 017B 0000 FCB6 0000 0000 0000 03CA", - "0127 FE8E 0032 FF60 0000 0000 0000 000B", - "005E FEC6 0000 FCBE 0000 0000 0000 03CC", - "012A FF34 0000 FDE0 0000 0000 0000 0C00", - "012E 000A FFF6 FA08 0000 8000 0001 1C8D", - "01BB FE0C 0000 FD1C 0000 C000 0000 0FCD", - "01BB 0000 0000 FB00 0000 8000 0000 0FCD", - "01BB 0000 0000 FED4 0000 0000 0000 0FCD", - "01BB 021C 0000 FD1C 0000 4000 0000 0FCD", - "0185 000A 0000 FA22 0000 0000 000B 8ACD", - "011B 0003 0000 FD4C 0032 0000 0004 2091", - "0015 FFAD FF24 FEA2 0000 0000 0000 2103", - "0015 FFAD FF24 FEEE 0000 0000 0000 2203", - "00BE 0427 0018 FCF0 0000 C000 0000 2502", - "00BE FFC0 000A 03D7 0000 4000 0000 2602", - "0111 0153 0000 FE87 0000 0000 0000 4E09", - "00BE 00CA 0018 0155 0000 8000 0000 2702", - "0111 01A0 0000 FE87 0000 0000 0000 500B", - "00BE FBC8 0018 FA3B 0000 0000 0000 2802", - "0111 010D 0000 FE88 0000 0000 0000 5203", - "00BE FF38 0018 FF3B 0000 0000 0000 2902", - "0111 01A5 0000 FF52 0000 0000 0000 5412", - "00BE FA1D 0010 FCB0 0000 0000 0000 2A02", - "00BE 0345 0000 012C 0000 8000 0000 2B02", - "00BE FFC3 FFB3 F99A 0000 0000 0000 2C02", - "00BE FB74 FF4E FD7C 0000 8000 0000 2D02", - "0173 FC38 003B 0057 0002 0000 0000 2E26", - "0173 FFBE 003E 01BB 0004 0000 0001 2F26", - "012A 04E2 0074 FA31 C000 4000 0000 3B03" + "01B9 FC37 0000 FC6C 0000 4000 0000 3E14", + "0058 FE5C FF4C FB64 0000 0000 0000 00FF", + "0058 0000 FF4C FCF4 0000 0000 0000 00FF", + "0058 01A4 FF4C FB64 0000 0000 0000 000A", + "0059 0000 0000 0014 0000 0000 0000 0007", + "0059 0334 0000 FA10 0000 C000 0000 A000", + "0059 FCCC 0000 FC68 0000 4000 0000 A01D", + "0059 0334 0000 FEC0 0000 C000 0000 A01F", + "003F 0000 00C4 F92A 0000 0000 0000 001A", + "011B 0010 FF67 FC05 0096 0000 0032 0C15", + "0112 FFD8 0000 0014 0000 0000 0000 3FD8", + "0112 0000 0000 0014 0000 0000 0000 3FD8", + "0112 0028 0000 0014 0000 0000 0000 3FD8", + "012A FC97 0213 F9FC 0000 4000 0000 0300", + "012A 01AD FF60 F94B 0000 0000 0000 0A00", + "0185 0242 0238 FC5F 0000 4000 0000 0338", + "0195 FC7E 0000 FEE7 0000 4000 0000 0003", + "0195 FC43 0000 FEA4 0000 4000 0000 0001", + "004C FEDB 0014 0133 0000 0000 0000 FFFF", + "004C FFFE 0000 FB6E 0000 0000 0000 FFFF", + "004C 0122 0014 0133 0000 0000 0000 FFFF", + "004C 0352 0213 FC65 0000 0000 0000 FFFF", + "0127 01B0 FF60 F949 0000 0000 0000 000E", + "0127 FE4D FF60 F948 0000 0000 0000 0011", + "0127 030F 0213 FC65 0000 4000 0000 0015", + "0127 0322 0213 FC34 0000 C000 0000 0015", + "0127 0327 0213 FC96 0000 0000 0000 0015", + "000A 03B6 0000 FA11 0000 4000 0000 0820", + "000A 0365 0050 FC68 0000 C000 0000 0644", + "005E FD03 0000 FA83 0000 0000 0000 03C3" ] }, { "File": { - "Name": "Scene 8, Room 1", - "Start": "032E9000", - "End": "032F42D0", + "Name": "Scene 1, Room 1", + "Start": "01F44000", + "End": "01F4DB00", "RemapStart": null }, "Id": 1, "Objects": [ - "008D", - "0187", + "002B", + "018A", + "0031", "000E", - "00A4", - "0098", - "0024", - "015C", - "0059", + "0038", + "0168", + "011B", "0163", - "000B", - "00AA", - "011F", - "0090", - "00B7" + "0024", + "0188", + "00A4", + "0036", + "001F", + "000D", + "0170" ], "Actors": [ - "003B FECA FD20 FF5F 0000 0000 0000 0008", - "0037 FC82 FDF8 FB73 0000 1333 0000 0002", - "0037 FD15 FDF8 FC38 0000 1A50 0000 0002", - "0037 FD3F FDE9 FD00 0000 13E9 0000 0002", - "0011 FFE6 FD92 FEBC 0000 0000 0000 0000", - "0090 0238 FD30 005A 0000 2C17 0000 7F02", - "0090 025B FD30 0022 0000 305B 0000 7F02", - "0090 0276 FD30 0080 0000 E889 0000 7F02", - "0090 028B FD30 00AD 0000 A5B0 0000 7F02", - "0090 02CC FD30 00A7 0000 9555 0000 7F02", - "0008 FDAC FD6E FEA2 0000 0000 0000 03F7", - "0008 FDAD FD6E FF06 0000 0000 0000 03F7", - "0008 0000 FD30 0009 0000 0000 0000 03F7", - "0008 012B FD30 FFC0 0000 0000 0000 03F7", - "0008 01AB FD30 00BC 0000 0000 0000 03F7", - "0008 02B5 FD30 FFEF 0000 0000 0000 03F7", - "0008 02F6 FD30 0059 0000 0000 0000 03F7", - "0183 027F FD30 FA4E 0000 0000 0000 FF40", - "0130 0352 FE6F FA65 0000 0000 0001 0D00", - "0130 0504 FE5C FB9E 0000 0000 0001 0D01", - "0095 FC76 FD30 FA29 0000 0000 0000 8901", - "000A 02D4 FD30 0021 0000 582E 000E B141", - "012A 0061 FDD0 FCF3 0000 F111 0000 0E00", - "011B 0004 FDD0 FD12 001E 0000 0004 2091", - "011B FECB FD25 FDDF 001E 0000 0004 2091", - "011B 0171 FD30 FB82 001E 0000 0004 2091", - "011B 0281 FD30 FA13 001E 0000 0004 2091", - "0015 043B FD30 FB6A 0000 0000 0000 3C03", - "0015 0414 FD30 FB39 0000 0000 0000 3D03", - "0015 045A FD30 FB39 0000 0000 0000 3E03" + "012B 085C FF61 FE97 0000 0000 0000 0001", + "012B 085C FF61 FE20 0000 0000 0000 1201", + "0037 0C9B 0160 FE70 0000 C16C 0000 0001", + "0059 0A00 0000 FF95 0000 8000 0000 A001", + "0013 0D2D 00E7 FEA4 0000 0000 0000 0000", + "002F 0DC1 0064 FC7E 0000 093F 0000 FFFF", + "002F 0E06 0064 FBC2 0000 F1C7 0000 FFFF", + "0111 06BF 0000 FF69 0000 0000 0000 4400", + "0111 0717 0000 FF66 0000 0000 0000 4601", + "0111 0D72 0028 FE2B 0000 0000 0000 5000", + "0111 0E62 0028 FE2E 0000 0000 0000 5210", + "004C 085D 00A0 FD9B 0000 0000 0000 FFFF", + "004C 09A1 0000 FE6D 0000 0000 0000 FFFF", + "004C 0B2F 00A9 FF35 4000 671C 0000 FFFF", + "004C 0B43 00EA FF41 4000 671C 0000 FFFF", + "004C 0B46 0125 FF43 438E 671C 0000 FFFF", + "004C 0B4F 0154 FEEE 8000 0000 0000 FFFF", + "004C 0B5A 006B FF4F 4000 671C 0000 FFFF", + "004C 0B5D 0154 FF2A 8000 0000 0000 FFFF", + "004C 0B7A 0154 FE99 8000 0000 0000 FFFF", + "004C 0B8E 0154 FE3B 8000 0000 0000 FFFF", + "004C 0B90 0154 FEE0 8000 0000 0000 FFFF", + "004C 0BA2 0138 FE03 4000 11C7 0000 FFFF", + "004C 0BAE 0154 FE71 8000 0000 0000 FFFF", + "0127 09A0 0000 FE6E 0000 0000 0000 0008", + "0127 0B7E 00F0 FE11 0000 0000 0000 8012", + "012A 0B7E 0104 FE0C 0000 11C7 0000 3602" ] }, { "File": { - "Name": "Scene 8, Room 2", - "Start": "032F5000", - "End": "032F8190", - "RemapStart": null + "Name": "Scene 1, Room 2", + "Start": "01F4E000", + "End": "01F55DA0", + "RemapStart": "1F4DCD0" }, "Id": 2, "Objects": [ - "008D", - "0187", - "000E", - "015C", - "0098", - "0024", + "002B", + "018A", + "0031", "00A4", - "0009" + "011B", + "0170", + "0024", + "008B", + "0168", + "0039" ], "Actors": [ - "0090 F927 0000 FD1E 0000 4000 0000 7FFE", - "000D F6DB 0032 FD91 0000 0000 0000 0000", - "005E F7DB 0000 FC40 0000 0000 0000 2400", - "0095 F612 0000 FC6A 0000 0000 0000 8904", - "005E F8A3 0000 FC40 0000 0000 0000 100F", - "00BD F84E 0028 FCE0 0000 8000 0000 010F", - "005E F7DB 0000 FDF8 0000 0000 0000 1010", - "00BD F7B8 0028 FD58 0000 0000 0000 0110", - "005E F713 0000 FC40 0000 0000 0000 1011", - "00BD F6BE 0028 FCE0 0000 8000 0000 0111", - "0015 F867 000A FCA1 0000 0000 0000 2003", - "0015 F7A1 000A FD93 0000 0000 0000 2303" + "012B F85B FF9F F8F8 0000 0000 0000 2200", + "00C7 F893 0000 FC6B 0000 0000 0000 0001", + "0037 F779 02D0 FBA6 0000 C000 0000 0000", + "0037 F930 02D0 FBA6 0000 4000 0000 0000", + "0059 F858 0000 FBF0 0000 8000 0000 A002", + "005C F858 01E0 F894 0000 C000 0000 000B", + "011B F858 0014 FAE9 001E 0024 0000 BF14", + "008A F71B 0000 FAAE 0000 0000 0000 0401", + "008A F993 0000 FAAE 0000 0000 0000 0401", + "005E F7DF 0000 FBAC 0000 0000 0000 2400", + "0117 F71B 0000 FAAE 0000 0000 0000 1165", + "0117 F773 0000 F8D6 0000 0000 0000 1165", + "0117 F695 017C F8D4 0000 0000 0000 1165", + "0117 F88D 0273 FB25 0000 0000 0000 1165", + "0117 FA18 0213 FBC5 0000 0000 0000 1165", + "0117 F93B 0000 FA4B 0000 0000 0000 0165", + "0111 F6A9 0000 F8F4 0000 0000 0000 6603", + "0111 F6C7 0000 FB77 0000 0000 0000 6802", + "0111 FA0B 0000 F8F8 0000 0000 0000 6A02", + "0111 F9EA 0000 FB6F 0000 0000 0000 6C03", + "0195 F857 01EA F844 0000 0000 0000 0004", + "004C F7EA 0014 F97F 0000 0000 0000 FFFF", + "004C F7EA 0014 F9BB 0000 0000 0000 FFFF", + "004C F7EA 0014 F9F7 0000 0000 0000 FFFF", + "004C F7EA 0014 FA33 0000 0000 0000 FFFF", + "004C F7EA 0014 FA6F 0000 0000 0000 FFFF", + "004C F7EA 0014 FAAB 0000 0000 0000 FFFF", + "004C F7EA 0014 FAE7 0000 0000 0000 FFFF", + "004C F808 0037 FC34 4000 4000 0000 FFFF", + "004C F821 0014 FAE7 0000 0000 0000 FFFF", + "004C F891 0014 FAE7 0000 0000 0000 FFFF", + "004C F8CC 0014 F97F 0000 0000 0000 FFFF", + "004C F8CC 0014 F9BB 0000 0000 0000 FFFF", + "004C F8CC 0014 F9F7 0000 0000 0000 FFFF", + "004C F8CC 0014 FA33 0000 0000 0000 FFFF", + "004C F8CC 0014 FA6F 0000 0000 0000 FFFF", + "004C F8CC 0014 FAAB 0000 0000 0000 FFFF", + "004C F8CC 0014 FAE7 0000 0000 0000 FFFF", + "01A0 F695 017C F8D4 0000 0000 0000 FFFF", + "01A0 F696 0213 FBC4 0000 0000 0000 FFFF", + "01A0 F772 0000 F8D5 0000 0000 0000 FFFF", + "01A0 F93E 0000 F8D4 0000 0000 0000 FFFF", + "01A0 FA19 0213 FBC4 0000 0000 0000 FFFF", + "01A0 FA1A 017C F8D3 0000 0000 0000 FFFF" ] }, { "File": { - "Name": "Scene 8, Room 3", - "Start": "032F9000", - "End": "032FAC60", + "Name": "Scene 1, Room 3", + "Start": "01F56000", + "End": "01F63DC0", "RemapStart": null }, "Id": 3, "Objects": [ - "008D", - "0187", - "000E", + "002B", + "001B", + "0163", "00A4", - "0098", "0024", - "015C", - "0059", - "0163", - "000B", - "00AA", - "011F", - "0090", - "00B7" + "015C" ], "Actors": [ - "0011 03EC 00B1 FBD6 0000 0000 0000 0000", - "008E 03E6 0000 FC11 0000 6AAB 0000 0000", - "01BB 02E4 FFF6 FB50 4000 4000 0000 0FFF", - "01BB 02E4 FFF6 FBC8 4000 4000 0000 0FFF", - "01BB 0370 FFF6 FC5E 4000 4000 0000 0FFF", - "01BB 03AC FFF6 FB3C 4000 4000 0000 0FFF", - "01BB 03D4 FFF6 FB50 4000 C000 0000 0FFF", - "01BB 03D4 FFF6 FBC8 4000 C000 0000 0FFF", - "01BB 0460 FFF6 FC5E 4000 C000 0000 0FFF", - "01BB 049C FFF6 FB3C 4000 C000 0000 0FFF", - "011B 0473 0000 FAA9 001E 0000 0004 2291", - "011B 0364 0000 FC80 001E 0000 0004 2291" + "003B 0F0B 0028 FA0A 0000 0000 0000 0006", + "0025 0F81 0064 F78F 0000 0000 0000 0500", + "0025 0B0D 0064 F857 0000 0000 0000 0501", + "0025 10A5 0213 FBE1 0000 0000 0000 0600", + "0025 115A 0213 FA96 0000 0000 0000 0601", + "0015 10AA 0064 F9D9 0000 ACCD 0000 1803", + "0095 0DF3 0213 F845 0000 0000 0000 8204", + "0111 0F1D 0213 FCD5 0000 0000 0000 5403", + "0111 0F1B 0213 FC37 0000 0000 0000 5603", + "0111 124F 0213 FBD1 0000 0000 0000 5801", + "0111 1255 0213 FB56 0000 0000 0000 5A01", + "0127 0EB0 01D7 FADA 0000 0000 0000 00FF", + "0127 0ED7 01D7 FA99 0000 0000 0000 00FF", + "0127 0EF8 01D7 FA63 0000 0000 0000 00FF", + "0127 0F3A 01D7 FA45 0000 0000 0000 00FF", + "0127 0F7D 01D7 FA3F 0000 0000 0000 00FF", + "0127 0FBC 01D7 FA40 0000 0000 0000 00FF", + "0127 0FE3 0213 FA31 0000 0000 0000 00FF", + "0127 0FFB 0213 FA1A 0000 0000 0000 00FF", + "0127 1025 0213 F9E7 0000 0000 0000 00FF", + "0127 1042 0213 F9D3 0000 0000 0000 00FF", + "0127 1052 01D7 F9BE 0000 0000 0000 00FF", + "0127 107B 01D7 F98D 0000 0000 0000 00FF" ] }, { "File": { - "Name": "Scene 8, Room 4", - "Start": "032FB000", - "End": "032FD450", + "Name": "Scene 1, Room 4", + "Start": "01F64000", + "End": "01F6D850", "RemapStart": null }, "Id": 4, "Objects": [ - "008D", - "0187", - "000E", - "00A6", - "012B" + "002B", + "0031", + "0163", + "00A2", + "0009", + "0170" ], "Actors": [ - "0125 05B2 FFEC FF7E 0000 0000 0000 FF01", - "0125 05D4 FFEC FFCF 0000 0000 0000 FF01", - "0125 05F9 FFEC 0002 0000 0000 0000 FF01", - "0125 0644 FFEC 0003 0000 0000 0000 FF01", - "00A5 0464 FFEC 003A 0000 C000 0000 FFFF", - "00A5 0464 FFEC 0173 0000 C000 0000 FFFF", - "00A5 059D FFEC 0036 0000 C000 0000 FFFF", - "00A5 059D FFEC 0170 0000 C000 0000 FFFF", - "00A4 04FC FFF0 00D1 0000 C000 0000 FFFF", - "0015 0644 FFEC FFA8 0000 0000 0000 0211", - "000A 0524 FFEC 0079 0000 C000 0000 1802", - "00BE 062C 0000 FFA6 0000 C000 0000 2102" + "000D 06AA 0078 F9C1 0000 45B0 0000 0000", + "000D 06C1 0078 FCA6 0000 0000 0000 0000", + "000D 081F 0078 FB46 0000 BC72 0000 0000", + "0112 06E1 0156 FC2A 0000 0000 0003 18DB", + "0112 07FE 013A F894 0000 0000 0003 18DE", + "0111 0734 0050 F8B5 0000 0000 0000 5C03", + "0111 08E0 0050 F75B 0000 0000 0000 5E00", + "0111 08C0 0050 FAA7 0000 0000 0000 6201", + "0111 05FF 0050 FAED 0000 0000 0000 6403", + "004C 06C7 012D FBD9 5555 C000 0000 FFFF", + "004C 06CE 011B FBA5 5555 B777 0000 FFFF", + "004C 06D4 012D FC01 5555 DC72 0000 FFFF", + "004C 06F3 00F2 FB84 5555 A38E 0000 FFFF", + "004C 0718 00B5 FB77 4000 8000 0000 FFFF", + "004C 0742 007F FB78 4000 8000 0000 FFFF", + "004C 07E1 00B3 F82A 4000 3111 0000 FFFF", + "004C 07E8 011F F836 471C 31C7 0000 FFFF", + "004C 07EB 007F F805 4000 2AAB 0000 FFFF", + "004C 07EC 00F9 F814 5555 3111 0000 FFFF", + "004C 07F8 0128 F87D 471C 51C7 0000 FFFF", + "004C 06F3 0050 FD27 0000 0000 0000 FFFF", + "004C 08B0 0064 F64C 0000 0000 0000 FFFF", + "01A0 08B8 0050 FB3B 0000 C000 0000 FFFF", + "01A0 08B8 0050 FB77 0000 C000 0000 FFFF", + "01A0 08DB 0050 F8A4 0000 C000 0000 FFFF", + "01A0 08DB 0050 F8E0 0000 C000 0000 FFFF", + "01A0 0600 0050 FA55 0000 C000 0000 FFFF", + "01A0 0600 0050 FA91 0000 C000 0000 FFFF", + "01A0 0722 0050 FD18 0000 0000 0000 FFFF", + "01A0 075E 0050 FD18 0000 0000 0000 FFFF", + "009D 06DD 0165 FC11 ACCD 6000 0000 0000", + "009D 07F6 0158 F87B BA50 D27D 0000 0000" ] }, { "File": { - "Name": "Scene 8, Room 5", - "Start": "032FE000", - "End": "03300960", + "Name": "Scene 1, Room 5", + "Start": "01F6E000", + "End": "01F73EE0", "RemapStart": null }, "Id": 5, "Objects": [ - "008D", - "0187", - "000E", + "002B", + "0031", + "000C", "00A4", - "0098", - "0024", - "015C", - "0059", - "0163", - "000B", - "00AA", - "011F", - "0090", - "00B7" + "000D", + "000E", + "012B" ], "Actors": [ - "0112 00A0 0061 FB05 0000 0000 0004 18BF", - "0112 00A0 0061 FB05 0000 0000 0004 18BF", - "0112 00A0 0061 FB05 0000 0000 0004 19FF", - "0112 00A0 0061 FB05 0000 0000 0004 1AFF", - "00AE 017C 0000 FB32 0000 0000 0000 0002", - "0015 008C 0000 FB3E 0000 0000 0000 0111", - "0111 0120 0000 FB28 0000 0000 0000 4803", - "0111 01B6 0000 FB2E 0000 0000 0000 4A03", - "0111 01BC 0000 FBA6 0000 0000 0000 4C03" + "0125 F74A 0213 FDD4 0000 0000 0000 0301", + "0125 F756 0213 FFC8 0000 0000 0000 0301", + "0125 F93D 0213 FFD3 0000 0000 0000 0301", + "0125 F947 0213 FDBD 0000 0000 0000 0301", + "0012 F788 0213 FE98 0000 EE39 0000 FFFF", + "0012 F8E1 0213 FF7F 0000 616C 0000 FFFF", + "0012 F8E7 0213 FE40 0000 B05B 0000 FFFF", + "004C F85B 0277 FEBE 0000 0000 0000 FFFF", + "000A F858 0213 FFE4 0000 0000 0000 1805" ] }, { "File": { - "Name": "Scene 8, Room 6", - "Start": "03301000", - "End": "03303E80", + "Name": "Scene 1, Room 6", + "Start": "01F74000", + "End": "01F76400", "RemapStart": null }, "Id": 6, "Objects": [ - "008D", - "0187", - "00A2", - "000D", + "002B", "0024", - "00AA", - "015C" + "0177", + "001E", + "0170", + "000E" ], "Actors": [ - "0013 FE98 0023 FBB1 0000 4000 0000 8003", - "0013 FEB3 001A FB92 0000 0000 0000 8003", - "0013 FED9 001F FBAC 0000 C000 0000 8003", - "0037 FE52 0000 FBB5 0000 0000 0000 0002", - "0037 FEB4 0000 FC1B 0000 0000 0000 0002", - "009D FEB7 0000 FBC3 0000 0000 0000 0000", - "0095 FEB6 0000 FBB9 0000 0000 0000 8902" + "0095 080D 019B F911 0000 8000 0000 8210", + "002B 06B2 0303 F97C 0000 0000 0000 0008", + "002B 06D0 0303 F914 0000 0000 0000 0008", + "002B 072F 0303 F8C2 0000 0000 0000 0008", + "002B 0795 0303 F918 0000 0000 0000 0008", + "002B 07B6 0303 F982 0000 0000 0000 0008", + "01A0 0659 019B F90B 0000 4000 0000 FFFF", + "01A0 0659 019B F947 0000 4000 0000 FFFF", + "01A0 0713 019B F848 0000 0000 0000 FFFF", + "01A0 074F 019B F848 0000 0000 0000 FFFF", + "01A0 0807 019B F912 0000 4000 0000 FFFF", + "01A0 0807 019B F94E 0000 4000 0000 FFFF", + "000A 070F 019B F952 0000 8000 0000 7522" ] - } - ] - }, - { - "File": { - "Name": "Scene 9", - "Start": "02BEB000", - "End": "02BFC610", - "RemapStart": null - }, - "Id": 9, - "TActors": [ - "01FF 0AFF 0023 FD66 009B 059A AFA5 013F", - "03FF 08FF 0023 0386 00AC FCF7 1F4A 013F", - "02FF 03FF 0023 0032 0014 0102 44FA 013F", - "01FF 02FF 0023 FF8B 0006 025C C000 013F", - "01FF 00FF 0023 009A 0007 076B 4000 013F", - "03FF 04FF 0023 FF05 0009 FE95 C000 013F", - "04FF 05FF 0023 FE4F 001A FC3D 9E94 013F", - "06FF 05FF 0023 FAC7 0084 FFAF 9C72 013F", - "08FF 09FF 0023 0383 00AC F9E8 CD83 013F", - "03FF 0BFF 0023 02FC FFE5 001B EAAB 013F", - "07FF 0AFF 002E FC9E 0050 04C0 20B6 003F", - "06FF 07FF 002E FAC4 0118 02D9 2000 0054" - ], - "Paths": [ + }, { - "Points": [ - [ - 603, - 206, - 1826 - ], - [ - 553, - 32, - 1882 - ], - [ - 511, - 32, - 2001 - ], - [ - 560, - 32, - 2154 - ], - [ - 192, - 32, - 2575 - ], - [ - -31, - 32, - 2587 - ] + "File": { + "Name": "Scene 1, Room 7", + "Start": "01F77000", + "End": "01F7E6D0", + "RemapStart": null + }, + "Id": 7, + "Objects": [ + "002B", + "001F", + "001B", + "0038", + "015C", + "0024", + "0031", + "00A2", + "0154", + "0179", + "012B" + ], + "Actors": [ + "002F FF35 0010 F48F 0000 0000 0000 FFFF", + "002F 0016 0010 F466 0000 2666 0000 FFFF", + "0112 FFC4 004C F762 0000 0000 0000 3FF0", + "0112 FFEC 004C F762 0000 0000 0000 3FF0", + "0112 0014 004C F762 0000 0000 0000 3FF0", + "0112 003C 004C F762 0000 0000 0000 3FF0", + "0111 0102 0010 F411 0000 0000 0000 7A04", + "0111 FEF7 0010 F63D 0000 0000 0000 7C03", + "012A FFFF 007E F36C 0000 0000 0000 2000", + "009D 0000 007E F374 0000 0000 0000 0000" ] }, { - "Points": [ - [ - 298, - 498, - -134 - ], - [ - 302, - 55, - 60 - ], - [ - 255, - 55, - 211 - ], - [ - -7, - 55, - 265 - ], - [ - -327, - 55, - 322 - ] + "File": { + "Name": "Scene 1, Room 8", + "Start": "01F7F000", + "End": "01F88400", + "RemapStart": null + }, + "Id": 8, + "Objects": [ + "002B", + "001F", + "001B", + "0038", + "015C", + "0024", + "0031", + "00A2", + "0154", + "0179", + "012B" + ], + "Actors": [ + "0054 050A 0010 F09A 0000 4000 0000 FFFF", + "0054 051D 0010 F0C4 0000 4000 0000 FFFF", + "0054 0540 0010 F0E1 0000 4000 0000 FFFF", + "0054 0525 0010 F103 0000 4000 0000 FFFF", + "0054 0541 0010 F128 0000 4000 0000 FFFF", + "0054 051D 0010 F148 0000 4000 0000 FFFF", + "0054 053B 0010 F160 0000 4000 0000 FFFF", + "01B4 04A9 0042 F0FF 4000 C000 0000 FF01", + "01B4 04F9 0010 F0FF 4000 4000 0000 1901", + "0125 06E5 0010 F09C 0000 0000 0000 FF01", + "0049 0677 0010 F196 0000 0000 0000 2FFC", + "0049 06B0 0010 F194 0000 0000 0000 2FFC", + "0049 06EA 0010 F193 0000 0000 0000 2FFC", + "002F 0530 004C F324 0000 349F 0000 FFFF", + "002F 06AB 004C F340 0000 D777 0000 FFFF", + "0025 0616 0010 F22C 0000 0000 0000 FFFF", + "0095 0611 00C4 F194 0000 0000 0000 8201", + "012A 0452 0094 F082 4000 0000 0000 1903", + "012A 06AD 0010 F133 0000 0000 0000 3C03", + "0111 03ED 004C F181 0000 0000 0000 4003", + "0111 042A 004C F181 0000 0000 0000 4212", + "0111 06DE 004C F386 0000 0000 0000 6E04", + "0111 04C7 004C F383 0000 0000 0000 7804", + "0185 06AE 0045 F132 0000 0000 002C FFFF", + "004C 04FC 0057 F087 4000 0000 0000 FFFF", + "004C 04D8 009B F085 4000 0000 0000 FFFF", + "004C 04AF 00D8 F084 4000 0000 0000 FFFF", + "004C 0487 00C4 F0AF 0000 0000 0000 FFFF", + "004C 046D 009E F0AF 4000 C000 0000 FFFF", + "009D 0509 0010 F259 0000 0000 0000 0000", + "009D 06B3 0010 F25A 0000 0000 0000 0000", + "009D 05DE 0010 F259 0000 0000 0000 0000", + "009D 065E 0010 F0D9 0000 C000 0000 0000" ] }, { - "Points": [ - [ - -638, - 452, - -1163 - ], - [ - -453, - 63, - -974 - ], - [ - -359, - 51, - -824 - ], - [ - -382, - 63, - -671 - ], - [ - -500, - 85, - -545 - ], - [ - -445, - 70, - -356 - ] + "File": { + "Name": "Scene 1, Room 9", + "Start": "01F89000", + "End": "01F94550", + "RemapStart": null + }, + "Id": 9, + "Objects": [ + "002B", + "018A", + "0031", + "000E", + "0038", + "0168", + "011B", + "0163", + "0024", + "0188", + "00A4", + "0036", + "001F", + "000D", + "0170" + ], + "Actors": [ + "0125 06B1 019B FB22 0000 0000 0000 FF01", + "00FF 0654 015F FD8A 0000 0000 0000 FF40", + "00FF 06CC 015F FE3E 0000 0000 0000 FF40", + "00FF 06CC 015F FEF2 0000 0000 0000 FF40", + "00FF 07EE 015F FEC0 0000 0000 0000 FF40", + "0015 07A3 015F FDAC 0000 0000 0000 3003", + "005E 04E0 0213 FEA0 0000 0000 0000 2400", + "005E 0727 01D7 FF0F 0000 0000 0000 03E7", + "005E 062D 019B FF24 0000 0000 0000 10E7", + "005E 062E 019B FE93 0000 0000 0000 10E7", + "005E 062E 019B FE15 0000 0000 0000 10E7", + "0111 0723 024F FDB5 0000 0000 0000 4C01", + "0111 05FC 024F FB37 0000 0000 0000 4E03", + "000A 0672 024F FDFA 0000 0000 0000 59A3" ] }, { - "Points": [ - [ - 1475, - 702, - -1248 - ], - [ - 1308, - 231, - -911 - ], - [ - 1080, - 231, - -644 - ] + "File": { + "Name": "Scene 1, Room 10", + "Start": "01F95000", + "End": "01F9CE50", + "RemapStart": null + }, + "Id": 10, + "Objects": [ + "002B", + "018A", + "0031", + "000E", + "0038", + "0168", + "011B", + "0163", + "0024", + "0188", + "00A4", + "0036", + "001F", + "000D", + "0170" + ], + "Actors": [ + "0013 0E1F 0245 FEF8 0000 C000 0000 0003", + "0013 0FF8 027F FF06 0000 8E39 0000 0003", + "0013 1011 0247 FE74 0000 07D2 0000 0003", + "0037 0A5F 028B FEBF 0000 C000 0000 0000", + "0037 0CAC 028B FEC2 0000 C000 0000 0000", + "0037 0F00 028B FEBF 0000 C0B6 0000 0000", + "0125 0C75 019B FE1B 0000 0000 0000 FF01", + "0059 10E9 0213 FDFB 0000 F555 0000 A009", + "002F 0BBF 019B FE38 0000 DD28 0000 FFFF", + "002F 0BE8 019B FF52 0000 B6C1 0000 FFFF", + "002F 0BFB 019B FE4B 0000 D8E4 0000 FFFF", + "00FF 0A96 019B FE52 0000 0000 0000 FF40", + "00FF 0B86 0213 FEC0 0000 0000 0000 FF41", + "005E 0E28 0213 FEFA 0000 0000 0000 03E8", + "005E 09FC 0213 FE8E 0000 0000 0000 10A8", + "005E 0ADC 0213 FEF7 0000 0000 0000 10A8", + "0111 0C7B 019B FF65 0000 0000 0000 7210", + "0111 0A90 019B FE1D 0000 0000 0000 7410", + "004C 1028 0242 FE5F 4000 0E39 0000 FFFF", + "000F 0A2A 0213 FEC0 0000 C000 0000 1FD4" ] }, { - "Points": [ - [ - 900, - 700, - -1694 - ], - [ - 1062, - 230, - -1560 - ], - [ - 1059, - 230, - -1483 - ], - [ - 1056, - 230, - -1402 - ], - [ - 969, - 230, - -1236 - ], - [ - 962, - 230, - -1166 - ], - [ - 955, - 230, - -1101 - ], - [ - 1024, - 230, - -996 - ], - [ - 1024, - 230, - -954 - ], - [ - 1024, - 230, - -954 - ] + "File": { + "Name": "Scene 1, Room 11", + "Start": "01F9D000", + "End": "01F9F080", + "RemapStart": null + }, + "Id": 11, + "Objects": [ + "002B", + "0168" + ], + "Actors": [ + "0195 09FD 0000 01BE 0000 8000 0000 0007" ] - } - ], - "Rooms": [ + }, { "File": { - "Name": "Scene 9, Room 0", - "Start": "02BFD000", - "End": "02C05660", + "Name": "Scene 1, Room 12", + "Start": "01FA0000", + "End": "01FA8730", + "RemapStart": null + }, + "Id": 12, + "Objects": [ + "002B", + "018A", + "0031", + "000E", + "0038", + "0168", + "011B", + "0163", + "0024", + "0188", + "00A4", + "0036", + "001F", + "000D", + "0170" + ], + "Actors": [ + "0013 0C11 024F FDA7 0000 8000 0000 0003", + "0013 0D1D 01F3 FBC4 0000 C000 0000 0003", + "0049 0C28 0213 FC67 0000 0000 0000 2FF9", + "0049 0B6E 0213 FC69 0000 0000 0000 2FFA", + "012A 0A99 019B FCE5 0000 0000 0000 3903", + "0111 0CFF 019B FCDB 0000 0000 0000 7610", + "0111 0CFE 019B FD0F 0000 0000 0000 7801", + "012A 0AB3 019B FBDC 0000 0000 0000 3A00", + "004C 0C10 0227 FD6E 0000 0000 0000 FFFF", + "0127 0AB1 019B FBDE 0000 0000 0000 8004", + "01A0 0AD8 019B FCD6 0000 4000 0000 FFFF", + "01A0 0C77 019B FC7F 0000 0000 0000 FFFF" + ] + }, + { + "File": { + "Name": "Scene 1, Room 13", + "Start": "01FA9000", + "End": "01FAB480", + "RemapStart": null + }, + "Id": 13, + "Objects": [ + "002B", + "00A4", + "0024", + "000D", + "015C", + "004A", + "012B" + ], + "Actors": [ + "0125 0A36 0064 F2C5 0000 0000 0000 FF01", + "0125 0A54 0064 F2D8 0000 0000 0000 FF01", + "0060 0915 0064 F38C 0000 0000 0000 FF00", + "0060 09F2 0064 F38C 0000 0000 0000 FF00", + "0013 0980 0145 F312 0000 0000 0000 0000", + "0095 0895 01B8 F2C2 0000 4000 0000 8202" + ] + }, + { + "File": { + "Name": "Scene 1, Room 14", + "Start": "01FAC000", + "End": "01FAE490", "RemapStart": null }, - "Id": 0, - "Objects": [ - "006B", - "0016", - "011F", - "0114", - "0179", - "0024", - "015C", - "0190", - "00A8", - "0183", - "000E", - "0154", - "000D" - ], - "Actors": [ - "01C7 0144 0003 08E8 0000 0000 0000 0000", - "01C7 011F 0003 092A 0000 0000 0000 0000", - "0130 0258 0004 0725 0000 0000 0001 0D00", - "0111 00F8 000A 08EF 0000 0000 0000 4003", - "0112 00C3 0002 0A2D 0000 0000 0000 3FE8", - "0112 00A8 0002 09E5 0000 0000 0000 3FE8" - ] - }, - { - "File": { - "Name": "Scene 9, Room 1", - "Start": "02C06000", - "End": "02C12540", - "RemapStart": null + "Id": 14, + "Objects": [ + "002B", + "012B", + "00A2", + "000E", + "0009" + ], + "Actors": [ + "0125 0505 004C EDAB 0000 0000 0000 FF01", + "000D 05C0 004C EE8D 0000 0000 0000 0000", + "0111 067F 004C EF29 0000 0000 0000 7004", + "0111 0670 004C EDAA 0000 0000 0000 7E04", + "009D 05C2 004C EE32 0000 0000 0000 0000", + "000A 05C1 004C EE21 0000 8000 0000 5541" + ] + }, + { + "File": { + "Name": "Scene 1, Room 15", + "Start": "01FAF000", + "End": "01FB1850", + "RemapStart": null + }, + "Id": 15, + "Objects": [ + "002B", + "0190", + "0024", + "015C", + "00A8" + ], + "Actors": [ + "0095 F793 0027 FF1E 0000 8000 0000 0000", + "0037 F7F4 0168 FE40 0000 8000 0000 0000", + "0037 F85A 0168 FF08 0000 8000 0000 0000", + "0037 F922 0168 FEA0 0000 8000 0000 0000", + "0095 F920 0000 FF02 0000 8000 0000 8208", + "01D1 F792 0000 FE2A 0000 0000 0000 88FF", + "01D1 F792 0000 FE8E 0000 0000 0000 88FF", + "01D1 F792 0000 FEF2 0000 0000 0000 88FF", + "01D1 F7F6 0000 FEF2 0000 0000 0000 88FF", + "01D1 F7F6 0000 FE8E 0000 0000 0000 88FF", + "01D1 F7F6 0000 FE2A 0000 0000 0000 88FF", + "01D1 F85A 0000 FEF2 0000 0000 0000 88FF", + "01D1 F85A 0000 FE8E 0000 0000 0000 88FF", + "01D1 F85A 0000 FE2A 0000 0000 0000 88FF", + "01D1 F8BE 0000 FEF2 0000 0000 0000 88FF", + "01D1 F8BE 0000 FE8E 0000 0000 0000 88FF", + "01D1 F8BE 0000 FE2A 0000 0000 0000 88FF", + "01D1 F922 0000 FE8E 0000 0000 0000 88FF", + "01D1 F922 0000 FE2A 0000 0000 0000 88FF", + "01D1 F922 0000 FEF2 0000 0000 0000 88FF" + ] + }, + { + "File": { + "Name": "Scene 1, Room 16", + "Start": "01FB2000", + "End": "01FB7550", + "RemapStart": null + }, + "Id": 16, + "Objects": [ + "002B", + "001F", + "001B", + "0059", + "0038", + "0179", + "00A4", + "015C", + "0024" + ], + "Actors": [] + } + ], + "ColDelta": { + "IsLarger": true, + "Polys": [ + { + "Id": 778, + "Type": 14, + "Flags": 0 + }, + { + "Id": 779, + "Type": 14, + "Flags": 0 + }, + { + "Id": 798, + "Type": 15, + "Flags": 0 + }, + { + "Id": 799, + "Type": 15, + "Flags": 0 + }, + { + "Id": 800, + "Type": 15, + "Flags": 0 + }, + { + "Id": 801, + "Type": 15, + "Flags": 0 + }, + { + "Id": 802, + "Type": 15, + "Flags": 0 + }, + { + "Id": 803, + "Type": 15, + "Flags": 0 + }, + { + "Id": 804, + "Type": 15, + "Flags": 0 + }, + { + "Id": 805, + "Type": 15, + "Flags": 0 + }, + { + "Id": 806, + "Type": 15, + "Flags": 0 + }, + { + "Id": 807, + "Type": 15, + "Flags": 0 + }, + { + "Id": 808, + "Type": 15, + "Flags": 0 + }, + { + "Id": 809, + "Type": 15, + "Flags": 0 + }, + { + "Id": 810, + "Type": 15, + "Flags": 0 + }, + { + "Id": 811, + "Type": 15, + "Flags": 0 + }, + { + "Id": 812, + "Type": 15, + "Flags": 0 + }, + { + "Id": 813, + "Type": 15, + "Flags": 0 + }, + { + "Id": 814, + "Type": 15, + "Flags": 0 + }, + { + "Id": 815, + "Type": 15, + "Flags": 0 + }, + { + "Id": 816, + "Type": 16, + "Flags": 0 + }, + { + "Id": 820, + "Type": 15, + "Flags": 0 + }, + { + "Id": 821, + "Type": 15, + "Flags": 0 + }, + { + "Id": 822, + "Type": 17, + "Flags": 0 + }, + { + "Id": 848, + "Type": 18, + "Flags": 0 + }, + { + "Id": 849, + "Type": 18, + "Flags": 0 + }, + { + "Id": 978, + "Type": 19, + "Flags": 0 + }, + { + "Id": 999, + "Type": 14, + "Flags": 0 + }, + { + "Id": 1000, + "Type": 14, + "Flags": 0 + }, + { + "Id": 1043, + "Type": 14, + "Flags": 0 + }, + { + "Id": 1044, + "Type": 14, + "Flags": 0 + }, + { + "Id": 1069, + "Type": 14, + "Flags": 0 + }, + { + "Id": 1070, + "Type": 14, + "Flags": 0 + }, + { + "Id": 1199, + "Type": 20, + "Flags": 0 + }, + { + "Id": 1200, + "Type": 20, + "Flags": 0 + }, + { + "Id": 1245, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1246, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1247, + "Type": 22, + "Flags": 0 + }, + { + "Id": 1248, + "Type": 22, + "Flags": 0 + }, + { + "Id": 1249, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1250, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1251, + "Type": 22, + "Flags": 0 + }, + { + "Id": 1252, + "Type": 22, + "Flags": 0 + }, + { + "Id": 1300, + "Type": 23, + "Flags": 0 + }, + { + "Id": 1301, + "Type": 23, + "Flags": 0 + }, + { + "Id": 1308, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1309, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1310, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1311, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1312, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1313, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1314, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1315, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1316, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1317, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1318, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1319, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1320, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1321, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1322, + "Type": 25, + "Flags": 0 + }, + { + "Id": 1323, + "Type": 25, + "Flags": 0 + }, + { + "Id": 1324, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1325, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1326, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1327, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1328, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1329, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1332, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1333, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1340, + "Type": 25, + "Flags": 0 + }, + { + "Id": 1341, + "Type": 25, + "Flags": 0 + }, + { + "Id": 1387, + "Type": 26, + "Flags": 0 + }, + { + "Id": 1388, + "Type": 26, + "Flags": 0 + }, + { + "Id": 1389, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1390, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1397, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1398, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1409, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1410, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1411, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1412, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1415, + "Type": 27, + "Flags": 0 + }, + { + "Id": 1416, + "Type": 27, + "Flags": 0 + }, + { + "Id": 1431, + "Type": 28, + "Flags": 0 + }, + { + "Id": 1432, + "Type": 28, + "Flags": 0 + }, + { + "Id": 1433, + "Type": 28, + "Flags": 0 + }, + { + "Id": 1434, + "Type": 28, + "Flags": 0 + }, + { + "Id": 1455, + "Type": 29, + "Flags": 0 + }, + { + "Id": 1456, + "Type": 29, + "Flags": 0 + }, + { + "Id": 1470, + "Type": 30, + "Flags": 0 + }, + { + "Id": 1471, + "Type": 30, + "Flags": 0 + }, + { + "Id": 1472, + "Type": 30, + "Flags": 0 + }, + { + "Id": 1473, + "Type": 30, + "Flags": 0 + }, + { + "Id": 1476, + "Type": 30, + "Flags": 0 + }, + { + "Id": 1477, + "Type": 30, + "Flags": 0 + }, + { + "Id": 1478, + "Type": 30, + "Flags": 0 + }, + { + "Id": 1486, + "Type": 30, + "Flags": 0 + }, + { + "Id": 1487, + "Type": 30, + "Flags": 0 + }, + { + "Id": 1488, + "Type": 30, + "Flags": 0 + }, + { + "Id": 1491, + "Type": 30, + "Flags": 0 + }, + { + "Id": 1492, + "Type": 30, + "Flags": 0 + }, + { + "Id": 1493, + "Type": 30, + "Flags": 0 + }, + { + "Id": 1494, + "Type": 30, + "Flags": 0 + }, + { + "Id": 1495, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1496, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1513, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1514, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1515, + "Type": 30, + "Flags": 0 + }, + { + "Id": 1516, + "Type": 30, + "Flags": 0 + }, + { + "Id": 1517, + "Type": 30, + "Flags": 0 + }, + { + "Id": 1518, + "Type": 30, + "Flags": 0 + }, + { + "Id": 1521, + "Type": 30, + "Flags": 0 + }, + { + "Id": 1522, + "Type": 30, + "Flags": 0 + }, + { + "Id": 1523, + "Type": 30, + "Flags": 0 + }, + { + "Id": 1531, + "Type": 30, + "Flags": 0 + }, + { + "Id": 1532, + "Type": 30, + "Flags": 0 + }, + { + "Id": 1533, + "Type": 30, + "Flags": 0 + }, + { + "Id": 1538, + "Type": 32, + "Flags": 0 + }, + { + "Id": 1539, + "Type": 32, + "Flags": 0 + }, + { + "Id": 1540, + "Type": 28, + "Flags": 0 + }, + { + "Id": 1541, + "Type": 28, + "Flags": 0 + }, + { + "Id": 1550, + "Type": 32, + "Flags": 0 + }, + { + "Id": 1551, + "Type": 32, + "Flags": 0 + }, + { + "Id": 1552, + "Type": 32, + "Flags": 0 + }, + { + "Id": 1553, + "Type": 32, + "Flags": 0 + }, + { + "Id": 1554, + "Type": 32, + "Flags": 0 + }, + { + "Id": 1563, + "Type": 28, + "Flags": 0 + }, + { + "Id": 1564, + "Type": 28, + "Flags": 0 + }, + { + "Id": 1565, + "Type": 32, + "Flags": 0 + }, + { + "Id": 1566, + "Type": 32, + "Flags": 0 + }, + { + "Id": 1567, + "Type": 32, + "Flags": 0 + }, + { + "Id": 1568, + "Type": 32, + "Flags": 0 + }, + { + "Id": 1569, + "Type": 32, + "Flags": 0 + }, + { + "Id": 1605, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1606, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1607, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1608, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1609, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1610, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1611, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1612, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1613, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1614, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1615, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1616, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1617, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1618, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1619, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1620, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1621, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1622, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1623, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1624, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1625, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1626, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1627, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1628, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1629, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1630, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1631, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1632, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1633, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1634, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1635, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1636, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1637, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1638, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1639, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1640, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1641, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1642, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1643, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1644, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1645, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1646, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1647, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1648, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1649, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1650, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1651, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1652, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1653, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1654, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1655, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1656, + "Type": 29, + "Flags": 0 + }, + { + "Id": 1657, + "Type": 29, + "Flags": 0 + }, + { + "Id": 1680, + "Type": 35, + "Flags": 0 + }, + { + "Id": 1681, + "Type": 35, + "Flags": 0 + }, + { + "Id": 1682, + "Type": 35, + "Flags": 0 + }, + { + "Id": 1683, + "Type": 35, + "Flags": 0 + }, + { + "Id": 1684, + "Type": 36, + "Flags": 0 + }, + { + "Id": 1722, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1723, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1724, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1725, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1740, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1741, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1742, + "Type": 37, + "Flags": 0 + }, + { + "Id": 1743, + "Type": 37, + "Flags": 0 + }, + { + "Id": 1763, + "Type": 38, + "Flags": 0 + }, + { + "Id": 1764, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1765, + "Type": 38, + "Flags": 0 + }, + { + "Id": 1766, + "Type": 38, + "Flags": 0 + }, + { + "Id": 1787, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1788, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1791, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1792, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1797, + "Type": 37, + "Flags": 0 + }, + { + "Id": 1798, + "Type": 37, + "Flags": 0 + }, + { + "Id": 1801, + "Type": 38, + "Flags": 0 + }, + { + "Id": 1802, + "Type": 38, + "Flags": 0 + }, + { + "Id": 1803, + "Type": 38, + "Flags": 0 + }, + { + "Id": 1804, + "Type": 38, + "Flags": 0 + }, + { + "Id": 1805, + "Type": 38, + "Flags": 0 + }, + { + "Id": 1806, + "Type": 38, + "Flags": 0 + }, + { + "Id": 1807, + "Type": 38, + "Flags": 0 + }, + { + "Id": 1808, + "Type": 38, + "Flags": 0 + }, + { + "Id": 1836, + "Type": 38, + "Flags": 0 + }, + { + "Id": 1837, + "Type": 38, + "Flags": 0 + }, + { + "Id": 1838, + "Type": 38, + "Flags": 0 + }, + { + "Id": 1839, + "Type": 38, + "Flags": 0 + }, + { + "Id": 1840, + "Type": 38, + "Flags": 0 + }, + { + "Id": 1841, + "Type": 38, + "Flags": 0 + }, + { + "Id": 1842, + "Type": 38, + "Flags": 0 + }, + { + "Id": 1843, + "Type": 38, + "Flags": 0 + }, + { + "Id": 1871, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1872, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1873, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1874, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1875, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1876, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1877, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1892, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1893, + "Type": 37, + "Flags": 0 + }, + { + "Id": 1894, + "Type": 37, + "Flags": 0 + }, + { + "Id": 1915, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1916, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1927, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1928, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1929, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1930, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1931, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1932, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1933, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1934, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1965, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1966, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1967, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1968, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1969, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1970, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1971, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1972, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1973, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1974, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1975, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1976, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1977, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1978, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1979, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1980, + "Type": 24, + "Flags": 0 + }, + { + "Id": 2037, + "Type": 37, + "Flags": 0 + }, + { + "Id": 2038, + "Type": 37, + "Flags": 0 + }, + { + "Id": 2041, + "Type": 37, + "Flags": 0 + }, + { + "Id": 2042, + "Type": 37, + "Flags": 0 + }, + { + "Id": 2059, + "Type": 39, + "Flags": 0 + }, + { + "Id": 2060, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2061, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2062, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2063, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2064, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2065, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2066, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2067, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2068, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2069, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2070, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2071, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2072, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2073, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2074, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2075, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2076, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2077, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2078, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2079, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2080, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2081, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2082, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2083, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2084, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2085, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2086, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2087, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2088, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2089, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2090, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2091, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2092, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2093, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2094, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2095, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2096, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2097, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2098, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2099, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2100, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2101, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2102, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2103, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2104, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2105, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2106, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2107, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2108, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2109, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2110, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2111, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2112, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2113, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2114, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2115, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2116, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2117, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2118, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2119, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2120, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2121, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2122, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2123, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2124, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2125, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2126, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2127, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2128, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2129, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2130, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2131, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2132, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2133, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2134, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2135, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2136, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2144, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2145, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2146, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2147, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2148, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2149, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2150, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2151, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2152, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2153, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2193, + "Type": 24, + "Flags": 0 + }, + { + "Id": 2194, + "Type": 24, + "Flags": 0 + }, + { + "Id": 2195, + "Type": 24, + "Flags": 0 + }, + { + "Id": 2196, + "Type": 24, + "Flags": 0 + }, + { + "Id": 2200, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2201, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2202, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2203, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2204, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2205, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2206, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2207, + "Type": 35, + "Flags": 0 + }, + { + "Id": 2216, + "Type": 24, + "Flags": 0 + }, + { + "Id": 2217, + "Type": 24, + "Flags": 0 + }, + { + "Id": 2218, + "Type": 24, + "Flags": 0 + }, + { + "Id": 2219, + "Type": 24, + "Flags": 0 + }, + { + "Id": 2242, + "Type": 40, + "Flags": 0 + }, + { + "Id": 2243, + "Type": 40, + "Flags": 0 + }, + { + "Id": 2470, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2471, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2480, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2481, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2531, + "Type": 41, + "Flags": 0 + }, + { + "Id": 2532, + "Type": 41, + "Flags": 0 + }, + { + "Id": 2533, + "Type": 41, + "Flags": 0 + }, + { + "Id": 2534, + "Type": 41, + "Flags": 0 + }, + { + "Id": 2535, + "Type": 41, + "Flags": 0 + }, + { + "Id": 2536, + "Type": 41, + "Flags": 0 + }, + { + "Id": 2537, + "Type": 41, + "Flags": 0 + }, + { + "Id": 2538, + "Type": 41, + "Flags": 0 + }, + { + "Id": 2539, + "Type": 41, + "Flags": 0 + }, + { + "Id": 2550, + "Type": 25, + "Flags": 0 + }, + { + "Id": 2551, + "Type": 25, + "Flags": 0 + }, + { + "Id": 2566, + "Type": 41, + "Flags": 0 + }, + { + "Id": 2567, + "Type": 41, + "Flags": 0 + }, + { + "Id": 2568, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2569, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2576, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2577, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2578, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2579, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2580, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2581, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2582, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2583, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2584, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2585, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2586, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2587, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2588, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2589, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2590, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2591, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2592, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2593, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2594, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2595, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2596, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2597, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2598, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2599, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2600, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2601, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2602, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2603, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2604, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2605, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2606, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2607, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2608, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2609, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2610, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2611, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2612, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2613, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2614, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2615, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2616, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2617, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2618, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2619, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2620, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2621, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2622, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2623, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2624, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2625, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2626, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2627, + "Type": 38, + "Flags": 0 + }, + { + "Id": 2628, + "Type": 37, + "Flags": 0 + }, + { + "Id": 2629, + "Type": 37, + "Flags": 0 + }, + { + "Id": 2630, + "Type": 32, + "Flags": 0 + }, + { + "Id": 2631, + "Type": 32, + "Flags": 0 + }, + { + "Id": 2632, + "Type": 32, + "Flags": 0 + }, + { + "Id": 2633, + "Type": 32, + "Flags": 0 + }, + { + "Id": 2642, + "Type": 32, + "Flags": 0 + }, + { + "Id": 2643, + "Type": 32, + "Flags": 0 + }, + { + "Id": 2644, + "Type": 32, + "Flags": 0 + }, + { + "Id": 2645, + "Type": 32, + "Flags": 0 + }, + { + "Id": 2646, + "Type": 32, + "Flags": 0 + }, + { + "Id": 2647, + "Type": 32, + "Flags": 0 + }, + { + "Id": 2648, + "Type": 32, + "Flags": 0 + }, + { + "Id": 2649, + "Type": 32, + "Flags": 0 + }, + { + "Id": 2650, + "Type": 32, + "Flags": 0 + }, + { + "Id": 2651, + "Type": 32, + "Flags": 0 + }, + { + "Id": 2652, + "Type": 32, + "Flags": 0 + }, + { + "Id": 2653, + "Type": 32, + "Flags": 0 + }, + { + "Id": 2654, + "Type": 32, + "Flags": 0 + }, + { + "Id": 2655, + "Type": 32, + "Flags": 0 + }, + { + "Id": 2656, + "Type": 32, + "Flags": 0 + }, + { + "Id": 2657, + "Type": 32, + "Flags": 0 + }, + { + "Id": 2702, + "Type": 32, + "Flags": 0 + }, + { + "Id": 2703, + "Type": 32, + "Flags": 0 + }, + { + "Id": 2704, + "Type": 32, + "Flags": 0 + }, + { + "Id": 2705, + "Type": 32, + "Flags": 0 + }, + { + "Id": 2706, + "Type": 32, + "Flags": 0 + }, + { + "Id": 2707, + "Type": 32, + "Flags": 0 + }, + { + "Id": 2708, + "Type": 32, + "Flags": 0 + }, + { + "Id": 2709, + "Type": 32, + "Flags": 0 + }, + { + "Id": 2736, + "Type": 42, + "Flags": 2 + }, + { + "Id": 2737, + "Type": 42, + "Flags": 2 + }, + { + "Id": 2738, + "Type": 21, + "Flags": 2 + }, + { + "Id": 2739, + "Type": 21, + "Flags": 2 + }, + { + "Id": 2762, + "Type": 32, + "Flags": 0 + }, + { + "Id": 2763, + "Type": 32, + "Flags": 0 + }, + { + "Id": 2764, + "Type": 43, + "Flags": 0 + }, + { + "Id": 2765, + "Type": 43, + "Flags": 0 + }, + { + "Id": 2766, + "Type": 43, + "Flags": 0 + }, + { + "Id": 2767, + "Type": 43, + "Flags": 0 + }, + { + "Id": 2768, + "Type": 44, + "Flags": 0 + }, + { + "Id": 2769, + "Type": 44, + "Flags": 0 + }, + { + "Id": 2770, + "Type": 44, + "Flags": 0 + }, + { + "Id": 2771, + "Type": 44, + "Flags": 0 + }, + { + "Id": 2772, + "Type": 44, + "Flags": 0 + }, + { + "Id": 2773, + "Type": 44, + "Flags": 0 + }, + { + "Id": 2774, + "Type": 44, + "Flags": 0 + }, + { + "Id": 2775, + "Type": 44, + "Flags": 0 + }, + { + "Id": 2776, + "Type": 43, + "Flags": 0 + }, + { + "Id": 2777, + "Type": 43, + "Flags": 0 + }, + { + "Id": 2778, + "Type": 43, + "Flags": 0 + }, + { + "Id": 2779, + "Type": 43, + "Flags": 0 + }, + { + "Id": 2780, + "Type": 44, + "Flags": 0 + }, + { + "Id": 2781, + "Type": 44, + "Flags": 0 + }, + { + "Id": 2834, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2835, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2848, + "Type": 46, + "Flags": 0 + }, + { + "Id": 2849, + "Type": 46, + "Flags": 0 + }, + { + "Id": 2856, + "Type": 46, + "Flags": 0 + }, + { + "Id": 2857, + "Type": 46, + "Flags": 0 + }, + { + "Id": 2862, + "Type": 46, + "Flags": 0 + }, + { + "Id": 2863, + "Type": 46, + "Flags": 0 + }, + { + "Id": 2864, + "Type": 46, + "Flags": 0 + }, + { + "Id": 2865, + "Type": 46, + "Flags": 0 + }, + { + "Id": 2866, + "Type": 46, + "Flags": 0 + }, + { + "Id": 2867, + "Type": 46, + "Flags": 0 + }, + { + "Id": 2868, + "Type": 46, + "Flags": 0 + }, + { + "Id": 2869, + "Type": 46, + "Flags": 0 + }, + { + "Id": 2870, + "Type": 46, + "Flags": 0 + }, + { + "Id": 2871, + "Type": 46, + "Flags": 0 + }, + { + "Id": 2872, + "Type": 46, + "Flags": 0 + }, + { + "Id": 2873, + "Type": 46, + "Flags": 0 + }, + { + "Id": 2905, + "Type": 47, + "Flags": 0 + }, + { + "Id": 2908, + "Type": 46, + "Flags": 0 + }, + { + "Id": 2909, + "Type": 46, + "Flags": 0 + }, + { + "Id": 2914, + "Type": 46, + "Flags": 0 + }, + { + "Id": 2915, + "Type": 46, + "Flags": 0 + }, + { + "Id": 2916, + "Type": 46, + "Flags": 0 + }, + { + "Id": 2917, + "Type": 46, + "Flags": 0 + }, + { + "Id": 2918, + "Type": 44, + "Flags": 0 + }, + { + "Id": 2919, + "Type": 44, + "Flags": 0 + }, + { + "Id": 2922, + "Type": 29, + "Flags": 0 + }, + { + "Id": 2923, + "Type": 29, + "Flags": 0 + }, + { + "Id": 2924, + "Type": 43, + "Flags": 0 + }, + { + "Id": 2925, + "Type": 43, + "Flags": 0 + }, + { + "Id": 2926, + "Type": 43, + "Flags": 0 + }, + { + "Id": 2927, + "Type": 43, + "Flags": 0 + }, + { + "Id": 2928, + "Type": 43, + "Flags": 0 + }, + { + "Id": 2929, + "Type": 43, + "Flags": 0 + }, + { + "Id": 2960, + "Type": 43, + "Flags": 0 + }, + { + "Id": 2961, + "Type": 43, + "Flags": 0 + }, + { + "Id": 2967, + "Type": 43, + "Flags": 0 + }, + { + "Id": 2968, + "Type": 43, + "Flags": 0 + }, + { + "Id": 2969, + "Type": 43, + "Flags": 0 + }, + { + "Id": 2970, + "Type": 43, + "Flags": 0 + }, + { + "Id": 2971, + "Type": 44, + "Flags": 0 + }, + { + "Id": 2972, + "Type": 44, + "Flags": 0 + }, + { + "Id": 2974, + "Type": 44, + "Flags": 0 + }, + { + "Id": 2975, + "Type": 44, + "Flags": 0 + }, + { + "Id": 2976, + "Type": 44, + "Flags": 0 + }, + { + "Id": 2977, + "Type": 44, + "Flags": 0 + }, + { + "Id": 2978, + "Type": 44, + "Flags": 0 + }, + { + "Id": 2979, + "Type": 44, + "Flags": 0 + }, + { + "Id": 2993, + "Type": 44, + "Flags": 0 + }, + { + "Id": 2994, + "Type": 44, + "Flags": 0 + }, + { + "Id": 3010, + "Type": 28, + "Flags": 0 + }, + { + "Id": 3011, + "Type": 28, + "Flags": 0 + }, + { + "Id": 3022, + "Type": 48, + "Flags": 0 + }, + { + "Id": 3023, + "Type": 48, + "Flags": 0 + }, + { + "Id": 3026, + "Type": 46, + "Flags": 0 + }, + { + "Id": 3027, + "Type": 46, + "Flags": 0 + }, + { + "Id": 3030, + "Type": 46, + "Flags": 0 + }, + { + "Id": 3031, + "Type": 46, + "Flags": 0 + }, + { + "Id": 3036, + "Type": 46, + "Flags": 0 + }, + { + "Id": 3037, + "Type": 46, + "Flags": 0 + }, + { + "Id": 3046, + "Type": 46, + "Flags": 0 + }, + { + "Id": 3047, + "Type": 46, + "Flags": 0 + }, + { + "Id": 3054, + "Type": 46, + "Flags": 0 + }, + { + "Id": 3055, + "Type": 46, + "Flags": 0 + }, + { + "Id": 3056, + "Type": 46, + "Flags": 0 + }, + { + "Id": 3057, + "Type": 46, + "Flags": 0 + }, + { + "Id": 3058, + "Type": 46, + "Flags": 0 + }, + { + "Id": 3059, + "Type": 46, + "Flags": 0 + }, + { + "Id": 3060, + "Type": 46, + "Flags": 0 + }, + { + "Id": 3061, + "Type": 46, + "Flags": 0 + }, + { + "Id": 3105, + "Type": 43, + "Flags": 0 + }, + { + "Id": 3106, + "Type": 43, + "Flags": 0 + }, + { + "Id": 3107, + "Type": 43, + "Flags": 0 + }, + { + "Id": 3108, + "Type": 43, + "Flags": 0 + }, + { + "Id": 3114, + "Type": 49, + "Flags": 0 + }, + { + "Id": 3115, + "Type": 49, + "Flags": 0 + }, + { + "Id": 3138, + "Type": 14, + "Flags": 0 + }, + { + "Id": 3139, + "Type": 14, + "Flags": 0 + }, + { + "Id": 3163, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3164, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3169, + "Type": 51, + "Flags": 0 + }, + { + "Id": 3170, + "Type": 51, + "Flags": 0 + }, + { + "Id": 3188, + "Type": 49, + "Flags": 0 + }, + { + "Id": 3189, + "Type": 49, + "Flags": 0 + }, + { + "Id": 3190, + "Type": 49, + "Flags": 0 + }, + { + "Id": 3227, + "Type": 49, + "Flags": 0 + }, + { + "Id": 3228, + "Type": 49, + "Flags": 0 + }, + { + "Id": 3229, + "Type": 49, + "Flags": 0 + }, + { + "Id": 3230, + "Type": 49, + "Flags": 0 + }, + { + "Id": 3231, + "Type": 49, + "Flags": 0 + }, + { + "Id": 3239, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3240, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3241, + "Type": 52, + "Flags": 0 + }, + { + "Id": 3242, + "Type": 52, + "Flags": 0 + }, + { + "Id": 3315, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3316, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3317, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3318, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3319, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3320, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3321, + "Type": 42, + "Flags": 2 + }, + { + "Id": 3322, + "Type": 42, + "Flags": 2 + }, + { + "Id": 3323, + "Type": 21, + "Flags": 2 + }, + { + "Id": 3324, + "Type": 21, + "Flags": 2 + }, + { + "Id": 3325, + "Type": 42, + "Flags": 2 + }, + { + "Id": 3326, + "Type": 42, + "Flags": 2 + }, + { + "Id": 3327, + "Type": 21, + "Flags": 2 + }, + { + "Id": 3328, + "Type": 21, + "Flags": 2 + }, + { + "Id": 3329, + "Type": 47, + "Flags": 0 + }, + { + "Id": 3330, + "Type": 47, + "Flags": 0 + }, + { + "Id": 3331, + "Type": 47, + "Flags": 0 + }, + { + "Id": 3332, + "Type": 47, + "Flags": 0 + }, + { + "Id": 3333, + "Type": 47, + "Flags": 0 + }, + { + "Id": 3334, + "Type": 47, + "Flags": 0 + }, + { + "Id": 3360, + "Type": 53, + "Flags": 0 + }, + { + "Id": 3361, + "Type": 53, + "Flags": 0 + }, + { + "Id": 3362, + "Type": 53, + "Flags": 0 + }, + { + "Id": 3363, + "Type": 53, + "Flags": 0 + }, + { + "Id": 3379, + "Type": 53, + "Flags": 0 + }, + { + "Id": 3380, + "Type": 53, + "Flags": 0 + }, + { + "Id": 3381, + "Type": 53, + "Flags": 0 + }, + { + "Id": 3382, + "Type": 53, + "Flags": 0 + }, + { + "Id": 3391, + "Type": 30, + "Flags": 0 + }, + { + "Id": 3392, + "Type": 30, + "Flags": 0 + }, + { + "Id": 3417, + "Type": 28, + "Flags": 0 + }, + { + "Id": 3418, + "Type": 28, + "Flags": 0 + }, + { + "Id": 3419, + "Type": 28, + "Flags": 0 + }, + { + "Id": 3420, + "Type": 28, + "Flags": 0 + }, + { + "Id": 3421, + "Type": 28, + "Flags": 0 + }, + { + "Id": 3422, + "Type": 28, + "Flags": 0 + }, + { + "Id": 3423, + "Type": 28, + "Flags": 0 + }, + { + "Id": 3424, + "Type": 28, + "Flags": 0 + }, + { + "Id": 3429, + "Type": 28, + "Flags": 0 + }, + { + "Id": 3430, + "Type": 28, + "Flags": 0 + }, + { + "Id": 3437, + "Type": 28, + "Flags": 0 + }, + { + "Id": 3438, + "Type": 28, + "Flags": 0 + }, + { + "Id": 3455, + "Type": 32, + "Flags": 0 + }, + { + "Id": 3456, + "Type": 32, + "Flags": 0 + }, + { + "Id": 3499, + "Type": 47, + "Flags": 0 + }, + { + "Id": 3500, + "Type": 47, + "Flags": 0 + }, + { + "Id": 3501, + "Type": 47, + "Flags": 0 + }, + { + "Id": 3502, + "Type": 47, + "Flags": 0 + }, + { + "Id": 3503, + "Type": 47, + "Flags": 0 + }, + { + "Id": 3504, + "Type": 47, + "Flags": 0 + }, + { + "Id": 3505, + "Type": 47, + "Flags": 0 + }, + { + "Id": 3506, + "Type": 47, + "Flags": 0 + }, + { + "Id": 3507, + "Type": 30, + "Flags": 0 + }, + { + "Id": 3508, + "Type": 30, + "Flags": 0 + }, + { + "Id": 3529, + "Type": 53, + "Flags": 0 + }, + { + "Id": 3530, + "Type": 53, + "Flags": 0 + }, + { + "Id": 3531, + "Type": 53, + "Flags": 0 + }, + { + "Id": 3532, + "Type": 53, + "Flags": 0 + }, + { + "Id": 3543, + "Type": 53, + "Flags": 0 + }, + { + "Id": 3544, + "Type": 53, + "Flags": 0 + }, + { + "Id": 3545, + "Type": 53, + "Flags": 0 + }, + { + "Id": 3552, + "Type": 28, + "Flags": 0 + }, + { + "Id": 3553, + "Type": 28, + "Flags": 0 + }, + { + "Id": 3560, + "Type": 28, + "Flags": 0 + }, + { + "Id": 3561, + "Type": 28, + "Flags": 0 + }, + { + "Id": 3566, + "Type": 53, + "Flags": 0 + }, + { + "Id": 3569, + "Type": 29, + "Flags": 0 + }, + { + "Id": 3570, + "Type": 29, + "Flags": 0 + }, + { + "Id": 3605, + "Type": 43, + "Flags": 0 + }, + { + "Id": 3606, + "Type": 43, + "Flags": 0 + }, + { + "Id": 3611, + "Type": 28, + "Flags": 0 + }, + { + "Id": 3612, + "Type": 28, + "Flags": 0 + }, + { + "Id": 3623, + "Type": 28, + "Flags": 0 + }, + { + "Id": 3624, + "Type": 28, + "Flags": 0 + }, + { + "Id": 3635, + "Type": 43, + "Flags": 0 + }, + { + "Id": 3636, + "Type": 43, + "Flags": 0 + }, + { + "Id": 3659, + "Type": 32, + "Flags": 0 + }, + { + "Id": 3660, + "Type": 32, + "Flags": 0 + }, + { + "Id": 3661, + "Type": 54, + "Flags": 0 + }, + { + "Id": 3662, + "Type": 54, + "Flags": 0 + } + ], + "PolyTypes": [ + { + "Id": 10, + "High": 1, + "Low": 14272 + }, + { + "Id": 12, + "High": 2, + "Low": 30656 + }, + { + "Id": 13, + "High": 2, + "Low": 14272 + }, + { + "Id": 14, + "High": 3, + "Low": 14272 + }, + { + "Id": 15, + "High": 16385, + "Low": 30663 + }, + { + "Id": 16, + "High": 16384, + "Low": 22464 + }, + { + "Id": 17, + "High": 16384, + "Low": 22471 + }, + { + "Id": 18, + "High": 1, + "Low": 30666 + }, + { + "Id": 19, + "High": 3, + "Low": 30656 + }, + { + "Id": 20, + "High": 258, + "Low": 800704 + }, + { + "Id": 21, + "High": 4194304, + "Low": 151690 + }, + { + "Id": 22, + "High": 6291456, + "Low": 20618 + }, + { + "Id": 23, + "High": 2, + "Low": 12362 + }, + { + "Id": 24, + "High": 1, + "Low": 20544 + }, + { + "Id": 25, + "High": 2, + "Low": 12352 + }, + { + "Id": 26, + "High": 1, + "Low": 12352 + }, + { + "Id": 27, + "High": 2, + "Low": 20544 + }, + { + "Id": 28, + "High": 2, + "Low": 12416 + }, + { + "Id": 29, + "High": 0, + "Low": 20610 + }, + { + "Id": 30, + "High": 2, + "Low": 20618 + }, + { + "Id": 31, + "High": 2, + "Low": 20610 + }, + { + "Id": 32, + "High": 1, + "Low": 20608 + }, + { + "Id": 33, + "High": 8388608, + "Low": 20618 + }, + { + "Id": 34, + "High": 0, + "Low": 20618 + }, + { + "Id": 35, + "High": 16385, + "Low": 20736 + }, + { + "Id": 36, + "High": 16384, + "Low": 20736 + }, + { + "Id": 37, + "High": 0, + "Low": 20544 + }, + { + "Id": 38, + "High": 1, + "Low": 20546 + }, + { + "Id": 39, + "High": 16385, + "Low": 20743 + }, + { + "Id": 40, + "High": 3, + "Low": 20544 + }, + { + "Id": 41, + "High": 2, + "Low": 12354 + }, + { + "Id": 42, + "High": 6291456, + "Low": 151690 + }, + { + "Id": 43, + "High": 1, + "Low": 12416 + }, + { + "Id": 44, + "High": 1, + "Low": 12418 + }, + { + "Id": 45, + "High": 0, + "Low": 12418 + }, + { + "Id": 46, + "High": 2, + "Low": 12418 + }, + { + "Id": 47, + "High": 2, + "Low": 20608 + }, + { + "Id": 48, + "High": 0, + "Low": 12416 + }, + { + "Id": 49, + "High": 3, + "Low": 22464 + }, + { + "Id": 50, + "High": 1, + "Low": 22464 + }, + { + "Id": 51, + "High": 2, + "Low": 14282 + }, + { + "Id": 52, + "High": 4, + "Low": 22464 + }, + { + "Id": 53, + "High": 3, + "Low": 20608 + }, + { + "Id": 54, + "High": 512, + "Low": 12448 + } + ], + "Cams": [ + { + "Data": 0, + "PositionIndex": -1 + }, + { + "Data": 4063232, + "PositionIndex": -1 + }, + { + "Data": 196608, + "PositionIndex": -1 + }, + { + "Data": 262144, + "PositionIndex": -1 + }, + { + "Data": 3801088, + "PositionIndex": -1 + } + ] + } + }, + { + "File": { + "Name": "Scene 2", + "Start": "0273E000", + "End": "027537C0", + "RemapStart": null + }, + "Id": 2, + "TActors": [ + "0FFF 05FF 002E 0550 FF10 F7B9 0000 0094", + "01FF 00FF 002E 0000 FF10 FB99 0000 0095", + "02FF 01FF 002E 0000 FEFC F675 0000 0099", + "04FF 06FF 002E FAB0 00A0 F714 8000 00A0", + "07FF 02FF 002E 0000 FEFC F071 0000 0093", + "07FF 0CFF 002E FD6C FEFC EBC1 8000 003F", + "08FF 07FF 002E 0000 FEFC EB49 0000 008D", + "07FF 0BFF 002E 0294 FEFC EBC1 8000 0081", + "01FF 04FF 002E FD94 00A0 F959 C000 0092", + "05FF 01FF 002E 026C FF10 F959 C000 003F", + "0AFF 07FF 002E FBDC FEFC EDB5 4000 003F", + "09FF 07FF 002E 0424 FEFC EDB5 C000 003F", + "0EFF 03FF 002E 01CC FBF7 F369 C000 00BC", + "03FF 0DFF 002E FDBB FBF7 F54A DD28 00BB", + "0EFF 01FF 002E 0139 FB7F F959 C000 003F", + "02FF 03FF 0023 FFD8 FD82 F3F5 4000 00BF", + "02FF 03FF 0023 0028 FD82 F305 4000 00BF", + "02FF 03FF 0023 FEFC FD82 F2B5 4000 00BF", + "02FF 03FF 0023 FED4 FD82 F4D1 4000 00BF", + "02FF 03FF 0023 00DC FD82 F37D 4000 00BF", + "02FF 03FF 0023 FFC4 FD82 F229 4000 00BF", + "03FF 06FF 002E FC17 FC59 F2F1 C000 009F" + ], + "Paths": [], + "Rooms": [ + { + "File": { + "Name": "Scene 2, Room 0", + "Start": "02754000", + "End": "02758070", + "RemapStart": null + }, + "Id": 0, + "Objects": [ + "0096", + "018B", + "012B", + "000E", + "0163", + "0007", + "0012", + "013A", + "0190", + "00A8", + "0031" + ], + "Actors": [ + "000E FFFE FEB6 FF20 0000 0000 0000 FF00", + "0125 00D5 FEB6 FE72 0000 0000 0000 FF01", + "0125 FF25 FEAC FFC3 0000 0000 0000 FF01", + "01C6 00E8 FF2D FDC3 0000 E666 0000 0000", + "01C6 FF20 FF2D FDBB 0000 199A 0000 0000", + "00E6 FFFE FEAB FECF 0000 0000 0000 3D02", + "0127 FFFF FEAC FED8 0000 0000 0000 0000", + "002D FF25 FF10 FE68 0000 0000 0000 FFFF", + "002D FEF7 FF9D FE99 0000 0000 0000 FFFF", + "002D FF05 FF42 FEF5 0000 0000 0000 FFFF", + "0173 00C5 FF4A FDF1 0000 0019 0001 3F00", + "0173 FF35 FF4A FDE7 0000 0016 0001 3F00", + "000A 00C8 FF10 FF10 0000 4000 0018 8045", + "0112 FF37 FF44 FDE6 0000 0000 0004 1915", + "0112 00C7 FF44 FDF4 0000 0000 0004 1918", + "0111 FF49 FEB6 FE3F 0000 0000 0000 7804", + "0111 00CA FEAC FFC2 0000 0000 0000 640C", + "000A 0000 FEAC FF91 0000 0000 003D B823" + ] + }, + { + "File": { + "Name": "Scene 2, Room 1", + "Start": "02759000", + "End": "0275EE90", + "RemapStart": "27581B0" + }, + "Id": 1, + "Objects": [ + "0096", + "018B", + "012B", + "000E", + "0021", + "0026", + "00D5", + "00AC", + "00B7", + "0059", + "013A" + ], + "Actors": [ + "0015 FE7A F9EF F961 0000 0000 0000 0100", + "0015 FE19 FA2E F95B 0000 0000 0000 0200", + "0015 FDDB FA80 F953 0000 0000 0000 0300", + "0034 0092 FD3C F904 0000 0000 0000 FFFF", + "0034 FF7A FFB8 F9B2 0000 0000 0000 FFFF", + "00B6 FF54 FEAC F9EF 0000 238E 0000 01FF", + "00B6 FF17 FEB6 F955 0000 0000 0000 01FF", + "00B6 FF4F FEAC F8BE 0000 E4FA 0000 01FF", + "0015 FF27 FEBA F9AC 0000 0000 0000 2703", + "0015 FF32 FEB2 F8FB 0000 0000 0000 2803", + "01C6 FEF2 F9F0 F954 DBBC 6666 EE39 0000", + "01C6 0115 FF06 F8DC 0000 D1C7 0000 0000", + "00C8 0000 FCFD F959 0000 0000 0000 FF01", + "00E6 FED2 F9F0 F967 0000 0000 0000 0F03", + "00E6 FD9C FB2E F8D4 0000 0000 0000 1902", + "00C8 0078 0050 F9D1 0000 0000 0000 1D03", + "018C FF89 FB22 F965 0000 0000 0000 0000", + "0173 00D8 FF27 F8F7 0000 0005 0001 3F00", + "000A 00BF FB2F F907 0000 9111 0000 5042", + "0112 00D8 FF22 F8F7 0000 D1C7 0004 1904", + "015F 0155 FB2F F958 0005 0005 0005 15C6", + "0111 FD4F FB2F F8F8 0000 0000 0000 7208", + "0111 FD4B FB2F F9B2 0000 0000 0000 740C", + "011B 01E4 FEC0 F959 001E 000C 0000 3631", + "000A FD6C FB2F F952 0000 C000 000F B800", + "000A 0161 FF24 F98B 0000 0000 0004 8907", + "00DF 01E4 FEC0 F959 0000 C000 0000 0B80" + ] + }, + { + "File": { + "Name": "Scene 2, Room 2", + "Start": "0275F000", + "End": "027681D0", + "RemapStart": null + }, + "Id": 2, + "Objects": [ + "0096", + "00A3", + "018B", + "012B", + "0021", + "0012", + "000E", + "0163", + "013A", + "0031", + "00AC", + "0024", + "015C", + "00D5" + ], + "Actors": [ + "0125 FF40 FEAC F377 0000 0000 0000 FF01", + "0125 015E FEAC F232 0000 0000 0000 FF01", + "0034 FFC3 FF60 F33D 0000 0000 0000 FFFF", + "0034 FEFB FF45 F406 0000 0000 0000 FFFF", + "00B6 0000 FE70 F17D 0000 0000 0000 00FF", + "01C6 00EB FF66 F555 0B61 749F 0000 0000", + "00A1 00D8 FEAC F400 0000 0000 0000 0202", + "0127 00F5 FF48 F518 0000 0000 0000 0006", + "0127 015E FEAC F233 0000 0000 0000 0008", + "0127 FF40 FEAC F375 0000 0000 0000 0009", + "0127 00DC FF4A F51A 0000 C93F 0000 0011", + "0127 0112 FF4D F51A 0000 BB06 0000 001A", + "0173 00F8 FF61 F51F 0000 0014 0001 3F00", + "0112 00F8 FF5B F52D 0000 0000 0004 1953" + ] + }, + { + "File": { + "Name": "Scene 2, Room 3", + "Start": "02769000", + "End": "02770160", + "RemapStart": null + }, + "Id": 3, + "Objects": [ + "0096", + "00A3", + "018B", + "012B", + "0021", + "0012", + "000E", + "0163", + "013A", + "0031", + "00AC", + "0024", + "015C", + "00D5" + ], + "Actors": [ + "0125 0131 FB4A F267 0000 0000 0000 FF01", + "0125 00E7 FB49 F209 0000 0000 0000 FF01", + "0125 FFA5 FB4A F501 0000 0000 0000 FF01", + "0034 FFF6 FB8A F2FE 0000 0000 0000 FFFF", + "01C6 FE81 FC51 F3A9 0000 4444 0000 0000", + "01C6 FED8 FC8B F212 0000 02D8 0000 0000", + "00A1 00DE FBA7 F33A 0000 0000 0000 0203", + "00E6 002C FBA6 F1F4 0000 0000 0000 3C00", + "00E6 FFF1 FB4C F2FE 0000 0000 0000 3A02", + "015F FFF4 FA88 F307 0000 0000 0003 0EBF", + "002D 001A FBCE F268 0000 0000 0000 FFFF", + "000A 010E FCBF F233 0000 5E94 0003 8048", + "000A FF6B FD04 F4F0 0000 F27D 0007 8064", + "0112 FEDF FC84 F236 0000 0000 0004 1983", + "0112 FEE6 FC96 F22B 0000 0000 0004 1983", + "0112 FED2 FC98 F238 0000 0000 0004 1983", + "0112 FE97 FC4D F3AF 0000 0000 0004 1987", + "0112 FEA0 FC59 F3A5 0000 0000 0004 1987", + "0112 FE94 FC4B F39F 0000 0000 0004 1987", + "011B FDD0 FC09 F2F4 001E 000D 0000 382F", + "011B FDED FBA7 F51F 001E 000C 0000 3731", + "00DF FDED FC09 F51F 0000 6000 0000 0B80", + "00DF FDD0 FC09 F2F4 0000 4000 0000 0C81" + ] + }, + { + "File": { + "Name": "Scene 2, Room 4", + "Start": "02771000", + "End": "02775050", + "RemapStart": null + }, + "Id": 4, + "Objects": [ + "0096", + "012B", + "011C", + "00D4", + "001B", + "00AC", + "011D", + "018B", + "00CB", + "00DC" + ], + "Actors": [ + "012D FA9B FFEF F7BD 0000 0000 0000 3DC1", + "012D FAC3 FFEF F7BD 0000 0000 0000 3DC1", + "012D FB2B FFAF F9CF 0000 4000 4000 3DC1", + "012D FB03 FFAF F9CE 4000 0000 0000 3DC1", + "0125 FBBF FFD8 FA2F 0000 0000 0000 FF01", + "00B6 FAB7 FFEC F934 0000 0000 0000 00FF", + "00B6 FBA7 FFD8 F951 0000 0000 0000 00FF", + "0025 FB33 0278 FA5A 0000 0000 0000 FFFF", + "01C6 FADC 0100 FB45 0000 80B6 0000 0000", + "01C6 FB17 FF94 F9F0 0000 0000 0000 0000", + "00E6 FCD3 004F F955 0000 0000 0000 1200", + "0110 FAC3 FFF4 F7BC 0000 0000 0000 FFFF", + "0110 FA9B FFF4 F7BD 0000 0000 0000 FFFF", + "0112 FADD 010F FB15 0000 0000 0004 19BD" + ] + }, + { + "File": { + "Name": "Scene 2, Room 5", + "Start": "02776000", + "End": "0277C020", + "RemapStart": null + }, + "Id": 5, + "Objects": [ + "0096", + "00D4", + "018B", + "011C", + "000E", + "012B", + "00DC", + "00CB", + "015C", + "0024" + ], + "Actors": [ + "012D 05AF FF60 FB7C 0000 0000 0000 3DC1", + "012D 05AF FF05 FB7C 0000 0000 0000 3EC1", + "0125 05C5 FE48 FAAA 0000 0000 0000 FF01", + "0125 069B FE48 F9D8 0000 0000 0000 FF01", + "00DD 0541 0183 FA58 0000 0000 0000 FFFF", + "00DD 066A 01E0 F96A 0000 0000 0000 FFFF", + "01C6 05B0 FF0E FB7C 0000 8000 0000 0000", + "01C6 076A FF65 F968 0000 C000 0000 0000", + "0095 0570 002A F973 5DDE 2222 0000 8302", + "0112 05B2 FF1E FB38 0000 0000 0004 193E", + "0112 0726 FF7A F968 0000 0000 0004 1968", + "0112 05AB FF78 FB2F 0000 0000 0004 1AFD", + "012A 05B0 FFC4 FB5C 0000 0000 0000 1403", + "0111 0519 FEDA F82B 0000 0000 0000 6212", + "000A 050D FF82 F876 0000 BF4A 0028 852A" + ] + }, + { + "File": { + "Name": "Scene 2, Room 6", + "Start": "0277D000", + "End": "02781240", + "RemapStart": null + }, + "Id": 6, + "Objects": [ + "0096", + "00A3", + "015F", + "0012", + "0021", + "0056", + "0026", + "0090", + "00AD", + "012B", + "018B" + ], + "Actors": [ + "0063 FAA9 019B F646 0000 0000 0000 FFFF", + "01C6 F94F 00CF F2E7 0000 4000 0000 0000", + "00A1 FAB0 FC2C F2F2 0000 4000 0000 0004", + "00C8 FAB0 FBFF F2F1 0000 C000 0000 1F00", + "0125 FBC2 0050 F2EE 0000 0000 0000 FF01", + "0125 FAB0 0050 F1EA 0000 0000 0000 FF01", + "008B FAB0 FC4C F2F1 0000 4000 0000 1015", + "0112 F99F 00E1 F2E9 0000 0000 0004 1920", + "0173 FAB0 FC5E F2F1 0006 0003 0000 3F3A" + ] + }, + { + "File": { + "Name": "Scene 2, Room 7", + "Start": "02782000", + "End": "02785520", + "RemapStart": null + }, + "Id": 7, + "Objects": [ + "0096", + "0022", + "00D5", + "0012", + "0056", + "0036", + "012B", + "0163", + "001B" + ], + "Actors": [ + "0025 0000 FEAC ED12 0000 0000 0000 FFFF", + "00A1 0006 FEAC EEFE 0000 8000 0000 0206", + "00E6 0001 FEAB EBC6 0000 0000 0000 0D00", + "0127 FFDB FEAC EBCB 0000 0000 0000 001C", + "0127 001F FEAC EBC7 0000 5BBC 0000 001C", + "0110 FD66 FEAC EDC1 0000 0000 0000 FFFF", + "0110 FE00 FEAC EE10 0000 0000 0000 FFFF", + "000F 033B FEAC EDB1 0000 C000 0000 1FD6", + "011B FCB8 FEAC EDB3 001E 000B 0000 3432", + "011B FD71 FEAC ECA5 001E 000B 0000 3532", + "00DF FD71 FEAC ECA5 0000 0000 0000 0A82", + "00DF FCB8 FEAC EDB3 0000 4000 0000 0A82" + ] + }, + { + "File": { + "Name": "Scene 2, Room 8", + "Start": "02786000", + "End": "02789880", + "RemapStart": null + }, + "Id": 8, + "Objects": [ + "0096", + "00A3", + "00D5", + "000E" + ], + "Actors": [ + "0187 FF8F FEAC E9DB 0000 0000 0000 2FFF", + "00DE 0001 0014 E957 0000 0000 0000 0B00" + ] + }, + { + "File": { + "Name": "Scene 2, Room 9", + "Start": "0278A000", + "End": "0278DC70", + "RemapStart": null + }, + "Id": 9, + "Objects": [ + "0096", + "00A3", + "00D5", + "000E" + ], + "Actors": [ + "0187 0607 FEAC ED23 0000 0000 0000 2BFF", + "00DE 0619 0014 EDB9 0000 C000 0000 0A02" + ] + }, + { + "File": { + "Name": "Scene 2, Room 10", + "Start": "0278E000", + "End": "02791830", + "RemapStart": null + }, + "Id": 10, + "Objects": [ + "0096", + "00A3", + "00D5" + ], + "Actors": [ + "0187 F9EA 0021 EDC8 0000 0000 0000 33FF", + "00DE F9E6 0014 EDB5 0000 4000 0000 0C01" + ] + }, + { + "File": { + "Name": "Scene 2, Room 11", + "Start": "02792000", + "End": "02795800", + "RemapStart": null + }, + "Id": 11, + "Objects": [ + "0096", + "00A3", + "000E", + "018B", + "00A8", + "0190", + "00D4", + "012B", + "011C", + "00CB", + "00DC", + "0090", + "00A4" + ], + "Actors": [ + "012D 03A5 012E E9DB 0000 0000 0000 25C1", + "012D 03A5 012E EA03 0000 0000 0000 25C1", + "012D 0182 012D E9DB 0000 0000 0000 27C1", + "012D 0182 012D EA02 0000 0000 0000 27C1", + "0125 028C FEAC E9C9 0000 0000 0000 FF01", + "00DD 03EB 00E0 E9F1 0000 C000 0000 FFFF", + "00DD 0144 00CF E9EC 0000 0000 0000 FFFF", + "01C6 014E FF36 E9F3 0000 5333 0000 0000", + "01C6 03DC FF17 E9DF 0000 CD83 0000 0000", + "005E 0316 FEAC EB04 0AAB 8000 0000 03C1", + "0187 0274 FFC4 EAA4 0000 0000 0000 07FF", + "01D1 03EB 006F E9EF 0000 0000 0000 80FF", + "01D1 03EB 00CA EA48 0000 0000 0000 80FF", + "01D1 0446 00CA E9EE 0000 0000 0000 80FF", + "01D1 03EA 00C9 E993 0000 0000 0000 80FF", + "01D1 013F 00CA E994 0000 0000 0000 80FF", + "01D1 00E6 00CA E9ED 0000 0000 0000 80FF", + "01D1 013F 00CA EA46 0000 0000 0000 80FF", + "01D1 013F 006C E9ED 0000 0000 0000 80FF", + "0112 03AD FF1B E9F2 0000 0000 0004 18E5", + "0112 03B2 FF21 E9FE 0000 0000 0004 18E5", + "0112 03B2 FF21 E9E5 0000 0000 0004 18E5", + "0112 017B FF38 E9E5 0000 0000 0004 19A7", + "0112 0178 FF43 E9EC 0000 0000 0004 19A7", + "0112 0179 FF44 E9DA 0000 0000 0004 19A7", + "000A 0297 FEAC E8D3 0000 8000 0000 70E9", + "0111 0264 FEC6 E8D4 0000 0000 0000 7A08", + "0112 028D FEAC E9C8 0000 0000 0003 1AFF", + "0112 028C FEAC E9C8 0000 0000 0003 1AFF", + "0112 028D FEAC E9C7 0000 0000 0003 1AFF", + "0111 02CE FEAC E8D7 0000 0000 0000 7E0B" + ] + }, + { + "File": { + "Name": "Scene 2, Room 12", + "Start": "02796000", + "End": "02799CD0", + "RemapStart": null + }, + "Id": 12, + "Objects": [ + "0096", + "00A3", + "0190", + "00A8", + "013A", + "012B", + "0024", + "015C", + "0163", + "0022", + "0012" + ], + "Actors": [ + "0095 FC89 FECB E8E8 0000 2000 0000 0000", + "0035 FDD9 FEAC E988 0000 0000 0000 FFFF", + "0035 FD02 FEAC E986 0000 0000 0000 FFFF", + "0035 FD6A FEAC EA4D 0000 0000 0000 FFFF", + "00E6 FD71 FEAB E9CC 0000 038E 0000 3D02", + "01D1 FE14 FF28 E9D0 0000 0000 0000 38FF", + "015F FD71 FDDB E9CD 0000 0000 0003 0F7F", + "0127 FE65 FF96 E9CE 0000 0000 0000 000E", + "0127 FC8B FEAC E8ED 0000 0000 0000 0010", + "002D FDEE FFC9 E92F 0000 0000 0000 FFFF", + "002D FCC6 FF58 EA37 0000 0000 0000 FFFF", + "0095 FE71 FFC5 E9C6 9E94 4EEF 0000 8304" + ] + }, + { + "File": { + "Name": "Scene 2, Room 13", + "Start": "0279A000", + "End": "0279CB50", + "RemapStart": null + }, + "Id": 13, + "Objects": [ + "0096", + "00A3", + "0026", + "000D", + "011C", + "0036", + "0024", + "015C" + ], + "Actors": [ + "012D FBEC FB0F F6E4 0000 1D28 0000 05C1", + "0013 FBE1 FBA7 F796 0000 0000 0000 8003", + "0013 FAEC FC32 F6AA 0000 3DDE 0000 8003", + "0013 FBBA FC33 F5B3 0000 1BBC 0000 8003", + "00E6 FB98 FB2E F62A 0000 0000 0000 3B02", + "018C FC25 FB4D F5D4 0000 E38E 0000 0000", + "018C FC99 FB75 F6F4 0000 A38E 0000 0000", + "0187 FC20 FB2F F6B6 0000 0000 0000 17FF", + "000F FB85 FBA7 F73D 0000 5DDE 0000 1FFE", + "000F FB83 FBA7 F73E 0000 DDDE 0000 1FFE", + "0095 FB43 FBEF F772 C000 DDDE 0000 8308" + ] + }, + { + "File": { + "Name": "Scene 2, Room 14", + "Start": "0279D000", + "End": "027A31E0", + "RemapStart": null + }, + "Id": 14, + "Objects": [ + "0096", + "000E", + "0026", + "001B", + "0190", + "00A8", + "012B", + "00D4", + "00CB", + "00DC", + "015C", + "0024", + "0090", + "0059", + "013A" + ], + "Actors": [ + "003A 0438 FAFD F72B 0000 8000 0000 000A", + "003A 039B FAF3 F6CD 0000 0000 0000 000A", + "0125 04CC FB57 F5A9 0000 0000 0000 FF01", + "00DD 04DE FAF3 F65A 0000 0000 0000 FFFF", + "0025 03A0 FB7F F370 0000 C7D2 0000 FFFF", + "00E6 04D8 FAF2 F6B1 0000 0000 0000 3902", + "00C8 044C FAFD F6B1 0000 0000 0000 3902", + "01D1 03AD FAF3 F5FC 0000 0000 0000 B8FF", + "000A 0508 FB57 F5B1 0000 0000 0000 5041", + "0095 03AC FAF3 F5E8 0000 0000 0000 8301", + "0111 02B9 FC73 F6F2 0000 0000 0000 6604", + "015F 044A FB36 F91C 0005 0005 0005 15C6", + "015F 024C FBCF F6AF 0005 0005 0002 15C6", + "000A 02BB FBCF F6B8 0000 C000 0000 10C6", + "0111 02BB FBE9 F673 0000 0000 0000 6808" + ] + }, + { + "File": { + "Name": "Scene 2, Room 15", + "Start": "027A4000", + "End": "027A66E0", + "RemapStart": null + }, + "Id": 15, + "Objects": [ + "0096", + "00A3", + "0007", + "0012", + "0021", + "0056", + "0026", + "00AC" + ], + "Actors": [] + } + ], + "ColDelta": { + "IsLarger": true, + "Polys": [ + { + "Id": 69, + "Type": 2, + "Flags": 0 + }, + { + "Id": 77, + "Type": 2, + "Flags": 0 + }, + { + "Id": 78, + "Type": 3, + "Flags": 0 + }, + { + "Id": 79, + "Type": 3, + "Flags": 0 + }, + { + "Id": 81, + "Type": 2, + "Flags": 0 + }, + { + "Id": 82, + "Type": 2, + "Flags": 0 + }, + { + "Id": 83, + "Type": 2, + "Flags": 0 + }, + { + "Id": 84, + "Type": 2, + "Flags": 0 + }, + { + "Id": 85, + "Type": 2, + "Flags": 0 + }, + { + "Id": 86, + "Type": 2, + "Flags": 0 + }, + { + "Id": 95, + "Type": 3, + "Flags": 0 + }, + { + "Id": 97, + "Type": 2, + "Flags": 0 + }, + { + "Id": 98, + "Type": 2, + "Flags": 0 + }, + { + "Id": 100, + "Type": 3, + "Flags": 0 + }, + { + "Id": 109, + "Type": 2, + "Flags": 0 + }, + { + "Id": 110, + "Type": 2, + "Flags": 0 + }, + { + "Id": 111, + "Type": 2, + "Flags": 0 + }, + { + "Id": 112, + "Type": 2, + "Flags": 0 + }, + { + "Id": 113, + "Type": 2, + "Flags": 0 + }, + { + "Id": 114, + "Type": 2, + "Flags": 0 + }, + { + "Id": 116, + "Type": 3, + "Flags": 0 + }, + { + "Id": 117, + "Type": 3, + "Flags": 0 + }, + { + "Id": 118, + "Type": 2, + "Flags": 0 + }, + { + "Id": 126, + "Type": 2, + "Flags": 0 + }, + { + "Id": 130, + "Type": 3, + "Flags": 0 + }, + { + "Id": 132, + "Type": 3, + "Flags": 0 + }, + { + "Id": 143, + "Type": 3, + "Flags": 0 + }, + { + "Id": 144, + "Type": 3, + "Flags": 0 + }, + { + "Id": 145, + "Type": 4, + "Flags": 0 + }, + { + "Id": 146, + "Type": 4, + "Flags": 0 + }, + { + "Id": 157, + "Type": 4, + "Flags": 0 + }, + { + "Id": 158, + "Type": 4, + "Flags": 0 + }, + { + "Id": 159, + "Type": 4, + "Flags": 0 + }, + { + "Id": 160, + "Type": 4, + "Flags": 0 + }, + { + "Id": 161, + "Type": 2, + "Flags": 0 + }, + { + "Id": 162, + "Type": 2, + "Flags": 0 + }, + { + "Id": 167, + "Type": 3, + "Flags": 0 + }, + { + "Id": 173, + "Type": 2, + "Flags": 0 + }, + { + "Id": 174, + "Type": 2, + "Flags": 0 + }, + { + "Id": 175, + "Type": 3, + "Flags": 0 + }, + { + "Id": 176, + "Type": 3, + "Flags": 0 + }, + { + "Id": 177, + "Type": 3, + "Flags": 0 + }, + { + "Id": 183, + "Type": 3, + "Flags": 0 + }, + { + "Id": 184, + "Type": 3, + "Flags": 0 + }, + { + "Id": 185, + "Type": 2, + "Flags": 0 + }, + { + "Id": 186, + "Type": 2, + "Flags": 0 + }, + { + "Id": 187, + "Type": 2, + "Flags": 0 + }, + { + "Id": 188, + "Type": 2, + "Flags": 0 + }, + { + "Id": 197, + "Type": 2, + "Flags": 0 + }, + { + "Id": 198, + "Type": 2, + "Flags": 0 + }, + { + "Id": 199, + "Type": 2, + "Flags": 0 + }, + { + "Id": 200, + "Type": 2, + "Flags": 0 + }, + { + "Id": 201, + "Type": 2, + "Flags": 0 + }, + { + "Id": 202, + "Type": 2, + "Flags": 0 + }, + { + "Id": 203, + "Type": 2, + "Flags": 0 + }, + { + "Id": 204, + "Type": 2, + "Flags": 0 + }, + { + "Id": 271, + "Type": 2, + "Flags": 0 + }, + { + "Id": 272, + "Type": 2, + "Flags": 0 + }, + { + "Id": 273, + "Type": 2, + "Flags": 0 + }, + { + "Id": 274, + "Type": 2, + "Flags": 0 + }, + { + "Id": 275, + "Type": 2, + "Flags": 0 + }, + { + "Id": 276, + "Type": 2, + "Flags": 0 + }, + { + "Id": 277, + "Type": 2, + "Flags": 0 + }, + { + "Id": 278, + "Type": 2, + "Flags": 0 + }, + { + "Id": 287, + "Type": 2, + "Flags": 0 + }, + { + "Id": 288, + "Type": 2, + "Flags": 0 + }, + { + "Id": 289, + "Type": 2, + "Flags": 0 + }, + { + "Id": 290, + "Type": 2, + "Flags": 0 + }, + { + "Id": 291, + "Type": 3, + "Flags": 0 + }, + { + "Id": 292, + "Type": 3, + "Flags": 0 + }, + { + "Id": 298, + "Type": 3, + "Flags": 0 + }, + { + "Id": 299, + "Type": 3, + "Flags": 0 + }, + { + "Id": 300, + "Type": 3, + "Flags": 0 + }, + { + "Id": 301, + "Type": 2, + "Flags": 0 + }, + { + "Id": 302, + "Type": 2, + "Flags": 0 + }, + { + "Id": 308, + "Type": 3, + "Flags": 0 + }, + { + "Id": 313, + "Type": 5, + "Flags": 0 + }, + { + "Id": 314, + "Type": 5, + "Flags": 0 + }, + { + "Id": 317, + "Type": 6, + "Flags": 0 + }, + { + "Id": 318, + "Type": 6, + "Flags": 0 + }, + { + "Id": 321, + "Type": 5, + "Flags": 0 + }, + { + "Id": 322, + "Type": 5, + "Flags": 0 + }, + { + "Id": 323, + "Type": 7, + "Flags": 0 + }, + { + "Id": 324, + "Type": 7, + "Flags": 0 + }, + { + "Id": 325, + "Type": 2, + "Flags": 0 + }, + { + "Id": 326, + "Type": 2, + "Flags": 0 + }, + { + "Id": 327, + "Type": 2, + "Flags": 0 + }, + { + "Id": 328, + "Type": 2, + "Flags": 0 + }, + { + "Id": 329, + "Type": 2, + "Flags": 0 + }, + { + "Id": 330, + "Type": 2, + "Flags": 0 + }, + { + "Id": 331, + "Type": 2, + "Flags": 0 + }, + { + "Id": 332, + "Type": 2, + "Flags": 0 + }, + { + "Id": 333, + "Type": 2, + "Flags": 0 + }, + { + "Id": 334, + "Type": 3, + "Flags": 0 + }, + { + "Id": 335, + "Type": 3, + "Flags": 0 + }, + { + "Id": 336, + "Type": 3, + "Flags": 0 + }, + { + "Id": 337, + "Type": 3, + "Flags": 0 + }, + { + "Id": 338, + "Type": 3, + "Flags": 0 + }, + { + "Id": 339, + "Type": 2, + "Flags": 0 + }, + { + "Id": 340, + "Type": 2, + "Flags": 0 + }, + { + "Id": 341, + "Type": 2, + "Flags": 0 + }, + { + "Id": 342, + "Type": 2, + "Flags": 0 + }, + { + "Id": 343, + "Type": 2, + "Flags": 0 + }, + { + "Id": 344, + "Type": 2, + "Flags": 0 + }, + { + "Id": 345, + "Type": 3, + "Flags": 0 + }, + { + "Id": 346, + "Type": 3, + "Flags": 0 + }, + { + "Id": 347, + "Type": 8, + "Flags": 0 + }, + { + "Id": 348, + "Type": 8, + "Flags": 0 + }, + { + "Id": 349, + "Type": 9, + "Flags": 0 + }, + { + "Id": 350, + "Type": 2, + "Flags": 0 + }, + { + "Id": 351, + "Type": 2, + "Flags": 0 + }, + { + "Id": 352, + "Type": 10, + "Flags": 0 + }, + { + "Id": 353, + "Type": 10, + "Flags": 0 + }, + { + "Id": 354, + "Type": 10, + "Flags": 0 + }, + { + "Id": 355, + "Type": 10, + "Flags": 0 + }, + { + "Id": 356, + "Type": 10, + "Flags": 0 + }, + { + "Id": 357, + "Type": 10, + "Flags": 0 + }, + { + "Id": 358, + "Type": 10, + "Flags": 0 + }, + { + "Id": 359, + "Type": 10, + "Flags": 0 + }, + { + "Id": 360, + "Type": 10, + "Flags": 0 + }, + { + "Id": 361, + "Type": 10, + "Flags": 0 + }, + { + "Id": 362, + "Type": 10, + "Flags": 0 + }, + { + "Id": 363, + "Type": 10, + "Flags": 0 + }, + { + "Id": 364, + "Type": 10, + "Flags": 0 + }, + { + "Id": 365, + "Type": 10, + "Flags": 0 + }, + { + "Id": 366, + "Type": 10, + "Flags": 0 + }, + { + "Id": 367, + "Type": 10, + "Flags": 0 + }, + { + "Id": 368, + "Type": 10, + "Flags": 0 + }, + { + "Id": 369, + "Type": 10, + "Flags": 0 + }, + { + "Id": 370, + "Type": 10, + "Flags": 0 + }, + { + "Id": 371, + "Type": 10, + "Flags": 0 + }, + { + "Id": 372, + "Type": 10, + "Flags": 0 + }, + { + "Id": 373, + "Type": 10, + "Flags": 0 + }, + { + "Id": 374, + "Type": 10, + "Flags": 0 + }, + { + "Id": 375, + "Type": 10, + "Flags": 0 + }, + { + "Id": 376, + "Type": 10, + "Flags": 0 + }, + { + "Id": 377, + "Type": 10, + "Flags": 0 + }, + { + "Id": 378, + "Type": 10, + "Flags": 0 + }, + { + "Id": 379, + "Type": 10, + "Flags": 0 + }, + { + "Id": 380, + "Type": 10, + "Flags": 0 + }, + { + "Id": 381, + "Type": 10, + "Flags": 0 + }, + { + "Id": 382, + "Type": 10, + "Flags": 0 + }, + { + "Id": 383, + "Type": 10, + "Flags": 0 + }, + { + "Id": 384, + "Type": 10, + "Flags": 0 + }, + { + "Id": 385, + "Type": 10, + "Flags": 0 + }, + { + "Id": 386, + "Type": 10, + "Flags": 0 + }, + { + "Id": 387, + "Type": 10, + "Flags": 0 + }, + { + "Id": 388, + "Type": 10, + "Flags": 0 + }, + { + "Id": 389, + "Type": 10, + "Flags": 0 + }, + { + "Id": 390, + "Type": 10, + "Flags": 0 + }, + { + "Id": 391, + "Type": 10, + "Flags": 0 + }, + { + "Id": 418, + "Type": 5, + "Flags": 0 + }, + { + "Id": 421, + "Type": 5, + "Flags": 0 + }, + { + "Id": 433, + "Type": 2, + "Flags": 0 + }, + { + "Id": 434, + "Type": 2, + "Flags": 0 + }, + { + "Id": 456, + "Type": 11, + "Flags": 0 + }, + { + "Id": 457, + "Type": 11, + "Flags": 0 + }, + { + "Id": 458, + "Type": 11, + "Flags": 0 + }, + { + "Id": 508, + "Type": 11, + "Flags": 0 + }, + { + "Id": 509, + "Type": 11, + "Flags": 0 + }, + { + "Id": 510, + "Type": 11, + "Flags": 0 + }, + { + "Id": 511, + "Type": 11, + "Flags": 0 + }, + { + "Id": 512, + "Type": 11, + "Flags": 0 + }, + { + "Id": 538, + "Type": 5, + "Flags": 0 + }, + { + "Id": 539, + "Type": 5, + "Flags": 0 + }, + { + "Id": 540, + "Type": 5, + "Flags": 0 + }, + { + "Id": 551, + "Type": 5, + "Flags": 0 + }, + { + "Id": 552, + "Type": 5, + "Flags": 0 + }, + { + "Id": 571, + "Type": 12, + "Flags": 0 + }, + { + "Id": 573, + "Type": 12, + "Flags": 0 + }, + { + "Id": 577, + "Type": 12, + "Flags": 0 + }, + { + "Id": 578, + "Type": 12, + "Flags": 0 + }, + { + "Id": 579, + "Type": 12, + "Flags": 0 + }, + { + "Id": 589, + "Type": 7, + "Flags": 0 + }, + { + "Id": 590, + "Type": 7, + "Flags": 0 + }, + { + "Id": 591, + "Type": 12, + "Flags": 0 + }, + { + "Id": 592, + "Type": 7, + "Flags": 0 + }, + { + "Id": 593, + "Type": 7, + "Flags": 0 + }, + { + "Id": 594, + "Type": 7, + "Flags": 0 + }, + { + "Id": 595, + "Type": 7, + "Flags": 0 + }, + { + "Id": 626, + "Type": 11, + "Flags": 0 + }, + { + "Id": 627, + "Type": 11, + "Flags": 0 + }, + { + "Id": 636, + "Type": 11, + "Flags": 0 + }, + { + "Id": 637, + "Type": 11, + "Flags": 0 + }, + { + "Id": 638, + "Type": 11, + "Flags": 0 + }, + { + "Id": 639, + "Type": 11, + "Flags": 0 + }, + { + "Id": 646, + "Type": 6, + "Flags": 0 + }, + { + "Id": 647, + "Type": 6, + "Flags": 0 + }, + { + "Id": 648, + "Type": 6, + "Flags": 0 + }, + { + "Id": 649, + "Type": 6, + "Flags": 0 + }, + { + "Id": 650, + "Type": 6, + "Flags": 0 + }, + { + "Id": 661, + "Type": 6, + "Flags": 0 + }, + { + "Id": 662, + "Type": 6, + "Flags": 0 + }, + { + "Id": 712, + "Type": 7, + "Flags": 0 + }, + { + "Id": 713, + "Type": 7, + "Flags": 0 + }, + { + "Id": 724, + "Type": 7, + "Flags": 0 + }, + { + "Id": 725, + "Type": 7, + "Flags": 0 + }, + { + "Id": 726, + "Type": 7, + "Flags": 0 + }, + { + "Id": 727, + "Type": 7, + "Flags": 0 + }, + { + "Id": 752, + "Type": 2, + "Flags": 0 + }, + { + "Id": 753, + "Type": 2, + "Flags": 0 + }, + { + "Id": 754, + "Type": 2, + "Flags": 0 + }, + { + "Id": 759, + "Type": 2, + "Flags": 0 + }, + { + "Id": 760, + "Type": 2, + "Flags": 0 + }, + { + "Id": 771, + "Type": 3, + "Flags": 0 + }, + { + "Id": 772, + "Type": 3, + "Flags": 0 + }, + { + "Id": 773, + "Type": 3, + "Flags": 0 + }, + { + "Id": 774, + "Type": 3, + "Flags": 0 + }, + { + "Id": 775, + "Type": 3, + "Flags": 0 + }, + { + "Id": 776, + "Type": 2, + "Flags": 0 + }, + { + "Id": 779, + "Type": 2, + "Flags": 0 + }, + { + "Id": 780, + "Type": 2, + "Flags": 0 + }, + { + "Id": 782, + "Type": 2, + "Flags": 0 + }, + { + "Id": 783, + "Type": 2, + "Flags": 0 + }, + { + "Id": 830, + "Type": 2, + "Flags": 0 + }, + { + "Id": 831, + "Type": 2, + "Flags": 0 + }, + { + "Id": 839, + "Type": 12, + "Flags": 0 + }, + { + "Id": 840, + "Type": 12, + "Flags": 0 + }, + { + "Id": 841, + "Type": 13, + "Flags": 0 + }, + { + "Id": 842, + "Type": 13, + "Flags": 0 + }, + { + "Id": 843, + "Type": 13, + "Flags": 0 + }, + { + "Id": 844, + "Type": 13, + "Flags": 0 + }, + { + "Id": 852, + "Type": 13, + "Flags": 0 + }, + { + "Id": 853, + "Type": 13, + "Flags": 0 + }, + { + "Id": 874, + "Type": 12, + "Flags": 0 + }, + { + "Id": 875, + "Type": 12, + "Flags": 0 + }, + { + "Id": 882, + "Type": 12, + "Flags": 0 + }, + { + "Id": 883, + "Type": 12, + "Flags": 0 + }, + { + "Id": 888, + "Type": 2, + "Flags": 0 + }, + { + "Id": 889, + "Type": 2, + "Flags": 0 + }, + { + "Id": 894, + "Type": 6, + "Flags": 0 + }, + { + "Id": 896, + "Type": 11, + "Flags": 0 + }, + { + "Id": 897, + "Type": 11, + "Flags": 0 + }, + { + "Id": 898, + "Type": 11, + "Flags": 0 + }, + { + "Id": 899, + "Type": 11, + "Flags": 0 + }, + { + "Id": 900, + "Type": 11, + "Flags": 0 + }, + { + "Id": 901, + "Type": 11, + "Flags": 0 + }, + { + "Id": 902, + "Type": 11, + "Flags": 0 + }, + { + "Id": 903, + "Type": 11, + "Flags": 0 + }, + { + "Id": 904, + "Type": 11, + "Flags": 0 + }, + { + "Id": 905, + "Type": 11, + "Flags": 0 + }, + { + "Id": 906, + "Type": 11, + "Flags": 0 + }, + { + "Id": 907, + "Type": 11, + "Flags": 0 + }, + { + "Id": 908, + "Type": 11, + "Flags": 0 + }, + { + "Id": 909, + "Type": 11, + "Flags": 0 + }, + { + "Id": 910, + "Type": 11, + "Flags": 0 + }, + { + "Id": 911, + "Type": 11, + "Flags": 0 + }, + { + "Id": 912, + "Type": 11, + "Flags": 0 + }, + { + "Id": 913, + "Type": 11, + "Flags": 0 + }, + { + "Id": 914, + "Type": 11, + "Flags": 0 + }, + { + "Id": 915, + "Type": 11, + "Flags": 0 + }, + { + "Id": 916, + "Type": 11, + "Flags": 0 + }, + { + "Id": 917, + "Type": 11, + "Flags": 0 + }, + { + "Id": 918, + "Type": 11, + "Flags": 0 + }, + { + "Id": 919, + "Type": 11, + "Flags": 0 + }, + { + "Id": 920, + "Type": 11, + "Flags": 0 + }, + { + "Id": 921, + "Type": 11, + "Flags": 0 + }, + { + "Id": 922, + "Type": 11, + "Flags": 0 + }, + { + "Id": 923, + "Type": 11, + "Flags": 0 + }, + { + "Id": 924, + "Type": 11, + "Flags": 0 + }, + { + "Id": 925, + "Type": 11, + "Flags": 0 + }, + { + "Id": 926, + "Type": 11, + "Flags": 0 + }, + { + "Id": 927, + "Type": 11, + "Flags": 0 + }, + { + "Id": 928, + "Type": 11, + "Flags": 0 + }, + { + "Id": 929, + "Type": 11, + "Flags": 0 + }, + { + "Id": 930, + "Type": 11, + "Flags": 0 + }, + { + "Id": 931, + "Type": 11, + "Flags": 0 + }, + { + "Id": 932, + "Type": 11, + "Flags": 0 + }, + { + "Id": 933, + "Type": 11, + "Flags": 0 + }, + { + "Id": 934, + "Type": 11, + "Flags": 0 + }, + { + "Id": 935, + "Type": 11, + "Flags": 0 + }, + { + "Id": 936, + "Type": 11, + "Flags": 0 + }, + { + "Id": 937, + "Type": 11, + "Flags": 0 + }, + { + "Id": 938, + "Type": 11, + "Flags": 0 + }, + { + "Id": 939, + "Type": 11, + "Flags": 0 + }, + { + "Id": 940, + "Type": 11, + "Flags": 0 + }, + { + "Id": 941, + "Type": 14, + "Flags": 0 + }, + { + "Id": 942, + "Type": 11, + "Flags": 0 + }, + { + "Id": 943, + "Type": 14, + "Flags": 0 + }, + { + "Id": 944, + "Type": 11, + "Flags": 0 + }, + { + "Id": 945, + "Type": 11, + "Flags": 0 + }, + { + "Id": 946, + "Type": 11, + "Flags": 0 + }, + { + "Id": 947, + "Type": 11, + "Flags": 0 + }, + { + "Id": 948, + "Type": 14, + "Flags": 0 + }, + { + "Id": 949, + "Type": 11, + "Flags": 0 + }, + { + "Id": 950, + "Type": 14, + "Flags": 0 + }, + { + "Id": 951, + "Type": 11, + "Flags": 0 + }, + { + "Id": 952, + "Type": 14, + "Flags": 0 + }, + { + "Id": 953, + "Type": 14, + "Flags": 0 + }, + { + "Id": 958, + "Type": 15, + "Flags": 0 + }, + { + "Id": 959, + "Type": 15, + "Flags": 0 + }, + { + "Id": 960, + "Type": 15, + "Flags": 0 + }, + { + "Id": 961, + "Type": 15, + "Flags": 0 + }, + { + "Id": 962, + "Type": 15, + "Flags": 0 + }, + { + "Id": 963, + "Type": 15, + "Flags": 0 + }, + { + "Id": 964, + "Type": 15, + "Flags": 0 + }, + { + "Id": 965, + "Type": 15, + "Flags": 0 + }, + { + "Id": 966, + "Type": 15, + "Flags": 0 + }, + { + "Id": 967, + "Type": 15, + "Flags": 0 + }, + { + "Id": 968, + "Type": 15, + "Flags": 0 + }, + { + "Id": 969, + "Type": 15, + "Flags": 0 + }, + { + "Id": 970, + "Type": 15, + "Flags": 0 + }, + { + "Id": 971, + "Type": 15, + "Flags": 0 + }, + { + "Id": 972, + "Type": 15, + "Flags": 0 + }, + { + "Id": 973, + "Type": 15, + "Flags": 0 + }, + { + "Id": 974, + "Type": 15, + "Flags": 0 + }, + { + "Id": 975, + "Type": 15, + "Flags": 0 + }, + { + "Id": 976, + "Type": 15, + "Flags": 0 + }, + { + "Id": 977, + "Type": 15, + "Flags": 0 + }, + { + "Id": 984, + "Type": 16, + "Flags": 0 + }, + { + "Id": 985, + "Type": 17, + "Flags": 0 + }, + { + "Id": 986, + "Type": 18, + "Flags": 0 + }, + { + "Id": 987, + "Type": 19, + "Flags": 0 + }, + { + "Id": 988, + "Type": 20, + "Flags": 0 + }, + { + "Id": 989, + "Type": 21, + "Flags": 0 + }, + { + "Id": 990, + "Type": 22, + "Flags": 0 + }, + { + "Id": 991, + "Type": 23, + "Flags": 0 + }, + { + "Id": 992, + "Type": 24, + "Flags": 0 + }, + { + "Id": 993, + "Type": 25, + "Flags": 0 + }, + { + "Id": 994, + "Type": 26, + "Flags": 0 + }, + { + "Id": 995, + "Type": 27, + "Flags": 0 + }, + { + "Id": 996, + "Type": 28, + "Flags": 0 + }, + { + "Id": 997, + "Type": 29, + "Flags": 0 + }, + { + "Id": 998, + "Type": 30, + "Flags": 0 + }, + { + "Id": 999, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1000, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1001, + "Type": 30, + "Flags": 0 + }, + { + "Id": 1002, + "Type": 29, + "Flags": 0 + }, + { + "Id": 1003, + "Type": 28, + "Flags": 0 + }, + { + "Id": 1004, + "Type": 32, + "Flags": 0 + }, + { + "Id": 1005, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1006, + "Type": 25, + "Flags": 0 + }, + { + "Id": 1007, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1008, + "Type": 23, + "Flags": 0 + }, + { + "Id": 1009, + "Type": 22, + "Flags": 0 + }, + { + "Id": 1010, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1011, + "Type": 20, + "Flags": 0 + }, + { + "Id": 1012, + "Type": 19, + "Flags": 0 + }, + { + "Id": 1013, + "Type": 18, + "Flags": 0 + }, + { + "Id": 1014, + "Type": 17, + "Flags": 0 + }, + { + "Id": 1015, + "Type": 16, + "Flags": 0 + }, + { + "Id": 1016, + "Type": 18, + "Flags": 0 + }, + { + "Id": 1017, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1018, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1019, + "Type": 20, + "Flags": 0 + }, + { + "Id": 1020, + "Type": 19, + "Flags": 0 + }, + { + "Id": 1021, + "Type": 35, + "Flags": 0 + }, + { + "Id": 1022, + "Type": 36, + "Flags": 0 + }, + { + "Id": 1023, + "Type": 37, + "Flags": 0 + }, + { + "Id": 1024, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1025, + "Type": 25, + "Flags": 0 + }, + { + "Id": 1026, + "Type": 38, + "Flags": 0 + }, + { + "Id": 1027, + "Type": 27, + "Flags": 0 + }, + { + "Id": 1028, + "Type": 39, + "Flags": 0 + }, + { + "Id": 1029, + "Type": 40, + "Flags": 0 + }, + { + "Id": 1030, + "Type": 41, + "Flags": 0 + }, + { + "Id": 1031, + "Type": 42, + "Flags": 0 + }, + { + "Id": 1032, + "Type": 16, + "Flags": 0 + }, + { + "Id": 1033, + "Type": 17, + "Flags": 0 + }, + { + "Id": 1034, + "Type": 18, + "Flags": 0 + }, + { + "Id": 1035, + "Type": 19, + "Flags": 0 + }, + { + "Id": 1036, + "Type": 20, + "Flags": 0 + }, + { + "Id": 1037, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1038, + "Type": 22, + "Flags": 0 + }, + { + "Id": 1039, + "Type": 23, + "Flags": 0 + }, + { + "Id": 1040, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1041, + "Type": 25, + "Flags": 0 + }, + { + "Id": 1042, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1043, + "Type": 27, + "Flags": 0 + }, + { + "Id": 1044, + "Type": 39, + "Flags": 0 + }, + { + "Id": 1045, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1046, + "Type": 40, + "Flags": 0 + }, + { + "Id": 1047, + "Type": 43, + "Flags": 0 + }, + { + "Id": 1048, + "Type": 38, + "Flags": 0 + }, + { + "Id": 1049, + "Type": 25, + "Flags": 0 + }, + { + "Id": 1050, + "Type": 24, + "Flags": 0 + }, + { + "Id": 1051, + "Type": 27, + "Flags": 0 + }, + { + "Id": 1052, + "Type": 40, + "Flags": 0 + }, + { + "Id": 1053, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1054, + "Type": 39, + "Flags": 0 + }, + { + "Id": 1055, + "Type": 41, + "Flags": 0 + }, + { + "Id": 1056, + "Type": 20, + "Flags": 0 + }, + { + "Id": 1057, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1058, + "Type": 42, + "Flags": 0 + }, + { + "Id": 1059, + "Type": 19, + "Flags": 0 + }, + { + "Id": 1060, + "Type": 36, + "Flags": 0 + }, + { + "Id": 1061, + "Type": 18, + "Flags": 0 + }, + { + "Id": 1062, + "Type": 35, + "Flags": 0 + }, + { + "Id": 1063, + "Type": 37, + "Flags": 0 + }, + { + "Id": 1089, + "Type": 12, + "Flags": 0 + }, + { + "Id": 1090, + "Type": 12, + "Flags": 0 + }, + { + "Id": 1091, + "Type": 12, + "Flags": 0 + }, + { + "Id": 1111, + "Type": 12, + "Flags": 0 + }, + { + "Id": 1112, + "Type": 12, + "Flags": 0 + }, + { + "Id": 1113, + "Type": 44, + "Flags": 0 + }, + { + "Id": 1114, + "Type": 44, + "Flags": 0 + }, + { + "Id": 1115, + "Type": 45, + "Flags": 0 + }, + { + "Id": 1117, + "Type": 45, + "Flags": 0 + }, + { + "Id": 1118, + "Type": 45, + "Flags": 0 + }, + { + "Id": 1119, + "Type": 45, + "Flags": 0 + }, + { + "Id": 1120, + "Type": 45, + "Flags": 0 + }, + { + "Id": 1121, + "Type": 45, + "Flags": 0 + }, + { + "Id": 1122, + "Type": 45, + "Flags": 0 + }, + { + "Id": 1123, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1124, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1125, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1126, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1127, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1128, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1129, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1130, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1131, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1132, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1133, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1134, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1135, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1136, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1137, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1138, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1139, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1140, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1141, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1142, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1143, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1144, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1145, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1146, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1147, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1148, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1149, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1150, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1151, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1152, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1153, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1154, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1155, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1156, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1157, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1158, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1159, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1160, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1161, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1162, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1163, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1164, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1165, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1166, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1167, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1168, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1169, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1170, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1171, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1172, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1173, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1174, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1175, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1176, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1177, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1178, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1179, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1180, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1181, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1182, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1183, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1184, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1185, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1186, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1187, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1188, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1189, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1190, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1191, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1192, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1193, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1194, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1195, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1196, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1197, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1198, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1199, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1200, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1201, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1202, + "Type": 46, + "Flags": 0 + }, + { + "Id": 1215, + "Type": 47, + "Flags": 0 + }, + { + "Id": 1216, + "Type": 47, + "Flags": 0 + }, + { + "Id": 1218, + "Type": 11, + "Flags": 0 + }, + { + "Id": 1219, + "Type": 11, + "Flags": 0 + }, + { + "Id": 1220, + "Type": 11, + "Flags": 0 + }, + { + "Id": 1222, + "Type": 11, + "Flags": 0 + }, + { + "Id": 1223, + "Type": 11, + "Flags": 0 + }, + { + "Id": 1224, + "Type": 13, + "Flags": 0 + }, + { + "Id": 1225, + "Type": 47, + "Flags": 0 + }, + { + "Id": 1226, + "Type": 11, + "Flags": 0 + }, + { + "Id": 1227, + "Type": 11, + "Flags": 0 + }, + { + "Id": 1231, + "Type": 13, + "Flags": 0 + }, + { + "Id": 1245, + "Type": 48, + "Flags": 0 + }, + { + "Id": 1248, + "Type": 48, + "Flags": 0 + }, + { + "Id": 1249, + "Type": 48, + "Flags": 0 + }, + { + "Id": 1254, + "Type": 49, + "Flags": 0 + }, + { + "Id": 1255, + "Type": 48, + "Flags": 0 + }, + { + "Id": 1256, + "Type": 48, + "Flags": 0 + }, + { + "Id": 1257, + "Type": 48, + "Flags": 0 + }, + { + "Id": 1258, + "Type": 48, + "Flags": 0 + }, + { + "Id": 1263, + "Type": 48, + "Flags": 0 + }, + { + "Id": 1264, + "Type": 48, + "Flags": 0 + }, + { + "Id": 1265, + "Type": 48, + "Flags": 0 + }, + { + "Id": 1266, + "Type": 48, + "Flags": 0 + }, + { + "Id": 1267, + "Type": 48, + "Flags": 0 + }, + { + "Id": 1330, + "Type": 11, + "Flags": 0 + }, + { + "Id": 1340, + "Type": 12, + "Flags": 0 + }, + { + "Id": 1341, + "Type": 12, + "Flags": 0 + }, + { + "Id": 1342, + "Type": 12, + "Flags": 0 + }, + { + "Id": 1343, + "Type": 12, + "Flags": 0 + }, + { + "Id": 1344, + "Type": 12, + "Flags": 0 + }, + { + "Id": 1349, + "Type": 12, + "Flags": 0 + }, + { + "Id": 1350, + "Type": 12, + "Flags": 0 + }, + { + "Id": 1450, + "Type": 13, + "Flags": 0 + }, + { + "Id": 1451, + "Type": 13, + "Flags": 0 + }, + { + "Id": 1453, + "Type": 12, + "Flags": 0 + }, + { + "Id": 1454, + "Type": 12, + "Flags": 0 + }, + { + "Id": 1455, + "Type": 12, + "Flags": 0 + }, + { + "Id": 1456, + "Type": 12, + "Flags": 0 + }, + { + "Id": 1457, + "Type": 12, + "Flags": 0 + }, + { + "Id": 1458, + "Type": 12, + "Flags": 0 + }, + { + "Id": 1469, + "Type": 48, + "Flags": 0 + }, + { + "Id": 1470, + "Type": 48, + "Flags": 0 + }, + { + "Id": 1473, + "Type": 11, + "Flags": 0 + }, + { + "Id": 1474, + "Type": 11, + "Flags": 0 + }, + { + "Id": 1475, + "Type": 11, + "Flags": 0 + }, + { + "Id": 1476, + "Type": 11, + "Flags": 0 + }, + { + "Id": 1477, + "Type": 11, + "Flags": 0 + }, + { + "Id": 1478, + "Type": 11, + "Flags": 0 + }, + { + "Id": 1479, + "Type": 11, + "Flags": 0 + }, + { + "Id": 1480, + "Type": 11, + "Flags": 0 + }, + { + "Id": 1481, + "Type": 11, + "Flags": 0 + }, + { + "Id": 1482, + "Type": 11, + "Flags": 0 + }, + { + "Id": 1483, + "Type": 11, + "Flags": 0 + }, + { + "Id": 1484, + "Type": 11, + "Flags": 0 + }, + { + "Id": 1485, + "Type": 11, + "Flags": 0 + }, + { + "Id": 1486, + "Type": 11, + "Flags": 0 + }, + { + "Id": 1487, + "Type": 11, + "Flags": 0 + }, + { + "Id": 1488, + "Type": 11, + "Flags": 0 + }, + { + "Id": 1489, + "Type": 11, + "Flags": 0 + }, + { + "Id": 1490, + "Type": 45, + "Flags": 0 + }, + { + "Id": 1491, + "Type": 45, + "Flags": 0 + }, + { + "Id": 1492, + "Type": 45, + "Flags": 0 + }, + { + "Id": 1493, + "Type": 45, + "Flags": 0 + }, + { + "Id": 1494, + "Type": 13, + "Flags": 0 + }, + { + "Id": 1495, + "Type": 13, + "Flags": 0 + }, + { + "Id": 1496, + "Type": 13, + "Flags": 0 + }, + { + "Id": 1497, + "Type": 13, + "Flags": 0 + }, + { + "Id": 1498, + "Type": 13, + "Flags": 0 + }, + { + "Id": 1499, + "Type": 13, + "Flags": 0 + }, + { + "Id": 1505, + "Type": 11, + "Flags": 0 + }, + { + "Id": 1506, + "Type": 11, + "Flags": 0 + }, + { + "Id": 1508, + "Type": 12, + "Flags": 0 + }, + { + "Id": 1509, + "Type": 12, + "Flags": 0 + }, + { + "Id": 1510, + "Type": 12, + "Flags": 0 + }, + { + "Id": 1511, + "Type": 12, + "Flags": 0 + }, + { + "Id": 1513, + "Type": 12, + "Flags": 0 + }, + { + "Id": 1521, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1522, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1523, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1524, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1525, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1526, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1527, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1528, + "Type": 12, + "Flags": 0 + }, + { + "Id": 1529, + "Type": 12, + "Flags": 0 + }, + { + "Id": 1542, + "Type": 13, + "Flags": 0 + }, + { + "Id": 1543, + "Type": 13, + "Flags": 0 + }, + { + "Id": 1544, + "Type": 12, + "Flags": 0 + }, + { + "Id": 1545, + "Type": 12, + "Flags": 0 + }, + { + "Id": 1546, + "Type": 12, + "Flags": 0 + }, + { + "Id": 1547, + "Type": 12, + "Flags": 0 + }, + { + "Id": 1548, + "Type": 12, + "Flags": 0 + }, + { + "Id": 1549, + "Type": 12, + "Flags": 0 + }, + { + "Id": 1550, + "Type": 12, + "Flags": 0 + }, + { + "Id": 1551, + "Type": 13, + "Flags": 0 + }, + { + "Id": 1552, + "Type": 13, + "Flags": 0 + }, + { + "Id": 1557, + "Type": 11, + "Flags": 0 + }, + { + "Id": 1616, + "Type": 13, + "Flags": 0 + }, + { + "Id": 1617, + "Type": 13, + "Flags": 0 + }, + { + "Id": 1624, + "Type": 13, + "Flags": 0 + }, + { + "Id": 1625, + "Type": 13, + "Flags": 0 + }, + { + "Id": 1817, + "Type": 11, + "Flags": 0 + }, + { + "Id": 1818, + "Type": 11, + "Flags": 0 + }, + { + "Id": 1822, + "Type": 45, + "Flags": 0 + }, + { + "Id": 1823, + "Type": 45, + "Flags": 0 + }, + { + "Id": 1824, + "Type": 45, + "Flags": 0 + }, + { + "Id": 1825, + "Type": 45, + "Flags": 0 + }, + { + "Id": 1826, + "Type": 45, + "Flags": 0 + }, + { + "Id": 1827, + "Type": 45, + "Flags": 0 + }, + { + "Id": 1828, + "Type": 45, + "Flags": 0 + }, + { + "Id": 1829, + "Type": 45, + "Flags": 0 + }, + { + "Id": 1830, + "Type": 45, + "Flags": 0 + }, + { + "Id": 1831, + "Type": 45, + "Flags": 0 + }, + { + "Id": 1832, + "Type": 45, + "Flags": 0 + }, + { + "Id": 1833, + "Type": 45, + "Flags": 0 + }, + { + "Id": 1836, + "Type": 50, + "Flags": 2 + }, + { + "Id": 1837, + "Type": 50, + "Flags": 2 + }, + { + "Id": 1839, + "Type": 50, + "Flags": 2 + }, + { + "Id": 1840, + "Type": 50, + "Flags": 2 + }, + { + "Id": 1841, + "Type": 50, + "Flags": 2 + }, + { + "Id": 1842, + "Type": 50, + "Flags": 2 + }, + { + "Id": 1843, + "Type": 50, + "Flags": 2 + }, + { + "Id": 1847, + "Type": 50, + "Flags": 2 + }, + { + "Id": 1848, + "Type": 51, + "Flags": 2 + }, + { + "Id": 1849, + "Type": 51, + "Flags": 2 + }, + { + "Id": 1850, + "Type": 51, + "Flags": 2 + }, + { + "Id": 1851, + "Type": 10, + "Flags": 0 + }, + { + "Id": 1852, + "Type": 10, + "Flags": 0 + }, + { + "Id": 1853, + "Type": 10, + "Flags": 0 + }, + { + "Id": 1854, + "Type": 10, + "Flags": 0 + }, + { + "Id": 1855, + "Type": 10, + "Flags": 0 + }, + { + "Id": 1856, + "Type": 10, + "Flags": 0 + }, + { + "Id": 1857, + "Type": 10, + "Flags": 0 + }, + { + "Id": 1858, + "Type": 10, + "Flags": 0 + }, + { + "Id": 1859, + "Type": 10, + "Flags": 0 + }, + { + "Id": 1860, + "Type": 10, + "Flags": 0 + }, + { + "Id": 1861, + "Type": 50, + "Flags": 0 + }, + { + "Id": 1862, + "Type": 50, + "Flags": 0 + }, + { + "Id": 1863, + "Type": 50, + "Flags": 0 + }, + { + "Id": 1864, + "Type": 50, + "Flags": 0 + }, + { + "Id": 1865, + "Type": 50, + "Flags": 0 + }, + { + "Id": 1866, + "Type": 50, + "Flags": 0 + }, + { + "Id": 1867, + "Type": 50, + "Flags": 0 + }, + { + "Id": 1868, + "Type": 50, + "Flags": 0 + }, + { + "Id": 1869, + "Type": 50, + "Flags": 0 + }, + { + "Id": 1870, + "Type": 50, + "Flags": 0 + }, + { + "Id": 1872, + "Type": 50, + "Flags": 0 + }, + { + "Id": 1873, + "Type": 50, + "Flags": 0 + }, + { + "Id": 1878, + "Type": 50, + "Flags": 0 + }, + { + "Id": 1879, + "Type": 50, + "Flags": 0 + }, + { + "Id": 1880, + "Type": 50, + "Flags": 0 + }, + { + "Id": 1889, + "Type": 52, + "Flags": 0 + }, + { + "Id": 1890, + "Type": 10, + "Flags": 0 + }, + { + "Id": 1912, + "Type": 50, + "Flags": 0 + }, + { + "Id": 1913, + "Type": 50, + "Flags": 0 + }, + { + "Id": 1914, + "Type": 10, + "Flags": 0 + }, + { + "Id": 1926, + "Type": 10, + "Flags": 0 + }, + { + "Id": 1929, + "Type": 50, + "Flags": 0 + }, + { + "Id": 1942, + "Type": 10, + "Flags": 0 + }, + { + "Id": 1943, + "Type": 10, + "Flags": 0 + }, + { + "Id": 1944, + "Type": 10, + "Flags": 0 + }, + { + "Id": 1945, + "Type": 10, + "Flags": 0 + }, + { + "Id": 1946, + "Type": 10, + "Flags": 0 + }, + { + "Id": 1947, + "Type": 10, + "Flags": 0 + }, + { + "Id": 1948, + "Type": 10, + "Flags": 0 + }, + { + "Id": 1949, + "Type": 10, + "Flags": 0 + }, + { + "Id": 1951, + "Type": 50, + "Flags": 0 + }, + { + "Id": 1952, + "Type": 50, + "Flags": 0 + }, + { + "Id": 1955, + "Type": 50, + "Flags": 0 + }, + { + "Id": 1956, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2024, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2025, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2026, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2027, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2064, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2065, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2068, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2069, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2076, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2077, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2079, + "Type": 52, + "Flags": 0 + }, + { + "Id": 2080, + "Type": 52, + "Flags": 0 + }, + { + "Id": 2081, + "Type": 52, + "Flags": 0 + }, + { + "Id": 2082, + "Type": 10, + "Flags": 0 + }, + { + "Id": 2083, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2084, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2089, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2090, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2217, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2218, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2219, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2340, + "Type": 12, + "Flags": 0 + }, + { + "Id": 2341, + "Type": 12, + "Flags": 0 + }, + { + "Id": 2342, + "Type": 12, + "Flags": 0 + }, + { + "Id": 2343, + "Type": 12, + "Flags": 0 + }, + { + "Id": 2344, + "Type": 12, + "Flags": 0 + }, + { + "Id": 2345, + "Type": 12, + "Flags": 0 + }, + { + "Id": 2446, + "Type": 7, + "Flags": 0 + }, + { + "Id": 2447, + "Type": 7, + "Flags": 0 + }, + { + "Id": 2448, + "Type": 7, + "Flags": 0 + }, + { + "Id": 2449, + "Type": 7, + "Flags": 0 + }, + { + "Id": 2460, + "Type": 7, + "Flags": 0 + }, + { + "Id": 2461, + "Type": 7, + "Flags": 0 + }, + { + "Id": 2462, + "Type": 7, + "Flags": 0 + }, + { + "Id": 2463, + "Type": 7, + "Flags": 0 + }, + { + "Id": 2464, + "Type": 7, + "Flags": 0 + }, + { + "Id": 2465, + "Type": 7, + "Flags": 0 + }, + { + "Id": 2476, + "Type": 7, + "Flags": 0 + }, + { + "Id": 2477, + "Type": 7, + "Flags": 0 + }, + { + "Id": 2478, + "Type": 7, + "Flags": 0 + }, + { + "Id": 2479, + "Type": 7, + "Flags": 0 + }, + { + "Id": 2490, + "Type": 7, + "Flags": 0 + }, + { + "Id": 2491, + "Type": 7, + "Flags": 0 + }, + { + "Id": 2492, + "Type": 7, + "Flags": 0 + }, + { + "Id": 2493, + "Type": 7, + "Flags": 0 + }, + { + "Id": 2494, + "Type": 7, + "Flags": 0 + }, + { + "Id": 2495, + "Type": 7, + "Flags": 0 + }, + { + "Id": 2496, + "Type": 7, + "Flags": 0 + }, + { + "Id": 2497, + "Type": 7, + "Flags": 0 + }, + { + "Id": 2508, + "Type": 7, + "Flags": 0 + }, + { + "Id": 2509, + "Type": 7, + "Flags": 0 + }, + { + "Id": 2510, + "Type": 7, + "Flags": 0 + }, + { + "Id": 2511, + "Type": 7, + "Flags": 0 + }, + { + "Id": 2522, + "Type": 7, + "Flags": 0 + }, + { + "Id": 2523, + "Type": 7, + "Flags": 0 + }, + { + "Id": 2524, + "Type": 7, + "Flags": 0 + }, + { + "Id": 2525, + "Type": 7, + "Flags": 0 + }, + { + "Id": 2526, + "Type": 7, + "Flags": 0 + }, + { + "Id": 2527, + "Type": 7, + "Flags": 0 + }, + { + "Id": 2528, + "Type": 7, + "Flags": 0 + }, + { + "Id": 2529, + "Type": 7, + "Flags": 0 + }, + { + "Id": 2538, + "Type": 7, + "Flags": 0 + }, + { + "Id": 2539, + "Type": 7, + "Flags": 0 + }, + { + "Id": 2540, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2541, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2542, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2543, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2552, + "Type": 12, + "Flags": 0 + }, + { + "Id": 2553, + "Type": 12, + "Flags": 0 + }, + { + "Id": 2554, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2555, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2556, + "Type": 12, + "Flags": 0 + }, + { + "Id": 2557, + "Type": 12, + "Flags": 0 + }, + { + "Id": 2558, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2559, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2568, + "Type": 12, + "Flags": 0 + }, + { + "Id": 2569, + "Type": 12, + "Flags": 0 + }, + { + "Id": 2570, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2571, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2580, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2581, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2582, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2583, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2588, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2589, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2598, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2599, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2600, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2601, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2606, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2607, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2608, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2609, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2614, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2615, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2616, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2617, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2632, + "Type": 12, + "Flags": 0 + }, + { + "Id": 2633, + "Type": 12, + "Flags": 0 + }, + { + "Id": 2634, + "Type": 12, + "Flags": 0 + }, + { + "Id": 2635, + "Type": 12, + "Flags": 0 + }, + { + "Id": 2644, + "Type": 12, + "Flags": 0 + }, + { + "Id": 2645, + "Type": 12, + "Flags": 0 + }, + { + "Id": 2646, + "Type": 12, + "Flags": 0 + }, + { + "Id": 2647, + "Type": 12, + "Flags": 0 + }, + { + "Id": 2652, + "Type": 53, + "Flags": 0 + }, + { + "Id": 2653, + "Type": 53, + "Flags": 0 + }, + { + "Id": 2654, + "Type": 53, + "Flags": 0 + }, + { + "Id": 2655, + "Type": 54, + "Flags": 0 + }, + { + "Id": 2656, + "Type": 54, + "Flags": 0 + }, + { + "Id": 2657, + "Type": 54, + "Flags": 0 + }, + { + "Id": 2680, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2681, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2682, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2683, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2684, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2685, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2686, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2687, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2688, + "Type": 55, + "Flags": 0 + }, + { + "Id": 2689, + "Type": 55, + "Flags": 0 + }, + { + "Id": 2690, + "Type": 55, + "Flags": 0 + }, + { + "Id": 2691, + "Type": 55, + "Flags": 0 + }, + { + "Id": 2692, + "Type": 55, + "Flags": 0 + }, + { + "Id": 2706, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2707, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2708, + "Type": 12, + "Flags": 0 + }, + { + "Id": 2709, + "Type": 12, + "Flags": 0 + }, + { + "Id": 2710, + "Type": 12, + "Flags": 0 + }, + { + "Id": 2711, + "Type": 12, + "Flags": 0 + }, + { + "Id": 2712, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2713, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2722, + "Type": 56, + "Flags": 0 + }, + { + "Id": 2723, + "Type": 56, + "Flags": 0 + }, + { + "Id": 2724, + "Type": 54, + "Flags": 0 + }, + { + "Id": 2725, + "Type": 54, + "Flags": 0 + }, + { + "Id": 2735, + "Type": 57, + "Flags": 0 + }, + { + "Id": 2736, + "Type": 57, + "Flags": 0 + }, + { + "Id": 2737, + "Type": 57, + "Flags": 0 + }, + { + "Id": 2738, + "Type": 57, + "Flags": 0 + }, + { + "Id": 2739, + "Type": 57, + "Flags": 0 + }, + { + "Id": 2740, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2741, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2742, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2743, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2744, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2745, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2746, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2747, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2770, + "Type": 54, + "Flags": 0 + }, + { + "Id": 2771, + "Type": 54, + "Flags": 0 + }, + { + "Id": 2772, + "Type": 54, + "Flags": 0 + }, + { + "Id": 2773, + "Type": 58, + "Flags": 0 + }, + { + "Id": 2774, + "Type": 58, + "Flags": 0 + }, + { + "Id": 2775, + "Type": 58, + "Flags": 0 + }, + { + "Id": 2780, + "Type": 12, + "Flags": 0 + }, + { + "Id": 2781, + "Type": 12, + "Flags": 0 + }, + { + "Id": 2782, + "Type": 12, + "Flags": 0 + }, + { + "Id": 2783, + "Type": 12, + "Flags": 0 + }, + { + "Id": 2792, + "Type": 12, + "Flags": 0 + }, + { + "Id": 2793, + "Type": 12, + "Flags": 0 + }, + { + "Id": 2794, + "Type": 12, + "Flags": 0 + }, + { + "Id": 2795, + "Type": 12, + "Flags": 0 + }, + { + "Id": 2800, + "Type": 1, + "Flags": 0 + }, + { + "Id": 2801, + "Type": 1, + "Flags": 0 + }, + { + "Id": 2802, + "Type": 1, + "Flags": 0 + }, + { + "Id": 2803, + "Type": 1, + "Flags": 0 + }, + { + "Id": 2804, + "Type": 1, + "Flags": 0 + }, + { + "Id": 2805, + "Type": 1, + "Flags": 0 + }, + { + "Id": 2806, + "Type": 59, + "Flags": 0 + }, + { + "Id": 2807, + "Type": 59, + "Flags": 0 + }, + { + "Id": 2808, + "Type": 59, + "Flags": 0 + }, + { + "Id": 2809, + "Type": 59, + "Flags": 0 + }, + { + "Id": 2810, + "Type": 59, + "Flags": 0 + }, + { + "Id": 2811, + "Type": 59, + "Flags": 0 + }, + { + "Id": 2812, + "Type": 59, + "Flags": 0 + }, + { + "Id": 2813, + "Type": 59, + "Flags": 0 + }, + { + "Id": 2814, + "Type": 59, + "Flags": 0 + }, + { + "Id": 2815, + "Type": 59, + "Flags": 0 + }, + { + "Id": 2816, + "Type": 59, + "Flags": 0 + }, + { + "Id": 2817, + "Type": 59, + "Flags": 0 + }, + { + "Id": 2818, + "Type": 59, + "Flags": 0 + }, + { + "Id": 2819, + "Type": 59, + "Flags": 0 + }, + { + "Id": 2820, + "Type": 1, + "Flags": 0 + }, + { + "Id": 2821, + "Type": 1, + "Flags": 0 + }, + { + "Id": 2822, + "Type": 1, + "Flags": 0 + }, + { + "Id": 2823, + "Type": 1, + "Flags": 0 + }, + { + "Id": 2824, + "Type": 1, + "Flags": 0 + }, + { + "Id": 2825, + "Type": 1, + "Flags": 0 + }, + { + "Id": 2826, + "Type": 1, + "Flags": 0 + }, + { + "Id": 2827, + "Type": 1, + "Flags": 0 + }, + { + "Id": 2828, + "Type": 1, + "Flags": 0 + }, + { + "Id": 2829, + "Type": 1, + "Flags": 0 + }, + { + "Id": 2830, + "Type": 1, + "Flags": 0 + }, + { + "Id": 2831, + "Type": 1, + "Flags": 0 + }, + { + "Id": 2832, + "Type": 1, + "Flags": 0 + }, + { + "Id": 2833, + "Type": 1, + "Flags": 0 + }, + { + "Id": 2834, + "Type": 1, + "Flags": 0 + }, + { + "Id": 2835, + "Type": 1, + "Flags": 0 + }, + { + "Id": 2852, + "Type": 60, + "Flags": 0 + }, + { + "Id": 2853, + "Type": 60, + "Flags": 0 + }, + { + "Id": 2854, + "Type": 6, + "Flags": 0 + }, + { + "Id": 2855, + "Type": 6, + "Flags": 0 + }, + { + "Id": 2858, + "Type": 7, + "Flags": 0 + }, + { + "Id": 2859, + "Type": 60, + "Flags": 0 + }, + { + "Id": 2862, + "Type": 7, + "Flags": 0 + }, + { + "Id": 2863, + "Type": 7, + "Flags": 0 + }, + { + "Id": 2864, + "Type": 7, + "Flags": 0 + }, + { + "Id": 2865, + "Type": 60, + "Flags": 0 + }, + { + "Id": 2870, + "Type": 59, + "Flags": 0 + }, + { + "Id": 2871, + "Type": 59, + "Flags": 0 + }, + { + "Id": 2872, + "Type": 59, + "Flags": 0 + }, + { + "Id": 2873, + "Type": 59, + "Flags": 0 + }, + { + "Id": 2874, + "Type": 59, + "Flags": 0 + }, + { + "Id": 2875, + "Type": 59, + "Flags": 0 + }, + { + "Id": 2876, + "Type": 59, + "Flags": 0 + }, + { + "Id": 2877, + "Type": 59, + "Flags": 0 + }, + { + "Id": 2878, + "Type": 11, + "Flags": 0 + }, + { + "Id": 2879, + "Type": 11, + "Flags": 0 + }, + { + "Id": 2880, + "Type": 11, + "Flags": 0 + }, + { + "Id": 2881, + "Type": 11, + "Flags": 0 + }, + { + "Id": 2882, + "Type": 11, + "Flags": 0 + }, + { + "Id": 2883, + "Type": 11, + "Flags": 0 + }, + { + "Id": 2884, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2885, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2886, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2887, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2888, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2889, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2890, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2891, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2892, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2893, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2894, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2895, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2896, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2897, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2930, + "Type": 61, + "Flags": 0 + }, + { + "Id": 2931, + "Type": 61, + "Flags": 0 + }, + { + "Id": 2932, + "Type": 6, + "Flags": 0 + }, + { + "Id": 2933, + "Type": 6, + "Flags": 0 + }, + { + "Id": 2936, + "Type": 12, + "Flags": 0 + }, + { + "Id": 2937, + "Type": 12, + "Flags": 0 + }, + { + "Id": 2940, + "Type": 12, + "Flags": 0 + }, + { + "Id": 2941, + "Type": 12, + "Flags": 0 + }, + { + "Id": 2942, + "Type": 12, + "Flags": 0 + }, + { + "Id": 2943, + "Type": 12, + "Flags": 0 + }, + { + "Id": 2948, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2949, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2950, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2951, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2952, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2953, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2954, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2955, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2956, + "Type": 62, + "Flags": 0 + }, + { + "Id": 2957, + "Type": 62, + "Flags": 0 + }, + { + "Id": 2958, + "Type": 62, + "Flags": 0 + }, + { + "Id": 2959, + "Type": 62, + "Flags": 0 + }, + { + "Id": 2960, + "Type": 62, + "Flags": 0 + }, + { + "Id": 2961, + "Type": 62, + "Flags": 0 + }, + { + "Id": 2962, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2963, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2964, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2965, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2966, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2967, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2968, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2969, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2970, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2971, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2972, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2973, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2974, + "Type": 15, + "Flags": 0 + }, + { + "Id": 2975, + "Type": 15, + "Flags": 0 + }, + { + "Id": 3008, + "Type": 60, + "Flags": 0 + }, + { + "Id": 3009, + "Type": 60, + "Flags": 0 + }, + { + "Id": 3010, + "Type": 6, + "Flags": 0 + }, + { + "Id": 3011, + "Type": 6, + "Flags": 0 + }, + { + "Id": 3014, + "Type": 7, + "Flags": 0 + }, + { + "Id": 3015, + "Type": 60, + "Flags": 0 + }, + { + "Id": 3018, + "Type": 7, + "Flags": 0 + }, + { + "Id": 3019, + "Type": 7, + "Flags": 0 + }, + { + "Id": 3020, + "Type": 7, + "Flags": 0 + }, + { + "Id": 3021, + "Type": 7, + "Flags": 0 + }, + { + "Id": 3026, + "Type": 15, + "Flags": 0 + }, + { + "Id": 3027, + "Type": 15, + "Flags": 0 + }, + { + "Id": 3028, + "Type": 15, + "Flags": 0 + }, + { + "Id": 3029, + "Type": 15, + "Flags": 0 + }, + { + "Id": 3030, + "Type": 15, + "Flags": 0 + }, + { + "Id": 3031, + "Type": 15, + "Flags": 0 + }, + { + "Id": 3032, + "Type": 15, + "Flags": 0 + }, + { + "Id": 3033, + "Type": 15, + "Flags": 0 + }, + { + "Id": 3034, + "Type": 1, + "Flags": 0 + }, + { + "Id": 3035, + "Type": 1, + "Flags": 0 + }, + { + "Id": 3036, + "Type": 1, + "Flags": 0 + }, + { + "Id": 3037, + "Type": 1, + "Flags": 0 + }, + { + "Id": 3038, + "Type": 1, + "Flags": 0 + }, + { + "Id": 3039, + "Type": 1, + "Flags": 0 + }, + { + "Id": 3040, + "Type": 59, + "Flags": 0 + }, + { + "Id": 3041, + "Type": 59, + "Flags": 0 + }, + { + "Id": 3042, + "Type": 59, + "Flags": 0 + }, + { + "Id": 3043, + "Type": 59, + "Flags": 0 + }, + { + "Id": 3044, + "Type": 59, + "Flags": 0 + }, + { + "Id": 3045, + "Type": 59, + "Flags": 0 + }, + { + "Id": 3046, + "Type": 59, + "Flags": 0 + }, + { + "Id": 3047, + "Type": 59, + "Flags": 0 + }, + { + "Id": 3048, + "Type": 59, + "Flags": 0 + }, + { + "Id": 3049, + "Type": 59, + "Flags": 0 + }, + { + "Id": 3050, + "Type": 59, + "Flags": 0 + }, + { + "Id": 3051, + "Type": 59, + "Flags": 0 + }, + { + "Id": 3052, + "Type": 59, + "Flags": 0 + }, + { + "Id": 3053, + "Type": 59, + "Flags": 0 + }, + { + "Id": 3054, + "Type": 1, + "Flags": 0 + }, + { + "Id": 3055, + "Type": 1, + "Flags": 0 + }, + { + "Id": 3056, + "Type": 1, + "Flags": 0 + }, + { + "Id": 3057, + "Type": 1, + "Flags": 0 + }, + { + "Id": 3058, + "Type": 1, + "Flags": 0 + }, + { + "Id": 3059, + "Type": 1, + "Flags": 0 + }, + { + "Id": 3060, + "Type": 1, + "Flags": 0 + }, + { + "Id": 3061, + "Type": 1, + "Flags": 0 + }, + { + "Id": 3062, + "Type": 1, + "Flags": 0 + }, + { + "Id": 3063, + "Type": 1, + "Flags": 0 + }, + { + "Id": 3064, + "Type": 1, + "Flags": 0 + }, + { + "Id": 3065, + "Type": 1, + "Flags": 0 + }, + { + "Id": 3066, + "Type": 1, + "Flags": 0 + }, + { + "Id": 3067, + "Type": 1, + "Flags": 0 + }, + { + "Id": 3068, + "Type": 1, + "Flags": 0 + }, + { + "Id": 3069, + "Type": 1, + "Flags": 0 + }, + { + "Id": 3076, + "Type": 1, + "Flags": 0 + }, + { + "Id": 3077, + "Type": 1, + "Flags": 0 + }, + { + "Id": 3078, + "Type": 1, + "Flags": 0 + }, + { + "Id": 3079, + "Type": 1, + "Flags": 0 + }, + { + "Id": 3080, + "Type": 1, + "Flags": 0 + }, + { + "Id": 3081, + "Type": 1, + "Flags": 0 + }, + { + "Id": 3082, + "Type": 1, + "Flags": 0 + }, + { + "Id": 3083, + "Type": 1, + "Flags": 0 + }, + { + "Id": 3084, + "Type": 1, + "Flags": 0 + }, + { + "Id": 3085, + "Type": 1, + "Flags": 0 + }, + { + "Id": 3086, + "Type": 61, + "Flags": 0 + }, + { + "Id": 3087, + "Type": 61, + "Flags": 0 + }, + { + "Id": 3088, + "Type": 1, + "Flags": 0 + }, + { + "Id": 3089, + "Type": 1, + "Flags": 0 + }, + { + "Id": 3090, + "Type": 1, + "Flags": 0 + }, + { + "Id": 3091, + "Type": 1, + "Flags": 0 + }, + { + "Id": 3092, + "Type": 12, + "Flags": 0 + }, + { + "Id": 3093, + "Type": 61, + "Flags": 0 + }, + { + "Id": 3094, + "Type": 1, + "Flags": 0 + }, + { + "Id": 3095, + "Type": 1, + "Flags": 0 + }, + { + "Id": 3096, + "Type": 12, + "Flags": 0 + }, + { + "Id": 3097, + "Type": 12, + "Flags": 0 + }, + { + "Id": 3098, + "Type": 12, + "Flags": 0 + }, + { + "Id": 3099, + "Type": 61, + "Flags": 0 + }, + { + "Id": 3100, + "Type": 1, + "Flags": 0 + }, + { + "Id": 3101, + "Type": 1, + "Flags": 0 + }, + { + "Id": 3102, + "Type": 1, + "Flags": 0 + }, + { + "Id": 3103, + "Type": 1, + "Flags": 0 + }, + { + "Id": 3104, + "Type": 59, + "Flags": 0 + }, + { + "Id": 3105, + "Type": 59, + "Flags": 0 + }, + { + "Id": 3106, + "Type": 59, + "Flags": 0 + }, + { + "Id": 3107, + "Type": 59, + "Flags": 0 + }, + { + "Id": 3108, + "Type": 59, + "Flags": 0 + }, + { + "Id": 3109, + "Type": 59, + "Flags": 0 + }, + { + "Id": 3110, + "Type": 59, + "Flags": 0 + }, + { + "Id": 3111, + "Type": 59, + "Flags": 0 + }, + { + "Id": 3112, + "Type": 11, + "Flags": 0 + }, + { + "Id": 3113, + "Type": 11, + "Flags": 0 + }, + { + "Id": 3114, + "Type": 11, + "Flags": 0 + }, + { + "Id": 3115, + "Type": 11, + "Flags": 0 + }, + { + "Id": 3116, + "Type": 11, + "Flags": 0 + }, + { + "Id": 3117, + "Type": 11, + "Flags": 0 + }, + { + "Id": 3118, + "Type": 15, + "Flags": 0 + }, + { + "Id": 3119, + "Type": 15, + "Flags": 0 + }, + { + "Id": 3120, + "Type": 59, + "Flags": 0 + }, + { + "Id": 3121, + "Type": 59, + "Flags": 0 + }, + { + "Id": 3122, + "Type": 15, + "Flags": 0 + }, + { + "Id": 3123, + "Type": 15, + "Flags": 0 + }, + { + "Id": 3124, + "Type": 15, + "Flags": 0 + }, + { + "Id": 3125, + "Type": 15, + "Flags": 0 + }, + { + "Id": 3126, + "Type": 15, + "Flags": 0 + }, + { + "Id": 3127, + "Type": 15, + "Flags": 0 + }, + { + "Id": 3128, + "Type": 15, + "Flags": 0 + }, + { + "Id": 3129, + "Type": 15, + "Flags": 0 + }, + { + "Id": 3130, + "Type": 15, + "Flags": 0 + }, + { + "Id": 3131, + "Type": 15, + "Flags": 0 + }, + { + "Id": 3164, + "Type": 61, + "Flags": 0 + }, + { + "Id": 3165, + "Type": 61, + "Flags": 0 + }, + { + "Id": 3166, + "Type": 6, + "Flags": 0 + }, + { + "Id": 3167, + "Type": 6, + "Flags": 0 + }, + { + "Id": 3170, + "Type": 12, + "Flags": 0 + }, + { + "Id": 3171, + "Type": 61, + "Flags": 0 + }, + { + "Id": 3174, + "Type": 12, + "Flags": 0 + }, + { + "Id": 3175, + "Type": 12, + "Flags": 0 + }, + { + "Id": 3176, + "Type": 12, + "Flags": 0 + }, + { + "Id": 3177, + "Type": 12, + "Flags": 0 + }, + { + "Id": 3182, + "Type": 15, + "Flags": 0 + }, + { + "Id": 3183, + "Type": 15, + "Flags": 0 + }, + { + "Id": 3184, + "Type": 15, + "Flags": 0 + }, + { + "Id": 3185, + "Type": 15, + "Flags": 0 + }, + { + "Id": 3186, + "Type": 15, + "Flags": 0 + }, + { + "Id": 3187, + "Type": 15, + "Flags": 0 + }, + { + "Id": 3188, + "Type": 15, + "Flags": 0 + }, + { + "Id": 3189, + "Type": 15, + "Flags": 0 + }, + { + "Id": 3222, + "Type": 12, + "Flags": 0 + }, + { + "Id": 3223, + "Type": 12, + "Flags": 0 + }, + { + "Id": 3225, + "Type": 12, + "Flags": 0 + }, + { + "Id": 3226, + "Type": 45, + "Flags": 0 + }, + { + "Id": 3227, + "Type": 45, + "Flags": 0 + }, + { + "Id": 3228, + "Type": 45, + "Flags": 0 + }, + { + "Id": 3229, + "Type": 45, + "Flags": 0 + }, + { + "Id": 3230, + "Type": 45, + "Flags": 0 + }, + { + "Id": 3231, + "Type": 45, + "Flags": 0 + }, + { + "Id": 3233, + "Type": 12, + "Flags": 0 + }, + { + "Id": 3276, + "Type": 11, + "Flags": 0 + }, + { + "Id": 3277, + "Type": 11, + "Flags": 0 + }, + { + "Id": 3278, + "Type": 11, + "Flags": 0 + }, + { + "Id": 3279, + "Type": 11, + "Flags": 0 + }, + { + "Id": 3304, + "Type": 11, + "Flags": 0 + }, + { + "Id": 3305, + "Type": 11, + "Flags": 0 + }, + { + "Id": 3306, + "Type": 11, + "Flags": 0 + }, + { + "Id": 3307, + "Type": 11, + "Flags": 0 + }, + { + "Id": 3308, + "Type": 11, + "Flags": 0 + }, + { + "Id": 3309, + "Type": 11, + "Flags": 0 + }, + { + "Id": 3310, + "Type": 11, + "Flags": 0 + }, + { + "Id": 3311, + "Type": 11, + "Flags": 0 + }, + { + "Id": 3312, + "Type": 7, + "Flags": 0 + }, + { + "Id": 3313, + "Type": 7, + "Flags": 0 + }, + { + "Id": 3314, + "Type": 7, + "Flags": 0 + }, + { + "Id": 3315, + "Type": 7, + "Flags": 0 + }, + { + "Id": 3316, + "Type": 7, + "Flags": 0 + }, + { + "Id": 3317, + "Type": 7, + "Flags": 0 + }, + { + "Id": 3328, + "Type": 45, + "Flags": 0 + }, + { + "Id": 3329, + "Type": 45, + "Flags": 0 + }, + { + "Id": 3527, + "Type": 11, + "Flags": 0 + }, + { + "Id": 3529, + "Type": 11, + "Flags": 0 + }, + { + "Id": 3531, + "Type": 11, + "Flags": 0 + }, + { + "Id": 3533, + "Type": 11, + "Flags": 0 + }, + { + "Id": 3534, + "Type": 11, + "Flags": 0 + }, + { + "Id": 3535, + "Type": 12, + "Flags": 0 + }, + { + "Id": 3536, + "Type": 12, + "Flags": 0 + }, + { + "Id": 3537, + "Type": 11, + "Flags": 0 + }, + { + "Id": 3538, + "Type": 11, + "Flags": 0 + }, + { + "Id": 3539, + "Type": 12, + "Flags": 0 + }, + { + "Id": 3540, + "Type": 12, + "Flags": 0 + }, + { + "Id": 3541, + "Type": 11, + "Flags": 0 + }, + { + "Id": 3542, + "Type": 11, + "Flags": 0 + }, + { + "Id": 3543, + "Type": 11, + "Flags": 0 + }, + { + "Id": 3544, + "Type": 11, + "Flags": 0 + }, + { + "Id": 3545, + "Type": 11, + "Flags": 0 + }, + { + "Id": 3546, + "Type": 11, + "Flags": 0 + }, + { + "Id": 3547, + "Type": 11, + "Flags": 0 + }, + { + "Id": 3548, + "Type": 11, + "Flags": 0 + }, + { + "Id": 3607, + "Type": 12, + "Flags": 0 + }, + { + "Id": 3608, + "Type": 12, + "Flags": 0 + }, + { + "Id": 3609, + "Type": 12, + "Flags": 0 + }, + { + "Id": 3610, + "Type": 12, + "Flags": 0 + }, + { + "Id": 3621, + "Type": 12, + "Flags": 0 + }, + { + "Id": 3622, + "Type": 12, + "Flags": 0 + }, + { + "Id": 3637, + "Type": 11, + "Flags": 0 + }, + { + "Id": 3638, + "Type": 11, + "Flags": 0 + }, + { + "Id": 3639, + "Type": 11, + "Flags": 0 + }, + { + "Id": 3640, + "Type": 11, + "Flags": 0 + }, + { + "Id": 3641, + "Type": 11, + "Flags": 0 + }, + { + "Id": 3646, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3647, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3652, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3653, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3658, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3659, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3664, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3665, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3680, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3681, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3682, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3683, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3684, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3685, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3686, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3687, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3688, + "Type": 12, + "Flags": 0 + }, + { + "Id": 3689, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3690, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3699, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3700, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3705, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3706, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3711, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3712, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3724, + "Type": 12, + "Flags": 0 + }, + { + "Id": 3725, + "Type": 12, + "Flags": 0 + }, + { + "Id": 3726, + "Type": 12, + "Flags": 0 + }, + { + "Id": 3756, + "Type": 11, + "Flags": 0 + }, + { + "Id": 3757, + "Type": 11, + "Flags": 0 + }, + { + "Id": 3770, + "Type": 12, + "Flags": 0 + }, + { + "Id": 3772, + "Type": 12, + "Flags": 0 + }, + { + "Id": 3773, + "Type": 12, + "Flags": 0 + }, + { + "Id": 3784, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3785, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3790, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3791, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3796, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3797, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3806, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3807, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3808, + "Type": 12, + "Flags": 0 + }, + { + "Id": 3809, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3810, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3811, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3812, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3813, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3814, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3815, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3816, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3831, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3832, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3837, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3838, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3843, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3844, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3850, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3851, + "Type": 7, + "Flags": 0 + }, + { + "Id": 3852, + "Type": 7, + "Flags": 0 + }, + { + "Id": 3863, + "Type": 7, + "Flags": 0 + }, + { + "Id": 3864, + "Type": 7, + "Flags": 0 + }, + { + "Id": 3865, + "Type": 7, + "Flags": 0 + }, + { + "Id": 3866, + "Type": 7, + "Flags": 0 + }, + { + "Id": 3871, + "Type": 11, + "Flags": 0 + }, + { + "Id": 3872, + "Type": 11, + "Flags": 0 + }, + { + "Id": 3873, + "Type": 11, + "Flags": 0 + }, + { + "Id": 3874, + "Type": 11, + "Flags": 0 + }, + { + "Id": 3883, + "Type": 63, + "Flags": 0 + }, + { + "Id": 3884, + "Type": 63, + "Flags": 0 + }, + { + "Id": 3895, + "Type": 50, + "Flags": 0 + }, + { + "Id": 3896, + "Type": 63, + "Flags": 0 + }, + { + "Id": 3897, + "Type": 63, + "Flags": 0 + }, + { + "Id": 3898, + "Type": 63, + "Flags": 0 + }, + { + "Id": 3899, + "Type": 6, + "Flags": 0 + }, + { + "Id": 3900, + "Type": 6, + "Flags": 0 + }, + { + "Id": 3901, + "Type": 6, + "Flags": 0 + }, + { + "Id": 3902, + "Type": 6, + "Flags": 0 + }, + { + "Id": 3913, + "Type": 6, + "Flags": 0 + }, + { + "Id": 3914, + "Type": 6, + "Flags": 0 + }, + { + "Id": 3964, + "Type": 64, + "Flags": 0 + }, + { + "Id": 3965, + "Type": 64, + "Flags": 0 + } + ], + "PolyTypes": [ + { + "Id": 2, + "High": -2147418112, + "Low": 12291 + }, + { + "Id": 3, + "High": -2147418110, + "Low": 12291 + }, + { + "Id": 4, + "High": -2147418111, + "Low": 12291 + }, + { + "Id": 5, + "High": -2147418109, + "Low": 30723 + }, + { + "Id": 6, + "High": 65539, + "Low": 12291 + }, + { + "Id": 7, + "High": 65539, + "Low": 30723 + }, + { + "Id": 8, + "High": -2147417856, + "Low": 12291 + }, + { + "Id": 9, + "High": -2147417855, + "Low": 12291 + }, + { + "Id": 10, + "High": 0, + "Low": 12291 + }, + { + "Id": 11, + "High": 65538, + "Low": 12291 + }, + { + "Id": 12, + "High": 65537, + "Low": 30723 + }, + { + "Id": 13, + "High": 65538, + "Low": 30723 + }, + { + "Id": 14, + "High": 604045314, + "Low": 12291 + }, + { + "Id": 15, + "High": 65536, + "Low": 143363 + }, + { + "Id": 16, + "High": 604045314, + "Low": 9187331 + }, + { + "Id": 17, + "High": 604045314, + "Low": 126627843 + }, + { + "Id": 18, + "High": 604045314, + "Low": 798723 + }, + { + "Id": 19, + "High": 604045314, + "Low": 17575939 + }, + { + "Id": 20, + "High": 604045314, + "Low": 25964547 + }, + { + "Id": 21, + "High": 604045314, + "Low": 34353155 + }, + { + "Id": 22, + "High": 604045314, + "Low": 40644611 + }, + { + "Id": 23, + "High": 604045314, + "Low": 118239235 + }, + { + "Id": 24, + "High": 604045314, + "Low": 107753475 + }, + { + "Id": 25, + "High": 604045314, + "Low": 101462019 + }, + { + "Id": 26, + "High": 604045314, + "Low": 93065219 + }, + { + "Id": 27, + "High": 604045314, + "Low": 84684803 + }, + { + "Id": 28, + "High": 604045314, + "Low": 76288003 + }, + { + "Id": 29, + "High": 604045314, + "Low": 67899395 + }, + { + "Id": 30, + "High": 604045314, + "Low": 59510787 + }, + { + "Id": 31, + "High": 604045314, + "Low": 51122179 + }, + { + "Id": 32, + "High": 604045314, + "Low": 84676611 + }, + { + "Id": 33, + "High": 604045314, + "Low": 93073411 + }, + { + "Id": 34, + "High": 604045314, + "Low": 67907587 + }, + { + "Id": 35, + "High": 604045314, + "Low": 7090179 + }, + { + "Id": 36, + "High": 604045314, + "Low": 124530691 + }, + { + "Id": 37, + "High": 604045314, + "Low": 116142083 + }, + { + "Id": 38, + "High": 604045314, + "Low": 90976259 + }, + { + "Id": 39, + "High": 604045314, + "Low": 76296195 + }, + { + "Id": 40, + "High": 604045314, + "Low": 59518979 + }, + { + "Id": 41, + "High": 604045314, + "Low": 49033219 + }, + { + "Id": 42, + "High": 604045314, + "Low": 42741763 + }, + { + "Id": 43, + "High": 604045314, + "Low": 51130371 + }, + { + "Id": 44, + "High": 65536, + "Low": 4099 + }, + { + "Id": 45, + "High": 8454144, + "Low": 12291 + }, + { + "Id": 46, + "High": 2162688, + "Low": 12291 + }, + { + "Id": 47, + "High": 49154, + "Low": 30723 + }, + { + "Id": 48, + "High": 49154, + "Low": 12291 + }, + { + "Id": 49, + "High": 2146306, + "Low": 12291 + }, + { + "Id": 50, + "High": 65536, + "Low": 30723 + }, + { + "Id": 51, + "High": -2147483648, + "Low": 12291 + }, + { + "Id": 52, + "High": 0, + "Low": 30723 + }, + { + "Id": 53, + "High": 65537, + "Low": 34109443 + }, + { + "Id": 54, + "High": 65537, + "Low": 67663875 + }, + { + "Id": 55, + "High": 65536, + "Low": 90732547 + }, + { + "Id": 56, + "High": 65536, + "Low": 67663875 + }, + { + "Id": 57, + "High": 65536, + "Low": 42498051 + }, + { + "Id": 58, + "High": 65537, + "Low": 101218307 + }, + { + "Id": 59, + "High": 65537, + "Low": 143363 + }, + { + "Id": 60, + "High": 65539, + "Low": 4099 + }, + { + "Id": 61, + "High": 65537, + "Low": 4099 + }, + { + "Id": 62, + "High": 65540, + "Low": 12291 + }, + { + "Id": 63, + "High": 65541, + "Low": 30723 + }, + { + "Id": 64, + "High": 512, + "Low": 12323 + } + ], + "Cams": [ + { + "Data": 0, + "PositionIndex": -1 + }, + { + "Data": 196608, + "PositionIndex": -1 + }, + { + "Data": 4063232, + "PositionIndex": -1 + }, + { + "Data": 262144, + "PositionIndex": -1 + }, + { + "Data": 3997696, + "PositionIndex": -1 + }, + { + "Data": 65536, + "PositionIndex": -1 + } + ] + } + }, + { + "File": { + "Name": "Scene 3", + "Start": "023CF000", + "End": "023E4F90", + "RemapStart": null + }, + "Id": 3, + "TActors": [ + "01FF 00FF 0009 0077 0167 003C 0000 003F", + "04FF 02FF 0009 0077 01D3 F62C 0000 003F", + "0BFF 05FF 002E FAA9 017F FA60 4000 007F", + "07FF 0FFF 002E 067F 020B F4C4 8000 0099", + "0BFF 08FF 0009 FA22 020B F8B8 8000 003F", + "14FF 0DFF 002E 0676 04CC F308 C000 02C0", + "0DFF 06FF 002E 01F3 033B F308 C000 0095", + "0CFF 06FF 002E FE83 033B F308 4000 0095", + "04FF 06FF 002E 0077 01D3 F43E 8000 007F", + "08FF 0AFF 002E FF87 0320 F506 4000 003F", + "07FF 0AFF 002E 0167 0320 F506 C000 003F", + "08FF 15FF 002E F995 020B F516 8000 007F", + "08FF 12FF 002E F92F 020B F802 C000 007F", + "03FF 10FF 002E 0645 01CF FA60 4000 007F", + "02FF 05FF 002E FD07 017F FA60 C000 007F", + "08FF 02FF 002E FD63 00F3 F74C 2000 00A5", + "07FF 02FF 002E 038B 00F3 F74C E0B6 00AA", + "03FF 02FF 0009 03E7 01CF FA60 C000 003F", + "07FF 09FF 0023 04F1 FFB3 F920 0000 00BF", + "08FF 09FF 0023 FBFA FFB2 F920 0000 00BF", + "02FF 11FF 0023 0077 002D F9E2 0000 009B", + "14FF 0FFF 0023 084C 032D F28B 0000 00BF", + "13FF 15FF 0023 F91F 02AB F308 8000 00BF", + "02FF 01FF 0009 0077 017F FDBC 0000 0086", + "10FF 0FFF 0009 07C7 0193 F8E4 8000 0083", + "13FF 0BFF 002E F91F 04CC F8E4 0000 02C2", + "13FF 0CFF 002E FA78 04CC F308 4000 02C1", + "0EFF 14FF 002E 07CF 04CC F8E4 8000 02C4", + "16FF 11FF 002E 0077 FCF5 F503 0000 0154" + ], + "Paths": [], + "Rooms": [ + { + "File": { + "Name": "Scene 3, Room 0", + "Start": "023E5000", + "End": "023F2BC0", + "RemapStart": null + }, + "Id": 0, + "Objects": [ + "0073", + "0072", + "000E", + "00A4", + "005D", + "0024", + "015C" + ], + "Actors": [ + "0095 01C3 038D 0217 0000 C000 0000 0000", + "0095 01C3 027F 0236 0000 C000 0000 0000", + "0095 01C3 045F 026D 0000 C000 0000 0000", + "0095 01C3 0311 027B 0000 C000 0000 0000", + "0095 01C3 01ED 02A4 0000 C000 0000 0000", + "0037 0069 03FD 01F8 0000 671C 0000 0000", + "000A 018C 047F 0194 0000 4000 000D 8843", + "012A FF58 035C 0243 0000 505B 0000 0D00" + ] + }, + { + "File": { + "Name": "Scene 3, Room 1", + "Start": "023F3000", + "End": "023F8B60", + "RemapStart": null + }, + "Id": 1, + "Objects": [ + "0073", + "0072", + "000E", + "00A4", + "005D", + "0024", + "0190", + "00A8" + ], + "Actors": [ + "0037 0077 0209 FE85 0000 0000 0000 0000", + "0037 0077 01C6 FEFA 0000 0000 0000 0000", + "0037 0077 0201 FF75 0000 0000 0000 0000", + "0095 0048 0243 FDD3 0000 0000 0000 8402" + ] + }, + { + "File": { + "Name": "Scene 3, Room 2", + "Start": "023F9000", + "End": "02408A30", + "RemapStart": null + }, + "Id": 2, + "Objects": [ + "0073", + "0072", + "000E", + "00A4", + "005D", + "0024", + "0007", + "0039", + "00B7", + "015C", + "0190", + "00A8", + "0099" + ], + "Actors": [ + "0173 FFEA 0166 F957 0002 001D 0000 3F8C", + "0173 0106 0166 F959 0002 001F 0000 3F8C", + "0173 FFE9 0166 FA77 0002 001E 0000 3F8C", + "0173 0106 0166 FA77 0002 0020 0000 3F8C", + "0087 0077 00E9 F9E2 0000 0000 0000 001B", + "0105 FFEA 011D F958 0000 0000 0000 001C", + "0105 FFEA 011D FA78 0000 0000 0000 011D", + "0105 0107 011D F958 0000 0000 0000 021E", + "0105 0107 011D FA78 0000 0000 0000 031F", + "0111 02A3 0139 FC23 0000 9F4A 0000 400F", + "0111 FE53 0139 FC2B 0000 6000 0000 420F", + "0111 02D0 0139 FBF3 0000 9F4A 0000 4403", + "0111 FE23 0139 FBF6 0000 6000 0000 4603", + "0111 0276 0139 FC51 0000 9F4A 0000 4809", + "0111 FE80 0139 FC57 0000 6000 0000 4A09", + "012A FE66 0221 F852 0000 2000 0000 2502", + "012A 028A 0221 F852 0000 E000 0000 2A02", + "0173 FFE9 0166 F957 0002 005D 0000 2C8D", + "0173 FFE9 0166 FA73 0002 005E 0000 2D8D", + "0173 0108 0166 F957 0002 005F 0000 2E8D", + "0173 0106 0166 FA77 0002 0060 0000 2F8D" + ] + }, + { + "File": { + "Name": "Scene 3, Room 3", + "Start": "02409000", + "End": "0240CA10", + "RemapStart": null + }, + "Id": 3, + "Objects": [ + "0073", + "0072", + "000E", + "00A4", + "005D", + "0024" + ], + "Actors": [ + "0008 062F 0206 FA27 0000 C000 0000 83F0", + "0008 062F 0206 FA2F 0000 C000 0000 83F0", + "0008 062F 0206 FA91 0000 C000 0000 83F0", + "0008 062F 0206 FA99 0000 C000 0000 83F0" + ] + }, + { + "File": { + "Name": "Scene 3, Room 4", + "Start": "0240D000", + "End": "024102B0", + "RemapStart": null + }, + "Id": 4, + "Objects": [ + "0073", + "0072", + "000E", + "00A4", + "005D", + "0024", + "0190", + "00A8" + ], + "Actors": [ + "0173 0078 0208 F4C6 0000 0021 0001 3F05", + "01D1 0078 01D4 F484 0000 0000 0000 B820" + ] + }, + { + "File": { + "Name": "Scene 3, Room 5", + "Start": "02411000", + "End": "024145E0", + "RemapStart": null + }, + "Id": 5, + "Objects": [ + "0073", + "0072", + "000E", + "00A4", + "005D", + "0024", + "0032" + ], + "Actors": [ + "0008 FAC0 01B6 FA27 0000 4000 0000 83F0", + "0008 FAC0 01B6 FA2F 0000 4000 0000 83F0", + "0008 FAC0 01B6 FA91 0000 4000 0000 83F0", + "0008 FAC0 01B6 FA99 0000 4000 0000 83F0", + "0002 FC18 017F FA60 0000 4000 0000 FFFF", + "0187 FCC2 017F FA60 0000 0000 0000 4FFF" + ] + }, + { + "File": { + "Name": "Scene 3, Room 6", + "Start": "02415000", + "End": "0241E4C0", + "RemapStart": null + }, + "Id": 6, + "Objects": [ + "0073", + "0072", + "000E", + "00A4", + "005D", + "0024", + "0032", + "0190", + "00A8", + "0183" + ], + "Actors": [ + "01AF 0000 01D3 F2F4 0000 0E39 0000 FF00", + "01AF 00FA 01D3 F2F4 0000 F1C7 0000 FF00", + "000A 0077 01D3 F290 0000 8000 0000 7840", + "000A 0077 033B F290 0000 8000 0015 B08C", + "0086 00D1 033B F308 0000 0000 0000 1500", + "01D1 0078 01D4 F3F8 0000 8000 0000 B820", + "0111 005A 01D3 F201 0000 0000 0000 6203", + "0111 008E 01D3 F201 0000 0000 0000 6412", + "0111 00CE 033B F1D1 0000 0000 0000 6603", + "0111 0020 033B F43C 0000 8000 0000 6803", + "0111 001E 033B F1D1 0000 0000 0000 6A03", + "0111 00CA 033B F43C 0000 8000 0000 6C03" + ] + }, + { + "File": { + "Name": "Scene 3, Room 7", + "Start": "0241F000", + "End": "02432000", + "RemapStart": "241E5A0" + }, + "Id": 7, + "Objects": [ + "0073", + "0072", + "000E", + "00A4", + "005D", + "0024", + "0179", + "0036", + "0039", + "011C", + "00B7", + "015C", + "0190", + "00A8" + ], + "Actors": [ + "012D 021B 03DC F506 0000 4000 0000 FFC2", + "012D 03F7 0211 F6DE 0000 6000 0000 FFC2", + "0095 02C0 0389 F42F 0000 0000 0000 0000", + "0055 0604 0143 F5A0 0000 160B 0000 0000", + "0055 0446 00CB F5F1 0000 DF4A 0000 0001", + "0055 0464 00C4 F815 0000 25B0 0000 0001", + "0095 03FD 0212 F6D8 0000 6000 0000 8401", + "000A 05F0 0143 F545 0000 8000 0000 5841", + "000A 038D 0320 F3F3 0000 8000 0000 5845", + "000A 04B5 FF14 F920 0000 C000 0000 5849", + "01D1 0280 01EA F4A8 0000 0000 0000 2822", + "01D1 0280 0186 F588 0000 2000 0000 A823", + "01D1 06C5 017F F618 0000 0000 0000 3924", + "00E4 04F1 00AE F920 0000 0000 0000 0026", + "012A 04F3 0064 F8D0 0000 0000 0000 2602", + "01D1 06C5 0143 F5DC 0000 0000 0000 B927", + "01D1 06C5 01CF F596 0000 0000 0000 B928", + "01D1 0308 0186 F611 0000 2000 0000 2829" + ] + }, + { + "File": { + "Name": "Scene 3, Room 8", + "Start": "02432000", + "End": "02449B70", + "RemapStart": null + }, + "Id": 8, + "Objects": [ + "0073", + "0072", + "000E", + "00A4", + "005D", + "0024", + "0179", + "0036", + "0039", + "0007", + "00B7", + "015C" + ], + "Actors": [ + "000E FC5A 00BC F496 0000 293F 0000 FF00", + "000E FC0E 00BC F5A0 0000 1D28 0000 FF00", + "000E FACE 00BC F651 0000 3333 0000 FF00", + "0095 FECF 0301 F47E 0000 C000 0000 0000", + "0095 FECF 014D F49D 0000 C000 0000 0000", + "0095 FECF 026E F4BF 0000 C000 0000 0000", + "0037 FEB7 0370 F506 0000 C000 0000 0000", + "0095 FB6E 01A8 F9A7 0000 705B 0000 8404", + "000F FEC3 034D F4E3 438E C000 0000 0FE1", + "00E4 FBFD 00AE F920 0000 0000 0000 0026", + "0015 FB9C 01F8 F4D9 0000 0000 0000 2D03", + "0015 FB7B 01F8 F512 0000 0000 0000 2E03", + "0015 FB60 01F8 F548 0000 0000 0000 2F03" + ] + }, + { + "File": { + "Name": "Scene 3, Room 9", + "Start": "0244A000", + "End": "02454190", + "RemapStart": null + }, + "Id": 9, + "Objects": [ + "0073", + "0072", + "000E", + "00A4", + "005D", + "0024", + "0007", + "0039", + "00B7" + ], + "Actors": [ + "0095 FBAD FF06 F894 0000 4000 0000 8408", + "000A 04B5 FF14 F920 0000 C000 0000 5849", + "00E4 0077 FEE6 F8E4 0000 0000 0000 0026", + "012A 04F3 0064 F8D0 0000 0000 0000 2602", + "0015 0073 FF14 F925 0000 0000 0000 3803", + "0015 000F FF14 F925 0000 0000 0000 3903", + "0015 00D7 FF14 F925 0000 0000 0000 3A03" + ] + }, + { + "File": { + "Name": "Scene 3, Room 10", + "Start": "02455000", + "End": "0245A3E0", + "RemapStart": null + }, + "Id": 10, + "Objects": [ + "0073", + "0072", + "000E", + "00A4", + "005D", + "0024", + "0179", + "0036", + "0039" + ], + "Actors": [ + "0037 0030 038D F501 0000 293F 0000 0001", + "005E 0078 0320 F57D 0000 8000 0000 2400", + "000F FFB4 0320 F505 0000 3555 0000 1FE1" + ] + }, + { + "File": { + "Name": "Scene 3, Room 11", + "Start": "0245B000", + "End": "02465BD0", + "RemapStart": null + }, + "Id": 11, + "Objects": [ + "0073", + "0072", + "000E", + "00A4", + "005D", + "0024", + "0179", + "005C", + "006F", + "00B7", + "011C" + ], + "Actors": [ + "012D FA22 02AB F8F7 4000 0000 0000 FFC2", + "0069 FA16 04EF F946 0000 E9F5 0000 FFFF", + "0069 F944 04EF FACC 0000 F3E9 0000 FFFF", + "00FF F851 026F FB14 0000 4000 0000 0542", + "00FF F851 026F FC04 0000 4000 0000 0542", + "00FF F711 025B FC04 0000 0000 0000 0546", + "0139 F711 025B FC04 0000 0000 0000 0005", + "00FF F879 034B FB8C 0000 4000 0000 0702", + "00FF F8F1 034B FB8C 0000 4000 0000 0702", + "00FF F9B9 0337 FB8C 0000 0000 0000 0706", + "0139 F9B9 0337 FB8C 0000 0000 0000 0007", + "011B F781 026F FB16 0014 0029 0000 088F", + "012D F941 026F FACA 0000 8000 0000 0FC1", + "012D FA5C 03FF FB50 0000 8000 0000 0FC1", + "01B4 F9D7 02AB FAC4 0000 0000 0000 0F01", + "01B4 FA63 02E7 FAC4 0000 0000 0000 0F01", + "012A FA5C 03FF FB8B 0000 C000 0000 0F03", + "0095 FA74 017F FC22 0000 C000 0000 8410", + "01B4 FA22 028C F95B C000 0000 0000 1301", + "01B4 FA22 0228 F95B C000 0000 0000 1301", + "012A FA22 020B F933 0000 0000 0000 1313", + "0068 F91F 04FE F439 0000 0000 0000 7F13" + ] + }, + { + "File": { + "Name": "Scene 3, Room 12", + "Start": "02466000", + "End": "0246E3E0", + "RemapStart": null + }, + "Id": 12, + "Objects": [ + "0073", + "0072", + "000E", + "00A4", + "005D", + "0024", + "0179", + "005C", + "006F", + "0099" + ], + "Actors": [ + "0173 FE52 0371 F2B2 0002 001E 0000 3F94", + "0173 FE52 0371 F2B2 0002 005E 0000 0A95", + "000A FE36 033B F259 0000 4000 0000 182D", + "0093 FD3D 051C F2CC 0000 C000 0000 021D", + "0105 FE51 033B F2AE 0000 0000 0000 011D" + ] + }, + { + "File": { + "Name": "Scene 3, Room 13", + "Start": "0246F000", + "End": "02477AB0", + "RemapStart": null + }, + "Id": 13, + "Objects": [ + "0073", + "0072", + "000E", + "00A4", + "005D", + "0024", + "0070", + "0071", + "0099" + ], + "Actors": [ + "0173 0225 0371 F2B2 0002 001F 0000 3F94", + "0173 0225 0371 F2B2 0002 005F 0000 0B95", + "000A 023F 033B F256 0000 C000 0000 180F", + "0093 0339 051C F2CC 0000 4000 0000 031E", + "0105 0225 033B F2AE 0000 0000 0000 021E", + "0111 033E 033B F1C9 0000 0000 0000 4C03", + "0111 03AD 033B F1C8 0000 0000 0000 4E09", + "0111 0373 033B F1C8 0000 0000 0000 5009" + ] + }, + { + "File": { + "Name": "Scene 3, Room 14", + "Start": "02478000", + "End": "0247DBB0", + "RemapStart": null + }, + "Id": 14, + "Objects": [ + "0073", + "0072", + "000E", + "00A4", + "005D", + "0024", + "0070", + "0071", + "0179" + ], + "Actors": [ + "00E3 07CF 0422 FAD6 0000 0000 0000 FF00", + "0173 05EF 0549 FAD6 0003 0019 0000 3F97", + "0068 07CF 04FE F439 0000 0000 0000 FF18", + "012A 05EF 0549 FAD6 0000 4000 0000 1892", + "01B4 07D0 04FE F90C 4000 0000 0000 3801", + "005E 07F5 04BF FAD6 0000 C000 0000 03F8", + "012A 07C8 04CC FAD6 0000 4000 0000 3820", + "0110 0908 0445 FC96 0000 0000 0000 3808", + "0110 093C 0445 FC97 0000 0000 0000 3908", + "0110 063F 04CC FAD6 0000 4000 0000 3A03" + ] + }, + { + "File": { + "Name": "Scene 3, Room 15", + "Start": "0247E000", + "End": "02480690", + "RemapStart": null + }, + "Id": 15, + "Objects": [ + "0073", + "0072", + "000E", + "00A4", + "005D", + "0024" + ], + "Actors": [ + "0037 0728 02C6 F446 0000 8000 0000 0000", + "0037 0816 02C3 F44A 0000 8000 0000 0000", + "0037 0815 02C6 F537 0000 8000 0000 0000", + "0037 0725 02C6 F58B 0000 8000 0000 0000", + "0037 0866 02C3 F5DD 0000 8000 0000 0000", + "0037 077A 02C6 F6C3 0000 8000 0000 0000", + "0037 07CA 02C8 F768 0000 8000 0000 0000", + "0089 07C7 02AB F628 0000 8000 0000 FFFF", + "000A 0867 02F2 F628 0000 0000 000E 8926", + "011B 07C0 0193 F405 0032 002C 0014 4998", + "012A 0728 0193 F7B8 0000 0000 0000 0E00", + "012A 0817 0193 F769 0000 0000 0000 1900" + ] + }, + { + "File": { + "Name": "Scene 3, Room 16", + "Start": "02481000", + "End": "02485FA0", + "RemapStart": "2480760" + }, + "Id": 16, + "Objects": [ + "0073", + "0072", + "000E", + "00A4", + "005D", + "0024", + "0099" + ], + "Actors": [ + "0173 06B8 020E FAC1 0002 0020 0000 3F94", + "0173 06B8 020E FAC1 0002 0060 0000 0C95", + "0093 07ED 0373 FA42 0000 4000 0000 011F", + "0093 0933 025B FA60 0000 C000 0000 041F", + "0105 06B5 01CF FAC4 0000 4000 0000 031F", + "0093 0829 0373 FA06 0000 4000 0000 001F", + "0111 066F 01CF FA07 0000 0000 0000 5603", + "0111 066D 01CF F9CC 0000 0000 0000 5809" + ] + }, + { + "File": { + "Name": "Scene 3, Room 17", + "Start": "02486000", + "End": "0248F150", + "RemapStart": null + }, + "Id": 17, + "Objects": [ + "0073", + "0072", + "000E", + "00A4", + "005D", + "0024", + "015C", + "00B0" + ], + "Actors": [ + "0037 FEA6 FD30 FBB1 0000 6000 0000 0000", + "0037 FEDE FD30 FB75 0000 6000 0000 0001", + "0088 0077 FCF5 F9E2 0000 8000 0000 FFFF", + "000A FE8C FCF5 F7F0 0000 A000 0000 592B", + "00E3 0077 FCF5 FBFB 0000 8000 0000 1001", + "012A 031D FCF5 F9E2 0000 C000 0000 1000", + "00E3 0077 FCF5 F7C9 0000 0000 0000 1101", + "012A 0077 FDC6 FC0F 0000 0000 0000 1102", + "012A 0266 FD80 F9E2 8000 C000 0000 1203", + "00E3 0291 FCF5 F9E2 0000 C000 0000 1201", + "0087 0077 FCF5 F9E2 0000 0000 0000 001B", + "0111 FE33 FCF5 FBB9 0000 6000 0000 7003", + "0111 FEA1 FCF5 FC2D 0000 6000 0000 7203", + "0111 FE7D FCF5 FC06 0000 6000 0000 740B", + "0111 FE58 FCF5 FBDF 0000 6000 0000 7608" + ] + }, + { + "File": { + "Name": "Scene 3, Room 18", + "Start": "02490000", + "End": "02491340", + "RemapStart": null + }, + "Id": 18, + "Objects": [ + "0073", + "0072", + "000E", + "00A4", + "005D", + "0024", + "000B", + "0098" + ], + "Actors": [ + "0090 F83D 01F7 F8CE 0000 53E9 0000 7F00", + "000A F7F4 01F7 F804 0000 C000 0000 7842" + ] + }, + { + "File": { + "Name": "Scene 3, Room 19", + "Start": "02492000", + "End": "02492510", + "RemapStart": null + }, + "Id": 19, + "Objects": [ + "0073", + "0072", + "000E", + "00A4", + "005D", + "0024", + "0179", + "005C", + "006F", + "000B" + ], + "Actors": [ + "0011 F91D 05BB F30A 0000 0000 0000 0001", + "0173 F9F0 0595 F274 0000 0014 0000 3F92", + "0068 F91F 04FE F439 0000 0000 0000 3F13", + "011B F913 04B6 F3C9 0000 0000 0000 1691" + ] + }, + { + "File": { + "Name": "Scene 3, Room 20", + "Start": "02493000", + "End": "02494300", + "RemapStart": null + }, + "Id": 20, + "Objects": [ + "0073", + "0072", + "000E", + "00A4", + "005D", + "0024", + "0070", + "0071", + "000B" + ], + "Actors": [ + "0069 07CE 04FC F639 0000 8000 0000 01FC", + "0069 07D1 04F5 F78B 0000 8000 0000 01FC", + "0011 07CE 05C0 F302 0000 C0B6 0000 0001", + "011B 071A 04CC F309 0000 0000 0000 1791", + "0068 07CF 04FE F439 0000 0000 0000 BF18" + ] + }, + { + "File": { + "Name": "Scene 3, Room 21", + "Start": "02495000", + "End": "02496780", + "RemapStart": null + }, + "Id": 21, + "Objects": [ + "0073", + "0072", + "000E", + "00A4", + "005D", + "0024", + "0179", + "005C", + "006F", + "000B" + ], + "Actors": [ + "008E F996 020B F48A 0000 8000 0000 0000" + ] + }, + { + "File": { + "Name": "Scene 3, Room 22", + "Start": "02497000", + "End": "02498DE0", + "RemapStart": null + }, + "Id": 22, + "Objects": [ + "0073", + "0072", + "000E", + "00A4", + "005D", + "0024", + "015C", + "00B0" + ], + "Actors": [] + } + ], + "ColDelta": { + "IsLarger": false, + "Polys": [], + "PolyTypes": [], + "Cams": [ + { + "Data": 0, + "PositionIndex": -1 + }, + { + "Data": 4063232, + "PositionIndex": -1 + }, + { + "Data": 65536, + "PositionIndex": -1 + }, + { + "Data": 262144, + "PositionIndex": -1 + }, + { + "Data": 196608, + "PositionIndex": -1 + }, + { + "Data": 327680, + "PositionIndex": -1 + }, + { + "Data": 3801088, + "PositionIndex": -1 + } + ] + } + }, + { + "File": { + "Name": "Scene 4", + "Start": "022D8000", + "End": "022F2970", + "RemapStart": null + }, + "Id": 4, + "TActors": [ + "05FF 04FF 0023 0820 0992 FD80 4000 00BF", + "0AFF 02FF 0023 FC04 07C6 0000 0000 00BF", + "06FF 01FF 0023 0618 076C 0000 8000 007F", + "08FF 06FF 0023 0618 0ED8 0000 8000 007F", + "0DFF 0BFF 0023 F90C 0ED8 0000 8000 007F", + "09FF 10FF 002E 0154 0B7C 00BE 4000 009F", + "04FF 15FF 0009 0BFE 080C 0000 4000 003F", + "0AFF 09FF 0009 FDD0 0B7C 00BE 4000 003F", + "0AFF 0BFF 002E F90C 0AF0 FEB6 0000 0099", + "0BFF 0AFF 0009 F90C 0AF0 014A 0000 003F", + "0DFF 0CFF 0009 F6BE 1130 0014 C000 0098", + "0CFF 18FF 0009 F576 0FA0 009F C000 003F", + "13FF 01FF 002E 0618 00F0 FA10 0000 00A9", + "14FF 0100 0009 0618 0064 F9E8 0000 003F", + "15FF 01FF 0009 0A8C 00C8 0000 C000 009E", + "16FF 01FF 0009 0618 00C8 062C 8000 003F", + "02FF 00FF 002E FE5C 00C8 0000 4000 00A8", + "00FF 11FF 002E FEE8 0000 008C 8000 007F", + "17FF 05FF 002E 06F4 0AF0 FA24 0000 00BE", + "10FF 06FF 002E 062C 0AF0 014A 8000 00BF", + "10FF 06FF 002E 04CE 0AF0 003C 4000 00BF", + "06FF 05FF 002E 060E 0AF0 FEB6 8000 00BF", + "05FF 07FF 0009 062C 0FA0 FDB2 0000 003F", + "08FF 07FF 002E 062C 1130 FDB2 8000 00B5", + "0BFF 0AFF 0009 FA56 0BA4 0000 4000 003F", + "11FF 03FF 002E FEE8 0000 FC7C 8000 007F", + "0AFF 18FF 002E F593 0B18 FF69 E000 007F", + "05FF 04FF 0009 0A14 0AF0 0000 C000 003F", + "10FF 05FF 0009 05B4 0B7C FD8A 4000 009A", + "03FF 12FF 002E 0000 0000 FB28 4000 007F", + "0AFF 0EFF 002E FB5C 0E60 FF3B A0B6 01FD", + "0EFF 0DFF 0009 F6EE 1054 FD03 E000 009B", + "12FF 0FFF 002E 00EE 0000 FC94 0000 007F", + "19FF 0AFF 0009 FBDE 0AF0 FC76 E000 003F", + "0FFF 00FF 0009 0118 0000 008C 0000 0097", + "1AFF 02FF 002E F9E8 00C8 0000 4000 0154", + "01FF 00FF 0009 01A4 00C8 0000 C000 003F" + ], + "Paths": [ + { + "Points": [ + [ + -310, + 0, + -318 + ], + [ + -309, + 0, + -127 + ] + ] + }, + { + "Points": [ + [ + 1879, + 100, + -1883 + ], + [ + 1685, + 100, + -1881 + ] + ] + }, + { + "Points": [ + [ + 1536, + 200, + 2035 + ], + [ + 1536, + 200, + 1860 + ] + ] + }, + { + "Points": [ + [ + 1462, + 2800, + -1817 + ], + [ + 1658, + 2800, + -1815 + ] + ] + } + ], + "Rooms": [ + { + "File": { + "Name": "Scene 4, Room 0", + "Start": "022F3000", + "End": "022FA2C0", + "RemapStart": null + }, + "Id": 0, + "Objects": [ + "002C", + "000E", + "00A4", + "018E" + ], + "Actors": [ + "0040 0172 0140 0000 0000 C000 0000 0601", + "0040 0172 0104 0000 0000 C000 0000 0C00", + "0040 0172 00C8 0000 0000 C000 0000 0D00", + "000C 0000 0004 0220 0000 0000 0000 00FF", + "0008 006A 00F6 FF6F 0000 0000 0000 0284", + "005E FF7C 00A0 014C 0000 0000 0000 1128", + "005E FF9A 00C7 FF6F 0000 0000 0000 1128", + "005E 0003 00DB FF74 0000 0000 0000 1128", + "005E 0083 00A0 0149 0000 0000 0000 1128", + "0111 FE9B 0000 03BD 0000 0000 0000 560F", + "0111 0164 0001 03BF 0000 0000 0000 580F" + ] + }, + { + "File": { + "Name": "Scene 4, Room 1", + "Start": "022FB000", + "End": "023079E0", + "RemapStart": null + }, + "Id": 1, + "Objects": [ + "002C", + "011C", + "00A4", + "000E", + "0024", + "015C" + ], + "Actors": [ + "012D 049C 0000 0086 0000 0000 0000 2AC1", + "012D 05C5 00F0 FAAA 0000 0000 0000 2AC1", + "012D 06A8 0000 FF2A 0000 0000 0000 2AC1", + "012D 06A9 0000 0399 0000 0000 0000 2AC1", + "008D 04E2 0000 0492 0000 0000 0000 00FF", + "008D 07FA 0000 0492 0000 8000 0000 00FF", + "0046 066B 0000 0431 0000 4000 0000 0001", + "0046 079A 0000 023B 0000 0000 0000 0001", + "0046 07AE 0000 FE67 0000 4000 0000 0001", + "00CF 0618 00C8 05DC 0000 8000 0000 0701", + "0043 073A 0000 FD1A 0000 0000 0000 FF01", + "0046 0514 0000 035B 0000 0000 0000 0000", + "0046 061E 0000 FC5F 0000 C000 0000 0000", + "0046 079A 0000 037B 0000 C000 0000 0000", + "005E 05EF 00F0 FA37 0000 0000 0000 10A9", + "005E 0864 016E FCBA 0000 0000 0000 10A9", + "005E 0631 00C8 0514 0000 0000 0000 106A", + "0111 066E 0068 FB14 0000 0000 0000 4009", + "0111 08B2 0190 FCD7 0000 0000 0000 420F", + "0111 0662 00C8 05C3 0000 0000 0000 440F" + ] + }, + { + "File": { + "Name": "Scene 4, Room 2", + "Start": "02308000", + "End": "02317FD0", + "RemapStart": "2307B30" + }, + "Id": 2, + "Objects": [ + "002C", + "000E", + "00A4", + "0170", + "009D", + "00B0", + "011C", + "0190", + "00A8", + "0024", + "015C" + ], + "Actors": [ + "003B FC6A 0000 FFD5 0000 0000 0000 0006", + "012D FB35 008C FE16 0000 0000 0000 FFC0", + "0098 FA71 00C8 0000 0000 4000 0000 FFFF", + "0041 FC04 0BB8 0000 0000 4000 0000 000E", + "006F FAD5 00C8 0329 0000 8000 0000 0800", + "005E FAD8 00C8 0184 0000 4000 0000 10C8", + "005E FB35 00C8 FE16 0000 0000 0000 10C8", + "005E FB97 016D FD78 0000 0000 0000 10C8", + "0111 FA6E 00C8 FD39 0000 0000 0000 5A0E", + "0111 FA6F 00C8 FD6C 0000 0000 0000 5C0A", + "01A0 FA4F 00C8 FDEA 0000 4000 0000 FFFF", + "01A0 FA4F 00C8 FE5F 0000 4000 0000 FFFF", + "01A0 FB45 012C FCF9 0000 0000 0000 FFFF", + "01A0 FB4B 00C8 02C5 0000 4000 0000 FFFF", + "01A0 FB4B 00C8 0301 0000 4000 0000 FFFF", + "01A0 FB96 0190 FD72 0000 0000 0000 FFFF", + "000A FAF9 00C8 03C5 0000 4000 0000 5847" + ] + }, + { + "File": { + "Name": "Scene 4, Room 3", + "Start": "02318000", + "End": "0231A4E0", + "RemapStart": null + }, + "Id": 3, + "Objects": [ + "002C", + "00A4", + "000E", + "009E" + ], + "Actors": [ + "0099 FE97 0050 FAEC 0000 0000 0000 FFFF", + "0049 FE97 0050 FAEC 0000 0000 0000 0FFF", + "000A FE97 0050 FAEC 0000 0000 0000 11A0" + ] + }, + { + "File": { + "Name": "Scene 4, Room 4", + "Start": "0231B000", + "End": "02322890", + "RemapStart": null + }, + "Id": 4, + "Objects": [ + "002C", + "000E", + "011C", + "00A4", + "001B", + "0170", + "0190", + "00A8", + "0024" + ], + "Actors": [ + "012D 0893 08D4 016A 0000 0000 0000 2BC1", + "012D 098A 0B6E 0004 4000 0000 0000 FFC2", + "012A 088E 0820 FFC7 0000 C000 0000 0401", + "0025 092F 09D8 FFE6 0000 0000 0000 FFFF", + "006F 0950 0820 0000 0000 4000 0000 0401", + "006F 0A10 0820 0000 0000 C000 0000 0401", + "0112 09D8 0802 0156 0000 0000 0002 18BF", + "0112 09D8 0802 0156 0000 0000 0002 193F", + "0112 09D8 0802 0156 0000 0000 0002 19BF", + "005E 0923 08E8 02BF 0000 0000 0000 106B", + "01A0 07EE 0820 0037 0000 0000 0000 FFFF", + "01A0 082A 0820 0037 0000 0000 0000 FFFF", + "01A0 0857 0820 FFC2 0000 4000 0000 FFFF", + "01A0 0866 0820 0037 0000 0000 0000 FFFF", + "01A0 088D 0820 FFC8 0000 0000 0000 FFFF", + "01A0 08C9 0820 FFC8 0000 0000 0000 FFFF", + "000A 09AA 0820 FFCE 0000 8000 0000 080B" + ] + }, + { + "File": { + "Name": "Scene 4, Room 5", + "Start": "02323000", + "End": "0232D230", + "RemapStart": null + }, + "Id": 5, + "Objects": [ + "002C", + "000E", + "011C", + "00A4", + "001B", + "0170", + "0190", + "00A8", + "0024" + ], + "Actors": [ + "012D 0617 0C80 FEA6 0000 0000 0000 2CC1", + "012D 07E4 0B7C FE22 0000 0000 0000 2CC1", + "012D 085C 0AB5 FB64 0000 0000 0000 2CC1", + "012D 08D4 0AB4 FB64 0000 0000 0000 2CC1", + "012D 098F 0B7C FE9F 0000 0000 0000 2CC1", + "012D 098F 0B7C 0154 0000 0000 0000 2CC1", + "0095 08E5 0B38 FB9B 0000 C000 0000 0000", + "012A 0895 0AF0 FBA2 0000 0000 0000 2C01", + "0025 06F1 0AF0 0231 0000 0000 0000 FFFF", + "0025 076C 0AF0 FCBD 0000 0000 0000 FFFF", + "0025 0885 0AF0 FFB9 0000 0000 0000 FFFF", + "0025 08D7 0AF0 0207 0000 0000 0000 FFFF", + "004E 062C 0C76 FCEA 0000 0000 0000 FFFF", + "00CF 0820 0B7C FD80 0000 4000 0000 0000", + "00CF 0708 0AF0 FB50 0000 0000 0000 2D02", + "00CF 07A8 0AF0 FB50 0000 0000 0000 2D02", + "00CF 0898 0AF0 FBF0 0000 0000 0000 2E02", + "006F 0887 0AF0 042D 0000 8000 0000 0302", + "006F 06E4 0B7C 04B9 0000 8000 0000 0A02", + "0112 0AC5 0B2E 0001 0000 0000 0006 1ABF", + "01D1 0761 0BC9 FE2A 0000 0000 0000 10FF", + "012A 084B 0AE6 0481 0000 0000 0000 0303", + "012A 06E2 0B7C 04CC 0000 0000 0000 0A03", + "012A 073F 0AF0 FA55 0000 0000 0000 3E20", + "01A0 06AE 0B7C 0538 0000 0000 0000 FFFF", + "01A0 06AE 0B7C 0508 0000 0000 0000 FFFF", + "01A0 0719 0B7C 0532 0000 4000 0000 FFFF", + "01A0 084C 0AF0 0482 0000 4000 0000 FFFF", + "01A0 08B6 0AF0 04AB 0000 0000 0000 FFFF", + "01A0 08B6 0AF0 047B 0000 0000 0000 FFFF", + "000A 08B4 0AF0 04A6 0000 4000 0000 5CC3", + "000A 0712 0B7C 0532 0000 4000 0000 5CE6", + "0110 06A3 0BB2 0534 0000 0000 0000 FFFF", + "0110 06A3 0BB2 050A 0000 0000 0000 FFFF" + ] + }, + { + "File": { + "Name": "Scene 4, Room 6", + "Start": "0232E000", + "End": "02334FA0", + "RemapStart": null + }, + "Id": 6, + "Objects": [ + "002C", + "011C", + "00A4", + "000E", + "0024", + "015C" + ], + "Actors": [ + "012D 060D 0BA0 FED0 0000 0000 0000 FFC2", + "0111 06DC 0AF0 FF65 0000 0000 0000 7212", + "0111 071B 0AF0 FFAE 0000 0000 0000 7409", + "0111 06FD 0AF0 FF86 0000 0000 0000 760B" + ] + }, + { + "File": { + "Name": "Scene 4, Room 7", + "Start": "02335000", + "End": "023389E0", + "RemapStart": null + }, + "Id": 7, + "Objects": [ + "002C", + "0025", + "011C" + ], + "Actors": [ + "012D 05B4 1098 FCA7 0000 0000 0000 FFC2", + "012D 062A 1250 FD3A 4000 0000 0000 FFC2", + "0038 053E 0FA0 FD5D 0000 0000 0000 FFFF", + "0038 05BE 1054 FD68 0000 8000 0000 FFFF", + "0112 0594 0FE8 FD39 0000 0000 0006 18BF", + "0112 0594 0FE8 FD39 0000 0000 0006 1AFF", + "0112 05B2 1038 FE8A 0000 0000 0006 18B5", + "0112 05B2 1038 FE8A 0000 0000 0006 1AF5", + "0173 05B1 103D FE8B 0000 0036 0001 3F00" + ] + }, + { + "File": { + "Name": "Scene 4, Room 8", + "Start": "02339000", + "End": "02342AC0", + "RemapStart": null + }, + "Id": 8, + "Objects": [ + "002C", + "011C", + "00A4", + "000E", + "0024", + "015C" + ], + "Actors": [ + "012D 05D4 1248 FD38 0000 0000 0000 3DC1", + "012D 073C 1248 FEC8 0000 2000 0000 3DC1", + "012D 05C9 122C 014F EE39 0000 F8E4 FF40", + "012A 07D3 1248 FE25 0000 2000 0000 3D01", + "0049 0792 1248 FE77 0000 0000 0000 1378", + "00FF 0792 1248 FE75 0000 2000 0000 FF00", + "0095 0792 1248 FE76 FF4A 2000 0000 8504", + "012A 04C5 1130 FDB1 0000 0000 0000 3800" + ] + }, + { + "File": { + "Name": "Scene 4, Room 9", + "Start": "02343000", + "End": "0234B770", + "RemapStart": null + }, + "Id": 9, + "Objects": [ + "002C", + "018E" + ], + "Actors": [ + "0008 FEC9 0BAE 0077 0000 0000 0000 03F4", + "0008 FEC9 0BAE 0105 0000 8000 0000 03F4", + "0008 0058 0BAE 0078 0000 0000 0000 03F4", + "0008 0059 0BAE 0106 0000 8000 0000 03F4" + ] + }, + { + "File": { + "Name": "Scene 4, Room 10", + "Start": "0234C000", + "End": "023644A0", + "RemapStart": null + }, + "Id": 10, + "Objects": [ + "002C", + "000E", + "00A4", + "0170", + "009D", + "00B0", + "011C", + "0190", + "00A8", + "0024", + "015C" + ], + "Actors": [ + "0041 FB3C 0E74 0000 0000 0000 0000 0110", + "0041 FC04 0BB8 0000 0000 4000 0000 000E", + "000C F8D5 0AF0 FD65 00B6 49F5 0000 00FF", + "000C F85A 0AF0 FB9D 0000 4000 0000 00FF", + "000C F8F8 0AF0 FCE3 FF4A 1DDE 0000 00FF", + "000C F770 0AF0 0210 FF4A 6000 0000 00FF", + "000C F7D7 0AF0 FCBD 0000 2000 0000 00FF", + "000C F83B 0AF0 FDDA 0000 3555 0000 00FF", + "000C FBF1 0AF0 FD85 0000 6000 0000 00FF", + "000C F9C0 0AF0 FDC2 0000 2000 0000 00FF", + "000C F892 0AF0 02A8 0000 0000 0000 00FF", + "000C F897 0AF0 01B8 0000 4000 0000 00FF", + "000C F897 0AF0 03E8 0000 0000 0000 00FF", + "000C F8E5 0AF0 02FB 0000 4000 0000 00FF", + "000C F8E6 0AF0 0399 0000 4000 0000 00FF", + "000C F835 0AF0 FC39 0000 2AAB 0000 00FF", + "000C F932 0AF0 02A8 0000 0000 0000 00FF", + "000C F984 0AF0 0392 0000 4000 0000 00FF", + "000C F987 0AF0 FE48 0000 4000 0000 00FF", + "000C F987 0AF0 01B8 0000 4000 0000 00FF", + "000C F987 0AF0 0258 0000 4000 0000 00FF", + "000C F98A 0AF0 0445 0000 4000 0000 00FF", + "000C F955 0AF0 FCE1 0000 DF4A 0000 00FF", + "000C FA23 0AF0 FEC3 0000 2000 0000 00FF", + "000C FA31 0AF0 FD4E 0000 2000 0000 00FF", + "000C FA38 0AF0 0129 0000 6000 0000 00FF", + "000C FA97 0AF0 FE59 0000 2000 0000 00FF", + "000C FAB2 0AF0 FC5F 0000 5555 0000 00FF", + "000C F769 0AF0 FD2F 0000 2000 0000 00FF", + "000C FAC5 0AF0 0227 0000 2000 0000 00FF", + "000C FB0C 0AF0 FDF1 0000 1777 0000 00FF", + "000C FB36 0AF0 0227 0000 6000 0000 00FF", + "000C FB86 0AF0 FD8A 0000 2000 0000 00FF", + "000C FB9B 0AF0 0343 FF4A 6000 0000 00FF", + "000C FCDA 0AF0 FDFE 0000 2000 0000 00FF", + "000C FC68 0AF0 FDFB 0000 6000 0000 00FF", + "000C F895 0AF0 FDA2 0000 F777 0000 00FF", + "000C F7D8 0AF0 FE12 0000 76C1 0000 00FF", + "000C F9B3 0AF0 FD53 0000 DF4A 0000 00FF", + "000C F757 0AF0 FDB0 0000 599A 0000 00FF", + "008D F702 0B18 FDFD 0000 6000 0000 0039", + "0095 FAEC 0EB8 004A 4000 6000 0000 8502", + "0112 F640 0BF7 FEB7 0000 0000 0006 1AFF", + "01D1 FCE6 0AF0 0003 0000 0000 0000 9837", + "01D6 FAC5 0B91 FF15 0000 0000 0000 1836", + "01D6 FC9E 0AF0 FD9A 0000 2000 0000 9836", + "0173 FCE8 0AF0 0004 0003 0000 0000 3FA5", + "0111 F757 0B18 FF5D 0000 0000 0000 4604", + "0111 F59F 0B18 FDB1 0000 0000 0000 4803", + "0111 F8C7 0AF0 FBA6 0000 0000 0000 4A03", + "0111 F7C2 0AF0 FD7A 0000 0000 0000 4C04", + "0111 F6F1 0AF0 0346 0000 0000 0000 4E12", + "0111 F713 0AF0 0323 0000 0000 0000 500B", + "012A F74F 0AF0 FC3A 0000 2000 0000 3900" + ] + }, + { + "File": { + "Name": "Scene 4, Room 11", + "Start": "02365000", + "End": "023687C0", + "RemapStart": null + }, + "Id": 11, + "Objects": [ + "002C", + "00A4", + "000E", + "011C", + "0024", + "015C", + "0154" + ], + "Actors": [ + "012D F82E 0B69 0062 0000 4000 0000 FFC0", + "012D F9E6 0B68 0066 0000 C000 0000 FFC0", + "012A F84A 0BA4 FF85 0000 4000 0000 1901", + "000C F976 0BA4 0000 0000 C000 0000 00FF", + "000C F976 0BA4 FF74 0000 C000 0000 00FF", + "000C F976 0BA4 FEE8 0000 C000 0000 00FF", + "000C F976 0BA4 008C 0000 C000 0000 00FF", + "000C F976 0BA4 0118 0000 C000 0000 00FF", + "008D F89C 0B54 0001 0000 C000 0000 00FF", + "00CF F9E6 0AF0 FFFD 0000 C000 0000 0B02", + "0095 FA35 0B1C FFFE C000 4000 0000 8508" + ] + }, + { + "File": { + "Name": "Scene 4, Room 12", + "Start": "02369000", + "End": "0236BB80", + "RemapStart": null + }, + "Id": 12, + "Objects": [ + "002C", + "0025", + "005D", + "000D", + "0085", + "00A4", + "005F" + ], + "Actors": [ + "0112 F64E 1035 0099 0000 0000 0006 1AFF" + ] + }, + { + "File": { + "Name": "Scene 4, Room 13", + "Start": "0236C000", + "End": "02378BE0", + "RemapStart": null + }, + "Id": 13, + "Objects": [ + "002C", + "00A4", + "000E", + "011C", + "0024", + "015C", + "0154" + ], + "Actors": [ + "012D F688 11E4 FFCF 0000 0000 0000 3CC1", + "012D F70D 1130 FF02 0000 A000 0000 3CC1", + "01C9 F8F6 120C 0237 0000 638E 0009 18FF", + "0041 F6DB 1144 FED4 0000 E000 0000 0211", + "0049 F77C 1248 017C 0000 4000 0000 117A", + "0008 F704 1293 017C 0000 4000 0000 03F5", + "0008 F77C 1293 0104 0000 4000 0000 03F5", + "0008 F77C 1293 01F4 0000 4000 0000 03F5", + "0008 F7F4 1293 017C 0000 4000 0000 03F5", + "012A F6AA 1130 FF00 0000 0000 0000 3C03", + "012A FA34 1130 012C 0000 2000 0000 3A00", + "000A F77C 1248 017C 0000 E000 0000 5845" + ] + }, + { + "File": { + "Name": "Scene 4, Room 14", + "Start": "02379000", + "End": "0237B260", + "RemapStart": null + }, + "Id": 14, + "Objects": [ + "002C", + "00A4", + "000E", + "0032" + ], + "Actors": [ + "0071 F8A4 1068 FC84 0000 A000 0000 0F00", + "0112 FAC9 0F5A FEA8 0000 0000 0006 1AFD", + "0002 F81B 1054 FC05 0000 0000 0000 FFFF", + "0002 F9A7 1018 FD8D 0000 0000 0000 0003", + "0173 FAC8 0F5F FEA9 0000 003E 0001 3F00" + ] + }, + { + "File": { + "Name": "Scene 4, Room 15", + "Start": "0237C000", + "End": "0237D1D0", + "RemapStart": null + }, + "Id": 15, + "Objects": [ + "002C", + "0032", + "000D" + ], + "Actors": [ + "0013 00CA 0040 FFFA 0000 4000 0000 0003", + "0183 0064 0000 FDD9 0000 0000 0000 FF40", + "0002 0066 0000 FDAA 0000 0000 0000 FFFF", + "0002 011B 0000 FEC0 0000 0000 0000 FFFF" + ] + }, + { + "File": { + "Name": "Scene 4, Room 16", + "Start": "0237E000", + "End": "02389970", + "RemapStart": null + }, + "Id": 16, + "Objects": [ + "002C", + "00A4", + "000E", + "011C", + "0170" + ], + "Actors": [ + "0112 020B 0B2F 00F6 0000 0000 0006 1AFF", + "005E 04C4 0D2A FFCE E38E 4000 0000 03FC", + "005E 035E 0B59 FF52 0000 0000 0000 03FC", + "005E 025C 0B59 FF3E 0000 0000 0000 03FC", + "005E 04C4 0CDA FFCE E38E 4000 0000 105F", + "0111 05D5 0AF0 0182 0000 0000 0000 5209", + "0111 05A5 0AF0 01BD 0000 0000 0000 5409", + "012A 04AF 0AF0 FF64 0000 2000 0000 3C20", + "01A0 04BA 0B7C 00A3 0000 E000 0000 FFFF", + "01A0 03E7 0ADC FE6E 0000 4000 0000 FFFF", + "01A0 0581 0AF0 FB68 0000 0000 0000 FFFF", + "01A0 0180 0B7C 015F 0000 4000 0000 FFFF", + "01A0 057F 0B18 FD0C 0000 4000 0000 FFFF", + "0110 04F3 0B7C 00C8 0000 2000 0000 FFFF", + "0110 04BA 0BB3 00A3 0000 1E94 0000 FFFF", + "0110 02AD 0ADC 00B7 0000 0000 0000 FFFF", + "0110 057D 0AF0 FC31 0000 0000 0000 FFFF", + "0110 01CC 0B7C 0172 0000 0000 0000 FFFF" + ] + }, + { + "File": { + "Name": "Scene 4, Room 17", + "Start": "0238A000", + "End": "02393140", + "RemapStart": null + }, + "Id": 17, + "Objects": [ + "002C", + "00C9", + "000E", + "00D4", + "00F2" + ], + "Actors": [ + "011B FEE8 0000 FDBC 0000 0000 0000 12A9", + "012A FEE8 0000 FDBC 0000 0000 0000 0901", + "00DD FEE6 0082 FF70 0000 0000 0000 FFFF", + "006F FEE8 0000 FE20 0000 8000 0000 0900", + "006F FEED 0000 FEE8 0000 0000 0000 0900", + "01AE FECA 0000 FEC2 0000 0000 0000 2403", + "0008 FE9D 0032 FDBC 0000 0000 0000 03F4", + "0008 FE9D 0032 FF4C 0000 0000 0000 03F4", + "0008 FF33 0032 FDBC 0000 0000 0000 03F4", + "0008 FF33 0032 FF4C 0000 0000 0000 03F4", + "000A FF24 0000 FF24 0000 4000 0000 7542", + "000A FF10 0000 FE8E 0000 0000 0000 082C" + ] + }, + { + "File": { + "Name": "Scene 4, Room 18", + "Start": "02394000", + "End": "02397B80", + "RemapStart": null + }, + "Id": 18, + "Objects": [ + "002C", + "005F", + "0106", + "016C" + ], + "Actors": [ + "0113 0152 0014 FA54 0000 0000 0000 FF01", + "006B 00FA FFF8 FAF0 0000 0000 0000 FFFF", + "006B 01AE FFF8 FAF0 0000 0000 0000 FFFF", + "006B 0154 FFF8 FB40 0000 0000 0000 0007", + "006B 01AE FFF8 FB90 0000 0000 0000 000D", + "006B 00FA FFF8 FB90 0000 0000 0000 0011", + "0169 0151 0014 FA3A 0000 C000 0000 0001", + "0183 0153 0014 F9E5 0000 0000 0000 FF40", + "0111 00BB 0014 FA57 0000 0000 0000 5E12", + "0111 00BC 0014 FA16 0000 0000 0000 6004", + "0111 01E7 0014 FA56 0000 0000 0000 6212", + "0111 01E6 0014 FA15 0000 0000 0000 6404", + "0111 0026 0000 FB65 0000 0000 0000 6604", + "0111 002A 0000 FAEE 0000 0000 0000 6804", + "0111 0208 0000 FC51 0000 0000 0000 6A12", + "0111 0023 0000 FC4E 0000 0000 0000 6C12" + ] + }, + { + "File": { + "Name": "Scene 4, Room 19", + "Start": "02398000", + "End": "0239C1E0", + "RemapStart": null + }, + "Id": 19, + "Objects": [ + "002C", + "00A4", + "005F", + "000E", + "011C" + ], + "Actors": [ + "006B 0442 00E8 F8DA 0000 0000 0000 FFFF", + "006B 0442 00E8 F98E 0000 0000 0000 0003", + "006B 0492 00E8 F934 0000 0000 0000 0007", + "006B 04E2 00E8 F8DA 0000 0000 0000 0009", + "006B 04E2 00E8 F98E 0000 0000 0000 000D", + "006B 0532 00E8 F934 0000 0000 0000 0011", + "006B 0582 00E8 F8DA 0000 0000 0000 0015", + "006B 0582 00E8 F98E 0000 0000 0000 0019", + "008D 03C6 00A0 F933 0000 4000 0000 00FF", + "0112 032E 0138 F931 0000 0000 0006 1AFE", + "0112 0330 0136 F933 0000 0000 0001 1AFE", + "005E 04E8 00F0 F935 0000 0000 0000 2400", + "005E 036E 0104 F95D 0000 0000 0000 2400", + "0111 034D 0104 F9C9 0000 0000 0000 6E12", + "0111 0385 0104 F9C7 0000 0000 0000 700F", + "000A 0358 0104 F8D8 0000 C000 0000 27E4" + ] + }, + { + "File": { + "Name": "Scene 4, Room 20", + "Start": "0239D000", + "End": "023A3D10", + "RemapStart": null + }, + "Id": 20, + "Objects": [ + "002C", + "000E", + "00A4", + "00C9", + "0024", + "015C" + ], + "Actors": [ + "012A 06F5 0064 F8BE 0000 C000 0000 0101", + "006F 0730 0064 F8C4 0000 C000 0000 0100", + "0095 07E7 0098 F8B8 0000 C000 0000 8501", + "01AE 0757 0064 F8A5 0000 C000 0000 0423", + "0008 06CC 0098 F871 0000 C000 0000 03F5", + "0008 06CC 0098 F907 0000 C000 0000 03F5" + ] + }, + { + "File": { + "Name": "Scene 4, Room 21", + "Start": "023A4000", + "End": "023AC4C0", + "RemapStart": null + }, + "Id": 21, + "Objects": [ + "002C", + "00A4", + "00B7" + ], + "Actors": [ + "0043 0CEE 0078 0000 0000 0000 0000 2F00", + "0049 0CEE 0078 0000 0000 0000 0000 3FFF", + "0015 0D94 0280 FEB5 0000 0000 0000 2F03", + "0015 0CEB 01B8 00B4 0000 0000 0000 3003", + "0015 0DAE 0280 0140 0000 4000 0000 3403", + "005E 0CEB 01B8 FF57 0000 0000 0000 2400" + ] + }, + { + "File": { + "Name": "Scene 4, Room 22", + "Start": "023AD000", + "End": "023B3B00", + "RemapStart": null + }, + "Id": 22, + "Objects": [ + "002C", + "000E", + "00A4", + "00C9", + "00D4" + ], + "Actors": [ + "006F 0616 00C8 07D0 0000 8000 0000 0200", + "01AE 0600 00C8 07F3 0000 8000 0000 0843", + "0008 0663 00FA 076C 0000 8000 0000 03F5", + "005E 05C9 00C4 076D 0000 0000 0000 1042", + "000A 0640 00C8 0852 0000 4000 0000 5841" + ] + }, + { + "File": { + "Name": "Scene 4, Room 23", + "Start": "023B4000", + "End": "023BAD20", + "RemapStart": null + }, + "Id": 23, + "Objects": [ + "002C", + "0025", + "005D", + "000D", + "0085", + "00A4", + "005F", + "000E", + "00C9" + ], + "Actors": [ + "006F 05DC 0AF0 F900 0000 4000 0000 0500", + "01AE 05B6 0AF0 F8E7 0000 4000 0000 1463", + "0008 0640 0B24 F8AD 0000 4000 0000 03F5", + "0008 0640 0B24 F943 0000 4000 0000 03F5", + "012A 0640 0AF0 F8F8 0000 4000 0000 0500", + "000A 0550 0AF0 F8C6 0000 8000 0000 5848" + ] + }, + { + "File": { + "Name": "Scene 4, Room 24", + "Start": "023BB000", + "End": "023C0540", + "RemapStart": null + }, + "Id": 24, + "Objects": [ + "002C", + "009E", + "00AA" + ], + "Actors": [ + "0099 F490 0B68 008B 0000 0000 0000 FFFF", + "0047 F490 0B18 008B 0000 4000 0000 FFFF", + "0049 F490 0B68 008B 0000 4000 0000 0FFF", + "0015 F48F 0B18 0089 0000 0000 0000 1C11" + ] + }, + { + "File": { + "Name": "Scene 4, Room 25", + "Start": "023C1000", + "End": "023C7AE0", + "RemapStart": null + }, + "Id": 25, + "Objects": [ + "002C", + "0024", + "015C", + "001B" + ], + "Actors": [ + "0025 FCC8 0AF0 FB8A 0000 E000 0000 FFFF", + "0095 FD8E 0B36 FAC6 0000 E000 0000 8510", + "0008 FC8E 0B23 FB61 0000 2000 0000 03F5", + "0008 FCF3 0B27 FBC8 0000 A000 0000 03F5" + ] + }, + { + "File": { + "Name": "Scene 4, Room 26", + "Start": "023C8000", + "End": "023CE8A0", + "RemapStart": null + }, + "Id": 26, + "Objects": [ + "002C", + "000E", + "00A4", + "0170", + "009D", + "00B0", + "011C", + "0190", + "00A8", + "0024", + "015C" + ], + "Actors": [] + } + ], + "ColDelta": { + "IsLarger": false, + "Polys": [ + { + "Id": 1054, + "Type": 0, + "Flags": 10 + }, + { + "Id": 1055, + "Type": 0, + "Flags": 10 + }, + { + "Id": 1056, + "Type": 0, + "Flags": 10 + }, + { + "Id": 1057, + "Type": 0, + "Flags": 10 + }, + { + "Id": 1058, + "Type": 0, + "Flags": 10 + }, + { + "Id": 1059, + "Type": 0, + "Flags": 10 + }, + { + "Id": 1060, + "Type": 0, + "Flags": 10 + }, + { + "Id": 1061, + "Type": 0, + "Flags": 10 + }, + { + "Id": 1062, + "Type": 0, + "Flags": 10 + }, + { + "Id": 1063, + "Type": 0, + "Flags": 10 + }, + { + "Id": 1291, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1292, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1293, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1294, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1295, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1296, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1297, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1298, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1301, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1302, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1303, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1304, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1305, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1306, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1309, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1310, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1311, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1312, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1313, + "Type": 31, + "Flags": 2 + }, + { + "Id": 1314, + "Type": 31, + "Flags": 2 + }, + { + "Id": 1315, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1316, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1317, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1318, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1319, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1320, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1321, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1322, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1325, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1326, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1329, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1330, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1331, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1332, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1335, + "Type": 31, + "Flags": 2 + }, + { + "Id": 1336, + "Type": 31, + "Flags": 2 + }, + { + "Id": 1337, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1338, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1339, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1340, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1341, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1342, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1343, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1344, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1345, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1346, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1347, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1348, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1349, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1350, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1351, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1352, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1353, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1354, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1355, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1356, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1357, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1358, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1359, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1360, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1361, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1362, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1363, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1364, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1365, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1366, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1367, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1368, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1369, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1374, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1375, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1376, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1377, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1378, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1379, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1380, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1381, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1382, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1383, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1384, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1385, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1386, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1387, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1388, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1393, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1394, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1395, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1396, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1397, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1398, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1401, + "Type": 31, + "Flags": 2 + }, + { + "Id": 1402, + "Type": 31, + "Flags": 2 + }, + { + "Id": 1403, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1404, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1405, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1406, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1407, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1408, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1417, + "Type": 36, + "Flags": 0 + }, + { + "Id": 1418, + "Type": 36, + "Flags": 0 + }, + { + "Id": 1419, + "Type": 37, + "Flags": 0 + }, + { + "Id": 1420, + "Type": 38, + "Flags": 0 + }, + { + "Id": 1421, + "Type": 38, + "Flags": 0 + }, + { + "Id": 1422, + "Type": 38, + "Flags": 0 + }, + { + "Id": 1425, + "Type": 36, + "Flags": 0 + }, + { + "Id": 1426, + "Type": 36, + "Flags": 0 + }, + { + "Id": 1427, + "Type": 38, + "Flags": 0 + }, + { + "Id": 1428, + "Type": 38, + "Flags": 0 + }, + { + "Id": 1433, + "Type": 39, + "Flags": 0 + }, + { + "Id": 1434, + "Type": 39, + "Flags": 0 + }, + { + "Id": 1435, + "Type": 40, + "Flags": 0 + }, + { + "Id": 1436, + "Type": 40, + "Flags": 0 + }, + { + "Id": 1439, + "Type": 39, + "Flags": 0 + }, + { + "Id": 1440, + "Type": 39, + "Flags": 0 + }, + { + "Id": 1441, + "Type": 36, + "Flags": 0 + }, + { + "Id": 1442, + "Type": 36, + "Flags": 0 + }, + { + "Id": 1443, + "Type": 39, + "Flags": 0 + }, + { + "Id": 1444, + "Type": 39, + "Flags": 0 + }, + { + "Id": 1445, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1446, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1447, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1448, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1449, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1452, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1453, + "Type": 31, + "Flags": 2 + }, + { + "Id": 1454, + "Type": 31, + "Flags": 2 + }, + { + "Id": 1455, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1456, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1459, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1460, + "Type": 31, + "Flags": 2 + }, + { + "Id": 1461, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1462, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1463, + "Type": 31, + "Flags": 2 + }, + { + "Id": 1464, + "Type": 31, + "Flags": 2 + }, + { + "Id": 1466, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1467, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1468, + "Type": 31, + "Flags": 2 + }, + { + "Id": 1469, + "Type": 31, + "Flags": 2 + }, + { + "Id": 1470, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1471, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1472, + "Type": 31, + "Flags": 2 + }, + { + "Id": 1473, + "Type": 31, + "Flags": 2 + }, + { + "Id": 1474, + "Type": 31, + "Flags": 2 + }, + { + "Id": 1475, + "Type": 31, + "Flags": 2 + }, + { + "Id": 1476, + "Type": 31, + "Flags": 2 + }, + { + "Id": 1477, + "Type": 31, + "Flags": 2 + }, + { + "Id": 1478, + "Type": 31, + "Flags": 2 + }, + { + "Id": 1479, + "Type": 31, + "Flags": 2 + }, + { + "Id": 1480, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1481, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1482, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1483, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1491, + "Type": 31, + "Flags": 2 + }, + { + "Id": 1492, + "Type": 31, + "Flags": 2 + }, + { + "Id": 1493, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1494, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1496, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1497, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1501, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1502, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1503, + "Type": 31, + "Flags": 2 + }, + { + "Id": 1504, + "Type": 31, + "Flags": 2 + }, + { + "Id": 1505, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1506, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1508, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1509, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1512, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1513, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1523, + "Type": 41, + "Flags": 0 + }, + { + "Id": 1525, + "Type": 31, + "Flags": 2 + }, + { + "Id": 1526, + "Type": 31, + "Flags": 2 + }, + { + "Id": 1527, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1528, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1529, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1530, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1531, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1532, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1533, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1534, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1535, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1536, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1537, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1538, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1539, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1540, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1541, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1542, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1543, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1544, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1545, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1546, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1547, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1551, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1554, + "Type": 31, + "Flags": 2 + }, + { + "Id": 1555, + "Type": 31, + "Flags": 2 + }, + { + "Id": 1556, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1557, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1558, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1559, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1560, + "Type": 31, + "Flags": 2 + }, + { + "Id": 1561, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1562, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1563, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1564, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1565, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1568, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1569, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1570, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1571, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1572, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1573, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1574, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1575, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1576, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1577, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1578, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1579, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1580, + "Type": 31, + "Flags": 2 + }, + { + "Id": 1581, + "Type": 31, + "Flags": 2 + }, + { + "Id": 1582, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1583, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1584, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1585, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1586, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1587, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1588, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1589, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1592, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1593, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1594, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1595, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1596, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1597, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1598, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1599, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1600, + "Type": 31, + "Flags": 2 + }, + { + "Id": 1601, + "Type": 31, + "Flags": 2 + }, + { + "Id": 1604, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1605, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1606, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1607, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1608, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1609, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1610, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1611, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1617, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1618, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1619, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1620, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1621, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1622, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1623, + "Type": 31, + "Flags": 2 + }, + { + "Id": 1624, + "Type": 31, + "Flags": 2 + }, + { + "Id": 1625, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1626, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1627, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1628, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1631, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1632, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1633, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1634, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1635, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1638, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1640, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1641, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1642, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1643, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1644, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1645, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1646, + "Type": 31, + "Flags": 2 + }, + { + "Id": 1647, + "Type": 31, + "Flags": 2 + }, + { + "Id": 1648, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1649, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1652, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1653, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1654, + "Type": 34, + "Flags": 0 + }, + { + "Id": 1655, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1656, + "Type": 31, + "Flags": 2 + }, + { + "Id": 1659, + "Type": 31, + "Flags": 2 + }, + { + "Id": 1660, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1661, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1662, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1663, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1664, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1671, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1672, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1675, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1676, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1677, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1678, + "Type": 33, + "Flags": 2 + }, + { + "Id": 1679, + "Type": 31, + "Flags": 0 + }, + { + "Id": 1680, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1681, + "Type": 33, + "Flags": 0 + }, + { + "Id": 1694, + "Type": 42, + "Flags": 0 + }, + { + "Id": 1695, + "Type": 42, + "Flags": 0 + }, + { + "Id": 1699, + "Type": 43, + "Flags": 0 + }, + { + "Id": 1700, + "Type": 43, + "Flags": 0 + }, + { + "Id": 1701, + "Type": 43, + "Flags": 0 + }, + { + "Id": 1702, + "Type": 44, + "Flags": 2 + }, + { + "Id": 1703, + "Type": 44, + "Flags": 2 + }, + { + "Id": 1704, + "Type": 44, + "Flags": 2 + }, + { + "Id": 1705, + "Type": 44, + "Flags": 2 + }, + { + "Id": 1706, + "Type": 44, + "Flags": 2 + }, + { + "Id": 1707, + "Type": 44, + "Flags": 2 + }, + { + "Id": 1708, + "Type": 44, + "Flags": 2 + }, + { + "Id": 1709, + "Type": 44, + "Flags": 2 + }, + { + "Id": 1710, + "Type": 44, + "Flags": 2 + }, + { + "Id": 1711, + "Type": 44, + "Flags": 2 + }, + { + "Id": 1712, + "Type": 44, + "Flags": 2 + }, + { + "Id": 1713, + "Type": 44, + "Flags": 2 + }, + { + "Id": 1714, + "Type": 43, + "Flags": 0 + }, + { + "Id": 1715, + "Type": 43, + "Flags": 0 + }, + { + "Id": 1717, + "Type": 42, + "Flags": 0 + }, + { + "Id": 1725, + "Type": 42, + "Flags": 0 + }, + { + "Id": 1733, + "Type": 44, + "Flags": 0 + }, + { + "Id": 1739, + "Type": 42, + "Flags": 0 + }, + { + "Id": 1740, + "Type": 43, + "Flags": 0 + }, + { + "Id": 1741, + "Type": 43, + "Flags": 0 + }, + { + "Id": 1742, + "Type": 43, + "Flags": 0 + }, + { + "Id": 1743, + "Type": 43, + "Flags": 0 + }, + { + "Id": 1746, + "Type": 42, + "Flags": 0 + }, + { + "Id": 1747, + "Type": 42, + "Flags": 0 + }, + { + "Id": 1748, + "Type": 42, + "Flags": 0 + }, + { + "Id": 1749, + "Type": 42, + "Flags": 0 + }, + { + "Id": 1752, + "Type": 42, + "Flags": 0 + }, + { + "Id": 1753, + "Type": 42, + "Flags": 0 + }, + { + "Id": 1765, + "Type": 42, + "Flags": 0 + }, + { + "Id": 1766, + "Type": 42, + "Flags": 0 + }, + { + "Id": 1773, + "Type": 42, + "Flags": 0 + }, + { + "Id": 1774, + "Type": 42, + "Flags": 0 + }, + { + "Id": 1781, + "Type": 42, + "Flags": 0 + }, + { + "Id": 1785, + "Type": 42, + "Flags": 0 + }, + { + "Id": 1786, + "Type": 42, + "Flags": 0 + }, + { + "Id": 1795, + "Type": 42, + "Flags": 0 + }, + { + "Id": 1796, + "Type": 42, + "Flags": 0 + }, + { + "Id": 1799, + "Type": 43, + "Flags": 0 + }, + { + "Id": 1800, + "Type": 43, + "Flags": 0 + }, + { + "Id": 1801, + "Type": 43, + "Flags": 0 + }, + { + "Id": 1806, + "Type": 42, + "Flags": 0 + }, + { + "Id": 1807, + "Type": 42, + "Flags": 0 + }, + { + "Id": 1810, + "Type": 42, + "Flags": 0 + }, + { + "Id": 1811, + "Type": 42, + "Flags": 0 + }, + { + "Id": 1919, + "Type": 45, + "Flags": 0 + }, + { + "Id": 1968, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2156, + "Type": 46, + "Flags": 0 + }, + { + "Id": 2157, + "Type": 46, + "Flags": 0 + }, + { + "Id": 2158, + "Type": 46, + "Flags": 0 + }, + { + "Id": 2159, + "Type": 46, + "Flags": 0 + }, + { + "Id": 2315, + "Type": 46, + "Flags": 0 + }, + { + "Id": 2316, + "Type": 46, + "Flags": 0 + }, + { + "Id": 2324, + "Type": 46, + "Flags": 0 + }, + { + "Id": 2325, + "Type": 38, + "Flags": 2 + }, + { + "Id": 2326, + "Type": 38, + "Flags": 2 + }, + { + "Id": 2327, + "Type": 37, + "Flags": 2 + }, + { + "Id": 2328, + "Type": 37, + "Flags": 2 + }, + { + "Id": 2329, + "Type": 37, + "Flags": 2 + }, + { + "Id": 2330, + "Type": 37, + "Flags": 2 + }, + { + "Id": 2331, + "Type": 38, + "Flags": 2 + }, + { + "Id": 2332, + "Type": 38, + "Flags": 2 + }, + { + "Id": 2333, + "Type": 37, + "Flags": 2 + }, + { + "Id": 2334, + "Type": 37, + "Flags": 2 + }, + { + "Id": 2335, + "Type": 38, + "Flags": 2 + }, + { + "Id": 2336, + "Type": 38, + "Flags": 2 + }, + { + "Id": 2337, + "Type": 38, + "Flags": 2 + }, + { + "Id": 2338, + "Type": 38, + "Flags": 2 + }, + { + "Id": 2339, + "Type": 38, + "Flags": 2 + }, + { + "Id": 2340, + "Type": 38, + "Flags": 2 + }, + { + "Id": 2341, + "Type": 38, + "Flags": 2 + }, + { + "Id": 2342, + "Type": 38, + "Flags": 2 + }, + { + "Id": 2343, + "Type": 38, + "Flags": 2 + }, + { + "Id": 2344, + "Type": 38, + "Flags": 2 + }, + { + "Id": 2345, + "Type": 38, + "Flags": 2 + }, + { + "Id": 2346, + "Type": 38, + "Flags": 2 + }, + { + "Id": 2347, + "Type": 38, + "Flags": 2 + }, + { + "Id": 2348, + "Type": 38, + "Flags": 2 + }, + { + "Id": 2349, + "Type": 38, + "Flags": 2 + }, + { + "Id": 2350, + "Type": 38, + "Flags": 2 + }, + { + "Id": 2351, + "Type": 37, + "Flags": 2 + }, + { + "Id": 2352, + "Type": 37, + "Flags": 2 + }, + { + "Id": 2353, + "Type": 37, + "Flags": 2 + }, + { + "Id": 2354, + "Type": 37, + "Flags": 2 + }, + { + "Id": 2355, + "Type": 38, + "Flags": 2 + }, + { + "Id": 2356, + "Type": 38, + "Flags": 2 + }, + { + "Id": 2371, + "Type": 47, + "Flags": 0 + }, + { + "Id": 2372, + "Type": 47, + "Flags": 0 + }, + { + "Id": 2373, + "Type": 48, + "Flags": 0 + }, + { + "Id": 2378, + "Type": 48, + "Flags": 0 + }, + { + "Id": 2382, + "Type": 48, + "Flags": 0 + }, + { + "Id": 2383, + "Type": 48, + "Flags": 2 + }, + { + "Id": 2384, + "Type": 48, + "Flags": 2 + }, + { + "Id": 2385, + "Type": 48, + "Flags": 2 + }, + { + "Id": 2386, + "Type": 48, + "Flags": 2 + }, + { + "Id": 2391, + "Type": 47, + "Flags": 0 + }, + { + "Id": 2392, + "Type": 47, + "Flags": 0 + }, + { + "Id": 2393, + "Type": 47, + "Flags": 0 + }, + { + "Id": 2394, + "Type": 47, + "Flags": 0 + }, + { + "Id": 2395, + "Type": 47, + "Flags": 0 + }, + { + "Id": 2396, + "Type": 47, + "Flags": 0 + }, + { + "Id": 2399, + "Type": 48, + "Flags": 0 + }, + { + "Id": 2401, + "Type": 48, + "Flags": 0 + }, + { + "Id": 2405, + "Type": 48, + "Flags": 0 + }, + { + "Id": 2433, + "Type": 46, + "Flags": 0 + }, + { + "Id": 2434, + "Type": 46, + "Flags": 0 + }, + { + "Id": 2438, + "Type": 46, + "Flags": 0 + }, + { + "Id": 2610, + "Type": 46, + "Flags": 0 + }, + { + "Id": 2611, + "Type": 46, + "Flags": 0 + }, + { + "Id": 2612, + "Type": 46, + "Flags": 0 + }, + { + "Id": 2613, + "Type": 46, + "Flags": 0 + }, + { + "Id": 2614, + "Type": 46, + "Flags": 0 + }, + { + "Id": 2615, + "Type": 46, + "Flags": 0 + }, + { + "Id": 2616, + "Type": 46, + "Flags": 0 + }, + { + "Id": 2730, + "Type": 49, + "Flags": 0 + }, + { + "Id": 2731, + "Type": 49, + "Flags": 0 + }, + { + "Id": 3498, + "Type": 50, + "Flags": 2 + }, + { + "Id": 3499, + "Type": 50, + "Flags": 2 + }, + { + "Id": 3500, + "Type": 50, + "Flags": 2 + }, + { + "Id": 3744, + "Type": 51, + "Flags": 0 + }, + { + "Id": 3767, + "Type": 50, + "Flags": 2 + }, + { + "Id": 3768, + "Type": 50, + "Flags": 2 + }, + { + "Id": 3769, + "Type": 50, + "Flags": 2 + }, + { + "Id": 3770, + "Type": 50, + "Flags": 2 + }, + { + "Id": 3771, + "Type": 50, + "Flags": 2 + }, + { + "Id": 3772, + "Type": 50, + "Flags": 2 + }, + { + "Id": 4187, + "Type": 36, + "Flags": 0 + }, + { + "Id": 4188, + "Type": 36, + "Flags": 0 + }, + { + "Id": 4189, + "Type": 36, + "Flags": 0 + }, + { + "Id": 4190, + "Type": 36, + "Flags": 0 + }, + { + "Id": 4191, + "Type": 40, + "Flags": 0 + }, + { + "Id": 4192, + "Type": 40, + "Flags": 0 + }, + { + "Id": 4193, + "Type": 40, + "Flags": 0 + }, + { + "Id": 4194, + "Type": 40, + "Flags": 0 + }, + { + "Id": 4195, + "Type": 36, + "Flags": 0 + }, + { + "Id": 4196, + "Type": 36, + "Flags": 0 + }, + { + "Id": 4197, + "Type": 40, + "Flags": 0 + }, + { + "Id": 4198, + "Type": 40, + "Flags": 0 + }, + { + "Id": 4199, + "Type": 36, + "Flags": 0 + }, + { + "Id": 4200, + "Type": 36, + "Flags": 0 + }, + { + "Id": 4213, + "Type": 52, + "Flags": 0 + }, + { + "Id": 4214, + "Type": 52, + "Flags": 0 + }, + { + "Id": 4215, + "Type": 52, + "Flags": 0 + }, + { + "Id": 4216, + "Type": 52, + "Flags": 0 + }, + { + "Id": 4217, + "Type": 52, + "Flags": 0 + }, + { + "Id": 4218, + "Type": 52, + "Flags": 0 + }, + { + "Id": 4223, + "Type": 46, + "Flags": 0 + }, + { + "Id": 4224, + "Type": 46, + "Flags": 0 + }, + { + "Id": 4225, + "Type": 46, + "Flags": 0 + }, + { + "Id": 4226, + "Type": 46, + "Flags": 0 + }, + { + "Id": 4227, + "Type": 46, + "Flags": 0 + }, + { + "Id": 4228, + "Type": 46, + "Flags": 0 + }, + { + "Id": 4229, + "Type": 46, + "Flags": 0 + }, + { + "Id": 4230, + "Type": 46, + "Flags": 0 + }, + { + "Id": 4241, + "Type": 34, + "Flags": 0 + }, + { + "Id": 4242, + "Type": 34, + "Flags": 0 + }, + { + "Id": 4243, + "Type": 53, + "Flags": 0 + }, + { + "Id": 4244, + "Type": 53, + "Flags": 0 + }, + { + "Id": 4245, + "Type": 53, + "Flags": 0 + }, + { + "Id": 4246, + "Type": 53, + "Flags": 0 + }, + { + "Id": 4247, + "Type": 53, + "Flags": 0 + }, + { + "Id": 4249, + "Type": 34, + "Flags": 0 + }, + { + "Id": 4264, + "Type": 54, + "Flags": 8 + }, + { + "Id": 4265, + "Type": 54, + "Flags": 8 + }, + { + "Id": 4266, + "Type": 54, + "Flags": 8 + }, + { + "Id": 4276, + "Type": 55, + "Flags": 0 + }, + { + "Id": 4277, + "Type": 55, + "Flags": 0 + }, + { + "Id": 4278, + "Type": 38, + "Flags": 0 + }, + { + "Id": 4279, + "Type": 38, + "Flags": 0 + }, + { + "Id": 4280, + "Type": 38, + "Flags": 0 + }, + { + "Id": 4281, + "Type": 38, + "Flags": 0 + }, + { + "Id": 4282, + "Type": 55, + "Flags": 0 + }, + { + "Id": 4283, + "Type": 55, + "Flags": 0 + }, + { + "Id": 4284, + "Type": 55, + "Flags": 0 + }, + { + "Id": 4285, + "Type": 38, + "Flags": 0 + }, + { + "Id": 4291, + "Type": 56, + "Flags": 0 + }, + { + "Id": 4356, + "Type": 57, + "Flags": 0 + }, + { + "Id": 4357, + "Type": 57, + "Flags": 0 + }, + { + "Id": 4374, + "Type": 58, + "Flags": 0 + }, + { + "Id": 4375, + "Type": 58, + "Flags": 0 + }, + { + "Id": 4376, + "Type": 59, + "Flags": 0 + }, + { + "Id": 4377, + "Type": 59, + "Flags": 0 + }, + { + "Id": 4380, + "Type": 60, + "Flags": 8 + }, + { + "Id": 4381, + "Type": 60, + "Flags": 8 + }, + { + "Id": 4382, + "Type": 60, + "Flags": 8 + }, + { + "Id": 4383, + "Type": 60, + "Flags": 8 + }, + { + "Id": 4384, + "Type": 61, + "Flags": 2 + }, + { + "Id": 4385, + "Type": 61, + "Flags": 2 + }, + { + "Id": 4386, + "Type": 62, + "Flags": 10 + }, + { + "Id": 4387, + "Type": 62, + "Flags": 10 + }, + { + "Id": 4388, + "Type": 62, + "Flags": 10 + }, + { + "Id": 4389, + "Type": 62, + "Flags": 10 + }, + { + "Id": 4390, + "Type": 62, + "Flags": 10 + }, + { + "Id": 4391, + "Type": 62, + "Flags": 10 + }, + { + "Id": 4392, + "Type": 63, + "Flags": 10 + }, + { + "Id": 4393, + "Type": 63, + "Flags": 10 + }, + { + "Id": 4394, + "Type": 62, + "Flags": 10 + }, + { + "Id": 4395, + "Type": 62, + "Flags": 10 + }, + { + "Id": 4396, + "Type": 62, + "Flags": 10 + }, + { + "Id": 4397, + "Type": 62, + "Flags": 10 + }, + { + "Id": 4398, + "Type": 63, + "Flags": 10 + }, + { + "Id": 4399, + "Type": 63, + "Flags": 10 + }, + { + "Id": 4404, + "Type": 60, + "Flags": 8 + }, + { + "Id": 4405, + "Type": 60, + "Flags": 8 + }, + { + "Id": 4408, + "Type": 64, + "Flags": 8 + }, + { + "Id": 4409, + "Type": 64, + "Flags": 8 + }, + { + "Id": 4410, + "Type": 54, + "Flags": 8 + }, + { + "Id": 4411, + "Type": 54, + "Flags": 8 + }, + { + "Id": 4414, + "Type": 64, + "Flags": 8 + }, + { + "Id": 4415, + "Type": 64, + "Flags": 8 + }, + { + "Id": 4643, + "Type": 36, + "Flags": 0 + }, + { + "Id": 4644, + "Type": 36, + "Flags": 0 + }, + { + "Id": 4652, + "Type": 36, + "Flags": 0 + }, + { + "Id": 4653, + "Type": 36, + "Flags": 0 + }, + { + "Id": 4654, + "Type": 36, + "Flags": 0 + }, + { + "Id": 4655, + "Type": 36, + "Flags": 0 + }, + { + "Id": 4656, + "Type": 36, + "Flags": 0 + }, + { + "Id": 4657, + "Type": 36, + "Flags": 0 + }, + { + "Id": 4658, + "Type": 36, + "Flags": 0 + }, + { + "Id": 4659, + "Type": 36, + "Flags": 0 + }, + { + "Id": 4660, + "Type": 36, + "Flags": 0 + }, + { + "Id": 4661, + "Type": 36, + "Flags": 0 + }, + { + "Id": 4709, + "Type": 65, + "Flags": 0 + }, + { + "Id": 4710, + "Type": 65, + "Flags": 0 + }, + { + "Id": 4711, + "Type": 65, + "Flags": 0 + }, + { + "Id": 4712, + "Type": 65, + "Flags": 0 + }, + { + "Id": 4713, + "Type": 36, + "Flags": 0 + }, + { + "Id": 4714, + "Type": 36, + "Flags": 0 + }, + { + "Id": 4715, + "Type": 36, + "Flags": 0 + }, + { + "Id": 4716, + "Type": 36, + "Flags": 0 + }, + { + "Id": 4717, + "Type": 36, + "Flags": 0 + }, + { + "Id": 4718, + "Type": 36, + "Flags": 0 + }, + { + "Id": 4719, + "Type": 36, + "Flags": 0 + }, + { + "Id": 4720, + "Type": 36, + "Flags": 0 + }, + { + "Id": 4721, + "Type": 36, + "Flags": 0 + }, + { + "Id": 4722, + "Type": 36, + "Flags": 0 + }, + { + "Id": 4723, + "Type": 36, + "Flags": 0 + }, + { + "Id": 4724, + "Type": 36, + "Flags": 0 + }, + { + "Id": 4725, + "Type": 65, + "Flags": 0 + }, + { + "Id": 4726, + "Type": 65, + "Flags": 0 + }, + { + "Id": 4727, + "Type": 65, + "Flags": 0 + }, + { + "Id": 4728, + "Type": 65, + "Flags": 0 + }, + { + "Id": 4737, + "Type": 36, + "Flags": 0 + }, + { + "Id": 4738, + "Type": 36, + "Flags": 0 + }, + { + "Id": 4853, + "Type": 66, + "Flags": 0 + }, + { + "Id": 4854, + "Type": 66, + "Flags": 0 + } + ], + "PolyTypes": [ + { + "Id": 34, + "High": 5, + "Low": 20480 + }, + { + "Id": 35, + "High": 2146309, + "Low": 2050 + }, + { + "Id": 36, + "High": 2146306, + "Low": 2050 + }, + { + "Id": 37, + "High": 49154, + "Low": 20482 + }, + { + "Id": 38, + "High": 49154, + "Low": 2050 + }, + { + "Id": 39, + "High": 604028933, + "Low": 2050 + }, + { + "Id": 40, + "High": 2146306, + "Low": 20482 + }, + { + "Id": 41, + "High": 402653189, + "Low": 20482 + }, + { + "Id": 42, + "High": 2, + "Low": 40962 + }, + { + "Id": 43, + "High": 5, + "Low": 40962 + }, + { + "Id": 44, + "High": 4, + "Low": 40962 + }, + { + "Id": 45, + "High": 4, + "Low": 30736 + }, + { + "Id": 46, + "High": 4, + "Low": 20480 + }, + { + "Id": 47, + "High": 606126085, + "Low": 20482 + }, + { + "Id": 48, + "High": 606126082, + "Low": 20482 + }, + { + "Id": 49, + "High": 1, + "Low": 2050 + }, + { + "Id": 50, + "High": 6, + "Low": 20482 + }, + { + "Id": 51, + "High": 4, + "Low": 30727 + }, + { + "Id": 52, + "High": 604028931, + "Low": 20482 + }, + { + "Id": 53, + "High": 5, + "Low": 20496 + }, + { + "Id": 54, + "High": 2, + "Low": 151554 + }, + { + "Id": 55, + "High": 49154, + "Low": 12290 + }, + { + "Id": 56, + "High": 2, + "Low": 20480 + }, + { + "Id": 57, + "High": 5, + "Low": 20506 + }, + { + "Id": 58, + "High": 5, + "Low": 20490 + }, + { + "Id": 59, + "High": 24581, + "Low": 20482 + }, + { + "Id": 60, + "High": 2, + "Low": 143362 + }, + { + "Id": 61, + "High": 402653186, + "Low": 20482 + }, + { + "Id": 62, + "High": 8388610, + "Low": 151554 + }, + { + "Id": 63, + "High": 8388610, + "Low": 143362 + }, + { + "Id": 64, + "High": 4, + "Low": 151554 + }, + { + "Id": 65, + "High": 604028931, + "Low": 2050 + }, + { + "Id": 66, + "High": 517, + "Low": 2082 + } + ], + "Cams": [ + { + "Data": 1835011, + "PositionIndex": 0 + }, + { + "Data": 1441795, + "PositionIndex": 1 + }, + { + "Data": 0, + "PositionIndex": -1 + }, + { + "Data": 262144, + "PositionIndex": -1 + }, + { + "Data": 4063232, + "PositionIndex": -1 + }, + { + "Data": 196608, + "PositionIndex": -1 + }, + { + "Data": 3801088, + "PositionIndex": -1 + } + ] + } + }, + { + "File": { + "Name": "Scene 5", + "Start": "025B8000", + "End": "025CDCF0", + "RemapStart": null + }, + "Id": 5, + "TActors": [ + "00FF 11FF 0023 0294 0000 0000 0000 01BF", + "04FF 00FF 0023 0294 01CC FE98 0000 01BF", + "00FF 14FF 0023 0294 030C 0000 0000 01BF", + "00FF 03FF 0023 FE98 0000 026C C000 01BF", + "14FF 00FF 0023 0000 01CC 02BC C000 01BF", + "02FF 01FF 0023 FF4C FE0C 00A0 8000 01BF", + "15FF 08FF 0023 F9E8 0104 F6FA 0000 01BF", + "09FF 00FF 0023 FB8C FEFC FE52 0000 01BF", + "05FF 00FF 0009 FCB8 030C FF4C 4000 0095", + "0CFF 00FF 002E FF4C 0000 F902 0000 003F", + "05FF 06FF 002E F510 02F8 FF4C C000 007F", + "0CFF 0EFF 002E FF4C 0000 F39E 8000 0068", + "0EFF 0FFF 002E FD58 0078 F1AA C000 01E6", + "13FF 11FF 002E 0492 030C 00B4 C000 01F7", + "01FF 00FF 002E FF4C 0050 0014 0000 003F", + "01FF 00FF 002E FF4C 01CC FE84 8000 003F", + "0BFF 00FF 0009 FF4C 0334 FB28 0000 003F", + "0AFF 00FF 002E FCB8 01CC FF4C 4000 00BB", + "06FF 0DFF 002E F3D0 0424 F984 8000 007F", + "07FF 0DFF 002E F3D0 0424 F18C 0000 007F", + "09FF 08FF 002E FB8C 003C F93E 8000 009B", + "0CFF 10FF 002E FB00 006C F57E 8000 007F", + "0FFF 0CFF 0009 FC90 0078 F57E 0000 0082", + "12FF 11FF 002E 0492 0000 00B4 C000 00BE", + "0AFF 00FF 002E FCB8 035C 0122 4000 00BF", + "16FF 0BFF 002E FF4C 0406 F7F4 0000 0154", + "07FF 15FF 0023 F3D0 0334 EF84 0000 00BF" + ], + "Paths": [ + { + "Points": [ + [ + -2561, + 621, + -186 + ], + [ + -2058, + 121, + -204 + ], + [ + -1797, + 114, + -186 + ], + [ + -1307, + 725, + -186 + ] + ] + }, + { + "Points": [ + [ + -1554, + 428, + -180 + ], + [ + -1784, + 145, + -180 + ], + [ + -1554, + 428, + -180 + ] + ] + } + ], + "Rooms": [ + { + "File": { + "Name": "Scene 5, Room 0", + "Start": "025CE000", + "End": "025E3C80", + "RemapStart": null + }, + "Id": 0, + "Objects": [ + "0059", + "00A4", + "000E", + "011C", + "0190", + "00A8" + ], + "Actors": [ + "012D FF4D 0087 FBBA 0000 8000 0000 FFC2", + "012D FDA2 03A6 0165 0000 8000 0000 FFC2", + "012D FDFF 01B7 FF49 0000 C000 0000 FFC2", + "012D 0099 02F7 FF46 0000 4000 0000 FFC2", + "012D 0183 02F7 FF4D 0000 C000 0000 FFC2", + "012D FBE2 00BB FF24 4000 0000 0000 FFC2", + "0064 FCF4 030C FF4C 0000 0000 0000 1FFF", + "0064 FF50 0334 FBE4 0000 0000 0000 3FFF", + "0065 FF4C 02FD FF4C 0000 0000 0000 FF00", + "0185 FD4E 03A0 0156 0000 8000 0000 857F", + "012D FF9C 0000 01CD 0000 0000 0000 0EC1", + "012D FEFB 0000 FC68 0000 0000 0000 0EC1", + "01BB FF4D 0000 0204 0000 8000 0000 0FCE", + "01BB FF4D FF4C FBC4 0000 0000 0000 0FCE", + "01BB FCA2 003C FF49 0000 4000 0000 0FCE", + "012A FC65 003C FF4C 0000 0000 0000 0E00", + "0064 FF4C 030C 0064 0000 0000 0000 0FD9", + "012E FD4E 035C 0156 0000 8000 0000 1C9E", + "012D 003C 0000 FF4A 0000 0000 0000 1FC1", + "01BB FF4D 01CC 01E1 0000 8000 0000 00F9", + "012A FF27 01CC 019F 0000 0000 0000 3900", + "01BB 01E3 030C FF4D 0000 C000 0000 00FA", + "012A 0206 030C FF71 0000 0000 0000 3A00", + "012A FE2C 01CC FF49 0000 0000 0000 3B20" + ] + }, + { + "File": { + "Name": "Scene 5, Room 1", + "Start": "025E4000", + "End": "025EE160", + "RemapStart": null + }, + "Id": 1, + "Objects": [ + "0059", + "00A4", + "000E", + "011C", + "0190", + "00A8", + "0170" + ], + "Actors": [ + "0064 FF4C 030C FFC4 0000 0000 0000 2FFF", + "0065 FF4C 02FD FF4C 0000 0000 0000 FF00", + "0185 FED4 01B0 FFF9 0000 8000 0000 857F", + "01A0 FF2E 02BC FEB0 0000 0000 0000 FFFF", + "01A0 FF6A 02BB FEB0 0000 0000 0000 FFFF", + "01D6 FF4B 0325 FF4D 0000 0000 0000 1106", + "01D6 FF4B 03D4 FF4D 0000 0000 0000 9106", + "005E FE8E 03CF FE8E 2000 2000 0000 110A", + "005E 000A 03CF FE8E 2000 E000 0000 110A", + "005E FE8E 03CF 000A 2000 6000 0000 110A", + "005E 000A 03CF 000A 2000 A000 0000 110A", + "01BB FF4D FFBF FF9E 4000 0000 0000 1FCA", + "012E FED4 017C FFF9 0000 8000 0000 1C9D" + ] + }, + { + "File": { + "Name": "Scene 5, Room 2", + "Start": "025EF000", + "End": "025F4B90", + "RemapStart": null + }, + "Id": 2, + "Objects": [ + "0059", + "00A4", + "000E", + "011C", + "0170", + "011D", + "00E5" + ], + "Actors": [ + "012D 0206 FFCB 0257 4000 0000 0000 FFC2", + "00EC 01AF FEBD 00FB 0000 0000 0000 0000", + "012C 01A2 FE48 013D 4000 0000 0000 FFFC", + "012C 00B3 FE48 013E 0000 C000 4000 FFFC", + "012C 0101 FE48 01E0 0000 0000 4000 FFFC", + "012C 0012 FE07 00F0 0000 8000 4000 FFFC", + "012C 0101 FE48 0168 0000 0000 4000 FFFC", + "012C 003B FE48 013E 0000 C000 4000 FFFC", + "012C 0036 FDF4 00F0 0000 8000 4000 FFFC", + "01A0 0019 FE0C 0246 0000 4000 0000 FFFF", + "01A0 0019 FE0C 020A 0000 4000 0000 FFFF", + "01A0 005B FE0C 027C 0000 0000 0000 FFFF", + "01A0 0066 FE0C 00CC 0000 0000 0000 FFFF", + "01A0 0097 FE0C 027C 0000 0000 0000 FFFF", + "01A0 001F FE0C 027C 0000 0000 0000 FFFF", + "01A0 00A2 FE0C 00CC 0000 0000 0000 FFFF", + "01A0 00D7 FE0C 016E 0000 4000 0000 FFFF", + "01A0 00D7 FE0C 01AA 0000 4000 0000 FFFF", + "01A0 01C7 FE0C 016D 0000 4000 0000 FFFF", + "01A0 01C7 FE0C 01A9 0000 4000 0000 FFFF", + "01A0 00DE FE0C 00CC 0000 0000 0000 FFFF", + "01A0 00D7 FE0C 01E6 0000 4000 0000 FFFF", + "01A0 012B FE0C 01E5 0000 4000 0000 FFFF", + "000A 0294 FF92 0258 0000 4000 0023 8846", + "0112 02A4 FF5D 0257 0000 0000 0006 18A3", + "012A 00DC FDFD 00C9 0000 0000 0000 3903", + "01BB 016A FE95 00F5 C000 C000 0000 1FF9", + "012A 0011 FDFD 00C9 0000 0000 0000 3A03", + "01BB 01AC FE95 0293 C000 0000 0000 1FFA" + ] + }, + { + "File": { + "Name": "Scene 5, Room 3", + "Start": "025F5000", + "End": "025FB710", + "RemapStart": null + }, + "Id": 3, + "Objects": [ + "0059", + "00A4", + "0024", + "011C", + "0170", + "0154", + "015C", + "0032" + ], + "Actors": [ + "012D FBB6 0000 035C 0000 0000 0000 FFC0", + "012D FE27 0064 035A 0000 C000 0000 FFC2", + "012D FAE5 00C6 035D 0000 4000 0000 FFC2", + "0112 F6F5 018B 035E 0000 0000 0007 1AFF", + "0065 003C 02FD 032A 0000 0000 0000 FF00", + "0002 F819 012C 02FD 0000 0000 0000 0003", + "0002 F819 012C 03C6 0000 0000 0000 0003", + "01A0 F9DD 0000 02E8 0000 0000 0000 FFFF", + "01A0 F9DD 0000 03CF 0000 0000 0000 FFFF", + "01A0 F9DD 0000 0318 0000 0000 0000 FFFF", + "01A0 FA19 0000 03CF 0000 0000 0000 FFFF", + "01A0 FC21 0000 03D0 0000 0000 0000 FFFF", + "01A0 FC1E 0000 02E8 0000 0000 0000 FFFF", + "01A0 F72C 0140 02E8 0000 0000 0000 FFFF", + "01A0 F768 0140 02E7 0000 0000 0000 FFFF", + "01A0 F779 0140 03D1 0000 0000 0000 FFFF", + "01C9 F8DE 012C 0363 0000 4000 0005 18CB", + "0095 F752 0208 035F 8000 0000 0000 8610", + "0065 F95C 007D 032A 0000 0000 0000 1A02", + "0111 F6F6 0140 0302 0000 4000 0000 4204", + "0111 F6F6 0140 0328 0000 4000 0000 4804", + "005E FC4F 01AD 035C 0000 0000 2000 10E7", + "005E FC4F 0173 0379 0000 0000 2000 10E7", + "005E FC4F 0173 033A 0000 0000 2000 10E7", + "01BB F7AA 0140 035B 0000 4000 0000 1FE7", + "0111 F6F7 0140 03B0 0000 4000 0000 5209", + "0111 F6F7 0140 0389 0000 4000 0000 6A09" + ] + }, + { + "File": { + "Name": "Scene 5, Room 4", + "Start": "025FC000", + "End": "02601FE0", + "RemapStart": "25FB8D0" + }, + "Id": 4, + "Objects": [ + "0059", + "00A4", + "000E", + "011C", + "0170" + ], + "Actors": [ + "005E 0483 0320 FCC7 0000 0000 0000 2400", + "0065 0514 02FD FF4C 0000 4000 0000 FF00", + "01A0 04B5 0320 FBF4 0000 0000 0000 FFFF", + "01A0 04F1 0320 FBF4 0000 0000 0000 FFFF", + "01A0 055E 0320 FBF4 0000 0000 0000 FFFF", + "01A0 0600 0320 FC66 0000 4000 0000 FFFF", + "01A0 0600 0320 FCCB 0000 4000 0000 FFFF", + "01A0 0600 0320 FD38 0000 4000 0000 FFFF", + "01A0 059A 0320 FBF4 0000 0000 0000 FFFF", + "0110 0504 0320 FD93 0000 0000 0000 FFFF", + "0110 0571 0320 FD93 0000 0000 0000 FFFF", + "0110 053D 0320 FD93 0000 0000 0000 FFFF", + "0110 05BE 0320 FD92 0000 0000 0000 FFFF", + "0111 04C6 0320 FD97 0000 0000 0000 4003", + "0111 0462 0320 FD97 0000 0000 0000 4E03", + "0111 0494 0320 FD97 0000 0000 0000 5003" + ] + }, + { + "File": { + "Name": "Scene 5, Room 5", + "Start": "02602000", + "End": "0260C5F0", + "RemapStart": null + }, + "Id": 5, + "Objects": [ + "0059", + "013B", + "013A", + "011C", + "00B5", + "00E5", + "0016", + "0012", + "0026", + "000D", + "0024", + "015C" + ], + "Actors": [ + "003B F87A 00DD 005E 0000 0000 0000 0000", + "012D FB2F 03B1 FF4C 4000 4000 0000 FFC2", + "0112 F5F8 0335 FE9E 0000 0000 0006 183F", + "0112 F5F3 0344 FE95 0000 0000 0006 193F", + "0112 F5F5 0339 FE9B 0000 0000 0006 1ABF", + "0173 F5F4 033A FFFE 0006 003E 001E 3F00", + "0064 F9EE 01A9 FF4C 0000 C000 0000 7180", + "012D F5FF 0259 FF4C 0000 0000 0000 3DC1", + "012D F5FF 01F5 FF4C 0000 0000 0000 3DC1", + "0112 F5F5 0336 0009 FF4A 0000 0006 1AFD", + "0112 F5F4 032D FFFE 0000 0000 0006 1AFD", + "0112 F5F2 033D FFF4 0000 0000 0006 1AFD", + "012D F701 00F4 FED2 0000 0000 0000 3EC1", + "012D F768 008B FE7B 0000 0000 0000 3EC1", + "012D F779 007B 001E 0000 0000 0000 3EC1", + "012D F6E0 0114 001A 0000 0000 0000 3EC1", + "012D F79F 0053 FF37 0000 0000 0000 3EC1", + "012D F69B 0158 FF8C 0000 0000 0000 3EC1", + "012A FB24 03E3 FF4C 0000 0000 4000 3E03" + ] + }, + { + "File": { + "Name": "Scene 5, Room 6", + "Start": "0260D000", + "End": "026182C0", + "RemapStart": null + }, + "Id": 6, + "Objects": [ + "0059", + "0125", + "011C", + "0032" + ], + "Actors": [ + "012D F502 0328 FF0A 0000 C000 0000 FFC2", + "0183 F42D 0424 FA20 0000 0000 0000 FF40", + "0002 F3D6 0230 FE82 0000 416C 0000 FFFF", + "0002 F375 0230 FE39 0000 416C 0000 FFFF", + "0002 F373 0230 FE9D 0000 416C 0000 FFFF", + "0183 F369 0424 FA23 0000 0000 0000 FF41", + "0183 F3A4 02F8 FDE4 0000 0000 0000 FF40", + "0111 F38C 0424 F9A4 0000 0000 0000 560E", + "0111 F410 0424 F9A6 0000 0000 0000 580E", + "0111 F254 0320 FD11 0000 0000 0000 5A0C", + "0111 F254 0320 FD52 0000 0000 0000 5C12", + "0111 F254 0320 FCD6 0000 0000 0000 6012", + "0064 F3E4 02AD FCBE 0000 C000 0000 5FC3", + "0064 F2CA 02AD FF4C 0000 4000 0000 5FC3", + "0064 F39B 0389 FC25 0000 0000 0000 5FC3", + "0187 F3D3 03FC FC11 0000 0000 0000 0FFF", + "0065 F3A6 0251 FDE4 0000 0000 0000 3203", + "0064 F1DC 02D5 FDE6 0000 0000 0000 5FF2" + ] + }, + { + "File": { + "Name": "Scene 5, Room 7", + "Start": "02619000", + "End": "0261E550", + "RemapStart": null + }, + "Id": 7, + "Objects": [ + "0059", + "0125", + "013B", + "013A", + "00B5", + "00E5", + "0016", + "0012", + "0026", + "011C", + "000E", + "0090", + "0190", + "00A8" + ], + "Actors": [ + "0112 F3D2 048B EF25 0000 0000 0006 18A5", + "01BB F3D0 041F EFAC C000 0000 0000 0FE5", + "0111 F400 0438 F048 0000 0000 0000 640A", + "0111 F39F 0438 F049 0000 0000 0000 6612" + ] + }, + { + "File": { + "Name": "Scene 5, Room 8", + "Start": "0261F000", + "End": "0262CCD0", + "RemapStart": "0261EF00" + }, + "Id": 8, + "Objects": [ + "0059", + "0170", + "011C", + "011D", + "00A4" + ], + "Actors": [ + "012D F802 00E3 F863 4000 0000 0000 FFC2", + "012D F983 FFCB F861 4000 0000 0000 FFC2", + "012D FB52 00CF F8C4 4000 0000 0000 FFC2", + "012D F9E8 00EE F793 0000 0000 0000 FFC2", + "0112 FA3A FF7C F8DD 0000 0000 0006 18BF", + "0112 F75D 0073 F864 0000 0000 0006 18BF", + "0112 FA39 FF7C F8C5 0000 0000 0006 1AFF", + "00D4 FA74 0032 F862 0000 0000 0000 00FF", + "01A0 F76C 003C F846 0000 4000 0000 FFFF", + "01A0 F76C 003C F882 0000 4000 0000 FFFF", + "01A0 FB7F 003C F87A 0000 0000 0000 FFFF", + "01A0 FBBC 003C F87A 0000 0000 0000 FFFF", + "01A0 F833 FF24 F84C 0000 4000 0000 FFFF", + "01A0 F833 FF24 F888 0000 4000 0000 FFFF", + "01A0 F90E FF24 F82A 0000 0000 0000 FFFF", + "01A0 F94A FF24 F82A 0000 0000 0000 FFFF", + "0110 F75E 006C F839 0000 0000 0000 FFFF", + "0110 F75E 006C F889 0000 0000 0000 FFFF", + "0110 F75E 006C F860 0000 0000 0000 FFFF", + "005E F8B6 0088 F805 1555 E000 0000 109B", + "005E F8B5 0088 F8C0 1555 A000 0000 109B" + ] + }, + { + "File": { + "Name": "Scene 5, Room 9", + "Start": "0262D000", + "End": "02634FE0", + "RemapStart": "262CD30" + }, + "Id": 9, + "Objects": [ + "0059", + "013A", + "011C", + "00A4", + "000E", + "0170" + ], + "Actors": [ + "012D FB8C 0027 FA68 0000 0000 0000 FFC2", + "01A0 FBD3 FEFC FA86 0000 0000 0000 FFFF", + "01A0 FB17 003C F9E1 0000 0000 0000 FFFF", + "01A0 FAEF FEFC FAEC 0000 4000 0000 FFFF", + "01A0 FC27 FEFC FACB 0000 4000 0000 FFFF", + "01A0 FAF7 FEFC FB4B 0000 0000 0000 FFFF", + "000A FB8B 003C FC05 0000 0000 0000 27E5", + "005E FB4F 003C FC03 0000 0000 0000 1093", + "005E FBC8 003C FC03 0000 0000 0000 1093", + "01BB FB8C 003C FBB4 0000 8000 0000 0FD3", + "01BB FB14 003C FBB4 0000 8000 0000 0FD3", + "01BB FC04 003C FBB4 0000 8000 0000 0FD3", + "01BB FB14 00B4 FBB4 0000 8000 0000 0FD3", + "01BB FB8C 00B4 FBB4 0000 8000 0000 0FD3", + "01BB FC04 00B4 FBB4 0000 8000 0000 0FD3", + "0111 FBF7 003C F9DF 0000 0000 0000 680E", + "012A FAE5 003C FA82 0000 0000 0000 3E03", + "015F FB8C FEDE FB0F 0000 0000 0000 0FBF" + ] + }, + { + "File": { + "Name": "Scene 5, Room 10", + "Start": "02635000", + "End": "0263AFB0", + "RemapStart": "2634E40" + }, + "Id": 10, + "Objects": [ + "0059", + "0170", + "011C", + "000E", + "0024", + "015C", + "001B" + ], + "Actors": [ + "0025 FC00 043C 0079 0000 0000 0000 FFFF", + "0112 FC02 0219 010D 0000 0000 0006 1B3F", + "0065 FC0E 02FD 001E 0000 0000 0000 FF00", + "01A0 FBB1 01CC FEC5 0000 0000 0000 FFFF", + "01A0 FB82 01CC FF73 0000 0000 0000 FFFF", + "01A0 FC4F 01CC FEC5 0000 0000 0000 FFFF", + "01A0 FB7B 01CC FF23 0000 4000 0000 FFFF", + "01A0 FB83 01CC 00AD 0000 0000 0000 FFFF", + "01A0 FB82 035C 0038 0000 0000 0000 FFFF", + "01A0 FC8C 035C 0041 0000 4000 0000 FFFF", + "01A0 FC84 01CC FFA5 0000 0000 0000 FFFF", + "0110 FB72 01CC 0061 0000 0000 0000 FFFF", + "0110 FC20 035C 017E 0000 0000 0000 FFFF", + "0095 FB7E 035C 003A 0000 4000 0000 8604", + "012D FC07 035C 0018 0000 0000 0000 24C1", + "012D FBFD 0190 00CB 0000 0000 0000 24C1", + "012A FC85 01B4 FFA7 0000 0000 0000 2403", + "0111 FC23 01CC 00FF 0000 0000 0000 7003", + "0111 FBFE 01CC 0101 0000 0000 0000 7203", + "0111 FBDA 01CC 0100 0000 0000 0000 7403" + ] + }, + { + "File": { + "Name": "Scene 5, Room 11", + "Start": "0263B000", + "End": "0263F9B0", + "RemapStart": null + }, + "Id": 11, + "Objects": [ + "0059", + "013B", + "013A", + "011C", + "00B5", + "00E5", + "0016", + "0012", + "0026", + "00B0", + "0090", + "0085" + ], + "Actors": [ + "0112 FF99 0360 FB0F 0000 0000 0006 18BF", + "0112 FEFE 035F FB10 0000 0000 0006 1AFF", + "0080 FFA3 039C F97D 0000 C000 ED83 0F10", + "0080 FEE8 03DC F8FD 0000 C000 ED83 0F10", + "0080 FEF2 035B F9FD 0000 4000 127D 0F10", + "012D FEE7 0406 F81C 0000 0000 0000 3EC1", + "012D FFAE 0406 F81C 0000 0000 0000 3EC1", + "012D FEE8 0334 FB00 0000 0000 0000 3EC1", + "012D FFB0 0334 FB00 0000 0000 0000 3EC1", + "012A FF4E 04FB F7E3 4000 0000 0000 3E03" + ] + }, + { + "File": { + "Name": "Scene 5, Room 12", + "Start": "02640000", + "End": "02646D90", + "RemapStart": null + }, + "Id": 12, + "Objects": [ + "0059", + "013B", + "011C", + "0154", + "00A4", + "0170", + "0024", + "015C" + ], + "Actors": [ + "012D FF4A 00CF F60A 4000 0000 0000 FFC2", + "012D FC1A 00F7 F740 4000 0000 0000 FFC2", + "012D FAFF 00EB F5F0 4000 0000 0000 FFC2", + "0160 FE0C FF60 F4CA 0000 0000 0000 0000", + "0160 008C FF60 F74A 0000 0000 0000 0000", + "01BB FE98 0064 F470 8000 0000 0000 0FFF", + "01BB FF10 0064 F470 8000 0000 0000 0FFF", + "01BB FF88 0064 F470 8000 0000 0000 0FFF", + "01BB 0000 0064 F470 8000 0000 0000 0FFF", + "01A0 FE7A 0000 F3CA 0000 0000 0000 FFFF", + "01A0 FED1 0000 F3CA 0000 0000 0000 FFFF", + "01A0 FFA9 0000 F3CA 0000 0000 0000 FFFF", + "01A0 FFF9 0000 F3CA 0000 0000 0000 FFFF", + "01A0 FE8D 0000 F7E3 0000 0000 0000 FFFF", + "01A0 FFF5 0000 F7E5 0000 0000 0000 FFFF", + "01A0 007E FF60 F64B 0000 0000 0000 FFFF", + "01A0 FF89 FF60 F64F 0000 0000 0000 FFFF", + "01A0 FF05 FF60 F555 0000 0000 0000 FFFF", + "01A0 000B FF60 F54F 0000 0000 0000 FFFF", + "01A0 FE0E FF60 F59B 0000 0000 0000 FFFF", + "01A0 FE39 FF60 F6A6 0000 0000 0000 FFFF", + "0095 FE76 0000 F3C8 0000 4000 0000 8608", + "01C9 FD46 003C F722 0000 0000 0005 18CC" + ] + }, + { + "File": { + "Name": "Scene 5, Room 13", + "Start": "02647000", + "End": "02647A00", + "RemapStart": null + }, + "Id": 13, + "Objects": [ + "0059", + "0125", + "013B", + "013A", + "0020" + ], + "Actors": [ + "0136 F3D0 0410 F588 0000 4000 0000 FFFF" + ] + }, + { + "File": { + "Name": "Scene 5, Room 14", + "Start": "02648000", + "End": "0264EE60", + "RemapStart": null + }, + "Id": 14, + "Objects": [ + "0059", + "011C", + "000E", + "0170", + "000C" + ], + "Actors": [ + "012D FE55 FFEB F1A6 0000 4000 0000 FFC2", + "0012 FF5A FF60 F34B 0000 C16C 0000 FFFF", + "0012 FF17 FED4 F1EE 0000 C0B6 0000 FFFF", + "0012 FF52 FED4 F179 0000 0000 0000 FFFF", + "0012 FF71 FED4 F1F1 0000 C0B6 0000 FFFF", + "0012 FFDA FF60 F332 0000 DA50 0000 FFFF", + "0012 FF41 FED4 F22E 0000 0000 0000 FFFF", + "0012 FF52 FEF8 F13B 0000 D3E9 0000 FFFF", + "01A0 0024 FEC0 F18C 0000 4000 0000 FFFF", + "01A0 FEF1 FED4 F10E 0000 0000 0000 FFFF", + "01A0 FE73 FF60 F116 0000 4000 0000 FFFF", + "01A0 001E FF60 F371 0000 0000 0000 FFFF", + "01A0 FFAB FED4 F27C 0000 4000 0000 FFFF", + "0065 FF4B FEDE F29A 0000 0000 0000 1804", + "0111 001C FF60 F117 0000 0000 0000 7604", + "0111 FFE4 FF60 F117 0000 0000 0000 7804" + ] + }, + { + "File": { + "Name": "Scene 5, Room 15", + "Start": "0264F000", + "End": "02656430", + "RemapStart": null + }, + "Id": 15, + "Objects": [ + "0059", + "013B", + "013A", + "011C", + "00B5", + "00E5", + "0016", + "0012", + "0026", + "000E", + "00A4", + "0090" + ], + "Actors": [ + "0112 FC2D 0095 F3DA 0000 0000 0000 10FF", + "0112 FC94 0099 F2EF 0000 0000 0000 11FF", + "005E FD53 00C8 F366 0000 0000 2000 1126", + "005E FBCD 00C8 F366 0000 0000 E000 1126", + "005E FC5A 0078 F492 0000 0000 0000 1126", + "005E FC5C 0078 F232 0000 0000 0000 1126", + "012A FD34 0078 F46E 0000 0000 0000 3803", + "015F FC2C FF10 F3E0 0000 0000 0000 0E3F", + "015F FC90 FF10 F2F0 0000 0000 0000 0E3F", + "015F FCCC FF10 F390 0000 0000 0000 0E3F" + ] + }, + { + "File": { + "Name": "Scene 5, Room 16", + "Start": "02657000", + "End": "0265AAD0", + "RemapStart": null + }, + "Id": 16, + "Objects": [ + "0059", + "000E", + "0032", + "0170", + "00AA" + ], + "Actors": [ + "0112 FAFA 00A5 F40C 0000 0000 0006 18BF", + "0002 FAFB 006C F456 0000 0000 0000 FFFF", + "01A0 FA64 006C F4C5 0000 4000 0000 FFFF", + "01A0 FA65 006C F489 0000 4000 0000 FFFF", + "01A0 FB9B 006C F492 0000 4000 0000 FFFF", + "01A0 FB9B 006C F4CE 0000 4000 0000 FFFF", + "01A0 FA64 006C F532 0000 4000 0000 FFFF", + "0015 FA60 006C F534 0000 0000 0000 0111", + "0111 FA77 006C F42F 0000 0000 0000 7A12", + "0111 FB82 006C F429 0000 0000 0000 7C0E" + ] + }, + { + "File": { + "Name": "Scene 5, Room 17", + "Start": "0265B000", + "End": "02663A20", + "RemapStart": null + }, + "Id": 17, + "Objects": [ + "0059", + "000E", + "011C", + "00A4", + "00CA", + "0190", + "00A8" + ], + "Actors": [ + "01D1 03D4 0168 0083 0000 4000 0000 08FF", + "005E 03DA 0000 0062 0000 0000 0000 2400", + "0065 03E3 02FD 00B4 0000 0000 0000 FF00", + "0173 064C 0214 00B3 0000 0018 0001 3F00", + "0185 03E7 035B 0152 0000 8000 0000 853F", + "000A 0565 01CC 00BB 0000 4000 0017 B120", + "00D2 03CD 0000 00B4 0000 C000 0000 1004", + "0112 064E 020A 00B3 0000 0000 0006 18D7", + "012E 03E7 030C 0152 0000 8000 0000 1C9C", + "012D 041C 0190 00B5 0000 0000 0000 1FC1", + "012D 035C 0000 0104 0000 0000 0000 1FC1", + "012D 035C 0000 0063 0000 0000 0000 1FC1", + "012D 035C 030C 0106 0000 0000 0000 1FC1", + "0111 0463 0000 003E 0000 4000 0000 4A0E", + "0111 0463 0000 0125 0000 4000 0000 4C0E", + "005E 034A 0384 0017 1C72 2000 0000 1137", + "005E 047B 0384 0017 1C72 E000 0000 1137", + "005E 034B 0384 0151 1C72 6000 0000 1137", + "005E 047C 0384 0152 1C72 A000 0000 1137", + "005E 0474 0014 001E 0000 C000 0000 10BE", + "005E 0474 0014 014A 0000 C000 0000 10BE" + ] + }, + { + "File": { + "Name": "Scene 5, Room 18", + "Start": "02664000", + "End": "026680C0", + "RemapStart": null + }, + "Id": 18, + "Objects": [ + "0059", + "000E", + "011C", + "00E5", + "001B" + ], + "Actors": [ + "00EC 0630 0000 00B2 0000 0000 0000 0000", + "0025 06B8 014F 011B 0000 0000 0000 FFFF", + "0025 06B5 014F 0054 0000 0000 0000 FFFF", + "0112 071E 004B 00B6 0000 0000 0006 1ABF", + "0065 0546 02FD 00B4 0000 C000 0000 FF00", + "0173 071F 0057 00B3 0000 0000 0001 3F00", + "000A 066E 0000 00AC 0000 4000 0000 1801", + "012D 04BA FFC4 0104 0000 0000 0000 1FC1", + "012D 04BA FFC4 0064 0000 0000 0000 1FC1", + "0187 05D4 0000 00F8 0000 0000 0000 7FFF" + ] + }, + { + "File": { + "Name": "Scene 5, Room 19", + "Start": "02669000", + "End": "0266C930", + "RemapStart": null + }, + "Id": 19, + "Objects": [ + "0059", + "000E", + "011C", + "0032" + ], + "Actors": [ + "0002 0612 030C 010C 0000 0000 0000 FFFF", + "0002 0615 030C 006B 0000 0000 0000 FFFF", + "0002 05CE 030C 00C0 0000 0000 0000 FFFF", + "0173 071D 0360 00B5 0000 000A 0001 3F00", + "000A 05E4 0310 00B6 0000 C000 0009 B822", + "0112 071E 0356 00B5 0000 0000 0006 1AC9" + ] + }, + { + "File": { + "Name": "Scene 5, Room 20", + "Start": "0266D000", + "End": "02673740", + "RemapStart": null + }, + "Id": 20, + "Objects": [ + "0059", + "000E", + "011C", + "0170", + "001B", + "0024", + "015C", + "00A4" + ], + "Actors": [ + "0025 028D 02C2 03B9 0000 8000 0000 FFFF", + "0025 0292 03E0 00B8 0000 0000 0000 FFFF", + "0112 0293 0218 040A 0000 0000 0006 197F", + "0065 026C 02FD 0334 0000 0000 0000 FF00", + "01A0 0330 01C6 01FE 0000 C000 0000 FFFF", + "01A0 0330 01C6 023A 0000 C000 0000 FFFF", + "01A0 020D 01D6 03BA 0000 4000 0000 FFFF", + "01A0 020C 01D6 0347 0000 4000 0000 FFFF", + "01A0 031B 01D6 032A 0000 4000 0000 FFFF", + "01A0 031B 01D6 0366 0000 4000 0000 FFFF", + "01A0 02AE 01D6 03F8 0000 0000 0000 FFFF", + "01A0 010E 01CC 01F8 0000 0000 0000 FFFF", + "01A0 01B5 01CC 0240 0000 0000 0000 FFFF", + "01A0 02BA 01CC 018F 0000 4000 0000 FFFF", + "0095 0334 01C6 021C 0000 4000 0000 8601", + "005E 02E6 01C6 01F4 0000 0000 0000 1062", + "01BB 02D1 01CC 021A 0000 C000 0000 0FE2", + "0111 0200 01CC 0243 0000 0000 0000 4402", + "0111 025A 01D6 03FE 0000 0000 0000 4609", + "0111 0315 01D6 03B3 0000 0000 0000 540E", + "0111 0300 01C6 0235 0000 0000 0000 6E03", + "0111 02FF 01C6 0205 0000 0000 0000 7E03" + ] + }, + { + "File": { + "Name": "Scene 5, Room 21", + "Start": "02674000", + "End": "0267B4A0", + "RemapStart": null + }, + "Id": 21, + "Objects": [ + "0059", + "013B", + "011C", + "0024", + "015C" + ], + "Actors": [ + "012D F516 0131 F0C8 0000 0000 0000 FFC0", + "012D F432 00AF F3B3 0000 0000 0000 FFC0", + "012D F681 00AF F31E 0000 0000 0000 FFC0", + "012D F472 00AF F61A 0000 0000 0000 FFC0", + "012D F60D 00AF F553 0000 0000 0000 FFC0", + "012D F802 00AF F432 0000 0000 0000 FFC0", + "012D F95A 00A1 F588 0000 0000 0000 FFC0", + "012D F7A2 0175 F687 0000 8000 0000 FFC2", + "012D F8A7 018C F53B 8000 8000 0000 FFC2", + "0160 F536 00C3 EEE6 0000 0000 0000 0000", + "0160 F600 006E F632 0000 0000 0000 0000", + "0160 F718 006E F2C2 0000 0000 0000 0000", + "0160 F7DF 006E F521 0000 0000 0000 0000", + "0160 F8A6 006E F639 0000 0000 0000 0000", + "0160 F91D 006E F4F7 0000 0000 0000 0000", + "0095 F5FB 01F9 F554 0000 0000 582E 8602", + "011B F4BB 017C F008 0028 0000 0000 47AB", + "011B F4D2 017C EEFA 0028 0000 0000 47AB", + "0111 F74E 0104 F649 0000 0000 0000 5E09", + "0111 F778 0104 F668 0000 0000 0000 6212" + ] + }, + { + "File": { + "Name": "Scene 5, Room 22", + "Start": "0267C000", + "End": "026850F0", + "RemapStart": null + }, + "Id": 22, + "Objects": [ + "0059", + "013B", + "013A", + "011C", + "00B5", + "00E5", + "0016", + "0012", + "0026", + "00B0" + ], + "Actors": [] + } + ], + "ColDelta": { + "IsLarger": false, + "Polys": [], + "PolyTypes": [], + "Cams": [ + { + "Data": 0, + "PositionIndex": -1 + }, + { + "Data": 327680, + "PositionIndex": -1 + }, + { + "Data": 196608, + "PositionIndex": -1 + }, + { + "Data": 4063232, + "PositionIndex": -1 + }, + { + "Data": 3801088, + "PositionIndex": -1 + }, + { + "Data": 262144, + "PositionIndex": -1 + } + ] + } + }, + { + "File": { + "Name": "Scene 6", + "Start": "02ADE000", + "End": "02AF7B40", + "RemapStart": null + }, + "Id": 6, + "TActors": [ + "19FF 18FF 002E 0140 06C5 FCC2 4000 00B5", + "1AFF 19FF 002E FF38 06C5 FCC2 4000 0093", + "0FFF 05FF 002E 030C 01E0 FCAE C000 0086", + "0FFF 00FF 002E 0424 0000 FDB6 0000 003F", + "0DFF 00FF 002E 055C 001E FDD1 D555 02C3", + "00FF 0EFF 002E 02EC 001E FDD1 AAAB 00B1", + "0BFF 14FF 002E 0528 03EB 05C2 4000 005A", + "0BFF 0AFF 002E FBDC 03EB 05C2 C000 0059", + "09FF 08FF 002E F95C 034B 01D6 8000 00A4", + "04FF 01FF 002E FBDC 0028 FBAA 0000 02DE", + "03FF 01FF 002E FAA4 001E FDD1 2AAB 007F", + "02FF 01FF 002E FD14 001E FDD1 D555 007F", + "16FF 18FF 002E 02A8 0661 FC72 0000 02C1", + "18FF 17FF 002E 02A8 0607 FE41 0000 0080", + "17FF 11FF 002E 0424 034B 0096 4000 02DC", + "15FF 12FF 002E 0762 034B FE66 0000 0096", + "14FF 13FF 002E 07A8 03EB 0496 8000 007F", + "13FF 12FF 002E 07A8 034B 01D6 8000 00AF", + "12FF 11FF 002E 06A4 034B 0096 C000 00AC", + "10FF 11FF 002E 0424 034B FF2E 4000 007F", + "10FF 05FF 002E 02BC 032D FDC6 8000 02DB", + "0AFF 09FF 002E F95C 03EB 0496 8000 02D5", + "07FF 08FF 002E FC54 034B FF2E C000 00A4", + "06FF 05FF 002E 003C 019D FD76 8000 0087", + "05FF 04FF 002E FD6C 01E0 FCAE C000 02D2", + "07FF 05FF 002E FDBC 032D FDC6 8000 0088", + "03FF 1BFF 002E FA65 001E FAD1 6000 007F", + "1BFF 02FF 002E FCCD 001E FA4A 1F4A 007F", + "0CFF 0DFF 002E 0621 FF7E F9BD 0000 0082", + "00FF 01FF 0023 FD8D FFCE FFFF C000 003F", + "1CFF 05FF 002E 003C 03EF F8EA 0000 0154", + "06FF 00FF 0023 0000 0179 FFC3 8000 00BF", + "19FF 05FF 0023 003C 05D0 FBBE 8000 00BF" + ], + "Paths": [ + { + "Points": [ + [ + -486, + -50, + -1 + ], + [ + -403, + -50, + -44 + ] + ] + }, + { + "Points": [ + [ + 1466, + -80, + -1423 + ], + [ + 1466, + -80, + -743 + ] + ] + }, + { + "Points": [ + [ + 1673, + -80, + -743 + ], + [ + 1673, + -80, + -1423 + ] + ] + }, + { + "Points": [ + [ + -555, + 1776, + -675 + ], + [ + -449, + 1823, + -717 + ], + [ + -440, + 1772, + -805 + ], + [ + -463, + 1818, + -902 + ], + [ + -565, + 1781, + -934 + ], + [ + -652, + 1827, + -906 + ], + [ + -685, + 1772, + -809 + ], + [ + -662, + 1823, + -722 + ], + [ + -555, + 1776, + -675 + ] + ] + }, + { + "Points": [ + [ + -565, + 1827, + -498 + ], + [ + -685, + 1767, + -442 + ], + [ + -740, + 1836, + -304 + ], + [ + -699, + 1762, + -179 + ], + [ + -551, + 1818, + -110 + ], + [ + -422, + 1758, + -170 + ], + [ + -366, + 1832, + -304 + ], + [ + -417, + 1758, + -452 + ], + [ + -565, + 1827, + -498 + ] + ] + } + ], + "Rooms": [ + { + "File": { + "Name": "Scene 6, Room 0", + "Start": "02AF8000", + "End": "02B08F40", + "RemapStart": "2AF7C00" + }, + "Id": 0, + "Objects": [ + "00F1", + "016D", + "0163", + "000E", + "013A", + "011E", + "011C", + "0025", + "00B3", + "00B7" + ], + "Actors": [ + "012D 0000 01BA FF94 0000 0000 0000 FFC2", + "0127 FF60 FF6A 010E 0000 0000 0000 000B", + "0127 0000 0118 FFC4 0000 0000 0000 800C", + "0127 015E FFFF 00DC 0000 0E39 0000 800E", + "0127 00A0 FF6A 010E 0000 0000 0000 0010", + "0127 042E 0001 FEDE 0000 0000 0000 001D", + "012A 042E 0001 FEDE 0000 0000 0000 2301", + "012A 015C 0019 00CD 0000 8000 0000 2502", + "012A FF36 0107 0324 C000 0000 0000 2603", + "0117 03F8 FFCE FFB7 0000 0000 0000 1FF7", + "0117 00A0 FF6A 010C 0000 0000 0000 1FF7", + "0117 FF60 FF6A 010E 0000 0000 0000 1FF7", + "0117 03C7 0000 FDDD 0000 0000 0000 1FF7", + "0117 02E8 FFCE 0004 0000 0000 0000 1FF7", + "00C3 FE12 FFCE FFFF 0000 4000 0000 0006", + "000A FF83 FFCE 0021 0000 8000 0000 507A", + "000A 007D 006F FF4F 0000 8000 0026 807F", + "0111 FF01 FF6A 02E6 0000 0000 0000 4203", + "0111 0132 FF6A 02AA 0000 0000 0000 6403", + "0111 FED7 FF6A 02AF 0000 0000 0000 6204", + "0117 0055 FFCE 005A 0000 0000 0000 0177", + "0111 0104 FF6A 02DF 0000 0000 0000 440E", + "015F 02E6 FF01 FFFF 000A 0005 0007 18D7", + "0185 012E FFCD 0136 0000 EAAB 0016 083F", + "0185 FEE6 FFCD 0138 0000 1555 0016 087F", + "000A 0084 006F 0021 0000 8000 0037 885B", + "000A FF79 006F FF4F 0000 8000 0025 885E" + ] + }, + { + "File": { + "Name": "Scene 6, Room 1", + "Start": "02B09000", + "End": "02B12300", + "RemapStart": null + }, + "Id": 1, + "Objects": [ + "00F1", + "016D", + "0163", + "000E", + "013A", + "011E", + "011C", + "0025", + "00B3", + "00B7" + ], + "Actors": [ + "0038 FB83 0000 FF24 0000 0000 0000 FFFF", + "0038 FC36 0000 FEA6 0000 0000 0000 FFFF", + "0013 FB7C 0048 FE0B 0000 1555 0000 0000", + "0013 FC3B 0048 FE0B 0000 EAAB 0000 0000", + "0127 FBDC 0000 FD58 0000 0000 0000 8005", + "012A FC37 0028 FC51 0000 0000 0000 0D01", + "0049 FB7C 0000 FDDF 0000 0000 0000 2FF8", + "0049 FC3B 0000 FDDF 0000 0000 0000 2FF8", + "0049 FB18 0000 FF23 0000 0000 0000 2FF8", + "0049 FCA4 0000 FF20 0000 0000 0000 2FF8", + "012A FBDC 00A9 FDD2 0000 0000 0000 3802", + "0111 FC82 FFCE FFCE 0000 0000 0000 4004", + "000A FBDE 00A7 FF8C 0000 0000 000D 885D", + "0015 FB81 0000 FDE9 0000 0000 0000 2C03", + "0015 FC30 0000 FDE9 0000 0000 0000 2E03" + ] + }, + { + "File": { + "Name": "Scene 6, Room 2", + "Start": "02B13000", + "End": "02B18C10", + "RemapStart": null + }, + "Id": 2, + "Objects": [ + "00F1", + "016D", + "0163", + "0098", + "00A2", + "0179" + ], + "Actors": [ + "0090 FE0A 001E FD22 0000 0000 0000 7FFE", + "0090 FE5C 001E FACB 0000 C000 0000 7FFE", + "0090 FE5F 001E FB8B 0000 C000 0000 7FFE", + "009D FDB6 001E FD67 0000 0000 0000 0000", + "009D FE65 001E FD67 0000 0000 0000 0000", + "00FD FDB1 0020 FBE3 0000 8000 0000 0021", + "012A FE64 001E FD66 0000 0000 0000 2100", + "0127 FDAF 001E FAC4 0000 0000 0000 0028", + "01B4 FDB5 0050 FC50 0000 0000 0000 3601", + "012A FDAE 0046 FA93 0000 2000 0000 3602", + "0127 FCEE 0077 FC5E 0000 0000 0000 003C", + "0127 FE5B FFAA FBF4 0000 0000 0000 003D", + "0111 FE82 001E FB18 0000 0000 0000 6803", + "0111 FE83 001E FB49 0000 0000 0000 660E" + ] + }, + { + "File": { + "Name": "Scene 6, Room 3", + "Start": "02B19000", + "End": "02B1CB50", + "RemapStart": null + }, + "Id": 3, + "Objects": [ + "00F1", + "016D", + "000E", + "00D6", + "000D", + "00A4", + "0114", + "00A2" + ], + "Actors": [ + "0013 F8F2 00BC FC63 0000 4000 0000 0003", + "0013 FAD0 0000 FC7A 0000 C000 0000 0003", + "0013 FA39 0051 FB8E 0000 0000 0000 0003", + "0013 F932 007A FDD5 0000 560B 0000 0003", + "0013 F9DD FFAA FBE2 0000 0000 0000 0003", + "005E F980 001E FB7B 0000 0000 0000 2400", + "005E FA39 001E FB7B 0000 0000 0000 2400", + "005E F980 001E FD38 0000 0000 0000 2400", + "005E FA39 001E FD38 0000 0000 0000 2400", + "009D F9A6 001E FAC6 0000 4000 0000 0000", + "00FD F9DF 001E FBE3 0000 0000 0000 002A", + "012A F9A4 001E FAC8 0000 0000 0000 2A00", + "00F6 F9E3 001E FD1C 0000 0000 0000 0002", + "000A F9E3 001E FD1B 0000 8000 0000 0820", + "000A F9DB 001E FB9A 0000 0000 0000 7848" + ] + }, + { + "File": { + "Name": "Scene 6, Room 4", + "Start": "02B1D000", + "End": "02B24270", + "RemapStart": null + }, + "Id": 4, + "Objects": [ + "00F1", + "016D", + "00AB", + "012A", + "000E", + "001F", + "0059", + "008B", + "000D", + "00D4", + "00CB", + "00DC", + "00F2" + ], + "Actors": [ + "002F FBD3 01EB FCE3 0000 5555 0000 FFFF", + "002F FBEA 01F3 FD2B 0000 6444 0000 FFFF", + "002F FD1D 01E0 FC02 0000 E38E 0000 FFFF", + "002F FCD0 01E0 FBAF 0000 ECCD 0000 FFFF", + "00DD FBDE 0100 FB13 0000 0000 0000 FFFF", + "0150 FC67 01E0 FC87 C000 C000 0000 0F00", + "0159 FB78 02AE FC90 0000 0000 0000 000F", + "012A FBDE 0028 FB0E 0000 0000 0000 3E43", + "012A FBDA 01E3 FB76 0000 0000 0000 3E43", + "01BB FC18 00EC FB0A 4000 C000 0000 0FFE", + "000A FD11 01E0 FBB9 0000 5C72 0000 7066", + "008A FCD1 01E0 FCF8 0000 8000 0000 0A00", + "0111 FBF5 0028 FB28 0000 0000 0000 460E", + "0185 FC68 01E0 FC8C 0000 0000 000B 04BF", + "000A FC2A 02BF FD7D 0000 4000 000F 884C" + ] + }, + { + "File": { + "Name": "Scene 6, Room 5", + "Start": "02B25000", + "End": "02B3CF40", + "RemapStart": "2B24380" + }, + "Id": 5, + "Objects": [ + "00F1", + "016D", + "00AB", + "00B0", + "00A4", + "012A", + "000E", + "0154", + "0190", + "00A8", + "016C", + "000B", + "0170" + ], + "Actors": [ + "0011 0042 0161 FB5C 0000 0000 0000 0001", + "008E 01DA 02F2 FD30 0000 C4FA 0000 0000", + "0158 003C 070A FBB2 0000 0000 0000 0000", + "015A 003C 0421 FA02 0000 0000 0000 FFFF", + "0169 003C 014D FC14 0000 0000 0000 0000", + "0169 FE34 032D FC36 0000 0000 0000 0000", + "0169 0244 032D FC36 0000 0000 0000 0000", + "0169 0244 014D FA56 0000 0000 0000 0000", + "0169 FE34 014D FA56 0000 0000 0000 0000", + "005E FF80 0287 FCB6 0000 0000 0000 2400", + "005E 00F4 0287 FCB1 0000 0000 0000 2400", + "01A0 023A 014D F9EA 0000 0000 0000 FFFF", + "01A0 01FE 014D F9EA 0000 0000 0000 FFFF", + "0110 FEF1 01F4 FC29 0000 0000 0000 FFFF", + "0156 003C 0487 FA63 0000 0000 0000 0004", + "012A 003C 0258 FD62 0000 8000 0000 0782", + "012A FEBA 029B FB2E 0000 0000 0000 0820", + "0157 003C 03CD FBBE 0000 0000 0000 0017", + "011D FDD1 032D F9F9 0000 0000 0000 FFE5", + "011D 029F 014D FB65 0000 0000 0000 FFE8", + "0011 01AA 0411 FB2B 0000 0000 0000 3302", + "012A FEBE 01B9 FA17 0000 C000 0000 3402", + "011D FF76 0287 FD1B 0000 0000 0000 FFF6", + "01D6 FDE6 02C9 FB96 0000 0000 0000 3838", + "01D6 FED9 0190 FC15 0000 0000 0000 B838", + "012E 01BD 02A2 FB0F 0000 0000 0000 1CB3", + "01D1 FE2A 01B8 FC04 0000 0000 0000 19FF", + "005E FE34 01ED FA56 0000 0000 0000 10C6", + "005E 0244 01ED FA56 0000 0000 0000 10C6", + "005E 003C 01ED FC14 0000 0000 0000 10C6", + "0111 027F 014D FB38 0000 0000 0000 4E03", + "01C9 02A1 01E0 FC41 0000 8000 0005 017F", + "0111 FDF7 032D F9D8 0000 0000 0000 4C08", + "0111 FDAD 032D F9D8 0000 0000 0000 480E", + "0111 FDD1 014D FB47 0000 0000 0000 6A0F", + "0111 02C0 014D FB38 0000 0000 0000 5210", + "0173 003B 0444 FA7E 0006 0005 0000 3C24", + "0185 01BD 02A2 FB0F 0000 0000 000B 8AF3", + "000A 003C 0164 FB3C 0000 8000 0034 B803", + "000A 020E 0502 F9C0 0000 8000 0033 888F", + "000A 02AC 032D F9FF 0000 0000 0000 6902", + "011B 003D 03C7 FBBE 001E 0000 0064 2791" + ] + }, + { + "File": { + "Name": "Scene 6, Room 6", + "Start": "02B3D000", + "End": "02B41800", + "RemapStart": null + }, + "Id": 6, + "Objects": [ + "00F1", + "016D", + "0163", + "000E", + "013A", + "011E", + "011C", + "0025", + "00B3", + "00B7" + ], + "Actors": [ + "012D 0000 01BA FF94 0000 0000 0000 FFC2", + "00FF 021C 019D FEFB 0000 0000 0000 09C3", + "00FF 021C 00D5 FE33 0000 0000 0000 09C7", + "0139 021C 00D5 FE33 0000 0000 0000 0009", + "01D5 021C 019D FEFB 0000 0000 0000 0009", + "012A 021C 015B FDD1 0000 0000 0000 0A02", + "00FF 021C 00D5 FFC3 0000 0000 0000 3FC3", + "000A 003A 022C FE65 0000 0000 000A 885C" + ] + }, + { + "File": { + "Name": "Scene 6, Room 7", + "Start": "02B42000", + "End": "02B47510", + "RemapStart": null + }, + "Id": 7, + "Objects": [ + "00F1", + "016D", + "002C" + ], + "Actors": [ + "0045 FD5A 0337 FEA5 0000 2444 0000 0000", + "0008 FCE0 0378 FED6 0000 0000 0000 03F4", + "0008 FCE0 0375 FF89 0000 0000 0000 03F4", + "0008 FD64 035A FE52 0000 0000 0000 03F4", + "0008 FDBC 036B FF2E 0000 0000 0000 03F4", + "0008 FE14 035B FE52 0000 0000 0000 03F4" + ] + }, + { + "File": { + "Name": "Scene 6, Room 8", + "Start": "02B48000", + "End": "02B50070", + "RemapStart": null + }, + "Id": 8, + "Objects": [ + "00F1", + "016D", + "00AB", + "012A", + "000E", + "005D", + "000B", + "0024", + "015C", + "011C", + "0179" + ], + "Actors": [ + "012D FAC2 04B3 0010 4000 0000 0000 FFC2", + "01B4 FB85 0462 0190 0000 0000 0000 FF01", + "0069 FB4F 034B 0079 0000 9777 0000 FFFE", + "0069 FA09 034B FF19 0000 53E9 0000 FFFE", + "0069 F9B2 034B 0101 0000 B333 0000 FFFE", + "0150 FA95 034B FF74 0000 0000 0000 2421", + "00B7 F960 034B FF4D 0000 0000 0000 0001", + "0150 FAD1 034B FF74 0000 0000 0000 2B21", + "0049 F919 034B 0046 0000 4000 0000 2FF8", + "0049 FA63 034B 008C 0000 0000 0000 2FF8", + "0049 FB03 034B FE84 0000 0000 0000 2FF8", + "0049 FB03 034B FEC0 0000 0000 0000 2FF8", + "0049 F97D 034B 0046 0000 4000 0000 2FF8", + "0049 FA63 034B 00FA 0000 0000 0000 2FF8", + "0049 FA63 034B 0168 0000 0000 0000 2FF8", + "012A FAB8 039B FFAB 0000 0000 0000 3803", + "01B4 FAC1 0442 000B 0000 0000 0000 3901", + "0150 FA95 034B FFD8 0000 0000 0000 3921", + "0011 FA27 034B FF99 0000 0000 0000 3A02", + "0150 F9CD 034B 0078 0000 0000 0000 3A21", + "0011 FA0E 034B 00B8 0000 0000 0000 3B02", + "0150 F969 034B FE70 0000 0000 0000 3B21", + "0111 FB04 039B 01B0 0000 0000 0000 5603", + "0095 FB9A 0462 01A5 0000 0000 0000 8701", + "0111 F99D 039B FE42 0000 0000 0000 5410", + "000A FBC8 046C FE3E 0000 4000 002B 8901" + ] + }, + { + "File": { + "Name": "Scene 6, Room 9", + "Start": "02B51000", + "End": "02B56DF0", + "RemapStart": null + }, + "Id": 9, + "Objects": [ + "00F1", + "016D", + "002C", + "0024" + ], + "Actors": [ + "0037 F95C 0463 0342 0000 8000 0000 0001", + "0008 F8F9 03CD 0336 0000 0000 0000 03F4", + "0008 F8F9 037E 024E 0000 0000 0000 03F4", + "0008 F8FA 041D 041E 0000 0000 0000 03F4", + "0008 F9BC 041D 041D 0000 0000 0000 03F4", + "0008 F9BC 03CB 0337 0000 0000 0000 03F4", + "0008 F9BD 037B 024F 0000 0000 0000 03F4" + ] + }, + { + "File": { + "Name": "Scene 6, Room 10", + "Start": "02B57000", + "End": "02B5F1A0", + "RemapStart": null + }, + "Id": 10, + "Objects": [ + "00F1", + "016D", + "016C", + "0106" + ], + "Actors": [ + "0008 F88E 0417 0537 0000 0000 0000 03F4", + "0008 F88E 0417 064F 0000 0000 0000 03F4", + "0008 F952 0412 06CE 0000 0000 0000 03F4", + "0008 FAF6 0411 06CE 0000 0000 0000 03F4", + "0008 FB00 0411 04BA 0000 0000 0000 03F4", + "0113 FB1E 03EB 05C4 0000 C000 0000 1901", + "0169 FB41 03EB 05C2 0000 8000 0000 0001", + "0169 F8E4 03EB 054A 0000 4000 0000 0000", + "0169 F8E4 03EB 063A 0000 4000 0000 0000", + "0169 F9D4 03EB 054A 0000 4000 0000 0000", + "0169 F9D4 03EB 063A 0000 4000 0000 0000", + "0169 FAC4 03EB 054A 0000 4000 0000 0000", + "0169 FAC4 03EB 063A 0000 4000 0000 0000" + ] + }, + { + "File": { + "Name": "Scene 6, Room 11", + "Start": "02B60000", + "End": "02B61010", + "RemapStart": null + }, + "Id": 11, + "Objects": [ + "00F1", + "016D", + "016C", + "0106" + ], + "Actors": [] + }, + { + "File": { + "Name": "Scene 6, Room 12", + "Start": "02B62000", + "End": "02B64060", + "RemapStart": null + }, + "Id": 12, + "Objects": [ + "00F1", + "016D", + "000E", + "0024", + "015C", + "007C" + ], + "Actors": [ + "0037 05E5 0046 F8C5 0000 0000 0000 0000", + "0037 06A3 0046 F88E 0000 0000 0000 0000", + "0037 05BA 0046 F84D 0000 0000 0000 0000", + "0037 06B9 0046 F90B 0000 0000 0000 0000", + "0037 062C 0046 F822 0000 0000 0000 0002", + "0037 0657 0046 F8E5 0000 0000 0000 0001", + "0037 0621 0046 F879 0000 0000 0000 0001", + "0037 0627 0046 F92C 0000 0000 0000 0001", + "0037 05A4 0046 F91B 0000 0000 0000 0001", + "0095 06C7 0000 F966 4000 A000 0000 8708", + "000A 0625 FF7E F828 0000 8000 0000 5AA7" + ] + }, + { + "File": { + "Name": "Scene 6, Room 13", + "Start": "02B65000", + "End": "02B6A850", + "RemapStart": null + }, + "Id": 13, + "Objects": [ + "00F1", + "016D", + "011F", + "0059", + "0190", + "00A8", + "00F0", + "012A", + "011F", + "0030" + ], + "Actors": [ + "0107 0517 007B FAB8 0000 0000 0000 00FF", + "004B 0621 FF7E FA53 0000 0000 0000 0000", + "0130 05BA FFB0 FA71 0000 0000 0000 0301", + "0130 0689 FFB0 FD19 0000 0000 0000 0302", + "0150 0533 0085 FCD2 0000 4000 0000 0300", + "01BB 0523 FFDF FBC5 0000 4000 0000 0FF8", + "01BB 0721 FFDF FB3E 0000 C000 0000 0FF9", + "01BB 0523 FFDF FCD3 0000 4000 0000 0FFA", + "01BB 0523 FFDF FAB7 0000 4000 0000 0FFB", + "012A 0621 001E FD9F 0000 0000 0000 3C01", + "01BB 0721 FFDF FC4D 0000 C000 0000 0FFC", + "01D1 072C 00A9 FC4C 0000 0000 0000 81FF", + "012E 04E1 FFDF FAB7 0000 0000 0000 1C7A", + "012E 04E1 FFDF FBC5 0000 0000 0000 1C82", + "012E 04E1 FFDF FCD3 0000 0000 0000 1CF9", + "012E 0760 FFDF FC4D 0000 0000 0000 1D3B", + "012E 0760 FFDF FB3E 0000 0000 0000 1D78" + ] + }, + { + "File": { + "Name": "Scene 6, Room 14", + "Start": "02B6B000", + "End": "02B6FC90", + "RemapStart": null + }, + "Id": 14, + "Objects": [ + "00F1", + "016D", + "0017", + "000E", + "0024", + "015C" + ], + "Actors": [ + "00A7 0264 FF61 FBB8 0000 0000 0000 0041", + "012E 0175 001E FC98 0000 0000 0000 1CB1", + "0095 0205 010E FC15 8000 0000 0000 8702", + "0185 0175 001E FC98 0000 00B6 000B 8AF1", + "000A 0166 001E FA90 0000 8000 0000 7AA4" + ] + }, + { + "File": { + "Name": "Scene 6, Room 15", + "Start": "02B70000", + "End": "02B78470", + "RemapStart": null + }, + "Id": 15, + "Objects": [ + "00F1", + "016D", + "00AB", + "012A", + "0032", + "000B", + "0059", + "0085" + ], + "Actors": [ + "0002 0489 01E0 FC09 0000 DA50 0000 0002", + "0002 048B 01E0 FD5A 0000 B333 0000 0002", + "0011 0480 01E0 FC96 0000 0000 0000 0000", + "0008 04C9 0035 FC50 0000 0000 0000 03F4", + "0008 04C9 0035 FD13 0000 0000 0000 03F4", + "01BB 0460 01D1 FAF6 4000 C000 0000 0FD1", + "0187 047A 027D FB16 0000 0000 0000 47FF", + "0011 03D0 01E0 FC72 0000 0000 0000 3A02", + "0150 054B 0212 FCB4 0000 C000 0000 3A30", + "0011 046A 01E0 FCD4 0000 0000 0000 3B02", + "0150 0549 0212 FD56 0000 C000 0000 3B30", + "0011 044E 01E0 FC57 0000 0000 0000 3D02", + "0150 054B 0212 FC0A 0000 C000 0000 3D30", + "00B7 0417 01E0 FC03 0000 0000 0000 0002", + "0111 04B4 0000 FC72 0000 0000 0000 6E03", + "0111 04B4 0000 FBFC 0000 0000 0000 7003", + "0080 04C4 0000 FD13 0000 C000 0000 0410", + "0080 03FC 0000 FC50 0000 4000 0000 0410", + "011B 0335 01E0 FCAE 0064 0012 0004 3291" + ] + }, + { + "File": { + "Name": "Scene 6, Room 16", + "Start": "02B79000", + "End": "02B7F190", + "RemapStart": null + }, + "Id": 16, + "Objects": [ + "00F1", + "016D", + "002C", + "011C", + "016C" + ], + "Actors": [ + "012D 037B 0410 FF2A 4000 0000 0000 FFC2", + "012D 02BC 03F7 FE62 4000 0000 0000 FFC2", + "0049 02B7 0337 FF34 0000 0000 0000 2FFF", + "0049 0344 0337 FEA7 0000 0000 0000 2FFF", + "000C 0300 0337 FEEA 0000 2000 0000 00FF", + "0008 0264 0358 FE52 0000 0000 0000 03F4", + "0008 0314 0358 FE52 0000 0000 0000 03F4", + "0008 0398 0376 FED6 0000 0000 0000 03F4", + "0008 0398 0373 FF89 0000 0000 0000 03F4" + ] + }, + { + "File": { + "Name": "Scene 6, Room 17", + "Start": "02B80000", + "End": "02B89610", + "RemapStart": null + }, + "Id": 17, + "Objects": [ + "00F1", + "016D", + "000E", + "008B", + "0190", + "00A8" + ], + "Actors": [ + "0110 0566 043B 00BE 0000 C000 0000 FFFF", + "012A 05B7 034B FEDD 0000 0000 0000 2C20", + "01D6 0566 0374 00BD 0000 0000 0000 1839", + "01D6 0566 03D8 00BD 0000 0000 0000 9839", + "01D6 0566 02E7 00BD 0000 0000 0000 183A", + "01D6 05BB 034B FEE7 0000 0000 0000 983A", + "008A 0510 034B 0037 0000 4000 0000 0400", + "008A 05BD 034B 0037 0000 8000 0000 0400", + "008A 05B9 034B FF8B 0000 C000 0000 0400", + "008A 050D 034B FF91 0000 0000 0000 0401", + "000A 066D 034B FF89 0000 4000 0000 7979" + ] + }, + { + "File": { + "Name": "Scene 6, Room 18", + "Start": "02B8A000", + "End": "02B8FCB0", + "RemapStart": null + }, + "Id": 18, + "Objects": [ + "00F1", + "016D", + "00AB", + "012A", + "0190", + "00A8", + "001B", + "000E", + "0114" + ], + "Actors": [ + "0025 0782 048B FFB6 0000 E9F5 0000 FFFE", + "0025 07FB 048B 00F3 0000 A71C 0000 FFFE", + "0183 07F8 034B FF24 0000 0000 0000 FF40", + "0150 0893 03E0 FF26 0000 C000 0000 1600", + "00B7 07F8 034B FF24 0000 0000 0000 0003", + "0173 0821 0360 005B 0000 0030 0001 3F00", + "01D6 0762 034B FEAC 0000 0000 0000 1838", + "01D6 07F8 034B FF24 0000 0000 0000 9838", + "0112 0820 034B 005B 0000 0000 0002 192F", + "0112 0820 034B 005B 0000 0000 0000 192F", + "000A 0820 034B 005B 0000 4000 0000 5F98" + ] + }, + { + "File": { + "Name": "Scene 6, Room 19", + "Start": "02B90000", + "End": "02B95DE0", + "RemapStart": null + }, + "Id": 19, + "Objects": [ + "00F1", + "016D", + "000E", + "000B" + ], + "Actors": [ + "008E 07A7 03EA 041B 0000 8000 0000 8000", + "0008 0745 0419 041F 0000 0000 0000 03F4", + "0008 0745 03CE 0337 0000 0000 0000 03F4", + "0008 0745 037A 024E 0000 0000 0000 03F4", + "0008 0808 041A 041F 0000 0000 0000 03F4", + "0008 0808 03CB 0337 0000 0000 0000 03F4", + "0008 0809 0379 024F 0000 0000 0000 03F4" + ] + }, + { + "File": { + "Name": "Scene 6, Room 20", + "Start": "02B96000", + "End": "02B9E1C0", + "RemapStart": null + }, + "Id": 20, + "Objects": [ + "00F1", + "016D", + "016C", + "0106" + ], + "Actors": [ + "0008 0605 0416 04BB 0000 0000 0000 03F4", + "0008 060F 0416 06CC 0000 0000 0000 03F4", + "0008 07B3 0416 06CD 0000 0000 0000 03F4", + "0008 0877 0417 064E 0000 0000 0000 03F4", + "0008 0878 0416 0537 0000 0000 0000 03F4", + "0113 05EB 03EB 05C1 0000 4000 0000 1A01", + "0169 05C3 03EB 05C2 0000 0000 0000 0001", + "0169 0640 03EB 054A 0000 C000 0000 0000", + "0169 0640 03EB 063A 0000 C000 0000 0000", + "0169 0730 03EB 054A 0000 C000 0000 0000", + "0169 0730 03EB 063A 0000 C000 0000 0000", + "0169 0820 03EB 054A 0000 C000 0000 0000", + "0169 0820 03EB 063A 0000 C000 0000 0000" + ] + }, + { + "File": { + "Name": "Scene 6, Room 21", + "Start": "02B9F000", + "End": "02BA3650", + "RemapStart": null + }, + "Id": 21, + "Objects": [ + "00F1", + "016D", + "000E", + "0098" + ], + "Actors": [ + "0090 0761 0369 FD84 0000 0000 0000 7FFE", + "0008 06F2 038F FD59 0000 0000 0000 03F4", + "0008 07D1 038F FD59 0000 0000 0000 03F4", + "000A 0763 0369 FD57 0000 8000 0000 27E5" + ] + }, + { + "File": { + "Name": "Scene 6, Room 22", + "Start": "02BA4000", + "End": "02BA70D0", + "RemapStart": null + }, + "Id": 22, + "Objects": [ + "00F1", + "016D", + "015C", + "0024", + "0106", + "016C" + ], + "Actors": [ + "0113 02A9 0661 FADB 0000 0000 0000 FF02", + "0169 02AA 0661 F9C7 0000 C000 0000 0001", + "0169 02DC 0661 F995 0000 0000 0000 0001", + "0169 0278 0661 F995 0000 8000 0000 0001", + "0169 01B3 0661 FAF0 0000 4000 0000 0001", + "0169 01E5 0661 FB22 0000 0000 0000 0001", + "0169 01B3 0661 FB54 0000 C000 0000 0001", + "0169 039D 0661 FAF0 0000 4000 0000 0001", + "0169 039D 0661 FB54 0000 C000 0000 0001", + "0169 036B 0661 FB22 0000 8000 0000 0001", + "0095 019A 06C9 FB22 4000 4000 0000 8704", + "0095 02A9 06AC F97C 4000 0000 0000 8710" + ] + }, + { + "File": { + "Name": "Scene 6, Room 23", + "Start": "02BA8000", + "End": "02BB1190", + "RemapStart": null + }, + "Id": 23, + "Objects": [ + "00F1", + "016D", + "00B7", + "00A4", + "000D", + "0025" + ], + "Actors": [ + "0095 02A9 04B0 FFA9 4000 0000 0000 0000", + "0038 0298 0607 FF1E 0000 182E 0000 FFFF", + "0013 0242 0686 00B9 0000 4889 0000 0000", + "0013 031C 0548 00DB 0000 A666 0000 0000", + "0013 0223 04B1 0006 0000 2CCD 0000 0000", + "0013 0316 0673 FF3E 0000 E000 0000 0000", + "00FA 02A8 04DB FFA9 0000 0000 0000 0000", + "00FA 02A8 053F FFA9 0000 0000 0000 0000", + "00FA 02A8 0413 FFA9 0000 0000 0000 0000", + "00FA 02A8 03AF FFA9 0000 0000 0000 0000", + "0117 02D3 03D1 FFB5 0000 0000 0000 1FC0", + "0117 0246 0435 FFB5 0000 0000 0000 1FC0", + "0117 02F2 050C FFB5 0000 0000 0000 1FC0", + "0117 0284 0570 FFB5 0000 0000 0000 1FC0", + "0117 02A9 049D FFB5 0000 0000 0000 1FC0", + "0111 033D 034B 00FA 0000 0000 0000 0203", + "0111 0213 034B 00F9 0000 0000 0000 0403", + "005E 0243 0387 0021 0000 0000 0000 03C0", + "005E 0243 0643 FEDF 0000 0000 0000 03C0", + "005E 030C 0387 0021 0000 0000 0000 03C0", + "005E 030C 0643 FEE2 0000 0000 0000 03C0", + "0117 02BF 034B 00A0 0000 0000 0000 0140" + ] + }, + { + "File": { + "Name": "Scene 6, Room 24", + "Start": "02BB2000", + "End": "02BB84B0", + "RemapStart": null + }, + "Id": 24, + "Objects": [ + "00F1", + "016D" + ], + "Actors": [ + "0008 024E 068F FC95 0000 0000 0000 03F4", + "0008 0302 068F FC92 0000 0000 0000 03F4", + "012E 02A7 0661 FCD0 0000 0000 0000 1CB5", + "0111 030D 06C5 FCB7 0000 0000 0000 7403", + "0111 024B 06C5 FCB4 0000 0000 0000 7204", + "0185 02A7 0661 FCD0 0000 0000 000B 8AF5" + ] + }, + { + "File": { + "Name": "Scene 6, Room 25", + "Start": "02BB9000", + "End": "02BCEB70", + "RemapStart": null + }, + "Id": 25, + "Objects": [ + "00F1", + "016D", + "00AB", + "00B0", + "00A4", + "012A", + "000E", + "0154", + "0190", + "00A8", + "016C", + "000B", + "0170" + ], + "Actors": [ + "0158 003C 070A FBB2 0000 0000 0000 0000", + "01A0 010E 064D FB5E 0000 0000 0000 FFFF", + "01A0 FF6A 064D FB5E 0000 0000 0000 FFFF", + "01A0 010E 064D FB8E 0000 0000 0000 FFFF", + "01A0 FF6A 064D FB8E 0000 0000 0000 FFFF", + "012A FF6D 064D FB5E 0000 0000 0000 1301", + "0150 003C 0675 FC84 0000 8000 0000 1700", + "0157 003C 064D FBBE 0000 0000 0000 0017", + "0112 FF59 06C5 FCC2 0000 0000 0000 3FE9", + "0111 00F4 06C5 FC83 0000 0000 0000 7803", + "0111 FF86 06C5 FD1B 0000 0000 0000 7A03", + "0111 00FA 06C5 FD1B 0000 0000 0000 7C03", + "0111 FF85 06C5 FC84 0000 0000 0000 760F" + ] + }, + { + "File": { + "Name": "Scene 6, Room 26", + "Start": "02BCF000", + "End": "02BDBB20", + "RemapStart": null + }, + "Id": 26, + "Objects": [ + "00F1", + "016D", + "00AB", + "001B", + "005D", + "000E", + "012A", + "0025" + ], + "Actors": [ + "0038 FDDF 06CF FCC2 0000 8000 0000 FFFF", + "0025 FFE8 0797 FED0 0000 C000 0000 FFFE", + "0158 003C 070A FBB2 0000 0000 0000 0000", + "00B7 FDD2 06CF FECE 0000 0000 0000 0004", + "0049 003C 06CF FECB 0000 0000 0000 2FED", + "0150 FDD1 0765 FD74 0000 8000 0000 2D00", + "0069 FDD5 06F0 FD5D 0000 0000 0000 30FB", + "0069 0235 0723 FE0E 0000 0000 0000 40FB", + "000A 0030 06CF FDD1 0000 4000 0000 6852" + ] + }, + { + "File": { + "Name": "Scene 6, Room 27", + "Start": "02BDC000", + "End": "02BE16C0", + "RemapStart": null + }, + "Id": 27, + "Objects": [ + "00F1", + "016D", + "0069", + "0032" + ], + "Actors": [ + "0049 FBA4 FFEC FA73 0000 0000 0000 0FFF", + "0049 FB15 FFEC FA22 0000 0000 0000 0FFF", + "0049 FB1F FFEC F88F 0000 0000 0000 0FFF", + "0049 FCA3 FFEC F895 0000 0000 0000 0FFF", + "0049 FC24 FFEC F84D 0000 0000 0000 0FFF", + "0049 FB8F FFEC F852 0000 0000 0000 0FFF", + "0049 FC38 FFEC FA6F 0000 0000 0000 0FFF", + "0002 FBE3 0096 F8F9 0000 0000 0000 0003", + "00AF FBE1 001E F970 0000 0000 0000 0002", + "0111 FB72 001E F875 0000 0000 0000 5C03", + "0111 FC41 001E F876 0000 0000 0000 5E03", + "0111 FCAB 001E F8D3 0000 0000 0000 6010", + "0111 FB1E 001E F8C4 0000 0000 0000 5A12" + ] + }, + { + "File": { + "Name": "Scene 6, Room 28", + "Start": "02BE2000", + "End": "02BEAA20", + "RemapStart": null + }, + "Id": 28, + "Objects": [ + "00F1", + "016D", + "00AB", + "00B0", + "00A4", + "012A", + "000E", + "0154", + "0190", + "00A8", + "016C", + "000B", + "0170" + ], + "Actors": [] + } + ], + "ColDelta": { + "IsLarger": false, + "Polys": [ + { + "Id": 3109, + "Type": 8, + "Flags": 0 + }, + { + "Id": 3110, + "Type": 8, + "Flags": 0 + }, + { + "Id": 3111, + "Type": 60, + "Flags": 0 + }, + { + "Id": 3112, + "Type": 60, + "Flags": 0 + }, + { + "Id": 3551, + "Type": 61, + "Flags": 0 + }, + { + "Id": 3552, + "Type": 61, + "Flags": 0 + }, + { + "Id": 3553, + "Type": 62, + "Flags": 0 + }, + { + "Id": 3554, + "Type": 62, + "Flags": 0 + }, + { + "Id": 3555, + "Type": 62, + "Flags": 0 + }, + { + "Id": 3556, + "Type": 62, + "Flags": 0 + }, + { + "Id": 3557, + "Type": 63, + "Flags": 0 + }, + { + "Id": 3558, + "Type": 63, + "Flags": 0 + }, + { + "Id": 3559, + "Type": 62, + "Flags": 0 + }, + { + "Id": 3560, + "Type": 62, + "Flags": 0 + }, + { + "Id": 3561, + "Type": 62, + "Flags": 0 + }, + { + "Id": 3562, + "Type": 62, + "Flags": 0 + }, + { + "Id": 3563, + "Type": 64, + "Flags": 0 + }, + { + "Id": 3564, + "Type": 64, + "Flags": 0 + }, + { + "Id": 3729, + "Type": 65, + "Flags": 0 + }, + { + "Id": 3730, + "Type": 65, + "Flags": 0 + }, + { + "Id": 3731, + "Type": 65, + "Flags": 0 + }, + { + "Id": 3732, + "Type": 65, + "Flags": 0 + }, + { + "Id": 3733, + "Type": 65, + "Flags": 0 + }, + { + "Id": 3734, + "Type": 65, + "Flags": 0 + }, + { + "Id": 3735, + "Type": 65, + "Flags": 0 + }, + { + "Id": 3736, + "Type": 65, + "Flags": 0 + }, + { + "Id": 3737, + "Type": 65, + "Flags": 0 + }, + { + "Id": 3738, + "Type": 65, + "Flags": 0 + }, + { + "Id": 3739, + "Type": 65, + "Flags": 0 + }, + { + "Id": 3740, + "Type": 65, + "Flags": 0 + }, + { + "Id": 3741, + "Type": 65, + "Flags": 0 + }, + { + "Id": 3742, + "Type": 65, + "Flags": 0 + }, + { + "Id": 4133, + "Type": 66, + "Flags": 0 + }, + { + "Id": 4134, + "Type": 66, + "Flags": 0 + }, + { + "Id": 4212, + "Type": 8, + "Flags": 0 + }, + { + "Id": 4213, + "Type": 8, + "Flags": 0 + }, + { + "Id": 4348, + "Type": 67, + "Flags": 0 + }, + { + "Id": 4349, + "Type": 67, + "Flags": 0 + } + ], + "PolyTypes": [ + { + "Id": 3, + "High": 49164, + "Low": 30733 + }, + { + "Id": 8, + "High": 805306379, + "Low": 12290 + }, + { + "Id": 60, + "High": 15, + "Low": 12301 + }, + { + "Id": 61, + "High": 11, + "Low": 20493 + }, + { + "Id": 62, + "High": 16395, + "Low": 134232002 + }, + { + "Id": 63, + "High": 16395, + "Low": 134238210 + }, + { + "Id": 64, + "High": 16395, + "Low": 134230018 + }, + { + "Id": 65, + "High": 49163, + "Low": 12290 + }, + { + "Id": 66, + "High": 11, + "Low": 12289 + }, + { + "Id": 67, + "High": 523, + "Low": 12322 + } + ], + "Cams": [ + { + "Data": 1966086, + "PositionIndex": 0 + }, + { + "Data": 1441795, + "PositionIndex": 1 + }, + { + "Data": 1441795, + "PositionIndex": 2 + }, + { + "Data": 1966086, + "PositionIndex": 3 + }, + { + "Data": 1441795, + "PositionIndex": 4 + }, + { + "Data": 1441795, + "PositionIndex": 5 + }, + { + "Data": 1638403, + "PositionIndex": 6 + }, + { + "Data": 1638403, + "PositionIndex": 7 + }, + { + "Data": 1638403, + "PositionIndex": 8 + }, + { + "Data": 1638403, + "PositionIndex": 9 + }, + { + "Data": 1638403, + "PositionIndex": 10 + }, + { + "Data": 0, + "PositionIndex": -1 + }, + { + "Data": 196608, + "PositionIndex": -1 + }, + { + "Data": 262144, + "PositionIndex": -1 + }, + { + "Data": 65536, + "PositionIndex": -1 + }, + { + "Data": 3801088, + "PositionIndex": -1 + }, + { + "Data": 131072, + "PositionIndex": -1 + } + ] + } + }, + { + "File": { + "Name": "Scene 7", + "Start": "027A7000", + "End": "027BF3C0", + "RemapStart": null + }, + "Id": 7, + "TActors": [ + "00FF 04FF 002E F7FA FFC1 FE6B C000 007F", + "00FF 01FF 002E FCE6 FFC1 FD53 8000 007F", + "00FF 02FF 0009 FFA2 FFC1 FF47 4000 0099", + "03FF 15FF 0009 F54A FAAD FF14 8000 003F", + "08FF 05FF 0009 0EFF FDE1 0037 C000 0096", + "05FF 06FF 002E 0D1E FDE1 FE56 8000 007F", + "05FF 07FF 002E 0D1E FDE1 0218 0000 007F", + "10FF 09FF 0009 1246 FB89 09FB 0000 003F", + "0BFF 09FF 0009 09AE FAC1 05C2 0000 0097", + "12FF 0BFF 0009 09AE FB4D 031A 0000 0098", + "0EFF 0BFF 002E 07BA FAC1 043C 4000 01C8", + "0FFF 0CFF 0009 EC59 FAAD F9CE C000 003F", + "0FFF 0DFF 002E EF2E FAAD F6F9 8000 02DB", + "0FFF 11FF 002E EF2E FAAD FCA2 0000 003F", + "0FFF 15FF 002E F202 FAAD F9CE 4000 009A", + "14FF 12FF 0009 1124 FAAD FD7A 0000 003F", + "12FF 13FF 0009 1278 FAAD FF82 4000 003F", + "15FF 14FF 0009 1124 FAAD FA82 0000 0095", + "0AFF 09FF 0023 05BF FAC1 0E1F 8000 013F", + "05FF 02FF 0023 08E4 FED1 0037 C000 013F", + "08FF 09FF 0023 0FB2 FC29 0554 C000 013F", + "16FF 03FF 002E F54A FAAD 034C 8000 0154", + "06FF 15FF 0023 0F8F FCF1 FB36 C000 00BF" + ], + "Paths": [], + "Rooms": [ + { + "File": { + "Name": "Scene 7, Room 0", + "Start": "027C0000", + "End": "027CB0C0", + "RemapStart": null + }, + "Id": 0, + "Objects": [ + "0069", + "0187", + "000E", + "00A4", + "0190", + "00A8", + "0179" + ], + "Actors": [ + "01B4 F8D3 0008 FE6B 4000 4000 0000 0701", + "01B4 F8D3 FFA4 FE6B 4000 4000 0000 0701", + "01D1 FB97 FF71 FF47 0000 4000 0000 B80D", + "01D1 FB97 FFD5 FF47 0000 4000 0000 B80E", + "0111 FBEB FFC1 FF7E 0000 4000 0000 7003", + "0111 FBEB FFC1 FF10 0000 4000 0000 7203", + "011D F9B9 FFC1 003C 0000 8000 0000 03FB", + "011D FD1D FFC1 003C 0000 8000 0000 03FC", + "011D FA26 FFC1 003C 0000 8000 0000 03FD", + "011D FCB0 FFC1 003C 0000 8000 0000 03FE", + "0185 FBCE FFDA FF47 0000 4000 0001 4226", + "0185 FB07 FFDA FF47 0000 4000 0001 42A8", + "0185 FDC7 FFDA 005E 0000 8000 0001 42A9", + "0185 FC10 FFDA 005F 0000 8000 0001 426A", + "0185 FCE6 FFDA FE2F 0000 0000 0001 422B", + "0185 FDFE FFDA FF47 0000 4000 0001 42AC", + "012A F9ED 0005 005F 0000 8000 0000 0712", + "011C F911 0005 005F 0000 8000 0000 0000", + "011C FAC9 0005 005F 0000 8000 0000 0000", + "00AE F8D6 FFC1 FE6B 0000 C000 0000 0003", + "00AE FB06 FFC1 FF47 0000 C000 0000 0003", + "00AE FBCE FFC1 FF47 0000 C000 0000 0003", + "00AE FCE6 FFC1 FE2F 0000 0000 0000 0003", + "00AE FDFE FFC1 FF47 0000 C000 0000 0003" + ] + }, + { + "File": { + "Name": "Scene 7, Room 1", + "Start": "027CC000", + "End": "027CDAC0", + "RemapStart": null + }, + "Id": 1, + "Objects": [ + "0069", + "0187", + "000E", + "00A4", + "0190", + "00A8", + "0098" + ], + "Actors": [ + "0090 FCA7 FFC1 FCA2 0000 60B6 0000 7F02", + "0090 FCC4 FFC1 FC55 0000 25B0 0000 7F02", + "0090 FD04 FFC1 FCAB 0000 9A50 0000 7F02", + "0090 FD19 FFC1 FC3E 0000 D8E4 0000 7F02", + "0111 FD6F FFC1 FC4B 0000 0000 0000 4E03", + "0111 FD37 FFC1 FC08 0000 0000 0000 5803", + "000A FCE6 FFC1 FC18 0000 8000 0000 1801" + ] + }, + { + "File": { + "Name": "Scene 7, Room 2", + "Start": "027CE000", + "End": "027D8910", + "RemapStart": null + }, + "Id": 2, + "Objects": [ + "0069", + "0187", + "000E", + "00A4", + "011C", + "0179" + ], + "Actors": [ + "01B4 0420 FFC1 0037 0000 4000 0000 0501", + "005E 0565 004B FFBF 0AAB C000 0000 1085", + "005E 0565 004B 00AF 0AAB C000 0000 1085", + "0185 02E2 FFDA 0036 0000 0000 0001 493C", + "0185 0130 FFFE 0126 0000 C000 0015 4F3D", + "00AE 0146 FFC1 FF47 0000 4000 0000 0004", + "00AE 0146 FFC1 0127 0000 4000 0000 0004", + "00AE 0D1E FDE1 0037 0000 C000 0000 0006", + "00F7 029A FFC1 0037 0000 0000 0000 0B00", + "00BE 013C 0011 FF47 0000 4000 0000 0201", + "00F7 029A FFC1 0037 0000 0000 0000 0B01", + "00F7 01C8 0011 0037 0000 0000 0000 0B03", + "00F7 0231 0011 FF81 0000 D555 0000 0B03", + "00F7 0303 0011 FF81 0000 AAAB 0000 0B03", + "00F7 0231 0011 00ED 0000 2AAB 0000 0B03", + "00F7 0303 0011 00ED 0000 5555 0000 0B03", + "00F7 058D FFC1 0037 0000 0000 0000 0B02", + "0110 016E 0150 0072 0000 0000 0000 3009", + "0110 016B FFC1 FFF9 0000 0000 0000 310E", + "0110 016B FFC1 FFC2 0000 0000 0000 3904", + "0110 016D 0150 0034 0000 0000 0000 3A03" + ] + }, + { + "File": { + "Name": "Scene 7, Room 3", + "Start": "027D9000", + "End": "027DB940", + "RemapStart": null + }, + "Id": 3, + "Objects": [ + "0069", + "0187", + "000E", + "00A4", + "00B0", + "005D", + "0024", + "015C" + ], + "Actors": [ + "0095 F3E9 FA87 020F 4000 0000 0000 8804", + "00AE F54A FAAD 0135 0000 0000 0000 0005" + ] + }, + { + "File": { + "Name": "Scene 7, Room 4", + "Start": "027DC000", + "End": "027DDC40", + "RemapStart": null + }, + "Id": 4, + "Objects": [ + "0069", + "0187", + "000E", + "00A4", + "0190", + "00A8", + "0179", + "00A6" + ], + "Actors": [ + "00A5 F61A FFC1 FEA6 0000 0000 0000 FFFF", + "00A5 F620 FFC1 FE11 0000 0000 0000 FFFF", + "00A5 F678 FFC1 FDCE 0000 0000 0000 FFFF", + "00A5 F688 FFC1 FEED 0000 0000 0000 FFFF", + "00A5 F6DB FFC1 FEB1 0000 0000 0000 FFFF", + "00A5 F6E1 FFC1 FE1C 0000 0000 0000 FFFF", + "00A4 F688 FFC1 FE63 0000 0000 0000 FFFF", + "000A F562 FFC1 FE64 0000 C000 0001 15E7" + ] + }, + { + "File": { + "Name": "Scene 7, Room 5", + "Start": "027DE000", + "End": "027E3A60", + "RemapStart": null + }, + "Id": 5, + "Objects": [ + "0069", + "0187", + "000E", + "00A4", + "008B" + ], + "Actors": [ + "008A 0D1E FDE1 0037 0000 C000 0000 0700", + "00AE 0D1E FDE1 0037 0000 C000 0000 0006", + "00BE 0E14 FE31 0037 0000 C000 0000 1E01", + "0183 0D1E FDE1 0037 0000 0000 0000 FF41" + ] + }, + { + "File": { + "Name": "Scene 7, Room 6", + "Start": "027E4000", + "End": "027EB570", + "RemapStart": null + }, + "Id": 6, + "Objects": [ + "0069", + "0187", + "000E", + "00A4", + "0031", + "011C", + "0032", + "0024", + "015C", + "0154", + "00A8", + "0190", + "00B7" + ], + "Actors": [ + "0037 0B68 FE31 FC3F 0000 4000 0000 0000", + "0037 0DE6 FE31 FAA1 0000 0000 0000 0000", + "0037 0EC2 FE31 FB36 0000 C000 0000 0000", + "0037 0F32 FE31 FCEE 0000 C000 0000 0001", + "0117 0AFA FDE1 FC3F 0000 0000 0000 1FC1", + "0117 0BBF FE59 FB3A 0000 0000 0000 1FC1", + "0117 0CAB FDE1 FBDB 0000 0000 0000 1FC1", + "0117 0D47 FDE1 FCBA 0000 0000 0000 1FC1", + "0117 0DE6 FDE1 FA2E 0000 0000 0000 1FC1", + "0117 0D1F FE14 FC4D 0000 0000 0000 0141", + "0173 0FE1 FE20 FB35 0000 FFA6 0000 2181", + "0187 0D1E FDE1 FE2E 0000 0000 0000 1FFF", + "00AE 0F8A FDE1 FB36 0000 0000 0000 0007", + "00AF 0EB8 FDE1 FCEE 0000 4000 0000 0103", + "00B1 0D1E FDE1 FC4E 0000 0000 0000 0000", + "000A 0F98 FDE1 FCEE 0000 4000 0000 0822" + ] + }, + { + "File": { + "Name": "Scene 7, Room 7", + "Start": "027EC000", + "End": "027EDAB0", + "RemapStart": null + }, + "Id": 7, + "Objects": [ + "0069", + "0187", + "000E", + "00A4", + "0098", + "000D" + ], + "Actors": [ + "0090 0C8C FDE1 02D6 0000 8000 0000 7FFE", + "0090 0DAA FDE1 02D1 0000 8000 0000 7FFE", + "005E 0CEE FDE1 033E 0000 8000 0000 2400", + "005E 0D50 FDE1 033B 0000 8000 0000 2400", + "0187 0D1E FDE1 0260 0000 0000 0000 1FFF", + "000A 0D22 FDE1 0375 0000 0000 0000 7843" + ] + }, + { + "File": { + "Name": "Scene 7, Room 8", + "Start": "027EE000", + "End": "027F3060", + "RemapStart": null + }, + "Id": 8, + "Objects": [ + "0069", + "0187", + "000E", + "00A4", + "008B", + "0024", + "0085", + "011C" + ], + "Actors": [ + "012D 10A2 FD69 01A8 4000 0000 0000 FFC2", + "0037 10A2 FDBC 00FD 0000 4000 0000 0001", + "008A 1322 FD69 00FD 0000 8000 0000 0400", + "008A 10A2 FC29 035E 0000 8000 0000 0700", + "0080 115F FCED 0128 0000 8000 F333 0210", + "0080 11F0 FD1E 00D8 0000 0000 0CCD 0210", + "00BC 10A2 FCBD 0266 0000 0000 0000 0000", + "00BC 10A2 FCBD 045A 0000 0000 0000 0000" + ] + }, + { + "File": { + "Name": "Scene 7, Room 9", + "Start": "027F4000", + "End": "02800B60", + "RemapStart": null + }, + "Id": 9, + "Objects": [ + "0069", + "0187", + "000E", + "00A4", + "008B", + "0085", + "005D", + "012F", + "011C", + "0179", + "0031" + ], + "Actors": [ + "012D 083E FCC4 0D2C 20B6 305B 0000 FFC2", + "01B4 0B18 FAE9 0D07 0000 0000 0000 0F01", + "01B4 0BD3 FB1F 0D07 0000 0000 0000 0F01", + "01B4 0C8E FB55 0D07 0000 0000 0000 0F01", + "01B4 0D48 FB89 0D07 0000 0000 0000 0F01", + "0069 0EB7 FB6E 0C33 0000 8000 0000 FFFE", + "008A 0E5E FB89 0CE9 0000 8000 0000 0700", + "008A 0EFE FB89 0CE9 0000 8000 0000 0700", + "0080 083E FAC1 0D2C 0000 0000 0000 1220", + "0080 083E FAC1 0D2C 0000 0000 0000 1620", + "008A 083E FAC1 0D2C 0000 4000 0000 0501", + "012A 0677 FAC1 0D2C 0000 4000 0000 0903", + "0141 0B4D FAC1 0A91 0000 127D 0000 0027", + "0117 07B2 FAC1 0D2C 0000 0000 0000 1FD1", + "0117 083E FBBC 0D2C 0000 0000 0000 1FD1", + "0117 083E FC36 0D2C 0000 0000 0000 1FD1", + "0117 0853 FAC1 0BD6 0000 0000 0000 1FD1", + "0117 08CA FAC1 0D2C 0000 0000 0000 1FD1", + "0117 0727 FB56 0D32 0000 0000 0000 0151", + "004C 0EAE FB89 0D0E 0000 0000 0000 FFFF", + "012A 11A6 FB4D 0D2E 0000 BF4A 0000 0F82", + "00BC 0B7D FB55 0A55 0000 0000 0000 0000", + "00BC 0EAE FCBD 09F0 0000 0000 0000 0000", + "00BC 0EAE FCBD 0874 0000 0000 0000 0005", + "00BC 0EAE FC1D 0BD0 0000 0000 0000 0005", + "00AF 06AF FAC1 0D2C 0000 C000 0000 0903", + "00AF 0A92 FAC1 07DE 0000 0000 0000 0000", + "00AE 0F56 FB17 0B48 0000 0000 0000 0008", + "000A 083E FCF8 0E87 0000 0000 0011 892F", + "0183 0EAE FB89 0D0E 0000 0000 0000 FF41" + ] + }, + { + "File": { + "Name": "Scene 7, Room 10", + "Start": "02801000", + "End": "028087A0", + "RemapStart": null + }, + "Id": 10, + "Objects": [ + "0069", + "0187", + "000E", + "00A4", + "012F", + "0024", + "015C", + "0085" + ], + "Actors": [ + "00FF 03C1 FAC1 0E65 0000 0000 0000 FF02", + "0095 0302 FB08 0FE2 C000 4000 0000 8802", + "0141 046C FAC1 1007 0000 8000 0000 0026", + "0111 0266 FAC1 0DFB 0000 0000 0000 4803", + "0111 031E FAC1 0DF6 0000 0000 0000 4A04", + "0111 0495 FB61 0E7B 0000 0000 0000 5603", + "0111 0495 FB61 0E15 0000 0000 0000 5A03", + "012A 02E2 FB61 0FE3 0000 0000 0000 0400", + "0080 0277 FAC1 0E88 0000 4000 0000 0210", + "00AE 03C1 FAC1 0EAB 0000 0000 0000 0009", + "00BC 01FF FB89 0F0F 0000 0000 0000 0001", + "00BC 02C7 FB89 0F0F 0000 0000 0000 0001", + "000A 0453 FC00 0E4B 0000 4000 0004 8844", + "000A 01F9 FAC1 0E49 0000 4000 0000 5945", + "000A 00E0 FB61 0FF0 0000 C000 0000 5886" + ] + }, + { + "File": { + "Name": "Scene 7, Room 11", + "Start": "02809000", + "End": "0280CD40", + "RemapStart": null + }, + "Id": 11, + "Objects": [ + "0069", + "0187", + "000E", + "00A4", + "0098", + "0179", + "011C" + ], + "Actors": [ + "012D 09AE FC79 04B0 4000 0000 0000 FFC2", + "012D 09AE FC79 057C 4000 0000 0000 FFC2", + "01B4 097C FBED 0360 0000 0000 0000 0801", + "01B4 097C FBED 03C4 0000 0000 0000 0801", + "01B4 09AE FB61 04B0 0000 0000 0000 0801", + "01B4 09AE FB61 057C 0000 0000 0000 0801", + "01B4 09E0 FBED 0360 0000 0000 0000 0801", + "01B4 09E0 FBED 03C4 0000 0000 0000 0801", + "0090 0849 FAC1 049F 0000 1555 0000 0102", + "0090 0B17 FAC1 04C1 0000 EAAB 0000 0102", + "0117 07FA FB4D 0351 0000 0000 0000 1FC8", + "0117 0857 FB37 0511 0000 0000 0000 1FC8", + "0117 08CE FB4D 03DC 0000 0000 0000 1FC8", + "0117 09AE FC31 037D 0000 0000 0000 1FC8", + "0117 09AE FAC1 04B8 0000 0000 0000 1FC8", + "0117 09AE FBB4 04B0 0000 0000 0000 1FC8", + "0117 09AE FBB4 057C 0000 0000 0000 1FC8", + "0117 0A91 FACF 0441 0000 0000 0000 1FC8", + "0117 0AAA FB4D 036C 0000 0000 0000 1FC8", + "0117 0B7C FB0F 042D 0000 0000 0000 1FC8", + "0117 09AE FAC1 0434 0000 0000 0000 0288", + "00AE 09AE FAC1 046E 0000 0000 0000 000C", + "000A 09AE FAC1 03F4 0000 8000 0000 7889" + ] + }, + { + "File": { + "Name": "Scene 7, Room 12", + "Start": "0280D000", + "End": "02812720", + "RemapStart": null + }, + "Id": 12, + "Objects": [ + "0069", + "0187", + "000E", + "00A4", + "005D", + "00D4", + "00AA", + "00CD", + "000D", + "0024", + "015C", + "0031" + ], + "Actors": [ + "0015 E91E FAAD F9BB 0000 0000 0000 0611", + "0112 EC3B FBE6 F9CD 0000 C000 0001 19F8", + "0008 E87D FC59 FB1A 0000 0000 0000 03F7", + "0008 E87E FC56 F883 0000 0000 0000 03F7", + "0008 EBBE FBD1 F87D 0000 0000 0000 03F7", + "0008 EBC3 FBD1 FB16 0000 0000 0000 03F7", + "004C E818 FBB1 F91D 0000 0000 0000 FFFF", + "004C E818 FBB1 FA8A 0000 0000 0000 FFFF", + "00BB EA00 FAC1 F94F 0000 D555 0000 00FF", + "00BB EA00 FAC1 FA4A 0000 2AAB 0000 00FF", + "00BB EADA FAC1 F9CD 0000 8000 0000 00FF", + "00AF EA49 FAAD F9CD 0000 8000 0000 0002" + ] + }, + { + "File": { + "Name": "Scene 7, Room 13", + "Start": "02813000", + "End": "02813FB0", + "RemapStart": "2812800" + }, + "Id": 13, + "Objects": [ + "0069", + "0187", + "000E", + "00A4", + "000D", + "0024" + ], + "Actors": [ + "0013 EFC0 FACB F583 0000 0000 0000 0003", + "0013 EE98 FAD0 F582 0000 0000 0000 0003", + "0013 EF91 FB2A F6E0 0000 8000 0000 0003", + "0013 EEA5 FADB F6DD 0000 8000 0000 0003", + "0037 F07B FB4D F5F6 0000 0000 0000 0002", + "0037 F03D FB4D F5BB 0000 C000 0000 0002", + "0037 EDE6 FB4D F63D 0000 0000 0000 0002", + "0037 F07D FB4D F67B 0000 0000 0000 0002", + "0111 EF31 FAAD F59F 0000 0000 0000 4C0E", + "00BC EE48 FAAD F631 0000 C000 0000 0003", + "00BC F014 FAAD F631 0000 C000 0000 0002", + "000A F07B FAAD F5BD 0000 8000 0000 27EB", + "000A EDE4 FAAD F5B8 0000 8000 0000 588A" + ] + }, + { + "File": { + "Name": "Scene 7, Room 14", + "Start": "02814000", + "End": "02819940", + "RemapStart": null + }, + "Id": 14, + "Objects": [ + "0069", + "0187", + "000E", + "00A4", + "0032" + ], + "Actors": [ + "0008 04A2 FC66 052D 0000 0000 0000 03F7", + "0008 04A3 FC66 034A 0000 0000 0000 03F7", + "0008 0762 FBF6 034E 0000 0000 0000 03F7", + "0008 0762 FBF6 052A 0000 0000 0000 03F7", + "0002 045A FBC5 0439 0000 4000 0000 0003", + "0002 05D1 FAD5 043B 0000 4000 0000 0003", + "000A 04E4 FBC5 043B 0000 4000 0000 79D0" + ] + }, + { + "File": { + "Name": "Scene 7, Room 15", + "Start": "0281A000", + "End": "02821270", + "RemapStart": null + }, + "Id": 15, + "Objects": [ + "0069", + "0187", + "000E", + "00A4", + "005D", + "00D4", + "00CB", + "00DC", + "00F2" + ], + "Actors": [ + "0069 EE15 FAAD F894 0000 6222 0000 FFFF", + "0069 F04A FAAD FB05 0000 E000 0000 FFFF", + "00DD EE69 FAAD F9CF 0000 4000 0000 FFFF", + "0008 EDAB FB00 F84A 0000 0000 0000 03F7", + "0008 EDAB FB00 FB50 0000 0000 0000 03F7", + "0008 F0B2 FB00 F84A 0000 0000 0000 03F7", + "0008 F0B4 FB00 FB50 0000 0000 0000 03F7", + "00AE EF2E FAAD F9CE 0000 0000 0000 000A" + ] + }, + { + "File": { + "Name": "Scene 7, Room 16", + "Start": "02822000", + "End": "02824880", + "RemapStart": null + }, + "Id": 16, + "Objects": [ + "0069", + "0187", + "000E", + "00A4", + "000D", + "00D4", + "00DC", + "00F2", + "00CB", + "0190", + "00A8", + "00B7" + ], + "Actors": [ + "0013 1377 FC38 0A9A 0000 8000 0000 0003", + "0013 13E1 FC31 0611 0000 0000 0000 0003", + "0013 163E FC5A 09D8 0000 9555 0000 0003", + "00DD 1605 FB89 0856 0000 C000 0000 FFFF", + "0015 162C FBFC 061D 0000 0000 0000 2003", + "0015 163F FBFC 0635 0000 0000 0000 2103", + "01D1 1625 FB89 0631 0000 0000 0002 380A", + "01D1 1624 FB89 0A7D 0000 0000 0000 3812", + "0117 13E1 FB89 0801 0000 0000 0000 1FC3", + "0117 1426 FB89 090B 0000 0000 0000 1FC3", + "0117 1461 FB89 073C 0000 0000 0000 1FC3", + "0117 1496 FB89 0995 0000 0000 0000 1FC3", + "0117 151C FB89 07B9 0000 0000 0000 1FC3", + "0117 155A FB89 08C3 0000 0000 0000 1FC3", + "0117 1571 FB89 09AC 0000 0000 0000 1FC3", + "0117 15E1 FB89 076A 0000 0000 0000 1FC3", + "0117 1605 FB89 0856 0000 0000 0000 1FC3", + "0117 1623 FBED 0A7E 0000 0000 0000 1FC3", + "0117 1376 FB89 085A 0000 0000 0000 0283", + "00AF 1664 FB89 0856 0000 4000 0000 0303", + "00B1 14C6 FB89 0857 0000 C000 0000 0001", + "000A 1736 FB89 088C 0000 4000 0000 6856", + "000A 1735 FB89 081F 0000 4000 0000 588C" + ] + }, + { + "File": { + "Name": "Scene 7, Room 17", + "Start": "02825000", + "End": "02827CD0", + "RemapStart": null + }, + "Id": 17, + "Objects": [ + "0069", + "0187", + "000E", + "00A4", + "000B", + "00A6", + "0031", + "012F" + ], + "Actors": [ + "00A4 EF30 FAAD FE36 0000 8000 0000 FFFF", + "0111 EE21 FAAD FCD5 0000 0000 0000 660B", + "0111 F03C FAAD FCD5 0000 0000 0000 680A", + "004C EE50 FAAD FE96 0000 216C 0000 FFFF", + "004C EE64 FAAD FD4A 0000 27D2 0000 FFFF", + "004C EE86 FAAD FE63 0000 D1C7 0000 FFFF", + "004C EE98 FAAD FD9E 0000 DD28 0000 FFFF", + "004C EED2 FAAD FE52 0000 6C17 0000 FFFF", + "004C EEFA FAAD FD44 0000 F99A 0000 FFFF", + "004C EF5D FAAD FD78 0000 149F 0000 FFFF", + "004C EF99 FAAD FEB9 0000 1555 0000 FFFF", + "004C EFB5 FAAD FE02 0000 1777 0000 FFFF", + "004C EFD1 FAAD FE86 0000 A16C 0000 FFFF", + "004C EFD5 FAAD FCF2 0000 22D8 0000 FFFF", + "004C EFEE FAAD FD3B 0000 B8E4 0000 FFFF", + "004C EFF7 FAAD FE35 0000 E444 0000 FFFF", + "000A EF2F FAAD FE95 0000 0000 0000 794D" + ] + }, + { + "File": { + "Name": "Scene 7, Room 18", + "Start": "02828000", + "End": "02835280", + "RemapStart": null + }, + "Id": 18, + "Objects": [ + "0069", + "0187", + "000E", + "00A4", + "000D", + "0024", + "0085" + ], + "Actors": [ + "0037 0BA9 FC0D 002C 0000 0000 0000 0001", + "0080 0A37 FB4D 0137 0000 0000 0000 0110", + "0080 0B20 FB4D 018C 0000 8000 0000 0210", + "00AE 1124 FAAD FE6A 0000 0000 0000 000B", + "00BC 0BAC FB82 FF5B 0000 0000 0000 0004", + "00BC 0BD2 FB82 0162 0000 C000 0000 0004", + "00BC 0E02 FB82 FF82 0000 C000 0000 0004", + "00BC 0F94 FAE2 0070 0000 8000 0000 0004", + "00BC 105C FAE2 FE93 0000 0000 0000 0004", + "00BC 1124 FAE2 0070 0000 8000 0000 0004" + ] + }, + { + "File": { + "Name": "Scene 7, Room 19", + "Start": "02836000", + "End": "02838D20", + "RemapStart": null + }, + "Id": 19, + "Objects": [ + "0069", + "0187", + "000E", + "00A4", + "0098", + "0024", + "015C" + ], + "Actors": [ + "0090 1376 FAAD FF9E 0000 44FA 0000 7F01", + "0090 138C FAAD FF2B 0000 1A50 0000 7F01", + "0090 13A2 FAAD FFCB 0000 5B06 0000 7F01", + "0090 13C5 FAAD FF5C 0000 305B 0000 7F01", + "0095 13F4 FB5D FF82 4000 C000 0000 8801", + "0183 1343 FAAD FF81 0000 0000 0000 FF40", + "0173 13ED FB37 FF82 0000 FFA6 0000 2228", + "000A 13D0 FAAD FFED 0000 4000 0000 6855" + ] + }, + { + "File": { + "Name": "Scene 7, Room 20", + "Start": "02839000", + "End": "0283AE20", + "RemapStart": null + }, + "Id": 20, + "Objects": [ + "0069", + "0187", + "000E", + "00A4", + "008D", + "0098", + "0024", + "015C" + ], + "Actors": [ + "0090 109D FAAD FBD2 0000 1555 0000 7FFE", + "0090 11AF FAAD FBC7 0000 EAAB 0000 7FFE", + "0095 1063 FAAD FAED 0000 1C72 0000 8808", + "0111 107E FAAD FC6C 0000 0000 0000 5C01", + "0111 11C5 FAAD FC66 0000 0000 0000 640C", + "011D 1086 FAAD FB64 0000 0000 0000 00F6", + "011D 11C3 FAAD FB61 0000 0000 0000 03F7", + "00BE 106F FAC7 FAE1 0000 0000 0000 1302", + "00BE 11D9 FAC7 FD19 0000 8000 0000 1C02", + "000A 11E7 FAAD FD0D 0000 4000 0000 6934", + "000A 1129 FAAD FBCC 0000 8000 0000 7888" + ] + }, + { + "File": { + "Name": "Scene 7, Room 21", + "Start": "0283B000", + "End": "028464B0", + "RemapStart": null + }, + "Id": 21, + "Objects": [ + "0069", + "0187", + "000E", + "00A4", + "0031", + "011C", + "0032", + "0024", + "015C", + "0154", + "00A8", + "0190", + "00B7" + ], + "Actors": [ + "012D F22A FC15 FC83 0000 4000 0000 0CC1", + "012D F34A FAAD FC8A 0000 0000 0000 0CC1", + "012E 123E FB78 F82B 0000 C000 0001 1CB8", + "0095 0F26 FC4A FA29 0000 4000 0000 0000", + "0037 0F47 FB9D FA32 0000 4000 0000 0002", + "01C9 0F84 FBED F9A0 0000 4000 0003 0539", + "00FF 0F62 FAAD FA32 0000 0000 0000 1D02", + "00FF 117E FA9E F9CE 0000 0000 0000 1DC6", + "0139 117E FA9E F9CE 0000 0000 0000 001D", + "0015 0F83 FBED F94C 0000 0000 0000 2203", + "0015 0F82 FBED F9E8 0000 0000 0000 2303", + "0015 F26F FC15 FC61 0000 0000 0000 3903", + "0015 F271 FC15 FC8C 0000 0000 0000 3A03", + "0015 F3A4 FB4F FD7A 0000 0000 0000 3C03", + "0095 F7FF FA35 FA75 4000 0000 0000 8810", + "01D1 F39E FAAD FD12 0000 0000 0002 B8FF", + "0002 04B9 FC32 F842 0000 0000 0000 0003", + "0002 0ABA FC21 F825 0000 0000 0000 0003", + "0173 F55C FAF3 FDAC 0006 0011 001E 2084", + "0111 F6A0 FAAD FA42 0000 0000 0000 7009", + "0111 F74A FAAD FA42 0000 0000 0000 7609", + "0111 F4D5 FAAD FE0F 0000 0000 0000 7A0A", + "0111 F5C0 FAAD FE14 0000 0000 0000 7C0E", + "012A F230 FC15 FC53 0000 0000 0000 1A00", + "004C F6EF FAAD FCFE 0000 8000 0000 FFFF", + "004C F70D FAAD FC93 0000 8000 0000 FFFF", + "004C F722 FAAD FD19 0000 8000 0000 FFFF", + "004C F736 FAAD FCBD 0000 8000 0000 FFFF", + "004C F74B FAAD FCF3 0000 8000 0000 FFFF", + "012A F39B FAD0 FD44 0000 8000 0000 0C02", + "00BE F72F FAD5 FD45 0000 0000 0000 1000", + "00B0 1282 FA8D F82A 0000 0000 0000 3800", + "000A 0F5A FB4D FAAA 0000 C000 0000 684E" + ] + }, + { + "File": { + "Name": "Scene 7, Room 22", + "Start": "02847000", + "End": "028499A0", + "RemapStart": null + }, + "Id": 22, + "Objects": [ + "0069", + "0187", + "000E", + "00A4", + "00B0" + ], + "Actors": [] + } + ], + "ColDelta": { + "IsLarger": false, + "Polys": [], + "PolyTypes": [], + "Cams": [ + { + "Data": 0, + "PositionIndex": -1 + }, + { + "Data": 262144, + "PositionIndex": -1 + }, + { + "Data": 65536, + "PositionIndex": -1 + }, + { + "Data": 4063232, + "PositionIndex": -1 + }, + { + "Data": 3801088, + "PositionIndex": -1 + }, + { + "Data": 131072, + "PositionIndex": -1 + }, + { + "Data": 196608, + "PositionIndex": -1 + } + ] + } + }, + { + "File": { + "Name": "Scene 8", + "Start": "032C6000", + "End": "032D2560", + "RemapStart": null + }, + "Id": 8, + "TActors": [ + "01FF 00FF 002E FC86 0000 FF9C 0000 009F", + "03FF 00FF 002E 0366 0000 FCA4 0000 02D5", + "03FF 00FF 002E 0474 0000 FA74 8000 00BB", + "05FF 00FF 002E 01C2 0000 FC7C 0000 008A", + "06FF 00FF 002E FE66 0000 FC7C 0000 008C", + "00FF 02FF 002E F9DE 0000 FD1C C000 02D4", + "00FF 04FF 002E 0384 FFEC 00D2 4000 0056", + "00FF 01FF 0023 FECA FEE8 FDE4 0000 00BF", + "00FF 01FF 0023 FC7C FEE8 FA24 0000 00BF", + "00FF 01FF 0023 0000 FF10 FD1C 0000 00BF", + "05FF 01FF 0023 0172 FEE8 FB82 0000 00BF", + "00FF 01FF 0023 0280 FEE8 FA10 0000 00BF", + "03FF 01FF 0023 044C FEE8 FB28 C000 00BF", + "03FF 01FF 0023 0384 FEE8 FBB4 C000 00BF", + "03FF 01FF 0023 0410 FEE8 FC7C C000 00BF" + ], + "Paths": [ + { + "Points": [ + [ + 847, + -391, + -1432 + ], + [ + 565, + -654, + -1240 + ], + [ + 123, + -664, + -1109 + ], + [ + -41, + -645, + -634 + ], + [ + -8, + -654, + -282 + ], + [ + 75, + -645, + 29 + ] + ] + }, + { + "Points": [ + [ + 1286, + -391, + -1123 + ], + [ + 1066, + -673, + -1077 + ], + [ + 834, + -654, + -841 + ], + [ + 443, + -645, + -757 + ], + [ + 249, + -654, + -459 + ], + [ + 107, + -664, + -158 + ] + ] + } + ], + "Rooms": [ + { + "File": { + "Name": "Scene 8, Room 0", + "Start": "032D3000", + "End": "032E85F0", + "RemapStart": null + }, + "Id": 0, + "Objects": [ + "008D", + "0187", + "000E", + "00A4", + "0098", + "0024", + "015C", + "0059", + "0163", + "000B", + "00AA", + "011F", + "0090", + "00B7" + ], + "Actors": [ + "0095 0455 0048 FD27 0000 C000 0000 0000", + "0095 0456 0068 FCEC 0000 C000 0000 0000", + "0037 FEC9 00A0 FE67 0000 C000 0000 0001", + "0011 FFFE 0000 FD1A 0000 0000 0000 0001", + "0090 001D 0000 0254 0000 DC72 0000 7F02", + "0112 FD92 0062 F9EF 0000 0000 0004 18BF", + "0112 FD92 0062 F9EF 0000 0000 0004 18BF", + "0112 027F 0060 F9EE 0000 0000 0004 18BF", + "0112 FD92 0062 F9EF 0000 0000 0004 19FF", + "0112 027F 0061 F9EC 0000 0000 0004 19FF", + "0112 FD92 0062 F9EF 0000 0000 0004 1AFF", + "0112 027F 0061 F9ED 0000 0000 0004 1AFF", + "0112 027F 0061 F9EE 0000 0000 0004 1AFF", + "0183 0153 0000 FE4B 0000 0000 0000 FF40", + "012A 0064 0058 F967 2EEF CAAB 0000 0303", + "00D7 0000 0000 FD1C 0000 0000 0000 0003", + "000A 0001 0000 FCE1 0000 0000 0000 0823", + "01BB 020F 0000 FF49 0000 4000 0000 0FC5", + "012A FE84 0056 FF61 0000 C000 0000 0502", + "0127 FDE3 0000 FE6C 0000 0000 0000 0006", + "0127 FDF7 0000 FE9F 0000 0000 0000 0007", + "01BB 0002 FFF6 FD44 C000 0000 0000 0FC8", + "012A 0452 0000 FCD0 0000 0000 0000 0800", + "01BB FC7C FFF6 F9E8 4000 0000 0000 0FC9", + "012A 015B 0074 FEC0 4000 8000 0000 0A03", + "005E 017B 0000 FCB6 0000 0000 0000 03CA", + "0127 FE8E 0032 FF60 0000 0000 0000 000B", + "005E FEC6 0000 FCBE 0000 0000 0000 03CC", + "012A FF34 0000 FDE0 0000 0000 0000 0C00", + "012E 000A FFF6 FA08 0000 8000 0001 1C8D", + "01BB FE0C 0000 FD1C 0000 C000 0000 0FCD", + "01BB 0000 0000 FB00 0000 8000 0000 0FCD", + "01BB 0000 0000 FED4 0000 0000 0000 0FCD", + "01BB 021C 0000 FD1C 0000 4000 0000 0FCD", + "0185 000A 0000 FA22 0000 0000 000B 8ACD", + "011B 0003 0000 FD4C 0032 0000 0004 2091", + "0015 FFAD FF24 FEA2 0000 0000 0000 2103", + "0015 FFAD FF24 FEEE 0000 0000 0000 2203", + "00BE 0427 0018 FCF0 0000 C000 0000 2502", + "00BE FFC0 000A 03D7 0000 4000 0000 2602", + "0111 0153 0000 FE87 0000 0000 0000 4E09", + "00BE 00CA 0018 0155 0000 8000 0000 2702", + "0111 01A0 0000 FE87 0000 0000 0000 500B", + "00BE FBC8 0018 FA3B 0000 0000 0000 2802", + "0111 010D 0000 FE88 0000 0000 0000 5203", + "00BE FF38 0018 FF3B 0000 0000 0000 2902", + "0111 01A5 0000 FF52 0000 0000 0000 5412", + "00BE FA1D 0010 FCB0 0000 0000 0000 2A02", + "00BE 0345 0000 012C 0000 8000 0000 2B02", + "00BE FFC3 FFB3 F99A 0000 0000 0000 2C02", + "00BE FB74 FF4E FD7C 0000 8000 0000 2D02", + "0173 FC38 003B 0057 0002 0000 0000 2E26", + "0173 FFBE 003E 01BB 0004 0000 0001 2F26", + "012A 04E2 0074 FA31 C000 4000 0000 3B03" + ] + }, + { + "File": { + "Name": "Scene 8, Room 1", + "Start": "032E9000", + "End": "032F42D0", + "RemapStart": null + }, + "Id": 1, + "Objects": [ + "008D", + "0187", + "000E", + "00A4", + "0098", + "0024", + "015C", + "0059", + "0163", + "000B", + "00AA", + "011F", + "0090", + "00B7" + ], + "Actors": [ + "003B FECA FD20 FF5F 0000 0000 0000 0008", + "0037 FC82 FDF8 FB73 0000 1333 0000 0002", + "0037 FD15 FDF8 FC38 0000 1A50 0000 0002", + "0037 FD3F FDE9 FD00 0000 13E9 0000 0002", + "0011 FFE6 FD92 FEBC 0000 0000 0000 0000", + "0090 0238 FD30 005A 0000 2C17 0000 7F02", + "0090 025B FD30 0022 0000 305B 0000 7F02", + "0090 0276 FD30 0080 0000 E889 0000 7F02", + "0090 028B FD30 00AD 0000 A5B0 0000 7F02", + "0090 02CC FD30 00A7 0000 9555 0000 7F02", + "0008 FDAC FD6E FEA2 0000 0000 0000 03F7", + "0008 FDAD FD6E FF06 0000 0000 0000 03F7", + "0008 0000 FD30 0009 0000 0000 0000 03F7", + "0008 012B FD30 FFC0 0000 0000 0000 03F7", + "0008 01AB FD30 00BC 0000 0000 0000 03F7", + "0008 02B5 FD30 FFEF 0000 0000 0000 03F7", + "0008 02F6 FD30 0059 0000 0000 0000 03F7", + "0183 027F FD30 FA4E 0000 0000 0000 FF40", + "0130 0352 FE6F FA65 0000 0000 0001 0D00", + "0130 0504 FE5C FB9E 0000 0000 0001 0D01", + "0095 FC76 FD30 FA29 0000 0000 0000 8901", + "000A 02D4 FD30 0021 0000 582E 000E B141", + "012A 0061 FDD0 FCF3 0000 F111 0000 0E00", + "011B 0004 FDD0 FD12 001E 0000 0004 2091", + "011B FECB FD25 FDDF 001E 0000 0004 2091", + "011B 0171 FD30 FB82 001E 0000 0004 2091", + "011B 0281 FD30 FA13 001E 0000 0004 2091", + "0015 043B FD30 FB6A 0000 0000 0000 3C03", + "0015 0414 FD30 FB39 0000 0000 0000 3D03", + "0015 045A FD30 FB39 0000 0000 0000 3E03" + ] + }, + { + "File": { + "Name": "Scene 8, Room 2", + "Start": "032F5000", + "End": "032F8190", + "RemapStart": null + }, + "Id": 2, + "Objects": [ + "008D", + "0187", + "000E", + "015C", + "0098", + "0024", + "00A4", + "0009" + ], + "Actors": [ + "0090 F927 0000 FD1E 0000 4000 0000 7FFE", + "000D F6DB 0032 FD91 0000 0000 0000 0000", + "005E F7DB 0000 FC40 0000 0000 0000 2400", + "0095 F612 0000 FC6A 0000 0000 0000 8904", + "005E F8A3 0000 FC40 0000 0000 0000 100F", + "00BD F84E 0028 FCE0 0000 8000 0000 010F", + "005E F7DB 0000 FDF8 0000 0000 0000 1010", + "00BD F7B8 0028 FD58 0000 0000 0000 0110", + "005E F713 0000 FC40 0000 0000 0000 1011", + "00BD F6BE 0028 FCE0 0000 8000 0000 0111", + "0015 F867 000A FCA1 0000 0000 0000 2003", + "0015 F7A1 000A FD93 0000 0000 0000 2303" + ] + }, + { + "File": { + "Name": "Scene 8, Room 3", + "Start": "032F9000", + "End": "032FAC60", + "RemapStart": null + }, + "Id": 3, + "Objects": [ + "008D", + "0187", + "000E", + "00A4", + "0098", + "0024", + "015C", + "0059", + "0163", + "000B", + "00AA", + "011F", + "0090", + "00B7" + ], + "Actors": [ + "0011 03EC 00B1 FBD6 0000 0000 0000 0000", + "008E 03E6 0000 FC11 0000 6AAB 0000 0000", + "01BB 02E4 FFF6 FB50 4000 4000 0000 0FFF", + "01BB 02E4 FFF6 FBC8 4000 4000 0000 0FFF", + "01BB 0370 FFF6 FC5E 4000 4000 0000 0FFF", + "01BB 03AC FFF6 FB3C 4000 4000 0000 0FFF", + "01BB 03D4 FFF6 FB50 4000 C000 0000 0FFF", + "01BB 03D4 FFF6 FBC8 4000 C000 0000 0FFF", + "01BB 0460 FFF6 FC5E 4000 C000 0000 0FFF", + "01BB 049C FFF6 FB3C 4000 C000 0000 0FFF", + "011B 0473 0000 FAA9 001E 0000 0004 2291", + "011B 0364 0000 FC80 001E 0000 0004 2291" + ] + }, + { + "File": { + "Name": "Scene 8, Room 4", + "Start": "032FB000", + "End": "032FD450", + "RemapStart": null + }, + "Id": 4, + "Objects": [ + "008D", + "0187", + "000E", + "00A6", + "012B" + ], + "Actors": [ + "0125 05B2 FFEC FF7E 0000 0000 0000 FF01", + "0125 05D4 FFEC FFCF 0000 0000 0000 FF01", + "0125 05F9 FFEC 0002 0000 0000 0000 FF01", + "0125 0644 FFEC 0003 0000 0000 0000 FF01", + "00A5 0464 FFEC 003A 0000 C000 0000 FFFF", + "00A5 0464 FFEC 0173 0000 C000 0000 FFFF", + "00A5 059D FFEC 0036 0000 C000 0000 FFFF", + "00A5 059D FFEC 0170 0000 C000 0000 FFFF", + "00A4 04FC FFF0 00D1 0000 C000 0000 FFFF", + "0015 0644 FFEC FFA8 0000 0000 0000 0211", + "000A 0524 FFEC 0079 0000 C000 0000 1802", + "00BE 062C 0000 FFA6 0000 C000 0000 2102" + ] + }, + { + "File": { + "Name": "Scene 8, Room 5", + "Start": "032FE000", + "End": "03300960", + "RemapStart": null + }, + "Id": 5, + "Objects": [ + "008D", + "0187", + "000E", + "00A4", + "0098", + "0024", + "015C", + "0059", + "0163", + "000B", + "00AA", + "011F", + "0090", + "00B7" + ], + "Actors": [ + "0112 00A0 0061 FB05 0000 0000 0004 18BF", + "0112 00A0 0061 FB05 0000 0000 0004 18BF", + "0112 00A0 0061 FB05 0000 0000 0004 19FF", + "0112 00A0 0061 FB05 0000 0000 0004 1AFF", + "00AE 017C 0000 FB32 0000 0000 0000 0002", + "0015 008C 0000 FB3E 0000 0000 0000 0111", + "0111 0120 0000 FB28 0000 0000 0000 4803", + "0111 01B6 0000 FB2E 0000 0000 0000 4A03", + "0111 01BC 0000 FBA6 0000 0000 0000 4C03" + ] + }, + { + "File": { + "Name": "Scene 8, Room 6", + "Start": "03301000", + "End": "03303E80", + "RemapStart": null + }, + "Id": 6, + "Objects": [ + "008D", + "0187", + "00A2", + "000D", + "0024", + "00AA", + "015C" + ], + "Actors": [ + "0013 FE98 0023 FBB1 0000 4000 0000 8003", + "0013 FEB3 001A FB92 0000 0000 0000 8003", + "0013 FED9 001F FBAC 0000 C000 0000 8003", + "0037 FE52 0000 FBB5 0000 0000 0000 0002", + "0037 FEB4 0000 FC1B 0000 0000 0000 0002", + "009D FEB7 0000 FBC3 0000 0000 0000 0000", + "0095 FEB6 0000 FBB9 0000 0000 0000 8902" + ] + } + ], + "ColDelta": { + "IsLarger": false, + "Polys": [ + { + "Id": 6, + "Type": 1, + "Flags": 0 + }, + { + "Id": 10, + "Type": 1, + "Flags": 0 + }, + { + "Id": 16, + "Type": 2, + "Flags": 0 + }, + { + "Id": 17, + "Type": 2, + "Flags": 0 + }, + { + "Id": 18, + "Type": 2, + "Flags": 0 + }, + { + "Id": 19, + "Type": 2, + "Flags": 0 + }, + { + "Id": 20, + "Type": 2, + "Flags": 0 + }, + { + "Id": 21, + "Type": 2, + "Flags": 0 + }, + { + "Id": 22, + "Type": 3, + "Flags": 0 + }, + { + "Id": 23, + "Type": 3, + "Flags": 0 + }, + { + "Id": 24, + "Type": 3, + "Flags": 0 + }, + { + "Id": 25, + "Type": 3, + "Flags": 0 + }, + { + "Id": 26, + "Type": 3, + "Flags": 0 + }, + { + "Id": 27, + "Type": 3, + "Flags": 0 + }, + { + "Id": 28, + "Type": 3, + "Flags": 0 + }, + { + "Id": 29, + "Type": 4, + "Flags": 0 + }, + { + "Id": 30, + "Type": 4, + "Flags": 0 + }, + { + "Id": 31, + "Type": 4, + "Flags": 0 + }, + { + "Id": 32, + "Type": 4, + "Flags": 0 + }, + { + "Id": 33, + "Type": 4, + "Flags": 0 + }, + { + "Id": 34, + "Type": 4, + "Flags": 0 + }, + { + "Id": 35, + "Type": 5, + "Flags": 0 + }, + { + "Id": 36, + "Type": 5, + "Flags": 0 + }, + { + "Id": 37, + "Type": 6, + "Flags": 0 + }, + { + "Id": 38, + "Type": 6, + "Flags": 0 + }, + { + "Id": 39, + "Type": 7, + "Flags": 0 + }, + { + "Id": 40, + "Type": 7, + "Flags": 0 + }, + { + "Id": 41, + "Type": 8, + "Flags": 0 + }, + { + "Id": 42, + "Type": 8, + "Flags": 0 + }, + { + "Id": 43, + "Type": 7, + "Flags": 0 + }, + { + "Id": 44, + "Type": 7, + "Flags": 0 + }, + { + "Id": 45, + "Type": 9, + "Flags": 0 + }, + { + "Id": 46, + "Type": 9, + "Flags": 0 + }, + { + "Id": 47, + "Type": 10, + "Flags": 0 + }, + { + "Id": 48, + "Type": 10, + "Flags": 0 + }, + { + "Id": 49, + "Type": 11, + "Flags": 0 + }, + { + "Id": 50, + "Type": 11, + "Flags": 0 + }, + { + "Id": 51, + "Type": 8, + "Flags": 0 + }, + { + "Id": 52, + "Type": 8, + "Flags": 0 + }, + { + "Id": 53, + "Type": 7, + "Flags": 0 + }, + { + "Id": 54, + "Type": 7, + "Flags": 0 + }, + { + "Id": 55, + "Type": 12, + "Flags": 0 + }, + { + "Id": 56, + "Type": 12, + "Flags": 0 + }, + { + "Id": 57, + "Type": 7, + "Flags": 0 + }, + { + "Id": 58, + "Type": 7, + "Flags": 0 + }, + { + "Id": 59, + "Type": 5, + "Flags": 0 + }, + { + "Id": 60, + "Type": 5, + "Flags": 0 + }, + { + "Id": 61, + "Type": 13, + "Flags": 0 + }, + { + "Id": 62, + "Type": 13, + "Flags": 0 + }, + { + "Id": 63, + "Type": 14, + "Flags": 0 + }, + { + "Id": 64, + "Type": 14, + "Flags": 0 + }, + { + "Id": 65, + "Type": 5, + "Flags": 0 + }, + { + "Id": 66, + "Type": 5, + "Flags": 0 + }, + { + "Id": 67, + "Type": 15, + "Flags": 0 + }, + { + "Id": 68, + "Type": 15, + "Flags": 0 + }, + { + "Id": 69, + "Type": 16, + "Flags": 0 + }, + { + "Id": 70, + "Type": 16, + "Flags": 0 + }, + { + "Id": 71, + "Type": 5, + "Flags": 0 + }, + { + "Id": 72, + "Type": 5, + "Flags": 0 + }, + { + "Id": 73, + "Type": 5, + "Flags": 0 + }, + { + "Id": 74, + "Type": 5, + "Flags": 0 + }, + { + "Id": 75, + "Type": 17, + "Flags": 0 + }, + { + "Id": 76, + "Type": 17, + "Flags": 0 + }, + { + "Id": 77, + "Type": 6, + "Flags": 0 + }, + { + "Id": 78, + "Type": 6, + "Flags": 0 + }, + { + "Id": 79, + "Type": 5, + "Flags": 0 + }, + { + "Id": 80, + "Type": 5, + "Flags": 0 + }, + { + "Id": 81, + "Type": 5, + "Flags": 0 + }, + { + "Id": 82, + "Type": 5, + "Flags": 0 + }, + { + "Id": 83, + "Type": 7, + "Flags": 0 + }, + { + "Id": 84, + "Type": 7, + "Flags": 0 + }, + { + "Id": 85, + "Type": 7, + "Flags": 0 + }, + { + "Id": 86, + "Type": 7, + "Flags": 0 + }, + { + "Id": 87, + "Type": 7, + "Flags": 0 + }, + { + "Id": 88, + "Type": 7, + "Flags": 0 + }, + { + "Id": 89, + "Type": 7, + "Flags": 0 + }, + { + "Id": 90, + "Type": 7, + "Flags": 0 + }, + { + "Id": 91, + "Type": 7, + "Flags": 0 + }, + { + "Id": 92, + "Type": 7, + "Flags": 0 + }, + { + "Id": 93, + "Type": 7, + "Flags": 0 + }, + { + "Id": 94, + "Type": 7, + "Flags": 0 + }, + { + "Id": 95, + "Type": 7, + "Flags": 0 + }, + { + "Id": 96, + "Type": 7, + "Flags": 0 + }, + { + "Id": 97, + "Type": 18, + "Flags": 2 + }, + { + "Id": 98, + "Type": 18, + "Flags": 2 + }, + { + "Id": 99, + "Type": 19, + "Flags": 2 + }, + { + "Id": 100, + "Type": 19, + "Flags": 2 + }, + { + "Id": 101, + "Type": 7, + "Flags": 0 + }, + { + "Id": 102, + "Type": 7, + "Flags": 0 + }, + { + "Id": 103, + "Type": 7, + "Flags": 0 + }, + { + "Id": 104, + "Type": 7, + "Flags": 0 + }, + { + "Id": 105, + "Type": 7, + "Flags": 0 + }, + { + "Id": 106, + "Type": 7, + "Flags": 0 + }, + { + "Id": 107, + "Type": 7, + "Flags": 0 + }, + { + "Id": 108, + "Type": 7, + "Flags": 0 + }, + { + "Id": 109, + "Type": 7, + "Flags": 0 + }, + { + "Id": 110, + "Type": 7, + "Flags": 0 + }, + { + "Id": 111, + "Type": 7, + "Flags": 0 + }, + { + "Id": 112, + "Type": 7, + "Flags": 0 + }, + { + "Id": 113, + "Type": 7, + "Flags": 0 + }, + { + "Id": 114, + "Type": 7, + "Flags": 0 + }, + { + "Id": 115, + "Type": 7, + "Flags": 0 + }, + { + "Id": 116, + "Type": 7, + "Flags": 0 + }, + { + "Id": 117, + "Type": 7, + "Flags": 0 + }, + { + "Id": 118, + "Type": 7, + "Flags": 0 + }, + { + "Id": 119, + "Type": 7, + "Flags": 0 + }, + { + "Id": 120, + "Type": 7, + "Flags": 0 + }, + { + "Id": 121, + "Type": 7, + "Flags": 0 + }, + { + "Id": 122, + "Type": 7, + "Flags": 0 + }, + { + "Id": 123, + "Type": 7, + "Flags": 2 + }, + { + "Id": 124, + "Type": 7, + "Flags": 2 + }, + { + "Id": 125, + "Type": 7, + "Flags": 2 + }, + { + "Id": 126, + "Type": 7, + "Flags": 2 + }, + { + "Id": 127, + "Type": 7, + "Flags": 2 + }, + { + "Id": 128, + "Type": 7, + "Flags": 2 + }, + { + "Id": 129, + "Type": 7, + "Flags": 2 + }, + { + "Id": 130, + "Type": 7, + "Flags": 2 + }, + { + "Id": 131, + "Type": 7, + "Flags": 0 + }, + { + "Id": 132, + "Type": 7, + "Flags": 0 + }, + { + "Id": 133, + "Type": 7, + "Flags": 0 + }, + { + "Id": 134, + "Type": 7, + "Flags": 0 + }, + { + "Id": 135, + "Type": 7, + "Flags": 2 + }, + { + "Id": 136, + "Type": 7, + "Flags": 2 + }, + { + "Id": 137, + "Type": 7, + "Flags": 2 + }, + { + "Id": 138, + "Type": 7, + "Flags": 2 + }, + { + "Id": 139, + "Type": 7, + "Flags": 2 + }, + { + "Id": 140, + "Type": 7, + "Flags": 2 + }, + { + "Id": 141, + "Type": 7, + "Flags": 2 + }, + { + "Id": 142, + "Type": 7, + "Flags": 2 + }, + { + "Id": 143, + "Type": 7, + "Flags": 2 + }, + { + "Id": 144, + "Type": 7, + "Flags": 2 + }, + { + "Id": 145, + "Type": 7, + "Flags": 2 + }, + { + "Id": 146, + "Type": 7, + "Flags": 2 + }, + { + "Id": 147, + "Type": 7, + "Flags": 2 + }, + { + "Id": 148, + "Type": 7, + "Flags": 2 + }, + { + "Id": 149, + "Type": 7, + "Flags": 2 + }, + { + "Id": 150, + "Type": 7, + "Flags": 2 + }, + { + "Id": 151, + "Type": 7, + "Flags": 2 + }, + { + "Id": 152, + "Type": 7, + "Flags": 2 + }, + { + "Id": 153, + "Type": 7, + "Flags": 2 + }, + { + "Id": 154, + "Type": 7, + "Flags": 2 + }, + { + "Id": 155, + "Type": 7, + "Flags": 0 + }, + { + "Id": 156, + "Type": 7, + "Flags": 0 + }, + { + "Id": 157, + "Type": 7, + "Flags": 0 + }, + { + "Id": 158, + "Type": 7, + "Flags": 0 + }, + { + "Id": 159, + "Type": 7, + "Flags": 2 + }, + { + "Id": 160, + "Type": 7, + "Flags": 2 + }, + { + "Id": 161, + "Type": 7, + "Flags": 2 + }, + { + "Id": 162, + "Type": 7, + "Flags": 2 + }, + { + "Id": 163, + "Type": 7, + "Flags": 0 + }, + { + "Id": 164, + "Type": 7, + "Flags": 0 + }, + { + "Id": 165, + "Type": 7, + "Flags": 2 + }, + { + "Id": 166, + "Type": 7, + "Flags": 2 + }, + { + "Id": 167, + "Type": 20, + "Flags": 0 + }, + { + "Id": 168, + "Type": 20, + "Flags": 0 + }, + { + "Id": 169, + "Type": 20, + "Flags": 0 + }, + { + "Id": 170, + "Type": 20, + "Flags": 0 + }, + { + "Id": 171, + "Type": 20, + "Flags": 0 + }, + { + "Id": 172, + "Type": 20, + "Flags": 0 + }, + { + "Id": 173, + "Type": 20, + "Flags": 0 + }, + { + "Id": 174, + "Type": 20, + "Flags": 0 + }, + { + "Id": 175, + "Type": 20, + "Flags": 0 + }, + { + "Id": 176, + "Type": 20, + "Flags": 0 + }, + { + "Id": 177, + "Type": 20, + "Flags": 0 + }, + { + "Id": 178, + "Type": 20, + "Flags": 0 + }, + { + "Id": 179, + "Type": 20, + "Flags": 0 + }, + { + "Id": 180, + "Type": 20, + "Flags": 0 + }, + { + "Id": 181, + "Type": 20, + "Flags": 0 + }, + { + "Id": 182, + "Type": 20, + "Flags": 0 + }, + { + "Id": 183, + "Type": 20, + "Flags": 0 + }, + { + "Id": 184, + "Type": 20, + "Flags": 0 + }, + { + "Id": 185, + "Type": 20, + "Flags": 0 + }, + { + "Id": 186, + "Type": 20, + "Flags": 0 + }, + { + "Id": 187, + "Type": 20, + "Flags": 0 + }, + { + "Id": 188, + "Type": 20, + "Flags": 0 + }, + { + "Id": 189, + "Type": 20, + "Flags": 0 + }, + { + "Id": 190, + "Type": 20, + "Flags": 0 + }, + { + "Id": 191, + "Type": 20, + "Flags": 0 + }, + { + "Id": 192, + "Type": 20, + "Flags": 0 + }, + { + "Id": 193, + "Type": 20, + "Flags": 0 + }, + { + "Id": 194, + "Type": 20, + "Flags": 0 + }, + { + "Id": 195, + "Type": 20, + "Flags": 0 + }, + { + "Id": 196, + "Type": 20, + "Flags": 0 + }, + { + "Id": 197, + "Type": 20, + "Flags": 0 + }, + { + "Id": 198, + "Type": 20, + "Flags": 0 + }, + { + "Id": 199, + "Type": 7, + "Flags": 0 + }, + { + "Id": 200, + "Type": 7, + "Flags": 0 + }, + { + "Id": 201, + "Type": 7, + "Flags": 0 + }, + { + "Id": 202, + "Type": 7, + "Flags": 0 + }, + { + "Id": 203, + "Type": 7, + "Flags": 0 + }, + { + "Id": 204, + "Type": 7, + "Flags": 0 + }, + { + "Id": 205, + "Type": 7, + "Flags": 0 + }, + { + "Id": 206, + "Type": 21, + "Flags": 0 + }, + { + "Id": 207, + "Type": 8, + "Flags": 0 + }, + { + "Id": 208, + "Type": 8, + "Flags": 0 + }, + { + "Id": 209, + "Type": 7, + "Flags": 0 + }, + { + "Id": 210, + "Type": 7, + "Flags": 0 + }, + { + "Id": 211, + "Type": 7, + "Flags": 0 + }, + { + "Id": 212, + "Type": 7, + "Flags": 0 + }, + { + "Id": 213, + "Type": 7, + "Flags": 0 + }, + { + "Id": 214, + "Type": 7, + "Flags": 0 + }, + { + "Id": 215, + "Type": 7, + "Flags": 0 + }, + { + "Id": 216, + "Type": 7, + "Flags": 0 + }, + { + "Id": 217, + "Type": 7, + "Flags": 0 + }, + { + "Id": 218, + "Type": 7, + "Flags": 0 + }, + { + "Id": 219, + "Type": 7, + "Flags": 0 + }, + { + "Id": 220, + "Type": 7, + "Flags": 0 + }, + { + "Id": 221, + "Type": 22, + "Flags": 0 + }, + { + "Id": 222, + "Type": 22, + "Flags": 0 + }, + { + "Id": 223, + "Type": 22, + "Flags": 0 + }, + { + "Id": 224, + "Type": 22, + "Flags": 0 + }, + { + "Id": 225, + "Type": 7, + "Flags": 0 + }, + { + "Id": 226, + "Type": 7, + "Flags": 0 + }, + { + "Id": 227, + "Type": 7, + "Flags": 0 + }, + { + "Id": 228, + "Type": 7, + "Flags": 0 + }, + { + "Id": 229, + "Type": 7, + "Flags": 0 + }, + { + "Id": 230, + "Type": 7, + "Flags": 0 + }, + { + "Id": 231, + "Type": 7, + "Flags": 0 + }, + { + "Id": 232, + "Type": 7, + "Flags": 0 + }, + { + "Id": 233, + "Type": 22, + "Flags": 0 + }, + { + "Id": 234, + "Type": 22, + "Flags": 0 + }, + { + "Id": 235, + "Type": 7, + "Flags": 0 + }, + { + "Id": 236, + "Type": 7, + "Flags": 0 + }, + { + "Id": 237, + "Type": 7, + "Flags": 0 + }, + { + "Id": 238, + "Type": 7, + "Flags": 0 + }, + { + "Id": 239, + "Type": 7, + "Flags": 0 + }, + { + "Id": 240, + "Type": 7, + "Flags": 0 + }, + { + "Id": 241, + "Type": 7, + "Flags": 0 + }, + { + "Id": 242, + "Type": 7, + "Flags": 0 + }, + { + "Id": 243, + "Type": 7, + "Flags": 0 + }, + { + "Id": 244, + "Type": 7, + "Flags": 0 + }, + { + "Id": 245, + "Type": 7, + "Flags": 0 + }, + { + "Id": 246, + "Type": 7, + "Flags": 0 + }, + { + "Id": 247, + "Type": 7, + "Flags": 0 + }, + { + "Id": 248, + "Type": 7, + "Flags": 0 + }, + { + "Id": 249, + "Type": 22, + "Flags": 0 + }, + { + "Id": 250, + "Type": 22, + "Flags": 0 + }, + { + "Id": 251, + "Type": 7, + "Flags": 0 + }, + { + "Id": 252, + "Type": 7, + "Flags": 0 + }, + { + "Id": 253, + "Type": 7, + "Flags": 0 + }, + { + "Id": 254, + "Type": 7, + "Flags": 0 + }, + { + "Id": 255, + "Type": 7, + "Flags": 0 + }, + { + "Id": 256, + "Type": 7, + "Flags": 0 + }, + { + "Id": 257, + "Type": 7, + "Flags": 0 + }, + { + "Id": 258, + "Type": 7, + "Flags": 0 + }, + { + "Id": 259, + "Type": 7, + "Flags": 0 + }, + { + "Id": 260, + "Type": 7, + "Flags": 0 + }, + { + "Id": 261, + "Type": 7, + "Flags": 0 + }, + { + "Id": 262, + "Type": 7, + "Flags": 0 + }, + { + "Id": 263, + "Type": 23, + "Flags": 0 + }, + { + "Id": 264, + "Type": 23, + "Flags": 0 + }, + { + "Id": 265, + "Type": 24, + "Flags": 0 + }, + { + "Id": 266, + "Type": 24, + "Flags": 0 + }, + { + "Id": 267, + "Type": 23, + "Flags": 0 + }, + { + "Id": 268, + "Type": 23, + "Flags": 0 + }, + { + "Id": 269, + "Type": 24, + "Flags": 0 + }, + { + "Id": 270, + "Type": 24, + "Flags": 0 + }, + { + "Id": 271, + "Type": 23, + "Flags": 0 + }, + { + "Id": 272, + "Type": 23, + "Flags": 0 + }, + { + "Id": 273, + "Type": 7, + "Flags": 0 + }, + { + "Id": 274, + "Type": 7, + "Flags": 0 + }, + { + "Id": 275, + "Type": 7, + "Flags": 0 + }, + { + "Id": 276, + "Type": 7, + "Flags": 0 + }, + { + "Id": 277, + "Type": 7, + "Flags": 0 + }, + { + "Id": 278, + "Type": 7, + "Flags": 0 + }, + { + "Id": 279, + "Type": 7, + "Flags": 0 + }, + { + "Id": 280, + "Type": 7, + "Flags": 0 + }, + { + "Id": 281, + "Type": 7, + "Flags": 0 + }, + { + "Id": 282, + "Type": 7, + "Flags": 0 + }, + { + "Id": 283, + "Type": 23, + "Flags": 0 + }, + { + "Id": 284, + "Type": 23, + "Flags": 0 + }, + { + "Id": 285, + "Type": 25, + "Flags": 0 + }, + { + "Id": 286, + "Type": 25, + "Flags": 0 + }, + { + "Id": 287, + "Type": 7, + "Flags": 0 + }, + { + "Id": 288, + "Type": 7, + "Flags": 0 + }, + { + "Id": 289, + "Type": 7, + "Flags": 0 + }, + { + "Id": 290, + "Type": 7, + "Flags": 0 + }, + { + "Id": 291, + "Type": 25, + "Flags": 0 + }, + { + "Id": 292, + "Type": 25, + "Flags": 0 + }, + { + "Id": 293, + "Type": 23, + "Flags": 0 + }, + { + "Id": 294, + "Type": 23, + "Flags": 0 + }, + { + "Id": 295, + "Type": 23, + "Flags": 0 + }, + { + "Id": 296, + "Type": 23, + "Flags": 0 + }, + { + "Id": 297, + "Type": 24, + "Flags": 0 + }, + { + "Id": 298, + "Type": 24, + "Flags": 0 + }, + { + "Id": 299, + "Type": 7, + "Flags": 0 + }, + { + "Id": 300, + "Type": 7, + "Flags": 0 + }, + { + "Id": 301, + "Type": 23, + "Flags": 0 + }, + { + "Id": 302, + "Type": 23, + "Flags": 0 + }, + { + "Id": 303, + "Type": 7, + "Flags": 0 + }, + { + "Id": 304, + "Type": 7, + "Flags": 0 + }, + { + "Id": 305, + "Type": 7, + "Flags": 0 + }, + { + "Id": 306, + "Type": 7, + "Flags": 0 + }, + { + "Id": 307, + "Type": 7, + "Flags": 0 + }, + { + "Id": 308, + "Type": 7, + "Flags": 0 + }, + { + "Id": 309, + "Type": 7, + "Flags": 0 + }, + { + "Id": 310, + "Type": 7, + "Flags": 0 + }, + { + "Id": 311, + "Type": 7, + "Flags": 0 + }, + { + "Id": 312, + "Type": 7, + "Flags": 0 + }, + { + "Id": 313, + "Type": 7, + "Flags": 0 + }, + { + "Id": 314, + "Type": 7, + "Flags": 0 + }, + { + "Id": 315, + "Type": 7, + "Flags": 0 + }, + { + "Id": 316, + "Type": 7, + "Flags": 0 + }, + { + "Id": 317, + "Type": 7, + "Flags": 0 + }, + { + "Id": 318, + "Type": 7, + "Flags": 0 + }, + { + "Id": 319, + "Type": 7, + "Flags": 0 + }, + { + "Id": 320, + "Type": 7, + "Flags": 0 + }, + { + "Id": 321, + "Type": 23, + "Flags": 0 + }, + { + "Id": 322, + "Type": 23, + "Flags": 0 + }, + { + "Id": 323, + "Type": 25, + "Flags": 0 + }, + { + "Id": 324, + "Type": 25, + "Flags": 0 + }, + { + "Id": 325, + "Type": 23, + "Flags": 0 + }, + { + "Id": 326, + "Type": 23, + "Flags": 0 + }, + { + "Id": 327, + "Type": 25, + "Flags": 0 + }, + { + "Id": 328, + "Type": 25, + "Flags": 0 + }, + { + "Id": 329, + "Type": 23, + "Flags": 0 + }, + { + "Id": 330, + "Type": 23, + "Flags": 0 + }, + { + "Id": 331, + "Type": 23, + "Flags": 0 + }, + { + "Id": 332, + "Type": 23, + "Flags": 0 + }, + { + "Id": 333, + "Type": 26, + "Flags": 0 + }, + { + "Id": 334, + "Type": 26, + "Flags": 0 + }, + { + "Id": 335, + "Type": 7, + "Flags": 0 + }, + { + "Id": 336, + "Type": 7, + "Flags": 0 + }, + { + "Id": 337, + "Type": 7, + "Flags": 0 + }, + { + "Id": 338, + "Type": 7, + "Flags": 0 + }, + { + "Id": 339, + "Type": 26, + "Flags": 0 + }, + { + "Id": 340, + "Type": 26, + "Flags": 0 + }, + { + "Id": 341, + "Type": 23, + "Flags": 0 + }, + { + "Id": 342, + "Type": 23, + "Flags": 0 + }, + { + "Id": 343, + "Type": 7, + "Flags": 0 + }, + { + "Id": 344, + "Type": 7, + "Flags": 0 + }, + { + "Id": 345, + "Type": 7, + "Flags": 0 + }, + { + "Id": 346, + "Type": 7, + "Flags": 0 + }, + { + "Id": 347, + "Type": 7, + "Flags": 0 + }, + { + "Id": 348, + "Type": 7, + "Flags": 0 + }, + { + "Id": 349, + "Type": 7, + "Flags": 0 + }, + { + "Id": 350, + "Type": 7, + "Flags": 0 + }, + { + "Id": 351, + "Type": 8, + "Flags": 0 + }, + { + "Id": 352, + "Type": 8, + "Flags": 0 + }, + { + "Id": 353, + "Type": 7, + "Flags": 0 + }, + { + "Id": 354, + "Type": 7, + "Flags": 0 + }, + { + "Id": 355, + "Type": 7, + "Flags": 0 + }, + { + "Id": 356, + "Type": 7, + "Flags": 0 + }, + { + "Id": 357, + "Type": 7, + "Flags": 0 + }, + { + "Id": 358, + "Type": 7, + "Flags": 0 + }, + { + "Id": 359, + "Type": 7, + "Flags": 0 + }, + { + "Id": 360, + "Type": 7, + "Flags": 0 + }, + { + "Id": 361, + "Type": 8, + "Flags": 0 + }, + { + "Id": 362, + "Type": 8, + "Flags": 0 + }, + { + "Id": 363, + "Type": 7, + "Flags": 0 + }, + { + "Id": 364, + "Type": 7, + "Flags": 0 + }, + { + "Id": 365, + "Type": 7, + "Flags": 0 + }, + { + "Id": 366, + "Type": 7, + "Flags": 0 + }, + { + "Id": 367, + "Type": 7, + "Flags": 0 + }, + { + "Id": 368, + "Type": 7, + "Flags": 0 + }, + { + "Id": 369, + "Type": 8, + "Flags": 0 + }, + { + "Id": 370, + "Type": 8, + "Flags": 0 + }, + { + "Id": 371, + "Type": 27, + "Flags": 0 + }, + { + "Id": 372, + "Type": 27, + "Flags": 0 + }, + { + "Id": 373, + "Type": 7, + "Flags": 0 + }, + { + "Id": 374, + "Type": 7, + "Flags": 0 + }, + { + "Id": 375, + "Type": 7, + "Flags": 0 + }, + { + "Id": 376, + "Type": 7, + "Flags": 0 + }, + { + "Id": 377, + "Type": 24, + "Flags": 0 + }, + { + "Id": 378, + "Type": 24, + "Flags": 0 + }, + { + "Id": 379, + "Type": 7, + "Flags": 0 + }, + { + "Id": 380, + "Type": 7, + "Flags": 0 + }, + { + "Id": 381, + "Type": 7, + "Flags": 0 + }, + { + "Id": 382, + "Type": 7, + "Flags": 0 + }, + { + "Id": 383, + "Type": 7, + "Flags": 0 + }, + { + "Id": 384, + "Type": 7, + "Flags": 0 + }, + { + "Id": 385, + "Type": 7, + "Flags": 0 + }, + { + "Id": 386, + "Type": 7, + "Flags": 0 + }, + { + "Id": 387, + "Type": 7, + "Flags": 0 + }, + { + "Id": 388, + "Type": 7, + "Flags": 0 + }, + { + "Id": 389, + "Type": 7, + "Flags": 0 + }, + { + "Id": 390, + "Type": 7, + "Flags": 0 + }, + { + "Id": 391, + "Type": 7, + "Flags": 0 + }, + { + "Id": 392, + "Type": 7, + "Flags": 0 + }, + { + "Id": 393, + "Type": 28, + "Flags": 2 + }, + { + "Id": 394, + "Type": 28, + "Flags": 2 + }, + { + "Id": 395, + "Type": 28, + "Flags": 2 + }, + { + "Id": 396, + "Type": 28, + "Flags": 2 + }, + { + "Id": 397, + "Type": 28, + "Flags": 2 + }, + { + "Id": 398, + "Type": 28, + "Flags": 2 + }, + { + "Id": 399, + "Type": 28, + "Flags": 2 + }, + { + "Id": 400, + "Type": 28, + "Flags": 2 + }, + { + "Id": 401, + "Type": 29, + "Flags": 2 + }, + { + "Id": 402, + "Type": 29, + "Flags": 2 + }, + { + "Id": 403, + "Type": 28, + "Flags": 2 + }, + { + "Id": 404, + "Type": 28, + "Flags": 2 + }, + { + "Id": 405, + "Type": 7, + "Flags": 0 + }, + { + "Id": 406, + "Type": 7, + "Flags": 0 + }, + { + "Id": 407, + "Type": 7, + "Flags": 0 + }, + { + "Id": 408, + "Type": 7, + "Flags": 0 + }, + { + "Id": 409, + "Type": 7, + "Flags": 0 + }, + { + "Id": 410, + "Type": 7, + "Flags": 0 + }, + { + "Id": 411, + "Type": 7, + "Flags": 0 + }, + { + "Id": 412, + "Type": 7, + "Flags": 0 + }, + { + "Id": 413, + "Type": 7, + "Flags": 0 + }, + { + "Id": 414, + "Type": 7, + "Flags": 0 + }, + { + "Id": 415, + "Type": 7, + "Flags": 0 + }, + { + "Id": 416, + "Type": 7, + "Flags": 0 + }, + { + "Id": 417, + "Type": 7, + "Flags": 0 + }, + { + "Id": 418, + "Type": 7, + "Flags": 0 + }, + { + "Id": 419, + "Type": 7, + "Flags": 0 + }, + { + "Id": 420, + "Type": 7, + "Flags": 0 + }, + { + "Id": 421, + "Type": 7, + "Flags": 0 + }, + { + "Id": 422, + "Type": 7, + "Flags": 0 + }, + { + "Id": 423, + "Type": 7, + "Flags": 0 + }, + { + "Id": 424, + "Type": 7, + "Flags": 0 + }, + { + "Id": 425, + "Type": 7, + "Flags": 0 + }, + { + "Id": 426, + "Type": 7, + "Flags": 0 + }, + { + "Id": 427, + "Type": 7, + "Flags": 0 + }, + { + "Id": 428, + "Type": 7, + "Flags": 0 + }, + { + "Id": 429, + "Type": 7, + "Flags": 0 + }, + { + "Id": 430, + "Type": 7, + "Flags": 0 + }, + { + "Id": 431, + "Type": 7, + "Flags": 0 + }, + { + "Id": 432, + "Type": 7, + "Flags": 0 + }, + { + "Id": 433, + "Type": 7, + "Flags": 0 + }, + { + "Id": 434, + "Type": 7, + "Flags": 0 + }, + { + "Id": 435, + "Type": 7, + "Flags": 0 + }, + { + "Id": 436, + "Type": 7, + "Flags": 0 + }, + { + "Id": 437, + "Type": 7, + "Flags": 0 + }, + { + "Id": 438, + "Type": 7, + "Flags": 0 + }, + { + "Id": 439, + "Type": 7, + "Flags": 0 + }, + { + "Id": 440, + "Type": 7, + "Flags": 0 + }, + { + "Id": 441, + "Type": 7, + "Flags": 0 + }, + { + "Id": 442, + "Type": 7, + "Flags": 0 + }, + { + "Id": 443, + "Type": 7, + "Flags": 0 + }, + { + "Id": 444, + "Type": 7, + "Flags": 0 + }, + { + "Id": 445, + "Type": 7, + "Flags": 0 + }, + { + "Id": 446, + "Type": 7, + "Flags": 0 + }, + { + "Id": 447, + "Type": 7, + "Flags": 0 + }, + { + "Id": 448, + "Type": 7, + "Flags": 0 + }, + { + "Id": 449, + "Type": 7, + "Flags": 0 + }, + { + "Id": 450, + "Type": 7, + "Flags": 0 + }, + { + "Id": 451, + "Type": 7, + "Flags": 0 + }, + { + "Id": 452, + "Type": 7, + "Flags": 0 + }, + { + "Id": 453, + "Type": 7, + "Flags": 0 + }, + { + "Id": 454, + "Type": 7, + "Flags": 0 + }, + { + "Id": 455, + "Type": 7, + "Flags": 0 + }, + { + "Id": 456, + "Type": 7, + "Flags": 0 + }, + { + "Id": 457, + "Type": 7, + "Flags": 0 + }, + { + "Id": 458, + "Type": 7, + "Flags": 0 + }, + { + "Id": 459, + "Type": 7, + "Flags": 0 + }, + { + "Id": 460, + "Type": 7, + "Flags": 0 + }, + { + "Id": 461, + "Type": 7, + "Flags": 0 + }, + { + "Id": 462, + "Type": 7, + "Flags": 0 + }, + { + "Id": 463, + "Type": 7, + "Flags": 0 + }, + { + "Id": 464, + "Type": 7, + "Flags": 0 + }, + { + "Id": 465, + "Type": 7, + "Flags": 0 + }, + { + "Id": 466, + "Type": 7, + "Flags": 0 + }, + { + "Id": 467, + "Type": 7, + "Flags": 0 + }, + { + "Id": 468, + "Type": 7, + "Flags": 0 + }, + { + "Id": 469, + "Type": 7, + "Flags": 0 + }, + { + "Id": 470, + "Type": 7, + "Flags": 0 + }, + { + "Id": 471, + "Type": 7, + "Flags": 0 + }, + { + "Id": 472, + "Type": 7, + "Flags": 0 + }, + { + "Id": 473, + "Type": 7, + "Flags": 0 + }, + { + "Id": 474, + "Type": 7, + "Flags": 0 + }, + { + "Id": 475, + "Type": 7, + "Flags": 0 + }, + { + "Id": 476, + "Type": 7, + "Flags": 0 + }, + { + "Id": 477, + "Type": 7, + "Flags": 0 + }, + { + "Id": 478, + "Type": 7, + "Flags": 0 + }, + { + "Id": 479, + "Type": 7, + "Flags": 0 + }, + { + "Id": 480, + "Type": 7, + "Flags": 0 + }, + { + "Id": 481, + "Type": 7, + "Flags": 0 + }, + { + "Id": 482, + "Type": 7, + "Flags": 0 + }, + { + "Id": 483, + "Type": 7, + "Flags": 0 + }, + { + "Id": 484, + "Type": 7, + "Flags": 0 + }, + { + "Id": 485, + "Type": 7, + "Flags": 0 + }, + { + "Id": 486, + "Type": 7, + "Flags": 0 + }, + { + "Id": 487, + "Type": 7, + "Flags": 0 + }, + { + "Id": 488, + "Type": 7, + "Flags": 0 + }, + { + "Id": 489, + "Type": 7, + "Flags": 0 + }, + { + "Id": 490, + "Type": 7, + "Flags": 0 + }, + { + "Id": 491, + "Type": 7, + "Flags": 0 + }, + { + "Id": 492, + "Type": 7, + "Flags": 0 + }, + { + "Id": 493, + "Type": 7, + "Flags": 0 + }, + { + "Id": 494, + "Type": 7, + "Flags": 0 + }, + { + "Id": 495, + "Type": 7, + "Flags": 0 + }, + { + "Id": 496, + "Type": 7, + "Flags": 0 + }, + { + "Id": 497, + "Type": 7, + "Flags": 0 + }, + { + "Id": 498, + "Type": 7, + "Flags": 0 + }, + { + "Id": 499, + "Type": 7, + "Flags": 0 + }, + { + "Id": 500, + "Type": 7, + "Flags": 0 + }, + { + "Id": 501, + "Type": 7, + "Flags": 0 + }, + { + "Id": 502, + "Type": 7, + "Flags": 0 + }, + { + "Id": 503, + "Type": 7, + "Flags": 0 + }, + { + "Id": 504, + "Type": 7, + "Flags": 0 + }, + { + "Id": 505, + "Type": 7, + "Flags": 0 + }, + { + "Id": 506, + "Type": 7, + "Flags": 0 + }, + { + "Id": 507, + "Type": 7, + "Flags": 0 + }, + { + "Id": 508, + "Type": 7, + "Flags": 0 + }, + { + "Id": 509, + "Type": 7, + "Flags": 0 + }, + { + "Id": 510, + "Type": 7, + "Flags": 0 + }, + { + "Id": 511, + "Type": 7, + "Flags": 0 + }, + { + "Id": 512, + "Type": 7, + "Flags": 0 + }, + { + "Id": 513, + "Type": 7, + "Flags": 0 + }, + { + "Id": 514, + "Type": 7, + "Flags": 0 + }, + { + "Id": 515, + "Type": 7, + "Flags": 0 + }, + { + "Id": 516, + "Type": 7, + "Flags": 0 + }, + { + "Id": 517, + "Type": 7, + "Flags": 0 + }, + { + "Id": 518, + "Type": 7, + "Flags": 0 + }, + { + "Id": 519, + "Type": 7, + "Flags": 0 + }, + { + "Id": 520, + "Type": 7, + "Flags": 0 + }, + { + "Id": 521, + "Type": 7, + "Flags": 0 + }, + { + "Id": 522, + "Type": 7, + "Flags": 0 + }, + { + "Id": 523, + "Type": 7, + "Flags": 0 + }, + { + "Id": 524, + "Type": 7, + "Flags": 0 + }, + { + "Id": 525, + "Type": 7, + "Flags": 0 + }, + { + "Id": 526, + "Type": 7, + "Flags": 0 + }, + { + "Id": 527, + "Type": 7, + "Flags": 0 + }, + { + "Id": 528, + "Type": 7, + "Flags": 0 + }, + { + "Id": 529, + "Type": 7, + "Flags": 0 + }, + { + "Id": 530, + "Type": 7, + "Flags": 0 + }, + { + "Id": 531, + "Type": 7, + "Flags": 0 + }, + { + "Id": 532, + "Type": 7, + "Flags": 0 + }, + { + "Id": 533, + "Type": 7, + "Flags": 0 + }, + { + "Id": 534, + "Type": 7, + "Flags": 0 + }, + { + "Id": 535, + "Type": 7, + "Flags": 0 + }, + { + "Id": 536, + "Type": 7, + "Flags": 0 + }, + { + "Id": 537, + "Type": 7, + "Flags": 0 + }, + { + "Id": 538, + "Type": 7, + "Flags": 0 + }, + { + "Id": 539, + "Type": 7, + "Flags": 0 + }, + { + "Id": 540, + "Type": 7, + "Flags": 0 + }, + { + "Id": 541, + "Type": 8, + "Flags": 0 + }, + { + "Id": 542, + "Type": 8, + "Flags": 0 + }, + { + "Id": 543, + "Type": 7, + "Flags": 0 + }, + { + "Id": 544, + "Type": 7, + "Flags": 0 + }, + { + "Id": 545, + "Type": 7, + "Flags": 0 + }, + { + "Id": 546, + "Type": 7, + "Flags": 0 + }, + { + "Id": 547, + "Type": 7, + "Flags": 0 + }, + { + "Id": 548, + "Type": 7, + "Flags": 0 + }, + { + "Id": 549, + "Type": 7, + "Flags": 0 + }, + { + "Id": 550, + "Type": 7, + "Flags": 0 + }, + { + "Id": 551, + "Type": 7, + "Flags": 0 + }, + { + "Id": 552, + "Type": 7, + "Flags": 0 + }, + { + "Id": 553, + "Type": 7, + "Flags": 0 + }, + { + "Id": 554, + "Type": 7, + "Flags": 0 + }, + { + "Id": 555, + "Type": 8, + "Flags": 0 + }, + { + "Id": 556, + "Type": 8, + "Flags": 0 + }, + { + "Id": 557, + "Type": 8, + "Flags": 0 + }, + { + "Id": 558, + "Type": 8, + "Flags": 0 + }, + { + "Id": 559, + "Type": 7, + "Flags": 0 + }, + { + "Id": 560, + "Type": 7, + "Flags": 0 + }, + { + "Id": 561, + "Type": 7, + "Flags": 0 + }, + { + "Id": 562, + "Type": 30, + "Flags": 0 + }, + { + "Id": 563, + "Type": 7, + "Flags": 0 + }, + { + "Id": 564, + "Type": 7, + "Flags": 0 + }, + { + "Id": 565, + "Type": 7, + "Flags": 0 + }, + { + "Id": 566, + "Type": 7, + "Flags": 0 + }, + { + "Id": 567, + "Type": 31, + "Flags": 0 + }, + { + "Id": 568, + "Type": 31, + "Flags": 0 + }, + { + "Id": 569, + "Type": 7, + "Flags": 0 + }, + { + "Id": 570, + "Type": 7, + "Flags": 0 + }, + { + "Id": 571, + "Type": 8, + "Flags": 0 + }, + { + "Id": 572, + "Type": 8, + "Flags": 0 + }, + { + "Id": 573, + "Type": 30, + "Flags": 0 + }, + { + "Id": 574, + "Type": 30, + "Flags": 0 + }, + { + "Id": 575, + "Type": 27, + "Flags": 0 + }, + { + "Id": 576, + "Type": 7, + "Flags": 0 + }, + { + "Id": 577, + "Type": 7, + "Flags": 0 + }, + { + "Id": 578, + "Type": 8, + "Flags": 0 + }, + { + "Id": 579, + "Type": 8, + "Flags": 0 + }, + { + "Id": 580, + "Type": 8, + "Flags": 0 + }, + { + "Id": 581, + "Type": 22, + "Flags": 0 + }, + { + "Id": 582, + "Type": 22, + "Flags": 0 + }, + { + "Id": 583, + "Type": 22, + "Flags": 0 + }, + { + "Id": 584, + "Type": 22, + "Flags": 0 + }, + { + "Id": 585, + "Type": 32, + "Flags": 0 + }, + { + "Id": 586, + "Type": 33, + "Flags": 0 + }, + { + "Id": 587, + "Type": 7, + "Flags": 0 + }, + { + "Id": 588, + "Type": 7, + "Flags": 0 + }, + { + "Id": 589, + "Type": 7, + "Flags": 0 + }, + { + "Id": 590, + "Type": 7, + "Flags": 0 + }, + { + "Id": 591, + "Type": 7, + "Flags": 0 + }, + { + "Id": 592, + "Type": 27, + "Flags": 0 + }, + { + "Id": 593, + "Type": 27, + "Flags": 0 + }, + { + "Id": 594, + "Type": 8, + "Flags": 0 + }, + { + "Id": 595, + "Type": 7, + "Flags": 0 + }, + { + "Id": 596, + "Type": 22, + "Flags": 0 + }, + { + "Id": 597, + "Type": 22, + "Flags": 0 + }, + { + "Id": 598, + "Type": 22, + "Flags": 0 + }, + { + "Id": 599, + "Type": 7, + "Flags": 0 + }, + { + "Id": 600, + "Type": 34, + "Flags": 0 + }, + { + "Id": 601, + "Type": 27, + "Flags": 0 + }, + { + "Id": 602, + "Type": 7, + "Flags": 0 + }, + { + "Id": 603, + "Type": 7, + "Flags": 0 + }, + { + "Id": 604, + "Type": 27, + "Flags": 0 + }, + { + "Id": 605, + "Type": 27, + "Flags": 0 + }, + { + "Id": 606, + "Type": 27, + "Flags": 0 + }, + { + "Id": 607, + "Type": 27, + "Flags": 0 + }, + { + "Id": 608, + "Type": 27, + "Flags": 0 + }, + { + "Id": 609, + "Type": 27, + "Flags": 0 + }, + { + "Id": 610, + "Type": 8, + "Flags": 0 + }, + { + "Id": 611, + "Type": 8, + "Flags": 0 + }, + { + "Id": 612, + "Type": 7, + "Flags": 0 + }, + { + "Id": 613, + "Type": 7, + "Flags": 0 + }, + { + "Id": 614, + "Type": 7, + "Flags": 0 + }, + { + "Id": 615, + "Type": 7, + "Flags": 0 + }, + { + "Id": 616, + "Type": 7, + "Flags": 0 + }, + { + "Id": 617, + "Type": 7, + "Flags": 0 + }, + { + "Id": 618, + "Type": 27, + "Flags": 0 + }, + { + "Id": 619, + "Type": 27, + "Flags": 0 + }, + { + "Id": 620, + "Type": 35, + "Flags": 0 + }, + { + "Id": 621, + "Type": 35, + "Flags": 0 + }, + { + "Id": 622, + "Type": 22, + "Flags": 0 + }, + { + "Id": 623, + "Type": 22, + "Flags": 0 + }, + { + "Id": 624, + "Type": 27, + "Flags": 0 + }, + { + "Id": 625, + "Type": 22, + "Flags": 0 + }, + { + "Id": 626, + "Type": 34, + "Flags": 0 + }, + { + "Id": 627, + "Type": 34, + "Flags": 0 + }, + { + "Id": 628, + "Type": 22, + "Flags": 0 + }, + { + "Id": 629, + "Type": 7, + "Flags": 0 + }, + { + "Id": 630, + "Type": 7, + "Flags": 0 + }, + { + "Id": 631, + "Type": 22, + "Flags": 0 + }, + { + "Id": 632, + "Type": 22, + "Flags": 0 + }, + { + "Id": 633, + "Type": 7, + "Flags": 0 + }, + { + "Id": 634, + "Type": 8, + "Flags": 0 + }, + { + "Id": 635, + "Type": 8, + "Flags": 0 + }, + { + "Id": 636, + "Type": 7, + "Flags": 0 + }, + { + "Id": 637, + "Type": 7, + "Flags": 0 + }, + { + "Id": 638, + "Type": 7, + "Flags": 0 + }, + { + "Id": 639, + "Type": 7, + "Flags": 0 + }, + { + "Id": 640, + "Type": 7, + "Flags": 0 + }, + { + "Id": 641, + "Type": 7, + "Flags": 0 + }, + { + "Id": 642, + "Type": 7, + "Flags": 0 + }, + { + "Id": 643, + "Type": 7, + "Flags": 0 + }, + { + "Id": 644, + "Type": 7, + "Flags": 0 + }, + { + "Id": 645, + "Type": 7, + "Flags": 0 + }, + { + "Id": 646, + "Type": 22, + "Flags": 0 + }, + { + "Id": 647, + "Type": 22, + "Flags": 0 + }, + { + "Id": 648, + "Type": 8, + "Flags": 0 + }, + { + "Id": 649, + "Type": 35, + "Flags": 0 + }, + { + "Id": 650, + "Type": 27, + "Flags": 0 + }, + { + "Id": 651, + "Type": 22, + "Flags": 0 + }, + { + "Id": 652, + "Type": 22, + "Flags": 0 + }, + { + "Id": 653, + "Type": 22, + "Flags": 0 + }, + { + "Id": 654, + "Type": 22, + "Flags": 0 + }, + { + "Id": 655, + "Type": 8, + "Flags": 0 + }, + { + "Id": 656, + "Type": 8, + "Flags": 0 + }, + { + "Id": 657, + "Type": 22, + "Flags": 0 + }, + { + "Id": 658, + "Type": 22, + "Flags": 0 + }, + { + "Id": 659, + "Type": 7, + "Flags": 0 + }, + { + "Id": 660, + "Type": 7, + "Flags": 0 + }, + { + "Id": 661, + "Type": 7, + "Flags": 0 + }, + { + "Id": 662, + "Type": 7, + "Flags": 0 + }, + { + "Id": 663, + "Type": 8, + "Flags": 0 + }, + { + "Id": 664, + "Type": 8, + "Flags": 0 + }, + { + "Id": 665, + "Type": 8, + "Flags": 0 + }, + { + "Id": 666, + "Type": 8, + "Flags": 0 + }, + { + "Id": 667, + "Type": 7, + "Flags": 0 + }, + { + "Id": 668, + "Type": 7, + "Flags": 0 + }, + { + "Id": 669, + "Type": 7, + "Flags": 0 + }, + { + "Id": 670, + "Type": 7, + "Flags": 0 + }, + { + "Id": 671, + "Type": 7, + "Flags": 0 + }, + { + "Id": 672, + "Type": 7, + "Flags": 0 + }, + { + "Id": 673, + "Type": 8, + "Flags": 0 + }, + { + "Id": 674, + "Type": 8, + "Flags": 0 + }, + { + "Id": 675, + "Type": 22, + "Flags": 0 + }, + { + "Id": 676, + "Type": 22, + "Flags": 0 + }, + { + "Id": 677, + "Type": 8, + "Flags": 0 + }, + { + "Id": 678, + "Type": 8, + "Flags": 0 + }, + { + "Id": 679, + "Type": 27, + "Flags": 0 + }, + { + "Id": 680, + "Type": 27, + "Flags": 0 + }, + { + "Id": 681, + "Type": 8, + "Flags": 0 + }, + { + "Id": 682, + "Type": 8, + "Flags": 0 + }, + { + "Id": 683, + "Type": 7, + "Flags": 0 + }, + { + "Id": 684, + "Type": 7, + "Flags": 0 + }, + { + "Id": 685, + "Type": 7, + "Flags": 0 + }, + { + "Id": 686, + "Type": 7, + "Flags": 0 + }, + { + "Id": 687, + "Type": 7, + "Flags": 0 + }, + { + "Id": 688, + "Type": 7, + "Flags": 0 + }, + { + "Id": 689, + "Type": 8, + "Flags": 0 + }, + { + "Id": 690, + "Type": 8, + "Flags": 0 + }, + { + "Id": 691, + "Type": 8, + "Flags": 0 + }, + { + "Id": 692, + "Type": 8, + "Flags": 0 + }, + { + "Id": 693, + "Type": 7, + "Flags": 0 + }, + { + "Id": 694, + "Type": 22, + "Flags": 0 + }, + { + "Id": 695, + "Type": 8, + "Flags": 0 + }, + { + "Id": 696, + "Type": 7, + "Flags": 0 + }, + { + "Id": 697, + "Type": 7, + "Flags": 0 + }, + { + "Id": 698, + "Type": 8, + "Flags": 0 + }, + { + "Id": 699, + "Type": 8, + "Flags": 0 + }, + { + "Id": 700, + "Type": 7, + "Flags": 0 + }, + { + "Id": 701, + "Type": 7, + "Flags": 0 + }, + { + "Id": 702, + "Type": 7, + "Flags": 0 + }, + { + "Id": 703, + "Type": 22, + "Flags": 0 + }, + { + "Id": 704, + "Type": 22, + "Flags": 0 + }, + { + "Id": 705, + "Type": 27, + "Flags": 0 + }, + { + "Id": 706, + "Type": 27, + "Flags": 0 + }, + { + "Id": 707, + "Type": 27, + "Flags": 0 + }, + { + "Id": 708, + "Type": 7, + "Flags": 0 + }, + { + "Id": 709, + "Type": 7, + "Flags": 0 + }, + { + "Id": 710, + "Type": 7, + "Flags": 0 + }, + { + "Id": 711, + "Type": 7, + "Flags": 0 + }, + { + "Id": 712, + "Type": 7, + "Flags": 0 + }, + { + "Id": 713, + "Type": 7, + "Flags": 0 + }, + { + "Id": 714, + "Type": 8, + "Flags": 0 + }, + { + "Id": 715, + "Type": 8, + "Flags": 0 + }, + { + "Id": 716, + "Type": 22, + "Flags": 0 + }, + { + "Id": 717, + "Type": 22, + "Flags": 0 + }, + { + "Id": 718, + "Type": 7, + "Flags": 0 + }, + { + "Id": 719, + "Type": 7, + "Flags": 0 + }, + { + "Id": 720, + "Type": 22, + "Flags": 0 + }, + { + "Id": 721, + "Type": 22, + "Flags": 0 + }, + { + "Id": 722, + "Type": 7, + "Flags": 0 + }, + { + "Id": 723, + "Type": 7, + "Flags": 0 + }, + { + "Id": 724, + "Type": 22, + "Flags": 0 + }, + { + "Id": 725, + "Type": 22, + "Flags": 0 + }, + { + "Id": 726, + "Type": 7, + "Flags": 0 + }, + { + "Id": 727, + "Type": 7, + "Flags": 0 + }, + { + "Id": 728, + "Type": 8, + "Flags": 0 + }, + { + "Id": 729, + "Type": 8, + "Flags": 0 + }, + { + "Id": 730, + "Type": 8, + "Flags": 0 + }, + { + "Id": 731, + "Type": 7, + "Flags": 0 + }, + { + "Id": 732, + "Type": 7, + "Flags": 0 + }, + { + "Id": 733, + "Type": 7, + "Flags": 0 + }, + { + "Id": 734, + "Type": 7, + "Flags": 0 + }, + { + "Id": 735, + "Type": 8, + "Flags": 0 + }, + { + "Id": 736, + "Type": 8, + "Flags": 0 + }, + { + "Id": 737, + "Type": 22, + "Flags": 0 + }, + { + "Id": 738, + "Type": 22, + "Flags": 0 + }, + { + "Id": 739, + "Type": 27, + "Flags": 0 + }, + { + "Id": 740, + "Type": 8, + "Flags": 0 + }, + { + "Id": 741, + "Type": 8, + "Flags": 0 + }, + { + "Id": 742, + "Type": 8, + "Flags": 0 + }, + { + "Id": 743, + "Type": 8, + "Flags": 0 + }, + { + "Id": 744, + "Type": 8, + "Flags": 0 + }, + { + "Id": 745, + "Type": 8, + "Flags": 0 + }, + { + "Id": 746, + "Type": 7, + "Flags": 0 + }, + { + "Id": 747, + "Type": 7, + "Flags": 0 + }, + { + "Id": 748, + "Type": 7, + "Flags": 0 + }, + { + "Id": 749, + "Type": 7, + "Flags": 0 + }, + { + "Id": 750, + "Type": 22, + "Flags": 0 + }, + { + "Id": 751, + "Type": 22, + "Flags": 0 + }, + { + "Id": 752, + "Type": 22, + "Flags": 0 + }, + { + "Id": 753, + "Type": 22, + "Flags": 0 + }, + { + "Id": 754, + "Type": 27, + "Flags": 0 + }, + { + "Id": 755, + "Type": 27, + "Flags": 0 + }, + { + "Id": 756, + "Type": 27, + "Flags": 0 + }, + { + "Id": 757, + "Type": 7, + "Flags": 0 + }, + { + "Id": 758, + "Type": 7, + "Flags": 0 + }, + { + "Id": 759, + "Type": 7, + "Flags": 0 + }, + { + "Id": 760, + "Type": 8, + "Flags": 0 + }, + { + "Id": 761, + "Type": 22, + "Flags": 0 + }, + { + "Id": 762, + "Type": 22, + "Flags": 0 + }, + { + "Id": 763, + "Type": 22, + "Flags": 0 + }, + { + "Id": 764, + "Type": 22, + "Flags": 0 + }, + { + "Id": 765, + "Type": 27, + "Flags": 0 + }, + { + "Id": 766, + "Type": 27, + "Flags": 0 + }, + { + "Id": 767, + "Type": 27, + "Flags": 0 + }, + { + "Id": 768, + "Type": 27, + "Flags": 0 + }, + { + "Id": 769, + "Type": 27, + "Flags": 0 + }, + { + "Id": 770, + "Type": 27, + "Flags": 0 + }, + { + "Id": 771, + "Type": 27, + "Flags": 0 + }, + { + "Id": 772, + "Type": 7, + "Flags": 0 + }, + { + "Id": 773, + "Type": 7, + "Flags": 0 + }, + { + "Id": 774, + "Type": 34, + "Flags": 0 + }, + { + "Id": 775, + "Type": 34, + "Flags": 0 + }, + { + "Id": 776, + "Type": 36, + "Flags": 0 + }, + { + "Id": 777, + "Type": 36, + "Flags": 0 + }, + { + "Id": 778, + "Type": 8, + "Flags": 0 + }, + { + "Id": 779, + "Type": 27, + "Flags": 0 + }, + { + "Id": 780, + "Type": 1, + "Flags": 0 + }, + { + "Id": 781, + "Type": 1, + "Flags": 0 + }, + { + "Id": 782, + "Type": 7, + "Flags": 0 + }, + { + "Id": 783, + "Type": 7, + "Flags": 0 + }, + { + "Id": 784, + "Type": 7, + "Flags": 0 + }, + { + "Id": 785, + "Type": 7, + "Flags": 0 + }, + { + "Id": 786, + "Type": 8, + "Flags": 0 + }, + { + "Id": 787, + "Type": 8, + "Flags": 0 + }, + { + "Id": 788, + "Type": 22, + "Flags": 0 + }, + { + "Id": 789, + "Type": 22, + "Flags": 0 + }, + { + "Id": 790, + "Type": 8, + "Flags": 0 + }, + { + "Id": 791, + "Type": 8, + "Flags": 0 + }, + { + "Id": 792, + "Type": 7, + "Flags": 0 + }, + { + "Id": 793, + "Type": 7, + "Flags": 0 + }, + { + "Id": 794, + "Type": 8, + "Flags": 0 + }, + { + "Id": 795, + "Type": 8, + "Flags": 0 + }, + { + "Id": 796, + "Type": 8, + "Flags": 0 + }, + { + "Id": 797, + "Type": 8, + "Flags": 0 + }, + { + "Id": 798, + "Type": 7, + "Flags": 0 + }, + { + "Id": 799, + "Type": 7, + "Flags": 0 + }, + { + "Id": 800, + "Type": 36, + "Flags": 0 + }, + { + "Id": 801, + "Type": 36, + "Flags": 0 + }, + { + "Id": 802, + "Type": 8, + "Flags": 0 + }, + { + "Id": 803, + "Type": 8, + "Flags": 0 + }, + { + "Id": 804, + "Type": 34, + "Flags": 0 + }, + { + "Id": 805, + "Type": 34, + "Flags": 0 + }, + { + "Id": 806, + "Type": 22, + "Flags": 0 + }, + { + "Id": 807, + "Type": 22, + "Flags": 0 + }, + { + "Id": 808, + "Type": 22, + "Flags": 0 + }, + { + "Id": 809, + "Type": 22, + "Flags": 0 + }, + { + "Id": 810, + "Type": 22, + "Flags": 0 + }, + { + "Id": 811, + "Type": 34, + "Flags": 0 + }, + { + "Id": 812, + "Type": 34, + "Flags": 0 + }, + { + "Id": 813, + "Type": 34, + "Flags": 0 + }, + { + "Id": 814, + "Type": 27, + "Flags": 0 + }, + { + "Id": 815, + "Type": 27, + "Flags": 0 + }, + { + "Id": 816, + "Type": 8, + "Flags": 0 + }, + { + "Id": 817, + "Type": 8, + "Flags": 0 + }, + { + "Id": 818, + "Type": 7, + "Flags": 0 + }, + { + "Id": 819, + "Type": 8, + "Flags": 0 + }, + { + "Id": 820, + "Type": 36, + "Flags": 0 + }, + { + "Id": 821, + "Type": 36, + "Flags": 0 + }, + { + "Id": 822, + "Type": 36, + "Flags": 0 + }, + { + "Id": 823, + "Type": 36, + "Flags": 0 + }, + { + "Id": 824, + "Type": 8, + "Flags": 0 + }, + { + "Id": 825, + "Type": 7, + "Flags": 0 + }, + { + "Id": 826, + "Type": 27, + "Flags": 0 + }, + { + "Id": 827, + "Type": 27, + "Flags": 0 + }, + { + "Id": 828, + "Type": 27, + "Flags": 0 + }, + { + "Id": 829, + "Type": 8, + "Flags": 0 + }, + { + "Id": 830, + "Type": 8, + "Flags": 0 + }, + { + "Id": 831, + "Type": 8, + "Flags": 0 + }, + { + "Id": 832, + "Type": 8, + "Flags": 0 + }, + { + "Id": 833, + "Type": 8, + "Flags": 0 + }, + { + "Id": 834, + "Type": 27, + "Flags": 0 + }, + { + "Id": 835, + "Type": 27, + "Flags": 0 + }, + { + "Id": 836, + "Type": 27, + "Flags": 0 + }, + { + "Id": 837, + "Type": 2, + "Flags": 0 + }, + { + "Id": 838, + "Type": 2, + "Flags": 0 + }, + { + "Id": 839, + "Type": 34, + "Flags": 0 + }, + { + "Id": 840, + "Type": 34, + "Flags": 0 + }, + { + "Id": 841, + "Type": 8, + "Flags": 0 + }, + { + "Id": 842, + "Type": 7, + "Flags": 0 + }, + { + "Id": 843, + "Type": 7, + "Flags": 0 + }, + { + "Id": 844, + "Type": 7, + "Flags": 0 + }, + { + "Id": 845, + "Type": 36, + "Flags": 0 + }, + { + "Id": 846, + "Type": 36, + "Flags": 0 + }, + { + "Id": 847, + "Type": 8, + "Flags": 0 + }, + { + "Id": 848, + "Type": 8, + "Flags": 0 + }, + { + "Id": 849, + "Type": 8, + "Flags": 0 + }, + { + "Id": 850, + "Type": 8, + "Flags": 0 + }, + { + "Id": 851, + "Type": 7, + "Flags": 0 + }, + { + "Id": 852, + "Type": 7, + "Flags": 0 + }, + { + "Id": 853, + "Type": 22, + "Flags": 0 + }, + { + "Id": 854, + "Type": 22, + "Flags": 0 + }, + { + "Id": 855, + "Type": 22, + "Flags": 0 + }, + { + "Id": 856, + "Type": 22, + "Flags": 0 + }, + { + "Id": 857, + "Type": 22, + "Flags": 0 + }, + { + "Id": 858, + "Type": 22, + "Flags": 0 + }, + { + "Id": 859, + "Type": 22, + "Flags": 0 + }, + { + "Id": 860, + "Type": 22, + "Flags": 0 + }, + { + "Id": 861, + "Type": 22, + "Flags": 0 + }, + { + "Id": 862, + "Type": 22, + "Flags": 0 + }, + { + "Id": 863, + "Type": 22, + "Flags": 0 + }, + { + "Id": 864, + "Type": 22, + "Flags": 0 + }, + { + "Id": 865, + "Type": 22, + "Flags": 0 + }, + { + "Id": 866, + "Type": 22, + "Flags": 0 + }, + { + "Id": 867, + "Type": 22, + "Flags": 0 + }, + { + "Id": 868, + "Type": 7, + "Flags": 0 + }, + { + "Id": 869, + "Type": 7, + "Flags": 0 + }, + { + "Id": 870, + "Type": 7, + "Flags": 0 + }, + { + "Id": 871, + "Type": 7, + "Flags": 0 + }, + { + "Id": 872, + "Type": 7, + "Flags": 0 + }, + { + "Id": 873, + "Type": 7, + "Flags": 0 + }, + { + "Id": 874, + "Type": 7, + "Flags": 0 + }, + { + "Id": 875, + "Type": 7, + "Flags": 0 + }, + { + "Id": 876, + "Type": 7, + "Flags": 0 + }, + { + "Id": 877, + "Type": 7, + "Flags": 0 + }, + { + "Id": 878, + "Type": 7, + "Flags": 0 + }, + { + "Id": 879, + "Type": 7, + "Flags": 0 + }, + { + "Id": 880, + "Type": 7, + "Flags": 0 + }, + { + "Id": 881, + "Type": 7, + "Flags": 0 + }, + { + "Id": 882, + "Type": 7, + "Flags": 0 + }, + { + "Id": 883, + "Type": 7, + "Flags": 0 + }, + { + "Id": 884, + "Type": 7, + "Flags": 0 + }, + { + "Id": 885, + "Type": 7, + "Flags": 0 + }, + { + "Id": 886, + "Type": 7, + "Flags": 0 + }, + { + "Id": 887, + "Type": 7, + "Flags": 0 + }, + { + "Id": 888, + "Type": 8, + "Flags": 0 + }, + { + "Id": 889, + "Type": 8, + "Flags": 0 + }, + { + "Id": 890, + "Type": 8, + "Flags": 0 + }, + { + "Id": 891, + "Type": 8, + "Flags": 0 + }, + { + "Id": 892, + "Type": 8, + "Flags": 0 + }, + { + "Id": 893, + "Type": 8, + "Flags": 0 + }, + { + "Id": 894, + "Type": 7, + "Flags": 0 + }, + { + "Id": 895, + "Type": 7, + "Flags": 0 + }, + { + "Id": 896, + "Type": 7, + "Flags": 0 + }, + { + "Id": 897, + "Type": 7, + "Flags": 0 + }, + { + "Id": 898, + "Type": 7, + "Flags": 0 + }, + { + "Id": 899, + "Type": 7, + "Flags": 0 + }, + { + "Id": 900, + "Type": 8, + "Flags": 0 + }, + { + "Id": 901, + "Type": 8, + "Flags": 0 + }, + { + "Id": 902, + "Type": 7, + "Flags": 0 + }, + { + "Id": 903, + "Type": 7, + "Flags": 0 + }, + { + "Id": 904, + "Type": 7, + "Flags": 0 + }, + { + "Id": 905, + "Type": 7, + "Flags": 0 + }, + { + "Id": 906, + "Type": 7, + "Flags": 0 + }, + { + "Id": 907, + "Type": 7, + "Flags": 0 + }, + { + "Id": 908, + "Type": 7, + "Flags": 0 + }, + { + "Id": 909, + "Type": 7, + "Flags": 0 + }, + { + "Id": 910, + "Type": 7, + "Flags": 0 + }, + { + "Id": 911, + "Type": 7, + "Flags": 0 + }, + { + "Id": 912, + "Type": 25, + "Flags": 0 + }, + { + "Id": 913, + "Type": 25, + "Flags": 0 + }, + { + "Id": 916, + "Type": 25, + "Flags": 0 + }, + { + "Id": 917, + "Type": 25, + "Flags": 0 + }, + { + "Id": 918, + "Type": 22, + "Flags": 0 + }, + { + "Id": 919, + "Type": 22, + "Flags": 0 + }, + { + "Id": 920, + "Type": 7, + "Flags": 0 + }, + { + "Id": 921, + "Type": 7, + "Flags": 0 + }, + { + "Id": 922, + "Type": 7, + "Flags": 0 + }, + { + "Id": 923, + "Type": 7, + "Flags": 0 + }, + { + "Id": 924, + "Type": 8, + "Flags": 0 + }, + { + "Id": 925, + "Type": 8, + "Flags": 0 + }, + { + "Id": 926, + "Type": 22, + "Flags": 0 + }, + { + "Id": 927, + "Type": 22, + "Flags": 0 + }, + { + "Id": 928, + "Type": 7, + "Flags": 0 + }, + { + "Id": 929, + "Type": 7, + "Flags": 0 + }, + { + "Id": 930, + "Type": 7, + "Flags": 0 + }, + { + "Id": 931, + "Type": 7, + "Flags": 0 + }, + { + "Id": 932, + "Type": 22, + "Flags": 0 + }, + { + "Id": 933, + "Type": 22, + "Flags": 0 + }, + { + "Id": 934, + "Type": 7, + "Flags": 0 + }, + { + "Id": 935, + "Type": 7, + "Flags": 0 + }, + { + "Id": 936, + "Type": 7, + "Flags": 0 + }, + { + "Id": 937, + "Type": 7, + "Flags": 0 + }, + { + "Id": 938, + "Type": 8, + "Flags": 0 + }, + { + "Id": 939, + "Type": 8, + "Flags": 0 + }, + { + "Id": 940, + "Type": 7, + "Flags": 0 + }, + { + "Id": 941, + "Type": 7, + "Flags": 0 + }, + { + "Id": 942, + "Type": 7, + "Flags": 0 + }, + { + "Id": 943, + "Type": 7, + "Flags": 0 + }, + { + "Id": 944, + "Type": 36, + "Flags": 0 + }, + { + "Id": 945, + "Type": 36, + "Flags": 0 + }, + { + "Id": 946, + "Type": 22, + "Flags": 0 + }, + { + "Id": 947, + "Type": 22, + "Flags": 0 + }, + { + "Id": 948, + "Type": 22, + "Flags": 0 + }, + { + "Id": 949, + "Type": 22, + "Flags": 0 + }, + { + "Id": 952, + "Type": 33, + "Flags": 0 + }, + { + "Id": 953, + "Type": 33, + "Flags": 0 + }, + { + "Id": 954, + "Type": 33, + "Flags": 0 + }, + { + "Id": 955, + "Type": 33, + "Flags": 0 + }, + { + "Id": 960, + "Type": 33, + "Flags": 0 + }, + { + "Id": 961, + "Type": 33, + "Flags": 0 + }, + { + "Id": 962, + "Type": 33, + "Flags": 0 + }, + { + "Id": 963, + "Type": 33, + "Flags": 0 + }, + { + "Id": 964, + "Type": 29, + "Flags": 2 + }, + { + "Id": 965, + "Type": 29, + "Flags": 2 + }, + { + "Id": 966, + "Type": 29, + "Flags": 2 + }, + { + "Id": 967, + "Type": 29, + "Flags": 2 + }, + { + "Id": 968, + "Type": 28, + "Flags": 2 + }, + { + "Id": 969, + "Type": 28, + "Flags": 2 + }, + { + "Id": 970, + "Type": 28, + "Flags": 2 + }, + { + "Id": 971, + "Type": 28, + "Flags": 2 + }, + { + "Id": 972, + "Type": 28, + "Flags": 2 + }, + { + "Id": 973, + "Type": 28, + "Flags": 2 + }, + { + "Id": 988, + "Type": 8, + "Flags": 0 + }, + { + "Id": 989, + "Type": 8, + "Flags": 0 + }, + { + "Id": 990, + "Type": 22, + "Flags": 0 + }, + { + "Id": 991, + "Type": 22, + "Flags": 0 + }, + { + "Id": 992, + "Type": 8, + "Flags": 0 + }, + { + "Id": 993, + "Type": 8, + "Flags": 0 + }, + { + "Id": 998, + "Type": 8, + "Flags": 0 + }, + { + "Id": 999, + "Type": 8, + "Flags": 0 + }, + { + "Id": 1000, + "Type": 8, + "Flags": 0 + }, + { + "Id": 1001, + "Type": 8, + "Flags": 0 + }, + { + "Id": 1002, + "Type": 8, + "Flags": 0 + }, + { + "Id": 1003, + "Type": 8, + "Flags": 0 + }, + { + "Id": 1004, + "Type": 22, + "Flags": 0 + }, + { + "Id": 1005, + "Type": 22, + "Flags": 0 + }, + { + "Id": 1006, + "Type": 22, + "Flags": 0 + }, + { + "Id": 1007, + "Type": 22, + "Flags": 0 + }, + { + "Id": 1008, + "Type": 8, + "Flags": 0 + }, + { + "Id": 1009, + "Type": 8, + "Flags": 0 + }, + { + "Id": 1010, + "Type": 8, + "Flags": 0 + }, + { + "Id": 1011, + "Type": 8, + "Flags": 0 + }, + { + "Id": 1012, + "Type": 8, + "Flags": 0 + }, + { + "Id": 1013, + "Type": 8, + "Flags": 0 + }, + { + "Id": 1014, + "Type": 8, + "Flags": 0 + }, + { + "Id": 1015, + "Type": 8, + "Flags": 0 + }, + { + "Id": 1016, + "Type": 8, + "Flags": 0 + }, + { + "Id": 1017, + "Type": 8, + "Flags": 0 + }, + { + "Id": 1018, + "Type": 8, + "Flags": 0 + }, + { + "Id": 1019, + "Type": 8, + "Flags": 0 + }, + { + "Id": 1020, + "Type": 8, + "Flags": 0 + }, + { + "Id": 1021, + "Type": 8, + "Flags": 0 + }, + { + "Id": 1022, + "Type": 8, + "Flags": 0 + }, + { + "Id": 1023, + "Type": 8, + "Flags": 0 + }, + { + "Id": 1028, + "Type": 8, + "Flags": 0 + }, + { + "Id": 1029, + "Type": 8, + "Flags": 0 + }, + { + "Id": 1284, + "Type": 27, + "Flags": 2 + }, + { + "Id": 1285, + "Type": 27, + "Flags": 2 + }, + { + "Id": 1332, + "Type": 24, + "Flags": 2 + }, + { + "Id": 1449, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1450, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1453, + "Type": 21, + "Flags": 2 + }, + { + "Id": 1454, + "Type": 21, + "Flags": 2 + }, + { + "Id": 1455, + "Type": 21, + "Flags": 2 + }, + { + "Id": 1456, + "Type": 21, + "Flags": 2 + }, + { + "Id": 1457, + "Type": 21, + "Flags": 2 + }, + { + "Id": 1458, + "Type": 21, + "Flags": 2 + }, + { + "Id": 1459, + "Type": 21, + "Flags": 2 + }, + { + "Id": 1460, + "Type": 21, + "Flags": 2 + }, + { + "Id": 1461, + "Type": 21, + "Flags": 2 + }, + { + "Id": 1462, + "Type": 21, + "Flags": 2 + }, + { + "Id": 1463, + "Type": 21, + "Flags": 2 + }, + { + "Id": 1464, + "Type": 21, + "Flags": 2 + }, + { + "Id": 1465, + "Type": 21, + "Flags": 2 + }, + { + "Id": 1466, + "Type": 21, + "Flags": 2 + }, + { + "Id": 1467, + "Type": 21, + "Flags": 2 + }, + { + "Id": 1468, + "Type": 21, + "Flags": 2 + }, + { + "Id": 1469, + "Type": 21, + "Flags": 2 + }, + { + "Id": 1470, + "Type": 21, + "Flags": 2 + }, + { + "Id": 1473, + "Type": 21, + "Flags": 2 + }, + { + "Id": 1474, + "Type": 21, + "Flags": 2 + }, + { + "Id": 1475, + "Type": 21, + "Flags": 2 + }, + { + "Id": 1476, + "Type": 21, + "Flags": 2 + }, + { + "Id": 1477, + "Type": 21, + "Flags": 2 + }, + { + "Id": 1478, + "Type": 21, + "Flags": 2 + }, + { + "Id": 1479, + "Type": 21, + "Flags": 2 + }, + { + "Id": 1480, + "Type": 21, + "Flags": 2 + }, + { + "Id": 1481, + "Type": 21, + "Flags": 2 + }, + { + "Id": 1482, + "Type": 21, + "Flags": 2 + }, + { + "Id": 1483, + "Type": 21, + "Flags": 2 + }, + { + "Id": 1484, + "Type": 21, + "Flags": 2 + }, + { + "Id": 1495, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1496, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1497, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1498, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1499, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1500, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1501, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1502, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1503, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1504, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1515, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1516, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1517, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1518, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1519, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1520, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1521, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1522, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1523, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1524, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1525, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1526, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1543, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1544, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1545, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1546, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1563, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1564, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1565, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1566, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1567, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1568, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1569, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1570, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1571, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1572, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1573, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1574, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1583, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1584, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1585, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1586, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1587, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1588, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1589, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1590, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1591, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1592, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1593, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1594, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1613, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1614, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1615, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1616, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1617, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1618, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1633, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1634, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1635, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1636, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1637, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1638, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1639, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1640, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1645, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1646, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1647, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1648, + "Type": 21, + "Flags": 2 + }, + { + "Id": 1649, + "Type": 21, + "Flags": 2 + }, + { + "Id": 1650, + "Type": 21, + "Flags": 2 + }, + { + "Id": 1651, + "Type": 21, + "Flags": 2 + }, + { + "Id": 1652, + "Type": 21, + "Flags": 2 + }, + { + "Id": 1653, + "Type": 21, + "Flags": 2 + }, + { + "Id": 1654, + "Type": 21, + "Flags": 2 + }, + { + "Id": 1655, + "Type": 21, + "Flags": 2 + }, + { + "Id": 1656, + "Type": 21, + "Flags": 2 + }, + { + "Id": 1657, + "Type": 21, + "Flags": 2 + }, + { + "Id": 1658, + "Type": 21, + "Flags": 2 + }, + { + "Id": 1659, + "Type": 21, + "Flags": 2 + }, + { + "Id": 1660, + "Type": 21, + "Flags": 2 + }, + { + "Id": 1665, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1666, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1667, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1670, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1671, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1672, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1673, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1674, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1675, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1676, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1677, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1678, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1679, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1680, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1681, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1682, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1683, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1684, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1685, + "Type": 21, + "Flags": 0 + }, + { + "Id": 1724, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1725, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1726, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1727, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1728, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1729, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1730, + "Type": 8, + "Flags": 0 + }, + { + "Id": 1731, + "Type": 8, + "Flags": 0 + }, + { + "Id": 1732, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1733, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1734, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1735, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1736, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1737, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1738, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1739, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1740, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1741, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1742, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1743, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1744, + "Type": 7, + "Flags": 2 + }, + { + "Id": 1745, + "Type": 7, + "Flags": 2 + }, + { + "Id": 1746, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1747, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1748, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1749, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1752, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1753, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1754, + "Type": 7, + "Flags": 2 + }, + { + "Id": 1755, + "Type": 7, + "Flags": 2 + }, + { + "Id": 1756, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1757, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1758, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1759, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1760, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1761, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1762, + "Type": 8, + "Flags": 0 + }, + { + "Id": 1763, + "Type": 8, + "Flags": 0 + }, + { + "Id": 1764, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1765, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1766, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1767, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1768, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1769, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1770, + "Type": 20, + "Flags": 0 + }, + { + "Id": 1771, + "Type": 20, + "Flags": 0 + }, + { + "Id": 1772, + "Type": 20, + "Flags": 0 + }, + { + "Id": 1773, + "Type": 20, + "Flags": 0 + }, + { + "Id": 1774, + "Type": 20, + "Flags": 0 + }, + { + "Id": 1775, + "Type": 20, + "Flags": 0 + }, + { + "Id": 1776, + "Type": 20, + "Flags": 0 + }, + { + "Id": 1777, + "Type": 20, + "Flags": 0 + }, + { + "Id": 1778, + "Type": 20, + "Flags": 0 + }, + { + "Id": 1779, + "Type": 20, + "Flags": 0 + }, + { + "Id": 1780, + "Type": 20, + "Flags": 0 + }, + { + "Id": 1781, + "Type": 20, + "Flags": 0 + }, + { + "Id": 1782, + "Type": 20, + "Flags": 0 + }, + { + "Id": 1783, + "Type": 20, + "Flags": 0 + }, + { + "Id": 1784, + "Type": 20, + "Flags": 0 + }, + { + "Id": 1785, + "Type": 20, + "Flags": 0 + }, + { + "Id": 1786, + "Type": 20, + "Flags": 0 + }, + { + "Id": 1787, + "Type": 20, + "Flags": 0 + }, + { + "Id": 1788, + "Type": 20, + "Flags": 0 + }, + { + "Id": 1789, + "Type": 20, + "Flags": 0 + }, + { + "Id": 1790, + "Type": 20, + "Flags": 0 + }, + { + "Id": 1791, + "Type": 20, + "Flags": 0 + }, + { + "Id": 1792, + "Type": 20, + "Flags": 0 + }, + { + "Id": 1793, + "Type": 20, + "Flags": 0 + }, + { + "Id": 1899, + "Type": 4, + "Flags": 0 + }, + { + "Id": 1900, + "Type": 4, + "Flags": 0 + }, + { + "Id": 1901, + "Type": 4, + "Flags": 0 + }, + { + "Id": 1902, + "Type": 4, + "Flags": 0 + }, + { + "Id": 1903, + "Type": 4, + "Flags": 0 + }, + { + "Id": 1904, + "Type": 4, + "Flags": 0 + }, + { + "Id": 1905, + "Type": 4, + "Flags": 0 + }, + { + "Id": 1906, + "Type": 4, + "Flags": 0 + }, + { + "Id": 1907, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1908, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1909, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1910, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1911, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1912, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1913, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1914, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1915, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1916, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1917, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1918, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1919, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1920, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1921, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1922, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1923, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1924, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1925, + "Type": 8, + "Flags": 0 + }, + { + "Id": 1926, + "Type": 8, + "Flags": 0 + }, + { + "Id": 1927, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1928, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1929, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1930, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1931, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1932, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1933, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1934, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1935, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1936, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1937, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1938, + "Type": 7, + "Flags": 0 + }, + { + "Id": 1939, + "Type": 20, + "Flags": 0 + }, + { + "Id": 1940, + "Type": 20, + "Flags": 0 + }, + { + "Id": 1941, + "Type": 20, + "Flags": 0 + }, + { + "Id": 1942, + "Type": 20, + "Flags": 0 + }, + { + "Id": 1943, + "Type": 20, + "Flags": 0 + }, + { + "Id": 1944, + "Type": 20, + "Flags": 0 + }, + { + "Id": 1945, + "Type": 20, + "Flags": 0 + }, + { + "Id": 1946, + "Type": 20, + "Flags": 0 + }, + { + "Id": 1947, + "Type": 20, + "Flags": 0 + }, + { + "Id": 1948, + "Type": 20, + "Flags": 0 + }, + { + "Id": 1951, + "Type": 20, + "Flags": 0 + }, + { + "Id": 1952, + "Type": 20, + "Flags": 0 + }, + { + "Id": 1953, + "Type": 20, + "Flags": 0 + }, + { + "Id": 1954, + "Type": 20, + "Flags": 0 + }, + { + "Id": 1957, + "Type": 20, + "Flags": 0 + }, + { + "Id": 1958, + "Type": 20, + "Flags": 0 + }, + { + "Id": 1959, + "Type": 20, + "Flags": 0 + }, + { + "Id": 1960, + "Type": 20, + "Flags": 0 + } + ], + "PolyTypes": [ + { + "Id": 1, + "High": 49161, + "Low": 12290 + }, + { + "Id": 2, + "High": 604028938, + "Low": 12290 + }, + { + "Id": 3, + "High": 49163, + "Low": 12290 + }, + { + "Id": 4, + "High": 604028939, + "Low": 12290 + }, + { + "Id": 5, + "High": 10485772, + "Low": 14274 + }, + { + "Id": 6, + "High": 10485764, + "Low": 14274 + }, + { + "Id": 7, + "High": 12, + "Low": 14274 + }, + { + "Id": 8, + "High": 12, + "Low": 12290 + }, + { + "Id": 9, + "High": 0, + "Low": 12290 + }, + { + "Id": 10, + "High": 10485761, + "Low": 12290 + }, + { + "Id": 11, + "High": 10485763, + "Low": 12290 + }, + { + "Id": 12, + "High": 1, + "Low": 12290 + }, + { + "Id": 13, + "High": 10485765, + "Low": 14274 + }, + { + "Id": 14, + "High": 10485766, + "Low": 14274 + }, + { + "Id": 15, + "High": 10485767, + "Low": 14274 + }, + { + "Id": 16, + "High": 10485768, + "Low": 14274 + }, + { + "Id": 17, + "High": 2, + "Low": 12290 + }, + { + "Id": 18, + "High": 4194316, + "Low": 145354 + }, + { + "Id": 19, + "High": 6291468, + "Low": 14282 + }, + { + "Id": 20, + "High": 2146316, + "Low": 14274 + }, + { + "Id": 21, + "High": 12, + "Low": 26562 + }, + { + "Id": 22, + "High": 11, + "Low": 12290 + }, + { + "Id": 23, + "High": 12, + "Low": 14282 + }, + { + "Id": 24, + "High": 9, + "Low": 12298 + }, + { + "Id": 25, + "High": 12, + "Low": 12298 + }, + { + "Id": 26, + "High": 10, + "Low": 12298 + }, + { + "Id": 27, + "High": 9, + "Low": 12290 + }, + { + "Id": 28, + "High": 2097164, + "Low": 14282 + }, + { + "Id": 29, + "High": 2097164, + "Low": 14274 + }, + { + "Id": 30, + "High": 49164, + "Low": 14274 + }, + { + "Id": 31, + "High": 49164, + "Low": 12290 + }, + { + "Id": 32, + "High": 8388620, + "Low": 143370 + }, + { + "Id": 33, + "High": 8388620, + "Low": 145354 + }, + { + "Id": 34, + "High": 10, + "Low": 12290 + }, + { + "Id": 35, + "High": 13, + "Low": 12290 + }, + { + "Id": 36, + "High": 14, + "Low": 12290 + } + ], + "Cams": [ + { + "Data": 1966086, + "PositionIndex": 3 + }, + { + "Data": 1966086, + "PositionIndex": 6 + }, + { + "Data": 1966086, + "PositionIndex": 0 + }, + { + "Data": 1441795, + "PositionIndex": 4 + }, + { + "Data": 1441795, + "PositionIndex": 5 + }, + { + "Data": 1441795, + "PositionIndex": 7 + }, + { + "Data": 1441795, + "PositionIndex": 8 + }, + { + "Data": 1441795, + "PositionIndex": 2 + }, + { + "Data": 1441795, + "PositionIndex": 1 + }, + { + "Data": 4063232, + "PositionIndex": -1 + }, + { + "Data": 131072, + "PositionIndex": -1 + }, + { + "Data": 196608, + "PositionIndex": -1 + }, + { + "Data": 0, + "PositionIndex": -1 + }, + { + "Data": 65536, + "PositionIndex": -1 + }, + { + "Data": 262144, + "PositionIndex": -1 + }, + { + "Data": 3801088, + "PositionIndex": -1 + } + ] + } + }, + { + "File": { + "Name": "Scene 9", + "Start": "02BEB000", + "End": "02BFC610", + "RemapStart": null + }, + "Id": 9, + "TActors": [ + "01FF 0AFF 0023 FD66 009B 059A AFA5 013F", + "03FF 08FF 0023 0386 00AC FCF7 1F4A 013F", + "02FF 03FF 0023 0032 0014 0102 44FA 013F", + "01FF 02FF 0023 FF8B 0006 025C C000 013F", + "01FF 00FF 0023 009A 0007 076B 4000 013F", + "03FF 04FF 0023 FF05 0009 FE95 C000 013F", + "04FF 05FF 0023 FE4F 001A FC3D 9E94 013F", + "06FF 05FF 0023 FAC7 0084 FFAF 9C72 013F", + "08FF 09FF 0023 0383 00AC F9E8 CD83 013F", + "03FF 0BFF 0023 02FC FFE5 001B EAAB 013F", + "07FF 0AFF 002E FC9E 0050 04C0 20B6 003F", + "06FF 07FF 002E FAC4 0118 02D9 2000 0054" + ], + "Paths": [ + { + "Points": [ + [ + 603, + 206, + 1826 + ], + [ + 553, + 32, + 1882 + ], + [ + 511, + 32, + 2001 + ], + [ + 560, + 32, + 2154 + ], + [ + 192, + 32, + 2575 + ], + [ + -31, + 32, + 2587 + ] + ] + }, + { + "Points": [ + [ + 298, + 498, + -134 + ], + [ + 302, + 55, + 60 + ], + [ + 255, + 55, + 211 + ], + [ + -7, + 55, + 265 + ], + [ + -327, + 55, + 322 + ] + ] + }, + { + "Points": [ + [ + -638, + 452, + -1163 + ], + [ + -453, + 63, + -974 + ], + [ + -359, + 51, + -824 + ], + [ + -382, + 63, + -671 + ], + [ + -500, + 85, + -545 + ], + [ + -445, + 70, + -356 + ] + ] + }, + { + "Points": [ + [ + 1475, + 702, + -1248 + ], + [ + 1308, + 231, + -911 + ], + [ + 1080, + 231, + -644 + ] + ] + }, + { + "Points": [ + [ + 900, + 700, + -1694 + ], + [ + 1062, + 230, + -1560 + ], + [ + 1059, + 230, + -1483 + ], + [ + 1056, + 230, + -1402 + ], + [ + 969, + 230, + -1236 + ], + [ + 962, + 230, + -1166 + ], + [ + 955, + 230, + -1101 + ], + [ + 1024, + 230, + -996 + ], + [ + 1024, + 230, + -954 + ], + [ + 1024, + 230, + -954 + ] + ] + } + ], + "Rooms": [ + { + "File": { + "Name": "Scene 9, Room 0", + "Start": "02BFD000", + "End": "02C05660", + "RemapStart": null + }, + "Id": 0, + "Objects": [ + "006B", + "0016", + "011F", + "0114", + "0179", + "0024", + "015C", + "0190", + "00A8", + "0183", + "000E", + "0154", + "000D" + ], + "Actors": [ + "01C7 0144 0003 08E8 0000 0000 0000 0000", + "01C7 011F 0003 092A 0000 0000 0000 0000", + "0130 0258 0004 0725 0000 0000 0001 0D00", + "0111 00F8 000A 08EF 0000 0000 0000 4003", + "0112 00C3 0002 0A2D 0000 0000 0000 3FE8", + "0112 00A8 0002 09E5 0000 0000 0000 3FE8" + ] + }, + { + "File": { + "Name": "Scene 9, Room 1", + "Start": "02C06000", + "End": "02C12540", + "RemapStart": null + }, + "Id": 1, + "Objects": [ + "006B", + "0016", + "011F", + "0114", + "0179", + "0024", + "015C", + "0190", + "00A8", + "0183", + "000E", + "0154", + "000D" + ], + "Actors": [ + "0121 0004 FFF6 0422 0000 0000 0000 0000", + "001B FF7C FFF6 04E4 0000 0000 0000 FFFE", + "001B 008C FFF6 04E8 0000 0000 0000 FFFE", + "01C7 00CC 01A4 038E 0000 0000 0000 0001", + "01C7 010C 01A4 03D4 0000 0000 0000 0001", + "0111 0033 000B 02CE 0000 0000 0000 4A03", + "0111 0034 000A 0300 0000 0000 0000 4C03", + "012A 0140 0062 0374 1111 F333 02D8 2813", + "01B4 FFCD 0033 0348 4000 0000 0000 2801", + "01B4 0031 0033 0348 4000 0000 0000 2801", + "01B4 0031 0097 0348 4000 0000 0000 2801", + "01B4 FFCD 0097 0348 4000 0000 0000 2801" + ] + }, + { + "File": { + "Name": "Scene 9, Room 2", + "Start": "02C13000", + "End": "02C18AF0", + "RemapStart": null + }, + "Id": 2, + "Objects": [ + "006B", + "0016", + "011F", + "0114", + "0179", + "0024", + "015C", + "0190", + "00A8", + "0183", + "000E", + "0154", + "000D" + ], + "Actors": [ + "01C7 FEE0 000C 0192 0000 0000 0000 0000", + "01C7 FF2C 000D 018E 0000 0000 0000 0000", + "01C7 FEA1 000B 01A7 0000 0000 0000 0000", + "01C7 FEFE 000B 01CD 0000 0000 0000 0000", + "0130 012A 01C3 0040 0000 0000 0001 0D01", + "01C7 FFED 000D 00C1 0000 0000 0000 0000" + ] + }, + { + "File": { + "Name": "Scene 9, Room 3", + "Start": "02C19000", + "End": "02C21080", + "RemapStart": null + }, + "Id": 3, + "Objects": [ + "006B", + "0016", + "011F", + "0114", + "0179", + "0024", + "015C", + "0190", + "00A8", + "0183", + "000E", + "0154", + "000D" + ], + "Actors": [ + "01C7 0280 0000 FEC8 0000 0000 0000 0000", + "01C7 0266 0000 FEDC 0000 0000 0000 0000", + "01C7 0255 0000 FF00 0000 0000 0000 0000", + "01C7 0256 0000 FF2B 0000 0000 0000 0000", + "01C7 025F 0000 FF56 0000 0000 0000 0000", + "01AF 010F 0000 FE6F 0000 0000 0000 FF01", + "0121 FFDD 0000 FE67 0000 3BBC 0000 FFFF", + "0121 021D 0000 FE09 0000 E2D8 0000 FFFF", + "01C8 02B3 0007 FF27 0000 AE39 0000 0500", + "00EF FF7A 0000 FE32 0000 0000 0000 0021", + "00EF FF87 0000 FE5E 0000 0000 0000 0022", + "00EF FF72 0000 FE87 0000 0000 0000 0023", + "0111 01B1 0000 FD24 0000 0000 0000 4E12", + "0111 0239 0000 FF51 0000 0000 0000 5001", + "00EF 0241 00AC FCCE 0000 0000 0000 0029", + "0111 0209 0000 FF7D 0000 0000 0000 5203", + "00EF 0266 00AC FCFE 0000 0000 0000 002A", + "00EF 0290 00AC FD2E 0000 0000 0000 002B", + "0111 008A 0000 FD60 0000 0000 0000 5812" + ] + }, + { + "File": { + "Name": "Scene 9, Room 4", + "Start": "02C22000", + "End": "02C29670", + "RemapStart": null + }, + "Id": 4, + "Objects": [ + "006B", + "0016", + "011F", + "0114", + "0179", + "0024", + "015C", + "0190", + "00A8", + "0183", + "000E", + "0154", + "000D" + ], + "Actors": [ + "01C7 FEFB 001F FCB8 0000 0000 0000 0000", + "0130 FD82 01C1 FB75 0000 0000 0001 0D02", + "0112 FE70 0013 FE48 0000 0000 0000 3FE6", + "0112 FE49 0013 FE65 0000 0000 0000 3FE6", + "0112 FE1E 0014 FE7E 0000 0000 0000 3FE6" + ] + }, + { + "File": { + "Name": "Scene 9, Room 5", + "Start": "02C2A000", + "End": "02C32890", + "RemapStart": null + }, + "Id": 5, + "Objects": [ + "006B", + "0016", + "011F", + "0114", + "0179", + "0024", + "015C", + "0190", + "00A8", + "0183", + "000E", + "0154", + "000D" + ], + "Actors": [ + "00F0 F86A 0096 FD4E 0000 0000 0000 FFFF", + "01D1 F8EE 0000 FD49 0000 0000 0000 11FF", + "01C9 FB6E 0077 FAA2 0000 0000 0009 18FF", + "01AF F9E4 0029 FC43 0000 4000 0000 FF01", + "01AF FB7C 003D FD55 0000 40B6 0000 FF01", + "0013 F941 0155 FD14 0000 4000 0000 0004", + "0013 F947 0155 FD7F 0000 4000 0000 0004", + "0095 FB80 00B9 F987 0000 2889 0000 8A01", + "0095 FA8E 0000 FF17 0000 8000 0000 8A04", + "012A FD2E 00DB FCB3 8000 0000 0000 2613", + "01B4 FA47 0032 FF06 0000 0000 4000 2601", + "01B4 FAAC 0032 FF06 0000 0000 4000 2601", + "01B4 FA8E 0064 FF06 0000 0000 0000 2601", + "01B4 FA8E 0032 FEFC 4000 0000 0000 2601", + "00EF FA62 0078 FF65 0000 0000 0000 002D", + "00EF FA96 0078 FF61 0000 0000 0000 002E", + "00EF FAC9 0078 FF61 0000 0000 0000 002F", + "01C7 FD05 00AE FC80 0000 0000 0000 0002" + ] + }, + { + "File": { + "Name": "Scene 9, Room 6", + "Start": "02C33000", + "End": "02C37260", + "RemapStart": null + }, + "Id": 6, + "Objects": [ + "006B", + "0016", + "011F", + "0114", + "0179", + "0024", + "015C", + "0190", + "00A8", + "0183", + "000E", + "0154", + "000D" + ], + "Actors": [ + "01C7 FA31 0162 0239 0000 0000 0000 0001", + "01C7 F9D1 0193 0261 0000 0000 0000 0001", + "01C7 FA0C 01BB 0146 0000 0000 0000 0001", + "0013 F9DB 0175 01FA 0000 A222 0000 0004", + "0013 FACE 015C 009F 0000 3333 0000 0004", + "0111 FAB8 0111 027F 0000 0000 0000 5412", + "0111 FA8C 010B 0254 0000 0000 0000 560E" + ] + }, + { + "File": { + "Name": "Scene 9, Room 7", + "Start": "02C38000", + "End": "02C3D8F0", + "RemapStart": null + }, + "Id": 7, + "Objects": [ + "006B", + "008A", + "000E", + "0090", + "0032" + ], + "Actors": [ + "01C8 FC80 0116 0498 C000 2000 0000 FF02", + "0048 FBAC 0122 0294 0000 0000 0000 0008", + "000A FC13 0118 042C 0000 216C 0000 15C2", + "0002 FBB8 011A 03C4 0000 9A50 0000 FFFF" + ] + }, + { + "File": { + "Name": "Scene 9, Room 8", + "Start": "02C3E000", + "End": "02C3F950", + "RemapStart": null + }, + "Id": 8, + "Objects": [ + "006B", + "0016", + "011F", + "0114", + "0179", + "0024", + "015C", + "0190", + "00A8", + "0183", + "000E", + "0154", + "000D" + ], + "Actors": [ + "0121 0455 00AC FB43 0000 0000 0000 0000", + "0121 04C3 00AC FBCC 0000 0000 0000 0000", + "0130 05BE 02C3 FB25 0000 0000 0001 0D03", + "0130 0381 02AF F969 0000 0000 0001 0D04", + "0112 0432 00AC FD2E 0000 0000 0000 3FE7", + "0112 0456 00AC FD70 0000 0000 0000 3FE7" + ] + }, + { + "File": { + "Name": "Scene 9, Room 9", + "Start": "02C40000", + "End": "02C48650", + "RemapStart": null + }, + "Id": 9, + "Objects": [ + "006B", + "0016", + "011F", + "0114", + "0179", + "0024", + "015C", + "0190", + "00A8", + "0183", + "000E", + "0154", + "000D" + ], + "Actors": [ + "0121 0358 00B6 F695 0000 0000 0000 0000", + "0121 0129 0106 F60F 0000 0EEF 0000 0000", + "00F0 025A 00E2 F65C 0000 0000 0000 FFFF", + "01D1 010C 0070 F7EF 0000 0000 0000 10FF", + "01D1 0115 0070 F76C 0000 0CCD 0000 10FF", + "0121 02C8 0016 F6FF 0000 0000 0000 FFFF", + "01C7 02E6 0016 F660 0000 0000 0000 0000", + "01C7 030F 0016 F66B 0000 0000 0000 0000", + "01C7 0387 0016 F6CF 0000 0000 0000 0000", + "01C7 03A1 0016 F701 0000 0000 0000 0000", + "0111 0386 0016 F560 0000 0000 0000 6E0B", + "0111 01C3 0016 F55A 0000 0000 0000 6C0B", + "000A 0113 0106 F5D0 0000 8EEF 0000 0800", + "0015 04AC 00B7 F749 0000 0000 0000 0106", + "0095 0178 00D5 F800 0000 0000 0000 8A02", + "012A 0294 FFCB F754 0000 0000 0000 2713", + "01B4 04A8 00DE F744 0000 1C72 0000 2701", + "01B4 04A8 0106 F744 0000 1C72 0000 2701", + "00EF 0178 00D5 F800 0000 0000 0000 003B" + ] + }, + { + "File": { + "Name": "Scene 9, Room 10", + "Start": "02C49000", + "End": "02C4D3E0", + "RemapStart": null + }, + "Id": 10, + "Objects": [ + "006B", + "0016", + "011F", + "0114", + "0179", + "0024", + "015C", + "0190", + "00A8", + "0183", + "000E", + "0154", + "000D" + ], + "Actors": [] + }, + { + "File": { + "Name": "Scene 9, Room 11", + "Start": "02C4E000", + "End": "02C53900", + "RemapStart": null + }, + "Id": 11, + "Objects": [ + "006B", + "0016", + "011F", + "0114", + "0179", + "0024", + "015C", + "0190", + "00A8", + "0183", + "000E", + "0154", + "000D" + ], + "Actors": [ + "00EF 04B1 FFB9 0288 0000 0000 0000 02FF", + "00F0 05D3 FFEA 019D 0000 0000 0000 FFFF", + "01C7 0541 FFB9 0104 0000 0000 0000 0000", + "01C7 055F FFB9 0123 0000 0000 0000 0000", + "01C7 0540 FFB9 014C 0000 0000 0000 0000", + "01C7 052D FFB9 0171 0000 0000 0000 0000", + "01C7 0529 FFB9 019A 0000 0000 0000 0000", + "01C7 052F FFB9 01BA 0000 0000 0000 0000", + "01C7 0536 FFB9 01D9 0000 0000 0000 0000", + "01C7 047D FFB9 0040 0000 0000 0000 0000", + "01C7 0492 FFB9 0061 0000 0000 0000 0000", + "01AF 04DE FFB9 016B 0000 0000 0000 FF00", + "01AF 04D9 FFB9 0075 0000 0000 0000 FF00", + "0095 0463 001D 004F 0000 1D28 0000 0000", + "000A 04B2 FFB9 0289 0000 0000 0003 B821", + "012A 045A FFA8 0068 0000 0000 0000 0303", + "011B 05D4 FFC3 019E 0014 0000 0014 4689" + ] + } + ], + "ColDelta": { + "IsLarger": false, + "Polys": [ + { + "Id": 678, + "Type": 0, + "Flags": 2 + }, + { + "Id": 679, + "Type": 0, + "Flags": 2 + }, + { + "Id": 680, + "Type": 0, + "Flags": 2 + }, + { + "Id": 681, + "Type": 0, + "Flags": 2 + }, + { + "Id": 682, + "Type": 0, + "Flags": 2 + }, + { + "Id": 683, + "Type": 0, + "Flags": 2 + }, + { + "Id": 684, + "Type": 0, + "Flags": 2 + }, + { + "Id": 685, + "Type": 0, + "Flags": 2 + }, + { + "Id": 686, + "Type": 0, + "Flags": 2 + }, + { + "Id": 687, + "Type": 0, + "Flags": 2 + }, + { + "Id": 688, + "Type": 0, + "Flags": 2 + }, + { + "Id": 689, + "Type": 0, + "Flags": 2 + }, + { + "Id": 690, + "Type": 0, + "Flags": 2 + }, + { + "Id": 691, + "Type": 0, + "Flags": 2 + }, + { + "Id": 692, + "Type": 0, + "Flags": 2 + }, + { + "Id": 693, + "Type": 0, + "Flags": 2 + }, + { + "Id": 694, + "Type": 0, + "Flags": 2 + }, + { + "Id": 695, + "Type": 0, + "Flags": 2 + }, + { + "Id": 696, + "Type": 0, + "Flags": 2 + }, + { + "Id": 697, + "Type": 0, + "Flags": 2 + }, + { + "Id": 1490, + "Type": 30, + "Flags": 0 + }, + { + "Id": 1491, + "Type": 30, + "Flags": 0 + }, + { + "Id": 1598, + "Type": 39, + "Flags": 0 + }, + { + "Id": 1599, + "Type": 39, + "Flags": 0 + }, + { + "Id": 1600, + "Type": 39, + "Flags": 0 + }, + { + "Id": 1601, + "Type": 39, + "Flags": 0 + }, + { + "Id": 1602, + "Type": 39, + "Flags": 0 + }, + { + "Id": 1603, + "Type": 39, + "Flags": 0 + }, + { + "Id": 1606, + "Type": 39, + "Flags": 0 + }, + { + "Id": 1607, + "Type": 39, + "Flags": 0 + }, + { + "Id": 1608, + "Type": 39, + "Flags": 0 + }, + { + "Id": 1609, + "Type": 39, + "Flags": 0 + }, + { + "Id": 1610, + "Type": 39, + "Flags": 0 + }, + { + "Id": 1611, + "Type": 39, + "Flags": 0 + }, + { + "Id": 1614, + "Type": 39, + "Flags": 0 + }, + { + "Id": 1615, + "Type": 39, + "Flags": 0 + }, + { + "Id": 1616, + "Type": 39, + "Flags": 0 + }, + { + "Id": 1617, + "Type": 39, + "Flags": 0 + }, + { + "Id": 1622, + "Type": 40, + "Flags": 0 + }, + { + "Id": 1623, + "Type": 40, + "Flags": 0 + }, + { + "Id": 1624, + "Type": 41, + "Flags": 0 + }, + { + "Id": 1625, + "Type": 41, + "Flags": 0 + }, + { + "Id": 1626, + "Type": 41, + "Flags": 0 + }, + { + "Id": 1627, + "Type": 41, + "Flags": 0 + }, + { + "Id": 1628, + "Type": 41, + "Flags": 0 + }, + { + "Id": 1629, + "Type": 41, + "Flags": 0 + }, + { + "Id": 1630, + "Type": 41, + "Flags": 0 + }, + { + "Id": 1631, + "Type": 41, + "Flags": 0 + }, + { + "Id": 1632, + "Type": 41, + "Flags": 0 + }, + { + "Id": 1633, + "Type": 41, + "Flags": 0 + }, + { + "Id": 1634, + "Type": 41, + "Flags": 0 + }, + { + "Id": 1635, + "Type": 41, + "Flags": 0 + }, + { + "Id": 1636, + "Type": 41, + "Flags": 0 + }, + { + "Id": 1637, + "Type": 41, + "Flags": 0 + }, + { + "Id": 1638, + "Type": 41, + "Flags": 0 + }, + { + "Id": 1639, + "Type": 41, + "Flags": 0 + }, + { + "Id": 1640, + "Type": 41, + "Flags": 0 + }, + { + "Id": 1641, + "Type": 41, + "Flags": 0 + }, + { + "Id": 1642, + "Type": 41, + "Flags": 0 + }, + { + "Id": 1643, + "Type": 41, + "Flags": 0 + }, + { + "Id": 1644, + "Type": 41, + "Flags": 0 + }, + { + "Id": 1645, + "Type": 41, + "Flags": 0 + }, + { + "Id": 1646, + "Type": 41, + "Flags": 0 + }, + { + "Id": 1647, + "Type": 41, + "Flags": 0 + }, + { + "Id": 1648, + "Type": 41, + "Flags": 0 + }, + { + "Id": 1649, + "Type": 41, + "Flags": 0 + }, + { + "Id": 1650, + "Type": 41, + "Flags": 0 + }, + { + "Id": 1651, + "Type": 41, + "Flags": 0 + }, + { + "Id": 1652, + "Type": 41, + "Flags": 0 + }, + { + "Id": 1653, + "Type": 41, + "Flags": 0 + }, + { + "Id": 1654, + "Type": 41, + "Flags": 0 + }, + { + "Id": 1655, + "Type": 41, + "Flags": 0 + }, + { + "Id": 1656, + "Type": 41, + "Flags": 0 + }, + { + "Id": 1657, + "Type": 41, + "Flags": 0 + }, + { + "Id": 1658, + "Type": 41, + "Flags": 0 + }, + { + "Id": 1659, + "Type": 41, + "Flags": 0 + }, + { + "Id": 1660, + "Type": 41, + "Flags": 0 + }, + { + "Id": 1661, + "Type": 41, + "Flags": 0 + }, + { + "Id": 1662, + "Type": 41, + "Flags": 0 + }, + { + "Id": 1663, + "Type": 41, + "Flags": 0 + }, + { + "Id": 1664, + "Type": 41, + "Flags": 0 + }, + { + "Id": 1665, + "Type": 41, + "Flags": 0 + }, + { + "Id": 1666, + "Type": 41, + "Flags": 0 + }, + { + "Id": 1667, + "Type": 41, + "Flags": 0 + }, + { + "Id": 1686, + "Type": 40, + "Flags": 0 + }, + { + "Id": 1687, + "Type": 40, + "Flags": 0 + }, + { + "Id": 1688, + "Type": 40, + "Flags": 0 + }, + { + "Id": 1689, + "Type": 40, + "Flags": 0 + }, + { + "Id": 1693, + "Type": 42, + "Flags": 2 + }, + { + "Id": 1733, + "Type": 42, + "Flags": 2 + }, + { + "Id": 2002, + "Type": 43, + "Flags": 0 + }, + { + "Id": 2022, + "Type": 44, + "Flags": 0 + }, + { + "Id": 2023, + "Type": 44, + "Flags": 0 + }, + { + "Id": 2024, + "Type": 44, + "Flags": 0 + }, + { + "Id": 2056, + "Type": 44, + "Flags": 0 + }, + { + "Id": 2057, + "Type": 44, + "Flags": 0 + }, + { + "Id": 2066, + "Type": 43, + "Flags": 0 + }, + { + "Id": 2067, + "Type": 43, + "Flags": 0 + }, + { + "Id": 2071, + "Type": 43, + "Flags": 0 + }, + { + "Id": 2082, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2083, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2088, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2089, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2090, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2091, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2092, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2093, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2094, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2095, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2096, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2097, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2098, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2103, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2104, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2113, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2114, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2115, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2116, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2117, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2118, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2119, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2120, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2121, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2122, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2123, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2124, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2125, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2126, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2127, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2128, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2129, + "Type": 46, + "Flags": 0 + }, + { + "Id": 2130, + "Type": 46, + "Flags": 0 + }, + { + "Id": 2131, + "Type": 47, + "Flags": 0 + }, + { + "Id": 2132, + "Type": 47, + "Flags": 0 + }, + { + "Id": 2133, + "Type": 47, + "Flags": 0 + }, + { + "Id": 2134, + "Type": 47, + "Flags": 0 + }, + { + "Id": 2135, + "Type": 47, + "Flags": 0 + }, + { + "Id": 2136, + "Type": 47, + "Flags": 0 + }, + { + "Id": 2137, + "Type": 47, + "Flags": 0 + }, + { + "Id": 2138, + "Type": 47, + "Flags": 0 + }, + { + "Id": 2139, + "Type": 47, + "Flags": 0 + }, + { + "Id": 2140, + "Type": 47, + "Flags": 0 + }, + { + "Id": 2141, + "Type": 47, + "Flags": 0 + }, + { + "Id": 2142, + "Type": 47, + "Flags": 0 + }, + { + "Id": 2143, + "Type": 47, + "Flags": 0 + }, + { + "Id": 2144, + "Type": 47, + "Flags": 0 + }, + { + "Id": 2304, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2305, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2306, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2307, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2308, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2309, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2310, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2311, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2312, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2313, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2314, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2315, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2316, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2317, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2318, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2319, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2320, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2321, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2322, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2323, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2324, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2325, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2326, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2327, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2328, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2329, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2330, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2331, + "Type": 45, + "Flags": 0 + }, + { + "Id": 2332, + "Type": 44, + "Flags": 0 + }, + { + "Id": 2333, + "Type": 44, + "Flags": 0 + }, + { + "Id": 2337, + "Type": 48, + "Flags": 0 + }, + { + "Id": 2338, + "Type": 48, + "Flags": 0 + }, + { + "Id": 2341, + "Type": 49, + "Flags": 0 + }, + { + "Id": 2342, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2343, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2344, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2345, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2346, + "Type": 50, + "Flags": 0 + }, + { + "Id": 2384, + "Type": 44, + "Flags": 0 + }, + { + "Id": 2385, + "Type": 44, + "Flags": 0 + }, + { + "Id": 2386, + "Type": 44, + "Flags": 0 + }, + { + "Id": 2387, + "Type": 44, + "Flags": 0 }, - "Id": 1, - "Objects": [ - "006B", - "0016", - "011F", - "0114", - "0179", - "0024", - "015C", - "0190", - "00A8", - "0183", - "000E", - "0154", - "000D" - ], - "Actors": [ - "0121 0004 FFF6 0422 0000 0000 0000 0000", - "001B FF7C FFF6 04E4 0000 0000 0000 FFFE", - "001B 008C FFF6 04E8 0000 0000 0000 FFFE", - "01C7 00CC 01A4 038E 0000 0000 0000 0001", - "01C7 010C 01A4 03D4 0000 0000 0000 0001", - "0111 0033 000B 02CE 0000 0000 0000 4A03", - "0111 0034 000A 0300 0000 0000 0000 4C03", - "012A 0140 0062 0374 1111 F333 02D8 2813", - "01B4 FFCD 0033 0348 4000 0000 0000 2801", - "01B4 0031 0033 0348 4000 0000 0000 2801", - "01B4 0031 0097 0348 4000 0000 0000 2801", - "01B4 FFCD 0097 0348 4000 0000 0000 2801" - ] - }, - { - "File": { - "Name": "Scene 9, Room 2", - "Start": "02C13000", - "End": "02C18AF0", - "RemapStart": null + { + "Id": 2475, + "Type": 51, + "Flags": 0 }, - "Id": 2, - "Objects": [ - "006B", - "0016", - "011F", - "0114", - "0179", - "0024", - "015C", - "0190", - "00A8", - "0183", - "000E", - "0154", - "000D" - ], - "Actors": [ - "01C7 FEE0 000C 0192 0000 0000 0000 0000", - "01C7 FF2C 000D 018E 0000 0000 0000 0000", - "01C7 FEA1 000B 01A7 0000 0000 0000 0000", - "01C7 FEFE 000B 01CD 0000 0000 0000 0000", - "0130 012A 01C3 0040 0000 0000 0001 0D01", - "01C7 FFED 000D 00C1 0000 0000 0000 0000" - ] - }, - { - "File": { - "Name": "Scene 9, Room 3", - "Start": "02C19000", - "End": "02C21080", - "RemapStart": null + { + "Id": 2487, + "Type": 52, + "Flags": 0 }, - "Id": 3, - "Objects": [ - "006B", - "0016", - "011F", - "0114", - "0179", - "0024", - "015C", - "0190", - "00A8", - "0183", - "000E", - "0154", - "000D" - ], - "Actors": [ - "01C7 0280 0000 FEC8 0000 0000 0000 0000", - "01C7 0266 0000 FEDC 0000 0000 0000 0000", - "01C7 0255 0000 FF00 0000 0000 0000 0000", - "01C7 0256 0000 FF2B 0000 0000 0000 0000", - "01C7 025F 0000 FF56 0000 0000 0000 0000", - "01AF 010F 0000 FE6F 0000 0000 0000 FF01", - "0121 FFDD 0000 FE67 0000 3BBC 0000 FFFF", - "0121 021D 0000 FE09 0000 E2D8 0000 FFFF", - "01C8 02B3 0007 FF27 0000 AE39 0000 0500", - "00EF FF7A 0000 FE32 0000 0000 0000 0021", - "00EF FF87 0000 FE5E 0000 0000 0000 0022", - "00EF FF72 0000 FE87 0000 0000 0000 0023", - "0111 01B1 0000 FD24 0000 0000 0000 4E12", - "0111 0239 0000 FF51 0000 0000 0000 5001", - "00EF 0241 00AC FCCE 0000 0000 0000 0029", - "0111 0209 0000 FF7D 0000 0000 0000 5203", - "00EF 0266 00AC FCFE 0000 0000 0000 002A", - "00EF 0290 00AC FD2E 0000 0000 0000 002B", - "0111 008A 0000 FD60 0000 0000 0000 5812" - ] - }, - { - "File": { - "Name": "Scene 9, Room 4", - "Start": "02C22000", - "End": "02C29670", - "RemapStart": null + { + "Id": 2488, + "Type": 53, + "Flags": 0 }, - "Id": 4, - "Objects": [ - "006B", - "0016", - "011F", - "0114", - "0179", - "0024", - "015C", - "0190", - "00A8", - "0183", - "000E", - "0154", - "000D" - ], - "Actors": [ - "01C7 FEFB 001F FCB8 0000 0000 0000 0000", - "0130 FD82 01C1 FB75 0000 0000 0001 0D02", - "0112 FE70 0013 FE48 0000 0000 0000 3FE6", - "0112 FE49 0013 FE65 0000 0000 0000 3FE6", - "0112 FE1E 0014 FE7E 0000 0000 0000 3FE6" - ] - }, - { - "File": { - "Name": "Scene 9, Room 5", - "Start": "02C2A000", - "End": "02C32890", - "RemapStart": null + { + "Id": 2489, + "Type": 53, + "Flags": 0 }, - "Id": 5, - "Objects": [ - "006B", - "0016", - "011F", - "0114", - "0179", - "0024", - "015C", - "0190", - "00A8", - "0183", - "000E", - "0154", - "000D" - ], - "Actors": [ - "00F0 F86A 0096 FD4E 0000 0000 0000 FFFF", - "01D1 F8EE 0000 FD49 0000 0000 0000 11FF", - "01C9 FB6E 0077 FAA2 0000 0000 0009 18FF", - "01AF F9E4 0029 FC43 0000 4000 0000 FF01", - "01AF FB7C 003D FD55 0000 40B6 0000 FF01", - "0013 F941 0155 FD14 0000 4000 0000 0004", - "0013 F947 0155 FD7F 0000 4000 0000 0004", - "0095 FB80 00B9 F987 0000 2889 0000 8A01", - "0095 FA8E 0000 FF17 0000 8000 0000 8A04", - "012A FD2E 00DB FCB3 8000 0000 0000 2613", - "01B4 FA47 0032 FF06 0000 0000 4000 2601", - "01B4 FAAC 0032 FF06 0000 0000 4000 2601", - "01B4 FA8E 0064 FF06 0000 0000 0000 2601", - "01B4 FA8E 0032 FEFC 4000 0000 0000 2601", - "00EF FA62 0078 FF65 0000 0000 0000 002D", - "00EF FA96 0078 FF61 0000 0000 0000 002E", - "00EF FAC9 0078 FF61 0000 0000 0000 002F", - "01C7 FD05 00AE FC80 0000 0000 0000 0002" - ] - }, - { - "File": { - "Name": "Scene 9, Room 6", - "Start": "02C33000", - "End": "02C37260", - "RemapStart": null + { + "Id": 2490, + "Type": 53, + "Flags": 0 + }, + { + "Id": 2491, + "Type": 53, + "Flags": 0 + }, + { + "Id": 2492, + "Type": 53, + "Flags": 0 + }, + { + "Id": 2493, + "Type": 53, + "Flags": 0 + }, + { + "Id": 2573, + "Type": 54, + "Flags": 0 + }, + { + "Id": 2574, + "Type": 54, + "Flags": 0 + }, + { + "Id": 2575, + "Type": 54, + "Flags": 0 + }, + { + "Id": 2576, + "Type": 54, + "Flags": 0 + }, + { + "Id": 2577, + "Type": 54, + "Flags": 0 + }, + { + "Id": 2578, + "Type": 54, + "Flags": 0 + }, + { + "Id": 2579, + "Type": 54, + "Flags": 0 + }, + { + "Id": 2580, + "Type": 54, + "Flags": 0 + }, + { + "Id": 2593, + "Type": 54, + "Flags": 0 + }, + { + "Id": 2594, + "Type": 54, + "Flags": 0 + }, + { + "Id": 2595, + "Type": 54, + "Flags": 0 + }, + { + "Id": 2665, + "Type": 54, + "Flags": 0 + }, + { + "Id": 2666, + "Type": 54, + "Flags": 0 + }, + { + "Id": 2667, + "Type": 54, + "Flags": 0 + }, + { + "Id": 2668, + "Type": 54, + "Flags": 0 + }, + { + "Id": 2669, + "Type": 54, + "Flags": 0 + }, + { + "Id": 2670, + "Type": 54, + "Flags": 0 + } + ], + "PolyTypes": [ + { + "Id": 0, + "High": 0, + "Low": 18376 + }, + { + "Id": 1, + "High": 1, + "Low": 16402 + }, + { + "Id": 2, + "High": 49153, + "Low": 51272 + }, + { + "Id": 3, + "High": 49153, + "Low": 16386 + }, + { + "Id": 4, + "High": 49153, + "Low": 16392 + }, + { + "Id": 5, + "High": 49154, + "Low": 16392 + }, + { + "Id": 6, + "High": 49153, + "Low": 16402 + }, + { + "Id": 7, + "High": 1, + "Low": 16386 + }, + { + "Id": 8, + "High": 49409, + "Low": 802818 + }, + { + "Id": 9, + "High": 0, + "Low": 16392 + }, + { + "Id": 10, + "High": 1, + "Low": 16408 + }, + { + "Id": 11, + "High": 40963, + "Low": 51340 + }, + { + "Id": 12, + "High": 3, + "Low": 51352 + }, + { + "Id": 13, + "High": 3, + "Low": 16536 + }, + { + "Id": 14, + "High": 3, + "Low": 51336 + }, + { + "Id": 15, + "High": 3, + "Low": 16520 + }, + { + "Id": 16, + "High": 2, + "Low": 16392 + }, + { + "Id": 17, + "High": 2, + "Low": 51272 + }, + { + "Id": 18, + "High": 2, + "Low": 16456 + }, + { + "Id": 19, + "High": 40962, + "Low": 16396 + }, + { + "Id": 20, + "High": 2, + "Low": 16520 }, - "Id": 6, - "Objects": [ - "006B", - "0016", - "011F", - "0114", - "0179", - "0024", - "015C", - "0190", - "00A8", - "0183", - "000E", - "0154", - "000D" - ], - "Actors": [ - "01C7 FA31 0162 0239 0000 0000 0000 0001", - "01C7 F9D1 0193 0261 0000 0000 0000 0001", - "01C7 FA0C 01BB 0146 0000 0000 0000 0001", - "0013 F9DB 0175 01FA 0000 A222 0000 0004", - "0013 FACE 015C 009F 0000 3333 0000 0004", - "0111 FAB8 0111 027F 0000 0000 0000 5412", - "0111 FA8C 010B 0254 0000 0000 0000 560E" - ] - }, - { - "File": { - "Name": "Scene 9, Room 7", - "Start": "02C38000", - "End": "02C3D8F0", - "RemapStart": null + { + "Id": 21, + "High": 2, + "Low": 51336 }, - "Id": 7, - "Objects": [ - "006B", - "008A", - "000E", - "0090", - "0032" - ], - "Actors": [ - "01C8 FC80 0116 0498 C000 2000 0000 FF02", - "0048 FBAC 0122 0294 0000 0000 0000 0008", - "000A FC13 0118 042C 0000 216C 0000 15C2", - "0002 FBB8 011A 03C4 0000 9A50 0000 FFFF" - ] - }, - { - "File": { - "Name": "Scene 9, Room 8", - "Start": "02C3E000", - "End": "02C3F950", - "RemapStart": null + { + "Id": 22, + "High": 40962, + "Low": 16460 }, - "Id": 8, - "Objects": [ - "006B", - "0016", - "011F", - "0114", - "0179", - "0024", - "015C", - "0190", - "00A8", - "0183", - "000E", - "0154", - "000D" - ], - "Actors": [ - "0121 0455 00AC FB43 0000 0000 0000 0000", - "0121 04C3 00AC FBCC 0000 0000 0000 0000", - "0130 05BE 02C3 FB25 0000 0000 0001 0D03", - "0130 0381 02AF F969 0000 0000 0001 0D04", - "0112 0432 00AC FD2E 0000 0000 0000 3FE7", - "0112 0456 00AC FD70 0000 0000 0000 3FE7" - ] - }, - { - "File": { - "Name": "Scene 9, Room 9", - "Start": "02C40000", - "End": "02C48650", - "RemapStart": null + { + "Id": 23, + "High": 2, + "Low": 51464 }, - "Id": 9, - "Objects": [ - "006B", - "0016", - "011F", - "0114", - "0179", - "0024", - "015C", - "0190", - "00A8", - "0183", - "000E", - "0154", - "000D" - ], - "Actors": [ - "0121 0358 00B6 F695 0000 0000 0000 0000", - "0121 0129 0106 F60F 0000 0EEF 0000 0000", - "00F0 025A 00E2 F65C 0000 0000 0000 FFFF", - "01D1 010C 0070 F7EF 0000 0000 0000 10FF", - "01D1 0115 0070 F76C 0000 0CCD 0000 10FF", - "0121 02C8 0016 F6FF 0000 0000 0000 FFFF", - "01C7 02E6 0016 F660 0000 0000 0000 0000", - "01C7 030F 0016 F66B 0000 0000 0000 0000", - "01C7 0387 0016 F6CF 0000 0000 0000 0000", - "01C7 03A1 0016 F701 0000 0000 0000 0000", - "0111 0386 0016 F560 0000 0000 0000 6E0B", - "0111 01C3 0016 F55A 0000 0000 0000 6C0B", - "000A 0113 0106 F5D0 0000 8EEF 0000 0800", - "0015 04AC 00B7 F749 0000 0000 0000 0106", - "0095 0178 00D5 F800 0000 0000 0000 8A02", - "012A 0294 FFCB F754 0000 0000 0000 2713", - "01B4 04A8 00DE F744 0000 1C72 0000 2701", - "01B4 04A8 0106 F744 0000 1C72 0000 2701", - "00EF 0178 00D5 F800 0000 0000 0000 003B" - ] - }, - { - "File": { - "Name": "Scene 9, Room 10", - "Start": "02C49000", - "End": "02C4D3E0", - "RemapStart": null + { + "Id": 24, + "High": 2, + "Low": 16648 }, - "Id": 10, - "Objects": [ - "006B", - "0016", - "011F", - "0114", - "0179", - "0024", - "015C", - "0190", - "00A8", - "0183", - "000E", - "0154", - "000D" - ], - "Actors": [] - }, - { - "File": { - "Name": "Scene 9, Room 11", - "Start": "02C4E000", - "End": "02C53900", - "RemapStart": null + { + "Id": 25, + "High": 2, + "Low": 16408 }, - "Id": 11, - "Objects": [ - "006B", - "0016", - "011F", - "0114", - "0179", - "0024", - "015C", - "0190", - "00A8", - "0183", - "000E", - "0154", - "000D" - ], - "Actors": [ - "00EF 04B1 FFB9 0288 0000 0000 0000 02FF", - "00F0 05D3 FFEA 019D 0000 0000 0000 FFFF", - "01C7 0541 FFB9 0104 0000 0000 0000 0000", - "01C7 055F FFB9 0123 0000 0000 0000 0000", - "01C7 0540 FFB9 014C 0000 0000 0000 0000", - "01C7 052D FFB9 0171 0000 0000 0000 0000", - "01C7 0529 FFB9 019A 0000 0000 0000 0000", - "01C7 052F FFB9 01BA 0000 0000 0000 0000", - "01C7 0536 FFB9 01D9 0000 0000 0000 0000", - "01C7 047D FFB9 0040 0000 0000 0000 0000", - "01C7 0492 FFB9 0061 0000 0000 0000 0000", - "01AF 04DE FFB9 016B 0000 0000 0000 FF00", - "01AF 04D9 FFB9 0075 0000 0000 0000 FF00", - "0095 0463 001D 004F 0000 1D28 0000 0000", - "000A 04B2 FFB9 0289 0000 0000 0003 B821", - "012A 045A FFA8 0068 0000 0000 0000 0303", - "011B 05D4 FFC3 019E 0014 0000 0014 4689" - ] - } - ] + { + "Id": 26, + "High": 0, + "Low": 18392 + }, + { + "Id": 27, + "High": 3, + "Low": 16642 + }, + { + "Id": 28, + "High": 3, + "Low": 51458 + }, + { + "Id": 30, + "High": 49154, + "Low": 51464 + }, + { + "Id": 31, + "High": 0, + "Low": 51464 + }, + { + "Id": 32, + "High": 40961, + "Low": 51468 + }, + { + "Id": 33, + "High": 2097152, + "Low": 18376 + }, + { + "Id": 34, + "High": 2097152, + "Low": 51458 + }, + { + "Id": 35, + "High": 0, + "Low": 16520 + }, + { + "Id": 36, + "High": 805306370, + "Low": 51464 + }, + { + "Id": 37, + "High": 805306370, + "Low": 51468 + }, + { + "Id": 38, + "High": 49154, + "Low": 16456 + }, + { + "Id": 39, + "High": 0, + "Low": 16584 + }, + { + "Id": 41, + "High": 2, + "Low": 51400 + }, + { + "Id": 42, + "High": 0, + "Low": 53192 + }, + { + "Id": 43, + "High": 2, + "Low": 18376 + }, + { + "Id": 44, + "High": 49154, + "Low": 51336 + }, + { + "Id": 45, + "High": 3, + "Low": 51340 + }, + { + "Id": 46, + "High": 2097155, + "Low": 51340 + }, + { + "Id": 47, + "High": 2097152, + "Low": 16520 + }, + { + "Id": 48, + "High": 49154, + "Low": 51272 + }, + { + "Id": 49, + "High": 40962, + "Low": 51336 + }, + { + "Id": 50, + "High": 40962, + "Low": 51340 + }, + { + "Id": 51, + "High": 2, + "Low": 51352 + }, + { + "Id": 52, + "High": 2, + "Low": 16472 + }, + { + "Id": 53, + "High": 2, + "Low": 51276 + }, + { + "Id": 54, + "High": 2, + "Low": 51330 + } + ], + "Cams": [ + { + "Data": 0, + "PositionIndex": -1 + }, + { + "Data": 3801088, + "PositionIndex": -1 + }, + { + "Data": 196608, + "PositionIndex": -1 + }, + { + "Data": 4063232, + "PositionIndex": -1 + } + ] + } }, { "File": { @@ -7684,7 +30482,46 @@ ], "Actors": [] } - ] + ], + "ColDelta": { + "IsLarger": false, + "Polys": [], + "PolyTypes": [], + "Cams": [ + { + "Data": 2097155, + "PositionIndex": 0 + }, + { + "Data": 2097155, + "PositionIndex": 1 + }, + { + "Data": 2097155, + "PositionIndex": 2 + }, + { + "Data": 2097155, + "PositionIndex": 3 + }, + { + "Data": 2097155, + "PositionIndex": 4 + }, + { + "Data": 2097155, + "PositionIndex": 5 + }, + { + "Data": 2097155, + "PositionIndex": 6 + }, + { + "Data": 0, + "PositionIndex": -1 + } + ] + } }, { "File": { @@ -8108,7 +30945,38 @@ "000A F979 00D2 F043 0000 93E9 0000 7AA2" ] } - ] + ], + "ColDelta": { + "IsLarger": false, + "Polys": [], + "PolyTypes": [], + "Cams": [ + { + "Data": 1572867, + "PositionIndex": 0 + }, + { + "Data": 0, + "PositionIndex": -1 + }, + { + "Data": 262144, + "PositionIndex": -1 + }, + { + "Data": 196608, + "PositionIndex": -1 + }, + { + "Data": 65536, + "PositionIndex": -1 + }, + { + "Data": 3801088, + "PositionIndex": -1 + } + ] + } }, { "File": { @@ -9066,6 +31934,134 @@ "0111 FB18 0096 05DC 0000 0000 0000 680F" ] } - ] + ], + "ColDelta": { + "IsLarger": false, + "Polys": [ + { + "Id": 2403, + "Type": 57, + "Flags": 8 + }, + { + "Id": 2404, + "Type": 57, + "Flags": 8 + }, + { + "Id": 2405, + "Type": 57, + "Flags": 8 + }, + { + "Id": 2406, + "Type": 57, + "Flags": 8 + }, + { + "Id": 2407, + "Type": 57, + "Flags": 8 + }, + { + "Id": 2408, + "Type": 57, + "Flags": 8 + }, + { + "Id": 2409, + "Type": 57, + "Flags": 8 + }, + { + "Id": 2410, + "Type": 57, + "Flags": 8 + }, + { + "Id": 2473, + "Type": 57, + "Flags": 8 + }, + { + "Id": 2474, + "Type": 57, + "Flags": 8 + }, + { + "Id": 2475, + "Type": 57, + "Flags": 8 + }, + { + "Id": 2476, + "Type": 57, + "Flags": 8 + }, + { + "Id": 2477, + "Type": 57, + "Flags": 8 + }, + { + "Id": 2478, + "Type": 57, + "Flags": 8 + }, + { + "Id": 2479, + "Type": 57, + "Flags": 8 + }, + { + "Id": 2480, + "Type": 57, + "Flags": 8 + } + ], + "PolyTypes": [], + "Cams": [ + { + "Data": 1572867, + "PositionIndex": 0 + }, + { + "Data": 1572867, + "PositionIndex": 1 + }, + { + "Data": 1572867, + "PositionIndex": 2 + }, + { + "Data": 1572867, + "PositionIndex": 3 + }, + { + "Data": 0, + "PositionIndex": -1 + }, + { + "Data": 196608, + "PositionIndex": -1 + }, + { + "Data": 262144, + "PositionIndex": -1 + }, + { + "Data": 65536, + "PositionIndex": -1 + }, + { + "Data": 4063232, + "PositionIndex": -1 + }, + { + "Data": 3801088, + "PositionIndex": -1 + } + ] + } } ] \ No newline at end of file From e4e87dd155417c764f065ebe8dc0ff49802614a0 Mon Sep 17 00:00:00 2001 From: mzxrules Date: Fri, 7 Sep 2018 00:37:57 -0400 Subject: [PATCH 424/755] Decouple MQ.py from World.py --- MQ.py | 35 ++++++----------------------------- Patches.py | 30 +++++++++++++++++++++++++++++- 2 files changed, 35 insertions(+), 30 deletions(-) diff --git a/MQ.py b/MQ.py index dc2c3f25c..74b9249ce 100644 --- a/MQ.py +++ b/MQ.py @@ -206,37 +206,14 @@ def append_object_data(self, rom:LocalRom, objects): return offset -def patch_files(world, rom:LocalRom): - +def patch_files(rom:LocalRom, mq_scenes): + + patch_ice_cavern_scene_header(rom) data = get_json() scenes = [Scene(x) for x in data] - - if world.dungeon_mq['DT']: - scenes[0].write_data(rom) - if world.dungeon_mq['DC']: - scenes[1].write_data(rom) - if world.dungeon_mq['JB']: - scenes[2].write_data(rom) - if world.dungeon_mq['FoT']: - scenes[3].write_data(rom) - if world.dungeon_mq['FiT']: - scenes[4].write_data(rom) - if world.dungeon_mq['WT']: - scenes[5].write_data(rom) - if world.dungeon_mq['SpT']: - scenes[6].write_data(rom) - if world.dungeon_mq['ShT']: - scenes[7].write_data(rom) - if world.dungeon_mq['BW']: - scenes[8].write_data(rom) - if world.dungeon_mq['IC']: - patch_ice_cavern_scene_header(rom) - scenes[9].write_data(rom) - # Scene 10 is identical between vanilla and MQ so no need to write? - if world.dungeon_mq['GTG']: - scenes[11].write_data(rom) - if world.dungeon_mq['GC']: - scenes[12].write_data(rom) # Since there is no scene 12, the 12th entry should represent the 13th scene. + for scene in scenes: + if scene.id in mq_scenes: + scene.write_data(rom) verify_dma(rom) diff --git a/Patches.py b/Patches.py index cceeae9a4..28494f9a1 100644 --- a/Patches.py +++ b/Patches.py @@ -1319,7 +1319,35 @@ def write_save_table(rom): elif world.background_music == 'off': disable_music(rom) - patch_files(world, rom) + # patch mq scenes + mq_scenes = [] + if world.dungeon_mq['DT']: + mq_scenes.append(0) + if world.dungeon_mq['DC']: + mq_scenes.append(1) + if world.dungeon_mq['JB']: + mq_scenes.append(2) + if world.dungeon_mq['FoT']: + mq_scenes.append(3) + if world.dungeon_mq['FiT']: + mq_scenes.append(4) + if world.dungeon_mq['WT']: + mq_scenes.append(5) + if world.dungeon_mq['SpT']: + mq_scenes.append(6) + if world.dungeon_mq['ShT']: + mq_scenes.append(7) + if world.dungeon_mq['BW']: + mq_scenes.append(8) + if world.dungeon_mq['IC']: + mq_scenes.append(9) + # Scene 10 has no layout changes, so it doesn't need to be patched + if world.dungeon_mq['GTG']: + mq_scenes.append(11) + if world.dungeon_mq['GC']: + mq_scenes.append(13) + + patch_files(rom, mq_scenes) # patch tunic colors # Custom color tunic stuff From c9d33f938ea55f3d81f49cc2fdafe163ee5d8663 Mon Sep 17 00:00:00 2001 From: Stephen Rollins Date: Thu, 6 Sep 2018 23:04:26 -0600 Subject: [PATCH 425/755] Set up hints to support random alternative texts --- HintList.py | 220 +++++++++++++++++++++++++++------------------------- 1 file changed, 115 insertions(+), 105 deletions(-) diff --git a/HintList.py b/HintList.py index 5d3681744..7ae5e2065 100644 --- a/HintList.py +++ b/HintList.py @@ -1,3 +1,5 @@ +import random + class Hint(object): name = "" text = "" @@ -8,22 +10,30 @@ def __init__(self, name, text, type): self.text = text self.type = type +def _getHint(name): + textOptions, type = hintTable[name] + # Because it doesn't make sense to offer random variants of some hints + if isinstance(textOptions, str): + return (textOptions, type) + else: + return (random.choice(textOptions), type) + def getHint(name): ret = Hint for hint in hintTable: if name == hint: - text, type = hintTable[hint] + text, type = _getHint(hint) ret = Hint(hint, text, type) break else: - text, type = hintTable['KeyError'] + text, type = _getHint('KeyError') ret = Hint(hint, text, type) return ret def getHintGroup(group, world): ret = [] for hint in hintTable: - text, type = hintTable[hint] + text, type = _getHint(hint) if type == group and not (hint in hintExclusions(world)): ret.append(Hint(hint, text, type)) return ret @@ -33,108 +43,108 @@ def getHintGroup(group, world): # & is a new line # @ will print the player name # # sets color to white (currently only used for dungeon reward hints). -hintTable = {'Hammer': ("the dragon smasher", 'item'), - 'Magic Meter': ("pixie dust", 'item'), - 'Double Defense': ("a white outline", 'item'), - 'Progressive Hookshot': ("Dampe's keepsake", 'item'), - 'Progressive Strength Upgrade': ("power gloves", 'item'), - 'Hover Boots': ("butter boots", 'item'), - 'Master Sword': ("evil's bane", 'item'), - 'Mirror Shield': ("the reflective rampart", 'item'), - 'Farores Wind': ("teleportation", 'item'), - 'Nayrus Love': ("a safe space", 'item'), - 'Ice Arrows': ("the refrigerator rocket", 'item'), - 'Lens of Truth': ("the perjureless porthole", 'item'), - 'Dins Fire': ("an inferno", 'item'), - 'Ocarina': ("a flute", 'item'), - 'Fairy Ocarina': ("a brown flute", 'item'), - 'Goron Tunic': ("ruby robes", 'item'), - 'Zora Tunic': ("a sapphire suit", 'item'), - 'Iron Boots': ("sink shoes", 'item'), - 'Zeldas Letter': ("an autograph", 'item'), - 'Zeldas Lullaby': ("a song of royal slumber", 'item'), - 'Nocturne of Shadow': ("a song of spooky spirits", 'item'), - 'Bow': ("an archery enabler", 'item'), - 'Bomb Bag': ("an explosive container", 'item'), - 'Sarias Song': ("a song of dancing Gorons", 'item'), - 'Song of Time': ("a song 7 years long", 'item'), - 'Song of Storms': ("Rain Dance", 'item'), - 'Minuet of Forest': ("the song of tall trees", 'item'), - 'Requiem of Spirit': ("a song of sandy statues", 'item'), - 'Slingshot': ("a seed shooter", 'item'), - 'Boomerang': ("a banana", 'item'), - 'Fire Arrows': ("the furnace firearm", 'item'), - 'Ocarina of Time': ("a blue flute", 'item'), - 'Bottle': ("a fairy prison", 'item'), - 'Bottle with Letter': ("a call for help", 'item'), - 'Bottle with Milk': ("cow juice", 'item'), - 'Bottle with Red Potion': ("a vitality vial", 'item'), - 'Bottle with Green Potion': ("a magic mixture", 'item'), - 'Bottle with Blue Potion': ("a cure-all antidote", 'item'), - 'Bottle with Fairy': ("an imprisoned fairy", 'item'), - 'Bottle with Fish': ("an aquarium", 'item'), - 'Bottle with Blue Fire': ("a conflagration canteen", 'item'), - 'Bottle with Bugs': ("a terrarium", 'item'), - 'Bottle with Poe': ("a spooky ghost", 'item'), - 'Progressive Scale': ("Zora's Flippers", 'item'), - 'Stone of Agony': ("an empty chest", 'item'), - 'Eponas Song': ("an equestrian etude", 'item'), - 'Epona': ("a horse", 'item'), - 'Gerudo Membership Card': ("a GT subscription", 'item'), - 'Progressive Wallet': ("a mo' money holder", 'item'), - 'Bolero of Fire': ("a song of lethal lava", 'item'), - 'Suns Song': ("Sunny Day", 'item'), - 'Deku Shield': ("a wooden ward", 'item'), - 'Hylian Shield': ("a steel safeguard", 'item'), - 'Deku Stick Capacity': ("a bundle of sticks", 'item'), - 'Deku Nut Capacity': ("more nuts", 'item'), - 'Prelude of Light': ("a luminous prologue melody", 'item'), - 'Serenade of Water': ("a song of a damp ditch", 'item'), - 'Heart Container': ("a lot of love", 'item'), - 'Piece of Heart': ("love", 'item'), - 'Piece of Heart (Treasure Chest Game)': ("WINNER!", 'item'), - 'Recovery Heart': ("a free heal", 'item'), - 'Rupee (1)': ("rare riches", 'item'), - 'Rupees (5)': ("a common coin", 'item'), - 'Rupees (20)': ("couch cash", 'item'), - 'Rupees (50)': ("big bucks", 'item'), - 'Rupees (200)': ("a juicy jackpot", 'item'), - 'Light Arrows': ("the shining shot", 'item'), - 'Kokiri Sword': ("a butter knife", 'item'), - 'Biggoron Sword': ("a shield disabler", 'item'), - 'Pocket Egg': ("a Cucco container", 'item'), - 'Weird Egg': ("a chicken dilemma", 'item'), - 'Pocket Cucco': ("a little clucker", 'item'), - 'Cojiro': ("a cerulean capon", 'item'), - 'Odd Mushroom': ("a powder ingredient", 'item'), - 'Odd Potion': ("Granny's goodies", 'item'), - 'Poachers Saw': ("a tree killer", 'item'), - 'Broken Sword': ("a shattered slicer", 'item'), - 'Prescription': ("a pill pamphlet", 'item'), - 'Eyeball Frog': ("a perceiving polliwog", 'item'), - 'Eyedrops': ("a vision vial", 'item'), - 'Claim Check': ("a three day wait", 'item'), - 'Map': ("a dungeon atlas", 'item'), - 'Compass': ("a treasure tracker", 'item'), - 'BossKey': ("a master of unlocking", 'item'), - 'SmallKey': ("a tool for unlocking", 'item'), - 'FortressSmallKey': ("a get out of jail free card", 'item'), - 'KeyError': ("something mysterious", 'item'), - 'Arrows (5)': ("danger darts", 'item'), - 'Arrows (10)': ("danger darts", 'item'), - 'Arrows (30)': ("danger darts", 'item'), - 'Bombs (5)': ("explosives", 'item'), - 'Bombs (10)': ("explosives", 'item'), - 'Bombs (20)': ("lots-o-explosives", 'item'), - 'Ice Trap': ("a gift from Ganon", 'item'), - 'Magic Bean': ("wizardly legumes", 'item'), - 'Bombchus': ("mice bombs", 'item'), - 'Bombchus (5)': ("mice bombs", 'item'), - 'Bombchus (10)': ("mice bombs", 'item'), - 'Bombchus (20)': ("mice bombs", 'item'), - 'Deku Nuts (5)': ("some nuts", 'item'), - 'Deku Nuts (10)': ("lots-o-nuts", 'item'), - 'Gold Skulltulla Token': ("proof of destruction", 'item'), +hintTable = {'Hammer': (["the dragon smasher"], 'item'), + 'Magic Meter': (["pixie dust"], 'item'), + 'Double Defense': (["a white outline"], 'item'), + 'Progressive Hookshot': (["Dampe's keepsake"], 'item'), + 'Progressive Strength Upgrade': (["power gloves"], 'item'), + 'Hover Boots': (["butter boots"], 'item'), + 'Master Sword': (["evil's bane"], 'item'), + 'Mirror Shield': (["the reflective rampart"], 'item'), + 'Farores Wind': (["teleportation"], 'item'), + 'Nayrus Love': (["a safe space"], 'item'), + 'Ice Arrows': (["the refrigerator rocket"], 'item'), + 'Lens of Truth': (["the perjureless porthole"], 'item'), + 'Dins Fire': (["an inferno"], 'item'), + 'Ocarina': (["a flute"], 'item'), + 'Fairy Ocarina': (["a brown flute"], 'item'), + 'Goron Tunic': (["ruby robes"], 'item'), + 'Zora Tunic': (["a sapphire suit"], 'item'), + 'Iron Boots': (["sink shoes"], 'item'), + 'Zeldas Letter': (["an autograph"], 'item'), + 'Zeldas Lullaby': (["a song of royal slumber"], 'item'), + 'Nocturne of Shadow': (["a song of spooky spirits"], 'item'), + 'Bow': (["an archery enabler"], 'item'), + 'Bomb Bag': (["an explosive container"], 'item'), + 'Sarias Song': (["a song of dancing Gorons"], 'item'), + 'Song of Time': (["a song 7 years long"], 'item'), + 'Song of Storms': (["Rain Dance"], 'item'), + 'Minuet of Forest': (["the song of tall trees"], 'item'), + 'Requiem of Spirit': (["a song of sandy statues"], 'item'), + 'Slingshot': (["a seed shooter"], 'item'), + 'Boomerang': (["a banana"], 'item'), + 'Fire Arrows': (["the furnace firearm"], 'item'), + 'Ocarina of Time': (["a blue flute"], 'item'), + 'Bottle': (["a fairy prison"], 'item'), + 'Bottle with Letter': (["a call for help"], 'item'), + 'Bottle with Milk': (["cow juice"], 'item'), + 'Bottle with Red Potion': (["a vitality vial"], 'item'), + 'Bottle with Green Potion': (["a magic mixture"], 'item'), + 'Bottle with Blue Potion': (["a cure-all antidote"], 'item'), + 'Bottle with Fairy': (["an imprisoned fairy"], 'item'), + 'Bottle with Fish': (["an aquarium"], 'item'), + 'Bottle with Blue Fire': (["a conflagration canteen"], 'item'), + 'Bottle with Bugs': (["a terrarium"], 'item'), + 'Bottle with Poe': (["a spooky ghost"], 'item'), + 'Progressive Scale': (["Zora's Flippers"], 'item'), + 'Stone of Agony': (["an empty chest"], 'item'), + 'Eponas Song': (["an equestrian etude"], 'item'), + 'Epona': (["a horse"], 'item'), + 'Gerudo Membership Card': (["a GT subscription"], 'item'), + 'Progressive Wallet': (["a mo' money holder"], 'item'), + 'Bolero of Fire': (["a song of lethal lava"], 'item'), + 'Suns Song': (["Sunny Day"], 'item'), + 'Deku Shield': (["a wooden ward"], 'item'), + 'Hylian Shield': (["a steel safeguard"], 'item'), + 'Deku Stick Capacity': (["a bundle of sticks"], 'item'), + 'Deku Nut Capacity': (["more nuts"], 'item'), + 'Prelude of Light': (["a luminous prologue melody"], 'item'), + 'Serenade of Water': (["a song of a damp ditch"], 'item'), + 'Heart Container': (["a lot of love"], 'item'), + 'Piece of Heart': (["love"], 'item'), + 'Piece of Heart (Treasure Chest Game)': (["WINNER!"], 'item'), + 'Recovery Heart': (["a free heal"], 'item'), + 'Rupee (1)': (["rare riches"], 'item'), + 'Rupees (5)': (["a common coin"], 'item'), + 'Rupees (20)': (["couch cash"], 'item'), + 'Rupees (50)': (["big bucks"], 'item'), + 'Rupees (200)': (["a juicy jackpot"], 'item'), + 'Light Arrows': (["the shining shot"], 'item'), + 'Kokiri Sword': (["a butter knife"], 'item'), + 'Biggoron Sword': (["a shield disabler"], 'item'), + 'Pocket Egg': (["a Cucco container"], 'item'), + 'Weird Egg': (["a chicken dilemma"], 'item'), + 'Pocket Cucco': (["a little clucker"], 'item'), + 'Cojiro': (["a cerulean capon"], 'item'), + 'Odd Mushroom': (["a powder ingredient"], 'item'), + 'Odd Potion': (["Granny's goodies"], 'item'), + 'Poachers Saw': (["a tree killer"], 'item'), + 'Broken Sword': (["a shattered slicer"], 'item'), + 'Prescription': (["a pill pamphlet"], 'item'), + 'Eyeball Frog': (["a perceiving polliwog"], 'item'), + 'Eyedrops': (["a vision vial"], 'item'), + 'Claim Check': (["a three day wait"], 'item'), + 'Map': (["a dungeon atlas"], 'item'), + 'Compass': (["a treasure tracker"], 'item'), + 'BossKey': (["a master of unlocking"], 'item'), + 'SmallKey': (["a tool for unlocking"], 'item'), + 'FortressSmallKey': (["a get out of jail free card"], 'item'), + 'KeyError': (["something mysterious"], 'item'), + 'Arrows (5)': (["danger darts"], 'item'), + 'Arrows (10)': (["danger darts"], 'item'), + 'Arrows (30)': (["danger darts"], 'item'), + 'Bombs (5)': (["explosives"], 'item'), + 'Bombs (10)': (["explosives"], 'item'), + 'Bombs (20)': (["lots-o-explosives"], 'item'), + 'Ice Trap': (["a gift from Ganon"], 'item'), + 'Magic Bean': (["wizardly legumes"], 'item'), + 'Bombchus': (["mice bombs"], 'item'), + 'Bombchus (5)': (["mice bombs"], 'item'), + 'Bombchus (10)': (["mice bombs"], 'item'), + 'Bombchus (20)': (["mice bombs"], 'item'), + 'Deku Nuts (5)': (["some nuts"], 'item'), + 'Deku Nuts (10)': (["lots-o-nuts"], 'item'), + 'Gold Skulltulla Token': (["proof of destruction"], 'item'), #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box '10 Big Poes': ("They say that Big Poes leads&to", 'alwaysLocation'), 'Deku Theater Mask of Truth': ("They say that the Mask of Truth&yields", 'alwaysLocation'), From b8660eee0172134a79f68438ea61da176f406001 Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Sat, 8 Sep 2018 04:34:11 -0300 Subject: [PATCH 426/755] Bug Fix for removing keys with Gerudo Fortress Due to the change to the meaning of world.keysanity, gerudo fortress keys were being world shuffled instead of left alone, when small keys are removed. --- ItemList.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ItemList.py b/ItemList.py index e1ec99ec5..af67d134d 100644 --- a/ItemList.py +++ b/ItemList.py @@ -482,7 +482,7 @@ def get_pool_core(world): placed_items['Gerudo Fortress North F2 Carpenter'] = 'Recovery Heart' placed_items['Gerudo Fortress South F1 Carpenter'] = 'Recovery Heart' placed_items['Gerudo Fortress South F2 Carpenter'] = 'Recovery Heart' - elif world.keysanity: + elif world.shuffle_smallkeys == 'keysanity': if world.gerudo_fortress == 'fast': pool.append('Small Key (Gerudo Fortress)') placed_items['Gerudo Fortress North F2 Carpenter'] = 'Recovery Heart' From dfec8560495cee184362c9c4c260368f934ebf7a Mon Sep 17 00:00:00 2001 From: mzxrules Date: Sat, 8 Sep 2018 18:23:23 -0400 Subject: [PATCH 427/755] Collision Patching implemented --- MQ.py | 114 +++++++++++++++++++++-- Rom.py | 280 ++++++++++++++++++++++++++++----------------------------- 2 files changed, 247 insertions(+), 147 deletions(-) diff --git a/MQ.py b/MQ.py index 74b9249ce..f79799eb6 100644 --- a/MQ.py +++ b/MQ.py @@ -1,5 +1,4 @@ # mzxrules 2018 -# # In order to patch MQ to the existing data... # # Ice Cavern (Scene 9) needs to have it's header altered to support MQ's path list. This @@ -14,6 +13,9 @@ # The total size consumed by the path data is NUM_PATHS * 8, plus the sum of all path file sizes # padded to the nearest 0x10 bytes # +# Collision: +# +# # Rooms: # # Object file initialization data will be appended to the end of the room file. @@ -34,8 +36,6 @@ SCENE_DMADATA = 0xB320 # address where scene files begin to appear in dmadata SCENE_TABLE = 0xB71440 - - class File(object): def __init__(self, file): self.name = file['Name'] @@ -69,6 +69,28 @@ def relocate(self, rom:LocalRom): self.end = new_end +class CollisionMesh(object): + def __init__(self, rom:LocalRom, start, offset): + self.offset = offset + self.poly_addr = rom.read_int32(start + offset + 0x18) + self.polytypes_addr = rom.read_int32(start + offset + 0x1C) + self.camera_data_addr = rom.read_int32(start + offset + 0x20) + self.polytypes = (self.poly_addr - self.polytypes_addr) // 8 + + def write_to_scene(self, rom:LocalRom, start): + addr = start + self.offset + 0x18 + rom.write_int32s(addr, [self.poly_addr, self.polytypes_addr, self.camera_data_addr]) + + +class ColDelta(object): + def __init__(self, delta): + self.is_larger = delta['IsLarger'] + self.polys = delta['Polys'] + self.polytypes = delta['PolyTypes'] + self.cams = delta['Cams'] + + + class Scene(object): def __init__(self, scene): self.file = File(scene['File']) @@ -76,6 +98,7 @@ def __init__(self, scene): self.transition_actors = [convert_actor_data(x) for x in scene['TActors']] self.rooms = [Room(x) for x in scene['Rooms']] self.paths = [] + self.coldelta = ColDelta(scene["ColDelta"]) temp_paths = scene['Paths'] for item in temp_paths: self.paths.append(item['Points']) @@ -96,7 +119,12 @@ def write_data(self, rom:LocalRom): while loop > 0 and code != 0x14: #terminator loop -= 1 - if code == 0x04: #rooms + if code == 0x03: #collision + col_mesh_offset = rom.read_int24(headcur + 5) + col_mesh = CollisionMesh(rom, start, col_mesh_offset) + self.patch_mesh(rom, col_mesh); + + elif code == 0x04: #rooms room_list_offset = rom.read_int24(headcur + 5) elif code == 0x0D: #paths @@ -126,13 +154,86 @@ def write_data(self, rom:LocalRom): cur += 0x08 + def patch_mesh(self, rom:LocalRom, mesh:CollisionMesh): + start = self.file.start + + final_cams = [] + + # build final camera data + for cam in self.coldelta.cams: + data = cam['Data'] + pos = cam['PositionIndex'] + if pos < 0: + final_cams.append((data, 0)) + else: + addr = start + (mesh.camera_data_addr & 0xFFFFFF) + seg_off = rom.read_int32(addr + (pos * 8) + 4) + final_cams.append((data, seg_off)) + + types_move_addr = 0 + + # if data can't fit within the old mesh space, append camera data + if self.coldelta.is_larger: + types_move_addr = mesh.camera_data_addr + + # append to end of file + self.write_cam_data(rom, self.file.end, final_cams) + mesh.camera_data_addr = get_segment_address(2, self.file.end - self.file.start) + self.file.end += len(final_cams) * 8 + + else: + types_move_addr = mesh.camera_data_addr + (len(final_cams) * 8) + + # append in place + addr = self.file.start + (mesh.camera_data_addr & 0xFFFFFF) + self.write_cam_data(rom, addr, final_cams) + + # if polytypes needs to be moved, do so + if (types_move_addr != mesh.polytypes_addr): + a_start = self.file.start + (mesh.polytypes_addr & 0xFFFFFF) + b_start = self.file.start + (types_move_addr & 0xFFFFFF) + size = mesh.polytypes * 8 + + rom.buffer[b_start:b_start + size] = rom.buffer[a_start:a_start + size] + mesh.polytypes_addr = types_move_addr + + # patch polytypes + for item in self.coldelta.polytypes: + id = item['Id'] + high = item['High'] + low = item['Low'] + addr = self.file.start + (mesh.polytypes_addr & 0xFFFFFF) + (id * 8) + rom.write_int32s(addr, [high, low]) + + # patch poly data + for item in self.coldelta.polys: + id = item['Id'] + t = item['Type'] + flags = item['Flags'] + + addr = self.file.start + (mesh.poly_addr & 0xFFFFFF) + (id * 0x10) + vert_bit = rom.read_byte(addr + 0x02) & 0x1F # VertexA id data + rom.write_int16(addr, t) + rom.write_byte(addr + 0x02, (flags << 4) + vert_bit) + + # Write Mesh to Scene + mesh.write_to_scene(rom, self.file.start) + + + def write_cam_data(self, rom:LocalRom, addr, cam_data): + + for item in cam_data: + data, pos = item + rom.write_int32s(addr, [data, pos]) + addr += 8 + + # appends path data to the end of the rom # returns segment address to path data def append_path_data(self, rom:LocalRom): start = self.file.start cur = self.file.end records = [] - records_offset = 0 for path in self.paths: nodes = len(path) @@ -154,7 +255,6 @@ def append_path_data(self, rom:LocalRom): self.file.end = cur return records_offset - class Room(object): def __init__(self, room): self.file = File(room['File']) @@ -327,4 +427,4 @@ def align4(value): return ((value + 3) // 4) * 4 def align16(value): - return ((value + 0xF) // 0x10) * 0x10 \ No newline at end of file + return ((value + 0xF) // 0x10) * 0x10 diff --git a/Rom.py b/Rom.py index 8c9ce5a3a..7b40ed340 100644 --- a/Rom.py +++ b/Rom.py @@ -1,15 +1,15 @@ -import io -import json -import logging -import os -import platform -import struct -import subprocess -import random -import copy - -from Utils import default_output_path - +import io +import json +import logging +import os +import platform +import struct +import subprocess +import random +import copy + +from Utils import default_output_path + class LocalRom(object): def __init__(self, settings, patch=True): self.last_address = None @@ -72,131 +72,131 @@ def decompress_rom_file(self, file, decomp_file): raise RuntimeError('Unsupported operating system for decompression. Please supply an already decompressed ROM.') else: # ROM file is a valid and already uncompressed - pass - - def read_byte(self, address): - return self.buffer[address] - - def read_bytes(self, address, len): - return self.buffer[address : address + len] - - def read_int16(self, address): - return bytes_as_int16(self.read_bytes(address, 2)) - - def read_int24(self, address): - return bytes_as_int24(self.read_bytes(address, 3)) - - def read_int32(self, address): - return bytes_as_int32(self.read_bytes(address, 4)) - - def write_byte(self, address, value): - if address == None: - address = self.last_address - self.buffer[address] = value - self.last_address = address + 1 - - def write_int16(self, address, value): - if address == None: - address = self.last_address - self.write_bytes(address, int16_as_bytes(value)) - - def write_int24(self, address, value): - if address == None: - address = self.last_address - self.write_bytes(address, int24_as_bytes(value)) - - def write_int32(self, address, value): - if address == None: - address = self.last_address - self.write_bytes(address, int32_as_bytes(value)) - - def write_bytes(self, startaddress, values): - if startaddress == None: - startaddress = self.last_address - for i, value in enumerate(values): - self.write_byte(startaddress + i, value) - - def write_int16s(self, startaddress, values): - if startaddress == None: - startaddress = self.last_address - for i, value in enumerate(values): - self.write_int16(startaddress + (i * 2), value) - - def write_int24s(self, startaddress, values): - if startaddress == None: - startaddress = self.last_address - for i, value in enumerate(values): - self.write_int24(startaddress + (i * 3), value) - - def write_int32s(self, startaddress, values): - if startaddress == None: - startaddress = self.last_address - for i, value in enumerate(values): - self.write_int32(startaddress + (i * 4), value) - - def write_to_file(self, file): - self.update_crc() - with open(file, 'wb') as outfile: - outfile.write(self.buffer) - - def update_crc(self): - t1 = t2 = t3 = t4 = t5 = t6 = 0xDF26F436 - u32 = 0xFFFFFFFF - - cur = 0x1000 - while cur < 0x00101000: - d = self.read_int32(cur) - - if ((t6 + d) & u32) < t6: - t4 += 1 - - t6 = (t6+d) & u32 - t3 ^= d - shift = d & 0x1F - r = ((d << shift) | (d >> (32 - shift))) & u32 - t5 = (t5 + r) & u32 - - if t2 > d: - t2 ^= r - else: - t2 ^= t6 ^ d - - data2 = self.read_int32(0x750 + (cur & 0xFF)) - t1 += data2 ^ d - t1 &= u32 - - cur += 4 - - crc0 = t6 ^ t4 ^ t3 - crc1 = t5 ^ t2 ^ t1 - - # Finally write the crc back to the rom - self.write_int32s(0x10, [crc0, crc1]) - - -def read_rom(stream): - "Reads rom into bytearray" - buffer = bytearray(stream.read()) - return buffer - - -def int16_as_bytes(value): - value = value & 0xFFFF - return [(value >> 8) & 0xFF, value & 0xFF] - -def int24_as_bytes(value): - value = value & 0xFFFFFFFF - return [(value >> 16) & 0xFF, (value >> 8) & 0xFF, value & 0xFF] - -def int32_as_bytes(value): - value = value & 0xFFFFFFFF - return [(value >> 24) & 0xFF, (value >> 16) & 0xFF, (value >> 8) & 0xFF, value & 0xFF] - -def bytes_as_int16(values): - return (values[0] << 8) | values[1] - -def bytes_as_int24(values): - return (values[0] << 16) | (values[1] << 8) | values[2] - -def bytes_as_int32(values): - return (values[0] << 24) | (values[1] << 16) | (values[2] << 8) | values[3] + pass + + def read_byte(self, address): + return self.buffer[address] + + def read_bytes(self, address, len): + return self.buffer[address : address + len] + + def read_int16(self, address): + return bytes_as_int16(self.read_bytes(address, 2)) + + def read_int24(self, address): + return bytes_as_int24(self.read_bytes(address, 3)) + + def read_int32(self, address): + return bytes_as_int32(self.read_bytes(address, 4)) + + def write_byte(self, address, value): + if address == None: + address = self.last_address + self.buffer[address] = value + self.last_address = address + 1 + + def write_int16(self, address, value): + if address == None: + address = self.last_address + self.write_bytes(address, int16_as_bytes(value)) + + def write_int24(self, address, value): + if address == None: + address = self.last_address + self.write_bytes(address, int24_as_bytes(value)) + + def write_int32(self, address, value): + if address == None: + address = self.last_address + self.write_bytes(address, int32_as_bytes(value)) + + def write_bytes(self, startaddress, values): + if startaddress == None: + startaddress = self.last_address + for i, value in enumerate(values): + self.write_byte(startaddress + i, value) + + def write_int16s(self, startaddress, values): + if startaddress == None: + startaddress = self.last_address + for i, value in enumerate(values): + self.write_int16(startaddress + (i * 2), value) + + def write_int24s(self, startaddress, values): + if startaddress == None: + startaddress = self.last_address + for i, value in enumerate(values): + self.write_int24(startaddress + (i * 3), value) + + def write_int32s(self, startaddress, values): + if startaddress == None: + startaddress = self.last_address + for i, value in enumerate(values): + self.write_int32(startaddress + (i * 4), value) + + def write_to_file(self, file): + self.update_crc() + with open(file, 'wb') as outfile: + outfile.write(self.buffer) + + def update_crc(self): + t1 = t2 = t3 = t4 = t5 = t6 = 0xDF26F436 + u32 = 0xFFFFFFFF + + cur = 0x1000 + while cur < 0x00101000: + d = self.read_int32(cur) + + if ((t6 + d) & u32) < t6: + t4 += 1 + + t6 = (t6+d) & u32 + t3 ^= d + shift = d & 0x1F + r = ((d << shift) | (d >> (32 - shift))) & u32 + t5 = (t5 + r) & u32 + + if t2 > d: + t2 ^= r + else: + t2 ^= t6 ^ d + + data2 = self.read_int32(0x750 + (cur & 0xFF)) + t1 += data2 ^ d + t1 &= u32 + + cur += 4 + + crc0 = t6 ^ t4 ^ t3 + crc1 = t5 ^ t2 ^ t1 + + # Finally write the crc back to the rom + self.write_int32s(0x10, [crc0, crc1]) + + +def read_rom(stream): + "Reads rom into bytearray" + buffer = bytearray(stream.read()) + return buffer + + +def int16_as_bytes(value): + value = value & 0xFFFF + return [(value >> 8) & 0xFF, value & 0xFF] + +def int24_as_bytes(value): + value = value & 0xFFFFFFFF + return [(value >> 16) & 0xFF, (value >> 8) & 0xFF, value & 0xFF] + +def int32_as_bytes(value): + value = value & 0xFFFFFFFF + return [(value >> 24) & 0xFF, (value >> 16) & 0xFF, (value >> 8) & 0xFF, value & 0xFF] + +def bytes_as_int16(values): + return (values[0] << 8) | values[1] + +def bytes_as_int24(values): + return (values[0] << 16) | (values[1] << 8) | values[2] + +def bytes_as_int32(values): + return (values[0] << 24) | (values[1] << 16) | (values[2] << 8) | values[3] From 2f9fe4537ed04bb775f03acc9a534f15b0f4ffa5 Mon Sep 17 00:00:00 2001 From: mzxrules Date: Sat, 8 Sep 2018 19:44:17 -0400 Subject: [PATCH 428/755] Poly flags are no longer shifted left by 1 --- MQ.py | 2 +- data/mqu.json | 794 +++++++++++++++++++++++++------------------------- 2 files changed, 398 insertions(+), 398 deletions(-) diff --git a/MQ.py b/MQ.py index f79799eb6..2554564ff 100644 --- a/MQ.py +++ b/MQ.py @@ -214,7 +214,7 @@ def patch_mesh(self, rom:LocalRom, mesh:CollisionMesh): addr = self.file.start + (mesh.poly_addr & 0xFFFFFF) + (id * 0x10) vert_bit = rom.read_byte(addr + 0x02) & 0x1F # VertexA id data rom.write_int16(addr, t) - rom.write_byte(addr + 0x02, (flags << 4) + vert_bit) + rom.write_byte(addr + 0x02, (flags << 5) + vert_bit) # Write Mesh to Scene mesh.write_to_scene(rom, self.file.start) diff --git a/data/mqu.json b/data/mqu.json index e4875f4e7..0b3fc5d41 100644 --- a/data/mqu.json +++ b/data/mqu.json @@ -559,22 +559,22 @@ { "Id": 570, "Type": 13, - "Flags": 2 + "Flags": 1 }, { "Id": 571, "Type": 13, - "Flags": 2 + "Flags": 1 }, { "Id": 572, "Type": 14, - "Flags": 2 + "Flags": 1 }, { "Id": 573, "Type": 14, - "Flags": 2 + "Flags": 1 }, { "Id": 574, @@ -3554,32 +3554,32 @@ { "Id": 1605, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1606, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1607, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1608, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1609, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1610, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1611, @@ -5249,22 +5249,22 @@ { "Id": 2736, "Type": 42, - "Flags": 2 + "Flags": 1 }, { "Id": 2737, "Type": 42, - "Flags": 2 + "Flags": 1 }, { "Id": 2738, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 2739, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 2762, @@ -5874,42 +5874,42 @@ { "Id": 3321, "Type": 42, - "Flags": 2 + "Flags": 1 }, { "Id": 3322, "Type": 42, - "Flags": 2 + "Flags": 1 }, { "Id": 3323, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 3324, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 3325, "Type": 42, - "Flags": 2 + "Flags": 1 }, { "Id": 3326, "Type": 42, - "Flags": 2 + "Flags": 1 }, { "Id": 3327, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 3328, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 3329, @@ -10094,57 +10094,57 @@ { "Id": 1836, "Type": 50, - "Flags": 2 + "Flags": 1 }, { "Id": 1837, "Type": 50, - "Flags": 2 + "Flags": 1 }, { "Id": 1839, "Type": 50, - "Flags": 2 + "Flags": 1 }, { "Id": 1840, "Type": 50, - "Flags": 2 + "Flags": 1 }, { "Id": 1841, "Type": 50, - "Flags": 2 + "Flags": 1 }, { "Id": 1842, "Type": 50, - "Flags": 2 + "Flags": 1 }, { "Id": 1843, "Type": 50, - "Flags": 2 + "Flags": 1 }, { "Id": 1847, "Type": 50, - "Flags": 2 + "Flags": 1 }, { "Id": 1848, "Type": 51, - "Flags": 2 + "Flags": 1 }, { "Id": 1849, "Type": 51, - "Flags": 2 + "Flags": 1 }, { "Id": 1850, "Type": 51, - "Flags": 2 + "Flags": 1 }, { "Id": 1851, @@ -15135,52 +15135,52 @@ { "Id": 1054, "Type": 0, - "Flags": 10 + "Flags": 5 }, { "Id": 1055, "Type": 0, - "Flags": 10 + "Flags": 5 }, { "Id": 1056, "Type": 0, - "Flags": 10 + "Flags": 5 }, { "Id": 1057, "Type": 0, - "Flags": 10 + "Flags": 5 }, { "Id": 1058, "Type": 0, - "Flags": 10 + "Flags": 5 }, { "Id": 1059, "Type": 0, - "Flags": 10 + "Flags": 5 }, { "Id": 1060, "Type": 0, - "Flags": 10 + "Flags": 5 }, { "Id": 1061, "Type": 0, - "Flags": 10 + "Flags": 5 }, { "Id": 1062, "Type": 0, - "Flags": 10 + "Flags": 5 }, { "Id": 1063, "Type": 0, - "Flags": 10 + "Flags": 5 }, { "Id": 1291, @@ -15275,12 +15275,12 @@ { "Id": 1313, "Type": 31, - "Flags": 2 + "Flags": 1 }, { "Id": 1314, "Type": 31, - "Flags": 2 + "Flags": 1 }, { "Id": 1315, @@ -15335,32 +15335,32 @@ { "Id": 1329, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1330, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1331, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1332, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1335, "Type": 31, - "Flags": 2 + "Flags": 1 }, { "Id": 1336, "Type": 31, - "Flags": 2 + "Flags": 1 }, { "Id": 1337, @@ -15485,12 +15485,12 @@ { "Id": 1361, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1362, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1363, @@ -15595,32 +15595,32 @@ { "Id": 1387, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1388, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1393, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1394, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1395, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1396, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1397, @@ -15635,32 +15635,32 @@ { "Id": 1401, "Type": 31, - "Flags": 2 + "Flags": 1 }, { "Id": 1402, "Type": 31, - "Flags": 2 + "Flags": 1 }, { "Id": 1403, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1404, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1405, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1406, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1407, @@ -15795,62 +15795,62 @@ { "Id": 1449, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1452, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1453, "Type": 31, - "Flags": 2 + "Flags": 1 }, { "Id": 1454, "Type": 31, - "Flags": 2 + "Flags": 1 }, { "Id": 1455, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1456, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1459, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1460, "Type": 31, - "Flags": 2 + "Flags": 1 }, { "Id": 1461, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1462, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1463, "Type": 31, - "Flags": 2 + "Flags": 1 }, { "Id": 1464, "Type": 31, - "Flags": 2 + "Flags": 1 }, { "Id": 1466, @@ -15865,12 +15865,12 @@ { "Id": 1468, "Type": 31, - "Flags": 2 + "Flags": 1 }, { "Id": 1469, "Type": 31, - "Flags": 2 + "Flags": 1 }, { "Id": 1470, @@ -15885,142 +15885,142 @@ { "Id": 1472, "Type": 31, - "Flags": 2 + "Flags": 1 }, { "Id": 1473, "Type": 31, - "Flags": 2 + "Flags": 1 }, { "Id": 1474, "Type": 31, - "Flags": 2 + "Flags": 1 }, { "Id": 1475, "Type": 31, - "Flags": 2 + "Flags": 1 }, { "Id": 1476, "Type": 31, - "Flags": 2 + "Flags": 1 }, { "Id": 1477, "Type": 31, - "Flags": 2 + "Flags": 1 }, { "Id": 1478, "Type": 31, - "Flags": 2 + "Flags": 1 }, { "Id": 1479, "Type": 31, - "Flags": 2 + "Flags": 1 }, { "Id": 1480, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1481, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1482, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1483, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1491, "Type": 31, - "Flags": 2 + "Flags": 1 }, { "Id": 1492, "Type": 31, - "Flags": 2 + "Flags": 1 }, { "Id": 1493, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1494, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1496, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1497, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1501, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1502, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1503, "Type": 31, - "Flags": 2 + "Flags": 1 }, { "Id": 1504, "Type": 31, - "Flags": 2 + "Flags": 1 }, { "Id": 1505, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1506, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1508, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1509, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1512, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1513, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1523, @@ -16030,22 +16030,22 @@ { "Id": 1525, "Type": 31, - "Flags": 2 + "Flags": 1 }, { "Id": 1526, "Type": 31, - "Flags": 2 + "Flags": 1 }, { "Id": 1527, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1528, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1529, @@ -16060,12 +16060,12 @@ { "Id": 1531, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1532, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1533, @@ -16135,12 +16135,12 @@ { "Id": 1546, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1547, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1551, @@ -16150,12 +16150,12 @@ { "Id": 1554, "Type": 31, - "Flags": 2 + "Flags": 1 }, { "Id": 1555, "Type": 31, - "Flags": 2 + "Flags": 1 }, { "Id": 1556, @@ -16180,32 +16180,32 @@ { "Id": 1560, "Type": 31, - "Flags": 2 + "Flags": 1 }, { "Id": 1561, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1562, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1563, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1564, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1565, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1568, @@ -16230,12 +16230,12 @@ { "Id": 1572, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1573, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1574, @@ -16270,52 +16270,52 @@ { "Id": 1580, "Type": 31, - "Flags": 2 + "Flags": 1 }, { "Id": 1581, "Type": 31, - "Flags": 2 + "Flags": 1 }, { "Id": 1582, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1583, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1584, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1585, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1586, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1587, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1588, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1589, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1592, @@ -16360,22 +16360,22 @@ { "Id": 1600, "Type": 31, - "Flags": 2 + "Flags": 1 }, { "Id": 1601, "Type": 31, - "Flags": 2 + "Flags": 1 }, { "Id": 1604, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1605, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1606, @@ -16430,42 +16430,42 @@ { "Id": 1621, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1622, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1623, "Type": 31, - "Flags": 2 + "Flags": 1 }, { "Id": 1624, "Type": 31, - "Flags": 2 + "Flags": 1 }, { "Id": 1625, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1626, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1627, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1628, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1631, @@ -16500,12 +16500,12 @@ { "Id": 1640, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1641, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1642, @@ -16530,12 +16530,12 @@ { "Id": 1646, "Type": 31, - "Flags": 2 + "Flags": 1 }, { "Id": 1647, "Type": 31, - "Flags": 2 + "Flags": 1 }, { "Id": 1648, @@ -16550,12 +16550,12 @@ { "Id": 1652, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1653, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1654, @@ -16565,32 +16565,32 @@ { "Id": 1655, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1656, "Type": 31, - "Flags": 2 + "Flags": 1 }, { "Id": 1659, "Type": 31, - "Flags": 2 + "Flags": 1 }, { "Id": 1660, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1661, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1662, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1663, @@ -16625,12 +16625,12 @@ { "Id": 1677, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1678, "Type": 33, - "Flags": 2 + "Flags": 1 }, { "Id": 1679, @@ -16675,62 +16675,62 @@ { "Id": 1702, "Type": 44, - "Flags": 2 + "Flags": 1 }, { "Id": 1703, "Type": 44, - "Flags": 2 + "Flags": 1 }, { "Id": 1704, "Type": 44, - "Flags": 2 + "Flags": 1 }, { "Id": 1705, "Type": 44, - "Flags": 2 + "Flags": 1 }, { "Id": 1706, "Type": 44, - "Flags": 2 + "Flags": 1 }, { "Id": 1707, "Type": 44, - "Flags": 2 + "Flags": 1 }, { "Id": 1708, "Type": 44, - "Flags": 2 + "Flags": 1 }, { "Id": 1709, "Type": 44, - "Flags": 2 + "Flags": 1 }, { "Id": 1710, "Type": 44, - "Flags": 2 + "Flags": 1 }, { "Id": 1711, "Type": 44, - "Flags": 2 + "Flags": 1 }, { "Id": 1712, "Type": 44, - "Flags": 2 + "Flags": 1 }, { "Id": 1713, "Type": 44, - "Flags": 2 + "Flags": 1 }, { "Id": 1714, @@ -16940,162 +16940,162 @@ { "Id": 2325, "Type": 38, - "Flags": 2 + "Flags": 1 }, { "Id": 2326, "Type": 38, - "Flags": 2 + "Flags": 1 }, { "Id": 2327, "Type": 37, - "Flags": 2 + "Flags": 1 }, { "Id": 2328, "Type": 37, - "Flags": 2 + "Flags": 1 }, { "Id": 2329, "Type": 37, - "Flags": 2 + "Flags": 1 }, { "Id": 2330, "Type": 37, - "Flags": 2 + "Flags": 1 }, { "Id": 2331, "Type": 38, - "Flags": 2 + "Flags": 1 }, { "Id": 2332, "Type": 38, - "Flags": 2 + "Flags": 1 }, { "Id": 2333, "Type": 37, - "Flags": 2 + "Flags": 1 }, { "Id": 2334, "Type": 37, - "Flags": 2 + "Flags": 1 }, { "Id": 2335, "Type": 38, - "Flags": 2 + "Flags": 1 }, { "Id": 2336, "Type": 38, - "Flags": 2 + "Flags": 1 }, { "Id": 2337, "Type": 38, - "Flags": 2 + "Flags": 1 }, { "Id": 2338, "Type": 38, - "Flags": 2 + "Flags": 1 }, { "Id": 2339, "Type": 38, - "Flags": 2 + "Flags": 1 }, { "Id": 2340, "Type": 38, - "Flags": 2 + "Flags": 1 }, { "Id": 2341, "Type": 38, - "Flags": 2 + "Flags": 1 }, { "Id": 2342, "Type": 38, - "Flags": 2 + "Flags": 1 }, { "Id": 2343, "Type": 38, - "Flags": 2 + "Flags": 1 }, { "Id": 2344, "Type": 38, - "Flags": 2 + "Flags": 1 }, { "Id": 2345, "Type": 38, - "Flags": 2 + "Flags": 1 }, { "Id": 2346, "Type": 38, - "Flags": 2 + "Flags": 1 }, { "Id": 2347, "Type": 38, - "Flags": 2 + "Flags": 1 }, { "Id": 2348, "Type": 38, - "Flags": 2 + "Flags": 1 }, { "Id": 2349, "Type": 38, - "Flags": 2 + "Flags": 1 }, { "Id": 2350, "Type": 38, - "Flags": 2 + "Flags": 1 }, { "Id": 2351, "Type": 37, - "Flags": 2 + "Flags": 1 }, { "Id": 2352, "Type": 37, - "Flags": 2 + "Flags": 1 }, { "Id": 2353, "Type": 37, - "Flags": 2 + "Flags": 1 }, { "Id": 2354, "Type": 37, - "Flags": 2 + "Flags": 1 }, { "Id": 2355, "Type": 38, - "Flags": 2 + "Flags": 1 }, { "Id": 2356, "Type": 38, - "Flags": 2 + "Flags": 1 }, { "Id": 2371, @@ -17125,22 +17125,22 @@ { "Id": 2383, "Type": 48, - "Flags": 2 + "Flags": 1 }, { "Id": 2384, "Type": 48, - "Flags": 2 + "Flags": 1 }, { "Id": 2385, "Type": 48, - "Flags": 2 + "Flags": 1 }, { "Id": 2386, "Type": 48, - "Flags": 2 + "Flags": 1 }, { "Id": 2391, @@ -17250,17 +17250,17 @@ { "Id": 3498, "Type": 50, - "Flags": 2 + "Flags": 1 }, { "Id": 3499, "Type": 50, - "Flags": 2 + "Flags": 1 }, { "Id": 3500, "Type": 50, - "Flags": 2 + "Flags": 1 }, { "Id": 3744, @@ -17270,32 +17270,32 @@ { "Id": 3767, "Type": 50, - "Flags": 2 + "Flags": 1 }, { "Id": 3768, "Type": 50, - "Flags": 2 + "Flags": 1 }, { "Id": 3769, "Type": 50, - "Flags": 2 + "Flags": 1 }, { "Id": 3770, "Type": 50, - "Flags": 2 + "Flags": 1 }, { "Id": 3771, "Type": 50, - "Flags": 2 + "Flags": 1 }, { "Id": 3772, "Type": 50, - "Flags": 2 + "Flags": 1 }, { "Id": 4187, @@ -17480,17 +17480,17 @@ { "Id": 4264, "Type": 54, - "Flags": 8 + "Flags": 4 }, { "Id": 4265, "Type": 54, - "Flags": 8 + "Flags": 4 }, { "Id": 4266, "Type": 54, - "Flags": 8 + "Flags": 4 }, { "Id": 4276, @@ -17580,142 +17580,142 @@ { "Id": 4380, "Type": 60, - "Flags": 8 + "Flags": 4 }, { "Id": 4381, "Type": 60, - "Flags": 8 + "Flags": 4 }, { "Id": 4382, "Type": 60, - "Flags": 8 + "Flags": 4 }, { "Id": 4383, "Type": 60, - "Flags": 8 + "Flags": 4 }, { "Id": 4384, "Type": 61, - "Flags": 2 + "Flags": 1 }, { "Id": 4385, "Type": 61, - "Flags": 2 + "Flags": 1 }, { "Id": 4386, "Type": 62, - "Flags": 10 + "Flags": 5 }, { "Id": 4387, "Type": 62, - "Flags": 10 + "Flags": 5 }, { "Id": 4388, "Type": 62, - "Flags": 10 + "Flags": 5 }, { "Id": 4389, "Type": 62, - "Flags": 10 + "Flags": 5 }, { "Id": 4390, "Type": 62, - "Flags": 10 + "Flags": 5 }, { "Id": 4391, "Type": 62, - "Flags": 10 + "Flags": 5 }, { "Id": 4392, "Type": 63, - "Flags": 10 + "Flags": 5 }, { "Id": 4393, "Type": 63, - "Flags": 10 + "Flags": 5 }, { "Id": 4394, "Type": 62, - "Flags": 10 + "Flags": 5 }, { "Id": 4395, "Type": 62, - "Flags": 10 + "Flags": 5 }, { "Id": 4396, "Type": 62, - "Flags": 10 + "Flags": 5 }, { "Id": 4397, "Type": 62, - "Flags": 10 + "Flags": 5 }, { "Id": 4398, "Type": 63, - "Flags": 10 + "Flags": 5 }, { "Id": 4399, "Type": 63, - "Flags": 10 + "Flags": 5 }, { "Id": 4404, "Type": 60, - "Flags": 8 + "Flags": 4 }, { "Id": 4405, "Type": 60, - "Flags": 8 + "Flags": 4 }, { "Id": 4408, "Type": 64, - "Flags": 8 + "Flags": 4 }, { "Id": 4409, "Type": 64, - "Flags": 8 + "Flags": 4 }, { "Id": 4410, "Type": 54, - "Flags": 8 + "Flags": 4 }, { "Id": 4411, "Type": 54, - "Flags": 8 + "Flags": 4 }, { "Id": 4414, "Type": 64, - "Flags": 8 + "Flags": 4 }, { "Id": 4415, "Type": 64, - "Flags": 8 + "Flags": 4 }, { "Id": 4643, @@ -22179,22 +22179,22 @@ { "Id": 97, "Type": 18, - "Flags": 2 + "Flags": 1 }, { "Id": 98, "Type": 18, - "Flags": 2 + "Flags": 1 }, { "Id": 99, "Type": 19, - "Flags": 2 + "Flags": 1 }, { "Id": 100, "Type": 19, - "Flags": 2 + "Flags": 1 }, { "Id": 101, @@ -22309,42 +22309,42 @@ { "Id": 123, "Type": 7, - "Flags": 2 + "Flags": 1 }, { "Id": 124, "Type": 7, - "Flags": 2 + "Flags": 1 }, { "Id": 125, "Type": 7, - "Flags": 2 + "Flags": 1 }, { "Id": 126, "Type": 7, - "Flags": 2 + "Flags": 1 }, { "Id": 127, "Type": 7, - "Flags": 2 + "Flags": 1 }, { "Id": 128, "Type": 7, - "Flags": 2 + "Flags": 1 }, { "Id": 129, "Type": 7, - "Flags": 2 + "Flags": 1 }, { "Id": 130, "Type": 7, - "Flags": 2 + "Flags": 1 }, { "Id": 131, @@ -22369,102 +22369,102 @@ { "Id": 135, "Type": 7, - "Flags": 2 + "Flags": 1 }, { "Id": 136, "Type": 7, - "Flags": 2 + "Flags": 1 }, { "Id": 137, "Type": 7, - "Flags": 2 + "Flags": 1 }, { "Id": 138, "Type": 7, - "Flags": 2 + "Flags": 1 }, { "Id": 139, "Type": 7, - "Flags": 2 + "Flags": 1 }, { "Id": 140, "Type": 7, - "Flags": 2 + "Flags": 1 }, { "Id": 141, "Type": 7, - "Flags": 2 + "Flags": 1 }, { "Id": 142, "Type": 7, - "Flags": 2 + "Flags": 1 }, { "Id": 143, "Type": 7, - "Flags": 2 + "Flags": 1 }, { "Id": 144, "Type": 7, - "Flags": 2 + "Flags": 1 }, { "Id": 145, "Type": 7, - "Flags": 2 + "Flags": 1 }, { "Id": 146, "Type": 7, - "Flags": 2 + "Flags": 1 }, { "Id": 147, "Type": 7, - "Flags": 2 + "Flags": 1 }, { "Id": 148, "Type": 7, - "Flags": 2 + "Flags": 1 }, { "Id": 149, "Type": 7, - "Flags": 2 + "Flags": 1 }, { "Id": 150, "Type": 7, - "Flags": 2 + "Flags": 1 }, { "Id": 151, "Type": 7, - "Flags": 2 + "Flags": 1 }, { "Id": 152, "Type": 7, - "Flags": 2 + "Flags": 1 }, { "Id": 153, "Type": 7, - "Flags": 2 + "Flags": 1 }, { "Id": 154, "Type": 7, - "Flags": 2 + "Flags": 1 }, { "Id": 155, @@ -22489,22 +22489,22 @@ { "Id": 159, "Type": 7, - "Flags": 2 + "Flags": 1 }, { "Id": 160, "Type": 7, - "Flags": 2 + "Flags": 1 }, { "Id": 161, "Type": 7, - "Flags": 2 + "Flags": 1 }, { "Id": 162, "Type": 7, - "Flags": 2 + "Flags": 1 }, { "Id": 163, @@ -22519,12 +22519,12 @@ { "Id": 165, "Type": 7, - "Flags": 2 + "Flags": 1 }, { "Id": 166, "Type": 7, - "Flags": 2 + "Flags": 1 }, { "Id": 167, @@ -23659,62 +23659,62 @@ { "Id": 393, "Type": 28, - "Flags": 2 + "Flags": 1 }, { "Id": 394, "Type": 28, - "Flags": 2 + "Flags": 1 }, { "Id": 395, "Type": 28, - "Flags": 2 + "Flags": 1 }, { "Id": 396, "Type": 28, - "Flags": 2 + "Flags": 1 }, { "Id": 397, "Type": 28, - "Flags": 2 + "Flags": 1 }, { "Id": 398, "Type": 28, - "Flags": 2 + "Flags": 1 }, { "Id": 399, "Type": 28, - "Flags": 2 + "Flags": 1 }, { "Id": 400, "Type": 28, - "Flags": 2 + "Flags": 1 }, { "Id": 401, "Type": 29, - "Flags": 2 + "Flags": 1 }, { "Id": 402, "Type": 29, - "Flags": 2 + "Flags": 1 }, { "Id": 403, "Type": 28, - "Flags": 2 + "Flags": 1 }, { "Id": 404, "Type": 28, - "Flags": 2 + "Flags": 1 }, { "Id": 405, @@ -26474,52 +26474,52 @@ { "Id": 964, "Type": 29, - "Flags": 2 + "Flags": 1 }, { "Id": 965, "Type": 29, - "Flags": 2 + "Flags": 1 }, { "Id": 966, "Type": 29, - "Flags": 2 + "Flags": 1 }, { "Id": 967, "Type": 29, - "Flags": 2 + "Flags": 1 }, { "Id": 968, "Type": 28, - "Flags": 2 + "Flags": 1 }, { "Id": 969, "Type": 28, - "Flags": 2 + "Flags": 1 }, { "Id": 970, "Type": 28, - "Flags": 2 + "Flags": 1 }, { "Id": 971, "Type": 28, - "Flags": 2 + "Flags": 1 }, { "Id": 972, "Type": 28, - "Flags": 2 + "Flags": 1 }, { "Id": 973, "Type": 28, - "Flags": 2 + "Flags": 1 }, { "Id": 988, @@ -26694,17 +26694,17 @@ { "Id": 1284, "Type": 27, - "Flags": 2 + "Flags": 1 }, { "Id": 1285, "Type": 27, - "Flags": 2 + "Flags": 1 }, { "Id": 1332, "Type": 24, - "Flags": 2 + "Flags": 1 }, { "Id": 1449, @@ -26719,152 +26719,152 @@ { "Id": 1453, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 1454, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 1455, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 1456, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 1457, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 1458, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 1459, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 1460, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 1461, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 1462, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 1463, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 1464, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 1465, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 1466, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 1467, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 1468, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 1469, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 1470, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 1473, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 1474, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 1475, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 1476, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 1477, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 1478, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 1479, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 1480, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 1481, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 1482, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 1483, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 1484, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 1495, @@ -27204,67 +27204,67 @@ { "Id": 1648, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 1649, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 1650, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 1651, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 1652, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 1653, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 1654, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 1655, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 1656, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 1657, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 1658, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 1659, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 1660, "Type": 21, - "Flags": 2 + "Flags": 1 }, { "Id": 1665, @@ -27464,12 +27464,12 @@ { "Id": 1744, "Type": 7, - "Flags": 2 + "Flags": 1 }, { "Id": 1745, "Type": 7, - "Flags": 2 + "Flags": 1 }, { "Id": 1746, @@ -27504,12 +27504,12 @@ { "Id": 1754, "Type": 7, - "Flags": 2 + "Flags": 1 }, { "Id": 1755, "Type": 7, - "Flags": 2 + "Flags": 1 }, { "Id": 1756, @@ -28866,102 +28866,102 @@ { "Id": 678, "Type": 0, - "Flags": 2 + "Flags": 1 }, { "Id": 679, "Type": 0, - "Flags": 2 + "Flags": 1 }, { "Id": 680, "Type": 0, - "Flags": 2 + "Flags": 1 }, { "Id": 681, "Type": 0, - "Flags": 2 + "Flags": 1 }, { "Id": 682, "Type": 0, - "Flags": 2 + "Flags": 1 }, { "Id": 683, "Type": 0, - "Flags": 2 + "Flags": 1 }, { "Id": 684, "Type": 0, - "Flags": 2 + "Flags": 1 }, { "Id": 685, "Type": 0, - "Flags": 2 + "Flags": 1 }, { "Id": 686, "Type": 0, - "Flags": 2 + "Flags": 1 }, { "Id": 687, "Type": 0, - "Flags": 2 + "Flags": 1 }, { "Id": 688, "Type": 0, - "Flags": 2 + "Flags": 1 }, { "Id": 689, "Type": 0, - "Flags": 2 + "Flags": 1 }, { "Id": 690, "Type": 0, - "Flags": 2 + "Flags": 1 }, { "Id": 691, "Type": 0, - "Flags": 2 + "Flags": 1 }, { "Id": 692, "Type": 0, - "Flags": 2 + "Flags": 1 }, { "Id": 693, "Type": 0, - "Flags": 2 + "Flags": 1 }, { "Id": 694, "Type": 0, - "Flags": 2 + "Flags": 1 }, { "Id": 695, "Type": 0, - "Flags": 2 + "Flags": 1 }, { "Id": 696, "Type": 0, - "Flags": 2 + "Flags": 1 }, { "Id": 697, "Type": 0, - "Flags": 2 + "Flags": 1 }, { "Id": 1490, @@ -29306,12 +29306,12 @@ { "Id": 1693, "Type": 42, - "Flags": 2 + "Flags": 1 }, { "Id": 1733, "Type": 42, - "Flags": 2 + "Flags": 1 }, { "Id": 2002, @@ -31941,82 +31941,82 @@ { "Id": 2403, "Type": 57, - "Flags": 8 + "Flags": 4 }, { "Id": 2404, "Type": 57, - "Flags": 8 + "Flags": 4 }, { "Id": 2405, "Type": 57, - "Flags": 8 + "Flags": 4 }, { "Id": 2406, "Type": 57, - "Flags": 8 + "Flags": 4 }, { "Id": 2407, "Type": 57, - "Flags": 8 + "Flags": 4 }, { "Id": 2408, "Type": 57, - "Flags": 8 + "Flags": 4 }, { "Id": 2409, "Type": 57, - "Flags": 8 + "Flags": 4 }, { "Id": 2410, "Type": 57, - "Flags": 8 + "Flags": 4 }, { "Id": 2473, "Type": 57, - "Flags": 8 + "Flags": 4 }, { "Id": 2474, "Type": 57, - "Flags": 8 + "Flags": 4 }, { "Id": 2475, "Type": 57, - "Flags": 8 + "Flags": 4 }, { "Id": 2476, "Type": 57, - "Flags": 8 + "Flags": 4 }, { "Id": 2477, "Type": 57, - "Flags": 8 + "Flags": 4 }, { "Id": 2478, "Type": 57, - "Flags": 8 + "Flags": 4 }, { "Id": 2479, "Type": 57, - "Flags": 8 + "Flags": 4 }, { "Id": 2480, "Type": 57, - "Flags": 8 + "Flags": 4 } ], "PolyTypes": [], From 47c4abbe64c1e241efe4788ec5f65c83a4b23c6f Mon Sep 17 00:00:00 2001 From: mzxrules Date: Sat, 8 Sep 2018 23:16:09 -0400 Subject: [PATCH 429/755] Patch Master Quest Spirit Temple Room 6 so that a silver block is only moved as an adult --- MQ.py | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++ data/mqu.json | 2 +- 2 files changed, 63 insertions(+), 1 deletion(-) diff --git a/MQ.py b/MQ.py index 2554564ff..3067af275 100644 --- a/MQ.py +++ b/MQ.py @@ -147,6 +147,8 @@ def write_data(self, rom:LocalRom): # write room file data for room in self.rooms: room.write_data(rom) + if self.id == 6 and room.id == 6: + patch_spirit_temple_mq_room_6(rom, room.file.start) cur = self.file.start + room_list_offset for room in self.rooms: @@ -339,6 +341,66 @@ def patch_ice_cavern_scene_header(rom): rom.buffer[0x2BEB000:0x2BEB038] = rom.buffer[0x2BEB008:0x2BEB040] rom.write_int32s(0x2BEB038, [0x0D000000, 0x02000000]) +def patch_spirit_temple_mq_room_6(rom:LocalRom, room_addr): + cur = room_addr + + actor_list_addr = 0 + cmd_actors_offset = 0 + + # scan for actor list and header end + code = rom.read_byte(cur) + while code != 0x14: #terminator + if code == 0x01: # actors + actor_list_addr = rom.read_int32(cur + 4) + cmd_actors_offset = cur - room_addr + + cur += 8 + code = rom.read_byte(cur) + + cur += 8 + + # original header size + header_size = cur - room_addr + + # set alternate header data location + alt_data_off = header_size + 8 + + # set new alternate header offset + alt_header_off = align16(alt_data_off + (4 * 3)) # alt header record size * num records + + # write alternate header data + # the first 3 words are mandatory. the last 3 are just to make the binary + # cleaner to read + rom.write_int32s(room_addr + alt_data_off, + [0, get_segment_address(3, alt_header_off), 0, 0, 0, 0]) + + # clone header + a_start = room_addr + a_end = a_start + header_size + b_start = room_addr + alt_header_off + b_end = b_start + header_size + + rom.buffer[b_start:b_end] = rom.buffer[a_start:a_end] + + # make the child header skip the first actor, + # which avoids the spawning of the block while in the hole + + + cmd_addr = room_addr + cmd_actors_offset + actor_list_addr += 0x10 + actors = rom.read_byte(cmd_addr + 1) + rom.write_byte(cmd_addr+1, actors - 1) + rom.write_int32(cmd_addr + 4, actor_list_addr) + + # move header + rom.buffer[a_start + 8:a_end + 8] = rom.buffer[a_start:a_end] + + # write alternate header command + seg = get_segment_address(3, alt_data_off) + rom.write_int32s(room_addr, [0x18000000, seg]) + + + def get_dma_record(rom:LocalRom, cur): start = rom.read_int32(cur) diff --git a/data/mqu.json b/data/mqu.json index 0b3fc5d41..c7412aafa 100644 --- a/data/mqu.json +++ b/data/mqu.json @@ -19509,9 +19509,9 @@ "00B7" ], "Actors": [ + "00FF 021C 00D5 FE33 0000 0000 0000 09C7", "012D 0000 01BA FF94 0000 0000 0000 FFC2", "00FF 021C 019D FEFB 0000 0000 0000 09C3", - "00FF 021C 00D5 FE33 0000 0000 0000 09C7", "0139 021C 00D5 FE33 0000 0000 0000 0009", "01D5 021C 019D FEFB 0000 0000 0000 0009", "012A 021C 015B FDD1 0000 0000 0000 0A02", From f1e9d21d880d769a1028aa7c723bdb30c58554d6 Mon Sep 17 00:00:00 2001 From: mzxrules Date: Sun, 9 Sep 2018 00:16:15 -0400 Subject: [PATCH 430/755] Updated freestanding keys flags, verified those with comments --- Regions.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Regions.py b/Regions.py index a8efd6cce..3987ff3be 100644 --- a/Regions.py +++ b/Regions.py @@ -1156,7 +1156,7 @@ def _create_region(name, type, locations=None, exits=None): 'Fire Temple MQ Boss Key Chest': (0, None, 0x27E4, 'Chest', 0x04, 'Fire Temple'), 'Fire Temple MQ Big Lava Room Bombable Chest': (0, None, 0x5841, 'Chest', 0x04, 'Fire Temple'), 'Fire Temple MQ Maze Side Room': (0, None, 0x5848, 'Chest', 0x04, 'Fire Temple'), - 'Fire Temple MQ Freestanding Key': (None, None, 0x02, 'Collectable', 0x04, 'Fire Temple'), # Need to verify this is the correct collectible flag. + 'Fire Temple MQ Freestanding Key': (None, None, 0x1C, 'Collectable', 0x04, 'Fire Temple'), # Water Temple vanilla 'Water Temple Map Chest': (0x26690A6, None, 0x1822, 'Chest', 0x05, 'Water Temple'), @@ -1175,7 +1175,7 @@ def _create_region(name, type, locations=None, exits=None): 'Water Temple MQ Longshot Chest': (0, None, 0xB120, 'Chest', 0x05, 'Water Temple'), 'Water Temple MQ Compass Chest': (0, None, 0x1801, 'Chest', 0x05, 'Water Temple'), 'Water Temple MQ Map Chest': (0, None, 0xB822, 'Chest', 0x05, 'Water Temple'), - 'Water Temple MQ Freestanding Key': (None, None, 0x01, 'Collectable', 0x05, 'Water Temple'), # Need to verify this is the correct collectible flag. + 'Water Temple MQ Freestanding Key': (None, None, 0x01, 'Collectable', 0x05, 'Water Temple'), # Spirit Temple vanilla 'Spirit Temple Child Left Chest': (0x2B190BA, None, 0x5528, 'Chest', 0x06, 'Spirit Temple'), @@ -1255,7 +1255,7 @@ def _create_region(name, type, locations=None, exits=None): 'Shadow Temple MQ After Wind Hidden Chest': (0, None, 0x6934, 'Chest', 0x07, 'Shadow Temple'), 'Shadow Temple MQ After Wind Enemy Chest': (0, None, 0x7888, 'Chest', 0x07, 'Shadow Temple'), 'Shadow Temple MQ Near Ship Invisible Chest': (0, None, 0x684E, 'Chest', 0x07, 'Shadow Temple'), - 'Shadow Temple MQ Freestanding Key': (None, None, 0x02, 'Collectable', 0x07, 'Shadow Temple'), # This needs tested + 'Shadow Temple MQ Freestanding Key': (None, None, 0x06, 'Collectable', 0x07, 'Shadow Temple'), # Bottom of the Well vanilla 'Bottom of the Well Front Left Hidden Wall': (0x32D317E, None, 0x5848, 'Chest', 0x08, 'Bottom of the Well'), @@ -1276,8 +1276,8 @@ def _create_region(name, type, locations=None, exits=None): 'Bottom of the Well MQ Map Chest': (0, None, 0x0823, 'Chest', 0x08, 'Bottom of the Well'), 'Bottom of the Well MQ Lens Chest': (0, None, 0xB141, 'Chest', 0x08, 'Bottom of the Well'), 'Bottom of the Well MQ Compass Chest': (0, None, 0x1802, 'Chest', 0x08, 'Bottom of the Well'), - 'Bottom of the Well MQ Dead Hand Freestanding Key': (None, None, 0x02, 'Collectable', 0x08, 'Bottom of the Well'), # Flags seem probably correct? - 'Bottom of the Well MQ East Inner Room Freestanding Key': (None, None, 0x01, 'Collectable', 0x08, 'Bottom of the Well'), # Should test + 'Bottom of the Well MQ Dead Hand Freestanding Key': (None, None, 0x02, 'Collectable', 0x08, 'Bottom of the Well'), + 'Bottom of the Well MQ East Inner Room Freestanding Key': (None, None, 0x01, 'Collectable', 0x08, 'Bottom of the Well'), # Ice Cavern vanilla 'Ice Cavern Map Chest': (0x2C4016A, None, 0x0820, 'Chest', 0x09, 'Ice Cavern'), @@ -1363,7 +1363,7 @@ def _create_region(name, type, locations=None, exits=None): 'Ganons Castle MQ Spirit Trial Sun Front Left Chest': (0, None, 0x8909, 'Chest', 0x0D, 'my castle'), 'Ganons Castle MQ Spirit Trial First Chest': (0, None, 0x506A, 'Chest', 0x0D, 'my castle'), 'Ganons Castle MQ Spirit Trial Second Chest': (0, None, 0x6954, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle MQ Forest Trial Freestanding Key': (None, None, 0x01, 'Collectable', 0x0D, 'my castle'), # This also needs checked to see if the flag is correct + 'Ganons Castle MQ Forest Trial Freestanding Key': (None, None, 0x01, 'Collectable', 0x0D, 'my castle'), # I don't think the addresses matter for Link's Pocket anymore, but they can't be None for some reason 'Links Pocket': (0x34806FB, 0x34806FF, None, 'Boss', None, 'Link\'s Pocket'), From db8d0c5e2fb372816fd119b1f3a233e03e5043e3 Mon Sep 17 00:00:00 2001 From: Stephen Rollins Date: Fri, 7 Sep 2018 07:22:16 -0600 Subject: [PATCH 431/755] Add alternative hint names for items --- HintList.py | 178 ++++++++++++++++++++++++++-------------------------- 1 file changed, 89 insertions(+), 89 deletions(-) diff --git a/HintList.py b/HintList.py index 7ae5e2065..4fd8a4475 100644 --- a/HintList.py +++ b/HintList.py @@ -43,76 +43,76 @@ def getHintGroup(group, world): # & is a new line # @ will print the player name # # sets color to white (currently only used for dungeon reward hints). -hintTable = {'Hammer': (["the dragon smasher"], 'item'), - 'Magic Meter': (["pixie dust"], 'item'), - 'Double Defense': (["a white outline"], 'item'), - 'Progressive Hookshot': (["Dampe's keepsake"], 'item'), - 'Progressive Strength Upgrade': (["power gloves"], 'item'), - 'Hover Boots': (["butter boots"], 'item'), - 'Master Sword': (["evil's bane"], 'item'), - 'Mirror Shield': (["the reflective rampart"], 'item'), - 'Farores Wind': (["teleportation"], 'item'), - 'Nayrus Love': (["a safe space"], 'item'), - 'Ice Arrows': (["the refrigerator rocket"], 'item'), - 'Lens of Truth': (["the perjureless porthole"], 'item'), - 'Dins Fire': (["an inferno"], 'item'), - 'Ocarina': (["a flute"], 'item'), - 'Fairy Ocarina': (["a brown flute"], 'item'), - 'Goron Tunic': (["ruby robes"], 'item'), - 'Zora Tunic': (["a sapphire suit"], 'item'), - 'Iron Boots': (["sink shoes"], 'item'), - 'Zeldas Letter': (["an autograph"], 'item'), - 'Zeldas Lullaby': (["a song of royal slumber"], 'item'), - 'Nocturne of Shadow': (["a song of spooky spirits"], 'item'), - 'Bow': (["an archery enabler"], 'item'), - 'Bomb Bag': (["an explosive container"], 'item'), - 'Sarias Song': (["a song of dancing Gorons"], 'item'), - 'Song of Time': (["a song 7 years long"], 'item'), - 'Song of Storms': (["Rain Dance"], 'item'), - 'Minuet of Forest': (["the song of tall trees"], 'item'), - 'Requiem of Spirit': (["a song of sandy statues"], 'item'), - 'Slingshot': (["a seed shooter"], 'item'), - 'Boomerang': (["a banana"], 'item'), - 'Fire Arrows': (["the furnace firearm"], 'item'), - 'Ocarina of Time': (["a blue flute"], 'item'), - 'Bottle': (["a fairy prison"], 'item'), - 'Bottle with Letter': (["a call for help"], 'item'), - 'Bottle with Milk': (["cow juice"], 'item'), - 'Bottle with Red Potion': (["a vitality vial"], 'item'), - 'Bottle with Green Potion': (["a magic mixture"], 'item'), - 'Bottle with Blue Potion': (["a cure-all antidote"], 'item'), - 'Bottle with Fairy': (["an imprisoned fairy"], 'item'), - 'Bottle with Fish': (["an aquarium"], 'item'), - 'Bottle with Blue Fire': (["a conflagration canteen"], 'item'), - 'Bottle with Bugs': (["a terrarium"], 'item'), - 'Bottle with Poe': (["a spooky ghost"], 'item'), - 'Progressive Scale': (["Zora's Flippers"], 'item'), - 'Stone of Agony': (["an empty chest"], 'item'), - 'Eponas Song': (["an equestrian etude"], 'item'), - 'Epona': (["a horse"], 'item'), - 'Gerudo Membership Card': (["a GT subscription"], 'item'), - 'Progressive Wallet': (["a mo' money holder"], 'item'), - 'Bolero of Fire': (["a song of lethal lava"], 'item'), - 'Suns Song': (["Sunny Day"], 'item'), - 'Deku Shield': (["a wooden ward"], 'item'), - 'Hylian Shield': (["a steel safeguard"], 'item'), - 'Deku Stick Capacity': (["a bundle of sticks"], 'item'), - 'Deku Nut Capacity': (["more nuts"], 'item'), - 'Prelude of Light': (["a luminous prologue melody"], 'item'), - 'Serenade of Water': (["a song of a damp ditch"], 'item'), - 'Heart Container': (["a lot of love"], 'item'), - 'Piece of Heart': (["love"], 'item'), - 'Piece of Heart (Treasure Chest Game)': (["WINNER!"], 'item'), - 'Recovery Heart': (["a free heal"], 'item'), - 'Rupee (1)': (["rare riches"], 'item'), - 'Rupees (5)': (["a common coin"], 'item'), - 'Rupees (20)': (["couch cash"], 'item'), - 'Rupees (50)': (["big bucks"], 'item'), - 'Rupees (200)': (["a juicy jackpot"], 'item'), - 'Light Arrows': (["the shining shot"], 'item'), - 'Kokiri Sword': (["a butter knife"], 'item'), - 'Biggoron Sword': (["a shield disabler"], 'item'), - 'Pocket Egg': (["a Cucco container"], 'item'), +hintTable = {'Hammer': (["the dragon smasher", "a metallic crusher", "the WHAM! weapon"], 'item'), + 'Magic Meter': (["pixie dust", "ability fuel"], 'item'), + 'Double Defense': (["a white outline", "sturdy hearts", "strengthened love"], 'item'), + 'Progressive Hookshot': (["Dampe's keepsake", "an arm extension", "a great chain"], 'item'), + 'Progressive Strength Upgrade': (["power gloves", "arm day results", "heavy object lifters"], 'item'), + 'Hover Boots': (["butter boots", "slippery shoes", "spacewalkers"], 'item'), + 'Master Sword': (["evil's bane", "the sword in the stone"], 'item'), + 'Mirror Shield': (["the reflective rampart", "Medusa's weakness"], 'item'), + 'Farores Wind': (["teleportation", "relocation magic", "a warp spell", "green wind"], 'item'), + 'Nayrus Love': (["a safe space", "an impregnable aura"], 'item'), + 'Ice Arrows': (["the refrigerator rocket", "frostbite bolts", "cold darts", "freezing projectiles"], 'item'), + 'Lens of Truth': (["the perjureless porthole", "true sight", "a detective's tool"], 'item'), + 'Dins Fire': (["an inferno", "a great heat wave", "a blast of hot air"], 'item'), + 'Ocarina': (["a flute", "a source of music"], 'item'), + 'Fairy Ocarina': (["a brown flute", "a forest instrument"], 'item'), + 'Goron Tunic': (["ruby robes", "fireproof garbs", "mountain clothing"], 'item'), + 'Zora Tunic': (["a sapphire suit", "a fishy outfit", "lake clothing"], 'item'), + 'Iron Boots': (["sink shoes", "watery footwear", "noisy boots"], 'item'), + 'Zeldas Letter': (["an autograph", "royal stationary", "royal snail mail"], 'item'), + 'Zeldas Lullaby': (["a song of royal slumber", "a triforce tune"], 'item'), + 'Nocturne of Shadow': (["a song of spooky spirits", "a graveyard boogie", "a ghastly tune"], 'item'), + 'Bow': (["an archery enabler", "a danger dart launcher"], 'item'), + 'Bomb Bag': (["an explosive container", "kaboom storage"], 'item'), + 'Sarias Song': (["a song of dancing Gorons", "a green girl's tune", "child's forest melody"], 'item'), + 'Song of Time': (["a song 7 years long", "a song from a blue flute", "a tune to move blocks"], 'item'), + 'Song of Storms': (["Rain Dance", "a thunderstorm melody", "the tune of windmills"], 'item'), + 'Minuet of Forest': (["the song of tall trees", "adult's forest melody", "a green warp song"], 'item'), + 'Requiem of Spirit': (["a song of sandy statues", "an orange warp song", "the tune of the desert"], 'item'), + 'Slingshot': (["a seed shooter", "child's projectiles"], 'item'), + 'Boomerang': (["a banana", "a faithful curved stick", "Jabu Jabu's prize"], 'item'), + 'Fire Arrows': (["the furnace firearm", "flame darts", "burning projectiles", "the sun's gift"], 'item'), + 'Ocarina of Time': (["a blue flute", "a royal instrument"], 'item'), + 'Bottle': (["a fairy prison", "a glass container", "an empty jar", "something to be filled"], 'item'), + 'Bottle with Letter': (["a call for help", "an SOS jar", "fishy stationary"], 'item'), + 'Bottle with Milk': (["cow juice", "a white liquid"], 'item'), + 'Bottle with Red Potion': (["a vitality vial", "a red liquid"], 'item'), + 'Bottle with Green Potion': (["a magic mixture", "a green liquid"], 'item'), + 'Bottle with Blue Potion': (["a cure-all antidote", "a blue liquid"], 'item'), + 'Bottle with Fairy': (["an imprisoned fairy", "an extra life"], 'item'), + 'Bottle with Fish': (["an aquarium", "a contained sea beast"], 'item'), + 'Bottle with Blue Fire': (["a conflagration canteen", "an icemelt jar"], 'item'), + 'Bottle with Bugs': (["a terrarium", "skultula finders", "a digging trio"], 'item'), + 'Bottle with Poe': (["a spooky ghost", "a face in the jar"], 'item'), + 'Progressive Scale': (["Zora's Flippers", "a dive enhancer"], 'item'), + 'Stone of Agony': (["an empty chest", "a vibrating rock", "a clue finder"], 'item'), + 'Eponas Song': (["an equestrian etude", "a ranch song", "Malon's tune"], 'item'), + 'Epona': (["a horse", "a four legged friend"], 'item'), + 'Gerudo Membership Card': (["a GT subscription", "a desert tribe's pass"], 'item'), + 'Progressive Wallet': (["a mo' money holder", "a gem purse", "financial capacity"], 'item'), + 'Bolero of Fire': (["a song of lethal lava", "a red warp song", "a volcano tune", "a song of a red sea"], 'item'), + 'Suns Song': (["Sunny Day", "a time advancer", "a day/night melody", "the redead's keepsake", "the gibdo's bane"], 'item'), + 'Deku Shield': (["a wooden ward", "forest protection"], 'item'), + 'Hylian Shield': (["a steel safeguard", "a Hylian relic", "metallic protection"], 'item'), + 'Deku Stick Capacity': (["a bundle of sticks", "more flammable twigs"], 'item'), + 'Deku Nut Capacity': (["more nuts", "flashbang storage"], 'item'), + 'Prelude of Light': (["a luminous prologue melody", "a yellow warp song", "the temple traveler"], 'item'), + 'Serenade of Water': (["a song of a damp ditch", "a blue warp song", "the lake's tune", "ice cavern's melody"], 'item'), + 'Heart Container': (["a lot of love", "a Valentine's gift", "every boss' reward"], 'item'), + 'Piece of Heart': (["love", "a partial Valentine"], 'item'), + 'Piece of Heart (Treasure Chest Game)': (["WINNER!", "a guaranteed 1/32 chance"], 'item'), + 'Recovery Heart': (["a free heal", "disappointing love"], 'item'), + 'Rupee (1)': (["rare riches", "a green gem"], 'item'), + 'Rupees (5)': (["a common coin", "a blue gem"], 'item'), + 'Rupees (20)': (["couch cash", "a red gem"], 'item'), + 'Rupees (50)': (["big bucks", "a purple gem", "wealth"], 'item'), + 'Rupees (200)': (["a juicy jackpot", "a yellow gem", "great wealth"], 'item'), + 'Light Arrows': (["the shining shot", "glowing darts", "Ganondorf's bane", "Zelda's final gift"], 'item'), + 'Kokiri Sword': (["a butter knife", "a tiny, sharp blade"], 'item'), + 'Biggoron Sword': (["a shield disabler", "a two-handed blade", "Biggoron's product", "an epic trade's end"], 'item'), + 'Pocket Egg': (["a Cucco container", "a Cucco, eventually", "a fowl youth"], 'item'), 'Weird Egg': (["a chicken dilemma"], 'item'), 'Pocket Cucco': (["a little clucker"], 'item'), 'Cojiro': (["a cerulean capon"], 'item'), @@ -126,27 +126,27 @@ def getHintGroup(group, world): 'Claim Check': (["a three day wait"], 'item'), 'Map': (["a dungeon atlas"], 'item'), 'Compass': (["a treasure tracker"], 'item'), - 'BossKey': (["a master of unlocking"], 'item'), - 'SmallKey': (["a tool for unlocking"], 'item'), + 'BossKey': (["a master of unlocking", "a dungeon's final pass"], 'item'), + 'SmallKey': (["a tool for unlocking", "a dungeon pass", "a lock remover", "a more legal lockpick", "a portal opener"], 'item'), 'FortressSmallKey': (["a get out of jail free card"], 'item'), - 'KeyError': (["something mysterious"], 'item'), - 'Arrows (5)': (["danger darts"], 'item'), - 'Arrows (10)': (["danger darts"], 'item'), - 'Arrows (30)': (["danger darts"], 'item'), - 'Bombs (5)': (["explosives"], 'item'), - 'Bombs (10)': (["explosives"], 'item'), - 'Bombs (20)': (["lots-o-explosives"], 'item'), - 'Ice Trap': (["a gift from Ganon"], 'item'), + 'KeyError': (["something mysterious", "an unknown treasure"], 'item'), + 'Arrows (5)': (["danger darts", "piercing ammunition", "a quiver's contents"], 'item'), + 'Arrows (10)': (["danger darts", "piercing ammunition", "a quiver's contents"], 'item'), + 'Arrows (30)': (["danger darts", "piercing ammunition", "a quiver's contents"], 'item'), + 'Bombs (5)': (["explosives", "sparky boom balls"], 'item'), + 'Bombs (10)': (["explosives", "sparky boom balls"], 'item'), + 'Bombs (20)': (["lots-o-explosives", "sparky boom balls"], 'item'), + 'Ice Trap': (["a gift from Ganon", "a chilling discovery", "an icy blast", "an unwanted freeze", "a wintery surprise"], 'item'), 'Magic Bean': (["wizardly legumes"], 'item'), - 'Bombchus': (["mice bombs"], 'item'), - 'Bombchus (5)': (["mice bombs"], 'item'), - 'Bombchus (10)': (["mice bombs"], 'item'), - 'Bombchus (20)': (["mice bombs"], 'item'), - 'Deku Nuts (5)': (["some nuts"], 'item'), - 'Deku Nuts (10)': (["lots-o-nuts"], 'item'), - 'Gold Skulltulla Token': (["proof of destruction"], 'item'), + 'Bombchus': (["mice bombs", "hot-headed friends"], 'item'), + 'Bombchus (5)': (["mice bombs", "hot-headed friends"], 'item'), + 'Bombchus (10)': (["mice bombs", "hot-headed friends"], 'item'), + 'Bombchus (20)': (["mice bombs", "hot-headed friends"], 'item'), + 'Deku Nuts (5)': (["some nuts", "some flashbangs", "Sheik's ammo"], 'item'), + 'Deku Nuts (10)': (["lots-o-nuts", "lots of flashbangs", "Sheik's ammo"], 'item'), + 'Gold Skulltulla Token': (["proof of destruction", "an arachnid chip", "spider remains"], 'item'), #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box - '10 Big Poes': ("They say that Big Poes leads&to", 'alwaysLocation'), + '10 Big Poes': (["They say that Big Poes leads&to", "They say that ghost&hunters are rewarded&with"], 'alwaysLocation'), 'Deku Theater Mask of Truth': ("They say that the Mask of Truth&yields", 'alwaysLocation'), '30 Gold Skulltulla Reward': ("They say that slaying&30 Gold Skulltulas&reveals", 'alwaysLocation'), '40 Gold Skulltulla Reward': ("They say that slaying&40 Gold Skulltulas&reveals", 'alwaysLocation'), @@ -156,7 +156,7 @@ def getHintGroup(group, world): 'Child Fishing': ("They say that fishing in youth&bestows", 'location'), 'Adult Fishing': ("They say that fishing in maturity&bestows", 'location'), '20 Gold Skulltulla Reward': ("They say that slaying&20 Gold Skulltulas&reveals", 'location'), - 'Treasure Chest Game': ("They say that gambling&grants", 'location'), + 'Treasure Chest Game': (["They say that gambling&grants", "They say there is a 1/32 chance&to win"], 'location'), 'Darunias Joy': ("They say that Darunia's dance leads&to", 'location'), 'Frog Ocarina Game': ("They say The Frogs of Zora River&hold", 'location'), 'Horseback Archery 1500 Points': ("They say that mastery of horseback&archery grants", 'location'), From d13b87e809d5e41f2d8bc110fbefe523ce3f9188 Mon Sep 17 00:00:00 2001 From: Stephen Rollins Date: Fri, 7 Sep 2018 07:26:23 -0600 Subject: [PATCH 432/755] Replace some misleading item hint names A Fairy Prison - Would be really easy to confuse with fairy in a bottle Zora's Flippers - A cute inside joke for LttP runners, but one that OoT runners won't understand Rare Riches - Makes it sound like a very valuable rupee worth pursuing, when it is in fact the least valuable rupee of all --- HintList.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/HintList.py b/HintList.py index 4fd8a4475..b72257758 100644 --- a/HintList.py +++ b/HintList.py @@ -75,7 +75,7 @@ def getHintGroup(group, world): 'Boomerang': (["a banana", "a faithful curved stick", "Jabu Jabu's prize"], 'item'), 'Fire Arrows': (["the furnace firearm", "flame darts", "burning projectiles", "the sun's gift"], 'item'), 'Ocarina of Time': (["a blue flute", "a royal instrument"], 'item'), - 'Bottle': (["a fairy prison", "a glass container", "an empty jar", "something to be filled"], 'item'), + 'Bottle': (["a glass container", "an empty jar", "something to be filled"], 'item'), 'Bottle with Letter': (["a call for help", "an SOS jar", "fishy stationary"], 'item'), 'Bottle with Milk': (["cow juice", "a white liquid"], 'item'), 'Bottle with Red Potion': (["a vitality vial", "a red liquid"], 'item'), @@ -86,7 +86,7 @@ def getHintGroup(group, world): 'Bottle with Blue Fire': (["a conflagration canteen", "an icemelt jar"], 'item'), 'Bottle with Bugs': (["a terrarium", "skultula finders", "a digging trio"], 'item'), 'Bottle with Poe': (["a spooky ghost", "a face in the jar"], 'item'), - 'Progressive Scale': (["Zora's Flippers", "a dive enhancer"], 'item'), + 'Progressive Scale': (["vertical swim depth", "a dive enhancer"], 'item'), 'Stone of Agony': (["an empty chest", "a vibrating rock", "a clue finder"], 'item'), 'Eponas Song': (["an equestrian etude", "a ranch song", "Malon's tune"], 'item'), 'Epona': (["a horse", "a four legged friend"], 'item'), @@ -104,7 +104,7 @@ def getHintGroup(group, world): 'Piece of Heart': (["love", "a partial Valentine"], 'item'), 'Piece of Heart (Treasure Chest Game)': (["WINNER!", "a guaranteed 1/32 chance"], 'item'), 'Recovery Heart': (["a free heal", "disappointing love"], 'item'), - 'Rupee (1)': (["rare riches", "a green gem"], 'item'), + 'Rupee (1)': (["a penny", "a tiny coin", "a green gem"], 'item'), 'Rupees (5)': (["a common coin", "a blue gem"], 'item'), 'Rupees (20)': (["couch cash", "a red gem"], 'item'), 'Rupees (50)': (["big bucks", "a purple gem", "wealth"], 'item'), From 52a4e88d0153b8e4638509980e44abfaad41289b Mon Sep 17 00:00:00 2001 From: Stephen Rollins Date: Fri, 7 Sep 2018 10:49:23 -0600 Subject: [PATCH 433/755] Add alternate hint names for locations --- HintList.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/HintList.py b/HintList.py index b72257758..3bb3cad80 100644 --- a/HintList.py +++ b/HintList.py @@ -146,7 +146,7 @@ def getHintGroup(group, world): 'Deku Nuts (10)': (["lots-o-nuts", "lots of flashbangs", "Sheik's ammo"], 'item'), 'Gold Skulltulla Token': (["proof of destruction", "an arachnid chip", "spider remains"], 'item'), #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box - '10 Big Poes': (["They say that Big Poes leads&to", "They say that ghost&hunters are rewarded&with"], 'alwaysLocation'), + '10 Big Poes': (["They say that Big Poes leads&to", "They say that ghost hunters&will be rewarded with&"], 'alwaysLocation'), 'Deku Theater Mask of Truth': ("They say that the Mask of Truth&yields", 'alwaysLocation'), '30 Gold Skulltulla Reward': ("They say that slaying&30 Gold Skulltulas&reveals", 'alwaysLocation'), '40 Gold Skulltulla Reward': ("They say that slaying&40 Gold Skulltulas&reveals", 'alwaysLocation'), @@ -158,27 +158,27 @@ def getHintGroup(group, world): '20 Gold Skulltulla Reward': ("They say that slaying&20 Gold Skulltulas&reveals", 'location'), 'Treasure Chest Game': (["They say that gambling&grants", "They say there is a 1/32 chance&to win"], 'location'), 'Darunias Joy': ("They say that Darunia's dance leads&to", 'location'), - 'Frog Ocarina Game': ("They say The Frogs of Zora River&hold", 'location'), + 'Frog Ocarina Game': (["They say The Frogs of Zora River&hold", "They say that the musical&hibians have found&"], 'location'), 'Horseback Archery 1500 Points': ("They say that mastery of horseback&archery grants", 'location'), - 'Lake Hylia Sun': ("They say staring into the sun&grants", 'location'), + 'Lake Hylia Sun': (["They say staring into the sun&grants", "They say that acts of solar&aggression are punished&with"], 'location'), 'Heart Piece Grave Chest': ("They say there's a hidden location&where the Sun's Song&spawns", 'location'), 'Goron City Leftmost Maze Chest': ("They say in Goron City the hammer&unlocks", 'location'), 'Chest Above King Dodongo': ("They say that the chest above the&Infernal Dinosaur&contains", 'location'), 'Forest Temple Floormaster Chest': ("Deep in the forest, shadows guard a&chest containing", 'location'), 'Fire Temple Scarecrow Chest': ("They say high in the Fire Temple,&Pierre hid", 'location'), - 'Fire Temple Megaton Hammer Chest': ("They say that the highest&chest in the crater&holds", 'location'), + 'Fire Temple Megaton Hammer Chest': (["They say that the highest&chest in the crater&holds", "They say that the hammer's&home has been filled&with"], 'location'), 'Water Temple River Chest': ("They say deep under the lake,&beyond the currents,&hides", 'location'), 'Water Temple Boss Key Chest': ("Deep under the lake,&the gilded chest&contains", 'location'), 'Gerudo Training Grounds Underwater Silver Rupee Chest': ("They say those who seek&sunken silver rupees will&find", 'location'), 'Gerudo Training Grounds Maze Path Final Chest': ("They say that past all the locked&doors is", 'location'), - 'Bottom of the Well Defeat Boss': ("They say that Dead Hand&holds", 'location'), + 'Bottom of the Well Defeat Boss': (["They say that Dead Hand&holds", "They say that draining the&water reveals a monster&guarding"], 'location'), 'Silver Gauntlets Chest': ("They say that upon&the Colossus's southern edge&is", 'location'), 'Mirror Shield Chest': ("They say that upon&the Colossus's northern edge&is", 'location'), - 'Shadow Temple Hidden Floormaster Chest': ("They say in a maze&guarded by shadows&hides", 'location'), - 'Haunted Wasteland Structure Chest': ("They say that deep in the Wasteland&is", 'location'), + 'Shadow Temple Hidden Floormaster Chest': (["They say in a maze&guarded by shadows&hides", "They say that after&a free boat ride&comes"], 'location'), + 'Haunted Wasteland Structure Chest': (["They say that deep in the Wasteland&is", "They say that beneath the sands&lies"], 'location'), 'Composer Grave Chest': ("They say that the Composer Brothers&hid", 'location'), 'Song from Composer Grave': ("They say that the Composer Brothers&wrote", 'location'), - 'Song at Windmill': ("They say that Guru-guru is driven&mad by", 'location'), + 'Song at Windmill': (["They say that Guru-guru is driven&mad by", "They say the windmill echoes&with"], 'location'), 'Sheik Forest Song': ("They say that deep&in the forest Sheik&teaches", 'location'), 'Sheik at Temple': ("They say that Sheik&waits at a monument to time to&teach", 'location'), 'Sheik in Crater': ("They say that the crater's melody&is", 'location'), From b783af345f329a4171d383f3396ca915e1f62130 Mon Sep 17 00:00:00 2001 From: Stephen Rollins Date: Fri, 7 Sep 2018 10:49:48 -0600 Subject: [PATCH 434/755] Add more junk hints They are intended to almost look like legitimate hints --- HintList.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/HintList.py b/HintList.py index 3bb3cad80..3a55cd68f 100644 --- a/HintList.py +++ b/HintList.py @@ -232,6 +232,9 @@ def getHintGroup(group, world): '1044': ("I like shorts! They're comfy and&easy to wear!", 'junkHint'), '1044': ("They say all toasters toast toast.", 'junkHint'), '1045': ("They say that Okami is&the best Zelda game.", 'junkHint'), + '1046': ("They say that quest guidance&can be found at a&talking rock.", 'junkHint'), + '1047': ("They say that victory can&be found after the&Ganon fight.", 'junkHint'), + '1047': ("They say that the final item&you're looking for can be&found somewhere in Hyrule", 'junkHint'), #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box 'Deku Tree': ("an ancient tree", 'dungeon'), 'Dodongos Cavern': ("an immense cavern", 'dungeon'), From 7eb4d7620d0648dc79c3b65abd9416898c8e2a88 Mon Sep 17 00:00:00 2001 From: Stephen Rollins Date: Sat, 8 Sep 2018 21:50:06 -0600 Subject: [PATCH 435/755] Improve line breaks in some location hints --- HintList.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/HintList.py b/HintList.py index 3a55cd68f..871cf1e2f 100644 --- a/HintList.py +++ b/HintList.py @@ -163,14 +163,14 @@ def getHintGroup(group, world): 'Lake Hylia Sun': (["They say staring into the sun&grants", "They say that acts of solar&aggression are punished&with"], 'location'), 'Heart Piece Grave Chest': ("They say there's a hidden location&where the Sun's Song&spawns", 'location'), 'Goron City Leftmost Maze Chest': ("They say in Goron City the hammer&unlocks", 'location'), - 'Chest Above King Dodongo': ("They say that the chest above the&Infernal Dinosaur&contains", 'location'), - 'Forest Temple Floormaster Chest': ("Deep in the forest, shadows guard a&chest containing", 'location'), - 'Fire Temple Scarecrow Chest': ("They say high in the Fire Temple,&Pierre hid", 'location'), + 'Chest Above King Dodongo': ("They say that the chest above the&Infernal Dinosaur contains&", 'location'), + 'Forest Temple Floormaster Chest': ("Deep in the forest, shadows&guard a chest containing&", 'location'), + 'Fire Temple Scarecrow Chest': ("They say high in the Fire&Temple, Pierre hid&", 'location'), 'Fire Temple Megaton Hammer Chest': (["They say that the highest&chest in the crater&holds", "They say that the hammer's&home has been filled&with"], 'location'), 'Water Temple River Chest': ("They say deep under the lake,&beyond the currents,&hides", 'location'), 'Water Temple Boss Key Chest': ("Deep under the lake,&the gilded chest&contains", 'location'), 'Gerudo Training Grounds Underwater Silver Rupee Chest': ("They say those who seek&sunken silver rupees will&find", 'location'), - 'Gerudo Training Grounds Maze Path Final Chest': ("They say that past all the locked&doors is", 'location'), + 'Gerudo Training Grounds Maze Path Final Chest': ("They say that past&all the locked doors is&", 'location'), 'Bottom of the Well Defeat Boss': (["They say that Dead Hand&holds", "They say that draining the&water reveals a monster&guarding"], 'location'), 'Silver Gauntlets Chest': ("They say that upon&the Colossus's southern edge&is", 'location'), 'Mirror Shield Chest': ("They say that upon&the Colossus's northern edge&is", 'location'), @@ -186,8 +186,8 @@ def getHintGroup(group, world): 'Sheik in Kakariko': ("They say that a&ravaged village mourns&with", 'location'), 'Sheik at Colossus': ("They say that a hero ventures&beyond the Wasteland to&learn", 'location'), 'Zoras Fountain Bottom Freestanding PoH': ("They say under the icy waters&lies", 'location'), - 'Colossus Freestanding PoH': ("They say that riding a&beanstalk in the desert&leads to", 'location'), - 'DM Crater Volcano Freestanding PoH': ("They say that riding a&beanstalk in the crater&leads to", 'location'), + 'Colossus Freestanding PoH': ("They say that riding a&beanstalk in the desert leads&to", 'location'), + 'DM Crater Volcano Freestanding PoH': ("They say that riding a&beanstalk in the crater leads&to", 'location'), 'Goron City Pot Freestanding PoH': ("They say that spinning&Goron pottery&contains", 'location'), #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box '1001': ("Ganondorf 2020!", 'junkHint'), From 3a26b2cf11eeb52d12bb5e3056accd12356387a5 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 9 Sep 2018 01:13:06 -0400 Subject: [PATCH 436/755] Fix saving shopsanity options (Issue #92) --- Settings.py | 2 +- version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Settings.py b/Settings.py index 4c719548d..acc5c2f04 100644 --- a/Settings.py +++ b/Settings.py @@ -773,7 +773,7 @@ def parse_custom_navi_color(s): are all reduced to 10 Rupees. ''' }), - Setting_Info('shopsanity', str, 2, True, + Setting_Info('shopsanity', str, 3, True, { 'default': 'off', 'const': 'off', diff --git a/version.py b/version.py index 17acdc037..c9dad01c6 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.16.22 f.LUM' +__version__ = '2.16.23 f.LUM' From 93e680daedd8b6ac706ab924223874908fe8ab76 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 9 Sep 2018 01:54:39 -0400 Subject: [PATCH 437/755] Change a misleading color option to be an obfuscated one --- Patches.py | 2 +- version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Patches.py b/Patches.py index 9f33b71d6..9ff1b2a14 100644 --- a/Patches.py +++ b/Patches.py @@ -38,7 +38,7 @@ "Blood Orange": [0xF0, 0x30, 0x30], "NES Green": [0x00, 0xD0, 0x00], "Dark Green": [0x00, 0x25, 0x18], - "Only": [80, 140, 240], + "Lumen": [80, 140, 240], } NaviColors = { diff --git a/version.py b/version.py index c9dad01c6..3835094b1 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.16.23 f.LUM' +__version__ = '2.16.24 f.LUM' From 66f8ad766e84a40e972ff1d0fd745aea3cf3da23 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 9 Sep 2018 02:26:46 -0400 Subject: [PATCH 438/755] Gossip Stone Hints are added to Spoiler Log --- BaseClasses.py | 4 ++++ Hints.py | 33 +++++++++++++++++++-------------- Main.py | 2 ++ Patches.py | 4 ++-- version.py | 2 +- 5 files changed, 28 insertions(+), 17 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 8667c76ce..dce7c2c53 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -732,6 +732,7 @@ def __init__(self, world): self.locations = {} self.metadata = {} self.required_locations = [] + self.hints = {} def parse_data(self): spoiler_locations = [location for location in self.world.get_locations() if not location.event] @@ -767,3 +768,6 @@ def to_file(self, filename): outfile.write('\n'.join(['%s: %s [Player %d]' % (location.name, location.item.name, location.item.world.id + 1) for location in self.required_locations])) else: outfile.write('\n'.join(['%s: %s' % (location.name, location.item.name) for location in self.required_locations])) + + outfile.write('\n\nGossip Stone Hints:\n\n') + outfile.write('\n'.join(self.hints.values())) diff --git a/Hints.py b/Hints.py index 7455b8992..56e722b5e 100644 --- a/Hints.py +++ b/Hints.py @@ -55,12 +55,17 @@ def isDungeonItem(item): return item.type == 'Map' or item.type == 'Compass' or item.type == 'BossKey' or item.type == 'SmallKey' -def update_hint(messages, id, text): - update_message_by_id(messages, id, get_raw_text(text)) +def add_hint(world, id, text): + world.spoiler.hints[id] = text + + +def writeGossipStoneHintsHints(world, messages): + for id,text in world.spoiler.hints.items(): + update_message_by_id(messages, id, get_raw_text(text)) #builds out general hints based on location and whether an item is required or not -def buildGossipHints(world, messages): +def buildGossipHints(world): stoneIDs = [0x0401, 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407, 0x0408, 0x0409, 0x040A, 0x040B, 0x040C, 0x040D, 0x040E, 0x040F, 0x0410, @@ -74,11 +79,11 @@ def buildGossipHints(world, messages): if world.trials < 6 and world.trials > 3: for trial,skipped in world.skipped_trials.items(): if skipped: - update_hint(messages, stoneIDs.pop(0), buildHintString("the " + trial + " Trial was dispelled by Sheik.")) + add_hint(world, stoneIDs.pop(0), buildHintString("the " + trial + " Trial was dispelled by Sheik.")) elif world.trials <= 3 and world.trials > 0: for trial,skipped in world.skipped_trials.items(): if not skipped: - update_hint(messages, stoneIDs.pop(0), buildHintString("the " + trial + " Trial protects Ganon's Tower.")) + add_hint(world, stoneIDs.pop(0), buildHintString("the " + trial + " Trial protects Ganon's Tower.")) # add required items locations for hints (good hints) requiredSample = world.spoiler.required_locations @@ -86,10 +91,10 @@ def buildGossipHints(world, messages): requiredSample = random.sample(requiredSample, random.randint(4,5)) for location in requiredSample: if location.parent_region.dungeon: - update_hint(messages, stoneIDs.pop(0), buildHintString(getHint(location.parent_region.dungeon.name).text + \ + add_hint(world, stoneIDs.pop(0), buildHintString(getHint(location.parent_region.dungeon.name).text + \ " is on the way of the hero.")) else: - update_hint(messages, stoneIDs.pop(0), buildHintString(location.hint + " is on the way of the hero.")) + add_hint(world, stoneIDs.pop(0), buildHintString(location.hint + " is on the way of the hero.")) # Don't repeat hints checkedLocations = [] @@ -100,7 +105,7 @@ def buildGossipHints(world, messages): for locationWorld in world.get_locations(): if hint.name == locationWorld.name: checkedLocations.append(hint.name) - update_hint(messages, stoneIDs.pop(0), getHint(locationWorld.name).text + " " + \ + add_hint(world, stoneIDs.pop(0), getHint(locationWorld.name).text + " " + \ getHint(getItemGenericName(locationWorld.item)).text + ".") @@ -116,7 +121,7 @@ def buildGossipHints(world, messages): for locationWorld in world.get_locations(): if hint.name == locationWorld.name: checkedLocations.append(locationWorld.name) - update_hint(messages, stoneIDs.pop(0), getHint(locationWorld.name).text + " " + \ + add_hint(world, stoneIDs.pop(0), getHint(locationWorld.name).text + " " + \ getHint(getItemGenericName(locationWorld.item)).text + ".") # add bad dungeon locations hints @@ -130,7 +135,7 @@ def buildGossipHints(world, messages): location.item.type != 'Song']) checkedLocations.append(locationWorld.name) - update_hint(messages, stoneIDs.pop(0), buildHintString(getHint(dungeon.name).text + \ + add_hint(world, stoneIDs.pop(0), buildHintString(getHint(dungeon.name).text + \ " hoards " + getHint(getItemGenericName(locationWorld.item)).text + ".")) # add bad overworld locations hints @@ -148,7 +153,7 @@ def buildGossipHints(world, messages): overworldSample = random.sample(overworldlocations, random.randint(3,4)) for locationWorld in overworldSample: checkedLocations.append(locationWorld.name) - update_hint(messages, stoneIDs.pop(0), buildHintString(getHint(getItemGenericName(locationWorld.item)).text + \ + add_hint(world, stoneIDs.pop(0), buildHintString(getHint(getItemGenericName(locationWorld.item)).text + \ " can be found at " + locationWorld.hint + ".")) # add good item hints @@ -166,17 +171,17 @@ def buildGossipHints(world, messages): for locationWorld in gooditemSample: checkedLocations.append(locationWorld.name) if locationWorld.parent_region.dungeon: - update_hint(messages, stoneIDs.pop(0), buildHintString(getHint(locationWorld.parent_region.dungeon.name).text + \ + add_hint(world, stoneIDs.pop(0), buildHintString(getHint(locationWorld.parent_region.dungeon.name).text + \ " hoards " + getHint(getItemGenericName(locationWorld.item)).text + ".")) else: - update_hint(messages, stoneIDs.pop(0), buildHintString(getHint(getItemGenericName(locationWorld.item)).text + \ + add_hint(world, stoneIDs.pop(0), buildHintString(getHint(getItemGenericName(locationWorld.item)).text + \ " can be found at " + locationWorld.hint + ".")) # fill the remaining hints with junk junkHints = getHintGroup('junkHint', world) random.shuffle(junkHints) while stoneIDs: - update_hint( messages, stoneIDs.pop(0), junkHints.pop().text ) + add_hint( world, stoneIDs.pop(0), junkHints.pop().text ) # builds boss reward text that is displayed at the temple of time altar for child and adult, pull based off of item in a fixed order. def buildBossRewardHints(world, messages): diff --git a/Main.py b/Main.py index 13437935f..da94d4961 100644 --- a/Main.py +++ b/Main.py @@ -18,6 +18,7 @@ from Rules import set_rules from Fill import distribute_items_restrictive from ItemList import generate_itempool +from Hints import buildGossipHints from Utils import default_output_path from version import __version__ @@ -102,6 +103,7 @@ def main(settings, window=dummy_window()): window.update_progress(50) window.update_status('Calculating Hint Data') CollectionState.update_required_items(worlds) + buildGossipHints(world) window.update_progress(55) logger.info('Patching ROM.') diff --git a/Patches.py b/Patches.py index 549dc54b2..2195a640d 100644 --- a/Patches.py +++ b/Patches.py @@ -8,7 +8,7 @@ import random import copy -from Hints import buildGossipHints, buildBossRewardHints, buildGanonText +from Hints import writeGossipStoneHintsHints, buildBossRewardHints, buildGanonText from Utils import local_path, default_output_path from Items import ItemFactory, item_data from Messages import * @@ -1012,7 +1012,7 @@ def write_save_table(rom): if world.hints != 'mask': rom.write_bytes(0xEE7B84, [0x0C, 0x10, 0x02, 0x10]) rom.write_bytes(0xEE7B8C, [0x24, 0x02, 0x00, 0x20]) - buildGossipHints(world, messages) + writeGossipStoneHintsHints(world, messages) # Set hints for boss reward shuffle rom.write_bytes(0xE2ADB2, [0x70, 0x7A]) diff --git a/version.py b/version.py index aad0258ba..dd0f6613f 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.15.50 f.LUM' +__version__ = '2.15.51 f.LUM' From 8a2d7e330526941884a593c46195e18b5dd897c1 Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Sun, 9 Sep 2018 03:44:13 -0300 Subject: [PATCH 439/755] Make Buy Bottle Bug a progression item --- Items.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Items.py b/Items.py index 9735f49a2..87606b658 100644 --- a/Items.py +++ b/Items.py @@ -214,7 +214,7 @@ def __init__(self, model, gid, price): 'Buy Deku Seeds (30)': (False, True, 'Shop', None, 0x1D, 0x0119, 0x48), 'Sold Out': (False, True, 'Shop', None, 0x26, 0x0148, 0x59), 'Buy Blue Fire': (True, False, 'Shop', None, 0x27, 0x0173, 0x67), - 'Buy Bottle Bug': (False, True, 'Shop', None, 0x28, 0x0174, 0x68), + 'Buy Bottle Bug': (True, False, 'Shop', None, 0x28, 0x0174, 0x68), 'Buy Poe': (False, True, 'Shop', None, 0x2A, 0x0176, 0x6A), 'Buy Fairy\'s Spirit': (True, False, 'Shop', None, 0x2B, 0x0177, 0x6B), 'Buy Arrows (10)': (False, True, 'Shop', None, 0x2C, 0x00D8, 0x25), From fa2335fe85180bac339e1ad1558f43bb2c271ff9 Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Sun, 9 Sep 2018 03:47:19 -0300 Subject: [PATCH 440/755] Logic: Adult Shops, Bug Sources The Adult-Only shops didn't have entrances prevent child access. Bugs are not a given in closed forest. You need to be able to leave the forest, or sticks, sword, boomerang, explosives, or buying bugs. I made buying bugs a progression item. --- Rules.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Rules.py b/Rules.py index 7bf05fb86..980e150d8 100644 --- a/Rules.py +++ b/Rules.py @@ -189,6 +189,9 @@ def global_rules(world): set_rule(world.get_location('Zoras Fountain Bottom Freestanding PoH'), lambda state: state.has('Iron Boots') and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic())) set_rule(world.get_entrance('Water Temple Entrance'), lambda state: state.is_adult() and state.has('Iron Boots') and state.has('Progressive Hookshot') and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic())) set_rule(world.get_location('Sheik in Kakariko'), lambda state: state.is_adult() and state.has('Forest Medallion') and state.has('Fire Medallion') and state.has('Water Medallion')) + set_rule(world.get_entrance('Kakariko Potion Shop Front'), lambda state: state.is_adult()) + set_rule(world.get_entrance('Kakariko Potion Shop Back'), lambda state: state.is_adult()) + set_rule(world.get_entrance('Kakariko Bazaar'), lambda state: state.is_adult()) set_rule(world.get_entrance('Graveyard Warp Pad'), lambda state: state.can_play('Nocturne of Shadow') and state.can_leave_forest()) set_rule(world.get_entrance('Shadow Temple Entrance'), lambda state: state.has('Dins Fire') and state.has('Magic Meter') and state.can_see_with_lens() and state.is_adult() and (state.has('Hover Boots') or state.has('Progressive Hookshot'))) set_rule(world.get_entrance('Bridge Crossing'), lambda state: (state.has('Epona') or state.has('Progressive Hookshot', 2) or world.gerudo_fortress == 'open') and state.is_adult()) @@ -230,10 +233,10 @@ def global_rules(world): set_rule(world.get_entrance('Zora River Plateau Bombable Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_location('Tektite Grotto Freestanding PoH'), lambda state: state.has('Progressive Scale', 2) or (state.has('Iron Boots') and state.is_adult())) set_rule(world.get_location('GS Kokiri Know It All House'), lambda state: state.nighttime() and (state.can_leave_forest() or state.can_play('Suns Song')) and state.can_child_attack()) - set_rule(world.get_location('GS Kokiri Bean Patch'), lambda state: state.has_bottle() and state.can_child_attack()) + set_rule(world.get_location('GS Kokiri Bean Patch'), lambda state: state.has_bottle() and state.can_child_attack() and (state.can_leave_forest() or state.has('Kokiri Sword') or state.has_sticks() or state.has('Boomerang') or state.has('Buy Bottle Bug'))) set_rule(world.get_location('GS Kokiri House of Twins'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.nighttime()) - set_rule(world.get_location('GS Lost Woods Bean Patch Near Bridge'), lambda state: state.has_bottle() and state.can_child_attack()) - set_rule(world.get_location('GS Lost Woods Bean Patch Near Stage'), lambda state: state.has_bottle() and (state.can_child_attack() or (not world.shuffle_scrubs and state.has('Buy Deku Shield')))) + set_rule(world.get_location('GS Lost Woods Bean Patch Near Bridge'), lambda state: state.has_bottle() and state.can_child_attack() and (state.can_leave_forest() or state.has('Kokiri Sword') or state.has_sticks() or state.has('Boomerang') or state.has('Buy Bottle Bug'))) + set_rule(world.get_location('GS Lost Woods Bean Patch Near Stage'), lambda state: state.has_bottle() and (state.can_child_attack() or (not world.shuffle_scrubs and state.has('Buy Deku Shield'))) and (state.can_leave_forest() or state.has('Kokiri Sword') or state.has_sticks() or state.has('Boomerang') or state.has('Buy Bottle Bug'))) set_rule(world.get_location('GS Lost Woods Above Stage'), lambda state: state.has('Magic Bean') and state.nighttime()) set_rule(world.get_location('GS Sacred Forest Meadow'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.nighttime()) set_rule(world.get_location('GS Hyrule Field near Kakariko'), lambda state: (state.has('Boomerang') and state.has_explosives()) or (state.has('Progressive Hookshot') and state.is_adult())) From aa5a0c2a14d155d9b897e911502a6c55f773c687 Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Sun, 9 Sep 2018 03:58:20 -0300 Subject: [PATCH 441/755] Add explosives for getting bugs --- Rules.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Rules.py b/Rules.py index 980e150d8..544b9b23c 100644 --- a/Rules.py +++ b/Rules.py @@ -233,10 +233,10 @@ def global_rules(world): set_rule(world.get_entrance('Zora River Plateau Bombable Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_location('Tektite Grotto Freestanding PoH'), lambda state: state.has('Progressive Scale', 2) or (state.has('Iron Boots') and state.is_adult())) set_rule(world.get_location('GS Kokiri Know It All House'), lambda state: state.nighttime() and (state.can_leave_forest() or state.can_play('Suns Song')) and state.can_child_attack()) - set_rule(world.get_location('GS Kokiri Bean Patch'), lambda state: state.has_bottle() and state.can_child_attack() and (state.can_leave_forest() or state.has('Kokiri Sword') or state.has_sticks() or state.has('Boomerang') or state.has('Buy Bottle Bug'))) + set_rule(world.get_location('GS Kokiri Bean Patch'), lambda state: state.has_bottle() and state.can_child_attack() and (state.can_leave_forest() or state.has('Kokiri Sword') or state.has_sticks() or state.has('Boomerang') or state.has_explosives() or state.has('Buy Bottle Bug'))) set_rule(world.get_location('GS Kokiri House of Twins'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.nighttime()) - set_rule(world.get_location('GS Lost Woods Bean Patch Near Bridge'), lambda state: state.has_bottle() and state.can_child_attack() and (state.can_leave_forest() or state.has('Kokiri Sword') or state.has_sticks() or state.has('Boomerang') or state.has('Buy Bottle Bug'))) - set_rule(world.get_location('GS Lost Woods Bean Patch Near Stage'), lambda state: state.has_bottle() and (state.can_child_attack() or (not world.shuffle_scrubs and state.has('Buy Deku Shield'))) and (state.can_leave_forest() or state.has('Kokiri Sword') or state.has_sticks() or state.has('Boomerang') or state.has('Buy Bottle Bug'))) + set_rule(world.get_location('GS Lost Woods Bean Patch Near Bridge'), lambda state: state.has_bottle() and state.can_child_attack() and (state.can_leave_forest() or state.has('Kokiri Sword') or state.has_sticks() or state.has('Boomerang') or state.has_explosives() or state.has('Buy Bottle Bug'))) + set_rule(world.get_location('GS Lost Woods Bean Patch Near Stage'), lambda state: state.has_bottle() and (state.can_child_attack() or (not world.shuffle_scrubs and state.has('Buy Deku Shield'))) and (state.can_leave_forest() or state.has('Kokiri Sword') or state.has_sticks() or state.has('Boomerang') or state.has_explosives() or state.has('Buy Bottle Bug'))) set_rule(world.get_location('GS Lost Woods Above Stage'), lambda state: state.has('Magic Bean') and state.nighttime()) set_rule(world.get_location('GS Sacred Forest Meadow'), lambda state: state.has('Progressive Hookshot') and state.is_adult() and state.nighttime()) set_rule(world.get_location('GS Hyrule Field near Kakariko'), lambda state: (state.has('Boomerang') and state.has_explosives()) or (state.has('Progressive Hookshot') and state.is_adult())) From e542110f79cb99fdd83b9a408db6d7107fc101f8 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 9 Sep 2018 03:09:12 -0400 Subject: [PATCH 442/755] Fix bombchu refill check for bomb bag --- Patches.py | 7 +++---- version.py | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/Patches.py b/Patches.py index 9ff1b2a14..6c68915cd 100644 --- a/Patches.py +++ b/Patches.py @@ -153,8 +153,8 @@ def patch_rom(world, rom): rom.write_int32s(0xC01078, [0x3C098012, # lui t1, 0x8012 0x812AA673, # lb t2, -0x598D(t1) ; bombbag size (SAVE_CONTEXT + 0xA3) - 0x314A0018, # andi t2, t2, 0x18 - 0x15200002, # bnez t2, @@return ; If has bombbag, return 1 (can buy) + 0x314A0038, # andi t2, t2, 0x38 + 0x15400002, # bnez t2, @@return ; If has bombbag, return 1 (can buy) 0x24020000, # li v0, 0 0x24020002]) # li v0, 2 ; else, return 2, (can't buy) @@ -1792,7 +1792,6 @@ def get_chest(rom, actor_id, actor, scene): def set_grotto_id_data(rom): def set_grotto_id(rom, actor_id, actor, scene): if actor_id == 0x009B: #Grotto - print('%02X %08X' % (scene, actor)) actor_zrot = rom.read_int16(actor + 12) actor_var = rom.read_int16(actor + 14); grotto_scene = actor_var >> 12 @@ -1843,7 +1842,7 @@ def locked_door(rom, actor_id, actor, scene): def place_shop_items(rom, shop_items, messages, locations, init_shop_id=False): if init_shop_id: place_shop_items.shop_id = 0x32 - + shop_objs = { 0x0148 } # Sold Out messages for location in locations: diff --git a/version.py b/version.py index 3835094b1..733de1ff1 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.16.24 f.LUM' +__version__ = '2.16.25 f.LUM' From 58f350c1cdfcaef560d0aef1c7e13d5608324a24 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 9 Sep 2018 03:42:28 -0400 Subject: [PATCH 443/755] Update version for shopsanity --- version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.py b/version.py index 5e00350f6..0061d8c37 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.16.27 f.LUM' +__version__ = '2.17.1 f.LUM' From f220dcbfb063d6f2641e58ea2ea5cbcf836029ff Mon Sep 17 00:00:00 2001 From: Nick Langille Date: Sun, 9 Sep 2018 04:35:01 -0400 Subject: [PATCH 444/755] Update constans.asm in preparation for C code --- ASM/src/constants.asm | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/ASM/src/constants.asm b/ASM/src/constants.asm index 6dce93443..ba8706a88 100755 --- a/ASM/src/constants.asm +++ b/ASM/src/constants.asm @@ -2,5 +2,12 @@ .definelabel SAVE_CONTEXT, 0x8011A5D0 .definelabel GLOBAL_CONTEXT, 0x801C84A0 .definelabel PLAYER_ACTOR, 0x801DAA30 -.definelabel DUMMY_ACTOR, 0x80410000 .definelabel GET_ITEMTABLE, 0x803A9E7E + +; Extended memory map: +; Loaded code files 0x80400000 +; ASM working memory 0x80480000 +; C working memory 0x80500000 + +.definelabel DUMMY_ACTOR, 0x80480000 +.definelabel C_HEAP, 0x80500000 From 5c73ce2c1fd124c06824a3ecbd1d11a4fdebfe99 Mon Sep 17 00:00:00 2001 From: Nick Langille Date: Sun, 9 Sep 2018 04:55:21 -0400 Subject: [PATCH 445/755] Move initial DMA to ASM, add second code area --- ASM/src/boot.asm | 31 +++++++ ASM/src/build.asm | 8 ++ ASM/src/init.asm | 22 +++++ Patches.py | 10 --- data/base2current.json | 189 ++++++++++++++++++++++++++++++++++++++++- 5 files changed, 249 insertions(+), 11 deletions(-) create mode 100644 ASM/src/boot.asm create mode 100644 ASM/src/init.asm diff --git a/ASM/src/boot.asm b/ASM/src/boot.asm new file mode 100644 index 000000000..4f701b297 --- /dev/null +++ b/ASM/src/boot.asm @@ -0,0 +1,31 @@ +; Update CRC +.org 0x10 + .word 0x9345AE5B, 0x97DB4131 + +; Add dmatable entries for new code +.org 0xD260 + .word 0x03480000, 0x03485000, 0x03480000, 0 + .word 0x034B3000, 0x034BE000, 0x034B3000, 0 + +; Load new code from ROM +; Replaces: +; lui v0, 0x8012 +; addiu v0, v0, 0xD2A0 +; sw ra, 0x001C (sp) +; sw a0, 0x0140 (sp) +; addiu t6, r0, 0x0140 +; lui at, 0x8010 +; sw t6, 0xE500 (at) +; lui at, 0x8010 +.org 0xB17BB4 ; In memory: 0x800A1C54 + sw ra, 0x001C (sp) + sw a0, 0x0140 (sp) + + ; Load first code file from ROM + lui a0, 0x8040 + lui a1, 0x0348 + jal 0x80000DF0 + ori a2, r0, 0x5000 + + jal init + nop diff --git a/ASM/src/build.asm b/ASM/src/build.asm index 423fb929f..e12d583ac 100755 --- a/ASM/src/build.asm +++ b/ASM/src/build.asm @@ -8,6 +8,7 @@ ; Base game editing region ;================================================================================================== +.include "boot.asm" .include "hacks.asm" .include "malon.asm" @@ -21,6 +22,7 @@ .org 0x80400000 .area 0x1000 +.include "init.asm" DebugOutput: .include "debug.asm" .endarea @@ -48,4 +50,10 @@ DebugOutput: .include "initial_save.asm" .endarea +.headersize (0x80405000 - 0x034B3000) + +.org 0x80405000 +.area 0xB000, 0 +.endarea + .close diff --git a/ASM/src/init.asm b/ASM/src/init.asm new file mode 100644 index 000000000..8aa4e2e49 --- /dev/null +++ b/ASM/src/init.asm @@ -0,0 +1,22 @@ +init: + addiu sp, sp, -0x18 + sw ra, 0x10 (sp) + + ; Load second code file from ROM + li a0, 0x80405000 + li a1, 0x034B3000 + li a2, 0xB000 + jal 0x80000DF0 + nop + + ; Displaced code + lui v0, 0x8012 + addiu v0, v0, 0xD2A0 + addiu t6, r0, 0x0140 + lui at, 0x8010 + sw t6, 0xE500 (at) + + lw ra, 0x10 (sp) + addiu sp, sp, 0x18 + jr ra + nop diff --git a/Patches.py b/Patches.py index 93e703454..47fe802b2 100644 --- a/Patches.py +++ b/Patches.py @@ -779,16 +779,6 @@ def patch_rom(world, rom): 0x70, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x02] rom.write_bytes(0x92D41C, Block_code) - # DMA in extra code - Block_code = [0xAF, 0xBF, 0x00, 0x1C, 0xAF, 0xA4, 0x01, 0x40, 0x3C, 0x05, 0x03, 0x48, - 0x3C, 0x04, 0x80, 0x40, 0x0C, 0x00, 0x03, 0x7C, 0x24, 0x06, 0x50, 0x00, - 0x0C, 0x10, 0x02, 0x00] - rom.write_bytes(0xB17BB4, Block_code) - Block_code = [0x3C, 0x02, 0x80, 0x12, 0x24, 0x42, 0xD2, 0xA0, 0x24, 0x0E, 0x01, 0x40, - 0xAC, 0x2E, 0xE5, 0x00, 0x03, 0xE0, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00] - rom.write_bytes(0x3480800, Block_code) - rom.write_bytes(0xD270, [0x03, 0x48, 0x00, 0x00, 0x03, 0x48, 0x50, 0x00, 0x03, 0x48, 0x00, 0x00]) - # Set hooks for various code rom.write_bytes(0xDBF428, [0x0C, 0x10, 0x03, 0x00]) #Set Fishing Hook diff --git a/data/base2current.json b/data/base2current.json index 08e03fa5f..241a3819f 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -1,4 +1,53 @@ [ + { + "17": [ + 69, + 174, + 91, + 151, + 219, + 65, + 49 + ] + }, + { + "53857": [ + 72, + 0 + ] + }, + { + "53861": [ + 72, + 80, + 0 + ] + }, + { + "53865": [ + 72, + 0 + ] + }, + { + "53873": [ + 75, + 48 + ] + }, + { + "53877": [ + 75, + 224, + 0 + ] + }, + { + "53881": [ + 75, + 48 + ] + }, { "9083985": [ 0, @@ -654,6 +703,45 @@ 32 ] }, + { + "11631540": [ + 175, + 191, + 0, + 28, + 175, + 164, + 1, + 64, + 60, + 4, + 128, + 64, + 60, + 5, + 3, + 72, + 12, + 0, + 3, + 124, + 52, + 6, + 80, + 0, + 12, + 16, + 0 + ] + }, + { + "11631568": [ + 0, + 0, + 0, + 0 + ] + }, { "11881272": [ 12, @@ -1685,6 +1773,105 @@ 122 ] }, + { + "55050240": [ + 39, + 189, + 255, + 232, + 175, + 191 + ] + }, + { + "55050247": [ + 16, + 60, + 4, + 128, + 64, + 36, + 132, + 80 + ] + }, + { + "55050256": [ + 60, + 5, + 3, + 75, + 36, + 165, + 48 + ] + }, + { + "55050264": [ + 52, + 6, + 176 + ] + }, + { + "55050268": [ + 12 + ] + }, + { + "55050270": [ + 3, + 124 + ] + }, + { + "55050276": [ + 60, + 2, + 128, + 18, + 36, + 66, + 210, + 160, + 36, + 14, + 1, + 64, + 60, + 1, + 128, + 16, + 172, + 46, + 229 + ] + }, + { + "55050296": [ + 143, + 191 + ] + }, + { + "55050299": [ + 16, + 39, + 189 + ] + }, + { + "55050303": [ + 24, + 3, + 224 + ] + }, + { + "55050307": [ + 8 + ] + }, { "55057409": [ 90, @@ -7960,7 +8147,7 @@ 60, 9, 128, - 65, + 72, 52, 10 ] From 42ea908e3975c79742a75a137bdd22849567f13d Mon Sep 17 00:00:00 2001 From: Nick Langille Date: Sun, 9 Sep 2018 06:44:50 -0400 Subject: [PATCH 446/755] Initial commit of dungeon info display --- ASM/scripts/build.py | 18 +- ASM/scripts/sym2pj64.py | 23 +- ASM/src/build.asm | 3 + ASM/src/c/Makefile | 7 + ASM/src/c/main.c | 468 ++ ASM/src/c/main.o | Bin 0 -> 9000 bytes ASM/src/c/z64.h | 1289 ++++ ASM/src/hacks.asm | 9 + ASM/src/init.asm | 3 + ASM/src/resources/font.bin | Bin 0 -> 5320 bytes data/base2current.json | 12173 ++++++++++++++++++++++++++++++++++- 11 files changed, 13981 insertions(+), 12 deletions(-) create mode 100644 ASM/src/c/Makefile create mode 100644 ASM/src/c/main.c create mode 100644 ASM/src/c/main.o create mode 100644 ASM/src/c/z64.h create mode 100644 ASM/src/resources/font.bin diff --git a/ASM/scripts/build.py b/ASM/scripts/build.py index 7d729e65a..7d08f7547 100644 --- a/ASM/scripts/build.py +++ b/ASM/scripts/build.py @@ -5,18 +5,28 @@ parser = argparse.ArgumentParser() parser.add_argument('--pj64sym', help="Output path for PJ64 debugging symbols") +parser.add_argument('--compile-c', action='store_true', help="Recompile C modules") + args = parser.parse_args() pj64_sym_path = args.pj64sym +compile_c = args.compile_c + if pj64_sym_path: pj64_sym_path = os.path.realpath(pj64_sym_path) script_dir = os.path.dirname(os.path.realpath(__file__)) -os.chdir(script_dir) +run_dir = script_dir + '/..' + +if compile_c: + os.chdir('src/c') + subprocess.check_call(['make']) + os.chdir(run_dir) try: - subprocess.call(['./armips', '-sym2', '../temp/symbols', '../src/build.asm']) + subprocess.check_call(['armips', '-sym2', 'temp/symbols', 'src/build.asm']) except FileNotFoundError: - subprocess.call(['armips', '-sym2', '../temp/symbols', '../src/build.asm']) + subprocess.check_call(['scripts/armips', '-sym2', 'temp/symbols', 'src/build.asm']) if pj64_sym_path: - subprocess.call(['python3', 'sym2pj64.py', '../temp/symbols', pj64_sym_path]) + subprocess.check_call(['python3', 'scripts/sym2pj64.py', + 'src/c', 'temp/symbols', pj64_sym_path]) diff --git a/ASM/scripts/sym2pj64.py b/ASM/scripts/sym2pj64.py index aef4eb7b4..716f5c3fd 100644 --- a/ASM/scripts/sym2pj64.py +++ b/ASM/scripts/sym2pj64.py @@ -1,12 +1,27 @@ #!/usr/bin/env python3 +import glob +import re +import subprocess import sys if len(sys.argv) < 3: - raise RuntimeError("Usage: python3 sym2pj64.py IN_FILE OUT_FILE") + raise RuntimeError("Usage: python3 sym2pj64.py OBJ_DIR IN_FILE OUT_FILE") -in_path = sys.argv[1] -out_path = sys.argv[2] +obj_dir = sys.argv[1] +in_path = sys.argv[2] +out_path = sys.argv[3] + +sym_types = {} +for obj_path in glob.glob(obj_dir + '/*.o'): + process = subprocess.Popen(['mips64-objdump', '-t', obj_path], stdout=subprocess.PIPE) + out, err = process.communicate() + for line in out.decode('utf-8').split('\n'): + m = re.match('^[0-9a-fA-F]+.*\.([^\s]+)\s+[0-9a-fA-F]+\s+([^.$][^\s]+)\s+$', line) + if m: + sym_type = m.group(1) + name = m.group(2) + sym_types[name] = 'code' if sym_type == 'text' else 'data' in_file = open(in_path, 'r') out_file = open(out_path, 'w') @@ -20,7 +35,7 @@ continue if label[0] == '.': continue - label_type = 'data' if label.isupper() else 'code' + label_type = sym_types.get(label) or ('data' if label.isupper() else 'code') out_line = ','.join([address, label_type, label]) print(out_line, file=out_file) diff --git a/ASM/src/build.asm b/ASM/src/build.asm index e12d583ac..66a2a252b 100755 --- a/ASM/src/build.asm +++ b/ASM/src/build.asm @@ -54,6 +54,9 @@ DebugOutput: .org 0x80405000 .area 0xB000, 0 +.importobj "src/c/main.o" +FONT_TEXTURE: +.incbin("resources/font.bin") .endarea .close diff --git a/ASM/src/c/Makefile b/ASM/src/c/Makefile new file mode 100644 index 000000000..695e1191a --- /dev/null +++ b/ASM/src/c/Makefile @@ -0,0 +1,7 @@ +CC=mips64-gcc +CFLAGS=-march=vr4300 -mtune=vr4300 -mabi=32 -mno-gpopt \ + -O1 -fno-reorder-blocks \ + -DZ64_VERSION=Z64_OOT10 + +main: + $(CC) -c main.c $(CFLAGS) diff --git a/ASM/src/c/main.c b/ASM/src/c/main.c new file mode 100644 index 000000000..3ef13094d --- /dev/null +++ b/ASM/src/c/main.c @@ -0,0 +1,468 @@ +#include "z64.h" + +#define z64_menu_state (z64_ctxt_addr + 0x10934) + +#define array_size(a) (sizeof(a) / sizeof(a[0])) + +extern char C_HEAP; +char *heap_next = NULL; + +void heap_init() { + heap_next = &C_HEAP; +} + +void *heap_alloc(uint32_t bytes) { + int rem = bytes % 16; + if (rem) bytes += 16 - rem; + + void *result = heap_next; + heap_next += bytes; + return result; +} + +typedef struct { + Gfx *buf; + Gfx *p; + uint32_t buf_size; +} displaylist_t; + +void displaylist_init(displaylist_t *dl, uint32_t size) { + dl->buf = heap_alloc(sizeof(Gfx) * size); + dl->p = dl->buf; + dl->buf_size = size; +} + +displaylist_t reset_dl = {}; + +#define text_bucket_count 3 +#define text_bucket_size 32 + +typedef struct { + displaylist_t main; + displaylist_t text[text_bucket_count]; +} dungeon_info_dls_t; + +dungeon_info_dls_t dungeon_info_dls[2] = {}; +int next_dl_index = 0; + +#define stones_texture_vaddr 0x01A2C300 +#define medals_texture_vaddr 0x01A04980 +#define quest_items_texture_vaddr 0x0084DE00 +extern char FONT_TEXTURE; +#define font_texture_raw ((uint8_t *)&FONT_TEXTURE) + +typedef struct { + uint8_t *buf; + uint16_t tile_w; + uint16_t tile_h; + uint16_t tile_count; + uint8_t im_fmt; + uint8_t im_siz; + uint8_t bytes_per_texel; +} sprite_t; + +sprite_t stones_sprite = { + NULL, 16, 16, 3, + G_IM_FMT_RGBA, G_IM_SIZ_32b, 4 +}; + +sprite_t medals_sprite = { + NULL, 16, 16, 6, + G_IM_FMT_IA, G_IM_SIZ_8b, 1 +}; + +sprite_t quest_items_sprite = { + NULL, 24, 24, 4, + G_IM_FMT_RGBA, G_IM_SIZ_32b, 4 +}; + +sprite_t font_sprite = { + NULL, 8, 14, 95, + G_IM_FMT_IA, G_IM_SIZ_8b, 1 +}; + +uint32_t sprite_bytes_per_tile(sprite_t *sprite) { + return sprite->tile_w * sprite->tile_h * sprite->bytes_per_texel; +} + +uint32_t sprite_bytes(sprite_t *sprite) { + return sprite->tile_count * sprite_bytes_per_tile(sprite); +} + +typedef void (*load_file_fn_t)(uint32_t mem_addr, uint32_t rom_addr, + uint32_t bytes); +load_file_fn_t load_file = (load_file_fn_t)0x80000DF0; + +void sprite_read(sprite_t *sprite, uint32_t rom_vaddr) { + uint32_t bytes = sprite_bytes(sprite); + sprite->buf = heap_alloc(bytes); + + (*load_file)((uint32_t)(sprite->buf), rom_vaddr, bytes); +} + +void sprite_load(displaylist_t *dl, sprite_t *sprite, + uint32_t start_tile, uint32_t tile_count) { + gDPLoadTextureBlock(dl->p++, + sprite->buf + (start_tile * sprite_bytes_per_tile(sprite)), + sprite->im_fmt, sprite->im_siz, + sprite->tile_w, tile_count * sprite->tile_h, + 0, + G_TX_WRAP, G_TX_WRAP, + G_TX_NOMASK, G_TX_NOMASK, + G_TX_NOLOD, G_TX_NOLOD); +} + +void sprite_draw(displaylist_t *dl, sprite_t *sprite, uint32_t tile_index, + uint32_t left, uint32_t top, uint32_t width, uint32_t height) { + uint32_t width_factor = (1<<10) * sprite->tile_w / width; + uint32_t height_factor = (1<<10) * sprite->tile_h / height; + + gSPTextureRectangle(dl->p++, + left<<2, top<<2, + (left + width)<<2, (top + height)<<2, + 0, + 0, (tile_index * sprite->tile_h)<<5, + width_factor, height_factor); +} + +typedef struct { + uint8_t index; + char label[3]; + struct { + uint8_t has_keys : 1; + uint8_t has_boss_key : 1; + uint8_t has_map : 1; + uint8_t has_compass : 1; + }; +} dungeon_entry_t; + +dungeon_entry_t dungeons[] = { + { 0, "De", 0, 0, 1, 1 }, // Deku Tree + { 1, "DC", 0, 0, 1, 1 }, // Dodongo's Cavern + { 2, "Ja", 0, 0, 1, 1 }, // Jabu + + { 3, "Fo", 1, 1, 1, 1 }, // Forest + { 4, "Fi", 1, 1, 1, 1 }, // Fire + { 5, "Wa", 1, 1, 1, 1 }, // Water + { 7, "Sh", 1, 1, 1, 1 }, // Shadow + { 6, "Sp", 1, 1, 1, 1 }, // Spirit + + { 8, "BW", 1, 0, 1, 1 }, // BOTW + { 9, "IC", 0, 0, 1, 1 }, // Ice Cavern + { 11, "TG", 1, 0, 0, 0 }, // GTG + { 12, "GF", 1, 0, 0, 0 }, // Gerudo Fortress + { 13, "GC", 1, 1, 0, 0 }, // Ganon's Castle +}; + +typedef struct { + uint8_t r; + uint8_t g; + uint8_t b; +} medal_color_t; + +medal_color_t medal_colors[] = { + { 0x11, 0xC2, 0x2D }, // Forest + { 0xD4, 0x43, 0x22 }, // Fire + { 0x08, 0x54, 0xCE }, // Water + { 0xD1, 0x75, 0x1A }, // Spirit + { 0xA9, 0x3A, 0xEA }, // Shadow + { 0xA4, 0xAB, 0x21 }, // Light +}; + +// FIXME: Make dynamic +uint8_t rewards[] = { 4, 1, 7, 5, 0, 8, 6, 2, -1, -1, -1, -1, -1, -1 }; +uint8_t dungeon_is_mq[] = { 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0 }; + +void c_init() { + heap_init(); + + sprite_read(&stones_sprite, stones_texture_vaddr); + sprite_read(&medals_sprite, medals_texture_vaddr); + sprite_read(&quest_items_sprite, quest_items_texture_vaddr); + + int font_bytes = sprite_bytes(&font_sprite); + font_sprite.buf = heap_alloc(font_bytes); + for (int i = 0; i < font_bytes / 2; i++) { + font_sprite.buf[2*i] = (font_texture_raw[i] >> 4) | 0xF0; + font_sprite.buf[2*i + 1] = font_texture_raw[i] | 0xF0; + } + + for (int i = 0; i < 2; i++) { + dungeon_info_dls_t *di_dls = &(dungeon_info_dls[i]); + displaylist_init(&(di_dls->main), 512); + for (int j = 0; j < text_bucket_count; j++) { + displaylist_init(&(di_dls->text[j]), 256); + } + } + + displaylist_t *r = &reset_dl; + displaylist_init(r, 32); + + gDPPipeSync(r->p++); + gSPLoadGeometryMode(r->p++, 0); + gDPSetScissor(r->p++, G_SC_NON_INTERLACE, + 0, 0, Z64_SCREEN_WIDTH, Z64_SCREEN_HEIGHT); + gDPSetAlphaDither(r->p++, G_AD_DISABLE); + gDPSetColorDither(r->p++, G_CD_DISABLE); + gDPSetAlphaCompare(r->p++, G_AC_NONE); + gDPSetDepthSource(r->p++, G_ZS_PRIM); + gDPSetCombineKey(r->p++, G_CK_NONE); + gDPSetTextureConvert(r->p++, G_TC_FILT); + gDPSetTextureDetail(r->p++, G_TD_CLAMP); + gDPSetTexturePersp(r->p++, G_TP_NONE); + gDPSetTextureLOD(r->p++, G_TL_TILE); + gDPSetTextureLUT(r->p++, G_TT_NONE); + gDPPipelineMode(r->p++, G_PM_NPRIMITIVE); + gSPEndDisplayList(r->p++); +} + +void text_print(displaylist_t text_dls[], + char *s, uint16_t left, uint16_t top) { + char c; + while (c = *(s++)) { + int bucket = (c - 32) / text_bucket_size; + int tile_index = (c - 32) % text_bucket_size; + + displaylist_t *text = &(text_dls[bucket]); + if (text->p - text->buf >= text->buf_size - 2) break; + + sprite_draw(text, &font_sprite, tile_index, + left, top, font_sprite.tile_w, font_sprite.tile_h); + left += font_sprite.tile_w; + } +} + +void text_flush(displaylist_t *main, displaylist_t text_dls[]) { + for (int i = 0; i < text_bucket_count; i++) { + displaylist_t *text = &(text_dls[i]); + gSPEndDisplayList(text->p++); + text->p = text->buf; + + sprite_load(main, &font_sprite, + i * text_bucket_size, text_bucket_size); + gSPDisplayList(main->p++, text->buf); + } +} + +void dungeon_info_draw(z64_disp_buf_t *overlay) { + dungeon_info_dls_t *di_dls = &(dungeon_info_dls[next_dl_index]); + next_dl_index = (next_dl_index + 1) % 2; + displaylist_t *main = &(di_dls->main); + main->p = main->buf; + + // The last 2 entries in the parent display list will be: + // gDPFullSync + // gSPEndDisplayList + // Overwrite these commands with a jump to our new display list. + overlay->p -= 2; + gSPBranchList(overlay->p++, main->buf); + + // Call reset display list + gSPDisplayList(main->p++, reset_dl.buf); + + // Draw backdrop + + gDPSetCycleType(main->p++, G_CYC_FILL); + gDPSetRenderMode(main->p++, G_RM_NOOP, G_RM_NOOP2); + gDPSetFillColor(main->p++, + GPACK_RGBA5551(0,0,0,1)<<16 | GPACK_RGBA5551(0,0,0,1)); + gDPFillRectangle(main->p++, + 24, 65, 293, 195); + gDPPipeSync(main->p++); + gDPSetFillColor(main->p++, + GPACK_RGBA5551(255,255,255,1)<<16 | GPACK_RGBA5551(255,255,255,1)); + gDPFillRectangle(main->p++, + 24 + 18, 65, 24 + 18, 195); + gDPPipeSync(main->p++); + + // Set up to draw textures + + gDPSetCycleType(main->p++, G_CYC_1CYCLE); + gDPSetRenderMode(main->p++, G_RM_XLU_SURF, G_RM_XLU_SURF2); + gDPSetCombineMode(main->p++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM); + + int start_left = 25; + int start_top = 66; + int left = start_left; + int top = start_top; + int padding = 3; + int dungeon_count = array_size(dungeons); + + // Draw stones + + gDPSetTextureFilter(main->p++, G_TF_BILERP); + gDPSetPrimColor(main->p++, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF); + sprite_load(main, &stones_sprite, 0, stones_sprite.tile_count); + + for (int i = 0; i < dungeon_count; i++) { + dungeon_entry_t *d = &(dungeons[i]); + int reward = rewards[d->index]; + if (reward < 0 || reward >= 3) continue; + + left = start_left + ((16 + padding) * (i + 1)); + sprite_draw(main, &stones_sprite, reward, + left, top, 16, 16); + + } + + gDPPipeSync(main->p++); + + // Draw medals + + sprite_load(main, &medals_sprite, 0, medals_sprite.tile_count); + + for (int i = 0; i < dungeon_count; i++) { + dungeon_entry_t *d = &(dungeons[i]); + int reward = rewards[d->index]; + if (reward < 3) continue; + reward -= 3; + + medal_color_t *c = &(medal_colors[reward]); + gDPSetPrimColor(main->p++, 0, 0, c->r, c->g, c->b, 0xFF); + + left = start_left + ((16 + padding) * (i + 1)); + sprite_draw(main, &medals_sprite, reward, + left, top, 16, 16); + } + + gDPPipeSync(main->p++); + gDPSetPrimColor(main->p++, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF); + + // Draw master quest dungeons + + top += 16 + padding; + left = start_left + 16 + padding; + + for (int i = 0; i < dungeon_count; i++) { + dungeon_entry_t *d = &(dungeons[i]); + text_print(di_dls->text, d->label, left, top); + left += 16 + padding; + } + + int show_mq = 1; + if (show_mq) { + top += 16 + padding; + left = start_left; + + text_print(di_dls->text, "MQ", left, top); + for (int i = 0; i < dungeon_count; i++) { + dungeon_entry_t *d = &(dungeons[i]); + int is_mq = dungeon_is_mq[d->index]; + left += 16 + padding; + char *str = is_mq ? "Y" : "N"; + text_print(di_dls->text, str, left + 4, top); + } + } + + // Draw key counts + + top += 16 + padding; + left = start_left; + + sprite_load(main, &quest_items_sprite, 3, 1); + sprite_draw(main, &quest_items_sprite, 0, + left, top, 16, 16); + + for (int i = 0; i < dungeon_count; i++) { + left += 16 + padding; + dungeon_entry_t *d = &(dungeons[i]); + if (!d->has_keys) continue; + + int8_t keys = z64_file.dungeon_keys[d->index]; + if (keys < 0) keys = 0; + if (keys > 9) keys = 9; + + char count[2] = "0"; + count[0] += keys; + text_print(di_dls->text, count, left + 4, top); + } + + // Draw boss keys + + top += 16 + padding; + left = start_left; + + sprite_load(main, &quest_items_sprite, 0, 1); + sprite_draw(main, &quest_items_sprite, 0, + left, top, 16, 16); + + for (int i = 0; i < dungeon_count; i++) { + left += 16 + padding; + dungeon_entry_t *d = &(dungeons[i]); + if (!d->has_boss_key) continue; + + if (z64_file.dungeon_items[d->index].boss_key) { + sprite_draw(main, &quest_items_sprite, 0, + left, top, 16, 16); + } + } + + // Draw maps and compasses + + int draw_maps_and_compasses = 1; + if (draw_maps_and_compasses) { + // Draw maps + + top += 16 + padding; + left = start_left; + + sprite_load(main, &quest_items_sprite, 2, 1); + sprite_draw(main, &quest_items_sprite, 0, + left, top, 16, 16); + + for (int i = 0; i < dungeon_count; i++) { + left += 16 + padding; + dungeon_entry_t *d = &(dungeons[i]); + if (!d->has_map) continue; + + if (z64_file.dungeon_items[d->index].map) { + sprite_draw(main, &quest_items_sprite, 0, + left, top, 16, 16); + } + } + + // Draw compasses + + top += 16 + padding; + left = start_left; + + sprite_load(main, &quest_items_sprite, 1, 1); + sprite_draw(main, &quest_items_sprite, 0, + left, top, 16, 16); + + for (int i = 0; i < dungeon_count; i++) { + left += 16 + padding; + dungeon_entry_t *d = &(dungeons[i]); + if (!d->has_compass) continue; + + if (z64_file.dungeon_items[d->index].compass) { + sprite_draw(main, &quest_items_sprite, 0, + left, top, 16, 16); + } + } + } + + + // Finish + + gDPPipeSync(main->p++); + gDPSetTextureFilter(main->p++, G_TF_POINT); + text_flush(main, di_dls->text); + + gDPFullSync(main->p++); + gSPEndDisplayList(main->p++); +} + +void overlay_swap(z64_disp_buf_t *disp_buf, Gfx *buf, uint32_t size) { + if (z64_game.pause_state == 6 && + z64_game.pause_screen == 0 && + !z64_game.pause_screen_changing && + z64_ctxt.input[0].raw.a) { + dungeon_info_draw(disp_buf); + } + + disp_buf->size = size; + disp_buf->buf = buf; + disp_buf->p = buf; + disp_buf->d = (void*)((char*)buf + size); +} diff --git a/ASM/src/c/main.o b/ASM/src/c/main.o new file mode 100644 index 0000000000000000000000000000000000000000..527af7218307b8e86ad537b825f645feae9de03e GIT binary patch literal 9000 zcmb_heQX@Zb$`3JM;;}9?43^3S!Sd?X_q?NEWKi`4x29E6YoUPDPvPI6{~ z#&Od?@%Hz2c27r&jBTI;&dt1!d0+G9&D`;8d)r$jS)yW-D1>piw=X9X9A%0h;@)1g8!OuNI_$b4){#9U?1Fuivc){584K{4eVpti zlF2k=En!giFDnQ%*Jj9o-KFw1$e)2d{fpnGV~c-7xy3iBd+`lAy!h92Xz_LGgw77w z+AiWTXVB7H2Hn1F%)Cw;DDtN%#QL_}GNaF2p^c3@NJgAxSvza!n@DaNA%`|ySOQN> zK2^}=R||$E|C;1esqe3R~K;%othaIPW1UB}lWqOO_ki3bk zAUVm|Wum>RPGiiMiaZviJ<$Sf(95uGp(n4Iv-C90CE^r(Y)rpc?$F=SRw_szAiE;w zjT(nqRl^FFvkdmF!IJN=eI{&8QaHK<9Wj>QxSQl!4cl`-HDIesIo78|ke5%B@~vx4 z2k2=zGZUxC%#x*0AUXaK0oD;?#11jRh<#~>T+5RGn{}l0o~PLl8+-30d*Me~)%82@ zt-RSb@6_C4$en$H8*LZN7@^UL`h5%Q&f8aXkI zoR~&VOd}_zkrUI%3FJ@*a^F12w?6Sg^v7$SC7@O?jqMCHG0(|o^A`=bF^#u1aQG{BaezLlj%s0eVGS+O20e>&PDialm;` z8G5<1{7Mk03yJs)>>)WU^Zpmk5xpV<&ZzO3JjP22qp+7G{RVn3&dA@Zk4IC^J=iPj zL7A))TP&5RUZu+V-58t5)Ps`in+&~-uZ=kO8RxEh;J4|mv#_rFp*3ND4Qb5BwXhy* z>tW+$8u3Sd&S$XK${pf-obSfotib!9N-==qpWTXJcPyWrdM9_ioMCe2@jJq5^R+C|V>F^+$R<}W~|LJCHq zvnX>5vA%hGH9jf}J1UvJYE6}E$HQw}-Zf;^tfNC+TTX9?=EppnO5-ZOL!8GP@Ad8s z8@Yr!|D2w7ZsY8K5BEnBb=t(8(SX{Nz@4Gv&d|s{i~C{*_eH^=z?N$y*I%Wa88>gx zcDiovG+QvHxh90ugyhA&94AGy<(w9u#C?jh$+c`JZk218hxA_OBfw8UcS65H66X#6 zwjc*dA9HT6sUrg&V=OlgFR>DL{wLI-!vEwMnaWU4Vi*;SQTVCKsb=@il__B`9yK|R z9G6b%juW+=e{DM8IJ_1$(?rc|K+Q~`X6mS!T0p!Pnt6nG{2sW8_%-0}P2ld;Azwor z>k!8k_q~3Z6ru^ks(pv7O*khbs4JUqkshV)DV&-4FQKPMnUbCR{8rJ+Ns~3ygzki} zHKiF-0q6cy3vxAs+K-%{KZrGm3T)SElg@wfS%%#WsQC%hd>!^{u)hxWuYNa}uzL=6 zcP@Sx?}KksJM3?R{TbMwg8dfkZ$=&@kq4&xCOHY4-$R{|pS+4XAIIKH7=!81r`iXUl-UHu3w`A0TeH$dydal7H*NG|cbDdZKpB2Da@1;8bjJP!DTL^+y z_CGZL4X*1X>9fS=ORV+j!4IF&XVaB@w!u@T&q~TeJR#Jz3D||2P%4|{>Sd0DaRuHA zez+kyJLb#8{Er`!xu(2tuAu|x3VYI__qL?qpW?;^^>)FH*ZpvE{LD_Sxt8KQnH+~L z92<_E$D_AIB;Ge&*0@$6=RiyQar+g=nz$yycS3yV^d-)9(>pVo;pcDtFzu1MCk*6p zgS8p?@h13dN!7Pei~oj4J|teQdEJQ4I<}a=uzaLD%;J*^eiR# z9&zs_&};WQ_v%m6CY7YGvOHJLmxP=I$W_=hsvgOVN>7eAiV7z#CNDowYQR zgE$2SWK?5@@5w+N*CZp^LJr=mA|@B$s{+3fGmeKYlM1_I=uymDFuL~n@mOJFlk+d0 zji0rm@V}f6Hq|?hT=34VjXQQXZK{3B`Cr5*2>LO-j2>Ab3p{f7oS}zt*0!Oh+```B zp-}%rjPRSk3&DoOtLNa`AHaXW(G-r?Qo@ZH%j8<&+Qs^y$JP0|^Yf_Jz z&5~C14YFPT4$vmZsjA)Kyuc7keZ)P-_1Vi~tJV%b^~2el{(cnw2DUqZy)4NqjuHFzUi|?# zXL$eQkMZp<{vUnQ;KP>HzTqA}^(p)l_WWl5-YxM@`WXM-SkFIq-y+D%12`|6v2Sl; z-@Nlv+_wY8eN&6R^7luS)zD5ckfOggV!t(noLVwbD-7g1UV&7N@`?Zk^-z)P6sbH&p)y388&UY`Z~Y*>Bh>j1|9E2SYoGu33x5@df=r%F zDU&8s{z4Yp+d4?gN^2i22Vcn2a{2SeXu0h9AzBW#yg-*Lo&n#+&V6K8?rSBxYG0a` z*hp?6s-~_0w0kXv@9y}0L-Ao1Px-PEI>P}$zwO{Rj5QmA40qNft&RK)(A(E0x!5Az z4iF(IrFu1R6zS{8DAH|MwQ49#!p47=qu#g*pF58q0;qh=>K%`5rtLqn@i=} zUwep-`}=|YOAp(3sFePj{QG?{K8yav{X{lZEz`bq`tw?1-?IlF)0!Kb8co^*YR%Ds z6Yk!YD{Jp?5sR(jIU*_=VEj>43Cw90DS<06*Gk|Gm_JzpZ^Znm5}1#hRRZH>OM6S; zGR!+mV77(bbQ_FeTTq2W16+;Sun#Nb+{64O501i6_Gb*8?N;#YV*Rh6yG<1XSJ)`J z?(zRQ=Ddd~55A1~i|7dtzJYlG9Y2`4^8X3*o9Nvh{0`>aSRecUQ?Oyr<%~!F1;RQC z{9OU_QC1EE7xG~KK0Al5Vm(}xP)+G<39Ms2Q38JsbGFatPh;*j;h)suf!&aYI7nH* z-RPAb{AFx;4)}IY{|OYC%b>sI!8U#*I|kf+4}KLiZeBd40_I8dJ)XU&&UWh z9?#`_P8@B__Vj(Wi5iConbbHkI=s6vNsS|dam3{u&L8a?I5J3$Uwo$Hd0ud&KYJ7s zhH}Hy*gJUqczyt)aef-Jqoc!pJts!qzN_aYi0T^34|k3B_2;P+>jT62Y>xT|v$?J# zB`l2aIda3A3~CV%Ya&BmUqTrZFt zD%T0*SPhSL7#W}NU`$;YIqA}o|6$ITd7@1`-obow5^%MUCwY7d&M50s zaJE>VG9=_Ge z6;V8Bfv-4?k_-Ndvly|y;<7hh7y2u{C-hg`7kc<=VLcmRAIEzm?BjTEgncY;;{_sv z@pBj%4}0qwhQ0L+L!P_t`(j-sWZYaY9Usm1U>qG5<1v3W zobP}57F_RcV`le$`{dW;dN(0`^0pnU>?q>vwj^SMxEGrjNBo}?g#bMzC|j?i{+-3V z2A$V4UkKgs-~dLnO&$0^UKE=z?+IX--{Xt&yuZjLg%sy|($E z{h2rVv@XCrZxVQykKdqv^ZghALQ;!y+5A3W-zMhu=XeWJsD$q>!_43{pYLVBtk)Fy z&CG}AVzDue`}m;a;Qi~j&A-A7;){)Wxbf)4n8DggfHyH=UM{q(m**TiZ*MW9*pIQ4 Wb^Fbiho@&L-}dW(QTK|?<@-O7>?5QA literal 0 HcmV?d00001 diff --git a/ASM/src/c/z64.h b/ASM/src/c/z64.h new file mode 100644 index 000000000..d936964cd --- /dev/null +++ b/ASM/src/c/z64.h @@ -0,0 +1,1289 @@ +#ifndef Z64_H +#define Z64_H +#include +#include + +#ifndef Z64_VERSION +#error no z64 version specified +#endif + +#define Z64_OOT10 0x00 +#define Z64_OOT11 0x01 +#define Z64_OOT12 0x02 + +#define Z64_SCREEN_WIDTH 320 +#define Z64_SCREEN_HEIGHT 240 + +#define Z64_SEG_PHYS 0x00 +#define Z64_SEG_TITLE 0x01 +#define Z64_SEG_SCENE 0x02 +#define Z64_SEG_ROOM 0x03 +#define Z64_SEG_KEEP 0x04 +#define Z64_SEG_SKEEP 0x05 +#define Z64_SEG_OBJ 0x06 +#define Z64_SEG_ZIMG 0x0E +#define Z64_SEG_CIMG 0x0F + +#define Z64_ETAB_LENGTH 0x0614 + +typedef struct +{ + int16_t x; + int16_t y; + int16_t z; +} z64_xyz_t; + +typedef struct +{ + float x; + float y; + float z; +} z64_xyzf_t; + +typedef uint16_t z64_angle_t; +typedef struct +{ + z64_angle_t x; + z64_angle_t y; + z64_angle_t z; +} z64_rot_t; + +typedef struct +{ + /* index of z64_col_type in scene file */ + uint16_t type; + /* vertex indices, a and b are bitmasked for some reason */ + struct + { + uint16_t unk_00_ : 3; + uint16_t va : 13; + }; + struct + { + uint16_t unk_01_ : 3; + uint16_t vb : 13; + }; + uint16_t vc; + /* normal vector */ + z64_xyz_t norm; + /* plane distance from origin */ + int16_t dist; +} z64_col_poly_t; + +typedef struct +{ + struct + { + uint32_t unk_00_ : 1; + uint32_t drop : 1; /* link drops one unit into the floor */ + uint32_t special : 4; + uint32_t interaction : 5; + uint32_t unk_01_ : 3; + uint32_t behavior : 5; + uint32_t exit : 5; + uint32_t camera : 8; + } flags_1; /* 0x0000 */ + struct + { + uint32_t pad_00_ : 4; + uint32_t wall_damage : 1; + uint32_t unk_00_ : 6; + uint32_t unk_01_ : 3; + uint32_t hookshot : 1; + uint32_t echo : 6; + uint32_t unk_02_ : 5; + uint32_t terrain : 2; + uint32_t material : 4; + } flags_2; /* 0x0004 */ +} z64_col_type_t; + +typedef struct +{ + z64_xyz_t pos; + z64_xyz_t rot; + int16_t fov; + int16_t unk_00_; +} z64_camera_params_t; + +typedef struct +{ + uint16_t mode; + uint16_t unk_01_; + uint32_t seg_params; /* segment address of z64_camera_params_t */ +} z64_camera_t; + +typedef struct +{ + z64_xyz_t pos; + int16_t width; + int16_t depth; + struct + { + uint32_t unk_00_ : 12; + uint32_t active : 1; + uint32_t group : 6; /* ? */ + uint32_t unk_01_ : 5; + uint32_t camera : 8; + } flags; +} z64_col_water_t; + +typedef struct +{ + z64_xyz_t min; + z64_xyz_t max; + uint16_t n_vtx; + z64_xyz_t *vtx; + uint16_t n_poly; + z64_col_poly_t *poly; + z64_col_type_t *type; + z64_camera_t *camera; + uint16_t n_water; + z64_col_water_t *water; +} z64_col_hdr_t; + +typedef enum +{ + Z64_ITEM_NULL = -1, + Z64_ITEM_STICK, + Z64_ITEM_NUT, + Z64_ITEM_BOMB, + Z64_ITEM_BOW, + Z64_ITEM_FIRE_ARROW, + Z64_ITEM_DINS_FIRE, + Z64_ITEM_SLINGSHOT, + Z64_ITEM_FAIRY_OCARINA, + Z64_ITEM_OCARINA_OF_TIME, + Z64_ITEM_BOMBCHU, + Z64_ITEM_HOOKSHOT, + Z64_ITEM_LONGSHOT, + Z64_ITEM_ICE_ARROW, + Z64_ITEM_FARORES_WIND, + Z64_ITEM_BOOMERANG, + Z64_ITEM_LENS, + Z64_ITEM_BEANS, + Z64_ITEM_HAMMER, + Z64_ITEM_LIGHT_ARROW, + Z64_ITEM_NAYRUS_LOVE, + Z64_ITEM_BOTTLE, + Z64_ITEM_RED_POTION, + Z64_ITEM_GREEN_POTION, + Z64_ITEM_BLUE_POTION, + Z64_ITEM_FAIRY, + Z64_ITEM_FISH, + Z64_ITEM_MILK, + Z64_ITEM_LETTER, + Z64_ITEM_BLUE_FIRE, + Z64_ITEM_BUG, + Z64_ITEM_BIG_POE, + Z64_ITEM_HALF_MILK, + Z64_ITEM_POE, + Z64_ITEM_WEIRD_EGG, + Z64_ITEM_CHICKEN, + Z64_ITEM_ZELDAS_LETTER, + Z64_ITEM_KEATON_MASK, + Z64_ITEM_SKULL_MASK, + Z64_ITEM_SPOOKY_MASK, + Z64_ITEM_BUNNY_HOOD, + Z64_ITEM_GORON_MASK, + Z64_ITEM_ZORA_MASK, + Z64_ITEM_GERUDO_MASK, + Z64_ITEM_MASK_OF_TRUTH, + Z64_ITEM_SOLD_OUT, + Z64_ITEM_POCKET_EGG, + Z64_ITEM_POCKET_CUCCO, + Z64_ITEM_COJIRO, + Z64_ITEM_ODD_MUSHROOM, + Z64_ITEM_ODD_POTION, + Z64_ITEM_POACHERS_SAW, + Z64_ITEM_BROKEN_GORONS_SWORD, + Z64_ITEM_PRESCRIPTION, + Z64_ITEM_EYEBALL_FROG, + Z64_ITEM_EYE_DROPS, + Z64_ITEM_CLAIM_CHECK, + Z64_ITEM_BOW_FIRE_ARROW, + Z64_ITEM_BOW_ICE_ARROW, + Z64_ITEM_BOW_LIGHT_ARROW, + Z64_ITEM_KOKIRI_SWORD, + Z64_ITEM_MASTER_SWORD, + Z64_ITEM_BIGGORON_SWORD, + Z64_ITEM_DEKU_SHIELD, + Z64_ITEM_HYLIAN_SHIELD, + Z64_ITEM_MIRROR_SHIELD, + Z64_ITEM_KOKIRI_TUNIC, + Z64_ITEM_GORON_TUNIC, + Z64_ITEM_ZORA_TUNIC, + Z64_ITEM_KOKIRI_BOOTS, + Z64_ITEM_IRON_BOOTS, + Z64_ITEM_HOVER_BOOTS, + Z64_ITEM_BULLET_BAG_30, + Z64_ITEM_BULLET_BAG_40, + Z64_ITEM_BULLET_BAG_50, + Z64_ITEM_QUIVER_30, + Z64_ITEM_QUIVER_40, + Z64_ITEM_QUIVER_50, + Z64_ITEM_BOMB_BAG_20, + Z64_ITEM_BOMB_BAG_30, + Z64_ITEM_BOMB_BAG_40, + Z64_ITEM_GORONS_BRACELET, + Z64_ITEM_SILVER_GAUNTLETS, + Z64_ITEM_GOLDEN_GAUNTLETS, + Z64_ITEM_SILVER_SCALE, + Z64_ITEM_GOLDEN_SCALE, + Z64_ITEM_BROKEN_GIANTS_KNIFE, + Z64_ITEM_ADULTS_WALLET, + Z64_ITEM_GIANTS_WALLET, + Z64_ITEM_DEKU_SEEDS, + Z64_ITEM_FISHING_POLE, + Z64_ITEM_MINUET, + Z64_ITEM_BOLERO, + Z64_ITEM_SERENADE, + Z64_ITEM_REQUIEM, + Z64_ITEM_NOCTURNE, + Z64_ITEM_PRELUDE, + Z64_ITEM_ZELDAS_LULLABY, + Z64_ITEM_EPONAS_SONG, + Z64_ITEM_SARIAS_SONG, + Z64_ITEM_SUNS_SONG, + Z64_ITEM_SONG_OF_TIME, + Z64_ITEM_SONG_OF_STORMS, + Z64_ITEM_FOREST_MEDALLION, + Z64_ITEM_FIRE_MEDALLION, + Z64_ITEM_WATER_MEDALLION, + Z64_ITEM_SPIRIT_MEDALLION, + Z64_ITEM_SHADOW_MEDALLION, + Z64_ITEM_LIGHT_MEDALLION, + Z64_ITEM_KOKIRIS_EMERALD, + Z64_ITEM_GORONS_RUBY, + Z64_ITEM_ZORAS_SAPPHIRE, + Z64_ITEM_STONE_OF_AGONY, + Z64_ITEM_GERUDOS_CARD, + Z64_ITEM_GOLD_SKULLTULA, + Z64_ITEM_HEART_CONTAINER, + Z64_ITEM_PIECE_OF_HEART, + Z64_ITEM_BOSS_KEY, + Z64_ITEM_COMPASS, + Z64_ITEM_DUNGEON_MAP, + Z64_ITEM_SMALL_KEY, +} z64_item_t; + +typedef enum +{ + Z64_SLOT_STICK, + Z64_SLOT_NUT, + Z64_SLOT_BOMB, + Z64_SLOT_BOW, + Z64_SLOT_FIRE_ARROW, + Z64_SLOT_DINS_FIRE, + Z64_SLOT_SLINGSHOT, + Z64_SLOT_OCARINA, + Z64_SLOT_BOMBCHU, + Z64_SLOT_HOOKSHOT, + Z64_SLOT_ICE_ARROW, + Z64_SLOT_FARORES_WIND, + Z64_SLOT_BOOMERANG, + Z64_SLOT_LENS, + Z64_SLOT_BEANS, + Z64_SLOT_HAMMER, + Z64_SLOT_LIGHT_ARROW, + Z64_SLOT_NAYRUS_LOVE, + Z64_SLOT_BOTTLE_1, + Z64_SLOT_BOTTLE_2, + Z64_SLOT_BOTTLE_3, + Z64_SLOT_BOTTLE_4, + Z64_SLOT_ADULT_TRADE, + Z64_SLOT_CHILD_TRADE, +} z64_slot_t; + +typedef enum +{ + Z64_ITEMBTN_B, + Z64_ITEMBTN_CL, + Z64_ITEMBTN_CD, + Z64_ITEMBTN_CR, +} z64_itembtn_t; + +typedef struct +{ + char unk_00_[0x006E]; /* 0x0000 */ + int16_t run_speed_limit; /* 0x006E */ + char unk_01_[0x0004]; /* 0x0070 */ + int16_t run_speed_max_anim; /* 0x0074 */ + char unk_02_[0x0026]; /* 0x0076 */ + int16_t gravity; /* 0x009C */ + char unk_03_[0x0072]; /* 0x009E */ + uint16_t update_rate; /* 0x0110 */ + char unk_04_[0x0022]; /* 0x0112 */ + int16_t override_aspect; /* 0x0134 */ + uint16_t aspect_width; /* 0x0136 */ + uint16_t aspect_height; /* 0x0138 */ + char unk_05_[0x0050]; /* 0x013A */ + int16_t game_playing; /* 0x018A */ + char unk_06_[0x03B8]; /* 0x018C */ + uint16_t c_up_icon_x; /* 0x0544 */ + uint16_t c_up_icon_y; /* 0x0546 */ + char unk_07_[0x021C]; /* 0x0548 */ + uint16_t game_freeze; /* 0x0764 */ + char unk_08_[0x002E]; /* 0x0766 */ + uint16_t magic_fill_r; /* 0x0794 */ + uint16_t magic_fill_g; /* 0x0796 */ + uint16_t magic_fill_b; /* 0x0798 */ + char unk_09_[0x004A]; /* 0x079A */ + uint16_t c_button_r; /* 0x07E4 */ + uint16_t c_button_g; /* 0x07E6 */ + uint16_t c_button_b; /* 0x07E8 */ + uint16_t b_button_r; /* 0x07EA */ + uint16_t b_button_g; /* 0x07EC */ + uint16_t b_button_b; /* 0x07EE */ + char unk_0A_[0x0004]; /* 0x07F0 */ + qs510_t start_icon_dd; /* 0x07F4 */ + int16_t start_icon_scale; /* 0x07F6 */ + char unk_0B_[0x0006]; /* 0x07F8 */ + uint16_t start_icon_y; /* 0x07FE */ + char unk_0C_[0x0002]; /* 0x0800 */ + uint16_t start_icon_x; /* 0x0802 */ + char unk_0D_[0x000C]; /* 0x0804 */ + uint16_t c_up_button_x; /* 0x0810 */ + uint16_t c_up_button_y; /* 0x0812 */ + char unk_0E_[0x0008]; /* 0x0814 */ + uint16_t start_button_x; /* 0x081C */ + uint16_t start_button_y; /* 0x081E */ + uint16_t item_button_x[4]; /* 0x0820 */ + uint16_t item_button_y[4]; /* 0x0828 */ + qs510_t item_button_dd[4]; /* 0x0830 */ + uint16_t item_icon_x[4]; /* 0x0838 */ + uint16_t item_icon_y[4]; /* 0x0840 */ + qs510_t item_icon_dd[4]; /* 0x0848 */ + char unk_0F_[0x0264]; /* 0x0850 */ + uint16_t a_button_y; /* 0x0AB4 */ + uint16_t a_button_x; /* 0x0AB6 */ + char unk_10_[0x0002]; /* 0x0AB8 */ + uint16_t a_button_icon_y; /* 0x0ABA */ + uint16_t a_button_icon_x; /* 0x0ABC */ + char unk_11_[0x0002]; /* 0x0ABE */ + uint16_t a_button_r; /* 0x0AC0 */ + uint16_t a_button_g; /* 0x0AC2 */ + uint16_t a_button_b; /* 0x0AC4 */ + char unk_12_[0x0030]; /* 0x0AC6 */ + uint16_t magic_bar_x; /* 0x0AF6 */ + uint16_t magic_bar_y; /* 0x0AF8 */ + uint16_t magic_fill_x; /* 0x0AFA */ + char unk_13_[0x02D6]; /* 0x0AFC */ + int16_t minimap_disabled; /* 0x0DD2 */ + char unk_14_[0x01C0]; /* 0x0DD4 */ + uint16_t item_ammo_x[4]; /* 0x0F94 */ + uint16_t item_ammo_y[4]; /* 0x0F9C */ + char unk_15_[0x0008]; /* 0x0FA4 */ + uint16_t item_icon_space[4]; /* 0x0FAC */ + uint16_t item_button_space[4]; /* 0x0FB4 */ + /* 0x0FBC */ +} z64_gameinfo_t; + +typedef struct +{ + int32_t entrance_index; /* 0x0000 */ + int32_t link_age; /* 0x0004 */ + char unk_00_[0x0002]; /* 0x0008 */ + uint16_t cutscene_index; /* 0x000A */ + uint16_t day_time; /* 0x000C */ + char unk_01_[0x0002]; /* 0x000E */ + int32_t night_flag; /* 0x0010 */ + char unk_02_[0x0008]; /* 0x0014 */ + char id[6]; /* 0x001C */ + int16_t deaths; /* 0x0022 */ + char file_name[0x08]; /* 0x0024 */ + int16_t n64dd_flag; /* 0x002C */ + int16_t energy_capacity; /* 0x002E */ + int16_t energy; /* 0x0030 */ + uint8_t magic_capacity_set; /* 0x0032 */ + uint8_t magic; /* 0x0033 */ + uint16_t rupees; /* 0x0034 */ + uint16_t bgs_hits_left; /* 0x0036 */ + uint16_t navi_timer; /* 0x0038 */ + uint8_t magic_acquired; /* 0x003A */ + char unk_03_; /* 0x003B */ + uint8_t magic_capacity; /* 0x003C */ + int8_t double_defense; /* 0x003D */ + int8_t bgs_flag; /* 0x003E */ + char unk_05_; /* 0x003F */ + int8_t child_button_items[4]; /* 0x0040 */ + int8_t child_c_button_slots[3]; /* 0x0044 */ + union + { + uint16_t child_equips; /* 0x0048 */ + struct + { + uint16_t child_equip_boots : 4; + uint16_t child_equip_tunic : 4; + uint16_t child_equip_shield : 4; + uint16_t child_equip_sword : 4; + }; + }; + int8_t adult_button_items[4]; /* 0x004A */ + int8_t adult_c_button_slots[3]; /* 0x004E */ + union + { + uint16_t adult_equips; /* 0x0052 */ + struct + { + uint16_t adult_equip_boots : 4; + uint16_t adult_equip_tunic : 4; + uint16_t adult_equip_shield : 4; + uint16_t adult_equip_sword : 4; + }; + }; + char unk_06_[0x0012]; /* 0x0054 */ + int16_t scene_index; /* 0x0066 */ + int8_t button_items[4]; /* 0x0068 */ + int8_t c_button_slots[3]; /* 0x006C */ + union + { + uint16_t equips; /* 0x0070 */ + struct + { + uint16_t equip_boots : 4; + uint16_t equip_tunic : 4; + uint16_t equip_shield : 4; + uint16_t equip_sword : 4; + }; + }; + char unk_07_[0x0002]; /* 0x0072 */ + int8_t items[24]; /* 0x0074 */ + int8_t ammo[15]; /* 0x008C */ + uint8_t magic_beans_sold; /* 0x009B */ + union + { + uint16_t equipment; /* 0x009C */ + struct + { + uint16_t : 1; + uint16_t hover_boots : 1; + uint16_t iron_boots : 1; + uint16_t kokiri_boots : 1; + uint16_t : 1; + uint16_t zora_tunic : 1; + uint16_t goron_tunic : 1; + uint16_t kokiri_tunic : 1; + uint16_t : 1; + uint16_t mirror_shield : 1; + uint16_t hylian_shield : 1; + uint16_t deku_shield : 1; + uint16_t broken_giants_knife : 1; + uint16_t giants_knife : 1; + uint16_t master_sword : 1; + uint16_t kokiri_sword : 1; + }; + }; + char unk_08_[0x0002]; /* 0x009E */ + union + { + uint32_t equipment_items; /* 0x00A0 */ + struct + { + uint32_t : 9; + uint32_t nut_upgrade : 3; + uint32_t stick_upgrade : 3; + uint32_t bullet_bag : 3; + uint32_t wallet : 2; + uint32_t diving_upgrade : 3; + uint32_t strength_upgrade : 3; + uint32_t bomb_bag : 3; + uint32_t quiver : 3; + }; + }; + union + { + uint32_t quest_items; /* 0x00A4 */ + struct + { + uint32_t heart_pieces : 8; + uint32_t gold_skulltula : 1; + uint32_t gerudos_card : 1; + uint32_t stone_of_agony : 1; + uint32_t zoras_sapphire : 1; + uint32_t gorons_ruby : 1; + uint32_t kokiris_emerald : 1; + uint32_t song_of_storms : 1; + uint32_t song_of_time : 1; + uint32_t suns_song : 1; + uint32_t sarias_song : 1; + uint32_t eponas_song : 1; + uint32_t zeldas_lullaby : 1; + uint32_t prelude_of_light : 1; + uint32_t nocturne_of_shadow : 1; + uint32_t requiem_of_spirit : 1; + uint32_t serenade_of_water : 1; + uint32_t bolero_of_fire : 1; + uint32_t minuet_of_forest : 1; + uint32_t light_medallion : 1; + uint32_t shadow_medallion : 1; + uint32_t spirit_medallion : 1; + uint32_t water_medallion : 1; + uint32_t fire_medallion : 1; + uint32_t forest_medallion : 1; + }; + }; + union + { + uint8_t items; + struct + { + uint8_t : 5; + uint8_t map : 1; + uint8_t compass : 1; + uint8_t boss_key : 1; + }; + } dungeon_items[20]; /* 0x00A8 */ + int8_t dungeon_keys[19]; /* 0x00BC */ + uint8_t defense_hearts; /* 0x00CF */ + int16_t gs_tokens; /* 0x00D0 */ + char unk_09_[0x0002]; /* 0x00D2 */ + struct + { + uint32_t chest; + uint32_t swch; + uint32_t clear; + uint32_t collect; + uint32_t unk_00_; + uint32_t rooms_1; + uint32_t rooms_2; + } scene_flags[101]; /* 0x00D4 */ + char unk_0A_[0x0284]; /* 0x0BE0 */ + z64_xyzf_t fw_pos; /* 0x0E64 */ + z64_angle_t fw_yaw; /* 0x0E70 */ + char unk_0B_[0x0008]; /* 0x0E72 */ + uint16_t fw_scene_index; /* 0x0E7A */ + uint32_t fw_room_index; /* 0x0E7C */ + int32_t fw_set; /* 0x0E80 */ + char unk_0C_[0x0018]; /* 0x0E84 */ + uint8_t gs_flags[56]; /* 0x0E9C */ + uint16_t event_chk_inf[14]; /* 0x0ED4 */ + uint16_t item_get_inf[4]; /* 0x0EF0 */ + uint16_t inf_table[30]; /* 0x0EF8 */ + char unk_0D_[0x041E]; /* 0x0F34 */ + uint16_t checksum; /* 0x1352 */ + char unk_0E_[0x0003]; /* 0x1354 */ + int8_t file_index; /* 0x1357 */ + char unk_0F_[0x0004]; /* 0x1358 */ + int32_t interface_flag; /* 0x135C */ + uint32_t scene_setup_index; /* 0x1360 */ + int32_t void_flag; /* 0x1364 */ + z64_xyzf_t void_pos; /* 0x1368 */ + z64_angle_t void_yaw; /* 0x1374 */ + int16_t void_var; /* 0x1376 */ + int16_t void_entrance; /* 0x1378 */ + int8_t void_room_index; /* 0x137A */ + int8_t unk_10_; /* 0x137B */ + uint32_t temp_swch_flags; /* 0x137C */ + uint32_t temp_collect_flags; /* 0x1380 */ + char unk_11_[0x0044]; /* 0x1384 */ + uint16_t nayrus_love_timer; /* 0x13C8 */ + char unk_12_[0x0004]; /* 0x13CA */ + int16_t timer_1_state; /* 0x13CE */ + int16_t timer_1_value; /* 0x13D0 */ + int16_t timer_2_state; /* 0x13D2 */ + int16_t timer_2_value; /* 0x13D4 */ + char unk_13_[0x000A]; /* 0x13D6 */ + int8_t seq_index; /* 0x13E0 */ + int8_t night_sfx; /* 0x13E1 */ + char unk_14_[0x0018]; /* 0x13E2 */ + uint16_t event_inf[4]; /* 0x13FA */ + char unk_15_[0x0001]; /* 0x1402 */ + uint8_t minimap_index; /* 0x1403 */ + int16_t minigame_state; /* 0x1404 */ + char unk_16_[0x0003]; /* 0x1406 */ + uint8_t language; /* 0x1409 */ + char unk_17_[0x0002]; /* 0x140A */ + uint8_t z_targeting; /* 0x140C */ + char unk_18_[0x0001]; /* 0x140D */ + uint16_t disable_music_flag; /* 0x140E */ + char unk_19_[0x0020]; /* 0x1410 */ + z64_gameinfo_t *gameinfo; /* 0x1430 */ + char unk_1A_[0x001C]; /* 0x1434 */ + /* 0x1450 */ +} z64_file_t; + +typedef struct +{ + uint32_t seg[16]; +} z64_stab_t; + +typedef struct +{ + uint8_t scene_index; + uint8_t entrance_index; + union + { + uint16_t variable; + struct + { + uint16_t transition_out : 7; + uint16_t transition_in : 7; + uint16_t unk_00_ : 1; + uint16_t continue_music : 1; + }; + }; +} z64_entrance_table_t; + +typedef struct +{ + uint32_t scene_vrom_start; + uint32_t scene_vrom_end; + uint32_t title_vrom_start; + uint32_t title_vrom_end; + char unk_00_; + uint8_t scene_config; + char unk_01_; + char padding_00_; +} z64_scene_table_t; + +typedef struct +{ + uint32_t size; /* 0x0000 */ + Gfx *buf; /* 0x0004 */ + Gfx *p; /* 0x0008 */ + Gfx *d; /* 0x000C */ +} z64_disp_buf_t; + +typedef struct +{ + Gfx *poly_opa_w; /* 0x0000 */ + Gfx *poly_xlu_w; /* 0x0004 */ + char unk_00_[0x0008]; /* 0x0008 */ + Gfx *overlay_w; /* 0x0010 */ + char unk_01_[0x00A4]; /* 0x0014 */ + Gfx *work_c; /* 0x00B8 */ + uint32_t work_c_size; /* 0x00BC */ + char unk_02_[0x00F0]; /* 0x00C0 */ + Gfx *work_w; /* 0x01B0 */ + z64_disp_buf_t work; /* 0x01B4 */ + char unk_03_[0x00E4]; /* 0x01C4 */ + z64_disp_buf_t overlay; /* 0x02A8 */ + z64_disp_buf_t poly_opa; /* 0x02B8 */ + z64_disp_buf_t poly_xlu; /* 0x02C8 */ + uint32_t frame_count_1; /* 0x02D8 */ + void *frame_buffer; /* 0x02DC */ + char unk_04_[0x0008]; /* 0x02E0 */ + uint32_t frame_count_2; /* 0x02E8 */ + /* 0x02EC */ +} z64_gfx_t; + +typedef struct +{ + union + { + struct + { + uint16_t a : 1; + uint16_t b : 1; + uint16_t z : 1; + uint16_t s : 1; + uint16_t du : 1; + uint16_t dd : 1; + uint16_t dl : 1; + uint16_t dr : 1; + uint16_t : 2; + uint16_t l : 1; + uint16_t r : 1; + uint16_t cu : 1; + uint16_t cd : 1; + uint16_t cl : 1; + uint16_t cr : 1; + }; + uint16_t pad; + }; + int8_t x; + int8_t y; +} z64_controller_t; + +typedef struct z64_actor_s z64_actor_t; +struct z64_actor_s +{ + int16_t actor_id; /* 0x0000 */ + uint8_t actor_type; /* 0x0002 */ + int8_t room_index; /* 0x0003 */ + uint32_t flags; /* 0x0004 */ + z64_xyzf_t pos_1; /* 0x0008 */ + z64_rot_t rot_init; /* 0x0014 */ + char unk_01_[0x0002]; /* 0x001A */ + uint16_t variable; /* 0x001C */ + uint8_t alloc_index; /* 0x001E */ + char unk_02_; /* 0x001F */ + uint16_t sound_effect; /* 0x0020 */ + char unk_03_[0x0002]; /* 0x0022 */ + z64_xyzf_t pos_2; /* 0x0024 */ + char unk_04_[0x0002]; /* 0x0030 */ + uint16_t xz_dir; /* 0x0032 */ + char unk_05_[0x0004]; /* 0x0034 */ + z64_xyzf_t pos_3; /* 0x0038 */ + z64_rot_t rot_1; /* 0x0044 */ + char unk_06_[0x0002]; /* 0x004A */ + float unk_07_; /* 0x004C */ + z64_xyzf_t scale; /* 0x0050 */ + z64_xyzf_t vel_1; /* 0x005C */ + float xz_speed; /* 0x0068 */ + float gravity; /* 0x006C */ + float min_vel_y; /* 0x0070 */ + void *unk_08_; /* 0x0074 */ + z64_col_poly_t *floor_poly; /* 0x0078 */ + char unk_0A_[0x001C]; /* 0x007C */ + void *damage_table; /* 0x0098 */ + z64_xyzf_t vel_2; /* 0x009C */ + char unk_0B_[0x0006]; /* 0x00A8 */ + int16_t health; /* 0x00AE */ + char unk_0C_; /* 0x00B0 */ + uint8_t damage_effect; /* 0x00B1 */ + char unk_0D_[0x0002]; /* 0x00B2 */ + z64_rot_t rot_2; /* 0x00B4 */ + char unk_0E_[0x0046]; /* 0x00BA */ + z64_xyzf_t pos_4; /* 0x0100 */ + uint16_t unk_0F_; /* 0x010C */ + uint16_t text_id; /* 0x010E */ + int16_t frozen; /* 0x0110 */ + char unk_10_[0x0003]; /* 0x0112 */ + uint8_t active; /* 0x0115 */ + char unk_11_[0x0002]; /* 0x0116 */ + z64_actor_t *unk_12_; /* 0x0118 */ + char unk_13_[0x0004]; /* 0x011C */ + z64_actor_t *prev; /* 0x0120 */ + z64_actor_t *next; /* 0x0124 */ + void *ctor; /* 0x0128 */ + void *dtor; /* 0x012C */ + void *main_proc; /* 0x0130 */ + void *draw_proc; /* 0x0134 */ + void *code_entry; /* 0x0138 */ + /* 0x013C */ +}; + +typedef struct +{ + z64_actor_t common; /* 0x0000 */ + char unk_00_[0x02F8]; /* 0x013C */ + uint8_t action; /* 0x0434 */ + char unk_01_[0x0237]; /* 0x0435 */ + uint32_t state_flags_1; /* 0x066C */ + uint32_t state_flags_2; /* 0x0670 */ + char unk_02_[0x01B4]; /* 0x0674 */ + float linear_vel; /* 0x0828 */ + char unk_03_[0x0002]; /* 0x082C */ + uint16_t target_yaw; /* 0x082E */ + char unk_04_[0x0003]; /* 0x0830 */ + int8_t sword_state; /* 0x0833 */ + char unk_05_[0x0050]; /* 0x0834 */ + int16_t drop_y; /* 0x0884 */ + int16_t drop_distance; /* 0x0886 */ + /* 0x0888 */ +} z64_link_t; + +typedef struct +{ + z64_controller_t raw; + uint16_t unk_00_; + z64_controller_t raw_prev; + uint16_t unk_01_; + uint16_t pad_pressed; + int8_t x_diff; + int8_t y_diff; + char unk_02_[0x0002]; + uint16_t pad_released; + int8_t adjusted_x; + int8_t adjusted_y; + char unk_03_[0x0002]; +} z64_input_t; + +/* context base */ +typedef struct +{ + z64_gfx_t *gfx; /* 0x0000 */ + void *state_main; /* 0x0004 */ + void *state_dtor; /* 0x0008 */ + void *next_ctor; /* 0x000C */ + uint32_t next_size; /* 0x0010 */ + z64_input_t input[4]; /* 0x0014 */ + uint32_t state_heap_size; /* 0x0074 */ + void *state_heap; /* 0x0078 */ + void *heap_start; /* 0x007C */ + void *heap_end; /* 0x0080 */ + void *state_heap_node; /* 0x0084 */ + char unk_00_[0x0010]; /* 0x0088 */ + int32_t state_continue; /* 0x0098 */ + int32_t state_frames; /* 0x009C */ + uint32_t unk_01_; /* 0x00A0 */ + /* 0x00A4 */ +} z64_ctxt_t; + +typedef struct +{ + /* file loading params */ + uint32_t vrom_addr; + void *dram_addr; + uint32_t size; + /* unknown, seem to be unused */ + void *unk_00_; + uint32_t unk_01_; + uint32_t unk_02_; + /* completion notification params */ + OSMesgQueue *notify_queue; + OSMesg notify_message; +} z64_getfile_t; + +/* object structs */ +typedef struct +{ + int16_t id; + void *data; + z64_getfile_t getfile; + OSMesgQueue load_mq; + OSMesg load_m; +} z64_mem_obj_t; + +typedef struct +{ + void *obj_space_start; + void *obj_space_end; + uint8_t n_objects; + char unk_00_; + uint8_t keep_index; + uint8_t skeep_index; + z64_mem_obj_t objects[19]; +} z64_obj_ctxt_t; + +typedef struct +{ + uint32_t vrom_start; + uint32_t vrom_end; +} z64_object_table_t; + +/* lighting structs */ +typedef struct +{ + int8_t dir[3]; + uint8_t col[3]; +} z64_light1_t; + +typedef struct +{ + int16_t x; + int16_t y; + int16_t z; + uint8_t col[3]; + int16_t intensity; +} z64_light2_t; + +typedef union +{ + z64_light1_t light1; + z64_light2_t light2; +} z64_lightn_t; + +typedef struct +{ + uint8_t type; + z64_lightn_t lightn; +} z64_light_t; + +typedef struct z64_light_node_s z64_light_node_t; +struct z64_light_node_s +{ + z64_light_t *light; + z64_light_node_t *prev; + z64_light_node_t *next; +}; + +typedef struct +{ + z64_light_node_t *light_list; + uint8_t ambient[3]; + uint8_t fog[3]; + int16_t fog_position; + int16_t draw_distance; +} z64_lighting_t; + +typedef struct +{ + int8_t numlights; + Lightsn lites; +} z64_gbi_lights_t; + +typedef void (*z64_light_handler_t)(z64_gbi_lights_t*, z64_lightn_t*, + z64_actor_t*); + +/* game context */ +typedef struct +{ + z64_ctxt_t common; /* 0x00000 */ + uint16_t scene_index; /* 0x000A4 */ + char unk_00_[0x001A]; /* 0x000A6 */ + uint32_t screen_top; /* 0x000C0 */ + uint32_t screen_bottom; /* 0x000C4 */ + uint32_t screen_left; /* 0x000C8 */ + uint32_t screen_right; /* 0x000CC */ + float camera_distance; /* 0x000D0 */ + float fog_distance; /* 0x000D4 */ + float z_distance; /* 0x000D8 */ + float unk_01_; /* 0x000DC */ + char unk_02_[0x0190]; /* 0x000E0 */ + z64_actor_t *camera_focus; /* 0x00270 */ + char unk_03_[0x00AE]; /* 0x00274 */ + uint16_t camera_mode; /* 0x00322 */ + char unk_04_[0x001A]; /* 0x00324 */ + uint16_t camera_flag_1; /* 0x0033E */ + char unk_05_[0x016C]; /* 0x00340 */ + int16_t event_flag; /* 0x004AC */ + char unk_06_[0x02FA]; /* 0x004AE */ + z64_lighting_t lighting; /* 0x007A8 */ + char unk_07_[0x0008]; /* 0x007B8 */ + z64_col_hdr_t *col_hdr; /* 0x007C0 */ + char unk_08_[0x1460]; /* 0x007C4 */ + char actor_ctxt[0x0008]; /* 0x01C24 */ + uint8_t n_actors_loaded; /* 0x01C2C */ + char unk_09_[0x0003]; /* 0x01C2D */ + struct + { + uint32_t length; + z64_actor_t *first; + } actor_list[12]; /* 0x01C30 */ + char unk_0A_[0x0038]; /* 0x01C90 */ + z64_actor_t *arrow_actor; /* 0x01CC8 */ + z64_actor_t *target_actor; /* 0x01CCC */ + char unk_0B_[0x0058]; /* 0x01CD0 */ + uint32_t swch_flags; /* 0x01D28 */ + uint32_t temp_swch_flags; /* 0x01D2C */ + uint32_t unk_flags_0; /* 0x01D30 */ + uint32_t unk_flags_1; /* 0x01D34 */ + uint32_t chest_flags; /* 0x01D38 */ + uint32_t clear_flags; /* 0x01D3C */ + uint32_t temp_clear_flags; /* 0x01D40 */ + uint32_t collect_flags; /* 0x01D44 */ + uint32_t temp_collect_flags; /* 0x01D48 */ + void *title_card_texture; /* 0x01D4C */ + char unk_0C_[0x0007]; /* 0x01D50 */ + uint8_t title_card_delay; /* 0x01D57 */ + char unk_0D_[0x0010]; /* 0x01D58 */ + void *cutscene_ptr; /* 0x01D68 */ + int8_t cutscene_state; /* 0x01D6C */ + char unk_0E_[0xE66F]; /* 0x01D6D */ + uint8_t textbox_state_1; /* 0x103DC */ + char unk_0F_[0x00DF]; /* 0x103DD */ + uint8_t textbox_state_2; /* 0x104BC */ + char unk_10_[0x0002]; /* 0x104BD */ + uint8_t textbox_state_3; /* 0x104BF */ + char unk_11_[0x0292]; /* 0x104C0 */ + struct + { + uint8_t unk_00_; + uint8_t b_button; + uint8_t unk_01_; + uint8_t bottles; + uint8_t trade_items; + uint8_t hookshot; + uint8_t ocarina; + uint8_t warp_songs; + uint8_t suns_song; + uint8_t farores_wind; + uint8_t dfnl; + uint8_t all; + } restriction_flags; /* 0x10752 */ + char unk_12_[0x01D6]; /* 0x1075E */ + uint16_t pause_state; /* 0x10934 */ + char unk_13_[0x000E]; /* 0x10936 */ + uint16_t pause_screen_changing; /* 0x10944 */ + uint16_t pause_screen_prev; /* 0x10946 */ + uint16_t pause_screen; /* 0x10948 */ + char unk_14_[0x002E]; /* 0x1094A */ + int16_t item_screen_cursor; /* 0x10978 */ + char unk_15_[0x0002]; /* 0x1097A */ + int16_t quest_screen_cursor; /* 0x1097C */ + int16_t equip_screen_cursor; /* 0x1097E */ + int16_t map_screen_cursor; /* 0x10980 */ + int16_t item_screen_x; /* 0x10982 */ + char unk_16_[0x0004]; /* 0x10984 */ + int16_t equipment_screen_x; /* 0x10988 */ + char unk_17_[0x0002]; /* 0x1098A */ + int16_t item_screen_y; /* 0x1098C */ + char unk_18_[0x0004]; /* 0x1099E */ + int16_t equipment_screen_y; /* 0x10992 */ + char unk_19_[0x0004]; /* 0x10994 */ + int16_t pause_screen_cursor; /* 0x10998 */ + char unk_1A_[0x0002]; /* 0x1099A */ + int16_t pause_screen_item; /* 0x1099C */ + int16_t item_screen_item; /* 0x1099E */ + int16_t map_screen_item; /* 0x109A0 */ + int16_t quest_screen_item; /* 0x109A2 */ + int16_t equip_screen_item; /* 0x109A4 */ + char unk_1B_[0x0004]; /* 0x109A6 */ + int16_t quest_screen_hilite; /* 0x109AA */ + char unk_1C_[0x0018]; /* 0x109AC */ + int16_t quest_screen_song; /* 0x109C4 */ + char unk_1D_[0x0DDE]; /* 0x109C6 */ + z64_obj_ctxt_t obj_ctxt; /* 0x117A4 */ + int8_t room_index; /* 0x11CBC */ + char unk_1E_[0x000B]; /* 0x11CBD */ + void *room_ptr; /* 0x11CC8 */ + char unk_1F_[0x0118]; /* 0x11CCC */ + uint32_t gameplay_frames; /* 0x11DE4 */ + uint8_t link_age; /* 0x11DE8 */ + char unk_20_; /* 0x11DE9 */ + uint8_t spawn_index; /* 0x11DEA */ + uint8_t n_map_actors; /* 0x11DEB */ + uint8_t n_rooms; /* 0x11DEC */ + char unk_21_[0x000B]; /* 0x11DED */ + void *map_actor_list; /* 0x11DF8 */ + char unk_22_[0x0008]; /* 0x11DFC */ + void *scene_exit_list; /* 0x11E04 */ + char unk_23_[0x000C]; /* 0x11E08 */ + uint8_t skybox_type; /* 0x11E14 */ + int8_t scene_load_flag; /* 0x11E15 */ + char unk_24_[0x0004]; /* 0x11E16 */ + int16_t entrance_index; /* 0x11E1A */ + char unk_25_[0x0042]; /* 0x11E1C */ + uint8_t fadeout_transition; /* 0x11E5E */ + /* 0x11E5F */ +} z64_game_t; + +#if Z64_VERSION == Z64_OOT10 + +/* dram addresses */ +#define z64_osSendMesg_addr 0x80001E20 +#define z64_osRecvMesg_addr 0x80002030 +#define z64_osCreateMesgQueue_addr 0x80004220 +#define z64_file_mq_addr 0x80007D40 +#define z64_vi_counter_addr 0x80009E8C +#define z64_DrawActors_addr 0x80024AB4 +#define z64_DeleteActor_addr 0x80024FE0 +#define z64_SpawnActor_addr 0x80025110 +#define z64_minimap_disable_1_addr 0x8006CD50 +#define z64_minimap_disable_2_addr 0x8006D4E4 +#define z64_SwitchAgeEquips_addr 0x8006F804 +#define z64_UpdateItemButton_addr 0x8006FB50 +#define z64_UpdateEquipment_addr 0x80079764 +#define z64_LoadRoom_addr 0x80080A3C +#define z64_UnloadRoom_addr 0x80080C98 +#define z64_Io_addr 0x80091474 +#define z64_entrance_offset_hook_addr 0x8009AA44 +#define z64_frame_update_func_addr 0x8009AF1C +#define z64_frame_update_call_addr 0x8009CAE8 +#define z64_disp_swap_1_addr 0x800A1198 +#define z64_disp_swap_2_addr 0x800A11B0 +#define z64_disp_swap_3_addr 0x800A11C8 +#define z64_disp_swap_4_addr 0x800A11E4 +#define z64_frame_input_func_addr 0x800A0BA0 +#define z64_main_hook_addr 0x800A0C3C +#define z64_frame_input_call_addr 0x800A16AC +#define gspF3DEX2_NoN_fifoTextStart 0x800E3F70 +#define z64_day_speed_addr 0x800F1650 +#define z64_light_handlers_addr 0x800F1B40 +#define z64_object_table_addr 0x800F8FF8 +#define z64_entrance_table_addr 0x800F9C90 +#define z64_scene_table_addr 0x800FB4E0 +#define z64_scene_config_table_addr 0x800FBD18 +#define z64_seq_pos_addr 0x801043B0 +#define gspF3DEX2_NoN_fifoDataStart 0x801145C0 +#define z64_file_addr 0x8011A5D0 +#define z64_input_direct_addr 0x8011D730 +#define z64_stab_addr 0x80120C38 +#define z64_seq_buf_addr 0x80124800 +#define z64_ctxt_addr 0x801C84A0 +#define z64_link_addr 0x801DAA30 + +/* rom addresses */ +#define z64_icon_item_static_vaddr 0x007BD000 +#define z64_icon_item_static_vsize 0x000888A0 +#define z64_icon_item_24_static_vaddr 0x00846000 +#define z64_icon_item_24_static_vsize 0x0000B400 +#define z64_nes_font_static_vaddr 0x00928000 +#define z64_nes_font_static_vsize 0x00004580 +#define z64_parameter_static_vaddr 0x01A3C000 +#define z64_parameter_static_vsize 0x00003B00 + +/* context info */ +#define z64_ctxt_filemenu_ctor 0x80812394 +#define z64_ctxt_filemenu_size 0x0001CAD0 +#define z64_ctxt_game_ctor 0x8009A750 +#define z64_ctxt_game_size 0x00012518 + +#elif Z64_VERSION == Z64_OOT11 + +/* dram ddresses */ +#define z64_osSendMesg_addr 0x80001E20 +#define z64_osRecvMesg_addr 0x80002030 +#define z64_osCreateMesgQueue_addr 0x80004220 +#define z64_file_mq_addr 0x80007D40 +#define z64_vi_counter_addr 0x80009E8C +#define z64_DrawActors_addr 0x80024AB4 +#define z64_DeleteActor_addr 0x80024FE0 +#define z64_SpawnActor_addr 0x80025110 +#define z64_minimap_disable_1_addr 0x8006CD50 +#define z64_minimap_disable_2_addr 0x8006D4E4 +#define z64_SwitchAgeEquips_addr 0x8006F804 +#define z64_UpdateItemButton_addr 0x8006FB50 +#define z64_UpdateEquipment_addr 0x80079764 +#define z64_LoadRoom_addr 0x80080A3C +#define z64_UnloadRoom_addr 0x80080C98 +#define z64_Io_addr 0x80091484 +#define z64_entrance_offset_hook_addr 0x8009AA54 +#define z64_frame_update_func_addr 0x8009AF2C +#define z64_frame_update_call_addr 0x8009CAF8 +#define z64_disp_swap_1_addr 0x800A11A8 +#define z64_disp_swap_2_addr 0x800A11C0 +#define z64_disp_swap_3_addr 0x800A11D8 +#define z64_disp_swap_4_addr 0x800A11F4 +#define z64_frame_input_func_addr 0x800A0BB0 +#define z64_main_hook_addr 0x800A0C4C +#define z64_frame_input_call_addr 0x800A16BC +#define gspF3DEX2_NoN_fifoTextStart 0x800E4130 +#define z64_day_speed_addr 0x800F1810 +#define z64_light_handlers_addr 0x800F1D00 +#define z64_object_table_addr 0x800F91B8 +#define z64_entrance_table_addr 0x800F9E50 +#define z64_scene_table_addr 0x800FB6A0 +#define z64_scene_config_table_addr 0x800FBED8 +#define z64_seq_pos_addr 0x80104570 +#define gspF3DEX2_NoN_fifoDataStart 0x80114780 +#define z64_file_addr 0x8011A790 +#define z64_input_direct_addr 0x8011D8F0 +#define z64_stab_addr 0x80120DF8 +#define z64_seq_buf_addr 0x801249C0 +#define z64_ctxt_addr 0x801C8660 +#define z64_link_addr 0x801DABF0 + +/* rom addresses */ +#define z64_icon_item_static_vaddr 0x007BD000 +#define z64_icon_item_static_vsize 0x000888A0 +#define z64_icon_item_24_static_vaddr 0x00846000 +#define z64_icon_item_24_static_vsize 0x0000B400 +#define z64_nes_font_static_vaddr 0x008ED000 +#define z64_nes_font_static_vsize 0x00004580 +#define z64_parameter_static_vaddr 0x01A3C000 +#define z64_parameter_static_vsize 0x00003B00 + +/* context info */ +#define z64_ctxt_filemenu_ctor 0x80812394 +#define z64_ctxt_filemenu_size 0x0001CAD0 +#define z64_ctxt_game_ctor 0x8009A760 +#define z64_ctxt_game_size 0x00012518 + +#elif Z64_VERSION == Z64_OOT12 + +/* dram ddresses */ +#define z64_osSendMesg_addr 0x80001FD0 +#define z64_osRecvMesg_addr 0x800021F0 +#define z64_osCreateMesgQueue_addr 0x800043E0 +#define z64_file_mq_addr 0x80008A30 +#define z64_vi_counter_addr 0x8000A4CC +#define z64_DrawActors_addr 0x800250F4 +#define z64_DeleteActor_addr 0x80025620 +#define z64_SpawnActor_addr 0x80025750 +#define z64_minimap_disable_1_addr 0x8006D3B0 +#define z64_minimap_disable_2_addr 0x8006DB44 +#define z64_SwitchAgeEquips_addr 0x8006FE64 +#define z64_UpdateItemButton_addr 0x800701B0 +#define z64_UpdateEquipment_addr 0x80079DF4 +#define z64_LoadRoom_addr 0x80081064 +#define z64_UnloadRoom_addr 0x800812C0 +#define z64_Io_addr 0x80091AB4 +#define z64_entrance_offset_hook_addr 0x8009B134 +#define z64_frame_update_func_addr 0x8009B60C +#define z64_frame_update_call_addr 0x8009D1D8 +#define z64_disp_swap_1_addr 0x800A1848 +#define z64_disp_swap_2_addr 0x800A1860 +#define z64_disp_swap_3_addr 0x800A1878 +#define z64_disp_swap_4_addr 0x800A1894 +#define z64_frame_input_func_addr 0x800A1290 +#define z64_main_hook_addr 0x800A1328 +#define z64_frame_input_call_addr 0x800A1D8C +#define gspF3DEX2_NoN_fifoTextStart 0x800E45B0 +#define z64_day_speed_addr 0x800F1C90 +#define z64_light_handlers_addr 0x800F2180 +#define z64_object_table_addr 0x800F9648 +#define z64_entrance_table_addr 0x800FA2E0 +#define z64_scene_table_addr 0x800FBB30 +#define z64_scene_config_table_addr 0x800FC368 +#define z64_seq_pos_addr 0x801049F0 +#define gspF3DEX2_NoN_fifoDataStart 0x80114C70 +#define z64_file_addr 0x8011AC80 +#define z64_input_direct_addr 0x8011DE00 +#define z64_stab_addr 0x80121508 +#define z64_seq_buf_addr 0x801250D0 +#define z64_ctxt_addr 0x801C8D60 +#define z64_link_addr 0x801DB2F0 + +/* rom addresses */ +#define z64_icon_item_static_vaddr 0x007BD000 +#define z64_icon_item_static_vsize 0x000888A0 +#define z64_icon_item_24_static_vaddr 0x00846000 +#define z64_icon_item_24_static_vsize 0x0000B400 +#define z64_nes_font_static_vaddr 0x008ED000 +#define z64_nes_font_static_vsize 0x00004580 +#define z64_parameter_static_vaddr 0x01A3C000 +#define z64_parameter_static_vsize 0x00003B00 + +/* context info */ +#define z64_ctxt_filemenu_ctor 0x80812394 +#define z64_ctxt_filemenu_size 0x0001CAD0 +#define z64_ctxt_game_ctor 0x8009AE40 +#define z64_ctxt_game_size 0x00012518 + +#endif + +/* function prototypes */ +typedef void (*z64_DrawActors_proc) (z64_game_t *game, void *actor_ctxt); +typedef void (*z64_DeleteActor_proc) (z64_game_t *game, void *actor_ctxt, + z64_actor_t *actor); +typedef void (*z64_SpawnActor_proc) (void *actor_ctxt, z64_game_t *game, + int actor_id, float x, float y, + float z, uint16_t rx, uint16_t ry, + uint16_t rz, uint16_t variable); +typedef void (*z64_SwitchAgeEquips_proc) (void); +typedef void (*z64_UpdateItemButton_proc) (z64_game_t *game, int button_index); +typedef void (*z64_UpdateEquipment_proc) (z64_game_t *game, z64_link_t *link); +typedef void (*z64_LoadRoom_proc) (z64_game_t *game, + void *p_ctxt_room_index, + uint8_t room_index); +typedef void (*z64_UnloadRoom_proc) (z64_game_t *game, + void *p_ctxt_room_index); +typedef void (*z64_Io_proc) (uint32_t dev_addr, void *dram_addr, + uint32_t size, int32_t direction); +typedef void (*z64_SceneConfig_proc) (z64_game_t *game); + +/* data */ +#define z64_file_mq (*(OSMesgQueue*) z64_file_mq_addr) +#define z64_vi_counter (*(uint32_t*) z64_vi_counter_addr) +#define z64_stab (*(z64_stab_t*) z64_stab_addr) +#define z64_scene_table ( (z64_scene_table_t*)z64_scene_table_addr) +#define z64_day_speed (*(uint16_t*) z64_day_speed_addr) +#define z64_light_handlers ( (z64_light_handler_t*) \ + z64_light_handlers_addr) +#define z64_object_table ( (z64_object_table_t*) \ + z64_object_table_addr) +#define z64_entrance_table ( (z64_entrance_table_t*) \ + z64_entrance_table_addr) +#define z64_scene_config_table ( (z64_SceneConfig_proc*) \ + z64_scene_config_table_addr) +#define z64_file (*(z64_file_t*) z64_file_addr) +#define z64_input_direct (*(z64_input_t*) z64_input_direct_addr) +#define z64_gameinfo (* z64_file.gameinfo) +#define z64_ctxt (*(z64_ctxt_t*) z64_ctxt_addr) +#define z64_game (*(z64_game_t*) &z64_ctxt) +#define z64_link (*(z64_link_t*) z64_link_addr) + +/* functions */ +#define z64_osSendMesg ((osSendMesg_t) z64_osSendMesg_addr) +#define z64_osRecvMesg ((osRecvMesg_t) z64_osRecvMesg_addr) +#define z64_osCreateMesgQueue ((osCreateMesgQueue_t) \ + z64_osCreateMesgQueue_addr) +#define z64_DrawActors ((z64_DrawActors_proc)z64_DrawActors_addr) +#define z64_DeleteActor ((z64_DeleteActor_proc) \ + z64_DeleteActor_addr) +#define z64_SpawnActor ((z64_SpawnActor_proc)z64_SpawnActor_addr) +#define z64_SwitchAgeEquips ((z64_SwitchAgeEquips_proc) \ + z64_SwitchAgeEquips_addr) +#define z64_UpdateItemButton ((z64_UpdateItemButton_proc) \ + z64_UpdateItemButton_addr) +#define z64_UpdateEquipment ((z64_UpdateEquipment_proc) \ + z64_UpdateEquipment_addr) +#define z64_LoadRoom ((z64_LoadRoom_proc) z64_LoadRoom_addr) +#define z64_UnloadRoom ((z64_UnloadRoom_proc) \ + z64_UnloadRoom_addr) +#define z64_Io ((z64_Io_proc) z64_Io_addr) + +#endif diff --git a/ASM/src/hacks.asm b/ASM/src/hacks.asm index 66d07cb9a..9088fdd28 100755 --- a/ASM/src/hacks.asm +++ b/ASM/src/hacks.asm @@ -466,3 +466,12 @@ ; sh t7, 0xef0(v0) .org 0xDF7CB0 jal Deku_Set_Sold_Out + +;================================================================================================== +; Dungeon info display +;================================================================================================== + +; Replaces: +; jal 0x8009FEC0 ; swap buffers for overlay display list +.org 0xB17128 ; In memory: 0x800A11C8 + jal overlay_swap diff --git a/ASM/src/init.asm b/ASM/src/init.asm index 8aa4e2e49..cd9d85b98 100644 --- a/ASM/src/init.asm +++ b/ASM/src/init.asm @@ -9,6 +9,9 @@ init: jal 0x80000DF0 nop + jal c_init + nop + ; Displaced code lui v0, 0x8012 addiu v0, v0, 0xD2A0 diff --git a/ASM/src/resources/font.bin b/ASM/src/resources/font.bin new file mode 100644 index 0000000000000000000000000000000000000000..b894248beee607ac11ad8b9f7ee0e4a8c26b5744 GIT binary patch literal 5320 zcmb_gU2Ggz6+T(-dVgkS<#!abuLv-Ukg5bJ?!JKl$NPo=+p~i5fT-8o0^*@$vycZ+ zg|{QQ2&9tjJX9*AwmYI#B}nZK#HkX;*$yF2(zUZ0|L)q}b&3h4ke}f@vp?RSS>vc2 z>GQq!+;isMd+xdCoHfzMBuOKxK}6q%TKQ;=@3cg5lBf|*GOax6#|HI%QKM6$@`7bO zq|0$~txwWj%eoiPHc0%HNx^UEty-0_S0PV!Cn8?@y&}D;kgxP6(N}J(1 zmxz)B+H2=M#dB{{`bKghZus)={W;|A)*}241eJ3 zh)0{1yRthZEGCtpA{cVQZ;n0vN0VC~GoR<3C}5dzvd-{XEYMEA{5FYalGvE26ZNS? zGa(Y-$}wyvj<3;OTCmabFK4;Vw=KBf8dJ7Fh1a^;Bx;8ccOH!~z? z8Hz_T^s;6B3&w#8qn$*{iq_p_7f+@ujXkrC1%2o{X~mz1QJrYI6b=-Rr-G0koGwMi z7Ke3NVSD;b5&f=gDdMCi+vk>4yjaXH5V@;&$gFgQMGoZ2mcr89ux8)a+_2)l^B{Ee z%^_Wm`OUsJh751M6m?Le?)(l(ZzL5tihGX=Ci-S~e#zwX`G1&6c=ETL)b@Enz15Zao|DX>-qEKn(R1aA@mz!$^jv9z2)sj({no2;js1gECx41Coqr2)Y3c@p`^@V^ z?%7h<|4LjXI;xWEYM8`7!#;2VCT?r}3a9?}$aFa&-aNjZ4AJF31$O6e#-GaF_${5| zmdEi3Jp5LeXneQ&v8rmnfta&Nbma=3`xN8S6YSLq0xww;1jDH2qM z^`H_k?bdo24Ju!~7F0YRqFoDGzAg3 zX|_@Ac_+p9tO(KRR)l|qI5z&&GJSgYqLUV3PX#%aNyy(TkUX0rxvY`=^CI}u5jl2L zmt)7>_Ty}x5UgZJUiKEQg@QCKh4s4qX-3CYhSH8}zQejiL#XSV)k0tqp_%O4f#kHbV>28j6_@o-1?RIO1$E@NEDP&Yc zGs;Z{_2T&G%0~R9TW0U2Nkdvo>Y@=;9n>hE@D>8sj%u#lREUxVqJGqyGdc2ZCS(1o zV9bQvTTXh@Ay4tMs;GN6l2KZ~$|tYwUwG|3Iw%IYZY1Gv$kPex+D7-U$j?#YRYaZW zla}?LCbhu_CKs-2V-7y%(DK$ZX{kjrh^}AlJw*a68}&+ zWH80~#UQkfXi{t*9I#IfE35t&lQDO8izF3GHDadB_EaSeuU>6N(+X8Lt?~Sp-e{(J zAMebp$=I#8WysUa>x54jBt1$r+(7NqC;lQ_SR&!JPQrr?)CpI61pNed?d8W*ry!?U z`2g@ma7gmqgQ$4-aCu7&lQiy0k6@-i}uP z|3sCCER`2Jdbna9F)oG;Jk>rC;mcTG|RJz(^vJnQKY<#5omoS)3jN|=EYPQo1X zlaf}5pIBTCzBX@&g^U(hky8gLp1{7kH!~5+V2wTlKOuAEUymo^3IF;*dhw`d17|Y$ z7iw1_9j1i^q&9p*G6B`jZPIr87f@&G_$Li=;QN&XH50;mP_g+9^4)pWPM4xqksHDA zVF+umLsfY^#~12>Y>h;89~aOS%3-8K{&rPgn8SDPVp054jMrg4V Date: Sun, 9 Sep 2018 08:27:14 -0600 Subject: [PATCH 447/755] Restore hint related to the rarity of finding the 1 rupee --- HintList.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HintList.py b/HintList.py index 871cf1e2f..5df3412df 100644 --- a/HintList.py +++ b/HintList.py @@ -104,7 +104,7 @@ def getHintGroup(group, world): 'Piece of Heart': (["love", "a partial Valentine"], 'item'), 'Piece of Heart (Treasure Chest Game)': (["WINNER!", "a guaranteed 1/32 chance"], 'item'), 'Recovery Heart': (["a free heal", "disappointing love"], 'item'), - 'Rupee (1)': (["a penny", "a tiny coin", "a green gem"], 'item'), + 'Rupee (1)': (["a unique coin", "a penny", "a tiny coin", "a green gem"], 'item'), 'Rupees (5)': (["a common coin", "a blue gem"], 'item'), 'Rupees (20)': (["couch cash", "a red gem"], 'item'), 'Rupees (50)': (["big bucks", "a purple gem", "wealth"], 'item'), From 7ace151e0448c02da10898b49709f98b0bef9f73 Mon Sep 17 00:00:00 2001 From: Stephen Rollins Date: Sun, 9 Sep 2018 08:34:52 -0600 Subject: [PATCH 448/755] Remove some hints that refer to an item's Vanilla location --- HintList.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/HintList.py b/HintList.py index 5df3412df..515b3dc43 100644 --- a/HintList.py +++ b/HintList.py @@ -49,7 +49,7 @@ def getHintGroup(group, world): 'Progressive Hookshot': (["Dampe's keepsake", "an arm extension", "a great chain"], 'item'), 'Progressive Strength Upgrade': (["power gloves", "arm day results", "heavy object lifters"], 'item'), 'Hover Boots': (["butter boots", "slippery shoes", "spacewalkers"], 'item'), - 'Master Sword': (["evil's bane", "the sword in the stone"], 'item'), + 'Master Sword': (["evil's bane"], 'item'), 'Mirror Shield': (["the reflective rampart", "Medusa's weakness"], 'item'), 'Farores Wind': (["teleportation", "relocation magic", "a warp spell", "green wind"], 'item'), 'Nayrus Love': (["a safe space", "an impregnable aura"], 'item'), @@ -67,13 +67,13 @@ def getHintGroup(group, world): 'Bow': (["an archery enabler", "a danger dart launcher"], 'item'), 'Bomb Bag': (["an explosive container", "kaboom storage"], 'item'), 'Sarias Song': (["a song of dancing Gorons", "a green girl's tune", "child's forest melody"], 'item'), - 'Song of Time': (["a song 7 years long", "a song from a blue flute", "a tune to move blocks"], 'item'), + 'Song of Time': (["a song 7 years long", "a tune to move blocks"], 'item'), 'Song of Storms': (["Rain Dance", "a thunderstorm melody", "the tune of windmills"], 'item'), 'Minuet of Forest': (["the song of tall trees", "adult's forest melody", "a green warp song"], 'item'), 'Requiem of Spirit': (["a song of sandy statues", "an orange warp song", "the tune of the desert"], 'item'), 'Slingshot': (["a seed shooter", "child's projectiles"], 'item'), 'Boomerang': (["a banana", "a faithful curved stick", "Jabu Jabu's prize"], 'item'), - 'Fire Arrows': (["the furnace firearm", "flame darts", "burning projectiles", "the sun's gift"], 'item'), + 'Fire Arrows': (["the furnace firearm", "flame darts", "burning projectiles"], 'item'), 'Ocarina of Time': (["a blue flute", "a royal instrument"], 'item'), 'Bottle': (["a glass container", "an empty jar", "something to be filled"], 'item'), 'Bottle with Letter': (["a call for help", "an SOS jar", "fishy stationary"], 'item'), @@ -88,18 +88,18 @@ def getHintGroup(group, world): 'Bottle with Poe': (["a spooky ghost", "a face in the jar"], 'item'), 'Progressive Scale': (["vertical swim depth", "a dive enhancer"], 'item'), 'Stone of Agony': (["an empty chest", "a vibrating rock", "a clue finder"], 'item'), - 'Eponas Song': (["an equestrian etude", "a ranch song", "Malon's tune"], 'item'), + 'Eponas Song': (["an equestrian etude", "a ranch song"], 'item'), 'Epona': (["a horse", "a four legged friend"], 'item'), 'Gerudo Membership Card': (["a GT subscription", "a desert tribe's pass"], 'item'), 'Progressive Wallet': (["a mo' money holder", "a gem purse", "financial capacity"], 'item'), 'Bolero of Fire': (["a song of lethal lava", "a red warp song", "a volcano tune", "a song of a red sea"], 'item'), - 'Suns Song': (["Sunny Day", "a time advancer", "a day/night melody", "the redead's keepsake", "the gibdo's bane"], 'item'), + 'Suns Song': (["Sunny Day", "a time advancer", "a day/night melody", "the gibdo's bane"], 'item'), 'Deku Shield': (["a wooden ward", "forest protection"], 'item'), 'Hylian Shield': (["a steel safeguard", "a Hylian relic", "metallic protection"], 'item'), 'Deku Stick Capacity': (["a bundle of sticks", "more flammable twigs"], 'item'), 'Deku Nut Capacity': (["more nuts", "flashbang storage"], 'item'), 'Prelude of Light': (["a luminous prologue melody", "a yellow warp song", "the temple traveler"], 'item'), - 'Serenade of Water': (["a song of a damp ditch", "a blue warp song", "the lake's tune", "ice cavern's melody"], 'item'), + 'Serenade of Water': (["a song of a damp ditch", "a blue warp song", "the lake's tune"], 'item'), 'Heart Container': (["a lot of love", "a Valentine's gift", "every boss' reward"], 'item'), 'Piece of Heart': (["love", "a partial Valentine"], 'item'), 'Piece of Heart (Treasure Chest Game)': (["WINNER!", "a guaranteed 1/32 chance"], 'item'), @@ -109,9 +109,9 @@ def getHintGroup(group, world): 'Rupees (20)': (["couch cash", "a red gem"], 'item'), 'Rupees (50)': (["big bucks", "a purple gem", "wealth"], 'item'), 'Rupees (200)': (["a juicy jackpot", "a yellow gem", "great wealth"], 'item'), - 'Light Arrows': (["the shining shot", "glowing darts", "Ganondorf's bane", "Zelda's final gift"], 'item'), + 'Light Arrows': (["the shining shot", "glowing darts", "Ganondorf's bane"], 'item'), 'Kokiri Sword': (["a butter knife", "a tiny, sharp blade"], 'item'), - 'Biggoron Sword': (["a shield disabler", "a two-handed blade", "Biggoron's product", "an epic trade's end"], 'item'), + 'Biggoron Sword': (["a shield disabler", "a two-handed blade"], 'item'), 'Pocket Egg': (["a Cucco container", "a Cucco, eventually", "a fowl youth"], 'item'), 'Weird Egg': (["a chicken dilemma"], 'item'), 'Pocket Cucco': (["a little clucker"], 'item'), @@ -166,7 +166,7 @@ def getHintGroup(group, world): 'Chest Above King Dodongo': ("They say that the chest above the&Infernal Dinosaur contains&", 'location'), 'Forest Temple Floormaster Chest': ("Deep in the forest, shadows&guard a chest containing&", 'location'), 'Fire Temple Scarecrow Chest': ("They say high in the Fire&Temple, Pierre hid&", 'location'), - 'Fire Temple Megaton Hammer Chest': (["They say that the highest&chest in the crater&holds", "They say that the hammer's&home has been filled&with"], 'location'), + 'Fire Temple Megaton Hammer Chest': (["They say that the highest&chest in the crater&holds"], 'location'), 'Water Temple River Chest': ("They say deep under the lake,&beyond the currents,&hides", 'location'), 'Water Temple Boss Key Chest': ("Deep under the lake,&the gilded chest&contains", 'location'), 'Gerudo Training Grounds Underwater Silver Rupee Chest': ("They say those who seek&sunken silver rupees will&find", 'location'), From 4e0e571f0c84cc3add0601e576d472e0d428f832 Mon Sep 17 00:00:00 2001 From: Vincent Cunningham Date: Sun, 9 Sep 2018 11:42:38 -0400 Subject: [PATCH 449/755] fix default output not using realpath --- Utils.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Utils.py b/Utils.py index b04465383..5dc4cc224 100644 --- a/Utils.py +++ b/Utils.py @@ -26,9 +26,9 @@ def local_path(path): def default_output_path(path): if path == '': - path = os.path.join('.', 'Output') + path = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'Output') - if not os.path.exists(path): + if not os.path.exists(path): os.mkdir(path) return path From 84451377575deb42a04731b6550e8b959d5cc22f Mon Sep 17 00:00:00 2001 From: Stephen Rollins Date: Sun, 9 Sep 2018 11:00:03 -0600 Subject: [PATCH 450/755] Additional line break improvements for hint locations --- HintList.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/HintList.py b/HintList.py index 515b3dc43..5b1c2a8fa 100644 --- a/HintList.py +++ b/HintList.py @@ -148,18 +148,18 @@ def getHintGroup(group, world): #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box '10 Big Poes': (["They say that Big Poes leads&to", "They say that ghost hunters&will be rewarded with&"], 'alwaysLocation'), 'Deku Theater Mask of Truth': ("They say that the Mask of Truth&yields", 'alwaysLocation'), - '30 Gold Skulltulla Reward': ("They say that slaying&30 Gold Skulltulas&reveals", 'alwaysLocation'), - '40 Gold Skulltulla Reward': ("They say that slaying&40 Gold Skulltulas&reveals", 'alwaysLocation'), - '50 Gold Skulltulla Reward': ("They say that slaying&50 Gold Skulltulas&reveals", 'alwaysLocation'), + '30 Gold Skulltulla Reward': ("They say that slaying&30 Gold Skulltulas reveals&", 'alwaysLocation'), + '40 Gold Skulltulla Reward': ("They say that slaying&40 Gold Skulltulas reveals&", 'alwaysLocation'), + '50 Gold Skulltulla Reward': ("They say that slaying&50 Gold Skulltulas reveals&", 'alwaysLocation'), 'Song from Ocarina of Time': ("They say the Ocarina of Time&teaches", 'alwaysLocation'), 'Biggoron': ("They say that Biggoron&crafts", 'alwaysLocation'), 'Child Fishing': ("They say that fishing in youth&bestows", 'location'), 'Adult Fishing': ("They say that fishing in maturity&bestows", 'location'), - '20 Gold Skulltulla Reward': ("They say that slaying&20 Gold Skulltulas&reveals", 'location'), + '20 Gold Skulltulla Reward': ("They say that slaying&20 Gold Skulltulas reveals&", 'location'), 'Treasure Chest Game': (["They say that gambling&grants", "They say there is a 1/32 chance&to win"], 'location'), 'Darunias Joy': ("They say that Darunia's dance leads&to", 'location'), 'Frog Ocarina Game': (["They say The Frogs of Zora River&hold", "They say that the musical&hibians have found&"], 'location'), - 'Horseback Archery 1500 Points': ("They say that mastery of horseback&archery grants", 'location'), + 'Horseback Archery 1500 Points': ("They say that mastery of&horseback archery grants&", 'location'), 'Lake Hylia Sun': (["They say staring into the sun&grants", "They say that acts of solar&aggression are punished&with"], 'location'), 'Heart Piece Grave Chest': ("They say there's a hidden location&where the Sun's Song&spawns", 'location'), 'Goron City Leftmost Maze Chest': ("They say in Goron City the hammer&unlocks", 'location'), @@ -188,7 +188,7 @@ def getHintGroup(group, world): 'Zoras Fountain Bottom Freestanding PoH': ("They say under the icy waters&lies", 'location'), 'Colossus Freestanding PoH': ("They say that riding a&beanstalk in the desert leads&to", 'location'), 'DM Crater Volcano Freestanding PoH': ("They say that riding a&beanstalk in the crater leads&to", 'location'), - 'Goron City Pot Freestanding PoH': ("They say that spinning&Goron pottery&contains", 'location'), + 'Goron City Pot Freestanding PoH': ("They say that spinning&Goron pottery contains&", 'location'), #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box '1001': ("Ganondorf 2020!", 'junkHint'), '1002': ("They say that monarchy is a&terrible system of governance.", 'junkHint'), From a783e6b34c21c535ae779e9a5a54b9c4ebc3dca7 Mon Sep 17 00:00:00 2001 From: Stephen Rollins Date: Sun, 9 Sep 2018 11:08:48 -0600 Subject: [PATCH 451/755] Don't display a leading space after a line break --- Hints.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Hints.py b/Hints.py index 7455b8992..623c33783 100644 --- a/Hints.py +++ b/Hints.py @@ -58,6 +58,12 @@ def isDungeonItem(item): def update_hint(messages, id, text): update_message_by_id(messages, id, get_raw_text(text)) +def filterTrailingSpace(text): + if text.endswith('& '): + return text[:-1] + else: + return text + #builds out general hints based on location and whether an item is required or not def buildGossipHints(world, messages): @@ -100,7 +106,7 @@ def buildGossipHints(world, messages): for locationWorld in world.get_locations(): if hint.name == locationWorld.name: checkedLocations.append(hint.name) - update_hint(messages, stoneIDs.pop(0), getHint(locationWorld.name).text + " " + \ + update_hint(messages, stoneIDs.pop(0), filterTrailingSpace(getHint(locationWorld.name).text + " ") + \ getHint(getItemGenericName(locationWorld.item)).text + ".") @@ -116,7 +122,7 @@ def buildGossipHints(world, messages): for locationWorld in world.get_locations(): if hint.name == locationWorld.name: checkedLocations.append(locationWorld.name) - update_hint(messages, stoneIDs.pop(0), getHint(locationWorld.name).text + " " + \ + update_hint(messages, stoneIDs.pop(0), filterTrailingSpace(getHint(locationWorld.name).text + " ") + \ getHint(getItemGenericName(locationWorld.item)).text + ".") # add bad dungeon locations hints From 68a166e7bc79563953809ad52bb26fcc511d76a8 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 9 Sep 2018 13:19:23 -0400 Subject: [PATCH 452/755] Load settings.sav from the file directory to match Pull #102 --- Gui.py | 3 ++- version.py | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Gui.py b/Gui.py index 7a6d03a2b..93019fa8d 100755 --- a/Gui.py +++ b/Gui.py @@ -428,7 +428,8 @@ def generateRom(): else: # try to load saved settings try: - with open('settings.sav') as f: + settingsFile = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'settings.sav') + with open(settingsFile) as f: settings = Settings( json.load(f) ) settings.update_seed("") settings_to_guivars(settings, guivars) diff --git a/version.py b/version.py index 0061d8c37..1c5cd8a08 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.17.1 f.LUM' +__version__ = '2.17.2 f.LUM' From a75f5e4afed580a3caf538959e046911e452055e Mon Sep 17 00:00:00 2001 From: Stephen Rollins Date: Sun, 9 Sep 2018 11:25:11 -0600 Subject: [PATCH 453/755] Adjust some more item hints Remove location reference for boomerang Make WINNER! heart piece have the same hints as all other heart pieces --- HintList.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/HintList.py b/HintList.py index 5b1c2a8fa..de596355f 100644 --- a/HintList.py +++ b/HintList.py @@ -72,7 +72,7 @@ def getHintGroup(group, world): 'Minuet of Forest': (["the song of tall trees", "adult's forest melody", "a green warp song"], 'item'), 'Requiem of Spirit': (["a song of sandy statues", "an orange warp song", "the tune of the desert"], 'item'), 'Slingshot': (["a seed shooter", "child's projectiles"], 'item'), - 'Boomerang': (["a banana", "a faithful curved stick", "Jabu Jabu's prize"], 'item'), + 'Boomerang': (["a banana", "a faithful curved stick"], 'item'), 'Fire Arrows': (["the furnace firearm", "flame darts", "burning projectiles"], 'item'), 'Ocarina of Time': (["a blue flute", "a royal instrument"], 'item'), 'Bottle': (["a glass container", "an empty jar", "something to be filled"], 'item'), @@ -102,7 +102,7 @@ def getHintGroup(group, world): 'Serenade of Water': (["a song of a damp ditch", "a blue warp song", "the lake's tune"], 'item'), 'Heart Container': (["a lot of love", "a Valentine's gift", "every boss' reward"], 'item'), 'Piece of Heart': (["love", "a partial Valentine"], 'item'), - 'Piece of Heart (Treasure Chest Game)': (["WINNER!", "a guaranteed 1/32 chance"], 'item'), + 'Piece of Heart (Treasure Chest Game)': (["love", "a partial Valentine"], 'item'), 'Recovery Heart': (["a free heal", "disappointing love"], 'item'), 'Rupee (1)': (["a unique coin", "a penny", "a tiny coin", "a green gem"], 'item'), 'Rupees (5)': (["a common coin", "a blue gem"], 'item'), From eed1e272f91c1969dd7b29b373ba2d76c423498a Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 9 Sep 2018 13:37:56 -0400 Subject: [PATCH 454/755] Hint data is not generated when hints are off (Issue #99) --- BaseClasses.py | 17 +++++++++-------- Main.py | 9 +++++---- version.py | 2 +- 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 09f575a84..ec2a459f1 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -863,11 +863,12 @@ def to_file(self, filename): else: outfile.write('\n'.join(['%s: {\n%s\n}' % (sphere_nr, '\n'.join([' %s: %s' % (location.name, item.name) for (location, item) in sphere.items()])) for (sphere_nr, sphere) in self.playthrough.items()])) - outfile.write('\n\nAlways Required Locations:\n\n') - if self.settings.world_count > 1: - outfile.write('\n'.join(['%s: %s [Player %d]' % (location.name, location.item.name, location.item.world.id + 1) for location in self.required_locations])) - else: - outfile.write('\n'.join(['%s: %s' % (location.name, location.item.name) for location in self.required_locations])) - - outfile.write('\n\nGossip Stone Hints:\n\n') - outfile.write('\n'.join(self.hints.values())) + if len(self.hints) > 0: + outfile.write('\n\nAlways Required Locations:\n\n') + if self.settings.world_count > 1: + outfile.write('\n'.join(['%s: %s [Player %d]' % (location.name, location.item.name, location.item.world.id + 1) for location in self.required_locations])) + else: + outfile.write('\n'.join(['%s: %s' % (location.name, location.item.name) for location in self.required_locations])) + + outfile.write('\n\nGossip Stone Hints:\n\n') + outfile.write('\n'.join(self.hints.values())) diff --git a/Main.py b/Main.py index 04b49b04d..4f34a98d4 100644 --- a/Main.py +++ b/Main.py @@ -104,10 +104,11 @@ def main(settings, window=dummy_window()): logger.info('Calculating playthrough.') create_playthrough(worlds) window.update_progress(50) - window.update_status('Calculating Hint Data') - CollectionState.update_required_items(worlds) - buildGossipHints(world) - window.update_progress(55) + if settings.hints != 'none': + window.update_status('Calculating Hint Data') + CollectionState.update_required_items(worlds) + buildGossipHints(world) + window.update_progress(55) logger.info('Patching ROM.') diff --git a/version.py b/version.py index 1c5cd8a08..c8a34ef50 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.17.2 f.LUM' +__version__ = '2.17.3 f.LUM' From 3a410408dee3d0a44427c2c9131704438f0e88d4 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 9 Sep 2018 13:43:48 -0400 Subject: [PATCH 455/755] Made Open Forest option tooltip more clear (Issue #101) --- Settings.py | 7 ++++--- version.py | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Settings.py b/Settings.py index acc5c2f04..07ca0000a 100644 --- a/Settings.py +++ b/Settings.py @@ -271,9 +271,10 @@ def parse_custom_navi_color(s): 'widget': 'Checkbutton', 'default': 'checked', 'tooltip':'''\ - The Deku Tree can be beaten without leaving the Forest - areas. This means that the Kokiri Sword and Slingshot - are always available somewhere in the forest. + Can leave the Kokiri Forest without beating the + Deku Tree. When this option is off, the Kokiri + Sword and Slingshot are always available somewhere + in the forest. ''' }), Setting_Info('open_kakariko', bool, 1, True, diff --git a/version.py b/version.py index c8a34ef50..fecb696e2 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.17.3 f.LUM' +__version__ = '2.17.4 f.LUM' From 607393b661b4e80ae199deb749c3888d87cfa066 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 9 Sep 2018 14:45:45 -0400 Subject: [PATCH 456/755] Reduced the length of messages for co-op (Issue #98) This is kind of a patch, since this will continue to be a problem as more stuff is added. There's a huge amount of unused text from cutscenes that can be removed --- Main.py | 2 +- Messages.py | 53 ++++++++++++++++++++++++++++++++++++++--------------- Patches.py | 25 ++++++++++++++----------- version.py | 2 +- 4 files changed, 54 insertions(+), 28 deletions(-) diff --git a/Main.py b/Main.py index 4f34a98d4..7488f614e 100644 --- a/Main.py +++ b/Main.py @@ -107,7 +107,7 @@ def main(settings, window=dummy_window()): if settings.hints != 'none': window.update_status('Calculating Hint Data') CollectionState.update_required_items(worlds) - buildGossipHints(world) + buildGossipHints(worlds[settings.player_num - 1]) window.update_progress(55) logger.info('Patching ROM.') diff --git a/Messages.py b/Messages.py index 6fcafc89a..07665fa80 100644 --- a/Messages.py +++ b/Messages.py @@ -634,17 +634,47 @@ def is_in_item_range(id): if is_in_item_range(shop.purchase_message): shop.purchase_message |= 0x8000 +def make_player_message(text): + player_text_U = '\x05\x42Player \x18\x05\x40' + player_text_L = '\x05\x42player \x18\x05\x40' + pronoun_mapping = { + 'You have ': player_text_U + ' ', + 'You\'ve ': player_text_U + ' ', + 'Your ': player_text_U + '\'s ', + 'You ': player_text_U + ' ', + + 'you have ': player_text_L + ' ', + 'you\'ve ': player_text_L + ' ', + 'your ': player_text_L + '\'s ', + 'you ': player_text_L + ' ', + } + + verb_mapping = { + 'obtained ': 'got ', + 'received ': 'got ', + 'learned ': 'got ', + 'borrowed ': 'got ', + 'found ': 'got ', + } + + new_text = text + for find_text, replace_text in pronoun_mapping.items(): + if find_text in text: + new_text = new_text.replace(find_text, replace_text, 1) + break + for find_text, replace_text in verb_mapping.items(): + new_text = new_text.replace(find_text, replace_text) + return new_text + + + # add the keysanity messages # make sure to call this AFTER move_shop_item_messages() def add_keysanity_messages(messages, world): for id, text in KEYSANITY_MESSAGES.items(): if world.world_count > 1: - index = 0 - while ord(text[index]) in CONTROL_CODES: - index = index + CONTROL_CODES[ord(text[index])][1] + 1 - new_text = text[:index] + "\x08\x05\x42Player \x18:\x05\x40\x01" + text[index:] - update_message_by_id(messages, id, new_text, 0x23) + update_message_by_id(messages, id, make_player_message(text), 0x23) else: update_message_by_id(messages, id, text, 0x23) @@ -653,11 +683,7 @@ def add_keysanity_messages(messages, world): def add_song_messages(messages, world): for id, text in SONG_MESSAGES.items(): if world.world_count > 1: - index = 0 - while ord(text[index]) in CONTROL_CODES: - index = index + CONTROL_CODES[ord(text[index])][1] + 1 - new_text = text[:index] + "\x08\x05\x42Player \x18:\x05\x40\x01" + text[index:] - update_message_by_id(messages, id, new_text, 0x23) + update_message_by_id(messages, id, make_player_message(text), 0x23) else: update_message_by_id(messages, id, text, 0x23) @@ -665,11 +691,8 @@ def add_song_messages(messages, world): def update_item_messages(messages, world): for id, text in ITEM_MESSAGES.items(): if world.world_count > 1: - index = 0 - while ord(text[index]) in CONTROL_CODES: - index = index + CONTROL_CODES[ord(text[index])][1] + 1 - new_text = text[:index] + "\x08\x05\x42Player \x18:\x05\x40\x01" + text[index:] - update_message_by_id(messages, id, new_text) + update_message_by_id(messages, id, make_player_message(text), 0x23) + else: update_message_by_id(messages, id, text) diff --git a/Patches.py b/Patches.py index 93e703454..35846b81a 100644 --- a/Patches.py +++ b/Patches.py @@ -1243,7 +1243,7 @@ def write_save_table(rom): 0xA44F0EF0) # sh t7, 0xef0(v0) else: # kokiri shop - shop_objs = place_shop_items(rom, shop_items, messages, + shop_objs = place_shop_items(rom, world, shop_items, messages, world.get_region('Kokiri Shop').locations, True) shop_objs |= {0x00FC, 0x00B2, 0x0101, 0x0102, 0x00FD, 0x00C5} # Shop objects rom.write_byte(0x2587029, len(shop_objs)) @@ -1251,7 +1251,7 @@ def write_save_table(rom): rom.write_int16s(0x2596600, list(shop_objs)) # kakariko bazaar - shop_objs = place_shop_items(rom, shop_items, messages, + shop_objs = place_shop_items(rom, world, shop_items, messages, world.get_region('Kakariko Bazaar').locations) shop_objs |= {0x005B, 0x00B2, 0x00C5, 0x0107, 0x00C9, 0x016B} # Shop objects rom.write_byte(0x28E4029, len(shop_objs)) @@ -1259,7 +1259,7 @@ def write_save_table(rom): rom.write_int16s(0x28EBA40, list(shop_objs)) # castle town bazaar - shop_objs = place_shop_items(rom, shop_items, messages, + shop_objs = place_shop_items(rom, world, shop_items, messages, world.get_region('Castle Town Bazaar').locations) shop_objs |= {0x005B, 0x00B2, 0x00C5, 0x0107, 0x00C9, 0x016B} # Shop objects rom.write_byte(0x3489029, len(shop_objs)) @@ -1267,7 +1267,7 @@ def write_save_table(rom): rom.write_int16s(0x3490A40, list(shop_objs)) # goron shop - shop_objs = place_shop_items(rom, shop_items, messages, + shop_objs = place_shop_items(rom, world, shop_items, messages, world.get_region('Goron Shop').locations) shop_objs |= {0x00C9, 0x00B2, 0x0103, 0x00AF} # Shop objects rom.write_byte(0x2D33029, len(shop_objs)) @@ -1275,7 +1275,7 @@ def write_save_table(rom): rom.write_int16s(0x2D37340, list(shop_objs)) # zora shop - shop_objs = place_shop_items(rom, shop_items, messages, + shop_objs = place_shop_items(rom, world, shop_items, messages, world.get_region('Zora Shop').locations) shop_objs |= {0x005B, 0x00B2, 0x0104, 0x00FE} # Shop objects rom.write_byte(0x2D5B029, len(shop_objs)) @@ -1283,7 +1283,7 @@ def write_save_table(rom): rom.write_int16s(0x2D5FB40, list(shop_objs)) # kakariko potion shop - shop_objs = place_shop_items(rom, shop_items, messages, + shop_objs = place_shop_items(rom, world, shop_items, messages, world.get_region('Kakariko Potion Shop Front').locations) shop_objs |= {0x0159, 0x00B2, 0x0175, 0x0122} # Shop objects rom.write_byte(0x2D83029, len(shop_objs)) @@ -1291,7 +1291,7 @@ def write_save_table(rom): rom.write_int16s(0x2D8D500, list(shop_objs)) # market potion shop - shop_objs = place_shop_items(rom, shop_items, messages, + shop_objs = place_shop_items(rom, world, shop_items, messages, world.get_region('Castle Town Potion Shop').locations) shop_objs |= {0x0159, 0x00B2, 0x0175, 0x00C5, 0x010C, 0x016B} # Shop objects rom.write_byte(0x2DB0029, len(shop_objs)) @@ -1299,7 +1299,7 @@ def write_save_table(rom): rom.write_int16s(0x2DB4E40, list(shop_objs)) # bombchu shop - shop_objs = place_shop_items(rom, shop_items, messages, + shop_objs = place_shop_items(rom, world, shop_items, messages, world.get_region('Castle Town Bombchu Shop').locations) shop_objs |= {0x0165, 0x00B2} # Shop objects rom.write_byte(0x2DD8029, len(shop_objs)) @@ -1839,7 +1839,7 @@ def locked_door(rom, actor_id, actor, scene): return get_actor_list(rom, locked_door) -def place_shop_items(rom, shop_items, messages, locations, init_shop_id=False): +def place_shop_items(rom, world, shop_items, messages, locations, init_shop_id=False): if init_shop_id: place_shop_items.shop_id = 0x32 @@ -1867,9 +1867,12 @@ def place_shop_items(rom, shop_items, messages, locations, init_shop_id=False): message_id = (shop_id - 0x32) * 2 shop_item.description_message = 0x8100 + message_id shop_item.purchase_message = 0x8100 + message_id + 1 - update_message_by_id(messages, shop_item.description_message, '\x08\x05\x41%s %d Rupees\x01\x05\x40Special deal! ONE LEFT!\x01Get it while it lasts!\x09\x0A\x02' % (location.item.name, location.price), 0x03) + if world.world_count > 1: + update_message_by_id(messages, shop_item.description_message, '\x08\x05\x41%s %d Rupees\x01\x05\x40Special deal! ONE LEFT!\x09\x0A\x02' % (location.item.name, location.price), 0x03) + else: + update_message_by_id(messages, shop_item.description_message, '\x08\x05\x41%s %d Rupees\x01\x05\x40Special deal! ONE LEFT!\x01Get it while it lasts!\x09\x0A\x02' % (location.item.name, location.price), 0x03) update_message_by_id(messages, shop_item.purchase_message, '\x08%s %d Rupees\x09\x01\x01\x1B\x05\x42Buy\x01Don\'t buy\x05\x40\x02' % (location.item.name, location.price), 0x03) - + place_shop_items.shop_id += 1 return shop_objs diff --git a/version.py b/version.py index fecb696e2..7db1f83b5 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.17.4 f.LUM' +__version__ = '2.17.5 f.LUM' From 1257ef57ec84c8cc92b81cbcfa2c311b31cecf7d Mon Sep 17 00:00:00 2001 From: Zeimyth Date: Sun, 9 Sep 2018 19:31:17 -0600 Subject: [PATCH 457/755] Introduce helper functions to facilitate line wrapping --- TextBox.py | 164 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 164 insertions(+) create mode 100644 TextBox.py diff --git a/TextBox.py b/TextBox.py new file mode 100644 index 000000000..3d532730a --- /dev/null +++ b/TextBox.py @@ -0,0 +1,164 @@ +# Least common multiple of all possible character widths. A line wrap must occur when the combined widths of all of the +# characters on a line reach this value. +LINE_WIDTH = 1801800 + +# Attempting to display more lines in a single text box will cause additional lines to bleed past the bottom of the box. +LINES_PER_BOX = 4 + +# Attempting to display more characters in a single text box will cause buffer overflows. First, visual artifacts will +# appear in lower areas of the text box. Eventually, the text box will become uncloseable. +MAX_CHARACTERS_PER_BOX = 200 + +LINE_BREAK = '&' +BOX_BREAK = '^' + + +def lineWrap(text): + boxes = text.split(BOX_BREAK) + boxesWithWrappedLines = [] + + for box in boxes: + forcedLines = box.split(LINE_BREAK) + lines = [line.strip() for forcedLine in forcedLines for line in _wrapLines(forcedLine)] + wrapped = LINE_BREAK.join(lines) + + if len(lines) > LINES_PER_BOX: + print('Wrapped text exceeds maximum lines per text box. Original text:\n' + box) + + # Subtracting line count so that line breaks aren't counted as characters + if len(wrapped) - (len(lines) - 1) > MAX_CHARACTERS_PER_BOX: + print('Text length exceeds maximum characters per text box. Original text:\n' + box) + + boxesWithWrappedLines.append(wrapped) + + return BOX_BREAK.join(boxesWithWrappedLines) + + +def _wrapLines(text): + lines = [] + currentLine = [] + currentWidth = 0 + + for word in text.split(' '): + currentLinePlusWord = currentLine.copy() + currentLinePlusWord.append(word) + currentLinePlusWordWidth = _calculateWidth(currentLinePlusWord) + + if (currentLinePlusWordWidth <= LINE_WIDTH): + currentLine = currentLinePlusWord + currentWidth = currentLinePlusWordWidth + else: + lines.append(' '.join(currentLine)) + currentLine = [word] + currentWidth = _calculateWidth(currentLine) + + lines.append(' '.join(currentLine)) + + return lines + + +def _calculateWidth(words): + wordsWidth = sum([_getCharacterWidth(character) for word in words for character in word]) + spacesWidth = _getCharacterWidth(' ') * (len(words) - 1) + + return wordsWidth + spacesWidth + + +def _getCharacterWidth(character): + try: + return characterTable[character] + except KeyError: + # Control character for color settings; does not affect the width + if character == '#': + return 0 + # Control character for displaying the player's name; assume greater than average width + elif character == '@': + return characterTable['M'] * 8 + # A sane default with the most common character width + else : + return characterTable[' '] + + +# Tediously measured by filling a full line of a gossip stone's text box with one character until it is reasonably full +# (with a right margin) and counting how many characters fit. OoT does not appear to use any kerning, but, if it does, +# it will only make the characters more space-efficient, so this is an underestimate of the number of letters per line, +# at worst. This ensures that we will never bleed text out of the text box while line wrapping. +# Larger numbers in the denominator mean more of that character fits on a line; conversely, larger values in this table +# mean the character is wider and can't fit as many on one line. +characterTable = { + 'a': 51480, # LINE_WIDTH / 35 + 'b': 51480, # LINE_WIDTH / 35 + 'c': 51480, # LINE_WIDTH / 35 + 'd': 51480, # LINE_WIDTH / 35 + 'e': 51480, # LINE_WIDTH / 35 + 'f': 34650, # LINE_WIDTH / 52 + 'g': 51480, # LINE_WIDTH / 35 + 'h': 51480, # LINE_WIDTH / 35 + 'i': 25740, # LINE_WIDTH / 70 + 'j': 34650, # LINE_WIDTH / 52 + 'k': 51480, # LINE_WIDTH / 35 + 'l': 25740, # LINE_WIDTH / 70 + 'm': 81900, # LINE_WIDTH / 22 + 'n': 51480, # LINE_WIDTH / 35 + 'o': 51480, # LINE_WIDTH / 35 + 'p': 51480, # LINE_WIDTH / 35 + 'q': 51480, # LINE_WIDTH / 35 + 'r': 42900, # LINE_WIDTH / 42 + 's': 51480, # LINE_WIDTH / 35 + 't': 42900, # LINE_WIDTH / 42 + 'u': 51480, # LINE_WIDTH / 35 + 'v': 51480, # LINE_WIDTH / 35 + 'w': 81900, # LINE_WIDTH / 22 + 'x': 51480, # LINE_WIDTH / 35 + 'y': 51480, # LINE_WIDTH / 35 + 'z': 51480, # LINE_WIDTH / 35 + 'A': 81900, # LINE_WIDTH / 22 + 'B': 51480, # LINE_WIDTH / 35 + 'C': 72072, # LINE_WIDTH / 25 + 'D': 72072, # LINE_WIDTH / 25 + 'E': 51480, # LINE_WIDTH / 35 + 'F': 51480, # LINE_WIDTH / 35 + 'G': 81900, # LINE_WIDTH / 22 + 'H': 60060, # LINE_WIDTH / 30 + 'I': 25740, # LINE_WIDTH / 70 + 'J': 51480, # LINE_WIDTH / 35 + 'K': 60060, # LINE_WIDTH / 30 + 'L': 51480, # LINE_WIDTH / 35 + 'M': 81900, # LINE_WIDTH / 22 + 'N': 72072, # LINE_WIDTH / 25 + 'O': 81900, # LINE_WIDTH / 22 + 'P': 51480, # LINE_WIDTH / 35 + 'Q': 81900, # LINE_WIDTH / 22 + 'R': 60060, # LINE_WIDTH / 30 + 'S': 60060, # LINE_WIDTH / 30 + 'T': 51480, # LINE_WIDTH / 35 + 'U': 60060, # LINE_WIDTH / 30 + 'V': 72072, # LINE_WIDTH / 25 + 'W': 100100, # LINE_WIDTH / 18 + 'X': 72072, # LINE_WIDTH / 25 + 'Y': 60060, # LINE_WIDTH / 30 + 'Z': 60060, # LINE_WIDTH / 30 + ' ': 51480, # LINE_WIDTH / 35 + '1': 25740, # LINE_WIDTH / 70 + '2': 51480, # LINE_WIDTH / 35 + '3': 51480, # LINE_WIDTH / 35 + '4': 60060, # LINE_WIDTH / 30 + '5': 51480, # LINE_WIDTH / 35 + '6': 51480, # LINE_WIDTH / 35 + '7': 51480, # LINE_WIDTH / 35 + '8': 51480, # LINE_WIDTH / 35 + '9': 51480, # LINE_WIDTH / 35 + '0': 60060, # LINE_WIDTH / 30 + '!': 51480, # LINE_WIDTH / 35 + '?': 72072, # LINE_WIDTH / 25 + '\'': 17325, # LINE_WIDTH / 104 + '"': 34650, # LINE_WIDTH / 52 + '.': 25740, # LINE_WIDTH / 70 + ',': 25740, # LINE_WIDTH / 70 + '/': 51480, # LINE_WIDTH / 35 + '-': 34650, # LINE_WIDTH / 52 + '_': 51480, # LINE_WIDTH / 35 + '(': 42900, # LINE_WIDTH / 42 + ')': 42900, # LINE_WIDTH / 42 + '$': 51480 # LINE_WIDTH / 35 +} From 9363cf74838301c52a63c355a635f9f5785282ed Mon Sep 17 00:00:00 2001 From: Zeimyth Date: Sun, 9 Sep 2018 20:37:17 -0600 Subject: [PATCH 458/755] Implement unit tests for line wrapping --- TextBox.py | 101 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) diff --git a/TextBox.py b/TextBox.py index 3d532730a..83defd865 100644 --- a/TextBox.py +++ b/TextBox.py @@ -162,3 +162,104 @@ def _getCharacterWidth(character): ')': 42900, # LINE_WIDTH / 42 '$': 51480 # LINE_WIDTH / 35 } + +# To run tests, enter the following into a python3 REPL: +# >>> from TextBox import test_lineWrapTests +# >>> test_lineWrapTests() +def test_lineWrapTests(): + test_wrapSimpleLine() + test_honorForcedLineWraps() + test_honorBoxBreaks() + test_honorControlCharacters() + test_honorPlayerName() + test_maintainMultipleForcedBreaks() + test_trimWhitespace() + test_supportLongWords() + + +def test_wrapSimpleLine(): + words = 'Hello World! Hello World! Hello World!' + expected = 'Hello World! Hello World! Hello&World!' + result = lineWrap(words) + + if result != expected: + print('"Wrap Simple Line" test failed: Got ' + result + ', wanted ' + expected) + else: + print('"Wrap Simple Line" test passed!') + + +def test_honorForcedLineWraps(): + words = 'Hello World! Hello World!&Hello World! Hello World! Hello World!' + expected = 'Hello World! Hello World!&Hello World! Hello World! Hello&World!' + result = lineWrap(words) + + if result != expected: + print('"Honor Forced Line Wraps" test failed: Got ' + result + ', wanted ' + expected) + else: + print('"Honor Forced Line Wraps" test passed!') + + +def test_honorBoxBreaks(): + words = 'Hello World! Hello World!^Hello World! Hello World! Hello World!' + expected = 'Hello World! Hello World!^Hello World! Hello World! Hello&World!' + result = lineWrap(words) + + if result != expected: + print('"Honor Box Breaks" test failed: Got ' + result + ', wanted ' + expected) + else: + print('"Honor Box Breaks" test passed!') + + +def test_honorControlCharacters(): + words = 'Hello World! #Hello# World! Hello World!' + expected = 'Hello World! #Hello# World! Hello&World!' + result = lineWrap(words) + + if result != expected: + print('"Honor Control Characters" test failed: Got ' + result + ', wanted ' + expected) + else: + print('"Honor Control Characters" test passed!') + + +def test_honorPlayerName(): + words = 'Hello @! Hello World! Hello World!' + expected = 'Hello @! Hello World!&Hello World!' + result = lineWrap(words) + + if result != expected: + print('"Honor Player Name" test failed: Got ' + result + ', wanted ' + expected) + else: + print('"Honor Player Name" test passed!') + + +def test_maintainMultipleForcedBreaks(): + words = 'Hello World!&&&Hello World!' + expected = 'Hello World!&&&Hello World!' + result = lineWrap(words) + + if result != expected: + print('"Maintain Multiple Forced Breaks" test failed: Got ' + result + ', wanted ' + expected) + else: + print('"Maintain Multiple Forced Breaks" test passed!') + + +def test_trimWhitespace(): + words = 'Hello World! & Hello World!' + expected = 'Hello World!&Hello World!' + result = lineWrap(words) + + if result != expected: + print('"Trim Whitespace" test failed: Got ' + result + ', wanted ' + expected) + else: + print('"Trim Whitespace" test passed!') + + +def test_supportLongWords(): + words = 'Hello World! WWWWWWWWWWWWWWWWWWWW Hello World!' + expected = 'Hello World!&WWWWWWWWWWWWWWWWWWWW&Hello World!' + result = lineWrap(words) + + if result != expected: + print('"Support Long Words" test failed: Got ' + result + ', wanted ' + expected) + else: + print('"Support Long Words" test passed!') From edc8f60b2f8f49c1ff14d50ed00d7f90f115a9bd Mon Sep 17 00:00:00 2001 From: Zeimyth Date: Sun, 9 Sep 2018 20:06:58 -0600 Subject: [PATCH 459/755] Intelligently line wrap all Gossip Stone hints --- HintList.py | 154 ++++++++++++++++++++++++++-------------------------- Hints.py | 33 ++--------- 2 files changed, 82 insertions(+), 105 deletions(-) diff --git a/HintList.py b/HintList.py index de596355f..a507f7d43 100644 --- a/HintList.py +++ b/HintList.py @@ -145,96 +145,96 @@ def getHintGroup(group, world): 'Deku Nuts (5)': (["some nuts", "some flashbangs", "Sheik's ammo"], 'item'), 'Deku Nuts (10)': (["lots-o-nuts", "lots of flashbangs", "Sheik's ammo"], 'item'), 'Gold Skulltulla Token': (["proof of destruction", "an arachnid chip", "spider remains"], 'item'), - #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box - '10 Big Poes': (["They say that Big Poes leads&to", "They say that ghost hunters&will be rewarded with&"], 'alwaysLocation'), - 'Deku Theater Mask of Truth': ("They say that the Mask of Truth&yields", 'alwaysLocation'), - '30 Gold Skulltulla Reward': ("They say that slaying&30 Gold Skulltulas reveals&", 'alwaysLocation'), - '40 Gold Skulltulla Reward': ("They say that slaying&40 Gold Skulltulas reveals&", 'alwaysLocation'), - '50 Gold Skulltulla Reward': ("They say that slaying&50 Gold Skulltulas reveals&", 'alwaysLocation'), - 'Song from Ocarina of Time': ("They say the Ocarina of Time&teaches", 'alwaysLocation'), - 'Biggoron': ("They say that Biggoron&crafts", 'alwaysLocation'), - 'Child Fishing': ("They say that fishing in youth&bestows", 'location'), - 'Adult Fishing': ("They say that fishing in maturity&bestows", 'location'), - '20 Gold Skulltulla Reward': ("They say that slaying&20 Gold Skulltulas reveals&", 'location'), - 'Treasure Chest Game': (["They say that gambling&grants", "They say there is a 1/32 chance&to win"], 'location'), - 'Darunias Joy': ("They say that Darunia's dance leads&to", 'location'), - 'Frog Ocarina Game': (["They say The Frogs of Zora River&hold", "They say that the musical&hibians have found&"], 'location'), - 'Horseback Archery 1500 Points': ("They say that mastery of&horseback archery grants&", 'location'), - 'Lake Hylia Sun': (["They say staring into the sun&grants", "They say that acts of solar&aggression are punished&with"], 'location'), - 'Heart Piece Grave Chest': ("They say there's a hidden location&where the Sun's Song&spawns", 'location'), - 'Goron City Leftmost Maze Chest': ("They say in Goron City the hammer&unlocks", 'location'), - 'Chest Above King Dodongo': ("They say that the chest above the&Infernal Dinosaur contains&", 'location'), - 'Forest Temple Floormaster Chest': ("Deep in the forest, shadows&guard a chest containing&", 'location'), - 'Fire Temple Scarecrow Chest': ("They say high in the Fire&Temple, Pierre hid&", 'location'), - 'Fire Temple Megaton Hammer Chest': (["They say that the highest&chest in the crater&holds"], 'location'), - 'Water Temple River Chest': ("They say deep under the lake,&beyond the currents,&hides", 'location'), - 'Water Temple Boss Key Chest': ("Deep under the lake,&the gilded chest&contains", 'location'), - 'Gerudo Training Grounds Underwater Silver Rupee Chest': ("They say those who seek&sunken silver rupees will&find", 'location'), - 'Gerudo Training Grounds Maze Path Final Chest': ("They say that past&all the locked doors is&", 'location'), - 'Bottom of the Well Defeat Boss': (["They say that Dead Hand&holds", "They say that draining the&water reveals a monster&guarding"], 'location'), - 'Silver Gauntlets Chest': ("They say that upon&the Colossus's southern edge&is", 'location'), - 'Mirror Shield Chest': ("They say that upon&the Colossus's northern edge&is", 'location'), - 'Shadow Temple Hidden Floormaster Chest': (["They say in a maze&guarded by shadows&hides", "They say that after&a free boat ride&comes"], 'location'), - 'Haunted Wasteland Structure Chest': (["They say that deep in the Wasteland&is", "They say that beneath the sands&lies"], 'location'), - 'Composer Grave Chest': ("They say that the Composer Brothers&hid", 'location'), - 'Song from Composer Grave': ("They say that the Composer Brothers&wrote", 'location'), - 'Song at Windmill': (["They say that Guru-guru is driven&mad by", "They say the windmill echoes&with"], 'location'), - 'Sheik Forest Song': ("They say that deep&in the forest Sheik&teaches", 'location'), - 'Sheik at Temple': ("They say that Sheik&waits at a monument to time to&teach", 'location'), - 'Sheik in Crater': ("They say that the crater's melody&is", 'location'), - 'Sheik in Ice Cavern': ("They say that the&frozen cavern echoes&with", 'location'), - 'Sheik in Kakariko': ("They say that a&ravaged village mourns&with", 'location'), - 'Sheik at Colossus': ("They say that a hero ventures&beyond the Wasteland to&learn", 'location'), - 'Zoras Fountain Bottom Freestanding PoH': ("They say under the icy waters&lies", 'location'), - 'Colossus Freestanding PoH': ("They say that riding a&beanstalk in the desert leads&to", 'location'), - 'DM Crater Volcano Freestanding PoH': ("They say that riding a&beanstalk in the crater leads&to", 'location'), - 'Goron City Pot Freestanding PoH': ("They say that spinning&Goron pottery contains&", 'location'), - #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box + + '10 Big Poes': (["They say that Big Poes leads to", "They say that ghost hunters will be rewarded with"], 'alwaysLocation'), + 'Deku Theater Mask of Truth': ("They say that the Mask of Truth yields", 'alwaysLocation'), + '30 Gold Skulltulla Reward': ("They say that slaying 30 Gold Skulltulas reveals", 'alwaysLocation'), + '40 Gold Skulltulla Reward': ("They say that slaying 40 Gold Skulltulas reveals", 'alwaysLocation'), + '50 Gold Skulltulla Reward': ("They say that slaying 50 Gold Skulltulas reveals", 'alwaysLocation'), + 'Song from Ocarina of Time': ("They say the Ocarina of Time teaches", 'alwaysLocation'), + 'Biggoron': ("They say that Biggoron crafts", 'alwaysLocation'), + 'Child Fishing': ("They say that fishing in youth bestows", 'location'), + 'Adult Fishing': ("They say that fishing in maturity bestows", 'location'), + '20 Gold Skulltulla Reward': ("They say that slaying 20 Gold Skulltulas reveals", 'location'), + 'Treasure Chest Game': (["They say that gambling grants", "They say there is a 1/32 chance to win"], 'location'), + 'Darunias Joy': ("They say that Darunia's dance leads to", 'location'), + 'Frog Ocarina Game': (["They say The Frogs of Zora River hold", "They say that the musical amphibians have found"], 'location'), + 'Horseback Archery 1500 Points': ("They say that mastery of horseback archery grants", 'location'), + 'Lake Hylia Sun': (["They say staring into the sun grants", "They say that acts of solar aggression are punished with"], 'location'), + 'Heart Piece Grave Chest': ("They say there's a hidden location where the Sun's Song spawns", 'location'), + 'Goron City Leftmost Maze Chest': ("They say in Goron City the hammer unlocks", 'location'), + 'Chest Above King Dodongo': ("They say that the chest above the Infernal Dinosaur contains", 'location'), + 'Forest Temple Floormaster Chest': ("Deep in the forest, shadows guard a chest containing", 'location'), + 'Fire Temple Scarecrow Chest': ("They say high in the Fire Temple, Pierre hid", 'location'), + 'Fire Temple Megaton Hammer Chest': (["They say that the highest chest in the crater holds"], 'location'), + 'Water Temple River Chest': ("They say deep under the lake, beyond the currents, hides", 'location'), + 'Water Temple Boss Key Chest': ("Deep under the lake, the gilded chest contains", 'location'), + 'Gerudo Training Grounds Underwater Silver Rupee Chest': ("They say those who seek sunken silver rupees will find", 'location'), + 'Gerudo Training Grounds Maze Path Final Chest': ("They say that past all the locked doors is", 'location'), + 'Bottom of the Well Defeat Boss': (["They say that Dead Hand holds", "They say that draining the water reveals a monster guarding"], 'location'), + 'Silver Gauntlets Chest': ("They say that upon the Colossus's southern edge is", 'location'), + 'Mirror Shield Chest': ("They say that upon the Colossus's northern edge is", 'location'), + 'Shadow Temple Hidden Floormaster Chest': (["They say in a maze guarded by shadows hides", "They say that after a free boat ride comes"], 'location'), + 'Haunted Wasteland Structure Chest': (["They say that deep in the Wasteland is", "They say that beneath the sands lies"], 'location'), + 'Composer Grave Chest': ("They say that the Composer Brothers hid", 'location'), + 'Song from Composer Grave': ("They say that the Composer Brothers wrote", 'location'), + 'Song at Windmill': (["They say that Guru-guru is driven mad by", "They say the windmill echoes with"], 'location'), + 'Sheik Forest Song': ("They say that deep in the forest Sheik teaches", 'location'), + 'Sheik at Temple': ("They say that Sheik waits at a monument to time to teach", 'location'), + 'Sheik in Crater': ("They say that the crater's melody is", 'location'), + 'Sheik in Ice Cavern': ("They say that the frozen cavern echoes with", 'location'), + 'Sheik in Kakariko': ("They say that a ravaged village mourns with", 'location'), + 'Sheik at Colossus': ("They say that a hero ventures beyond the Wasteland to learn", 'location'), + 'Zoras Fountain Bottom Freestanding PoH': ("They say under the icy waters lies", 'location'), + 'Colossus Freestanding PoH': ("They say that riding a beanstalk in the desert leads to", 'location'), + 'DM Crater Volcano Freestanding PoH': ("They say that riding a beanstalk in the crater leads to", 'location'), + 'Goron City Pot Freestanding PoH': ("They say that spinning Goron pottery contains", 'location'), + '1001': ("Ganondorf 2020!", 'junkHint'), - '1002': ("They say that monarchy is a&terrible system of governance.", 'junkHint'), - '1003': ("They say that Zelda is a poor&leader.", 'junkHint'), - '1004': ("These hints can be quite useful.&This is an exception.", 'junkHint'), - '1006': ("They say that all the Zora drowned&in Wind Waker.", 'junkHint'), - '1007': ("They say that PJ64 is a terrible&emulator.", 'junkHint'), + '1002': ("They say that monarchy is a terrible system of governance.", 'junkHint'), + '1003': ("They say that Zelda is a poor leader.", 'junkHint'), + '1004': ("These hints can be quite useful. This is an exception.", 'junkHint'), + '1006': ("They say that all the Zora drowned in Wind Waker.", 'junkHint'), + '1007': ("They say that PJ64 is a terrible emulator.", 'junkHint'), '1008': ("'Member when Ganon was a blue pig?^I 'member.", 'junkHint'), - '1009': ("One who does not have Triforce&can't go in.", 'junkHint'), - '1010': ("Save your future,&end the Happy Mask Salesman.", 'junkHint'), + '1009': ("One who does not have Triforce can't go in.", 'junkHint'), + '1010': ("Save your future, end the Happy Mask Salesman.", 'junkHint'), '1012': ("I'm stoned. Get it?", 'junkHint'), - '1013': ("Hoot! Hoot! Would you like me to&repeat that?", 'junkHint'), - '1014': ("Gorons are stupid.&They eat rocks.", 'junkHint'), - '1015': ("They say that Lon Lon Ranch&prospered under Ingo.", 'junkHint'), - '1016': ("The single rupee is a&unique item.", 'junkHint'), - '1017': ("Without the Lens of Truth, the&Treasure Chest Mini-Game&is a 1 out of 32 chance.^Good luck!", 'junkHint'), + '1013': ("Hoot! Hoot! Would you like me to repeat that?", 'junkHint'), + '1014': ("Gorons are stupid. They eat rocks.", 'junkHint'), + '1015': ("They say that Lon Lon Ranch prospered under Ingo.", 'junkHint'), + '1016': ("The single rupee is a unique item.", 'junkHint'), + '1017': ("Without the Lens of Truth, the Treasure Chest Mini-Game is a 1 out of 32 chance.^Good luck!", 'junkHint'), '1018': ("Use bombs wisely.", 'junkHint'), '1021': ("I found you, faker!", 'junkHint'), - '1022': ("You're comparing&yourself to me?^Ha! You're not even good&enough to be my fake.", 'junkHint'), + '1022': ("You're comparing yourself to me?^Ha! You're not even good enough to be my fake.", 'junkHint'), '1023': ("I'll make you eat those words.", 'junkHint'), '1024': ("What happened to Sheik?", 'junkHint'), '1025': ("L2P @.", 'junkHint'), - '1026': ("I heard @ isn't&very good at Zelda.", 'junkHint'), + '1026': ("I heard @ isn't very good at Zelda.", 'junkHint'), '1027': ("I'm Lonk from Pennsylvania.", 'junkHint'), - '1028': ("I bet you'd like to&have more bombs.", 'junkHint'), - '1029': ("When all else fails,&use Fire.", 'junkHint'), - '1030': ("Here's a hint, @.&Don't be bad.", 'junkHint'), - '1031': ("Game Over.&Return of Ganon.", 'junkHint'), - '1032': ("May the way of the Hero&lead to the Triforce.", 'junkHint'), - '1033': ("Can't find an item?&Scan an Amiibo.", 'junkHint'), - '1034': ("They say this game has&just a few glitches.", 'junkHint'), - '1035': ("BRRING BRRING This is Ulrira.&Wrong number?", 'junkHint'), + '1028': ("I bet you'd like to have more bombs.", 'junkHint'), + '1029': ("When all else fails, use Fire.", 'junkHint'), + '1030': ("Here's a hint, @. Don't be bad.", 'junkHint'), + '1031': ("Game Over. Return of Ganon.", 'junkHint'), + '1032': ("May the way of the Hero lead to the Triforce.", 'junkHint'), + '1033': ("Can't find an item? Scan an Amiibo.", 'junkHint'), + '1034': ("They say this game has just a few glitches.", 'junkHint'), + '1035': ("BRRING BRRING This is Ulrira. Wrong number?", 'junkHint'), '1036': ("Tingle Tingle Kooloo Limpah", 'junkHint'), '1037': ("L is real 2041", 'junkHint'), - '1038': ("They say that Ganondorf will&appear in the next Mario Tennis.", 'junkHint'), - '1039': ("Medigoron sells the earliest&Breath of the Wild demo.", 'junkHint'), - '1040': ("There's a reason why I am special&inquisitor!", 'junkHint'), - '1041': ("You were almost a @&sandwich.", 'junkHint'), + '1038': ("They say that Ganondorf will appear in the next Mario Tennis.", 'junkHint'), + '1039': ("Medigoron sells the earliest Breath of the Wild demo.", 'junkHint'), + '1040': ("There's a reason why I am special inquisitor!", 'junkHint'), + '1041': ("You were almost a @ sandwich.", 'junkHint'), '1042': ("I'm a helpful hint Gossip Stone!^See, I'm helping.", 'junkHint'), - '1043': ("Dear @, please come to the&castle. I've baked a cake for you.&&Yours truly, princess Zelda.", 'junkHint'), - '1044': ("I like shorts! They're comfy and&easy to wear!", 'junkHint'), + '1043': ("Dear @, please come to the castle. I've baked a cake for you.&&Yours truly, princess Zelda.", 'junkHint'), + '1044': ("I like shorts! They're comfy and easy to wear!", 'junkHint'), '1044': ("They say all toasters toast toast.", 'junkHint'), - '1045': ("They say that Okami is&the best Zelda game.", 'junkHint'), - '1046': ("They say that quest guidance&can be found at a&talking rock.", 'junkHint'), - '1047': ("They say that victory can&be found after the&Ganon fight.", 'junkHint'), - '1047': ("They say that the final item&you're looking for can be&found somewhere in Hyrule", 'junkHint'), + '1045': ("They say that Okami is the best Zelda game.", 'junkHint'), + '1046': ("They say that quest guidance can be found at a talking rock.", 'junkHint'), + '1047': ("They say that victory can be found after the Ganon fight.", 'junkHint'), + '1047': ("They say that the final item you're looking for can be found somewhere in Hyrule", 'junkHint'), #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box 'Deku Tree': ("an ancient tree", 'dungeon'), 'Dodongos Cavern': ("an immense cavern", 'dungeon'), diff --git a/Hints.py b/Hints.py index 6d76fa176..4b9d0e696 100644 --- a/Hints.py +++ b/Hints.py @@ -9,39 +9,16 @@ from Utils import local_path from ItemList import eventlocations from Messages import update_message_by_id +from TextBox import lineWrap -# build a formatted string with linebreaks appropriate textboxes def buildHintString(hintString): if len(hintString) < 77: hintString = "They say that " + hintString elif len(hintString) < 82: hintString = "They say " + hintString - elif len(hintString) > 91: - print('Too many characters in hint') - hintString = hintString[:91] hintString = hintString.capitalize() - formatString = "" - splitHintString = hintString.split() - lineLength = 0 - - for word in splitHintString: - # let's assume words are not 35 or more char long - if lineLength + len(word) + 1 <= 35: - # add a space if line is not empty - if lineLength != 0: - lineLength = lineLength + 1 - formatString = formatString + ' ' - - # append word - formatString = formatString + word - lineLength = lineLength + len(word) - else: - # word won'd fit, add to a new line - formatString = formatString + '&' + word - lineLength = len(word) - - return formatString + return hintString def getItemGenericName(item): @@ -56,7 +33,7 @@ def isDungeonItem(item): def add_hint(world, id, text): - world.spoiler.hints[id] = text + world.spoiler.hints[id] = lineWrap(text) def writeGossipStoneHintsHints(world, messages): @@ -111,7 +88,7 @@ def buildGossipHints(world): for locationWorld in world.get_locations(): if hint.name == locationWorld.name: checkedLocations.append(hint.name) - add_hint(world, stoneIDs.pop(0), filterTrailingSpace(getHint(locationWorld.name).text + " ") + \ + add_hint(world, stoneIDs.pop(0), getHint(locationWorld.name).text + " " + \ getHint(getItemGenericName(locationWorld.item)).text + ".") @@ -127,7 +104,7 @@ def buildGossipHints(world): for locationWorld in world.get_locations(): if hint.name == locationWorld.name: checkedLocations.append(locationWorld.name) - add_hint(world, stoneIDs.pop(0), filterTrailingSpace(getHint(locationWorld.name).text + " ") + \ + add_hint(world, stoneIDs.pop(0), getHint(locationWorld.name).text + " " + \ getHint(getItemGenericName(locationWorld.item)).text + ".") # add bad dungeon locations hints From f1a688250e67695f003b3ae15a491ca0678e0958 Mon Sep 17 00:00:00 2001 From: Nick Langille Date: Mon, 10 Sep 2018 01:41:58 -0400 Subject: [PATCH 460/755] Update table.txt for second code file --- table.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/table.txt b/table.txt index 6dbe5e664..2ac97b8b9 100644 --- a/table.txt +++ b/table.txt @@ -1 +1 @@ -00000000001111100000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101010101010101010101010101010101010101010101010101010101010101011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111010000000000000000 \ No newline at end of file +00000000001111100000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101010101010101010101010101010101010101010101010101010101010101011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110010000000000000000 \ No newline at end of file From 611e8f749f0c4083462e38dd7078d7c452cd4e5d Mon Sep 17 00:00:00 2001 From: Nick Langille Date: Mon, 10 Sep 2018 01:44:54 -0400 Subject: [PATCH 461/755] Dungeon info display refactoring + background draw fix --- ASM/src/c/main.c | 209 +- ASM/src/c/main.o | Bin 9000 -> 9380 bytes data/base2current.json | 5555 +++++++++++++++++++++------------------- 3 files changed, 2986 insertions(+), 2778 deletions(-) diff --git a/ASM/src/c/main.c b/ASM/src/c/main.c index 3ef13094d..f99c96abd 100644 --- a/ASM/src/c/main.c +++ b/ASM/src/c/main.c @@ -32,7 +32,7 @@ void displaylist_init(displaylist_t *dl, uint32_t size) { dl->buf_size = size; } -displaylist_t reset_dl = {}; +displaylist_t setup_dl = {}; #define text_bucket_count 3 #define text_bucket_size 32 @@ -45,12 +45,31 @@ typedef struct { dungeon_info_dls_t dungeon_info_dls[2] = {}; int next_dl_index = 0; -#define stones_texture_vaddr 0x01A2C300 -#define medals_texture_vaddr 0x01A04980 -#define quest_items_texture_vaddr 0x0084DE00 extern char FONT_TEXTURE; #define font_texture_raw ((uint8_t *)&FONT_TEXTURE) +typedef struct { + uint8_t *buf; + uint32_t vrom_start; + uint32_t size; +} file_t; + +file_t title_static = { + NULL, 0x01A02000, 0x395C0 +}; + +file_t icon_item_24_static = { + NULL, 0x00846000, 0xB400 +}; + +void (*read_file)(void *mem_addr, uint32_t vrom_addr, uint32_t size) = + (void *)0x80000DF0; + +void file_init(file_t *file) { + file->buf = heap_alloc(file->size); + read_file(file->buf, file->vrom_start, file->size); +} + typedef struct { uint8_t *buf; uint16_t tile_w; @@ -89,17 +108,6 @@ uint32_t sprite_bytes(sprite_t *sprite) { return sprite->tile_count * sprite_bytes_per_tile(sprite); } -typedef void (*load_file_fn_t)(uint32_t mem_addr, uint32_t rom_addr, - uint32_t bytes); -load_file_fn_t load_file = (load_file_fn_t)0x80000DF0; - -void sprite_read(sprite_t *sprite, uint32_t rom_vaddr) { - uint32_t bytes = sprite_bytes(sprite); - sprite->buf = heap_alloc(bytes); - - (*load_file)((uint32_t)(sprite->buf), rom_vaddr, bytes); -} - void sprite_load(displaylist_t *dl, sprite_t *sprite, uint32_t start_tile, uint32_t tile_count) { gDPLoadTextureBlock(dl->p++, @@ -170,15 +178,43 @@ medal_color_t medal_colors[] = { }; // FIXME: Make dynamic -uint8_t rewards[] = { 4, 1, 7, 5, 0, 8, 6, 2, -1, -1, -1, -1, -1, -1 }; +int8_t rewards[] = { 4, 1, 7, 5, 0, 8, 6, 2, -1, -1, -1, -1, -1, -1 }; uint8_t dungeon_is_mq[] = { 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0 }; +void setup_draw(displaylist_t *dl) { + gDPPipeSync(dl->p++); + + gSPLoadGeometryMode(dl->p++, 0); + gDPSetScissor(dl->p++, G_SC_NON_INTERLACE, + 0, 0, Z64_SCREEN_WIDTH, Z64_SCREEN_HEIGHT); + gDPSetAlphaDither(dl->p++, G_AD_DISABLE); + gDPSetColorDither(dl->p++, G_CD_DISABLE); + gDPSetAlphaCompare(dl->p++, G_AC_NONE); + gDPSetDepthSource(dl->p++, G_ZS_PRIM); + gDPSetCombineKey(dl->p++, G_CK_NONE); + gDPSetTextureConvert(dl->p++, G_TC_FILT); + gDPSetTextureDetail(dl->p++, G_TD_CLAMP); + gDPSetTexturePersp(dl->p++, G_TP_NONE); + gDPSetTextureLOD(dl->p++, G_TL_TILE); + gDPSetTextureLUT(dl->p++, G_TT_NONE); + gDPPipelineMode(dl->p++, G_PM_NPRIMITIVE); + + gDPSetCycleType(dl->p++, G_CYC_1CYCLE); + gDPSetRenderMode(dl->p++, G_RM_XLU_SURF, G_RM_XLU_SURF2); + gDPSetTextureFilter(dl->p++, G_TF_BILERP); + + gSPEndDisplayList(dl->p++); +} + void c_init() { heap_init(); - sprite_read(&stones_sprite, stones_texture_vaddr); - sprite_read(&medals_sprite, medals_texture_vaddr); - sprite_read(&quest_items_sprite, quest_items_texture_vaddr); + file_init(&title_static); + file_init(&icon_item_24_static); + + stones_sprite.buf = title_static.buf + 0x2A300; + medals_sprite.buf = title_static.buf + 0x2980; + quest_items_sprite.buf = icon_item_24_static.buf + 0x7E00; int font_bytes = sprite_bytes(&font_sprite); font_sprite.buf = heap_alloc(font_bytes); @@ -195,25 +231,8 @@ void c_init() { } } - displaylist_t *r = &reset_dl; - displaylist_init(r, 32); - - gDPPipeSync(r->p++); - gSPLoadGeometryMode(r->p++, 0); - gDPSetScissor(r->p++, G_SC_NON_INTERLACE, - 0, 0, Z64_SCREEN_WIDTH, Z64_SCREEN_HEIGHT); - gDPSetAlphaDither(r->p++, G_AD_DISABLE); - gDPSetColorDither(r->p++, G_CD_DISABLE); - gDPSetAlphaCompare(r->p++, G_AC_NONE); - gDPSetDepthSource(r->p++, G_ZS_PRIM); - gDPSetCombineKey(r->p++, G_CK_NONE); - gDPSetTextureConvert(r->p++, G_TC_FILT); - gDPSetTextureDetail(r->p++, G_TD_CLAMP); - gDPSetTexturePersp(r->p++, G_TP_NONE); - gDPSetTextureLOD(r->p++, G_TL_TILE); - gDPSetTextureLUT(r->p++, G_TT_NONE); - gDPPipelineMode(r->p++, G_PM_NPRIMITIVE); - gSPEndDisplayList(r->p++); + displaylist_init(&setup_dl, 32); + setup_draw(&setup_dl); } void text_print(displaylist_t text_dls[], @@ -257,41 +276,56 @@ void dungeon_info_draw(z64_disp_buf_t *overlay) { overlay->p -= 2; gSPBranchList(overlay->p++, main->buf); - // Call reset display list - gSPDisplayList(main->p++, reset_dl.buf); + // Call setup display list + gSPDisplayList(main->p++, setup_dl.buf); - // Draw backdrop + // Set up dimensions - gDPSetCycleType(main->p++, G_CYC_FILL); - gDPSetRenderMode(main->p++, G_RM_NOOP, G_RM_NOOP2); - gDPSetFillColor(main->p++, - GPACK_RGBA5551(0,0,0,1)<<16 | GPACK_RGBA5551(0,0,0,1)); - gDPFillRectangle(main->p++, - 24, 65, 293, 195); - gDPPipeSync(main->p++); - gDPSetFillColor(main->p++, - GPACK_RGBA5551(255,255,255,1)<<16 | GPACK_RGBA5551(255,255,255,1)); - gDPFillRectangle(main->p++, - 24 + 18, 65, 24 + 18, 195); - gDPPipeSync(main->p++); - - // Set up to draw textures + int rows = 7; + int cols = 14; + int icon_height = 16; + int icon_width = 16; + int padding = 3; - gDPSetCycleType(main->p++, G_CYC_1CYCLE); - gDPSetRenderMode(main->p++, G_RM_XLU_SURF, G_RM_XLU_SURF2); - gDPSetCombineMode(main->p++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM); + int bg_left = 24; + int bg_top = 65; + int bg_width = (cols * icon_width) + ((cols + 1) * padding); + int bg_height = (rows * icon_height) + ((rows + 1) * padding); - int start_left = 25; - int start_top = 66; + int start_left = bg_left + padding; + int start_top = bg_top + padding; int left = start_left; int top = start_top; - int padding = 3; + int dungeon_count = array_size(dungeons); - // Draw stones + // Draw background + + gDPSetCombineMode(main->p++, G_CC_PRIMITIVE, G_CC_PRIMITIVE); + + gDPSetPrimColor(main->p++, 0, 0, 0x00, 0x00, 0x00, 0xD0); + gSPTextureRectangle(main->p++, + bg_left<<2, bg_top<<2, + (bg_left + bg_width)<<2, (bg_top + bg_height)<<2, + 0, + 0, 0, + 1<<10, 1<<10); + gDPPipeSync(main->p++); + + int line_left = start_left + icon_width + 1; - gDPSetTextureFilter(main->p++, G_TF_BILERP); gDPSetPrimColor(main->p++, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF); + gSPTextureRectangle(main->p++, + line_left<<2, bg_top<<2, + (line_left + 1)<<2, (bg_top + bg_height)<<2, + 0, + 0, 0, + 1<<10, 1<<10); + gDPPipeSync(main->p++); + + // Draw stones + + gDPSetCombineMode(main->p++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM); sprite_load(main, &stones_sprite, 0, stones_sprite.tile_count); for (int i = 0; i < dungeon_count; i++) { @@ -299,9 +333,9 @@ void dungeon_info_draw(z64_disp_buf_t *overlay) { int reward = rewards[d->index]; if (reward < 0 || reward >= 3) continue; - left = start_left + ((16 + padding) * (i + 1)); + left = start_left + ((icon_width + padding) * (i + 1)); sprite_draw(main, &stones_sprite, reward, - left, top, 16, 16); + left, top, icon_width, icon_height); } @@ -320,9 +354,9 @@ void dungeon_info_draw(z64_disp_buf_t *overlay) { medal_color_t *c = &(medal_colors[reward]); gDPSetPrimColor(main->p++, 0, 0, c->r, c->g, c->b, 0xFF); - left = start_left + ((16 + padding) * (i + 1)); + left = start_left + ((icon_width + padding) * (i + 1)); sprite_draw(main, &medals_sprite, reward, - left, top, 16, 16); + left, top, icon_width, icon_height); } gDPPipeSync(main->p++); @@ -330,25 +364,25 @@ void dungeon_info_draw(z64_disp_buf_t *overlay) { // Draw master quest dungeons - top += 16 + padding; - left = start_left + 16 + padding; + top += icon_height + padding; + left = start_left + icon_width + padding; for (int i = 0; i < dungeon_count; i++) { dungeon_entry_t *d = &(dungeons[i]); text_print(di_dls->text, d->label, left, top); - left += 16 + padding; + left += icon_width + padding; } int show_mq = 1; if (show_mq) { - top += 16 + padding; + top += icon_width + padding; left = start_left; text_print(di_dls->text, "MQ", left, top); for (int i = 0; i < dungeon_count; i++) { dungeon_entry_t *d = &(dungeons[i]); int is_mq = dungeon_is_mq[d->index]; - left += 16 + padding; + left += icon_width + padding; char *str = is_mq ? "Y" : "N"; text_print(di_dls->text, str, left + 4, top); } @@ -356,15 +390,15 @@ void dungeon_info_draw(z64_disp_buf_t *overlay) { // Draw key counts - top += 16 + padding; + top += icon_height + padding; left = start_left; sprite_load(main, &quest_items_sprite, 3, 1); sprite_draw(main, &quest_items_sprite, 0, - left, top, 16, 16); + left, top, icon_width, icon_height); for (int i = 0; i < dungeon_count; i++) { - left += 16 + padding; + left += icon_width + padding; dungeon_entry_t *d = &(dungeons[i]); if (!d->has_keys) continue; @@ -379,21 +413,21 @@ void dungeon_info_draw(z64_disp_buf_t *overlay) { // Draw boss keys - top += 16 + padding; + top += icon_height + padding; left = start_left; sprite_load(main, &quest_items_sprite, 0, 1); sprite_draw(main, &quest_items_sprite, 0, - left, top, 16, 16); + left, top, icon_width, icon_height); for (int i = 0; i < dungeon_count; i++) { - left += 16 + padding; + left += icon_width + padding; dungeon_entry_t *d = &(dungeons[i]); if (!d->has_boss_key) continue; if (z64_file.dungeon_items[d->index].boss_key) { sprite_draw(main, &quest_items_sprite, 0, - left, top, 16, 16); + left, top, icon_width, icon_height); } } @@ -403,41 +437,41 @@ void dungeon_info_draw(z64_disp_buf_t *overlay) { if (draw_maps_and_compasses) { // Draw maps - top += 16 + padding; + top += icon_height + padding; left = start_left; sprite_load(main, &quest_items_sprite, 2, 1); sprite_draw(main, &quest_items_sprite, 0, - left, top, 16, 16); + left, top, icon_width, icon_height); for (int i = 0; i < dungeon_count; i++) { - left += 16 + padding; + left += icon_width + padding; dungeon_entry_t *d = &(dungeons[i]); if (!d->has_map) continue; if (z64_file.dungeon_items[d->index].map) { sprite_draw(main, &quest_items_sprite, 0, - left, top, 16, 16); + left, top, icon_width, icon_height); } } // Draw compasses - top += 16 + padding; + top += icon_height + padding; left = start_left; sprite_load(main, &quest_items_sprite, 1, 1); sprite_draw(main, &quest_items_sprite, 0, - left, top, 16, 16); + left, top, icon_width, icon_height); for (int i = 0; i < dungeon_count; i++) { - left += 16 + padding; + left += icon_width + padding; dungeon_entry_t *d = &(dungeons[i]); if (!d->has_compass) continue; if (z64_file.dungeon_items[d->index].compass) { sprite_draw(main, &quest_items_sprite, 0, - left, top, 16, 16); + left, top, icon_width, icon_height); } } } @@ -446,7 +480,6 @@ void dungeon_info_draw(z64_disp_buf_t *overlay) { // Finish gDPPipeSync(main->p++); - gDPSetTextureFilter(main->p++, G_TF_POINT); text_flush(main, di_dls->text); gDPFullSync(main->p++); diff --git a/ASM/src/c/main.o b/ASM/src/c/main.o index 527af7218307b8e86ad537b825f645feae9de03e..524f54e9b589d40f8aca49398219246ebc26743f 100644 GIT binary patch literal 9380 zcmcIpeQ;FQbwBUzYPAyjcv>yX8VG(1Z^eR@<)Lm;HQgC6t3{Gi#g?%g=!~b*O1pqk zA<5bW+ilXk0!f*vj5HoX`NK2a;ln7Y24M#~o(^d>;1IXd>CmbFNK@CAU8c}B?Z|cF zq%HRA@7(*|vPdYlJMA5=?mhRMd%o_u=iGgKeP>UnqAFBw3i&awSctr#Q zH6=YnNtMV*6L}WMKRZZd9;QYuMIOc(M@gf@`ld;&Q$~*nnjF#Q@7oJ=e@^S?UZn8c zMGBH-MX7WwTF0!b^!W?miSE77ME)tzO@VF-bi9A__esb8Ti74OUXAzizR9EH=Y1@9 za){`-kNn50$V&sisG*b|1)m^zXbz9?iNoYQafE!-L17{-FnxrCco$|mR;N;yAb`A+ z9^eM$zNLIYKMmbR=DtV!=U$=Q+{-jDcZr^u`!4O7dx`pBb1(Gnkv7jnY5vtHEnJLF zzeKeZ_*M%3Tu{@~#`KG{D!!3a_)=B%Q&FRt)V2cI)O>axG-35{$xxpwMU(1>q#o9y zbEipT{nU~krQK4u<7coi7>>-HpKt>J@P{oAgZ=jcJ2iAAVt%Ms&+YMXvQYpJCC6cH3KuQl4#sYR1j)y#u! zYfY**Sw9oHCa5Vm4;f+RAKy-DNGFwcX;J8^QI6&50mR;e2}YbtJNPD(>VL3|lri`q+hHM=?8Ff4=+F$~CTy#2x6GT3x2a3$ zl-UfQZ+?Ngk9){#JYiaTaJMCZ0=70z zLQEjOdl8#GPHc{I%uUTuYzlTyeTU2w-$oqQe9=-i(mG19kGcaV&ftu?w207i71^Kr zZRq(MnxS;FPh*yO4nBnMl2tcc9}-pnx<&umZje7^ZTACzt35h*p1eu*9k$y~d)aqp zfPC9i<~7@%dx7eb>U)gS$g|d>uh2S0$PWk1A^4-FhiEt)<@oZHwCLs;3Qrz^-Ff7K zZ@>>-=$-JzKF1f`@Wo!4D{zm)lemLM2WYV;>A6X>9iUBN&t2<(x5E0riFL$5uW`mR zkG)ic`@FN>sljl%l32yRk^2*@k{p9-&;d9&eKQ-6wdL6suRW~=k&HX4~}6zL&UJm@h>6AzbJEcWxZfN z$tDs>x5dC*bLL*;?oEJIQWNPj$X{9n_m*&`WDISwxZZG_9LH#+e^2E5rMxI5YXawe z(jK{@nB9@B8uA2D_`*iy#G397QJ;n|C(w`?RrOTVsJ0iMt-{jTSY&z-quQkMT`!#` zdKU61qeZ6k7|+L|rJbZ0*U*QM5C1~j8cf;mA?K(@mAcHX7LDp!wiC6qk!e&Z!e$k6 zc|8=cZ}Xbi2Rk{3gOADn06vL*1IzX_xqC>j^c(MO0T1Mw^~ft>rr(3WC_2dzw z!(PDoypB4RKs_)~n_7_rV>l-RwMi%I6zbA6>QX66o;6oVZMi}@Gh$w&`{^}vlbOcY z!MUfYgWx#S_y~D*OU>yKzPq@GoHI9}dR@ibZw%QV0e%3oW5$c5u+I3m2KJG0#9p|k zj0|KPVZIUEZ0yAQ;S_Un^>S3^m>We;s~Y4?mXUovi7o zaglH$$D+y5+mvj^`4kY_tKT9cNCO|O zr;&Rys4*GjoyWx;@IrSzl(7Gu;|O}UqPE0PTMX#0L;rilfC;@%LGRq$pW$8dJ-ka^ z!Mo&Tyh|?OUGiP(f&SfygAC#zCEikppz{^PxVr5M>PZA=uVCE7caB1(lzOrhpfj5t+dok30ye~wZGn1+pdBw~2Bv9XV)U5k;D6}Nb-i5IxE`R!uU28x zH$~2ZPr@lW6poPRKJhN*dji|U`vCTMlU~%h9PAnZpUQO=I>V=i3fl&S&Z{bP#{ARi z%x6a-Jw+$Q9YXE|oC`<(|LwTllt`Zx@sU*RZ3(;yg+0it#yO%B=lTAa<=A%bM9Y)3 zLmjZ9xEJx{YQ)jYpkG6pv4JuiAN(5wXVU&0=JdE0vGA^Fy+WSe6xAU9s}Rd!^dRC| zQ?2&s)H!Mw?_t~@#)nM%y_OTytdTOt`~;ufl1~hL`ckAbopH_nkbF49z2V5_E0Bfv zv#bRnn$F>!>D|b6AUe%?-?N_cTr`m;8*gp-20Y7WjI-o3#yJ`)Y0x{29>hF@QRs(v zi}1%19e?cT*qRIiUroE)e73EYoLpcDTbe^_?Ei#+s(}9r-Zty*;sqLYU?ys4)Rx?U zJoOghat-|Xa~YpyKc0qdzlD01CJLtTeqV?QpD|C>Js*|_Iq*w!=yUe_ZJKQZuRx|p z)F;^B>c7O!ud$t=UB_qLQb8wlYoazHD_YiTgVpq_Z=JhNnr2Zi>I$C=a)B4W%^+KO z4!U}-2wg9e3Zpz5Jh36F?HzzFD%BVslg^((-NHQ;RbCBwyyACCIEuJ8&j1HqzQ%cV z^EuLm&eE5Pux~pxgHL@(wcl>rE^TDJKgP!Cm2Es074|uCoLplyeg5a?uDj<^wi9s- z|9j0er4Yv@wln{Sw&}2eYrXPZg>85n9R3vcNqv5~eeYD*C*By9aks=@udHOBI5)gY z!3%X7=k_wr&AC72b9=OWZd%#4L7dxZd2X;R{V8mdx;VD+J#_C>#o4`scS9Awmsu|g zol2>PtO#kpPpWA}@Qx6_qb_)mdpvi3N2%5wUU$>{v#5{q-BGz$zTtTt?}^+L-U#^3 z`UKt;d+@I4!@Hsv?}{G0i@NbH%HUm;^2m45e&j9arKRZ0;$6t!B>q=*Zwl`SrZslBoJ%9;2^E$H}o=mx~3bortv}>=VQ57>`T{VuwGNS zel$%%e zZ1ng2_1_#^`|U6M%h^APKtLu>rjqF(Q~hF=Oi$++EqXhLX|ZZ|mKLiY+fR$W$Hr;V zpWaOuYaRmKs=h9=>bg3~s_*Kcc~+8}pBkv&1L;l+rg-g`$tc@;;=b4Zj8F#b_} z1+MB}VENCYi-w=r+&DW2(G7?Gk1^*nOgZpH%%4WjIPjlh z&W-u8eXpTkMvpo8A7g$49UlvY{F@lSUv>At54Y|C{+5GB1b9=Rc~im)eCS&b_=E#P zjF3@>2~1Xyk?B=*7jDCR23>RTDa=n*z#JmSD&Q>UY>!KS0CUl#Ka}5bzya`s-;_TD zJb=#f7>2*9;S;6D(GULe^ZkF-fxm-~NSDwP4$Qvc=J;RvOUx7KI~;xg7IPNe;J|;6 zxsD!i;9Hn;bMYSl#cPf{6+V&Q9WcUosvo1<80MIP-lEk~yqJHwNby{@n5Fn&p+NBi zx%}Y4eevwz@UOH{d}54I@j`K8dptq$f+Q>m%8C5G;nBTg6#vpgy^ryRy(8Iu;4q$> zp!m?(fdlzbu*Q9hXN$#&;lYE&e1Q&RhezW>v_GF6?;jo=F3Q;`Ythl)y>myeT*!`$ zj15t4xG+AFeP(31P?W@bhez^qHj&Tf`Wd9c_{4BA-#_>a*!Pd;C;E#^S6z~kv24zr z=O(gGQ6XPEINmR&Ly~QAxCjY_VzxLuM8iX4qy6B0pua8Qt`&-7qmUzo(t&&~J5q+8 zJeX%iv7x-QcWkui5_dlGa9@Al&OLpP@7hVZgQNTM%pM->&y5sZT}Fscq#riHd1AVE zq;tMp9e=0kXgQHos{-Lpvv5A6N&@I@8uMVNjb zBjew2)+aIY`cEWWy&iWGe5!S#ji9SGFalp4bKtN8w>mKF7xaD32s;Hm>=OH*aNq$4 z9&zZPx7Y{yn^+F?zmMe}1}_*KtK`c<bOd0utUgU_oj zDdpE?5Mq#D2mUc$had32f>Z}TY+-o6vv0)NSCaMwUMJehbkKh*=<30b&%Zt;&%Yjg z+3tGm!~XzM{V}4?GJX;x(@#6=;P(KppT)@QGemKQXE8E-5oMiW_;DM65qnLCOZh&!QpbnoG`{2gjfMJ&*W3 zoI*!iw*b^4CXML4pXvPQQ3vLC3tICV_=EE)H<#Z7SYdjHE_fDmoL{-QbmsUS-GCHy z;WCw!%kqB>bXzgvT(|}2@u!lGWii}?&h$f Y`#`5ImCFb`gDdGGDZnSt-6rJz4<=J|SO5S3 delta 4287 zcmb7GeM}qY8Gr74HZ~ahY>aUT1%I3kYnet8)-vt1I>54I${!?4w`fBR6zGyES`lPR zwNA2^kd8?xrn#z(rcLr9TrtVQv?N>p$TE~gQ~!uGrd3rtRY{gaDwR5kYTZ{w=l!00 zUlSl{qgpyY_k8`HulM6-_RQ{@j;qmwFBp?AtbE7%hAYrX+3BR0@XJpoDV-JX>1cAU zo5*w!O$`yL)R9!9ZAlvVkB6YMu2n@Ab}Q`;tIw7El2bX?S@;8)8W95-6L54Yd84o= zyHQ3HorUY`>=rJ&T#A-biLCybWJY_Nio-<30n(;=NHd1XUF;>z)c$VEfz@YBI2K`} zO+jv)gdTRL<2D&1jY{zpVmqk=ROnAZ|5ezHL@K&PTgS4Q3id5Bo^Mu)uMlO5c{sB2 z6)1OsPCP`#8Gve}fo=kAAP!i}ZkC5sk%*V|n|x~RMDF#mZAb0{=Kq8s`u%~1+*CX% zlUm!UUZ}w1>)8SU#ZWS&VTJO3O!yP42)bxLD4oFneKO~I4OF!9-M&< zSGf$j0Th_korRMXOuYZ(9!!as+2C0G>3xD=Xy|mGG1Q$#g`zW9{&RN6Rs)?AFC}74r`ZZ{QoSx7@LS@fasa-xNS?06LJSXlk3~svXR9BajV(0THHX zA0=x*+sl8IKs(G3^i}l4_Efp7=G*M^O3m5<>%xzg|BE7=&>uEjv}FSpY}A3-q!GZX zZYFBIj(&zw^qZh+W?i-CP{NZ)vYRNB#@b$NvnyjzHQI4EAOfMvy6|h|e{A1YE<>*% zsKX2ZGMev01{u~zy+bx7cbtXp4-U0fz!zJ*G8=G=bu0oDELvsL%0#YIs>LuPYzr0OR= zLxm!tPpdFq{@c0&l}!a6N^WY|`A@3Qo?Q@&b3aymJ!W?S)yW;OHoE<5qtm%Mtg){I zwq_nYC=peb!CU5@L2()5{b^v&T4%;5^m;R?**3e4dO%;5^m;R?**3e4dO z%;5@j+$6ud^>=g-ClFDCo~CbEUk~m~wBva6sweU>xgQjqEbTh|?}8Cl64Ve$({XDq z_~jk;&XI>~<-Ec9Q`toV5j$HA5WJsJ&&|g0SruC7sOwj>n`Qs1_2*F7x)S=4)nC8U z`nW!7{j&aXYqfq{Ik+$yep$)1p`!{?`y-w_o({?X1@B9E1|)w2@BGtnK-GZ02R9rx zYOmD)lgM!l@@2s*z|{I7b4%V0-7Fp*{toz}7&?pZrZs^90j|(B{xQ5iyN*ZW#Sfnh z_$hsYqX7VF;0M7E;PFcSdqh>Z^_0CbfgcdL=b^tS`7Dv=FygycrQi&d{NoC-{**l4 zJMrw48UGsZ9NQ=PSMeUj6O{aAyz{T3zXlZ&SPS?z-nk3>s|G%<5OK~|1h=ilEtjn6 z#)m&YHZnL&N1quSKJ@gFqa!pvI(FpP$RQR~-iOBqkJHehBi}!A%=)5m`86oA?=Rj-zREjfE7^a zozU5Kmp~zRHVNLj7d?f}*+mSrM=t<5!(cDIUSQ}=gTl@WK%Sj9FJ|WjFxz?I7h{S-9%lXfplrV)?M6@mOsLhg?Wx!(|gegLzb zf3LJd;+&9wK;Zc~AoHWr?j32jiutnw4X^=pB*Qb)=B2z%%G-s5-X(x_QvmB6nEer$ z6VNeRE=XSzYej!Utd#%~jzjK6XLu0@CZ)U|nQ*3on*z{#NgAvQgJ6@Gc@O}+UxP@5 z6AYSS5e3trEJq>?97H0#JA%tZ3F}YMR!>MJ`?{#N%F&iBF>nfe;!Fo%!!%3uIqUJ* z8%mQEipO1zSJ8m8mKjg*=B10)a6F;7t;u*R{^#)@wcd)iI?)OxZ)u6RtEC@ihpqNR zT&;i0>Pw`UJj>*cm1nYSy)MWKlaH*3(dzW#Mq09ZjkqiF4v?0uqefh9xoS-tq5lIe C{okDc diff --git a/data/base2current.json b/data/base2current.json index 621eace17..5091b8f32 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -707,7 +707,7 @@ "11628841": [ 16, 24, - 153 + 186 ] }, { @@ -1836,7 +1836,7 @@ 12, 16, 21, - 23 + 135 ] }, { @@ -9916,7 +9916,7 @@ 172, 98, 100, - 84, + 240, 48, 130 ] @@ -9952,7 +9952,7 @@ 140, 98, 100, - 84 + 240 ] }, { @@ -9970,7 +9970,7 @@ 172, 100, 100, - 84, + 240, 39, 189, 255, @@ -10076,299 +10076,256 @@ { "55259255": [ 32, - 148, - 130 - ] - }, - { - "55259259": [ - 4, - 148, - 131 + 39, + 189, + 255, + 232, + 175, + 191 ] }, { "55259263": [ - 6 - ] - }, - { - "55259265": [ - 67 + 20, + 175, + 176 ] }, { "55259267": [ - 24 + 16 ] }, { - "55259270": [ + "55259269": [ + 128, + 128, + 37, + 12, 16, - 18, - 144, - 131 + 20, + 5, + 140, + 132 ] }, { - "55259275": [ - 12 + "55259279": [ + 8, + 174, + 2 ] }, { - "55259281": [ - 67 + "55259284": [ + 60, + 3, + 128, + 64, + 140, + 99, + 100, + 232, + 142, + 6 ] }, { - "55259283": [ - 24 + "55259295": [ + 8, + 142, + 5 ] }, { - "55259286": [ - 16, - 18, - 3, - 224 + "55259299": [ + 4 ] }, { - "55259291": [ - 8 + "55259301": [ + 96, + 248, + 9 ] }, { - "55259296": [ - 39, - 189, - 255, - 232, - 175, + "55259305": [ + 64, + 32, + 37, + 143, 191 ] }, { - "55259303": [ + "55259311": [ 20, - 175, + 143, 176 ] }, { - "55259307": [ - 16, - 12, + "55259315": [ 16, - 20, - 30 + 3, + 224 ] }, { - "55259313": [ - 128, - 128, - 37, - 150, - 3 + "55259319": [ + 8, + 39, + 189 ] }, { - "55259319": [ - 8 + "55259323": [ + 24, + 148, + 130 ] }, { - "55259321": [ - 98 + "55259327": [ + 4, + 148, + 131 ] }, { - "55259323": [ - 24 + "55259331": [ + 6 ] }, { - "55259326": [ - 16, - 18, - 143, - 191 + "55259333": [ + 67 ] }, { - "55259331": [ - 20, - 143, - 176 + "55259335": [ + 24 ] }, { - "55259335": [ + "55259338": [ 16, - 3, - 224 + 18, + 144, + 131 ] }, { - "55259339": [ - 8, - 39, - 189 + "55259343": [ + 12 ] }, { - "55259343": [ - 24, - 39, - 189, - 255, - 224, - 175, - 191 + "55259349": [ + 67 ] }, { "55259351": [ - 28, - 175, - 178 + 24 ] }, { - "55259355": [ - 24, - 175, - 177 + "55259354": [ + 16, + 18, + 3, + 224 ] }, { "55259359": [ - 20, - 175, - 176 + 8 ] }, { - "55259363": [ - 16 + "55259364": [ + 39, + 189, + 255, + 232, + 175, + 191 ] }, { - "55259365": [ - 128, - 144, - 37, - 12, - 16, + "55259371": [ 20, - 40 - ] - }, - { - "55259373": [ - 160, - 136, - 37 + 175, + 176 ] }, { - "55259377": [ - 64, - 128, - 37, + "55259375": [ + 16, 12, 16, 20, - 5 - ] - }, - { - "55259385": [ - 64, - 32, - 37, - 174, - 66 + 47 ] }, { - "55259392": [ - 60, - 3, + "55259381": [ + 128, 128, - 64, - 140, - 99, - 100, - 76, - 2 - ] - }, - { - "55259402": [ - 48, 37, - 2, - 32, - 40, - 37 + 150, + 3 ] }, { - "55259409": [ - 96, - 248, - 9 + "55259387": [ + 8 ] }, { - "55259413": [ - 64, - 32, - 37, - 143, - 191 + "55259389": [ + 98 ] }, { - "55259419": [ - 28, - 143, - 178 + "55259391": [ + 24 ] }, { - "55259423": [ - 24, + "55259394": [ + 16, + 18, 143, - 177 + 191 ] }, { - "55259427": [ + "55259399": [ 20, 143, 176 ] }, { - "55259431": [ + "55259403": [ 16, 3, 224 ] }, { - "55259435": [ + "55259407": [ 8, 39, 189 ] }, { - "55259439": [ - 32, + "55259411": [ + 24, 39, 189, 255, @@ -10378,89 +10335,89 @@ ] }, { - "55259447": [ + "55259419": [ 108, 175, 183 ] }, { - "55259451": [ + "55259423": [ 104, 175, 182 ] }, { - "55259455": [ + "55259427": [ 100, 175, 181 ] }, { - "55259459": [ + "55259431": [ 96, 175, 180 ] }, { - "55259463": [ + "55259435": [ 92, 175, 179 ] }, { - "55259467": [ + "55259439": [ 88, 175, 178 ] }, { - "55259471": [ + "55259443": [ 84, 175, 177 ] }, { - "55259475": [ + "55259447": [ 80, 175, 176 ] }, { - "55259479": [ + "55259451": [ 76 ] }, { - "55259481": [ + "55259453": [ 128, 128, 37 ] }, { - "55259485": [ + "55259457": [ 160, 168, 37 ] }, { - "55259489": [ + "55259461": [ 192, 184, 37 ] }, { - "55259493": [ + "55259465": [ 224, 176, 37, @@ -10469,12 +10426,12 @@ ] }, { - "55259499": [ + "55259471": [ 10 ] }, { - "55259501": [ + "55259473": [ 18, 149, 64, @@ -10483,7 +10440,7 @@ ] }, { - "55259507": [ + "55259479": [ 224, 2, 66, @@ -10494,21 +10451,21 @@ ] }, { - "55259515": [ + "55259487": [ 11, 46, 34 ] }, { - "55259519": [ + "55259491": [ 2, 16, 64 ] }, { - "55259523": [ + "55259495": [ 2, 2, 32, @@ -10519,19 +10476,19 @@ ] }, { - "55259531": [ + "55259503": [ 2, 50, 115 ] }, { - "55259535": [ + "55259507": [ 255 ] }, { - "55259537": [ + "55259509": [ 19, 164, 192, @@ -10540,7 +10497,7 @@ ] }, { - "55259543": [ + "55259515": [ 24, 2, 130, @@ -10556,7 +10513,7 @@ ] }, { - "55259556": [ + "55259528": [ 2, 130, 16, @@ -10566,12 +10523,12 @@ ] }, { - "55259563": [ + "55259535": [ 16, 12, 16, 20, - 30, + 47, 2, 160, 32, @@ -10579,17 +10536,17 @@ ] }, { - "55259573": [ + "55259545": [ 87 ] }, { - "55259575": [ + "55259547": [ 24 ] }, { - "55259578": [ + "55259550": [ 16, 18, 142, @@ -10597,7 +10554,7 @@ ] }, { - "55259585": [ + "55259557": [ 98, 24, 33, @@ -10606,7 +10563,7 @@ ] }, { - "55259591": [ + "55259563": [ 20, 60, 2, @@ -10614,7 +10571,7 @@ ] }, { - "55259596": [ + "55259568": [ 2, 130, 160, @@ -10624,7 +10581,7 @@ ] }, { - "55259603": [ + "55259575": [ 24, 60, 2, @@ -10632,13 +10589,13 @@ ] }, { - "55259608": [ + "55259580": [ 175, 162 ] }, { - "55259611": [ + "55259583": [ 28, 60, 2, @@ -10646,20 +10603,20 @@ ] }, { - "55259616": [ + "55259588": [ 175, 162 ] }, { - "55259619": [ + "55259591": [ 32, 175, 160 ] }, { - "55259623": [ + "55259595": [ 36, 60, 2, @@ -10667,42 +10624,42 @@ ] }, { - "55259628": [ + "55259600": [ 175, 162 ] }, { - "55259631": [ + "55259603": [ 40, 150, 163 ] }, { - "55259635": [ + "55259607": [ 4, 150, 167 ] }, { - "55259639": [ + "55259611": [ 6 ] }, { - "55259641": [ + "55259613": [ 246 ] }, { - "55259643": [ + "55259615": [ 24 ] }, { - "55259646": [ + "55259618": [ 56, 18, 36, @@ -10710,7 +10667,7 @@ ] }, { - "55259651": [ + "55259623": [ 4, 2, 36, @@ -10719,17 +10676,17 @@ ] }, { - "55259657": [ + "55259629": [ 103 ] }, { - "55259659": [ + "55259631": [ 24 ] }, { - "55259662": [ + "55259634": [ 16, 18, 36, @@ -10737,22 +10694,22 @@ ] }, { - "55259667": [ + "55259639": [ 1 ] }, { - "55259673": [ + "55259645": [ 68 ] }, { - "55259675": [ + "55259647": [ 24 ] }, { - "55259678": [ + "55259650": [ 16, 18, 36, @@ -10764,7 +10721,7 @@ ] }, { - "55259687": [ + "55259659": [ 2, 2, 98, @@ -10777,19 +10734,19 @@ ] }, { - "55259697": [ + "55259669": [ 2, 19 ] }, { - "55259700": [ + "55259672": [ 60, 5 ] }, { - "55259703": [ + "55259675": [ 255, 52, 165, @@ -10797,24 +10754,24 @@ ] }, { - "55259709": [ + "55259681": [ 69, 16, 36 ] }, { - "55259713": [ + "55259685": [ 131 ] }, { - "55259715": [ + "55259687": [ 24 ] }, { - "55259718": [ + "55259690": [ 64, 18, 41, @@ -10822,14 +10779,14 @@ ] }, { - "55259723": [ + "55259695": [ 65, 20, 160 ] }, { - "55259727": [ + "55259699": [ 10, 36, 6, @@ -10837,7 +10794,7 @@ ] }, { - "55259733": [ + "55259705": [ 8, 47, 195, @@ -10846,19 +10803,19 @@ ] }, { - "55259739": [ + "55259711": [ 63 ] }, { - "55259741": [ + "55259713": [ 168, 40, 33 ] }, { - "55259745": [ + "55259717": [ 5, 41, 131, @@ -10869,24 +10826,24 @@ ] }, { - "55259753": [ + "55259725": [ 197 ] }, { - "55259755": [ + "55259727": [ 26 ] }, { - "55259757": [ + "55259729": [ 160, 1, 244 ] }, { - "55259762": [ + "55259734": [ 48, 18, 48, @@ -10896,7 +10853,7 @@ ] }, { - "55259769": [ + "55259741": [ 70, 16, 37, @@ -10906,7 +10863,7 @@ ] }, { - "55259777": [ + "55259749": [ 69, 16, 37, @@ -10915,7 +10872,7 @@ ] }, { - "55259783": [ + "55259755": [ 44, 60, 2, @@ -10923,25 +10880,25 @@ ] }, { - "55259788": [ + "55259760": [ 175, 162 ] }, { - "55259791": [ + "55259763": [ 48, 175, 160 ] }, { - "55259795": [ + "55259767": [ 52 ] }, { - "55259797": [ + "55259769": [ 17, 20, 192, @@ -10950,12 +10907,12 @@ ] }, { - "55259803": [ + "55259775": [ 24 ] }, { - "55259805": [ + "55259777": [ 69, 16, 36, @@ -10964,19 +10921,19 @@ ] }, { - "55259811": [ + "55259783": [ 2, 22, 32 ] }, { - "55259815": [ + "55259787": [ 2 ] }, { - "55259817": [ + "55259789": [ 82, 16, 37, @@ -10985,22 +10942,22 @@ ] }, { - "55259823": [ + "55259795": [ 16 ] }, { - "55259825": [ + "55259797": [ 100 ] }, { - "55259827": [ + "55259799": [ 24 ] }, { - "55259830": [ + "55259802": [ 32, 18, 36, @@ -11008,12 +10965,12 @@ ] }, { - "55259835": [ + "55259807": [ 63 ] }, { - "55259837": [ + "55259809": [ 4, 151, 195, @@ -11022,7 +10979,7 @@ ] }, { - "55259843": [ + "55259815": [ 63, 2, 68, @@ -11031,7 +10988,7 @@ ] }, { - "55259849": [ + "55259821": [ 18, 144, 192, @@ -11040,7 +10997,7 @@ ] }, { - "55259855": [ + "55259827": [ 3, 52, 132, @@ -11048,7 +11005,7 @@ ] }, { - "55259860": [ + "55259832": [ 2, 68, 144, @@ -11063,7 +11020,7 @@ ] }, { - "55259872": [ + "55259844": [ 2, 66, 144, @@ -11073,14 +11030,14 @@ ] }, { - "55259879": [ + "55259851": [ 56, 175, 160 ] }, { - "55259883": [ + "55259855": [ 60, 60, 2, @@ -11088,13 +11045,13 @@ ] }, { - "55259888": [ + "55259860": [ 175, 162 ] }, { - "55259891": [ + "55259863": [ 64, 36, 98, @@ -11103,7 +11060,7 @@ ] }, { - "55259897": [ + "55259869": [ 2, 19, 128, @@ -11112,7 +11069,7 @@ ] }, { - "55259903": [ + "55259875": [ 255, 52, 99, @@ -11120,7 +11077,7 @@ ] }, { - "55259909": [ + "55259881": [ 67, 16, 36, @@ -11131,7 +11088,7 @@ ] }, { - "55259917": [ + "55259889": [ 7, 56, 128, @@ -11142,7 +11099,7 @@ ] }, { - "55259925": [ + "55259897": [ 71, 16, 37, @@ -11151,69 +11108,69 @@ ] }, { - "55259931": [ + "55259903": [ 68, 39, 162 ] }, { - "55259935": [ + "55259907": [ 16, 39, 166 ] }, { - "55259939": [ + "55259911": [ 72, 142, 3 ] }, { - "55259943": [ + "55259915": [ 4, 36, 100 ] }, { - "55259947": [ + "55259919": [ 8, 174, 4 ] }, { - "55259951": [ + "55259923": [ 4, 140, 69 ] }, { - "55259955": [ + "55259927": [ 4, 140, 68 ] }, { - "55259960": [ + "55259932": [ 172, 101 ] }, { - "55259963": [ + "55259935": [ 4, 36, 66 ] }, { - "55259967": [ + "55259939": [ 8, 20, 70, @@ -11224,83 +11181,83 @@ ] }, { - "55259976": [ + "55259948": [ 143, 191 ] }, { - "55259979": [ + "55259951": [ 108, 143, 183 ] }, { - "55259983": [ + "55259955": [ 104, 143, 182 ] }, { - "55259987": [ + "55259959": [ 100, 143, 181 ] }, { - "55259991": [ + "55259963": [ 96, 143, 180 ] }, { - "55259995": [ + "55259967": [ 92, 143, 179 ] }, { - "55259999": [ + "55259971": [ 88, 143, 178 ] }, { - "55260003": [ + "55259975": [ 84, 143, 177 ] }, { - "55260007": [ + "55259979": [ 80, 143, 176 ] }, { - "55260011": [ + "55259983": [ 76, 3, 224 ] }, { - "55260015": [ + "55259987": [ 8, 39, 189 ] }, { - "55260019": [ + "55259991": [ 112, 39, 189, @@ -11311,33 +11268,33 @@ ] }, { - "55260027": [ + "55259999": [ 40, 143, 162 ] }, { - "55260031": [ + "55260003": [ 44, 143, 170 ] }, { - "55260035": [ + "55260007": [ 48, 148, 169 ] }, { - "55260039": [ + "55260011": [ 4 ] }, { - "55260041": [ + "55260013": [ 9, 74, 128, @@ -11346,19 +11303,19 @@ ] }, { - "55260047": [ + "55260019": [ 27 ] }, { - "55260049": [ + "55260021": [ 64, 1, 244 ] }, { - "55260054": [ + "55260026": [ 72, 18, 148, @@ -11366,19 +11323,19 @@ ] }, { - "55260059": [ + "55260031": [ 6 ] }, { - "55260061": [ + "55260033": [ 71, 16, 33 ] }, { - "55260065": [ + "55260037": [ 2, 19, 128, @@ -11387,7 +11344,7 @@ ] }, { - "55260071": [ + "55260043": [ 255, 53, 107, @@ -11395,7 +11352,7 @@ ] }, { - "55260077": [ + "55260049": [ 75, 16, 36, @@ -11406,7 +11363,7 @@ ] }, { - "55260085": [ + "55260057": [ 5, 40, 128, @@ -11417,7 +11374,7 @@ ] }, { - "55260093": [ + "55260065": [ 69, 16, 37, @@ -11427,7 +11384,7 @@ ] }, { - "55260101": [ + "55260073": [ 69, 16, 37, @@ -11436,21 +11393,21 @@ ] }, { - "55260109": [ + "55260081": [ 7, 59, 128 ] }, { - "55260113": [ + "55260085": [ 235, 56, 36 ] }, { - "55260117": [ + "55260089": [ 8, 64, 128, @@ -11461,7 +11418,7 @@ ] }, { - "55260125": [ + "55260097": [ 232, 56, 37, @@ -11470,7 +11427,7 @@ ] }, { - "55260131": [ + "55260103": [ 4, 60, 2, @@ -11478,34 +11435,34 @@ ] }, { - "55260136": [ + "55260108": [ 175, 162 ] }, { - "55260139": [ + "55260111": [ 8 ] }, { - "55260141": [ + "55260113": [ 102 ] }, { - "55260143": [ + "55260115": [ 24 ] }, { - "55260146": [ + "55260118": [ 48, 18 ] }, { - "55260149": [ + "55260121": [ 6, 49, 64, @@ -11518,7 +11475,7 @@ ] }, { - "55260159": [ + "55260131": [ 12, 60, 2, @@ -11526,30 +11483,30 @@ ] }, { - "55260164": [ + "55260136": [ 175, 162 ] }, { - "55260167": [ + "55260139": [ 16 ] }, { - "55260169": [ + "55260141": [ 3, 26, 128 ] }, { - "55260173": [ + "55260145": [ 106 ] }, { - "55260175": [ + "55260147": [ 27, 1, 64, @@ -11558,7 +11515,7 @@ ] }, { - "55260182": [ + "55260154": [ 24, 18, 48, @@ -11568,13 +11525,13 @@ ] }, { - "55260189": [ + "55260161": [ 9, 76 ] }, { - "55260193": [ + "55260165": [ 105, 24, 37, @@ -11583,7 +11540,7 @@ ] }, { - "55260199": [ + "55260171": [ 20, 3, 160, @@ -11594,55 +11551,55 @@ ] }, { - "55260207": [ + "55260179": [ 24, 140, 131 ] }, { - "55260211": [ + "55260183": [ 4, 36, 101 ] }, { - "55260215": [ + "55260187": [ 8, 172, 133 ] }, { - "55260219": [ + "55260191": [ 4, 140, 71 ] }, { - "55260223": [ + "55260195": [ 4, 140, 70 ] }, { - "55260228": [ + "55260200": [ 172, 103 ] }, { - "55260231": [ + "55260203": [ 4, 36, 66 ] }, { - "55260235": [ + "55260207": [ 8, 20, 72, @@ -11653,1196 +11610,1350 @@ ] }, { - "55260244": [ + "55260216": [ 3, 224 ] }, { - "55260247": [ + "55260219": [ 8, 39, 189 ] }, { - "55260251": [ + "55260223": [ 24, - 39, - 189, - 255, - 224, - 175, - 191 + 140, + 130 ] }, { - "55260259": [ - 28, - 175, - 178 + "55260227": [ + 4, + 36, + 67 ] }, { - "55260263": [ - 24, - 175, - 177 + "55260231": [ + 8, + 172, + 131 ] }, { - "55260267": [ - 20, - 175, - 176 + "55260235": [ + 4, + 60, + 3, + 231 ] }, { - "55260271": [ - 16, - 60, - 3, - 128, - 64, - 60, - 2, - 128, - 80, - 36, - 66 + "55260240": [ + 172, + 67 ] }, { - "55260284": [ + "55260244": [ 172, - 98, - 100, - 84, - 60, - 5, - 1, - 162, - 52, - 165, - 195 + 64 ] }, { - "55260296": [ - 60, + "55260247": [ 4, - 128, - 64, - 12, - 16, - 20, - 52, - 36, - 132, - 99, - 196, - 60, - 5, - 1, - 160, - 36, - 165, - 73, - 128, - 60, + 140, + 130 + ] + }, + { + "55260251": [ 4, - 128, - 64, - 12, - 16, - 20, - 52, 36, - 132, - 99, - 180, - 60, - 5 + 67 ] }, { - "55260331": [ - 132, - 52, - 165, - 222 + "55260255": [ + 8, + 172, + 131 ] }, { - "55260336": [ - 60, + "55260259": [ 4, - 128, - 64, - 12, - 16, - 20, - 52, - 36, - 132, - 99, - 164, 60, - 17, - 128, - 64, - 12, - 16, - 20, - 40, - 38, - 36, - 99, - 148 + 3, + 217 ] }, { - "55260361": [ - 64, - 128, - 37, - 12, - 16, - 20, - 5 + "55260264": [ + 172, + 67 ] }, { - "55260369": [ - 64, - 32, - 37 - ] + "55260268": [ + 172, + 64 + ] }, { - "55260373": [ - 16, - 79, - 194, - 1, - 48, - 72, - 33, - 42, - 16 + "55260271": [ + 4, + 140, + 130 ] }, { - "55260383": [ - 2, - 22 + "55260275": [ + 4, + 36, + 67 ] }, { - "55260387": [ - 24, - 174, - 34, - 99, - 148 + "55260279": [ + 8, + 172, + 131 ] }, { - "55260393": [ - 9, - 72, - 67, + "55260283": [ + 4, 60, 3, - 128, - 64, - 36, - 99, - 100, - 88 + 237 ] }, { - "55260406": [ - 32, - 37 + "55260288": [ + 172, + 67 ] }, { - "55260410": [ - 48, - 37, - 2, - 32, - 64, - 37, + "55260292": [ + 60, + 5 + ] + }, + { + "55260295": [ + 80, 36, - 7, - 255, - 240, - 141, - 5, - 99, - 148 + 163, + 3, + 192, + 172, + 67 ] }, { - "55260425": [ - 164, - 40, - 33, - 144, + "55260303": [ + 4, + 140, + 131 + ] + }, + { + "55260307": [ + 4, + 36, 98 ] }, { - "55260433": [ + "55260311": [ + 8, + 172, + 130 + ] + }, + { + "55260315": [ + 4, + 60, 2, - 17, - 2 + 227 ] }, { - "55260437": [ - 71, - 16, - 37, - 160, - 162 + "55260320": [ + 36, + 70, + 26, + 1, + 172, + 102 ] }, { - "55260444": [ - 141, - 2, - 99, - 148 + "55260328": [ + 36, + 6 ] }, { - "55260449": [ - 68, - 16, - 33, - 144, - 101 + "55260331": [ + 48, + 172, + 102 ] }, { - "55260457": [ - 167, - 40, - 37, - 160, - 69 + "55260335": [ + 4, + 140, + 131 + ] + }, + { + "55260339": [ + 4, + 36, + 102 + ] + }, + { + "55260343": [ + 8, + 172, + 134 ] }, { - "55260463": [ + "55260347": [ + 4, + 36, + 70, + 24, 1, + 172, + 102 + ] + }, + { + "55260356": [ 36, - 198 + 6 + ] + }, + { + "55260359": [ + 192, + 172, + 102 + ] + }, + { + "55260363": [ + 4, + 140, + 134 + ] + }, + { + "55260367": [ + 4, + 36, + 195 + ] + }, + { + "55260371": [ + 8, + 172, + 131 + ] + }, + { + "55260375": [ + 4, + 60, + 3, + 226 ] }, { - "55260467": [ + "55260380": [ + 36, + 103, + 30, 1, + 172, + 199 + ] + }, + { + "55260388": [ + 172, + 192 + ] + }, + { + "55260391": [ + 4, + 140, + 134 + ] + }, + { + "55260395": [ + 4, 36, - 99 + 199 ] }, { - "55260471": [ - 1 + "55260399": [ + 8, + 172, + 135 ] }, { - "55260473": [ - 201, - 16, - 42, - 20, - 64, - 255, - 241, + "55260403": [ + 4, 36, - 132 + 103, + 29 ] }, { - "55260483": [ - 2, + "55260408": [ + 172, + 199 + ] + }, + { + "55260412": [ 36, - 5, - 2 + 7 ] }, { - "55260488": [ - 60, - 17, - 128, - 64, - 12, - 16, - 20, - 14, - 38, + "55260415": [ + 4, + 172, + 199 + ] + }, + { + "55260419": [ + 4, + 140, + 134 + ] + }, + { + "55260423": [ + 4, 36, - 99, - 212, - 60, - 16, - 128, - 64, - 38, - 16, - 99, - 224, - 38, - 49, - 99, - 212, - 38, - 50 + 199 ] }, { - "55260515": [ - 48, + "55260427": [ + 8, + 172, + 135 + ] + }, + { + "55260431": [ + 4, 36, - 5, - 1 + 71, + 23 ] }, { - "55260520": [ - 12, - 16, - 20, - 14, - 2 + "55260436": [ + 172, + 199 ] }, { - "55260526": [ - 32, - 37, - 38, - 16 + "55260440": [ + 172, + 192 + ] + }, + { + "55260443": [ + 4, + 140, + 134 ] }, { - "55260531": [ - 12, - 22, - 18, - 255, - 252, + "55260447": [ + 4, 36, - 5, - 1 + 199 ] }, { - "55260540": [ - 36, - 5, - 2 + "55260451": [ + 8, + 172, + 135 ] }, { - "55260544": [ - 60, + "55260455": [ 4, - 128, - 64, - 12, - 16, - 20, - 14, 36, - 132, - 100, - 4, - 60, - 16, - 128, - 64, - 38, - 16, - 100, - 16, - 38, - 49 + 71, + 20, + 2, + 172, + 199 ] }, { - "55260567": [ - 96, + "55260464": [ 36, - 5, - 1 + 7, + 12 ] }, { - "55260572": [ - 12, - 16, - 20, - 14, - 2 + "55260468": [ + 172, + 199 ] }, { - "55260578": [ - 32, - 37, - 38, - 16 + "55260471": [ + 4, + 140, + 134 ] }, { - "55260583": [ - 12, - 22, - 17, - 255, - 252, + "55260475": [ + 4, 36, - 5, - 1 + 199 + ] + }, + { + "55260479": [ + 8, + 172, + 135 ] }, { - "55260592": [ + "55260483": [ + 4, 36, - 5 + 71, + 13, + 1, + 172, + 199 ] }, { - "55260595": [ - 32, - 60, - 16, - 128, - 64, - 12, - 16, - 20, - 14, - 38, + "55260492": [ + 172, + 192 + ] + }, + { + "55260495": [ 4, - 100, - 52, - 38, - 2, - 100, - 52, 140, - 67 + 134 ] }, { - "55260615": [ + "55260499": [ 4, 36, - 100 + 199 ] }, { - "55260619": [ + "55260503": [ 8, 172, - 68 + 135 ] }, { - "55260623": [ + "55260507": [ 4, - 60, - 4, - 231 + 36, + 71, + 12 ] }, { - "55260628": [ + "55260512": [ 172, - 100 + 199 ] }, { - "55260632": [ + "55260516": [ 172, - 96 + 192 ] }, { - "55260635": [ + "55260519": [ 4, 140, - 67 + 134 ] }, { - "55260639": [ + "55260523": [ 4, 36, - 100 + 199 ] }, { - "55260643": [ + "55260527": [ 8, 172, - 68 + 135 ] }, { - "55260647": [ - 4, - 60, + "55260531": [ 4, - 217 + 36, + 71, + 15 ] }, { - "55260652": [ + "55260536": [ 172, - 100 + 199 ] }, { - "55260656": [ + "55260540": [ 172, - 96 + 192 ] }, { - "55260659": [ + "55260543": [ 4, 140, - 67 + 134 ] }, { - "55260663": [ + "55260547": [ 4, 36, - 100 + 199 ] }, { - "55260667": [ + "55260551": [ 8, 172, - 68 + 135 ] }, { - "55260671": [ - 4, - 60, + "55260555": [ 4, - 237 - ] - }, - { - "55260676": [ + 36, + 71, + 16, + 1, 172, - 100 - ] - }, - { - "55260680": [ - 60, - 4 + 199 ] }, { - "55260683": [ - 80, - 36, - 132, - 3, - 192, + "55260564": [ 172, - 100 + 192 ] }, { - "55260691": [ + "55260567": [ 4, 140, - 68 + 134 ] }, { - "55260695": [ + "55260571": [ 4, 36, - 131 + 199 ] }, { - "55260699": [ + "55260575": [ 8, 172, - 67 + 135 ] }, { - "55260703": [ + "55260579": [ 4, - 60, - 3, - 227 - ] - }, - { - "55260708": [ 36, - 101, - 26, - 1, - 172, - 133 + 71, + 8 ] }, { - "55260716": [ - 36, - 5 + "55260584": [ + 172, + 199 ] }, { - "55260719": [ - 48, + "55260588": [ 172, - 133 + 192 ] }, { - "55260723": [ + "55260591": [ 4, 140, - 68 + 134 ] }, { - "55260727": [ + "55260595": [ 4, 36, - 133 + 199 ] }, { - "55260731": [ + "55260599": [ 8, 172, - 69 + 135 ] }, { - "55260735": [ + "55260603": [ 4, 36, - 101, - 24, + 71, + 10, 1, 172, - 133 + 199 ] }, { - "55260744": [ - 36, - 5 - ] - }, - { - "55260747": [ - 192, + "55260612": [ 172, - 133 + 192 ] }, { - "55260751": [ + "55260615": [ 4, 140, - 69 + 134 ] }, { - "55260755": [ + "55260619": [ 4, 36, - 164 + 199 ] }, { - "55260759": [ + "55260623": [ 8, 172, - 68 + 135 ] }, { - "55260763": [ + "55260627": [ 4, - 60, - 4, - 226 + 36, + 99 ] }, { - "55260768": [ - 36, - 134, - 30, - 1, + "55260631": [ + 28, 172, - 166 + 195 ] }, { - "55260776": [ + "55260636": [ + 36, + 165, + 66, + 64, 172, - 160 + 197 ] }, { - "55260779": [ + "55260643": [ 4, 140, - 69 + 131 ] }, { - "55260783": [ + "55260647": [ 4, 36, - 166 + 101 ] }, { - "55260787": [ + "55260651": [ 8, 172, - 70 - ] - }, - { - "55260791": [ - 4, - 36, - 132, - 29 + 133 ] }, { - "55260796": [ + "55260655": [ + 4, + 36, + 66, + 18, + 1, 172, - 164 + 98 ] }, { - "55260800": [ + "55260664": [ 36, - 4 + 2, + 32 ] }, { - "55260803": [ - 4, + "55260668": [ 172, - 164 + 98 ] }, { - "55260807": [ + "55260671": [ 4, 140, - 68 + 130 ] }, { - "55260811": [ + "55260675": [ 4, 36, - 133 + 67 ] }, { - "55260815": [ + "55260679": [ 8, 172, - 69 + 131 ] }, { - "55260819": [ + "55260683": [ 4, - 36, - 101, - 23 + 60, + 3, + 223 ] }, { - "55260824": [ + "55260688": [ 172, - 133 + 67 + ] + }, + { + "55260692": [ + 3, + 224 ] }, { - "55260828": [ + "55260695": [ + 8, 172, - 128 + 64 ] }, { - "55260831": [ + "55260699": [ 4, - 140, - 68 + 39, + 189, + 255, + 224, + 175, + 191 ] }, { - "55260835": [ - 4, - 36, - 133 + "55260707": [ + 28, + 175, + 178 ] }, { - "55260839": [ - 8, - 172, - 69 + "55260711": [ + 24, + 175, + 177 ] }, { - "55260843": [ - 4, - 36, - 101, + "55260715": [ 20, - 2, - 172, - 133 + 175, + 176 ] }, { - "55260852": [ + "55260719": [ + 16, + 60, + 3, + 128, + 64, + 60, + 2, + 128, + 80, 36, - 5, - 12 + 66 ] }, { - "55260856": [ + "55260732": [ 172, - 133 + 98, + 100, + 240, + 60, + 17, + 128, + 64, + 12, + 16, + 20, + 30, + 38, + 36, + 100, + 100, + 60, + 16, + 128, + 64, + 12, + 16, + 20, + 30, + 38, + 4, + 100, + 88, + 142, + 35, + 100, + 100, + 60, + 2 ] }, { - "55260859": [ - 4, - 140, - 68 + "55260767": [ + 2, + 52, + 66, + 163 ] }, { - "55260863": [ + "55260773": [ + 98, + 16, + 33, + 60, 4, + 128, + 64, + 172, + 130, + 100, + 72, 36, - 133 + 99, + 41, + 128, + 60, + 2, + 128, + 64, + 172, + 67, + 100, + 56, + 142, + 2, + 100, + 88, + 36, + 66, + 126 ] }, { - "55260867": [ - 8, + "55260804": [ + 60, + 3, + 128, + 64, 172, - 69 + 98, + 100, + 40, + 60, + 17, + 128, + 64, + 12, + 16, + 20, + 57, + 38, + 36, + 100, + 24 ] }, { - "55260871": [ - 4, - 36, - 101, - 13, - 1, - 172, - 133 + "55260825": [ + 64, + 128, + 37, + 12, + 16, + 20, + 5 ] }, { - "55260880": [ - 172, - 128 + "55260833": [ + 64, + 32, + 37 ] }, { - "55260883": [ - 4, - 140, - 68 + "55260837": [ + 16, + 79, + 194, + 1, + 48, + 72, + 33, + 42, + 16 ] }, { - "55260887": [ - 4, - 36, - 133 + "55260847": [ + 2, + 22 ] }, { - "55260891": [ - 8, - 172, - 69 + "55260851": [ + 24, + 174, + 34, + 100, + 24 ] }, { - "55260895": [ - 4, + "55260857": [ + 9, + 72, + 67, + 60, + 3, + 128, + 64, 36, - 101, - 12 + 99, + 100, + 244 ] }, { - "55260900": [ - 172, - 133 + "55260870": [ + 32, + 37 ] }, { - "55260904": [ - 172, - 128 + "55260874": [ + 48, + 37, + 2, + 32, + 64, + 37, + 36, + 7, + 255, + 240, + 141, + 5, + 100, + 24 + ] + }, + { + "55260889": [ + 164, + 40, + 33, + 144, + 98 ] }, { - "55260907": [ - 4, - 140, - 68 + "55260897": [ + 2, + 17, + 2 ] }, { - "55260911": [ - 4, - 36, - 133 + "55260901": [ + 71, + 16, + 37, + 160, + 162 ] }, { - "55260915": [ - 8, - 172, - 69 + "55260908": [ + 141, + 2, + 100, + 24 ] }, { - "55260919": [ - 4, - 36, - 101, - 15 + "55260913": [ + 68, + 16, + 33, + 144, + 101 ] }, { - "55260924": [ - 172, - 133 + "55260921": [ + 167, + 40, + 37, + 160, + 69 ] }, { - "55260928": [ - 172, - 128 + "55260927": [ + 1, + 36, + 198 ] }, { "55260931": [ - 4, - 140, - 68 + 1, + 36, + 99 ] }, { "55260935": [ - 4, - 36, - 133 + 1 ] }, { - "55260939": [ - 8, - 172, - 69 + "55260937": [ + 201, + 16, + 42, + 20, + 64, + 255, + 241, + 36, + 132 ] }, { - "55260943": [ - 4, + "55260947": [ + 2, 36, - 101, - 16, - 1, - 172, - 133 + 5, + 2 ] }, { "55260952": [ - 172, - 128 - ] - }, - { - "55260955": [ - 4, - 140, - 68 + 60, + 17, + 128, + 64, + 12, + 16, + 20, + 14, + 38, + 36, + 100, + 112, + 60, + 16, + 128, + 64, + 38, + 16, + 100, + 124, + 38, + 49, + 100, + 112, + 38, + 50 ] }, { - "55260959": [ - 4, + "55260979": [ + 48, 36, - 133 + 5, + 1 ] }, { - "55260963": [ - 8, - 172, - 69 + "55260984": [ + 12, + 16, + 20, + 14, + 2 ] }, { - "55260967": [ - 4, - 36, - 99, - 8 + "55260990": [ + 32, + 37, + 38, + 16 ] }, { - "55260972": [ - 172, - 131 + "55260995": [ + 12, + 22, + 18, + 255, + 252, + 36, + 5, + 1 ] }, { - "55260976": [ - 172, - 128 + "55261004": [ + 36, + 5, + 2 ] }, { - "55260979": [ + "55261008": [ + 60, 4, - 140, - 67 + 128, + 64, + 12, + 16, + 20, + 14, + 36, + 132, + 100, + 160, + 60, + 16, + 128, + 64, + 38, + 16, + 100, + 172, + 38, + 49 ] }, { - "55260983": [ - 4, + "55261031": [ + 96, 36, - 100 + 5, + 1 ] }, { - "55260987": [ - 8, - 172, - 68 + "55261036": [ + 12, + 16, + 20, + 14, + 2 ] }, { - "55260991": [ - 4, - 60, - 2, - 223 + "55261042": [ + 32, + 37, + 38, + 16 ] }, { - "55260996": [ - 172, - 98 + "55261047": [ + 12, + 22, + 17, + 255, + 252, + 36, + 5, + 1 ] }, { - "55261000": [ - 172, - 96 + "55261056": [ + 36, + 5 ] }, { - "55261003": [ + "55261059": [ + 32, + 60, + 16, + 128, + 64, + 12, + 16, + 20, + 14, + 38, + 4, + 100, + 208, + 12, + 16, + 21, + 16, + 38, 4, + 100, + 208, 143, 191 ] }, { - "55261007": [ + "55261083": [ 28, 143, 178 ] }, { - "55261011": [ + "55261087": [ 24, 143, 177 ] }, { - "55261015": [ + "55261091": [ 20, 143, 176 ] }, { - "55261019": [ + "55261095": [ 16, 3, 224 ] }, { - "55261023": [ + "55261099": [ 8, 39, 189 ] }, { - "55261027": [ + "55261103": [ 32, 128, 162 ] }, { - "55261032": [ + "55261108": [ 16, 64 ] }, { - "55261035": [ + "55261111": [ 79, 36, 67, @@ -12857,82 +12968,82 @@ ] }, { - "55261047": [ + "55261123": [ 52, 175, 180 ] }, { - "55261051": [ + "55261127": [ 48, 175, 179 ] }, { - "55261055": [ + "55261131": [ 44, 175, 178 ] }, { - "55261059": [ + "55261135": [ 40, 175, 177 ] }, { - "55261063": [ + "55261139": [ 36, 175, 176 ] }, { - "55261067": [ + "55261143": [ 32 ] }, { - "55261069": [ + "55261145": [ 128, 152, 37 ] }, { - "55261073": [ + "55261149": [ 192, 144, 37 ] }, { - "55261077": [ + "55261153": [ 224, 160, 37 ] }, { - "55261081": [ + "55261157": [ 3, 23, 195 ] }, { - "55261085": [ + "55261161": [ 2, 38, 194 ] }, { - "55261089": [ + "55261165": [ 100, 48, 33, @@ -12941,12 +13052,12 @@ ] }, { - "55261095": [ + "55261171": [ 31 ] }, { - "55261097": [ + "55261173": [ 196, 48, 35, @@ -12955,40 +13066,40 @@ ] }, { - "55261103": [ + "55261179": [ 31 ] }, { - "55261105": [ + "55261181": [ 67, 16, 33 ] }, { - "55261109": [ + "55261185": [ 2, 17, 67 ] }, { - "55261113": [ + "55261189": [ 2, 32, 64 ] }, { - "55261117": [ + "55261193": [ 130, 32, 33 ] }, { - "55261121": [ + "55261197": [ 4, 32, 128, @@ -13001,21 +13112,21 @@ ] }, { - "55261131": [ + "55261207": [ 4, 140, 131 ] }, { - "55261137": [ + "55261213": [ 67, 16, 35 ] }, { - "55261141": [ + "55261217": [ 2, 16, 195, @@ -13024,7 +13135,7 @@ ] }, { - "55261147": [ + "55261223": [ 8, 36, 99, @@ -13033,7 +13144,7 @@ ] }, { - "55261153": [ + "55261229": [ 67, 16, 43, @@ -13042,14 +13153,14 @@ ] }, { - "55261159": [ + "55261235": [ 40, 36, 177 ] }, { - "55261163": [ + "55261239": [ 1, 60, 16, @@ -13059,12 +13170,12 @@ ] }, { - "55261171": [ + "55261247": [ 23, 38, 16, - 99, - 148, + 100, + 24, 36, 131, 255, @@ -13072,21 +13183,21 @@ ] }, { - "55261181": [ + "55261257": [ 3, 23, 195 ] }, { - "55261185": [ + "55261261": [ 2, 38, 194 ] }, { - "55261189": [ + "55261265": [ 100, 48, 33, @@ -13095,12 +13206,12 @@ ] }, { - "55261195": [ + "55261271": [ 31 ] }, { - "55261197": [ + "55261273": [ 196, 48, 35, @@ -13109,40 +13220,40 @@ ] }, { - "55261203": [ + "55261279": [ 31 ] }, { - "55261205": [ + "55261281": [ 131, 32, 33 ] }, { - "55261209": [ + "55261285": [ 4, 33, 67 ] }, { - "55261213": [ + "55261289": [ 4, 16, 64 ] }, { - "55261217": [ + "55261293": [ 68, 32, 33 ] }, { - "55261221": [ + "55261297": [ 4, 32, 128, @@ -13155,21 +13266,21 @@ ] }, { - "55261231": [ + "55261307": [ 4, 140, 131 ] }, { - "55261237": [ + "55261313": [ 67, 16, 35 ] }, { - "55261241": [ + "55261317": [ 2, 16, 195, @@ -13178,7 +13289,7 @@ ] }, { - "55261247": [ + "55261323": [ 8, 36, 99, @@ -13187,7 +13298,7 @@ ] }, { - "55261253": [ + "55261329": [ 67, 16, 43, @@ -13196,49 +13307,49 @@ ] }, { - "55261259": [ + "55261335": [ 16, 143, 191 ] }, { - "55261263": [ + "55261339": [ 52, 150, 2 ] }, { - "55261267": [ + "55261343": [ 6, 175, 162 ] }, { - "55261271": [ + "55261347": [ 24, 150, 2 ] }, { - "55261275": [ + "55261351": [ 4, 175, 162 ] }, { - "55261279": [ + "55261355": [ 20, 175, 180 ] }, { - "55261283": [ + "55261359": [ 16, 2, 64, @@ -13247,12 +13358,12 @@ 12, 16, 20, - 221, + 214, 2 ] }, { - "55261294": [ + "55261370": [ 40, 37, 150, @@ -13260,7 +13371,7 @@ ] }, { - "55261299": [ + "55261375": [ 4, 2, 66, @@ -13271,7 +13382,7 @@ ] }, { - "55261307": [ + "55261383": [ 1, 130, 36, @@ -13290,68 +13401,68 @@ ] }, { - "55261323": [ + "55261399": [ 52, 143, 180 ] }, { - "55261327": [ + "55261403": [ 48, 143, 179 ] }, { - "55261331": [ + "55261407": [ 44, 143, 178 ] }, { - "55261335": [ + "55261411": [ 40, 143, 177 ] }, { - "55261339": [ + "55261415": [ 36, 143, 176 ] }, { - "55261343": [ + "55261419": [ 32, 3, 224 ] }, { - "55261347": [ + "55261423": [ 8, 39, 189 ] }, { - "55261351": [ + "55261427": [ 56, 3, 224 ] }, { - "55261355": [ + "55261431": [ 8 ] }, { - "55261360": [ + "55261436": [ 39, 189, 255, @@ -13361,61 +13472,61 @@ ] }, { - "55261367": [ + "55261443": [ 44, 175, 182 ] }, { - "55261371": [ + "55261447": [ 40, 175, 181 ] }, { - "55261375": [ + "55261451": [ 36, 175, 180 ] }, { - "55261379": [ + "55261455": [ 32, 175, 179 ] }, { - "55261383": [ + "55261459": [ 28, 175, 178 ] }, { - "55261387": [ + "55261463": [ 24, 175, 177 ] }, { - "55261391": [ + "55261467": [ 20, 175, 176 ] }, { - "55261395": [ + "55261471": [ 16 ] }, { - "55261397": [ + "55261473": [ 128, 144, 37, @@ -13424,12 +13535,12 @@ ] }, { - "55261403": [ + "55261479": [ 4 ] }, { - "55261406": [ + "55261482": [ 136, 37, 60, @@ -13438,47 +13549,47 @@ ] }, { - "55261412": [ + "55261488": [ 60, 19, 128, 64, 38, 115, - 99, - 148, + 100, + 24, 60, 21, 222 ] }, { - "55261424": [ + "55261500": [ 36, 20 ] }, { - "55261427": [ + "55261503": [ 96, 142, 2 ] }, { - "55261432": [ + "55261508": [ 172, 86 ] }, { - "55261436": [ + "55261512": [ 172, 64 ] }, { - "55261439": [ + "55261515": [ 4, 142, 2, @@ -13489,13 +13600,13 @@ ] }, { - "55261448": [ + "55261524": [ 36, 7 ] }, { - "55261451": [ + "55261527": [ 32, 2, 32, @@ -13508,7 +13619,7 @@ 12, 16, 20, - 76, + 69, 2, 64, 32, @@ -13522,41 +13633,41 @@ ] }, { - "55261475": [ + "55261551": [ 4, 36, 68 ] }, { - "55261479": [ + "55261555": [ 8, 174, 68 ] }, { - "55261483": [ + "55261559": [ 4, 172, 85 ] }, { - "55261488": [ + "55261564": [ 172, 67 ] }, { - "55261491": [ + "55261567": [ 4, 38, 49 ] }, { - "55261495": [ + "55261571": [ 32, 22, 52, @@ -13567,178 +13678,178 @@ ] }, { - "55261503": [ + "55261579": [ 12, 143, 191 ] }, { - "55261507": [ + "55261583": [ 44, 143, 182 ] }, { - "55261511": [ + "55261587": [ 40, 143, 181 ] }, { - "55261515": [ + "55261591": [ 36, 143, 180 ] }, { - "55261519": [ + "55261595": [ 32, 143, 179 ] }, { - "55261523": [ + "55261599": [ 28, 143, 178 ] }, { - "55261527": [ + "55261603": [ 24, 143, 177 ] }, { - "55261531": [ + "55261607": [ 20, 143, 176 ] }, { - "55261535": [ + "55261611": [ 16, 3, 224 ] }, { - "55261539": [ + "55261615": [ 8, 39, 189 ] }, { - "55261543": [ + "55261619": [ 48, 39, 189, 255, - 168, + 152, 175, 191 ] }, { - "55261551": [ - 84, + "55261627": [ + 100, 175, 190 ] }, { - "55261555": [ - 80, + "55261631": [ + 96, 175, 183 ] }, { - "55261559": [ - 76, + "55261635": [ + 92, 175, 182 ] }, { - "55261563": [ - 72, + "55261639": [ + 88, 175, 181 ] }, { - "55261567": [ - 68, + "55261643": [ + 84, 175, 180 ] }, { - "55261571": [ - 64, + "55261647": [ + 80, 175, 179 ] }, { - "55261575": [ - 60, + "55261651": [ + 76, 175, 178 ] }, { - "55261579": [ - 56, + "55261655": [ + 72, 175, 177 ] }, { - "55261583": [ - 52, + "55261659": [ + 68, 175, 176 ] }, { - "55261587": [ - 48, + "55261663": [ + 64, 60, 3, 128, 64, 140, - 119, + 118, 100, - 80, + 236, 38, - 226 + 194 ] }, { - "55261599": [ + "55261675": [ 1 ] }, { - "55261601": [ + "55261677": [ 2, 47, 194 ] }, { - "55261605": [ + "55261681": [ 69, 16, 33, @@ -13747,78 +13858,78 @@ ] }, { - "55261611": [ + "55261687": [ 1 ] }, { - "55261613": [ + "55261689": [ 69, 16, 35, 172, 98, 100, - 80 + 236 ] }, { - "55261621": [ - 23, + "55261697": [ + 22, 160, 64, 2, - 151, + 150, 160, 33 ] }, { - "55261629": [ + "55261705": [ 20, 17 ] }, { - "55261632": [ + "55261708": [ 175, 162 ] }, { - "55261635": [ - 44, + "55261711": [ 60, - 16, + 60, + 18, 128, 64, 38, - 16, - 99, - 212, - 2, + 82, + 100, + 112, 2, - 128, + 66, + 144, 33, 142, - 2 + 66 ] }, { - "55261652": [ + "55261728": [ 174, - 2 + 66 ] }, { - "55261655": [ + "55261731": [ 4, 140, 130 ] }, { - "55261659": [ + "55261735": [ 8, 36, 67, @@ -13829,14 +13940,14 @@ ] }, { - "55261667": [ + "55261743": [ 8, 142, - 3 + 67 ] }, { - "55261672": [ + "55261748": [ 36, 69, 255, @@ -13846,7 +13957,7 @@ ] }, { - "55261679": [ + "55261755": [ 8, 60, 4, @@ -13867,27 +13978,27 @@ 140, 67, 100, - 52, + 208, 142, - 2 + 66 ] }, { - "55261703": [ + "55261779": [ 4, 36, 68 ] }, { - "55261707": [ + "55261783": [ 8, 174, - 4 + 68 ] }, { - "55261711": [ + "55261787": [ 4, 60, 4, @@ -13895,608 +14006,737 @@ ] }, { - "55261716": [ + "55261792": [ 172, 68 ] }, { - "55261720": [ + "55261796": [ 172, 67 ] }, { - "55261723": [ + "55261799": [ 4, 142, - 3 + 66 ] }, { - "55261727": [ + "55261803": [ 4, 36, - 98 + 67 ] }, { - "55261731": [ + "55261807": [ 8, 174, - 2 + 67 ] }, { - "55261735": [ + "55261811": [ + 4, + 60, + 3, + 252, + 255, + 52, + 99, + 255, + 255, + 172, + 67 + ] + }, + { + "55261824": [ + 60, + 3, + 255, + 253, + 52, + 99, + 246, + 251, + 172, + 67 + ] + }, + { + "55261835": [ + 4, + 142, + 66 + ] + }, + { + "55261839": [ + 4, + 36, + 67 + ] + }, + { + "55261843": [ + 8, + 174, + 67 + ] + }, + { + "55261847": [ + 4, + 60, + 3, + 250 + ] + }, + { + "55261852": [ + 172, + 67 + ] + }, + { + "55261856": [ + 36, + 3 + ] + }, + { + "55261859": [ + 208, + 172, + 67 + ] + }, + { + "55261863": [ 4, 60, 2, - 227 + 228, + 73, + 36, + 66, + 67, + 36, + 175, + 162 + ] + }, + { + "55261875": [ + 32, + 60, + 2 ] }, { - "55261740": [ + "55261879": [ + 6, 36, - 71, - 10, + 66, 1, - 172, - 103 + 4, + 175, + 162 ] }, { - "55261748": [ + "55261887": [ + 36, 60, - 4 + 2, + 225 ] }, { - "55261751": [ - 48, - 172, - 100 + "55261892": [ + 175, + 162 ] }, { - "55261755": [ - 4, - 142, - 4 + "55261895": [ + 40, + 175, + 160 ] }, { - "55261759": [ - 4, - 36, - 131 + "55261899": [ + 44, + 60, + 2, + 241 ] }, { - "55261763": [ - 8, - 174, - 3 + "55261904": [ + 175, + 162 ] }, { - "55261767": [ - 4, + "55261907": [ + 48, 60, - 3, - 226 + 2, + 4 ] }, { - "55261772": [ + "55261912": [ 36, - 99 + 66, + 4 ] }, { - "55261775": [ - 28, - 172, - 131 + "55261916": [ + 175, + 162 ] }, { - "55261780": [ - 172, - 128 + "55261919": [ + 52, + 39, + 162 ] }, { - "55261783": [ - 4, - 142, - 4 + "55261923": [ + 32, + 39, + 168 ] }, { - "55261787": [ + "55261927": [ + 56, + 2, + 64, + 24, + 37, + 140, + 100 + ] + }, + { + "55261935": [ 4, 36, 133 ] }, { - "55261791": [ + "55261939": [ 8, - 174, - 5 + 172, + 101 ] }, { - "55261795": [ + "55261943": [ 4, - 60, - 6, - 247 + 140, + 71 ] }, { - "55261800": [ - 172, - 134 + "55261947": [ + 4, + 140, + 70 ] }, { - "55261804": [ - 60, - 5 + "55261952": [ + 172, + 135 ] }, { - "55261807": [ - 1, + "55261955": [ + 4, 36, - 165 + 66 ] }, { - "55261811": [ - 1, + "55261959": [ + 8, + 21, + 2, + 255, + 248, 172, - 133 - ] - }, - { - "55261815": [ - 4, - 142, - 4 + 134 ] }, { - "55261819": [ - 4, - 36, - 133 + "55261968": [ + 60, + 2, + 128, + 64 ] }, { - "55261823": [ - 8, - 174, - 5 + "55261973": [ + 22, + 24, + 64 ] }, { - "55261827": [ - 4, - 60, - 5, - 246, - 73, - 36, - 165, - 67, - 12, - 172, - 133 + "55261977": [ + 118, + 24, + 33 ] }, { - "55261840": [ - 60, - 5 + "55261981": [ + 3, + 25 ] }, { - "55261843": [ - 6, + "55261984": [ 36, - 165, - 1, - 4, - 172, - 133 + 66, + 100, + 112 ] }, { - "55261851": [ - 4, - 142, - 4 + "55261989": [ + 67, + 16, + 33, + 140, + 67 ] }, { - "55261855": [ + "55261995": [ 4, 36, - 133 + 100 ] }, { - "55261859": [ + "55261999": [ 8, - 174, - 5 + 172, + 68 ] }, { - "55261863": [ + "55262003": [ 4, 60, - 8, + 4, 231 ] }, { - "55261868": [ + "55262008": [ 172, - 136 + 100 ] }, { - "55261872": [ + "55262012": [ 172, - 128 + 96 ] }, { - "55261875": [ + "55262015": [ 4, - 142, - 4 + 140, + 67 ] }, { - "55261879": [ + "55262019": [ 4, 36, - 133 + 100 ] }, { - "55261883": [ + "55262023": [ 8, - 174, - 5 + 172, + 68 ] }, { - "55261887": [ + "55262027": [ 4, + 60, + 2, + 250 + ] + }, + { + "55262032": [ 172, - 134 + 98 ] }, { - "55261892": [ + "55262036": [ 36, - 6, + 2, 255, 255, 172, - 134 + 98 ] }, { - "55261899": [ + "55262043": [ 4, - 142, - 4 + 60, + 2, + 228, + 11, + 36, + 66, + 67, + 36, + 175, + 162 ] }, { - "55261903": [ + "55262055": [ + 32, + 60, + 2 + ] + }, + { + "55262059": [ + 11, + 36, + 66, + 1, 4, + 175, + 162 + ] + }, + { + "55262067": [ 36, - 133 + 60, + 2, + 225 ] }, { - "55261907": [ - 8, - 174, - 5 + "55262072": [ + 175, + 162 ] }, { - "55261911": [ - 4, - 60, - 5, - 246, - 10, - 52, - 165, - 131, - 12, - 172, - 133 + "55262075": [ + 40, + 175, + 160 ] }, { - "55261924": [ + "55262079": [ + 44, 60, - 5 + 2, + 241 ] }, { - "55261927": [ - 10, - 52, - 165, - 129, - 4, - 172, - 133 + "55262084": [ + 175, + 162 ] }, { - "55261935": [ - 4, - 142, + "55262087": [ + 48, + 60, + 2, 4 ] }, { - "55261939": [ - 4, + "55262092": [ 36, - 133 + 66, + 4 ] }, { - "55261943": [ - 8, - 174, - 5 + "55262096": [ + 175, + 162 ] }, { - "55261947": [ - 4, - 172, - 136 + "55262099": [ + 52, + 39, + 162 ] }, { - "55261952": [ - 172, - 128 + "55262103": [ + 32, + 39, + 168 ] }, { - "55261955": [ - 4, - 142, - 4 + "55262107": [ + 56, + 60, + 3, + 128, + 64 ] }, { - "55261959": [ - 4, - 36, - 133 + "55262113": [ + 22, + 32, + 64 ] }, { - "55261963": [ - 8, - 174, - 5 + "55262117": [ + 150, + 32, + 33 ] }, { - "55261967": [ + "55262121": [ 4, - 172, - 135 + 33 ] }, { - "55261972": [ - 172, - 128 + "55262124": [ + 36, + 99, + 100, + 112 ] }, { - "55261975": [ - 4, - 142, - 4 + "55262129": [ + 100, + 24, + 33, + 140, + 100 ] }, { - "55261979": [ + "55262135": [ 4, 36, 133 ] }, { - "55261983": [ + "55262139": [ 8, - 174, - 5 + 172, + 101 ] }, { - "55261987": [ + "55262143": [ 4, - 172, - 131 + 140, + 71 ] }, { - "55261992": [ - 60, - 3 + "55262147": [ + 4, + 140, + 70 ] }, { - "55261995": [ - 80, - 36, - 99, - 66, - 64, + "55262152": [ 172, - 131 - ] - }, - { - "55262003": [ - 4, - 142, - 3 + 135 ] }, { - "55262007": [ + "55262155": [ 4, 36, - 100 + 66 ] }, { - "55262011": [ + "55262159": [ 8, - 174, - 4 + 21, + 2, + 255, + 248, + 172, + 134 ] }, { - "55262015": [ - 4, + "55262168": [ 60, - 4, - 252, - 17, - 52, - 132, - 150, - 35, - 172, - 100 + 2, + 128, + 64 ] }, { - "55262028": [ - 60, - 4, - 255, - 47, - 52, - 132, - 255, - 255, - 172, - 100 + "55262173": [ + 22, + 24, + 64 ] }, { - "55262039": [ - 4, - 142, - 3 + "55262177": [ + 118, + 24, + 33 ] }, { - "55262043": [ + "55262181": [ + 3, + 25 + ] + }, + { + "55262184": [ + 36, + 66, + 100, + 112 + ] + }, + { + "55262189": [ + 67, + 16, + 33, + 140, + 67 + ] + }, + { + "55262195": [ 4, 36, 100 ] }, { - "55262047": [ + "55262199": [ 8, - 174, - 4 + 172, + 68 ] }, { - "55262051": [ + "55262203": [ 4, - 36, - 66, - 18, - 1, - 172, - 98 + 60, + 4, + 231 ] }, { - "55262060": [ - 36, - 2, - 32 + "55262208": [ + 172, + 100 ] }, { - "55262064": [ + "55262212": [ 172, - 98 + 96 ] }, { - "55262067": [ + "55262215": [ 4, - 142, - 2 + 140, + 67 ] }, { - "55262071": [ + "55262219": [ 4, 36, - 67 + 100 ] }, { - "55262075": [ + "55262223": [ 8, - 174, - 3 + 172, + 68 ] }, { - "55262079": [ + "55262227": [ 4, 60, - 3, - 250 - ] - }, - { - "55262084": [ + 2, + 252, + 17, + 52, + 66, + 150, + 35, 172, - 67 + 98 ] }, { - "55262088": [ + "55262240": [ + 60, + 2, + 255, + 47, + 52, + 66, + 255, + 255, 172, - 70 + 98 ] }, { - "55262091": [ + "55262251": [ 4, 60, 5, @@ -14504,30 +14744,27 @@ 64, 36, 165, - 99, - 196, + 100, + 72, 148, 167 ] }, { - "55262103": [ + "55262263": [ 8 ] }, { - "55262106": [ + "55262266": [ 48, 37, 12, 16, 20, - 76, - 2 - ] - }, - { - "55262114": [ + 69, + 2, + 64, 32, 37, 60, @@ -14537,25 +14774,25 @@ 38, 115, 99, - 80, + 212, 38, - 114 + 113 ] }, { - "55262127": [ + "55262287": [ 65, 2, 96, - 136, + 128, 37, 36, 20 ] }, { - "55262135": [ - 44, + "55262295": [ + 46, 60, 21, 128, @@ -14563,92 +14800,92 @@ 38, 181, 99, - 44, + 176, 36, - 22 + 23 ] }, { - "55262147": [ + "55262307": [ 16, 36, 30 ] }, { - "55262151": [ - 66, + "55262311": [ + 68, 60, 2, 128, 64, 36, 66, - 99, - 196, + 100, + 72, 175, 162 ] }, { - "55262163": [ - 40, + "55262323": [ + 56, 146, - 34 + 2 ] }, { - "55262169": [ + "55262329": [ 85, 16, 33, - 144, + 128, 70 ] }, { - "55262176": [ + "55262336": [ 44, 194 ] }, { - "55262179": [ + "55262339": [ 3, 80, 64 ] }, { - "55262183": [ + "55262343": [ 9, 38, - 49 + 16 ] }, { - "55262187": [ + "55262347": [ 5, 175, - 182 + 183 ] }, { - "55262191": [ + "55262351": [ 24, 175, - 182 + 183 ] }, { - "55262195": [ + "55262355": [ 20, 175, 190 ] }, { - "55262199": [ + "55262359": [ 16, 2, 128, @@ -14659,28 +14896,25 @@ ] }, { - "55262207": [ - 40, + "55262367": [ + 56, 12, 16, 20, - 221, - 2 - ] - }, - { - "55262214": [ + 214, + 2, + 64, 32, 37, 38, - 49 + 16 ] }, { - "55262219": [ + "55262379": [ 5, 22, - 81, + 48, 255, 241, 38, @@ -14688,54 +14922,54 @@ ] }, { - "55262227": [ + "55262387": [ 19, 16 ] }, { - "55262230": [ + "55262390": [ 1, - 118, + 111, 60, 2, 128, 64, 146, - 34 + 2 ] }, { - "55262241": [ - 86, + "55262401": [ + 87, 16, 33, - 144, + 128, 70 ] }, { - "55262248": [ + "55262408": [ 40, 194 ] }, { - "55262251": [ + "55262411": [ 3, 84, 64 ] }, { - "55262255": [ + "55262415": [ 32, 38, - 49 + 16 ] }, { - "55262259": [ + "55262419": [ 5, 36, 198, @@ -14744,25 +14978,25 @@ ] }, { - "55262265": [ + "55262425": [ 6, 24, 64 ] }, { - "55262269": [ + "55262429": [ 102, 24, 33, 39, 194, 99, - 60 + 192 ] }, { - "55262277": [ + "55262437": [ 98, 24, 33, @@ -14771,30 +15005,30 @@ ] }, { - "55262285": [ + "55262445": [ 2, 22 ] }, { - "55262288": [ + "55262448": [ 144, 100 ] }, { - "55262291": [ + "55262451": [ 2 ] }, { - "55262293": [ + "55262453": [ 4, 34 ] }, { - "55262297": [ + "55262457": [ 68, 16, 37, @@ -14803,18 +15037,18 @@ ] }, { - "55262303": [ + "55262463": [ 1 ] }, { - "55262305": [ + "55262465": [ 3, 28 ] }, { - "55262309": [ + "55262469": [ 67, 16, 37, @@ -14823,28 +15057,28 @@ ] }, { - "55262315": [ + "55262475": [ 255, 142, 163 ] }, { - "55262319": [ + "55262479": [ 4, 36, 100 ] }, { - "55262323": [ + "55262483": [ 8, 174, 164 ] }, { - "55262327": [ + "55262487": [ 4, 60, 4, @@ -14852,54 +15086,54 @@ ] }, { - "55262332": [ + "55262492": [ 172, 100 ] }, { - "55262336": [ + "55262496": [ 172, 98 ] }, { - "55262339": [ + "55262499": [ 4, 36, 2 ] }, { - "55262343": [ + "55262503": [ 16, 175, 162 ] }, { - "55262347": [ + "55262507": [ 24, 175, 162 ] }, { - "55262351": [ + "55262511": [ 20, 36, 2 ] }, { - "55262355": [ - 66, + "55262515": [ + 68, 175, 162 ] }, { - "55262359": [ + "55262519": [ 16, 2, 128, @@ -14911,28 +15145,25 @@ 64, 36, 165, - 99, - 180, + 100, + 56, 12, 16, 20, - 221, - 2 - ] - }, - { - "55262378": [ + 214, + 2, + 64, 32, 37, 38, - 49 + 16 ] }, { - "55262383": [ + "55262543": [ 5, 22, - 50, + 48, 255, 218, 38, @@ -14940,15 +15171,15 @@ ] }, { - "55262391": [ + "55262551": [ 19, 16 ] }, { - "55262394": [ + "55262554": [ 1, - 51, + 44, 60, 20, 128, @@ -14958,10 +15189,10 @@ ] }, { - "55262403": [ - 85, + "55262563": [ + 87, 50, - 38, + 6, 255, 255, 2, @@ -14971,20 +15202,20 @@ 12, 16, 21, - 217, + 236, 2, 128, 32, 37, 38, - 49 + 16 ] }, { - "55262423": [ + "55262583": [ 19, 22, - 54, + 23, 255, 249, 38, @@ -14992,22 +15223,22 @@ ] }, { - "55262431": [ + "55262591": [ 5, 36, 7 ] }, { - "55262435": [ - 104, + "55262595": [ + 106, 36, 6 ] }, { - "55262439": [ - 25, + "55262599": [ + 27, 60, 5, 128, @@ -15015,11 +15246,11 @@ 36, 165, 100, - 72, + 228, 12, 16, 21, - 217, + 236, 2, 128, 32, @@ -15029,12 +15260,12 @@ 168, 37, 36, - 17 + 16 ] }, { - "55262463": [ - 48, + "55262623": [ + 50, 60, 30, 128, @@ -15042,15 +15273,15 @@ 39, 222, 99, - 28, + 160, 60, - 22, + 23, 128, 64, 38, - 214, + 247, 100, - 64, + 220, 60, 2, 128, @@ -15058,20 +15289,20 @@ 36, 66, 100, - 68, + 224, 175, 162 ] }, { - "55262491": [ - 40, + "55262651": [ + 56, 146, 162 ] }, { - "55262497": [ + "55262657": [ 94, 16, 33, @@ -15080,16 +15311,16 @@ ] }, { - "55262504": [ + "55262664": [ 20, 64 ] }, { - "55262507": [ + "55262667": [ 2, 2, - 192, + 224, 40, 37, 143, @@ -15097,23 +15328,26 @@ ] }, { - "55262515": [ - 40, + "55262675": [ + 56, 36, 7 ] }, { - "55262519": [ - 104, - 2, - 32, + "55262679": [ + 106, + 2 + ] + }, + { + "55262682": [ 48, 37, 12, 16, 21, - 217, + 236, 2, 128, 32, @@ -15123,21 +15357,21 @@ ] }, { - "55262535": [ + "55262695": [ 5, 38, - 49 + 16 ] }, { - "55262539": [ + "55262699": [ 19, 22, - 178, + 53, 255, 243, 50, - 49, + 16, 255, 255, 36, @@ -15145,32 +15379,29 @@ ] }, { - "55262551": [ + "55262711": [ 1, 36, 6 ] }, { - "55262555": [ + "55262715": [ 3, 60, - 17, + 16, 128, 64, 38, - 37, - 99, - 164, + 5, + 100, + 40, 12, 16, 20, - 76, - 2 - ] - }, - { - "55262570": [ + 69, + 2, + 64, 32, 37, 36, @@ -15178,62 +15409,59 @@ ] }, { - "55262575": [ + "55262735": [ 16, 175, 162 ] }, { - "55262579": [ + "55262739": [ 24, 175, 162 ] }, { - "55262583": [ + "55262743": [ 20, 36, 2 ] }, { - "55262587": [ - 123, + "55262747": [ + 125, 175, 162 ] }, { - "55262591": [ + "55262751": [ 16, 36, 7 ] }, { - "55262595": [ - 25 + "55262755": [ + 27 ] }, { - "55262598": [ + "55262758": [ 48, 37, 38, - 37, - 99, - 164, + 5, + 100, + 40, 12, 16, 20, - 221, - 2 - ] - }, - { - "55262610": [ + 214, + 2, + 64, 32, 37, 2, @@ -15241,26 +15469,26 @@ 168, 37, 36, - 18 + 17 ] }, { - "55262619": [ - 48 + "55262779": [ + 50 ] }, { - "55262622": [ - 136, + "55262782": [ + 128, 37, 60, - 22, + 23, 128, 64, 38, - 214, + 247, 99, - 80, + 212, 60, 30, 128, @@ -15272,22 +15500,22 @@ ] }, { - "55262641": [ - 17, + "55262801": [ + 16, 16, 128 ] }, { - "55262645": [ - 81, + "55262805": [ + 80, 16, 33 ] }, { - "55262649": [ - 86, + "55262809": [ + 87, 16, 33, 128, @@ -15295,28 +15523,28 @@ ] }, { - "55262655": [ + "55262815": [ 4, 4, 67 ] }, { - "55262659": [ + "55262819": [ 24, 38, - 49 + 16 ] }, { - "55262663": [ + "55262823": [ 1, 146, 162 ] }, { - "55262668": [ + "55262828": [ 3, 194, 16, @@ -15326,18 +15554,18 @@ ] }, { - "55262675": [ + "55262835": [ 188 ] }, { - "55262677": [ + "55262837": [ 2, 30 ] }, { - "55262681": [ + "55262841": [ 3, 30, 3, @@ -15346,21 +15574,21 @@ ] }, { - "55262687": [ + "55262847": [ 10, 80, 96 ] }, { - "55262691": [ + "55262851": [ 1, 36, 2 ] }, { - "55262695": [ + "55262855": [ 9, 36, 3, @@ -15368,31 +15596,31 @@ ] }, { - "55262700": [ + "55262860": [ 167, 163 ] }, { - "55262703": [ + "55262863": [ 32 ] }, { - "55262705": [ + "55262865": [ 64, 24, 37 ] }, { - "55262709": [ + "55262869": [ 2, 22 ] }, { - "55262713": [ + "55262873": [ 2, 22, 3, @@ -15401,12 +15629,12 @@ ] }, { - "55262719": [ + "55262879": [ 1 ] }, { - "55262722": [ + "55262882": [ 24, 37, 36, @@ -15414,24 +15642,24 @@ ] }, { - "55262727": [ + "55262887": [ 48, 163, 163 ] }, { - "55262731": [ + "55262891": [ 32, 36, 7 ] }, { - "55262735": [ - 123, + "55262895": [ + 125, 2, - 64, + 32, 48, 37, 39, @@ -15439,50 +15667,50 @@ ] }, { - "55262743": [ + "55262903": [ 32, 12, 16, 21, - 217, + 236, 2, 128, 32, 37, 38, - 49 + 16 ] }, { - "55262755": [ + "55262915": [ 1, 38, 181 ] }, { - "55262759": [ + "55262919": [ 5, 38, - 82 + 49 ] }, { - "55262763": [ + "55262923": [ 19, 36, 2 ] }, { - "55262767": [ + "55262927": [ 13, 22, - 34, + 2, 255, 223, 50, - 82, + 49, 255, 255, 36, @@ -15490,31 +15718,28 @@ ] }, { - "55262779": [ + "55262939": [ 1 ] }, { - "55262782": [ + "55262942": [ 48, 37, 60, - 17, + 16, 128, 64, 38, - 37, - 99, - 164, + 5, + 100, + 40, 12, 16, 20, - 76, - 2 - ] - }, - { - "55262798": [ + 69, + 2, + 64, 32, 37, 36, @@ -15522,73 +15747,70 @@ ] }, { - "55262803": [ + "55262963": [ 16, 175, 162 ] }, { - "55262807": [ + "55262967": [ 24, 175, 162 ] }, { - "55262811": [ + "55262971": [ 20, 36, 2 ] }, { - "55262815": [ - 142, + "55262975": [ + 144, 175, 162 ] }, { - "55262819": [ + "55262979": [ 16, 36, 7 ] }, { - "55262823": [ - 25 + "55262983": [ + 27 ] }, { - "55262826": [ + "55262986": [ 48, 37, 38, - 37, - 99, - 164, + 5, + 100, + 40, 12, 16, 20, - 221, - 2 - ] - }, - { - "55262838": [ + 214, + 2, + 64, 32, 37, 2, 96, - 144, + 136, 37 ] }, { - "55262846": [ - 136, + "55263006": [ + 128, 37, 60, 21, @@ -15597,13 +15819,13 @@ 38, 181, 99, - 80, + 212, 60, - 22, + 23, 128, 17, 54, - 214, + 247, 165, 208, 60, @@ -15612,26 +15834,26 @@ 64, 39, 222, - 99, - 164 + 100, + 40 ] }, { - "55262873": [ - 17, + "55263033": [ + 16, 16, 128 ] }, { - "55262877": [ - 81, + "55263037": [ + 80, 16, 33 ] }, { - "55262881": [ + "55263041": [ 85, 16, 33, @@ -15640,37 +15862,37 @@ ] }, { - "55262887": [ + "55263047": [ 4, 48, 66 ] }, { - "55262891": [ + "55263051": [ 64, 80, 64 ] }, { - "55262895": [ + "55263055": [ 22, 38, - 49 + 16 ] }, { - "55262899": [ + "55263059": [ 1, 146, - 66 + 34 ] }, { - "55262904": [ + "55263064": [ 2, - 194, + 226, 16, 33, 144, @@ -15678,55 +15900,55 @@ ] }, { - "55262911": [ + "55263071": [ 168, 48, 66 ] }, { - "55262915": [ + "55263075": [ 1, 80, 64 ] }, { - "55262919": [ + "55263079": [ 16, 38, - 49 + 16 ] }, { - "55262923": [ + "55263083": [ 1 ] }, { - "55262925": [ - 17, + "55263085": [ + 16, 56, 128 ] }, { - "55262929": [ - 241, + "55263089": [ + 240, 56, 33 ] }, { - "55262933": [ + "55263093": [ 7, 56, 128 ] }, { - "55262937": [ - 241, + "55263097": [ + 240, 56, 35, 36, @@ -15734,47 +15956,47 @@ ] }, { - "55262943": [ + "55263103": [ 16, 175, 162 ] }, { - "55262947": [ + "55263107": [ 24, 175, 162 ] }, { - "55262951": [ + "55263111": [ 20, 36, 2 ] }, { - "55262955": [ - 142, + "55263115": [ + 144, 175, 162 ] }, { - "55262959": [ + "55263119": [ 16, 36, 231 ] }, { - "55262963": [ - 44 + "55263123": [ + 46 ] }, { - "55262966": [ + "55263126": [ 48, 37, 3, @@ -15784,70 +16006,64 @@ 12, 16, 20, - 221, - 2 - ] - }, - { - "55262978": [ + 214, + 2, + 64, 32, 37, 38, - 49 + 16 ] }, { - "55262983": [ + "55263143": [ 1, 36, 2 ] }, { - "55262987": [ + "55263147": [ 13, 22, - 34, + 2, 255, 226, 38, - 82 + 49 ] }, { - "55262995": [ + "55263155": [ 5, 36, 7 ] }, { - "55262999": [ + "55263159": [ 1, 36, 6 ] }, { - "55263003": [ + "55263163": [ 2, 60, - 17, + 16, 128, 64, 38, - 37, - 99, - 164, + 5, + 100, + 40, 12, 16, 20, - 76, - 2 - ] - }, - { - "55263018": [ + 69, + 2, + 64, 32, 37, 36, @@ -15855,73 +16071,70 @@ ] }, { - "55263023": [ + "55263183": [ 16, 175, 162 ] }, { - "55263027": [ + "55263187": [ 24, 175, 162 ] }, { - "55263031": [ + "55263191": [ 20, 36, 2 ] }, { - "55263035": [ - 161, + "55263195": [ + 163, 175, 162 ] }, { - "55263039": [ + "55263199": [ 16, 36, 7 ] }, { - "55263043": [ - 25 + "55263203": [ + 27 ] }, { - "55263046": [ + "55263206": [ 48, 37, 38, - 37, - 99, - 164, + 5, + 100, + 40, 12, 16, 20, - 221, - 2 - ] - }, - { - "55263058": [ + 214, + 2, + 64, 32, 37, 2, 96, - 144, + 136, 37 ] }, { - "55263066": [ - 136, + "55263226": [ + 128, 37, 60, 21, @@ -15930,13 +16143,13 @@ 38, 181, 99, - 80, + 212, 60, - 22, + 23, 128, 17, 54, - 214, + 247, 165, 208, 60, @@ -15945,26 +16158,26 @@ 64, 39, 222, - 99, - 164 + 100, + 40 ] }, { - "55263093": [ - 17, + "55263253": [ + 16, 16, 128 ] }, { - "55263097": [ - 81, + "55263257": [ + 80, 16, 33 ] }, { - "55263101": [ + "55263261": [ 85, 16, 33, @@ -15973,37 +16186,37 @@ ] }, { - "55263107": [ + "55263267": [ 4, 48, 66 ] }, { - "55263111": [ + "55263271": [ 32, 80, 64 ] }, { - "55263115": [ + "55263275": [ 23, 38, - 49 + 16 ] }, { - "55263119": [ + "55263279": [ 1, 146, - 66 + 34 ] }, { - "55263124": [ + "55263284": [ 2, - 194, + 226, 16, 33, 144, @@ -16011,12 +16224,12 @@ ] }, { - "55263131": [ + "55263291": [ 168 ] }, { - "55263133": [ + "55263293": [ 2, 16, 130, @@ -16025,48 +16238,48 @@ ] }, { - "55263139": [ + "55263299": [ 1, 80, 64 ] }, { - "55263143": [ + "55263303": [ 16, 38, - 49 + 16 ] }, { - "55263147": [ + "55263307": [ 1 ] }, { - "55263149": [ - 17, + "55263309": [ + 16, 56, 128 ] }, { - "55263153": [ - 241, + "55263313": [ + 240, 56, 33 ] }, { - "55263157": [ + "55263317": [ 7, 56, 128 ] }, { - "55263161": [ - 241, + "55263321": [ + 240, 56, 35, 36, @@ -16074,47 +16287,47 @@ ] }, { - "55263167": [ + "55263327": [ 16, 175, 162 ] }, { - "55263171": [ + "55263331": [ 24, 175, 162 ] }, { - "55263175": [ + "55263335": [ 20, 36, 2 ] }, { - "55263179": [ - 161, + "55263339": [ + 163, 175, 162 ] }, { - "55263183": [ + "55263343": [ 16, 36, 231 ] }, { - "55263187": [ - 44 + "55263347": [ + 46 ] }, { - "55263190": [ + "55263350": [ 48, 37, 3, @@ -16124,70 +16337,64 @@ 12, 16, 20, - 221, - 2 - ] - }, - { - "55263202": [ + 214, + 2, + 64, 32, 37, 38, - 49 + 16 ] }, { - "55263207": [ + "55263367": [ 1, 36, 2 ] }, { - "55263211": [ + "55263371": [ 13, 22, - 34, + 2, 255, 225, 38, - 82 + 49 ] }, { - "55263219": [ + "55263379": [ 5, 36, 7 ] }, { - "55263223": [ + "55263383": [ 1, 36, 6 ] }, { - "55263227": [ + "55263387": [ 1, 60, - 17, + 16, 128, 64, 38, - 37, - 99, - 164, + 5, + 100, + 40, 12, 16, 20, - 76, - 2 - ] - }, - { - "55263242": [ + 69, + 2, + 64, 32, 37, 36, @@ -16195,78 +16402,75 @@ ] }, { - "55263247": [ + "55263407": [ 16, 175, 162 ] }, { - "55263251": [ + "55263411": [ 24, 175, 162 ] }, { - "55263255": [ + "55263415": [ 20, 36, 2 ] }, { - "55263259": [ - 180, + "55263419": [ + 182, 175, 162 ] }, { - "55263263": [ + "55263423": [ 16, 36, 7 ] }, { - "55263267": [ - 25 + "55263427": [ + 27 ] }, { - "55263270": [ + "55263430": [ 48, 37, 38, - 37, - 99, - 164, + 5, + 100, + 40, 12, 16, 20, - 221, - 2 - ] - }, - { - "55263282": [ + 214, + 2, + 64, 32, 37 ] }, { - "55263286": [ - 136, + "55263446": [ + 128, 37, 60, - 18, + 17, 128, 64, 38, - 82, + 49, 99, - 80, + 212, 60, 21, 128, @@ -16276,32 +16480,32 @@ 165, 208, 60, - 22, + 23, 128, 64, 38, - 214, - 99, - 164 + 247, + 100, + 40 ] }, { - "55263313": [ - 17, + "55263473": [ + 16, 16, 128 ] }, { - "55263317": [ - 81, + "55263477": [ + 80, 16, 33 ] }, { - "55263321": [ - 82, + "55263481": [ + 81, 16, 33, 144, @@ -16309,35 +16513,35 @@ ] }, { - "55263327": [ + "55263487": [ 4, 48, 66 ] }, { - "55263331": [ + "55263491": [ 16, 80, 64 ] }, { - "55263335": [ + "55263495": [ 23, 38, - 49 + 16 ] }, { - "55263339": [ + "55263499": [ 1, 146, 98 ] }, { - "55263344": [ + "55263504": [ 2, 162, 16, @@ -16347,12 +16551,12 @@ ] }, { - "55263351": [ + "55263511": [ 168 ] }, { - "55263353": [ + "55263513": [ 2, 16, 66, @@ -16361,48 +16565,48 @@ ] }, { - "55263359": [ + "55263519": [ 1, 80, 64 ] }, { - "55263363": [ + "55263523": [ 16, 38, - 49 + 16 ] }, { - "55263367": [ + "55263527": [ 1 ] }, { - "55263369": [ - 17, + "55263529": [ + 16, 56, 128 ] }, { - "55263373": [ - 241, + "55263533": [ + 240, 56, 33 ] }, { - "55263377": [ + "55263537": [ 7, 56, 128 ] }, { - "55263381": [ - 241, + "55263541": [ + 240, 56, 35, 36, @@ -16410,80 +16614,77 @@ ] }, { - "55263387": [ + "55263547": [ 16, 175, 162 ] }, { - "55263391": [ + "55263551": [ 24, 175, 162 ] }, { - "55263395": [ + "55263555": [ 20, 36, 2 ] }, { - "55263399": [ - 180, + "55263559": [ + 182, 175, 162 ] }, { - "55263403": [ + "55263563": [ 16, 36, 231 ] }, { - "55263407": [ - 44 + "55263567": [ + 46 ] }, { - "55263410": [ + "55263570": [ 48, 37, 2, - 192, + 224, 40, 37, 12, 16, 20, - 221, - 2 - ] - }, - { - "55263422": [ + 214, + 2, + 64, 32, 37, 38, - 49 + 16 ] }, { - "55263427": [ + "55263587": [ 1, 36, 2 ] }, { - "55263431": [ + "55263591": [ 13, 22, - 34, + 2, 255, 225, 38, @@ -16491,61 +16692,61 @@ ] }, { - "55263439": [ + "55263599": [ 5, 60, - 18, + 17, 128, 64, 38, - 82, - 99, - 212 + 49, + 100, + 112 ] }, { - "55263449": [ - 23, + "55263609": [ + 22, 152, 64, 2, - 119, - 136, + 118, + 128, 33 ] }, { - "55263457": [ - 17, - 137 + "55263617": [ + 16, + 129 ] }, { - "55263460": [ + "55263620": [ 2, - 81, - 136, + 48, + 128, 33, 142, - 34 + 2 ] }, { - "55263467": [ + "55263627": [ 4, 36, 67 ] }, { - "55263471": [ + "55263631": [ 8, 174, - 35 + 3 ] }, { - "55263475": [ + "55263635": [ 4, 60, 3, @@ -16553,64 +16754,19 @@ ] }, { - "55263480": [ - 172, - 67 - ] - }, - { - "55263484": [ - 172, - 64 - ] - }, - { - "55263487": [ - 4, - 142, - 34 - ] - }, - { - "55263491": [ - 4, - 36, - 67 - ] - }, - { - "55263495": [ - 8, - 174, - 35 - ] - }, - { - "55263499": [ - 4, - 60, - 3, - 227 - ] - }, - { - "55263504": [ - 36, - 99, - 18, - 1, + "55263640": [ 172, 67 ] }, { - "55263512": [ + "55263644": [ 172, 64 ] }, { - "55263515": [ + "55263647": [ 4, 2, 128, @@ -16619,34 +16775,31 @@ 12, 16, 22, - 44, - 2 - ] - }, - { - "55263526": [ + 63, + 2, + 64, 32, 37, 142, - 34 + 2 ] }, { - "55263531": [ + "55263663": [ 4, 36, 67 ] }, { - "55263535": [ + "55263667": [ 8, 174, - 35 + 3 ] }, { - "55263539": [ + "55263671": [ 4, 60, 3, @@ -16654,40 +16807,40 @@ ] }, { - "55263544": [ + "55263676": [ 172, 67 ] }, { - "55263548": [ + "55263680": [ 172, 64 ] }, { - "55263551": [ + "55263683": [ 4, 142, - 34 + 2 ] }, { - "55263555": [ + "55263687": [ 4, 36, 67 ] }, { - "55263559": [ + "55263691": [ 8, 174, - 35 + 3 ] }, { - "55263563": [ + "55263695": [ 4, 60, 3, @@ -16695,132 +16848,132 @@ ] }, { - "55263568": [ + "55263700": [ 172, 67 ] }, { - "55263572": [ + "55263704": [ 172, 64 ] }, { - "55263575": [ + "55263707": [ 4, 143, 191 ] }, { - "55263579": [ - 84, + "55263711": [ + 100, 143, 190 ] }, { - "55263583": [ - 80, + "55263715": [ + 96, 143, 183 ] }, { - "55263587": [ - 76, + "55263719": [ + 92, 143, 182 ] }, { - "55263591": [ - 72, + "55263723": [ + 88, 143, 181 ] }, { - "55263595": [ - 68, + "55263727": [ + 84, 143, 180 ] }, { - "55263599": [ - 64, + "55263731": [ + 80, 143, 179 ] }, { - "55263603": [ - 60, + "55263735": [ + 76, 143, 178 ] }, { - "55263607": [ - 56, + "55263739": [ + 72, 143, 177 ] }, { - "55263611": [ - 52, + "55263743": [ + 68, 143, 176 ] }, { - "55263615": [ - 48, + "55263747": [ + 64, 3, 224 ] }, { - "55263619": [ + "55263751": [ 8, 39, 189 ] }, { - "55263623": [ - 88, + "55263755": [ + 104, 38, 148, - 99, - 212 + 100, + 112 ] }, { - "55263629": [ - 23, + "55263761": [ + 22, 16, 64 ] }, { - "55263633": [ - 87, + "55263765": [ + 86, 16, 33 ] }, { - "55263637": [ + "55263769": [ 2, 17 ] }, { - "55263640": [ + "55263772": [ 2, 130, 16, @@ -16830,21 +16983,21 @@ ] }, { - "55263647": [ + "55263779": [ 4, 36, 100 ] }, { - "55263651": [ + "55263783": [ 8, 172, 68 ] }, { - "55263655": [ + "55263787": [ 4, 60, 4, @@ -16852,40 +17005,40 @@ ] }, { - "55263660": [ + "55263792": [ 172, 100 ] }, { - "55263664": [ + "55263796": [ 172, 96 ] }, { - "55263667": [ + "55263799": [ 4, 140, 67 ] }, { - "55263671": [ + "55263803": [ 4, 36, 100 ] }, { - "55263675": [ + "55263807": [ 8, 172, 68 ] }, { - "55263679": [ + "55263811": [ 4, 60, 2, @@ -16893,13 +17046,13 @@ ] }, { - "55263684": [ + "55263816": [ 172, 98 ] }, { - "55263688": [ + "55263820": [ 36, 2, 255, @@ -16909,21 +17062,21 @@ ] }, { - "55263695": [ + "55263827": [ 4, 143, 162 ] }, { - "55263699": [ - 44, + "55263831": [ + 60, 36, 66 ] }, { - "55263703": [ + "55263835": [ 12, 2, 130, @@ -16936,57 +17089,57 @@ 38, 181, 99, - 81, + 213, 36, - 17 + 16 ] }, { - "55263719": [ - 44, + "55263851": [ + 46, 16 ] }, { - "55263722": [ + "55263854": [ 254, - 181, + 188, 36, - 22, + 23, 1, - 35 + 37 ] }, { - "55263729": [ - 23, + "55263861": [ + 22, 24, 64 ] }, { - "55263733": [ - 119, + "55263865": [ + 118, 24, 33 ] }, { - "55263737": [ + "55263869": [ 3, 25 ] }, { - "55263740": [ + "55263872": [ 36, 66, - 99, - 212 + 100, + 112 ] }, { - "55263745": [ + "55263877": [ 67, 16, 33, @@ -16995,21 +17148,21 @@ ] }, { - "55263751": [ + "55263883": [ 4, 36, 100 ] }, { - "55263755": [ + "55263887": [ 8, 172, 68 ] }, { - "55263759": [ + "55263891": [ 4, 60, 2, @@ -17017,19 +17170,19 @@ ] }, { - "55263764": [ + "55263896": [ 172, 98 ] }, { - "55263768": [ + "55263900": [ 172, 96 ] }, { - "55263771": [ + "55263903": [ 4, 60, 5, @@ -17037,51 +17190,48 @@ 64, 36, 165, - 99, - 180, + 100, + 56, 148, 167 ] }, { - "55263783": [ + "55263915": [ 8 ] }, { - "55263786": [ + "55263918": [ 48, 37, 12, 16, 20, - 76, - 2 - ] - }, - { - "55263794": [ + 69, + 2, + 64, 32, 37, 2, 96, - 136, + 128, 37, 36, 20 ] }, { - "55263803": [ - 44, + "55263935": [ + 46, 60, - 22, + 23, 128, 64, 38, - 214, + 247, 99, - 44, + 176, 60, 30, 128, @@ -17092,39 +17242,39 @@ 64, 38, 181, - 99, - 212 + 100, + 112 ] }, { - "55263825": [ - 23, + "55263957": [ + 22, 16, 64 ] }, { - "55263829": [ - 87, + "55263961": [ + 86, 16, 33 ] }, { - "55263833": [ + "55263965": [ 2, 17 ] }, { - "55263836": [ + "55263968": [ 16 ] }, { - "55263838": [ + "55263970": [ 254, - 111, + 118, 2, 162, 168, @@ -17138,40 +17288,40 @@ ] }, { - "55263851": [ + "55263983": [ 28, 175, 178 ] }, { - "55263855": [ + "55263987": [ 24, 175, 177 ] }, { - "55263859": [ + "55263991": [ 20, 175, 176 ] }, { - "55263863": [ + "55263995": [ 16 ] }, { - "55263865": [ + "55263997": [ 128, 136, 37 ] }, { - "55263869": [ + "55264001": [ 160, 128, 37, @@ -17188,12 +17338,12 @@ ] }, { - "55263883": [ + "55264015": [ 1 ] }, { - "55263885": [ + "55264017": [ 67, 16, 33, @@ -17206,19 +17356,19 @@ ] }, { - "55263895": [ + "55264027": [ 6, 20, 98 ] }, { - "55263899": [ + "55264031": [ 21 ] }, { - "55263901": [ + "55264033": [ 192, 144, 37, @@ -17235,12 +17385,12 @@ ] }, { - "55263915": [ + "55264047": [ 1 ] }, { - "55263917": [ + "55264049": [ 67, 16, 33, @@ -17253,14 +17403,14 @@ ] }, { - "55263927": [ + "55264059": [ 15, 174, 50 ] }, { - "55263932": [ + "55264064": [ 60, 2, 128, @@ -17272,7 +17422,7 @@ ] }, { - "55263941": [ + "55264073": [ 67, 16, 33, @@ -17285,14 +17435,14 @@ ] }, { - "55263951": [ + "55264083": [ 9, 174, 50 ] }, { - "55263956": [ + "55264088": [ 60, 2, 128, @@ -17306,48 +17456,48 @@ ] }, { - "55263967": [ + "55264099": [ 20, 4, 67 ] }, { - "55263971": [ + "55264103": [ 4, 174, 50 ] }, { - "55263976": [ + "55264108": [ 12, 16, 22, - 90 + 109 ] }, { - "55263984": [ + "55264116": [ 174, 50 ] }, { - "55263988": [ + "55264120": [ 174, 48 ] }, { - "55263991": [ + "55264123": [ 4, 174, 48 ] }, { - "55263995": [ + "55264127": [ 8, 2, 18, @@ -17358,78 +17508,78 @@ ] }, { - "55264003": [ + "55264135": [ 12, 143, 191 ] }, { - "55264007": [ + "55264139": [ 28, 143, 178 ] }, { - "55264011": [ + "55264143": [ 24, 143, 177 ] }, { - "55264015": [ + "55264147": [ 20, 143, 176 ] }, { - "55264019": [ + "55264151": [ 16, 3, 224 ] }, { - "55264023": [ + "55264155": [ 8, 39, 189 ] }, { - "55264027": [ + "55264159": [ 32, 1 ] }, { - "55264031": [ + "55264163": [ 1 ] }, { - "55264033": [ + "55264165": [ 1, 1 ] }, { - "55264036": [ + "55264168": [ 1, 1 ] }, { - "55264039": [ + "55264171": [ 1, 1 ] }, { - "55264044": [ + "55264176": [ 4, 1, 7, @@ -17437,7 +17587,7 @@ ] }, { - "55264049": [ + "55264181": [ 8, 6, 2, @@ -17450,7 +17600,7 @@ ] }, { - "55264060": [ + "55264192": [ 17, 194, 45, @@ -17472,13 +17622,13 @@ ] }, { - "55264081": [ + "55264213": [ 68, 101 ] }, { - "55264084": [ + "55264216": [ 48, 1, 68, @@ -17486,7 +17636,7 @@ ] }, { - "55264089": [ + "55264221": [ 48, 2, 74, @@ -17494,7 +17644,7 @@ ] }, { - "55264094": [ + "55264226": [ 48, 3, 70, @@ -17502,7 +17652,7 @@ ] }, { - "55264099": [ + "55264231": [ 240, 4, 70, @@ -17510,7 +17660,7 @@ ] }, { - "55264104": [ + "55264236": [ 240, 5, 87, @@ -17518,7 +17668,7 @@ ] }, { - "55264109": [ + "55264241": [ 240, 7, 83, @@ -17526,7 +17676,7 @@ ] }, { - "55264114": [ + "55264246": [ 240, 6, 83, @@ -17534,7 +17684,7 @@ ] }, { - "55264119": [ + "55264251": [ 240, 8, 66, @@ -17542,7 +17692,7 @@ ] }, { - "55264124": [ + "55264256": [ 176, 9, 73, @@ -17550,7 +17700,7 @@ ] }, { - "55264129": [ + "55264261": [ 48, 11, 84, @@ -17558,7 +17708,7 @@ ] }, { - "55264134": [ + "55264266": [ 128, 12, 71, @@ -17566,7 +17716,7 @@ ] }, { - "55264139": [ + "55264271": [ 128, 13, 71, @@ -17574,22 +17724,22 @@ ] }, { - "55264144": [ + "55264276": [ 192 ] }, { - "55264153": [ + "55264285": [ 8 ] }, { - "55264155": [ + "55264287": [ 14 ] }, { - "55264157": [ + "55264289": [ 95, 3, 1, @@ -17597,38 +17747,38 @@ ] }, { - "55264169": [ + "55264301": [ 24 ] }, { - "55264171": [ + "55264303": [ 24 ] }, { - "55264173": [ + "55264305": [ 4 ] }, { - "55264175": [ + "55264307": [ 3, 4 ] }, { - "55264185": [ + "55264317": [ 16 ] }, { - "55264187": [ + "55264319": [ 16 ] }, { - "55264189": [ + "55264321": [ 6, 3, 1, @@ -17636,141 +17786,166 @@ ] }, { - "55264201": [ + "55264333": [ 16 ] }, { - "55264203": [ + "55264335": [ 16 ] }, { - "55264205": [ + "55264337": [ 3 ] }, { - "55264207": [ + "55264339": [ 3, 4 ] }, { - "55264320": [ + "55264349": [ + 132, + 96 + ] + }, + { + "55264354": [ + 180 + ] + }, + { + "55264360": [ + 1, + 160, + 32 + ] + }, + { + "55264365": [ + 3, + 149, + 192 + ] + }, + { + "55264476": [ 89 ] }, { - "55264324": [ + "55264480": [ 78 ] }, { - "55264328": [ + "55264484": [ 77, 81 ] }, { - "55264332": [ + "55264488": [ 128 ] }, { - "55264334": [ + "55264490": [ 13, 240 ] }, { - "55264409": [ + "55264565": [ 13, 176 ] }, { - "55264413": [ + "55264569": [ 13, 176 ] }, { - "55264417": [ + "55264573": [ 13, 176 ] }, { - "55264421": [ + "55264577": [ 12, 176 ] }, { - "55264425": [ + "55264581": [ 12, 176 ] }, { - "55264429": [ + "55264585": [ 12, 160 ] }, { - "55264437": [ + "55264593": [ 13, 176 ] }, { - "55264441": [ + "55264597": [ 13, 176 ] }, { - "55264465": [ + "55264621": [ 232, 172 ] }, { - "55264469": [ + "55264625": [ 232, 172 ] }, { - "55264473": [ + "55264629": [ 232, 172 ] }, { - "55264477": [ + "55264633": [ 232, 172 ] }, { - "55264517": [ + "55264673": [ 13, 119, 208 ] }, { - "55264521": [ + "55264677": [ 46, 58, 176 ] }, { - "55264525": [ + "55264681": [ 125, 12, 144, @@ -17781,20 +17956,20 @@ ] }, { - "55264533": [ + "55264689": [ 201, 110 ] }, { - "55264536": [ + "55264692": [ 2, 228, 172 ] }, { - "55264540": [ + "55264696": [ 239, 255, 255, @@ -17805,27 +17980,27 @@ ] }, { - "55264548": [ + "55264704": [ 12, 149, 224 ] }, { - "55264552": [ + "55264708": [ 14, 89, 192 ] }, { - "55264577": [ + "55264733": [ 7, 144 ] }, { - "55264580": [ + "55264736": [ 5, 206, 235, @@ -17840,21 +18015,21 @@ ] }, { - "55264592": [ + "55264748": [ 8, 236, 180 ] }, { - "55264597": [ + "55264753": [ 74, 221, 160 ] }, { - "55264601": [ + "55264757": [ 7, 151, 226, @@ -17869,32 +18044,32 @@ ] }, { - "55264613": [ + "55264769": [ 7, 144 ] }, { - "55264617": [ + "55264773": [ 7, 144 ] }, { - "55264632": [ + "55264788": [ 109, 234 ] }, { - "55264636": [ + "55264792": [ 201, 77, 96 ] }, { - "55264640": [ + "55264796": [ 201, 77, 96, @@ -17906,13 +18081,13 @@ ] }, { - "55264649": [ + "55264805": [ 140, 182 ] }, { - "55264652": [ + "55264808": [ 124, 164, 206, @@ -17924,46 +18099,46 @@ ] }, { - "55264661": [ + "55264817": [ 9, 195, 187 ] }, { - "55264665": [ + "55264821": [ 2, 206, 212 ] }, { - "55264688": [ + "55264844": [ 4, 206, 251 ] }, { - "55264692": [ + "55264848": [ 10, 213 ] }, { - "55264696": [ + "55264852": [ 8, 227 ] }, { - "55264700": [ + "55264856": [ 9, 236 ] }, { - "55264704": [ + "55264860": [ 126, 77, 176, @@ -17976,7 +18151,7 @@ ] }, { - "55264714": [ + "55264870": [ 142, 214, 126, @@ -17990,175 +18165,175 @@ ] }, { - "55264745": [ + "55264901": [ 12, 160 ] }, { - "55264749": [ + "55264905": [ 12, 160 ] }, { - "55264753": [ + "55264909": [ 12, 160 ] }, { - "55264757": [ + "55264913": [ 12, 160 ] }, { - "55264794": [ + "55264950": [ 201 ] }, { - "55264797": [ + "55264953": [ 7, 226 ] }, { - "55264801": [ + "55264957": [ 12, 176 ] }, { - "55264805": [ + "55264961": [ 14, 128 ] }, { - "55264809": [ + "55264965": [ 111, 48 ] }, { - "55264813": [ + "55264969": [ 142 ] }, { - "55264817": [ + "55264973": [ 142 ] }, { - "55264821": [ + "55264977": [ 111, 64 ] }, { - "55264825": [ + "55264981": [ 14, 128 ] }, { - "55264829": [ + "55264985": [ 12, 176 ] }, { - "55264833": [ + "55264989": [ 7, 226 ] }, { - "55264838": [ + "55264994": [ 201 ] }, { - "55264849": [ + "55265005": [ 187 ] }, { - "55264853": [ + "55265009": [ 94, 64 ] }, { - "55264857": [ + "55265013": [ 12, 160 ] }, { - "55264861": [ + "55265017": [ 10, 208 ] }, { - "55264865": [ + "55265021": [ 7, 225 ] }, { - "55264869": [ + "55265025": [ 6, 244 ] }, { - "55264873": [ + "55265029": [ 6, 244 ] }, { - "55264877": [ + "55265033": [ 7, 225 ] }, { - "55264881": [ + "55265037": [ 10, 208 ] }, { - "55264885": [ + "55265041": [ 12, 160 ] }, { - "55264889": [ + "55265045": [ 94, 64 ] }, { - "55264893": [ + "55265049": [ 187 ] }, { - "55264913": [ + "55265069": [ 10, 128 ] }, { - "55264916": [ + "55265072": [ 12, 138, 138, @@ -18178,31 +18353,31 @@ ] }, { - "55264933": [ + "55265089": [ 10, 128 ] }, { - "55264973": [ + "55265129": [ 12, 160 ] }, { - "55264977": [ + "55265133": [ 12, 160 ] }, { - "55264981": [ + "55265137": [ 12, 160 ] }, { - "55264984": [ + "55265140": [ 175, 255, 255, @@ -18210,137 +18385,137 @@ ] }, { - "55264989": [ + "55265145": [ 12, 160 ] }, { - "55264993": [ + "55265149": [ 12, 160 ] }, { - "55264997": [ + "55265153": [ 12, 160 ] }, { - "55265053": [ + "55265209": [ 13, 208 ] }, { - "55265057": [ + "55265213": [ 14, 192 ] }, { - "55265061": [ + "55265217": [ 79, 128 ] }, { - "55265065": [ + "55265221": [ 157 ] }, { - "55265101": [ + "55265257": [ 223, 251 ] }, { - "55265165": [ + "55265321": [ 14, 192 ] }, { - "55265169": [ + "55265325": [ 14, 192 ] }, { - "55265194": [ + "55265350": [ 11, 192 ] }, { - "55265198": [ + "55265354": [ 78, 96 ] }, { - "55265202": [ + "55265358": [ 188 ] }, { - "55265205": [ + "55265361": [ 3, 232 ] }, { - "55265209": [ + "55265365": [ 10, 208 ] }, { - "55265213": [ + "55265369": [ 30, 144 ] }, { - "55265217": [ + "55265373": [ 158, 32 ] }, { - "55265221": [ + "55265377": [ 218 ] }, { - "55265224": [ + "55265380": [ 7, 227 ] }, { - "55265228": [ + "55265384": [ 12, 176 ] }, { - "55265232": [ + "55265388": [ 110, 80 ] }, { - "55265248": [ + "55265404": [ 3, 206, 235 ] }, { - "55265252": [ + "55265408": [ 11, 213, 126, @@ -18375,56 +18550,56 @@ ] }, { - "55265304": [ + "55265460": [ 10, 255, 224 ] }, { - "55265309": [ + "55265465": [ 8, 224 ] }, { - "55265313": [ + "55265469": [ 8, 224 ] }, { - "55265317": [ + "55265473": [ 8, 224 ] }, { - "55265321": [ + "55265477": [ 8, 224 ] }, { - "55265325": [ + "55265481": [ 8, 224 ] }, { - "55265329": [ + "55265485": [ 8, 224 ] }, { - "55265333": [ + "55265489": [ 8, 224 ] }, { - "55265336": [ + "55265492": [ 8, 255, 255, @@ -18432,14 +18607,14 @@ ] }, { - "55265360": [ + "55265516": [ 8, 222, 234 ] }, { - "55265364": [ + "55265520": [ 12, 131, 126, @@ -18447,43 +18622,43 @@ ] }, { - "55265370": [ + "55265526": [ 12, 192 ] }, { - "55265374": [ + "55265530": [ 46, 160 ] }, { - "55265378": [ + "55265534": [ 189, 32 ] }, { - "55265381": [ + "55265537": [ 11, 212 ] }, { - "55265385": [ + "55265541": [ 189, 64 ] }, { - "55265388": [ + "55265544": [ 11, 212 ] }, { - "55265392": [ + "55265548": [ 47, 255, 255, @@ -18491,14 +18666,14 @@ ] }, { - "55265416": [ + "55265572": [ 7, 206, 234 ] }, { - "55265420": [ + "55265576": [ 12, 131, 126, @@ -18506,33 +18681,33 @@ ] }, { - "55265426": [ + "55265582": [ 12, 176 ] }, { - "55265429": [ + "55265585": [ 2, 126, 144 ] }, { - "55265433": [ + "55265589": [ 191, 251 ] }, { - "55265437": [ + "55265593": [ 2, 125, 160 ] }, { - "55265442": [ + "55265598": [ 10, 208, 92, @@ -18546,46 +18721,46 @@ ] }, { - "55265473": [ + "55265629": [ 2, 222 ] }, { - "55265477": [ + "55265633": [ 11, 222 ] }, { - "55265481": [ + "55265637": [ 125, 158 ] }, { - "55265484": [ + "55265640": [ 2, 215, 158 ] }, { - "55265488": [ + "55265644": [ 11, 176, 158 ] }, { - "55265492": [ + "55265648": [ 110, 64, 158 ] }, { - "55265496": [ + "55265652": [ 159, 255, 255, @@ -18593,17 +18768,17 @@ ] }, { - "55265502": [ + "55265658": [ 158 ] }, { - "55265506": [ + "55265662": [ 158 ] }, { - "55265528": [ + "55265684": [ 12, 255, 255, @@ -18613,33 +18788,33 @@ ] }, { - "55265536": [ + "55265692": [ 12, 160 ] }, { - "55265540": [ + "55265696": [ 12, 238, 234 ] }, { - "55265545": [ + "55265701": [ 3, 142, 144 ] }, { - "55265550": [ + "55265706": [ 11, 192 ] }, { - "55265554": [ + "55265710": [ 11, 192, 92, @@ -18652,7 +18827,7 @@ ] }, { - "55265585": [ + "55265741": [ 174, 236, 48, @@ -18665,7 +18840,7 @@ ] }, { - "55265596": [ + "55265752": [ 79, 174, 236, @@ -18693,7 +18868,7 @@ ] }, { - "55265640": [ + "55265796": [ 95, 255, 255, @@ -18701,53 +18876,53 @@ ] }, { - "55265646": [ + "55265802": [ 13, 160 ] }, { - "55265650": [ + "55265806": [ 126, 64 ] }, { - "55265654": [ + "55265810": [ 204 ] }, { - "55265657": [ + "55265813": [ 4, 232 ] }, { - "55265661": [ + "55265817": [ 10, 208 ] }, { - "55265665": [ + "55265821": [ 13, 160 ] }, { - "55265669": [ + "55265825": [ 142, 64 ] }, { - "55265673": [ + "55265829": [ 204 ] }, { - "55265696": [ + "55265852": [ 5, 206, 236, @@ -18787,14 +18962,14 @@ ] }, { - "55265752": [ + "55265908": [ 6, 222, 235 ] }, { - "55265756": [ + "55265912": [ 13, 179, 126, @@ -18818,7 +18993,7 @@ ] }, { - "55265778": [ + "55265934": [ 11, 192, 9, @@ -18831,72 +19006,72 @@ ] }, { - "55265817": [ + "55265973": [ 14, 192 ] }, { - "55265821": [ + "55265977": [ 14, 192 ] }, { - "55265837": [ + "55265993": [ 14, 192 ] }, { - "55265841": [ + "55265997": [ 14, 192 ] }, { - "55265873": [ + "55266029": [ 14, 192 ] }, { - "55265877": [ + "55266033": [ 14, 192 ] }, { - "55265893": [ + "55266049": [ 13, 208 ] }, { - "55265897": [ + "55266053": [ 14, 192 ] }, { - "55265901": [ + "55266057": [ 79, 128 ] }, { - "55265905": [ + "55266061": [ 157 ] }, { - "55265930": [ + "55266086": [ 41, 200 ] }, { - "55265933": [ + "55266089": [ 123, 237, 147, @@ -18906,27 +19081,27 @@ ] }, { - "55265940": [ + "55266096": [ 141, 218, 64 ] }, { - "55265945": [ + "55266101": [ 123, 236, 147 ] }, { - "55265950": [ + "55266106": [ 41, 200 ] }, { - "55265988": [ + "55266144": [ 175, 255, 255, @@ -18934,7 +19109,7 @@ ] }, { - "55266000": [ + "55266156": [ 175, 255, 255, @@ -18942,27 +19117,27 @@ ] }, { - "55266040": [ + "55266196": [ 172, 129 ] }, { - "55266044": [ + "55266200": [ 74, 222, 182 ] }, { - "55266049": [ + "55266205": [ 6, 173, 214 ] }, { - "55266053": [ + "55266209": [ 6, 173, 214, @@ -18972,13 +19147,13 @@ ] }, { - "55266060": [ + "55266216": [ 172, 129 ] }, { - "55266088": [ + "55266244": [ 4, 190, 236, @@ -18990,44 +19165,44 @@ ] }, { - "55266098": [ + "55266254": [ 29, 160 ] }, { - "55266101": [ + "55266257": [ 2, 205, 48 ] }, { - "55266105": [ + "55266261": [ 12, 193 ] }, { - "55266109": [ + "55266265": [ 14, 144 ] }, { - "55266117": [ + "55266273": [ 14, 144 ] }, { - "55266121": [ + "55266277": [ 14, 144 ] }, { - "55266144": [ + "55266300": [ 1, 174, 237, @@ -19041,7 +19216,7 @@ ] }, { - "55266155": [ + "55266311": [ 201, 186, 10, @@ -19056,7 +19231,7 @@ ] }, { - "55266167": [ + "55266323": [ 170, 215, 110, @@ -19071,46 +19246,46 @@ ] }, { - "55266180": [ + "55266336": [ 10, 216, 48 ] }, { - "55266185": [ + "55266341": [ 141, 238, 144 ] }, { - "55266201": [ + "55266357": [ 62, 208 ] }, { - "55266205": [ + "55266361": [ 157, 230 ] }, { - "55266209": [ + "55266365": [ 203, 203 ] }, { - "55266212": [ + "55266368": [ 3, 232, 173 ] }, { - "55266216": [ + "55266372": [ 8, 226, 111, @@ -19131,13 +19306,13 @@ ] }, { - "55266234": [ + "55266390": [ 1, 234 ] }, { - "55266256": [ + "55266412": [ 14, 255, 236, @@ -19177,7 +19352,7 @@ ] }, { - "55266313": [ + "55266469": [ 157, 237, 128, @@ -19190,31 +19365,31 @@ ] }, { - "55266324": [ + "55266480": [ 63, 144 ] }, { - "55266328": [ + "55266484": [ 95, 112 ] }, { - "55266332": [ + "55266488": [ 30, 144 ] }, { - "55266336": [ + "55266492": [ 13, 176 ] }, { - "55266340": [ + "55266496": [ 8, 233, 71, @@ -19222,21 +19397,21 @@ ] }, { - "55266345": [ + "55266501": [ 157, 237, 128 ] }, { - "55266368": [ + "55266524": [ 95, 254, 216 ] }, { - "55266372": [ + "55266528": [ 95, 101, 174, @@ -19271,7 +19446,7 @@ ] }, { - "55266424": [ + "55266580": [ 13, 255, 255, @@ -19281,19 +19456,19 @@ ] }, { - "55266432": [ + "55266588": [ 13, 176 ] }, { - "55266436": [ + "55266592": [ 13, 176 ] }, { - "55266440": [ + "55266596": [ 13, 255, 255, @@ -19303,19 +19478,19 @@ ] }, { - "55266448": [ + "55266604": [ 13, 176 ] }, { - "55266452": [ + "55266608": [ 13, 176 ] }, { - "55266456": [ + "55266612": [ 13, 255, 255, @@ -19323,7 +19498,7 @@ ] }, { - "55266480": [ + "55266636": [ 11, 255, 255, @@ -19333,19 +19508,19 @@ ] }, { - "55266488": [ + "55266644": [ 11, 208 ] }, { - "55266492": [ + "55266648": [ 11, 208 ] }, { - "55266496": [ + "55266652": [ 11, 255, 255, @@ -19355,25 +19530,25 @@ ] }, { - "55266504": [ + "55266660": [ 11, 208 ] }, { - "55266508": [ + "55266664": [ 11, 208 ] }, { - "55266512": [ + "55266668": [ 11, 208 ] }, { - "55266536": [ + "55266692": [ 1, 174, 237, @@ -19387,13 +19562,13 @@ ] }, { - "55266548": [ + "55266704": [ 143, 64 ] }, { - "55266552": [ + "55266708": [ 159, 16, 191, @@ -19417,7 +19592,7 @@ ] }, { - "55266592": [ + "55266748": [ 95, 96, 9, @@ -19457,7 +19632,7 @@ ] }, { - "55266648": [ + "55266804": [ 13, 255, 255, @@ -19465,49 +19640,49 @@ ] }, { - "55266653": [ + "55266809": [ 13, 176 ] }, { - "55266657": [ + "55266813": [ 13, 176 ] }, { - "55266661": [ + "55266817": [ 13, 176 ] }, { - "55266665": [ + "55266821": [ 13, 176 ] }, { - "55266669": [ + "55266825": [ 13, 176 ] }, { - "55266673": [ + "55266829": [ 13, 176 ] }, { - "55266677": [ + "55266833": [ 13, 176 ] }, { - "55266680": [ + "55266836": [ 13, 255, 255, @@ -19515,64 +19690,64 @@ ] }, { - "55266705": [ + "55266861": [ 207, 255, 64 ] }, { - "55266710": [ + "55266866": [ 127, 64 ] }, { - "55266714": [ + "55266870": [ 127, 64 ] }, { - "55266718": [ + "55266874": [ 127, 64 ] }, { - "55266722": [ + "55266878": [ 127, 64 ] }, { - "55266726": [ + "55266882": [ 127, 48, 117 ] }, { - "55266730": [ + "55266886": [ 158 ] }, { - "55266732": [ + "55266888": [ 141, 100, 220 ] }, { - "55266736": [ + "55266892": [ 43, 238, 197 ] }, { - "55266760": [ + "55266916": [ 95, 96, 9, @@ -19587,28 +19762,28 @@ ] }, { - "55266772": [ + "55266928": [ 95, 190, 128 ] }, { - "55266776": [ + "55266932": [ 95, 237, 176 ] }, { - "55266780": [ + "55266936": [ 95, 135, 232 ] }, { - "55266784": [ + "55266940": [ 95, 96, 174, @@ -19624,55 +19799,55 @@ ] }, { - "55266816": [ + "55266972": [ 12, 192 ] }, { - "55266820": [ + "55266976": [ 12, 192 ] }, { - "55266824": [ + "55266980": [ 12, 192 ] }, { - "55266828": [ + "55266984": [ 12, 192 ] }, { - "55266832": [ + "55266988": [ 12, 192 ] }, { - "55266836": [ + "55266992": [ 12, 192 ] }, { - "55266840": [ + "55266996": [ 12, 192 ] }, { - "55266844": [ + "55267000": [ 12, 192 ] }, { - "55266848": [ + "55267004": [ 12, 255, 255, @@ -19680,7 +19855,7 @@ ] }, { - "55266872": [ + "55267028": [ 175, 160, 12, @@ -19709,24 +19884,24 @@ ] }, { - "55266899": [ + "55267055": [ 232, 173 ] }, { - "55266903": [ + "55267059": [ 232, 173 ] }, { - "55266907": [ + "55267063": [ 232 ] }, { - "55266928": [ + "55267084": [ 95, 192, 8, @@ -19766,7 +19941,7 @@ ] }, { - "55266984": [ + "55267140": [ 4, 206, 235, @@ -19806,7 +19981,7 @@ ] }, { - "55267040": [ + "55267196": [ 13, 255, 237, @@ -19836,19 +20011,19 @@ ] }, { - "55267068": [ + "55267224": [ 13, 176 ] }, { - "55267072": [ + "55267228": [ 13, 176 ] }, { - "55267096": [ + "55267252": [ 4, 206, 235, @@ -19888,19 +20063,19 @@ ] }, { - "55267134": [ + "55267290": [ 174, 80 ] }, { - "55267138": [ + "55267294": [ 12, 128 ] }, { - "55267152": [ + "55267308": [ 95, 254, 235, @@ -19923,7 +20098,7 @@ ] }, { - "55267172": [ + "55267328": [ 95, 114, 174, @@ -19941,12 +20116,12 @@ ] }, { - "55267187": [ + "55267343": [ 219 ] }, { - "55267208": [ + "55267364": [ 6, 206, 235, @@ -19960,13 +20135,13 @@ ] }, { - "55267220": [ + "55267376": [ 14, 198 ] }, { - "55267224": [ + "55267380": [ 5, 206, 235, @@ -19974,13 +20149,13 @@ ] }, { - "55267230": [ + "55267386": [ 108, 192 ] }, { - "55267234": [ + "55267390": [ 8, 224, 12, @@ -19994,7 +20169,7 @@ ] }, { - "55267264": [ + "55267420": [ 207, 255, 255, @@ -20002,55 +20177,55 @@ ] }, { - "55267269": [ + "55267425": [ 13, 176 ] }, { - "55267273": [ + "55267429": [ 13, 176 ] }, { - "55267277": [ + "55267433": [ 13, 176 ] }, { - "55267281": [ + "55267437": [ 13, 176 ] }, { - "55267285": [ + "55267441": [ 13, 176 ] }, { - "55267289": [ + "55267445": [ 13, 176 ] }, { - "55267293": [ + "55267449": [ 13, 176 ] }, { - "55267297": [ + "55267453": [ 13, 176 ] }, { - "55267320": [ + "55267476": [ 79, 112, 9, @@ -20090,12 +20265,12 @@ ] }, { - "55267376": [ + "55267532": [ 173 ] }, { - "55267378": [ + "55267534": [ 3, 232, 111, @@ -20120,42 +20295,42 @@ ] }, { - "55267401": [ + "55267557": [ 203, 202 ] }, { - "55267405": [ + "55267561": [ 157, 230 ] }, { - "55267409": [ + "55267565": [ 62, 208 ] }, { - "55267432": [ + "55267588": [ 232 ] }, { - "55267435": [ + "55267591": [ 173, 218 ] }, { - "55267439": [ + "55267595": [ 203, 203 ] }, { - "55267443": [ + "55267599": [ 218, 172, 14, @@ -20184,7 +20359,7 @@ ] }, { - "55267488": [ + "55267644": [ 110, 112, 7, @@ -20200,25 +20375,25 @@ ] }, { - "55267501": [ + "55267657": [ 126, 231 ] }, { - "55267505": [ + "55267661": [ 62, 226 ] }, { - "55267509": [ + "55267665": [ 189, 218 ] }, { - "55267512": [ + "55267668": [ 7, 230, 126, @@ -20234,7 +20409,7 @@ ] }, { - "55267544": [ + "55267700": [ 174, 32, 5, @@ -20250,43 +20425,43 @@ ] }, { - "55267557": [ + "55267713": [ 204, 218 ] }, { - "55267561": [ + "55267717": [ 78, 210 ] }, { - "55267565": [ + "55267721": [ 13, 176 ] }, { - "55267569": [ + "55267725": [ 13, 176 ] }, { - "55267573": [ + "55267729": [ 13, 176 ] }, { - "55267577": [ + "55267733": [ 13, 176 ] }, { - "55267600": [ + "55267756": [ 14, 255, 255, @@ -20294,49 +20469,49 @@ ] }, { - "55267606": [ + "55267762": [ 11, 211 ] }, { - "55267610": [ + "55267766": [ 126, 112 ] }, { - "55267613": [ + "55267769": [ 3, 234 ] }, { - "55267617": [ + "55267773": [ 11, 209 ] }, { - "55267621": [ + "55267777": [ 142, 80 ] }, { - "55267624": [ + "55267780": [ 4, 233 ] }, { - "55267628": [ + "55267784": [ 12, 192 ] }, { - "55267632": [ + "55267788": [ 31, 255, 255, @@ -20344,227 +20519,227 @@ ] }, { - "55267649": [ + "55267805": [ 79, 252 ] }, { - "55267653": [ + "55267809": [ 79, 80 ] }, { - "55267657": [ + "55267813": [ 79, 80 ] }, { - "55267661": [ + "55267817": [ 79, 80 ] }, { - "55267665": [ + "55267821": [ 79, 80 ] }, { - "55267669": [ + "55267825": [ 79, 80 ] }, { - "55267673": [ + "55267829": [ 79, 80 ] }, { - "55267677": [ + "55267833": [ 79, 80 ] }, { - "55267681": [ + "55267837": [ 79, 80 ] }, { - "55267685": [ + "55267841": [ 79, 80 ] }, { - "55267689": [ + "55267845": [ 79, 80 ] }, { - "55267693": [ + "55267849": [ 79, 252 ] }, { - "55267712": [ + "55267868": [ 110, 80 ] }, { - "55267716": [ + "55267872": [ 12, 176 ] }, { - "55267720": [ + "55267876": [ 7, 227 ] }, { - "55267725": [ + "55267881": [ 218 ] }, { - "55267729": [ + "55267885": [ 158, 32 ] }, { - "55267733": [ + "55267889": [ 30, 144 ] }, { - "55267737": [ + "55267893": [ 10, 208 ] }, { - "55267741": [ + "55267897": [ 3, 232 ] }, { - "55267746": [ + "55267902": [ 188 ] }, { - "55267750": [ + "55267906": [ 78, 96 ] }, { - "55267754": [ + "55267910": [ 11, 192 ] }, { - "55267761": [ + "55267917": [ 223, 224 ] }, { - "55267765": [ + "55267921": [ 8, 224 ] }, { - "55267769": [ + "55267925": [ 8, 224 ] }, { - "55267773": [ + "55267929": [ 8, 224 ] }, { - "55267777": [ + "55267933": [ 8, 224 ] }, { - "55267781": [ + "55267937": [ 8, 224 ] }, { - "55267785": [ + "55267941": [ 8, 224 ] }, { - "55267789": [ + "55267945": [ 8, 224 ] }, { - "55267793": [ + "55267949": [ 8, 224 ] }, { - "55267797": [ + "55267953": [ 8, 224 ] }, { - "55267801": [ + "55267957": [ 8, 224 ] }, { - "55267805": [ + "55267961": [ 223, 224 ] }, { - "55267825": [ + "55267981": [ 94, 210 ] }, { - "55267829": [ + "55267985": [ 220, 219 ] }, { - "55267832": [ + "55267988": [ 10, 210, 94, @@ -20576,7 +20751,7 @@ ] }, { - "55267924": [ + "55268080": [ 255, 255, 255, @@ -20584,19 +20759,19 @@ ] }, { - "55267932": [ + "55268088": [ 2, 202 ] }, { - "55267937": [ + "55268093": [ 44, 144 ] }, { - "55268000": [ + "55268156": [ 5, 206, 235, @@ -20608,7 +20783,7 @@ ] }, { - "55268010": [ + "55268166": [ 11, 192, 8, @@ -20630,31 +20805,31 @@ ] }, { - "55268040": [ + "55268196": [ 13, 144 ] }, { - "55268044": [ + "55268200": [ 13, 144 ] }, { - "55268048": [ + "55268204": [ 13, 144 ] }, { - "55268052": [ + "55268208": [ 13, 144 ] }, { - "55268056": [ + "55268212": [ 13, 189, 236, @@ -20686,7 +20861,7 @@ ] }, { - "55268113": [ + "55268269": [ 141, 237, 112, @@ -20699,19 +20874,19 @@ ] }, { - "55268124": [ + "55268280": [ 13, 176 ] }, { - "55268128": [ + "55268284": [ 12, 192 ] }, { - "55268132": [ + "55268288": [ 7, 233, 54, @@ -20719,32 +20894,32 @@ ] }, { - "55268137": [ + "55268293": [ 141, 237, 112 ] }, { - "55268154": [ + "55268310": [ 11, 192 ] }, { - "55268158": [ + "55268314": [ 11, 192 ] }, { - "55268162": [ + "55268318": [ 11, 192 ] }, { - "55268166": [ + "55268322": [ 11, 192, 5, @@ -20778,7 +20953,7 @@ ] }, { - "55268224": [ + "55268380": [ 3, 190, 236, @@ -20800,7 +20975,7 @@ ] }, { - "55268244": [ + "55268400": [ 12, 197, 56, @@ -20812,32 +20987,32 @@ ] }, { - "55268265": [ + "55268421": [ 5, 222, 208 ] }, { - "55268269": [ + "55268425": [ 12, 178 ] }, { - "55268273": [ + "55268429": [ 13, 144 ] }, { - "55268277": [ + "55268433": [ 14, 128 ] }, { - "55268280": [ + "55268436": [ 13, 255, 255, @@ -20845,43 +21020,43 @@ ] }, { - "55268285": [ + "55268441": [ 14, 128 ] }, { - "55268289": [ + "55268445": [ 14, 128 ] }, { - "55268293": [ + "55268449": [ 14, 128 ] }, { - "55268297": [ + "55268453": [ 14, 128 ] }, { - "55268301": [ + "55268457": [ 14, 128 ] }, { - "55268305": [ + "55268461": [ 14, 128 ] }, { - "55268336": [ + "55268492": [ 5, 222, 220, @@ -20913,7 +21088,7 @@ ] }, { - "55268366": [ + "55268522": [ 12, 160, 9, @@ -20926,31 +21101,31 @@ ] }, { - "55268376": [ + "55268532": [ 13, 160 ] }, { - "55268380": [ + "55268536": [ 13, 160 ] }, { - "55268384": [ + "55268540": [ 13, 160 ] }, { - "55268388": [ + "55268544": [ 13, 160 ] }, { - "55268392": [ + "55268548": [ 13, 189, 237, @@ -20982,50 +21157,50 @@ ] }, { - "55268433": [ + "55268589": [ 11, 192 ] }, { - "55268448": [ + "55268604": [ 9, 255, 192 ] }, { - "55268453": [ + "55268609": [ 11, 192 ] }, { - "55268457": [ + "55268613": [ 11, 192 ] }, { - "55268461": [ + "55268617": [ 11, 192 ] }, { - "55268465": [ + "55268621": [ 11, 192 ] }, { - "55268469": [ + "55268625": [ 11, 192 ] }, { - "55268472": [ + "55268628": [ 14, 255, 255, @@ -21033,99 +21208,99 @@ ] }, { - "55268489": [ + "55268645": [ 7, 224 ] }, { - "55268504": [ + "55268660": [ 7, 255, 224 ] }, { - "55268509": [ + "55268665": [ 7, 224 ] }, { - "55268513": [ + "55268669": [ 7, 224 ] }, { - "55268517": [ + "55268673": [ 7, 224 ] }, { - "55268521": [ + "55268677": [ 7, 224 ] }, { - "55268525": [ + "55268681": [ 7, 224 ] }, { - "55268529": [ + "55268685": [ 7, 224 ] }, { - "55268533": [ + "55268689": [ 7, 224 ] }, { - "55268537": [ + "55268693": [ 27, 208 ] }, { - "55268540": [ + "55268696": [ 13, 254, 112 ] }, { - "55268544": [ + "55268700": [ 11, 192 ] }, { - "55268548": [ + "55268704": [ 11, 192 ] }, { - "55268552": [ + "55268708": [ 11, 192 ] }, { - "55268556": [ + "55268712": [ 11, 192 ] }, { - "55268560": [ + "55268716": [ 11, 192, 61, @@ -21136,21 +21311,21 @@ ] }, { - "55268568": [ + "55268724": [ 11, 221, 192 ] }, { - "55268572": [ + "55268728": [ 11, 252, 229 ] }, { - "55268576": [ + "55268732": [ 11, 208, 205, @@ -21166,75 +21341,75 @@ ] }, { - "55268600": [ + "55268756": [ 14, 255, 64 ] }, { - "55268605": [ + "55268761": [ 95, 64 ] }, { - "55268609": [ + "55268765": [ 95, 64 ] }, { - "55268613": [ + "55268769": [ 95, 64 ] }, { - "55268617": [ + "55268773": [ 95, 64 ] }, { - "55268621": [ + "55268777": [ 95, 64 ] }, { - "55268625": [ + "55268781": [ 95, 64 ] }, { - "55268629": [ + "55268785": [ 95, 64 ] }, { - "55268633": [ + "55268789": [ 79, 80 ] }, { - "55268637": [ + "55268793": [ 14, 160 ] }, { - "55268641": [ + "55268797": [ 8, 239, 176 ] }, { - "55268672": [ + "55268828": [ 141, 221, 174, @@ -21266,7 +21441,7 @@ ] }, { - "55268728": [ + "55268884": [ 13, 189, 237, @@ -21298,7 +21473,7 @@ ] }, { - "55268784": [ + "55268940": [ 4, 206, 235, @@ -21330,7 +21505,7 @@ ] }, { - "55268840": [ + "55268996": [ 13, 189, 236, @@ -21364,19 +21539,19 @@ ] }, { - "55268872": [ + "55269028": [ 13, 144 ] }, { - "55268876": [ + "55269032": [ 13, 144 ] }, { - "55268896": [ + "55269052": [ 4, 206, 220, @@ -21408,63 +21583,63 @@ ] }, { - "55268926": [ + "55269082": [ 10, 192 ] }, { - "55268930": [ + "55269086": [ 10, 192 ] }, { - "55268934": [ + "55269090": [ 10, 192 ] }, { - "55268953": [ + "55269109": [ 204, 222, 249 ] }, { - "55268957": [ + "55269113": [ 206, 131 ] }, { - "55268961": [ + "55269117": [ 203 ] }, { - "55268965": [ + "55269121": [ 202 ] }, { - "55268969": [ + "55269125": [ 202 ] }, { - "55268973": [ + "55269129": [ 202 ] }, { - "55268977": [ + "55269133": [ 202 ] }, { - "55269008": [ + "55269164": [ 4, 206, 234, @@ -21478,7 +21653,7 @@ ] }, { - "55269020": [ + "55269176": [ 3, 189, 219, @@ -21486,7 +21661,7 @@ ] }, { - "55269026": [ + "55269182": [ 77, 160, 11, @@ -21500,17 +21675,17 @@ ] }, { - "55269057": [ + "55269213": [ 142 ] }, { - "55269061": [ + "55269217": [ 142 ] }, { - "55269064": [ + "55269220": [ 111, 255, 255, @@ -21518,40 +21693,40 @@ ] }, { - "55269069": [ + "55269225": [ 142 ] }, { - "55269073": [ + "55269229": [ 142 ] }, { - "55269077": [ + "55269233": [ 142 ] }, { - "55269081": [ + "55269237": [ 142 ] }, { - "55269085": [ + "55269241": [ 110, 112 ] }, { - "55269089": [ + "55269245": [ 11, 239, 176 ] }, { - "55269120": [ + "55269276": [ 13, 160, 11, @@ -21583,7 +21758,7 @@ ] }, { - "55269176": [ + "55269332": [ 110, 48, 7, @@ -21603,36 +21778,36 @@ ] }, { - "55269193": [ + "55269349": [ 218, 203 ] }, { - "55269197": [ + "55269353": [ 157, 231 ] }, { - "55269201": [ + "55269357": [ 62, 224 ] }, { - "55269232": [ + "55269388": [ 232 ] }, { - "55269235": [ + "55269391": [ 172, 202 ] }, { - "55269239": [ + "55269395": [ 202, 172, 13, @@ -21657,7 +21832,7 @@ ] }, { - "55269288": [ + "55269444": [ 61, 160, 11, @@ -21669,25 +21844,25 @@ ] }, { - "55269297": [ + "55269453": [ 158, 231 ] }, { - "55269301": [ + "55269457": [ 46, 208 ] }, { - "55269305": [ + "55269461": [ 204, 218 ] }, { - "55269308": [ + "55269464": [ 9, 228, 110, @@ -21699,7 +21874,7 @@ ] }, { - "55269344": [ + "55269500": [ 110, 80, 5, @@ -21719,43 +21894,43 @@ ] }, { - "55269361": [ + "55269517": [ 204, 204 ] }, { - "55269365": [ + "55269521": [ 126, 231 ] }, { - "55269369": [ + "55269525": [ 13, 224 ] }, { - "55269373": [ + "55269529": [ 13, 160 ] }, { - "55269377": [ + "55269533": [ 142, 80 ] }, { - "55269380": [ + "55269536": [ 13, 234 ] }, { - "55269400": [ + "55269556": [ 11, 255, 255, @@ -21763,37 +21938,37 @@ ] }, { - "55269406": [ + "55269562": [ 94, 112 ] }, { - "55269409": [ + "55269565": [ 3, 217 ] }, { - "55269413": [ + "55269569": [ 12, 176 ] }, { - "55269417": [ + "55269573": [ 189, 32 ] }, { - "55269420": [ + "55269576": [ 9, 228 ] }, { - "55269424": [ + "55269580": [ 13, 255, 255, @@ -21801,235 +21976,235 @@ ] }, { - "55269441": [ + "55269597": [ 6, 222, 160 ] }, { - "55269445": [ + "55269601": [ 11, 211 ] }, { - "55269449": [ + "55269605": [ 12, 176 ] }, { - "55269453": [ + "55269609": [ 12, 176 ] }, { - "55269457": [ + "55269613": [ 94, 160 ] }, { - "55269460": [ + "55269616": [ 11, 253, 32 ] }, { - "55269465": [ + "55269621": [ 126, 144 ] }, { - "55269469": [ + "55269625": [ 13, 176 ] }, { - "55269473": [ + "55269629": [ 12, 176 ] }, { - "55269477": [ + "55269633": [ 12, 176 ] }, { - "55269481": [ + "55269637": [ 11, 212 ] }, { - "55269485": [ + "55269641": [ 5, 222, 160 ] }, { - "55269497": [ + "55269653": [ 12, 160 ] }, { - "55269501": [ + "55269657": [ 12, 160 ] }, { - "55269505": [ + "55269661": [ 12, 160 ] }, { - "55269509": [ + "55269665": [ 12, 160 ] }, { - "55269513": [ + "55269669": [ 12, 160 ] }, { - "55269517": [ + "55269673": [ 12, 160 ] }, { - "55269521": [ + "55269677": [ 12, 160 ] }, { - "55269525": [ + "55269681": [ 12, 160 ] }, { - "55269529": [ + "55269685": [ 12, 160 ] }, { - "55269533": [ + "55269689": [ 12, 160 ] }, { - "55269537": [ + "55269693": [ 12, 160 ] }, { - "55269541": [ + "55269697": [ 12, 160 ] }, { - "55269545": [ + "55269701": [ 12, 160 ] }, { - "55269552": [ + "55269708": [ 11, 237, 48 ] }, { - "55269557": [ + "55269713": [ 78, 144 ] }, { - "55269561": [ + "55269717": [ 13, 160 ] }, { - "55269565": [ + "55269721": [ 12, 160 ] }, { - "55269569": [ + "55269725": [ 11, 196 ] }, { - "55269573": [ + "55269729": [ 5, 239, 160 ] }, { - "55269577": [ + "55269733": [ 11, 213 ] }, { - "55269581": [ + "55269737": [ 12, 176 ] }, { - "55269585": [ + "55269741": [ 13, 160 ] }, { - "55269589": [ + "55269745": [ 13, 160 ] }, { - "55269593": [ + "55269749": [ 94, 128 ] }, { - "55269596": [ + "55269752": [ 11, 236, 32 ] }, { - "55269632": [ + "55269788": [ 93, 237, 131, From 058b1db90ff090f2a7affe65ff64a506e9d80dfd Mon Sep 17 00:00:00 2001 From: scatterclegge Date: Mon, 10 Sep 2018 19:42:51 -0230 Subject: [PATCH 462/755] added new title screen logo --- Patches.py | 5 +++++ data/title.bin | Bin 0 -> 102400 bytes 2 files changed, 5 insertions(+) create mode 100644 data/title.bin diff --git a/Patches.py b/Patches.py index 35846b81a..5246b7f7a 100644 --- a/Patches.py +++ b/Patches.py @@ -73,6 +73,11 @@ def patch_rom(world, rom): if isinstance(patch, dict): for baseaddress, values in patch.items(): rom.write_bytes(int(baseaddress), values) + + # Write Randomizer title screen logo + with open(local_path('data/title.bin'), 'rb') as stream: + titleBytes = stream.read() + rom.write_bytes(0x01795300, titleBytes) # Can always return to youth rom.write_byte(0xCB6844, 0x35) diff --git a/data/title.bin b/data/title.bin new file mode 100644 index 0000000000000000000000000000000000000000..4c566cef8c0dc6b3d2240f10ace2a8cf77d13bee GIT binary patch literal 102400 zcmeFa30zJ6+W(*CRLWS0=1D1JNMwixGa)i%o)amlP!UoojiOYN&|u1x5E7ZE%w$Z3 zM#)g^>;Jhn`#z56ocp=YIrsB>&i^@iy*~Had#`b?^gTG%Tn)iF_H_mJ1>z`$S z`C{fIA!$hFC-Hm!oagg$|Li^**K0g?e~STTN&;fe}702%;I9&0~qS^Kt@YgAfxTcy&v z=i>0NZDa6x4~RXGS!HG$^T0-?er4*9z885P=X@MfH6e@Br_W6^(C_8ZPNipPyEfgo zw^QpA*}kpC>b-mRPr>{?kOrg#HS*WU-XCS{Z!O3CaX*D)sVdYN8h&8^X_rn0q_CEHuX+v#iuIt`) zUed6k5l8wDT$QP*J}|LWOMM^An*{ZOIR0{t%yFBy^GEmDxLo785;4HsFh4(g-!Qyi zs^4isL>J5X8Qr@tINqb%f&(VTQ=>Z@TP?@Dk&p?*^#|vR?46DLH8Le)>W@xE-p4%@ z?&oPi99O4q3QSsSU@j>Aw+P&-#YwOtU95m2jU1{n2>6p(oG4}&`9rn$}{!1f! zf0VhOm*bk1y-xw+ev2tI^8Wp&%Q~CQ3fHxqxX*g-_CrQ}C#Q@UwKN3toFVo`_CD?n z@_M4@a6fOi@pU7Q{~ZHAdtXa%qzeszW)2;;c)ecV$veA^aNVzFYL%+f**-cg?Z`^Z zbAUMS(}1{6X76k4yEL-)-?8@Vd}fci5%rq+`C4~q+_sqX6$ag=Mt2>)EOpTA=>7T@ z4he2%GMuw&-^hvTsyRe3?XZ1zDbuwfkxJIlTB{z$uVXHBZ`z^g8O-K}X8*7e6rbJBrBU9#&y^H%T+&?jf zhLo0mSZrW2C&YA^ONxoz{QX)zMkjYRog0XG3m_Y)6U5Ku8v8Ac-2EfG{k*Km`~FM6 z#eQ^vuU_wIJH~iqqz{@NxX;jRR&;b^$_nr{4&vOf@mX&pcR#Zvdd*DzJ&BePO-20{ zerCaWTo-6$X=&Lq6Z7R^27_ko={#g%x~|2fgxNDg{V{I_Gyvk-m}_LNIU3_`BZoip z#!Ru8i=V}x{k$B%=K0JJ*RNd14uob79qR6HY`r*P;@Z>cR#SsgjJnO=Qc&>N1@lBT zhp5-rSaba6viCDfBHow>?xAozWv)cx_gr7_d}dCxJb%XHRXRdEerjB7>=6%RizU%r zMlRcDJY+$de&1=RIbyixm<(A!no#3&j{jWlICe67B8HeL=7{S6j-y|xBEh#~$R5ZA6;6KF#Q5HrQk#aPS@f8HKqE}2DMhvTR|)E}A_8hX^n)OJ~H z_wlRJdQR|7HSFuObyL7@e$Fu->Iw1o*)Q2+Me$seOEymb@3YC*ocqM=U+iVmK%=3d5Z4W6kRik@vY1gGJ22tx+p-mAeLN%kP7mETbJNBBrh^vk z9BUu20rO@d$H4bNBXj>b=YX#_Uw8IA_8|5y=8l%)u(FWw8^JKTMoce+8J zSy5-sTyVoY-fmZjy_4fL`!3%HjqLsBoC8tJ6|u)G7(teheZk#FbN$yQtQ>0Ry-`1!>B*U_Anp|7{(M3=7X&RSST=k@I$ddbdqTb@PV&1cNIuRmm{w;<_4?)}Jj z@5+N6C#(owvpP7^YT&e88tV2(O-$U+oA=t3r)eM)t**h)M?4h zPWsL#yLX$s4f|LIaURLFizx4F^uGW595Qb|i@i^j_i??Uv(|TeUmf+Slk~Nmy!EtZ zZtr0lklCl_wmdtVV>kO)#ND;*xBH%zb@Dy?@h2YIkIj5)W3%n~P}^OFUAioK+_l?^ z`z9uCcMbIx-!(B>`M|8Je_>yX@K?H8PA}Ef#@y@Je)Oq@^H)b>KOCE_A+9@kzg%}P ze~r1{|4jx(%<=X8S$xeo_VV@T98Bxpy=N9PoPr#>7?H$r<$Bf@q(Z_Pb z3zN=E^SX6$NP7Ri(hK`=fVii_^#}K{x&Gzj;p1%d!TJ@IT5Ugm|CfP-BkBeW4yf`*aqdV%Ro$dTX zIXQVDSf69?D2N%7`gh-l=vCLr3hcgAac0(aW<6D(ceB{ho0rm$L?X^Y@J$zGlmc6$u^*2^W}WJ}$0@ z`8e2*`QG90^XqqPeE;uvPWU>p*fW0iJoYw@ZOo1x+&OFb61n0zz^9!mzewvEU zhCv(y4Is|{m_3fmqBzYwa8H__&#FVrq$y+r&4*%Ri zeZfVUy2(=`zKkAssCML-r0O9fM_BQtFX4T9$1c}(FRp;cL- zvBw_b{RbdiOGOf2>5ABwJBLj_4X_HUa+rLw+;Qru_ajFhE3xXA_-6Q!jqf_6kKT@$g_eckqBYs1q|ZP|JDMBw)0sS!I*M&Ey0#5KjNAItN4?3uhB-X6zr zu3dQh%pkMT8RBg(gZIVyZ+(0gub)C?^leBD6`0geWme^rw^TZAa>}czGcP}LoR<06 z-ah-W?cnq$L+o}w8#W^Knbn}k2Lt+Vyky>IWBSOE{sH)V2Q#n@OGp#qeew6=?bcn@~|z;}Vf@Fks25utczTY{mMxe8k=Y|HuQ6qW0w9 z3*VJ{Wpn(g6C0urCq*Tn4ygM0*#+xyJ*{y5b0?2WoeUS<8arn1qh1yP zPx@QM-RWw!=9Iqv!tJ@a_m*Kj?hA4r$ot|L%-@s0b0d5IyXQc}9s2>tCB8Ns8~Hkk z>I=@FcudJ$%h*^nln4Irn2fREJEVp_SFN1l||DHazzv-rt8x zp$drEdv)nv)$Qrd8&7ARIF~wmMnwFWF>ANYnh_O0-6<$FARy(G{e%nG`&;dJXl@bu zz^r?~B@Ok-dnZj?GB49!yeV~0O3&WB zbWLRP67MZp@V#s9{@b5~#KxAy?mJoO7nb@dYERzhl0!}XQbwTrPmW?>-2{Xotoc{&)HapXL$U$OaZT6tyl6}*25F?Z!qQFSfd z_1=3K+Jc7 z*kAdc;`^(y4*uWa?^nO$T!{UE>w=$S?I678`e8|A!lCu>ytpOaVTZw99(?Z}^1aud z0f}X6LQ-nhhNXR7A9bK^d-~P-gLxn7(sGKvreqb?#2+dsV=vs2bnY(dlCxkiHD=Gb z@S;-TbBfv6_Bd!b#NIj`-nV*XIK`vp$iaKAJJ|b}J)S-~eWU8!#91qMK70Pg7w_jl zW1&%yBjj@7!lRI>({AqX-)~QTKg)yyv#xW~p+0S$wuqo=ZB-Iip;+KAm??xeF<=rv3q zqsQ_V`CbLs`{Wa{=j*zNjQWjR4+#Qej|n!%XVL!L=XAY@DEBc5PT#F-IC8nVKI44J z*WK_!0;z{ zK)vmVuybdxEyObH>ADc-7%~v&yp8<*&)k1Mb0>-O{3~~y2N^=<&`@Y9xN|*}mABE= zH+lzZ+e~nG5xS4K`x<%Q2gKZu-a)&*_=N7MTNjbu@SVM*6q=Y#VY_nZ=+#1c@`>mk zr~!w9+{X=q?Au@Ah2`J&oq1D>cw8C1_i{<-&a=IwEt_DN>8k-z^L<~WZ0%AF|Aiu{giPUendmn}3IeLRSa4hw?fj?Bft~J>E*zejw97j2q zB;iXEqS$?9S&d-Cm2@A_m-Xj(29kiohH2xu;;S7_aaly)7E_#X?wiSLA@aMJLYcj&a^B)zs-qJsAW^Z-6`;PeX(cAlT{lx z6h-ekR0j5Hmiuk};;~^z9oTE|3EeBO9^p@_?QO^>G>x_-ohD{4ChZc%9k@n`M{d!> zR|vd6{xOGj5W+FN#~WwQqvR8ERB+(JJH+HK4XI~}>Jl>_euWo)NjrJ#OX`U$Uyu)e zg9m;Cli$L3UHEk1)VfChb3t%|t>=AZCmEHJT8|UXG>wU0XoxiCkZFfw+#c zxqtt;?S%2J9Cy1xyiQAq>n=WDeEv9QH0qC^0}*pP6?q-U5vp3Z!FW0^L5c|3+#I+QQzdL`%bq4z+*Yxa*8W7J{fcShhdfy*s zPIP~YnB#j_6l2-zI1cf-RfF`Pu24USyI%qEyBKY=M{1l%spJRa`S6U zKfwR0*SH6N-m)z4Tln(L_0cOM1bf}W1nzd>G}SngrWkLf$(^>-u(lIuR`+RicEesu zP0pp%@H9HSEsgSHvgz%yn?#o$&~?23c=`rjKcvqEMRaNVBRU&$pAJU8p?y)Mw0cYw z1x}Bmf|UD$^Qn&nCu8#kdlD}S4uob2GBzI*Wcg$?obXBik`|a*d1&LIS8?H)*CTdc zJaQ`k>9#keRX+GW^PzFjAc*q`=8W$*&TW}L=8>oEA@)R$1AJdHdmJAcz3-oAk7KOt zk8{bfhtDy;qijR}B<)9>{R?+1H-A{{xw#tbefDzQ z@a` z7g`Ia@`w9wfHtDa4*a2Dbb3O5C=?Y%7!>}~G+cns>S)-OPoy^H!==&gh48{_c&>aR zA~|o@{!;~^_n(${SJ!-9fbTgGVt?-g@qNc$rwQ@B$mgaN#PM0g9^bc(-uI93$G*q+ zEXNH#k9;rlz0J9fDbyDl3OPaxbMkI@V@%X$m(^hj;O+qU%0Z014zGJ8^t+Y8A26-P zXP=$DL%%Iu9bO+X!>!?JXG=kOn_hxibt`JnvccAISv8O{b^^`@_Q;@MrCp~ZqA$cA znMF@rc|SaX2*Rj@C_Ir!h4vA-ogwnOMHKjqXj?h-hA6p+Xg_qRn&@H)(alnH_G*Y8 zV_Jsk&w3*KtfBPa*>90zt!p+-_xi9U>HJINg#}O^bQByW@5;OtasOGV-&{+vM-aoUl*vl>MGx|GdmU z@|ur@+2idfLL5u@yz;$15E>25sHm)VJ#hT|I*f;k1XH`6y+V$HuUy2|TZ>i(KUugk zxM-nAa2Z}#&tAIj^PFY=-{!imub=O}v0>rLKtXEn5rX^Lz3E-6?o_Q}PG8#gAwl~A z$fO1%vJF8tH4+>;pn{x&za%;vT|+R~A0BA42EGMvn-GmipNPLYbpTH^P7Ti{jhILGZHrk^Lxar-uTu6zCDc`F(w&2bm>9W+(YM{^Lt`{;3po>bDx zj4ImnqFPl8YG~gd-^A*>2kIb|)Q7zoA>4I=5B8i34|KsD;PE})3O(>A2A7{ET788m z0HAFtBHHnZXm33c@T6?$Jai4Z3*Cnbp%>7r@6)Hd&XBKI3&E@rQ*oSbb@(1%!jtnp z!TTz}U@6#pdE)%_2U~aVxrX;=@&0gF(z#^t7?FSb#acYuV^74*B8<(wFy-^62DO5e zA!d>9=f5Ssj;y8-^UC)=i@k+E9O7Jr_sz%g^L~HtH6If*&fkH#=I!^s zdH3=7{m0HNTN4-;xWqd&5ngu~+?|8h-I(FL<`J&fE5}(&-eFn^eS*GBn(JOC;%>@( z4}s<2X@ZumElF0c2Tg0!Q^?=*=B8BCvKzf?-Ge@=^ro+E`;tIy09Cf{M;jG1$-Nn* zq)i^pb;+ZJ0j+G+i9FkwkXPGoo{85 za}urV?L_{4XHv4Q3q9I=o#;5e4YPO-%7ZTam|jA&MYk_4Y|@G>t(^p8COZrGenEex z4)yRC#NJQvzbdf!J|HHu2z|q+p@}(np-W)#B&MlQOxlT?>s}R?J6C?Jb-BFdJ;c|Hd2Rkf9LL*09MhR)URM2w__b(Vp2y4lygswaJThCqawxja z>`%N5v&4Sg78318v@f3WXFQLOO$p*7zRvH zDvc9sL)r@M$xKz9x~r&@xrQED>UJgrMK#hDQy@JtMN$=OCsZfA?jWX0L%a2*{;HZZ zNZW{PbWCV~jv2)%=~L~*5afha$O-F+_B9ag!s~Q=yZz8%SmX3?S|O%P&6*eyAETOv zHQ9}sCs^VgC5X+q*|0tRW*x@4qDPqf8NT-s%vFRW=9EG&!RSNiT1dj_Q;5_1wx^$u zc=$&6H;mW^#zD5wK&T&N`HTAEeILji>JD{=^dL=$dF5+t1a*VhQ+ZilhqohIw>Mt% zJYK&G#LMeK%ne^dW|{qpS>tQV{=(w-{CO*gmotNVG4W@@G7c?btIPIdyx0f`xPD(BabfOApdk>m)dT7dF$Xr#7-%xY z%kny+b!YwfY#OGMAl}9ZXb{9qGtbNmbI86Wil59Ldkp(4bIxorE2AOa&UA>k&HI`O zO@-_s-Y#=L9C3CFypGwch3_>$f*-2KXXTi84a>M2BjIEr+s(HHvRdW&=s%FL2SIyY= zjU2*0)A*2T8XNS!ZbrzZS#pr;&b#$tftAhOdgHsR7Y6bwdPA@sFS(?vXUv zFM{k`!)cPw7IIu2M7B%TlB2g9P4Jwxxl`}4<;5lJnatfN3f(oGtmnGY;JJQeJtvSR zxNV_9v%+covM?I6cndjsgwPcH{oe`B8^~j$PyP1YE56=)wCG#uduE1NWL}IRzMjk* zdkeG2`6$O!V?4whMDtfoCWpmKY0zX}OasYbQ79CK_aV?myk2?N&T--CtSm>YGZ$TA534=Io(`VoEdv@q4eyc&ePAfe{C%u7Za71VqFTk1LMNkw<3 zn-!hMUnEn<95Nn%s@}-{)K`=7r)oRfpRUlhIaSeVM0T;J)v;28p&4)W?GoM?*aeSm zsqSVdCg}wJ*oQ`44~m>}-hP(r#SXnT-O=hBpVzi)#!byW$MQS$Jb6dQGW)i6-;*~r z%uhVg?tAo6$DRkP)Xh^1TN@`{SJH_(+tYgey^!eTpGr#E8|@%7NDJb8QWrR?+e}+W0@!{%ee!`d6CEc-jw;{Sk3o{8pIy%lyy2TXzzZ% zqlb=dc#v};^uvw2+dtnZh^t?*+EdU*)s_?#Erebt@;m0EeMj6?RtlKIYi7;?r*Z5S{I%XdT*hjTsNYrcTYW;LKjuOnl}&tx#R zigZW4^HtV)*xc#yPja*V2>dxUuF@V(OQGty<$&Zo+>zqv=c{exubc8`;! z+dfW|YWr}9lxjh&l*+AbQYu%rO0~&NH|>{|AlW)ST%zUnxGsJDi*Masi0v`coX6=v zsu0Iy4an^BuDzpIw$*c8AkjR+OQQJ!ABpA{)<`tJwOXS2{Z$gp?|Dl!zvd;OoYk|5 zOq};}H(#vd3AT=cv5KGl4>6ZLP=I-#Fz+R%oP+2=%+w$CKVFu3Z3l54GU@oK*o}z6 zhcYt#3yz=K^zOpt@Xuhd-gC_=fv(|HQfOxRU#|b$q$Ik+`@ZvMY+^&(lQxo@?^^0%;qX`6u+Y$?LNNDcwHUo!BSuA- z7J7-%C?mDsmP_h29n7r36%0V;6oL^_5wx#$7jOuUrojKuH+(+aU+8cHM-(i&P7(p>*tPcfMy5Al|-Pb(R|L65T-?7c(3>BGwwT|OZ1c#HhwNxFho ze#<5j`@!DkTeog4#`)%4Z{QD&ex7w^QKYItaEN%Tj9pUg^7l!%f082I?(Ht=cJFse zxBU<=rTQ*TO7(59Wb0Qk;5}Nh&4Vb(Hn+niTVLKR(K6dlTzQYPn8N0JS*O^y>>>6P zu20xsm_Ji!NdB(9i&nJN+p<_(`LHK=1AB#FuNW!;f6u|+^+8SK4)iuL#f?bZXW1^w z|1hn``v&$x)E-~K;Cp;_8J{895!O;-nEny5|4BeiA-+d&(P;eD8^`^2r~0I49A0

cgE1R_*K6#!Jl*Ny{u{C0!sezQA1QZ!5AS={TSESViHS*aad9zj z7-5akA5%W>tbUMVVb+;dVXFE&qvW;DA5=Dc0`Ged@B0Yvs{w!2Qze>xP!wzOcA~iA zi?tFhpGHcyc>?|(Zjo$#J4CWo?xH3N8FN+Cx7^CghG7eRkbQ-Hkon`fw?E|c`u5!o zZf$kbqq>b^{$7E-aoQr~>Sj;IkW; zhnrn^{2WXF2z$JYh(B4pZVeejqn^Jk@Y=P{CuQG(wbu?FTmSad+2Bu?Z$#Jc&kO~B zlQBkW_+MSeg)3Ikk+TW3YTb(8K5r>$BJ{pIwJsDQrAkx5UQbygYO7>Lin8V;BRv=# zkEEGP{AjsfIC=Q`(6l-0se?u!85pOKY4;-t`av44E>O`SU)$zOp9%kz!RAHaRDL(^quA z@C9j(eqE+w@&0wouGQ#y)*|lKfW7yKyN?iePXz@9MdMp6flxFF{YVp2W}`F2waB7p zsYfDS4|dNwpk%S8M!6LV%`teyv!iS$DR<^&Z{Wz^X@0UC-Q&rR|Wn)fxSvk3FVjI z?;`lyi5kQQ%ksT337m2N?>ge`L+CzU=i)Qm&wX$BA?| z)sJe$)CKiz`_+TJ&kgPRRRlHDEHX1OEd+m0NMqEC^0xg-z+M&Ds|9;CVDH^^MT2`f z;xb2;FBks*Yi8hE^o6vcHW1(c%wcb63SD`!9yRuX{Yv_`;eEyMzK`&}8svRtQzV+b z1b=tnp%)LjtvbI^qE&vlRGYh@lC7U@mTdJL{5|lMXmP=zNz*<4Q>Ocu6_-rMHU~n? zw?4$R$tY+Aov7J)VvOe{c;8Ei`TGq1K7zluDSj*<}8BJ!OdRk3lt`Dil#9?zFYVYQIXqfZ|YQ$`OXzGN8Nx0KmRkGN+B%_$wFFZ3B9L}Hxvy@t|;i=(GizE z0RQvH(c_?nJwNsgKKDvcTZrSZJw185ibk#9dt9a4HF#eUyswJAZ@ZLA>0}AThv1I` z!r_m_r5XFW4m`3$x?SE6?|T^}+3IDWWXpTt>9m!Y%#K|_n?0~B`<(@33gLzm#$^vm zuTDzrHYy*>z5;vIh`nFHUM=(<{N3x(MCQmSYa3h;a)Lw*YvDB?H|K2ZTO4!$8TOdP zCXf`=4AOusp}DCCgTi<1TXSlAqUV#)NY{!Jrvty{=7%+y^_oW7dJ{2D^gDk&&4EVG*yt&F5)U~ie1C%Hm; zox(|7YX`Qw8~h!h!#2+WPybtlx zWCC1!EImgK$F)t-Ncdi_Sweo8rIBE7guDuko#sqqr!J;()0WVLnXWWq!b14?09w-w zRv?2I4BnVwp^UIi!*LYd!iajvw8wHo$)fK>x_vK>E?$kKZ<4n4Rye}?+sSC$UFoXS}3H0{c8cM6$gV=iw z{1t(}8hGC~u*VEmfWIeJO=M3Y2IFK4gAuQ%3AKdyc;z4&h&lRa#r#P^ygg>x9CA96 zwJj)V@0w$K(tRJG4lYAK`pel1p$%3xGX+|@6X0|Ggq-#2J(NzL+e|S#H_|enK(ZM% z2fe{jG|^!J&2n<41s

RcBZKV>?Nn>>|fIj^J@{xP)F)0ZdFoxGu_LGyRT96R>1qpQS-i>B%yd2{H0;JEzmk>({+o{ zi3b&RPJ_Msfs(D>fWP96s7*FVw7k$wOe$&9awO^B>zyH(4u@vZ^_qYut1=IQy*ps9 z6siS(bztu+*sJ!CP<}B*T;T%v+i~~SE!^0`+*BV^_B`f}V<+?T&$7qs@%j=F*TC%m zX3)el=lA#{1|Lk`=W}=8e!q8zk8k*V@=Q?ujM<9?nmP{Ds*R11zZNZe()u75@`s!~ z*U;MV6#Q-|i`>?Q!t?xT@=PZh>*zqk$BdvMBkUksJY%z`g~;!w%vw!t+HQisY$i4J zC|Wvw9>z)ap#ul!;(10Ine{$TeXVZOprKD`#Q1V@aQa3wor(4=y!@R%^c+cjFvTkB z2HhMX2GrTFo%1?Eo| z=@5?r<8e6J!@%_ric~^FQMevu5b=N~~kVo0x%#a(cyX}vXX?q>) zy@dCbg1KqIgd2ZZHiGNjO z2>U72wfki1&~Xy!88}eqF1GN)h1iB4wN~9gD(wPka1RfR*JE2ZhNja>?+7w6J3&4B z2X%a~kPTPV=XifjtirSk0#TcKzrn#xaaTeG|dnHxaiuypS~QXlHZeZivT& zY==^B%R$0tdL7#Lp)QE66Q^tehHtFqk4xw{(?g zPOVj}$Z6Irir>A4GP8o{=Dj#U{`IK(i<8HEeJs|#x=_*R-F%tWFW`RF2i%d-*fPXzKbySHh{f)uvZI}u8>f^)1!&>0ra6oIV<~9JBa<7 zWzybbX!In&kp@EqiMFQw^-v zp%1xv&qX|Sq3m1FC?++BRtKynw^g3xIDG-?-C5LBeja*#ix9V$l2UVbYTjZc`Y)^D zqkf2Q0rc)LEd4WXt9nE1elRqZJXZxH4rf!(z8A@I&~35?gZblQsDAijs=>G!JY%34 z;>yC_%B$fENuW1WIG*qk`hNq(Dl$jo42+SRo4;Kn)lZwnagMj1YfYs|==PE1c;@K`h;V5HC1$A+$d2kpI_1!AolH ziM1<#tYBE=DXaPv{#QUbm+w*=%g0ZZO^d)@1=y=O+f=(6>=kFrY2MHQe}BjSIR5Yr zXaEhN%lF-Az|x&ZTbbm8J?=HL_m!d7T!_BkdGHs9<#5xI6NKcIT&pI#MIKVt&jNoB zz#rIa`N3bJ#Va=n?A}EB1p3gt?o5d5;EoX23tTt+S^RN4Zw~1}HqV~lSsJ_3dk6TtfL`EB#Ng`v znf~9l#;z9hMlRmGr4>m?{$-rN*oot5#ym%wy=V??jEtec$j#*90lr#K$M}Tl;BO9| z3(qITX3o@1c^Sr8OmaNsXc!(S#a!XXT&hmR)E*a>mewI?%} zN6YMv!~0fHt;Hnz(7GqBmR6Ec8F=#sIx)%-cd`-TnVFC|_Eglf^cmx`gXKGtp{yF|=#QXl1@V-BBSvuO z_{N5#hr_;pTDhktdyP-o)#f@ywpl-|DH^`cmDj0&@6~|4 z>Qi!>#V6!6{y2Y6Ub|7Bg**4)c?sg~E3j7%_R7#}E}S9J>>T)u#Yy7Wi!UIoW#-kz zrUjO3+Z+OWci?@+@V+weSG-oDMS;GU)QP!MrZTfZLR~1^@iFoa$6kKkR_Y|KSUX9& zImcb*uL10R1$&iH;YjhOXORQOpbw1b1D4LP|1bdn|Z7jLKDtj`A)}rT&9b z;DcF|k7r}wMl2GJA$*FltWM}@^H_ox!xvDE@d!d4N~e{L(Cd>WSIfWd_etS*oxS^B zr9qZgsZXz5(lFKjcpkO5AjmIOhuU57(C;U!@0-CCkW$Siy{a!rfU5TWl z*?|qm4u#cyI#m3rV9|~;i_SW)uB=`C;Hp^L>ocU9=XEnN$)$qF`P8!a-3QH#U&8mw zPdC-7f$vp=z2c*?>c5x&{p^23>G5lKvY5X!ML{zk-uDV|w;b%1MM$<5@wW{p$Q44u zD|~+JBsh3xt-xqZYNTwt>+rreV6S|gM2mOe?}=p-+1%mQHmO*4yHKfb(r(V%dI9V` zh04Z=%YR;=*j~sV*kk^_fxVCJ63VX;zw^Og68g|6?u38CrxT_eD>-KV8T_$_vX{by zgx<;?JM-Ytt)cM1EaZWYcJ5hSo|5MK1><5GGEZz2WSt434dX z5E?&u3`HkK&_J8z=o31UjO>&j400Tvi#WUxaoB}M_ZmlZ2Pte3^M|iegOs9P8M|f% zH6cz#`_KwcKU!&t)8^n#MLJf(F0%M~ovie4;@rh2z+!ZEGyF|K-;xB~h0mZJKt zVzkKeFY#BeQxbLSeunz?I72YsqCw~9Udd=C5thx zI_h-ldsr3N-m_CpH9wq`)2ulzr|}W&6=%wJys6zpIt}@s55CygA74-fQw0cL{_mn zr=ByDcFSvAj+Sck8thd>fImEEE1dq_|Cm3nNqIX%AxFx)xr$62l6N-Kz6|es1@_9p zUYVanicJlK zR|Ecv5x;N1KU0wd`e1!rG+~dDkDKoqT);mi21{Z)d=A<}J)tQFj%?kuEzv6zdEmW- z-K*ZC7Ws^EF%9X5*9lIX*-YmzMbhP)u@s*ah#Juz{8>Xis7G&%jSpB&QqtqlC!7Ee zoJ6v+Q-8$a*;t0-Fs%GMurI>l7h~5SfPV!Tti@OQhSZ_~400?Mwj<2w{mkX`!F)W% za2e4bFrz^vz&^H+!D#q_pSp53{9;1yh0~8?Fo@})`(vg#!24{BZkPS4R z9=%vWT^$n>m9#Iy`(FOwuLAtN9WSnMPh3pwd`WTfaVq+Bf?}WMZEUW6AN;*V-BAI5 zs~IiZqIPEsea`zh_I?95}yDpfo+q zl%+?<<>^tD5`735grjjI^wNam2zeY=zJfkI>pX%UVLTz8anV(bEwpJOPfLs>sU%p8 zK1O4#)_O4touY}}@ea~4*hhMJzGAAMLMD32=s9jh4HZcnJ2=rN@WDe&5$k}N~D~O9fF$Vf^XHnN2_rhZ>CB$zhP<8oJza2iin; zAH`Gi?k97bY8SxwO2A$<*sBJ6#rwbWC+a_oe1y+8#~r?wZ6IT41ZC!~q^^^b4=Nj6 zf%m-zdlg`>4A0oWpQ4DrC0KS8gd_&zXg*ZBQjckI8Ld0#g1zVPzH+cvg=cZ^W{E34 z1+zDBj2CK8-Ou|NeCZb0dj|GO7E3fM!@P1+F{#RoHl3@%UM=*6`GfbBfxpKCn#i6+ z4HAa^%!Vu>PLlr28ie`dc+U4ApMz0P3-5Ss-Ql?h3|<3+Z;=bufWi7b8EXamGdH3a z8%(Fph0*!^X!KO(p^lvj_H3b{Bq=$9B&9|R8I+cGKpdWkILx`=cLr6OJCH%!5v112 zkvgl5LQI}Trt0HJtGzRI)pR7?j>}0;!-KRtx`VytRNTv+E@KQAk0Zo$R3VGZA$q)o z=c^PY*MazVAlv2?^yNkZ!IYuSMl0Ba+shro>q|0ucrwtIt z!9~zYI(;del+6xbmDjy>L{|OnVX${VrbBfG_)C*fy9NJCNBs50vLgQ4;x%7KPJX$s z(FGbqdAGgEbYjZRrX8<>y*FU50^5AOqi zN)^i`l%9_eZ+Z?Mxg9l#Gxo*2>q3844Z{A(c_i1sXoLu#Q4axs%cFO!Oxzmpc@Yf0 zirwi|ja;xUIn`IN@1Q^JKN5hPd^2T(!D%zyF$R_W&lY3*>_}eHhGZm%gTFEGz_EzK z4v52?3;v}Zkr&p)^MtXunbH!}#LH0=uRveM6Ls@y^gVnjs*g9-4xdM;B`FW%2ze|a z`nkgKgv=s);sJRr>LMmB{B6?D^{$MpHQ3vZXDcx{wkXo<7)^Q|BS{y}TiU1wq4%?q zyqk@s5;+|q!yMcBcLFRS+a3DSeWOwIsP_!PUBlrGH`?|3iv4p><*BWN!Z~|u+jyKS z?!nE4WmfRR2j8mjODwf`JF#MEIS_R25}tYz6;;? zT97$3kq)2rrOpniiE*Sr`Eg{4sT=k?vbhcI=%4_MXA} zn7nx#{$7%2rY71N$opK17Aah3=Wjgq#=^(WGdN> zRHUp)L3$KC@OvEo3xgbsXT$sEV@xY*5@i?k23^q`bO(bgsh_47yw8s4#e9cjA5>V?^R}8 z4sWDG$Aiej+Y{qTCWEDsLjH6my3qm&8CoVGNzRf@$w5kutfY-dPsWOx%Z^1oGKJ*i zoTw@KGV%)O4Jx8P%?v6zBYw^XgKo69pPP`sEIAEYC8J8Mnn;iw#)2lvwiB`l7HBKR zl^VnQl*Bats@JF3Y%2H*Mw|_%j_uZywdy=tsbWJhDrU65b$g7JQKc>To$)3GJ9;6j zC1j1`J9{gO*=DcJY^q6znraFTHq~f2AgA#K_W}1*o{g7imOIAUHW}xCBZLDL{+;R7 zboXI2H8VYuC98fL+`Zi=)4mGqRbvcu3C8i=*7ys56R=J%h~tFpTJ*Lcz?T! zD!-HEV6PnPy~h~8H~9Q9eDTifTX$~fcNy|9L|*L;ysrZ6eFA$m(0lNA->ixBQPd!T zIKF8R`!pAb3Xml9ulgUa&)eY|nDdYx(B#}pnE{d8Jq|+!;P5>-{2UYSRSyOQiF~Jq!hV9E2N~!Q%Z)GN-NWF8H_EFwInq; zds1lXBxF!gaW0L)Z%d4oCX%iSQYr_GC+#tkj>)Q19BSKf(k*C$baUDc7TFJTAd4n) z)KyFhu~+>!{-h+$kz1}J2h~ZmS)~ibwb7vzFqhh@Jsre!f2($s(7X)|RUSoa+wR9X+KO5sfR=}? z-{rYBluqaEBE`<9&dX`u`{8-jyQSNG1bZdBq}z)4TZi==A?|Z^hS*C6Qb77dn(4nR zXq;0Z<=)s$dc)7|kX3sK_DaEC6~?xdV{Ad;7%eXU7N0-Gy7!=hvjfIGIo!H)5!kB) zceO0AR}MX$C@z0mTSYYzIp91j+aJ<|lpv0q;?Tbmf0;iCNc0?-^Wbs07c+grx2;Hn zZbocdQ4+D;;}bZn2ZMsxq}7y=g7NNY{umPyK%I=IB8M9d{sw_R8#0wJqUjQf@Ig6v zpd2lelpzmhP+Eq(rDbW2j2yYiwxES_YSh1}C0WW_k-I`ikf1l}cs-o6Yu=gJ9 zRm1zrF}8sDk~RSN#9!QK}Z*sFqGf<7}U4uy@*?(|MJ}fxgVn-X-(}V`;oqsIdzxnMgtLtt)U4r znzTr!4K0^#Nh{@A&^kFq8Y|z8X6r8$df$bP-3d7qp?5*Yde~BF_BqN&zYf=5=!xb{ zWJw)0FXws#(Dxe-uNosROHr+~Xk#lQa%t6v=C|xmwk^kzZHuwguf;U#(gJ;==5Evi z&!H8YxsY$uLG%>-A*K?ZkqL#q9kG^3wj|pwhO{lwTfjMo%V6^_u1%U%?U8B!cC>`z z1Mqi=E*E4|-#M9he+c{?0e@%kJmva98MQ)q-UoPI4aSdtOpt0@f^k$L{`_%n`I#+q z(;pg1cV5oNUyb!2F0T@2ZEbyk_Gh0VZQGl%vh81hy)yXTM~o@0VE!h3=WiRuSzRtlt*DSP~lT9vc$nc0MH1?FCeY*Wb2mT_K3rwvwWEc+={&OGyR4%aoAp z5B6B#?}rBp`!SN-j~OQH$w*0!LOqP})96jh%8Wz2o=8fvzOqt;M6WjAW6v<&PmAq9m+dzbh?uz z+wlcFuZ({)gt5yXF@~xHWB6{XH<4ujTaR-)9U2N@;0=1Znb$qvj`fWmATE~<|2s+N zuU#Zf>w?|#>aW=Mz}`oUE2w}9hoKh&mY6>T3E?;{-i{+(eYA?kuiw2{QT+8;lQW(!>Jl3-0v~-G8TWmkaX-)NUaxcB=r0P|P=Yo*v{*saBE~XgrCB-nwiLoQU|!n3 z!g!CZ8|q0f^iPt}rx;VLo`mCD8Ue-HOHffK>0GqCxZ8FXCtDwBZWAbtt$oqn90Z@N z0g`CmUXH__(xzg(PERGln6ZSJ6qObg%gfA#aRsv$#ytnQ69@P_h)^tVqR#{U1)Y{| zLyn)S((Y&<6YE2;e?J$T{N?adt2$@CDO~Y7w3o?uHlV#6_)y(}AB$%Hrr^GY1KO_M zV4y@Sp1P-T&o$0Q=HEbndu8vTLsG@%?2^J|Z$NvQ(4DG3_!V64_N)F_53(=HIyhLq zJD&Wo*Z7Ul-cgVa{pCV?`50%`xuTt1wNMe=vEF0oU%+`@`d6vigZ{2Uduix%0NX3D zd$$4Ge7So4J%RonK!4|(8kucJ9XuDua;L9ok$%yYOst z^J1r@WzeY|#p|8&LVFPUJDUI9565yX?ays6D|Z9B%Y@D2J3~3p-W~W69IpiX2mh<7 zxUc;I`@lhxl@ljn3l@G^qy1*+Zx`y{19JA_5vkPv+!~8YH&Ewh!lxw%WEtphDbkJr ze!v?<$>yI@ANrpS@8b@h@FXx5FiZwl5Fbd+2FwajUjbA^2An zJ`8?r25K1vq=hw6BD9evpZ+&bdMDf=SbdJ)bgb_~WUwV>71BiM>2|Li8z& zR~*e)zVWEE3_OW?_H=I(>r>F*@%)qLPGnow{$*?73h-GjlL_5DhW}I!w3iMas^b+E z)6J-VQ*mE8U&3*W0kZSt#B85QtI*Hg*3QU$KkVNjIRihgitT<`V_xwFY@ez>XfF%% zx>x*+tu+6?c%)}Ll6{$>vUcD6>%9}VL3`(*z5CE!9w@+Aiw-`_GP{L`Zk4^ub7+sg z_36;unbM_8?}gsCfORXpx{dL#tuO;;Nb{l96 z8`#LCj`T6HlV&D$rJSjgSQP4txe*U30$Q3imedlJQST0wy){}3?1pqhdj)MA@i4VQ zeOp#g#)9^|pnRkX^vC`#bw^nD4za8()2;0!*1EdXweBM}98bi!ww+bD)UoO%y)2tc zEc&*!E&aqs)n1607YUYN%#j>}{@BhWY;&@{$6STA(Bbuz zS;J3%w|mP^xGz7-;3+?+*X?#3_3W7r#ujIwzmw0u`{87!W$p9O-%aR_KFg1xyBzpW zrNfVa`r88gHxudEcB2g(DKj_CKHom_Q}i?T;Q9`u{Et4~wf}^!Lfi9;%*xz^-OGgb za^TaV>d*J3{y6qM21I~Jb$R$lD|R{t?Sb|#L3a8=n%L37!p47*J3H@99v3Mn)}Ovw=p& ztcTeSd|3~hK!Y5UF~QuNscBcWKT_G$Q6fxjWd!Qs6OP>_yL*JdUdSALE1@CAl;QIu zAJlV_jV0>{%2*a)Uu9^o82p;)U+RK5)Lz{pZKSG|uMEXEET>r(l_bkj(#NV9z9;A{ zR+wM0u!OC{ICn`<0$7>{tNu8ag##t1a7Q@|{jq*$dsBn9Ho(|M=UA`Si}=I=xzOO< ziK#==CQciA=*+oeyK!H3N;BX6M=Q2Ij_2iUdt-~U(BG*SC(oU_Z&B;~7PIm<7ejyW zoq7!2<-ms^9X>24iYmsRqs-ZU8U@&Xn;`yEm+h+8^&9jveukgk3Fz-c&dwiCy(sT^ zVS!ocTkz$h?s7mD{R-TSEq;KWR;y`WzSA*GuHK(26Sr-6uVS-<(BDmHF9+ItLE8u4 zKB-}5uG`-}gnsq8Xz!)ty^a&eW9x?>en{=H9uLzKo4x0!Imaus{yfpF#Bu2EHpqtV z9)o+}EZTq^hn|7>!Jsv$2&}KGeIc-)Ud9kjwCM*VVSQeLikdbk5l1 z!M7(&jX9G%edv$4A3Nad^qn;G`Ek8vl@q9EfAKW7I*0!6>8IcAJC$Kk^TLOP%G`v_ z%YybELwh;!8@&TRf>Y4nm(brLo_fKb@ zm2I82vPgO8Pt{!xw3mf>-D^JhE&;T&4(X?X(I81SpI)4vu<>hX?=-Z>ciH$I1J$1% z_Da{PXqkea+=kGnkNz#!;M05nd8~my%s8ZH{q3fw?~^kZ#vLiwa?LdJvIn5OYv7?? zf0;2Dhwf%%z7uuuB8)>1K$;GKc8d0jc8m2V`?7x(+Q2v4fL=TId^H|=TR(cjz{3ei z18#xG;6)dAe|!_G8^$?08`!`%>tTI=Shazjq&nv2y5qY7{Y{F#BlPs(-e(i*Llzvjw zB2c_7>dQooJwYoPt4&HF|u$=*@Jo)<8*2r&vvIC zosY3~L7Td@o{gR`=utw_z#C&G4mz=P<*dE9Ki|sg&%c+ZefVz18Pv0B9>$jEp}(`w zPo6t-+oA@(Q&r~HOP|q_xzJq>dYp|*YYsV@&djs9Ct1lW#1-$WzDuvp}kD@bvqap*@?E_dq_J3aQudSP2vt>jyH5$ zJm0e7E@V;;<_IIst9 zH*Z}V4(%-)HGaU}_{9E~j1%(9{lq%B|{v=(Yzvg-kQh$avQ0ouFPg<`* zQ~1f);~QAxs=31U#mH*gs)F*8Fk>6l_FasdB`10fQ0*bgS1Lez4vMil##~XUAQnn( z)a}j18{g8JU~Y-=>tbSW?gl#-1m7z^aW!|4;^r7*G>5H&&y7Wq04WBWX9L~Q7pIU} zAGANcB?j*#?S%eVzY~lTgE9hptLp>(H7Hm1>F|WetPx|Pu7Ts5wthtYeJ>ru_UY|M&=bEC%mO zSn9^_Yj@lO?VUzH;}Z0D3Hm$#V%JZ<R&(u&K5U`uhdiyRX+@HuQIUh>6XSvWm%ie3v5;alJre!2YTw_`7XD z>X!PYEwu$zL0b?$Z*j_OXzuIy@iAxPCycrmn-GyVVoYRy)f(=)lBGMLT-gU^J5Z~K zStn~_f|>?d4{L3~E^?wvf4KqM2m2r>FSU+c)B&HL2u%>wU8+qCfhO61V_&1FQXM`B z_EJ`8YAf7$0D7%$P#c^O;f*DYKA>4A6$#?rMT(zivc|GRaa7~Y(yC=|HF8a3gow|tj>jCI*EAHpV zl6G^W^c?f;hb8MBK_7$fieGm$DsmP2yZCU!*0hJE9InnaE0qE5J%aXfp}ic;YuxQ@ zY->WLzb#j-P7#R@hWQpQEIVLLKX3T~Z!TTq-L|)DpDU@!hr( zVvl}Eb-n&IC@HWlcuaA9Am2HjOGGf+A^#7bG~ zAdL5Ti7m8e3*SV)LXNT*_K$Tu`#uI>&cG_aQPs*%6Q{&JL?7hVG|K_Lf zA9Wsb5ZXHr?eSglbm;FU^mjFD{pVLQOE$Z?qDZ-W&>nn9?ed_#T#)H)Y71e*SWZY^3pZGY(|TcN$v(B56>E*Ct3_A)^l^tTiK&`XeJC~yPyKq>G~ z^@G_4WF5?Uo%MT{>o=|rgWi_L#D(o1G9vU+bZltW;MmZoq5b<6lq~J0D_RWmAWAd6 z25AGeF+oQuTC}4iPmh!65yPcIWnU?8g=Pcl-P0|*3(7`NPSO&6js+ch$sQM9)gIC& z!q*aGedcKM6;kbA6{Vay=Imx#T3Qrt0iD6GRfWEV8uYh*i4E%F+O?x)O!8PsnwlU@ z8wN=U*uDzTUlr3{@Wp8%yP-eU@r3;!f;tubMyrBe&77Wnz2ftn4exz;_rNE6ugL{T zld&t)Zr1E@6@7|y*lfO&@c>%ATefuRTe;uuy>+EZi#uyE_J`|w44y)FdFb0>{fcKr#Em;CJI)=EA&ZVb>NHr>-aWMQ?zb^2k^%kQ%v}HZ&3h%Arq9NEm(U)4Na;sK zvb~Hg@0PZ-x+(`w@Od~lzlqaDXzvDecbEEu_V_+W7BrTH{zcZ;&VJbo%Qd9!qfg&0 z_|j8J7gRTr=hZV$q;cI}_>L#f7JOf6F8mHwc+Jn#ry?_+Fv5XV@bm41gB z*7B%^WppN0-B3TQNB?R&kZnM%4yJ9TT@HDF#k|zPu_0Rr4GTUA?hG0pk~?^K$cwrS zJYWO6!nU=8?i|3c^>Bqso$-ByVKRE+P#FWl2Sv+@j**g$eh11$P(IS%*jB=8HRdpHSmyl7{@x37dcx7!tCEtYKeDfOiv`U!*Ki`5&xqrD1Om!5csqdxlJW`+9z zy!Qlb%zdRy=}3u*OOPpZ5@ptV6J>nz7->;0P^!T8RW|jMucMa8&#kATYvgl?zW7__tu<#kh?V_{oV(sZ|1H#f8*N{_0plc`>0>(7oXL^$ozii zR&6tIk1`(L$+)+qP$}BG$GE;H&>bkAgEroSezjZOdYriVa(eXpX}2ThT>7k9n;Yog z-i7w~u4E?kcMtkYf3a;}dQQ^p3}`PC+RK6NatX$kvptP1A8ensDE-))_55blRcP-T zbaxY^Lwk2T8#U$k0W)A{Gp@{Eb??@v+u7%!_V_Nx4a{>Kt6aMDX7zoQm*XyIgsc8` zTK^;ZS;qYZzYH3)ZAQhqXJPj;pt)?2Oa0+}k=yWRIMrJ*|0c3@<%Q57ZD4o6c3^qH zu@kKx{;L{fI;{?7+p-bp`PH_~3DDi@0Yig-91zp*O8=OC55Y4pKmURfuz|M4`2BF& zz?T}d!MA$j#toLZ#Aq2ceuyNd43`;6820iRA_tpxLVvfo+UI2*`yhF#EU~Mu+C$nz z_<6wgnW+9P#g%HXk1xMpYG%?#8l&G(%dD+f7Vasn%$i6~GrZ@9_MjQ+Rx|iFSi`5G zT8VJ!A2R~SjF<6K;w5R?D48^4w2U4fCynj>W!=b6M7E{NjxG^uTa*1CJp~B!QU5=K zje7zf!Oq=>-l#eH!jp77BN^ZxZ1-LG(cPIoe$s7d@Am2@&Uc`@djNhbs?Q4j1|ERB zsB3S5Yp8FpqQ1Qb-Q5Bi&>r8@z1!NT$eq9rop0e@-})?gz-?$R1G>8p9zc8dF}`v) zwRqL^X%+1G-sELyFAci80M4VmcLDv1G-!|h%$K*%Sa2=-PR7lNM$Nti1s4ei;$_R+t}M5zZqzpARP3t_&_3|N|Z;5(}Lt|fG6PXB&0zH9Q5 zT6XvwgKp6>dFB|r3!0$nFEJ%f;KMBm6Jq7+y8URqUzd+-I;!nV_I;o;_JIn(3-Az|8eQcU!Xe`=uryg;S((eSKTXm15{_YF7*-JJnx(A*_(5uAh8kAj`x<9>?8 zj47SE4}u0cj?)m71y-OCpoadA4P+k7i*~gc@ZR&o&T$cg0@sEQ>U$u3VBf3Y5qRd( z*}DK^(K;Kn^(s~Ah_+sY3>g`T?;-S;5n~3bI`sEIa~HPnv&u~bWg#dRb-ZtnXSkrO zUfDzX7nIW5KI%`yM18N*13IH0mj>RmgAUbo_;;1F^u>3F2FbX|aWV|wVrbC--#hZ_ z2i*-v8z5G$;eUl?>t#vl=qLD=#VcULba=P>1;_&r0qPl>G`w$n0{o2k9{2IxGmQ1^ z0y`O^eY&d$!q7&|cfv1fCw${~!atPkg8kkdU~Hx0j}U$ z6F+t=#)0PJIP1U{@ZI8Zd0xBlP4Zp6kWWuzi?6Z#DZ=GAMoLG;Y@l1|3UAiI|AhY7 zj?~5iXsn=p7@X#aq(L!$goOs##fZ2%Yzn8zHzv^*#6nz_t;XMl-d80d?9SckJ8{7>0G_FZT{sbjV&H5=Gx z%NL)HgZ9=0NBaE;E`u!a6x;HlMP0<8AbejcSo#kMkwL@4Q1;=nAQ+|{wr?K((+zcx z3cpwId5f;9E!6BGZJ%o;%kos%WSYYE=vKtD#2fx{vs zAS6&1I-qYs=zxG{AyEO@xQ1K7k^U!xqx^R){ouV1aosb)Sb&Br-Z7)U-plWv4fvNs z`X`Vm5D9Pt)$wBb&9Ki&-@l%Kc87JJyMCQxDzs@~fa$b+w7i%P_j>~jM5unAtr4;x z>;ifKKM(@6^lx4(&x!f4?xub_f~KG<;Jn2@F%CohvFmhJ;IIz+l+EFhN^K(B@H@Y~SLQ7HJbvZ=s!M zEFX9(@>7%|Klgtbo*$-&ZW@?@Q=0uNc~cab*}1G#H}{h2c(1O8WgjVQ+!)$w@S6U1 zj9Dv>m+h5Lns!zD+clu^x^-&e841IA2I=}m_`L{<@XJM*0nR~x-wz!*a3!vD0W)n63(-FP0TB1IFO5w*64Zuf}eeM#07@=EbANUv$Jn#pYz}z)}MeE(4h{tMAcw8Y~h;l2-v=8nQc`;(9Tvh7+Sp2 z>srKiYOktAQQ6>YD*M6}*%$FrfA{d8GtVa}@^qpi`S`AeZtBbMeGhA~E7TeOT<$6+ z@N-~&T?k{3wx+I95_WOJ;P>(0z{lmonr+m+_Bb4;5NuzEj%_7;V6ZMYG9W)N%r_5Y z;@mGG{1JTg!Rn>SxXw_}8SoynjH`pHfcN@;MP(d|R00)21;BDB132be0uQ*RL7O&joD>k!XT5*0_fG-A-dC`k1)f5S`LH7>TYniI6{Ko!n|&KWzfLfwr9vHQ zTBJ>c?~xRT{>+SOOVJ{AWRpKM2>l%y1l=Vok_YWQnV?86cm^$=iZPWEmM!4R<%YSm zZs-rYOA%o{}3x=DlU+{ZXf^IPZ2 zeOf+-c`#3=*N*pF>9y@zK1|1Rpq-*tX!{H`^mmsv8_09xGgc3D$;^5%Xkbj_T>pOF zU-$)ioxu11Zut#W;crH8|R~;%hn_fp;zVUqb^M_m=5> zQe})+s(d{%K`x~Zm&c1^<=L_k@_fYzdA4STJX;G^jgW5=6J`4PK28(N-BEwRQGo?P;Q`P4hWbAC4-UBF*U$Sj zu4DV4p;3!3U%3>E>+=A#^|U3_9m|RJ3h(j%3usd`SjL91ybaeG@4ubnZ{_tz(i-M% zn9n~|=f0^|%?9%RQ~R_Btdn{lIeKW+fFThpd;)v#ii!!l&^IjbKD3wzE#{By=dWYE z`?Wp(yIik7>TpJ}Dyl7fX%Ar&8+4K_eJ9Gj`3L3Byr1OG!b6g??uO*7zb$u`o|2qR z8FJ@?({g9kY03E#%WJW`4$I$Sc>}`l5q^qrcZTHb0eds#@|?}`L5-HL`Zny}5NfY! z(}udBaQ_zpA-=i6{X_1>#P`488|1YItor1$4dZZKet>Nx*0r?xe71R?wfoEa@s79O zgEzJFPpxYjq#dvWH2~Y8q3^F)Jk6(Xuh04f^g0S|p>E589$#GY>#w8jSx0`+OY5Pst<#>T7UY@@Z~rU$9i5u9|!19hi~HN`v?2v`38AEzWBOB|LWN>w1I4o z+k-A3=0WCzC85!icY68vO!M;d%zWTG@Yyw2U-kVf%oPddj8qL8>d??8YWC1jhkr$n zw2{Ao4*i?_h7IfH`SkV5!ZUIm&&pBo1z2$L^2K4e4o|>wEVeIf0sC@nR~h|Z)*i3j z@Q3^H|2zF1I4Mgey!T+2e@N)X-hQ50eQZlTvs8=^hiB@PPe@maVe{2h}A8c6vCQM!~t7om1 zA7_8?!_|=fA&)wB>-elrz1js0n>5fhYT7^?S~ivDt(r-THV)F#(LpL##k_<~J@`sh zgI-F3N(NySELX(bS~YwN&>qXx0sRl^!q1?-RIE%Nn;Pmmw;35#26gmdHN5XuAK&1x z7aSYky>F?j->6=Gy@qx2aQv*^zMeOF`Fb4h<>RppEdA-{1EZfkd*=7#$rGpS?Ce^1 z?%XML`t)h5jT<+b0Z3NCRNe1_sT9SK{}$hHzhSyJmwD{p;?20)`X7yNcn*K)`NFxp z_A6epW<$reqh^Fges_GrJGaOq;e! zHqTg@dHnR9N9jMDO?w<175oC_tJ6T8tb^Ur;rsYHwDolu@4$D#J=Awc%<-O@0>3^( ztl_&AJ|GDHpA{e_OLfBg9&Pc>0$1tf8zcdtc-IL2t}nm$!Eb)>eNQJbGIqp!zg?uJ zy{GgI^%L|l3VZ^+U!a|r2RoOAe#Z?D@9rl&yxhO_=W@KdayL$Di%gK`` z8^9;H;_~Io?FJ1RWQG5?ErQ#K&&Dh0vit|!Zb)IQ6T@x4wXDT`TgYP)a|0}}tYNra zi>rl(`?$y}BdbCLV@?duLZ*CI7FwRUJ| zXvK~lJC?S$w=Z54KiozeJ=O>f(YD)Sy9VQH%WvDS?PI*RQ4HJd^b|)(O6VzRu&nK4 z$oPiqhH13447Ir0Ir3U80rg2u@)@HRe^ZBT+b7K!lk`}o&(_JZ4@6deh!^k{<0aAw z5AYuu7i3WEZv40C2l&5khmFX`8QS3p!}ahgHK6sUyrBI;dAIP-#egZ0noYk^uRZo`Tq^AKqLHToTp$c z4m$D@zaVeeF>lyBAL$ECV!T-ThWOI9Azm-Bv4P#gdnYAJb(C%%p7?*mp3u8T0gm~i zd#`SJ-8|hM;lBrOb?WAN+SRSYE|<>EAI+UVHx;&S2;RT$Gj-}zm$0xfhYlS&)T>^- zdJXuQR4r1ZNG06E3ZOhF2g-sndbrGO+(#JC5N*2_8t&tA#kauYRR&e`R7F@#Pj!SE z+BWWg8`}Qrrly5k)~V|@#l*C53w>PX&tvnvN(1VWdZZRL9nvPM8l)YxD^a6i_nu2X zOiX?(iu$xmsM^N5g)+Y=8g5`qRc; zI3B_IKK2oNpSdKXVf$9iUaQ-;^0OV6pt($t2VQ`D@O?eXfdysPmkvSwy}q3jTY1@JItt$bCNyR&UOIPPoHw$&%o zXQa+swrp8KN=iytR8&;YE?v5~)~#FD3A$@(VPVm%P@zIia1R@T2B03O3+xT3qu<7T z_4P2W2DfqFZ|!H^Z_)_c8Ur4?DQE^9KyyI-XmFj|x&KYLT}#tEENa1p1&e=@u!t|E zQe~$(#>Ry@VLy+{>!}H<0BVu8l{&Npw1uX2#j7`V?vONN+{9d&gF5!ZkMPGyD<0vS z@U>KZg@oh(o|7^pZuD6RkKP6CtrZWfGHey+?1?^DSCC9BA6S@z%ugiA$4`l2V|% z;oZA;4{h4CsZYg<6+LZiY}^YMF5K1B)U*rkzbohnIsj+T7C3@7`p`+gtsO${C+!W; zwrSg$4{_1Myx#`((HXdbuAm!m2l%w6(nB9|o!hzpO}PD4nij1CkH(DLC__hnAwK?V zq-E=&m#nPHjzJt=PfI|}*9MgV?IG)b%UX4MghUQJaANMl0$I66r|4#ZxAC{pB2PG`}Gx6}Aj`B!Czptnu50V6Z{1f`4_GtSI=iORh-4}h1 z#FQ2C(X2JP1IKPWxC*Uhfv4b=_Rigx`=h2Gz8W2ua&qL@lmo-#hVFyj_QOt{fR-+I z^XzgLI?CzNz0&ac3)-}6^`fO?i@fHo9Ue7p-sDc>W)0ICG_HTRPJR3BK|z5Zp?$Z&-Q7Le z!NDO8b!~Ks5+$Nw^TJ{CLQPCeLU7;ufj|%d{D2Se2E9Q~J-rZm>EXUUfbrqn9M1m;LUmtRv+qpl?0It85#=_EWMLU;~5*RjLfBQ7^^>*h)ZW{}qsLY^H@7v- zn>T+Cx|@l*HpR-yYJ!=WSt4v+qOq}YB5v7OK>IKXj0CY@7>EIb!9YEO^y|?G$q+CU zFz#@D$YrKyKJkEgY9wHp{>2(xCp`8zFdig1^d)5DXGS(+?n||K}gp9|K zsPPdp&Sa;i%8GIo8sBN!JOs8W0d3<6;^I11T02HdqehJ`)~Hcqqot+gKsfJ492hElq zy{4d^nuzybi>UE%Y=-}Y{NTt7)TvYP!Jr`9he<=sAC4JhlkU;2=>gQUU+{jrIu-jWCD!!(Q^6FVmA_iH;|D4Gr;SjK zlGUk7`nZA0Pc^G3?<3v}FcZw~@M*LsM#39OgG9zBOdSENQ z`%u#?)3bARNgPs1QsQd^dr6EgDiMC=#Kpx$JUu;8uf$!78uWuqnsQE-uevGj9^+r? zt(mv%|5+!!y_4~60Xym0dzeg}bywn(Pf7&pTyOu`X!9hBqw@&VMWKe;OTzX1Q~J}! zTj;0Q5cI%!ODy^v?@wQ?+qvq~-RGgT```(n?Ni%)2=C5cedJv1nA9EPCeL4nbYnqy zety2++iNlLMzj(_mXmAcjBvfT<+;s>}lEZWwIjuEVC~hS+4G5+OdOeZq%q&YImDvmOnBd zEpNu@@2i|P%tzbDkZI2zm?i6GDLDiEl|#6tE5LHE&dT@9hx@ho*$*zM>x|pqPdS2k zA9;3Eel*OR%RM?M2Z`Z!=GCN*vWw@Uoj3F4GW7q8cFtUXlf4^V1iHVjore}?T>DXt z8|0zfH$0ZMpVyTdZz~b~+$A7ry^I|7J^Hi9 zItHC_yd@jZ=CR#J8<=$_Bl}9+_?i1*`#xIt$yXDhyV(T}J%(_GtE%KB`fvF^pQ$Ljq{7+|5}z2Z8{p_PN3lr2|ASEgKP z-G|dnV>*V` zmdgGxFXal$m2p2?pu8BuyUF3_*z^p zw`rmrMiK0U?Yl=UXnAAX0b6V35aVzg&k;87Cbs{8b2)(c_ZgqSWlIoys zw@k)Q*eV~bKOp-L{vzM)yeg?Pe~=H?J(Fp(pGo562a+-eeccJiBq(An?A{!4=`sd( zFIL*R#9{2g!BBgu?Zfr_UHhkvx6sd}JW$759_2_v@-p2@*uK37&fj=*yoI)pV}G}k z=N~>1GivG=uzjmul_bzrV#-Uw!3?ao?d+r%svU+`irBTJ|*$ zR;gC`%BBUs>Mz9GqTti{Mrv8{{(E(`&=s>QrgLj=spCE7Hfl-T*TpQ?!qOrGeTth= zeioU$=h}T|+&~Yb3?n0>bBiY^c`Q4IxJ{?~^;GU?@mP-7M(zCEsf}`Bc7pOqE9<4n zN{&|cbH^x|Hde}R#M@5X+A1fxpZV&wlZoxeXO2=HYr5n)_Hd3=Ixr=lcKb@}>X!;BEP%=BVR_=0t z`O?Zwq*3bw?*DYYvBZRyRqqS$+lIMCC9?ke@{zsN9`5;f` zEPgJN=iR}3+xsP~|2pVyoV0Qp2D|qXSGQ4y+T-%8AIkf$YEZL%9B<)!0kwcS-jcjj zHz#Ge?#uZf-98DO8IHG5d+c*O`1*)0ZDit%-LQQtGP54VBW*80U)4&OUoG*|Pd}Aj zvt~_=MT-`-!TWzmyfpo>9I@>jI7Ohr>(nlPJP)R0+>l<%b?pBU?A5d1tBZ0~(+1BAcIl>; zMmxvpamq8o^QB#TsR{L%H;~T_*wQDO{;-^9X|CLXesXG8RUS00t7I`>UJK75!dumC z2GZUAbe{66&KMq|0^oq=0cwc5LdL-kgUX%$bhb3yzdW9V zoFlFdilg0UxpwVZo4B~RGJ^*Xt~YStK-ci_@UWnuph5V?&iE zxJ|bMdMK(^4YZJk?Z1F?b*sN@$K%{p{b@D^^&0EUpTT}`0351ULpe{qX>nnjvZzO% zqoy^UqgFRkBg~I!pfB3X4D@N9zS19-vF$#103Bwbo%dYZ$7O7LgncTS{&lb>dp+;9@s?M8jwKt;pNmVJ`R({A3*Uq78;Z2uKz+deizVh;&4v#jZjLzz zyUv|ES4AJJ1>U9Z%-Pv_UhCGaw{Bi!{HiU(veBORfF7m=7$bh+(a|(tD_8E< z;&5B<&Zdtro^q?NhmoqOzCDZ{b#Jd^vaFepUU#`#h#Phj`g^FAkKX>B$9AVX1f7BGq9{q`I#%21|)0BMeI(TgE*EGZPM!PZ_dEBAR z(=wDA^d zPwjIYxuLt7ki7H&Y~Q*~U+hRiI)6Zay2^n0neE!O%d}auW`!^oVpFSDt@4=XZ&1H} z{Z0)UGzh`_^GWsU)mypcJ>%!U+8MLQTKV(7H*ZwvX=6&+~ySgYS= zjxu_JvAl~xo-f-?Y(L?qq(Nh9n_SD6<%9Z{wj)hzV{xCp{dWS}k62kK$Jmx507z25P_T^LBA(pwOajxr+os$%;sBHu0i9R#W z<%+hAd2kuquA$9vPqUS@ov>%w^F#cuj$x z*3zI+7rY0(4BrU&Oss9oQ%h36k)OD99*41*B#ggImR1-ubZ9vcwr{Ywy2Yw-7*9_U z!vFZ8y#I>+X#42j!gt(gx4J#dkzt98bxS5M(|xymsR zW2b+aGj9ARCmZD;?N{b6tkV}KdlPSDo6fP8jS^URl;nHsC4!~Ps? zWUu__?yQ_(eCmc;f!#c-ox_Kz%Cm}Pl=FrfV!Kl7_fV72D%%1lFoyR~vwvKM&VJGQ zFg)kDaOENUFYKF8i@Y!B(_|R-Ke!*)`he$+=kPAku8;j+UypjSVydlLNArF;G%%Nd z;3d+_d#;o%+epe+XaU_#61Q%nr8D{$&K+W*yFse$>*5}d|7k9*=}rs(LwnqSvi>t@ zwoe;tu7>n{$2WMxw=yMRzHU?Uf@4Q6Wai$4*0k}KSAC9Mr?W4{C(YV}xsH`bPn=Ca zy54|&X7-(5dxrw2W(q7Y|4_LBZ2Q{OW@03{OPFn}%Fpt5q)ilpE zgz;F$D9hs*Gueo9Uc<3H=Evh}`&ovJ$2_>tshP5$<96CPF+}}&k$q<)6w2VO3OB|d8l_CS`NTBo#NqhSw_>G7UH(N{fBb@ zv-;C)Um2w3ShL5O%QAA@d%ESL=VtESvgd3XY#)95*w5AK-R!gXbT_6g`trz#anm=g zT8BSkefjoB;f37d+Bh8uzOY;`t2qUD4L%6Cvr}i=MwWJ^V zt2&p(=GNn zc8p4zwK(hHBfi7q4*32Ub}X!egZ{Fa0^J#(Jur=?KXT9Cu;s#>!e^ zUrkw#ZL`r2UV-(G2$nyVQule+lY~@1ekNylaoK7)u$U>dU3Qw>Y=$0l#v*7hT9gt$Q0Z3Xq14 zgQRh@P-)sCN}M_j#XAzO&FxZqN#J*XDDyv~KiVhy7_i+(?ew^pC2?~;mJgB^-P!xi z&!;a!dzx>bX8W=ZUuU1={R0UTW`Df(n_Ux-j(v_+pfXVV90*_8KK*+v#yD{^UQq-tbbTO2xxxAOUU0QK+Zmv3&%zHyri%Q1mxq0K=ik zgT4UKV6dJ+2nPVoe}u~e_4^o)@#$YcxXk#B8xDd2eNqB|zaB1g8~25Q2tc0{rqS}& zLguBRoex7E*YMapZ$h61&4*z)mI*bl`7rQV;4?7}Bx2lh148;LBtG-w%PmNK+ZK0sY?JBGaa>mMv3P{G!@E*gW<#X!~CE zIcBdocoMen%Ng@On2R(6K_~FGKF6zfXK~`xUm?Ic*anmYl>jx^1a{Dowh%h(3JrRq zo#5MBF!NgKea>o|Xt(=;3lJ{dUG-S|`v} zA95S_HwVo?6VM1W)WhYbzyUB%!@S-+u6BIJ(c)>_w7A;wwR7Nkv@^gN%N+pqPwn%0 zp#Hl6J_8I1w{f2v<-!82G;UCNW4?z8C{f=^2<~*724`*e~qvW`q%m#SXa;a4gJvunu5ZB8ngk$ zL1{o8RtD8TP1LcqVe9M-!S>pqmL4wK>*2EDKE|mDY8b$EZZ}Lv%`*>f<9+A+0IJ1_0njH6+=&+zy>HqU|7HJ~1r>w^Y>&j9t`81T8^b3nMv zZQQ3lD~!){^-7khwy>4s0BO=J625BzQm4MR)UAjAoUiYLb$`^ieW6Jo_z^ha-PZqT z=dtj}F7T&*EcZWv;dryw?}+$#zs%izMZP(8KkwYNr*aRPqi-q4ndx7UG5@0@XMzWg z-rj%Mg!isqyEPQYd263TJ3dcb)1ST#XoO8BfEqLd=D-qAhs6N3NSjy+P?H*E43-VI zal3}LT??59^V0Iu^3>v #g)8g|S>;TWFs2=UyN?={fkH^vS(vHcH`MeFoI9fXG z_*z&FX*J4Yna?Dj0X_@bGf)M~gzLocIbnRJBjrkzD!;#0o%YaOFX#?5@Ph7oO7$8J zcwhCkIb1>f*U-uh+yB&0EBoIGY5S-@j``8gfbBN72e~qQ`*~S$@UHATm-+O{nJm?> zo^>wUfA=Q8ckrT5Xu>|!O44I!{o`!i@W1j}MYw`I^@LY&?UR>t(-^xo%Z+PtATK=tb z(9VS+pGR9gdV$I>?DsYTz0>YX;-L&#fBtd7;T?xB+&p$G_aW`x*FWEX5Ht4u zD?NN;5BBis|LKsp$*G7R0bD?B!1g2aVtvlMU)f)twW0pBWo)JfH62omnjSSx(mwv1 z6hi)nXvgC5HMH|GJhwN`k9lZm|7vJ>9)`=T9|)fT!{Y((JAG z`wvUG>fzJ>h`U$B)_zfObJH$e8-n<(cd1*p9bfBnVEw=9PrJ518sY}LdL9kaaQkoV zds{p${@X&s_`kLMwsdc9`>nLUxBbmL-dHz$4t{T0d#2wECm_Gy(pwVtIscb)LzF-M zGc5n#Sf>6sHcZ`A296;7*aMk!?YVrj_w=vyPxZ>eE;7B*Gh%eo} zBNwGzx;g@J+23^ll>y%m`Hy-R+umCL{@!)I+xPam;-9!LP>-rJgYb7XXL!s%uDq8q zwX*-6(6H}O4e{E8f#-8&A$(l6f4=wFsafxTd}+{#@K+{hj`n{d;;c)W^TQY^Xo2T>nN$+o$QT7?wG1;`&@C(U-@x_#W5&(Ba8a#u zY4@l-#xDgl?Y-9D#rD^9_)dTSt~UM`&)&bRKiV>vhxrn5;KJ>cm78`f8yK7XVNd_T zOJhe*nS%Bn`x#ynW-TJ%x@rDMp`j_^PeTS-`O-A-p z-!JwZ8$KcRy@{xIlNT;s8~@-zRv7lNpUeJnHSlJg`%ZiBp0_`1Z#4axK~MBM;P^|U z%^D+AVQF9EN0k-uxzDGOBe(t+E_nqzxb@W%44Q(LD09mhA0&L$=bJYQTS*T6! zXI)LbzO#Gp^!Haa_hvfH22xwBS83x|$5L|~m!a-7o2T`0ndZ%W-mSm8Cx2A~v}e>7 z>s9&zQg4Ks#yqTkEGM;Vror;n$vXm&gQ+--yhM@--$zwy^X(<=exA; obo)*N?= Date: Mon, 10 Sep 2018 21:45:25 -0400 Subject: [PATCH 463/755] Update Compressor (1 core compatibility) --- Compress/Compress | Bin 18408 -> 18624 bytes Compress/Compress.exe | Bin 53760 -> 53760 bytes Compress/Compress.out | Bin 19524 -> 19524 bytes Compress/Compress32.exe | Bin 55808 -> 55808 bytes 4 files changed, 0 insertions(+), 0 deletions(-) diff --git a/Compress/Compress b/Compress/Compress index 27560aa5e7217909f3f1f5dde6f094621816bb13..1fd48949fdfbc560979e3c4a02cfc6059867c58c 100755 GIT binary patch literal 18624 zcmeHv4|Eh|mTy(30}aGfGe(L0k#@GxL?EUyU>XwbN~)oH>>$b?@gb7X>6TzfGD$ar zqmWD|NKM2s%Uuu$su9LBRk*zu*0; zD(OVC@13{j%-MGiUryEi?)~n)-~H})zkgNL+3NN#H1RxVBolWpM_A897b9tRWQ!Q8 z)AG4-oQs>nP3Fdcl8Vd4N(gE>0}kk_4QSE%QUJ}k@=Y2c-{fK$15VY*oB<6B2~vGS z$)#sCcy6AC8j#~`j6iZ^E1IXJdrODGk99i+#_Hv|9Fa-Rs>@k*IRo~QVk83^?W4BQ zwM^H$%;W+_xQhTMvHK7tUP?<&1j{M^hJ&GiE|xLiI~tiYpdt4lI@I* z^^N8iPPgBHdULtEDl68`%e$+xe0F6;RcO=fP5JX?&&$iHtInCj+D-b2chTbItS0Jj zLlxPafs1HV{_)-aa?1~Y9ei;^|LKozh~Ao!nEuoG#5)BS>0s@m3~x0Njbb8u+H+H# z=OadVfHFKy0{{1hlNeTl`*+d*c@+BBqtK6zLjTn$^ogU;-yMa1brgErDD>ZqLjT86 z=y$_EHk6G_?}PAN{;3#+{@Ez>?W53ljY5B66#CCcp$nt*@1vveKR*in+$i)rMxoCi zh291FL@tx-bCn{;amG9lN1o`MSW4tUI*0L76I@s8FDs`(lgsJInhl|#f76I8rXe$zg>s^4{H8(vbN7{ks?AkUG?)gG=r;^fv0mtL zLTee#X@g0R6QUJYTiM}q0o|Z(fNusAG(KjX0g(P}?65Z%aD&C$% zr@7fk%}Mm+dGMtq`i%xN;LAyLTGNd5S`z&xg9!LW68+{RdP@?0QWCu_iH=!hFm)%< zZyBUw-ew;7=DWI6vE$N_-BMuXvJS<_z}V>q~gsCKS(%*QoNqw2MDJS ziq|l_op1`Bcqzko5l%xYzJ%fbMmU8~+{N%;5>BBL&t>>O5l$f!w=w+ZgwxQATN(b> zgj49mIfnm)a0;3DxoaTI_%Y!WD)BysKSel&NW6#PwS-e>#M>CYo^T3@_!|sgOLzw1 zFEjkV5l$fxZ)W&Igj3hY>lyw7!Y2`416+JqTp=zOmn~l^D_^41@?|Ax&s0xfE@+*1 zr;Ag61SUCBXor+~7wnZIKeFtxQ;7&{4|P;4F0-t3sIB1Lqah#dq7qr@l9kjxCuECB zk8(`CpLj^V^-faq4UwDLgvRCQvQ{rh9%ZjOhNzLk*YhB_3;EV8C{w9@UgcA!c@Oot zrv7h9{qd_LF)fOGWTrP-@UJL_s?&1pM2c5QsO3x+78G05m84xci@a6!4(2me7t0sh z97o+vr-eppN%QdfqEFjr$-%YI%}AIo!dk zpM66fNR2?)nJGM5jNb7opQ}e1x$set)w|H`try{F+1Ded+$4jhNOo(a$R;Z{{rGN- z$ZjPTDY6UQ+1*mKR1lSYlHlnRW8au1rQDvO-U?gxESc%z{+*noxqm#gd?~*YxmlSc z{O+dGzv8%n^02u+-yyufwNMZU(dPqpN|rg9B$*~Lb4@voV=GID_7*$ z=c(#ju-9?1)rEBlq4QhFsQIWBqZ#-nsO+SJ2W$XSJp=Ro}jmw-xWfS`^>vV#CzMC+b}{;xP1xx& zp~te+8DP*HGDTy3f%IUab<2@Wnd+;TSuAWNVq}v|eNn@!HQb_Z)9^JKZdErjyzl|w z>U!j9#H`h5Gl{lB%TJ>G50DqbSML*c+=AYfeMiMTrErwEn>xZna{-&@>6@l+F2`(D?U|iac$%dvCiUkGs;?7Q8`> znhTVpa;(oLkL!>l8?ACm;j_@>@x3oAUb{t7mf5Z91{fnnkdrYyK_yWu_uN5~TV$(MwZLd? z5<{y^`aCBqu((4lAWvhOv_lLfKO+^r12m^Vuo}yR94`E45V>GUYZwaEqbLMp<6U5U zo`k}C^BrxgR*R2{tHsB}H65)sj92wdjcqltts}Os)YYU0DgFrs(+^464vp&`;woYm zNcK!QQUmvHvZy^+b^4V+jxfEE3DWxQIPFp1drVe7lf%c)Em`L2YU{~%adKCzhJmi; z30UKAx;Wd$eZ|I0N3uBPg_b^7DJK`wJ$Pdasii0$*Ghy$U!b{zNev0@Vf+ne7>Hd< zk(G1k#rtHwQ-1GSaN?kbvATwl@?Q$KUal{ECdY<}=f>r-azcFyoz&Xf|!(1<$#LD^wr}i;p_b zZ&~m4z3cTIbev|Bq=&!c;V%c8n~rYD6NQ~lF@Jt&W-Cpf{gcSg-smEJk+2gRDR+LJ zGi329U83{KR@K?H(X3oh2Ev^P%NXxGAKD!rFtO-brDO|IJA$BN6{})(7pdcbC)+!; z{zoKxemI{O8n=T_RK60GgLKM7AJI+BeqU@jMGX;mYpsxb#D;Gu>lPM&Avq5UJF0=m zz9S{RgKoz~R;SEg(dJ2a)A22yg~HB)NmBlT(0$@tWXs}c!6b~Gf&M9A(qhUJeS#Nu zN;4D1`R3^%i%02qJ3rYPhiwC*vt#2JxAK9c^m@YWJZjwfFK)#lDGsz)Xl#cf?E{jq^Xc)tJHOz@(0CcM1k8MY>!;2m z8&loNVdanrOFdYgMdzu|Z^Bo!o^eyp9EmP5iAtvP$deddaD5j$XECoOjb1UrE4*G# z4O%5exS_EfXco0jWnx;kKSuGQ(^-T1f0h)VL;W58VrA1sVaMNL-j*?$W_grv-~zWJ zfgPX)9q2gPDcL7+U6P$03;{FA00w7Xu#=cylnOEs$?%qYN6|+Cm0$z@Z4VQ=# zy`Pta2M%DWOmp@M(Q}aU`r6!%qij)>eOHF;yFZ$Sy~e4bcu)?MWVgG~1M{W)iJ>&O zQ%0Oi&I6(2&hr~nMWsXe0DB1!E@yA3Equ)+Y>UH82|mSQv&^2R^wL8h&Yj&en_@ta z+r@?fGE1{oSlpvz*d=F=5ZwyHur*RXLR%5&6d0#UqTUSN%YT*~li(Lyc8?Uvvm7PvNU{vO@wAc|#UMruUW(tjyBWAnk z?A&_Xscsw>O}kmy2M1YYw9t#z?W7%o4VOK9718|*a^pgiQx%>aKvs%8YPX84e#{mb z1s-3gq+AliUA%~y0EKDWmzi^0>S5oZ0SmfO3@0o?<9omtJZiTH&lO;=>uyQ}@0ES% zUs^r0#OR6yW*GYrLeJ%+AP@QN0+==Fy`UT8 zjveQiTbX+0Li|;fCY|5HUu4D0$Yr$O);5RfXshg-wrUpkk+gkAtx9SMFje|9ZA(&D zBVU3Aca|sOvdF%EY|HQI9@&6KXdYB;^cb zJxZ*Ld!+2CTo063B}Mf_AG8YHq9U5T2<}Yv8Ma%U{l}R$PKvIZE|T-TJUa8lxlVT` zU*fv}EpDX}tpCQUg^*V{k0Xy25$RRlRev-@{)4*bENy;L{|4%4+b~CFHW&1&uV@8Z zs3799$q~?g3Ys^ia4l$F<*MGF0ig=B67I|F8IrPLDvnG*U_9;!kbtoE0IrUJP#F^@ zx;fPgC2UL1?1OLn@6`9`%(tHaQ&sS^{I+57l&|}h-q^tO*kyBed&R*Q5$n!FLL<#i z3#P5Q-Np&er@@cmD+!@71)0`d8V%U|{f=2*cy0!^yEqf!M66^+&3}(l6t_jp&yq_! z#i)x%-c8dIcD3!~Oq>#2CJ;sCFiltRJ@`P!;C7|BvoD~?n=_0?Z;b{Tk5^zuk#qkM9$)b5SPNi(_!1Dv+JZ5wCL5qb#BhQa?G9 zNW@=bL9VUmk-4>KMeDh2Y!%zG{}}ExsgHmMJJy4CxQh4}OnU$|B`1BPgx1Z|Z9>z@vPk?tnN8O^>pW>i0yJps({z!6@~i!7?oo0c6gif}@uLqHwGmlvqIM?*c^r z=w7h4L*_l6_)$`QN#|$91G-HAA2hlD7yYE0DjA{wDAP?A!jAtR^pk6Zv)G~@g~7+* zKy03}UFT$HyUq}3a5VSR1{>NX` zl(igAX4CC&`2fTY>>nSNqboFvywPoJd#^ta)Z%v(`#jDbW?ziiCp7M*b?4ba+zY8{ zp|Kp<-K^q|OAZXMeNe+CvPNj4IZssH!xmk{{#fZz4z*Cd{kPCMDLM8d?9Ke|v(c#4rRfocK5MhW*C7 zV)#fxJk;rSbcv4NyZJx69i5`%L&+I)E9cxoaaY4t@^0wIP})b;mqg#RFTpcn99VvF zyPkP^UWynyp6MR<4X97g<8cqpL%p9{#n?#;$nJ4pNsdnkEpJ+gXlb}g{SjQ(aFzNh zxYg}A;&ya9u=hPIIXWceE@h25Y423Xx_7GXF6!gZr@L7%KUH>Wdb|@MxtlEAHSeq2 zkHvpSDCytz$m84pJDYahj#Es(#CN#)L!?|%rVpJL+`{XJQMvGX45i>f;cx?XQ&{Yx zE{i_`?TC-%Y{tSUImjLohrh_g@Sgn&HqwA||5bxCeyhQ0yJ>^1&wJPBF*XPPCFaS| z=CMLrXoRL}bmbl!El|lz@iM2)Djr|-pUX$sO)eng&ycbXQ&T1hYpAHH(j%hfBVXuL0hB@N4D(?yV zaS#%^F@qp|G{x^57tN=yUXo( z)o@IG6Fgo>T82s9YDmVPz~Cdkk53RhtG)mjcZ2A_eidBMM<+aDsQ?Umh2@q0r$Q$qMR+n)SX<{R3mu6Rp}jMp zKT(KVd1!xBwDgaq`7J8K{21H96_&z+(3yr9RNWUfN5RQ;(0jAim(f+bZUZVuZutEa zo7NBNZLpIa3)Hd5>GnmTEwdCBWT}3*VepAHd$;qaW`OaY65P%r@-e9%p68)M`McggpNJWECcQ zw)ygq3X`G2qjaiSx_B-iw*TsOxZgPSC^0Yp=ZI*Nl^Z^tY@-(x?Gce)Q1rx9Gd=g& zwjRq#bmdh!`e3dD7WU#{uNj9u-sRYjl{Zq9CUhf0EqG|aoJYMUJ3k1WbTuY|W;&Fx z2eaDSs47^H^m+*)j%bc~lzr+i$hK&)`K??yz=JCKzsKe|Jo>kK@KB@iH`EJ}n+jlL z#5|dH)?E>4GC~5qElp-y?Y+pr8f72s=~B8`MP4P&US&zy12m#={-DPe*(U&|l5TY- zD#rLhL0nR_KEadl=&f+OmH8_^+~BD=JWW+E{7I9Nl+PjP<-cbBR{sbx?U(TeqgQAu zLCky6Q!Srqey;(<#@s==%PEh|c+%p;+MDDo5z2v748Bq4fC!D2 z;qkXrJ52de7@77D(~{3pKLw`#9qhmZ9Cn&I_3hJCP*^Z+;w?6A>s?AO+lNQynt%>F zZ^S=k&03oYbsM0r{~g4|TWEWt|3EV>YT-mm=y5#Uw-{qU4N&X#Y4U%vB=t7pL{~djK@Mwhd9C0k1X! zA~&3x1iRee)yDQrl7bHPJh(AgO(7wKIHyh|9&RSYrzeU34-y|UDE55ov|sy#x0klIG5PCrQYllH0P-I_dzgrH6=L3aTNaXDwlDr zla#Y!BI9EOA}>2X37w+;8x|2<2TUP(*0addcPzKt@PhEUT0ihSN1pzH+0!nd8+VDlI@`f zN>+~0qdc3ijPFX;iq%!q_1 z6KqK}mP0?*3Hsob*10PGle7#Cu4vl#o3tw9MIZZC-kbz!XOVo_!Y!whFMdkOf_K0} zul|qz;43vES7#3u>_Fb5%vL^$!I+C-$d}sMB+`rmjT}a>;vorbX`m&X2G6P zKnbu9kbczA_BG1MPCTZ~!k0#r=nzSXf9fHQ-(=;dq>Z&S^J8(?)xLktJ(ft!WE`XM zYTx5d1y3G$(JYqixYN;3uNh| zL`p=f#Pud z>?3u>-%=+|p#Gp3TcRcs^O5JobZgk;8=r2GCOinokdJ#%UW0PBod!;{iw~qK!2nM8E7sL0|H(t;) zK;KGq);Fg6S?2(qg{uP6kF^}3%oxv6j6G+x{^USt|CGPQqEx@-M+#WVA5F6NqZ(1Y-~ zp00b~x(BX%;JOE{d*HeUl05Ln_goCC*P*dij)YrunKT`$<21P&bo~8n4ZlUlxqC}l zZisOXu8|z}wpvyXL*j>s>Is7hOOGf>8b;8;+ zFvi6S5;|_wi=z}P-=&x9;(sw<{EmHOg*T6PG1BcioTtNuI$WW{fDSk6aGMTa)Zwc- z+^NG(9e$w0lRCVp!!Z-IdT-X@?K+&N!-YCrp~HXjw<$#vxC-s6~K%X$b8rRB1qMxQ-5o8xlo*5N0&c&NkLbFYb86U4gRd^0HtVm*ZczCQw_p!M|o*Ib;n?lUP$$TU)kSlQ8m7 zT(+UYhgz$l3%49rfu?M2T^*N$hZGz9RYBIh|LGfzHyV0IJm;HSz=r;>gE77t5jSIA zF>pGU(3mphmzi9^hW>AYjbTGKZ0U!k+khp@2Td+k9@G`u88&nqDW8WTJf5gF>Nn<{ zmvlmwE^0gnunehUxqERZ9~km&CKoU~>(B`;I;44v+HS}j^TR^WXihTZjd^a9UZF9s zfrX`!{#y(x%_)YwF^}xhCrWnq29IIC!Dql#D5E*bz>RroK$l;_YSn(%Ogx7DI+9Mj-^Y|hNpFUR;65^bn?WOa!~cERE?{`(rpx!}eq==4M%MolXvy-%{~0m< z|HwOrpbkgY|LO?&`Z+GfSx>K2k!nT=82zV};u#S#>9_{hWqn^@{6CVB{045ow;_vf zoCf7By1a!3CX&IYVMDkSdblZnV1at8T- E1C9WW#Q*>R literal 18408 zcmeHv4|o(+mTz^^fd)dVm4Fd&D4oV3E5tM;Od5=nN~)on?I0td%pem(r(>ca$xFHs z{7{nV1XJ4<;*8JFo!vL%?9ROBw{LdkxekN)FHIncIL<}{g`fg1Xf+Xtq7eDl?{{w1 zO*$E}GvE97&HFwtU+3I&?m6e4d+xdC-dokpX0Lxyip?hQk}BLO5VkDSq!d{Vvt+9R zP$U!xJdM%J_97FY)hq*+Y7QM1Jr&T7PeF=F7zw9ad>nEM2~vNfm7;}a z3x|RrF#^evt;gQ!a{ZQEza__^VA;15-Mn; z!XfceS#~m1LG@$#4E-bcdy_11$mPBdIkNN5El!K^Zr| z+yBWk`{y0|<~()vsZ8RP@F5*+TvV|+Q;2pmKG`=tG2Qb;l!pf>!%GwRuOCigSOkBs zMZXSoiE#}7a|-CS_?1!g&l-h(b`(8}N1;y}MNj1@^ogU;$${6hf5|BH6QkJkBKRe= zjVw2hqURT2yjH)rkHY`@DEwnb;omz7|NEoRKOBX=VHEv88HIoUDD=Wn^vnUjgwM#b z283(*=U(W!Wh683`ce2Z!GE2QB}hdQlj8YjzC|w@K^L%Y>qAuy!SV`Pthqv&Z$)WY zMX(|GKy_m%*s!9sq^7PmxT1V*P0(z+W{ahwY+X1M+yL>$P($5DVK}wAwmLL|R8tpt zXpj_u5uxB9`e0pk?I2?64c9UOm>eKu=L?mUHQ~l8p{%UFp}ICySr({zNC<8~HboISwyqolYuwlvsH?3c*`To4?<+1To0~H?Cx5W+&Ks=G%NeTYLDvK8>S`@r zWi-htRyIvR&5k-j`j>_eWlK&Woc@_O<=dgU4T%9EB2b=|@Ci??9!DIlL`1Pc^Gkqy zpLqJIXOM=+2v4D%XrUX4KTY_13(u^so=7|1^A>LEOBvM1_gNmF%O+DVf?!ztDW^Lv zx}!*9?VQf>L*Fy$v?tL1!OO8E`gl$RG?M6I61_i(p1g?+B+#Lw3kojs%^I$vKz zzd4ESu=I=t4K5ih&LleD52-OLiO%IFwD$XZK^z7#qg7I92zeqTRUR+}MKM_tL z7k4uJ9|)&Viwg|@8R4|_evz82)3zuP3~n;g1kLiSX?V zZy=mPD*hb9A0(VYDZY*2YYC?iiZ?O*hlEq;#OoP;H{ldA@%tIRgm4O#__9Iy%5A_| zk?)o7@o5+2mGX*}%Q4Ang&MWboP{=3Q(Oh^cBA)OsOyD)BO%${2@Ptra4}RGDHyCT zy4j)X`S(%VEx=!=c~-TKHvsGg*{5oUcMv{i-W~e%?#!jaCwF}1WO!k7Rl{k!VQ?J@t)Sbo+gY_(90_xt@)1XUY%SWVN zS6q4SBVPA;@{mKE(L`F+=q8tA$Ou@Z>a(ZGkxrX&BdqX8=iCA-)W9ZJo-bOOrP|`E z=65-b-!KzV^F>!WEcd}lwy58gr=?F-11ns4P-YysOoK-s!^Ud71~PPa=5yVt>m*|p zbV8kzbPTEV3Q79ZNC)PJ=}glgtax(8#|tone(h6Z1EUxI0CeLwh$J=8qoz(?0u%#w zzHuJY5-pZgZSv+^Ec$LO7A)RzXr+VWeNgJ z&pGwi2!j;pi%!vQ5PvthWTqfgYWLdR`};Bm{h4;0a*eI0slY8hEvS**HnsU8^&S3q za-&1lE~&9k(~JjM2ZfVh3r$Jdix4xuGKqIGqVXv(z2wRpE6{&eS`ZABZ@SXzP@|%y zUAY}X(eS?D8r*&ds+)Rzp!UZJy)ulwD_4H$2 zz2vH2`^vAK^Xqf2LsBW#L!AhbBEkJ88F$pLor3Ef#>tDABF{%*LybO4W=HlqjO$3B zr!V{&Vm{v`2u2T>(81vxbnrAfU~@@JE5(=zG3Y2pqe-Nd~n?ldlc&1}vGZuGPICRdj6iAfcS+H2M?Q4aY7>QO{VWFS@C z`W?7d(d#d(fg`@xFd&v*{d&OZi*(w3u}{+cTF8|pzkWZOD#aNs!~&!8W6vsY~S1z53qX8UjMQ^#Fu*{^B?p>)O8t{qWh$0T)J zhniaW1L#qs>z%$pk3wrxq4@RReA+NzrGmxeRLE9E>qgACtK;^f3(6&iBzBux_G*XF zf!W%jYKKVsP-_P!;wvPtCE9EWW{*dAOSJnW2W%&Up?kI(eT+sc`67FqvaOvgn60hA zJpFnAOVfkli>>3aN)Z)rQ5xI|GIFpJ3+xDXedFh*Z=Xb)s>KEqFG8ck*iUWRQR8Qj zf&4=xztoa9g4m$cNa3R(3ZZgD#HXb0E|YcDY_Lv(xVv428wx7adFgD62$$m!psrpc z-zTq;eV>NQ3f7uGZp7t~BZK^);+YA)WhM9@Ul~DMl zI76Y9LJi1DRZnXMR6PT#b~1D$reXo1i1UeS632!*SkpnPbqI&Nj~Mm*Vx}hhD&*DJ z)l^mM$K-xbwRNiRTn%MGq0Lg5P71lfBlR^Ey1^!dZ-=+v|0~p1l0E5|kX~TM8aTmF zF@(;vap1F&coV!Poa=x}jEC6Q#4EvJ;?c!+vAbi)UTpyAwjo@;XJz(#%e8lRl9J{= zx?9PwT!)n=s)w4dQbiG$e&p$W>>+>PEq`D?{A>GqCrfg+i{cES_55Rbvbe(|7c2#G%{u6!UIfCE?ZtV-I*edJ6hsPaV#{{0$=Z2YJJ>}Mf}H&x8;;z3n#QAu zsv*BhLy^r9dBvrlD4tW|)+W$=fe+QdDX%-B+AgtfRofMe%Zq^(E8>o6O2HZ-Tp*hk zDz3|YSk<^VBciszuX^>^SY4fLvkgI=1qOY*DaQq}hUkbVqvzPLk_3nqkf*ch$x zsrnKdhQCR~{M|7rJXY2AdEVU|S3Don&<@Jl0U0~44?~kZr@}AGk;~>JdbMmtR6f?1 z!AJ?*;^Q+Bi`GD?cXMusQi5zwbJC2*&*4aAkxh&HwhyisI*$$>Myqfboo*dQ?{lqk zA89?0Ex@TFCC(DJZowu_hp{4`b_wI}R9w>poXWiJ6Ye8jiVHg^_ISm`Zr`+f=Th9t zkt>L(F}Q!QjIJFvBPsiEbDUyHRJ-NouPK&xnrq{(ZoS0jIZRstKAEEa1w_@r*9a&x zX8Zw`F?_mxp`xAIrfQvP_Ekhq-k73-+;BP_TO#dF3T(0E9dse<#VH;`d_0Z0bdyVx zS;sv8m54hsQ+Ylg)-xm{IygB2l6%dA5Z(4Edp%X2}KXrpvlw zw*i?h>Tf}>85lJCEKbDMD>x*>FBpuXUDVEsTfP97UXqY?zbhrXhkCccb#lybM6O&X zZuwU<`vPC8f&JzTC~Zn!QJa!k!~#WJY^Z@ZF}hUUd!|iEFQUQP`Vf{hH0_Gm@@*^= zGE#hEBYH;q34NE1RfW;B*jU9Ke%CZr54noiVOQUjYHLeRH6Hw&osotHL=vm82b(K{ z#wxb{Ex9hTrz$zeuso)Rua*W*!0Om1c4b^=aU0Z=)w1^c_$ru$=!TI9Vv6qgQmjn4 zL(vW@I4wym-^V|t8<0Bzo_Nk+I|yd$n;>;rt1Mm)jm(`)9BShKgl6Nr{p9N=*eDEJ z-?QS|5J7yOehP7G_-V9hy|X0Rxi^CXyBt_RT3RP)#yV*7M<>6BdTHzakjEdul>4H^ z*nckgkruLwqnXbF&!SLqE{WzHGESYv(Y&2v0|5dKvE_M$s;s|uKl(PWM}dTK09-z8 zx6)QMwoCXy`6IbLbc`dQ;nVMSiaQX$XV8V*Ry+nY>d6@!Z~{#O8Z)v`vl~S?+2Atf zhH;9n&X6hk<(!l4XwkuvNC75+V?(}BaXkBF)FQ8Mh$?4a=!0Fwmc~N`M*f2zX z-}vumD7~hg_zsj}F=Ww^Wr05s!UZT=l*JCJOQLu58xfQ5Rq&xfVzfHY{HcY{S+dSj z?Ml?{lC?Dgu6eSy&hFJpr^}kxfgrL2rW=K%MKA2U1-_2K3VVGZ=07+yKoA%*uad~MSJ${>iy5qG<)6`Tl!H^78d>zlH!x}!by%G4q7OG zy^)JH;{|5(s8MXgd#Er63Uxa0U&WpS+F%psy{OZydrC1yc zpQSHKRkYa{+i8&1=;UAFsew29D^fvcXpGMnfP=gIsrk*+q{V%>JT~2tf@+N`s}%Z? zf!1Sb!eMpbAkSjgzan=o&cY`9wO>mZiPLD-E}HX%>s*)dHYhYLj`%+!(2-A~lV7}< z{FQ$L5;j{Q?sg^nVq|xU@i};L&Kr+*V=u`qEZl;+xb-ANv3O^>+mn{BwO$ZU$7kYx zLlMW)A0mlG5Q5yfG?4c!B1)lqk+GJHW5Gme&1DvrI4J`8DjQDG2)*L!t=!<47v@KV)w;r9N^>?Mv$|-7V7~8gX z4Auwon6s_;E3F?Zq^ z9W4W>oW&t}{XS5?u9U^2-Jr%Q#l9{;)Q{|e%sV#X2es~NuE}9{FK(Ir>a#l!Q`_gw7ss#a{>{!_LQcSxo$sO6 zQ910sqU!e)$@lp6t?X{K5;sx@tit0|X4rCT9S^rlo|oR_^SlGYKD7)JTlOI>ijObA z-$JrZYx>bGyY)sNzS6X9>Sy{#4s zPNyKY&_zPrkv;|oy_zw$*zqhmcG9Vgi!(fxS5iQA0I}_(^QrigPF%LU;*Rq;z2Fq| z2RYK4kl*d}y1Tr#&%N$W+5NukeoOJhyjs6kEa_^#ME(l@7)p;(_oezvu4Q8dVUf7w zSGQV~P4iRb*oiFfxXYk!ns3A3(0ug!sZ)-9;sDt@?n}jee9-dNMF^ATOKg&sH(z3N zu+i)8^}4&=?Oyjm#l3g6qTR05*@rG0g*11eP$A9QD^TVnDC|$ zAbV2rP2L-sxBoBY)&DT>^_Y1N`@SDxZ%p|FdunSt9=nMx#aOX#&{{OwPg>NyV#_>G z>D>r5SkLIs8fQ;{!Cbek=df;Z&7qzAjPVRkmUtu5`Y#~jtmeQrpRUDlmY>qL!gWI| zp4C?2y1q?uO=`naO6?sY_+6P=EEad7a-H@L-UgWU$>KiG?vUu-|2hH)792H}z$(9v zTPH5gxUFrP3F=390BJLxgE_v)Wqa6&dNajtkK#%X-A=5T5YIHlA!In9VYp=Fpd|G$ zi-rZWvv6s#n-2~ZI`80hi+SLQcm6wno<;lvz|dxF2aFG3^(+zzsF z6g9R>B<&B{MfaP1S%d2>60_4Or1@(+To*#$kEV#-g%vfyN5Y>(i}B>Fu%WT2Jlu;5 zgxEb3BT5wFPeu4mU3T=1rS+xDcxx4l+8+n+{cu_MOmhsXzNg!Da0(sfd(nw2Z;)s| z`a>EPy#zX&Qlkt5XJKPLYn9wn&fM@cJY zVCe`YDaLPxl%#MaK5eg&XDPS?&=1KF=11F&iy?&>9z&cm-x!rn!GU+^jgi(7>$68L z;rT}kt%u0&TzA5K{^eANSo>MDI9=?-Asad{s)l3 z1RMe|o@ImBL=TFrXW$qPdxiK1v?%&tU!liFnXlv$l>$VwyL_?Z_CB$48y@C4eV)T& z%l|+l?h$`K8E>iVQ`uD{s!T=5AR3gZ2p4THATv(Zx&8#fjZw+!!&ab|R^T7sH{i;r=n0ozr~??K z$0;7J<;n4*2n;*FEr;f+OqdivbM&SUvn1;4 z9#HTkLQ8uaxY0&B4_Q}B?NDsk&C>I3Xwt%)N+Ga$p>~Ka4NdSf?p+H&g7v?kbc+v8 zj@i9*?Rv!W!z5^4iaL&}Sl6%6A++!HZIMJOz4;D5gjX*}wX~$RLfTkCQdS0kiL{;H z1%F^sbQw2N6Y@~(D1-EBdJ(E}^JOsD!)x(Mk6y^oHz19Prkc<^@-&3w(@7{gaVD(6 zxI4kKYc9mh3B4WM%ywfk$w80t0r-*oPJYB&E}05WT+bBHv$mv!a|Vs3f&+~0QAgiv zL%EU0&GLtqpks(%pLwUqUX9ElxZJ0m_h|?H*(X^}i(N@I#-dlX^>j#bAK~Y9yukEp z=M`v3WPU(TzE#hMVZ77a<4B67r1SB)4mgdzJ3^6wf!gpLv6xAvNNgZsUc9wYT9TJiJzr?=De&_jq&G;_Gh9>6>p5 zlLB??>KlTMjn#FvIfB2gyn={wL!hd9eK1E*f}vm_6s(YDR)7-vX(mE?iSl`<)QXt~G6!Li82J@tkjEWBCKHo9mKR`)cuZKk4qf zO4mrMmz9UAq{_Mm310)`R7>*S@&+3I0?Ajq9^dV&kgBOEka20%NS)Mys+*AfJR2bo#Ki_!Z8xQ=Ycp%sPzxVGiWgOqw@&D2T zh?x-uPh8lx%6G*e_6hnce`;arrFwM3lou%k)%-qeMEHP3YmsUUd;pDOr{ zzO>2q;gBbQ>}OT{4h^iY;L?EKFt3N<|39Hy$#~9|>P{V>QGotN^s#sX z#8rIg8^n8X8}0aW^xdDDLF!8WNS!)?=Hw;lQa{Bl33XvnhBJ~ z*Vy3H#UtIf2E;$|>0Q_2{2_>?BgN5e0Y1;7|EK#BiSJwf(rIp=NR>0BEq3@glBQ-X zOTC&hK4X@WAt5gKlu|q%fb34Zn)^G{g_KYRjh{ZBfnJ2QHjn5iG%u7iYC!uhgX0}F zhL&dBpE@5sUSpco3DmD2y4vyncM|DE%r3=z(0o;Z-VOSbM3-s4Qs57VO0h8;pBA(i zVC{cQ?cNOM6K4Eltcd@$h=0f+UKu~l`Agt;yo>ch3u`Fuz1N6)C8NofI(N)9jYg!K zYu9cUgy+$J5coCqskDw%n)A|(qK0cZfce)CJw4DvuKcF_|KS1tJ0t$PA}eJGBjHQd zaMCTl|>T05na9aOV_&(8ZRrp@g zZng6ZY|Jv)GRxf0AwQXE8Tx~z!%F|15`#Qe>#Yi{V=8zG&I;awu(E2L2|1npLIWgj zcfZ+;-+h~fohMMmj}KVke0UJf#s_m5>8gbfSc(%C&h5hYMHv5!Ry)2P%5XjoOa1>b zF!;Oe5gN~1jvZqKz!VGKYQgyyTx7v}ELds5^%mS>!DlS^UoE)9f}Iw8&w`&=@Vo`b zSOGW1g11_5z6BRq@E!|RT5!Duw^(q*@ctyqe_yw_q-23KYvtN-Z73{#7r#)g?qaX8Cj=J|~01FqvvRLBQhp653X`TxH_`H#lV<$0c2 z1RCW8F37@|sPKHvAF=O{ zVvqOF_hJ73s_=!us@W{deZzsQ7V Ll8LBuIZpncT`y-m diff --git a/Compress/Compress.exe b/Compress/Compress.exe index f7bc1b107b586452cdc7bbcc9d71682f7e8503be..cf12f6be4056ef9683a2b17fb8f054ebf3f98341 100755 GIT binary patch delta 290 zcmZoz!rZWgc|r%X7Vq?l-M&l~b2r}N6lP4?{6v_SoiTg!Cn-iIM#afrWQrISCa23f zG2WfLN_IPkMjHczM=!6+=1e&aMvfmXVBVL>Gv)s>ewaL6!Ig3ClPp`>+51fkt0f zW?<;N<=J`k#j&42fo>NSgZ~#idOZwY=m8b9-mY`)bq1=ljhH;WU5@wW-v9qSE$^2; z=a+Y2*nFT}m5Fi5=4YL8EX;a(dXruH6enl&$%`m*F%%^+lqWGb2043phPmn`W#&zu k-Dk_{T2z!@H2Hp?1kkJB`!qMp_gk_t>2Yn2n!3ye0Cb^pTL1t6 delta 311 zcmV-70m%M@#uw+JVO002mh4I{H@9w-3__k;idNR18ilbIj=0q>KSAVmSJlieV60U)zd zAtGY|fs=KFEdk?`ql88XoF4!HNR17flktQX0RyuMg--%#i(DjdjdTAFNr}bi#QFdKNQ*=yF#pgFq)T-J#4iNDs3MN>&@su`d@WwNS!Md+#q6;X>U7SQg1 zXnMAr;4qSU z?VWBUbPYl1yam4+oM`N2v*u@eb9zODzBr+f%v8uao48&`4FICX9EIx06o_>8UV@97 zhKxYjL~3>H_Y{PN9n30L;C@ywy3!^+O5i2+OYEfsriNza7dZ%;s|d!fCqO8MngeiBu>9}P{R zfx$-jWWm;@`L0@0JEjBN+a2-KoK+~O-R4zR39TIzY#yy%cOHxjB9YE+#Tah-FxtWG7IVWLY{~3I=4?5Y6+@-~g@a_uxOIeopJ8fhbc%ndco9 zpipW@eKgu7JT5UP-dm94F02sOLIXZ*1{~6{R1TQXDAGN8rhw2kk?+&&V4!Vwp1*;O zeCGx>@iZN~d9r>72l-|IK3eGFC>}YqQ3W9#p?mmp973g?krKaJbXH&DVxi|9%TBkl z{po{ZNa!hzL?Rr47j&}EN83$AEm&lB>p%RNNm4fc%PJ)))&wg%Y-7!m8Y{qd4m%!f zKY;OkxZ1WD6*~)Rn0vAFA>JDP;e3j5FnllLh!M+dlk7@!#Gwr5?ql}GrV|aP?X3;X hbxkczEyrb9W~FjLjJLJ*WGf5GqQMatzAWF7{sYqlDCGbE delta 969 zcmX|9ZAep57(RD88(O=|YP(Z!yR?Z0HTqgqbIs+nb7TIvcS~*T%Bp4s&>D=Gb46v z13A_MB~FCenHw7L{?|Y-T*(`7X+$r-%#CUJo^(D0|8YoKN35J5Gq0|Uq$rzxag`zbjCikKF}p0^l1s$t8jpq z8Eekn4%o47-UF8LB>3SDeXnJnwBNA+ZK30ihJvq)5K1ewOsW(5X;ku*OoX+zha|kJ zQk>FiX8-BYH`qRyO+GHOk6B)EgEU-Q@HOUG#)=g%xXKI68*)s)_H}Y?j`2 zmR1CrYc4{GpQhtYFsE+4CL7WwurA+#_o>%DM@Vd-MRbMfZ>OVuI>r+5ZWDNnl_GR} zF(!=zqU$90jfsC{hS{MMPK;U9?4#H$T=wchxGb-aiTMFs0+V&@Vi8OPPMC6Yj{}9d zS3yCTyGquENxYZT_lJcaIQrra7aCvSCEMH%Qmt`BCHWrlcC|^X?SU4(Fi&>HC=%FZ z2YlYZau_fsdAM`rh!2ya5)1M;1jtc^t^SWKtl~emu~Gy3*#cva53oW2Dyi}?0l)^8 zY-B$Q5eg-;)e${#D)-05({I5gslAmLvEk@*xW6rQFAqYY^j=s+R|i70zH~_H5>JQV z*%^Wo@UBUfoUmct_ns55W$2srwocDRZ&IyfJLL-)B z++tsQ^Ez!5zZ4I@B^!~Zw-(*Os7GJDSrkz@D=3MfF_tW8g8gI3sC9fu5wcj$=;=}y zT0sl;d;}hgWe3qXQypRC(6bKLi9K1Ori}5grb$X=a!JO#tFw^>OtO>nB2Vyq89IRSLEH9F5y&*r28<|>)XwWqxTMNC?)RBfhX-P> zx{gw9fCQ54ba!;&eJ$XWY(GaYs>kf#7Qq&bJ6PO|JTeBdW8-)4^WEtIJfM?~HG^ q)X;J6WV@$T@^p9ueyQnDqjc7D;Z!+ukP6*Rs`Er=f!=kkd;cFt@m)Ls delta 819 zcmY*XUr19?7{BN4WYdI2=|lMM2A4>PKv1NAFgNei$O17XXp~~qFovw%3S(~bZnVQ` zrCcE`Ay+>1P|&!;63n(VSNISGg=7zc5Qi}Ep(GT%ePQMT?~S} zC)cT2_9>Bjkq|)k4&p=vqG;ORNbQ9@s}EeuIcnd@ab^o+j+0y1%5mZ!=3oc_sg~I- zPUaE-GPqt1DECr;e6Xbj#x1tn%e))PI910oOE_Miw>sSl4759*+6RIDUi)0A4)YH1 zUkE=W8F3(&{xcHUp$=1*mB0>l8Cvw0sNaZ{i6FTflZpxiU#D=bQ>bfkHa4{>2Rl7p zL7$J+RJ3>aydLkx!%~y?YR6?ym*nyGsD7#CRI_x&(|bWLCzVDcsm>D%1f%ax|M5R3 CM`Q*7 From 3b5d20d48c03f4c8319cfba6e34d703665fb08da Mon Sep 17 00:00:00 2001 From: Raizuto Date: Tue, 11 Sep 2018 00:59:16 -0500 Subject: [PATCH 464/755] Tooltip-Typo-Fix Caught a typo in the Maps & Compasses tooltip and a missing space. --- Settings.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Settings.py b/Settings.py index 07ca0000a..96bdc39fb 100644 --- a/Settings.py +++ b/Settings.py @@ -850,10 +850,10 @@ def parse_custom_navi_color(s): This will add a small amount of money and refill items to the pool. - 'Dungeon': Maps and Compasses can onlyappear + 'Dungeon': Maps and Compasses can only appear in their respective dungeon. - 'Anywhere': Maps and Compaases can appear + 'Anywhere': Maps and Compasses can appear anywhere in the world. Setting 'Remove' or 'Anywhere' will add 2 From a1405fd4f2e6c58d528b74db5a14347487295303 Mon Sep 17 00:00:00 2001 From: Raizuto Date: Tue, 11 Sep 2018 00:53:23 -0500 Subject: [PATCH 465/755] Color-Fixes-and-New-Colors I changed Blood Red & Blood Orange hex codes to be accurate with their names. Then I changed Yellow & Pink to more appropriate descriptive names. I also added a hand full more colors. --- Patches.py | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/Patches.py b/Patches.py index 35846b81a..ec890e692 100644 --- a/Patches.py +++ b/Patches.py @@ -21,21 +21,29 @@ "Goron Red": [0x64, 0x14, 0x00], "Zora Blue": [0x00, 0x3C, 0x64], "Black": [0x30, 0x30, 0x30], - "White": [0xF0, 0xF0, 0xFF], + "Azure Blue": [0x13, 0x9E, 0xD8], + "Vivid Cyan": [0x13, 0xE9, 0xD8], + "Light Red": [0xF8, 0x7C, 0x6D], + "Fuchsia":[0xFF, 0x00, 0xFF], "Purple": [0x95, 0x30, 0x80], - "Yellow": [0xE0, 0xD8, 0x60], + "Twitch Purple": [0x64, 0x41, 0xA5], + "Purple Heart": [0x8A, 0x2B, 0xE2], + "Persian Rose": [0xFF, 0x14, 0x93], + "Dirty Yellow": [0xE0, 0xD8, 0x60], + "Blush Pink": [0xF8, 0x6C, 0xF8], + "Hot Pink": [0xFF, 0x69, 0xB4], + "Rose Pink": [0xFF, 0x90, 0xB3], + "White": [0xF0, 0xF0, 0xFF], "Orange": [0xE0, 0x79, 0x40], - "Pink": [0xFF, 0x90, 0xB3], "Gray": [0xA0, 0xA0, 0xB0], - "Brown": [0x95, 0x59, 0x0A], "Gold": [0xD8, 0xB0, 0x60], "Silver": [0xD0, 0xF0, 0xFF], "Beige": [0xC0, 0xA0, 0xA0], "Teal": [0x30, 0xD0, 0xB0], + "Blood Red": [0x83, 0x03, 0x03], + "Blood Orange": [0xFE, 0x4B, 0x03], "Royal Blue": [0x40, 0x00, 0x90], "Sonic Blue": [0x50, 0x90, 0xE0], - "Blood Red": [0x30, 0x10, 0x10], - "Blood Orange": [0xF0, 0x30, 0x30], "NES Green": [0x00, 0xD0, 0x00], "Dark Green": [0x00, 0x25, 0x18], "Lumen": [80, 140, 240], @@ -43,6 +51,7 @@ NaviColors = { "Custom Color": [0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00], + "Gold": [0xFE, 0xCC, 0x3C, 0xFF, 0xFE, 0xC0, 0x07, 0x00], "White": [0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00], "Green": [0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00], "Light Blue": [0x96, 0x96, 0xFF, 0xFF, 0x96, 0x96, 0xFF, 0x00], @@ -1953,4 +1962,4 @@ def disable_music(rom): blank_track = rom.read_bytes(0xB89AE0 + (0 * 0x10), 0x10) for bgm in bgm_sequence_ids: rom.write_bytes(0xB89AE0 + (bgm[1] * 0x10), blank_track) - \ No newline at end of file + From 312f6b3d0c4df23b2f449196383019bb19d7ff25 Mon Sep 17 00:00:00 2001 From: Raizuto <42843413+Raizuto@users.noreply.github.com> Date: Tue, 11 Sep 2018 14:21:23 -0500 Subject: [PATCH 466/755] Moved White back to its original spot --- Patches.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Patches.py b/Patches.py index ec890e692..c9663f0b7 100644 --- a/Patches.py +++ b/Patches.py @@ -21,6 +21,7 @@ "Goron Red": [0x64, 0x14, 0x00], "Zora Blue": [0x00, 0x3C, 0x64], "Black": [0x30, 0x30, 0x30], + "White": [0xF0, 0xF0, 0xFF], "Azure Blue": [0x13, 0x9E, 0xD8], "Vivid Cyan": [0x13, 0xE9, 0xD8], "Light Red": [0xF8, 0x7C, 0x6D], @@ -33,7 +34,6 @@ "Blush Pink": [0xF8, 0x6C, 0xF8], "Hot Pink": [0xFF, 0x69, 0xB4], "Rose Pink": [0xFF, 0x90, 0xB3], - "White": [0xF0, 0xF0, 0xFF], "Orange": [0xE0, 0x79, 0x40], "Gray": [0xA0, 0xA0, 0xB0], "Gold": [0xD8, 0xB0, 0x60], From 86156e75a4e2ca4ebac2d8cbf3876926b198f7e7 Mon Sep 17 00:00:00 2001 From: Raizuto <42843413+Raizuto@users.noreply.github.com> Date: Tue, 11 Sep 2018 15:25:12 -0500 Subject: [PATCH 467/755] Added Majora Mask Purple --- Patches.py | 1 + 1 file changed, 1 insertion(+) diff --git a/Patches.py b/Patches.py index c9663f0b7..cf4029f3c 100644 --- a/Patches.py +++ b/Patches.py @@ -27,6 +27,7 @@ "Light Red": [0xF8, 0x7C, 0x6D], "Fuchsia":[0xFF, 0x00, 0xFF], "Purple": [0x95, 0x30, 0x80], + "MM Purple": [0x50, 0x52, 0x9A], "Twitch Purple": [0x64, 0x41, 0xA5], "Purple Heart": [0x8A, 0x2B, 0xE2], "Persian Rose": [0xFF, 0x14, 0x93], From 82a15aa5c4065bc1eca8dac65919f13b68b311cc Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 12 Sep 2018 09:31:51 -0400 Subject: [PATCH 468/755] Shop refill items must be placed in their own world (Issue #109) --- ItemList.py | 4 +++- Rules.py | 1 + version.py | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/ItemList.py b/ItemList.py index af67d134d..4c71c837b 100644 --- a/ItemList.py +++ b/ItemList.py @@ -390,7 +390,9 @@ def generate_itempool(world): (pool, placed_items) = get_pool_core(world) world.itempool = ItemFactory(pool) for (location, item) in placed_items.items(): - world.push_item(location, ItemFactory(item)) + new_item = ItemFactory(item) + new_item.world = world + world.push_item(location, new_item) world.get_location(location).event = True choose_trials(world) diff --git a/Rules.py b/Rules.py index 544b9b23c..16fe0c11b 100644 --- a/Rules.py +++ b/Rules.py @@ -305,6 +305,7 @@ def global_rules(world): if location.type != 'Chest': forbid_item(location, 'Ice Trap') add_item_rule(location, lambda i: not (i.type == 'Song' and not i.world.shuffle_song_items and i.world.id != location.world.id)) + add_item_rule(location, lambda i: not (i.type == 'Shop' and i.world.id != location.world.id)) if location.type == 'Shop': forbid_item(location, 'Biggoron Sword') diff --git a/version.py b/version.py index 7db1f83b5..c372281dc 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.17.5 f.LUM' +__version__ = '2.17.6 f.LUM' From fb482fecdc47b9b0951c0fcf69cf7fca4b736cac Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 12 Sep 2018 09:33:17 -0400 Subject: [PATCH 469/755] Fix scrub count in tooltip (Issue #107) --- Settings.py | 2 +- version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Settings.py b/Settings.py index 96bdc39fb..0f2ac1041 100644 --- a/Settings.py +++ b/Settings.py @@ -769,7 +769,7 @@ def parse_custom_navi_color(s): 'default': 'unchecked', 'tooltip':'''\ Every Deku Salescrub will give - a random item. This adds 31 new + a random item. This adds 33 new item locations. Scrubs prices are all reduced to 10 Rupees. ''' diff --git a/version.py b/version.py index c372281dc..ce2a54093 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.17.6 f.LUM' +__version__ = '2.17.7 f.LUM' From ca44baee0812cabe0eddbb453f251732c536a004 Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 12 Sep 2018 09:35:41 -0400 Subject: [PATCH 470/755] Fix typo in shopsanity tooltip (Issue #112) --- Settings.py | 10 +++++----- version.py | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Settings.py b/Settings.py index 0f2ac1041..b57128c73 100644 --- a/Settings.py +++ b/Settings.py @@ -810,11 +810,11 @@ def parse_custom_navi_color(s): Shop contents are randomized. (X Items): Shops have X random - non-shop items in every. They - will always be on the left side. - This means every shop will have - more possible item locations. - So +2 means 2 items per shop. + non-shop items. They will always + be on the left side. This means + every shop will have more + possible item locations. So +2 + means 2 items per shop. (Random): Each shop will have a random number of non-shop diff --git a/version.py b/version.py index ce2a54093..dc052ccb0 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.17.7 f.LUM' +__version__ = '2.17.8 f.LUM' From 1253d410582dcd61fffe487b579f8abe0ee9c9c0 Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 12 Sep 2018 09:41:49 -0400 Subject: [PATCH 471/755] Fix some hint casing and change ganon castle hint names (Issue #115) --- Regions.py | 96 +++++++++++++++++++++++++++--------------------------- version.py | 2 +- 2 files changed, 49 insertions(+), 49 deletions(-) diff --git a/Regions.py b/Regions.py index 7e19db649..877076a31 100644 --- a/Regions.py +++ b/Regions.py @@ -802,21 +802,21 @@ def _create_region(name, type, locations=None, exits=None): 'Spirit Temple Hallway Right Invisible Chest': (0x2B900C6, None, 0x6915, 'Chest', 0x06, 'Spirit Temple'), 'Spirit Temple Boss Key Chest': (0x2BA4162, None, 0x27EA, 'Chest', 0x06, 'Spirit Temple'), 'Spirit Temple Topmost Chest': (0x2BCF0FE, None, 0x8CF2, 'Chest', 0x06, 'Spirit Temple'), - 'Ganons Castle Forest Trial Chest': (0x31F106E, None, 0x7889, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Water Trial Left Chest': (0x31D7236, None, 0x5F87, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Water Trial Right Chest': (0x31D7226, None, 0x5906, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Shadow Trial First Chest': (0x32350CA, None, 0x5888, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Shadow Trial Second Chest': (0x32350BA, None, 0x36C5, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Spirit Trial First Chest': (0x3268132, None, 0x8D72, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Spirit Trial Second Chest': (0x3268142, None, 0x6954, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Light Trial First Left Chest': (0x321B11E, None, 0x588C, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Light Trial Second Left Chest': (0x321B10E, None, 0x5F8B, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Light Trial Third Left Chest': (0x321B12E, None, 0x590D, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Light Trial First Right Chest': (0x321B13E, None, 0x5F8E, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Light Trial Second Right Chest': (0x321B0FE, None, 0x596A, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Light Trial Third Right Chest': (0x321B14E, None, 0x5F8F, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Light Trail Invisible Enemies Chest': (0x321B15E, None, 0x7850, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Light Trial Lullaby Chest': (0x321B17E, None, 0x8851, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle Forest Trial Chest': (0x31F106E, None, 0x7889, 'Chest', 0x0D, 'Ganon\'s Castle'), + 'Ganons Castle Water Trial Left Chest': (0x31D7236, None, 0x5F87, 'Chest', 0x0D, 'Ganon\'s Castle'), + 'Ganons Castle Water Trial Right Chest': (0x31D7226, None, 0x5906, 'Chest', 0x0D, 'Ganon\'s Castle'), + 'Ganons Castle Shadow Trial First Chest': (0x32350CA, None, 0x5888, 'Chest', 0x0D, 'Ganon\'s Castle'), + 'Ganons Castle Shadow Trial Second Chest': (0x32350BA, None, 0x36C5, 'Chest', 0x0D, 'Ganon\'s Castle'), + 'Ganons Castle Spirit Trial First Chest': (0x3268132, None, 0x8D72, 'Chest', 0x0D, 'Ganon\'s Castle'), + 'Ganons Castle Spirit Trial Second Chest': (0x3268142, None, 0x6954, 'Chest', 0x0D, 'Ganon\'s Castle'), + 'Ganons Castle Light Trial First Left Chest': (0x321B11E, None, 0x588C, 'Chest', 0x0D, 'Ganon\'s Castle'), + 'Ganons Castle Light Trial Second Left Chest': (0x321B10E, None, 0x5F8B, 'Chest', 0x0D, 'Ganon\'s Castle'), + 'Ganons Castle Light Trial Third Left Chest': (0x321B12E, None, 0x590D, 'Chest', 0x0D, 'Ganon\'s Castle'), + 'Ganons Castle Light Trial First Right Chest': (0x321B13E, None, 0x5F8E, 'Chest', 0x0D, 'Ganon\'s Castle'), + 'Ganons Castle Light Trial Second Right Chest': (0x321B0FE, None, 0x596A, 'Chest', 0x0D, 'Ganon\'s Castle'), + 'Ganons Castle Light Trial Third Right Chest': (0x321B14E, None, 0x5F8F, 'Chest', 0x0D, 'Ganon\'s Castle'), + 'Ganons Castle Light Trail Invisible Enemies Chest': (0x321B15E, None, 0x7850, 'Chest', 0x0D, 'Ganon\'s Castle'), + 'Ganons Castle Light Trial Lullaby Chest': (0x321B17E, None, 0x8851, 'Chest', 0x0D, 'Ganon\'s Castle'), 'Ganons Tower Boss Key Chest': (0x2F040EE, None, 0x27EB, 'Chest', 0x0A, 'my tower'), 'Field West Castle Town Grotto Chest': (None, None, 0x00, 'Chest', 0x3E, 'Hyrule Field'), 'Remote Southern Grotto Chest': (None, None, 0x02, 'Chest', 0x3E, 'Hyrule Field'), @@ -848,8 +848,8 @@ def _create_region(name, type, locations=None, exits=None): 'Desert Colossus Fairy Reward': (0x3481403, None, 0x5E, 'NPC', 0x3D, 'Desert Colossus'), 'Mountain Summit Fairy Reward': (0x3481404, None, 0x51, 'NPC', 0x3B, 'Death Mountain Trail'), 'Crater Fairy Reward': (0x3481405, None, 0x52, 'NPC', 0x3B, 'Death Mountain Crater'), - 'Ganons Castle Fairy Reward': (0x3481406, None, 0x53, 'NPC', 0x3B, 'outside my castle'), - 'Treasure Chest Game': (None, None, 0x0A, 'Chest', 0x10, 'the market'), + 'Ganons Castle Fairy Reward': (0x3481406, None, 0x53, 'NPC', 0x3B, 'outside Ganon\'s Castle'), + 'Treasure Chest Game': (None, None, 0x0A, 'Chest', 0x10, 'the Market'), 'Darunias Joy': (0xCF1BFF, None, 0x54, 'NPC', 0x62, 'Goron City'), 'Diving Minigame': (0xE01A2B, 0xE01AA7, 0x37, 'NPC', 0x58, 'Zora\'s Domain'), 'Child Fishing': (0xDCBFBF, None, 0x3E, 'NPC', 0x49, 'Lake Hylia'), @@ -857,9 +857,9 @@ def _create_region(name, type, locations=None, exits=None): 'Diving in the Lab': (0xE2CB97, None, 0x3E, 'NPC', 0x38, 'Lake Hylia'), 'Link the Goron': (0xED30EB, 0xED64F3, 0x2C, 'NPC', 0x62, 'Goron City'), 'King Zora Thawed': (0xE56AD7, None, 0x2D, 'NPC', 0x58, 'Zora\'s Domain'), - 'Bombchu Bowling Bomb Bag': (0xE2F093, None, 0x34, 'NPC', 0x4B, 'the market'), - 'Bombchu Bowling Piece of Heart': (0xE2F097, None, 0x3E, 'NPC', 0x4B, 'the market'), - 'Dog Lady': (0xE65163, 0xE661BB, 0x3E, 'NPC', 0x35, 'the market'), + 'Bombchu Bowling Bomb Bag': (0xE2F093, None, 0x34, 'NPC', 0x4B, 'the Market'), + 'Bombchu Bowling Piece of Heart': (0xE2F097, None, 0x3E, 'NPC', 0x4B, 'the Market'), + 'Dog Lady': (0xE65163, 0xE661BB, 0x3E, 'NPC', 0x35, 'the Market'), 'Skull Kid': (0xDF0F33, 0xDF0E9B, 0x3E, 'NPC', 0x5B, 'the Lost Woods'), 'Ocarina Memory Game': (0xDF264F, None, 0x76, 'NPC', 0x5B, 'the Lost Woods'), '10 Gold Skulltulla Reward': (0xEA7173, None, 0x45, 'NPC', 0x50, 'Kakariko Village'), @@ -872,7 +872,7 @@ def _create_region(name, type, locations=None, exits=None): 'Frogs in the Rain': (0xDB1387, None, 0x3E, 'NPC', 0x54, 'Zora River'), 'Horseback Archery 1000 Points': (0xE12B6F, 0xE12AA3, 0x3E, 'NPC', 0x5D, 'Gerudo Fortress'), 'Horseback Archery 1500 Points': (0xE12BC3, 0xE12AFB, 0x30, 'NPC', 0x5D, 'Gerudo Fortress'), - 'Child Shooting Gallery': (0xD35EF3, None, 0x60, 'NPC', 0x42, 'the market'), + 'Child Shooting Gallery': (0xD35EF3, None, 0x60, 'NPC', 0x42, 'the Market'), 'Adult Shooting Gallery': (0xD35F5B, None, 0x30, 'NPC', 0x42, 'Kakariko Village'), 'Target in Woods': (0xE59CDF, None, 0x60, 'NPC', 0x5B, 'the Lost Woods'), 'Deku Theater Skull Mask': (0xEC9A87, None, 0x77, 'NPC', 0x3E, 'the Lost Woods'), @@ -881,7 +881,7 @@ def _create_region(name, type, locations=None, exits=None): 'Biggoron': (0xED338F, 0xED650F, 0x57, 'NPC', 0x60, 'Death Mountain Trail'), 'Anjus Chickens': (0xE1E7A7, None, 0x0F, 'NPC', 0x52, 'Kakariko Village'), 'Talons Chickens': (0xCC14EB, None, 0x14, 'NPC', 0x4C, 'Lon Lon Ranch'), - '10 Big Poes': (0xEE6AEF, None, 0x0F, 'NPC', 0x4D, 'the market'), + '10 Big Poes': (0xEE6AEF, None, 0x0F, 'NPC', 0x4D, 'the Market'), 'Rolling Goron as Child': (0xED296F, 0xED6503, 0x34, 'NPC', 0x62, 'Goron City'), 'Lake Hylia Sun': (0xE9E1F2, None, 0x5B08, 'Chest', 0x57, 'Lake Hylia'), 'Underwater Bottle': (0xDE10FB, None, 0x15, 'NPC', 0x57, 'Lake Hylia'), @@ -1062,10 +1062,10 @@ def _create_region(name, type, locations=None, exits=None): 'GS Lost Woods Above Stage': (None, None, 0x04, 'GS Token', 0x0D, 'the Lost Woods'), 'GS Sacred Forest Meadow': (None, None, 0x08, 'GS Token', 0x0D, 'Sacred Forest Meadow'), - 'GS Outside Ganon\'s Castle': (None, None, 0x01, 'GS Token', 0x0E, 'outside my castle'), + 'GS Outside Ganon\'s Castle': (None, None, 0x01, 'GS Token', 0x0E, 'outside Ganon\'s Castle'), 'GS Hyrule Castle Grotto': (None, None, 0x02, 'GS Token', 0x0E, 'Hyrule Castle'), 'GS Hyrule Castle Tree': (None, None, 0x04, 'GS Token', 0x0E, 'Hyrule Castle'), - 'GS Castle Market Guard House': (None, None, 0x08, 'GS Token', 0x0E, 'the market'), + 'GS Castle Market Guard House': (None, None, 0x08, 'GS Token', 0x0E, 'the Market'), 'GS Mountain Crater Bean Patch': (None, None, 0x01, 'GS Token', 0x0F, 'Death Mountain Crater'), 'GS Mountain Trail Bean Patch': (None, None, 0x02, 'GS Token', 0x0F, 'Death Mountain Trail'), @@ -1128,30 +1128,30 @@ def _create_region(name, type, locations=None, exits=None): 'Kakariko Potion Shop Item 6': (shop_address(1, 5), None, 0x35, 'Shop', 0x30, 'Kakariko Village'), 'Kakariko Potion Shop Item 7': (shop_address(1, 6), None, 0x36, 'Shop', 0x30, 'Kakariko Village'), 'Kakariko Potion Shop Item 8': (shop_address(1, 7), None, 0x37, 'Shop', 0x30, 'Kakariko Village'), - 'Bombchu Shop Item 1': (shop_address(2, 0), None, 0x30, 'Shop', 0x32, 'the market'), - 'Bombchu Shop Item 2': (shop_address(2, 1), None, 0x31, 'Shop', 0x32, 'the market'), - 'Bombchu Shop Item 3': (shop_address(2, 2), None, 0x32, 'Shop', 0x32, 'the market'), - 'Bombchu Shop Item 4': (shop_address(2, 3), None, 0x33, 'Shop', 0x32, 'the market'), - 'Bombchu Shop Item 5': (shop_address(2, 4), None, 0x34, 'Shop', 0x32, 'the market'), - 'Bombchu Shop Item 6': (shop_address(2, 5), None, 0x35, 'Shop', 0x32, 'the market'), - 'Bombchu Shop Item 7': (shop_address(2, 6), None, 0x36, 'Shop', 0x32, 'the market'), - 'Bombchu Shop Item 8': (shop_address(2, 7), None, 0x37, 'Shop', 0x32, 'the market'), - 'Castle Town Potion Shop Item 1': (shop_address(3, 0), None, 0x30, 'Shop', 0x31, 'the market'), - 'Castle Town Potion Shop Item 2': (shop_address(3, 1), None, 0x31, 'Shop', 0x31, 'the market'), - 'Castle Town Potion Shop Item 3': (shop_address(3, 2), None, 0x32, 'Shop', 0x31, 'the market'), - 'Castle Town Potion Shop Item 4': (shop_address(3, 3), None, 0x33, 'Shop', 0x31, 'the market'), - 'Castle Town Potion Shop Item 5': (shop_address(3, 4), None, 0x34, 'Shop', 0x31, 'the market'), - 'Castle Town Potion Shop Item 6': (shop_address(3, 5), None, 0x35, 'Shop', 0x31, 'the market'), - 'Castle Town Potion Shop Item 7': (shop_address(3, 6), None, 0x36, 'Shop', 0x31, 'the market'), - 'Castle Town Potion Shop Item 8': (shop_address(3, 7), None, 0x37, 'Shop', 0x31, 'the market'), - 'Castle Town Bazaar Item 1': (shop_address(4, 0), None, 0x30, 'Shop', 0x2C, 'the market'), - 'Castle Town Bazaar Item 2': (shop_address(4, 1), None, 0x31, 'Shop', 0x2C, 'the market'), - 'Castle Town Bazaar Item 3': (shop_address(4, 2), None, 0x32, 'Shop', 0x2C, 'the market'), - 'Castle Town Bazaar Item 4': (shop_address(4, 3), None, 0x33, 'Shop', 0x2C, 'the market'), - 'Castle Town Bazaar Item 5': (shop_address(4, 4), None, 0x34, 'Shop', 0x2C, 'the market'), - 'Castle Town Bazaar Item 6': (shop_address(4, 5), None, 0x35, 'Shop', 0x2C, 'the market'), - 'Castle Town Bazaar Item 7': (shop_address(4, 6), None, 0x36, 'Shop', 0x2C, 'the market'), - 'Castle Town Bazaar Item 8': (shop_address(4, 7), None, 0x37, 'Shop', 0x2C, 'the market'), + 'Bombchu Shop Item 1': (shop_address(2, 0), None, 0x30, 'Shop', 0x32, 'the Market'), + 'Bombchu Shop Item 2': (shop_address(2, 1), None, 0x31, 'Shop', 0x32, 'the Market'), + 'Bombchu Shop Item 3': (shop_address(2, 2), None, 0x32, 'Shop', 0x32, 'the Market'), + 'Bombchu Shop Item 4': (shop_address(2, 3), None, 0x33, 'Shop', 0x32, 'the Market'), + 'Bombchu Shop Item 5': (shop_address(2, 4), None, 0x34, 'Shop', 0x32, 'the Market'), + 'Bombchu Shop Item 6': (shop_address(2, 5), None, 0x35, 'Shop', 0x32, 'the Market'), + 'Bombchu Shop Item 7': (shop_address(2, 6), None, 0x36, 'Shop', 0x32, 'the Market'), + 'Bombchu Shop Item 8': (shop_address(2, 7), None, 0x37, 'Shop', 0x32, 'the Market'), + 'Castle Town Potion Shop Item 1': (shop_address(3, 0), None, 0x30, 'Shop', 0x31, 'the Market'), + 'Castle Town Potion Shop Item 2': (shop_address(3, 1), None, 0x31, 'Shop', 0x31, 'the Market'), + 'Castle Town Potion Shop Item 3': (shop_address(3, 2), None, 0x32, 'Shop', 0x31, 'the Market'), + 'Castle Town Potion Shop Item 4': (shop_address(3, 3), None, 0x33, 'Shop', 0x31, 'the Market'), + 'Castle Town Potion Shop Item 5': (shop_address(3, 4), None, 0x34, 'Shop', 0x31, 'the Market'), + 'Castle Town Potion Shop Item 6': (shop_address(3, 5), None, 0x35, 'Shop', 0x31, 'the Market'), + 'Castle Town Potion Shop Item 7': (shop_address(3, 6), None, 0x36, 'Shop', 0x31, 'the Market'), + 'Castle Town Potion Shop Item 8': (shop_address(3, 7), None, 0x37, 'Shop', 0x31, 'the Market'), + 'Castle Town Bazaar Item 1': (shop_address(4, 0), None, 0x30, 'Shop', 0x2C, 'the Market'), + 'Castle Town Bazaar Item 2': (shop_address(4, 1), None, 0x31, 'Shop', 0x2C, 'the Market'), + 'Castle Town Bazaar Item 3': (shop_address(4, 2), None, 0x32, 'Shop', 0x2C, 'the Market'), + 'Castle Town Bazaar Item 4': (shop_address(4, 3), None, 0x33, 'Shop', 0x2C, 'the Market'), + 'Castle Town Bazaar Item 5': (shop_address(4, 4), None, 0x34, 'Shop', 0x2C, 'the Market'), + 'Castle Town Bazaar Item 6': (shop_address(4, 5), None, 0x35, 'Shop', 0x2C, 'the Market'), + 'Castle Town Bazaar Item 7': (shop_address(4, 6), None, 0x36, 'Shop', 0x2C, 'the Market'), + 'Castle Town Bazaar Item 8': (shop_address(4, 7), None, 0x37, 'Shop', 0x2C, 'the Market'), 'Kakariko Bazaar Item 1': (shop_address(5, 0), None, 0x38, 'Shop', 0x2C, 'Kakariko Village'), 'Kakariko Bazaar Item 2': (shop_address(5, 1), None, 0x39, 'Shop', 0x2C, 'Kakariko Village'), 'Kakariko Bazaar Item 3': (shop_address(5, 2), None, 0x3A, 'Shop', 0x2C, 'Kakariko Village'), diff --git a/version.py b/version.py index dc052ccb0..8bb671c1c 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.17.8 f.LUM' +__version__ = '2.17.9 f.LUM' From 34165d93d6f022178a2e5cacbd0737f72c4abc19 Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 12 Sep 2018 09:43:48 -0400 Subject: [PATCH 472/755] Don't consider shop refills as "Good Items" for hints (Issue #117) --- Hints.py | 1 + version.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Hints.py b/Hints.py index 4b9d0e696..3bccd36aa 100644 --- a/Hints.py +++ b/Hints.py @@ -147,6 +147,7 @@ def buildGossipHints(world): if not locationWorld.name in checkedLocations and \ locationWorld.item.advancement and \ locationWorld.item.type != 'Event' and \ + locationWorld.item.type != 'Shop' and \ not locationWorld.event and \ locationWorld.item.name != 'Gold Skulltulla Token' and \ not locationWorld.item.key] diff --git a/version.py b/version.py index 8bb671c1c..57d72e05d 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.17.9 f.LUM' +__version__ = '2.17.10 f.LUM' From d1c985ae98c69f816d2cff1915b1c896a475f30b Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 12 Sep 2018 09:48:38 -0400 Subject: [PATCH 473/755] Add missing Player # text for non-shop items in shops (Issue #109) --- Patches.py | 2 +- version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Patches.py b/Patches.py index 131995934..85fba08fe 100644 --- a/Patches.py +++ b/Patches.py @@ -1883,7 +1883,7 @@ def place_shop_items(rom, world, shop_items, messages, locations, init_shop_id=F shop_item.description_message = 0x8100 + message_id shop_item.purchase_message = 0x8100 + message_id + 1 if world.world_count > 1: - update_message_by_id(messages, shop_item.description_message, '\x08\x05\x41%s %d Rupees\x01\x05\x40Special deal! ONE LEFT!\x09\x0A\x02' % (location.item.name, location.price), 0x03) + update_message_by_id(messages, shop_item.description_message, '\x08\x05\x41%s %d Rupees\x01\x05\x42Player \x18\x05\x40\x01Special deal! ONE LEFT!\x09\x0A\x02' % (location.item.name, location.price), 0x03) else: update_message_by_id(messages, shop_item.description_message, '\x08\x05\x41%s %d Rupees\x01\x05\x40Special deal! ONE LEFT!\x01Get it while it lasts!\x09\x0A\x02' % (location.item.name, location.price), 0x03) update_message_by_id(messages, shop_item.purchase_message, '\x08%s %d Rupees\x09\x01\x01\x1B\x05\x42Buy\x01Don\'t buy\x05\x40\x02' % (location.item.name, location.price), 0x03) diff --git a/version.py b/version.py index 57d72e05d..f589b9ce2 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.17.10 f.LUM' +__version__ = '2.17.11 f.LUM' From 4b845e6e5eea4aa803fdccbf77778b60edcedd5c Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 12 Sep 2018 10:08:14 -0400 Subject: [PATCH 474/755] Scrub spawning code is based on scrub option (Issue #114) --- Patches.py | 19 ++++++++++--------- version.py | 2 +- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/Patches.py b/Patches.py index 85fba08fe..cb8e64c53 100644 --- a/Patches.py +++ b/Patches.py @@ -1247,15 +1247,6 @@ def write_save_table(rom): rom.write_int16(world.get_location('Kakariko Bazaar Item 8').address, ItemFactory('Buy Bombchu (5)').index) - # Revert Deku Scrubs changes - rom.write_int32s(0xEBB85C, [ - 0x24010002, # addiu at, zero, 2 - 0x3C038012, # lui v1, 0x8012 - 0x14410004, # bne v0, at, 0xd8 - 0x2463A5D0, # addiu v1, v1, -0x5a30 - 0x94790EF0])# lhu t9, 0xef0(v1) - rom.write_int32(0xDF7CB0, - 0xA44F0EF0) # sh t7, 0xef0(v0) else: # kokiri shop shop_objs = place_shop_items(rom, world, shop_items, messages, @@ -1334,6 +1325,16 @@ def write_save_table(rom): # update actor IDs set_deku_salesman_data(rom) + else: + # Revert Deku Scrubs changes + rom.write_int32s(0xEBB85C, [ + 0x24010002, # addiu at, zero, 2 + 0x3C038012, # lui v1, 0x8012 + 0x14410004, # bne v0, at, 0xd8 + 0x2463A5D0, # addiu v1, v1, -0x5a30 + 0x94790EF0])# lhu t9, 0xef0(v1) + rom.write_int32(0xDF7CB0, + 0xA44F0EF0) # sh t7, 0xef0(v0) # Update grotto id data set_grotto_id_data(rom) diff --git a/version.py b/version.py index f589b9ce2..241ba2fe0 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.17.11 f.LUM' +__version__ = '2.17.12 f.LUM' From 1d54366ac0e632d604568eb0dcc1e93793ba7934 Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 12 Sep 2018 10:16:52 -0400 Subject: [PATCH 475/755] Update shop models even when not shopsanity (Issue #104) --- Patches.py | 137 ++++++++++++++++++++++++----------------------------- version.py | 2 +- 2 files changed, 64 insertions(+), 75 deletions(-) diff --git a/Patches.py b/Patches.py index cb8e64c53..e8222d13e 100644 --- a/Patches.py +++ b/Patches.py @@ -1237,80 +1237,69 @@ def write_save_table(rom): update_message_by_id(messages, shop_items[0x001C].description_message, "\x08\x05\x41Bombchu (10 pieces) 99 Rupees\x01\x05\x40This looks like a toy mouse, but\x01it's actually a self-propelled time\x01bomb!\x09\x0A") update_message_by_id(messages, shop_items[0x001C].purchase_message, "\x08Bombchu 10 pieces 100 Rupees\x09\x01\x01\x1B\x05\x42Buy\x01Don't buy\x05\x40") - if world.shopsanity == 'off': - # Add more bombchus to make them more accessible - if world.bombchus_in_logic: - rom.write_int16(world.get_location('Kokiri Shop Item 8').address, - ItemFactory('Buy Bombchu (5)').index) - rom.write_int16(world.get_location('Castle Town Bazaar Item 8').address, - ItemFactory('Buy Bombchu (5)').index) - rom.write_int16(world.get_location('Kakariko Bazaar Item 8').address, - ItemFactory('Buy Bombchu (5)').index) - - else: - # kokiri shop - shop_objs = place_shop_items(rom, world, shop_items, messages, - world.get_region('Kokiri Shop').locations, True) - shop_objs |= {0x00FC, 0x00B2, 0x0101, 0x0102, 0x00FD, 0x00C5} # Shop objects - rom.write_byte(0x2587029, len(shop_objs)) - rom.write_int32(0x258702C, 0x0300F600) - rom.write_int16s(0x2596600, list(shop_objs)) - - # kakariko bazaar - shop_objs = place_shop_items(rom, world, shop_items, messages, - world.get_region('Kakariko Bazaar').locations) - shop_objs |= {0x005B, 0x00B2, 0x00C5, 0x0107, 0x00C9, 0x016B} # Shop objects - rom.write_byte(0x28E4029, len(shop_objs)) - rom.write_int32(0x28E402C, 0x03007A40) - rom.write_int16s(0x28EBA40, list(shop_objs)) - - # castle town bazaar - shop_objs = place_shop_items(rom, world, shop_items, messages, - world.get_region('Castle Town Bazaar').locations) - shop_objs |= {0x005B, 0x00B2, 0x00C5, 0x0107, 0x00C9, 0x016B} # Shop objects - rom.write_byte(0x3489029, len(shop_objs)) - rom.write_int32(0x348902C, 0x03007A40) - rom.write_int16s(0x3490A40, list(shop_objs)) - - # goron shop - shop_objs = place_shop_items(rom, world, shop_items, messages, - world.get_region('Goron Shop').locations) - shop_objs |= {0x00C9, 0x00B2, 0x0103, 0x00AF} # Shop objects - rom.write_byte(0x2D33029, len(shop_objs)) - rom.write_int32(0x2D3302C, 0x03004340) - rom.write_int16s(0x2D37340, list(shop_objs)) - - # zora shop - shop_objs = place_shop_items(rom, world, shop_items, messages, - world.get_region('Zora Shop').locations) - shop_objs |= {0x005B, 0x00B2, 0x0104, 0x00FE} # Shop objects - rom.write_byte(0x2D5B029, len(shop_objs)) - rom.write_int32(0x2D5B02C, 0x03004B40) - rom.write_int16s(0x2D5FB40, list(shop_objs)) - - # kakariko potion shop - shop_objs = place_shop_items(rom, world, shop_items, messages, - world.get_region('Kakariko Potion Shop Front').locations) - shop_objs |= {0x0159, 0x00B2, 0x0175, 0x0122} # Shop objects - rom.write_byte(0x2D83029, len(shop_objs)) - rom.write_int32(0x2D8302C, 0x0300A500) - rom.write_int16s(0x2D8D500, list(shop_objs)) - - # market potion shop - shop_objs = place_shop_items(rom, world, shop_items, messages, - world.get_region('Castle Town Potion Shop').locations) - shop_objs |= {0x0159, 0x00B2, 0x0175, 0x00C5, 0x010C, 0x016B} # Shop objects - rom.write_byte(0x2DB0029, len(shop_objs)) - rom.write_int32(0x2DB002C, 0x03004E40) - rom.write_int16s(0x2DB4E40, list(shop_objs)) - - # bombchu shop - shop_objs = place_shop_items(rom, world, shop_items, messages, - world.get_region('Castle Town Bombchu Shop').locations) - shop_objs |= {0x0165, 0x00B2} # Shop objects - rom.write_byte(0x2DD8029, len(shop_objs)) - rom.write_int32(0x2DD802C, 0x03006A40) - rom.write_int16s(0x2DDEA40, list(shop_objs)) + # kokiri shop + shop_objs = place_shop_items(rom, world, shop_items, messages, + world.get_region('Kokiri Shop').locations, True) + shop_objs |= {0x00FC, 0x00B2, 0x0101, 0x0102, 0x00FD, 0x00C5} # Shop objects + rom.write_byte(0x2587029, len(shop_objs)) + rom.write_int32(0x258702C, 0x0300F600) + rom.write_int16s(0x2596600, list(shop_objs)) + + # kakariko bazaar + shop_objs = place_shop_items(rom, world, shop_items, messages, + world.get_region('Kakariko Bazaar').locations) + shop_objs |= {0x005B, 0x00B2, 0x00C5, 0x0107, 0x00C9, 0x016B} # Shop objects + rom.write_byte(0x28E4029, len(shop_objs)) + rom.write_int32(0x28E402C, 0x03007A40) + rom.write_int16s(0x28EBA40, list(shop_objs)) + + # castle town bazaar + shop_objs = place_shop_items(rom, world, shop_items, messages, + world.get_region('Castle Town Bazaar').locations) + shop_objs |= {0x005B, 0x00B2, 0x00C5, 0x0107, 0x00C9, 0x016B} # Shop objects + rom.write_byte(0x3489029, len(shop_objs)) + rom.write_int32(0x348902C, 0x03007A40) + rom.write_int16s(0x3490A40, list(shop_objs)) + + # goron shop + shop_objs = place_shop_items(rom, world, shop_items, messages, + world.get_region('Goron Shop').locations) + shop_objs |= {0x00C9, 0x00B2, 0x0103, 0x00AF} # Shop objects + rom.write_byte(0x2D33029, len(shop_objs)) + rom.write_int32(0x2D3302C, 0x03004340) + rom.write_int16s(0x2D37340, list(shop_objs)) + + # zora shop + shop_objs = place_shop_items(rom, world, shop_items, messages, + world.get_region('Zora Shop').locations) + shop_objs |= {0x005B, 0x00B2, 0x0104, 0x00FE} # Shop objects + rom.write_byte(0x2D5B029, len(shop_objs)) + rom.write_int32(0x2D5B02C, 0x03004B40) + rom.write_int16s(0x2D5FB40, list(shop_objs)) + + # kakariko potion shop + shop_objs = place_shop_items(rom, world, shop_items, messages, + world.get_region('Kakariko Potion Shop Front').locations) + shop_objs |= {0x0159, 0x00B2, 0x0175, 0x0122} # Shop objects + rom.write_byte(0x2D83029, len(shop_objs)) + rom.write_int32(0x2D8302C, 0x0300A500) + rom.write_int16s(0x2D8D500, list(shop_objs)) + + # market potion shop + shop_objs = place_shop_items(rom, world, shop_items, messages, + world.get_region('Castle Town Potion Shop').locations) + shop_objs |= {0x0159, 0x00B2, 0x0175, 0x00C5, 0x010C, 0x016B} # Shop objects + rom.write_byte(0x2DB0029, len(shop_objs)) + rom.write_int32(0x2DB002C, 0x03004E40) + rom.write_int16s(0x2DB4E40, list(shop_objs)) + + # bombchu shop + shop_objs = place_shop_items(rom, world, shop_items, messages, + world.get_region('Castle Town Bombchu Shop').locations) + shop_objs |= {0x0165, 0x00B2} # Shop objects + rom.write_byte(0x2DD8029, len(shop_objs)) + rom.write_int32(0x2DD802C, 0x03006A40) + rom.write_int16s(0x2DDEA40, list(shop_objs)) if world.shuffle_scrubs: # Rebuild Deku Salescrub Item Table diff --git a/version.py b/version.py index 241ba2fe0..22e42e7cd 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.17.12 f.LUM' +__version__ = '2.17.13 f.LUM' From 14186050172fae2eca773958e51480772d676156 Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 12 Sep 2018 10:22:40 -0400 Subject: [PATCH 476/755] Update Compressors to work with machines with only 1 Core (Issue #100) --- Compress/Compress | Bin 18408 -> 18624 bytes Compress/Compress.exe | Bin 53760 -> 53760 bytes Compress/Compress.out | Bin 19524 -> 19524 bytes Compress/Compress32.exe | Bin 55808 -> 55808 bytes version.py | 2 +- 5 files changed, 1 insertion(+), 1 deletion(-) diff --git a/Compress/Compress b/Compress/Compress index 27560aa5e7217909f3f1f5dde6f094621816bb13..1fd48949fdfbc560979e3c4a02cfc6059867c58c 100755 GIT binary patch literal 18624 zcmeHv4|Eh|mTy(30}aGfGe(L0k#@GxL?EUyU>XwbN~)oH>>$b?@gb7X>6TzfGD$ar zqmWD|NKM2s%Uuu$su9LBRk*zu*0; zD(OVC@13{j%-MGiUryEi?)~n)-~H})zkgNL+3NN#H1RxVBolWpM_A897b9tRWQ!Q8 z)AG4-oQs>nP3Fdcl8Vd4N(gE>0}kk_4QSE%QUJ}k@=Y2c-{fK$15VY*oB<6B2~vGS z$)#sCcy6AC8j#~`j6iZ^E1IXJdrODGk99i+#_Hv|9Fa-Rs>@k*IRo~QVk83^?W4BQ zwM^H$%;W+_xQhTMvHK7tUP?<&1j{M^hJ&GiE|xLiI~tiYpdt4lI@I* z^^N8iPPgBHdULtEDl68`%e$+xe0F6;RcO=fP5JX?&&$iHtInCj+D-b2chTbItS0Jj zLlxPafs1HV{_)-aa?1~Y9ei;^|LKozh~Ao!nEuoG#5)BS>0s@m3~x0Njbb8u+H+H# z=OadVfHFKy0{{1hlNeTl`*+d*c@+BBqtK6zLjTn$^ogU;-yMa1brgErDD>ZqLjT86 z=y$_EHk6G_?}PAN{;3#+{@Ez>?W53ljY5B66#CCcp$nt*@1vveKR*in+$i)rMxoCi zh291FL@tx-bCn{;amG9lN1o`MSW4tUI*0L76I@s8FDs`(lgsJInhl|#f76I8rXe$zg>s^4{H8(vbN7{ks?AkUG?)gG=r;^fv0mtL zLTee#X@g0R6QUJYTiM}q0o|Z(fNusAG(KjX0g(P}?65Z%aD&C$% zr@7fk%}Mm+dGMtq`i%xN;LAyLTGNd5S`z&xg9!LW68+{RdP@?0QWCu_iH=!hFm)%< zZyBUw-ew;7=DWI6vE$N_-BMuXvJS<_z}V>q~gsCKS(%*QoNqw2MDJS ziq|l_op1`Bcqzko5l%xYzJ%fbMmU8~+{N%;5>BBL&t>>O5l$f!w=w+ZgwxQATN(b> zgj49mIfnm)a0;3DxoaTI_%Y!WD)BysKSel&NW6#PwS-e>#M>CYo^T3@_!|sgOLzw1 zFEjkV5l$fxZ)W&Igj3hY>lyw7!Y2`416+JqTp=zOmn~l^D_^41@?|Ax&s0xfE@+*1 zr;Ag61SUCBXor+~7wnZIKeFtxQ;7&{4|P;4F0-t3sIB1Lqah#dq7qr@l9kjxCuECB zk8(`CpLj^V^-faq4UwDLgvRCQvQ{rh9%ZjOhNzLk*YhB_3;EV8C{w9@UgcA!c@Oot zrv7h9{qd_LF)fOGWTrP-@UJL_s?&1pM2c5QsO3x+78G05m84xci@a6!4(2me7t0sh z97o+vr-eppN%QdfqEFjr$-%YI%}AIo!dk zpM66fNR2?)nJGM5jNb7opQ}e1x$set)w|H`try{F+1Ded+$4jhNOo(a$R;Z{{rGN- z$ZjPTDY6UQ+1*mKR1lSYlHlnRW8au1rQDvO-U?gxESc%z{+*noxqm#gd?~*YxmlSc z{O+dGzv8%n^02u+-yyufwNMZU(dPqpN|rg9B$*~Lb4@voV=GID_7*$ z=c(#ju-9?1)rEBlq4QhFsQIWBqZ#-nsO+SJ2W$XSJp=Ro}jmw-xWfS`^>vV#CzMC+b}{;xP1xx& zp~te+8DP*HGDTy3f%IUab<2@Wnd+;TSuAWNVq}v|eNn@!HQb_Z)9^JKZdErjyzl|w z>U!j9#H`h5Gl{lB%TJ>G50DqbSML*c+=AYfeMiMTrErwEn>xZna{-&@>6@l+F2`(D?U|iac$%dvCiUkGs;?7Q8`> znhTVpa;(oLkL!>l8?ACm;j_@>@x3oAUb{t7mf5Z91{fnnkdrYyK_yWu_uN5~TV$(MwZLd? z5<{y^`aCBqu((4lAWvhOv_lLfKO+^r12m^Vuo}yR94`E45V>GUYZwaEqbLMp<6U5U zo`k}C^BrxgR*R2{tHsB}H65)sj92wdjcqltts}Os)YYU0DgFrs(+^464vp&`;woYm zNcK!QQUmvHvZy^+b^4V+jxfEE3DWxQIPFp1drVe7lf%c)Em`L2YU{~%adKCzhJmi; z30UKAx;Wd$eZ|I0N3uBPg_b^7DJK`wJ$Pdasii0$*Ghy$U!b{zNev0@Vf+ne7>Hd< zk(G1k#rtHwQ-1GSaN?kbvATwl@?Q$KUal{ECdY<}=f>r-azcFyoz&Xf|!(1<$#LD^wr}i;p_b zZ&~m4z3cTIbev|Bq=&!c;V%c8n~rYD6NQ~lF@Jt&W-Cpf{gcSg-smEJk+2gRDR+LJ zGi329U83{KR@K?H(X3oh2Ev^P%NXxGAKD!rFtO-brDO|IJA$BN6{})(7pdcbC)+!; z{zoKxemI{O8n=T_RK60GgLKM7AJI+BeqU@jMGX;mYpsxb#D;Gu>lPM&Avq5UJF0=m zz9S{RgKoz~R;SEg(dJ2a)A22yg~HB)NmBlT(0$@tWXs}c!6b~Gf&M9A(qhUJeS#Nu zN;4D1`R3^%i%02qJ3rYPhiwC*vt#2JxAK9c^m@YWJZjwfFK)#lDGsz)Xl#cf?E{jq^Xc)tJHOz@(0CcM1k8MY>!;2m z8&loNVdanrOFdYgMdzu|Z^Bo!o^eyp9EmP5iAtvP$deddaD5j$XECoOjb1UrE4*G# z4O%5exS_EfXco0jWnx;kKSuGQ(^-T1f0h)VL;W58VrA1sVaMNL-j*?$W_grv-~zWJ zfgPX)9q2gPDcL7+U6P$03;{FA00w7Xu#=cylnOEs$?%qYN6|+Cm0$z@Z4VQ=# zy`Pta2M%DWOmp@M(Q}aU`r6!%qij)>eOHF;yFZ$Sy~e4bcu)?MWVgG~1M{W)iJ>&O zQ%0Oi&I6(2&hr~nMWsXe0DB1!E@yA3Equ)+Y>UH82|mSQv&^2R^wL8h&Yj&en_@ta z+r@?fGE1{oSlpvz*d=F=5ZwyHur*RXLR%5&6d0#UqTUSN%YT*~li(Lyc8?Uvvm7PvNU{vO@wAc|#UMruUW(tjyBWAnk z?A&_Xscsw>O}kmy2M1YYw9t#z?W7%o4VOK9718|*a^pgiQx%>aKvs%8YPX84e#{mb z1s-3gq+AliUA%~y0EKDWmzi^0>S5oZ0SmfO3@0o?<9omtJZiTH&lO;=>uyQ}@0ES% zUs^r0#OR6yW*GYrLeJ%+AP@QN0+==Fy`UT8 zjveQiTbX+0Li|;fCY|5HUu4D0$Yr$O);5RfXshg-wrUpkk+gkAtx9SMFje|9ZA(&D zBVU3Aca|sOvdF%EY|HQI9@&6KXdYB;^cb zJxZ*Ld!+2CTo063B}Mf_AG8YHq9U5T2<}Yv8Ma%U{l}R$PKvIZE|T-TJUa8lxlVT` zU*fv}EpDX}tpCQUg^*V{k0Xy25$RRlRev-@{)4*bENy;L{|4%4+b~CFHW&1&uV@8Z zs3799$q~?g3Ys^ia4l$F<*MGF0ig=B67I|F8IrPLDvnG*U_9;!kbtoE0IrUJP#F^@ zx;fPgC2UL1?1OLn@6`9`%(tHaQ&sS^{I+57l&|}h-q^tO*kyBed&R*Q5$n!FLL<#i z3#P5Q-Np&er@@cmD+!@71)0`d8V%U|{f=2*cy0!^yEqf!M66^+&3}(l6t_jp&yq_! z#i)x%-c8dIcD3!~Oq>#2CJ;sCFiltRJ@`P!;C7|BvoD~?n=_0?Z;b{Tk5^zuk#qkM9$)b5SPNi(_!1Dv+JZ5wCL5qb#BhQa?G9 zNW@=bL9VUmk-4>KMeDh2Y!%zG{}}ExsgHmMJJy4CxQh4}OnU$|B`1BPgx1Z|Z9>z@vPk?tnN8O^>pW>i0yJps({z!6@~i!7?oo0c6gif}@uLqHwGmlvqIM?*c^r z=w7h4L*_l6_)$`QN#|$91G-HAA2hlD7yYE0DjA{wDAP?A!jAtR^pk6Zv)G~@g~7+* zKy03}UFT$HyUq}3a5VSR1{>NX` zl(igAX4CC&`2fTY>>nSNqboFvywPoJd#^ta)Z%v(`#jDbW?ziiCp7M*b?4ba+zY8{ zp|Kp<-K^q|OAZXMeNe+CvPNj4IZssH!xmk{{#fZz4z*Cd{kPCMDLM8d?9Ke|v(c#4rRfocK5MhW*C7 zV)#fxJk;rSbcv4NyZJx69i5`%L&+I)E9cxoaaY4t@^0wIP})b;mqg#RFTpcn99VvF zyPkP^UWynyp6MR<4X97g<8cqpL%p9{#n?#;$nJ4pNsdnkEpJ+gXlb}g{SjQ(aFzNh zxYg}A;&ya9u=hPIIXWceE@h25Y423Xx_7GXF6!gZr@L7%KUH>Wdb|@MxtlEAHSeq2 zkHvpSDCytz$m84pJDYahj#Es(#CN#)L!?|%rVpJL+`{XJQMvGX45i>f;cx?XQ&{Yx zE{i_`?TC-%Y{tSUImjLohrh_g@Sgn&HqwA||5bxCeyhQ0yJ>^1&wJPBF*XPPCFaS| z=CMLrXoRL}bmbl!El|lz@iM2)Djr|-pUX$sO)eng&ycbXQ&T1hYpAHH(j%hfBVXuL0hB@N4D(?yV zaS#%^F@qp|G{x^57tN=yUXo( z)o@IG6Fgo>T82s9YDmVPz~Cdkk53RhtG)mjcZ2A_eidBMM<+aDsQ?Umh2@q0r$Q$qMR+n)SX<{R3mu6Rp}jMp zKT(KVd1!xBwDgaq`7J8K{21H96_&z+(3yr9RNWUfN5RQ;(0jAim(f+bZUZVuZutEa zo7NBNZLpIa3)Hd5>GnmTEwdCBWT}3*VepAHd$;qaW`OaY65P%r@-e9%p68)M`McggpNJWECcQ zw)ygq3X`G2qjaiSx_B-iw*TsOxZgPSC^0Yp=ZI*Nl^Z^tY@-(x?Gce)Q1rx9Gd=g& zwjRq#bmdh!`e3dD7WU#{uNj9u-sRYjl{Zq9CUhf0EqG|aoJYMUJ3k1WbTuY|W;&Fx z2eaDSs47^H^m+*)j%bc~lzr+i$hK&)`K??yz=JCKzsKe|Jo>kK@KB@iH`EJ}n+jlL z#5|dH)?E>4GC~5qElp-y?Y+pr8f72s=~B8`MP4P&US&zy12m#={-DPe*(U&|l5TY- zD#rLhL0nR_KEadl=&f+OmH8_^+~BD=JWW+E{7I9Nl+PjP<-cbBR{sbx?U(TeqgQAu zLCky6Q!Srqey;(<#@s==%PEh|c+%p;+MDDo5z2v748Bq4fC!D2 z;qkXrJ52de7@77D(~{3pKLw`#9qhmZ9Cn&I_3hJCP*^Z+;w?6A>s?AO+lNQynt%>F zZ^S=k&03oYbsM0r{~g4|TWEWt|3EV>YT-mm=y5#Uw-{qU4N&X#Y4U%vB=t7pL{~djK@Mwhd9C0k1X! zA~&3x1iRee)yDQrl7bHPJh(AgO(7wKIHyh|9&RSYrzeU34-y|UDE55ov|sy#x0klIG5PCrQYllH0P-I_dzgrH6=L3aTNaXDwlDr zla#Y!BI9EOA}>2X37w+;8x|2<2TUP(*0addcPzKt@PhEUT0ihSN1pzH+0!nd8+VDlI@`f zN>+~0qdc3ijPFX;iq%!q_1 z6KqK}mP0?*3Hsob*10PGle7#Cu4vl#o3tw9MIZZC-kbz!XOVo_!Y!whFMdkOf_K0} zul|qz;43vES7#3u>_Fb5%vL^$!I+C-$d}sMB+`rmjT}a>;vorbX`m&X2G6P zKnbu9kbczA_BG1MPCTZ~!k0#r=nzSXf9fHQ-(=;dq>Z&S^J8(?)xLktJ(ft!WE`XM zYTx5d1y3G$(JYqixYN;3uNh| zL`p=f#Pud z>?3u>-%=+|p#Gp3TcRcs^O5JobZgk;8=r2GCOinokdJ#%UW0PBod!;{iw~qK!2nM8E7sL0|H(t;) zK;KGq);Fg6S?2(qg{uP6kF^}3%oxv6j6G+x{^USt|CGPQqEx@-M+#WVA5F6NqZ(1Y-~ zp00b~x(BX%;JOE{d*HeUl05Ln_goCC*P*dij)YrunKT`$<21P&bo~8n4ZlUlxqC}l zZisOXu8|z}wpvyXL*j>s>Is7hOOGf>8b;8;+ zFvi6S5;|_wi=z}P-=&x9;(sw<{EmHOg*T6PG1BcioTtNuI$WW{fDSk6aGMTa)Zwc- z+^NG(9e$w0lRCVp!!Z-IdT-X@?K+&N!-YCrp~HXjw<$#vxC-s6~K%X$b8rRB1qMxQ-5o8xlo*5N0&c&NkLbFYb86U4gRd^0HtVm*ZczCQw_p!M|o*Ib;n?lUP$$TU)kSlQ8m7 zT(+UYhgz$l3%49rfu?M2T^*N$hZGz9RYBIh|LGfzHyV0IJm;HSz=r;>gE77t5jSIA zF>pGU(3mphmzi9^hW>AYjbTGKZ0U!k+khp@2Td+k9@G`u88&nqDW8WTJf5gF>Nn<{ zmvlmwE^0gnunehUxqERZ9~km&CKoU~>(B`;I;44v+HS}j^TR^WXihTZjd^a9UZF9s zfrX`!{#y(x%_)YwF^}xhCrWnq29IIC!Dql#D5E*bz>RroK$l;_YSn(%Ogx7DI+9Mj-^Y|hNpFUR;65^bn?WOa!~cERE?{`(rpx!}eq==4M%MolXvy-%{~0m< z|HwOrpbkgY|LO?&`Z+GfSx>K2k!nT=82zV};u#S#>9_{hWqn^@{6CVB{045ow;_vf zoCf7By1a!3CX&IYVMDkSdblZnV1at8T- E1C9WW#Q*>R literal 18408 zcmeHv4|o(+mTz^^fd)dVm4Fd&D4oV3E5tM;Od5=nN~)on?I0td%pem(r(>ca$xFHs z{7{nV1XJ4<;*8JFo!vL%?9ROBw{LdkxekN)FHIncIL<}{g`fg1Xf+Xtq7eDl?{{w1 zO*$E}GvE97&HFwtU+3I&?m6e4d+xdC-dokpX0Lxyip?hQk}BLO5VkDSq!d{Vvt+9R zP$U!xJdM%J_97FY)hq*+Y7QM1Jr&T7PeF=F7zw9ad>nEM2~vNfm7;}a z3x|RrF#^evt;gQ!a{ZQEza__^VA;15-Mn; z!XfceS#~m1LG@$#4E-bcdy_11$mPBdIkNN5El!K^Zr| z+yBWk`{y0|<~()vsZ8RP@F5*+TvV|+Q;2pmKG`=tG2Qb;l!pf>!%GwRuOCigSOkBs zMZXSoiE#}7a|-CS_?1!g&l-h(b`(8}N1;y}MNj1@^ogU;$${6hf5|BH6QkJkBKRe= zjVw2hqURT2yjH)rkHY`@DEwnb;omz7|NEoRKOBX=VHEv88HIoUDD=Wn^vnUjgwM#b z283(*=U(W!Wh683`ce2Z!GE2QB}hdQlj8YjzC|w@K^L%Y>qAuy!SV`Pthqv&Z$)WY zMX(|GKy_m%*s!9sq^7PmxT1V*P0(z+W{ahwY+X1M+yL>$P($5DVK}wAwmLL|R8tpt zXpj_u5uxB9`e0pk?I2?64c9UOm>eKu=L?mUHQ~l8p{%UFp}ICySr({zNC<8~HboISwyqolYuwlvsH?3c*`To4?<+1To0~H?Cx5W+&Ks=G%NeTYLDvK8>S`@r zWi-htRyIvR&5k-j`j>_eWlK&Woc@_O<=dgU4T%9EB2b=|@Ci??9!DIlL`1Pc^Gkqy zpLqJIXOM=+2v4D%XrUX4KTY_13(u^so=7|1^A>LEOBvM1_gNmF%O+DVf?!ztDW^Lv zx}!*9?VQf>L*Fy$v?tL1!OO8E`gl$RG?M6I61_i(p1g?+B+#Lw3kojs%^I$vKz zzd4ESu=I=t4K5ih&LleD52-OLiO%IFwD$XZK^z7#qg7I92zeqTRUR+}MKM_tL z7k4uJ9|)&Viwg|@8R4|_evz82)3zuP3~n;g1kLiSX?V zZy=mPD*hb9A0(VYDZY*2YYC?iiZ?O*hlEq;#OoP;H{ldA@%tIRgm4O#__9Iy%5A_| zk?)o7@o5+2mGX*}%Q4Ang&MWboP{=3Q(Oh^cBA)OsOyD)BO%${2@Ptra4}RGDHyCT zy4j)X`S(%VEx=!=c~-TKHvsGg*{5oUcMv{i-W~e%?#!jaCwF}1WO!k7Rl{k!VQ?J@t)Sbo+gY_(90_xt@)1XUY%SWVN zS6q4SBVPA;@{mKE(L`F+=q8tA$Ou@Z>a(ZGkxrX&BdqX8=iCA-)W9ZJo-bOOrP|`E z=65-b-!KzV^F>!WEcd}lwy58gr=?F-11ns4P-YysOoK-s!^Ud71~PPa=5yVt>m*|p zbV8kzbPTEV3Q79ZNC)PJ=}glgtax(8#|tone(h6Z1EUxI0CeLwh$J=8qoz(?0u%#w zzHuJY5-pZgZSv+^Ec$LO7A)RzXr+VWeNgJ z&pGwi2!j;pi%!vQ5PvthWTqfgYWLdR`};Bm{h4;0a*eI0slY8hEvS**HnsU8^&S3q za-&1lE~&9k(~JjM2ZfVh3r$Jdix4xuGKqIGqVXv(z2wRpE6{&eS`ZABZ@SXzP@|%y zUAY}X(eS?D8r*&ds+)Rzp!UZJy)ulwD_4H$2 zz2vH2`^vAK^Xqf2LsBW#L!AhbBEkJ88F$pLor3Ef#>tDABF{%*LybO4W=HlqjO$3B zr!V{&Vm{v`2u2T>(81vxbnrAfU~@@JE5(=zG3Y2pqe-Nd~n?ldlc&1}vGZuGPICRdj6iAfcS+H2M?Q4aY7>QO{VWFS@C z`W?7d(d#d(fg`@xFd&v*{d&OZi*(w3u}{+cTF8|pzkWZOD#aNs!~&!8W6vsY~S1z53qX8UjMQ^#Fu*{^B?p>)O8t{qWh$0T)J zhniaW1L#qs>z%$pk3wrxq4@RReA+NzrGmxeRLE9E>qgACtK;^f3(6&iBzBux_G*XF zf!W%jYKKVsP-_P!;wvPtCE9EWW{*dAOSJnW2W%&Up?kI(eT+sc`67FqvaOvgn60hA zJpFnAOVfkli>>3aN)Z)rQ5xI|GIFpJ3+xDXedFh*Z=Xb)s>KEqFG8ck*iUWRQR8Qj zf&4=xztoa9g4m$cNa3R(3ZZgD#HXb0E|YcDY_Lv(xVv428wx7adFgD62$$m!psrpc z-zTq;eV>NQ3f7uGZp7t~BZK^);+YA)WhM9@Ul~DMl zI76Y9LJi1DRZnXMR6PT#b~1D$reXo1i1UeS632!*SkpnPbqI&Nj~Mm*Vx}hhD&*DJ z)l^mM$K-xbwRNiRTn%MGq0Lg5P71lfBlR^Ey1^!dZ-=+v|0~p1l0E5|kX~TM8aTmF zF@(;vap1F&coV!Poa=x}jEC6Q#4EvJ;?c!+vAbi)UTpyAwjo@;XJz(#%e8lRl9J{= zx?9PwT!)n=s)w4dQbiG$e&p$W>>+>PEq`D?{A>GqCrfg+i{cES_55Rbvbe(|7c2#G%{u6!UIfCE?ZtV-I*edJ6hsPaV#{{0$=Z2YJJ>}Mf}H&x8;;z3n#QAu zsv*BhLy^r9dBvrlD4tW|)+W$=fe+QdDX%-B+AgtfRofMe%Zq^(E8>o6O2HZ-Tp*hk zDz3|YSk<^VBciszuX^>^SY4fLvkgI=1qOY*DaQq}hUkbVqvzPLk_3nqkf*ch$x zsrnKdhQCR~{M|7rJXY2AdEVU|S3Don&<@Jl0U0~44?~kZr@}AGk;~>JdbMmtR6f?1 z!AJ?*;^Q+Bi`GD?cXMusQi5zwbJC2*&*4aAkxh&HwhyisI*$$>Myqfboo*dQ?{lqk zA89?0Ex@TFCC(DJZowu_hp{4`b_wI}R9w>poXWiJ6Ye8jiVHg^_ISm`Zr`+f=Th9t zkt>L(F}Q!QjIJFvBPsiEbDUyHRJ-NouPK&xnrq{(ZoS0jIZRstKAEEa1w_@r*9a&x zX8Zw`F?_mxp`xAIrfQvP_Ekhq-k73-+;BP_TO#dF3T(0E9dse<#VH;`d_0Z0bdyVx zS;sv8m54hsQ+Ylg)-xm{IygB2l6%dA5Z(4Edp%X2}KXrpvlw zw*i?h>Tf}>85lJCEKbDMD>x*>FBpuXUDVEsTfP97UXqY?zbhrXhkCccb#lybM6O&X zZuwU<`vPC8f&JzTC~Zn!QJa!k!~#WJY^Z@ZF}hUUd!|iEFQUQP`Vf{hH0_Gm@@*^= zGE#hEBYH;q34NE1RfW;B*jU9Ke%CZr54noiVOQUjYHLeRH6Hw&osotHL=vm82b(K{ z#wxb{Ex9hTrz$zeuso)Rua*W*!0Om1c4b^=aU0Z=)w1^c_$ru$=!TI9Vv6qgQmjn4 zL(vW@I4wym-^V|t8<0Bzo_Nk+I|yd$n;>;rt1Mm)jm(`)9BShKgl6Nr{p9N=*eDEJ z-?QS|5J7yOehP7G_-V9hy|X0Rxi^CXyBt_RT3RP)#yV*7M<>6BdTHzakjEdul>4H^ z*nckgkruLwqnXbF&!SLqE{WzHGESYv(Y&2v0|5dKvE_M$s;s|uKl(PWM}dTK09-z8 zx6)QMwoCXy`6IbLbc`dQ;nVMSiaQX$XV8V*Ry+nY>d6@!Z~{#O8Z)v`vl~S?+2Atf zhH;9n&X6hk<(!l4XwkuvNC75+V?(}BaXkBF)FQ8Mh$?4a=!0Fwmc~N`M*f2zX z-}vumD7~hg_zsj}F=Ww^Wr05s!UZT=l*JCJOQLu58xfQ5Rq&xfVzfHY{HcY{S+dSj z?Ml?{lC?Dgu6eSy&hFJpr^}kxfgrL2rW=K%MKA2U1-_2K3VVGZ=07+yKoA%*uad~MSJ${>iy5qG<)6`Tl!H^78d>zlH!x}!by%G4q7OG zy^)JH;{|5(s8MXgd#Er63Uxa0U&WpS+F%psy{OZydrC1yc zpQSHKRkYa{+i8&1=;UAFsew29D^fvcXpGMnfP=gIsrk*+q{V%>JT~2tf@+N`s}%Z? zf!1Sb!eMpbAkSjgzan=o&cY`9wO>mZiPLD-E}HX%>s*)dHYhYLj`%+!(2-A~lV7}< z{FQ$L5;j{Q?sg^nVq|xU@i};L&Kr+*V=u`qEZl;+xb-ANv3O^>+mn{BwO$ZU$7kYx zLlMW)A0mlG5Q5yfG?4c!B1)lqk+GJHW5Gme&1DvrI4J`8DjQDG2)*L!t=!<47v@KV)w;r9N^>?Mv$|-7V7~8gX z4Auwon6s_;E3F?Zq^ z9W4W>oW&t}{XS5?u9U^2-Jr%Q#l9{;)Q{|e%sV#X2es~NuE}9{FK(Ir>a#l!Q`_gw7ss#a{>{!_LQcSxo$sO6 zQ910sqU!e)$@lp6t?X{K5;sx@tit0|X4rCT9S^rlo|oR_^SlGYKD7)JTlOI>ijObA z-$JrZYx>bGyY)sNzS6X9>Sy{#4s zPNyKY&_zPrkv;|oy_zw$*zqhmcG9Vgi!(fxS5iQA0I}_(^QrigPF%LU;*Rq;z2Fq| z2RYK4kl*d}y1Tr#&%N$W+5NukeoOJhyjs6kEa_^#ME(l@7)p;(_oezvu4Q8dVUf7w zSGQV~P4iRb*oiFfxXYk!ns3A3(0ug!sZ)-9;sDt@?n}jee9-dNMF^ATOKg&sH(z3N zu+i)8^}4&=?Oyjm#l3g6qTR05*@rG0g*11eP$A9QD^TVnDC|$ zAbV2rP2L-sxBoBY)&DT>^_Y1N`@SDxZ%p|FdunSt9=nMx#aOX#&{{OwPg>NyV#_>G z>D>r5SkLIs8fQ;{!Cbek=df;Z&7qzAjPVRkmUtu5`Y#~jtmeQrpRUDlmY>qL!gWI| zp4C?2y1q?uO=`naO6?sY_+6P=EEad7a-H@L-UgWU$>KiG?vUu-|2hH)792H}z$(9v zTPH5gxUFrP3F=390BJLxgE_v)Wqa6&dNajtkK#%X-A=5T5YIHlA!In9VYp=Fpd|G$ zi-rZWvv6s#n-2~ZI`80hi+SLQcm6wno<;lvz|dxF2aFG3^(+zzsF z6g9R>B<&B{MfaP1S%d2>60_4Or1@(+To*#$kEV#-g%vfyN5Y>(i}B>Fu%WT2Jlu;5 zgxEb3BT5wFPeu4mU3T=1rS+xDcxx4l+8+n+{cu_MOmhsXzNg!Da0(sfd(nw2Z;)s| z`a>EPy#zX&Qlkt5XJKPLYn9wn&fM@cJY zVCe`YDaLPxl%#MaK5eg&XDPS?&=1KF=11F&iy?&>9z&cm-x!rn!GU+^jgi(7>$68L z;rT}kt%u0&TzA5K{^eANSo>MDI9=?-Asad{s)l3 z1RMe|o@ImBL=TFrXW$qPdxiK1v?%&tU!liFnXlv$l>$VwyL_?Z_CB$48y@C4eV)T& z%l|+l?h$`K8E>iVQ`uD{s!T=5AR3gZ2p4THATv(Zx&8#fjZw+!!&ab|R^T7sH{i;r=n0ozr~??K z$0;7J<;n4*2n;*FEr;f+OqdivbM&SUvn1;4 z9#HTkLQ8uaxY0&B4_Q}B?NDsk&C>I3Xwt%)N+Ga$p>~Ka4NdSf?p+H&g7v?kbc+v8 zj@i9*?Rv!W!z5^4iaL&}Sl6%6A++!HZIMJOz4;D5gjX*}wX~$RLfTkCQdS0kiL{;H z1%F^sbQw2N6Y@~(D1-EBdJ(E}^JOsD!)x(Mk6y^oHz19Prkc<^@-&3w(@7{gaVD(6 zxI4kKYc9mh3B4WM%ywfk$w80t0r-*oPJYB&E}05WT+bBHv$mv!a|Vs3f&+~0QAgiv zL%EU0&GLtqpks(%pLwUqUX9ElxZJ0m_h|?H*(X^}i(N@I#-dlX^>j#bAK~Y9yukEp z=M`v3WPU(TzE#hMVZ77a<4B67r1SB)4mgdzJ3^6wf!gpLv6xAvNNgZsUc9wYT9TJiJzr?=De&_jq&G;_Gh9>6>p5 zlLB??>KlTMjn#FvIfB2gyn={wL!hd9eK1E*f}vm_6s(YDR)7-vX(mE?iSl`<)QXt~G6!Li82J@tkjEWBCKHo9mKR`)cuZKk4qf zO4mrMmz9UAq{_Mm310)`R7>*S@&+3I0?Ajq9^dV&kgBOEka20%NS)Mys+*AfJR2bo#Ki_!Z8xQ=Ycp%sPzxVGiWgOqw@&D2T zh?x-uPh8lx%6G*e_6hnce`;arrFwM3lou%k)%-qeMEHP3YmsUUd;pDOr{ zzO>2q;gBbQ>}OT{4h^iY;L?EKFt3N<|39Hy$#~9|>P{V>QGotN^s#sX z#8rIg8^n8X8}0aW^xdDDLF!8WNS!)?=Hw;lQa{Bl33XvnhBJ~ z*Vy3H#UtIf2E;$|>0Q_2{2_>?BgN5e0Y1;7|EK#BiSJwf(rIp=NR>0BEq3@glBQ-X zOTC&hK4X@WAt5gKlu|q%fb34Zn)^G{g_KYRjh{ZBfnJ2QHjn5iG%u7iYC!uhgX0}F zhL&dBpE@5sUSpco3DmD2y4vyncM|DE%r3=z(0o;Z-VOSbM3-s4Qs57VO0h8;pBA(i zVC{cQ?cNOM6K4Eltcd@$h=0f+UKu~l`Agt;yo>ch3u`Fuz1N6)C8NofI(N)9jYg!K zYu9cUgy+$J5coCqskDw%n)A|(qK0cZfce)CJw4DvuKcF_|KS1tJ0t$PA}eJGBjHQd zaMCTl|>T05na9aOV_&(8ZRrp@g zZng6ZY|Jv)GRxf0AwQXE8Tx~z!%F|15`#Qe>#Yi{V=8zG&I;awu(E2L2|1npLIWgj zcfZ+;-+h~fohMMmj}KVke0UJf#s_m5>8gbfSc(%C&h5hYMHv5!Ry)2P%5XjoOa1>b zF!;Oe5gN~1jvZqKz!VGKYQgyyTx7v}ELds5^%mS>!DlS^UoE)9f}Iw8&w`&=@Vo`b zSOGW1g11_5z6BRq@E!|RT5!Duw^(q*@ctyqe_yw_q-23KYvtN-Z73{#7r#)g?qaX8Cj=J|~01FqvvRLBQhp653X`TxH_`H#lV<$0c2 z1RCW8F37@|sPKHvAF=O{ zVvqOF_hJ73s_=!us@W{deZzsQ7V Ll8LBuIZpncT`y-m diff --git a/Compress/Compress.exe b/Compress/Compress.exe index f7bc1b107b586452cdc7bbcc9d71682f7e8503be..cf12f6be4056ef9683a2b17fb8f054ebf3f98341 100755 GIT binary patch delta 290 zcmZoz!rZWgc|r%X7Vq?l-M&l~b2r}N6lP4?{6v_SoiTg!Cn-iIM#afrWQrISCa23f zG2WfLN_IPkMjHczM=!6+=1e&aMvfmXVBVL>Gv)s>ewaL6!Ig3ClPp`>+51fkt0f zW?<;N<=J`k#j&42fo>NSgZ~#idOZwY=m8b9-mY`)bq1=ljhH;WU5@wW-v9qSE$^2; z=a+Y2*nFT}m5Fi5=4YL8EX;a(dXruH6enl&$%`m*F%%^+lqWGb2043phPmn`W#&zu k-Dk_{T2z!@H2Hp?1kkJB`!qMp_gk_t>2Yn2n!3ye0Cb^pTL1t6 delta 311 zcmV-70m%M@#uw+JVO002mh4I{H@9w-3__k;idNR18ilbIj=0q>KSAVmSJlieV60U)zd zAtGY|fs=KFEdk?`ql88XoF4!HNR17flktQX0RyuMg--%#i(DjdjdTAFNr}bi#QFdKNQ*=yF#pgFq)T-J#4iNDs3MN>&@su`d@WwNS!Md+#q6;X>U7SQg1 zXnMAr;4qSU z?VWBUbPYl1yam4+oM`N2v*u@eb9zODzBr+f%v8uao48&`4FICX9EIx06o_>8UV@97 zhKxYjL~3>H_Y{PN9n30L;C@ywy3!^+O5i2+OYEfsriNza7dZ%;s|d!fCqO8MngeiBu>9}P{R zfx$-jWWm;@`L0@0JEjBN+a2-KoK+~O-R4zR39TIzY#yy%cOHxjB9YE+#Tah-FxtWG7IVWLY{~3I=4?5Y6+@-~g@a_uxOIeopJ8fhbc%ndco9 zpipW@eKgu7JT5UP-dm94F02sOLIXZ*1{~6{R1TQXDAGN8rhw2kk?+&&V4!Vwp1*;O zeCGx>@iZN~d9r>72l-|IK3eGFC>}YqQ3W9#p?mmp973g?krKaJbXH&DVxi|9%TBkl z{po{ZNa!hzL?Rr47j&}EN83$AEm&lB>p%RNNm4fc%PJ)))&wg%Y-7!m8Y{qd4m%!f zKY;OkxZ1WD6*~)Rn0vAFA>JDP;e3j5FnllLh!M+dlk7@!#Gwr5?ql}GrV|aP?X3;X hbxkczEyrb9W~FjLjJLJ*WGf5GqQMatzAWF7{sYqlDCGbE delta 969 zcmX|9ZAep57(RD88(O=|YP(Z!yR?Z0HTqgqbIs+nb7TIvcS~*T%Bp4s&>D=Gb46v z13A_MB~FCenHw7L{?|Y-T*(`7X+$r-%#CUJo^(D0|8YoKN35J5Gq0|Uq$rzxag`zbjCikKF}p0^l1s$t8jpq z8Eekn4%o47-UF8LB>3SDeXnJnwBNA+ZK30ihJvq)5K1ewOsW(5X;ku*OoX+zha|kJ zQk>FiX8-BYH`qRyO+GHOk6B)EgEU-Q@HOUG#)=g%xXKI68*)s)_H}Y?j`2 zmR1CrYc4{GpQhtYFsE+4CL7WwurA+#_o>%DM@Vd-MRbMfZ>OVuI>r+5ZWDNnl_GR} zF(!=zqU$90jfsC{hS{MMPK;U9?4#H$T=wchxGb-aiTMFs0+V&@Vi8OPPMC6Yj{}9d zS3yCTyGquENxYZT_lJcaIQrra7aCvSCEMH%Qmt`BCHWrlcC|^X?SU4(Fi&>HC=%FZ z2YlYZau_fsdAM`rh!2ya5)1M;1jtc^t^SWKtl~emu~Gy3*#cva53oW2Dyi}?0l)^8 zY-B$Q5eg-;)e${#D)-05({I5gslAmLvEk@*xW6rQFAqYY^j=s+R|i70zH~_H5>JQV z*%^Wo@UBUfoUmct_ns55W$2srwocDRZ&IyfJLL-)B z++tsQ^Ez!5zZ4I@B^!~Zw-(*Os7GJDSrkz@D=3MfF_tW8g8gI3sC9fu5wcj$=;=}y zT0sl;d;}hgWe3qXQypRC(6bKLi9K1Ori}5grb$X=a!JO#tFw^>OtO>nB2Vyq89IRSLEH9F5y&*r28<|>)XwWqxTMNC?)RBfhX-P> zx{gw9fCQ54ba!;&eJ$XWY(GaYs>kf#7Qq&bJ6PO|JTeBdW8-)4^WEtIJfM?~HG^ q)X;J6WV@$T@^p9ueyQnDqjc7D;Z!+ukP6*Rs`Er=f!=kkd;cFt@m)Ls delta 819 zcmY*XUr19?7{BN4WYdI2=|lMM2A4>PKv1NAFgNei$O17XXp~~qFovw%3S(~bZnVQ` zrCcE`Ay+>1P|&!;63n(VSNISGg=7zc5Qi}Ep(GT%ePQMT?~S} zC)cT2_9>Bjkq|)k4&p=vqG;ORNbQ9@s}EeuIcnd@ab^o+j+0y1%5mZ!=3oc_sg~I- zPUaE-GPqt1DECr;e6Xbj#x1tn%e))PI910oOE_Miw>sSl4759*+6RIDUi)0A4)YH1 zUkE=W8F3(&{xcHUp$=1*mB0>l8Cvw0sNaZ{i6FTflZpxiU#D=bQ>bfkHa4{>2Rl7p zL7$J+RJ3>aydLkx!%~y?YR6?ym*nyGsD7#CRI_x&(|bWLCzVDcsm>D%1f%ax|M5R3 CM`Q*7 diff --git a/version.py b/version.py index 22e42e7cd..1fa060e19 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.17.13 f.LUM' +__version__ = '2.17.14 f.LUM' From a3f95fc95189f258f8ae13438b2c09fa7e371a7e Mon Sep 17 00:00:00 2001 From: Tyrus <42982810+Tyrusss@users.noreply.github.com> Date: Wed, 12 Sep 2018 21:45:42 +0100 Subject: [PATCH 477/755] Some hint changes I prefer --- HintList.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/HintList.py b/HintList.py index a507f7d43..585774606 100644 --- a/HintList.py +++ b/HintList.py @@ -71,17 +71,17 @@ def getHintGroup(group, world): 'Song of Storms': (["Rain Dance", "a thunderstorm melody", "the tune of windmills"], 'item'), 'Minuet of Forest': (["the song of tall trees", "adult's forest melody", "a green warp song"], 'item'), 'Requiem of Spirit': (["a song of sandy statues", "an orange warp song", "the tune of the desert"], 'item'), - 'Slingshot': (["a seed shooter", "child's projectiles"], 'item'), - 'Boomerang': (["a banana", "a faithful curved stick"], 'item'), - 'Fire Arrows': (["the furnace firearm", "flame darts", "burning projectiles"], 'item'), - 'Ocarina of Time': (["a blue flute", "a royal instrument"], 'item'), + 'Slingshot': (["a seed shooter", "a child's catapult"], 'item'), + 'Boomerang': (["a banana"], 'item'), + 'Fire Arrows': (["flame darts", "burning projectiles"], 'item'), + 'Ocarina of Time': (["a blue flute", "a royal instrument", "a paint-job"], 'item'), 'Bottle': (["a glass container", "an empty jar", "something to be filled"], 'item'), - 'Bottle with Letter': (["a call for help", "an SOS jar", "fishy stationary"], 'item'), + 'Bottle with Letter': (["a call for help", "an SOS jar", "a princess's glass"], 'item'), 'Bottle with Milk': (["cow juice", "a white liquid"], 'item'), 'Bottle with Red Potion': (["a vitality vial", "a red liquid"], 'item'), 'Bottle with Green Potion': (["a magic mixture", "a green liquid"], 'item'), 'Bottle with Blue Potion': (["a cure-all antidote", "a blue liquid"], 'item'), - 'Bottle with Fairy': (["an imprisoned fairy", "an extra life"], 'item'), + 'Bottle with Fairy': (["an imprisoned pixie", "an extra life"], 'item'), 'Bottle with Fish': (["an aquarium", "a contained sea beast"], 'item'), 'Bottle with Blue Fire': (["a conflagration canteen", "an icemelt jar"], 'item'), 'Bottle with Bugs': (["a terrarium", "skultula finders", "a digging trio"], 'item'), @@ -100,7 +100,7 @@ def getHintGroup(group, world): 'Deku Nut Capacity': (["more nuts", "flashbang storage"], 'item'), 'Prelude of Light': (["a luminous prologue melody", "a yellow warp song", "the temple traveler"], 'item'), 'Serenade of Water': (["a song of a damp ditch", "a blue warp song", "the lake's tune"], 'item'), - 'Heart Container': (["a lot of love", "a Valentine's gift", "every boss' reward"], 'item'), + 'Heart Container': (["a lot of love", "a Valentine's gift", "a boss's organ"], 'item'), 'Piece of Heart': (["love", "a partial Valentine"], 'item'), 'Piece of Heart (Treasure Chest Game)': (["love", "a partial Valentine"], 'item'), 'Recovery Heart': (["a free heal", "disappointing love"], 'item'), @@ -110,17 +110,17 @@ def getHintGroup(group, world): 'Rupees (50)': (["big bucks", "a purple gem", "wealth"], 'item'), 'Rupees (200)': (["a juicy jackpot", "a yellow gem", "great wealth"], 'item'), 'Light Arrows': (["the shining shot", "glowing darts", "Ganondorf's bane"], 'item'), - 'Kokiri Sword': (["a butter knife", "a tiny, sharp blade"], 'item'), + 'Kokiri Sword': (["a butter knife", "a child's blade"], 'item'), 'Biggoron Sword': (["a shield disabler", "a two-handed blade"], 'item'), 'Pocket Egg': (["a Cucco container", "a Cucco, eventually", "a fowl youth"], 'item'), - 'Weird Egg': (["a chicken dilemma"], 'item'), + 'Weird Egg': (["a strange gamete"], 'item'), 'Pocket Cucco': (["a little clucker"], 'item'), 'Cojiro': (["a cerulean capon"], 'item'), 'Odd Mushroom': (["a powder ingredient"], 'item'), 'Odd Potion': (["Granny's goodies"], 'item'), 'Poachers Saw': (["a tree killer"], 'item'), 'Broken Sword': (["a shattered slicer"], 'item'), - 'Prescription': (["a pill pamphlet"], 'item'), + 'Prescription': (["a pill pamphlet", "a Doctor's slip"], 'item'), 'Eyeball Frog': (["a perceiving polliwog"], 'item'), 'Eyedrops': (["a vision vial"], 'item'), 'Claim Check': (["a three day wait"], 'item'), @@ -221,7 +221,7 @@ def getHintGroup(group, world): '1033': ("Can't find an item? Scan an Amiibo.", 'junkHint'), '1034': ("They say this game has just a few glitches.", 'junkHint'), '1035': ("BRRING BRRING This is Ulrira. Wrong number?", 'junkHint'), - '1036': ("Tingle Tingle Kooloo Limpah", 'junkHint'), + '1036': ("Tingle! Tingle! Kooloo, Limpah!", 'junkHint'), '1037': ("L is real 2041", 'junkHint'), '1038': ("They say that Ganondorf will appear in the next Mario Tennis.", 'junkHint'), '1039': ("Medigoron sells the earliest Breath of the Wild demo.", 'junkHint'), From 8fe8ca439033e6c0be32d20cb89dcb9577f77d62 Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 12 Sep 2018 16:55:14 -0400 Subject: [PATCH 478/755] Taking some of the hint changes --- HintList.py | 18 +++++++++--------- version.py | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/HintList.py b/HintList.py index 585774606..219b616e8 100644 --- a/HintList.py +++ b/HintList.py @@ -71,17 +71,17 @@ def getHintGroup(group, world): 'Song of Storms': (["Rain Dance", "a thunderstorm melody", "the tune of windmills"], 'item'), 'Minuet of Forest': (["the song of tall trees", "adult's forest melody", "a green warp song"], 'item'), 'Requiem of Spirit': (["a song of sandy statues", "an orange warp song", "the tune of the desert"], 'item'), - 'Slingshot': (["a seed shooter", "a child's catapult"], 'item'), - 'Boomerang': (["a banana"], 'item'), - 'Fire Arrows': (["flame darts", "burning projectiles"], 'item'), - 'Ocarina of Time': (["a blue flute", "a royal instrument", "a paint-job"], 'item'), + 'Slingshot': (["a seed shooter", "child's projectiles", "a child's catapult"], 'item'), + 'Boomerang': (["a banana", "a faithful curved stick"], 'item'), + 'Fire Arrows': (["the furnace firearm", "flame darts", "burning projectiles"], 'item'), + 'Ocarina of Time': (["a blue flute", "a royal instrument"], 'item'), 'Bottle': (["a glass container", "an empty jar", "something to be filled"], 'item'), - 'Bottle with Letter': (["a call for help", "an SOS jar", "a princess's glass"], 'item'), + 'Bottle with Letter': (["a call for help", "an SOS jar", "fishy stationery"], 'item'), 'Bottle with Milk': (["cow juice", "a white liquid"], 'item'), 'Bottle with Red Potion': (["a vitality vial", "a red liquid"], 'item'), 'Bottle with Green Potion': (["a magic mixture", "a green liquid"], 'item'), 'Bottle with Blue Potion': (["a cure-all antidote", "a blue liquid"], 'item'), - 'Bottle with Fairy': (["an imprisoned pixie", "an extra life"], 'item'), + 'Bottle with Fairy': (["an imprisoned fairy", "an extra life"], 'item'), 'Bottle with Fish': (["an aquarium", "a contained sea beast"], 'item'), 'Bottle with Blue Fire': (["a conflagration canteen", "an icemelt jar"], 'item'), 'Bottle with Bugs': (["a terrarium", "skultula finders", "a digging trio"], 'item'), @@ -110,10 +110,10 @@ def getHintGroup(group, world): 'Rupees (50)': (["big bucks", "a purple gem", "wealth"], 'item'), 'Rupees (200)': (["a juicy jackpot", "a yellow gem", "great wealth"], 'item'), 'Light Arrows': (["the shining shot", "glowing darts", "Ganondorf's bane"], 'item'), - 'Kokiri Sword': (["a butter knife", "a child's blade"], 'item'), + 'Kokiri Sword': (["a butter knife", "a tiny, sharp blade", "a child's blade"], 'item'), 'Biggoron Sword': (["a shield disabler", "a two-handed blade"], 'item'), 'Pocket Egg': (["a Cucco container", "a Cucco, eventually", "a fowl youth"], 'item'), - 'Weird Egg': (["a strange gamete"], 'item'), + 'Weird Egg': (["a chicken dilemma"], 'item'), 'Pocket Cucco': (["a little clucker"], 'item'), 'Cojiro': (["a cerulean capon"], 'item'), 'Odd Mushroom': (["a powder ingredient"], 'item'), @@ -221,7 +221,7 @@ def getHintGroup(group, world): '1033': ("Can't find an item? Scan an Amiibo.", 'junkHint'), '1034': ("They say this game has just a few glitches.", 'junkHint'), '1035': ("BRRING BRRING This is Ulrira. Wrong number?", 'junkHint'), - '1036': ("Tingle! Tingle! Kooloo, Limpah!", 'junkHint'), + '1036': ("Tingle Tingle Kooloo Limpah", 'junkHint'), '1037': ("L is real 2041", 'junkHint'), '1038': ("They say that Ganondorf will appear in the next Mario Tennis.", 'junkHint'), '1039': ("Medigoron sells the earliest Breath of the Wild demo.", 'junkHint'), diff --git a/version.py b/version.py index 1fa060e19..64127aa12 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.17.14 f.LUM' +__version__ = '2.17.15 f.LUM' From fa1167b9f94e493f77e8525db0c680e132fc1296 Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 12 Sep 2018 17:30:21 -0400 Subject: [PATCH 479/755] Added some hints removed some unclear hints --- HintList.py | 44 ++++++++++++++++++++++---------------------- version.py | 2 +- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/HintList.py b/HintList.py index 219b616e8..a6ee2a033 100644 --- a/HintList.py +++ b/HintList.py @@ -44,24 +44,24 @@ def getHintGroup(group, world): # @ will print the player name # # sets color to white (currently only used for dungeon reward hints). hintTable = {'Hammer': (["the dragon smasher", "a metallic crusher", "the WHAM! weapon"], 'item'), - 'Magic Meter': (["pixie dust", "ability fuel"], 'item'), + 'Magic Meter': (["sorcery training", "a stamina scroll", "pixie dust"], 'item'), 'Double Defense': (["a white outline", "sturdy hearts", "strengthened love"], 'item'), 'Progressive Hookshot': (["Dampe's keepsake", "an arm extension", "a great chain"], 'item'), - 'Progressive Strength Upgrade': (["power gloves", "arm day results", "heavy object lifters"], 'item'), + 'Progressive Strength Upgrade': (["power gloves", "arm day results", "the heavy lifty"], 'item'), 'Hover Boots': (["butter boots", "slippery shoes", "spacewalkers"], 'item'), 'Master Sword': (["evil's bane"], 'item'), - 'Mirror Shield': (["the reflective rampart", "Medusa's weakness"], 'item'), + 'Mirror Shield': (["the reflective rampart", "Medusa's weakness", "a silvered surface"], 'item'), 'Farores Wind': (["teleportation", "relocation magic", "a warp spell", "green wind"], 'item'), - 'Nayrus Love': (["a safe space", "an impregnable aura"], 'item'), + 'Nayrus Love': (["a safe space", "an impregnable aura", "a blue barrier"], 'item'), 'Ice Arrows': (["the refrigerator rocket", "frostbite bolts", "cold darts", "freezing projectiles"], 'item'), - 'Lens of Truth': (["the perjureless porthole", "true sight", "a detective's tool"], 'item'), + 'Lens of Truth': (["a lie detector", "true sight", "a detective's tool"], 'item'), 'Dins Fire': (["an inferno", "a great heat wave", "a blast of hot air"], 'item'), 'Ocarina': (["a flute", "a source of music"], 'item'), 'Fairy Ocarina': (["a brown flute", "a forest instrument"], 'item'), 'Goron Tunic': (["ruby robes", "fireproof garbs", "mountain clothing"], 'item'), 'Zora Tunic': (["a sapphire suit", "a fishy outfit", "lake clothing"], 'item'), 'Iron Boots': (["sink shoes", "watery footwear", "noisy boots"], 'item'), - 'Zeldas Letter': (["an autograph", "royal stationary", "royal snail mail"], 'item'), + 'Zeldas Letter': (["an autograph", "royal stationery", "royal snail mail"], 'item'), 'Zeldas Lullaby': (["a song of royal slumber", "a triforce tune"], 'item'), 'Nocturne of Shadow': (["a song of spooky spirits", "a graveyard boogie", "a ghastly tune"], 'item'), 'Bow': (["an archery enabler", "a danger dart launcher"], 'item'), @@ -71,7 +71,7 @@ def getHintGroup(group, world): 'Song of Storms': (["Rain Dance", "a thunderstorm melody", "the tune of windmills"], 'item'), 'Minuet of Forest': (["the song of tall trees", "adult's forest melody", "a green warp song"], 'item'), 'Requiem of Spirit': (["a song of sandy statues", "an orange warp song", "the tune of the desert"], 'item'), - 'Slingshot': (["a seed shooter", "child's projectiles", "a child's catapult"], 'item'), + 'Slingshot': (["a seed shooter", "a rubberband", "a child's catapult"], 'item'), 'Boomerang': (["a banana", "a faithful curved stick"], 'item'), 'Fire Arrows': (["the furnace firearm", "flame darts", "burning projectiles"], 'item'), 'Ocarina of Time': (["a blue flute", "a royal instrument"], 'item'), @@ -84,10 +84,10 @@ def getHintGroup(group, world): 'Bottle with Fairy': (["an imprisoned fairy", "an extra life"], 'item'), 'Bottle with Fish': (["an aquarium", "a contained sea beast"], 'item'), 'Bottle with Blue Fire': (["a conflagration canteen", "an icemelt jar"], 'item'), - 'Bottle with Bugs': (["a terrarium", "skultula finders", "a digging trio"], 'item'), + 'Bottle with Bugs': (["an insectarium", "skultula finders", "a digging trio"], 'item'), 'Bottle with Poe': (["a spooky ghost", "a face in the jar"], 'item'), 'Progressive Scale': (["vertical swim depth", "a dive enhancer"], 'item'), - 'Stone of Agony': (["an empty chest", "a vibrating rock", "a clue finder"], 'item'), + 'Stone of Agony': (["a vibrating rock", "a clue finder"], 'item'), 'Eponas Song': (["an equestrian etude", "a ranch song"], 'item'), 'Epona': (["a horse", "a four legged friend"], 'item'), 'Gerudo Membership Card': (["a GT subscription", "a desert tribe's pass"], 'item'), @@ -96,7 +96,7 @@ def getHintGroup(group, world): 'Suns Song': (["Sunny Day", "a time advancer", "a day/night melody", "the gibdo's bane"], 'item'), 'Deku Shield': (["a wooden ward", "forest protection"], 'item'), 'Hylian Shield': (["a steel safeguard", "a Hylian relic", "metallic protection"], 'item'), - 'Deku Stick Capacity': (["a bundle of sticks", "more flammable twigs"], 'item'), + 'Deku Stick Capacity': (["a lumber rack", "more flammable twigs"], 'item'), 'Deku Nut Capacity': (["more nuts", "flashbang storage"], 'item'), 'Prelude of Light': (["a luminous prologue melody", "a yellow warp song", "the temple traveler"], 'item'), 'Serenade of Water': (["a song of a damp ditch", "a blue warp song", "the lake's tune"], 'item'), @@ -111,7 +111,7 @@ def getHintGroup(group, world): 'Rupees (200)': (["a juicy jackpot", "a yellow gem", "great wealth"], 'item'), 'Light Arrows': (["the shining shot", "glowing darts", "Ganondorf's bane"], 'item'), 'Kokiri Sword': (["a butter knife", "a tiny, sharp blade", "a child's blade"], 'item'), - 'Biggoron Sword': (["a shield disabler", "a two-handed blade"], 'item'), + 'Biggoron Sword': (["an unwieldy knife", "a two-handed blade"], 'item'), 'Pocket Egg': (["a Cucco container", "a Cucco, eventually", "a fowl youth"], 'item'), 'Weird Egg': (["a chicken dilemma"], 'item'), 'Pocket Cucco': (["a little clucker"], 'item'), @@ -124,24 +124,24 @@ def getHintGroup(group, world): 'Eyeball Frog': (["a perceiving polliwog"], 'item'), 'Eyedrops': (["a vision vial"], 'item'), 'Claim Check': (["a three day wait"], 'item'), - 'Map': (["a dungeon atlas"], 'item'), - 'Compass': (["a treasure tracker"], 'item'), + 'Map': (["a dungeon atlas", "blueprints"], 'item'), + 'Compass': (["a treasure tracker", "a magnetic needle"], 'item'), 'BossKey': (["a master of unlocking", "a dungeon's final pass"], 'item'), - 'SmallKey': (["a tool for unlocking", "a dungeon pass", "a lock remover", "a more legal lockpick", "a portal opener"], 'item'), + 'SmallKey': (["a tool for unlocking", "a dungeon pass", "a lock remover", "a legal lockpick", "a portal opener"], 'item'), 'FortressSmallKey': (["a get out of jail free card"], 'item'), 'KeyError': (["something mysterious", "an unknown treasure"], 'item'), 'Arrows (5)': (["danger darts", "piercing ammunition", "a quiver's contents"], 'item'), 'Arrows (10)': (["danger darts", "piercing ammunition", "a quiver's contents"], 'item'), 'Arrows (30)': (["danger darts", "piercing ammunition", "a quiver's contents"], 'item'), - 'Bombs (5)': (["explosives", "sparky boom balls"], 'item'), - 'Bombs (10)': (["explosives", "sparky boom balls"], 'item'), - 'Bombs (20)': (["lots-o-explosives", "sparky boom balls"], 'item'), + 'Bombs (5)': (["explosives", "sparky boom balls", "fireworks"], 'item'), + 'Bombs (10)': (["explosives", "sparky boom balls", "fireworks"], 'item'), + 'Bombs (20)': (["lots-o-explosives", "sparky boom balls", "fireworks"], 'item'), 'Ice Trap': (["a gift from Ganon", "a chilling discovery", "an icy blast", "an unwanted freeze", "a wintery surprise"], 'item'), 'Magic Bean': (["wizardly legumes"], 'item'), - 'Bombchus': (["mice bombs", "hot-headed friends"], 'item'), - 'Bombchus (5)': (["mice bombs", "hot-headed friends"], 'item'), - 'Bombchus (10)': (["mice bombs", "hot-headed friends"], 'item'), - 'Bombchus (20)': (["mice bombs", "hot-headed friends"], 'item'), + 'Bombchus': (["mice bombs", "hot-headed friends", "remote mines"], 'item'), + 'Bombchus (5)': (["mice bombs", "hot-headed friends", "remote mines"], 'item'), + 'Bombchus (10)': (["mice bombs", "hot-headed friends", "remote mines"], 'item'), + 'Bombchus (20)': (["mice bombs", "hot-headed friends", "remote mines"], 'item'), 'Deku Nuts (5)': (["some nuts", "some flashbangs", "Sheik's ammo"], 'item'), 'Deku Nuts (10)': (["lots-o-nuts", "lots of flashbangs", "Sheik's ammo"], 'item'), 'Gold Skulltulla Token': (["proof of destruction", "an arachnid chip", "spider remains"], 'item'), @@ -174,7 +174,7 @@ def getHintGroup(group, world): 'Bottom of the Well Defeat Boss': (["They say that Dead Hand holds", "They say that draining the water reveals a monster guarding"], 'location'), 'Silver Gauntlets Chest': ("They say that upon the Colossus's southern edge is", 'location'), 'Mirror Shield Chest': ("They say that upon the Colossus's northern edge is", 'location'), - 'Shadow Temple Hidden Floormaster Chest': (["They say in a maze guarded by shadows hides", "They say that after a free boat ride comes"], 'location'), + 'Shadow Temple Hidden Floormaster Chest': (["They say that shadows in an invisible maze guards", "They say that after a free boat ride comes"], 'location'), 'Haunted Wasteland Structure Chest': (["They say that deep in the Wasteland is", "They say that beneath the sands lies"], 'location'), 'Composer Grave Chest': ("They say that the Composer Brothers hid", 'location'), 'Song from Composer Grave': ("They say that the Composer Brothers wrote", 'location'), diff --git a/version.py b/version.py index 64127aa12..affff388c 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.17.15 f.LUM' +__version__ = '2.17.16 f.LUM' From c465e106d639115d29de8f99c1ce9ac0c6a6dfa8 Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 12 Sep 2018 20:29:02 -0400 Subject: [PATCH 480/755] Fix typo in wallmaster chest hint --- HintList.py | 2 +- version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/HintList.py b/HintList.py index a6ee2a033..92e342281 100644 --- a/HintList.py +++ b/HintList.py @@ -174,7 +174,7 @@ def getHintGroup(group, world): 'Bottom of the Well Defeat Boss': (["They say that Dead Hand holds", "They say that draining the water reveals a monster guarding"], 'location'), 'Silver Gauntlets Chest': ("They say that upon the Colossus's southern edge is", 'location'), 'Mirror Shield Chest': ("They say that upon the Colossus's northern edge is", 'location'), - 'Shadow Temple Hidden Floormaster Chest': (["They say that shadows in an invisible maze guards", "They say that after a free boat ride comes"], 'location'), + 'Shadow Temple Hidden Floormaster Chest': (["They say that shadows in an invisible maze guard", "They say that after a free boat ride comes"], 'location'), 'Haunted Wasteland Structure Chest': (["They say that deep in the Wasteland is", "They say that beneath the sands lies"], 'location'), 'Composer Grave Chest': ("They say that the Composer Brothers hid", 'location'), 'Song from Composer Grave': ("They say that the Composer Brothers wrote", 'location'), diff --git a/version.py b/version.py index affff388c..f5c14ac79 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.17.16 f.LUM' +__version__ = '2.17.17 f.LUM' From eb4d4fa4097775894fc56839b4f68224202f96ee Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 12 Sep 2018 20:34:15 -0400 Subject: [PATCH 481/755] Ganon once again refers to 'Ganon's Castle' as 'my castle' (Issue #115) --- Hints.py | 3 ++- version.py | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Hints.py b/Hints.py index 3bccd36aa..a5d45c157 100644 --- a/Hints.py +++ b/Hints.py @@ -242,7 +242,8 @@ def buildGanonText(world, messages): for location in world.get_locations(): if location.item.name == 'Light Arrows': text = get_raw_text(getHint('Light Arrow Location').text) - text += get_raw_text(location.hint) + location_hint = location.hint.replace('Ganon\'s Castle', 'my castle') + text += get_raw_text(location_hint) text += '!' break else: diff --git a/version.py b/version.py index f5c14ac79..8fa916803 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.17.17 f.LUM' +__version__ = '2.17.18 f.LUM' From 1eb4d083c403b68d3609111014e13af9f03195bb Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Thu, 13 Sep 2018 21:57:49 -0300 Subject: [PATCH 482/755] Logic Fix for Fire Temple MQ BK People are starting to play this branch now and at the least I felt the need to fix the most egregious instance of some nonsense being in logic. --- Rules.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Rules.py b/Rules.py index 981409970..f9476cd04 100644 --- a/Rules.py +++ b/Rules.py @@ -491,7 +491,7 @@ def dung_rules_fitmq(world): set_rule(world.get_entrance('Fire Temple Maze Escape'), lambda state: state.has('Small Key (Fire Temple)', 3) and state.has('Bow')) set_rule(world.get_location('Fire Temple MQ Chest Near Boss'), lambda state: (state.has('Hover Boots') and state.has_fire_source()) or (state.has('Progressive Hookshot') and state.has('Magic Meter') and ((state.has('Fire Arrows') and state.has('Bow')) or (state.has('Dins Fire') and ((world.difficulty != 'ohko') or state.has_GoronTunic() or state.has('Bow') or state.has('Progressive Hookshot', 2)))))) set_rule(world.get_location('Fire Temple MQ Map Chest'), lambda state: state.has('Hammer')) - set_rule(world.get_location('Fire Temple MQ Boss Key Chest'), lambda state: state.has_fire_source() and state.has('Progressive Hookshot')) + set_rule(world.get_location('Fire Temple MQ Boss Key Chest'), lambda state: state.has_fire_source() and state.has('Bow') and state.has('Progressive Hookshot')) set_rule(world.get_location('Fire Temple MQ Big Lava Room Bombable Chest'), lambda state: state.has_fire_source() and state.has('Progressive Hookshot') and state.has_explosives()) set_rule(world.get_location('Fire Temple MQ West Tower Top Chest'), lambda state: state.has('Small Key (Fire Temple)', 4)) From a0ac79f133d804ed34d853eca96a3d6ca3bdc2c3 Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 14 Sep 2018 01:06:08 -0400 Subject: [PATCH 483/755] Add option to place exactly one item in each dungeon Adds an interesting alternative to the distribution --- BaseClasses.py | 6 +++++ Dungeons.py | 6 +++-- Fill.py | 58 +++++++++++++++++++++++++++++++++++++++++++ Hints.py | 2 +- Settings.py | 67 +++++++++++++++++++++++++++++++++----------------- version.py | 2 +- 6 files changed, 115 insertions(+), 26 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index ec2a459f1..2ac985152 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -215,6 +215,9 @@ def push_item(self, location, item): location.item = item item.location = location + if item.type != 'Token' and item.type != 'Event' and item.type != 'Shop' and not (item.key or item.map or item.compass) and item.advancement and location.parent_region.dungeon: + location.parent_region.dungeon.major_items += 1 + logging.getLogger('').debug('Placed %s [World %d] at %s [World %d]', item, item.world.id if hasattr(item, 'world') else -1, location, location.world.id if hasattr(location, 'world') else -1) else: raise RuntimeError('Cannot assign item %s to location %s.' % (item, location)) @@ -657,6 +660,8 @@ def can_fill(self, item): is_dungeon_restricted = self.world.shuffle_smallkeys == 'dungeon' elif item.bosskey: is_dungeon_restricted = self.world.shuffle_bosskeys == 'dungeon' + elif item.type != 'Token' and item.type != 'Event' and item.type != 'Shop' and item.advancement and self.world.one_item_per_dungeon and self.dungeon: + return self.dungeon.major_items == 0 if is_dungeon_restricted: return self.dungeon and self.dungeon.is_dungeon_item(item) @@ -718,6 +723,7 @@ def to_array(obj): self.boss_key = to_array(boss_key) self.small_keys = to_array(small_keys) self.dungeon_items = to_array(dungeon_items) + self.major_items = 0 @property def keys(self): diff --git a/Dungeons.py b/Dungeons.py index fc98b0ed9..b437850b8 100644 --- a/Dungeons.py +++ b/Dungeons.py @@ -5,10 +5,12 @@ def create_dungeons(world): - def make_dungeon(name, dungeon_regions, boss_key, small_keys, dungeon_items): + def make_dungeon(name, dungeon_regions_names, boss_key, small_keys, dungeon_items): + dungeon_regions = [world.get_region(region) for region in dungeon_regions_names] + dungeon = Dungeon(name, dungeon_regions, boss_key, small_keys, dungeon_items) for region in dungeon.regions: - world.get_region(region).dungeon = dungeon + region.dungeon = dungeon return dungeon if world.dungeon_mq['DT']: diff --git a/Fill.py b/Fill.py index 714c4cd9f..3fc8eacab 100644 --- a/Fill.py +++ b/Fill.py @@ -74,6 +74,11 @@ def distribute_items_restrictive(window, worlds, fill_locations=None): if not worlds[0].shuffle_song_items: fill_songs(window, worlds, song_locations, songitempool, progitempool) + # Put one item in every dungeon, needs to be done before other items are + # placed to ensure there is a spot available for them + if worlds[0].one_item_per_dungeon: + fill_dungeon_unique_item(window, worlds, fill_locations, progitempool) + # Place all progression items. This will include keys in keysanity. # Items in this group will check for reachability and will be placed # such that the game is guaranteed beatable. @@ -129,6 +134,59 @@ def fill_dungeons_restrictive(window, worlds, shuffled_locations, dungeon_items, world.state.clear_cached_unreachable() +# Places items into dungeon locations. This is used when there should be exactly +# one progression item per dungeon. This should be ran before all the progression +# items are places to ensure there is space to place them. +def fill_dungeon_unique_item(window, worlds, fill_locations, itempool, attempts=15): + # We should make sure that we don't count event items, shop items, + # token items, or dungeon items as a major item. itempool at this + # point should only be able to have tokens of those restrictions + # since the rest are already placed. + major_items = [item for item in itempool if item.type != 'Token'] + token_items = [item for item in itempool if item.type == 'Token'] + + while attempts: + attempts -= 1 + try: + # choose a random set of items and locations + dungeon_locations = [] + for dungeon in [dungeon for world in worlds for dungeon in world.dungeons]: + dungeon_locations.append(random.choice([location for region in dungeon.regions for location in region.locations if location in fill_locations])) + dungeon_items = random.sample(major_items, len(dungeon_locations)) + + new_dungeon_locations = list(dungeon_locations) + new_dungeon_items = list(dungeon_items) + non_dungeon_items = [item for item in major_items if item not in dungeon_items] + all_other_item_state = CollectionState.get_states_with_items([world.state for world in worlds], token_items + non_dungeon_items) + + # attempt to place the items into the locations + random.shuffle(new_dungeon_locations) + random.shuffle(new_dungeon_items) + fill_restrictive(window, worlds, all_other_item_state, new_dungeon_locations, new_dungeon_items) + if len(new_dungeon_locations) > 0: + raise FillError('Not all items were placed successfully') + + logging.getLogger('').info("Unique dungeon items placed") + + # remove the placed items from the fill_location and itempool + for location in dungeon_locations: + fill_locations.remove(location) + for item in dungeon_items: + itempool.remove(item) + + except FillError as e: + logging.getLogger('').info("Failed to place unique dungeon items. Will retry %s more times", attempts) + for location in dungeon_locations: + location.item = None + for dungeon in [dungeon for world in worlds for dungeon in world.dungeons]: + dungeon.major_items = 0 + logging.getLogger('').info('\t%s' % str(e)) + continue + break + else: + raise FillError('Unable to place unique dungeon items') + + # Places the shop items into the world at the Shop locations def fill_shops(window, worlds, locations, shoppool, itempool, attempts=15): # List of states with all items diff --git a/Hints.py b/Hints.py index a5d45c157..e3e329c07 100644 --- a/Hints.py +++ b/Hints.py @@ -110,7 +110,7 @@ def buildGossipHints(world): # add bad dungeon locations hints for dungeon in random.sample(world.dungeons, random.randint(3,4)): # Choose a randome dungeon location that is a non-dungeon item - locationWorld = random.choice([location for region in dungeon.regions for location in world.get_region(region).locations + locationWorld = random.choice([location for region in dungeon.regions for location in region.locations if location.item.type != 'Event' and \ location.item.type != 'Shop' and \ not location.event and \ diff --git a/Settings.py b/Settings.py index b57128c73..fa8eaa8e8 100644 --- a/Settings.py +++ b/Settings.py @@ -384,6 +384,27 @@ def parse_custom_navi_color(s): 'Always open': Nothing ''' }), + Setting_Info('all_reachable', bool, 1, True, + { + 'help': '''\ + When disabled, only check if the game is beatable with + placement. Do not ensure all locations are reachable. + This only has an effect on the restrictive algorithm + currently. + ''', + 'action': 'store_true' + }, + { + 'text': 'All Locations Reachable', + 'group': 'world', + 'widget': 'Checkbutton', + 'default': 'checked', + 'tooltip':'''\ + Chests that lock themselves can still exists. + When disabled, some locations and item might + not be reachable. + ''' + }), Setting_Info('bombchus_in_logic', bool, 1, True, { 'help': '''\ @@ -396,7 +417,7 @@ def parse_custom_navi_color(s): }, { 'text': 'Bombchus are considered in logic', - 'group': 'logic', + 'group': 'world', 'widget': 'Checkbutton', 'default': 'checked', 'tooltip':'''\ @@ -416,6 +437,29 @@ def parse_custom_navi_color(s): obtained. ''', }), + Setting_Info('one_item_per_dungeon', bool, 1, True, + { + 'help': '''\ + Each dungeon will have exactly one major item. + Does not include dungeon items or skulltulas. + ''', + 'action': 'store_true' + }, + { + 'text': 'Dungeons have one major item', + 'group': 'world', + 'widget': 'Checkbutton', + 'default': 'unchecked', + 'tooltip':'''\ + Dungeons have exactly one major + item. Makes dungeon value more + even. Also allows skipping items + once the major item is found. + + Dungeon items and skulltulas do + not count as major items. + ''', + }), Setting_Info('trials_random', bool, 1, True, { 'help': '''\ @@ -630,27 +674,6 @@ def parse_custom_navi_color(s): to do them all anyways looking for the key. ''' }), - Setting_Info('all_reachable', bool, 1, True, - { - 'help': '''\ - When disabled, only check if the game is beatable with - placement. Do not ensure all locations are reachable. - This only has an effect on the restrictive algorithm - currently. - ''', - 'action': 'store_true' - }, - { - 'text': 'All Locations Reachable', - 'group': 'logic', - 'widget': 'Checkbutton', - 'default': 'checked', - 'tooltip':'''\ - Chests that lock themselves can still exists. - When disabled, some locations and item might - not be reachable. - ''' - }), Setting_Info('shuffle_kokiri_sword', bool, 1, True, { 'help': '''\ diff --git a/version.py b/version.py index 8fa916803..74ec3e8c7 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.17.18 f.LUM' +__version__ = '2.17.19 f.LUM' From 29ba1cd4e1df9c25ccd4c9186d246b492d6410b0 Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 14 Sep 2018 01:16:01 -0400 Subject: [PATCH 484/755] Moved the "remove ganon's door" to the shuffle dungeon item options --- Settings.py | 37 +++++++++++++++++++------------------ version.py | 2 +- 2 files changed, 20 insertions(+), 19 deletions(-) diff --git a/Settings.py b/Settings.py index fa8eaa8e8..4b9e4e8fd 100644 --- a/Settings.py +++ b/Settings.py @@ -656,24 +656,6 @@ def parse_custom_navi_color(s): 'R': C-Right ''' }), - Setting_Info('unlocked_ganondorf', bool, 1, True, - { - 'help': '''\ - The Boss Key door in Ganon's Tower will start unlocked. - ''', - 'action': 'store_true' - }, - { - 'text': 'Remove Ganon\'s Boss Door Lock', - 'group': 'open', - 'widget': 'Checkbutton', - 'default': 'unchecked', - 'tooltip':'''\ - Best when used when reducing the number of - Trials to less than 6 to prevent needing - to do them all anyways looking for the key. - ''' - }), Setting_Info('shuffle_kokiri_sword', bool, 1, True, { 'help': '''\ @@ -965,6 +947,25 @@ def parse_custom_navi_color(s): for a milder Keysanity experience. ''' }), + Setting_Info('unlocked_ganondorf', bool, 1, True, + { + 'help': '''\ + The Boss Key door in Ganon's Tower will start unlocked. + ''', + 'action': 'store_true' + }, + { + 'text': 'Remove Ganon\'s Boss Door Lock', + 'group': 'logic', + 'widget': 'Checkbutton', + 'default': 'unchecked', + 'tooltip':'''\ + Best when used when reducing the number of + Trials to less than 6 to prevent needing + to do them all anyways looking for the key. + ''', + 'dependency': lambda guivar: guivar['shuffle_bosskeys'].get() != 'Boss Keys: Remove (Keysy)', + }), Setting_Info('tokensanity', str, 2, True, { 'default': 'off', diff --git a/version.py b/version.py index 74ec3e8c7..5488975f4 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.17.19 f.LUM' +__version__ = '2.17.20 f.LUM' From 3b56c4739829dc7410ac7c0eaf955587c24c4727 Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 14 Sep 2018 01:41:48 -0400 Subject: [PATCH 485/755] Only remove Fire Temple locked door in non-keysanity + non-MQ --- Fill.py | 4 ++-- ItemList.py | 3 +++ Patches.py | 3 ++- Rules.py | 32 ++++++++++++++++---------------- Settings.py | 4 +++- version.py | 2 +- 6 files changed, 27 insertions(+), 21 deletions(-) diff --git a/Fill.py b/Fill.py index 3fc8eacab..6649406f8 100644 --- a/Fill.py +++ b/Fill.py @@ -288,7 +288,7 @@ def fill_restrictive(window, worlds, base_state_list, locations, itempool): raise FillError('Game unbeatable: No more spots to place %s [World %d]' % (item_to_place, item_to_place.world.id)) if not worlds[0].check_beatable_only: - logging.getLogger('').warning('Not all items placed. Game beatable anyway.') + logging.getLogger('').debug('Not all items placed. Game beatable anyway.') break # Place the item in the world and continue @@ -317,7 +317,7 @@ def fill_restrictive_fast(window, worlds, locations, itempool): # at this point if spot_to_fill is None: if not worlds[0].check_beatable_only: - logging.getLogger('').warning('Not all items placed. Game beatable anyway.') + logging.getLogger('').debug('Not all items placed. Game beatable anyway.') break # Place the item in the world and continue diff --git a/ItemList.py b/ItemList.py index 4c71c837b..9be5cd11f 100644 --- a/ItemList.py +++ b/ItemList.py @@ -564,6 +564,9 @@ def get_pool_core(world): for item in [item for dungeon in world.dungeons for item in dungeon.boss_key]: world.state.collect(item) pool.append(random.choice(harditems)) + if not world.keysanity and not world.dungeon_mq['FiT']: + world.state.collect(ItemFactory('Small Key (Fire Temple)')) + return (pool, placed_items) diff --git a/Patches.py b/Patches.py index e8222d13e..0533789f3 100644 --- a/Patches.py +++ b/Patches.py @@ -134,7 +134,8 @@ def patch_rom(world, rom): rom.write_bytes(0xB06BBA, [0x00, 0x00]) # Remove locked door to Boss Key Chest in Fire Temple - rom.write_byte(0x22D82B7, 0x3F) + if not world.keysanity and not world.dungeon_mq['FiT']: + rom.write_byte(0x22D82B7, 0x3F) # Change Bombchi Shop to be always open rom.write_int32(0xC6CEDC, 0x240B0001) # li t3, 1 diff --git a/Rules.py b/Rules.py index 16fe0c11b..661946036 100644 --- a/Rules.py +++ b/Rules.py @@ -428,17 +428,17 @@ def dung_rules_fot0(world): def dung_rules_fit0(world): # Fire Temple Vanilla - set_rule(world.get_entrance('Fire Temple Early Climb'), lambda state: state.has_GoronTunic() and state.has('Small Key (Fire Temple)', 3) and state.has('Progressive Strength Upgrade') and (state.has_explosives() or ((state.has_bow() or state.has('Progressive Hookshot')) and state.is_adult()))) - set_rule(world.get_entrance('Fire Temple Fire Maze Escape'), lambda state: state.has('Small Key (Fire Temple)', 7) or (state.has('Small Key (Fire Temple)', 6) and state.has('Hover Boots') and state.has('Hammer') and state.is_adult())) - set_rule(world.get_location('Fire Temple Fire Dancer Chest'), lambda state: state.is_adult() and state.has('Hammer')) - set_rule(world.get_location('Fire Temple Boss Key Chest'), lambda state: state.is_adult() and state.has('Hammer')) - set_rule(world.get_location('Fire Temple Big Lava Room Bombable Chest'), lambda state: state.has('Small Key (Fire Temple)', 1) and state.has_explosives()) - set_rule(world.get_location('Fire Temple Big Lava Room Open Chest'), lambda state: state.has('Small Key (Fire Temple)', 1)) - set_rule(world.get_location('Fire Temple Map Chest'), lambda state: state.has('Small Key (Fire Temple)', 5) or (state.has('Small Key (Fire Temple)', 4) and state.is_adult() and state.has_bow())) - set_rule(world.get_location('Fire Temple Boulder Maze Upper Chest'), lambda state: state.has('Small Key (Fire Temple)', 5)) - set_rule(world.get_location('Fire Temple Boulder Maze Bombable Pit'), lambda state: state.has('Small Key (Fire Temple)', 5) and state.has_explosives()) - set_rule(world.get_location('Fire Temple Scarecrow Chest'), lambda state: state.has_ocarina() and state.has('Small Key (Fire Temple)', 5) and state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('Fire Temple Compass Chest'), lambda state: state.has('Small Key (Fire Temple)', 6)) + set_rule(world.get_entrance('Fire Temple Early Climb'), lambda state: state.has_GoronTunic() and state.has('Small Key (Fire Temple)', 4) and state.has('Progressive Strength Upgrade') and (state.has_explosives() or ((state.has_bow() or state.has('Progressive Hookshot')) and state.is_adult()))) + set_rule(world.get_entrance('Fire Temple Fire Maze Escape'), lambda state: state.has('Small Key (Fire Temple)', 8) or (state.has('Small Key (Fire Temple)', 7) and state.has('Hover Boots') and state.has('Hammer') and state.is_adult())) + set_rule(world.get_location('Fire Temple Fire Dancer Chest'), lambda state: (state.has('Small Key (Fire Temple)', 2) or (not world.keysanity and not world.dungeon_mq['FiT'])) and state.is_adult() and state.has('Hammer')) + set_rule(world.get_location('Fire Temple Boss Key Chest'), lambda state: (state.has('Small Key (Fire Temple)', 2) or (not world.keysanity and not world.dungeon_mq['FiT'])) and state.is_adult() and state.has('Hammer')) + set_rule(world.get_location('Fire Temple Big Lava Room Bombable Chest'), lambda state: state.has('Small Key (Fire Temple)', 2) and state.has_explosives()) + set_rule(world.get_location('Fire Temple Big Lava Room Open Chest'), lambda state: state.has('Small Key (Fire Temple)', 2)) + set_rule(world.get_location('Fire Temple Map Chest'), lambda state: state.has('Small Key (Fire Temple)', 6) or (state.has('Small Key (Fire Temple)', 5) and state.is_adult() and state.has_bow())) + set_rule(world.get_location('Fire Temple Boulder Maze Upper Chest'), lambda state: state.has('Small Key (Fire Temple)', 6)) + set_rule(world.get_location('Fire Temple Boulder Maze Bombable Pit'), lambda state: state.has('Small Key (Fire Temple)', 6) and state.has_explosives()) + set_rule(world.get_location('Fire Temple Scarecrow Chest'), lambda state: state.has_ocarina() and state.has('Small Key (Fire Temple)', 6) and state.has('Progressive Hookshot') and state.is_adult()) + set_rule(world.get_location('Fire Temple Compass Chest'), lambda state: state.has('Small Key (Fire Temple)', 7)) set_rule(world.get_location('Fire Temple Highest Goron Chest'), lambda state: state.can_play('Song of Time') and state.has('Hammer') and state.is_adult()) set_rule(world.get_location('Fire Temple Megaton Hammer Chest'), lambda state: state.has_explosives()) @@ -447,11 +447,11 @@ def dung_rules_fit0(world): set_rule(world.get_location('Volvagia Heart'), lambda state: state.has_GoronTunic() and state.has('Hammer') and state.is_adult() and state.has('Boss Key (Fire Temple)') and (state.has('Hover Boots') or (state.can_reach('Fire Temple Upper') and (state.can_play('Song of Time') or state.has_explosives())))) # GS - set_rule(world.get_location('GS Fire Temple Song of Time Room'), lambda state: state.has('Small Key (Fire Temple)', 1) and state.can_play('Song of Time')) - set_rule(world.get_location('GS Fire Temple Unmarked Bomb Wall'), lambda state: state.has('Small Key (Fire Temple)', 3) and state.has_explosives()) - set_rule(world.get_location('GS Fire Temple East Tower Climb'), lambda state: state.has_ocarina() and state.has('Small Key (Fire Temple)', 5) and state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('GS Fire Temple East Tower Top'), lambda state: state.has_ocarina() and state.has('Small Key (Fire Temple)', 5) and state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('GS Fire Temple Basement'), lambda state: state.has('Hammer') and state.is_adult()) + set_rule(world.get_location('GS Fire Temple Song of Time Room'), lambda state: state.has('Small Key (Fire Temple)', 2) and state.can_play('Song of Time')) + set_rule(world.get_location('GS Fire Temple Unmarked Bomb Wall'), lambda state: state.has('Small Key (Fire Temple)', 4) and state.has_explosives()) + set_rule(world.get_location('GS Fire Temple East Tower Climb'), lambda state: state.has_ocarina() and state.has('Small Key (Fire Temple)', 6) and state.has('Progressive Hookshot') and state.is_adult()) + set_rule(world.get_location('GS Fire Temple East Tower Top'), lambda state: state.has_ocarina() and state.has('Small Key (Fire Temple)', 6) and state.has('Progressive Hookshot') and state.is_adult()) + set_rule(world.get_location('GS Fire Temple Basement'), lambda state: (state.has('Small Key (Fire Temple)', 2) or (not world.keysanity and not world.dungeon_mq['FiT'])) and state.has('Hammer') and state.is_adult()) def dung_rules_wt0(world): # Water Temple vanilla diff --git a/Settings.py b/Settings.py index 4b9e4e8fd..a29daf456 100644 --- a/Settings.py +++ b/Settings.py @@ -895,7 +895,9 @@ def parse_custom_navi_color(s): mode. 'Dungeon': Small Keys can only appear in their - respective dungeon. + respective dungeon. If Fire Temple is not a + Master Quest dungeon, the door to the boss key + chest will be unlocked 'Anywhere': Small Keys can appear anywhere in the world. A difficult mode since diff --git a/version.py b/version.py index 5488975f4..a63091c8a 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.17.20 f.LUM' +__version__ = '2.17.21 f.LUM' From 7d24196d6a4db82cb340876104a32af1938b584c Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 14 Sep 2018 01:47:07 -0400 Subject: [PATCH 486/755] Make the 'Spirit Temple Outdoor Hands' chests part of the dungeon --- Dungeons.py | 3 ++- version.py | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Dungeons.py b/Dungeons.py index b437850b8..05b892d99 100644 --- a/Dungeons.py +++ b/Dungeons.py @@ -102,7 +102,8 @@ def make_dungeon(name, dungeon_regions_names, boss_key, small_keys, dungeon_item SpT = make_dungeon( 'Spirit Temple', ['Spirit Temple Lobby', 'Child Spirit Temple', 'Child Spirit Temple Climb', 'Early Adult Spirit Temple', - 'Spirit Temple Central Chamber', 'Spirit Temple Beyond Central Locked Door', 'Spirit Temple Beyond Final Locked Door'], + 'Spirit Temple Central Chamber', 'Spirit Temple Beyond Central Locked Door', 'Spirit Temple Beyond Final Locked Door', + 'Spirit Temple Outdoor Hands'], ItemFactory('Boss Key (Spirit Temple)'), ItemFactory(['Small Key (Spirit Temple)'] * 5), ItemFactory(['Map (Spirit Temple)', 'Compass (Spirit Temple)'])) diff --git a/version.py b/version.py index a63091c8a..181fc6d41 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.17.21 f.LUM' +__version__ = '2.17.22 f.LUM' From 108c1f36df5ef8575ab22015b017bd883c562281 Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 14 Sep 2018 01:57:00 -0400 Subject: [PATCH 487/755] Fix shops displaying the correct player number (Issue #125) --- Patches.py | 2 +- version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Patches.py b/Patches.py index 0533789f3..ff5c1a8e8 100644 --- a/Patches.py +++ b/Patches.py @@ -1874,7 +1874,7 @@ def place_shop_items(rom, world, shop_items, messages, locations, init_shop_id=F shop_item.description_message = 0x8100 + message_id shop_item.purchase_message = 0x8100 + message_id + 1 if world.world_count > 1: - update_message_by_id(messages, shop_item.description_message, '\x08\x05\x41%s %d Rupees\x01\x05\x42Player \x18\x05\x40\x01Special deal! ONE LEFT!\x09\x0A\x02' % (location.item.name, location.price), 0x03) + update_message_by_id(messages, shop_item.description_message, '\x08\x05\x41%s %d Rupees\x01\x05\x42Player %d\x05\x40\x01Special deal! ONE LEFT!\x09\x0A\x02' % (location.item.name, location.price, location.item.world.id + 1), 0x03) else: update_message_by_id(messages, shop_item.description_message, '\x08\x05\x41%s %d Rupees\x01\x05\x40Special deal! ONE LEFT!\x01Get it while it lasts!\x09\x0A\x02' % (location.item.name, location.price), 0x03) update_message_by_id(messages, shop_item.purchase_message, '\x08%s %d Rupees\x09\x01\x01\x1B\x05\x42Buy\x01Don\'t buy\x05\x40\x02' % (location.item.name, location.price), 0x03) diff --git a/version.py b/version.py index 181fc6d41..fab9ba192 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.17.22 f.LUM' +__version__ = '2.17.23 f.LUM' From 68db1f17dd020393e6c5483bc337518c66a80469 Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 14 Sep 2018 02:07:42 -0400 Subject: [PATCH 488/755] Fix mask shop [again] (Issue #124) --- Patches.py | 2 +- version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Patches.py b/Patches.py index ff5c1a8e8..811afc802 100644 --- a/Patches.py +++ b/Patches.py @@ -1361,7 +1361,7 @@ def write_save_table(rom): # give dungeon items the correct messages message_patch_for_dungeon_items(messages, shop_items, world) # update happy mask shop to use new SOLD OUT text id - rom.write_int16(0xC01C06, shop_items[0x26].description_message) + rom.write_int16(shop_item_file.start + 0x1726, shop_items[0x26].description_message) # add song messages add_song_messages(messages, world) diff --git a/version.py b/version.py index fab9ba192..daca2d9b8 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.17.23 f.LUM' +__version__ = '2.17.24 f.LUM' From 982fd4478c0b8ff61ef9a70f56880ae8910f4f14 Mon Sep 17 00:00:00 2001 From: Nick Langille Date: Fri, 14 Sep 2018 02:09:17 -0400 Subject: [PATCH 489/755] Add .gitattributes --- .gitattributes | 1 + 1 file changed, 1 insertion(+) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 000000000..0ddd650ce --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +/data/base2current.json binary From 677245c86c03f3d9dab8b97e50e0e3003ea7138b Mon Sep 17 00:00:00 2001 From: Nick Langille Date: Fri, 14 Sep 2018 02:10:55 -0400 Subject: [PATCH 490/755] Switch dungeon info display to horizontal layout, improve build process --- ASM/.gitignore | 1 + ASM/scripts/sym2pj64.py | 21 +- ASM/src/build.asm | 2 +- ASM/src/c/Makefile | 31 +- ASM/src/c/dungeon_info.c | 226 + ASM/src/c/dungeon_info.h | 8 + ASM/src/c/gfx.c | 122 + ASM/src/c/gfx.h | 31 + ASM/src/c/main.c | 498 +-- ASM/src/c/main.o | Bin 9380 -> 0 bytes ASM/src/c/output/.gitkeep | 0 ASM/src/c/output/bundle.o | Bin 0 -> 9284 bytes ASM/src/c/output/debug.txt | 60 + ASM/src/c/text.c | 60 + ASM/src/c/text.h | 10 + ASM/src/c/util.c | 23 + ASM/src/c/util.h | 23 + data/base2current.json | 8252 ++++++++++++++++-------------------- 18 files changed, 4357 insertions(+), 5011 deletions(-) create mode 100644 ASM/src/c/dungeon_info.c create mode 100644 ASM/src/c/dungeon_info.h create mode 100644 ASM/src/c/gfx.c create mode 100644 ASM/src/c/gfx.h delete mode 100644 ASM/src/c/main.o create mode 100644 ASM/src/c/output/.gitkeep create mode 100644 ASM/src/c/output/bundle.o create mode 100644 ASM/src/c/output/debug.txt create mode 100644 ASM/src/c/text.c create mode 100644 ASM/src/c/text.h create mode 100644 ASM/src/c/util.c create mode 100644 ASM/src/c/util.h diff --git a/ASM/.gitignore b/ASM/.gitignore index fda3bd009..06bbf3544 100644 --- a/ASM/.gitignore +++ b/ASM/.gitignore @@ -1,5 +1,6 @@ /inject /roms/* /temp/* +/src/c/*.o armips* !.gitkeep diff --git a/ASM/scripts/sym2pj64.py b/ASM/scripts/sym2pj64.py index 716f5c3fd..67653a000 100644 --- a/ASM/scripts/sym2pj64.py +++ b/ASM/scripts/sym2pj64.py @@ -13,15 +13,18 @@ out_path = sys.argv[3] sym_types = {} -for obj_path in glob.glob(obj_dir + '/*.o'): - process = subprocess.Popen(['mips64-objdump', '-t', obj_path], stdout=subprocess.PIPE) - out, err = process.communicate() - for line in out.decode('utf-8').split('\n'): - m = re.match('^[0-9a-fA-F]+.*\.([^\s]+)\s+[0-9a-fA-F]+\s+([^.$][^\s]+)\s+$', line) - if m: - sym_type = m.group(1) - name = m.group(2) - sym_types[name] = 'code' if sym_type == 'text' else 'data' +lines = [] +try: + lines = open('src/c/output/debug.txt', 'r').readlines() +except: + pass + +for line in lines: + m = re.match('^[0-9a-fA-F]+.*\.([^\s]+)\s+[0-9a-fA-F]+\s+([^.$][^\s]+)\s+$', line) + if m: + sym_type = m.group(1) + name = m.group(2) + sym_types[name] = 'code' if sym_type == 'text' else 'data' in_file = open(in_path, 'r') out_file = open(out_path, 'w') diff --git a/ASM/src/build.asm b/ASM/src/build.asm index 66a2a252b..14d6e4345 100755 --- a/ASM/src/build.asm +++ b/ASM/src/build.asm @@ -54,7 +54,7 @@ DebugOutput: .org 0x80405000 .area 0xB000, 0 -.importobj "src/c/main.o" +.importobj "src/c/output/bundle.o" FONT_TEXTURE: .incbin("resources/font.bin") .endarea diff --git a/ASM/src/c/Makefile b/ASM/src/c/Makefile index 695e1191a..46227f763 100644 --- a/ASM/src/c/Makefile +++ b/ASM/src/c/Makefile @@ -1,7 +1,26 @@ -CC=mips64-gcc -CFLAGS=-march=vr4300 -mtune=vr4300 -mabi=32 -mno-gpopt \ - -O1 -fno-reorder-blocks \ - -DZ64_VERSION=Z64_OOT10 +CC = mips64-gcc +LD = mips64-ld +OBJDUMP = mips64-objdump -main: - $(CC) -c main.c $(CFLAGS) +CFLAGS = -march=vr4300 -mtune=vr4300 -mabi=32 -mno-gpopt \ + -O1 -fno-reorder-blocks \ + -DZ64_VERSION=Z64_OOT10 + +OBJECTS = $(patsubst %.c,%.o,$(wildcard *.c)) +HEADERS = $(wildcard *.h) + +.PHONY: all clean bundle debug + +all: clean bundle debug + +%.o: %.c $(HEADERS) + $(CC) -c $< $(CFLAGS) + +bundle: $(OBJECTS) + $(LD) -o output/bundle.o -i -L. $(patsubst %.o,-l:%.o,$(OBJECTS)) + +debug: bundle + $(OBJDUMP) -t output/bundle.o > output/debug.txt + +clean: + rm -f *.o output/* diff --git a/ASM/src/c/dungeon_info.c b/ASM/src/c/dungeon_info.c new file mode 100644 index 000000000..8b3234bbc --- /dev/null +++ b/ASM/src/c/dungeon_info.c @@ -0,0 +1,226 @@ +#include "dungeon_info.h" + +#include "gfx.h" +#include "text.h" +#include "util.h" +#include "z64.h" + +typedef struct { + uint8_t index; + char name[9]; +} dungeon_entry_t; + +dungeon_entry_t dungeons[] = { + { 0, "Deku" }, + { 1, "Dodongo" }, + { 2, "Jabu" }, + + { 3, "Forest" }, + { 4, "Fire" }, + { 5, "Water" }, + { 7, "Shadow" }, + { 6, "Spirit" }, + + { 8, "BotW" }, + { 9, "Ice" }, + { 11, "GTG" }, + { 12, "Hideout" }, + { 13, "Ganon" }, +}; + +int dungeon_count = array_size(dungeons); + +int8_t has_keys[] = { 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, -1, 1, 1, 1 }; +int8_t has_bosskey[] = { 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, -1, 0, 0, 1 }; +int8_t has_card[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0 }; +int8_t has_map[] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 0, 0, 0 }; + +typedef struct { + uint8_t r; + uint8_t g; + uint8_t b; +} medal_color_t; + +medal_color_t medal_colors[] = { + { 0x11, 0xC2, 0x2D }, // Forest + { 0xD4, 0x43, 0x22 }, // Fire + { 0x08, 0x54, 0xCE }, // Water + { 0xD1, 0x75, 0x1A }, // Spirit + { 0xA9, 0x3A, 0xEA }, // Shadow + { 0xA4, 0xAB, 0x21 }, // Light +}; + +// FIXME: Make dynamic +int8_t rewards[] = { 4, 1, 7, 5, 0, 8, 6, 2, -1, -1, -1, -1, -1, -1 }; +uint8_t dungeon_is_mq[] = { 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0 }; + +void draw_dungeon_info(z64_disp_buf_t *db) { + // Call setup display list + gSPDisplayList(db->p++, setup_db.buf); + + // Set up dimensions + + int icon_size = 16; + int padding = 2; + int rows = 13; + int bg_width = (5 * icon_size) + ((8 + 6) * font_sprite.tile_w) + + (8 * padding); + int bg_height = (rows * icon_size) + ((rows + 1) * padding); + int bg_left = (Z64_SCREEN_WIDTH - bg_width) / 2; + int bg_top = (Z64_SCREEN_HEIGHT - bg_height) / 2; + + int left = bg_left + padding; + int start_top = bg_top + padding; + + // Draw background + + gDPSetCombineMode(db->p++, G_CC_PRIMITIVE, G_CC_PRIMITIVE); + gDPSetPrimColor(db->p++, 0, 0, 0x00, 0x00, 0x00, 0xD0); + gSPTextureRectangle(db->p++, + bg_left<<2, bg_top<<2, + (bg_left + bg_width)<<2, (bg_top + bg_height)<<2, + 0, + 0, 0, + 1<<10, 1<<10); + + // Draw medals + + gDPPipeSync(db->p++); + gDPSetCombineMode(db->p++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM); + + sprite_load(db, &medals_sprite, 0, medals_sprite.tile_count); + + for (int i = 0; i < dungeon_count; i++) { + dungeon_entry_t *d = &(dungeons[i]); + int reward = rewards[d->index]; + if (reward < 3) continue; + reward -= 3; + + medal_color_t *c = &(medal_colors[reward]); + gDPSetPrimColor(db->p++, 0, 0, c->r, c->g, c->b, 0xFF); + + int top = start_top + ((icon_size + padding) * i); + sprite_draw(db, &medals_sprite, reward, + left, top, icon_size, icon_size); + } + + // Draw stones + + gDPSetPrimColor(db->p++, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF); + sprite_load(db, &stones_sprite, 0, stones_sprite.tile_count); + + for (int i = 0; i < dungeon_count; i++) { + dungeon_entry_t *d = &(dungeons[i]); + int reward = rewards[d->index]; + if (reward < 0 || reward >= 3) continue; + + int top = start_top + ((icon_size + padding) * i); + sprite_draw(db, &stones_sprite, reward, + left, top, icon_size, icon_size); + + } + + left += icon_size + padding; + + // Draw dungeon names + + for (int i = 0; i < dungeon_count; i++) { + dungeon_entry_t *d = &(dungeons[i]); + int top = start_top + ((icon_size + padding) * i) + 1; + text_print(d->name, left, top); + } + + left += (8 * font_sprite.tile_w) + padding; + + // Draw key counts + + sprite_load(db, &quest_items_sprite, 3, 1); + + for (int i = 0; i < dungeon_count; i++) { + dungeon_entry_t *d = &(dungeons[i]); + if (!has_keys[d->index]) continue; + + int8_t keys = z64_file.dungeon_keys[d->index]; + if (keys < 0) keys = 0; + if (keys > 9) keys = 9; + + char count[2] = "0"; + count[0] += keys; + int top = start_top + ((icon_size + padding) * i) + 1; + text_print(count, left, top); + } + + left += icon_size + padding; + + // Draw boss keys + + sprite_load(db, &quest_items_sprite, 0, 1); + + for (int i = 0; i < dungeon_count; i++) { + dungeon_entry_t *d = &(dungeons[i]); + if (has_bosskey[d->index] && z64_file.dungeon_items[d->index].boss_key) { + int top = start_top + ((icon_size + padding) * i); + sprite_draw(db, &quest_items_sprite, 0, + left, top, icon_size, icon_size); + } + } + + left += icon_size + padding; + + // Draw maps and compasses + + int draw_maps_and_compasses = 1; + if (draw_maps_and_compasses) { + // Draw maps + + sprite_load(db, &quest_items_sprite, 2, 1); + + for (int i = 0; i < dungeon_count; i++) { + dungeon_entry_t *d = &(dungeons[i]); + if (has_map[d->index] && z64_file.dungeon_items[d->index].map) { + int top = start_top + ((icon_size + padding) * i); + sprite_draw(db, &quest_items_sprite, 0, + left, top, icon_size, icon_size); + } + } + + left += icon_size + padding; + + // Draw compasses + + sprite_load(db, &quest_items_sprite, 1, 1); + + for (int i = 0; i < dungeon_count; i++) { + dungeon_entry_t *d = &(dungeons[i]); + if (has_map[d->index] && z64_file.dungeon_items[d->index].compass) { + int top = start_top + ((icon_size + padding) * i); + sprite_draw(db, &quest_items_sprite, 0, + left, top, icon_size, icon_size); + } + } + + left += icon_size + padding; + } + + // Draw master quest dungeons + + int show_mq = 1; + if (show_mq) { + //text_print("MQ", left, top); + for (int i = 0; i < dungeon_count; i++) { + dungeon_entry_t *d = &(dungeons[i]); + char *str = dungeon_is_mq[d->index] ? "MQ" : "Normal"; + int top = start_top + ((icon_size + padding) * i) + 1; + text_print(str, left, top); + } + + left += icon_size + padding; + } + + // Finish + + text_flush(db); + + gDPFullSync(db->p++); + gSPEndDisplayList(db->p++); +} diff --git a/ASM/src/c/dungeon_info.h b/ASM/src/c/dungeon_info.h new file mode 100644 index 000000000..435af14b7 --- /dev/null +++ b/ASM/src/c/dungeon_info.h @@ -0,0 +1,8 @@ +#ifndef DUNGEON_INFO_H +#define DUNGEON_INFO_H + +#include "z64.h" + +void draw_dungeon_info(z64_disp_buf_t *db); + +#endif diff --git a/ASM/src/c/gfx.c b/ASM/src/c/gfx.c new file mode 100644 index 000000000..3c251512e --- /dev/null +++ b/ASM/src/c/gfx.c @@ -0,0 +1,122 @@ +#include "gfx.h" + +#include "util.h" +#include "z64.h" + +void disp_buf_init(z64_disp_buf_t *db, Gfx *buf, int size) { + db->size = size; + db->buf = buf; + db->p = buf; + db->d = (Gfx *)((char *)buf + size); +} + +sprite_t stones_sprite = { + NULL, 16, 16, 3, + G_IM_FMT_RGBA, G_IM_SIZ_32b, 4 +}; + +sprite_t medals_sprite = { + NULL, 16, 16, 6, + G_IM_FMT_IA, G_IM_SIZ_8b, 1 +}; + +sprite_t quest_items_sprite = { + NULL, 24, 24, 4, + G_IM_FMT_RGBA, G_IM_SIZ_32b, 4 +}; + +sprite_t font_sprite = { + NULL, 8, 14, 95, + G_IM_FMT_IA, G_IM_SIZ_8b, 1 +}; + +int sprite_bytes_per_tile(sprite_t *sprite) { + return sprite->tile_w * sprite->tile_h * sprite->bytes_per_texel; +} + +int sprite_bytes(sprite_t *sprite) { + return sprite->tile_count * sprite_bytes_per_tile(sprite); +} + +void sprite_load(z64_disp_buf_t *db, sprite_t *sprite, + int start_tile, int tile_count) { + gDPLoadTextureBlock(db->p++, + sprite->buf + (start_tile * sprite_bytes_per_tile(sprite)), + sprite->im_fmt, sprite->im_siz, + sprite->tile_w, tile_count * sprite->tile_h, + 0, + G_TX_WRAP, G_TX_WRAP, + G_TX_NOMASK, G_TX_NOMASK, + G_TX_NOLOD, G_TX_NOLOD); +} + +void sprite_draw(z64_disp_buf_t *db, sprite_t *sprite, int tile_index, + int left, int top, int width, int height) { + int width_factor = (1<<10) * sprite->tile_w / width; + int height_factor = (1<<10) * sprite->tile_h / height; + + gSPTextureRectangle(db->p++, + left<<2, top<<2, + (left + width)<<2, (top + height)<<2, + 0, + 0, (tile_index * sprite->tile_h)<<5, + width_factor, height_factor); +} + +z64_disp_buf_t setup_db = {}; + +void draw_setup(z64_disp_buf_t *db) { + gDPPipeSync(db->p++); + + gSPLoadGeometryMode(db->p++, 0); + gDPSetScissor(db->p++, G_SC_NON_INTERLACE, + 0, 0, Z64_SCREEN_WIDTH, Z64_SCREEN_HEIGHT); + gDPSetAlphaDither(db->p++, G_AD_DISABLE); + gDPSetColorDither(db->p++, G_CD_DISABLE); + gDPSetAlphaCompare(db->p++, G_AC_NONE); + gDPSetDepthSource(db->p++, G_ZS_PRIM); + gDPSetCombineKey(db->p++, G_CK_NONE); + gDPSetTextureConvert(db->p++, G_TC_FILT); + gDPSetTextureDetail(db->p++, G_TD_CLAMP); + gDPSetTexturePersp(db->p++, G_TP_NONE); + gDPSetTextureLOD(db->p++, G_TL_TILE); + gDPSetTextureLUT(db->p++, G_TT_NONE); + gDPPipelineMode(db->p++, G_PM_NPRIMITIVE); + + gDPSetCycleType(db->p++, G_CYC_1CYCLE); + gDPSetRenderMode(db->p++, G_RM_XLU_SURF, G_RM_XLU_SURF2); + gDPSetTextureFilter(db->p++, G_TF_BILERP); + + gSPEndDisplayList(db->p++); +} + +extern char FONT_TEXTURE; +#define font_texture_raw ((uint8_t *)&FONT_TEXTURE) + +void gfx_init() { + file_t title_static = { + NULL, 0x01A02000, 0x395C0 + }; + file_init(&title_static); + + file_t icon_item_24_static = { + NULL, 0x00846000, 0xB400 + }; + file_init(&icon_item_24_static); + + stones_sprite.buf = title_static.buf + 0x2A300; + medals_sprite.buf = title_static.buf + 0x2980; + quest_items_sprite.buf = icon_item_24_static.buf + 0x7E00; + + int font_bytes = sprite_bytes(&font_sprite); + font_sprite.buf = heap_alloc(font_bytes); + for (int i = 0; i < font_bytes / 2; i++) { + font_sprite.buf[2*i] = (font_texture_raw[i] >> 4) | 0xF0; + font_sprite.buf[2*i + 1] = font_texture_raw[i] | 0xF0; + } + + int setup_size = 32 * sizeof(Gfx); + Gfx *setup_buf = heap_alloc(setup_size); + disp_buf_init(&setup_db, setup_buf, setup_size); + draw_setup(&setup_db); +} diff --git a/ASM/src/c/gfx.h b/ASM/src/c/gfx.h new file mode 100644 index 000000000..282c8340e --- /dev/null +++ b/ASM/src/c/gfx.h @@ -0,0 +1,31 @@ +#ifndef GFX_H +#define GFX_H + +#include "z64.h" + +z64_disp_buf_t setup_db; + +typedef struct { + uint8_t *buf; + uint16_t tile_w; + uint16_t tile_h; + uint16_t tile_count; + uint8_t im_fmt; + uint8_t im_siz; + uint8_t bytes_per_texel; +} sprite_t; + +sprite_t stones_sprite; +sprite_t medals_sprite; +sprite_t quest_items_sprite; +sprite_t font_sprite; + +void disp_buf_init(z64_disp_buf_t *db, Gfx *buf, int size); +void gfx_init(); + +void sprite_load(z64_disp_buf_t *db, sprite_t *sprite, + int start_tile, int tile_count); +void sprite_draw(z64_disp_buf_t *db, sprite_t *sprite, int tile_index, + int left, int top, int width, int height); + +#endif diff --git a/ASM/src/c/main.c b/ASM/src/c/main.c index f99c96abd..6899ef44f 100644 --- a/ASM/src/c/main.c +++ b/ASM/src/c/main.c @@ -1,501 +1,23 @@ +#include "dungeon_info.h" +#include "gfx.h" +#include "text.h" +#include "util.h" #include "z64.h" -#define z64_menu_state (z64_ctxt_addr + 0x10934) - -#define array_size(a) (sizeof(a) / sizeof(a[0])) - -extern char C_HEAP; -char *heap_next = NULL; - -void heap_init() { - heap_next = &C_HEAP; -} - -void *heap_alloc(uint32_t bytes) { - int rem = bytes % 16; - if (rem) bytes += 16 - rem; - - void *result = heap_next; - heap_next += bytes; - return result; -} - -typedef struct { - Gfx *buf; - Gfx *p; - uint32_t buf_size; -} displaylist_t; - -void displaylist_init(displaylist_t *dl, uint32_t size) { - dl->buf = heap_alloc(sizeof(Gfx) * size); - dl->p = dl->buf; - dl->buf_size = size; -} - -displaylist_t setup_dl = {}; - -#define text_bucket_count 3 -#define text_bucket_size 32 - -typedef struct { - displaylist_t main; - displaylist_t text[text_bucket_count]; -} dungeon_info_dls_t; - -dungeon_info_dls_t dungeon_info_dls[2] = {}; -int next_dl_index = 0; - -extern char FONT_TEXTURE; -#define font_texture_raw ((uint8_t *)&FONT_TEXTURE) - -typedef struct { - uint8_t *buf; - uint32_t vrom_start; - uint32_t size; -} file_t; - -file_t title_static = { - NULL, 0x01A02000, 0x395C0 -}; - -file_t icon_item_24_static = { - NULL, 0x00846000, 0xB400 -}; - -void (*read_file)(void *mem_addr, uint32_t vrom_addr, uint32_t size) = - (void *)0x80000DF0; - -void file_init(file_t *file) { - file->buf = heap_alloc(file->size); - read_file(file->buf, file->vrom_start, file->size); -} - -typedef struct { - uint8_t *buf; - uint16_t tile_w; - uint16_t tile_h; - uint16_t tile_count; - uint8_t im_fmt; - uint8_t im_siz; - uint8_t bytes_per_texel; -} sprite_t; - -sprite_t stones_sprite = { - NULL, 16, 16, 3, - G_IM_FMT_RGBA, G_IM_SIZ_32b, 4 -}; - -sprite_t medals_sprite = { - NULL, 16, 16, 6, - G_IM_FMT_IA, G_IM_SIZ_8b, 1 -}; - -sprite_t quest_items_sprite = { - NULL, 24, 24, 4, - G_IM_FMT_RGBA, G_IM_SIZ_32b, 4 -}; - -sprite_t font_sprite = { - NULL, 8, 14, 95, - G_IM_FMT_IA, G_IM_SIZ_8b, 1 -}; - -uint32_t sprite_bytes_per_tile(sprite_t *sprite) { - return sprite->tile_w * sprite->tile_h * sprite->bytes_per_texel; -} - -uint32_t sprite_bytes(sprite_t *sprite) { - return sprite->tile_count * sprite_bytes_per_tile(sprite); -} - -void sprite_load(displaylist_t *dl, sprite_t *sprite, - uint32_t start_tile, uint32_t tile_count) { - gDPLoadTextureBlock(dl->p++, - sprite->buf + (start_tile * sprite_bytes_per_tile(sprite)), - sprite->im_fmt, sprite->im_siz, - sprite->tile_w, tile_count * sprite->tile_h, - 0, - G_TX_WRAP, G_TX_WRAP, - G_TX_NOMASK, G_TX_NOMASK, - G_TX_NOLOD, G_TX_NOLOD); -} - -void sprite_draw(displaylist_t *dl, sprite_t *sprite, uint32_t tile_index, - uint32_t left, uint32_t top, uint32_t width, uint32_t height) { - uint32_t width_factor = (1<<10) * sprite->tile_w / width; - uint32_t height_factor = (1<<10) * sprite->tile_h / height; - - gSPTextureRectangle(dl->p++, - left<<2, top<<2, - (left + width)<<2, (top + height)<<2, - 0, - 0, (tile_index * sprite->tile_h)<<5, - width_factor, height_factor); -} - -typedef struct { - uint8_t index; - char label[3]; - struct { - uint8_t has_keys : 1; - uint8_t has_boss_key : 1; - uint8_t has_map : 1; - uint8_t has_compass : 1; - }; -} dungeon_entry_t; - -dungeon_entry_t dungeons[] = { - { 0, "De", 0, 0, 1, 1 }, // Deku Tree - { 1, "DC", 0, 0, 1, 1 }, // Dodongo's Cavern - { 2, "Ja", 0, 0, 1, 1 }, // Jabu - - { 3, "Fo", 1, 1, 1, 1 }, // Forest - { 4, "Fi", 1, 1, 1, 1 }, // Fire - { 5, "Wa", 1, 1, 1, 1 }, // Water - { 7, "Sh", 1, 1, 1, 1 }, // Shadow - { 6, "Sp", 1, 1, 1, 1 }, // Spirit - - { 8, "BW", 1, 0, 1, 1 }, // BOTW - { 9, "IC", 0, 0, 1, 1 }, // Ice Cavern - { 11, "TG", 1, 0, 0, 0 }, // GTG - { 12, "GF", 1, 0, 0, 0 }, // Gerudo Fortress - { 13, "GC", 1, 1, 0, 0 }, // Ganon's Castle -}; - -typedef struct { - uint8_t r; - uint8_t g; - uint8_t b; -} medal_color_t; - -medal_color_t medal_colors[] = { - { 0x11, 0xC2, 0x2D }, // Forest - { 0xD4, 0x43, 0x22 }, // Fire - { 0x08, 0x54, 0xCE }, // Water - { 0xD1, 0x75, 0x1A }, // Spirit - { 0xA9, 0x3A, 0xEA }, // Shadow - { 0xA4, 0xAB, 0x21 }, // Light -}; - -// FIXME: Make dynamic -int8_t rewards[] = { 4, 1, 7, 5, 0, 8, 6, 2, -1, -1, -1, -1, -1, -1 }; -uint8_t dungeon_is_mq[] = { 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0 }; - -void setup_draw(displaylist_t *dl) { - gDPPipeSync(dl->p++); - - gSPLoadGeometryMode(dl->p++, 0); - gDPSetScissor(dl->p++, G_SC_NON_INTERLACE, - 0, 0, Z64_SCREEN_WIDTH, Z64_SCREEN_HEIGHT); - gDPSetAlphaDither(dl->p++, G_AD_DISABLE); - gDPSetColorDither(dl->p++, G_CD_DISABLE); - gDPSetAlphaCompare(dl->p++, G_AC_NONE); - gDPSetDepthSource(dl->p++, G_ZS_PRIM); - gDPSetCombineKey(dl->p++, G_CK_NONE); - gDPSetTextureConvert(dl->p++, G_TC_FILT); - gDPSetTextureDetail(dl->p++, G_TD_CLAMP); - gDPSetTexturePersp(dl->p++, G_TP_NONE); - gDPSetTextureLOD(dl->p++, G_TL_TILE); - gDPSetTextureLUT(dl->p++, G_TT_NONE); - gDPPipelineMode(dl->p++, G_PM_NPRIMITIVE); - - gDPSetCycleType(dl->p++, G_CYC_1CYCLE); - gDPSetRenderMode(dl->p++, G_RM_XLU_SURF, G_RM_XLU_SURF2); - gDPSetTextureFilter(dl->p++, G_TF_BILERP); - - gSPEndDisplayList(dl->p++); -} - void c_init() { heap_init(); - - file_init(&title_static); - file_init(&icon_item_24_static); - - stones_sprite.buf = title_static.buf + 0x2A300; - medals_sprite.buf = title_static.buf + 0x2980; - quest_items_sprite.buf = icon_item_24_static.buf + 0x7E00; - - int font_bytes = sprite_bytes(&font_sprite); - font_sprite.buf = heap_alloc(font_bytes); - for (int i = 0; i < font_bytes / 2; i++) { - font_sprite.buf[2*i] = (font_texture_raw[i] >> 4) | 0xF0; - font_sprite.buf[2*i + 1] = font_texture_raw[i] | 0xF0; - } - - for (int i = 0; i < 2; i++) { - dungeon_info_dls_t *di_dls = &(dungeon_info_dls[i]); - displaylist_init(&(di_dls->main), 512); - for (int j = 0; j < text_bucket_count; j++) { - displaylist_init(&(di_dls->text[j]), 256); - } - } - - displaylist_init(&setup_dl, 32); - setup_draw(&setup_dl); -} - -void text_print(displaylist_t text_dls[], - char *s, uint16_t left, uint16_t top) { - char c; - while (c = *(s++)) { - int bucket = (c - 32) / text_bucket_size; - int tile_index = (c - 32) % text_bucket_size; - - displaylist_t *text = &(text_dls[bucket]); - if (text->p - text->buf >= text->buf_size - 2) break; - - sprite_draw(text, &font_sprite, tile_index, - left, top, font_sprite.tile_w, font_sprite.tile_h); - left += font_sprite.tile_w; - } -} - -void text_flush(displaylist_t *main, displaylist_t text_dls[]) { - for (int i = 0; i < text_bucket_count; i++) { - displaylist_t *text = &(text_dls[i]); - gSPEndDisplayList(text->p++); - text->p = text->buf; - - sprite_load(main, &font_sprite, - i * text_bucket_size, text_bucket_size); - gSPDisplayList(main->p++, text->buf); - } -} - -void dungeon_info_draw(z64_disp_buf_t *overlay) { - dungeon_info_dls_t *di_dls = &(dungeon_info_dls[next_dl_index]); - next_dl_index = (next_dl_index + 1) % 2; - displaylist_t *main = &(di_dls->main); - main->p = main->buf; - - // The last 2 entries in the parent display list will be: - // gDPFullSync - // gSPEndDisplayList - // Overwrite these commands with a jump to our new display list. - overlay->p -= 2; - gSPBranchList(overlay->p++, main->buf); - - // Call setup display list - gSPDisplayList(main->p++, setup_dl.buf); - - // Set up dimensions - - int rows = 7; - int cols = 14; - int icon_height = 16; - int icon_width = 16; - int padding = 3; - - int bg_left = 24; - int bg_top = 65; - int bg_width = (cols * icon_width) + ((cols + 1) * padding); - int bg_height = (rows * icon_height) + ((rows + 1) * padding); - - int start_left = bg_left + padding; - int start_top = bg_top + padding; - int left = start_left; - int top = start_top; - - int dungeon_count = array_size(dungeons); - - // Draw background - - gDPSetCombineMode(main->p++, G_CC_PRIMITIVE, G_CC_PRIMITIVE); - - gDPSetPrimColor(main->p++, 0, 0, 0x00, 0x00, 0x00, 0xD0); - gSPTextureRectangle(main->p++, - bg_left<<2, bg_top<<2, - (bg_left + bg_width)<<2, (bg_top + bg_height)<<2, - 0, - 0, 0, - 1<<10, 1<<10); - gDPPipeSync(main->p++); - - int line_left = start_left + icon_width + 1; - - gDPSetPrimColor(main->p++, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF); - gSPTextureRectangle(main->p++, - line_left<<2, bg_top<<2, - (line_left + 1)<<2, (bg_top + bg_height)<<2, - 0, - 0, 0, - 1<<10, 1<<10); - gDPPipeSync(main->p++); - - // Draw stones - - gDPSetCombineMode(main->p++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM); - sprite_load(main, &stones_sprite, 0, stones_sprite.tile_count); - - for (int i = 0; i < dungeon_count; i++) { - dungeon_entry_t *d = &(dungeons[i]); - int reward = rewards[d->index]; - if (reward < 0 || reward >= 3) continue; - - left = start_left + ((icon_width + padding) * (i + 1)); - sprite_draw(main, &stones_sprite, reward, - left, top, icon_width, icon_height); - - } - - gDPPipeSync(main->p++); - - // Draw medals - - sprite_load(main, &medals_sprite, 0, medals_sprite.tile_count); - - for (int i = 0; i < dungeon_count; i++) { - dungeon_entry_t *d = &(dungeons[i]); - int reward = rewards[d->index]; - if (reward < 3) continue; - reward -= 3; - - medal_color_t *c = &(medal_colors[reward]); - gDPSetPrimColor(main->p++, 0, 0, c->r, c->g, c->b, 0xFF); - - left = start_left + ((icon_width + padding) * (i + 1)); - sprite_draw(main, &medals_sprite, reward, - left, top, icon_width, icon_height); - } - - gDPPipeSync(main->p++); - gDPSetPrimColor(main->p++, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF); - - // Draw master quest dungeons - - top += icon_height + padding; - left = start_left + icon_width + padding; - - for (int i = 0; i < dungeon_count; i++) { - dungeon_entry_t *d = &(dungeons[i]); - text_print(di_dls->text, d->label, left, top); - left += icon_width + padding; - } - - int show_mq = 1; - if (show_mq) { - top += icon_width + padding; - left = start_left; - - text_print(di_dls->text, "MQ", left, top); - for (int i = 0; i < dungeon_count; i++) { - dungeon_entry_t *d = &(dungeons[i]); - int is_mq = dungeon_is_mq[d->index]; - left += icon_width + padding; - char *str = is_mq ? "Y" : "N"; - text_print(di_dls->text, str, left + 4, top); - } - } - - // Draw key counts - - top += icon_height + padding; - left = start_left; - - sprite_load(main, &quest_items_sprite, 3, 1); - sprite_draw(main, &quest_items_sprite, 0, - left, top, icon_width, icon_height); - - for (int i = 0; i < dungeon_count; i++) { - left += icon_width + padding; - dungeon_entry_t *d = &(dungeons[i]); - if (!d->has_keys) continue; - - int8_t keys = z64_file.dungeon_keys[d->index]; - if (keys < 0) keys = 0; - if (keys > 9) keys = 9; - - char count[2] = "0"; - count[0] += keys; - text_print(di_dls->text, count, left + 4, top); - } - - // Draw boss keys - - top += icon_height + padding; - left = start_left; - - sprite_load(main, &quest_items_sprite, 0, 1); - sprite_draw(main, &quest_items_sprite, 0, - left, top, icon_width, icon_height); - - for (int i = 0; i < dungeon_count; i++) { - left += icon_width + padding; - dungeon_entry_t *d = &(dungeons[i]); - if (!d->has_boss_key) continue; - - if (z64_file.dungeon_items[d->index].boss_key) { - sprite_draw(main, &quest_items_sprite, 0, - left, top, icon_width, icon_height); - } - } - - // Draw maps and compasses - - int draw_maps_and_compasses = 1; - if (draw_maps_and_compasses) { - // Draw maps - - top += icon_height + padding; - left = start_left; - - sprite_load(main, &quest_items_sprite, 2, 1); - sprite_draw(main, &quest_items_sprite, 0, - left, top, icon_width, icon_height); - - for (int i = 0; i < dungeon_count; i++) { - left += icon_width + padding; - dungeon_entry_t *d = &(dungeons[i]); - if (!d->has_map) continue; - - if (z64_file.dungeon_items[d->index].map) { - sprite_draw(main, &quest_items_sprite, 0, - left, top, icon_width, icon_height); - } - } - - // Draw compasses - - top += icon_height + padding; - left = start_left; - - sprite_load(main, &quest_items_sprite, 1, 1); - sprite_draw(main, &quest_items_sprite, 0, - left, top, icon_width, icon_height); - - for (int i = 0; i < dungeon_count; i++) { - left += icon_width + padding; - dungeon_entry_t *d = &(dungeons[i]); - if (!d->has_compass) continue; - - if (z64_file.dungeon_items[d->index].compass) { - sprite_draw(main, &quest_items_sprite, 0, - left, top, icon_width, icon_height); - } - } - } - - - // Finish - - gDPPipeSync(main->p++); - text_flush(main, di_dls->text); - - gDPFullSync(main->p++); - gSPEndDisplayList(main->p++); + gfx_init(); + text_init(); } -void overlay_swap(z64_disp_buf_t *disp_buf, Gfx *buf, uint32_t size) { +void overlay_swap(z64_disp_buf_t *db, Gfx *buf, uint32_t size) { if (z64_game.pause_state == 6 && z64_game.pause_screen == 0 && !z64_game.pause_screen_changing && z64_ctxt.input[0].raw.a) { - dungeon_info_draw(disp_buf); + db->p = db->buf; + draw_dungeon_info(db); } - disp_buf->size = size; - disp_buf->buf = buf; - disp_buf->p = buf; - disp_buf->d = (void*)((char*)buf + size); + disp_buf_init(db, buf, size); } diff --git a/ASM/src/c/main.o b/ASM/src/c/main.o deleted file mode 100644 index 524f54e9b589d40f8aca49398219246ebc26743f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9380 zcmcIpeQ;FQbwBUzYPAyjcv>yX8VG(1Z^eR@<)Lm;HQgC6t3{Gi#g?%g=!~b*O1pqk zA<5bW+ilXk0!f*vj5HoX`NK2a;ln7Y24M#~o(^d>;1IXd>CmbFNK@CAU8c}B?Z|cF zq%HRA@7(*|vPdYlJMA5=?mhRMd%o_u=iGgKeP>UnqAFBw3i&awSctr#Q zH6=YnNtMV*6L}WMKRZZd9;QYuMIOc(M@gf@`ld;&Q$~*nnjF#Q@7oJ=e@^S?UZn8c zMGBH-MX7WwTF0!b^!W?miSE77ME)tzO@VF-bi9A__esb8Ti74OUXAzizR9EH=Y1@9 za){`-kNn50$V&sisG*b|1)m^zXbz9?iNoYQafE!-L17{-FnxrCco$|mR;N;yAb`A+ z9^eM$zNLIYKMmbR=DtV!=U$=Q+{-jDcZr^u`!4O7dx`pBb1(Gnkv7jnY5vtHEnJLF zzeKeZ_*M%3Tu{@~#`KG{D!!3a_)=B%Q&FRt)V2cI)O>axG-35{$xxpwMU(1>q#o9y zbEipT{nU~krQK4u<7coi7>>-HpKt>J@P{oAgZ=jcJ2iAAVt%Ms&+YMXvQYpJCC6cH3KuQl4#sYR1j)y#u! zYfY**Sw9oHCa5Vm4;f+RAKy-DNGFwcX;J8^QI6&50mR;e2}YbtJNPD(>VL3|lri`q+hHM=?8Ff4=+F$~CTy#2x6GT3x2a3$ zl-UfQZ+?Ngk9){#JYiaTaJMCZ0=70z zLQEjOdl8#GPHc{I%uUTuYzlTyeTU2w-$oqQe9=-i(mG19kGcaV&ftu?w207i71^Kr zZRq(MnxS;FPh*yO4nBnMl2tcc9}-pnx<&umZje7^ZTACzt35h*p1eu*9k$y~d)aqp zfPC9i<~7@%dx7eb>U)gS$g|d>uh2S0$PWk1A^4-FhiEt)<@oZHwCLs;3Qrz^-Ff7K zZ@>>-=$-JzKF1f`@Wo!4D{zm)lemLM2WYV;>A6X>9iUBN&t2<(x5E0riFL$5uW`mR zkG)ic`@FN>sljl%l32yRk^2*@k{p9-&;d9&eKQ-6wdL6suRW~=k&HX4~}6zL&UJm@h>6AzbJEcWxZfN z$tDs>x5dC*bLL*;?oEJIQWNPj$X{9n_m*&`WDISwxZZG_9LH#+e^2E5rMxI5YXawe z(jK{@nB9@B8uA2D_`*iy#G397QJ;n|C(w`?RrOTVsJ0iMt-{jTSY&z-quQkMT`!#` zdKU61qeZ6k7|+L|rJbZ0*U*QM5C1~j8cf;mA?K(@mAcHX7LDp!wiC6qk!e&Z!e$k6 zc|8=cZ}Xbi2Rk{3gOADn06vL*1IzX_xqC>j^c(MO0T1Mw^~ft>rr(3WC_2dzw z!(PDoypB4RKs_)~n_7_rV>l-RwMi%I6zbA6>QX66o;6oVZMi}@Gh$w&`{^}vlbOcY z!MUfYgWx#S_y~D*OU>yKzPq@GoHI9}dR@ibZw%QV0e%3oW5$c5u+I3m2KJG0#9p|k zj0|KPVZIUEZ0yAQ;S_Un^>S3^m>We;s~Y4?mXUovi7o zaglH$$D+y5+mvj^`4kY_tKT9cNCO|O zr;&Rys4*GjoyWx;@IrSzl(7Gu;|O}UqPE0PTMX#0L;rilfC;@%LGRq$pW$8dJ-ka^ z!Mo&Tyh|?OUGiP(f&SfygAC#zCEikppz{^PxVr5M>PZA=uVCE7caB1(lzOrhpfj5t+dok30ye~wZGn1+pdBw~2Bv9XV)U5k;D6}Nb-i5IxE`R!uU28x zH$~2ZPr@lW6poPRKJhN*dji|U`vCTMlU~%h9PAnZpUQO=I>V=i3fl&S&Z{bP#{ARi z%x6a-Jw+$Q9YXE|oC`<(|LwTllt`Zx@sU*RZ3(;yg+0it#yO%B=lTAa<=A%bM9Y)3 zLmjZ9xEJx{YQ)jYpkG6pv4JuiAN(5wXVU&0=JdE0vGA^Fy+WSe6xAU9s}Rd!^dRC| zQ?2&s)H!Mw?_t~@#)nM%y_OTytdTOt`~;ufl1~hL`ckAbopH_nkbF49z2V5_E0Bfv zv#bRnn$F>!>D|b6AUe%?-?N_cTr`m;8*gp-20Y7WjI-o3#yJ`)Y0x{29>hF@QRs(v zi}1%19e?cT*qRIiUroE)e73EYoLpcDTbe^_?Ei#+s(}9r-Zty*;sqLYU?ys4)Rx?U zJoOghat-|Xa~YpyKc0qdzlD01CJLtTeqV?QpD|C>Js*|_Iq*w!=yUe_ZJKQZuRx|p z)F;^B>c7O!ud$t=UB_qLQb8wlYoazHD_YiTgVpq_Z=JhNnr2Zi>I$C=a)B4W%^+KO z4!U}-2wg9e3Zpz5Jh36F?HzzFD%BVslg^((-NHQ;RbCBwyyACCIEuJ8&j1HqzQ%cV z^EuLm&eE5Pux~pxgHL@(wcl>rE^TDJKgP!Cm2Es074|uCoLplyeg5a?uDj<^wi9s- z|9j0er4Yv@wln{Sw&}2eYrXPZg>85n9R3vcNqv5~eeYD*C*By9aks=@udHOBI5)gY z!3%X7=k_wr&AC72b9=OWZd%#4L7dxZd2X;R{V8mdx;VD+J#_C>#o4`scS9Awmsu|g zol2>PtO#kpPpWA}@Qx6_qb_)mdpvi3N2%5wUU$>{v#5{q-BGz$zTtTt?}^+L-U#^3 z`UKt;d+@I4!@Hsv?}{G0i@NbH%HUm;^2m45e&j9arKRZ0;$6t!B>q=*Zwl`SrZslBoJ%9;2^E$H}o=mx~3bortv}>=VQ57>`T{VuwGNS zel$%%e zZ1ng2_1_#^`|U6M%h^APKtLu>rjqF(Q~hF=Oi$++EqXhLX|ZZ|mKLiY+fR$W$Hr;V zpWaOuYaRmKs=h9=>bg3~s_*Kcc~+8}pBkv&1L;l+rg-g`$tc@;;=b4Zj8F#b_} z1+MB}VENCYi-w=r+&DW2(G7?Gk1^*nOgZpH%%4WjIPjlh z&W-u8eXpTkMvpo8A7g$49UlvY{F@lSUv>At54Y|C{+5GB1b9=Rc~im)eCS&b_=E#P zjF3@>2~1Xyk?B=*7jDCR23>RTDa=n*z#JmSD&Q>UY>!KS0CUl#Ka}5bzya`s-;_TD zJb=#f7>2*9;S;6D(GULe^ZkF-fxm-~NSDwP4$Qvc=J;RvOUx7KI~;xg7IPNe;J|;6 zxsD!i;9Hn;bMYSl#cPf{6+V&Q9WcUosvo1<80MIP-lEk~yqJHwNby{@n5Fn&p+NBi zx%}Y4eevwz@UOH{d}54I@j`K8dptq$f+Q>m%8C5G;nBTg6#vpgy^ryRy(8Iu;4q$> zp!m?(fdlzbu*Q9hXN$#&;lYE&e1Q&RhezW>v_GF6?;jo=F3Q;`Ythl)y>myeT*!`$ zj15t4xG+AFeP(31P?W@bhez^qHj&Tf`Wd9c_{4BA-#_>a*!Pd;C;E#^S6z~kv24zr z=O(gGQ6XPEINmR&Ly~QAxCjY_VzxLuM8iX4qy6B0pua8Qt`&-7qmUzo(t&&~J5q+8 zJeX%iv7x-QcWkui5_dlGa9@Al&OLpP@7hVZgQNTM%pM->&y5sZT}Fscq#riHd1AVE zq;tMp9e=0kXgQHos{-Lpvv5A6N&@I@8uMVNjb zBjew2)+aIY`cEWWy&iWGe5!S#ji9SGFalp4bKtN8w>mKF7xaD32s;Hm>=OH*aNq$4 z9&zZPx7Y{yn^+F?zmMe}1}_*KtK`c<bOd0utUgU_oj zDdpE?5Mq#D2mUc$had32f>Z}TY+-o6vv0)NSCaMwUMJehbkKh*=<30b&%Zt;&%Yjg z+3tGm!~XzM{V}4?GJX;x(@#6=;P(KppT)@QGemKQXE8E-5oMiW_;DM65qnLCOZh&!QpbnoG`{2gjfMJ&*W3 zoI*!iw*b^4CXML4pXvPQQ3vLC3tICV_=EE)H<#Z7SYdjHE_fDmoL{-QbmsUS-GCHy z;WCw!%kqB>bXzgvT(|}2@u!lGWii}?&h$f Y`#`5ImCFb`gDdGGDZnSt-6rJz4<=J|SO5S3 diff --git a/ASM/src/c/output/.gitkeep b/ASM/src/c/output/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/ASM/src/c/output/bundle.o b/ASM/src/c/output/bundle.o new file mode 100644 index 0000000000000000000000000000000000000000..703fe71fe8c94b41ed5ec5f793c1bcdf49d1095c GIT binary patch literal 9284 zcmb_heQaCTbwBTs5-E|Ao+w6U9K|8+N1JwBnRXdZYq^D?WJyicRI!!CEe1%WNPR4l zsEAUX07F99T9Q9hQ7shD!1f2{kJxR6$Zeh0f21vE=c7e~!oz}X1%g(KjoI6>!S2!~ z$dYltbMJi=C4a0ddf~@&&pqd!uY2w}@5#^Z>*>^VjmkqKC*~CkfoVTAY7`M1A@We8 z=T=1w3w4~gZ2Q3d8^KbhB`M|#b{;}on)5!AoD7E|w z4J@CdKVAMV9bEnn^(}v!dLgTaAcqQPf>b;oq?NP5h3`-;d0vb~bz0Hm3+BSN$OEX?7k={hnDk?=zT_@USn3Q7vm}h$xJ>)G=tyzum zI(J&NPT{fIScvrzr46-KRu{-ECk52P>kBi7McAY0&XJKh#_JF zi1TTK+-Ow)73+wZ$p_hwT+{|X2H{7$VVYOro1-lkzKVS75;k>gL+rP`MBVeq3o}K| zm+j=7+eh}f4&+{%?1-7u+gbW>DMf^Q8OtL#^2m)mawCu2$RjuM$c;R51G&_ra%qxt zFMozYdH9|GCWRNjL3XNnIHzq!jA9(4ZqMQgoK=?*5O%t#^uQCa^YezOb#qKZx$r5( z5V4C^U9nKhLU$7Kus^C_CbM&+ z#`?@^3Ij^|5a`cAZ>P_q6$OpgE?Ty{OXlzSt`dWEib+^{jC3tVv-_>v%9mZ|sIB&yWdu#qdYFWAn|4zkYORuY# zsq-}B9&ITJn(imSb?5X;aUOiOe1^#3AEO>dQ1`;9dpmKzjHs>^%($QP$s0vR?bTl_ zV(#Pmy6q$x;6ZJoSu;MsJpPD&j-jdOEqUbOR^tRwZ!UnlNlTNkCBB{SDceJ!x0vx~ z$ik!O9K3g{iJw?5$a9LJP8wglpoO~wI}FqgBHzoKv0l^N&il+kW&#g|gStN!G##bu zU#-H@$xvVcI!JHS`TiG<6Ma<&-eCk5(txK!!NNY$%s221qE`OI*x`+pZlDh7tk<+_ zg!)6KO(WzxVV#htcFt8Zt_eFaccV^3P!GbW2Rk{I=q+t*7vch6<=tUl$-dzt>G$b$ z#0Z4r)PNeb1wF&YymZ*V1@etK=Iijw-j`b2)3^_@U30UjTaZ0pjr)(-MD-l>)Lp08 zhc)x)0kCI%pA&si#1i}0L*`d@b5C4B4z!@Y`j7{rm&*S40_$ms#AgezSA*?=#rB$r zsZ+H#NzGK`+Psb)uj%&2$k1cqGEMA@*K}arrTatW_1QRi?GK?ovVVv%+sJX|z0AkB zjx&a>EvUaf#Jkc*KkPmRyHm?QL=XQydieLy!(TxUKZhRvUFv~9-SDRac^zYa_-y95 z{_t6L$UYFY|ALk}pcm^*Uj!tZQRH*t?vAq@Fq^cPo;BJzk+;^74<$G)$PawJKw(u`kWtqZjEg>^|=eO&&}(wA2t1D_)%HY*RFru z7#Tde1+l?hE$xb+mtby3EhqC7Vs)C|!NTQp67h}WqQ>X}o<}{n)BE{!kw;$47qPYh z@B_e2ACcKi2HzFf9*y2b^mWXs&j{o?i9#31))%Auw(jP;TKa^lA$7zzN2{M#(*!_VPI?b_JjJP{Yu_S?neV2pNc&7z*7)s|Jz@I%1tGsykNb9b2TK2mn0pX8 zqe8a^-8ez1ThHOH4Ja9Ye~@LszFOgXT=@P0%Mf=X4x4qOh%?jaz_9>&tA?I!v+}`; zos|dhdHdF9uy@txvR?K%x*^xN_k&ZHR{iw_a)U(10D1LyQLp3lD(MJ{ZIdlDNVUBK z(5F+4X$#Zo6SyBSUr=-gz1e0L@4dbtYI^ttXqA4UXZg#1AwIhF>oWVr_OTzF$9M1} z1U~bY`P`gqEa!ANhov8|_b$$(y%$eiqNMQW40?cuvuxmX_+lXUe0Xk|leS`8knPe} zD$aOqUS5G;wQQR@3;lLJAP2Vn4)!;%w;$(!`1kC?W#z+O<%4zyAKEP+^jHD0L0wVz zhjWSZPSuk(kyD5H4wcVB`f_>oEZ|H0cku;vqRq;6jt}2CeY3c4oKv-k_1(B{-SVEn zM%?GE|A2hAY_;w=YN4okeV&?$~{jS)8|IW8Fb1$bAzZKBmVo19Bqo$mMHje zLy5m3P1kjb)?gpLe1hAd1U!8?swyNAGhMw)q3>i-)%$H~k_npkJp@a6ZZLFz)Y*m42B! zjyyzt=l8efcR9ksBSzjTmwxiri>JZbXn9VdTb64CyG&?yA9CLLAopGC_V-NmvWc?$uYmO>% zR_i4(h#D_^>h1Q;&c2`h-OR>seCFRyek*_tkz{xqW&s(%EUy?VY1jX~9?Zcw#y|#Z$+DkwhwU2(#(~lcQ6k z%;$_}rXOb_)qHMHZXj1zUzb=SclT&2otXh+T~}fvGa*;;TSr~(?Vs_7x*mCKyT7e< zPivTdZ!2Xbx0u|Ewfkp4Stzv>GzUQnp&=Hx{0bJByYXvwe|LOo< zyNU^Uu620bI=miu*=9SHZU8UqR5TBKHMnWvfb0)<0&v z;UDw70_XdF5>Gu|eK{UDiw4GbdSv{*jBfW7%m#@Uf3$Zbzh>ot;@7~&K3o24cViyIgFjkw{%Bhf<{Y5Xr|klbhfmS}2=f>o z6+i9sn4iOQSo*8=VLpJzqwoacdkOd%wV%7uA|7i$V(mBxT*Y5|7IReLGW~hXd2oDj zp4!(C&$obkmAt>goX^LS$7d;qA%3-Q0dPGCDgM8OJ}>YNfe#No)jCKs)1zYm2#J5Bm@IarAD)p?770MIA#0CpR`=bN)P)7Gh>-46%hCe z?>I=wOg4)^(V&#TOXCQN@NxoSl{2A>X@jtZ+WWirJ=D9#qW;PBR6ouvO+)yRviP)n zh#s&5z9(VT6474ZRmc|sSBN&_K2%)+#NDp~-$ur-12T>t+5()*LJNNQKU%h7f3=$^ z$T;%mUdDGSJc1U@{B3|t?@{aE3G#YM;d5%=BGDFJ|7$?zFDQ7H-`;`aoU++j-jjsc=Q;Bkx~-5E|2Z2)w-i8e88LHT4jChc&7&UQFq zAKU9(koMM`lX0mzFXK}48c_iIYM}QX@YP%b#J(EXcR%BZ>-~&h!&@xl?*TG?9oL%i z_W>FICn=ZP2*#v0#!FNURK|brRg?!e} z?TGcez{~nwZYjrQNI9+!sn6w=a$LPqj%!THaZM^YFA#kSGF*SI_>L*QGcr!DB^f8z zYcgM4u$S}21$)^}*V}3z>}G#lSCsr~NI#^|`T^{d2<(-shf^^4$wk zzI##1cXOPWub}u~568iMR?2suM_Xk4RX~=b>~t$T>q0UPZrICm>LOB3U9Z$v*C+MW z9hCa&V4vViDZVkOuMT!{-0Pk~`(QbUSD5ixCFcbt=RK*fZcfR8-|Sz#SMt^SBwu}t z)K_mxzIxax_`*_OJ?vzC^)achzC-G(?@@Btex{$7`sxoVIj<=>SBQ4N&iZSB%m=#~ z8NUw5`1@#EjKe+;@CMk!c~Jkcl+&xUf%>%)3upNxZ{ z>}ecO>p98SIIHj%6h0?$!r0F5mVVSxhB4GZh6B*UFb5LD0_qmSBI*sp71SR<4byuW z`cZco#)x(?93Z-zVGi|(VFC4tVG(g=xPrLq)S7*Id^(W?oSu?!#F~BKbG-*z6Uot` zvBYqeTBp*(+@yIj*2*0hvrH;6o#3szTO-uU2m~pR%wm)H8O)52r_q$e&dJmiwc;(j zH8DLsHJY5^p4U2_N+)NAS=p!e(EnrHGl}E^Kl~A+4Zl7$XMnR7_zv*ljLM@|ty>Go zFA>N;P|)Hbz{d&VO@J@|xg2xtT!?i?1Iz+gZtn zZRKI{rLe;Gg(XGE!@GNVFpZxl6;y<#w^olvELrl#fmOuMKL9+3hvUcbVLrC&E16R1 z*MMr=1$p9q-&$auJf6d2%`v?TcXG|JXbi1f!Ib%I92@o-f1MP1dCs<}m|#YC_dxtl Wd8URX53k9UeEt>Si;9PV;QL?Y)FU4N literal 0 HcmV?d00001 diff --git a/ASM/src/c/output/debug.txt b/ASM/src/c/output/debug.txt new file mode 100644 index 000000000..24404f8c4 --- /dev/null +++ b/ASM/src/c/output/debug.txt @@ -0,0 +1,60 @@ + +output/bundle.o: file format elf32-bigmips + +SYMBOL TABLE: +00000000 l d .MIPS.abiflags 00000000 .MIPS.abiflags +00000000 l d .reginfo 00000000 .reginfo +00000000 l d .text 00000000 .text +00000000 l d .rodata.str1.4 00000000 .rodata.str1.4 +00000000 l d .data 00000000 .data +00000000 l d .sdata 00000000 .sdata +00000000 l d .sbss 00000000 .sbss +00000000 l d .bss 00000000 .bss +00000000 l d .comment 00000000 .comment +00000000 l d .pdr 00000000 .pdr +00000000 l d .gnu.attributes 00000000 .gnu.attributes +00000000 l d .mdebug.abi32 00000000 .mdebug.abi32 +00000000 l df *ABS* 00000000 gfx.c +00000000 l df *ABS* 00000000 util.c +00000000 l df *ABS* 00000000 main.c +00000000 l df *ABS* 00000000 dungeon_info.c +00000000 l .rodata.str1.4 00000000 $LC0 +00000004 l .rodata.str1.4 00000000 $LC1 +00000000 l df *ABS* 00000000 text.c +00000008 l O .sbss 00000004 text_buf +00000004 l O .sbss 00000004 text_end +000000a4 g O .data 0000000e has_keys +00000fa4 g F .text 0000002c text_init +00001078 g F .text 00000148 text_flush +00000784 g F .text 000000b8 overlay_swap +00000020 g O .data 00000010 medals_sprite +00000000 g O .sdata 00000004 dungeon_count +00000010 g O .data 00000010 quest_items_sprite +000006e0 g F .text 00000034 heap_alloc +0000083c g F .text 00000768 draw_dungeon_info +00000000 *UND* 00000000 FONT_TEXTURE +000002bc g F .text 000000e8 sprite_draw +00000070 g F .text 0000024c sprite_load +00000030 g O .data 00000010 stones_sprite +00000000 g O .bss 00000010 setup_db +000003a4 g F .text 000001dc draw_setup +00000000 g O .data 00000010 font_sprite +00000050 g O .data 0000000e rewards +00000040 g F .text 00000030 sprite_bytes +00000580 g F .text 0000014c gfx_init +00000000 g F .text 00000018 disp_buf_init +00000040 g O .data 0000000e dungeon_is_mq +000000b4 g O .data 00000082 dungeons +00000060 g O .data 00000012 medal_colors +00000fd0 g F .text 000000a8 text_print +00000094 g O .data 0000000e has_bosskey +00000758 g F .text 0000002c c_init +00000074 g O .data 0000000e has_map +00000000 g O .sbss 00000004 heap_next +000006cc g F .text 00000014 heap_init +00000084 g O .data 0000000e has_card +00000000 *UND* 00000000 C_HEAP +00000018 g F .text 00000028 sprite_bytes_per_tile +00000714 g F .text 00000044 file_init + + diff --git a/ASM/src/c/text.c b/ASM/src/c/text.c new file mode 100644 index 000000000..6e03f933a --- /dev/null +++ b/ASM/src/c/text.c @@ -0,0 +1,60 @@ +#include "text.h" + +#include "gfx.h" +#include "util.h" +#include "z64.h" + +#define text_max_chars 256 +#define text_bucket_count 6 +#define text_bucket_size 18 + +typedef struct { + uint32_t c : 8; + uint32_t left : 12; + uint32_t top : 12; +} text_char_t; + +static text_char_t *text_buf = NULL; +static text_char_t *text_end = NULL; + +void text_init() { + text_buf = heap_alloc(text_max_chars * sizeof(text_char_t)); + text_end = text_buf; +} + +void text_print(char *s, int left, int top) { + char c; + while (c = *(s++)) { + if (text_end >= text_buf + text_max_chars) break; + text_end->c = c; + text_end->left = left; + text_end->top = top; + text_end++; + left += font_sprite.tile_w; + } +} + +void text_flush(z64_disp_buf_t *db) { + for (int i = 0; i < text_bucket_count; i++) { + sprite_load(db, &font_sprite, + i * text_bucket_size, text_bucket_size); + + text_char_t *text_p = text_buf; + while (text_p < text_end) { + char c = text_p->c; + int left = text_p->left; + int top = text_p->top; + text_p++; + + int bucket = (c - 32) / text_bucket_size; + if (bucket != i) continue; + + int tile_index = (c - 32) % text_bucket_size; + sprite_draw(db, &font_sprite, tile_index, + left, top, + font_sprite.tile_w, font_sprite.tile_h); + } + } + + text_end = text_buf; +} diff --git a/ASM/src/c/text.h b/ASM/src/c/text.h new file mode 100644 index 000000000..a12863e97 --- /dev/null +++ b/ASM/src/c/text.h @@ -0,0 +1,10 @@ +#ifndef TEXT_H +#define TEXT_H + +#include "z64.h" + +void text_init(); +void text_print(char *s, int left, int top); +void text_flush(z64_disp_buf_t *db); + +#endif diff --git a/ASM/src/c/util.c b/ASM/src/c/util.c new file mode 100644 index 000000000..874e95b21 --- /dev/null +++ b/ASM/src/c/util.c @@ -0,0 +1,23 @@ +#include "util.h" + +extern char C_HEAP; +char *heap_next = NULL; + +void heap_init() { + heap_next = &C_HEAP; +} + +void *heap_alloc(int bytes) { + int rem = bytes % 16; + if (rem) bytes += 16 - rem; + + void *result = heap_next; + heap_next += bytes; + return result; +} + + +void file_init(file_t *file) { + file->buf = heap_alloc(file->size); + read_file(file->buf, file->vrom_start, file->size); +} diff --git a/ASM/src/c/util.h b/ASM/src/c/util.h new file mode 100644 index 000000000..3e894271a --- /dev/null +++ b/ASM/src/c/util.h @@ -0,0 +1,23 @@ +#ifndef UTIL_H +#define UTIL_H + +#include + +#define array_size(a) (sizeof(a) / sizeof(a[0])) + +void heap_init(); +void *heap_alloc(int bytes); + +typedef struct { + uint8_t *buf; + uint32_t vrom_start; + uint32_t size; +} file_t; + +typedef void (*read_file_fn)(void *mem_addr, uint32_t vrom_addr, + uint32_t size); +#define read_file ((read_file_fn)0x80000DF0) + +void file_init(file_t *file); + +#endif diff --git a/data/base2current.json b/data/base2current.json index 5091b8f32..a376b3b86 100644 --- a/data/base2current.json +++ b/data/base2current.json @@ -706,8 +706,8 @@ { "11628841": [ 16, - 24, - 186 + 21, + 225 ] }, { @@ -1836,7 +1836,7 @@ 12, 16, 21, - 135 + 214 ] }, { @@ -9892,190 +9892,111 @@ }, { "55259136": [ - 60, - 3, - 128, - 64, - 60, - 2, - 128, - 80, - 36, - 66 - ] - }, - { - "55259148": [ - 3, - 224 - ] - }, - { - "55259151": [ - 8, 172, - 98, - 100, - 240, - 48, - 130 - ] - }, - { - "55259159": [ - 15, - 16, - 64 + 134 ] }, { - "55259163": [ - 3, - 60, - 3, - 128, - 64, - 36, - 132 + "55259140": [ + 172, + 133 ] }, { - "55259171": [ - 16 + "55259143": [ + 4, + 172, + 133 ] }, { - "55259173": [ - 130, - 32, - 35, - 140, - 98, - 100, - 240 + "55259147": [ + 8 ] }, { - "55259181": [ - 68, - 32, + "55259149": [ + 166, + 40, 33, 3, 224 ] }, { - "55259187": [ + "55259155": [ 8, 172, - 100, - 100, - 240, - 39, - 189, - 255, - 224, - 175, - 191 - ] - }, - { - "55259199": [ - 28, - 175, - 177 - ] - }, - { - "55259203": [ - 24, - 175, - 176 + 133 ] }, { - "55259207": [ - 20 + "55259159": [ + 12, + 148, + 130 ] }, { - "55259209": [ - 128, - 128, - 37 + "55259163": [ + 4, + 148, + 131 ] }, { - "55259213": [ - 160, - 136, - 37, - 12, - 16, - 20, - 5 + "55259167": [ + 6 ] }, { - "55259221": [ - 5, - 32, - 192, - 174, - 2 + "55259169": [ + 67 ] }, { - "55259228": [ - 174, - 2 + "55259171": [ + 24 ] }, { - "55259231": [ - 4, - 174, - 17 + "55259174": [ + 16, + 18, + 144, + 131 ] }, { - "55259235": [ - 8, - 143, - 191 + "55259179": [ + 12 ] }, { - "55259239": [ - 28, - 143, - 177 + "55259185": [ + 67 ] }, { - "55259243": [ - 24, - 143, - 176 + "55259187": [ + 24 ] }, { - "55259247": [ - 20, + "55259190": [ + 16, + 18, 3, 224 ] }, { - "55259251": [ - 8, - 39, - 189 + "55259195": [ + 8 ] }, { - "55259255": [ - 32, + "55259200": [ 39, 189, 255, @@ -10085,339 +10006,169 @@ ] }, { - "55259263": [ + "55259207": [ 20, 175, 176 ] }, { - "55259267": [ - 16 - ] - }, - { - "55259269": [ - 128, - 128, - 37, + "55259211": [ + 16, 12, 16, 20, - 5, - 140, - 132 - ] - }, - { - "55259279": [ - 8, - 174, - 2 + 6 ] }, { - "55259284": [ - 60, - 3, + "55259217": [ 128, - 64, - 140, - 99, - 100, - 232, - 142, - 6 + 128, + 37, + 150, + 3 ] }, { - "55259295": [ - 8, - 142, - 5 + "55259223": [ + 8 ] }, { - "55259299": [ - 4 + "55259225": [ + 98 ] }, { - "55259301": [ - 96, - 248, - 9 + "55259227": [ + 24 ] }, { - "55259305": [ - 64, - 32, - 37, + "55259230": [ + 16, + 18, 143, 191 ] }, { - "55259311": [ + "55259235": [ 20, 143, 176 ] }, { - "55259315": [ + "55259239": [ 16, 3, 224 ] }, { - "55259319": [ + "55259243": [ 8, 39, 189 ] }, { - "55259323": [ + "55259247": [ 24, - 148, - 130 - ] - }, - { - "55259327": [ - 4, - 148, - 131 + 39, + 189, + 255, + 144, + 175, + 191 ] }, { - "55259331": [ - 6 + "55259255": [ + 108, + 175, + 183 ] }, { - "55259333": [ - 67 + "55259259": [ + 104, + 175, + 182 ] }, { - "55259335": [ - 24 + "55259263": [ + 100, + 175, + 181 ] }, { - "55259338": [ - 16, - 18, - 144, - 131 + "55259267": [ + 96, + 175, + 180 ] }, { - "55259343": [ - 12 + "55259271": [ + 92, + 175, + 179 ] }, { - "55259349": [ - 67 + "55259275": [ + 88, + 175, + 178 ] }, { - "55259351": [ - 24 - ] - }, - { - "55259354": [ - 16, - 18, - 3, - 224 - ] - }, - { - "55259359": [ - 8 - ] - }, - { - "55259364": [ - 39, - 189, - 255, - 232, - 175, - 191 - ] - }, - { - "55259371": [ - 20, - 175, - 176 - ] - }, - { - "55259375": [ - 16, - 12, - 16, - 20, - 47 - ] - }, - { - "55259381": [ - 128, - 128, - 37, - 150, - 3 - ] - }, - { - "55259387": [ - 8 - ] - }, - { - "55259389": [ - 98 - ] - }, - { - "55259391": [ - 24 - ] - }, - { - "55259394": [ - 16, - 18, - 143, - 191 - ] - }, - { - "55259399": [ - 20, - 143, - 176 - ] - }, - { - "55259403": [ - 16, - 3, - 224 - ] - }, - { - "55259407": [ - 8, - 39, - 189 - ] - }, - { - "55259411": [ - 24, - 39, - 189, - 255, - 144, - 175, - 191 - ] - }, - { - "55259419": [ - 108, - 175, - 183 - ] - }, - { - "55259423": [ - 104, - 175, - 182 - ] - }, - { - "55259427": [ - 100, - 175, - 181 - ] - }, - { - "55259431": [ - 96, - 175, - 180 - ] - }, - { - "55259435": [ - 92, - 175, - 179 - ] - }, - { - "55259439": [ - 88, - 175, - 178 - ] - }, - { - "55259443": [ + "55259279": [ 84, 175, 177 ] }, { - "55259447": [ + "55259283": [ 80, 175, 176 ] }, { - "55259451": [ + "55259287": [ 76 ] }, { - "55259453": [ + "55259289": [ 128, 128, 37 ] }, { - "55259457": [ + "55259293": [ 160, 168, 37 ] }, { - "55259461": [ + "55259297": [ 192, 184, 37 ] }, { - "55259465": [ + "55259301": [ 224, 176, 37, @@ -10426,12 +10177,12 @@ ] }, { - "55259471": [ + "55259307": [ 10 ] }, { - "55259473": [ + "55259309": [ 18, 149, 64, @@ -10440,7 +10191,7 @@ ] }, { - "55259479": [ + "55259315": [ 224, 2, 66, @@ -10451,21 +10202,21 @@ ] }, { - "55259487": [ + "55259323": [ 11, 46, 34 ] }, { - "55259491": [ + "55259327": [ 2, 16, 64 ] }, { - "55259495": [ + "55259331": [ 2, 2, 32, @@ -10476,19 +10227,19 @@ ] }, { - "55259503": [ + "55259339": [ 2, 50, 115 ] }, { - "55259507": [ + "55259343": [ 255 ] }, { - "55259509": [ + "55259345": [ 19, 164, 192, @@ -10497,7 +10248,7 @@ ] }, { - "55259515": [ + "55259351": [ 24, 2, 130, @@ -10513,7 +10264,7 @@ ] }, { - "55259528": [ + "55259364": [ 2, 130, 16, @@ -10523,12 +10274,12 @@ ] }, { - "55259535": [ + "55259371": [ 16, 12, 16, 20, - 47, + 6, 2, 160, 32, @@ -10536,17 +10287,17 @@ ] }, { - "55259545": [ + "55259381": [ 87 ] }, { - "55259547": [ + "55259383": [ 24 ] }, { - "55259550": [ + "55259386": [ 16, 18, 142, @@ -10554,7 +10305,7 @@ ] }, { - "55259557": [ + "55259393": [ 98, 24, 33, @@ -10563,7 +10314,7 @@ ] }, { - "55259563": [ + "55259399": [ 20, 60, 2, @@ -10571,7 +10322,7 @@ ] }, { - "55259568": [ + "55259404": [ 2, 130, 160, @@ -10581,7 +10332,7 @@ ] }, { - "55259575": [ + "55259411": [ 24, 60, 2, @@ -10589,13 +10340,13 @@ ] }, { - "55259580": [ + "55259416": [ 175, 162 ] }, { - "55259583": [ + "55259419": [ 28, 60, 2, @@ -10603,20 +10354,20 @@ ] }, { - "55259588": [ + "55259424": [ 175, 162 ] }, { - "55259591": [ + "55259427": [ 32, 175, 160 ] }, { - "55259595": [ + "55259431": [ 36, 60, 2, @@ -10624,69 +10375,69 @@ ] }, { - "55259600": [ + "55259436": [ 175, 162 ] }, { - "55259603": [ + "55259439": [ 40, 150, 163 ] }, { - "55259607": [ + "55259443": [ 4, 150, 167 ] }, { - "55259611": [ + "55259447": [ 6 ] }, { - "55259613": [ + "55259449": [ 246 ] }, { - "55259615": [ + "55259451": [ 24 ] }, { - "55259618": [ + "55259454": [ 56, 18, 36, - 4 + 5 ] }, { - "55259623": [ + "55259459": [ 4, 2, - 36, + 37, 32, 4 ] }, { - "55259629": [ + "55259465": [ 103 ] }, { - "55259631": [ + "55259467": [ 24 ] }, { - "55259634": [ + "55259470": [ 16, 18, 36, @@ -10694,39 +10445,52 @@ ] }, { - "55259639": [ + "55259475": [ 1 ] }, { - "55259645": [ + "55259481": [ 68 ] }, { - "55259647": [ + "55259483": [ 24 ] }, { - "55259650": [ + "55259486": [ 16, 18, 36, 66, 255, 255, - 38, - 115 + 2, + 101, + 152, + 4 ] }, { - "55259659": [ - 2, + "55259497": [ + 83 + ] + }, + { + "55259499": [ + 26, 2, - 98, + 96, + 1, + 244 + ] + }, + { + "55259506": [ 16, - 6, + 18, 36, 66, 255, @@ -10734,19 +10498,19 @@ ] }, { - "55259669": [ + "55259513": [ 2, 19 ] }, { - "55259672": [ + "55259516": [ 60, 5 ] }, { - "55259675": [ + "55259519": [ 255, 52, 165, @@ -10754,24 +10518,24 @@ ] }, { - "55259681": [ + "55259525": [ 69, 16, 36 ] }, { - "55259685": [ - 131 + "55259529": [ + 100 ] }, { - "55259687": [ + "55259531": [ 24 ] }, { - "55259690": [ + "55259534": [ 64, 18, 41, @@ -10779,14 +10543,14 @@ ] }, { - "55259695": [ + "55259539": [ 65, 20, 160 ] }, { - "55259699": [ + "55259543": [ 10, 36, 6, @@ -10794,7 +10558,7 @@ ] }, { - "55259705": [ + "55259549": [ 8, 47, 195, @@ -10803,19 +10567,19 @@ ] }, { - "55259711": [ + "55259555": [ 63 ] }, { - "55259713": [ + "55259557": [ 168, 40, 33 ] }, { - "55259717": [ + "55259561": [ 5, 41, 131, @@ -10826,24 +10590,24 @@ ] }, { - "55259725": [ + "55259569": [ 197 ] }, { - "55259727": [ + "55259571": [ 26 ] }, { - "55259729": [ + "55259573": [ 160, 1, 244 ] }, { - "55259734": [ + "55259578": [ 48, 18, 48, @@ -10853,7 +10617,7 @@ ] }, { - "55259741": [ + "55259585": [ 70, 16, 37, @@ -10863,7 +10627,7 @@ ] }, { - "55259749": [ + "55259593": [ 69, 16, 37, @@ -10872,7 +10636,7 @@ ] }, { - "55259755": [ + "55259599": [ 44, 60, 2, @@ -10880,25 +10644,25 @@ ] }, { - "55259760": [ + "55259604": [ 175, 162 ] }, { - "55259763": [ + "55259607": [ 48, 175, 160 ] }, { - "55259767": [ + "55259611": [ 52 ] }, { - "55259769": [ + "55259613": [ 17, 20, 192, @@ -10907,12 +10671,12 @@ ] }, { - "55259775": [ + "55259619": [ 24 ] }, { - "55259777": [ + "55259621": [ 69, 16, 36, @@ -10921,19 +10685,19 @@ ] }, { - "55259783": [ + "55259627": [ 2, 22, 32 ] }, { - "55259787": [ + "55259631": [ 2 ] }, { - "55259789": [ + "55259633": [ 82, 16, 37, @@ -10942,22 +10706,22 @@ ] }, { - "55259795": [ + "55259639": [ 16 ] }, { - "55259797": [ + "55259641": [ 100 ] }, { - "55259799": [ + "55259643": [ 24 ] }, { - "55259802": [ + "55259646": [ 32, 18, 36, @@ -10965,12 +10729,12 @@ ] }, { - "55259807": [ + "55259651": [ 63 ] }, { - "55259809": [ + "55259653": [ 4, 151, 195, @@ -10979,7 +10743,7 @@ ] }, { - "55259815": [ + "55259659": [ 63, 2, 68, @@ -10988,7 +10752,7 @@ ] }, { - "55259821": [ + "55259665": [ 18, 144, 192, @@ -10997,7 +10761,7 @@ ] }, { - "55259827": [ + "55259671": [ 3, 52, 132, @@ -11005,7 +10769,7 @@ ] }, { - "55259832": [ + "55259676": [ 2, 68, 144, @@ -11020,7 +10784,7 @@ ] }, { - "55259844": [ + "55259688": [ 2, 66, 144, @@ -11030,14 +10794,14 @@ ] }, { - "55259851": [ + "55259695": [ 56, 175, 160 ] }, { - "55259855": [ + "55259699": [ 60, 60, 2, @@ -11045,13 +10809,13 @@ ] }, { - "55259860": [ + "55259704": [ 175, 162 ] }, { - "55259863": [ + "55259707": [ 64, 36, 98, @@ -11060,7 +10824,7 @@ ] }, { - "55259869": [ + "55259713": [ 2, 19, 128, @@ -11069,7 +10833,7 @@ ] }, { - "55259875": [ + "55259719": [ 255, 52, 99, @@ -11077,7 +10841,7 @@ ] }, { - "55259881": [ + "55259725": [ 67, 16, 36, @@ -11088,7 +10852,7 @@ ] }, { - "55259889": [ + "55259733": [ 7, 56, 128, @@ -11099,7 +10863,7 @@ ] }, { - "55259897": [ + "55259741": [ 71, 16, 37, @@ -11108,69 +10872,69 @@ ] }, { - "55259903": [ + "55259747": [ 68, 39, 162 ] }, { - "55259907": [ + "55259751": [ 16, 39, 166 ] }, { - "55259911": [ + "55259755": [ 72, 142, 3 ] }, { - "55259915": [ - 4, + "55259759": [ + 8, 36, 100 ] }, { - "55259919": [ + "55259763": [ 8, 174, 4 ] }, { - "55259923": [ - 4, + "55259767": [ + 8, 140, 69 ] }, { - "55259927": [ + "55259771": [ 4, 140, 68 ] }, { - "55259932": [ + "55259776": [ 172, 101 ] }, { - "55259935": [ + "55259779": [ 4, 36, 66 ] }, { - "55259939": [ + "55259783": [ 8, 20, 70, @@ -11181,83 +10945,83 @@ ] }, { - "55259948": [ + "55259792": [ 143, 191 ] }, { - "55259951": [ + "55259795": [ 108, 143, 183 ] }, { - "55259955": [ + "55259799": [ 104, 143, 182 ] }, { - "55259959": [ + "55259803": [ 100, 143, 181 ] }, { - "55259963": [ + "55259807": [ 96, 143, 180 ] }, { - "55259967": [ + "55259811": [ 92, 143, 179 ] }, { - "55259971": [ + "55259815": [ 88, 143, 178 ] }, { - "55259975": [ + "55259819": [ 84, 143, 177 ] }, { - "55259979": [ + "55259823": [ 80, 143, 176 ] }, { - "55259983": [ + "55259827": [ 76, 3, 224 ] }, { - "55259987": [ + "55259831": [ 8, 39, 189 ] }, { - "55259991": [ + "55259835": [ 112, 39, 189, @@ -11268,33 +11032,33 @@ ] }, { - "55259999": [ + "55259843": [ 40, 143, 162 ] }, { - "55260003": [ + "55259847": [ 44, 143, 170 ] }, { - "55260007": [ + "55259851": [ 48, 148, 169 ] }, { - "55260011": [ + "55259855": [ 4 ] }, { - "55260013": [ + "55259857": [ 9, 74, 128, @@ -11303,19 +11067,19 @@ ] }, { - "55260019": [ - 27 + "55259863": [ + 26 ] }, { - "55260021": [ + "55259865": [ 64, 1, 244 ] }, { - "55260026": [ + "55259870": [ 72, 18, 148, @@ -11323,19 +11087,19 @@ ] }, { - "55260031": [ + "55259875": [ 6 ] }, { - "55260033": [ + "55259877": [ 71, 16, 33 ] }, { - "55260037": [ + "55259881": [ 2, 19, 128, @@ -11344,7 +11108,7 @@ ] }, { - "55260043": [ + "55259887": [ 255, 53, 107, @@ -11352,7 +11116,7 @@ ] }, { - "55260049": [ + "55259893": [ 75, 16, 36, @@ -11363,7 +11127,7 @@ ] }, { - "55260057": [ + "55259901": [ 5, 40, 128, @@ -11374,7 +11138,7 @@ ] }, { - "55260065": [ + "55259909": [ 69, 16, 37, @@ -11384,7 +11148,7 @@ ] }, { - "55260073": [ + "55259917": [ 69, 16, 37, @@ -11393,21 +11157,21 @@ ] }, { - "55260081": [ + "55259925": [ 7, 59, 128 ] }, { - "55260085": [ + "55259929": [ 235, 56, 36 ] }, { - "55260089": [ + "55259933": [ 8, 64, 128, @@ -11418,7 +11182,7 @@ ] }, { - "55260097": [ + "55259941": [ 232, 56, 37, @@ -11427,7 +11191,7 @@ ] }, { - "55260103": [ + "55259947": [ 4, 60, 2, @@ -11435,34 +11199,34 @@ ] }, { - "55260108": [ + "55259952": [ 175, 162 ] }, { - "55260111": [ + "55259955": [ 8 ] }, { - "55260113": [ + "55259957": [ 102 ] }, { - "55260115": [ + "55259959": [ 24 ] }, { - "55260118": [ + "55259962": [ 48, 18 ] }, { - "55260121": [ + "55259965": [ 6, 49, 64, @@ -11475,7 +11239,7 @@ ] }, { - "55260131": [ + "55259975": [ 12, 60, 2, @@ -11483,31 +11247,31 @@ ] }, { - "55260136": [ + "55259980": [ 175, 162 ] }, { - "55260139": [ + "55259983": [ 16 ] }, { - "55260141": [ + "55259985": [ 3, 26, 128 ] }, { - "55260145": [ + "55259989": [ 106 ] }, { - "55260147": [ - 27, + "55259991": [ + 26, 1, 64, 1, @@ -11515,7 +11279,7 @@ ] }, { - "55260154": [ + "55259998": [ 24, 18, 48, @@ -11525,13 +11289,13 @@ ] }, { - "55260161": [ + "55260005": [ 9, 76 ] }, { - "55260165": [ + "55260009": [ 105, 24, 37, @@ -11540,7 +11304,7 @@ ] }, { - "55260171": [ + "55260015": [ 20, 3, 160, @@ -11551,55 +11315,55 @@ ] }, { - "55260179": [ + "55260023": [ 24, 140, 131 ] }, { - "55260183": [ - 4, + "55260027": [ + 8, 36, 101 ] }, { - "55260187": [ + "55260031": [ 8, 172, 133 ] }, { - "55260191": [ - 4, + "55260035": [ + 8, 140, 71 ] }, { - "55260195": [ + "55260039": [ 4, 140, 70 ] }, { - "55260200": [ + "55260044": [ 172, 103 ] }, { - "55260203": [ + "55260047": [ 4, 36, 66 ] }, { - "55260207": [ + "55260051": [ 8, 20, 72, @@ -11610,143 +11374,143 @@ ] }, { - "55260216": [ + "55260060": [ 3, 224 ] }, { - "55260219": [ + "55260063": [ 8, 39, 189 ] }, { - "55260223": [ + "55260067": [ 24, 140, 130 ] }, { - "55260227": [ - 4, + "55260071": [ + 8, 36, 67 ] }, { - "55260231": [ + "55260075": [ 8, 172, 131 ] }, { - "55260235": [ - 4, + "55260079": [ + 8, 60, 3, 231 ] }, { - "55260240": [ + "55260084": [ 172, 67 ] }, { - "55260244": [ + "55260088": [ 172, 64 ] }, { - "55260247": [ + "55260091": [ 4, 140, 130 ] }, { - "55260251": [ - 4, + "55260095": [ + 8, 36, 67 ] }, { - "55260255": [ + "55260099": [ 8, 172, 131 ] }, { - "55260259": [ - 4, + "55260103": [ + 8, 60, 3, 217 ] }, { - "55260264": [ + "55260108": [ 172, 67 ] }, { - "55260268": [ + "55260112": [ 172, 64 ] }, { - "55260271": [ + "55260115": [ 4, 140, 130 ] }, { - "55260275": [ - 4, + "55260119": [ + 8, 36, 67 ] }, { - "55260279": [ + "55260123": [ 8, 172, 131 ] }, { - "55260283": [ - 4, + "55260127": [ + 8, 60, 3, 237 ] }, { - "55260288": [ + "55260132": [ 172, 67 ] }, { - "55260292": [ + "55260136": [ 60, 5 ] }, { - "55260295": [ + "55260139": [ 80, 36, 163, @@ -11757,36 +11521,36 @@ ] }, { - "55260303": [ + "55260147": [ 4, 140, 131 ] }, { - "55260307": [ - 4, + "55260151": [ + 8, 36, 98 ] }, { - "55260311": [ + "55260155": [ 8, 172, 130 ] }, { - "55260315": [ - 4, + "55260159": [ + 8, 60, 2, 227 ] }, { - "55260320": [ + "55260164": [ 36, 70, 26, @@ -11796,42 +11560,42 @@ ] }, { - "55260328": [ + "55260172": [ 36, 6 ] }, { - "55260331": [ + "55260175": [ 48, 172, 102 ] }, { - "55260335": [ + "55260179": [ 4, 140, 131 ] }, { - "55260339": [ - 4, + "55260183": [ + 8, 36, 102 ] }, { - "55260343": [ + "55260187": [ 8, 172, 134 ] }, { - "55260347": [ - 4, + "55260191": [ + 8, 36, 70, 24, @@ -11841,49 +11605,49 @@ ] }, { - "55260356": [ + "55260200": [ 36, 6 ] }, { - "55260359": [ + "55260203": [ 192, 172, 102 ] }, { - "55260363": [ + "55260207": [ 4, 140, 134 ] }, { - "55260367": [ - 4, + "55260211": [ + 8, 36, 195 ] }, { - "55260371": [ + "55260215": [ 8, 172, 131 ] }, { - "55260375": [ - 4, + "55260219": [ + 8, 60, 3, 226 ] }, { - "55260380": [ + "55260224": [ 36, 103, 30, @@ -11893,124 +11657,124 @@ ] }, { - "55260388": [ + "55260232": [ 172, 192 ] }, { - "55260391": [ + "55260235": [ 4, 140, 134 ] }, { - "55260395": [ - 4, + "55260239": [ + 8, 36, 199 ] }, { - "55260399": [ + "55260243": [ 8, 172, 135 ] }, { - "55260403": [ - 4, + "55260247": [ + 8, 36, 103, 29 ] }, { - "55260408": [ + "55260252": [ 172, 199 ] }, { - "55260412": [ + "55260256": [ 36, 7 ] }, { - "55260415": [ + "55260259": [ 4, 172, 199 ] }, { - "55260419": [ + "55260263": [ 4, 140, 134 ] }, { - "55260423": [ - 4, + "55260267": [ + 8, 36, 199 ] }, { - "55260427": [ + "55260271": [ 8, 172, 135 ] }, { - "55260431": [ - 4, + "55260275": [ + 8, 36, 71, 23 ] }, { - "55260436": [ + "55260280": [ 172, 199 ] }, { - "55260440": [ + "55260284": [ 172, 192 ] }, { - "55260443": [ + "55260287": [ 4, 140, 134 ] }, { - "55260447": [ - 4, + "55260291": [ + 8, 36, 199 ] }, { - "55260451": [ + "55260295": [ 8, 172, 135 ] }, { - "55260455": [ - 4, + "55260299": [ + 8, 36, 71, 20, @@ -12020,42 +11784,42 @@ ] }, { - "55260464": [ + "55260308": [ 36, 7, 12 ] }, { - "55260468": [ + "55260312": [ 172, 199 ] }, { - "55260471": [ + "55260315": [ 4, 140, 134 ] }, { - "55260475": [ - 4, + "55260319": [ + 8, 36, 199 ] }, { - "55260479": [ + "55260323": [ 8, 172, 135 ] }, { - "55260483": [ - 4, + "55260327": [ + 8, 36, 71, 13, @@ -12065,117 +11829,117 @@ ] }, { - "55260492": [ + "55260336": [ 172, 192 ] }, { - "55260495": [ + "55260339": [ 4, 140, 134 ] }, { - "55260499": [ - 4, + "55260343": [ + 8, 36, 199 ] }, { - "55260503": [ + "55260347": [ 8, 172, 135 ] }, { - "55260507": [ - 4, + "55260351": [ + 8, 36, 71, 12 ] }, { - "55260512": [ + "55260356": [ 172, 199 ] }, { - "55260516": [ + "55260360": [ 172, 192 ] }, { - "55260519": [ + "55260363": [ 4, 140, 134 ] }, { - "55260523": [ - 4, + "55260367": [ + 8, 36, 199 ] }, { - "55260527": [ + "55260371": [ 8, 172, 135 ] }, { - "55260531": [ - 4, + "55260375": [ + 8, 36, 71, 15 ] }, { - "55260536": [ + "55260380": [ 172, 199 ] }, { - "55260540": [ + "55260384": [ 172, 192 ] }, { - "55260543": [ + "55260387": [ 4, 140, 134 ] }, { - "55260547": [ - 4, + "55260391": [ + 8, 36, 199 ] }, { - "55260551": [ + "55260395": [ 8, 172, 135 ] }, { - "55260555": [ - 4, + "55260399": [ + 8, 36, 71, 16, @@ -12185,76 +11949,76 @@ ] }, { - "55260564": [ + "55260408": [ 172, 192 ] }, { - "55260567": [ + "55260411": [ 4, 140, 134 ] }, { - "55260571": [ - 4, + "55260415": [ + 8, 36, 199 ] }, { - "55260575": [ + "55260419": [ 8, 172, 135 ] }, { - "55260579": [ - 4, + "55260423": [ + 8, 36, 71, 8 ] }, { - "55260584": [ + "55260428": [ 172, 199 ] }, { - "55260588": [ + "55260432": [ 172, 192 ] }, { - "55260591": [ + "55260435": [ 4, 140, 134 ] }, { - "55260595": [ - 4, + "55260439": [ + 8, 36, 199 ] }, { - "55260599": [ + "55260443": [ 8, 172, 135 ] }, { - "55260603": [ - 4, + "55260447": [ + 8, 36, 71, 10, @@ -12264,48 +12028,48 @@ ] }, { - "55260612": [ + "55260456": [ 172, 192 ] }, { - "55260615": [ + "55260459": [ 4, 140, 134 ] }, { - "55260619": [ - 4, + "55260463": [ + 8, 36, 199 ] }, { - "55260623": [ + "55260467": [ 8, 172, 135 ] }, { - "55260627": [ - 4, + "55260471": [ + 8, 36, 99 ] }, { - "55260631": [ + "55260475": [ 28, 172, 195 ] }, { - "55260636": [ + "55260480": [ 36, 165, 66, @@ -12315,29 +12079,29 @@ ] }, { - "55260643": [ + "55260487": [ 4, 140, 131 ] }, { - "55260647": [ - 4, + "55260491": [ + 8, 36, 101 ] }, { - "55260651": [ + "55260495": [ 8, 172, 133 ] }, { - "55260655": [ - 4, + "55260499": [ + 8, 36, 66, 18, @@ -12347,203 +12111,260 @@ ] }, { - "55260664": [ + "55260508": [ 36, 2, 32 ] }, { - "55260668": [ + "55260512": [ 172, 98 ] }, { - "55260671": [ + "55260515": [ 4, 140, 130 ] }, { - "55260675": [ - 4, + "55260519": [ + 8, 36, 67 ] }, { - "55260679": [ + "55260523": [ 8, 172, 131 ] }, { - "55260683": [ - 4, + "55260527": [ + 8, 60, 3, 223 ] }, { - "55260688": [ + "55260532": [ 172, 67 ] }, { - "55260692": [ + "55260536": [ 3, 224 ] }, { - "55260695": [ + "55260539": [ 8, 172, 64 ] }, { - "55260699": [ + "55260543": [ 4, 39, 189, 255, - 224, + 200, 175, 191 ] }, { - "55260707": [ - 28, + "55260551": [ + 52, 175, - 178 + 177 ] }, { - "55260711": [ - 24, + "55260555": [ + 48, 175, - 177 + 176 ] }, { - "55260715": [ - 20, + "55260559": [ + 44, 175, - 176 + 160 ] }, { - "55260719": [ + "55260563": [ 16, 60, - 3, - 128, - 64, - 60, 2, - 128, - 80, + 1, + 160, 36, - 66 + 66, + 32 ] }, { - "55260732": [ - 172, - 98, - 100, - 240, + "55260572": [ + 175, + 162 + ] + }, + { + "55260575": [ + 20, 60, - 17, - 128, - 64, + 16 + ] + }, + { + "55260579": [ + 3, + 54, + 2, + 149, + 192, + 175, + 162 + ] + }, + { + "55260587": [ + 24, 12, 16, - 20, - 30, - 38, - 36, - 100, - 100, - 60, - 16, - 128, - 64, - 12, + 21, + 197, + 39, + 164 + ] + }, + { + "55260595": [ 16, - 20, - 30, - 38, - 4, - 100, - 88, - 142, - 35, - 100, - 100, + 175, + 160 + ] + }, + { + "55260599": [ + 28, 60, 2 ] }, { - "55260767": [ - 2, - 52, + "55260603": [ + 132, + 36, 66, - 163 + 96 ] }, { - "55260773": [ - 98, + "55260608": [ + 175, + 162 + ] + }, + { + "55260611": [ + 32, + 52, + 2, + 180 + ] + }, + { + "55260616": [ + 175, + 162 + ] + }, + { + "55260619": [ + 36, + 12, + 16, + 21, + 197, + 39, + 164 + ] + }, + { + "55260627": [ + 28, + 143, + 162 + ] + }, + { + "55260631": [ 16, + 38, + 16, + 163 + ] + }, + { + "55260637": [ + 80, + 128, 33, 60, - 4, + 3, 128, 64, 172, - 130, - 100, - 72, + 112, + 97, + 252, 36, - 99, + 66, 41, 128, 60, - 2, + 3, 128, 64, 172, - 67, - 100, - 56, - 142, - 2, - 100, - 88, + 98, + 97, + 236, + 143, + 162 + ] + }, + { + "55260663": [ + 28, 36, 66, 126 ] }, { - "55260804": [ + "55260668": [ 60, 3, 128, 64, 172, 98, - 100, - 40, + 97, + 220, 60, 17, 128, @@ -12551,33 +12372,33 @@ 12, 16, 20, - 57, + 16, 38, 36, - 100, - 24 + 97, + 204 ] }, { - "55260825": [ + "55260689": [ 64, 128, 37, 12, 16, - 20, - 5 + 21, + 184 ] }, { - "55260833": [ + "55260697": [ 64, 32, 37 ] }, { - "55260837": [ + "55260701": [ 16, 79, 194, @@ -12590,22 +12411,22 @@ ] }, { - "55260847": [ + "55260711": [ 2, 22 ] }, { - "55260851": [ + "55260715": [ 24, 174, 34, - 100, - 24 + 97, + 204 ] }, { - "55260857": [ + "55260721": [ 9, 72, 67, @@ -12615,18 +12436,18 @@ 64, 36, 99, - 100, - 244 + 99, + 36 ] }, { - "55260870": [ + "55260734": [ 32, 37 ] }, { - "55260874": [ + "55260738": [ 48, 37, 2, @@ -12639,12 +12460,12 @@ 240, 141, 5, - 100, - 24 + 97, + 204 ] }, { - "55260889": [ + "55260753": [ 164, 40, 33, @@ -12653,14 +12474,14 @@ ] }, { - "55260897": [ + "55260761": [ 2, 17, 2 ] }, { - "55260901": [ + "55260765": [ 71, 16, 37, @@ -12669,15 +12490,15 @@ ] }, { - "55260908": [ + "55260772": [ 141, 2, - 100, - 24 + 97, + 204 ] }, { - "55260913": [ + "55260777": [ 68, 16, 33, @@ -12686,7 +12507,7 @@ ] }, { - "55260921": [ + "55260785": [ 167, 40, 37, @@ -12695,26 +12516,26 @@ ] }, { - "55260927": [ + "55260791": [ 1, 36, 198 ] }, { - "55260931": [ + "55260795": [ 1, 36, 99 ] }, { - "55260935": [ + "55260799": [ 1 ] }, { - "55260937": [ + "55260801": [ 201, 16, 42, @@ -12727,2417 +12548,2276 @@ ] }, { - "55260947": [ + "55260811": [ 2, + 12, + 16, + 21, + 184, 36, - 5, - 2 + 4, + 1 ] }, { - "55260952": [ - 60, - 17, - 128, - 64, - 12, - 16, - 20, - 14, - 38, - 36, - 100, - 112, + "55260820": [ 60, - 16, + 4, 128, 64, - 38, - 16, - 100, - 124, - 38, - 49, - 100, - 112, - 38, - 50 - ] - }, - { - "55260979": [ - 48, 36, - 5, + 3, 1 ] }, { - "55260984": [ - 12, - 16, + "55260828": [ + 172, + 131, + 99, 20, - 14, - 2 + 36, + 132, + 99, + 20, + 172, + 130 ] }, { - "55260990": [ - 32, - 37, - 38, - 16 + "55260839": [ + 4, + 172, + 130 ] }, { - "55260995": [ - 12, - 22, - 18, - 255, - 252, + "55260843": [ + 8, 36, - 5, + 66, 1 ] }, { - "55261004": [ - 36, - 5, - 2 - ] - }, - { - "55261008": [ - 60, - 4, - 128, - 64, + "55260848": [ 12, 16, 20, - 14, - 36, - 132, - 100, - 160, - 60, - 16, - 128, - 64, - 38, - 16, - 100, + 233, 172, - 38, - 49 - ] - }, - { - "55261031": [ - 96, - 36, - 5, - 1 + 130 ] }, { - "55261036": [ + "55260855": [ 12, - 16, - 20, - 14, - 2 + 143, + 191 ] }, { - "55261042": [ - 32, - 37, - 38, - 16 + "55260859": [ + 52, + 143, + 177 ] }, { - "55261047": [ - 12, - 22, - 17, - 255, - 252, - 36, - 5, - 1 + "55260863": [ + 48, + 143, + 176 ] }, { - "55261056": [ - 36, - 5 + "55260867": [ + 44, + 3, + 224 ] }, { - "55261059": [ - 32, + "55260871": [ + 8, + 39, + 189 + ] + }, + { + "55260875": [ + 56, 60, - 16, + 3, 128, 64, - 12, - 16, - 20, - 14, - 38, - 4, - 100, - 208, - 12, - 16, - 21, - 16, - 38, - 4, - 100, - 208, - 143, - 191 + 60, + 2, + 128, + 80, + 36, + 66 ] }, { - "55261083": [ - 28, - 143, - 178 + "55260888": [ + 3, + 224 ] }, { - "55261087": [ - 24, - 143, - 177 + "55260891": [ + 8, + 172, + 98, + 99, + 8 ] }, { - "55261091": [ - 20, - 143, - 176 + "55260897": [ + 4, + 23, + 195 ] }, { - "55261095": [ - 16, - 3, - 224 + "55260901": [ + 2, + 31, + 2 ] }, { - "55261099": [ - 8, - 39, - 189 + "55260905": [ + 131, + 16, + 33, + 48, + 66 ] }, { - "55261103": [ - 32, - 128, - 162 + "55260911": [ + 15 ] }, { - "55261108": [ + "55260913": [ + 67, + 16, + 35, 16, 64 ] }, { - "55261111": [ - 79, - 36, - 67, - 255, - 224, - 39, - 189, - 255, - 200, - 175, - 191 + "55260919": [ + 3, + 60, + 3, + 128, + 64 ] }, { - "55261123": [ - 52, - 175, - 180 + "55260925": [ + 130, + 32, + 35, + 36, + 132 ] }, { - "55261127": [ - 48, - 175, - 179 + "55260931": [ + 16, + 140, + 98, + 99, + 8 ] }, { - "55261131": [ - 44, - 175, - 178 + "55260937": [ + 68, + 32, + 33, + 3, + 224 ] }, { - "55261135": [ - 40, + "55260943": [ + 8, + 172, + 100, + 99, + 8, + 39, + 189, + 255, + 232, 175, - 177 + 191 ] }, { - "55261139": [ - 36, + "55260955": [ + 20, 175, 176 ] }, { - "55261143": [ - 32 + "55260959": [ + 16 ] }, { - "55261145": [ + "55260961": [ 128, - 152, - 37 + 128, + 37, + 12, + 16, + 21, + 184, + 140, + 132 ] }, { - "55261149": [ - 192, - 144, - 37 + "55260971": [ + 8, + 174, + 2 ] }, { - "55261153": [ - 224, - 160, - 37 + "55260976": [ + 142, + 6 ] }, { - "55261157": [ - 3, - 23, - 195 + "55260979": [ + 8 ] }, { - "55261161": [ + "55260981": [ + 64, + 32, + 37, + 60, 2, - 38, - 194 + 128 ] }, { - "55261165": [ - 100, - 48, - 33, - 48, - 198 + "55260988": [ + 36, + 66, + 13, + 240 ] }, { - "55261171": [ - 31 + "55260993": [ + 64, + 248, + 9, + 142, + 5 ] }, { - "55261173": [ - 196, - 48, - 35, - 48, - 66 + "55260999": [ + 4, + 143, + 191 ] }, { - "55261179": [ - 31 + "55261003": [ + 20, + 143, + 176 ] }, { - "55261181": [ - 67, + "55261007": [ 16, - 33 + 3, + 224 ] }, { - "55261185": [ - 2, - 17, - 67 + "55261011": [ + 8, + 39, + 189 ] }, { - "55261189": [ - 2, - 32, - 64 + "55261015": [ + 24, + 39, + 189, + 255, + 232, + 175, + 191 ] }, { - "55261193": [ - 130, - 32, - 33 + "55261023": [ + 20, + 12, + 16, + 21, + 179 ] }, { - "55261197": [ - 4, - 32, - 128, - 2, - 100, - 32, - 33, - 140, - 130 + "55261032": [ + 12, + 16, + 21, + 96 ] }, { - "55261207": [ - 4, - 140, - 131 + "55261040": [ + 12, + 16, + 23, + 233 ] }, { - "55261213": [ - 67, - 16, - 35 + "55261048": [ + 143, + 191 ] }, { - "55261217": [ - 2, - 16, - 195, - 140, - 131 + "55261051": [ + 20, + 3, + 224 ] }, { - "55261223": [ + "55261055": [ 8, - 36, - 99, + 39, + 189 + ] + }, + { + "55261059": [ + 24, + 39, + 189, 255, - 254 + 224, + 175, + 191 ] }, { - "55261229": [ - 67, - 16, - 43, - 16, - 64 + "55261067": [ + 28, + 175, + 178 ] }, { - "55261235": [ - 40, - 36, + "55261071": [ + 24, + 175, 177 ] }, { - "55261239": [ - 1, - 60, - 16, - 128, - 64, - 16 + "55261075": [ + 20, + 175, + 176 ] }, { - "55261247": [ - 23, - 38, - 16, - 100, - 24, - 36, - 131, - 255, - 224 + "55261079": [ + 16 ] }, { - "55261257": [ - 3, - 23, - 195 + "55261081": [ + 128, + 128, + 37 ] }, { - "55261261": [ + "55261085": [ + 160, + 136, + 37, + 60, 2, - 38, - 194 + 128, + 28, + 52, + 66, + 132, + 160, + 60, + 3 ] }, { - "55261265": [ - 100, - 48, + "55261099": [ + 1 + ] + }, + { + "55261101": [ + 67, + 16, 33, - 48, - 198 + 148, + 67, + 9, + 52, + 36, + 2 ] }, { - "55261271": [ - 31 + "55261111": [ + 6, + 20, + 98 ] }, { - "55261273": [ - 196, - 48, - 35, - 48, - 68 + "55261115": [ + 22 ] }, { - "55261279": [ - 31 + "55261117": [ + 192, + 144, + 37, + 60, + 2, + 128, + 28, + 52, + 66, + 132, + 160, + 60, + 3 ] }, { - "55261281": [ - 131, - 32, - 33 + "55261131": [ + 1 ] }, { - "55261285": [ - 4, + "55261133": [ + 67, + 16, 33, - 67 + 148, + 66, + 9, + 72, + 20, + 64 ] }, { - "55261289": [ - 4, + "55261143": [ 16, - 64 + 2, + 64, + 48, + 37, + 60, + 2, + 128, + 28, + 52, + 66, + 132, + 160 ] }, { - "55261293": [ + "55261157": [ + 67, + 16, + 33, + 148, + 66, + 9, 68, - 32, - 33 + 20, + 64 ] }, { - "55261297": [ - 4, - 32, - 128, + "55261167": [ + 11, 2, - 100, 32, - 33, - 140, - 130 + 40, + 37, + 60, + 2, + 128, + 28, + 52, + 66, + 132, + 160, + 132, + 66 ] }, { - "55261307": [ + "55261183": [ + 20, 4, - 140, - 131 + 65 ] }, { - "55261313": [ - 67, - 16, - 35 + "55261187": [ + 6 ] }, { - "55261317": [ - 2, - 16, - 195, + "55261192": [ 140, - 131 - ] - }, - { - "55261323": [ - 8, - 36, - 99, - 255, - 254 + 130 ] }, { - "55261329": [ - 67, - 16, - 43, + "55261195": [ + 4, + 12, 16, - 64 + 22, + 15, + 172, + 130 ] }, { - "55261335": [ + "55261203": [ + 8, + 2, + 64, + 48, + 37, + 2, + 32, + 40, + 37, + 12, 16, - 143, - 191 + 20 ] }, { - "55261339": [ - 52, - 150, + "55261216": [ 2 ] }, { - "55261343": [ - 6, - 175, - 162 - ] - }, - { - "55261347": [ - 24, - 150, - 2 - ] - }, - { - "55261351": [ - 4, - 175, - 162 - ] - }, - { - "55261355": [ - 20, - 175, - 180 - ] - }, - { - "55261359": [ - 16, - 2, - 64, - 56, - 37, - 12, - 16, - 20, - 214, - 2 - ] - }, - { - "55261370": [ - 40, + "55261218": [ + 32, 37, - 150, - 2 - ] - }, - { - "55261375": [ - 4, - 2, - 66, - 144, - 33, - 38, - 49 - ] - }, - { - "55261383": [ - 1, - 130, - 36, - 255, - 255, - 20, - 128, - 255, - 221, - 50, - 82, - 255, - 255, 143, 191 ] }, { - "55261399": [ - 52, - 143, - 180 - ] - }, - { - "55261403": [ - 48, - 143, - 179 - ] - }, - { - "55261407": [ - 44, + "55261223": [ + 28, 143, 178 ] }, { - "55261411": [ - 40, + "55261227": [ + 24, 143, 177 ] }, { - "55261415": [ - 36, + "55261231": [ + 20, 143, 176 ] }, { - "55261419": [ - 32, + "55261235": [ + 16, 3, 224 ] }, { - "55261423": [ + "55261239": [ 8, 39, 189 ] }, { - "55261427": [ - 56, - 3, - 224 + "55261243": [ + 32, + 39, + 189, + 255, + 152, + 175, + 191 ] }, { - "55261431": [ - 8 + "55261251": [ + 100, + 175, + 190 ] }, { - "55261436": [ - 39, - 189, - 255, - 208, + "55261255": [ + 96, 175, - 191 + 183 ] }, { - "55261443": [ - 44, + "55261259": [ + 92, 175, 182 ] }, { - "55261447": [ - 40, + "55261263": [ + 88, 175, 181 ] }, { - "55261451": [ - 36, + "55261267": [ + 84, 175, 180 ] }, { - "55261455": [ - 32, + "55261271": [ + 80, 175, 179 ] }, { - "55261459": [ - 28, + "55261275": [ + 76, 175, 178 ] }, { - "55261463": [ - 24, + "55261279": [ + 72, 175, 177 ] }, { - "55261467": [ - 20, + "55261283": [ + 68, 175, 176 ] }, { - "55261471": [ - 16 + "55261287": [ + 64 ] }, { - "55261473": [ + "55261289": [ + 128, 128, - 144, - 37, - 36, - 176 - ] - }, - { - "55261479": [ - 4 - ] - }, - { - "55261482": [ - 136, 37, 60, - 22, - 223 - ] - }, - { - "55261488": [ - 60, - 19, + 2, 128, 64, - 38, - 115, - 100, + 140, + 67, + 99, 24, - 60, - 21, - 222 + 140, + 130 ] }, { - "55261500": [ + "55261303": [ + 8, 36, - 20 + 68 ] }, { - "55261503": [ - 96, - 142, - 2 + "55261307": [ + 8, + 174, + 4 ] }, { - "55261508": [ + "55261311": [ + 8, + 60, + 4, + 222 + ] + }, + { + "55261316": [ 172, - 86 + 68 ] }, { - "55261512": [ + "55261320": [ 172, - 64 + 67 ] }, { - "55261515": [ + "55261323": [ 4, - 142, + 60, 2, - 255, - 252, - 174, - 2 + 128, + 64, + 148, + 67, + 97, + 208 ] }, { - "55261524": [ - 36, - 7 + "55261333": [ + 3, + 16, + 192 ] }, { - "55261527": [ - 32, - 2, - 32, - 48, - 37, - 2, - 96, - 40, - 37, - 12, + "55261337": [ + 67, 16, - 20, - 69, + 35 + ] + }, + { + "55261341": [ 2, + 16, 64, - 32, - 37, - 142, - 3, - 255, - 252, - 142, + 36, 66 ] }, { - "55261551": [ - 4, + "55261347": [ + 96, 36, - 68 + 19, + 1, + 64, + 2, + 98, + 152, + 35 ] }, { - "55261555": [ - 8, - 174, - 68 + "55261357": [ + 19, + 152, + 67, + 38, + 99 ] }, { - "55261559": [ - 4, - 172, - 85 + "55261363": [ + 2, + 175, + 163 ] }, { - "55261564": [ - 172, - 67 + "55261367": [ + 56, + 142, + 3 ] }, { - "55261567": [ - 4, - 38, - 49 + "55261371": [ + 8, + 36, + 100 ] }, { - "55261571": [ - 32, - 22, - 52, - 255, - 238, - 38, - 16 + "55261375": [ + 8, + 174, + 4 ] }, { - "55261579": [ - 12, - 143, - 191 + "55261379": [ + 8, + 60, + 4, + 252, + 255, + 52, + 132, + 255, + 255, + 172, + 100 ] }, { - "55261583": [ - 44, - 143, - 182 + "55261392": [ + 60, + 4, + 255, + 253, + 52, + 132, + 246, + 251, + 172, + 100 ] }, { - "55261587": [ - 40, - 143, - 181 + "55261403": [ + 4, + 142, + 3 ] }, { - "55261591": [ + "55261407": [ + 8, 36, - 143, - 180 + 100 ] }, { - "55261595": [ - 32, - 143, - 179 + "55261411": [ + 8, + 174, + 4 ] }, { - "55261599": [ - 28, - 143, - 178 + "55261415": [ + 8, + 60, + 4, + 250 ] }, { - "55261603": [ - 24, - 143, - 177 + "55261420": [ + 172, + 100 ] }, { - "55261607": [ - 20, - 143, - 176 + "55261424": [ + 36, + 4 ] }, { - "55261611": [ - 16, - 3, - 224 + "55261427": [ + 208, + 172, + 100 ] }, { - "55261615": [ - 8, - 39, - 189 + "55261431": [ + 4 ] }, { - "55261619": [ - 48, - 39, - 189, - 255, - 152, - 175, - 191 + "55261433": [ + 83, + 16, + 33 ] }, { - "55261627": [ - 100, - 175, - 190 + "55261437": [ + 2, + 19, + 128, + 60, + 3 ] }, { - "55261631": [ - 96, - 175, - 183 + "55261443": [ + 255, + 52, + 99, + 240 ] }, { - "55261635": [ - 92, - 175, - 182 + "55261449": [ + 67, + 16, + 36, + 60, + 4, + 228 ] }, { - "55261639": [ - 88, - 175, - 181 + "55261456": [ + 36, + 132, + 3, + 184 ] }, { - "55261643": [ - 84, + "55261461": [ + 68, + 16, + 37, 175, - 180 + 162 ] }, { - "55261647": [ - 80, - 175, - 179 + "55261467": [ + 32 ] }, { - "55261651": [ - 76, - 175, - 178 + "55261469": [ + 19, + 19, + 128 ] }, { - "55261655": [ - 72, - 175, - 177 + "55261473": [ + 67, + 16, + 36, + 52, + 66 ] }, { - "55261659": [ - 68, + "55261479": [ + 8, 175, - 176 + 162 ] }, { - "55261663": [ - 64, + "55261483": [ + 36, 60, - 3, - 128, - 64, - 140, - 118, - 100, - 236, - 38, - 194 - ] - }, - { - "55261675": [ - 1 + 2, + 225 ] }, { - "55261677": [ - 2, - 47, - 194 + "55261488": [ + 175, + 162 ] }, { - "55261681": [ - 69, - 16, - 33, - 48, - 66 + "55261491": [ + 40, + 175, + 160 ] }, { - "55261687": [ - 1 + "55261495": [ + 44, + 60, + 2, + 241 ] }, { - "55261689": [ - 69, - 16, - 35, - 172, - 98, - 100, - 236 + "55261500": [ + 175, + 162 ] }, { - "55261697": [ - 22, - 160, - 64, + "55261503": [ + 48, + 60, 2, - 150, - 160, - 33 + 4 ] }, { - "55261705": [ - 20, - 17 + "55261508": [ + 36, + 66, + 4 ] }, { - "55261708": [ + "55261512": [ 175, 162 ] }, { - "55261711": [ - 60, - 60, - 18, - 128, - 64, - 38, - 82, - 100, - 112, - 2, - 66, - 144, - 33, + "55261515": [ + 52, + 39, + 162 + ] + }, + { + "55261519": [ + 32, + 39, + 166 + ] + }, + { + "55261523": [ + 56, 142, - 66 + 3 + ] + }, + { + "55261527": [ + 8, + 36, + 100 ] }, { - "55261728": [ + "55261531": [ + 8, 174, - 66 + 4 ] }, { - "55261731": [ + "55261535": [ + 8, + 140, + 69 + ] + }, + { + "55261539": [ 4, 140, - 130 + 68 ] }, { - "55261735": [ - 8, - 36, - 67, - 255, - 240, + "55261544": [ 172, - 131 + 101 ] }, { - "55261743": [ - 8, - 142, - 67 + "55261547": [ + 4, + 36, + 66 ] }, { - "55261748": [ - 36, - 69, + "55261551": [ + 8, + 20, + 194, 255, 248, 172, - 133 + 100 ] }, { - "55261755": [ - 8, - 60, - 4, - 222, - 1, - 172, - 68, - 255, - 240, - 172, - 67, - 255, - 244, - 60, - 2, - 128, - 64, - 140, - 67, - 100, - 208, + "55261560": [ 142, - 66 + 2 ] }, { - "55261779": [ - 4, + "55261563": [ + 8, 36, - 68 + 67 ] }, { - "55261783": [ + "55261567": [ 8, 174, - 68 + 3 ] }, { - "55261787": [ - 4, + "55261571": [ + 8, 60, - 4, - 222 + 3, + 231 ] }, { - "55261792": [ + "55261576": [ 172, - 68 + 67 ] }, { - "55261796": [ + "55261580": [ 172, - 67 + 64 ] }, { - "55261799": [ + "55261583": [ 4, 142, - 66 + 2 ] }, { - "55261803": [ - 4, + "55261587": [ + 8, 36, 67 ] }, { - "55261807": [ + "55261591": [ 8, 174, - 67 + 3 ] }, { - "55261811": [ - 4, + "55261595": [ + 8, 60, 3, 252, - 255, + 17, 52, 99, - 255, - 255, + 150, + 35, 172, 67 ] }, { - "55261824": [ + "55261608": [ 60, 3, 255, - 253, + 47, 52, 99, - 246, - 251, + 255, + 255, 172, 67 ] }, { - "55261835": [ + "55261619": [ 4, - 142, - 66 + 60, + 5, + 128, + 64, + 36, + 165, + 97, + 236, + 148, + 167 ] }, { - "55261839": [ - 4, - 36, - 67 + "55261631": [ + 8 ] }, { - "55261843": [ - 8, - 174, - 67 + "55261634": [ + 48, + 37, + 12, + 16, + 20, + 28, + 2 ] }, { - "55261847": [ - 4, + "55261642": [ + 32, + 37, 60, - 3, - 250 + 2, + 128, + 64, + 140, + 66, + 99, + 4, + 24, + 64 ] }, { - "55261852": [ - 172, - 67 + "55261655": [ + 53, + 60, + 2, + 128, + 64, + 60, + 18, + 128, + 64, + 38, + 82, + 98, + 128 ] }, { - "55261856": [ - 36, - 3 + "55261670": [ + 136, + 37, + 60, + 20, + 128, + 64, + 38, + 148, + 98, + 28, + 60, + 23, + 128, + 64, + 38, + 247, + 98, + 44, + 60, + 30, + 250 ] }, { - "55261859": [ - 208, - 172, - 67 + "55261692": [ + 36, + 22 ] }, { - "55261863": [ - 4, - 60, - 2, - 228, - 73, + "55261695": [ + 16, 36, 66, - 67, - 36, + 97, + 236, 175, 162 ] }, { - "55261875": [ - 32, + "55261703": [ 60, - 2 - ] - }, - { - "55261879": [ - 6, - 36, - 66, - 1, - 4, - 175, - 162 + 60, + 21, + 128, + 64, + 146, + 66 ] }, { - "55261887": [ - 36, - 60, - 2, - 225 + "55261713": [ + 84, + 16, + 33, + 128, + 70 ] }, { - "55261892": [ - 175, - 162 + "55261720": [ + 40, + 194 ] }, { - "55261895": [ - 40, - 175, - 160 + "55261723": [ + 3, + 84, + 64 ] }, { - "55261899": [ - 44, - 60, - 2, - 241 + "55261727": [ + 31, + 38, + 49 ] }, { - "55261904": [ - 175, - 162 + "55261731": [ + 1, + 36, + 198, + 255, + 253 ] }, { - "55261907": [ - 48, - 60, - 2, - 4 + "55261737": [ + 6, + 24, + 64 ] }, { - "55261912": [ - 36, - 66, - 4 + "55261741": [ + 102, + 24, + 33 ] }, { - "55261916": [ - 175, - 162 + "55261745": [ + 119, + 24, + 33, + 144, + 98 ] }, { - "55261919": [ - 52, - 39, - 162 + "55261753": [ + 2, + 22 ] }, { - "55261923": [ - 32, - 39, - 168 + "55261756": [ + 144, + 100 ] }, { - "55261927": [ - 56, - 2, - 64, - 24, - 37, - 140, - 100 + "55261759": [ + 2 ] }, { - "55261935": [ + "55261761": [ 4, - 36, - 133 + 34 ] }, { - "55261939": [ - 8, - 172, - 101 + "55261765": [ + 68, + 16, + 37, + 144, + 99 ] }, { - "55261943": [ - 4, - 140, - 71 + "55261771": [ + 1 ] }, { - "55261947": [ - 4, - 140, - 70 + "55261773": [ + 3, + 28 ] }, { - "55261952": [ - 172, - 135 + "55261777": [ + 67, + 16, + 37, + 52, + 66 ] }, { - "55261955": [ - 4, + "55261783": [ + 255, + 142, + 3 + ] + }, + { + "55261787": [ + 8, 36, - 66 + 100 ] }, { - "55261959": [ + "55261791": [ + 8, + 174, + 4 + ] + }, + { + "55261795": [ 8, - 21, - 2, - 255, - 248, 172, - 134 + 126 ] }, { - "55261968": [ - 60, - 2, - 128, - 64 + "55261800": [ + 172, + 98 ] }, { - "55261973": [ - 22, - 24, - 64 + "55261803": [ + 4, + 175, + 182 ] }, { - "55261977": [ - 118, + "55261807": [ 24, - 33 + 175, + 182 ] }, { - "55261981": [ - 3, - 25 + "55261811": [ + 20 ] }, { - "55261984": [ - 36, - 66, - 100, - 112 + "55261813": [ + 17, + 16, + 192 ] }, { - "55261989": [ - 67, + "55261817": [ + 81, 16, - 33, - 140, - 67 + 33 ] }, { - "55261995": [ - 4, + "55261821": [ + 2, + 16, + 64, 36, - 100 + 66 ] }, { - "55261999": [ - 8, - 172, - 68 + "55261827": [ + 4, + 175, + 162 ] }, { - "55262003": [ - 4, - 60, - 4, - 231 + "55261831": [ + 16, + 143, + 167 ] }, { - "55262008": [ - 172, - 100 + "55261835": [ + 56, + 143, + 165 ] }, { - "55262012": [ - 172, - 96 + "55261839": [ + 60, + 12, + 16, + 20, + 175, + 2 ] }, { - "55262015": [ - 4, - 140, - 67 + "55261846": [ + 32, + 37, + 38, + 49 ] }, { - "55262019": [ + "55261851": [ + 1, + 142, + 162, + 99, 4, + 2, + 34, + 16, + 42, + 20, + 64, + 255, + 217, + 38, + 82 + ] + }, + { + "55261867": [ + 10, + 142, + 2 + ] + }, + { + "55261871": [ + 8, 36, - 100 + 67 ] }, { - "55262023": [ + "55261875": [ 8, - 172, - 68 + 174, + 3 ] }, { - "55262027": [ - 4, + "55261879": [ + 8, 60, - 2, + 3, 250 ] }, { - "55262032": [ + "55261884": [ 172, - 98 + 67 ] }, { - "55262036": [ + "55261888": [ 36, - 2, + 3, 255, 255, 172, - 98 + 67 ] }, { - "55262043": [ + "55261895": [ 4, 60, - 2, - 228, - 11, + 5, + 128, + 64, 36, - 66, - 67, - 36, - 175, - 162 + 165, + 97, + 252, + 148, + 167 ] }, { - "55262055": [ - 32, - 60, - 2 + "55261907": [ + 8 ] }, { - "55262059": [ - 11, - 36, - 66, - 1, - 4, - 175, - 162 + "55261910": [ + 48, + 37, + 12, + 16, + 20, + 28, + 2 ] }, { - "55262067": [ - 36, + "55261918": [ + 32, + 37, 60, 2, - 225 - ] - }, - { - "55262072": [ - 175, - 162 + 128, + 64, + 140, + 66, + 99, + 4, + 88, + 64 ] }, { - "55262075": [ - 40, - 175, - 160 + "55261931": [ + 47, + 38, + 115 ] }, { - "55262079": [ - 44, + "55261935": [ + 20, 60, - 2, - 241 - ] - }, - { - "55262084": [ - 175, - 162 + 17, + 128, + 64, + 38, + 49, + 98, + 128, + 36, + 20 ] }, { - "55262087": [ - 48, - 60, - 2, + "55261947": [ 4 ] }, { - "55262092": [ + "55261950": [ + 144, + 37, + 60, + 21, + 128, + 64, + 38, + 181, + 98, + 28, 36, - 66, - 4 - ] - }, - { - "55262096": [ - 175, - 162 - ] - }, - { - "55262099": [ - 52, - 39, - 162 + 23 ] }, { - "55262103": [ - 32, + "55261963": [ + 16, + 60, + 30, + 128, + 64, 39, - 168 - ] - }, - { - "55262107": [ - 56, + 222, + 97, + 252, 60, - 3, + 22, 128, - 64 + 64, + 146, + 34 ] }, { - "55262113": [ - 22, - 32, - 64 + "55261981": [ + 85, + 16, + 33, + 128, + 70 ] }, { - "55262117": [ - 150, - 32, - 33 + "55261988": [ + 44, + 194 ] }, { - "55262121": [ - 4, - 33 + "55261991": [ + 3, + 80, + 64 ] }, { - "55262124": [ - 36, - 99, - 100, - 112 + "55261995": [ + 9, + 38, + 82 ] }, { - "55262129": [ - 100, - 24, - 33, - 140, - 100 + "55261999": [ + 1, + 175, + 183 ] }, { - "55262135": [ - 4, - 36, - 133 + "55262003": [ + 24, + 175, + 183 ] }, { - "55262139": [ - 8, - 172, - 101 + "55262007": [ + 20, + 175, + 180 ] }, { - "55262143": [ - 4, - 140, - 71 + "55262011": [ + 16, + 143, + 167 ] }, { - "55262147": [ - 4, - 140, - 70 + "55262015": [ + 56, + 3, + 192, + 40, + 37, + 12, + 16, + 20, + 175, + 2 ] }, { - "55262152": [ - 172, - 135 + "55262026": [ + 32, + 37, + 38, + 82 ] }, { - "55262155": [ + "55262031": [ + 1, + 142, + 194, + 99, 4, - 36, - 66 + 38, + 49 ] }, { - "55262159": [ - 8, - 21, + "55262039": [ + 10, 2, + 66, + 24, + 42, + 20, + 96, 255, - 248, - 172, - 134 + 238, + 38, + 148 ] }, { - "55262168": [ - 60, - 2, - 128, + "55262051": [ + 18, + 24, 64 ] }, { - "55262173": [ - 22, - 24, - 64 + "55262055": [ + 16, + 38, + 115 ] }, { - "55262177": [ - 118, - 24, - 33 + "55262059": [ + 20, + 60, + 17, + 128, + 64, + 38, + 49, + 98, + 129, + 36, + 20 ] }, { - "55262181": [ - 3, - 25 + "55262071": [ + 5 ] }, { - "55262184": [ - 36, - 66, - 100, - 112 - ] - }, - { - "55262189": [ - 67, + "55262074": [ + 144, + 37, + 60, + 21, + 128, + 64, + 2, + 128, + 48, + 37, + 2, + 96, + 40, + 37, + 12, 16, - 33, - 140, - 67 - ] - }, - { - "55262195": [ - 4, - 36, - 100 + 23, + 244, + 2, + 32, + 32, + 37, + 38, + 82 ] }, { - "55262199": [ - 8, - 172, - 68 + "55262099": [ + 1, + 38, + 49 ] }, { - "55262203": [ - 4, - 60, + "55262103": [ + 10, + 142, + 162, + 99, 4, - 231 - ] - }, - { - "55262208": [ - 172, - 100 - ] - }, - { - "55262212": [ - 172, - 96 + 2, + 66, + 16, + 42, + 20, + 64, + 255, + 247, + 38, + 148 ] }, { - "55262215": [ - 4, - 140, - 67 + "55262119": [ + 18, + 60, + 2, + 128, + 64, + 148, + 66, + 97, + 208 ] }, { - "55262219": [ - 4, + "55262129": [ + 2, + 16, + 192, 36, - 100 + 66 ] }, { - "55262223": [ - 8, - 172, - 68 + "55262135": [ + 2 ] }, { - "55262227": [ - 4, - 60, - 2, - 252, - 17, - 52, - 66, - 150, - 35, - 172, - 98 + "55262137": [ + 83, + 152, + 33, + 36, + 7 ] }, { - "55262240": [ - 60, - 2, - 255, - 47, - 52, - 66, - 255, - 255, - 172, - 98 + "55262143": [ + 1, + 36, + 6 ] }, { - "55262251": [ - 4, + "55262147": [ + 3, 60, 5, 128, 64, 36, 165, - 100, - 72, - 148, - 167 - ] - }, - { - "55262263": [ - 8 - ] - }, - { - "55262266": [ - 48, - 37, + 97, + 220, 12, 16, 20, - 69, - 2, - 64, + 28, + 2 + ] + }, + { + "55262162": [ 32, 37, 60, - 19, + 2, 128, 64, - 38, - 115, + 140, + 66, 99, - 212, - 38, - 113 + 4, + 88, + 64 ] }, { - "55262287": [ - 65, - 2, - 96, - 128, - 37, - 36, - 20 + "55262175": [ + 41, + 38, + 126 ] }, { - "55262295": [ - 46, + "55262179": [ + 18, 60, - 21, + 17, 128, 64, 38, - 181, - 99, - 176, + 49, + 98, + 128, 36, - 23 + 20 ] }, { - "55262307": [ - 16, - 36, - 30 + "55262191": [ + 5 ] }, { - "55262311": [ - 68, + "55262194": [ + 144, + 37, 60, - 2, + 21, + 128, + 64, + 38, + 181, + 98, + 112, + 60, + 23, + 128, + 17, + 54, + 247, + 165, + 208, + 60, + 22, 128, 64, - 36, - 66, - 100, - 72, - 175, - 162 - ] - }, - { - "55262323": [ - 56, 146, - 2 + 34 ] }, { - "55262329": [ + "55262221": [ 85, - 16, + 24, 33, 128, - 70 + 99 ] }, { - "55262336": [ - 44, - 194 + "55262228": [ + 16, + 96 ] }, { - "55262339": [ - 3, - 80, - 64 + "55262231": [ + 20, + 2, + 226, + 16, + 33, + 144, + 66 ] }, { - "55262343": [ - 9, - 38, - 16 + "55262239": [ + 188 ] }, { - "55262347": [ - 5, - 175, - 183 + "55262241": [ + 2, + 30 ] }, { - "55262351": [ - 24, - 175, - 183 - ] - }, - { - "55262355": [ - 20, - 175, - 190 - ] - }, - { - "55262359": [ - 16, - 2, - 128, - 56, - 37, - 143, - 165 - ] - }, - { - "55262367": [ - 56, - 12, - 16, - 20, - 214, - 2, - 64, - 32, - 37, - 38, - 16 - ] - }, - { - "55262379": [ - 5, - 22, - 48, - 255, - 241, - 38, - 148 + "55262245": [ + 3, + 30, + 3, + 40, + 99 ] }, { - "55262387": [ - 19, - 16 + "55262251": [ + 10, + 80, + 96 ] }, { - "55262390": [ + "55262255": [ 1, - 111, - 60, - 2, - 128, - 64, - 146, + 36, 2 ] }, { - "55262401": [ - 87, - 16, - 33, - 128, - 70 - ] - }, - { - "55262408": [ - 40, - 194 - ] - }, - { - "55262411": [ - 3, - 84, - 64 - ] - }, - { - "55262415": [ - 32, - 38, - 16 - ] - }, - { - "55262419": [ - 5, + "55262259": [ + 9, 36, - 198, - 255, - 253 + 3, + 48 ] }, { - "55262425": [ - 6, - 24, - 64 + "55262264": [ + 167, + 163 ] }, { - "55262429": [ - 102, - 24, - 33, - 39, - 194, - 99, - 192 + "55262267": [ + 32 ] }, { - "55262437": [ - 98, + "55262269": [ + 64, 24, - 33, - 144, - 98 + 37 ] }, { - "55262445": [ + "55262273": [ 2, 22 ] }, { - "55262448": [ - 144, - 100 - ] - }, - { - "55262451": [ - 2 - ] - }, - { - "55262453": [ + "55262277": [ + 2, + 22, + 3, 4, - 34 - ] - }, - { - "55262457": [ - 68, - 16, - 37, - 144, - 99 + 66 ] }, { - "55262463": [ + "55262283": [ 1 ] }, { - "55262465": [ - 3, - 28 - ] - }, - { - "55262469": [ - 67, - 16, + "55262286": [ + 24, 37, - 52, - 66 + 36, + 99 ] }, { - "55262475": [ - 255, - 142, + "55262291": [ + 48, + 163, 163 ] }, { - "55262479": [ - 4, - 36, - 100 - ] - }, - { - "55262483": [ - 8, - 174, + "55262295": [ + 32, + 2, + 128, + 48, + 37, + 2, + 96, + 40, + 37, + 12, + 16, + 23, + 244, + 39, 164 ] }, { - "55262487": [ - 4, - 60, - 4, - 250 - ] - }, - { - "55262492": [ - 172, - 100 + "55262311": [ + 32, + 38, + 82 ] }, { - "55262496": [ - 172, - 98 + "55262315": [ + 1, + 38, + 49 ] }, { - "55262499": [ + "55262319": [ + 10, + 142, + 194, + 99, 4, - 36, - 2 - ] - }, - { - "55262503": [ + 2, + 66, 16, - 175, - 162 + 42, + 20, + 64, + 255, + 227, + 38, + 148 ] }, { - "55262507": [ - 24, - 175, - 162 + "55262335": [ + 18, + 38, + 126 ] }, { - "55262511": [ - 20, + "55262339": [ + 18, 36, - 2 + 7 ] }, { - "55262515": [ - 68, - 175, - 162 + "55262343": [ + 1 ] }, { - "55262519": [ - 16, - 2, - 128, - 56, + "55262346": [ + 48, 37, 60, 5, @@ -15145,408 +14825,385 @@ 64, 36, 165, - 100, - 56, + 97, + 220, 12, 16, 20, - 214, - 2, - 64, - 32, - 37, - 38, - 16 + 28, + 2 ] }, { - "55262543": [ - 5, - 22, - 48, - 255, - 218, - 38, - 148 - ] - }, - { - "55262551": [ - 19, - 16 - ] - }, - { - "55262554": [ - 1, - 44, + "55262362": [ + 32, + 37, 60, - 20, + 2, 128, 64, - 36, - 7 + 140, + 66, + 99, + 4, + 88, + 64 ] }, { - "55262563": [ - 87, - 50, - 6, - 255, - 255, - 2, - 160, + "55262375": [ 40, - 37, - 12, - 16, - 21, - 236, - 2, - 128, - 32, - 37, - 38, - 16 - ] - }, - { - "55262583": [ - 19, - 22, - 23, - 255, - 249, 38, - 181 - ] - }, - { - "55262591": [ - 5, - 36, - 7 + 126 ] }, { - "55262595": [ - 106, + "55262379": [ 36, - 6 - ] - }, - { - "55262599": [ - 27, 60, - 5, + 18, 128, 64, - 36, - 165, - 100, - 228, - 12, - 16, - 21, - 236, - 2, - 128, - 32, - 37, - 2, - 96, - 168, - 37, - 36, - 16 + 38, + 82, + 98, + 128 ] }, { - "55262623": [ - 50, + "55262390": [ + 136, + 37, 60, - 30, + 20, 128, 64, - 39, - 222, - 99, - 160, + 38, + 148, + 98, + 96, + 60, + 22, + 128, + 17, 60, 23, 128, 64, 38, 247, - 100, + 97, 220, 60, - 2, + 21, 128, 64, - 36, - 66, - 100, - 224, - 175, - 162 - ] - }, - { - "55262651": [ - 56, 146, - 162 + 66 ] }, { - "55262657": [ - 94, - 16, + "55262421": [ + 84, + 24, 33, - 144, - 66 + 128, + 99 ] }, { - "55262664": [ - 20, - 64 + "55262428": [ + 80, + 96 ] }, { - "55262667": [ - 2, - 2, - 224, - 40, - 37, - 143, - 165 + "55262431": [ + 21, + 38, + 49 ] }, { - "55262675": [ - 56, - 36, - 7 + "55262435": [ + 1, + 54, + 195, + 165, + 208 ] }, { - "55262679": [ - 106, - 2 + "55262441": [ + 98, + 16, + 33, + 144, + 66 ] }, { - "55262682": [ + "55262447": [ + 168, 48, - 37, - 12, - 16, - 21, - 236, - 2, - 128, - 32, - 37, - 38, - 181 + 66 ] }, { - "55262695": [ - 5, - 38, - 16 + "55262451": [ + 1, + 80, + 64 ] }, { - "55262699": [ - 19, - 22, - 53, - 255, - 243, - 50, - 16, - 255, - 255, - 36, - 7 + "55262455": [ + 15, + 38, + 49 ] }, { - "55262711": [ + "55262459": [ 1, 36, - 6 - ] - }, - { - "55262715": [ - 3, - 60, - 16, - 128, - 64, - 38, - 5, - 100, - 40, - 12, - 16, - 20, - 69, - 2, - 64, - 32, - 37, - 36, 2 ] }, { - "55262735": [ + "55262463": [ 16, 175, 162 ] }, { - "55262739": [ + "55262467": [ 24, 175, 162 ] }, { - "55262743": [ - 20, - 36, - 2 + "55262471": [ + 20 ] }, { - "55262747": [ - 125, - 175, - 162 + "55262473": [ + 17, + 16, + 192 + ] + }, + { + "55262477": [ + 81, + 16, + 33 ] }, { - "55262751": [ + "55262481": [ + 2, 16, + 64, 36, - 7 + 66 + ] + }, + { + "55262487": [ + 4, + 175, + 162 ] }, { - "55262755": [ - 27 + "55262491": [ + 16, + 3, + 192, + 56, + 37 ] }, { - "55262758": [ + "55262498": [ 48, 37, - 38, - 5, - 100, + 2, + 224, 40, + 37, 12, 16, 20, - 214, - 2, - 64, + 175, + 2 + ] + }, + { + "55262510": [ 32, 37, + 38, + 49 + ] + }, + { + "55262515": [ + 1, + 142, + 162, + 99, + 4, 2, - 96, - 168, - 37, + 34, + 16, + 42, + 20, + 64, + 255, + 228, + 38, + 82 + ] + }, + { + "55262531": [ + 10, + 38, + 126 + ] + }, + { + "55262535": [ 36, - 17 + 36, + 7 ] }, { - "55262779": [ - 50 + "55262539": [ + 1, + 36, + 6 ] }, { - "55262782": [ + "55262543": [ + 2, + 60, + 5, 128, + 64, + 36, + 165, + 97, + 220, + 12, + 16, + 20, + 28, + 2 + ] + }, + { + "55262558": [ + 32, 37, 60, - 23, + 2, 128, 64, - 38, - 247, + 140, + 66, 99, - 212, - 60, - 30, - 128, - 17, - 55, - 222, - 165, - 208 + 4, + 24, + 64 ] }, { - "55262801": [ - 16, - 16, + "55262571": [ + 39, + 60, + 18, + 128, + 64, + 38, + 82, + 98, 128 ] }, { - "55262805": [ - 80, - 16, - 33 + "55262582": [ + 136, + 37, + 60, + 20, + 128, + 64, + 38, + 148, + 98, + 64, + 60, + 22, + 128, + 17, + 60, + 23, + 128, + 64, + 38, + 247, + 97, + 220, + 60, + 21, + 128, + 64, + 146, + 66 ] }, { - "55262809": [ - 87, - 16, + "55262613": [ + 84, + 24, 33, 128, - 66 + 99 ] }, { - "55262815": [ - 4, - 4, - 67 + "55262620": [ + 80, + 96 ] }, { - "55262819": [ - 24, + "55262623": [ + 22, 38, - 16 + 49 ] }, { - "55262823": [ + "55262627": [ 1, - 146, - 162 + 54, + 195, + 165, + 208 ] }, { - "55262828": [ - 3, - 194, + "55262633": [ + 98, 16, 33, 144, @@ -15554,263 +15211,215 @@ ] }, { - "55262835": [ - 188 + "55262639": [ + 168 ] }, { - "55262837": [ + "55262641": [ 2, - 30 + 16, + 130, + 48, + 66 ] }, { - "55262841": [ - 3, - 30, - 3, - 40, - 99 + "55262647": [ + 1, + 80, + 64 ] }, { - "55262847": [ - 10, - 80, - 96 + "55262651": [ + 15, + 38, + 49 ] }, { - "55262851": [ + "55262655": [ 1, 36, 2 ] }, { - "55262855": [ - 9, - 36, - 3, - 48 + "55262659": [ + 16, + 175, + 162 ] }, { - "55262860": [ - 167, - 163 + "55262663": [ + 24, + 175, + 162 ] }, { - "55262863": [ - 32 + "55262667": [ + 20 ] }, { - "55262865": [ - 64, - 24, - 37 + "55262669": [ + 17, + 16, + 192 ] }, { - "55262869": [ - 2, - 22 + "55262673": [ + 81, + 16, + 33 ] }, { - "55262873": [ + "55262677": [ 2, - 22, - 3, - 4, + 16, + 64, + 36, 66 ] }, { - "55262879": [ - 1 + "55262683": [ + 4, + 175, + 162 ] }, { - "55262882": [ - 24, - 37, - 36, - 99 + "55262687": [ + 16, + 3, + 192, + 56, + 37 ] }, { - "55262887": [ + "55262694": [ 48, - 163, - 163 - ] - }, - { - "55262891": [ - 32, - 36, - 7 + 37, + 2, + 224, + 40, + 37, + 12, + 16, + 20, + 175, + 2 ] }, { - "55262895": [ - 125, - 2, + "55262706": [ 32, - 48, 37, - 39, - 165 + 38, + 49 ] }, { - "55262903": [ - 32, - 12, - 16, - 21, - 236, - 2, - 128, - 32, - 37, - 38, - 16 - ] - }, - { - "55262915": [ + "55262711": [ 1, + 142, + 162, + 99, + 4, + 2, + 34, + 16, + 42, + 20, + 64, + 255, + 227, 38, - 181 + 82 ] }, { - "55262919": [ - 5, + "55262727": [ + 10, 38, - 49 - ] - }, - { - "55262923": [ - 19, - 36, - 2 + 126 ] }, { - "55262927": [ - 13, - 22, - 2, - 255, - 223, - 50, - 49, - 255, - 255, + "55262731": [ + 54, 36, 7 ] }, { - "55262939": [ - 1 + "55262735": [ + 1, + 36, + 6 ] }, { - "55262942": [ - 48, - 37, + "55262739": [ + 1, 60, - 16, + 5, 128, 64, - 38, - 5, - 100, - 40, + 36, + 165, + 97, + 220, 12, 16, 20, - 69, - 2, - 64, - 32, - 37, - 36, + 28, 2 ] }, { - "55262963": [ - 16, - 175, - 162 - ] - }, - { - "55262967": [ + "55262754": [ + 32, + 37, + 60, + 2, + 128, + 64, + 140, + 66, + 99, + 4, 24, - 175, - 162 - ] - }, - { - "55262971": [ - 20, - 36, - 2 - ] - }, - { - "55262975": [ - 144, - 175, - 162 - ] - }, - { - "55262979": [ - 16, - 36, - 7 - ] - }, - { - "55262983": [ - 27 + 64 ] }, { - "55262986": [ - 48, - 37, + "55262767": [ + 67, + 60, + 18, + 128, + 64, 38, - 5, - 100, - 40, - 12, - 16, - 20, - 214, + 82, + 98, + 128, 2, 64, - 32, - 37, - 2, - 96, - 136, + 160, 37 ] }, { - "55263006": [ - 128, + "55262782": [ + 136, 37, 60, 21, @@ -15818,81 +15427,69 @@ 64, 38, 181, - 99, - 212, + 98, + 64, 60, 23, 128, 17, - 54, - 247, - 165, - 208, 60, - 30, + 2, 128, 64, - 39, - 222, - 100, - 40 - ] - }, - { - "55263033": [ - 16, - 16, - 128 + 36, + 66, + 97, + 220, + 175, + 162 ] }, { - "55263037": [ - 80, - 16, - 33 + "55262807": [ + 56, + 60, + 22, + 128, + 64, + 146, + 130 ] }, { - "55263041": [ + "55262817": [ 85, - 16, + 24, 33, - 144, - 66 - ] - }, - { - "55263047": [ - 4, - 48, - 66 + 128, + 99 ] }, { - "55263051": [ - 64, + "55262824": [ 80, - 64 + 96 ] }, { - "55263055": [ + "55262827": [ 22, 38, - 16 + 49 ] }, { - "55263059": [ + "55262831": [ 1, - 146, - 34 + 54, + 227, + 165, + 208 ] }, { - "55263064": [ - 2, - 226, + "55262837": [ + 98, 16, 33, 144, @@ -15900,285 +15497,208 @@ ] }, { - "55263071": [ - 168, + "55262843": [ + 168 + ] + }, + { + "55262845": [ + 2, + 16, + 66, 48, 66 ] }, { - "55263075": [ + "55262851": [ 1, 80, 64 ] }, { - "55263079": [ - 16, + "55262855": [ + 15, 38, - 16 - ] - }, - { - "55263083": [ - 1 - ] - }, - { - "55263085": [ - 16, - 56, - 128 - ] - }, - { - "55263089": [ - 240, - 56, - 33 - ] - }, - { - "55263093": [ - 7, - 56, - 128 + 49 ] }, { - "55263097": [ - 240, - 56, - 35, + "55262859": [ + 1, 36, 2 ] }, { - "55263103": [ + "55262863": [ 16, 175, 162 ] }, { - "55263107": [ + "55262867": [ 24, 175, 162 ] }, { - "55263111": [ - 20, - 36, - 2 - ] - }, - { - "55263115": [ - 144, - 175, - 162 + "55262871": [ + 20 ] }, { - "55263119": [ + "55262873": [ + 17, 16, - 36, - 231 + 192 ] }, { - "55263123": [ - 46 + "55262877": [ + 81, + 16, + 33 ] }, { - "55263126": [ - 48, - 37, - 3, - 192, - 40, - 37, - 12, - 16, - 20, - 214, + "55262881": [ 2, + 16, 64, - 32, - 37, - 38, - 16 - ] - }, - { - "55263143": [ - 1, 36, - 2 + 66 ] }, { - "55263147": [ - 13, - 22, - 2, - 255, - 226, - 38, - 49 + "55262887": [ + 4, + 175, + 162 ] }, { - "55263155": [ - 5, - 36, - 7 + "55262891": [ + 16, + 3, + 192, + 56, + 37 ] }, { - "55263159": [ - 1, - 36, - 6 + "55262898": [ + 48, + 37, + 143, + 165 ] }, { - "55263163": [ - 2, - 60, - 16, - 128, - 64, - 38, - 5, - 100, - 40, + "55262903": [ + 56, 12, 16, 20, - 69, - 2, - 64, - 32, - 37, - 36, + 175, 2 ] }, { - "55263183": [ - 16, - 175, - 162 + "55262910": [ + 32, + 37, + 38, + 49 ] }, { - "55263187": [ + "55262915": [ + 1, + 142, + 194, + 99, + 4, + 2, + 34, 24, - 175, - 162 + 42, + 20, + 96, + 255, + 227, + 38, + 148 ] }, { - "55263191": [ - 20, - 36, - 2 + "55262931": [ + 10, + 24, + 64 ] }, { - "55263195": [ - 163, - 175, - 162 + "55262935": [ + 25, + 38, + 115 ] }, { - "55263199": [ - 16, + "55262939": [ + 72, 36, - 7 + 20 ] }, { - "55263203": [ - 27 + "55262943": [ + 5 ] }, { - "55263206": [ - 48, + "55262946": [ + 136, 37, + 60, + 22, + 128, + 64, 38, - 5, - 100, - 40, - 12, - 16, - 20, 214, - 2, - 64, - 32, - 37, - 2, - 96, - 136, - 37 - ] - }, - { - "55263226": [ - 128, - 37, + 98, + 12, 60, 21, 128, 64, 38, 181, - 99, - 212, - 60, - 23, - 128, - 17, - 54, - 247, - 165, - 208, + 97, + 192, 60, 30, 128, 64, 39, 222, - 100, - 40 - ] - }, - { - "55263253": [ - 16, - 16, - 128 - ] - }, - { - "55263257": [ - 80, - 16, - 33 + 97, + 196, + 60, + 23, + 128, + 64, + 146, + 66 ] }, { - "55263261": [ - 85, + "55262981": [ + 86, 16, 33, 144, @@ -16186,1766 +15706,1484 @@ ] }, { - "55263267": [ - 4, - 48, - 66 - ] - }, - { - "55263271": [ - 32, - 80, + "55262988": [ + 20, 64 ] }, { - "55263275": [ + "55262991": [ + 2, + 2, + 160, + 32, + 37, + 3, + 192, + 32, + 37, + 2, + 128, + 48, + 37, + 12, + 16, 23, + 244, + 2, + 96, + 40, + 37, 38, - 16 + 49 ] }, { - "55263279": [ + "55263015": [ 1, - 146, - 34 + 38, + 82 ] }, { - "55263284": [ - 2, + "55263019": [ + 10, + 142, 226, + 99, + 4, + 2, + 34, 16, - 33, - 144, - 66 - ] - }, - { - "55263291": [ - 168 + 42, + 20, + 64, + 255, + 242, + 38, + 148 ] }, { - "55263293": [ - 2, + "55263035": [ + 18, + 12, 16, - 130, - 48, - 66 + 24, + 30, + 2 ] }, { - "55263299": [ - 1, - 80, - 64 + "55263042": [ + 32, + 37, + 142, + 2 ] }, { - "55263303": [ - 16, - 38, - 16 + "55263047": [ + 8, + 36, + 67 ] }, { - "55263307": [ - 1 + "55263051": [ + 8, + 174, + 3 ] }, { - "55263309": [ - 16, - 56, - 128 + "55263055": [ + 8, + 60, + 3, + 233 ] }, { - "55263313": [ - 240, - 56, - 33 + "55263060": [ + 172, + 67 ] }, { - "55263317": [ - 7, - 56, - 128 + "55263064": [ + 172, + 64 ] }, { - "55263321": [ - 240, - 56, - 35, - 36, + "55263067": [ + 4, + 142, 2 ] }, { - "55263327": [ - 16, - 175, - 162 + "55263071": [ + 8, + 36, + 67 ] }, { - "55263331": [ - 24, - 175, - 162 + "55263075": [ + 8, + 174, + 3 ] }, { - "55263335": [ - 20, - 36, - 2 + "55263079": [ + 8, + 60, + 3, + 223 ] }, { - "55263339": [ - 163, - 175, - 162 + "55263084": [ + 172, + 67 ] }, { - "55263343": [ - 16, - 36, - 231 + "55263088": [ + 172, + 64 ] }, { - "55263347": [ - 46 + "55263091": [ + 4, + 143, + 191 ] }, { - "55263350": [ - 48, - 37, - 3, - 192, - 40, - 37, - 12, - 16, - 20, - 214, - 2, - 64, - 32, - 37, - 38, - 16 + "55263095": [ + 100, + 143, + 190 ] }, { - "55263367": [ - 1, - 36, - 2 + "55263099": [ + 96, + 143, + 183 ] }, { - "55263371": [ - 13, - 22, - 2, - 255, - 225, - 38, - 49 + "55263103": [ + 92, + 143, + 182 ] }, { - "55263379": [ - 5, - 36, - 7 + "55263107": [ + 88, + 143, + 181 ] }, { - "55263383": [ - 1, - 36, - 6 + "55263111": [ + 84, + 143, + 180 ] }, { - "55263387": [ - 1, - 60, - 16, - 128, - 64, - 38, - 5, - 100, - 40, - 12, - 16, - 20, - 69, - 2, - 64, - 32, - 37, - 36, - 2 + "55263115": [ + 80, + 143, + 179 ] }, { - "55263407": [ - 16, - 175, - 162 + "55263119": [ + 76, + 143, + 178 ] }, { - "55263411": [ - 24, - 175, - 162 + "55263123": [ + 72, + 143, + 177 ] }, { - "55263415": [ - 20, - 36, - 2 + "55263127": [ + 68, + 143, + 176 ] }, { - "55263419": [ - 182, - 175, - 162 + "55263131": [ + 64, + 3, + 224 ] }, { - "55263423": [ - 16, - 36, - 7 + "55263135": [ + 8, + 39, + 189 ] }, { - "55263427": [ - 27 + "55263139": [ + 104, + 39, + 189, + 255, + 232, + 175, + 191 ] }, { - "55263430": [ - 48, - 37, - 38, - 5, - 100, - 40, + "55263147": [ + 20, 12, 16, - 20, - 214, - 2, - 64, - 32, - 37 + 21, + 184, + 36, + 4, + 4 ] }, { - "55263446": [ - 128, - 37, + "55263156": [ 60, - 17, + 3, 128, 64, - 38, - 49, + 172, + 98, 99, - 212, - 60, - 21, - 128, - 17, - 54, - 181, - 165, - 208, + 16, 60, - 23, + 3, 128, 64, - 38, - 247, - 100, - 40 + 172, + 98, + 99, + 12, + 143, + 191 ] }, { - "55263473": [ - 16, - 16, - 128 - ] - }, - { - "55263477": [ - 80, - 16, - 33 + "55263175": [ + 20, + 3, + 224 ] }, { - "55263481": [ - 81, - 16, - 33, - 144, - 66 + "55263179": [ + 8, + 39, + 189 ] }, { - "55263487": [ - 4, - 48, - 66 + "55263183": [ + 24, + 128, + 130 ] }, { - "55263491": [ + "55263188": [ 16, - 80, 64 ] }, { - "55263495": [ - 23, + "55263191": [ 38, - 16 + 36, + 135 ] }, { - "55263499": [ + "55263195": [ 1, - 146, - 98 + 60, + 3, + 128, + 64, + 140, + 104, + 99, + 16, + 37, + 8, + 4 ] }, { - "55263504": [ - 2, - 162, - 16, - 33, - 144, - 66 + "55263208": [ + 60, + 3, + 128, + 64, + 140, + 99, + 99, + 12 ] }, { - "55263511": [ - 168 + "55263217": [ + 104, + 32, + 43, + 16, + 128 ] }, { - "55263513": [ - 2, - 16, - 66, - 48, - 66 + "55263223": [ + 30, + 60, + 10, + 255 ] }, { - "55263519": [ - 1, - 80, - 64 + "55263228": [ + 37, + 74, + 15, + 255, + 48, + 198, + 15, + 255, + 36, + 11, + 240 ] }, { - "55263523": [ - 16, - 38, + "55263240": [ + 60, + 9, + 128, + 64, 16 ] }, { - "55263527": [ - 1 + "55263247": [ + 7, + 37, + 41, + 97, + 204 ] }, { - "55263529": [ - 16, - 56, + "55263253": [ + 104, + 32, + 43, + 84, 128 ] }, { - "55263533": [ - 240, - 56, - 33 + "55263259": [ + 5, + 160, + 98 ] }, { - "55263537": [ - 7, - 56, - 128 + "55263264": [ + 60, + 2, + 128, + 64, + 3, + 224 ] }, { - "55263541": [ - 240, - 56, - 35, - 36, - 2 + "55263271": [ + 8, + 172, + 67, + 99, + 12, + 160, + 98 ] }, { - "55263547": [ - 16, - 175, - 162 + "55263280": [ + 48, + 162, + 15, + 255 ] }, { - "55263551": [ - 24, - 175, - 162 + "55263285": [ + 2, + 35 ] }, { - "55263555": [ - 20, - 36, - 2 + "55263288": [ + 140, + 98 ] }, { - "55263559": [ - 182, - 175, - 162 + "55263293": [ + 74, + 16, + 36 ] }, { - "55263563": [ + "55263297": [ + 68, 16, - 36, - 231 + 37 ] }, { - "55263567": [ - 46 + "55263301": [ + 75, + 16, + 36 ] }, { - "55263570": [ - 48, - 37, - 2, - 224, - 40, - 37, - 12, + "55263305": [ + 70, 16, - 20, - 214, - 2, - 64, - 32, 37, - 38, - 16 + 172, + 98 ] }, { - "55263587": [ - 1, - 36, - 2 + "55263312": [ + 149, + 34 ] }, { - "55263591": [ - 13, - 22, - 2, - 255, - 225, - 38, - 115 + "55263315": [ + 4 ] }, { - "55263599": [ - 5, - 60, - 17, + "55263317": [ + 162, + 40, + 33, + 36, + 231 + ] + }, + { + "55263323": [ + 1, 128, + 226, + 255, + 255, + 20, 64, - 38, - 49, - 100, - 112 + 255, + 236, + 36, + 99 ] }, { - "55263609": [ - 22, - 152, - 64, + "55263335": [ + 4, + 60, 2, - 118, 128, - 33 + 64, + 172, + 67, + 99, + 12, + 3, + 224 ] }, { - "55263617": [ - 16, - 129 + "55263347": [ + 8 ] }, { - "55263620": [ - 2, - 48, - 128, - 33, - 142, - 2 + "55263352": [ + 39, + 189, + 255, + 176, + 175, + 191 ] }, { - "55263627": [ - 4, - 36, - 67 + "55263359": [ + 76, + 175, + 190 ] }, { - "55263631": [ - 8, - 174, - 3 + "55263363": [ + 72, + 175, + 183 ] }, { - "55263635": [ - 4, - 60, - 3, - 231 + "55263367": [ + 68, + 175, + 182 ] }, { - "55263640": [ - 172, - 67 + "55263371": [ + 64, + 175, + 181 ] }, { - "55263644": [ - 172, - 64 + "55263375": [ + 60, + 175, + 180 ] }, { - "55263647": [ - 4, - 2, - 128, - 40, - 37, - 12, - 16, - 22, - 63, - 2, - 64, - 32, - 37, - 142, - 2 + "55263379": [ + 56, + 175, + 179 ] }, { - "55263663": [ - 4, - 36, - 67 + "55263383": [ + 52, + 175, + 178 ] }, { - "55263667": [ - 8, - 174, - 3 + "55263387": [ + 48, + 175, + 177 ] }, { - "55263671": [ - 4, - 60, - 3, - 233 + "55263391": [ + 44, + 175, + 176 ] }, { - "55263676": [ - 172, - 67 + "55263395": [ + 40 ] }, { - "55263680": [ - 172, - 64 + "55263397": [ + 128, + 168, + 37 ] }, { - "55263683": [ - 4, - 142, - 2 + "55263402": [ + 176, + 37 ] }, { - "55263687": [ - 4, + "55263406": [ + 144, + 37, + 60, + 20, + 128, + 64, + 38, + 148, + 97, + 204, + 60, + 30, + 128, + 64, + 60, + 19, + 128, + 64, + 60, + 23, + 56, + 227, + 175, + 180 + ] + }, + { + "55263431": [ + 32, 36, - 67 + 7 ] }, { - "55263691": [ - 8, - 174, - 3 + "55263435": [ + 18, + 2, + 192, + 48, + 37, + 2, + 128, + 40, + 37, + 12, + 16, + 20, + 28, + 2, + 160, + 32, + 37, + 143, + 197, + 99, + 16, + 16 ] }, { - "55263695": [ - 4, - 60, - 3, - 223 + "55263459": [ + 31, + 54, + 241, + 142, + 57, + 36, + 66, + 255, + 224 ] }, { - "55263700": [ - 172, - 67 + "55263469": [ + 81 ] }, { - "55263704": [ - 172, - 64 + "55263471": [ + 24 ] }, { - "55263707": [ - 4, - 143, - 191 + "55263474": [ + 24, + 16 ] }, { - "55263711": [ - 100, - 143, - 190 + "55263477": [ + 3, + 24, + 131 ] }, { - "55263715": [ - 96, - 143, - 183 + "55263481": [ + 2, + 39, + 195 ] }, { - "55263719": [ - 92, - 143, - 182 + "55263485": [ + 100, + 24, + 35, + 20, + 114 ] }, { - "55263723": [ - 88, - 143, - 181 + "55263491": [ + 22, + 36, + 176 ] }, { - "55263727": [ - 84, - 143, - 180 + "55263495": [ + 4, + 140, + 167 ] }, { - "55263731": [ - 80, - 143, - 179 + "55263501": [ + 7, + 59, + 2 ] }, { - "55263735": [ - 76, - 143, - 178 + "55263505": [ + 81 ] }, { - "55263739": [ - 72, - 143, - 177 + "55263507": [ + 24 ] }, { - "55263743": [ - 68, - 143, - 176 + "55263510": [ + 48, + 16 ] }, { - "55263747": [ - 64, - 3, - 224 + "55263513": [ + 6, + 48, + 131 ] }, { - "55263751": [ - 8, - 39, - 189 + "55263517": [ + 196, + 48, + 35 ] }, { - "55263755": [ - 104, - 38, - 148, - 100, - 112 + "55263521": [ + 6, + 24, + 192 ] }, { - "55263761": [ - 22, - 16, - 64 - ] - }, - { - "55263765": [ - 86, - 16, + "55263525": [ + 102, + 48, 33 ] }, { - "55263769": [ - 2, - 17 - ] - }, - { - "55263772": [ - 2, - 130, - 16, - 33, - 140, - 67 + "55263529": [ + 6, + 48, + 64, + 150, + 131 ] }, { - "55263779": [ - 4, - 36, - 100 + "55263535": [ + 6, + 175, + 163 ] }, { - "55263783": [ - 8, - 172, - 68 + "55263539": [ + 24, + 150, + 131 ] }, { - "55263787": [ - 4, - 60, + "55263543": [ 4, - 231 - ] - }, - { - "55263792": [ - 172, - 100 - ] - }, - { - "55263796": [ - 172, - 96 + 175, + 163 ] }, { - "55263799": [ - 4, + "55263547": [ + 20, 140, - 67 - ] - }, - { - "55263803": [ - 4, - 36, - 100 - ] - }, - { - "55263807": [ - 8, - 172, - 68 - ] - }, - { - "55263811": [ - 4, - 60, - 2, - 250 - ] - }, - { - "55263816": [ - 172, - 98 - ] - }, - { - "55263820": [ - 36, - 2, - 255, - 255, - 172, - 98 - ] - }, - { - "55263827": [ - 4, - 143, - 162 - ] - }, - { - "55263831": [ - 60, - 36, - 66 + 163 ] }, { - "55263835": [ - 12, - 2, - 130, - 160, - 33, - 60, - 21, - 128, - 64, - 38, - 181, + "55263552": [ + 48, 99, - 213, - 36, - 16 - ] - }, - { - "55263851": [ - 46, - 16 - ] - }, - { - "55263854": [ - 254, - 188, - 36, - 23, - 1, - 37 - ] - }, - { - "55263861": [ - 22, - 24, - 64 - ] - }, - { - "55263865": [ - 118, - 24, - 33 - ] - }, - { - "55263869": [ - 3, - 25 - ] - }, - { - "55263872": [ - 36, - 66, - 100, - 112 + 15, + 255, + 175, + 163 ] }, { - "55263877": [ - 67, + "55263559": [ 16, - 33, - 140, - 67 - ] - }, - { - "55263883": [ - 4, - 36, - 100 - ] - }, - { - "55263887": [ - 8, - 172, - 68 - ] - }, - { - "55263891": [ - 4, - 60, - 2, - 231 - ] - }, - { - "55263896": [ - 172, - 98 - ] - }, - { - "55263900": [ - 172, - 96 - ] - }, - { - "55263903": [ - 4, - 60, - 5, - 128, - 64, - 36, - 165, - 100, - 56, - 148, - 167 + 48, + 231, + 15, + 255 ] }, { - "55263915": [ - 8 + "55263565": [ + 70, + 48, + 35, + 143, + 165 ] }, { - "55263918": [ - 48, - 37, + "55263571": [ + 32, 12, 16, 20, - 69, + 175, 2, - 64, + 160, 32, 37, - 2, - 96, - 128, - 37, - 36, - 20 + 2 ] }, { - "55263935": [ - 46, - 60, - 23, - 128, - 64, - 38, - 247, + "55263582": [ + 40, + 37, + 142, + 98, 99, - 176, - 60, - 30, - 128, - 64, - 60, - 21, - 128, - 64, - 38, - 181, - 100, - 112 - ] - }, - { - "55263957": [ - 22, - 16, - 64 - ] - }, - { - "55263961": [ - 86, - 16, - 33 - ] - }, - { - "55263965": [ - 2, - 17 - ] - }, - { - "55263968": [ - 16 + 12 ] }, { - "55263970": [ - 254, - 118, - 2, + "55263589": [ 162, - 168, - 33, - 39, - 189, + 16, + 43, + 84, + 64, 255, - 224, - 175, - 191 - ] - }, - { - "55263983": [ - 28, - 175, - 178 - ] - }, - { - "55263987": [ - 24, - 175, - 177 - ] - }, - { - "55263991": [ - 20, - 175, - 176 - ] - }, - { - "55263995": [ - 16 - ] - }, - { - "55263997": [ - 128, - 136, - 37 - ] - }, - { - "55264001": [ - 160, - 128, - 37, - 60, - 2, + 223, 128, - 28, - 52, - 66, - 132, - 160, - 60, - 3 + 162 ] }, { - "55264015": [ - 1 + "55263600": [ + 38, + 82 ] }, { - "55264017": [ - 67, - 16, - 33, - 148, - 67, - 9, - 52, + "55263603": [ + 1, 36, 2 ] }, { - "55264027": [ + "55263607": [ 6, - 20, - 98 - ] - }, - { - "55264031": [ - 21 - ] - }, - { - "55264033": [ - 192, - 144, - 37, - 60, - 2, - 128, - 28, - 52, - 66, - 132, - 160, - 60, - 3 - ] - }, - { - "55264047": [ - 1 - ] - }, - { - "55264049": [ - 67, - 16, - 33, - 148, + 22, 66, - 9, - 72, - 84, - 64 - ] - }, - { - "55264059": [ - 15, - 174, - 50 + 255, + 211, + 38, + 214 ] }, { - "55264064": [ + "55263615": [ + 18, 60, 2, 128, - 28, - 52, - 66, - 132, - 160 - ] - }, - { - "55264073": [ + 64, + 140, 67, + 99, 16, - 33, - 148, - 66, - 9, - 68, - 84, - 64 - ] - }, - { - "55264083": [ - 9, - 174, - 50 - ] - }, - { - "55264088": [ 60, 2, 128, - 28, - 52, - 66, - 132, - 160, - 132, - 66 - ] - }, - { - "55264099": [ - 20, - 4, - 67 - ] - }, - { - "55264103": [ - 4, - 174, - 50 + 64, + 172, + 67, + 99, + 12, + 143, + 191 ] }, { - "55264108": [ - 12, - 16, - 22, - 109 + "55263635": [ + 76, + 143, + 190 ] }, { - "55264116": [ - 174, - 50 + "55263639": [ + 72, + 143, + 183 ] }, { - "55264120": [ - 174, - 48 + "55263643": [ + 68, + 143, + 182 ] }, { - "55264123": [ - 4, - 174, - 48 + "55263647": [ + 64, + 143, + 181 ] }, { - "55264127": [ - 8, - 2, - 18, - 128, - 33, - 174, - 48 + "55263651": [ + 60, + 143, + 180 ] }, { - "55264135": [ - 12, + "55263655": [ + 56, 143, - 191 + 179 ] }, { - "55264139": [ - 28, + "55263659": [ + 52, 143, 178 ] }, { - "55264143": [ - 24, + "55263663": [ + 48, 143, 177 ] }, { - "55264147": [ - 20, + "55263667": [ + 44, 143, 176 ] }, { - "55264151": [ - 16, + "55263671": [ + 40, 3, 224 ] }, { - "55264155": [ + "55263675": [ 8, 39, 189 ] }, { - "55264159": [ - 32, - 1 + "55263679": [ + 80, + 77, + 81 ] }, { - "55264163": [ - 1 + "55263684": [ + 78, + 111, + 114, + 109, + 97, + 108 ] }, { - "55264165": [ - 1, - 1 + "55263697": [ + 8 ] }, { - "55264168": [ - 1, - 1 + "55263699": [ + 14 ] }, { - "55264171": [ + "55263701": [ + 95, + 3, 1, 1 ] }, { - "55264176": [ - 4, - 1, - 7, - 5 + "55263713": [ + 24 ] }, { - "55264181": [ - 8, - 6, - 2, - 255, - 255, - 255, - 255, - 255, - 255 + "55263715": [ + 24 ] }, { - "55264192": [ - 17, - 194, - 45, - 212, - 67, - 34, - 8, - 84, - 206, - 209, - 117, - 26, - 169, - 58, - 234, - 164, - 171, - 33 + "55263717": [ + 4 ] }, { - "55264213": [ - 68, - 101 + "55263719": [ + 3, + 4 ] }, { - "55264216": [ - 48, - 1, - 68, - 67 + "55263729": [ + 16 ] }, { - "55264221": [ - 48, - 2, - 74, - 97 + "55263731": [ + 16 ] }, { - "55264226": [ - 48, + "55263733": [ + 6, 3, - 70, - 111 + 1, + 1 ] }, { - "55264231": [ - 240, - 4, - 70, - 105 + "55263745": [ + 16 ] }, { - "55264236": [ - 240, - 5, - 87, - 97 + "55263747": [ + 16 ] }, { - "55264241": [ - 240, - 7, - 83, - 104 + "55263749": [ + 3 ] }, { - "55264246": [ - 240, - 6, - 83, - 112 + "55263751": [ + 3, + 4 ] }, { - "55264251": [ - 240, - 8, - 66, - 87 + "55263756": [ + 1 ] }, { - "55264256": [ - 176, - 9, - 73, - 67 + "55263759": [ + 1 ] }, { - "55264261": [ - 48, - 11, - 84, - 71 + "55263761": [ + 1, + 1 ] }, { - "55264266": [ - 128, - 12, - 71, - 70 + "55263764": [ + 1, + 1 ] }, { - "55264271": [ - 128, - 13, - 71, - 67 + "55263767": [ + 1, + 1 ] }, { - "55264276": [ - 192 + "55263772": [ + 4, + 1, + 7, + 5 ] }, { - "55264285": [ - 8 + "55263777": [ + 8, + 6, + 2, + 255, + 255, + 255, + 255, + 255, + 255 ] }, { - "55264287": [ - 14 + "55263788": [ + 17, + 194, + 45, + 212, + 67, + 34, + 8, + 84, + 206, + 209, + 117, + 26, + 169, + 58, + 234, + 164, + 171, + 33 ] }, { - "55264289": [ - 95, - 3, + "55263808": [ 1, - 1 + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 255 ] }, { - "55264301": [ - 24 + "55263834": [ + 255 ] }, { - "55264303": [ - 24 + "55263836": [ + 1 ] }, { - "55264305": [ - 4 + "55263843": [ + 1, + 1, + 1, + 1, + 1 ] }, { - "55264307": [ - 3, - 4 + "55263850": [ + 255 ] }, { - "55264317": [ - 16 + "55263853": [ + 1 ] }, { - "55264319": [ - 16 + "55263859": [ + 1, + 1, + 1, + 1, + 1, + 1 ] }, { - "55264321": [ - 6, - 3, + "55263866": [ + 255, + 1, 1, 1 ] }, { - "55264333": [ - 16 + "55263873": [ + 68, + 101, + 107, + 117 ] }, { - "55264335": [ - 16 + "55263882": [ + 1, + 68, + 111, + 100, + 111, + 110, + 103, + 111 ] }, { - "55264337": [ - 3 + "55263892": [ + 2, + 74, + 97, + 98, + 117 ] }, { - "55264339": [ + "55263902": [ 3, - 4 + 70, + 111, + 114, + 101, + 115, + 116 ] }, { - "55264349": [ - 132, - 96 + "55263912": [ + 4, + 70, + 105, + 114, + 101 ] }, { - "55264354": [ - 180 + "55263922": [ + 5, + 87, + 97, + 116, + 101, + 114 ] }, { - "55264360": [ - 1, - 160, - 32 + "55263932": [ + 7, + 83, + 104, + 97, + 100, + 111, + 119 ] }, { - "55264365": [ - 3, - 149, - 192 + "55263942": [ + 6, + 83, + 112, + 105, + 114, + 105, + 116 ] }, { - "55264476": [ - 89 + "55263952": [ + 8, + 66, + 111, + 116, + 87 ] }, { - "55264480": [ - 78 + "55263962": [ + 9, + 73, + 99, + 101 ] }, { - "55264484": [ - 77, - 81 + "55263972": [ + 11, + 71, + 84, + 71 ] }, { - "55264488": [ - 128 + "55263982": [ + 12, + 72, + 105, + 100, + 101, + 111, + 117, + 116 ] }, { - "55264490": [ + "55263992": [ 13, - 240 + 71, + 97, + 110, + 111, + 110 ] }, { - "55264565": [ + "55264007": [ + 13 + ] + }, + { + "55264101": [ 13, 176 ] }, { - "55264569": [ + "55264105": [ 13, 176 ] }, { - "55264573": [ + "55264109": [ 13, 176 ] }, { - "55264577": [ + "55264113": [ 12, 176 ] }, { - "55264581": [ + "55264117": [ 12, 176 ] }, { - "55264585": [ + "55264121": [ 12, 160 ] }, { - "55264593": [ + "55264129": [ 13, 176 ] }, { - "55264597": [ + "55264133": [ 13, 176 ] }, { - "55264621": [ + "55264157": [ 232, 172 ] }, { - "55264625": [ + "55264161": [ 232, 172 ] }, { - "55264629": [ + "55264165": [ 232, 172 ] }, { - "55264633": [ + "55264169": [ 232, 172 ] }, { - "55264673": [ + "55264209": [ 13, 119, 208 ] }, { - "55264677": [ + "55264213": [ 46, 58, 176 ] }, { - "55264681": [ + "55264217": [ 125, 12, 144, @@ -17956,20 +17194,20 @@ ] }, { - "55264689": [ + "55264225": [ 201, 110 ] }, { - "55264692": [ + "55264228": [ 2, 228, 172 ] }, { - "55264696": [ + "55264232": [ 239, 255, 255, @@ -17980,27 +17218,27 @@ ] }, { - "55264704": [ + "55264240": [ 12, 149, 224 ] }, { - "55264708": [ + "55264244": [ 14, 89, 192 ] }, { - "55264733": [ + "55264269": [ 7, 144 ] }, { - "55264736": [ + "55264272": [ 5, 206, 235, @@ -18015,21 +17253,21 @@ ] }, { - "55264748": [ + "55264284": [ 8, 236, 180 ] }, { - "55264753": [ + "55264289": [ 74, 221, 160 ] }, { - "55264757": [ + "55264293": [ 7, 151, 226, @@ -18044,32 +17282,32 @@ ] }, { - "55264769": [ + "55264305": [ 7, 144 ] }, { - "55264773": [ + "55264309": [ 7, 144 ] }, { - "55264788": [ + "55264324": [ 109, 234 ] }, { - "55264792": [ + "55264328": [ 201, 77, 96 ] }, { - "55264796": [ + "55264332": [ 201, 77, 96, @@ -18081,13 +17319,13 @@ ] }, { - "55264805": [ + "55264341": [ 140, 182 ] }, { - "55264808": [ + "55264344": [ 124, 164, 206, @@ -18099,46 +17337,46 @@ ] }, { - "55264817": [ + "55264353": [ 9, 195, 187 ] }, { - "55264821": [ + "55264357": [ 2, 206, 212 ] }, { - "55264844": [ + "55264380": [ 4, 206, 251 ] }, { - "55264848": [ + "55264384": [ 10, 213 ] }, { - "55264852": [ + "55264388": [ 8, 227 ] }, { - "55264856": [ + "55264392": [ 9, 236 ] }, { - "55264860": [ + "55264396": [ 126, 77, 176, @@ -18151,7 +17389,7 @@ ] }, { - "55264870": [ + "55264406": [ 142, 214, 126, @@ -18165,175 +17403,175 @@ ] }, { - "55264901": [ + "55264437": [ 12, 160 ] }, { - "55264905": [ + "55264441": [ 12, 160 ] }, { - "55264909": [ + "55264445": [ 12, 160 ] }, { - "55264913": [ + "55264449": [ 12, 160 ] }, { - "55264950": [ + "55264486": [ 201 ] }, { - "55264953": [ + "55264489": [ 7, 226 ] }, { - "55264957": [ + "55264493": [ 12, 176 ] }, { - "55264961": [ + "55264497": [ 14, 128 ] }, { - "55264965": [ + "55264501": [ 111, 48 ] }, { - "55264969": [ + "55264505": [ 142 ] }, { - "55264973": [ + "55264509": [ 142 ] }, { - "55264977": [ + "55264513": [ 111, 64 ] }, { - "55264981": [ + "55264517": [ 14, 128 ] }, { - "55264985": [ + "55264521": [ 12, 176 ] }, { - "55264989": [ + "55264525": [ 7, 226 ] }, { - "55264994": [ + "55264530": [ 201 ] }, { - "55265005": [ + "55264541": [ 187 ] }, { - "55265009": [ + "55264545": [ 94, 64 ] }, { - "55265013": [ + "55264549": [ 12, 160 ] }, { - "55265017": [ + "55264553": [ 10, 208 ] }, { - "55265021": [ + "55264557": [ 7, 225 ] }, { - "55265025": [ + "55264561": [ 6, 244 ] }, { - "55265029": [ + "55264565": [ 6, 244 ] }, { - "55265033": [ + "55264569": [ 7, 225 ] }, { - "55265037": [ + "55264573": [ 10, 208 ] }, { - "55265041": [ + "55264577": [ 12, 160 ] }, { - "55265045": [ + "55264581": [ 94, 64 ] }, { - "55265049": [ + "55264585": [ 187 ] }, { - "55265069": [ + "55264605": [ 10, 128 ] }, { - "55265072": [ + "55264608": [ 12, 138, 138, @@ -18353,31 +17591,31 @@ ] }, { - "55265089": [ + "55264625": [ 10, 128 ] }, { - "55265129": [ + "55264665": [ 12, 160 ] }, { - "55265133": [ + "55264669": [ 12, 160 ] }, { - "55265137": [ + "55264673": [ 12, 160 ] }, { - "55265140": [ + "55264676": [ 175, 255, 255, @@ -18385,137 +17623,137 @@ ] }, { - "55265145": [ + "55264681": [ 12, 160 ] }, { - "55265149": [ + "55264685": [ 12, 160 ] }, { - "55265153": [ + "55264689": [ 12, 160 ] }, { - "55265209": [ + "55264745": [ 13, 208 ] }, { - "55265213": [ + "55264749": [ 14, 192 ] }, { - "55265217": [ + "55264753": [ 79, 128 ] }, { - "55265221": [ + "55264757": [ 157 ] }, { - "55265257": [ + "55264793": [ 223, 251 ] }, { - "55265321": [ + "55264857": [ 14, 192 ] }, { - "55265325": [ + "55264861": [ 14, 192 ] }, { - "55265350": [ + "55264886": [ 11, 192 ] }, { - "55265354": [ + "55264890": [ 78, 96 ] }, { - "55265358": [ + "55264894": [ 188 ] }, { - "55265361": [ + "55264897": [ 3, 232 ] }, { - "55265365": [ + "55264901": [ 10, 208 ] }, { - "55265369": [ + "55264905": [ 30, 144 ] }, { - "55265373": [ + "55264909": [ 158, 32 ] }, { - "55265377": [ + "55264913": [ 218 ] }, { - "55265380": [ + "55264916": [ 7, 227 ] }, { - "55265384": [ + "55264920": [ 12, 176 ] }, { - "55265388": [ + "55264924": [ 110, 80 ] }, { - "55265404": [ + "55264940": [ 3, 206, 235 ] }, { - "55265408": [ + "55264944": [ 11, 213, 126, @@ -18550,56 +17788,56 @@ ] }, { - "55265460": [ + "55264996": [ 10, 255, 224 ] }, { - "55265465": [ + "55265001": [ 8, 224 ] }, { - "55265469": [ + "55265005": [ 8, 224 ] }, { - "55265473": [ + "55265009": [ 8, 224 ] }, { - "55265477": [ + "55265013": [ 8, 224 ] }, { - "55265481": [ + "55265017": [ 8, 224 ] }, { - "55265485": [ + "55265021": [ 8, 224 ] }, { - "55265489": [ + "55265025": [ 8, 224 ] }, { - "55265492": [ + "55265028": [ 8, 255, 255, @@ -18607,14 +17845,14 @@ ] }, { - "55265516": [ + "55265052": [ 8, 222, 234 ] }, { - "55265520": [ + "55265056": [ 12, 131, 126, @@ -18622,43 +17860,43 @@ ] }, { - "55265526": [ + "55265062": [ 12, 192 ] }, { - "55265530": [ + "55265066": [ 46, 160 ] }, { - "55265534": [ + "55265070": [ 189, 32 ] }, { - "55265537": [ + "55265073": [ 11, 212 ] }, { - "55265541": [ + "55265077": [ 189, 64 ] }, { - "55265544": [ + "55265080": [ 11, 212 ] }, { - "55265548": [ + "55265084": [ 47, 255, 255, @@ -18666,14 +17904,14 @@ ] }, { - "55265572": [ + "55265108": [ 7, 206, 234 ] }, { - "55265576": [ + "55265112": [ 12, 131, 126, @@ -18681,33 +17919,33 @@ ] }, { - "55265582": [ + "55265118": [ 12, 176 ] }, { - "55265585": [ + "55265121": [ 2, 126, 144 ] }, { - "55265589": [ + "55265125": [ 191, 251 ] }, { - "55265593": [ + "55265129": [ 2, 125, 160 ] }, { - "55265598": [ + "55265134": [ 10, 208, 92, @@ -18721,46 +17959,46 @@ ] }, { - "55265629": [ + "55265165": [ 2, 222 ] }, { - "55265633": [ + "55265169": [ 11, 222 ] }, { - "55265637": [ + "55265173": [ 125, 158 ] }, { - "55265640": [ + "55265176": [ 2, 215, 158 ] }, { - "55265644": [ + "55265180": [ 11, 176, 158 ] }, { - "55265648": [ + "55265184": [ 110, 64, 158 ] }, { - "55265652": [ + "55265188": [ 159, 255, 255, @@ -18768,17 +18006,17 @@ ] }, { - "55265658": [ + "55265194": [ 158 ] }, { - "55265662": [ + "55265198": [ 158 ] }, { - "55265684": [ + "55265220": [ 12, 255, 255, @@ -18788,33 +18026,33 @@ ] }, { - "55265692": [ + "55265228": [ 12, 160 ] }, { - "55265696": [ + "55265232": [ 12, 238, 234 ] }, { - "55265701": [ + "55265237": [ 3, 142, 144 ] }, { - "55265706": [ + "55265242": [ 11, 192 ] }, { - "55265710": [ + "55265246": [ 11, 192, 92, @@ -18827,7 +18065,7 @@ ] }, { - "55265741": [ + "55265277": [ 174, 236, 48, @@ -18840,7 +18078,7 @@ ] }, { - "55265752": [ + "55265288": [ 79, 174, 236, @@ -18868,7 +18106,7 @@ ] }, { - "55265796": [ + "55265332": [ 95, 255, 255, @@ -18876,53 +18114,53 @@ ] }, { - "55265802": [ + "55265338": [ 13, 160 ] }, { - "55265806": [ + "55265342": [ 126, 64 ] }, { - "55265810": [ + "55265346": [ 204 ] }, { - "55265813": [ + "55265349": [ 4, 232 ] }, { - "55265817": [ + "55265353": [ 10, 208 ] }, { - "55265821": [ + "55265357": [ 13, 160 ] }, { - "55265825": [ + "55265361": [ 142, 64 ] }, { - "55265829": [ + "55265365": [ 204 ] }, { - "55265852": [ + "55265388": [ 5, 206, 236, @@ -18962,14 +18200,14 @@ ] }, { - "55265908": [ + "55265444": [ 6, 222, 235 ] }, { - "55265912": [ + "55265448": [ 13, 179, 126, @@ -18993,7 +18231,7 @@ ] }, { - "55265934": [ + "55265470": [ 11, 192, 9, @@ -19006,72 +18244,72 @@ ] }, { - "55265973": [ + "55265509": [ 14, 192 ] }, { - "55265977": [ + "55265513": [ 14, 192 ] }, { - "55265993": [ + "55265529": [ 14, 192 ] }, { - "55265997": [ + "55265533": [ 14, 192 ] }, { - "55266029": [ + "55265565": [ 14, 192 ] }, { - "55266033": [ + "55265569": [ 14, 192 ] }, { - "55266049": [ + "55265585": [ 13, 208 ] }, { - "55266053": [ + "55265589": [ 14, 192 ] }, { - "55266057": [ + "55265593": [ 79, 128 ] }, { - "55266061": [ + "55265597": [ 157 ] }, { - "55266086": [ + "55265622": [ 41, 200 ] }, { - "55266089": [ + "55265625": [ 123, 237, 147, @@ -19081,27 +18319,27 @@ ] }, { - "55266096": [ + "55265632": [ 141, 218, 64 ] }, { - "55266101": [ + "55265637": [ 123, 236, 147 ] }, { - "55266106": [ + "55265642": [ 41, 200 ] }, { - "55266144": [ + "55265680": [ 175, 255, 255, @@ -19109,7 +18347,7 @@ ] }, { - "55266156": [ + "55265692": [ 175, 255, 255, @@ -19117,27 +18355,27 @@ ] }, { - "55266196": [ + "55265732": [ 172, 129 ] }, { - "55266200": [ + "55265736": [ 74, 222, 182 ] }, { - "55266205": [ + "55265741": [ 6, 173, 214 ] }, { - "55266209": [ + "55265745": [ 6, 173, 214, @@ -19147,13 +18385,13 @@ ] }, { - "55266216": [ + "55265752": [ 172, 129 ] }, { - "55266244": [ + "55265780": [ 4, 190, 236, @@ -19165,44 +18403,44 @@ ] }, { - "55266254": [ + "55265790": [ 29, 160 ] }, { - "55266257": [ + "55265793": [ 2, 205, 48 ] }, { - "55266261": [ + "55265797": [ 12, 193 ] }, { - "55266265": [ + "55265801": [ 14, 144 ] }, { - "55266273": [ + "55265809": [ 14, 144 ] }, { - "55266277": [ + "55265813": [ 14, 144 ] }, { - "55266300": [ + "55265836": [ 1, 174, 237, @@ -19216,7 +18454,7 @@ ] }, { - "55266311": [ + "55265847": [ 201, 186, 10, @@ -19231,7 +18469,7 @@ ] }, { - "55266323": [ + "55265859": [ 170, 215, 110, @@ -19246,46 +18484,46 @@ ] }, { - "55266336": [ + "55265872": [ 10, 216, 48 ] }, { - "55266341": [ + "55265877": [ 141, 238, 144 ] }, { - "55266357": [ + "55265893": [ 62, 208 ] }, { - "55266361": [ + "55265897": [ 157, 230 ] }, { - "55266365": [ + "55265901": [ 203, 203 ] }, { - "55266368": [ + "55265904": [ 3, 232, 173 ] }, { - "55266372": [ + "55265908": [ 8, 226, 111, @@ -19306,13 +18544,13 @@ ] }, { - "55266390": [ + "55265926": [ 1, 234 ] }, { - "55266412": [ + "55265948": [ 14, 255, 236, @@ -19352,7 +18590,7 @@ ] }, { - "55266469": [ + "55266005": [ 157, 237, 128, @@ -19365,31 +18603,31 @@ ] }, { - "55266480": [ + "55266016": [ 63, 144 ] }, { - "55266484": [ + "55266020": [ 95, 112 ] }, { - "55266488": [ + "55266024": [ 30, 144 ] }, { - "55266492": [ + "55266028": [ 13, 176 ] }, { - "55266496": [ + "55266032": [ 8, 233, 71, @@ -19397,21 +18635,21 @@ ] }, { - "55266501": [ + "55266037": [ 157, 237, 128 ] }, { - "55266524": [ + "55266060": [ 95, 254, 216 ] }, { - "55266528": [ + "55266064": [ 95, 101, 174, @@ -19446,7 +18684,7 @@ ] }, { - "55266580": [ + "55266116": [ 13, 255, 255, @@ -19456,19 +18694,19 @@ ] }, { - "55266588": [ + "55266124": [ 13, 176 ] }, { - "55266592": [ + "55266128": [ 13, 176 ] }, { - "55266596": [ + "55266132": [ 13, 255, 255, @@ -19478,19 +18716,19 @@ ] }, { - "55266604": [ + "55266140": [ 13, 176 ] }, { - "55266608": [ + "55266144": [ 13, 176 ] }, { - "55266612": [ + "55266148": [ 13, 255, 255, @@ -19498,7 +18736,7 @@ ] }, { - "55266636": [ + "55266172": [ 11, 255, 255, @@ -19508,19 +18746,19 @@ ] }, { - "55266644": [ + "55266180": [ 11, 208 ] }, { - "55266648": [ + "55266184": [ 11, 208 ] }, { - "55266652": [ + "55266188": [ 11, 255, 255, @@ -19530,25 +18768,25 @@ ] }, { - "55266660": [ + "55266196": [ 11, 208 ] }, { - "55266664": [ + "55266200": [ 11, 208 ] }, { - "55266668": [ + "55266204": [ 11, 208 ] }, { - "55266692": [ + "55266228": [ 1, 174, 237, @@ -19562,13 +18800,13 @@ ] }, { - "55266704": [ + "55266240": [ 143, 64 ] }, { - "55266708": [ + "55266244": [ 159, 16, 191, @@ -19592,7 +18830,7 @@ ] }, { - "55266748": [ + "55266284": [ 95, 96, 9, @@ -19632,7 +18870,7 @@ ] }, { - "55266804": [ + "55266340": [ 13, 255, 255, @@ -19640,49 +18878,49 @@ ] }, { - "55266809": [ + "55266345": [ 13, 176 ] }, { - "55266813": [ + "55266349": [ 13, 176 ] }, { - "55266817": [ + "55266353": [ 13, 176 ] }, { - "55266821": [ + "55266357": [ 13, 176 ] }, { - "55266825": [ + "55266361": [ 13, 176 ] }, { - "55266829": [ + "55266365": [ 13, 176 ] }, { - "55266833": [ + "55266369": [ 13, 176 ] }, { - "55266836": [ + "55266372": [ 13, 255, 255, @@ -19690,64 +18928,64 @@ ] }, { - "55266861": [ + "55266397": [ 207, 255, 64 ] }, { - "55266866": [ + "55266402": [ 127, 64 ] }, { - "55266870": [ + "55266406": [ 127, 64 ] }, { - "55266874": [ + "55266410": [ 127, 64 ] }, { - "55266878": [ + "55266414": [ 127, 64 ] }, { - "55266882": [ + "55266418": [ 127, 48, 117 ] }, { - "55266886": [ + "55266422": [ 158 ] }, { - "55266888": [ + "55266424": [ 141, 100, 220 ] }, { - "55266892": [ + "55266428": [ 43, 238, 197 ] }, { - "55266916": [ + "55266452": [ 95, 96, 9, @@ -19762,28 +19000,28 @@ ] }, { - "55266928": [ + "55266464": [ 95, 190, 128 ] }, { - "55266932": [ + "55266468": [ 95, 237, 176 ] }, { - "55266936": [ + "55266472": [ 95, 135, 232 ] }, { - "55266940": [ + "55266476": [ 95, 96, 174, @@ -19799,55 +19037,55 @@ ] }, { - "55266972": [ + "55266508": [ 12, 192 ] }, { - "55266976": [ + "55266512": [ 12, 192 ] }, { - "55266980": [ + "55266516": [ 12, 192 ] }, { - "55266984": [ + "55266520": [ 12, 192 ] }, { - "55266988": [ + "55266524": [ 12, 192 ] }, { - "55266992": [ + "55266528": [ 12, 192 ] }, { - "55266996": [ + "55266532": [ 12, 192 ] }, { - "55267000": [ + "55266536": [ 12, 192 ] }, { - "55267004": [ + "55266540": [ 12, 255, 255, @@ -19855,7 +19093,7 @@ ] }, { - "55267028": [ + "55266564": [ 175, 160, 12, @@ -19884,24 +19122,24 @@ ] }, { - "55267055": [ + "55266591": [ 232, 173 ] }, { - "55267059": [ + "55266595": [ 232, 173 ] }, { - "55267063": [ + "55266599": [ 232 ] }, { - "55267084": [ + "55266620": [ 95, 192, 8, @@ -19941,7 +19179,7 @@ ] }, { - "55267140": [ + "55266676": [ 4, 206, 235, @@ -19981,7 +19219,7 @@ ] }, { - "55267196": [ + "55266732": [ 13, 255, 237, @@ -20011,19 +19249,19 @@ ] }, { - "55267224": [ + "55266760": [ 13, 176 ] }, { - "55267228": [ + "55266764": [ 13, 176 ] }, { - "55267252": [ + "55266788": [ 4, 206, 235, @@ -20063,19 +19301,19 @@ ] }, { - "55267290": [ + "55266826": [ 174, 80 ] }, { - "55267294": [ + "55266830": [ 12, 128 ] }, { - "55267308": [ + "55266844": [ 95, 254, 235, @@ -20098,7 +19336,7 @@ ] }, { - "55267328": [ + "55266864": [ 95, 114, 174, @@ -20116,12 +19354,12 @@ ] }, { - "55267343": [ + "55266879": [ 219 ] }, { - "55267364": [ + "55266900": [ 6, 206, 235, @@ -20135,13 +19373,13 @@ ] }, { - "55267376": [ + "55266912": [ 14, 198 ] }, { - "55267380": [ + "55266916": [ 5, 206, 235, @@ -20149,13 +19387,13 @@ ] }, { - "55267386": [ + "55266922": [ 108, 192 ] }, { - "55267390": [ + "55266926": [ 8, 224, 12, @@ -20169,7 +19407,7 @@ ] }, { - "55267420": [ + "55266956": [ 207, 255, 255, @@ -20177,55 +19415,55 @@ ] }, { - "55267425": [ + "55266961": [ 13, 176 ] }, { - "55267429": [ + "55266965": [ 13, 176 ] }, { - "55267433": [ + "55266969": [ 13, 176 ] }, { - "55267437": [ + "55266973": [ 13, 176 ] }, { - "55267441": [ + "55266977": [ 13, 176 ] }, { - "55267445": [ + "55266981": [ 13, 176 ] }, { - "55267449": [ + "55266985": [ 13, 176 ] }, { - "55267453": [ + "55266989": [ 13, 176 ] }, { - "55267476": [ + "55267012": [ 79, 112, 9, @@ -20265,12 +19503,12 @@ ] }, { - "55267532": [ + "55267068": [ 173 ] }, { - "55267534": [ + "55267070": [ 3, 232, 111, @@ -20295,42 +19533,42 @@ ] }, { - "55267557": [ + "55267093": [ 203, 202 ] }, { - "55267561": [ + "55267097": [ 157, 230 ] }, { - "55267565": [ + "55267101": [ 62, 208 ] }, { - "55267588": [ + "55267124": [ 232 ] }, { - "55267591": [ + "55267127": [ 173, 218 ] }, { - "55267595": [ + "55267131": [ 203, 203 ] }, { - "55267599": [ + "55267135": [ 218, 172, 14, @@ -20359,7 +19597,7 @@ ] }, { - "55267644": [ + "55267180": [ 110, 112, 7, @@ -20375,25 +19613,25 @@ ] }, { - "55267657": [ + "55267193": [ 126, 231 ] }, { - "55267661": [ + "55267197": [ 62, 226 ] }, { - "55267665": [ + "55267201": [ 189, 218 ] }, { - "55267668": [ + "55267204": [ 7, 230, 126, @@ -20409,7 +19647,7 @@ ] }, { - "55267700": [ + "55267236": [ 174, 32, 5, @@ -20425,43 +19663,43 @@ ] }, { - "55267713": [ + "55267249": [ 204, 218 ] }, { - "55267717": [ + "55267253": [ 78, 210 ] }, { - "55267721": [ + "55267257": [ 13, 176 ] }, { - "55267725": [ + "55267261": [ 13, 176 ] }, { - "55267729": [ + "55267265": [ 13, 176 ] }, { - "55267733": [ + "55267269": [ 13, 176 ] }, { - "55267756": [ + "55267292": [ 14, 255, 255, @@ -20469,49 +19707,49 @@ ] }, { - "55267762": [ + "55267298": [ 11, 211 ] }, { - "55267766": [ + "55267302": [ 126, 112 ] }, { - "55267769": [ + "55267305": [ 3, 234 ] }, { - "55267773": [ + "55267309": [ 11, 209 ] }, { - "55267777": [ + "55267313": [ 142, 80 ] }, { - "55267780": [ + "55267316": [ 4, 233 ] }, { - "55267784": [ + "55267320": [ 12, 192 ] }, { - "55267788": [ + "55267324": [ 31, 255, 255, @@ -20519,227 +19757,227 @@ ] }, { - "55267805": [ + "55267341": [ 79, 252 ] }, { - "55267809": [ + "55267345": [ 79, 80 ] }, { - "55267813": [ + "55267349": [ 79, 80 ] }, { - "55267817": [ + "55267353": [ 79, 80 ] }, { - "55267821": [ + "55267357": [ 79, 80 ] }, { - "55267825": [ + "55267361": [ 79, 80 ] }, { - "55267829": [ + "55267365": [ 79, 80 ] }, { - "55267833": [ + "55267369": [ 79, 80 ] }, { - "55267837": [ + "55267373": [ 79, 80 ] }, { - "55267841": [ + "55267377": [ 79, 80 ] }, { - "55267845": [ + "55267381": [ 79, 80 ] }, { - "55267849": [ + "55267385": [ 79, 252 ] }, { - "55267868": [ + "55267404": [ 110, 80 ] }, { - "55267872": [ + "55267408": [ 12, 176 ] }, { - "55267876": [ + "55267412": [ 7, 227 ] }, { - "55267881": [ + "55267417": [ 218 ] }, { - "55267885": [ + "55267421": [ 158, 32 ] }, { - "55267889": [ + "55267425": [ 30, 144 ] }, { - "55267893": [ + "55267429": [ 10, 208 ] }, { - "55267897": [ + "55267433": [ 3, 232 ] }, { - "55267902": [ + "55267438": [ 188 ] }, { - "55267906": [ + "55267442": [ 78, 96 ] }, { - "55267910": [ + "55267446": [ 11, 192 ] }, { - "55267917": [ + "55267453": [ 223, 224 ] }, { - "55267921": [ + "55267457": [ 8, 224 ] }, { - "55267925": [ + "55267461": [ 8, 224 ] }, { - "55267929": [ + "55267465": [ 8, 224 ] }, { - "55267933": [ + "55267469": [ 8, 224 ] }, { - "55267937": [ + "55267473": [ 8, 224 ] }, { - "55267941": [ + "55267477": [ 8, 224 ] }, { - "55267945": [ + "55267481": [ 8, 224 ] }, { - "55267949": [ + "55267485": [ 8, 224 ] }, { - "55267953": [ + "55267489": [ 8, 224 ] }, { - "55267957": [ + "55267493": [ 8, 224 ] }, { - "55267961": [ + "55267497": [ 223, 224 ] }, { - "55267981": [ + "55267517": [ 94, 210 ] }, { - "55267985": [ + "55267521": [ 220, 219 ] }, { - "55267988": [ + "55267524": [ 10, 210, 94, @@ -20751,7 +19989,7 @@ ] }, { - "55268080": [ + "55267616": [ 255, 255, 255, @@ -20759,19 +19997,19 @@ ] }, { - "55268088": [ + "55267624": [ 2, 202 ] }, { - "55268093": [ + "55267629": [ 44, 144 ] }, { - "55268156": [ + "55267692": [ 5, 206, 235, @@ -20783,7 +20021,7 @@ ] }, { - "55268166": [ + "55267702": [ 11, 192, 8, @@ -20805,31 +20043,31 @@ ] }, { - "55268196": [ + "55267732": [ 13, 144 ] }, { - "55268200": [ + "55267736": [ 13, 144 ] }, { - "55268204": [ + "55267740": [ 13, 144 ] }, { - "55268208": [ + "55267744": [ 13, 144 ] }, { - "55268212": [ + "55267748": [ 13, 189, 236, @@ -20861,7 +20099,7 @@ ] }, { - "55268269": [ + "55267805": [ 141, 237, 112, @@ -20874,19 +20112,19 @@ ] }, { - "55268280": [ + "55267816": [ 13, 176 ] }, { - "55268284": [ + "55267820": [ 12, 192 ] }, { - "55268288": [ + "55267824": [ 7, 233, 54, @@ -20894,32 +20132,32 @@ ] }, { - "55268293": [ + "55267829": [ 141, 237, 112 ] }, { - "55268310": [ + "55267846": [ 11, 192 ] }, { - "55268314": [ + "55267850": [ 11, 192 ] }, { - "55268318": [ + "55267854": [ 11, 192 ] }, { - "55268322": [ + "55267858": [ 11, 192, 5, @@ -20953,7 +20191,7 @@ ] }, { - "55268380": [ + "55267916": [ 3, 190, 236, @@ -20975,7 +20213,7 @@ ] }, { - "55268400": [ + "55267936": [ 12, 197, 56, @@ -20987,32 +20225,32 @@ ] }, { - "55268421": [ + "55267957": [ 5, 222, 208 ] }, { - "55268425": [ + "55267961": [ 12, 178 ] }, { - "55268429": [ + "55267965": [ 13, 144 ] }, { - "55268433": [ + "55267969": [ 14, 128 ] }, { - "55268436": [ + "55267972": [ 13, 255, 255, @@ -21020,43 +20258,43 @@ ] }, { - "55268441": [ + "55267977": [ 14, 128 ] }, { - "55268445": [ + "55267981": [ 14, 128 ] }, { - "55268449": [ + "55267985": [ 14, 128 ] }, { - "55268453": [ + "55267989": [ 14, 128 ] }, { - "55268457": [ + "55267993": [ 14, 128 ] }, { - "55268461": [ + "55267997": [ 14, 128 ] }, { - "55268492": [ + "55268028": [ 5, 222, 220, @@ -21088,7 +20326,7 @@ ] }, { - "55268522": [ + "55268058": [ 12, 160, 9, @@ -21101,31 +20339,31 @@ ] }, { - "55268532": [ + "55268068": [ 13, 160 ] }, { - "55268536": [ + "55268072": [ 13, 160 ] }, { - "55268540": [ + "55268076": [ 13, 160 ] }, { - "55268544": [ + "55268080": [ 13, 160 ] }, { - "55268548": [ + "55268084": [ 13, 189, 237, @@ -21157,50 +20395,50 @@ ] }, { - "55268589": [ + "55268125": [ 11, 192 ] }, { - "55268604": [ + "55268140": [ 9, 255, 192 ] }, { - "55268609": [ + "55268145": [ 11, 192 ] }, { - "55268613": [ + "55268149": [ 11, 192 ] }, { - "55268617": [ + "55268153": [ 11, 192 ] }, { - "55268621": [ + "55268157": [ 11, 192 ] }, { - "55268625": [ + "55268161": [ 11, 192 ] }, { - "55268628": [ + "55268164": [ 14, 255, 255, @@ -21208,99 +20446,99 @@ ] }, { - "55268645": [ + "55268181": [ 7, 224 ] }, { - "55268660": [ + "55268196": [ 7, 255, 224 ] }, { - "55268665": [ + "55268201": [ 7, 224 ] }, { - "55268669": [ + "55268205": [ 7, 224 ] }, { - "55268673": [ + "55268209": [ 7, 224 ] }, { - "55268677": [ + "55268213": [ 7, 224 ] }, { - "55268681": [ + "55268217": [ 7, 224 ] }, { - "55268685": [ + "55268221": [ 7, 224 ] }, { - "55268689": [ + "55268225": [ 7, 224 ] }, { - "55268693": [ + "55268229": [ 27, 208 ] }, { - "55268696": [ + "55268232": [ 13, 254, 112 ] }, { - "55268700": [ + "55268236": [ 11, 192 ] }, { - "55268704": [ + "55268240": [ 11, 192 ] }, { - "55268708": [ + "55268244": [ 11, 192 ] }, { - "55268712": [ + "55268248": [ 11, 192 ] }, { - "55268716": [ + "55268252": [ 11, 192, 61, @@ -21311,21 +20549,21 @@ ] }, { - "55268724": [ + "55268260": [ 11, 221, 192 ] }, { - "55268728": [ + "55268264": [ 11, 252, 229 ] }, { - "55268732": [ + "55268268": [ 11, 208, 205, @@ -21341,75 +20579,75 @@ ] }, { - "55268756": [ + "55268292": [ 14, 255, 64 ] }, { - "55268761": [ + "55268297": [ 95, 64 ] }, { - "55268765": [ + "55268301": [ 95, 64 ] }, { - "55268769": [ + "55268305": [ 95, 64 ] }, { - "55268773": [ + "55268309": [ 95, 64 ] }, { - "55268777": [ + "55268313": [ 95, 64 ] }, { - "55268781": [ + "55268317": [ 95, 64 ] }, { - "55268785": [ + "55268321": [ 95, 64 ] }, { - "55268789": [ + "55268325": [ 79, 80 ] }, { - "55268793": [ + "55268329": [ 14, 160 ] }, { - "55268797": [ + "55268333": [ 8, 239, 176 ] }, { - "55268828": [ + "55268364": [ 141, 221, 174, @@ -21441,7 +20679,7 @@ ] }, { - "55268884": [ + "55268420": [ 13, 189, 237, @@ -21473,7 +20711,7 @@ ] }, { - "55268940": [ + "55268476": [ 4, 206, 235, @@ -21505,7 +20743,7 @@ ] }, { - "55268996": [ + "55268532": [ 13, 189, 236, @@ -21539,19 +20777,19 @@ ] }, { - "55269028": [ + "55268564": [ 13, 144 ] }, { - "55269032": [ + "55268568": [ 13, 144 ] }, { - "55269052": [ + "55268588": [ 4, 206, 220, @@ -21583,63 +20821,63 @@ ] }, { - "55269082": [ + "55268618": [ 10, 192 ] }, { - "55269086": [ + "55268622": [ 10, 192 ] }, { - "55269090": [ + "55268626": [ 10, 192 ] }, { - "55269109": [ + "55268645": [ 204, 222, 249 ] }, { - "55269113": [ + "55268649": [ 206, 131 ] }, { - "55269117": [ + "55268653": [ 203 ] }, { - "55269121": [ + "55268657": [ 202 ] }, { - "55269125": [ + "55268661": [ 202 ] }, { - "55269129": [ + "55268665": [ 202 ] }, { - "55269133": [ + "55268669": [ 202 ] }, { - "55269164": [ + "55268700": [ 4, 206, 234, @@ -21653,7 +20891,7 @@ ] }, { - "55269176": [ + "55268712": [ 3, 189, 219, @@ -21661,7 +20899,7 @@ ] }, { - "55269182": [ + "55268718": [ 77, 160, 11, @@ -21675,17 +20913,17 @@ ] }, { - "55269213": [ + "55268749": [ 142 ] }, { - "55269217": [ + "55268753": [ 142 ] }, { - "55269220": [ + "55268756": [ 111, 255, 255, @@ -21693,40 +20931,40 @@ ] }, { - "55269225": [ + "55268761": [ 142 ] }, { - "55269229": [ + "55268765": [ 142 ] }, { - "55269233": [ + "55268769": [ 142 ] }, { - "55269237": [ + "55268773": [ 142 ] }, { - "55269241": [ + "55268777": [ 110, 112 ] }, { - "55269245": [ + "55268781": [ 11, 239, 176 ] }, { - "55269276": [ + "55268812": [ 13, 160, 11, @@ -21758,7 +20996,7 @@ ] }, { - "55269332": [ + "55268868": [ 110, 48, 7, @@ -21778,36 +21016,36 @@ ] }, { - "55269349": [ + "55268885": [ 218, 203 ] }, { - "55269353": [ + "55268889": [ 157, 231 ] }, { - "55269357": [ + "55268893": [ 62, 224 ] }, { - "55269388": [ + "55268924": [ 232 ] }, { - "55269391": [ + "55268927": [ 172, 202 ] }, { - "55269395": [ + "55268931": [ 202, 172, 13, @@ -21832,7 +21070,7 @@ ] }, { - "55269444": [ + "55268980": [ 61, 160, 11, @@ -21844,25 +21082,25 @@ ] }, { - "55269453": [ + "55268989": [ 158, 231 ] }, { - "55269457": [ + "55268993": [ 46, 208 ] }, { - "55269461": [ + "55268997": [ 204, 218 ] }, { - "55269464": [ + "55269000": [ 9, 228, 110, @@ -21874,7 +21112,7 @@ ] }, { - "55269500": [ + "55269036": [ 110, 80, 5, @@ -21894,43 +21132,43 @@ ] }, { - "55269517": [ + "55269053": [ 204, 204 ] }, { - "55269521": [ + "55269057": [ 126, 231 ] }, { - "55269525": [ + "55269061": [ 13, 224 ] }, { - "55269529": [ + "55269065": [ 13, 160 ] }, { - "55269533": [ + "55269069": [ 142, 80 ] }, { - "55269536": [ + "55269072": [ 13, 234 ] }, { - "55269556": [ + "55269092": [ 11, 255, 255, @@ -21938,37 +21176,37 @@ ] }, { - "55269562": [ + "55269098": [ 94, 112 ] }, { - "55269565": [ + "55269101": [ 3, 217 ] }, { - "55269569": [ + "55269105": [ 12, 176 ] }, { - "55269573": [ + "55269109": [ 189, 32 ] }, { - "55269576": [ + "55269112": [ 9, 228 ] }, { - "55269580": [ + "55269116": [ 13, 255, 255, @@ -21976,235 +21214,235 @@ ] }, { - "55269597": [ + "55269133": [ 6, 222, 160 ] }, { - "55269601": [ + "55269137": [ 11, 211 ] }, { - "55269605": [ + "55269141": [ 12, 176 ] }, { - "55269609": [ + "55269145": [ 12, 176 ] }, { - "55269613": [ + "55269149": [ 94, 160 ] }, { - "55269616": [ + "55269152": [ 11, 253, 32 ] }, { - "55269621": [ + "55269157": [ 126, 144 ] }, { - "55269625": [ + "55269161": [ 13, 176 ] }, { - "55269629": [ + "55269165": [ 12, 176 ] }, { - "55269633": [ + "55269169": [ 12, 176 ] }, { - "55269637": [ + "55269173": [ 11, 212 ] }, { - "55269641": [ + "55269177": [ 5, 222, 160 ] }, { - "55269653": [ + "55269189": [ 12, 160 ] }, { - "55269657": [ + "55269193": [ 12, 160 ] }, { - "55269661": [ + "55269197": [ 12, 160 ] }, { - "55269665": [ + "55269201": [ 12, 160 ] }, { - "55269669": [ + "55269205": [ 12, 160 ] }, { - "55269673": [ + "55269209": [ 12, 160 ] }, { - "55269677": [ + "55269213": [ 12, 160 ] }, { - "55269681": [ + "55269217": [ 12, 160 ] }, { - "55269685": [ + "55269221": [ 12, 160 ] }, { - "55269689": [ + "55269225": [ 12, 160 ] }, { - "55269693": [ + "55269229": [ 12, 160 ] }, { - "55269697": [ + "55269233": [ 12, 160 ] }, { - "55269701": [ + "55269237": [ 12, 160 ] }, { - "55269708": [ + "55269244": [ 11, 237, 48 ] }, { - "55269713": [ + "55269249": [ 78, 144 ] }, { - "55269717": [ + "55269253": [ 13, 160 ] }, { - "55269721": [ + "55269257": [ 12, 160 ] }, { - "55269725": [ + "55269261": [ 11, 196 ] }, { - "55269729": [ + "55269265": [ 5, 239, 160 ] }, { - "55269733": [ + "55269269": [ 11, 213 ] }, { - "55269737": [ + "55269273": [ 12, 176 ] }, { - "55269741": [ + "55269277": [ 13, 160 ] }, { - "55269745": [ + "55269281": [ 13, 160 ] }, { - "55269749": [ + "55269285": [ 94, 128 ] }, { - "55269752": [ + "55269288": [ 11, 236, 32 ] }, { - "55269788": [ + "55269324": [ 93, 237, 131, From 586853678c312bf5f177f6f05b42dd5462e6a567 Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 14 Sep 2018 02:52:17 -0400 Subject: [PATCH 491/755] Delete unused TextArray.py --- TextArray.py | 2227 -------------------------------------------------- version.py | 2 +- 2 files changed, 1 insertion(+), 2228 deletions(-) delete mode 100644 TextArray.py diff --git a/TextArray.py b/TextArray.py deleted file mode 100644 index 3a5ed5798..000000000 --- a/TextArray.py +++ /dev/null @@ -1,2227 +0,0 @@ -text_array = [0x9257e4, -0x925852, -0x9258ce, -0x925be2, -0x925bfa, -0x925ca0, -0x925ccd, -0x925d0b, -0x925fa4, -0x9272bc, -0x9272da, -0x927354, -0x9273d5, -0x927406, -0x92743c, -0x927474, -0x927476, -0x9274b3, -0x9274b5, -0x9274ea, -0x9274ec, -0x927517, -0x927544, -0x927548, -0x927565, -0x927567, -0x9275d8, -0x9275ed, -0x92763f, -0x927648, -0x927678, -0x9276d8, -0x92772e, -0x927793, -0x92780a, -0x927870, -0x927b7c, -0x927b9e, -0x927c10, -0x927c4b, -0x927c91, -0x927cf1, -0x92c5e8, -0x92c650, -0x92c658, -0x92c6dc, -0x92c75e, -0x92c780, -0x92c798, -0x92c801, -0x92c840, -0x92c8c0, -0x92c904, -0x92c98b, -0x92c9d4, -0x92ca2a, -0x92ca78, -0x92cc24, -0x92cc45, -0x92cc5c, -0x92cc95, -0x92ccd6, -0x92cd24, -0x92cd54, -0x92cd95, -0x92cdd2, -0x92cdfe, -0x92cdff, -0x92ce09, -0x92ce0a, -0x92ce0c, -0x92ce44, -0x92cea2, -0x92cee8, -0x92cf45, -0x92cf70, -0x92cfac, -0x92cfb2, -0x92cff8, -0x92d000, -0x92d022, -0x92d084, -0x92d0c3, -0x92d0f0, -0x92d110, -0x92d178, -0x92d19b, -0x92d1d8, -0x92d217, -0x92d266, -0x92d27c, -0x92d2a5, -0x92d2dc, -0x92d31d, -0x92d344, -0x92d392, -0x92d3a8, -0x92d3c3, -0x92d418, -0x92d457, -0x92d494, -0x92d4d7, -0x92d514, -0x92d553, -0x92d590, -0x92d5d6, -0x92d63d, -0x92d6ba, -0x92d72e, -0x92d7a1, -0x92d809, -0x92d878, -0x92d8f2, -0x92d968, -0x92da2c, -0x92da2d, -0x92da35, -0x92da36, -0x92daad, -0x92db19, -0x92dbfa, -0x92dc87, -0x92dcab, -0x92dd58, -0x92dfb4, -0x92e24c, -0x92e2a2, -0x92e3a9, -0x92e467, -0x92e59c, -0x92e5c2, -0x92e60f, -0x92e690, -0x92e708, -0x92e728, -0x92e775, -0x92e815, -0x92e8ef, -0x92e9c6, -0x92ea60, -0x92ea80, -0x92eacd, -0x92eb04, -0x92eb23, -0x92eb66, -0x92ebcf, -0x92ec38, -0x92ed24, -0x92ed49, -0x92eda8, -0x92edcc, -0x92ee2d, -0x92eeb0, -0x92eed6, -0x92ef94, -0x92efbc, -0x92eff8, -0x92f021, -0x92f058, -0x92f082, -0x92f0bc, -0x92f0e6, -0x92f120, -0x92f149, -0x92f174, -0x92f19e, -0x92f1d4, -0x92f1f4, -0x92f270, -0x92f336, -0x92f3f9, -0x92f462, -0x92f572, -0x92f658, -0x92f761, -0x92f764, -0x92f78b, -0x92f7e0, -0x92f85b, -0x92f905, -0x92f989, -0x92fa73, -0x92fad0, -0x92faf4, -0x92fb48, -0x92fb67, -0x92fbc1, -0x92fc44, -0x92fcc1, -0x92fce0, -0x92fcff, -0x92fd38, -0x92fd58, -0x92fdb1, -0x92fe46, -0x92fe68, -0x92fe99, -0x92fecc, -0x92ff03, -0x92ff44, -0x92ff61, -0x92ff9c, -0x92ffbe, -0x930008, -0x930027, -0x930064, -0x93008a, -0x9300b4, -0x9300db, -0x93013c, -0x9301b4, -0x9301db, -0x930267, -0x9302a8, -0x9302ca, -0x930328, -0x930349, -0x9303a9, -0x930464, -0x93047f, -0x9304af, -0x930530, -0x93059c, -0x9305c1, -0x9306d1, -0x930718, -0x930740, -0x930784, -0x9307a8, -0x930803, -0x930899, -0x9308e6, -0x930929, -0x930a71, -0x930a74, -0x930a93, -0x930af8, -0x930b16, -0x930b75, -0x930bf0, -0x930c10, -0x930c6c, -0x930c9c, -0x930ccc, -0x930d00, -0x930d34, -0x930d68, -0x930d9c, -0x930dc1, -0x930e3b, -0x930ea4, -0x930ed7, -0x930f38, -0x930f6d, -0x930f96, -0x930fcd, -0x930fe4, -0x931009, -0x931068, -0x93108e, -0x9310d0, -0x9310f5, -0x931184, -0x931196, -0x9311ba, -0x9311d8, -0x9311fd, -0x931234, -0x931264, -0x93129a, -0x9312cc, -0x931304, -0x931387, -0x9313b9, -0x9313d0, -0x931422, -0x931424, -0x93147b, -0x93149a, -0x9314c9, -0x9314f8, -0x93152b, -0x931591, -0x9315b8, -0x9315f4, -0x93170c, -0x93172c, -0x931784, -0x9317a0, -0x9317f5, -0x931883, -0x931973, -0x9319dd, -0x931a4c, -0x931ad5, -0x931b52, -0x931bde, -0x931be4, -0x931c05, -0x931c5a, -0x931d3a, -0x931d9c, -0x931da0, -0x931de9, -0x931dec, -0x931e3d, -0x931ec4, -0x931f28, -0x931f92, -0x931fe7, -0x931fec, -0x932007, -0x932054, -0x932072, -0x9320be, -0x932126, -0x93219c, -0x9321b9, -0x932281, -0x932308, -0x932380, -0x9323d1, -0x932490, -0x932510, -0x93252c, -0x9325ad, -0x9325c7, -0x932649, -0x9326bc, -0x9326f1, -0x932737, -0x932747, -0x9327c1, -0x9327e4, -0x932868, -0x9328e8, -0x932968, -0x9329dd, -0x932a5c, -0x932ada, -0x932b35, -0x932bd1, -0x932c06, -0x932c08, -0x932c29, -0x932c7c, -0x932c9d, -0x932d2e, -0x932d43, -0x932d48, -0x932d6c, -0x932d90, -0x932db8, -0x932de0, -0x932e08, -0x932e30, -0x932e5b, -0x932e8a, -0x932e9c, -0x932ec8, -0x932ef5, -0x932f08, -0x932f35, -0x932f66, -0x932ffa, -0x933049, -0x933089, -0x93308b, -0x9330e8, -0x933193, -0x933231, -0x933314, -0x933337, -0x93333c, -0x933363, -0x933368, -0x933389, -0x93338c, -0x933401, -0x933440, -0x9334ac, -0x9334d8, -0x93352c, -0x933590, -0x9335bb, -0x93361f, -0x933624, -0x93366c, -0x9336d4, -0x933793, -0x9337cd, -0x933821, -0x93383e, -0x9338e1, -0x93392b, -0x933997, -0x9339e3, -0x933a15, -0x933a8a, -0x933b1e, -0x933bae, -0x933c3a, -0x933d44, -0x933d8c, -0x933df4, -0x933e40, -0x933eac, -0x933ef8, -0x933f40, -0x933f80, -0x933ffd, -0x93408c, -0x93411c, -0x93418c, -0x93420c, -0x93425c, -0x934314, -0x934343, -0x93437c, -0x9343d0, -0x93444c, -0x93449a, -0x93452c, -0x934570, -0x9345b0, -0x9345e8, -0x934634, -0x934672, -0x934704, -0x93475c, -0x9347b4, -0x934818, -0x934870, -0x9348bc, -0x934908, -0x934980, -0x934a08, -0x934a34, -0x934a8c, -0x934a9c, -0x935ca8, -0x935cd2, -0x935d08, -0x935d30, -0x935d84, -0x935dec, -0x935e3c, -0x935e74, -0x935edc, -0x935f30, -0x935f88, -0x935fbc, -0x935fe4, -0x93602c, -0x93605c, -0x9360b4, -0x9360e8, -0x936108, -0x936188, -0x9361c0, -0x93621c, -0x936260, -0x93628c, -0x936432, -0x9365d6, -0x9365ff, -0x93664f, -0x9366b8, -0x9366e9, -0x9368b7, -0x936a29, -0x936aa7, -0x936b13, -0x936bac, -0x936bb7, -0x936dbd, -0x936e2b, -0x936e8c, -0x936eba, -0x936ef4, -0x936f26, -0x936f5f, -0x936fc4, -0x936ffd, -0x937041, -0x937043, -0x937044, -0x937056, -0x937057, -0x9371b0, -0x9371f5, -0x937237, -0x937296, -0x937318, -0x9373a1, -0x9376cf, -0x937748, -0x937767, -0x937785, -0x9377a1, -0x9377b3, -0x9377f7, -0x93781d, -0x937854, -0x937894, -0x9378b3, -0x9378f1, -0x93791a, -0x937965, -0x9379c8, -0x9379e0, -0x937a2d, -0x937a83, -0x937add, -0x937af5, -0x937b25, -0x937b3c, -0x937b55, -0x937b80, -0x937ba8, -0x937bbd, -0x937c33, -0x937c4c, -0x937cad, -0x937cf6, -0x937d61, -0x937d78, -0x937daf, -0x937dc0, -0x937df9, -0x937e66, -0x937ea4, -0x937efd, -0x937f74, -0x937fd5, -0x938046, -0x93808f, -0x9380e6, -0x93815d, -0x9381b8, -0x938217, -0x93825a, -0x9382a6, -0x9382e0, -0x938322, -0x938376, -0x9383a7, -0x9383e4, -0x938414, -0x93843e, -0x9384a4, -0x938534, -0x9385b5, -0x9385ea, -0x93866f, -0x9386a1, -0x938736, -0x938760, -0x9387a6, -0x9387ea, -0x93881f, -0x938848, -0x93885d, -0x938874, -0x9388e2, -0x938945, -0x9389a0, -0x9389f2, -0x938a6b, -0x938ae1, -0x938b1b, -0x938b56, -0x938bb5, -0x938c18, -0x938c95, -0x938d1d, -0x938d5d, -0x938d73, -0x938dbb, -0x938e2b, -0x9399f5, -0x939a64, -0x939aa9, -0x939ae3, -0x939b1c, -0x939b58, -0x939b8c, -0x939c00, -0x939c78, -0x939cc6, -0x939d2f, -0x939db1, -0x939e00, -0x939e5c, -0x939eaf, -0x939f03, -0x939f78, -0x939fe6, -0x93a019, -0x93a087, -0x93a103, -0x93a148, -0x93a180, -0x93a1b9, -0x93a1ed, -0x93a286, -0x93a2ef, -0x93a338, -0x93a367, -0x93a3aa, -0x93a3da, -0x93a44f, -0x93a4bc, -0x93a4fe, -0x93a56b, -0x93a5af, -0x93a626, -0x93a645, -0x93a688, -0x93a6be, -0x93a729, -0x93a783, -0x93a788, -0x93a7f2, -0x93a851, -0x93a89a, -0x93a8de, -0x93a94c, -0x93a99f, -0x93aa16, -0x93aa8a, -0x93aad3, -0x93ab37, -0x93abab, -0x93ac1d, -0x93ac88, -0x93acb4, -0x93ad12, -0x93ad5f, -0x93ad9c, -0x93ae14, -0x93ae84, -0x93aef8, -0x93af30, -0x93af8d, -0x93afd7, -0x93b01c, -0x93b068, -0x93b0a5, -0x93b0d4, -0x93b106, -0x93b17f, -0x93b1c8, -0x93b215, -0x93b28c, -0x93b31c, -0x93b362, -0x93b3a4, -0x93b3e7, -0x93b44c, -0x93b49b, -0x93b4d3, -0x93b545, -0x93b576, -0x93b59b, -0x93b5fe, -0x93b666, -0x93b6c8, -0x93b97b, -0x93b99c, -0x93b9d4, -0x93b9fc, -0x93ba2d, -0x93ba57, -0x93ba88, -0x93bac2, -0x93baec, -0x93bb19, -0x93bb47, -0x93bb74, -0x93bba2, -0x93bbc6, -0x93bbea, -0x93bc11, -0x93bc38, -0x93bc62, -0x93bc8c, -0x93bcba, -0x93bcbc, -0x93bcee, -0x93bd48, -0x93bd5c, -0x93bd6c, -0x93be60, -0x93be91, -0x93be98, -0x93bed7, -0x93bf01, -0x93c1f4, -0x93c278, -0x93c2b9, -0x93c3a0, -0x93c3cb, -0x93c405, -0x93c558, -0x93c57e, -0x93c5a0, -0x93c5bc, -0x93c5d4, -0x93c5f8, -0x93c630, -0x93c668, -0x93c680, -0x93c6c0, -0x93c760, -0x93c785, -0x93c796, -0x93c7df, -0x93c831, -0x93c8ac, -0x93c8ca, -0x93c998, -0x93c9c6, -0x93c9ee, -0x93cb80, -0x93cb8e, -0x93cba4, -0x93cbd1, -0x93cc5d, -0x93ccb7, -0x93cced, -0x93ce0c, -0x93ce66, -0x93d040, -0x93d184, -0x93d2e9, -0x93d2ec, -0x93d34e, -0x93d3b1, -0x93d3fa, -0x93d424, -0x93d48a, -0x93d4a9, -0x93d4c6, -0x93d503, -0x93d524, -0x93d55f, -0x93d592, -0x93d593, -0x93d594, -0x93d5ac, -0x93d5ad, -0x93d5af, -0x93d5b0, -0x93d5be, -0x93d5bf, -0x93d5c4, -0x93d5e8, -0x93d5e9, -0x93d5ea, -0x93d5fa, -0x93d5fb, -0x93d654, -0x93d6a1, -0x93d73c, -0x93d749, -0x93d74b, -0x93d7f0, -0x93e6c4, -0x93e6df, -0x93e705, -0x93e74a, -0x93e770, -0x93e9b8, -0x93e9fb, -0x93ed0c, -0x93ed5d, -0x93edb9, -0x93ee34, -0x93ee59, -0x93eeac, -0x93ef00, -0x93efd8, -0x93f060, -0x93f08a, -0x93f0e5, -0x93f0f4, -0x93f159, -0x93f1b4, -0x93f1e7, -0x93f247, -0x93f4e0, -0x93f523, -0x93f575, -0x93f5a9, -0x93f5f8, -0x93f609, -0x93f648, -0x93f656, -0x93f6cc, -0x93f740, -0x93f77a, -0x93f7ac, -0x93f7dc, -0x93f849, -0x93f88f, -0x93f8d4, -0x93f934, -0x93f94c, -0x93f95b, -0x93f97a, -0x93f9a3, -0x93f9f9, -0x93fa02, -0x93fa03, -0x93fa1e, -0x93fa1f, -0x93fd1c, -0x93fd48, -0x93fdc5, -0x93fe82, -0x93fecf, -0x93fef3, -0x93ff1a, -0x93ff44, -0x93ff51, -0x93ffaf, -0x93ffbf, -0x940014, -0x940024, -0x940074, -0x9400cb, -0x94012c, -0x940188, -0x9401d7, -0x9402ec, -0x94032b, -0x94035a, -0x9403a0, -0x9403d5, -0x940400, -0x94042f, -0x9404b0, -0x9404d1, -0x94050e, -0x940570, -0x9405b0, -0x9405ec, -0x9405fb, -0x940609, -0x940645, -0x94064c, -0x94065e, -0x940662, -0x9406fc, -0x94074c, -0x940784, -0x9407d6, -0x94081e, -0x940868, -0x9408f9, -0x940943, -0x940999, -0x9409ec, -0x940a2d, -0x940a4c, -0x940a98, -0x940b01, -0x940b5c, -0x940b6f, -0x940b70, -0x940b7c, -0x940b7d, -0x940b9f, -0x940ba1, -0x940bc4, -0x940bf6, -0x940bf8, -0x940c48, -0x940cb6, -0x940cdb, -0x940f7a, -0x940f87, -0x941012, -0x941018, -0x941037, -0x941082, -0x9410d2, -0x941168, -0x9411b0, -0x9411d8, -0x9411ec, -0x9412a4, -0x9412e3, -0x9413d0, -0x941411, -0x941421, -0x941422, -0x941423, -0x94142b, -0x94142c, -0x94144e, -0x94145e, -0x94147d, -0x941535, -0x94156b, -0x9415f4, -0x941612, -0x941644, -0x941758, -0x941804, -0x94184c, -0x9418a0, -0x9418bb, -0x941a28, -0x941a71, -0x941ac8, -0x941ad3, -0x941afe, -0x941b30, -0x941cb8, -0x941d30, -0x941d74, -0x941d98, -0x941dd8, -0x942078, -0x9420d0, -0x9420de, -0x942114, -0x942129, -0x942162, -0x942210, -0x942225, -0x942248, -0x94225b, -0x94227b, -0x94228c, -0x9423b3, -0x9427b8, -0x94280d, -0x94280e, -0x94280f, -0x942818, -0x942819, -0x94281b, -0x942827, -0x94283f, -0x94288f, -0x9428cc, -0x9428fa, -0x942961, -0x9429b1, -0x942a08, -0x942a35, -0x942afc, -0x942e9c, -0x942f04, -0x942f40, -0x942f47, -0x942f9c, -0x943070, -0x9430a1, -0x9430a8, -0x9430c1, -0x9430fe, -0x943210, -0x94326f, -0x9432b7, -0x943306, -0x943349, -0x94334a, -0x94334f, -0x943355, -0x94335a, -0x94335f, -0x943366, -0x943367, -0x943368, -0x943399, -0x94339a, -0x94339f, -0x9433a4, -0x9433a9, -0x9433af, -0x9433b0, -0x9433b1, -0x9434b0, -0x9434c9, -0x94353e, -0x9435b2, -0x9435f5, -0x943634, -0x9436bb, -0x943736, -0x94378a, -0x943802, -0x94382e, -0x9438c0, -0x9438cc, -0x9438dc, -0x9438ff, -0x943904, -0x943907, -0x943908, -0x94390d, -0x943913, -0x943919, -0x94391d, -0x94391e, -0x943964, -0x94397d, -0x9439b0, -0x9439ea, -0x9439ec, -0x943a52, -0x943ae0, -0x943b2f, -0x943c67, -0x943dd8, -0x943e34, -0x944128, -0x944192, -0x9441dc, -0x944228, -0x94428a, -0x9442a2, -0x9442a4, -0x944304, -0x944347, -0x9443a0, -0x9443ea, -0x9448ec, -0x9448fb, -0x9448fd, -0x94496c, -0x94498c, -0x9449bc, -0x9449f4, -0x944a60, -0x944a6f, -0x944a9e, -0x944aac, -0x944b70, -0x944bb4, -0x944bd9, -0x944c25, -0x944c7b, -0x944cd4, -0x944d27, -0x944d28, -0x944d29, -0x944d33, -0x944d34, -0x944d3e, -0x944dec, -0x944e38, -0x944ea0, -0x944eda, -0x944f88, -0x944fd9, -0x94507c, -0x9450fa, -0x945135, -0x945170, -0x945258, -0x945259, -0x945277, -0x945278, -0x9454b4, -0x9454b5, -0x9454cf, -0x9454d0, -0x945508, -0x9455c4, -0x9455ee, -0x94562d, -0x94566f, -0x945ad8, -0x945b1c, -0x945b64, -0x945bd1, -0x945c24, -0x945c96, -0x945cdf, -0x945d4c, -0x945d57, -0x945d6d, -0x945dbb, -0x945ff4, -0x946030, -0x946044, -0x9461d0, -0x9462ca, -0x94631c, -0x946488, -0x946658, -0x946670, -0x946688, -0x946689, -0x94668a, -0x946690, -0x946691, -0x946693, -0x94669d, -0x9466cc, -0x9466db, -0x9467a4, -0x9467d2, -0x946870, -0x946871, -0x946872, -0x94687b, -0x94687c, -0x946882, -0x9468a6, -0x9468d7, -0x946908, -0x946963, -0x94698e, -0x9469cc, -0x946a08, -0x946a35, -0x946a87, -0x946ab8, -0x946b00, -0x946b50, -0x946b7c, -0x946b83, -0x946bec, -0x946c2f, -0x946c96, -0x946cd4, -0x946d1e, -0x947274, -0x9472e2, -0x94735e, -0x947672, -0x94768a, -0x947730, -0x94775d, -0x94779b, -0x947a34, -0x947ab0, -0x947ba4, -0x947bb6, -0x947be5, -0x947c92, -0x947cb2, -0x947cbd, -0x947cec, -0x947cfa, -0x947cfc, -0x947d4d, -0x947d74, -0x947de0, -0x947e45, -0x947f0e, -0x948354, -0x948359, -0x948396, -0x9483a3, -0x9483b7, -0x9483bc, -0x9483ed, -0x948445, -0x94847a, -0x948628, -0x9486a0, -0x9486b9, -0x948728, -0x94876f, -0x948796, -0x94881b, -0x9488bc, -0x9488c2, -0x948914, -0x948974, -0x948997, -0x948a0e, -0x948a93, -0x948ab6, -0x948b64, -0x948b9f, -0x948bca, -0x948c22, -0x948c36, -0x948d4c, -0x948d6a, -0x948de4, -0x948e65, -0x948e96, -0x948ecc, -0x948f04, -0x948f06, -0x948f43, -0x948f45, -0x948f7a, -0x948f7c, -0x948fa7, -0x948fd4, -0x948fd8, -0x948ff5, -0x948ff7, -0x949068, -0x94907d, -0x9490cf, -0x9490d8, -0x949108, -0x949168, -0x9491be, -0x949223, -0x94929a, -0x949300, -0x94960c, -0x94962e, -0x9496a0, -0x9496db, -0x949721, -0x949781, -0x949ce8, -0x949d27, -0x949d42, -0x949d64, -0x949d6b, -0x949d81, -0x949dbe, -0x949ded, -0x949e22, -0x949e47, -0x949e82, -0x949ed0, -0x949ed7, -0x949f22, -0x949f65, -0x94a068, -0x94a0bf, -0x94a0eb, -0x94a122, -0x94a16f, -0x94a1a8, -0x94a1d8, -0x94a228, -0x94a254, -0x94a285, -0x94a2e3, -0x94a32b, -0x94a36c, -0x94a3ae, -0x94a3cf, -0x94a425, -0x94a49c, -0x94a4be, -0x94a4d3, -0x94a4fe, -0x94a542, -0x94a5ab, -0x94a623, -0x94a68c, -0x94a6c5, -0x94a720, -0x94a756, -0x94a798, -0x94a810, -0x94a84c, -0x94a860, -0x94a8c7, -0x94a940, -0x94a9bc, -0x94aa32, -0x94aa8c, -0x94aade, -0x94aae4, -0x94ab09, -0x94abb0, -0x94ac02, -0x94ac49, -0x94ac8c, -0x94ad44, -0x94ad80, -0x94adcd, -0x94adf6, -0x94ae44, -0x94ae9b, -0x94b21c, -0x94b24e, -0x94b276, -0x94b2c4, -0x94b440, -0x94b4a8, -0x94b4c0, -0x94b4f2, -0x94b671, -0x94b6a5, -0x94b6fd, -0x94b704, -0x94b76e, -0x94b7f1, -0x94b85f, -0x94b8e3, -0x94bbd0, -0x94bc18, -0x94bc63, -0x94bcbb, -0x94bce8, -0x94bd0f, -0x94bd8d, -0x94bdd4, -0x94be0c, -0x94be7c, -0x94be9b, -0x94bf15, -0x94bf74, -0x94bf9b, -0x94c020, -0x94c047, -0x94c0a4, -0x94c0cb, -0x94c13e, -0x94c180, -0x94c1a7, -0x94c1eb, -0x94c240, -0x94c260, -0x94c320, -0x94c3a0, -0x94c3e4, -0x94c45c, -0x94c475, -0x94c4cc, -0x94c50c, -0x94c542, -0x94c57a, -0x94c604, -0x94c680, -0x94c6d2, -0x94c788, -0x94c791, -0x94c7e2, -0x94c847, -0x94c849, -0x94c86b, -0x94c870, -0x94c87e, -0x94c8af, -0x94c9b4, -0x94cca4, -0x94ce04, -0x94ce21, -0x94ce4d, -0x94ce87, -0x94cf58, -0x94cf94, -0x94cfe7, -0x94d04d, -0x94d124, -0x94d131, -0x94d180, -0x94d1c0, -0x94d2e9, -0x94d2eb, -0x94d38c, -0x94d3bd, -0x94d404, -0x94d452, -0x94d4c2, -0x94d538, -0x94d61e, -0x94d635, -0x94d638, -0x94d67c, -0x94d6db, -0x94d71a, -0x94d770, -0x94d860, -0x94d874, -0x94d88d, -0x94d89f, -0x94d8a1, -0x94d8d4, -0x94d8e5, -0x94d8f1, -0x94d904, -0x94d90c, -0x94d912, -0x94d962, -0x94d964, -0x94d99e, -0x94d9f8, -0x94da44, -0x94dacf, -0x94dadd, -0x94dadf, -0x94db38, -0x94db54, -0x94dd0c, -0x94dd67, -0x94ddb1, -0x94de14, -0x94de21, -0x94de88, -0x94ded4, -0x94df17, -0x94df85, -0x94dfe9, -0x94e078, -0x94e0e0, -0x94e0e8, -0x94e16c, -0x94e1ee, -0x94e210, -0x94e228, -0x94e291, -0x94e2d0, -0x94e350, -0x94e394, -0x94e41b, -0x94e464, -0x94e4ba, -0x94e508, -0x94e6b4, -0x94e6d5, -0x94e6ec, -0x94e725, -0x94e766, -0x94e7b4, -0x94e7e4, -0x94e825, -0x94e862, -0x94e88e, -0x94e88f, -0x94e899, -0x94e89a, -0x94e89c, -0x94e8d4, -0x94e932, -0x94e978, -0x94e9d5, -0x94ea00, -0x94ea3c, -0x94ea42, -0x94ea88, -0x94ead8, -0x94eb10, -0x94eb2c, -0x94eb37, -0x94ebbc, -0x94ebec, -0x94ec38, -0x94ecb0, -0x94ecb4, -0x94ecf3, -0x94ed2d, -0x94ed54, -0x94ede0, -0x94edf4, -0x94ee1b, -0x94ee23, -0x94ee62, -0x94ee6d, -0x94ee8e, -0x94eeb5, -0x94eed2, -0x94eef2, -0x94ef01, -0x94ef03, -0x94ef43, -0x94ef52, -0x94ef54, -0x94ef8f, -0x94efe1, -0x94f00b, -0x94f048, -0x94f097, -0x94f0a3, -0x94f0b6, -0x94f0c5, -0x94f0c8, -0x94f0e7, -0x94f117, -0x94f120, -0x94f18b, -0x94f1e4, -0x94f1f0, -0x94f23c, -0x94f269, -0x94f26b, -0x94f26c, -0x94f270, -0x94f271, -0x94f288, -0x94f2c2, -0x94f2f9, -0x94f358, -0x94f3f8, -0x94f4a0, -0x94f4b8, -0x94f4f4, -0x94f522, -0x94f57c, -0x94f5c8, -0x94f600, -0x94f614, -0x94f652, -0x94f6a9, -0x94f72c, -0x94f730, -0x94f7c0, -0x94f850, -0x94f8e8, -0x94f960, -0x94fa04, -0x94fab4, -0x94fb4c, -0x94fbe0, -0x94fc8c, -0x9501ac, -0x950b16, -0x950d6e, -0x950dae, -0x950dc9, -0x950e80, -0x950eb5, -0x950f09, -0x950f4b, -0x950f67, -0x950f82, -0x95157c, -0x951f93, -0x952185, -0x952280, -0x952282, -0x952283, -0x952288, -0x952291, -0x952298, -0x952299, -0x95229a, -0x95241b, -0x9524d2, -0x9524f1, -0x952511, -0x9525cc, -0x952611, -0x952613, -0x952637, -0x952639, -0x952665, -0x952667, -0x9526ec, -0x9526f0, -0x95271d, -0x952804, -0x95280e, -0x95280f, -0x952814, -0x95281d, -0x952825, -0x952826, -0x952827, -0x952836, -0x952838, -0x952870, -0x9528b5, -0x952bb0, -0x952bba, -0x952bbc, -0x952bbd, -0x952bc2, -0x952bc9, -0x952bcd, -0x952bd4, -0x952bd5, -0x952bd6, -0x952be9, -0x952c19, -0x952c86, -0x952ce7, -0x952d12, -0x952d5f, -0x952db3, -0x952df4, -0x952dfe, -0x952e00, -0x952e01, -0x952e06, -0x952e0d, -0x952e11, -0x952e18, -0x952e19, -0x952e1a, -0x952e2d, -0x952e58, -0x9531a0, -0x9531aa, -0x9531d0, -0x95321f, -0x953259, -0x95329c, -0x953360, -0x953370, -0x9533c4, -0x95342f, -0x95349c, -0x95350a, -0x953543, -0x95355e, -0x953560, -0x9535be, -0x9535c4, -0x95360e, -0x953688, -0x9536b0, -0x9536be, -0x95373b, -0x953783, -0x9537c4, -0x95382b, -0x95389a, -0x953917, -0x953952, -0x9539a6, -0x9539d8, -0x953a30, -0x953ac0, -0x953b2e, -0x953b81, -0x953bea, -0x953c38, -0x953d68, -0x953da8, -0x953dfb, -0x953e58, -0x953ea9, -0x953ef8, -0x953f76, -0x953fc3, -0x95406c, -0x954090, -0x954104, -0x954154, -0x9541ac, -0x954210, -0x954490, -0x9544b0, -0x9544c0, -0x9544f0, -0x954730, -0x95478d, -0x954860, -0x9548d1, -0x954938, -0x95496c, -0x9549a1, -0x9549d7, -0x954a10, -0x954bac, -0x954bfe, -0x954c59, -0x954ccb, -0x954fdb, -0x954fdc, -0x954fe2, -0x954fe3, -0x95503c, -0x955099, -0x9552f0, -0x95536c, -0x9553e2, -0x9553ee, -0x955437, -0x95548c, -0x9554ff, -0x955568, -0x9555dd, -0x9555e9, -0x95562a, -0x955682, -0x9556cc, -0x955727, -0x955733, -0x95580c, -0x95584a, -0x95590c, -0x955a20, -0x955a70, -0x955ad4, -0x955b4f, -0x955bb8, -0x955c90, -0x955cd5, -0x955d34, -0x9560b0, -0x9560c3, -0x956159, -0x9561c2, -0x9563f4, -0x956448, -0x956c94, -0x956ede, -0x956f4a, -0x956f4c, -0x956faa, -0x95702d, -0x957077, -0x9570ce, -0x957121, -0x957177, -0x957290, -0x9572b0, -0x957322, -0x957361, -0x9573a0, -0x9573e2, -0x9573e3, -0x9573eb, -0x9573f2, -0x9573f7, -0x9573f8, -0x9573fa, -0x957400, -0x95740d, -0x95742b, -0x95744e, -0x95746d, -0x9574f8, -0x957512, -0x957577, -0x9575ab, -0x957618, -0x9577b0, -0x95798a, -0x95798c, -0x95799a, -0x9579de, -0x957b70, -0x957c90, -0x957d60, -0x957da9, -0x957e40, -0x957e7b, -0x957eb8, -0x957edc, -0x957ee5, -0x957f10, -0x957f6f, -0x957f88, -0x957fce, -0x958021, -0x95809d, -0x958111, -0x958137, -0x95813c, -0x95816c, -0x95818a, -0x9581d0, -0x95823f, -0x95828c, -0x95830f, -0x958355, -0x95839e, -0x95841c, -0x95842a, -0x958514, -0x958534, -0x958564, -0x95858c, -0x9585e4, -0x958624, -0x95863c, -0x958664, -0x958690, -0x9586ac, -0x9586e8, -0x958744, -0x9587a0, -0x9587d4, -0x9587ec, -0x9588bc, -0x958920, -0x958934, -0x958943, -0x95895a, -0x9589af, -0x958a07, -0x958a4d, -0x958a84, -0x958a8c, -0x958aa8, -0x958af9, -0x958b04, -0x958b11, -0x958b20, -0x958b34, -0x958b50, -0x958b56, -0x958b70, -0x9592da, -0x9592fd, -0x959350, -0x95937d, -0x959392, -0x9593ad, -0x9593d4, -0x9593ed, -0x959408, -0x95942b, -0x959453, -0x959469, -0x959475, -0x959483, -0x95948e, -0x9594a1, -0x9594a8, -0x9594fd, -0x959575, -0x9595b0, -0x959608, -0x95965b, -0x9596a5, -0x95972c, -0x95976c, -0x9597d2, -0x9597d4, -0x959818, -0x95987d, -0x9598f0, -0x95997f, -0x959ad0, -0x959be4, -0x959df8, -0x959e47, -0x959e7b, -0x95a024, -0x95a042, -0x95a141, -0x95a537, -0x95a538, -0x95a545, -0x95a546, -0x95a5b8, -0x95a5e1, -0x95a62d, -0x95a697, -0x95a7f4, -0x95a828, -0x95a88a, -0x95a8b5, -0x95a90c, -0x95aa59, -0x95aa5a, -0x95aa64, -0x95aa65, -0x95ab99, -0x95ab9a, -0x95aba4, -0x95aba5, -0x95ac6b, -0x95ac70, -0x95ac71, -0x95ac7a, -0x95ac83, -0x95ac8c, -0x95ac8d, -0x95ac8e, -0x95ad65, -0x95b15c, -0x95b16b, -0x95b1eb, -0x95b1f0, -0x95b21f, -0x95b264, -0x95b2a5, -0x95b2fe, -0x95b33a, -0x95b3af, -0x95b3d7, -0x95b3d8, -0x95b3df, -0x95b3ea, -0x95b3f2, -0x95b3f7, -0x95b3fc, -0x95b408, -0x95b409, -0x95b428, -0x95b452, -0x95b4b2, -0x95b4fc, -0x95b608, -0x95ba74, -0x95ba9f, -0x95bb8c, -0x95bbb1, -0x95bbca, -0x95bbe4, -0x95bc9b, -0x95bce4, -0x95bcf4, -0x95bcf6, -0x95bd3c, -0x95bd46, -0x95bd48, -0x95bd78, -0x95bde0, -0x95be9c, -0x95beba, -0x95bf78, -0x95bf90, -0x95c028, -0x95c1b0, -0x95c1e1, -0x95c219, -0x95c26d, -0x95c2bf, -0x95c39c, -0x95c3af, -0x95c450, -0x95c466, -0x95c468, -0x95c49c, -0x95c4ba, -0x95c4ec, -0x95c552, -0x95c59a, -0x95c5d1, -0x95c621, -0x95c624, -0x95c62a, -0x95c633, -0x95c638, -0x95c648, -0x95c700, -0x95c774, -0x95c794, -0x95c7fb, -0x95c84f, -0x95c8bd, -0x95c93e, -0x95cb5c, -0x95cb6c, -0x95cb7e, -0x95cb8c, -0x95cbc4, -0x95cbec, -0x95ce2c, -0x95d164, -0x95d16c, -0x95d194, -0x95d1c1, -0x95d226, -0x95d26c, -0x95d2ed, -0x95d374, -0x95d3a4, -0x95d3e4, -0x95d42c, -0x95d48f, -0x95d4c8, -0x95d502, -0x95d5f0, -0x95d602, -0x95d63f, -0x95d69a, -0x95d705, -0x95d784, -0x95d7cb, -0x95d7eb, -0x95d807, -0x95d828, -0x95d85c, -0x95d8af, -0x95d8d8, -0x95d926, -0x95d955, -0x95d9bc, -0x95da15, -0x95da77, -0x95dadc, -0x95db0c, -0x95db94, -0x95dbb1, -0x95dbd0, -0x95dbee, -0x95dc17, -0x95dc40, -0x95dcb5, -0x95dd4c, -0x95dd8c, -0x95ddb0, -0x95ddc8, -0x95de03, -0x95de5c, -0x95de98, -0x95df10, -0x95df9d, -0x95e016, -0x95e0a8, -0x95e126, -0x95e1ac, -0x95e200, -0x95e288, -0x95e309, -0x95e34c, -0x95e38c, -0x95e3c5, -0x95e40c, -0x95e43c, -0x95e500, -0x95e575, -0x95e5a4, -0x95e5c8, -0x95e5f0, -0x95e630, -0x95e664, -0x95e690, -0x95e6e9, -0x95e747, -0x95e828, -0x95e868, -0x95e8d0, -0x95e8e1, -0x95e922, -0x95e964, -0x95e97c, -0x95ea58, -0x95eaad, -0x95eae2, -0x95eb2f, -0x95eb7c, -0x95ebc3, -0x95ebea, -0x95ec70, -0x95eca0, -0x95ed1c, -0x95ed94, -0x95ee06, -0x95ee6c, -0x95eec0, -0x95ef12, -0x95ef8c, -0x95efd5, -0x95f030, -0x95f098, -0x95f118, -0x95f1a4, -0x95f1e8, -0x95f248, -0x95f2d1, -0x95f34e, -0x95f3b0, -0x95f404, -0x95f45c, -0x95f4d4, -0x95f531, -0x95f59e, -0x95f5c4, -0x95f620, -0x95f668, -0x95f6c4, -0x95f71d, -0x95f7ae, -0x95f890, -0x95f8f4, -0x95f934, -0x95f9ab, -0x95f9fc, -0x95fafe, -0x95fb04, -0x95fb5b, -0x95fbb2, -0x95fbf3, -0x95fc4a, -0x95fc76, -0x95fc90, -0x95fcca, -0x95fd2c, -0x95fd49, -0x95fd7f, -0x95fdc8, -0x95fe0c, -0x95fe2a, -0x95fe68, -0x95fe89, -0x95feb8, -0x95fee1, -0x95ff36, -0x95ff3d, -0x9601b6, -0x96020f, -0x9604c1, -0x960733, -0x96075d, -0x9607dc, -0x96080f, -0x960864, -0x9608b6, -0x9608c8, -0x9609ed, -0x960b14, -0x960b4f, -0x960b8b, -0x960bd2, -0x960c15, -0x960c4e, -0x960c8a, -0x960cd1, -0x960d10, -0x960d62, -0x960dc6, -0x960e28, -0x960e82, -0x960eb3, -0x960ef0, -0x960f2c, -0x960f67, -0x960fa3, -0x960fde, -0x961018, -0x961056, -0x9611ec, -0x961238, -0x961289, -0x9612c0, -0x961300, -0x961324, -0x96134c, -0x96139e, -0x9613b4, -0x9613ec, -0x9613f4, -0x961410, -0x961468, -0x961499, -0x961508, -0x96151c, -0x961540, -0x961580, -0x961598, -0x9615f3, -0x9615f8, -0x961623, -0x961628, -0x961684, -0x96169c, -0x9616a0, -0x9616a1, -0x9616a2, -0x9616a9, -0x9616aa, -0x9616b0, -0x9616b1, -0x9616b2, -0x9616c6, -0x9616c7, -0x9616db, -0x9616dc, -0x9616e0, -0x9616f0, -0x9616f4, -0x96171e, -0x961754, -0x96178c, -0x96178d, -0x961794, -0x961795, -0x96195d, -0x961960, -0x961c54, -0x961ca0, -0x961cc9, -0x961d06, -0x961d5d, -0x961d8c, -0x961deb, -0x961e1d, -0x961e9f, -0x961f80, -0x961f9e, -0x961f9f, -0x961fa0, -0x961fa9, -0x961faa, -0x961fac, -0x961fb5, -0x961fd4, -0x961ffd, -0x962008, -0x962026, -0x96202e, -0x962058, -0x9620ae, -0x9620f0, -0x962105, -0x962128, -0x962158, -0x96218b, -0x9621f6, -0x962252, -0x962284, -0x962296, -0x962297, -0x962298, -0x96229c, -0x9622a3, -0x9622a7, -0x9622a8, -0x9622b8, -0x9622bc, -0x9622e8, -0x96236c, -0x9623c7, -0x962428, -0x96248c, -0x9624d6, -0x962500, -0x962512, -0x962564, -0x962662, -0x962753, -0x962812, -0x9629c3, -0x962cf8, -0x962d42, -0x962d61, -0x96508a, -0x9650b8, -0x9602EB] diff --git a/version.py b/version.py index daca2d9b8..28b5cd6a7 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.17.24 f.LUM' +__version__ = '2.17.25 f.LUM' From 275bb21283959b405caaef9cf6d28f9be9f7d8fa Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Fri, 14 Sep 2018 05:14:08 -0300 Subject: [PATCH 492/755] Fire Temple Keysanity Logic Fix You need all the keys to use the lower door. If you put keys behind that door and never unlock it, you'll get key locked. --- Rules.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Rules.py b/Rules.py index 661946036..72020f139 100644 --- a/Rules.py +++ b/Rules.py @@ -430,8 +430,8 @@ def dung_rules_fit0(world): # Fire Temple Vanilla set_rule(world.get_entrance('Fire Temple Early Climb'), lambda state: state.has_GoronTunic() and state.has('Small Key (Fire Temple)', 4) and state.has('Progressive Strength Upgrade') and (state.has_explosives() or ((state.has_bow() or state.has('Progressive Hookshot')) and state.is_adult()))) set_rule(world.get_entrance('Fire Temple Fire Maze Escape'), lambda state: state.has('Small Key (Fire Temple)', 8) or (state.has('Small Key (Fire Temple)', 7) and state.has('Hover Boots') and state.has('Hammer') and state.is_adult())) - set_rule(world.get_location('Fire Temple Fire Dancer Chest'), lambda state: (state.has('Small Key (Fire Temple)', 2) or (not world.keysanity and not world.dungeon_mq['FiT'])) and state.is_adult() and state.has('Hammer')) - set_rule(world.get_location('Fire Temple Boss Key Chest'), lambda state: (state.has('Small Key (Fire Temple)', 2) or (not world.keysanity and not world.dungeon_mq['FiT'])) and state.is_adult() and state.has('Hammer')) + set_rule(world.get_location('Fire Temple Fire Dancer Chest'), lambda state: (state.has('Small Key (Fire Temple)', 8) or (not world.keysanity and not world.dungeon_mq['FiT'])) and state.is_adult() and state.has('Hammer')) + set_rule(world.get_location('Fire Temple Boss Key Chest'), lambda state: (state.has('Small Key (Fire Temple)', 8) or (not world.keysanity and not world.dungeon_mq['FiT'])) and state.is_adult() and state.has('Hammer')) set_rule(world.get_location('Fire Temple Big Lava Room Bombable Chest'), lambda state: state.has('Small Key (Fire Temple)', 2) and state.has_explosives()) set_rule(world.get_location('Fire Temple Big Lava Room Open Chest'), lambda state: state.has('Small Key (Fire Temple)', 2)) set_rule(world.get_location('Fire Temple Map Chest'), lambda state: state.has('Small Key (Fire Temple)', 6) or (state.has('Small Key (Fire Temple)', 5) and state.is_adult() and state.has_bow())) @@ -451,7 +451,7 @@ def dung_rules_fit0(world): set_rule(world.get_location('GS Fire Temple Unmarked Bomb Wall'), lambda state: state.has('Small Key (Fire Temple)', 4) and state.has_explosives()) set_rule(world.get_location('GS Fire Temple East Tower Climb'), lambda state: state.has_ocarina() and state.has('Small Key (Fire Temple)', 6) and state.has('Progressive Hookshot') and state.is_adult()) set_rule(world.get_location('GS Fire Temple East Tower Top'), lambda state: state.has_ocarina() and state.has('Small Key (Fire Temple)', 6) and state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('GS Fire Temple Basement'), lambda state: (state.has('Small Key (Fire Temple)', 2) or (not world.keysanity and not world.dungeon_mq['FiT'])) and state.has('Hammer') and state.is_adult()) + set_rule(world.get_location('GS Fire Temple Basement'), lambda state: (state.has('Small Key (Fire Temple)', 8) or (not world.keysanity and not world.dungeon_mq['FiT'])) and state.has('Hammer') and state.is_adult()) def dung_rules_wt0(world): # Water Temple vanilla From 16b19bfc207b8da1840bd9747ec783e5da81c7d2 Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 14 Sep 2018 16:29:13 -0400 Subject: [PATCH 493/755] Fix typo in all_reachable tooltip (Issue #128) --- Settings.py | 4 ++-- version.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Settings.py b/Settings.py index a29daf456..aac743811 100644 --- a/Settings.py +++ b/Settings.py @@ -400,8 +400,8 @@ def parse_custom_navi_color(s): 'widget': 'Checkbutton', 'default': 'checked', 'tooltip':'''\ - Chests that lock themselves can still exists. - When disabled, some locations and item might + Chests that lock themselves can still exist. + When disabled, some locations and items might not be reachable. ''' }), diff --git a/version.py b/version.py index 28b5cd6a7..63ee6b460 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.17.25 f.LUM' +__version__ = '2.17.26 f.LUM' From 554a3c49706c19a79156e1d8cf6b76b93c110fa7 Mon Sep 17 00:00:00 2001 From: Hamsda Date: Sat, 15 Sep 2018 04:05:04 +0200 Subject: [PATCH 494/755] added clearer hints option including a first draft of hints --- HintList.py | 477 ++++++++++++++++++++++++++-------------------------- Hints.py | 36 ++-- Settings.py | 18 ++ 3 files changed, 275 insertions(+), 256 deletions(-) diff --git a/HintList.py b/HintList.py index 92e342281..4987901cc 100644 --- a/HintList.py +++ b/HintList.py @@ -10,271 +10,272 @@ def __init__(self, name, text, type): self.text = text self.type = type -def _getHint(name): - textOptions, type = hintTable[name] - # Because it doesn't make sense to offer random variants of some hints - if isinstance(textOptions, str): - return (textOptions, type) +def _getHint(name, world): + textOptions, clearText, type = hintTable[name] + if world.clearer_hints == True: + return (clearText, type) else: - return (random.choice(textOptions), type) + # Because it doesn't make sense to offer random variants of some hints + if isinstance(textOptions, str): + return (textOptions, type) + else: + return (random.choice(textOptions), type) -def getHint(name): +def getHint(name, world): ret = Hint for hint in hintTable: if name == hint: - text, type = _getHint(hint) + text, type = _getHint(hint, world) ret = Hint(hint, text, type) break else: - text, type = _getHint('KeyError') + text, type = _getHint('KeyError', world) ret = Hint(hint, text, type) return ret def getHintGroup(group, world): ret = [] for hint in hintTable: - text, type = _getHint(hint) + text, type = _getHint(hint, world) if type == group and not (hint in hintExclusions(world)): ret.append(Hint(hint, text, type)) return ret -#table of hints, format is (name, hint text, type of hint) there are special characters that are read for certain in game commands: +#table of hints, format is (name, hint text, clear hint text, type of hint) there are special characters that are read for certain in game commands: # ^ is a box break # & is a new line # @ will print the player name # # sets color to white (currently only used for dungeon reward hints). -hintTable = {'Hammer': (["the dragon smasher", "a metallic crusher", "the WHAM! weapon"], 'item'), - 'Magic Meter': (["sorcery training", "a stamina scroll", "pixie dust"], 'item'), - 'Double Defense': (["a white outline", "sturdy hearts", "strengthened love"], 'item'), - 'Progressive Hookshot': (["Dampe's keepsake", "an arm extension", "a great chain"], 'item'), - 'Progressive Strength Upgrade': (["power gloves", "arm day results", "the heavy lifty"], 'item'), - 'Hover Boots': (["butter boots", "slippery shoes", "spacewalkers"], 'item'), - 'Master Sword': (["evil's bane"], 'item'), - 'Mirror Shield': (["the reflective rampart", "Medusa's weakness", "a silvered surface"], 'item'), - 'Farores Wind': (["teleportation", "relocation magic", "a warp spell", "green wind"], 'item'), - 'Nayrus Love': (["a safe space", "an impregnable aura", "a blue barrier"], 'item'), - 'Ice Arrows': (["the refrigerator rocket", "frostbite bolts", "cold darts", "freezing projectiles"], 'item'), - 'Lens of Truth': (["a lie detector", "true sight", "a detective's tool"], 'item'), - 'Dins Fire': (["an inferno", "a great heat wave", "a blast of hot air"], 'item'), - 'Ocarina': (["a flute", "a source of music"], 'item'), - 'Fairy Ocarina': (["a brown flute", "a forest instrument"], 'item'), - 'Goron Tunic': (["ruby robes", "fireproof garbs", "mountain clothing"], 'item'), - 'Zora Tunic': (["a sapphire suit", "a fishy outfit", "lake clothing"], 'item'), - 'Iron Boots': (["sink shoes", "watery footwear", "noisy boots"], 'item'), - 'Zeldas Letter': (["an autograph", "royal stationery", "royal snail mail"], 'item'), - 'Zeldas Lullaby': (["a song of royal slumber", "a triforce tune"], 'item'), - 'Nocturne of Shadow': (["a song of spooky spirits", "a graveyard boogie", "a ghastly tune"], 'item'), - 'Bow': (["an archery enabler", "a danger dart launcher"], 'item'), - 'Bomb Bag': (["an explosive container", "kaboom storage"], 'item'), - 'Sarias Song': (["a song of dancing Gorons", "a green girl's tune", "child's forest melody"], 'item'), - 'Song of Time': (["a song 7 years long", "a tune to move blocks"], 'item'), - 'Song of Storms': (["Rain Dance", "a thunderstorm melody", "the tune of windmills"], 'item'), - 'Minuet of Forest': (["the song of tall trees", "adult's forest melody", "a green warp song"], 'item'), - 'Requiem of Spirit': (["a song of sandy statues", "an orange warp song", "the tune of the desert"], 'item'), - 'Slingshot': (["a seed shooter", "a rubberband", "a child's catapult"], 'item'), - 'Boomerang': (["a banana", "a faithful curved stick"], 'item'), - 'Fire Arrows': (["the furnace firearm", "flame darts", "burning projectiles"], 'item'), - 'Ocarina of Time': (["a blue flute", "a royal instrument"], 'item'), - 'Bottle': (["a glass container", "an empty jar", "something to be filled"], 'item'), - 'Bottle with Letter': (["a call for help", "an SOS jar", "fishy stationery"], 'item'), - 'Bottle with Milk': (["cow juice", "a white liquid"], 'item'), - 'Bottle with Red Potion': (["a vitality vial", "a red liquid"], 'item'), - 'Bottle with Green Potion': (["a magic mixture", "a green liquid"], 'item'), - 'Bottle with Blue Potion': (["a cure-all antidote", "a blue liquid"], 'item'), - 'Bottle with Fairy': (["an imprisoned fairy", "an extra life"], 'item'), - 'Bottle with Fish': (["an aquarium", "a contained sea beast"], 'item'), - 'Bottle with Blue Fire': (["a conflagration canteen", "an icemelt jar"], 'item'), - 'Bottle with Bugs': (["an insectarium", "skultula finders", "a digging trio"], 'item'), - 'Bottle with Poe': (["a spooky ghost", "a face in the jar"], 'item'), - 'Progressive Scale': (["vertical swim depth", "a dive enhancer"], 'item'), - 'Stone of Agony': (["a vibrating rock", "a clue finder"], 'item'), - 'Eponas Song': (["an equestrian etude", "a ranch song"], 'item'), - 'Epona': (["a horse", "a four legged friend"], 'item'), - 'Gerudo Membership Card': (["a GT subscription", "a desert tribe's pass"], 'item'), - 'Progressive Wallet': (["a mo' money holder", "a gem purse", "financial capacity"], 'item'), - 'Bolero of Fire': (["a song of lethal lava", "a red warp song", "a volcano tune", "a song of a red sea"], 'item'), - 'Suns Song': (["Sunny Day", "a time advancer", "a day/night melody", "the gibdo's bane"], 'item'), - 'Deku Shield': (["a wooden ward", "forest protection"], 'item'), - 'Hylian Shield': (["a steel safeguard", "a Hylian relic", "metallic protection"], 'item'), - 'Deku Stick Capacity': (["a lumber rack", "more flammable twigs"], 'item'), - 'Deku Nut Capacity': (["more nuts", "flashbang storage"], 'item'), - 'Prelude of Light': (["a luminous prologue melody", "a yellow warp song", "the temple traveler"], 'item'), - 'Serenade of Water': (["a song of a damp ditch", "a blue warp song", "the lake's tune"], 'item'), - 'Heart Container': (["a lot of love", "a Valentine's gift", "a boss's organ"], 'item'), - 'Piece of Heart': (["love", "a partial Valentine"], 'item'), - 'Piece of Heart (Treasure Chest Game)': (["love", "a partial Valentine"], 'item'), - 'Recovery Heart': (["a free heal", "disappointing love"], 'item'), - 'Rupee (1)': (["a unique coin", "a penny", "a tiny coin", "a green gem"], 'item'), - 'Rupees (5)': (["a common coin", "a blue gem"], 'item'), - 'Rupees (20)': (["couch cash", "a red gem"], 'item'), - 'Rupees (50)': (["big bucks", "a purple gem", "wealth"], 'item'), - 'Rupees (200)': (["a juicy jackpot", "a yellow gem", "great wealth"], 'item'), - 'Light Arrows': (["the shining shot", "glowing darts", "Ganondorf's bane"], 'item'), - 'Kokiri Sword': (["a butter knife", "a tiny, sharp blade", "a child's blade"], 'item'), - 'Biggoron Sword': (["an unwieldy knife", "a two-handed blade"], 'item'), - 'Pocket Egg': (["a Cucco container", "a Cucco, eventually", "a fowl youth"], 'item'), - 'Weird Egg': (["a chicken dilemma"], 'item'), - 'Pocket Cucco': (["a little clucker"], 'item'), - 'Cojiro': (["a cerulean capon"], 'item'), - 'Odd Mushroom': (["a powder ingredient"], 'item'), - 'Odd Potion': (["Granny's goodies"], 'item'), - 'Poachers Saw': (["a tree killer"], 'item'), - 'Broken Sword': (["a shattered slicer"], 'item'), - 'Prescription': (["a pill pamphlet", "a Doctor's slip"], 'item'), - 'Eyeball Frog': (["a perceiving polliwog"], 'item'), - 'Eyedrops': (["a vision vial"], 'item'), - 'Claim Check': (["a three day wait"], 'item'), - 'Map': (["a dungeon atlas", "blueprints"], 'item'), - 'Compass': (["a treasure tracker", "a magnetic needle"], 'item'), - 'BossKey': (["a master of unlocking", "a dungeon's final pass"], 'item'), - 'SmallKey': (["a tool for unlocking", "a dungeon pass", "a lock remover", "a legal lockpick", "a portal opener"], 'item'), - 'FortressSmallKey': (["a get out of jail free card"], 'item'), - 'KeyError': (["something mysterious", "an unknown treasure"], 'item'), - 'Arrows (5)': (["danger darts", "piercing ammunition", "a quiver's contents"], 'item'), - 'Arrows (10)': (["danger darts", "piercing ammunition", "a quiver's contents"], 'item'), - 'Arrows (30)': (["danger darts", "piercing ammunition", "a quiver's contents"], 'item'), - 'Bombs (5)': (["explosives", "sparky boom balls", "fireworks"], 'item'), - 'Bombs (10)': (["explosives", "sparky boom balls", "fireworks"], 'item'), - 'Bombs (20)': (["lots-o-explosives", "sparky boom balls", "fireworks"], 'item'), - 'Ice Trap': (["a gift from Ganon", "a chilling discovery", "an icy blast", "an unwanted freeze", "a wintery surprise"], 'item'), - 'Magic Bean': (["wizardly legumes"], 'item'), - 'Bombchus': (["mice bombs", "hot-headed friends", "remote mines"], 'item'), - 'Bombchus (5)': (["mice bombs", "hot-headed friends", "remote mines"], 'item'), - 'Bombchus (10)': (["mice bombs", "hot-headed friends", "remote mines"], 'item'), - 'Bombchus (20)': (["mice bombs", "hot-headed friends", "remote mines"], 'item'), - 'Deku Nuts (5)': (["some nuts", "some flashbangs", "Sheik's ammo"], 'item'), - 'Deku Nuts (10)': (["lots-o-nuts", "lots of flashbangs", "Sheik's ammo"], 'item'), - 'Gold Skulltulla Token': (["proof of destruction", "an arachnid chip", "spider remains"], 'item'), +hintTable = {'Hammer': (["the dragon smasher", "a metallic crusher", "the WHAM! weapon"], "the hammer", 'item'), + 'Magic Meter': (["sorcery training", "a stamina scroll", "pixie dust"], "magic", 'item'), + 'Double Defense': (["a white outline", "sturdy hearts", "strengthened love"], "double defense", 'item'), + 'Progressive Hookshot': (["Dampe's keepsake", "an arm extension", "a great chain"], "a hookshot", 'item'), + 'Progressive Strength Upgrade': (["power gloves", "arm day results", "the heavy lifty"], "a strength enhancement", 'item'), + 'Hover Boots': (["butter boots", "slippery shoes", "spacewalkers"], "the hover boots", 'item'), + 'Master Sword': (["evil's bane"], "the master sword", 'item'), + 'Mirror Shield': (["the reflective rampart", "Medusa's weakness", "a silvered surface"], "the reflecting shield", 'item'), + 'Farores Wind': (["teleportation", "relocation magic", "a warp spell", "green wind"], "Farores spell", 'item'), + 'Nayrus Love': (["a safe space", "an impregnable aura", "a blue barrier"], "Nayrus spell", 'item'), + 'Ice Arrows': (["the refrigerator rocket", "frostbite bolts", "cold darts", "freezing projectiles"], "the ice arrows", 'item'), + 'Lens of Truth': (["a lie detector", "true sight", "a detective's tool"], "the lens of truth", 'item'), + 'Dins Fire': (["an inferno", "a great heat wave", "a blast of hot air"], "Dins spell", 'item'), + 'Ocarina': (["a flute", "a source of music"], "an ocarina", 'item'), + 'Fairy Ocarina': (["a brown flute", "a forest instrument"], "the fairy ocarina", 'item'), + 'Goron Tunic': (["ruby robes", "fireproof garbs", "mountain clothing"], "a red runic", 'item'), + 'Zora Tunic': (["a sapphire suit", "a fishy outfit", "lake clothing"], "a blue tunic", 'item'), + 'Iron Boots': (["sink shoes", "watery footwear", "noisy boots"], "the iron boots", 'item'), + 'Zeldas Letter': (["an autograph", "royal stationery", "royal snail mail"], "Zeldas letter", 'item'), + 'Zeldas Lullaby': (["a song of royal slumber", "a triforce tune"], "Zeldas lullaby", 'item'), + 'Nocturne of Shadow': (["a song of spooky spirits", "a graveyard boogie", "a ghastly tune"], "the nocturne of shadow", 'item'), + 'Bow': (["an archery enabler", "a danger dart launcher"], "a bow", 'item'), + 'Bomb Bag': (["an explosive container", "kaboom storage"], "a bomb bag", 'item'), + 'Sarias Song': (["a song of dancing Gorons", "a green girl's tune", "child's forest melody"], "Sarias song", 'item'), + 'Song of Time': (["a song 7 years long", "a tune to move blocks"], "the song of time", 'item'), + 'Song of Storms': (["Rain Dance", "a thunderstorm melody", "the tune of windmills"], "the song of storms", 'item'), + 'Minuet of Forest': (["the song of tall trees", "adult's forest melody", "a green warp song"], "the minuet of forest", 'item'), + 'Requiem of Spirit': (["a song of sandy statues", "an orange warp song", "the tune of the desert"], "the requiem of spirit", 'item'), + 'Slingshot': (["a seed shooter", "a rubberband", "a child's catapult"], "a slingshot", 'item'), + 'Boomerang': (["a banana", "a faithful curved stick"], "the boomerang", 'item'), + 'Fire Arrows': (["the furnace firearm", "flame darts", "burning projectiles"], "the fire arrows", 'item'), + 'Ocarina of Time': (["a blue flute", "a royal instrument"], "the ocarina of time", 'item'), + 'Bottle': (["a glass container", "an empty jar", "something to be filled"], "a bottle", 'item'), + 'Bottle with Letter': (["a call for help", "an SOS jar", "fishy stationery"], "Rutos letter", 'item'), + 'Bottle with Milk': (["cow juice", "a white liquid"], "milk", 'item'), + 'Bottle with Red Potion': (["a vitality vial", "a red liquid"], "a red potion", 'item'), + 'Bottle with Green Potion': (["a magic mixture", "a green liquid"], "a green potion", 'item'), + 'Bottle with Blue Potion': (["a cure-all antidote", "a blue liquid"], "a blue potion", 'item'), + 'Bottle with Fairy': (["an imprisoned fairy", "an extra life"], "a fairy", 'item'), + 'Bottle with Fish': (["an aquarium", "a contained sea beast"], "a fish", 'item'), + 'Bottle with Blue Fire': (["a conflagration canteen", "an icemelt jar"], "blue fire", 'item'), + 'Bottle with Bugs': (["an insectarium", "skultula finders", "a digging trio"], "bugs", 'item'), + 'Bottle with Poe': (["a spooky ghost", "a face in the jar"], "a poe", 'item'), + 'Progressive Scale': (["vertical swim depth", "a dive enhancer"], "a scale", 'item'), + 'Stone of Agony': (["a vibrating rock", "a clue finder"], "the stone of agony", 'item'), + 'Eponas Song': (["an equestrian etude", "a ranch song"], "Eponas song", 'item'), + 'Epona': (["a horse", "a four legged friend"], "Epona", 'item'), + 'Gerudo Membership Card': (["a GT subscription", "a desert tribe's pass"], "the Gerudo card", 'item'), + 'Progressive Wallet': (["a mo' money holder", "a gem purse", "financial capacity"], "a wallet", 'item'), + 'Bolero of Fire': (["a song of lethal lava", "a red warp song", "a volcano tune", "a song of a red sea"], "the bolero of fire", 'item'), + 'Suns Song': (["Sunny Day", "a time advancer", "a day/night melody", "the gibdo's bane"], "the suns song", 'item'), + 'Deku Shield': (["a wooden ward", "forest protection"], "a deku shield", 'item'), + 'Hylian Shield': (["a steel safeguard", "a Hylian relic", "metallic protection"], "a hylian shield", 'item'), + 'Deku Stick Capacity': (["a lumber rack", "more flammable twigs"], "stick capacity", 'item'), + 'Deku Nut Capacity': (["more nuts", "flashbang storage"], "nut capacity", 'item'), + 'Prelude of Light': (["a luminous prologue melody", "a yellow warp song", "the temple traveler"], "the prelude of light", 'item'), + 'Serenade of Water': (["a song of a damp ditch", "a blue warp song", "the lake's tune"], "the serenade of water", 'item'), + 'Heart Container': (["a lot of love", "a Valentine's gift", "a boss's organ"], "a heart container", 'item'), + 'Piece of Heart': (["love", "a partial Valentine"], "a heart piece", 'item'), + 'Piece of Heart (Treasure Chest Game)': (["love", "a partial Valentine"], "a heart piece", 'item'), + 'Recovery Heart': (["a free heal", "disappointing love"], "a heal", 'item'), + 'Rupee (1)': (["a unique coin", "a penny", "a tiny coin", "a green gem"], "a rupee", 'item'), + 'Rupees (5)': (["a common coin", "a blue gem"], "five rupees", 'item'), + 'Rupees (20)': (["couch cash", "a red gem"], "twenty rupees", 'item'), + 'Rupees (50)': (["big bucks", "a purple gem", "wealth"], "fifty rupees", 'item'), + 'Rupees (200)': (["a juicy jackpot", "a yellow gem", "great wealth"], "two hundred rupees", 'item'), + 'Light Arrows': (["the shining shot", "glowing darts", "Ganondorf's bane"], "the light arrows", 'item'), + 'Kokiri Sword': (["a butter knife", "a tiny, sharp blade", "a child's blade"], "the kokiri sword", 'item'), + 'Biggoron Sword': (["an unwieldy knife", "a two-handed blade"], "the Biggoron sword", 'item'), + 'Pocket Egg': (["a Cucco container", "a Cucco, eventually", "a fowl youth"], "a pocket egg", 'item'), + 'Weird Egg': (["a chicken dilemma"], "a weird egg", 'item'), + 'Pocket Cucco': (["a little clucker"], "a pocket cucco", 'item'), + 'Cojiro': (["a cerulean capon"], "Cojiro", 'item'), + 'Odd Mushroom': (["a powder ingredient"], "an odd mushroom", 'item'), + 'Odd Potion': (["Granny's goodies"], "an odd potion", 'item'), + 'Poachers Saw': (["a tree killer"], "the poachers saw", 'item'), + 'Broken Sword': (["a shattered slicer"], "a broken sword", 'item'), + 'Prescription': (["a pill pamphlet", "a Doctor's slip"], "a prescription", 'item'), + 'Eyeball Frog': (["a perceiving polliwog"], "an eyeball frog", 'item'), + 'Eyedrops': (["a vision vial"], "eyedrops", 'item'), + 'Claim Check': (["a three day wait"], "a claim check", 'item'), + 'Map': (["a dungeon atlas", "blueprints"], "a map", 'item'), + 'Compass': (["a treasure tracker", "a magnetic needle"], "a compass", 'item'), + 'BossKey': (["a master of unlocking", "a dungeon's final pass"], "a boss key", 'item'), + 'SmallKey': (["a tool for unlocking", "a dungeon pass", "a lock remover", "a legal lockpick", "a portal opener"], "a small key", 'item'), + 'FortressSmallKey': (["a get out of jail free card"], "a jail key", 'item'), + 'KeyError': (["something mysterious", "an unknown treasure"], "something unknown", 'item'), + 'Arrows (5)': (["danger darts", "piercing ammunition", "a quiver's contents"], "arrows", 'item'), + 'Arrows (10)': (["danger darts", "piercing ammunition", "a quiver's contents"], "arrows", 'item'), + 'Arrows (30)': (["danger darts", "piercing ammunition", "a quiver's contents"], "arrows", 'item'), + 'Bombs (5)': (["explosives", "sparky boom balls", "fireworks"], "bombs", 'item'), + 'Bombs (10)': (["explosives", "sparky boom balls", "fireworks"], "bombs", 'item'), + 'Bombs (20)': (["lots-o-explosives", "sparky boom balls", "fireworks"], "bombs", 'item'), + 'Ice Trap': (["a gift from Ganon", "a chilling discovery", "an icy blast", "an unwanted freeze", "a wintery surprise"], "a trap", 'item'), + 'Magic Bean': (["wizardly legumes"], "a bean", 'item'), + 'Bombchus': (["mice bombs", "hot-headed friends", "remote mines"], "bombchus", 'item'), + 'Bombchus (5)': (["mice bombs", "hot-headed friends", "remote mines"], "bombchus", 'item'), + 'Bombchus (10)': (["mice bombs", "hot-headed friends", "remote mines"], "bombchus", 'item'), + 'Bombchus (20)': (["mice bombs", "hot-headed friends", "remote mines"], "bombchus", 'item'), + 'Deku Nuts (5)': (["some nuts", "some flashbangs", "Sheik's ammo"], "nuts", 'item'), + 'Deku Nuts (10)': (["lots-o-nuts", "lots of flashbangs", "Sheik's ammo"], "nuts", 'item'), + 'Gold Skulltulla Token': (["proof of destruction", "an arachnid chip", "spider remains"], "a golden token", 'item'), - '10 Big Poes': (["They say that Big Poes leads to", "They say that ghost hunters will be rewarded with"], 'alwaysLocation'), - 'Deku Theater Mask of Truth': ("They say that the Mask of Truth yields", 'alwaysLocation'), - '30 Gold Skulltulla Reward': ("They say that slaying 30 Gold Skulltulas reveals", 'alwaysLocation'), - '40 Gold Skulltulla Reward': ("They say that slaying 40 Gold Skulltulas reveals", 'alwaysLocation'), - '50 Gold Skulltulla Reward': ("They say that slaying 50 Gold Skulltulas reveals", 'alwaysLocation'), - 'Song from Ocarina of Time': ("They say the Ocarina of Time teaches", 'alwaysLocation'), - 'Biggoron': ("They say that Biggoron crafts", 'alwaysLocation'), - 'Child Fishing': ("They say that fishing in youth bestows", 'location'), - 'Adult Fishing': ("They say that fishing in maturity bestows", 'location'), - '20 Gold Skulltulla Reward': ("They say that slaying 20 Gold Skulltulas reveals", 'location'), - 'Treasure Chest Game': (["They say that gambling grants", "They say there is a 1/32 chance to win"], 'location'), - 'Darunias Joy': ("They say that Darunia's dance leads to", 'location'), - 'Frog Ocarina Game': (["They say The Frogs of Zora River hold", "They say that the musical amphibians have found"], 'location'), - 'Horseback Archery 1500 Points': ("They say that mastery of horseback archery grants", 'location'), - 'Lake Hylia Sun': (["They say staring into the sun grants", "They say that acts of solar aggression are punished with"], 'location'), - 'Heart Piece Grave Chest': ("They say there's a hidden location where the Sun's Song spawns", 'location'), - 'Goron City Leftmost Maze Chest': ("They say in Goron City the hammer unlocks", 'location'), - 'Chest Above King Dodongo': ("They say that the chest above the Infernal Dinosaur contains", 'location'), - 'Forest Temple Floormaster Chest': ("Deep in the forest, shadows guard a chest containing", 'location'), - 'Fire Temple Scarecrow Chest': ("They say high in the Fire Temple, Pierre hid", 'location'), - 'Fire Temple Megaton Hammer Chest': (["They say that the highest chest in the crater holds"], 'location'), - 'Water Temple River Chest': ("They say deep under the lake, beyond the currents, hides", 'location'), - 'Water Temple Boss Key Chest': ("Deep under the lake, the gilded chest contains", 'location'), - 'Gerudo Training Grounds Underwater Silver Rupee Chest': ("They say those who seek sunken silver rupees will find", 'location'), - 'Gerudo Training Grounds Maze Path Final Chest': ("They say that past all the locked doors is", 'location'), - 'Bottom of the Well Defeat Boss': (["They say that Dead Hand holds", "They say that draining the water reveals a monster guarding"], 'location'), - 'Silver Gauntlets Chest': ("They say that upon the Colossus's southern edge is", 'location'), - 'Mirror Shield Chest': ("They say that upon the Colossus's northern edge is", 'location'), - 'Shadow Temple Hidden Floormaster Chest': (["They say that shadows in an invisible maze guard", "They say that after a free boat ride comes"], 'location'), - 'Haunted Wasteland Structure Chest': (["They say that deep in the Wasteland is", "They say that beneath the sands lies"], 'location'), - 'Composer Grave Chest': ("They say that the Composer Brothers hid", 'location'), - 'Song from Composer Grave': ("They say that the Composer Brothers wrote", 'location'), - 'Song at Windmill': (["They say that Guru-guru is driven mad by", "They say the windmill echoes with"], 'location'), - 'Sheik Forest Song': ("They say that deep in the forest Sheik teaches", 'location'), - 'Sheik at Temple': ("They say that Sheik waits at a monument to time to teach", 'location'), - 'Sheik in Crater': ("They say that the crater's melody is", 'location'), - 'Sheik in Ice Cavern': ("They say that the frozen cavern echoes with", 'location'), - 'Sheik in Kakariko': ("They say that a ravaged village mourns with", 'location'), - 'Sheik at Colossus': ("They say that a hero ventures beyond the Wasteland to learn", 'location'), - 'Zoras Fountain Bottom Freestanding PoH': ("They say under the icy waters lies", 'location'), - 'Colossus Freestanding PoH': ("They say that riding a beanstalk in the desert leads to", 'location'), - 'DM Crater Volcano Freestanding PoH': ("They say that riding a beanstalk in the crater leads to", 'location'), - 'Goron City Pot Freestanding PoH': ("They say that spinning Goron pottery contains", 'location'), + '10 Big Poes': ("They say that ghost hunters will be rewarded with", "They say that Big Poes leads to", 'alwaysLocation'), + 'Deku Theater Mask of Truth': ("They say that the Mask of Truth yields", "They say that the Mask of Truth yields", 'alwaysLocation'), + '30 Gold Skulltulla Reward': ("They say that slaying 30 Gold Skulltulas reveals", "They say that slaying 30 Gold Skulltulas reveals", 'alwaysLocation'), + '40 Gold Skulltulla Reward': ("They say that slaying 40 Gold Skulltulas reveals", "They say that slaying 40 Gold Skulltulas reveals", 'alwaysLocation'), + '50 Gold Skulltulla Reward': ("They say that slaying 50 Gold Skulltulas reveals", "They say that slaying 50 Gold Skulltulas reveals", 'alwaysLocation'), + 'Song from Ocarina of Time': ("They say the Ocarina of Time teaches", "They say the Ocarina of Time teaches", 'alwaysLocation'), + 'Biggoron': ("They say that Biggoron crafts", "They say that Biggoron crafts", 'alwaysLocation'), + 'Child Fishing': ("They say that fishing in youth bestows", "They say that fishing in youth bestows", 'location'), + 'Adult Fishing': ("They say that fishing in maturity bestows", "They say that fishing in maturity bestows", 'location'), + '20 Gold Skulltulla Reward': ("They say that slaying 20 Gold Skulltulas reveals", "They say that slaying 20 Gold Skulltulas reveals", 'location'), + 'Treasure Chest Game': (["They say that gambling grants", "They say there is a 1/32 chance to win"], "They say that the treasure chest game grants", 'location'), + 'Darunias Joy': ("They say that Darunia's dance leads to", "They say that Darunia's dance leads to", 'location'), + 'Frog Ocarina Game': ("They say that the musical amphibians have found", "They say The Frogs of Zora River hold", 'location'), + 'Horseback Archery 1500 Points': ("They say that mastery of horseback archery grants", "They say that mastery of horseback archery grants", 'location'), + 'Lake Hylia Sun': (["They say staring into the sun grants", "They say that acts of solar aggression are punished with"], "They say that shooting the sun grants", 'location'), + 'Heart Piece Grave Chest': ("They say there's a hidden location where the Sun's Song spawns", "They say there's a hidden location where the Sun's Song spawns", 'location'), + 'Goron City Leftmost Maze Chest': ("They say in Goron City the hammer unlocks", "They say in Goron City the hammer unlocks", 'location'), + 'Chest Above King Dodongo': ("They say that the chest above the Infernal Dinosaur contains", "They say that the chest above King Dodongo contains", 'location'), + 'Forest Temple Floormaster Chest': ("Deep in the forest, shadows guard a chest containing", "They say that a Floormaster in Forest Temple guards", 'location'), + 'Fire Temple Scarecrow Chest': ("They say high in the Fire Temple, Pierre hid", "They say high in the Fire Temple, Pierre hid", 'location'), + 'Fire Temple Megaton Hammer Chest': ("They say that the highest chest in the crater holds", "They say that the highest chest in the Fire Temple holds", 'location'), + 'Water Temple River Chest': ("They say deep under the lake, beyond the currents, hides", "They say deep under the lake, beyond the currents, hides", 'location'), + 'Water Temple Boss Key Chest': ("Deep under the lake, the gilded chest contains", "Deep under the lake, the gilded chest contains", 'location'), + 'Gerudo Training Grounds Underwater Silver Rupee Chest': ("They say those who seek sunken silver rupees will find", "They say those who seek sunken silver rupees will find", 'location'), + 'Gerudo Training Grounds Maze Path Final Chest': ("They say that past all the locked doors is", "They say that past all the locked doors is", 'location'), + 'Bottom of the Well Defeat Boss': ("They say that draining the water reveals a monster guarding", "They say that Dead Hand holds", 'location'), + 'Silver Gauntlets Chest': ("They say that upon the Colossus's southern edge is", "They say that upon the Colossus's southern edge is", 'location'), + 'Mirror Shield Chest': ("They say that upon the Colossus's northern edge is", "They say that upon the Colossus's northern edge is", 'location'), + 'Shadow Temple Hidden Floormaster Chest': (["They say that shadows in an invisible maze guard", "They say that after a free boat ride comes"], "They say that a Floormaster in Shadow Temple guards", 'location'), + 'Haunted Wasteland Structure Chest': (["They say that deep in the Wasteland is", "They say that beneath the sands lies"], "They say that deep in the Wasteland is", 'location'), + 'Composer Grave Chest': ("They say that the Composer Brothers hid", "They say that the Composer Brothers hid", 'location'), + 'Song from Composer Grave': ("They say that the Composer Brothers wrote", "They say that the Composer Brothers wrote", 'location'), + 'Song at Windmill': (["They say that Guru-guru is driven mad by", "They say the windmill echoes with"], "They say the windmill echoes with", 'location'), + 'Sheik Forest Song': ("They say that deep in the forest Sheik teaches", "They say that deep in the forest Sheik teaches", 'location'), + 'Sheik at Temple': ("They say that Sheik waits at a monument to time to teach", "They say that Sheik waits at a monument to time to teach", 'location'), + 'Sheik in Crater': ("They say that the crater's melody is", "They say that the crater's melody is", 'location'), + 'Sheik in Ice Cavern': ("They say that the frozen cavern echoes with", "They say that the frozen cavern echoes with", 'location'), + 'Sheik in Kakariko': ("They say that a ravaged village mourns with", "They say that a ravaged village mourns with", 'location'), + 'Sheik at Colossus': ("They say that a hero ventures beyond the Wasteland to learn", "They say that a hero ventures beyond the Wasteland to learn", 'location'), + 'Zoras Fountain Bottom Freestanding PoH': ("They say under the icy waters lies", "They say under the icy waters lies", 'location'), + 'Colossus Freestanding PoH': ("They say that riding a beanstalk in the desert leads to", "They say that riding a beanstalk in the desert leads to", 'location'), + 'DM Crater Volcano Freestanding PoH': ("They say that riding a beanstalk in the crater leads to", "They say that riding a beanstalk in the crater leads to", 'location'), + 'Goron City Pot Freestanding PoH': ("They say that spinning Goron pottery contains", "They say that spinning Goron pottery contains", 'location'), - '1001': ("Ganondorf 2020!", 'junkHint'), - '1002': ("They say that monarchy is a terrible system of governance.", 'junkHint'), - '1003': ("They say that Zelda is a poor leader.", 'junkHint'), - '1004': ("These hints can be quite useful. This is an exception.", 'junkHint'), - '1006': ("They say that all the Zora drowned in Wind Waker.", 'junkHint'), - '1007': ("They say that PJ64 is a terrible emulator.", 'junkHint'), - '1008': ("'Member when Ganon was a blue pig?^I 'member.", 'junkHint'), - '1009': ("One who does not have Triforce can't go in.", 'junkHint'), - '1010': ("Save your future, end the Happy Mask Salesman.", 'junkHint'), - '1012': ("I'm stoned. Get it?", 'junkHint'), - '1013': ("Hoot! Hoot! Would you like me to repeat that?", 'junkHint'), - '1014': ("Gorons are stupid. They eat rocks.", 'junkHint'), - '1015': ("They say that Lon Lon Ranch prospered under Ingo.", 'junkHint'), - '1016': ("The single rupee is a unique item.", 'junkHint'), - '1017': ("Without the Lens of Truth, the Treasure Chest Mini-Game is a 1 out of 32 chance.^Good luck!", 'junkHint'), - '1018': ("Use bombs wisely.", 'junkHint'), - '1021': ("I found you, faker!", 'junkHint'), - '1022': ("You're comparing yourself to me?^Ha! You're not even good enough to be my fake.", 'junkHint'), - '1023': ("I'll make you eat those words.", 'junkHint'), - '1024': ("What happened to Sheik?", 'junkHint'), - '1025': ("L2P @.", 'junkHint'), - '1026': ("I heard @ isn't very good at Zelda.", 'junkHint'), - '1027': ("I'm Lonk from Pennsylvania.", 'junkHint'), - '1028': ("I bet you'd like to have more bombs.", 'junkHint'), - '1029': ("When all else fails, use Fire.", 'junkHint'), - '1030': ("Here's a hint, @. Don't be bad.", 'junkHint'), - '1031': ("Game Over. Return of Ganon.", 'junkHint'), - '1032': ("May the way of the Hero lead to the Triforce.", 'junkHint'), - '1033': ("Can't find an item? Scan an Amiibo.", 'junkHint'), - '1034': ("They say this game has just a few glitches.", 'junkHint'), - '1035': ("BRRING BRRING This is Ulrira. Wrong number?", 'junkHint'), - '1036': ("Tingle Tingle Kooloo Limpah", 'junkHint'), - '1037': ("L is real 2041", 'junkHint'), - '1038': ("They say that Ganondorf will appear in the next Mario Tennis.", 'junkHint'), - '1039': ("Medigoron sells the earliest Breath of the Wild demo.", 'junkHint'), - '1040': ("There's a reason why I am special inquisitor!", 'junkHint'), - '1041': ("You were almost a @ sandwich.", 'junkHint'), - '1042': ("I'm a helpful hint Gossip Stone!^See, I'm helping.", 'junkHint'), - '1043': ("Dear @, please come to the castle. I've baked a cake for you.&&Yours truly, princess Zelda.", 'junkHint'), - '1044': ("I like shorts! They're comfy and easy to wear!", 'junkHint'), - '1044': ("They say all toasters toast toast.", 'junkHint'), - '1045': ("They say that Okami is the best Zelda game.", 'junkHint'), - '1046': ("They say that quest guidance can be found at a talking rock.", 'junkHint'), - '1047': ("They say that victory can be found after the Ganon fight.", 'junkHint'), - '1047': ("They say that the final item you're looking for can be found somewhere in Hyrule", 'junkHint'), + '1001': ("Ganondorf 2020!", "Ganondorf 2020!", 'junkHint'), + '1002': ("They say that monarchy is a terrible system of governance.", "They say that monarchy is a terrible system of governance.", 'junkHint'), + '1003': ("They say that Zelda is a poor leader.", "They say that Zelda is a poor leader.", 'junkHint'), + '1004': ("These hints can be quite useful. This is an exception.", "These hints can be quite useful. This is an exception.", 'junkHint'), + '1006': ("They say that all the Zora drowned in Wind Waker.", "They say that all the Zora drowned in Wind Waker.", 'junkHint'), + '1007': ("They say that PJ64 is a terrible emulator.", "They say that PJ64 is a terrible emulator.", 'junkHint'), + '1008': ("'Member when Ganon was a blue pig?^I 'member.", "'Member when Ganon was a blue pig?^I 'member.", 'junkHint'), + '1009': ("One who does not have Triforce can't go in.", "One who does not have Triforce can't go in.", 'junkHint'), + '1010': ("Save your future, end the Happy Mask Salesman.", "Save your future, end the Happy Mask Salesman.", 'junkHint'), + '1012': ("I'm stoned. Get it?", "I'm stoned. Get it?", 'junkHint'), + '1013': ("Hoot! Hoot! Would you like me to repeat that?", "Hoot! Hoot! Would you like me to repeat that?", 'junkHint'), + '1014': ("Gorons are stupid. They eat rocks.", "Gorons are stupid. They eat rocks.", 'junkHint'), + '1015': ("They say that Lon Lon Ranch prospered under Ingo.", "They say that Lon Lon Ranch prospered under Ingo.", 'junkHint'), + '1016': ("The single rupee is a unique item.", "The single rupee is a unique item.", 'junkHint'), + '1017': ("Without the Lens of Truth, the Treasure Chest Mini-Game is a 1 out of 32 chance.^Good luck!", "Without the Lens of Truth, the Treasure Chest Mini-Game is a 1 out of 32 chance.^Good luck!", 'junkHint'), + '1018': ("Use bombs wisely.", "Use bombs wisely.", 'junkHint'), + '1021': ("I found you, faker!", "I found you, faker!", 'junkHint'), + '1022': ("You're comparing yourself to me?^Ha! You're not even good enough to be my fake.", "You're comparing yourself to me?^Ha! You're not even good enough to be my fake.", 'junkHint'), + '1023': ("I'll make you eat those words.", "I'll make you eat those words.", 'junkHint'), + '1024': ("What happened to Sheik?", "What happened to Sheik?", 'junkHint'), + '1025': ("L2P @.", "L2P @.", 'junkHint'), + '1026': ("I heard @ isn't very good at Zelda.", "I heard @ isn't very good at Zelda.", 'junkHint'), + '1027': ("I'm Lonk from Pennsylvania.", "I'm Lonk from Pennsylvania.", 'junkHint'), + '1028': ("I bet you'd like to have more bombs.", "I bet you'd like to have more bombs.", 'junkHint'), + '1029': ("When all else fails, use Fire.", "When all else fails, use Fire.", 'junkHint'), + '1030': ("Here's a hint, @. Don't be bad.", "Here's a hint, @. Don't be bad.", 'junkHint'), + '1031': ("Game Over. Return of Ganon.", "Game Over. Return of Ganon.", 'junkHint'), + '1032': ("May the way of the Hero lead to the Triforce.", "May the way of the Hero lead to the Triforce.", 'junkHint'), + '1033': ("Can't find an item? Scan an Amiibo.", "Can't find an item? Scan an Amiibo.", 'junkHint'), + '1034': ("They say this game has just a few glitches.", "They say this game has just a few glitches.", 'junkHint'), + '1035': ("BRRING BRRING This is Ulrira. Wrong number?", "BRRING BRRING This is Ulrira. Wrong number?", 'junkHint'), + '1036': ("Tingle Tingle Kooloo Limpah", "Tingle Tingle Kooloo Limpah", 'junkHint'), + '1037': ("L is real 2041", "L is real 2041", 'junkHint'), + '1038': ("They say that Ganondorf will appear in the next Mario Tennis.", "They say that Ganondorf will appear in the next Mario Tennis.", 'junkHint'), + '1039': ("Medigoron sells the earliest Breath of the Wild demo.", "Medigoron sells the earliest Breath of the Wild demo.", 'junkHint'), + '1040': ("There's a reason why I am special inquisitor!", "There's a reason why I am special inquisitor!", 'junkHint'), + '1041': ("You were almost a @ sandwich.", "You were almost a @ sandwich.", 'junkHint'), + '1042': ("I'm a helpful hint Gossip Stone!^See, I'm helping.", "I'm a helpful hint Gossip Stone!^See, I'm helping.", 'junkHint'), + '1043': ("Dear @, please come to the castle. I've baked a cake for you.&&Yours truly, princess Zelda.", "Dear @, please come to the castle. I've baked a cake for you.&&Yours truly, princess Zelda.", 'junkHint'), + '1044': ("They say all toasters toast toast.", "They say all toasters toast toast.", 'junkHint'), + '1045': ("They say that Okami is the best Zelda game.", "They say that Okami is the best Zelda game.", 'junkHint'), + '1046': ("They say that quest guidance can be found at a talking rock.", "They say that quest guidance can be found at a talking rock.", 'junkHint'), + '1047': ("They say that the final item you're looking for can be found somewhere in Hyrule", "They say that the final item you're looking for can be found somewhere in Hyrule", 'junkHint'), #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box - 'Deku Tree': ("an ancient tree", 'dungeon'), - 'Dodongos Cavern': ("an immense cavern", 'dungeon'), - 'Jabu Jabus Belly': ("the belly of a deity", 'dungeon'), - 'Forest Temple': ("a deep forest", 'dungeon'), - 'Fire Temple': ("a high mountain", 'dungeon'), - 'Water Temple': ("a vast lake", 'dungeon'), - 'Shadow Temple': ("the house of the dead", 'dungeon'), - 'Spirit Temple': ("the goddess of the sand", 'dungeon'), - 'Ice Cavern': ("a frozen maze", 'dungeon'), - 'Bottom of the Well': ("a shadow\'s prison", 'dungeon'), - 'Gerudo Training Grounds': ("the test of thieves", 'dungeon'), - 'Ganons Castle': ("a conquered citadel", 'dungeon'), + 'Deku Tree': ("an ancient tree", "an ancient tree", 'dungeon'), + 'Dodongos Cavern': ("an immense cavern", "an immense cavern", 'dungeon'), + 'Jabu Jabus Belly': ("the belly of a deity", "the belly of a deity", 'dungeon'), + 'Forest Temple': ("a deep forest", "a deep forest", 'dungeon'), + 'Fire Temple': ("a high mountain", "a high mountain", 'dungeon'), + 'Water Temple': ("a vast lake", "a vast lake", 'dungeon'), + 'Shadow Temple': ("the house of the dead", "the house of the dead", 'dungeon'), + 'Spirit Temple': ("the goddess of the sand", "the goddess of the sand", 'dungeon'), + 'Ice Cavern': ("a frozen maze", "a frozen maze", 'dungeon'), + 'Bottom of the Well': ("a shadow\'s prison", "a shadow\'s prison", 'dungeon'), + 'Gerudo Training Grounds': ("the test of thieves", "the test of thieves", 'dungeon'), + 'Ganons Castle': ("a conquered citadel", "a conquered citadel", 'dungeon'), #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box - 'Queen Gohma': ("One inside an #ancient tree#...^", 'boss'), - 'King Dodongo': ("One within an #immense cavern#...^", 'boss'), - 'Barinade': ("One in the #belly of a deity#...^", 'boss'), - 'Phantom Ganon': ("One in a #deep forest#...^", 'boss'), - 'Volvagia': ("One on a #high mountain#...^", 'boss'), - 'Morpha': ("One under a #vast lake#...^", 'boss'), - 'Bongo Bongo': ("One within the #house of the dead#...^", 'boss'), - 'Twinrova': ("One inside a #goddess of the sand#...^", 'boss'), - 'Links Pocket': ("One in #@'s pocket#...^", 'boss'), - 'Spiritual Stone Text Start': ("Ye who owns 3 Spiritual Stones...^", 'boss'), - 'Spiritual Stone Text End': ("Stand with the Ocarina of Time&and play the Song of Time.", 'boss'), - 'Medallion Text End': ("Together with the Hero of Time,&the awakened ones will bind the&evil and return the light of peace&to the world.", 'boss'), + 'Queen Gohma': ("One inside an #ancient tree#...^", "One inside an #ancient tree#...^", 'boss'), + 'King Dodongo': ("One within an #immense cavern#...^", "One within an #immense cavern#...^", 'boss'), + 'Barinade': ("One in the #belly of a deity#...^", "One in the #belly of a deity#...^", 'boss'), + 'Phantom Ganon': ("One in a #deep forest#...^", "One in a #deep forest#...^", 'boss'), + 'Volvagia': ("One on a #high mountain#...^", "One on a #high mountain#...^", 'boss'), + 'Morpha': ("One under a #vast lake#...^", "One under a #vast lake#...^", 'boss'), + 'Bongo Bongo': ("One within the #house of the dead#...^", "One within the #house of the dead#...^", 'boss'), + 'Twinrova': ("One inside a #goddess of the sand#...^", "One inside a #goddess of the sand#...^", 'boss'), + 'Links Pocket': ("One in #@'s pocket#...^", "One in #@'s pocket#...^", 'boss'), + 'Spiritual Stone Text Start': ("Ye who owns 3 Spiritual Stones...^", "Ye who owns 3 Spiritual Stones...^", 'boss'), + 'Spiritual Stone Text End': ("Stand with the Ocarina of Time&and play the Song of Time.", "Stand with the Ocarina of Time&and play the Song of Time.", 'boss'), + 'Medallion Text End': ("Together with the Hero of Time,&the awakened ones will bind the&evil and return the light of peace&to the world.", "Together with the Hero of Time,&the awakened ones will bind the&evil and return the light of peace&to the world.", 'boss'), #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box - 'Validation Line': ("Hmph... Since you made it this far,&I'll let you know what glorious&prize of Ganon's you likely&missed out on in my tower.^Behold...^", 'validation line'), - 'Light Arrow Location': ("Ha ha ha... You'll never beat me by&reflecting my lightning bolts&and unleashing the arrows from&", 'Light Arrow Location'), - '2001': ("Oh! It's @.&I was expecting someone called&Sheik. Do you know what&happened to them?", 'ganonLine'), - '2002': ("I knew I shouldn't have put the key&on the other side of my door.", 'ganonLine'), - '2003': ("Looks like it's time for a&round of tennis.", 'ganonLine'), - '2004': ("You'll never deflect my bolts of&energy with your sword,&then shoot me with those Light&Arrows you happen to have.", 'ganonLine'), - '2005': ("Why did I leave my trident&back in the desert?", 'ganonLine'), - '2006': ("Zelda is probably going to do&something stupid, like send you&back to your own timeline.^So this is quite meaningless.&Do you really want&to save this moron?", 'ganonLine'), - '2007': ("What about Zelda makes you think&she'd be a better ruler than I?^I saved Lon Lon Ranch,&fed the hungry,&and my castle floats.", 'ganonLine'), - '2008': ("I've learned this spell,&it's really neat,&I'll keep it later&for your treat!", 'ganonLine'), - '2009': ("Many tricks are up my sleeve,&to save yourself&you'd better leave!", 'ganonLine'), - '2010': ("After what you did to&Koholint Island, how can&you call me the bad guy?", 'ganonLine'), - '2011': ("Today, let's begin down&'The Hero is Defeated' timeline.", 'ganonLine'), + 'Validation Line': ("Hmph... Since you made it this far,&I'll let you know what glorious&prize of Ganon's you likely&missed out on in my tower.^Behold...^", "Hmph... Since you made it this far,&I'll let you know what glorious&prize of Ganon's you likely&missed out on in my tower.^Behold...^", 'validation line'), + 'Light Arrow Location': ("Ha ha ha... You'll never beat me by&reflecting my lightning bolts&and unleashing the arrows from&", "Ha ha ha... You'll never beat me by&reflecting my lightning bolts&and unleashing the arrows from&", 'Light Arrow Location'), + '2001': ("Oh! It's @.&I was expecting someone called&Sheik. Do you know what&happened to them?", "Oh! It's @.&I was expecting someone called&Sheik. Do you know what&happened to them?", 'ganonLine'), + '2002': ("I knew I shouldn't have put the key&on the other side of my door.", "I knew I shouldn't have put the key&on the other side of my door.", 'ganonLine'), + '2003': ("Looks like it's time for a&round of tennis.", "Looks like it's time for a&round of tennis.", 'ganonLine'), + '2004': ("You'll never deflect my bolts of&energy with your sword,&then shoot me with those Light&Arrows you happen to have.", "You'll never deflect my bolts of&energy with your sword,&then shoot me with those Light&Arrows you happen to have.", 'ganonLine'), + '2005': ("Why did I leave my trident&back in the desert?", "Why did I leave my trident&back in the desert?", 'ganonLine'), + '2006': ("Zelda is probably going to do&something stupid, like send you&back to your own timeline.^So this is quite meaningless.&Do you really want&to save this moron?", "Zelda is probably going to do&something stupid, like send you&back to your own timeline.^So this is quite meaningless.&Do you really want&to save this moron?", 'ganonLine'), + '2007': ("What about Zelda makes you think&she'd be a better ruler than I?^I saved Lon Lon Ranch,&fed the hungry,&and my castle floats.", "What about Zelda makes you think&she'd be a better ruler than I?^I saved Lon Lon Ranch,&fed the hungry,&and my castle floats.", 'ganonLine'), + '2008': ("I've learned this spell,&it's really neat,&I'll keep it later&for your treat!", "I've learned this spell,&it's really neat,&I'll keep it later&for your treat!", 'ganonLine'), + '2009': ("Many tricks are up my sleeve,&to save yourself&you'd better leave!", "Many tricks are up my sleeve,&to save yourself&you'd better leave!", 'ganonLine'), + '2010': ("After what you did to&Koholint Island, how can&you call me the bad guy?", "After what you did to&Koholint Island, how can&you call me the bad guy?", 'ganonLine'), + '2011': ("Today, let's begin down&'The Hero is Defeated' timeline.", "Today, let's begin down&'The Hero is Defeated' timeline.", 'ganonLine'), } # exclusions from the list for custom logic diff --git a/Hints.py b/Hints.py index e3e329c07..b2d20bec9 100644 --- a/Hints.py +++ b/Hints.py @@ -74,7 +74,7 @@ def buildGossipHints(world): requiredSample = random.sample(requiredSample, random.randint(4,5)) for location in requiredSample: if location.parent_region.dungeon: - add_hint(world, stoneIDs.pop(0), buildHintString(getHint(location.parent_region.dungeon.name).text + \ + add_hint(world, stoneIDs.pop(0), buildHintString(getHint(location.parent_region.dungeon.name, world).text + \ " is on the way of the hero.")) else: add_hint(world, stoneIDs.pop(0), buildHintString(location.hint + " is on the way of the hero.")) @@ -88,8 +88,8 @@ def buildGossipHints(world): for locationWorld in world.get_locations(): if hint.name == locationWorld.name: checkedLocations.append(hint.name) - add_hint(world, stoneIDs.pop(0), getHint(locationWorld.name).text + " " + \ - getHint(getItemGenericName(locationWorld.item)).text + ".") + add_hint(world, stoneIDs.pop(0), getHint(locationWorld.name, world).text + " " + \ + getHint(getItemGenericName(locationWorld.item), world).text + ".") # Add good location hints @@ -104,8 +104,8 @@ def buildGossipHints(world): for locationWorld in world.get_locations(): if hint.name == locationWorld.name: checkedLocations.append(locationWorld.name) - add_hint(world, stoneIDs.pop(0), getHint(locationWorld.name).text + " " + \ - getHint(getItemGenericName(locationWorld.item)).text + ".") + add_hint(world, stoneIDs.pop(0), getHint(locationWorld.name, world).text + " " + \ + getHint(getItemGenericName(locationWorld.item), world).text + ".") # add bad dungeon locations hints for dungeon in random.sample(world.dungeons, random.randint(3,4)): @@ -119,8 +119,8 @@ def buildGossipHints(world): location.item.type != 'Song']) checkedLocations.append(locationWorld.name) - add_hint(world, stoneIDs.pop(0), buildHintString(getHint(dungeon.name).text + \ - " hoards " + getHint(getItemGenericName(locationWorld.item)).text + ".")) + add_hint(world, stoneIDs.pop(0), buildHintString(getHint(dungeon.name, world).text + \ + " hoards " + getHint(getItemGenericName(locationWorld.item), world).text + ".")) # add bad overworld locations hints # only choose location if it is new and a proper item from the overworld @@ -138,7 +138,7 @@ def buildGossipHints(world): overworldSample = random.sample(overworldlocations, random.randint(3,4)) for locationWorld in overworldSample: checkedLocations.append(locationWorld.name) - add_hint(world, stoneIDs.pop(0), buildHintString(getHint(getItemGenericName(locationWorld.item)).text + \ + add_hint(world, stoneIDs.pop(0), buildHintString(getHint(getItemGenericName(locationWorld.item), world).text + \ " can be found at " + locationWorld.hint + ".")) # add good item hints @@ -157,10 +157,10 @@ def buildGossipHints(world): for locationWorld in gooditemSample: checkedLocations.append(locationWorld.name) if locationWorld.parent_region.dungeon: - add_hint(world, stoneIDs.pop(0), buildHintString(getHint(locationWorld.parent_region.dungeon.name).text + \ - " hoards " + getHint(getItemGenericName(locationWorld.item)).text + ".")) + add_hint(world, stoneIDs.pop(0), buildHintString(getHint(locationWorld.parent_region.dungeon.name, world).text + \ + " hoards " + getHint(getItemGenericName(locationWorld.item), world).text + ".")) else: - add_hint(world, stoneIDs.pop(0), buildHintString(getHint(getItemGenericName(locationWorld.item)).text + \ + add_hint(world, stoneIDs.pop(0), buildHintString(getHint(getItemGenericName(locationWorld.item), world).text + \ " can be found at " + locationWorld.hint + ".")) # fill the remaining hints with junk @@ -176,12 +176,12 @@ def buildBossRewardHints(world, messages): # text that appears at altar as a child. text = '\x08' - text += get_raw_text(getHint('Spiritual Stone Text Start').text) + text += get_raw_text(getHint('Spiritual Stone Text Start', world).text) for reward in bossRewardsSpiritualStones: text += buildBossString(reward, world) text = setRewardColor(text) - text += get_raw_text(getHint('Spiritual Stone Text End').text) + text += get_raw_text(getHint('Spiritual Stone Text End', world).text) text += '\x0B' update_message_by_id(messages, 0x707a, text, 0x20) @@ -194,7 +194,7 @@ def buildBossRewardHints(world, messages): text += buildBossString(reward, world) text = setRewardColor(text) - text += get_raw_text(getHint('Medallion Text End').text) + text += get_raw_text(getHint('Medallion Text End', world).text) text += '\x0B' update_message_by_id(messages, 0x7057, start + text, 0x20) @@ -204,7 +204,7 @@ def buildBossString(reward, world): text = '' for location in world.get_locations(): if location.item.name == reward: - text += '\x08' + get_raw_text(getHint(location.name).text) + text += '\x08' + get_raw_text(getHint(location.name, world).text) return text # alternates through color set commands in child and adult boss reward hint strings setting the colors at the start of the string to correspond with the reward found at the location. @@ -241,16 +241,16 @@ def buildGanonText(world, messages): if world.trials == 0: for location in world.get_locations(): if location.item.name == 'Light Arrows': - text = get_raw_text(getHint('Light Arrow Location').text) + text = get_raw_text(getHint('Light Arrow Location', world).text) location_hint = location.hint.replace('Ganon\'s Castle', 'my castle') text += get_raw_text(location_hint) text += '!' break else: - text = get_raw_text(getHint('Validation Line').text) + text = get_raw_text(getHint('Validation Line', world).text) for location in world.get_locations(): if location.name == 'Ganons Tower Boss Key Chest': - text += get_raw_text(getHint(getItemGenericName(location.item)).text) + text += get_raw_text(getHint(getItemGenericName(location.item), world).text) update_message_by_id(messages, 0x70CC, text) diff --git a/Settings.py b/Settings.py index aac743811..4d50b46d7 100644 --- a/Settings.py +++ b/Settings.py @@ -1463,6 +1463,24 @@ def parse_custom_navi_color(s): ammo, and rupees, so doing so is a risk. ''' }), + Setting_Info('clearer_hints', bool, 1, True, + { + 'help': '''\ + The hints provided by Gossip Stones are + easier to understand. + ''', + 'action': 'store_true' + }, + { + 'text': 'Clearer hints', + 'group': 'other', + 'widget': 'Checkbutton', + 'default': 'unchecked', + 'tooltip':'''\ + The hints provided by Gossip Stones will + not be as cryptic if this option is enabled. + ''' + }), Setting_Info('hints', str, 2, True, { 'default': 'none', From 4069f3ae6bf4f6eb0c84e35e2c64a975e30d5fb0 Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Sat, 15 Sep 2018 14:29:08 -0300 Subject: [PATCH 495/755] Fix some spoiler/hint bugs --- BaseClasses.py | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 2ac985152..9b33038a6 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -584,9 +584,9 @@ def can_beat_game(state_list, scan_for_items=True): @staticmethod def update_required_items(worlds): - state_list = [CollectionState(world) for world in worlds] - CollectionState.collect_locations(state_list) + state_list = [world.state for world in worlds] +# BUG!!! Boss Keys are "keys" and so don't get excepted from always required locations with small keysy on. item_locations = [] if worlds[0].spoiler.playthrough: item_locations = [location for _,sphere in worlds[0].spoiler.playthrough.items() for location in sphere @@ -604,16 +604,18 @@ def update_required_items(worlds): required_locations = [] for location in item_locations: - old_item = location.item - new_state_list = [state.copy() for state in state_list] - - location.item = None - new_state_list[old_item.world.id].remove(old_item) - CollectionState.remove_locations(new_state_list) - - if not CollectionState.can_beat_game(new_state_list, False): - required_locations.append(location) - location.item = old_item +# NOTE: DO THIS CODE BETTER +# The item from the spoiler playthrough is a COPY, not the original, and attempting to set it to None in this place has no effect. +# This was very frustrating because code trying to do exactly that was sitting here looking pretty like it was actually accomplishing something. +# There's gotta be a better way than what I've done here, but I don't know Python. + for item_location in [location for state in state_list for location in state.world.get_locations()]: + if item_location.name == location.name and item_location.item.world.id == location.item.world.id: + old_item = item_location.item + item_location.item = None + if not CollectionState.can_beat_game(state_list): + required_locations.append(location) + item_location.item = old_item + break for world in worlds: world.spoiler.required_locations = [location for location in required_locations if location.world.id == world.id] From 6071370e23fb11f1d42d00bdad15b90fadc31080 Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Sat, 15 Sep 2018 14:30:36 -0300 Subject: [PATCH 496/755] Fix some spoiler/hint bugs --- Main.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/Main.py b/Main.py index 7488f614e..ecd3256e1 100644 --- a/Main.py +++ b/Main.py @@ -187,7 +187,7 @@ def create_playthrough(worlds): if worlds[0].check_beatable_only and not CollectionState.can_beat_game([world.state for world in worlds]): raise RuntimeError('Cannot beat game. Something went terribly wrong here!') - state_list = [CollectionState(world) for world in worlds] + state_list = [world.state for world in worlds] # Get all item locations in the worlds collection_spheres = [] @@ -218,16 +218,14 @@ def create_playthrough(worlds): # we remove the item at location and check if game is still beatable logging.getLogger('').debug('Checking if %s is required to beat the game.', location.item.name) old_item = location.item - old_state_list = [state.copy() for state in state_list] location.item = None state_list[old_item.world.id].remove(old_item) - CollectionState.remove_locations(state_list) - if CollectionState.can_beat_game(state_list, False): + del state_list[location.world.id].collected_locations[location.name] + if CollectionState.can_beat_game(state_list): to_delete.append(location) else: # still required, got to keep it around - state_list = old_state_list location.item = old_item # cull entries in spheres for spoiler walkthrough at end From 31af6dda75f44710501dccd0c89a7662a596e81b Mon Sep 17 00:00:00 2001 From: mzxrules Date: Sat, 15 Sep 2018 16:31:23 -0400 Subject: [PATCH 497/755] Implemented MQ Floormap and Minimap patching --- MQ.py | 81 + Rom.py | 10 + data/mqu.json | 6597 ++++++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 6596 insertions(+), 92 deletions(-) diff --git a/MQ.py b/MQ.py index 3067af275..69d364921 100644 --- a/MQ.py +++ b/MQ.py @@ -89,6 +89,44 @@ def __init__(self, delta): self.polytypes = delta['PolyTypes'] self.cams = delta['Cams'] +class Icon(object): + def __init__(self, data): + self.icon = data["Icon"]; + self.count = data["Count"]; + self.points = [IconPoint(x) for x in data["IconPoints"]] + + def write_to_minimap(self, rom:LocalRom, addr): + rom.write_sbyte(addr, self.icon) + rom.write_byte(addr + 1, self.count) + cur = 2 + for p in self.points: + p.write_to_minimap(rom, addr + cur) + cur += 0x03 + + def write_to_floormap(self, rom:LocalRom, addr): + rom.write_int16(addr, self.icon) + rom.write_int32(addr + 0x10, self.count) + + cur = 0x14 + for p in self.points: + p.write_to_floormap(rom, addr + cur) + cur += 0x0C + +class IconPoint(object): + def __init__(self, point): + self.flag = point["Flag"] + self.x = point["x"] + self.y = point["y"] + + def write_to_minimap(self, rom:LocalRom, addr): + rom.write_sbyte(addr, self.flag) + rom.write_byte(addr+1, self.x) + rom.write_byte(addr+2, self.y) + + def write_to_floormap(self, rom:LocalRom, addr): + rom.write_int16(addr, self.flag) + rom.write_f32(addr + 4, float(self.x)) + rom.write_f32(addr + 8, float(self.y)) class Scene(object): @@ -99,6 +137,8 @@ def __init__(self, scene): self.rooms = [Room(x) for x in scene['Rooms']] self.paths = [] self.coldelta = ColDelta(scene["ColDelta"]) + self.minimaps = [[Icon(icon) for icon in minimap['Icons']] for minimap in scene['Minimaps']] + self.floormaps = [[Icon(icon) for icon in floormap['Icons']] for floormap in scene['Floormaps']] temp_paths = scene['Paths'] for item in temp_paths: self.paths.append(item['Points']) @@ -106,6 +146,9 @@ def __init__(self, scene): def write_data(self, rom:LocalRom): + # write floormap and minimap data + self.write_map_data(rom) + # move file to remap address self.file.relocate(rom) @@ -155,6 +198,44 @@ def write_data(self, rom:LocalRom): rom.write_int32s(cur, [room.file.start, room.file.end]) cur += 0x08 + def write_map_data(self, rom:LocalRom): + if self.id >= 10: + return + + # write floormap + floormap_indices = 0xB6C934 + floormap_vrom = 0xBC7E00 + floormap_index = rom.read_int16(floormap_indices + (self.id * 2)) + floormap_index //= 2 # game uses texture index, where two textures are used per floor + + cur = floormap_vrom + (floormap_index * 0x1EC) + for floormap in self.floormaps: + for icon in floormap: + Icon.write_to_floormap(icon, rom, cur) + cur += 0xA4 + + + # fixes jabu jabu floor B1 having no chest data + if self.id == 2: + cur = floormap_vrom + (0x08 * 0x1EC + 4) + kaleido_scope_chest_verts = 0x803A3DA0 # hack, should be vram 0x8082EA00 + rom.write_int32s(cur, [0x17, kaleido_scope_chest_verts, 0x04]) + + # write minimaps + map_mark_vrom = 0xBF40D0 + map_mark_vram = 0x808567F0 + map_mark_array_vram = 0x8085D2DC # ptr array in map_mark_data to minimap "marks" + + array_vrom = map_mark_array_vram - map_mark_vram + map_mark_vrom + map_mark_scene_vram = rom.read_int32(self.id * 4 + array_vrom) + mark_vrom = map_mark_scene_vram - map_mark_vram + map_mark_vrom + + cur = mark_vrom + for minimap in self.minimaps: + for icon in minimap: + Icon.write_to_minimap(icon, rom, cur) + cur += 0x26 + def patch_mesh(self, rom:LocalRom, mesh:CollisionMesh): start = self.file.start diff --git a/Rom.py b/Rom.py index 7b40ed340..c17d7c2a8 100644 --- a/Rom.py +++ b/Rom.py @@ -95,6 +95,11 @@ def write_byte(self, address, value): self.buffer[address] = value self.last_address = address + 1 + def write_sbyte(self, address, value): + if address == None: + address = self.last_address + self.write_bytes(address, struct.pack('b', value)) + def write_int16(self, address, value): if address == None: address = self.last_address @@ -110,6 +115,11 @@ def write_int32(self, address, value): address = self.last_address self.write_bytes(address, int32_as_bytes(value)) + def write_f32(self, address, value:float): + if address == None: + address = self.last_address + self.write_bytes(address, struct.pack('>f', value)) + def write_bytes(self, startaddress, values): if startaddress == None: startaddress = self.last_address diff --git a/data/mqu.json b/data/mqu.json index c7412aafa..040183fd9 100644 --- a/data/mqu.json +++ b/data/mqu.json @@ -2165,7 +2165,444 @@ "PositionIndex": -1 } ] - } + }, + "Floormaps": [ + { + "Icons": [ + { + "Icon": 0, + "Count": 2, + "IconPoints": [ + { + "Flag": 2, + "x": 40, + "y": -33 + }, + { + "Flag": 6, + "x": 49, + "y": -42 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 1, + "x": 48, + "y": -63 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 3, + "x": 84, + "y": -39 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 3, + "IconPoints": [ + { + "Flag": 0, + "x": 46, + "y": -59 + }, + { + "Flag": 4, + "x": 77, + "y": -26 + }, + { + "Flag": 5, + "x": 65, + "y": -61 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 1, + "Count": 1, + "IconPoints": [ + { + "Flag": -1, + "x": 55, + "y": 0 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + } + ], + "Minimaps": [ + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 3, + "x": 71, + "y": 50 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 1, + "x": 64, + "y": 62 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 4, + "x": 76, + "y": 37 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 2, + "IconPoints": [ + { + "Flag": 0, + "x": 46, + "y": 50 + }, + { + "Flag": 5, + "x": 76, + "y": 52 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 1, + "Count": 1, + "IconPoints": [ + { + "Flag": -1, + "x": 50, + "y": 23 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 2, + "IconPoints": [ + { + "Flag": 2, + "x": 46, + "y": 50 + }, + { + "Flag": 6, + "x": 58, + "y": 60 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + } + ] }, { "File": { @@ -6486,7 +6923,489 @@ "PositionIndex": -1 } ] - } + }, + "Floormaps": [ + { + "Icons": [ + { + "Icon": 0, + "Count": 3, + "IconPoints": [ + { + "Flag": 2, + "x": 55, + "y": -36 + }, + { + "Flag": 3, + "x": 54, + "y": -51 + }, + { + "Flag": 5, + "x": 13, + "y": -61 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 3, + "IconPoints": [ + { + "Flag": 0, + "x": 47, + "y": -40 + }, + { + "Flag": 1, + "x": 51, + "y": -3 + }, + { + "Flag": 4, + "x": 47, + "y": -47 + } + ] + }, + { + "Icon": 1, + "Count": 1, + "IconPoints": [ + { + "Flag": -1, + "x": 23, + "y": -25 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + } + ] + } + ], + "Minimaps": [ + { + "Icons": [ + { + "Icon": 0, + "Count": 2, + "IconPoints": [ + { + "Flag": 0, + "x": 69, + "y": 14 + }, + { + "Flag": 4, + "x": 69, + "y": 30 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 5, + "x": 54, + "y": 54 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 2, + "x": 69, + "y": 54 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 1, + "Count": 1, + "IconPoints": [ + { + "Flag": -1, + "x": 37, + "y": 49 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 3, + "x": 59, + "y": 53 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 1, + "x": 68, + "y": 54 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + } + ] }, { "File": { @@ -13430,7 +14349,484 @@ "PositionIndex": -1 } ] - } + }, + "Floormaps": [ + { + "Icons": [ + { + "Icon": 0, + "Count": 5, + "IconPoints": [ + { + "Flag": 3, + "x": 48, + "y": -68 + }, + { + "Flag": 5, + "x": 50, + "y": -66 + }, + { + "Flag": 7, + "x": 55, + "y": -50 + }, + { + "Flag": 9, + "x": 58, + "y": 1 + }, + { + "Flag": 10, + "x": 62, + "y": -45 + } + ] + }, + { + "Icon": 1, + "Count": 1, + "IconPoints": [ + { + "Flag": -1, + "x": 65, + "y": -37 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 6, + "IconPoints": [ + { + "Flag": 0, + "x": 37, + "y": -49 + }, + { + "Flag": 1, + "x": 65, + "y": -38 + }, + { + "Flag": 2, + "x": 52, + "y": -48 + }, + { + "Flag": 4, + "x": 46, + "y": -36 + }, + { + "Flag": 6, + "x": 59, + "y": -41 + }, + { + "Flag": 8, + "x": 52, + "y": -26 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + } + ], + "Minimaps": [ + { + "Icons": [ + { + "Icon": 0, + "Count": 2, + "IconPoints": [ + { + "Flag": 3, + "x": 66, + "y": 50 + }, + { + "Flag": 5, + "x": 72, + "y": 47 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 7, + "x": 72, + "y": 54 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 2, + "IconPoints": [ + { + "Flag": 4, + "x": 64, + "y": 62 + }, + { + "Flag": 8, + "x": 79, + "y": 38 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 10, + "x": 64, + "y": 45 + } + ] + }, + { + "Icon": 1, + "Count": 1, + "IconPoints": [ + { + "Flag": -1, + "x": 67, + "y": 32 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 9, + "x": 68, + "y": 45 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 2, + "IconPoints": [ + { + "Flag": 1, + "x": 79, + "y": 33 + }, + { + "Flag": 6, + "x": 61, + "y": 41 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 2, + "IconPoints": [ + { + "Flag": 0, + "x": 48, + "y": 57 + }, + { + "Flag": 2, + "x": 77, + "y": 55 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + } + ] }, { "File": { @@ -14204,94 +15600,840 @@ "PositionIndex": -1 } ] - } - }, - { - "File": { - "Name": "Scene 4", - "Start": "022D8000", - "End": "022F2970", - "RemapStart": null }, - "Id": 4, - "TActors": [ - "05FF 04FF 0023 0820 0992 FD80 4000 00BF", - "0AFF 02FF 0023 FC04 07C6 0000 0000 00BF", - "06FF 01FF 0023 0618 076C 0000 8000 007F", - "08FF 06FF 0023 0618 0ED8 0000 8000 007F", - "0DFF 0BFF 0023 F90C 0ED8 0000 8000 007F", - "09FF 10FF 002E 0154 0B7C 00BE 4000 009F", - "04FF 15FF 0009 0BFE 080C 0000 4000 003F", - "0AFF 09FF 0009 FDD0 0B7C 00BE 4000 003F", - "0AFF 0BFF 002E F90C 0AF0 FEB6 0000 0099", - "0BFF 0AFF 0009 F90C 0AF0 014A 0000 003F", - "0DFF 0CFF 0009 F6BE 1130 0014 C000 0098", - "0CFF 18FF 0009 F576 0FA0 009F C000 003F", - "13FF 01FF 002E 0618 00F0 FA10 0000 00A9", - "14FF 0100 0009 0618 0064 F9E8 0000 003F", - "15FF 01FF 0009 0A8C 00C8 0000 C000 009E", - "16FF 01FF 0009 0618 00C8 062C 8000 003F", - "02FF 00FF 002E FE5C 00C8 0000 4000 00A8", - "00FF 11FF 002E FEE8 0000 008C 8000 007F", - "17FF 05FF 002E 06F4 0AF0 FA24 0000 00BE", - "10FF 06FF 002E 062C 0AF0 014A 8000 00BF", - "10FF 06FF 002E 04CE 0AF0 003C 4000 00BF", - "06FF 05FF 002E 060E 0AF0 FEB6 8000 00BF", - "05FF 07FF 0009 062C 0FA0 FDB2 0000 003F", - "08FF 07FF 002E 062C 1130 FDB2 8000 00B5", - "0BFF 0AFF 0009 FA56 0BA4 0000 4000 003F", - "11FF 03FF 002E FEE8 0000 FC7C 8000 007F", - "0AFF 18FF 002E F593 0B18 FF69 E000 007F", - "05FF 04FF 0009 0A14 0AF0 0000 C000 003F", - "10FF 05FF 0009 05B4 0B7C FD8A 4000 009A", - "03FF 12FF 002E 0000 0000 FB28 4000 007F", - "0AFF 0EFF 002E FB5C 0E60 FF3B A0B6 01FD", - "0EFF 0DFF 0009 F6EE 1054 FD03 E000 009B", - "12FF 0FFF 002E 00EE 0000 FC94 0000 007F", - "19FF 0AFF 0009 FBDE 0AF0 FC76 E000 003F", - "0FFF 00FF 0009 0118 0000 008C 0000 0097", - "1AFF 02FF 002E F9E8 00C8 0000 4000 0154", - "01FF 00FF 0009 01A4 00C8 0000 C000 003F" - ], - "Paths": [ + "Floormaps": [ { - "Points": [ - [ - -310, - 0, - -318 - ], - [ - -309, - 0, - -127 - ] + "Icons": [ + { + "Icon": 0, + "Count": 6, + "IconPoints": [ + { + "Flag": 3, + "x": 53, + "y": -64 + }, + { + "Flag": 5, + "x": 65, + "y": -9 + }, + { + "Flag": 12, + "x": 49, + "y": -1 + }, + { + "Flag": 13, + "x": 40, + "y": 0 + }, + { + "Flag": 14, + "x": 18, + "y": -2 + }, + { + "Flag": 15, + "x": 59, + "y": 0 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } ] }, { - "Points": [ - [ - 1879, - 100, - -1883 - ], - [ - 1685, - 100, - -1881 - ] + "Icons": [ + { + "Icon": 0, + "Count": 4, + "IconPoints": [ + { + "Flag": 0, + "x": 49, + "y": -1 + }, + { + "Flag": 1, + "x": 71, + "y": -13 + }, + { + "Flag": 2, + "x": 11, + "y": -25 + }, + { + "Flag": 6, + "x": 84, + "y": -16 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } ] }, { - "Points": [ - [ - 1536, - 200, - 2035 - ], - [ - 1536, - 200, + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 9, + "x": 65, + "y": -30 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 11, + "x": 41, + "y": -24 + } + ] + }, + { + "Icon": 1, + "Count": 1, + "IconPoints": [ + { + "Flag": -1, + "x": 50, + "y": -11 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + } + ] + } + ], + "Minimaps": [ + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 0, + "x": 72, + "y": 57 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 2, + "IconPoints": [ + { + "Flag": 1, + "x": 69, + "y": 39 + }, + { + "Flag": 9, + "x": 62, + "y": 65 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 9, + "x": 71, + "y": 59 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 13, + "x": 80, + "y": 53 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 15, + "x": 49, + "y": 50 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 6, + "x": 65, + "y": 53 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 11, + "x": 39, + "y": 35 + } + ] + }, + { + "Icon": 1, + "Count": 1, + "IconPoints": [ + { + "Flag": -1, + "x": 53, + "y": 5 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 2, + "x": 65, + "y": 54 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 14, + "x": 64, + "y": 31 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 3, + "x": 75, + "y": 53 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 12, + "x": 69, + "y": 52 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 5, + "x": 58, + "y": 27 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + } + ] + }, + { + "File": { + "Name": "Scene 4", + "Start": "022D8000", + "End": "022F2970", + "RemapStart": null + }, + "Id": 4, + "TActors": [ + "05FF 04FF 0023 0820 0992 FD80 4000 00BF", + "0AFF 02FF 0023 FC04 07C6 0000 0000 00BF", + "06FF 01FF 0023 0618 076C 0000 8000 007F", + "08FF 06FF 0023 0618 0ED8 0000 8000 007F", + "0DFF 0BFF 0023 F90C 0ED8 0000 8000 007F", + "09FF 10FF 002E 0154 0B7C 00BE 4000 009F", + "04FF 15FF 0009 0BFE 080C 0000 4000 003F", + "0AFF 09FF 0009 FDD0 0B7C 00BE 4000 003F", + "0AFF 0BFF 002E F90C 0AF0 FEB6 0000 0099", + "0BFF 0AFF 0009 F90C 0AF0 014A 0000 003F", + "0DFF 0CFF 0009 F6BE 1130 0014 C000 0098", + "0CFF 18FF 0009 F576 0FA0 009F C000 003F", + "13FF 01FF 002E 0618 00F0 FA10 0000 00A9", + "14FF 0100 0009 0618 0064 F9E8 0000 003F", + "15FF 01FF 0009 0A8C 00C8 0000 C000 009E", + "16FF 01FF 0009 0618 00C8 062C 8000 003F", + "02FF 00FF 002E FE5C 00C8 0000 4000 00A8", + "00FF 11FF 002E FEE8 0000 008C 8000 007F", + "17FF 05FF 002E 06F4 0AF0 FA24 0000 00BE", + "10FF 06FF 002E 062C 0AF0 014A 8000 00BF", + "10FF 06FF 002E 04CE 0AF0 003C 4000 00BF", + "06FF 05FF 002E 060E 0AF0 FEB6 8000 00BF", + "05FF 07FF 0009 062C 0FA0 FDB2 0000 003F", + "08FF 07FF 002E 062C 1130 FDB2 8000 00B5", + "0BFF 0AFF 0009 FA56 0BA4 0000 4000 003F", + "11FF 03FF 002E FEE8 0000 FC7C 8000 007F", + "0AFF 18FF 002E F593 0B18 FF69 E000 007F", + "05FF 04FF 0009 0A14 0AF0 0000 C000 003F", + "10FF 05FF 0009 05B4 0B7C FD8A 4000 009A", + "03FF 12FF 002E 0000 0000 FB28 4000 007F", + "0AFF 0EFF 002E FB5C 0E60 FF3B A0B6 01FD", + "0EFF 0DFF 0009 F6EE 1054 FD03 E000 009B", + "12FF 0FFF 002E 00EE 0000 FC94 0000 007F", + "19FF 0AFF 0009 FBDE 0AF0 FC76 E000 003F", + "0FFF 00FF 0009 0118 0000 008C 0000 0097", + "1AFF 02FF 002E F9E8 00C8 0000 4000 0154", + "01FF 00FF 0009 01A4 00C8 0000 C000 003F" + ], + "Paths": [ + { + "Points": [ + [ + -310, + 0, + -318 + ], + [ + -309, + 0, + -127 + ] + ] + }, + { + "Points": [ + [ + 1879, + 100, + -1883 + ], + [ + 1685, + 100, + -1881 + ] + ] + }, + { + "Points": [ + [ + 1536, + 200, + 2035 + ], + [ + 1536, + 200, 1860 ] ] @@ -18095,7 +20237,952 @@ "PositionIndex": -1 } ] - } + }, + "Floormaps": [ + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 5, + "x": 24, + "y": -40 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 3, + "IconPoints": [ + { + "Flag": 3, + "x": 75, + "y": -47 + }, + { + "Flag": 6, + "x": 72, + "y": -51 + }, + { + "Flag": 8, + "x": 65, + "y": -12 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 11, + "x": 78, + "y": -35 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 5, + "IconPoints": [ + { + "Flag": 1, + "x": 67, + "y": -58 + }, + { + "Flag": 2, + "x": 48, + "y": -30 + }, + { + "Flag": 4, + "x": 63, + "y": -14 + }, + { + "Flag": 7, + "x": 36, + "y": -45 + }, + { + "Flag": 12, + "x": 47, + "y": -26 + } + ] + }, + { + "Icon": 1, + "Count": 1, + "IconPoints": [ + { + "Flag": -1, + "x": 26, + "y": -34 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + } + ] + } + ], + "Minimaps": [ + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 7, + "x": 53, + "y": 70 + } + ] + }, + { + "Icon": 1, + "Count": 1, + "IconPoints": [ + { + "Flag": -1, + "x": 40, + "y": 47 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 11, + "x": 57, + "y": 48 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 2, + "IconPoints": [ + { + "Flag": 3, + "x": 67, + "y": 73 + }, + { + "Flag": 6, + "x": 58, + "y": 76 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 2, + "IconPoints": [ + { + "Flag": 2, + "x": 78, + "y": 62 + }, + { + "Flag": 12, + "x": 77, + "y": 58 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 4, + "x": 60, + "y": 54 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 1, + "x": 72, + "y": 68 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 8, + "x": 66, + "y": 57 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 5, + "x": 51, + "y": 61 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + } + ] }, { "File": { @@ -19034,7 +22121,994 @@ "PositionIndex": -1 } ] - } + }, + "Floormaps": [ + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 2, + "x": 88, + "y": -60 + } + ] + }, + { + "Icon": 1, + "Count": 1, + "IconPoints": [ + { + "Flag": -1, + "x": 62, + "y": -23 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 0, + "x": 88, + "y": -60 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 2, + "IconPoints": [ + { + "Flag": 1, + "x": 88, + "y": -60 + }, + { + "Flag": 5, + "x": 49, + "y": -43 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 6, + "x": 75, + "y": -65 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + } + ], + "Minimaps": [ + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 6, + "x": 81, + "y": 68 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 5, + "x": 75, + "y": 55 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 1, + "Count": 1, + "IconPoints": [ + { + "Flag": -1, + "x": 77, + "y": 40 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 1, + "x": 74, + "y": 61 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 2, + "x": 73, + "y": 65 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 0, + "x": 73, + "y": 63 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + } + ] }, { "File": { @@ -20494,7 +24568,944 @@ "PositionIndex": -1 } ] - } + }, + "Floormaps": [ + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 18, + "x": 46, + "y": -30 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 5, + "IconPoints": [ + { + "Flag": 1, + "x": 23, + "y": -33 + }, + { + "Flag": 2, + "x": 56, + "y": -11 + }, + { + "Flag": 5, + "x": 83, + "y": -25 + }, + { + "Flag": 24, + "x": 84, + "y": -39 + }, + { + "Flag": 25, + "x": 74, + "y": -37 + } + ] + }, + { + "Icon": 1, + "Count": 1, + "IconPoints": [ + { + "Flag": -1, + "x": 47, + "y": 0 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 5, + "IconPoints": [ + { + "Flag": 3, + "x": 46, + "y": -20 + }, + { + "Flag": 6, + "x": 28, + "y": -19 + }, + { + "Flag": 12, + "x": 25, + "y": -25 + }, + { + "Flag": 15, + "x": 50, + "y": -13 + }, + { + "Flag": 28, + "x": 48, + "y": -29 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 9, + "IconPoints": [ + { + "Flag": 0, + "x": 14, + "y": -24 + }, + { + "Flag": 4, + "x": 55, + "y": -14 + }, + { + "Flag": 7, + "x": 78, + "y": -2 + }, + { + "Flag": 8, + "x": 14, + "y": -16 + }, + { + "Flag": 26, + "x": 42, + "y": -43 + }, + { + "Flag": 27, + "x": 50, + "y": -43 + }, + { + "Flag": 29, + "x": 25, + "y": -35 + }, + { + "Flag": 30, + "x": 42, + "y": -36 + }, + { + "Flag": 31, + "x": 50, + "y": -36 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + } + ], + "Minimaps": [ + { + "Icons": [ + { + "Icon": 0, + "Count": 4, + "IconPoints": [ + { + "Flag": 26, + "x": 27, + "y": 35 + }, + { + "Flag": 27, + "x": 36, + "y": 35 + }, + { + "Flag": 30, + "x": 27, + "y": 28 + }, + { + "Flag": 31, + "x": 36, + "y": 28 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 29, + "x": 67, + "y": 63 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 2, + "IconPoints": [ + { + "Flag": 0, + "x": 71, + "y": 62 + }, + { + "Flag": 8, + "x": 71, + "y": 48 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 2, + "IconPoints": [ + { + "Flag": 3, + "x": 56, + "y": 54 + }, + { + "Flag": 15, + "x": 69, + "y": 42 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 28, + "x": 60, + "y": 54 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 1, + "x": 76, + "y": 40 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 7, + "x": 70, + "y": 53 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 4, + "x": 68, + "y": 42 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 25, + "x": 78, + "y": 58 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 24, + "x": 78, + "y": 58 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 5, + "x": 71, + "y": 55 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 18, + "x": 75, + "y": 54 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 2, + "IconPoints": [ + { + "Flag": 6, + "x": 78, + "y": 55 + }, + { + "Flag": 12, + "x": 70, + "y": 70 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 2, + "x": 76, + "y": 37 + } + ] + }, + { + "Icon": 1, + "Count": 1, + "IconPoints": [ + { + "Flag": -1, + "x": 57, + "y": 23 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + } + ] }, { "File": { @@ -21356,7 +26367,832 @@ "PositionIndex": -1 } ] - } + }, + "Floormaps": [ + { + "Icons": [ + { + "Icon": 0, + "Count": 2, + "IconPoints": [ + { + "Flag": 1, + "x": 41, + "y": -17 + }, + { + "Flag": 7, + "x": 27, + "y": -24 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 2, + "IconPoints": [ + { + "Flag": 2, + "x": 81, + "y": -20 + }, + { + "Flag": 3, + "x": 74, + "y": -37 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 2, + "IconPoints": [ + { + "Flag": 12, + "x": 96, + "y": -51 + }, + { + "Flag": 16, + "x": 46, + "y": -42 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 12, + "IconPoints": [ + { + "Flag": 4, + "x": 43, + "y": -66 + }, + { + "Flag": 5, + "x": 37, + "y": -66 + }, + { + "Flag": 6, + "x": 33, + "y": -72 + }, + { + "Flag": 8, + "x": 85, + "y": -18 + }, + { + "Flag": 9, + "x": 61, + "y": -42 + }, + { + "Flag": 10, + "x": 15, + "y": -4 + }, + { + "Flag": 11, + "x": 25, + "y": -4 + }, + { + "Flag": 13, + "x": 19, + "y": -29 + }, + { + "Flag": 14, + "x": 78, + "y": -15 + }, + { + "Flag": 15, + "x": 60, + "y": -70 + }, + { + "Flag": 21, + "x": 92, + "y": -29 + }, + { + "Flag": 20, + "x": 87, + "y": -20 + } + ] + }, + { + "Icon": 1, + "Count": 1, + "IconPoints": [ + { + "Flag": -1, + "x": 31, + "y": -45 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + } + ] + } + ], + "Minimaps": [ + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 1, + "x": 77, + "y": 64 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 1, + "Count": 1, + "IconPoints": [ + { + "Flag": -1, + "x": 77, + "y": 76 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 7, + "x": 76, + "y": 65 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 2, + "IconPoints": [ + { + "Flag": 2, + "x": 83, + "y": 67 + }, + { + "Flag": 14, + "x": 84, + "y": 59 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 3, + "x": 76, + "y": 67 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 3, + "IconPoints": [ + { + "Flag": 4, + "x": 78, + "y": 62 + }, + { + "Flag": 5, + "x": 74, + "y": 62 + }, + { + "Flag": 6, + "x": 71, + "y": 68 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 9, + "x": 77, + "y": 64 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 2, + "IconPoints": [ + { + "Flag": 10, + "x": 71, + "y": 65 + }, + { + "Flag": 11, + "x": 80, + "y": 65 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 16, + "x": 73, + "y": 64 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 2, + "IconPoints": [ + { + "Flag": 12, + "x": 87, + "y": 64 + }, + { + "Flag": 22, + "x": 87, + "y": 68 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 13, + "x": 77, + "y": 66 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 21, + "x": 78, + "y": 66 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 2, + "IconPoints": [ + { + "Flag": 8, + "x": 76, + "y": 66 + }, + { + "Flag": 20, + "x": 78, + "y": 68 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 14, + "x": 77, + "y": 62 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 15, + "x": 56, + "y": 67 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 16, + "x": 73, + "y": 64 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 14, + "x": 77, + "y": 62 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + } + ] }, { "File": { @@ -28240,7 +34076,293 @@ "PositionIndex": -1 } ] - } + }, + "Floormaps": [ + { + "Icons": [ + { + "Icon": 0, + "Count": 2, + "IconPoints": [ + { + "Flag": 2, + "x": 84, + "y": -38 + }, + { + "Flag": 3, + "x": 57, + "y": -18 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 1, + "x": 72, + "y": -32 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + } + ], + "Minimaps": [ + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 3, + "x": 60, + "y": 18 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 2, + "x": 73, + "y": 61 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 1, + "x": 74, + "y": 66 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + } + ] }, { "File": { @@ -30214,7 +36336,292 @@ "PositionIndex": -1 } ] - } + }, + "Floormaps": [ + { + "Icons": [ + { + "Icon": 0, + "Count": 3, + "IconPoints": [ + { + "Flag": 0, + "x": 66, + "y": -2 + }, + { + "Flag": 1, + "x": 77, + "y": -46 + }, + { + "Flag": 2, + "x": 27, + "y": -45 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + } + ], + "Minimaps": [ + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 2, + "x": 71, + "y": 59 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 0, + "x": 48, + "y": 36 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + }, + { + "Icons": [ + { + "Icon": 0, + "Count": 1, + "IconPoints": [ + { + "Flag": 1, + "x": 73, + "y": 67 + } + ] + }, + { + "Icon": -1, + "Count": 0, + "IconPoints": [] + }, + { + "Icon": 0, + "Count": 0, + "IconPoints": [] + } + ] + } + ] }, { "File": { @@ -30521,7 +36928,9 @@ "PositionIndex": -1 } ] - } + }, + "Floormaps": [], + "Minimaps": [] }, { "File": { @@ -30976,7 +37385,9 @@ "PositionIndex": -1 } ] - } + }, + "Floormaps": [], + "Minimaps": [] }, { "File": { @@ -32062,6 +38473,8 @@ "PositionIndex": -1 } ] - } + }, + "Floormaps": [], + "Minimaps": [] } ] \ No newline at end of file From 98914cd500edc71d4e2396d080ecb268ae926852 Mon Sep 17 00:00:00 2001 From: mzxrules Date: Sat, 15 Sep 2018 17:08:43 -0400 Subject: [PATCH 498/755] Ice Cavern header modification only applied during MQ; added some notes --- MQ.py | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/MQ.py b/MQ.py index 69d364921..6e83e096c 100644 --- a/MQ.py +++ b/MQ.py @@ -1,11 +1,11 @@ # mzxrules 2018 # In order to patch MQ to the existing data... # +# Scenes: +# # Ice Cavern (Scene 9) needs to have it's header altered to support MQ's path list. This # expansion will delete the otherwise unused alternate headers command # -# Scenes: -# # Transition actors will be patched over the old data, as the number of records is the same # Path data will be appended to the end of the scene file. # @@ -14,7 +14,16 @@ # padded to the nearest 0x10 bytes # # Collision: -# +# OoT's collision data consists of these elements: vertices, surface types, water boxes, +# camera behavior data, and polys. MQ's vertice and polygon geometry data is identical. +# However, the surface types and the collision exclusion flags bound to the polys have changed +# for some polygons, as well as the number of surface type records and camera type records. +# +# To patch collision, a flag denotes whether collision data cannot be written in place without +# expanding the size of the scene file. If true, the camera data is relocated to the end +# of the scene file, and the surface types are shifted down into where the camera types +# were situated. If false, the camera data isn't moved, but rather the surface type list +# will be shifted to the end of the camera data # # Rooms: # @@ -28,6 +37,11 @@ # Finally: # # Scene and room files will be padded to the nearest 0x10 bytes +# +# Maps: +# Jabu Jabu's B1 map contains no chests in the vanilla layout. Because of this, +# the floor map data is missing a vertex pointer that would point within kaleido_scope. +# As such, if the file moves, the patch will break. from Utils import local_path from Rom import LocalRom @@ -218,7 +232,7 @@ def write_map_data(self, rom:LocalRom): # fixes jabu jabu floor B1 having no chest data if self.id == 2: cur = floormap_vrom + (0x08 * 0x1EC + 4) - kaleido_scope_chest_verts = 0x803A3DA0 # hack, should be vram 0x8082EA00 + kaleido_scope_chest_verts = 0x803A3DA0 # hax, should be vram 0x8082EA00 rom.write_int32s(cur, [0x17, kaleido_scope_chest_verts, 0x04]) # write minimaps @@ -389,13 +403,14 @@ def append_object_data(self, rom:LocalRom, objects): return offset -def patch_files(rom:LocalRom, mq_scenes): +def patch_files(rom:LocalRom, mq_scenes:list): - patch_ice_cavern_scene_header(rom) data = get_json() scenes = [Scene(x) for x in data] for scene in scenes: if scene.id in mq_scenes: + if scene.id == 9: + patch_ice_cavern_scene_header(rom) scene.write_data(rom) verify_dma(rom) From f097118b388c898cf38c1d77d580161f8e291d01 Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Sat, 15 Sep 2018 19:56:56 -0300 Subject: [PATCH 499/755] Fix Boss Key hints --- BaseClasses.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 9b33038a6..b39f2c041 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -586,21 +586,22 @@ def can_beat_game(state_list, scan_for_items=True): def update_required_items(worlds): state_list = [world.state for world in worlds] -# BUG!!! Boss Keys are "keys" and so don't get excepted from always required locations with small keysy on. item_locations = [] if worlds[0].spoiler.playthrough: item_locations = [location for _,sphere in worlds[0].spoiler.playthrough.items() for location in sphere if location.item.type != 'Event' and location.item.type != 'Shop' and not location.event - and (worlds[0].keysanity or not location.item.key)] + and (worlds[0].shuffle_smallkeys != 'dungeon' or location.item.type != 'SmallKey') + and (worlds[0].shuffle_bosskeys != 'dungeon' or location.item.type != 'BossKey')] else: item_locations = [location for world in worlds for location in world.get_filled_locations() if location.item.advancement and location.item.type != 'Event' and location.item.type != 'Shop' and not location.event - and (worlds[0].keysanity or not location.item.key)] + and (worlds[0].shuffle_smallkeys != 'dungeon' or location.item.type == 'SmallKey') + and (worlds[0].shuffle_bosskeys != 'dungeon' or location.item.type == 'BossKey')] required_locations = [] for location in item_locations: From ca9b9566ae60e5bc45f0c75988f5cf78790d1b2d Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Sat, 15 Sep 2018 20:21:17 -0300 Subject: [PATCH 500/755] trimmed down a big gross comment --- BaseClasses.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index b39f2c041..9561accd7 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -605,10 +605,7 @@ def update_required_items(worlds): required_locations = [] for location in item_locations: -# NOTE: DO THIS CODE BETTER -# The item from the spoiler playthrough is a COPY, not the original, and attempting to set it to None in this place has no effect. -# This was very frustrating because code trying to do exactly that was sitting here looking pretty like it was actually accomplishing something. -# There's gotta be a better way than what I've done here, but I don't know Python. + # The item from the spoiler playthrough is a COPY, not the original, and attempting to set it to None directly has no effect. Probably could be coded better. for item_location in [location for state in state_list for location in state.world.get_locations()]: if item_location.name == location.name and item_location.item.world.id == location.item.world.id: old_item = item_location.item From 10e6177efb2482c645feeb4910715f49efdc1965 Mon Sep 17 00:00:00 2001 From: Nick Langille Date: Sun, 16 Sep 2018 02:55:55 -0400 Subject: [PATCH 501/755] Add all dungeon info to struct --- ASM/src/c/dungeon_info.c | 51 ++++++++++++++++++++-------------------- 1 file changed, 26 insertions(+), 25 deletions(-) diff --git a/ASM/src/c/dungeon_info.c b/ASM/src/c/dungeon_info.c index 8b3234bbc..75289671f 100644 --- a/ASM/src/c/dungeon_info.c +++ b/ASM/src/c/dungeon_info.c @@ -7,34 +7,35 @@ typedef struct { uint8_t index; - char name[9]; + struct { + uint8_t has_keys : 1; + uint8_t has_boss_key : 1; + uint8_t has_card : 1; + uint8_t has_map : 1; + }; + char name[10]; } dungeon_entry_t; dungeon_entry_t dungeons[] = { - { 0, "Deku" }, - { 1, "Dodongo" }, - { 2, "Jabu" }, - - { 3, "Forest" }, - { 4, "Fire" }, - { 5, "Water" }, - { 7, "Shadow" }, - { 6, "Spirit" }, - - { 8, "BotW" }, - { 9, "Ice" }, - { 11, "GTG" }, - { 12, "Hideout" }, - { 13, "Ganon" }, + { 0, 0, 0, 0, 1, "Deku" }, + { 1, 0, 0, 0, 1, "Dodongo" }, + { 2, 0, 0, 0, 1, "Jabu" }, + + { 3, 1, 1, 0, 1, "Forest" }, + { 4, 1, 1, 0, 1, "Fire" }, + { 5, 1, 1, 0, 1, "Water" }, + { 7, 1, 1, 0, 1, "Shadow" }, + { 6, 1, 1, 0, 1, "Spirit" }, + + { 8, 1, 0, 0, 1, "BotW" }, + { 9, 0, 0, 0, 1, "Ice" }, + { 11, 1, 0, 0, 0, "GTG" }, + { 12, 1, 0, 1, 0, "Hideout" }, + { 13, 1, 1, 0, 0, "Ganon" }, }; int dungeon_count = array_size(dungeons); -int8_t has_keys[] = { 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, -1, 1, 1, 1 }; -int8_t has_bosskey[] = { 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, -1, 0, 0, 1 }; -int8_t has_card[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0 }; -int8_t has_map[] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 0, 0, 0 }; - typedef struct { uint8_t r; uint8_t g; @@ -138,7 +139,7 @@ void draw_dungeon_info(z64_disp_buf_t *db) { for (int i = 0; i < dungeon_count; i++) { dungeon_entry_t *d = &(dungeons[i]); - if (!has_keys[d->index]) continue; + if (!d->has_keys) continue; int8_t keys = z64_file.dungeon_keys[d->index]; if (keys < 0) keys = 0; @@ -158,7 +159,7 @@ void draw_dungeon_info(z64_disp_buf_t *db) { for (int i = 0; i < dungeon_count; i++) { dungeon_entry_t *d = &(dungeons[i]); - if (has_bosskey[d->index] && z64_file.dungeon_items[d->index].boss_key) { + if (d->has_boss_key && z64_file.dungeon_items[d->index].boss_key) { int top = start_top + ((icon_size + padding) * i); sprite_draw(db, &quest_items_sprite, 0, left, top, icon_size, icon_size); @@ -177,7 +178,7 @@ void draw_dungeon_info(z64_disp_buf_t *db) { for (int i = 0; i < dungeon_count; i++) { dungeon_entry_t *d = &(dungeons[i]); - if (has_map[d->index] && z64_file.dungeon_items[d->index].map) { + if (d->has_map && z64_file.dungeon_items[d->index].map) { int top = start_top + ((icon_size + padding) * i); sprite_draw(db, &quest_items_sprite, 0, left, top, icon_size, icon_size); @@ -192,7 +193,7 @@ void draw_dungeon_info(z64_disp_buf_t *db) { for (int i = 0; i < dungeon_count; i++) { dungeon_entry_t *d = &(dungeons[i]); - if (has_map[d->index] && z64_file.dungeon_items[d->index].compass) { + if (d->has_map && z64_file.dungeon_items[d->index].compass) { int top = start_top + ((icon_size + padding) * i); sprite_draw(db, &quest_items_sprite, 0, left, top, icon_size, icon_size); From 97c6b7787d64c926dd5190895511fd50340c724b Mon Sep 17 00:00:00 2001 From: Nick Langille Date: Sun, 16 Sep 2018 03:39:06 -0400 Subject: [PATCH 502/755] Update Makefile --- ASM/src/c/Makefile | 14 +++++---- ASM/src/c/output/.gitkeep | 0 ASM/src/c/output/bundle.o | Bin 9284 -> 0 bytes ASM/src/c/output/debug.txt | 60 ------------------------------------- 4 files changed, 8 insertions(+), 66 deletions(-) delete mode 100644 ASM/src/c/output/.gitkeep delete mode 100644 ASM/src/c/output/bundle.o delete mode 100644 ASM/src/c/output/debug.txt diff --git a/ASM/src/c/Makefile b/ASM/src/c/Makefile index 46227f763..579b0098f 100644 --- a/ASM/src/c/Makefile +++ b/ASM/src/c/Makefile @@ -9,18 +9,20 @@ CFLAGS = -march=vr4300 -mtune=vr4300 -mabi=32 -mno-gpopt \ OBJECTS = $(patsubst %.c,%.o,$(wildcard *.c)) HEADERS = $(wildcard *.h) -.PHONY: all clean bundle debug +OUTDIR = ../build -all: clean bundle debug +.PHONY: all clean bundle symbols + +all: clean bundle symbols %.o: %.c $(HEADERS) $(CC) -c $< $(CFLAGS) bundle: $(OBJECTS) - $(LD) -o output/bundle.o -i -L. $(patsubst %.o,-l:%.o,$(OBJECTS)) + $(LD) -o $(OUTDIR)/bundle.o -i -L. $(patsubst %.o,-l:%.o,$(OBJECTS)) -debug: bundle - $(OBJDUMP) -t output/bundle.o > output/debug.txt +symbols: bundle + $(OBJDUMP) -t $(OUTDIR)/bundle.o > $(OUTDIR)/c_symbols.txt clean: - rm -f *.o output/* + rm -f *.o diff --git a/ASM/src/c/output/.gitkeep b/ASM/src/c/output/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/ASM/src/c/output/bundle.o b/ASM/src/c/output/bundle.o deleted file mode 100644 index 703fe71fe8c94b41ed5ec5f793c1bcdf49d1095c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9284 zcmb_heQaCTbwBTs5-E|Ao+w6U9K|8+N1JwBnRXdZYq^D?WJyicRI!!CEe1%WNPR4l zsEAUX07F99T9Q9hQ7shD!1f2{kJxR6$Zeh0f21vE=c7e~!oz}X1%g(KjoI6>!S2!~ z$dYltbMJi=C4a0ddf~@&&pqd!uY2w}@5#^Z>*>^VjmkqKC*~CkfoVTAY7`M1A@We8 z=T=1w3w4~gZ2Q3d8^KbhB`M|#b{;}on)5!AoD7E|w z4J@CdKVAMV9bEnn^(}v!dLgTaAcqQPf>b;oq?NP5h3`-;d0vb~bz0Hm3+BSN$OEX?7k={hnDk?=zT_@USn3Q7vm}h$xJ>)G=tyzum zI(J&NPT{fIScvrzr46-KRu{-ECk52P>kBi7McAY0&XJKh#_JF zi1TTK+-Ow)73+wZ$p_hwT+{|X2H{7$VVYOro1-lkzKVS75;k>gL+rP`MBVeq3o}K| zm+j=7+eh}f4&+{%?1-7u+gbW>DMf^Q8OtL#^2m)mawCu2$RjuM$c;R51G&_ra%qxt zFMozYdH9|GCWRNjL3XNnIHzq!jA9(4ZqMQgoK=?*5O%t#^uQCa^YezOb#qKZx$r5( z5V4C^U9nKhLU$7Kus^C_CbM&+ z#`?@^3Ij^|5a`cAZ>P_q6$OpgE?Ty{OXlzSt`dWEib+^{jC3tVv-_>v%9mZ|sIB&yWdu#qdYFWAn|4zkYORuY# zsq-}B9&ITJn(imSb?5X;aUOiOe1^#3AEO>dQ1`;9dpmKzjHs>^%($QP$s0vR?bTl_ zV(#Pmy6q$x;6ZJoSu;MsJpPD&j-jdOEqUbOR^tRwZ!UnlNlTNkCBB{SDceJ!x0vx~ z$ik!O9K3g{iJw?5$a9LJP8wglpoO~wI}FqgBHzoKv0l^N&il+kW&#g|gStN!G##bu zU#-H@$xvVcI!JHS`TiG<6Ma<&-eCk5(txK!!NNY$%s221qE`OI*x`+pZlDh7tk<+_ zg!)6KO(WzxVV#htcFt8Zt_eFaccV^3P!GbW2Rk{I=q+t*7vch6<=tUl$-dzt>G$b$ z#0Z4r)PNeb1wF&YymZ*V1@etK=Iijw-j`b2)3^_@U30UjTaZ0pjr)(-MD-l>)Lp08 zhc)x)0kCI%pA&si#1i}0L*`d@b5C4B4z!@Y`j7{rm&*S40_$ms#AgezSA*?=#rB$r zsZ+H#NzGK`+Psb)uj%&2$k1cqGEMA@*K}arrTatW_1QRi?GK?ovVVv%+sJX|z0AkB zjx&a>EvUaf#Jkc*KkPmRyHm?QL=XQydieLy!(TxUKZhRvUFv~9-SDRac^zYa_-y95 z{_t6L$UYFY|ALk}pcm^*Uj!tZQRH*t?vAq@Fq^cPo;BJzk+;^74<$G)$PawJKw(u`kWtqZjEg>^|=eO&&}(wA2t1D_)%HY*RFru z7#Tde1+l?hE$xb+mtby3EhqC7Vs)C|!NTQp67h}WqQ>X}o<}{n)BE{!kw;$47qPYh z@B_e2ACcKi2HzFf9*y2b^mWXs&j{o?i9#31))%Auw(jP;TKa^lA$7zzN2{M#(*!_VPI?b_JjJP{Yu_S?neV2pNc&7z*7)s|Jz@I%1tGsykNb9b2TK2mn0pX8 zqe8a^-8ez1ThHOH4Ja9Ye~@LszFOgXT=@P0%Mf=X4x4qOh%?jaz_9>&tA?I!v+}`; zos|dhdHdF9uy@txvR?K%x*^xN_k&ZHR{iw_a)U(10D1LyQLp3lD(MJ{ZIdlDNVUBK z(5F+4X$#Zo6SyBSUr=-gz1e0L@4dbtYI^ttXqA4UXZg#1AwIhF>oWVr_OTzF$9M1} z1U~bY`P`gqEa!ANhov8|_b$$(y%$eiqNMQW40?cuvuxmX_+lXUe0Xk|leS`8knPe} zD$aOqUS5G;wQQR@3;lLJAP2Vn4)!;%w;$(!`1kC?W#z+O<%4zyAKEP+^jHD0L0wVz zhjWSZPSuk(kyD5H4wcVB`f_>oEZ|H0cku;vqRq;6jt}2CeY3c4oKv-k_1(B{-SVEn zM%?GE|A2hAY_;w=YN4okeV&?$~{jS)8|IW8Fb1$bAzZKBmVo19Bqo$mMHje zLy5m3P1kjb)?gpLe1hAd1U!8?swyNAGhMw)q3>i-)%$H~k_npkJp@a6ZZLFz)Y*m42B! zjyyzt=l8efcR9ksBSzjTmwxiri>JZbXn9VdTb64CyG&?yA9CLLAopGC_V-NmvWc?$uYmO>% zR_i4(h#D_^>h1Q;&c2`h-OR>seCFRyek*_tkz{xqW&s(%EUy?VY1jX~9?Zcw#y|#Z$+DkwhwU2(#(~lcQ6k z%;$_}rXOb_)qHMHZXj1zUzb=SclT&2otXh+T~}fvGa*;;TSr~(?Vs_7x*mCKyT7e< zPivTdZ!2Xbx0u|Ewfkp4Stzv>GzUQnp&=Hx{0bJByYXvwe|LOo< zyNU^Uu620bI=miu*=9SHZU8UqR5TBKHMnWvfb0)<0&v z;UDw70_XdF5>Gu|eK{UDiw4GbdSv{*jBfW7%m#@Uf3$Zbzh>ot;@7~&K3o24cViyIgFjkw{%Bhf<{Y5Xr|klbhfmS}2=f>o z6+i9sn4iOQSo*8=VLpJzqwoacdkOd%wV%7uA|7i$V(mBxT*Y5|7IReLGW~hXd2oDj zp4!(C&$obkmAt>goX^LS$7d;qA%3-Q0dPGCDgM8OJ}>YNfe#No)jCKs)1zYm2#J5Bm@IarAD)p?770MIA#0CpR`=bN)P)7Gh>-46%hCe z?>I=wOg4)^(V&#TOXCQN@NxoSl{2A>X@jtZ+WWirJ=D9#qW;PBR6ouvO+)yRviP)n zh#s&5z9(VT6474ZRmc|sSBN&_K2%)+#NDp~-$ur-12T>t+5()*LJNNQKU%h7f3=$^ z$T;%mUdDGSJc1U@{B3|t?@{aE3G#YM;d5%=BGDFJ|7$?zFDQ7H-`;`aoU++j-jjsc=Q;Bkx~-5E|2Z2)w-i8e88LHT4jChc&7&UQFq zAKU9(koMM`lX0mzFXK}48c_iIYM}QX@YP%b#J(EXcR%BZ>-~&h!&@xl?*TG?9oL%i z_W>FICn=ZP2*#v0#!FNURK|brRg?!e} z?TGcez{~nwZYjrQNI9+!sn6w=a$LPqj%!THaZM^YFA#kSGF*SI_>L*QGcr!DB^f8z zYcgM4u$S}21$)^}*V}3z>}G#lSCsr~NI#^|`T^{d2<(-shf^^4$wk zzI##1cXOPWub}u~568iMR?2suM_Xk4RX~=b>~t$T>q0UPZrICm>LOB3U9Z$v*C+MW z9hCa&V4vViDZVkOuMT!{-0Pk~`(QbUSD5ixCFcbt=RK*fZcfR8-|Sz#SMt^SBwu}t z)K_mxzIxax_`*_OJ?vzC^)achzC-G(?@@Btex{$7`sxoVIj<=>SBQ4N&iZSB%m=#~ z8NUw5`1@#EjKe+;@CMk!c~Jkcl+&xUf%>%)3upNxZ{ z>}ecO>p98SIIHj%6h0?$!r0F5mVVSxhB4GZh6B*UFb5LD0_qmSBI*sp71SR<4byuW z`cZco#)x(?93Z-zVGi|(VFC4tVG(g=xPrLq)S7*Id^(W?oSu?!#F~BKbG-*z6Uot` zvBYqeTBp*(+@yIj*2*0hvrH;6o#3szTO-uU2m~pR%wm)H8O)52r_q$e&dJmiwc;(j zH8DLsHJY5^p4U2_N+)NAS=p!e(EnrHGl}E^Kl~A+4Zl7$XMnR7_zv*ljLM@|ty>Go zFA>N;P|)Hbz{d&VO@J@|xg2xtT!?i?1Iz+gZtn zZRKI{rLe;Gg(XGE!@GNVFpZxl6;y<#w^olvELrl#fmOuMKL9+3hvUcbVLrC&E16R1 z*MMr=1$p9q-&$auJf6d2%`v?TcXG|JXbi1f!Ib%I92@o-f1MP1dCs<}m|#YC_dxtl Wd8URX53k9UeEt>Si;9PV;QL?Y)FU4N diff --git a/ASM/src/c/output/debug.txt b/ASM/src/c/output/debug.txt deleted file mode 100644 index 24404f8c4..000000000 --- a/ASM/src/c/output/debug.txt +++ /dev/null @@ -1,60 +0,0 @@ - -output/bundle.o: file format elf32-bigmips - -SYMBOL TABLE: -00000000 l d .MIPS.abiflags 00000000 .MIPS.abiflags -00000000 l d .reginfo 00000000 .reginfo -00000000 l d .text 00000000 .text -00000000 l d .rodata.str1.4 00000000 .rodata.str1.4 -00000000 l d .data 00000000 .data -00000000 l d .sdata 00000000 .sdata -00000000 l d .sbss 00000000 .sbss -00000000 l d .bss 00000000 .bss -00000000 l d .comment 00000000 .comment -00000000 l d .pdr 00000000 .pdr -00000000 l d .gnu.attributes 00000000 .gnu.attributes -00000000 l d .mdebug.abi32 00000000 .mdebug.abi32 -00000000 l df *ABS* 00000000 gfx.c -00000000 l df *ABS* 00000000 util.c -00000000 l df *ABS* 00000000 main.c -00000000 l df *ABS* 00000000 dungeon_info.c -00000000 l .rodata.str1.4 00000000 $LC0 -00000004 l .rodata.str1.4 00000000 $LC1 -00000000 l df *ABS* 00000000 text.c -00000008 l O .sbss 00000004 text_buf -00000004 l O .sbss 00000004 text_end -000000a4 g O .data 0000000e has_keys -00000fa4 g F .text 0000002c text_init -00001078 g F .text 00000148 text_flush -00000784 g F .text 000000b8 overlay_swap -00000020 g O .data 00000010 medals_sprite -00000000 g O .sdata 00000004 dungeon_count -00000010 g O .data 00000010 quest_items_sprite -000006e0 g F .text 00000034 heap_alloc -0000083c g F .text 00000768 draw_dungeon_info -00000000 *UND* 00000000 FONT_TEXTURE -000002bc g F .text 000000e8 sprite_draw -00000070 g F .text 0000024c sprite_load -00000030 g O .data 00000010 stones_sprite -00000000 g O .bss 00000010 setup_db -000003a4 g F .text 000001dc draw_setup -00000000 g O .data 00000010 font_sprite -00000050 g O .data 0000000e rewards -00000040 g F .text 00000030 sprite_bytes -00000580 g F .text 0000014c gfx_init -00000000 g F .text 00000018 disp_buf_init -00000040 g O .data 0000000e dungeon_is_mq -000000b4 g O .data 00000082 dungeons -00000060 g O .data 00000012 medal_colors -00000fd0 g F .text 000000a8 text_print -00000094 g O .data 0000000e has_bosskey -00000758 g F .text 0000002c c_init -00000074 g O .data 0000000e has_map -00000000 g O .sbss 00000004 heap_next -000006cc g F .text 00000014 heap_init -00000084 g O .data 0000000e has_card -00000000 *UND* 00000000 C_HEAP -00000018 g F .text 00000028 sprite_bytes_per_tile -00000714 g F .text 00000044 file_init - - From f1eed649db31d1032bdbc0e86c31902a0092b72a Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 16 Sep 2018 03:42:57 -0400 Subject: [PATCH 503/755] Changed formatting, can be None, and changed some hints --- HintList.py | 507 ++++++++++++++++++++++++++-------------------------- version.py | 2 +- 2 files changed, 255 insertions(+), 254 deletions(-) diff --git a/HintList.py b/HintList.py index 4987901cc..27d0c3250 100644 --- a/HintList.py +++ b/HintList.py @@ -5,277 +5,278 @@ class Hint(object): text = "" type = "" - def __init__(self, name, text, type): + def __init__(self, name, text, type, choice=None): self.name = name - self.text = text self.type = type -def _getHint(name, world): - textOptions, clearText, type = hintTable[name] - if world.clearer_hints == True: - return (clearText, type) - else: - # Because it doesn't make sense to offer random variants of some hints - if isinstance(textOptions, str): - return (textOptions, type) + if isinstance(text, str): + self.text = text else: - return (random.choice(textOptions), type) + if choice == None: + self.text = random.choice(text) + else: + self.text = text[choice] + def getHint(name, world): - ret = Hint - for hint in hintTable: - if name == hint: - text, type = _getHint(hint, world) - ret = Hint(hint, text, type) - break - else: - text, type = _getHint('KeyError', world) - ret = Hint(hint, text, type) - return ret + hint = name + if name not in hintTable: + hint = 'KeyError' + + textOptions, clearText, type = hintTable[hint] + if world.clearer_hints == True: + if clearText == None: + return Hint(name, textOptions, type, 0) + return Hint(name, clearText, type) + else: + return Hint(name, textOptions, type) + def getHintGroup(group, world): ret = [] - for hint in hintTable: - text, type = _getHint(hint, world) - if type == group and not (hint in hintExclusions(world)): - ret.append(Hint(hint, text, type)) + for name in hintTable: + hint = getHint(name, world) + if hint.type == group and not (name in hintExclusions(world)): + ret.append(hint) return ret + #table of hints, format is (name, hint text, clear hint text, type of hint) there are special characters that are read for certain in game commands: # ^ is a box break # & is a new line # @ will print the player name # # sets color to white (currently only used for dungeon reward hints). -hintTable = {'Hammer': (["the dragon smasher", "a metallic crusher", "the WHAM! weapon"], "the hammer", 'item'), - 'Magic Meter': (["sorcery training", "a stamina scroll", "pixie dust"], "magic", 'item'), - 'Double Defense': (["a white outline", "sturdy hearts", "strengthened love"], "double defense", 'item'), - 'Progressive Hookshot': (["Dampe's keepsake", "an arm extension", "a great chain"], "a hookshot", 'item'), - 'Progressive Strength Upgrade': (["power gloves", "arm day results", "the heavy lifty"], "a strength enhancement", 'item'), - 'Hover Boots': (["butter boots", "slippery shoes", "spacewalkers"], "the hover boots", 'item'), - 'Master Sword': (["evil's bane"], "the master sword", 'item'), - 'Mirror Shield': (["the reflective rampart", "Medusa's weakness", "a silvered surface"], "the reflecting shield", 'item'), - 'Farores Wind': (["teleportation", "relocation magic", "a warp spell", "green wind"], "Farores spell", 'item'), - 'Nayrus Love': (["a safe space", "an impregnable aura", "a blue barrier"], "Nayrus spell", 'item'), - 'Ice Arrows': (["the refrigerator rocket", "frostbite bolts", "cold darts", "freezing projectiles"], "the ice arrows", 'item'), - 'Lens of Truth': (["a lie detector", "true sight", "a detective's tool"], "the lens of truth", 'item'), - 'Dins Fire': (["an inferno", "a great heat wave", "a blast of hot air"], "Dins spell", 'item'), - 'Ocarina': (["a flute", "a source of music"], "an ocarina", 'item'), - 'Fairy Ocarina': (["a brown flute", "a forest instrument"], "the fairy ocarina", 'item'), - 'Goron Tunic': (["ruby robes", "fireproof garbs", "mountain clothing"], "a red runic", 'item'), - 'Zora Tunic': (["a sapphire suit", "a fishy outfit", "lake clothing"], "a blue tunic", 'item'), - 'Iron Boots': (["sink shoes", "watery footwear", "noisy boots"], "the iron boots", 'item'), - 'Zeldas Letter': (["an autograph", "royal stationery", "royal snail mail"], "Zeldas letter", 'item'), - 'Zeldas Lullaby': (["a song of royal slumber", "a triforce tune"], "Zeldas lullaby", 'item'), - 'Nocturne of Shadow': (["a song of spooky spirits", "a graveyard boogie", "a ghastly tune"], "the nocturne of shadow", 'item'), - 'Bow': (["an archery enabler", "a danger dart launcher"], "a bow", 'item'), - 'Bomb Bag': (["an explosive container", "kaboom storage"], "a bomb bag", 'item'), - 'Sarias Song': (["a song of dancing Gorons", "a green girl's tune", "child's forest melody"], "Sarias song", 'item'), - 'Song of Time': (["a song 7 years long", "a tune to move blocks"], "the song of time", 'item'), - 'Song of Storms': (["Rain Dance", "a thunderstorm melody", "the tune of windmills"], "the song of storms", 'item'), - 'Minuet of Forest': (["the song of tall trees", "adult's forest melody", "a green warp song"], "the minuet of forest", 'item'), - 'Requiem of Spirit': (["a song of sandy statues", "an orange warp song", "the tune of the desert"], "the requiem of spirit", 'item'), - 'Slingshot': (["a seed shooter", "a rubberband", "a child's catapult"], "a slingshot", 'item'), - 'Boomerang': (["a banana", "a faithful curved stick"], "the boomerang", 'item'), - 'Fire Arrows': (["the furnace firearm", "flame darts", "burning projectiles"], "the fire arrows", 'item'), - 'Ocarina of Time': (["a blue flute", "a royal instrument"], "the ocarina of time", 'item'), - 'Bottle': (["a glass container", "an empty jar", "something to be filled"], "a bottle", 'item'), - 'Bottle with Letter': (["a call for help", "an SOS jar", "fishy stationery"], "Rutos letter", 'item'), - 'Bottle with Milk': (["cow juice", "a white liquid"], "milk", 'item'), - 'Bottle with Red Potion': (["a vitality vial", "a red liquid"], "a red potion", 'item'), - 'Bottle with Green Potion': (["a magic mixture", "a green liquid"], "a green potion", 'item'), - 'Bottle with Blue Potion': (["a cure-all antidote", "a blue liquid"], "a blue potion", 'item'), - 'Bottle with Fairy': (["an imprisoned fairy", "an extra life"], "a fairy", 'item'), - 'Bottle with Fish': (["an aquarium", "a contained sea beast"], "a fish", 'item'), - 'Bottle with Blue Fire': (["a conflagration canteen", "an icemelt jar"], "blue fire", 'item'), - 'Bottle with Bugs': (["an insectarium", "skultula finders", "a digging trio"], "bugs", 'item'), - 'Bottle with Poe': (["a spooky ghost", "a face in the jar"], "a poe", 'item'), - 'Progressive Scale': (["vertical swim depth", "a dive enhancer"], "a scale", 'item'), - 'Stone of Agony': (["a vibrating rock", "a clue finder"], "the stone of agony", 'item'), - 'Eponas Song': (["an equestrian etude", "a ranch song"], "Eponas song", 'item'), - 'Epona': (["a horse", "a four legged friend"], "Epona", 'item'), - 'Gerudo Membership Card': (["a GT subscription", "a desert tribe's pass"], "the Gerudo card", 'item'), - 'Progressive Wallet': (["a mo' money holder", "a gem purse", "financial capacity"], "a wallet", 'item'), - 'Bolero of Fire': (["a song of lethal lava", "a red warp song", "a volcano tune", "a song of a red sea"], "the bolero of fire", 'item'), - 'Suns Song': (["Sunny Day", "a time advancer", "a day/night melody", "the gibdo's bane"], "the suns song", 'item'), - 'Deku Shield': (["a wooden ward", "forest protection"], "a deku shield", 'item'), - 'Hylian Shield': (["a steel safeguard", "a Hylian relic", "metallic protection"], "a hylian shield", 'item'), - 'Deku Stick Capacity': (["a lumber rack", "more flammable twigs"], "stick capacity", 'item'), - 'Deku Nut Capacity': (["more nuts", "flashbang storage"], "nut capacity", 'item'), - 'Prelude of Light': (["a luminous prologue melody", "a yellow warp song", "the temple traveler"], "the prelude of light", 'item'), - 'Serenade of Water': (["a song of a damp ditch", "a blue warp song", "the lake's tune"], "the serenade of water", 'item'), - 'Heart Container': (["a lot of love", "a Valentine's gift", "a boss's organ"], "a heart container", 'item'), - 'Piece of Heart': (["love", "a partial Valentine"], "a heart piece", 'item'), - 'Piece of Heart (Treasure Chest Game)': (["love", "a partial Valentine"], "a heart piece", 'item'), - 'Recovery Heart': (["a free heal", "disappointing love"], "a heal", 'item'), - 'Rupee (1)': (["a unique coin", "a penny", "a tiny coin", "a green gem"], "a rupee", 'item'), - 'Rupees (5)': (["a common coin", "a blue gem"], "five rupees", 'item'), - 'Rupees (20)': (["couch cash", "a red gem"], "twenty rupees", 'item'), - 'Rupees (50)': (["big bucks", "a purple gem", "wealth"], "fifty rupees", 'item'), - 'Rupees (200)': (["a juicy jackpot", "a yellow gem", "great wealth"], "two hundred rupees", 'item'), - 'Light Arrows': (["the shining shot", "glowing darts", "Ganondorf's bane"], "the light arrows", 'item'), - 'Kokiri Sword': (["a butter knife", "a tiny, sharp blade", "a child's blade"], "the kokiri sword", 'item'), - 'Biggoron Sword': (["an unwieldy knife", "a two-handed blade"], "the Biggoron sword", 'item'), - 'Pocket Egg': (["a Cucco container", "a Cucco, eventually", "a fowl youth"], "a pocket egg", 'item'), - 'Weird Egg': (["a chicken dilemma"], "a weird egg", 'item'), - 'Pocket Cucco': (["a little clucker"], "a pocket cucco", 'item'), - 'Cojiro': (["a cerulean capon"], "Cojiro", 'item'), - 'Odd Mushroom': (["a powder ingredient"], "an odd mushroom", 'item'), - 'Odd Potion': (["Granny's goodies"], "an odd potion", 'item'), - 'Poachers Saw': (["a tree killer"], "the poachers saw", 'item'), - 'Broken Sword': (["a shattered slicer"], "a broken sword", 'item'), - 'Prescription': (["a pill pamphlet", "a Doctor's slip"], "a prescription", 'item'), - 'Eyeball Frog': (["a perceiving polliwog"], "an eyeball frog", 'item'), - 'Eyedrops': (["a vision vial"], "eyedrops", 'item'), - 'Claim Check': (["a three day wait"], "a claim check", 'item'), - 'Map': (["a dungeon atlas", "blueprints"], "a map", 'item'), - 'Compass': (["a treasure tracker", "a magnetic needle"], "a compass", 'item'), - 'BossKey': (["a master of unlocking", "a dungeon's final pass"], "a boss key", 'item'), - 'SmallKey': (["a tool for unlocking", "a dungeon pass", "a lock remover", "a legal lockpick", "a portal opener"], "a small key", 'item'), - 'FortressSmallKey': (["a get out of jail free card"], "a jail key", 'item'), - 'KeyError': (["something mysterious", "an unknown treasure"], "something unknown", 'item'), - 'Arrows (5)': (["danger darts", "piercing ammunition", "a quiver's contents"], "arrows", 'item'), - 'Arrows (10)': (["danger darts", "piercing ammunition", "a quiver's contents"], "arrows", 'item'), - 'Arrows (30)': (["danger darts", "piercing ammunition", "a quiver's contents"], "arrows", 'item'), - 'Bombs (5)': (["explosives", "sparky boom balls", "fireworks"], "bombs", 'item'), - 'Bombs (10)': (["explosives", "sparky boom balls", "fireworks"], "bombs", 'item'), - 'Bombs (20)': (["lots-o-explosives", "sparky boom balls", "fireworks"], "bombs", 'item'), - 'Ice Trap': (["a gift from Ganon", "a chilling discovery", "an icy blast", "an unwanted freeze", "a wintery surprise"], "a trap", 'item'), - 'Magic Bean': (["wizardly legumes"], "a bean", 'item'), - 'Bombchus': (["mice bombs", "hot-headed friends", "remote mines"], "bombchus", 'item'), - 'Bombchus (5)': (["mice bombs", "hot-headed friends", "remote mines"], "bombchus", 'item'), - 'Bombchus (10)': (["mice bombs", "hot-headed friends", "remote mines"], "bombchus", 'item'), - 'Bombchus (20)': (["mice bombs", "hot-headed friends", "remote mines"], "bombchus", 'item'), - 'Deku Nuts (5)': (["some nuts", "some flashbangs", "Sheik's ammo"], "nuts", 'item'), - 'Deku Nuts (10)': (["lots-o-nuts", "lots of flashbangs", "Sheik's ammo"], "nuts", 'item'), - 'Gold Skulltulla Token': (["proof of destruction", "an arachnid chip", "spider remains"], "a golden token", 'item'), +hintTable = { + 'Hammer': (["the dragon smasher", "a metallic crusher", "the WHAM! weapon"], "the Hammer", 'item'), + 'Magic Meter': (["sorcery training", "a stamina scroll", "pixie dust"], "Magic", 'item'), + 'Double Defense': (["a white outline", "sturdy hearts", "strengthened love"], "Double Defense", 'item'), + 'Progressive Hookshot': (["Dampe's keepsake", "an arm extension", "a great chain"], "a Hookshot", 'item'), + 'Progressive Strength Upgrade': (["power gloves", "arm day results", "the heavy lifty"], "a Strength Upgrade", 'item'), + 'Hover Boots': (["butter boots", "slippery shoes", "spacewalkers"], "the Hover Boots", 'item'), + 'Master Sword': (["evil's bane"], "the Master Sword", 'item'), + 'Mirror Shield': (["the reflective rampart", "Medusa's weakness", "a silvered surface"], "the Mirror Shield", 'item'), + 'Farores Wind': (["teleportation", "relocation magic", "a warp spell", "green wind"], "Farore's Wind", 'item'), + 'Nayrus Love': (["a safe space", "an impregnable aura", "a blue barrier"], "Nayru's Love", 'item'), + 'Ice Arrows': (["the refrigerator rocket", "frostbite bolts", "cold darts", "freezing projectiles"], "the Ice Arrows", 'item'), + 'Lens of Truth': (["a lie detector", "true sight", "a detective's tool"], "the Lens of Truth", 'item'), + 'Dins Fire': (["an inferno", "a great heat wave", "a blast of hot air"], "Din's Fire", 'item'), + 'Ocarina': (["a flute", "a source of music"], "an Ocarina", 'item'), + 'Fairy Ocarina': (["a brown flute", "a forest instrument"], "the Fairy Ocarina", 'item'), + 'Goron Tunic': (["ruby robes", "fireproof garbs", "mountain clothing"], "a Goron Tunic", 'item'), + 'Zora Tunic': (["a sapphire suit", "a fishy outfit", "lake clothing"], "a Zora Tunic", 'item'), + 'Iron Boots': (["sink shoes", "watery footwear", "noisy boots"], "the Iron Boots", 'item'), + 'Zeldas Letter': (["an autograph", "royal stationery", "royal snail mail"], "Zelda's Letter", 'item'), + 'Zeldas Lullaby': (["a song of royal slumber", "a triforce tune"], "Zelda's Lullaby", 'item'), + 'Nocturne of Shadow': (["a song of spooky spirits", "a graveyard boogie", "a ghastly tune"], "the Nocturne of Shadow", 'item'), + 'Bow': (["an archery enabler", "a danger dart launcher"], "a Bow", 'item'), + 'Bomb Bag': (["an explosive container", "kaboom storage"], "a Bomb Bag", 'item'), + 'Sarias Song': (["a song of dancing Gorons", "a green girl's tune", "child's forest melody"], "Sarias Song", 'item'), + 'Song of Time': (["a song 7 years long", "a tune to move blocks"], "the Song of Time", 'item'), + 'Song of Storms': (["Rain Dance", "a thunderstorm melody", "the tune of windmills"], "the Song of Storms", 'item'), + 'Minuet of Forest': (["the song of tall trees", "adult's forest melody", "a green warp song"], "the Minuet of Forest", 'item'), + 'Requiem of Spirit': (["a song of sandy statues", "an orange warp song", "the tune of the desert"], "the Requiem of Spirit", 'item'), + 'Slingshot': (["a seed shooter", "a rubberband", "a child's catapult"], "a Slingshot", 'item'), + 'Boomerang': (["a banana", "a faithful curved stick"], "the Boomerang", 'item'), + 'Fire Arrows': (["the furnace firearm", "flame darts", "burning projectiles"], "the Fire Arrows", 'item'), + 'Ocarina of Time': (["a blue flute", "a royal instrument"], "the Ocarina of Time", 'item'), + 'Bottle': (["a glass container", "an empty jar", "something to be filled"], "a Bottle", 'item'), + 'Bottle with Letter': (["a call for help", "an SOS jar", "fishy stationery"], "Ruto's letter", 'item'), + 'Bottle with Milk': (["cow juice", "a white liquid"], "a Milk Bottle", 'item'), + 'Bottle with Red Potion': (["a vitality vial", "a red liquid"], "a Red Bottle", 'item'), + 'Bottle with Green Potion': (["a magic mixture", "a green liquid"], "a Green Bottle", 'item'), + 'Bottle with Blue Potion': (["a cure-all antidote", "a blue liquid"], "a Blue Bottle", 'item'), + 'Bottle with Fairy': (["an imprisoned fairy", "an extra life"], "a Fairy Bottle", 'item'), + 'Bottle with Fish': (["an aquarium", "a contained sea beast"], "a Fish Bottle", 'item'), + 'Bottle with Blue Fire': (["a conflagration canteen", "an icemelt jar"], "a Fire Bottle", 'item'), + 'Bottle with Bugs': (["an insectarium", "skultula finders", "a Bug Bottle"], "bugs", 'item'), + 'Bottle with Poe': (["a spooky ghost", "a face in the jar"], "a Poe Bottle", 'item'), + 'Progressive Scale': (["vertical swim depth", "a dive enhancer"], "a Zora Scale", 'item'), + 'Stone of Agony': (["a vibrating rock", "a clue finder"], "the Stone of Agony", 'item'), + 'Eponas Song': (["an equestrian etude", "a ranch song"], "Epona's song", 'item'), + 'Epona': (["a horse", "a four legged friend"], "Epona", 'item'), + 'Gerudo Membership Card': (["a GT subscription", "a desert tribe's pass"], "the Gerudo Card", 'item'), + 'Progressive Wallet': (["a mo' money holder", "a gem purse", "financial capacity"], "a Wallet", 'item'), + 'Bolero of Fire': (["a song of lethal lava", "a red warp song", "a volcano tune", "a song of a red sea"], "the Bolero of Fire", 'item'), + 'Suns Song': (["Sunny Day", "a time advancer", "a day/night melody", "the gibdo's bane"], "the Sun's Song", 'item'), + 'Deku Shield': (["a wooden ward", "forest protection"], "a Deku Shield", 'item'), + 'Hylian Shield': (["a steel safeguard", "a Hylian relic", "metallic protection"], "a Hylian Shield", 'item'), + 'Deku Stick Capacity': (["a lumber rack", "more flammable twigs"], "a Stick Capacity Upgrade", 'item'), + 'Deku Nut Capacity': (["more nuts", "flashbang storage"], "a Nut Capacity Upgrade", 'item'), + 'Prelude of Light': (["a luminous prologue melody", "a yellow warp song", "the temple traveler"], "the Prelude of Light", 'item'), + 'Serenade of Water': (["a song of a damp ditch", "a blue warp song", "the lake's tune"], "the Serenade of Water", 'item'), + 'Heart Container': (["a lot of love", "a Valentine's gift", "a boss's organ"], "a Heart Container", 'item'), + 'Piece of Heart': (["love", "a partial Valentine"], "a Heart Piece", 'item'), + 'Piece of Heart (Treasure Chest Game)': (["love", "a partial Valentine"], "a Heart Piece", 'item'), + 'Recovery Heart': (["a free heal", "disappointing love"], "a Recovery Heart", 'item'), + 'Rupee (1)': (["a unique coin", "a penny", "a tiny coin", "a green gem"], "a Green Rupee", 'item'), + 'Rupees (5)': (["a common coin", "a blue gem"], "a Blue Rupee", 'item'), + 'Rupees (20)': (["couch cash", "a red gem"], "a Red Rupees", 'item'), + 'Rupees (50)': (["big bucks", "a purple gem", "wealth"], "a Purple Rupee", 'item'), + 'Rupees (200)': (["a juicy jackpot", "a yellow gem", "great wealth"], "a Gold Rupee", 'item'), + 'Light Arrows': (["the shining shot", "glowing darts", "Ganondorf's bane"], "the Light Arrows", 'item'), + 'Kokiri Sword': (["a butter knife", "a tiny, sharp blade", "a child's blade"], "the Kokiri Sword", 'item'), + 'Biggoron Sword': (["an unwieldy knife", "a two-handed blade"], "the Biggoron Sword", 'item'), + 'Pocket Egg': (["a Cucco container", "a Cucco, eventually", "a fowl youth"], "the Pocket Egg", 'item'), + 'Weird Egg': (["a chicken dilemma"], "the Weird Egg", 'item'), + 'Pocket Cucco': (["a little clucker"], "the Pocket Cucco", 'item'), + 'Cojiro': (["a cerulean capon"], "Cojiro", 'item'), + 'Odd Mushroom': (["a powder ingredient"], "an Odd Mushroom", 'item'), + 'Odd Potion': (["Granny's goodies"], "an Odd Potion", 'item'), + 'Poachers Saw': (["a tree killer"], "the Poacher's Saw", 'item'), + 'Broken Sword': (["a shattered slicer"], "the Broken Sword", 'item'), + 'Prescription': (["a pill pamphlet", "a Doctor's slip"], "the Prescription", 'item'), + 'Eyeball Frog': (["a perceiving polliwog"], "the Eyeball Frog", 'item'), + 'Eyedrops': (["a vision vial"], "the Eyedrops", 'item'), + 'Claim Check': (["a three day wait"], "the Claim check", 'item'), + 'Map': (["a dungeon atlas", "blueprints"], "a Map", 'item'), + 'Compass': (["a treasure tracker", "a magnetic needle"], "a Compass", 'item'), + 'BossKey': (["a master of unlocking", "a dungeon's final pass"], "a Boss Key", 'item'), + 'SmallKey': (["a tool for unlocking", "a dungeon pass", "a lock remover", "a legal lockpick", "a portal opener"], "a Small Key", 'item'), + 'FortressSmallKey': (["a get out of jail free card"], "a Jail Key", 'item'), + 'KeyError': (["something mysterious", "an unknown treasure"], "An Error (Please Report This)", 'item'), + 'Arrows (5)': (["a few danger darts", "a few piercing ammunition"], "Arrows", 'item'), + 'Arrows (10)': (["some danger darts", "some piercing ammunition"], "Arrows", 'item'), + 'Arrows (30)': (["plenty of danger darts", "plenty of piercing ammunition"], "Arrows", 'item'), + 'Bombs (5)': (["a few explosives", "a few sparky boom balls", "a few fireworks"], "Bombs", 'item'), + 'Bombs (10)': (["some explosives", "some sparky boom balls", "some fireworks"], "Bombs", 'item'), + 'Bombs (20)': (["lots-o-explosives", "plenty of sparky boom balls", "plenty of fireworks"], "Bombs", 'item'), + 'Ice Trap': (["a gift from Ganon", "a chilling discovery", "an icy blast", "an unwanted freeze", "a wintery surprise"], "an Ice Trap", 'item'), + 'Magic Bean': (["wizardly legumes"], "a Magic Bean", 'item'), + 'Bombchus': (["mice bombs", "remote mines", "proximity mice", "wall crawlers", "trail blazers"], "Bombchus", 'item'), + 'Bombchus (5)': (["a few mice bombs", "a few remote mines", "a few proximity mice", "a few wall crawlers", "a few trail blazers"], "Bombchus", 'item'), + 'Bombchus (10)': (["some mice bombs", "some remote mines", "some proximity mice", "some wall crawlers", "some trail blazers"], "Bombchus", 'item'), + 'Bombchus (20)': (["plenty of mice bombs", "plenty of remote mines", "plenty of proximity mice", "plenty of wall crawlers", "plenty of trail blazers"], "Bombchus", 'item'), + 'Deku Nuts (5)': (["some nuts", "some flashbangs", "some Sheik's ammo"], "some Deku Nuts", 'item'), + 'Deku Nuts (10)': (["lots-o-nuts", "plenty of flashbangs", "plenty of Sheik's ammo"], "plenty of Deku Nuts", 'item'), + 'Gold Skulltulla Token': (["proof of destruction", "an arachnid chip", "spider remains"], "a Golden Token", 'item'), - '10 Big Poes': ("They say that ghost hunters will be rewarded with", "They say that Big Poes leads to", 'alwaysLocation'), - 'Deku Theater Mask of Truth': ("They say that the Mask of Truth yields", "They say that the Mask of Truth yields", 'alwaysLocation'), - '30 Gold Skulltulla Reward': ("They say that slaying 30 Gold Skulltulas reveals", "They say that slaying 30 Gold Skulltulas reveals", 'alwaysLocation'), - '40 Gold Skulltulla Reward': ("They say that slaying 40 Gold Skulltulas reveals", "They say that slaying 40 Gold Skulltulas reveals", 'alwaysLocation'), - '50 Gold Skulltulla Reward': ("They say that slaying 50 Gold Skulltulas reveals", "They say that slaying 50 Gold Skulltulas reveals", 'alwaysLocation'), - 'Song from Ocarina of Time': ("They say the Ocarina of Time teaches", "They say the Ocarina of Time teaches", 'alwaysLocation'), - 'Biggoron': ("They say that Biggoron crafts", "They say that Biggoron crafts", 'alwaysLocation'), - 'Child Fishing': ("They say that fishing in youth bestows", "They say that fishing in youth bestows", 'location'), - 'Adult Fishing': ("They say that fishing in maturity bestows", "They say that fishing in maturity bestows", 'location'), - '20 Gold Skulltulla Reward': ("They say that slaying 20 Gold Skulltulas reveals", "They say that slaying 20 Gold Skulltulas reveals", 'location'), - 'Treasure Chest Game': (["They say that gambling grants", "They say there is a 1/32 chance to win"], "They say that the treasure chest game grants", 'location'), - 'Darunias Joy': ("They say that Darunia's dance leads to", "They say that Darunia's dance leads to", 'location'), - 'Frog Ocarina Game': ("They say that the musical amphibians have found", "They say The Frogs of Zora River hold", 'location'), - 'Horseback Archery 1500 Points': ("They say that mastery of horseback archery grants", "They say that mastery of horseback archery grants", 'location'), - 'Lake Hylia Sun': (["They say staring into the sun grants", "They say that acts of solar aggression are punished with"], "They say that shooting the sun grants", 'location'), - 'Heart Piece Grave Chest': ("They say there's a hidden location where the Sun's Song spawns", "They say there's a hidden location where the Sun's Song spawns", 'location'), - 'Goron City Leftmost Maze Chest': ("They say in Goron City the hammer unlocks", "They say in Goron City the hammer unlocks", 'location'), - 'Chest Above King Dodongo': ("They say that the chest above the Infernal Dinosaur contains", "They say that the chest above King Dodongo contains", 'location'), - 'Forest Temple Floormaster Chest': ("Deep in the forest, shadows guard a chest containing", "They say that a Floormaster in Forest Temple guards", 'location'), - 'Fire Temple Scarecrow Chest': ("They say high in the Fire Temple, Pierre hid", "They say high in the Fire Temple, Pierre hid", 'location'), - 'Fire Temple Megaton Hammer Chest': ("They say that the highest chest in the crater holds", "They say that the highest chest in the Fire Temple holds", 'location'), - 'Water Temple River Chest': ("They say deep under the lake, beyond the currents, hides", "They say deep under the lake, beyond the currents, hides", 'location'), - 'Water Temple Boss Key Chest': ("Deep under the lake, the gilded chest contains", "Deep under the lake, the gilded chest contains", 'location'), - 'Gerudo Training Grounds Underwater Silver Rupee Chest': ("They say those who seek sunken silver rupees will find", "They say those who seek sunken silver rupees will find", 'location'), - 'Gerudo Training Grounds Maze Path Final Chest': ("They say that past all the locked doors is", "They say that past all the locked doors is", 'location'), - 'Bottom of the Well Defeat Boss': ("They say that draining the water reveals a monster guarding", "They say that Dead Hand holds", 'location'), - 'Silver Gauntlets Chest': ("They say that upon the Colossus's southern edge is", "They say that upon the Colossus's southern edge is", 'location'), - 'Mirror Shield Chest': ("They say that upon the Colossus's northern edge is", "They say that upon the Colossus's northern edge is", 'location'), - 'Shadow Temple Hidden Floormaster Chest': (["They say that shadows in an invisible maze guard", "They say that after a free boat ride comes"], "They say that a Floormaster in Shadow Temple guards", 'location'), - 'Haunted Wasteland Structure Chest': (["They say that deep in the Wasteland is", "They say that beneath the sands lies"], "They say that deep in the Wasteland is", 'location'), - 'Composer Grave Chest': ("They say that the Composer Brothers hid", "They say that the Composer Brothers hid", 'location'), - 'Song from Composer Grave': ("They say that the Composer Brothers wrote", "They say that the Composer Brothers wrote", 'location'), - 'Song at Windmill': (["They say that Guru-guru is driven mad by", "They say the windmill echoes with"], "They say the windmill echoes with", 'location'), - 'Sheik Forest Song': ("They say that deep in the forest Sheik teaches", "They say that deep in the forest Sheik teaches", 'location'), - 'Sheik at Temple': ("They say that Sheik waits at a monument to time to teach", "They say that Sheik waits at a monument to time to teach", 'location'), - 'Sheik in Crater': ("They say that the crater's melody is", "They say that the crater's melody is", 'location'), - 'Sheik in Ice Cavern': ("They say that the frozen cavern echoes with", "They say that the frozen cavern echoes with", 'location'), - 'Sheik in Kakariko': ("They say that a ravaged village mourns with", "They say that a ravaged village mourns with", 'location'), - 'Sheik at Colossus': ("They say that a hero ventures beyond the Wasteland to learn", "They say that a hero ventures beyond the Wasteland to learn", 'location'), - 'Zoras Fountain Bottom Freestanding PoH': ("They say under the icy waters lies", "They say under the icy waters lies", 'location'), - 'Colossus Freestanding PoH': ("They say that riding a beanstalk in the desert leads to", "They say that riding a beanstalk in the desert leads to", 'location'), - 'DM Crater Volcano Freestanding PoH': ("They say that riding a beanstalk in the crater leads to", "They say that riding a beanstalk in the crater leads to", 'location'), - 'Goron City Pot Freestanding PoH': ("They say that spinning Goron pottery contains", "They say that spinning Goron pottery contains", 'location'), + '10 Big Poes': (["They say that Big Poes leads to", "They say that ghost hunters will be rewarded with"], None, 'alwaysLocation'), + 'Deku Theater Mask of Truth': ("They say that the Mask of Truth yields", None, 'alwaysLocation'), + '30 Gold Skulltulla Reward': ("They say that slaying 30 Gold Skulltulas reveals", None, 'alwaysLocation'), + '40 Gold Skulltulla Reward': ("They say that slaying 40 Gold Skulltulas reveals", None, 'alwaysLocation'), + '50 Gold Skulltulla Reward': ("They say that slaying 50 Gold Skulltulas reveals", None, 'alwaysLocation'), + 'Song from Ocarina of Time': ("They say the Ocarina of Time teaches", None, 'alwaysLocation'), + 'Biggoron': ("They say that Biggoron crafts", None, 'alwaysLocation'), + 'Child Fishing': ("They say that fishing in youth bestows", None, 'location'), + 'Adult Fishing': ("They say that fishing in maturity bestows", None, 'location'), + '20 Gold Skulltulla Reward': ("They say that slaying 20 Gold Skulltulas reveals", None, 'location'), + 'Treasure Chest Game': (["They say that gambling grants", "They say there is a 1/32 chance to win"], "They say that the treasure chest game grants", 'location'), + 'Darunias Joy': ("They say that Darunia's dance leads to", None, 'location'), + 'Frog Ocarina Game': (["They say The Frogs of Zora River hold", "They say that the musical amphibians have found"], None, 'location'), + 'Horseback Archery 1500 Points': ("They say that mastery of horseback archery grants", "They say that 1500 in horseback archery grants", 'location'), + 'Lake Hylia Sun': (["They say staring into the sun grants", "They say that acts of solar aggression are punished with"], "They say that shooting the sun grants", 'location'), + 'Heart Piece Grave Chest': ("They say that in a grave the Sun's Song spawns", None, 'location'), + 'Goron City Leftmost Maze Chest': ("They say in Goron City the hammer unlocks", None, 'location'), + 'Chest Above King Dodongo': ("They say that the chest above the Infernal Dinosaur contains", "They say that the chest above King Dodongo contains", 'location'), + 'Forest Temple Floormaster Chest': ("Deep in the forest, shadows guard a chest containing", "They say that a Floormaster in Forest Temple guards", 'location'), + 'Fire Temple Scarecrow Chest': ("They say high in the Fire Temple, Pierre hid", None, 'location'), + 'Fire Temple Megaton Hammer Chest': ("They say high in the Fire Temple, Fire Dancers hid", None, 'location'), + 'Water Temple River Chest': ("They say deep under the lake, beyond the currents, hides", "The say that the Water Temple River Chest holds", 'location'), + 'Water Temple Boss Key Chest': ("Deep under the lake, the gilded chest contains", "The say that the Water Temple Gold Chest holds", 'location'), + 'Gerudo Training Grounds Underwater Silver Rupee Chest': ("They say those who seek sunken silver rupees will find", None, 'location'), + 'Gerudo Training Grounds Maze Path Final Chest': ("They say that past all the locked doors is", None, 'location'), + 'Bottom of the Well Defeat Boss': (["They say that Dead Hand holds", "They say that draining the water reveals a monster guarding"], None, 'location'), + 'Silver Gauntlets Chest': ("They say that upon the Colossus's right hand is", "They say that upon the Colossus's child hand is", 'location'), + 'Mirror Shield Chest': ("They say that upon the Colossus's left hand is", "They say that upon the Colossus's adult hand is", 'location'), + 'Shadow Temple Hidden Floormaster Chest': (["They say that shadows in an invisible maze guard", "They say that after a free boat ride comes"], "They say that a Floormaster in Shadow Temple guards", 'location'), + 'Haunted Wasteland Structure Chest': (["They say that deep in the Wasteland is", "They say that beneath the sands lies"], None, 'location'), + 'Composer Grave Chest': (["They say that in the Composers' Grave, darkness hides", "They say that the Composer Brothers hid"], None, 'location'), + 'Song from Composer Grave': (["They say that in the Composers' Grave, Redead guard", "They say that the Composer Brothers wrote"], None, 'location'), + 'Song at Windmill': (["They say the windmill echoes with", "They say that Guru-guru is driven mad by"], None, 'location'), + 'Sheik Forest Song': ("They say that deep in the forest Sheik teaches", None, 'location'), + 'Sheik at Temple': ("They say that Sheik waits at a monument to time to teach", None, 'location'), + 'Sheik in Crater': ("They say that the crater's melody is", None, 'location'), + 'Sheik in Ice Cavern': ("They say that the frozen cavern echoes with", None, 'location'), + 'Sheik in Kakariko': ("They say that a ravaged village mourns with", None, 'location'), + 'Sheik at Colossus': ("They say that a hero ventures beyond the Wasteland to learn", None, 'location'), + 'Zoras Fountain Bottom Freestanding PoH': ("They say under the icy waters lies", None, 'location'), + 'Colossus Freestanding PoH': ("They say that riding a beanstalk in the desert leads to", None, 'location'), + 'DM Crater Volcano Freestanding PoH': ("They say that riding a beanstalk in the crater leads to", None, 'location'), + 'Goron City Pot Freestanding PoH': ("They say that spinning Goron pottery contains", None, 'location'), - '1001': ("Ganondorf 2020!", "Ganondorf 2020!", 'junkHint'), - '1002': ("They say that monarchy is a terrible system of governance.", "They say that monarchy is a terrible system of governance.", 'junkHint'), - '1003': ("They say that Zelda is a poor leader.", "They say that Zelda is a poor leader.", 'junkHint'), - '1004': ("These hints can be quite useful. This is an exception.", "These hints can be quite useful. This is an exception.", 'junkHint'), - '1006': ("They say that all the Zora drowned in Wind Waker.", "They say that all the Zora drowned in Wind Waker.", 'junkHint'), - '1007': ("They say that PJ64 is a terrible emulator.", "They say that PJ64 is a terrible emulator.", 'junkHint'), - '1008': ("'Member when Ganon was a blue pig?^I 'member.", "'Member when Ganon was a blue pig?^I 'member.", 'junkHint'), - '1009': ("One who does not have Triforce can't go in.", "One who does not have Triforce can't go in.", 'junkHint'), - '1010': ("Save your future, end the Happy Mask Salesman.", "Save your future, end the Happy Mask Salesman.", 'junkHint'), - '1012': ("I'm stoned. Get it?", "I'm stoned. Get it?", 'junkHint'), - '1013': ("Hoot! Hoot! Would you like me to repeat that?", "Hoot! Hoot! Would you like me to repeat that?", 'junkHint'), - '1014': ("Gorons are stupid. They eat rocks.", "Gorons are stupid. They eat rocks.", 'junkHint'), - '1015': ("They say that Lon Lon Ranch prospered under Ingo.", "They say that Lon Lon Ranch prospered under Ingo.", 'junkHint'), - '1016': ("The single rupee is a unique item.", "The single rupee is a unique item.", 'junkHint'), - '1017': ("Without the Lens of Truth, the Treasure Chest Mini-Game is a 1 out of 32 chance.^Good luck!", "Without the Lens of Truth, the Treasure Chest Mini-Game is a 1 out of 32 chance.^Good luck!", 'junkHint'), - '1018': ("Use bombs wisely.", "Use bombs wisely.", 'junkHint'), - '1021': ("I found you, faker!", "I found you, faker!", 'junkHint'), - '1022': ("You're comparing yourself to me?^Ha! You're not even good enough to be my fake.", "You're comparing yourself to me?^Ha! You're not even good enough to be my fake.", 'junkHint'), - '1023': ("I'll make you eat those words.", "I'll make you eat those words.", 'junkHint'), - '1024': ("What happened to Sheik?", "What happened to Sheik?", 'junkHint'), - '1025': ("L2P @.", "L2P @.", 'junkHint'), - '1026': ("I heard @ isn't very good at Zelda.", "I heard @ isn't very good at Zelda.", 'junkHint'), - '1027': ("I'm Lonk from Pennsylvania.", "I'm Lonk from Pennsylvania.", 'junkHint'), - '1028': ("I bet you'd like to have more bombs.", "I bet you'd like to have more bombs.", 'junkHint'), - '1029': ("When all else fails, use Fire.", "When all else fails, use Fire.", 'junkHint'), - '1030': ("Here's a hint, @. Don't be bad.", "Here's a hint, @. Don't be bad.", 'junkHint'), - '1031': ("Game Over. Return of Ganon.", "Game Over. Return of Ganon.", 'junkHint'), - '1032': ("May the way of the Hero lead to the Triforce.", "May the way of the Hero lead to the Triforce.", 'junkHint'), - '1033': ("Can't find an item? Scan an Amiibo.", "Can't find an item? Scan an Amiibo.", 'junkHint'), - '1034': ("They say this game has just a few glitches.", "They say this game has just a few glitches.", 'junkHint'), - '1035': ("BRRING BRRING This is Ulrira. Wrong number?", "BRRING BRRING This is Ulrira. Wrong number?", 'junkHint'), - '1036': ("Tingle Tingle Kooloo Limpah", "Tingle Tingle Kooloo Limpah", 'junkHint'), - '1037': ("L is real 2041", "L is real 2041", 'junkHint'), - '1038': ("They say that Ganondorf will appear in the next Mario Tennis.", "They say that Ganondorf will appear in the next Mario Tennis.", 'junkHint'), - '1039': ("Medigoron sells the earliest Breath of the Wild demo.", "Medigoron sells the earliest Breath of the Wild demo.", 'junkHint'), - '1040': ("There's a reason why I am special inquisitor!", "There's a reason why I am special inquisitor!", 'junkHint'), - '1041': ("You were almost a @ sandwich.", "You were almost a @ sandwich.", 'junkHint'), - '1042': ("I'm a helpful hint Gossip Stone!^See, I'm helping.", "I'm a helpful hint Gossip Stone!^See, I'm helping.", 'junkHint'), - '1043': ("Dear @, please come to the castle. I've baked a cake for you.&&Yours truly, princess Zelda.", "Dear @, please come to the castle. I've baked a cake for you.&&Yours truly, princess Zelda.", 'junkHint'), - '1044': ("They say all toasters toast toast.", "They say all toasters toast toast.", 'junkHint'), - '1045': ("They say that Okami is the best Zelda game.", "They say that Okami is the best Zelda game.", 'junkHint'), - '1046': ("They say that quest guidance can be found at a talking rock.", "They say that quest guidance can be found at a talking rock.", 'junkHint'), - '1047': ("They say that the final item you're looking for can be found somewhere in Hyrule", "They say that the final item you're looking for can be found somewhere in Hyrule", 'junkHint'), - #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box - 'Deku Tree': ("an ancient tree", "an ancient tree", 'dungeon'), - 'Dodongos Cavern': ("an immense cavern", "an immense cavern", 'dungeon'), - 'Jabu Jabus Belly': ("the belly of a deity", "the belly of a deity", 'dungeon'), - 'Forest Temple': ("a deep forest", "a deep forest", 'dungeon'), - 'Fire Temple': ("a high mountain", "a high mountain", 'dungeon'), - 'Water Temple': ("a vast lake", "a vast lake", 'dungeon'), - 'Shadow Temple': ("the house of the dead", "the house of the dead", 'dungeon'), - 'Spirit Temple': ("the goddess of the sand", "the goddess of the sand", 'dungeon'), - 'Ice Cavern': ("a frozen maze", "a frozen maze", 'dungeon'), - 'Bottom of the Well': ("a shadow\'s prison", "a shadow\'s prison", 'dungeon'), - 'Gerudo Training Grounds': ("the test of thieves", "the test of thieves", 'dungeon'), - 'Ganons Castle': ("a conquered citadel", "a conquered citadel", 'dungeon'), - #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box - 'Queen Gohma': ("One inside an #ancient tree#...^", "One inside an #ancient tree#...^", 'boss'), - 'King Dodongo': ("One within an #immense cavern#...^", "One within an #immense cavern#...^", 'boss'), - 'Barinade': ("One in the #belly of a deity#...^", "One in the #belly of a deity#...^", 'boss'), - 'Phantom Ganon': ("One in a #deep forest#...^", "One in a #deep forest#...^", 'boss'), - 'Volvagia': ("One on a #high mountain#...^", "One on a #high mountain#...^", 'boss'), - 'Morpha': ("One under a #vast lake#...^", "One under a #vast lake#...^", 'boss'), - 'Bongo Bongo': ("One within the #house of the dead#...^", "One within the #house of the dead#...^", 'boss'), - 'Twinrova': ("One inside a #goddess of the sand#...^", "One inside a #goddess of the sand#...^", 'boss'), - 'Links Pocket': ("One in #@'s pocket#...^", "One in #@'s pocket#...^", 'boss'), - 'Spiritual Stone Text Start': ("Ye who owns 3 Spiritual Stones...^", "Ye who owns 3 Spiritual Stones...^", 'boss'), - 'Spiritual Stone Text End': ("Stand with the Ocarina of Time&and play the Song of Time.", "Stand with the Ocarina of Time&and play the Song of Time.", 'boss'), - 'Medallion Text End': ("Together with the Hero of Time,&the awakened ones will bind the&evil and return the light of peace&to the world.", "Together with the Hero of Time,&the awakened ones will bind the&evil and return the light of peace&to the world.", 'boss'), - #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box - 'Validation Line': ("Hmph... Since you made it this far,&I'll let you know what glorious&prize of Ganon's you likely&missed out on in my tower.^Behold...^", "Hmph... Since you made it this far,&I'll let you know what glorious&prize of Ganon's you likely&missed out on in my tower.^Behold...^", 'validation line'), - 'Light Arrow Location': ("Ha ha ha... You'll never beat me by&reflecting my lightning bolts&and unleashing the arrows from&", "Ha ha ha... You'll never beat me by&reflecting my lightning bolts&and unleashing the arrows from&", 'Light Arrow Location'), - '2001': ("Oh! It's @.&I was expecting someone called&Sheik. Do you know what&happened to them?", "Oh! It's @.&I was expecting someone called&Sheik. Do you know what&happened to them?", 'ganonLine'), - '2002': ("I knew I shouldn't have put the key&on the other side of my door.", "I knew I shouldn't have put the key&on the other side of my door.", 'ganonLine'), - '2003': ("Looks like it's time for a&round of tennis.", "Looks like it's time for a&round of tennis.", 'ganonLine'), - '2004': ("You'll never deflect my bolts of&energy with your sword,&then shoot me with those Light&Arrows you happen to have.", "You'll never deflect my bolts of&energy with your sword,&then shoot me with those Light&Arrows you happen to have.", 'ganonLine'), - '2005': ("Why did I leave my trident&back in the desert?", "Why did I leave my trident&back in the desert?", 'ganonLine'), - '2006': ("Zelda is probably going to do&something stupid, like send you&back to your own timeline.^So this is quite meaningless.&Do you really want&to save this moron?", "Zelda is probably going to do&something stupid, like send you&back to your own timeline.^So this is quite meaningless.&Do you really want&to save this moron?", 'ganonLine'), - '2007': ("What about Zelda makes you think&she'd be a better ruler than I?^I saved Lon Lon Ranch,&fed the hungry,&and my castle floats.", "What about Zelda makes you think&she'd be a better ruler than I?^I saved Lon Lon Ranch,&fed the hungry,&and my castle floats.", 'ganonLine'), - '2008': ("I've learned this spell,&it's really neat,&I'll keep it later&for your treat!", "I've learned this spell,&it's really neat,&I'll keep it later&for your treat!", 'ganonLine'), - '2009': ("Many tricks are up my sleeve,&to save yourself&you'd better leave!", "Many tricks are up my sleeve,&to save yourself&you'd better leave!", 'ganonLine'), - '2010': ("After what you did to&Koholint Island, how can&you call me the bad guy?", "After what you did to&Koholint Island, how can&you call me the bad guy?", 'ganonLine'), - '2011': ("Today, let's begin down&'The Hero is Defeated' timeline.", "Today, let's begin down&'The Hero is Defeated' timeline.", 'ganonLine'), + '1001': ("Ganondorf 2020!", None, 'junkHint'), + '1002': ("They say that monarchy is a terrible system of governance.", None, 'junkHint'), + '1003': ("They say that Zelda is a poor leader.", None, 'junkHint'), + '1004': ("These hints can be quite useful. This is an exception.", None, 'junkHint'), + '1006': ("They say that all the Zora drowned in Wind Waker.", None, 'junkHint'), + '1007': ("They say that PJ64 is a terrible emulator.", None, 'junkHint'), + '1008': ("'Member when Ganon was a blue pig?^I 'member.", None, 'junkHint'), + '1009': ("One who does not have Triforce can't go in.", None, 'junkHint'), + '1010': ("Save your future, end the Happy Mask Salesman.", None, 'junkHint'), + '1012': ("I'm stoned. Get it?", None, 'junkHint'), + '1013': ("Hoot! Hoot! Would you like me to repeat that?", None, 'junkHint'), + '1014': ("Gorons are stupid. They eat rocks.", None, 'junkHint'), + '1015': ("They say that Lon Lon Ranch prospered under Ingo.", None, 'junkHint'), + '1016': ("The single rupee is a unique item.", None, 'junkHint'), + '1017': ("Without the Lens of Truth, the Treasure Chest Mini-Game is a 1 out of 32 chance.^Good luck!", None, 'junkHint'), + '1018': ("Use bombs wisely.", None, 'junkHint'), + '1021': ("I found you, faker!", None, 'junkHint'), + '1022': ("You're comparing yourself to me?^Ha! You're not even good enough to be my fake.", None, 'junkHint'), + '1023': ("I'll make you eat those words.", None, 'junkHint'), + '1024': ("What happened to Sheik?", None, 'junkHint'), + '1025': ("L2P @.", None, 'junkHint'), + '1026': ("I heard @ isn't very good at Zelda.", None, 'junkHint'), + '1027': ("I'm Lonk from Pennsylvania.", None, 'junkHint'), + '1028': ("I bet you'd like to have more bombs.", None, 'junkHint'), + '1029': ("When all else fails, use Fire.", None, 'junkHint'), + '1030': ("Here's a hint, @. Don't be bad.", None, 'junkHint'), + '1031': ("Game Over. Return of Ganon.", None, 'junkHint'), + '1032': ("May the way of the Hero lead to the Triforce.", None, 'junkHint'), + '1033': ("Can't find an item? Scan an Amiibo.", None, 'junkHint'), + '1034': ("They say this game has just a few glitches.", None, 'junkHint'), + '1035': ("BRRING BRRING This is Ulrira. Wrong number?", None, 'junkHint'), + '1036': ("Tingle Tingle Kooloo Limpah", None, 'junkHint'), + '1037': ("L is real 2041", None, 'junkHint'), + '1038': ("They say that Ganondorf will appear in the next Mario Tennis.", None, 'junkHint'), + '1039': ("Medigoron sells the earliest Breath of the Wild demo.", None, 'junkHint'), + '1040': ("There's a reason why I am special inquisitor!", None, 'junkHint'), + '1041': ("You were almost a @ sandwich.", None, 'junkHint'), + '1042': ("I'm a helpful hint Gossip Stone!^See, I'm helping.", None, 'junkHint'), + '1043': ("Dear @, please come to the castle. I've baked a cake for you.&&Yours truly, princess Zelda.", None, 'junkHint'), + '1044': ("They say all toasters toast toast.", None, 'junkHint'), + '1045': ("They say that Okami is the best Zelda game.", None, 'junkHint'), + '1046': ("They say that quest guidance can be found at a talking rock.", None, 'junkHint'), + '1047': ("They say that the final item you're looking for can be found somewhere in Hyrule", None, 'junkHint'), + #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box + 'Deku Tree': ("an ancient tree", "Deku Tree", 'dungeon'), + 'Dodongos Cavern': ("an immense cavern", "Dodongo's Cavern", 'dungeon'), + 'Jabu Jabus Belly': ("the belly of a deity", "Jabu Jabu's Belly", 'dungeon'), + 'Forest Temple': ("a deep forest", "Forest Temple", 'dungeon'), + 'Fire Temple': ("a high mountain", "Fire Temple", 'dungeon'), + 'Water Temple': ("a vast lake", "Water Temple", 'dungeon'), + 'Shadow Temple': ("the house of the dead", "Shadow Temple", 'dungeon'), + 'Spirit Temple': ("the goddess of the sand", "Spirit Temple", 'dungeon'), + 'Ice Cavern': ("a frozen maze", "Ice Cavern", 'dungeon'), + 'Bottom of the Well': ("a shadow\'s prison", "Bottom of the Well", 'dungeon'), + 'Gerudo Training Grounds': ("the test of thieves", "Gerudo Training Grounds", 'dungeon'), + 'Ganons Castle': ("a conquered citadel", "Ganon's Castle", 'dungeon'), + #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box + 'Queen Gohma': ("One inside an #ancient tree#...^", "One in the #Deku Tree#...^", 'boss'), + 'King Dodongo': ("One within an #immense cavern#...^", "One in #Dodongo's Cavern#...^", 'boss'), + 'Barinade': ("One in the #belly of a deity#...^", "One in #Jabu Jabu's Belly#...^", 'boss'), + 'Phantom Ganon': ("One in a #deep forest#...^", "One in the #Forest Temple#...^", 'boss'), + 'Volvagia': ("One on a #high mountain#...^", "One in the #Fire Temple#...^", 'boss'), + 'Morpha': ("One under a #vast lake#...^", "One in the #Water Temple#...^", 'boss'), + 'Bongo Bongo': ("One within the #house of the dead#...^", "One in the #Shadow Temple#...^", 'boss'), + 'Twinrova': ("One inside a #goddess of the sand#...^", "One in the #Spirit Temple#...^", 'boss'), + 'Links Pocket': ("One in #@'s pocket#...^", "One #@ already has#...^", 'boss'), + 'Spiritual Stone Text Start': ("Ye who owns 3 Spiritual Stones...^", None, 'boss'), + 'Spiritual Stone Text End': ("Stand with the Ocarina of Time&and play the Song of Time.", None, 'boss'), + 'Medallion Text End': ("Together with the Hero of Time,&the awakened ones will bind the&evil and return the light of peace&to the world.", None, 'boss'), + #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box + 'Validation Line': ("Hmph... Since you made it this far,&I'll let you know what glorious&prize of Ganon's you likely&missed out on in my tower.^Behold...^", None, 'validation line'), + 'Light Arrow Location': ("Ha ha ha... You'll never beat me by&reflecting my lightning bolts&and unleashing the arrows from&", None, 'Light Arrow Location'), + '2001': ("Oh! It's @.&I was expecting someone called&Sheik. Do you know what&happened to them?", None, 'ganonLine'), + '2002': ("I knew I shouldn't have put the key&on the other side of my door.", None, 'ganonLine'), + '2003': ("Looks like it's time for a&round of tennis.", None, 'ganonLine'), + '2004': ("You'll never deflect my bolts of&energy with your sword,&then shoot me with those Light&Arrows you happen to have.", None, 'ganonLine'), + '2005': ("Why did I leave my trident&back in the desert?", None, 'ganonLine'), + '2006': ("Zelda is probably going to do&something stupid, like send you&back to your own timeline.^So this is quite meaningless.&Do you really want&to save this moron?", None, 'ganonLine'), + '2007': ("What about Zelda makes you think&she'd be a better ruler than I?^I saved Lon Lon Ranch,&fed the hungry,&and my castle floats.", None, 'ganonLine'), + '2008': ("I've learned this spell,&it's really neat,&I'll keep it later&for your treat!", None, 'ganonLine'), + '2009': ("Many tricks are up my sleeve,&to save yourself&you'd better leave!", None, 'ganonLine'), + '2010': ("After what you did to&Koholint Island, how can&you call me the bad guy?", None, 'ganonLine'), + '2011': ("Today, let's begin down&'The Hero is Defeated' timeline.", None, 'ganonLine'), } # exclusions from the list for custom logic diff --git a/version.py b/version.py index 63ee6b460..dee83194b 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.17.26 f.LUM' +__version__ = '2.17.27 f.LUM' From 4e4dd9afdb9a6f2786e15d12c8ecb63c077e04f8 Mon Sep 17 00:00:00 2001 From: Nick Langille Date: Sun, 16 Sep 2018 04:12:22 -0400 Subject: [PATCH 504/755] Re-organize source directories, improve build process --- .gitattributes | 2 +- ASM/.gitattributes | 1 + ASM/.gitignore | 3 +- ASM/README.md | 17 +- ASM/{temp => build}/.gitkeep | 0 ASM/build/asm_symbols.txt | 1031 ++ ASM/build/bundle.o | Bin 0 -> 9128 bytes ASM/build/c_symbols.txt | 56 + ASM/{src => }/c/Makefile | 0 ASM/{src => }/c/dungeon_info.c | 0 ASM/{src => }/c/dungeon_info.h | 0 ASM/{src => }/c/gfx.c | 0 ASM/{src => }/c/gfx.h | 0 ASM/{src => }/c/main.c | 0 ASM/{src => }/c/text.c | 0 ASM/{src => }/c/text.h | 0 ASM/{src => }/c/util.c | 0 ASM/{src => }/c/util.h | 0 ASM/{src => }/c/z64.h | 0 ASM/quick_build.bat | 1 - ASM/{src => }/resources/font.bin | Bin ASM/scripts/build.py | 89 +- ASM/scripts/rom_diff.py | 34 +- ASM/scripts/sym2pj64.py | 46 - ASM/src/build.asm | 4 +- data/base2current.json | 21456 ----------------------------- data/rom_patch.txt | 11408 +++++++++++++++ data/symbols.json | 34 + 28 files changed, 12640 insertions(+), 21542 deletions(-) create mode 100644 ASM/.gitattributes rename ASM/{temp => build}/.gitkeep (100%) create mode 100644 ASM/build/asm_symbols.txt create mode 100644 ASM/build/bundle.o create mode 100644 ASM/build/c_symbols.txt rename ASM/{src => }/c/Makefile (100%) rename ASM/{src => }/c/dungeon_info.c (100%) rename ASM/{src => }/c/dungeon_info.h (100%) rename ASM/{src => }/c/gfx.c (100%) rename ASM/{src => }/c/gfx.h (100%) rename ASM/{src => }/c/main.c (100%) rename ASM/{src => }/c/text.c (100%) rename ASM/{src => }/c/text.h (100%) rename ASM/{src => }/c/util.c (100%) rename ASM/{src => }/c/util.h (100%) rename ASM/{src => }/c/z64.h (100%) rename ASM/{src => }/resources/font.bin (100%) delete mode 100644 ASM/scripts/sym2pj64.py delete mode 100644 data/base2current.json create mode 100644 data/rom_patch.txt create mode 100644 data/symbols.json diff --git a/.gitattributes b/.gitattributes index 0ddd650ce..201874470 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1 +1 @@ -/data/base2current.json binary +/data/rom_patch.txt binary diff --git a/ASM/.gitattributes b/ASM/.gitattributes new file mode 100644 index 000000000..291377b6b --- /dev/null +++ b/ASM/.gitattributes @@ -0,0 +1 @@ +*.bin binary diff --git a/ASM/.gitignore b/ASM/.gitignore index 06bbf3544..dbe12b034 100644 --- a/ASM/.gitignore +++ b/ASM/.gitignore @@ -1,6 +1,5 @@ /inject /roms/* -/temp/* -/src/c/*.o +/c/*.o armips* !.gitkeep diff --git a/ASM/README.md b/ASM/README.md index 68654ceaa..2f2f0a226 100644 --- a/ASM/README.md +++ b/ASM/README.md @@ -1,8 +1,13 @@ -- Download the armips assembler: and put the - executable in the `scripts` directory, or somewhere in your PATH +- Download the armips assembler: and put + the executable in the `scripts` directory, or somewhere in your PATH - Put the ROM you want to patch at `roms/base.z64` -- Run `python3 scripts/build.py`, which will create `roms/patched.z64` -- To update the front-end patch file, run: - ```python3 scripts/rom_diff.py roms/base.z64 roms/patched.z64 ../data/base2current.json``` +- Run `python scripts/build.py`, which will: + - create `roms/patched.z64` + - update `../data/rom_patch.txt` and `../data/symbols.json` -To generate debugging symbols for the Project 64 debugger, run `python3 scripts/build.py --pj64sym 'path_to_pj64/Saves/THE LEGEND OF ZELDA.sym'` +To generate debugging symbols for the Project 64 debugger, use the `--pj64sym` +option: +`python scripts/build.py --pj64sym 'path_to_pj64/Saves/THE LEGEND OF ZELDA.sym'`. + +To recompile the C modules, use the `--compile-c` option. This requires the +N64 development tools to be installed: diff --git a/ASM/temp/.gitkeep b/ASM/build/.gitkeep similarity index 100% rename from ASM/temp/.gitkeep rename to ASM/build/.gitkeep diff --git a/ASM/build/asm_symbols.txt b/ASM/build/asm_symbols.txt new file mode 100644 index 000000000..a09f5aabc --- /dev/null +++ b/ASM/build/asm_symbols.txt @@ -0,0 +1,1031 @@ +00000000 0 +00000000 .byt:4000000 +00000010 .dbl:0008 +00000010 ITEM_TABLE_ROW_SIZE +000005B4 Shop_Item_Save_Offset +0000D260 .dbl:0010 +0000D270 .dbl:0010 +008A9C00 .byt:0400 +00D74990 skip_steal_tunic +00D7E178 @@not_in_ranch +00D7E18C @@return +00D7E18C return_from_the_other_function +00D7E3AC @@hyrule_check +00D7E3CC @@lon_lon_check +00D7E3F4 @@return_false +00D7E7A4 @@set_ev0 +00D7E7B8 set_ev1 +00D7E8A8 @@unsafe +00D7E8C0 @@safe +00D7E8D4 @@not_hyrule +00D7E920 ev0_return +00DB13D3 .byt:0001 +00DF264F .byt:0001 +00E2F093 .byt:0001 +00EBB8B0 @Deku_Check_True +00EBB8C0 @Deku_Check_False +00EC68D0 .byt:0014 +00EC69C0 .byt:0014 +00EC9CE7 .byt:0001 +8011A5D0 SAVE_CONTEXT +801C84A0 GLOBAL_CONTEXT +801DAA30 PLAYER_ACTOR +803A9E7E GET_ITEMTABLE +80400000 init +80400050 DebugOutput +80401000 .byt:0800 +80401000 ITEM_OVERRIDES +80401800 .byt:0400 +80401800 INITIAL_SAVE_DATA +80401C00 .byt:0001 +80401C00 PLAYER_ID +80401C01 .byt:0001 +80401C01 LIGHT_ARROW_ITEM +80401C02 .byt:0001 +80401C02 FAIRY_OCARINA_ITEM +80401C03 .byt:0001 +80401C03 FAIRY_ITEMS +80401C04 .byt:0001 +80401C05 .byt:0001 +80401C06 .byt:0001 +80401C07 .byt:0001 +80401C08 .byt:0001 +80401C0C .byt:03F4 +80402000 .dbl:0008 +80402000 PLAYER_OVERRIDE_DATA +80402008 .dbl:0010 +80402008 EXTENDED_ITEM_DATA +80402018 .byt:0001 +80402018 PENDING_SPECIAL_ITEM +80402019 .byt:0001 +8040201A .byt:0001 +8040201B .byt:0001 +8040201B PENDING_SPECIAL_ITEM_END +8040201C .dbl:0004 +8040201C TIME_TRAVEL_SAVED_EQUIPS +80402020 .dbl:0004 +80402024 .wrd:0002 +80402026 .wrd:0002 +80402028 .byt:0028 +80402050 .byt:0001 +80402050 ITEM_TABLE +80402051 .byt:0001 +80402052 .byt:0001 +80402053 .byt:0001 +80402054 .wrd:0002 +80402056 .byt:0001 +80402057 .byt:0001 +80402058 .dbl:0004 +8040205C .dbl:0004 +80402060 .byt:0001 +80402061 .byt:0001 +80402062 .byt:0001 +80402063 .byt:0001 +80402064 .wrd:0002 +80402066 .byt:0001 +80402067 .byt:0001 +80402068 .dbl:0004 +8040206C .dbl:0004 +80402070 .byt:0001 +80402071 .byt:0001 +80402072 .byt:0001 +80402073 .byt:0001 +80402074 .wrd:0002 +80402076 .byt:0001 +80402077 .byt:0001 +80402078 .dbl:0004 +8040207C .dbl:0004 +80402080 .byt:0001 +80402081 .byt:0001 +80402082 .byt:0001 +80402083 .byt:0001 +80402084 .wrd:0002 +80402086 .byt:0001 +80402087 .byt:0001 +80402088 .dbl:0004 +8040208C .dbl:0004 +80402090 .byt:0001 +80402091 .byt:0001 +80402092 .byt:0001 +80402093 .byt:0001 +80402094 .wrd:0002 +80402096 .byt:0001 +80402097 .byt:0001 +80402098 .dbl:0004 +8040209C .dbl:0004 +804020A0 .byt:0001 +804020A1 .byt:0001 +804020A2 .byt:0001 +804020A3 .byt:0001 +804020A4 .wrd:0002 +804020A6 .byt:0001 +804020A7 .byt:0001 +804020A8 .dbl:0004 +804020AC .dbl:0004 +804020B0 .byt:0001 +804020B1 .byt:0001 +804020B2 .byt:0001 +804020B3 .byt:0001 +804020B4 .wrd:0002 +804020B6 .byt:0001 +804020B7 .byt:0001 +804020B8 .dbl:0004 +804020BC .dbl:0004 +804020C0 .byt:0001 +804020C1 .byt:0001 +804020C2 .byt:0001 +804020C3 .byt:0001 +804020C4 .wrd:0002 +804020C6 .byt:0001 +804020C7 .byt:0001 +804020C8 .dbl:0004 +804020CC .dbl:0004 +804020D0 .byt:0001 +804020D1 .byt:0001 +804020D2 .byt:0001 +804020D3 .byt:0001 +804020D4 .wrd:0002 +804020D6 .byt:0001 +804020D7 .byt:0001 +804020D8 .dbl:0004 +804020DC .dbl:0004 +804020E0 .byt:0001 +804020E1 .byt:0001 +804020E2 .byt:0001 +804020E3 .byt:0001 +804020E4 .wrd:0002 +804020E6 .byt:0001 +804020E7 .byt:0001 +804020E8 .dbl:0004 +804020EC .dbl:0004 +804020F0 .byt:0001 +804020F1 .byt:0001 +804020F2 .byt:0001 +804020F3 .byt:0001 +804020F4 .wrd:0002 +804020F6 .byt:0001 +804020F7 .byt:0001 +804020F8 .dbl:0004 +804020FC .dbl:0004 +80402100 .byt:0001 +80402101 .byt:0001 +80402102 .byt:0001 +80402103 .byt:0001 +80402104 .wrd:0002 +80402106 .byt:0001 +80402107 .byt:0001 +80402108 .dbl:0004 +8040210C .dbl:0004 +80402110 .byt:0001 +80402111 .byt:0001 +80402112 .byt:0001 +80402113 .byt:0001 +80402114 .wrd:0002 +80402116 .byt:0001 +80402117 .byt:0001 +80402118 .dbl:0004 +8040211C .dbl:0004 +80402120 .byt:0001 +80402121 .byt:0001 +80402122 .byt:0001 +80402123 .byt:0001 +80402124 .wrd:0002 +80402126 .byt:0001 +80402127 .byt:0001 +80402128 .dbl:0004 +8040212C .dbl:0004 +80402130 .byt:0001 +80402131 .byt:0001 +80402132 .byt:0001 +80402133 .byt:0001 +80402134 .wrd:0002 +80402136 .byt:0001 +80402137 .byt:0001 +80402138 .dbl:0004 +8040213C .dbl:0004 +80402140 .byt:0001 +80402141 .byt:0001 +80402142 .byt:0001 +80402143 .byt:0001 +80402144 .wrd:0002 +80402146 .byt:0001 +80402147 .byt:0001 +80402148 .dbl:0004 +8040214C .dbl:0004 +80402150 .byt:0001 +80402151 .byt:0001 +80402152 .byt:0001 +80402153 .byt:0001 +80402154 .wrd:0002 +80402156 .byt:0001 +80402157 .byt:0001 +80402158 .dbl:0004 +8040215C .dbl:0004 +80402160 .byt:0001 +80402161 .byt:0001 +80402162 .byt:0001 +80402163 .byt:0001 +80402164 .wrd:0002 +80402166 .byt:0001 +80402167 .byt:0001 +80402168 .dbl:0004 +8040216C .dbl:0004 +80402170 .byt:0001 +80402171 .byt:0001 +80402172 .byt:0001 +80402173 .byt:0001 +80402174 .wrd:0002 +80402176 .byt:0001 +80402177 .byt:0001 +80402178 .dbl:0004 +8040217C .dbl:0004 +80402180 .byt:0001 +80402181 .byt:0001 +80402182 .byt:0001 +80402183 .byt:0001 +80402184 .wrd:0002 +80402186 .byt:0001 +80402187 .byt:0001 +80402188 .dbl:0004 +8040218C .dbl:0004 +80402190 .byt:0001 +80402191 .byt:0001 +80402192 .byt:0001 +80402193 .byt:0001 +80402194 .wrd:0002 +80402196 .byt:0001 +80402197 .byt:0001 +80402198 .dbl:0004 +8040219C .dbl:0004 +804021A0 .byt:0001 +804021A1 .byt:0001 +804021A2 .byt:0001 +804021A3 .byt:0001 +804021A4 .wrd:0002 +804021A6 .byt:0001 +804021A7 .byt:0001 +804021A8 .dbl:0004 +804021AC .dbl:0004 +804021B0 .byt:0001 +804021B1 .byt:0001 +804021B2 .byt:0001 +804021B3 .byt:0001 +804021B4 .wrd:0002 +804021B6 .byt:0001 +804021B7 .byt:0001 +804021B8 .dbl:0004 +804021BC .dbl:0004 +804021C0 .byt:0001 +804021C1 .byt:0001 +804021C2 .byt:0001 +804021C3 .byt:0001 +804021C4 .wrd:0002 +804021C6 .byt:0001 +804021C7 .byt:0001 +804021C8 .dbl:0004 +804021CC .dbl:0004 +804021D0 .byt:0001 +804021D1 .byt:0001 +804021D2 .byt:0001 +804021D3 .byt:0001 +804021D4 .wrd:0002 +804021D6 .byt:0001 +804021D7 .byt:0001 +804021D8 .dbl:0004 +804021DC .dbl:0004 +804021E0 .byt:0001 +804021E1 .byt:0001 +804021E2 .byt:0001 +804021E3 .byt:0001 +804021E4 .wrd:0002 +804021E6 .byt:0001 +804021E7 .byt:0001 +804021E8 .dbl:0004 +804021EC .dbl:0004 +804021F0 .byt:0001 +804021F1 .byt:0001 +804021F2 .byt:0001 +804021F3 .byt:0001 +804021F4 .wrd:0002 +804021F6 .byt:0001 +804021F7 .byt:0001 +804021F8 .dbl:0004 +804021FC .dbl:0004 +80402200 .byt:0001 +80402201 .byt:0001 +80402202 .byt:0001 +80402203 .byt:0001 +80402204 .wrd:0002 +80402206 .byt:0001 +80402207 .byt:0001 +80402208 .dbl:0004 +8040220C .dbl:0004 +80402210 .byt:0001 +80402211 .byt:0001 +80402212 .byt:0001 +80402213 .byt:0001 +80402214 .wrd:0002 +80402216 .byt:0001 +80402217 .byt:0001 +80402218 .dbl:0004 +8040221C .dbl:0004 +80402220 .byt:0001 +80402221 .byt:0001 +80402222 .byt:0001 +80402223 .byt:0001 +80402224 .wrd:0002 +80402226 .byt:0001 +80402227 .byt:0001 +80402228 .dbl:0004 +8040222C .dbl:0004 +80402230 .byt:0001 +80402231 .byt:0001 +80402232 .byt:0001 +80402233 .byt:0001 +80402234 .wrd:0002 +80402236 .byt:0001 +80402237 .byt:0001 +80402238 .dbl:0004 +8040223C .dbl:0004 +80402240 .byt:0001 +80402241 .byt:0001 +80402242 .byt:0001 +80402243 .byt:0001 +80402244 .wrd:0002 +80402246 .byt:0001 +80402247 .byt:0001 +80402248 .dbl:0004 +8040224C .dbl:0004 +80402250 .byt:0001 +80402251 .byt:0001 +80402252 .byt:0001 +80402253 .byt:0001 +80402254 .wrd:0002 +80402256 .byt:0001 +80402257 .byt:0001 +80402258 .dbl:0004 +8040225C .dbl:0004 +80402260 .byt:0001 +80402261 .byt:0001 +80402262 .byt:0001 +80402263 .byt:0001 +80402264 .wrd:0002 +80402266 .byt:0001 +80402267 .byt:0001 +80402268 .dbl:0004 +8040226C .dbl:0004 +80402270 .byt:0001 +80402271 .byt:0001 +80402272 .byt:0001 +80402273 .byt:0001 +80402274 .wrd:0002 +80402276 .byt:0001 +80402277 .byt:0001 +80402278 .dbl:0004 +8040227C .dbl:0004 +80402280 .byt:0001 +80402281 .byt:0001 +80402282 .byt:0001 +80402283 .byt:0001 +80402284 .wrd:0002 +80402286 .byt:0001 +80402287 .byt:0001 +80402288 .dbl:0004 +8040228C .dbl:0004 +80402290 .byt:0001 +80402291 .byt:0001 +80402292 .byt:0001 +80402293 .byt:0001 +80402294 .wrd:0002 +80402296 .byt:0001 +80402297 .byt:0001 +80402298 .dbl:0004 +8040229C .dbl:0004 +804022A0 .byt:0001 +804022A1 .byt:0001 +804022A2 .byt:0001 +804022A3 .byt:0001 +804022A4 .wrd:0002 +804022A6 .byt:0001 +804022A7 .byt:0001 +804022A8 .dbl:0004 +804022AC .dbl:0004 +804022B0 .byt:0001 +804022B1 .byt:0001 +804022B2 .byt:0001 +804022B3 .byt:0001 +804022B4 .wrd:0002 +804022B6 .byt:0001 +804022B7 .byt:0001 +804022B8 .dbl:0004 +804022BC .dbl:0004 +804022C0 .byt:0001 +804022C1 .byt:0001 +804022C2 .byt:0001 +804022C3 .byt:0001 +804022C4 .wrd:0002 +804022C6 .byt:0001 +804022C7 .byt:0001 +804022C8 .dbl:0004 +804022CC .dbl:0004 +804022D0 .byt:0001 +804022D1 .byt:0001 +804022D2 .byt:0001 +804022D3 .byt:0001 +804022D4 .wrd:0002 +804022D6 .byt:0001 +804022D7 .byt:0001 +804022D8 .dbl:0004 +804022DC .dbl:0004 +804022E0 .byt:0001 +804022E1 .byt:0001 +804022E2 .byt:0001 +804022E3 .byt:0001 +804022E4 .wrd:0002 +804022E6 .byt:0001 +804022E7 .byt:0001 +804022E8 .dbl:0004 +804022EC .dbl:0004 +804022F0 .byt:0001 +804022F1 .byt:0001 +804022F2 .byt:0001 +804022F3 .byt:0001 +804022F4 .wrd:0002 +804022F6 .byt:0001 +804022F7 .byt:0001 +804022F8 .dbl:0004 +804022FC .dbl:0004 +80402300 .byt:0001 +80402301 .byt:0001 +80402302 .byt:0001 +80402303 .byt:0001 +80402304 .wrd:0002 +80402306 .byt:0001 +80402307 .byt:0001 +80402308 .dbl:0004 +8040230C .dbl:0004 +80402310 .byt:0001 +80402311 .byt:0001 +80402312 .byt:0001 +80402313 .byt:0001 +80402314 .wrd:0002 +80402316 .byt:0001 +80402317 .byt:0001 +80402318 .dbl:0004 +8040231C .dbl:0004 +80402320 .byt:0001 +80402321 .byt:0001 +80402322 .byt:0001 +80402323 .byt:0001 +80402324 .wrd:0002 +80402326 .byt:0001 +80402327 .byt:0001 +80402328 .dbl:0004 +8040232C .dbl:0004 +80402330 .byt:0001 +80402331 .byt:0001 +80402332 .byt:0001 +80402333 .byt:0001 +80402334 .wrd:0002 +80402336 .byt:0001 +80402337 .byt:0001 +80402338 .dbl:0004 +8040233C .dbl:0004 +80402340 .byt:0001 +80402341 .byt:0001 +80402342 .byt:0001 +80402343 .byt:0001 +80402344 .wrd:0002 +80402346 .byt:0001 +80402347 .byt:0001 +80402348 .dbl:0004 +8040234C .dbl:0004 +80402350 .byt:0001 +80402351 .byt:0001 +80402352 .byt:0001 +80402353 .byt:0001 +80402354 .wrd:0002 +80402356 .byt:0001 +80402357 .byt:0001 +80402358 .dbl:0004 +8040235C .dbl:0004 +80402360 .byt:0001 +80402361 .byt:0001 +80402362 .byt:0001 +80402363 .byt:0001 +80402364 .wrd:0002 +80402366 .byt:0001 +80402367 .byt:0001 +80402368 .dbl:0004 +8040236C .dbl:0004 +80402370 .byt:0001 +80402371 .byt:0001 +80402372 .byt:0001 +80402373 .byt:0001 +80402374 .wrd:0002 +80402376 .byt:0001 +80402377 .byt:0001 +80402378 .dbl:0004 +8040237C .dbl:0004 +80402380 .byt:0001 +80402381 .byt:0001 +80402382 .byt:0001 +80402383 .byt:0001 +80402384 .wrd:0002 +80402386 .byt:0001 +80402387 .byt:0001 +80402388 .dbl:0004 +8040238C .dbl:0004 +80402390 .byt:0001 +80402391 .byt:0001 +80402392 .byt:0001 +80402393 .byt:0001 +80402394 .wrd:0002 +80402396 .byt:0001 +80402397 .byt:0001 +80402398 .dbl:0004 +8040239C .dbl:0004 +804023A0 .byt:0001 +804023A1 .byt:0001 +804023A2 .byt:0001 +804023A3 .byt:0001 +804023A4 .wrd:0002 +804023A6 .byt:0001 +804023A7 .byt:0001 +804023A8 .dbl:0004 +804023AC .dbl:0004 +804023B0 .byt:0001 +804023B1 .byt:0001 +804023B2 .byt:0001 +804023B3 .byt:0001 +804023B4 .wrd:0002 +804023B6 .byt:0001 +804023B7 .byt:0001 +804023B8 .dbl:0004 +804023BC .dbl:0004 +804023C0 .byt:0001 +804023C1 .byt:0001 +804023C2 .byt:0001 +804023C3 .byt:0001 +804023C4 .wrd:0002 +804023C6 .byt:0001 +804023C7 .byt:0001 +804023C8 .dbl:0004 +804023CC .dbl:0004 +804023D0 .byt:0001 +804023D1 .byt:0001 +804023D2 .byt:0001 +804023D3 .byt:0001 +804023D4 .wrd:0002 +804023D6 .byt:0001 +804023D7 .byt:0001 +804023D8 .dbl:0004 +804023DC .dbl:0004 +804023E0 .byt:0001 +804023E1 .byt:0001 +804023E2 .byt:0001 +804023E3 .byt:0001 +804023E4 .wrd:0002 +804023E6 .byt:0001 +804023E7 .byt:0001 +804023E8 .dbl:0004 +804023EC .dbl:0004 +804023F0 .byt:0001 +804023F1 .byt:0001 +804023F2 .byt:0001 +804023F3 .byt:0001 +804023F4 .wrd:0002 +804023F6 .byt:0001 +804023F7 .byt:0001 +804023F8 .dbl:0004 +804023FC .dbl:0004 +80402400 .byt:0001 +80402401 .byt:0001 +80402402 .byt:0001 +80402403 .byt:0001 +80402404 .wrd:0002 +80402406 .byt:0001 +80402407 .byt:0001 +80402408 .dbl:0004 +8040240C .dbl:0004 +80402410 .byt:0001 +80402411 .byt:0001 +80402412 .byt:0001 +80402413 .byt:0001 +80402414 .wrd:0002 +80402416 .byt:0001 +80402417 .byt:0001 +80402418 .dbl:0004 +8040241C .dbl:0004 +80402420 .byt:0001 +80402421 .byt:0001 +80402422 .byt:0001 +80402423 .byt:0001 +80402424 .wrd:0002 +80402426 .byt:0001 +80402427 .byt:0001 +80402428 .dbl:0004 +8040242C .dbl:0004 +80402430 .byt:0001 +80402431 .byt:0001 +80402432 .byt:0001 +80402433 .byt:0001 +80402434 .wrd:0002 +80402436 .byt:0001 +80402437 .byt:0001 +80402438 .dbl:0004 +8040243C .dbl:0004 +80402440 .byt:0001 +80402441 .byt:0001 +80402442 .byt:0001 +80402443 .byt:0001 +80402444 .wrd:0002 +80402446 .byt:0001 +80402447 .byt:0001 +80402448 .dbl:0004 +8040244C .dbl:0004 +80402450 .byt:0001 +80402451 .byt:0001 +80402452 .byt:0001 +80402453 .byt:0001 +80402454 .wrd:0002 +80402456 .byt:0001 +80402457 .byt:0001 +80402458 .dbl:0004 +8040245C .dbl:0004 +80402460 .byt:0001 +80402461 .byt:0001 +80402462 .byt:0001 +80402463 .byt:0001 +80402464 .wrd:0002 +80402466 .byt:0001 +80402467 .byt:0001 +80402468 .dbl:0004 +8040246C .dbl:0004 +80402470 .byt:0001 +80402471 .byt:0001 +80402472 .byt:0001 +80402473 .byt:0001 +80402474 .wrd:0002 +80402476 .byt:0001 +80402477 .byt:0001 +80402478 .dbl:0004 +8040247C .dbl:0004 +80402480 .byt:0001 +80402481 .byt:0001 +80402482 .byt:0001 +80402483 .byt:0001 +80402484 .wrd:0002 +80402486 .byt:0001 +80402487 .byt:0001 +80402488 .dbl:0004 +8040248C .dbl:0004 +80402490 .byt:0001 +80402491 .byt:0001 +80402492 .byt:0001 +80402493 .byt:0001 +80402494 .wrd:0002 +80402496 .byt:0001 +80402497 .byt:0001 +80402498 .dbl:0004 +8040249C .dbl:0004 +804024A0 .byt:0001 +804024A1 .byt:0001 +804024A2 .byt:0001 +804024A3 .byt:0001 +804024A4 .wrd:0002 +804024A6 .byt:0001 +804024A7 .byt:0001 +804024A8 .dbl:0004 +804024AC .dbl:0004 +804024B0 .byt:0001 +804024B1 .byt:0001 +804024B2 .byt:0001 +804024B3 .byt:0001 +804024B4 .wrd:0002 +804024B6 .byt:0001 +804024B7 .byt:0001 +804024B8 .dbl:0004 +804024BC .dbl:0004 +804024C0 .byt:0001 +804024C1 .byt:0001 +804024C2 .byt:0001 +804024C3 .byt:0001 +804024C4 .wrd:0002 +804024C6 .byt:0001 +804024C7 .byt:0001 +804024C8 .dbl:0004 +804024CC .dbl:0004 +804024D0 .byt:0001 +804024D1 .byt:0001 +804024D2 .byt:0001 +804024D3 .byt:0001 +804024D4 .wrd:0002 +804024D6 .byt:0001 +804024D7 .byt:0001 +804024D8 .dbl:0004 +804024DC .dbl:0004 +804024E0 .byt:0001 +804024E1 .byt:0001 +804024E2 .byt:0001 +804024E3 .byt:0001 +804024E4 .wrd:0002 +804024E6 .byt:0001 +804024E7 .byt:0001 +804024E8 .dbl:0004 +804024EC .dbl:0004 +804024F0 .byt:0001 +804024F1 .byt:0001 +804024F2 .byt:0001 +804024F3 .byt:0001 +804024F4 .wrd:0002 +804024F6 .byt:0001 +804024F7 .byt:0001 +804024F8 .dbl:0004 +804024FC .dbl:0004 +80402500 .byt:0001 +80402501 .byt:0001 +80402502 .byt:0001 +80402503 .byt:0001 +80402504 .wrd:0002 +80402506 .byt:0001 +80402507 .byt:0001 +80402508 .dbl:0004 +8040250C .dbl:0004 +80402510 .byt:0001 +80402511 .byt:0001 +80402512 .byt:0001 +80402513 .byt:0001 +80402514 .wrd:0002 +80402516 .byt:0001 +80402517 .byt:0001 +80402518 .dbl:0004 +8040251C .dbl:0004 +80402520 .byt:0001 +80402521 .byt:0001 +80402522 .byt:0001 +80402523 .byt:0001 +80402524 .wrd:0002 +80402526 .byt:0001 +80402527 .byt:0001 +80402528 .dbl:0004 +8040252C .dbl:0004 +80402530 .byt:0001 +80402531 .byt:0001 +80402532 .byt:0001 +80402533 .byt:0001 +80402534 .wrd:0002 +80402536 .byt:0001 +80402537 .byt:0001 +80402538 .dbl:0004 +8040253C .dbl:0004 +80402540 .byt:0001 +80402541 .byt:0001 +80402542 .byt:0001 +80402543 .byt:0001 +80402544 .wrd:0002 +80402546 .byt:0001 +80402547 .byt:0001 +80402548 .dbl:0004 +8040254C .dbl:0004 +80402550 no_upgrade +80402558 hookshot_upgrade +8040256C @@return +80402574 strength_upgrade +80402594 @@return +8040259C bomb_bag_upgrade +804025BC @@return +804025C4 bow_upgrade +804025E4 @@return +804025EC slingshot_upgrade +8040260C @@return +80402614 wallet_upgrade +80402634 @@return +8040263C tycoon_wallet +80402650 scale_upgrade +80402664 @@return +8040266C nut_upgrade +80402680 @@return +80402688 stick_upgrade +8040269C @@return +804026A4 magic_upgrade +804026B4 @@return +804026BC arrows_to_rupee +804026D0 @@return +804026D8 bombs_to_rupee +804026EC @@return +804026F4 no_effect +804026FC give_biggoron_sword +8040270C give_bottle +80402714 @@loop +80402740 @@return +80402748 give_dungeon_item +80402764 give_small_key +8040277C @not_negative +8040278C give_defense +804027AC give_magic +804027CC double_magic +804027F4 bombchu_upgrade +80402818 @@return +80402820 ocarina_upgrade +80402834 @@return +8040283C give_fairy_ocarina +8040284C give_song +80402868 inventory_check +804028D4 @@return +804028DC override_skulltula_token +804028FC @@in_table +8040292C @@extended_effect +80402958 @@no_extended_effect +80402964 @@not_extended +8040299C @@item_effect +804029A8 @@display_message +804029B4 @@return +804029C8 override_object_npc +804029D8 override_object_chest +804029E8 override_object +80402A00 @@return +80402A44 @@no_count_inc +80402A48 @@no_pending_clear +80402A50 override_graphic +80402A68 @@return +80402A80 override_text +80402A9C @@return +80402AA4 override_action +80402ACC @@no_player_override +80402B28 @@return +80402B30 store_item_data_hook +80402B64 store_item_data +80402BF8 @@update_base_game +80402C28 @@not_chest +80402C38 @@not_negative +80402C3C @@return +80402C4C lookup_override +80402C74 @@return +80402C84 get_override_search_key +80402CC4 @@not_skulltula +80402CFC @@valid_chest +80402D04 @@not_chest +80402D34 @@valid_collectable +80402D3C @@not_collectable +80402D64 @@not_grotto_deku_scrub +80402D74 @@return +80402D7C scan_override_table +80402DA0 @@lookup_loop +80402E08 @@return +80402E10 resolve_extended_item +80402E24 @@loop +80402E78 @@not_extended +80402E7C @@return +80402E94 override_great_fairy_cutscene +80402EEC @@item_fairy +80402F0C @@give_item +80402F38 @@return +80402F40 override_light_arrow_cutscene +80402F54 override_fairy_ocarina_cutscene +80402F68 override_ocarina_songs +80402F7C override_requiem_song +80402F88 override_epona_song +80402FA8 override_suns_song +80402FC8 override_song_of_time +80402FD8 store_pending_special_item +80402FE8 @@find_duplicate_loop +80403004 @@find_empty_loop +8040301C @@return +80403024 override_saria_song_check +80403040 @@get_item +80403048 set_saria_song_flag +80403068 Shop_Check_Sold_Out +804030B4 @@return +804030BC Shop_Set_Sold_Out +804030F4 @@return +804030FC Shop_Keeper_Init_ID +80403118 @@return +80403128 Deku_Check_Sold_Out +8040314C @@continue +8040317C Deku_Set_Sold_Out +804031A0 @@continue +804031D4 every_frame +80403228 @@loop +80403280 @@no_pending_item +804032A8 item_menu_description_id_periodic +804032BC @@item_menu_description_id_return_00000000 +804032C4 item_menu_description_id_immediate_1 +804032D8 @@item_menu_description_id_return_00000001 +804032E0 item_menu_description_id_immediate_2 +804032F4 @@item_menu_description_id_return_00000002 +804032FC item_menu_description_id_immediate_3 +80403310 @@item_menu_description_id_return_00000003 +80403318 before_time_travel +80403348 after_time_travel +80403384 @@going_back +8040338C @@done +804033BC update_c_button +804033E8 @@return +804033F0 after_going_forward +8040342C @@no_init +8040343C after_going_back +8040346C @@not_swordless +80403474 initialize_adult +8040349C @@no_mirror_shield +804034DC init_adult_button +80403508 @@empty +80403510 @@loop +80403568 @@set_empty +80403574 @@return +8040357C .byt:0001 +8040357C ADULT_INIT_ITEMS +8040357D .byt:0001 +8040357E .byt:0001 +8040357F .byt:0001 +80403580 .byt:0001 +80403581 .byt:0001 +80403582 .byt:0001 +80403583 .byt:0001 +80403584 .byt:0001 +80403588 .byt:0001 +80403588 ADULT_VALID_ITEMS +80403589 .byt:0001 +8040358A .byt:0001 +8040358B .byt:0001 +8040358C .byt:0001 +8040358D .byt:0001 +8040358E .byt:0001 +8040358F .byt:0001 +80403590 .byt:0001 +80403591 .byt:0001 +80403592 .byt:0001 +80403593 .byt:0001 +80403594 .byt:0001 +80403595 .byt:0001 +80403596 .byt:0001 +80403597 .byt:0001 +80403598 .byt:0001 +80403599 .byt:0001 +8040359A .byt:0001 +8040359B .byt:0001 +8040359C .byt:0001 +8040359D .byt:0001 +8040359E .byt:0001 +8040359F .byt:0001 +804035A0 suns_song_fix_event +804035D4 @@child +804035E4 @@return +804035EC suns_song_fix +80403600 @@check_suns_status +8040361C @@disable_suns +80403624 @@return +8040362C warp_song_fix +80403658 @@child +80403668 @@return +80403670 Check_Has_Epona_Song +804036BC @@return +804036C4 write_initial_save +804036D0 @@save_data_loop +80403700 @@overwrite_type +80403708 @@return +80403710 .byt:0940 +80405000 disp_buf_init,00000018 +80405018 sprite_bytes_per_tile,00000028 +80405040 sprite_bytes,00000030 +80405070 sprite_load,0000024C +804052BC sprite_draw,000000E8 +804053A4 draw_setup,000001DC +80405580 gfx_init,0000014C +804056CC heap_init,00000014 +804056E0 heap_alloc,00000034 +80405714 file_init,00000044 +80405758 c_init,0000002C +80405784 overlay_swap,000000B8 +8040583C draw_dungeon_info,00000798 +80405FD4 text_init,0000002C +80406000 text_print,000000A8 +804060A8 text_flush,00000148 +804061FC .byt:0010 +804061FC font_sprite +8040620C .byt:0010 +8040620C quest_items_sprite +8040621C .byt:0010 +8040621C medals_sprite +8040622C .byt:0010 +8040622C stones_sprite +8040623C .byt:000E +8040623C dungeon_is_mq +8040624C .byt:000E +8040624C rewards +8040625C .byt:0012 +8040625C medal_colors +80406270 .byt:009C +80406270 dungeons +8040630C .byt:0004 +8040630C dungeon_count +80406310 .byt:0004 +80406310 heap_next +8040631C .byt:0010 +8040631C setup_db +8040632C .byt:14C8 +8040632C FONT_TEXTURE +804077F4 .byt:880C +80480000 DUMMY_ACTOR +80500000 C_HEAP + \ No newline at end of file diff --git a/ASM/build/bundle.o b/ASM/build/bundle.o new file mode 100644 index 0000000000000000000000000000000000000000..bd2287f5f8e7b47347455476636149ec5709513f GIT binary patch literal 9128 zcmb_heQaCTbw7NhBub>DCyJ37N3|*YQKlVLpBDZx~|B-HlosSME3Jo)cb_g2HHD+(i2D?j} zpi9R6&b{|Zlq@@2(FZ@Cd+s^+eBE=;xljJaq0Tmk=AgC5L2itTCW1c;QjLS6f+I{m zs*$`-ayW|l{$kaX|?YJIVJ}vFja={QiC2gBqgadtn zhUG=_o7%6zmkYs`fT@)c`0GvWUl<0Lb7Yv>fAKhcYLQ&0&LJ+pVHq)>Q9>>)6m-#` zlxf6O>|1TTP|#8fE;>TnwO+>u97`i!D3Df5W(gIdXKxW5(hW*7zvbIoLXY}$RAH1N zyzYmtM9$J9bUxfbC3{a8ua*_)E!s{wmJ{(s-mWfCn;tSt%2)>b*ko!q*v<%Sj#7<3 z4;=xP-@Ko+x*%zESPvO4(xtwj&zOOH*I!&YaF`y^TIU>+Z^wj%dZE>rtw_S;PZyjKw)mF~A9Zx;&7uaei) zZZl0M=k^SJm9{&C{(vvik9d@K5)B7JoM+CQ9@=xB0<$L&iuNk-dt z2kSFRDFP_z1E9YEy=?)TmKQXhyJFjNjf}w^j-_{CPaf--_6}&@0v!Ad@w`!n+VajO zTKhIZyJJneUz2OROy4N4y>e?k?Sl7C{q5Cv(V^c(j{7eB6ciT&Wc$AwiMtzZ}E7O3pNlW9fCBB!>DceJ!*BkNY z$;M4|4qn@6;K#~@cuW@Rr2du5jz~wtJ{`4#DDc`Y%$Ikx@H(TPnZQGlkQTH;Mp@z3 zw@WZ}CfqO&9i-K0eExH%iN37?Z`B*-Q-J5fq1+*I7;oe4N3HxjeV^Yd+(sSJSg+x7 z5b6&ZP6r|13G;+Jb#bm5afh%IV=wAN6!jp2deFqNL~n_)U5E>Om1l>2CD*nqr0vw` zgx(N|Q#ESTZuAT%^V0F)ZphbXnXfe{dtY*6PvbtscFoS9Zb9~3Db7D)V`>@bsk}wj zN9A+q0kCItpA&si#1iW_L*`d@b5C4F4%DN*29O7$m&*S4BI~J-#%FS{*8$rbPPUXs z4UJ0ueN;zzuFae1@$wG8MY?81)@Wi~yu20j9xWJNo1cl3-}NZ!Bm0LKvyB{QUdw!p zYuIDhT95i0K)j2648raO*qvPd8}#rWqKE$gJ^Xd_@Qdi--=|La(*b{4k=GXc!+SH! z^@sPeRrUeX^$S{RgEqSbVT)pqTXe?t|Q-^myoO6OM_Hfn}Hoh zG)`_lU#k9xasJR}MZJ%hnhSa0;`0|pp9`YTZLsZ*K6hF6xj7B?qo%(GKZZ(B^bL<%gH#4Se@fLSY&OVM112os1`lUW7CH-eVBI_dF03VB<8jO zeh9eZw`A0j&SwR-o92B)FJVmGdPAm-D14cm-4^X^+|OsV@ClVd>Oi1@js?{DuA})R z(!;fj&vs~@&$6?g?*Jjht56*KrRPQ6aUnkfc>Pp^{e6PtFZS03{d)Es#j95y(R=K;KatfA8lT5nl?PJqiy_TAA2PRPY7TyQc7=V#epqThGQwxvVO=e>jrV|aLc50A9j7-) zLx7w+oZ)_|=<0=TjmiyYgw8GEtXP4N=n`6;(6SjYMgUOv0>67q*@ zBWUMAbAVROH29?>Cj)r5%vEPT7GfK<)uO$}x}tntW&hYtwMW|B{6TK)`yGAJVXxSu z&AuQ^=2sepq`-}W<`NQk5w1=o73>zBC{Op@TC;m3nk#`&QM9N4>8l!-3xt+ z@yKa>KWV#3+_4_RcP@Gbe}D0JE8ovv-US_}!wtp_a%8R*3b+ftkGdi50^IA^Curcm zGhBdAow#dsp#HX^k65^Cn5e@s+%=-OYeaC@Xu@41Od0&$fG*%gjkWt8N|#xScU$b2 zSQA7Z`?NgHa7LYB>|^#Va>J*c2XD{)A->U9=?VVM3*ZJGI6>N;E0hfE_D@iqaRGOj zb1>}dPUtPdh$M-S5-6Ok^ zn?aEm(63QAG}p)R&>!r!3h!l3BM;FJ_`X*cFZ=^?QuKjY+#5K~93SjuCvu|$xzUQ; zu#g)jawCS^h$1&4$c-lCMp)%W*O#9ldOSTbni%1z;&D?I^*He-BlQH}Gj3pLj`Gp5 z&80F6fH6f6)l_NumWcnB* zr7K6qhbM*wzk5EOo_b31m+N2bS4+v0Y42{A)8x%{3@20RXS+#}tJsslBD; z^TBZY<4^7l#+nZ_N9gx9W9!%oeg=~}w<4&yHF^d?M|g|>mWLdrb$a0r`gk#Y3mqHQ zZ$am&b@`|foAk$u>7Ta#)99b-9|UaDzrp@Y*&XyCmaN&IzcW5V#q^aa8ne_*_sH^r2 za8&g52YAIgCggcG;gy^4D&T82yQpv*_?k|IGmm%_&NsDU+^}&#_J_NRU5XfQ#w#AR z{$U{O2M3ekAM>~f$C0nT3cSfDWeU3)Z_z5U_6k`jo zy*`dHm&sR@yf0zgi`S>{qcR+HUajwk@0hdW?f5Fj{BZnWn**{+e*)aE_@5V4{IH>* zbA0(chZX%VAd4pL)DIT#*8zYw&6k?F}HN`E~yF_L($XYyELoJLd0#K>gNcRZz8pBX3G2W9H8A-#MiNvvXdq$tJU73^~_VlMm(i4+14Dc1+^~+VlqcKE|#7M|(>FGH1Xx9d%J>#i~9_&Vn z2Jj=7Vzcmc67A=6_`ZZCOGF2NmtgM&TqSD2c`msQh;vo~zWW)!1;{w^`T^j41RuZ; z|7S=e)|Yy5qh%a9QO|gj!lOhxm_G){^iDMo9{djtl_nKFtJa+)+Qsv)05X40!3#vY zS?&ss4AZXyGW}hY9)=$QV!jMK0{@A^k-m(V8B%^(FVREbDI3DgmEky19iZEbR=}_x zDb8?2+TjMB?Qp|Bw%0u`?Jd73<5GS}#-;pClqak!hu-brD_;S`x^mdJk8#9xALBQP zLX5u;$oMUy2O0kWknx{Mxm@Bo-WAZd6LKpMXO>%mxUk%cAIp8JfIi-*3an%O70@I2 zt}8ysXZ;nB&-%GluznACS-;0C<#=={$I~kHdHhn2r%TH5j7T}2aV6(PloH7B{JG*= zP<-cQoIFc1PM$YqzIb3S=ZgpSvYno*Y8~ume>~Tf{F_p~7y4Mf7xuD0Ue*IXFZ6K! zc@YPe=gmoZUg#Bk&@1>ZNqOEklsxDa>sI8tN=y3bRd!T%%5{}PlCN?^@xfoVxAIvj zzf##zIV0s)z9{8aD!VF`T~)f2UkUrzuBv(|zbYo>SD8|N73^U7RUL{?*-_OkH{gi+K<)@zUlxV_^P3|hVdXE;|5v;<6%I?p^xKS-6Zu_ zKdt0I-!`6qSDu^d>o_aC4tmRY-TMl^C2{^QW~S@#o9R0A3mp0d9+P>Y!(XlwdY7Uf zRrCdgzoPI}#SgvAUjth>PCDy{o*LH2^D{CIy0WKcUd>-nd>0jdN#SouobZG-`~*=4 z8Cs}g40|!fFax;^bErEE^QadLS5ZFz9T?U#45Dr_w1_^-uorETVFvYtVGi|$VIFa2 zxQe)H)I9mz=v1N)aB4!rA$#=YFLoViPV@~Aj3fppsd*wb$PJVSBhB0vF-j*BQwd(W zzd1_Hj6jeAeUn%ue)`j+qbYO_v2r{)LCv_~HYcX0CWiZ_xiK}5CR2UWgRJax2k8It zJTQ)=1V8){5B65v4HPQwdjTN(z=u6rd%7^f;R6E_Vt#{1ju~+d=4+) zwJf}Nwqq|#+!$2jb>d|{#{UQ}Z;*1zcNF8|JF=~}Q}OXyJia8B>2fT7ZM}zqF+uUw zP64-R%xI7Q6l4B7h0XUYaOCOQWApW3hV3lo+e&W|JnTmVFP>VK_h(`#f0)MaGYZOC zs=d0tHDb!vI|{5Qemma;p25rUKZ6#SSLR(;I+pX-gliR ziyoWC(9RVMna{~SvCsThZr00VwoSzZBf8%Y@n?CY9$Ox+ti^o6R^TUXCP2aWzk{j` AcmMzZ literal 0 HcmV?d00001 diff --git a/ASM/build/c_symbols.txt b/ASM/build/c_symbols.txt new file mode 100644 index 000000000..9d1d89e4a --- /dev/null +++ b/ASM/build/c_symbols.txt @@ -0,0 +1,56 @@ + +../build/bundle.o: file format elf32-bigmips + +SYMBOL TABLE: +00000000 l d .MIPS.abiflags 00000000 .MIPS.abiflags +00000000 l d .reginfo 00000000 .reginfo +00000000 l d .text 00000000 .text +00000000 l d .rodata.str1.4 00000000 .rodata.str1.4 +00000000 l d .data 00000000 .data +00000000 l d .sdata 00000000 .sdata +00000000 l d .sbss 00000000 .sbss +00000000 l d .bss 00000000 .bss +00000000 l d .comment 00000000 .comment +00000000 l d .pdr 00000000 .pdr +00000000 l d .gnu.attributes 00000000 .gnu.attributes +00000000 l d .mdebug.abi32 00000000 .mdebug.abi32 +00000000 l df *ABS* 00000000 gfx.c +00000000 l df *ABS* 00000000 util.c +00000000 l df *ABS* 00000000 main.c +00000000 l df *ABS* 00000000 dungeon_info.c +00000000 l .rodata.str1.4 00000000 $LC0 +00000004 l .rodata.str1.4 00000000 $LC1 +00000000 l df *ABS* 00000000 text.c +00000008 l O .sbss 00000004 text_buf +00000004 l O .sbss 00000004 text_end +00000fd4 g F .text 0000002c text_init +000010a8 g F .text 00000148 text_flush +00000784 g F .text 000000b8 overlay_swap +00000020 g O .data 00000010 medals_sprite +00000000 g O .sdata 00000004 dungeon_count +00000010 g O .data 00000010 quest_items_sprite +000006e0 g F .text 00000034 heap_alloc +0000083c g F .text 00000798 draw_dungeon_info +00000000 *UND* 00000000 FONT_TEXTURE +000002bc g F .text 000000e8 sprite_draw +00000070 g F .text 0000024c sprite_load +00000030 g O .data 00000010 stones_sprite +00000000 g O .bss 00000010 setup_db +000003a4 g F .text 000001dc draw_setup +00000000 g O .data 00000010 font_sprite +00000050 g O .data 0000000e rewards +00000040 g F .text 00000030 sprite_bytes +00000580 g F .text 0000014c gfx_init +00000000 g F .text 00000018 disp_buf_init +00000040 g O .data 0000000e dungeon_is_mq +00000074 g O .data 0000009c dungeons +00000060 g O .data 00000012 medal_colors +00001000 g F .text 000000a8 text_print +00000758 g F .text 0000002c c_init +00000000 g O .sbss 00000004 heap_next +000006cc g F .text 00000014 heap_init +00000000 *UND* 00000000 C_HEAP +00000018 g F .text 00000028 sprite_bytes_per_tile +00000714 g F .text 00000044 file_init + + diff --git a/ASM/src/c/Makefile b/ASM/c/Makefile similarity index 100% rename from ASM/src/c/Makefile rename to ASM/c/Makefile diff --git a/ASM/src/c/dungeon_info.c b/ASM/c/dungeon_info.c similarity index 100% rename from ASM/src/c/dungeon_info.c rename to ASM/c/dungeon_info.c diff --git a/ASM/src/c/dungeon_info.h b/ASM/c/dungeon_info.h similarity index 100% rename from ASM/src/c/dungeon_info.h rename to ASM/c/dungeon_info.h diff --git a/ASM/src/c/gfx.c b/ASM/c/gfx.c similarity index 100% rename from ASM/src/c/gfx.c rename to ASM/c/gfx.c diff --git a/ASM/src/c/gfx.h b/ASM/c/gfx.h similarity index 100% rename from ASM/src/c/gfx.h rename to ASM/c/gfx.h diff --git a/ASM/src/c/main.c b/ASM/c/main.c similarity index 100% rename from ASM/src/c/main.c rename to ASM/c/main.c diff --git a/ASM/src/c/text.c b/ASM/c/text.c similarity index 100% rename from ASM/src/c/text.c rename to ASM/c/text.c diff --git a/ASM/src/c/text.h b/ASM/c/text.h similarity index 100% rename from ASM/src/c/text.h rename to ASM/c/text.h diff --git a/ASM/src/c/util.c b/ASM/c/util.c similarity index 100% rename from ASM/src/c/util.c rename to ASM/c/util.c diff --git a/ASM/src/c/util.h b/ASM/c/util.h similarity index 100% rename from ASM/src/c/util.h rename to ASM/c/util.h diff --git a/ASM/src/c/z64.h b/ASM/c/z64.h similarity index 100% rename from ASM/src/c/z64.h rename to ASM/c/z64.h diff --git a/ASM/quick_build.bat b/ASM/quick_build.bat index 2f168d043..4d6dcbc2d 100644 --- a/ASM/quick_build.bat +++ b/ASM/quick_build.bat @@ -1,3 +1,2 @@ python scripts/build.py -python scripts/rom_diff.py roms/base.z64 roms/patched.z64 ../data/base2current.json pause \ No newline at end of file diff --git a/ASM/src/resources/font.bin b/ASM/resources/font.bin similarity index 100% rename from ASM/src/resources/font.bin rename to ASM/resources/font.bin diff --git a/ASM/scripts/build.py b/ASM/scripts/build.py index 7d08f7547..860b9ce62 100644 --- a/ASM/scripts/build.py +++ b/ASM/scripts/build.py @@ -1,7 +1,10 @@ #!/usr/bin/env python3 + import argparse +import json import os -import subprocess +import re +from subprocess import check_call as call parser = argparse.ArgumentParser() parser.add_argument('--pj64sym', help="Output path for PJ64 debugging symbols") @@ -11,22 +14,82 @@ pj64_sym_path = args.pj64sym compile_c = args.compile_c -if pj64_sym_path: - pj64_sym_path = os.path.realpath(pj64_sym_path) - script_dir = os.path.dirname(os.path.realpath(__file__)) run_dir = script_dir + '/..' +os.chdir(run_dir) + +# Compile code + +os.environ['PATH'] = script_dir + os.pathsep + os.environ['PATH'] if compile_c: - os.chdir('src/c') - subprocess.check_call(['make']) - os.chdir(run_dir) + os.chdir(run_dir + '/c') + call(['make']) + +os.chdir(run_dir + '/src') +call(['armips', '-sym2', '../build/asm_symbols.txt', 'build.asm']) +os.chdir(run_dir) + +# Parse symbols + +c_sym_types = {} -try: - subprocess.check_call(['armips', '-sym2', 'temp/symbols', 'src/build.asm']) -except FileNotFoundError: - subprocess.check_call(['scripts/armips', '-sym2', 'temp/symbols', 'src/build.asm']) +with open('build/c_symbols.txt', 'r') as f: + for line in f: + m = re.match(''' + ^ + [0-9a-fA-F]+ + .* + \. + ([^\s]+) + \s+ + [0-9a-fA-F]+ + \s+ + ([^.$][^\s]+) + \s+$ + ''', line, re.VERBOSE) + if m: + sym_type = m.group(1) + name = m.group(2) + c_sym_types[name] = 'code' if sym_type == 'text' else 'data' + +symbols = {} + +with open('build/asm_symbols.txt', 'r') as f: + for line in f: + parts = line.strip().split(' ') + if len(parts) < 2: + continue + address, sym_name = parts + if address[0] != '8': + continue + if sym_name[0] == '.': + continue + sym_type = c_sym_types.get(sym_name) or ('data' if sym_name.isupper() else 'code') + symbols[sym_name] = { + 'type': sym_type, + 'address': address, + } + +# Output symbols + +os.chdir(run_dir) + +data_symbols = {} +for (name, sym) in symbols.items(): + if sym['type'] == 'data': + data_symbols[name] = sym['address'] +with open('../data/symbols.json', 'w') as f: + json.dump(data_symbols, f, indent=4, sort_keys=True) if pj64_sym_path: - subprocess.check_call(['python3', 'scripts/sym2pj64.py', - 'src/c', 'temp/symbols', pj64_sym_path]) + pj64_sym_path = os.path.realpath(pj64_sym_path) + with open(pj64_sym_path, 'w') as f: + key = lambda pair: pair[1]['address'] + for sym_name, sym in sorted(symbols.items(), key=key): + f.write('{0},{1},{2}\n'.format(sym['address'], sym_name, sym['type'])) + +# Diff ROMs + +call(['python3', 'scripts/rom_diff.py', + 'roms/base.z64', 'roms/patched.z64', '../data/rom_patch.txt']) diff --git a/ASM/scripts/rom_diff.py b/ASM/scripts/rom_diff.py index 195e661f3..2b37d51e0 100644 --- a/ASM/scripts/rom_diff.py +++ b/ASM/scripts/rom_diff.py @@ -10,21 +10,25 @@ compare_path = sys.argv[2] output_path = sys.argv[3] -with open(base_path, 'rb') as base_file: - base_data = base_file.read() -with open(compare_path, 'rb') as compare_file: - compare_data = compare_file.read() +def unequal_chunks(file1, file2): + chunk_size = 2048 + i = 0 + while True: + chunk1 = file1.read(chunk_size) + chunk2 = file2.read(chunk_size) + if not chunk1: + return + if chunk1 != chunk2: + yield (i * chunk_size, chunk1, chunk2) + i += 1 diffs = [] -run = [] -for i in range(0, len(base_data)): - if base_data[i] != compare_data[i]: - if run and run[-1][0] != i - 1: - diffs.append({ run[0][0]: [value for (_, value) in run] }) - run = [] - run.append((i, compare_data[i])) -if run: - diffs.append({ run[0][0]: [value for (_, value) in run] }) +with open(base_path, 'rb') as base_f, open(compare_path, 'rb') as comp_f: + for (i, base_c, comp_c) in unequal_chunks(base_f, comp_f): + for j in range(len(base_c)): + if comp_c[j] != base_c[j]: + diffs.append((i + j, comp_c[j])) -with open(output_path, 'w') as output_file: - json.dump(diffs, output_file, indent=4, sort_keys=True) +with open(output_path, 'w') as out_f: + for (i, b) in diffs: + out_f.write('{0:x},{1:x}\n'.format(i, b)) diff --git a/ASM/scripts/sym2pj64.py b/ASM/scripts/sym2pj64.py deleted file mode 100644 index 67653a000..000000000 --- a/ASM/scripts/sym2pj64.py +++ /dev/null @@ -1,46 +0,0 @@ -#!/usr/bin/env python3 - -import glob -import re -import subprocess -import sys - -if len(sys.argv) < 3: - raise RuntimeError("Usage: python3 sym2pj64.py OBJ_DIR IN_FILE OUT_FILE") - -obj_dir = sys.argv[1] -in_path = sys.argv[2] -out_path = sys.argv[3] - -sym_types = {} -lines = [] -try: - lines = open('src/c/output/debug.txt', 'r').readlines() -except: - pass - -for line in lines: - m = re.match('^[0-9a-fA-F]+.*\.([^\s]+)\s+[0-9a-fA-F]+\s+([^.$][^\s]+)\s+$', line) - if m: - sym_type = m.group(1) - name = m.group(2) - sym_types[name] = 'code' if sym_type == 'text' else 'data' - -in_file = open(in_path, 'r') -out_file = open(out_path, 'w') - -for line in in_file: - parts = line.strip().split(' ') - if len(parts) < 2: - continue - address, label = parts - if address[0] != '8': - continue - if label[0] == '.': - continue - label_type = sym_types.get(label) or ('data' if label.isupper() else 'code') - out_line = ','.join([address, label_type, label]) - print(out_line, file=out_file) - -in_file.close() -out_file.close() diff --git a/ASM/src/build.asm b/ASM/src/build.asm index 14d6e4345..e8ec9502e 100755 --- a/ASM/src/build.asm +++ b/ASM/src/build.asm @@ -54,9 +54,9 @@ DebugOutput: .org 0x80405000 .area 0xB000, 0 -.importobj "src/c/output/bundle.o" +.importobj "../build/bundle.o" FONT_TEXTURE: -.incbin("resources/font.bin") +.incbin("../resources/font.bin") .endarea .close diff --git a/data/base2current.json b/data/base2current.json deleted file mode 100644 index a376b3b86..000000000 --- a/data/base2current.json +++ /dev/null @@ -1,21456 +0,0 @@ -[ - { - "17": [ - 69, - 174, - 91, - 151, - 219, - 65, - 49 - ] - }, - { - "53857": [ - 72, - 0 - ] - }, - { - "53861": [ - 72, - 80, - 0 - ] - }, - { - "53865": [ - 72, - 0 - ] - }, - { - "53873": [ - 75, - 48 - ] - }, - { - "53877": [ - 75, - 224, - 0 - ] - }, - { - "53881": [ - 75, - 48 - ] - }, - { - "9083985": [ - 0, - 0, - 0 - ] - }, - { - "9083989": [ - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "9083996": [ - 0, - 0, - 0, - 0 - ] - }, - { - "9084004": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "9084048": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "9084060": [ - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "9084067": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "9084112": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "9084124": [ - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "9084131": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "9084176": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "9084188": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "9084240": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "9084252": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "9084304": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "9084316": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "9084326": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "9084368": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "9084380": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "9084390": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "9084432": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "9084444": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "9084454": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "9084496": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "9084560": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "9084624": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "9084643": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "9084688": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "9084707": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "9084752": [ - 0, - 0, - 0, - 0 - ] - }, - { - "9084757": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "9084772": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "11111472": [ - 12, - 16, - 10, - 204 - ] - }, - { - "11135032": [ - 8, - 16, - 13, - 156 - ] - }, - { - "11311804": [ - 12, - 16, - 11, - 223 - ] - }, - { - "11311809": [ - 0, - 0, - 0 - ] - }, - { - "11325064": [ - 12, - 16, - 11, - 208, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "11325076": [ - 0 - ] - }, - { - "11325079": [ - 0, - 0, - 0 - ] - }, - { - "11325083": [ - 0 - ] - }, - { - "11426272": [ - 8, - 16, - 12, - 210 - ] - }, - { - "11427312": [ - 12, - 16, - 13, - 123 - ] - }, - { - "11427320": [ - 12, - 16, - 11, - 218 - ] - }, - { - "11427332": [ - 0, - 0 - ] - }, - { - "11427335": [ - 0 - ] - }, - { - "11431496": [ - 12, - 16, - 11, - 213, - 1, - 15, - 192, - 33 - ] - }, - { - "11559936": [ - 130 - ] - }, - { - "11559938": [ - 14, - 222 - ] - }, - { - "11559948": [ - 49, - 248, - 0, - 2 - ] - }, - { - "11562028": [ - 12, - 16, - 13, - 177 - ] - }, - { - "11562033": [ - 40 - ] - }, - { - "11562035": [ - 32 - ] - }, - { - "11628841": [ - 16, - 21, - 225 - ] - }, - { - "11631540": [ - 175, - 191, - 0, - 28, - 175, - 164, - 1, - 64, - 60, - 4, - 128, - 64, - 60, - 5, - 3, - 72, - 12, - 0, - 3, - 124, - 52, - 6, - 80, - 0, - 12, - 16, - 0 - ] - }, - { - "11631568": [ - 0, - 0, - 0, - 0 - ] - }, - { - "11881272": [ - 12, - 16, - 13, - 139 - ] - }, - { - "11882076": [ - 12, - 16, - 13, - 104 - ] - }, - { - "12250476": [ - 0, - 0 - ] - }, - { - "12250479": [ - 0 - ] - }, - { - "12285876": [ - 0, - 0 - ] - }, - { - "12285879": [ - 0 - ] - }, - { - "12286096": [ - 12, - 16, - 12, - 177, - 0, - 0 - ] - }, - { - "12286103": [ - 0 - ] - }, - { - "12286288": [ - 12, - 16, - 12, - 184, - 0, - 0 - ] - }, - { - "12286295": [ - 0 - ] - }, - { - "12286880": [ - 0, - 0 - ] - }, - { - "12286883": [ - 0 - ] - }, - { - "12286972": [ - 0, - 0 - ] - }, - { - "12286975": [ - 0 - ] - }, - { - "12287036": [ - 12, - 16, - 12, - 191, - 0, - 0 - ] - }, - { - "12287043": [ - 0 - ] - }, - { - "12287064": [ - 12, - 16, - 12, - 170, - 0, - 0 - ] - }, - { - "12287071": [ - 0 - ] - }, - { - "12381372": [ - 8, - 16, - 10, - 148 - ] - }, - { - "12381377": [ - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "12381383": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "12381395": [ - 0 - ] - }, - { - "12427425": [ - 16, - 10, - 26 - ] - }, - { - "12427480": [ - 12, - 16, - 10, - 114 - ] - }, - { - "12427492": [ - 0, - 0 - ] - }, - { - "12427495": [ - 0 - ] - }, - { - "12427876": [ - 12, - 16, - 10, - 118 - ] - }, - { - "12427888": [ - 0, - 0 - ] - }, - { - "12427891": [ - 0 - ] - }, - { - "12474768": [ - 12, - 16, - 12, - 117, - 0, - 0, - 0, - 0 - ] - }, - { - "12491456": [ - 12, - 16, - 10, - 160 - ] - }, - { - "12491480": [ - 12, - 16, - 10, - 169 - ] - }, - { - "12491492": [ - 0, - 0 - ] - }, - { - "12491742": [ - 131, - 131 - ] - }, - { - "12584172": [ - 8, - 16, - 12, - 26 - ] - }, - { - "12584575": [ - 100 - ] - }, - { - "12589216": [ - 12, - 16, - 12, - 47 - ] - }, - { - "13027240": [ - 12, - 16, - 12, - 63 - ] - }, - { - "13027616": [ - 12, - 16, - 12, - 63 - ] - }, - { - "13144796": [ - 52, - 14, - 0, - 1 - ] - }, - { - "13144860": [ - 52, - 10, - 0, - 1 - ] - }, - { - "13145925": [ - 16, - 11, - 165 - ] - }, - { - "13146216": [ - 146, - 14, - 29, - 40 - ] - }, - { - "13146276": [ - 146, - 25, - 29, - 41 - ] - }, - { - "13146312": [ - 146, - 10, - 29, - 42 - ] - }, - { - "13330528": [ - 12, - 16, - 12, - 198 - ] - }, - { - "13709176": [ - 52, - 15 - ] - }, - { - "13709179": [ - 0 - ] - }, - { - "14109028": [ - 16, - 0 - ] - }, - { - "14147904": [ - 52, - 14, - 0, - 1, - 128 - ] - }, - { - "14147910": [ - 14, - 222 - ] - }, - { - "14147936": [ - 132, - 136 - ] - }, - { - "14147939": [ - 164, - 52, - 1 - ] - }, - { - "14147943": [ - 99, - 20, - 40 - ] - }, - { - "14147947": [ - 3, - 52, - 2, - 32, - 73, - 16, - 0, - 0, - 6, - 0 - ] - }, - { - "14147959": [ - 0, - 148, - 105, - 14, - 214, - 49, - 41, - 0, - 4, - 21, - 32 - ] - }, - { - "14147971": [ - 2, - 52, - 2, - 32, - 68, - 52, - 2, - 32, - 67, - 143, - 191 - ] - }, - { - "14147983": [ - 20, - 39, - 189, - 0, - 24, - 3, - 224 - ] - }, - { - "14147991": [ - 8, - 0, - 0, - 0, - 0 - ] - }, - { - "14148504": [ - 148, - 137, - 14, - 214, - 49, - 40 - ] - }, - { - "14148511": [ - 16, - 49, - 41 - ] - }, - { - "14148515": [ - 4, - 1, - 9, - 64, - 37, - 52, - 9 - ] - }, - { - "14148523": [ - 20, - 52, - 1, - 0, - 95, - 20, - 35 - ] - }, - { - "14148531": [ - 6, - 0, - 0 - ] - }, - { - "14148535": [ - 0, - 17, - 9 - ] - }, - { - "14148539": [ - 4, - 0, - 0, - 0, - 0, - 52, - 2, - 0, - 1, - 3, - 224 - ] - }, - { - "14148551": [ - 8, - 0, - 0 - ] - }, - { - "14148555": [ - 0, - 20, - 194 - ] - }, - { - "14148559": [ - 9, - 52, - 1 - ] - }, - { - "14148563": [ - 99, - 20, - 35 - ] - }, - { - "14148567": [ - 7, - 140, - 138 - ] - }, - { - "14148571": [ - 16, - 21, - 64 - ] - }, - { - "14148575": [ - 5, - 0, - 0, - 0, - 0, - 21, - 9 - ] - }, - { - "14148583": [ - 3, - 52, - 2 - ] - }, - { - "14148587": [ - 1, - 3, - 224 - ] - }, - { - "14148591": [ - 8, - 0, - 0, - 0, - 0, - 52, - 2, - 0, - 0, - 3, - 224, - 0, - 8, - 0, - 0 - ] - }, - { - "14148607": [ - 0 - ] - }, - { - "14149484": [ - 143, - 184, - 0, - 68 - ] - }, - { - "14149496": [ - 135, - 24 - ] - }, - { - "14149499": [ - 164, - 128, - 73, - 14, - 222 - ] - }, - { - "14149508": [ - 52 - ] - }, - { - "14149510": [ - 0, - 1, - 2, - 0, - 32, - 33 - ] - }, - { - "14149528": [ - 21 - ] - }, - { - "14149531": [ - 2, - 52, - 25, - 0, - 95, - 23, - 56, - 0, - 5, - 174, - 11, - 1, - 128 - ] - }, - { - "14149776": [ - 0, - 0 - ] - }, - { - "14149779": [ - 0 - ] - }, - { - "14149792": [ - 16, - 0 - ] - }, - { - "14149795": [ - 7, - 49, - 74 - ] - }, - { - "14149799": [ - 4 - ] - }, - { - "14149808": [ - 0 - ] - }, - { - "14149811": [ - 0, - 0, - 0 - ] - }, - { - "14149815": [ - 0 - ] - }, - { - "14149824": [ - 52, - 11, - 0, - 20 - ] - }, - { - "14149832": [ - 1, - 75, - 80, - 37, - 21, - 75 - ] - }, - { - "14149839": [ - 20 - ] - }, - { - "14149844": [ - 52, - 14, - 0, - 1, - 128 - ] - }, - { - "14149850": [ - 14, - 222 - ] - }, - { - "14149856": [ - 87 - ] - }, - { - "14149859": [ - 15 - ] - }, - { - "14150588": [ - 12, - 16, - 11, - 226 - ] - }, - { - "14150684": [ - 0, - 0 - ] - }, - { - "14150687": [ - 0, - 52 - ] - }, - { - "14150691": [ - 5 - ] - }, - { - "14357459": [ - 118 - ] - }, - { - "14373676": [ - 12, - 16, - 11, - 242 - ] - }, - { - "14624335": [ - 118 - ] - }, - { - "14646448": [ - 12, - 16, - 12, - 95 - ] - }, - { - "14720872": [ - 128 - ] - }, - { - "14720874": [ - 14, - 222 - ] - }, - { - "14720884": [ - 49, - 248, - 0, - 4 - ] - }, - { - "14720944": [ - 12, - 16, - 11, - 234 - ] - }, - { - "14848904": [ - 8, - 16, - 12, - 9 - ] - }, - { - "14852164": [ - 12, - 16, - 12, - 18 - ] - }, - { - "14872723": [ - 52 - ] - }, - { - "15327704": [ - 52, - 9, - 64, - 0 - ] - }, - { - "15327728": [ - 52 - ] - }, - { - "15327730": [ - 91, - 8 - ] - }, - { - "15327744": [ - 52 - ] - }, - { - "15327746": [ - 0, - 10 - ] - }, - { - "15327757": [ - 169 - ] - }, - { - "15448156": [ - 12, - 16, - 12, - 74 - ] - }, - { - "15448165": [ - 64 - ] - }, - { - "15448167": [ - 18 - ] - }, - { - "15448172": [ - 16, - 0, - 0, - 20 - ] - }, - { - "15493308": [ - 143, - 173, - 0, - 44, - 52, - 12, - 0, - 10, - 165, - 172, - 1, - 16, - 12, - 16, - 10, - 55, - 2, - 0, - 40, - 33, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "15493335": [ - 0 - ] - }, - { - "15493338": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "15493549": [ - 173 - ] - }, - { - "15493551": [ - 44, - 52, - 12, - 0, - 10, - 165, - 172, - 1, - 16, - 12, - 16, - 10, - 55, - 2, - 0, - 40, - 33, - 0, - 0 - ] - }, - { - "15493571": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "15493579": [ - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "15493586": [ - 0, - 0 - ] - }, - { - "15506663": [ - 122 - ] - }, - { - "55050240": [ - 39, - 189, - 255, - 232, - 175, - 191 - ] - }, - { - "55050247": [ - 16, - 60, - 4, - 128, - 64, - 36, - 132, - 80 - ] - }, - { - "55050256": [ - 60, - 5, - 3, - 75, - 36, - 165, - 48 - ] - }, - { - "55050264": [ - 52, - 6, - 176 - ] - }, - { - "55050268": [ - 12 - ] - }, - { - "55050270": [ - 3, - 124 - ] - }, - { - "55050276": [ - 12, - 16, - 21, - 214 - ] - }, - { - "55050284": [ - 60, - 2, - 128, - 18, - 36, - 66, - 210, - 160, - 36, - 14, - 1, - 64, - 60, - 1, - 128, - 16, - 172, - 46, - 229 - ] - }, - { - "55050304": [ - 143, - 191 - ] - }, - { - "55050307": [ - 16, - 39, - 189 - ] - }, - { - "55050311": [ - 24, - 3, - 224 - ] - }, - { - "55050315": [ - 8 - ] - }, - { - "55057409": [ - 90, - 59, - 93, - 92, - 94, - 81, - 82, - 83 - ] - }, - { - "55058512": [ - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 128, - 64, - 38, - 244, - 128, - 64, - 37, - 88, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 128, - 64, - 38, - 244, - 128, - 64, - 37, - 116, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 128, - 64, - 38, - 244, - 128, - 64, - 37, - 156, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 128, - 64, - 38, - 244, - 128, - 64, - 37, - 196, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 128, - 64, - 38, - 244, - 128, - 64, - 37, - 236, - 83, - 65, - 35, - 248 - ] - }, - { - "55058597": [ - 209, - 255, - 255, - 128, - 64, - 38, - 60, - 128, - 64, - 38, - 20, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 128, - 64, - 38, - 244, - 128, - 64, - 38, - 80, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 128, - 64, - 38, - 244, - 128, - 64, - 38, - 108, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 128, - 64, - 38, - 244, - 128, - 64, - 38, - 136, - 83, - 65, - 56, - 67 - ] - }, - { - "55058661": [ - 235, - 21, - 255, - 128, - 64, - 39, - 12, - 128, - 64, - 37, - 80, - 83, - 65, - 55, - 68 - ] - }, - { - "55058677": [ - 235, - 22, - 255, - 128, - 64, - 39, - 12, - 128, - 64, - 37, - 80, - 83, - 65, - 57, - 69 - ] - }, - { - "55058693": [ - 235, - 23, - 255, - 128, - 64, - 39, - 12, - 128, - 64, - 37, - 80, - 83, - 65, - 107, - 70, - 1, - 119, - 24, - 255, - 128, - 64, - 39, - 12, - 128, - 64, - 37, - 80, - 83, - 65, - 63, - 71 - ] - }, - { - "55058725": [ - 244, - 25, - 255, - 128, - 64, - 39, - 12, - 128, - 64, - 37, - 80, - 83, - 65, - 103, - 93, - 1, - 115, - 28, - 255, - 128, - 64, - 39, - 12, - 128, - 64, - 37, - 80, - 83, - 65, - 104, - 122, - 1, - 116, - 29, - 255, - 128, - 64, - 39, - 12, - 128, - 64, - 37, - 80, - 83, - 65, - 112, - 249, - 1, - 118, - 30, - 255, - 128, - 64, - 39, - 12, - 128, - 64, - 37, - 80, - 83, - 65, - 106, - 151, - 1, - 118, - 32, - 255, - 128, - 64, - 39, - 12, - 128, - 64, - 37, - 80, - 83, - 65, - 10, - 6 - ] - }, - { - "55058805": [ - 185, - 1, - 3, - 128, - 64, - 39, - 72, - 128, - 64, - 37, - 80, - 83, - 65, - 10, - 28 - ] - }, - { - "55058821": [ - 185, - 1, - 4, - 128, - 64, - 39, - 72, - 128, - 64, - 37, - 80, - 83, - 65, - 10, - 29 - ] - }, - { - "55058837": [ - 185, - 1, - 5, - 128, - 64, - 39, - 72, - 128, - 64, - 37, - 80, - 83, - 65, - 10, - 30 - ] - }, - { - "55058853": [ - 185, - 1, - 6, - 128, - 64, - 39, - 72, - 128, - 64, - 37, - 80, - 83, - 65, - 10, - 42 - ] - }, - { - "55058869": [ - 185, - 1, - 7, - 128, - 64, - 39, - 72, - 128, - 64, - 37, - 80, - 83, - 65, - 10, - 97 - ] - }, - { - "55058885": [ - 185, - 1, - 10, - 128, - 64, - 39, - 72, - 128, - 64, - 37, - 80, - 77, - 65, - 245, - 98 - ] - }, - { - "55058901": [ - 184, - 2 - ] - }, - { - "55058904": [ - 128, - 64, - 39, - 72, - 128, - 64, - 37, - 80, - 77, - 65, - 245, - 99 - ] - }, - { - "55058917": [ - 184, - 2, - 1, - 128, - 64, - 39, - 72, - 128, - 64, - 37, - 80, - 77, - 65, - 245, - 100 - ] - }, - { - "55058933": [ - 184, - 2, - 2, - 128, - 64, - 39, - 72, - 128, - 64, - 37, - 80, - 77, - 65, - 245, - 101 - ] - }, - { - "55058949": [ - 184, - 2, - 3, - 128, - 64, - 39, - 72, - 128, - 64, - 37, - 80, - 77, - 65, - 245, - 124 - ] - }, - { - "55058965": [ - 184, - 2, - 4, - 128, - 64, - 39, - 72, - 128, - 64, - 37, - 80, - 77, - 65, - 245, - 125 - ] - }, - { - "55058981": [ - 184, - 2, - 5, - 128, - 64, - 39, - 72, - 128, - 64, - 37, - 80, - 77, - 65, - 245, - 126 - ] - }, - { - "55058997": [ - 184, - 2, - 6, - 128, - 64, - 39, - 72, - 128, - 64, - 37, - 80, - 77, - 65, - 245, - 127 - ] - }, - { - "55059013": [ - 184, - 2, - 7, - 128, - 64, - 39, - 72, - 128, - 64, - 37, - 80, - 77, - 65, - 245, - 162 - ] - }, - { - "55059029": [ - 184, - 2, - 8, - 128, - 64, - 39, - 72, - 128, - 64, - 37, - 80, - 77, - 65, - 245, - 135 - ] - }, - { - "55059045": [ - 184, - 2, - 9, - 128, - 64, - 39, - 72, - 128, - 64, - 37, - 80, - 77, - 65, - 228, - 136 - ] - }, - { - "55059061": [ - 200, - 4 - ] - }, - { - "55059064": [ - 128, - 64, - 39, - 72, - 128, - 64, - 37, - 80, - 77, - 65, - 228, - 137 - ] - }, - { - "55059077": [ - 200, - 4, - 1, - 128, - 64, - 39, - 72, - 128, - 64, - 37, - 80, - 77, - 65, - 228, - 138 - ] - }, - { - "55059093": [ - 200, - 4, - 2, - 128, - 64, - 39, - 72, - 128, - 64, - 37, - 80, - 77, - 65, - 228, - 139 - ] - }, - { - "55059109": [ - 200, - 4, - 3, - 128, - 64, - 39, - 72, - 128, - 64, - 37, - 80, - 77, - 65, - 228, - 140 - ] - }, - { - "55059125": [ - 200, - 4, - 4, - 128, - 64, - 39, - 72, - 128, - 64, - 37, - 80, - 77, - 65, - 228, - 142 - ] - }, - { - "55059141": [ - 200, - 4, - 5, - 128, - 64, - 39, - 72, - 128, - 64, - 37, - 80, - 77, - 65, - 228, - 143 - ] - }, - { - "55059157": [ - 200, - 4, - 6, - 128, - 64, - 39, - 72, - 128, - 64, - 37, - 80, - 77, - 65, - 228, - 163 - ] - }, - { - "55059173": [ - 200, - 4, - 7, - 128, - 64, - 39, - 72, - 128, - 64, - 37, - 80, - 77, - 65, - 228, - 165 - ] - }, - { - "55059189": [ - 200, - 4, - 8, - 128, - 64, - 39, - 72, - 128, - 64, - 37, - 80, - 77, - 65, - 228, - 146 - ] - }, - { - "55059205": [ - 200, - 4, - 9, - 128, - 64, - 39, - 72, - 128, - 64, - 37, - 80, - 83, - 65, - 2, - 147 - ] - }, - { - "55059221": [ - 170, - 3, - 255, - 128, - 64, - 39, - 100, - 128, - 64, - 37, - 80, - 83, - 65, - 2, - 148 - ] - }, - { - "55059237": [ - 170, - 4, - 255, - 128, - 64, - 39, - 100, - 128, - 64, - 37, - 80, - 83, - 65, - 2, - 149 - ] - }, - { - "55059253": [ - 170, - 5, - 255, - 128, - 64, - 39, - 100, - 128, - 64, - 37, - 80, - 83, - 65, - 2, - 166 - ] - }, - { - "55059269": [ - 170, - 6, - 255, - 128, - 64, - 39, - 100, - 128, - 64, - 37, - 80, - 83, - 65, - 2, - 169 - ] - }, - { - "55059285": [ - 170, - 7, - 255, - 128, - 64, - 39, - 100, - 128, - 64, - 37, - 80, - 83, - 65, - 2, - 155 - ] - }, - { - "55059301": [ - 170, - 8, - 255, - 128, - 64, - 39, - 100, - 128, - 64, - 37, - 80, - 83, - 65, - 2, - 159 - ] - }, - { - "55059317": [ - 170, - 11, - 255, - 128, - 64, - 39, - 100, - 128, - 64, - 37, - 80, - 83, - 65, - 2, - 160 - ] - }, - { - "55059333": [ - 170, - 12, - 255, - 128, - 64, - 39, - 100, - 128, - 64, - 37, - 80, - 83, - 65, - 2, - 161 - ] - }, - { - "55059349": [ - 170, - 13, - 255, - 128, - 64, - 39, - 100, - 128, - 64, - 37, - 80, - 83, - 61, - 67, - 12 - ] - }, - { - "55059365": [ - 248, - 255, - 255, - 128, - 64, - 38, - 252, - 128, - 64, - 37, - 80, - 77, - 131, - 247, - 85 - ] - }, - { - "55059381": [ - 183, - 255, - 255, - 128, - 64, - 38, - 244, - 128, - 64, - 37, - 80, - 77, - 146, - 219, - 230 - ] - }, - { - "55059397": [ - 216, - 255, - 255, - 128, - 64, - 38, - 244, - 128, - 64, - 38, - 188, - 77, - 147, - 218, - 230 - ] - }, - { - "55059413": [ - 216, - 255, - 255, - 128, - 64, - 38, - 244, - 128, - 64, - 38, - 188, - 77, - 148, - 217, - 230 - ] - }, - { - "55059429": [ - 216, - 255, - 255, - 128, - 64, - 38, - 244, - 128, - 64, - 38, - 188, - 77, - 142, - 224, - 50 - ] - }, - { - "55059445": [ - 206, - 255, - 255, - 128, - 64, - 38, - 244, - 128, - 64, - 38, - 216, - 77, - 143, - 224, - 50 - ] - }, - { - "55059461": [ - 206, - 255, - 255, - 128, - 64, - 38, - 244, - 128, - 64, - 38, - 216, - 77, - 144, - 224, - 50 - ] - }, - { - "55059477": [ - 206, - 255, - 255, - 128, - 64, - 38, - 244, - 128, - 64, - 38, - 216, - 77, - 140, - 238, - 52 - ] - }, - { - "55059493": [ - 187, - 255, - 255, - 128, - 64, - 38, - 244, - 128, - 64, - 37, - 80, - 77, - 141, - 238, - 52 - ] - }, - { - "55059509": [ - 187, - 255, - 255, - 128, - 64, - 38, - 244, - 128, - 64, - 37, - 80, - 79, - 65, - 237, - 233 - ] - }, - { - "55059525": [ - 189, - 255, - 255, - 128, - 64, - 39, - 140, - 128, - 64, - 37, - 80, - 83, - 65, - 30, - 228 - ] - }, - { - "55059541": [ - 205, - 255, - 255, - 128, - 64, - 39, - 172, - 128, - 64, - 38, - 164, - 83, - 65, - 31, - 232 - ] - }, - { - "55059557": [ - 205, - 255, - 255, - 128, - 64, - 39, - 204, - 128, - 64, - 37, - 80, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 128, - 64, - 38, - 244, - 128, - 64, - 39, - 244, - 83, - 65, - 70, - 74, - 1, - 14, - 255, - 255, - 128, - 64, - 40, - 60, - 128, - 64, - 40, - 32, - 83, - 65, - 3, - 176 - ] - }, - { - "55059605": [ - 182, - 6, - 255, - 128, - 64, - 40, - 76, - 128, - 64, - 37, - 80, - 83, - 65, - 4, - 177 - ] - }, - { - "55059621": [ - 182, - 7, - 255, - 128, - 64, - 40, - 76, - 128, - 64, - 37, - 80, - 83, - 65, - 5, - 178 - ] - }, - { - "55059637": [ - 182, - 8, - 255, - 128, - 64, - 40, - 76, - 128, - 64, - 37, - 80, - 83, - 65, - 6, - 179 - ] - }, - { - "55059653": [ - 182, - 9, - 255, - 128, - 64, - 40, - 76, - 128, - 64, - 37, - 80, - 83, - 65, - 7, - 182 - ] - }, - { - "55059669": [ - 182, - 10, - 255, - 128, - 64, - 40, - 76, - 128, - 64, - 37, - 80, - 83, - 65, - 8, - 183 - ] - }, - { - "55059685": [ - 182, - 11, - 255, - 128, - 64, - 40, - 76, - 128, - 64, - 37, - 80, - 83, - 65, - 4, - 184 - ] - }, - { - "55059701": [ - 182, - 12, - 255, - 128, - 64, - 40, - 76, - 128, - 64, - 37, - 80, - 83, - 65, - 6, - 185 - ] - }, - { - "55059717": [ - 182, - 13, - 255, - 128, - 64, - 40, - 76, - 128, - 64, - 37, - 80, - 83, - 65, - 3, - 186 - ] - }, - { - "55059733": [ - 182, - 14, - 255, - 128, - 64, - 40, - 76, - 128, - 64, - 37, - 80, - 83, - 65, - 8, - 187 - ] - }, - { - "55059749": [ - 182, - 15, - 255, - 128, - 64, - 40, - 76, - 128, - 64, - 37, - 80, - 83, - 65, - 5, - 188 - ] - }, - { - "55059765": [ - 182, - 16, - 255, - 128, - 64, - 40, - 76, - 128, - 64, - 37, - 80, - 83, - 65, - 7, - 189 - ] - }, - { - "55059781": [ - 182, - 17, - 255, - 128, - 64, - 40, - 76, - 128, - 64, - 37, - 80, - 3, - 224 - ] - }, - { - "55059795": [ - 8, - 52, - 162 - ] - }, - { - "55059800": [ - 144, - 136 - ] - }, - { - "55059803": [ - 125, - 52, - 1 - ] - }, - { - "55059807": [ - 255, - 17, - 1 - ] - }, - { - "55059811": [ - 2, - 52, - 2 - ] - }, - { - "55059815": [ - 8, - 52, - 2 - ] - }, - { - "55059819": [ - 9, - 3, - 224 - ] - }, - { - "55059823": [ - 8 - ] - }, - { - "55059828": [ - 144, - 136 - ] - }, - { - "55059831": [ - 163, - 49, - 8 - ] - }, - { - "55059835": [ - 192, - 17 - ] - }, - { - "55059839": [ - 5, - 52, - 2 - ] - }, - { - "55059843": [ - 84, - 52, - 1 - ] - }, - { - "55059847": [ - 64, - 17, - 1 - ] - }, - { - "55059851": [ - 2, - 52, - 2 - ] - }, - { - "55059855": [ - 53, - 52, - 2 - ] - }, - { - "55059859": [ - 54, - 3, - 224 - ] - }, - { - "55059863": [ - 8 - ] - }, - { - "55059868": [ - 144, - 136 - ] - }, - { - "55059871": [ - 163, - 49, - 8 - ] - }, - { - "55059875": [ - 24, - 17 - ] - }, - { - "55059879": [ - 5, - 52, - 2 - ] - }, - { - "55059883": [ - 50, - 52, - 1 - ] - }, - { - "55059887": [ - 8, - 17, - 1 - ] - }, - { - "55059891": [ - 2, - 52, - 2 - ] - }, - { - "55059895": [ - 51, - 52, - 2 - ] - }, - { - "55059899": [ - 52, - 3, - 224 - ] - }, - { - "55059903": [ - 8 - ] - }, - { - "55059908": [ - 144, - 136 - ] - }, - { - "55059911": [ - 163, - 49, - 8 - ] - }, - { - "55059915": [ - 3, - 17 - ] - }, - { - "55059919": [ - 5, - 52, - 2 - ] - }, - { - "55059923": [ - 4, - 52, - 1 - ] - }, - { - "55059927": [ - 1, - 17, - 1 - ] - }, - { - "55059931": [ - 2, - 52, - 2 - ] - }, - { - "55059935": [ - 48, - 52, - 2 - ] - }, - { - "55059939": [ - 49, - 3, - 224 - ] - }, - { - "55059943": [ - 8 - ] - }, - { - "55059948": [ - 144, - 136 - ] - }, - { - "55059951": [ - 162, - 49, - 8 - ] - }, - { - "55059955": [ - 192, - 17 - ] - }, - { - "55059959": [ - 5, - 52, - 2 - ] - }, - { - "55059963": [ - 5, - 52, - 1 - ] - }, - { - "55059967": [ - 64, - 17, - 1 - ] - }, - { - "55059971": [ - 2, - 52, - 2 - ] - }, - { - "55059975": [ - 96, - 52, - 2 - ] - }, - { - "55059979": [ - 123, - 3, - 224 - ] - }, - { - "55059983": [ - 8 - ] - }, - { - "55059988": [ - 144, - 136 - ] - }, - { - "55059991": [ - 162, - 49, - 8 - ] - }, - { - "55059995": [ - 48, - 17 - ] - }, - { - "55059999": [ - 5, - 52, - 2 - ] - }, - { - "55060003": [ - 69, - 52, - 9 - ] - }, - { - "55060007": [ - 16, - 17, - 9 - ] - }, - { - "55060011": [ - 2, - 52, - 2 - ] - }, - { - "55060015": [ - 70, - 52, - 162 - ] - }, - { - "55060020": [ - 3, - 224 - ] - }, - { - "55060023": [ - 8 - ] - }, - { - "55060028": [ - 144, - 136 - ] - }, - { - "55060031": [ - 162, - 53, - 8 - ] - }, - { - "55060035": [ - 48, - 160, - 136 - ] - }, - { - "55060039": [ - 162, - 3, - 224 - ] - }, - { - "55060043": [ - 8 - ] - }, - { - "55060048": [ - 144, - 136 - ] - }, - { - "55060051": [ - 162, - 49, - 8 - ] - }, - { - "55060055": [ - 6, - 17 - ] - }, - { - "55060059": [ - 2, - 52, - 2 - ] - }, - { - "55060063": [ - 55, - 52, - 2 - ] - }, - { - "55060067": [ - 56, - 3, - 224 - ] - }, - { - "55060071": [ - 8 - ] - }, - { - "55060076": [ - 144, - 136 - ] - }, - { - "55060079": [ - 161, - 49, - 8 - ] - }, - { - "55060083": [ - 32, - 17 - ] - }, - { - "55060087": [ - 2, - 52, - 2 - ] - }, - { - "55060091": [ - 121, - 52, - 2 - ] - }, - { - "55060095": [ - 122, - 3, - 224 - ] - }, - { - "55060099": [ - 8 - ] - }, - { - "55060104": [ - 144, - 136 - ] - }, - { - "55060107": [ - 161, - 49, - 8 - ] - }, - { - "55060111": [ - 4, - 17 - ] - }, - { - "55060115": [ - 2, - 52, - 2 - ] - }, - { - "55060119": [ - 119, - 52, - 2 - ] - }, - { - "55060123": [ - 120, - 3, - 224 - ] - }, - { - "55060127": [ - 8 - ] - }, - { - "55060132": [ - 144, - 136 - ] - }, - { - "55060135": [ - 50, - 17 - ] - }, - { - "55060139": [ - 2, - 52, - 2 - ] - }, - { - "55060143": [ - 192, - 52, - 2 - ] - }, - { - "55060147": [ - 193, - 3, - 224 - ] - }, - { - "55060151": [ - 8 - ] - }, - { - "55060156": [ - 144, - 136 - ] - }, - { - "55060159": [ - 163, - 49, - 8 - ] - }, - { - "55060163": [ - 3, - 17 - ] - }, - { - "55060167": [ - 2, - 52, - 2 - ] - }, - { - "55060171": [ - 77, - 52, - 162 - ] - }, - { - "55060176": [ - 3, - 224 - ] - }, - { - "55060179": [ - 8 - ] - }, - { - "55060184": [ - 144, - 136 - ] - }, - { - "55060187": [ - 163, - 49, - 8 - ] - }, - { - "55060191": [ - 24, - 17 - ] - }, - { - "55060195": [ - 2, - 52, - 2 - ] - }, - { - "55060199": [ - 77, - 52, - 162 - ] - }, - { - "55060204": [ - 3, - 224 - ] - }, - { - "55060207": [ - 8 - ] - }, - { - "55060212": [ - 3, - 224 - ] - }, - { - "55060215": [ - 8 - ] - }, - { - "55060220": [ - 52, - 8 - ] - }, - { - "55060223": [ - 1, - 160, - 136 - ] - }, - { - "55060227": [ - 62, - 3, - 224 - ] - }, - { - "55060231": [ - 8 - ] - }, - { - "55060236": [ - 36, - 136 - ] - }, - { - "55060239": [ - 134, - 36, - 9, - 255, - 255, - 37, - 41 - ] - }, - { - "55060247": [ - 1, - 52, - 1 - ] - }, - { - "55060251": [ - 3 - ] - }, - { - "55060253": [ - 41, - 8, - 42, - 20, - 32 - ] - }, - { - "55060259": [ - 7 - ] - }, - { - "55060264": [ - 1, - 9, - 80, - 33, - 145, - 75 - ] - }, - { - "55060272": [ - 52, - 1 - ] - }, - { - "55060275": [ - 255, - 21, - 97, - 255, - 247 - ] - }, - { - "55060284": [ - 161, - 69 - ] - }, - { - "55060288": [ - 3, - 224 - ] - }, - { - "55060291": [ - 8 - ] - }, - { - "55060296": [ - 36, - 136 - ] - }, - { - "55060299": [ - 168, - 1, - 6, - 64, - 33, - 145, - 9 - ] - }, - { - "55060308": [ - 1, - 37, - 72, - 37, - 161, - 9 - ] - }, - { - "55060316": [ - 3, - 224 - ] - }, - { - "55060319": [ - 8 - ] - }, - { - "55060324": [ - 36, - 136 - ] - }, - { - "55060327": [ - 188, - 1, - 5, - 64, - 33, - 129, - 9 - ] - }, - { - "55060336": [ - 5, - 33 - ] - }, - { - "55060339": [ - 2 - ] - }, - { - "55060344": [ - 52, - 9 - ] - }, - { - "55060348": [ - 37, - 41 - ] - }, - { - "55060351": [ - 1, - 161, - 9 - ] - }, - { - "55060356": [ - 3, - 224 - ] - }, - { - "55060359": [ - 8 - ] - }, - { - "55060364": [ - 52, - 8 - ] - }, - { - "55060367": [ - 1, - 160, - 136 - ] - }, - { - "55060371": [ - 61, - 52, - 8 - ] - }, - { - "55060375": [ - 20, - 160, - 136 - ] - }, - { - "55060379": [ - 207, - 52, - 8, - 1, - 64, - 164, - 136, - 20, - 36, - 3, - 224 - ] - }, - { - "55060391": [ - 8 - ] - }, - { - "55060396": [ - 52, - 8 - ] - }, - { - "55060399": [ - 1, - 160, - 136 - ] - }, - { - "55060403": [ - 50, - 160, - 136 - ] - }, - { - "55060407": [ - 58, - 52, - 8 - ] - }, - { - "55060411": [ - 48, - 164, - 136, - 19, - 244, - 160, - 136 - ] - }, - { - "55060419": [ - 51, - 3, - 224 - ] - }, - { - "55060423": [ - 8 - ] - }, - { - "55060428": [ - 52, - 8 - ] - }, - { - "55060431": [ - 2, - 160, - 136 - ] - }, - { - "55060435": [ - 50, - 52, - 8 - ] - }, - { - "55060439": [ - 1, - 160, - 136 - ] - }, - { - "55060443": [ - 58, - 160, - 136 - ] - }, - { - "55060447": [ - 60, - 52, - 8 - ] - }, - { - "55060451": [ - 96, - 164, - 136, - 19, - 244, - 160, - 136 - ] - }, - { - "55060459": [ - 51, - 3, - 224 - ] - }, - { - "55060463": [ - 8 - ] - }, - { - "55060468": [ - 144, - 136 - ] - }, - { - "55060471": [ - 124, - 52, - 1 - ] - }, - { - "55060475": [ - 255, - 17, - 1 - ] - }, - { - "55060479": [ - 6, - 52, - 2 - ] - }, - { - "55060483": [ - 107, - 144, - 136 - ] - }, - { - "55060487": [ - 148, - 45, - 8 - ] - }, - { - "55060491": [ - 6, - 17 - ] - }, - { - "55060495": [ - 2, - 52, - 2 - ] - }, - { - "55060499": [ - 106, - 52, - 2 - ] - }, - { - "55060503": [ - 3, - 3, - 224 - ] - }, - { - "55060507": [ - 8 - ] - }, - { - "55060512": [ - 144, - 136 - ] - }, - { - "55060515": [ - 123, - 52, - 1 - ] - }, - { - "55060519": [ - 255, - 17, - 1 - ] - }, - { - "55060523": [ - 2, - 52, - 162 - ] - }, - { - "55060528": [ - 52, - 2 - ] - }, - { - "55060531": [ - 12, - 3, - 224 - ] - }, - { - "55060535": [ - 8 - ] - }, - { - "55060540": [ - 52, - 8 - ] - }, - { - "55060543": [ - 7, - 160, - 136 - ] - }, - { - "55060547": [ - 123, - 3, - 224 - ] - }, - { - "55060551": [ - 8 - ] - }, - { - "55060556": [ - 52, - 8 - ] - }, - { - "55060559": [ - 1 - ] - }, - { - "55060561": [ - 168, - 64, - 4, - 140, - 137 - ] - }, - { - "55060567": [ - 164, - 1, - 40, - 72, - 37, - 172, - 137 - ] - }, - { - "55060575": [ - 164, - 3, - 224 - ] - }, - { - "55060579": [ - 8 - ] - }, - { - "55060584": [ - 48, - 132 - ] - }, - { - "55060587": [ - 255, - 60, - 8, - 128, - 18, - 37, - 8, - 165, - 208, - 52, - 1 - ] - }, - { - "55060599": [ - 140, - 16, - 129 - ] - }, - { - "55060603": [ - 22, - 145, - 2 - ] - }, - { - "55060607": [ - 117, - 52, - 1 - ] - }, - { - "55060611": [ - 141, - 16, - 129 - ] - }, - { - "55060615": [ - 19, - 145, - 2 - ] - }, - { - "55060619": [ - 117, - 16, - 128 - ] - }, - { - "55060623": [ - 17, - 145, - 2 - ] - }, - { - "55060627": [ - 116, - 52, - 1 - ] - }, - { - "55060631": [ - 138, - 16, - 129 - ] - }, - { - "55060635": [ - 14, - 145, - 2 - ] - }, - { - "55060639": [ - 116, - 52, - 1 - ] - }, - { - "55060643": [ - 139, - 16, - 129 - ] - }, - { - "55060647": [ - 11, - 145, - 2 - ] - }, - { - "55060651": [ - 116, - 52, - 1 - ] - }, - { - "55060655": [ - 88, - 16, - 129 - ] - }, - { - "55060659": [ - 8, - 52, - 2 - ] - }, - { - "55060664": [ - 52, - 1 - ] - }, - { - "55060667": [ - 120, - 16, - 129 - ] - }, - { - "55060671": [ - 5, - 52, - 2 - ] - }, - { - "55060676": [ - 52, - 1 - ] - }, - { - "55060679": [ - 121, - 16, - 129 - ] - }, - { - "55060683": [ - 2, - 52, - 2 - ] - }, - { - "55060688": [ - 52, - 2 - ] - }, - { - "55060691": [ - 255, - 3, - 224 - ] - }, - { - "55060695": [ - 8 - ] - }, - { - "55060700": [ - 39, - 189, - 255, - 224, - 175, - 191 - ] - }, - { - "55060707": [ - 16, - 175, - 176 - ] - }, - { - "55060711": [ - 20, - 12, - 16, - 11, - 19 - ] - }, - { - "55060720": [ - 4, - 65 - ] - }, - { - "55060723": [ - 2 - ] - }, - { - "55060728": [ - 52, - 2 - ] - }, - { - "55060731": [ - 91 - ] - }, - { - "55060733": [ - 64, - 32, - 33, - 12, - 16, - 11, - 132 - ] - }, - { - "55060744": [ - 16, - 96 - ] - }, - { - "55060747": [ - 22, - 175, - 163 - ] - }, - { - "55060751": [ - 28, - 60, - 8, - 128, - 64, - 37, - 8, - 32 - ] - }, - { - "55060760": [ - 133, - 9 - ] - }, - { - "55060763": [ - 2, - 17, - 32 - ] - }, - { - "55060767": [ - 3, - 52, - 10 - ] - }, - { - "55060771": [ - 1, - 16 - ] - }, - { - "55060775": [ - 12, - 165, - 10 - ] - }, - { - "55060780": [ - 60, - 4, - 128, - 18, - 36, - 132, - 165, - 208, - 144, - 101 - ] - }, - { - "55060791": [ - 6, - 144, - 102 - ] - }, - { - "55060795": [ - 7, - 140, - 105 - ] - }, - { - "55060799": [ - 8, - 1, - 32, - 248, - 9 - ] - }, - { - "55060808": [ - 143, - 163 - ] - }, - { - "55060811": [ - 28, - 144, - 101 - ] - }, - { - "55060815": [ - 1, - 12, - 1, - 191, - 115, - 2, - 32, - 32, - 33, - 143, - 163 - ] - }, - { - "55060827": [ - 28, - 144, - 101 - ] - }, - { - "55060831": [ - 3, - 16 - ] - }, - { - "55060835": [ - 17, - 60, - 9, - 128, - 59, - 37, - 41, - 158, - 126, - 52, - 10 - ] - }, - { - "55060847": [ - 6 - ] - }, - { - "55060849": [ - 74 - ] - }, - { - "55060851": [ - 24 - ] - }, - { - "55060854": [ - 80, - 18, - 1, - 42, - 128, - 33, - 130, - 5 - ] - }, - { - "55060864": [ - 60, - 8, - 128, - 64, - 37, - 8, - 32 - ] - }, - { - "55060872": [ - 133, - 9 - ] - }, - { - "55060875": [ - 2, - 17, - 32 - ] - }, - { - "55060879": [ - 3, - 52, - 10 - ] - }, - { - "55060883": [ - 1, - 165, - 10 - ] - }, - { - "55060888": [ - 52, - 5 - ] - }, - { - "55060891": [ - 65, - 12, - 1, - 191, - 115, - 2, - 32, - 32, - 33, - 146, - 5 - ] - }, - { - "55060903": [ - 3, - 2, - 32, - 32, - 33, - 12, - 3, - 115, - 133 - ] - }, - { - "55060914": [ - 48, - 33, - 143, - 191 - ] - }, - { - "55060919": [ - 16, - 143, - 176 - ] - }, - { - "55060923": [ - 20, - 39, - 189 - ] - }, - { - "55060927": [ - 32, - 3, - 224 - ] - }, - { - "55060931": [ - 8 - ] - }, - { - "55060936": [ - 143, - 166 - ] - }, - { - "55060939": [ - 48, - 132, - 197 - ] - }, - { - "55060943": [ - 4, - 8, - 16, - 10, - 122 - ] - }, - { - "55060952": [ - 143, - 185 - ] - }, - { - "55060955": [ - 44, - 135, - 37 - ] - }, - { - "55060959": [ - 4, - 8, - 16, - 10, - 122 - ] - }, - { - "55060968": [ - 60, - 10, - 128, - 64, - 37, - 74, - 32, - 8, - 141, - 75 - ] - }, - { - "55060979": [ - 12, - 17, - 96 - ] - }, - { - "55060983": [ - 2 - ] - }, - { - "55060988": [ - 149, - 69 - ] - }, - { - "55060991": [ - 4, - 60, - 10, - 128, - 30, - 37, - 74, - 137, - 132, - 165, - 64 - ] - }, - { - "55061004": [ - 60, - 9, - 128, - 64, - 37, - 41, - 32, - 24, - 129, - 42 - ] - }, - { - "55061015": [ - 3, - 5, - 64 - ] - }, - { - "55061019": [ - 11, - 1, - 42, - 72, - 32, - 129, - 40 - ] - }, - { - "55061028": [ - 52, - 10 - ] - }, - { - "55061031": [ - 127, - 21, - 10 - ] - }, - { - "55061035": [ - 6 - ] - }, - { - "55061040": [ - 60, - 10, - 128, - 18, - 37, - 74, - 165, - 208, - 133, - 72 - ] - }, - { - "55061051": [ - 144, - 33, - 8 - ] - }, - { - "55061055": [ - 1, - 165, - 72 - ] - }, - { - "55061059": [ - 144, - 161, - 32 - ] - }, - { - "55061064": [ - 3, - 224 - ] - }, - { - "55061067": [ - 8 - ] - }, - { - "55061072": [ - 60, - 8, - 128, - 64, - 37, - 8, - 32, - 8, - 141, - 9 - ] - }, - { - "55061083": [ - 12, - 17, - 32 - ] - }, - { - "55061087": [ - 2 - ] - }, - { - "55061092": [ - 129, - 3 - ] - }, - { - "55061095": [ - 2 - ] - }, - { - "55061097": [ - 3, - 15, - 195 - ] - }, - { - "55061101": [ - 97, - 64, - 38, - 1, - 1, - 64, - 35, - 160, - 136, - 8, - 82, - 3, - 224 - ] - }, - { - "55061115": [ - 8 - ] - }, - { - "55061120": [ - 144, - 69 - ] - }, - { - "55061123": [ - 3, - 60, - 8, - 128, - 64, - 37, - 8, - 32, - 8, - 141, - 9 - ] - }, - { - "55061135": [ - 12, - 17, - 32 - ] - }, - { - "55061139": [ - 2 - ] - }, - { - "55061144": [ - 145, - 5 - ] - }, - { - "55061147": [ - 3, - 3, - 224 - ] - }, - { - "55061151": [ - 8 - ] - }, - { - "55061156": [ - 143, - 162 - ] - }, - { - "55061159": [ - 36, - 144, - 69 - ] - }, - { - "55061164": [ - 60, - 8, - 128, - 64, - 37, - 8, - 32 - ] - }, - { - "55061172": [ - 133, - 9 - ] - }, - { - "55061175": [ - 2, - 17, - 32 - ] - }, - { - "55061179": [ - 4, - 52, - 10 - ] - }, - { - "55061183": [ - 1, - 165, - 10 - ] - }, - { - "55061188": [ - 16 - ] - }, - { - "55061191": [ - 24, - 52, - 5 - ] - }, - { - "55061195": [ - 65, - 60, - 8, - 128, - 64, - 37, - 8, - 32, - 8, - 141, - 9 - ] - }, - { - "55061207": [ - 12, - 17, - 32 - ] - }, - { - "55061211": [ - 19 - ] - }, - { - "55061216": [ - 145, - 5 - ] - }, - { - "55061219": [ - 1, - 175, - 164 - ] - }, - { - "55061224": [ - 175, - 165 - ] - }, - { - "55061227": [ - 4, - 175, - 166 - ] - }, - { - "55061231": [ - 8, - 39, - 189, - 255, - 232, - 175, - 191 - ] - }, - { - "55061239": [ - 16, - 60, - 4, - 128, - 18, - 36, - 132, - 165, - 208, - 145, - 5 - ] - }, - { - "55061251": [ - 6, - 145, - 6 - ] - }, - { - "55061255": [ - 7, - 141, - 9 - ] - }, - { - "55061259": [ - 8, - 1, - 32, - 248, - 9 - ] - }, - { - "55061268": [ - 143, - 191 - ] - }, - { - "55061271": [ - 16, - 39, - 189 - ] - }, - { - "55061275": [ - 24, - 143, - 164 - ] - }, - { - "55061280": [ - 143, - 165 - ] - }, - { - "55061283": [ - 4, - 143, - 166 - ] - }, - { - "55061287": [ - 8, - 3, - 224 - ] - }, - { - "55061291": [ - 8 - ] - }, - { - "55061296": [ - 160, - 230, - 4, - 36, - 39, - 189, - 255, - 224, - 175, - 162 - ] - }, - { - "55061307": [ - 16, - 175, - 163 - ] - }, - { - "55061311": [ - 20, - 175, - 191 - ] - }, - { - "55061315": [ - 24, - 12, - 16, - 10, - 217 - ] - }, - { - "55061324": [ - 143, - 162 - ] - }, - { - "55061327": [ - 16, - 143, - 163 - ] - }, - { - "55061331": [ - 20, - 143, - 191 - ] - }, - { - "55061335": [ - 24, - 39, - 189 - ] - }, - { - "55061339": [ - 32, - 3, - 224 - ] - }, - { - "55061343": [ - 8 - ] - }, - { - "55061348": [ - 39, - 189, - 255, - 232, - 175, - 191 - ] - }, - { - "55061355": [ - 16, - 60, - 8, - 128, - 64, - 37, - 8, - 32, - 8, - 173 - ] - }, - { - "55061368": [ - 173 - ] - }, - { - "55061371": [ - 4, - 173 - ] - }, - { - "55061375": [ - 8, - 173 - ] - }, - { - "55061379": [ - 12, - 60, - 8, - 128, - 30, - 37, - 8, - 170, - 48, - 129, - 9, - 4, - 36, - 17, - 32 - ] - }, - { - "55061395": [ - 42 - ] - }, - { - "55061401": [ - 9, - 15, - 195, - 1, - 33, - 32, - 38 - ] - }, - { - "55061409": [ - 129, - 32, - 35, - 141, - 5, - 4, - 40, - 12, - 16, - 11, - 19 - ] - }, - { - "55061424": [ - 4, - 64 - ] - }, - { - "55061427": [ - 34 - ] - }, - { - "55061432": [ - 52, - 68 - ] - }, - { - "55061436": [ - 12, - 16, - 11, - 132 - ] - }, - { - "55061444": [ - 16, - 96 - ] - }, - { - "55061447": [ - 12 - ] - }, - { - "55061452": [ - 60, - 8, - 128, - 64, - 37, - 8, - 32, - 8, - 140, - 105 - ] - }, - { - "55061464": [ - 173, - 9 - ] - }, - { - "55061468": [ - 140, - 105 - ] - }, - { - "55061471": [ - 4, - 173, - 9 - ] - }, - { - "55061475": [ - 4, - 140, - 105 - ] - }, - { - "55061479": [ - 8, - 173, - 9 - ] - }, - { - "55061483": [ - 8, - 52, - 9 - ] - }, - { - "55061487": [ - 1, - 173, - 9 - ] - }, - { - "55061491": [ - 12, - 144, - 98 - ] - }, - { - "55061496": [ - 60, - 8, - 128, - 30, - 37, - 8, - 170, - 48, - 141, - 9, - 4, - 40, - 149, - 42 - ] - }, - { - "55061512": [ - 52, - 1 - ] - }, - { - "55061515": [ - 10, - 21, - 65 - ] - }, - { - "55061519": [ - 6 - ] - }, - { - "55061524": [ - 149, - 42 - ] - }, - { - "55061527": [ - 28, - 49, - 74, - 240, - 31 - ] - }, - { - "55061533": [ - 2, - 89, - 64, - 1, - 75, - 80, - 37, - 165, - 42 - ] - }, - { - "55061543": [ - 28, - 129, - 9, - 4, - 36, - 5, - 33 - ] - }, - { - "55061551": [ - 2 - ] - }, - { - "55061557": [ - 2, - 16, - 35, - 161, - 2, - 4, - 36, - 143, - 191 - ] - }, - { - "55061567": [ - 16, - 39, - 189 - ] - }, - { - "55061571": [ - 24, - 3, - 224 - ] - }, - { - "55061575": [ - 8 - ] - }, - { - "55061580": [ - 39, - 189, - 255, - 232, - 175, - 191 - ] - }, - { - "55061587": [ - 16, - 12, - 16, - 11, - 33 - ] - }, - { - "55061596": [ - 36, - 1, - 255, - 255, - 16, - 65 - ] - }, - { - "55061603": [ - 4 - ] - }, - { - "55061608": [ - 52, - 68 - ] - }, - { - "55061612": [ - 12, - 16, - 11, - 95 - ] - }, - { - "55061620": [ - 143, - 191 - ] - }, - { - "55061623": [ - 16, - 39, - 189 - ] - }, - { - "55061627": [ - 24, - 3, - 224 - ] - }, - { - "55061631": [ - 8 - ] - }, - { - "55061636": [ - 60, - 2, - 128, - 29, - 36, - 66, - 132, - 160, - 148, - 66 - ] - }, - { - "55061647": [ - 164, - 52, - 8 - ] - }, - { - "55061652": [ - 52, - 137 - ] - }, - { - "55061656": [ - 148, - 170 - ] - }, - { - "55061660": [ - 52, - 1, - 1, - 156, - 21, - 65 - ] - }, - { - "55061667": [ - 8 - ] - }, - { - "55061672": [ - 52, - 8 - ] - }, - { - "55061675": [ - 3, - 148, - 171 - ] - }, - { - "55061679": [ - 28, - 49, - 105 - ] - }, - { - "55061683": [ - 255, - 49, - 98, - 31 - ] - }, - { - "55061689": [ - 2, - 18, - 2, - 16 - ] - }, - { - "55061695": [ - 31 - ] - }, - { - "55061700": [ - 52, - 1 - ] - }, - { - "55061703": [ - 10, - 21, - 65 - ] - }, - { - "55061707": [ - 14 - ] - }, - { - "55061712": [ - 148, - 171 - ] - }, - { - "55061715": [ - 28, - 52, - 1 - ] - }, - { - "55061719": [ - 16, - 20, - 65 - ] - }, - { - "55061723": [ - 8 - ] - }, - { - "55061728": [ - 49, - 108, - 15, - 224, - 52, - 1, - 14, - 160, - 21, - 129 - ] - }, - { - "55061739": [ - 4 - ] - }, - { - "55061744": [ - 36, - 2, - 255, - 255, - 16 - ] - }, - { - "55061751": [ - 31 - ] - }, - { - "55061756": [ - 52, - 8 - ] - }, - { - "55061759": [ - 1, - 49, - 105 - ] - }, - { - "55061763": [ - 31, - 52, - 1 - ] - }, - { - "55061767": [ - 21, - 21, - 65 - ] - }, - { - "55061771": [ - 12 - ] - }, - { - "55061776": [ - 52, - 1 - ] - }, - { - "55061779": [ - 62, - 16, - 129 - ] - }, - { - "55061783": [ - 7 - ] - }, - { - "55061788": [ - 52, - 1 - ] - }, - { - "55061791": [ - 66, - 16, - 129 - ] - }, - { - "55061795": [ - 4 - ] - }, - { - "55061800": [ - 36, - 2, - 255, - 255, - 16 - ] - }, - { - "55061807": [ - 17 - ] - }, - { - "55061812": [ - 52, - 8 - ] - }, - { - "55061815": [ - 2, - 144, - 169, - 1, - 65, - 52, - 1, - 1, - 26, - 21, - 65 - ] - }, - { - "55061827": [ - 8 - ] - }, - { - "55061832": [ - 52, - 1 - ] - }, - { - "55061835": [ - 62, - 20, - 65 - ] - }, - { - "55061839": [ - 5 - ] - }, - { - "55061844": [ - 52, - 8 - ] - }, - { - "55061847": [ - 4, - 60, - 11, - 128, - 18, - 37, - 107, - 165, - 208, - 129, - 98, - 19, - 151 - ] - }, - { - "55061861": [ - 2, - 18 - ] - }, - { - "55061865": [ - 72, - 16, - 37 - ] - }, - { - "55061869": [ - 2, - 18 - ] - }, - { - "55061873": [ - 73, - 16, - 37, - 3, - 224 - ] - }, - { - "55061879": [ - 8 - ] - }, - { - "55061884": [ - 36, - 2, - 255, - 255, - 60, - 8, - 128, - 64, - 37, - 8, - 28 - ] - }, - { - "55061896": [ - 129, - 9 - ] - }, - { - "55061900": [ - 60, - 8, - 128, - 18, - 37, - 8, - 165, - 208, - 165, - 9, - 20, - 6, - 60, - 8, - 128, - 64, - 37, - 8, - 15, - 252, - 37, - 8 - ] - }, - { - "55061923": [ - 4, - 141, - 9 - ] - }, - { - "55061928": [ - 17, - 32 - ] - }, - { - "55061931": [ - 23 - ] - }, - { - "55061937": [ - 9, - 82, - 2, - 49, - 75, - 248 - ] - }, - { - "55061945": [ - 11, - 90, - 194, - 60, - 12, - 255, - 255, - 53, - 140, - 7, - 255, - 1, - 76, - 80, - 36, - 21, - 68, - 255, - 245 - ] - }, - { - "55061968": [ - 49, - 34 - ] - }, - { - "55061971": [ - 255, - 60, - 8, - 128, - 18, - 37, - 8, - 165, - 208, - 165, - 11, - 20, - 6, - 60, - 9, - 128, - 64, - 37, - 41, - 32 - ] - }, - { - "55061992": [ - 60, - 12, - 128, - 64, - 37, - 140, - 28 - ] - }, - { - "55062000": [ - 129, - 140 - ] - }, - { - "55062004": [ - 17, - 108 - ] - }, - { - "55062007": [ - 4, - 165, - 32 - ] - }, - { - "55062011": [ - 2, - 161, - 43 - ] - }, - { - "55062015": [ - 2, - 161, - 34 - ] - }, - { - "55062019": [ - 3, - 173, - 36 - ] - }, - { - "55062023": [ - 4, - 3, - 224 - ] - }, - { - "55062027": [ - 8 - ] - }, - { - "55062032": [ - 39, - 189, - 255, - 224, - 175, - 176 - ] - }, - { - "55062039": [ - 16, - 175, - 177 - ] - }, - { - "55062043": [ - 20, - 175, - 191 - ] - }, - { - "55062047": [ - 24, - 52, - 130 - ] - }, - { - "55062052": [ - 52, - 80 - ] - }, - { - "55062056": [ - 38, - 8, - 255, - 128, - 5 - ] - }, - { - "55062063": [ - 18 - ] - }, - { - "55062068": [ - 60, - 17, - 128, - 64, - 38, - 49, - 32, - 80, - 52, - 9 - ] - }, - { - "55062079": [ - 16, - 1, - 9 - ] - }, - { - "55062083": [ - 24 - ] - }, - { - "55062086": [ - 64, - 18, - 2, - 40, - 136, - 33, - 60, - 4, - 128, - 18, - 36, - 132, - 165, - 208, - 54, - 5 - ] - }, - { - "55062104": [ - 142, - 40 - ] - }, - { - "55062107": [ - 12, - 1 - ] - }, - { - "55062110": [ - 248, - 9 - ] - }, - { - "55062116": [ - 20, - 80, - 255, - 239 - ] - }, - { - "55062124": [ - 54, - 35 - ] - }, - { - "55062128": [ - 16 - ] - }, - { - "55062131": [ - 2 - ] - }, - { - "55062136": [ - 52, - 3 - ] - }, - { - "55062140": [ - 143, - 176 - ] - }, - { - "55062143": [ - 16, - 143, - 177 - ] - }, - { - "55062147": [ - 20, - 143, - 191 - ] - }, - { - "55062151": [ - 24, - 39, - 189 - ] - }, - { - "55062155": [ - 32, - 3, - 224 - ] - }, - { - "55062159": [ - 8 - ] - }, - { - "55062164": [ - 140, - 136, - 29, - 44, - 52, - 9 - ] - }, - { - "55062171": [ - 1 - ] - }, - { - "55062173": [ - 9, - 78 - ] - }, - { - "55062176": [ - 1, - 9, - 16, - 36, - 16, - 64 - ] - }, - { - "55062183": [ - 36 - ] - }, - { - "55062188": [ - 148, - 202, - 2, - 220, - 60, - 11, - 128, - 18, - 37, - 107, - 165, - 208, - 148, - 140 - ] - }, - { - "55062203": [ - 164, - 52, - 1 - ] - }, - { - "55062207": [ - 61, - 17, - 129 - ] - }, - { - "55062211": [ - 10 - ] - }, - { - "55062217": [ - 138, - 96, - 33, - 145, - 141, - 29, - 40, - 21, - 160 - ] - }, - { - "55062227": [ - 25 - ] - }, - { - "55062232": [ - 52, - 13 - ] - }, - { - "55062235": [ - 1, - 161, - 141, - 29, - 40, - 37, - 74 - ] - }, - { - "55062243": [ - 3, - 16 - ] - }, - { - "55062247": [ - 9 - ] - }, - { - "55062252": [ - 52, - 12 - ] - }, - { - "55062255": [ - 1, - 1, - 76, - 96, - 4, - 145, - 109, - 14, - 242, - 1, - 172, - 112, - 36, - 21, - 192 - ] - }, - { - "55062271": [ - 14 - ] - }, - { - "55062276": [ - 1, - 172, - 112, - 37, - 161, - 110, - 14, - 242, - 1, - 41, - 72, - 39, - 1, - 9, - 64, - 36, - 172, - 136, - 29, - 44, - 60, - 8, - 128, - 64, - 37, - 8, - 28, - 3, - 1, - 10, - 64, - 33, - 129, - 8 - ] - }, - { - "55062312": [ - 60, - 9, - 128, - 64, - 37, - 41, - 32, - 24, - 161, - 40 - ] - }, - { - "55062324": [ - 52, - 2 - ] - }, - { - "55062328": [ - 3, - 224 - ] - }, - { - "55062331": [ - 8 - ] - }, - { - "55062336": [ - 60, - 8, - 128, - 64, - 37, - 8, - 28, - 1, - 129, - 8 - ] - }, - { - "55062348": [ - 16 - ] - }, - { - "55062351": [ - 34 - ] - }, - { - "55062356": [ - 60, - 8, - 128, - 64, - 37, - 8, - 28, - 2, - 129, - 8 - ] - }, - { - "55062368": [ - 16 - ] - }, - { - "55062371": [ - 29 - ] - }, - { - "55062376": [ - 52, - 2 - ] - }, - { - "55062379": [ - 255, - 32, - 232, - 255, - 166, - 33, - 8 - ] - }, - { - "55062387": [ - 97, - 16 - ] - }, - { - "55062391": [ - 24 - ] - }, - { - "55062396": [ - 52, - 8 - ] - }, - { - "55062399": [ - 100, - 16 - ] - }, - { - "55062403": [ - 21 - ] - }, - { - "55062408": [ - 60, - 1, - 128, - 18, - 36, - 33, - 165, - 208, - 128, - 40, - 14, - 222, - 53, - 8 - ] - }, - { - "55062423": [ - 1, - 160, - 40, - 14, - 222, - 52, - 8 - ] - }, - { - "55062431": [ - 104, - 16 - ] - }, - { - "55062435": [ - 13 - ] - }, - { - "55062440": [ - 60, - 1, - 128, - 18, - 36, - 33, - 165, - 208, - 128, - 40, - 14, - 222, - 53, - 8 - ] - }, - { - "55062455": [ - 4, - 160, - 40, - 14, - 222, - 52, - 8 - ] - }, - { - "55062463": [ - 106, - 16 - ] - }, - { - "55062467": [ - 5 - ] - }, - { - "55062472": [ - 52, - 5 - ] - }, - { - "55062475": [ - 3, - 52, - 8 - ] - }, - { - "55062479": [ - 107, - 16 - ] - }, - { - "55062483": [ - 1 - ] - }, - { - "55062488": [ - 60, - 9, - 128, - 64, - 37, - 41, - 32, - 24, - 60, - 10, - 128, - 64, - 37, - 74, - 32, - 27, - 129, - 44 - ] - }, - { - "55062508": [ - 17, - 136 - ] - }, - { - "55062511": [ - 11, - 33, - 41 - ] - }, - { - "55062515": [ - 1, - 21, - 42, - 255, - 252 - ] - }, - { - "55062524": [ - 60, - 9, - 128, - 64, - 37, - 41, - 32, - 23, - 33, - 41 - ] - }, - { - "55062535": [ - 1, - 17, - 42 - ] - }, - { - "55062539": [ - 4, - 129, - 44 - ] - }, - { - "55062544": [ - 21, - 128, - 255, - 252 - ] - }, - { - "55062552": [ - 161, - 40 - ] - }, - { - "55062556": [ - 3, - 224 - ] - }, - { - "55062559": [ - 8 - ] - }, - { - "55062565": [ - 96, - 120, - 33, - 129, - 236, - 14, - 223, - 49, - 142 - ] - }, - { - "55062575": [ - 128, - 17, - 192 - ] - }, - { - "55062579": [ - 3, - 52, - 3 - ] - }, - { - "55062583": [ - 5, - 3, - 224 - ] - }, - { - "55062587": [ - 8, - 52, - 2 - ] - }, - { - "55062591": [ - 2, - 3, - 224 - ] - }, - { - "55062595": [ - 8 - ] - }, - { - "55062597": [ - 96, - 16, - 33, - 133, - 194 - ] - }, - { - "55062603": [ - 164, - 60, - 8, - 128, - 18, - 37, - 8, - 165, - 208, - 129, - 9, - 14, - 223, - 53, - 41 - ] - }, - { - "55062619": [ - 128, - 161, - 9, - 14, - 223, - 3, - 224 - ] - }, - { - "55062627": [ - 8 - ] - }, - { - "55062632": [ - 132, - 142 - ] - }, - { - "55062635": [ - 28, - 33, - 205, - 255, - 206, - 5, - 160 - ] - }, - { - "55062643": [ - 16, - 52, - 2 - ] - }, - { - "55062648": [ - 49, - 169 - ] - }, - { - "55062651": [ - 7, - 52, - 10 - ] - }, - { - "55062655": [ - 1, - 1, - 42, - 80, - 4 - ] - }, - { - "55062661": [ - 13, - 72, - 194, - 60, - 12, - 128, - 18, - 37, - 140, - 165, - 208, - 1, - 137, - 96, - 32, - 129, - 139, - 5, - 180, - 1, - 106, - 88, - 36, - 52, - 2 - ] - }, - { - "55062688": [ - 17, - 96 - ] - }, - { - "55062691": [ - 4 - ] - }, - { - "55062696": [ - 52, - 13 - ] - }, - { - "55062699": [ - 38, - 164, - 141 - ] - }, - { - "55062703": [ - 28, - 52, - 2 - ] - }, - { - "55062707": [ - 1, - 3, - 224 - ] - }, - { - "55062711": [ - 8 - ] - }, - { - "55062716": [ - 132, - 174 - ] - }, - { - "55062719": [ - 28, - 33, - 205, - 255, - 206, - 5, - 160 - ] - }, - { - "55062727": [ - 11, - 52, - 2 - ] - }, - { - "55062732": [ - 49, - 169 - ] - }, - { - "55062735": [ - 7, - 52, - 10 - ] - }, - { - "55062739": [ - 1, - 1, - 42, - 80, - 4 - ] - }, - { - "55062745": [ - 13, - 72, - 194, - 60, - 12, - 128, - 18, - 37, - 140, - 165, - 208, - 1, - 137, - 96, - 32, - 129, - 139, - 5, - 180, - 1, - 106, - 88, - 37, - 161, - 139, - 5, - 180, - 3, - 224 - ] - }, - { - "55062775": [ - 8 - ] - }, - { - "55062780": [ - 39, - 189, - 255, - 240, - 175, - 191 - ] - }, - { - "55062787": [ - 8, - 40, - 129 - ] - }, - { - "55062791": [ - 50, - 16, - 32 - ] - }, - { - "55062795": [ - 3 - ] - }, - { - "55062797": [ - 128, - 16, - 33, - 3, - 32, - 248, - 9 - ] - }, - { - "55062808": [ - 143, - 191 - ] - }, - { - "55062811": [ - 8, - 39, - 189 - ] - }, - { - "55062815": [ - 16, - 3, - 224 - ] - }, - { - "55062819": [ - 8 - ] - }, - { - "55062824": [ - 60, - 8, - 128, - 29, - 37, - 8, - 132, - 160, - 60, - 9, - 128, - 18, - 37, - 41, - 165, - 208, - 133, - 10 - ] - }, - { - "55062843": [ - 164, - 52, - 1 - ] - }, - { - "55062847": [ - 62, - 21, - 65 - ] - }, - { - "55062851": [ - 2, - 129, - 43, - 19, - 151, - 33, - 106 - ] - }, - { - "55062859": [ - 45, - 134, - 11 - ] - }, - { - "55062863": [ - 28, - 33, - 107 - ] - }, - { - "55062867": [ - 1, - 52, - 12 - ] - }, - { - "55062871": [ - 1, - 1, - 108, - 96, - 4, - 52, - 1 - ] - }, - { - "55062879": [ - 28, - 1, - 65 - ] - }, - { - "55062883": [ - 24 - ] - }, - { - "55062886": [ - 104, - 18, - 1, - 45, - 112, - 32, - 141, - 207 - ] - }, - { - "55062895": [ - 228, - 1, - 143, - 16, - 36, - 3, - 224 - ] - }, - { - "55062903": [ - 8 - ] - }, - { - "55062908": [ - 60, - 8, - 128, - 29, - 37, - 8, - 132, - 160, - 60, - 9, - 128, - 18, - 37, - 41, - 165, - 208, - 133, - 10 - ] - }, - { - "55062927": [ - 164, - 52, - 1 - ] - }, - { - "55062931": [ - 62, - 21, - 65 - ] - }, - { - "55062935": [ - 2, - 129, - 43, - 19, - 151, - 33, - 106 - ] - }, - { - "55062943": [ - 45, - 132, - 139 - ] - }, - { - "55062947": [ - 28, - 33, - 107 - ] - }, - { - "55062951": [ - 1, - 52, - 12 - ] - }, - { - "55062955": [ - 1, - 1, - 108, - 96, - 4, - 52, - 1 - ] - }, - { - "55062963": [ - 28, - 1, - 65 - ] - }, - { - "55062967": [ - 24 - ] - }, - { - "55062970": [ - 104, - 18, - 1, - 45, - 112, - 32, - 141, - 207 - ] - }, - { - "55062979": [ - 228, - 1, - 143, - 120, - 37, - 173, - 207 - ] - }, - { - "55062987": [ - 228, - 3, - 224 - ] - }, - { - "55062991": [ - 8 - ] - }, - { - "55062996": [ - 175, - 164 - ] - }, - { - "55062999": [ - 104, - 175, - 165 - ] - }, - { - "55063003": [ - 108, - 175, - 166 - ] - }, - { - "55063007": [ - 112, - 175, - 167 - ] - }, - { - "55063011": [ - 116, - 39, - 189, - 255, - 232, - 175, - 163 - ] - }, - { - "55063019": [ - 16, - 175, - 191 - ] - }, - { - "55063023": [ - 20, - 60, - 10, - 128, - 30, - 37, - 74, - 170, - 48, - 129, - 72, - 6, - 108, - 49, - 8 - ] - }, - { - "55063039": [ - 32, - 21 - ] - }, - { - "55063043": [ - 31 - ] - }, - { - "55063048": [ - 60, - 9, - 128, - 64, - 37, - 41, - 32, - 27, - 52, - 10 - ] - }, - { - "55063059": [ - 255, - 161, - 42 - ] - }, - { - "55063064": [ - 60, - 9, - 128, - 64, - 37, - 41, - 32, - 24, - 36, - 10, - 255, - 255, - 52, - 12 - ] - }, - { - "55063079": [ - 3, - 33, - 74 - ] - }, - { - "55063083": [ - 1, - 17, - 76 - ] - }, - { - "55063087": [ - 20, - 1, - 42, - 88, - 32, - 129, - 104 - ] - }, - { - "55063096": [ - 17 - ] - }, - { - "55063098": [ - 255, - 251 - ] - }, - { - "55063104": [ - 60, - 9, - 128, - 64, - 37, - 41, - 32, - 27, - 161, - 42 - ] - }, - { - "55063116": [ - 60, - 9, - 128, - 30, - 37, - 41, - 137, - 132, - 52, - 10 - ] - }, - { - "55063127": [ - 1, - 165, - 42 - ] - }, - { - "55063132": [ - 60, - 9, - 128, - 72, - 52, - 10 - ] - }, - { - "55063139": [ - 1, - 173, - 42, - 1, - 48, - 60, - 10, - 128, - 30, - 37, - 74, - 170, - 48, - 161, - 72, - 4, - 36, - 173, - 73, - 4, - 40, - 12, - 16, - 10, - 217 - ] - }, - { - "55063168": [ - 143, - 163 - ] - }, - { - "55063171": [ - 16, - 143, - 191 - ] - }, - { - "55063175": [ - 20, - 39, - 189 - ] - }, - { - "55063179": [ - 24, - 143, - 164 - ] - }, - { - "55063183": [ - 104, - 143, - 165 - ] - }, - { - "55063187": [ - 108, - 143, - 166 - ] - }, - { - "55063191": [ - 112, - 143, - 167 - ] - }, - { - "55063195": [ - 116, - 132, - 110, - 19, - 196, - 3, - 224 - ] - }, - { - "55063203": [ - 8 - ] - }, - { - "55063208": [ - 147, - 25 - ] - }, - { - "55063211": [ - 116, - 52, - 1 - ] - }, - { - "55063215": [ - 255, - 23, - 33 - ] - }, - { - "55063219": [ - 2 - ] - }, - { - "55063224": [ - 52, - 25 - ] - }, - { - "55063227": [ - 44, - 3, - 224 - ] - }, - { - "55063231": [ - 8, - 167, - 185 - ] - }, - { - "55063235": [ - 154, - 147, - 44 - ] - }, - { - "55063239": [ - 116, - 52, - 1 - ] - }, - { - "55063243": [ - 255, - 21, - 129 - ] - }, - { - "55063247": [ - 2 - ] - }, - { - "55063252": [ - 52, - 12 - ] - }, - { - "55063255": [ - 44, - 3, - 224 - ] - }, - { - "55063259": [ - 8 - ] - }, - { - "55063264": [ - 145, - 174 - ] - }, - { - "55063267": [ - 116, - 52, - 1 - ] - }, - { - "55063271": [ - 255, - 21, - 193 - ] - }, - { - "55063275": [ - 2 - ] - }, - { - "55063280": [ - 52, - 14 - ] - }, - { - "55063283": [ - 44, - 3, - 224 - ] - }, - { - "55063287": [ - 8, - 167, - 174 - ] - }, - { - "55063291": [ - 154, - 145, - 207 - ] - }, - { - "55063295": [ - 116, - 52, - 1 - ] - }, - { - "55063299": [ - 255, - 21, - 225 - ] - }, - { - "55063303": [ - 2 - ] - }, - { - "55063308": [ - 52, - 15 - ] - }, - { - "55063311": [ - 44, - 3, - 224 - ] - }, - { - "55063315": [ - 8, - 167, - 175 - ] - }, - { - "55063319": [ - 154, - 60, - 8, - 128, - 64, - 37, - 8, - 32, - 28, - 142, - 9 - ] - }, - { - "55063331": [ - 104, - 173, - 9 - ] - }, - { - "55063336": [ - 142, - 9 - ] - }, - { - "55063339": [ - 108, - 173, - 9 - ] - }, - { - "55063343": [ - 4, - 150, - 9 - ] - }, - { - "55063347": [ - 112, - 165, - 9 - ] - }, - { - "55063351": [ - 8, - 150, - 9 - ] - }, - { - "55063355": [ - 156, - 165, - 9 - ] - }, - { - "55063359": [ - 10, - 3, - 224 - ] - }, - { - "55063363": [ - 8, - 142, - 14 - ] - }, - { - "55063367": [ - 4, - 39, - 189, - 255, - 224, - 175, - 176 - ] - }, - { - "55063375": [ - 16, - 175, - 177 - ] - }, - { - "55063379": [ - 20, - 175, - 191 - ] - }, - { - "55063383": [ - 24, - 60, - 16, - 128, - 18, - 38, - 16, - 165, - 208, - 60, - 17, - 128, - 64, - 38, - 49, - 32, - 28, - 142, - 8 - ] - }, - { - "55063403": [ - 4, - 17 - ] - }, - { - "55063407": [ - 5 - ] - }, - { - "55063412": [ - 12, - 16, - 12, - 252 - ] - }, - { - "55063420": [ - 16 - ] - }, - { - "55063423": [ - 3 - ] - }, - { - "55063428": [ - 12, - 16, - 13, - 15 - ] - }, - { - "55063436": [ - 12, - 16, - 12, - 239, - 52, - 4 - ] - }, - { - "55063444": [ - 12, - 16, - 12, - 239, - 52, - 4 - ] - }, - { - "55063451": [ - 1, - 12, - 16, - 12, - 239, - 52, - 4 - ] - }, - { - "55063459": [ - 2, - 143, - 176 - ] - }, - { - "55063463": [ - 16, - 143, - 177 - ] - }, - { - "55063467": [ - 20, - 143, - 191 - ] - }, - { - "55063471": [ - 24, - 39, - 189 - ] - }, - { - "55063475": [ - 32, - 3, - 224 - ] - }, - { - "55063479": [ - 8 - ] - }, - { - "55063484": [ - 2, - 4, - 64, - 33, - 145, - 9 - ] - }, - { - "55063491": [ - 108, - 52, - 1 - ] - }, - { - "55063495": [ - 255, - 17, - 33 - ] - }, - { - "55063499": [ - 7 - ] - }, - { - "55063504": [ - 2, - 9, - 72, - 33, - 145, - 41 - ] - }, - { - "55063511": [ - 116, - 52, - 1 - ] - }, - { - "55063515": [ - 44, - 17, - 33 - ] - }, - { - "55063519": [ - 2 - ] - }, - { - "55063524": [ - 161, - 9 - ] - }, - { - "55063527": [ - 105, - 3, - 224 - ] - }, - { - "55063531": [ - 8 - ] - }, - { - "55063536": [ - 39, - 189, - 255, - 232, - 175, - 191 - ] - }, - { - "55063543": [ - 16, - 142, - 40 - ] - }, - { - "55063548": [ - 174, - 8 - ] - }, - { - "55063551": [ - 64, - 142, - 40 - ] - }, - { - "55063555": [ - 4, - 174, - 8 - ] - }, - { - "55063559": [ - 68, - 150, - 40 - ] - }, - { - "55063563": [ - 8, - 166, - 8 - ] - }, - { - "55063567": [ - 72, - 162 - ] - }, - { - "55063570": [ - 15, - 51, - 146, - 8 - ] - }, - { - "55063575": [ - 74, - 52, - 1 - ] - }, - { - "55063579": [ - 255, - 21, - 1 - ] - }, - { - "55063583": [ - 3 - ] - }, - { - "55063588": [ - 12, - 16, - 13, - 29 - ] - }, - { - "55063596": [ - 143, - 191 - ] - }, - { - "55063599": [ - 16, - 39, - 189 - ] - }, - { - "55063603": [ - 24, - 3, - 224 - ] - }, - { - "55063607": [ - 8 - ] - }, - { - "55063612": [ - 142, - 8 - ] - }, - { - "55063615": [ - 64, - 174, - 8 - ] - }, - { - "55063619": [ - 104, - 142, - 8 - ] - }, - { - "55063623": [ - 68, - 174, - 8 - ] - }, - { - "55063627": [ - 108, - 150, - 8 - ] - }, - { - "55063631": [ - 72, - 166, - 8 - ] - }, - { - "55063635": [ - 112, - 146, - 8 - ] - }, - { - "55063639": [ - 104, - 52, - 1 - ] - }, - { - "55063643": [ - 255, - 21, - 1 - ] - }, - { - "55063647": [ - 3 - ] - }, - { - "55063652": [ - 52, - 8 - ] - }, - { - "55063655": [ - 1, - 162, - 8, - 15, - 51, - 3, - 224 - ] - }, - { - "55063663": [ - 8 - ] - }, - { - "55063668": [ - 39, - 189, - 255, - 232, - 175, - 191 - ] - }, - { - "55063675": [ - 16, - 150, - 8 - ] - }, - { - "55063679": [ - 156, - 49, - 8 - ] - }, - { - "55063683": [ - 64, - 17 - ] - }, - { - "55063687": [ - 5 - ] - }, - { - "55063692": [ - 150, - 8 - ] - }, - { - "55063695": [ - 112, - 49, - 8, - 255, - 15, - 53, - 8 - ] - }, - { - "55063703": [ - 48, - 166, - 8 - ] - }, - { - "55063707": [ - 112, - 146, - 40 - ] - }, - { - "55063711": [ - 1, - 162, - 8 - ] - }, - { - "55063715": [ - 105, - 150, - 40 - ] - }, - { - "55063719": [ - 2, - 166, - 8 - ] - }, - { - "55063723": [ - 106, - 142, - 40 - ] - }, - { - "55063727": [ - 4, - 174, - 8 - ] - }, - { - "55063731": [ - 108, - 12, - 16, - 13, - 55, - 52, - 4 - ] - }, - { - "55063740": [ - 12, - 16, - 13, - 55, - 52, - 4 - ] - }, - { - "55063747": [ - 1, - 12, - 16, - 13, - 55, - 52, - 4 - ] - }, - { - "55063755": [ - 2, - 143, - 191 - ] - }, - { - "55063759": [ - 16, - 39, - 189 - ] - }, - { - "55063763": [ - 24, - 3, - 224 - ] - }, - { - "55063767": [ - 8 - ] - }, - { - "55063772": [ - 2, - 4, - 64, - 33, - 60, - 9, - 128, - 64, - 37, - 41, - 53, - 136, - 145, - 10 - ] - }, - { - "55063787": [ - 108, - 52, - 1 - ] - }, - { - "55063791": [ - 255, - 17, - 65 - ] - }, - { - "55063795": [ - 5 - ] - }, - { - "55063800": [ - 1, - 42, - 72, - 33, - 145, - 41 - ] - }, - { - "55063808": [ - 21, - 32 - ] - }, - { - "55063811": [ - 28 - ] - }, - { - "55063816": [ - 60, - 9, - 128, - 64, - 37, - 41, - 53, - 123, - 37, - 41 - ] - }, - { - "55063827": [ - 1, - 145, - 42 - ] - }, - { - "55063832": [ - 17, - 64 - ] - }, - { - "55063835": [ - 19 - ] - }, - { - "55063840": [ - 2, - 10, - 88, - 33, - 145, - 107 - ] - }, - { - "55063847": [ - 116, - 52, - 1 - ] - }, - { - "55063851": [ - 255, - 17, - 97, - 255, - 248 - ] - }, - { - "55063860": [ - 146, - 12 - ] - }, - { - "55063863": [ - 108, - 17, - 138, - 255, - 245 - ] - }, - { - "55063872": [ - 146, - 12 - ] - }, - { - "55063875": [ - 109, - 17, - 138, - 255, - 242 - ] - }, - { - "55063884": [ - 146, - 12 - ] - }, - { - "55063887": [ - 110, - 17, - 138, - 255, - 239 - ] - }, - { - "55063896": [ - 161, - 11 - ] - }, - { - "55063899": [ - 105, - 161, - 10 - ] - }, - { - "55063903": [ - 108, - 16 - ] - }, - { - "55063907": [ - 4 - ] - }, - { - "55063912": [ - 52, - 9 - ] - }, - { - "55063915": [ - 255, - 161, - 9 - ] - }, - { - "55063919": [ - 105, - 161, - 9 - ] - }, - { - "55063923": [ - 108, - 3, - 224 - ] - }, - { - "55063927": [ - 8 - ] - }, - { - "55063932": [ - 7, - 9, - 15, - 2, - 3, - 1, - 13, - 11 - ] - }, - { - "55063945": [ - 1, - 1, - 1, - 1, - 1 - ] - }, - { - "55063951": [ - 1, - 1, - 1, - 1, - 1 - ] - }, - { - "55063957": [ - 1 - ] - }, - { - "55063959": [ - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1 - ] - }, - { - "55063969": [ - 51, - 8, - 33, - 32, - 15 - ] - }, - { - "55063975": [ - 71, - 21, - 234 - ] - }, - { - "55063979": [ - 14, - 60, - 2, - 128, - 18, - 140, - 66, - 165, - 212, - 142, - 111 - ] - }, - { - "55063991": [ - 164 - ] - }, - { - "55063993": [ - 15, - 122, - 3, - 20, - 64 - ] - }, - { - "55063999": [ - 5, - 52, - 2, - 72, - 48, - 21, - 226 - ] - }, - { - "55064007": [ - 7 - ] - }, - { - "55064012": [ - 36, - 25 - ] - }, - { - "55064015": [ - 3, - 16 - ] - }, - { - "55064019": [ - 4, - 52, - 2, - 99, - 17, - 21, - 226 - ] - }, - { - "55064027": [ - 2 - ] - }, - { - "55064032": [ - 36, - 25 - ] - }, - { - "55064035": [ - 3, - 3, - 224 - ] - }, - { - "55064039": [ - 8 - ] - }, - { - "55064044": [ - 141, - 173, - 138, - 160, - 52, - 2, - 128 - ] - }, - { - "55064052": [ - 16, - 77 - ] - }, - { - "55064055": [ - 2 - ] - }, - { - "55064060": [ - 16 - ] - }, - { - "55064063": [ - 9, - 60, - 15, - 128, - 30, - 37, - 239, - 132, - 160, - 129, - 226, - 28, - 191, - 48, - 66 - ] - }, - { - "55064079": [ - 1, - 16, - 64 - ] - }, - { - "55064083": [ - 2 - ] - }, - { - "55064088": [ - 16 - ] - }, - { - "55064091": [ - 2, - 52, - 2 - ] - }, - { - "55064095": [ - 1, - 161, - 226, - 28, - 191, - 3, - 224 - ] - }, - { - "55064103": [ - 8 - ] - }, - { - "55064109": [ - 51, - 8, - 33, - 60, - 2, - 128, - 18, - 140, - 66, - 165, - 212, - 142, - 111 - ] - }, - { - "55064123": [ - 164 - ] - }, - { - "55064125": [ - 15, - 122, - 3, - 20, - 64 - ] - }, - { - "55064131": [ - 5, - 52, - 2, - 72, - 48, - 21, - 226 - ] - }, - { - "55064139": [ - 7 - ] - }, - { - "55064144": [ - 36, - 25 - ] - }, - { - "55064147": [ - 3, - 16 - ] - }, - { - "55064151": [ - 4, - 52, - 2, - 99, - 17, - 21, - 226 - ] - }, - { - "55064159": [ - 2 - ] - }, - { - "55064164": [ - 36, - 25 - ] - }, - { - "55064167": [ - 3, - 3, - 224 - ] - }, - { - "55064171": [ - 8 - ] - }, - { - "55064176": [ - 52, - 1 - ] - }, - { - "55064179": [ - 24, - 20, - 129 - ] - }, - { - "55064183": [ - 17 - ] - }, - { - "55064188": [ - 20, - 64 - ] - }, - { - "55064191": [ - 15 - ] - }, - { - "55064196": [ - 60, - 10, - 128, - 18, - 37, - 74, - 165, - 208, - 129, - 72 - ] - }, - { - "55064207": [ - 166, - 49, - 8 - ] - }, - { - "55064211": [ - 32, - 17 - ] - }, - { - "55064215": [ - 9, - 52, - 2 - ] - }, - { - "55064220": [ - 52, - 2 - ] - }, - { - "55064223": [ - 1, - 129, - 72 - ] - }, - { - "55064227": [ - 123, - 52, - 9 - ] - }, - { - "55064231": [ - 7, - 17, - 9 - ] - }, - { - "55064235": [ - 4, - 52, - 10 - ] - }, - { - "55064239": [ - 8, - 17, - 10 - ] - }, - { - "55064243": [ - 2 - ] - }, - { - "55064248": [ - 52, - 2 - ] - }, - { - "55064252": [ - 3, - 224 - ] - }, - { - "55064255": [ - 8 - ] - }, - { - "55064260": [ - 162, - 37 - ] - }, - { - "55064263": [ - 33, - 60, - 16, - 128, - 64, - 38, - 16, - 23, - 252, - 38, - 16 - ] - }, - { - "55064275": [ - 4, - 142, - 10 - ] - }, - { - "55064280": [ - 17, - 64 - ] - }, - { - "55064283": [ - 11 - ] - }, - { - "55064289": [ - 10, - 124, - 2, - 1, - 241, - 120, - 32, - 49, - 88, - 255 - ] - }, - { - "55064301": [ - 24, - 194, - 2, - 23 - ] - }, - { - "55064307": [ - 3, - 49, - 89 - ] - }, - { - "55064311": [ - 255, - 129, - 234 - ] - }, - { - "55064316": [ - 3, - 42, - 200, - 37, - 8, - 16, - 13, - 180, - 161, - 249 - ] - }, - { - "55064328": [ - 3, - 224 - ] - }, - { - "55064331": [ - 8 - ] - }, - { - "55259136": [ - 172, - 134 - ] - }, - { - "55259140": [ - 172, - 133 - ] - }, - { - "55259143": [ - 4, - 172, - 133 - ] - }, - { - "55259147": [ - 8 - ] - }, - { - "55259149": [ - 166, - 40, - 33, - 3, - 224 - ] - }, - { - "55259155": [ - 8, - 172, - 133 - ] - }, - { - "55259159": [ - 12, - 148, - 130 - ] - }, - { - "55259163": [ - 4, - 148, - 131 - ] - }, - { - "55259167": [ - 6 - ] - }, - { - "55259169": [ - 67 - ] - }, - { - "55259171": [ - 24 - ] - }, - { - "55259174": [ - 16, - 18, - 144, - 131 - ] - }, - { - "55259179": [ - 12 - ] - }, - { - "55259185": [ - 67 - ] - }, - { - "55259187": [ - 24 - ] - }, - { - "55259190": [ - 16, - 18, - 3, - 224 - ] - }, - { - "55259195": [ - 8 - ] - }, - { - "55259200": [ - 39, - 189, - 255, - 232, - 175, - 191 - ] - }, - { - "55259207": [ - 20, - 175, - 176 - ] - }, - { - "55259211": [ - 16, - 12, - 16, - 20, - 6 - ] - }, - { - "55259217": [ - 128, - 128, - 37, - 150, - 3 - ] - }, - { - "55259223": [ - 8 - ] - }, - { - "55259225": [ - 98 - ] - }, - { - "55259227": [ - 24 - ] - }, - { - "55259230": [ - 16, - 18, - 143, - 191 - ] - }, - { - "55259235": [ - 20, - 143, - 176 - ] - }, - { - "55259239": [ - 16, - 3, - 224 - ] - }, - { - "55259243": [ - 8, - 39, - 189 - ] - }, - { - "55259247": [ - 24, - 39, - 189, - 255, - 144, - 175, - 191 - ] - }, - { - "55259255": [ - 108, - 175, - 183 - ] - }, - { - "55259259": [ - 104, - 175, - 182 - ] - }, - { - "55259263": [ - 100, - 175, - 181 - ] - }, - { - "55259267": [ - 96, - 175, - 180 - ] - }, - { - "55259271": [ - 92, - 175, - 179 - ] - }, - { - "55259275": [ - 88, - 175, - 178 - ] - }, - { - "55259279": [ - 84, - 175, - 177 - ] - }, - { - "55259283": [ - 80, - 175, - 176 - ] - }, - { - "55259287": [ - 76 - ] - }, - { - "55259289": [ - 128, - 128, - 37 - ] - }, - { - "55259293": [ - 160, - 168, - 37 - ] - }, - { - "55259297": [ - 192, - 184, - 37 - ] - }, - { - "55259301": [ - 224, - 176, - 37, - 144, - 178 - ] - }, - { - "55259307": [ - 10 - ] - }, - { - "55259309": [ - 18, - 149, - 64, - 60, - 2 - ] - }, - { - "55259315": [ - 224, - 2, - 66, - 144, - 36, - 144, - 177 - ] - }, - { - "55259323": [ - 11, - 46, - 34 - ] - }, - { - "55259327": [ - 2, - 16, - 64 - ] - }, - { - "55259331": [ - 2, - 2, - 32, - 152, - 37, - 36, - 19 - ] - }, - { - "55259339": [ - 2, - 50, - 115 - ] - }, - { - "55259343": [ - 255 - ] - }, - { - "55259345": [ - 19, - 164, - 192, - 60, - 2 - ] - }, - { - "55259351": [ - 24, - 2, - 130, - 160, - 36, - 2, - 146, - 160, - 37, - 60, - 2, - 253 - ] - }, - { - "55259364": [ - 2, - 130, - 16, - 37, - 175, - 162 - ] - }, - { - "55259371": [ - 16, - 12, - 16, - 20, - 6, - 2, - 160, - 32, - 37 - ] - }, - { - "55259381": [ - 87 - ] - }, - { - "55259383": [ - 24 - ] - }, - { - "55259386": [ - 16, - 18, - 142, - 163 - ] - }, - { - "55259393": [ - 98, - 24, - 33, - 175, - 163 - ] - }, - { - "55259399": [ - 20, - 60, - 2, - 245 - ] - }, - { - "55259404": [ - 2, - 130, - 160, - 37, - 175, - 180 - ] - }, - { - "55259411": [ - 24, - 60, - 2, - 7 - ] - }, - { - "55259416": [ - 175, - 162 - ] - }, - { - "55259419": [ - 28, - 60, - 2, - 230 - ] - }, - { - "55259424": [ - 175, - 162 - ] - }, - { - "55259427": [ - 32, - 175, - 160 - ] - }, - { - "55259431": [ - 36, - 60, - 2, - 243 - ] - }, - { - "55259436": [ - 175, - 162 - ] - }, - { - "55259439": [ - 40, - 150, - 163 - ] - }, - { - "55259443": [ - 4, - 150, - 167 - ] - }, - { - "55259447": [ - 6 - ] - }, - { - "55259449": [ - 246 - ] - }, - { - "55259451": [ - 24 - ] - }, - { - "55259454": [ - 56, - 18, - 36, - 5 - ] - }, - { - "55259459": [ - 4, - 2, - 37, - 32, - 4 - ] - }, - { - "55259465": [ - 103 - ] - }, - { - "55259467": [ - 24 - ] - }, - { - "55259470": [ - 16, - 18, - 36, - 66 - ] - }, - { - "55259475": [ - 1 - ] - }, - { - "55259481": [ - 68 - ] - }, - { - "55259483": [ - 24 - ] - }, - { - "55259486": [ - 16, - 18, - 36, - 66, - 255, - 255, - 2, - 101, - 152, - 4 - ] - }, - { - "55259497": [ - 83 - ] - }, - { - "55259499": [ - 26, - 2, - 96, - 1, - 244 - ] - }, - { - "55259506": [ - 16, - 18, - 36, - 66, - 255, - 255 - ] - }, - { - "55259513": [ - 2, - 19 - ] - }, - { - "55259516": [ - 60, - 5 - ] - }, - { - "55259519": [ - 255, - 52, - 165, - 240 - ] - }, - { - "55259525": [ - 69, - 16, - 36 - ] - }, - { - "55259529": [ - 100 - ] - }, - { - "55259531": [ - 24 - ] - }, - { - "55259534": [ - 64, - 18, - 41, - 5 - ] - }, - { - "55259539": [ - 65, - 20, - 160 - ] - }, - { - "55259543": [ - 10, - 36, - 6, - 8 - ] - }, - { - "55259549": [ - 8, - 47, - 195, - 48, - 165 - ] - }, - { - "55259555": [ - 63 - ] - }, - { - "55259557": [ - 168, - 40, - 33 - ] - }, - { - "55259561": [ - 5, - 41, - 131, - 36, - 166, - 7, - 255 - ] - }, - { - "55259569": [ - 197 - ] - }, - { - "55259571": [ - 26 - ] - }, - { - "55259573": [ - 160, - 1, - 244 - ] - }, - { - "55259578": [ - 48, - 18, - 48, - 198, - 15, - 255 - ] - }, - { - "55259585": [ - 70, - 16, - 37, - 60, - 5, - 7 - ] - }, - { - "55259593": [ - 69, - 16, - 37, - 175, - 162 - ] - }, - { - "55259599": [ - 44, - 60, - 2, - 231 - ] - }, - { - "55259604": [ - 175, - 162 - ] - }, - { - "55259607": [ - 48, - 175, - 160 - ] - }, - { - "55259611": [ - 52 - ] - }, - { - "55259613": [ - 17, - 20, - 192, - 60, - 5 - ] - }, - { - "55259619": [ - 24 - ] - }, - { - "55259621": [ - 69, - 16, - 36, - 46, - 49 - ] - }, - { - "55259627": [ - 2, - 22, - 32 - ] - }, - { - "55259631": [ - 2 - ] - }, - { - "55259633": [ - 82, - 16, - 37, - 36, - 4 - ] - }, - { - "55259639": [ - 16 - ] - }, - { - "55259641": [ - 100 - ] - }, - { - "55259643": [ - 24 - ] - }, - { - "55259646": [ - 32, - 18, - 36, - 132 - ] - }, - { - "55259651": [ - 63 - ] - }, - { - "55259653": [ - 4, - 151, - 195, - 50, - 82 - ] - }, - { - "55259659": [ - 63, - 2, - 68, - 144, - 33 - ] - }, - { - "55259665": [ - 18, - 144, - 192, - 60, - 4 - ] - }, - { - "55259671": [ - 3, - 52, - 132, - 254 - ] - }, - { - "55259676": [ - 2, - 68, - 144, - 36, - 2, - 66, - 144, - 37, - 60, - 2, - 245 - ] - }, - { - "55259688": [ - 2, - 66, - 144, - 37, - 175, - 178 - ] - }, - { - "55259695": [ - 56, - 175, - 160 - ] - }, - { - "55259699": [ - 60, - 60, - 2, - 242 - ] - }, - { - "55259704": [ - 175, - 162 - ] - }, - { - "55259707": [ - 64, - 36, - 98, - 63, - 255 - ] - }, - { - "55259713": [ - 2, - 19, - 128, - 60, - 3 - ] - }, - { - "55259719": [ - 255, - 52, - 99, - 240 - ] - }, - { - "55259725": [ - 67, - 16, - 36, - 36, - 231, - 255, - 255 - ] - }, - { - "55259733": [ - 7, - 56, - 128, - 48, - 231, - 15, - 252 - ] - }, - { - "55259741": [ - 71, - 16, - 37, - 175, - 162 - ] - }, - { - "55259747": [ - 68, - 39, - 162 - ] - }, - { - "55259751": [ - 16, - 39, - 166 - ] - }, - { - "55259755": [ - 72, - 142, - 3 - ] - }, - { - "55259759": [ - 8, - 36, - 100 - ] - }, - { - "55259763": [ - 8, - 174, - 4 - ] - }, - { - "55259767": [ - 8, - 140, - 69 - ] - }, - { - "55259771": [ - 4, - 140, - 68 - ] - }, - { - "55259776": [ - 172, - 101 - ] - }, - { - "55259779": [ - 4, - 36, - 66 - ] - }, - { - "55259783": [ - 8, - 20, - 70, - 255, - 248, - 172, - 100 - ] - }, - { - "55259792": [ - 143, - 191 - ] - }, - { - "55259795": [ - 108, - 143, - 183 - ] - }, - { - "55259799": [ - 104, - 143, - 182 - ] - }, - { - "55259803": [ - 100, - 143, - 181 - ] - }, - { - "55259807": [ - 96, - 143, - 180 - ] - }, - { - "55259811": [ - 92, - 143, - 179 - ] - }, - { - "55259815": [ - 88, - 143, - 178 - ] - }, - { - "55259819": [ - 84, - 143, - 177 - ] - }, - { - "55259823": [ - 80, - 143, - 176 - ] - }, - { - "55259827": [ - 76, - 3, - 224 - ] - }, - { - "55259831": [ - 8, - 39, - 189 - ] - }, - { - "55259835": [ - 112, - 39, - 189, - 255, - 232, - 143, - 168 - ] - }, - { - "55259843": [ - 40, - 143, - 162 - ] - }, - { - "55259847": [ - 44, - 143, - 170 - ] - }, - { - "55259851": [ - 48, - 148, - 169 - ] - }, - { - "55259855": [ - 4 - ] - }, - { - "55259857": [ - 9, - 74, - 128, - 1, - 34 - ] - }, - { - "55259863": [ - 26 - ] - }, - { - "55259865": [ - 64, - 1, - 244 - ] - }, - { - "55259870": [ - 72, - 18, - 148, - 163 - ] - }, - { - "55259875": [ - 6 - ] - }, - { - "55259877": [ - 71, - 16, - 33 - ] - }, - { - "55259881": [ - 2, - 19, - 128, - 60, - 11 - ] - }, - { - "55259887": [ - 255, - 53, - 107, - 240 - ] - }, - { - "55259893": [ - 75, - 16, - 36, - 1, - 72, - 40, - 33 - ] - }, - { - "55259901": [ - 5, - 40, - 128, - 48, - 165, - 15, - 255 - ] - }, - { - "55259909": [ - 69, - 16, - 37, - 60, - 5, - 228 - ] - }, - { - "55259917": [ - 69, - 16, - 37, - 175, - 162 - ] - }, - { - "55259925": [ - 7, - 59, - 128 - ] - }, - { - "55259929": [ - 235, - 56, - 36 - ] - }, - { - "55259933": [ - 8, - 64, - 128, - 49, - 8, - 15, - 255 - ] - }, - { - "55259941": [ - 232, - 56, - 37, - 175, - 167 - ] - }, - { - "55259947": [ - 4, - 60, - 2, - 225 - ] - }, - { - "55259952": [ - 175, - 162 - ] - }, - { - "55259955": [ - 8 - ] - }, - { - "55259957": [ - 102 - ] - }, - { - "55259959": [ - 24 - ] - }, - { - "55259962": [ - 48, - 18 - ] - }, - { - "55259965": [ - 6, - 49, - 64, - 48, - 198, - 255, - 255, - 175, - 166 - ] - }, - { - "55259975": [ - 12, - 60, - 2, - 241 - ] - }, - { - "55259980": [ - 175, - 162 - ] - }, - { - "55259983": [ - 16 - ] - }, - { - "55259985": [ - 3, - 26, - 128 - ] - }, - { - "55259989": [ - 106 - ] - }, - { - "55259991": [ - 26, - 1, - 64, - 1, - 244 - ] - }, - { - "55259998": [ - 24, - 18, - 48, - 99, - 255, - 255 - ] - }, - { - "55260005": [ - 9, - 76 - ] - }, - { - "55260009": [ - 105, - 24, - 37, - 175, - 163 - ] - }, - { - "55260015": [ - 20, - 3, - 160, - 16, - 37, - 39, - 168 - ] - }, - { - "55260023": [ - 24, - 140, - 131 - ] - }, - { - "55260027": [ - 8, - 36, - 101 - ] - }, - { - "55260031": [ - 8, - 172, - 133 - ] - }, - { - "55260035": [ - 8, - 140, - 71 - ] - }, - { - "55260039": [ - 4, - 140, - 70 - ] - }, - { - "55260044": [ - 172, - 103 - ] - }, - { - "55260047": [ - 4, - 36, - 66 - ] - }, - { - "55260051": [ - 8, - 20, - 72, - 255, - 248, - 172, - 102 - ] - }, - { - "55260060": [ - 3, - 224 - ] - }, - { - "55260063": [ - 8, - 39, - 189 - ] - }, - { - "55260067": [ - 24, - 140, - 130 - ] - }, - { - "55260071": [ - 8, - 36, - 67 - ] - }, - { - "55260075": [ - 8, - 172, - 131 - ] - }, - { - "55260079": [ - 8, - 60, - 3, - 231 - ] - }, - { - "55260084": [ - 172, - 67 - ] - }, - { - "55260088": [ - 172, - 64 - ] - }, - { - "55260091": [ - 4, - 140, - 130 - ] - }, - { - "55260095": [ - 8, - 36, - 67 - ] - }, - { - "55260099": [ - 8, - 172, - 131 - ] - }, - { - "55260103": [ - 8, - 60, - 3, - 217 - ] - }, - { - "55260108": [ - 172, - 67 - ] - }, - { - "55260112": [ - 172, - 64 - ] - }, - { - "55260115": [ - 4, - 140, - 130 - ] - }, - { - "55260119": [ - 8, - 36, - 67 - ] - }, - { - "55260123": [ - 8, - 172, - 131 - ] - }, - { - "55260127": [ - 8, - 60, - 3, - 237 - ] - }, - { - "55260132": [ - 172, - 67 - ] - }, - { - "55260136": [ - 60, - 5 - ] - }, - { - "55260139": [ - 80, - 36, - 163, - 3, - 192, - 172, - 67 - ] - }, - { - "55260147": [ - 4, - 140, - 131 - ] - }, - { - "55260151": [ - 8, - 36, - 98 - ] - }, - { - "55260155": [ - 8, - 172, - 130 - ] - }, - { - "55260159": [ - 8, - 60, - 2, - 227 - ] - }, - { - "55260164": [ - 36, - 70, - 26, - 1, - 172, - 102 - ] - }, - { - "55260172": [ - 36, - 6 - ] - }, - { - "55260175": [ - 48, - 172, - 102 - ] - }, - { - "55260179": [ - 4, - 140, - 131 - ] - }, - { - "55260183": [ - 8, - 36, - 102 - ] - }, - { - "55260187": [ - 8, - 172, - 134 - ] - }, - { - "55260191": [ - 8, - 36, - 70, - 24, - 1, - 172, - 102 - ] - }, - { - "55260200": [ - 36, - 6 - ] - }, - { - "55260203": [ - 192, - 172, - 102 - ] - }, - { - "55260207": [ - 4, - 140, - 134 - ] - }, - { - "55260211": [ - 8, - 36, - 195 - ] - }, - { - "55260215": [ - 8, - 172, - 131 - ] - }, - { - "55260219": [ - 8, - 60, - 3, - 226 - ] - }, - { - "55260224": [ - 36, - 103, - 30, - 1, - 172, - 199 - ] - }, - { - "55260232": [ - 172, - 192 - ] - }, - { - "55260235": [ - 4, - 140, - 134 - ] - }, - { - "55260239": [ - 8, - 36, - 199 - ] - }, - { - "55260243": [ - 8, - 172, - 135 - ] - }, - { - "55260247": [ - 8, - 36, - 103, - 29 - ] - }, - { - "55260252": [ - 172, - 199 - ] - }, - { - "55260256": [ - 36, - 7 - ] - }, - { - "55260259": [ - 4, - 172, - 199 - ] - }, - { - "55260263": [ - 4, - 140, - 134 - ] - }, - { - "55260267": [ - 8, - 36, - 199 - ] - }, - { - "55260271": [ - 8, - 172, - 135 - ] - }, - { - "55260275": [ - 8, - 36, - 71, - 23 - ] - }, - { - "55260280": [ - 172, - 199 - ] - }, - { - "55260284": [ - 172, - 192 - ] - }, - { - "55260287": [ - 4, - 140, - 134 - ] - }, - { - "55260291": [ - 8, - 36, - 199 - ] - }, - { - "55260295": [ - 8, - 172, - 135 - ] - }, - { - "55260299": [ - 8, - 36, - 71, - 20, - 2, - 172, - 199 - ] - }, - { - "55260308": [ - 36, - 7, - 12 - ] - }, - { - "55260312": [ - 172, - 199 - ] - }, - { - "55260315": [ - 4, - 140, - 134 - ] - }, - { - "55260319": [ - 8, - 36, - 199 - ] - }, - { - "55260323": [ - 8, - 172, - 135 - ] - }, - { - "55260327": [ - 8, - 36, - 71, - 13, - 1, - 172, - 199 - ] - }, - { - "55260336": [ - 172, - 192 - ] - }, - { - "55260339": [ - 4, - 140, - 134 - ] - }, - { - "55260343": [ - 8, - 36, - 199 - ] - }, - { - "55260347": [ - 8, - 172, - 135 - ] - }, - { - "55260351": [ - 8, - 36, - 71, - 12 - ] - }, - { - "55260356": [ - 172, - 199 - ] - }, - { - "55260360": [ - 172, - 192 - ] - }, - { - "55260363": [ - 4, - 140, - 134 - ] - }, - { - "55260367": [ - 8, - 36, - 199 - ] - }, - { - "55260371": [ - 8, - 172, - 135 - ] - }, - { - "55260375": [ - 8, - 36, - 71, - 15 - ] - }, - { - "55260380": [ - 172, - 199 - ] - }, - { - "55260384": [ - 172, - 192 - ] - }, - { - "55260387": [ - 4, - 140, - 134 - ] - }, - { - "55260391": [ - 8, - 36, - 199 - ] - }, - { - "55260395": [ - 8, - 172, - 135 - ] - }, - { - "55260399": [ - 8, - 36, - 71, - 16, - 1, - 172, - 199 - ] - }, - { - "55260408": [ - 172, - 192 - ] - }, - { - "55260411": [ - 4, - 140, - 134 - ] - }, - { - "55260415": [ - 8, - 36, - 199 - ] - }, - { - "55260419": [ - 8, - 172, - 135 - ] - }, - { - "55260423": [ - 8, - 36, - 71, - 8 - ] - }, - { - "55260428": [ - 172, - 199 - ] - }, - { - "55260432": [ - 172, - 192 - ] - }, - { - "55260435": [ - 4, - 140, - 134 - ] - }, - { - "55260439": [ - 8, - 36, - 199 - ] - }, - { - "55260443": [ - 8, - 172, - 135 - ] - }, - { - "55260447": [ - 8, - 36, - 71, - 10, - 1, - 172, - 199 - ] - }, - { - "55260456": [ - 172, - 192 - ] - }, - { - "55260459": [ - 4, - 140, - 134 - ] - }, - { - "55260463": [ - 8, - 36, - 199 - ] - }, - { - "55260467": [ - 8, - 172, - 135 - ] - }, - { - "55260471": [ - 8, - 36, - 99 - ] - }, - { - "55260475": [ - 28, - 172, - 195 - ] - }, - { - "55260480": [ - 36, - 165, - 66, - 64, - 172, - 197 - ] - }, - { - "55260487": [ - 4, - 140, - 131 - ] - }, - { - "55260491": [ - 8, - 36, - 101 - ] - }, - { - "55260495": [ - 8, - 172, - 133 - ] - }, - { - "55260499": [ - 8, - 36, - 66, - 18, - 1, - 172, - 98 - ] - }, - { - "55260508": [ - 36, - 2, - 32 - ] - }, - { - "55260512": [ - 172, - 98 - ] - }, - { - "55260515": [ - 4, - 140, - 130 - ] - }, - { - "55260519": [ - 8, - 36, - 67 - ] - }, - { - "55260523": [ - 8, - 172, - 131 - ] - }, - { - "55260527": [ - 8, - 60, - 3, - 223 - ] - }, - { - "55260532": [ - 172, - 67 - ] - }, - { - "55260536": [ - 3, - 224 - ] - }, - { - "55260539": [ - 8, - 172, - 64 - ] - }, - { - "55260543": [ - 4, - 39, - 189, - 255, - 200, - 175, - 191 - ] - }, - { - "55260551": [ - 52, - 175, - 177 - ] - }, - { - "55260555": [ - 48, - 175, - 176 - ] - }, - { - "55260559": [ - 44, - 175, - 160 - ] - }, - { - "55260563": [ - 16, - 60, - 2, - 1, - 160, - 36, - 66, - 32 - ] - }, - { - "55260572": [ - 175, - 162 - ] - }, - { - "55260575": [ - 20, - 60, - 16 - ] - }, - { - "55260579": [ - 3, - 54, - 2, - 149, - 192, - 175, - 162 - ] - }, - { - "55260587": [ - 24, - 12, - 16, - 21, - 197, - 39, - 164 - ] - }, - { - "55260595": [ - 16, - 175, - 160 - ] - }, - { - "55260599": [ - 28, - 60, - 2 - ] - }, - { - "55260603": [ - 132, - 36, - 66, - 96 - ] - }, - { - "55260608": [ - 175, - 162 - ] - }, - { - "55260611": [ - 32, - 52, - 2, - 180 - ] - }, - { - "55260616": [ - 175, - 162 - ] - }, - { - "55260619": [ - 36, - 12, - 16, - 21, - 197, - 39, - 164 - ] - }, - { - "55260627": [ - 28, - 143, - 162 - ] - }, - { - "55260631": [ - 16, - 38, - 16, - 163 - ] - }, - { - "55260637": [ - 80, - 128, - 33, - 60, - 3, - 128, - 64, - 172, - 112, - 97, - 252, - 36, - 66, - 41, - 128, - 60, - 3, - 128, - 64, - 172, - 98, - 97, - 236, - 143, - 162 - ] - }, - { - "55260663": [ - 28, - 36, - 66, - 126 - ] - }, - { - "55260668": [ - 60, - 3, - 128, - 64, - 172, - 98, - 97, - 220, - 60, - 17, - 128, - 64, - 12, - 16, - 20, - 16, - 38, - 36, - 97, - 204 - ] - }, - { - "55260689": [ - 64, - 128, - 37, - 12, - 16, - 21, - 184 - ] - }, - { - "55260697": [ - 64, - 32, - 37 - ] - }, - { - "55260701": [ - 16, - 79, - 194, - 1, - 48, - 72, - 33, - 42, - 16 - ] - }, - { - "55260711": [ - 2, - 22 - ] - }, - { - "55260715": [ - 24, - 174, - 34, - 97, - 204 - ] - }, - { - "55260721": [ - 9, - 72, - 67, - 60, - 3, - 128, - 64, - 36, - 99, - 99, - 36 - ] - }, - { - "55260734": [ - 32, - 37 - ] - }, - { - "55260738": [ - 48, - 37, - 2, - 32, - 64, - 37, - 36, - 7, - 255, - 240, - 141, - 5, - 97, - 204 - ] - }, - { - "55260753": [ - 164, - 40, - 33, - 144, - 98 - ] - }, - { - "55260761": [ - 2, - 17, - 2 - ] - }, - { - "55260765": [ - 71, - 16, - 37, - 160, - 162 - ] - }, - { - "55260772": [ - 141, - 2, - 97, - 204 - ] - }, - { - "55260777": [ - 68, - 16, - 33, - 144, - 101 - ] - }, - { - "55260785": [ - 167, - 40, - 37, - 160, - 69 - ] - }, - { - "55260791": [ - 1, - 36, - 198 - ] - }, - { - "55260795": [ - 1, - 36, - 99 - ] - }, - { - "55260799": [ - 1 - ] - }, - { - "55260801": [ - 201, - 16, - 42, - 20, - 64, - 255, - 241, - 36, - 132 - ] - }, - { - "55260811": [ - 2, - 12, - 16, - 21, - 184, - 36, - 4, - 1 - ] - }, - { - "55260820": [ - 60, - 4, - 128, - 64, - 36, - 3, - 1 - ] - }, - { - "55260828": [ - 172, - 131, - 99, - 20, - 36, - 132, - 99, - 20, - 172, - 130 - ] - }, - { - "55260839": [ - 4, - 172, - 130 - ] - }, - { - "55260843": [ - 8, - 36, - 66, - 1 - ] - }, - { - "55260848": [ - 12, - 16, - 20, - 233, - 172, - 130 - ] - }, - { - "55260855": [ - 12, - 143, - 191 - ] - }, - { - "55260859": [ - 52, - 143, - 177 - ] - }, - { - "55260863": [ - 48, - 143, - 176 - ] - }, - { - "55260867": [ - 44, - 3, - 224 - ] - }, - { - "55260871": [ - 8, - 39, - 189 - ] - }, - { - "55260875": [ - 56, - 60, - 3, - 128, - 64, - 60, - 2, - 128, - 80, - 36, - 66 - ] - }, - { - "55260888": [ - 3, - 224 - ] - }, - { - "55260891": [ - 8, - 172, - 98, - 99, - 8 - ] - }, - { - "55260897": [ - 4, - 23, - 195 - ] - }, - { - "55260901": [ - 2, - 31, - 2 - ] - }, - { - "55260905": [ - 131, - 16, - 33, - 48, - 66 - ] - }, - { - "55260911": [ - 15 - ] - }, - { - "55260913": [ - 67, - 16, - 35, - 16, - 64 - ] - }, - { - "55260919": [ - 3, - 60, - 3, - 128, - 64 - ] - }, - { - "55260925": [ - 130, - 32, - 35, - 36, - 132 - ] - }, - { - "55260931": [ - 16, - 140, - 98, - 99, - 8 - ] - }, - { - "55260937": [ - 68, - 32, - 33, - 3, - 224 - ] - }, - { - "55260943": [ - 8, - 172, - 100, - 99, - 8, - 39, - 189, - 255, - 232, - 175, - 191 - ] - }, - { - "55260955": [ - 20, - 175, - 176 - ] - }, - { - "55260959": [ - 16 - ] - }, - { - "55260961": [ - 128, - 128, - 37, - 12, - 16, - 21, - 184, - 140, - 132 - ] - }, - { - "55260971": [ - 8, - 174, - 2 - ] - }, - { - "55260976": [ - 142, - 6 - ] - }, - { - "55260979": [ - 8 - ] - }, - { - "55260981": [ - 64, - 32, - 37, - 60, - 2, - 128 - ] - }, - { - "55260988": [ - 36, - 66, - 13, - 240 - ] - }, - { - "55260993": [ - 64, - 248, - 9, - 142, - 5 - ] - }, - { - "55260999": [ - 4, - 143, - 191 - ] - }, - { - "55261003": [ - 20, - 143, - 176 - ] - }, - { - "55261007": [ - 16, - 3, - 224 - ] - }, - { - "55261011": [ - 8, - 39, - 189 - ] - }, - { - "55261015": [ - 24, - 39, - 189, - 255, - 232, - 175, - 191 - ] - }, - { - "55261023": [ - 20, - 12, - 16, - 21, - 179 - ] - }, - { - "55261032": [ - 12, - 16, - 21, - 96 - ] - }, - { - "55261040": [ - 12, - 16, - 23, - 233 - ] - }, - { - "55261048": [ - 143, - 191 - ] - }, - { - "55261051": [ - 20, - 3, - 224 - ] - }, - { - "55261055": [ - 8, - 39, - 189 - ] - }, - { - "55261059": [ - 24, - 39, - 189, - 255, - 224, - 175, - 191 - ] - }, - { - "55261067": [ - 28, - 175, - 178 - ] - }, - { - "55261071": [ - 24, - 175, - 177 - ] - }, - { - "55261075": [ - 20, - 175, - 176 - ] - }, - { - "55261079": [ - 16 - ] - }, - { - "55261081": [ - 128, - 128, - 37 - ] - }, - { - "55261085": [ - 160, - 136, - 37, - 60, - 2, - 128, - 28, - 52, - 66, - 132, - 160, - 60, - 3 - ] - }, - { - "55261099": [ - 1 - ] - }, - { - "55261101": [ - 67, - 16, - 33, - 148, - 67, - 9, - 52, - 36, - 2 - ] - }, - { - "55261111": [ - 6, - 20, - 98 - ] - }, - { - "55261115": [ - 22 - ] - }, - { - "55261117": [ - 192, - 144, - 37, - 60, - 2, - 128, - 28, - 52, - 66, - 132, - 160, - 60, - 3 - ] - }, - { - "55261131": [ - 1 - ] - }, - { - "55261133": [ - 67, - 16, - 33, - 148, - 66, - 9, - 72, - 20, - 64 - ] - }, - { - "55261143": [ - 16, - 2, - 64, - 48, - 37, - 60, - 2, - 128, - 28, - 52, - 66, - 132, - 160 - ] - }, - { - "55261157": [ - 67, - 16, - 33, - 148, - 66, - 9, - 68, - 20, - 64 - ] - }, - { - "55261167": [ - 11, - 2, - 32, - 40, - 37, - 60, - 2, - 128, - 28, - 52, - 66, - 132, - 160, - 132, - 66 - ] - }, - { - "55261183": [ - 20, - 4, - 65 - ] - }, - { - "55261187": [ - 6 - ] - }, - { - "55261192": [ - 140, - 130 - ] - }, - { - "55261195": [ - 4, - 12, - 16, - 22, - 15, - 172, - 130 - ] - }, - { - "55261203": [ - 8, - 2, - 64, - 48, - 37, - 2, - 32, - 40, - 37, - 12, - 16, - 20 - ] - }, - { - "55261216": [ - 2 - ] - }, - { - "55261218": [ - 32, - 37, - 143, - 191 - ] - }, - { - "55261223": [ - 28, - 143, - 178 - ] - }, - { - "55261227": [ - 24, - 143, - 177 - ] - }, - { - "55261231": [ - 20, - 143, - 176 - ] - }, - { - "55261235": [ - 16, - 3, - 224 - ] - }, - { - "55261239": [ - 8, - 39, - 189 - ] - }, - { - "55261243": [ - 32, - 39, - 189, - 255, - 152, - 175, - 191 - ] - }, - { - "55261251": [ - 100, - 175, - 190 - ] - }, - { - "55261255": [ - 96, - 175, - 183 - ] - }, - { - "55261259": [ - 92, - 175, - 182 - ] - }, - { - "55261263": [ - 88, - 175, - 181 - ] - }, - { - "55261267": [ - 84, - 175, - 180 - ] - }, - { - "55261271": [ - 80, - 175, - 179 - ] - }, - { - "55261275": [ - 76, - 175, - 178 - ] - }, - { - "55261279": [ - 72, - 175, - 177 - ] - }, - { - "55261283": [ - 68, - 175, - 176 - ] - }, - { - "55261287": [ - 64 - ] - }, - { - "55261289": [ - 128, - 128, - 37, - 60, - 2, - 128, - 64, - 140, - 67, - 99, - 24, - 140, - 130 - ] - }, - { - "55261303": [ - 8, - 36, - 68 - ] - }, - { - "55261307": [ - 8, - 174, - 4 - ] - }, - { - "55261311": [ - 8, - 60, - 4, - 222 - ] - }, - { - "55261316": [ - 172, - 68 - ] - }, - { - "55261320": [ - 172, - 67 - ] - }, - { - "55261323": [ - 4, - 60, - 2, - 128, - 64, - 148, - 67, - 97, - 208 - ] - }, - { - "55261333": [ - 3, - 16, - 192 - ] - }, - { - "55261337": [ - 67, - 16, - 35 - ] - }, - { - "55261341": [ - 2, - 16, - 64, - 36, - 66 - ] - }, - { - "55261347": [ - 96, - 36, - 19, - 1, - 64, - 2, - 98, - 152, - 35 - ] - }, - { - "55261357": [ - 19, - 152, - 67, - 38, - 99 - ] - }, - { - "55261363": [ - 2, - 175, - 163 - ] - }, - { - "55261367": [ - 56, - 142, - 3 - ] - }, - { - "55261371": [ - 8, - 36, - 100 - ] - }, - { - "55261375": [ - 8, - 174, - 4 - ] - }, - { - "55261379": [ - 8, - 60, - 4, - 252, - 255, - 52, - 132, - 255, - 255, - 172, - 100 - ] - }, - { - "55261392": [ - 60, - 4, - 255, - 253, - 52, - 132, - 246, - 251, - 172, - 100 - ] - }, - { - "55261403": [ - 4, - 142, - 3 - ] - }, - { - "55261407": [ - 8, - 36, - 100 - ] - }, - { - "55261411": [ - 8, - 174, - 4 - ] - }, - { - "55261415": [ - 8, - 60, - 4, - 250 - ] - }, - { - "55261420": [ - 172, - 100 - ] - }, - { - "55261424": [ - 36, - 4 - ] - }, - { - "55261427": [ - 208, - 172, - 100 - ] - }, - { - "55261431": [ - 4 - ] - }, - { - "55261433": [ - 83, - 16, - 33 - ] - }, - { - "55261437": [ - 2, - 19, - 128, - 60, - 3 - ] - }, - { - "55261443": [ - 255, - 52, - 99, - 240 - ] - }, - { - "55261449": [ - 67, - 16, - 36, - 60, - 4, - 228 - ] - }, - { - "55261456": [ - 36, - 132, - 3, - 184 - ] - }, - { - "55261461": [ - 68, - 16, - 37, - 175, - 162 - ] - }, - { - "55261467": [ - 32 - ] - }, - { - "55261469": [ - 19, - 19, - 128 - ] - }, - { - "55261473": [ - 67, - 16, - 36, - 52, - 66 - ] - }, - { - "55261479": [ - 8, - 175, - 162 - ] - }, - { - "55261483": [ - 36, - 60, - 2, - 225 - ] - }, - { - "55261488": [ - 175, - 162 - ] - }, - { - "55261491": [ - 40, - 175, - 160 - ] - }, - { - "55261495": [ - 44, - 60, - 2, - 241 - ] - }, - { - "55261500": [ - 175, - 162 - ] - }, - { - "55261503": [ - 48, - 60, - 2, - 4 - ] - }, - { - "55261508": [ - 36, - 66, - 4 - ] - }, - { - "55261512": [ - 175, - 162 - ] - }, - { - "55261515": [ - 52, - 39, - 162 - ] - }, - { - "55261519": [ - 32, - 39, - 166 - ] - }, - { - "55261523": [ - 56, - 142, - 3 - ] - }, - { - "55261527": [ - 8, - 36, - 100 - ] - }, - { - "55261531": [ - 8, - 174, - 4 - ] - }, - { - "55261535": [ - 8, - 140, - 69 - ] - }, - { - "55261539": [ - 4, - 140, - 68 - ] - }, - { - "55261544": [ - 172, - 101 - ] - }, - { - "55261547": [ - 4, - 36, - 66 - ] - }, - { - "55261551": [ - 8, - 20, - 194, - 255, - 248, - 172, - 100 - ] - }, - { - "55261560": [ - 142, - 2 - ] - }, - { - "55261563": [ - 8, - 36, - 67 - ] - }, - { - "55261567": [ - 8, - 174, - 3 - ] - }, - { - "55261571": [ - 8, - 60, - 3, - 231 - ] - }, - { - "55261576": [ - 172, - 67 - ] - }, - { - "55261580": [ - 172, - 64 - ] - }, - { - "55261583": [ - 4, - 142, - 2 - ] - }, - { - "55261587": [ - 8, - 36, - 67 - ] - }, - { - "55261591": [ - 8, - 174, - 3 - ] - }, - { - "55261595": [ - 8, - 60, - 3, - 252, - 17, - 52, - 99, - 150, - 35, - 172, - 67 - ] - }, - { - "55261608": [ - 60, - 3, - 255, - 47, - 52, - 99, - 255, - 255, - 172, - 67 - ] - }, - { - "55261619": [ - 4, - 60, - 5, - 128, - 64, - 36, - 165, - 97, - 236, - 148, - 167 - ] - }, - { - "55261631": [ - 8 - ] - }, - { - "55261634": [ - 48, - 37, - 12, - 16, - 20, - 28, - 2 - ] - }, - { - "55261642": [ - 32, - 37, - 60, - 2, - 128, - 64, - 140, - 66, - 99, - 4, - 24, - 64 - ] - }, - { - "55261655": [ - 53, - 60, - 2, - 128, - 64, - 60, - 18, - 128, - 64, - 38, - 82, - 98, - 128 - ] - }, - { - "55261670": [ - 136, - 37, - 60, - 20, - 128, - 64, - 38, - 148, - 98, - 28, - 60, - 23, - 128, - 64, - 38, - 247, - 98, - 44, - 60, - 30, - 250 - ] - }, - { - "55261692": [ - 36, - 22 - ] - }, - { - "55261695": [ - 16, - 36, - 66, - 97, - 236, - 175, - 162 - ] - }, - { - "55261703": [ - 60, - 60, - 21, - 128, - 64, - 146, - 66 - ] - }, - { - "55261713": [ - 84, - 16, - 33, - 128, - 70 - ] - }, - { - "55261720": [ - 40, - 194 - ] - }, - { - "55261723": [ - 3, - 84, - 64 - ] - }, - { - "55261727": [ - 31, - 38, - 49 - ] - }, - { - "55261731": [ - 1, - 36, - 198, - 255, - 253 - ] - }, - { - "55261737": [ - 6, - 24, - 64 - ] - }, - { - "55261741": [ - 102, - 24, - 33 - ] - }, - { - "55261745": [ - 119, - 24, - 33, - 144, - 98 - ] - }, - { - "55261753": [ - 2, - 22 - ] - }, - { - "55261756": [ - 144, - 100 - ] - }, - { - "55261759": [ - 2 - ] - }, - { - "55261761": [ - 4, - 34 - ] - }, - { - "55261765": [ - 68, - 16, - 37, - 144, - 99 - ] - }, - { - "55261771": [ - 1 - ] - }, - { - "55261773": [ - 3, - 28 - ] - }, - { - "55261777": [ - 67, - 16, - 37, - 52, - 66 - ] - }, - { - "55261783": [ - 255, - 142, - 3 - ] - }, - { - "55261787": [ - 8, - 36, - 100 - ] - }, - { - "55261791": [ - 8, - 174, - 4 - ] - }, - { - "55261795": [ - 8, - 172, - 126 - ] - }, - { - "55261800": [ - 172, - 98 - ] - }, - { - "55261803": [ - 4, - 175, - 182 - ] - }, - { - "55261807": [ - 24, - 175, - 182 - ] - }, - { - "55261811": [ - 20 - ] - }, - { - "55261813": [ - 17, - 16, - 192 - ] - }, - { - "55261817": [ - 81, - 16, - 33 - ] - }, - { - "55261821": [ - 2, - 16, - 64, - 36, - 66 - ] - }, - { - "55261827": [ - 4, - 175, - 162 - ] - }, - { - "55261831": [ - 16, - 143, - 167 - ] - }, - { - "55261835": [ - 56, - 143, - 165 - ] - }, - { - "55261839": [ - 60, - 12, - 16, - 20, - 175, - 2 - ] - }, - { - "55261846": [ - 32, - 37, - 38, - 49 - ] - }, - { - "55261851": [ - 1, - 142, - 162, - 99, - 4, - 2, - 34, - 16, - 42, - 20, - 64, - 255, - 217, - 38, - 82 - ] - }, - { - "55261867": [ - 10, - 142, - 2 - ] - }, - { - "55261871": [ - 8, - 36, - 67 - ] - }, - { - "55261875": [ - 8, - 174, - 3 - ] - }, - { - "55261879": [ - 8, - 60, - 3, - 250 - ] - }, - { - "55261884": [ - 172, - 67 - ] - }, - { - "55261888": [ - 36, - 3, - 255, - 255, - 172, - 67 - ] - }, - { - "55261895": [ - 4, - 60, - 5, - 128, - 64, - 36, - 165, - 97, - 252, - 148, - 167 - ] - }, - { - "55261907": [ - 8 - ] - }, - { - "55261910": [ - 48, - 37, - 12, - 16, - 20, - 28, - 2 - ] - }, - { - "55261918": [ - 32, - 37, - 60, - 2, - 128, - 64, - 140, - 66, - 99, - 4, - 88, - 64 - ] - }, - { - "55261931": [ - 47, - 38, - 115 - ] - }, - { - "55261935": [ - 20, - 60, - 17, - 128, - 64, - 38, - 49, - 98, - 128, - 36, - 20 - ] - }, - { - "55261947": [ - 4 - ] - }, - { - "55261950": [ - 144, - 37, - 60, - 21, - 128, - 64, - 38, - 181, - 98, - 28, - 36, - 23 - ] - }, - { - "55261963": [ - 16, - 60, - 30, - 128, - 64, - 39, - 222, - 97, - 252, - 60, - 22, - 128, - 64, - 146, - 34 - ] - }, - { - "55261981": [ - 85, - 16, - 33, - 128, - 70 - ] - }, - { - "55261988": [ - 44, - 194 - ] - }, - { - "55261991": [ - 3, - 80, - 64 - ] - }, - { - "55261995": [ - 9, - 38, - 82 - ] - }, - { - "55261999": [ - 1, - 175, - 183 - ] - }, - { - "55262003": [ - 24, - 175, - 183 - ] - }, - { - "55262007": [ - 20, - 175, - 180 - ] - }, - { - "55262011": [ - 16, - 143, - 167 - ] - }, - { - "55262015": [ - 56, - 3, - 192, - 40, - 37, - 12, - 16, - 20, - 175, - 2 - ] - }, - { - "55262026": [ - 32, - 37, - 38, - 82 - ] - }, - { - "55262031": [ - 1, - 142, - 194, - 99, - 4, - 38, - 49 - ] - }, - { - "55262039": [ - 10, - 2, - 66, - 24, - 42, - 20, - 96, - 255, - 238, - 38, - 148 - ] - }, - { - "55262051": [ - 18, - 24, - 64 - ] - }, - { - "55262055": [ - 16, - 38, - 115 - ] - }, - { - "55262059": [ - 20, - 60, - 17, - 128, - 64, - 38, - 49, - 98, - 129, - 36, - 20 - ] - }, - { - "55262071": [ - 5 - ] - }, - { - "55262074": [ - 144, - 37, - 60, - 21, - 128, - 64, - 2, - 128, - 48, - 37, - 2, - 96, - 40, - 37, - 12, - 16, - 23, - 244, - 2, - 32, - 32, - 37, - 38, - 82 - ] - }, - { - "55262099": [ - 1, - 38, - 49 - ] - }, - { - "55262103": [ - 10, - 142, - 162, - 99, - 4, - 2, - 66, - 16, - 42, - 20, - 64, - 255, - 247, - 38, - 148 - ] - }, - { - "55262119": [ - 18, - 60, - 2, - 128, - 64, - 148, - 66, - 97, - 208 - ] - }, - { - "55262129": [ - 2, - 16, - 192, - 36, - 66 - ] - }, - { - "55262135": [ - 2 - ] - }, - { - "55262137": [ - 83, - 152, - 33, - 36, - 7 - ] - }, - { - "55262143": [ - 1, - 36, - 6 - ] - }, - { - "55262147": [ - 3, - 60, - 5, - 128, - 64, - 36, - 165, - 97, - 220, - 12, - 16, - 20, - 28, - 2 - ] - }, - { - "55262162": [ - 32, - 37, - 60, - 2, - 128, - 64, - 140, - 66, - 99, - 4, - 88, - 64 - ] - }, - { - "55262175": [ - 41, - 38, - 126 - ] - }, - { - "55262179": [ - 18, - 60, - 17, - 128, - 64, - 38, - 49, - 98, - 128, - 36, - 20 - ] - }, - { - "55262191": [ - 5 - ] - }, - { - "55262194": [ - 144, - 37, - 60, - 21, - 128, - 64, - 38, - 181, - 98, - 112, - 60, - 23, - 128, - 17, - 54, - 247, - 165, - 208, - 60, - 22, - 128, - 64, - 146, - 34 - ] - }, - { - "55262221": [ - 85, - 24, - 33, - 128, - 99 - ] - }, - { - "55262228": [ - 16, - 96 - ] - }, - { - "55262231": [ - 20, - 2, - 226, - 16, - 33, - 144, - 66 - ] - }, - { - "55262239": [ - 188 - ] - }, - { - "55262241": [ - 2, - 30 - ] - }, - { - "55262245": [ - 3, - 30, - 3, - 40, - 99 - ] - }, - { - "55262251": [ - 10, - 80, - 96 - ] - }, - { - "55262255": [ - 1, - 36, - 2 - ] - }, - { - "55262259": [ - 9, - 36, - 3, - 48 - ] - }, - { - "55262264": [ - 167, - 163 - ] - }, - { - "55262267": [ - 32 - ] - }, - { - "55262269": [ - 64, - 24, - 37 - ] - }, - { - "55262273": [ - 2, - 22 - ] - }, - { - "55262277": [ - 2, - 22, - 3, - 4, - 66 - ] - }, - { - "55262283": [ - 1 - ] - }, - { - "55262286": [ - 24, - 37, - 36, - 99 - ] - }, - { - "55262291": [ - 48, - 163, - 163 - ] - }, - { - "55262295": [ - 32, - 2, - 128, - 48, - 37, - 2, - 96, - 40, - 37, - 12, - 16, - 23, - 244, - 39, - 164 - ] - }, - { - "55262311": [ - 32, - 38, - 82 - ] - }, - { - "55262315": [ - 1, - 38, - 49 - ] - }, - { - "55262319": [ - 10, - 142, - 194, - 99, - 4, - 2, - 66, - 16, - 42, - 20, - 64, - 255, - 227, - 38, - 148 - ] - }, - { - "55262335": [ - 18, - 38, - 126 - ] - }, - { - "55262339": [ - 18, - 36, - 7 - ] - }, - { - "55262343": [ - 1 - ] - }, - { - "55262346": [ - 48, - 37, - 60, - 5, - 128, - 64, - 36, - 165, - 97, - 220, - 12, - 16, - 20, - 28, - 2 - ] - }, - { - "55262362": [ - 32, - 37, - 60, - 2, - 128, - 64, - 140, - 66, - 99, - 4, - 88, - 64 - ] - }, - { - "55262375": [ - 40, - 38, - 126 - ] - }, - { - "55262379": [ - 36, - 60, - 18, - 128, - 64, - 38, - 82, - 98, - 128 - ] - }, - { - "55262390": [ - 136, - 37, - 60, - 20, - 128, - 64, - 38, - 148, - 98, - 96, - 60, - 22, - 128, - 17, - 60, - 23, - 128, - 64, - 38, - 247, - 97, - 220, - 60, - 21, - 128, - 64, - 146, - 66 - ] - }, - { - "55262421": [ - 84, - 24, - 33, - 128, - 99 - ] - }, - { - "55262428": [ - 80, - 96 - ] - }, - { - "55262431": [ - 21, - 38, - 49 - ] - }, - { - "55262435": [ - 1, - 54, - 195, - 165, - 208 - ] - }, - { - "55262441": [ - 98, - 16, - 33, - 144, - 66 - ] - }, - { - "55262447": [ - 168, - 48, - 66 - ] - }, - { - "55262451": [ - 1, - 80, - 64 - ] - }, - { - "55262455": [ - 15, - 38, - 49 - ] - }, - { - "55262459": [ - 1, - 36, - 2 - ] - }, - { - "55262463": [ - 16, - 175, - 162 - ] - }, - { - "55262467": [ - 24, - 175, - 162 - ] - }, - { - "55262471": [ - 20 - ] - }, - { - "55262473": [ - 17, - 16, - 192 - ] - }, - { - "55262477": [ - 81, - 16, - 33 - ] - }, - { - "55262481": [ - 2, - 16, - 64, - 36, - 66 - ] - }, - { - "55262487": [ - 4, - 175, - 162 - ] - }, - { - "55262491": [ - 16, - 3, - 192, - 56, - 37 - ] - }, - { - "55262498": [ - 48, - 37, - 2, - 224, - 40, - 37, - 12, - 16, - 20, - 175, - 2 - ] - }, - { - "55262510": [ - 32, - 37, - 38, - 49 - ] - }, - { - "55262515": [ - 1, - 142, - 162, - 99, - 4, - 2, - 34, - 16, - 42, - 20, - 64, - 255, - 228, - 38, - 82 - ] - }, - { - "55262531": [ - 10, - 38, - 126 - ] - }, - { - "55262535": [ - 36, - 36, - 7 - ] - }, - { - "55262539": [ - 1, - 36, - 6 - ] - }, - { - "55262543": [ - 2, - 60, - 5, - 128, - 64, - 36, - 165, - 97, - 220, - 12, - 16, - 20, - 28, - 2 - ] - }, - { - "55262558": [ - 32, - 37, - 60, - 2, - 128, - 64, - 140, - 66, - 99, - 4, - 24, - 64 - ] - }, - { - "55262571": [ - 39, - 60, - 18, - 128, - 64, - 38, - 82, - 98, - 128 - ] - }, - { - "55262582": [ - 136, - 37, - 60, - 20, - 128, - 64, - 38, - 148, - 98, - 64, - 60, - 22, - 128, - 17, - 60, - 23, - 128, - 64, - 38, - 247, - 97, - 220, - 60, - 21, - 128, - 64, - 146, - 66 - ] - }, - { - "55262613": [ - 84, - 24, - 33, - 128, - 99 - ] - }, - { - "55262620": [ - 80, - 96 - ] - }, - { - "55262623": [ - 22, - 38, - 49 - ] - }, - { - "55262627": [ - 1, - 54, - 195, - 165, - 208 - ] - }, - { - "55262633": [ - 98, - 16, - 33, - 144, - 66 - ] - }, - { - "55262639": [ - 168 - ] - }, - { - "55262641": [ - 2, - 16, - 130, - 48, - 66 - ] - }, - { - "55262647": [ - 1, - 80, - 64 - ] - }, - { - "55262651": [ - 15, - 38, - 49 - ] - }, - { - "55262655": [ - 1, - 36, - 2 - ] - }, - { - "55262659": [ - 16, - 175, - 162 - ] - }, - { - "55262663": [ - 24, - 175, - 162 - ] - }, - { - "55262667": [ - 20 - ] - }, - { - "55262669": [ - 17, - 16, - 192 - ] - }, - { - "55262673": [ - 81, - 16, - 33 - ] - }, - { - "55262677": [ - 2, - 16, - 64, - 36, - 66 - ] - }, - { - "55262683": [ - 4, - 175, - 162 - ] - }, - { - "55262687": [ - 16, - 3, - 192, - 56, - 37 - ] - }, - { - "55262694": [ - 48, - 37, - 2, - 224, - 40, - 37, - 12, - 16, - 20, - 175, - 2 - ] - }, - { - "55262706": [ - 32, - 37, - 38, - 49 - ] - }, - { - "55262711": [ - 1, - 142, - 162, - 99, - 4, - 2, - 34, - 16, - 42, - 20, - 64, - 255, - 227, - 38, - 82 - ] - }, - { - "55262727": [ - 10, - 38, - 126 - ] - }, - { - "55262731": [ - 54, - 36, - 7 - ] - }, - { - "55262735": [ - 1, - 36, - 6 - ] - }, - { - "55262739": [ - 1, - 60, - 5, - 128, - 64, - 36, - 165, - 97, - 220, - 12, - 16, - 20, - 28, - 2 - ] - }, - { - "55262754": [ - 32, - 37, - 60, - 2, - 128, - 64, - 140, - 66, - 99, - 4, - 24, - 64 - ] - }, - { - "55262767": [ - 67, - 60, - 18, - 128, - 64, - 38, - 82, - 98, - 128, - 2, - 64, - 160, - 37 - ] - }, - { - "55262782": [ - 136, - 37, - 60, - 21, - 128, - 64, - 38, - 181, - 98, - 64, - 60, - 23, - 128, - 17, - 60, - 2, - 128, - 64, - 36, - 66, - 97, - 220, - 175, - 162 - ] - }, - { - "55262807": [ - 56, - 60, - 22, - 128, - 64, - 146, - 130 - ] - }, - { - "55262817": [ - 85, - 24, - 33, - 128, - 99 - ] - }, - { - "55262824": [ - 80, - 96 - ] - }, - { - "55262827": [ - 22, - 38, - 49 - ] - }, - { - "55262831": [ - 1, - 54, - 227, - 165, - 208 - ] - }, - { - "55262837": [ - 98, - 16, - 33, - 144, - 66 - ] - }, - { - "55262843": [ - 168 - ] - }, - { - "55262845": [ - 2, - 16, - 66, - 48, - 66 - ] - }, - { - "55262851": [ - 1, - 80, - 64 - ] - }, - { - "55262855": [ - 15, - 38, - 49 - ] - }, - { - "55262859": [ - 1, - 36, - 2 - ] - }, - { - "55262863": [ - 16, - 175, - 162 - ] - }, - { - "55262867": [ - 24, - 175, - 162 - ] - }, - { - "55262871": [ - 20 - ] - }, - { - "55262873": [ - 17, - 16, - 192 - ] - }, - { - "55262877": [ - 81, - 16, - 33 - ] - }, - { - "55262881": [ - 2, - 16, - 64, - 36, - 66 - ] - }, - { - "55262887": [ - 4, - 175, - 162 - ] - }, - { - "55262891": [ - 16, - 3, - 192, - 56, - 37 - ] - }, - { - "55262898": [ - 48, - 37, - 143, - 165 - ] - }, - { - "55262903": [ - 56, - 12, - 16, - 20, - 175, - 2 - ] - }, - { - "55262910": [ - 32, - 37, - 38, - 49 - ] - }, - { - "55262915": [ - 1, - 142, - 194, - 99, - 4, - 2, - 34, - 24, - 42, - 20, - 96, - 255, - 227, - 38, - 148 - ] - }, - { - "55262931": [ - 10, - 24, - 64 - ] - }, - { - "55262935": [ - 25, - 38, - 115 - ] - }, - { - "55262939": [ - 72, - 36, - 20 - ] - }, - { - "55262943": [ - 5 - ] - }, - { - "55262946": [ - 136, - 37, - 60, - 22, - 128, - 64, - 38, - 214, - 98, - 12, - 60, - 21, - 128, - 64, - 38, - 181, - 97, - 192, - 60, - 30, - 128, - 64, - 39, - 222, - 97, - 196, - 60, - 23, - 128, - 64, - 146, - 66 - ] - }, - { - "55262981": [ - 86, - 16, - 33, - 144, - 66 - ] - }, - { - "55262988": [ - 20, - 64 - ] - }, - { - "55262991": [ - 2, - 2, - 160, - 32, - 37, - 3, - 192, - 32, - 37, - 2, - 128, - 48, - 37, - 12, - 16, - 23, - 244, - 2, - 96, - 40, - 37, - 38, - 49 - ] - }, - { - "55263015": [ - 1, - 38, - 82 - ] - }, - { - "55263019": [ - 10, - 142, - 226, - 99, - 4, - 2, - 34, - 16, - 42, - 20, - 64, - 255, - 242, - 38, - 148 - ] - }, - { - "55263035": [ - 18, - 12, - 16, - 24, - 30, - 2 - ] - }, - { - "55263042": [ - 32, - 37, - 142, - 2 - ] - }, - { - "55263047": [ - 8, - 36, - 67 - ] - }, - { - "55263051": [ - 8, - 174, - 3 - ] - }, - { - "55263055": [ - 8, - 60, - 3, - 233 - ] - }, - { - "55263060": [ - 172, - 67 - ] - }, - { - "55263064": [ - 172, - 64 - ] - }, - { - "55263067": [ - 4, - 142, - 2 - ] - }, - { - "55263071": [ - 8, - 36, - 67 - ] - }, - { - "55263075": [ - 8, - 174, - 3 - ] - }, - { - "55263079": [ - 8, - 60, - 3, - 223 - ] - }, - { - "55263084": [ - 172, - 67 - ] - }, - { - "55263088": [ - 172, - 64 - ] - }, - { - "55263091": [ - 4, - 143, - 191 - ] - }, - { - "55263095": [ - 100, - 143, - 190 - ] - }, - { - "55263099": [ - 96, - 143, - 183 - ] - }, - { - "55263103": [ - 92, - 143, - 182 - ] - }, - { - "55263107": [ - 88, - 143, - 181 - ] - }, - { - "55263111": [ - 84, - 143, - 180 - ] - }, - { - "55263115": [ - 80, - 143, - 179 - ] - }, - { - "55263119": [ - 76, - 143, - 178 - ] - }, - { - "55263123": [ - 72, - 143, - 177 - ] - }, - { - "55263127": [ - 68, - 143, - 176 - ] - }, - { - "55263131": [ - 64, - 3, - 224 - ] - }, - { - "55263135": [ - 8, - 39, - 189 - ] - }, - { - "55263139": [ - 104, - 39, - 189, - 255, - 232, - 175, - 191 - ] - }, - { - "55263147": [ - 20, - 12, - 16, - 21, - 184, - 36, - 4, - 4 - ] - }, - { - "55263156": [ - 60, - 3, - 128, - 64, - 172, - 98, - 99, - 16, - 60, - 3, - 128, - 64, - 172, - 98, - 99, - 12, - 143, - 191 - ] - }, - { - "55263175": [ - 20, - 3, - 224 - ] - }, - { - "55263179": [ - 8, - 39, - 189 - ] - }, - { - "55263183": [ - 24, - 128, - 130 - ] - }, - { - "55263188": [ - 16, - 64 - ] - }, - { - "55263191": [ - 38, - 36, - 135 - ] - }, - { - "55263195": [ - 1, - 60, - 3, - 128, - 64, - 140, - 104, - 99, - 16, - 37, - 8, - 4 - ] - }, - { - "55263208": [ - 60, - 3, - 128, - 64, - 140, - 99, - 99, - 12 - ] - }, - { - "55263217": [ - 104, - 32, - 43, - 16, - 128 - ] - }, - { - "55263223": [ - 30, - 60, - 10, - 255 - ] - }, - { - "55263228": [ - 37, - 74, - 15, - 255, - 48, - 198, - 15, - 255, - 36, - 11, - 240 - ] - }, - { - "55263240": [ - 60, - 9, - 128, - 64, - 16 - ] - }, - { - "55263247": [ - 7, - 37, - 41, - 97, - 204 - ] - }, - { - "55263253": [ - 104, - 32, - 43, - 84, - 128 - ] - }, - { - "55263259": [ - 5, - 160, - 98 - ] - }, - { - "55263264": [ - 60, - 2, - 128, - 64, - 3, - 224 - ] - }, - { - "55263271": [ - 8, - 172, - 67, - 99, - 12, - 160, - 98 - ] - }, - { - "55263280": [ - 48, - 162, - 15, - 255 - ] - }, - { - "55263285": [ - 2, - 35 - ] - }, - { - "55263288": [ - 140, - 98 - ] - }, - { - "55263293": [ - 74, - 16, - 36 - ] - }, - { - "55263297": [ - 68, - 16, - 37 - ] - }, - { - "55263301": [ - 75, - 16, - 36 - ] - }, - { - "55263305": [ - 70, - 16, - 37, - 172, - 98 - ] - }, - { - "55263312": [ - 149, - 34 - ] - }, - { - "55263315": [ - 4 - ] - }, - { - "55263317": [ - 162, - 40, - 33, - 36, - 231 - ] - }, - { - "55263323": [ - 1, - 128, - 226, - 255, - 255, - 20, - 64, - 255, - 236, - 36, - 99 - ] - }, - { - "55263335": [ - 4, - 60, - 2, - 128, - 64, - 172, - 67, - 99, - 12, - 3, - 224 - ] - }, - { - "55263347": [ - 8 - ] - }, - { - "55263352": [ - 39, - 189, - 255, - 176, - 175, - 191 - ] - }, - { - "55263359": [ - 76, - 175, - 190 - ] - }, - { - "55263363": [ - 72, - 175, - 183 - ] - }, - { - "55263367": [ - 68, - 175, - 182 - ] - }, - { - "55263371": [ - 64, - 175, - 181 - ] - }, - { - "55263375": [ - 60, - 175, - 180 - ] - }, - { - "55263379": [ - 56, - 175, - 179 - ] - }, - { - "55263383": [ - 52, - 175, - 178 - ] - }, - { - "55263387": [ - 48, - 175, - 177 - ] - }, - { - "55263391": [ - 44, - 175, - 176 - ] - }, - { - "55263395": [ - 40 - ] - }, - { - "55263397": [ - 128, - 168, - 37 - ] - }, - { - "55263402": [ - 176, - 37 - ] - }, - { - "55263406": [ - 144, - 37, - 60, - 20, - 128, - 64, - 38, - 148, - 97, - 204, - 60, - 30, - 128, - 64, - 60, - 19, - 128, - 64, - 60, - 23, - 56, - 227, - 175, - 180 - ] - }, - { - "55263431": [ - 32, - 36, - 7 - ] - }, - { - "55263435": [ - 18, - 2, - 192, - 48, - 37, - 2, - 128, - 40, - 37, - 12, - 16, - 20, - 28, - 2, - 160, - 32, - 37, - 143, - 197, - 99, - 16, - 16 - ] - }, - { - "55263459": [ - 31, - 54, - 241, - 142, - 57, - 36, - 66, - 255, - 224 - ] - }, - { - "55263469": [ - 81 - ] - }, - { - "55263471": [ - 24 - ] - }, - { - "55263474": [ - 24, - 16 - ] - }, - { - "55263477": [ - 3, - 24, - 131 - ] - }, - { - "55263481": [ - 2, - 39, - 195 - ] - }, - { - "55263485": [ - 100, - 24, - 35, - 20, - 114 - ] - }, - { - "55263491": [ - 22, - 36, - 176 - ] - }, - { - "55263495": [ - 4, - 140, - 167 - ] - }, - { - "55263501": [ - 7, - 59, - 2 - ] - }, - { - "55263505": [ - 81 - ] - }, - { - "55263507": [ - 24 - ] - }, - { - "55263510": [ - 48, - 16 - ] - }, - { - "55263513": [ - 6, - 48, - 131 - ] - }, - { - "55263517": [ - 196, - 48, - 35 - ] - }, - { - "55263521": [ - 6, - 24, - 192 - ] - }, - { - "55263525": [ - 102, - 48, - 33 - ] - }, - { - "55263529": [ - 6, - 48, - 64, - 150, - 131 - ] - }, - { - "55263535": [ - 6, - 175, - 163 - ] - }, - { - "55263539": [ - 24, - 150, - 131 - ] - }, - { - "55263543": [ - 4, - 175, - 163 - ] - }, - { - "55263547": [ - 20, - 140, - 163 - ] - }, - { - "55263552": [ - 48, - 99, - 15, - 255, - 175, - 163 - ] - }, - { - "55263559": [ - 16, - 48, - 231, - 15, - 255 - ] - }, - { - "55263565": [ - 70, - 48, - 35, - 143, - 165 - ] - }, - { - "55263571": [ - 32, - 12, - 16, - 20, - 175, - 2, - 160, - 32, - 37, - 2 - ] - }, - { - "55263582": [ - 40, - 37, - 142, - 98, - 99, - 12 - ] - }, - { - "55263589": [ - 162, - 16, - 43, - 84, - 64, - 255, - 223, - 128, - 162 - ] - }, - { - "55263600": [ - 38, - 82 - ] - }, - { - "55263603": [ - 1, - 36, - 2 - ] - }, - { - "55263607": [ - 6, - 22, - 66, - 255, - 211, - 38, - 214 - ] - }, - { - "55263615": [ - 18, - 60, - 2, - 128, - 64, - 140, - 67, - 99, - 16, - 60, - 2, - 128, - 64, - 172, - 67, - 99, - 12, - 143, - 191 - ] - }, - { - "55263635": [ - 76, - 143, - 190 - ] - }, - { - "55263639": [ - 72, - 143, - 183 - ] - }, - { - "55263643": [ - 68, - 143, - 182 - ] - }, - { - "55263647": [ - 64, - 143, - 181 - ] - }, - { - "55263651": [ - 60, - 143, - 180 - ] - }, - { - "55263655": [ - 56, - 143, - 179 - ] - }, - { - "55263659": [ - 52, - 143, - 178 - ] - }, - { - "55263663": [ - 48, - 143, - 177 - ] - }, - { - "55263667": [ - 44, - 143, - 176 - ] - }, - { - "55263671": [ - 40, - 3, - 224 - ] - }, - { - "55263675": [ - 8, - 39, - 189 - ] - }, - { - "55263679": [ - 80, - 77, - 81 - ] - }, - { - "55263684": [ - 78, - 111, - 114, - 109, - 97, - 108 - ] - }, - { - "55263697": [ - 8 - ] - }, - { - "55263699": [ - 14 - ] - }, - { - "55263701": [ - 95, - 3, - 1, - 1 - ] - }, - { - "55263713": [ - 24 - ] - }, - { - "55263715": [ - 24 - ] - }, - { - "55263717": [ - 4 - ] - }, - { - "55263719": [ - 3, - 4 - ] - }, - { - "55263729": [ - 16 - ] - }, - { - "55263731": [ - 16 - ] - }, - { - "55263733": [ - 6, - 3, - 1, - 1 - ] - }, - { - "55263745": [ - 16 - ] - }, - { - "55263747": [ - 16 - ] - }, - { - "55263749": [ - 3 - ] - }, - { - "55263751": [ - 3, - 4 - ] - }, - { - "55263756": [ - 1 - ] - }, - { - "55263759": [ - 1 - ] - }, - { - "55263761": [ - 1, - 1 - ] - }, - { - "55263764": [ - 1, - 1 - ] - }, - { - "55263767": [ - 1, - 1 - ] - }, - { - "55263772": [ - 4, - 1, - 7, - 5 - ] - }, - { - "55263777": [ - 8, - 6, - 2, - 255, - 255, - 255, - 255, - 255, - 255 - ] - }, - { - "55263788": [ - 17, - 194, - 45, - 212, - 67, - 34, - 8, - 84, - 206, - 209, - 117, - 26, - 169, - 58, - 234, - 164, - 171, - 33 - ] - }, - { - "55263808": [ - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 255 - ] - }, - { - "55263834": [ - 255 - ] - }, - { - "55263836": [ - 1 - ] - }, - { - "55263843": [ - 1, - 1, - 1, - 1, - 1 - ] - }, - { - "55263850": [ - 255 - ] - }, - { - "55263853": [ - 1 - ] - }, - { - "55263859": [ - 1, - 1, - 1, - 1, - 1, - 1 - ] - }, - { - "55263866": [ - 255, - 1, - 1, - 1 - ] - }, - { - "55263873": [ - 68, - 101, - 107, - 117 - ] - }, - { - "55263882": [ - 1, - 68, - 111, - 100, - 111, - 110, - 103, - 111 - ] - }, - { - "55263892": [ - 2, - 74, - 97, - 98, - 117 - ] - }, - { - "55263902": [ - 3, - 70, - 111, - 114, - 101, - 115, - 116 - ] - }, - { - "55263912": [ - 4, - 70, - 105, - 114, - 101 - ] - }, - { - "55263922": [ - 5, - 87, - 97, - 116, - 101, - 114 - ] - }, - { - "55263932": [ - 7, - 83, - 104, - 97, - 100, - 111, - 119 - ] - }, - { - "55263942": [ - 6, - 83, - 112, - 105, - 114, - 105, - 116 - ] - }, - { - "55263952": [ - 8, - 66, - 111, - 116, - 87 - ] - }, - { - "55263962": [ - 9, - 73, - 99, - 101 - ] - }, - { - "55263972": [ - 11, - 71, - 84, - 71 - ] - }, - { - "55263982": [ - 12, - 72, - 105, - 100, - 101, - 111, - 117, - 116 - ] - }, - { - "55263992": [ - 13, - 71, - 97, - 110, - 111, - 110 - ] - }, - { - "55264007": [ - 13 - ] - }, - { - "55264101": [ - 13, - 176 - ] - }, - { - "55264105": [ - 13, - 176 - ] - }, - { - "55264109": [ - 13, - 176 - ] - }, - { - "55264113": [ - 12, - 176 - ] - }, - { - "55264117": [ - 12, - 176 - ] - }, - { - "55264121": [ - 12, - 160 - ] - }, - { - "55264129": [ - 13, - 176 - ] - }, - { - "55264133": [ - 13, - 176 - ] - }, - { - "55264157": [ - 232, - 172 - ] - }, - { - "55264161": [ - 232, - 172 - ] - }, - { - "55264165": [ - 232, - 172 - ] - }, - { - "55264169": [ - 232, - 172 - ] - }, - { - "55264209": [ - 13, - 119, - 208 - ] - }, - { - "55264213": [ - 46, - 58, - 176 - ] - }, - { - "55264217": [ - 125, - 12, - 144, - 143, - 255, - 255, - 253 - ] - }, - { - "55264225": [ - 201, - 110 - ] - }, - { - "55264228": [ - 2, - 228, - 172 - ] - }, - { - "55264232": [ - 239, - 255, - 255, - 244, - 10, - 176, - 229 - ] - }, - { - "55264240": [ - 12, - 149, - 224 - ] - }, - { - "55264244": [ - 14, - 89, - 192 - ] - }, - { - "55264269": [ - 7, - 144 - ] - }, - { - "55264272": [ - 5, - 206, - 235, - 64, - 12, - 200, - 169, - 144, - 13, - 167, - 144 - ] - }, - { - "55264284": [ - 8, - 236, - 180 - ] - }, - { - "55264289": [ - 74, - 221, - 160 - ] - }, - { - "55264293": [ - 7, - 151, - 226, - 12, - 136, - 170, - 224, - 6, - 206, - 237, - 112 - ] - }, - { - "55264305": [ - 7, - 144 - ] - }, - { - "55264309": [ - 7, - 144 - ] - }, - { - "55264324": [ - 109, - 234 - ] - }, - { - "55264328": [ - 201, - 77, - 96 - ] - }, - { - "55264332": [ - 201, - 77, - 96, - 51, - 109, - 235, - 107, - 198 - ] - }, - { - "55264341": [ - 140, - 182 - ] - }, - { - "55264344": [ - 124, - 164, - 206, - 196, - 49, - 9, - 195, - 187 - ] - }, - { - "55264353": [ - 9, - 195, - 187 - ] - }, - { - "55264357": [ - 2, - 206, - 212 - ] - }, - { - "55264380": [ - 4, - 206, - 251 - ] - }, - { - "55264384": [ - 10, - 213 - ] - }, - { - "55264388": [ - 8, - 227 - ] - }, - { - "55264392": [ - 9, - 236 - ] - }, - { - "55264396": [ - 126, - 77, - 176, - 171, - 187, - 5, - 232, - 170, - 188 - ] - }, - { - "55264406": [ - 142, - 214, - 126, - 147, - 110, - 208, - 8, - 222, - 217, - 234 - ] - }, - { - "55264437": [ - 12, - 160 - ] - }, - { - "55264441": [ - 12, - 160 - ] - }, - { - "55264445": [ - 12, - 160 - ] - }, - { - "55264449": [ - 12, - 160 - ] - }, - { - "55264486": [ - 201 - ] - }, - { - "55264489": [ - 7, - 226 - ] - }, - { - "55264493": [ - 12, - 176 - ] - }, - { - "55264497": [ - 14, - 128 - ] - }, - { - "55264501": [ - 111, - 48 - ] - }, - { - "55264505": [ - 142 - ] - }, - { - "55264509": [ - 142 - ] - }, - { - "55264513": [ - 111, - 64 - ] - }, - { - "55264517": [ - 14, - 128 - ] - }, - { - "55264521": [ - 12, - 176 - ] - }, - { - "55264525": [ - 7, - 226 - ] - }, - { - "55264530": [ - 201 - ] - }, - { - "55264541": [ - 187 - ] - }, - { - "55264545": [ - 94, - 64 - ] - }, - { - "55264549": [ - 12, - 160 - ] - }, - { - "55264553": [ - 10, - 208 - ] - }, - { - "55264557": [ - 7, - 225 - ] - }, - { - "55264561": [ - 6, - 244 - ] - }, - { - "55264565": [ - 6, - 244 - ] - }, - { - "55264569": [ - 7, - 225 - ] - }, - { - "55264573": [ - 10, - 208 - ] - }, - { - "55264577": [ - 12, - 160 - ] - }, - { - "55264581": [ - 94, - 64 - ] - }, - { - "55264585": [ - 187 - ] - }, - { - "55264605": [ - 10, - 128 - ] - }, - { - "55264608": [ - 12, - 138, - 138, - 176, - 3, - 190, - 218, - 16, - 3, - 190, - 218, - 16, - 12, - 138, - 138, - 176 - ] - }, - { - "55264625": [ - 10, - 128 - ] - }, - { - "55264665": [ - 12, - 160 - ] - }, - { - "55264669": [ - 12, - 160 - ] - }, - { - "55264673": [ - 12, - 160 - ] - }, - { - "55264676": [ - 175, - 255, - 255, - 248 - ] - }, - { - "55264681": [ - 12, - 160 - ] - }, - { - "55264685": [ - 12, - 160 - ] - }, - { - "55264689": [ - 12, - 160 - ] - }, - { - "55264745": [ - 13, - 208 - ] - }, - { - "55264749": [ - 14, - 192 - ] - }, - { - "55264753": [ - 79, - 128 - ] - }, - { - "55264757": [ - 157 - ] - }, - { - "55264793": [ - 223, - 251 - ] - }, - { - "55264857": [ - 14, - 192 - ] - }, - { - "55264861": [ - 14, - 192 - ] - }, - { - "55264886": [ - 11, - 192 - ] - }, - { - "55264890": [ - 78, - 96 - ] - }, - { - "55264894": [ - 188 - ] - }, - { - "55264897": [ - 3, - 232 - ] - }, - { - "55264901": [ - 10, - 208 - ] - }, - { - "55264905": [ - 30, - 144 - ] - }, - { - "55264909": [ - 158, - 32 - ] - }, - { - "55264913": [ - 218 - ] - }, - { - "55264916": [ - 7, - 227 - ] - }, - { - "55264920": [ - 12, - 176 - ] - }, - { - "55264924": [ - 110, - 80 - ] - }, - { - "55264940": [ - 3, - 206, - 235 - ] - }, - { - "55264944": [ - 11, - 213, - 126, - 144, - 14, - 144, - 11, - 208, - 95, - 112, - 9, - 224, - 111, - 108, - 185, - 224, - 95, - 112, - 9, - 224, - 14, - 144, - 11, - 208, - 11, - 213, - 126, - 144, - 3, - 206, - 235 - ] - }, - { - "55264996": [ - 10, - 255, - 224 - ] - }, - { - "55265001": [ - 8, - 224 - ] - }, - { - "55265005": [ - 8, - 224 - ] - }, - { - "55265009": [ - 8, - 224 - ] - }, - { - "55265013": [ - 8, - 224 - ] - }, - { - "55265017": [ - 8, - 224 - ] - }, - { - "55265021": [ - 8, - 224 - ] - }, - { - "55265025": [ - 8, - 224 - ] - }, - { - "55265028": [ - 8, - 255, - 255, - 224 - ] - }, - { - "55265052": [ - 8, - 222, - 234 - ] - }, - { - "55265056": [ - 12, - 131, - 126, - 144 - ] - }, - { - "55265062": [ - 12, - 192 - ] - }, - { - "55265066": [ - 46, - 160 - ] - }, - { - "55265070": [ - 189, - 32 - ] - }, - { - "55265073": [ - 11, - 212 - ] - }, - { - "55265077": [ - 189, - 64 - ] - }, - { - "55265080": [ - 11, - 212 - ] - }, - { - "55265084": [ - 47, - 255, - 255, - 208 - ] - }, - { - "55265108": [ - 7, - 206, - 234 - ] - }, - { - "55265112": [ - 12, - 131, - 126, - 144 - ] - }, - { - "55265118": [ - 12, - 176 - ] - }, - { - "55265121": [ - 2, - 126, - 144 - ] - }, - { - "55265125": [ - 191, - 251 - ] - }, - { - "55265129": [ - 2, - 125, - 160 - ] - }, - { - "55265134": [ - 10, - 208, - 92, - 98, - 125, - 176, - 9, - 222, - 235, - 48 - ] - }, - { - "55265165": [ - 2, - 222 - ] - }, - { - "55265169": [ - 11, - 222 - ] - }, - { - "55265173": [ - 125, - 158 - ] - }, - { - "55265176": [ - 2, - 215, - 158 - ] - }, - { - "55265180": [ - 11, - 176, - 158 - ] - }, - { - "55265184": [ - 110, - 64, - 158 - ] - }, - { - "55265188": [ - 159, - 255, - 255, - 247 - ] - }, - { - "55265194": [ - 158 - ] - }, - { - "55265198": [ - 158 - ] - }, - { - "55265220": [ - 12, - 255, - 255, - 80, - 12, - 160 - ] - }, - { - "55265228": [ - 12, - 160 - ] - }, - { - "55265232": [ - 12, - 238, - 234 - ] - }, - { - "55265237": [ - 3, - 142, - 144 - ] - }, - { - "55265242": [ - 11, - 192 - ] - }, - { - "55265246": [ - 11, - 192, - 92, - 99, - 142, - 144, - 9, - 222, - 218 - ] - }, - { - "55265277": [ - 174, - 236, - 48, - 10, - 232, - 57, - 128, - 14, - 144 - ] - }, - { - "55265288": [ - 79, - 174, - 236, - 64, - 111, - 213, - 93, - 192, - 95, - 144, - 9, - 224, - 14, - 144, - 9, - 224, - 12, - 213, - 93, - 192, - 3, - 206, - 236, - 64 - ] - }, - { - "55265332": [ - 95, - 255, - 255, - 208 - ] - }, - { - "55265338": [ - 13, - 160 - ] - }, - { - "55265342": [ - 126, - 64 - ] - }, - { - "55265346": [ - 204 - ] - }, - { - "55265349": [ - 4, - 232 - ] - }, - { - "55265353": [ - 10, - 208 - ] - }, - { - "55265357": [ - 13, - 160 - ] - }, - { - "55265361": [ - 142, - 64 - ] - }, - { - "55265365": [ - 204 - ] - }, - { - "55265388": [ - 5, - 206, - 236, - 48, - 13, - 196, - 93, - 176, - 14, - 144, - 11, - 208, - 11, - 196, - 93, - 144, - 4, - 223, - 252, - 32, - 29, - 180, - 92, - 192, - 95, - 96, - 9, - 224, - 46, - 179, - 92, - 208, - 7, - 222, - 236, - 80 - ] - }, - { - "55265444": [ - 6, - 222, - 235 - ] - }, - { - "55265448": [ - 13, - 179, - 126, - 144, - 95, - 80, - 11, - 208, - 95, - 80, - 11, - 224, - 13, - 179, - 126, - 224, - 6, - 222, - 219, - 224 - ] - }, - { - "55265470": [ - 11, - 192, - 9, - 116, - 158, - 112, - 5, - 222, - 216 - ] - }, - { - "55265509": [ - 14, - 192 - ] - }, - { - "55265513": [ - 14, - 192 - ] - }, - { - "55265529": [ - 14, - 192 - ] - }, - { - "55265533": [ - 14, - 192 - ] - }, - { - "55265565": [ - 14, - 192 - ] - }, - { - "55265569": [ - 14, - 192 - ] - }, - { - "55265585": [ - 13, - 208 - ] - }, - { - "55265589": [ - 14, - 192 - ] - }, - { - "55265593": [ - 79, - 128 - ] - }, - { - "55265597": [ - 157 - ] - }, - { - "55265622": [ - 41, - 200 - ] - }, - { - "55265625": [ - 123, - 237, - 147, - 141, - 218, - 64 - ] - }, - { - "55265632": [ - 141, - 218, - 64 - ] - }, - { - "55265637": [ - 123, - 236, - 147 - ] - }, - { - "55265642": [ - 41, - 200 - ] - }, - { - "55265680": [ - 175, - 255, - 255, - 248 - ] - }, - { - "55265692": [ - 175, - 255, - 255, - 248 - ] - }, - { - "55265732": [ - 172, - 129 - ] - }, - { - "55265736": [ - 74, - 222, - 182 - ] - }, - { - "55265741": [ - 6, - 173, - 214 - ] - }, - { - "55265745": [ - 6, - 173, - 214, - 74, - 222, - 182 - ] - }, - { - "55265752": [ - 172, - 129 - ] - }, - { - "55265780": [ - 4, - 190, - 236, - 48, - 9, - 164, - 110, - 160 - ] - }, - { - "55265790": [ - 29, - 160 - ] - }, - { - "55265793": [ - 2, - 205, - 48 - ] - }, - { - "55265797": [ - 12, - 193 - ] - }, - { - "55265801": [ - 14, - 144 - ] - }, - { - "55265809": [ - 14, - 144 - ] - }, - { - "55265813": [ - 14, - 144 - ] - }, - { - "55265836": [ - 1, - 174, - 237, - 112, - 12, - 215, - 57, - 228, - 126, - 32 - ] - }, - { - "55265847": [ - 201, - 186, - 10, - 238, - 202, - 215, - 110, - 100, - 218, - 214, - 156 - ] - }, - { - "55265859": [ - 170, - 215, - 110, - 100, - 218, - 186, - 10, - 238, - 202, - 110, - 64 - ] - }, - { - "55265872": [ - 10, - 216, - 48 - ] - }, - { - "55265877": [ - 141, - 238, - 144 - ] - }, - { - "55265893": [ - 62, - 208 - ] - }, - { - "55265897": [ - 157, - 230 - ] - }, - { - "55265901": [ - 203, - 203 - ] - }, - { - "55265904": [ - 3, - 232, - 173 - ] - }, - { - "55265908": [ - 8, - 226, - 111, - 96, - 12, - 192, - 14, - 160, - 46, - 255, - 255, - 208, - 142, - 80, - 8, - 245, - 205 - ] - }, - { - "55265926": [ - 1, - 234 - ] - }, - { - "55265948": [ - 14, - 255, - 236, - 64, - 14, - 144, - 93, - 192, - 14, - 144, - 10, - 224, - 14, - 144, - 93, - 192, - 14, - 255, - 253, - 80, - 14, - 144, - 75, - 210, - 14, - 144, - 5, - 246, - 14, - 144, - 75, - 227, - 14, - 255, - 237, - 128 - ] - }, - { - "55266005": [ - 157, - 237, - 128, - 8, - 233, - 54, - 176, - 13, - 176 - ] - }, - { - "55266016": [ - 63, - 144 - ] - }, - { - "55266020": [ - 95, - 112 - ] - }, - { - "55266024": [ - 30, - 144 - ] - }, - { - "55266028": [ - 13, - 176 - ] - }, - { - "55266032": [ - 8, - 233, - 71, - 176 - ] - }, - { - "55266037": [ - 157, - 237, - 128 - ] - }, - { - "55266060": [ - 95, - 254, - 216 - ] - }, - { - "55266064": [ - 95, - 101, - 174, - 128, - 95, - 96, - 12, - 208, - 95, - 96, - 9, - 224, - 95, - 96, - 9, - 240, - 95, - 96, - 9, - 224, - 95, - 96, - 12, - 208, - 95, - 101, - 174, - 128, - 95, - 254, - 216 - ] - }, - { - "55266116": [ - 13, - 255, - 255, - 224, - 13, - 176 - ] - }, - { - "55266124": [ - 13, - 176 - ] - }, - { - "55266128": [ - 13, - 176 - ] - }, - { - "55266132": [ - 13, - 255, - 255, - 192, - 13, - 176 - ] - }, - { - "55266140": [ - 13, - 176 - ] - }, - { - "55266144": [ - 13, - 176 - ] - }, - { - "55266148": [ - 13, - 255, - 255, - 240 - ] - }, - { - "55266172": [ - 11, - 255, - 255, - 244, - 11, - 208 - ] - }, - { - "55266180": [ - 11, - 208 - ] - }, - { - "55266184": [ - 11, - 208 - ] - }, - { - "55266188": [ - 11, - 255, - 255, - 192, - 11, - 208 - ] - }, - { - "55266196": [ - 11, - 208 - ] - }, - { - "55266200": [ - 11, - 208 - ] - }, - { - "55266204": [ - 11, - 208 - ] - }, - { - "55266228": [ - 1, - 174, - 237, - 96, - 11, - 231, - 56, - 160, - 78, - 144 - ] - }, - { - "55266240": [ - 143, - 64 - ] - }, - { - "55266244": [ - 159, - 16, - 191, - 242, - 127, - 64, - 7, - 242, - 78, - 144, - 7, - 242, - 11, - 231, - 57, - 242, - 1, - 190, - 237, - 144 - ] - }, - { - "55266284": [ - 95, - 96, - 9, - 224, - 95, - 96, - 9, - 224, - 95, - 96, - 9, - 224, - 95, - 96, - 9, - 224, - 95, - 255, - 255, - 224, - 95, - 96, - 9, - 224, - 95, - 96, - 9, - 224, - 95, - 96, - 9, - 224, - 95, - 96, - 9, - 224 - ] - }, - { - "55266340": [ - 13, - 255, - 255, - 176 - ] - }, - { - "55266345": [ - 13, - 176 - ] - }, - { - "55266349": [ - 13, - 176 - ] - }, - { - "55266353": [ - 13, - 176 - ] - }, - { - "55266357": [ - 13, - 176 - ] - }, - { - "55266361": [ - 13, - 176 - ] - }, - { - "55266365": [ - 13, - 176 - ] - }, - { - "55266369": [ - 13, - 176 - ] - }, - { - "55266372": [ - 13, - 255, - 255, - 176 - ] - }, - { - "55266397": [ - 207, - 255, - 64 - ] - }, - { - "55266402": [ - 127, - 64 - ] - }, - { - "55266406": [ - 127, - 64 - ] - }, - { - "55266410": [ - 127, - 64 - ] - }, - { - "55266414": [ - 127, - 64 - ] - }, - { - "55266418": [ - 127, - 48, - 117 - ] - }, - { - "55266422": [ - 158 - ] - }, - { - "55266424": [ - 141, - 100, - 220 - ] - }, - { - "55266428": [ - 43, - 238, - 197 - ] - }, - { - "55266452": [ - 95, - 96, - 9, - 231, - 95, - 96, - 158, - 112, - 95, - 105, - 231 - ] - }, - { - "55266464": [ - 95, - 190, - 128 - ] - }, - { - "55266468": [ - 95, - 237, - 176 - ] - }, - { - "55266472": [ - 95, - 135, - 232 - ] - }, - { - "55266476": [ - 95, - 96, - 174, - 64, - 95, - 96, - 29, - 192, - 95, - 96, - 6, - 234 - ] - }, - { - "55266508": [ - 12, - 192 - ] - }, - { - "55266512": [ - 12, - 192 - ] - }, - { - "55266516": [ - 12, - 192 - ] - }, - { - "55266520": [ - 12, - 192 - ] - }, - { - "55266524": [ - 12, - 192 - ] - }, - { - "55266528": [ - 12, - 192 - ] - }, - { - "55266532": [ - 12, - 192 - ] - }, - { - "55266536": [ - 12, - 192 - ] - }, - { - "55266540": [ - 12, - 255, - 255, - 247 - ] - }, - { - "55266564": [ - 175, - 160, - 12, - 248, - 174, - 208, - 46, - 232, - 173, - 213, - 155, - 232, - 173, - 170, - 200, - 232, - 173, - 93, - 225, - 232, - 173, - 13, - 176, - 232, - 173 - ] - }, - { - "55266591": [ - 232, - 173 - ] - }, - { - "55266595": [ - 232, - 173 - ] - }, - { - "55266599": [ - 232 - ] - }, - { - "55266620": [ - 95, - 192, - 8, - 224, - 95, - 230, - 8, - 224, - 95, - 203, - 8, - 224, - 95, - 126, - 72, - 224, - 95, - 92, - 168, - 224, - 95, - 87, - 232, - 224, - 95, - 80, - 220, - 224, - 95, - 80, - 158, - 224, - 95, - 80, - 46, - 224 - ] - }, - { - "55266676": [ - 4, - 206, - 235, - 32, - 12, - 213, - 110, - 160, - 62, - 128, - 10, - 224, - 127, - 80, - 8, - 242, - 127, - 64, - 8, - 244, - 127, - 80, - 8, - 242, - 62, - 128, - 10, - 224, - 12, - 213, - 110, - 176, - 4, - 206, - 235, - 32 - ] - }, - { - "55266732": [ - 13, - 255, - 237, - 96, - 13, - 176, - 92, - 226, - 13, - 176, - 6, - 246, - 13, - 176, - 6, - 246, - 13, - 176, - 92, - 226, - 13, - 255, - 237, - 96, - 13, - 176 - ] - }, - { - "55266760": [ - 13, - 176 - ] - }, - { - "55266764": [ - 13, - 176 - ] - }, - { - "55266788": [ - 4, - 206, - 235, - 32, - 12, - 213, - 110, - 160, - 62, - 128, - 10, - 224, - 127, - 80, - 8, - 242, - 127, - 64, - 8, - 244, - 127, - 80, - 8, - 241, - 62, - 128, - 10, - 208, - 12, - 213, - 110, - 160, - 4, - 206, - 252, - 32 - ] - }, - { - "55266826": [ - 174, - 80 - ] - }, - { - "55266830": [ - 12, - 128 - ] - }, - { - "55266844": [ - 95, - 254, - 235, - 32, - 95, - 113, - 126, - 176, - 95, - 112, - 12, - 208, - 95, - 113, - 110, - 160, - 95, - 255, - 234 - ] - }, - { - "55266864": [ - 95, - 114, - 174, - 64, - 95, - 112, - 13, - 176, - 95, - 112, - 8, - 229, - 95, - 112 - ] - }, - { - "55266879": [ - 219 - ] - }, - { - "55266900": [ - 6, - 206, - 235, - 48, - 13, - 196, - 90, - 144, - 79, - 96 - ] - }, - { - "55266912": [ - 14, - 198 - ] - }, - { - "55266916": [ - 5, - 206, - 235, - 64 - ] - }, - { - "55266922": [ - 108, - 192 - ] - }, - { - "55266926": [ - 8, - 224, - 12, - 115, - 92, - 208, - 8, - 222, - 236, - 80 - ] - }, - { - "55266956": [ - 207, - 255, - 255, - 251 - ] - }, - { - "55266961": [ - 13, - 176 - ] - }, - { - "55266965": [ - 13, - 176 - ] - }, - { - "55266969": [ - 13, - 176 - ] - }, - { - "55266973": [ - 13, - 176 - ] - }, - { - "55266977": [ - 13, - 176 - ] - }, - { - "55266981": [ - 13, - 176 - ] - }, - { - "55266985": [ - 13, - 176 - ] - }, - { - "55266989": [ - 13, - 176 - ] - }, - { - "55267012": [ - 79, - 112, - 9, - 224, - 79, - 112, - 9, - 224, - 79, - 112, - 9, - 224, - 79, - 112, - 9, - 224, - 79, - 112, - 9, - 224, - 63, - 112, - 9, - 224, - 46, - 112, - 10, - 208, - 13, - 196, - 93, - 192, - 5, - 206, - 236, - 64 - ] - }, - { - "55267068": [ - 173 - ] - }, - { - "55267070": [ - 3, - 232, - 111, - 80, - 8, - 227, - 14, - 144, - 11, - 192, - 11, - 192, - 13, - 144, - 8, - 225, - 94, - 64, - 2, - 231, - 173 - ] - }, - { - "55267093": [ - 203, - 202 - ] - }, - { - "55267097": [ - 157, - 230 - ] - }, - { - "55267101": [ - 62, - 208 - ] - }, - { - "55267124": [ - 232 - ] - }, - { - "55267127": [ - 173, - 218 - ] - }, - { - "55267131": [ - 203, - 203 - ] - }, - { - "55267135": [ - 218, - 172, - 14, - 192, - 232, - 141, - 109, - 225, - 229, - 110, - 155, - 216, - 224, - 30, - 200, - 172, - 208, - 13, - 227, - 126, - 192, - 12, - 208, - 14, - 160 - ] - }, - { - "55267180": [ - 110, - 112, - 7, - 231, - 10, - 210, - 29, - 176, - 2, - 218, - 173, - 32 - ] - }, - { - "55267193": [ - 126, - 231 - ] - }, - { - "55267197": [ - 62, - 226 - ] - }, - { - "55267201": [ - 189, - 218 - ] - }, - { - "55267204": [ - 7, - 230, - 126, - 96, - 62, - 160, - 11, - 208, - 189, - 32, - 4, - 233 - ] - }, - { - "55267236": [ - 174, - 32, - 5, - 232, - 45, - 160, - 12, - 192, - 7, - 229, - 126, - 80 - ] - }, - { - "55267249": [ - 204, - 218 - ] - }, - { - "55267253": [ - 78, - 210 - ] - }, - { - "55267257": [ - 13, - 176 - ] - }, - { - "55267261": [ - 13, - 176 - ] - }, - { - "55267265": [ - 13, - 176 - ] - }, - { - "55267269": [ - 13, - 176 - ] - }, - { - "55267292": [ - 14, - 255, - 255, - 248 - ] - }, - { - "55267298": [ - 11, - 211 - ] - }, - { - "55267302": [ - 126, - 112 - ] - }, - { - "55267305": [ - 3, - 234 - ] - }, - { - "55267309": [ - 11, - 209 - ] - }, - { - "55267313": [ - 142, - 80 - ] - }, - { - "55267316": [ - 4, - 233 - ] - }, - { - "55267320": [ - 12, - 192 - ] - }, - { - "55267324": [ - 31, - 255, - 255, - 250 - ] - }, - { - "55267341": [ - 79, - 252 - ] - }, - { - "55267345": [ - 79, - 80 - ] - }, - { - "55267349": [ - 79, - 80 - ] - }, - { - "55267353": [ - 79, - 80 - ] - }, - { - "55267357": [ - 79, - 80 - ] - }, - { - "55267361": [ - 79, - 80 - ] - }, - { - "55267365": [ - 79, - 80 - ] - }, - { - "55267369": [ - 79, - 80 - ] - }, - { - "55267373": [ - 79, - 80 - ] - }, - { - "55267377": [ - 79, - 80 - ] - }, - { - "55267381": [ - 79, - 80 - ] - }, - { - "55267385": [ - 79, - 252 - ] - }, - { - "55267404": [ - 110, - 80 - ] - }, - { - "55267408": [ - 12, - 176 - ] - }, - { - "55267412": [ - 7, - 227 - ] - }, - { - "55267417": [ - 218 - ] - }, - { - "55267421": [ - 158, - 32 - ] - }, - { - "55267425": [ - 30, - 144 - ] - }, - { - "55267429": [ - 10, - 208 - ] - }, - { - "55267433": [ - 3, - 232 - ] - }, - { - "55267438": [ - 188 - ] - }, - { - "55267442": [ - 78, - 96 - ] - }, - { - "55267446": [ - 11, - 192 - ] - }, - { - "55267453": [ - 223, - 224 - ] - }, - { - "55267457": [ - 8, - 224 - ] - }, - { - "55267461": [ - 8, - 224 - ] - }, - { - "55267465": [ - 8, - 224 - ] - }, - { - "55267469": [ - 8, - 224 - ] - }, - { - "55267473": [ - 8, - 224 - ] - }, - { - "55267477": [ - 8, - 224 - ] - }, - { - "55267481": [ - 8, - 224 - ] - }, - { - "55267485": [ - 8, - 224 - ] - }, - { - "55267489": [ - 8, - 224 - ] - }, - { - "55267493": [ - 8, - 224 - ] - }, - { - "55267497": [ - 223, - 224 - ] - }, - { - "55267517": [ - 94, - 210 - ] - }, - { - "55267521": [ - 220, - 219 - ] - }, - { - "55267524": [ - 10, - 210, - 94, - 128, - 126, - 80, - 7, - 229 - ] - }, - { - "55267616": [ - 255, - 255, - 255, - 253 - ] - }, - { - "55267624": [ - 2, - 202 - ] - }, - { - "55267629": [ - 44, - 144 - ] - }, - { - "55267692": [ - 5, - 206, - 235, - 16, - 11, - 147, - 109, - 160 - ] - }, - { - "55267702": [ - 11, - 192, - 8, - 222, - 255, - 192, - 62, - 147, - 11, - 208, - 79, - 130, - 126, - 208, - 10, - 238, - 219, - 208 - ] - }, - { - "55267732": [ - 13, - 144 - ] - }, - { - "55267736": [ - 13, - 144 - ] - }, - { - "55267740": [ - 13, - 144 - ] - }, - { - "55267744": [ - 13, - 144 - ] - }, - { - "55267748": [ - 13, - 189, - 236, - 64, - 13, - 230, - 93, - 192, - 13, - 176, - 8, - 224, - 13, - 160, - 7, - 242, - 13, - 176, - 8, - 224, - 13, - 230, - 77, - 176, - 13, - 189, - 236, - 64 - ] - }, - { - "55267805": [ - 141, - 237, - 112, - 7, - 233, - 54, - 160, - 12, - 192 - ] - }, - { - "55267816": [ - 13, - 176 - ] - }, - { - "55267820": [ - 12, - 192 - ] - }, - { - "55267824": [ - 7, - 233, - 54, - 160 - ] - }, - { - "55267829": [ - 141, - 237, - 112 - ] - }, - { - "55267846": [ - 11, - 192 - ] - }, - { - "55267850": [ - 11, - 192 - ] - }, - { - "55267854": [ - 11, - 192 - ] - }, - { - "55267858": [ - 11, - 192, - 5, - 222, - 220, - 192, - 13, - 196, - 142, - 192, - 95, - 96, - 12, - 192, - 127, - 48, - 11, - 192, - 95, - 96, - 12, - 192, - 13, - 196, - 142, - 192, - 5, - 222, - 220, - 192 - ] - }, - { - "55267916": [ - 3, - 190, - 236, - 48, - 12, - 213, - 76, - 192, - 79, - 96, - 7, - 224, - 111, - 255, - 255, - 243, - 79, - 80 - ] - }, - { - "55267936": [ - 12, - 197, - 56, - 192, - 3, - 190, - 236, - 96 - ] - }, - { - "55267957": [ - 5, - 222, - 208 - ] - }, - { - "55267961": [ - 12, - 178 - ] - }, - { - "55267965": [ - 13, - 144 - ] - }, - { - "55267969": [ - 14, - 128 - ] - }, - { - "55267972": [ - 13, - 255, - 255, - 208 - ] - }, - { - "55267977": [ - 14, - 128 - ] - }, - { - "55267981": [ - 14, - 128 - ] - }, - { - "55267985": [ - 14, - 128 - ] - }, - { - "55267989": [ - 14, - 128 - ] - }, - { - "55267993": [ - 14, - 128 - ] - }, - { - "55267997": [ - 14, - 128 - ] - }, - { - "55268028": [ - 5, - 222, - 220, - 192, - 13, - 196, - 142, - 192, - 95, - 96, - 12, - 192, - 127, - 48, - 11, - 192, - 95, - 96, - 12, - 192, - 13, - 196, - 142, - 192, - 5, - 222, - 220, - 176 - ] - }, - { - "55268058": [ - 12, - 160, - 9, - 148, - 126, - 96, - 4, - 206, - 233 - ] - }, - { - "55268068": [ - 13, - 160 - ] - }, - { - "55268072": [ - 13, - 160 - ] - }, - { - "55268076": [ - 13, - 160 - ] - }, - { - "55268080": [ - 13, - 160 - ] - }, - { - "55268084": [ - 13, - 189, - 237, - 64, - 13, - 230, - 93, - 160, - 13, - 176, - 11, - 192, - 13, - 160, - 11, - 192, - 13, - 160, - 11, - 192, - 13, - 160, - 11, - 192, - 13, - 160, - 11, - 192 - ] - }, - { - "55268125": [ - 11, - 192 - ] - }, - { - "55268140": [ - 9, - 255, - 192 - ] - }, - { - "55268145": [ - 11, - 192 - ] - }, - { - "55268149": [ - 11, - 192 - ] - }, - { - "55268153": [ - 11, - 192 - ] - }, - { - "55268157": [ - 11, - 192 - ] - }, - { - "55268161": [ - 11, - 192 - ] - }, - { - "55268164": [ - 14, - 255, - 255, - 224 - ] - }, - { - "55268181": [ - 7, - 224 - ] - }, - { - "55268196": [ - 7, - 255, - 224 - ] - }, - { - "55268201": [ - 7, - 224 - ] - }, - { - "55268205": [ - 7, - 224 - ] - }, - { - "55268209": [ - 7, - 224 - ] - }, - { - "55268213": [ - 7, - 224 - ] - }, - { - "55268217": [ - 7, - 224 - ] - }, - { - "55268221": [ - 7, - 224 - ] - }, - { - "55268225": [ - 7, - 224 - ] - }, - { - "55268229": [ - 27, - 208 - ] - }, - { - "55268232": [ - 13, - 254, - 112 - ] - }, - { - "55268236": [ - 11, - 192 - ] - }, - { - "55268240": [ - 11, - 192 - ] - }, - { - "55268244": [ - 11, - 192 - ] - }, - { - "55268248": [ - 11, - 192 - ] - }, - { - "55268252": [ - 11, - 192, - 61, - 194, - 11, - 195, - 219 - ] - }, - { - "55268260": [ - 11, - 221, - 192 - ] - }, - { - "55268264": [ - 11, - 252, - 229 - ] - }, - { - "55268268": [ - 11, - 208, - 205, - 16, - 11, - 192, - 61, - 176, - 11, - 192, - 7, - 232 - ] - }, - { - "55268292": [ - 14, - 255, - 64 - ] - }, - { - "55268297": [ - 95, - 64 - ] - }, - { - "55268301": [ - 95, - 64 - ] - }, - { - "55268305": [ - 95, - 64 - ] - }, - { - "55268309": [ - 95, - 64 - ] - }, - { - "55268313": [ - 95, - 64 - ] - }, - { - "55268317": [ - 95, - 64 - ] - }, - { - "55268321": [ - 95, - 64 - ] - }, - { - "55268325": [ - 79, - 80 - ] - }, - { - "55268329": [ - 14, - 160 - ] - }, - { - "55268333": [ - 8, - 239, - 176 - ] - }, - { - "55268364": [ - 141, - 221, - 174, - 192, - 142, - 77, - 197, - 228, - 141, - 12, - 176, - 230, - 141, - 11, - 160, - 231, - 141, - 11, - 160, - 231, - 141, - 11, - 160, - 231, - 141, - 11, - 160, - 231 - ] - }, - { - "55268420": [ - 13, - 189, - 237, - 64, - 13, - 230, - 93, - 160, - 13, - 176, - 11, - 192, - 13, - 160, - 11, - 192, - 13, - 160, - 11, - 192, - 13, - 160, - 11, - 192, - 13, - 160, - 11, - 192 - ] - }, - { - "55268476": [ - 4, - 206, - 235, - 32, - 12, - 213, - 109, - 160, - 30, - 112, - 10, - 208, - 95, - 96, - 8, - 224, - 30, - 112, - 10, - 208, - 12, - 212, - 109, - 176, - 4, - 206, - 235, - 32 - ] - }, - { - "55268532": [ - 13, - 189, - 236, - 48, - 13, - 230, - 93, - 176, - 13, - 176, - 9, - 224, - 13, - 160, - 7, - 224, - 13, - 176, - 8, - 224, - 13, - 230, - 93, - 176, - 13, - 190, - 236, - 64, - 13, - 144 - ] - }, - { - "55268564": [ - 13, - 144 - ] - }, - { - "55268568": [ - 13, - 144 - ] - }, - { - "55268588": [ - 4, - 206, - 220, - 192, - 12, - 196, - 126, - 192, - 30, - 112, - 12, - 192, - 95, - 96, - 11, - 192, - 46, - 112, - 12, - 192, - 12, - 196, - 126, - 192, - 5, - 206, - 219, - 192 - ] - }, - { - "55268618": [ - 10, - 192 - ] - }, - { - "55268622": [ - 10, - 192 - ] - }, - { - "55268626": [ - 10, - 192 - ] - }, - { - "55268645": [ - 204, - 222, - 249 - ] - }, - { - "55268649": [ - 206, - 131 - ] - }, - { - "55268653": [ - 203 - ] - }, - { - "55268657": [ - 202 - ] - }, - { - "55268661": [ - 202 - ] - }, - { - "55268665": [ - 202 - ] - }, - { - "55268669": [ - 202 - ] - }, - { - "55268700": [ - 4, - 206, - 234, - 16, - 11, - 212, - 91, - 96, - 11, - 212 - ] - }, - { - "55268712": [ - 3, - 189, - 219, - 32 - ] - }, - { - "55268718": [ - 77, - 160, - 11, - 148, - 94, - 160, - 5, - 206, - 235, - 32 - ] - }, - { - "55268749": [ - 142 - ] - }, - { - "55268753": [ - 142 - ] - }, - { - "55268756": [ - 111, - 255, - 255, - 176 - ] - }, - { - "55268761": [ - 142 - ] - }, - { - "55268765": [ - 142 - ] - }, - { - "55268769": [ - 142 - ] - }, - { - "55268773": [ - 142 - ] - }, - { - "55268777": [ - 110, - 112 - ] - }, - { - "55268781": [ - 11, - 239, - 176 - ] - }, - { - "55268812": [ - 13, - 160, - 11, - 192, - 13, - 160, - 11, - 192, - 13, - 160, - 11, - 192, - 13, - 160, - 11, - 192, - 13, - 160, - 11, - 192, - 11, - 212, - 126, - 192, - 5, - 222, - 219, - 192 - ] - }, - { - "55268868": [ - 110, - 48, - 7, - 227, - 13, - 144, - 11, - 192, - 10, - 208, - 30, - 128, - 5, - 228, - 142, - 32 - ] - }, - { - "55268885": [ - 218, - 203 - ] - }, - { - "55268889": [ - 157, - 231 - ] - }, - { - "55268893": [ - 62, - 224 - ] - }, - { - "55268924": [ - 232 - ] - }, - { - "55268927": [ - 172, - 202 - ] - }, - { - "55268931": [ - 202, - 172, - 13, - 176, - 231, - 110, - 61, - 213, - 226, - 14, - 171, - 202, - 208, - 12, - 231, - 158, - 176, - 10, - 225, - 95, - 128 - ] - }, - { - "55268980": [ - 61, - 160, - 11, - 192, - 6, - 230, - 158, - 64 - ] - }, - { - "55268989": [ - 158, - 231 - ] - }, - { - "55268993": [ - 46, - 208 - ] - }, - { - "55268997": [ - 204, - 218 - ] - }, - { - "55269000": [ - 9, - 228, - 110, - 112, - 110, - 112, - 9, - 228 - ] - }, - { - "55269036": [ - 110, - 80, - 5, - 229, - 13, - 160, - 11, - 208, - 9, - 224, - 14, - 144, - 3, - 231, - 142, - 48 - ] - }, - { - "55269053": [ - 204, - 204 - ] - }, - { - "55269057": [ - 126, - 231 - ] - }, - { - "55269061": [ - 13, - 224 - ] - }, - { - "55269065": [ - 13, - 160 - ] - }, - { - "55269069": [ - 142, - 80 - ] - }, - { - "55269072": [ - 13, - 234 - ] - }, - { - "55269092": [ - 11, - 255, - 255, - 192 - ] - }, - { - "55269098": [ - 94, - 112 - ] - }, - { - "55269101": [ - 3, - 217 - ] - }, - { - "55269105": [ - 12, - 176 - ] - }, - { - "55269109": [ - 189, - 32 - ] - }, - { - "55269112": [ - 9, - 228 - ] - }, - { - "55269116": [ - 13, - 255, - 255, - 192 - ] - }, - { - "55269133": [ - 6, - 222, - 160 - ] - }, - { - "55269137": [ - 11, - 211 - ] - }, - { - "55269141": [ - 12, - 176 - ] - }, - { - "55269145": [ - 12, - 176 - ] - }, - { - "55269149": [ - 94, - 160 - ] - }, - { - "55269152": [ - 11, - 253, - 32 - ] - }, - { - "55269157": [ - 126, - 144 - ] - }, - { - "55269161": [ - 13, - 176 - ] - }, - { - "55269165": [ - 12, - 176 - ] - }, - { - "55269169": [ - 12, - 176 - ] - }, - { - "55269173": [ - 11, - 212 - ] - }, - { - "55269177": [ - 5, - 222, - 160 - ] - }, - { - "55269189": [ - 12, - 160 - ] - }, - { - "55269193": [ - 12, - 160 - ] - }, - { - "55269197": [ - 12, - 160 - ] - }, - { - "55269201": [ - 12, - 160 - ] - }, - { - "55269205": [ - 12, - 160 - ] - }, - { - "55269209": [ - 12, - 160 - ] - }, - { - "55269213": [ - 12, - 160 - ] - }, - { - "55269217": [ - 12, - 160 - ] - }, - { - "55269221": [ - 12, - 160 - ] - }, - { - "55269225": [ - 12, - 160 - ] - }, - { - "55269229": [ - 12, - 160 - ] - }, - { - "55269233": [ - 12, - 160 - ] - }, - { - "55269237": [ - 12, - 160 - ] - }, - { - "55269244": [ - 11, - 237, - 48 - ] - }, - { - "55269249": [ - 78, - 144 - ] - }, - { - "55269253": [ - 13, - 160 - ] - }, - { - "55269257": [ - 12, - 160 - ] - }, - { - "55269261": [ - 11, - 196 - ] - }, - { - "55269265": [ - 5, - 239, - 160 - ] - }, - { - "55269269": [ - 11, - 213 - ] - }, - { - "55269273": [ - 12, - 176 - ] - }, - { - "55269277": [ - 13, - 160 - ] - }, - { - "55269281": [ - 13, - 160 - ] - }, - { - "55269285": [ - 94, - 128 - ] - }, - { - "55269288": [ - 11, - 236, - 32 - ] - }, - { - "55269324": [ - 93, - 237, - 131, - 167, - 152, - 56, - 222, - 195 - ] - } -] \ No newline at end of file diff --git a/data/rom_patch.txt b/data/rom_patch.txt new file mode 100644 index 000000000..5c7eaf9d6 --- /dev/null +++ b/data/rom_patch.txt @@ -0,0 +1,11408 @@ +11,45 +12,ae +13,5b +14,97 +15,db +16,41 +17,31 +d261,48 +d262,0 +d265,48 +d266,50 +d267,0 +d269,48 +d26a,0 +d271,4b +d272,30 +d275,4b +d276,e0 +d277,0 +d279,4b +d27a,30 +8a9c51,0 +8a9c52,0 +8a9c53,0 +8a9c55,0 +8a9c56,0 +8a9c57,0 +8a9c58,0 +8a9c59,0 +8a9c5a,0 +8a9c5c,0 +8a9c5d,0 +8a9c5e,0 +8a9c5f,0 +8a9c64,0 +8a9c65,0 +8a9c66,0 +8a9c67,0 +8a9c68,0 +8a9c69,0 +8a9c6a,0 +8a9c6b,0 +8a9c6c,0 +8a9c6d,0 +8a9c6e,0 +8a9c6f,0 +8a9c90,0 +8a9c91,0 +8a9c92,0 +8a9c93,0 +8a9c94,0 +8a9c95,0 +8a9c96,0 +8a9c97,0 +8a9c98,0 +8a9c99,0 +8a9c9a,0 +8a9c9c,0 +8a9c9d,0 +8a9c9e,0 +8a9c9f,0 +8a9ca0,0 +8a9ca3,0 +8a9ca4,0 +8a9ca5,0 +8a9ca6,0 +8a9ca7,0 +8a9ca8,0 +8a9ca9,0 +8a9caa,0 +8a9cab,0 +8a9cac,0 +8a9cad,0 +8a9cae,0 +8a9caf,0 +8a9cb0,0 +8a9cd0,0 +8a9cd1,0 +8a9cd2,0 +8a9cd3,0 +8a9cd4,0 +8a9cd5,0 +8a9cd6,0 +8a9cd7,0 +8a9cd8,0 +8a9cd9,0 +8a9cda,0 +8a9cdc,0 +8a9cdd,0 +8a9cde,0 +8a9cdf,0 +8a9ce0,0 +8a9ce3,0 +8a9ce4,0 +8a9ce5,0 +8a9ce6,0 +8a9ce7,0 +8a9ce8,0 +8a9ce9,0 +8a9cea,0 +8a9ceb,0 +8a9cec,0 +8a9ced,0 +8a9cee,0 +8a9cef,0 +8a9cf0,0 +8a9d10,0 +8a9d11,0 +8a9d12,0 +8a9d13,0 +8a9d14,0 +8a9d15,0 +8a9d16,0 +8a9d17,0 +8a9d18,0 +8a9d19,0 +8a9d1a,0 +8a9d1c,0 +8a9d1d,0 +8a9d1e,0 +8a9d1f,0 +8a9d20,0 +8a9d21,0 +8a9d22,0 +8a9d23,0 +8a9d24,0 +8a9d25,0 +8a9d26,0 +8a9d27,0 +8a9d28,0 +8a9d29,0 +8a9d2a,0 +8a9d2b,0 +8a9d2c,0 +8a9d2d,0 +8a9d2e,0 +8a9d2f,0 +8a9d30,0 +8a9d50,0 +8a9d51,0 +8a9d52,0 +8a9d53,0 +8a9d54,0 +8a9d55,0 +8a9d56,0 +8a9d57,0 +8a9d58,0 +8a9d59,0 +8a9d5a,0 +8a9d5c,0 +8a9d5d,0 +8a9d5e,0 +8a9d5f,0 +8a9d60,0 +8a9d61,0 +8a9d62,0 +8a9d63,0 +8a9d64,0 +8a9d65,0 +8a9d66,0 +8a9d67,0 +8a9d68,0 +8a9d69,0 +8a9d6a,0 +8a9d6b,0 +8a9d6c,0 +8a9d6d,0 +8a9d6e,0 +8a9d6f,0 +8a9d90,0 +8a9d91,0 +8a9d92,0 +8a9d93,0 +8a9d94,0 +8a9d95,0 +8a9d96,0 +8a9d97,0 +8a9d98,0 +8a9d99,0 +8a9d9a,0 +8a9d9c,0 +8a9d9d,0 +8a9d9e,0 +8a9d9f,0 +8a9da0,0 +8a9da1,0 +8a9da2,0 +8a9da3,0 +8a9da4,0 +8a9da6,0 +8a9da7,0 +8a9da8,0 +8a9da9,0 +8a9daa,0 +8a9dab,0 +8a9dac,0 +8a9dad,0 +8a9dae,0 +8a9dd0,0 +8a9dd1,0 +8a9dd2,0 +8a9dd3,0 +8a9dd4,0 +8a9dd5,0 +8a9dd6,0 +8a9dd7,0 +8a9dd8,0 +8a9dd9,0 +8a9dda,0 +8a9ddc,0 +8a9ddd,0 +8a9dde,0 +8a9ddf,0 +8a9de0,0 +8a9de1,0 +8a9de2,0 +8a9de3,0 +8a9de4,0 +8a9de6,0 +8a9de7,0 +8a9de8,0 +8a9de9,0 +8a9dea,0 +8a9deb,0 +8a9dec,0 +8a9ded,0 +8a9dee,0 +8a9e10,0 +8a9e11,0 +8a9e12,0 +8a9e13,0 +8a9e14,0 +8a9e15,0 +8a9e16,0 +8a9e17,0 +8a9e18,0 +8a9e19,0 +8a9e1a,0 +8a9e1c,0 +8a9e1d,0 +8a9e1e,0 +8a9e1f,0 +8a9e20,0 +8a9e21,0 +8a9e22,0 +8a9e23,0 +8a9e24,0 +8a9e26,0 +8a9e27,0 +8a9e28,0 +8a9e29,0 +8a9e2a,0 +8a9e2b,0 +8a9e2c,0 +8a9e2d,0 +8a9e2e,0 +8a9e50,0 +8a9e51,0 +8a9e52,0 +8a9e53,0 +8a9e54,0 +8a9e55,0 +8a9e56,0 +8a9e57,0 +8a9e58,0 +8a9e59,0 +8a9e5a,0 +8a9e5b,0 +8a9e5c,0 +8a9e5d,0 +8a9e5e,0 +8a9e5f,0 +8a9e60,0 +8a9e61,0 +8a9e62,0 +8a9e63,0 +8a9e64,0 +8a9e65,0 +8a9e66,0 +8a9e67,0 +8a9e68,0 +8a9e69,0 +8a9e6a,0 +8a9e6b,0 +8a9e6c,0 +8a9e6d,0 +8a9e6e,0 +8a9e90,0 +8a9e91,0 +8a9e92,0 +8a9e93,0 +8a9e94,0 +8a9e95,0 +8a9e96,0 +8a9e97,0 +8a9e98,0 +8a9e99,0 +8a9e9a,0 +8a9e9b,0 +8a9e9c,0 +8a9e9d,0 +8a9e9e,0 +8a9e9f,0 +8a9ea0,0 +8a9ea1,0 +8a9ea2,0 +8a9ea3,0 +8a9ea4,0 +8a9ea5,0 +8a9ea6,0 +8a9ea7,0 +8a9ea8,0 +8a9ea9,0 +8a9eaa,0 +8a9eab,0 +8a9eac,0 +8a9ead,0 +8a9eae,0 +8a9ed0,0 +8a9ed1,0 +8a9ed2,0 +8a9ed3,0 +8a9ed4,0 +8a9ed5,0 +8a9ed6,0 +8a9ed7,0 +8a9ed8,0 +8a9ed9,0 +8a9eda,0 +8a9edb,0 +8a9edc,0 +8a9edd,0 +8a9ede,0 +8a9edf,0 +8a9ee0,0 +8a9ee3,0 +8a9ee4,0 +8a9ee5,0 +8a9ee6,0 +8a9ee7,0 +8a9ee8,0 +8a9ee9,0 +8a9eea,0 +8a9eeb,0 +8a9eec,0 +8a9eed,0 +8a9eee,0 +8a9f10,0 +8a9f11,0 +8a9f12,0 +8a9f13,0 +8a9f14,0 +8a9f15,0 +8a9f16,0 +8a9f17,0 +8a9f18,0 +8a9f19,0 +8a9f1a,0 +8a9f1b,0 +8a9f1c,0 +8a9f1d,0 +8a9f1e,0 +8a9f1f,0 +8a9f20,0 +8a9f23,0 +8a9f24,0 +8a9f25,0 +8a9f26,0 +8a9f27,0 +8a9f28,0 +8a9f29,0 +8a9f2a,0 +8a9f2b,0 +8a9f2c,0 +8a9f2d,0 +8a9f2e,0 +8a9f50,0 +8a9f51,0 +8a9f52,0 +8a9f53,0 +8a9f55,0 +8a9f56,0 +8a9f57,0 +8a9f58,0 +8a9f59,0 +8a9f5a,0 +8a9f5b,0 +8a9f5c,0 +8a9f5d,0 +8a9f5e,0 +8a9f5f,0 +8a9f64,0 +8a9f65,0 +8a9f66,0 +8a9f67,0 +8a9f68,0 +8a9f69,0 +8a9f6a,0 +8a9f6b,0 +8a9f6c,0 +8a9f6d,0 +8a9f6e,0 +a98c30,c +a98c31,10 +a98c32,a +a98c33,cc +a9e838,8 +a9e839,10 +a9e83a,d +a9e83b,9c +ac9abc,c +ac9abd,10 +ac9abe,b +ac9abf,df +ac9ac1,0 +ac9ac2,0 +ac9ac3,0 +acce88,c +acce89,10 +acce8a,b +acce8b,d0 +acce8c,0 +acce8d,0 +acce8e,0 +acce8f,0 +acce90,0 +acce91,0 +acce94,0 +acce97,0 +acce98,0 +acce99,0 +acce9b,0 +ae59e0,8 +ae59e1,10 +ae59e2,c +ae59e3,d2 +ae5df0,c +ae5df1,10 +ae5df2,d +ae5df3,7b +ae5df8,c +ae5df9,10 +ae5dfa,b +ae5dfb,da +ae5e04,0 +ae5e05,0 +ae5e07,0 +ae6e48,c +ae6e49,10 +ae6e4a,b +ae6e4b,d5 +ae6e4c,1 +ae6e4d,f +ae6e4e,c0 +ae6e4f,21 +b06400,82 +b06402,e +b06403,de +b0640c,31 +b0640d,f8 +b0640e,0 +b0640f,2 +b06c2c,c +b06c2d,10 +b06c2e,d +b06c2f,b1 +b06c31,28 +b06c33,20 +b17129,10 +b1712a,15 +b1712b,e1 +b17bb4,af +b17bb5,bf +b17bb6,0 +b17bb7,1c +b17bb8,af +b17bb9,a4 +b17bba,1 +b17bbb,40 +b17bbc,3c +b17bbd,4 +b17bbe,80 +b17bbf,40 +b17bc0,3c +b17bc1,5 +b17bc2,3 +b17bc3,48 +b17bc4,c +b17bc5,0 +b17bc6,3 +b17bc7,7c +b17bc8,34 +b17bc9,6 +b17bca,50 +b17bcb,0 +b17bcc,c +b17bcd,10 +b17bce,0 +b17bd0,0 +b17bd1,0 +b17bd2,0 +b17bd3,0 +b54b38,c +b54b39,10 +b54b3a,d +b54b3b,8b +b54e5c,c +b54e5d,10 +b54e5e,d +b54e5f,68 +baed6c,0 +baed6d,0 +baed6f,0 +bb77b4,0 +bb77b5,0 +bb77b7,0 +bb7890,c +bb7891,10 +bb7892,c +bb7893,b1 +bb7894,0 +bb7895,0 +bb7897,0 +bb7950,c +bb7951,10 +bb7952,c +bb7953,b8 +bb7954,0 +bb7955,0 +bb7957,0 +bb7ba0,0 +bb7ba1,0 +bb7ba3,0 +bb7bfc,0 +bb7bfd,0 +bb7bff,0 +bb7c3c,c +bb7c3d,10 +bb7c3e,c +bb7c3f,bf +bb7c40,0 +bb7c41,0 +bb7c43,0 +bb7c58,c +bb7c59,10 +bb7c5a,c +bb7c5b,aa +bb7c5c,0 +bb7c5d,0 +bb7c5f,0 +bcecbc,8 +bcecbd,10 +bcecbe,a +bcecbf,94 +bcecc1,0 +bcecc2,0 +bcecc3,0 +bcecc4,0 +bcecc5,0 +bcecc7,0 +bcecc8,0 +bcecc9,0 +bcecca,0 +bceccb,0 +bceccc,0 +bceccd,0 +bcecce,0 +bceccf,0 +bcecd0,0 +bcecd1,0 +bcecd3,0 +bda0a1,10 +bda0a2,a +bda0a3,1a +bda0d8,c +bda0d9,10 +bda0da,a +bda0db,72 +bda0e4,0 +bda0e5,0 +bda0e7,0 +bda264,c +bda265,10 +bda266,a +bda267,76 +bda270,0 +bda271,0 +bda273,0 +be5990,c +be5991,10 +be5992,c +be5993,75 +be5994,0 +be5995,0 +be5996,0 +be5997,0 +be9ac0,c +be9ac1,10 +be9ac2,a +be9ac3,a0 +be9ad8,c +be9ad9,10 +be9ada,a +be9adb,a9 +be9ae4,0 +be9ae5,0 +be9bde,83 +be9bdf,83 +c004ec,8 +c004ed,10 +c004ee,c +c004ef,1a +c0067f,64 +c018a0,c +c018a1,10 +c018a2,c +c018a3,2f +c6c7a8,c +c6c7a9,10 +c6c7aa,c +c6c7ab,3f +c6c920,c +c6c921,10 +c6c922,c +c6c923,3f +c892dc,34 +c892dd,e +c892de,0 +c892df,1 +c8931c,34 +c8931d,a +c8931e,0 +c8931f,1 +c89745,10 +c89746,b +c89747,a5 +c89868,92 +c89869,e +c8986a,1d +c8986b,28 +c898a4,92 +c898a5,19 +c898a6,1d +c898a7,29 +c898c8,92 +c898c9,a +c898ca,1d +c898cb,2a +cb6860,c +cb6861,10 +cb6862,c +cb6863,c6 +d12f78,34 +d12f79,f +d12f7b,0 +d74964,10 +d74965,0 +d7e140,34 +d7e141,e +d7e142,0 +d7e143,1 +d7e144,80 +d7e146,e +d7e147,de +d7e160,84 +d7e161,88 +d7e163,a4 +d7e164,34 +d7e165,1 +d7e167,63 +d7e168,14 +d7e169,28 +d7e16b,3 +d7e16c,34 +d7e16d,2 +d7e16e,20 +d7e16f,49 +d7e170,10 +d7e171,0 +d7e172,0 +d7e173,6 +d7e174,0 +d7e177,0 +d7e178,94 +d7e179,69 +d7e17a,e +d7e17b,d6 +d7e17c,31 +d7e17d,29 +d7e17e,0 +d7e17f,4 +d7e180,15 +d7e181,20 +d7e183,2 +d7e184,34 +d7e185,2 +d7e186,20 +d7e187,44 +d7e188,34 +d7e189,2 +d7e18a,20 +d7e18b,43 +d7e18c,8f +d7e18d,bf +d7e18f,14 +d7e190,27 +d7e191,bd +d7e192,0 +d7e193,18 +d7e194,3 +d7e195,e0 +d7e197,8 +d7e198,0 +d7e199,0 +d7e19a,0 +d7e19b,0 +d7e398,94 +d7e399,89 +d7e39a,e +d7e39b,d6 +d7e39c,31 +d7e39d,28 +d7e39f,10 +d7e3a0,31 +d7e3a1,29 +d7e3a3,4 +d7e3a4,1 +d7e3a5,9 +d7e3a6,40 +d7e3a7,25 +d7e3a8,34 +d7e3a9,9 +d7e3ab,14 +d7e3ac,34 +d7e3ad,1 +d7e3ae,0 +d7e3af,5f +d7e3b0,14 +d7e3b1,23 +d7e3b3,6 +d7e3b4,0 +d7e3b5,0 +d7e3b7,0 +d7e3b8,11 +d7e3b9,9 +d7e3bb,4 +d7e3bc,0 +d7e3bd,0 +d7e3be,0 +d7e3bf,0 +d7e3c0,34 +d7e3c1,2 +d7e3c2,0 +d7e3c3,1 +d7e3c4,3 +d7e3c5,e0 +d7e3c7,8 +d7e3c8,0 +d7e3c9,0 +d7e3cb,0 +d7e3cc,14 +d7e3cd,c2 +d7e3cf,9 +d7e3d0,34 +d7e3d1,1 +d7e3d3,63 +d7e3d4,14 +d7e3d5,23 +d7e3d7,7 +d7e3d8,8c +d7e3d9,8a +d7e3db,10 +d7e3dc,15 +d7e3dd,40 +d7e3df,5 +d7e3e0,0 +d7e3e1,0 +d7e3e2,0 +d7e3e3,0 +d7e3e4,15 +d7e3e5,9 +d7e3e7,3 +d7e3e8,34 +d7e3e9,2 +d7e3eb,1 +d7e3ec,3 +d7e3ed,e0 +d7e3ef,8 +d7e3f0,0 +d7e3f1,0 +d7e3f2,0 +d7e3f3,0 +d7e3f4,34 +d7e3f5,2 +d7e3f6,0 +d7e3f7,0 +d7e3f8,3 +d7e3f9,e0 +d7e3fa,0 +d7e3fb,8 +d7e3fc,0 +d7e3fd,0 +d7e3ff,0 +d7e76c,8f +d7e76d,b8 +d7e76e,0 +d7e76f,44 +d7e778,87 +d7e779,18 +d7e77b,a4 +d7e77c,80 +d7e77d,49 +d7e77e,e +d7e77f,de +d7e784,34 +d7e786,0 +d7e787,1 +d7e788,2 +d7e789,0 +d7e78a,20 +d7e78b,21 +d7e798,15 +d7e79b,2 +d7e79c,34 +d7e79d,19 +d7e79e,0 +d7e79f,5f +d7e7a0,17 +d7e7a1,38 +d7e7a2,0 +d7e7a3,5 +d7e7a4,ae +d7e7a5,b +d7e7a6,1 +d7e7a7,80 +d7e890,0 +d7e891,0 +d7e893,0 +d7e8a0,10 +d7e8a1,0 +d7e8a3,7 +d7e8a4,31 +d7e8a5,4a +d7e8a7,4 +d7e8b0,0 +d7e8b3,0 +d7e8b4,0 +d7e8b5,0 +d7e8b7,0 +d7e8c0,34 +d7e8c1,b +d7e8c2,0 +d7e8c3,14 +d7e8c8,1 +d7e8c9,4b +d7e8ca,50 +d7e8cb,25 +d7e8cc,15 +d7e8cd,4b +d7e8cf,14 +d7e8d4,34 +d7e8d5,e +d7e8d6,0 +d7e8d7,1 +d7e8d8,80 +d7e8da,e +d7e8db,de +d7e8e0,57 +d7e8e3,f +d7ebbc,c +d7ebbd,10 +d7ebbe,b +d7ebbf,e2 +d7ec1c,0 +d7ec1d,0 +d7ec1f,0 +d7ec20,34 +d7ec23,5 +db13d3,76 +db532c,c +db532d,10 +db532e,b +db532f,f2 +df264f,76 +df7cb0,c +df7cb1,10 +df7cb2,c +df7cb3,5f +e09f68,80 +e09f6a,e +e09f6b,de +e09f74,31 +e09f75,f8 +e09f76,0 +e09f77,4 +e09fb0,c +e09fb1,10 +e09fb2,b +e09fb3,ea +e29388,8 +e29389,10 +e2938a,c +e2938b,9 +e2a044,c +e2a045,10 +e2a046,c +e2a047,12 +e2f093,34 +e9e1d8,34 +e9e1d9,9 +e9e1da,40 +e9e1db,0 +e9e1f0,34 +e9e1f2,5b +e9e1f3,8 +e9e200,34 +e9e202,0 +e9e203,a +e9e20d,a9 +ebb85c,c +ebb85d,10 +ebb85e,c +ebb85f,4a +ebb865,40 +ebb867,12 +ebb86c,10 +ebb86d,0 +ebb86e,0 +ebb86f,14 +ec68bc,8f +ec68bd,ad +ec68be,0 +ec68bf,2c +ec68c0,34 +ec68c1,c +ec68c2,0 +ec68c3,a +ec68c4,a5 +ec68c5,ac +ec68c6,1 +ec68c7,10 +ec68c8,c +ec68c9,10 +ec68ca,a +ec68cb,37 +ec68cc,2 +ec68cd,0 +ec68ce,28 +ec68cf,21 +ec68d0,0 +ec68d1,0 +ec68d2,0 +ec68d3,0 +ec68d4,0 +ec68d5,0 +ec68d7,0 +ec68da,0 +ec68db,0 +ec68dc,0 +ec68dd,0 +ec68de,0 +ec68df,0 +ec68e0,0 +ec68e1,0 +ec68e2,0 +ec68e3,0 +ec69ad,ad +ec69af,2c +ec69b0,34 +ec69b1,c +ec69b2,0 +ec69b3,a +ec69b4,a5 +ec69b5,ac +ec69b6,1 +ec69b7,10 +ec69b8,c +ec69b9,10 +ec69ba,a +ec69bb,37 +ec69bc,2 +ec69bd,0 +ec69be,28 +ec69bf,21 +ec69c0,0 +ec69c1,0 +ec69c3,0 +ec69c4,0 +ec69c5,0 +ec69c6,0 +ec69c7,0 +ec69c8,0 +ec69c9,0 +ec69cb,0 +ec69cc,0 +ec69cd,0 +ec69ce,0 +ec69cf,0 +ec69d2,0 +ec69d3,0 +ec9ce7,7a +3480000,27 +3480001,bd +3480002,ff +3480003,e8 +3480004,af +3480005,bf +3480007,10 +3480008,3c +3480009,4 +348000a,80 +348000b,40 +348000c,24 +348000d,84 +348000e,50 +3480010,3c +3480011,5 +3480012,3 +3480013,4b +3480014,24 +3480015,a5 +3480016,30 +3480018,34 +3480019,6 +348001a,b0 +348001c,c +348001e,3 +348001f,7c +3480024,c +3480025,10 +3480026,15 +3480027,d6 +348002c,3c +348002d,2 +348002e,80 +348002f,12 +3480030,24 +3480031,42 +3480032,d2 +3480033,a0 +3480034,24 +3480035,e +3480036,1 +3480037,40 +3480038,3c +3480039,1 +348003a,80 +348003b,10 +348003c,ac +348003d,2e +348003e,e5 +3480040,8f +3480041,bf +3480043,10 +3480044,27 +3480045,bd +3480047,18 +3480048,3 +3480049,e0 +348004b,8 +3481c01,5a +3481c02,3b +3481c03,5d +3481c04,5c +3481c05,5e +3481c06,51 +3481c07,52 +3481c08,53 +3482050,ff +3482051,ff +3482052,ff +3482053,ff +3482054,ff +3482055,ff +3482056,ff +3482057,ff +3482058,80 +3482059,40 +348205a,26 +348205b,f4 +348205c,80 +348205d,40 +348205e,25 +348205f,58 +3482060,ff +3482061,ff +3482062,ff +3482063,ff +3482064,ff +3482065,ff +3482066,ff +3482067,ff +3482068,80 +3482069,40 +348206a,26 +348206b,f4 +348206c,80 +348206d,40 +348206e,25 +348206f,74 +3482070,ff +3482071,ff +3482072,ff +3482073,ff +3482074,ff +3482075,ff +3482076,ff +3482077,ff +3482078,80 +3482079,40 +348207a,26 +348207b,f4 +348207c,80 +348207d,40 +348207e,25 +348207f,9c +3482080,ff +3482081,ff +3482082,ff +3482083,ff +3482084,ff +3482085,ff +3482086,ff +3482087,ff +3482088,80 +3482089,40 +348208a,26 +348208b,f4 +348208c,80 +348208d,40 +348208e,25 +348208f,c4 +3482090,ff +3482091,ff +3482092,ff +3482093,ff +3482094,ff +3482095,ff +3482096,ff +3482097,ff +3482098,80 +3482099,40 +348209a,26 +348209b,f4 +348209c,80 +348209d,40 +348209e,25 +348209f,ec +34820a0,53 +34820a1,41 +34820a2,23 +34820a3,f8 +34820a5,d1 +34820a6,ff +34820a7,ff +34820a8,80 +34820a9,40 +34820aa,26 +34820ab,3c +34820ac,80 +34820ad,40 +34820ae,26 +34820af,14 +34820b0,ff +34820b1,ff +34820b2,ff +34820b3,ff +34820b4,ff +34820b5,ff +34820b6,ff +34820b7,ff +34820b8,80 +34820b9,40 +34820ba,26 +34820bb,f4 +34820bc,80 +34820bd,40 +34820be,26 +34820bf,50 +34820c0,ff +34820c1,ff +34820c2,ff +34820c3,ff +34820c4,ff +34820c5,ff +34820c6,ff +34820c7,ff +34820c8,80 +34820c9,40 +34820ca,26 +34820cb,f4 +34820cc,80 +34820cd,40 +34820ce,26 +34820cf,6c +34820d0,ff +34820d1,ff +34820d2,ff +34820d3,ff +34820d4,ff +34820d5,ff +34820d6,ff +34820d7,ff +34820d8,80 +34820d9,40 +34820da,26 +34820db,f4 +34820dc,80 +34820dd,40 +34820de,26 +34820df,88 +34820e0,53 +34820e1,41 +34820e2,38 +34820e3,43 +34820e5,eb +34820e6,15 +34820e7,ff +34820e8,80 +34820e9,40 +34820ea,27 +34820eb,c +34820ec,80 +34820ed,40 +34820ee,25 +34820ef,50 +34820f0,53 +34820f1,41 +34820f2,37 +34820f3,44 +34820f5,eb +34820f6,16 +34820f7,ff +34820f8,80 +34820f9,40 +34820fa,27 +34820fb,c +34820fc,80 +34820fd,40 +34820fe,25 +34820ff,50 +3482100,53 +3482101,41 +3482102,39 +3482103,45 +3482105,eb +3482106,17 +3482107,ff +3482108,80 +3482109,40 +348210a,27 +348210b,c +348210c,80 +348210d,40 +348210e,25 +348210f,50 +3482110,53 +3482111,41 +3482112,6b +3482113,46 +3482114,1 +3482115,77 +3482116,18 +3482117,ff +3482118,80 +3482119,40 +348211a,27 +348211b,c +348211c,80 +348211d,40 +348211e,25 +348211f,50 +3482120,53 +3482121,41 +3482122,3f +3482123,47 +3482125,f4 +3482126,19 +3482127,ff +3482128,80 +3482129,40 +348212a,27 +348212b,c +348212c,80 +348212d,40 +348212e,25 +348212f,50 +3482130,53 +3482131,41 +3482132,67 +3482133,5d +3482134,1 +3482135,73 +3482136,1c +3482137,ff +3482138,80 +3482139,40 +348213a,27 +348213b,c +348213c,80 +348213d,40 +348213e,25 +348213f,50 +3482140,53 +3482141,41 +3482142,68 +3482143,7a +3482144,1 +3482145,74 +3482146,1d +3482147,ff +3482148,80 +3482149,40 +348214a,27 +348214b,c +348214c,80 +348214d,40 +348214e,25 +348214f,50 +3482150,53 +3482151,41 +3482152,70 +3482153,f9 +3482154,1 +3482155,76 +3482156,1e +3482157,ff +3482158,80 +3482159,40 +348215a,27 +348215b,c +348215c,80 +348215d,40 +348215e,25 +348215f,50 +3482160,53 +3482161,41 +3482162,6a +3482163,97 +3482164,1 +3482165,76 +3482166,20 +3482167,ff +3482168,80 +3482169,40 +348216a,27 +348216b,c +348216c,80 +348216d,40 +348216e,25 +348216f,50 +3482170,53 +3482171,41 +3482172,a +3482173,6 +3482175,b9 +3482176,1 +3482177,3 +3482178,80 +3482179,40 +348217a,27 +348217b,48 +348217c,80 +348217d,40 +348217e,25 +348217f,50 +3482180,53 +3482181,41 +3482182,a +3482183,1c +3482185,b9 +3482186,1 +3482187,4 +3482188,80 +3482189,40 +348218a,27 +348218b,48 +348218c,80 +348218d,40 +348218e,25 +348218f,50 +3482190,53 +3482191,41 +3482192,a +3482193,1d +3482195,b9 +3482196,1 +3482197,5 +3482198,80 +3482199,40 +348219a,27 +348219b,48 +348219c,80 +348219d,40 +348219e,25 +348219f,50 +34821a0,53 +34821a1,41 +34821a2,a +34821a3,1e +34821a5,b9 +34821a6,1 +34821a7,6 +34821a8,80 +34821a9,40 +34821aa,27 +34821ab,48 +34821ac,80 +34821ad,40 +34821ae,25 +34821af,50 +34821b0,53 +34821b1,41 +34821b2,a +34821b3,2a +34821b5,b9 +34821b6,1 +34821b7,7 +34821b8,80 +34821b9,40 +34821ba,27 +34821bb,48 +34821bc,80 +34821bd,40 +34821be,25 +34821bf,50 +34821c0,53 +34821c1,41 +34821c2,a +34821c3,61 +34821c5,b9 +34821c6,1 +34821c7,a +34821c8,80 +34821c9,40 +34821ca,27 +34821cb,48 +34821cc,80 +34821cd,40 +34821ce,25 +34821cf,50 +34821d0,4d +34821d1,41 +34821d2,f5 +34821d3,62 +34821d5,b8 +34821d6,2 +34821d8,80 +34821d9,40 +34821da,27 +34821db,48 +34821dc,80 +34821dd,40 +34821de,25 +34821df,50 +34821e0,4d +34821e1,41 +34821e2,f5 +34821e3,63 +34821e5,b8 +34821e6,2 +34821e7,1 +34821e8,80 +34821e9,40 +34821ea,27 +34821eb,48 +34821ec,80 +34821ed,40 +34821ee,25 +34821ef,50 +34821f0,4d +34821f1,41 +34821f2,f5 +34821f3,64 +34821f5,b8 +34821f6,2 +34821f7,2 +34821f8,80 +34821f9,40 +34821fa,27 +34821fb,48 +34821fc,80 +34821fd,40 +34821fe,25 +34821ff,50 +3482200,4d +3482201,41 +3482202,f5 +3482203,65 +3482205,b8 +3482206,2 +3482207,3 +3482208,80 +3482209,40 +348220a,27 +348220b,48 +348220c,80 +348220d,40 +348220e,25 +348220f,50 +3482210,4d +3482211,41 +3482212,f5 +3482213,7c +3482215,b8 +3482216,2 +3482217,4 +3482218,80 +3482219,40 +348221a,27 +348221b,48 +348221c,80 +348221d,40 +348221e,25 +348221f,50 +3482220,4d +3482221,41 +3482222,f5 +3482223,7d +3482225,b8 +3482226,2 +3482227,5 +3482228,80 +3482229,40 +348222a,27 +348222b,48 +348222c,80 +348222d,40 +348222e,25 +348222f,50 +3482230,4d +3482231,41 +3482232,f5 +3482233,7e +3482235,b8 +3482236,2 +3482237,6 +3482238,80 +3482239,40 +348223a,27 +348223b,48 +348223c,80 +348223d,40 +348223e,25 +348223f,50 +3482240,4d +3482241,41 +3482242,f5 +3482243,7f +3482245,b8 +3482246,2 +3482247,7 +3482248,80 +3482249,40 +348224a,27 +348224b,48 +348224c,80 +348224d,40 +348224e,25 +348224f,50 +3482250,4d +3482251,41 +3482252,f5 +3482253,a2 +3482255,b8 +3482256,2 +3482257,8 +3482258,80 +3482259,40 +348225a,27 +348225b,48 +348225c,80 +348225d,40 +348225e,25 +348225f,50 +3482260,4d +3482261,41 +3482262,f5 +3482263,87 +3482265,b8 +3482266,2 +3482267,9 +3482268,80 +3482269,40 +348226a,27 +348226b,48 +348226c,80 +348226d,40 +348226e,25 +348226f,50 +3482270,4d +3482271,41 +3482272,e4 +3482273,88 +3482275,c8 +3482276,4 +3482278,80 +3482279,40 +348227a,27 +348227b,48 +348227c,80 +348227d,40 +348227e,25 +348227f,50 +3482280,4d +3482281,41 +3482282,e4 +3482283,89 +3482285,c8 +3482286,4 +3482287,1 +3482288,80 +3482289,40 +348228a,27 +348228b,48 +348228c,80 +348228d,40 +348228e,25 +348228f,50 +3482290,4d +3482291,41 +3482292,e4 +3482293,8a +3482295,c8 +3482296,4 +3482297,2 +3482298,80 +3482299,40 +348229a,27 +348229b,48 +348229c,80 +348229d,40 +348229e,25 +348229f,50 +34822a0,4d +34822a1,41 +34822a2,e4 +34822a3,8b +34822a5,c8 +34822a6,4 +34822a7,3 +34822a8,80 +34822a9,40 +34822aa,27 +34822ab,48 +34822ac,80 +34822ad,40 +34822ae,25 +34822af,50 +34822b0,4d +34822b1,41 +34822b2,e4 +34822b3,8c +34822b5,c8 +34822b6,4 +34822b7,4 +34822b8,80 +34822b9,40 +34822ba,27 +34822bb,48 +34822bc,80 +34822bd,40 +34822be,25 +34822bf,50 +34822c0,4d +34822c1,41 +34822c2,e4 +34822c3,8e +34822c5,c8 +34822c6,4 +34822c7,5 +34822c8,80 +34822c9,40 +34822ca,27 +34822cb,48 +34822cc,80 +34822cd,40 +34822ce,25 +34822cf,50 +34822d0,4d +34822d1,41 +34822d2,e4 +34822d3,8f +34822d5,c8 +34822d6,4 +34822d7,6 +34822d8,80 +34822d9,40 +34822da,27 +34822db,48 +34822dc,80 +34822dd,40 +34822de,25 +34822df,50 +34822e0,4d +34822e1,41 +34822e2,e4 +34822e3,a3 +34822e5,c8 +34822e6,4 +34822e7,7 +34822e8,80 +34822e9,40 +34822ea,27 +34822eb,48 +34822ec,80 +34822ed,40 +34822ee,25 +34822ef,50 +34822f0,4d +34822f1,41 +34822f2,e4 +34822f3,a5 +34822f5,c8 +34822f6,4 +34822f7,8 +34822f8,80 +34822f9,40 +34822fa,27 +34822fb,48 +34822fc,80 +34822fd,40 +34822fe,25 +34822ff,50 +3482300,4d +3482301,41 +3482302,e4 +3482303,92 +3482305,c8 +3482306,4 +3482307,9 +3482308,80 +3482309,40 +348230a,27 +348230b,48 +348230c,80 +348230d,40 +348230e,25 +348230f,50 +3482310,53 +3482311,41 +3482312,2 +3482313,93 +3482315,aa +3482316,3 +3482317,ff +3482318,80 +3482319,40 +348231a,27 +348231b,64 +348231c,80 +348231d,40 +348231e,25 +348231f,50 +3482320,53 +3482321,41 +3482322,2 +3482323,94 +3482325,aa +3482326,4 +3482327,ff +3482328,80 +3482329,40 +348232a,27 +348232b,64 +348232c,80 +348232d,40 +348232e,25 +348232f,50 +3482330,53 +3482331,41 +3482332,2 +3482333,95 +3482335,aa +3482336,5 +3482337,ff +3482338,80 +3482339,40 +348233a,27 +348233b,64 +348233c,80 +348233d,40 +348233e,25 +348233f,50 +3482340,53 +3482341,41 +3482342,2 +3482343,a6 +3482345,aa +3482346,6 +3482347,ff +3482348,80 +3482349,40 +348234a,27 +348234b,64 +348234c,80 +348234d,40 +348234e,25 +348234f,50 +3482350,53 +3482351,41 +3482352,2 +3482353,a9 +3482355,aa +3482356,7 +3482357,ff +3482358,80 +3482359,40 +348235a,27 +348235b,64 +348235c,80 +348235d,40 +348235e,25 +348235f,50 +3482360,53 +3482361,41 +3482362,2 +3482363,9b +3482365,aa +3482366,8 +3482367,ff +3482368,80 +3482369,40 +348236a,27 +348236b,64 +348236c,80 +348236d,40 +348236e,25 +348236f,50 +3482370,53 +3482371,41 +3482372,2 +3482373,9f +3482375,aa +3482376,b +3482377,ff +3482378,80 +3482379,40 +348237a,27 +348237b,64 +348237c,80 +348237d,40 +348237e,25 +348237f,50 +3482380,53 +3482381,41 +3482382,2 +3482383,a0 +3482385,aa +3482386,c +3482387,ff +3482388,80 +3482389,40 +348238a,27 +348238b,64 +348238c,80 +348238d,40 +348238e,25 +348238f,50 +3482390,53 +3482391,41 +3482392,2 +3482393,a1 +3482395,aa +3482396,d +3482397,ff +3482398,80 +3482399,40 +348239a,27 +348239b,64 +348239c,80 +348239d,40 +348239e,25 +348239f,50 +34823a0,53 +34823a1,3d +34823a2,43 +34823a3,c +34823a5,f8 +34823a6,ff +34823a7,ff +34823a8,80 +34823a9,40 +34823aa,26 +34823ab,fc +34823ac,80 +34823ad,40 +34823ae,25 +34823af,50 +34823b0,4d +34823b1,83 +34823b2,f7 +34823b3,55 +34823b5,b7 +34823b6,ff +34823b7,ff +34823b8,80 +34823b9,40 +34823ba,26 +34823bb,f4 +34823bc,80 +34823bd,40 +34823be,25 +34823bf,50 +34823c0,4d +34823c1,92 +34823c2,db +34823c3,e6 +34823c5,d8 +34823c6,ff +34823c7,ff +34823c8,80 +34823c9,40 +34823ca,26 +34823cb,f4 +34823cc,80 +34823cd,40 +34823ce,26 +34823cf,bc +34823d0,4d +34823d1,93 +34823d2,da +34823d3,e6 +34823d5,d8 +34823d6,ff +34823d7,ff +34823d8,80 +34823d9,40 +34823da,26 +34823db,f4 +34823dc,80 +34823dd,40 +34823de,26 +34823df,bc +34823e0,4d +34823e1,94 +34823e2,d9 +34823e3,e6 +34823e5,d8 +34823e6,ff +34823e7,ff +34823e8,80 +34823e9,40 +34823ea,26 +34823eb,f4 +34823ec,80 +34823ed,40 +34823ee,26 +34823ef,bc +34823f0,4d +34823f1,8e +34823f2,e0 +34823f3,32 +34823f5,ce +34823f6,ff +34823f7,ff +34823f8,80 +34823f9,40 +34823fa,26 +34823fb,f4 +34823fc,80 +34823fd,40 +34823fe,26 +34823ff,d8 +3482400,4d +3482401,8f +3482402,e0 +3482403,32 +3482405,ce +3482406,ff +3482407,ff +3482408,80 +3482409,40 +348240a,26 +348240b,f4 +348240c,80 +348240d,40 +348240e,26 +348240f,d8 +3482410,4d +3482411,90 +3482412,e0 +3482413,32 +3482415,ce +3482416,ff +3482417,ff +3482418,80 +3482419,40 +348241a,26 +348241b,f4 +348241c,80 +348241d,40 +348241e,26 +348241f,d8 +3482420,4d +3482421,8c +3482422,ee +3482423,34 +3482425,bb +3482426,ff +3482427,ff +3482428,80 +3482429,40 +348242a,26 +348242b,f4 +348242c,80 +348242d,40 +348242e,25 +348242f,50 +3482430,4d +3482431,8d +3482432,ee +3482433,34 +3482435,bb +3482436,ff +3482437,ff +3482438,80 +3482439,40 +348243a,26 +348243b,f4 +348243c,80 +348243d,40 +348243e,25 +348243f,50 +3482440,4f +3482441,41 +3482442,ed +3482443,e9 +3482445,bd +3482446,ff +3482447,ff +3482448,80 +3482449,40 +348244a,27 +348244b,8c +348244c,80 +348244d,40 +348244e,25 +348244f,50 +3482450,53 +3482451,41 +3482452,1e +3482453,e4 +3482455,cd +3482456,ff +3482457,ff +3482458,80 +3482459,40 +348245a,27 +348245b,ac +348245c,80 +348245d,40 +348245e,26 +348245f,a4 +3482460,53 +3482461,41 +3482462,1f +3482463,e8 +3482465,cd +3482466,ff +3482467,ff +3482468,80 +3482469,40 +348246a,27 +348246b,cc +348246c,80 +348246d,40 +348246e,25 +348246f,50 +3482470,ff +3482471,ff +3482472,ff +3482473,ff +3482474,ff +3482475,ff +3482476,ff +3482477,ff +3482478,80 +3482479,40 +348247a,26 +348247b,f4 +348247c,80 +348247d,40 +348247e,27 +348247f,f4 +3482480,53 +3482481,41 +3482482,46 +3482483,4a +3482484,1 +3482485,e +3482486,ff +3482487,ff +3482488,80 +3482489,40 +348248a,28 +348248b,3c +348248c,80 +348248d,40 +348248e,28 +348248f,20 +3482490,53 +3482491,41 +3482492,3 +3482493,b0 +3482495,b6 +3482496,6 +3482497,ff +3482498,80 +3482499,40 +348249a,28 +348249b,4c +348249c,80 +348249d,40 +348249e,25 +348249f,50 +34824a0,53 +34824a1,41 +34824a2,4 +34824a3,b1 +34824a5,b6 +34824a6,7 +34824a7,ff +34824a8,80 +34824a9,40 +34824aa,28 +34824ab,4c +34824ac,80 +34824ad,40 +34824ae,25 +34824af,50 +34824b0,53 +34824b1,41 +34824b2,5 +34824b3,b2 +34824b5,b6 +34824b6,8 +34824b7,ff +34824b8,80 +34824b9,40 +34824ba,28 +34824bb,4c +34824bc,80 +34824bd,40 +34824be,25 +34824bf,50 +34824c0,53 +34824c1,41 +34824c2,6 +34824c3,b3 +34824c5,b6 +34824c6,9 +34824c7,ff +34824c8,80 +34824c9,40 +34824ca,28 +34824cb,4c +34824cc,80 +34824cd,40 +34824ce,25 +34824cf,50 +34824d0,53 +34824d1,41 +34824d2,7 +34824d3,b6 +34824d5,b6 +34824d6,a +34824d7,ff +34824d8,80 +34824d9,40 +34824da,28 +34824db,4c +34824dc,80 +34824dd,40 +34824de,25 +34824df,50 +34824e0,53 +34824e1,41 +34824e2,8 +34824e3,b7 +34824e5,b6 +34824e6,b +34824e7,ff +34824e8,80 +34824e9,40 +34824ea,28 +34824eb,4c +34824ec,80 +34824ed,40 +34824ee,25 +34824ef,50 +34824f0,53 +34824f1,41 +34824f2,4 +34824f3,b8 +34824f5,b6 +34824f6,c +34824f7,ff +34824f8,80 +34824f9,40 +34824fa,28 +34824fb,4c +34824fc,80 +34824fd,40 +34824fe,25 +34824ff,50 +3482500,53 +3482501,41 +3482502,6 +3482503,b9 +3482505,b6 +3482506,d +3482507,ff +3482508,80 +3482509,40 +348250a,28 +348250b,4c +348250c,80 +348250d,40 +348250e,25 +348250f,50 +3482510,53 +3482511,41 +3482512,3 +3482513,ba +3482515,b6 +3482516,e +3482517,ff +3482518,80 +3482519,40 +348251a,28 +348251b,4c +348251c,80 +348251d,40 +348251e,25 +348251f,50 +3482520,53 +3482521,41 +3482522,8 +3482523,bb +3482525,b6 +3482526,f +3482527,ff +3482528,80 +3482529,40 +348252a,28 +348252b,4c +348252c,80 +348252d,40 +348252e,25 +348252f,50 +3482530,53 +3482531,41 +3482532,5 +3482533,bc +3482535,b6 +3482536,10 +3482537,ff +3482538,80 +3482539,40 +348253a,28 +348253b,4c +348253c,80 +348253d,40 +348253e,25 +348253f,50 +3482540,53 +3482541,41 +3482542,7 +3482543,bd +3482545,b6 +3482546,11 +3482547,ff +3482548,80 +3482549,40 +348254a,28 +348254b,4c +348254c,80 +348254d,40 +348254e,25 +348254f,50 +3482550,3 +3482551,e0 +3482553,8 +3482554,34 +3482555,a2 +3482558,90 +3482559,88 +348255b,7d +348255c,34 +348255d,1 +348255f,ff +3482560,11 +3482561,1 +3482563,2 +3482564,34 +3482565,2 +3482567,8 +3482568,34 +3482569,2 +348256b,9 +348256c,3 +348256d,e0 +348256f,8 +3482574,90 +3482575,88 +3482577,a3 +3482578,31 +3482579,8 +348257b,c0 +348257c,11 +348257f,5 +3482580,34 +3482581,2 +3482583,54 +3482584,34 +3482585,1 +3482587,40 +3482588,11 +3482589,1 +348258b,2 +348258c,34 +348258d,2 +348258f,35 +3482590,34 +3482591,2 +3482593,36 +3482594,3 +3482595,e0 +3482597,8 +348259c,90 +348259d,88 +348259f,a3 +34825a0,31 +34825a1,8 +34825a3,18 +34825a4,11 +34825a7,5 +34825a8,34 +34825a9,2 +34825ab,32 +34825ac,34 +34825ad,1 +34825af,8 +34825b0,11 +34825b1,1 +34825b3,2 +34825b4,34 +34825b5,2 +34825b7,33 +34825b8,34 +34825b9,2 +34825bb,34 +34825bc,3 +34825bd,e0 +34825bf,8 +34825c4,90 +34825c5,88 +34825c7,a3 +34825c8,31 +34825c9,8 +34825cb,3 +34825cc,11 +34825cf,5 +34825d0,34 +34825d1,2 +34825d3,4 +34825d4,34 +34825d5,1 +34825d7,1 +34825d8,11 +34825d9,1 +34825db,2 +34825dc,34 +34825dd,2 +34825df,30 +34825e0,34 +34825e1,2 +34825e3,31 +34825e4,3 +34825e5,e0 +34825e7,8 +34825ec,90 +34825ed,88 +34825ef,a2 +34825f0,31 +34825f1,8 +34825f3,c0 +34825f4,11 +34825f7,5 +34825f8,34 +34825f9,2 +34825fb,5 +34825fc,34 +34825fd,1 +34825ff,40 +3482600,11 +3482601,1 +3482603,2 +3482604,34 +3482605,2 +3482607,60 +3482608,34 +3482609,2 +348260b,7b +348260c,3 +348260d,e0 +348260f,8 +3482614,90 +3482615,88 +3482617,a2 +3482618,31 +3482619,8 +348261b,30 +348261c,11 +348261f,5 +3482620,34 +3482621,2 +3482623,45 +3482624,34 +3482625,9 +3482627,10 +3482628,11 +3482629,9 +348262b,2 +348262c,34 +348262d,2 +348262f,46 +3482630,34 +3482631,a2 +3482634,3 +3482635,e0 +3482637,8 +348263c,90 +348263d,88 +348263f,a2 +3482640,35 +3482641,8 +3482643,30 +3482644,a0 +3482645,88 +3482647,a2 +3482648,3 +3482649,e0 +348264b,8 +3482650,90 +3482651,88 +3482653,a2 +3482654,31 +3482655,8 +3482657,6 +3482658,11 +348265b,2 +348265c,34 +348265d,2 +348265f,37 +3482660,34 +3482661,2 +3482663,38 +3482664,3 +3482665,e0 +3482667,8 +348266c,90 +348266d,88 +348266f,a1 +3482670,31 +3482671,8 +3482673,20 +3482674,11 +3482677,2 +3482678,34 +3482679,2 +348267b,79 +348267c,34 +348267d,2 +348267f,7a +3482680,3 +3482681,e0 +3482683,8 +3482688,90 +3482689,88 +348268b,a1 +348268c,31 +348268d,8 +348268f,4 +3482690,11 +3482693,2 +3482694,34 +3482695,2 +3482697,77 +3482698,34 +3482699,2 +348269b,78 +348269c,3 +348269d,e0 +348269f,8 +34826a4,90 +34826a5,88 +34826a7,32 +34826a8,11 +34826ab,2 +34826ac,34 +34826ad,2 +34826af,c0 +34826b0,34 +34826b1,2 +34826b3,c1 +34826b4,3 +34826b5,e0 +34826b7,8 +34826bc,90 +34826bd,88 +34826bf,a3 +34826c0,31 +34826c1,8 +34826c3,3 +34826c4,11 +34826c7,2 +34826c8,34 +34826c9,2 +34826cb,4d +34826cc,34 +34826cd,a2 +34826d0,3 +34826d1,e0 +34826d3,8 +34826d8,90 +34826d9,88 +34826db,a3 +34826dc,31 +34826dd,8 +34826df,18 +34826e0,11 +34826e3,2 +34826e4,34 +34826e5,2 +34826e7,4d +34826e8,34 +34826e9,a2 +34826ec,3 +34826ed,e0 +34826ef,8 +34826f4,3 +34826f5,e0 +34826f7,8 +34826fc,34 +34826fd,8 +34826ff,1 +3482700,a0 +3482701,88 +3482703,3e +3482704,3 +3482705,e0 +3482707,8 +348270c,24 +348270d,88 +348270f,86 +3482710,24 +3482711,9 +3482712,ff +3482713,ff +3482714,25 +3482715,29 +3482717,1 +3482718,34 +3482719,1 +348271b,3 +348271d,29 +348271e,8 +348271f,2a +3482720,14 +3482721,20 +3482723,7 +3482728,1 +3482729,9 +348272a,50 +348272b,21 +348272c,91 +348272d,4b +3482730,34 +3482731,1 +3482733,ff +3482734,15 +3482735,61 +3482736,ff +3482737,f7 +348273c,a1 +348273d,45 +3482740,3 +3482741,e0 +3482743,8 +3482748,24 +3482749,88 +348274b,a8 +348274c,1 +348274d,6 +348274e,40 +348274f,21 +3482750,91 +3482751,9 +3482754,1 +3482755,25 +3482756,48 +3482757,25 +3482758,a1 +3482759,9 +348275c,3 +348275d,e0 +348275f,8 +3482764,24 +3482765,88 +3482767,bc +3482768,1 +3482769,5 +348276a,40 +348276b,21 +348276c,81 +348276d,9 +3482770,5 +3482771,21 +3482773,2 +3482778,34 +3482779,9 +348277c,25 +348277d,29 +348277f,1 +3482780,a1 +3482781,9 +3482784,3 +3482785,e0 +3482787,8 +348278c,34 +348278d,8 +348278f,1 +3482790,a0 +3482791,88 +3482793,3d +3482794,34 +3482795,8 +3482797,14 +3482798,a0 +3482799,88 +348279b,cf +348279c,34 +348279d,8 +348279e,1 +348279f,40 +34827a0,a4 +34827a1,88 +34827a2,14 +34827a3,24 +34827a4,3 +34827a5,e0 +34827a7,8 +34827ac,34 +34827ad,8 +34827af,1 +34827b0,a0 +34827b1,88 +34827b3,32 +34827b4,a0 +34827b5,88 +34827b7,3a +34827b8,34 +34827b9,8 +34827bb,30 +34827bc,a4 +34827bd,88 +34827be,13 +34827bf,f4 +34827c0,a0 +34827c1,88 +34827c3,33 +34827c4,3 +34827c5,e0 +34827c7,8 +34827cc,34 +34827cd,8 +34827cf,2 +34827d0,a0 +34827d1,88 +34827d3,32 +34827d4,34 +34827d5,8 +34827d7,1 +34827d8,a0 +34827d9,88 +34827db,3a +34827dc,a0 +34827dd,88 +34827df,3c +34827e0,34 +34827e1,8 +34827e3,60 +34827e4,a4 +34827e5,88 +34827e6,13 +34827e7,f4 +34827e8,a0 +34827e9,88 +34827eb,33 +34827ec,3 +34827ed,e0 +34827ef,8 +34827f4,90 +34827f5,88 +34827f7,7c +34827f8,34 +34827f9,1 +34827fb,ff +34827fc,11 +34827fd,1 +34827ff,6 +3482800,34 +3482801,2 +3482803,6b +3482804,90 +3482805,88 +3482807,94 +3482808,2d +3482809,8 +348280b,6 +348280c,11 +348280f,2 +3482810,34 +3482811,2 +3482813,6a +3482814,34 +3482815,2 +3482817,3 +3482818,3 +3482819,e0 +348281b,8 +3482820,90 +3482821,88 +3482823,7b +3482824,34 +3482825,1 +3482827,ff +3482828,11 +3482829,1 +348282b,2 +348282c,34 +348282d,a2 +3482830,34 +3482831,2 +3482833,c +3482834,3 +3482835,e0 +3482837,8 +348283c,34 +348283d,8 +348283f,7 +3482840,a0 +3482841,88 +3482843,7b +3482844,3 +3482845,e0 +3482847,8 +348284c,34 +348284d,8 +348284f,1 +3482851,a8 +3482852,40 +3482853,4 +3482854,8c +3482855,89 +3482857,a4 +3482858,1 +3482859,28 +348285a,48 +348285b,25 +348285c,ac +348285d,89 +348285f,a4 +3482860,3 +3482861,e0 +3482863,8 +3482868,30 +3482869,84 +348286b,ff +348286c,3c +348286d,8 +348286e,80 +348286f,12 +3482870,25 +3482871,8 +3482872,a5 +3482873,d0 +3482874,34 +3482875,1 +3482877,8c +3482878,10 +3482879,81 +348287b,16 +348287c,91 +348287d,2 +348287f,75 +3482880,34 +3482881,1 +3482883,8d +3482884,10 +3482885,81 +3482887,13 +3482888,91 +3482889,2 +348288b,75 +348288c,10 +348288d,80 +348288f,11 +3482890,91 +3482891,2 +3482893,74 +3482894,34 +3482895,1 +3482897,8a +3482898,10 +3482899,81 +348289b,e +348289c,91 +348289d,2 +348289f,74 +34828a0,34 +34828a1,1 +34828a3,8b +34828a4,10 +34828a5,81 +34828a7,b +34828a8,91 +34828a9,2 +34828ab,74 +34828ac,34 +34828ad,1 +34828af,58 +34828b0,10 +34828b1,81 +34828b3,8 +34828b4,34 +34828b5,2 +34828b8,34 +34828b9,1 +34828bb,78 +34828bc,10 +34828bd,81 +34828bf,5 +34828c0,34 +34828c1,2 +34828c4,34 +34828c5,1 +34828c7,79 +34828c8,10 +34828c9,81 +34828cb,2 +34828cc,34 +34828cd,2 +34828d0,34 +34828d1,2 +34828d3,ff +34828d4,3 +34828d5,e0 +34828d7,8 +34828dc,27 +34828dd,bd +34828de,ff +34828df,e0 +34828e0,af +34828e1,bf +34828e3,10 +34828e4,af +34828e5,b0 +34828e7,14 +34828e8,c +34828e9,10 +34828ea,b +34828eb,13 +34828f0,4 +34828f1,41 +34828f3,2 +34828f8,34 +34828f9,2 +34828fb,5b +34828fd,40 +34828fe,20 +34828ff,21 +3482900,c +3482901,10 +3482902,b +3482903,84 +3482908,10 +3482909,60 +348290b,16 +348290c,af +348290d,a3 +348290f,1c +3482910,3c +3482911,8 +3482912,80 +3482913,40 +3482914,25 +3482915,8 +3482916,20 +3482918,85 +3482919,9 +348291b,2 +348291c,11 +348291d,20 +348291f,3 +3482920,34 +3482921,a +3482923,1 +3482924,10 +3482927,c +3482928,a5 +3482929,a +348292c,3c +348292d,4 +348292e,80 +348292f,12 +3482930,24 +3482931,84 +3482932,a5 +3482933,d0 +3482934,90 +3482935,65 +3482937,6 +3482938,90 +3482939,66 +348293b,7 +348293c,8c +348293d,69 +348293f,8 +3482940,1 +3482941,20 +3482942,f8 +3482943,9 +3482948,8f +3482949,a3 +348294b,1c +348294c,90 +348294d,65 +348294f,1 +3482950,c +3482951,1 +3482952,bf +3482953,73 +3482954,2 +3482955,20 +3482956,20 +3482957,21 +3482958,8f +3482959,a3 +348295b,1c +348295c,90 +348295d,65 +348295f,3 +3482960,10 +3482963,11 +3482964,3c +3482965,9 +3482966,80 +3482967,3b +3482968,25 +3482969,29 +348296a,9e +348296b,7e +348296c,34 +348296d,a +348296f,6 +3482971,4a +3482973,18 +3482976,50 +3482977,12 +3482978,1 +3482979,2a +348297a,80 +348297b,21 +348297c,82 +348297d,5 +3482980,3c +3482981,8 +3482982,80 +3482983,40 +3482984,25 +3482985,8 +3482986,20 +3482988,85 +3482989,9 +348298b,2 +348298c,11 +348298d,20 +348298f,3 +3482990,34 +3482991,a +3482993,1 +3482994,a5 +3482995,a +3482998,34 +3482999,5 +348299b,41 +348299c,c +348299d,1 +348299e,bf +348299f,73 +34829a0,2 +34829a1,20 +34829a2,20 +34829a3,21 +34829a4,92 +34829a5,5 +34829a7,3 +34829a8,2 +34829a9,20 +34829aa,20 +34829ab,21 +34829ac,c +34829ad,3 +34829ae,73 +34829af,85 +34829b2,30 +34829b3,21 +34829b4,8f +34829b5,bf +34829b7,10 +34829b8,8f +34829b9,b0 +34829bb,14 +34829bc,27 +34829bd,bd +34829bf,20 +34829c0,3 +34829c1,e0 +34829c3,8 +34829c8,8f +34829c9,a6 +34829cb,30 +34829cc,84 +34829cd,c5 +34829cf,4 +34829d0,8 +34829d1,10 +34829d2,a +34829d3,7a +34829d8,8f +34829d9,b9 +34829db,2c +34829dc,87 +34829dd,25 +34829df,4 +34829e0,8 +34829e1,10 +34829e2,a +34829e3,7a +34829e8,3c +34829e9,a +34829ea,80 +34829eb,40 +34829ec,25 +34829ed,4a +34829ee,20 +34829ef,8 +34829f0,8d +34829f1,4b +34829f3,c +34829f4,11 +34829f5,60 +34829f7,2 +34829fc,95 +34829fd,45 +34829ff,4 +3482a00,3c +3482a01,a +3482a02,80 +3482a03,1e +3482a04,25 +3482a05,4a +3482a06,89 +3482a07,84 +3482a08,a5 +3482a09,40 +3482a0c,3c +3482a0d,9 +3482a0e,80 +3482a0f,40 +3482a10,25 +3482a11,29 +3482a12,20 +3482a13,18 +3482a14,81 +3482a15,2a +3482a17,3 +3482a18,5 +3482a19,40 +3482a1b,b +3482a1c,1 +3482a1d,2a +3482a1e,48 +3482a1f,20 +3482a20,81 +3482a21,28 +3482a24,34 +3482a25,a +3482a27,7f +3482a28,15 +3482a29,a +3482a2b,6 +3482a30,3c +3482a31,a +3482a32,80 +3482a33,12 +3482a34,25 +3482a35,4a +3482a36,a5 +3482a37,d0 +3482a38,85 +3482a39,48 +3482a3b,90 +3482a3c,21 +3482a3d,8 +3482a3f,1 +3482a40,a5 +3482a41,48 +3482a43,90 +3482a44,a1 +3482a45,20 +3482a48,3 +3482a49,e0 +3482a4b,8 +3482a50,3c +3482a51,8 +3482a52,80 +3482a53,40 +3482a54,25 +3482a55,8 +3482a56,20 +3482a57,8 +3482a58,8d +3482a59,9 +3482a5b,c +3482a5c,11 +3482a5d,20 +3482a5f,2 +3482a64,81 +3482a65,3 +3482a67,2 +3482a69,3 +3482a6a,f +3482a6b,c3 +3482a6d,61 +3482a6e,40 +3482a6f,26 +3482a70,1 +3482a71,1 +3482a72,40 +3482a73,23 +3482a74,a0 +3482a75,88 +3482a76,8 +3482a77,52 +3482a78,3 +3482a79,e0 +3482a7b,8 +3482a80,90 +3482a81,45 +3482a83,3 +3482a84,3c +3482a85,8 +3482a86,80 +3482a87,40 +3482a88,25 +3482a89,8 +3482a8a,20 +3482a8b,8 +3482a8c,8d +3482a8d,9 +3482a8f,c +3482a90,11 +3482a91,20 +3482a93,2 +3482a98,91 +3482a99,5 +3482a9b,3 +3482a9c,3 +3482a9d,e0 +3482a9f,8 +3482aa4,8f +3482aa5,a2 +3482aa7,24 +3482aa8,90 +3482aa9,45 +3482aac,3c +3482aad,8 +3482aae,80 +3482aaf,40 +3482ab0,25 +3482ab1,8 +3482ab2,20 +3482ab4,85 +3482ab5,9 +3482ab7,2 +3482ab8,11 +3482ab9,20 +3482abb,4 +3482abc,34 +3482abd,a +3482abf,1 +3482ac0,a5 +3482ac1,a +3482ac4,10 +3482ac7,18 +3482ac8,34 +3482ac9,5 +3482acb,41 +3482acc,3c +3482acd,8 +3482ace,80 +3482acf,40 +3482ad0,25 +3482ad1,8 +3482ad2,20 +3482ad3,8 +3482ad4,8d +3482ad5,9 +3482ad7,c +3482ad8,11 +3482ad9,20 +3482adb,13 +3482ae0,91 +3482ae1,5 +3482ae3,1 +3482ae4,af +3482ae5,a4 +3482ae8,af +3482ae9,a5 +3482aeb,4 +3482aec,af +3482aed,a6 +3482aef,8 +3482af0,27 +3482af1,bd +3482af2,ff +3482af3,e8 +3482af4,af +3482af5,bf +3482af7,10 +3482af8,3c +3482af9,4 +3482afa,80 +3482afb,12 +3482afc,24 +3482afd,84 +3482afe,a5 +3482aff,d0 +3482b00,91 +3482b01,5 +3482b03,6 +3482b04,91 +3482b05,6 +3482b07,7 +3482b08,8d +3482b09,9 +3482b0b,8 +3482b0c,1 +3482b0d,20 +3482b0e,f8 +3482b0f,9 +3482b14,8f +3482b15,bf +3482b17,10 +3482b18,27 +3482b19,bd +3482b1b,18 +3482b1c,8f +3482b1d,a4 +3482b20,8f +3482b21,a5 +3482b23,4 +3482b24,8f +3482b25,a6 +3482b27,8 +3482b28,3 +3482b29,e0 +3482b2b,8 +3482b30,a0 +3482b31,e6 +3482b32,4 +3482b33,24 +3482b34,27 +3482b35,bd +3482b36,ff +3482b37,e0 +3482b38,af +3482b39,a2 +3482b3b,10 +3482b3c,af +3482b3d,a3 +3482b3f,14 +3482b40,af +3482b41,bf +3482b43,18 +3482b44,c +3482b45,10 +3482b46,a +3482b47,d9 +3482b4c,8f +3482b4d,a2 +3482b4f,10 +3482b50,8f +3482b51,a3 +3482b53,14 +3482b54,8f +3482b55,bf +3482b57,18 +3482b58,27 +3482b59,bd +3482b5b,20 +3482b5c,3 +3482b5d,e0 +3482b5f,8 +3482b64,27 +3482b65,bd +3482b66,ff +3482b67,e8 +3482b68,af +3482b69,bf +3482b6b,10 +3482b6c,3c +3482b6d,8 +3482b6e,80 +3482b6f,40 +3482b70,25 +3482b71,8 +3482b72,20 +3482b73,8 +3482b74,ad +3482b78,ad +3482b7b,4 +3482b7c,ad +3482b7f,8 +3482b80,ad +3482b83,c +3482b84,3c +3482b85,8 +3482b86,80 +3482b87,1e +3482b88,25 +3482b89,8 +3482b8a,aa +3482b8b,30 +3482b8c,81 +3482b8d,9 +3482b8e,4 +3482b8f,24 +3482b90,11 +3482b91,20 +3482b93,2a +3482b99,9 +3482b9a,f +3482b9b,c3 +3482b9c,1 +3482b9d,21 +3482b9e,20 +3482b9f,26 +3482ba1,81 +3482ba2,20 +3482ba3,23 +3482ba4,8d +3482ba5,5 +3482ba6,4 +3482ba7,28 +3482ba8,c +3482ba9,10 +3482baa,b +3482bab,13 +3482bb0,4 +3482bb1,40 +3482bb3,22 +3482bb8,34 +3482bb9,44 +3482bbc,c +3482bbd,10 +3482bbe,b +3482bbf,84 +3482bc4,10 +3482bc5,60 +3482bc7,c +3482bcc,3c +3482bcd,8 +3482bce,80 +3482bcf,40 +3482bd0,25 +3482bd1,8 +3482bd2,20 +3482bd3,8 +3482bd4,8c +3482bd5,69 +3482bd8,ad +3482bd9,9 +3482bdc,8c +3482bdd,69 +3482bdf,4 +3482be0,ad +3482be1,9 +3482be3,4 +3482be4,8c +3482be5,69 +3482be7,8 +3482be8,ad +3482be9,9 +3482beb,8 +3482bec,34 +3482bed,9 +3482bef,1 +3482bf0,ad +3482bf1,9 +3482bf3,c +3482bf4,90 +3482bf5,62 +3482bf8,3c +3482bf9,8 +3482bfa,80 +3482bfb,1e +3482bfc,25 +3482bfd,8 +3482bfe,aa +3482bff,30 +3482c00,8d +3482c01,9 +3482c02,4 +3482c03,28 +3482c04,95 +3482c05,2a +3482c08,34 +3482c09,1 +3482c0b,a +3482c0c,15 +3482c0d,41 +3482c0f,6 +3482c14,95 +3482c15,2a +3482c17,1c +3482c18,31 +3482c19,4a +3482c1a,f0 +3482c1b,1f +3482c1d,2 +3482c1e,59 +3482c1f,40 +3482c20,1 +3482c21,4b +3482c22,50 +3482c23,25 +3482c24,a5 +3482c25,2a +3482c27,1c +3482c28,81 +3482c29,9 +3482c2a,4 +3482c2b,24 +3482c2c,5 +3482c2d,21 +3482c2f,2 +3482c35,2 +3482c36,10 +3482c37,23 +3482c38,a1 +3482c39,2 +3482c3a,4 +3482c3b,24 +3482c3c,8f +3482c3d,bf +3482c3f,10 +3482c40,27 +3482c41,bd +3482c43,18 +3482c44,3 +3482c45,e0 +3482c47,8 +3482c4c,27 +3482c4d,bd +3482c4e,ff +3482c4f,e8 +3482c50,af +3482c51,bf +3482c53,10 +3482c54,c +3482c55,10 +3482c56,b +3482c57,21 +3482c5c,24 +3482c5d,1 +3482c5e,ff +3482c5f,ff +3482c60,10 +3482c61,41 +3482c63,4 +3482c68,34 +3482c69,44 +3482c6c,c +3482c6d,10 +3482c6e,b +3482c6f,5f +3482c74,8f +3482c75,bf +3482c77,10 +3482c78,27 +3482c79,bd +3482c7b,18 +3482c7c,3 +3482c7d,e0 +3482c7f,8 +3482c84,3c +3482c85,2 +3482c86,80 +3482c87,1d +3482c88,24 +3482c89,42 +3482c8a,84 +3482c8b,a0 +3482c8c,94 +3482c8d,42 +3482c8f,a4 +3482c90,34 +3482c91,8 +3482c94,34 +3482c95,89 +3482c98,94 +3482c99,aa +3482c9c,34 +3482c9d,1 +3482c9e,1 +3482c9f,9c +3482ca0,15 +3482ca1,41 +3482ca3,8 +3482ca8,34 +3482ca9,8 +3482cab,3 +3482cac,94 +3482cad,ab +3482caf,1c +3482cb0,31 +3482cb1,69 +3482cb3,ff +3482cb4,31 +3482cb5,62 +3482cb6,1f +3482cb9,2 +3482cba,12 +3482cbb,2 +3482cbc,10 +3482cbf,1f +3482cc4,34 +3482cc5,1 +3482cc7,a +3482cc8,15 +3482cc9,41 +3482ccb,e +3482cd0,94 +3482cd1,ab +3482cd3,1c +3482cd4,34 +3482cd5,1 +3482cd7,10 +3482cd8,14 +3482cd9,41 +3482cdb,8 +3482ce0,31 +3482ce1,6c +3482ce2,f +3482ce3,e0 +3482ce4,34 +3482ce5,1 +3482ce6,e +3482ce7,a0 +3482ce8,15 +3482ce9,81 +3482ceb,4 +3482cf0,24 +3482cf1,2 +3482cf2,ff +3482cf3,ff +3482cf4,10 +3482cf7,1f +3482cfc,34 +3482cfd,8 +3482cff,1 +3482d00,31 +3482d01,69 +3482d03,1f +3482d04,34 +3482d05,1 +3482d07,15 +3482d08,15 +3482d09,41 +3482d0b,c +3482d10,34 +3482d11,1 +3482d13,3e +3482d14,10 +3482d15,81 +3482d17,7 +3482d1c,34 +3482d1d,1 +3482d1f,42 +3482d20,10 +3482d21,81 +3482d23,4 +3482d28,24 +3482d29,2 +3482d2a,ff +3482d2b,ff +3482d2c,10 +3482d2f,11 +3482d34,34 +3482d35,8 +3482d37,2 +3482d38,90 +3482d39,a9 +3482d3a,1 +3482d3b,41 +3482d3c,34 +3482d3d,1 +3482d3e,1 +3482d3f,1a +3482d40,15 +3482d41,41 +3482d43,8 +3482d48,34 +3482d49,1 +3482d4b,3e +3482d4c,14 +3482d4d,41 +3482d4f,5 +3482d54,34 +3482d55,8 +3482d57,4 +3482d58,3c +3482d59,b +3482d5a,80 +3482d5b,12 +3482d5c,25 +3482d5d,6b +3482d5e,a5 +3482d5f,d0 +3482d60,81 +3482d61,62 +3482d62,13 +3482d63,97 +3482d65,2 +3482d66,12 +3482d69,48 +3482d6a,10 +3482d6b,25 +3482d6d,2 +3482d6e,12 +3482d71,49 +3482d72,10 +3482d73,25 +3482d74,3 +3482d75,e0 +3482d77,8 +3482d7c,24 +3482d7d,2 +3482d7e,ff +3482d7f,ff +3482d80,3c +3482d81,8 +3482d82,80 +3482d83,40 +3482d84,25 +3482d85,8 +3482d86,1c +3482d88,81 +3482d89,9 +3482d8c,3c +3482d8d,8 +3482d8e,80 +3482d8f,12 +3482d90,25 +3482d91,8 +3482d92,a5 +3482d93,d0 +3482d94,a5 +3482d95,9 +3482d96,14 +3482d97,6 +3482d98,3c +3482d99,8 +3482d9a,80 +3482d9b,40 +3482d9c,25 +3482d9d,8 +3482d9e,f +3482d9f,fc +3482da0,25 +3482da1,8 +3482da3,4 +3482da4,8d +3482da5,9 +3482da8,11 +3482da9,20 +3482dab,17 +3482db1,9 +3482db2,52 +3482db3,2 +3482db4,31 +3482db5,4b +3482db6,f8 +3482db9,b +3482dba,5a +3482dbb,c2 +3482dbc,3c +3482dbd,c +3482dbe,ff +3482dbf,ff +3482dc0,35 +3482dc1,8c +3482dc2,7 +3482dc3,ff +3482dc4,1 +3482dc5,4c +3482dc6,50 +3482dc7,24 +3482dc8,15 +3482dc9,44 +3482dca,ff +3482dcb,f5 +3482dd0,31 +3482dd1,22 +3482dd3,ff +3482dd4,3c +3482dd5,8 +3482dd6,80 +3482dd7,12 +3482dd8,25 +3482dd9,8 +3482dda,a5 +3482ddb,d0 +3482ddc,a5 +3482ddd,b +3482dde,14 +3482ddf,6 +3482de0,3c +3482de1,9 +3482de2,80 +3482de3,40 +3482de4,25 +3482de5,29 +3482de6,20 +3482de8,3c +3482de9,c +3482dea,80 +3482deb,40 +3482dec,25 +3482ded,8c +3482dee,1c +3482df0,81 +3482df1,8c +3482df4,11 +3482df5,6c +3482df7,4 +3482df8,a5 +3482df9,20 +3482dfb,2 +3482dfc,a1 +3482dfd,2b +3482dff,2 +3482e00,a1 +3482e01,22 +3482e03,3 +3482e04,ad +3482e05,24 +3482e07,4 +3482e08,3 +3482e09,e0 +3482e0b,8 +3482e10,27 +3482e11,bd +3482e12,ff +3482e13,e0 +3482e14,af +3482e15,b0 +3482e17,10 +3482e18,af +3482e19,b1 +3482e1b,14 +3482e1c,af +3482e1d,bf +3482e1f,18 +3482e20,34 +3482e21,82 +3482e24,34 +3482e25,50 +3482e28,26 +3482e29,8 +3482e2a,ff +3482e2b,80 +3482e2c,5 +3482e2f,12 +3482e34,3c +3482e35,11 +3482e36,80 +3482e37,40 +3482e38,26 +3482e39,31 +3482e3a,20 +3482e3b,50 +3482e3c,34 +3482e3d,9 +3482e3f,10 +3482e40,1 +3482e41,9 +3482e43,18 +3482e46,40 +3482e47,12 +3482e48,2 +3482e49,28 +3482e4a,88 +3482e4b,21 +3482e4c,3c +3482e4d,4 +3482e4e,80 +3482e4f,12 +3482e50,24 +3482e51,84 +3482e52,a5 +3482e53,d0 +3482e54,36 +3482e55,5 +3482e58,8e +3482e59,28 +3482e5b,c +3482e5c,1 +3482e5e,f8 +3482e5f,9 +3482e64,14 +3482e65,50 +3482e66,ff +3482e67,ef +3482e6c,36 +3482e6d,23 +3482e70,10 +3482e73,2 +3482e78,34 +3482e79,3 +3482e7c,8f +3482e7d,b0 +3482e7f,10 +3482e80,8f +3482e81,b1 +3482e83,14 +3482e84,8f +3482e85,bf +3482e87,18 +3482e88,27 +3482e89,bd +3482e8b,20 +3482e8c,3 +3482e8d,e0 +3482e8f,8 +3482e94,8c +3482e95,88 +3482e96,1d +3482e97,2c +3482e98,34 +3482e99,9 +3482e9b,1 +3482e9d,9 +3482e9e,4e +3482ea0,1 +3482ea1,9 +3482ea2,10 +3482ea3,24 +3482ea4,10 +3482ea5,40 +3482ea7,24 +3482eac,94 +3482ead,ca +3482eae,2 +3482eaf,dc +3482eb0,3c +3482eb1,b +3482eb2,80 +3482eb3,12 +3482eb4,25 +3482eb5,6b +3482eb6,a5 +3482eb7,d0 +3482eb8,94 +3482eb9,8c +3482ebb,a4 +3482ebc,34 +3482ebd,1 +3482ebf,3d +3482ec0,11 +3482ec1,81 +3482ec3,a +3482ec9,8a +3482eca,60 +3482ecb,21 +3482ecc,91 +3482ecd,8d +3482ece,1d +3482ecf,28 +3482ed0,15 +3482ed1,a0 +3482ed3,19 +3482ed8,34 +3482ed9,d +3482edb,1 +3482edc,a1 +3482edd,8d +3482ede,1d +3482edf,28 +3482ee0,25 +3482ee1,4a +3482ee3,3 +3482ee4,10 +3482ee7,9 +3482eec,34 +3482eed,c +3482eef,1 +3482ef0,1 +3482ef1,4c +3482ef2,60 +3482ef3,4 +3482ef4,91 +3482ef5,6d +3482ef6,e +3482ef7,f2 +3482ef8,1 +3482ef9,ac +3482efa,70 +3482efb,24 +3482efc,15 +3482efd,c0 +3482eff,e +3482f04,1 +3482f05,ac +3482f06,70 +3482f07,25 +3482f08,a1 +3482f09,6e +3482f0a,e +3482f0b,f2 +3482f0c,1 +3482f0d,29 +3482f0e,48 +3482f0f,27 +3482f10,1 +3482f11,9 +3482f12,40 +3482f13,24 +3482f14,ac +3482f15,88 +3482f16,1d +3482f17,2c +3482f18,3c +3482f19,8 +3482f1a,80 +3482f1b,40 +3482f1c,25 +3482f1d,8 +3482f1e,1c +3482f1f,3 +3482f20,1 +3482f21,a +3482f22,40 +3482f23,21 +3482f24,81 +3482f25,8 +3482f28,3c +3482f29,9 +3482f2a,80 +3482f2b,40 +3482f2c,25 +3482f2d,29 +3482f2e,20 +3482f2f,18 +3482f30,a1 +3482f31,28 +3482f34,34 +3482f35,2 +3482f38,3 +3482f39,e0 +3482f3b,8 +3482f40,3c +3482f41,8 +3482f42,80 +3482f43,40 +3482f44,25 +3482f45,8 +3482f46,1c +3482f47,1 +3482f48,81 +3482f49,8 +3482f4c,10 +3482f4f,22 +3482f54,3c +3482f55,8 +3482f56,80 +3482f57,40 +3482f58,25 +3482f59,8 +3482f5a,1c +3482f5b,2 +3482f5c,81 +3482f5d,8 +3482f60,10 +3482f63,1d +3482f68,34 +3482f69,2 +3482f6b,ff +3482f6c,20 +3482f6d,e8 +3482f6e,ff +3482f6f,a6 +3482f70,21 +3482f71,8 +3482f73,61 +3482f74,10 +3482f77,18 +3482f7c,34 +3482f7d,8 +3482f7f,64 +3482f80,10 +3482f83,15 +3482f88,3c +3482f89,1 +3482f8a,80 +3482f8b,12 +3482f8c,24 +3482f8d,21 +3482f8e,a5 +3482f8f,d0 +3482f90,80 +3482f91,28 +3482f92,e +3482f93,de +3482f94,35 +3482f95,8 +3482f97,1 +3482f98,a0 +3482f99,28 +3482f9a,e +3482f9b,de +3482f9c,34 +3482f9d,8 +3482f9f,68 +3482fa0,10 +3482fa3,d +3482fa8,3c +3482fa9,1 +3482faa,80 +3482fab,12 +3482fac,24 +3482fad,21 +3482fae,a5 +3482faf,d0 +3482fb0,80 +3482fb1,28 +3482fb2,e +3482fb3,de +3482fb4,35 +3482fb5,8 +3482fb7,4 +3482fb8,a0 +3482fb9,28 +3482fba,e +3482fbb,de +3482fbc,34 +3482fbd,8 +3482fbf,6a +3482fc0,10 +3482fc3,5 +3482fc8,34 +3482fc9,5 +3482fcb,3 +3482fcc,34 +3482fcd,8 +3482fcf,6b +3482fd0,10 +3482fd3,1 +3482fd8,3c +3482fd9,9 +3482fda,80 +3482fdb,40 +3482fdc,25 +3482fdd,29 +3482fde,20 +3482fdf,18 +3482fe0,3c +3482fe1,a +3482fe2,80 +3482fe3,40 +3482fe4,25 +3482fe5,4a +3482fe6,20 +3482fe7,1b +3482fe8,81 +3482fe9,2c +3482fec,11 +3482fed,88 +3482fef,b +3482ff0,21 +3482ff1,29 +3482ff3,1 +3482ff4,15 +3482ff5,2a +3482ff6,ff +3482ff7,fc +3482ffc,3c +3482ffd,9 +3482ffe,80 +3482fff,40 +3483000,25 +3483001,29 +3483002,20 +3483003,17 +3483004,21 +3483005,29 +3483007,1 +3483008,11 +3483009,2a +348300b,4 +348300c,81 +348300d,2c +3483010,15 +3483011,80 +3483012,ff +3483013,fc +3483018,a1 +3483019,28 +348301c,3 +348301d,e0 +348301f,8 +3483025,60 +3483026,78 +3483027,21 +3483028,81 +3483029,ec +348302a,e +348302b,df +348302c,31 +348302d,8e +348302f,80 +3483030,11 +3483031,c0 +3483033,3 +3483034,34 +3483035,3 +3483037,5 +3483038,3 +3483039,e0 +348303b,8 +348303c,34 +348303d,2 +348303f,2 +3483040,3 +3483041,e0 +3483043,8 +3483045,60 +3483046,10 +3483047,21 +3483048,85 +3483049,c2 +348304b,a4 +348304c,3c +348304d,8 +348304e,80 +348304f,12 +3483050,25 +3483051,8 +3483052,a5 +3483053,d0 +3483054,81 +3483055,9 +3483056,e +3483057,df +3483058,35 +3483059,29 +348305b,80 +348305c,a1 +348305d,9 +348305e,e +348305f,df +3483060,3 +3483061,e0 +3483063,8 +3483068,84 +3483069,8e +348306b,1c +348306c,21 +348306d,cd +348306e,ff +348306f,ce +3483070,5 +3483071,a0 +3483073,10 +3483074,34 +3483075,2 +3483078,31 +3483079,a9 +348307b,7 +348307c,34 +348307d,a +348307f,1 +3483080,1 +3483081,2a +3483082,50 +3483083,4 +3483085,d +3483086,48 +3483087,c2 +3483088,3c +3483089,c +348308a,80 +348308b,12 +348308c,25 +348308d,8c +348308e,a5 +348308f,d0 +3483090,1 +3483091,89 +3483092,60 +3483093,20 +3483094,81 +3483095,8b +3483096,5 +3483097,b4 +3483098,1 +3483099,6a +348309a,58 +348309b,24 +348309c,34 +348309d,2 +34830a0,11 +34830a1,60 +34830a3,4 +34830a8,34 +34830a9,d +34830ab,26 +34830ac,a4 +34830ad,8d +34830af,1c +34830b0,34 +34830b1,2 +34830b3,1 +34830b4,3 +34830b5,e0 +34830b7,8 +34830bc,84 +34830bd,ae +34830bf,1c +34830c0,21 +34830c1,cd +34830c2,ff +34830c3,ce +34830c4,5 +34830c5,a0 +34830c7,b +34830c8,34 +34830c9,2 +34830cc,31 +34830cd,a9 +34830cf,7 +34830d0,34 +34830d1,a +34830d3,1 +34830d4,1 +34830d5,2a +34830d6,50 +34830d7,4 +34830d9,d +34830da,48 +34830db,c2 +34830dc,3c +34830dd,c +34830de,80 +34830df,12 +34830e0,25 +34830e1,8c +34830e2,a5 +34830e3,d0 +34830e4,1 +34830e5,89 +34830e6,60 +34830e7,20 +34830e8,81 +34830e9,8b +34830ea,5 +34830eb,b4 +34830ec,1 +34830ed,6a +34830ee,58 +34830ef,25 +34830f0,a1 +34830f1,8b +34830f2,5 +34830f3,b4 +34830f4,3 +34830f5,e0 +34830f7,8 +34830fc,27 +34830fd,bd +34830fe,ff +34830ff,f0 +3483100,af +3483101,bf +3483103,8 +3483104,28 +3483105,81 +3483107,32 +3483108,10 +3483109,20 +348310b,3 +348310d,80 +348310e,10 +348310f,21 +3483110,3 +3483111,20 +3483112,f8 +3483113,9 +3483118,8f +3483119,bf +348311b,8 +348311c,27 +348311d,bd +348311f,10 +3483120,3 +3483121,e0 +3483123,8 +3483128,3c +3483129,8 +348312a,80 +348312b,1d +348312c,25 +348312d,8 +348312e,84 +348312f,a0 +3483130,3c +3483131,9 +3483132,80 +3483133,12 +3483134,25 +3483135,29 +3483136,a5 +3483137,d0 +3483138,85 +3483139,a +348313b,a4 +348313c,34 +348313d,1 +348313f,3e +3483140,15 +3483141,41 +3483143,2 +3483144,81 +3483145,2b +3483146,13 +3483147,97 +3483148,21 +3483149,6a +348314b,2d +348314c,86 +348314d,b +348314f,1c +3483150,21 +3483151,6b +3483153,1 +3483154,34 +3483155,c +3483157,1 +3483158,1 +3483159,6c +348315a,60 +348315b,4 +348315c,34 +348315d,1 +348315f,1c +3483160,1 +3483161,41 +3483163,18 +3483166,68 +3483167,12 +3483168,1 +3483169,2d +348316a,70 +348316b,20 +348316c,8d +348316d,cf +348316f,e4 +3483170,1 +3483171,8f +3483172,10 +3483173,24 +3483174,3 +3483175,e0 +3483177,8 +348317c,3c +348317d,8 +348317e,80 +348317f,1d +3483180,25 +3483181,8 +3483182,84 +3483183,a0 +3483184,3c +3483185,9 +3483186,80 +3483187,12 +3483188,25 +3483189,29 +348318a,a5 +348318b,d0 +348318c,85 +348318d,a +348318f,a4 +3483190,34 +3483191,1 +3483193,3e +3483194,15 +3483195,41 +3483197,2 +3483198,81 +3483199,2b +348319a,13 +348319b,97 +348319c,21 +348319d,6a +348319f,2d +34831a0,84 +34831a1,8b +34831a3,1c +34831a4,21 +34831a5,6b +34831a7,1 +34831a8,34 +34831a9,c +34831ab,1 +34831ac,1 +34831ad,6c +34831ae,60 +34831af,4 +34831b0,34 +34831b1,1 +34831b3,1c +34831b4,1 +34831b5,41 +34831b7,18 +34831ba,68 +34831bb,12 +34831bc,1 +34831bd,2d +34831be,70 +34831bf,20 +34831c0,8d +34831c1,cf +34831c3,e4 +34831c4,1 +34831c5,8f +34831c6,78 +34831c7,25 +34831c8,ad +34831c9,cf +34831cb,e4 +34831cc,3 +34831cd,e0 +34831cf,8 +34831d4,af +34831d5,a4 +34831d7,68 +34831d8,af +34831d9,a5 +34831db,6c +34831dc,af +34831dd,a6 +34831df,70 +34831e0,af +34831e1,a7 +34831e3,74 +34831e4,27 +34831e5,bd +34831e6,ff +34831e7,e8 +34831e8,af +34831e9,a3 +34831eb,10 +34831ec,af +34831ed,bf +34831ef,14 +34831f0,3c +34831f1,a +34831f2,80 +34831f3,1e +34831f4,25 +34831f5,4a +34831f6,aa +34831f7,30 +34831f8,81 +34831f9,48 +34831fa,6 +34831fb,6c +34831fc,31 +34831fd,8 +34831ff,20 +3483200,15 +3483203,1f +3483208,3c +3483209,9 +348320a,80 +348320b,40 +348320c,25 +348320d,29 +348320e,20 +348320f,1b +3483210,34 +3483211,a +3483213,ff +3483214,a1 +3483215,2a +3483218,3c +3483219,9 +348321a,80 +348321b,40 +348321c,25 +348321d,29 +348321e,20 +348321f,18 +3483220,24 +3483221,a +3483222,ff +3483223,ff +3483224,34 +3483225,c +3483227,3 +3483228,21 +3483229,4a +348322b,1 +348322c,11 +348322d,4c +348322f,14 +3483230,1 +3483231,2a +3483232,58 +3483233,20 +3483234,81 +3483235,68 +3483238,11 +348323a,ff +348323b,fb +3483240,3c +3483241,9 +3483242,80 +3483243,40 +3483244,25 +3483245,29 +3483246,20 +3483247,1b +3483248,a1 +3483249,2a +348324c,3c +348324d,9 +348324e,80 +348324f,1e +3483250,25 +3483251,29 +3483252,89 +3483253,84 +3483254,34 +3483255,a +3483257,1 +3483258,a5 +3483259,2a +348325c,3c +348325d,9 +348325e,80 +348325f,48 +3483260,34 +3483261,a +3483263,1 +3483264,ad +3483265,2a +3483266,1 +3483267,30 +3483268,3c +3483269,a +348326a,80 +348326b,1e +348326c,25 +348326d,4a +348326e,aa +348326f,30 +3483270,a1 +3483271,48 +3483272,4 +3483273,24 +3483274,ad +3483275,49 +3483276,4 +3483277,28 +3483278,c +3483279,10 +348327a,a +348327b,d9 +3483280,8f +3483281,a3 +3483283,10 +3483284,8f +3483285,bf +3483287,14 +3483288,27 +3483289,bd +348328b,18 +348328c,8f +348328d,a4 +348328f,68 +3483290,8f +3483291,a5 +3483293,6c +3483294,8f +3483295,a6 +3483297,70 +3483298,8f +3483299,a7 +348329b,74 +348329c,84 +348329d,6e +348329e,13 +348329f,c4 +34832a0,3 +34832a1,e0 +34832a3,8 +34832a8,93 +34832a9,19 +34832ab,74 +34832ac,34 +34832ad,1 +34832af,ff +34832b0,17 +34832b1,21 +34832b3,2 +34832b8,34 +34832b9,19 +34832bb,2c +34832bc,3 +34832bd,e0 +34832bf,8 +34832c0,a7 +34832c1,b9 +34832c3,9a +34832c4,93 +34832c5,2c +34832c7,74 +34832c8,34 +34832c9,1 +34832cb,ff +34832cc,15 +34832cd,81 +34832cf,2 +34832d4,34 +34832d5,c +34832d7,2c +34832d8,3 +34832d9,e0 +34832db,8 +34832e0,91 +34832e1,ae +34832e3,74 +34832e4,34 +34832e5,1 +34832e7,ff +34832e8,15 +34832e9,c1 +34832eb,2 +34832f0,34 +34832f1,e +34832f3,2c +34832f4,3 +34832f5,e0 +34832f7,8 +34832f8,a7 +34832f9,ae +34832fb,9a +34832fc,91 +34832fd,cf +34832ff,74 +3483300,34 +3483301,1 +3483303,ff +3483304,15 +3483305,e1 +3483307,2 +348330c,34 +348330d,f +348330f,2c +3483310,3 +3483311,e0 +3483313,8 +3483314,a7 +3483315,af +3483317,9a +3483318,3c +3483319,8 +348331a,80 +348331b,40 +348331c,25 +348331d,8 +348331e,20 +348331f,1c +3483320,8e +3483321,9 +3483323,68 +3483324,ad +3483325,9 +3483328,8e +3483329,9 +348332b,6c +348332c,ad +348332d,9 +348332f,4 +3483330,96 +3483331,9 +3483333,70 +3483334,a5 +3483335,9 +3483337,8 +3483338,96 +3483339,9 +348333b,9c +348333c,a5 +348333d,9 +348333f,a +3483340,3 +3483341,e0 +3483343,8 +3483344,8e +3483345,e +3483347,4 +3483348,27 +3483349,bd +348334a,ff +348334b,e0 +348334c,af +348334d,b0 +348334f,10 +3483350,af +3483351,b1 +3483353,14 +3483354,af +3483355,bf +3483357,18 +3483358,3c +3483359,10 +348335a,80 +348335b,12 +348335c,26 +348335d,10 +348335e,a5 +348335f,d0 +3483360,3c +3483361,11 +3483362,80 +3483363,40 +3483364,26 +3483365,31 +3483366,20 +3483367,1c +3483368,8e +3483369,8 +348336b,4 +348336c,11 +348336f,5 +3483374,c +3483375,10 +3483376,c +3483377,fc +348337c,10 +348337f,3 +3483384,c +3483385,10 +3483386,d +3483387,f +348338c,c +348338d,10 +348338e,c +348338f,ef +3483390,34 +3483391,4 +3483394,c +3483395,10 +3483396,c +3483397,ef +3483398,34 +3483399,4 +348339b,1 +348339c,c +348339d,10 +348339e,c +348339f,ef +34833a0,34 +34833a1,4 +34833a3,2 +34833a4,8f +34833a5,b0 +34833a7,10 +34833a8,8f +34833a9,b1 +34833ab,14 +34833ac,8f +34833ad,bf +34833af,18 +34833b0,27 +34833b1,bd +34833b3,20 +34833b4,3 +34833b5,e0 +34833b7,8 +34833bc,2 +34833bd,4 +34833be,40 +34833bf,21 +34833c0,91 +34833c1,9 +34833c3,6c +34833c4,34 +34833c5,1 +34833c7,ff +34833c8,11 +34833c9,21 +34833cb,7 +34833d0,2 +34833d1,9 +34833d2,48 +34833d3,21 +34833d4,91 +34833d5,29 +34833d7,74 +34833d8,34 +34833d9,1 +34833db,2c +34833dc,11 +34833dd,21 +34833df,2 +34833e4,a1 +34833e5,9 +34833e7,69 +34833e8,3 +34833e9,e0 +34833eb,8 +34833f0,27 +34833f1,bd +34833f2,ff +34833f3,e8 +34833f4,af +34833f5,bf +34833f7,10 +34833f8,8e +34833f9,28 +34833fc,ae +34833fd,8 +34833ff,40 +3483400,8e +3483401,28 +3483403,4 +3483404,ae +3483405,8 +3483407,44 +3483408,96 +3483409,28 +348340b,8 +348340c,a6 +348340d,8 +348340f,48 +3483410,a2 +3483412,f +3483413,33 +3483414,92 +3483415,8 +3483417,4a +3483418,34 +3483419,1 +348341b,ff +348341c,15 +348341d,1 +348341f,3 +3483424,c +3483425,10 +3483426,d +3483427,1d +348342c,8f +348342d,bf +348342f,10 +3483430,27 +3483431,bd +3483433,18 +3483434,3 +3483435,e0 +3483437,8 +348343c,8e +348343d,8 +348343f,40 +3483440,ae +3483441,8 +3483443,68 +3483444,8e +3483445,8 +3483447,44 +3483448,ae +3483449,8 +348344b,6c +348344c,96 +348344d,8 +348344f,48 +3483450,a6 +3483451,8 +3483453,70 +3483454,92 +3483455,8 +3483457,68 +3483458,34 +3483459,1 +348345b,ff +348345c,15 +348345d,1 +348345f,3 +3483464,34 +3483465,8 +3483467,1 +3483468,a2 +3483469,8 +348346a,f +348346b,33 +348346c,3 +348346d,e0 +348346f,8 +3483474,27 +3483475,bd +3483476,ff +3483477,e8 +3483478,af +3483479,bf +348347b,10 +348347c,96 +348347d,8 +348347f,9c +3483480,31 +3483481,8 +3483483,40 +3483484,11 +3483487,5 +348348c,96 +348348d,8 +348348f,70 +3483490,31 +3483491,8 +3483492,ff +3483493,f +3483494,35 +3483495,8 +3483497,30 +3483498,a6 +3483499,8 +348349b,70 +348349c,92 +348349d,28 +348349f,1 +34834a0,a2 +34834a1,8 +34834a3,69 +34834a4,96 +34834a5,28 +34834a7,2 +34834a8,a6 +34834a9,8 +34834ab,6a +34834ac,8e +34834ad,28 +34834af,4 +34834b0,ae +34834b1,8 +34834b3,6c +34834b4,c +34834b5,10 +34834b6,d +34834b7,37 +34834b8,34 +34834b9,4 +34834bc,c +34834bd,10 +34834be,d +34834bf,37 +34834c0,34 +34834c1,4 +34834c3,1 +34834c4,c +34834c5,10 +34834c6,d +34834c7,37 +34834c8,34 +34834c9,4 +34834cb,2 +34834cc,8f +34834cd,bf +34834cf,10 +34834d0,27 +34834d1,bd +34834d3,18 +34834d4,3 +34834d5,e0 +34834d7,8 +34834dc,2 +34834dd,4 +34834de,40 +34834df,21 +34834e0,3c +34834e1,9 +34834e2,80 +34834e3,40 +34834e4,25 +34834e5,29 +34834e6,35 +34834e7,88 +34834e8,91 +34834e9,a +34834eb,6c +34834ec,34 +34834ed,1 +34834ef,ff +34834f0,11 +34834f1,41 +34834f3,5 +34834f8,1 +34834f9,2a +34834fa,48 +34834fb,21 +34834fc,91 +34834fd,29 +3483500,15 +3483501,20 +3483503,1c +3483508,3c +3483509,9 +348350a,80 +348350b,40 +348350c,25 +348350d,29 +348350e,35 +348350f,7b +3483510,25 +3483511,29 +3483513,1 +3483514,91 +3483515,2a +3483518,11 +3483519,40 +348351b,13 +3483520,2 +3483521,a +3483522,58 +3483523,21 +3483524,91 +3483525,6b +3483527,74 +3483528,34 +3483529,1 +348352b,ff +348352c,11 +348352d,61 +348352e,ff +348352f,f8 +3483534,92 +3483535,c +3483537,6c +3483538,11 +3483539,8a +348353a,ff +348353b,f5 +3483540,92 +3483541,c +3483543,6d +3483544,11 +3483545,8a +3483546,ff +3483547,f2 +348354c,92 +348354d,c +348354f,6e +3483550,11 +3483551,8a +3483552,ff +3483553,ef +3483558,a1 +3483559,b +348355b,69 +348355c,a1 +348355d,a +348355f,6c +3483560,10 +3483563,4 +3483568,34 +3483569,9 +348356b,ff +348356c,a1 +348356d,9 +348356f,69 +3483570,a1 +3483571,9 +3483573,6c +3483574,3 +3483575,e0 +3483577,8 +348357c,7 +348357d,9 +348357e,f +348357f,2 +3483580,3 +3483581,1 +3483582,d +3483583,b +3483589,1 +348358a,1 +348358b,1 +348358c,1 +348358d,1 +348358f,1 +3483590,1 +3483591,1 +3483592,1 +3483593,1 +3483595,1 +3483597,1 +3483598,1 +3483599,1 +348359a,1 +348359b,1 +348359c,1 +348359d,1 +348359e,1 +34835a1,33 +34835a2,8 +34835a3,21 +34835a4,20 +34835a5,f +34835a7,47 +34835a8,15 +34835a9,ea +34835ab,e +34835ac,3c +34835ad,2 +34835ae,80 +34835af,12 +34835b0,8c +34835b1,42 +34835b2,a5 +34835b3,d4 +34835b4,8e +34835b5,6f +34835b7,a4 +34835b9,f +34835ba,7a +34835bb,3 +34835bc,14 +34835bd,40 +34835bf,5 +34835c0,34 +34835c1,2 +34835c2,48 +34835c3,30 +34835c4,15 +34835c5,e2 +34835c7,7 +34835cc,24 +34835cd,19 +34835cf,3 +34835d0,10 +34835d3,4 +34835d4,34 +34835d5,2 +34835d6,63 +34835d7,11 +34835d8,15 +34835d9,e2 +34835db,2 +34835e0,24 +34835e1,19 +34835e3,3 +34835e4,3 +34835e5,e0 +34835e7,8 +34835ec,8d +34835ed,ad +34835ee,8a +34835ef,a0 +34835f0,34 +34835f1,2 +34835f2,80 +34835f4,10 +34835f5,4d +34835f7,2 +34835fc,10 +34835ff,9 +3483600,3c +3483601,f +3483602,80 +3483603,1e +3483604,25 +3483605,ef +3483606,84 +3483607,a0 +3483608,81 +3483609,e2 +348360a,1c +348360b,bf +348360c,30 +348360d,42 +348360f,1 +3483610,10 +3483611,40 +3483613,2 +3483618,10 +348361b,2 +348361c,34 +348361d,2 +348361f,1 +3483620,a1 +3483621,e2 +3483622,1c +3483623,bf +3483624,3 +3483625,e0 +3483627,8 +348362d,33 +348362e,8 +348362f,21 +3483630,3c +3483631,2 +3483632,80 +3483633,12 +3483634,8c +3483635,42 +3483636,a5 +3483637,d4 +3483638,8e +3483639,6f +348363b,a4 +348363d,f +348363e,7a +348363f,3 +3483640,14 +3483641,40 +3483643,5 +3483644,34 +3483645,2 +3483646,48 +3483647,30 +3483648,15 +3483649,e2 +348364b,7 +3483650,24 +3483651,19 +3483653,3 +3483654,10 +3483657,4 +3483658,34 +3483659,2 +348365a,63 +348365b,11 +348365c,15 +348365d,e2 +348365f,2 +3483664,24 +3483665,19 +3483667,3 +3483668,3 +3483669,e0 +348366b,8 +3483670,34 +3483671,1 +3483673,18 +3483674,14 +3483675,81 +3483677,11 +348367c,14 +348367d,40 +348367f,f +3483684,3c +3483685,a +3483686,80 +3483687,12 +3483688,25 +3483689,4a +348368a,a5 +348368b,d0 +348368c,81 +348368d,48 +348368f,a6 +3483690,31 +3483691,8 +3483693,20 +3483694,11 +3483697,9 +3483698,34 +3483699,2 +348369c,34 +348369d,2 +348369f,1 +34836a0,81 +34836a1,48 +34836a3,7b +34836a4,34 +34836a5,9 +34836a7,7 +34836a8,11 +34836a9,9 +34836ab,4 +34836ac,34 +34836ad,a +34836af,8 +34836b0,11 +34836b1,a +34836b3,2 +34836b8,34 +34836b9,2 +34836bc,3 +34836bd,e0 +34836bf,8 +34836c4,a2 +34836c5,25 +34836c7,21 +34836c8,3c +34836c9,10 +34836ca,80 +34836cb,40 +34836cc,26 +34836cd,10 +34836ce,17 +34836cf,fc +34836d0,26 +34836d1,10 +34836d3,4 +34836d4,8e +34836d5,a +34836d8,11 +34836d9,40 +34836db,b +34836e1,a +34836e2,7c +34836e3,2 +34836e4,1 +34836e5,f1 +34836e6,78 +34836e7,20 +34836e8,31 +34836e9,58 +34836ea,ff +34836ed,18 +34836ee,c2 +34836ef,2 +34836f0,17 +34836f3,3 +34836f4,31 +34836f5,59 +34836f7,ff +34836f8,81 +34836f9,ea +34836fc,3 +34836fd,2a +34836fe,c8 +34836ff,25 +3483700,8 +3483701,10 +3483702,d +3483703,b4 +3483704,a1 +3483705,f9 +3483708,3 +3483709,e0 +348370b,8 +34b3000,ac +34b3001,86 +34b3004,ac +34b3005,85 +34b3007,4 +34b3008,ac +34b3009,85 +34b300b,8 +34b300d,a6 +34b300e,28 +34b300f,21 +34b3010,3 +34b3011,e0 +34b3013,8 +34b3014,ac +34b3015,85 +34b3017,c +34b3018,94 +34b3019,82 +34b301b,4 +34b301c,94 +34b301d,83 +34b301f,6 +34b3021,43 +34b3023,18 +34b3026,10 +34b3027,12 +34b3028,90 +34b3029,83 +34b302b,c +34b3031,43 +34b3033,18 +34b3036,10 +34b3037,12 +34b3038,3 +34b3039,e0 +34b303b,8 +34b3040,27 +34b3041,bd +34b3042,ff +34b3043,e8 +34b3044,af +34b3045,bf +34b3047,14 +34b3048,af +34b3049,b0 +34b304b,10 +34b304c,c +34b304d,10 +34b304e,14 +34b304f,6 +34b3051,80 +34b3052,80 +34b3053,25 +34b3054,96 +34b3055,3 +34b3057,8 +34b3059,62 +34b305b,18 +34b305e,10 +34b305f,12 +34b3060,8f +34b3061,bf +34b3063,14 +34b3064,8f +34b3065,b0 +34b3067,10 +34b3068,3 +34b3069,e0 +34b306b,8 +34b306c,27 +34b306d,bd +34b306f,18 +34b3070,27 +34b3071,bd +34b3072,ff +34b3073,90 +34b3074,af +34b3075,bf +34b3077,6c +34b3078,af +34b3079,b7 +34b307b,68 +34b307c,af +34b307d,b6 +34b307f,64 +34b3080,af +34b3081,b5 +34b3083,60 +34b3084,af +34b3085,b4 +34b3087,5c +34b3088,af +34b3089,b3 +34b308b,58 +34b308c,af +34b308d,b2 +34b308f,54 +34b3090,af +34b3091,b1 +34b3093,50 +34b3094,af +34b3095,b0 +34b3097,4c +34b3099,80 +34b309a,80 +34b309b,25 +34b309d,a0 +34b309e,a8 +34b309f,25 +34b30a1,c0 +34b30a2,b8 +34b30a3,25 +34b30a5,e0 +34b30a6,b0 +34b30a7,25 +34b30a8,90 +34b30a9,b2 +34b30ab,a +34b30ad,12 +34b30ae,95 +34b30af,40 +34b30b0,3c +34b30b1,2 +34b30b3,e0 +34b30b4,2 +34b30b5,42 +34b30b6,90 +34b30b7,24 +34b30b8,90 +34b30b9,b1 +34b30bb,b +34b30bc,2e +34b30bd,22 +34b30bf,2 +34b30c0,10 +34b30c1,40 +34b30c3,2 +34b30c4,2 +34b30c5,20 +34b30c6,98 +34b30c7,25 +34b30c8,24 +34b30c9,13 +34b30cb,2 +34b30cc,32 +34b30cd,73 +34b30cf,ff +34b30d1,13 +34b30d2,a4 +34b30d3,c0 +34b30d4,3c +34b30d5,2 +34b30d7,18 +34b30d8,2 +34b30d9,82 +34b30da,a0 +34b30db,24 +34b30dc,2 +34b30dd,92 +34b30de,a0 +34b30df,25 +34b30e0,3c +34b30e1,2 +34b30e2,fd +34b30e4,2 +34b30e5,82 +34b30e6,10 +34b30e7,25 +34b30e8,af +34b30e9,a2 +34b30eb,10 +34b30ec,c +34b30ed,10 +34b30ee,14 +34b30ef,6 +34b30f0,2 +34b30f1,a0 +34b30f2,20 +34b30f3,25 +34b30f5,57 +34b30f7,18 +34b30fa,10 +34b30fb,12 +34b30fc,8e +34b30fd,a3 +34b3101,62 +34b3102,18 +34b3103,21 +34b3104,af +34b3105,a3 +34b3107,14 +34b3108,3c +34b3109,2 +34b310a,f5 +34b310c,2 +34b310d,82 +34b310e,a0 +34b310f,25 +34b3110,af +34b3111,b4 +34b3113,18 +34b3114,3c +34b3115,2 +34b3116,7 +34b3118,af +34b3119,a2 +34b311b,1c +34b311c,3c +34b311d,2 +34b311e,e6 +34b3120,af +34b3121,a2 +34b3123,20 +34b3124,af +34b3125,a0 +34b3127,24 +34b3128,3c +34b3129,2 +34b312a,f3 +34b312c,af +34b312d,a2 +34b312f,28 +34b3130,96 +34b3131,a3 +34b3133,4 +34b3134,96 +34b3135,a7 +34b3137,6 +34b3139,f6 +34b313b,18 +34b313e,38 +34b313f,12 +34b3140,24 +34b3141,5 +34b3143,4 +34b3144,2 +34b3145,25 +34b3146,20 +34b3147,4 +34b3149,67 +34b314b,18 +34b314e,10 +34b314f,12 +34b3150,24 +34b3151,42 +34b3153,1 +34b3159,44 +34b315b,18 +34b315e,10 +34b315f,12 +34b3160,24 +34b3161,42 +34b3162,ff +34b3163,ff +34b3164,2 +34b3165,65 +34b3166,98 +34b3167,4 +34b3169,53 +34b316b,1a +34b316c,2 +34b316d,60 +34b316e,1 +34b316f,f4 +34b3172,10 +34b3173,12 +34b3174,24 +34b3175,42 +34b3176,ff +34b3177,ff +34b3179,2 +34b317a,13 +34b317c,3c +34b317d,5 +34b317f,ff +34b3180,34 +34b3181,a5 +34b3182,f0 +34b3185,45 +34b3186,10 +34b3187,24 +34b3189,64 +34b318b,18 +34b318e,40 +34b318f,12 +34b3190,29 +34b3191,5 +34b3193,41 +34b3194,14 +34b3195,a0 +34b3197,a +34b3198,24 +34b3199,6 +34b319a,8 +34b319d,8 +34b319e,2f +34b319f,c3 +34b31a0,30 +34b31a1,a5 +34b31a3,3f +34b31a5,a8 +34b31a6,28 +34b31a7,21 +34b31a9,5 +34b31aa,29 +34b31ab,83 +34b31ac,24 +34b31ad,a6 +34b31ae,7 +34b31af,ff +34b31b1,c5 +34b31b3,1a +34b31b5,a0 +34b31b6,1 +34b31b7,f4 +34b31ba,30 +34b31bb,12 +34b31bc,30 +34b31bd,c6 +34b31be,f +34b31bf,ff +34b31c1,46 +34b31c2,10 +34b31c3,25 +34b31c4,3c +34b31c5,5 +34b31c6,7 +34b31c9,45 +34b31ca,10 +34b31cb,25 +34b31cc,af +34b31cd,a2 +34b31cf,2c +34b31d0,3c +34b31d1,2 +34b31d2,e7 +34b31d4,af +34b31d5,a2 +34b31d7,30 +34b31d8,af +34b31d9,a0 +34b31db,34 +34b31dd,11 +34b31de,14 +34b31df,c0 +34b31e0,3c +34b31e1,5 +34b31e3,18 +34b31e5,45 +34b31e6,10 +34b31e7,24 +34b31e8,2e +34b31e9,31 +34b31eb,2 +34b31ec,16 +34b31ed,20 +34b31ef,2 +34b31f1,52 +34b31f2,10 +34b31f3,25 +34b31f4,24 +34b31f5,4 +34b31f7,10 +34b31f9,64 +34b31fb,18 +34b31fe,20 +34b31ff,12 +34b3200,24 +34b3201,84 +34b3203,3f +34b3205,4 +34b3206,97 +34b3207,c3 +34b3208,32 +34b3209,52 +34b320b,3f +34b320c,2 +34b320d,44 +34b320e,90 +34b320f,21 +34b3211,12 +34b3212,90 +34b3213,c0 +34b3214,3c +34b3215,4 +34b3217,3 +34b3218,34 +34b3219,84 +34b321a,fe +34b321c,2 +34b321d,44 +34b321e,90 +34b321f,24 +34b3220,2 +34b3221,42 +34b3222,90 +34b3223,25 +34b3224,3c +34b3225,2 +34b3226,f5 +34b3228,2 +34b3229,42 +34b322a,90 +34b322b,25 +34b322c,af +34b322d,b2 +34b322f,38 +34b3230,af +34b3231,a0 +34b3233,3c +34b3234,3c +34b3235,2 +34b3236,f2 +34b3238,af +34b3239,a2 +34b323b,40 +34b323c,24 +34b323d,62 +34b323e,3f +34b323f,ff +34b3241,2 +34b3242,13 +34b3243,80 +34b3244,3c +34b3245,3 +34b3247,ff +34b3248,34 +34b3249,63 +34b324a,f0 +34b324d,43 +34b324e,10 +34b324f,24 +34b3250,24 +34b3251,e7 +34b3252,ff +34b3253,ff +34b3255,7 +34b3256,38 +34b3257,80 +34b3258,30 +34b3259,e7 +34b325a,f +34b325b,fc +34b325d,47 +34b325e,10 +34b325f,25 +34b3260,af +34b3261,a2 +34b3263,44 +34b3264,27 +34b3265,a2 +34b3267,10 +34b3268,27 +34b3269,a6 +34b326b,48 +34b326c,8e +34b326d,3 +34b326f,8 +34b3270,24 +34b3271,64 +34b3273,8 +34b3274,ae +34b3275,4 +34b3277,8 +34b3278,8c +34b3279,45 +34b327b,4 +34b327c,8c +34b327d,44 +34b3280,ac +34b3281,65 +34b3283,4 +34b3284,24 +34b3285,42 +34b3287,8 +34b3288,14 +34b3289,46 +34b328a,ff +34b328b,f8 +34b328c,ac +34b328d,64 +34b3290,8f +34b3291,bf +34b3293,6c +34b3294,8f +34b3295,b7 +34b3297,68 +34b3298,8f +34b3299,b6 +34b329b,64 +34b329c,8f +34b329d,b5 +34b329f,60 +34b32a0,8f +34b32a1,b4 +34b32a3,5c +34b32a4,8f +34b32a5,b3 +34b32a7,58 +34b32a8,8f +34b32a9,b2 +34b32ab,54 +34b32ac,8f +34b32ad,b1 +34b32af,50 +34b32b0,8f +34b32b1,b0 +34b32b3,4c +34b32b4,3 +34b32b5,e0 +34b32b7,8 +34b32b8,27 +34b32b9,bd +34b32bb,70 +34b32bc,27 +34b32bd,bd +34b32be,ff +34b32bf,e8 +34b32c0,8f +34b32c1,a8 +34b32c3,28 +34b32c4,8f +34b32c5,a2 +34b32c7,2c +34b32c8,8f +34b32c9,aa +34b32cb,30 +34b32cc,94 +34b32cd,a9 +34b32cf,4 +34b32d1,9 +34b32d2,4a +34b32d3,80 +34b32d4,1 +34b32d5,22 +34b32d7,1a +34b32d9,40 +34b32da,1 +34b32db,f4 +34b32de,48 +34b32df,12 +34b32e0,94 +34b32e1,a3 +34b32e3,6 +34b32e5,47 +34b32e6,10 +34b32e7,21 +34b32e9,2 +34b32ea,13 +34b32eb,80 +34b32ec,3c +34b32ed,b +34b32ef,ff +34b32f0,35 +34b32f1,6b +34b32f2,f0 +34b32f5,4b +34b32f6,10 +34b32f7,24 +34b32f8,1 +34b32f9,48 +34b32fa,28 +34b32fb,21 +34b32fd,5 +34b32fe,28 +34b32ff,80 +34b3300,30 +34b3301,a5 +34b3302,f +34b3303,ff +34b3305,45 +34b3306,10 +34b3307,25 +34b3308,3c +34b3309,5 +34b330a,e4 +34b330d,45 +34b330e,10 +34b330f,25 +34b3310,af +34b3311,a2 +34b3315,7 +34b3316,3b +34b3317,80 +34b3319,eb +34b331a,38 +34b331b,24 +34b331d,8 +34b331e,40 +34b331f,80 +34b3320,31 +34b3321,8 +34b3322,f +34b3323,ff +34b3325,e8 +34b3326,38 +34b3327,25 +34b3328,af +34b3329,a7 +34b332b,4 +34b332c,3c +34b332d,2 +34b332e,e1 +34b3330,af +34b3331,a2 +34b3333,8 +34b3335,66 +34b3337,18 +34b333a,30 +34b333b,12 +34b333d,6 +34b333e,31 +34b333f,40 +34b3340,30 +34b3341,c6 +34b3342,ff +34b3343,ff +34b3344,af +34b3345,a6 +34b3347,c +34b3348,3c +34b3349,2 +34b334a,f1 +34b334c,af +34b334d,a2 +34b334f,10 +34b3351,3 +34b3352,1a +34b3353,80 +34b3355,6a +34b3357,1a +34b3358,1 +34b3359,40 +34b335a,1 +34b335b,f4 +34b335e,18 +34b335f,12 +34b3360,30 +34b3361,63 +34b3362,ff +34b3363,ff +34b3365,9 +34b3366,4c +34b3369,69 +34b336a,18 +34b336b,25 +34b336c,af +34b336d,a3 +34b336f,14 +34b3370,3 +34b3371,a0 +34b3372,10 +34b3373,25 +34b3374,27 +34b3375,a8 +34b3377,18 +34b3378,8c +34b3379,83 +34b337b,8 +34b337c,24 +34b337d,65 +34b337f,8 +34b3380,ac +34b3381,85 +34b3383,8 +34b3384,8c +34b3385,47 +34b3387,4 +34b3388,8c +34b3389,46 +34b338c,ac +34b338d,67 +34b338f,4 +34b3390,24 +34b3391,42 +34b3393,8 +34b3394,14 +34b3395,48 +34b3396,ff +34b3397,f8 +34b3398,ac +34b3399,66 +34b339c,3 +34b339d,e0 +34b339f,8 +34b33a0,27 +34b33a1,bd +34b33a3,18 +34b33a4,8c +34b33a5,82 +34b33a7,8 +34b33a8,24 +34b33a9,43 +34b33ab,8 +34b33ac,ac +34b33ad,83 +34b33af,8 +34b33b0,3c +34b33b1,3 +34b33b2,e7 +34b33b4,ac +34b33b5,43 +34b33b8,ac +34b33b9,40 +34b33bb,4 +34b33bc,8c +34b33bd,82 +34b33bf,8 +34b33c0,24 +34b33c1,43 +34b33c3,8 +34b33c4,ac +34b33c5,83 +34b33c7,8 +34b33c8,3c +34b33c9,3 +34b33ca,d9 +34b33cc,ac +34b33cd,43 +34b33d0,ac +34b33d1,40 +34b33d3,4 +34b33d4,8c +34b33d5,82 +34b33d7,8 +34b33d8,24 +34b33d9,43 +34b33db,8 +34b33dc,ac +34b33dd,83 +34b33df,8 +34b33e0,3c +34b33e1,3 +34b33e2,ed +34b33e4,ac +34b33e5,43 +34b33e8,3c +34b33e9,5 +34b33eb,50 +34b33ec,24 +34b33ed,a3 +34b33ee,3 +34b33ef,c0 +34b33f0,ac +34b33f1,43 +34b33f3,4 +34b33f4,8c +34b33f5,83 +34b33f7,8 +34b33f8,24 +34b33f9,62 +34b33fb,8 +34b33fc,ac +34b33fd,82 +34b33ff,8 +34b3400,3c +34b3401,2 +34b3402,e3 +34b3404,24 +34b3405,46 +34b3406,1a +34b3407,1 +34b3408,ac +34b3409,66 +34b340c,24 +34b340d,6 +34b340f,30 +34b3410,ac +34b3411,66 +34b3413,4 +34b3414,8c +34b3415,83 +34b3417,8 +34b3418,24 +34b3419,66 +34b341b,8 +34b341c,ac +34b341d,86 +34b341f,8 +34b3420,24 +34b3421,46 +34b3422,18 +34b3423,1 +34b3424,ac +34b3425,66 +34b3428,24 +34b3429,6 +34b342b,c0 +34b342c,ac +34b342d,66 +34b342f,4 +34b3430,8c +34b3431,86 +34b3433,8 +34b3434,24 +34b3435,c3 +34b3437,8 +34b3438,ac +34b3439,83 +34b343b,8 +34b343c,3c +34b343d,3 +34b343e,e2 +34b3440,24 +34b3441,67 +34b3442,1e +34b3443,1 +34b3444,ac +34b3445,c7 +34b3448,ac +34b3449,c0 +34b344b,4 +34b344c,8c +34b344d,86 +34b344f,8 +34b3450,24 +34b3451,c7 +34b3453,8 +34b3454,ac +34b3455,87 +34b3457,8 +34b3458,24 +34b3459,67 +34b345a,1d +34b345c,ac +34b345d,c7 +34b3460,24 +34b3461,7 +34b3463,4 +34b3464,ac +34b3465,c7 +34b3467,4 +34b3468,8c +34b3469,86 +34b346b,8 +34b346c,24 +34b346d,c7 +34b346f,8 +34b3470,ac +34b3471,87 +34b3473,8 +34b3474,24 +34b3475,47 +34b3476,17 +34b3478,ac +34b3479,c7 +34b347c,ac +34b347d,c0 +34b347f,4 +34b3480,8c +34b3481,86 +34b3483,8 +34b3484,24 +34b3485,c7 +34b3487,8 +34b3488,ac +34b3489,87 +34b348b,8 +34b348c,24 +34b348d,47 +34b348e,14 +34b348f,2 +34b3490,ac +34b3491,c7 +34b3494,24 +34b3495,7 +34b3496,c +34b3498,ac +34b3499,c7 +34b349b,4 +34b349c,8c +34b349d,86 +34b349f,8 +34b34a0,24 +34b34a1,c7 +34b34a3,8 +34b34a4,ac +34b34a5,87 +34b34a7,8 +34b34a8,24 +34b34a9,47 +34b34aa,d +34b34ab,1 +34b34ac,ac +34b34ad,c7 +34b34b0,ac +34b34b1,c0 +34b34b3,4 +34b34b4,8c +34b34b5,86 +34b34b7,8 +34b34b8,24 +34b34b9,c7 +34b34bb,8 +34b34bc,ac +34b34bd,87 +34b34bf,8 +34b34c0,24 +34b34c1,47 +34b34c2,c +34b34c4,ac +34b34c5,c7 +34b34c8,ac +34b34c9,c0 +34b34cb,4 +34b34cc,8c +34b34cd,86 +34b34cf,8 +34b34d0,24 +34b34d1,c7 +34b34d3,8 +34b34d4,ac +34b34d5,87 +34b34d7,8 +34b34d8,24 +34b34d9,47 +34b34da,f +34b34dc,ac +34b34dd,c7 +34b34e0,ac +34b34e1,c0 +34b34e3,4 +34b34e4,8c +34b34e5,86 +34b34e7,8 +34b34e8,24 +34b34e9,c7 +34b34eb,8 +34b34ec,ac +34b34ed,87 +34b34ef,8 +34b34f0,24 +34b34f1,47 +34b34f2,10 +34b34f3,1 +34b34f4,ac +34b34f5,c7 +34b34f8,ac +34b34f9,c0 +34b34fb,4 +34b34fc,8c +34b34fd,86 +34b34ff,8 +34b3500,24 +34b3501,c7 +34b3503,8 +34b3504,ac +34b3505,87 +34b3507,8 +34b3508,24 +34b3509,47 +34b350a,8 +34b350c,ac +34b350d,c7 +34b3510,ac +34b3511,c0 +34b3513,4 +34b3514,8c +34b3515,86 +34b3517,8 +34b3518,24 +34b3519,c7 +34b351b,8 +34b351c,ac +34b351d,87 +34b351f,8 +34b3520,24 +34b3521,47 +34b3522,a +34b3523,1 +34b3524,ac +34b3525,c7 +34b3528,ac +34b3529,c0 +34b352b,4 +34b352c,8c +34b352d,86 +34b352f,8 +34b3530,24 +34b3531,c7 +34b3533,8 +34b3534,ac +34b3535,87 +34b3537,8 +34b3538,24 +34b3539,63 +34b353b,1c +34b353c,ac +34b353d,c3 +34b3540,24 +34b3541,a5 +34b3542,42 +34b3543,40 +34b3544,ac +34b3545,c5 +34b3547,4 +34b3548,8c +34b3549,83 +34b354b,8 +34b354c,24 +34b354d,65 +34b354f,8 +34b3550,ac +34b3551,85 +34b3553,8 +34b3554,24 +34b3555,42 +34b3556,12 +34b3557,1 +34b3558,ac +34b3559,62 +34b355c,24 +34b355d,2 +34b355e,20 +34b3560,ac +34b3561,62 +34b3563,4 +34b3564,8c +34b3565,82 +34b3567,8 +34b3568,24 +34b3569,43 +34b356b,8 +34b356c,ac +34b356d,83 +34b356f,8 +34b3570,3c +34b3571,3 +34b3572,df +34b3574,ac +34b3575,43 +34b3578,3 +34b3579,e0 +34b357b,8 +34b357c,ac +34b357d,40 +34b357f,4 +34b3580,27 +34b3581,bd +34b3582,ff +34b3583,c8 +34b3584,af +34b3585,bf +34b3587,34 +34b3588,af +34b3589,b1 +34b358b,30 +34b358c,af +34b358d,b0 +34b358f,2c +34b3590,af +34b3591,a0 +34b3593,10 +34b3594,3c +34b3595,2 +34b3596,1 +34b3597,a0 +34b3598,24 +34b3599,42 +34b359a,20 +34b359c,af +34b359d,a2 +34b359f,14 +34b35a0,3c +34b35a1,10 +34b35a3,3 +34b35a4,36 +34b35a5,2 +34b35a6,95 +34b35a7,c0 +34b35a8,af +34b35a9,a2 +34b35ab,18 +34b35ac,c +34b35ad,10 +34b35ae,15 +34b35af,c5 +34b35b0,27 +34b35b1,a4 +34b35b3,10 +34b35b4,af +34b35b5,a0 +34b35b7,1c +34b35b8,3c +34b35b9,2 +34b35bb,84 +34b35bc,24 +34b35bd,42 +34b35be,60 +34b35c0,af +34b35c1,a2 +34b35c3,20 +34b35c4,34 +34b35c5,2 +34b35c6,b4 +34b35c8,af +34b35c9,a2 +34b35cb,24 +34b35cc,c +34b35cd,10 +34b35ce,15 +34b35cf,c5 +34b35d0,27 +34b35d1,a4 +34b35d3,1c +34b35d4,8f +34b35d5,a2 +34b35d7,10 +34b35d8,26 +34b35d9,10 +34b35da,a3 +34b35dd,50 +34b35de,80 +34b35df,21 +34b35e0,3c +34b35e1,3 +34b35e2,80 +34b35e3,40 +34b35e4,ac +34b35e5,70 +34b35e6,62 +34b35e7,2c +34b35e8,24 +34b35e9,42 +34b35ea,29 +34b35eb,80 +34b35ec,3c +34b35ed,3 +34b35ee,80 +34b35ef,40 +34b35f0,ac +34b35f1,62 +34b35f2,62 +34b35f3,1c +34b35f4,8f +34b35f5,a2 +34b35f7,1c +34b35f8,24 +34b35f9,42 +34b35fa,7e +34b35fc,3c +34b35fd,3 +34b35fe,80 +34b35ff,40 +34b3600,ac +34b3601,62 +34b3602,62 +34b3603,c +34b3604,3c +34b3605,11 +34b3606,80 +34b3607,40 +34b3608,c +34b3609,10 +34b360a,14 +34b360b,10 +34b360c,26 +34b360d,24 +34b360e,61 +34b360f,fc +34b3611,40 +34b3612,80 +34b3613,25 +34b3614,c +34b3615,10 +34b3616,15 +34b3617,b8 +34b3619,40 +34b361a,20 +34b361b,25 +34b361d,10 +34b361e,4f +34b361f,c2 +34b3620,1 +34b3621,30 +34b3622,48 +34b3623,21 +34b3624,2a +34b3625,10 +34b3627,2 +34b3628,16 +34b362b,18 +34b362c,ae +34b362d,22 +34b362e,61 +34b362f,fc +34b3631,9 +34b3632,48 +34b3633,43 +34b3634,3c +34b3635,3 +34b3636,80 +34b3637,40 +34b3638,24 +34b3639,63 +34b363a,63 +34b363b,2c +34b363e,20 +34b363f,25 +34b3642,30 +34b3643,25 +34b3644,2 +34b3645,20 +34b3646,40 +34b3647,25 +34b3648,24 +34b3649,7 +34b364a,ff +34b364b,f0 +34b364c,8d +34b364d,5 +34b364e,61 +34b364f,fc +34b3651,a4 +34b3652,28 +34b3653,21 +34b3654,90 +34b3655,62 +34b3659,2 +34b365a,11 +34b365b,2 +34b365d,47 +34b365e,10 +34b365f,25 +34b3660,a0 +34b3661,a2 +34b3664,8d +34b3665,2 +34b3666,61 +34b3667,fc +34b3669,44 +34b366a,10 +34b366b,21 +34b366c,90 +34b366d,65 +34b3671,a7 +34b3672,28 +34b3673,25 +34b3674,a0 +34b3675,45 +34b3677,1 +34b3678,24 +34b3679,c6 +34b367b,1 +34b367c,24 +34b367d,63 +34b367f,1 +34b3681,c9 +34b3682,10 +34b3683,2a +34b3684,14 +34b3685,40 +34b3686,ff +34b3687,f1 +34b3688,24 +34b3689,84 +34b368b,2 +34b368c,c +34b368d,10 +34b368e,15 +34b368f,b8 +34b3690,24 +34b3691,4 +34b3692,1 +34b3694,3c +34b3695,4 +34b3696,80 +34b3697,40 +34b3698,24 +34b3699,3 +34b369a,1 +34b369c,ac +34b369d,83 +34b369e,63 +34b369f,1c +34b36a0,24 +34b36a1,84 +34b36a2,63 +34b36a3,1c +34b36a4,ac +34b36a5,82 +34b36a7,4 +34b36a8,ac +34b36a9,82 +34b36ab,8 +34b36ac,24 +34b36ad,42 +34b36ae,1 +34b36b0,c +34b36b1,10 +34b36b2,14 +34b36b3,e9 +34b36b4,ac +34b36b5,82 +34b36b7,c +34b36b8,8f +34b36b9,bf +34b36bb,34 +34b36bc,8f +34b36bd,b1 +34b36bf,30 +34b36c0,8f +34b36c1,b0 +34b36c3,2c +34b36c4,3 +34b36c5,e0 +34b36c7,8 +34b36c8,27 +34b36c9,bd +34b36cb,38 +34b36cc,3c +34b36cd,3 +34b36ce,80 +34b36cf,40 +34b36d0,3c +34b36d1,2 +34b36d2,80 +34b36d3,50 +34b36d4,24 +34b36d5,42 +34b36d8,3 +34b36d9,e0 +34b36db,8 +34b36dc,ac +34b36dd,62 +34b36de,63 +34b36df,10 +34b36e1,4 +34b36e2,17 +34b36e3,c3 +34b36e5,2 +34b36e6,1f +34b36e7,2 +34b36e9,83 +34b36ea,10 +34b36eb,21 +34b36ec,30 +34b36ed,42 +34b36ef,f +34b36f1,43 +34b36f2,10 +34b36f3,23 +34b36f4,10 +34b36f5,40 +34b36f7,3 +34b36f8,3c +34b36f9,3 +34b36fa,80 +34b36fb,40 +34b36fd,82 +34b36fe,20 +34b36ff,23 +34b3700,24 +34b3701,84 +34b3703,10 +34b3704,8c +34b3705,62 +34b3706,63 +34b3707,10 +34b3709,44 +34b370a,20 +34b370b,21 +34b370c,3 +34b370d,e0 +34b370f,8 +34b3710,ac +34b3711,64 +34b3712,63 +34b3713,10 +34b3714,27 +34b3715,bd +34b3716,ff +34b3717,e8 +34b3718,af +34b3719,bf +34b371b,14 +34b371c,af +34b371d,b0 +34b371f,10 +34b3721,80 +34b3722,80 +34b3723,25 +34b3724,c +34b3725,10 +34b3726,15 +34b3727,b8 +34b3728,8c +34b3729,84 +34b372b,8 +34b372c,ae +34b372d,2 +34b3730,8e +34b3731,6 +34b3733,8 +34b3735,40 +34b3736,20 +34b3737,25 +34b3738,3c +34b3739,2 +34b373a,80 +34b373c,24 +34b373d,42 +34b373e,d +34b373f,f0 +34b3741,40 +34b3742,f8 +34b3743,9 +34b3744,8e +34b3745,5 +34b3747,4 +34b3748,8f +34b3749,bf +34b374b,14 +34b374c,8f +34b374d,b0 +34b374f,10 +34b3750,3 +34b3751,e0 +34b3753,8 +34b3754,27 +34b3755,bd +34b3757,18 +34b3758,27 +34b3759,bd +34b375a,ff +34b375b,e8 +34b375c,af +34b375d,bf +34b375f,14 +34b3760,c +34b3761,10 +34b3762,15 +34b3763,b3 +34b3768,c +34b3769,10 +34b376a,15 +34b376b,60 +34b3770,c +34b3771,10 +34b3772,17 +34b3773,f5 +34b3778,8f +34b3779,bf +34b377b,14 +34b377c,3 +34b377d,e0 +34b377f,8 +34b3780,27 +34b3781,bd +34b3783,18 +34b3784,27 +34b3785,bd +34b3786,ff +34b3787,e0 +34b3788,af +34b3789,bf +34b378b,1c +34b378c,af +34b378d,b2 +34b378f,18 +34b3790,af +34b3791,b1 +34b3793,14 +34b3794,af +34b3795,b0 +34b3797,10 +34b3799,80 +34b379a,80 +34b379b,25 +34b379d,a0 +34b379e,88 +34b379f,25 +34b37a0,3c +34b37a1,2 +34b37a2,80 +34b37a3,1c +34b37a4,34 +34b37a5,42 +34b37a6,84 +34b37a7,a0 +34b37a8,3c +34b37a9,3 +34b37ab,1 +34b37ad,43 +34b37ae,10 +34b37af,21 +34b37b0,94 +34b37b1,43 +34b37b2,9 +34b37b3,34 +34b37b4,24 +34b37b5,2 +34b37b7,6 +34b37b8,14 +34b37b9,62 +34b37bb,16 +34b37bd,c0 +34b37be,90 +34b37bf,25 +34b37c0,3c +34b37c1,2 +34b37c2,80 +34b37c3,1c +34b37c4,34 +34b37c5,42 +34b37c6,84 +34b37c7,a0 +34b37c8,3c +34b37c9,3 +34b37cb,1 +34b37cd,43 +34b37ce,10 +34b37cf,21 +34b37d0,94 +34b37d1,42 +34b37d2,9 +34b37d3,48 +34b37d4,14 +34b37d5,40 +34b37d7,10 +34b37d8,2 +34b37d9,40 +34b37da,30 +34b37db,25 +34b37dc,3c +34b37dd,2 +34b37de,80 +34b37df,1c +34b37e0,34 +34b37e1,42 +34b37e2,84 +34b37e3,a0 +34b37e5,43 +34b37e6,10 +34b37e7,21 +34b37e8,94 +34b37e9,42 +34b37ea,9 +34b37eb,44 +34b37ec,14 +34b37ed,40 +34b37ef,b +34b37f0,2 +34b37f1,20 +34b37f2,28 +34b37f3,25 +34b37f4,3c +34b37f5,2 +34b37f6,80 +34b37f7,1c +34b37f8,34 +34b37f9,42 +34b37fa,84 +34b37fb,a0 +34b37fc,84 +34b37fd,42 +34b37ff,14 +34b3800,4 +34b3801,41 +34b3803,6 +34b3808,8c +34b3809,82 +34b380b,4 +34b380c,c +34b380d,10 +34b380e,16 +34b380f,f +34b3810,ac +34b3811,82 +34b3813,8 +34b3814,2 +34b3815,40 +34b3816,30 +34b3817,25 +34b3818,2 +34b3819,20 +34b381a,28 +34b381b,25 +34b381c,c +34b381d,10 +34b381e,14 +34b3820,2 +34b3822,20 +34b3823,25 +34b3824,8f +34b3825,bf +34b3827,1c +34b3828,8f +34b3829,b2 +34b382b,18 +34b382c,8f +34b382d,b1 +34b382f,14 +34b3830,8f +34b3831,b0 +34b3833,10 +34b3834,3 +34b3835,e0 +34b3837,8 +34b3838,27 +34b3839,bd +34b383b,20 +34b383c,27 +34b383d,bd +34b383e,ff +34b383f,98 +34b3840,af +34b3841,bf +34b3843,64 +34b3844,af +34b3845,be +34b3847,60 +34b3848,af +34b3849,b7 +34b384b,5c +34b384c,af +34b384d,b6 +34b384f,58 +34b3850,af +34b3851,b5 +34b3853,54 +34b3854,af +34b3855,b4 +34b3857,50 +34b3858,af +34b3859,b3 +34b385b,4c +34b385c,af +34b385d,b2 +34b385f,48 +34b3860,af +34b3861,b1 +34b3863,44 +34b3864,af +34b3865,b0 +34b3867,40 +34b3869,80 +34b386a,80 +34b386b,25 +34b386c,3c +34b386d,2 +34b386e,80 +34b386f,40 +34b3870,8c +34b3871,43 +34b3872,63 +34b3873,20 +34b3874,8c +34b3875,82 +34b3877,8 +34b3878,24 +34b3879,44 +34b387b,8 +34b387c,ae +34b387d,4 +34b387f,8 +34b3880,3c +34b3881,4 +34b3882,de +34b3884,ac +34b3885,44 +34b3888,ac +34b3889,43 +34b388b,4 +34b388c,3c +34b388d,2 +34b388e,80 +34b388f,40 +34b3890,94 +34b3891,43 +34b3892,62 +34b3895,3 +34b3896,10 +34b3897,c0 +34b3899,43 +34b389a,10 +34b389b,23 +34b389d,2 +34b389e,10 +34b389f,40 +34b38a0,24 +34b38a1,42 +34b38a3,60 +34b38a4,24 +34b38a5,13 +34b38a6,1 +34b38a7,40 +34b38a8,2 +34b38a9,62 +34b38aa,98 +34b38ab,23 +34b38ad,13 +34b38ae,98 +34b38af,43 +34b38b0,26 +34b38b1,63 +34b38b3,2 +34b38b4,af +34b38b5,a3 +34b38b7,38 +34b38b8,8e +34b38b9,3 +34b38bb,8 +34b38bc,24 +34b38bd,64 +34b38bf,8 +34b38c0,ae +34b38c1,4 +34b38c3,8 +34b38c4,3c +34b38c5,4 +34b38c6,fc +34b38c7,ff +34b38c8,34 +34b38c9,84 +34b38ca,ff +34b38cb,ff +34b38cc,ac +34b38cd,64 +34b38d0,3c +34b38d1,4 +34b38d2,ff +34b38d3,fd +34b38d4,34 +34b38d5,84 +34b38d6,f6 +34b38d7,fb +34b38d8,ac +34b38d9,64 +34b38db,4 +34b38dc,8e +34b38dd,3 +34b38df,8 +34b38e0,24 +34b38e1,64 +34b38e3,8 +34b38e4,ae +34b38e5,4 +34b38e7,8 +34b38e8,3c +34b38e9,4 +34b38ea,fa +34b38ec,ac +34b38ed,64 +34b38f0,24 +34b38f1,4 +34b38f3,d0 +34b38f4,ac +34b38f5,64 +34b38f7,4 +34b38f9,53 +34b38fa,10 +34b38fb,21 +34b38fd,2 +34b38fe,13 +34b38ff,80 +34b3900,3c +34b3901,3 +34b3903,ff +34b3904,34 +34b3905,63 +34b3906,f0 +34b3909,43 +34b390a,10 +34b390b,24 +34b390c,3c +34b390d,4 +34b390e,e4 +34b3910,24 +34b3911,84 +34b3912,3 +34b3913,b8 +34b3915,44 +34b3916,10 +34b3917,25 +34b3918,af +34b3919,a2 +34b391b,20 +34b391d,13 +34b391e,13 +34b391f,80 +34b3921,43 +34b3922,10 +34b3923,24 +34b3924,34 +34b3925,42 +34b3927,8 +34b3928,af +34b3929,a2 +34b392b,24 +34b392c,3c +34b392d,2 +34b392e,e1 +34b3930,af +34b3931,a2 +34b3933,28 +34b3934,af +34b3935,a0 +34b3937,2c +34b3938,3c +34b3939,2 +34b393a,f1 +34b393c,af +34b393d,a2 +34b393f,30 +34b3940,3c +34b3941,2 +34b3942,4 +34b3944,24 +34b3945,42 +34b3946,4 +34b3948,af +34b3949,a2 +34b394b,34 +34b394c,27 +34b394d,a2 +34b394f,20 +34b3950,27 +34b3951,a6 +34b3953,38 +34b3954,8e +34b3955,3 +34b3957,8 +34b3958,24 +34b3959,64 +34b395b,8 +34b395c,ae +34b395d,4 +34b395f,8 +34b3960,8c +34b3961,45 +34b3963,4 +34b3964,8c +34b3965,44 +34b3968,ac +34b3969,65 +34b396b,4 +34b396c,24 +34b396d,42 +34b396f,8 +34b3970,14 +34b3971,c2 +34b3972,ff +34b3973,f8 +34b3974,ac +34b3975,64 +34b3978,8e +34b3979,2 +34b397b,8 +34b397c,24 +34b397d,43 +34b397f,8 +34b3980,ae +34b3981,3 +34b3983,8 +34b3984,3c +34b3985,3 +34b3986,e7 +34b3988,ac +34b3989,43 +34b398c,ac +34b398d,40 +34b398f,4 +34b3990,8e +34b3991,2 +34b3993,8 +34b3994,24 +34b3995,43 +34b3997,8 +34b3998,ae +34b3999,3 +34b399b,8 +34b399c,3c +34b399d,3 +34b399e,fc +34b399f,11 +34b39a0,34 +34b39a1,63 +34b39a2,96 +34b39a3,23 +34b39a4,ac +34b39a5,43 +34b39a8,3c +34b39a9,3 +34b39aa,ff +34b39ab,2f +34b39ac,34 +34b39ad,63 +34b39ae,ff +34b39af,ff +34b39b0,ac +34b39b1,43 +34b39b3,4 +34b39b4,3c +34b39b5,5 +34b39b6,80 +34b39b7,40 +34b39b8,24 +34b39b9,a5 +34b39ba,62 +34b39bb,1c +34b39bc,94 +34b39bd,a7 +34b39bf,8 +34b39c2,30 +34b39c3,25 +34b39c4,c +34b39c5,10 +34b39c6,14 +34b39c7,1c +34b39c8,2 +34b39ca,20 +34b39cb,25 +34b39cc,3c +34b39cd,2 +34b39ce,80 +34b39cf,40 +34b39d0,8c +34b39d1,42 +34b39d2,63 +34b39d3,c +34b39d4,18 +34b39d5,40 +34b39d7,35 +34b39d8,3c +34b39d9,2 +34b39da,80 +34b39db,40 +34b39dc,3c +34b39dd,12 +34b39de,80 +34b39df,40 +34b39e0,26 +34b39e1,52 +34b39e2,62 +34b39e3,70 +34b39e6,88 +34b39e7,25 +34b39e8,3c +34b39e9,14 +34b39ea,80 +34b39eb,40 +34b39ec,26 +34b39ed,94 +34b39ee,62 +34b39ef,4c +34b39f0,3c +34b39f1,17 +34b39f2,80 +34b39f3,40 +34b39f4,26 +34b39f5,f7 +34b39f6,62 +34b39f7,5c +34b39f8,3c +34b39f9,1e +34b39fa,fa +34b39fc,24 +34b39fd,16 +34b39ff,10 +34b3a00,24 +34b3a01,42 +34b3a02,62 +34b3a03,1c +34b3a04,af +34b3a05,a2 +34b3a07,3c +34b3a08,3c +34b3a09,15 +34b3a0a,80 +34b3a0b,40 +34b3a0c,92 +34b3a0d,42 +34b3a11,54 +34b3a12,10 +34b3a13,21 +34b3a14,80 +34b3a15,46 +34b3a18,28 +34b3a19,c2 +34b3a1b,3 +34b3a1c,54 +34b3a1d,40 +34b3a1f,1f +34b3a20,26 +34b3a21,31 +34b3a23,1 +34b3a24,24 +34b3a25,c6 +34b3a26,ff +34b3a27,fd +34b3a29,6 +34b3a2a,18 +34b3a2b,40 +34b3a2d,66 +34b3a2e,18 +34b3a2f,21 +34b3a31,77 +34b3a32,18 +34b3a33,21 +34b3a34,90 +34b3a35,62 +34b3a39,2 +34b3a3a,16 +34b3a3c,90 +34b3a3d,64 +34b3a3f,2 +34b3a41,4 +34b3a42,22 +34b3a45,44 +34b3a46,10 +34b3a47,25 +34b3a48,90 +34b3a49,63 +34b3a4b,1 +34b3a4d,3 +34b3a4e,1c +34b3a51,43 +34b3a52,10 +34b3a53,25 +34b3a54,34 +34b3a55,42 +34b3a57,ff +34b3a58,8e +34b3a59,3 +34b3a5b,8 +34b3a5c,24 +34b3a5d,64 +34b3a5f,8 +34b3a60,ae +34b3a61,4 +34b3a63,8 +34b3a64,ac +34b3a65,7e +34b3a68,ac +34b3a69,62 +34b3a6b,4 +34b3a6c,af +34b3a6d,b6 +34b3a6f,18 +34b3a70,af +34b3a71,b6 +34b3a73,14 +34b3a75,11 +34b3a76,10 +34b3a77,c0 +34b3a79,51 +34b3a7a,10 +34b3a7b,21 +34b3a7d,2 +34b3a7e,10 +34b3a7f,40 +34b3a80,24 +34b3a81,42 +34b3a83,4 +34b3a84,af +34b3a85,a2 +34b3a87,10 +34b3a88,8f +34b3a89,a7 +34b3a8b,38 +34b3a8c,8f +34b3a8d,a5 +34b3a8f,3c +34b3a90,c +34b3a91,10 +34b3a92,14 +34b3a93,af +34b3a94,2 +34b3a96,20 +34b3a97,25 +34b3a98,26 +34b3a99,31 +34b3a9b,1 +34b3a9c,8e +34b3a9d,a2 +34b3a9e,63 +34b3a9f,c +34b3aa0,2 +34b3aa1,22 +34b3aa2,10 +34b3aa3,2a +34b3aa4,14 +34b3aa5,40 +34b3aa6,ff +34b3aa7,d9 +34b3aa8,26 +34b3aa9,52 +34b3aab,c +34b3aac,8e +34b3aad,2 +34b3aaf,8 +34b3ab0,24 +34b3ab1,43 +34b3ab3,8 +34b3ab4,ae +34b3ab5,3 +34b3ab7,8 +34b3ab8,3c +34b3ab9,3 +34b3aba,fa +34b3abc,ac +34b3abd,43 +34b3ac0,24 +34b3ac1,3 +34b3ac2,ff +34b3ac3,ff +34b3ac4,ac +34b3ac5,43 +34b3ac7,4 +34b3ac8,3c +34b3ac9,5 +34b3aca,80 +34b3acb,40 +34b3acc,24 +34b3acd,a5 +34b3ace,62 +34b3acf,2c +34b3ad0,94 +34b3ad1,a7 +34b3ad3,8 +34b3ad6,30 +34b3ad7,25 +34b3ad8,c +34b3ad9,10 +34b3ada,14 +34b3adb,1c +34b3adc,2 +34b3ade,20 +34b3adf,25 +34b3ae0,3c +34b3ae1,2 +34b3ae2,80 +34b3ae3,40 +34b3ae4,8c +34b3ae5,42 +34b3ae6,63 +34b3ae7,c +34b3ae8,58 +34b3ae9,40 +34b3aeb,2f +34b3aec,26 +34b3aed,73 +34b3aef,14 +34b3af0,3c +34b3af1,11 +34b3af2,80 +34b3af3,40 +34b3af4,26 +34b3af5,31 +34b3af6,62 +34b3af7,70 +34b3af8,24 +34b3af9,14 +34b3afb,4 +34b3afe,90 +34b3aff,25 +34b3b00,3c +34b3b01,15 +34b3b02,80 +34b3b03,40 +34b3b04,26 +34b3b05,b5 +34b3b06,62 +34b3b07,4c +34b3b08,24 +34b3b09,17 +34b3b0b,10 +34b3b0c,3c +34b3b0d,1e +34b3b0e,80 +34b3b0f,40 +34b3b10,27 +34b3b11,de +34b3b12,62 +34b3b13,2c +34b3b14,3c +34b3b15,16 +34b3b16,80 +34b3b17,40 +34b3b18,92 +34b3b19,22 +34b3b1d,55 +34b3b1e,10 +34b3b1f,21 +34b3b20,80 +34b3b21,46 +34b3b24,2c +34b3b25,c2 +34b3b27,3 +34b3b28,50 +34b3b29,40 +34b3b2b,9 +34b3b2c,26 +34b3b2d,52 +34b3b2f,1 +34b3b30,af +34b3b31,b7 +34b3b33,18 +34b3b34,af +34b3b35,b7 +34b3b37,14 +34b3b38,af +34b3b39,b4 +34b3b3b,10 +34b3b3c,8f +34b3b3d,a7 +34b3b3f,38 +34b3b40,3 +34b3b41,c0 +34b3b42,28 +34b3b43,25 +34b3b44,c +34b3b45,10 +34b3b46,14 +34b3b47,af +34b3b48,2 +34b3b4a,20 +34b3b4b,25 +34b3b4c,26 +34b3b4d,52 +34b3b4f,1 +34b3b50,8e +34b3b51,c2 +34b3b52,63 +34b3b53,c +34b3b54,26 +34b3b55,31 +34b3b57,c +34b3b58,2 +34b3b59,42 +34b3b5a,18 +34b3b5b,2a +34b3b5c,14 +34b3b5d,60 +34b3b5e,ff +34b3b5f,ee +34b3b60,26 +34b3b61,94 +34b3b63,12 +34b3b64,18 +34b3b65,40 +34b3b67,10 +34b3b68,26 +34b3b69,73 +34b3b6b,14 +34b3b6c,3c +34b3b6d,11 +34b3b6e,80 +34b3b6f,40 +34b3b70,26 +34b3b71,31 +34b3b72,62 +34b3b73,72 +34b3b74,24 +34b3b75,14 +34b3b77,5 +34b3b7a,90 +34b3b7b,25 +34b3b7c,3c +34b3b7d,15 +34b3b7e,80 +34b3b7f,40 +34b3b80,2 +34b3b81,80 +34b3b82,30 +34b3b83,25 +34b3b84,2 +34b3b85,60 +34b3b86,28 +34b3b87,25 +34b3b88,c +34b3b89,10 +34b3b8a,18 +34b3b8c,2 +34b3b8d,20 +34b3b8e,20 +34b3b8f,25 +34b3b90,26 +34b3b91,52 +34b3b93,1 +34b3b94,26 +34b3b95,31 +34b3b97,c +34b3b98,8e +34b3b99,a2 +34b3b9a,63 +34b3b9b,c +34b3b9c,2 +34b3b9d,42 +34b3b9e,10 +34b3b9f,2a +34b3ba0,14 +34b3ba1,40 +34b3ba2,ff +34b3ba3,f7 +34b3ba4,26 +34b3ba5,94 +34b3ba7,12 +34b3ba8,3c +34b3ba9,2 +34b3baa,80 +34b3bab,40 +34b3bac,94 +34b3bad,42 +34b3bae,62 +34b3bb1,2 +34b3bb2,10 +34b3bb3,c0 +34b3bb4,24 +34b3bb5,42 +34b3bb7,2 +34b3bb9,53 +34b3bba,98 +34b3bbb,21 +34b3bbc,24 +34b3bbd,7 +34b3bbf,1 +34b3bc0,24 +34b3bc1,6 +34b3bc3,3 +34b3bc4,3c +34b3bc5,5 +34b3bc6,80 +34b3bc7,40 +34b3bc8,24 +34b3bc9,a5 +34b3bca,62 +34b3bcb,c +34b3bcc,c +34b3bcd,10 +34b3bce,14 +34b3bcf,1c +34b3bd0,2 +34b3bd2,20 +34b3bd3,25 +34b3bd4,3c +34b3bd5,2 +34b3bd6,80 +34b3bd7,40 +34b3bd8,8c +34b3bd9,42 +34b3bda,63 +34b3bdb,c +34b3bdc,58 +34b3bdd,40 +34b3bdf,2c +34b3be0,26 +34b3be1,7e +34b3be3,12 +34b3be4,3c +34b3be5,12 +34b3be6,80 +34b3be7,40 +34b3be8,26 +34b3be9,52 +34b3bea,62 +34b3beb,70 +34b3bec,24 +34b3bed,14 +34b3bef,5 +34b3bf2,88 +34b3bf3,25 +34b3bf4,2 +34b3bf5,40 +34b3bf6,a8 +34b3bf7,25 +34b3bf8,3c +34b3bf9,17 +34b3bfa,80 +34b3bfb,11 +34b3bfc,36 +34b3bfd,f7 +34b3bfe,a5 +34b3bff,d0 +34b3c00,3c +34b3c01,16 +34b3c02,80 +34b3c03,40 +34b3c05,11 +34b3c06,10 +34b3c07,40 +34b3c09,51 +34b3c0a,10 +34b3c0b,21 +34b3c0d,2 +34b3c0e,10 +34b3c0f,80 +34b3c11,55 +34b3c12,10 +34b3c13,21 +34b3c14,80 +34b3c15,42 +34b3c17,1 +34b3c18,4 +34b3c19,43 +34b3c1b,17 +34b3c1c,26 +34b3c1d,31 +34b3c1f,1 +34b3c20,92 +34b3c21,42 +34b3c24,2 +34b3c25,e2 +34b3c26,10 +34b3c27,21 +34b3c28,90 +34b3c29,42 +34b3c2b,bc +34b3c2d,2 +34b3c2e,1e +34b3c31,3 +34b3c32,1e +34b3c33,3 +34b3c34,28 +34b3c35,63 +34b3c37,a +34b3c38,50 +34b3c39,60 +34b3c3b,1 +34b3c3c,24 +34b3c3d,2 +34b3c3f,9 +34b3c40,24 +34b3c41,3 +34b3c42,30 +34b3c44,a7 +34b3c45,a3 +34b3c47,20 +34b3c49,40 +34b3c4a,18 +34b3c4b,25 +34b3c4d,2 +34b3c4e,16 +34b3c51,2 +34b3c52,16 +34b3c53,3 +34b3c54,4 +34b3c55,42 +34b3c57,1 +34b3c5a,18 +34b3c5b,25 +34b3c5c,24 +34b3c5d,63 +34b3c5f,30 +34b3c60,a3 +34b3c61,a3 +34b3c63,20 +34b3c64,2 +34b3c65,80 +34b3c66,30 +34b3c67,25 +34b3c68,2 +34b3c69,60 +34b3c6a,28 +34b3c6b,25 +34b3c6c,c +34b3c6d,10 +34b3c6e,18 +34b3c70,27 +34b3c71,a4 +34b3c73,20 +34b3c74,26 +34b3c75,31 +34b3c77,1 +34b3c78,26 +34b3c79,52 +34b3c7b,c +34b3c7c,8e +34b3c7d,c2 +34b3c7e,63 +34b3c7f,c +34b3c80,2 +34b3c81,22 +34b3c82,10 +34b3c83,2a +34b3c84,14 +34b3c85,40 +34b3c86,ff +34b3c87,df +34b3c88,26 +34b3c89,94 +34b3c8b,12 +34b3c8c,26 +34b3c8d,7e +34b3c8f,12 +34b3c90,24 +34b3c91,7 +34b3c93,1 +34b3c96,30 +34b3c97,25 +34b3c98,3c +34b3c99,5 +34b3c9a,80 +34b3c9b,40 +34b3c9c,24 +34b3c9d,a5 +34b3c9e,62 +34b3c9f,c +34b3ca0,c +34b3ca1,10 +34b3ca2,14 +34b3ca3,1c +34b3ca4,2 +34b3ca6,20 +34b3ca7,25 +34b3ca8,3c +34b3ca9,2 +34b3caa,80 +34b3cab,40 +34b3cac,8c +34b3cad,42 +34b3cae,63 +34b3caf,c +34b3cb0,58 +34b3cb1,40 +34b3cb3,2b +34b3cb4,26 +34b3cb5,7e +34b3cb7,24 +34b3cb8,3c +34b3cb9,12 +34b3cba,80 +34b3cbb,40 +34b3cbc,26 +34b3cbd,52 +34b3cbe,62 +34b3cbf,70 +34b3cc2,88 +34b3cc3,25 +34b3cc4,2 +34b3cc5,40 +34b3cc6,a0 +34b3cc7,25 +34b3cc8,3c +34b3cc9,16 +34b3cca,80 +34b3ccb,11 +34b3ccc,3c +34b3ccd,17 +34b3cce,80 +34b3ccf,40 +34b3cd0,26 +34b3cd1,f7 +34b3cd2,62 +34b3cd3,c +34b3cd4,3c +34b3cd5,15 +34b3cd6,80 +34b3cd7,40 +34b3cd9,11 +34b3cda,10 +34b3cdb,40 +34b3cdd,51 +34b3cde,10 +34b3cdf,21 +34b3ce1,2 +34b3ce2,10 +34b3ce3,80 +34b3ce5,54 +34b3ce6,10 +34b3ce7,21 +34b3ce8,90 +34b3ce9,42 +34b3ceb,1 +34b3cec,30 +34b3ced,42 +34b3cef,40 +34b3cf0,50 +34b3cf1,40 +34b3cf3,16 +34b3cf4,26 +34b3cf5,31 +34b3cf7,1 +34b3cf8,36 +34b3cf9,c2 +34b3cfa,a5 +34b3cfb,d0 +34b3cfc,92 +34b3cfd,43 +34b3d01,43 +34b3d02,10 +34b3d03,21 +34b3d04,90 +34b3d05,42 +34b3d07,a8 +34b3d08,30 +34b3d09,42 +34b3d0b,1 +34b3d0c,50 +34b3d0d,40 +34b3d0f,f +34b3d10,26 +34b3d11,31 +34b3d13,1 +34b3d14,24 +34b3d15,2 +34b3d17,10 +34b3d18,af +34b3d19,a2 +34b3d1b,18 +34b3d1c,af +34b3d1d,a2 +34b3d1f,14 +34b3d21,11 +34b3d22,10 +34b3d23,c0 +34b3d25,51 +34b3d26,10 +34b3d27,21 +34b3d29,2 +34b3d2a,10 +34b3d2b,40 +34b3d2c,24 +34b3d2d,42 +34b3d2f,4 +34b3d30,af +34b3d31,a2 +34b3d33,10 +34b3d34,3 +34b3d35,c0 +34b3d36,38 +34b3d37,25 +34b3d3a,30 +34b3d3b,25 +34b3d3c,2 +34b3d3d,e0 +34b3d3e,28 +34b3d3f,25 +34b3d40,c +34b3d41,10 +34b3d42,14 +34b3d43,af +34b3d44,2 +34b3d46,20 +34b3d47,25 +34b3d48,26 +34b3d49,31 +34b3d4b,1 +34b3d4c,8e +34b3d4d,a2 +34b3d4e,63 +34b3d4f,c +34b3d50,2 +34b3d51,22 +34b3d52,10 +34b3d53,2a +34b3d54,14 +34b3d55,40 +34b3d56,ff +34b3d57,e0 +34b3d58,26 +34b3d59,52 +34b3d5b,c +34b3d5c,26 +34b3d5d,7e +34b3d5f,24 +34b3d60,24 +34b3d61,7 +34b3d63,1 +34b3d64,24 +34b3d65,6 +34b3d67,2 +34b3d68,3c +34b3d69,5 +34b3d6a,80 +34b3d6b,40 +34b3d6c,24 +34b3d6d,a5 +34b3d6e,62 +34b3d6f,c +34b3d70,c +34b3d71,10 +34b3d72,14 +34b3d73,1c +34b3d74,2 +34b3d76,20 +34b3d77,25 +34b3d78,3c +34b3d79,2 +34b3d7a,80 +34b3d7b,40 +34b3d7c,8c +34b3d7d,42 +34b3d7e,63 +34b3d7f,c +34b3d80,18 +34b3d81,40 +34b3d83,2a +34b3d84,3c +34b3d85,12 +34b3d86,80 +34b3d87,40 +34b3d88,26 +34b3d89,52 +34b3d8a,62 +34b3d8b,70 +34b3d8e,88 +34b3d8f,25 +34b3d90,2 +34b3d91,40 +34b3d92,a0 +34b3d93,25 +34b3d94,3c +34b3d95,16 +34b3d96,80 +34b3d97,11 +34b3d98,3c +34b3d99,17 +34b3d9a,80 +34b3d9b,40 +34b3d9c,26 +34b3d9d,f7 +34b3d9e,62 +34b3d9f,c +34b3da0,3c +34b3da1,15 +34b3da2,80 +34b3da3,40 +34b3da5,11 +34b3da6,10 +34b3da7,40 +34b3da9,51 +34b3daa,10 +34b3dab,21 +34b3dad,2 +34b3dae,10 +34b3daf,80 +34b3db1,54 +34b3db2,10 +34b3db3,21 +34b3db4,90 +34b3db5,42 +34b3db7,1 +34b3db8,30 +34b3db9,42 +34b3dbb,10 +34b3dbc,50 +34b3dbd,40 +34b3dbf,17 +34b3dc0,26 +34b3dc1,31 +34b3dc3,1 +34b3dc4,36 +34b3dc5,c2 +34b3dc6,a5 +34b3dc7,d0 +34b3dc8,92 +34b3dc9,43 +34b3dcd,43 +34b3dce,10 +34b3dcf,21 +34b3dd0,90 +34b3dd1,42 +34b3dd3,a8 +34b3dd5,2 +34b3dd6,10 +34b3dd7,82 +34b3dd8,30 +34b3dd9,42 +34b3ddb,1 +34b3ddc,50 +34b3ddd,40 +34b3ddf,f +34b3de0,26 +34b3de1,31 +34b3de3,1 +34b3de4,24 +34b3de5,2 +34b3de7,10 +34b3de8,af +34b3de9,a2 +34b3deb,18 +34b3dec,af +34b3ded,a2 +34b3def,14 +34b3df1,11 +34b3df2,10 +34b3df3,c0 +34b3df5,51 +34b3df6,10 +34b3df7,21 +34b3df9,2 +34b3dfa,10 +34b3dfb,40 +34b3dfc,24 +34b3dfd,42 +34b3dff,4 +34b3e00,af +34b3e01,a2 +34b3e03,10 +34b3e04,3 +34b3e05,c0 +34b3e06,38 +34b3e07,25 +34b3e0a,30 +34b3e0b,25 +34b3e0c,2 +34b3e0d,e0 +34b3e0e,28 +34b3e0f,25 +34b3e10,c +34b3e11,10 +34b3e12,14 +34b3e13,af +34b3e14,2 +34b3e16,20 +34b3e17,25 +34b3e18,26 +34b3e19,31 +34b3e1b,1 +34b3e1c,8e +34b3e1d,a2 +34b3e1e,63 +34b3e1f,c +34b3e20,2 +34b3e21,22 +34b3e22,10 +34b3e23,2a +34b3e24,14 +34b3e25,40 +34b3e26,ff +34b3e27,df +34b3e28,26 +34b3e29,52 +34b3e2b,c +34b3e2c,26 +34b3e2d,7e +34b3e2f,36 +34b3e30,24 +34b3e31,7 +34b3e33,1 +34b3e34,24 +34b3e35,6 +34b3e37,1 +34b3e38,3c +34b3e39,5 +34b3e3a,80 +34b3e3b,40 +34b3e3c,24 +34b3e3d,a5 +34b3e3e,62 +34b3e3f,c +34b3e40,c +34b3e41,10 +34b3e42,14 +34b3e43,1c +34b3e44,2 +34b3e46,20 +34b3e47,25 +34b3e48,3c +34b3e49,2 +34b3e4a,80 +34b3e4b,40 +34b3e4c,8c +34b3e4d,42 +34b3e4e,63 +34b3e4f,c +34b3e50,18 +34b3e51,40 +34b3e53,46 +34b3e54,3c +34b3e55,12 +34b3e56,80 +34b3e57,40 +34b3e58,26 +34b3e59,52 +34b3e5a,62 +34b3e5b,70 +34b3e5c,2 +34b3e5d,40 +34b3e5e,a0 +34b3e5f,25 +34b3e62,88 +34b3e63,25 +34b3e64,2 +34b3e65,40 +34b3e66,a8 +34b3e67,25 +34b3e68,3c +34b3e69,17 +34b3e6a,80 +34b3e6b,11 +34b3e6c,3c +34b3e6d,2 +34b3e6e,80 +34b3e6f,40 +34b3e70,24 +34b3e71,42 +34b3e72,62 +34b3e73,c +34b3e74,af +34b3e75,a2 +34b3e77,38 +34b3e78,3c +34b3e79,16 +34b3e7a,80 +34b3e7b,40 +34b3e7d,11 +34b3e7e,10 +34b3e7f,40 +34b3e81,51 +34b3e82,10 +34b3e83,21 +34b3e85,2 +34b3e86,10 +34b3e87,80 +34b3e89,55 +34b3e8a,10 +34b3e8b,21 +34b3e8c,90 +34b3e8d,42 +34b3e8f,1 +34b3e90,30 +34b3e91,42 +34b3e93,10 +34b3e94,50 +34b3e95,40 +34b3e97,17 +34b3e98,26 +34b3e99,31 +34b3e9b,1 +34b3e9c,36 +34b3e9d,e2 +34b3e9e,a5 +34b3e9f,d0 +34b3ea0,92 +34b3ea1,83 +34b3ea5,43 +34b3ea6,10 +34b3ea7,21 +34b3ea8,90 +34b3ea9,42 +34b3eab,a8 +34b3ead,2 +34b3eae,10 +34b3eaf,42 +34b3eb0,30 +34b3eb1,42 +34b3eb3,1 +34b3eb4,50 +34b3eb5,40 +34b3eb7,f +34b3eb8,26 +34b3eb9,31 +34b3ebb,1 +34b3ebc,24 +34b3ebd,2 +34b3ebf,10 +34b3ec0,af +34b3ec1,a2 +34b3ec3,18 +34b3ec4,af +34b3ec5,a2 +34b3ec7,14 +34b3ec9,11 +34b3eca,10 +34b3ecb,c0 +34b3ecd,51 +34b3ece,10 +34b3ecf,21 +34b3ed1,2 +34b3ed2,10 +34b3ed3,40 +34b3ed4,24 +34b3ed5,42 +34b3ed7,4 +34b3ed8,af +34b3ed9,a2 +34b3edb,10 +34b3edc,3 +34b3edd,c0 +34b3ede,38 +34b3edf,25 +34b3ee2,30 +34b3ee3,25 +34b3ee4,8f +34b3ee5,a5 +34b3ee7,38 +34b3ee8,c +34b3ee9,10 +34b3eea,14 +34b3eeb,af +34b3eec,2 +34b3eee,20 +34b3eef,25 +34b3ef0,26 +34b3ef1,31 +34b3ef3,1 +34b3ef4,8e +34b3ef5,c2 +34b3ef6,63 +34b3ef7,c +34b3ef8,2 +34b3ef9,22 +34b3efa,18 +34b3efb,2a +34b3efc,14 +34b3efd,60 +34b3efe,ff +34b3eff,df +34b3f00,26 +34b3f01,94 +34b3f03,c +34b3f04,18 +34b3f05,40 +34b3f07,19 +34b3f08,26 +34b3f09,73 +34b3f0b,48 +34b3f0c,24 +34b3f0d,14 +34b3f0f,5 +34b3f12,88 +34b3f13,25 +34b3f14,3c +34b3f15,16 +34b3f16,80 +34b3f17,40 +34b3f18,26 +34b3f19,d6 +34b3f1a,62 +34b3f1b,3c +34b3f1c,3c +34b3f1d,15 +34b3f1e,80 +34b3f1f,40 +34b3f20,26 +34b3f21,b5 +34b3f22,61 +34b3f23,f0 +34b3f24,3c +34b3f25,1e +34b3f26,80 +34b3f27,40 +34b3f28,27 +34b3f29,de +34b3f2a,61 +34b3f2b,f4 +34b3f2c,3c +34b3f2d,17 +34b3f2e,80 +34b3f2f,40 +34b3f30,92 +34b3f31,42 +34b3f35,56 +34b3f36,10 +34b3f37,21 +34b3f38,90 +34b3f39,42 +34b3f3c,14 +34b3f3d,40 +34b3f3f,2 +34b3f40,2 +34b3f41,a0 +34b3f42,20 +34b3f43,25 +34b3f44,3 +34b3f45,c0 +34b3f46,20 +34b3f47,25 +34b3f48,2 +34b3f49,80 +34b3f4a,30 +34b3f4b,25 +34b3f4c,c +34b3f4d,10 +34b3f4e,18 +34b3f50,2 +34b3f51,60 +34b3f52,28 +34b3f53,25 +34b3f54,26 +34b3f55,31 +34b3f57,1 +34b3f58,26 +34b3f59,52 +34b3f5b,c +34b3f5c,8e +34b3f5d,e2 +34b3f5e,63 +34b3f5f,c +34b3f60,2 +34b3f61,22 +34b3f62,10 +34b3f63,2a +34b3f64,14 +34b3f65,40 +34b3f66,ff +34b3f67,f2 +34b3f68,26 +34b3f69,94 +34b3f6b,12 +34b3f6c,c +34b3f6d,10 +34b3f6e,18 +34b3f6f,2a +34b3f70,2 +34b3f72,20 +34b3f73,25 +34b3f74,8e +34b3f75,2 +34b3f77,8 +34b3f78,24 +34b3f79,43 +34b3f7b,8 +34b3f7c,ae +34b3f7d,3 +34b3f7f,8 +34b3f80,3c +34b3f81,3 +34b3f82,e9 +34b3f84,ac +34b3f85,43 +34b3f88,ac +34b3f89,40 +34b3f8b,4 +34b3f8c,8e +34b3f8d,2 +34b3f8f,8 +34b3f90,24 +34b3f91,43 +34b3f93,8 +34b3f94,ae +34b3f95,3 +34b3f97,8 +34b3f98,3c +34b3f99,3 +34b3f9a,df +34b3f9c,ac +34b3f9d,43 +34b3fa0,ac +34b3fa1,40 +34b3fa3,4 +34b3fa4,8f +34b3fa5,bf +34b3fa7,64 +34b3fa8,8f +34b3fa9,be +34b3fab,60 +34b3fac,8f +34b3fad,b7 +34b3faf,5c +34b3fb0,8f +34b3fb1,b6 +34b3fb3,58 +34b3fb4,8f +34b3fb5,b5 +34b3fb7,54 +34b3fb8,8f +34b3fb9,b4 +34b3fbb,50 +34b3fbc,8f +34b3fbd,b3 +34b3fbf,4c +34b3fc0,8f +34b3fc1,b2 +34b3fc3,48 +34b3fc4,8f +34b3fc5,b1 +34b3fc7,44 +34b3fc8,8f +34b3fc9,b0 +34b3fcb,40 +34b3fcc,3 +34b3fcd,e0 +34b3fcf,8 +34b3fd0,27 +34b3fd1,bd +34b3fd3,68 +34b3fd4,27 +34b3fd5,bd +34b3fd6,ff +34b3fd7,e8 +34b3fd8,af +34b3fd9,bf +34b3fdb,14 +34b3fdc,c +34b3fdd,10 +34b3fde,15 +34b3fdf,b8 +34b3fe0,24 +34b3fe1,4 +34b3fe2,4 +34b3fe4,3c +34b3fe5,3 +34b3fe6,80 +34b3fe7,40 +34b3fe8,ac +34b3fe9,62 +34b3fea,63 +34b3feb,18 +34b3fec,3c +34b3fed,3 +34b3fee,80 +34b3fef,40 +34b3ff0,ac +34b3ff1,62 +34b3ff2,63 +34b3ff3,14 +34b3ff4,8f +34b3ff5,bf +34b3ff7,14 +34b3ff8,3 +34b3ff9,e0 +34b3ffb,8 +34b3ffc,27 +34b3ffd,bd +34b3fff,18 +34b4000,80 +34b4001,82 +34b4004,10 +34b4005,40 +34b4007,26 +34b4008,24 +34b4009,87 +34b400b,1 +34b400c,3c +34b400d,3 +34b400e,80 +34b400f,40 +34b4010,8c +34b4011,68 +34b4012,63 +34b4013,18 +34b4014,25 +34b4015,8 +34b4016,4 +34b4018,3c +34b4019,3 +34b401a,80 +34b401b,40 +34b401c,8c +34b401d,63 +34b401e,63 +34b401f,14 +34b4021,68 +34b4022,20 +34b4023,2b +34b4024,10 +34b4025,80 +34b4027,1e +34b4028,3c +34b4029,a +34b402a,ff +34b402c,25 +34b402d,4a +34b402e,f +34b402f,ff +34b4030,30 +34b4031,c6 +34b4032,f +34b4033,ff +34b4034,24 +34b4035,b +34b4036,f0 +34b4038,3c +34b4039,9 +34b403a,80 +34b403b,40 +34b403c,10 +34b403f,7 +34b4040,25 +34b4041,29 +34b4042,61 +34b4043,fc +34b4045,68 +34b4046,20 +34b4047,2b +34b4048,54 +34b4049,80 +34b404b,5 +34b404c,a0 +34b404d,62 +34b4050,3c +34b4051,2 +34b4052,80 +34b4053,40 +34b4054,3 +34b4055,e0 +34b4057,8 +34b4058,ac +34b4059,43 +34b405a,63 +34b405b,14 +34b405c,a0 +34b405d,62 +34b4060,30 +34b4061,a2 +34b4062,f +34b4063,ff +34b4065,2 +34b4066,23 +34b4068,8c +34b4069,62 +34b406d,4a +34b406e,10 +34b406f,24 +34b4071,44 +34b4072,10 +34b4073,25 +34b4075,4b +34b4076,10 +34b4077,24 +34b4079,46 +34b407a,10 +34b407b,25 +34b407c,ac +34b407d,62 +34b4080,95 +34b4081,22 +34b4083,4 +34b4085,a2 +34b4086,28 +34b4087,21 +34b4088,24 +34b4089,e7 +34b408b,1 +34b408c,80 +34b408d,e2 +34b408e,ff +34b408f,ff +34b4090,14 +34b4091,40 +34b4092,ff +34b4093,ec +34b4094,24 +34b4095,63 +34b4097,4 +34b4098,3c +34b4099,2 +34b409a,80 +34b409b,40 +34b409c,ac +34b409d,43 +34b409e,63 +34b409f,14 +34b40a0,3 +34b40a1,e0 +34b40a3,8 +34b40a8,27 +34b40a9,bd +34b40aa,ff +34b40ab,b0 +34b40ac,af +34b40ad,bf +34b40af,4c +34b40b0,af +34b40b1,be +34b40b3,48 +34b40b4,af +34b40b5,b7 +34b40b7,44 +34b40b8,af +34b40b9,b6 +34b40bb,40 +34b40bc,af +34b40bd,b5 +34b40bf,3c +34b40c0,af +34b40c1,b4 +34b40c3,38 +34b40c4,af +34b40c5,b3 +34b40c7,34 +34b40c8,af +34b40c9,b2 +34b40cb,30 +34b40cc,af +34b40cd,b1 +34b40cf,2c +34b40d0,af +34b40d1,b0 +34b40d3,28 +34b40d5,80 +34b40d6,a8 +34b40d7,25 +34b40da,b0 +34b40db,25 +34b40de,90 +34b40df,25 +34b40e0,3c +34b40e1,14 +34b40e2,80 +34b40e3,40 +34b40e4,26 +34b40e5,94 +34b40e6,61 +34b40e7,fc +34b40e8,3c +34b40e9,1e +34b40ea,80 +34b40eb,40 +34b40ec,3c +34b40ed,13 +34b40ee,80 +34b40ef,40 +34b40f0,3c +34b40f1,17 +34b40f2,38 +34b40f3,e3 +34b40f4,af +34b40f5,b4 +34b40f7,20 +34b40f8,24 +34b40f9,7 +34b40fb,12 +34b40fc,2 +34b40fd,c0 +34b40fe,30 +34b40ff,25 +34b4100,2 +34b4101,80 +34b4102,28 +34b4103,25 +34b4104,c +34b4105,10 +34b4106,14 +34b4107,1c +34b4108,2 +34b4109,a0 +34b410a,20 +34b410b,25 +34b410c,8f +34b410d,c5 +34b410e,63 +34b410f,18 +34b4110,10 +34b4113,1f +34b4114,36 +34b4115,f1 +34b4116,8e +34b4117,39 +34b4118,24 +34b4119,42 +34b411a,ff +34b411b,e0 +34b411d,51 +34b411f,18 +34b4122,18 +34b4123,10 +34b4125,3 +34b4126,18 +34b4127,83 +34b4129,2 +34b412a,27 +34b412b,c3 +34b412d,64 +34b412e,18 +34b412f,23 +34b4130,14 +34b4131,72 +34b4133,16 +34b4134,24 +34b4135,b0 +34b4137,4 +34b4138,8c +34b4139,a7 +34b413d,7 +34b413e,3b +34b413f,2 +34b4141,51 +34b4143,18 +34b4146,30 +34b4147,10 +34b4149,6 +34b414a,30 +34b414b,83 +34b414d,c4 +34b414e,30 +34b414f,23 +34b4151,6 +34b4152,18 +34b4153,c0 +34b4155,66 +34b4156,30 +34b4157,21 +34b4159,6 +34b415a,30 +34b415b,40 +34b415c,96 +34b415d,83 +34b415f,6 +34b4160,af +34b4161,a3 +34b4163,18 +34b4164,96 +34b4165,83 +34b4167,4 +34b4168,af +34b4169,a3 +34b416b,14 +34b416c,8c +34b416d,a3 +34b4170,30 +34b4171,63 +34b4172,f +34b4173,ff +34b4174,af +34b4175,a3 +34b4177,10 +34b4178,30 +34b4179,e7 +34b417a,f +34b417b,ff +34b417d,46 +34b417e,30 +34b417f,23 +34b4180,8f +34b4181,a5 +34b4183,20 +34b4184,c +34b4185,10 +34b4186,14 +34b4187,af +34b4188,2 +34b4189,a0 +34b418a,20 +34b418b,25 +34b418c,2 +34b418e,28 +34b418f,25 +34b4190,8e +34b4191,62 +34b4192,63 +34b4193,14 +34b4195,a2 +34b4196,10 +34b4197,2b +34b4198,54 +34b4199,40 +34b419a,ff +34b419b,df +34b419c,80 +34b419d,a2 +34b41a0,26 +34b41a1,52 +34b41a3,1 +34b41a4,24 +34b41a5,2 +34b41a7,6 +34b41a8,16 +34b41a9,42 +34b41aa,ff +34b41ab,d3 +34b41ac,26 +34b41ad,d6 +34b41af,12 +34b41b0,3c +34b41b1,2 +34b41b2,80 +34b41b3,40 +34b41b4,8c +34b41b5,43 +34b41b6,63 +34b41b7,18 +34b41b8,3c +34b41b9,2 +34b41ba,80 +34b41bb,40 +34b41bc,ac +34b41bd,43 +34b41be,63 +34b41bf,14 +34b41c0,8f +34b41c1,bf +34b41c3,4c +34b41c4,8f +34b41c5,be +34b41c7,48 +34b41c8,8f +34b41c9,b7 +34b41cb,44 +34b41cc,8f +34b41cd,b6 +34b41cf,40 +34b41d0,8f +34b41d1,b5 +34b41d3,3c +34b41d4,8f +34b41d5,b4 +34b41d7,38 +34b41d8,8f +34b41d9,b3 +34b41db,34 +34b41dc,8f +34b41dd,b2 +34b41df,30 +34b41e0,8f +34b41e1,b1 +34b41e3,2c +34b41e4,8f +34b41e5,b0 +34b41e7,28 +34b41e8,3 +34b41e9,e0 +34b41eb,8 +34b41ec,27 +34b41ed,bd +34b41ef,50 +34b41f0,4d +34b41f1,51 +34b41f4,4e +34b41f5,6f +34b41f6,72 +34b41f7,6d +34b41f8,61 +34b41f9,6c +34b4201,8 +34b4203,e +34b4205,5f +34b4206,3 +34b4207,1 +34b4208,1 +34b4211,18 +34b4213,18 +34b4215,4 +34b4217,3 +34b4218,4 +34b4221,10 +34b4223,10 +34b4225,6 +34b4226,3 +34b4227,1 +34b4228,1 +34b4231,10 +34b4233,10 +34b4235,3 +34b4237,3 +34b4238,4 +34b423c,1 +34b423f,1 +34b4241,1 +34b4242,1 +34b4244,1 +34b4245,1 +34b4247,1 +34b4248,1 +34b424c,4 +34b424d,1 +34b424e,7 +34b424f,5 +34b4251,8 +34b4252,6 +34b4253,2 +34b4254,ff +34b4255,ff +34b4256,ff +34b4257,ff +34b4258,ff +34b4259,ff +34b425c,11 +34b425d,c2 +34b425e,2d +34b425f,d4 +34b4260,43 +34b4261,22 +34b4262,8 +34b4263,54 +34b4264,ce +34b4265,d1 +34b4266,75 +34b4267,1a +34b4268,a9 +34b4269,3a +34b426a,ea +34b426b,a4 +34b426c,ab +34b426d,21 +34b4271,10 +34b4272,44 +34b4273,65 +34b4274,6b +34b4275,75 +34b427c,1 +34b427d,10 +34b427e,44 +34b427f,6f +34b4280,64 +34b4281,6f +34b4282,6e +34b4283,67 +34b4284,6f +34b4288,2 +34b4289,10 +34b428a,4a +34b428b,61 +34b428c,62 +34b428d,75 +34b4294,3 +34b4295,d0 +34b4296,46 +34b4297,6f +34b4298,72 +34b4299,65 +34b429a,73 +34b429b,74 +34b42a0,4 +34b42a1,d0 +34b42a2,46 +34b42a3,69 +34b42a4,72 +34b42a5,65 +34b42ac,5 +34b42ad,d0 +34b42ae,57 +34b42af,61 +34b42b0,74 +34b42b1,65 +34b42b2,72 +34b42b8,7 +34b42b9,d0 +34b42ba,53 +34b42bb,68 +34b42bc,61 +34b42bd,64 +34b42be,6f +34b42bf,77 +34b42c4,6 +34b42c5,d0 +34b42c6,53 +34b42c7,70 +34b42c8,69 +34b42c9,72 +34b42ca,69 +34b42cb,74 +34b42d0,8 +34b42d1,90 +34b42d2,42 +34b42d3,6f +34b42d4,74 +34b42d5,57 +34b42dc,9 +34b42dd,10 +34b42de,49 +34b42df,63 +34b42e0,65 +34b42e8,b +34b42e9,80 +34b42ea,47 +34b42eb,54 +34b42ec,47 +34b42f4,c +34b42f5,a0 +34b42f6,48 +34b42f7,69 +34b42f8,64 +34b42f9,65 +34b42fa,6f +34b42fb,75 +34b42fc,74 +34b4300,d +34b4301,c0 +34b4302,47 +34b4303,61 +34b4304,6e +34b4305,6f +34b4306,6e +34b430f,d +34b436d,d +34b436e,b0 +34b4371,d +34b4372,b0 +34b4375,d +34b4376,b0 +34b4379,c +34b437a,b0 +34b437d,c +34b437e,b0 +34b4381,c +34b4382,a0 +34b4389,d +34b438a,b0 +34b438d,d +34b438e,b0 +34b43a5,e8 +34b43a6,ac +34b43a9,e8 +34b43aa,ac +34b43ad,e8 +34b43ae,ac +34b43b1,e8 +34b43b2,ac +34b43d9,d +34b43da,77 +34b43db,d0 +34b43dd,2e +34b43de,3a +34b43df,b0 +34b43e1,7d +34b43e2,c +34b43e3,90 +34b43e4,8f +34b43e5,ff +34b43e6,ff +34b43e7,fd +34b43e9,c9 +34b43ea,6e +34b43ec,2 +34b43ed,e4 +34b43ee,ac +34b43f0,ef +34b43f1,ff +34b43f2,ff +34b43f3,f4 +34b43f4,a +34b43f5,b0 +34b43f6,e5 +34b43f8,c +34b43f9,95 +34b43fa,e0 +34b43fc,e +34b43fd,59 +34b43fe,c0 +34b4415,7 +34b4416,90 +34b4418,5 +34b4419,ce +34b441a,eb +34b441b,40 +34b441c,c +34b441d,c8 +34b441e,a9 +34b441f,90 +34b4420,d +34b4421,a7 +34b4422,90 +34b4424,8 +34b4425,ec +34b4426,b4 +34b4429,4a +34b442a,dd +34b442b,a0 +34b442d,7 +34b442e,97 +34b442f,e2 +34b4430,c +34b4431,88 +34b4432,aa +34b4433,e0 +34b4434,6 +34b4435,ce +34b4436,ed +34b4437,70 +34b4439,7 +34b443a,90 +34b443d,7 +34b443e,90 +34b444c,6d +34b444d,ea +34b4450,c9 +34b4451,4d +34b4452,60 +34b4454,c9 +34b4455,4d +34b4456,60 +34b4457,33 +34b4458,6d +34b4459,eb +34b445a,6b +34b445b,c6 +34b445d,8c +34b445e,b6 +34b4460,7c +34b4461,a4 +34b4462,ce +34b4463,c4 +34b4464,31 +34b4465,9 +34b4466,c3 +34b4467,bb +34b4469,9 +34b446a,c3 +34b446b,bb +34b446d,2 +34b446e,ce +34b446f,d4 +34b4484,4 +34b4485,ce +34b4486,fb +34b4488,a +34b4489,d5 +34b448c,8 +34b448d,e3 +34b4490,9 +34b4491,ec +34b4494,7e +34b4495,4d +34b4496,b0 +34b4497,ab +34b4498,bb +34b4499,5 +34b449a,e8 +34b449b,aa +34b449c,bc +34b449e,8e +34b449f,d6 +34b44a0,7e +34b44a1,93 +34b44a2,6e +34b44a3,d0 +34b44a4,8 +34b44a5,de +34b44a6,d9 +34b44a7,ea +34b44bd,c +34b44be,a0 +34b44c1,c +34b44c2,a0 +34b44c5,c +34b44c6,a0 +34b44c9,c +34b44ca,a0 +34b44ee,c9 +34b44f1,7 +34b44f2,e2 +34b44f5,c +34b44f6,b0 +34b44f9,e +34b44fa,80 +34b44fd,6f +34b44fe,30 +34b4501,8e +34b4505,8e +34b4509,6f +34b450a,40 +34b450d,e +34b450e,80 +34b4511,c +34b4512,b0 +34b4515,7 +34b4516,e2 +34b451a,c9 +34b4525,bb +34b4529,5e +34b452a,40 +34b452d,c +34b452e,a0 +34b4531,a +34b4532,d0 +34b4535,7 +34b4536,e1 +34b4539,6 +34b453a,f4 +34b453d,6 +34b453e,f4 +34b4541,7 +34b4542,e1 +34b4545,a +34b4546,d0 +34b4549,c +34b454a,a0 +34b454d,5e +34b454e,40 +34b4551,bb +34b4565,a +34b4566,80 +34b4568,c +34b4569,8a +34b456a,8a +34b456b,b0 +34b456c,3 +34b456d,be +34b456e,da +34b456f,10 +34b4570,3 +34b4571,be +34b4572,da +34b4573,10 +34b4574,c +34b4575,8a +34b4576,8a +34b4577,b0 +34b4579,a +34b457a,80 +34b45a1,c +34b45a2,a0 +34b45a5,c +34b45a6,a0 +34b45a9,c +34b45aa,a0 +34b45ac,af +34b45ad,ff +34b45ae,ff +34b45af,f8 +34b45b1,c +34b45b2,a0 +34b45b5,c +34b45b6,a0 +34b45b9,c +34b45ba,a0 +34b45f1,d +34b45f2,d0 +34b45f5,e +34b45f6,c0 +34b45f9,4f +34b45fa,80 +34b45fd,9d +34b4621,df +34b4622,fb +34b4661,e +34b4662,c0 +34b4665,e +34b4666,c0 +34b467e,b +34b467f,c0 +34b4682,4e +34b4683,60 +34b4686,bc +34b4689,3 +34b468a,e8 +34b468d,a +34b468e,d0 +34b4691,1e +34b4692,90 +34b4695,9e +34b4696,20 +34b4699,da +34b469c,7 +34b469d,e3 +34b46a0,c +34b46a1,b0 +34b46a4,6e +34b46a5,50 +34b46b4,3 +34b46b5,ce +34b46b6,eb +34b46b8,b +34b46b9,d5 +34b46ba,7e +34b46bb,90 +34b46bc,e +34b46bd,90 +34b46be,b +34b46bf,d0 +34b46c0,5f +34b46c1,70 +34b46c2,9 +34b46c3,e0 +34b46c4,6f +34b46c5,6c +34b46c6,b9 +34b46c7,e0 +34b46c8,5f +34b46c9,70 +34b46ca,9 +34b46cb,e0 +34b46cc,e +34b46cd,90 +34b46ce,b +34b46cf,d0 +34b46d0,b +34b46d1,d5 +34b46d2,7e +34b46d3,90 +34b46d4,3 +34b46d5,ce +34b46d6,eb +34b46ec,a +34b46ed,ff +34b46ee,e0 +34b46f1,8 +34b46f2,e0 +34b46f5,8 +34b46f6,e0 +34b46f9,8 +34b46fa,e0 +34b46fd,8 +34b46fe,e0 +34b4701,8 +34b4702,e0 +34b4705,8 +34b4706,e0 +34b4709,8 +34b470a,e0 +34b470c,8 +34b470d,ff +34b470e,ff +34b470f,e0 +34b4724,8 +34b4725,de +34b4726,ea +34b4728,c +34b4729,83 +34b472a,7e +34b472b,90 +34b472e,c +34b472f,c0 +34b4732,2e +34b4733,a0 +34b4736,bd +34b4737,20 +34b4739,b +34b473a,d4 +34b473d,bd +34b473e,40 +34b4740,b +34b4741,d4 +34b4744,2f +34b4745,ff +34b4746,ff +34b4747,d0 +34b475c,7 +34b475d,ce +34b475e,ea +34b4760,c +34b4761,83 +34b4762,7e +34b4763,90 +34b4766,c +34b4767,b0 +34b4769,2 +34b476a,7e +34b476b,90 +34b476d,bf +34b476e,fb +34b4771,2 +34b4772,7d +34b4773,a0 +34b4776,a +34b4777,d0 +34b4778,5c +34b4779,62 +34b477a,7d +34b477b,b0 +34b477c,9 +34b477d,de +34b477e,eb +34b477f,30 +34b4795,2 +34b4796,de +34b4799,b +34b479a,de +34b479d,7d +34b479e,9e +34b47a0,2 +34b47a1,d7 +34b47a2,9e +34b47a4,b +34b47a5,b0 +34b47a6,9e +34b47a8,6e +34b47a9,40 +34b47aa,9e +34b47ac,9f +34b47ad,ff +34b47ae,ff +34b47af,f7 +34b47b2,9e +34b47b6,9e +34b47cc,c +34b47cd,ff +34b47ce,ff +34b47cf,50 +34b47d0,c +34b47d1,a0 +34b47d4,c +34b47d5,a0 +34b47d8,c +34b47d9,ee +34b47da,ea +34b47dd,3 +34b47de,8e +34b47df,90 +34b47e2,b +34b47e3,c0 +34b47e6,b +34b47e7,c0 +34b47e8,5c +34b47e9,63 +34b47ea,8e +34b47eb,90 +34b47ec,9 +34b47ed,de +34b47ee,da +34b4805,ae +34b4806,ec +34b4807,30 +34b4808,a +34b4809,e8 +34b480a,39 +34b480b,80 +34b480c,e +34b480d,90 +34b4810,4f +34b4811,ae +34b4812,ec +34b4813,40 +34b4814,6f +34b4815,d5 +34b4816,5d +34b4817,c0 +34b4818,5f +34b4819,90 +34b481a,9 +34b481b,e0 +34b481c,e +34b481d,90 +34b481e,9 +34b481f,e0 +34b4820,c +34b4821,d5 +34b4822,5d +34b4823,c0 +34b4824,3 +34b4825,ce +34b4826,ec +34b4827,40 +34b483c,5f +34b483d,ff +34b483e,ff +34b483f,d0 +34b4842,d +34b4843,a0 +34b4846,7e +34b4847,40 +34b484a,cc +34b484d,4 +34b484e,e8 +34b4851,a +34b4852,d0 +34b4855,d +34b4856,a0 +34b4859,8e +34b485a,40 +34b485d,cc +34b4874,5 +34b4875,ce +34b4876,ec +34b4877,30 +34b4878,d +34b4879,c4 +34b487a,5d +34b487b,b0 +34b487c,e +34b487d,90 +34b487e,b +34b487f,d0 +34b4880,b +34b4881,c4 +34b4882,5d +34b4883,90 +34b4884,4 +34b4885,df +34b4886,fc +34b4887,20 +34b4888,1d +34b4889,b4 +34b488a,5c +34b488b,c0 +34b488c,5f +34b488d,60 +34b488e,9 +34b488f,e0 +34b4890,2e +34b4891,b3 +34b4892,5c +34b4893,d0 +34b4894,7 +34b4895,de +34b4896,ec +34b4897,50 +34b48ac,6 +34b48ad,de +34b48ae,eb +34b48b0,d +34b48b1,b3 +34b48b2,7e +34b48b3,90 +34b48b4,5f +34b48b5,50 +34b48b6,b +34b48b7,d0 +34b48b8,5f +34b48b9,50 +34b48ba,b +34b48bb,e0 +34b48bc,d +34b48bd,b3 +34b48be,7e +34b48bf,e0 +34b48c0,6 +34b48c1,de +34b48c2,db +34b48c3,e0 +34b48c6,b +34b48c7,c0 +34b48c8,9 +34b48c9,74 +34b48ca,9e +34b48cb,70 +34b48cc,5 +34b48cd,de +34b48ce,d8 +34b48ed,e +34b48ee,c0 +34b48f1,e +34b48f2,c0 +34b4901,e +34b4902,c0 +34b4905,e +34b4906,c0 +34b4925,e +34b4926,c0 +34b4929,e +34b492a,c0 +34b4939,d +34b493a,d0 +34b493d,e +34b493e,c0 +34b4941,4f +34b4942,80 +34b4945,9d +34b495e,29 +34b495f,c8 +34b4961,7b +34b4962,ed +34b4963,93 +34b4964,8d +34b4965,da +34b4966,40 +34b4968,8d +34b4969,da +34b496a,40 +34b496d,7b +34b496e,ec +34b496f,93 +34b4972,29 +34b4973,c8 +34b4998,af +34b4999,ff +34b499a,ff +34b499b,f8 +34b49a4,af +34b49a5,ff +34b49a6,ff +34b49a7,f8 +34b49cc,ac +34b49cd,81 +34b49d0,4a +34b49d1,de +34b49d2,b6 +34b49d5,6 +34b49d6,ad +34b49d7,d6 +34b49d9,6 +34b49da,ad +34b49db,d6 +34b49dc,4a +34b49dd,de +34b49de,b6 +34b49e0,ac +34b49e1,81 +34b49fc,4 +34b49fd,be +34b49fe,ec +34b49ff,30 +34b4a00,9 +34b4a01,a4 +34b4a02,6e +34b4a03,a0 +34b4a06,1d +34b4a07,a0 +34b4a09,2 +34b4a0a,cd +34b4a0b,30 +34b4a0d,c +34b4a0e,c1 +34b4a11,e +34b4a12,90 +34b4a19,e +34b4a1a,90 +34b4a1d,e +34b4a1e,90 +34b4a34,1 +34b4a35,ae +34b4a36,ed +34b4a37,70 +34b4a38,c +34b4a39,d7 +34b4a3a,39 +34b4a3b,e4 +34b4a3c,7e +34b4a3d,20 +34b4a3f,c9 +34b4a40,ba +34b4a41,a +34b4a42,ee +34b4a43,ca +34b4a44,d7 +34b4a45,6e +34b4a46,64 +34b4a47,da +34b4a48,d6 +34b4a49,9c +34b4a4b,aa +34b4a4c,d7 +34b4a4d,6e +34b4a4e,64 +34b4a4f,da +34b4a50,ba +34b4a51,a +34b4a52,ee +34b4a53,ca +34b4a54,6e +34b4a55,40 +34b4a58,a +34b4a59,d8 +34b4a5a,30 +34b4a5d,8d +34b4a5e,ee +34b4a5f,90 +34b4a6d,3e +34b4a6e,d0 +34b4a71,9d +34b4a72,e6 +34b4a75,cb +34b4a76,cb +34b4a78,3 +34b4a79,e8 +34b4a7a,ad +34b4a7c,8 +34b4a7d,e2 +34b4a7e,6f +34b4a7f,60 +34b4a80,c +34b4a81,c0 +34b4a82,e +34b4a83,a0 +34b4a84,2e +34b4a85,ff +34b4a86,ff +34b4a87,d0 +34b4a88,8e +34b4a89,50 +34b4a8a,8 +34b4a8b,f5 +34b4a8c,cd +34b4a8e,1 +34b4a8f,ea +34b4aa4,e +34b4aa5,ff +34b4aa6,ec +34b4aa7,40 +34b4aa8,e +34b4aa9,90 +34b4aaa,5d +34b4aab,c0 +34b4aac,e +34b4aad,90 +34b4aae,a +34b4aaf,e0 +34b4ab0,e +34b4ab1,90 +34b4ab2,5d +34b4ab3,c0 +34b4ab4,e +34b4ab5,ff +34b4ab6,fd +34b4ab7,50 +34b4ab8,e +34b4ab9,90 +34b4aba,4b +34b4abb,d2 +34b4abc,e +34b4abd,90 +34b4abe,5 +34b4abf,f6 +34b4ac0,e +34b4ac1,90 +34b4ac2,4b +34b4ac3,e3 +34b4ac4,e +34b4ac5,ff +34b4ac6,ed +34b4ac7,80 +34b4add,9d +34b4ade,ed +34b4adf,80 +34b4ae0,8 +34b4ae1,e9 +34b4ae2,36 +34b4ae3,b0 +34b4ae4,d +34b4ae5,b0 +34b4ae8,3f +34b4ae9,90 +34b4aec,5f +34b4aed,70 +34b4af0,1e +34b4af1,90 +34b4af4,d +34b4af5,b0 +34b4af8,8 +34b4af9,e9 +34b4afa,47 +34b4afb,b0 +34b4afd,9d +34b4afe,ed +34b4aff,80 +34b4b14,5f +34b4b15,fe +34b4b16,d8 +34b4b18,5f +34b4b19,65 +34b4b1a,ae +34b4b1b,80 +34b4b1c,5f +34b4b1d,60 +34b4b1e,c +34b4b1f,d0 +34b4b20,5f +34b4b21,60 +34b4b22,9 +34b4b23,e0 +34b4b24,5f +34b4b25,60 +34b4b26,9 +34b4b27,f0 +34b4b28,5f +34b4b29,60 +34b4b2a,9 +34b4b2b,e0 +34b4b2c,5f +34b4b2d,60 +34b4b2e,c +34b4b2f,d0 +34b4b30,5f +34b4b31,65 +34b4b32,ae +34b4b33,80 +34b4b34,5f +34b4b35,fe +34b4b36,d8 +34b4b4c,d +34b4b4d,ff +34b4b4e,ff +34b4b4f,e0 +34b4b50,d +34b4b51,b0 +34b4b54,d +34b4b55,b0 +34b4b58,d +34b4b59,b0 +34b4b5c,d +34b4b5d,ff +34b4b5e,ff +34b4b5f,c0 +34b4b60,d +34b4b61,b0 +34b4b64,d +34b4b65,b0 +34b4b68,d +34b4b69,b0 +34b4b6c,d +34b4b6d,ff +34b4b6e,ff +34b4b6f,f0 +34b4b84,b +34b4b85,ff +34b4b86,ff +34b4b87,f4 +34b4b88,b +34b4b89,d0 +34b4b8c,b +34b4b8d,d0 +34b4b90,b +34b4b91,d0 +34b4b94,b +34b4b95,ff +34b4b96,ff +34b4b97,c0 +34b4b98,b +34b4b99,d0 +34b4b9c,b +34b4b9d,d0 +34b4ba0,b +34b4ba1,d0 +34b4ba4,b +34b4ba5,d0 +34b4bbc,1 +34b4bbd,ae +34b4bbe,ed +34b4bbf,60 +34b4bc0,b +34b4bc1,e7 +34b4bc2,38 +34b4bc3,a0 +34b4bc4,4e +34b4bc5,90 +34b4bc8,8f +34b4bc9,40 +34b4bcc,9f +34b4bcd,10 +34b4bce,bf +34b4bcf,f2 +34b4bd0,7f +34b4bd1,40 +34b4bd2,7 +34b4bd3,f2 +34b4bd4,4e +34b4bd5,90 +34b4bd6,7 +34b4bd7,f2 +34b4bd8,b +34b4bd9,e7 +34b4bda,39 +34b4bdb,f2 +34b4bdc,1 +34b4bdd,be +34b4bde,ed +34b4bdf,90 +34b4bf4,5f +34b4bf5,60 +34b4bf6,9 +34b4bf7,e0 +34b4bf8,5f +34b4bf9,60 +34b4bfa,9 +34b4bfb,e0 +34b4bfc,5f +34b4bfd,60 +34b4bfe,9 +34b4bff,e0 +34b4c00,5f +34b4c01,60 +34b4c02,9 +34b4c03,e0 +34b4c04,5f +34b4c05,ff +34b4c06,ff +34b4c07,e0 +34b4c08,5f +34b4c09,60 +34b4c0a,9 +34b4c0b,e0 +34b4c0c,5f +34b4c0d,60 +34b4c0e,9 +34b4c0f,e0 +34b4c10,5f +34b4c11,60 +34b4c12,9 +34b4c13,e0 +34b4c14,5f +34b4c15,60 +34b4c16,9 +34b4c17,e0 +34b4c2c,d +34b4c2d,ff +34b4c2e,ff +34b4c2f,b0 +34b4c31,d +34b4c32,b0 +34b4c35,d +34b4c36,b0 +34b4c39,d +34b4c3a,b0 +34b4c3d,d +34b4c3e,b0 +34b4c41,d +34b4c42,b0 +34b4c45,d +34b4c46,b0 +34b4c49,d +34b4c4a,b0 +34b4c4c,d +34b4c4d,ff +34b4c4e,ff +34b4c4f,b0 +34b4c65,cf +34b4c66,ff +34b4c67,40 +34b4c6a,7f +34b4c6b,40 +34b4c6e,7f +34b4c6f,40 +34b4c72,7f +34b4c73,40 +34b4c76,7f +34b4c77,40 +34b4c7a,7f +34b4c7b,30 +34b4c7c,75 +34b4c7e,9e +34b4c80,8d +34b4c81,64 +34b4c82,dc +34b4c84,2b +34b4c85,ee +34b4c86,c5 +34b4c9c,5f +34b4c9d,60 +34b4c9e,9 +34b4c9f,e7 +34b4ca0,5f +34b4ca1,60 +34b4ca2,9e +34b4ca3,70 +34b4ca4,5f +34b4ca5,69 +34b4ca6,e7 +34b4ca8,5f +34b4ca9,be +34b4caa,80 +34b4cac,5f +34b4cad,ed +34b4cae,b0 +34b4cb0,5f +34b4cb1,87 +34b4cb2,e8 +34b4cb4,5f +34b4cb5,60 +34b4cb6,ae +34b4cb7,40 +34b4cb8,5f +34b4cb9,60 +34b4cba,1d +34b4cbb,c0 +34b4cbc,5f +34b4cbd,60 +34b4cbe,6 +34b4cbf,ea +34b4cd4,c +34b4cd5,c0 +34b4cd8,c +34b4cd9,c0 +34b4cdc,c +34b4cdd,c0 +34b4ce0,c +34b4ce1,c0 +34b4ce4,c +34b4ce5,c0 +34b4ce8,c +34b4ce9,c0 +34b4cec,c +34b4ced,c0 +34b4cf0,c +34b4cf1,c0 +34b4cf4,c +34b4cf5,ff +34b4cf6,ff +34b4cf7,f7 +34b4d0c,af +34b4d0d,a0 +34b4d0e,c +34b4d0f,f8 +34b4d10,ae +34b4d11,d0 +34b4d12,2e +34b4d13,e8 +34b4d14,ad +34b4d15,d5 +34b4d16,9b +34b4d17,e8 +34b4d18,ad +34b4d19,aa +34b4d1a,c8 +34b4d1b,e8 +34b4d1c,ad +34b4d1d,5d +34b4d1e,e1 +34b4d1f,e8 +34b4d20,ad +34b4d21,d +34b4d22,b0 +34b4d23,e8 +34b4d24,ad +34b4d27,e8 +34b4d28,ad +34b4d2b,e8 +34b4d2c,ad +34b4d2f,e8 +34b4d44,5f +34b4d45,c0 +34b4d46,8 +34b4d47,e0 +34b4d48,5f +34b4d49,e6 +34b4d4a,8 +34b4d4b,e0 +34b4d4c,5f +34b4d4d,cb +34b4d4e,8 +34b4d4f,e0 +34b4d50,5f +34b4d51,7e +34b4d52,48 +34b4d53,e0 +34b4d54,5f +34b4d55,5c +34b4d56,a8 +34b4d57,e0 +34b4d58,5f +34b4d59,57 +34b4d5a,e8 +34b4d5b,e0 +34b4d5c,5f +34b4d5d,50 +34b4d5e,dc +34b4d5f,e0 +34b4d60,5f +34b4d61,50 +34b4d62,9e +34b4d63,e0 +34b4d64,5f +34b4d65,50 +34b4d66,2e +34b4d67,e0 +34b4d7c,4 +34b4d7d,ce +34b4d7e,eb +34b4d7f,20 +34b4d80,c +34b4d81,d5 +34b4d82,6e +34b4d83,a0 +34b4d84,3e +34b4d85,80 +34b4d86,a +34b4d87,e0 +34b4d88,7f +34b4d89,50 +34b4d8a,8 +34b4d8b,f2 +34b4d8c,7f +34b4d8d,40 +34b4d8e,8 +34b4d8f,f4 +34b4d90,7f +34b4d91,50 +34b4d92,8 +34b4d93,f2 +34b4d94,3e +34b4d95,80 +34b4d96,a +34b4d97,e0 +34b4d98,c +34b4d99,d5 +34b4d9a,6e +34b4d9b,b0 +34b4d9c,4 +34b4d9d,ce +34b4d9e,eb +34b4d9f,20 +34b4db4,d +34b4db5,ff +34b4db6,ed +34b4db7,60 +34b4db8,d +34b4db9,b0 +34b4dba,5c +34b4dbb,e2 +34b4dbc,d +34b4dbd,b0 +34b4dbe,6 +34b4dbf,f6 +34b4dc0,d +34b4dc1,b0 +34b4dc2,6 +34b4dc3,f6 +34b4dc4,d +34b4dc5,b0 +34b4dc6,5c +34b4dc7,e2 +34b4dc8,d +34b4dc9,ff +34b4dca,ed +34b4dcb,60 +34b4dcc,d +34b4dcd,b0 +34b4dd0,d +34b4dd1,b0 +34b4dd4,d +34b4dd5,b0 +34b4dec,4 +34b4ded,ce +34b4dee,eb +34b4def,20 +34b4df0,c +34b4df1,d5 +34b4df2,6e +34b4df3,a0 +34b4df4,3e +34b4df5,80 +34b4df6,a +34b4df7,e0 +34b4df8,7f +34b4df9,50 +34b4dfa,8 +34b4dfb,f2 +34b4dfc,7f +34b4dfd,40 +34b4dfe,8 +34b4dff,f4 +34b4e00,7f +34b4e01,50 +34b4e02,8 +34b4e03,f1 +34b4e04,3e +34b4e05,80 +34b4e06,a +34b4e07,d0 +34b4e08,c +34b4e09,d5 +34b4e0a,6e +34b4e0b,a0 +34b4e0c,4 +34b4e0d,ce +34b4e0e,fc +34b4e0f,20 +34b4e12,ae +34b4e13,50 +34b4e16,c +34b4e17,80 +34b4e24,5f +34b4e25,fe +34b4e26,eb +34b4e27,20 +34b4e28,5f +34b4e29,71 +34b4e2a,7e +34b4e2b,b0 +34b4e2c,5f +34b4e2d,70 +34b4e2e,c +34b4e2f,d0 +34b4e30,5f +34b4e31,71 +34b4e32,6e +34b4e33,a0 +34b4e34,5f +34b4e35,ff +34b4e36,ea +34b4e38,5f +34b4e39,72 +34b4e3a,ae +34b4e3b,40 +34b4e3c,5f +34b4e3d,70 +34b4e3e,d +34b4e3f,b0 +34b4e40,5f +34b4e41,70 +34b4e42,8 +34b4e43,e5 +34b4e44,5f +34b4e45,70 +34b4e47,db +34b4e5c,6 +34b4e5d,ce +34b4e5e,eb +34b4e5f,30 +34b4e60,d +34b4e61,c4 +34b4e62,5a +34b4e63,90 +34b4e64,4f +34b4e65,60 +34b4e68,e +34b4e69,c6 +34b4e6c,5 +34b4e6d,ce +34b4e6e,eb +34b4e6f,40 +34b4e72,6c +34b4e73,c0 +34b4e76,8 +34b4e77,e0 +34b4e78,c +34b4e79,73 +34b4e7a,5c +34b4e7b,d0 +34b4e7c,8 +34b4e7d,de +34b4e7e,ec +34b4e7f,50 +34b4e94,cf +34b4e95,ff +34b4e96,ff +34b4e97,fb +34b4e99,d +34b4e9a,b0 +34b4e9d,d +34b4e9e,b0 +34b4ea1,d +34b4ea2,b0 +34b4ea5,d +34b4ea6,b0 +34b4ea9,d +34b4eaa,b0 +34b4ead,d +34b4eae,b0 +34b4eb1,d +34b4eb2,b0 +34b4eb5,d +34b4eb6,b0 +34b4ecc,4f +34b4ecd,70 +34b4ece,9 +34b4ecf,e0 +34b4ed0,4f +34b4ed1,70 +34b4ed2,9 +34b4ed3,e0 +34b4ed4,4f +34b4ed5,70 +34b4ed6,9 +34b4ed7,e0 +34b4ed8,4f +34b4ed9,70 +34b4eda,9 +34b4edb,e0 +34b4edc,4f +34b4edd,70 +34b4ede,9 +34b4edf,e0 +34b4ee0,3f +34b4ee1,70 +34b4ee2,9 +34b4ee3,e0 +34b4ee4,2e +34b4ee5,70 +34b4ee6,a +34b4ee7,d0 +34b4ee8,d +34b4ee9,c4 +34b4eea,5d +34b4eeb,c0 +34b4eec,5 +34b4eed,ce +34b4eee,ec +34b4eef,40 +34b4f04,ad +34b4f06,3 +34b4f07,e8 +34b4f08,6f +34b4f09,50 +34b4f0a,8 +34b4f0b,e3 +34b4f0c,e +34b4f0d,90 +34b4f0e,b +34b4f0f,c0 +34b4f10,b +34b4f11,c0 +34b4f12,d +34b4f13,90 +34b4f14,8 +34b4f15,e1 +34b4f16,5e +34b4f17,40 +34b4f18,2 +34b4f19,e7 +34b4f1a,ad +34b4f1d,cb +34b4f1e,ca +34b4f21,9d +34b4f22,e6 +34b4f25,3e +34b4f26,d0 +34b4f3c,e8 +34b4f3f,ad +34b4f40,da +34b4f43,cb +34b4f44,cb +34b4f47,da +34b4f48,ac +34b4f49,e +34b4f4a,c0 +34b4f4b,e8 +34b4f4c,8d +34b4f4d,6d +34b4f4e,e1 +34b4f4f,e5 +34b4f50,6e +34b4f51,9b +34b4f52,d8 +34b4f53,e0 +34b4f54,1e +34b4f55,c8 +34b4f56,ac +34b4f57,d0 +34b4f58,d +34b4f59,e3 +34b4f5a,7e +34b4f5b,c0 +34b4f5c,c +34b4f5d,d0 +34b4f5e,e +34b4f5f,a0 +34b4f74,6e +34b4f75,70 +34b4f76,7 +34b4f77,e7 +34b4f78,a +34b4f79,d2 +34b4f7a,1d +34b4f7b,b0 +34b4f7c,2 +34b4f7d,da +34b4f7e,ad +34b4f7f,20 +34b4f81,7e +34b4f82,e7 +34b4f85,3e +34b4f86,e2 +34b4f89,bd +34b4f8a,da +34b4f8c,7 +34b4f8d,e6 +34b4f8e,7e +34b4f8f,60 +34b4f90,3e +34b4f91,a0 +34b4f92,b +34b4f93,d0 +34b4f94,bd +34b4f95,20 +34b4f96,4 +34b4f97,e9 +34b4fac,ae +34b4fad,20 +34b4fae,5 +34b4faf,e8 +34b4fb0,2d +34b4fb1,a0 +34b4fb2,c +34b4fb3,c0 +34b4fb4,7 +34b4fb5,e5 +34b4fb6,7e +34b4fb7,50 +34b4fb9,cc +34b4fba,da +34b4fbd,4e +34b4fbe,d2 +34b4fc1,d +34b4fc2,b0 +34b4fc5,d +34b4fc6,b0 +34b4fc9,d +34b4fca,b0 +34b4fcd,d +34b4fce,b0 +34b4fe4,e +34b4fe5,ff +34b4fe6,ff +34b4fe7,f8 +34b4fea,b +34b4feb,d3 +34b4fee,7e +34b4fef,70 +34b4ff1,3 +34b4ff2,ea +34b4ff5,b +34b4ff6,d1 +34b4ff9,8e +34b4ffa,50 +34b4ffc,4 +34b4ffd,e9 +34b5000,c +34b5001,c0 +34b5004,1f +34b5005,ff +34b5006,ff +34b5007,fa +34b5015,4f +34b5016,fc +34b5019,4f +34b501a,50 +34b501d,4f +34b501e,50 +34b5021,4f +34b5022,50 +34b5025,4f +34b5026,50 +34b5029,4f +34b502a,50 +34b502d,4f +34b502e,50 +34b5031,4f +34b5032,50 +34b5035,4f +34b5036,50 +34b5039,4f +34b503a,50 +34b503d,4f +34b503e,50 +34b5041,4f +34b5042,fc +34b5054,6e +34b5055,50 +34b5058,c +34b5059,b0 +34b505c,7 +34b505d,e3 +34b5061,da +34b5065,9e +34b5066,20 +34b5069,1e +34b506a,90 +34b506d,a +34b506e,d0 +34b5071,3 +34b5072,e8 +34b5076,bc +34b507a,4e +34b507b,60 +34b507e,b +34b507f,c0 +34b5085,df +34b5086,e0 +34b5089,8 +34b508a,e0 +34b508d,8 +34b508e,e0 +34b5091,8 +34b5092,e0 +34b5095,8 +34b5096,e0 +34b5099,8 +34b509a,e0 +34b509d,8 +34b509e,e0 +34b50a1,8 +34b50a2,e0 +34b50a5,8 +34b50a6,e0 +34b50a9,8 +34b50aa,e0 +34b50ad,8 +34b50ae,e0 +34b50b1,df +34b50b2,e0 +34b50c5,5e +34b50c6,d2 +34b50c9,dc +34b50ca,db +34b50cc,a +34b50cd,d2 +34b50ce,5e +34b50cf,80 +34b50d0,7e +34b50d1,50 +34b50d2,7 +34b50d3,e5 +34b5128,ff +34b5129,ff +34b512a,ff +34b512b,fd +34b5130,2 +34b5131,ca +34b5135,2c +34b5136,90 +34b5174,5 +34b5175,ce +34b5176,eb +34b5177,10 +34b5178,b +34b5179,93 +34b517a,6d +34b517b,a0 +34b517e,b +34b517f,c0 +34b5180,8 +34b5181,de +34b5182,ff +34b5183,c0 +34b5184,3e +34b5185,93 +34b5186,b +34b5187,d0 +34b5188,4f +34b5189,82 +34b518a,7e +34b518b,d0 +34b518c,a +34b518d,ee +34b518e,db +34b518f,d0 +34b519c,d +34b519d,90 +34b51a0,d +34b51a1,90 +34b51a4,d +34b51a5,90 +34b51a8,d +34b51a9,90 +34b51ac,d +34b51ad,bd +34b51ae,ec +34b51af,40 +34b51b0,d +34b51b1,e6 +34b51b2,5d +34b51b3,c0 +34b51b4,d +34b51b5,b0 +34b51b6,8 +34b51b7,e0 +34b51b8,d +34b51b9,a0 +34b51ba,7 +34b51bb,f2 +34b51bc,d +34b51bd,b0 +34b51be,8 +34b51bf,e0 +34b51c0,d +34b51c1,e6 +34b51c2,4d +34b51c3,b0 +34b51c4,d +34b51c5,bd +34b51c6,ec +34b51c7,40 +34b51e5,8d +34b51e6,ed +34b51e7,70 +34b51e8,7 +34b51e9,e9 +34b51ea,36 +34b51eb,a0 +34b51ec,c +34b51ed,c0 +34b51f0,d +34b51f1,b0 +34b51f4,c +34b51f5,c0 +34b51f8,7 +34b51f9,e9 +34b51fa,36 +34b51fb,a0 +34b51fd,8d +34b51fe,ed +34b51ff,70 +34b520e,b +34b520f,c0 +34b5212,b +34b5213,c0 +34b5216,b +34b5217,c0 +34b521a,b +34b521b,c0 +34b521c,5 +34b521d,de +34b521e,dc +34b521f,c0 +34b5220,d +34b5221,c4 +34b5222,8e +34b5223,c0 +34b5224,5f +34b5225,60 +34b5226,c +34b5227,c0 +34b5228,7f +34b5229,30 +34b522a,b +34b522b,c0 +34b522c,5f +34b522d,60 +34b522e,c +34b522f,c0 +34b5230,d +34b5231,c4 +34b5232,8e +34b5233,c0 +34b5234,5 +34b5235,de +34b5236,dc +34b5237,c0 +34b5254,3 +34b5255,be +34b5256,ec +34b5257,30 +34b5258,c +34b5259,d5 +34b525a,4c +34b525b,c0 +34b525c,4f +34b525d,60 +34b525e,7 +34b525f,e0 +34b5260,6f +34b5261,ff +34b5262,ff +34b5263,f3 +34b5264,4f +34b5265,50 +34b5268,c +34b5269,c5 +34b526a,38 +34b526b,c0 +34b526c,3 +34b526d,be +34b526e,ec +34b526f,60 +34b527d,5 +34b527e,de +34b527f,d0 +34b5281,c +34b5282,b2 +34b5285,d +34b5286,90 +34b5289,e +34b528a,80 +34b528c,d +34b528d,ff +34b528e,ff +34b528f,d0 +34b5291,e +34b5292,80 +34b5295,e +34b5296,80 +34b5299,e +34b529a,80 +34b529d,e +34b529e,80 +34b52a1,e +34b52a2,80 +34b52a5,e +34b52a6,80 +34b52c4,5 +34b52c5,de +34b52c6,dc +34b52c7,c0 +34b52c8,d +34b52c9,c4 +34b52ca,8e +34b52cb,c0 +34b52cc,5f +34b52cd,60 +34b52ce,c +34b52cf,c0 +34b52d0,7f +34b52d1,30 +34b52d2,b +34b52d3,c0 +34b52d4,5f +34b52d5,60 +34b52d6,c +34b52d7,c0 +34b52d8,d +34b52d9,c4 +34b52da,8e +34b52db,c0 +34b52dc,5 +34b52dd,de +34b52de,dc +34b52df,b0 +34b52e2,c +34b52e3,a0 +34b52e4,9 +34b52e5,94 +34b52e6,7e +34b52e7,60 +34b52e8,4 +34b52e9,ce +34b52ea,e9 +34b52ec,d +34b52ed,a0 +34b52f0,d +34b52f1,a0 +34b52f4,d +34b52f5,a0 +34b52f8,d +34b52f9,a0 +34b52fc,d +34b52fd,bd +34b52fe,ed +34b52ff,40 +34b5300,d +34b5301,e6 +34b5302,5d +34b5303,a0 +34b5304,d +34b5305,b0 +34b5306,b +34b5307,c0 +34b5308,d +34b5309,a0 +34b530a,b +34b530b,c0 +34b530c,d +34b530d,a0 +34b530e,b +34b530f,c0 +34b5310,d +34b5311,a0 +34b5312,b +34b5313,c0 +34b5314,d +34b5315,a0 +34b5316,b +34b5317,c0 +34b5325,b +34b5326,c0 +34b5334,9 +34b5335,ff +34b5336,c0 +34b5339,b +34b533a,c0 +34b533d,b +34b533e,c0 +34b5341,b +34b5342,c0 +34b5345,b +34b5346,c0 +34b5349,b +34b534a,c0 +34b534c,e +34b534d,ff +34b534e,ff +34b534f,e0 +34b535d,7 +34b535e,e0 +34b536c,7 +34b536d,ff +34b536e,e0 +34b5371,7 +34b5372,e0 +34b5375,7 +34b5376,e0 +34b5379,7 +34b537a,e0 +34b537d,7 +34b537e,e0 +34b5381,7 +34b5382,e0 +34b5385,7 +34b5386,e0 +34b5389,7 +34b538a,e0 +34b538d,1b +34b538e,d0 +34b5390,d +34b5391,fe +34b5392,70 +34b5394,b +34b5395,c0 +34b5398,b +34b5399,c0 +34b539c,b +34b539d,c0 +34b53a0,b +34b53a1,c0 +34b53a4,b +34b53a5,c0 +34b53a6,3d +34b53a7,c2 +34b53a8,b +34b53a9,c3 +34b53aa,db +34b53ac,b +34b53ad,dd +34b53ae,c0 +34b53b0,b +34b53b1,fc +34b53b2,e5 +34b53b4,b +34b53b5,d0 +34b53b6,cd +34b53b7,10 +34b53b8,b +34b53b9,c0 +34b53ba,3d +34b53bb,b0 +34b53bc,b +34b53bd,c0 +34b53be,7 +34b53bf,e8 +34b53cc,e +34b53cd,ff +34b53ce,40 +34b53d1,5f +34b53d2,40 +34b53d5,5f +34b53d6,40 +34b53d9,5f +34b53da,40 +34b53dd,5f +34b53de,40 +34b53e1,5f +34b53e2,40 +34b53e5,5f +34b53e6,40 +34b53e9,5f +34b53ea,40 +34b53ed,4f +34b53ee,50 +34b53f1,e +34b53f2,a0 +34b53f5,8 +34b53f6,ef +34b53f7,b0 +34b5414,8d +34b5415,dd +34b5416,ae +34b5417,c0 +34b5418,8e +34b5419,4d +34b541a,c5 +34b541b,e4 +34b541c,8d +34b541d,c +34b541e,b0 +34b541f,e6 +34b5420,8d +34b5421,b +34b5422,a0 +34b5423,e7 +34b5424,8d +34b5425,b +34b5426,a0 +34b5427,e7 +34b5428,8d +34b5429,b +34b542a,a0 +34b542b,e7 +34b542c,8d +34b542d,b +34b542e,a0 +34b542f,e7 +34b544c,d +34b544d,bd +34b544e,ed +34b544f,40 +34b5450,d +34b5451,e6 +34b5452,5d +34b5453,a0 +34b5454,d +34b5455,b0 +34b5456,b +34b5457,c0 +34b5458,d +34b5459,a0 +34b545a,b +34b545b,c0 +34b545c,d +34b545d,a0 +34b545e,b +34b545f,c0 +34b5460,d +34b5461,a0 +34b5462,b +34b5463,c0 +34b5464,d +34b5465,a0 +34b5466,b +34b5467,c0 +34b5484,4 +34b5485,ce +34b5486,eb +34b5487,20 +34b5488,c +34b5489,d5 +34b548a,6d +34b548b,a0 +34b548c,1e +34b548d,70 +34b548e,a +34b548f,d0 +34b5490,5f +34b5491,60 +34b5492,8 +34b5493,e0 +34b5494,1e +34b5495,70 +34b5496,a +34b5497,d0 +34b5498,c +34b5499,d4 +34b549a,6d +34b549b,b0 +34b549c,4 +34b549d,ce +34b549e,eb +34b549f,20 +34b54bc,d +34b54bd,bd +34b54be,ec +34b54bf,30 +34b54c0,d +34b54c1,e6 +34b54c2,5d +34b54c3,b0 +34b54c4,d +34b54c5,b0 +34b54c6,9 +34b54c7,e0 +34b54c8,d +34b54c9,a0 +34b54ca,7 +34b54cb,e0 +34b54cc,d +34b54cd,b0 +34b54ce,8 +34b54cf,e0 +34b54d0,d +34b54d1,e6 +34b54d2,5d +34b54d3,b0 +34b54d4,d +34b54d5,be +34b54d6,ec +34b54d7,40 +34b54d8,d +34b54d9,90 +34b54dc,d +34b54dd,90 +34b54e0,d +34b54e1,90 +34b54f4,4 +34b54f5,ce +34b54f6,dc +34b54f7,c0 +34b54f8,c +34b54f9,c4 +34b54fa,7e +34b54fb,c0 +34b54fc,1e +34b54fd,70 +34b54fe,c +34b54ff,c0 +34b5500,5f +34b5501,60 +34b5502,b +34b5503,c0 +34b5504,2e +34b5505,70 +34b5506,c +34b5507,c0 +34b5508,c +34b5509,c4 +34b550a,7e +34b550b,c0 +34b550c,5 +34b550d,ce +34b550e,db +34b550f,c0 +34b5512,a +34b5513,c0 +34b5516,a +34b5517,c0 +34b551a,a +34b551b,c0 +34b552d,cc +34b552e,de +34b552f,f9 +34b5531,ce +34b5532,83 +34b5535,cb +34b5539,ca +34b553d,ca +34b5541,ca +34b5545,ca +34b5564,4 +34b5565,ce +34b5566,ea +34b5567,10 +34b5568,b +34b5569,d4 +34b556a,5b +34b556b,60 +34b556c,b +34b556d,d4 +34b5570,3 +34b5571,bd +34b5572,db +34b5573,20 +34b5576,4d +34b5577,a0 +34b5578,b +34b5579,94 +34b557a,5e +34b557b,a0 +34b557c,5 +34b557d,ce +34b557e,eb +34b557f,20 +34b5595,8e +34b5599,8e +34b559c,6f +34b559d,ff +34b559e,ff +34b559f,b0 +34b55a1,8e +34b55a5,8e +34b55a9,8e +34b55ad,8e +34b55b1,6e +34b55b2,70 +34b55b5,b +34b55b6,ef +34b55b7,b0 +34b55d4,d +34b55d5,a0 +34b55d6,b +34b55d7,c0 +34b55d8,d +34b55d9,a0 +34b55da,b +34b55db,c0 +34b55dc,d +34b55dd,a0 +34b55de,b +34b55df,c0 +34b55e0,d +34b55e1,a0 +34b55e2,b +34b55e3,c0 +34b55e4,d +34b55e5,a0 +34b55e6,b +34b55e7,c0 +34b55e8,b +34b55e9,d4 +34b55ea,7e +34b55eb,c0 +34b55ec,5 +34b55ed,de +34b55ee,db +34b55ef,c0 +34b560c,6e +34b560d,30 +34b560e,7 +34b560f,e3 +34b5610,d +34b5611,90 +34b5612,b +34b5613,c0 +34b5614,a +34b5615,d0 +34b5616,1e +34b5617,80 +34b5618,5 +34b5619,e4 +34b561a,8e +34b561b,20 +34b561d,da +34b561e,cb +34b5621,9d +34b5622,e7 +34b5625,3e +34b5626,e0 +34b5644,e8 +34b5647,ac +34b5648,ca +34b564b,ca +34b564c,ac +34b564d,d +34b564e,b0 +34b564f,e7 +34b5650,6e +34b5651,3d +34b5652,d5 +34b5653,e2 +34b5654,e +34b5655,ab +34b5656,ca +34b5657,d0 +34b5658,c +34b5659,e7 +34b565a,9e +34b565b,b0 +34b565c,a +34b565d,e1 +34b565e,5f +34b565f,80 +34b567c,3d +34b567d,a0 +34b567e,b +34b567f,c0 +34b5680,6 +34b5681,e6 +34b5682,9e +34b5683,40 +34b5685,9e +34b5686,e7 +34b5689,2e +34b568a,d0 +34b568d,cc +34b568e,da +34b5690,9 +34b5691,e4 +34b5692,6e +34b5693,70 +34b5694,6e +34b5695,70 +34b5696,9 +34b5697,e4 +34b56b4,6e +34b56b5,50 +34b56b6,5 +34b56b7,e5 +34b56b8,d +34b56b9,a0 +34b56ba,b +34b56bb,d0 +34b56bc,9 +34b56bd,e0 +34b56be,e +34b56bf,90 +34b56c0,3 +34b56c1,e7 +34b56c2,8e +34b56c3,30 +34b56c5,cc +34b56c6,cc +34b56c9,7e +34b56ca,e7 +34b56cd,d +34b56ce,e0 +34b56d1,d +34b56d2,a0 +34b56d5,8e +34b56d6,50 +34b56d8,d +34b56d9,ea +34b56ec,b +34b56ed,ff +34b56ee,ff +34b56ef,c0 +34b56f2,5e +34b56f3,70 +34b56f5,3 +34b56f6,d9 +34b56f9,c +34b56fa,b0 +34b56fd,bd +34b56fe,20 +34b5700,9 +34b5701,e4 +34b5704,d +34b5705,ff +34b5706,ff +34b5707,c0 +34b5715,6 +34b5716,de +34b5717,a0 +34b5719,b +34b571a,d3 +34b571d,c +34b571e,b0 +34b5721,c +34b5722,b0 +34b5725,5e +34b5726,a0 +34b5728,b +34b5729,fd +34b572a,20 +34b572d,7e +34b572e,90 +34b5731,d +34b5732,b0 +34b5735,c +34b5736,b0 +34b5739,c +34b573a,b0 +34b573d,b +34b573e,d4 +34b5741,5 +34b5742,de +34b5743,a0 +34b574d,c +34b574e,a0 +34b5751,c +34b5752,a0 +34b5755,c +34b5756,a0 +34b5759,c +34b575a,a0 +34b575d,c +34b575e,a0 +34b5761,c +34b5762,a0 +34b5765,c +34b5766,a0 +34b5769,c +34b576a,a0 +34b576d,c +34b576e,a0 +34b5771,c +34b5772,a0 +34b5775,c +34b5776,a0 +34b5779,c +34b577a,a0 +34b577d,c +34b577e,a0 +34b5784,b +34b5785,ed +34b5786,30 +34b5789,4e +34b578a,90 +34b578d,d +34b578e,a0 +34b5791,c +34b5792,a0 +34b5795,b +34b5796,c4 +34b5799,5 +34b579a,ef +34b579b,a0 +34b579d,b +34b579e,d5 +34b57a1,c +34b57a2,b0 +34b57a5,d +34b57a6,a0 +34b57a9,d +34b57aa,a0 +34b57ad,5e +34b57ae,80 +34b57b0,b +34b57b1,ec +34b57b2,20 +34b57d4,5d +34b57d5,ed +34b57d6,83 +34b57d7,a7 +34b57d8,98 +34b57d9,38 +34b57da,de +34b57db,c3 diff --git a/data/symbols.json b/data/symbols.json new file mode 100644 index 000000000..28bb6c136 --- /dev/null +++ b/data/symbols.json @@ -0,0 +1,34 @@ +{ + "ADULT_INIT_ITEMS": "8040357C", + "ADULT_VALID_ITEMS": "80403588", + "C_HEAP": "80500000", + "DUMMY_ACTOR": "80480000", + "EXTENDED_ITEM_DATA": "80402008", + "FAIRY_ITEMS": "80401C03", + "FAIRY_OCARINA_ITEM": "80401C02", + "FONT_TEXTURE": "8040632C", + "GET_ITEMTABLE": "803A9E7E", + "GLOBAL_CONTEXT": "801C84A0", + "INITIAL_SAVE_DATA": "80401800", + "ITEM_OVERRIDES": "80401000", + "ITEM_TABLE": "80402050", + "LIGHT_ARROW_ITEM": "80401C01", + "PENDING_SPECIAL_ITEM": "80402018", + "PENDING_SPECIAL_ITEM_END": "8040201B", + "PLAYER_ACTOR": "801DAA30", + "PLAYER_ID": "80401C00", + "PLAYER_OVERRIDE_DATA": "80402000", + "SAVE_CONTEXT": "8011A5D0", + "TIME_TRAVEL_SAVED_EQUIPS": "8040201C", + "dungeon_count": "8040630C", + "dungeon_is_mq": "8040623C", + "dungeons": "80406270", + "font_sprite": "804061FC", + "heap_next": "80406310", + "medal_colors": "8040625C", + "medals_sprite": "8040621C", + "quest_items_sprite": "8040620C", + "rewards": "8040624C", + "setup_db": "8040631C", + "stones_sprite": "8040622C" +} \ No newline at end of file From cf13d2a1306aef102d9e1d10aab092a6766ba37d Mon Sep 17 00:00:00 2001 From: Nick Langille Date: Sun, 16 Sep 2018 04:20:29 -0400 Subject: [PATCH 505/755] Fix pj64 debug symbol output --- ASM/scripts/build.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ASM/scripts/build.py b/ASM/scripts/build.py index 860b9ce62..f2330634f 100644 --- a/ASM/scripts/build.py +++ b/ASM/scripts/build.py @@ -87,7 +87,7 @@ with open(pj64_sym_path, 'w') as f: key = lambda pair: pair[1]['address'] for sym_name, sym in sorted(symbols.items(), key=key): - f.write('{0},{1},{2}\n'.format(sym['address'], sym_name, sym['type'])) + f.write('{0},{1},{2}\n'.format(sym['address'], sym['type'], sym_name)) # Diff ROMs From 004ebbfc74ecba6e91f69b89c587c68d04b8e755 Mon Sep 17 00:00:00 2001 From: Nick Langille Date: Sun, 16 Sep 2018 04:21:43 -0400 Subject: [PATCH 506/755] Update rom patch format --- Patches.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/Patches.py b/Patches.py index 47fe802b2..5ea3abc2a 100644 --- a/Patches.py +++ b/Patches.py @@ -67,12 +67,10 @@ def get_navi_color_options(): return ["Random Choice", "Completely Random"] + get_navi_colors() def patch_rom(world, rom): - with open(local_path('data/base2current.json'), 'r') as stream: - patches = json.load(stream) - for patch in patches: - if isinstance(patch, dict): - for baseaddress, values in patch.items(): - rom.write_bytes(int(baseaddress), values) + with open(local_path('data/rom_patch.txt'), 'r') as stream: + for line in stream: + address, value = [int(x, 16) for x in line.split(',')] + rom.write_byte(address, value) # Can always return to youth rom.write_byte(0xCB6844, 0x35) @@ -1940,4 +1938,4 @@ def disable_music(rom): blank_track = rom.read_bytes(0xB89AE0 + (0 * 0x10), 0x10) for bgm in bgm_sequence_ids: rom.write_bytes(0xB89AE0 + (bgm[1] * 0x10), blank_track) - \ No newline at end of file + From 6697e90670c89de0426716d07eee7f6f67a4b3bf Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 16 Sep 2018 06:30:30 -0400 Subject: [PATCH 507/755] Added colors to hints --- HintList.py | 86 ++++++++++++++++++++++++++--------------------------- Hints.py | 73 +++++++++++++++++++++++++++++++++++---------- TextBox.py | 13 +++++++- version.py | 2 +- 4 files changed, 113 insertions(+), 61 deletions(-) diff --git a/HintList.py b/HintList.py index 27d0c3250..5e7a47d77 100644 --- a/HintList.py +++ b/HintList.py @@ -150,49 +150,49 @@ def getHintGroup(group, world): 'Deku Nuts (10)': (["lots-o-nuts", "plenty of flashbangs", "plenty of Sheik's ammo"], "plenty of Deku Nuts", 'item'), 'Gold Skulltulla Token': (["proof of destruction", "an arachnid chip", "spider remains"], "a Golden Token", 'item'), - '10 Big Poes': (["They say that Big Poes leads to", "They say that ghost hunters will be rewarded with"], None, 'alwaysLocation'), - 'Deku Theater Mask of Truth': ("They say that the Mask of Truth yields", None, 'alwaysLocation'), - '30 Gold Skulltulla Reward': ("They say that slaying 30 Gold Skulltulas reveals", None, 'alwaysLocation'), - '40 Gold Skulltulla Reward': ("They say that slaying 40 Gold Skulltulas reveals", None, 'alwaysLocation'), - '50 Gold Skulltulla Reward': ("They say that slaying 50 Gold Skulltulas reveals", None, 'alwaysLocation'), - 'Song from Ocarina of Time': ("They say the Ocarina of Time teaches", None, 'alwaysLocation'), - 'Biggoron': ("They say that Biggoron crafts", None, 'alwaysLocation'), - 'Child Fishing': ("They say that fishing in youth bestows", None, 'location'), - 'Adult Fishing': ("They say that fishing in maturity bestows", None, 'location'), - '20 Gold Skulltulla Reward': ("They say that slaying 20 Gold Skulltulas reveals", None, 'location'), - 'Treasure Chest Game': (["They say that gambling grants", "They say there is a 1/32 chance to win"], "They say that the treasure chest game grants", 'location'), - 'Darunias Joy': ("They say that Darunia's dance leads to", None, 'location'), - 'Frog Ocarina Game': (["They say The Frogs of Zora River hold", "They say that the musical amphibians have found"], None, 'location'), - 'Horseback Archery 1500 Points': ("They say that mastery of horseback archery grants", "They say that 1500 in horseback archery grants", 'location'), - 'Lake Hylia Sun': (["They say staring into the sun grants", "They say that acts of solar aggression are punished with"], "They say that shooting the sun grants", 'location'), - 'Heart Piece Grave Chest': ("They say that in a grave the Sun's Song spawns", None, 'location'), - 'Goron City Leftmost Maze Chest': ("They say in Goron City the hammer unlocks", None, 'location'), - 'Chest Above King Dodongo': ("They say that the chest above the Infernal Dinosaur contains", "They say that the chest above King Dodongo contains", 'location'), - 'Forest Temple Floormaster Chest': ("Deep in the forest, shadows guard a chest containing", "They say that a Floormaster in Forest Temple guards", 'location'), - 'Fire Temple Scarecrow Chest': ("They say high in the Fire Temple, Pierre hid", None, 'location'), - 'Fire Temple Megaton Hammer Chest': ("They say high in the Fire Temple, Fire Dancers hid", None, 'location'), - 'Water Temple River Chest': ("They say deep under the lake, beyond the currents, hides", "The say that the Water Temple River Chest holds", 'location'), - 'Water Temple Boss Key Chest': ("Deep under the lake, the gilded chest contains", "The say that the Water Temple Gold Chest holds", 'location'), - 'Gerudo Training Grounds Underwater Silver Rupee Chest': ("They say those who seek sunken silver rupees will find", None, 'location'), - 'Gerudo Training Grounds Maze Path Final Chest': ("They say that past all the locked doors is", None, 'location'), - 'Bottom of the Well Defeat Boss': (["They say that Dead Hand holds", "They say that draining the water reveals a monster guarding"], None, 'location'), - 'Silver Gauntlets Chest': ("They say that upon the Colossus's right hand is", "They say that upon the Colossus's child hand is", 'location'), - 'Mirror Shield Chest': ("They say that upon the Colossus's left hand is", "They say that upon the Colossus's adult hand is", 'location'), - 'Shadow Temple Hidden Floormaster Chest': (["They say that shadows in an invisible maze guard", "They say that after a free boat ride comes"], "They say that a Floormaster in Shadow Temple guards", 'location'), - 'Haunted Wasteland Structure Chest': (["They say that deep in the Wasteland is", "They say that beneath the sands lies"], None, 'location'), - 'Composer Grave Chest': (["They say that in the Composers' Grave, darkness hides", "They say that the Composer Brothers hid"], None, 'location'), - 'Song from Composer Grave': (["They say that in the Composers' Grave, Redead guard", "They say that the Composer Brothers wrote"], None, 'location'), - 'Song at Windmill': (["They say the windmill echoes with", "They say that Guru-guru is driven mad by"], None, 'location'), - 'Sheik Forest Song': ("They say that deep in the forest Sheik teaches", None, 'location'), - 'Sheik at Temple': ("They say that Sheik waits at a monument to time to teach", None, 'location'), - 'Sheik in Crater': ("They say that the crater's melody is", None, 'location'), - 'Sheik in Ice Cavern': ("They say that the frozen cavern echoes with", None, 'location'), - 'Sheik in Kakariko': ("They say that a ravaged village mourns with", None, 'location'), - 'Sheik at Colossus': ("They say that a hero ventures beyond the Wasteland to learn", None, 'location'), - 'Zoras Fountain Bottom Freestanding PoH': ("They say under the icy waters lies", None, 'location'), - 'Colossus Freestanding PoH': ("They say that riding a beanstalk in the desert leads to", None, 'location'), - 'DM Crater Volcano Freestanding PoH': ("They say that riding a beanstalk in the crater leads to", None, 'location'), - 'Goron City Pot Freestanding PoH': ("They say that spinning Goron pottery contains", None, 'location'), + '10 Big Poes': (["#Big Poes# leads to", "#ghost hunters# will be rewarded with"], None, 'alwaysLocation'), + 'Deku Theater Mask of Truth': ("the #Mask of Truth# yields", None, 'alwaysLocation'), + '20 Gold Skulltulla Reward': ("slaying #20 Gold Skulltulas# reveals", None, 'location'), + '30 Gold Skulltulla Reward': ("slaying #30 Gold Skulltulas# reveals", None, 'alwaysLocation'), + '40 Gold Skulltulla Reward': ("slaying #40 Gold Skulltulas# reveals", None, 'alwaysLocation'), + '50 Gold Skulltulla Reward': ("slaying #50 Gold Skulltulas# reveals", None, 'alwaysLocation'), + 'Song from Ocarina of Time': ("the #Ocarina of Time# teaches", None, 'alwaysLocation'), + 'Biggoron': ("#Biggoron# crafts", None, 'alwaysLocation'), + 'Child Fishing': ("#fishing in youth# bestows", None, 'location'), + 'Adult Fishing': ("#fishing in maturity# bestows", None, 'location'), + 'Treasure Chest Game': (["#gambling# grants", "there is a #1/32 chance# to win"], "the #treasure chest game# grants", 'location'), + 'Darunias Joy': ("#Darunia's dance# leads to", None, 'location'), + 'Frog Ocarina Game': (["The #Frogs of Zora River# hold", "the #musical amphibians# have found"], None, 'location'), + 'Horseback Archery 1500 Points': ("mastery of #horseback archery# grants", "1500 in #horseback archery# grants", 'location'), + 'Lake Hylia Sun': (["staring into #the sun# grants", "acts of #solar aggression# are punished with"], "shooting #the sun# grants", 'location'), + 'Heart Piece Grave Chest': ("in a grave playing #Sun's Song# spawns", None, 'location'), + 'Goron City Leftmost Maze Chest': ("in #Goron City# the hammer unlocks", None, 'location'), + 'Chest Above King Dodongo': ("the chest above the #Infernal Dinosaur# contains", "the chest above #King Dodongo# contains", 'location'), + 'Forest Temple Floormaster Chest': ("#Deep in the forest#, shadows guard a chest containing", "a Floormaster in #Forest Temple# guards", 'location'), + 'Fire Temple Scarecrow Chest': ("high in the #Fire Temple#, Pierre hid", None, 'location'), + 'Fire Temple Megaton Hammer Chest': ("high in the #Fire Temple#, Fire Dancers hid", None, 'location'), + 'Water Temple River Chest': ("#deep under the lake#, beyond the currents, hides", "the #Water Temple River Chest# holds", 'location'), + 'Water Temple Boss Key Chest': ("#deep under the lake#, the gilded chest contains", "the #Water Temple Gold Chest# holds", 'location'), + 'Gerudo Training Grounds Underwater Silver Rupee Chest': ("those who seek #sunken silver rupees# will find", None, 'location'), + 'Gerudo Training Grounds Maze Path Final Chest': ("past #all the locked doors# is", None, 'location'), + 'Bottom of the Well Defeat Boss': (["#Dead Hand# holds", "draining the water reveals #a monster# guarding"], None, 'location'), + 'Silver Gauntlets Chest': ("upon the #Colossus's right hand# is", "upon the #Colossus's child hand# is", 'location'), + 'Mirror Shield Chest': ("upon the #Colossus's left hand# is", "upon the #Colossus's adult hand# is", 'location'), + 'Shadow Temple Hidden Floormaster Chest': (["shadows in an #invisible maze# guard", "after a free #boat ride# comes"], "a Floormaster in #Shadow Temple# guards", 'location'), + 'Haunted Wasteland Structure Chest': (["deep in the #Wasteland# is", "beneath #the sands# lies"], None, 'location'), + 'Composer Grave Chest': (["in the #Composers' Grave#, darkness hides", "the #Composer Brothers# hid"], None, 'location'), + 'Song from Composer Grave': (["in the #Composers' Grave#, Redead guard", "the #Composer Brothers# wrote"], None, 'location'), + 'Song at Windmill': (["#the windmill# echoes with", "#Guru-guru# is driven mad by"], None, 'location'), + 'Sheik Forest Song': ("#deep in the forest# Sheik teaches", None, 'location'), + 'Sheik at Temple': ("Sheik waits at a #monument to time# to teach", None, 'location'), + 'Sheik in Crater': ("the #crater's melody# is", None, 'location'), + 'Sheik in Ice Cavern': ("the #frozen cavern# echoes with", None, 'location'), + 'Sheik in Kakariko': ("a #ravaged village# mourns with", None, 'location'), + 'Sheik at Colossus': ("a hero ventures beyond #the Wasteland# to learn", None, 'location'), + 'Zoras Fountain Bottom Freestanding PoH': ("under the #icy waters# lies", None, 'location'), + 'Colossus Freestanding PoH': ("riding a #beanstalk in the desert# leads to", None, 'location'), + 'DM Crater Volcano Freestanding PoH': ("riding a #beanstalk in the crater# leads to", None, 'location'), + 'Goron City Pot Freestanding PoH': ("spinning #Goron pottery# contains", None, 'location'), '1001': ("Ganondorf 2020!", None, 'junkHint'), '1002': ("They say that monarchy is a terrible system of governance.", None, 'junkHint'), diff --git a/Hints.py b/Hints.py index b2d20bec9..eb3c2a13b 100644 --- a/Hints.py +++ b/Hints.py @@ -46,6 +46,47 @@ def filterTrailingSpace(text): else: return text +def colorText(text, color): + colorMap = { + 'White': '\x40', + 'Red': '\x41', + 'Green': '\x42', + 'Blue': '\x43', + 'Light Blue': '\x44', + 'Pink': '\x45', + 'Yellow': '\x46', + 'Black': '\x47', + } + + ignoredStarts = [ + 'a few ', + 'some ', + 'plenty of ', + 'a ', + 'an ', + 'the ', + '', + ] + + colorTags = False + while True: + splitText = text.split('#', 2) + if len(splitText) == 3: + splitText[1] = '\x05' + colorMap[color] + splitText[1] + '\x05\x40' + text = ''.join(splitText) + colorTags = True + else: + text = '#'.join(splitText) + break + + if not colorTags: + for ignoredStart in ignoredStarts: + if text.startswith(ignoredStart): + text = text[:len(ignoredStart)] + '\x05' + colorMap[color] + text[len(ignoredStart):] + '\x05\x40' + break + + return text + #builds out general hints based on location and whether an item is required or not def buildGossipHints(world): @@ -62,11 +103,11 @@ def buildGossipHints(world): if world.trials < 6 and world.trials > 3: for trial,skipped in world.skipped_trials.items(): if skipped: - add_hint(world, stoneIDs.pop(0), buildHintString("the " + trial + " Trial was dispelled by Sheik.")) + add_hint(world, stoneIDs.pop(0), buildHintString("the " + colorText(trial + " Trial", 'Yellow') + " was dispelled by Sheik.")) elif world.trials <= 3 and world.trials > 0: for trial,skipped in world.skipped_trials.items(): if not skipped: - add_hint(world, stoneIDs.pop(0), buildHintString("the " + trial + " Trial protects Ganon's Tower.")) + add_hint(world, stoneIDs.pop(0), buildHintString("the " + colorText(trial + " Trial", 'Pink') + " protects Ganon's Tower.")) # add required items locations for hints (good hints) requiredSample = world.spoiler.required_locations @@ -74,10 +115,10 @@ def buildGossipHints(world): requiredSample = random.sample(requiredSample, random.randint(4,5)) for location in requiredSample: if location.parent_region.dungeon: - add_hint(world, stoneIDs.pop(0), buildHintString(getHint(location.parent_region.dungeon.name, world).text + \ + add_hint(world, stoneIDs.pop(0), buildHintString(colorText(getHint(location.parent_region.dungeon.name, world).text, 'Light Blue') + \ " is on the way of the hero.")) else: - add_hint(world, stoneIDs.pop(0), buildHintString(location.hint + " is on the way of the hero.")) + add_hint(world, stoneIDs.pop(0), buildHintString(colorText(location.hint, 'Light Blue') + " is on the way of the hero.")) # Don't repeat hints checkedLocations = [] @@ -88,8 +129,8 @@ def buildGossipHints(world): for locationWorld in world.get_locations(): if hint.name == locationWorld.name: checkedLocations.append(hint.name) - add_hint(world, stoneIDs.pop(0), getHint(locationWorld.name, world).text + " " + \ - getHint(getItemGenericName(locationWorld.item), world).text + ".") + add_hint(world, stoneIDs.pop(0), buildHintString(colorText(getHint(locationWorld.name, world).text, 'Green') + " " + \ + colorText(getHint(getItemGenericName(locationWorld.item), world).text, 'Red') + ".")) # Add good location hints @@ -104,8 +145,8 @@ def buildGossipHints(world): for locationWorld in world.get_locations(): if hint.name == locationWorld.name: checkedLocations.append(locationWorld.name) - add_hint(world, stoneIDs.pop(0), getHint(locationWorld.name, world).text + " " + \ - getHint(getItemGenericName(locationWorld.item), world).text + ".") + add_hint(world, stoneIDs.pop(0), buildHintString(colorText(getHint(locationWorld.name, world).text, 'Green') + " " + \ + colorText(getHint(getItemGenericName(locationWorld.item), world).text, 'Red') + ".")) # add bad dungeon locations hints for dungeon in random.sample(world.dungeons, random.randint(3,4)): @@ -119,8 +160,8 @@ def buildGossipHints(world): location.item.type != 'Song']) checkedLocations.append(locationWorld.name) - add_hint(world, stoneIDs.pop(0), buildHintString(getHint(dungeon.name, world).text + \ - " hoards " + getHint(getItemGenericName(locationWorld.item), world).text + ".")) + add_hint(world, stoneIDs.pop(0), buildHintString(colorText(getHint(dungeon.name, world).text, 'Green') + \ + " hoards " + colorText(getHint(getItemGenericName(locationWorld.item), world).text, 'Red') + ".")) # add bad overworld locations hints # only choose location if it is new and a proper item from the overworld @@ -138,8 +179,8 @@ def buildGossipHints(world): overworldSample = random.sample(overworldlocations, random.randint(3,4)) for locationWorld in overworldSample: checkedLocations.append(locationWorld.name) - add_hint(world, stoneIDs.pop(0), buildHintString(getHint(getItemGenericName(locationWorld.item), world).text + \ - " can be found at " + locationWorld.hint + ".")) + add_hint(world, stoneIDs.pop(0), buildHintString(colorText(getHint(getItemGenericName(locationWorld.item), world).text, 'Red') + \ + " can be found at " + colorText(locationWorld.hint, 'Green') + ".")) # add good item hints # only choose location if it is new and a good item @@ -157,11 +198,11 @@ def buildGossipHints(world): for locationWorld in gooditemSample: checkedLocations.append(locationWorld.name) if locationWorld.parent_region.dungeon: - add_hint(world, stoneIDs.pop(0), buildHintString(getHint(locationWorld.parent_region.dungeon.name, world).text + \ - " hoards " + getHint(getItemGenericName(locationWorld.item), world).text + ".")) + add_hint(world, stoneIDs.pop(0), buildHintString(colorText(getHint(locationWorld.parent_region.dungeon.name, world).text, 'Green') + \ + " hoards " + colorText(getHint(getItemGenericName(locationWorld.item), world).text, 'Red') + ".")) else: - add_hint(world, stoneIDs.pop(0), buildHintString(getHint(getItemGenericName(locationWorld.item), world).text + \ - " can be found at " + locationWorld.hint + ".")) + add_hint(world, stoneIDs.pop(0), buildHintString(colorText(getHint(getItemGenericName(locationWorld.item), world).text, 'Red') + \ + " can be found at " + colorText(locationWorld.hint, 'Green') + ".")) # fill the remaining hints with junk junkHints = getHintGroup('junkHint', world) diff --git a/TextBox.py b/TextBox.py index 83defd865..6d994b109 100644 --- a/TextBox.py +++ b/TextBox.py @@ -1,3 +1,5 @@ +import Messages + # Least common multiple of all possible character widths. A line wrap must occur when the combined widths of all of the # characters on a line reach this value. LINE_WIDTH = 1801800 @@ -58,7 +60,16 @@ def _wrapLines(text): def _calculateWidth(words): - wordsWidth = sum([_getCharacterWidth(character) for word in words for character in word]) + wordsWidth = 0 + for word in words: + index = 0 + while index < len(word): + character = word[index] + index += 1 + if ord(character) in Messages.CONTROL_CODES: + index += Messages.CONTROL_CODES[ord(character)][1] + else: + wordsWidth += _getCharacterWidth(character) spacesWidth = _getCharacterWidth(' ') * (len(words) - 1) return wordsWidth + spacesWidth diff --git a/version.py b/version.py index dee83194b..bc912ec46 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.17.27 f.LUM' +__version__ = '2.17.28 f.LUM' From 83dcc973b111ef1c0a7caffb1825881833627f6c Mon Sep 17 00:00:00 2001 From: Nick Langille Date: Sun, 16 Sep 2018 06:30:51 -0400 Subject: [PATCH 508/755] Add dungeon info config options --- ASM/build/asm_symbols.txt | 32 +- ASM/build/bundle.o | Bin 9128 -> 9312 bytes ASM/build/c_symbols.txt | 18 +- ASM/c/dungeon_info.c | 16 +- data/rom_patch.txt | 4809 ++++++++++++++++++------------------- data/symbols.json | 62 +- 6 files changed, 2465 insertions(+), 2472 deletions(-) diff --git a/ASM/build/asm_symbols.txt b/ASM/build/asm_symbols.txt index a09f5aabc..919d8c508 100644 --- a/ASM/build/asm_symbols.txt +++ b/ASM/build/asm_symbols.txt @@ -1010,22 +1010,30 @@ 8040622C .byt:0010 8040622C stones_sprite 8040623C .byt:000E -8040623C dungeon_is_mq -8040624C .byt:000E -8040624C rewards -8040625C .byt:0012 -8040625C medal_colors -80406270 .byt:009C -80406270 dungeons +8040623C cfg_dungeon_rewards +8040624C .byt:0012 +8040624C medal_colors +80406260 .byt:009C +80406260 dungeons +804062FC .byt:0004 +804062FC cfg_dungeon_info_enable +80406300 .byt:0004 +80406300 dungeon_count +80406304 .byt:0004 +80406304 heap_next +80406308 .byt:0004 +80406308 cfg_dungeon_info_reward_need_map 8040630C .byt:0004 -8040630C dungeon_count +8040630C cfg_dungeon_info_mq_need_compass 80406310 .byt:0004 -80406310 heap_next +80406310 cfg_dungeon_info_mq_enable 8040631C .byt:0010 8040631C setup_db -8040632C .byt:14C8 -8040632C FONT_TEXTURE -804077F4 .byt:880C +8040632C .byt:000E +8040632C cfg_dungeon_is_mq +8040633A .byt:14C8 +8040633A FONT_TEXTURE +80407802 .byt:87FE 80480000 DUMMY_ACTOR 80500000 C_HEAP  \ No newline at end of file diff --git a/ASM/build/bundle.o b/ASM/build/bundle.o index bd2287f5f8e7b47347455476636149ec5709513f..cbe858736502ee08fe71928a52ca4a67f799d2a8 100644 GIT binary patch delta 2230 zcmZuyO-Ni<6h3eCIX~}b-i%Y~zvGO*iHVljR;Uz<0jJ<1&_bmI#-Eu)LC2|Dnt)}5 zy0FEC<%Z%S3k#tLmHs6QOI?H_B?}iqLvi6^pe}?48d?{Hy6AV_xfY>)aOb<{-gCb1 zyXW1fTf^nddMePe{%vcI7fuXR5N%J8r*3-9PNFSTNxZT)iIr9FHN#VT-VlC6u{k55 z?!-RA{4AD6T>y1M$m)zQg~$k0RGL*mwHyDzG>FJiUsboMud7=z;tzkW9<3-Puw03~ z5b$*j??ODxa~?6-pCXDrMcf@Hf*YDg`WBIq(eZ~w!4<6U==c-NlNcWAtAHCA=X^oT zzaT34g69d}Bd?5&K25L(-2sqp==c}x`479q^D9wc7kHxgf5*ItwGkcvjkp&>^BZBz z`QaFIBM$wF2bdg5fzc@Y{}yy19>nO?`>$ZmozfjK-XSuVQLhD!G3@bEqw@=xvsYIO zE@PgI30;4H zxs7q2{~PB1!>*8jBW3@;_hO8f&No5`<`S^&dnCb7gSGOZ6)WZ zOxdreSCx0c>jo~hw(2U)`OL}P5#2ZUcgJ{ zIM^xz!7-wjKop$9`(`W>y$B51L`{qhL|u$CVkCrpHWGqCHXK?P!{JBLnedKuCcH<~ zg1T@C!u3cD9{^DphQrGoqqUbgKEbEN@iQRD&vCOkJ_T}oD8v!8m|Gr!U=qX;w3>M% z=nV5lp2(|;K#yNl1a)kn6oHVRc&rm4zy=}^U;`G2*?@&)HelI8WO+hlT^B(sAw1R% z;jw0f$0}-`RiZ24u$FY*hM!j=YfD;XZA+`HJ-IX%9P_2I;Fz6SPjw-j^NFluEpQ?N zHUwF~hG9OC%|ghtA;g!^Mkkoh-V{C?y7eaBzYSqOaYqR4T}=pKzwkf`ok2ONt&KP% zQs+!bo-?EKaAG#>++hKrHsY)Zzq2a*4jU_Rf_CP5BH+Lw7rG51;P#7vJ0JosjIe;4 z(Rtd4`?d(Uqaxt4A?AT0KDm1${H`|Uo)X3Q#h#xbH=#$|k+jGOpc86V?n zFqUzG09{?UJNxj>0D!#u?Q_oB+A(Sr5{ delta 2063 zcmYjSO-Ni<82#?(%)B@6XWpo7{YyrjiJH_J8-xTZ#WsRMTqLv$p+Ypq)+r_xoe~3~ zBh-S6ETlIJp(zM$L8yzAv>>SqTZCp2iVGK^xNzZO7Fnc_MWHTw&bwFW!#n4md%ydg zbH8`*^KfKic(o(Z_WY;f`N(w!YD6|~NUa`^@_}>4sTGdgpTfvW^p2|4yU}I*I=Ro3 zqZe~uqJNw#U|j<1E+eYD?p~u3QKC-%L~2z!DNZV(H|u^?fnKe@s4Mlw$A8q1)l?ke zya@4K_W#F+MY8+gJ#`{*A=gBr4dfoNd|V{GjPWhYOX#MS3FJ~d>+CYZwR$G~mL)u)`q!xF-rLbB8|@CFqkw$)z44gnVi45APaNzrSkOk8+Xgo z`rGCv{iJ!&otd7TyI#6oD(ed^-L_(*B5(7oyfB#D6uAJNgt-_GMcR|#M?jo~B;uOL zUjoUGMOwglOj_`h!sa@$KIMxP$zi&cyvOo>k<*O71pU(t7_}1!Dstkc<@fEv2O=FD ze+Xp!y2VE#1t#9ZTjl&dkn;y3y~KZj7*8W6=FcogfyvXAq7g_>h@3}IdPby+I4ANt z(D6l15nJ&Vh_l9sgLxWpV33BLRb$xw*;K~eGL><6afz_bg>WjNCpBl;2|*$cnGEe&o_y@$RzTHjG)(G5_wlmB5&60#GA8uR&d^t!@FnW z)@AD&_6+%;5cdaLhyF!7-hB`*tCmb4T8h6{s2kAA%I{VVFDeDTFv5LOg^% zD#3jIy210ftQ+%pS45D3bWPYI~863I(;O`wLxaUym0$6Zu`e9FtA_9_jr;7e9kF aeP0&~NfcE5pu3BO*M^Yg0out!*YY2P7Uqut diff --git a/ASM/build/c_symbols.txt b/ASM/build/c_symbols.txt index 9d1d89e4a..df6cdd77e 100644 --- a/ASM/build/c_symbols.txt +++ b/ASM/build/c_symbols.txt @@ -21,13 +21,14 @@ SYMBOL TABLE: 00000000 l .rodata.str1.4 00000000 $LC0 00000004 l .rodata.str1.4 00000000 $LC1 00000000 l df *ABS* 00000000 text.c -00000008 l O .sbss 00000004 text_buf -00000004 l O .sbss 00000004 text_end +00000014 l O .sbss 00000004 text_buf +00000010 l O .sbss 00000004 text_end +00000004 g O .sbss 00000004 cfg_dungeon_info_reward_need_map 00000fd4 g F .text 0000002c text_init 000010a8 g F .text 00000148 text_flush 00000784 g F .text 000000b8 overlay_swap 00000020 g O .data 00000010 medals_sprite -00000000 g O .sdata 00000004 dungeon_count +00000004 g O .sdata 00000004 dungeon_count 00000010 g O .data 00000010 quest_items_sprite 000006e0 g F .text 00000034 heap_alloc 0000083c g F .text 00000798 draw_dungeon_info @@ -38,19 +39,22 @@ SYMBOL TABLE: 00000000 g O .bss 00000010 setup_db 000003a4 g F .text 000001dc draw_setup 00000000 g O .data 00000010 font_sprite -00000050 g O .data 0000000e rewards 00000040 g F .text 00000030 sprite_bytes +00000008 g O .sbss 00000004 cfg_dungeon_info_mq_need_compass 00000580 g F .text 0000014c gfx_init 00000000 g F .text 00000018 disp_buf_init -00000040 g O .data 0000000e dungeon_is_mq -00000074 g O .data 0000009c dungeons -00000060 g O .data 00000012 medal_colors +00000010 g O .bss 0000000e cfg_dungeon_is_mq +00000064 g O .data 0000009c dungeons +00000050 g O .data 00000012 medal_colors 00001000 g F .text 000000a8 text_print 00000758 g F .text 0000002c c_init 00000000 g O .sbss 00000004 heap_next +00000040 g O .data 0000000e cfg_dungeon_rewards 000006cc g F .text 00000014 heap_init +0000000c g O .sbss 00000004 cfg_dungeon_info_mq_enable 00000000 *UND* 00000000 C_HEAP 00000018 g F .text 00000028 sprite_bytes_per_tile 00000714 g F .text 00000044 file_init +00000000 g O .sdata 00000004 cfg_dungeon_info_enable diff --git a/ASM/c/dungeon_info.c b/ASM/c/dungeon_info.c index 75289671f..7e9bed557 100644 --- a/ASM/c/dungeon_info.c +++ b/ASM/c/dungeon_info.c @@ -51,9 +51,13 @@ medal_color_t medal_colors[] = { { 0xA4, 0xAB, 0x21 }, // Light }; -// FIXME: Make dynamic -int8_t rewards[] = { 4, 1, 7, 5, 0, 8, 6, 2, -1, -1, -1, -1, -1, -1 }; -uint8_t dungeon_is_mq[] = { 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0 }; +uint32_t cfg_dungeon_info_enable = 1; +uint32_t cfg_dungeon_info_mq_enable = 0; +uint32_t cfg_dungeon_info_mq_need_compass = 0; +uint32_t cfg_dungeon_info_reward_need_map = 0; + +int8_t cfg_dungeon_rewards[] = { 0, 1, 2, 3, 4, 5, 6, 7, -1, -1, -1, -1, -1, -1 }; +uint8_t cfg_dungeon_is_mq[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; void draw_dungeon_info(z64_disp_buf_t *db) { // Call setup display list @@ -93,7 +97,7 @@ void draw_dungeon_info(z64_disp_buf_t *db) { for (int i = 0; i < dungeon_count; i++) { dungeon_entry_t *d = &(dungeons[i]); - int reward = rewards[d->index]; + int reward = cfg_dungeon_rewards[d->index]; if (reward < 3) continue; reward -= 3; @@ -112,7 +116,7 @@ void draw_dungeon_info(z64_disp_buf_t *db) { for (int i = 0; i < dungeon_count; i++) { dungeon_entry_t *d = &(dungeons[i]); - int reward = rewards[d->index]; + int reward = cfg_dungeon_rewards[d->index]; if (reward < 0 || reward >= 3) continue; int top = start_top + ((icon_size + padding) * i); @@ -210,7 +214,7 @@ void draw_dungeon_info(z64_disp_buf_t *db) { //text_print("MQ", left, top); for (int i = 0; i < dungeon_count; i++) { dungeon_entry_t *d = &(dungeons[i]); - char *str = dungeon_is_mq[d->index] ? "MQ" : "Normal"; + char *str = cfg_dungeon_is_mq[d->index] ? "MQ" : "Normal"; int top = start_top + ((icon_size + padding) * i) + 1; text_print(str, left, top); } diff --git a/data/rom_patch.txt b/data/rom_patch.txt index 5c7eaf9d6..bfb55c086 100644 --- a/data/rom_patch.txt +++ b/data/rom_patch.txt @@ -6574,7 +6574,7 @@ ec9ce7,7a 34b3638,24 34b3639,63 34b363a,63 -34b363b,2c +34b363b,3a 34b363e,20 34b363f,25 34b3642,30 @@ -6704,7 +6704,7 @@ ec9ce7,7a 34b36dc,ac 34b36dd,62 34b36de,63 -34b36df,10 +34b36df,4 34b36e1,4 34b36e2,17 34b36e3,c3 @@ -6736,7 +6736,7 @@ ec9ce7,7a 34b3704,8c 34b3705,62 34b3706,63 -34b3707,10 +34b3707,4 34b3709,44 34b370a,20 34b370b,21 @@ -6746,7 +6746,7 @@ ec9ce7,7a 34b3710,ac 34b3711,64 34b3712,63 -34b3713,10 +34b3713,4 34b3714,27 34b3715,bd 34b3716,ff @@ -7298,7 +7298,6 @@ ec9ce7,7a 34b39d0,8c 34b39d1,42 34b39d2,63 -34b39d3,c 34b39d4,18 34b39d5,40 34b39d7,35 @@ -7313,7 +7312,7 @@ ec9ce7,7a 34b39e0,26 34b39e1,52 34b39e2,62 -34b39e3,70 +34b39e3,60 34b39e6,88 34b39e7,25 34b39e8,3c @@ -7323,7 +7322,7 @@ ec9ce7,7a 34b39ec,26 34b39ed,94 34b39ee,62 -34b39ef,4c +34b39ef,3c 34b39f0,3c 34b39f1,17 34b39f2,80 @@ -7331,7 +7330,7 @@ ec9ce7,7a 34b39f4,26 34b39f5,f7 34b39f6,62 -34b39f7,5c +34b39f7,4c 34b39f8,3c 34b39f9,1e 34b39fa,fa @@ -7455,7 +7454,6 @@ ec9ce7,7a 34b3a9c,8e 34b3a9d,a2 34b3a9e,63 -34b3a9f,c 34b3aa0,2 34b3aa1,22 34b3aa2,10 @@ -7515,7 +7513,6 @@ ec9ce7,7a 34b3ae4,8c 34b3ae5,42 34b3ae6,63 -34b3ae7,c 34b3ae8,58 34b3ae9,40 34b3aeb,2f @@ -7529,7 +7526,7 @@ ec9ce7,7a 34b3af4,26 34b3af5,31 34b3af6,62 -34b3af7,70 +34b3af7,60 34b3af8,24 34b3af9,14 34b3afb,4 @@ -7542,7 +7539,7 @@ ec9ce7,7a 34b3b04,26 34b3b05,b5 34b3b06,62 -34b3b07,4c +34b3b07,3c 34b3b08,24 34b3b09,17 34b3b0b,10 @@ -7603,7 +7600,6 @@ ec9ce7,7a 34b3b50,8e 34b3b51,c2 34b3b52,63 -34b3b53,c 34b3b54,26 34b3b55,31 34b3b57,c @@ -7631,7 +7627,7 @@ ec9ce7,7a 34b3b70,26 34b3b71,31 34b3b72,62 -34b3b73,72 +34b3b73,62 34b3b74,24 34b3b75,14 34b3b77,5 @@ -7665,7 +7661,6 @@ ec9ce7,7a 34b3b98,8e 34b3b99,a2 34b3b9a,63 -34b3b9b,c 34b3b9c,2 34b3b9d,42 34b3b9e,10 @@ -7721,7 +7716,6 @@ ec9ce7,7a 34b3bd8,8c 34b3bd9,42 34b3bda,63 -34b3bdb,c 34b3bdc,58 34b3bdd,40 34b3bdf,2c @@ -7735,7 +7729,7 @@ ec9ce7,7a 34b3be8,26 34b3be9,52 34b3bea,62 -34b3beb,70 +34b3beb,60 34b3bec,24 34b3bed,14 34b3bef,5 @@ -7849,7 +7843,6 @@ ec9ce7,7a 34b3c7c,8e 34b3c7d,c2 34b3c7e,63 -34b3c7f,c 34b3c80,2 34b3c81,22 34b3c82,10 @@ -7891,7 +7884,6 @@ ec9ce7,7a 34b3cac,8c 34b3cad,42 34b3cae,63 -34b3caf,c 34b3cb0,58 34b3cb1,40 34b3cb3,2b @@ -7905,7 +7897,7 @@ ec9ce7,7a 34b3cbc,26 34b3cbd,52 34b3cbe,62 -34b3cbf,70 +34b3cbf,60 34b3cc2,88 34b3cc3,25 34b3cc4,2 @@ -8020,7 +8012,6 @@ ec9ce7,7a 34b3d4c,8e 34b3d4d,a2 34b3d4e,63 -34b3d4f,c 34b3d50,2 34b3d51,22 34b3d52,10 @@ -8063,7 +8054,6 @@ ec9ce7,7a 34b3d7c,8c 34b3d7d,42 34b3d7e,63 -34b3d7f,c 34b3d80,18 34b3d81,40 34b3d83,2a @@ -8074,7 +8064,7 @@ ec9ce7,7a 34b3d88,26 34b3d89,52 34b3d8a,62 -34b3d8b,70 +34b3d8b,60 34b3d8e,88 34b3d8f,25 34b3d90,2 @@ -8192,7 +8182,6 @@ ec9ce7,7a 34b3e1c,8e 34b3e1d,a2 34b3e1e,63 -34b3e1f,c 34b3e20,2 34b3e21,22 34b3e22,10 @@ -8235,7 +8224,6 @@ ec9ce7,7a 34b3e4c,8c 34b3e4d,42 34b3e4e,63 -34b3e4f,c 34b3e50,18 34b3e51,40 34b3e53,46 @@ -8246,7 +8234,7 @@ ec9ce7,7a 34b3e58,26 34b3e59,52 34b3e5a,62 -34b3e5b,70 +34b3e5b,60 34b3e5c,2 34b3e5d,40 34b3e5e,a0 @@ -8370,7 +8358,6 @@ ec9ce7,7a 34b3ef4,8e 34b3ef5,c2 34b3ef6,63 -34b3ef7,c 34b3ef8,2 34b3ef9,22 34b3efa,18 @@ -8399,8 +8386,8 @@ ec9ce7,7a 34b3f17,40 34b3f18,26 34b3f19,d6 -34b3f1a,62 -34b3f1b,3c +34b3f1a,63 +34b3f1b,2c 34b3f1c,3c 34b3f1d,15 34b3f1e,80 @@ -8459,7 +8446,6 @@ ec9ce7,7a 34b3f5c,8e 34b3f5d,e2 34b3f5e,63 -34b3f5f,c 34b3f60,2 34b3f61,22 34b3f62,10 @@ -9008,2401 +8994,2394 @@ ec9ce7,7a 34b4235,3 34b4237,3 34b4238,4 -34b423c,1 -34b423f,1 -34b4241,1 -34b4242,1 -34b4244,1 -34b4245,1 -34b4247,1 -34b4248,1 -34b424c,4 -34b424d,1 -34b424e,7 -34b424f,5 -34b4251,8 -34b4252,6 -34b4253,2 -34b4254,ff -34b4255,ff -34b4256,ff -34b4257,ff -34b4258,ff -34b4259,ff -34b425c,11 -34b425d,c2 -34b425e,2d -34b425f,d4 -34b4260,43 -34b4261,22 -34b4262,8 -34b4263,54 -34b4264,ce -34b4265,d1 -34b4266,75 -34b4267,1a -34b4268,a9 -34b4269,3a -34b426a,ea -34b426b,a4 -34b426c,ab -34b426d,21 -34b4271,10 -34b4272,44 -34b4273,65 -34b4274,6b -34b4275,75 -34b427c,1 -34b427d,10 -34b427e,44 -34b427f,6f -34b4280,64 -34b4281,6f -34b4282,6e -34b4283,67 -34b4284,6f -34b4288,2 -34b4289,10 -34b428a,4a -34b428b,61 -34b428c,62 -34b428d,75 -34b4294,3 -34b4295,d0 -34b4296,46 -34b4297,6f -34b4298,72 -34b4299,65 -34b429a,73 -34b429b,74 -34b42a0,4 -34b42a1,d0 -34b42a2,46 -34b42a3,69 -34b42a4,72 -34b42a5,65 -34b42ac,5 -34b42ad,d0 -34b42ae,57 -34b42af,61 -34b42b0,74 -34b42b1,65 -34b42b2,72 -34b42b8,7 -34b42b9,d0 -34b42ba,53 -34b42bb,68 -34b42bc,61 -34b42bd,64 -34b42be,6f -34b42bf,77 -34b42c4,6 -34b42c5,d0 -34b42c6,53 -34b42c7,70 -34b42c8,69 -34b42c9,72 -34b42ca,69 -34b42cb,74 -34b42d0,8 -34b42d1,90 -34b42d2,42 -34b42d3,6f -34b42d4,74 -34b42d5,57 -34b42dc,9 -34b42dd,10 -34b42de,49 -34b42df,63 -34b42e0,65 -34b42e8,b -34b42e9,80 -34b42ea,47 -34b42eb,54 -34b42ec,47 -34b42f4,c -34b42f5,a0 -34b42f6,48 -34b42f7,69 -34b42f8,64 -34b42f9,65 -34b42fa,6f -34b42fb,75 -34b42fc,74 -34b4300,d -34b4301,c0 -34b4302,47 -34b4303,61 -34b4304,6e -34b4305,6f -34b4306,6e -34b430f,d -34b436d,d -34b436e,b0 -34b4371,d -34b4372,b0 -34b4375,d -34b4376,b0 -34b4379,c -34b437a,b0 -34b437d,c -34b437e,b0 -34b4381,c -34b4382,a0 -34b4389,d -34b438a,b0 -34b438d,d -34b438e,b0 -34b43a5,e8 -34b43a6,ac -34b43a9,e8 -34b43aa,ac -34b43ad,e8 -34b43ae,ac -34b43b1,e8 -34b43b2,ac -34b43d9,d -34b43da,77 -34b43db,d0 -34b43dd,2e -34b43de,3a -34b43df,b0 -34b43e1,7d -34b43e2,c -34b43e3,90 -34b43e4,8f -34b43e5,ff -34b43e6,ff -34b43e7,fd -34b43e9,c9 -34b43ea,6e -34b43ec,2 -34b43ed,e4 -34b43ee,ac -34b43f0,ef -34b43f1,ff -34b43f2,ff -34b43f3,f4 -34b43f4,a -34b43f5,b0 -34b43f6,e5 -34b43f8,c -34b43f9,95 -34b43fa,e0 -34b43fc,e -34b43fd,59 -34b43fe,c0 -34b4415,7 -34b4416,90 -34b4418,5 -34b4419,ce -34b441a,eb -34b441b,40 -34b441c,c -34b441d,c8 -34b441e,a9 -34b441f,90 -34b4420,d -34b4421,a7 -34b4422,90 -34b4424,8 -34b4425,ec -34b4426,b4 -34b4429,4a -34b442a,dd -34b442b,a0 -34b442d,7 -34b442e,97 -34b442f,e2 -34b4430,c -34b4431,88 -34b4432,aa -34b4433,e0 -34b4434,6 -34b4435,ce -34b4436,ed -34b4437,70 -34b4439,7 -34b443a,90 -34b443d,7 -34b443e,90 -34b444c,6d -34b444d,ea -34b4450,c9 -34b4451,4d -34b4452,60 -34b4454,c9 -34b4455,4d -34b4456,60 -34b4457,33 -34b4458,6d -34b4459,eb -34b445a,6b -34b445b,c6 -34b445d,8c -34b445e,b6 -34b4460,7c -34b4461,a4 -34b4462,ce -34b4463,c4 -34b4464,31 -34b4465,9 -34b4466,c3 -34b4467,bb -34b4469,9 -34b446a,c3 -34b446b,bb -34b446d,2 -34b446e,ce -34b446f,d4 -34b4484,4 -34b4485,ce -34b4486,fb -34b4488,a -34b4489,d5 -34b448c,8 -34b448d,e3 -34b4490,9 -34b4491,ec -34b4494,7e -34b4495,4d -34b4496,b0 -34b4497,ab -34b4498,bb -34b4499,5 -34b449a,e8 -34b449b,aa -34b449c,bc -34b449e,8e -34b449f,d6 -34b44a0,7e -34b44a1,93 -34b44a2,6e -34b44a3,d0 -34b44a4,8 -34b44a5,de -34b44a6,d9 -34b44a7,ea -34b44bd,c -34b44be,a0 -34b44c1,c -34b44c2,a0 -34b44c5,c -34b44c6,a0 -34b44c9,c -34b44ca,a0 -34b44ee,c9 -34b44f1,7 -34b44f2,e2 -34b44f5,c -34b44f6,b0 -34b44f9,e -34b44fa,80 -34b44fd,6f -34b44fe,30 -34b4501,8e -34b4505,8e -34b4509,6f -34b450a,40 -34b450d,e -34b450e,80 -34b4511,c -34b4512,b0 -34b4515,7 -34b4516,e2 -34b451a,c9 -34b4525,bb -34b4529,5e -34b452a,40 -34b452d,c -34b452e,a0 -34b4531,a -34b4532,d0 -34b4535,7 -34b4536,e1 -34b4539,6 -34b453a,f4 -34b453d,6 -34b453e,f4 -34b4541,7 -34b4542,e1 -34b4545,a -34b4546,d0 -34b4549,c -34b454a,a0 -34b454d,5e -34b454e,40 -34b4551,bb -34b4565,a -34b4566,80 -34b4568,c -34b4569,8a -34b456a,8a -34b456b,b0 -34b456c,3 -34b456d,be -34b456e,da -34b456f,10 -34b4570,3 -34b4571,be -34b4572,da -34b4573,10 -34b4574,c -34b4575,8a -34b4576,8a -34b4577,b0 -34b4579,a -34b457a,80 -34b45a1,c -34b45a2,a0 -34b45a5,c -34b45a6,a0 -34b45a9,c -34b45aa,a0 -34b45ac,af -34b45ad,ff -34b45ae,ff -34b45af,f8 -34b45b1,c -34b45b2,a0 -34b45b5,c -34b45b6,a0 -34b45b9,c -34b45ba,a0 -34b45f1,d -34b45f2,d0 -34b45f5,e -34b45f6,c0 -34b45f9,4f -34b45fa,80 -34b45fd,9d -34b4621,df -34b4622,fb -34b4661,e -34b4662,c0 -34b4665,e -34b4666,c0 -34b467e,b -34b467f,c0 -34b4682,4e -34b4683,60 -34b4686,bc -34b4689,3 -34b468a,e8 -34b468d,a -34b468e,d0 -34b4691,1e -34b4692,90 -34b4695,9e -34b4696,20 -34b4699,da -34b469c,7 -34b469d,e3 -34b46a0,c -34b46a1,b0 -34b46a4,6e -34b46a5,50 -34b46b4,3 -34b46b5,ce -34b46b6,eb -34b46b8,b -34b46b9,d5 -34b46ba,7e -34b46bb,90 -34b46bc,e -34b46bd,90 -34b46be,b -34b46bf,d0 -34b46c0,5f -34b46c1,70 -34b46c2,9 -34b46c3,e0 -34b46c4,6f -34b46c5,6c -34b46c6,b9 -34b46c7,e0 -34b46c8,5f -34b46c9,70 -34b46ca,9 -34b46cb,e0 -34b46cc,e -34b46cd,90 -34b46ce,b -34b46cf,d0 -34b46d0,b -34b46d1,d5 -34b46d2,7e -34b46d3,90 -34b46d4,3 -34b46d5,ce -34b46d6,eb -34b46ec,a -34b46ed,ff -34b46ee,e0 -34b46f1,8 -34b46f2,e0 -34b46f5,8 -34b46f6,e0 -34b46f9,8 -34b46fa,e0 -34b46fd,8 -34b46fe,e0 -34b4701,8 -34b4702,e0 -34b4705,8 -34b4706,e0 -34b4709,8 -34b470a,e0 -34b470c,8 -34b470d,ff -34b470e,ff -34b470f,e0 -34b4724,8 -34b4725,de -34b4726,ea -34b4728,c -34b4729,83 -34b472a,7e -34b472b,90 -34b472e,c -34b472f,c0 -34b4732,2e -34b4733,a0 -34b4736,bd -34b4737,20 -34b4739,b -34b473a,d4 -34b473d,bd -34b473e,40 -34b4740,b -34b4741,d4 -34b4744,2f -34b4745,ff -34b4746,ff -34b4747,d0 -34b475c,7 -34b475d,ce -34b475e,ea -34b4760,c -34b4761,83 -34b4762,7e -34b4763,90 -34b4766,c -34b4767,b0 -34b4769,2 -34b476a,7e -34b476b,90 -34b476d,bf -34b476e,fb -34b4771,2 -34b4772,7d -34b4773,a0 -34b4776,a -34b4777,d0 -34b4778,5c -34b4779,62 -34b477a,7d -34b477b,b0 -34b477c,9 -34b477d,de -34b477e,eb -34b477f,30 -34b4795,2 -34b4796,de -34b4799,b -34b479a,de -34b479d,7d -34b479e,9e -34b47a0,2 -34b47a1,d7 -34b47a2,9e -34b47a4,b -34b47a5,b0 -34b47a6,9e -34b47a8,6e -34b47a9,40 -34b47aa,9e -34b47ac,9f -34b47ad,ff -34b47ae,ff -34b47af,f7 -34b47b2,9e -34b47b6,9e -34b47cc,c -34b47cd,ff -34b47ce,ff -34b47cf,50 -34b47d0,c -34b47d1,a0 -34b47d4,c -34b47d5,a0 -34b47d8,c -34b47d9,ee -34b47da,ea -34b47dd,3 -34b47de,8e -34b47df,90 -34b47e2,b -34b47e3,c0 -34b47e6,b -34b47e7,c0 -34b47e8,5c -34b47e9,63 -34b47ea,8e -34b47eb,90 -34b47ec,9 -34b47ed,de -34b47ee,da -34b4805,ae -34b4806,ec -34b4807,30 -34b4808,a -34b4809,e8 -34b480a,39 -34b480b,80 -34b480c,e -34b480d,90 -34b4810,4f -34b4811,ae -34b4812,ec -34b4813,40 -34b4814,6f -34b4815,d5 -34b4816,5d -34b4817,c0 -34b4818,5f -34b4819,90 -34b481a,9 -34b481b,e0 -34b481c,e -34b481d,90 -34b481e,9 -34b481f,e0 -34b4820,c -34b4821,d5 -34b4822,5d -34b4823,c0 -34b4824,3 -34b4825,ce -34b4826,ec -34b4827,40 -34b483c,5f -34b483d,ff -34b483e,ff -34b483f,d0 -34b4842,d -34b4843,a0 -34b4846,7e -34b4847,40 -34b484a,cc -34b484d,4 -34b484e,e8 -34b4851,a -34b4852,d0 -34b4855,d -34b4856,a0 -34b4859,8e -34b485a,40 -34b485d,cc -34b4874,5 -34b4875,ce -34b4876,ec -34b4877,30 -34b4878,d -34b4879,c4 -34b487a,5d -34b487b,b0 -34b487c,e -34b487d,90 -34b487e,b -34b487f,d0 -34b4880,b -34b4881,c4 -34b4882,5d -34b4883,90 -34b4884,4 -34b4885,df -34b4886,fc -34b4887,20 -34b4888,1d -34b4889,b4 -34b488a,5c -34b488b,c0 -34b488c,5f -34b488d,60 -34b488e,9 -34b488f,e0 -34b4890,2e -34b4891,b3 -34b4892,5c -34b4893,d0 -34b4894,7 -34b4895,de -34b4896,ec -34b4897,50 -34b48ac,6 -34b48ad,de -34b48ae,eb -34b48b0,d -34b48b1,b3 -34b48b2,7e -34b48b3,90 -34b48b4,5f -34b48b5,50 -34b48b6,b -34b48b7,d0 -34b48b8,5f -34b48b9,50 -34b48ba,b -34b48bb,e0 -34b48bc,d -34b48bd,b3 -34b48be,7e -34b48bf,e0 -34b48c0,6 -34b48c1,de -34b48c2,db -34b48c3,e0 -34b48c6,b -34b48c7,c0 -34b48c8,9 -34b48c9,74 -34b48ca,9e -34b48cb,70 -34b48cc,5 -34b48cd,de -34b48ce,d8 -34b48ed,e -34b48ee,c0 -34b48f1,e -34b48f2,c0 -34b4901,e -34b4902,c0 -34b4905,e -34b4906,c0 -34b4925,e -34b4926,c0 -34b4929,e -34b492a,c0 -34b4939,d -34b493a,d0 -34b493d,e -34b493e,c0 -34b4941,4f -34b4942,80 -34b4945,9d -34b495e,29 -34b495f,c8 -34b4961,7b -34b4962,ed -34b4963,93 -34b4964,8d -34b4965,da -34b4966,40 -34b4968,8d -34b4969,da -34b496a,40 -34b496d,7b -34b496e,ec -34b496f,93 -34b4972,29 -34b4973,c8 -34b4998,af -34b4999,ff -34b499a,ff -34b499b,f8 -34b49a4,af -34b49a5,ff -34b49a6,ff -34b49a7,f8 -34b49cc,ac -34b49cd,81 -34b49d0,4a -34b49d1,de -34b49d2,b6 -34b49d5,6 -34b49d6,ad -34b49d7,d6 -34b49d9,6 -34b49da,ad -34b49db,d6 -34b49dc,4a -34b49dd,de -34b49de,b6 -34b49e0,ac -34b49e1,81 -34b49fc,4 -34b49fd,be -34b49fe,ec -34b49ff,30 -34b4a00,9 -34b4a01,a4 -34b4a02,6e -34b4a03,a0 -34b4a06,1d -34b4a07,a0 -34b4a09,2 -34b4a0a,cd -34b4a0b,30 -34b4a0d,c -34b4a0e,c1 -34b4a11,e -34b4a12,90 -34b4a19,e -34b4a1a,90 -34b4a1d,e -34b4a1e,90 -34b4a34,1 -34b4a35,ae -34b4a36,ed -34b4a37,70 -34b4a38,c -34b4a39,d7 -34b4a3a,39 -34b4a3b,e4 -34b4a3c,7e -34b4a3d,20 -34b4a3f,c9 -34b4a40,ba -34b4a41,a -34b4a42,ee -34b4a43,ca -34b4a44,d7 -34b4a45,6e -34b4a46,64 -34b4a47,da -34b4a48,d6 -34b4a49,9c -34b4a4b,aa -34b4a4c,d7 -34b4a4d,6e -34b4a4e,64 -34b4a4f,da -34b4a50,ba -34b4a51,a -34b4a52,ee -34b4a53,ca -34b4a54,6e -34b4a55,40 -34b4a58,a -34b4a59,d8 -34b4a5a,30 -34b4a5d,8d -34b4a5e,ee -34b4a5f,90 -34b4a6d,3e -34b4a6e,d0 -34b4a71,9d -34b4a72,e6 -34b4a75,cb -34b4a76,cb -34b4a78,3 -34b4a79,e8 -34b4a7a,ad -34b4a7c,8 -34b4a7d,e2 -34b4a7e,6f -34b4a7f,60 -34b4a80,c -34b4a81,c0 -34b4a82,e -34b4a83,a0 -34b4a84,2e -34b4a85,ff -34b4a86,ff -34b4a87,d0 -34b4a88,8e -34b4a89,50 +34b423d,1 +34b423e,2 +34b423f,3 +34b4240,4 +34b4241,5 +34b4242,6 +34b4243,7 +34b4244,ff +34b4245,ff +34b4246,ff +34b4247,ff +34b4248,ff +34b4249,ff +34b424c,11 +34b424d,c2 +34b424e,2d +34b424f,d4 +34b4250,43 +34b4251,22 +34b4252,8 +34b4253,54 +34b4254,ce +34b4255,d1 +34b4256,75 +34b4257,1a +34b4258,a9 +34b4259,3a +34b425a,ea +34b425b,a4 +34b425c,ab +34b425d,21 +34b4261,10 +34b4262,44 +34b4263,65 +34b4264,6b +34b4265,75 +34b426c,1 +34b426d,10 +34b426e,44 +34b426f,6f +34b4270,64 +34b4271,6f +34b4272,6e +34b4273,67 +34b4274,6f +34b4278,2 +34b4279,10 +34b427a,4a +34b427b,61 +34b427c,62 +34b427d,75 +34b4284,3 +34b4285,d0 +34b4286,46 +34b4287,6f +34b4288,72 +34b4289,65 +34b428a,73 +34b428b,74 +34b4290,4 +34b4291,d0 +34b4292,46 +34b4293,69 +34b4294,72 +34b4295,65 +34b429c,5 +34b429d,d0 +34b429e,57 +34b429f,61 +34b42a0,74 +34b42a1,65 +34b42a2,72 +34b42a8,7 +34b42a9,d0 +34b42aa,53 +34b42ab,68 +34b42ac,61 +34b42ad,64 +34b42ae,6f +34b42af,77 +34b42b4,6 +34b42b5,d0 +34b42b6,53 +34b42b7,70 +34b42b8,69 +34b42b9,72 +34b42ba,69 +34b42bb,74 +34b42c0,8 +34b42c1,90 +34b42c2,42 +34b42c3,6f +34b42c4,74 +34b42c5,57 +34b42cc,9 +34b42cd,10 +34b42ce,49 +34b42cf,63 +34b42d0,65 +34b42d8,b +34b42d9,80 +34b42da,47 +34b42db,54 +34b42dc,47 +34b42e4,c +34b42e5,a0 +34b42e6,48 +34b42e7,69 +34b42e8,64 +34b42e9,65 +34b42ea,6f +34b42eb,75 +34b42ec,74 +34b42f0,d +34b42f1,c0 +34b42f2,47 +34b42f3,61 +34b42f4,6e +34b42f5,6f +34b42f6,6e +34b42ff,1 +34b4303,d +34b437b,d +34b437c,b0 +34b437f,d +34b4380,b0 +34b4383,d +34b4384,b0 +34b4387,c +34b4388,b0 +34b438b,c +34b438c,b0 +34b438f,c +34b4390,a0 +34b4397,d +34b4398,b0 +34b439b,d +34b439c,b0 +34b43b3,e8 +34b43b4,ac +34b43b7,e8 +34b43b8,ac +34b43bb,e8 +34b43bc,ac +34b43bf,e8 +34b43c0,ac +34b43e7,d +34b43e8,77 +34b43e9,d0 +34b43eb,2e +34b43ec,3a +34b43ed,b0 +34b43ef,7d +34b43f0,c +34b43f1,90 +34b43f2,8f +34b43f3,ff +34b43f4,ff +34b43f5,fd +34b43f7,c9 +34b43f8,6e +34b43fa,2 +34b43fb,e4 +34b43fc,ac +34b43fe,ef +34b43ff,ff +34b4400,ff +34b4401,f4 +34b4402,a +34b4403,b0 +34b4404,e5 +34b4406,c +34b4407,95 +34b4408,e0 +34b440a,e +34b440b,59 +34b440c,c0 +34b4423,7 +34b4424,90 +34b4426,5 +34b4427,ce +34b4428,eb +34b4429,40 +34b442a,c +34b442b,c8 +34b442c,a9 +34b442d,90 +34b442e,d +34b442f,a7 +34b4430,90 +34b4432,8 +34b4433,ec +34b4434,b4 +34b4437,4a +34b4438,dd +34b4439,a0 +34b443b,7 +34b443c,97 +34b443d,e2 +34b443e,c +34b443f,88 +34b4440,aa +34b4441,e0 +34b4442,6 +34b4443,ce +34b4444,ed +34b4445,70 +34b4447,7 +34b4448,90 +34b444b,7 +34b444c,90 +34b445a,6d +34b445b,ea +34b445e,c9 +34b445f,4d +34b4460,60 +34b4462,c9 +34b4463,4d +34b4464,60 +34b4465,33 +34b4466,6d +34b4467,eb +34b4468,6b +34b4469,c6 +34b446b,8c +34b446c,b6 +34b446e,7c +34b446f,a4 +34b4470,ce +34b4471,c4 +34b4472,31 +34b4473,9 +34b4474,c3 +34b4475,bb +34b4477,9 +34b4478,c3 +34b4479,bb +34b447b,2 +34b447c,ce +34b447d,d4 +34b4492,4 +34b4493,ce +34b4494,fb +34b4496,a +34b4497,d5 +34b449a,8 +34b449b,e3 +34b449e,9 +34b449f,ec +34b44a2,7e +34b44a3,4d +34b44a4,b0 +34b44a5,ab +34b44a6,bb +34b44a7,5 +34b44a8,e8 +34b44a9,aa +34b44aa,bc +34b44ac,8e +34b44ad,d6 +34b44ae,7e +34b44af,93 +34b44b0,6e +34b44b1,d0 +34b44b2,8 +34b44b3,de +34b44b4,d9 +34b44b5,ea +34b44cb,c +34b44cc,a0 +34b44cf,c +34b44d0,a0 +34b44d3,c +34b44d4,a0 +34b44d7,c +34b44d8,a0 +34b44fc,c9 +34b44ff,7 +34b4500,e2 +34b4503,c +34b4504,b0 +34b4507,e +34b4508,80 +34b450b,6f +34b450c,30 +34b450f,8e +34b4513,8e +34b4517,6f +34b4518,40 +34b451b,e +34b451c,80 +34b451f,c +34b4520,b0 +34b4523,7 +34b4524,e2 +34b4528,c9 +34b4533,bb +34b4537,5e +34b4538,40 +34b453b,c +34b453c,a0 +34b453f,a +34b4540,d0 +34b4543,7 +34b4544,e1 +34b4547,6 +34b4548,f4 +34b454b,6 +34b454c,f4 +34b454f,7 +34b4550,e1 +34b4553,a +34b4554,d0 +34b4557,c +34b4558,a0 +34b455b,5e +34b455c,40 +34b455f,bb +34b4573,a +34b4574,80 +34b4576,c +34b4577,8a +34b4578,8a +34b4579,b0 +34b457a,3 +34b457b,be +34b457c,da +34b457d,10 +34b457e,3 +34b457f,be +34b4580,da +34b4581,10 +34b4582,c +34b4583,8a +34b4584,8a +34b4585,b0 +34b4587,a +34b4588,80 +34b45af,c +34b45b0,a0 +34b45b3,c +34b45b4,a0 +34b45b7,c +34b45b8,a0 +34b45ba,af +34b45bb,ff +34b45bc,ff +34b45bd,f8 +34b45bf,c +34b45c0,a0 +34b45c3,c +34b45c4,a0 +34b45c7,c +34b45c8,a0 +34b45ff,d +34b4600,d0 +34b4603,e +34b4604,c0 +34b4607,4f +34b4608,80 +34b460b,9d +34b462f,df +34b4630,fb +34b466f,e +34b4670,c0 +34b4673,e +34b4674,c0 +34b468c,b +34b468d,c0 +34b4690,4e +34b4691,60 +34b4694,bc +34b4697,3 +34b4698,e8 +34b469b,a +34b469c,d0 +34b469f,1e +34b46a0,90 +34b46a3,9e +34b46a4,20 +34b46a7,da +34b46aa,7 +34b46ab,e3 +34b46ae,c +34b46af,b0 +34b46b2,6e +34b46b3,50 +34b46c2,3 +34b46c3,ce +34b46c4,eb +34b46c6,b +34b46c7,d5 +34b46c8,7e +34b46c9,90 +34b46ca,e +34b46cb,90 +34b46cc,b +34b46cd,d0 +34b46ce,5f +34b46cf,70 +34b46d0,9 +34b46d1,e0 +34b46d2,6f +34b46d3,6c +34b46d4,b9 +34b46d5,e0 +34b46d6,5f +34b46d7,70 +34b46d8,9 +34b46d9,e0 +34b46da,e +34b46db,90 +34b46dc,b +34b46dd,d0 +34b46de,b +34b46df,d5 +34b46e0,7e +34b46e1,90 +34b46e2,3 +34b46e3,ce +34b46e4,eb +34b46fa,a +34b46fb,ff +34b46fc,e0 +34b46ff,8 +34b4700,e0 +34b4703,8 +34b4704,e0 +34b4707,8 +34b4708,e0 +34b470b,8 +34b470c,e0 +34b470f,8 +34b4710,e0 +34b4713,8 +34b4714,e0 +34b4717,8 +34b4718,e0 +34b471a,8 +34b471b,ff +34b471c,ff +34b471d,e0 +34b4732,8 +34b4733,de +34b4734,ea +34b4736,c +34b4737,83 +34b4738,7e +34b4739,90 +34b473c,c +34b473d,c0 +34b4740,2e +34b4741,a0 +34b4744,bd +34b4745,20 +34b4747,b +34b4748,d4 +34b474b,bd +34b474c,40 +34b474e,b +34b474f,d4 +34b4752,2f +34b4753,ff +34b4754,ff +34b4755,d0 +34b476a,7 +34b476b,ce +34b476c,ea +34b476e,c +34b476f,83 +34b4770,7e +34b4771,90 +34b4774,c +34b4775,b0 +34b4777,2 +34b4778,7e +34b4779,90 +34b477b,bf +34b477c,fb +34b477f,2 +34b4780,7d +34b4781,a0 +34b4784,a +34b4785,d0 +34b4786,5c +34b4787,62 +34b4788,7d +34b4789,b0 +34b478a,9 +34b478b,de +34b478c,eb +34b478d,30 +34b47a3,2 +34b47a4,de +34b47a7,b +34b47a8,de +34b47ab,7d +34b47ac,9e +34b47ae,2 +34b47af,d7 +34b47b0,9e +34b47b2,b +34b47b3,b0 +34b47b4,9e +34b47b6,6e +34b47b7,40 +34b47b8,9e +34b47ba,9f +34b47bb,ff +34b47bc,ff +34b47bd,f7 +34b47c0,9e +34b47c4,9e +34b47da,c +34b47db,ff +34b47dc,ff +34b47dd,50 +34b47de,c +34b47df,a0 +34b47e2,c +34b47e3,a0 +34b47e6,c +34b47e7,ee +34b47e8,ea +34b47eb,3 +34b47ec,8e +34b47ed,90 +34b47f0,b +34b47f1,c0 +34b47f4,b +34b47f5,c0 +34b47f6,5c +34b47f7,63 +34b47f8,8e +34b47f9,90 +34b47fa,9 +34b47fb,de +34b47fc,da +34b4813,ae +34b4814,ec +34b4815,30 +34b4816,a +34b4817,e8 +34b4818,39 +34b4819,80 +34b481a,e +34b481b,90 +34b481e,4f +34b481f,ae +34b4820,ec +34b4821,40 +34b4822,6f +34b4823,d5 +34b4824,5d +34b4825,c0 +34b4826,5f +34b4827,90 +34b4828,9 +34b4829,e0 +34b482a,e +34b482b,90 +34b482c,9 +34b482d,e0 +34b482e,c +34b482f,d5 +34b4830,5d +34b4831,c0 +34b4832,3 +34b4833,ce +34b4834,ec +34b4835,40 +34b484a,5f +34b484b,ff +34b484c,ff +34b484d,d0 +34b4850,d +34b4851,a0 +34b4854,7e +34b4855,40 +34b4858,cc +34b485b,4 +34b485c,e8 +34b485f,a +34b4860,d0 +34b4863,d +34b4864,a0 +34b4867,8e +34b4868,40 +34b486b,cc +34b4882,5 +34b4883,ce +34b4884,ec +34b4885,30 +34b4886,d +34b4887,c4 +34b4888,5d +34b4889,b0 +34b488a,e +34b488b,90 +34b488c,b +34b488d,d0 +34b488e,b +34b488f,c4 +34b4890,5d +34b4891,90 +34b4892,4 +34b4893,df +34b4894,fc +34b4895,20 +34b4896,1d +34b4897,b4 +34b4898,5c +34b4899,c0 +34b489a,5f +34b489b,60 +34b489c,9 +34b489d,e0 +34b489e,2e +34b489f,b3 +34b48a0,5c +34b48a1,d0 +34b48a2,7 +34b48a3,de +34b48a4,ec +34b48a5,50 +34b48ba,6 +34b48bb,de +34b48bc,eb +34b48be,d +34b48bf,b3 +34b48c0,7e +34b48c1,90 +34b48c2,5f +34b48c3,50 +34b48c4,b +34b48c5,d0 +34b48c6,5f +34b48c7,50 +34b48c8,b +34b48c9,e0 +34b48ca,d +34b48cb,b3 +34b48cc,7e +34b48cd,e0 +34b48ce,6 +34b48cf,de +34b48d0,db +34b48d1,e0 +34b48d4,b +34b48d5,c0 +34b48d6,9 +34b48d7,74 +34b48d8,9e +34b48d9,70 +34b48da,5 +34b48db,de +34b48dc,d8 +34b48fb,e +34b48fc,c0 +34b48ff,e +34b4900,c0 +34b490f,e +34b4910,c0 +34b4913,e +34b4914,c0 +34b4933,e +34b4934,c0 +34b4937,e +34b4938,c0 +34b4947,d +34b4948,d0 +34b494b,e +34b494c,c0 +34b494f,4f +34b4950,80 +34b4953,9d +34b496c,29 +34b496d,c8 +34b496f,7b +34b4970,ed +34b4971,93 +34b4972,8d +34b4973,da +34b4974,40 +34b4976,8d +34b4977,da +34b4978,40 +34b497b,7b +34b497c,ec +34b497d,93 +34b4980,29 +34b4981,c8 +34b49a6,af +34b49a7,ff +34b49a8,ff +34b49a9,f8 +34b49b2,af +34b49b3,ff +34b49b4,ff +34b49b5,f8 +34b49da,ac +34b49db,81 +34b49de,4a +34b49df,de +34b49e0,b6 +34b49e3,6 +34b49e4,ad +34b49e5,d6 +34b49e7,6 +34b49e8,ad +34b49e9,d6 +34b49ea,4a +34b49eb,de +34b49ec,b6 +34b49ee,ac +34b49ef,81 +34b4a0a,4 +34b4a0b,be +34b4a0c,ec +34b4a0d,30 +34b4a0e,9 +34b4a0f,a4 +34b4a10,6e +34b4a11,a0 +34b4a14,1d +34b4a15,a0 +34b4a17,2 +34b4a18,cd +34b4a19,30 +34b4a1b,c +34b4a1c,c1 +34b4a1f,e +34b4a20,90 +34b4a27,e +34b4a28,90 +34b4a2b,e +34b4a2c,90 +34b4a42,1 +34b4a43,ae +34b4a44,ed +34b4a45,70 +34b4a46,c +34b4a47,d7 +34b4a48,39 +34b4a49,e4 +34b4a4a,7e +34b4a4b,20 +34b4a4d,c9 +34b4a4e,ba +34b4a4f,a +34b4a50,ee +34b4a51,ca +34b4a52,d7 +34b4a53,6e +34b4a54,64 +34b4a55,da +34b4a56,d6 +34b4a57,9c +34b4a59,aa +34b4a5a,d7 +34b4a5b,6e +34b4a5c,64 +34b4a5d,da +34b4a5e,ba +34b4a5f,a +34b4a60,ee +34b4a61,ca +34b4a62,6e +34b4a63,40 +34b4a66,a +34b4a67,d8 +34b4a68,30 +34b4a6b,8d +34b4a6c,ee +34b4a6d,90 +34b4a7b,3e +34b4a7c,d0 +34b4a7f,9d +34b4a80,e6 +34b4a83,cb +34b4a84,cb +34b4a86,3 +34b4a87,e8 +34b4a88,ad 34b4a8a,8 -34b4a8b,f5 -34b4a8c,cd -34b4a8e,1 -34b4a8f,ea -34b4aa4,e -34b4aa5,ff -34b4aa6,ec -34b4aa7,40 -34b4aa8,e -34b4aa9,90 -34b4aaa,5d -34b4aab,c0 -34b4aac,e -34b4aad,90 -34b4aae,a -34b4aaf,e0 -34b4ab0,e -34b4ab1,90 -34b4ab2,5d -34b4ab3,c0 -34b4ab4,e -34b4ab5,ff -34b4ab6,fd -34b4ab7,50 -34b4ab8,e -34b4ab9,90 -34b4aba,4b -34b4abb,d2 -34b4abc,e -34b4abd,90 -34b4abe,5 -34b4abf,f6 -34b4ac0,e -34b4ac1,90 -34b4ac2,4b -34b4ac3,e3 -34b4ac4,e -34b4ac5,ff -34b4ac6,ed -34b4ac7,80 -34b4add,9d -34b4ade,ed -34b4adf,80 -34b4ae0,8 -34b4ae1,e9 -34b4ae2,36 -34b4ae3,b0 -34b4ae4,d -34b4ae5,b0 -34b4ae8,3f -34b4ae9,90 -34b4aec,5f -34b4aed,70 -34b4af0,1e -34b4af1,90 -34b4af4,d -34b4af5,b0 -34b4af8,8 -34b4af9,e9 -34b4afa,47 -34b4afb,b0 -34b4afd,9d -34b4afe,ed -34b4aff,80 -34b4b14,5f -34b4b15,fe -34b4b16,d8 -34b4b18,5f -34b4b19,65 -34b4b1a,ae -34b4b1b,80 -34b4b1c,5f -34b4b1d,60 -34b4b1e,c -34b4b1f,d0 -34b4b20,5f -34b4b21,60 -34b4b22,9 -34b4b23,e0 -34b4b24,5f -34b4b25,60 -34b4b26,9 -34b4b27,f0 -34b4b28,5f -34b4b29,60 -34b4b2a,9 -34b4b2b,e0 -34b4b2c,5f -34b4b2d,60 -34b4b2e,c -34b4b2f,d0 -34b4b30,5f -34b4b31,65 -34b4b32,ae -34b4b33,80 -34b4b34,5f -34b4b35,fe -34b4b36,d8 -34b4b4c,d -34b4b4d,ff -34b4b4e,ff -34b4b4f,e0 -34b4b50,d -34b4b51,b0 -34b4b54,d -34b4b55,b0 -34b4b58,d -34b4b59,b0 -34b4b5c,d -34b4b5d,ff -34b4b5e,ff -34b4b5f,c0 -34b4b60,d -34b4b61,b0 -34b4b64,d -34b4b65,b0 -34b4b68,d -34b4b69,b0 -34b4b6c,d -34b4b6d,ff -34b4b6e,ff -34b4b6f,f0 -34b4b84,b -34b4b85,ff -34b4b86,ff -34b4b87,f4 -34b4b88,b -34b4b89,d0 -34b4b8c,b -34b4b8d,d0 -34b4b90,b -34b4b91,d0 -34b4b94,b -34b4b95,ff -34b4b96,ff -34b4b97,c0 -34b4b98,b -34b4b99,d0 -34b4b9c,b -34b4b9d,d0 -34b4ba0,b -34b4ba1,d0 -34b4ba4,b -34b4ba5,d0 -34b4bbc,1 -34b4bbd,ae -34b4bbe,ed -34b4bbf,60 -34b4bc0,b -34b4bc1,e7 -34b4bc2,38 -34b4bc3,a0 -34b4bc4,4e -34b4bc5,90 -34b4bc8,8f -34b4bc9,40 -34b4bcc,9f -34b4bcd,10 -34b4bce,bf -34b4bcf,f2 -34b4bd0,7f -34b4bd1,40 -34b4bd2,7 -34b4bd3,f2 -34b4bd4,4e -34b4bd5,90 -34b4bd6,7 -34b4bd7,f2 -34b4bd8,b -34b4bd9,e7 -34b4bda,39 -34b4bdb,f2 -34b4bdc,1 -34b4bdd,be -34b4bde,ed -34b4bdf,90 -34b4bf4,5f -34b4bf5,60 -34b4bf6,9 -34b4bf7,e0 -34b4bf8,5f -34b4bf9,60 -34b4bfa,9 -34b4bfb,e0 -34b4bfc,5f -34b4bfd,60 -34b4bfe,9 -34b4bff,e0 -34b4c00,5f -34b4c01,60 -34b4c02,9 -34b4c03,e0 -34b4c04,5f -34b4c05,ff -34b4c06,ff -34b4c07,e0 -34b4c08,5f -34b4c09,60 -34b4c0a,9 -34b4c0b,e0 -34b4c0c,5f -34b4c0d,60 -34b4c0e,9 -34b4c0f,e0 -34b4c10,5f -34b4c11,60 -34b4c12,9 -34b4c13,e0 -34b4c14,5f -34b4c15,60 -34b4c16,9 -34b4c17,e0 -34b4c2c,d -34b4c2d,ff -34b4c2e,ff -34b4c2f,b0 -34b4c31,d -34b4c32,b0 -34b4c35,d -34b4c36,b0 -34b4c39,d -34b4c3a,b0 -34b4c3d,d -34b4c3e,b0 -34b4c41,d -34b4c42,b0 -34b4c45,d -34b4c46,b0 -34b4c49,d -34b4c4a,b0 -34b4c4c,d -34b4c4d,ff -34b4c4e,ff -34b4c4f,b0 -34b4c65,cf -34b4c66,ff -34b4c67,40 -34b4c6a,7f -34b4c6b,40 -34b4c6e,7f -34b4c6f,40 -34b4c72,7f -34b4c73,40 -34b4c76,7f -34b4c77,40 -34b4c7a,7f -34b4c7b,30 -34b4c7c,75 -34b4c7e,9e -34b4c80,8d -34b4c81,64 -34b4c82,dc -34b4c84,2b -34b4c85,ee -34b4c86,c5 -34b4c9c,5f -34b4c9d,60 -34b4c9e,9 -34b4c9f,e7 -34b4ca0,5f -34b4ca1,60 -34b4ca2,9e -34b4ca3,70 -34b4ca4,5f -34b4ca5,69 -34b4ca6,e7 -34b4ca8,5f -34b4ca9,be -34b4caa,80 -34b4cac,5f -34b4cad,ed -34b4cae,b0 -34b4cb0,5f -34b4cb1,87 -34b4cb2,e8 -34b4cb4,5f -34b4cb5,60 -34b4cb6,ae -34b4cb7,40 -34b4cb8,5f -34b4cb9,60 -34b4cba,1d -34b4cbb,c0 -34b4cbc,5f -34b4cbd,60 -34b4cbe,6 -34b4cbf,ea -34b4cd4,c -34b4cd5,c0 -34b4cd8,c -34b4cd9,c0 -34b4cdc,c -34b4cdd,c0 -34b4ce0,c -34b4ce1,c0 -34b4ce4,c -34b4ce5,c0 -34b4ce8,c -34b4ce9,c0 -34b4cec,c -34b4ced,c0 -34b4cf0,c -34b4cf1,c0 -34b4cf4,c -34b4cf5,ff -34b4cf6,ff -34b4cf7,f7 -34b4d0c,af -34b4d0d,a0 -34b4d0e,c -34b4d0f,f8 -34b4d10,ae -34b4d11,d0 -34b4d12,2e -34b4d13,e8 -34b4d14,ad -34b4d15,d5 -34b4d16,9b -34b4d17,e8 -34b4d18,ad -34b4d19,aa -34b4d1a,c8 -34b4d1b,e8 -34b4d1c,ad -34b4d1d,5d -34b4d1e,e1 -34b4d1f,e8 -34b4d20,ad -34b4d21,d -34b4d22,b0 -34b4d23,e8 -34b4d24,ad -34b4d27,e8 -34b4d28,ad -34b4d2b,e8 -34b4d2c,ad -34b4d2f,e8 -34b4d44,5f -34b4d45,c0 -34b4d46,8 -34b4d47,e0 -34b4d48,5f -34b4d49,e6 -34b4d4a,8 -34b4d4b,e0 -34b4d4c,5f -34b4d4d,cb -34b4d4e,8 -34b4d4f,e0 -34b4d50,5f -34b4d51,7e -34b4d52,48 -34b4d53,e0 -34b4d54,5f -34b4d55,5c -34b4d56,a8 -34b4d57,e0 -34b4d58,5f -34b4d59,57 -34b4d5a,e8 -34b4d5b,e0 -34b4d5c,5f -34b4d5d,50 -34b4d5e,dc -34b4d5f,e0 -34b4d60,5f -34b4d61,50 -34b4d62,9e -34b4d63,e0 -34b4d64,5f -34b4d65,50 -34b4d66,2e -34b4d67,e0 -34b4d7c,4 -34b4d7d,ce -34b4d7e,eb -34b4d7f,20 -34b4d80,c -34b4d81,d5 -34b4d82,6e -34b4d83,a0 -34b4d84,3e -34b4d85,80 -34b4d86,a -34b4d87,e0 -34b4d88,7f -34b4d89,50 -34b4d8a,8 -34b4d8b,f2 -34b4d8c,7f -34b4d8d,40 -34b4d8e,8 -34b4d8f,f4 -34b4d90,7f -34b4d91,50 -34b4d92,8 -34b4d93,f2 -34b4d94,3e -34b4d95,80 -34b4d96,a -34b4d97,e0 -34b4d98,c -34b4d99,d5 -34b4d9a,6e -34b4d9b,b0 -34b4d9c,4 -34b4d9d,ce -34b4d9e,eb -34b4d9f,20 -34b4db4,d -34b4db5,ff -34b4db6,ed -34b4db7,60 -34b4db8,d -34b4db9,b0 -34b4dba,5c -34b4dbb,e2 -34b4dbc,d -34b4dbd,b0 -34b4dbe,6 -34b4dbf,f6 -34b4dc0,d -34b4dc1,b0 -34b4dc2,6 -34b4dc3,f6 -34b4dc4,d -34b4dc5,b0 -34b4dc6,5c -34b4dc7,e2 -34b4dc8,d -34b4dc9,ff -34b4dca,ed -34b4dcb,60 -34b4dcc,d -34b4dcd,b0 -34b4dd0,d -34b4dd1,b0 -34b4dd4,d -34b4dd5,b0 -34b4dec,4 -34b4ded,ce -34b4dee,eb -34b4def,20 -34b4df0,c -34b4df1,d5 -34b4df2,6e -34b4df3,a0 -34b4df4,3e -34b4df5,80 -34b4df6,a -34b4df7,e0 -34b4df8,7f -34b4df9,50 -34b4dfa,8 -34b4dfb,f2 -34b4dfc,7f -34b4dfd,40 -34b4dfe,8 -34b4dff,f4 -34b4e00,7f -34b4e01,50 -34b4e02,8 -34b4e03,f1 -34b4e04,3e -34b4e05,80 -34b4e06,a -34b4e07,d0 -34b4e08,c -34b4e09,d5 -34b4e0a,6e -34b4e0b,a0 -34b4e0c,4 -34b4e0d,ce -34b4e0e,fc -34b4e0f,20 -34b4e12,ae -34b4e13,50 +34b4a8b,e2 +34b4a8c,6f +34b4a8d,60 +34b4a8e,c +34b4a8f,c0 +34b4a90,e +34b4a91,a0 +34b4a92,2e +34b4a93,ff +34b4a94,ff +34b4a95,d0 +34b4a96,8e +34b4a97,50 +34b4a98,8 +34b4a99,f5 +34b4a9a,cd +34b4a9c,1 +34b4a9d,ea +34b4ab2,e +34b4ab3,ff +34b4ab4,ec +34b4ab5,40 +34b4ab6,e +34b4ab7,90 +34b4ab8,5d +34b4ab9,c0 +34b4aba,e +34b4abb,90 +34b4abc,a +34b4abd,e0 +34b4abe,e +34b4abf,90 +34b4ac0,5d +34b4ac1,c0 +34b4ac2,e +34b4ac3,ff +34b4ac4,fd +34b4ac5,50 +34b4ac6,e +34b4ac7,90 +34b4ac8,4b +34b4ac9,d2 +34b4aca,e +34b4acb,90 +34b4acc,5 +34b4acd,f6 +34b4ace,e +34b4acf,90 +34b4ad0,4b +34b4ad1,e3 +34b4ad2,e +34b4ad3,ff +34b4ad4,ed +34b4ad5,80 +34b4aeb,9d +34b4aec,ed +34b4aed,80 +34b4aee,8 +34b4aef,e9 +34b4af0,36 +34b4af1,b0 +34b4af2,d +34b4af3,b0 +34b4af6,3f +34b4af7,90 +34b4afa,5f +34b4afb,70 +34b4afe,1e +34b4aff,90 +34b4b02,d +34b4b03,b0 +34b4b06,8 +34b4b07,e9 +34b4b08,47 +34b4b09,b0 +34b4b0b,9d +34b4b0c,ed +34b4b0d,80 +34b4b22,5f +34b4b23,fe +34b4b24,d8 +34b4b26,5f +34b4b27,65 +34b4b28,ae +34b4b29,80 +34b4b2a,5f +34b4b2b,60 +34b4b2c,c +34b4b2d,d0 +34b4b2e,5f +34b4b2f,60 +34b4b30,9 +34b4b31,e0 +34b4b32,5f +34b4b33,60 +34b4b34,9 +34b4b35,f0 +34b4b36,5f +34b4b37,60 +34b4b38,9 +34b4b39,e0 +34b4b3a,5f +34b4b3b,60 +34b4b3c,c +34b4b3d,d0 +34b4b3e,5f +34b4b3f,65 +34b4b40,ae +34b4b41,80 +34b4b42,5f +34b4b43,fe +34b4b44,d8 +34b4b5a,d +34b4b5b,ff +34b4b5c,ff +34b4b5d,e0 +34b4b5e,d +34b4b5f,b0 +34b4b62,d +34b4b63,b0 +34b4b66,d +34b4b67,b0 +34b4b6a,d +34b4b6b,ff +34b4b6c,ff +34b4b6d,c0 +34b4b6e,d +34b4b6f,b0 +34b4b72,d +34b4b73,b0 +34b4b76,d +34b4b77,b0 +34b4b7a,d +34b4b7b,ff +34b4b7c,ff +34b4b7d,f0 +34b4b92,b +34b4b93,ff +34b4b94,ff +34b4b95,f4 +34b4b96,b +34b4b97,d0 +34b4b9a,b +34b4b9b,d0 +34b4b9e,b +34b4b9f,d0 +34b4ba2,b +34b4ba3,ff +34b4ba4,ff +34b4ba5,c0 +34b4ba6,b +34b4ba7,d0 +34b4baa,b +34b4bab,d0 +34b4bae,b +34b4baf,d0 +34b4bb2,b +34b4bb3,d0 +34b4bca,1 +34b4bcb,ae +34b4bcc,ed +34b4bcd,60 +34b4bce,b +34b4bcf,e7 +34b4bd0,38 +34b4bd1,a0 +34b4bd2,4e +34b4bd3,90 +34b4bd6,8f +34b4bd7,40 +34b4bda,9f +34b4bdb,10 +34b4bdc,bf +34b4bdd,f2 +34b4bde,7f +34b4bdf,40 +34b4be0,7 +34b4be1,f2 +34b4be2,4e +34b4be3,90 +34b4be4,7 +34b4be5,f2 +34b4be6,b +34b4be7,e7 +34b4be8,39 +34b4be9,f2 +34b4bea,1 +34b4beb,be +34b4bec,ed +34b4bed,90 +34b4c02,5f +34b4c03,60 +34b4c04,9 +34b4c05,e0 +34b4c06,5f +34b4c07,60 +34b4c08,9 +34b4c09,e0 +34b4c0a,5f +34b4c0b,60 +34b4c0c,9 +34b4c0d,e0 +34b4c0e,5f +34b4c0f,60 +34b4c10,9 +34b4c11,e0 +34b4c12,5f +34b4c13,ff +34b4c14,ff +34b4c15,e0 +34b4c16,5f +34b4c17,60 +34b4c18,9 +34b4c19,e0 +34b4c1a,5f +34b4c1b,60 +34b4c1c,9 +34b4c1d,e0 +34b4c1e,5f +34b4c1f,60 +34b4c20,9 +34b4c21,e0 +34b4c22,5f +34b4c23,60 +34b4c24,9 +34b4c25,e0 +34b4c3a,d +34b4c3b,ff +34b4c3c,ff +34b4c3d,b0 +34b4c3f,d +34b4c40,b0 +34b4c43,d +34b4c44,b0 +34b4c47,d +34b4c48,b0 +34b4c4b,d +34b4c4c,b0 +34b4c4f,d +34b4c50,b0 +34b4c53,d +34b4c54,b0 +34b4c57,d +34b4c58,b0 +34b4c5a,d +34b4c5b,ff +34b4c5c,ff +34b4c5d,b0 +34b4c73,cf +34b4c74,ff +34b4c75,40 +34b4c78,7f +34b4c79,40 +34b4c7c,7f +34b4c7d,40 +34b4c80,7f +34b4c81,40 +34b4c84,7f +34b4c85,40 +34b4c88,7f +34b4c89,30 +34b4c8a,75 +34b4c8c,9e +34b4c8e,8d +34b4c8f,64 +34b4c90,dc +34b4c92,2b +34b4c93,ee +34b4c94,c5 +34b4caa,5f +34b4cab,60 +34b4cac,9 +34b4cad,e7 +34b4cae,5f +34b4caf,60 +34b4cb0,9e +34b4cb1,70 +34b4cb2,5f +34b4cb3,69 +34b4cb4,e7 +34b4cb6,5f +34b4cb7,be +34b4cb8,80 +34b4cba,5f +34b4cbb,ed +34b4cbc,b0 +34b4cbe,5f +34b4cbf,87 +34b4cc0,e8 +34b4cc2,5f +34b4cc3,60 +34b4cc4,ae +34b4cc5,40 +34b4cc6,5f +34b4cc7,60 +34b4cc8,1d +34b4cc9,c0 +34b4cca,5f +34b4ccb,60 +34b4ccc,6 +34b4ccd,ea +34b4ce2,c +34b4ce3,c0 +34b4ce6,c +34b4ce7,c0 +34b4cea,c +34b4ceb,c0 +34b4cee,c +34b4cef,c0 +34b4cf2,c +34b4cf3,c0 +34b4cf6,c +34b4cf7,c0 +34b4cfa,c +34b4cfb,c0 +34b4cfe,c +34b4cff,c0 +34b4d02,c +34b4d03,ff +34b4d04,ff +34b4d05,f7 +34b4d1a,af +34b4d1b,a0 +34b4d1c,c +34b4d1d,f8 +34b4d1e,ae +34b4d1f,d0 +34b4d20,2e +34b4d21,e8 +34b4d22,ad +34b4d23,d5 +34b4d24,9b +34b4d25,e8 +34b4d26,ad +34b4d27,aa +34b4d28,c8 +34b4d29,e8 +34b4d2a,ad +34b4d2b,5d +34b4d2c,e1 +34b4d2d,e8 +34b4d2e,ad +34b4d2f,d +34b4d30,b0 +34b4d31,e8 +34b4d32,ad +34b4d35,e8 +34b4d36,ad +34b4d39,e8 +34b4d3a,ad +34b4d3d,e8 +34b4d52,5f +34b4d53,c0 +34b4d54,8 +34b4d55,e0 +34b4d56,5f +34b4d57,e6 +34b4d58,8 +34b4d59,e0 +34b4d5a,5f +34b4d5b,cb +34b4d5c,8 +34b4d5d,e0 +34b4d5e,5f +34b4d5f,7e +34b4d60,48 +34b4d61,e0 +34b4d62,5f +34b4d63,5c +34b4d64,a8 +34b4d65,e0 +34b4d66,5f +34b4d67,57 +34b4d68,e8 +34b4d69,e0 +34b4d6a,5f +34b4d6b,50 +34b4d6c,dc +34b4d6d,e0 +34b4d6e,5f +34b4d6f,50 +34b4d70,9e +34b4d71,e0 +34b4d72,5f +34b4d73,50 +34b4d74,2e +34b4d75,e0 +34b4d8a,4 +34b4d8b,ce +34b4d8c,eb +34b4d8d,20 +34b4d8e,c +34b4d8f,d5 +34b4d90,6e +34b4d91,a0 +34b4d92,3e +34b4d93,80 +34b4d94,a +34b4d95,e0 +34b4d96,7f +34b4d97,50 +34b4d98,8 +34b4d99,f2 +34b4d9a,7f +34b4d9b,40 +34b4d9c,8 +34b4d9d,f4 +34b4d9e,7f +34b4d9f,50 +34b4da0,8 +34b4da1,f2 +34b4da2,3e +34b4da3,80 +34b4da4,a +34b4da5,e0 +34b4da6,c +34b4da7,d5 +34b4da8,6e +34b4da9,b0 +34b4daa,4 +34b4dab,ce +34b4dac,eb +34b4dad,20 +34b4dc2,d +34b4dc3,ff +34b4dc4,ed +34b4dc5,60 +34b4dc6,d +34b4dc7,b0 +34b4dc8,5c +34b4dc9,e2 +34b4dca,d +34b4dcb,b0 +34b4dcc,6 +34b4dcd,f6 +34b4dce,d +34b4dcf,b0 +34b4dd0,6 +34b4dd1,f6 +34b4dd2,d +34b4dd3,b0 +34b4dd4,5c +34b4dd5,e2 +34b4dd6,d +34b4dd7,ff +34b4dd8,ed +34b4dd9,60 +34b4dda,d +34b4ddb,b0 +34b4dde,d +34b4ddf,b0 +34b4de2,d +34b4de3,b0 +34b4dfa,4 +34b4dfb,ce +34b4dfc,eb +34b4dfd,20 +34b4dfe,c +34b4dff,d5 +34b4e00,6e +34b4e01,a0 +34b4e02,3e +34b4e03,80 +34b4e04,a +34b4e05,e0 +34b4e06,7f +34b4e07,50 +34b4e08,8 +34b4e09,f2 +34b4e0a,7f +34b4e0b,40 +34b4e0c,8 +34b4e0d,f4 +34b4e0e,7f +34b4e0f,50 +34b4e10,8 +34b4e11,f1 +34b4e12,3e +34b4e13,80 +34b4e14,a +34b4e15,d0 34b4e16,c -34b4e17,80 -34b4e24,5f -34b4e25,fe -34b4e26,eb -34b4e27,20 -34b4e28,5f -34b4e29,71 -34b4e2a,7e -34b4e2b,b0 -34b4e2c,5f -34b4e2d,70 -34b4e2e,c -34b4e2f,d0 -34b4e30,5f -34b4e31,71 -34b4e32,6e -34b4e33,a0 -34b4e34,5f -34b4e35,ff -34b4e36,ea -34b4e38,5f -34b4e39,72 -34b4e3a,ae -34b4e3b,40 -34b4e3c,5f -34b4e3d,70 -34b4e3e,d -34b4e3f,b0 -34b4e40,5f -34b4e41,70 -34b4e42,8 -34b4e43,e5 -34b4e44,5f -34b4e45,70 -34b4e47,db -34b4e5c,6 -34b4e5d,ce -34b4e5e,eb -34b4e5f,30 -34b4e60,d -34b4e61,c4 -34b4e62,5a -34b4e63,90 -34b4e64,4f -34b4e65,60 -34b4e68,e -34b4e69,c6 -34b4e6c,5 -34b4e6d,ce -34b4e6e,eb -34b4e6f,40 -34b4e72,6c -34b4e73,c0 -34b4e76,8 -34b4e77,e0 -34b4e78,c -34b4e79,73 -34b4e7a,5c -34b4e7b,d0 -34b4e7c,8 -34b4e7d,de -34b4e7e,ec -34b4e7f,50 -34b4e94,cf -34b4e95,ff -34b4e96,ff -34b4e97,fb -34b4e99,d -34b4e9a,b0 -34b4e9d,d -34b4e9e,b0 -34b4ea1,d -34b4ea2,b0 -34b4ea5,d -34b4ea6,b0 -34b4ea9,d -34b4eaa,b0 -34b4ead,d -34b4eae,b0 -34b4eb1,d -34b4eb2,b0 -34b4eb5,d -34b4eb6,b0 -34b4ecc,4f -34b4ecd,70 -34b4ece,9 -34b4ecf,e0 -34b4ed0,4f -34b4ed1,70 -34b4ed2,9 -34b4ed3,e0 -34b4ed4,4f -34b4ed5,70 -34b4ed6,9 -34b4ed7,e0 -34b4ed8,4f -34b4ed9,70 -34b4eda,9 -34b4edb,e0 -34b4edc,4f -34b4edd,70 -34b4ede,9 -34b4edf,e0 -34b4ee0,3f -34b4ee1,70 -34b4ee2,9 -34b4ee3,e0 -34b4ee4,2e -34b4ee5,70 -34b4ee6,a -34b4ee7,d0 -34b4ee8,d -34b4ee9,c4 -34b4eea,5d -34b4eeb,c0 -34b4eec,5 -34b4eed,ce -34b4eee,ec -34b4eef,40 -34b4f04,ad -34b4f06,3 -34b4f07,e8 -34b4f08,6f -34b4f09,50 -34b4f0a,8 -34b4f0b,e3 -34b4f0c,e -34b4f0d,90 -34b4f0e,b -34b4f0f,c0 -34b4f10,b -34b4f11,c0 -34b4f12,d -34b4f13,90 -34b4f14,8 -34b4f15,e1 -34b4f16,5e -34b4f17,40 -34b4f18,2 -34b4f19,e7 -34b4f1a,ad -34b4f1d,cb -34b4f1e,ca -34b4f21,9d -34b4f22,e6 -34b4f25,3e -34b4f26,d0 -34b4f3c,e8 -34b4f3f,ad -34b4f40,da -34b4f43,cb -34b4f44,cb -34b4f47,da -34b4f48,ac -34b4f49,e -34b4f4a,c0 -34b4f4b,e8 -34b4f4c,8d -34b4f4d,6d -34b4f4e,e1 -34b4f4f,e5 -34b4f50,6e -34b4f51,9b -34b4f52,d8 -34b4f53,e0 -34b4f54,1e -34b4f55,c8 +34b4e17,d5 +34b4e18,6e +34b4e19,a0 +34b4e1a,4 +34b4e1b,ce +34b4e1c,fc +34b4e1d,20 +34b4e20,ae +34b4e21,50 +34b4e24,c +34b4e25,80 +34b4e32,5f +34b4e33,fe +34b4e34,eb +34b4e35,20 +34b4e36,5f +34b4e37,71 +34b4e38,7e +34b4e39,b0 +34b4e3a,5f +34b4e3b,70 +34b4e3c,c +34b4e3d,d0 +34b4e3e,5f +34b4e3f,71 +34b4e40,6e +34b4e41,a0 +34b4e42,5f +34b4e43,ff +34b4e44,ea +34b4e46,5f +34b4e47,72 +34b4e48,ae +34b4e49,40 +34b4e4a,5f +34b4e4b,70 +34b4e4c,d +34b4e4d,b0 +34b4e4e,5f +34b4e4f,70 +34b4e50,8 +34b4e51,e5 +34b4e52,5f +34b4e53,70 +34b4e55,db +34b4e6a,6 +34b4e6b,ce +34b4e6c,eb +34b4e6d,30 +34b4e6e,d +34b4e6f,c4 +34b4e70,5a +34b4e71,90 +34b4e72,4f +34b4e73,60 +34b4e76,e +34b4e77,c6 +34b4e7a,5 +34b4e7b,ce +34b4e7c,eb +34b4e7d,40 +34b4e80,6c +34b4e81,c0 +34b4e84,8 +34b4e85,e0 +34b4e86,c +34b4e87,73 +34b4e88,5c +34b4e89,d0 +34b4e8a,8 +34b4e8b,de +34b4e8c,ec +34b4e8d,50 +34b4ea2,cf +34b4ea3,ff +34b4ea4,ff +34b4ea5,fb +34b4ea7,d +34b4ea8,b0 +34b4eab,d +34b4eac,b0 +34b4eaf,d +34b4eb0,b0 +34b4eb3,d +34b4eb4,b0 +34b4eb7,d +34b4eb8,b0 +34b4ebb,d +34b4ebc,b0 +34b4ebf,d +34b4ec0,b0 +34b4ec3,d +34b4ec4,b0 +34b4eda,4f +34b4edb,70 +34b4edc,9 +34b4edd,e0 +34b4ede,4f +34b4edf,70 +34b4ee0,9 +34b4ee1,e0 +34b4ee2,4f +34b4ee3,70 +34b4ee4,9 +34b4ee5,e0 +34b4ee6,4f +34b4ee7,70 +34b4ee8,9 +34b4ee9,e0 +34b4eea,4f +34b4eeb,70 +34b4eec,9 +34b4eed,e0 +34b4eee,3f +34b4eef,70 +34b4ef0,9 +34b4ef1,e0 +34b4ef2,2e +34b4ef3,70 +34b4ef4,a +34b4ef5,d0 +34b4ef6,d +34b4ef7,c4 +34b4ef8,5d +34b4ef9,c0 +34b4efa,5 +34b4efb,ce +34b4efc,ec +34b4efd,40 +34b4f12,ad +34b4f14,3 +34b4f15,e8 +34b4f16,6f +34b4f17,50 +34b4f18,8 +34b4f19,e3 +34b4f1a,e +34b4f1b,90 +34b4f1c,b +34b4f1d,c0 +34b4f1e,b +34b4f1f,c0 +34b4f20,d +34b4f21,90 +34b4f22,8 +34b4f23,e1 +34b4f24,5e +34b4f25,40 +34b4f26,2 +34b4f27,e7 +34b4f28,ad +34b4f2b,cb +34b4f2c,ca +34b4f2f,9d +34b4f30,e6 +34b4f33,3e +34b4f34,d0 +34b4f4a,e8 +34b4f4d,ad +34b4f4e,da +34b4f51,cb +34b4f52,cb +34b4f55,da 34b4f56,ac -34b4f57,d0 -34b4f58,d -34b4f59,e3 -34b4f5a,7e -34b4f5b,c0 -34b4f5c,c -34b4f5d,d0 -34b4f5e,e -34b4f5f,a0 -34b4f74,6e -34b4f75,70 -34b4f76,7 -34b4f77,e7 -34b4f78,a -34b4f79,d2 -34b4f7a,1d -34b4f7b,b0 -34b4f7c,2 -34b4f7d,da -34b4f7e,ad -34b4f7f,20 -34b4f81,7e -34b4f82,e7 -34b4f85,3e -34b4f86,e2 -34b4f89,bd -34b4f8a,da -34b4f8c,7 -34b4f8d,e6 -34b4f8e,7e -34b4f8f,60 -34b4f90,3e -34b4f91,a0 -34b4f92,b -34b4f93,d0 -34b4f94,bd -34b4f95,20 -34b4f96,4 -34b4f97,e9 -34b4fac,ae -34b4fad,20 -34b4fae,5 -34b4faf,e8 -34b4fb0,2d -34b4fb1,a0 -34b4fb2,c -34b4fb3,c0 -34b4fb4,7 -34b4fb5,e5 -34b4fb6,7e -34b4fb7,50 -34b4fb9,cc -34b4fba,da -34b4fbd,4e -34b4fbe,d2 -34b4fc1,d -34b4fc2,b0 -34b4fc5,d -34b4fc6,b0 -34b4fc9,d -34b4fca,b0 -34b4fcd,d -34b4fce,b0 -34b4fe4,e -34b4fe5,ff -34b4fe6,ff -34b4fe7,f8 -34b4fea,b -34b4feb,d3 -34b4fee,7e -34b4fef,70 -34b4ff1,3 -34b4ff2,ea -34b4ff5,b -34b4ff6,d1 -34b4ff9,8e -34b4ffa,50 -34b4ffc,4 -34b4ffd,e9 -34b5000,c -34b5001,c0 -34b5004,1f -34b5005,ff -34b5006,ff -34b5007,fa -34b5015,4f -34b5016,fc -34b5019,4f -34b501a,50 -34b501d,4f -34b501e,50 -34b5021,4f -34b5022,50 -34b5025,4f -34b5026,50 -34b5029,4f -34b502a,50 -34b502d,4f -34b502e,50 -34b5031,4f -34b5032,50 -34b5035,4f -34b5036,50 -34b5039,4f -34b503a,50 -34b503d,4f -34b503e,50 -34b5041,4f -34b5042,fc -34b5054,6e -34b5055,50 -34b5058,c -34b5059,b0 -34b505c,7 -34b505d,e3 -34b5061,da -34b5065,9e -34b5066,20 -34b5069,1e -34b506a,90 -34b506d,a -34b506e,d0 -34b5071,3 -34b5072,e8 -34b5076,bc -34b507a,4e -34b507b,60 -34b507e,b -34b507f,c0 -34b5085,df -34b5086,e0 -34b5089,8 -34b508a,e0 -34b508d,8 -34b508e,e0 -34b5091,8 -34b5092,e0 -34b5095,8 -34b5096,e0 -34b5099,8 -34b509a,e0 -34b509d,8 -34b509e,e0 -34b50a1,8 -34b50a2,e0 -34b50a5,8 -34b50a6,e0 -34b50a9,8 -34b50aa,e0 -34b50ad,8 -34b50ae,e0 -34b50b1,df -34b50b2,e0 -34b50c5,5e -34b50c6,d2 -34b50c9,dc -34b50ca,db -34b50cc,a -34b50cd,d2 -34b50ce,5e -34b50cf,80 -34b50d0,7e -34b50d1,50 -34b50d2,7 -34b50d3,e5 -34b5128,ff -34b5129,ff -34b512a,ff -34b512b,fd -34b5130,2 -34b5131,ca -34b5135,2c -34b5136,90 -34b5174,5 -34b5175,ce -34b5176,eb -34b5177,10 -34b5178,b -34b5179,93 -34b517a,6d -34b517b,a0 -34b517e,b -34b517f,c0 -34b5180,8 -34b5181,de -34b5182,ff -34b5183,c0 -34b5184,3e -34b5185,93 +34b4f57,e +34b4f58,c0 +34b4f59,e8 +34b4f5a,8d +34b4f5b,6d +34b4f5c,e1 +34b4f5d,e5 +34b4f5e,6e +34b4f5f,9b +34b4f60,d8 +34b4f61,e0 +34b4f62,1e +34b4f63,c8 +34b4f64,ac +34b4f65,d0 +34b4f66,d +34b4f67,e3 +34b4f68,7e +34b4f69,c0 +34b4f6a,c +34b4f6b,d0 +34b4f6c,e +34b4f6d,a0 +34b4f82,6e +34b4f83,70 +34b4f84,7 +34b4f85,e7 +34b4f86,a +34b4f87,d2 +34b4f88,1d +34b4f89,b0 +34b4f8a,2 +34b4f8b,da +34b4f8c,ad +34b4f8d,20 +34b4f8f,7e +34b4f90,e7 +34b4f93,3e +34b4f94,e2 +34b4f97,bd +34b4f98,da +34b4f9a,7 +34b4f9b,e6 +34b4f9c,7e +34b4f9d,60 +34b4f9e,3e +34b4f9f,a0 +34b4fa0,b +34b4fa1,d0 +34b4fa2,bd +34b4fa3,20 +34b4fa4,4 +34b4fa5,e9 +34b4fba,ae +34b4fbb,20 +34b4fbc,5 +34b4fbd,e8 +34b4fbe,2d +34b4fbf,a0 +34b4fc0,c +34b4fc1,c0 +34b4fc2,7 +34b4fc3,e5 +34b4fc4,7e +34b4fc5,50 +34b4fc7,cc +34b4fc8,da +34b4fcb,4e +34b4fcc,d2 +34b4fcf,d +34b4fd0,b0 +34b4fd3,d +34b4fd4,b0 +34b4fd7,d +34b4fd8,b0 +34b4fdb,d +34b4fdc,b0 +34b4ff2,e +34b4ff3,ff +34b4ff4,ff +34b4ff5,f8 +34b4ff8,b +34b4ff9,d3 +34b4ffc,7e +34b4ffd,70 +34b4fff,3 +34b5000,ea +34b5003,b +34b5004,d1 +34b5007,8e +34b5008,50 +34b500a,4 +34b500b,e9 +34b500e,c +34b500f,c0 +34b5012,1f +34b5013,ff +34b5014,ff +34b5015,fa +34b5023,4f +34b5024,fc +34b5027,4f +34b5028,50 +34b502b,4f +34b502c,50 +34b502f,4f +34b5030,50 +34b5033,4f +34b5034,50 +34b5037,4f +34b5038,50 +34b503b,4f +34b503c,50 +34b503f,4f +34b5040,50 +34b5043,4f +34b5044,50 +34b5047,4f +34b5048,50 +34b504b,4f +34b504c,50 +34b504f,4f +34b5050,fc +34b5062,6e +34b5063,50 +34b5066,c +34b5067,b0 +34b506a,7 +34b506b,e3 +34b506f,da +34b5073,9e +34b5074,20 +34b5077,1e +34b5078,90 +34b507b,a +34b507c,d0 +34b507f,3 +34b5080,e8 +34b5084,bc +34b5088,4e +34b5089,60 +34b508c,b +34b508d,c0 +34b5093,df +34b5094,e0 +34b5097,8 +34b5098,e0 +34b509b,8 +34b509c,e0 +34b509f,8 +34b50a0,e0 +34b50a3,8 +34b50a4,e0 +34b50a7,8 +34b50a8,e0 +34b50ab,8 +34b50ac,e0 +34b50af,8 +34b50b0,e0 +34b50b3,8 +34b50b4,e0 +34b50b7,8 +34b50b8,e0 +34b50bb,8 +34b50bc,e0 +34b50bf,df +34b50c0,e0 +34b50d3,5e +34b50d4,d2 +34b50d7,dc +34b50d8,db +34b50da,a +34b50db,d2 +34b50dc,5e +34b50dd,80 +34b50de,7e +34b50df,50 +34b50e0,7 +34b50e1,e5 +34b5136,ff +34b5137,ff +34b5138,ff +34b5139,fd +34b513e,2 +34b513f,ca +34b5143,2c +34b5144,90 +34b5182,5 +34b5183,ce +34b5184,eb +34b5185,10 34b5186,b -34b5187,d0 -34b5188,4f -34b5189,82 -34b518a,7e -34b518b,d0 -34b518c,a -34b518d,ee -34b518e,db -34b518f,d0 -34b519c,d -34b519d,90 -34b51a0,d -34b51a1,90 -34b51a4,d -34b51a5,90 -34b51a8,d -34b51a9,90 -34b51ac,d -34b51ad,bd -34b51ae,ec -34b51af,40 -34b51b0,d -34b51b1,e6 -34b51b2,5d -34b51b3,c0 -34b51b4,d -34b51b5,b0 -34b51b6,8 -34b51b7,e0 -34b51b8,d -34b51b9,a0 -34b51ba,7 -34b51bb,f2 -34b51bc,d -34b51bd,b0 -34b51be,8 -34b51bf,e0 -34b51c0,d -34b51c1,e6 -34b51c2,4d +34b5187,93 +34b5188,6d +34b5189,a0 +34b518c,b +34b518d,c0 +34b518e,8 +34b518f,de +34b5190,ff +34b5191,c0 +34b5192,3e +34b5193,93 +34b5194,b +34b5195,d0 +34b5196,4f +34b5197,82 +34b5198,7e +34b5199,d0 +34b519a,a +34b519b,ee +34b519c,db +34b519d,d0 +34b51aa,d +34b51ab,90 +34b51ae,d +34b51af,90 +34b51b2,d +34b51b3,90 +34b51b6,d +34b51b7,90 +34b51ba,d +34b51bb,bd +34b51bc,ec +34b51bd,40 +34b51be,d +34b51bf,e6 +34b51c0,5d +34b51c1,c0 +34b51c2,d 34b51c3,b0 -34b51c4,d -34b51c5,bd -34b51c6,ec -34b51c7,40 -34b51e5,8d -34b51e6,ed -34b51e7,70 -34b51e8,7 -34b51e9,e9 -34b51ea,36 -34b51eb,a0 -34b51ec,c -34b51ed,c0 -34b51f0,d -34b51f1,b0 -34b51f4,c -34b51f5,c0 -34b51f8,7 -34b51f9,e9 -34b51fa,36 -34b51fb,a0 -34b51fd,8d -34b51fe,ed -34b51ff,70 -34b520e,b -34b520f,c0 -34b5212,b -34b5213,c0 -34b5216,b -34b5217,c0 -34b521a,b -34b521b,c0 -34b521c,5 -34b521d,de -34b521e,dc -34b521f,c0 -34b5220,d -34b5221,c4 -34b5222,8e -34b5223,c0 -34b5224,5f -34b5225,60 -34b5226,c -34b5227,c0 -34b5228,7f -34b5229,30 -34b522a,b -34b522b,c0 -34b522c,5f -34b522d,60 -34b522e,c -34b522f,c0 -34b5230,d -34b5231,c4 -34b5232,8e -34b5233,c0 -34b5234,5 -34b5235,de -34b5236,dc -34b5237,c0 -34b5254,3 -34b5255,be -34b5256,ec -34b5257,30 -34b5258,c -34b5259,d5 -34b525a,4c -34b525b,c0 -34b525c,4f -34b525d,60 -34b525e,7 -34b525f,e0 -34b5260,6f -34b5261,ff -34b5262,ff -34b5263,f3 -34b5264,4f -34b5265,50 -34b5268,c -34b5269,c5 -34b526a,38 -34b526b,c0 -34b526c,3 -34b526d,be -34b526e,ec -34b526f,60 -34b527d,5 -34b527e,de -34b527f,d0 -34b5281,c -34b5282,b2 -34b5285,d -34b5286,90 -34b5289,e -34b528a,80 -34b528c,d -34b528d,ff -34b528e,ff -34b528f,d0 -34b5291,e -34b5292,80 -34b5295,e -34b5296,80 -34b5299,e -34b529a,80 -34b529d,e -34b529e,80 -34b52a1,e -34b52a2,80 -34b52a5,e -34b52a6,80 -34b52c4,5 -34b52c5,de -34b52c6,dc -34b52c7,c0 -34b52c8,d -34b52c9,c4 -34b52ca,8e -34b52cb,c0 -34b52cc,5f -34b52cd,60 -34b52ce,c -34b52cf,c0 -34b52d0,7f -34b52d1,30 -34b52d2,b -34b52d3,c0 -34b52d4,5f -34b52d5,60 -34b52d6,c -34b52d7,c0 -34b52d8,d -34b52d9,c4 -34b52da,8e -34b52db,c0 -34b52dc,5 -34b52dd,de -34b52de,dc -34b52df,b0 -34b52e2,c -34b52e3,a0 -34b52e4,9 -34b52e5,94 -34b52e6,7e -34b52e7,60 -34b52e8,4 -34b52e9,ce -34b52ea,e9 -34b52ec,d -34b52ed,a0 -34b52f0,d +34b51c4,8 +34b51c5,e0 +34b51c6,d +34b51c7,a0 +34b51c8,7 +34b51c9,f2 +34b51ca,d +34b51cb,b0 +34b51cc,8 +34b51cd,e0 +34b51ce,d +34b51cf,e6 +34b51d0,4d +34b51d1,b0 +34b51d2,d +34b51d3,bd +34b51d4,ec +34b51d5,40 +34b51f3,8d +34b51f4,ed +34b51f5,70 +34b51f6,7 +34b51f7,e9 +34b51f8,36 +34b51f9,a0 +34b51fa,c +34b51fb,c0 +34b51fe,d +34b51ff,b0 +34b5202,c +34b5203,c0 +34b5206,7 +34b5207,e9 +34b5208,36 +34b5209,a0 +34b520b,8d +34b520c,ed +34b520d,70 +34b521c,b +34b521d,c0 +34b5220,b +34b5221,c0 +34b5224,b +34b5225,c0 +34b5228,b +34b5229,c0 +34b522a,5 +34b522b,de +34b522c,dc +34b522d,c0 +34b522e,d +34b522f,c4 +34b5230,8e +34b5231,c0 +34b5232,5f +34b5233,60 +34b5234,c +34b5235,c0 +34b5236,7f +34b5237,30 +34b5238,b +34b5239,c0 +34b523a,5f +34b523b,60 +34b523c,c +34b523d,c0 +34b523e,d +34b523f,c4 +34b5240,8e +34b5241,c0 +34b5242,5 +34b5243,de +34b5244,dc +34b5245,c0 +34b5262,3 +34b5263,be +34b5264,ec +34b5265,30 +34b5266,c +34b5267,d5 +34b5268,4c +34b5269,c0 +34b526a,4f +34b526b,60 +34b526c,7 +34b526d,e0 +34b526e,6f +34b526f,ff +34b5270,ff +34b5271,f3 +34b5272,4f +34b5273,50 +34b5276,c +34b5277,c5 +34b5278,38 +34b5279,c0 +34b527a,3 +34b527b,be +34b527c,ec +34b527d,60 +34b528b,5 +34b528c,de +34b528d,d0 +34b528f,c +34b5290,b2 +34b5293,d +34b5294,90 +34b5297,e +34b5298,80 +34b529a,d +34b529b,ff +34b529c,ff +34b529d,d0 +34b529f,e +34b52a0,80 +34b52a3,e +34b52a4,80 +34b52a7,e +34b52a8,80 +34b52ab,e +34b52ac,80 +34b52af,e +34b52b0,80 +34b52b3,e +34b52b4,80 +34b52d2,5 +34b52d3,de +34b52d4,dc +34b52d5,c0 +34b52d6,d +34b52d7,c4 +34b52d8,8e +34b52d9,c0 +34b52da,5f +34b52db,60 +34b52dc,c +34b52dd,c0 +34b52de,7f +34b52df,30 +34b52e0,b +34b52e1,c0 +34b52e2,5f +34b52e3,60 +34b52e4,c +34b52e5,c0 +34b52e6,d +34b52e7,c4 +34b52e8,8e +34b52e9,c0 +34b52ea,5 +34b52eb,de +34b52ec,dc +34b52ed,b0 +34b52f0,c 34b52f1,a0 -34b52f4,d -34b52f5,a0 -34b52f8,d -34b52f9,a0 -34b52fc,d -34b52fd,bd -34b52fe,ed -34b52ff,40 -34b5300,d -34b5301,e6 -34b5302,5d +34b52f2,9 +34b52f3,94 +34b52f4,7e +34b52f5,60 +34b52f6,4 +34b52f7,ce +34b52f8,e9 +34b52fa,d +34b52fb,a0 +34b52fe,d +34b52ff,a0 +34b5302,d 34b5303,a0 -34b5304,d -34b5305,b0 -34b5306,b -34b5307,c0 -34b5308,d -34b5309,a0 -34b530a,b -34b530b,c0 -34b530c,d -34b530d,a0 -34b530e,b -34b530f,c0 -34b5310,d +34b5306,d +34b5307,a0 +34b530a,d +34b530b,bd +34b530c,ed +34b530d,40 +34b530e,d +34b530f,e6 +34b5310,5d 34b5311,a0 -34b5312,b -34b5313,c0 -34b5314,d -34b5315,a0 -34b5316,b -34b5317,c0 -34b5325,b -34b5326,c0 -34b5334,9 -34b5335,ff -34b5336,c0 -34b5339,b -34b533a,c0 -34b533d,b -34b533e,c0 -34b5341,b -34b5342,c0 -34b5345,b -34b5346,c0 -34b5349,b -34b534a,c0 -34b534c,e -34b534d,ff -34b534e,ff -34b534f,e0 -34b535d,7 -34b535e,e0 -34b536c,7 -34b536d,ff -34b536e,e0 -34b5371,7 -34b5372,e0 -34b5375,7 -34b5376,e0 -34b5379,7 -34b537a,e0 -34b537d,7 -34b537e,e0 -34b5381,7 -34b5382,e0 -34b5385,7 -34b5386,e0 -34b5389,7 -34b538a,e0 -34b538d,1b -34b538e,d0 -34b5390,d -34b5391,fe -34b5392,70 -34b5394,b -34b5395,c0 -34b5398,b -34b5399,c0 -34b539c,b -34b539d,c0 -34b53a0,b -34b53a1,c0 -34b53a4,b -34b53a5,c0 -34b53a6,3d -34b53a7,c2 -34b53a8,b -34b53a9,c3 -34b53aa,db -34b53ac,b -34b53ad,dd -34b53ae,c0 -34b53b0,b -34b53b1,fc -34b53b2,e5 -34b53b4,b -34b53b5,d0 -34b53b6,cd -34b53b7,10 -34b53b8,b -34b53b9,c0 -34b53ba,3d -34b53bb,b0 -34b53bc,b -34b53bd,c0 -34b53be,7 -34b53bf,e8 -34b53cc,e -34b53cd,ff -34b53ce,40 -34b53d1,5f -34b53d2,40 -34b53d5,5f -34b53d6,40 -34b53d9,5f -34b53da,40 -34b53dd,5f -34b53de,40 -34b53e1,5f -34b53e2,40 -34b53e5,5f -34b53e6,40 -34b53e9,5f -34b53ea,40 -34b53ed,4f -34b53ee,50 -34b53f1,e -34b53f2,a0 -34b53f5,8 -34b53f6,ef -34b53f7,b0 -34b5414,8d -34b5415,dd -34b5416,ae -34b5417,c0 -34b5418,8e -34b5419,4d -34b541a,c5 -34b541b,e4 -34b541c,8d -34b541d,c -34b541e,b0 -34b541f,e6 -34b5420,8d -34b5421,b -34b5422,a0 -34b5423,e7 -34b5424,8d -34b5425,b -34b5426,a0 -34b5427,e7 -34b5428,8d -34b5429,b -34b542a,a0 -34b542b,e7 -34b542c,8d -34b542d,b -34b542e,a0 -34b542f,e7 -34b544c,d -34b544d,bd -34b544e,ed -34b544f,40 -34b5450,d -34b5451,e6 -34b5452,5d -34b5453,a0 -34b5454,d -34b5455,b0 -34b5456,b -34b5457,c0 -34b5458,d -34b5459,a0 -34b545a,b -34b545b,c0 -34b545c,d -34b545d,a0 -34b545e,b -34b545f,c0 -34b5460,d +34b5312,d +34b5313,b0 +34b5314,b +34b5315,c0 +34b5316,d +34b5317,a0 +34b5318,b +34b5319,c0 +34b531a,d +34b531b,a0 +34b531c,b +34b531d,c0 +34b531e,d +34b531f,a0 +34b5320,b +34b5321,c0 +34b5322,d +34b5323,a0 +34b5324,b +34b5325,c0 +34b5333,b +34b5334,c0 +34b5342,9 +34b5343,ff +34b5344,c0 +34b5347,b +34b5348,c0 +34b534b,b +34b534c,c0 +34b534f,b +34b5350,c0 +34b5353,b +34b5354,c0 +34b5357,b +34b5358,c0 +34b535a,e +34b535b,ff +34b535c,ff +34b535d,e0 +34b536b,7 +34b536c,e0 +34b537a,7 +34b537b,ff +34b537c,e0 +34b537f,7 +34b5380,e0 +34b5383,7 +34b5384,e0 +34b5387,7 +34b5388,e0 +34b538b,7 +34b538c,e0 +34b538f,7 +34b5390,e0 +34b5393,7 +34b5394,e0 +34b5397,7 +34b5398,e0 +34b539b,1b +34b539c,d0 +34b539e,d +34b539f,fe +34b53a0,70 +34b53a2,b +34b53a3,c0 +34b53a6,b +34b53a7,c0 +34b53aa,b +34b53ab,c0 +34b53ae,b +34b53af,c0 +34b53b2,b +34b53b3,c0 +34b53b4,3d +34b53b5,c2 +34b53b6,b +34b53b7,c3 +34b53b8,db +34b53ba,b +34b53bb,dd +34b53bc,c0 +34b53be,b +34b53bf,fc +34b53c0,e5 +34b53c2,b +34b53c3,d0 +34b53c4,cd +34b53c5,10 +34b53c6,b +34b53c7,c0 +34b53c8,3d +34b53c9,b0 +34b53ca,b +34b53cb,c0 +34b53cc,7 +34b53cd,e8 +34b53da,e +34b53db,ff +34b53dc,40 +34b53df,5f +34b53e0,40 +34b53e3,5f +34b53e4,40 +34b53e7,5f +34b53e8,40 +34b53eb,5f +34b53ec,40 +34b53ef,5f +34b53f0,40 +34b53f3,5f +34b53f4,40 +34b53f7,5f +34b53f8,40 +34b53fb,4f +34b53fc,50 +34b53ff,e +34b5400,a0 +34b5403,8 +34b5404,ef +34b5405,b0 +34b5422,8d +34b5423,dd +34b5424,ae +34b5425,c0 +34b5426,8e +34b5427,4d +34b5428,c5 +34b5429,e4 +34b542a,8d +34b542b,c +34b542c,b0 +34b542d,e6 +34b542e,8d +34b542f,b +34b5430,a0 +34b5431,e7 +34b5432,8d +34b5433,b +34b5434,a0 +34b5435,e7 +34b5436,8d +34b5437,b +34b5438,a0 +34b5439,e7 +34b543a,8d +34b543b,b +34b543c,a0 +34b543d,e7 +34b545a,d +34b545b,bd +34b545c,ed +34b545d,40 +34b545e,d +34b545f,e6 +34b5460,5d 34b5461,a0 -34b5462,b -34b5463,c0 -34b5464,d -34b5465,a0 -34b5466,b -34b5467,c0 -34b5484,4 -34b5485,ce -34b5486,eb -34b5487,20 -34b5488,c -34b5489,d5 -34b548a,6d -34b548b,a0 -34b548c,1e -34b548d,70 -34b548e,a -34b548f,d0 -34b5490,5f -34b5491,60 -34b5492,8 -34b5493,e0 -34b5494,1e -34b5495,70 -34b5496,a -34b5497,d0 -34b5498,c -34b5499,d4 -34b549a,6d -34b549b,b0 -34b549c,4 -34b549d,ce -34b549e,eb -34b549f,20 -34b54bc,d -34b54bd,bd -34b54be,ec -34b54bf,30 -34b54c0,d -34b54c1,e6 -34b54c2,5d -34b54c3,b0 -34b54c4,d -34b54c5,b0 -34b54c6,9 -34b54c7,e0 -34b54c8,d -34b54c9,a0 -34b54ca,7 -34b54cb,e0 -34b54cc,d -34b54cd,b0 -34b54ce,8 -34b54cf,e0 -34b54d0,d -34b54d1,e6 -34b54d2,5d +34b5462,d +34b5463,b0 +34b5464,b +34b5465,c0 +34b5466,d +34b5467,a0 +34b5468,b +34b5469,c0 +34b546a,d +34b546b,a0 +34b546c,b +34b546d,c0 +34b546e,d +34b546f,a0 +34b5470,b +34b5471,c0 +34b5472,d +34b5473,a0 +34b5474,b +34b5475,c0 +34b5492,4 +34b5493,ce +34b5494,eb +34b5495,20 +34b5496,c +34b5497,d5 +34b5498,6d +34b5499,a0 +34b549a,1e +34b549b,70 +34b549c,a +34b549d,d0 +34b549e,5f +34b549f,60 +34b54a0,8 +34b54a1,e0 +34b54a2,1e +34b54a3,70 +34b54a4,a +34b54a5,d0 +34b54a6,c +34b54a7,d4 +34b54a8,6d +34b54a9,b0 +34b54aa,4 +34b54ab,ce +34b54ac,eb +34b54ad,20 +34b54ca,d +34b54cb,bd +34b54cc,ec +34b54cd,30 +34b54ce,d +34b54cf,e6 +34b54d0,5d +34b54d1,b0 +34b54d2,d 34b54d3,b0 -34b54d4,d -34b54d5,be -34b54d6,ec -34b54d7,40 -34b54d8,d -34b54d9,90 -34b54dc,d -34b54dd,90 -34b54e0,d -34b54e1,90 -34b54f4,4 -34b54f5,ce -34b54f6,dc -34b54f7,c0 -34b54f8,c -34b54f9,c4 -34b54fa,7e -34b54fb,c0 -34b54fc,1e -34b54fd,70 -34b54fe,c -34b54ff,c0 -34b5500,5f -34b5501,60 -34b5502,b -34b5503,c0 -34b5504,2e -34b5505,70 +34b54d4,9 +34b54d5,e0 +34b54d6,d +34b54d7,a0 +34b54d8,7 +34b54d9,e0 +34b54da,d +34b54db,b0 +34b54dc,8 +34b54dd,e0 +34b54de,d +34b54df,e6 +34b54e0,5d +34b54e1,b0 +34b54e2,d +34b54e3,be +34b54e4,ec +34b54e5,40 +34b54e6,d +34b54e7,90 +34b54ea,d +34b54eb,90 +34b54ee,d +34b54ef,90 +34b5502,4 +34b5503,ce +34b5504,dc +34b5505,c0 34b5506,c -34b5507,c0 -34b5508,c -34b5509,c4 -34b550a,7e -34b550b,c0 -34b550c,5 -34b550d,ce -34b550e,db -34b550f,c0 -34b5512,a -34b5513,c0 -34b5516,a -34b5517,c0 -34b551a,a -34b551b,c0 -34b552d,cc -34b552e,de -34b552f,f9 -34b5531,ce -34b5532,83 -34b5535,cb -34b5539,ca -34b553d,ca -34b5541,ca -34b5545,ca -34b5564,4 -34b5565,ce -34b5566,ea -34b5567,10 -34b5568,b -34b5569,d4 -34b556a,5b -34b556b,60 -34b556c,b -34b556d,d4 -34b5570,3 -34b5571,bd -34b5572,db -34b5573,20 -34b5576,4d -34b5577,a0 -34b5578,b -34b5579,94 -34b557a,5e -34b557b,a0 -34b557c,5 -34b557d,ce -34b557e,eb -34b557f,20 -34b5595,8e -34b5599,8e -34b559c,6f -34b559d,ff -34b559e,ff -34b559f,b0 -34b55a1,8e -34b55a5,8e -34b55a9,8e -34b55ad,8e -34b55b1,6e -34b55b2,70 -34b55b5,b -34b55b6,ef -34b55b7,b0 -34b55d4,d -34b55d5,a0 -34b55d6,b -34b55d7,c0 -34b55d8,d -34b55d9,a0 -34b55da,b -34b55db,c0 -34b55dc,d -34b55dd,a0 -34b55de,b -34b55df,c0 -34b55e0,d -34b55e1,a0 -34b55e2,b -34b55e3,c0 -34b55e4,d -34b55e5,a0 -34b55e6,b -34b55e7,c0 +34b5507,c4 +34b5508,7e +34b5509,c0 +34b550a,1e +34b550b,70 +34b550c,c +34b550d,c0 +34b550e,5f +34b550f,60 +34b5510,b +34b5511,c0 +34b5512,2e +34b5513,70 +34b5514,c +34b5515,c0 +34b5516,c +34b5517,c4 +34b5518,7e +34b5519,c0 +34b551a,5 +34b551b,ce +34b551c,db +34b551d,c0 +34b5520,a +34b5521,c0 +34b5524,a +34b5525,c0 +34b5528,a +34b5529,c0 +34b553b,cc +34b553c,de +34b553d,f9 +34b553f,ce +34b5540,83 +34b5543,cb +34b5547,ca +34b554b,ca +34b554f,ca +34b5553,ca +34b5572,4 +34b5573,ce +34b5574,ea +34b5575,10 +34b5576,b +34b5577,d4 +34b5578,5b +34b5579,60 +34b557a,b +34b557b,d4 +34b557e,3 +34b557f,bd +34b5580,db +34b5581,20 +34b5584,4d +34b5585,a0 +34b5586,b +34b5587,94 +34b5588,5e +34b5589,a0 +34b558a,5 +34b558b,ce +34b558c,eb +34b558d,20 +34b55a3,8e +34b55a7,8e +34b55aa,6f +34b55ab,ff +34b55ac,ff +34b55ad,b0 +34b55af,8e +34b55b3,8e +34b55b7,8e +34b55bb,8e +34b55bf,6e +34b55c0,70 +34b55c3,b +34b55c4,ef +34b55c5,b0 +34b55e2,d +34b55e3,a0 +34b55e4,b +34b55e5,c0 +34b55e6,d +34b55e7,a0 34b55e8,b -34b55e9,d4 -34b55ea,7e -34b55eb,c0 -34b55ec,5 -34b55ed,de -34b55ee,db -34b55ef,c0 -34b560c,6e -34b560d,30 -34b560e,7 -34b560f,e3 -34b5610,d -34b5611,90 -34b5612,b -34b5613,c0 -34b5614,a -34b5615,d0 -34b5616,1e -34b5617,80 -34b5618,5 -34b5619,e4 -34b561a,8e -34b561b,20 -34b561d,da -34b561e,cb -34b5621,9d -34b5622,e7 -34b5625,3e -34b5626,e0 -34b5644,e8 -34b5647,ac -34b5648,ca -34b564b,ca -34b564c,ac -34b564d,d -34b564e,b0 -34b564f,e7 -34b5650,6e -34b5651,3d -34b5652,d5 -34b5653,e2 -34b5654,e -34b5655,ab +34b55e9,c0 +34b55ea,d +34b55eb,a0 +34b55ec,b +34b55ed,c0 +34b55ee,d +34b55ef,a0 +34b55f0,b +34b55f1,c0 +34b55f2,d +34b55f3,a0 +34b55f4,b +34b55f5,c0 +34b55f6,b +34b55f7,d4 +34b55f8,7e +34b55f9,c0 +34b55fa,5 +34b55fb,de +34b55fc,db +34b55fd,c0 +34b561a,6e +34b561b,30 +34b561c,7 +34b561d,e3 +34b561e,d +34b561f,90 +34b5620,b +34b5621,c0 +34b5622,a +34b5623,d0 +34b5624,1e +34b5625,80 +34b5626,5 +34b5627,e4 +34b5628,8e +34b5629,20 +34b562b,da +34b562c,cb +34b562f,9d +34b5630,e7 +34b5633,3e +34b5634,e0 +34b5652,e8 +34b5655,ac 34b5656,ca -34b5657,d0 -34b5658,c -34b5659,e7 -34b565a,9e -34b565b,b0 -34b565c,a -34b565d,e1 -34b565e,5f -34b565f,80 -34b567c,3d -34b567d,a0 -34b567e,b -34b567f,c0 -34b5680,6 -34b5681,e6 -34b5682,9e -34b5683,40 -34b5685,9e -34b5686,e7 -34b5689,2e -34b568a,d0 -34b568d,cc -34b568e,da -34b5690,9 -34b5691,e4 -34b5692,6e -34b5693,70 -34b5694,6e -34b5695,70 -34b5696,9 -34b5697,e4 -34b56b4,6e -34b56b5,50 -34b56b6,5 -34b56b7,e5 -34b56b8,d -34b56b9,a0 -34b56ba,b -34b56bb,d0 -34b56bc,9 -34b56bd,e0 -34b56be,e -34b56bf,90 -34b56c0,3 -34b56c1,e7 -34b56c2,8e -34b56c3,30 -34b56c5,cc -34b56c6,cc -34b56c9,7e -34b56ca,e7 -34b56cd,d -34b56ce,e0 -34b56d1,d -34b56d2,a0 -34b56d5,8e -34b56d6,50 -34b56d8,d -34b56d9,ea -34b56ec,b -34b56ed,ff -34b56ee,ff -34b56ef,c0 -34b56f2,5e -34b56f3,70 -34b56f5,3 -34b56f6,d9 -34b56f9,c -34b56fa,b0 -34b56fd,bd -34b56fe,20 -34b5700,9 -34b5701,e4 -34b5704,d -34b5705,ff -34b5706,ff -34b5707,c0 -34b5715,6 -34b5716,de -34b5717,a0 -34b5719,b -34b571a,d3 -34b571d,c -34b571e,b0 -34b5721,c -34b5722,b0 -34b5725,5e -34b5726,a0 -34b5728,b -34b5729,fd -34b572a,20 -34b572d,7e -34b572e,90 -34b5731,d -34b5732,b0 -34b5735,c -34b5736,b0 -34b5739,c -34b573a,b0 -34b573d,b -34b573e,d4 -34b5741,5 -34b5742,de -34b5743,a0 -34b574d,c -34b574e,a0 -34b5751,c -34b5752,a0 -34b5755,c -34b5756,a0 -34b5759,c -34b575a,a0 -34b575d,c -34b575e,a0 -34b5761,c -34b5762,a0 -34b5765,c -34b5766,a0 -34b5769,c -34b576a,a0 -34b576d,c -34b576e,a0 -34b5771,c -34b5772,a0 -34b5775,c -34b5776,a0 -34b5779,c -34b577a,a0 -34b577d,c -34b577e,a0 -34b5784,b -34b5785,ed -34b5786,30 -34b5789,4e -34b578a,90 -34b578d,d -34b578e,a0 -34b5791,c -34b5792,a0 -34b5795,b -34b5796,c4 -34b5799,5 -34b579a,ef -34b579b,a0 -34b579d,b -34b579e,d5 -34b57a1,c -34b57a2,b0 -34b57a5,d -34b57a6,a0 -34b57a9,d -34b57aa,a0 -34b57ad,5e -34b57ae,80 -34b57b0,b -34b57b1,ec -34b57b2,20 -34b57d4,5d -34b57d5,ed -34b57d6,83 -34b57d7,a7 -34b57d8,98 -34b57d9,38 -34b57da,de -34b57db,c3 +34b5659,ca +34b565a,ac +34b565b,d +34b565c,b0 +34b565d,e7 +34b565e,6e +34b565f,3d +34b5660,d5 +34b5661,e2 +34b5662,e +34b5663,ab +34b5664,ca +34b5665,d0 +34b5666,c +34b5667,e7 +34b5668,9e +34b5669,b0 +34b566a,a +34b566b,e1 +34b566c,5f +34b566d,80 +34b568a,3d +34b568b,a0 +34b568c,b +34b568d,c0 +34b568e,6 +34b568f,e6 +34b5690,9e +34b5691,40 +34b5693,9e +34b5694,e7 +34b5697,2e +34b5698,d0 +34b569b,cc +34b569c,da +34b569e,9 +34b569f,e4 +34b56a0,6e +34b56a1,70 +34b56a2,6e +34b56a3,70 +34b56a4,9 +34b56a5,e4 +34b56c2,6e +34b56c3,50 +34b56c4,5 +34b56c5,e5 +34b56c6,d +34b56c7,a0 +34b56c8,b +34b56c9,d0 +34b56ca,9 +34b56cb,e0 +34b56cc,e +34b56cd,90 +34b56ce,3 +34b56cf,e7 +34b56d0,8e +34b56d1,30 +34b56d3,cc +34b56d4,cc +34b56d7,7e +34b56d8,e7 +34b56db,d +34b56dc,e0 +34b56df,d +34b56e0,a0 +34b56e3,8e +34b56e4,50 +34b56e6,d +34b56e7,ea +34b56fa,b +34b56fb,ff +34b56fc,ff +34b56fd,c0 +34b5700,5e +34b5701,70 +34b5703,3 +34b5704,d9 +34b5707,c +34b5708,b0 +34b570b,bd +34b570c,20 +34b570e,9 +34b570f,e4 +34b5712,d +34b5713,ff +34b5714,ff +34b5715,c0 +34b5723,6 +34b5724,de +34b5725,a0 +34b5727,b +34b5728,d3 +34b572b,c +34b572c,b0 +34b572f,c +34b5730,b0 +34b5733,5e +34b5734,a0 +34b5736,b +34b5737,fd +34b5738,20 +34b573b,7e +34b573c,90 +34b573f,d +34b5740,b0 +34b5743,c +34b5744,b0 +34b5747,c +34b5748,b0 +34b574b,b +34b574c,d4 +34b574f,5 +34b5750,de +34b5751,a0 +34b575b,c +34b575c,a0 +34b575f,c +34b5760,a0 +34b5763,c +34b5764,a0 +34b5767,c +34b5768,a0 +34b576b,c +34b576c,a0 +34b576f,c +34b5770,a0 +34b5773,c +34b5774,a0 +34b5777,c +34b5778,a0 +34b577b,c +34b577c,a0 +34b577f,c +34b5780,a0 +34b5783,c +34b5784,a0 +34b5787,c +34b5788,a0 +34b578b,c +34b578c,a0 +34b5792,b +34b5793,ed +34b5794,30 +34b5797,4e +34b5798,90 +34b579b,d +34b579c,a0 +34b579f,c +34b57a0,a0 +34b57a3,b +34b57a4,c4 +34b57a7,5 +34b57a8,ef +34b57a9,a0 +34b57ab,b +34b57ac,d5 +34b57af,c +34b57b0,b0 +34b57b3,d +34b57b4,a0 +34b57b7,d +34b57b8,a0 +34b57bb,5e +34b57bc,80 +34b57be,b +34b57bf,ec +34b57c0,20 +34b57e2,5d +34b57e3,ed +34b57e4,83 +34b57e5,a7 +34b57e6,98 +34b57e7,38 +34b57e8,de +34b57e9,c3 diff --git a/data/symbols.json b/data/symbols.json index 28bb6c136..e6a7ca874 100644 --- a/data/symbols.json +++ b/data/symbols.json @@ -1,34 +1,32 @@ { - "ADULT_INIT_ITEMS": "8040357C", - "ADULT_VALID_ITEMS": "80403588", - "C_HEAP": "80500000", - "DUMMY_ACTOR": "80480000", - "EXTENDED_ITEM_DATA": "80402008", - "FAIRY_ITEMS": "80401C03", - "FAIRY_OCARINA_ITEM": "80401C02", - "FONT_TEXTURE": "8040632C", - "GET_ITEMTABLE": "803A9E7E", - "GLOBAL_CONTEXT": "801C84A0", - "INITIAL_SAVE_DATA": "80401800", - "ITEM_OVERRIDES": "80401000", - "ITEM_TABLE": "80402050", - "LIGHT_ARROW_ITEM": "80401C01", - "PENDING_SPECIAL_ITEM": "80402018", - "PENDING_SPECIAL_ITEM_END": "8040201B", - "PLAYER_ACTOR": "801DAA30", - "PLAYER_ID": "80401C00", - "PLAYER_OVERRIDE_DATA": "80402000", - "SAVE_CONTEXT": "8011A5D0", - "TIME_TRAVEL_SAVED_EQUIPS": "8040201C", - "dungeon_count": "8040630C", - "dungeon_is_mq": "8040623C", - "dungeons": "80406270", - "font_sprite": "804061FC", - "heap_next": "80406310", - "medal_colors": "8040625C", - "medals_sprite": "8040621C", - "quest_items_sprite": "8040620C", - "rewards": "8040624C", - "setup_db": "8040631C", - "stones_sprite": "8040622C" + "ADULT_INIT_ITEMS": "0348357C", + "ADULT_VALID_ITEMS": "03483588", + "EXTENDED_ITEM_DATA": "03482008", + "FAIRY_ITEMS": "03481C03", + "FAIRY_OCARINA_ITEM": "03481C02", + "FONT_TEXTURE": "034B433A", + "INITIAL_SAVE_DATA": "03481800", + "ITEM_OVERRIDES": "03481000", + "ITEM_TABLE": "03482050", + "LIGHT_ARROW_ITEM": "03481C01", + "PENDING_SPECIAL_ITEM": "03482018", + "PENDING_SPECIAL_ITEM_END": "0348201B", + "PLAYER_ID": "03481C00", + "PLAYER_OVERRIDE_DATA": "03482000", + "TIME_TRAVEL_SAVED_EQUIPS": "0348201C", + "cfg_dungeon_info_enable": "034B42FC", + "cfg_dungeon_info_mq_enable": "034B4310", + "cfg_dungeon_info_mq_need_compass": "034B430C", + "cfg_dungeon_info_reward_need_map": "034B4308", + "cfg_dungeon_is_mq": "034B432C", + "cfg_dungeon_rewards": "034B423C", + "dungeon_count": "034B4300", + "dungeons": "034B4260", + "font_sprite": "034B41FC", + "heap_next": "034B4304", + "medal_colors": "034B424C", + "medals_sprite": "034B421C", + "quest_items_sprite": "034B420C", + "setup_db": "034B431C", + "stones_sprite": "034B422C" } \ No newline at end of file From f3592b9c4394e49e55c75f301036ab20e2f39786 Mon Sep 17 00:00:00 2001 From: Nick Langille Date: Sun, 16 Sep 2018 06:31:30 -0400 Subject: [PATCH 509/755] Read symbol table from ASM build --- ASM/scripts/build.py | 9 ++++++++- Rom.py | 10 ++++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/ASM/scripts/build.py b/ASM/scripts/build.py index f2330634f..a49b46799 100644 --- a/ASM/scripts/build.py +++ b/ASM/scripts/build.py @@ -78,7 +78,14 @@ data_symbols = {} for (name, sym) in symbols.items(): if sym['type'] == 'data': - data_symbols[name] = sym['address'] + addr = int(sym['address'], 16) + if 0x80400000 <= addr < 0x80405000: + addr = addr - 0x80400000 + 0x03480000 + elif 0x80405000 <= addr < 0x80410000: + addr = addr - 0x80405000 + 0x034B3000 + else: + continue + data_symbols[name] = '{0:08X}'.format(addr) with open('../data/symbols.json', 'w') as f: json.dump(data_symbols, f, indent=4, sort_keys=True) diff --git a/Rom.py b/Rom.py index e96746a12..574284c80 100644 --- a/Rom.py +++ b/Rom.py @@ -8,7 +8,7 @@ import random import copy -from Utils import default_output_path +from Utils import local_path, default_output_path class LocalRom(object): def __init__(self, settings, patch=True): @@ -20,6 +20,10 @@ def __init__(self, settings, patch=True): os.chdir(os.path.dirname(os.path.realpath(__file__))) #os.chdir(output_path(os.path.dirname(os.path.realpath(__file__)))) + with open(local_path('data/symbols.json'), 'r') as stream: + symbols = json.load(stream) + self.symbols = { name: int(addr, 16) for name, addr in symbols.items() } + try: # Read decompressed file if it exists with open(decomp_file, 'rb') as stream: @@ -74,6 +78,8 @@ def decompress_rom_file(self, file, decomp_file): # ROM file is a valid and already uncompressed pass + def sym(self, symbol_name): + return self.symbols.get(symbol_name) def seek_address(self, address): self.last_address = address @@ -205,4 +211,4 @@ def bytes_as_int24(values): return (values[0] << 16) | (values[1] << 8) | values[2] def bytes_as_int32(values): - return (values[0] << 24) | (values[1] << 16) | (values[2] << 8) | values[3] \ No newline at end of file + return (values[0] << 24) | (values[1] << 16) | (values[2] << 8) | values[3] From 435213b949aec1ab7dd1baf1d7a940d577dc9b33 Mon Sep 17 00:00:00 2001 From: Nick Langille Date: Sun, 16 Sep 2018 06:31:59 -0400 Subject: [PATCH 510/755] Configure dungeon info display --- Patches.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/Patches.py b/Patches.py index 5ea3abc2a..a04b0c220 100644 --- a/Patches.py +++ b/Patches.py @@ -780,6 +780,7 @@ def patch_rom(world, rom): # Set hooks for various code rom.write_bytes(0xDBF428, [0x0C, 0x10, 0x03, 0x00]) #Set Fishing Hook + configure_dungeon_info(rom, world) # will be populated with data to be written to initial save # see initial_save.asm and config.asm for more details on specifics @@ -1939,3 +1940,28 @@ def disable_music(rom): for bgm in bgm_sequence_ids: rom.write_bytes(0xB89AE0 + (bgm[1] * 0x10), blank_track) +def boss_reward_index(world, boss_name): + code = world.get_location(boss_name).item.code + if code >= 0x6C: + return code - 0x6C + else: + return 3 + code - 0x66 + +def configure_dungeon_info(rom, world): + mq_enable = world.quest == 'mixed' + mapcompass_keysanity = world.settings.shuffle_mapcompass == 'keysanity' + + bosses = ['Queen Gohma', 'King Dodongo', 'Barinade', 'Phantom Ganon', + 'Volvagia', 'Morpha', 'Twinrova', 'Bongo Bongo'] + dungeon_rewards = [boss_reward_index(world, boss) for boss in bosses] + + codes = ['DT', 'DC', 'JB', 'FoT', 'FiT', 'WT', 'SpT', 'ShT', + 'BW', 'IC', 'Tower (N/A)', 'GTG', 'Hideout (N/A)', 'GC'] + dungeon_is_mq = [1 if world.dungeon_mq.get(c) else 0 for c in codes] + + rom.write_int32(rom.sym('cfg_dungeon_info_enable'), 1) + rom.write_int32(rom.sym('cfg_dungeon_info_mq_enable'), int(mq_enable)) + rom.write_int32(rom.sym('cfg_dungeon_info_mq_need_compass'), int(mapcompass_keysanity)) + rom.write_int32(rom.sym('cfg_dungeon_info_reward_need_map'), int(mapcompass_keysanity)) + rom.write_bytes(rom.sym('cfg_dungeon_rewards'), dungeon_rewards) + rom.write_bytes(rom.sym('cfg_dungeon_is_mq'), dungeon_is_mq) From 22d5cde061ee1c15860046dc267b974fabeba06b Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 16 Sep 2018 06:36:55 -0400 Subject: [PATCH 511/755] Reordered item hints to be grouped together --- HintList.py | 48 ++++++++++++++++++++++++------------------------ version.py | 2 +- 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/HintList.py b/HintList.py index 5e7a47d77..825a7cf64 100644 --- a/HintList.py +++ b/HintList.py @@ -47,38 +47,49 @@ def getHintGroup(group, world): # @ will print the player name # # sets color to white (currently only used for dungeon reward hints). hintTable = { - 'Hammer': (["the dragon smasher", "a metallic crusher", "the WHAM! weapon"], "the Hammer", 'item'), 'Magic Meter': (["sorcery training", "a stamina scroll", "pixie dust"], "Magic", 'item'), 'Double Defense': (["a white outline", "sturdy hearts", "strengthened love"], "Double Defense", 'item'), + 'Slingshot': (["a seed shooter", "a rubberband", "a child's catapult"], "a Slingshot", 'item'), + 'Boomerang': (["a banana", "a faithful curved stick"], "the Boomerang", 'item'), + 'Bow': (["an archery enabler", "a danger dart launcher"], "a Bow", 'item'), + 'Bomb Bag': (["an explosive container", "kaboom storage"], "a Bomb Bag", 'item'), 'Progressive Hookshot': (["Dampe's keepsake", "an arm extension", "a great chain"], "a Hookshot", 'item'), 'Progressive Strength Upgrade': (["power gloves", "arm day results", "the heavy lifty"], "a Strength Upgrade", 'item'), + 'Progressive Scale': (["vertical swim depth", "a dive enhancer"], "a Zora Scale", 'item'), + 'Hammer': (["the dragon smasher", "a metallic crusher", "the WHAM! weapon"], "the Hammer", 'item'), + 'Iron Boots': (["sink shoes", "watery footwear", "noisy boots"], "the Iron Boots", 'item'), 'Hover Boots': (["butter boots", "slippery shoes", "spacewalkers"], "the Hover Boots", 'item'), + 'Kokiri Sword': (["a butter knife", "a tiny, sharp blade", "a child's blade"], "the Kokiri Sword", 'item'), + 'Biggoron Sword': (["an unwieldy knife", "a two-handed blade"], "the Biggoron Sword", 'item'), 'Master Sword': (["evil's bane"], "the Master Sword", 'item'), + 'Deku Shield': (["a wooden ward", "forest protection"], "a Deku Shield", 'item'), + 'Hylian Shield': (["a steel safeguard", "a Hylian relic", "metallic protection"], "a Hylian Shield", 'item'), 'Mirror Shield': (["the reflective rampart", "Medusa's weakness", "a silvered surface"], "the Mirror Shield", 'item'), 'Farores Wind': (["teleportation", "relocation magic", "a warp spell", "green wind"], "Farore's Wind", 'item'), 'Nayrus Love': (["a safe space", "an impregnable aura", "a blue barrier"], "Nayru's Love", 'item'), + 'Dins Fire': (["an inferno", "a great heat wave", "a blast of hot air"], "Din's Fire", 'item'), + 'Fire Arrows': (["the furnace firearm", "flame darts", "burning projectiles"], "the Fire Arrows", 'item'), 'Ice Arrows': (["the refrigerator rocket", "frostbite bolts", "cold darts", "freezing projectiles"], "the Ice Arrows", 'item'), + 'Light Arrows': (["the shining shot", "glowing darts", "Ganondorf's bane"], "the Light Arrows", 'item'), 'Lens of Truth': (["a lie detector", "true sight", "a detective's tool"], "the Lens of Truth", 'item'), - 'Dins Fire': (["an inferno", "a great heat wave", "a blast of hot air"], "Din's Fire", 'item'), 'Ocarina': (["a flute", "a source of music"], "an Ocarina", 'item'), 'Fairy Ocarina': (["a brown flute", "a forest instrument"], "the Fairy Ocarina", 'item'), + 'Ocarina of Time': (["a blue flute", "a royal instrument"], "the Ocarina of Time", 'item'), 'Goron Tunic': (["ruby robes", "fireproof garbs", "mountain clothing"], "a Goron Tunic", 'item'), 'Zora Tunic': (["a sapphire suit", "a fishy outfit", "lake clothing"], "a Zora Tunic", 'item'), - 'Iron Boots': (["sink shoes", "watery footwear", "noisy boots"], "the Iron Boots", 'item'), - 'Zeldas Letter': (["an autograph", "royal stationery", "royal snail mail"], "Zelda's Letter", 'item'), + 'Epona': (["a horse", "a four legged friend"], "Epona", 'item'), 'Zeldas Lullaby': (["a song of royal slumber", "a triforce tune"], "Zelda's Lullaby", 'item'), - 'Nocturne of Shadow': (["a song of spooky spirits", "a graveyard boogie", "a ghastly tune"], "the Nocturne of Shadow", 'item'), - 'Bow': (["an archery enabler", "a danger dart launcher"], "a Bow", 'item'), - 'Bomb Bag': (["an explosive container", "kaboom storage"], "a Bomb Bag", 'item'), + 'Eponas Song': (["an equestrian etude", "a ranch song"], "Epona's song", 'item'), 'Sarias Song': (["a song of dancing Gorons", "a green girl's tune", "child's forest melody"], "Sarias Song", 'item'), + 'Suns Song': (["Sunny Day", "a time advancer", "a day/night melody", "the gibdo's bane"], "the Sun's Song", 'item'), 'Song of Time': (["a song 7 years long", "a tune to move blocks"], "the Song of Time", 'item'), 'Song of Storms': (["Rain Dance", "a thunderstorm melody", "the tune of windmills"], "the Song of Storms", 'item'), 'Minuet of Forest': (["the song of tall trees", "adult's forest melody", "a green warp song"], "the Minuet of Forest", 'item'), + 'Bolero of Fire': (["a song of lethal lava", "a red warp song", "a volcano tune", "a song of a red sea"], "the Bolero of Fire", 'item'), + 'Serenade of Water': (["a song of a damp ditch", "a blue warp song", "the lake's tune"], "the Serenade of Water", 'item'), 'Requiem of Spirit': (["a song of sandy statues", "an orange warp song", "the tune of the desert"], "the Requiem of Spirit", 'item'), - 'Slingshot': (["a seed shooter", "a rubberband", "a child's catapult"], "a Slingshot", 'item'), - 'Boomerang': (["a banana", "a faithful curved stick"], "the Boomerang", 'item'), - 'Fire Arrows': (["the furnace firearm", "flame darts", "burning projectiles"], "the Fire Arrows", 'item'), - 'Ocarina of Time': (["a blue flute", "a royal instrument"], "the Ocarina of Time", 'item'), + 'Nocturne of Shadow': (["a song of spooky spirits", "a graveyard boogie", "a ghastly tune"], "the Nocturne of Shadow", 'item'), + 'Prelude of Light': (["a luminous prologue melody", "a yellow warp song", "the temple traveler"], "the Prelude of Light", 'item'), 'Bottle': (["a glass container", "an empty jar", "something to be filled"], "a Bottle", 'item'), 'Bottle with Letter': (["a call for help", "an SOS jar", "fishy stationery"], "Ruto's letter", 'item'), 'Bottle with Milk': (["cow juice", "a white liquid"], "a Milk Bottle", 'item'), @@ -90,20 +101,11 @@ def getHintGroup(group, world): 'Bottle with Blue Fire': (["a conflagration canteen", "an icemelt jar"], "a Fire Bottle", 'item'), 'Bottle with Bugs': (["an insectarium", "skultula finders", "a Bug Bottle"], "bugs", 'item'), 'Bottle with Poe': (["a spooky ghost", "a face in the jar"], "a Poe Bottle", 'item'), - 'Progressive Scale': (["vertical swim depth", "a dive enhancer"], "a Zora Scale", 'item'), 'Stone of Agony': (["a vibrating rock", "a clue finder"], "the Stone of Agony", 'item'), - 'Eponas Song': (["an equestrian etude", "a ranch song"], "Epona's song", 'item'), - 'Epona': (["a horse", "a four legged friend"], "Epona", 'item'), 'Gerudo Membership Card': (["a GT subscription", "a desert tribe's pass"], "the Gerudo Card", 'item'), 'Progressive Wallet': (["a mo' money holder", "a gem purse", "financial capacity"], "a Wallet", 'item'), - 'Bolero of Fire': (["a song of lethal lava", "a red warp song", "a volcano tune", "a song of a red sea"], "the Bolero of Fire", 'item'), - 'Suns Song': (["Sunny Day", "a time advancer", "a day/night melody", "the gibdo's bane"], "the Sun's Song", 'item'), - 'Deku Shield': (["a wooden ward", "forest protection"], "a Deku Shield", 'item'), - 'Hylian Shield': (["a steel safeguard", "a Hylian relic", "metallic protection"], "a Hylian Shield", 'item'), 'Deku Stick Capacity': (["a lumber rack", "more flammable twigs"], "a Stick Capacity Upgrade", 'item'), 'Deku Nut Capacity': (["more nuts", "flashbang storage"], "a Nut Capacity Upgrade", 'item'), - 'Prelude of Light': (["a luminous prologue melody", "a yellow warp song", "the temple traveler"], "the Prelude of Light", 'item'), - 'Serenade of Water': (["a song of a damp ditch", "a blue warp song", "the lake's tune"], "the Serenade of Water", 'item'), 'Heart Container': (["a lot of love", "a Valentine's gift", "a boss's organ"], "a Heart Container", 'item'), 'Piece of Heart': (["love", "a partial Valentine"], "a Heart Piece", 'item'), 'Piece of Heart (Treasure Chest Game)': (["love", "a partial Valentine"], "a Heart Piece", 'item'), @@ -113,11 +115,9 @@ def getHintGroup(group, world): 'Rupees (20)': (["couch cash", "a red gem"], "a Red Rupees", 'item'), 'Rupees (50)': (["big bucks", "a purple gem", "wealth"], "a Purple Rupee", 'item'), 'Rupees (200)': (["a juicy jackpot", "a yellow gem", "great wealth"], "a Gold Rupee", 'item'), - 'Light Arrows': (["the shining shot", "glowing darts", "Ganondorf's bane"], "the Light Arrows", 'item'), - 'Kokiri Sword': (["a butter knife", "a tiny, sharp blade", "a child's blade"], "the Kokiri Sword", 'item'), - 'Biggoron Sword': (["an unwieldy knife", "a two-handed blade"], "the Biggoron Sword", 'item'), - 'Pocket Egg': (["a Cucco container", "a Cucco, eventually", "a fowl youth"], "the Pocket Egg", 'item'), 'Weird Egg': (["a chicken dilemma"], "the Weird Egg", 'item'), + 'Zeldas Letter': (["an autograph", "royal stationery", "royal snail mail"], "Zelda's Letter", 'item'), + 'Pocket Egg': (["a Cucco container", "a Cucco, eventually", "a fowl youth"], "the Pocket Egg", 'item'), 'Pocket Cucco': (["a little clucker"], "the Pocket Cucco", 'item'), 'Cojiro': (["a cerulean capon"], "Cojiro", 'item'), 'Odd Mushroom': (["a powder ingredient"], "an Odd Mushroom", 'item'), diff --git a/version.py b/version.py index bc912ec46..b9fe758f1 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.17.28 f.LUM' +__version__ = '2.17.29 f.LUM' From 367bb38b8bdfd538414bda72361fbf9ebd82a540 Mon Sep 17 00:00:00 2001 From: Nick Langille Date: Sun, 16 Sep 2018 06:51:48 -0400 Subject: [PATCH 512/755] Supress diffs for generated files --- .gitattributes | 1 + ASM/.gitattributes | 1 + 2 files changed, 2 insertions(+) diff --git a/.gitattributes b/.gitattributes index 201874470..ece96da77 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1 +1,2 @@ /data/rom_patch.txt binary +/data/symbols.json binary diff --git a/ASM/.gitattributes b/ASM/.gitattributes index 291377b6b..f153601a9 100644 --- a/ASM/.gitattributes +++ b/ASM/.gitattributes @@ -1 +1,2 @@ *.bin binary +/build/* binary From 425c658c2ef8cd996197a3d30fedbe8b48fcb5a6 Mon Sep 17 00:00:00 2001 From: Nick Langille Date: Sun, 16 Sep 2018 06:52:18 -0400 Subject: [PATCH 513/755] Implement more dungeon info display options --- ASM/build/asm_symbols.txt | 74 +- ASM/build/bundle.o | Bin 9312 -> 9744 bytes ASM/build/c_symbols.txt | 10 +- ASM/c/dungeon_info.c | 30 +- ASM/c/main.c | 1 - data/rom_patch.txt | 8891 +++++++++++++++++++------------------ data/symbols.json | 32 +- 7 files changed, 4647 insertions(+), 4391 deletions(-) diff --git a/ASM/build/asm_symbols.txt b/ASM/build/asm_symbols.txt index 919d8c508..27f6f5b19 100644 --- a/ASM/build/asm_symbols.txt +++ b/ASM/build/asm_symbols.txt @@ -996,44 +996,44 @@ 804056E0 heap_alloc,00000034 80405714 file_init,00000044 80405758 c_init,0000002C -80405784 overlay_swap,000000B8 -8040583C draw_dungeon_info,00000798 -80405FD4 text_init,0000002C -80406000 text_print,000000A8 -804060A8 text_flush,00000148 -804061FC .byt:0010 -804061FC font_sprite -8040620C .byt:0010 -8040620C quest_items_sprite -8040621C .byt:0010 -8040621C medals_sprite -8040622C .byt:0010 -8040622C stones_sprite -8040623C .byt:000E -8040623C cfg_dungeon_rewards -8040624C .byt:0012 -8040624C medal_colors -80406260 .byt:009C -80406260 dungeons -804062FC .byt:0004 -804062FC cfg_dungeon_info_enable -80406300 .byt:0004 -80406300 dungeon_count -80406304 .byt:0004 -80406304 heap_next -80406308 .byt:0004 -80406308 cfg_dungeon_info_reward_need_map -8040630C .byt:0004 -8040630C cfg_dungeon_info_mq_need_compass -80406310 .byt:0004 -80406310 cfg_dungeon_info_mq_enable +80405784 overlay_swap,000000B4 +80405838 draw_dungeon_info,000008AC +804060E4 text_init,0000002C +80406110 text_print,000000A8 +804061B8 text_flush,00000148 +8040630C .byt:0010 +8040630C font_sprite 8040631C .byt:0010 -8040631C setup_db -8040632C .byt:000E -8040632C cfg_dungeon_is_mq -8040633A .byt:14C8 -8040633A FONT_TEXTURE -80407802 .byt:87FE +8040631C quest_items_sprite +8040632C .byt:0010 +8040632C medals_sprite +8040633C .byt:0010 +8040633C stones_sprite +8040634C .byt:000E +8040634C cfg_dungeon_rewards +8040635C .byt:0012 +8040635C medal_colors +80406370 .byt:009C +80406370 dungeons +8040640C .byt:0004 +8040640C cfg_dungeon_info_enable +80406410 .byt:0004 +80406410 dungeon_count +80406414 .byt:0004 +80406414 heap_next +80406418 .byt:0004 +80406418 cfg_dungeon_info_reward_need_map +8040641C .byt:0004 +8040641C cfg_dungeon_info_mq_need_compass +80406420 .byt:0004 +80406420 cfg_dungeon_info_mq_enable +8040642C .byt:0010 +8040642C setup_db +8040643C .byt:000E +8040643C cfg_dungeon_is_mq +8040644A .byt:14C8 +8040644A FONT_TEXTURE +80407912 .byt:86EE 80480000 DUMMY_ACTOR 80500000 C_HEAP  \ No newline at end of file diff --git a/ASM/build/bundle.o b/ASM/build/bundle.o index cbe858736502ee08fe71928a52ca4a67f799d2a8..407677d65697036f66a03a870e8ee4a877cbada5 100644 GIT binary patch delta 2322 zcmaKtPiPxg5XL{PBwNx-tCg(SB2j`YuVgn-!8J}}s192>DT3yZmQZpCAx-1pLk^)e zGzT{lsS7=rMCADpN)IO3#RoxKoPrNIm^73?bMPS)A42LDA3`ZKhfqT6RQ*Qp+5KM~ zJUjDd=ljjfTf9+g9&Hw^0snKa-Mx1gR-46&)yR!jXXYzG1TgOQ&sC$fjE|)9BYpib zD?hZ8F;hh*^fJQWFD`%hQ`3M9THq%LvWBg^+gyk=6%@RKgF@ zIs&xD5&Gi=bOTu`0CS8Z==#C{%k{l+Se&AyW$kKDxM^!K@X`uAFjO4>&rI&t&{v7Q- zVDKT;nEUAsj8%34S8fBxeAw3*yEe`otC1S5F0M&?%_^4I?&aYs0?ZjKy?}t^;keu1 zcm;bfbQ{6rKKkXr`>Op6T|_vS?Z+kcQEVh$39-Ag9P=53)N~@Bw>HL#R~IoR;1=>l zdGE>%J{R2m8NdCta&7;7)(@Qhzbobo)DwGQNDz{>ciQQTfCnHQ?k_U-F=ua`JTn)z=LNx1TwKk?j?D8M&ie zLmx-WRg}J=<=9JK$f*Cc3a;kL_nlQ_IwMZ8o!2_IuQB)~$EDX1;3`~#Z?Egkf7@5p z?91Ni`i;&+knv$z^ZDY{1&mpZ;i9aeG=ZAr@qVPY8!+p5AdRd0$w}A6Z|kLZkO^)e z!gsJ-ans!;cax9hG$&5`Hjr8Y0yX2m2XxOcep5~Ly&4_^KMHlH?*}X8E`OH&Hdtq! zeIZ7(z;j}m@ggS`snB-O9tH-)zep>76BrSn*LXzyd7vo%0mCafPokf4~Xvq!{YOs85W;_W$|;gQfNyTj^%aX7>C#^ z=Ve;Sr%;}?VnbReW^`=k7no;zv|Xsf9@a!QI~O9mqJiw12C|Q8Ap3*{vQKIt`>-i= zx>E@DaSdQkX#jg&1K1Z#-Az-M;L@lp{Xkcp5A5uDlExVkfVdE|gE)a?v~dE-XyX*f ziBFK6_ymzr#?PAfCe3>U=m=cY;Bg9e>Nj;>LUj0kf;zc63nt3CV8ToyL16(&P`Hz5 zCXqO*3nnNmAPIIZAc-~IX~KXc9+>x@nmhtXp2Lm>*oo-+4ngW7;AAwhlhp!_kWs)f zV9vZ2a0n=1PD=|ocTL_sBS4Ujz`DsZAkL<#|H#xgV9plzFJ#FJS|CY65lBvJf#j^d z?a8LT?aAxr{9|*zpbICLbm8O*uwUN4MJshz`8A4vhgN(7r^P35TKt>b|DXg&JSc(t zrr={;(5>m+xhJ%+dr}L#=lNfTqjY}+_KJPN&zyDKr?jl&ZfQTohQv?hjGs6Dkn!tf z6QGb>w$w3w*;1!X!lXH0GJebW1nlHfST1LpE0ocv1b}tYA}H}WJ=v52O3$14s>w@p zG@Zn|CU9^0V*ZnW)dQ6;6uNRVKzK>j3I(fYQk^f9tez<~N0XUSx5P}VO>N=>9dA_3 mx;jZyD61Ko-gVUy^GMy-W{YO`3FUdE-U8bJ5qEw8dHNlDQdmd; delta 2094 zcmY+EL1-Lh6vzKNyG>?yW@l$N+hl9fy4mckX^hxP)PQpsH?c&_A!?NzDwZ}%4>=SS z?4i0#-9ry0T{;1C=pj_9IV`4JUvpf#-+XPHMaTBd^7IR(p z=NS=q*Jw8Y!wt$+94vRm0^`ua0J;{&Du-b#e}&PxI5lSe)p*<N1NZjTOQjC#;G=BV7=>n~Q&Rgr@P^uEnTiplnqO|AdfXZ7krIVhY=kq+* zdKmv?-1QgA-Ee7u<#X`;?Z6p6W53&9-vO=`~wR7%OlGvzA2qXQ%q3OJ^c+vPoIY$PFX#%U&13+P@4|$eC1>0{VXZ= z0_8jh1l~Q}E8jEkf$Q%Ap1DcFZW5J9^o}ALCec)YBs+>NU!v_LaS(%xh$EdiosX#YX z7m8*Tu{~9|r09{kymaUM`k60S$G4SxOKiS+#u=%x>Cr73)(MSKib!se#3soOPGN%G zZ;S4RUX`EOv7W-#1bA1`oxB_ABOkyp7K>hdt>_u`J*wk_gPyRkYkTgF__)cTe9-<~ zS`IhdBP)~HTxTV-LCoPC5NG@daF>ACgw8($IvZSH4I70ww)xB!!i~Z`!^O(lj$82> zd)dWnGW&qt5@&${f}2Mf`4O6@08jEJBlF}%;3?+GRYu9L0{uLf{0Zol^>s#BzX3ce z`E5qY?*e-yzt1Q+KbB$Uwd6xS$ij6coFc0Tr)XHDaLQD|sk2Hrbqy%-V2Xw%spB~T zNYO|DQk%Mt1_F?xz5rO%6#$F10$|yZP7Ri;gsgF8XyuiVHKl~CStVp0)j}tM=O|(w z*L4fJZb?nbYN<(CSAjk;BygV?5?Da34SkN_y&W|!Y-)qM%D|?f7}zA1j%+cafK4M2 zv^fb8v=^12P2;GJ#!=m>(z7pXJsL;n*44Rmpc=IWq(;H?q&k>Bq6*Wqx{w_Uar&4t zNNbRELm8w`Duc8JOKUL4RR(DS3YgQU^qoWb(ie>oNsK)@5j%mAuF(c^Sw_KFBEfBx=#9Gs6lXb3hBxut2cP z4Pd9lO@23Wkj9;I@V?F;sNA(x?y_^)cL^Z%E&-x^RJ|K6JC?7=oznZ$y#J_RK`)%u z`E7lG#&RG_2$_^C02I!Op{zI5BwP)YZR+(4y6&RRS9N|_<=}5O|081M<p = db->buf; + // Call setup display list gSPDisplayList(db->p++, setup_db.buf); @@ -68,8 +72,14 @@ void draw_dungeon_info(z64_disp_buf_t *db) { int icon_size = 16; int padding = 2; int rows = 13; - int bg_width = (5 * icon_size) + ((8 + 6) * font_sprite.tile_w) + - (8 * padding); + int mq_width = cfg_dungeon_info_mq_enable ? + ((6 * font_sprite.tile_w) + padding) : + 0; + int bg_width = + (5 * icon_size) + + (8 * font_sprite.tile_w) + + (7 * padding) + + mq_width; int bg_height = (rows * icon_size) + ((rows + 1) * padding); int bg_left = (Z64_SCREEN_WIDTH - bg_width) / 2; int bg_top = (Z64_SCREEN_HEIGHT - bg_height) / 2; @@ -97,6 +107,10 @@ void draw_dungeon_info(z64_disp_buf_t *db) { for (int i = 0; i < dungeon_count; i++) { dungeon_entry_t *d = &(dungeons[i]); + if (cfg_dungeon_info_reward_need_map && + !z64_file.dungeon_items[d->index].map) { + continue; + } int reward = cfg_dungeon_rewards[d->index]; if (reward < 3) continue; reward -= 3; @@ -116,6 +130,10 @@ void draw_dungeon_info(z64_disp_buf_t *db) { for (int i = 0; i < dungeon_count; i++) { dungeon_entry_t *d = &(dungeons[i]); + if (cfg_dungeon_info_reward_need_map && + !z64_file.dungeon_items[d->index].map) { + continue; + } int reward = cfg_dungeon_rewards[d->index]; if (reward < 0 || reward >= 3) continue; @@ -209,11 +227,13 @@ void draw_dungeon_info(z64_disp_buf_t *db) { // Draw master quest dungeons - int show_mq = 1; - if (show_mq) { - //text_print("MQ", left, top); + if (cfg_dungeon_info_mq_enable) { for (int i = 0; i < dungeon_count; i++) { dungeon_entry_t *d = &(dungeons[i]); + if (cfg_dungeon_info_mq_need_compass && d->has_map && + !z64_file.dungeon_items[d->index].compass) { + continue; + } char *str = cfg_dungeon_is_mq[d->index] ? "MQ" : "Normal"; int top = start_top + ((icon_size + padding) * i) + 1; text_print(str, left, top); diff --git a/ASM/c/main.c b/ASM/c/main.c index 6899ef44f..07f994df3 100644 --- a/ASM/c/main.c +++ b/ASM/c/main.c @@ -15,7 +15,6 @@ void overlay_swap(z64_disp_buf_t *db, Gfx *buf, uint32_t size) { z64_game.pause_screen == 0 && !z64_game.pause_screen_changing && z64_ctxt.input[0].raw.a) { - db->p = db->buf; draw_dungeon_info(db); } diff --git a/data/rom_patch.txt b/data/rom_patch.txt index bfb55c086..8413b3cd5 100644 --- a/data/rom_patch.txt +++ b/data/rom_patch.txt @@ -6498,8 +6498,8 @@ ec9ce7,7a 34b35e3,40 34b35e4,ac 34b35e5,70 -34b35e6,62 -34b35e7,2c +34b35e6,63 +34b35e7,3c 34b35e8,24 34b35e9,42 34b35ea,29 @@ -6510,8 +6510,8 @@ ec9ce7,7a 34b35ef,40 34b35f0,ac 34b35f1,62 -34b35f2,62 -34b35f3,1c +34b35f2,63 +34b35f3,2c 34b35f4,8f 34b35f5,a2 34b35f7,1c @@ -6524,8 +6524,8 @@ ec9ce7,7a 34b35ff,40 34b3600,ac 34b3601,62 -34b3602,62 -34b3603,c +34b3602,63 +34b3603,1c 34b3604,3c 34b3605,11 34b3606,80 @@ -6536,8 +6536,8 @@ ec9ce7,7a 34b360b,10 34b360c,26 34b360d,24 -34b360e,61 -34b360f,fc +34b360e,63 +34b360f,c 34b3611,40 34b3612,80 34b3613,25 @@ -6562,8 +6562,8 @@ ec9ce7,7a 34b362b,18 34b362c,ae 34b362d,22 -34b362e,61 -34b362f,fc +34b362e,63 +34b362f,c 34b3631,9 34b3632,48 34b3633,43 @@ -6573,8 +6573,8 @@ ec9ce7,7a 34b3637,40 34b3638,24 34b3639,63 -34b363a,63 -34b363b,3a +34b363a,64 +34b363b,4a 34b363e,20 34b363f,25 34b3642,30 @@ -6589,8 +6589,8 @@ ec9ce7,7a 34b364b,f0 34b364c,8d 34b364d,5 -34b364e,61 -34b364f,fc +34b364e,63 +34b364f,c 34b3651,a4 34b3652,28 34b3653,21 @@ -6606,8 +6606,8 @@ ec9ce7,7a 34b3661,a2 34b3664,8d 34b3665,2 -34b3666,61 -34b3667,fc +34b3666,63 +34b3667,c 34b3669,44 34b366a,10 34b366b,21 @@ -6651,12 +6651,12 @@ ec9ce7,7a 34b369a,1 34b369c,ac 34b369d,83 -34b369e,63 -34b369f,1c +34b369e,64 +34b369f,2c 34b36a0,24 34b36a1,84 -34b36a2,63 -34b36a3,1c +34b36a2,64 +34b36a3,2c 34b36a4,ac 34b36a5,82 34b36a7,4 @@ -6703,8 +6703,8 @@ ec9ce7,7a 34b36db,8 34b36dc,ac 34b36dd,62 -34b36de,63 -34b36df,4 +34b36de,64 +34b36df,14 34b36e1,4 34b36e2,17 34b36e3,c3 @@ -6735,8 +6735,8 @@ ec9ce7,7a 34b3703,10 34b3704,8c 34b3705,62 -34b3706,63 -34b3707,4 +34b3706,64 +34b3707,14 34b3709,44 34b370a,20 34b370b,21 @@ -6745,8 +6745,8 @@ ec9ce7,7a 34b370f,8 34b3710,ac 34b3711,64 -34b3712,63 -34b3713,4 +34b3712,64 +34b3713,14 34b3714,27 34b3715,bd 34b3716,ff @@ -6817,8 +6817,8 @@ ec9ce7,7a 34b376b,60 34b3770,c 34b3771,10 -34b3772,17 -34b3773,f5 +34b3772,18 +34b3773,39 34b3778,8f 34b3779,bf 34b377b,14 @@ -6873,7 +6873,7 @@ ec9ce7,7a 34b37b7,6 34b37b8,14 34b37b9,62 -34b37bb,16 +34b37bb,15 34b37bd,c0 34b37be,90 34b37bf,25 @@ -6897,7 +6897,7 @@ ec9ce7,7a 34b37d3,48 34b37d4,14 34b37d5,40 -34b37d7,10 +34b37d7,f 34b37d8,2 34b37d9,40 34b37da,30 @@ -6919,7 +6919,7 @@ ec9ce7,7a 34b37eb,44 34b37ec,14 34b37ed,40 -34b37ef,b +34b37ef,a 34b37f0,2 34b37f1,20 34b37f2,28 @@ -6937,4451 +6937,4688 @@ ec9ce7,7a 34b37ff,14 34b3800,4 34b3801,41 -34b3803,6 -34b3808,8c -34b3809,82 -34b380b,4 -34b380c,c -34b380d,10 -34b380e,16 -34b380f,f -34b3810,ac -34b3811,82 -34b3813,8 +34b3803,5 +34b3808,c +34b3809,10 +34b380a,16 +34b380b,e +34b3810,2 +34b3811,40 +34b3812,30 +34b3813,25 34b3814,2 -34b3815,40 -34b3816,30 +34b3815,20 +34b3816,28 34b3817,25 -34b3818,2 -34b3819,20 -34b381a,28 -34b381b,25 -34b381c,c -34b381d,10 -34b381e,14 -34b3820,2 -34b3822,20 -34b3823,25 +34b3818,c +34b3819,10 +34b381a,14 +34b381c,2 +34b381e,20 +34b381f,25 +34b3820,8f +34b3821,bf +34b3823,1c 34b3824,8f -34b3825,bf -34b3827,1c +34b3825,b2 +34b3827,18 34b3828,8f -34b3829,b2 -34b382b,18 +34b3829,b1 +34b382b,14 34b382c,8f -34b382d,b1 -34b382f,14 -34b3830,8f -34b3831,b0 -34b3833,10 -34b3834,3 -34b3835,e0 -34b3837,8 -34b3838,27 -34b3839,bd -34b383b,20 -34b383c,27 -34b383d,bd -34b383e,ff -34b383f,98 -34b3840,af -34b3841,bf -34b3843,64 -34b3844,af -34b3845,be -34b3847,60 -34b3848,af -34b3849,b7 -34b384b,5c +34b382d,b0 +34b382f,10 +34b3830,3 +34b3831,e0 +34b3833,8 +34b3834,27 +34b3835,bd +34b3837,20 +34b3838,3c +34b3839,2 +34b383a,80 +34b383b,40 +34b383c,8c +34b383d,42 +34b383e,64 +34b383f,c +34b3840,10 +34b3841,40 +34b3842,2 +34b3843,26 +34b3844,3c +34b3845,3 +34b3846,80 +34b3847,40 +34b3848,27 +34b3849,bd +34b384a,ff +34b384b,98 34b384c,af -34b384d,b6 -34b384f,58 +34b384d,bf +34b384f,64 34b3850,af -34b3851,b5 -34b3853,54 +34b3851,be +34b3853,60 34b3854,af -34b3855,b4 -34b3857,50 +34b3855,b7 +34b3857,5c 34b3858,af -34b3859,b3 -34b385b,4c +34b3859,b6 +34b385b,58 34b385c,af -34b385d,b2 -34b385f,48 +34b385d,b5 +34b385f,54 34b3860,af -34b3861,b1 -34b3863,44 +34b3861,b4 +34b3863,50 34b3864,af -34b3865,b0 -34b3867,40 -34b3869,80 -34b386a,80 -34b386b,25 -34b386c,3c -34b386d,2 -34b386e,80 -34b386f,40 -34b3870,8c -34b3871,43 -34b3872,63 -34b3873,20 +34b3865,b3 +34b3867,4c +34b3868,af +34b3869,b2 +34b386b,48 +34b386c,af +34b386d,b1 +34b386f,44 +34b3870,af +34b3871,b0 +34b3873,40 34b3874,8c 34b3875,82 -34b3877,8 -34b3878,24 -34b3879,44 -34b387b,8 -34b387c,ae -34b387d,4 +34b3877,4 +34b3878,8c +34b3879,63 +34b387a,64 +34b387b,30 +34b387c,24 +34b387d,45 34b387f,8 -34b3880,3c -34b3881,4 -34b3882,de -34b3884,ac -34b3885,44 +34b3880,ac +34b3881,85 +34b3883,8 +34b3884,3c +34b3885,5 +34b3886,de 34b3888,ac -34b3889,43 -34b388b,4 -34b388c,3c -34b388d,2 -34b388e,80 -34b388f,40 -34b3890,94 -34b3891,43 -34b3892,62 -34b3895,3 -34b3896,10 -34b3897,c0 -34b3899,43 -34b389a,10 -34b389b,23 -34b389d,2 -34b389e,10 -34b389f,40 -34b38a0,24 -34b38a1,42 -34b38a3,60 -34b38a4,24 -34b38a5,13 -34b38a6,1 -34b38a7,40 -34b38a8,2 -34b38a9,62 -34b38aa,98 -34b38ab,23 -34b38ad,13 -34b38ae,98 -34b38af,43 -34b38b0,26 -34b38b1,63 -34b38b3,2 -34b38b4,af -34b38b5,a3 -34b38b7,38 -34b38b8,8e -34b38b9,3 -34b38bb,8 -34b38bc,24 -34b38bd,64 -34b38bf,8 -34b38c0,ae -34b38c1,4 -34b38c3,8 -34b38c4,3c -34b38c5,4 -34b38c6,fc -34b38c7,ff -34b38c8,34 -34b38c9,84 -34b38ca,ff -34b38cb,ff -34b38cc,ac -34b38cd,64 -34b38d0,3c -34b38d1,4 -34b38d2,ff -34b38d3,fd -34b38d4,34 -34b38d5,84 -34b38d6,f6 -34b38d7,fb -34b38d8,ac -34b38d9,64 -34b38db,4 -34b38dc,8e -34b38dd,3 +34b3889,45 +34b388c,ac +34b388d,43 +34b388f,4 +34b3890,3c +34b3891,2 +34b3892,80 +34b3893,40 +34b3894,8c +34b3895,42 +34b3896,64 +34b3897,20 +34b3898,10 +34b3899,40 +34b389b,7 +34b389e,18 +34b389f,25 +34b38a0,3c +34b38a1,2 +34b38a2,80 +34b38a3,40 +34b38a4,94 +34b38a5,43 +34b38a6,63 +34b38a7,10 +34b38a9,3 +34b38aa,10 +34b38ab,40 +34b38ad,43 +34b38ae,10 +34b38af,21 +34b38b1,2 +34b38b2,10 +34b38b3,40 +34b38b4,24 +34b38b5,43 +34b38b7,2 +34b38b8,3c +34b38b9,2 +34b38ba,80 +34b38bb,40 +34b38bc,94 +34b38bd,42 +34b38be,63 +34b38bf,10 +34b38c1,2 +34b38c2,10 +34b38c3,c0 +34b38c4,24 +34b38c5,42 +34b38c7,5e +34b38c9,43 +34b38ca,10 +34b38cb,21 +34b38cc,24 +34b38cd,13 +34b38ce,1 +34b38cf,40 +34b38d0,2 +34b38d1,62 +34b38d2,98 +34b38d3,23 +34b38d5,13 +34b38d6,98 +34b38d7,43 +34b38d8,26 +34b38d9,77 +34b38db,2 +34b38dc,8c +34b38dd,83 34b38df,8 34b38e0,24 -34b38e1,64 +34b38e1,65 34b38e3,8 -34b38e4,ae -34b38e5,4 +34b38e4,ac +34b38e5,85 34b38e7,8 34b38e8,3c -34b38e9,4 -34b38ea,fa -34b38ec,ac -34b38ed,64 -34b38f0,24 -34b38f1,4 -34b38f3,d0 -34b38f4,ac -34b38f5,64 -34b38f7,4 -34b38f9,53 -34b38fa,10 -34b38fb,21 -34b38fd,2 -34b38fe,13 -34b38ff,80 -34b3900,3c -34b3901,3 -34b3903,ff -34b3904,34 -34b3905,63 -34b3906,f0 -34b3909,43 -34b390a,10 -34b390b,24 +34b38e9,5 +34b38ea,fc +34b38eb,ff +34b38ec,34 +34b38ed,a5 +34b38ee,ff +34b38ef,ff +34b38f0,ac +34b38f1,65 +34b38f4,3c +34b38f5,5 +34b38f6,ff +34b38f7,fd +34b38f8,34 +34b38f9,a5 +34b38fa,f6 +34b38fb,fb +34b38fc,ac +34b38fd,65 +34b38ff,4 +34b3900,8c +34b3901,83 +34b3903,8 +34b3904,24 +34b3905,65 +34b3907,8 +34b3908,ac +34b3909,85 +34b390b,8 34b390c,3c -34b390d,4 -34b390e,e4 -34b3910,24 -34b3911,84 -34b3912,3 -34b3913,b8 -34b3915,44 -34b3916,10 -34b3917,25 -34b3918,af -34b3919,a2 -34b391b,20 -34b391d,13 -34b391e,13 -34b391f,80 -34b3921,43 -34b3922,10 -34b3923,24 -34b3924,34 -34b3925,42 -34b3927,8 -34b3928,af -34b3929,a2 -34b392b,24 -34b392c,3c -34b392d,2 -34b392e,e1 -34b3930,af -34b3931,a2 -34b3933,28 -34b3934,af -34b3935,a0 -34b3937,2c -34b3938,3c -34b3939,2 -34b393a,f1 +34b390d,5 +34b390e,fa +34b3910,ac +34b3911,65 +34b3914,24 +34b3915,5 +34b3917,d0 +34b3918,ac +34b3919,65 +34b391b,4 +34b391d,53 +34b391e,10 +34b391f,21 +34b3921,2 +34b3922,13 +34b3923,80 +34b3924,3c +34b3925,3 +34b3927,ff +34b3928,34 +34b3929,63 +34b392a,f0 +34b392d,43 +34b392e,10 +34b392f,24 +34b3930,3c +34b3931,5 +34b3932,e4 +34b3934,24 +34b3935,a5 +34b3936,3 +34b3937,b8 +34b3939,45 +34b393a,10 +34b393b,25 34b393c,af 34b393d,a2 -34b393f,30 -34b3940,3c -34b3941,2 -34b3942,4 -34b3944,24 -34b3945,42 -34b3946,4 -34b3948,af -34b3949,a2 -34b394b,34 -34b394c,27 +34b393f,20 +34b3941,13 +34b3942,13 +34b3943,80 +34b3945,43 +34b3946,10 +34b3947,24 +34b3948,34 +34b3949,42 +34b394b,8 +34b394c,af 34b394d,a2 -34b394f,20 -34b3950,27 -34b3951,a6 -34b3953,38 -34b3954,8e -34b3955,3 -34b3957,8 -34b3958,24 -34b3959,64 -34b395b,8 -34b395c,ae -34b395d,4 -34b395f,8 -34b3960,8c -34b3961,45 -34b3963,4 -34b3964,8c -34b3965,44 -34b3968,ac -34b3969,65 -34b396b,4 -34b396c,24 -34b396d,42 -34b396f,8 -34b3970,14 -34b3971,c2 -34b3972,ff -34b3973,f8 -34b3974,ac -34b3975,64 -34b3978,8e -34b3979,2 +34b394f,24 +34b3950,3c +34b3951,2 +34b3952,e1 +34b3954,af +34b3955,a2 +34b3957,28 +34b3958,af +34b3959,a0 +34b395b,2c +34b395c,3c +34b395d,2 +34b395e,f1 +34b3960,af +34b3961,a2 +34b3963,30 +34b3964,3c +34b3965,2 +34b3966,4 +34b3968,24 +34b3969,42 +34b396a,4 +34b396c,af +34b396d,a2 +34b396f,34 +34b3970,27 +34b3971,a2 +34b3973,20 +34b3974,27 +34b3975,a8 +34b3977,38 +34b3978,8c +34b3979,83 34b397b,8 34b397c,24 -34b397d,43 +34b397d,65 34b397f,8 -34b3980,ae -34b3981,3 +34b3980,ac +34b3981,85 34b3983,8 -34b3984,3c -34b3985,3 -34b3986,e7 -34b3988,ac -34b3989,43 +34b3984,8c +34b3985,47 +34b3987,4 +34b3988,8c +34b3989,46 34b398c,ac -34b398d,40 +34b398d,67 34b398f,4 -34b3990,8e -34b3991,2 +34b3990,24 +34b3991,42 34b3993,8 -34b3994,24 -34b3995,43 -34b3997,8 -34b3998,ae -34b3999,3 -34b399b,8 -34b399c,3c -34b399d,3 -34b399e,fc -34b399f,11 -34b39a0,34 -34b39a1,63 -34b39a2,96 -34b39a3,23 -34b39a4,ac +34b3994,15 +34b3995,2 +34b3996,ff +34b3997,f8 +34b3998,ac +34b3999,66 +34b399d,80 +34b399e,80 +34b399f,25 +34b39a0,8c +34b39a1,82 +34b39a3,8 +34b39a4,24 34b39a5,43 -34b39a8,3c -34b39a9,3 -34b39aa,ff -34b39ab,2f -34b39ac,34 -34b39ad,63 -34b39ae,ff -34b39af,ff +34b39a7,8 +34b39a8,ac +34b39a9,83 +34b39ab,8 +34b39ac,3c +34b39ad,3 +34b39ae,e7 34b39b0,ac 34b39b1,43 -34b39b3,4 -34b39b4,3c -34b39b5,5 -34b39b6,80 -34b39b7,40 -34b39b8,24 -34b39b9,a5 -34b39ba,62 -34b39bb,1c -34b39bc,94 -34b39bd,a7 +34b39b4,ac +34b39b5,40 +34b39b7,4 +34b39b8,8c +34b39b9,82 +34b39bb,8 +34b39bc,24 +34b39bd,43 34b39bf,8 -34b39c2,30 -34b39c3,25 -34b39c4,c -34b39c5,10 -34b39c6,14 -34b39c7,1c -34b39c8,2 -34b39ca,20 -34b39cb,25 -34b39cc,3c -34b39cd,2 -34b39ce,80 -34b39cf,40 -34b39d0,8c -34b39d1,42 -34b39d2,63 -34b39d4,18 -34b39d5,40 -34b39d7,35 -34b39d8,3c -34b39d9,2 -34b39da,80 -34b39db,40 +34b39c0,ac +34b39c1,83 +34b39c3,8 +34b39c4,3c +34b39c5,3 +34b39c6,fc +34b39c7,11 +34b39c8,34 +34b39c9,63 +34b39ca,96 +34b39cb,23 +34b39cc,ac +34b39cd,43 +34b39d0,3c +34b39d1,3 +34b39d2,ff +34b39d3,2f +34b39d4,34 +34b39d5,63 +34b39d6,ff +34b39d7,ff +34b39d8,ac +34b39d9,43 +34b39db,4 34b39dc,3c -34b39dd,12 +34b39dd,5 34b39de,80 34b39df,40 -34b39e0,26 -34b39e1,52 -34b39e2,62 -34b39e3,60 -34b39e6,88 -34b39e7,25 -34b39e8,3c -34b39e9,14 -34b39ea,80 -34b39eb,40 -34b39ec,26 -34b39ed,94 -34b39ee,62 -34b39ef,3c +34b39e0,24 +34b39e1,a5 +34b39e2,63 +34b39e3,2c +34b39e4,94 +34b39e5,a7 +34b39e7,8 +34b39e8,c +34b39e9,10 +34b39ea,14 +34b39eb,1c +34b39ee,30 +34b39ef,25 34b39f0,3c -34b39f1,17 +34b39f1,2 34b39f2,80 34b39f3,40 -34b39f4,26 -34b39f5,f7 -34b39f6,62 -34b39f7,4c -34b39f8,3c -34b39f9,1e -34b39fa,fa -34b39fc,24 -34b39fd,16 -34b39ff,10 -34b3a00,24 -34b3a01,42 -34b3a02,62 -34b3a03,1c -34b3a04,af -34b3a05,a2 -34b3a07,3c -34b3a08,3c -34b3a09,15 -34b3a0a,80 -34b3a0b,40 -34b3a0c,92 -34b3a0d,42 -34b3a11,54 -34b3a12,10 -34b3a13,21 -34b3a14,80 -34b3a15,46 -34b3a18,28 -34b3a19,c2 -34b3a1b,3 -34b3a1c,54 -34b3a1d,40 -34b3a1f,1f -34b3a20,26 -34b3a21,31 -34b3a23,1 -34b3a24,24 -34b3a25,c6 -34b3a26,ff -34b3a27,fd -34b3a29,6 -34b3a2a,18 +34b39f4,8c +34b39f5,42 +34b39f6,64 +34b39f7,10 +34b39f8,18 +34b39f9,40 +34b39fb,42 +34b39fc,3c +34b39fd,2 +34b39fe,80 +34b39ff,40 +34b3a00,3c +34b3a01,12 +34b3a02,80 +34b3a03,40 +34b3a04,26 +34b3a05,52 +34b3a06,63 +34b3a07,70 +34b3a0a,88 +34b3a0b,25 +34b3a0c,3c +34b3a0d,16 +34b3a0e,80 +34b3a0f,40 +34b3a10,3c +34b3a11,14 +34b3a12,80 +34b3a13,40 +34b3a14,26 +34b3a15,94 +34b3a16,63 +34b3a17,4c +34b3a18,3c +34b3a19,1e +34b3a1a,80 +34b3a1b,40 +34b3a1c,27 +34b3a1d,de +34b3a1e,63 +34b3a1f,5c +34b3a20,24 +34b3a21,42 +34b3a22,63 +34b3a23,2c +34b3a24,af +34b3a25,a2 +34b3a27,38 +34b3a28,3c +34b3a29,15 +34b3a2a,80 34b3a2b,40 -34b3a2d,66 -34b3a2e,18 -34b3a2f,21 -34b3a31,77 -34b3a32,18 -34b3a33,21 -34b3a34,90 -34b3a35,62 -34b3a39,2 -34b3a3a,16 -34b3a3c,90 -34b3a3d,64 -34b3a3f,2 -34b3a41,4 -34b3a42,22 -34b3a45,44 +34b3a2c,8e +34b3a2d,c2 +34b3a2e,64 +34b3a2f,18 +34b3a30,50 +34b3a31,40 +34b3a33,b +34b3a34,92 +34b3a35,42 +34b3a38,92 +34b3a39,43 +34b3a3c,3c +34b3a3d,2 +34b3a3e,80 +34b3a3f,11 +34b3a40,34 +34b3a41,42 +34b3a42,a5 +34b3a43,d0 +34b3a45,43 34b3a46,10 -34b3a47,25 +34b3a47,21 34b3a48,90 -34b3a49,63 -34b3a4b,1 -34b3a4d,3 -34b3a4e,1c -34b3a51,43 -34b3a52,10 -34b3a53,25 -34b3a54,34 -34b3a55,42 -34b3a57,ff -34b3a58,8e -34b3a59,3 -34b3a5b,8 -34b3a5c,24 -34b3a5d,64 -34b3a5f,8 -34b3a60,ae -34b3a61,4 -34b3a63,8 -34b3a64,ac -34b3a65,7e -34b3a68,ac -34b3a69,62 -34b3a6b,4 -34b3a6c,af -34b3a6d,b6 -34b3a6f,18 -34b3a70,af -34b3a71,b6 -34b3a73,14 -34b3a75,11 -34b3a76,10 -34b3a77,c0 -34b3a79,51 -34b3a7a,10 -34b3a7b,21 -34b3a7d,2 -34b3a7e,10 -34b3a7f,40 -34b3a80,24 -34b3a81,42 -34b3a83,4 -34b3a84,af -34b3a85,a2 -34b3a87,10 -34b3a88,8f -34b3a89,a7 -34b3a8b,38 -34b3a8c,8f -34b3a8d,a5 -34b3a8f,3c -34b3a90,c -34b3a91,10 -34b3a92,14 -34b3a93,af -34b3a94,2 -34b3a96,20 +34b3a49,42 +34b3a4b,a8 +34b3a4d,2 +34b3a4e,10 +34b3a4f,82 +34b3a50,30 +34b3a51,42 +34b3a53,1 +34b3a54,50 +34b3a55,40 +34b3a57,27 +34b3a58,26 +34b3a59,31 +34b3a5b,1 +34b3a5c,92 +34b3a5d,42 +34b3a61,54 +34b3a62,10 +34b3a63,21 +34b3a64,80 +34b3a65,46 +34b3a68,28 +34b3a69,c2 +34b3a6b,3 +34b3a6c,54 +34b3a6d,40 +34b3a6f,21 +34b3a70,26 +34b3a71,31 +34b3a73,1 +34b3a74,24 +34b3a75,c6 +34b3a76,ff +34b3a77,fd +34b3a79,6 +34b3a7a,18 +34b3a7b,40 +34b3a7d,66 +34b3a7e,18 +34b3a7f,21 +34b3a81,7e +34b3a82,18 +34b3a83,21 +34b3a84,90 +34b3a85,62 +34b3a89,2 +34b3a8a,16 +34b3a8c,90 +34b3a8d,64 +34b3a8f,2 +34b3a91,4 +34b3a92,22 +34b3a95,44 +34b3a96,10 34b3a97,25 -34b3a98,26 -34b3a99,31 +34b3a98,90 +34b3a99,63 34b3a9b,1 -34b3a9c,8e -34b3a9d,a2 -34b3a9e,63 -34b3aa0,2 -34b3aa1,22 +34b3a9d,3 +34b3a9e,1c +34b3aa1,43 34b3aa2,10 -34b3aa3,2a -34b3aa4,14 -34b3aa5,40 -34b3aa6,ff -34b3aa7,d9 -34b3aa8,26 -34b3aa9,52 -34b3aab,c -34b3aac,8e -34b3aad,2 +34b3aa3,25 +34b3aa4,34 +34b3aa5,42 +34b3aa7,ff +34b3aa8,8e +34b3aa9,3 +34b3aab,8 +34b3aac,24 +34b3aad,64 34b3aaf,8 -34b3ab0,24 -34b3ab1,43 +34b3ab0,ae +34b3ab1,4 34b3ab3,8 -34b3ab4,ae -34b3ab5,3 -34b3ab7,8 -34b3ab8,3c -34b3ab9,3 -34b3aba,fa +34b3ab4,3c +34b3ab5,4 +34b3ab6,fa +34b3ab8,ac +34b3ab9,64 34b3abc,ac -34b3abd,43 +34b3abd,62 +34b3abf,4 34b3ac0,24 -34b3ac1,3 -34b3ac2,ff -34b3ac3,ff -34b3ac4,ac -34b3ac5,43 -34b3ac7,4 -34b3ac8,3c -34b3ac9,5 -34b3aca,80 -34b3acb,40 -34b3acc,24 -34b3acd,a5 -34b3ace,62 -34b3acf,2c -34b3ad0,94 -34b3ad1,a7 -34b3ad3,8 -34b3ad6,30 -34b3ad7,25 -34b3ad8,c -34b3ad9,10 -34b3ada,14 -34b3adb,1c -34b3adc,2 -34b3ade,20 -34b3adf,25 -34b3ae0,3c -34b3ae1,2 -34b3ae2,80 -34b3ae3,40 -34b3ae4,8c -34b3ae5,42 -34b3ae6,63 -34b3ae8,58 -34b3ae9,40 -34b3aeb,2f -34b3aec,26 -34b3aed,73 -34b3aef,14 -34b3af0,3c -34b3af1,11 -34b3af2,80 -34b3af3,40 -34b3af4,26 -34b3af5,31 -34b3af6,62 -34b3af7,60 -34b3af8,24 -34b3af9,14 -34b3afb,4 -34b3afe,90 -34b3aff,25 -34b3b00,3c -34b3b01,15 -34b3b02,80 -34b3b03,40 -34b3b04,26 -34b3b05,b5 -34b3b06,62 -34b3b07,3c +34b3ac1,2 +34b3ac3,10 +34b3ac4,af +34b3ac5,a2 +34b3ac7,18 +34b3ac8,af +34b3ac9,a2 +34b3acb,14 +34b3acd,11 +34b3ace,10 +34b3acf,c0 +34b3ad1,51 +34b3ad2,10 +34b3ad3,21 +34b3ad5,2 +34b3ad6,10 +34b3ad7,40 +34b3ad8,24 +34b3ad9,42 +34b3adb,4 +34b3adc,af +34b3add,a2 +34b3adf,10 +34b3ae0,2 +34b3ae1,e0 +34b3ae2,38 +34b3ae3,25 +34b3ae4,8f +34b3ae5,a5 +34b3ae7,38 +34b3ae8,c +34b3ae9,10 +34b3aea,14 +34b3aeb,af +34b3aec,2 +34b3aee,20 +34b3aef,25 +34b3af0,26 +34b3af1,31 +34b3af3,1 +34b3af4,8e +34b3af5,a2 +34b3af6,64 +34b3af7,10 +34b3af8,2 +34b3af9,22 +34b3afa,10 +34b3afb,2a +34b3afc,14 +34b3afd,40 +34b3afe,ff +34b3aff,cb +34b3b00,26 +34b3b01,52 +34b3b03,c +34b3b04,8e +34b3b05,2 +34b3b07,8 34b3b08,24 -34b3b09,17 -34b3b0b,10 -34b3b0c,3c -34b3b0d,1e -34b3b0e,80 -34b3b0f,40 -34b3b10,27 -34b3b11,de -34b3b12,62 -34b3b13,2c -34b3b14,3c -34b3b15,16 -34b3b16,80 -34b3b17,40 -34b3b18,92 -34b3b19,22 -34b3b1d,55 -34b3b1e,10 -34b3b1f,21 -34b3b20,80 -34b3b21,46 -34b3b24,2c -34b3b25,c2 -34b3b27,3 -34b3b28,50 -34b3b29,40 -34b3b2b,9 -34b3b2c,26 -34b3b2d,52 -34b3b2f,1 -34b3b30,af -34b3b31,b7 -34b3b33,18 -34b3b34,af -34b3b35,b7 -34b3b37,14 -34b3b38,af -34b3b39,b4 -34b3b3b,10 -34b3b3c,8f -34b3b3d,a7 -34b3b3f,38 -34b3b40,3 -34b3b41,c0 -34b3b42,28 -34b3b43,25 -34b3b44,c -34b3b45,10 -34b3b46,14 -34b3b47,af -34b3b48,2 -34b3b4a,20 -34b3b4b,25 +34b3b09,43 +34b3b0b,8 +34b3b0c,ae +34b3b0d,3 +34b3b0f,8 +34b3b10,3c +34b3b11,3 +34b3b12,fa +34b3b14,ac +34b3b15,43 +34b3b18,24 +34b3b19,3 +34b3b1a,ff +34b3b1b,ff +34b3b1c,ac +34b3b1d,43 +34b3b1f,4 +34b3b20,3c +34b3b21,5 +34b3b22,80 +34b3b23,40 +34b3b24,24 +34b3b25,a5 +34b3b26,63 +34b3b27,3c +34b3b28,94 +34b3b29,a7 +34b3b2b,8 +34b3b2e,30 +34b3b2f,25 +34b3b30,c +34b3b31,10 +34b3b32,14 +34b3b33,1c +34b3b34,2 +34b3b36,20 +34b3b37,25 +34b3b38,3c +34b3b39,2 +34b3b3a,80 +34b3b3b,40 +34b3b3c,8c +34b3b3d,42 +34b3b3e,64 +34b3b3f,10 +34b3b40,18 +34b3b41,40 +34b3b42,1 +34b3b43,64 +34b3b44,3c +34b3b45,2 +34b3b46,80 +34b3b47,40 +34b3b48,3c +34b3b49,12 +34b3b4a,80 +34b3b4b,40 34b3b4c,26 34b3b4d,52 -34b3b4f,1 -34b3b50,8e -34b3b51,c2 -34b3b52,63 -34b3b54,26 -34b3b55,31 -34b3b57,c -34b3b58,2 -34b3b59,42 -34b3b5a,18 -34b3b5b,2a -34b3b5c,14 -34b3b5d,60 -34b3b5e,ff -34b3b5f,ee -34b3b60,26 -34b3b61,94 -34b3b63,12 -34b3b64,18 -34b3b65,40 -34b3b67,10 -34b3b68,26 -34b3b69,73 -34b3b6b,14 -34b3b6c,3c -34b3b6d,11 -34b3b6e,80 -34b3b6f,40 -34b3b70,26 -34b3b71,31 -34b3b72,62 -34b3b73,62 -34b3b74,24 -34b3b75,14 -34b3b77,5 -34b3b7a,90 -34b3b7b,25 -34b3b7c,3c -34b3b7d,15 -34b3b7e,80 -34b3b7f,40 -34b3b80,2 -34b3b81,80 -34b3b82,30 -34b3b83,25 -34b3b84,2 -34b3b85,60 -34b3b86,28 -34b3b87,25 -34b3b88,c -34b3b89,10 -34b3b8a,18 -34b3b8c,2 -34b3b8d,20 -34b3b8e,20 -34b3b8f,25 -34b3b90,26 -34b3b91,52 -34b3b93,1 +34b3b4e,63 +34b3b4f,70 +34b3b52,88 +34b3b53,25 +34b3b54,3c +34b3b55,16 +34b3b56,80 +34b3b57,40 +34b3b58,3c +34b3b59,14 +34b3b5a,80 +34b3b5b,40 +34b3b5c,26 +34b3b5d,94 +34b3b5e,63 +34b3b5f,4c +34b3b60,24 +34b3b61,42 +34b3b62,63 +34b3b63,3c +34b3b64,af +34b3b65,a2 +34b3b67,38 +34b3b68,3c +34b3b69,1e +34b3b6a,80 +34b3b6b,11 +34b3b6c,37 +34b3b6d,de +34b3b6e,a5 +34b3b6f,d0 +34b3b70,3c +34b3b71,15 +34b3b72,80 +34b3b73,40 +34b3b74,8e +34b3b75,c2 +34b3b76,64 +34b3b77,18 +34b3b78,10 +34b3b79,40 +34b3b7b,8 +34b3b7c,92 +34b3b7d,42 +34b3b80,3 +34b3b81,c2 +34b3b82,10 +34b3b83,21 +34b3b84,90 +34b3b85,42 +34b3b87,a8 +34b3b89,2 +34b3b8a,10 +34b3b8b,82 +34b3b8c,30 +34b3b8d,42 +34b3b8f,1 +34b3b90,50 +34b3b91,40 +34b3b93,14 34b3b94,26 34b3b95,31 -34b3b97,c -34b3b98,8e -34b3b99,a2 -34b3b9a,63 -34b3b9c,2 -34b3b9d,42 +34b3b97,1 +34b3b98,92 +34b3b99,42 +34b3b9d,54 34b3b9e,10 -34b3b9f,2a -34b3ba0,14 -34b3ba1,40 -34b3ba2,ff -34b3ba3,f7 -34b3ba4,26 -34b3ba5,94 -34b3ba7,12 -34b3ba8,3c -34b3ba9,2 -34b3baa,80 -34b3bab,40 -34b3bac,94 -34b3bad,42 -34b3bae,62 +34b3b9f,21 +34b3ba0,80 +34b3ba1,46 +34b3ba4,2c +34b3ba5,c2 +34b3ba7,3 +34b3ba8,50 +34b3ba9,40 +34b3bab,e +34b3bac,26 +34b3bad,31 +34b3baf,1 +34b3bb0,24 34b3bb1,2 -34b3bb2,10 -34b3bb3,c0 -34b3bb4,24 -34b3bb5,42 -34b3bb7,2 -34b3bb9,53 -34b3bba,98 -34b3bbb,21 -34b3bbc,24 -34b3bbd,7 -34b3bbf,1 -34b3bc0,24 -34b3bc1,6 -34b3bc3,3 -34b3bc4,3c -34b3bc5,5 -34b3bc6,80 +34b3bb3,10 +34b3bb4,af +34b3bb5,a2 +34b3bb7,18 +34b3bb8,af +34b3bb9,a2 +34b3bbb,14 +34b3bbd,11 +34b3bbe,10 +34b3bbf,c0 +34b3bc1,51 +34b3bc2,10 +34b3bc3,21 +34b3bc5,2 +34b3bc6,10 34b3bc7,40 34b3bc8,24 -34b3bc9,a5 -34b3bca,62 -34b3bcb,c -34b3bcc,c -34b3bcd,10 -34b3bce,14 -34b3bcf,1c +34b3bc9,42 +34b3bcb,4 +34b3bcc,af +34b3bcd,a2 +34b3bcf,10 34b3bd0,2 -34b3bd2,20 +34b3bd1,e0 +34b3bd2,38 34b3bd3,25 -34b3bd4,3c -34b3bd5,2 -34b3bd6,80 -34b3bd7,40 -34b3bd8,8c -34b3bd9,42 -34b3bda,63 -34b3bdc,58 -34b3bdd,40 -34b3bdf,2c +34b3bd4,8f +34b3bd5,a5 +34b3bd7,38 +34b3bd8,c +34b3bd9,10 +34b3bda,14 +34b3bdb,af +34b3bdc,2 +34b3bde,20 +34b3bdf,25 34b3be0,26 -34b3be1,7e -34b3be3,12 -34b3be4,3c -34b3be5,12 -34b3be6,80 -34b3be7,40 -34b3be8,26 -34b3be9,52 -34b3bea,62 -34b3beb,60 -34b3bec,24 -34b3bed,14 -34b3bef,5 -34b3bf2,88 -34b3bf3,25 -34b3bf4,2 +34b3be1,31 +34b3be3,1 +34b3be4,8e +34b3be5,a2 +34b3be6,64 +34b3be7,10 +34b3be8,2 +34b3be9,22 +34b3bea,18 +34b3beb,2a +34b3bec,14 +34b3bed,60 +34b3bee,ff +34b3bef,e1 +34b3bf0,26 +34b3bf1,52 +34b3bf3,c +34b3bf4,18 34b3bf5,40 -34b3bf6,a8 -34b3bf7,25 -34b3bf8,3c -34b3bf9,17 -34b3bfa,80 -34b3bfb,11 -34b3bfc,36 -34b3bfd,f7 -34b3bfe,a5 -34b3bff,d0 -34b3c00,3c -34b3c01,16 -34b3c02,80 -34b3c03,40 -34b3c05,11 -34b3c06,10 -34b3c07,40 -34b3c09,51 -34b3c0a,10 -34b3c0b,21 -34b3c0d,2 -34b3c0e,10 -34b3c0f,80 -34b3c11,55 -34b3c12,10 -34b3c13,21 -34b3c14,80 -34b3c15,42 -34b3c17,1 -34b3c18,4 -34b3c19,43 -34b3c1b,17 -34b3c1c,26 -34b3c1d,31 -34b3c1f,1 -34b3c20,92 -34b3c21,42 -34b3c24,2 -34b3c25,e2 -34b3c26,10 -34b3c27,21 -34b3c28,90 -34b3c29,42 -34b3c2b,bc -34b3c2d,2 -34b3c2e,1e -34b3c31,3 -34b3c32,1e -34b3c33,3 -34b3c34,28 -34b3c35,63 -34b3c37,a -34b3c38,50 -34b3c39,60 -34b3c3b,1 -34b3c3c,24 -34b3c3d,2 -34b3c3f,9 -34b3c40,24 -34b3c41,3 -34b3c42,30 -34b3c44,a7 -34b3c45,a3 -34b3c47,20 -34b3c49,40 -34b3c4a,18 -34b3c4b,25 -34b3c4d,2 -34b3c4e,16 -34b3c51,2 -34b3c52,16 +34b3bf7,10 +34b3bf8,26 +34b3bf9,73 +34b3bfb,14 +34b3bfc,3c +34b3bfd,11 +34b3bfe,80 +34b3bff,40 +34b3c00,26 +34b3c01,31 +34b3c02,63 +34b3c03,72 +34b3c04,24 +34b3c05,14 +34b3c07,5 +34b3c0a,90 +34b3c0b,25 +34b3c0c,3c +34b3c0d,15 +34b3c0e,80 +34b3c0f,40 +34b3c10,2 +34b3c11,80 +34b3c12,30 +34b3c13,25 +34b3c14,2 +34b3c15,60 +34b3c16,28 +34b3c17,25 +34b3c18,c +34b3c19,10 +34b3c1a,18 +34b3c1b,44 +34b3c1c,2 +34b3c1d,20 +34b3c1e,20 +34b3c1f,25 +34b3c20,26 +34b3c21,52 +34b3c23,1 +34b3c24,26 +34b3c25,31 +34b3c27,c +34b3c28,8e +34b3c29,a2 +34b3c2a,64 +34b3c2b,10 +34b3c2c,2 +34b3c2d,42 +34b3c2e,10 +34b3c2f,2a +34b3c30,14 +34b3c31,40 +34b3c32,ff +34b3c33,f7 +34b3c34,26 +34b3c35,94 +34b3c37,12 +34b3c38,3c +34b3c39,2 +34b3c3a,80 +34b3c3b,40 +34b3c3c,94 +34b3c3d,42 +34b3c3e,63 +34b3c3f,10 +34b3c41,2 +34b3c42,10 +34b3c43,c0 +34b3c44,24 +34b3c45,42 +34b3c47,2 +34b3c49,53 +34b3c4a,98 +34b3c4b,21 +34b3c4c,24 +34b3c4d,7 +34b3c4f,1 +34b3c50,24 +34b3c51,6 34b3c53,3 -34b3c54,4 -34b3c55,42 -34b3c57,1 -34b3c5a,18 -34b3c5b,25 -34b3c5c,24 -34b3c5d,63 -34b3c5f,30 -34b3c60,a3 -34b3c61,a3 -34b3c63,20 -34b3c64,2 -34b3c65,80 -34b3c66,30 -34b3c67,25 -34b3c68,2 -34b3c69,60 -34b3c6a,28 -34b3c6b,25 -34b3c6c,c -34b3c6d,10 -34b3c6e,18 -34b3c70,27 -34b3c71,a4 -34b3c73,20 -34b3c74,26 -34b3c75,31 -34b3c77,1 +34b3c54,3c +34b3c55,5 +34b3c56,80 +34b3c57,40 +34b3c58,24 +34b3c59,a5 +34b3c5a,63 +34b3c5b,1c +34b3c5c,c +34b3c5d,10 +34b3c5e,14 +34b3c5f,1c +34b3c60,2 +34b3c62,20 +34b3c63,25 +34b3c64,3c +34b3c65,2 +34b3c66,80 +34b3c67,40 +34b3c68,8c +34b3c69,42 +34b3c6a,64 +34b3c6b,10 +34b3c6c,58 +34b3c6d,40 +34b3c6f,2c +34b3c70,26 +34b3c71,7e +34b3c73,12 +34b3c74,3c +34b3c75,12 +34b3c76,80 +34b3c77,40 34b3c78,26 34b3c79,52 -34b3c7b,c -34b3c7c,8e -34b3c7d,c2 -34b3c7e,63 -34b3c80,2 -34b3c81,22 -34b3c82,10 -34b3c83,2a -34b3c84,14 +34b3c7a,63 +34b3c7b,70 +34b3c7c,24 +34b3c7d,14 +34b3c7f,5 +34b3c82,88 +34b3c83,25 +34b3c84,2 34b3c85,40 -34b3c86,ff -34b3c87,df -34b3c88,26 -34b3c89,94 -34b3c8b,12 -34b3c8c,26 -34b3c8d,7e -34b3c8f,12 -34b3c90,24 -34b3c91,7 -34b3c93,1 -34b3c96,30 -34b3c97,25 -34b3c98,3c -34b3c99,5 -34b3c9a,80 -34b3c9b,40 -34b3c9c,24 -34b3c9d,a5 -34b3c9e,62 -34b3c9f,c -34b3ca0,c -34b3ca1,10 -34b3ca2,14 -34b3ca3,1c -34b3ca4,2 -34b3ca6,20 -34b3ca7,25 -34b3ca8,3c -34b3ca9,2 -34b3caa,80 -34b3cab,40 -34b3cac,8c -34b3cad,42 -34b3cae,63 -34b3cb0,58 -34b3cb1,40 -34b3cb3,2b -34b3cb4,26 -34b3cb5,7e -34b3cb7,24 -34b3cb8,3c -34b3cb9,12 -34b3cba,80 -34b3cbb,40 -34b3cbc,26 -34b3cbd,52 -34b3cbe,62 -34b3cbf,60 -34b3cc2,88 -34b3cc3,25 -34b3cc4,2 -34b3cc5,40 -34b3cc6,a0 -34b3cc7,25 -34b3cc8,3c -34b3cc9,16 -34b3cca,80 -34b3ccb,11 -34b3ccc,3c -34b3ccd,17 -34b3cce,80 -34b3ccf,40 -34b3cd0,26 -34b3cd1,f7 -34b3cd2,62 -34b3cd3,c -34b3cd4,3c -34b3cd5,15 -34b3cd6,80 -34b3cd7,40 -34b3cd9,11 -34b3cda,10 -34b3cdb,40 -34b3cdd,51 -34b3cde,10 -34b3cdf,21 +34b3c86,a8 +34b3c87,25 +34b3c88,3c +34b3c89,17 +34b3c8a,80 +34b3c8b,11 +34b3c8c,36 +34b3c8d,f7 +34b3c8e,a5 +34b3c8f,d0 +34b3c90,3c +34b3c91,16 +34b3c92,80 +34b3c93,40 +34b3c95,11 +34b3c96,10 +34b3c97,40 +34b3c99,51 +34b3c9a,10 +34b3c9b,21 +34b3c9d,2 +34b3c9e,10 +34b3c9f,80 +34b3ca1,55 +34b3ca2,10 +34b3ca3,21 +34b3ca4,80 +34b3ca5,42 +34b3ca7,1 +34b3ca8,4 +34b3ca9,43 +34b3cab,17 +34b3cac,26 +34b3cad,31 +34b3caf,1 +34b3cb0,92 +34b3cb1,42 +34b3cb4,2 +34b3cb5,e2 +34b3cb6,10 +34b3cb7,21 +34b3cb8,90 +34b3cb9,42 +34b3cbb,bc +34b3cbd,2 +34b3cbe,1e +34b3cc1,3 +34b3cc2,1e +34b3cc3,3 +34b3cc4,28 +34b3cc5,63 +34b3cc7,a +34b3cc8,50 +34b3cc9,60 +34b3ccb,1 +34b3ccc,24 +34b3ccd,2 +34b3ccf,9 +34b3cd0,24 +34b3cd1,3 +34b3cd2,30 +34b3cd4,a7 +34b3cd5,a3 +34b3cd7,20 +34b3cd9,40 +34b3cda,18 +34b3cdb,25 +34b3cdd,2 +34b3cde,16 34b3ce1,2 -34b3ce2,10 -34b3ce3,80 -34b3ce5,54 -34b3ce6,10 -34b3ce7,21 -34b3ce8,90 -34b3ce9,42 -34b3ceb,1 -34b3cec,30 -34b3ced,42 -34b3cef,40 -34b3cf0,50 -34b3cf1,40 -34b3cf3,16 -34b3cf4,26 -34b3cf5,31 -34b3cf7,1 -34b3cf8,36 -34b3cf9,c2 -34b3cfa,a5 -34b3cfb,d0 -34b3cfc,92 -34b3cfd,43 -34b3d01,43 -34b3d02,10 -34b3d03,21 -34b3d04,90 -34b3d05,42 -34b3d07,a8 -34b3d08,30 -34b3d09,42 -34b3d0b,1 -34b3d0c,50 -34b3d0d,40 -34b3d0f,f -34b3d10,26 -34b3d11,31 -34b3d13,1 -34b3d14,24 -34b3d15,2 -34b3d17,10 -34b3d18,af -34b3d19,a2 -34b3d1b,18 -34b3d1c,af -34b3d1d,a2 -34b3d1f,14 -34b3d21,11 -34b3d22,10 -34b3d23,c0 -34b3d25,51 -34b3d26,10 -34b3d27,21 -34b3d29,2 -34b3d2a,10 +34b3ce2,16 +34b3ce3,3 +34b3ce4,4 +34b3ce5,42 +34b3ce7,1 +34b3cea,18 +34b3ceb,25 +34b3cec,24 +34b3ced,63 +34b3cef,30 +34b3cf0,a3 +34b3cf1,a3 +34b3cf3,20 +34b3cf4,2 +34b3cf5,80 +34b3cf6,30 +34b3cf7,25 +34b3cf8,2 +34b3cf9,60 +34b3cfa,28 +34b3cfb,25 +34b3cfc,c +34b3cfd,10 +34b3cfe,18 +34b3cff,44 +34b3d00,27 +34b3d01,a4 +34b3d03,20 +34b3d04,26 +34b3d05,31 +34b3d07,1 +34b3d08,26 +34b3d09,52 +34b3d0b,c +34b3d0c,8e +34b3d0d,c2 +34b3d0e,64 +34b3d0f,10 +34b3d10,2 +34b3d11,22 +34b3d12,10 +34b3d13,2a +34b3d14,14 +34b3d15,40 +34b3d16,ff +34b3d17,df +34b3d18,26 +34b3d19,94 +34b3d1b,12 +34b3d1c,26 +34b3d1d,7e +34b3d1f,12 +34b3d20,24 +34b3d21,7 +34b3d23,1 +34b3d26,30 +34b3d27,25 +34b3d28,3c +34b3d29,5 +34b3d2a,80 34b3d2b,40 34b3d2c,24 -34b3d2d,42 -34b3d2f,4 -34b3d30,af -34b3d31,a2 -34b3d33,10 -34b3d34,3 -34b3d35,c0 -34b3d36,38 +34b3d2d,a5 +34b3d2e,63 +34b3d2f,1c +34b3d30,c +34b3d31,10 +34b3d32,14 +34b3d33,1c +34b3d34,2 +34b3d36,20 34b3d37,25 -34b3d3a,30 -34b3d3b,25 -34b3d3c,2 -34b3d3d,e0 -34b3d3e,28 -34b3d3f,25 -34b3d40,c -34b3d41,10 -34b3d42,14 -34b3d43,af -34b3d44,2 -34b3d46,20 -34b3d47,25 -34b3d48,26 -34b3d49,31 -34b3d4b,1 -34b3d4c,8e -34b3d4d,a2 +34b3d38,3c +34b3d39,2 +34b3d3a,80 +34b3d3b,40 +34b3d3c,8c +34b3d3d,42 +34b3d3e,64 +34b3d3f,10 +34b3d40,58 +34b3d41,40 +34b3d43,2b +34b3d44,26 +34b3d45,7e +34b3d47,24 +34b3d48,3c +34b3d49,12 +34b3d4a,80 +34b3d4b,40 +34b3d4c,26 +34b3d4d,52 34b3d4e,63 -34b3d50,2 -34b3d51,22 -34b3d52,10 -34b3d53,2a -34b3d54,14 +34b3d4f,70 +34b3d52,88 +34b3d53,25 +34b3d54,2 34b3d55,40 -34b3d56,ff -34b3d57,e0 -34b3d58,26 -34b3d59,52 -34b3d5b,c -34b3d5c,26 -34b3d5d,7e -34b3d5f,24 -34b3d60,24 -34b3d61,7 -34b3d63,1 -34b3d64,24 -34b3d65,6 -34b3d67,2 -34b3d68,3c -34b3d69,5 -34b3d6a,80 +34b3d56,a0 +34b3d57,25 +34b3d58,3c +34b3d59,16 +34b3d5a,80 +34b3d5b,11 +34b3d5c,3c +34b3d5d,17 +34b3d5e,80 +34b3d5f,40 +34b3d60,26 +34b3d61,f7 +34b3d62,63 +34b3d63,1c +34b3d64,3c +34b3d65,15 +34b3d66,80 +34b3d67,40 +34b3d69,11 +34b3d6a,10 34b3d6b,40 -34b3d6c,24 -34b3d6d,a5 -34b3d6e,62 -34b3d6f,c -34b3d70,c -34b3d71,10 -34b3d72,14 -34b3d73,1c -34b3d74,2 -34b3d76,20 -34b3d77,25 -34b3d78,3c -34b3d79,2 -34b3d7a,80 -34b3d7b,40 -34b3d7c,8c +34b3d6d,51 +34b3d6e,10 +34b3d6f,21 +34b3d71,2 +34b3d72,10 +34b3d73,80 +34b3d75,54 +34b3d76,10 +34b3d77,21 +34b3d78,90 +34b3d79,42 +34b3d7b,1 +34b3d7c,30 34b3d7d,42 -34b3d7e,63 -34b3d80,18 +34b3d7f,40 +34b3d80,50 34b3d81,40 -34b3d83,2a -34b3d84,3c -34b3d85,12 -34b3d86,80 -34b3d87,40 -34b3d88,26 -34b3d89,52 -34b3d8a,62 -34b3d8b,60 -34b3d8e,88 -34b3d8f,25 -34b3d90,2 -34b3d91,40 -34b3d92,a0 -34b3d93,25 -34b3d94,3c -34b3d95,16 -34b3d96,80 -34b3d97,11 -34b3d98,3c -34b3d99,17 -34b3d9a,80 -34b3d9b,40 -34b3d9c,26 -34b3d9d,f7 -34b3d9e,62 -34b3d9f,c -34b3da0,3c -34b3da1,15 -34b3da2,80 -34b3da3,40 -34b3da5,11 -34b3da6,10 -34b3da7,40 -34b3da9,51 -34b3daa,10 -34b3dab,21 -34b3dad,2 -34b3dae,10 -34b3daf,80 -34b3db1,54 +34b3d83,16 +34b3d84,26 +34b3d85,31 +34b3d87,1 +34b3d88,36 +34b3d89,c2 +34b3d8a,a5 +34b3d8b,d0 +34b3d8c,92 +34b3d8d,43 +34b3d91,43 +34b3d92,10 +34b3d93,21 +34b3d94,90 +34b3d95,42 +34b3d97,a8 +34b3d98,30 +34b3d99,42 +34b3d9b,1 +34b3d9c,50 +34b3d9d,40 +34b3d9f,f +34b3da0,26 +34b3da1,31 +34b3da3,1 +34b3da4,24 +34b3da5,2 +34b3da7,10 +34b3da8,af +34b3da9,a2 +34b3dab,18 +34b3dac,af +34b3dad,a2 +34b3daf,14 +34b3db1,11 34b3db2,10 -34b3db3,21 -34b3db4,90 -34b3db5,42 -34b3db7,1 -34b3db8,30 -34b3db9,42 -34b3dbb,10 -34b3dbc,50 -34b3dbd,40 -34b3dbf,17 -34b3dc0,26 -34b3dc1,31 -34b3dc3,1 -34b3dc4,36 -34b3dc5,c2 -34b3dc6,a5 -34b3dc7,d0 -34b3dc8,92 -34b3dc9,43 -34b3dcd,43 -34b3dce,10 -34b3dcf,21 -34b3dd0,90 -34b3dd1,42 -34b3dd3,a8 -34b3dd5,2 -34b3dd6,10 -34b3dd7,82 -34b3dd8,30 -34b3dd9,42 +34b3db3,c0 +34b3db5,51 +34b3db6,10 +34b3db7,21 +34b3db9,2 +34b3dba,10 +34b3dbb,40 +34b3dbc,24 +34b3dbd,42 +34b3dbf,4 +34b3dc0,af +34b3dc1,a2 +34b3dc3,10 +34b3dc4,3 +34b3dc5,c0 +34b3dc6,38 +34b3dc7,25 +34b3dca,30 +34b3dcb,25 +34b3dcc,2 +34b3dcd,e0 +34b3dce,28 +34b3dcf,25 +34b3dd0,c +34b3dd1,10 +34b3dd2,14 +34b3dd3,af +34b3dd4,2 +34b3dd6,20 +34b3dd7,25 +34b3dd8,26 +34b3dd9,31 34b3ddb,1 -34b3ddc,50 -34b3ddd,40 -34b3ddf,f -34b3de0,26 -34b3de1,31 -34b3de3,1 -34b3de4,24 -34b3de5,2 -34b3de7,10 -34b3de8,af -34b3de9,a2 -34b3deb,18 -34b3dec,af -34b3ded,a2 -34b3def,14 -34b3df1,11 -34b3df2,10 -34b3df3,c0 -34b3df5,51 -34b3df6,10 -34b3df7,21 -34b3df9,2 -34b3dfa,10 +34b3ddc,8e +34b3ddd,a2 +34b3dde,64 +34b3ddf,10 +34b3de0,2 +34b3de1,22 +34b3de2,10 +34b3de3,2a +34b3de4,14 +34b3de5,40 +34b3de6,ff +34b3de7,e0 +34b3de8,26 +34b3de9,52 +34b3deb,c +34b3dec,26 +34b3ded,7e +34b3def,24 +34b3df0,24 +34b3df1,7 +34b3df3,1 +34b3df4,24 +34b3df5,6 +34b3df7,2 +34b3df8,3c +34b3df9,5 +34b3dfa,80 34b3dfb,40 34b3dfc,24 -34b3dfd,42 -34b3dff,4 -34b3e00,af -34b3e01,a2 -34b3e03,10 -34b3e04,3 -34b3e05,c0 -34b3e06,38 +34b3dfd,a5 +34b3dfe,63 +34b3dff,1c +34b3e00,c +34b3e01,10 +34b3e02,14 +34b3e03,1c +34b3e04,2 +34b3e06,20 34b3e07,25 -34b3e0a,30 -34b3e0b,25 -34b3e0c,2 -34b3e0d,e0 -34b3e0e,28 -34b3e0f,25 -34b3e10,c -34b3e11,10 -34b3e12,14 -34b3e13,af -34b3e14,2 -34b3e16,20 -34b3e17,25 +34b3e08,3c +34b3e09,2 +34b3e0a,80 +34b3e0b,40 +34b3e0c,8c +34b3e0d,42 +34b3e0e,64 +34b3e0f,10 +34b3e10,18 +34b3e11,40 +34b3e13,2a +34b3e14,3c +34b3e15,12 +34b3e16,80 +34b3e17,40 34b3e18,26 -34b3e19,31 -34b3e1b,1 -34b3e1c,8e -34b3e1d,a2 -34b3e1e,63 +34b3e19,52 +34b3e1a,63 +34b3e1b,70 +34b3e1e,88 +34b3e1f,25 34b3e20,2 -34b3e21,22 -34b3e22,10 -34b3e23,2a -34b3e24,14 -34b3e25,40 -34b3e26,ff -34b3e27,df -34b3e28,26 -34b3e29,52 -34b3e2b,c +34b3e21,40 +34b3e22,a0 +34b3e23,25 +34b3e24,3c +34b3e25,16 +34b3e26,80 +34b3e27,11 +34b3e28,3c +34b3e29,17 +34b3e2a,80 +34b3e2b,40 34b3e2c,26 -34b3e2d,7e -34b3e2f,36 -34b3e30,24 -34b3e31,7 -34b3e33,1 -34b3e34,24 -34b3e35,6 -34b3e37,1 -34b3e38,3c -34b3e39,5 -34b3e3a,80 -34b3e3b,40 -34b3e3c,24 -34b3e3d,a5 -34b3e3e,62 -34b3e3f,c -34b3e40,c -34b3e41,10 -34b3e42,14 -34b3e43,1c -34b3e44,2 -34b3e46,20 -34b3e47,25 -34b3e48,3c -34b3e49,2 -34b3e4a,80 -34b3e4b,40 -34b3e4c,8c -34b3e4d,42 -34b3e4e,63 -34b3e50,18 -34b3e51,40 -34b3e53,46 -34b3e54,3c -34b3e55,12 -34b3e56,80 -34b3e57,40 -34b3e58,26 -34b3e59,52 -34b3e5a,62 -34b3e5b,60 -34b3e5c,2 -34b3e5d,40 -34b3e5e,a0 -34b3e5f,25 -34b3e62,88 -34b3e63,25 -34b3e64,2 -34b3e65,40 -34b3e66,a8 -34b3e67,25 -34b3e68,3c -34b3e69,17 -34b3e6a,80 -34b3e6b,11 -34b3e6c,3c -34b3e6d,2 -34b3e6e,80 -34b3e6f,40 -34b3e70,24 -34b3e71,42 -34b3e72,62 -34b3e73,c -34b3e74,af -34b3e75,a2 -34b3e77,38 -34b3e78,3c -34b3e79,16 -34b3e7a,80 -34b3e7b,40 -34b3e7d,11 -34b3e7e,10 -34b3e7f,40 -34b3e81,51 +34b3e2d,f7 +34b3e2e,63 +34b3e2f,1c +34b3e30,3c +34b3e31,15 +34b3e32,80 +34b3e33,40 +34b3e35,11 +34b3e36,10 +34b3e37,40 +34b3e39,51 +34b3e3a,10 +34b3e3b,21 +34b3e3d,2 +34b3e3e,10 +34b3e3f,80 +34b3e41,54 +34b3e42,10 +34b3e43,21 +34b3e44,90 +34b3e45,42 +34b3e47,1 +34b3e48,30 +34b3e49,42 +34b3e4b,10 +34b3e4c,50 +34b3e4d,40 +34b3e4f,17 +34b3e50,26 +34b3e51,31 +34b3e53,1 +34b3e54,36 +34b3e55,c2 +34b3e56,a5 +34b3e57,d0 +34b3e58,92 +34b3e59,43 +34b3e5d,43 +34b3e5e,10 +34b3e5f,21 +34b3e60,90 +34b3e61,42 +34b3e63,a8 +34b3e65,2 +34b3e66,10 +34b3e67,82 +34b3e68,30 +34b3e69,42 +34b3e6b,1 +34b3e6c,50 +34b3e6d,40 +34b3e6f,f +34b3e70,26 +34b3e71,31 +34b3e73,1 +34b3e74,24 +34b3e75,2 +34b3e77,10 +34b3e78,af +34b3e79,a2 +34b3e7b,18 +34b3e7c,af +34b3e7d,a2 +34b3e7f,14 +34b3e81,11 34b3e82,10 -34b3e83,21 -34b3e85,2 +34b3e83,c0 +34b3e85,51 34b3e86,10 -34b3e87,80 -34b3e89,55 +34b3e87,21 +34b3e89,2 34b3e8a,10 -34b3e8b,21 -34b3e8c,90 +34b3e8b,40 +34b3e8c,24 34b3e8d,42 -34b3e8f,1 -34b3e90,30 -34b3e91,42 +34b3e8f,4 +34b3e90,af +34b3e91,a2 34b3e93,10 -34b3e94,50 -34b3e95,40 -34b3e97,17 -34b3e98,26 -34b3e99,31 -34b3e9b,1 -34b3e9c,36 -34b3e9d,e2 -34b3e9e,a5 -34b3e9f,d0 -34b3ea0,92 -34b3ea1,83 -34b3ea5,43 -34b3ea6,10 -34b3ea7,21 -34b3ea8,90 -34b3ea9,42 -34b3eab,a8 -34b3ead,2 -34b3eae,10 -34b3eaf,42 -34b3eb0,30 -34b3eb1,42 -34b3eb3,1 -34b3eb4,50 +34b3e94,3 +34b3e95,c0 +34b3e96,38 +34b3e97,25 +34b3e9a,30 +34b3e9b,25 +34b3e9c,2 +34b3e9d,e0 +34b3e9e,28 +34b3e9f,25 +34b3ea0,c +34b3ea1,10 +34b3ea2,14 +34b3ea3,af +34b3ea4,2 +34b3ea6,20 +34b3ea7,25 +34b3ea8,26 +34b3ea9,31 +34b3eab,1 +34b3eac,8e +34b3ead,a2 +34b3eae,64 +34b3eaf,10 +34b3eb0,2 +34b3eb1,22 +34b3eb2,10 +34b3eb3,2a +34b3eb4,14 34b3eb5,40 -34b3eb7,f +34b3eb6,ff +34b3eb7,df 34b3eb8,26 -34b3eb9,31 -34b3ebb,1 -34b3ebc,24 -34b3ebd,2 -34b3ebf,10 -34b3ec0,af -34b3ec1,a2 -34b3ec3,18 -34b3ec4,af -34b3ec5,a2 -34b3ec7,14 -34b3ec9,11 -34b3eca,10 -34b3ecb,c0 -34b3ecd,51 -34b3ece,10 -34b3ecf,21 -34b3ed1,2 -34b3ed2,10 -34b3ed3,40 -34b3ed4,24 -34b3ed5,42 -34b3ed7,4 -34b3ed8,af -34b3ed9,a2 -34b3edb,10 -34b3edc,3 -34b3edd,c0 -34b3ede,38 -34b3edf,25 -34b3ee2,30 -34b3ee3,25 -34b3ee4,8f -34b3ee5,a5 -34b3ee7,38 -34b3ee8,c -34b3ee9,10 -34b3eea,14 -34b3eeb,af -34b3eec,2 -34b3eee,20 +34b3eb9,52 +34b3ebb,c +34b3ebc,26 +34b3ebd,7e +34b3ebf,36 +34b3ec0,24 +34b3ec1,7 +34b3ec3,1 +34b3ec4,24 +34b3ec5,6 +34b3ec7,1 +34b3ec8,3c +34b3ec9,5 +34b3eca,80 +34b3ecb,40 +34b3ecc,24 +34b3ecd,a5 +34b3ece,63 +34b3ecf,1c +34b3ed0,c +34b3ed1,10 +34b3ed2,14 +34b3ed3,1c +34b3ed4,2 +34b3ed6,20 +34b3ed7,25 +34b3ed8,3c +34b3ed9,2 +34b3eda,80 +34b3edb,40 +34b3edc,8c +34b3edd,42 +34b3ede,64 +34b3edf,10 +34b3ee0,18 +34b3ee1,40 +34b3ee3,62 +34b3ee4,3c +34b3ee5,12 +34b3ee6,80 +34b3ee7,40 +34b3ee8,26 +34b3ee9,52 +34b3eea,63 +34b3eeb,70 +34b3eee,88 34b3eef,25 -34b3ef0,26 -34b3ef1,31 -34b3ef3,1 -34b3ef4,8e -34b3ef5,c2 -34b3ef6,63 -34b3ef8,2 -34b3ef9,22 -34b3efa,18 -34b3efb,2a -34b3efc,14 -34b3efd,60 -34b3efe,ff -34b3eff,df -34b3f00,26 -34b3f01,94 -34b3f03,c -34b3f04,18 -34b3f05,40 -34b3f07,19 -34b3f08,26 -34b3f09,73 -34b3f0b,48 -34b3f0c,24 -34b3f0d,14 -34b3f0f,5 -34b3f12,88 -34b3f13,25 -34b3f14,3c -34b3f15,16 -34b3f16,80 -34b3f17,40 -34b3f18,26 -34b3f19,d6 -34b3f1a,63 -34b3f1b,2c -34b3f1c,3c -34b3f1d,15 -34b3f1e,80 -34b3f1f,40 +34b3ef0,2 +34b3ef1,40 +34b3ef2,a0 +34b3ef3,25 +34b3ef4,3c +34b3ef5,16 +34b3ef6,80 +34b3ef7,11 +34b3ef8,3c +34b3ef9,17 +34b3efa,80 +34b3efb,40 +34b3efc,26 +34b3efd,f7 +34b3efe,63 +34b3eff,1c +34b3f00,3c +34b3f01,15 +34b3f02,80 +34b3f03,40 +34b3f05,11 +34b3f06,10 +34b3f07,40 +34b3f09,51 +34b3f0a,10 +34b3f0b,21 +34b3f0d,2 +34b3f0e,10 +34b3f0f,80 +34b3f11,54 +34b3f12,10 +34b3f13,21 +34b3f14,90 +34b3f15,42 +34b3f17,1 +34b3f18,30 +34b3f19,42 +34b3f1b,10 +34b3f1c,50 +34b3f1d,40 +34b3f1f,17 34b3f20,26 -34b3f21,b5 -34b3f22,61 -34b3f23,f0 -34b3f24,3c -34b3f25,1e -34b3f26,80 -34b3f27,40 -34b3f28,27 -34b3f29,de -34b3f2a,61 -34b3f2b,f4 -34b3f2c,3c -34b3f2d,17 -34b3f2e,80 -34b3f2f,40 -34b3f30,92 +34b3f21,31 +34b3f23,1 +34b3f24,36 +34b3f25,c2 +34b3f26,a5 +34b3f27,d0 +34b3f28,92 +34b3f29,43 +34b3f2d,43 +34b3f2e,10 +34b3f2f,21 +34b3f30,90 34b3f31,42 -34b3f35,56 +34b3f33,a8 +34b3f35,2 34b3f36,10 -34b3f37,21 -34b3f38,90 +34b3f37,42 +34b3f38,30 34b3f39,42 -34b3f3c,14 +34b3f3b,1 +34b3f3c,50 34b3f3d,40 -34b3f3f,2 -34b3f40,2 -34b3f41,a0 -34b3f42,20 -34b3f43,25 -34b3f44,3 -34b3f45,c0 -34b3f46,20 -34b3f47,25 -34b3f48,2 -34b3f49,80 -34b3f4a,30 -34b3f4b,25 -34b3f4c,c -34b3f4d,10 -34b3f4e,18 -34b3f50,2 -34b3f51,60 -34b3f52,28 -34b3f53,25 -34b3f54,26 -34b3f55,31 -34b3f57,1 -34b3f58,26 -34b3f59,52 -34b3f5b,c -34b3f5c,8e -34b3f5d,e2 -34b3f5e,63 -34b3f60,2 -34b3f61,22 -34b3f62,10 -34b3f63,2a -34b3f64,14 -34b3f65,40 -34b3f66,ff -34b3f67,f2 -34b3f68,26 -34b3f69,94 -34b3f6b,12 -34b3f6c,c -34b3f6d,10 -34b3f6e,18 -34b3f6f,2a -34b3f70,2 -34b3f72,20 -34b3f73,25 -34b3f74,8e -34b3f75,2 -34b3f77,8 -34b3f78,24 -34b3f79,43 -34b3f7b,8 -34b3f7c,ae -34b3f7d,3 -34b3f7f,8 -34b3f80,3c -34b3f81,3 -34b3f82,e9 -34b3f84,ac -34b3f85,43 -34b3f88,ac -34b3f89,40 -34b3f8b,4 -34b3f8c,8e +34b3f3f,f +34b3f40,26 +34b3f41,31 +34b3f43,1 +34b3f44,24 +34b3f45,2 +34b3f47,10 +34b3f48,af +34b3f49,a2 +34b3f4b,18 +34b3f4c,af +34b3f4d,a2 +34b3f4f,14 +34b3f51,11 +34b3f52,10 +34b3f53,c0 +34b3f55,51 +34b3f56,10 +34b3f57,21 +34b3f59,2 +34b3f5a,10 +34b3f5b,40 +34b3f5c,24 +34b3f5d,42 +34b3f5f,4 +34b3f60,af +34b3f61,a2 +34b3f63,10 +34b3f64,3 +34b3f65,c0 +34b3f66,38 +34b3f67,25 +34b3f6a,30 +34b3f6b,25 +34b3f6c,2 +34b3f6d,e0 +34b3f6e,28 +34b3f6f,25 +34b3f70,c +34b3f71,10 +34b3f72,14 +34b3f73,af +34b3f74,2 +34b3f76,20 +34b3f77,25 +34b3f78,26 +34b3f79,31 +34b3f7b,1 +34b3f7c,8e +34b3f7d,a2 +34b3f7e,64 +34b3f7f,10 +34b3f80,2 +34b3f81,22 +34b3f82,10 +34b3f83,2a +34b3f84,14 +34b3f85,40 +34b3f86,ff +34b3f87,df +34b3f88,26 +34b3f89,52 +34b3f8b,c +34b3f8c,3c 34b3f8d,2 -34b3f8f,8 -34b3f90,24 -34b3f91,43 -34b3f93,8 -34b3f94,ae -34b3f95,3 -34b3f97,8 +34b3f8e,80 +34b3f8f,40 +34b3f90,8c +34b3f91,42 +34b3f92,64 +34b3f93,20 +34b3f94,10 +34b3f95,40 +34b3f97,35 34b3f98,3c -34b3f99,3 -34b3f9a,df -34b3f9c,ac -34b3f9d,43 -34b3fa0,ac +34b3f99,2 +34b3f9a,80 +34b3f9b,40 +34b3f9c,8c +34b3f9d,42 +34b3f9e,64 +34b3f9f,10 +34b3fa0,18 34b3fa1,40 -34b3fa3,4 -34b3fa4,8f -34b3fa5,bf -34b3fa7,64 -34b3fa8,8f -34b3fa9,be -34b3fab,60 -34b3fac,8f -34b3fad,b7 -34b3faf,5c -34b3fb0,8f -34b3fb1,b6 -34b3fb3,58 -34b3fb4,8f -34b3fb5,b5 -34b3fb7,54 -34b3fb8,8f -34b3fb9,b4 -34b3fbb,50 -34b3fbc,8f -34b3fbd,b3 -34b3fbf,4c -34b3fc0,8f -34b3fc1,b2 -34b3fc3,48 -34b3fc4,8f -34b3fc5,b1 -34b3fc7,44 -34b3fc8,8f -34b3fc9,b0 +34b3fa3,32 +34b3fa4,3c +34b3fa5,12 +34b3fa6,80 +34b3fa7,40 +34b3fa8,26 +34b3fa9,52 +34b3faa,63 +34b3fab,70 +34b3fac,24 +34b3fad,14 +34b3faf,5 +34b3fb2,88 +34b3fb3,25 +34b3fb4,3c +34b3fb5,17 +34b3fb6,80 +34b3fb7,40 +34b3fb8,3c +34b3fb9,16 +34b3fba,80 +34b3fbb,40 +34b3fbc,26 +34b3fbd,d6 +34b3fbe,64 +34b3fbf,3c +34b3fc0,3c +34b3fc1,15 +34b3fc2,80 +34b3fc3,40 +34b3fc4,26 +34b3fc5,b5 +34b3fc6,63 +34b3fc8,3c +34b3fc9,2 +34b3fca,80 34b3fcb,40 -34b3fcc,3 -34b3fcd,e0 -34b3fcf,8 -34b3fd0,27 -34b3fd1,bd -34b3fd3,68 -34b3fd4,27 -34b3fd5,bd -34b3fd6,ff -34b3fd7,e8 -34b3fd8,af -34b3fd9,bf -34b3fdb,14 -34b3fdc,c -34b3fdd,10 -34b3fde,15 -34b3fdf,b8 -34b3fe0,24 -34b3fe1,4 -34b3fe2,4 -34b3fe4,3c -34b3fe5,3 -34b3fe6,80 +34b3fcc,24 +34b3fcd,42 +34b3fce,63 +34b3fcf,4 +34b3fd0,af +34b3fd1,a2 +34b3fd3,38 +34b3fd4,3c +34b3fd5,1e +34b3fd6,80 +34b3fd7,40 +34b3fd8,8e +34b3fd9,e2 +34b3fda,64 +34b3fdb,1c +34b3fdc,50 +34b3fdd,40 +34b3fdf,14 +34b3fe0,92 +34b3fe1,42 +34b3fe5,11 +34b3fe6,10 34b3fe7,40 -34b3fe8,ac -34b3fe9,62 -34b3fea,63 -34b3feb,18 -34b3fec,3c -34b3fed,3 -34b3fee,80 -34b3fef,40 -34b3ff0,ac -34b3ff1,62 +34b3fe9,51 +34b3fea,10 +34b3feb,21 +34b3fed,2 +34b3fee,10 +34b3fef,80 +34b3ff0,27 +34b3ff1,c3 34b3ff2,63 -34b3ff3,14 -34b3ff4,8f -34b3ff5,bf -34b3ff7,14 -34b3ff8,3 -34b3ff9,e0 -34b3ffb,8 -34b3ffc,27 -34b3ffd,bd -34b3fff,18 -34b4000,80 -34b4001,82 -34b4004,10 -34b4005,40 -34b4007,26 -34b4008,24 -34b4009,87 -34b400b,1 +34b3ff3,70 +34b3ff5,43 +34b3ff6,10 +34b3ff7,21 +34b3ff8,90 +34b3ff9,42 +34b3ffb,1 +34b3ffc,30 +34b3ffd,42 +34b3fff,10 +34b4000,50 +34b4001,40 +34b4003,b +34b4004,92 +34b4005,42 +34b4008,92 +34b4009,43 34b400c,3c -34b400d,3 +34b400d,2 34b400e,80 -34b400f,40 -34b4010,8c -34b4011,68 -34b4012,63 -34b4013,18 -34b4014,25 -34b4015,8 -34b4016,4 -34b4018,3c -34b4019,3 -34b401a,80 -34b401b,40 -34b401c,8c -34b401d,63 -34b401e,63 -34b401f,14 -34b4021,68 -34b4022,20 -34b4023,2b -34b4024,10 -34b4025,80 -34b4027,1e -34b4028,3c -34b4029,a -34b402a,ff -34b402c,25 -34b402d,4a -34b402e,f -34b402f,ff -34b4030,30 -34b4031,c6 -34b4032,f -34b4033,ff -34b4034,24 -34b4035,b -34b4036,f0 -34b4038,3c -34b4039,9 -34b403a,80 -34b403b,40 -34b403c,10 -34b403f,7 -34b4040,25 -34b4041,29 -34b4042,61 -34b4043,fc -34b4045,68 -34b4046,20 -34b4047,2b -34b4048,54 -34b4049,80 -34b404b,5 -34b404c,a0 -34b404d,62 -34b4050,3c -34b4051,2 -34b4052,80 -34b4053,40 -34b4054,3 -34b4055,e0 -34b4057,8 -34b4058,ac -34b4059,43 -34b405a,63 -34b405b,14 -34b405c,a0 -34b405d,62 -34b4060,30 -34b4061,a2 -34b4062,f -34b4063,ff -34b4065,2 -34b4066,23 -34b4068,8c -34b4069,62 -34b406d,4a -34b406e,10 -34b406f,24 -34b4071,44 -34b4072,10 +34b400f,11 +34b4010,34 +34b4011,42 +34b4012,a5 +34b4013,d0 +34b4015,43 +34b4016,10 +34b4017,21 +34b4018,90 +34b4019,42 +34b401b,a8 +34b401d,2 +34b401e,10 +34b401f,42 +34b4020,30 +34b4021,42 +34b4023,1 +34b4024,50 +34b4025,40 +34b4027,b +34b4028,26 +34b4029,31 +34b402b,1 +34b402c,92 +34b402d,42 +34b4031,56 +34b4032,10 +34b4033,21 +34b4034,90 +34b4035,42 +34b4038,14 +34b4039,40 +34b403b,2 +34b403c,2 +34b403d,a0 +34b403e,20 +34b403f,25 +34b4040,8f +34b4041,a4 +34b4043,38 +34b4044,2 +34b4045,80 +34b4046,30 +34b4047,25 +34b4048,c +34b4049,10 +34b404a,18 +34b404b,44 +34b404c,26 +34b404d,65 +34b404f,48 +34b4050,26 +34b4051,31 +34b4053,1 +34b4054,26 +34b4055,94 +34b4057,12 +34b4058,3c +34b4059,2 +34b405a,80 +34b405b,40 +34b405c,8c +34b405d,42 +34b405e,64 +34b405f,10 +34b4060,2 +34b4061,22 +34b4062,10 +34b4063,2a +34b4064,14 +34b4065,40 +34b4066,ff +34b4067,dc +34b4068,26 +34b4069,52 +34b406b,c +34b406c,c +34b406d,10 +34b406e,18 +34b406f,6e +34b4070,2 +34b4072,20 34b4073,25 -34b4075,4b -34b4076,10 -34b4077,24 -34b4079,46 -34b407a,10 -34b407b,25 -34b407c,ac -34b407d,62 -34b4080,95 -34b4081,22 -34b4083,4 -34b4085,a2 -34b4086,28 -34b4087,21 -34b4088,24 -34b4089,e7 -34b408b,1 -34b408c,80 -34b408d,e2 -34b408e,ff -34b408f,ff -34b4090,14 -34b4091,40 -34b4092,ff -34b4093,ec -34b4094,24 -34b4095,63 -34b4097,4 +34b4074,8e +34b4075,2 +34b4077,8 +34b4078,24 +34b4079,43 +34b407b,8 +34b407c,ae +34b407d,3 +34b407f,8 +34b4080,3c +34b4081,3 +34b4082,e9 +34b4084,ac +34b4085,43 +34b4088,ac +34b4089,40 +34b408b,4 +34b408c,8e +34b408d,2 +34b408f,8 +34b4090,24 +34b4091,43 +34b4093,8 +34b4094,ae +34b4095,3 +34b4097,8 34b4098,3c -34b4099,2 -34b409a,80 -34b409b,40 +34b4099,3 +34b409a,df 34b409c,ac 34b409d,43 -34b409e,63 -34b409f,14 -34b40a0,3 -34b40a1,e0 -34b40a3,8 -34b40a8,27 -34b40a9,bd -34b40aa,ff -34b40ab,b0 -34b40ac,af -34b40ad,bf -34b40af,4c -34b40b0,af -34b40b1,be -34b40b3,48 -34b40b4,af -34b40b5,b7 -34b40b7,44 -34b40b8,af -34b40b9,b6 -34b40bb,40 -34b40bc,af -34b40bd,b5 -34b40bf,3c -34b40c0,af -34b40c1,b4 -34b40c3,38 -34b40c4,af -34b40c5,b3 -34b40c7,34 -34b40c8,af -34b40c9,b2 -34b40cb,30 -34b40cc,af -34b40cd,b1 -34b40cf,2c -34b40d0,af -34b40d1,b0 -34b40d3,28 -34b40d5,80 -34b40d6,a8 -34b40d7,25 -34b40da,b0 -34b40db,25 -34b40de,90 -34b40df,25 -34b40e0,3c -34b40e1,14 -34b40e2,80 -34b40e3,40 -34b40e4,26 -34b40e5,94 -34b40e6,61 -34b40e7,fc -34b40e8,3c -34b40e9,1e -34b40ea,80 -34b40eb,40 -34b40ec,3c -34b40ed,13 -34b40ee,80 -34b40ef,40 -34b40f0,3c -34b40f1,17 -34b40f2,38 -34b40f3,e3 -34b40f4,af -34b40f5,b4 -34b40f7,20 -34b40f8,24 -34b40f9,7 -34b40fb,12 -34b40fc,2 -34b40fd,c0 -34b40fe,30 -34b40ff,25 -34b4100,2 -34b4101,80 -34b4102,28 -34b4103,25 -34b4104,c -34b4105,10 -34b4106,14 -34b4107,1c -34b4108,2 -34b4109,a0 -34b410a,20 -34b410b,25 -34b410c,8f -34b410d,c5 -34b410e,63 +34b40a0,ac +34b40a1,40 +34b40a3,4 +34b40a4,8f +34b40a5,bf +34b40a7,64 +34b40a8,8f +34b40a9,be +34b40ab,60 +34b40ac,8f +34b40ad,b7 +34b40af,5c +34b40b0,8f +34b40b1,b6 +34b40b3,58 +34b40b4,8f +34b40b5,b5 +34b40b7,54 +34b40b8,8f +34b40b9,b4 +34b40bb,50 +34b40bc,8f +34b40bd,b3 +34b40bf,4c +34b40c0,8f +34b40c1,b2 +34b40c3,48 +34b40c4,8f +34b40c5,b1 +34b40c7,44 +34b40c8,8f +34b40c9,b0 +34b40cb,40 +34b40cc,3 +34b40cd,e0 +34b40cf,8 +34b40d0,27 +34b40d1,bd +34b40d3,68 +34b40d4,10 +34b40d6,fe +34b40d7,d8 +34b40d8,26 +34b40d9,73 +34b40db,14 +34b40dc,3 +34b40dd,e0 +34b40df,8 +34b40e4,27 +34b40e5,bd +34b40e6,ff +34b40e7,e8 +34b40e8,af +34b40e9,bf +34b40eb,14 +34b40ec,c +34b40ed,10 +34b40ee,15 +34b40ef,b8 +34b40f0,24 +34b40f1,4 +34b40f2,4 +34b40f4,3c +34b40f5,3 +34b40f6,80 +34b40f7,40 +34b40f8,ac +34b40f9,62 +34b40fa,64 +34b40fb,28 +34b40fc,3c +34b40fd,3 +34b40fe,80 +34b40ff,40 +34b4100,ac +34b4101,62 +34b4102,64 +34b4103,24 +34b4104,8f +34b4105,bf +34b4107,14 +34b4108,3 +34b4109,e0 +34b410b,8 +34b410c,27 +34b410d,bd 34b410f,18 -34b4110,10 -34b4113,1f -34b4114,36 -34b4115,f1 -34b4116,8e -34b4117,39 +34b4110,80 +34b4111,82 +34b4114,10 +34b4115,40 +34b4117,26 34b4118,24 -34b4119,42 -34b411a,ff -34b411b,e0 -34b411d,51 -34b411f,18 -34b4122,18 -34b4123,10 -34b4125,3 -34b4126,18 -34b4127,83 -34b4129,2 -34b412a,27 -34b412b,c3 -34b412d,64 -34b412e,18 -34b412f,23 -34b4130,14 -34b4131,72 -34b4133,16 -34b4134,24 -34b4135,b0 -34b4137,4 -34b4138,8c -34b4139,a7 -34b413d,7 -34b413e,3b -34b413f,2 -34b4141,51 -34b4143,18 -34b4146,30 -34b4147,10 -34b4149,6 -34b414a,30 -34b414b,83 -34b414d,c4 -34b414e,30 -34b414f,23 -34b4151,6 -34b4152,18 -34b4153,c0 -34b4155,66 -34b4156,30 -34b4157,21 -34b4159,6 -34b415a,30 -34b415b,40 -34b415c,96 -34b415d,83 -34b415f,6 -34b4160,af -34b4161,a3 -34b4163,18 -34b4164,96 -34b4165,83 -34b4167,4 -34b4168,af -34b4169,a3 -34b416b,14 -34b416c,8c -34b416d,a3 +34b4119,87 +34b411b,1 +34b411c,3c +34b411d,3 +34b411e,80 +34b411f,40 +34b4120,8c +34b4121,68 +34b4122,64 +34b4123,28 +34b4124,25 +34b4125,8 +34b4126,4 +34b4128,3c +34b4129,3 +34b412a,80 +34b412b,40 +34b412c,8c +34b412d,63 +34b412e,64 +34b412f,24 +34b4131,68 +34b4132,20 +34b4133,2b +34b4134,10 +34b4135,80 +34b4137,1e +34b4138,3c +34b4139,a +34b413a,ff +34b413c,25 +34b413d,4a +34b413e,f +34b413f,ff +34b4140,30 +34b4141,c6 +34b4142,f +34b4143,ff +34b4144,24 +34b4145,b +34b4146,f0 +34b4148,3c +34b4149,9 +34b414a,80 +34b414b,40 +34b414c,10 +34b414f,7 +34b4150,25 +34b4151,29 +34b4152,63 +34b4153,c +34b4155,68 +34b4156,20 +34b4157,2b +34b4158,54 +34b4159,80 +34b415b,5 +34b415c,a0 +34b415d,62 +34b4160,3c +34b4161,2 +34b4162,80 +34b4163,40 +34b4164,3 +34b4165,e0 +34b4167,8 +34b4168,ac +34b4169,43 +34b416a,64 +34b416b,24 +34b416c,a0 +34b416d,62 34b4170,30 -34b4171,63 +34b4171,a2 34b4172,f 34b4173,ff -34b4174,af -34b4175,a3 -34b4177,10 -34b4178,30 -34b4179,e7 -34b417a,f -34b417b,ff -34b417d,46 -34b417e,30 -34b417f,23 -34b4180,8f -34b4181,a5 -34b4183,20 -34b4184,c -34b4185,10 -34b4186,14 -34b4187,af -34b4188,2 -34b4189,a0 -34b418a,20 +34b4175,2 +34b4176,23 +34b4178,8c +34b4179,62 +34b417d,4a +34b417e,10 +34b417f,24 +34b4181,44 +34b4182,10 +34b4183,25 +34b4185,4b +34b4186,10 +34b4187,24 +34b4189,46 +34b418a,10 34b418b,25 -34b418c,2 -34b418e,28 -34b418f,25 -34b4190,8e -34b4191,62 -34b4192,63 -34b4193,14 +34b418c,ac +34b418d,62 +34b4190,95 +34b4191,22 +34b4193,4 34b4195,a2 -34b4196,10 -34b4197,2b -34b4198,54 -34b4199,40 -34b419a,ff -34b419b,df +34b4196,28 +34b4197,21 +34b4198,24 +34b4199,e7 +34b419b,1 34b419c,80 -34b419d,a2 -34b41a0,26 -34b41a1,52 -34b41a3,1 +34b419d,e2 +34b419e,ff +34b419f,ff +34b41a0,14 +34b41a1,40 +34b41a2,ff +34b41a3,ec 34b41a4,24 -34b41a5,2 -34b41a7,6 -34b41a8,16 -34b41a9,42 -34b41aa,ff -34b41ab,d3 -34b41ac,26 -34b41ad,d6 -34b41af,12 -34b41b0,3c -34b41b1,2 -34b41b2,80 -34b41b3,40 -34b41b4,8c -34b41b5,43 -34b41b6,63 -34b41b7,18 -34b41b8,3c -34b41b9,2 -34b41ba,80 -34b41bb,40 -34b41bc,ac -34b41bd,43 -34b41be,63 -34b41bf,14 -34b41c0,8f -34b41c1,bf -34b41c3,4c -34b41c4,8f -34b41c5,be -34b41c7,48 -34b41c8,8f -34b41c9,b7 -34b41cb,44 -34b41cc,8f -34b41cd,b6 -34b41cf,40 -34b41d0,8f -34b41d1,b5 -34b41d3,3c -34b41d4,8f -34b41d5,b4 -34b41d7,38 -34b41d8,8f -34b41d9,b3 -34b41db,34 -34b41dc,8f -34b41dd,b2 -34b41df,30 -34b41e0,8f -34b41e1,b1 -34b41e3,2c -34b41e4,8f -34b41e5,b0 -34b41e7,28 -34b41e8,3 -34b41e9,e0 -34b41eb,8 -34b41ec,27 -34b41ed,bd -34b41ef,50 -34b41f0,4d -34b41f1,51 -34b41f4,4e -34b41f5,6f -34b41f6,72 -34b41f7,6d -34b41f8,61 -34b41f9,6c -34b4201,8 -34b4203,e -34b4205,5f -34b4206,3 -34b4207,1 -34b4208,1 -34b4211,18 -34b4213,18 -34b4215,4 -34b4217,3 -34b4218,4 -34b4221,10 -34b4223,10 -34b4225,6 -34b4226,3 -34b4227,1 -34b4228,1 -34b4231,10 +34b41a5,63 +34b41a7,4 +34b41a8,3c +34b41a9,2 +34b41aa,80 +34b41ab,40 +34b41ac,ac +34b41ad,43 +34b41ae,64 +34b41af,24 +34b41b0,3 +34b41b1,e0 +34b41b3,8 +34b41b8,27 +34b41b9,bd +34b41ba,ff +34b41bb,b0 +34b41bc,af +34b41bd,bf +34b41bf,4c +34b41c0,af +34b41c1,be +34b41c3,48 +34b41c4,af +34b41c5,b7 +34b41c7,44 +34b41c8,af +34b41c9,b6 +34b41cb,40 +34b41cc,af +34b41cd,b5 +34b41cf,3c +34b41d0,af +34b41d1,b4 +34b41d3,38 +34b41d4,af +34b41d5,b3 +34b41d7,34 +34b41d8,af +34b41d9,b2 +34b41db,30 +34b41dc,af +34b41dd,b1 +34b41df,2c +34b41e0,af +34b41e1,b0 +34b41e3,28 +34b41e5,80 +34b41e6,a8 +34b41e7,25 +34b41ea,b0 +34b41eb,25 +34b41ee,90 +34b41ef,25 +34b41f0,3c +34b41f1,14 +34b41f2,80 +34b41f3,40 +34b41f4,26 +34b41f5,94 +34b41f6,63 +34b41f7,c +34b41f8,3c +34b41f9,1e +34b41fa,80 +34b41fb,40 +34b41fc,3c +34b41fd,13 +34b41fe,80 +34b41ff,40 +34b4200,3c +34b4201,17 +34b4202,38 +34b4203,e3 +34b4204,af +34b4205,b4 +34b4207,20 +34b4208,24 +34b4209,7 +34b420b,12 +34b420c,2 +34b420d,c0 +34b420e,30 +34b420f,25 +34b4210,2 +34b4211,80 +34b4212,28 +34b4213,25 +34b4214,c +34b4215,10 +34b4216,14 +34b4217,1c +34b4218,2 +34b4219,a0 +34b421a,20 +34b421b,25 +34b421c,8f +34b421d,c5 +34b421e,64 +34b421f,28 +34b4220,10 +34b4223,1f +34b4224,36 +34b4225,f1 +34b4226,8e +34b4227,39 +34b4228,24 +34b4229,42 +34b422a,ff +34b422b,e0 +34b422d,51 +34b422f,18 +34b4232,18 34b4233,10 34b4235,3 -34b4237,3 -34b4238,4 -34b423d,1 -34b423e,2 -34b423f,3 -34b4240,4 -34b4241,5 -34b4242,6 -34b4243,7 -34b4244,ff -34b4245,ff -34b4246,ff -34b4247,ff -34b4248,ff -34b4249,ff -34b424c,11 -34b424d,c2 -34b424e,2d -34b424f,d4 -34b4250,43 -34b4251,22 -34b4252,8 -34b4253,54 -34b4254,ce -34b4255,d1 -34b4256,75 -34b4257,1a -34b4258,a9 -34b4259,3a -34b425a,ea -34b425b,a4 -34b425c,ab -34b425d,21 -34b4261,10 -34b4262,44 -34b4263,65 -34b4264,6b -34b4265,75 -34b426c,1 -34b426d,10 -34b426e,44 -34b426f,6f -34b4270,64 -34b4271,6f -34b4272,6e -34b4273,67 -34b4274,6f -34b4278,2 -34b4279,10 -34b427a,4a -34b427b,61 -34b427c,62 -34b427d,75 -34b4284,3 -34b4285,d0 -34b4286,46 -34b4287,6f -34b4288,72 -34b4289,65 -34b428a,73 -34b428b,74 -34b4290,4 -34b4291,d0 -34b4292,46 -34b4293,69 -34b4294,72 -34b4295,65 -34b429c,5 -34b429d,d0 -34b429e,57 -34b429f,61 -34b42a0,74 -34b42a1,65 -34b42a2,72 -34b42a8,7 -34b42a9,d0 -34b42aa,53 -34b42ab,68 -34b42ac,61 -34b42ad,64 -34b42ae,6f -34b42af,77 -34b42b4,6 -34b42b5,d0 -34b42b6,53 -34b42b7,70 -34b42b8,69 -34b42b9,72 -34b42ba,69 -34b42bb,74 -34b42c0,8 -34b42c1,90 -34b42c2,42 -34b42c3,6f -34b42c4,74 -34b42c5,57 -34b42cc,9 -34b42cd,10 -34b42ce,49 -34b42cf,63 -34b42d0,65 -34b42d8,b -34b42d9,80 -34b42da,47 -34b42db,54 -34b42dc,47 -34b42e4,c -34b42e5,a0 -34b42e6,48 -34b42e7,69 -34b42e8,64 -34b42e9,65 -34b42ea,6f -34b42eb,75 -34b42ec,74 -34b42f0,d -34b42f1,c0 -34b42f2,47 -34b42f3,61 -34b42f4,6e -34b42f5,6f -34b42f6,6e -34b42ff,1 -34b4303,d -34b437b,d -34b437c,b0 -34b437f,d -34b4380,b0 -34b4383,d -34b4384,b0 -34b4387,c -34b4388,b0 -34b438b,c -34b438c,b0 -34b438f,c -34b4390,a0 -34b4397,d -34b4398,b0 -34b439b,d -34b439c,b0 -34b43b3,e8 -34b43b4,ac -34b43b7,e8 -34b43b8,ac -34b43bb,e8 -34b43bc,ac -34b43bf,e8 -34b43c0,ac -34b43e7,d -34b43e8,77 -34b43e9,d0 -34b43eb,2e -34b43ec,3a -34b43ed,b0 -34b43ef,7d -34b43f0,c -34b43f1,90 -34b43f2,8f -34b43f3,ff -34b43f4,ff -34b43f5,fd -34b43f7,c9 -34b43f8,6e -34b43fa,2 -34b43fb,e4 -34b43fc,ac -34b43fe,ef -34b43ff,ff -34b4400,ff -34b4401,f4 -34b4402,a -34b4403,b0 -34b4404,e5 -34b4406,c -34b4407,95 -34b4408,e0 -34b440a,e -34b440b,59 -34b440c,c0 -34b4423,7 -34b4424,90 -34b4426,5 -34b4427,ce -34b4428,eb -34b4429,40 -34b442a,c -34b442b,c8 -34b442c,a9 -34b442d,90 -34b442e,d -34b442f,a7 -34b4430,90 -34b4432,8 -34b4433,ec -34b4434,b4 -34b4437,4a -34b4438,dd -34b4439,a0 -34b443b,7 -34b443c,97 -34b443d,e2 -34b443e,c -34b443f,88 -34b4440,aa -34b4441,e0 -34b4442,6 -34b4443,ce -34b4444,ed -34b4445,70 -34b4447,7 -34b4448,90 -34b444b,7 -34b444c,90 -34b445a,6d -34b445b,ea -34b445e,c9 -34b445f,4d -34b4460,60 -34b4462,c9 -34b4463,4d -34b4464,60 -34b4465,33 -34b4466,6d -34b4467,eb -34b4468,6b -34b4469,c6 -34b446b,8c -34b446c,b6 -34b446e,7c -34b446f,a4 -34b4470,ce -34b4471,c4 -34b4472,31 -34b4473,9 -34b4474,c3 -34b4475,bb -34b4477,9 -34b4478,c3 -34b4479,bb -34b447b,2 -34b447c,ce -34b447d,d4 -34b4492,4 -34b4493,ce -34b4494,fb -34b4496,a -34b4497,d5 -34b449a,8 -34b449b,e3 -34b449e,9 -34b449f,ec -34b44a2,7e -34b44a3,4d -34b44a4,b0 -34b44a5,ab -34b44a6,bb -34b44a7,5 -34b44a8,e8 -34b44a9,aa -34b44aa,bc -34b44ac,8e -34b44ad,d6 -34b44ae,7e -34b44af,93 -34b44b0,6e -34b44b1,d0 -34b44b2,8 -34b44b3,de -34b44b4,d9 -34b44b5,ea -34b44cb,c -34b44cc,a0 -34b44cf,c -34b44d0,a0 -34b44d3,c -34b44d4,a0 -34b44d7,c -34b44d8,a0 -34b44fc,c9 -34b44ff,7 -34b4500,e2 -34b4503,c -34b4504,b0 -34b4507,e -34b4508,80 -34b450b,6f -34b450c,30 -34b450f,8e -34b4513,8e -34b4517,6f -34b4518,40 -34b451b,e -34b451c,80 -34b451f,c -34b4520,b0 -34b4523,7 -34b4524,e2 -34b4528,c9 -34b4533,bb -34b4537,5e -34b4538,40 -34b453b,c -34b453c,a0 -34b453f,a -34b4540,d0 -34b4543,7 -34b4544,e1 -34b4547,6 -34b4548,f4 -34b454b,6 -34b454c,f4 -34b454f,7 -34b4550,e1 -34b4553,a -34b4554,d0 -34b4557,c -34b4558,a0 -34b455b,5e -34b455c,40 -34b455f,bb -34b4573,a -34b4574,80 -34b4576,c -34b4577,8a -34b4578,8a -34b4579,b0 -34b457a,3 -34b457b,be -34b457c,da -34b457d,10 -34b457e,3 -34b457f,be -34b4580,da -34b4581,10 -34b4582,c -34b4583,8a -34b4584,8a -34b4585,b0 -34b4587,a -34b4588,80 -34b45af,c -34b45b0,a0 -34b45b3,c -34b45b4,a0 -34b45b7,c -34b45b8,a0 -34b45ba,af -34b45bb,ff -34b45bc,ff -34b45bd,f8 -34b45bf,c -34b45c0,a0 -34b45c3,c -34b45c4,a0 -34b45c7,c -34b45c8,a0 -34b45ff,d -34b4600,d0 -34b4603,e -34b4604,c0 -34b4607,4f -34b4608,80 -34b460b,9d -34b462f,df -34b4630,fb -34b466f,e -34b4670,c0 -34b4673,e -34b4674,c0 -34b468c,b -34b468d,c0 -34b4690,4e -34b4691,60 -34b4694,bc -34b4697,3 -34b4698,e8 -34b469b,a -34b469c,d0 -34b469f,1e -34b46a0,90 -34b46a3,9e -34b46a4,20 -34b46a7,da -34b46aa,7 -34b46ab,e3 -34b46ae,c -34b46af,b0 -34b46b2,6e -34b46b3,50 -34b46c2,3 -34b46c3,ce -34b46c4,eb -34b46c6,b -34b46c7,d5 -34b46c8,7e -34b46c9,90 -34b46ca,e -34b46cb,90 -34b46cc,b -34b46cd,d0 -34b46ce,5f -34b46cf,70 -34b46d0,9 -34b46d1,e0 -34b46d2,6f -34b46d3,6c -34b46d4,b9 -34b46d5,e0 -34b46d6,5f -34b46d7,70 -34b46d8,9 -34b46d9,e0 -34b46da,e -34b46db,90 -34b46dc,b -34b46dd,d0 -34b46de,b -34b46df,d5 -34b46e0,7e -34b46e1,90 -34b46e2,3 -34b46e3,ce -34b46e4,eb -34b46fa,a -34b46fb,ff -34b46fc,e0 -34b46ff,8 -34b4700,e0 -34b4703,8 -34b4704,e0 -34b4707,8 -34b4708,e0 -34b470b,8 -34b470c,e0 -34b470f,8 -34b4710,e0 -34b4713,8 -34b4714,e0 -34b4717,8 -34b4718,e0 -34b471a,8 -34b471b,ff -34b471c,ff -34b471d,e0 -34b4732,8 -34b4733,de -34b4734,ea -34b4736,c -34b4737,83 -34b4738,7e -34b4739,90 -34b473c,c -34b473d,c0 -34b4740,2e -34b4741,a0 -34b4744,bd -34b4745,20 -34b4747,b -34b4748,d4 -34b474b,bd -34b474c,40 -34b474e,b -34b474f,d4 -34b4752,2f -34b4753,ff -34b4754,ff -34b4755,d0 -34b476a,7 -34b476b,ce -34b476c,ea -34b476e,c -34b476f,83 -34b4770,7e -34b4771,90 -34b4774,c -34b4775,b0 -34b4777,2 -34b4778,7e -34b4779,90 -34b477b,bf -34b477c,fb -34b477f,2 -34b4780,7d -34b4781,a0 -34b4784,a -34b4785,d0 -34b4786,5c -34b4787,62 -34b4788,7d -34b4789,b0 -34b478a,9 -34b478b,de -34b478c,eb -34b478d,30 -34b47a3,2 -34b47a4,de -34b47a7,b -34b47a8,de -34b47ab,7d -34b47ac,9e -34b47ae,2 -34b47af,d7 -34b47b0,9e -34b47b2,b -34b47b3,b0 -34b47b4,9e -34b47b6,6e -34b47b7,40 -34b47b8,9e -34b47ba,9f -34b47bb,ff -34b47bc,ff -34b47bd,f7 -34b47c0,9e -34b47c4,9e -34b47da,c -34b47db,ff -34b47dc,ff -34b47dd,50 -34b47de,c -34b47df,a0 -34b47e2,c -34b47e3,a0 -34b47e6,c -34b47e7,ee -34b47e8,ea -34b47eb,3 -34b47ec,8e -34b47ed,90 -34b47f0,b -34b47f1,c0 -34b47f4,b -34b47f5,c0 -34b47f6,5c -34b47f7,63 -34b47f8,8e -34b47f9,90 -34b47fa,9 -34b47fb,de -34b47fc,da -34b4813,ae -34b4814,ec -34b4815,30 -34b4816,a -34b4817,e8 -34b4818,39 -34b4819,80 -34b481a,e -34b481b,90 -34b481e,4f -34b481f,ae -34b4820,ec -34b4821,40 -34b4822,6f -34b4823,d5 -34b4824,5d -34b4825,c0 -34b4826,5f -34b4827,90 -34b4828,9 -34b4829,e0 -34b482a,e -34b482b,90 -34b482c,9 +34b4236,18 +34b4237,83 +34b4239,2 +34b423a,27 +34b423b,c3 +34b423d,64 +34b423e,18 +34b423f,23 +34b4240,14 +34b4241,72 +34b4243,16 +34b4244,24 +34b4245,b0 +34b4247,4 +34b4248,8c +34b4249,a7 +34b424d,7 +34b424e,3b +34b424f,2 +34b4251,51 +34b4253,18 +34b4256,30 +34b4257,10 +34b4259,6 +34b425a,30 +34b425b,83 +34b425d,c4 +34b425e,30 +34b425f,23 +34b4261,6 +34b4262,18 +34b4263,c0 +34b4265,66 +34b4266,30 +34b4267,21 +34b4269,6 +34b426a,30 +34b426b,40 +34b426c,96 +34b426d,83 +34b426f,6 +34b4270,af +34b4271,a3 +34b4273,18 +34b4274,96 +34b4275,83 +34b4277,4 +34b4278,af +34b4279,a3 +34b427b,14 +34b427c,8c +34b427d,a3 +34b4280,30 +34b4281,63 +34b4282,f +34b4283,ff +34b4284,af +34b4285,a3 +34b4287,10 +34b4288,30 +34b4289,e7 +34b428a,f +34b428b,ff +34b428d,46 +34b428e,30 +34b428f,23 +34b4290,8f +34b4291,a5 +34b4293,20 +34b4294,c +34b4295,10 +34b4296,14 +34b4297,af +34b4298,2 +34b4299,a0 +34b429a,20 +34b429b,25 +34b429c,2 +34b429e,28 +34b429f,25 +34b42a0,8e +34b42a1,62 +34b42a2,64 +34b42a3,24 +34b42a5,a2 +34b42a6,10 +34b42a7,2b +34b42a8,54 +34b42a9,40 +34b42aa,ff +34b42ab,df +34b42ac,80 +34b42ad,a2 +34b42b0,26 +34b42b1,52 +34b42b3,1 +34b42b4,24 +34b42b5,2 +34b42b7,6 +34b42b8,16 +34b42b9,42 +34b42ba,ff +34b42bb,d3 +34b42bc,26 +34b42bd,d6 +34b42bf,12 +34b42c0,3c +34b42c1,2 +34b42c2,80 +34b42c3,40 +34b42c4,8c +34b42c5,43 +34b42c6,64 +34b42c7,28 +34b42c8,3c +34b42c9,2 +34b42ca,80 +34b42cb,40 +34b42cc,ac +34b42cd,43 +34b42ce,64 +34b42cf,24 +34b42d0,8f +34b42d1,bf +34b42d3,4c +34b42d4,8f +34b42d5,be +34b42d7,48 +34b42d8,8f +34b42d9,b7 +34b42db,44 +34b42dc,8f +34b42dd,b6 +34b42df,40 +34b42e0,8f +34b42e1,b5 +34b42e3,3c +34b42e4,8f +34b42e5,b4 +34b42e7,38 +34b42e8,8f +34b42e9,b3 +34b42eb,34 +34b42ec,8f +34b42ed,b2 +34b42ef,30 +34b42f0,8f +34b42f1,b1 +34b42f3,2c +34b42f4,8f +34b42f5,b0 +34b42f7,28 +34b42f8,3 +34b42f9,e0 +34b42fb,8 +34b42fc,27 +34b42fd,bd +34b42ff,50 +34b4300,4d +34b4301,51 +34b4304,4e +34b4305,6f +34b4306,72 +34b4307,6d +34b4308,61 +34b4309,6c +34b4311,8 +34b4313,e +34b4315,5f +34b4316,3 +34b4317,1 +34b4318,1 +34b4321,18 +34b4323,18 +34b4325,4 +34b4327,3 +34b4328,4 +34b4331,10 +34b4333,10 +34b4335,6 +34b4336,3 +34b4337,1 +34b4338,1 +34b4341,10 +34b4343,10 +34b4345,3 +34b4347,3 +34b4348,4 +34b434d,1 +34b434e,2 +34b434f,3 +34b4350,4 +34b4351,5 +34b4352,6 +34b4353,7 +34b4354,ff +34b4355,ff +34b4356,ff +34b4357,ff +34b4358,ff +34b4359,ff +34b435c,11 +34b435d,c2 +34b435e,2d +34b435f,d4 +34b4360,43 +34b4361,22 +34b4362,8 +34b4363,54 +34b4364,ce +34b4365,d1 +34b4366,75 +34b4367,1a +34b4368,a9 +34b4369,3a +34b436a,ea +34b436b,a4 +34b436c,ab +34b436d,21 +34b4371,10 +34b4372,44 +34b4373,65 +34b4374,6b +34b4375,75 +34b437c,1 +34b437d,10 +34b437e,44 +34b437f,6f +34b4380,64 +34b4381,6f +34b4382,6e +34b4383,67 +34b4384,6f +34b4388,2 +34b4389,10 +34b438a,4a +34b438b,61 +34b438c,62 +34b438d,75 +34b4394,3 +34b4395,d0 +34b4396,46 +34b4397,6f +34b4398,72 +34b4399,65 +34b439a,73 +34b439b,74 +34b43a0,4 +34b43a1,d0 +34b43a2,46 +34b43a3,69 +34b43a4,72 +34b43a5,65 +34b43ac,5 +34b43ad,d0 +34b43ae,57 +34b43af,61 +34b43b0,74 +34b43b1,65 +34b43b2,72 +34b43b8,7 +34b43b9,d0 +34b43ba,53 +34b43bb,68 +34b43bc,61 +34b43bd,64 +34b43be,6f +34b43bf,77 +34b43c4,6 +34b43c5,d0 +34b43c6,53 +34b43c7,70 +34b43c8,69 +34b43c9,72 +34b43ca,69 +34b43cb,74 +34b43d0,8 +34b43d1,90 +34b43d2,42 +34b43d3,6f +34b43d4,74 +34b43d5,57 +34b43dc,9 +34b43dd,10 +34b43de,49 +34b43df,63 +34b43e0,65 +34b43e8,b +34b43e9,80 +34b43ea,47 +34b43eb,54 +34b43ec,47 +34b43f4,c +34b43f5,a0 +34b43f6,48 +34b43f7,69 +34b43f8,64 +34b43f9,65 +34b43fa,6f +34b43fb,75 +34b43fc,74 +34b4400,d +34b4401,c0 +34b4402,47 +34b4403,61 +34b4404,6e +34b4405,6f +34b4406,6e +34b440f,1 +34b4413,d +34b448b,d +34b448c,b0 +34b448f,d +34b4490,b0 +34b4493,d +34b4494,b0 +34b4497,c +34b4498,b0 +34b449b,c +34b449c,b0 +34b449f,c +34b44a0,a0 +34b44a7,d +34b44a8,b0 +34b44ab,d +34b44ac,b0 +34b44c3,e8 +34b44c4,ac +34b44c7,e8 +34b44c8,ac +34b44cb,e8 +34b44cc,ac +34b44cf,e8 +34b44d0,ac +34b44f7,d +34b44f8,77 +34b44f9,d0 +34b44fb,2e +34b44fc,3a +34b44fd,b0 +34b44ff,7d +34b4500,c +34b4501,90 +34b4502,8f +34b4503,ff +34b4504,ff +34b4505,fd +34b4507,c9 +34b4508,6e +34b450a,2 +34b450b,e4 +34b450c,ac +34b450e,ef +34b450f,ff +34b4510,ff +34b4511,f4 +34b4512,a +34b4513,b0 +34b4514,e5 +34b4516,c +34b4517,95 +34b4518,e0 +34b451a,e +34b451b,59 +34b451c,c0 +34b4533,7 +34b4534,90 +34b4536,5 +34b4537,ce +34b4538,eb +34b4539,40 +34b453a,c +34b453b,c8 +34b453c,a9 +34b453d,90 +34b453e,d +34b453f,a7 +34b4540,90 +34b4542,8 +34b4543,ec +34b4544,b4 +34b4547,4a +34b4548,dd +34b4549,a0 +34b454b,7 +34b454c,97 +34b454d,e2 +34b454e,c +34b454f,88 +34b4550,aa +34b4551,e0 +34b4552,6 +34b4553,ce +34b4554,ed +34b4555,70 +34b4557,7 +34b4558,90 +34b455b,7 +34b455c,90 +34b456a,6d +34b456b,ea +34b456e,c9 +34b456f,4d +34b4570,60 +34b4572,c9 +34b4573,4d +34b4574,60 +34b4575,33 +34b4576,6d +34b4577,eb +34b4578,6b +34b4579,c6 +34b457b,8c +34b457c,b6 +34b457e,7c +34b457f,a4 +34b4580,ce +34b4581,c4 +34b4582,31 +34b4583,9 +34b4584,c3 +34b4585,bb +34b4587,9 +34b4588,c3 +34b4589,bb +34b458b,2 +34b458c,ce +34b458d,d4 +34b45a2,4 +34b45a3,ce +34b45a4,fb +34b45a6,a +34b45a7,d5 +34b45aa,8 +34b45ab,e3 +34b45ae,9 +34b45af,ec +34b45b2,7e +34b45b3,4d +34b45b4,b0 +34b45b5,ab +34b45b6,bb +34b45b7,5 +34b45b8,e8 +34b45b9,aa +34b45ba,bc +34b45bc,8e +34b45bd,d6 +34b45be,7e +34b45bf,93 +34b45c0,6e +34b45c1,d0 +34b45c2,8 +34b45c3,de +34b45c4,d9 +34b45c5,ea +34b45db,c +34b45dc,a0 +34b45df,c +34b45e0,a0 +34b45e3,c +34b45e4,a0 +34b45e7,c +34b45e8,a0 +34b460c,c9 +34b460f,7 +34b4610,e2 +34b4613,c +34b4614,b0 +34b4617,e +34b4618,80 +34b461b,6f +34b461c,30 +34b461f,8e +34b4623,8e +34b4627,6f +34b4628,40 +34b462b,e +34b462c,80 +34b462f,c +34b4630,b0 +34b4633,7 +34b4634,e2 +34b4638,c9 +34b4643,bb +34b4647,5e +34b4648,40 +34b464b,c +34b464c,a0 +34b464f,a +34b4650,d0 +34b4653,7 +34b4654,e1 +34b4657,6 +34b4658,f4 +34b465b,6 +34b465c,f4 +34b465f,7 +34b4660,e1 +34b4663,a +34b4664,d0 +34b4667,c +34b4668,a0 +34b466b,5e +34b466c,40 +34b466f,bb +34b4683,a +34b4684,80 +34b4686,c +34b4687,8a +34b4688,8a +34b4689,b0 +34b468a,3 +34b468b,be +34b468c,da +34b468d,10 +34b468e,3 +34b468f,be +34b4690,da +34b4691,10 +34b4692,c +34b4693,8a +34b4694,8a +34b4695,b0 +34b4697,a +34b4698,80 +34b46bf,c +34b46c0,a0 +34b46c3,c +34b46c4,a0 +34b46c7,c +34b46c8,a0 +34b46ca,af +34b46cb,ff +34b46cc,ff +34b46cd,f8 +34b46cf,c +34b46d0,a0 +34b46d3,c +34b46d4,a0 +34b46d7,c +34b46d8,a0 +34b470f,d +34b4710,d0 +34b4713,e +34b4714,c0 +34b4717,4f +34b4718,80 +34b471b,9d +34b473f,df +34b4740,fb +34b477f,e +34b4780,c0 +34b4783,e +34b4784,c0 +34b479c,b +34b479d,c0 +34b47a0,4e +34b47a1,60 +34b47a4,bc +34b47a7,3 +34b47a8,e8 +34b47ab,a +34b47ac,d0 +34b47af,1e +34b47b0,90 +34b47b3,9e +34b47b4,20 +34b47b7,da +34b47ba,7 +34b47bb,e3 +34b47be,c +34b47bf,b0 +34b47c2,6e +34b47c3,50 +34b47d2,3 +34b47d3,ce +34b47d4,eb +34b47d6,b +34b47d7,d5 +34b47d8,7e +34b47d9,90 +34b47da,e +34b47db,90 +34b47dc,b +34b47dd,d0 +34b47de,5f +34b47df,70 +34b47e0,9 +34b47e1,e0 +34b47e2,6f +34b47e3,6c +34b47e4,b9 +34b47e5,e0 +34b47e6,5f +34b47e7,70 +34b47e8,9 +34b47e9,e0 +34b47ea,e +34b47eb,90 +34b47ec,b +34b47ed,d0 +34b47ee,b +34b47ef,d5 +34b47f0,7e +34b47f1,90 +34b47f2,3 +34b47f3,ce +34b47f4,eb +34b480a,a +34b480b,ff +34b480c,e0 +34b480f,8 +34b4810,e0 +34b4813,8 +34b4814,e0 +34b4817,8 +34b4818,e0 +34b481b,8 +34b481c,e0 +34b481f,8 +34b4820,e0 +34b4823,8 +34b4824,e0 +34b4827,8 +34b4828,e0 +34b482a,8 +34b482b,ff +34b482c,ff 34b482d,e0 -34b482e,c -34b482f,d5 -34b4830,5d -34b4831,c0 -34b4832,3 -34b4833,ce -34b4834,ec -34b4835,40 -34b484a,5f -34b484b,ff -34b484c,ff -34b484d,d0 -34b4850,d +34b4842,8 +34b4843,de +34b4844,ea +34b4846,c +34b4847,83 +34b4848,7e +34b4849,90 +34b484c,c +34b484d,c0 +34b4850,2e 34b4851,a0 -34b4854,7e -34b4855,40 -34b4858,cc -34b485b,4 -34b485c,e8 -34b485f,a -34b4860,d0 -34b4863,d -34b4864,a0 -34b4867,8e -34b4868,40 -34b486b,cc -34b4882,5 -34b4883,ce -34b4884,ec -34b4885,30 -34b4886,d -34b4887,c4 -34b4888,5d -34b4889,b0 -34b488a,e -34b488b,90 -34b488c,b -34b488d,d0 -34b488e,b -34b488f,c4 -34b4890,5d -34b4891,90 -34b4892,4 -34b4893,df -34b4894,fc -34b4895,20 -34b4896,1d -34b4897,b4 -34b4898,5c -34b4899,c0 -34b489a,5f -34b489b,60 -34b489c,9 -34b489d,e0 -34b489e,2e -34b489f,b3 -34b48a0,5c -34b48a1,d0 -34b48a2,7 -34b48a3,de -34b48a4,ec -34b48a5,50 -34b48ba,6 -34b48bb,de -34b48bc,eb -34b48be,d -34b48bf,b3 -34b48c0,7e -34b48c1,90 -34b48c2,5f -34b48c3,50 -34b48c4,b -34b48c5,d0 -34b48c6,5f -34b48c7,50 -34b48c8,b -34b48c9,e0 -34b48ca,d -34b48cb,b3 -34b48cc,7e -34b48cd,e0 -34b48ce,6 -34b48cf,de -34b48d0,db -34b48d1,e0 -34b48d4,b -34b48d5,c0 -34b48d6,9 -34b48d7,74 -34b48d8,9e -34b48d9,70 -34b48da,5 -34b48db,de -34b48dc,d8 -34b48fb,e -34b48fc,c0 -34b48ff,e -34b4900,c0 -34b490f,e -34b4910,c0 -34b4913,e -34b4914,c0 -34b4933,e -34b4934,c0 -34b4937,e -34b4938,c0 -34b4947,d -34b4948,d0 -34b494b,e -34b494c,c0 -34b494f,4f -34b4950,80 -34b4953,9d -34b496c,29 -34b496d,c8 -34b496f,7b -34b4970,ed -34b4971,93 -34b4972,8d -34b4973,da -34b4974,40 -34b4976,8d -34b4977,da +34b4854,bd +34b4855,20 +34b4857,b +34b4858,d4 +34b485b,bd +34b485c,40 +34b485e,b +34b485f,d4 +34b4862,2f +34b4863,ff +34b4864,ff +34b4865,d0 +34b487a,7 +34b487b,ce +34b487c,ea +34b487e,c +34b487f,83 +34b4880,7e +34b4881,90 +34b4884,c +34b4885,b0 +34b4887,2 +34b4888,7e +34b4889,90 +34b488b,bf +34b488c,fb +34b488f,2 +34b4890,7d +34b4891,a0 +34b4894,a +34b4895,d0 +34b4896,5c +34b4897,62 +34b4898,7d +34b4899,b0 +34b489a,9 +34b489b,de +34b489c,eb +34b489d,30 +34b48b3,2 +34b48b4,de +34b48b7,b +34b48b8,de +34b48bb,7d +34b48bc,9e +34b48be,2 +34b48bf,d7 +34b48c0,9e +34b48c2,b +34b48c3,b0 +34b48c4,9e +34b48c6,6e +34b48c7,40 +34b48c8,9e +34b48ca,9f +34b48cb,ff +34b48cc,ff +34b48cd,f7 +34b48d0,9e +34b48d4,9e +34b48ea,c +34b48eb,ff +34b48ec,ff +34b48ed,50 +34b48ee,c +34b48ef,a0 +34b48f2,c +34b48f3,a0 +34b48f6,c +34b48f7,ee +34b48f8,ea +34b48fb,3 +34b48fc,8e +34b48fd,90 +34b4900,b +34b4901,c0 +34b4904,b +34b4905,c0 +34b4906,5c +34b4907,63 +34b4908,8e +34b4909,90 +34b490a,9 +34b490b,de +34b490c,da +34b4923,ae +34b4924,ec +34b4925,30 +34b4926,a +34b4927,e8 +34b4928,39 +34b4929,80 +34b492a,e +34b492b,90 +34b492e,4f +34b492f,ae +34b4930,ec +34b4931,40 +34b4932,6f +34b4933,d5 +34b4934,5d +34b4935,c0 +34b4936,5f +34b4937,90 +34b4938,9 +34b4939,e0 +34b493a,e +34b493b,90 +34b493c,9 +34b493d,e0 +34b493e,c +34b493f,d5 +34b4940,5d +34b4941,c0 +34b4942,3 +34b4943,ce +34b4944,ec +34b4945,40 +34b495a,5f +34b495b,ff +34b495c,ff +34b495d,d0 +34b4960,d +34b4961,a0 +34b4964,7e +34b4965,40 +34b4968,cc +34b496b,4 +34b496c,e8 +34b496f,a +34b4970,d0 +34b4973,d +34b4974,a0 +34b4977,8e 34b4978,40 -34b497b,7b -34b497c,ec -34b497d,93 -34b4980,29 -34b4981,c8 -34b49a6,af -34b49a7,ff -34b49a8,ff -34b49a9,f8 -34b49b2,af -34b49b3,ff -34b49b4,ff -34b49b5,f8 -34b49da,ac -34b49db,81 -34b49de,4a +34b497b,cc +34b4992,5 +34b4993,ce +34b4994,ec +34b4995,30 +34b4996,d +34b4997,c4 +34b4998,5d +34b4999,b0 +34b499a,e +34b499b,90 +34b499c,b +34b499d,d0 +34b499e,b +34b499f,c4 +34b49a0,5d +34b49a1,90 +34b49a2,4 +34b49a3,df +34b49a4,fc +34b49a5,20 +34b49a6,1d +34b49a7,b4 +34b49a8,5c +34b49a9,c0 +34b49aa,5f +34b49ab,60 +34b49ac,9 +34b49ad,e0 +34b49ae,2e +34b49af,b3 +34b49b0,5c +34b49b1,d0 +34b49b2,7 +34b49b3,de +34b49b4,ec +34b49b5,50 +34b49ca,6 +34b49cb,de +34b49cc,eb +34b49ce,d +34b49cf,b3 +34b49d0,7e +34b49d1,90 +34b49d2,5f +34b49d3,50 +34b49d4,b +34b49d5,d0 +34b49d6,5f +34b49d7,50 +34b49d8,b +34b49d9,e0 +34b49da,d +34b49db,b3 +34b49dc,7e +34b49dd,e0 +34b49de,6 34b49df,de -34b49e0,b6 -34b49e3,6 -34b49e4,ad -34b49e5,d6 -34b49e7,6 -34b49e8,ad -34b49e9,d6 -34b49ea,4a +34b49e0,db +34b49e1,e0 +34b49e4,b +34b49e5,c0 +34b49e6,9 +34b49e7,74 +34b49e8,9e +34b49e9,70 +34b49ea,5 34b49eb,de -34b49ec,b6 -34b49ee,ac -34b49ef,81 -34b4a0a,4 -34b4a0b,be -34b4a0c,ec -34b4a0d,30 -34b4a0e,9 -34b4a0f,a4 -34b4a10,6e -34b4a11,a0 -34b4a14,1d -34b4a15,a0 -34b4a17,2 -34b4a18,cd -34b4a19,30 -34b4a1b,c -34b4a1c,c1 +34b49ec,d8 +34b4a0b,e +34b4a0c,c0 +34b4a0f,e +34b4a10,c0 34b4a1f,e -34b4a20,90 -34b4a27,e -34b4a28,90 -34b4a2b,e -34b4a2c,90 -34b4a42,1 -34b4a43,ae -34b4a44,ed -34b4a45,70 -34b4a46,c -34b4a47,d7 -34b4a48,39 -34b4a49,e4 -34b4a4a,7e -34b4a4b,20 -34b4a4d,c9 -34b4a4e,ba -34b4a4f,a -34b4a50,ee -34b4a51,ca -34b4a52,d7 -34b4a53,6e -34b4a54,64 -34b4a55,da -34b4a56,d6 -34b4a57,9c -34b4a59,aa -34b4a5a,d7 -34b4a5b,6e -34b4a5c,64 -34b4a5d,da -34b4a5e,ba -34b4a5f,a -34b4a60,ee -34b4a61,ca -34b4a62,6e -34b4a63,40 -34b4a66,a -34b4a67,d8 -34b4a68,30 -34b4a6b,8d -34b4a6c,ee -34b4a6d,90 -34b4a7b,3e -34b4a7c,d0 -34b4a7f,9d -34b4a80,e6 -34b4a83,cb -34b4a84,cb -34b4a86,3 -34b4a87,e8 -34b4a88,ad -34b4a8a,8 -34b4a8b,e2 -34b4a8c,6f -34b4a8d,60 -34b4a8e,c -34b4a8f,c0 -34b4a90,e -34b4a91,a0 -34b4a92,2e -34b4a93,ff -34b4a94,ff -34b4a95,d0 -34b4a96,8e -34b4a97,50 -34b4a98,8 -34b4a99,f5 -34b4a9a,cd -34b4a9c,1 -34b4a9d,ea -34b4ab2,e -34b4ab3,ff -34b4ab4,ec -34b4ab5,40 -34b4ab6,e -34b4ab7,90 -34b4ab8,5d -34b4ab9,c0 -34b4aba,e -34b4abb,90 -34b4abc,a -34b4abd,e0 -34b4abe,e -34b4abf,90 -34b4ac0,5d -34b4ac1,c0 -34b4ac2,e +34b4a20,c0 +34b4a23,e +34b4a24,c0 +34b4a43,e +34b4a44,c0 +34b4a47,e +34b4a48,c0 +34b4a57,d +34b4a58,d0 +34b4a5b,e +34b4a5c,c0 +34b4a5f,4f +34b4a60,80 +34b4a63,9d +34b4a7c,29 +34b4a7d,c8 +34b4a7f,7b +34b4a80,ed +34b4a81,93 +34b4a82,8d +34b4a83,da +34b4a84,40 +34b4a86,8d +34b4a87,da +34b4a88,40 +34b4a8b,7b +34b4a8c,ec +34b4a8d,93 +34b4a90,29 +34b4a91,c8 +34b4ab6,af +34b4ab7,ff +34b4ab8,ff +34b4ab9,f8 +34b4ac2,af 34b4ac3,ff -34b4ac4,fd -34b4ac5,50 -34b4ac6,e -34b4ac7,90 -34b4ac8,4b -34b4ac9,d2 -34b4aca,e -34b4acb,90 -34b4acc,5 -34b4acd,f6 -34b4ace,e -34b4acf,90 -34b4ad0,4b -34b4ad1,e3 -34b4ad2,e -34b4ad3,ff -34b4ad4,ed -34b4ad5,80 -34b4aeb,9d -34b4aec,ed -34b4aed,80 -34b4aee,8 -34b4aef,e9 -34b4af0,36 -34b4af1,b0 -34b4af2,d -34b4af3,b0 -34b4af6,3f -34b4af7,90 -34b4afa,5f -34b4afb,70 -34b4afe,1e -34b4aff,90 -34b4b02,d -34b4b03,b0 -34b4b06,8 -34b4b07,e9 -34b4b08,47 -34b4b09,b0 -34b4b0b,9d -34b4b0c,ed -34b4b0d,80 -34b4b22,5f -34b4b23,fe -34b4b24,d8 -34b4b26,5f -34b4b27,65 -34b4b28,ae -34b4b29,80 -34b4b2a,5f -34b4b2b,60 -34b4b2c,c -34b4b2d,d0 -34b4b2e,5f -34b4b2f,60 -34b4b30,9 -34b4b31,e0 -34b4b32,5f -34b4b33,60 -34b4b34,9 -34b4b35,f0 -34b4b36,5f -34b4b37,60 -34b4b38,9 -34b4b39,e0 -34b4b3a,5f -34b4b3b,60 -34b4b3c,c -34b4b3d,d0 -34b4b3e,5f -34b4b3f,65 -34b4b40,ae -34b4b41,80 -34b4b42,5f -34b4b43,fe -34b4b44,d8 -34b4b5a,d -34b4b5b,ff -34b4b5c,ff -34b4b5d,e0 -34b4b5e,d -34b4b5f,b0 -34b4b62,d -34b4b63,b0 -34b4b66,d -34b4b67,b0 -34b4b6a,d -34b4b6b,ff -34b4b6c,ff -34b4b6d,c0 -34b4b6e,d -34b4b6f,b0 -34b4b72,d -34b4b73,b0 -34b4b76,d -34b4b77,b0 -34b4b7a,d -34b4b7b,ff -34b4b7c,ff -34b4b7d,f0 -34b4b92,b -34b4b93,ff -34b4b94,ff -34b4b95,f4 -34b4b96,b -34b4b97,d0 -34b4b9a,b -34b4b9b,d0 -34b4b9e,b -34b4b9f,d0 -34b4ba2,b +34b4ac4,ff +34b4ac5,f8 +34b4aea,ac +34b4aeb,81 +34b4aee,4a +34b4aef,de +34b4af0,b6 +34b4af3,6 +34b4af4,ad +34b4af5,d6 +34b4af7,6 +34b4af8,ad +34b4af9,d6 +34b4afa,4a +34b4afb,de +34b4afc,b6 +34b4afe,ac +34b4aff,81 +34b4b1a,4 +34b4b1b,be +34b4b1c,ec +34b4b1d,30 +34b4b1e,9 +34b4b1f,a4 +34b4b20,6e +34b4b21,a0 +34b4b24,1d +34b4b25,a0 +34b4b27,2 +34b4b28,cd +34b4b29,30 +34b4b2b,c +34b4b2c,c1 +34b4b2f,e +34b4b30,90 +34b4b37,e +34b4b38,90 +34b4b3b,e +34b4b3c,90 +34b4b52,1 +34b4b53,ae +34b4b54,ed +34b4b55,70 +34b4b56,c +34b4b57,d7 +34b4b58,39 +34b4b59,e4 +34b4b5a,7e +34b4b5b,20 +34b4b5d,c9 +34b4b5e,ba +34b4b5f,a +34b4b60,ee +34b4b61,ca +34b4b62,d7 +34b4b63,6e +34b4b64,64 +34b4b65,da +34b4b66,d6 +34b4b67,9c +34b4b69,aa +34b4b6a,d7 +34b4b6b,6e +34b4b6c,64 +34b4b6d,da +34b4b6e,ba +34b4b6f,a +34b4b70,ee +34b4b71,ca +34b4b72,6e +34b4b73,40 +34b4b76,a +34b4b77,d8 +34b4b78,30 +34b4b7b,8d +34b4b7c,ee +34b4b7d,90 +34b4b8b,3e +34b4b8c,d0 +34b4b8f,9d +34b4b90,e6 +34b4b93,cb +34b4b94,cb +34b4b96,3 +34b4b97,e8 +34b4b98,ad +34b4b9a,8 +34b4b9b,e2 +34b4b9c,6f +34b4b9d,60 +34b4b9e,c +34b4b9f,c0 +34b4ba0,e +34b4ba1,a0 +34b4ba2,2e 34b4ba3,ff 34b4ba4,ff -34b4ba5,c0 -34b4ba6,b -34b4ba7,d0 -34b4baa,b -34b4bab,d0 -34b4bae,b -34b4baf,d0 -34b4bb2,b -34b4bb3,d0 -34b4bca,1 -34b4bcb,ae -34b4bcc,ed -34b4bcd,60 -34b4bce,b -34b4bcf,e7 -34b4bd0,38 -34b4bd1,a0 -34b4bd2,4e -34b4bd3,90 -34b4bd6,8f -34b4bd7,40 -34b4bda,9f -34b4bdb,10 -34b4bdc,bf -34b4bdd,f2 -34b4bde,7f -34b4bdf,40 -34b4be0,7 -34b4be1,f2 -34b4be2,4e -34b4be3,90 -34b4be4,7 -34b4be5,f2 -34b4be6,b -34b4be7,e7 -34b4be8,39 -34b4be9,f2 -34b4bea,1 -34b4beb,be -34b4bec,ed -34b4bed,90 -34b4c02,5f -34b4c03,60 -34b4c04,9 -34b4c05,e0 -34b4c06,5f -34b4c07,60 -34b4c08,9 -34b4c09,e0 +34b4ba5,d0 +34b4ba6,8e +34b4ba7,50 +34b4ba8,8 +34b4ba9,f5 +34b4baa,cd +34b4bac,1 +34b4bad,ea +34b4bc2,e +34b4bc3,ff +34b4bc4,ec +34b4bc5,40 +34b4bc6,e +34b4bc7,90 +34b4bc8,5d +34b4bc9,c0 +34b4bca,e +34b4bcb,90 +34b4bcc,a +34b4bcd,e0 +34b4bce,e +34b4bcf,90 +34b4bd0,5d +34b4bd1,c0 +34b4bd2,e +34b4bd3,ff +34b4bd4,fd +34b4bd5,50 +34b4bd6,e +34b4bd7,90 +34b4bd8,4b +34b4bd9,d2 +34b4bda,e +34b4bdb,90 +34b4bdc,5 +34b4bdd,f6 +34b4bde,e +34b4bdf,90 +34b4be0,4b +34b4be1,e3 +34b4be2,e +34b4be3,ff +34b4be4,ed +34b4be5,80 +34b4bfb,9d +34b4bfc,ed +34b4bfd,80 +34b4bfe,8 +34b4bff,e9 +34b4c00,36 +34b4c01,b0 +34b4c02,d +34b4c03,b0 +34b4c06,3f +34b4c07,90 34b4c0a,5f -34b4c0b,60 -34b4c0c,9 -34b4c0d,e0 -34b4c0e,5f -34b4c0f,60 -34b4c10,9 -34b4c11,e0 -34b4c12,5f -34b4c13,ff -34b4c14,ff -34b4c15,e0 -34b4c16,5f -34b4c17,60 -34b4c18,9 -34b4c19,e0 -34b4c1a,5f -34b4c1b,60 -34b4c1c,9 -34b4c1d,e0 -34b4c1e,5f -34b4c1f,60 -34b4c20,9 -34b4c21,e0 -34b4c22,5f -34b4c23,60 -34b4c24,9 -34b4c25,e0 -34b4c3a,d -34b4c3b,ff -34b4c3c,ff -34b4c3d,b0 -34b4c3f,d -34b4c40,b0 -34b4c43,d -34b4c44,b0 -34b4c47,d -34b4c48,b0 -34b4c4b,d -34b4c4c,b0 -34b4c4f,d -34b4c50,b0 -34b4c53,d -34b4c54,b0 -34b4c57,d -34b4c58,b0 -34b4c5a,d -34b4c5b,ff -34b4c5c,ff -34b4c5d,b0 -34b4c73,cf -34b4c74,ff -34b4c75,40 -34b4c78,7f -34b4c79,40 -34b4c7c,7f -34b4c7d,40 -34b4c80,7f -34b4c81,40 -34b4c84,7f -34b4c85,40 -34b4c88,7f -34b4c89,30 -34b4c8a,75 -34b4c8c,9e -34b4c8e,8d -34b4c8f,64 -34b4c90,dc -34b4c92,2b -34b4c93,ee -34b4c94,c5 -34b4caa,5f -34b4cab,60 -34b4cac,9 -34b4cad,e7 -34b4cae,5f -34b4caf,60 -34b4cb0,9e -34b4cb1,70 -34b4cb2,5f -34b4cb3,69 -34b4cb4,e7 -34b4cb6,5f -34b4cb7,be -34b4cb8,80 -34b4cba,5f -34b4cbb,ed -34b4cbc,b0 -34b4cbe,5f -34b4cbf,87 -34b4cc0,e8 -34b4cc2,5f -34b4cc3,60 -34b4cc4,ae -34b4cc5,40 -34b4cc6,5f -34b4cc7,60 -34b4cc8,1d -34b4cc9,c0 -34b4cca,5f -34b4ccb,60 -34b4ccc,6 -34b4ccd,ea -34b4ce2,c -34b4ce3,c0 -34b4ce6,c -34b4ce7,c0 -34b4cea,c -34b4ceb,c0 -34b4cee,c -34b4cef,c0 -34b4cf2,c -34b4cf3,c0 -34b4cf6,c -34b4cf7,c0 -34b4cfa,c -34b4cfb,c0 -34b4cfe,c -34b4cff,c0 -34b4d02,c -34b4d03,ff -34b4d04,ff -34b4d05,f7 -34b4d1a,af -34b4d1b,a0 -34b4d1c,c -34b4d1d,f8 -34b4d1e,ae -34b4d1f,d0 -34b4d20,2e -34b4d21,e8 -34b4d22,ad -34b4d23,d5 -34b4d24,9b -34b4d25,e8 -34b4d26,ad -34b4d27,aa -34b4d28,c8 -34b4d29,e8 -34b4d2a,ad -34b4d2b,5d -34b4d2c,e1 -34b4d2d,e8 -34b4d2e,ad -34b4d2f,d -34b4d30,b0 -34b4d31,e8 -34b4d32,ad -34b4d35,e8 -34b4d36,ad -34b4d39,e8 -34b4d3a,ad -34b4d3d,e8 -34b4d52,5f -34b4d53,c0 -34b4d54,8 -34b4d55,e0 -34b4d56,5f -34b4d57,e6 -34b4d58,8 -34b4d59,e0 -34b4d5a,5f -34b4d5b,cb -34b4d5c,8 -34b4d5d,e0 -34b4d5e,5f -34b4d5f,7e -34b4d60,48 -34b4d61,e0 -34b4d62,5f -34b4d63,5c -34b4d64,a8 -34b4d65,e0 -34b4d66,5f -34b4d67,57 -34b4d68,e8 -34b4d69,e0 -34b4d6a,5f -34b4d6b,50 -34b4d6c,dc -34b4d6d,e0 -34b4d6e,5f -34b4d6f,50 -34b4d70,9e -34b4d71,e0 -34b4d72,5f -34b4d73,50 -34b4d74,2e -34b4d75,e0 -34b4d8a,4 -34b4d8b,ce -34b4d8c,eb -34b4d8d,20 -34b4d8e,c -34b4d8f,d5 -34b4d90,6e -34b4d91,a0 -34b4d92,3e -34b4d93,80 -34b4d94,a -34b4d95,e0 -34b4d96,7f -34b4d97,50 -34b4d98,8 -34b4d99,f2 -34b4d9a,7f -34b4d9b,40 -34b4d9c,8 -34b4d9d,f4 -34b4d9e,7f -34b4d9f,50 -34b4da0,8 -34b4da1,f2 -34b4da2,3e -34b4da3,80 -34b4da4,a -34b4da5,e0 -34b4da6,c -34b4da7,d5 -34b4da8,6e -34b4da9,b0 -34b4daa,4 -34b4dab,ce -34b4dac,eb -34b4dad,20 -34b4dc2,d -34b4dc3,ff -34b4dc4,ed -34b4dc5,60 -34b4dc6,d -34b4dc7,b0 -34b4dc8,5c -34b4dc9,e2 -34b4dca,d -34b4dcb,b0 -34b4dcc,6 -34b4dcd,f6 -34b4dce,d -34b4dcf,b0 -34b4dd0,6 -34b4dd1,f6 -34b4dd2,d -34b4dd3,b0 -34b4dd4,5c -34b4dd5,e2 -34b4dd6,d -34b4dd7,ff -34b4dd8,ed -34b4dd9,60 -34b4dda,d -34b4ddb,b0 -34b4dde,d -34b4ddf,b0 -34b4de2,d -34b4de3,b0 -34b4dfa,4 -34b4dfb,ce -34b4dfc,eb -34b4dfd,20 +34b4c0b,70 +34b4c0e,1e +34b4c0f,90 +34b4c12,d +34b4c13,b0 +34b4c16,8 +34b4c17,e9 +34b4c18,47 +34b4c19,b0 +34b4c1b,9d +34b4c1c,ed +34b4c1d,80 +34b4c32,5f +34b4c33,fe +34b4c34,d8 +34b4c36,5f +34b4c37,65 +34b4c38,ae +34b4c39,80 +34b4c3a,5f +34b4c3b,60 +34b4c3c,c +34b4c3d,d0 +34b4c3e,5f +34b4c3f,60 +34b4c40,9 +34b4c41,e0 +34b4c42,5f +34b4c43,60 +34b4c44,9 +34b4c45,f0 +34b4c46,5f +34b4c47,60 +34b4c48,9 +34b4c49,e0 +34b4c4a,5f +34b4c4b,60 +34b4c4c,c +34b4c4d,d0 +34b4c4e,5f +34b4c4f,65 +34b4c50,ae +34b4c51,80 +34b4c52,5f +34b4c53,fe +34b4c54,d8 +34b4c6a,d +34b4c6b,ff +34b4c6c,ff +34b4c6d,e0 +34b4c6e,d +34b4c6f,b0 +34b4c72,d +34b4c73,b0 +34b4c76,d +34b4c77,b0 +34b4c7a,d +34b4c7b,ff +34b4c7c,ff +34b4c7d,c0 +34b4c7e,d +34b4c7f,b0 +34b4c82,d +34b4c83,b0 +34b4c86,d +34b4c87,b0 +34b4c8a,d +34b4c8b,ff +34b4c8c,ff +34b4c8d,f0 +34b4ca2,b +34b4ca3,ff +34b4ca4,ff +34b4ca5,f4 +34b4ca6,b +34b4ca7,d0 +34b4caa,b +34b4cab,d0 +34b4cae,b +34b4caf,d0 +34b4cb2,b +34b4cb3,ff +34b4cb4,ff +34b4cb5,c0 +34b4cb6,b +34b4cb7,d0 +34b4cba,b +34b4cbb,d0 +34b4cbe,b +34b4cbf,d0 +34b4cc2,b +34b4cc3,d0 +34b4cda,1 +34b4cdb,ae +34b4cdc,ed +34b4cdd,60 +34b4cde,b +34b4cdf,e7 +34b4ce0,38 +34b4ce1,a0 +34b4ce2,4e +34b4ce3,90 +34b4ce6,8f +34b4ce7,40 +34b4cea,9f +34b4ceb,10 +34b4cec,bf +34b4ced,f2 +34b4cee,7f +34b4cef,40 +34b4cf0,7 +34b4cf1,f2 +34b4cf2,4e +34b4cf3,90 +34b4cf4,7 +34b4cf5,f2 +34b4cf6,b +34b4cf7,e7 +34b4cf8,39 +34b4cf9,f2 +34b4cfa,1 +34b4cfb,be +34b4cfc,ed +34b4cfd,90 +34b4d12,5f +34b4d13,60 +34b4d14,9 +34b4d15,e0 +34b4d16,5f +34b4d17,60 +34b4d18,9 +34b4d19,e0 +34b4d1a,5f +34b4d1b,60 +34b4d1c,9 +34b4d1d,e0 +34b4d1e,5f +34b4d1f,60 +34b4d20,9 +34b4d21,e0 +34b4d22,5f +34b4d23,ff +34b4d24,ff +34b4d25,e0 +34b4d26,5f +34b4d27,60 +34b4d28,9 +34b4d29,e0 +34b4d2a,5f +34b4d2b,60 +34b4d2c,9 +34b4d2d,e0 +34b4d2e,5f +34b4d2f,60 +34b4d30,9 +34b4d31,e0 +34b4d32,5f +34b4d33,60 +34b4d34,9 +34b4d35,e0 +34b4d4a,d +34b4d4b,ff +34b4d4c,ff +34b4d4d,b0 +34b4d4f,d +34b4d50,b0 +34b4d53,d +34b4d54,b0 +34b4d57,d +34b4d58,b0 +34b4d5b,d +34b4d5c,b0 +34b4d5f,d +34b4d60,b0 +34b4d63,d +34b4d64,b0 +34b4d67,d +34b4d68,b0 +34b4d6a,d +34b4d6b,ff +34b4d6c,ff +34b4d6d,b0 +34b4d83,cf +34b4d84,ff +34b4d85,40 +34b4d88,7f +34b4d89,40 +34b4d8c,7f +34b4d8d,40 +34b4d90,7f +34b4d91,40 +34b4d94,7f +34b4d95,40 +34b4d98,7f +34b4d99,30 +34b4d9a,75 +34b4d9c,9e +34b4d9e,8d +34b4d9f,64 +34b4da0,dc +34b4da2,2b +34b4da3,ee +34b4da4,c5 +34b4dba,5f +34b4dbb,60 +34b4dbc,9 +34b4dbd,e7 +34b4dbe,5f +34b4dbf,60 +34b4dc0,9e +34b4dc1,70 +34b4dc2,5f +34b4dc3,69 +34b4dc4,e7 +34b4dc6,5f +34b4dc7,be +34b4dc8,80 +34b4dca,5f +34b4dcb,ed +34b4dcc,b0 +34b4dce,5f +34b4dcf,87 +34b4dd0,e8 +34b4dd2,5f +34b4dd3,60 +34b4dd4,ae +34b4dd5,40 +34b4dd6,5f +34b4dd7,60 +34b4dd8,1d +34b4dd9,c0 +34b4dda,5f +34b4ddb,60 +34b4ddc,6 +34b4ddd,ea +34b4df2,c +34b4df3,c0 +34b4df6,c +34b4df7,c0 +34b4dfa,c +34b4dfb,c0 34b4dfe,c -34b4dff,d5 -34b4e00,6e -34b4e01,a0 -34b4e02,3e -34b4e03,80 -34b4e04,a -34b4e05,e0 -34b4e06,7f -34b4e07,50 -34b4e08,8 -34b4e09,f2 -34b4e0a,7f -34b4e0b,40 -34b4e0c,8 -34b4e0d,f4 -34b4e0e,7f -34b4e0f,50 -34b4e10,8 -34b4e11,f1 -34b4e12,3e -34b4e13,80 -34b4e14,a -34b4e15,d0 -34b4e16,c -34b4e17,d5 -34b4e18,6e -34b4e19,a0 -34b4e1a,4 -34b4e1b,ce -34b4e1c,fc -34b4e1d,20 -34b4e20,ae -34b4e21,50 -34b4e24,c -34b4e25,80 -34b4e32,5f -34b4e33,fe -34b4e34,eb -34b4e35,20 -34b4e36,5f -34b4e37,71 -34b4e38,7e -34b4e39,b0 -34b4e3a,5f -34b4e3b,70 -34b4e3c,c -34b4e3d,d0 -34b4e3e,5f -34b4e3f,71 -34b4e40,6e -34b4e41,a0 -34b4e42,5f -34b4e43,ff -34b4e44,ea -34b4e46,5f -34b4e47,72 -34b4e48,ae -34b4e49,40 -34b4e4a,5f -34b4e4b,70 -34b4e4c,d -34b4e4d,b0 -34b4e4e,5f -34b4e4f,70 -34b4e50,8 -34b4e51,e5 -34b4e52,5f -34b4e53,70 -34b4e55,db -34b4e6a,6 -34b4e6b,ce -34b4e6c,eb -34b4e6d,30 -34b4e6e,d -34b4e6f,c4 -34b4e70,5a -34b4e71,90 -34b4e72,4f -34b4e73,60 -34b4e76,e -34b4e77,c6 -34b4e7a,5 -34b4e7b,ce -34b4e7c,eb -34b4e7d,40 -34b4e80,6c -34b4e81,c0 -34b4e84,8 +34b4dff,c0 +34b4e02,c +34b4e03,c0 +34b4e06,c +34b4e07,c0 +34b4e0a,c +34b4e0b,c0 +34b4e0e,c +34b4e0f,c0 +34b4e12,c +34b4e13,ff +34b4e14,ff +34b4e15,f7 +34b4e2a,af +34b4e2b,a0 +34b4e2c,c +34b4e2d,f8 +34b4e2e,ae +34b4e2f,d0 +34b4e30,2e +34b4e31,e8 +34b4e32,ad +34b4e33,d5 +34b4e34,9b +34b4e35,e8 +34b4e36,ad +34b4e37,aa +34b4e38,c8 +34b4e39,e8 +34b4e3a,ad +34b4e3b,5d +34b4e3c,e1 +34b4e3d,e8 +34b4e3e,ad +34b4e3f,d +34b4e40,b0 +34b4e41,e8 +34b4e42,ad +34b4e45,e8 +34b4e46,ad +34b4e49,e8 +34b4e4a,ad +34b4e4d,e8 +34b4e62,5f +34b4e63,c0 +34b4e64,8 +34b4e65,e0 +34b4e66,5f +34b4e67,e6 +34b4e68,8 +34b4e69,e0 +34b4e6a,5f +34b4e6b,cb +34b4e6c,8 +34b4e6d,e0 +34b4e6e,5f +34b4e6f,7e +34b4e70,48 +34b4e71,e0 +34b4e72,5f +34b4e73,5c +34b4e74,a8 +34b4e75,e0 +34b4e76,5f +34b4e77,57 +34b4e78,e8 +34b4e79,e0 +34b4e7a,5f +34b4e7b,50 +34b4e7c,dc +34b4e7d,e0 +34b4e7e,5f +34b4e7f,50 +34b4e80,9e +34b4e81,e0 +34b4e82,5f +34b4e83,50 +34b4e84,2e 34b4e85,e0 -34b4e86,c -34b4e87,73 -34b4e88,5c -34b4e89,d0 -34b4e8a,8 -34b4e8b,de -34b4e8c,ec -34b4e8d,50 -34b4ea2,cf -34b4ea3,ff -34b4ea4,ff -34b4ea5,fb -34b4ea7,d -34b4ea8,b0 -34b4eab,d -34b4eac,b0 -34b4eaf,d -34b4eb0,b0 -34b4eb3,d -34b4eb4,b0 -34b4eb7,d -34b4eb8,b0 -34b4ebb,d -34b4ebc,b0 -34b4ebf,d -34b4ec0,b0 -34b4ec3,d -34b4ec4,b0 -34b4eda,4f -34b4edb,70 -34b4edc,9 -34b4edd,e0 -34b4ede,4f -34b4edf,70 -34b4ee0,9 -34b4ee1,e0 -34b4ee2,4f -34b4ee3,70 -34b4ee4,9 -34b4ee5,e0 -34b4ee6,4f -34b4ee7,70 -34b4ee8,9 -34b4ee9,e0 -34b4eea,4f -34b4eeb,70 -34b4eec,9 -34b4eed,e0 -34b4eee,3f -34b4eef,70 -34b4ef0,9 -34b4ef1,e0 -34b4ef2,2e -34b4ef3,70 -34b4ef4,a -34b4ef5,d0 -34b4ef6,d -34b4ef7,c4 -34b4ef8,5d -34b4ef9,c0 -34b4efa,5 -34b4efb,ce -34b4efc,ec -34b4efd,40 -34b4f12,ad -34b4f14,3 -34b4f15,e8 -34b4f16,6f +34b4e9a,4 +34b4e9b,ce +34b4e9c,eb +34b4e9d,20 +34b4e9e,c +34b4e9f,d5 +34b4ea0,6e +34b4ea1,a0 +34b4ea2,3e +34b4ea3,80 +34b4ea4,a +34b4ea5,e0 +34b4ea6,7f +34b4ea7,50 +34b4ea8,8 +34b4ea9,f2 +34b4eaa,7f +34b4eab,40 +34b4eac,8 +34b4ead,f4 +34b4eae,7f +34b4eaf,50 +34b4eb0,8 +34b4eb1,f2 +34b4eb2,3e +34b4eb3,80 +34b4eb4,a +34b4eb5,e0 +34b4eb6,c +34b4eb7,d5 +34b4eb8,6e +34b4eb9,b0 +34b4eba,4 +34b4ebb,ce +34b4ebc,eb +34b4ebd,20 +34b4ed2,d +34b4ed3,ff +34b4ed4,ed +34b4ed5,60 +34b4ed6,d +34b4ed7,b0 +34b4ed8,5c +34b4ed9,e2 +34b4eda,d +34b4edb,b0 +34b4edc,6 +34b4edd,f6 +34b4ede,d +34b4edf,b0 +34b4ee0,6 +34b4ee1,f6 +34b4ee2,d +34b4ee3,b0 +34b4ee4,5c +34b4ee5,e2 +34b4ee6,d +34b4ee7,ff +34b4ee8,ed +34b4ee9,60 +34b4eea,d +34b4eeb,b0 +34b4eee,d +34b4eef,b0 +34b4ef2,d +34b4ef3,b0 +34b4f0a,4 +34b4f0b,ce +34b4f0c,eb +34b4f0d,20 +34b4f0e,c +34b4f0f,d5 +34b4f10,6e +34b4f11,a0 +34b4f12,3e +34b4f13,80 +34b4f14,a +34b4f15,e0 +34b4f16,7f 34b4f17,50 34b4f18,8 -34b4f19,e3 -34b4f1a,e -34b4f1b,90 -34b4f1c,b -34b4f1d,c0 -34b4f1e,b -34b4f1f,c0 -34b4f20,d -34b4f21,90 -34b4f22,8 -34b4f23,e1 -34b4f24,5e -34b4f25,40 -34b4f26,2 -34b4f27,e7 -34b4f28,ad -34b4f2b,cb -34b4f2c,ca -34b4f2f,9d -34b4f30,e6 -34b4f33,3e -34b4f34,d0 -34b4f4a,e8 -34b4f4d,ad -34b4f4e,da -34b4f51,cb -34b4f52,cb -34b4f55,da -34b4f56,ac -34b4f57,e -34b4f58,c0 -34b4f59,e8 -34b4f5a,8d -34b4f5b,6d -34b4f5c,e1 -34b4f5d,e5 -34b4f5e,6e -34b4f5f,9b -34b4f60,d8 -34b4f61,e0 -34b4f62,1e -34b4f63,c8 -34b4f64,ac -34b4f65,d0 -34b4f66,d -34b4f67,e3 -34b4f68,7e -34b4f69,c0 -34b4f6a,c -34b4f6b,d0 -34b4f6c,e -34b4f6d,a0 -34b4f82,6e -34b4f83,70 -34b4f84,7 -34b4f85,e7 -34b4f86,a -34b4f87,d2 -34b4f88,1d -34b4f89,b0 -34b4f8a,2 -34b4f8b,da -34b4f8c,ad -34b4f8d,20 -34b4f8f,7e -34b4f90,e7 -34b4f93,3e -34b4f94,e2 -34b4f97,bd -34b4f98,da -34b4f9a,7 -34b4f9b,e6 -34b4f9c,7e -34b4f9d,60 -34b4f9e,3e -34b4f9f,a0 -34b4fa0,b -34b4fa1,d0 -34b4fa2,bd -34b4fa3,20 -34b4fa4,4 -34b4fa5,e9 -34b4fba,ae -34b4fbb,20 -34b4fbc,5 -34b4fbd,e8 -34b4fbe,2d -34b4fbf,a0 -34b4fc0,c -34b4fc1,c0 -34b4fc2,7 -34b4fc3,e5 -34b4fc4,7e -34b4fc5,50 -34b4fc7,cc -34b4fc8,da -34b4fcb,4e -34b4fcc,d2 +34b4f19,f2 +34b4f1a,7f +34b4f1b,40 +34b4f1c,8 +34b4f1d,f4 +34b4f1e,7f +34b4f1f,50 +34b4f20,8 +34b4f21,f1 +34b4f22,3e +34b4f23,80 +34b4f24,a +34b4f25,d0 +34b4f26,c +34b4f27,d5 +34b4f28,6e +34b4f29,a0 +34b4f2a,4 +34b4f2b,ce +34b4f2c,fc +34b4f2d,20 +34b4f30,ae +34b4f31,50 +34b4f34,c +34b4f35,80 +34b4f42,5f +34b4f43,fe +34b4f44,eb +34b4f45,20 +34b4f46,5f +34b4f47,71 +34b4f48,7e +34b4f49,b0 +34b4f4a,5f +34b4f4b,70 +34b4f4c,c +34b4f4d,d0 +34b4f4e,5f +34b4f4f,71 +34b4f50,6e +34b4f51,a0 +34b4f52,5f +34b4f53,ff +34b4f54,ea +34b4f56,5f +34b4f57,72 +34b4f58,ae +34b4f59,40 +34b4f5a,5f +34b4f5b,70 +34b4f5c,d +34b4f5d,b0 +34b4f5e,5f +34b4f5f,70 +34b4f60,8 +34b4f61,e5 +34b4f62,5f +34b4f63,70 +34b4f65,db +34b4f7a,6 +34b4f7b,ce +34b4f7c,eb +34b4f7d,30 +34b4f7e,d +34b4f7f,c4 +34b4f80,5a +34b4f81,90 +34b4f82,4f +34b4f83,60 +34b4f86,e +34b4f87,c6 +34b4f8a,5 +34b4f8b,ce +34b4f8c,eb +34b4f8d,40 +34b4f90,6c +34b4f91,c0 +34b4f94,8 +34b4f95,e0 +34b4f96,c +34b4f97,73 +34b4f98,5c +34b4f99,d0 +34b4f9a,8 +34b4f9b,de +34b4f9c,ec +34b4f9d,50 +34b4fb2,cf +34b4fb3,ff +34b4fb4,ff +34b4fb5,fb +34b4fb7,d +34b4fb8,b0 +34b4fbb,d +34b4fbc,b0 +34b4fbf,d +34b4fc0,b0 +34b4fc3,d +34b4fc4,b0 +34b4fc7,d +34b4fc8,b0 +34b4fcb,d +34b4fcc,b0 34b4fcf,d 34b4fd0,b0 34b4fd3,d 34b4fd4,b0 -34b4fd7,d -34b4fd8,b0 -34b4fdb,d -34b4fdc,b0 -34b4ff2,e -34b4ff3,ff -34b4ff4,ff -34b4ff5,f8 -34b4ff8,b -34b4ff9,d3 -34b4ffc,7e -34b4ffd,70 -34b4fff,3 -34b5000,ea -34b5003,b -34b5004,d1 -34b5007,8e -34b5008,50 -34b500a,4 -34b500b,e9 -34b500e,c -34b500f,c0 -34b5012,1f -34b5013,ff -34b5014,ff -34b5015,fa -34b5023,4f -34b5024,fc -34b5027,4f -34b5028,50 -34b502b,4f -34b502c,50 -34b502f,4f -34b5030,50 -34b5033,4f -34b5034,50 -34b5037,4f -34b5038,50 -34b503b,4f -34b503c,50 -34b503f,4f -34b5040,50 -34b5043,4f -34b5044,50 -34b5047,4f -34b5048,50 -34b504b,4f -34b504c,50 -34b504f,4f -34b5050,fc -34b5062,6e -34b5063,50 -34b5066,c -34b5067,b0 -34b506a,7 -34b506b,e3 -34b506f,da -34b5073,9e -34b5074,20 -34b5077,1e -34b5078,90 -34b507b,a -34b507c,d0 -34b507f,3 -34b5080,e8 -34b5084,bc -34b5088,4e -34b5089,60 -34b508c,b -34b508d,c0 -34b5093,df -34b5094,e0 -34b5097,8 -34b5098,e0 -34b509b,8 -34b509c,e0 -34b509f,8 -34b50a0,e0 -34b50a3,8 -34b50a4,e0 -34b50a7,8 -34b50a8,e0 -34b50ab,8 -34b50ac,e0 -34b50af,8 -34b50b0,e0 -34b50b3,8 -34b50b4,e0 -34b50b7,8 -34b50b8,e0 -34b50bb,8 -34b50bc,e0 -34b50bf,df -34b50c0,e0 -34b50d3,5e -34b50d4,d2 -34b50d7,dc -34b50d8,db -34b50da,a -34b50db,d2 -34b50dc,5e -34b50dd,80 -34b50de,7e -34b50df,50 -34b50e0,7 -34b50e1,e5 -34b5136,ff -34b5137,ff -34b5138,ff -34b5139,fd -34b513e,2 -34b513f,ca -34b5143,2c -34b5144,90 -34b5182,5 -34b5183,ce -34b5184,eb -34b5185,10 -34b5186,b -34b5187,93 -34b5188,6d -34b5189,a0 -34b518c,b -34b518d,c0 -34b518e,8 -34b518f,de -34b5190,ff -34b5191,c0 -34b5192,3e -34b5193,93 -34b5194,b -34b5195,d0 -34b5196,4f -34b5197,82 -34b5198,7e -34b5199,d0 -34b519a,a -34b519b,ee -34b519c,db -34b519d,d0 -34b51aa,d -34b51ab,90 -34b51ae,d -34b51af,90 -34b51b2,d -34b51b3,90 -34b51b6,d -34b51b7,90 -34b51ba,d -34b51bb,bd -34b51bc,ec -34b51bd,40 -34b51be,d -34b51bf,e6 -34b51c0,5d -34b51c1,c0 -34b51c2,d -34b51c3,b0 -34b51c4,8 -34b51c5,e0 -34b51c6,d -34b51c7,a0 -34b51c8,7 -34b51c9,f2 -34b51ca,d -34b51cb,b0 -34b51cc,8 -34b51cd,e0 -34b51ce,d -34b51cf,e6 -34b51d0,4d -34b51d1,b0 -34b51d2,d -34b51d3,bd -34b51d4,ec -34b51d5,40 -34b51f3,8d -34b51f4,ed -34b51f5,70 -34b51f6,7 -34b51f7,e9 -34b51f8,36 -34b51f9,a0 -34b51fa,c -34b51fb,c0 -34b51fe,d -34b51ff,b0 -34b5202,c -34b5203,c0 -34b5206,7 -34b5207,e9 -34b5208,36 -34b5209,a0 -34b520b,8d -34b520c,ed -34b520d,70 -34b521c,b -34b521d,c0 -34b5220,b -34b5221,c0 -34b5224,b -34b5225,c0 -34b5228,b -34b5229,c0 -34b522a,5 -34b522b,de -34b522c,dc -34b522d,c0 -34b522e,d -34b522f,c4 -34b5230,8e -34b5231,c0 -34b5232,5f -34b5233,60 -34b5234,c -34b5235,c0 -34b5236,7f -34b5237,30 -34b5238,b -34b5239,c0 -34b523a,5f -34b523b,60 -34b523c,c -34b523d,c0 -34b523e,d -34b523f,c4 -34b5240,8e -34b5241,c0 -34b5242,5 -34b5243,de -34b5244,dc -34b5245,c0 -34b5262,3 -34b5263,be -34b5264,ec -34b5265,30 -34b5266,c -34b5267,d5 -34b5268,4c -34b5269,c0 -34b526a,4f -34b526b,60 -34b526c,7 -34b526d,e0 -34b526e,6f -34b526f,ff -34b5270,ff -34b5271,f3 -34b5272,4f -34b5273,50 -34b5276,c -34b5277,c5 -34b5278,38 -34b5279,c0 -34b527a,3 -34b527b,be -34b527c,ec -34b527d,60 -34b528b,5 -34b528c,de -34b528d,d0 -34b528f,c -34b5290,b2 -34b5293,d -34b5294,90 -34b5297,e -34b5298,80 -34b529a,d -34b529b,ff -34b529c,ff -34b529d,d0 -34b529f,e -34b52a0,80 -34b52a3,e -34b52a4,80 -34b52a7,e -34b52a8,80 -34b52ab,e -34b52ac,80 -34b52af,e -34b52b0,80 -34b52b3,e -34b52b4,80 -34b52d2,5 -34b52d3,de -34b52d4,dc -34b52d5,c0 +34b4fea,4f +34b4feb,70 +34b4fec,9 +34b4fed,e0 +34b4fee,4f +34b4fef,70 +34b4ff0,9 +34b4ff1,e0 +34b4ff2,4f +34b4ff3,70 +34b4ff4,9 +34b4ff5,e0 +34b4ff6,4f +34b4ff7,70 +34b4ff8,9 +34b4ff9,e0 +34b4ffa,4f +34b4ffb,70 +34b4ffc,9 +34b4ffd,e0 +34b4ffe,3f +34b4fff,70 +34b5000,9 +34b5001,e0 +34b5002,2e +34b5003,70 +34b5004,a +34b5005,d0 +34b5006,d +34b5007,c4 +34b5008,5d +34b5009,c0 +34b500a,5 +34b500b,ce +34b500c,ec +34b500d,40 +34b5022,ad +34b5024,3 +34b5025,e8 +34b5026,6f +34b5027,50 +34b5028,8 +34b5029,e3 +34b502a,e +34b502b,90 +34b502c,b +34b502d,c0 +34b502e,b +34b502f,c0 +34b5030,d +34b5031,90 +34b5032,8 +34b5033,e1 +34b5034,5e +34b5035,40 +34b5036,2 +34b5037,e7 +34b5038,ad +34b503b,cb +34b503c,ca +34b503f,9d +34b5040,e6 +34b5043,3e +34b5044,d0 +34b505a,e8 +34b505d,ad +34b505e,da +34b5061,cb +34b5062,cb +34b5065,da +34b5066,ac +34b5067,e +34b5068,c0 +34b5069,e8 +34b506a,8d +34b506b,6d +34b506c,e1 +34b506d,e5 +34b506e,6e +34b506f,9b +34b5070,d8 +34b5071,e0 +34b5072,1e +34b5073,c8 +34b5074,ac +34b5075,d0 +34b5076,d +34b5077,e3 +34b5078,7e +34b5079,c0 +34b507a,c +34b507b,d0 +34b507c,e +34b507d,a0 +34b5092,6e +34b5093,70 +34b5094,7 +34b5095,e7 +34b5096,a +34b5097,d2 +34b5098,1d +34b5099,b0 +34b509a,2 +34b509b,da +34b509c,ad +34b509d,20 +34b509f,7e +34b50a0,e7 +34b50a3,3e +34b50a4,e2 +34b50a7,bd +34b50a8,da +34b50aa,7 +34b50ab,e6 +34b50ac,7e +34b50ad,60 +34b50ae,3e +34b50af,a0 +34b50b0,b +34b50b1,d0 +34b50b2,bd +34b50b3,20 +34b50b4,4 +34b50b5,e9 +34b50ca,ae +34b50cb,20 +34b50cc,5 +34b50cd,e8 +34b50ce,2d +34b50cf,a0 +34b50d0,c +34b50d1,c0 +34b50d2,7 +34b50d3,e5 +34b50d4,7e +34b50d5,50 +34b50d7,cc +34b50d8,da +34b50db,4e +34b50dc,d2 +34b50df,d +34b50e0,b0 +34b50e3,d +34b50e4,b0 +34b50e7,d +34b50e8,b0 +34b50eb,d +34b50ec,b0 +34b5102,e +34b5103,ff +34b5104,ff +34b5105,f8 +34b5108,b +34b5109,d3 +34b510c,7e +34b510d,70 +34b510f,3 +34b5110,ea +34b5113,b +34b5114,d1 +34b5117,8e +34b5118,50 +34b511a,4 +34b511b,e9 +34b511e,c +34b511f,c0 +34b5122,1f +34b5123,ff +34b5124,ff +34b5125,fa +34b5133,4f +34b5134,fc +34b5137,4f +34b5138,50 +34b513b,4f +34b513c,50 +34b513f,4f +34b5140,50 +34b5143,4f +34b5144,50 +34b5147,4f +34b5148,50 +34b514b,4f +34b514c,50 +34b514f,4f +34b5150,50 +34b5153,4f +34b5154,50 +34b5157,4f +34b5158,50 +34b515b,4f +34b515c,50 +34b515f,4f +34b5160,fc +34b5172,6e +34b5173,50 +34b5176,c +34b5177,b0 +34b517a,7 +34b517b,e3 +34b517f,da +34b5183,9e +34b5184,20 +34b5187,1e +34b5188,90 +34b518b,a +34b518c,d0 +34b518f,3 +34b5190,e8 +34b5194,bc +34b5198,4e +34b5199,60 +34b519c,b +34b519d,c0 +34b51a3,df +34b51a4,e0 +34b51a7,8 +34b51a8,e0 +34b51ab,8 +34b51ac,e0 +34b51af,8 +34b51b0,e0 +34b51b3,8 +34b51b4,e0 +34b51b7,8 +34b51b8,e0 +34b51bb,8 +34b51bc,e0 +34b51bf,8 +34b51c0,e0 +34b51c3,8 +34b51c4,e0 +34b51c7,8 +34b51c8,e0 +34b51cb,8 +34b51cc,e0 +34b51cf,df +34b51d0,e0 +34b51e3,5e +34b51e4,d2 +34b51e7,dc +34b51e8,db +34b51ea,a +34b51eb,d2 +34b51ec,5e +34b51ed,80 +34b51ee,7e +34b51ef,50 +34b51f0,7 +34b51f1,e5 +34b5246,ff +34b5247,ff +34b5248,ff +34b5249,fd +34b524e,2 +34b524f,ca +34b5253,2c +34b5254,90 +34b5292,5 +34b5293,ce +34b5294,eb +34b5295,10 +34b5296,b +34b5297,93 +34b5298,6d +34b5299,a0 +34b529c,b +34b529d,c0 +34b529e,8 +34b529f,de +34b52a0,ff +34b52a1,c0 +34b52a2,3e +34b52a3,93 +34b52a4,b +34b52a5,d0 +34b52a6,4f +34b52a7,82 +34b52a8,7e +34b52a9,d0 +34b52aa,a +34b52ab,ee +34b52ac,db +34b52ad,d0 +34b52ba,d +34b52bb,90 +34b52be,d +34b52bf,90 +34b52c2,d +34b52c3,90 +34b52c6,d +34b52c7,90 +34b52ca,d +34b52cb,bd +34b52cc,ec +34b52cd,40 +34b52ce,d +34b52cf,e6 +34b52d0,5d +34b52d1,c0 +34b52d2,d +34b52d3,b0 +34b52d4,8 +34b52d5,e0 34b52d6,d -34b52d7,c4 -34b52d8,8e -34b52d9,c0 -34b52da,5f -34b52db,60 -34b52dc,c -34b52dd,c0 -34b52de,7f -34b52df,30 -34b52e0,b -34b52e1,c0 -34b52e2,5f -34b52e3,60 -34b52e4,c -34b52e5,c0 -34b52e6,d -34b52e7,c4 -34b52e8,8e -34b52e9,c0 -34b52ea,5 -34b52eb,de -34b52ec,dc -34b52ed,b0 -34b52f0,c -34b52f1,a0 -34b52f2,9 -34b52f3,94 -34b52f4,7e -34b52f5,60 -34b52f6,4 -34b52f7,ce -34b52f8,e9 -34b52fa,d -34b52fb,a0 -34b52fe,d -34b52ff,a0 -34b5302,d -34b5303,a0 -34b5306,d -34b5307,a0 -34b530a,d -34b530b,bd -34b530c,ed -34b530d,40 +34b52d7,a0 +34b52d8,7 +34b52d9,f2 +34b52da,d +34b52db,b0 +34b52dc,8 +34b52dd,e0 +34b52de,d +34b52df,e6 +34b52e0,4d +34b52e1,b0 +34b52e2,d +34b52e3,bd +34b52e4,ec +34b52e5,40 +34b5303,8d +34b5304,ed +34b5305,70 +34b5306,7 +34b5307,e9 +34b5308,36 +34b5309,a0 +34b530a,c +34b530b,c0 34b530e,d -34b530f,e6 -34b5310,5d -34b5311,a0 -34b5312,d -34b5313,b0 -34b5314,b -34b5315,c0 -34b5316,d -34b5317,a0 -34b5318,b -34b5319,c0 -34b531a,d -34b531b,a0 -34b531c,b -34b531d,c0 -34b531e,d -34b531f,a0 -34b5320,b -34b5321,c0 -34b5322,d -34b5323,a0 -34b5324,b -34b5325,c0 -34b5333,b -34b5334,c0 -34b5342,9 -34b5343,ff -34b5344,c0 -34b5347,b -34b5348,c0 -34b534b,b -34b534c,c0 -34b534f,b -34b5350,c0 -34b5353,b -34b5354,c0 -34b5357,b -34b5358,c0 -34b535a,e -34b535b,ff -34b535c,ff -34b535d,e0 -34b536b,7 -34b536c,e0 -34b537a,7 -34b537b,ff -34b537c,e0 -34b537f,7 -34b5380,e0 -34b5383,7 -34b5384,e0 -34b5387,7 -34b5388,e0 -34b538b,7 -34b538c,e0 -34b538f,7 -34b5390,e0 -34b5393,7 -34b5394,e0 -34b5397,7 -34b5398,e0 -34b539b,1b -34b539c,d0 -34b539e,d -34b539f,fe -34b53a0,70 -34b53a2,b -34b53a3,c0 -34b53a6,b -34b53a7,c0 -34b53aa,b -34b53ab,c0 -34b53ae,b -34b53af,c0 -34b53b2,b -34b53b3,c0 -34b53b4,3d -34b53b5,c2 -34b53b6,b -34b53b7,c3 -34b53b8,db -34b53ba,b -34b53bb,dd -34b53bc,c0 -34b53be,b -34b53bf,fc -34b53c0,e5 -34b53c2,b -34b53c3,d0 -34b53c4,cd -34b53c5,10 -34b53c6,b -34b53c7,c0 -34b53c8,3d -34b53c9,b0 -34b53ca,b -34b53cb,c0 -34b53cc,7 -34b53cd,e8 -34b53da,e -34b53db,ff -34b53dc,40 -34b53df,5f -34b53e0,40 -34b53e3,5f -34b53e4,40 -34b53e7,5f -34b53e8,40 -34b53eb,5f -34b53ec,40 -34b53ef,5f -34b53f0,40 -34b53f3,5f -34b53f4,40 -34b53f7,5f -34b53f8,40 -34b53fb,4f -34b53fc,50 -34b53ff,e -34b5400,a0 -34b5403,8 -34b5404,ef -34b5405,b0 -34b5422,8d -34b5423,dd -34b5424,ae +34b530f,b0 +34b5312,c +34b5313,c0 +34b5316,7 +34b5317,e9 +34b5318,36 +34b5319,a0 +34b531b,8d +34b531c,ed +34b531d,70 +34b532c,b +34b532d,c0 +34b5330,b +34b5331,c0 +34b5334,b +34b5335,c0 +34b5338,b +34b5339,c0 +34b533a,5 +34b533b,de +34b533c,dc +34b533d,c0 +34b533e,d +34b533f,c4 +34b5340,8e +34b5341,c0 +34b5342,5f +34b5343,60 +34b5344,c +34b5345,c0 +34b5346,7f +34b5347,30 +34b5348,b +34b5349,c0 +34b534a,5f +34b534b,60 +34b534c,c +34b534d,c0 +34b534e,d +34b534f,c4 +34b5350,8e +34b5351,c0 +34b5352,5 +34b5353,de +34b5354,dc +34b5355,c0 +34b5372,3 +34b5373,be +34b5374,ec +34b5375,30 +34b5376,c +34b5377,d5 +34b5378,4c +34b5379,c0 +34b537a,4f +34b537b,60 +34b537c,7 +34b537d,e0 +34b537e,6f +34b537f,ff +34b5380,ff +34b5381,f3 +34b5382,4f +34b5383,50 +34b5386,c +34b5387,c5 +34b5388,38 +34b5389,c0 +34b538a,3 +34b538b,be +34b538c,ec +34b538d,60 +34b539b,5 +34b539c,de +34b539d,d0 +34b539f,c +34b53a0,b2 +34b53a3,d +34b53a4,90 +34b53a7,e +34b53a8,80 +34b53aa,d +34b53ab,ff +34b53ac,ff +34b53ad,d0 +34b53af,e +34b53b0,80 +34b53b3,e +34b53b4,80 +34b53b7,e +34b53b8,80 +34b53bb,e +34b53bc,80 +34b53bf,e +34b53c0,80 +34b53c3,e +34b53c4,80 +34b53e2,5 +34b53e3,de +34b53e4,dc +34b53e5,c0 +34b53e6,d +34b53e7,c4 +34b53e8,8e +34b53e9,c0 +34b53ea,5f +34b53eb,60 +34b53ec,c +34b53ed,c0 +34b53ee,7f +34b53ef,30 +34b53f0,b +34b53f1,c0 +34b53f2,5f +34b53f3,60 +34b53f4,c +34b53f5,c0 +34b53f6,d +34b53f7,c4 +34b53f8,8e +34b53f9,c0 +34b53fa,5 +34b53fb,de +34b53fc,dc +34b53fd,b0 +34b5400,c +34b5401,a0 +34b5402,9 +34b5403,94 +34b5404,7e +34b5405,60 +34b5406,4 +34b5407,ce +34b5408,e9 +34b540a,d +34b540b,a0 +34b540e,d +34b540f,a0 +34b5412,d +34b5413,a0 +34b5416,d +34b5417,a0 +34b541a,d +34b541b,bd +34b541c,ed +34b541d,40 +34b541e,d +34b541f,e6 +34b5420,5d +34b5421,a0 +34b5422,d +34b5423,b0 +34b5424,b 34b5425,c0 -34b5426,8e -34b5427,4d -34b5428,c5 -34b5429,e4 -34b542a,8d -34b542b,c -34b542c,b0 -34b542d,e6 -34b542e,8d -34b542f,b -34b5430,a0 -34b5431,e7 -34b5432,8d -34b5433,b -34b5434,a0 -34b5435,e7 -34b5436,8d -34b5437,b -34b5438,a0 -34b5439,e7 -34b543a,8d -34b543b,b -34b543c,a0 -34b543d,e7 -34b545a,d -34b545b,bd -34b545c,ed -34b545d,40 -34b545e,d -34b545f,e6 -34b5460,5d -34b5461,a0 -34b5462,d -34b5463,b0 -34b5464,b -34b5465,c0 -34b5466,d -34b5467,a0 -34b5468,b -34b5469,c0 -34b546a,d -34b546b,a0 -34b546c,b -34b546d,c0 -34b546e,d -34b546f,a0 -34b5470,b -34b5471,c0 -34b5472,d -34b5473,a0 -34b5474,b -34b5475,c0 -34b5492,4 -34b5493,ce -34b5494,eb -34b5495,20 -34b5496,c -34b5497,d5 -34b5498,6d -34b5499,a0 -34b549a,1e -34b549b,70 -34b549c,a -34b549d,d0 -34b549e,5f -34b549f,60 -34b54a0,8 -34b54a1,e0 -34b54a2,1e -34b54a3,70 -34b54a4,a -34b54a5,d0 -34b54a6,c -34b54a7,d4 -34b54a8,6d -34b54a9,b0 -34b54aa,4 -34b54ab,ce -34b54ac,eb -34b54ad,20 -34b54ca,d -34b54cb,bd -34b54cc,ec -34b54cd,30 -34b54ce,d -34b54cf,e6 -34b54d0,5d -34b54d1,b0 -34b54d2,d -34b54d3,b0 -34b54d4,9 -34b54d5,e0 -34b54d6,d -34b54d7,a0 -34b54d8,7 -34b54d9,e0 -34b54da,d -34b54db,b0 -34b54dc,8 -34b54dd,e0 -34b54de,d -34b54df,e6 -34b54e0,5d -34b54e1,b0 -34b54e2,d -34b54e3,be -34b54e4,ec -34b54e5,40 -34b54e6,d -34b54e7,90 -34b54ea,d -34b54eb,90 -34b54ee,d -34b54ef,90 -34b5502,4 -34b5503,ce -34b5504,dc -34b5505,c0 -34b5506,c -34b5507,c4 -34b5508,7e -34b5509,c0 -34b550a,1e -34b550b,70 -34b550c,c -34b550d,c0 -34b550e,5f -34b550f,60 -34b5510,b -34b5511,c0 -34b5512,2e -34b5513,70 -34b5514,c -34b5515,c0 -34b5516,c -34b5517,c4 -34b5518,7e -34b5519,c0 -34b551a,5 -34b551b,ce -34b551c,db -34b551d,c0 -34b5520,a -34b5521,c0 -34b5524,a -34b5525,c0 -34b5528,a -34b5529,c0 -34b553b,cc -34b553c,de -34b553d,f9 -34b553f,ce -34b5540,83 -34b5543,cb -34b5547,ca -34b554b,ca -34b554f,ca -34b5553,ca -34b5572,4 -34b5573,ce -34b5574,ea -34b5575,10 -34b5576,b -34b5577,d4 -34b5578,5b -34b5579,60 -34b557a,b -34b557b,d4 -34b557e,3 -34b557f,bd -34b5580,db -34b5581,20 -34b5584,4d -34b5585,a0 -34b5586,b -34b5587,94 -34b5588,5e -34b5589,a0 -34b558a,5 -34b558b,ce -34b558c,eb -34b558d,20 -34b55a3,8e -34b55a7,8e -34b55aa,6f -34b55ab,ff -34b55ac,ff -34b55ad,b0 -34b55af,8e -34b55b3,8e -34b55b7,8e -34b55bb,8e -34b55bf,6e -34b55c0,70 -34b55c3,b -34b55c4,ef -34b55c5,b0 +34b5426,d +34b5427,a0 +34b5428,b +34b5429,c0 +34b542a,d +34b542b,a0 +34b542c,b +34b542d,c0 +34b542e,d +34b542f,a0 +34b5430,b +34b5431,c0 +34b5432,d +34b5433,a0 +34b5434,b +34b5435,c0 +34b5443,b +34b5444,c0 +34b5452,9 +34b5453,ff +34b5454,c0 +34b5457,b +34b5458,c0 +34b545b,b +34b545c,c0 +34b545f,b +34b5460,c0 +34b5463,b +34b5464,c0 +34b5467,b +34b5468,c0 +34b546a,e +34b546b,ff +34b546c,ff +34b546d,e0 +34b547b,7 +34b547c,e0 +34b548a,7 +34b548b,ff +34b548c,e0 +34b548f,7 +34b5490,e0 +34b5493,7 +34b5494,e0 +34b5497,7 +34b5498,e0 +34b549b,7 +34b549c,e0 +34b549f,7 +34b54a0,e0 +34b54a3,7 +34b54a4,e0 +34b54a7,7 +34b54a8,e0 +34b54ab,1b +34b54ac,d0 +34b54ae,d +34b54af,fe +34b54b0,70 +34b54b2,b +34b54b3,c0 +34b54b6,b +34b54b7,c0 +34b54ba,b +34b54bb,c0 +34b54be,b +34b54bf,c0 +34b54c2,b +34b54c3,c0 +34b54c4,3d +34b54c5,c2 +34b54c6,b +34b54c7,c3 +34b54c8,db +34b54ca,b +34b54cb,dd +34b54cc,c0 +34b54ce,b +34b54cf,fc +34b54d0,e5 +34b54d2,b +34b54d3,d0 +34b54d4,cd +34b54d5,10 +34b54d6,b +34b54d7,c0 +34b54d8,3d +34b54d9,b0 +34b54da,b +34b54db,c0 +34b54dc,7 +34b54dd,e8 +34b54ea,e +34b54eb,ff +34b54ec,40 +34b54ef,5f +34b54f0,40 +34b54f3,5f +34b54f4,40 +34b54f7,5f +34b54f8,40 +34b54fb,5f +34b54fc,40 +34b54ff,5f +34b5500,40 +34b5503,5f +34b5504,40 +34b5507,5f +34b5508,40 +34b550b,4f +34b550c,50 +34b550f,e +34b5510,a0 +34b5513,8 +34b5514,ef +34b5515,b0 +34b5532,8d +34b5533,dd +34b5534,ae +34b5535,c0 +34b5536,8e +34b5537,4d +34b5538,c5 +34b5539,e4 +34b553a,8d +34b553b,c +34b553c,b0 +34b553d,e6 +34b553e,8d +34b553f,b +34b5540,a0 +34b5541,e7 +34b5542,8d +34b5543,b +34b5544,a0 +34b5545,e7 +34b5546,8d +34b5547,b +34b5548,a0 +34b5549,e7 +34b554a,8d +34b554b,b +34b554c,a0 +34b554d,e7 +34b556a,d +34b556b,bd +34b556c,ed +34b556d,40 +34b556e,d +34b556f,e6 +34b5570,5d +34b5571,a0 +34b5572,d +34b5573,b0 +34b5574,b +34b5575,c0 +34b5576,d +34b5577,a0 +34b5578,b +34b5579,c0 +34b557a,d +34b557b,a0 +34b557c,b +34b557d,c0 +34b557e,d +34b557f,a0 +34b5580,b +34b5581,c0 +34b5582,d +34b5583,a0 +34b5584,b +34b5585,c0 +34b55a2,4 +34b55a3,ce +34b55a4,eb +34b55a5,20 +34b55a6,c +34b55a7,d5 +34b55a8,6d +34b55a9,a0 +34b55aa,1e +34b55ab,70 +34b55ac,a +34b55ad,d0 +34b55ae,5f +34b55af,60 +34b55b0,8 +34b55b1,e0 +34b55b2,1e +34b55b3,70 +34b55b4,a +34b55b5,d0 +34b55b6,c +34b55b7,d4 +34b55b8,6d +34b55b9,b0 +34b55ba,4 +34b55bb,ce +34b55bc,eb +34b55bd,20 +34b55da,d +34b55db,bd +34b55dc,ec +34b55dd,30 +34b55de,d +34b55df,e6 +34b55e0,5d +34b55e1,b0 34b55e2,d -34b55e3,a0 -34b55e4,b -34b55e5,c0 +34b55e3,b0 +34b55e4,9 +34b55e5,e0 34b55e6,d 34b55e7,a0 -34b55e8,b -34b55e9,c0 +34b55e8,7 +34b55e9,e0 34b55ea,d -34b55eb,a0 -34b55ec,b -34b55ed,c0 +34b55eb,b0 +34b55ec,8 +34b55ed,e0 34b55ee,d -34b55ef,a0 -34b55f0,b -34b55f1,c0 +34b55ef,e6 +34b55f0,5d +34b55f1,b0 34b55f2,d -34b55f3,a0 -34b55f4,b -34b55f5,c0 -34b55f6,b -34b55f7,d4 -34b55f8,7e -34b55f9,c0 -34b55fa,5 -34b55fb,de -34b55fc,db -34b55fd,c0 -34b561a,6e -34b561b,30 -34b561c,7 -34b561d,e3 -34b561e,d -34b561f,90 +34b55f3,be +34b55f4,ec +34b55f5,40 +34b55f6,d +34b55f7,90 +34b55fa,d +34b55fb,90 +34b55fe,d +34b55ff,90 +34b5612,4 +34b5613,ce +34b5614,dc +34b5615,c0 +34b5616,c +34b5617,c4 +34b5618,7e +34b5619,c0 +34b561a,1e +34b561b,70 +34b561c,c +34b561d,c0 +34b561e,5f +34b561f,60 34b5620,b 34b5621,c0 -34b5622,a -34b5623,d0 -34b5624,1e -34b5625,80 -34b5626,5 -34b5627,e4 -34b5628,8e -34b5629,20 -34b562b,da -34b562c,cb -34b562f,9d -34b5630,e7 -34b5633,3e -34b5634,e0 -34b5652,e8 -34b5655,ac -34b5656,ca -34b5659,ca -34b565a,ac -34b565b,d -34b565c,b0 -34b565d,e7 -34b565e,6e -34b565f,3d -34b5660,d5 -34b5661,e2 -34b5662,e -34b5663,ab -34b5664,ca -34b5665,d0 -34b5666,c -34b5667,e7 -34b5668,9e -34b5669,b0 -34b566a,a -34b566b,e1 -34b566c,5f -34b566d,80 -34b568a,3d -34b568b,a0 -34b568c,b -34b568d,c0 -34b568e,6 -34b568f,e6 -34b5690,9e -34b5691,40 -34b5693,9e -34b5694,e7 -34b5697,2e -34b5698,d0 -34b569b,cc -34b569c,da -34b569e,9 -34b569f,e4 -34b56a0,6e -34b56a1,70 -34b56a2,6e -34b56a3,70 -34b56a4,9 -34b56a5,e4 -34b56c2,6e -34b56c3,50 -34b56c4,5 -34b56c5,e5 -34b56c6,d -34b56c7,a0 -34b56c8,b -34b56c9,d0 -34b56ca,9 -34b56cb,e0 -34b56cc,e -34b56cd,90 -34b56ce,3 -34b56cf,e7 -34b56d0,8e -34b56d1,30 -34b56d3,cc -34b56d4,cc -34b56d7,7e -34b56d8,e7 -34b56db,d -34b56dc,e0 -34b56df,d -34b56e0,a0 -34b56e3,8e -34b56e4,50 -34b56e6,d -34b56e7,ea -34b56fa,b -34b56fb,ff -34b56fc,ff +34b5622,2e +34b5623,70 +34b5624,c +34b5625,c0 +34b5626,c +34b5627,c4 +34b5628,7e +34b5629,c0 +34b562a,5 +34b562b,ce +34b562c,db +34b562d,c0 +34b5630,a +34b5631,c0 +34b5634,a +34b5635,c0 +34b5638,a +34b5639,c0 +34b564b,cc +34b564c,de +34b564d,f9 +34b564f,ce +34b5650,83 +34b5653,cb +34b5657,ca +34b565b,ca +34b565f,ca +34b5663,ca +34b5682,4 +34b5683,ce +34b5684,ea +34b5685,10 +34b5686,b +34b5687,d4 +34b5688,5b +34b5689,60 +34b568a,b +34b568b,d4 +34b568e,3 +34b568f,bd +34b5690,db +34b5691,20 +34b5694,4d +34b5695,a0 +34b5696,b +34b5697,94 +34b5698,5e +34b5699,a0 +34b569a,5 +34b569b,ce +34b569c,eb +34b569d,20 +34b56b3,8e +34b56b7,8e +34b56ba,6f +34b56bb,ff +34b56bc,ff +34b56bd,b0 +34b56bf,8e +34b56c3,8e +34b56c7,8e +34b56cb,8e +34b56cf,6e +34b56d0,70 +34b56d3,b +34b56d4,ef +34b56d5,b0 +34b56f2,d +34b56f3,a0 +34b56f4,b +34b56f5,c0 +34b56f6,d +34b56f7,a0 +34b56f8,b +34b56f9,c0 +34b56fa,d +34b56fb,a0 +34b56fc,b 34b56fd,c0 -34b5700,5e -34b5701,70 -34b5703,3 -34b5704,d9 -34b5707,c -34b5708,b0 -34b570b,bd -34b570c,20 -34b570e,9 -34b570f,e4 -34b5712,d -34b5713,ff -34b5714,ff -34b5715,c0 -34b5723,6 -34b5724,de -34b5725,a0 -34b5727,b -34b5728,d3 -34b572b,c -34b572c,b0 -34b572f,c -34b5730,b0 -34b5733,5e -34b5734,a0 -34b5736,b -34b5737,fd -34b5738,20 -34b573b,7e -34b573c,90 -34b573f,d -34b5740,b0 -34b5743,c -34b5744,b0 -34b5747,c -34b5748,b0 -34b574b,b -34b574c,d4 -34b574f,5 -34b5750,de -34b5751,a0 -34b575b,c -34b575c,a0 -34b575f,c -34b5760,a0 -34b5763,c -34b5764,a0 -34b5767,c -34b5768,a0 -34b576b,c -34b576c,a0 -34b576f,c -34b5770,a0 -34b5773,c -34b5774,a0 -34b5777,c -34b5778,a0 -34b577b,c -34b577c,a0 -34b577f,c -34b5780,a0 -34b5783,c -34b5784,a0 -34b5787,c -34b5788,a0 -34b578b,c -34b578c,a0 -34b5792,b -34b5793,ed -34b5794,30 -34b5797,4e -34b5798,90 -34b579b,d -34b579c,a0 -34b579f,c -34b57a0,a0 -34b57a3,b -34b57a4,c4 -34b57a7,5 -34b57a8,ef -34b57a9,a0 -34b57ab,b -34b57ac,d5 -34b57af,c -34b57b0,b0 -34b57b3,d -34b57b4,a0 -34b57b7,d -34b57b8,a0 -34b57bb,5e -34b57bc,80 -34b57be,b -34b57bf,ec -34b57c0,20 -34b57e2,5d -34b57e3,ed -34b57e4,83 -34b57e5,a7 -34b57e6,98 -34b57e7,38 -34b57e8,de -34b57e9,c3 +34b56fe,d +34b56ff,a0 +34b5700,b +34b5701,c0 +34b5702,d +34b5703,a0 +34b5704,b +34b5705,c0 +34b5706,b +34b5707,d4 +34b5708,7e +34b5709,c0 +34b570a,5 +34b570b,de +34b570c,db +34b570d,c0 +34b572a,6e +34b572b,30 +34b572c,7 +34b572d,e3 +34b572e,d +34b572f,90 +34b5730,b +34b5731,c0 +34b5732,a +34b5733,d0 +34b5734,1e +34b5735,80 +34b5736,5 +34b5737,e4 +34b5738,8e +34b5739,20 +34b573b,da +34b573c,cb +34b573f,9d +34b5740,e7 +34b5743,3e +34b5744,e0 +34b5762,e8 +34b5765,ac +34b5766,ca +34b5769,ca +34b576a,ac +34b576b,d +34b576c,b0 +34b576d,e7 +34b576e,6e +34b576f,3d +34b5770,d5 +34b5771,e2 +34b5772,e +34b5773,ab +34b5774,ca +34b5775,d0 +34b5776,c +34b5777,e7 +34b5778,9e +34b5779,b0 +34b577a,a +34b577b,e1 +34b577c,5f +34b577d,80 +34b579a,3d +34b579b,a0 +34b579c,b +34b579d,c0 +34b579e,6 +34b579f,e6 +34b57a0,9e +34b57a1,40 +34b57a3,9e +34b57a4,e7 +34b57a7,2e +34b57a8,d0 +34b57ab,cc +34b57ac,da +34b57ae,9 +34b57af,e4 +34b57b0,6e +34b57b1,70 +34b57b2,6e +34b57b3,70 +34b57b4,9 +34b57b5,e4 +34b57d2,6e +34b57d3,50 +34b57d4,5 +34b57d5,e5 +34b57d6,d +34b57d7,a0 +34b57d8,b +34b57d9,d0 +34b57da,9 +34b57db,e0 +34b57dc,e +34b57dd,90 +34b57de,3 +34b57df,e7 +34b57e0,8e +34b57e1,30 +34b57e3,cc +34b57e4,cc +34b57e7,7e +34b57e8,e7 +34b57eb,d +34b57ec,e0 +34b57ef,d +34b57f0,a0 +34b57f3,8e +34b57f4,50 +34b57f6,d +34b57f7,ea +34b580a,b +34b580b,ff +34b580c,ff +34b580d,c0 +34b5810,5e +34b5811,70 +34b5813,3 +34b5814,d9 +34b5817,c +34b5818,b0 +34b581b,bd +34b581c,20 +34b581e,9 +34b581f,e4 +34b5822,d +34b5823,ff +34b5824,ff +34b5825,c0 +34b5833,6 +34b5834,de +34b5835,a0 +34b5837,b +34b5838,d3 +34b583b,c +34b583c,b0 +34b583f,c +34b5840,b0 +34b5843,5e +34b5844,a0 +34b5846,b +34b5847,fd +34b5848,20 +34b584b,7e +34b584c,90 +34b584f,d +34b5850,b0 +34b5853,c +34b5854,b0 +34b5857,c +34b5858,b0 +34b585b,b +34b585c,d4 +34b585f,5 +34b5860,de +34b5861,a0 +34b586b,c +34b586c,a0 +34b586f,c +34b5870,a0 +34b5873,c +34b5874,a0 +34b5877,c +34b5878,a0 +34b587b,c +34b587c,a0 +34b587f,c +34b5880,a0 +34b5883,c +34b5884,a0 +34b5887,c +34b5888,a0 +34b588b,c +34b588c,a0 +34b588f,c +34b5890,a0 +34b5893,c +34b5894,a0 +34b5897,c +34b5898,a0 +34b589b,c +34b589c,a0 +34b58a2,b +34b58a3,ed +34b58a4,30 +34b58a7,4e +34b58a8,90 +34b58ab,d +34b58ac,a0 +34b58af,c +34b58b0,a0 +34b58b3,b +34b58b4,c4 +34b58b7,5 +34b58b8,ef +34b58b9,a0 +34b58bb,b +34b58bc,d5 +34b58bf,c +34b58c0,b0 +34b58c3,d +34b58c4,a0 +34b58c7,d +34b58c8,a0 +34b58cb,5e +34b58cc,80 +34b58ce,b +34b58cf,ec +34b58d0,20 +34b58f2,5d +34b58f3,ed +34b58f4,83 +34b58f5,a7 +34b58f6,98 +34b58f7,38 +34b58f8,de +34b58f9,c3 diff --git a/data/symbols.json b/data/symbols.json index e6a7ca874..193ca6049 100644 --- a/data/symbols.json +++ b/data/symbols.json @@ -4,7 +4,7 @@ "EXTENDED_ITEM_DATA": "03482008", "FAIRY_ITEMS": "03481C03", "FAIRY_OCARINA_ITEM": "03481C02", - "FONT_TEXTURE": "034B433A", + "FONT_TEXTURE": "034B444A", "INITIAL_SAVE_DATA": "03481800", "ITEM_OVERRIDES": "03481000", "ITEM_TABLE": "03482050", @@ -14,19 +14,19 @@ "PLAYER_ID": "03481C00", "PLAYER_OVERRIDE_DATA": "03482000", "TIME_TRAVEL_SAVED_EQUIPS": "0348201C", - "cfg_dungeon_info_enable": "034B42FC", - "cfg_dungeon_info_mq_enable": "034B4310", - "cfg_dungeon_info_mq_need_compass": "034B430C", - "cfg_dungeon_info_reward_need_map": "034B4308", - "cfg_dungeon_is_mq": "034B432C", - "cfg_dungeon_rewards": "034B423C", - "dungeon_count": "034B4300", - "dungeons": "034B4260", - "font_sprite": "034B41FC", - "heap_next": "034B4304", - "medal_colors": "034B424C", - "medals_sprite": "034B421C", - "quest_items_sprite": "034B420C", - "setup_db": "034B431C", - "stones_sprite": "034B422C" + "cfg_dungeon_info_enable": "034B440C", + "cfg_dungeon_info_mq_enable": "034B4420", + "cfg_dungeon_info_mq_need_compass": "034B441C", + "cfg_dungeon_info_reward_need_map": "034B4418", + "cfg_dungeon_is_mq": "034B443C", + "cfg_dungeon_rewards": "034B434C", + "dungeon_count": "034B4410", + "dungeons": "034B4370", + "font_sprite": "034B430C", + "heap_next": "034B4414", + "medal_colors": "034B435C", + "medals_sprite": "034B432C", + "quest_items_sprite": "034B431C", + "setup_db": "034B442C", + "stones_sprite": "034B433C" } \ No newline at end of file From 0ccb136699891e83593dbe58999305c6f5541b67 Mon Sep 17 00:00:00 2001 From: Nick Langille Date: Sun, 16 Sep 2018 07:04:58 -0400 Subject: [PATCH 514/755] Add gerudo card to dungeon info display --- ASM/build/asm_symbols.txt | 86 +- ASM/build/bundle.o | Bin 9744 -> 10028 bytes ASM/build/c_symbols.txt | 20 +- ASM/c/dungeon_info.c | 21 +- ASM/c/gfx.c | 4 +- data/rom_patch.txt | 10003 ++++++++++++++++++------------------ data/symbols.json | 32 +- 7 files changed, 5169 insertions(+), 4997 deletions(-) diff --git a/ASM/build/asm_symbols.txt b/ASM/build/asm_symbols.txt index 27f6f5b19..04910ae77 100644 --- a/ASM/build/asm_symbols.txt +++ b/ASM/build/asm_symbols.txt @@ -991,49 +991,49 @@ 80405070 sprite_load,0000024C 804052BC sprite_draw,000000E8 804053A4 draw_setup,000001DC -80405580 gfx_init,0000014C -804056CC heap_init,00000014 -804056E0 heap_alloc,00000034 -80405714 file_init,00000044 -80405758 c_init,0000002C -80405784 overlay_swap,000000B4 -80405838 draw_dungeon_info,000008AC -804060E4 text_init,0000002C -80406110 text_print,000000A8 -804061B8 text_flush,00000148 -8040630C .byt:0010 -8040630C font_sprite -8040631C .byt:0010 -8040631C quest_items_sprite -8040632C .byt:0010 -8040632C medals_sprite -8040633C .byt:0010 -8040633C stones_sprite -8040634C .byt:000E -8040634C cfg_dungeon_rewards -8040635C .byt:0012 -8040635C medal_colors -80406370 .byt:009C -80406370 dungeons -8040640C .byt:0004 -8040640C cfg_dungeon_info_enable -80406410 .byt:0004 -80406410 dungeon_count -80406414 .byt:0004 -80406414 heap_next -80406418 .byt:0004 -80406418 cfg_dungeon_info_reward_need_map -8040641C .byt:0004 -8040641C cfg_dungeon_info_mq_need_compass -80406420 .byt:0004 -80406420 cfg_dungeon_info_mq_enable -8040642C .byt:0010 -8040642C setup_db -8040643C .byt:000E -8040643C cfg_dungeon_is_mq -8040644A .byt:14C8 -8040644A FONT_TEXTURE -80407912 .byt:86EE +80405580 gfx_init,00000148 +804056C8 heap_init,00000014 +804056DC heap_alloc,00000034 +80405710 file_init,00000044 +80405754 c_init,0000002C +80405780 overlay_swap,000000B4 +80405834 draw_dungeon_info,0000096C +804061A0 text_init,0000002C +804061CC text_print,000000A8 +80406274 text_flush,00000148 +804063C8 .byt:0010 +804063C8 font_sprite +804063D8 .byt:0010 +804063D8 quest_items_sprite +804063E8 .byt:0010 +804063E8 medals_sprite +804063F8 .byt:0010 +804063F8 stones_sprite +80406408 .byt:000E +80406408 cfg_dungeon_rewards +80406418 .byt:0012 +80406418 medal_colors +8040642C .byt:009C +8040642C dungeons +804064C8 .byt:0004 +804064C8 cfg_dungeon_info_enable +804064CC .byt:0004 +804064CC dungeon_count +804064D0 .byt:0004 +804064D0 heap_next +804064D4 .byt:0004 +804064D4 cfg_dungeon_info_reward_need_map +804064D8 .byt:0004 +804064D8 cfg_dungeon_info_mq_need_compass +804064DC .byt:0004 +804064DC cfg_dungeon_info_mq_enable +804064E8 .byt:0010 +804064E8 setup_db +804064F8 .byt:000E +804064F8 cfg_dungeon_is_mq +80406506 .byt:14C8 +80406506 FONT_TEXTURE +804079CE .byt:8632 80480000 DUMMY_ACTOR 80500000 C_HEAP  \ No newline at end of file diff --git a/ASM/build/bundle.o b/ASM/build/bundle.o index 407677d65697036f66a03a870e8ee4a877cbada5..d423b01e3f698248f75f139f0f2999303bf27eb8 100644 GIT binary patch delta 2029 zcmX|BJxp6?6us{O_QUW0VSWN80b{#PLWPr}$OBSb!eFUsOCnTdU_cc^R53&qQahwI zs*uWnQn$}ThDxO^RT(^_G6MrchYYByR1c`ifU2ls$dDleLxxD{x$oW-2_2vByZ4-P zub*G@X8VI?-YhKtR;Z>jb0*O@KU1!Kqw`7XUDNoe)3#olMyu1deZvUj6>ofacq5#P zh)TDK3R&tS+A5m0y<&Xkd~1J3Q6Wu6Aw^!?baTB-;z#aa-+7|9{)zu^KX%Ng)gn=) z*zACLTC)Z_JY?}dNjeoyX=AJMfGchAijN8gQJH-b)W^lP(mMwG*j z`(6Q4M5$h^0skqBsK`7Z8fRWsULm@G`V^cl@O@p+VN~Sv73Evn*Cd+a^M^pL|6Z|; zZx_0a6e7OE1zjK)JRzE4M6em0ry-p1BjwmF^Ynxmq?d`VKq$RRRAyWw8U|YUKhKyY zy2yyY*Pv%rf#|ntNw5Z4>ypUYCc4T6NPLwGkd!B~c4Q)JU-^OXegqxGeg6p%_5G(r zlQ8OkPBg~nFMxdhis&+U27_D%&tQNG^8lD?-~$p)^T7y^8(xZVCMUufi)e`N%Rm-@ z(FBY#1u@E~k&XI1>TGN#k2-r=0@;|H1KCvxWG_e{yAEt{;gTe>?{Fe;tR@j!R-r`+ zVBeDf_OS%8*Hrka3L`jAYV*XVJAMg(93XI%}>)L={MT=cMkiw&@z3q#g(u{qXrD_VyDNnMQ^iJ-e6f-VQ( zMg&M2k7QC8o8SrDV{Lq{buY9IK@tN@&UGG1ofk-8FDv?9PWn6!h+y6}zJLBMJtR#U zA8O;i79MEfp%{3NwGP2}0@Q4His`fscS}5LCq=sLQV@xGBG;U`g-q=>3Z5HiA_V4%Ue-vB2j* zOcLD3Ynb^4kU0`Z%n>+Zeh+Va<}D!erU(XY(F=R!*$A^@9FB-_SSA|5UAULLKN=K1 z!b<}};XV*T;em2Yl<+6YPn4f3eLU)oLTrd21B-l}D8^C6gx=rOic{;a0rNup4g*v;kw;__$aanmQsPtp5K$ HgFpQTT~zK- delta 1815 zcmX|CJ#1TL6us}&wO{=HU6ZE9P}g~OQ)<*uD#&1|0Tn3%gDS+}p@W4Ylz|~a88VbU zhDvmZgyHMJPzi%Nc<@kUh71`xWXKSS3>`dFB147@86wdkgC#ik-K$zkPR{-AJ?Grd z&(7$Jey3lz=a>IXmh!<*e^52~_yM)g5skhcf0O^nwwmLi^Pg?4nqIMLcHMuibEX>3 z)w;{nYCfP+yF}Fdk|-(Dd7?)RdwJMsU;H69C*IF4&XWRJM2ig`G6O%C!%$+D!Vk?q z{wHQToR1GN?s1h{lRVjI{oAs}Ct+w?lkqhE+_rM#Ps<0ndUQlYEjS_{eMb~;6ImuqqB-%c?VnOfF4nUd70=f<}Ky7h%R$KtS<9;N9*WmaD7$zmd-sUn&h!o#-Oa z!6I)n&JkT>MBopg=d^*CckX1tQgSvWk<%x-$qh(+lN*qfH*%iJM$WeK9pN(wTEY3u zArSpD$3$0PG;>PyCf8p9Q7;nFb?_q2t~191i_FWwe2PDiu*HQckcFlqT&#(3(IcAW z^A?Z=U{r%xaY2lVYUHB7jy^X5qR(BFKrS}tKyF(CxhoRL?Eq75>`Ef{9w!37qe49u z`bq-08xp{sNC02{~CX z5`$n*41#?%K#@_P&5@DV5>^!A- zsD+UZAYnEDV}3YGWx4v813;+6hFpIvR~u`f(m?CawGTIw_3bI&7fyIxv+=8j?{0hC zoi~<6<|L`-s}G6J4^6pIw=b-jrAE`fuwi6+7KbGDBC2$^5M@ZXB)f0)_UGXMYp diff --git a/ASM/build/c_symbols.txt b/ASM/build/c_symbols.txt index b87ef0522..6839cc325 100644 --- a/ASM/build/c_symbols.txt +++ b/ASM/build/c_symbols.txt @@ -24,14 +24,14 @@ SYMBOL TABLE: 00000014 l O .sbss 00000004 text_buf 00000010 l O .sbss 00000004 text_end 00000004 g O .sbss 00000004 cfg_dungeon_info_reward_need_map -000010e4 g F .text 0000002c text_init -000011b8 g F .text 00000148 text_flush -00000784 g F .text 000000b4 overlay_swap +000011a0 g F .text 0000002c text_init +00001274 g F .text 00000148 text_flush +00000780 g F .text 000000b4 overlay_swap 00000020 g O .data 00000010 medals_sprite 00000004 g O .sdata 00000004 dungeon_count 00000010 g O .data 00000010 quest_items_sprite -000006e0 g F .text 00000034 heap_alloc -00000838 g F .text 000008ac draw_dungeon_info +000006dc g F .text 00000034 heap_alloc +00000834 g F .text 0000096c draw_dungeon_info 00000000 *UND* 00000000 FONT_TEXTURE 000002bc g F .text 000000e8 sprite_draw 00000070 g F .text 0000024c sprite_load @@ -41,20 +41,20 @@ SYMBOL TABLE: 00000000 g O .data 00000010 font_sprite 00000040 g F .text 00000030 sprite_bytes 00000008 g O .sbss 00000004 cfg_dungeon_info_mq_need_compass -00000580 g F .text 0000014c gfx_init +00000580 g F .text 00000148 gfx_init 00000000 g F .text 00000018 disp_buf_init 00000010 g O .bss 0000000e cfg_dungeon_is_mq 00000064 g O .data 0000009c dungeons 00000050 g O .data 00000012 medal_colors -00001110 g F .text 000000a8 text_print -00000758 g F .text 0000002c c_init +000011cc g F .text 000000a8 text_print +00000754 g F .text 0000002c c_init 00000000 g O .sbss 00000004 heap_next 00000040 g O .data 0000000e cfg_dungeon_rewards -000006cc g F .text 00000014 heap_init +000006c8 g F .text 00000014 heap_init 0000000c g O .sbss 00000004 cfg_dungeon_info_mq_enable 00000000 *UND* 00000000 C_HEAP 00000018 g F .text 00000028 sprite_bytes_per_tile -00000714 g F .text 00000044 file_init +00000710 g F .text 00000044 file_init 00000000 g O .sdata 00000004 cfg_dungeon_info_enable diff --git a/ASM/c/dungeon_info.c b/ASM/c/dungeon_info.c index 9a49eaa82..4dc907f91 100644 --- a/ASM/c/dungeon_info.c +++ b/ASM/c/dungeon_info.c @@ -157,7 +157,7 @@ void draw_dungeon_info(z64_disp_buf_t *db) { // Draw key counts - sprite_load(db, &quest_items_sprite, 3, 1); + sprite_load(db, &quest_items_sprite, 17, 1); for (int i = 0; i < dungeon_count; i++) { dungeon_entry_t *d = &(dungeons[i]); @@ -177,7 +177,7 @@ void draw_dungeon_info(z64_disp_buf_t *db) { // Draw boss keys - sprite_load(db, &quest_items_sprite, 0, 1); + sprite_load(db, &quest_items_sprite, 14, 1); for (int i = 0; i < dungeon_count; i++) { dungeon_entry_t *d = &(dungeons[i]); @@ -188,6 +188,19 @@ void draw_dungeon_info(z64_disp_buf_t *db) { } } + // Draw gerudo card + + sprite_load(db, &quest_items_sprite, 10, 1); + + for (int i = 0; i < dungeon_count; i++) { + dungeon_entry_t *d = &(dungeons[i]); + if (d->has_card && z64_file.gerudos_card) { + int top = start_top + ((icon_size + padding) * i); + sprite_draw(db, &quest_items_sprite, 0, + left, top, icon_size, icon_size); + } + } + left += icon_size + padding; // Draw maps and compasses @@ -196,7 +209,7 @@ void draw_dungeon_info(z64_disp_buf_t *db) { if (draw_maps_and_compasses) { // Draw maps - sprite_load(db, &quest_items_sprite, 2, 1); + sprite_load(db, &quest_items_sprite, 16, 1); for (int i = 0; i < dungeon_count; i++) { dungeon_entry_t *d = &(dungeons[i]); @@ -211,7 +224,7 @@ void draw_dungeon_info(z64_disp_buf_t *db) { // Draw compasses - sprite_load(db, &quest_items_sprite, 1, 1); + sprite_load(db, &quest_items_sprite, 15, 1); for (int i = 0; i < dungeon_count; i++) { dungeon_entry_t *d = &(dungeons[i]); diff --git a/ASM/c/gfx.c b/ASM/c/gfx.c index 3c251512e..37b800b0e 100644 --- a/ASM/c/gfx.c +++ b/ASM/c/gfx.c @@ -21,7 +21,7 @@ sprite_t medals_sprite = { }; sprite_t quest_items_sprite = { - NULL, 24, 24, 4, + NULL, 24, 24, 18, G_IM_FMT_RGBA, G_IM_SIZ_32b, 4 }; @@ -106,7 +106,7 @@ void gfx_init() { stones_sprite.buf = title_static.buf + 0x2A300; medals_sprite.buf = title_static.buf + 0x2980; - quest_items_sprite.buf = icon_item_24_static.buf + 0x7E00; + quest_items_sprite.buf = icon_item_24_static.buf; int font_bytes = sprite_bytes(&font_sprite); font_sprite.buf = heap_alloc(font_bytes); diff --git a/data/rom_patch.txt b/data/rom_patch.txt index 8413b3cd5..a28bbdca2 100644 --- a/data/rom_patch.txt +++ b/data/rom_patch.txt @@ -468,7 +468,7 @@ b06c31,28 b06c33,20 b17129,10 b1712a,15 -b1712b,e1 +b1712b,e0 b17bb4,af b17bb5,bf b17bb6,0 @@ -1029,7 +1029,7 @@ ec9ce7,7a 3480024,c 3480025,10 3480026,15 -3480027,d6 +3480027,d5 348002c,3c 348002d,2 348002e,80 @@ -6454,7 +6454,7 @@ ec9ce7,7a 34b35ac,c 34b35ad,10 34b35ae,15 -34b35af,c5 +34b35af,c4 34b35b0,27 34b35b1,a4 34b35b3,10 @@ -6479,7 +6479,7 @@ ec9ce7,7a 34b35cc,c 34b35cd,10 34b35ce,15 -34b35cf,c5 +34b35cf,c4 34b35d0,27 34b35d1,a4 34b35d3,1c @@ -6499,7 +6499,7 @@ ec9ce7,7a 34b35e4,ac 34b35e5,70 34b35e6,63 -34b35e7,3c +34b35e7,f8 34b35e8,24 34b35e9,42 34b35ea,29 @@ -6511,5114 +6511,5273 @@ ec9ce7,7a 34b35f0,ac 34b35f1,62 34b35f2,63 -34b35f3,2c -34b35f4,8f -34b35f5,a2 -34b35f7,1c -34b35f8,24 -34b35f9,42 -34b35fa,7e -34b35fc,3c -34b35fd,3 -34b35fe,80 -34b35ff,40 -34b3600,ac -34b3601,62 -34b3602,63 -34b3603,1c -34b3604,3c -34b3605,11 -34b3606,80 -34b3607,40 -34b3608,c -34b3609,10 -34b360a,14 -34b360b,10 -34b360c,26 -34b360d,24 -34b360e,63 -34b360f,c -34b3611,40 -34b3612,80 -34b3613,25 -34b3614,c -34b3615,10 -34b3616,15 -34b3617,b8 -34b3619,40 -34b361a,20 -34b361b,25 -34b361d,10 -34b361e,4f -34b361f,c2 -34b3620,1 -34b3621,30 -34b3622,48 -34b3623,21 -34b3624,2a -34b3625,10 -34b3627,2 -34b3628,16 -34b362b,18 -34b362c,ae -34b362d,22 -34b362e,63 -34b362f,c -34b3631,9 -34b3632,48 -34b3633,43 -34b3634,3c -34b3635,3 -34b3636,80 -34b3637,40 -34b3638,24 -34b3639,63 -34b363a,64 -34b363b,4a -34b363e,20 +34b35f3,e8 +34b35f4,3c +34b35f5,2 +34b35f6,80 +34b35f7,40 +34b35f8,8f +34b35f9,a3 +34b35fb,1c +34b35fc,ac +34b35fd,43 +34b35fe,63 +34b35ff,d8 +34b3600,3c +34b3601,11 +34b3602,80 +34b3603,40 +34b3604,c +34b3605,10 +34b3606,14 +34b3607,10 +34b3608,26 +34b3609,24 +34b360a,63 +34b360b,c8 +34b360d,40 +34b360e,80 +34b360f,25 +34b3610,c +34b3611,10 +34b3612,15 +34b3613,b7 +34b3615,40 +34b3616,20 +34b3617,25 +34b3619,10 +34b361a,4f +34b361b,c2 +34b361c,1 +34b361d,30 +34b361e,48 +34b361f,21 +34b3620,2a +34b3621,10 +34b3623,2 +34b3624,16 +34b3627,18 +34b3628,ae +34b3629,22 +34b362a,63 +34b362b,c8 +34b362d,9 +34b362e,48 +34b362f,43 +34b3630,3c +34b3631,3 +34b3632,80 +34b3633,40 +34b3634,24 +34b3635,63 +34b3636,65 +34b3637,6 +34b363a,20 +34b363b,25 +34b363e,30 34b363f,25 -34b3642,30 +34b3640,2 +34b3641,20 +34b3642,40 34b3643,25 -34b3644,2 -34b3645,20 -34b3646,40 -34b3647,25 -34b3648,24 -34b3649,7 -34b364a,ff -34b364b,f0 -34b364c,8d -34b364d,5 -34b364e,63 -34b364f,c -34b3651,a4 -34b3652,28 -34b3653,21 -34b3654,90 -34b3655,62 -34b3659,2 -34b365a,11 -34b365b,2 -34b365d,47 -34b365e,10 -34b365f,25 -34b3660,a0 -34b3661,a2 -34b3664,8d -34b3665,2 -34b3666,63 -34b3667,c -34b3669,44 -34b366a,10 -34b366b,21 -34b366c,90 -34b366d,65 -34b3671,a7 -34b3672,28 -34b3673,25 -34b3674,a0 -34b3675,45 +34b3644,24 +34b3645,7 +34b3646,ff +34b3647,f0 +34b3648,8d +34b3649,5 +34b364a,63 +34b364b,c8 +34b364d,a4 +34b364e,28 +34b364f,21 +34b3650,90 +34b3651,62 +34b3655,2 +34b3656,11 +34b3657,2 +34b3659,47 +34b365a,10 +34b365b,25 +34b365c,a0 +34b365d,a2 +34b3660,8d +34b3661,2 +34b3662,63 +34b3663,c8 +34b3665,44 +34b3666,10 +34b3667,21 +34b3668,90 +34b3669,65 +34b366d,a7 +34b366e,28 +34b366f,25 +34b3670,a0 +34b3671,45 +34b3673,1 +34b3674,24 +34b3675,c6 34b3677,1 34b3678,24 -34b3679,c6 +34b3679,63 34b367b,1 -34b367c,24 -34b367d,63 -34b367f,1 -34b3681,c9 -34b3682,10 -34b3683,2a -34b3684,14 -34b3685,40 -34b3686,ff -34b3687,f1 -34b3688,24 -34b3689,84 -34b368b,2 -34b368c,c -34b368d,10 -34b368e,15 -34b368f,b8 -34b3690,24 +34b367d,c9 +34b367e,10 +34b367f,2a +34b3680,14 +34b3681,40 +34b3682,ff +34b3683,f1 +34b3684,24 +34b3685,84 +34b3687,2 +34b3688,c +34b3689,10 +34b368a,15 +34b368b,b7 +34b368c,24 +34b368d,4 +34b368e,1 +34b3690,3c 34b3691,4 -34b3692,1 -34b3694,3c -34b3695,4 -34b3696,80 -34b3697,40 -34b3698,24 -34b3699,3 -34b369a,1 -34b369c,ac -34b369d,83 +34b3692,80 +34b3693,40 +34b3694,24 +34b3695,3 +34b3696,1 +34b3698,ac +34b3699,83 +34b369a,64 +34b369b,e8 +34b369c,24 +34b369d,84 34b369e,64 -34b369f,2c -34b36a0,24 -34b36a1,84 -34b36a2,64 -34b36a3,2c +34b369f,e8 +34b36a0,ac +34b36a1,82 +34b36a3,4 34b36a4,ac 34b36a5,82 -34b36a7,4 -34b36a8,ac -34b36a9,82 -34b36ab,8 -34b36ac,24 -34b36ad,42 -34b36ae,1 -34b36b0,c -34b36b1,10 -34b36b2,14 -34b36b3,e9 -34b36b4,ac -34b36b5,82 -34b36b7,c +34b36a7,8 +34b36a8,24 +34b36a9,42 +34b36aa,1 +34b36ac,c +34b36ad,10 +34b36ae,14 +34b36af,e9 +34b36b0,ac +34b36b1,82 +34b36b3,c +34b36b4,8f +34b36b5,bf +34b36b7,34 34b36b8,8f -34b36b9,bf -34b36bb,34 +34b36b9,b1 +34b36bb,30 34b36bc,8f -34b36bd,b1 -34b36bf,30 -34b36c0,8f -34b36c1,b0 -34b36c3,2c -34b36c4,3 -34b36c5,e0 -34b36c7,8 -34b36c8,27 -34b36c9,bd -34b36cb,38 +34b36bd,b0 +34b36bf,2c +34b36c0,3 +34b36c1,e0 +34b36c3,8 +34b36c4,27 +34b36c5,bd +34b36c7,38 +34b36c8,3c +34b36c9,3 +34b36ca,80 +34b36cb,40 34b36cc,3c -34b36cd,3 +34b36cd,2 34b36ce,80 -34b36cf,40 -34b36d0,3c -34b36d1,2 -34b36d2,80 -34b36d3,50 -34b36d4,24 -34b36d5,42 -34b36d8,3 -34b36d9,e0 -34b36db,8 -34b36dc,ac -34b36dd,62 -34b36de,64 -34b36df,14 -34b36e1,4 -34b36e2,17 -34b36e3,c3 -34b36e5,2 -34b36e6,1f -34b36e7,2 -34b36e9,83 -34b36ea,10 -34b36eb,21 -34b36ec,30 -34b36ed,42 -34b36ef,f -34b36f1,43 -34b36f2,10 -34b36f3,23 -34b36f4,10 -34b36f5,40 -34b36f7,3 -34b36f8,3c -34b36f9,3 -34b36fa,80 -34b36fb,40 -34b36fd,82 -34b36fe,20 -34b36ff,23 -34b3700,24 -34b3701,84 -34b3703,10 -34b3704,8c -34b3705,62 -34b3706,64 -34b3707,14 -34b3709,44 -34b370a,20 -34b370b,21 -34b370c,3 -34b370d,e0 -34b370f,8 -34b3710,ac -34b3711,64 -34b3712,64 -34b3713,14 -34b3714,27 -34b3715,bd -34b3716,ff -34b3717,e8 +34b36cf,50 +34b36d0,24 +34b36d1,42 +34b36d4,3 +34b36d5,e0 +34b36d7,8 +34b36d8,ac +34b36d9,62 +34b36da,64 +34b36db,d0 +34b36dd,4 +34b36de,17 +34b36df,c3 +34b36e1,2 +34b36e2,1f +34b36e3,2 +34b36e5,83 +34b36e6,10 +34b36e7,21 +34b36e8,30 +34b36e9,42 +34b36eb,f +34b36ed,43 +34b36ee,10 +34b36ef,23 +34b36f0,10 +34b36f1,40 +34b36f3,3 +34b36f4,3c +34b36f5,3 +34b36f6,80 +34b36f7,40 +34b36f9,82 +34b36fa,20 +34b36fb,23 +34b36fc,24 +34b36fd,84 +34b36ff,10 +34b3700,8c +34b3701,62 +34b3702,64 +34b3703,d0 +34b3705,44 +34b3706,20 +34b3707,21 +34b3708,3 +34b3709,e0 +34b370b,8 +34b370c,ac +34b370d,64 +34b370e,64 +34b370f,d0 +34b3710,27 +34b3711,bd +34b3712,ff +34b3713,e8 +34b3714,af +34b3715,bf +34b3717,14 34b3718,af -34b3719,bf -34b371b,14 -34b371c,af -34b371d,b0 -34b371f,10 -34b3721,80 -34b3722,80 -34b3723,25 -34b3724,c -34b3725,10 -34b3726,15 -34b3727,b8 -34b3728,8c -34b3729,84 -34b372b,8 -34b372c,ae -34b372d,2 -34b3730,8e -34b3731,6 -34b3733,8 -34b3735,40 -34b3736,20 -34b3737,25 -34b3738,3c -34b3739,2 -34b373a,80 -34b373c,24 -34b373d,42 -34b373e,d -34b373f,f0 -34b3741,40 -34b3742,f8 -34b3743,9 -34b3744,8e -34b3745,5 -34b3747,4 +34b3719,b0 +34b371b,10 +34b371d,80 +34b371e,80 +34b371f,25 +34b3720,c +34b3721,10 +34b3722,15 +34b3723,b7 +34b3724,8c +34b3725,84 +34b3727,8 +34b3728,ae +34b3729,2 +34b372c,8e +34b372d,6 +34b372f,8 +34b3731,40 +34b3732,20 +34b3733,25 +34b3734,3c +34b3735,2 +34b3736,80 +34b3738,24 +34b3739,42 +34b373a,d +34b373b,f0 +34b373d,40 +34b373e,f8 +34b373f,9 +34b3740,8e +34b3741,5 +34b3743,4 +34b3744,8f +34b3745,bf +34b3747,14 34b3748,8f -34b3749,bf -34b374b,14 -34b374c,8f -34b374d,b0 -34b374f,10 -34b3750,3 -34b3751,e0 -34b3753,8 +34b3749,b0 +34b374b,10 +34b374c,3 +34b374d,e0 +34b374f,8 +34b3750,27 +34b3751,bd +34b3753,18 34b3754,27 34b3755,bd -34b3757,18 -34b3758,27 -34b3759,bd -34b375a,ff -34b375b,e8 -34b375c,af -34b375d,bf -34b375f,14 -34b3760,c -34b3761,10 -34b3762,15 -34b3763,b3 -34b3768,c -34b3769,10 -34b376a,15 -34b376b,60 -34b3770,c -34b3771,10 -34b3772,18 -34b3773,39 -34b3778,8f -34b3779,bf -34b377b,14 -34b377c,3 -34b377d,e0 -34b377f,8 +34b3756,ff +34b3757,e8 +34b3758,af +34b3759,bf +34b375b,14 +34b375c,c +34b375d,10 +34b375e,15 +34b375f,b2 +34b3764,c +34b3765,10 +34b3766,15 +34b3767,60 +34b376c,c +34b376d,10 +34b376e,18 +34b376f,68 +34b3774,8f +34b3775,bf +34b3777,14 +34b3778,3 +34b3779,e0 +34b377b,8 +34b377c,27 +34b377d,bd +34b377f,18 34b3780,27 34b3781,bd -34b3783,18 -34b3784,27 -34b3785,bd -34b3786,ff -34b3787,e0 +34b3782,ff +34b3783,e0 +34b3784,af +34b3785,bf +34b3787,1c 34b3788,af -34b3789,bf -34b378b,1c +34b3789,b2 +34b378b,18 34b378c,af -34b378d,b2 -34b378f,18 +34b378d,b1 +34b378f,14 34b3790,af -34b3791,b1 -34b3793,14 -34b3794,af -34b3795,b0 -34b3797,10 -34b3799,80 -34b379a,80 +34b3791,b0 +34b3793,10 +34b3795,80 +34b3796,80 +34b3797,25 +34b3799,a0 +34b379a,88 34b379b,25 -34b379d,a0 -34b379e,88 -34b379f,25 -34b37a0,3c -34b37a1,2 -34b37a2,80 -34b37a3,1c -34b37a4,34 -34b37a5,42 -34b37a6,84 -34b37a7,a0 -34b37a8,3c -34b37a9,3 -34b37ab,1 +34b379c,3c +34b379d,2 +34b379e,80 +34b379f,1c +34b37a0,34 +34b37a1,42 +34b37a2,84 +34b37a3,a0 +34b37a4,3c +34b37a5,3 +34b37a7,1 +34b37a9,43 +34b37aa,10 +34b37ab,21 +34b37ac,94 34b37ad,43 -34b37ae,10 -34b37af,21 -34b37b0,94 -34b37b1,43 -34b37b2,9 -34b37b3,34 -34b37b4,24 -34b37b5,2 -34b37b7,6 -34b37b8,14 -34b37b9,62 -34b37bb,15 -34b37bd,c0 -34b37be,90 -34b37bf,25 -34b37c0,3c -34b37c1,2 -34b37c2,80 -34b37c3,1c -34b37c4,34 -34b37c5,42 -34b37c6,84 -34b37c7,a0 -34b37c8,3c -34b37c9,3 -34b37cb,1 -34b37cd,43 -34b37ce,10 -34b37cf,21 -34b37d0,94 -34b37d1,42 -34b37d2,9 -34b37d3,48 -34b37d4,14 +34b37ae,9 +34b37af,34 +34b37b0,24 +34b37b1,2 +34b37b3,6 +34b37b4,14 +34b37b5,62 +34b37b7,15 +34b37b9,c0 +34b37ba,90 +34b37bb,25 +34b37bc,3c +34b37bd,2 +34b37be,80 +34b37bf,1c +34b37c0,34 +34b37c1,42 +34b37c2,84 +34b37c3,a0 +34b37c4,3c +34b37c5,3 +34b37c7,1 +34b37c9,43 +34b37ca,10 +34b37cb,21 +34b37cc,94 +34b37cd,42 +34b37ce,9 +34b37cf,48 +34b37d0,14 +34b37d1,40 +34b37d3,f +34b37d4,2 34b37d5,40 -34b37d7,f -34b37d8,2 -34b37d9,40 -34b37da,30 -34b37db,25 -34b37dc,3c -34b37dd,2 -34b37de,80 -34b37df,1c -34b37e0,34 -34b37e1,42 -34b37e2,84 -34b37e3,a0 -34b37e5,43 -34b37e6,10 -34b37e7,21 -34b37e8,94 -34b37e9,42 -34b37ea,9 -34b37eb,44 -34b37ec,14 -34b37ed,40 -34b37ef,a -34b37f0,2 -34b37f1,20 -34b37f2,28 -34b37f3,25 -34b37f4,3c -34b37f5,2 -34b37f6,80 -34b37f7,1c -34b37f8,34 +34b37d6,30 +34b37d7,25 +34b37d8,3c +34b37d9,2 +34b37da,80 +34b37db,1c +34b37dc,34 +34b37dd,42 +34b37de,84 +34b37df,a0 +34b37e1,43 +34b37e2,10 +34b37e3,21 +34b37e4,94 +34b37e5,42 +34b37e6,9 +34b37e7,44 +34b37e8,14 +34b37e9,40 +34b37eb,a +34b37ec,2 +34b37ed,20 +34b37ee,28 +34b37ef,25 +34b37f0,3c +34b37f1,2 +34b37f2,80 +34b37f3,1c +34b37f4,34 +34b37f5,42 +34b37f6,84 +34b37f7,a0 +34b37f8,84 34b37f9,42 -34b37fa,84 -34b37fb,a0 -34b37fc,84 -34b37fd,42 -34b37ff,14 -34b3800,4 -34b3801,41 -34b3803,5 -34b3808,c -34b3809,10 -34b380a,16 -34b380b,e +34b37fb,14 +34b37fc,4 +34b37fd,41 +34b37ff,5 +34b3804,c +34b3805,10 +34b3806,16 +34b3807,d +34b380c,2 +34b380d,40 +34b380e,30 +34b380f,25 34b3810,2 -34b3811,40 -34b3812,30 +34b3811,20 +34b3812,28 34b3813,25 -34b3814,2 -34b3815,20 -34b3816,28 -34b3817,25 -34b3818,c -34b3819,10 -34b381a,14 -34b381c,2 -34b381e,20 -34b381f,25 +34b3814,c +34b3815,10 +34b3816,14 +34b3818,2 +34b381a,20 +34b381b,25 +34b381c,8f +34b381d,bf +34b381f,1c 34b3820,8f -34b3821,bf -34b3823,1c +34b3821,b2 +34b3823,18 34b3824,8f -34b3825,b2 -34b3827,18 +34b3825,b1 +34b3827,14 34b3828,8f -34b3829,b1 -34b382b,14 -34b382c,8f -34b382d,b0 -34b382f,10 -34b3830,3 -34b3831,e0 -34b3833,8 -34b3834,27 -34b3835,bd -34b3837,20 -34b3838,3c -34b3839,2 -34b383a,80 -34b383b,40 -34b383c,8c -34b383d,42 -34b383e,64 -34b383f,c -34b3840,10 -34b3841,40 -34b3842,2 -34b3843,26 -34b3844,3c -34b3845,3 -34b3846,80 -34b3847,40 -34b3848,27 -34b3849,bd -34b384a,ff -34b384b,98 +34b3829,b0 +34b382b,10 +34b382c,3 +34b382d,e0 +34b382f,8 +34b3830,27 +34b3831,bd +34b3833,20 +34b3834,3c +34b3835,2 +34b3836,80 +34b3837,40 +34b3838,8c +34b3839,42 +34b383a,64 +34b383b,c8 +34b383c,10 +34b383d,40 +34b383e,2 +34b383f,56 +34b3840,3c +34b3841,3 +34b3842,80 +34b3843,40 +34b3844,27 +34b3845,bd +34b3846,ff +34b3847,98 +34b3848,af +34b3849,bf +34b384b,64 34b384c,af -34b384d,bf -34b384f,64 +34b384d,be +34b384f,60 34b3850,af -34b3851,be -34b3853,60 +34b3851,b7 +34b3853,5c 34b3854,af -34b3855,b7 -34b3857,5c +34b3855,b6 +34b3857,58 34b3858,af -34b3859,b6 -34b385b,58 +34b3859,b5 +34b385b,54 34b385c,af -34b385d,b5 -34b385f,54 +34b385d,b4 +34b385f,50 34b3860,af -34b3861,b4 -34b3863,50 +34b3861,b3 +34b3863,4c 34b3864,af -34b3865,b3 -34b3867,4c +34b3865,b2 +34b3867,48 34b3868,af -34b3869,b2 -34b386b,48 +34b3869,b1 +34b386b,44 34b386c,af -34b386d,b1 -34b386f,44 -34b3870,af -34b3871,b0 -34b3873,40 +34b386d,b0 +34b386f,40 +34b3870,8c +34b3871,82 +34b3873,4 34b3874,8c -34b3875,82 -34b3877,4 -34b3878,8c -34b3879,63 -34b387a,64 -34b387b,30 -34b387c,24 -34b387d,45 +34b3875,63 +34b3876,64 +34b3877,ec +34b3878,24 +34b3879,45 +34b387b,8 +34b387c,ac +34b387d,85 34b387f,8 -34b3880,ac -34b3881,85 -34b3883,8 -34b3884,3c -34b3885,5 -34b3886,de +34b3880,3c +34b3881,5 +34b3882,de +34b3884,ac +34b3885,45 34b3888,ac -34b3889,45 -34b388c,ac -34b388d,43 -34b388f,4 -34b3890,3c -34b3891,2 -34b3892,80 -34b3893,40 -34b3894,8c -34b3895,42 -34b3896,64 -34b3897,20 -34b3898,10 -34b3899,40 -34b389b,7 -34b389e,18 -34b389f,25 -34b38a0,3c -34b38a1,2 -34b38a2,80 -34b38a3,40 -34b38a4,94 -34b38a5,43 -34b38a6,63 -34b38a7,10 -34b38a9,3 +34b3889,43 +34b388b,4 +34b388c,3c +34b388d,2 +34b388e,80 +34b388f,40 +34b3890,8c +34b3891,42 +34b3892,64 +34b3893,dc +34b3894,10 +34b3895,40 +34b3897,7 +34b389a,18 +34b389b,25 +34b389c,3c +34b389d,2 +34b389e,80 +34b389f,40 +34b38a0,94 +34b38a1,43 +34b38a2,63 +34b38a3,cc +34b38a5,3 +34b38a6,10 +34b38a7,40 +34b38a9,43 34b38aa,10 -34b38ab,40 -34b38ad,43 +34b38ab,21 +34b38ad,2 34b38ae,10 -34b38af,21 -34b38b1,2 -34b38b2,10 -34b38b3,40 -34b38b4,24 -34b38b5,43 -34b38b7,2 -34b38b8,3c -34b38b9,2 -34b38ba,80 -34b38bb,40 -34b38bc,94 -34b38bd,42 -34b38be,63 -34b38bf,10 -34b38c1,2 -34b38c2,10 -34b38c3,c0 -34b38c4,24 -34b38c5,42 -34b38c7,5e -34b38c9,43 -34b38ca,10 -34b38cb,21 -34b38cc,24 -34b38cd,13 -34b38ce,1 -34b38cf,40 -34b38d0,2 -34b38d1,62 +34b38af,40 +34b38b0,24 +34b38b1,43 +34b38b3,2 +34b38b4,3c +34b38b5,2 +34b38b6,80 +34b38b7,40 +34b38b8,94 +34b38b9,42 +34b38ba,63 +34b38bb,cc +34b38bd,2 +34b38be,10 +34b38bf,c0 +34b38c0,24 +34b38c1,42 +34b38c3,5e +34b38c5,43 +34b38c6,10 +34b38c7,21 +34b38c8,24 +34b38c9,13 +34b38ca,1 +34b38cb,40 +34b38cc,2 +34b38cd,62 +34b38ce,98 +34b38cf,23 +34b38d1,13 34b38d2,98 -34b38d3,23 -34b38d5,13 -34b38d6,98 -34b38d7,43 -34b38d8,26 -34b38d9,77 -34b38db,2 -34b38dc,8c -34b38dd,83 +34b38d3,43 +34b38d4,26 +34b38d5,77 +34b38d7,2 +34b38d8,8c +34b38d9,83 +34b38db,8 +34b38dc,24 +34b38dd,65 34b38df,8 -34b38e0,24 -34b38e1,65 +34b38e0,ac +34b38e1,85 34b38e3,8 -34b38e4,ac -34b38e5,85 -34b38e7,8 -34b38e8,3c -34b38e9,5 -34b38ea,fc +34b38e4,3c +34b38e5,5 +34b38e6,fc +34b38e7,ff +34b38e8,34 +34b38e9,a5 +34b38ea,ff 34b38eb,ff -34b38ec,34 -34b38ed,a5 -34b38ee,ff -34b38ef,ff -34b38f0,ac -34b38f1,65 -34b38f4,3c -34b38f5,5 -34b38f6,ff -34b38f7,fd -34b38f8,34 -34b38f9,a5 -34b38fa,f6 -34b38fb,fb -34b38fc,ac -34b38fd,65 -34b38ff,4 -34b3900,8c -34b3901,83 +34b38ec,ac +34b38ed,65 +34b38f0,3c +34b38f1,5 +34b38f2,ff +34b38f3,fd +34b38f4,34 +34b38f5,a5 +34b38f6,f6 +34b38f7,fb +34b38f8,ac +34b38f9,65 +34b38fb,4 +34b38fc,8c +34b38fd,83 +34b38ff,8 +34b3900,24 +34b3901,65 34b3903,8 -34b3904,24 -34b3905,65 +34b3904,ac +34b3905,85 34b3907,8 -34b3908,ac -34b3909,85 -34b390b,8 -34b390c,3c -34b390d,5 -34b390e,fa -34b3910,ac -34b3911,65 -34b3914,24 -34b3915,5 -34b3917,d0 -34b3918,ac -34b3919,65 -34b391b,4 -34b391d,53 -34b391e,10 -34b391f,21 -34b3921,2 -34b3922,13 -34b3923,80 -34b3924,3c -34b3925,3 -34b3927,ff -34b3928,34 -34b3929,63 -34b392a,f0 -34b392d,43 -34b392e,10 -34b392f,24 -34b3930,3c -34b3931,5 -34b3932,e4 -34b3934,24 -34b3935,a5 -34b3936,3 -34b3937,b8 -34b3939,45 -34b393a,10 -34b393b,25 -34b393c,af -34b393d,a2 -34b393f,20 -34b3941,13 -34b3942,13 -34b3943,80 -34b3945,43 -34b3946,10 -34b3947,24 -34b3948,34 -34b3949,42 -34b394b,8 -34b394c,af -34b394d,a2 -34b394f,24 -34b3950,3c -34b3951,2 -34b3952,e1 +34b3908,3c +34b3909,5 +34b390a,fa +34b390c,ac +34b390d,65 +34b3910,24 +34b3911,5 +34b3913,d0 +34b3914,ac +34b3915,65 +34b3917,4 +34b3919,53 +34b391a,10 +34b391b,21 +34b391d,2 +34b391e,13 +34b391f,80 +34b3920,3c +34b3921,3 +34b3923,ff +34b3924,34 +34b3925,63 +34b3926,f0 +34b3929,43 +34b392a,10 +34b392b,24 +34b392c,3c +34b392d,5 +34b392e,e4 +34b3930,24 +34b3931,a5 +34b3932,3 +34b3933,b8 +34b3935,45 +34b3936,10 +34b3937,25 +34b3938,af +34b3939,a2 +34b393b,20 +34b393d,13 +34b393e,13 +34b393f,80 +34b3941,43 +34b3942,10 +34b3943,24 +34b3944,34 +34b3945,42 +34b3947,8 +34b3948,af +34b3949,a2 +34b394b,24 +34b394c,3c +34b394d,2 +34b394e,e1 +34b3950,af +34b3951,a2 +34b3953,28 34b3954,af -34b3955,a2 -34b3957,28 -34b3958,af -34b3959,a0 -34b395b,2c -34b395c,3c -34b395d,2 -34b395e,f1 -34b3960,af -34b3961,a2 -34b3963,30 -34b3964,3c -34b3965,2 +34b3955,a0 +34b3957,2c +34b3958,3c +34b3959,2 +34b395a,f1 +34b395c,af +34b395d,a2 +34b395f,30 +34b3960,3c +34b3961,2 +34b3962,4 +34b3964,24 +34b3965,42 34b3966,4 -34b3968,24 -34b3969,42 -34b396a,4 -34b396c,af +34b3968,af +34b3969,a2 +34b396b,34 +34b396c,27 34b396d,a2 -34b396f,34 +34b396f,20 34b3970,27 -34b3971,a2 -34b3973,20 -34b3974,27 -34b3975,a8 -34b3977,38 -34b3978,8c -34b3979,83 +34b3971,a8 +34b3973,38 +34b3974,8c +34b3975,83 +34b3977,8 +34b3978,24 +34b3979,65 34b397b,8 -34b397c,24 -34b397d,65 +34b397c,ac +34b397d,85 34b397f,8 -34b3980,ac -34b3981,85 -34b3983,8 +34b3980,8c +34b3981,47 +34b3983,4 34b3984,8c -34b3985,47 -34b3987,4 -34b3988,8c -34b3989,46 -34b398c,ac -34b398d,67 -34b398f,4 -34b3990,24 -34b3991,42 -34b3993,8 -34b3994,15 -34b3995,2 -34b3996,ff -34b3997,f8 -34b3998,ac -34b3999,66 -34b399d,80 -34b399e,80 -34b399f,25 -34b39a0,8c -34b39a1,82 +34b3985,46 +34b3988,ac +34b3989,67 +34b398b,4 +34b398c,24 +34b398d,42 +34b398f,8 +34b3990,15 +34b3991,2 +34b3992,ff +34b3993,f8 +34b3994,ac +34b3995,66 +34b3999,80 +34b399a,80 +34b399b,25 +34b399c,8c +34b399d,82 +34b399f,8 +34b39a0,24 +34b39a1,43 34b39a3,8 -34b39a4,24 -34b39a5,43 +34b39a4,ac +34b39a5,83 34b39a7,8 -34b39a8,ac -34b39a9,83 -34b39ab,8 -34b39ac,3c -34b39ad,3 -34b39ae,e7 +34b39a8,3c +34b39a9,3 +34b39aa,e7 +34b39ac,ac +34b39ad,43 34b39b0,ac -34b39b1,43 -34b39b4,ac -34b39b5,40 -34b39b7,4 -34b39b8,8c -34b39b9,82 +34b39b1,40 +34b39b3,4 +34b39b4,8c +34b39b5,82 +34b39b7,8 +34b39b8,24 +34b39b9,43 34b39bb,8 -34b39bc,24 -34b39bd,43 +34b39bc,ac +34b39bd,83 34b39bf,8 -34b39c0,ac -34b39c1,83 -34b39c3,8 -34b39c4,3c -34b39c5,3 -34b39c6,fc -34b39c7,11 -34b39c8,34 -34b39c9,63 -34b39ca,96 -34b39cb,23 -34b39cc,ac -34b39cd,43 -34b39d0,3c -34b39d1,3 +34b39c0,3c +34b39c1,3 +34b39c2,fc +34b39c3,11 +34b39c4,34 +34b39c5,63 +34b39c6,96 +34b39c7,23 +34b39c8,ac +34b39c9,43 +34b39cc,3c +34b39cd,3 +34b39ce,ff +34b39cf,2f +34b39d0,34 +34b39d1,63 34b39d2,ff -34b39d3,2f -34b39d4,34 -34b39d5,63 -34b39d6,ff -34b39d7,ff -34b39d8,ac -34b39d9,43 -34b39db,4 -34b39dc,3c -34b39dd,5 -34b39de,80 -34b39df,40 -34b39e0,24 -34b39e1,a5 -34b39e2,63 -34b39e3,2c -34b39e4,94 -34b39e5,a7 -34b39e7,8 -34b39e8,c -34b39e9,10 -34b39ea,14 -34b39eb,1c -34b39ee,30 -34b39ef,25 -34b39f0,3c -34b39f1,2 -34b39f2,80 -34b39f3,40 -34b39f4,8c -34b39f5,42 -34b39f6,64 -34b39f7,10 -34b39f8,18 -34b39f9,40 -34b39fb,42 +34b39d3,ff +34b39d4,ac +34b39d5,43 +34b39d7,4 +34b39d8,3c +34b39d9,5 +34b39da,80 +34b39db,40 +34b39dc,24 +34b39dd,a5 +34b39de,63 +34b39df,e8 +34b39e0,94 +34b39e1,a7 +34b39e3,8 +34b39e4,c +34b39e5,10 +34b39e6,14 +34b39e7,1c +34b39ea,30 +34b39eb,25 +34b39ec,3c +34b39ed,2 +34b39ee,80 +34b39ef,40 +34b39f0,8c +34b39f1,42 +34b39f2,64 +34b39f3,cc +34b39f4,18 +34b39f5,40 +34b39f7,42 +34b39f8,3c +34b39f9,2 +34b39fa,80 +34b39fb,40 34b39fc,3c -34b39fd,2 +34b39fd,12 34b39fe,80 34b39ff,40 -34b3a00,3c -34b3a01,12 -34b3a02,80 -34b3a03,40 -34b3a04,26 -34b3a05,52 -34b3a06,63 -34b3a07,70 -34b3a0a,88 -34b3a0b,25 +34b3a00,26 +34b3a01,52 +34b3a02,64 +34b3a03,2c +34b3a06,88 +34b3a07,25 +34b3a08,3c +34b3a09,16 +34b3a0a,80 +34b3a0b,40 34b3a0c,3c -34b3a0d,16 +34b3a0d,14 34b3a0e,80 34b3a0f,40 -34b3a10,3c -34b3a11,14 -34b3a12,80 -34b3a13,40 -34b3a14,26 -34b3a15,94 -34b3a16,63 -34b3a17,4c -34b3a18,3c -34b3a19,1e -34b3a1a,80 -34b3a1b,40 -34b3a1c,27 -34b3a1d,de +34b3a10,26 +34b3a11,94 +34b3a12,64 +34b3a13,8 +34b3a14,3c +34b3a15,1e +34b3a16,80 +34b3a17,40 +34b3a18,27 +34b3a19,de +34b3a1a,64 +34b3a1b,18 +34b3a1c,24 +34b3a1d,42 34b3a1e,63 -34b3a1f,5c -34b3a20,24 -34b3a21,42 -34b3a22,63 -34b3a23,2c -34b3a24,af -34b3a25,a2 -34b3a27,38 -34b3a28,3c -34b3a29,15 -34b3a2a,80 -34b3a2b,40 -34b3a2c,8e -34b3a2d,c2 -34b3a2e,64 -34b3a2f,18 -34b3a30,50 -34b3a31,40 -34b3a33,b +34b3a1f,e8 +34b3a20,af +34b3a21,a2 +34b3a23,38 +34b3a24,3c +34b3a25,15 +34b3a26,80 +34b3a27,40 +34b3a28,8e +34b3a29,c2 +34b3a2a,64 +34b3a2b,d4 +34b3a2c,50 +34b3a2d,40 +34b3a2f,b +34b3a30,92 +34b3a31,42 34b3a34,92 -34b3a35,42 -34b3a38,92 -34b3a39,43 -34b3a3c,3c -34b3a3d,2 -34b3a3e,80 -34b3a3f,11 -34b3a40,34 -34b3a41,42 -34b3a42,a5 -34b3a43,d0 -34b3a45,43 -34b3a46,10 -34b3a47,21 -34b3a48,90 -34b3a49,42 -34b3a4b,a8 -34b3a4d,2 -34b3a4e,10 -34b3a4f,82 -34b3a50,30 -34b3a51,42 -34b3a53,1 -34b3a54,50 -34b3a55,40 -34b3a57,27 -34b3a58,26 -34b3a59,31 -34b3a5b,1 -34b3a5c,92 -34b3a5d,42 -34b3a61,54 -34b3a62,10 -34b3a63,21 -34b3a64,80 -34b3a65,46 -34b3a68,28 -34b3a69,c2 -34b3a6b,3 -34b3a6c,54 -34b3a6d,40 -34b3a6f,21 -34b3a70,26 -34b3a71,31 -34b3a73,1 -34b3a74,24 -34b3a75,c6 -34b3a76,ff -34b3a77,fd -34b3a79,6 +34b3a35,43 +34b3a38,3c +34b3a39,2 +34b3a3a,80 +34b3a3b,11 +34b3a3c,34 +34b3a3d,42 +34b3a3e,a5 +34b3a3f,d0 +34b3a41,43 +34b3a42,10 +34b3a43,21 +34b3a44,90 +34b3a45,42 +34b3a47,a8 +34b3a49,2 +34b3a4a,10 +34b3a4b,82 +34b3a4c,30 +34b3a4d,42 +34b3a4f,1 +34b3a50,50 +34b3a51,40 +34b3a53,27 +34b3a54,26 +34b3a55,31 +34b3a57,1 +34b3a58,92 +34b3a59,42 +34b3a5d,54 +34b3a5e,10 +34b3a5f,21 +34b3a60,80 +34b3a61,46 +34b3a64,28 +34b3a65,c2 +34b3a67,3 +34b3a68,54 +34b3a69,40 +34b3a6b,21 +34b3a6c,26 +34b3a6d,31 +34b3a6f,1 +34b3a70,24 +34b3a71,c6 +34b3a72,ff +34b3a73,fd +34b3a75,6 +34b3a76,18 +34b3a77,40 +34b3a79,66 34b3a7a,18 -34b3a7b,40 -34b3a7d,66 +34b3a7b,21 +34b3a7d,7e 34b3a7e,18 34b3a7f,21 -34b3a81,7e -34b3a82,18 -34b3a83,21 -34b3a84,90 -34b3a85,62 -34b3a89,2 -34b3a8a,16 -34b3a8c,90 -34b3a8d,64 -34b3a8f,2 -34b3a91,4 -34b3a92,22 -34b3a95,44 -34b3a96,10 -34b3a97,25 -34b3a98,90 -34b3a99,63 -34b3a9b,1 -34b3a9d,3 -34b3a9e,1c -34b3aa1,43 -34b3aa2,10 -34b3aa3,25 -34b3aa4,34 -34b3aa5,42 -34b3aa7,ff -34b3aa8,8e -34b3aa9,3 +34b3a80,90 +34b3a81,62 +34b3a85,2 +34b3a86,16 +34b3a88,90 +34b3a89,64 +34b3a8b,2 +34b3a8d,4 +34b3a8e,22 +34b3a91,44 +34b3a92,10 +34b3a93,25 +34b3a94,90 +34b3a95,63 +34b3a97,1 +34b3a99,3 +34b3a9a,1c +34b3a9d,43 +34b3a9e,10 +34b3a9f,25 +34b3aa0,34 +34b3aa1,42 +34b3aa3,ff +34b3aa4,8e +34b3aa5,3 +34b3aa7,8 +34b3aa8,24 +34b3aa9,64 34b3aab,8 -34b3aac,24 -34b3aad,64 +34b3aac,ae +34b3aad,4 34b3aaf,8 -34b3ab0,ae +34b3ab0,3c 34b3ab1,4 -34b3ab3,8 -34b3ab4,3c -34b3ab5,4 -34b3ab6,fa +34b3ab2,fa +34b3ab4,ac +34b3ab5,64 34b3ab8,ac -34b3ab9,64 -34b3abc,ac -34b3abd,62 -34b3abf,4 -34b3ac0,24 -34b3ac1,2 -34b3ac3,10 +34b3ab9,62 +34b3abb,4 +34b3abc,24 +34b3abd,2 +34b3abf,10 +34b3ac0,af +34b3ac1,a2 +34b3ac3,18 34b3ac4,af 34b3ac5,a2 -34b3ac7,18 -34b3ac8,af -34b3ac9,a2 -34b3acb,14 -34b3acd,11 +34b3ac7,14 +34b3ac9,11 +34b3aca,10 +34b3acb,c0 +34b3acd,51 34b3ace,10 -34b3acf,c0 -34b3ad1,51 +34b3acf,21 +34b3ad1,2 34b3ad2,10 -34b3ad3,21 -34b3ad5,2 -34b3ad6,10 -34b3ad7,40 -34b3ad8,24 -34b3ad9,42 -34b3adb,4 -34b3adc,af -34b3add,a2 -34b3adf,10 -34b3ae0,2 -34b3ae1,e0 -34b3ae2,38 -34b3ae3,25 -34b3ae4,8f -34b3ae5,a5 -34b3ae7,38 -34b3ae8,c -34b3ae9,10 -34b3aea,14 -34b3aeb,af -34b3aec,2 -34b3aee,20 -34b3aef,25 -34b3af0,26 -34b3af1,31 -34b3af3,1 -34b3af4,8e -34b3af5,a2 -34b3af6,64 -34b3af7,10 -34b3af8,2 -34b3af9,22 -34b3afa,10 -34b3afb,2a -34b3afc,14 -34b3afd,40 -34b3afe,ff -34b3aff,cb -34b3b00,26 -34b3b01,52 -34b3b03,c -34b3b04,8e -34b3b05,2 +34b3ad3,40 +34b3ad4,24 +34b3ad5,42 +34b3ad7,4 +34b3ad8,af +34b3ad9,a2 +34b3adb,10 +34b3adc,2 +34b3add,e0 +34b3ade,38 +34b3adf,25 +34b3ae0,8f +34b3ae1,a5 +34b3ae3,38 +34b3ae4,c +34b3ae5,10 +34b3ae6,14 +34b3ae7,af +34b3ae8,2 +34b3aea,20 +34b3aeb,25 +34b3aec,26 +34b3aed,31 +34b3aef,1 +34b3af0,8e +34b3af1,a2 +34b3af2,64 +34b3af3,cc +34b3af4,2 +34b3af5,22 +34b3af6,10 +34b3af7,2a +34b3af8,14 +34b3af9,40 +34b3afa,ff +34b3afb,cb +34b3afc,26 +34b3afd,52 +34b3aff,c +34b3b00,8e +34b3b01,2 +34b3b03,8 +34b3b04,24 +34b3b05,43 34b3b07,8 -34b3b08,24 -34b3b09,43 +34b3b08,ae +34b3b09,3 34b3b0b,8 -34b3b0c,ae +34b3b0c,3c 34b3b0d,3 -34b3b0f,8 -34b3b10,3c -34b3b11,3 -34b3b12,fa -34b3b14,ac -34b3b15,43 -34b3b18,24 -34b3b19,3 -34b3b1a,ff -34b3b1b,ff -34b3b1c,ac -34b3b1d,43 -34b3b1f,4 -34b3b20,3c -34b3b21,5 -34b3b22,80 -34b3b23,40 -34b3b24,24 -34b3b25,a5 -34b3b26,63 -34b3b27,3c -34b3b28,94 -34b3b29,a7 -34b3b2b,8 -34b3b2e,30 -34b3b2f,25 -34b3b30,c -34b3b31,10 -34b3b32,14 -34b3b33,1c -34b3b34,2 -34b3b36,20 -34b3b37,25 -34b3b38,3c -34b3b39,2 -34b3b3a,80 -34b3b3b,40 -34b3b3c,8c -34b3b3d,42 -34b3b3e,64 -34b3b3f,10 -34b3b40,18 -34b3b41,40 -34b3b42,1 -34b3b43,64 +34b3b0e,fa +34b3b10,ac +34b3b11,43 +34b3b14,24 +34b3b15,3 +34b3b16,ff +34b3b17,ff +34b3b18,ac +34b3b19,43 +34b3b1b,4 +34b3b1c,3c +34b3b1d,5 +34b3b1e,80 +34b3b1f,40 +34b3b20,24 +34b3b21,a5 +34b3b22,63 +34b3b23,f8 +34b3b24,94 +34b3b25,a7 +34b3b27,8 +34b3b2a,30 +34b3b2b,25 +34b3b2c,c +34b3b2d,10 +34b3b2e,14 +34b3b2f,1c +34b3b30,2 +34b3b32,20 +34b3b33,25 +34b3b34,3c +34b3b35,2 +34b3b36,80 +34b3b37,40 +34b3b38,8c +34b3b39,42 +34b3b3a,64 +34b3b3b,cc +34b3b3c,18 +34b3b3d,40 +34b3b3e,1 +34b3b3f,94 +34b3b40,3c +34b3b41,2 +34b3b42,80 +34b3b43,40 34b3b44,3c -34b3b45,2 +34b3b45,12 34b3b46,80 34b3b47,40 -34b3b48,3c -34b3b49,12 -34b3b4a,80 -34b3b4b,40 -34b3b4c,26 -34b3b4d,52 -34b3b4e,63 -34b3b4f,70 -34b3b52,88 -34b3b53,25 +34b3b48,26 +34b3b49,52 +34b3b4a,64 +34b3b4b,2c +34b3b4e,88 +34b3b4f,25 +34b3b50,3c +34b3b51,16 +34b3b52,80 +34b3b53,40 34b3b54,3c -34b3b55,16 +34b3b55,14 34b3b56,80 34b3b57,40 -34b3b58,3c -34b3b59,14 -34b3b5a,80 -34b3b5b,40 -34b3b5c,26 -34b3b5d,94 +34b3b58,26 +34b3b59,94 +34b3b5a,64 +34b3b5b,8 +34b3b5c,24 +34b3b5d,42 34b3b5e,63 -34b3b5f,4c -34b3b60,24 -34b3b61,42 -34b3b62,63 -34b3b63,3c -34b3b64,af -34b3b65,a2 -34b3b67,38 -34b3b68,3c -34b3b69,1e -34b3b6a,80 -34b3b6b,11 -34b3b6c,37 -34b3b6d,de -34b3b6e,a5 -34b3b6f,d0 -34b3b70,3c -34b3b71,15 -34b3b72,80 -34b3b73,40 -34b3b74,8e -34b3b75,c2 -34b3b76,64 -34b3b77,18 -34b3b78,10 -34b3b79,40 -34b3b7b,8 -34b3b7c,92 -34b3b7d,42 -34b3b80,3 -34b3b81,c2 -34b3b82,10 -34b3b83,21 -34b3b84,90 -34b3b85,42 -34b3b87,a8 -34b3b89,2 -34b3b8a,10 -34b3b8b,82 -34b3b8c,30 -34b3b8d,42 -34b3b8f,1 -34b3b90,50 -34b3b91,40 -34b3b93,14 -34b3b94,26 -34b3b95,31 -34b3b97,1 -34b3b98,92 -34b3b99,42 -34b3b9d,54 -34b3b9e,10 -34b3b9f,21 -34b3ba0,80 -34b3ba1,46 -34b3ba4,2c -34b3ba5,c2 -34b3ba7,3 -34b3ba8,50 -34b3ba9,40 -34b3bab,e -34b3bac,26 -34b3bad,31 -34b3baf,1 -34b3bb0,24 -34b3bb1,2 -34b3bb3,10 +34b3b5f,f8 +34b3b60,af +34b3b61,a2 +34b3b63,38 +34b3b64,3c +34b3b65,1e +34b3b66,80 +34b3b67,11 +34b3b68,37 +34b3b69,de +34b3b6a,a5 +34b3b6b,d0 +34b3b6c,3c +34b3b6d,15 +34b3b6e,80 +34b3b6f,40 +34b3b70,8e +34b3b71,c2 +34b3b72,64 +34b3b73,d4 +34b3b74,10 +34b3b75,40 +34b3b77,8 +34b3b78,92 +34b3b79,42 +34b3b7c,3 +34b3b7d,c2 +34b3b7e,10 +34b3b7f,21 +34b3b80,90 +34b3b81,42 +34b3b83,a8 +34b3b85,2 +34b3b86,10 +34b3b87,82 +34b3b88,30 +34b3b89,42 +34b3b8b,1 +34b3b8c,50 +34b3b8d,40 +34b3b8f,14 +34b3b90,26 +34b3b91,31 +34b3b93,1 +34b3b94,92 +34b3b95,42 +34b3b99,54 +34b3b9a,10 +34b3b9b,21 +34b3b9c,80 +34b3b9d,46 +34b3ba0,2c +34b3ba1,c2 +34b3ba3,3 +34b3ba4,50 +34b3ba5,40 +34b3ba7,e +34b3ba8,26 +34b3ba9,31 +34b3bab,1 +34b3bac,24 +34b3bad,2 +34b3baf,10 +34b3bb0,af +34b3bb1,a2 +34b3bb3,18 34b3bb4,af 34b3bb5,a2 -34b3bb7,18 -34b3bb8,af -34b3bb9,a2 -34b3bbb,14 -34b3bbd,11 +34b3bb7,14 +34b3bb9,11 +34b3bba,10 +34b3bbb,c0 +34b3bbd,51 34b3bbe,10 -34b3bbf,c0 -34b3bc1,51 +34b3bbf,21 +34b3bc1,2 34b3bc2,10 -34b3bc3,21 -34b3bc5,2 -34b3bc6,10 -34b3bc7,40 -34b3bc8,24 -34b3bc9,42 -34b3bcb,4 -34b3bcc,af -34b3bcd,a2 -34b3bcf,10 -34b3bd0,2 -34b3bd1,e0 -34b3bd2,38 -34b3bd3,25 -34b3bd4,8f -34b3bd5,a5 -34b3bd7,38 -34b3bd8,c -34b3bd9,10 -34b3bda,14 -34b3bdb,af -34b3bdc,2 -34b3bde,20 -34b3bdf,25 -34b3be0,26 -34b3be1,31 -34b3be3,1 -34b3be4,8e -34b3be5,a2 -34b3be6,64 -34b3be7,10 -34b3be8,2 -34b3be9,22 -34b3bea,18 -34b3beb,2a -34b3bec,14 -34b3bed,60 -34b3bee,ff -34b3bef,e1 -34b3bf0,26 -34b3bf1,52 -34b3bf3,c -34b3bf4,18 -34b3bf5,40 -34b3bf7,10 -34b3bf8,26 -34b3bf9,73 -34b3bfb,14 -34b3bfc,3c -34b3bfd,11 -34b3bfe,80 -34b3bff,40 -34b3c00,26 -34b3c01,31 -34b3c02,63 -34b3c03,72 -34b3c04,24 -34b3c05,14 -34b3c07,5 -34b3c0a,90 -34b3c0b,25 -34b3c0c,3c -34b3c0d,15 -34b3c0e,80 -34b3c0f,40 +34b3bc3,40 +34b3bc4,24 +34b3bc5,42 +34b3bc7,4 +34b3bc8,af +34b3bc9,a2 +34b3bcb,10 +34b3bcc,2 +34b3bcd,e0 +34b3bce,38 +34b3bcf,25 +34b3bd0,8f +34b3bd1,a5 +34b3bd3,38 +34b3bd4,c +34b3bd5,10 +34b3bd6,14 +34b3bd7,af +34b3bd8,2 +34b3bda,20 +34b3bdb,25 +34b3bdc,26 +34b3bdd,31 +34b3bdf,1 +34b3be0,8e +34b3be1,a2 +34b3be2,64 +34b3be3,cc +34b3be4,2 +34b3be5,22 +34b3be6,18 +34b3be7,2a +34b3be8,14 +34b3be9,60 +34b3bea,ff +34b3beb,e1 +34b3bec,26 +34b3bed,52 +34b3bef,c +34b3bf0,18 +34b3bf1,40 +34b3bf3,10 +34b3bf4,26 +34b3bf5,73 +34b3bf7,14 +34b3bf8,3c +34b3bf9,11 +34b3bfa,80 +34b3bfb,40 +34b3bfc,26 +34b3bfd,31 +34b3bfe,64 +34b3bff,2e +34b3c00,24 +34b3c01,14 +34b3c03,5 +34b3c06,90 +34b3c07,25 +34b3c08,3c +34b3c09,15 +34b3c0a,80 +34b3c0b,40 +34b3c0c,2 +34b3c0d,80 +34b3c0e,30 +34b3c0f,25 34b3c10,2 -34b3c11,80 -34b3c12,30 +34b3c11,60 +34b3c12,28 34b3c13,25 -34b3c14,2 -34b3c15,60 -34b3c16,28 -34b3c17,25 -34b3c18,c -34b3c19,10 -34b3c1a,18 -34b3c1b,44 -34b3c1c,2 -34b3c1d,20 -34b3c1e,20 -34b3c1f,25 +34b3c14,c +34b3c15,10 +34b3c16,18 +34b3c17,73 +34b3c18,2 +34b3c19,20 +34b3c1a,20 +34b3c1b,25 +34b3c1c,26 +34b3c1d,52 +34b3c1f,1 34b3c20,26 -34b3c21,52 -34b3c23,1 -34b3c24,26 -34b3c25,31 -34b3c27,c -34b3c28,8e -34b3c29,a2 -34b3c2a,64 -34b3c2b,10 -34b3c2c,2 -34b3c2d,42 -34b3c2e,10 -34b3c2f,2a -34b3c30,14 -34b3c31,40 -34b3c32,ff -34b3c33,f7 -34b3c34,26 -34b3c35,94 -34b3c37,12 -34b3c38,3c -34b3c39,2 -34b3c3a,80 -34b3c3b,40 -34b3c3c,94 -34b3c3d,42 -34b3c3e,63 -34b3c3f,10 -34b3c41,2 -34b3c42,10 -34b3c43,c0 -34b3c44,24 -34b3c45,42 -34b3c47,2 -34b3c49,53 -34b3c4a,98 -34b3c4b,21 +34b3c21,31 +34b3c23,c +34b3c24,8e +34b3c25,a2 +34b3c26,64 +34b3c27,cc +34b3c28,2 +34b3c29,42 +34b3c2a,10 +34b3c2b,2a +34b3c2c,14 +34b3c2d,40 +34b3c2e,ff +34b3c2f,f7 +34b3c30,26 +34b3c31,94 +34b3c33,12 +34b3c34,3c +34b3c35,2 +34b3c36,80 +34b3c37,40 +34b3c38,94 +34b3c39,42 +34b3c3a,63 +34b3c3b,cc +34b3c3d,2 +34b3c3e,10 +34b3c3f,c0 +34b3c40,24 +34b3c41,42 +34b3c43,2 +34b3c45,53 +34b3c46,98 +34b3c47,21 +34b3c48,24 +34b3c49,7 +34b3c4b,1 34b3c4c,24 -34b3c4d,7 -34b3c4f,1 -34b3c50,24 -34b3c51,6 -34b3c53,3 -34b3c54,3c -34b3c55,5 -34b3c56,80 -34b3c57,40 -34b3c58,24 -34b3c59,a5 -34b3c5a,63 +34b3c4d,6 +34b3c4f,11 +34b3c50,3c +34b3c51,5 +34b3c52,80 +34b3c53,40 +34b3c54,24 +34b3c55,a5 +34b3c56,63 +34b3c57,d8 +34b3c58,c +34b3c59,10 +34b3c5a,14 34b3c5b,1c -34b3c5c,c -34b3c5d,10 -34b3c5e,14 -34b3c5f,1c -34b3c60,2 -34b3c62,20 -34b3c63,25 -34b3c64,3c -34b3c65,2 -34b3c66,80 -34b3c67,40 -34b3c68,8c -34b3c69,42 -34b3c6a,64 -34b3c6b,10 -34b3c6c,58 -34b3c6d,40 -34b3c6f,2c -34b3c70,26 -34b3c71,7e -34b3c73,12 -34b3c74,3c -34b3c75,12 -34b3c76,80 -34b3c77,40 -34b3c78,26 -34b3c79,52 -34b3c7a,63 -34b3c7b,70 -34b3c7c,24 -34b3c7d,14 -34b3c7f,5 -34b3c82,88 +34b3c5c,2 +34b3c5e,20 +34b3c5f,25 +34b3c60,3c +34b3c61,2 +34b3c62,80 +34b3c63,40 +34b3c64,8c +34b3c65,42 +34b3c66,64 +34b3c67,cc +34b3c68,18 +34b3c69,40 +34b3c6b,2a +34b3c6c,3c +34b3c6d,17 +34b3c6e,80 +34b3c6f,11 +34b3c70,3c +34b3c71,12 +34b3c72,80 +34b3c73,40 +34b3c74,26 +34b3c75,52 +34b3c76,64 +34b3c77,2c +34b3c78,24 +34b3c79,14 +34b3c7b,5 +34b3c7e,88 +34b3c7f,25 +34b3c80,2 +34b3c81,40 +34b3c82,a8 34b3c83,25 -34b3c84,2 -34b3c85,40 -34b3c86,a8 -34b3c87,25 +34b3c84,36 +34b3c85,f7 +34b3c86,a5 +34b3c87,d0 34b3c88,3c -34b3c89,17 +34b3c89,16 34b3c8a,80 -34b3c8b,11 -34b3c8c,36 -34b3c8d,f7 -34b3c8e,a5 -34b3c8f,d0 -34b3c90,3c -34b3c91,16 -34b3c92,80 -34b3c93,40 -34b3c95,11 +34b3c8b,40 +34b3c8d,11 +34b3c8e,10 +34b3c8f,40 +34b3c91,51 +34b3c92,10 +34b3c93,21 +34b3c95,2 34b3c96,10 -34b3c97,40 -34b3c99,51 +34b3c97,80 +34b3c99,55 34b3c9a,10 34b3c9b,21 -34b3c9d,2 -34b3c9e,10 -34b3c9f,80 -34b3ca1,55 -34b3ca2,10 -34b3ca3,21 -34b3ca4,80 -34b3ca5,42 +34b3c9c,80 +34b3c9d,42 +34b3c9f,1 +34b3ca0,4 +34b3ca1,43 +34b3ca3,17 +34b3ca4,26 +34b3ca5,31 34b3ca7,1 -34b3ca8,4 -34b3ca9,43 -34b3cab,17 -34b3cac,26 -34b3cad,31 -34b3caf,1 -34b3cb0,92 +34b3ca8,92 +34b3ca9,42 +34b3cac,2 +34b3cad,e2 +34b3cae,10 +34b3caf,21 +34b3cb0,90 34b3cb1,42 -34b3cb4,2 -34b3cb5,e2 -34b3cb6,10 -34b3cb7,21 -34b3cb8,90 -34b3cb9,42 -34b3cbb,bc -34b3cbd,2 -34b3cbe,1e -34b3cc1,3 -34b3cc2,1e -34b3cc3,3 -34b3cc4,28 -34b3cc5,63 -34b3cc7,a -34b3cc8,50 -34b3cc9,60 -34b3ccb,1 -34b3ccc,24 -34b3ccd,2 -34b3ccf,9 -34b3cd0,24 -34b3cd1,3 -34b3cd2,30 -34b3cd4,a7 -34b3cd5,a3 -34b3cd7,20 -34b3cd9,40 -34b3cda,18 -34b3cdb,25 -34b3cdd,2 -34b3cde,16 -34b3ce1,2 -34b3ce2,16 -34b3ce3,3 -34b3ce4,4 -34b3ce5,42 -34b3ce7,1 -34b3cea,18 -34b3ceb,25 -34b3cec,24 -34b3ced,63 -34b3cef,30 -34b3cf0,a3 -34b3cf1,a3 -34b3cf3,20 -34b3cf4,2 -34b3cf5,80 -34b3cf6,30 -34b3cf7,25 -34b3cf8,2 -34b3cf9,60 -34b3cfa,28 -34b3cfb,25 -34b3cfc,c -34b3cfd,10 -34b3cfe,18 -34b3cff,44 -34b3d00,27 -34b3d01,a4 -34b3d03,20 -34b3d04,26 -34b3d05,31 -34b3d07,1 -34b3d08,26 -34b3d09,52 -34b3d0b,c -34b3d0c,8e -34b3d0d,c2 -34b3d0e,64 -34b3d0f,10 -34b3d10,2 -34b3d11,22 -34b3d12,10 -34b3d13,2a -34b3d14,14 -34b3d15,40 -34b3d16,ff -34b3d17,df -34b3d18,26 -34b3d19,94 -34b3d1b,12 -34b3d1c,26 -34b3d1d,7e -34b3d1f,12 -34b3d20,24 -34b3d21,7 -34b3d23,1 -34b3d26,30 -34b3d27,25 -34b3d28,3c -34b3d29,5 -34b3d2a,80 -34b3d2b,40 -34b3d2c,24 -34b3d2d,a5 -34b3d2e,63 -34b3d2f,1c -34b3d30,c -34b3d31,10 -34b3d32,14 -34b3d33,1c -34b3d34,2 -34b3d36,20 -34b3d37,25 -34b3d38,3c -34b3d39,2 -34b3d3a,80 -34b3d3b,40 -34b3d3c,8c -34b3d3d,42 -34b3d3e,64 -34b3d3f,10 -34b3d40,58 -34b3d41,40 -34b3d43,2b +34b3cb3,bc +34b3cb5,2 +34b3cb6,1e +34b3cb9,3 +34b3cba,1e +34b3cbb,3 +34b3cbc,28 +34b3cbd,63 +34b3cbf,a +34b3cc0,50 +34b3cc1,60 +34b3cc3,1 +34b3cc4,24 +34b3cc5,2 +34b3cc7,9 +34b3cc8,24 +34b3cc9,3 +34b3cca,30 +34b3ccc,a7 +34b3ccd,a3 +34b3ccf,20 +34b3cd1,40 +34b3cd2,18 +34b3cd3,25 +34b3cd5,2 +34b3cd6,16 +34b3cd9,2 +34b3cda,16 +34b3cdb,3 +34b3cdc,4 +34b3cdd,42 +34b3cdf,1 +34b3ce2,18 +34b3ce3,25 +34b3ce4,24 +34b3ce5,63 +34b3ce7,30 +34b3ce8,a3 +34b3ce9,a3 +34b3ceb,20 +34b3cec,2 +34b3ced,80 +34b3cee,30 +34b3cef,25 +34b3cf0,2 +34b3cf1,60 +34b3cf2,28 +34b3cf3,25 +34b3cf4,c +34b3cf5,10 +34b3cf6,18 +34b3cf7,73 +34b3cf8,27 +34b3cf9,a4 +34b3cfb,20 +34b3cfc,26 +34b3cfd,31 +34b3cff,1 +34b3d00,26 +34b3d01,52 +34b3d03,c +34b3d04,8e +34b3d05,c2 +34b3d06,64 +34b3d07,cc +34b3d08,2 +34b3d09,22 +34b3d0a,10 +34b3d0b,2a +34b3d0c,14 +34b3d0d,40 +34b3d0e,ff +34b3d0f,df +34b3d10,26 +34b3d11,94 +34b3d13,12 +34b3d14,26 +34b3d15,77 +34b3d17,12 +34b3d18,24 +34b3d19,7 +34b3d1b,1 +34b3d1c,24 +34b3d1d,6 +34b3d1f,e +34b3d20,3c +34b3d21,5 +34b3d22,80 +34b3d23,40 +34b3d24,24 +34b3d25,a5 +34b3d26,63 +34b3d27,d8 +34b3d28,c +34b3d29,10 +34b3d2a,14 +34b3d2b,1c +34b3d2c,2 +34b3d2e,20 +34b3d2f,25 +34b3d30,3c +34b3d31,2 +34b3d32,80 +34b3d33,40 +34b3d34,8c +34b3d35,42 +34b3d36,64 +34b3d37,cc +34b3d38,58 +34b3d39,40 +34b3d3b,2b +34b3d3c,24 +34b3d3d,7 +34b3d3f,1 +34b3d40,3c +34b3d41,12 +34b3d42,80 +34b3d43,40 34b3d44,26 -34b3d45,7e -34b3d47,24 -34b3d48,3c -34b3d49,12 -34b3d4a,80 -34b3d4b,40 -34b3d4c,26 -34b3d4d,52 -34b3d4e,63 -34b3d4f,70 -34b3d52,88 -34b3d53,25 -34b3d54,2 -34b3d55,40 -34b3d56,a0 -34b3d57,25 -34b3d58,3c -34b3d59,16 -34b3d5a,80 -34b3d5b,11 +34b3d45,52 +34b3d46,64 +34b3d47,2c +34b3d4a,88 +34b3d4b,25 +34b3d4c,2 +34b3d4d,40 +34b3d4e,a0 +34b3d4f,25 +34b3d50,3c +34b3d51,16 +34b3d52,80 +34b3d53,11 +34b3d54,3c +34b3d55,1e +34b3d56,80 +34b3d57,40 +34b3d58,27 +34b3d59,de +34b3d5a,63 +34b3d5b,d8 34b3d5c,3c -34b3d5d,17 +34b3d5d,15 34b3d5e,80 34b3d5f,40 -34b3d60,26 -34b3d61,f7 -34b3d62,63 -34b3d63,1c -34b3d64,3c -34b3d65,15 -34b3d66,80 -34b3d67,40 -34b3d69,11 +34b3d61,11 +34b3d62,10 +34b3d63,40 +34b3d65,51 +34b3d66,10 +34b3d67,21 +34b3d69,2 34b3d6a,10 -34b3d6b,40 -34b3d6d,51 +34b3d6b,80 +34b3d6d,54 34b3d6e,10 34b3d6f,21 -34b3d71,2 -34b3d72,10 -34b3d73,80 -34b3d75,54 -34b3d76,10 -34b3d77,21 -34b3d78,90 -34b3d79,42 -34b3d7b,1 -34b3d7c,30 -34b3d7d,42 -34b3d7f,40 -34b3d80,50 -34b3d81,40 -34b3d83,16 -34b3d84,26 -34b3d85,31 -34b3d87,1 -34b3d88,36 -34b3d89,c2 -34b3d8a,a5 -34b3d8b,d0 -34b3d8c,92 -34b3d8d,43 -34b3d91,43 -34b3d92,10 -34b3d93,21 -34b3d94,90 -34b3d95,42 -34b3d97,a8 -34b3d98,30 -34b3d99,42 +34b3d70,90 +34b3d71,42 +34b3d73,1 +34b3d74,30 +34b3d75,42 +34b3d77,40 +34b3d78,50 +34b3d79,40 +34b3d7b,16 +34b3d7c,26 +34b3d7d,31 +34b3d7f,1 +34b3d80,36 +34b3d81,c2 +34b3d82,a5 +34b3d83,d0 +34b3d84,92 +34b3d85,43 +34b3d89,43 +34b3d8a,10 +34b3d8b,21 +34b3d8c,90 +34b3d8d,42 +34b3d8f,a8 +34b3d90,30 +34b3d91,42 +34b3d93,1 +34b3d94,50 +34b3d95,40 +34b3d97,f +34b3d98,26 +34b3d99,31 34b3d9b,1 -34b3d9c,50 -34b3d9d,40 -34b3d9f,f -34b3da0,26 -34b3da1,31 -34b3da3,1 -34b3da4,24 -34b3da5,2 -34b3da7,10 -34b3da8,af -34b3da9,a2 -34b3dab,18 -34b3dac,af -34b3dad,a2 -34b3daf,14 -34b3db1,11 +34b3d9c,24 +34b3d9d,2 +34b3d9f,10 +34b3da0,af +34b3da1,a2 +34b3da3,18 +34b3da4,af +34b3da5,a2 +34b3da7,14 +34b3da9,11 +34b3daa,10 +34b3dab,c0 +34b3dad,51 +34b3dae,10 +34b3daf,21 +34b3db1,2 34b3db2,10 -34b3db3,c0 -34b3db5,51 -34b3db6,10 -34b3db7,21 -34b3db9,2 -34b3dba,10 -34b3dbb,40 -34b3dbc,24 -34b3dbd,42 -34b3dbf,4 -34b3dc0,af -34b3dc1,a2 -34b3dc3,10 +34b3db3,40 +34b3db4,24 +34b3db5,42 +34b3db7,4 +34b3db8,af +34b3db9,a2 +34b3dbb,10 +34b3dbc,2 +34b3dbd,e0 +34b3dbe,38 +34b3dbf,25 +34b3dc2,30 +34b3dc3,25 34b3dc4,3 34b3dc5,c0 -34b3dc6,38 +34b3dc6,28 34b3dc7,25 -34b3dca,30 -34b3dcb,25 +34b3dc8,c +34b3dc9,10 +34b3dca,14 +34b3dcb,af 34b3dcc,2 -34b3dcd,e0 -34b3dce,28 +34b3dce,20 34b3dcf,25 -34b3dd0,c -34b3dd1,10 -34b3dd2,14 -34b3dd3,af -34b3dd4,2 -34b3dd6,20 -34b3dd7,25 -34b3dd8,26 -34b3dd9,31 -34b3ddb,1 -34b3ddc,8e -34b3ddd,a2 -34b3dde,64 -34b3ddf,10 -34b3de0,2 -34b3de1,22 -34b3de2,10 -34b3de3,2a -34b3de4,14 -34b3de5,40 -34b3de6,ff -34b3de7,e0 -34b3de8,26 -34b3de9,52 -34b3deb,c -34b3dec,26 -34b3ded,7e -34b3def,24 +34b3dd0,26 +34b3dd1,31 +34b3dd3,1 +34b3dd4,8e +34b3dd5,a2 +34b3dd6,64 +34b3dd7,cc +34b3dd8,2 +34b3dd9,22 +34b3dda,10 +34b3ddb,2a +34b3ddc,14 +34b3ddd,40 +34b3dde,ff +34b3ddf,e0 +34b3de0,26 +34b3de1,52 +34b3de3,c +34b3de4,24 +34b3de5,7 +34b3de7,1 +34b3de8,24 +34b3de9,6 +34b3deb,a +34b3dec,3c +34b3ded,5 +34b3dee,80 +34b3def,40 34b3df0,24 -34b3df1,7 -34b3df3,1 -34b3df4,24 -34b3df5,6 -34b3df7,2 -34b3df8,3c -34b3df9,5 -34b3dfa,80 -34b3dfb,40 -34b3dfc,24 -34b3dfd,a5 -34b3dfe,63 -34b3dff,1c -34b3e00,c -34b3e01,10 -34b3e02,14 -34b3e03,1c -34b3e04,2 -34b3e06,20 -34b3e07,25 -34b3e08,3c -34b3e09,2 -34b3e0a,80 -34b3e0b,40 -34b3e0c,8c -34b3e0d,42 -34b3e0e,64 -34b3e0f,10 -34b3e10,18 -34b3e11,40 -34b3e13,2a -34b3e14,3c -34b3e15,12 -34b3e16,80 -34b3e17,40 -34b3e18,26 -34b3e19,52 -34b3e1a,63 -34b3e1b,70 -34b3e1e,88 -34b3e1f,25 -34b3e20,2 -34b3e21,40 -34b3e22,a0 -34b3e23,25 +34b3df1,a5 +34b3df2,63 +34b3df3,d8 +34b3df4,c +34b3df5,10 +34b3df6,14 +34b3df7,1c +34b3df8,2 +34b3dfa,20 +34b3dfb,25 +34b3dfc,3c +34b3dfd,2 +34b3dfe,80 +34b3dff,40 +34b3e00,8c +34b3e01,42 +34b3e02,64 +34b3e03,cc +34b3e04,58 +34b3e05,40 +34b3e07,29 +34b3e08,26 +34b3e09,7e +34b3e0b,24 +34b3e0e,88 +34b3e0f,25 +34b3e10,3c +34b3e11,12 +34b3e12,80 +34b3e13,40 +34b3e14,26 +34b3e15,52 +34b3e16,64 +34b3e17,2c +34b3e18,3c +34b3e19,15 +34b3e1a,80 +34b3e1b,11 +34b3e1c,3c +34b3e1d,16 +34b3e1e,80 +34b3e1f,40 +34b3e20,26 +34b3e21,d6 +34b3e22,63 +34b3e23,d8 34b3e24,3c -34b3e25,16 +34b3e25,14 34b3e26,80 -34b3e27,11 -34b3e28,3c -34b3e29,17 -34b3e2a,80 +34b3e27,40 +34b3e29,11 +34b3e2a,10 34b3e2b,40 -34b3e2c,26 -34b3e2d,f7 -34b3e2e,63 -34b3e2f,1c -34b3e30,3c -34b3e31,15 -34b3e32,80 -34b3e33,40 -34b3e35,11 +34b3e2d,51 +34b3e2e,10 +34b3e2f,21 +34b3e31,2 +34b3e32,10 +34b3e33,80 +34b3e35,52 34b3e36,10 -34b3e37,40 -34b3e39,51 -34b3e3a,10 -34b3e3b,21 -34b3e3d,2 -34b3e3e,10 -34b3e3f,80 -34b3e41,54 -34b3e42,10 -34b3e43,21 -34b3e44,90 -34b3e45,42 +34b3e37,21 +34b3e38,90 +34b3e39,42 +34b3e3b,1 +34b3e3c,30 +34b3e3d,42 +34b3e3f,20 +34b3e40,50 +34b3e41,40 +34b3e43,15 +34b3e44,26 +34b3e45,31 34b3e47,1 -34b3e48,30 -34b3e49,42 -34b3e4b,10 -34b3e4c,50 -34b3e4d,40 -34b3e4f,17 -34b3e50,26 -34b3e51,31 -34b3e53,1 -34b3e54,36 -34b3e55,c2 -34b3e56,a5 -34b3e57,d0 -34b3e58,92 -34b3e59,43 -34b3e5d,43 -34b3e5e,10 -34b3e5f,21 -34b3e60,90 -34b3e61,42 -34b3e63,a8 -34b3e65,2 -34b3e66,10 -34b3e67,82 -34b3e68,30 -34b3e69,42 -34b3e6b,1 -34b3e6c,50 -34b3e6d,40 -34b3e6f,f -34b3e70,26 -34b3e71,31 -34b3e73,1 -34b3e74,24 +34b3e48,36 +34b3e49,a2 +34b3e4a,a5 +34b3e4b,d0 +34b3e4c,8c +34b3e4d,42 +34b3e4f,a4 +34b3e50,3c +34b3e51,3 +34b3e53,40 +34b3e55,43 +34b3e56,10 +34b3e57,24 +34b3e58,50 +34b3e59,40 +34b3e5b,f +34b3e5c,26 +34b3e5d,31 +34b3e5f,1 +34b3e60,24 +34b3e61,2 +34b3e63,10 +34b3e64,af +34b3e65,a2 +34b3e67,18 +34b3e68,af +34b3e69,a2 +34b3e6b,14 +34b3e6d,11 +34b3e6e,10 +34b3e6f,c0 +34b3e71,51 +34b3e72,10 +34b3e73,21 34b3e75,2 -34b3e77,10 -34b3e78,af -34b3e79,a2 -34b3e7b,18 +34b3e76,10 +34b3e77,40 +34b3e78,24 +34b3e79,42 +34b3e7b,4 34b3e7c,af 34b3e7d,a2 -34b3e7f,14 -34b3e81,11 -34b3e82,10 -34b3e83,c0 -34b3e85,51 -34b3e86,10 -34b3e87,21 -34b3e89,2 -34b3e8a,10 -34b3e8b,40 -34b3e8c,24 -34b3e8d,42 -34b3e8f,4 -34b3e90,af -34b3e91,a2 -34b3e93,10 -34b3e94,3 -34b3e95,c0 -34b3e96,38 -34b3e97,25 -34b3e9a,30 -34b3e9b,25 +34b3e7f,10 +34b3e80,2 +34b3e81,e0 +34b3e82,38 +34b3e83,25 +34b3e86,30 +34b3e87,25 +34b3e88,2 +34b3e89,c0 +34b3e8a,28 +34b3e8b,25 +34b3e8c,c +34b3e8d,10 +34b3e8e,14 +34b3e8f,af +34b3e90,2 +34b3e92,20 +34b3e93,25 +34b3e94,26 +34b3e95,31 +34b3e97,1 +34b3e98,8e +34b3e99,82 +34b3e9a,64 +34b3e9b,cc 34b3e9c,2 -34b3e9d,e0 -34b3e9e,28 -34b3e9f,25 -34b3ea0,c -34b3ea1,10 -34b3ea2,14 -34b3ea3,af -34b3ea4,2 -34b3ea6,20 -34b3ea7,25 +34b3e9d,22 +34b3e9e,10 +34b3e9f,2a +34b3ea0,14 +34b3ea1,40 +34b3ea2,ff +34b3ea3,e2 +34b3ea5,11 +34b3ea6,10 +34b3ea7,40 34b3ea8,26 -34b3ea9,31 -34b3eab,1 -34b3eac,8e -34b3ead,a2 -34b3eae,64 -34b3eaf,10 -34b3eb0,2 -34b3eb1,22 -34b3eb2,10 -34b3eb3,2a -34b3eb4,14 -34b3eb5,40 -34b3eb6,ff -34b3eb7,df -34b3eb8,26 -34b3eb9,52 -34b3ebb,c -34b3ebc,26 -34b3ebd,7e -34b3ebf,36 -34b3ec0,24 -34b3ec1,7 -34b3ec3,1 -34b3ec4,24 -34b3ec5,6 -34b3ec7,1 -34b3ec8,3c -34b3ec9,5 -34b3eca,80 -34b3ecb,40 -34b3ecc,24 -34b3ecd,a5 -34b3ece,63 -34b3ecf,1c -34b3ed0,c -34b3ed1,10 -34b3ed2,14 -34b3ed3,1c -34b3ed4,2 -34b3ed6,20 -34b3ed7,25 -34b3ed8,3c -34b3ed9,2 -34b3eda,80 -34b3edb,40 -34b3edc,8c -34b3edd,42 -34b3ede,64 -34b3edf,10 -34b3ee0,18 -34b3ee1,40 -34b3ee3,62 +34b3ea9,7e +34b3eab,24 +34b3eac,24 +34b3ead,7 +34b3eaf,1 +34b3eb0,24 +34b3eb1,6 +34b3eb3,10 +34b3eb4,3c +34b3eb5,5 +34b3eb6,80 +34b3eb7,40 +34b3eb8,24 +34b3eb9,a5 +34b3eba,63 +34b3ebb,d8 +34b3ebc,c +34b3ebd,10 +34b3ebe,14 +34b3ebf,1c +34b3ec0,2 +34b3ec2,20 +34b3ec3,25 +34b3ec4,3c +34b3ec5,2 +34b3ec6,80 +34b3ec7,40 +34b3ec8,8c +34b3ec9,42 +34b3eca,64 +34b3ecb,cc +34b3ecc,18 +34b3ecd,40 +34b3ecf,2a +34b3ed0,3c +34b3ed1,12 +34b3ed2,80 +34b3ed3,40 +34b3ed4,26 +34b3ed5,52 +34b3ed6,64 +34b3ed7,2c +34b3eda,88 +34b3edb,25 +34b3edc,2 +34b3edd,40 +34b3ede,a0 +34b3edf,25 +34b3ee0,3c +34b3ee1,16 +34b3ee2,80 +34b3ee3,11 34b3ee4,3c -34b3ee5,12 +34b3ee5,17 34b3ee6,80 34b3ee7,40 34b3ee8,26 -34b3ee9,52 +34b3ee9,f7 34b3eea,63 -34b3eeb,70 -34b3eee,88 -34b3eef,25 -34b3ef0,2 -34b3ef1,40 -34b3ef2,a0 -34b3ef3,25 -34b3ef4,3c -34b3ef5,16 -34b3ef6,80 -34b3ef7,11 -34b3ef8,3c -34b3ef9,17 -34b3efa,80 -34b3efb,40 -34b3efc,26 -34b3efd,f7 -34b3efe,63 -34b3eff,1c -34b3f00,3c -34b3f01,15 -34b3f02,80 -34b3f03,40 -34b3f05,11 -34b3f06,10 -34b3f07,40 -34b3f09,51 -34b3f0a,10 -34b3f0b,21 -34b3f0d,2 -34b3f0e,10 -34b3f0f,80 -34b3f11,54 -34b3f12,10 -34b3f13,21 -34b3f14,90 -34b3f15,42 -34b3f17,1 -34b3f18,30 -34b3f19,42 -34b3f1b,10 -34b3f1c,50 -34b3f1d,40 -34b3f1f,17 -34b3f20,26 -34b3f21,31 -34b3f23,1 -34b3f24,36 -34b3f25,c2 -34b3f26,a5 -34b3f27,d0 -34b3f28,92 -34b3f29,43 -34b3f2d,43 -34b3f2e,10 -34b3f2f,21 -34b3f30,90 -34b3f31,42 -34b3f33,a8 -34b3f35,2 -34b3f36,10 -34b3f37,42 -34b3f38,30 -34b3f39,42 -34b3f3b,1 -34b3f3c,50 -34b3f3d,40 -34b3f3f,f -34b3f40,26 -34b3f41,31 -34b3f43,1 -34b3f44,24 +34b3eeb,d8 +34b3eec,3c +34b3eed,15 +34b3eee,80 +34b3eef,40 +34b3ef1,11 +34b3ef2,10 +34b3ef3,40 +34b3ef5,51 +34b3ef6,10 +34b3ef7,21 +34b3ef9,2 +34b3efa,10 +34b3efb,80 +34b3efd,54 +34b3efe,10 +34b3eff,21 +34b3f00,90 +34b3f01,42 +34b3f03,1 +34b3f04,30 +34b3f05,42 +34b3f07,10 +34b3f08,50 +34b3f09,40 +34b3f0b,17 +34b3f0c,26 +34b3f0d,31 +34b3f0f,1 +34b3f10,36 +34b3f11,c2 +34b3f12,a5 +34b3f13,d0 +34b3f14,92 +34b3f15,43 +34b3f19,43 +34b3f1a,10 +34b3f1b,21 +34b3f1c,90 +34b3f1d,42 +34b3f1f,a8 +34b3f21,2 +34b3f22,10 +34b3f23,82 +34b3f24,30 +34b3f25,42 +34b3f27,1 +34b3f28,50 +34b3f29,40 +34b3f2b,f +34b3f2c,26 +34b3f2d,31 +34b3f2f,1 +34b3f30,24 +34b3f31,2 +34b3f33,10 +34b3f34,af +34b3f35,a2 +34b3f37,18 +34b3f38,af +34b3f39,a2 +34b3f3b,14 +34b3f3d,11 +34b3f3e,10 +34b3f3f,c0 +34b3f41,51 +34b3f42,10 +34b3f43,21 34b3f45,2 -34b3f47,10 -34b3f48,af -34b3f49,a2 -34b3f4b,18 +34b3f46,10 +34b3f47,40 +34b3f48,24 +34b3f49,42 +34b3f4b,4 34b3f4c,af 34b3f4d,a2 -34b3f4f,14 -34b3f51,11 -34b3f52,10 -34b3f53,c0 -34b3f55,51 -34b3f56,10 -34b3f57,21 -34b3f59,2 -34b3f5a,10 -34b3f5b,40 -34b3f5c,24 -34b3f5d,42 -34b3f5f,4 -34b3f60,af -34b3f61,a2 -34b3f63,10 -34b3f64,3 -34b3f65,c0 -34b3f66,38 -34b3f67,25 -34b3f6a,30 -34b3f6b,25 +34b3f4f,10 +34b3f50,3 +34b3f51,c0 +34b3f52,38 +34b3f53,25 +34b3f56,30 +34b3f57,25 +34b3f58,2 +34b3f59,e0 +34b3f5a,28 +34b3f5b,25 +34b3f5c,c +34b3f5d,10 +34b3f5e,14 +34b3f5f,af +34b3f60,2 +34b3f62,20 +34b3f63,25 +34b3f64,26 +34b3f65,31 +34b3f67,1 +34b3f68,8e +34b3f69,a2 +34b3f6a,64 +34b3f6b,cc 34b3f6c,2 -34b3f6d,e0 -34b3f6e,28 -34b3f6f,25 -34b3f70,c -34b3f71,10 -34b3f72,14 -34b3f73,af -34b3f74,2 -34b3f76,20 -34b3f77,25 +34b3f6d,22 +34b3f6e,10 +34b3f6f,2a +34b3f70,14 +34b3f71,40 +34b3f72,ff +34b3f73,df +34b3f74,26 +34b3f75,52 +34b3f77,c 34b3f78,26 -34b3f79,31 -34b3f7b,1 -34b3f7c,8e -34b3f7d,a2 -34b3f7e,64 -34b3f7f,10 -34b3f80,2 -34b3f81,22 -34b3f82,10 -34b3f83,2a -34b3f84,14 -34b3f85,40 -34b3f86,ff -34b3f87,df -34b3f88,26 -34b3f89,52 -34b3f8b,c -34b3f8c,3c -34b3f8d,2 -34b3f8e,80 -34b3f8f,40 -34b3f90,8c -34b3f91,42 -34b3f92,64 -34b3f93,20 -34b3f94,10 -34b3f95,40 -34b3f97,35 -34b3f98,3c -34b3f99,2 -34b3f9a,80 -34b3f9b,40 -34b3f9c,8c -34b3f9d,42 -34b3f9e,64 -34b3f9f,10 -34b3fa0,18 -34b3fa1,40 -34b3fa3,32 -34b3fa4,3c -34b3fa5,12 -34b3fa6,80 -34b3fa7,40 -34b3fa8,26 -34b3fa9,52 -34b3faa,63 -34b3fab,70 -34b3fac,24 -34b3fad,14 -34b3faf,5 -34b3fb2,88 -34b3fb3,25 +34b3f79,7e +34b3f7b,36 +34b3f7c,24 +34b3f7d,7 +34b3f7f,1 +34b3f80,24 +34b3f81,6 +34b3f83,f +34b3f84,3c +34b3f85,5 +34b3f86,80 +34b3f87,40 +34b3f88,24 +34b3f89,a5 +34b3f8a,63 +34b3f8b,d8 +34b3f8c,c +34b3f8d,10 +34b3f8e,14 +34b3f8f,1c +34b3f90,2 +34b3f92,20 +34b3f93,25 +34b3f94,3c +34b3f95,2 +34b3f96,80 +34b3f97,40 +34b3f98,8c +34b3f99,42 +34b3f9a,64 +34b3f9b,cc +34b3f9c,18 +34b3f9d,40 +34b3f9f,62 +34b3fa0,3c +34b3fa1,12 +34b3fa2,80 +34b3fa3,40 +34b3fa4,26 +34b3fa5,52 +34b3fa6,64 +34b3fa7,2c +34b3faa,88 +34b3fab,25 +34b3fac,2 +34b3fad,40 +34b3fae,a0 +34b3faf,25 +34b3fb0,3c +34b3fb1,16 +34b3fb2,80 +34b3fb3,11 34b3fb4,3c 34b3fb5,17 34b3fb6,80 34b3fb7,40 -34b3fb8,3c -34b3fb9,16 -34b3fba,80 -34b3fbb,40 -34b3fbc,26 -34b3fbd,d6 -34b3fbe,64 -34b3fbf,3c -34b3fc0,3c -34b3fc1,15 -34b3fc2,80 +34b3fb8,26 +34b3fb9,f7 +34b3fba,63 +34b3fbb,d8 +34b3fbc,3c +34b3fbd,15 +34b3fbe,80 +34b3fbf,40 +34b3fc1,11 +34b3fc2,10 34b3fc3,40 -34b3fc4,26 -34b3fc5,b5 -34b3fc6,63 -34b3fc8,3c +34b3fc5,51 +34b3fc6,10 +34b3fc7,21 34b3fc9,2 -34b3fca,80 -34b3fcb,40 -34b3fcc,24 -34b3fcd,42 -34b3fce,63 -34b3fcf,4 -34b3fd0,af -34b3fd1,a2 -34b3fd3,38 -34b3fd4,3c -34b3fd5,1e -34b3fd6,80 -34b3fd7,40 -34b3fd8,8e -34b3fd9,e2 -34b3fda,64 -34b3fdb,1c -34b3fdc,50 -34b3fdd,40 -34b3fdf,14 -34b3fe0,92 -34b3fe1,42 -34b3fe5,11 -34b3fe6,10 -34b3fe7,40 -34b3fe9,51 +34b3fca,10 +34b3fcb,80 +34b3fcd,54 +34b3fce,10 +34b3fcf,21 +34b3fd0,90 +34b3fd1,42 +34b3fd3,1 +34b3fd4,30 +34b3fd5,42 +34b3fd7,10 +34b3fd8,50 +34b3fd9,40 +34b3fdb,17 +34b3fdc,26 +34b3fdd,31 +34b3fdf,1 +34b3fe0,36 +34b3fe1,c2 +34b3fe2,a5 +34b3fe3,d0 +34b3fe4,92 +34b3fe5,43 +34b3fe9,43 34b3fea,10 34b3feb,21 -34b3fed,2 -34b3fee,10 -34b3fef,80 -34b3ff0,27 -34b3ff1,c3 -34b3ff2,63 -34b3ff3,70 -34b3ff5,43 -34b3ff6,10 -34b3ff7,21 -34b3ff8,90 -34b3ff9,42 -34b3ffb,1 -34b3ffc,30 -34b3ffd,42 -34b3fff,10 -34b4000,50 -34b4001,40 -34b4003,b -34b4004,92 -34b4005,42 -34b4008,92 -34b4009,43 -34b400c,3c -34b400d,2 -34b400e,80 -34b400f,11 -34b4010,34 -34b4011,42 -34b4012,a5 -34b4013,d0 -34b4015,43 +34b3fec,90 +34b3fed,42 +34b3fef,a8 +34b3ff1,2 +34b3ff2,10 +34b3ff3,42 +34b3ff4,30 +34b3ff5,42 +34b3ff7,1 +34b3ff8,50 +34b3ff9,40 +34b3ffb,f +34b3ffc,26 +34b3ffd,31 +34b3fff,1 +34b4000,24 +34b4001,2 +34b4003,10 +34b4004,af +34b4005,a2 +34b4007,18 +34b4008,af +34b4009,a2 +34b400b,14 +34b400d,11 +34b400e,10 +34b400f,c0 +34b4011,51 +34b4012,10 +34b4013,21 +34b4015,2 34b4016,10 -34b4017,21 -34b4018,90 +34b4017,40 +34b4018,24 34b4019,42 -34b401b,a8 -34b401d,2 -34b401e,10 -34b401f,42 -34b4020,30 -34b4021,42 -34b4023,1 -34b4024,50 -34b4025,40 -34b4027,b -34b4028,26 -34b4029,31 -34b402b,1 -34b402c,92 -34b402d,42 -34b4031,56 -34b4032,10 -34b4033,21 -34b4034,90 -34b4035,42 -34b4038,14 -34b4039,40 -34b403b,2 +34b401b,4 +34b401c,af +34b401d,a2 +34b401f,10 +34b4020,3 +34b4021,c0 +34b4022,38 +34b4023,25 +34b4026,30 +34b4027,25 +34b4028,2 +34b4029,e0 +34b402a,28 +34b402b,25 +34b402c,c +34b402d,10 +34b402e,14 +34b402f,af +34b4030,2 +34b4032,20 +34b4033,25 +34b4034,26 +34b4035,31 +34b4037,1 +34b4038,8e +34b4039,a2 +34b403a,64 +34b403b,cc 34b403c,2 -34b403d,a0 -34b403e,20 -34b403f,25 -34b4040,8f -34b4041,a4 -34b4043,38 -34b4044,2 -34b4045,80 -34b4046,30 -34b4047,25 -34b4048,c -34b4049,10 -34b404a,18 -34b404b,44 -34b404c,26 -34b404d,65 -34b404f,48 -34b4050,26 -34b4051,31 -34b4053,1 -34b4054,26 -34b4055,94 -34b4057,12 -34b4058,3c -34b4059,2 -34b405a,80 -34b405b,40 -34b405c,8c -34b405d,42 -34b405e,64 -34b405f,10 -34b4060,2 -34b4061,22 -34b4062,10 -34b4063,2a -34b4064,14 -34b4065,40 -34b4066,ff -34b4067,dc -34b4068,26 -34b4069,52 -34b406b,c -34b406c,c -34b406d,10 -34b406e,18 -34b406f,6e -34b4070,2 -34b4072,20 -34b4073,25 -34b4074,8e -34b4075,2 -34b4077,8 -34b4078,24 -34b4079,43 -34b407b,8 -34b407c,ae -34b407d,3 -34b407f,8 -34b4080,3c -34b4081,3 -34b4082,e9 -34b4084,ac -34b4085,43 -34b4088,ac -34b4089,40 -34b408b,4 -34b408c,8e -34b408d,2 -34b408f,8 -34b4090,24 -34b4091,43 -34b4093,8 -34b4094,ae -34b4095,3 -34b4097,8 -34b4098,3c -34b4099,3 -34b409a,df -34b409c,ac -34b409d,43 -34b40a0,ac -34b40a1,40 -34b40a3,4 -34b40a4,8f -34b40a5,bf -34b40a7,64 -34b40a8,8f -34b40a9,be -34b40ab,60 -34b40ac,8f -34b40ad,b7 -34b40af,5c -34b40b0,8f -34b40b1,b6 -34b40b3,58 -34b40b4,8f -34b40b5,b5 -34b40b7,54 -34b40b8,8f -34b40b9,b4 -34b40bb,50 -34b40bc,8f -34b40bd,b3 -34b40bf,4c -34b40c0,8f -34b40c1,b2 -34b40c3,48 -34b40c4,8f -34b40c5,b1 -34b40c7,44 -34b40c8,8f -34b40c9,b0 -34b40cb,40 -34b40cc,3 -34b40cd,e0 -34b40cf,8 -34b40d0,27 -34b40d1,bd -34b40d3,68 -34b40d4,10 -34b40d6,fe -34b40d7,d8 -34b40d8,26 -34b40d9,73 -34b40db,14 -34b40dc,3 -34b40dd,e0 -34b40df,8 -34b40e4,27 -34b40e5,bd -34b40e6,ff -34b40e7,e8 -34b40e8,af -34b40e9,bf -34b40eb,14 -34b40ec,c -34b40ed,10 -34b40ee,15 -34b40ef,b8 -34b40f0,24 -34b40f1,4 -34b40f2,4 -34b40f4,3c -34b40f5,3 -34b40f6,80 -34b40f7,40 -34b40f8,ac -34b40f9,62 -34b40fa,64 -34b40fb,28 -34b40fc,3c -34b40fd,3 -34b40fe,80 -34b40ff,40 -34b4100,ac -34b4101,62 -34b4102,64 -34b4103,24 -34b4104,8f -34b4105,bf -34b4107,14 -34b4108,3 -34b4109,e0 -34b410b,8 -34b410c,27 -34b410d,bd -34b410f,18 -34b4110,80 -34b4111,82 -34b4114,10 -34b4115,40 -34b4117,26 -34b4118,24 -34b4119,87 -34b411b,1 -34b411c,3c -34b411d,3 -34b411e,80 -34b411f,40 -34b4120,8c -34b4121,68 -34b4122,64 -34b4123,28 -34b4124,25 -34b4125,8 -34b4126,4 -34b4128,3c -34b4129,3 -34b412a,80 -34b412b,40 -34b412c,8c -34b412d,63 -34b412e,64 -34b412f,24 -34b4131,68 -34b4132,20 -34b4133,2b -34b4134,10 -34b4135,80 -34b4137,1e -34b4138,3c -34b4139,a -34b413a,ff -34b413c,25 -34b413d,4a -34b413e,f -34b413f,ff -34b4140,30 -34b4141,c6 -34b4142,f -34b4143,ff -34b4144,24 -34b4145,b -34b4146,f0 -34b4148,3c -34b4149,9 -34b414a,80 -34b414b,40 -34b414c,10 -34b414f,7 -34b4150,25 -34b4151,29 -34b4152,63 -34b4153,c -34b4155,68 -34b4156,20 -34b4157,2b -34b4158,54 -34b4159,80 -34b415b,5 -34b415c,a0 -34b415d,62 -34b4160,3c -34b4161,2 -34b4162,80 -34b4163,40 -34b4164,3 -34b4165,e0 -34b4167,8 -34b4168,ac -34b4169,43 -34b416a,64 -34b416b,24 -34b416c,a0 -34b416d,62 -34b4170,30 -34b4171,a2 -34b4172,f -34b4173,ff -34b4175,2 -34b4176,23 -34b4178,8c -34b4179,62 -34b417d,4a -34b417e,10 -34b417f,24 -34b4181,44 -34b4182,10 -34b4183,25 -34b4185,4b -34b4186,10 -34b4187,24 -34b4189,46 -34b418a,10 -34b418b,25 -34b418c,ac -34b418d,62 -34b4190,95 -34b4191,22 -34b4193,4 -34b4195,a2 -34b4196,28 -34b4197,21 -34b4198,24 -34b4199,e7 -34b419b,1 -34b419c,80 -34b419d,e2 -34b419e,ff -34b419f,ff -34b41a0,14 -34b41a1,40 +34b403d,22 +34b403e,10 +34b403f,2a +34b4040,14 +34b4041,40 +34b4042,ff +34b4043,df +34b4044,26 +34b4045,52 +34b4047,c +34b4048,3c +34b4049,2 +34b404a,80 +34b404b,40 +34b404c,8c +34b404d,42 +34b404e,64 +34b404f,dc +34b4050,10 +34b4051,40 +34b4053,35 +34b4054,3c +34b4055,2 +34b4056,80 +34b4057,40 +34b4058,8c +34b4059,42 +34b405a,64 +34b405b,cc +34b405c,18 +34b405d,40 +34b405f,32 +34b4060,3c +34b4061,12 +34b4062,80 +34b4063,40 +34b4064,26 +34b4065,52 +34b4066,64 +34b4067,2c +34b4068,24 +34b4069,14 +34b406b,5 +34b406e,88 +34b406f,25 +34b4070,3c +34b4071,17 +34b4072,80 +34b4073,40 +34b4074,3c +34b4075,16 +34b4076,80 +34b4077,40 +34b4078,26 +34b4079,d6 +34b407a,64 +34b407b,f8 +34b407c,3c +34b407d,15 +34b407e,80 +34b407f,40 +34b4080,26 +34b4081,b5 +34b4082,63 +34b4083,bc +34b4084,3c +34b4085,2 +34b4086,80 +34b4087,40 +34b4088,24 +34b4089,42 +34b408a,63 +34b408b,c0 +34b408c,af +34b408d,a2 +34b408f,38 +34b4090,3c +34b4091,1e +34b4092,80 +34b4093,40 +34b4094,8e +34b4095,e2 +34b4096,64 +34b4097,d8 +34b4098,50 +34b4099,40 +34b409b,14 +34b409c,92 +34b409d,42 +34b40a1,11 +34b40a2,10 +34b40a3,40 +34b40a5,51 +34b40a6,10 +34b40a7,21 +34b40a9,2 +34b40aa,10 +34b40ab,80 +34b40ac,27 +34b40ad,c3 +34b40ae,64 +34b40af,2c +34b40b1,43 +34b40b2,10 +34b40b3,21 +34b40b4,90 +34b40b5,42 +34b40b7,1 +34b40b8,30 +34b40b9,42 +34b40bb,10 +34b40bc,50 +34b40bd,40 +34b40bf,b +34b40c0,92 +34b40c1,42 +34b40c4,92 +34b40c5,43 +34b40c8,3c +34b40c9,2 +34b40ca,80 +34b40cb,11 +34b40cc,34 +34b40cd,42 +34b40ce,a5 +34b40cf,d0 +34b40d1,43 +34b40d2,10 +34b40d3,21 +34b40d4,90 +34b40d5,42 +34b40d7,a8 +34b40d9,2 +34b40da,10 +34b40db,42 +34b40dc,30 +34b40dd,42 +34b40df,1 +34b40e0,50 +34b40e1,40 +34b40e3,b +34b40e4,26 +34b40e5,31 +34b40e7,1 +34b40e8,92 +34b40e9,42 +34b40ed,56 +34b40ee,10 +34b40ef,21 +34b40f0,90 +34b40f1,42 +34b40f4,14 +34b40f5,40 +34b40f7,2 +34b40f8,2 +34b40f9,a0 +34b40fa,20 +34b40fb,25 +34b40fc,8f +34b40fd,a4 +34b40ff,38 +34b4100,2 +34b4101,80 +34b4102,30 +34b4103,25 +34b4104,c +34b4105,10 +34b4106,18 +34b4107,73 +34b4108,26 +34b4109,65 +34b410b,48 +34b410c,26 +34b410d,31 +34b410f,1 +34b4110,26 +34b4111,94 +34b4113,12 +34b4114,3c +34b4115,2 +34b4116,80 +34b4117,40 +34b4118,8c +34b4119,42 +34b411a,64 +34b411b,cc +34b411c,2 +34b411d,22 +34b411e,10 +34b411f,2a +34b4120,14 +34b4121,40 +34b4122,ff +34b4123,dc +34b4124,26 +34b4125,52 +34b4127,c +34b4128,c +34b4129,10 +34b412a,18 +34b412b,9d +34b412c,2 +34b412e,20 +34b412f,25 +34b4130,8e +34b4131,2 +34b4133,8 +34b4134,24 +34b4135,43 +34b4137,8 +34b4138,ae +34b4139,3 +34b413b,8 +34b413c,3c +34b413d,3 +34b413e,e9 +34b4140,ac +34b4141,43 +34b4144,ac +34b4145,40 +34b4147,4 +34b4148,8e +34b4149,2 +34b414b,8 +34b414c,24 +34b414d,43 +34b414f,8 +34b4150,ae +34b4151,3 +34b4153,8 +34b4154,3c +34b4155,3 +34b4156,df +34b4158,ac +34b4159,43 +34b415c,ac +34b415d,40 +34b415f,4 +34b4160,8f +34b4161,bf +34b4163,64 +34b4164,8f +34b4165,be +34b4167,60 +34b4168,8f +34b4169,b7 +34b416b,5c +34b416c,8f +34b416d,b6 +34b416f,58 +34b4170,8f +34b4171,b5 +34b4173,54 +34b4174,8f +34b4175,b4 +34b4177,50 +34b4178,8f +34b4179,b3 +34b417b,4c +34b417c,8f +34b417d,b2 +34b417f,48 +34b4180,8f +34b4181,b1 +34b4183,44 +34b4184,8f +34b4185,b0 +34b4187,40 +34b4188,3 +34b4189,e0 +34b418b,8 +34b418c,27 +34b418d,bd +34b418f,68 +34b4190,10 +34b4192,fe +34b4193,a8 +34b4194,26 +34b4195,73 +34b4197,14 +34b4198,3 +34b4199,e0 +34b419b,8 +34b41a0,27 +34b41a1,bd 34b41a2,ff -34b41a3,ec -34b41a4,24 -34b41a5,63 -34b41a7,4 -34b41a8,3c -34b41a9,2 -34b41aa,80 -34b41ab,40 -34b41ac,ac -34b41ad,43 -34b41ae,64 -34b41af,24 -34b41b0,3 -34b41b1,e0 -34b41b3,8 -34b41b8,27 -34b41b9,bd -34b41ba,ff -34b41bb,b0 -34b41bc,af -34b41bd,bf -34b41bf,4c -34b41c0,af -34b41c1,be -34b41c3,48 -34b41c4,af -34b41c5,b7 -34b41c7,44 -34b41c8,af -34b41c9,b6 -34b41cb,40 -34b41cc,af -34b41cd,b5 -34b41cf,3c -34b41d0,af -34b41d1,b4 -34b41d3,38 -34b41d4,af -34b41d5,b3 -34b41d7,34 -34b41d8,af -34b41d9,b2 -34b41db,30 -34b41dc,af -34b41dd,b1 -34b41df,2c -34b41e0,af -34b41e1,b0 -34b41e3,28 -34b41e5,80 -34b41e6,a8 -34b41e7,25 -34b41ea,b0 -34b41eb,25 -34b41ee,90 -34b41ef,25 -34b41f0,3c -34b41f1,14 -34b41f2,80 -34b41f3,40 -34b41f4,26 -34b41f5,94 -34b41f6,63 -34b41f7,c -34b41f8,3c -34b41f9,1e -34b41fa,80 -34b41fb,40 -34b41fc,3c -34b41fd,13 -34b41fe,80 -34b41ff,40 -34b4200,3c -34b4201,17 -34b4202,38 -34b4203,e3 -34b4204,af -34b4205,b4 -34b4207,20 -34b4208,24 -34b4209,7 -34b420b,12 -34b420c,2 -34b420d,c0 -34b420e,30 -34b420f,25 -34b4210,2 -34b4211,80 -34b4212,28 -34b4213,25 -34b4214,c -34b4215,10 -34b4216,14 -34b4217,1c -34b4218,2 -34b4219,a0 -34b421a,20 -34b421b,25 -34b421c,8f -34b421d,c5 -34b421e,64 -34b421f,28 -34b4220,10 -34b4223,1f -34b4224,36 -34b4225,f1 -34b4226,8e -34b4227,39 -34b4228,24 -34b4229,42 -34b422a,ff -34b422b,e0 -34b422d,51 -34b422f,18 -34b4232,18 -34b4233,10 -34b4235,3 -34b4236,18 -34b4237,83 -34b4239,2 -34b423a,27 -34b423b,c3 -34b423d,64 -34b423e,18 -34b423f,23 -34b4240,14 -34b4241,72 -34b4243,16 -34b4244,24 -34b4245,b0 -34b4247,4 -34b4248,8c -34b4249,a7 -34b424d,7 -34b424e,3b -34b424f,2 -34b4251,51 -34b4253,18 -34b4256,30 -34b4257,10 -34b4259,6 -34b425a,30 -34b425b,83 -34b425d,c4 -34b425e,30 -34b425f,23 -34b4261,6 -34b4262,18 -34b4263,c0 -34b4265,66 -34b4266,30 -34b4267,21 -34b4269,6 -34b426a,30 -34b426b,40 -34b426c,96 -34b426d,83 -34b426f,6 -34b4270,af -34b4271,a3 -34b4273,18 -34b4274,96 -34b4275,83 -34b4277,4 +34b41a3,e8 +34b41a4,af +34b41a5,bf +34b41a7,14 +34b41a8,c +34b41a9,10 +34b41aa,15 +34b41ab,b7 +34b41ac,24 +34b41ad,4 +34b41ae,4 +34b41b0,3c +34b41b1,3 +34b41b2,80 +34b41b3,40 +34b41b4,ac +34b41b5,62 +34b41b6,64 +34b41b7,e4 +34b41b8,3c +34b41b9,3 +34b41ba,80 +34b41bb,40 +34b41bc,ac +34b41bd,62 +34b41be,64 +34b41bf,e0 +34b41c0,8f +34b41c1,bf +34b41c3,14 +34b41c4,3 +34b41c5,e0 +34b41c7,8 +34b41c8,27 +34b41c9,bd +34b41cb,18 +34b41cc,80 +34b41cd,82 +34b41d0,10 +34b41d1,40 +34b41d3,26 +34b41d4,24 +34b41d5,87 +34b41d7,1 +34b41d8,3c +34b41d9,3 +34b41da,80 +34b41db,40 +34b41dc,8c +34b41dd,68 +34b41de,64 +34b41df,e4 +34b41e0,25 +34b41e1,8 +34b41e2,4 +34b41e4,3c +34b41e5,3 +34b41e6,80 +34b41e7,40 +34b41e8,8c +34b41e9,63 +34b41ea,64 +34b41eb,e0 +34b41ed,68 +34b41ee,20 +34b41ef,2b +34b41f0,10 +34b41f1,80 +34b41f3,1e +34b41f4,3c +34b41f5,a +34b41f6,ff +34b41f8,25 +34b41f9,4a +34b41fa,f +34b41fb,ff +34b41fc,30 +34b41fd,c6 +34b41fe,f +34b41ff,ff +34b4200,24 +34b4201,b +34b4202,f0 +34b4204,3c +34b4205,9 +34b4206,80 +34b4207,40 +34b4208,10 +34b420b,7 +34b420c,25 +34b420d,29 +34b420e,63 +34b420f,c8 +34b4211,68 +34b4212,20 +34b4213,2b +34b4214,54 +34b4215,80 +34b4217,5 +34b4218,a0 +34b4219,62 +34b421c,3c +34b421d,2 +34b421e,80 +34b421f,40 +34b4220,3 +34b4221,e0 +34b4223,8 +34b4224,ac +34b4225,43 +34b4226,64 +34b4227,e0 +34b4228,a0 +34b4229,62 +34b422c,30 +34b422d,a2 +34b422e,f +34b422f,ff +34b4231,2 +34b4232,23 +34b4234,8c +34b4235,62 +34b4239,4a +34b423a,10 +34b423b,24 +34b423d,44 +34b423e,10 +34b423f,25 +34b4241,4b +34b4242,10 +34b4243,24 +34b4245,46 +34b4246,10 +34b4247,25 +34b4248,ac +34b4249,62 +34b424c,95 +34b424d,22 +34b424f,4 +34b4251,a2 +34b4252,28 +34b4253,21 +34b4254,24 +34b4255,e7 +34b4257,1 +34b4258,80 +34b4259,e2 +34b425a,ff +34b425b,ff +34b425c,14 +34b425d,40 +34b425e,ff +34b425f,ec +34b4260,24 +34b4261,63 +34b4263,4 +34b4264,3c +34b4265,2 +34b4266,80 +34b4267,40 +34b4268,ac +34b4269,43 +34b426a,64 +34b426b,e0 +34b426c,3 +34b426d,e0 +34b426f,8 +34b4274,27 +34b4275,bd +34b4276,ff +34b4277,b0 34b4278,af -34b4279,a3 -34b427b,14 -34b427c,8c -34b427d,a3 -34b4280,30 -34b4281,63 -34b4282,f -34b4283,ff +34b4279,bf +34b427b,4c +34b427c,af +34b427d,be +34b427f,48 +34b4280,af +34b4281,b7 +34b4283,44 34b4284,af -34b4285,a3 -34b4287,10 -34b4288,30 -34b4289,e7 -34b428a,f -34b428b,ff -34b428d,46 -34b428e,30 -34b428f,23 -34b4290,8f -34b4291,a5 -34b4293,20 -34b4294,c -34b4295,10 -34b4296,14 -34b4297,af -34b4298,2 -34b4299,a0 -34b429a,20 -34b429b,25 -34b429c,2 -34b429e,28 -34b429f,25 -34b42a0,8e -34b42a1,62 -34b42a2,64 -34b42a3,24 -34b42a5,a2 -34b42a6,10 -34b42a7,2b -34b42a8,54 -34b42a9,40 -34b42aa,ff -34b42ab,df -34b42ac,80 -34b42ad,a2 +34b4285,b6 +34b4287,40 +34b4288,af +34b4289,b5 +34b428b,3c +34b428c,af +34b428d,b4 +34b428f,38 +34b4290,af +34b4291,b3 +34b4293,34 +34b4294,af +34b4295,b2 +34b4297,30 +34b4298,af +34b4299,b1 +34b429b,2c +34b429c,af +34b429d,b0 +34b429f,28 +34b42a1,80 +34b42a2,a8 +34b42a3,25 +34b42a6,b0 +34b42a7,25 +34b42aa,90 +34b42ab,25 +34b42ac,3c +34b42ad,14 +34b42ae,80 +34b42af,40 34b42b0,26 -34b42b1,52 -34b42b3,1 -34b42b4,24 -34b42b5,2 -34b42b7,6 -34b42b8,16 -34b42b9,42 -34b42ba,ff -34b42bb,d3 -34b42bc,26 -34b42bd,d6 -34b42bf,12 -34b42c0,3c -34b42c1,2 -34b42c2,80 -34b42c3,40 -34b42c4,8c -34b42c5,43 -34b42c6,64 -34b42c7,28 -34b42c8,3c -34b42c9,2 -34b42ca,80 -34b42cb,40 -34b42cc,ac -34b42cd,43 -34b42ce,64 -34b42cf,24 -34b42d0,8f -34b42d1,bf -34b42d3,4c -34b42d4,8f -34b42d5,be -34b42d7,48 +34b42b1,94 +34b42b2,63 +34b42b3,c8 +34b42b4,3c +34b42b5,1e +34b42b6,80 +34b42b7,40 +34b42b8,3c +34b42b9,13 +34b42ba,80 +34b42bb,40 +34b42bc,3c +34b42bd,17 +34b42be,38 +34b42bf,e3 +34b42c0,af +34b42c1,b4 +34b42c3,20 +34b42c4,24 +34b42c5,7 +34b42c7,12 +34b42c8,2 +34b42c9,c0 +34b42ca,30 +34b42cb,25 +34b42cc,2 +34b42cd,80 +34b42ce,28 +34b42cf,25 +34b42d0,c +34b42d1,10 +34b42d2,14 +34b42d3,1c +34b42d4,2 +34b42d5,a0 +34b42d6,20 +34b42d7,25 34b42d8,8f -34b42d9,b7 -34b42db,44 -34b42dc,8f -34b42dd,b6 -34b42df,40 -34b42e0,8f -34b42e1,b5 -34b42e3,3c -34b42e4,8f -34b42e5,b4 -34b42e7,38 -34b42e8,8f -34b42e9,b3 -34b42eb,34 -34b42ec,8f -34b42ed,b2 -34b42ef,30 -34b42f0,8f -34b42f1,b1 -34b42f3,2c -34b42f4,8f -34b42f5,b0 -34b42f7,28 -34b42f8,3 -34b42f9,e0 -34b42fb,8 -34b42fc,27 -34b42fd,bd -34b42ff,50 -34b4300,4d -34b4301,51 -34b4304,4e -34b4305,6f -34b4306,72 -34b4307,6d -34b4308,61 -34b4309,6c -34b4311,8 -34b4313,e -34b4315,5f -34b4316,3 -34b4317,1 -34b4318,1 -34b4321,18 -34b4323,18 -34b4325,4 -34b4327,3 -34b4328,4 -34b4331,10 -34b4333,10 -34b4335,6 -34b4336,3 -34b4337,1 -34b4338,1 -34b4341,10 +34b42d9,c5 +34b42da,64 +34b42db,e4 +34b42dc,10 +34b42df,1f +34b42e0,36 +34b42e1,f1 +34b42e2,8e +34b42e3,39 +34b42e4,24 +34b42e5,42 +34b42e6,ff +34b42e7,e0 +34b42e9,51 +34b42eb,18 +34b42ee,18 +34b42ef,10 +34b42f1,3 +34b42f2,18 +34b42f3,83 +34b42f5,2 +34b42f6,27 +34b42f7,c3 +34b42f9,64 +34b42fa,18 +34b42fb,23 +34b42fc,14 +34b42fd,72 +34b42ff,16 +34b4300,24 +34b4301,b0 +34b4303,4 +34b4304,8c +34b4305,a7 +34b4309,7 +34b430a,3b +34b430b,2 +34b430d,51 +34b430f,18 +34b4312,30 +34b4313,10 +34b4315,6 +34b4316,30 +34b4317,83 +34b4319,c4 +34b431a,30 +34b431b,23 +34b431d,6 +34b431e,18 +34b431f,c0 +34b4321,66 +34b4322,30 +34b4323,21 +34b4325,6 +34b4326,30 +34b4327,40 +34b4328,96 +34b4329,83 +34b432b,6 +34b432c,af +34b432d,a3 +34b432f,18 +34b4330,96 +34b4331,83 +34b4333,4 +34b4334,af +34b4335,a3 +34b4337,14 +34b4338,8c +34b4339,a3 +34b433c,30 +34b433d,63 +34b433e,f +34b433f,ff +34b4340,af +34b4341,a3 34b4343,10 -34b4345,3 -34b4347,3 -34b4348,4 -34b434d,1 -34b434e,2 -34b434f,3 -34b4350,4 -34b4351,5 -34b4352,6 -34b4353,7 -34b4354,ff -34b4355,ff -34b4356,ff -34b4357,ff -34b4358,ff -34b4359,ff -34b435c,11 -34b435d,c2 -34b435e,2d -34b435f,d4 -34b4360,43 -34b4361,22 -34b4362,8 -34b4363,54 -34b4364,ce -34b4365,d1 -34b4366,75 -34b4367,1a -34b4368,a9 -34b4369,3a -34b436a,ea -34b436b,a4 -34b436c,ab -34b436d,21 -34b4371,10 -34b4372,44 -34b4373,65 -34b4374,6b -34b4375,75 -34b437c,1 -34b437d,10 -34b437e,44 -34b437f,6f -34b4380,64 -34b4381,6f -34b4382,6e -34b4383,67 -34b4384,6f -34b4388,2 -34b4389,10 -34b438a,4a -34b438b,61 -34b438c,62 -34b438d,75 -34b4394,3 -34b4395,d0 -34b4396,46 -34b4397,6f -34b4398,72 -34b4399,65 -34b439a,73 -34b439b,74 -34b43a0,4 -34b43a1,d0 -34b43a2,46 -34b43a3,69 -34b43a4,72 -34b43a5,65 -34b43ac,5 -34b43ad,d0 -34b43ae,57 -34b43af,61 -34b43b0,74 -34b43b1,65 -34b43b2,72 -34b43b8,7 -34b43b9,d0 -34b43ba,53 -34b43bb,68 -34b43bc,61 -34b43bd,64 -34b43be,6f -34b43bf,77 -34b43c4,6 -34b43c5,d0 -34b43c6,53 -34b43c7,70 -34b43c8,69 -34b43c9,72 -34b43ca,69 -34b43cb,74 -34b43d0,8 -34b43d1,90 -34b43d2,42 -34b43d3,6f -34b43d4,74 -34b43d5,57 -34b43dc,9 -34b43dd,10 -34b43de,49 -34b43df,63 -34b43e0,65 -34b43e8,b -34b43e9,80 -34b43ea,47 -34b43eb,54 -34b43ec,47 -34b43f4,c -34b43f5,a0 -34b43f6,48 -34b43f7,69 -34b43f8,64 -34b43f9,65 -34b43fa,6f -34b43fb,75 -34b43fc,74 -34b4400,d -34b4401,c0 -34b4402,47 -34b4403,61 -34b4404,6e -34b4405,6f -34b4406,6e -34b440f,1 -34b4413,d -34b448b,d -34b448c,b0 -34b448f,d -34b4490,b0 -34b4493,d -34b4494,b0 -34b4497,c -34b4498,b0 -34b449b,c -34b449c,b0 -34b449f,c -34b44a0,a0 -34b44a7,d -34b44a8,b0 -34b44ab,d -34b44ac,b0 -34b44c3,e8 -34b44c4,ac -34b44c7,e8 -34b44c8,ac -34b44cb,e8 -34b44cc,ac -34b44cf,e8 -34b44d0,ac -34b44f7,d -34b44f8,77 -34b44f9,d0 -34b44fb,2e -34b44fc,3a -34b44fd,b0 -34b44ff,7d -34b4500,c -34b4501,90 -34b4502,8f -34b4503,ff -34b4504,ff -34b4505,fd -34b4507,c9 -34b4508,6e -34b450a,2 -34b450b,e4 -34b450c,ac -34b450e,ef -34b450f,ff -34b4510,ff -34b4511,f4 -34b4512,a -34b4513,b0 -34b4514,e5 -34b4516,c -34b4517,95 -34b4518,e0 -34b451a,e -34b451b,59 -34b451c,c0 -34b4533,7 -34b4534,90 -34b4536,5 -34b4537,ce -34b4538,eb -34b4539,40 -34b453a,c -34b453b,c8 -34b453c,a9 -34b453d,90 -34b453e,d -34b453f,a7 -34b4540,90 -34b4542,8 -34b4543,ec -34b4544,b4 -34b4547,4a -34b4548,dd -34b4549,a0 -34b454b,7 -34b454c,97 -34b454d,e2 -34b454e,c -34b454f,88 -34b4550,aa -34b4551,e0 -34b4552,6 -34b4553,ce -34b4554,ed -34b4555,70 -34b4557,7 -34b4558,90 -34b455b,7 -34b455c,90 -34b456a,6d -34b456b,ea -34b456e,c9 -34b456f,4d -34b4570,60 -34b4572,c9 -34b4573,4d -34b4574,60 -34b4575,33 -34b4576,6d -34b4577,eb -34b4578,6b -34b4579,c6 -34b457b,8c -34b457c,b6 -34b457e,7c -34b457f,a4 -34b4580,ce -34b4581,c4 -34b4582,31 -34b4583,9 -34b4584,c3 -34b4585,bb -34b4587,9 -34b4588,c3 -34b4589,bb -34b458b,2 -34b458c,ce -34b458d,d4 -34b45a2,4 -34b45a3,ce -34b45a4,fb -34b45a6,a -34b45a7,d5 -34b45aa,8 -34b45ab,e3 -34b45ae,9 -34b45af,ec -34b45b2,7e -34b45b3,4d -34b45b4,b0 -34b45b5,ab -34b45b6,bb -34b45b7,5 -34b45b8,e8 -34b45b9,aa -34b45ba,bc -34b45bc,8e -34b45bd,d6 -34b45be,7e -34b45bf,93 -34b45c0,6e -34b45c1,d0 -34b45c2,8 -34b45c3,de -34b45c4,d9 -34b45c5,ea -34b45db,c -34b45dc,a0 -34b45df,c -34b45e0,a0 -34b45e3,c -34b45e4,a0 -34b45e7,c -34b45e8,a0 -34b460c,c9 -34b460f,7 -34b4610,e2 -34b4613,c -34b4614,b0 -34b4617,e -34b4618,80 -34b461b,6f -34b461c,30 -34b461f,8e -34b4623,8e -34b4627,6f -34b4628,40 -34b462b,e -34b462c,80 -34b462f,c -34b4630,b0 -34b4633,7 -34b4634,e2 -34b4638,c9 -34b4643,bb -34b4647,5e -34b4648,40 -34b464b,c -34b464c,a0 -34b464f,a -34b4650,d0 -34b4653,7 -34b4654,e1 -34b4657,6 -34b4658,f4 -34b465b,6 -34b465c,f4 -34b465f,7 -34b4660,e1 -34b4663,a -34b4664,d0 -34b4667,c -34b4668,a0 -34b466b,5e -34b466c,40 -34b466f,bb -34b4683,a -34b4684,80 -34b4686,c -34b4687,8a -34b4688,8a -34b4689,b0 -34b468a,3 -34b468b,be -34b468c,da -34b468d,10 -34b468e,3 -34b468f,be -34b4690,da -34b4691,10 -34b4692,c -34b4693,8a -34b4694,8a -34b4695,b0 -34b4697,a -34b4698,80 -34b46bf,c -34b46c0,a0 -34b46c3,c -34b46c4,a0 -34b46c7,c -34b46c8,a0 -34b46ca,af -34b46cb,ff -34b46cc,ff -34b46cd,f8 +34b4344,30 +34b4345,e7 +34b4346,f +34b4347,ff +34b4349,46 +34b434a,30 +34b434b,23 +34b434c,8f +34b434d,a5 +34b434f,20 +34b4350,c +34b4351,10 +34b4352,14 +34b4353,af +34b4354,2 +34b4355,a0 +34b4356,20 +34b4357,25 +34b4358,2 +34b435a,28 +34b435b,25 +34b435c,8e +34b435d,62 +34b435e,64 +34b435f,e0 +34b4361,a2 +34b4362,10 +34b4363,2b +34b4364,54 +34b4365,40 +34b4366,ff +34b4367,df +34b4368,80 +34b4369,a2 +34b436c,26 +34b436d,52 +34b436f,1 +34b4370,24 +34b4371,2 +34b4373,6 +34b4374,16 +34b4375,42 +34b4376,ff +34b4377,d3 +34b4378,26 +34b4379,d6 +34b437b,12 +34b437c,3c +34b437d,2 +34b437e,80 +34b437f,40 +34b4380,8c +34b4381,43 +34b4382,64 +34b4383,e4 +34b4384,3c +34b4385,2 +34b4386,80 +34b4387,40 +34b4388,ac +34b4389,43 +34b438a,64 +34b438b,e0 +34b438c,8f +34b438d,bf +34b438f,4c +34b4390,8f +34b4391,be +34b4393,48 +34b4394,8f +34b4395,b7 +34b4397,44 +34b4398,8f +34b4399,b6 +34b439b,40 +34b439c,8f +34b439d,b5 +34b439f,3c +34b43a0,8f +34b43a1,b4 +34b43a3,38 +34b43a4,8f +34b43a5,b3 +34b43a7,34 +34b43a8,8f +34b43a9,b2 +34b43ab,30 +34b43ac,8f +34b43ad,b1 +34b43af,2c +34b43b0,8f +34b43b1,b0 +34b43b3,28 +34b43b4,3 +34b43b5,e0 +34b43b7,8 +34b43b8,27 +34b43b9,bd +34b43bb,50 +34b43bc,4d +34b43bd,51 +34b43c0,4e +34b43c1,6f +34b43c2,72 +34b43c3,6d +34b43c4,61 +34b43c5,6c +34b43cd,8 +34b43cf,e +34b43d1,5f +34b43d2,3 +34b43d3,1 +34b43d4,1 +34b43dd,18 +34b43df,18 +34b43e1,12 +34b43e3,3 +34b43e4,4 +34b43ed,10 +34b43ef,10 +34b43f1,6 +34b43f2,3 +34b43f3,1 +34b43f4,1 +34b43fd,10 +34b43ff,10 +34b4401,3 +34b4403,3 +34b4404,4 +34b4409,1 +34b440a,2 +34b440b,3 +34b440c,4 +34b440d,5 +34b440e,6 +34b440f,7 +34b4410,ff +34b4411,ff +34b4412,ff +34b4413,ff +34b4414,ff +34b4415,ff +34b4418,11 +34b4419,c2 +34b441a,2d +34b441b,d4 +34b441c,43 +34b441d,22 +34b441e,8 +34b441f,54 +34b4420,ce +34b4421,d1 +34b4422,75 +34b4423,1a +34b4424,a9 +34b4425,3a +34b4426,ea +34b4427,a4 +34b4428,ab +34b4429,21 +34b442d,10 +34b442e,44 +34b442f,65 +34b4430,6b +34b4431,75 +34b4438,1 +34b4439,10 +34b443a,44 +34b443b,6f +34b443c,64 +34b443d,6f +34b443e,6e +34b443f,67 +34b4440,6f +34b4444,2 +34b4445,10 +34b4446,4a +34b4447,61 +34b4448,62 +34b4449,75 +34b4450,3 +34b4451,d0 +34b4452,46 +34b4453,6f +34b4454,72 +34b4455,65 +34b4456,73 +34b4457,74 +34b445c,4 +34b445d,d0 +34b445e,46 +34b445f,69 +34b4460,72 +34b4461,65 +34b4468,5 +34b4469,d0 +34b446a,57 +34b446b,61 +34b446c,74 +34b446d,65 +34b446e,72 +34b4474,7 +34b4475,d0 +34b4476,53 +34b4477,68 +34b4478,61 +34b4479,64 +34b447a,6f +34b447b,77 +34b4480,6 +34b4481,d0 +34b4482,53 +34b4483,70 +34b4484,69 +34b4485,72 +34b4486,69 +34b4487,74 +34b448c,8 +34b448d,90 +34b448e,42 +34b448f,6f +34b4490,74 +34b4491,57 +34b4498,9 +34b4499,10 +34b449a,49 +34b449b,63 +34b449c,65 +34b44a4,b +34b44a5,80 +34b44a6,47 +34b44a7,54 +34b44a8,47 +34b44b0,c +34b44b1,a0 +34b44b2,48 +34b44b3,69 +34b44b4,64 +34b44b5,65 +34b44b6,6f +34b44b7,75 +34b44b8,74 +34b44bc,d +34b44bd,c0 +34b44be,47 +34b44bf,61 +34b44c0,6e +34b44c1,6f +34b44c2,6e +34b44cb,1 +34b44cf,d +34b4547,d +34b4548,b0 +34b454b,d +34b454c,b0 +34b454f,d +34b4550,b0 +34b4553,c +34b4554,b0 +34b4557,c +34b4558,b0 +34b455b,c +34b455c,a0 +34b4563,d +34b4564,b0 +34b4567,d +34b4568,b0 +34b457f,e8 +34b4580,ac +34b4583,e8 +34b4584,ac +34b4587,e8 +34b4588,ac +34b458b,e8 +34b458c,ac +34b45b3,d +34b45b4,77 +34b45b5,d0 +34b45b7,2e +34b45b8,3a +34b45b9,b0 +34b45bb,7d +34b45bc,c +34b45bd,90 +34b45be,8f +34b45bf,ff +34b45c0,ff +34b45c1,fd +34b45c3,c9 +34b45c4,6e +34b45c6,2 +34b45c7,e4 +34b45c8,ac +34b45ca,ef +34b45cb,ff +34b45cc,ff +34b45cd,f4 +34b45ce,a +34b45cf,b0 +34b45d0,e5 +34b45d2,c +34b45d3,95 +34b45d4,e0 +34b45d6,e +34b45d7,59 +34b45d8,c0 +34b45ef,7 +34b45f0,90 +34b45f2,5 +34b45f3,ce +34b45f4,eb +34b45f5,40 +34b45f6,c +34b45f7,c8 +34b45f8,a9 +34b45f9,90 +34b45fa,d +34b45fb,a7 +34b45fc,90 +34b45fe,8 +34b45ff,ec +34b4600,b4 +34b4603,4a +34b4604,dd +34b4605,a0 +34b4607,7 +34b4608,97 +34b4609,e2 +34b460a,c +34b460b,88 +34b460c,aa +34b460d,e0 +34b460e,6 +34b460f,ce +34b4610,ed +34b4611,70 +34b4613,7 +34b4614,90 +34b4617,7 +34b4618,90 +34b4626,6d +34b4627,ea +34b462a,c9 +34b462b,4d +34b462c,60 +34b462e,c9 +34b462f,4d +34b4630,60 +34b4631,33 +34b4632,6d +34b4633,eb +34b4634,6b +34b4635,c6 +34b4637,8c +34b4638,b6 +34b463a,7c +34b463b,a4 +34b463c,ce +34b463d,c4 +34b463e,31 +34b463f,9 +34b4640,c3 +34b4641,bb +34b4643,9 +34b4644,c3 +34b4645,bb +34b4647,2 +34b4648,ce +34b4649,d4 +34b465e,4 +34b465f,ce +34b4660,fb +34b4662,a +34b4663,d5 +34b4666,8 +34b4667,e3 +34b466a,9 +34b466b,ec +34b466e,7e +34b466f,4d +34b4670,b0 +34b4671,ab +34b4672,bb +34b4673,5 +34b4674,e8 +34b4675,aa +34b4676,bc +34b4678,8e +34b4679,d6 +34b467a,7e +34b467b,93 +34b467c,6e +34b467d,d0 +34b467e,8 +34b467f,de +34b4680,d9 +34b4681,ea +34b4697,c +34b4698,a0 +34b469b,c +34b469c,a0 +34b469f,c +34b46a0,a0 +34b46a3,c +34b46a4,a0 +34b46c8,c9 +34b46cb,7 +34b46cc,e2 34b46cf,c -34b46d0,a0 -34b46d3,c -34b46d4,a0 -34b46d7,c -34b46d8,a0 -34b470f,d -34b4710,d0 -34b4713,e -34b4714,c0 -34b4717,4f -34b4718,80 -34b471b,9d -34b473f,df -34b4740,fb -34b477f,e -34b4780,c0 -34b4783,e -34b4784,c0 -34b479c,b -34b479d,c0 -34b47a0,4e -34b47a1,60 -34b47a4,bc -34b47a7,3 -34b47a8,e8 -34b47ab,a -34b47ac,d0 -34b47af,1e -34b47b0,90 -34b47b3,9e -34b47b4,20 -34b47b7,da -34b47ba,7 -34b47bb,e3 -34b47be,c -34b47bf,b0 -34b47c2,6e -34b47c3,50 -34b47d2,3 -34b47d3,ce -34b47d4,eb -34b47d6,b -34b47d7,d5 -34b47d8,7e -34b47d9,90 -34b47da,e -34b47db,90 -34b47dc,b -34b47dd,d0 -34b47de,5f -34b47df,70 -34b47e0,9 -34b47e1,e0 -34b47e2,6f -34b47e3,6c -34b47e4,b9 -34b47e5,e0 -34b47e6,5f -34b47e7,70 -34b47e8,9 -34b47e9,e0 -34b47ea,e -34b47eb,90 -34b47ec,b -34b47ed,d0 -34b47ee,b -34b47ef,d5 -34b47f0,7e -34b47f1,90 -34b47f2,3 -34b47f3,ce -34b47f4,eb -34b480a,a -34b480b,ff -34b480c,e0 -34b480f,8 -34b4810,e0 -34b4813,8 -34b4814,e0 -34b4817,8 -34b4818,e0 -34b481b,8 -34b481c,e0 -34b481f,8 -34b4820,e0 -34b4823,8 -34b4824,e0 -34b4827,8 -34b4828,e0 -34b482a,8 -34b482b,ff -34b482c,ff -34b482d,e0 -34b4842,8 -34b4843,de -34b4844,ea -34b4846,c -34b4847,83 -34b4848,7e -34b4849,90 -34b484c,c -34b484d,c0 -34b4850,2e -34b4851,a0 -34b4854,bd -34b4855,20 -34b4857,b -34b4858,d4 -34b485b,bd -34b485c,40 -34b485e,b -34b485f,d4 -34b4862,2f -34b4863,ff -34b4864,ff -34b4865,d0 -34b487a,7 -34b487b,ce -34b487c,ea -34b487e,c -34b487f,83 -34b4880,7e -34b4881,90 -34b4884,c -34b4885,b0 -34b4887,2 -34b4888,7e -34b4889,90 -34b488b,bf -34b488c,fb -34b488f,2 -34b4890,7d -34b4891,a0 -34b4894,a -34b4895,d0 -34b4896,5c -34b4897,62 -34b4898,7d -34b4899,b0 -34b489a,9 -34b489b,de -34b489c,eb -34b489d,30 -34b48b3,2 -34b48b4,de -34b48b7,b -34b48b8,de -34b48bb,7d -34b48bc,9e -34b48be,2 -34b48bf,d7 -34b48c0,9e -34b48c2,b -34b48c3,b0 -34b48c4,9e -34b48c6,6e -34b48c7,40 -34b48c8,9e -34b48ca,9f -34b48cb,ff -34b48cc,ff -34b48cd,f7 -34b48d0,9e -34b48d4,9e -34b48ea,c -34b48eb,ff -34b48ec,ff -34b48ed,50 -34b48ee,c -34b48ef,a0 -34b48f2,c -34b48f3,a0 -34b48f6,c -34b48f7,ee -34b48f8,ea -34b48fb,3 -34b48fc,8e -34b48fd,90 -34b4900,b -34b4901,c0 -34b4904,b -34b4905,c0 -34b4906,5c -34b4907,63 -34b4908,8e -34b4909,90 -34b490a,9 -34b490b,de -34b490c,da -34b4923,ae -34b4924,ec -34b4925,30 -34b4926,a -34b4927,e8 -34b4928,39 -34b4929,80 -34b492a,e -34b492b,90 -34b492e,4f -34b492f,ae -34b4930,ec -34b4931,40 -34b4932,6f -34b4933,d5 -34b4934,5d -34b4935,c0 -34b4936,5f -34b4937,90 -34b4938,9 -34b4939,e0 -34b493a,e -34b493b,90 -34b493c,9 -34b493d,e0 -34b493e,c -34b493f,d5 -34b4940,5d -34b4941,c0 -34b4942,3 -34b4943,ce -34b4944,ec -34b4945,40 -34b495a,5f -34b495b,ff -34b495c,ff -34b495d,d0 -34b4960,d -34b4961,a0 -34b4964,7e -34b4965,40 -34b4968,cc -34b496b,4 -34b496c,e8 -34b496f,a -34b4970,d0 -34b4973,d -34b4974,a0 -34b4977,8e -34b4978,40 -34b497b,cc -34b4992,5 -34b4993,ce -34b4994,ec -34b4995,30 -34b4996,d -34b4997,c4 -34b4998,5d -34b4999,b0 -34b499a,e -34b499b,90 -34b499c,b -34b499d,d0 -34b499e,b -34b499f,c4 -34b49a0,5d -34b49a1,90 -34b49a2,4 -34b49a3,df -34b49a4,fc -34b49a5,20 -34b49a6,1d -34b49a7,b4 -34b49a8,5c -34b49a9,c0 -34b49aa,5f -34b49ab,60 -34b49ac,9 -34b49ad,e0 -34b49ae,2e -34b49af,b3 -34b49b0,5c -34b49b1,d0 -34b49b2,7 -34b49b3,de -34b49b4,ec -34b49b5,50 -34b49ca,6 -34b49cb,de -34b49cc,eb -34b49ce,d -34b49cf,b3 -34b49d0,7e -34b49d1,90 -34b49d2,5f -34b49d3,50 -34b49d4,b -34b49d5,d0 -34b49d6,5f -34b49d7,50 -34b49d8,b -34b49d9,e0 -34b49da,d -34b49db,b3 -34b49dc,7e -34b49dd,e0 -34b49de,6 -34b49df,de -34b49e0,db -34b49e1,e0 -34b49e4,b -34b49e5,c0 -34b49e6,9 -34b49e7,74 -34b49e8,9e -34b49e9,70 -34b49ea,5 -34b49eb,de -34b49ec,d8 -34b4a0b,e -34b4a0c,c0 -34b4a0f,e -34b4a10,c0 -34b4a1f,e -34b4a20,c0 -34b4a23,e -34b4a24,c0 -34b4a43,e -34b4a44,c0 -34b4a47,e -34b4a48,c0 -34b4a57,d -34b4a58,d0 -34b4a5b,e -34b4a5c,c0 -34b4a5f,4f -34b4a60,80 -34b4a63,9d -34b4a7c,29 -34b4a7d,c8 -34b4a7f,7b -34b4a80,ed -34b4a81,93 -34b4a82,8d -34b4a83,da -34b4a84,40 -34b4a86,8d -34b4a87,da -34b4a88,40 -34b4a8b,7b -34b4a8c,ec -34b4a8d,93 -34b4a90,29 -34b4a91,c8 -34b4ab6,af -34b4ab7,ff -34b4ab8,ff -34b4ab9,f8 -34b4ac2,af -34b4ac3,ff -34b4ac4,ff -34b4ac5,f8 -34b4aea,ac -34b4aeb,81 -34b4aee,4a -34b4aef,de -34b4af0,b6 -34b4af3,6 -34b4af4,ad -34b4af5,d6 -34b4af7,6 -34b4af8,ad -34b4af9,d6 -34b4afa,4a -34b4afb,de -34b4afc,b6 -34b4afe,ac -34b4aff,81 -34b4b1a,4 -34b4b1b,be -34b4b1c,ec -34b4b1d,30 -34b4b1e,9 -34b4b1f,a4 -34b4b20,6e -34b4b21,a0 -34b4b24,1d -34b4b25,a0 -34b4b27,2 -34b4b28,cd -34b4b29,30 -34b4b2b,c -34b4b2c,c1 -34b4b2f,e -34b4b30,90 -34b4b37,e -34b4b38,90 -34b4b3b,e -34b4b3c,90 -34b4b52,1 -34b4b53,ae -34b4b54,ed -34b4b55,70 -34b4b56,c -34b4b57,d7 -34b4b58,39 -34b4b59,e4 -34b4b5a,7e -34b4b5b,20 -34b4b5d,c9 -34b4b5e,ba -34b4b5f,a -34b4b60,ee -34b4b61,ca -34b4b62,d7 -34b4b63,6e -34b4b64,64 -34b4b65,da -34b4b66,d6 -34b4b67,9c -34b4b69,aa -34b4b6a,d7 -34b4b6b,6e -34b4b6c,64 -34b4b6d,da -34b4b6e,ba -34b4b6f,a -34b4b70,ee -34b4b71,ca -34b4b72,6e -34b4b73,40 -34b4b76,a -34b4b77,d8 -34b4b78,30 -34b4b7b,8d -34b4b7c,ee -34b4b7d,90 -34b4b8b,3e -34b4b8c,d0 -34b4b8f,9d -34b4b90,e6 -34b4b93,cb -34b4b94,cb -34b4b96,3 -34b4b97,e8 -34b4b98,ad -34b4b9a,8 -34b4b9b,e2 -34b4b9c,6f -34b4b9d,60 -34b4b9e,c -34b4b9f,c0 -34b4ba0,e -34b4ba1,a0 -34b4ba2,2e -34b4ba3,ff -34b4ba4,ff -34b4ba5,d0 -34b4ba6,8e -34b4ba7,50 -34b4ba8,8 -34b4ba9,f5 -34b4baa,cd -34b4bac,1 -34b4bad,ea -34b4bc2,e -34b4bc3,ff -34b4bc4,ec -34b4bc5,40 -34b4bc6,e -34b4bc7,90 -34b4bc8,5d -34b4bc9,c0 -34b4bca,e -34b4bcb,90 -34b4bcc,a -34b4bcd,e0 -34b4bce,e -34b4bcf,90 -34b4bd0,5d -34b4bd1,c0 -34b4bd2,e -34b4bd3,ff -34b4bd4,fd -34b4bd5,50 -34b4bd6,e -34b4bd7,90 -34b4bd8,4b -34b4bd9,d2 -34b4bda,e -34b4bdb,90 -34b4bdc,5 -34b4bdd,f6 -34b4bde,e -34b4bdf,90 -34b4be0,4b -34b4be1,e3 -34b4be2,e -34b4be3,ff -34b4be4,ed -34b4be5,80 -34b4bfb,9d -34b4bfc,ed -34b4bfd,80 -34b4bfe,8 -34b4bff,e9 -34b4c00,36 -34b4c01,b0 -34b4c02,d -34b4c03,b0 -34b4c06,3f -34b4c07,90 -34b4c0a,5f -34b4c0b,70 -34b4c0e,1e -34b4c0f,90 -34b4c12,d -34b4c13,b0 -34b4c16,8 -34b4c17,e9 -34b4c18,47 -34b4c19,b0 -34b4c1b,9d -34b4c1c,ed -34b4c1d,80 -34b4c32,5f -34b4c33,fe -34b4c34,d8 -34b4c36,5f -34b4c37,65 -34b4c38,ae -34b4c39,80 -34b4c3a,5f -34b4c3b,60 -34b4c3c,c -34b4c3d,d0 -34b4c3e,5f -34b4c3f,60 -34b4c40,9 -34b4c41,e0 -34b4c42,5f -34b4c43,60 -34b4c44,9 -34b4c45,f0 -34b4c46,5f -34b4c47,60 -34b4c48,9 -34b4c49,e0 -34b4c4a,5f -34b4c4b,60 -34b4c4c,c -34b4c4d,d0 -34b4c4e,5f -34b4c4f,65 -34b4c50,ae -34b4c51,80 -34b4c52,5f -34b4c53,fe -34b4c54,d8 -34b4c6a,d -34b4c6b,ff -34b4c6c,ff -34b4c6d,e0 -34b4c6e,d -34b4c6f,b0 -34b4c72,d -34b4c73,b0 -34b4c76,d -34b4c77,b0 -34b4c7a,d -34b4c7b,ff -34b4c7c,ff -34b4c7d,c0 -34b4c7e,d -34b4c7f,b0 -34b4c82,d -34b4c83,b0 -34b4c86,d -34b4c87,b0 -34b4c8a,d -34b4c8b,ff -34b4c8c,ff -34b4c8d,f0 -34b4ca2,b -34b4ca3,ff -34b4ca4,ff -34b4ca5,f4 -34b4ca6,b -34b4ca7,d0 -34b4caa,b -34b4cab,d0 -34b4cae,b -34b4caf,d0 -34b4cb2,b -34b4cb3,ff -34b4cb4,ff -34b4cb5,c0 -34b4cb6,b -34b4cb7,d0 -34b4cba,b -34b4cbb,d0 -34b4cbe,b -34b4cbf,d0 -34b4cc2,b -34b4cc3,d0 -34b4cda,1 -34b4cdb,ae -34b4cdc,ed -34b4cdd,60 -34b4cde,b -34b4cdf,e7 -34b4ce0,38 -34b4ce1,a0 -34b4ce2,4e -34b4ce3,90 -34b4ce6,8f -34b4ce7,40 -34b4cea,9f -34b4ceb,10 -34b4cec,bf -34b4ced,f2 -34b4cee,7f -34b4cef,40 -34b4cf0,7 -34b4cf1,f2 -34b4cf2,4e -34b4cf3,90 -34b4cf4,7 -34b4cf5,f2 -34b4cf6,b -34b4cf7,e7 -34b4cf8,39 -34b4cf9,f2 -34b4cfa,1 -34b4cfb,be -34b4cfc,ed -34b4cfd,90 -34b4d12,5f -34b4d13,60 -34b4d14,9 -34b4d15,e0 -34b4d16,5f -34b4d17,60 -34b4d18,9 -34b4d19,e0 -34b4d1a,5f -34b4d1b,60 -34b4d1c,9 -34b4d1d,e0 -34b4d1e,5f -34b4d1f,60 -34b4d20,9 -34b4d21,e0 -34b4d22,5f -34b4d23,ff -34b4d24,ff -34b4d25,e0 -34b4d26,5f -34b4d27,60 -34b4d28,9 +34b46d0,b0 +34b46d3,e +34b46d4,80 +34b46d7,6f +34b46d8,30 +34b46db,8e +34b46df,8e +34b46e3,6f +34b46e4,40 +34b46e7,e +34b46e8,80 +34b46eb,c +34b46ec,b0 +34b46ef,7 +34b46f0,e2 +34b46f4,c9 +34b46ff,bb +34b4703,5e +34b4704,40 +34b4707,c +34b4708,a0 +34b470b,a +34b470c,d0 +34b470f,7 +34b4710,e1 +34b4713,6 +34b4714,f4 +34b4717,6 +34b4718,f4 +34b471b,7 +34b471c,e1 +34b471f,a +34b4720,d0 +34b4723,c +34b4724,a0 +34b4727,5e +34b4728,40 +34b472b,bb +34b473f,a +34b4740,80 +34b4742,c +34b4743,8a +34b4744,8a +34b4745,b0 +34b4746,3 +34b4747,be +34b4748,da +34b4749,10 +34b474a,3 +34b474b,be +34b474c,da +34b474d,10 +34b474e,c +34b474f,8a +34b4750,8a +34b4751,b0 +34b4753,a +34b4754,80 +34b477b,c +34b477c,a0 +34b477f,c +34b4780,a0 +34b4783,c +34b4784,a0 +34b4786,af +34b4787,ff +34b4788,ff +34b4789,f8 +34b478b,c +34b478c,a0 +34b478f,c +34b4790,a0 +34b4793,c +34b4794,a0 +34b47cb,d +34b47cc,d0 +34b47cf,e +34b47d0,c0 +34b47d3,4f +34b47d4,80 +34b47d7,9d +34b47fb,df +34b47fc,fb +34b483b,e +34b483c,c0 +34b483f,e +34b4840,c0 +34b4858,b +34b4859,c0 +34b485c,4e +34b485d,60 +34b4860,bc +34b4863,3 +34b4864,e8 +34b4867,a +34b4868,d0 +34b486b,1e +34b486c,90 +34b486f,9e +34b4870,20 +34b4873,da +34b4876,7 +34b4877,e3 +34b487a,c +34b487b,b0 +34b487e,6e +34b487f,50 +34b488e,3 +34b488f,ce +34b4890,eb +34b4892,b +34b4893,d5 +34b4894,7e +34b4895,90 +34b4896,e +34b4897,90 +34b4898,b +34b4899,d0 +34b489a,5f +34b489b,70 +34b489c,9 +34b489d,e0 +34b489e,6f +34b489f,6c +34b48a0,b9 +34b48a1,e0 +34b48a2,5f +34b48a3,70 +34b48a4,9 +34b48a5,e0 +34b48a6,e +34b48a7,90 +34b48a8,b +34b48a9,d0 +34b48aa,b +34b48ab,d5 +34b48ac,7e +34b48ad,90 +34b48ae,3 +34b48af,ce +34b48b0,eb +34b48c6,a +34b48c7,ff +34b48c8,e0 +34b48cb,8 +34b48cc,e0 +34b48cf,8 +34b48d0,e0 +34b48d3,8 +34b48d4,e0 +34b48d7,8 +34b48d8,e0 +34b48db,8 +34b48dc,e0 +34b48df,8 +34b48e0,e0 +34b48e3,8 +34b48e4,e0 +34b48e6,8 +34b48e7,ff +34b48e8,ff +34b48e9,e0 +34b48fe,8 +34b48ff,de +34b4900,ea +34b4902,c +34b4903,83 +34b4904,7e +34b4905,90 +34b4908,c +34b4909,c0 +34b490c,2e +34b490d,a0 +34b4910,bd +34b4911,20 +34b4913,b +34b4914,d4 +34b4917,bd +34b4918,40 +34b491a,b +34b491b,d4 +34b491e,2f +34b491f,ff +34b4920,ff +34b4921,d0 +34b4936,7 +34b4937,ce +34b4938,ea +34b493a,c +34b493b,83 +34b493c,7e +34b493d,90 +34b4940,c +34b4941,b0 +34b4943,2 +34b4944,7e +34b4945,90 +34b4947,bf +34b4948,fb +34b494b,2 +34b494c,7d +34b494d,a0 +34b4950,a +34b4951,d0 +34b4952,5c +34b4953,62 +34b4954,7d +34b4955,b0 +34b4956,9 +34b4957,de +34b4958,eb +34b4959,30 +34b496f,2 +34b4970,de +34b4973,b +34b4974,de +34b4977,7d +34b4978,9e +34b497a,2 +34b497b,d7 +34b497c,9e +34b497e,b +34b497f,b0 +34b4980,9e +34b4982,6e +34b4983,40 +34b4984,9e +34b4986,9f +34b4987,ff +34b4988,ff +34b4989,f7 +34b498c,9e +34b4990,9e +34b49a6,c +34b49a7,ff +34b49a8,ff +34b49a9,50 +34b49aa,c +34b49ab,a0 +34b49ae,c +34b49af,a0 +34b49b2,c +34b49b3,ee +34b49b4,ea +34b49b7,3 +34b49b8,8e +34b49b9,90 +34b49bc,b +34b49bd,c0 +34b49c0,b +34b49c1,c0 +34b49c2,5c +34b49c3,63 +34b49c4,8e +34b49c5,90 +34b49c6,9 +34b49c7,de +34b49c8,da +34b49df,ae +34b49e0,ec +34b49e1,30 +34b49e2,a +34b49e3,e8 +34b49e4,39 +34b49e5,80 +34b49e6,e +34b49e7,90 +34b49ea,4f +34b49eb,ae +34b49ec,ec +34b49ed,40 +34b49ee,6f +34b49ef,d5 +34b49f0,5d +34b49f1,c0 +34b49f2,5f +34b49f3,90 +34b49f4,9 +34b49f5,e0 +34b49f6,e +34b49f7,90 +34b49f8,9 +34b49f9,e0 +34b49fa,c +34b49fb,d5 +34b49fc,5d +34b49fd,c0 +34b49fe,3 +34b49ff,ce +34b4a00,ec +34b4a01,40 +34b4a16,5f +34b4a17,ff +34b4a18,ff +34b4a19,d0 +34b4a1c,d +34b4a1d,a0 +34b4a20,7e +34b4a21,40 +34b4a24,cc +34b4a27,4 +34b4a28,e8 +34b4a2b,a +34b4a2c,d0 +34b4a2f,d +34b4a30,a0 +34b4a33,8e +34b4a34,40 +34b4a37,cc +34b4a4e,5 +34b4a4f,ce +34b4a50,ec +34b4a51,30 +34b4a52,d +34b4a53,c4 +34b4a54,5d +34b4a55,b0 +34b4a56,e +34b4a57,90 +34b4a58,b +34b4a59,d0 +34b4a5a,b +34b4a5b,c4 +34b4a5c,5d +34b4a5d,90 +34b4a5e,4 +34b4a5f,df +34b4a60,fc +34b4a61,20 +34b4a62,1d +34b4a63,b4 +34b4a64,5c +34b4a65,c0 +34b4a66,5f +34b4a67,60 +34b4a68,9 +34b4a69,e0 +34b4a6a,2e +34b4a6b,b3 +34b4a6c,5c +34b4a6d,d0 +34b4a6e,7 +34b4a6f,de +34b4a70,ec +34b4a71,50 +34b4a86,6 +34b4a87,de +34b4a88,eb +34b4a8a,d +34b4a8b,b3 +34b4a8c,7e +34b4a8d,90 +34b4a8e,5f +34b4a8f,50 +34b4a90,b +34b4a91,d0 +34b4a92,5f +34b4a93,50 +34b4a94,b +34b4a95,e0 +34b4a96,d +34b4a97,b3 +34b4a98,7e +34b4a99,e0 +34b4a9a,6 +34b4a9b,de +34b4a9c,db +34b4a9d,e0 +34b4aa0,b +34b4aa1,c0 +34b4aa2,9 +34b4aa3,74 +34b4aa4,9e +34b4aa5,70 +34b4aa6,5 +34b4aa7,de +34b4aa8,d8 +34b4ac7,e +34b4ac8,c0 +34b4acb,e +34b4acc,c0 +34b4adb,e +34b4adc,c0 +34b4adf,e +34b4ae0,c0 +34b4aff,e +34b4b00,c0 +34b4b03,e +34b4b04,c0 +34b4b13,d +34b4b14,d0 +34b4b17,e +34b4b18,c0 +34b4b1b,4f +34b4b1c,80 +34b4b1f,9d +34b4b38,29 +34b4b39,c8 +34b4b3b,7b +34b4b3c,ed +34b4b3d,93 +34b4b3e,8d +34b4b3f,da +34b4b40,40 +34b4b42,8d +34b4b43,da +34b4b44,40 +34b4b47,7b +34b4b48,ec +34b4b49,93 +34b4b4c,29 +34b4b4d,c8 +34b4b72,af +34b4b73,ff +34b4b74,ff +34b4b75,f8 +34b4b7e,af +34b4b7f,ff +34b4b80,ff +34b4b81,f8 +34b4ba6,ac +34b4ba7,81 +34b4baa,4a +34b4bab,de +34b4bac,b6 +34b4baf,6 +34b4bb0,ad +34b4bb1,d6 +34b4bb3,6 +34b4bb4,ad +34b4bb5,d6 +34b4bb6,4a +34b4bb7,de +34b4bb8,b6 +34b4bba,ac +34b4bbb,81 +34b4bd6,4 +34b4bd7,be +34b4bd8,ec +34b4bd9,30 +34b4bda,9 +34b4bdb,a4 +34b4bdc,6e +34b4bdd,a0 +34b4be0,1d +34b4be1,a0 +34b4be3,2 +34b4be4,cd +34b4be5,30 +34b4be7,c +34b4be8,c1 +34b4beb,e +34b4bec,90 +34b4bf3,e +34b4bf4,90 +34b4bf7,e +34b4bf8,90 +34b4c0e,1 +34b4c0f,ae +34b4c10,ed +34b4c11,70 +34b4c12,c +34b4c13,d7 +34b4c14,39 +34b4c15,e4 +34b4c16,7e +34b4c17,20 +34b4c19,c9 +34b4c1a,ba +34b4c1b,a +34b4c1c,ee +34b4c1d,ca +34b4c1e,d7 +34b4c1f,6e +34b4c20,64 +34b4c21,da +34b4c22,d6 +34b4c23,9c +34b4c25,aa +34b4c26,d7 +34b4c27,6e +34b4c28,64 +34b4c29,da +34b4c2a,ba +34b4c2b,a +34b4c2c,ee +34b4c2d,ca +34b4c2e,6e +34b4c2f,40 +34b4c32,a +34b4c33,d8 +34b4c34,30 +34b4c37,8d +34b4c38,ee +34b4c39,90 +34b4c47,3e +34b4c48,d0 +34b4c4b,9d +34b4c4c,e6 +34b4c4f,cb +34b4c50,cb +34b4c52,3 +34b4c53,e8 +34b4c54,ad +34b4c56,8 +34b4c57,e2 +34b4c58,6f +34b4c59,60 +34b4c5a,c +34b4c5b,c0 +34b4c5c,e +34b4c5d,a0 +34b4c5e,2e +34b4c5f,ff +34b4c60,ff +34b4c61,d0 +34b4c62,8e +34b4c63,50 +34b4c64,8 +34b4c65,f5 +34b4c66,cd +34b4c68,1 +34b4c69,ea +34b4c7e,e +34b4c7f,ff +34b4c80,ec +34b4c81,40 +34b4c82,e +34b4c83,90 +34b4c84,5d +34b4c85,c0 +34b4c86,e +34b4c87,90 +34b4c88,a +34b4c89,e0 +34b4c8a,e +34b4c8b,90 +34b4c8c,5d +34b4c8d,c0 +34b4c8e,e +34b4c8f,ff +34b4c90,fd +34b4c91,50 +34b4c92,e +34b4c93,90 +34b4c94,4b +34b4c95,d2 +34b4c96,e +34b4c97,90 +34b4c98,5 +34b4c99,f6 +34b4c9a,e +34b4c9b,90 +34b4c9c,4b +34b4c9d,e3 +34b4c9e,e +34b4c9f,ff +34b4ca0,ed +34b4ca1,80 +34b4cb7,9d +34b4cb8,ed +34b4cb9,80 +34b4cba,8 +34b4cbb,e9 +34b4cbc,36 +34b4cbd,b0 +34b4cbe,d +34b4cbf,b0 +34b4cc2,3f +34b4cc3,90 +34b4cc6,5f +34b4cc7,70 +34b4cca,1e +34b4ccb,90 +34b4cce,d +34b4ccf,b0 +34b4cd2,8 +34b4cd3,e9 +34b4cd4,47 +34b4cd5,b0 +34b4cd7,9d +34b4cd8,ed +34b4cd9,80 +34b4cee,5f +34b4cef,fe +34b4cf0,d8 +34b4cf2,5f +34b4cf3,65 +34b4cf4,ae +34b4cf5,80 +34b4cf6,5f +34b4cf7,60 +34b4cf8,c +34b4cf9,d0 +34b4cfa,5f +34b4cfb,60 +34b4cfc,9 +34b4cfd,e0 +34b4cfe,5f +34b4cff,60 +34b4d00,9 +34b4d01,f0 +34b4d02,5f +34b4d03,60 +34b4d04,9 +34b4d05,e0 +34b4d06,5f +34b4d07,60 +34b4d08,c +34b4d09,d0 +34b4d0a,5f +34b4d0b,65 +34b4d0c,ae +34b4d0d,80 +34b4d0e,5f +34b4d0f,fe +34b4d10,d8 +34b4d26,d +34b4d27,ff +34b4d28,ff 34b4d29,e0 -34b4d2a,5f -34b4d2b,60 -34b4d2c,9 -34b4d2d,e0 -34b4d2e,5f -34b4d2f,60 -34b4d30,9 -34b4d31,e0 -34b4d32,5f -34b4d33,60 -34b4d34,9 -34b4d35,e0 -34b4d4a,d -34b4d4b,ff -34b4d4c,ff -34b4d4d,b0 -34b4d4f,d -34b4d50,b0 -34b4d53,d -34b4d54,b0 -34b4d57,d -34b4d58,b0 -34b4d5b,d -34b4d5c,b0 -34b4d5f,d -34b4d60,b0 -34b4d63,d -34b4d64,b0 -34b4d67,d -34b4d68,b0 -34b4d6a,d -34b4d6b,ff -34b4d6c,ff -34b4d6d,b0 -34b4d83,cf -34b4d84,ff -34b4d85,40 -34b4d88,7f -34b4d89,40 -34b4d8c,7f -34b4d8d,40 -34b4d90,7f -34b4d91,40 -34b4d94,7f -34b4d95,40 -34b4d98,7f -34b4d99,30 -34b4d9a,75 -34b4d9c,9e -34b4d9e,8d -34b4d9f,64 -34b4da0,dc -34b4da2,2b -34b4da3,ee -34b4da4,c5 -34b4dba,5f -34b4dbb,60 -34b4dbc,9 -34b4dbd,e7 -34b4dbe,5f -34b4dbf,60 -34b4dc0,9e -34b4dc1,70 -34b4dc2,5f -34b4dc3,69 -34b4dc4,e7 -34b4dc6,5f -34b4dc7,be -34b4dc8,80 -34b4dca,5f -34b4dcb,ed -34b4dcc,b0 +34b4d2a,d +34b4d2b,b0 +34b4d2e,d +34b4d2f,b0 +34b4d32,d +34b4d33,b0 +34b4d36,d +34b4d37,ff +34b4d38,ff +34b4d39,c0 +34b4d3a,d +34b4d3b,b0 +34b4d3e,d +34b4d3f,b0 +34b4d42,d +34b4d43,b0 +34b4d46,d +34b4d47,ff +34b4d48,ff +34b4d49,f0 +34b4d5e,b +34b4d5f,ff +34b4d60,ff +34b4d61,f4 +34b4d62,b +34b4d63,d0 +34b4d66,b +34b4d67,d0 +34b4d6a,b +34b4d6b,d0 +34b4d6e,b +34b4d6f,ff +34b4d70,ff +34b4d71,c0 +34b4d72,b +34b4d73,d0 +34b4d76,b +34b4d77,d0 +34b4d7a,b +34b4d7b,d0 +34b4d7e,b +34b4d7f,d0 +34b4d96,1 +34b4d97,ae +34b4d98,ed +34b4d99,60 +34b4d9a,b +34b4d9b,e7 +34b4d9c,38 +34b4d9d,a0 +34b4d9e,4e +34b4d9f,90 +34b4da2,8f +34b4da3,40 +34b4da6,9f +34b4da7,10 +34b4da8,bf +34b4da9,f2 +34b4daa,7f +34b4dab,40 +34b4dac,7 +34b4dad,f2 +34b4dae,4e +34b4daf,90 +34b4db0,7 +34b4db1,f2 +34b4db2,b +34b4db3,e7 +34b4db4,39 +34b4db5,f2 +34b4db6,1 +34b4db7,be +34b4db8,ed +34b4db9,90 34b4dce,5f -34b4dcf,87 -34b4dd0,e8 +34b4dcf,60 +34b4dd0,9 +34b4dd1,e0 34b4dd2,5f 34b4dd3,60 -34b4dd4,ae -34b4dd5,40 +34b4dd4,9 +34b4dd5,e0 34b4dd6,5f 34b4dd7,60 -34b4dd8,1d -34b4dd9,c0 +34b4dd8,9 +34b4dd9,e0 34b4dda,5f 34b4ddb,60 -34b4ddc,6 -34b4ddd,ea -34b4df2,c -34b4df3,c0 -34b4df6,c -34b4df7,c0 -34b4dfa,c -34b4dfb,c0 -34b4dfe,c -34b4dff,c0 -34b4e02,c -34b4e03,c0 -34b4e06,c -34b4e07,c0 -34b4e0a,c -34b4e0b,c0 -34b4e0e,c -34b4e0f,c0 -34b4e12,c -34b4e13,ff -34b4e14,ff -34b4e15,f7 -34b4e2a,af -34b4e2b,a0 -34b4e2c,c -34b4e2d,f8 -34b4e2e,ae -34b4e2f,d0 -34b4e30,2e -34b4e31,e8 -34b4e32,ad -34b4e33,d5 -34b4e34,9b -34b4e35,e8 -34b4e36,ad -34b4e37,aa -34b4e38,c8 -34b4e39,e8 -34b4e3a,ad -34b4e3b,5d -34b4e3c,e1 -34b4e3d,e8 -34b4e3e,ad -34b4e3f,d -34b4e40,b0 -34b4e41,e8 -34b4e42,ad -34b4e45,e8 -34b4e46,ad -34b4e49,e8 -34b4e4a,ad -34b4e4d,e8 -34b4e62,5f -34b4e63,c0 -34b4e64,8 -34b4e65,e0 -34b4e66,5f -34b4e67,e6 -34b4e68,8 -34b4e69,e0 -34b4e6a,5f -34b4e6b,cb -34b4e6c,8 -34b4e6d,e0 -34b4e6e,5f -34b4e6f,7e -34b4e70,48 -34b4e71,e0 -34b4e72,5f -34b4e73,5c -34b4e74,a8 -34b4e75,e0 +34b4ddc,9 +34b4ddd,e0 +34b4dde,5f +34b4ddf,ff +34b4de0,ff +34b4de1,e0 +34b4de2,5f +34b4de3,60 +34b4de4,9 +34b4de5,e0 +34b4de6,5f +34b4de7,60 +34b4de8,9 +34b4de9,e0 +34b4dea,5f +34b4deb,60 +34b4dec,9 +34b4ded,e0 +34b4dee,5f +34b4def,60 +34b4df0,9 +34b4df1,e0 +34b4e06,d +34b4e07,ff +34b4e08,ff +34b4e09,b0 +34b4e0b,d +34b4e0c,b0 +34b4e0f,d +34b4e10,b0 +34b4e13,d +34b4e14,b0 +34b4e17,d +34b4e18,b0 +34b4e1b,d +34b4e1c,b0 +34b4e1f,d +34b4e20,b0 +34b4e23,d +34b4e24,b0 +34b4e26,d +34b4e27,ff +34b4e28,ff +34b4e29,b0 +34b4e3f,cf +34b4e40,ff +34b4e41,40 +34b4e44,7f +34b4e45,40 +34b4e48,7f +34b4e49,40 +34b4e4c,7f +34b4e4d,40 +34b4e50,7f +34b4e51,40 +34b4e54,7f +34b4e55,30 +34b4e56,75 +34b4e58,9e +34b4e5a,8d +34b4e5b,64 +34b4e5c,dc +34b4e5e,2b +34b4e5f,ee +34b4e60,c5 34b4e76,5f -34b4e77,57 -34b4e78,e8 -34b4e79,e0 +34b4e77,60 +34b4e78,9 +34b4e79,e7 34b4e7a,5f -34b4e7b,50 -34b4e7c,dc -34b4e7d,e0 +34b4e7b,60 +34b4e7c,9e +34b4e7d,70 34b4e7e,5f -34b4e7f,50 -34b4e80,9e -34b4e81,e0 +34b4e7f,69 +34b4e80,e7 34b4e82,5f -34b4e83,50 -34b4e84,2e -34b4e85,e0 -34b4e9a,4 -34b4e9b,ce -34b4e9c,eb -34b4e9d,20 -34b4e9e,c -34b4e9f,d5 -34b4ea0,6e -34b4ea1,a0 -34b4ea2,3e -34b4ea3,80 -34b4ea4,a -34b4ea5,e0 -34b4ea6,7f -34b4ea7,50 -34b4ea8,8 -34b4ea9,f2 -34b4eaa,7f -34b4eab,40 -34b4eac,8 -34b4ead,f4 -34b4eae,7f -34b4eaf,50 -34b4eb0,8 -34b4eb1,f2 -34b4eb2,3e -34b4eb3,80 -34b4eb4,a -34b4eb5,e0 +34b4e83,be +34b4e84,80 +34b4e86,5f +34b4e87,ed +34b4e88,b0 +34b4e8a,5f +34b4e8b,87 +34b4e8c,e8 +34b4e8e,5f +34b4e8f,60 +34b4e90,ae +34b4e91,40 +34b4e92,5f +34b4e93,60 +34b4e94,1d +34b4e95,c0 +34b4e96,5f +34b4e97,60 +34b4e98,6 +34b4e99,ea +34b4eae,c +34b4eaf,c0 +34b4eb2,c +34b4eb3,c0 34b4eb6,c -34b4eb7,d5 -34b4eb8,6e -34b4eb9,b0 -34b4eba,4 -34b4ebb,ce -34b4ebc,eb -34b4ebd,20 -34b4ed2,d -34b4ed3,ff -34b4ed4,ed -34b4ed5,60 -34b4ed6,d -34b4ed7,b0 -34b4ed8,5c -34b4ed9,e2 -34b4eda,d -34b4edb,b0 -34b4edc,6 -34b4edd,f6 -34b4ede,d -34b4edf,b0 -34b4ee0,6 -34b4ee1,f6 -34b4ee2,d -34b4ee3,b0 -34b4ee4,5c -34b4ee5,e2 -34b4ee6,d -34b4ee7,ff -34b4ee8,ed -34b4ee9,60 -34b4eea,d -34b4eeb,b0 -34b4eee,d -34b4eef,b0 -34b4ef2,d -34b4ef3,b0 -34b4f0a,4 -34b4f0b,ce -34b4f0c,eb -34b4f0d,20 -34b4f0e,c -34b4f0f,d5 -34b4f10,6e -34b4f11,a0 -34b4f12,3e -34b4f13,80 -34b4f14,a -34b4f15,e0 -34b4f16,7f -34b4f17,50 -34b4f18,8 -34b4f19,f2 -34b4f1a,7f -34b4f1b,40 -34b4f1c,8 -34b4f1d,f4 -34b4f1e,7f -34b4f1f,50 +34b4eb7,c0 +34b4eba,c +34b4ebb,c0 +34b4ebe,c +34b4ebf,c0 +34b4ec2,c +34b4ec3,c0 +34b4ec6,c +34b4ec7,c0 +34b4eca,c +34b4ecb,c0 +34b4ece,c +34b4ecf,ff +34b4ed0,ff +34b4ed1,f7 +34b4ee6,af +34b4ee7,a0 +34b4ee8,c +34b4ee9,f8 +34b4eea,ae +34b4eeb,d0 +34b4eec,2e +34b4eed,e8 +34b4eee,ad +34b4eef,d5 +34b4ef0,9b +34b4ef1,e8 +34b4ef2,ad +34b4ef3,aa +34b4ef4,c8 +34b4ef5,e8 +34b4ef6,ad +34b4ef7,5d +34b4ef8,e1 +34b4ef9,e8 +34b4efa,ad +34b4efb,d +34b4efc,b0 +34b4efd,e8 +34b4efe,ad +34b4f01,e8 +34b4f02,ad +34b4f05,e8 +34b4f06,ad +34b4f09,e8 +34b4f1e,5f +34b4f1f,c0 34b4f20,8 -34b4f21,f1 -34b4f22,3e -34b4f23,80 -34b4f24,a -34b4f25,d0 -34b4f26,c -34b4f27,d5 -34b4f28,6e -34b4f29,a0 -34b4f2a,4 -34b4f2b,ce -34b4f2c,fc -34b4f2d,20 -34b4f30,ae -34b4f31,50 -34b4f34,c -34b4f35,80 -34b4f42,5f -34b4f43,fe -34b4f44,eb -34b4f45,20 -34b4f46,5f -34b4f47,71 -34b4f48,7e -34b4f49,b0 -34b4f4a,5f -34b4f4b,70 -34b4f4c,c -34b4f4d,d0 -34b4f4e,5f -34b4f4f,71 -34b4f50,6e -34b4f51,a0 -34b4f52,5f -34b4f53,ff -34b4f54,ea -34b4f56,5f -34b4f57,72 -34b4f58,ae -34b4f59,40 -34b4f5a,5f -34b4f5b,70 -34b4f5c,d -34b4f5d,b0 -34b4f5e,5f -34b4f5f,70 -34b4f60,8 -34b4f61,e5 -34b4f62,5f -34b4f63,70 -34b4f65,db -34b4f7a,6 -34b4f7b,ce -34b4f7c,eb -34b4f7d,30 -34b4f7e,d -34b4f7f,c4 -34b4f80,5a -34b4f81,90 -34b4f82,4f -34b4f83,60 -34b4f86,e -34b4f87,c6 -34b4f8a,5 -34b4f8b,ce -34b4f8c,eb -34b4f8d,40 -34b4f90,6c -34b4f91,c0 -34b4f94,8 -34b4f95,e0 -34b4f96,c -34b4f97,73 -34b4f98,5c -34b4f99,d0 -34b4f9a,8 -34b4f9b,de -34b4f9c,ec -34b4f9d,50 -34b4fb2,cf -34b4fb3,ff -34b4fb4,ff -34b4fb5,fb -34b4fb7,d -34b4fb8,b0 -34b4fbb,d -34b4fbc,b0 -34b4fbf,d -34b4fc0,b0 -34b4fc3,d -34b4fc4,b0 -34b4fc7,d -34b4fc8,b0 -34b4fcb,d -34b4fcc,b0 -34b4fcf,d -34b4fd0,b0 -34b4fd3,d -34b4fd4,b0 -34b4fea,4f -34b4feb,70 -34b4fec,9 -34b4fed,e0 -34b4fee,4f -34b4fef,70 -34b4ff0,9 -34b4ff1,e0 -34b4ff2,4f -34b4ff3,70 -34b4ff4,9 -34b4ff5,e0 -34b4ff6,4f -34b4ff7,70 -34b4ff8,9 -34b4ff9,e0 -34b4ffa,4f -34b4ffb,70 -34b4ffc,9 -34b4ffd,e0 -34b4ffe,3f -34b4fff,70 -34b5000,9 -34b5001,e0 -34b5002,2e -34b5003,70 -34b5004,a -34b5005,d0 -34b5006,d -34b5007,c4 -34b5008,5d -34b5009,c0 -34b500a,5 -34b500b,ce -34b500c,ec -34b500d,40 -34b5022,ad -34b5024,3 -34b5025,e8 -34b5026,6f -34b5027,50 -34b5028,8 -34b5029,e3 -34b502a,e -34b502b,90 -34b502c,b -34b502d,c0 -34b502e,b -34b502f,c0 -34b5030,d -34b5031,90 -34b5032,8 -34b5033,e1 -34b5034,5e -34b5035,40 -34b5036,2 -34b5037,e7 -34b5038,ad -34b503b,cb -34b503c,ca -34b503f,9d -34b5040,e6 -34b5043,3e -34b5044,d0 -34b505a,e8 -34b505d,ad -34b505e,da -34b5061,cb -34b5062,cb -34b5065,da -34b5066,ac -34b5067,e -34b5068,c0 -34b5069,e8 -34b506a,8d -34b506b,6d -34b506c,e1 -34b506d,e5 -34b506e,6e -34b506f,9b -34b5070,d8 -34b5071,e0 -34b5072,1e -34b5073,c8 -34b5074,ac -34b5075,d0 -34b5076,d -34b5077,e3 -34b5078,7e -34b5079,c0 -34b507a,c -34b507b,d0 -34b507c,e -34b507d,a0 -34b5092,6e -34b5093,70 -34b5094,7 -34b5095,e7 -34b5096,a -34b5097,d2 -34b5098,1d -34b5099,b0 -34b509a,2 -34b509b,da -34b509c,ad -34b509d,20 -34b509f,7e -34b50a0,e7 -34b50a3,3e -34b50a4,e2 -34b50a7,bd -34b50a8,da -34b50aa,7 -34b50ab,e6 -34b50ac,7e -34b50ad,60 -34b50ae,3e -34b50af,a0 -34b50b0,b -34b50b1,d0 -34b50b2,bd -34b50b3,20 -34b50b4,4 -34b50b5,e9 -34b50ca,ae -34b50cb,20 -34b50cc,5 -34b50cd,e8 -34b50ce,2d -34b50cf,a0 -34b50d0,c -34b50d1,c0 -34b50d2,7 -34b50d3,e5 -34b50d4,7e -34b50d5,50 -34b50d7,cc -34b50d8,da -34b50db,4e -34b50dc,d2 -34b50df,d -34b50e0,b0 -34b50e3,d -34b50e4,b0 -34b50e7,d -34b50e8,b0 -34b50eb,d -34b50ec,b0 -34b5102,e -34b5103,ff -34b5104,ff -34b5105,f8 -34b5108,b -34b5109,d3 -34b510c,7e -34b510d,70 -34b510f,3 -34b5110,ea -34b5113,b -34b5114,d1 -34b5117,8e -34b5118,50 -34b511a,4 -34b511b,e9 -34b511e,c -34b511f,c0 -34b5122,1f -34b5123,ff -34b5124,ff -34b5125,fa -34b5133,4f -34b5134,fc -34b5137,4f -34b5138,50 -34b513b,4f -34b513c,50 -34b513f,4f -34b5140,50 -34b5143,4f -34b5144,50 -34b5147,4f -34b5148,50 -34b514b,4f -34b514c,50 -34b514f,4f -34b5150,50 -34b5153,4f -34b5154,50 -34b5157,4f -34b5158,50 -34b515b,4f -34b515c,50 -34b515f,4f -34b5160,fc -34b5172,6e -34b5173,50 -34b5176,c -34b5177,b0 -34b517a,7 -34b517b,e3 -34b517f,da -34b5183,9e -34b5184,20 -34b5187,1e -34b5188,90 -34b518b,a -34b518c,d0 -34b518f,3 -34b5190,e8 -34b5194,bc -34b5198,4e -34b5199,60 -34b519c,b -34b519d,c0 -34b51a3,df -34b51a4,e0 -34b51a7,8 -34b51a8,e0 -34b51ab,8 -34b51ac,e0 -34b51af,8 -34b51b0,e0 -34b51b3,8 -34b51b4,e0 -34b51b7,8 -34b51b8,e0 -34b51bb,8 -34b51bc,e0 -34b51bf,8 -34b51c0,e0 -34b51c3,8 -34b51c4,e0 -34b51c7,8 -34b51c8,e0 -34b51cb,8 -34b51cc,e0 -34b51cf,df -34b51d0,e0 -34b51e3,5e -34b51e4,d2 -34b51e7,dc -34b51e8,db -34b51ea,a -34b51eb,d2 -34b51ec,5e -34b51ed,80 -34b51ee,7e -34b51ef,50 -34b51f0,7 -34b51f1,e5 -34b5246,ff -34b5247,ff -34b5248,ff -34b5249,fd -34b524e,2 -34b524f,ca -34b5253,2c -34b5254,90 -34b5292,5 -34b5293,ce -34b5294,eb -34b5295,10 -34b5296,b -34b5297,93 -34b5298,6d -34b5299,a0 -34b529c,b -34b529d,c0 -34b529e,8 -34b529f,de -34b52a0,ff -34b52a1,c0 -34b52a2,3e -34b52a3,93 -34b52a4,b -34b52a5,d0 -34b52a6,4f -34b52a7,82 -34b52a8,7e -34b52a9,d0 -34b52aa,a -34b52ab,ee -34b52ac,db -34b52ad,d0 -34b52ba,d -34b52bb,90 -34b52be,d -34b52bf,90 -34b52c2,d -34b52c3,90 -34b52c6,d -34b52c7,90 -34b52ca,d -34b52cb,bd -34b52cc,ec -34b52cd,40 -34b52ce,d -34b52cf,e6 -34b52d0,5d -34b52d1,c0 -34b52d2,d -34b52d3,b0 -34b52d4,8 -34b52d5,e0 -34b52d6,d -34b52d7,a0 -34b52d8,7 -34b52d9,f2 -34b52da,d -34b52db,b0 -34b52dc,8 -34b52dd,e0 -34b52de,d -34b52df,e6 -34b52e0,4d -34b52e1,b0 -34b52e2,d -34b52e3,bd -34b52e4,ec -34b52e5,40 -34b5303,8d -34b5304,ed -34b5305,70 -34b5306,7 -34b5307,e9 -34b5308,36 -34b5309,a0 -34b530a,c -34b530b,c0 -34b530e,d -34b530f,b0 -34b5312,c -34b5313,c0 -34b5316,7 -34b5317,e9 -34b5318,36 -34b5319,a0 -34b531b,8d -34b531c,ed -34b531d,70 -34b532c,b -34b532d,c0 -34b5330,b -34b5331,c0 -34b5334,b -34b5335,c0 -34b5338,b -34b5339,c0 -34b533a,5 -34b533b,de -34b533c,dc -34b533d,c0 -34b533e,d -34b533f,c4 -34b5340,8e -34b5341,c0 -34b5342,5f -34b5343,60 -34b5344,c -34b5345,c0 -34b5346,7f -34b5347,30 -34b5348,b -34b5349,c0 -34b534a,5f -34b534b,60 -34b534c,c -34b534d,c0 -34b534e,d -34b534f,c4 -34b5350,8e -34b5351,c0 -34b5352,5 -34b5353,de -34b5354,dc -34b5355,c0 -34b5372,3 -34b5373,be -34b5374,ec -34b5375,30 -34b5376,c -34b5377,d5 -34b5378,4c -34b5379,c0 -34b537a,4f -34b537b,60 -34b537c,7 -34b537d,e0 -34b537e,6f -34b537f,ff -34b5380,ff -34b5381,f3 -34b5382,4f -34b5383,50 -34b5386,c -34b5387,c5 -34b5388,38 -34b5389,c0 -34b538a,3 -34b538b,be -34b538c,ec -34b538d,60 -34b539b,5 -34b539c,de -34b539d,d0 -34b539f,c -34b53a0,b2 -34b53a3,d -34b53a4,90 -34b53a7,e -34b53a8,80 -34b53aa,d -34b53ab,ff -34b53ac,ff -34b53ad,d0 -34b53af,e -34b53b0,80 -34b53b3,e -34b53b4,80 -34b53b7,e -34b53b8,80 -34b53bb,e -34b53bc,80 -34b53bf,e -34b53c0,80 -34b53c3,e -34b53c4,80 -34b53e2,5 -34b53e3,de -34b53e4,dc -34b53e5,c0 -34b53e6,d -34b53e7,c4 -34b53e8,8e +34b4f21,e0 +34b4f22,5f +34b4f23,e6 +34b4f24,8 +34b4f25,e0 +34b4f26,5f +34b4f27,cb +34b4f28,8 +34b4f29,e0 +34b4f2a,5f +34b4f2b,7e +34b4f2c,48 +34b4f2d,e0 +34b4f2e,5f +34b4f2f,5c +34b4f30,a8 +34b4f31,e0 +34b4f32,5f +34b4f33,57 +34b4f34,e8 +34b4f35,e0 +34b4f36,5f +34b4f37,50 +34b4f38,dc +34b4f39,e0 +34b4f3a,5f +34b4f3b,50 +34b4f3c,9e +34b4f3d,e0 +34b4f3e,5f +34b4f3f,50 +34b4f40,2e +34b4f41,e0 +34b4f56,4 +34b4f57,ce +34b4f58,eb +34b4f59,20 +34b4f5a,c +34b4f5b,d5 +34b4f5c,6e +34b4f5d,a0 +34b4f5e,3e +34b4f5f,80 +34b4f60,a +34b4f61,e0 +34b4f62,7f +34b4f63,50 +34b4f64,8 +34b4f65,f2 +34b4f66,7f +34b4f67,40 +34b4f68,8 +34b4f69,f4 +34b4f6a,7f +34b4f6b,50 +34b4f6c,8 +34b4f6d,f2 +34b4f6e,3e +34b4f6f,80 +34b4f70,a +34b4f71,e0 +34b4f72,c +34b4f73,d5 +34b4f74,6e +34b4f75,b0 +34b4f76,4 +34b4f77,ce +34b4f78,eb +34b4f79,20 +34b4f8e,d +34b4f8f,ff +34b4f90,ed +34b4f91,60 +34b4f92,d +34b4f93,b0 +34b4f94,5c +34b4f95,e2 +34b4f96,d +34b4f97,b0 +34b4f98,6 +34b4f99,f6 +34b4f9a,d +34b4f9b,b0 +34b4f9c,6 +34b4f9d,f6 +34b4f9e,d +34b4f9f,b0 +34b4fa0,5c +34b4fa1,e2 +34b4fa2,d +34b4fa3,ff +34b4fa4,ed +34b4fa5,60 +34b4fa6,d +34b4fa7,b0 +34b4faa,d +34b4fab,b0 +34b4fae,d +34b4faf,b0 +34b4fc6,4 +34b4fc7,ce +34b4fc8,eb +34b4fc9,20 +34b4fca,c +34b4fcb,d5 +34b4fcc,6e +34b4fcd,a0 +34b4fce,3e +34b4fcf,80 +34b4fd0,a +34b4fd1,e0 +34b4fd2,7f +34b4fd3,50 +34b4fd4,8 +34b4fd5,f2 +34b4fd6,7f +34b4fd7,40 +34b4fd8,8 +34b4fd9,f4 +34b4fda,7f +34b4fdb,50 +34b4fdc,8 +34b4fdd,f1 +34b4fde,3e +34b4fdf,80 +34b4fe0,a +34b4fe1,d0 +34b4fe2,c +34b4fe3,d5 +34b4fe4,6e +34b4fe5,a0 +34b4fe6,4 +34b4fe7,ce +34b4fe8,fc +34b4fe9,20 +34b4fec,ae +34b4fed,50 +34b4ff0,c +34b4ff1,80 +34b4ffe,5f +34b4fff,fe +34b5000,eb +34b5001,20 +34b5002,5f +34b5003,71 +34b5004,7e +34b5005,b0 +34b5006,5f +34b5007,70 +34b5008,c +34b5009,d0 +34b500a,5f +34b500b,71 +34b500c,6e +34b500d,a0 +34b500e,5f +34b500f,ff +34b5010,ea +34b5012,5f +34b5013,72 +34b5014,ae +34b5015,40 +34b5016,5f +34b5017,70 +34b5018,d +34b5019,b0 +34b501a,5f +34b501b,70 +34b501c,8 +34b501d,e5 +34b501e,5f +34b501f,70 +34b5021,db +34b5036,6 +34b5037,ce +34b5038,eb +34b5039,30 +34b503a,d +34b503b,c4 +34b503c,5a +34b503d,90 +34b503e,4f +34b503f,60 +34b5042,e +34b5043,c6 +34b5046,5 +34b5047,ce +34b5048,eb +34b5049,40 +34b504c,6c +34b504d,c0 +34b5050,8 +34b5051,e0 +34b5052,c +34b5053,73 +34b5054,5c +34b5055,d0 +34b5056,8 +34b5057,de +34b5058,ec +34b5059,50 +34b506e,cf +34b506f,ff +34b5070,ff +34b5071,fb +34b5073,d +34b5074,b0 +34b5077,d +34b5078,b0 +34b507b,d +34b507c,b0 +34b507f,d +34b5080,b0 +34b5083,d +34b5084,b0 +34b5087,d +34b5088,b0 +34b508b,d +34b508c,b0 +34b508f,d +34b5090,b0 +34b50a6,4f +34b50a7,70 +34b50a8,9 +34b50a9,e0 +34b50aa,4f +34b50ab,70 +34b50ac,9 +34b50ad,e0 +34b50ae,4f +34b50af,70 +34b50b0,9 +34b50b1,e0 +34b50b2,4f +34b50b3,70 +34b50b4,9 +34b50b5,e0 +34b50b6,4f +34b50b7,70 +34b50b8,9 +34b50b9,e0 +34b50ba,3f +34b50bb,70 +34b50bc,9 +34b50bd,e0 +34b50be,2e +34b50bf,70 +34b50c0,a +34b50c1,d0 +34b50c2,d +34b50c3,c4 +34b50c4,5d +34b50c5,c0 +34b50c6,5 +34b50c7,ce +34b50c8,ec +34b50c9,40 +34b50de,ad +34b50e0,3 +34b50e1,e8 +34b50e2,6f +34b50e3,50 +34b50e4,8 +34b50e5,e3 +34b50e6,e +34b50e7,90 +34b50e8,b +34b50e9,c0 +34b50ea,b +34b50eb,c0 +34b50ec,d +34b50ed,90 +34b50ee,8 +34b50ef,e1 +34b50f0,5e +34b50f1,40 +34b50f2,2 +34b50f3,e7 +34b50f4,ad +34b50f7,cb +34b50f8,ca +34b50fb,9d +34b50fc,e6 +34b50ff,3e +34b5100,d0 +34b5116,e8 +34b5119,ad +34b511a,da +34b511d,cb +34b511e,cb +34b5121,da +34b5122,ac +34b5123,e +34b5124,c0 +34b5125,e8 +34b5126,8d +34b5127,6d +34b5128,e1 +34b5129,e5 +34b512a,6e +34b512b,9b +34b512c,d8 +34b512d,e0 +34b512e,1e +34b512f,c8 +34b5130,ac +34b5131,d0 +34b5132,d +34b5133,e3 +34b5134,7e +34b5135,c0 +34b5136,c +34b5137,d0 +34b5138,e +34b5139,a0 +34b514e,6e +34b514f,70 +34b5150,7 +34b5151,e7 +34b5152,a +34b5153,d2 +34b5154,1d +34b5155,b0 +34b5156,2 +34b5157,da +34b5158,ad +34b5159,20 +34b515b,7e +34b515c,e7 +34b515f,3e +34b5160,e2 +34b5163,bd +34b5164,da +34b5166,7 +34b5167,e6 +34b5168,7e +34b5169,60 +34b516a,3e +34b516b,a0 +34b516c,b +34b516d,d0 +34b516e,bd +34b516f,20 +34b5170,4 +34b5171,e9 +34b5186,ae +34b5187,20 +34b5188,5 +34b5189,e8 +34b518a,2d +34b518b,a0 +34b518c,c +34b518d,c0 +34b518e,7 +34b518f,e5 +34b5190,7e +34b5191,50 +34b5193,cc +34b5194,da +34b5197,4e +34b5198,d2 +34b519b,d +34b519c,b0 +34b519f,d +34b51a0,b0 +34b51a3,d +34b51a4,b0 +34b51a7,d +34b51a8,b0 +34b51be,e +34b51bf,ff +34b51c0,ff +34b51c1,f8 +34b51c4,b +34b51c5,d3 +34b51c8,7e +34b51c9,70 +34b51cb,3 +34b51cc,ea +34b51cf,b +34b51d0,d1 +34b51d3,8e +34b51d4,50 +34b51d6,4 +34b51d7,e9 +34b51da,c +34b51db,c0 +34b51de,1f +34b51df,ff +34b51e0,ff +34b51e1,fa +34b51ef,4f +34b51f0,fc +34b51f3,4f +34b51f4,50 +34b51f7,4f +34b51f8,50 +34b51fb,4f +34b51fc,50 +34b51ff,4f +34b5200,50 +34b5203,4f +34b5204,50 +34b5207,4f +34b5208,50 +34b520b,4f +34b520c,50 +34b520f,4f +34b5210,50 +34b5213,4f +34b5214,50 +34b5217,4f +34b5218,50 +34b521b,4f +34b521c,fc +34b522e,6e +34b522f,50 +34b5232,c +34b5233,b0 +34b5236,7 +34b5237,e3 +34b523b,da +34b523f,9e +34b5240,20 +34b5243,1e +34b5244,90 +34b5247,a +34b5248,d0 +34b524b,3 +34b524c,e8 +34b5250,bc +34b5254,4e +34b5255,60 +34b5258,b +34b5259,c0 +34b525f,df +34b5260,e0 +34b5263,8 +34b5264,e0 +34b5267,8 +34b5268,e0 +34b526b,8 +34b526c,e0 +34b526f,8 +34b5270,e0 +34b5273,8 +34b5274,e0 +34b5277,8 +34b5278,e0 +34b527b,8 +34b527c,e0 +34b527f,8 +34b5280,e0 +34b5283,8 +34b5284,e0 +34b5287,8 +34b5288,e0 +34b528b,df +34b528c,e0 +34b529f,5e +34b52a0,d2 +34b52a3,dc +34b52a4,db +34b52a6,a +34b52a7,d2 +34b52a8,5e +34b52a9,80 +34b52aa,7e +34b52ab,50 +34b52ac,7 +34b52ad,e5 +34b5302,ff +34b5303,ff +34b5304,ff +34b5305,fd +34b530a,2 +34b530b,ca +34b530f,2c +34b5310,90 +34b534e,5 +34b534f,ce +34b5350,eb +34b5351,10 +34b5352,b +34b5353,93 +34b5354,6d +34b5355,a0 +34b5358,b +34b5359,c0 +34b535a,8 +34b535b,de +34b535c,ff +34b535d,c0 +34b535e,3e +34b535f,93 +34b5360,b +34b5361,d0 +34b5362,4f +34b5363,82 +34b5364,7e +34b5365,d0 +34b5366,a +34b5367,ee +34b5368,db +34b5369,d0 +34b5376,d +34b5377,90 +34b537a,d +34b537b,90 +34b537e,d +34b537f,90 +34b5382,d +34b5383,90 +34b5386,d +34b5387,bd +34b5388,ec +34b5389,40 +34b538a,d +34b538b,e6 +34b538c,5d +34b538d,c0 +34b538e,d +34b538f,b0 +34b5390,8 +34b5391,e0 +34b5392,d +34b5393,a0 +34b5394,7 +34b5395,f2 +34b5396,d +34b5397,b0 +34b5398,8 +34b5399,e0 +34b539a,d +34b539b,e6 +34b539c,4d +34b539d,b0 +34b539e,d +34b539f,bd +34b53a0,ec +34b53a1,40 +34b53bf,8d +34b53c0,ed +34b53c1,70 +34b53c2,7 +34b53c3,e9 +34b53c4,36 +34b53c5,a0 +34b53c6,c +34b53c7,c0 +34b53ca,d +34b53cb,b0 +34b53ce,c +34b53cf,c0 +34b53d2,7 +34b53d3,e9 +34b53d4,36 +34b53d5,a0 +34b53d7,8d +34b53d8,ed +34b53d9,70 +34b53e8,b 34b53e9,c0 -34b53ea,5f -34b53eb,60 -34b53ec,c +34b53ec,b 34b53ed,c0 -34b53ee,7f -34b53ef,30 34b53f0,b 34b53f1,c0 -34b53f2,5f -34b53f3,60 -34b53f4,c +34b53f4,b 34b53f5,c0 -34b53f6,d -34b53f7,c4 -34b53f8,8e +34b53f6,5 +34b53f7,de +34b53f8,dc 34b53f9,c0 -34b53fa,5 -34b53fb,de -34b53fc,dc -34b53fd,b0 +34b53fa,d +34b53fb,c4 +34b53fc,8e +34b53fd,c0 +34b53fe,5f +34b53ff,60 34b5400,c -34b5401,a0 -34b5402,9 -34b5403,94 -34b5404,7e -34b5405,60 -34b5406,4 -34b5407,ce -34b5408,e9 +34b5401,c0 +34b5402,7f +34b5403,30 +34b5404,b +34b5405,c0 +34b5406,5f +34b5407,60 +34b5408,c +34b5409,c0 34b540a,d -34b540b,a0 -34b540e,d -34b540f,a0 -34b5412,d -34b5413,a0 -34b5416,d -34b5417,a0 -34b541a,d -34b541b,bd -34b541c,ed -34b541d,40 -34b541e,d -34b541f,e6 -34b5420,5d -34b5421,a0 -34b5422,d -34b5423,b0 -34b5424,b -34b5425,c0 -34b5426,d -34b5427,a0 -34b5428,b -34b5429,c0 -34b542a,d -34b542b,a0 -34b542c,b -34b542d,c0 -34b542e,d -34b542f,a0 -34b5430,b -34b5431,c0 -34b5432,d -34b5433,a0 -34b5434,b +34b540b,c4 +34b540c,8e +34b540d,c0 +34b540e,5 +34b540f,de +34b5410,dc +34b5411,c0 +34b542e,3 +34b542f,be +34b5430,ec +34b5431,30 +34b5432,c +34b5433,d5 +34b5434,4c 34b5435,c0 -34b5443,b -34b5444,c0 -34b5452,9 -34b5453,ff -34b5454,c0 -34b5457,b -34b5458,c0 -34b545b,b -34b545c,c0 -34b545f,b -34b5460,c0 -34b5463,b -34b5464,c0 -34b5467,b -34b5468,c0 -34b546a,e -34b546b,ff -34b546c,ff -34b546d,e0 -34b547b,7 -34b547c,e0 -34b548a,7 -34b548b,ff -34b548c,e0 -34b548f,7 -34b5490,e0 -34b5493,7 -34b5494,e0 -34b5497,7 -34b5498,e0 -34b549b,7 -34b549c,e0 -34b549f,7 -34b54a0,e0 -34b54a3,7 -34b54a4,e0 -34b54a7,7 -34b54a8,e0 -34b54ab,1b -34b54ac,d0 -34b54ae,d -34b54af,fe -34b54b0,70 -34b54b2,b -34b54b3,c0 -34b54b6,b -34b54b7,c0 -34b54ba,b -34b54bb,c0 -34b54be,b -34b54bf,c0 -34b54c2,b -34b54c3,c0 -34b54c4,3d -34b54c5,c2 -34b54c6,b -34b54c7,c3 -34b54c8,db -34b54ca,b -34b54cb,dd -34b54cc,c0 -34b54ce,b -34b54cf,fc -34b54d0,e5 -34b54d2,b -34b54d3,d0 -34b54d4,cd -34b54d5,10 -34b54d6,b -34b54d7,c0 -34b54d8,3d -34b54d9,b0 -34b54da,b -34b54db,c0 -34b54dc,7 -34b54dd,e8 -34b54ea,e -34b54eb,ff -34b54ec,40 -34b54ef,5f -34b54f0,40 -34b54f3,5f -34b54f4,40 -34b54f7,5f -34b54f8,40 -34b54fb,5f -34b54fc,40 -34b54ff,5f -34b5500,40 -34b5503,5f -34b5504,40 -34b5507,5f -34b5508,40 -34b550b,4f -34b550c,50 -34b550f,e -34b5510,a0 -34b5513,8 -34b5514,ef -34b5515,b0 -34b5532,8d -34b5533,dd -34b5534,ae -34b5535,c0 -34b5536,8e -34b5537,4d -34b5538,c5 -34b5539,e4 -34b553a,8d -34b553b,c -34b553c,b0 -34b553d,e6 -34b553e,8d -34b553f,b -34b5540,a0 -34b5541,e7 -34b5542,8d -34b5543,b -34b5544,a0 -34b5545,e7 -34b5546,8d -34b5547,b -34b5548,a0 -34b5549,e7 -34b554a,8d -34b554b,b -34b554c,a0 -34b554d,e7 +34b5436,4f +34b5437,60 +34b5438,7 +34b5439,e0 +34b543a,6f +34b543b,ff +34b543c,ff +34b543d,f3 +34b543e,4f +34b543f,50 +34b5442,c +34b5443,c5 +34b5444,38 +34b5445,c0 +34b5446,3 +34b5447,be +34b5448,ec +34b5449,60 +34b5457,5 +34b5458,de +34b5459,d0 +34b545b,c +34b545c,b2 +34b545f,d +34b5460,90 +34b5463,e +34b5464,80 +34b5466,d +34b5467,ff +34b5468,ff +34b5469,d0 +34b546b,e +34b546c,80 +34b546f,e +34b5470,80 +34b5473,e +34b5474,80 +34b5477,e +34b5478,80 +34b547b,e +34b547c,80 +34b547f,e +34b5480,80 +34b549e,5 +34b549f,de +34b54a0,dc +34b54a1,c0 +34b54a2,d +34b54a3,c4 +34b54a4,8e +34b54a5,c0 +34b54a6,5f +34b54a7,60 +34b54a8,c +34b54a9,c0 +34b54aa,7f +34b54ab,30 +34b54ac,b +34b54ad,c0 +34b54ae,5f +34b54af,60 +34b54b0,c +34b54b1,c0 +34b54b2,d +34b54b3,c4 +34b54b4,8e +34b54b5,c0 +34b54b6,5 +34b54b7,de +34b54b8,dc +34b54b9,b0 +34b54bc,c +34b54bd,a0 +34b54be,9 +34b54bf,94 +34b54c0,7e +34b54c1,60 +34b54c2,4 +34b54c3,ce +34b54c4,e9 +34b54c6,d +34b54c7,a0 +34b54ca,d +34b54cb,a0 +34b54ce,d +34b54cf,a0 +34b54d2,d +34b54d3,a0 +34b54d6,d +34b54d7,bd +34b54d8,ed +34b54d9,40 +34b54da,d +34b54db,e6 +34b54dc,5d +34b54dd,a0 +34b54de,d +34b54df,b0 +34b54e0,b +34b54e1,c0 +34b54e2,d +34b54e3,a0 +34b54e4,b +34b54e5,c0 +34b54e6,d +34b54e7,a0 +34b54e8,b +34b54e9,c0 +34b54ea,d +34b54eb,a0 +34b54ec,b +34b54ed,c0 +34b54ee,d +34b54ef,a0 +34b54f0,b +34b54f1,c0 +34b54ff,b +34b5500,c0 +34b550e,9 +34b550f,ff +34b5510,c0 +34b5513,b +34b5514,c0 +34b5517,b +34b5518,c0 +34b551b,b +34b551c,c0 +34b551f,b +34b5520,c0 +34b5523,b +34b5524,c0 +34b5526,e +34b5527,ff +34b5528,ff +34b5529,e0 +34b5537,7 +34b5538,e0 +34b5546,7 +34b5547,ff +34b5548,e0 +34b554b,7 +34b554c,e0 +34b554f,7 +34b5550,e0 +34b5553,7 +34b5554,e0 +34b5557,7 +34b5558,e0 +34b555b,7 +34b555c,e0 +34b555f,7 +34b5560,e0 +34b5563,7 +34b5564,e0 +34b5567,1b +34b5568,d0 34b556a,d -34b556b,bd -34b556c,ed -34b556d,40 -34b556e,d -34b556f,e6 -34b5570,5d -34b5571,a0 -34b5572,d -34b5573,b0 -34b5574,b -34b5575,c0 -34b5576,d -34b5577,a0 -34b5578,b -34b5579,c0 -34b557a,d -34b557b,a0 -34b557c,b -34b557d,c0 -34b557e,d -34b557f,a0 -34b5580,b -34b5581,c0 -34b5582,d -34b5583,a0 -34b5584,b -34b5585,c0 -34b55a2,4 -34b55a3,ce -34b55a4,eb -34b55a5,20 -34b55a6,c -34b55a7,d5 -34b55a8,6d -34b55a9,a0 -34b55aa,1e -34b55ab,70 -34b55ac,a -34b55ad,d0 -34b55ae,5f -34b55af,60 -34b55b0,8 -34b55b1,e0 -34b55b2,1e -34b55b3,70 -34b55b4,a -34b55b5,d0 -34b55b6,c -34b55b7,d4 -34b55b8,6d -34b55b9,b0 -34b55ba,4 -34b55bb,ce -34b55bc,eb -34b55bd,20 -34b55da,d -34b55db,bd -34b55dc,ec -34b55dd,30 -34b55de,d -34b55df,e6 -34b55e0,5d -34b55e1,b0 -34b55e2,d -34b55e3,b0 -34b55e4,9 -34b55e5,e0 -34b55e6,d -34b55e7,a0 -34b55e8,7 -34b55e9,e0 -34b55ea,d -34b55eb,b0 -34b55ec,8 -34b55ed,e0 -34b55ee,d -34b55ef,e6 -34b55f0,5d -34b55f1,b0 -34b55f2,d -34b55f3,be -34b55f4,ec -34b55f5,40 -34b55f6,d -34b55f7,90 -34b55fa,d -34b55fb,90 -34b55fe,d -34b55ff,90 -34b5612,4 -34b5613,ce -34b5614,dc -34b5615,c0 -34b5616,c -34b5617,c4 -34b5618,7e -34b5619,c0 -34b561a,1e -34b561b,70 -34b561c,c -34b561d,c0 -34b561e,5f -34b561f,60 -34b5620,b -34b5621,c0 -34b5622,2e -34b5623,70 -34b5624,c -34b5625,c0 -34b5626,c -34b5627,c4 -34b5628,7e -34b5629,c0 -34b562a,5 -34b562b,ce -34b562c,db -34b562d,c0 -34b5630,a +34b556b,fe +34b556c,70 +34b556e,b +34b556f,c0 +34b5572,b +34b5573,c0 +34b5576,b +34b5577,c0 +34b557a,b +34b557b,c0 +34b557e,b +34b557f,c0 +34b5580,3d +34b5581,c2 +34b5582,b +34b5583,c3 +34b5584,db +34b5586,b +34b5587,dd +34b5588,c0 +34b558a,b +34b558b,fc +34b558c,e5 +34b558e,b +34b558f,d0 +34b5590,cd +34b5591,10 +34b5592,b +34b5593,c0 +34b5594,3d +34b5595,b0 +34b5596,b +34b5597,c0 +34b5598,7 +34b5599,e8 +34b55a6,e +34b55a7,ff +34b55a8,40 +34b55ab,5f +34b55ac,40 +34b55af,5f +34b55b0,40 +34b55b3,5f +34b55b4,40 +34b55b7,5f +34b55b8,40 +34b55bb,5f +34b55bc,40 +34b55bf,5f +34b55c0,40 +34b55c3,5f +34b55c4,40 +34b55c7,4f +34b55c8,50 +34b55cb,e +34b55cc,a0 +34b55cf,8 +34b55d0,ef +34b55d1,b0 +34b55ee,8d +34b55ef,dd +34b55f0,ae +34b55f1,c0 +34b55f2,8e +34b55f3,4d +34b55f4,c5 +34b55f5,e4 +34b55f6,8d +34b55f7,c +34b55f8,b0 +34b55f9,e6 +34b55fa,8d +34b55fb,b +34b55fc,a0 +34b55fd,e7 +34b55fe,8d +34b55ff,b +34b5600,a0 +34b5601,e7 +34b5602,8d +34b5603,b +34b5604,a0 +34b5605,e7 +34b5606,8d +34b5607,b +34b5608,a0 +34b5609,e7 +34b5626,d +34b5627,bd +34b5628,ed +34b5629,40 +34b562a,d +34b562b,e6 +34b562c,5d +34b562d,a0 +34b562e,d +34b562f,b0 +34b5630,b 34b5631,c0 -34b5634,a +34b5632,d +34b5633,a0 +34b5634,b 34b5635,c0 -34b5638,a +34b5636,d +34b5637,a0 +34b5638,b 34b5639,c0 -34b564b,cc -34b564c,de -34b564d,f9 -34b564f,ce -34b5650,83 -34b5653,cb -34b5657,ca -34b565b,ca -34b565f,ca -34b5663,ca -34b5682,4 -34b5683,ce -34b5684,ea -34b5685,10 -34b5686,b -34b5687,d4 -34b5688,5b -34b5689,60 -34b568a,b -34b568b,d4 -34b568e,3 -34b568f,bd -34b5690,db -34b5691,20 -34b5694,4d -34b5695,a0 -34b5696,b -34b5697,94 -34b5698,5e -34b5699,a0 -34b569a,5 -34b569b,ce -34b569c,eb -34b569d,20 -34b56b3,8e -34b56b7,8e -34b56ba,6f -34b56bb,ff -34b56bc,ff -34b56bd,b0 -34b56bf,8e -34b56c3,8e -34b56c7,8e -34b56cb,8e -34b56cf,6e -34b56d0,70 -34b56d3,b -34b56d4,ef -34b56d5,b0 -34b56f2,d -34b56f3,a0 -34b56f4,b +34b563a,d +34b563b,a0 +34b563c,b +34b563d,c0 +34b563e,d +34b563f,a0 +34b5640,b +34b5641,c0 +34b565e,4 +34b565f,ce +34b5660,eb +34b5661,20 +34b5662,c +34b5663,d5 +34b5664,6d +34b5665,a0 +34b5666,1e +34b5667,70 +34b5668,a +34b5669,d0 +34b566a,5f +34b566b,60 +34b566c,8 +34b566d,e0 +34b566e,1e +34b566f,70 +34b5670,a +34b5671,d0 +34b5672,c +34b5673,d4 +34b5674,6d +34b5675,b0 +34b5676,4 +34b5677,ce +34b5678,eb +34b5679,20 +34b5696,d +34b5697,bd +34b5698,ec +34b5699,30 +34b569a,d +34b569b,e6 +34b569c,5d +34b569d,b0 +34b569e,d +34b569f,b0 +34b56a0,9 +34b56a1,e0 +34b56a2,d +34b56a3,a0 +34b56a4,7 +34b56a5,e0 +34b56a6,d +34b56a7,b0 +34b56a8,8 +34b56a9,e0 +34b56aa,d +34b56ab,e6 +34b56ac,5d +34b56ad,b0 +34b56ae,d +34b56af,be +34b56b0,ec +34b56b1,40 +34b56b2,d +34b56b3,90 +34b56b6,d +34b56b7,90 +34b56ba,d +34b56bb,90 +34b56ce,4 +34b56cf,ce +34b56d0,dc +34b56d1,c0 +34b56d2,c +34b56d3,c4 +34b56d4,7e +34b56d5,c0 +34b56d6,1e +34b56d7,70 +34b56d8,c +34b56d9,c0 +34b56da,5f +34b56db,60 +34b56dc,b +34b56dd,c0 +34b56de,2e +34b56df,70 +34b56e0,c +34b56e1,c0 +34b56e2,c +34b56e3,c4 +34b56e4,7e +34b56e5,c0 +34b56e6,5 +34b56e7,ce +34b56e8,db +34b56e9,c0 +34b56ec,a +34b56ed,c0 +34b56f0,a +34b56f1,c0 +34b56f4,a 34b56f5,c0 -34b56f6,d -34b56f7,a0 -34b56f8,b -34b56f9,c0 -34b56fa,d -34b56fb,a0 -34b56fc,b -34b56fd,c0 -34b56fe,d -34b56ff,a0 -34b5700,b -34b5701,c0 -34b5702,d -34b5703,a0 -34b5704,b -34b5705,c0 -34b5706,b -34b5707,d4 -34b5708,7e -34b5709,c0 -34b570a,5 -34b570b,de -34b570c,db -34b570d,c0 -34b572a,6e -34b572b,30 -34b572c,7 -34b572d,e3 -34b572e,d -34b572f,90 -34b5730,b -34b5731,c0 -34b5732,a -34b5733,d0 -34b5734,1e -34b5735,80 -34b5736,5 -34b5737,e4 -34b5738,8e -34b5739,20 -34b573b,da -34b573c,cb -34b573f,9d -34b5740,e7 -34b5743,3e -34b5744,e0 -34b5762,e8 -34b5765,ac -34b5766,ca -34b5769,ca -34b576a,ac -34b576b,d -34b576c,b0 -34b576d,e7 -34b576e,6e -34b576f,3d -34b5770,d5 -34b5771,e2 -34b5772,e -34b5773,ab -34b5774,ca -34b5775,d0 -34b5776,c -34b5777,e7 -34b5778,9e +34b5707,cc +34b5708,de +34b5709,f9 +34b570b,ce +34b570c,83 +34b570f,cb +34b5713,ca +34b5717,ca +34b571b,ca +34b571f,ca +34b573e,4 +34b573f,ce +34b5740,ea +34b5741,10 +34b5742,b +34b5743,d4 +34b5744,5b +34b5745,60 +34b5746,b +34b5747,d4 +34b574a,3 +34b574b,bd +34b574c,db +34b574d,20 +34b5750,4d +34b5751,a0 +34b5752,b +34b5753,94 +34b5754,5e +34b5755,a0 +34b5756,5 +34b5757,ce +34b5758,eb +34b5759,20 +34b576f,8e +34b5773,8e +34b5776,6f +34b5777,ff +34b5778,ff 34b5779,b0 -34b577a,a -34b577b,e1 -34b577c,5f -34b577d,80 -34b579a,3d -34b579b,a0 -34b579c,b -34b579d,c0 -34b579e,6 -34b579f,e6 -34b57a0,9e -34b57a1,40 -34b57a3,9e -34b57a4,e7 -34b57a7,2e -34b57a8,d0 -34b57ab,cc -34b57ac,da -34b57ae,9 -34b57af,e4 -34b57b0,6e -34b57b1,70 -34b57b2,6e -34b57b3,70 -34b57b4,9 -34b57b5,e4 -34b57d2,6e -34b57d3,50 -34b57d4,5 -34b57d5,e5 -34b57d6,d -34b57d7,a0 -34b57d8,b -34b57d9,d0 -34b57da,9 -34b57db,e0 -34b57dc,e -34b57dd,90 -34b57de,3 -34b57df,e7 -34b57e0,8e -34b57e1,30 -34b57e3,cc -34b57e4,cc -34b57e7,7e -34b57e8,e7 -34b57eb,d -34b57ec,e0 -34b57ef,d -34b57f0,a0 -34b57f3,8e -34b57f4,50 -34b57f6,d -34b57f7,ea -34b580a,b -34b580b,ff -34b580c,ff -34b580d,c0 -34b5810,5e -34b5811,70 -34b5813,3 -34b5814,d9 -34b5817,c -34b5818,b0 -34b581b,bd -34b581c,20 -34b581e,9 -34b581f,e4 -34b5822,d -34b5823,ff -34b5824,ff -34b5825,c0 -34b5833,6 -34b5834,de -34b5835,a0 -34b5837,b -34b5838,d3 -34b583b,c -34b583c,b0 -34b583f,c -34b5840,b0 -34b5843,5e -34b5844,a0 -34b5846,b -34b5847,fd -34b5848,20 -34b584b,7e -34b584c,90 -34b584f,d -34b5850,b0 -34b5853,c -34b5854,b0 -34b5857,c -34b5858,b0 -34b585b,b -34b585c,d4 -34b585f,5 -34b5860,de -34b5861,a0 -34b586b,c -34b586c,a0 -34b586f,c -34b5870,a0 -34b5873,c -34b5874,a0 -34b5877,c -34b5878,a0 -34b587b,c -34b587c,a0 -34b587f,c -34b5880,a0 -34b5883,c -34b5884,a0 -34b5887,c -34b5888,a0 -34b588b,c -34b588c,a0 -34b588f,c -34b5890,a0 -34b5893,c -34b5894,a0 -34b5897,c -34b5898,a0 -34b589b,c -34b589c,a0 -34b58a2,b -34b58a3,ed -34b58a4,30 -34b58a7,4e -34b58a8,90 +34b577b,8e +34b577f,8e +34b5783,8e +34b5787,8e +34b578b,6e +34b578c,70 +34b578f,b +34b5790,ef +34b5791,b0 +34b57ae,d +34b57af,a0 +34b57b0,b +34b57b1,c0 +34b57b2,d +34b57b3,a0 +34b57b4,b +34b57b5,c0 +34b57b6,d +34b57b7,a0 +34b57b8,b +34b57b9,c0 +34b57ba,d +34b57bb,a0 +34b57bc,b +34b57bd,c0 +34b57be,d +34b57bf,a0 +34b57c0,b +34b57c1,c0 +34b57c2,b +34b57c3,d4 +34b57c4,7e +34b57c5,c0 +34b57c6,5 +34b57c7,de +34b57c8,db +34b57c9,c0 +34b57e6,6e +34b57e7,30 +34b57e8,7 +34b57e9,e3 +34b57ea,d +34b57eb,90 +34b57ec,b +34b57ed,c0 +34b57ee,a +34b57ef,d0 +34b57f0,1e +34b57f1,80 +34b57f2,5 +34b57f3,e4 +34b57f4,8e +34b57f5,20 +34b57f7,da +34b57f8,cb +34b57fb,9d +34b57fc,e7 +34b57ff,3e +34b5800,e0 +34b581e,e8 +34b5821,ac +34b5822,ca +34b5825,ca +34b5826,ac +34b5827,d +34b5828,b0 +34b5829,e7 +34b582a,6e +34b582b,3d +34b582c,d5 +34b582d,e2 +34b582e,e +34b582f,ab +34b5830,ca +34b5831,d0 +34b5832,c +34b5833,e7 +34b5834,9e +34b5835,b0 +34b5836,a +34b5837,e1 +34b5838,5f +34b5839,80 +34b5856,3d +34b5857,a0 +34b5858,b +34b5859,c0 +34b585a,6 +34b585b,e6 +34b585c,9e +34b585d,40 +34b585f,9e +34b5860,e7 +34b5863,2e +34b5864,d0 +34b5867,cc +34b5868,da +34b586a,9 +34b586b,e4 +34b586c,6e +34b586d,70 +34b586e,6e +34b586f,70 +34b5870,9 +34b5871,e4 +34b588e,6e +34b588f,50 +34b5890,5 +34b5891,e5 +34b5892,d +34b5893,a0 +34b5894,b +34b5895,d0 +34b5896,9 +34b5897,e0 +34b5898,e +34b5899,90 +34b589a,3 +34b589b,e7 +34b589c,8e +34b589d,30 +34b589f,cc +34b58a0,cc +34b58a3,7e +34b58a4,e7 +34b58a7,d +34b58a8,e0 34b58ab,d 34b58ac,a0 -34b58af,c -34b58b0,a0 -34b58b3,b -34b58b4,c4 -34b58b7,5 -34b58b8,ef -34b58b9,a0 -34b58bb,b -34b58bc,d5 -34b58bf,c -34b58c0,b0 -34b58c3,d -34b58c4,a0 -34b58c7,d -34b58c8,a0 -34b58cb,5e -34b58cc,80 -34b58ce,b -34b58cf,ec -34b58d0,20 -34b58f2,5d -34b58f3,ed -34b58f4,83 -34b58f5,a7 -34b58f6,98 -34b58f7,38 -34b58f8,de -34b58f9,c3 +34b58af,8e +34b58b0,50 +34b58b2,d +34b58b3,ea +34b58c6,b +34b58c7,ff +34b58c8,ff +34b58c9,c0 +34b58cc,5e +34b58cd,70 +34b58cf,3 +34b58d0,d9 +34b58d3,c +34b58d4,b0 +34b58d7,bd +34b58d8,20 +34b58da,9 +34b58db,e4 +34b58de,d +34b58df,ff +34b58e0,ff +34b58e1,c0 +34b58ef,6 +34b58f0,de +34b58f1,a0 +34b58f3,b +34b58f4,d3 +34b58f7,c +34b58f8,b0 +34b58fb,c +34b58fc,b0 +34b58ff,5e +34b5900,a0 +34b5902,b +34b5903,fd +34b5904,20 +34b5907,7e +34b5908,90 +34b590b,d +34b590c,b0 +34b590f,c +34b5910,b0 +34b5913,c +34b5914,b0 +34b5917,b +34b5918,d4 +34b591b,5 +34b591c,de +34b591d,a0 +34b5927,c +34b5928,a0 +34b592b,c +34b592c,a0 +34b592f,c +34b5930,a0 +34b5933,c +34b5934,a0 +34b5937,c +34b5938,a0 +34b593b,c +34b593c,a0 +34b593f,c +34b5940,a0 +34b5943,c +34b5944,a0 +34b5947,c +34b5948,a0 +34b594b,c +34b594c,a0 +34b594f,c +34b5950,a0 +34b5953,c +34b5954,a0 +34b5957,c +34b5958,a0 +34b595e,b +34b595f,ed +34b5960,30 +34b5963,4e +34b5964,90 +34b5967,d +34b5968,a0 +34b596b,c +34b596c,a0 +34b596f,b +34b5970,c4 +34b5973,5 +34b5974,ef +34b5975,a0 +34b5977,b +34b5978,d5 +34b597b,c +34b597c,b0 +34b597f,d +34b5980,a0 +34b5983,d +34b5984,a0 +34b5987,5e +34b5988,80 +34b598a,b +34b598b,ec +34b598c,20 +34b59ae,5d +34b59af,ed +34b59b0,83 +34b59b1,a7 +34b59b2,98 +34b59b3,38 +34b59b4,de +34b59b5,c3 diff --git a/data/symbols.json b/data/symbols.json index 193ca6049..7451ed245 100644 --- a/data/symbols.json +++ b/data/symbols.json @@ -4,7 +4,7 @@ "EXTENDED_ITEM_DATA": "03482008", "FAIRY_ITEMS": "03481C03", "FAIRY_OCARINA_ITEM": "03481C02", - "FONT_TEXTURE": "034B444A", + "FONT_TEXTURE": "034B4506", "INITIAL_SAVE_DATA": "03481800", "ITEM_OVERRIDES": "03481000", "ITEM_TABLE": "03482050", @@ -14,19 +14,19 @@ "PLAYER_ID": "03481C00", "PLAYER_OVERRIDE_DATA": "03482000", "TIME_TRAVEL_SAVED_EQUIPS": "0348201C", - "cfg_dungeon_info_enable": "034B440C", - "cfg_dungeon_info_mq_enable": "034B4420", - "cfg_dungeon_info_mq_need_compass": "034B441C", - "cfg_dungeon_info_reward_need_map": "034B4418", - "cfg_dungeon_is_mq": "034B443C", - "cfg_dungeon_rewards": "034B434C", - "dungeon_count": "034B4410", - "dungeons": "034B4370", - "font_sprite": "034B430C", - "heap_next": "034B4414", - "medal_colors": "034B435C", - "medals_sprite": "034B432C", - "quest_items_sprite": "034B431C", - "setup_db": "034B442C", - "stones_sprite": "034B433C" + "cfg_dungeon_info_enable": "034B44C8", + "cfg_dungeon_info_mq_enable": "034B44DC", + "cfg_dungeon_info_mq_need_compass": "034B44D8", + "cfg_dungeon_info_reward_need_map": "034B44D4", + "cfg_dungeon_is_mq": "034B44F8", + "cfg_dungeon_rewards": "034B4408", + "dungeon_count": "034B44CC", + "dungeons": "034B442C", + "font_sprite": "034B43C8", + "heap_next": "034B44D0", + "medal_colors": "034B4418", + "medals_sprite": "034B43E8", + "quest_items_sprite": "034B43D8", + "setup_db": "034B44E8", + "stones_sprite": "034B43F8" } \ No newline at end of file From f9aa39242b18227c8ab6140abc258174de835050 Mon Sep 17 00:00:00 2001 From: Nick Langille Date: Sun, 16 Sep 2018 07:18:10 -0400 Subject: [PATCH 515/755] Undo accidental compressor changes --- Compress/Compress | Bin 18408 -> 18624 bytes Compress/Compress.exe | Bin 53760 -> 53760 bytes Compress/Compress.out | Bin 19524 -> 19524 bytes Compress/Compress32.exe | Bin 55808 -> 55808 bytes 4 files changed, 0 insertions(+), 0 deletions(-) diff --git a/Compress/Compress b/Compress/Compress index 27560aa5e7217909f3f1f5dde6f094621816bb13..1fd48949fdfbc560979e3c4a02cfc6059867c58c 100755 GIT binary patch literal 18624 zcmeHv4|Eh|mTy(30}aGfGe(L0k#@GxL?EUyU>XwbN~)oH>>$b?@gb7X>6TzfGD$ar zqmWD|NKM2s%Uuu$su9LBRk*zu*0; zD(OVC@13{j%-MGiUryEi?)~n)-~H})zkgNL+3NN#H1RxVBolWpM_A897b9tRWQ!Q8 z)AG4-oQs>nP3Fdcl8Vd4N(gE>0}kk_4QSE%QUJ}k@=Y2c-{fK$15VY*oB<6B2~vGS z$)#sCcy6AC8j#~`j6iZ^E1IXJdrODGk99i+#_Hv|9Fa-Rs>@k*IRo~QVk83^?W4BQ zwM^H$%;W+_xQhTMvHK7tUP?<&1j{M^hJ&GiE|xLiI~tiYpdt4lI@I* z^^N8iPPgBHdULtEDl68`%e$+xe0F6;RcO=fP5JX?&&$iHtInCj+D-b2chTbItS0Jj zLlxPafs1HV{_)-aa?1~Y9ei;^|LKozh~Ao!nEuoG#5)BS>0s@m3~x0Njbb8u+H+H# z=OadVfHFKy0{{1hlNeTl`*+d*c@+BBqtK6zLjTn$^ogU;-yMa1brgErDD>ZqLjT86 z=y$_EHk6G_?}PAN{;3#+{@Ez>?W53ljY5B66#CCcp$nt*@1vveKR*in+$i)rMxoCi zh291FL@tx-bCn{;amG9lN1o`MSW4tUI*0L76I@s8FDs`(lgsJInhl|#f76I8rXe$zg>s^4{H8(vbN7{ks?AkUG?)gG=r;^fv0mtL zLTee#X@g0R6QUJYTiM}q0o|Z(fNusAG(KjX0g(P}?65Z%aD&C$% zr@7fk%}Mm+dGMtq`i%xN;LAyLTGNd5S`z&xg9!LW68+{RdP@?0QWCu_iH=!hFm)%< zZyBUw-ew;7=DWI6vE$N_-BMuXvJS<_z}V>q~gsCKS(%*QoNqw2MDJS ziq|l_op1`Bcqzko5l%xYzJ%fbMmU8~+{N%;5>BBL&t>>O5l$f!w=w+ZgwxQATN(b> zgj49mIfnm)a0;3DxoaTI_%Y!WD)BysKSel&NW6#PwS-e>#M>CYo^T3@_!|sgOLzw1 zFEjkV5l$fxZ)W&Igj3hY>lyw7!Y2`416+JqTp=zOmn~l^D_^41@?|Ax&s0xfE@+*1 zr;Ag61SUCBXor+~7wnZIKeFtxQ;7&{4|P;4F0-t3sIB1Lqah#dq7qr@l9kjxCuECB zk8(`CpLj^V^-faq4UwDLgvRCQvQ{rh9%ZjOhNzLk*YhB_3;EV8C{w9@UgcA!c@Oot zrv7h9{qd_LF)fOGWTrP-@UJL_s?&1pM2c5QsO3x+78G05m84xci@a6!4(2me7t0sh z97o+vr-eppN%QdfqEFjr$-%YI%}AIo!dk zpM66fNR2?)nJGM5jNb7opQ}e1x$set)w|H`try{F+1Ded+$4jhNOo(a$R;Z{{rGN- z$ZjPTDY6UQ+1*mKR1lSYlHlnRW8au1rQDvO-U?gxESc%z{+*noxqm#gd?~*YxmlSc z{O+dGzv8%n^02u+-yyufwNMZU(dPqpN|rg9B$*~Lb4@voV=GID_7*$ z=c(#ju-9?1)rEBlq4QhFsQIWBqZ#-nsO+SJ2W$XSJp=Ro}jmw-xWfS`^>vV#CzMC+b}{;xP1xx& zp~te+8DP*HGDTy3f%IUab<2@Wnd+;TSuAWNVq}v|eNn@!HQb_Z)9^JKZdErjyzl|w z>U!j9#H`h5Gl{lB%TJ>G50DqbSML*c+=AYfeMiMTrErwEn>xZna{-&@>6@l+F2`(D?U|iac$%dvCiUkGs;?7Q8`> znhTVpa;(oLkL!>l8?ACm;j_@>@x3oAUb{t7mf5Z91{fnnkdrYyK_yWu_uN5~TV$(MwZLd? z5<{y^`aCBqu((4lAWvhOv_lLfKO+^r12m^Vuo}yR94`E45V>GUYZwaEqbLMp<6U5U zo`k}C^BrxgR*R2{tHsB}H65)sj92wdjcqltts}Os)YYU0DgFrs(+^464vp&`;woYm zNcK!QQUmvHvZy^+b^4V+jxfEE3DWxQIPFp1drVe7lf%c)Em`L2YU{~%adKCzhJmi; z30UKAx;Wd$eZ|I0N3uBPg_b^7DJK`wJ$Pdasii0$*Ghy$U!b{zNev0@Vf+ne7>Hd< zk(G1k#rtHwQ-1GSaN?kbvATwl@?Q$KUal{ECdY<}=f>r-azcFyoz&Xf|!(1<$#LD^wr}i;p_b zZ&~m4z3cTIbev|Bq=&!c;V%c8n~rYD6NQ~lF@Jt&W-Cpf{gcSg-smEJk+2gRDR+LJ zGi329U83{KR@K?H(X3oh2Ev^P%NXxGAKD!rFtO-brDO|IJA$BN6{})(7pdcbC)+!; z{zoKxemI{O8n=T_RK60GgLKM7AJI+BeqU@jMGX;mYpsxb#D;Gu>lPM&Avq5UJF0=m zz9S{RgKoz~R;SEg(dJ2a)A22yg~HB)NmBlT(0$@tWXs}c!6b~Gf&M9A(qhUJeS#Nu zN;4D1`R3^%i%02qJ3rYPhiwC*vt#2JxAK9c^m@YWJZjwfFK)#lDGsz)Xl#cf?E{jq^Xc)tJHOz@(0CcM1k8MY>!;2m z8&loNVdanrOFdYgMdzu|Z^Bo!o^eyp9EmP5iAtvP$deddaD5j$XECoOjb1UrE4*G# z4O%5exS_EfXco0jWnx;kKSuGQ(^-T1f0h)VL;W58VrA1sVaMNL-j*?$W_grv-~zWJ zfgPX)9q2gPDcL7+U6P$03;{FA00w7Xu#=cylnOEs$?%qYN6|+Cm0$z@Z4VQ=# zy`Pta2M%DWOmp@M(Q}aU`r6!%qij)>eOHF;yFZ$Sy~e4bcu)?MWVgG~1M{W)iJ>&O zQ%0Oi&I6(2&hr~nMWsXe0DB1!E@yA3Equ)+Y>UH82|mSQv&^2R^wL8h&Yj&en_@ta z+r@?fGE1{oSlpvz*d=F=5ZwyHur*RXLR%5&6d0#UqTUSN%YT*~li(Lyc8?Uvvm7PvNU{vO@wAc|#UMruUW(tjyBWAnk z?A&_Xscsw>O}kmy2M1YYw9t#z?W7%o4VOK9718|*a^pgiQx%>aKvs%8YPX84e#{mb z1s-3gq+AliUA%~y0EKDWmzi^0>S5oZ0SmfO3@0o?<9omtJZiTH&lO;=>uyQ}@0ES% zUs^r0#OR6yW*GYrLeJ%+AP@QN0+==Fy`UT8 zjveQiTbX+0Li|;fCY|5HUu4D0$Yr$O);5RfXshg-wrUpkk+gkAtx9SMFje|9ZA(&D zBVU3Aca|sOvdF%EY|HQI9@&6KXdYB;^cb zJxZ*Ld!+2CTo063B}Mf_AG8YHq9U5T2<}Yv8Ma%U{l}R$PKvIZE|T-TJUa8lxlVT` zU*fv}EpDX}tpCQUg^*V{k0Xy25$RRlRev-@{)4*bENy;L{|4%4+b~CFHW&1&uV@8Z zs3799$q~?g3Ys^ia4l$F<*MGF0ig=B67I|F8IrPLDvnG*U_9;!kbtoE0IrUJP#F^@ zx;fPgC2UL1?1OLn@6`9`%(tHaQ&sS^{I+57l&|}h-q^tO*kyBed&R*Q5$n!FLL<#i z3#P5Q-Np&er@@cmD+!@71)0`d8V%U|{f=2*cy0!^yEqf!M66^+&3}(l6t_jp&yq_! z#i)x%-c8dIcD3!~Oq>#2CJ;sCFiltRJ@`P!;C7|BvoD~?n=_0?Z;b{Tk5^zuk#qkM9$)b5SPNi(_!1Dv+JZ5wCL5qb#BhQa?G9 zNW@=bL9VUmk-4>KMeDh2Y!%zG{}}ExsgHmMJJy4CxQh4}OnU$|B`1BPgx1Z|Z9>z@vPk?tnN8O^>pW>i0yJps({z!6@~i!7?oo0c6gif}@uLqHwGmlvqIM?*c^r z=w7h4L*_l6_)$`QN#|$91G-HAA2hlD7yYE0DjA{wDAP?A!jAtR^pk6Zv)G~@g~7+* zKy03}UFT$HyUq}3a5VSR1{>NX` zl(igAX4CC&`2fTY>>nSNqboFvywPoJd#^ta)Z%v(`#jDbW?ziiCp7M*b?4ba+zY8{ zp|Kp<-K^q|OAZXMeNe+CvPNj4IZssH!xmk{{#fZz4z*Cd{kPCMDLM8d?9Ke|v(c#4rRfocK5MhW*C7 zV)#fxJk;rSbcv4NyZJx69i5`%L&+I)E9cxoaaY4t@^0wIP})b;mqg#RFTpcn99VvF zyPkP^UWynyp6MR<4X97g<8cqpL%p9{#n?#;$nJ4pNsdnkEpJ+gXlb}g{SjQ(aFzNh zxYg}A;&ya9u=hPIIXWceE@h25Y423Xx_7GXF6!gZr@L7%KUH>Wdb|@MxtlEAHSeq2 zkHvpSDCytz$m84pJDYahj#Es(#CN#)L!?|%rVpJL+`{XJQMvGX45i>f;cx?XQ&{Yx zE{i_`?TC-%Y{tSUImjLohrh_g@Sgn&HqwA||5bxCeyhQ0yJ>^1&wJPBF*XPPCFaS| z=CMLrXoRL}bmbl!El|lz@iM2)Djr|-pUX$sO)eng&ycbXQ&T1hYpAHH(j%hfBVXuL0hB@N4D(?yV zaS#%^F@qp|G{x^57tN=yUXo( z)o@IG6Fgo>T82s9YDmVPz~Cdkk53RhtG)mjcZ2A_eidBMM<+aDsQ?Umh2@q0r$Q$qMR+n)SX<{R3mu6Rp}jMp zKT(KVd1!xBwDgaq`7J8K{21H96_&z+(3yr9RNWUfN5RQ;(0jAim(f+bZUZVuZutEa zo7NBNZLpIa3)Hd5>GnmTEwdCBWT}3*VepAHd$;qaW`OaY65P%r@-e9%p68)M`McggpNJWECcQ zw)ygq3X`G2qjaiSx_B-iw*TsOxZgPSC^0Yp=ZI*Nl^Z^tY@-(x?Gce)Q1rx9Gd=g& zwjRq#bmdh!`e3dD7WU#{uNj9u-sRYjl{Zq9CUhf0EqG|aoJYMUJ3k1WbTuY|W;&Fx z2eaDSs47^H^m+*)j%bc~lzr+i$hK&)`K??yz=JCKzsKe|Jo>kK@KB@iH`EJ}n+jlL z#5|dH)?E>4GC~5qElp-y?Y+pr8f72s=~B8`MP4P&US&zy12m#={-DPe*(U&|l5TY- zD#rLhL0nR_KEadl=&f+OmH8_^+~BD=JWW+E{7I9Nl+PjP<-cbBR{sbx?U(TeqgQAu zLCky6Q!Srqey;(<#@s==%PEh|c+%p;+MDDo5z2v748Bq4fC!D2 z;qkXrJ52de7@77D(~{3pKLw`#9qhmZ9Cn&I_3hJCP*^Z+;w?6A>s?AO+lNQynt%>F zZ^S=k&03oYbsM0r{~g4|TWEWt|3EV>YT-mm=y5#Uw-{qU4N&X#Y4U%vB=t7pL{~djK@Mwhd9C0k1X! zA~&3x1iRee)yDQrl7bHPJh(AgO(7wKIHyh|9&RSYrzeU34-y|UDE55ov|sy#x0klIG5PCrQYllH0P-I_dzgrH6=L3aTNaXDwlDr zla#Y!BI9EOA}>2X37w+;8x|2<2TUP(*0addcPzKt@PhEUT0ihSN1pzH+0!nd8+VDlI@`f zN>+~0qdc3ijPFX;iq%!q_1 z6KqK}mP0?*3Hsob*10PGle7#Cu4vl#o3tw9MIZZC-kbz!XOVo_!Y!whFMdkOf_K0} zul|qz;43vES7#3u>_Fb5%vL^$!I+C-$d}sMB+`rmjT}a>;vorbX`m&X2G6P zKnbu9kbczA_BG1MPCTZ~!k0#r=nzSXf9fHQ-(=;dq>Z&S^J8(?)xLktJ(ft!WE`XM zYTx5d1y3G$(JYqixYN;3uNh| zL`p=f#Pud z>?3u>-%=+|p#Gp3TcRcs^O5JobZgk;8=r2GCOinokdJ#%UW0PBod!;{iw~qK!2nM8E7sL0|H(t;) zK;KGq);Fg6S?2(qg{uP6kF^}3%oxv6j6G+x{^USt|CGPQqEx@-M+#WVA5F6NqZ(1Y-~ zp00b~x(BX%;JOE{d*HeUl05Ln_goCC*P*dij)YrunKT`$<21P&bo~8n4ZlUlxqC}l zZisOXu8|z}wpvyXL*j>s>Is7hOOGf>8b;8;+ zFvi6S5;|_wi=z}P-=&x9;(sw<{EmHOg*T6PG1BcioTtNuI$WW{fDSk6aGMTa)Zwc- z+^NG(9e$w0lRCVp!!Z-IdT-X@?K+&N!-YCrp~HXjw<$#vxC-s6~K%X$b8rRB1qMxQ-5o8xlo*5N0&c&NkLbFYb86U4gRd^0HtVm*ZczCQw_p!M|o*Ib;n?lUP$$TU)kSlQ8m7 zT(+UYhgz$l3%49rfu?M2T^*N$hZGz9RYBIh|LGfzHyV0IJm;HSz=r;>gE77t5jSIA zF>pGU(3mphmzi9^hW>AYjbTGKZ0U!k+khp@2Td+k9@G`u88&nqDW8WTJf5gF>Nn<{ zmvlmwE^0gnunehUxqERZ9~km&CKoU~>(B`;I;44v+HS}j^TR^WXihTZjd^a9UZF9s zfrX`!{#y(x%_)YwF^}xhCrWnq29IIC!Dql#D5E*bz>RroK$l;_YSn(%Ogx7DI+9Mj-^Y|hNpFUR;65^bn?WOa!~cERE?{`(rpx!}eq==4M%MolXvy-%{~0m< z|HwOrpbkgY|LO?&`Z+GfSx>K2k!nT=82zV};u#S#>9_{hWqn^@{6CVB{045ow;_vf zoCf7By1a!3CX&IYVMDkSdblZnV1at8T- E1C9WW#Q*>R literal 18408 zcmeHv4|o(+mTz^^fd)dVm4Fd&D4oV3E5tM;Od5=nN~)on?I0td%pem(r(>ca$xFHs z{7{nV1XJ4<;*8JFo!vL%?9ROBw{LdkxekN)FHIncIL<}{g`fg1Xf+Xtq7eDl?{{w1 zO*$E}GvE97&HFwtU+3I&?m6e4d+xdC-dokpX0Lxyip?hQk}BLO5VkDSq!d{Vvt+9R zP$U!xJdM%J_97FY)hq*+Y7QM1Jr&T7PeF=F7zw9ad>nEM2~vNfm7;}a z3x|RrF#^evt;gQ!a{ZQEza__^VA;15-Mn; z!XfceS#~m1LG@$#4E-bcdy_11$mPBdIkNN5El!K^Zr| z+yBWk`{y0|<~()vsZ8RP@F5*+TvV|+Q;2pmKG`=tG2Qb;l!pf>!%GwRuOCigSOkBs zMZXSoiE#}7a|-CS_?1!g&l-h(b`(8}N1;y}MNj1@^ogU;$${6hf5|BH6QkJkBKRe= zjVw2hqURT2yjH)rkHY`@DEwnb;omz7|NEoRKOBX=VHEv88HIoUDD=Wn^vnUjgwM#b z283(*=U(W!Wh683`ce2Z!GE2QB}hdQlj8YjzC|w@K^L%Y>qAuy!SV`Pthqv&Z$)WY zMX(|GKy_m%*s!9sq^7PmxT1V*P0(z+W{ahwY+X1M+yL>$P($5DVK}wAwmLL|R8tpt zXpj_u5uxB9`e0pk?I2?64c9UOm>eKu=L?mUHQ~l8p{%UFp}ICySr({zNC<8~HboISwyqolYuwlvsH?3c*`To4?<+1To0~H?Cx5W+&Ks=G%NeTYLDvK8>S`@r zWi-htRyIvR&5k-j`j>_eWlK&Woc@_O<=dgU4T%9EB2b=|@Ci??9!DIlL`1Pc^Gkqy zpLqJIXOM=+2v4D%XrUX4KTY_13(u^so=7|1^A>LEOBvM1_gNmF%O+DVf?!ztDW^Lv zx}!*9?VQf>L*Fy$v?tL1!OO8E`gl$RG?M6I61_i(p1g?+B+#Lw3kojs%^I$vKz zzd4ESu=I=t4K5ih&LleD52-OLiO%IFwD$XZK^z7#qg7I92zeqTRUR+}MKM_tL z7k4uJ9|)&Viwg|@8R4|_evz82)3zuP3~n;g1kLiSX?V zZy=mPD*hb9A0(VYDZY*2YYC?iiZ?O*hlEq;#OoP;H{ldA@%tIRgm4O#__9Iy%5A_| zk?)o7@o5+2mGX*}%Q4Ang&MWboP{=3Q(Oh^cBA)OsOyD)BO%${2@Ptra4}RGDHyCT zy4j)X`S(%VEx=!=c~-TKHvsGg*{5oUcMv{i-W~e%?#!jaCwF}1WO!k7Rl{k!VQ?J@t)Sbo+gY_(90_xt@)1XUY%SWVN zS6q4SBVPA;@{mKE(L`F+=q8tA$Ou@Z>a(ZGkxrX&BdqX8=iCA-)W9ZJo-bOOrP|`E z=65-b-!KzV^F>!WEcd}lwy58gr=?F-11ns4P-YysOoK-s!^Ud71~PPa=5yVt>m*|p zbV8kzbPTEV3Q79ZNC)PJ=}glgtax(8#|tone(h6Z1EUxI0CeLwh$J=8qoz(?0u%#w zzHuJY5-pZgZSv+^Ec$LO7A)RzXr+VWeNgJ z&pGwi2!j;pi%!vQ5PvthWTqfgYWLdR`};Bm{h4;0a*eI0slY8hEvS**HnsU8^&S3q za-&1lE~&9k(~JjM2ZfVh3r$Jdix4xuGKqIGqVXv(z2wRpE6{&eS`ZABZ@SXzP@|%y zUAY}X(eS?D8r*&ds+)Rzp!UZJy)ulwD_4H$2 zz2vH2`^vAK^Xqf2LsBW#L!AhbBEkJ88F$pLor3Ef#>tDABF{%*LybO4W=HlqjO$3B zr!V{&Vm{v`2u2T>(81vxbnrAfU~@@JE5(=zG3Y2pqe-Nd~n?ldlc&1}vGZuGPICRdj6iAfcS+H2M?Q4aY7>QO{VWFS@C z`W?7d(d#d(fg`@xFd&v*{d&OZi*(w3u}{+cTF8|pzkWZOD#aNs!~&!8W6vsY~S1z53qX8UjMQ^#Fu*{^B?p>)O8t{qWh$0T)J zhniaW1L#qs>z%$pk3wrxq4@RReA+NzrGmxeRLE9E>qgACtK;^f3(6&iBzBux_G*XF zf!W%jYKKVsP-_P!;wvPtCE9EWW{*dAOSJnW2W%&Up?kI(eT+sc`67FqvaOvgn60hA zJpFnAOVfkli>>3aN)Z)rQ5xI|GIFpJ3+xDXedFh*Z=Xb)s>KEqFG8ck*iUWRQR8Qj zf&4=xztoa9g4m$cNa3R(3ZZgD#HXb0E|YcDY_Lv(xVv428wx7adFgD62$$m!psrpc z-zTq;eV>NQ3f7uGZp7t~BZK^);+YA)WhM9@Ul~DMl zI76Y9LJi1DRZnXMR6PT#b~1D$reXo1i1UeS632!*SkpnPbqI&Nj~Mm*Vx}hhD&*DJ z)l^mM$K-xbwRNiRTn%MGq0Lg5P71lfBlR^Ey1^!dZ-=+v|0~p1l0E5|kX~TM8aTmF zF@(;vap1F&coV!Poa=x}jEC6Q#4EvJ;?c!+vAbi)UTpyAwjo@;XJz(#%e8lRl9J{= zx?9PwT!)n=s)w4dQbiG$e&p$W>>+>PEq`D?{A>GqCrfg+i{cES_55Rbvbe(|7c2#G%{u6!UIfCE?ZtV-I*edJ6hsPaV#{{0$=Z2YJJ>}Mf}H&x8;;z3n#QAu zsv*BhLy^r9dBvrlD4tW|)+W$=fe+QdDX%-B+AgtfRofMe%Zq^(E8>o6O2HZ-Tp*hk zDz3|YSk<^VBciszuX^>^SY4fLvkgI=1qOY*DaQq}hUkbVqvzPLk_3nqkf*ch$x zsrnKdhQCR~{M|7rJXY2AdEVU|S3Don&<@Jl0U0~44?~kZr@}AGk;~>JdbMmtR6f?1 z!AJ?*;^Q+Bi`GD?cXMusQi5zwbJC2*&*4aAkxh&HwhyisI*$$>Myqfboo*dQ?{lqk zA89?0Ex@TFCC(DJZowu_hp{4`b_wI}R9w>poXWiJ6Ye8jiVHg^_ISm`Zr`+f=Th9t zkt>L(F}Q!QjIJFvBPsiEbDUyHRJ-NouPK&xnrq{(ZoS0jIZRstKAEEa1w_@r*9a&x zX8Zw`F?_mxp`xAIrfQvP_Ekhq-k73-+;BP_TO#dF3T(0E9dse<#VH;`d_0Z0bdyVx zS;sv8m54hsQ+Ylg)-xm{IygB2l6%dA5Z(4Edp%X2}KXrpvlw zw*i?h>Tf}>85lJCEKbDMD>x*>FBpuXUDVEsTfP97UXqY?zbhrXhkCccb#lybM6O&X zZuwU<`vPC8f&JzTC~Zn!QJa!k!~#WJY^Z@ZF}hUUd!|iEFQUQP`Vf{hH0_Gm@@*^= zGE#hEBYH;q34NE1RfW;B*jU9Ke%CZr54noiVOQUjYHLeRH6Hw&osotHL=vm82b(K{ z#wxb{Ex9hTrz$zeuso)Rua*W*!0Om1c4b^=aU0Z=)w1^c_$ru$=!TI9Vv6qgQmjn4 zL(vW@I4wym-^V|t8<0Bzo_Nk+I|yd$n;>;rt1Mm)jm(`)9BShKgl6Nr{p9N=*eDEJ z-?QS|5J7yOehP7G_-V9hy|X0Rxi^CXyBt_RT3RP)#yV*7M<>6BdTHzakjEdul>4H^ z*nckgkruLwqnXbF&!SLqE{WzHGESYv(Y&2v0|5dKvE_M$s;s|uKl(PWM}dTK09-z8 zx6)QMwoCXy`6IbLbc`dQ;nVMSiaQX$XV8V*Ry+nY>d6@!Z~{#O8Z)v`vl~S?+2Atf zhH;9n&X6hk<(!l4XwkuvNC75+V?(}BaXkBF)FQ8Mh$?4a=!0Fwmc~N`M*f2zX z-}vumD7~hg_zsj}F=Ww^Wr05s!UZT=l*JCJOQLu58xfQ5Rq&xfVzfHY{HcY{S+dSj z?Ml?{lC?Dgu6eSy&hFJpr^}kxfgrL2rW=K%MKA2U1-_2K3VVGZ=07+yKoA%*uad~MSJ${>iy5qG<)6`Tl!H^78d>zlH!x}!by%G4q7OG zy^)JH;{|5(s8MXgd#Er63Uxa0U&WpS+F%psy{OZydrC1yc zpQSHKRkYa{+i8&1=;UAFsew29D^fvcXpGMnfP=gIsrk*+q{V%>JT~2tf@+N`s}%Z? zf!1Sb!eMpbAkSjgzan=o&cY`9wO>mZiPLD-E}HX%>s*)dHYhYLj`%+!(2-A~lV7}< z{FQ$L5;j{Q?sg^nVq|xU@i};L&Kr+*V=u`qEZl;+xb-ANv3O^>+mn{BwO$ZU$7kYx zLlMW)A0mlG5Q5yfG?4c!B1)lqk+GJHW5Gme&1DvrI4J`8DjQDG2)*L!t=!<47v@KV)w;r9N^>?Mv$|-7V7~8gX z4Auwon6s_;E3F?Zq^ z9W4W>oW&t}{XS5?u9U^2-Jr%Q#l9{;)Q{|e%sV#X2es~NuE}9{FK(Ir>a#l!Q`_gw7ss#a{>{!_LQcSxo$sO6 zQ910sqU!e)$@lp6t?X{K5;sx@tit0|X4rCT9S^rlo|oR_^SlGYKD7)JTlOI>ijObA z-$JrZYx>bGyY)sNzS6X9>Sy{#4s zPNyKY&_zPrkv;|oy_zw$*zqhmcG9Vgi!(fxS5iQA0I}_(^QrigPF%LU;*Rq;z2Fq| z2RYK4kl*d}y1Tr#&%N$W+5NukeoOJhyjs6kEa_^#ME(l@7)p;(_oezvu4Q8dVUf7w zSGQV~P4iRb*oiFfxXYk!ns3A3(0ug!sZ)-9;sDt@?n}jee9-dNMF^ATOKg&sH(z3N zu+i)8^}4&=?Oyjm#l3g6qTR05*@rG0g*11eP$A9QD^TVnDC|$ zAbV2rP2L-sxBoBY)&DT>^_Y1N`@SDxZ%p|FdunSt9=nMx#aOX#&{{OwPg>NyV#_>G z>D>r5SkLIs8fQ;{!Cbek=df;Z&7qzAjPVRkmUtu5`Y#~jtmeQrpRUDlmY>qL!gWI| zp4C?2y1q?uO=`naO6?sY_+6P=EEad7a-H@L-UgWU$>KiG?vUu-|2hH)792H}z$(9v zTPH5gxUFrP3F=390BJLxgE_v)Wqa6&dNajtkK#%X-A=5T5YIHlA!In9VYp=Fpd|G$ zi-rZWvv6s#n-2~ZI`80hi+SLQcm6wno<;lvz|dxF2aFG3^(+zzsF z6g9R>B<&B{MfaP1S%d2>60_4Or1@(+To*#$kEV#-g%vfyN5Y>(i}B>Fu%WT2Jlu;5 zgxEb3BT5wFPeu4mU3T=1rS+xDcxx4l+8+n+{cu_MOmhsXzNg!Da0(sfd(nw2Z;)s| z`a>EPy#zX&Qlkt5XJKPLYn9wn&fM@cJY zVCe`YDaLPxl%#MaK5eg&XDPS?&=1KF=11F&iy?&>9z&cm-x!rn!GU+^jgi(7>$68L z;rT}kt%u0&TzA5K{^eANSo>MDI9=?-Asad{s)l3 z1RMe|o@ImBL=TFrXW$qPdxiK1v?%&tU!liFnXlv$l>$VwyL_?Z_CB$48y@C4eV)T& z%l|+l?h$`K8E>iVQ`uD{s!T=5AR3gZ2p4THATv(Zx&8#fjZw+!!&ab|R^T7sH{i;r=n0ozr~??K z$0;7J<;n4*2n;*FEr;f+OqdivbM&SUvn1;4 z9#HTkLQ8uaxY0&B4_Q}B?NDsk&C>I3Xwt%)N+Ga$p>~Ka4NdSf?p+H&g7v?kbc+v8 zj@i9*?Rv!W!z5^4iaL&}Sl6%6A++!HZIMJOz4;D5gjX*}wX~$RLfTkCQdS0kiL{;H z1%F^sbQw2N6Y@~(D1-EBdJ(E}^JOsD!)x(Mk6y^oHz19Prkc<^@-&3w(@7{gaVD(6 zxI4kKYc9mh3B4WM%ywfk$w80t0r-*oPJYB&E}05WT+bBHv$mv!a|Vs3f&+~0QAgiv zL%EU0&GLtqpks(%pLwUqUX9ElxZJ0m_h|?H*(X^}i(N@I#-dlX^>j#bAK~Y9yukEp z=M`v3WPU(TzE#hMVZ77a<4B67r1SB)4mgdzJ3^6wf!gpLv6xAvNNgZsUc9wYT9TJiJzr?=De&_jq&G;_Gh9>6>p5 zlLB??>KlTMjn#FvIfB2gyn={wL!hd9eK1E*f}vm_6s(YDR)7-vX(mE?iSl`<)QXt~G6!Li82J@tkjEWBCKHo9mKR`)cuZKk4qf zO4mrMmz9UAq{_Mm310)`R7>*S@&+3I0?Ajq9^dV&kgBOEka20%NS)Mys+*AfJR2bo#Ki_!Z8xQ=Ycp%sPzxVGiWgOqw@&D2T zh?x-uPh8lx%6G*e_6hnce`;arrFwM3lou%k)%-qeMEHP3YmsUUd;pDOr{ zzO>2q;gBbQ>}OT{4h^iY;L?EKFt3N<|39Hy$#~9|>P{V>QGotN^s#sX z#8rIg8^n8X8}0aW^xdDDLF!8WNS!)?=Hw;lQa{Bl33XvnhBJ~ z*Vy3H#UtIf2E;$|>0Q_2{2_>?BgN5e0Y1;7|EK#BiSJwf(rIp=NR>0BEq3@glBQ-X zOTC&hK4X@WAt5gKlu|q%fb34Zn)^G{g_KYRjh{ZBfnJ2QHjn5iG%u7iYC!uhgX0}F zhL&dBpE@5sUSpco3DmD2y4vyncM|DE%r3=z(0o;Z-VOSbM3-s4Qs57VO0h8;pBA(i zVC{cQ?cNOM6K4Eltcd@$h=0f+UKu~l`Agt;yo>ch3u`Fuz1N6)C8NofI(N)9jYg!K zYu9cUgy+$J5coCqskDw%n)A|(qK0cZfce)CJw4DvuKcF_|KS1tJ0t$PA}eJGBjHQd zaMCTl|>T05na9aOV_&(8ZRrp@g zZng6ZY|Jv)GRxf0AwQXE8Tx~z!%F|15`#Qe>#Yi{V=8zG&I;awu(E2L2|1npLIWgj zcfZ+;-+h~fohMMmj}KVke0UJf#s_m5>8gbfSc(%C&h5hYMHv5!Ry)2P%5XjoOa1>b zF!;Oe5gN~1jvZqKz!VGKYQgyyTx7v}ELds5^%mS>!DlS^UoE)9f}Iw8&w`&=@Vo`b zSOGW1g11_5z6BRq@E!|RT5!Duw^(q*@ctyqe_yw_q-23KYvtN-Z73{#7r#)g?qaX8Cj=J|~01FqvvRLBQhp653X`TxH_`H#lV<$0c2 z1RCW8F37@|sPKHvAF=O{ zVvqOF_hJ73s_=!us@W{deZzsQ7V Ll8LBuIZpncT`y-m diff --git a/Compress/Compress.exe b/Compress/Compress.exe index f7bc1b107b586452cdc7bbcc9d71682f7e8503be..cf12f6be4056ef9683a2b17fb8f054ebf3f98341 100755 GIT binary patch delta 290 zcmZoz!rZWgc|r%X7Vq?l-M&l~b2r}N6lP4?{6v_SoiTg!Cn-iIM#afrWQrISCa23f zG2WfLN_IPkMjHczM=!6+=1e&aMvfmXVBVL>Gv)s>ewaL6!Ig3ClPp`>+51fkt0f zW?<;N<=J`k#j&42fo>NSgZ~#idOZwY=m8b9-mY`)bq1=ljhH;WU5@wW-v9qSE$^2; z=a+Y2*nFT}m5Fi5=4YL8EX;a(dXruH6enl&$%`m*F%%^+lqWGb2043phPmn`W#&zu k-Dk_{T2z!@H2Hp?1kkJB`!qMp_gk_t>2Yn2n!3ye0Cb^pTL1t6 delta 311 zcmV-70m%M@#uw+JVO002mh4I{H@9w-3__k;idNR18ilbIj=0q>KSAVmSJlieV60U)zd zAtGY|fs=KFEdk?`ql88XoF4!HNR17flktQX0RyuMg--%#i(DjdjdTAFNr}bi#QFdKNQ*=yF#pgFq)T-J#4iNDs3MN>&@su`d@WwNS!Md+#q6;X>U7SQg1 zXnMAr;4qSU z?VWBUbPYl1yam4+oM`N2v*u@eb9zODzBr+f%v8uao48&`4FICX9EIx06o_>8UV@97 zhKxYjL~3>H_Y{PN9n30L;C@ywy3!^+O5i2+OYEfsriNza7dZ%;s|d!fCqO8MngeiBu>9}P{R zfx$-jWWm;@`L0@0JEjBN+a2-KoK+~O-R4zR39TIzY#yy%cOHxjB9YE+#Tah-FxtWG7IVWLY{~3I=4?5Y6+@-~g@a_uxOIeopJ8fhbc%ndco9 zpipW@eKgu7JT5UP-dm94F02sOLIXZ*1{~6{R1TQXDAGN8rhw2kk?+&&V4!Vwp1*;O zeCGx>@iZN~d9r>72l-|IK3eGFC>}YqQ3W9#p?mmp973g?krKaJbXH&DVxi|9%TBkl z{po{ZNa!hzL?Rr47j&}EN83$AEm&lB>p%RNNm4fc%PJ)))&wg%Y-7!m8Y{qd4m%!f zKY;OkxZ1WD6*~)Rn0vAFA>JDP;e3j5FnllLh!M+dlk7@!#Gwr5?ql}GrV|aP?X3;X hbxkczEyrb9W~FjLjJLJ*WGf5GqQMatzAWF7{sYqlDCGbE delta 969 zcmX|9ZAep57(RD88(O=|YP(Z!yR?Z0HTqgqbIs+nb7TIvcS~*T%Bp4s&>D=Gb46v z13A_MB~FCenHw7L{?|Y-T*(`7X+$r-%#CUJo^(D0|8YoKN35J5Gq0|Uq$rzxag`zbjCikKF}p0^l1s$t8jpq z8Eekn4%o47-UF8LB>3SDeXnJnwBNA+ZK30ihJvq)5K1ewOsW(5X;ku*OoX+zha|kJ zQk>FiX8-BYH`qRyO+GHOk6B)EgEU-Q@HOUG#)=g%xXKI68*)s)_H}Y?j`2 zmR1CrYc4{GpQhtYFsE+4CL7WwurA+#_o>%DM@Vd-MRbMfZ>OVuI>r+5ZWDNnl_GR} zF(!=zqU$90jfsC{hS{MMPK;U9?4#H$T=wchxGb-aiTMFs0+V&@Vi8OPPMC6Yj{}9d zS3yCTyGquENxYZT_lJcaIQrra7aCvSCEMH%Qmt`BCHWrlcC|^X?SU4(Fi&>HC=%FZ z2YlYZau_fsdAM`rh!2ya5)1M;1jtc^t^SWKtl~emu~Gy3*#cva53oW2Dyi}?0l)^8 zY-B$Q5eg-;)e${#D)-05({I5gslAmLvEk@*xW6rQFAqYY^j=s+R|i70zH~_H5>JQV z*%^Wo@UBUfoUmct_ns55W$2srwocDRZ&IyfJLL-)B z++tsQ^Ez!5zZ4I@B^!~Zw-(*Os7GJDSrkz@D=3MfF_tW8g8gI3sC9fu5wcj$=;=}y zT0sl;d;}hgWe3qXQypRC(6bKLi9K1Ori}5grb$X=a!JO#tFw^>OtO>nB2Vyq89IRSLEH9F5y&*r28<|>)XwWqxTMNC?)RBfhX-P> zx{gw9fCQ54ba!;&eJ$XWY(GaYs>kf#7Qq&bJ6PO|JTeBdW8-)4^WEtIJfM?~HG^ q)X;J6WV@$T@^p9ueyQnDqjc7D;Z!+ukP6*Rs`Er=f!=kkd;cFt@m)Ls delta 819 zcmY*XUr19?7{BN4WYdI2=|lMM2A4>PKv1NAFgNei$O17XXp~~qFovw%3S(~bZnVQ` zrCcE`Ay+>1P|&!;63n(VSNISGg=7zc5Qi}Ep(GT%ePQMT?~S} zC)cT2_9>Bjkq|)k4&p=vqG;ORNbQ9@s}EeuIcnd@ab^o+j+0y1%5mZ!=3oc_sg~I- zPUaE-GPqt1DECr;e6Xbj#x1tn%e))PI910oOE_Miw>sSl4759*+6RIDUi)0A4)YH1 zUkE=W8F3(&{xcHUp$=1*mB0>l8Cvw0sNaZ{i6FTflZpxiU#D=bQ>bfkHa4{>2Rl7p zL7$J+RJ3>aydLkx!%~y?YR6?ym*nyGsD7#CRI_x&(|bWLCzVDcsm>D%1f%ax|M5R3 CM`Q*7 From d3804239fa355cc144c0ad28195c9b49f24ec77f Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 16 Sep 2018 07:56:47 -0400 Subject: [PATCH 516/755] Added some comments and cleaned up some code --- BaseClasses.py | 76 +++++++++++++++++++------------------------------- Main.py | 6 ++++ version.py | 2 +- 3 files changed, 36 insertions(+), 48 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 9561accd7..d4743a949 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -468,6 +468,8 @@ def nighttime(self): return self.can_play('Suns Song') return True + # Be careful using this function. It will not collect any + # items that may be locked behind the item, only the item itself. def collect(self, item): changed = False if item.name.startswith('Bottle'): @@ -480,7 +482,9 @@ def collect(self, item): if changed: self.clear_cached_unreachable() - + + # Be careful using this function. It will not uncollect any + # items that may be locked behind the item, only the item itself. def remove(self, item): if self.prog_items[item.name] > 0: self.prog_items[item.name] -= 1 @@ -535,27 +539,6 @@ def collect_locations(state_list): # Collect the item for the state world it is for state_list[location.item.world.id].collect(location.item) - - # This removes all item locations collected in the state list given that - # the states have collected items. The purpose is that it will search for - # all new items that become no longer accessible with a removed item - @staticmethod - def remove_locations(state_list): - # Get all item locations in the worlds - item_locations = [location for state in state_list for location in state.world.get_filled_locations() if location.item.advancement] - - # will loop if there is more items removed in the previous iteration. Always run once - unreachable_items_locations = True - while unreachable_items_locations: - # get unreachable new items locations - unreachable_items_locations = [location for location in item_locations if location.name in state_list[location.world.id].collected_locations and not state_list[location.world.id].can_reach(location)] - for location in unreachable_items_locations: - # Mark the location uncollected in the state world it exists in - del state_list[location.world.id].collected_locations[location.name] - # Remove the item for the state world it is for - state_list[location.item.world.id].remove(location.item) - - # This returns True is every state is beatable. It's important to ensure # all states beatable since items required in one world can be in another. @staticmethod @@ -586,37 +569,36 @@ def can_beat_game(state_list, scan_for_items=True): def update_required_items(worlds): state_list = [world.state for world in worlds] - item_locations = [] + # get list of all of the progressive items that can appear in hints + item_locations = [location for world in worlds for location in world.get_filled_locations() + if location.item.advancement + and location.item.type != 'Event' + and location.item.type != 'Shop' + and not location.event + and (worlds[0].shuffle_smallkeys != 'dungeon' or not location.item.smallkey) + and (worlds[0].shuffle_bosskeys != 'dungeon' or not location.item.bosskey)] + + # if the playthrough was generated, filter the list of locations to the + # locations in the playthrough. The required locations is a subset of these + # locations. Can't use the locations directly since they are location to the + # copied spoiler world, so must try to find the matching locations by name if worlds[0].spoiler.playthrough: - item_locations = [location for _,sphere in worlds[0].spoiler.playthrough.items() for location in sphere - if location.item.type != 'Event' - and location.item.type != 'Shop' - and not location.event - and (worlds[0].shuffle_smallkeys != 'dungeon' or location.item.type != 'SmallKey') - and (worlds[0].shuffle_bosskeys != 'dungeon' or location.item.type != 'BossKey')] - else: - item_locations = [location for world in worlds for location in world.get_filled_locations() - if location.item.advancement - and location.item.type != 'Event' - and location.item.type != 'Shop' - and not location.event - and (worlds[0].shuffle_smallkeys != 'dungeon' or location.item.type == 'SmallKey') - and (worlds[0].shuffle_bosskeys != 'dungeon' or location.item.type == 'BossKey')] + spoiler_locations = {location.name:location.world.id for _,sphere in worlds[0].spoiler.playthrough.items() for location in sphere} + item_locations = list(filter(lambda location: location.name in spoiler_locations and location.world.id == spoiler_locations[location.name], item_locations)) + + # Try to remove the items one at a time and see if the game is still beatable required_locations = [] for location in item_locations: - # The item from the spoiler playthrough is a COPY, not the original, and attempting to set it to None directly has no effect. Probably could be coded better. - for item_location in [location for state in state_list for location in state.world.get_locations()]: - if item_location.name == location.name and item_location.item.world.id == location.item.world.id: - old_item = item_location.item - item_location.item = None - if not CollectionState.can_beat_game(state_list): - required_locations.append(location) - item_location.item = old_item - break + old_item = location.item + location.item = None + if not CollectionState.can_beat_game(state_list): + required_locations.append(location) + location.item = old_item + # Filter the required location to only include location in the world for world in worlds: - world.spoiler.required_locations = [location for location in required_locations if location.world.id == world.id] + world.spoiler.required_locations = list(filter(lambda location: location.world.id == world.id, required_locations)) @unique diff --git a/Main.py b/Main.py index ecd3256e1..ad8a6db2a 100644 --- a/Main.py +++ b/Main.py @@ -219,9 +219,15 @@ def create_playthrough(worlds): logging.getLogger('').debug('Checking if %s is required to beat the game.', location.item.name) old_item = location.item + # Uncollect the item location. Removing it from the collected_locations + # will ensure that can_beat_game will try to collect it if it can. + # Because we search in reverse sphere order, all the later spheres will + # have there locations flagged to be researched. location.item = None state_list[old_item.world.id].remove(old_item) del state_list[location.world.id].collected_locations[location.name] + + # remove the item from the world and test if the game is still beatable if CollectionState.can_beat_game(state_list): to_delete.append(location) else: diff --git a/version.py b/version.py index b9fe758f1..db6539cf9 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.17.29 f.LUM' +__version__ = '2.17.30 f.LUM' From 8f37ddb1848537efc42511920983b26c0ebf3f34 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 16 Sep 2018 08:47:09 -0400 Subject: [PATCH 517/755] Updated README --- README.md | 4 ++++ version.py | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 3258a9553..e3e52afb8 100644 --- a/README.md +++ b/README.md @@ -99,6 +99,8 @@ The shuffling rules can be set separately for Maps/Compasses, Small Keys, and Bo - `dungeon`: The dungeon item type will always appear in their own dungeon. - `keysanity`: The dungeon item type are shuffles into the pool and can appear anywhere. +Keysanity also adds a menu to view your current dungeon items. While in the item select screen, hold A and it will show current key counts along with maps and compasses. If the compass has been obtained then it will show the medallion/stone reward for the dungeon. If the map has been obatained it will indicate if the dungeon is a Master Quest dungeon or a vanilla Ocarina of Time dungeon. + ## Tokensanity Gold Skulltula Token are added to the item pool, and Gold Skulltula locations give random items. There are two levels for this option: complete shuffle of all 100 tokens, or shuffling only the tokens inside dungeons (there are 44.) The later option can add variance to small key layout in dungeons when keysanity is turned off. @@ -123,6 +125,8 @@ When this option is off, only the three unique Deku Salescrubs (Heart Piece, Sti The hint system has been changed to include different kinds of hints (such as saying a location has something good, but not saying what item it is, or saying a specific item is somewhere in a dungeon, instead of giving the specific location, and so on.) An option has been added to allow talking to gossip stones from the start. Yes, this makes the Stone of Agony completely useless. +- `clearer_hints`: hints will be more obvious what item and locations they are referring to. + ## Text shuffle You can shuffle most of the text in the game. This is hilarious, but can get really confusing when buying from shops and such, so make sure you really know what people are actually asking for. diff --git a/version.py b/version.py index db6539cf9..80a34a460 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.17.30 f.LUM' +__version__ = '2.18.1 f.LUM' From 75b3bdf41efcbb9668261921bcf71e08d1865ccc Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 16 Sep 2018 11:39:12 -0400 Subject: [PATCH 518/755] Fix issue with playthough when there are 4 unique bottles --- BaseClasses.py | 12 ++---------- version.py | 2 +- 2 files changed, 3 insertions(+), 11 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index d4743a949..2da33caed 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -434,7 +434,7 @@ def has_bottle(self): return any(is_normal_bottle(pritem) for pritem in self.prog_items) def bottle_count(self): - return len([pritem for pritem in self.prog_items if pritem.startswith('Bottle')]) + return sum([pritem for pritem in self.prog_items if pritem.startswith('Bottle') and pritem != 'Bottle with Letter']) def has_hearts(self, count): # Warning: This only considers items that are marked as advancement items @@ -471,16 +471,8 @@ def nighttime(self): # Be careful using this function. It will not collect any # items that may be locked behind the item, only the item itself. def collect(self, item): - changed = False - if item.name.startswith('Bottle'): - if self.bottle_count() < 4: - self.prog_items[item.name] += 1 - changed = True - elif item.advancement: + if item.advancement: self.prog_items[item.name] += 1 - changed = True - - if changed: self.clear_cached_unreachable() # Be careful using this function. It will not uncollect any diff --git a/version.py b/version.py index 80a34a460..7ecf78821 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.18.1 f.LUM' +__version__ = '2.18.2 f.LUM' From 19092e78c186f7674cf2d1a2ee7cc7c8dccad0b9 Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Sun, 16 Sep 2018 15:58:10 -0300 Subject: [PATCH 519/755] Fix order of items in spoiler --- Main.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Main.py b/Main.py index ad8a6db2a..0dcd4834a 100644 --- a/Main.py +++ b/Main.py @@ -237,7 +237,17 @@ def create_playthrough(worlds): # cull entries in spheres for spoiler walkthrough at end for location in to_delete: sphere.remove(location) - collection_spheres = [sphere for sphere in collection_spheres if sphere] + + # This ensures the playthrough shows items being collected in the proper order. + required_locations = [item for sphere in collection_spheres for item in sphere] + state_list = [world.state for world in worlds] + collection_spheres = [] + while required_locations: + sphere = [location for location in required_locations if state_list[location.world.id].can_reach(location)] + for location in sphere: + required_locations.remove(location) + state_list[location.item.world.id].collect(location.item) + collection_spheres.append(sphere) # we can finally output our playthrough for world in old_worlds: From e396bc6b14f35b30181350a2a79fd38f450f6ab5 Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Sun, 16 Sep 2018 16:45:15 -0300 Subject: [PATCH 520/755] Simplify alg a bit If it ain't broke, don't fix it. So I'm probably going to regret this later. --- Main.py | 49 +++++++++++++++++++++---------------------------- 1 file changed, 21 insertions(+), 28 deletions(-) diff --git a/Main.py b/Main.py index 0dcd4834a..33b8db9e1 100644 --- a/Main.py +++ b/Main.py @@ -190,7 +190,7 @@ def create_playthrough(worlds): state_list = [world.state for world in worlds] # Get all item locations in the worlds - collection_spheres = [] + required_locations = [] item_locations = [location for state in state_list for location in state.world.get_filled_locations() if location.item.advancement] # in the first phase, we create the generous spheres. Collecting every item in a sphere will @@ -208,38 +208,31 @@ def create_playthrough(worlds): # Collect the item for the state world it is for state_list[location.item.world.id].collect(location.item) if reachable_items_locations: - collection_spheres.append(reachable_items_locations) + required_locations.extend(reachable_items_locations) # in the second phase, we cull each sphere such that the game is still beatable, reducing each # range of influence to the bare minimum required inside it. Effectively creates a min play - for num, sphere in reversed(list(enumerate(collection_spheres))): - to_delete = [] - for location in sphere: - # we remove the item at location and check if game is still beatable - logging.getLogger('').debug('Checking if %s is required to beat the game.', location.item.name) - old_item = location.item - - # Uncollect the item location. Removing it from the collected_locations - # will ensure that can_beat_game will try to collect it if it can. - # Because we search in reverse sphere order, all the later spheres will - # have there locations flagged to be researched. - location.item = None - state_list[old_item.world.id].remove(old_item) - del state_list[location.world.id].collected_locations[location.name] - - # remove the item from the world and test if the game is still beatable - if CollectionState.can_beat_game(state_list): - to_delete.append(location) - else: - # still required, got to keep it around - location.item = old_item - - # cull entries in spheres for spoiler walkthrough at end - for location in to_delete: - sphere.remove(location) + for location in reversed(required_locations): + # we remove the item at location and check if game is still beatable + logging.getLogger('').debug('Checking if %s is required to beat the game.', location.item.name) + old_item = location.item + + # Uncollect the item location. Removing it from the collected_locations + # will ensure that can_beat_game will try to collect it if it can. + # Because we search in reverse sphere order, all the later spheres will + # have there locations flagged to be researched. + location.item = None + state_list[old_item.world.id].remove(old_item) + del state_list[location.world.id].collected_locations[location.name] + + # remove the item from the world and test if the game is still beatable + if CollectionState.can_beat_game(state_list): + required_locations.remove(location) + else: + # still required, got to keep it around + location.item = old_item # This ensures the playthrough shows items being collected in the proper order. - required_locations = [item for sphere in collection_spheres for item in sphere] state_list = [world.state for world in worlds] collection_spheres = [] while required_locations: From 46232ad4ed7f0838cd0271ae6a5557fea103efca Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Sun, 16 Sep 2018 19:02:46 -0300 Subject: [PATCH 521/755] simplify alg a bit --- Main.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/Main.py b/Main.py index 33b8db9e1..4e402dabf 100644 --- a/Main.py +++ b/Main.py @@ -207,8 +207,7 @@ def create_playthrough(worlds): state_list[location.world.id].collected_locations[location.name] = True # Collect the item for the state world it is for state_list[location.item.world.id].collect(location.item) - if reachable_items_locations: - required_locations.extend(reachable_items_locations) + required_locations.append(location) # in the second phase, we cull each sphere such that the game is still beatable, reducing each # range of influence to the bare minimum required inside it. Effectively creates a min play @@ -220,20 +219,20 @@ def create_playthrough(worlds): # Uncollect the item location. Removing it from the collected_locations # will ensure that can_beat_game will try to collect it if it can. # Because we search in reverse sphere order, all the later spheres will - # have there locations flagged to be researched. + # have there locations flagged to be re-searched. location.item = None state_list[old_item.world.id].remove(old_item) del state_list[location.world.id].collected_locations[location.name] # remove the item from the world and test if the game is still beatable if CollectionState.can_beat_game(state_list): + # cull entries for spoiler walkthrough at end required_locations.remove(location) else: # still required, got to keep it around location.item = old_item # This ensures the playthrough shows items being collected in the proper order. - state_list = [world.state for world in worlds] collection_spheres = [] while required_locations: sphere = [location for location in required_locations if state_list[location.world.id].can_reach(location)] From ee8230e88b2076fa9445cdd88e105a4f56b7ea69 Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Sun, 16 Sep 2018 19:05:12 -0300 Subject: [PATCH 522/755] simplify alg a bit --- Main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Main.py b/Main.py index 4e402dabf..70de018e8 100644 --- a/Main.py +++ b/Main.py @@ -219,7 +219,7 @@ def create_playthrough(worlds): # Uncollect the item location. Removing it from the collected_locations # will ensure that can_beat_game will try to collect it if it can. # Because we search in reverse sphere order, all the later spheres will - # have there locations flagged to be re-searched. + # have their locations flagged to be re-searched. location.item = None state_list[old_item.world.id].remove(old_item) del state_list[location.world.id].collected_locations[location.name] From e26028c427dd5a1c55f6f64dba87398328a864bc Mon Sep 17 00:00:00 2001 From: Nick Langille Date: Sun, 16 Sep 2018 18:26:27 -0400 Subject: [PATCH 523/755] Flip purposes of map/compass, rename Hideout to Gerudo --- ASM/build/asm_symbols.txt | 4 ++-- ASM/build/bundle.o | Bin 10028 -> 10028 bytes ASM/build/c_symbols.txt | 4 ++-- ASM/c/dungeon_info.c | 18 +++++++++--------- Patches.py | 4 ++-- data/rom_patch.txt | 31 +++++++++++++++---------------- data/symbols.json | 4 ++-- 7 files changed, 32 insertions(+), 33 deletions(-) diff --git a/ASM/build/asm_symbols.txt b/ASM/build/asm_symbols.txt index 04910ae77..499ab1795 100644 --- a/ASM/build/asm_symbols.txt +++ b/ASM/build/asm_symbols.txt @@ -1022,9 +1022,9 @@ 804064D0 .byt:0004 804064D0 heap_next 804064D4 .byt:0004 -804064D4 cfg_dungeon_info_reward_need_map +804064D4 cfg_dungeon_info_reward_need_compass 804064D8 .byt:0004 -804064D8 cfg_dungeon_info_mq_need_compass +804064D8 cfg_dungeon_info_mq_need_map 804064DC .byt:0004 804064DC cfg_dungeon_info_mq_enable 804064E8 .byt:0010 diff --git a/ASM/build/bundle.o b/ASM/build/bundle.o index d423b01e3f698248f75f139f0f2999303bf27eb8..053402c31668fa0e2aaa43c54852ecd9e4e3e53d 100644 GIT binary patch delta 1948 zcmYLKO=w(I6h1HGWZumCn;8-(Cet>V#AaG!8bj1V5k?6lf|QnKQ83^Xr=XJ1Xd+c8 z%wQD)RtP-7F1i@8i-K7cCPEio6e*a6e~T_evIrP3LKYFa=%P@+@12wS;PTz?-t+UF zbMM?)KfQkXb|>e&(b>qIasd0@xwP|HXS%SN>h;?*7eD&AaY^ubt(mzQPC7%q|D>9Q zHl|}mkreQ(NO48PnKeEyl4)Um!}$A{4`SpCBHh5t7|(EkXMkT|V5@<0cB&GW*BL z?o)fm1+QUD=)Tj-{9I%OKxa}U-TJ=+&MEBi>obQpF{jp06FP5W-oUs4j*d8-pTQ^^ z|4^jxGx#m@zk){1fm_F&*RF!_I}q>{<~0l^V8Cwyo8Ubb;CsvuTJFa8`@e~=4E&v1 zys#91Q2sJr81OUiURqqbu)G}qRleFBN~4|~ks*Xi?}2PVg}IXKfvdMz~%#zG{AJ(k~Tm;2KouaKmt2WH^3usMH+i zDrAhqiuWhso5p?RnL!Pgna8m~PNpF;N?Z_m7U*IeBKC+>iIDdS;<+b*i0{^rm3&3B zyVpb}$=7iCCTRd!)bF-czq?`lj`Hju+PCbM_AR@E9|00&_eA>PmqkDO5hwdtT#=W^t3Wy+(GeudjcB5rCGud;gZ0oE z9;`Q}f;?1CK^`inAa7a)d9y0Wn^QsFc@^X}(V8UCyahU=0=y*^;5|?Q-hu_*w!n`p zFe^qPAC-+ksE-0Dz^7oYLl8UbLlAG2kNCWCK7{bbHGL>yEB(4THp~$M*h+uJ5>wbqL!pcpOl!P=0@67D00I)nO|3LQCs;x7z#R81 z!M@o+NRj}R(=HUX3-g*F?9l{aS^Yu^gs||M#t$Jh@w-kxoPW4shIh>Ht|kcYn<0d; zg79}s0AXx-xMP01>K8#c?@9>4Oc1@Ne$nS@7pS!6GSE~ zGGX~KO%OpK6XZ_<L|!D;@rOWc;pri^ Z@e~p7K|gUDdb?zN`P0SDFT?Mo{sVrUz?J|2 delta 1948 zcmYLJO=z4|6un=jlll4nW`@*>$&8&$+9t8F9ZReQ5k`q5i&6>(EK+bvN2rk4Xhzh9 z%pfkJb`khQyXazsB3WcnoGdC7>>|`GEV?M-B8z}oLHKEmpxc?5n-LveclMp;+gCnl^+pc3yab}HwB9iK0f8F>OSXVG}@b3p+!+a7ih4ptlxlD)NV4;P2b>1ZI0nuBU971!u!J3~o0!+NV&`+L z&tVpfe~k|R48CgqFMo@c&SAq^?yO?X@kGG)Sl2O`04;Xz0ye=17$Djh`X>6ZR8A~h zT#Viv-c4P)vaon@X(@WG^kwvS>AiL}3H>`FRk$YiM25)sf#eTFO5~4#;QhF{qnQ1u z{|GtiDwB^JuZbLjeLpVj5YK0AA8L+pzhQjY{8nU0MtOi|F-nK)hHD~+qsQf9`vi9( z;{>euUShs!+*6*aXt>k`k>?>N)f5>g&WjX*Y0PJc10oYd$UB92>C-^OPuG!^yrtRG zS4B>eui){Wqyc16f4Zys)9c1>DbM__eamcV-!eNQBS@6l6B&kI2K^jHoXjJUW8hg7 zatu6+0&3*wV~rdFC&>qaw10@l#|z1pG;lU8@)Y?vkPb*xL89zoO_a4nF6?=+E;_@D zbthGji^?g;MdcLaPOBhyRt33pD#$&rg4{M*69>9rfzGJ_cTokn_f>#9Z-KWh@IwpC zijl}eWzRvVhXN?TqhRhs5IgHZ5MPvs_zfIbp3ppVWmo?kON2#D=aDC7Cl8qcSIB<|mbfY@SW+=kvhIllDqLhs(_TZw-G{H?*= diff --git a/ASM/build/c_symbols.txt b/ASM/build/c_symbols.txt index 6839cc325..9ee4df20e 100644 --- a/ASM/build/c_symbols.txt +++ b/ASM/build/c_symbols.txt @@ -23,7 +23,6 @@ SYMBOL TABLE: 00000000 l df *ABS* 00000000 text.c 00000014 l O .sbss 00000004 text_buf 00000010 l O .sbss 00000004 text_end -00000004 g O .sbss 00000004 cfg_dungeon_info_reward_need_map 000011a0 g F .text 0000002c text_init 00001274 g F .text 00000148 text_flush 00000780 g F .text 000000b4 overlay_swap @@ -40,7 +39,7 @@ SYMBOL TABLE: 000003a4 g F .text 000001dc draw_setup 00000000 g O .data 00000010 font_sprite 00000040 g F .text 00000030 sprite_bytes -00000008 g O .sbss 00000004 cfg_dungeon_info_mq_need_compass +00000008 g O .sbss 00000004 cfg_dungeon_info_mq_need_map 00000580 g F .text 00000148 gfx_init 00000000 g F .text 00000018 disp_buf_init 00000010 g O .bss 0000000e cfg_dungeon_is_mq @@ -51,6 +50,7 @@ SYMBOL TABLE: 00000000 g O .sbss 00000004 heap_next 00000040 g O .data 0000000e cfg_dungeon_rewards 000006c8 g F .text 00000014 heap_init +00000004 g O .sbss 00000004 cfg_dungeon_info_reward_need_compass 0000000c g O .sbss 00000004 cfg_dungeon_info_mq_enable 00000000 *UND* 00000000 C_HEAP 00000018 g F .text 00000028 sprite_bytes_per_tile diff --git a/ASM/c/dungeon_info.c b/ASM/c/dungeon_info.c index 4dc907f91..f69fad99b 100644 --- a/ASM/c/dungeon_info.c +++ b/ASM/c/dungeon_info.c @@ -29,8 +29,8 @@ dungeon_entry_t dungeons[] = { { 8, 1, 0, 0, 1, "BotW" }, { 9, 0, 0, 0, 1, "Ice" }, + { 12, 1, 0, 1, 0, "Gerudo" }, { 11, 1, 0, 0, 0, "GTG" }, - { 12, 1, 0, 1, 0, "Hideout" }, { 13, 1, 1, 0, 0, "Ganon" }, }; @@ -53,8 +53,8 @@ medal_color_t medal_colors[] = { uint32_t cfg_dungeon_info_enable = 1; uint32_t cfg_dungeon_info_mq_enable = 0; -uint32_t cfg_dungeon_info_mq_need_compass = 0; -uint32_t cfg_dungeon_info_reward_need_map = 0; +uint32_t cfg_dungeon_info_mq_need_map = 0; +uint32_t cfg_dungeon_info_reward_need_compass = 0; int8_t cfg_dungeon_rewards[] = { 0, 1, 2, 3, 4, 5, 6, 7, -1, -1, -1, -1, -1, -1 }; uint8_t cfg_dungeon_is_mq[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; @@ -107,8 +107,8 @@ void draw_dungeon_info(z64_disp_buf_t *db) { for (int i = 0; i < dungeon_count; i++) { dungeon_entry_t *d = &(dungeons[i]); - if (cfg_dungeon_info_reward_need_map && - !z64_file.dungeon_items[d->index].map) { + if (cfg_dungeon_info_reward_need_compass && + !z64_file.dungeon_items[d->index].compass) { continue; } int reward = cfg_dungeon_rewards[d->index]; @@ -130,8 +130,8 @@ void draw_dungeon_info(z64_disp_buf_t *db) { for (int i = 0; i < dungeon_count; i++) { dungeon_entry_t *d = &(dungeons[i]); - if (cfg_dungeon_info_reward_need_map && - !z64_file.dungeon_items[d->index].map) { + if (cfg_dungeon_info_reward_need_compass && + !z64_file.dungeon_items[d->index].compass) { continue; } int reward = cfg_dungeon_rewards[d->index]; @@ -243,8 +243,8 @@ void draw_dungeon_info(z64_disp_buf_t *db) { if (cfg_dungeon_info_mq_enable) { for (int i = 0; i < dungeon_count; i++) { dungeon_entry_t *d = &(dungeons[i]); - if (cfg_dungeon_info_mq_need_compass && d->has_map && - !z64_file.dungeon_items[d->index].compass) { + if (cfg_dungeon_info_mq_need_map && d->has_map && + !z64_file.dungeon_items[d->index].map) { continue; } char *str = cfg_dungeon_is_mq[d->index] ? "MQ" : "Normal"; diff --git a/Patches.py b/Patches.py index e4cb3d35d..e2f4f0aad 100644 --- a/Patches.py +++ b/Patches.py @@ -1970,7 +1970,7 @@ def configure_dungeon_info(rom, world): rom.write_int32(rom.sym('cfg_dungeon_info_enable'), 1) rom.write_int32(rom.sym('cfg_dungeon_info_mq_enable'), int(mq_enable)) - rom.write_int32(rom.sym('cfg_dungeon_info_mq_need_compass'), int(mapcompass_keysanity)) - rom.write_int32(rom.sym('cfg_dungeon_info_reward_need_map'), int(mapcompass_keysanity)) + rom.write_int32(rom.sym('cfg_dungeon_info_mq_need_map'), int(mapcompass_keysanity)) + rom.write_int32(rom.sym('cfg_dungeon_info_reward_need_compass'), int(mapcompass_keysanity)) rom.write_bytes(rom.sym('cfg_dungeon_rewards'), dungeon_rewards) rom.write_bytes(rom.sym('cfg_dungeon_is_mq'), dungeon_is_mq) diff --git a/data/rom_patch.txt b/data/rom_patch.txt index a28bbdca2..8a6f28861 100644 --- a/data/rom_patch.txt +++ b/data/rom_patch.txt @@ -7402,7 +7402,7 @@ ec9ce7,7a 34b3a47,a8 34b3a49,2 34b3a4a,10 -34b3a4b,82 +34b3a4b,42 34b3a4c,30 34b3a4d,42 34b3a4f,1 @@ -7653,7 +7653,7 @@ ec9ce7,7a 34b3b83,a8 34b3b85,2 34b3b86,10 -34b3b87,82 +34b3b87,42 34b3b88,30 34b3b89,42 34b3b8b,1 @@ -8781,7 +8781,7 @@ ec9ce7,7a 34b40d7,a8 34b40d9,2 34b40da,10 -34b40db,42 +34b40db,82 34b40dc,30 34b40dd,42 34b40df,1 @@ -9489,20 +9489,19 @@ ec9ce7,7a 34b449a,49 34b449b,63 34b449c,65 -34b44a4,b -34b44a5,80 +34b44a4,c +34b44a5,a0 34b44a6,47 -34b44a7,54 -34b44a8,47 -34b44b0,c -34b44b1,a0 -34b44b2,48 -34b44b3,69 -34b44b4,64 -34b44b5,65 -34b44b6,6f -34b44b7,75 -34b44b8,74 +34b44a7,65 +34b44a8,72 +34b44a9,75 +34b44aa,64 +34b44ab,6f +34b44b0,b +34b44b1,80 +34b44b2,47 +34b44b3,54 +34b44b4,47 34b44bc,d 34b44bd,c0 34b44be,47 diff --git a/data/symbols.json b/data/symbols.json index 7451ed245..5489f69fe 100644 --- a/data/symbols.json +++ b/data/symbols.json @@ -16,8 +16,8 @@ "TIME_TRAVEL_SAVED_EQUIPS": "0348201C", "cfg_dungeon_info_enable": "034B44C8", "cfg_dungeon_info_mq_enable": "034B44DC", - "cfg_dungeon_info_mq_need_compass": "034B44D8", - "cfg_dungeon_info_reward_need_map": "034B44D4", + "cfg_dungeon_info_mq_need_map": "034B44D8", + "cfg_dungeon_info_reward_need_compass": "034B44D4", "cfg_dungeon_is_mq": "034B44F8", "cfg_dungeon_rewards": "034B4408", "dungeon_count": "034B44CC", From a8f2318bdea355c70927d8abf4523eae87d80df1 Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Sun, 16 Sep 2018 21:25:25 -0300 Subject: [PATCH 524/755] Stick/Nut Drops --- BaseClasses.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 2da33caed..f4856c64c 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -354,10 +354,10 @@ def can_stun_deku(self): self.has('Buy Deku Shield') def has_nuts(self): - return self.has('Buy Deku Nut (5)') or self.has('Buy Deku Nut (10)') + return self.has('Buy Deku Nut (5)') or self.has('Buy Deku Nut (10)') or self.has('Deku Nut Drop') def has_sticks(self): - return self.has('Buy Deku Stick (1)') + return self.has('Buy Deku Stick (1)') or self.has('Deku Stick Drop') def has_bow(self): return self.has('Bow') @@ -422,7 +422,7 @@ def has_ZoraTunic(self): return (self.has('Zora Tunic') or self.has('Buy Zora Tunic')) def can_leave_forest(self): - return (self.world.open_forest or (self.has_slingshot() and self.has('Kokiri Sword') and self.has('Buy Deku Shield'))) + return self.world.open_forest or self.can_reach(self.world.get_location('Queen Gohma')) def can_finish_adult_trades(self): zora_thawed = self.has_bottle() and (self.can_play('Zeldas Lullaby') or (self.has('Hover Boots') and self.world.logic_zora_with_hovers)) and (self.can_reach('Ice Cavern') or self.can_reach('Ganons Castle Water Trial') or self.has('Progressive Wallet', 2)) From 58fe3583f2f0bd9ee5e2d01660eb18d050853a31 Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Sun, 16 Sep 2018 21:27:01 -0300 Subject: [PATCH 525/755] Stick/Nut Drops --- Items.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Items.py b/Items.py index 87606b658..168426a89 100644 --- a/Items.py +++ b/Items.py @@ -174,6 +174,8 @@ def __init__(self, model, gid, price): 'Requiem of Spirit': (True, False, 'Song', [0x05, 0x8], 0xC7, 0x00B6, 0x08), 'Gold Skulltulla Token': (True, False, 'Token', None, 0x5B, 0x015C, 0x63), 'Epona': (True, False, 'Event', None, None, None, None), + 'Deku Stick Drop': (True, False, 'Event', None, None, None, None), + 'Deku Nut Drop': (True, False, 'Event', None, None, None, None), 'Carpenter Rescue': (True, False, 'Event', None, None, None, None), 'Gerudo Membership Card': (True, False, None, 0x0740, 0x3A, 0x00D7, 0x24), 'Kokiri Emerald': (True, False, 'Event', 0x6C, None, None, None), From a4074a133417074dfb273944fa35b7d121893e20 Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Sun, 16 Sep 2018 21:27:37 -0300 Subject: [PATCH 526/755] Stick/Nut Drops --- Rules.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Rules.py b/Rules.py index 72020f139..577555b4c 100644 --- a/Rules.py +++ b/Rules.py @@ -80,6 +80,8 @@ def global_rules(world): dung_rules_gc0(world) # overworld requirements + set_rule(world.get_location('Deku Baba Sticks'), lambda state: (state.has('Kokiri Sword') and state.has('Buy Deku Shield')) or (world.open_forest and (state.is_adult() or state.has('Kokiri Sword') or state.has('Boomerang')))) + set_rule(world.get_location('Deku Baba Nuts'), lambda state: (state.has('Kokiri Sword') and state.has('Buy Deku Shield')) or (world.open_forest and (state.is_adult() or state.has_slingshot() or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword') or (state.has('Dins Fire') and state.has('Magic Meter'))))) set_rule(world.get_entrance('Deku Tree'), lambda state: (state.has('Kokiri Sword') and state.has('Buy Deku Shield')) or world.open_forest) set_rule(world.get_entrance('Lost Woods Bridge'), lambda state: state.can_leave_forest()) set_rule(world.get_location('Skull Kid'), lambda state: state.can_play('Sarias Song')) @@ -111,6 +113,7 @@ def global_rules(world): set_rule(world.get_location('Goron City Pot Freestanding PoH'), lambda state: (state.has_bombs() or state.has('Progressive Strength Upgrade')) and ((state.can_play('Zeldas Lullaby') and state.has_sticks()) or (state.has('Dins Fire') and state.has('Magic Meter')))) set_rule(world.get_entrance('Darunias Chamber'), lambda state: state.can_play('Zeldas Lullaby')) set_rule(world.get_location('Darunias Joy'), lambda state: state.can_play('Sarias Song')) + set_rule(world.get_location('Goron City Stick Pot'), lambda state: world.open_kakariko or state.has('Zeldas Letter') or state.has_explosives() or (state.has('Dins Fire') and state.has('Magic Meter'))) set_rule(world.get_entrance('Goron City from Woods'), lambda state: (state.can_blast_or_smash() or (state.has('Dins Fire') and state.has('Magic Meter')) or ((state.has_bow() or state.has('Progressive Strength Upgrade')) and state.is_adult())) and state.can_leave_forest()) set_rule(world.get_location('Song from Saria'), lambda state: state.has('Zeldas Letter')) set_rule(world.get_entrance('Mountain Summit Fairy'), lambda state: state.can_blast_or_smash()) From 2225c9cdbf353326be29a584b15d64a993e7cbaa Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Sun, 16 Sep 2018 21:29:15 -0300 Subject: [PATCH 527/755] Stick/Nut Drops --- Regions.py | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/Regions.py b/Regions.py index 877076a31..d3ca50008 100644 --- a/Regions.py +++ b/Regions.py @@ -9,7 +9,8 @@ def create_regions(world): world.regions = [ create_ow_region( 'Kokiri Forest', - ['Kokiri Sword Chest', 'GS Kokiri Know It All House', 'GS Kokiri Bean Patch', 'GS Kokiri House of Twins'], + ['Kokiri Sword Chest', 'GS Kokiri Know It All House', 'GS Kokiri Bean Patch', 'GS Kokiri House of Twins', + 'Deku Baba Sticks', 'Deku Baba Nuts'], ['Links House', 'Mido House', 'Saria House', 'House of Twins', 'Know It All House', 'Kokiri Shop', 'Deku Tree', 'Lost Woods', 'Lost Woods Bridge', 'Kokiri Forest Storms Grotto']), create_interior_region( @@ -150,7 +151,8 @@ def create_regions(world): ['Spirit Temple Exit', 'Spirit Temple Crawl Passage', 'Spirit Temple Silver Block']), create_dungeon_region( 'Child Spirit Temple', - ['Spirit Temple Child Left Chest', 'Spirit Temple Child Right Chest', 'GS Spirit Temple Metal Fence'], + ['Spirit Temple Child Left Chest', 'Spirit Temple Child Right Chest', 'GS Spirit Temple Metal Fence', + 'Spirit Temple Nut Crate'], ['Child Spirit Temple Climb']), create_dungeon_region( 'Child Spirit Temple Climb', @@ -273,7 +275,7 @@ def create_regions(world): 'Bottom of the Well Freestanding Key', 'Bottom of the Well Defeat Boss', 'Bottom of the Well Invisible Chest', 'Bottom of the Well Underwater Front Chest', 'Bottom of the Well Underwater Left Chest', 'Bottom of the Well Basement Chest', 'Bottom of the Well Locked Pits', 'Bottom of the Well Behind Right Grate', - 'GS Well West Inner Room', 'GS Well East Inner Room', 'GS Well Like Like Cage'], + 'GS Well West Inner Room', 'GS Well East Inner Room', 'GS Well Like Like Cage', 'Bottom of the Well Stick Pot'], ['Bottom of the Well Exit']), create_ow_region( 'Graveyard', @@ -326,7 +328,7 @@ def create_regions(world): 'Goron City', ['Goron City Leftmost Maze Chest', 'Goron City Left Maze Chest', 'Goron City Right Maze Chest', 'Goron City Pot Freestanding PoH', 'Rolling Goron as Child', 'Link the Goron', 'GS Goron City Boulder Maze', - 'GS Goron City Center Platform'], + 'GS Goron City Center Platform', 'Goron City Stick Pot'], ['Goron City Exit', 'Goron City Bomb Wall', 'Darunias Chamber', 'Crater Access', 'Goron Shop', 'Goron City Grotto']), create_ow_region( @@ -373,7 +375,8 @@ def create_regions(world): 'Zora River Dive Warp', 'Zora River Storms Grotto']), create_ow_region( 'Zoras Domain', - ['Diving Minigame', 'Zoras Domain Torch Run', 'King Zora Moves'], + ['Diving Minigame', 'Zoras Domain Torch Run', 'King Zora Moves', 'Zoras Domain Stick Pot', + 'Zoras Domain Nut Pot'], ['Zoras Domain Exit', 'Zoras Domain Dive Warp', 'Behind King Zora', 'Zora Shop Child Access']), create_ow_region( 'Zoras Fountain', @@ -926,6 +929,13 @@ def _create_region(name, type, locations=None, exits=None): 'Ocarina of Time': (None, None, 0x0C, 'NPC', 0x51, 'Hyrule Field'), 'Master Sword Pedestal': (None, None, None, 'Event', None, 'the Temple of Time'), 'Epona': (None, None, None, 'Event', None, 'Lon Lon Ranch'), + 'Deku Baba Sticks': (None, None, None, 'Event', None, 'Kokiri Forest'), + 'Deku Baba Nuts': (None, None, None, 'Event', None, 'Kokiri Forest'), + 'Goron City Stick Pot': (None, None, None, 'Event', None, 'Goron City'), + 'Bottom of the Well Stick Pot': (None, None, None, 'Event', None, 'Bottom of the Well'), + 'Zoras Domain Stick Pot': (None, None, None, 'Event', None, 'Zora\'s Domain'), + 'Zoras Domain Nut Pot': (None, None, None, 'Event', None, 'Zora\'s Domain'), + 'Spirit Temple Nut Crate': (None, None, None, 'Event', None, 'Spirit Temple'), 'Gerudo Fortress Carpenter Rescue': (None, None, None, 'Event', None, 'Gerudo Fortress'), 'Ganons Castle Forest Trial Clear': (None, None, None, 'Event', None, 'Ganon\'s Castle'), 'Ganons Castle Fire Trial Clear': (None, None, None, 'Event', None, 'Ganon\'s Castle'), From d94f73e0ebcaa3fc4c3b05a231a8638f6eed8d38 Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Sun, 16 Sep 2018 21:29:54 -0300 Subject: [PATCH 528/755] Stick/Nut Drops --- ItemList.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/ItemList.py b/ItemList.py index 9be5cd11f..7066939dd 100644 --- a/ItemList.py +++ b/ItemList.py @@ -370,6 +370,13 @@ 'King Zora Moves': 'Bottle', 'Master Sword Pedestal': 'Master Sword', 'Epona': 'Epona', + 'Deku Baba Sticks': 'Deku Stick Drop', + 'Goron City Stick Pot': 'Deku Stick Drop', + 'Bottom of the Well Stick Pot': 'Deku Stick Drop', + 'Zoras Domain Stick Pot': 'Deku Stick Drop', + 'Deku Baba Nuts': 'Deku Nut Drop', + 'Zoras Domain Nut Pot': 'Deku Nut Drop', + 'Spirit Temple Nut Crate': 'Deku Nut Drop', 'Gerudo Fortress Carpenter Rescue': 'Carpenter Rescue', 'Ganons Castle Forest Trial Clear': 'Forest Trial Clear', 'Ganons Castle Fire Trial Clear': 'Fire Trial Clear', From 53aae6f5f0c810903ab3152931d4ba121960e38c Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 17 Sep 2018 01:33:12 -0400 Subject: [PATCH 529/755] Fix required locations when the same location in both worlds is needed --- BaseClasses.py | 8 +++++--- version.py | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index f4856c64c..24598d276 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -1,7 +1,7 @@ import copy from enum import Enum, unique import logging -from collections import OrderedDict, Counter +from collections import OrderedDict, Counter, defaultdict from version import __version__ as OoTRVersion import random @@ -575,8 +575,10 @@ def update_required_items(worlds): # locations. Can't use the locations directly since they are location to the # copied spoiler world, so must try to find the matching locations by name if worlds[0].spoiler.playthrough: - spoiler_locations = {location.name:location.world.id for _,sphere in worlds[0].spoiler.playthrough.items() for location in sphere} - item_locations = list(filter(lambda location: location.name in spoiler_locations and location.world.id == spoiler_locations[location.name], item_locations)) + spoiler_locations = defaultdict(lambda: []) + for location in [location for _,sphere in worlds[0].spoiler.playthrough.items() for location in sphere]: + spoiler_locations[location.name].append(location.world.id) + item_locations = list(filter(lambda location: location.world.id in spoiler_locations[location.name], item_locations)) # Try to remove the items one at a time and see if the game is still beatable diff --git a/version.py b/version.py index 7ecf78821..afc69de2e 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.18.2 f.LUM' +__version__ = '2.18.3 f.LUM' From f34ed65a005c79ced8838e3f10a283a63c14a7a2 Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 17 Sep 2018 01:34:22 -0400 Subject: [PATCH 530/755] Talking to the Temple of Time Altar is flagged --- ASM/build/asm_symbols.txt | 182 +- ASM/src/cutscenes.asm | 30 + ASM/src/hacks.asm | 9 + data/rom_patch.txt | 23677 ++++++++++++++++++------------------ data/symbols.json | 62 +- version.py | 2 +- 6 files changed, 12058 insertions(+), 11904 deletions(-) diff --git a/ASM/build/asm_symbols.txt b/ASM/build/asm_symbols.txt index 499ab1795..b585a798e 100644 --- a/ASM/build/asm_symbols.txt +++ b/ASM/build/asm_symbols.txt @@ -895,96 +895,98 @@ 80403024 override_saria_song_check 80403040 @@get_item 80403048 set_saria_song_flag -80403068 Shop_Check_Sold_Out -804030B4 @@return -804030BC Shop_Set_Sold_Out -804030F4 @@return -804030FC Shop_Keeper_Init_ID -80403118 @@return -80403128 Deku_Check_Sold_Out -8040314C @@continue -8040317C Deku_Set_Sold_Out -804031A0 @@continue -804031D4 every_frame -80403228 @@loop -80403280 @@no_pending_item -804032A8 item_menu_description_id_periodic -804032BC @@item_menu_description_id_return_00000000 -804032C4 item_menu_description_id_immediate_1 -804032D8 @@item_menu_description_id_return_00000001 -804032E0 item_menu_description_id_immediate_2 -804032F4 @@item_menu_description_id_return_00000002 -804032FC item_menu_description_id_immediate_3 -80403310 @@item_menu_description_id_return_00000003 -80403318 before_time_travel -80403348 after_time_travel -80403384 @@going_back -8040338C @@done -804033BC update_c_button -804033E8 @@return -804033F0 after_going_forward -8040342C @@no_init -8040343C after_going_back -8040346C @@not_swordless -80403474 initialize_adult -8040349C @@no_mirror_shield -804034DC init_adult_button -80403508 @@empty -80403510 @@loop -80403568 @@set_empty -80403574 @@return -8040357C .byt:0001 -8040357C ADULT_INIT_ITEMS -8040357D .byt:0001 -8040357E .byt:0001 -8040357F .byt:0001 -80403580 .byt:0001 -80403581 .byt:0001 -80403582 .byt:0001 -80403583 .byt:0001 -80403584 .byt:0001 -80403588 .byt:0001 -80403588 ADULT_VALID_ITEMS -80403589 .byt:0001 -8040358A .byt:0001 -8040358B .byt:0001 -8040358C .byt:0001 -8040358D .byt:0001 -8040358E .byt:0001 -8040358F .byt:0001 -80403590 .byt:0001 -80403591 .byt:0001 -80403592 .byt:0001 -80403593 .byt:0001 -80403594 .byt:0001 -80403595 .byt:0001 -80403596 .byt:0001 -80403597 .byt:0001 -80403598 .byt:0001 -80403599 .byt:0001 -8040359A .byt:0001 -8040359B .byt:0001 -8040359C .byt:0001 -8040359D .byt:0001 -8040359E .byt:0001 -8040359F .byt:0001 -804035A0 suns_song_fix_event -804035D4 @@child -804035E4 @@return -804035EC suns_song_fix -80403600 @@check_suns_status -8040361C @@disable_suns -80403624 @@return -8040362C warp_song_fix -80403658 @@child -80403668 @@return -80403670 Check_Has_Epona_Song -804036BC @@return -804036C4 write_initial_save -804036D0 @@save_data_loop -80403700 @@overwrite_type -80403708 @@return -80403710 .byt:0940 +80403068 set_dungeon_knowledge +80403094 @@set_flag +804030FC Shop_Check_Sold_Out +80403148 @@return +80403150 Shop_Set_Sold_Out +80403188 @@return +80403190 Shop_Keeper_Init_ID +804031AC @@return +804031BC Deku_Check_Sold_Out +804031E0 @@continue +80403210 Deku_Set_Sold_Out +80403234 @@continue +80403268 every_frame +804032BC @@loop +80403314 @@no_pending_item +8040333C item_menu_description_id_periodic +80403350 @@item_menu_description_id_return_00000000 +80403358 item_menu_description_id_immediate_1 +8040336C @@item_menu_description_id_return_00000001 +80403374 item_menu_description_id_immediate_2 +80403388 @@item_menu_description_id_return_00000002 +80403390 item_menu_description_id_immediate_3 +804033A4 @@item_menu_description_id_return_00000003 +804033AC before_time_travel +804033DC after_time_travel +80403418 @@going_back +80403420 @@done +80403450 update_c_button +8040347C @@return +80403484 after_going_forward +804034C0 @@no_init +804034D0 after_going_back +80403500 @@not_swordless +80403508 initialize_adult +80403530 @@no_mirror_shield +80403570 init_adult_button +8040359C @@empty +804035A4 @@loop +804035FC @@set_empty +80403608 @@return +80403610 .byt:0001 +80403610 ADULT_INIT_ITEMS +80403611 .byt:0001 +80403612 .byt:0001 +80403613 .byt:0001 +80403614 .byt:0001 +80403615 .byt:0001 +80403616 .byt:0001 +80403617 .byt:0001 +80403618 .byt:0001 +8040361C .byt:0001 +8040361C ADULT_VALID_ITEMS +8040361D .byt:0001 +8040361E .byt:0001 +8040361F .byt:0001 +80403620 .byt:0001 +80403621 .byt:0001 +80403622 .byt:0001 +80403623 .byt:0001 +80403624 .byt:0001 +80403625 .byt:0001 +80403626 .byt:0001 +80403627 .byt:0001 +80403628 .byt:0001 +80403629 .byt:0001 +8040362A .byt:0001 +8040362B .byt:0001 +8040362C .byt:0001 +8040362D .byt:0001 +8040362E .byt:0001 +8040362F .byt:0001 +80403630 .byt:0001 +80403631 .byt:0001 +80403632 .byt:0001 +80403633 .byt:0001 +80403634 suns_song_fix_event +80403668 @@child +80403678 @@return +80403680 suns_song_fix +80403694 @@check_suns_status +804036B0 @@disable_suns +804036B8 @@return +804036C0 warp_song_fix +804036EC @@child +804036FC @@return +80403704 Check_Has_Epona_Song +80403750 @@return +80403758 write_initial_save +80403764 @@save_data_loop +80403794 @@overwrite_type +8040379C @@return +804037A4 .byt:08AC 80405000 disp_buf_init,00000018 80405018 sprite_bytes_per_tile,00000028 80405040 sprite_bytes,00000030 diff --git a/ASM/src/cutscenes.asm b/ASM/src/cutscenes.asm index a96226c80..eac127e26 100644 --- a/ASM/src/cutscenes.asm +++ b/ASM/src/cutscenes.asm @@ -157,3 +157,33 @@ set_saria_song_flag: sb t1, 0x0EDF(t0) jr ra nop + +; Injection for talking to the Altar in the Temple of Time +; Should set flag in save that it has been spoken to. +set_dungeon_knowledge: + addiu sp, sp, -0x10 + sw ra, 0x04(sp) + + ; displaced instruction + jal 0xD6218 + nop + + li t4, SAVE_CONTEXT + lh t5, 0x0F2E(t4) ; flags + lw t8, 0x0004(t4) ; age + + beqz t8, @@set_flag + li t6, 0x0001 ; adult bit + li t6, 0x0002 ; child bit + +@@set_flag: + or t5, t5, t6 + sh t5, 0x0F2E(t4) ; set the flag + + debug_print t5 + + lw ra, 0x04(sp) + addiu sp, sp, 0x10 + + jr ra + nop diff --git a/ASM/src/hacks.asm b/ASM/src/hacks.asm index 9088fdd28..eecf09a4a 100755 --- a/ASM/src/hacks.asm +++ b/ASM/src/hacks.asm @@ -475,3 +475,12 @@ ; jal 0x8009FEC0 ; swap buffers for overlay display list .org 0xB17128 ; In memory: 0x800A11C8 jal overlay_swap + +; Talk to Temple of Time Altar injection +; Replaces: +; jal 0xD6218 +.org 0xE2B0B4 + jal set_dungeon_knowledge + + + diff --git a/data/rom_patch.txt b/data/rom_patch.txt index 8a6f28861..810b5c9b3 100644 --- a/data/rom_patch.txt +++ b/data/rom_patch.txt @@ -1,11782 +1,11895 @@ -11,45 -12,ae -13,5b -14,97 -15,db -16,41 -17,31 -d261,48 -d262,0 -d265,48 -d266,50 -d267,0 -d269,48 -d26a,0 -d271,4b -d272,30 -d275,4b -d276,e0 -d277,0 -d279,4b -d27a,30 -8a9c51,0 -8a9c52,0 -8a9c53,0 -8a9c55,0 -8a9c56,0 -8a9c57,0 -8a9c58,0 -8a9c59,0 -8a9c5a,0 -8a9c5c,0 -8a9c5d,0 -8a9c5e,0 -8a9c5f,0 -8a9c64,0 -8a9c65,0 -8a9c66,0 -8a9c67,0 -8a9c68,0 -8a9c69,0 -8a9c6a,0 -8a9c6b,0 -8a9c6c,0 -8a9c6d,0 -8a9c6e,0 -8a9c6f,0 -8a9c90,0 -8a9c91,0 -8a9c92,0 -8a9c93,0 -8a9c94,0 -8a9c95,0 -8a9c96,0 -8a9c97,0 -8a9c98,0 -8a9c99,0 -8a9c9a,0 -8a9c9c,0 -8a9c9d,0 -8a9c9e,0 -8a9c9f,0 -8a9ca0,0 -8a9ca3,0 -8a9ca4,0 -8a9ca5,0 -8a9ca6,0 -8a9ca7,0 -8a9ca8,0 -8a9ca9,0 -8a9caa,0 -8a9cab,0 -8a9cac,0 -8a9cad,0 -8a9cae,0 -8a9caf,0 -8a9cb0,0 -8a9cd0,0 -8a9cd1,0 -8a9cd2,0 -8a9cd3,0 -8a9cd4,0 -8a9cd5,0 -8a9cd6,0 -8a9cd7,0 -8a9cd8,0 -8a9cd9,0 -8a9cda,0 -8a9cdc,0 -8a9cdd,0 -8a9cde,0 -8a9cdf,0 -8a9ce0,0 -8a9ce3,0 -8a9ce4,0 -8a9ce5,0 -8a9ce6,0 -8a9ce7,0 -8a9ce8,0 -8a9ce9,0 -8a9cea,0 -8a9ceb,0 -8a9cec,0 -8a9ced,0 -8a9cee,0 -8a9cef,0 -8a9cf0,0 -8a9d10,0 -8a9d11,0 -8a9d12,0 -8a9d13,0 -8a9d14,0 -8a9d15,0 -8a9d16,0 -8a9d17,0 -8a9d18,0 -8a9d19,0 -8a9d1a,0 -8a9d1c,0 -8a9d1d,0 -8a9d1e,0 -8a9d1f,0 -8a9d20,0 -8a9d21,0 -8a9d22,0 -8a9d23,0 -8a9d24,0 -8a9d25,0 -8a9d26,0 -8a9d27,0 -8a9d28,0 -8a9d29,0 -8a9d2a,0 -8a9d2b,0 -8a9d2c,0 -8a9d2d,0 -8a9d2e,0 -8a9d2f,0 -8a9d30,0 -8a9d50,0 -8a9d51,0 -8a9d52,0 -8a9d53,0 -8a9d54,0 -8a9d55,0 -8a9d56,0 -8a9d57,0 -8a9d58,0 -8a9d59,0 -8a9d5a,0 -8a9d5c,0 -8a9d5d,0 -8a9d5e,0 -8a9d5f,0 -8a9d60,0 -8a9d61,0 -8a9d62,0 -8a9d63,0 -8a9d64,0 -8a9d65,0 -8a9d66,0 -8a9d67,0 -8a9d68,0 -8a9d69,0 -8a9d6a,0 -8a9d6b,0 -8a9d6c,0 -8a9d6d,0 -8a9d6e,0 -8a9d6f,0 -8a9d90,0 -8a9d91,0 -8a9d92,0 -8a9d93,0 -8a9d94,0 -8a9d95,0 -8a9d96,0 -8a9d97,0 -8a9d98,0 -8a9d99,0 -8a9d9a,0 -8a9d9c,0 -8a9d9d,0 -8a9d9e,0 -8a9d9f,0 -8a9da0,0 -8a9da1,0 -8a9da2,0 -8a9da3,0 -8a9da4,0 -8a9da6,0 -8a9da7,0 -8a9da8,0 -8a9da9,0 -8a9daa,0 -8a9dab,0 -8a9dac,0 -8a9dad,0 -8a9dae,0 -8a9dd0,0 -8a9dd1,0 -8a9dd2,0 -8a9dd3,0 -8a9dd4,0 -8a9dd5,0 -8a9dd6,0 -8a9dd7,0 -8a9dd8,0 -8a9dd9,0 -8a9dda,0 -8a9ddc,0 -8a9ddd,0 -8a9dde,0 -8a9ddf,0 -8a9de0,0 -8a9de1,0 -8a9de2,0 -8a9de3,0 -8a9de4,0 -8a9de6,0 -8a9de7,0 -8a9de8,0 -8a9de9,0 -8a9dea,0 -8a9deb,0 -8a9dec,0 -8a9ded,0 -8a9dee,0 -8a9e10,0 -8a9e11,0 -8a9e12,0 -8a9e13,0 -8a9e14,0 -8a9e15,0 -8a9e16,0 -8a9e17,0 -8a9e18,0 -8a9e19,0 -8a9e1a,0 -8a9e1c,0 -8a9e1d,0 -8a9e1e,0 -8a9e1f,0 -8a9e20,0 -8a9e21,0 -8a9e22,0 -8a9e23,0 -8a9e24,0 -8a9e26,0 -8a9e27,0 -8a9e28,0 -8a9e29,0 -8a9e2a,0 -8a9e2b,0 -8a9e2c,0 -8a9e2d,0 -8a9e2e,0 -8a9e50,0 -8a9e51,0 -8a9e52,0 -8a9e53,0 -8a9e54,0 -8a9e55,0 -8a9e56,0 -8a9e57,0 -8a9e58,0 -8a9e59,0 -8a9e5a,0 -8a9e5b,0 -8a9e5c,0 -8a9e5d,0 -8a9e5e,0 -8a9e5f,0 -8a9e60,0 -8a9e61,0 -8a9e62,0 -8a9e63,0 -8a9e64,0 -8a9e65,0 -8a9e66,0 -8a9e67,0 -8a9e68,0 -8a9e69,0 -8a9e6a,0 -8a9e6b,0 -8a9e6c,0 -8a9e6d,0 -8a9e6e,0 -8a9e90,0 -8a9e91,0 -8a9e92,0 -8a9e93,0 -8a9e94,0 -8a9e95,0 -8a9e96,0 -8a9e97,0 -8a9e98,0 -8a9e99,0 -8a9e9a,0 -8a9e9b,0 -8a9e9c,0 -8a9e9d,0 -8a9e9e,0 -8a9e9f,0 -8a9ea0,0 -8a9ea1,0 -8a9ea2,0 -8a9ea3,0 -8a9ea4,0 -8a9ea5,0 -8a9ea6,0 -8a9ea7,0 -8a9ea8,0 -8a9ea9,0 -8a9eaa,0 -8a9eab,0 -8a9eac,0 -8a9ead,0 -8a9eae,0 -8a9ed0,0 -8a9ed1,0 -8a9ed2,0 -8a9ed3,0 -8a9ed4,0 -8a9ed5,0 -8a9ed6,0 -8a9ed7,0 -8a9ed8,0 -8a9ed9,0 -8a9eda,0 -8a9edb,0 -8a9edc,0 -8a9edd,0 -8a9ede,0 -8a9edf,0 -8a9ee0,0 -8a9ee3,0 -8a9ee4,0 -8a9ee5,0 -8a9ee6,0 -8a9ee7,0 -8a9ee8,0 -8a9ee9,0 -8a9eea,0 -8a9eeb,0 -8a9eec,0 -8a9eed,0 -8a9eee,0 -8a9f10,0 -8a9f11,0 -8a9f12,0 -8a9f13,0 -8a9f14,0 -8a9f15,0 -8a9f16,0 -8a9f17,0 -8a9f18,0 -8a9f19,0 -8a9f1a,0 -8a9f1b,0 -8a9f1c,0 -8a9f1d,0 -8a9f1e,0 -8a9f1f,0 -8a9f20,0 -8a9f23,0 -8a9f24,0 -8a9f25,0 -8a9f26,0 -8a9f27,0 -8a9f28,0 -8a9f29,0 -8a9f2a,0 -8a9f2b,0 -8a9f2c,0 -8a9f2d,0 -8a9f2e,0 -8a9f50,0 -8a9f51,0 -8a9f52,0 -8a9f53,0 -8a9f55,0 -8a9f56,0 -8a9f57,0 -8a9f58,0 -8a9f59,0 -8a9f5a,0 -8a9f5b,0 -8a9f5c,0 -8a9f5d,0 -8a9f5e,0 -8a9f5f,0 -8a9f64,0 -8a9f65,0 -8a9f66,0 -8a9f67,0 -8a9f68,0 -8a9f69,0 -8a9f6a,0 -8a9f6b,0 -8a9f6c,0 -8a9f6d,0 -8a9f6e,0 -a98c30,c -a98c31,10 -a98c32,a -a98c33,cc -a9e838,8 -a9e839,10 -a9e83a,d -a9e83b,9c -ac9abc,c -ac9abd,10 -ac9abe,b -ac9abf,df -ac9ac1,0 -ac9ac2,0 -ac9ac3,0 -acce88,c -acce89,10 -acce8a,b -acce8b,d0 -acce8c,0 -acce8d,0 -acce8e,0 -acce8f,0 -acce90,0 -acce91,0 -acce94,0 -acce97,0 -acce98,0 -acce99,0 -acce9b,0 -ae59e0,8 -ae59e1,10 -ae59e2,c -ae59e3,d2 -ae5df0,c -ae5df1,10 -ae5df2,d -ae5df3,7b -ae5df8,c -ae5df9,10 -ae5dfa,b -ae5dfb,da -ae5e04,0 -ae5e05,0 -ae5e07,0 -ae6e48,c -ae6e49,10 -ae6e4a,b -ae6e4b,d5 -ae6e4c,1 -ae6e4d,f -ae6e4e,c0 -ae6e4f,21 -b06400,82 -b06402,e -b06403,de -b0640c,31 -b0640d,f8 -b0640e,0 -b0640f,2 -b06c2c,c -b06c2d,10 -b06c2e,d -b06c2f,b1 -b06c31,28 -b06c33,20 -b17129,10 -b1712a,15 -b1712b,e0 -b17bb4,af -b17bb5,bf -b17bb6,0 -b17bb7,1c -b17bb8,af -b17bb9,a4 -b17bba,1 -b17bbb,40 -b17bbc,3c -b17bbd,4 -b17bbe,80 -b17bbf,40 -b17bc0,3c -b17bc1,5 -b17bc2,3 -b17bc3,48 -b17bc4,c -b17bc5,0 -b17bc6,3 -b17bc7,7c -b17bc8,34 -b17bc9,6 -b17bca,50 -b17bcb,0 -b17bcc,c -b17bcd,10 -b17bce,0 -b17bd0,0 -b17bd1,0 -b17bd2,0 -b17bd3,0 -b54b38,c -b54b39,10 -b54b3a,d -b54b3b,8b -b54e5c,c -b54e5d,10 -b54e5e,d -b54e5f,68 -baed6c,0 -baed6d,0 -baed6f,0 -bb77b4,0 -bb77b5,0 -bb77b7,0 -bb7890,c -bb7891,10 -bb7892,c -bb7893,b1 -bb7894,0 -bb7895,0 -bb7897,0 -bb7950,c -bb7951,10 -bb7952,c -bb7953,b8 -bb7954,0 -bb7955,0 -bb7957,0 -bb7ba0,0 -bb7ba1,0 -bb7ba3,0 -bb7bfc,0 -bb7bfd,0 -bb7bff,0 -bb7c3c,c -bb7c3d,10 -bb7c3e,c -bb7c3f,bf -bb7c40,0 -bb7c41,0 -bb7c43,0 -bb7c58,c -bb7c59,10 -bb7c5a,c -bb7c5b,aa -bb7c5c,0 -bb7c5d,0 -bb7c5f,0 -bcecbc,8 -bcecbd,10 -bcecbe,a -bcecbf,94 -bcecc1,0 -bcecc2,0 -bcecc3,0 -bcecc4,0 -bcecc5,0 -bcecc7,0 -bcecc8,0 -bcecc9,0 -bcecca,0 -bceccb,0 -bceccc,0 -bceccd,0 -bcecce,0 -bceccf,0 -bcecd0,0 -bcecd1,0 -bcecd3,0 -bda0a1,10 -bda0a2,a -bda0a3,1a -bda0d8,c -bda0d9,10 -bda0da,a -bda0db,72 -bda0e4,0 -bda0e5,0 -bda0e7,0 -bda264,c -bda265,10 -bda266,a -bda267,76 -bda270,0 -bda271,0 -bda273,0 -be5990,c -be5991,10 -be5992,c -be5993,75 -be5994,0 -be5995,0 -be5996,0 -be5997,0 -be9ac0,c -be9ac1,10 -be9ac2,a -be9ac3,a0 -be9ad8,c -be9ad9,10 -be9ada,a -be9adb,a9 -be9ae4,0 -be9ae5,0 -be9bde,83 -be9bdf,83 -c004ec,8 -c004ed,10 -c004ee,c -c004ef,1a -c0067f,64 -c018a0,c -c018a1,10 -c018a2,c -c018a3,2f -c6c7a8,c -c6c7a9,10 -c6c7aa,c -c6c7ab,3f -c6c920,c -c6c921,10 -c6c922,c -c6c923,3f -c892dc,34 -c892dd,e -c892de,0 -c892df,1 -c8931c,34 -c8931d,a -c8931e,0 -c8931f,1 -c89745,10 -c89746,b -c89747,a5 -c89868,92 -c89869,e -c8986a,1d -c8986b,28 -c898a4,92 -c898a5,19 -c898a6,1d -c898a7,29 -c898c8,92 -c898c9,a -c898ca,1d -c898cb,2a -cb6860,c -cb6861,10 -cb6862,c -cb6863,c6 -d12f78,34 -d12f79,f -d12f7b,0 -d74964,10 -d74965,0 -d7e140,34 -d7e141,e -d7e142,0 -d7e143,1 -d7e144,80 -d7e146,e -d7e147,de -d7e160,84 -d7e161,88 -d7e163,a4 -d7e164,34 -d7e165,1 -d7e167,63 -d7e168,14 -d7e169,28 -d7e16b,3 -d7e16c,34 -d7e16d,2 -d7e16e,20 -d7e16f,49 -d7e170,10 -d7e171,0 -d7e172,0 -d7e173,6 -d7e174,0 -d7e177,0 -d7e178,94 -d7e179,69 -d7e17a,e -d7e17b,d6 -d7e17c,31 -d7e17d,29 -d7e17e,0 -d7e17f,4 -d7e180,15 -d7e181,20 -d7e183,2 -d7e184,34 -d7e185,2 -d7e186,20 -d7e187,44 -d7e188,34 -d7e189,2 -d7e18a,20 -d7e18b,43 -d7e18c,8f -d7e18d,bf -d7e18f,14 -d7e190,27 -d7e191,bd -d7e192,0 -d7e193,18 -d7e194,3 -d7e195,e0 -d7e197,8 -d7e198,0 -d7e199,0 -d7e19a,0 -d7e19b,0 -d7e398,94 -d7e399,89 -d7e39a,e -d7e39b,d6 -d7e39c,31 -d7e39d,28 -d7e39f,10 -d7e3a0,31 -d7e3a1,29 -d7e3a3,4 -d7e3a4,1 -d7e3a5,9 -d7e3a6,40 -d7e3a7,25 -d7e3a8,34 -d7e3a9,9 -d7e3ab,14 -d7e3ac,34 -d7e3ad,1 -d7e3ae,0 -d7e3af,5f -d7e3b0,14 -d7e3b1,23 -d7e3b3,6 -d7e3b4,0 -d7e3b5,0 -d7e3b7,0 -d7e3b8,11 -d7e3b9,9 -d7e3bb,4 -d7e3bc,0 -d7e3bd,0 -d7e3be,0 -d7e3bf,0 -d7e3c0,34 -d7e3c1,2 -d7e3c2,0 -d7e3c3,1 -d7e3c4,3 -d7e3c5,e0 -d7e3c7,8 -d7e3c8,0 -d7e3c9,0 -d7e3cb,0 -d7e3cc,14 -d7e3cd,c2 -d7e3cf,9 -d7e3d0,34 -d7e3d1,1 -d7e3d3,63 -d7e3d4,14 -d7e3d5,23 -d7e3d7,7 -d7e3d8,8c -d7e3d9,8a -d7e3db,10 -d7e3dc,15 -d7e3dd,40 -d7e3df,5 -d7e3e0,0 -d7e3e1,0 -d7e3e2,0 -d7e3e3,0 -d7e3e4,15 -d7e3e5,9 -d7e3e7,3 -d7e3e8,34 -d7e3e9,2 -d7e3eb,1 -d7e3ec,3 -d7e3ed,e0 -d7e3ef,8 -d7e3f0,0 -d7e3f1,0 -d7e3f2,0 -d7e3f3,0 -d7e3f4,34 -d7e3f5,2 -d7e3f6,0 -d7e3f7,0 -d7e3f8,3 -d7e3f9,e0 -d7e3fa,0 -d7e3fb,8 -d7e3fc,0 -d7e3fd,0 -d7e3ff,0 -d7e76c,8f -d7e76d,b8 -d7e76e,0 -d7e76f,44 -d7e778,87 -d7e779,18 -d7e77b,a4 -d7e77c,80 -d7e77d,49 -d7e77e,e -d7e77f,de -d7e784,34 -d7e786,0 -d7e787,1 -d7e788,2 -d7e789,0 -d7e78a,20 -d7e78b,21 -d7e798,15 -d7e79b,2 -d7e79c,34 -d7e79d,19 -d7e79e,0 -d7e79f,5f -d7e7a0,17 -d7e7a1,38 -d7e7a2,0 -d7e7a3,5 -d7e7a4,ae -d7e7a5,b -d7e7a6,1 -d7e7a7,80 -d7e890,0 -d7e891,0 -d7e893,0 -d7e8a0,10 -d7e8a1,0 -d7e8a3,7 -d7e8a4,31 -d7e8a5,4a -d7e8a7,4 -d7e8b0,0 -d7e8b3,0 -d7e8b4,0 -d7e8b5,0 -d7e8b7,0 -d7e8c0,34 -d7e8c1,b -d7e8c2,0 -d7e8c3,14 -d7e8c8,1 -d7e8c9,4b -d7e8ca,50 -d7e8cb,25 -d7e8cc,15 -d7e8cd,4b -d7e8cf,14 -d7e8d4,34 -d7e8d5,e -d7e8d6,0 -d7e8d7,1 -d7e8d8,80 -d7e8da,e -d7e8db,de -d7e8e0,57 -d7e8e3,f -d7ebbc,c -d7ebbd,10 -d7ebbe,b -d7ebbf,e2 -d7ec1c,0 -d7ec1d,0 -d7ec1f,0 -d7ec20,34 -d7ec23,5 -db13d3,76 -db532c,c -db532d,10 -db532e,b -db532f,f2 -df264f,76 -df7cb0,c -df7cb1,10 -df7cb2,c -df7cb3,5f -e09f68,80 -e09f6a,e -e09f6b,de -e09f74,31 -e09f75,f8 -e09f76,0 -e09f77,4 -e09fb0,c -e09fb1,10 -e09fb2,b -e09fb3,ea -e29388,8 -e29389,10 -e2938a,c -e2938b,9 -e2a044,c -e2a045,10 -e2a046,c -e2a047,12 -e2f093,34 -e9e1d8,34 -e9e1d9,9 -e9e1da,40 -e9e1db,0 -e9e1f0,34 -e9e1f2,5b -e9e1f3,8 -e9e200,34 -e9e202,0 -e9e203,a -e9e20d,a9 -ebb85c,c -ebb85d,10 -ebb85e,c -ebb85f,4a -ebb865,40 -ebb867,12 -ebb86c,10 -ebb86d,0 -ebb86e,0 -ebb86f,14 -ec68bc,8f -ec68bd,ad -ec68be,0 -ec68bf,2c -ec68c0,34 -ec68c1,c -ec68c2,0 -ec68c3,a -ec68c4,a5 -ec68c5,ac -ec68c6,1 -ec68c7,10 -ec68c8,c -ec68c9,10 -ec68ca,a -ec68cb,37 -ec68cc,2 -ec68cd,0 -ec68ce,28 -ec68cf,21 -ec68d0,0 -ec68d1,0 -ec68d2,0 -ec68d3,0 -ec68d4,0 -ec68d5,0 -ec68d7,0 -ec68da,0 -ec68db,0 -ec68dc,0 -ec68dd,0 -ec68de,0 -ec68df,0 -ec68e0,0 -ec68e1,0 -ec68e2,0 -ec68e3,0 -ec69ad,ad -ec69af,2c -ec69b0,34 -ec69b1,c -ec69b2,0 -ec69b3,a -ec69b4,a5 -ec69b5,ac -ec69b6,1 -ec69b7,10 -ec69b8,c -ec69b9,10 -ec69ba,a -ec69bb,37 -ec69bc,2 -ec69bd,0 -ec69be,28 -ec69bf,21 -ec69c0,0 -ec69c1,0 -ec69c3,0 -ec69c4,0 -ec69c5,0 -ec69c6,0 -ec69c7,0 -ec69c8,0 -ec69c9,0 -ec69cb,0 -ec69cc,0 -ec69cd,0 -ec69ce,0 -ec69cf,0 -ec69d2,0 -ec69d3,0 -ec9ce7,7a -3480000,27 -3480001,bd -3480002,ff -3480003,e8 -3480004,af -3480005,bf -3480007,10 -3480008,3c -3480009,4 -348000a,80 -348000b,40 -348000c,24 -348000d,84 -348000e,50 -3480010,3c -3480011,5 -3480012,3 -3480013,4b -3480014,24 -3480015,a5 -3480016,30 -3480018,34 -3480019,6 -348001a,b0 -348001c,c -348001e,3 -348001f,7c -3480024,c -3480025,10 -3480026,15 -3480027,d5 -348002c,3c -348002d,2 -348002e,80 -348002f,12 -3480030,24 -3480031,42 -3480032,d2 -3480033,a0 -3480034,24 -3480035,e -3480036,1 -3480037,40 -3480038,3c -3480039,1 -348003a,80 -348003b,10 -348003c,ac -348003d,2e -348003e,e5 -3480040,8f -3480041,bf -3480043,10 -3480044,27 -3480045,bd -3480047,18 -3480048,3 -3480049,e0 -348004b,8 -3481c01,5a -3481c02,3b -3481c03,5d -3481c04,5c -3481c05,5e -3481c06,51 -3481c07,52 -3481c08,53 -3482050,ff -3482051,ff -3482052,ff -3482053,ff -3482054,ff -3482055,ff -3482056,ff -3482057,ff -3482058,80 -3482059,40 -348205a,26 -348205b,f4 -348205c,80 -348205d,40 -348205e,25 -348205f,58 -3482060,ff -3482061,ff -3482062,ff -3482063,ff -3482064,ff -3482065,ff -3482066,ff -3482067,ff -3482068,80 -3482069,40 -348206a,26 -348206b,f4 -348206c,80 -348206d,40 -348206e,25 -348206f,74 -3482070,ff -3482071,ff -3482072,ff -3482073,ff -3482074,ff -3482075,ff -3482076,ff -3482077,ff -3482078,80 -3482079,40 -348207a,26 -348207b,f4 -348207c,80 -348207d,40 -348207e,25 -348207f,9c -3482080,ff -3482081,ff -3482082,ff -3482083,ff -3482084,ff -3482085,ff -3482086,ff -3482087,ff -3482088,80 -3482089,40 -348208a,26 -348208b,f4 -348208c,80 -348208d,40 -348208e,25 -348208f,c4 -3482090,ff -3482091,ff -3482092,ff -3482093,ff -3482094,ff -3482095,ff -3482096,ff -3482097,ff -3482098,80 -3482099,40 -348209a,26 -348209b,f4 -348209c,80 -348209d,40 -348209e,25 -348209f,ec -34820a0,53 -34820a1,41 -34820a2,23 -34820a3,f8 -34820a5,d1 -34820a6,ff -34820a7,ff -34820a8,80 -34820a9,40 -34820aa,26 -34820ab,3c -34820ac,80 -34820ad,40 -34820ae,26 -34820af,14 -34820b0,ff -34820b1,ff -34820b2,ff -34820b3,ff -34820b4,ff -34820b5,ff -34820b6,ff -34820b7,ff -34820b8,80 -34820b9,40 -34820ba,26 -34820bb,f4 -34820bc,80 -34820bd,40 -34820be,26 -34820bf,50 -34820c0,ff -34820c1,ff -34820c2,ff -34820c3,ff -34820c4,ff -34820c5,ff -34820c6,ff -34820c7,ff -34820c8,80 -34820c9,40 -34820ca,26 -34820cb,f4 -34820cc,80 -34820cd,40 -34820ce,26 -34820cf,6c -34820d0,ff -34820d1,ff -34820d2,ff -34820d3,ff -34820d4,ff -34820d5,ff -34820d6,ff -34820d7,ff -34820d8,80 -34820d9,40 -34820da,26 -34820db,f4 -34820dc,80 -34820dd,40 -34820de,26 -34820df,88 -34820e0,53 -34820e1,41 -34820e2,38 -34820e3,43 -34820e5,eb -34820e6,15 -34820e7,ff -34820e8,80 -34820e9,40 -34820ea,27 -34820eb,c -34820ec,80 -34820ed,40 -34820ee,25 -34820ef,50 -34820f0,53 -34820f1,41 -34820f2,37 -34820f3,44 -34820f5,eb -34820f6,16 -34820f7,ff -34820f8,80 -34820f9,40 -34820fa,27 -34820fb,c -34820fc,80 -34820fd,40 -34820fe,25 -34820ff,50 -3482100,53 -3482101,41 -3482102,39 -3482103,45 -3482105,eb -3482106,17 -3482107,ff -3482108,80 -3482109,40 -348210a,27 -348210b,c -348210c,80 -348210d,40 -348210e,25 -348210f,50 -3482110,53 -3482111,41 -3482112,6b -3482113,46 -3482114,1 -3482115,77 -3482116,18 -3482117,ff -3482118,80 -3482119,40 -348211a,27 -348211b,c -348211c,80 -348211d,40 -348211e,25 -348211f,50 -3482120,53 -3482121,41 -3482122,3f -3482123,47 -3482125,f4 -3482126,19 -3482127,ff -3482128,80 -3482129,40 -348212a,27 -348212b,c -348212c,80 -348212d,40 -348212e,25 -348212f,50 -3482130,53 -3482131,41 -3482132,67 -3482133,5d -3482134,1 -3482135,73 -3482136,1c -3482137,ff -3482138,80 -3482139,40 -348213a,27 -348213b,c -348213c,80 -348213d,40 -348213e,25 -348213f,50 -3482140,53 -3482141,41 -3482142,68 -3482143,7a -3482144,1 -3482145,74 -3482146,1d -3482147,ff -3482148,80 -3482149,40 -348214a,27 -348214b,c -348214c,80 -348214d,40 -348214e,25 -348214f,50 -3482150,53 -3482151,41 -3482152,70 -3482153,f9 -3482154,1 -3482155,76 -3482156,1e -3482157,ff -3482158,80 -3482159,40 -348215a,27 -348215b,c -348215c,80 -348215d,40 -348215e,25 -348215f,50 -3482160,53 -3482161,41 -3482162,6a -3482163,97 -3482164,1 -3482165,76 -3482166,20 -3482167,ff -3482168,80 -3482169,40 -348216a,27 -348216b,c -348216c,80 -348216d,40 -348216e,25 -348216f,50 -3482170,53 -3482171,41 -3482172,a -3482173,6 -3482175,b9 -3482176,1 -3482177,3 -3482178,80 -3482179,40 -348217a,27 -348217b,48 -348217c,80 -348217d,40 -348217e,25 -348217f,50 -3482180,53 -3482181,41 -3482182,a -3482183,1c -3482185,b9 -3482186,1 -3482187,4 -3482188,80 -3482189,40 -348218a,27 -348218b,48 -348218c,80 -348218d,40 -348218e,25 -348218f,50 -3482190,53 -3482191,41 -3482192,a -3482193,1d -3482195,b9 -3482196,1 -3482197,5 -3482198,80 -3482199,40 -348219a,27 -348219b,48 -348219c,80 -348219d,40 -348219e,25 -348219f,50 -34821a0,53 -34821a1,41 -34821a2,a -34821a3,1e -34821a5,b9 -34821a6,1 -34821a7,6 -34821a8,80 -34821a9,40 -34821aa,27 -34821ab,48 -34821ac,80 -34821ad,40 -34821ae,25 -34821af,50 -34821b0,53 -34821b1,41 -34821b2,a -34821b3,2a -34821b5,b9 -34821b6,1 -34821b7,7 -34821b8,80 -34821b9,40 -34821ba,27 -34821bb,48 -34821bc,80 -34821bd,40 -34821be,25 -34821bf,50 -34821c0,53 -34821c1,41 -34821c2,a -34821c3,61 -34821c5,b9 -34821c6,1 -34821c7,a -34821c8,80 -34821c9,40 -34821ca,27 -34821cb,48 -34821cc,80 -34821cd,40 -34821ce,25 -34821cf,50 -34821d0,4d -34821d1,41 -34821d2,f5 -34821d3,62 -34821d5,b8 -34821d6,2 -34821d8,80 -34821d9,40 -34821da,27 -34821db,48 -34821dc,80 -34821dd,40 -34821de,25 -34821df,50 -34821e0,4d -34821e1,41 -34821e2,f5 -34821e3,63 -34821e5,b8 -34821e6,2 -34821e7,1 -34821e8,80 -34821e9,40 -34821ea,27 -34821eb,48 -34821ec,80 -34821ed,40 -34821ee,25 -34821ef,50 -34821f0,4d -34821f1,41 -34821f2,f5 -34821f3,64 -34821f5,b8 -34821f6,2 -34821f7,2 -34821f8,80 -34821f9,40 -34821fa,27 -34821fb,48 -34821fc,80 -34821fd,40 -34821fe,25 -34821ff,50 -3482200,4d -3482201,41 -3482202,f5 -3482203,65 -3482205,b8 -3482206,2 -3482207,3 -3482208,80 -3482209,40 -348220a,27 -348220b,48 -348220c,80 -348220d,40 -348220e,25 -348220f,50 -3482210,4d -3482211,41 -3482212,f5 -3482213,7c -3482215,b8 -3482216,2 -3482217,4 -3482218,80 -3482219,40 -348221a,27 -348221b,48 -348221c,80 -348221d,40 -348221e,25 -348221f,50 -3482220,4d -3482221,41 -3482222,f5 -3482223,7d -3482225,b8 -3482226,2 -3482227,5 -3482228,80 -3482229,40 -348222a,27 -348222b,48 -348222c,80 -348222d,40 -348222e,25 -348222f,50 -3482230,4d -3482231,41 -3482232,f5 -3482233,7e -3482235,b8 -3482236,2 -3482237,6 -3482238,80 -3482239,40 -348223a,27 -348223b,48 -348223c,80 -348223d,40 -348223e,25 -348223f,50 -3482240,4d -3482241,41 -3482242,f5 -3482243,7f -3482245,b8 -3482246,2 -3482247,7 -3482248,80 -3482249,40 -348224a,27 -348224b,48 -348224c,80 -348224d,40 -348224e,25 -348224f,50 -3482250,4d -3482251,41 -3482252,f5 -3482253,a2 -3482255,b8 -3482256,2 -3482257,8 -3482258,80 -3482259,40 -348225a,27 -348225b,48 -348225c,80 -348225d,40 -348225e,25 -348225f,50 -3482260,4d -3482261,41 -3482262,f5 -3482263,87 -3482265,b8 -3482266,2 -3482267,9 -3482268,80 -3482269,40 -348226a,27 -348226b,48 -348226c,80 -348226d,40 -348226e,25 -348226f,50 -3482270,4d -3482271,41 -3482272,e4 -3482273,88 -3482275,c8 -3482276,4 -3482278,80 -3482279,40 -348227a,27 -348227b,48 -348227c,80 -348227d,40 -348227e,25 -348227f,50 -3482280,4d -3482281,41 -3482282,e4 -3482283,89 -3482285,c8 -3482286,4 -3482287,1 -3482288,80 -3482289,40 -348228a,27 -348228b,48 -348228c,80 -348228d,40 -348228e,25 -348228f,50 -3482290,4d -3482291,41 -3482292,e4 -3482293,8a -3482295,c8 -3482296,4 -3482297,2 -3482298,80 -3482299,40 -348229a,27 -348229b,48 -348229c,80 -348229d,40 -348229e,25 -348229f,50 -34822a0,4d -34822a1,41 -34822a2,e4 -34822a3,8b -34822a5,c8 -34822a6,4 -34822a7,3 -34822a8,80 -34822a9,40 -34822aa,27 -34822ab,48 -34822ac,80 -34822ad,40 -34822ae,25 -34822af,50 -34822b0,4d -34822b1,41 -34822b2,e4 -34822b3,8c -34822b5,c8 -34822b6,4 -34822b7,4 -34822b8,80 -34822b9,40 -34822ba,27 -34822bb,48 -34822bc,80 -34822bd,40 -34822be,25 -34822bf,50 -34822c0,4d -34822c1,41 -34822c2,e4 -34822c3,8e -34822c5,c8 -34822c6,4 -34822c7,5 -34822c8,80 -34822c9,40 -34822ca,27 -34822cb,48 -34822cc,80 -34822cd,40 -34822ce,25 -34822cf,50 -34822d0,4d -34822d1,41 -34822d2,e4 -34822d3,8f -34822d5,c8 -34822d6,4 -34822d7,6 -34822d8,80 -34822d9,40 -34822da,27 -34822db,48 -34822dc,80 -34822dd,40 -34822de,25 -34822df,50 -34822e0,4d -34822e1,41 -34822e2,e4 -34822e3,a3 -34822e5,c8 -34822e6,4 -34822e7,7 -34822e8,80 -34822e9,40 -34822ea,27 -34822eb,48 -34822ec,80 -34822ed,40 -34822ee,25 -34822ef,50 -34822f0,4d -34822f1,41 -34822f2,e4 -34822f3,a5 -34822f5,c8 -34822f6,4 -34822f7,8 -34822f8,80 -34822f9,40 -34822fa,27 -34822fb,48 -34822fc,80 -34822fd,40 -34822fe,25 -34822ff,50 -3482300,4d -3482301,41 -3482302,e4 -3482303,92 -3482305,c8 -3482306,4 -3482307,9 -3482308,80 -3482309,40 -348230a,27 -348230b,48 -348230c,80 -348230d,40 -348230e,25 -348230f,50 -3482310,53 -3482311,41 -3482312,2 -3482313,93 -3482315,aa -3482316,3 -3482317,ff -3482318,80 -3482319,40 -348231a,27 -348231b,64 -348231c,80 -348231d,40 -348231e,25 -348231f,50 -3482320,53 -3482321,41 -3482322,2 -3482323,94 -3482325,aa -3482326,4 -3482327,ff -3482328,80 -3482329,40 -348232a,27 -348232b,64 -348232c,80 -348232d,40 -348232e,25 -348232f,50 -3482330,53 -3482331,41 -3482332,2 -3482333,95 -3482335,aa -3482336,5 -3482337,ff -3482338,80 -3482339,40 -348233a,27 -348233b,64 -348233c,80 -348233d,40 -348233e,25 -348233f,50 -3482340,53 -3482341,41 -3482342,2 -3482343,a6 -3482345,aa -3482346,6 -3482347,ff -3482348,80 -3482349,40 -348234a,27 -348234b,64 -348234c,80 -348234d,40 -348234e,25 -348234f,50 -3482350,53 -3482351,41 -3482352,2 -3482353,a9 -3482355,aa -3482356,7 -3482357,ff -3482358,80 -3482359,40 -348235a,27 -348235b,64 -348235c,80 -348235d,40 -348235e,25 -348235f,50 -3482360,53 -3482361,41 -3482362,2 -3482363,9b -3482365,aa -3482366,8 -3482367,ff -3482368,80 -3482369,40 -348236a,27 -348236b,64 -348236c,80 -348236d,40 -348236e,25 -348236f,50 -3482370,53 -3482371,41 -3482372,2 -3482373,9f -3482375,aa -3482376,b -3482377,ff -3482378,80 -3482379,40 -348237a,27 -348237b,64 -348237c,80 -348237d,40 -348237e,25 -348237f,50 -3482380,53 -3482381,41 -3482382,2 -3482383,a0 -3482385,aa -3482386,c -3482387,ff -3482388,80 -3482389,40 -348238a,27 -348238b,64 -348238c,80 -348238d,40 -348238e,25 -348238f,50 -3482390,53 -3482391,41 -3482392,2 -3482393,a1 -3482395,aa -3482396,d -3482397,ff -3482398,80 -3482399,40 -348239a,27 -348239b,64 -348239c,80 -348239d,40 -348239e,25 -348239f,50 -34823a0,53 -34823a1,3d -34823a2,43 -34823a3,c -34823a5,f8 -34823a6,ff -34823a7,ff -34823a8,80 -34823a9,40 -34823aa,26 -34823ab,fc -34823ac,80 -34823ad,40 -34823ae,25 -34823af,50 -34823b0,4d -34823b1,83 -34823b2,f7 -34823b3,55 -34823b5,b7 -34823b6,ff -34823b7,ff -34823b8,80 -34823b9,40 -34823ba,26 -34823bb,f4 -34823bc,80 -34823bd,40 -34823be,25 -34823bf,50 -34823c0,4d -34823c1,92 -34823c2,db -34823c3,e6 -34823c5,d8 -34823c6,ff -34823c7,ff -34823c8,80 -34823c9,40 -34823ca,26 -34823cb,f4 -34823cc,80 -34823cd,40 -34823ce,26 -34823cf,bc -34823d0,4d -34823d1,93 -34823d2,da -34823d3,e6 -34823d5,d8 -34823d6,ff -34823d7,ff -34823d8,80 -34823d9,40 -34823da,26 -34823db,f4 -34823dc,80 -34823dd,40 -34823de,26 -34823df,bc -34823e0,4d -34823e1,94 -34823e2,d9 -34823e3,e6 -34823e5,d8 -34823e6,ff -34823e7,ff -34823e8,80 -34823e9,40 -34823ea,26 -34823eb,f4 -34823ec,80 -34823ed,40 -34823ee,26 -34823ef,bc -34823f0,4d -34823f1,8e -34823f2,e0 -34823f3,32 -34823f5,ce -34823f6,ff -34823f7,ff -34823f8,80 -34823f9,40 -34823fa,26 -34823fb,f4 -34823fc,80 -34823fd,40 -34823fe,26 -34823ff,d8 -3482400,4d -3482401,8f -3482402,e0 -3482403,32 -3482405,ce -3482406,ff -3482407,ff -3482408,80 -3482409,40 -348240a,26 -348240b,f4 -348240c,80 -348240d,40 -348240e,26 -348240f,d8 -3482410,4d -3482411,90 -3482412,e0 -3482413,32 -3482415,ce -3482416,ff -3482417,ff -3482418,80 -3482419,40 -348241a,26 -348241b,f4 -348241c,80 -348241d,40 -348241e,26 -348241f,d8 -3482420,4d -3482421,8c -3482422,ee -3482423,34 -3482425,bb -3482426,ff -3482427,ff -3482428,80 -3482429,40 -348242a,26 -348242b,f4 -348242c,80 -348242d,40 -348242e,25 -348242f,50 -3482430,4d -3482431,8d -3482432,ee -3482433,34 -3482435,bb -3482436,ff -3482437,ff -3482438,80 -3482439,40 -348243a,26 -348243b,f4 -348243c,80 -348243d,40 -348243e,25 -348243f,50 -3482440,4f -3482441,41 -3482442,ed -3482443,e9 -3482445,bd -3482446,ff -3482447,ff -3482448,80 -3482449,40 -348244a,27 -348244b,8c -348244c,80 -348244d,40 -348244e,25 -348244f,50 -3482450,53 -3482451,41 -3482452,1e -3482453,e4 -3482455,cd -3482456,ff -3482457,ff -3482458,80 -3482459,40 -348245a,27 -348245b,ac -348245c,80 -348245d,40 -348245e,26 -348245f,a4 -3482460,53 -3482461,41 -3482462,1f -3482463,e8 -3482465,cd -3482466,ff -3482467,ff -3482468,80 -3482469,40 -348246a,27 -348246b,cc -348246c,80 -348246d,40 -348246e,25 -348246f,50 -3482470,ff -3482471,ff -3482472,ff -3482473,ff -3482474,ff -3482475,ff -3482476,ff -3482477,ff -3482478,80 -3482479,40 -348247a,26 -348247b,f4 -348247c,80 -348247d,40 -348247e,27 -348247f,f4 -3482480,53 -3482481,41 -3482482,46 -3482483,4a -3482484,1 -3482485,e -3482486,ff -3482487,ff -3482488,80 -3482489,40 -348248a,28 -348248b,3c -348248c,80 -348248d,40 -348248e,28 -348248f,20 -3482490,53 -3482491,41 -3482492,3 -3482493,b0 -3482495,b6 -3482496,6 -3482497,ff -3482498,80 -3482499,40 -348249a,28 -348249b,4c -348249c,80 -348249d,40 -348249e,25 -348249f,50 -34824a0,53 -34824a1,41 -34824a2,4 -34824a3,b1 -34824a5,b6 -34824a6,7 -34824a7,ff -34824a8,80 -34824a9,40 -34824aa,28 -34824ab,4c -34824ac,80 -34824ad,40 -34824ae,25 -34824af,50 -34824b0,53 -34824b1,41 -34824b2,5 -34824b3,b2 -34824b5,b6 -34824b6,8 -34824b7,ff -34824b8,80 -34824b9,40 -34824ba,28 -34824bb,4c -34824bc,80 -34824bd,40 -34824be,25 -34824bf,50 -34824c0,53 -34824c1,41 -34824c2,6 -34824c3,b3 -34824c5,b6 -34824c6,9 -34824c7,ff -34824c8,80 -34824c9,40 -34824ca,28 -34824cb,4c -34824cc,80 -34824cd,40 -34824ce,25 -34824cf,50 -34824d0,53 -34824d1,41 -34824d2,7 -34824d3,b6 -34824d5,b6 -34824d6,a -34824d7,ff -34824d8,80 -34824d9,40 -34824da,28 -34824db,4c -34824dc,80 -34824dd,40 -34824de,25 -34824df,50 -34824e0,53 -34824e1,41 -34824e2,8 -34824e3,b7 -34824e5,b6 -34824e6,b -34824e7,ff -34824e8,80 -34824e9,40 -34824ea,28 -34824eb,4c -34824ec,80 -34824ed,40 -34824ee,25 -34824ef,50 -34824f0,53 -34824f1,41 -34824f2,4 -34824f3,b8 -34824f5,b6 -34824f6,c -34824f7,ff -34824f8,80 -34824f9,40 -34824fa,28 -34824fb,4c -34824fc,80 -34824fd,40 -34824fe,25 -34824ff,50 -3482500,53 -3482501,41 -3482502,6 -3482503,b9 -3482505,b6 -3482506,d -3482507,ff -3482508,80 -3482509,40 -348250a,28 -348250b,4c -348250c,80 -348250d,40 -348250e,25 -348250f,50 -3482510,53 -3482511,41 -3482512,3 -3482513,ba -3482515,b6 -3482516,e -3482517,ff -3482518,80 -3482519,40 -348251a,28 -348251b,4c -348251c,80 -348251d,40 -348251e,25 -348251f,50 -3482520,53 -3482521,41 -3482522,8 -3482523,bb -3482525,b6 -3482526,f -3482527,ff -3482528,80 -3482529,40 -348252a,28 -348252b,4c -348252c,80 -348252d,40 -348252e,25 -348252f,50 -3482530,53 -3482531,41 -3482532,5 -3482533,bc -3482535,b6 -3482536,10 -3482537,ff -3482538,80 -3482539,40 -348253a,28 -348253b,4c -348253c,80 -348253d,40 -348253e,25 -348253f,50 -3482540,53 -3482541,41 -3482542,7 -3482543,bd -3482545,b6 -3482546,11 -3482547,ff -3482548,80 -3482549,40 -348254a,28 -348254b,4c -348254c,80 -348254d,40 -348254e,25 -348254f,50 -3482550,3 -3482551,e0 -3482553,8 -3482554,34 -3482555,a2 -3482558,90 -3482559,88 -348255b,7d -348255c,34 -348255d,1 -348255f,ff -3482560,11 -3482561,1 -3482563,2 -3482564,34 -3482565,2 -3482567,8 -3482568,34 -3482569,2 -348256b,9 -348256c,3 -348256d,e0 -348256f,8 -3482574,90 -3482575,88 -3482577,a3 -3482578,31 -3482579,8 -348257b,c0 -348257c,11 -348257f,5 -3482580,34 -3482581,2 -3482583,54 -3482584,34 -3482585,1 -3482587,40 -3482588,11 -3482589,1 -348258b,2 -348258c,34 -348258d,2 -348258f,35 -3482590,34 -3482591,2 -3482593,36 -3482594,3 -3482595,e0 -3482597,8 -348259c,90 -348259d,88 -348259f,a3 -34825a0,31 -34825a1,8 -34825a3,18 -34825a4,11 -34825a7,5 -34825a8,34 -34825a9,2 -34825ab,32 -34825ac,34 -34825ad,1 -34825af,8 -34825b0,11 -34825b1,1 -34825b3,2 -34825b4,34 -34825b5,2 -34825b7,33 -34825b8,34 -34825b9,2 -34825bb,34 -34825bc,3 -34825bd,e0 -34825bf,8 -34825c4,90 -34825c5,88 -34825c7,a3 -34825c8,31 -34825c9,8 -34825cb,3 -34825cc,11 -34825cf,5 -34825d0,34 -34825d1,2 -34825d3,4 -34825d4,34 -34825d5,1 -34825d7,1 -34825d8,11 -34825d9,1 -34825db,2 -34825dc,34 -34825dd,2 -34825df,30 -34825e0,34 -34825e1,2 -34825e3,31 -34825e4,3 -34825e5,e0 -34825e7,8 -34825ec,90 -34825ed,88 -34825ef,a2 -34825f0,31 -34825f1,8 -34825f3,c0 -34825f4,11 -34825f7,5 -34825f8,34 -34825f9,2 -34825fb,5 -34825fc,34 -34825fd,1 -34825ff,40 -3482600,11 -3482601,1 -3482603,2 -3482604,34 -3482605,2 -3482607,60 -3482608,34 -3482609,2 -348260b,7b -348260c,3 -348260d,e0 -348260f,8 -3482614,90 -3482615,88 -3482617,a2 -3482618,31 -3482619,8 -348261b,30 -348261c,11 -348261f,5 -3482620,34 -3482621,2 -3482623,45 -3482624,34 -3482625,9 -3482627,10 -3482628,11 -3482629,9 -348262b,2 -348262c,34 -348262d,2 -348262f,46 -3482630,34 -3482631,a2 -3482634,3 -3482635,e0 -3482637,8 -348263c,90 -348263d,88 -348263f,a2 -3482640,35 -3482641,8 -3482643,30 -3482644,a0 -3482645,88 -3482647,a2 -3482648,3 -3482649,e0 -348264b,8 -3482650,90 -3482651,88 -3482653,a2 -3482654,31 -3482655,8 -3482657,6 -3482658,11 -348265b,2 -348265c,34 -348265d,2 -348265f,37 -3482660,34 -3482661,2 -3482663,38 -3482664,3 -3482665,e0 -3482667,8 -348266c,90 -348266d,88 -348266f,a1 -3482670,31 -3482671,8 -3482673,20 -3482674,11 -3482677,2 -3482678,34 -3482679,2 -348267b,79 -348267c,34 -348267d,2 -348267f,7a -3482680,3 -3482681,e0 -3482683,8 -3482688,90 -3482689,88 -348268b,a1 -348268c,31 -348268d,8 -348268f,4 -3482690,11 -3482693,2 -3482694,34 -3482695,2 -3482697,77 -3482698,34 -3482699,2 -348269b,78 -348269c,3 -348269d,e0 -348269f,8 -34826a4,90 -34826a5,88 -34826a7,32 -34826a8,11 -34826ab,2 -34826ac,34 -34826ad,2 -34826af,c0 -34826b0,34 -34826b1,2 -34826b3,c1 -34826b4,3 -34826b5,e0 -34826b7,8 -34826bc,90 -34826bd,88 -34826bf,a3 -34826c0,31 -34826c1,8 -34826c3,3 -34826c4,11 -34826c7,2 -34826c8,34 -34826c9,2 -34826cb,4d -34826cc,34 -34826cd,a2 -34826d0,3 -34826d1,e0 -34826d3,8 -34826d8,90 -34826d9,88 -34826db,a3 -34826dc,31 -34826dd,8 -34826df,18 -34826e0,11 -34826e3,2 -34826e4,34 -34826e5,2 -34826e7,4d -34826e8,34 -34826e9,a2 -34826ec,3 -34826ed,e0 -34826ef,8 -34826f4,3 -34826f5,e0 -34826f7,8 -34826fc,34 -34826fd,8 -34826ff,1 -3482700,a0 -3482701,88 -3482703,3e -3482704,3 -3482705,e0 -3482707,8 -348270c,24 -348270d,88 -348270f,86 -3482710,24 -3482711,9 -3482712,ff -3482713,ff -3482714,25 -3482715,29 -3482717,1 -3482718,34 -3482719,1 -348271b,3 -348271d,29 -348271e,8 -348271f,2a -3482720,14 -3482721,20 -3482723,7 -3482728,1 -3482729,9 -348272a,50 -348272b,21 -348272c,91 -348272d,4b -3482730,34 -3482731,1 -3482733,ff -3482734,15 -3482735,61 -3482736,ff -3482737,f7 -348273c,a1 -348273d,45 -3482740,3 -3482741,e0 -3482743,8 -3482748,24 -3482749,88 -348274b,a8 -348274c,1 -348274d,6 -348274e,40 -348274f,21 -3482750,91 -3482751,9 -3482754,1 -3482755,25 -3482756,48 -3482757,25 -3482758,a1 -3482759,9 -348275c,3 -348275d,e0 -348275f,8 -3482764,24 -3482765,88 -3482767,bc -3482768,1 -3482769,5 -348276a,40 -348276b,21 -348276c,81 -348276d,9 -3482770,5 -3482771,21 -3482773,2 -3482778,34 -3482779,9 -348277c,25 -348277d,29 -348277f,1 -3482780,a1 -3482781,9 -3482784,3 -3482785,e0 -3482787,8 -348278c,34 -348278d,8 -348278f,1 -3482790,a0 -3482791,88 -3482793,3d -3482794,34 -3482795,8 -3482797,14 -3482798,a0 -3482799,88 -348279b,cf -348279c,34 -348279d,8 -348279e,1 -348279f,40 -34827a0,a4 -34827a1,88 -34827a2,14 -34827a3,24 -34827a4,3 -34827a5,e0 -34827a7,8 -34827ac,34 -34827ad,8 -34827af,1 -34827b0,a0 -34827b1,88 -34827b3,32 -34827b4,a0 -34827b5,88 -34827b7,3a -34827b8,34 -34827b9,8 -34827bb,30 -34827bc,a4 -34827bd,88 -34827be,13 -34827bf,f4 -34827c0,a0 -34827c1,88 -34827c3,33 -34827c4,3 -34827c5,e0 -34827c7,8 -34827cc,34 -34827cd,8 -34827cf,2 -34827d0,a0 -34827d1,88 -34827d3,32 -34827d4,34 -34827d5,8 -34827d7,1 -34827d8,a0 -34827d9,88 -34827db,3a -34827dc,a0 -34827dd,88 -34827df,3c -34827e0,34 -34827e1,8 -34827e3,60 -34827e4,a4 -34827e5,88 -34827e6,13 -34827e7,f4 -34827e8,a0 -34827e9,88 -34827eb,33 -34827ec,3 -34827ed,e0 -34827ef,8 -34827f4,90 -34827f5,88 -34827f7,7c -34827f8,34 -34827f9,1 -34827fb,ff -34827fc,11 -34827fd,1 -34827ff,6 -3482800,34 -3482801,2 -3482803,6b -3482804,90 -3482805,88 -3482807,94 -3482808,2d -3482809,8 -348280b,6 -348280c,11 -348280f,2 -3482810,34 -3482811,2 -3482813,6a -3482814,34 -3482815,2 -3482817,3 -3482818,3 -3482819,e0 -348281b,8 -3482820,90 -3482821,88 -3482823,7b -3482824,34 -3482825,1 -3482827,ff -3482828,11 -3482829,1 -348282b,2 -348282c,34 -348282d,a2 -3482830,34 -3482831,2 -3482833,c -3482834,3 -3482835,e0 -3482837,8 -348283c,34 -348283d,8 -348283f,7 -3482840,a0 -3482841,88 -3482843,7b -3482844,3 -3482845,e0 -3482847,8 -348284c,34 -348284d,8 -348284f,1 -3482851,a8 -3482852,40 -3482853,4 -3482854,8c -3482855,89 -3482857,a4 -3482858,1 -3482859,28 -348285a,48 -348285b,25 -348285c,ac -348285d,89 -348285f,a4 -3482860,3 -3482861,e0 -3482863,8 -3482868,30 -3482869,84 -348286b,ff -348286c,3c -348286d,8 -348286e,80 -348286f,12 -3482870,25 -3482871,8 -3482872,a5 -3482873,d0 -3482874,34 -3482875,1 -3482877,8c -3482878,10 -3482879,81 -348287b,16 -348287c,91 -348287d,2 -348287f,75 -3482880,34 -3482881,1 -3482883,8d -3482884,10 -3482885,81 -3482887,13 -3482888,91 -3482889,2 -348288b,75 -348288c,10 -348288d,80 -348288f,11 -3482890,91 -3482891,2 -3482893,74 -3482894,34 -3482895,1 -3482897,8a -3482898,10 -3482899,81 -348289b,e -348289c,91 -348289d,2 -348289f,74 -34828a0,34 -34828a1,1 -34828a3,8b -34828a4,10 -34828a5,81 -34828a7,b -34828a8,91 -34828a9,2 -34828ab,74 -34828ac,34 -34828ad,1 -34828af,58 -34828b0,10 -34828b1,81 -34828b3,8 -34828b4,34 -34828b5,2 -34828b8,34 -34828b9,1 -34828bb,78 -34828bc,10 -34828bd,81 -34828bf,5 -34828c0,34 -34828c1,2 -34828c4,34 -34828c5,1 -34828c7,79 -34828c8,10 -34828c9,81 -34828cb,2 -34828cc,34 -34828cd,2 -34828d0,34 -34828d1,2 -34828d3,ff -34828d4,3 -34828d5,e0 -34828d7,8 -34828dc,27 -34828dd,bd -34828de,ff -34828df,e0 -34828e0,af -34828e1,bf -34828e3,10 -34828e4,af -34828e5,b0 -34828e7,14 -34828e8,c -34828e9,10 -34828ea,b -34828eb,13 -34828f0,4 -34828f1,41 -34828f3,2 -34828f8,34 -34828f9,2 -34828fb,5b -34828fd,40 -34828fe,20 -34828ff,21 -3482900,c -3482901,10 -3482902,b -3482903,84 -3482908,10 -3482909,60 -348290b,16 -348290c,af -348290d,a3 -348290f,1c -3482910,3c -3482911,8 -3482912,80 -3482913,40 -3482914,25 -3482915,8 -3482916,20 -3482918,85 -3482919,9 -348291b,2 -348291c,11 -348291d,20 -348291f,3 -3482920,34 -3482921,a -3482923,1 -3482924,10 -3482927,c -3482928,a5 -3482929,a -348292c,3c -348292d,4 -348292e,80 -348292f,12 -3482930,24 -3482931,84 -3482932,a5 -3482933,d0 -3482934,90 -3482935,65 -3482937,6 -3482938,90 -3482939,66 -348293b,7 -348293c,8c -348293d,69 -348293f,8 -3482940,1 -3482941,20 -3482942,f8 -3482943,9 -3482948,8f -3482949,a3 -348294b,1c -348294c,90 -348294d,65 -348294f,1 -3482950,c -3482951,1 -3482952,bf -3482953,73 -3482954,2 -3482955,20 -3482956,20 -3482957,21 -3482958,8f -3482959,a3 -348295b,1c -348295c,90 -348295d,65 -348295f,3 -3482960,10 -3482963,11 -3482964,3c -3482965,9 -3482966,80 -3482967,3b -3482968,25 -3482969,29 -348296a,9e -348296b,7e -348296c,34 -348296d,a -348296f,6 -3482971,4a -3482973,18 -3482976,50 -3482977,12 -3482978,1 -3482979,2a -348297a,80 -348297b,21 -348297c,82 -348297d,5 -3482980,3c -3482981,8 -3482982,80 -3482983,40 -3482984,25 -3482985,8 -3482986,20 -3482988,85 -3482989,9 -348298b,2 -348298c,11 -348298d,20 -348298f,3 -3482990,34 -3482991,a -3482993,1 -3482994,a5 -3482995,a -3482998,34 -3482999,5 -348299b,41 -348299c,c -348299d,1 -348299e,bf -348299f,73 -34829a0,2 -34829a1,20 -34829a2,20 -34829a3,21 -34829a4,92 -34829a5,5 -34829a7,3 -34829a8,2 -34829a9,20 -34829aa,20 -34829ab,21 -34829ac,c -34829ad,3 -34829ae,73 -34829af,85 -34829b2,30 -34829b3,21 -34829b4,8f -34829b5,bf -34829b7,10 -34829b8,8f -34829b9,b0 -34829bb,14 -34829bc,27 -34829bd,bd -34829bf,20 -34829c0,3 -34829c1,e0 -34829c3,8 -34829c8,8f -34829c9,a6 -34829cb,30 -34829cc,84 -34829cd,c5 -34829cf,4 -34829d0,8 -34829d1,10 -34829d2,a -34829d3,7a -34829d8,8f -34829d9,b9 -34829db,2c -34829dc,87 -34829dd,25 -34829df,4 -34829e0,8 -34829e1,10 -34829e2,a -34829e3,7a -34829e8,3c -34829e9,a -34829ea,80 -34829eb,40 -34829ec,25 -34829ed,4a -34829ee,20 -34829ef,8 -34829f0,8d -34829f1,4b -34829f3,c -34829f4,11 -34829f5,60 -34829f7,2 -34829fc,95 -34829fd,45 -34829ff,4 -3482a00,3c -3482a01,a -3482a02,80 -3482a03,1e -3482a04,25 -3482a05,4a -3482a06,89 -3482a07,84 -3482a08,a5 -3482a09,40 -3482a0c,3c -3482a0d,9 -3482a0e,80 -3482a0f,40 -3482a10,25 -3482a11,29 -3482a12,20 -3482a13,18 -3482a14,81 -3482a15,2a -3482a17,3 -3482a18,5 -3482a19,40 -3482a1b,b -3482a1c,1 -3482a1d,2a -3482a1e,48 -3482a1f,20 -3482a20,81 -3482a21,28 -3482a24,34 -3482a25,a -3482a27,7f -3482a28,15 -3482a29,a -3482a2b,6 -3482a30,3c -3482a31,a -3482a32,80 -3482a33,12 -3482a34,25 -3482a35,4a -3482a36,a5 -3482a37,d0 -3482a38,85 -3482a39,48 -3482a3b,90 -3482a3c,21 -3482a3d,8 -3482a3f,1 -3482a40,a5 -3482a41,48 -3482a43,90 -3482a44,a1 -3482a45,20 -3482a48,3 -3482a49,e0 -3482a4b,8 -3482a50,3c -3482a51,8 -3482a52,80 -3482a53,40 -3482a54,25 -3482a55,8 -3482a56,20 -3482a57,8 -3482a58,8d -3482a59,9 -3482a5b,c -3482a5c,11 -3482a5d,20 -3482a5f,2 -3482a64,81 -3482a65,3 -3482a67,2 -3482a69,3 -3482a6a,f -3482a6b,c3 -3482a6d,61 -3482a6e,40 -3482a6f,26 -3482a70,1 -3482a71,1 -3482a72,40 -3482a73,23 -3482a74,a0 -3482a75,88 -3482a76,8 -3482a77,52 -3482a78,3 -3482a79,e0 -3482a7b,8 -3482a80,90 -3482a81,45 -3482a83,3 -3482a84,3c -3482a85,8 -3482a86,80 -3482a87,40 -3482a88,25 -3482a89,8 -3482a8a,20 -3482a8b,8 -3482a8c,8d -3482a8d,9 -3482a8f,c -3482a90,11 -3482a91,20 -3482a93,2 -3482a98,91 -3482a99,5 -3482a9b,3 -3482a9c,3 -3482a9d,e0 -3482a9f,8 -3482aa4,8f -3482aa5,a2 -3482aa7,24 -3482aa8,90 -3482aa9,45 -3482aac,3c -3482aad,8 -3482aae,80 -3482aaf,40 -3482ab0,25 -3482ab1,8 -3482ab2,20 -3482ab4,85 -3482ab5,9 -3482ab7,2 -3482ab8,11 -3482ab9,20 -3482abb,4 -3482abc,34 -3482abd,a -3482abf,1 -3482ac0,a5 -3482ac1,a -3482ac4,10 -3482ac7,18 -3482ac8,34 -3482ac9,5 -3482acb,41 -3482acc,3c -3482acd,8 -3482ace,80 -3482acf,40 -3482ad0,25 -3482ad1,8 -3482ad2,20 -3482ad3,8 -3482ad4,8d -3482ad5,9 -3482ad7,c -3482ad8,11 -3482ad9,20 -3482adb,13 -3482ae0,91 -3482ae1,5 -3482ae3,1 -3482ae4,af -3482ae5,a4 -3482ae8,af -3482ae9,a5 -3482aeb,4 -3482aec,af -3482aed,a6 -3482aef,8 -3482af0,27 -3482af1,bd -3482af2,ff -3482af3,e8 -3482af4,af -3482af5,bf -3482af7,10 -3482af8,3c -3482af9,4 -3482afa,80 -3482afb,12 -3482afc,24 -3482afd,84 -3482afe,a5 -3482aff,d0 -3482b00,91 -3482b01,5 -3482b03,6 -3482b04,91 -3482b05,6 -3482b07,7 -3482b08,8d -3482b09,9 -3482b0b,8 -3482b0c,1 -3482b0d,20 -3482b0e,f8 -3482b0f,9 -3482b14,8f -3482b15,bf -3482b17,10 -3482b18,27 -3482b19,bd -3482b1b,18 -3482b1c,8f -3482b1d,a4 -3482b20,8f -3482b21,a5 -3482b23,4 -3482b24,8f -3482b25,a6 -3482b27,8 -3482b28,3 -3482b29,e0 -3482b2b,8 -3482b30,a0 -3482b31,e6 -3482b32,4 -3482b33,24 -3482b34,27 -3482b35,bd -3482b36,ff -3482b37,e0 -3482b38,af -3482b39,a2 -3482b3b,10 -3482b3c,af -3482b3d,a3 -3482b3f,14 -3482b40,af -3482b41,bf -3482b43,18 -3482b44,c -3482b45,10 -3482b46,a -3482b47,d9 -3482b4c,8f -3482b4d,a2 -3482b4f,10 -3482b50,8f -3482b51,a3 -3482b53,14 -3482b54,8f -3482b55,bf -3482b57,18 -3482b58,27 -3482b59,bd -3482b5b,20 -3482b5c,3 -3482b5d,e0 -3482b5f,8 -3482b64,27 -3482b65,bd -3482b66,ff -3482b67,e8 -3482b68,af -3482b69,bf -3482b6b,10 -3482b6c,3c -3482b6d,8 -3482b6e,80 -3482b6f,40 -3482b70,25 -3482b71,8 -3482b72,20 -3482b73,8 -3482b74,ad -3482b78,ad -3482b7b,4 -3482b7c,ad -3482b7f,8 -3482b80,ad -3482b83,c -3482b84,3c -3482b85,8 -3482b86,80 -3482b87,1e -3482b88,25 -3482b89,8 -3482b8a,aa -3482b8b,30 -3482b8c,81 -3482b8d,9 -3482b8e,4 -3482b8f,24 -3482b90,11 -3482b91,20 -3482b93,2a -3482b99,9 -3482b9a,f -3482b9b,c3 -3482b9c,1 -3482b9d,21 -3482b9e,20 -3482b9f,26 -3482ba1,81 -3482ba2,20 -3482ba3,23 -3482ba4,8d -3482ba5,5 -3482ba6,4 -3482ba7,28 -3482ba8,c -3482ba9,10 -3482baa,b -3482bab,13 -3482bb0,4 -3482bb1,40 -3482bb3,22 -3482bb8,34 -3482bb9,44 -3482bbc,c -3482bbd,10 -3482bbe,b -3482bbf,84 -3482bc4,10 -3482bc5,60 -3482bc7,c -3482bcc,3c -3482bcd,8 -3482bce,80 -3482bcf,40 -3482bd0,25 -3482bd1,8 -3482bd2,20 -3482bd3,8 -3482bd4,8c -3482bd5,69 -3482bd8,ad -3482bd9,9 -3482bdc,8c -3482bdd,69 -3482bdf,4 -3482be0,ad -3482be1,9 -3482be3,4 -3482be4,8c -3482be5,69 -3482be7,8 -3482be8,ad -3482be9,9 -3482beb,8 -3482bec,34 -3482bed,9 -3482bef,1 -3482bf0,ad -3482bf1,9 -3482bf3,c -3482bf4,90 -3482bf5,62 -3482bf8,3c -3482bf9,8 -3482bfa,80 -3482bfb,1e -3482bfc,25 -3482bfd,8 -3482bfe,aa -3482bff,30 -3482c00,8d -3482c01,9 -3482c02,4 -3482c03,28 -3482c04,95 -3482c05,2a -3482c08,34 -3482c09,1 -3482c0b,a -3482c0c,15 -3482c0d,41 -3482c0f,6 -3482c14,95 -3482c15,2a -3482c17,1c -3482c18,31 -3482c19,4a -3482c1a,f0 -3482c1b,1f -3482c1d,2 -3482c1e,59 -3482c1f,40 -3482c20,1 -3482c21,4b -3482c22,50 -3482c23,25 -3482c24,a5 -3482c25,2a -3482c27,1c -3482c28,81 -3482c29,9 -3482c2a,4 -3482c2b,24 -3482c2c,5 -3482c2d,21 -3482c2f,2 -3482c35,2 -3482c36,10 -3482c37,23 -3482c38,a1 -3482c39,2 -3482c3a,4 -3482c3b,24 -3482c3c,8f -3482c3d,bf -3482c3f,10 -3482c40,27 -3482c41,bd -3482c43,18 -3482c44,3 -3482c45,e0 -3482c47,8 -3482c4c,27 -3482c4d,bd -3482c4e,ff -3482c4f,e8 -3482c50,af -3482c51,bf -3482c53,10 -3482c54,c -3482c55,10 -3482c56,b -3482c57,21 -3482c5c,24 -3482c5d,1 -3482c5e,ff -3482c5f,ff -3482c60,10 -3482c61,41 -3482c63,4 -3482c68,34 -3482c69,44 -3482c6c,c -3482c6d,10 -3482c6e,b -3482c6f,5f -3482c74,8f -3482c75,bf -3482c77,10 -3482c78,27 -3482c79,bd -3482c7b,18 -3482c7c,3 -3482c7d,e0 -3482c7f,8 -3482c84,3c -3482c85,2 -3482c86,80 -3482c87,1d -3482c88,24 -3482c89,42 -3482c8a,84 -3482c8b,a0 -3482c8c,94 -3482c8d,42 -3482c8f,a4 -3482c90,34 -3482c91,8 -3482c94,34 -3482c95,89 -3482c98,94 -3482c99,aa -3482c9c,34 -3482c9d,1 -3482c9e,1 -3482c9f,9c -3482ca0,15 -3482ca1,41 -3482ca3,8 -3482ca8,34 -3482ca9,8 -3482cab,3 -3482cac,94 -3482cad,ab -3482caf,1c -3482cb0,31 -3482cb1,69 -3482cb3,ff -3482cb4,31 -3482cb5,62 -3482cb6,1f -3482cb9,2 -3482cba,12 -3482cbb,2 -3482cbc,10 -3482cbf,1f -3482cc4,34 -3482cc5,1 -3482cc7,a -3482cc8,15 -3482cc9,41 -3482ccb,e -3482cd0,94 -3482cd1,ab -3482cd3,1c -3482cd4,34 -3482cd5,1 -3482cd7,10 -3482cd8,14 -3482cd9,41 -3482cdb,8 -3482ce0,31 -3482ce1,6c -3482ce2,f -3482ce3,e0 -3482ce4,34 -3482ce5,1 -3482ce6,e -3482ce7,a0 -3482ce8,15 -3482ce9,81 -3482ceb,4 -3482cf0,24 -3482cf1,2 -3482cf2,ff -3482cf3,ff -3482cf4,10 -3482cf7,1f -3482cfc,34 -3482cfd,8 -3482cff,1 -3482d00,31 -3482d01,69 -3482d03,1f -3482d04,34 -3482d05,1 -3482d07,15 -3482d08,15 -3482d09,41 -3482d0b,c -3482d10,34 -3482d11,1 -3482d13,3e -3482d14,10 -3482d15,81 -3482d17,7 -3482d1c,34 -3482d1d,1 -3482d1f,42 -3482d20,10 -3482d21,81 -3482d23,4 -3482d28,24 -3482d29,2 -3482d2a,ff -3482d2b,ff -3482d2c,10 -3482d2f,11 -3482d34,34 -3482d35,8 -3482d37,2 -3482d38,90 -3482d39,a9 -3482d3a,1 -3482d3b,41 -3482d3c,34 -3482d3d,1 -3482d3e,1 -3482d3f,1a -3482d40,15 -3482d41,41 -3482d43,8 -3482d48,34 -3482d49,1 -3482d4b,3e -3482d4c,14 -3482d4d,41 -3482d4f,5 -3482d54,34 -3482d55,8 -3482d57,4 -3482d58,3c -3482d59,b -3482d5a,80 -3482d5b,12 -3482d5c,25 -3482d5d,6b -3482d5e,a5 -3482d5f,d0 -3482d60,81 -3482d61,62 -3482d62,13 -3482d63,97 -3482d65,2 -3482d66,12 -3482d69,48 -3482d6a,10 -3482d6b,25 -3482d6d,2 -3482d6e,12 -3482d71,49 -3482d72,10 -3482d73,25 -3482d74,3 -3482d75,e0 -3482d77,8 -3482d7c,24 -3482d7d,2 -3482d7e,ff -3482d7f,ff -3482d80,3c -3482d81,8 -3482d82,80 -3482d83,40 -3482d84,25 -3482d85,8 -3482d86,1c -3482d88,81 -3482d89,9 -3482d8c,3c -3482d8d,8 -3482d8e,80 -3482d8f,12 -3482d90,25 -3482d91,8 -3482d92,a5 -3482d93,d0 -3482d94,a5 -3482d95,9 -3482d96,14 -3482d97,6 -3482d98,3c -3482d99,8 -3482d9a,80 -3482d9b,40 -3482d9c,25 -3482d9d,8 -3482d9e,f -3482d9f,fc -3482da0,25 -3482da1,8 -3482da3,4 -3482da4,8d -3482da5,9 -3482da8,11 -3482da9,20 -3482dab,17 -3482db1,9 -3482db2,52 -3482db3,2 -3482db4,31 -3482db5,4b -3482db6,f8 -3482db9,b -3482dba,5a -3482dbb,c2 -3482dbc,3c -3482dbd,c -3482dbe,ff -3482dbf,ff -3482dc0,35 -3482dc1,8c -3482dc2,7 -3482dc3,ff -3482dc4,1 -3482dc5,4c -3482dc6,50 -3482dc7,24 -3482dc8,15 -3482dc9,44 -3482dca,ff -3482dcb,f5 -3482dd0,31 -3482dd1,22 -3482dd3,ff -3482dd4,3c -3482dd5,8 -3482dd6,80 -3482dd7,12 -3482dd8,25 -3482dd9,8 -3482dda,a5 -3482ddb,d0 -3482ddc,a5 -3482ddd,b -3482dde,14 -3482ddf,6 -3482de0,3c -3482de1,9 -3482de2,80 -3482de3,40 -3482de4,25 -3482de5,29 -3482de6,20 -3482de8,3c -3482de9,c -3482dea,80 -3482deb,40 -3482dec,25 -3482ded,8c -3482dee,1c -3482df0,81 -3482df1,8c -3482df4,11 -3482df5,6c -3482df7,4 -3482df8,a5 -3482df9,20 -3482dfb,2 -3482dfc,a1 -3482dfd,2b -3482dff,2 -3482e00,a1 -3482e01,22 -3482e03,3 -3482e04,ad -3482e05,24 -3482e07,4 -3482e08,3 -3482e09,e0 -3482e0b,8 -3482e10,27 -3482e11,bd -3482e12,ff -3482e13,e0 -3482e14,af -3482e15,b0 -3482e17,10 -3482e18,af -3482e19,b1 -3482e1b,14 -3482e1c,af -3482e1d,bf -3482e1f,18 -3482e20,34 -3482e21,82 -3482e24,34 -3482e25,50 -3482e28,26 -3482e29,8 -3482e2a,ff -3482e2b,80 -3482e2c,5 -3482e2f,12 -3482e34,3c -3482e35,11 -3482e36,80 -3482e37,40 -3482e38,26 -3482e39,31 -3482e3a,20 -3482e3b,50 -3482e3c,34 -3482e3d,9 -3482e3f,10 -3482e40,1 -3482e41,9 -3482e43,18 -3482e46,40 -3482e47,12 -3482e48,2 -3482e49,28 -3482e4a,88 -3482e4b,21 -3482e4c,3c -3482e4d,4 -3482e4e,80 -3482e4f,12 -3482e50,24 -3482e51,84 -3482e52,a5 -3482e53,d0 -3482e54,36 -3482e55,5 -3482e58,8e -3482e59,28 -3482e5b,c -3482e5c,1 -3482e5e,f8 -3482e5f,9 -3482e64,14 -3482e65,50 -3482e66,ff -3482e67,ef -3482e6c,36 -3482e6d,23 -3482e70,10 -3482e73,2 -3482e78,34 -3482e79,3 -3482e7c,8f -3482e7d,b0 -3482e7f,10 -3482e80,8f -3482e81,b1 -3482e83,14 -3482e84,8f -3482e85,bf -3482e87,18 -3482e88,27 -3482e89,bd -3482e8b,20 -3482e8c,3 -3482e8d,e0 -3482e8f,8 -3482e94,8c -3482e95,88 -3482e96,1d -3482e97,2c -3482e98,34 -3482e99,9 -3482e9b,1 -3482e9d,9 -3482e9e,4e -3482ea0,1 -3482ea1,9 -3482ea2,10 -3482ea3,24 -3482ea4,10 -3482ea5,40 -3482ea7,24 -3482eac,94 -3482ead,ca -3482eae,2 -3482eaf,dc -3482eb0,3c -3482eb1,b -3482eb2,80 -3482eb3,12 -3482eb4,25 -3482eb5,6b -3482eb6,a5 -3482eb7,d0 -3482eb8,94 -3482eb9,8c -3482ebb,a4 -3482ebc,34 -3482ebd,1 -3482ebf,3d -3482ec0,11 -3482ec1,81 -3482ec3,a -3482ec9,8a -3482eca,60 -3482ecb,21 -3482ecc,91 -3482ecd,8d -3482ece,1d -3482ecf,28 -3482ed0,15 -3482ed1,a0 -3482ed3,19 -3482ed8,34 -3482ed9,d -3482edb,1 -3482edc,a1 -3482edd,8d -3482ede,1d -3482edf,28 -3482ee0,25 -3482ee1,4a -3482ee3,3 -3482ee4,10 -3482ee7,9 -3482eec,34 -3482eed,c -3482eef,1 -3482ef0,1 -3482ef1,4c -3482ef2,60 -3482ef3,4 -3482ef4,91 -3482ef5,6d -3482ef6,e -3482ef7,f2 -3482ef8,1 -3482ef9,ac -3482efa,70 -3482efb,24 -3482efc,15 -3482efd,c0 -3482eff,e -3482f04,1 -3482f05,ac -3482f06,70 -3482f07,25 -3482f08,a1 -3482f09,6e -3482f0a,e -3482f0b,f2 -3482f0c,1 -3482f0d,29 -3482f0e,48 -3482f0f,27 -3482f10,1 -3482f11,9 -3482f12,40 -3482f13,24 -3482f14,ac -3482f15,88 -3482f16,1d -3482f17,2c -3482f18,3c -3482f19,8 -3482f1a,80 -3482f1b,40 -3482f1c,25 -3482f1d,8 -3482f1e,1c -3482f1f,3 -3482f20,1 -3482f21,a -3482f22,40 -3482f23,21 -3482f24,81 -3482f25,8 -3482f28,3c -3482f29,9 -3482f2a,80 -3482f2b,40 -3482f2c,25 -3482f2d,29 -3482f2e,20 -3482f2f,18 -3482f30,a1 -3482f31,28 -3482f34,34 -3482f35,2 -3482f38,3 -3482f39,e0 -3482f3b,8 -3482f40,3c -3482f41,8 -3482f42,80 -3482f43,40 -3482f44,25 -3482f45,8 -3482f46,1c -3482f47,1 -3482f48,81 -3482f49,8 -3482f4c,10 -3482f4f,22 -3482f54,3c -3482f55,8 -3482f56,80 -3482f57,40 -3482f58,25 -3482f59,8 -3482f5a,1c -3482f5b,2 -3482f5c,81 -3482f5d,8 -3482f60,10 -3482f63,1d -3482f68,34 -3482f69,2 -3482f6b,ff -3482f6c,20 -3482f6d,e8 -3482f6e,ff -3482f6f,a6 -3482f70,21 -3482f71,8 -3482f73,61 -3482f74,10 -3482f77,18 -3482f7c,34 -3482f7d,8 -3482f7f,64 -3482f80,10 -3482f83,15 -3482f88,3c -3482f89,1 -3482f8a,80 -3482f8b,12 -3482f8c,24 -3482f8d,21 -3482f8e,a5 -3482f8f,d0 -3482f90,80 -3482f91,28 -3482f92,e -3482f93,de -3482f94,35 -3482f95,8 -3482f97,1 -3482f98,a0 -3482f99,28 -3482f9a,e -3482f9b,de -3482f9c,34 -3482f9d,8 -3482f9f,68 -3482fa0,10 -3482fa3,d -3482fa8,3c -3482fa9,1 -3482faa,80 -3482fab,12 -3482fac,24 -3482fad,21 -3482fae,a5 -3482faf,d0 -3482fb0,80 -3482fb1,28 -3482fb2,e -3482fb3,de -3482fb4,35 -3482fb5,8 -3482fb7,4 -3482fb8,a0 -3482fb9,28 -3482fba,e -3482fbb,de -3482fbc,34 -3482fbd,8 -3482fbf,6a -3482fc0,10 -3482fc3,5 -3482fc8,34 -3482fc9,5 -3482fcb,3 -3482fcc,34 -3482fcd,8 -3482fcf,6b -3482fd0,10 -3482fd3,1 -3482fd8,3c -3482fd9,9 -3482fda,80 -3482fdb,40 -3482fdc,25 -3482fdd,29 -3482fde,20 -3482fdf,18 -3482fe0,3c -3482fe1,a -3482fe2,80 -3482fe3,40 -3482fe4,25 -3482fe5,4a -3482fe6,20 -3482fe7,1b -3482fe8,81 -3482fe9,2c -3482fec,11 -3482fed,88 -3482fef,b -3482ff0,21 -3482ff1,29 -3482ff3,1 -3482ff4,15 -3482ff5,2a -3482ff6,ff -3482ff7,fc -3482ffc,3c -3482ffd,9 -3482ffe,80 -3482fff,40 -3483000,25 -3483001,29 -3483002,20 -3483003,17 -3483004,21 -3483005,29 -3483007,1 -3483008,11 -3483009,2a -348300b,4 -348300c,81 -348300d,2c -3483010,15 -3483011,80 -3483012,ff -3483013,fc -3483018,a1 -3483019,28 -348301c,3 -348301d,e0 -348301f,8 -3483025,60 -3483026,78 -3483027,21 -3483028,81 -3483029,ec -348302a,e -348302b,df -348302c,31 -348302d,8e -348302f,80 -3483030,11 -3483031,c0 -3483033,3 -3483034,34 -3483035,3 -3483037,5 -3483038,3 -3483039,e0 -348303b,8 -348303c,34 -348303d,2 -348303f,2 -3483040,3 -3483041,e0 -3483043,8 -3483045,60 -3483046,10 -3483047,21 -3483048,85 -3483049,c2 -348304b,a4 -348304c,3c -348304d,8 -348304e,80 -348304f,12 -3483050,25 -3483051,8 -3483052,a5 -3483053,d0 -3483054,81 -3483055,9 -3483056,e -3483057,df -3483058,35 -3483059,29 -348305b,80 -348305c,a1 -348305d,9 -348305e,e -348305f,df -3483060,3 -3483061,e0 -3483063,8 -3483068,84 -3483069,8e -348306b,1c -348306c,21 -348306d,cd -348306e,ff -348306f,ce -3483070,5 -3483071,a0 -3483073,10 -3483074,34 -3483075,2 -3483078,31 -3483079,a9 -348307b,7 -348307c,34 -348307d,a -348307f,1 -3483080,1 -3483081,2a -3483082,50 -3483083,4 -3483085,d -3483086,48 -3483087,c2 -3483088,3c -3483089,c -348308a,80 -348308b,12 -348308c,25 -348308d,8c -348308e,a5 -348308f,d0 -3483090,1 -3483091,89 -3483092,60 -3483093,20 -3483094,81 -3483095,8b -3483096,5 -3483097,b4 -3483098,1 -3483099,6a -348309a,58 -348309b,24 -348309c,34 -348309d,2 -34830a0,11 -34830a1,60 -34830a3,4 -34830a8,34 -34830a9,d -34830ab,26 -34830ac,a4 -34830ad,8d -34830af,1c -34830b0,34 -34830b1,2 -34830b3,1 -34830b4,3 -34830b5,e0 -34830b7,8 -34830bc,84 -34830bd,ae -34830bf,1c -34830c0,21 -34830c1,cd -34830c2,ff -34830c3,ce -34830c4,5 -34830c5,a0 -34830c7,b -34830c8,34 -34830c9,2 -34830cc,31 -34830cd,a9 -34830cf,7 -34830d0,34 -34830d1,a -34830d3,1 -34830d4,1 -34830d5,2a -34830d6,50 -34830d7,4 -34830d9,d -34830da,48 -34830db,c2 -34830dc,3c -34830dd,c -34830de,80 -34830df,12 -34830e0,25 -34830e1,8c -34830e2,a5 -34830e3,d0 -34830e4,1 -34830e5,89 -34830e6,60 -34830e7,20 -34830e8,81 -34830e9,8b -34830ea,5 -34830eb,b4 -34830ec,1 -34830ed,6a -34830ee,58 -34830ef,25 -34830f0,a1 -34830f1,8b -34830f2,5 -34830f3,b4 -34830f4,3 -34830f5,e0 -34830f7,8 -34830fc,27 -34830fd,bd -34830fe,ff -34830ff,f0 -3483100,af -3483101,bf -3483103,8 -3483104,28 -3483105,81 -3483107,32 -3483108,10 -3483109,20 -348310b,3 -348310d,80 -348310e,10 -348310f,21 -3483110,3 -3483111,20 -3483112,f8 -3483113,9 -3483118,8f -3483119,bf -348311b,8 -348311c,27 -348311d,bd -348311f,10 -3483120,3 -3483121,e0 -3483123,8 -3483128,3c -3483129,8 -348312a,80 -348312b,1d -348312c,25 -348312d,8 -348312e,84 -348312f,a0 -3483130,3c -3483131,9 -3483132,80 -3483133,12 -3483134,25 -3483135,29 -3483136,a5 -3483137,d0 -3483138,85 -3483139,a -348313b,a4 -348313c,34 -348313d,1 -348313f,3e -3483140,15 -3483141,41 -3483143,2 -3483144,81 -3483145,2b -3483146,13 -3483147,97 -3483148,21 -3483149,6a -348314b,2d -348314c,86 -348314d,b -348314f,1c -3483150,21 -3483151,6b -3483153,1 -3483154,34 -3483155,c -3483157,1 -3483158,1 -3483159,6c -348315a,60 -348315b,4 -348315c,34 -348315d,1 -348315f,1c -3483160,1 -3483161,41 -3483163,18 -3483166,68 -3483167,12 -3483168,1 -3483169,2d -348316a,70 -348316b,20 -348316c,8d -348316d,cf -348316f,e4 -3483170,1 -3483171,8f -3483172,10 -3483173,24 -3483174,3 -3483175,e0 -3483177,8 -348317c,3c -348317d,8 -348317e,80 -348317f,1d -3483180,25 -3483181,8 -3483182,84 -3483183,a0 -3483184,3c -3483185,9 -3483186,80 -3483187,12 -3483188,25 -3483189,29 -348318a,a5 -348318b,d0 -348318c,85 -348318d,a -348318f,a4 -3483190,34 -3483191,1 -3483193,3e -3483194,15 -3483195,41 -3483197,2 -3483198,81 -3483199,2b -348319a,13 -348319b,97 -348319c,21 -348319d,6a -348319f,2d -34831a0,84 -34831a1,8b -34831a3,1c -34831a4,21 -34831a5,6b -34831a7,1 -34831a8,34 -34831a9,c -34831ab,1 -34831ac,1 -34831ad,6c -34831ae,60 -34831af,4 -34831b0,34 -34831b1,1 -34831b3,1c -34831b4,1 -34831b5,41 -34831b7,18 -34831ba,68 -34831bb,12 -34831bc,1 -34831bd,2d -34831be,70 -34831bf,20 -34831c0,8d -34831c1,cf -34831c3,e4 -34831c4,1 -34831c5,8f -34831c6,78 -34831c7,25 -34831c8,ad -34831c9,cf -34831cb,e4 -34831cc,3 -34831cd,e0 -34831cf,8 -34831d4,af -34831d5,a4 -34831d7,68 -34831d8,af -34831d9,a5 -34831db,6c -34831dc,af -34831dd,a6 -34831df,70 -34831e0,af -34831e1,a7 -34831e3,74 -34831e4,27 -34831e5,bd -34831e6,ff -34831e7,e8 -34831e8,af -34831e9,a3 -34831eb,10 -34831ec,af -34831ed,bf -34831ef,14 -34831f0,3c -34831f1,a -34831f2,80 -34831f3,1e -34831f4,25 -34831f5,4a -34831f6,aa -34831f7,30 -34831f8,81 -34831f9,48 -34831fa,6 -34831fb,6c -34831fc,31 -34831fd,8 -34831ff,20 -3483200,15 -3483203,1f -3483208,3c -3483209,9 -348320a,80 -348320b,40 -348320c,25 -348320d,29 -348320e,20 -348320f,1b -3483210,34 -3483211,a -3483213,ff -3483214,a1 -3483215,2a -3483218,3c -3483219,9 -348321a,80 -348321b,40 -348321c,25 -348321d,29 -348321e,20 -348321f,18 -3483220,24 -3483221,a -3483222,ff -3483223,ff -3483224,34 -3483225,c -3483227,3 -3483228,21 -3483229,4a -348322b,1 -348322c,11 -348322d,4c -348322f,14 -3483230,1 -3483231,2a -3483232,58 -3483233,20 -3483234,81 -3483235,68 -3483238,11 -348323a,ff -348323b,fb -3483240,3c -3483241,9 -3483242,80 -3483243,40 -3483244,25 -3483245,29 -3483246,20 -3483247,1b -3483248,a1 -3483249,2a -348324c,3c -348324d,9 -348324e,80 -348324f,1e -3483250,25 -3483251,29 -3483252,89 -3483253,84 -3483254,34 -3483255,a -3483257,1 -3483258,a5 -3483259,2a -348325c,3c -348325d,9 -348325e,80 -348325f,48 -3483260,34 -3483261,a -3483263,1 -3483264,ad -3483265,2a -3483266,1 -3483267,30 -3483268,3c -3483269,a -348326a,80 -348326b,1e -348326c,25 -348326d,4a -348326e,aa -348326f,30 -3483270,a1 -3483271,48 -3483272,4 -3483273,24 -3483274,ad -3483275,49 -3483276,4 -3483277,28 -3483278,c -3483279,10 -348327a,a -348327b,d9 -3483280,8f -3483281,a3 -3483283,10 -3483284,8f -3483285,bf -3483287,14 -3483288,27 -3483289,bd -348328b,18 -348328c,8f -348328d,a4 -348328f,68 -3483290,8f -3483291,a5 -3483293,6c -3483294,8f -3483295,a6 -3483297,70 -3483298,8f -3483299,a7 -348329b,74 -348329c,84 -348329d,6e -348329e,13 -348329f,c4 -34832a0,3 -34832a1,e0 -34832a3,8 -34832a8,93 -34832a9,19 -34832ab,74 -34832ac,34 -34832ad,1 -34832af,ff -34832b0,17 -34832b1,21 -34832b3,2 -34832b8,34 -34832b9,19 -34832bb,2c -34832bc,3 -34832bd,e0 -34832bf,8 -34832c0,a7 -34832c1,b9 -34832c3,9a -34832c4,93 -34832c5,2c -34832c7,74 -34832c8,34 -34832c9,1 -34832cb,ff -34832cc,15 -34832cd,81 -34832cf,2 -34832d4,34 -34832d5,c -34832d7,2c -34832d8,3 -34832d9,e0 -34832db,8 -34832e0,91 -34832e1,ae -34832e3,74 -34832e4,34 -34832e5,1 -34832e7,ff -34832e8,15 -34832e9,c1 -34832eb,2 -34832f0,34 -34832f1,e -34832f3,2c -34832f4,3 -34832f5,e0 -34832f7,8 -34832f8,a7 -34832f9,ae -34832fb,9a -34832fc,91 -34832fd,cf -34832ff,74 -3483300,34 -3483301,1 -3483303,ff -3483304,15 -3483305,e1 -3483307,2 -348330c,34 -348330d,f -348330f,2c -3483310,3 -3483311,e0 -3483313,8 -3483314,a7 -3483315,af -3483317,9a -3483318,3c -3483319,8 -348331a,80 -348331b,40 -348331c,25 -348331d,8 -348331e,20 -348331f,1c -3483320,8e -3483321,9 -3483323,68 -3483324,ad -3483325,9 -3483328,8e -3483329,9 -348332b,6c -348332c,ad -348332d,9 -348332f,4 -3483330,96 -3483331,9 -3483333,70 -3483334,a5 -3483335,9 -3483337,8 -3483338,96 -3483339,9 -348333b,9c -348333c,a5 -348333d,9 -348333f,a -3483340,3 -3483341,e0 -3483343,8 -3483344,8e -3483345,e -3483347,4 -3483348,27 -3483349,bd -348334a,ff -348334b,e0 -348334c,af -348334d,b0 -348334f,10 -3483350,af -3483351,b1 -3483353,14 -3483354,af -3483355,bf -3483357,18 -3483358,3c -3483359,10 -348335a,80 -348335b,12 -348335c,26 -348335d,10 -348335e,a5 -348335f,d0 -3483360,3c -3483361,11 -3483362,80 -3483363,40 -3483364,26 -3483365,31 -3483366,20 -3483367,1c -3483368,8e -3483369,8 -348336b,4 -348336c,11 -348336f,5 -3483374,c -3483375,10 -3483376,c -3483377,fc -348337c,10 -348337f,3 -3483384,c -3483385,10 -3483386,d -3483387,f -348338c,c -348338d,10 -348338e,c -348338f,ef -3483390,34 -3483391,4 -3483394,c -3483395,10 -3483396,c -3483397,ef -3483398,34 -3483399,4 -348339b,1 -348339c,c -348339d,10 -348339e,c -348339f,ef -34833a0,34 -34833a1,4 -34833a3,2 -34833a4,8f -34833a5,b0 -34833a7,10 -34833a8,8f -34833a9,b1 -34833ab,14 -34833ac,8f -34833ad,bf -34833af,18 -34833b0,27 -34833b1,bd -34833b3,20 -34833b4,3 -34833b5,e0 -34833b7,8 -34833bc,2 -34833bd,4 -34833be,40 -34833bf,21 -34833c0,91 -34833c1,9 -34833c3,6c -34833c4,34 -34833c5,1 -34833c7,ff -34833c8,11 -34833c9,21 -34833cb,7 -34833d0,2 -34833d1,9 -34833d2,48 -34833d3,21 -34833d4,91 -34833d5,29 -34833d7,74 -34833d8,34 -34833d9,1 -34833db,2c -34833dc,11 -34833dd,21 -34833df,2 -34833e4,a1 -34833e5,9 -34833e7,69 -34833e8,3 -34833e9,e0 -34833eb,8 -34833f0,27 -34833f1,bd -34833f2,ff -34833f3,e8 -34833f4,af -34833f5,bf -34833f7,10 -34833f8,8e -34833f9,28 -34833fc,ae -34833fd,8 -34833ff,40 -3483400,8e -3483401,28 -3483403,4 -3483404,ae -3483405,8 -3483407,44 -3483408,96 -3483409,28 -348340b,8 -348340c,a6 -348340d,8 -348340f,48 -3483410,a2 -3483412,f -3483413,33 -3483414,92 -3483415,8 -3483417,4a -3483418,34 -3483419,1 -348341b,ff -348341c,15 -348341d,1 -348341f,3 -3483424,c -3483425,10 -3483426,d -3483427,1d -348342c,8f -348342d,bf -348342f,10 -3483430,27 -3483431,bd -3483433,18 -3483434,3 -3483435,e0 -3483437,8 -348343c,8e -348343d,8 -348343f,40 -3483440,ae -3483441,8 -3483443,68 -3483444,8e -3483445,8 -3483447,44 -3483448,ae -3483449,8 -348344b,6c -348344c,96 -348344d,8 -348344f,48 -3483450,a6 -3483451,8 -3483453,70 -3483454,92 -3483455,8 -3483457,68 -3483458,34 -3483459,1 -348345b,ff -348345c,15 -348345d,1 -348345f,3 -3483464,34 -3483465,8 -3483467,1 -3483468,a2 -3483469,8 -348346a,f -348346b,33 -348346c,3 -348346d,e0 -348346f,8 -3483474,27 -3483475,bd -3483476,ff -3483477,e8 -3483478,af -3483479,bf -348347b,10 -348347c,96 -348347d,8 -348347f,9c -3483480,31 -3483481,8 -3483483,40 -3483484,11 -3483487,5 -348348c,96 -348348d,8 -348348f,70 -3483490,31 -3483491,8 -3483492,ff -3483493,f -3483494,35 -3483495,8 -3483497,30 -3483498,a6 -3483499,8 -348349b,70 -348349c,92 -348349d,28 -348349f,1 -34834a0,a2 -34834a1,8 -34834a3,69 -34834a4,96 -34834a5,28 -34834a7,2 -34834a8,a6 -34834a9,8 -34834ab,6a -34834ac,8e -34834ad,28 -34834af,4 -34834b0,ae -34834b1,8 -34834b3,6c -34834b4,c -34834b5,10 -34834b6,d -34834b7,37 -34834b8,34 -34834b9,4 -34834bc,c -34834bd,10 -34834be,d -34834bf,37 -34834c0,34 -34834c1,4 -34834c3,1 -34834c4,c -34834c5,10 -34834c6,d -34834c7,37 -34834c8,34 -34834c9,4 -34834cb,2 -34834cc,8f -34834cd,bf -34834cf,10 -34834d0,27 -34834d1,bd -34834d3,18 -34834d4,3 -34834d5,e0 -34834d7,8 -34834dc,2 -34834dd,4 -34834de,40 -34834df,21 -34834e0,3c -34834e1,9 -34834e2,80 -34834e3,40 -34834e4,25 -34834e5,29 -34834e6,35 -34834e7,88 -34834e8,91 -34834e9,a -34834eb,6c -34834ec,34 -34834ed,1 -34834ef,ff -34834f0,11 -34834f1,41 -34834f3,5 -34834f8,1 -34834f9,2a -34834fa,48 -34834fb,21 -34834fc,91 -34834fd,29 -3483500,15 -3483501,20 -3483503,1c -3483508,3c -3483509,9 -348350a,80 -348350b,40 -348350c,25 -348350d,29 -348350e,35 -348350f,7b -3483510,25 -3483511,29 -3483513,1 -3483514,91 -3483515,2a -3483518,11 -3483519,40 -348351b,13 -3483520,2 -3483521,a -3483522,58 -3483523,21 -3483524,91 -3483525,6b -3483527,74 -3483528,34 -3483529,1 -348352b,ff -348352c,11 -348352d,61 -348352e,ff -348352f,f8 -3483534,92 -3483535,c -3483537,6c -3483538,11 -3483539,8a -348353a,ff -348353b,f5 -3483540,92 -3483541,c -3483543,6d -3483544,11 -3483545,8a -3483546,ff -3483547,f2 -348354c,92 -348354d,c -348354f,6e -3483550,11 -3483551,8a -3483552,ff -3483553,ef -3483558,a1 -3483559,b -348355b,69 -348355c,a1 -348355d,a -348355f,6c -3483560,10 -3483563,4 -3483568,34 -3483569,9 -348356b,ff -348356c,a1 -348356d,9 -348356f,69 -3483570,a1 -3483571,9 -3483573,6c -3483574,3 -3483575,e0 -3483577,8 -348357c,7 -348357d,9 -348357e,f -348357f,2 -3483580,3 -3483581,1 -3483582,d -3483583,b -3483589,1 -348358a,1 -348358b,1 -348358c,1 -348358d,1 -348358f,1 -3483590,1 -3483591,1 -3483592,1 -3483593,1 -3483595,1 -3483597,1 -3483598,1 -3483599,1 -348359a,1 -348359b,1 -348359c,1 -348359d,1 -348359e,1 -34835a1,33 -34835a2,8 -34835a3,21 -34835a4,20 -34835a5,f -34835a7,47 -34835a8,15 -34835a9,ea -34835ab,e -34835ac,3c -34835ad,2 -34835ae,80 -34835af,12 -34835b0,8c -34835b1,42 -34835b2,a5 -34835b3,d4 -34835b4,8e -34835b5,6f -34835b7,a4 -34835b9,f -34835ba,7a -34835bb,3 -34835bc,14 -34835bd,40 -34835bf,5 -34835c0,34 -34835c1,2 -34835c2,48 -34835c3,30 -34835c4,15 -34835c5,e2 -34835c7,7 -34835cc,24 -34835cd,19 -34835cf,3 -34835d0,10 -34835d3,4 -34835d4,34 -34835d5,2 -34835d6,63 -34835d7,11 -34835d8,15 -34835d9,e2 -34835db,2 -34835e0,24 -34835e1,19 -34835e3,3 -34835e4,3 -34835e5,e0 -34835e7,8 -34835ec,8d -34835ed,ad -34835ee,8a -34835ef,a0 -34835f0,34 -34835f1,2 -34835f2,80 -34835f4,10 -34835f5,4d -34835f7,2 -34835fc,10 -34835ff,9 -3483600,3c -3483601,f -3483602,80 -3483603,1e -3483604,25 -3483605,ef -3483606,84 -3483607,a0 -3483608,81 -3483609,e2 -348360a,1c -348360b,bf -348360c,30 -348360d,42 -348360f,1 -3483610,10 -3483611,40 -3483613,2 -3483618,10 -348361b,2 -348361c,34 -348361d,2 -348361f,1 -3483620,a1 -3483621,e2 -3483622,1c -3483623,bf -3483624,3 -3483625,e0 -3483627,8 -348362d,33 -348362e,8 -348362f,21 -3483630,3c -3483631,2 -3483632,80 -3483633,12 -3483634,8c -3483635,42 -3483636,a5 -3483637,d4 -3483638,8e -3483639,6f -348363b,a4 -348363d,f -348363e,7a -348363f,3 -3483640,14 -3483641,40 -3483643,5 -3483644,34 -3483645,2 -3483646,48 -3483647,30 -3483648,15 -3483649,e2 -348364b,7 -3483650,24 -3483651,19 -3483653,3 -3483654,10 -3483657,4 -3483658,34 -3483659,2 -348365a,63 -348365b,11 -348365c,15 -348365d,e2 -348365f,2 -3483664,24 -3483665,19 -3483667,3 -3483668,3 -3483669,e0 -348366b,8 -3483670,34 -3483671,1 -3483673,18 -3483674,14 -3483675,81 -3483677,11 -348367c,14 -348367d,40 -348367f,f -3483684,3c -3483685,a -3483686,80 -3483687,12 -3483688,25 -3483689,4a -348368a,a5 -348368b,d0 -348368c,81 -348368d,48 -348368f,a6 -3483690,31 -3483691,8 -3483693,20 -3483694,11 -3483697,9 -3483698,34 -3483699,2 -348369c,34 -348369d,2 -348369f,1 -34836a0,81 -34836a1,48 -34836a3,7b -34836a4,34 -34836a5,9 -34836a7,7 -34836a8,11 -34836a9,9 -34836ab,4 -34836ac,34 -34836ad,a -34836af,8 -34836b0,11 -34836b1,a -34836b3,2 -34836b8,34 -34836b9,2 -34836bc,3 -34836bd,e0 -34836bf,8 -34836c4,a2 -34836c5,25 -34836c7,21 -34836c8,3c -34836c9,10 -34836ca,80 -34836cb,40 -34836cc,26 -34836cd,10 -34836ce,17 -34836cf,fc -34836d0,26 -34836d1,10 -34836d3,4 -34836d4,8e -34836d5,a -34836d8,11 -34836d9,40 -34836db,b -34836e1,a -34836e2,7c -34836e3,2 -34836e4,1 -34836e5,f1 -34836e6,78 -34836e7,20 -34836e8,31 -34836e9,58 -34836ea,ff -34836ed,18 -34836ee,c2 -34836ef,2 -34836f0,17 -34836f3,3 -34836f4,31 -34836f5,59 -34836f7,ff -34836f8,81 -34836f9,ea -34836fc,3 -34836fd,2a -34836fe,c8 -34836ff,25 -3483700,8 -3483701,10 -3483702,d -3483703,b4 -3483704,a1 -3483705,f9 -3483708,3 -3483709,e0 -348370b,8 -34b3000,ac -34b3001,86 -34b3004,ac -34b3005,85 -34b3007,4 -34b3008,ac -34b3009,85 -34b300b,8 -34b300d,a6 -34b300e,28 -34b300f,21 -34b3010,3 -34b3011,e0 -34b3013,8 -34b3014,ac -34b3015,85 -34b3017,c -34b3018,94 -34b3019,82 -34b301b,4 -34b301c,94 -34b301d,83 -34b301f,6 -34b3021,43 -34b3023,18 -34b3026,10 -34b3027,12 -34b3028,90 -34b3029,83 -34b302b,c -34b3031,43 -34b3033,18 -34b3036,10 -34b3037,12 -34b3038,3 -34b3039,e0 -34b303b,8 -34b3040,27 -34b3041,bd -34b3042,ff -34b3043,e8 -34b3044,af -34b3045,bf -34b3047,14 -34b3048,af -34b3049,b0 -34b304b,10 -34b304c,c -34b304d,10 -34b304e,14 -34b304f,6 -34b3051,80 -34b3052,80 -34b3053,25 -34b3054,96 -34b3055,3 -34b3057,8 -34b3059,62 -34b305b,18 -34b305e,10 -34b305f,12 -34b3060,8f -34b3061,bf -34b3063,14 -34b3064,8f -34b3065,b0 -34b3067,10 -34b3068,3 -34b3069,e0 -34b306b,8 -34b306c,27 -34b306d,bd -34b306f,18 -34b3070,27 -34b3071,bd -34b3072,ff -34b3073,90 -34b3074,af -34b3075,bf -34b3077,6c -34b3078,af -34b3079,b7 -34b307b,68 -34b307c,af -34b307d,b6 -34b307f,64 -34b3080,af -34b3081,b5 -34b3083,60 -34b3084,af -34b3085,b4 -34b3087,5c -34b3088,af -34b3089,b3 -34b308b,58 -34b308c,af -34b308d,b2 -34b308f,54 -34b3090,af -34b3091,b1 -34b3093,50 -34b3094,af -34b3095,b0 -34b3097,4c -34b3099,80 -34b309a,80 -34b309b,25 -34b309d,a0 -34b309e,a8 -34b309f,25 -34b30a1,c0 -34b30a2,b8 -34b30a3,25 -34b30a5,e0 -34b30a6,b0 -34b30a7,25 -34b30a8,90 -34b30a9,b2 -34b30ab,a -34b30ad,12 -34b30ae,95 -34b30af,40 -34b30b0,3c -34b30b1,2 -34b30b3,e0 -34b30b4,2 -34b30b5,42 -34b30b6,90 -34b30b7,24 -34b30b8,90 -34b30b9,b1 -34b30bb,b -34b30bc,2e -34b30bd,22 -34b30bf,2 -34b30c0,10 -34b30c1,40 -34b30c3,2 -34b30c4,2 -34b30c5,20 -34b30c6,98 -34b30c7,25 -34b30c8,24 -34b30c9,13 -34b30cb,2 -34b30cc,32 -34b30cd,73 -34b30cf,ff -34b30d1,13 -34b30d2,a4 -34b30d3,c0 -34b30d4,3c -34b30d5,2 -34b30d7,18 -34b30d8,2 -34b30d9,82 -34b30da,a0 -34b30db,24 -34b30dc,2 -34b30dd,92 -34b30de,a0 -34b30df,25 -34b30e0,3c -34b30e1,2 -34b30e2,fd -34b30e4,2 -34b30e5,82 -34b30e6,10 -34b30e7,25 -34b30e8,af -34b30e9,a2 -34b30eb,10 -34b30ec,c -34b30ed,10 -34b30ee,14 -34b30ef,6 -34b30f0,2 -34b30f1,a0 -34b30f2,20 -34b30f3,25 -34b30f5,57 -34b30f7,18 -34b30fa,10 -34b30fb,12 -34b30fc,8e -34b30fd,a3 -34b3101,62 -34b3102,18 -34b3103,21 -34b3104,af -34b3105,a3 -34b3107,14 -34b3108,3c -34b3109,2 -34b310a,f5 -34b310c,2 -34b310d,82 -34b310e,a0 -34b310f,25 -34b3110,af -34b3111,b4 -34b3113,18 -34b3114,3c -34b3115,2 -34b3116,7 -34b3118,af -34b3119,a2 -34b311b,1c -34b311c,3c -34b311d,2 -34b311e,e6 -34b3120,af -34b3121,a2 -34b3123,20 -34b3124,af -34b3125,a0 -34b3127,24 -34b3128,3c -34b3129,2 -34b312a,f3 -34b312c,af -34b312d,a2 -34b312f,28 -34b3130,96 -34b3131,a3 -34b3133,4 -34b3134,96 -34b3135,a7 -34b3137,6 -34b3139,f6 -34b313b,18 -34b313e,38 -34b313f,12 -34b3140,24 -34b3141,5 -34b3143,4 -34b3144,2 -34b3145,25 -34b3146,20 -34b3147,4 -34b3149,67 -34b314b,18 -34b314e,10 -34b314f,12 -34b3150,24 -34b3151,42 -34b3153,1 -34b3159,44 -34b315b,18 -34b315e,10 -34b315f,12 -34b3160,24 -34b3161,42 -34b3162,ff -34b3163,ff -34b3164,2 -34b3165,65 -34b3166,98 -34b3167,4 -34b3169,53 -34b316b,1a -34b316c,2 -34b316d,60 -34b316e,1 -34b316f,f4 -34b3172,10 -34b3173,12 -34b3174,24 -34b3175,42 -34b3176,ff -34b3177,ff -34b3179,2 -34b317a,13 -34b317c,3c -34b317d,5 -34b317f,ff -34b3180,34 -34b3181,a5 -34b3182,f0 -34b3185,45 -34b3186,10 -34b3187,24 -34b3189,64 -34b318b,18 -34b318e,40 -34b318f,12 -34b3190,29 -34b3191,5 -34b3193,41 -34b3194,14 -34b3195,a0 -34b3197,a -34b3198,24 -34b3199,6 -34b319a,8 -34b319d,8 -34b319e,2f -34b319f,c3 -34b31a0,30 -34b31a1,a5 -34b31a3,3f -34b31a5,a8 -34b31a6,28 -34b31a7,21 -34b31a9,5 -34b31aa,29 -34b31ab,83 -34b31ac,24 -34b31ad,a6 -34b31ae,7 -34b31af,ff -34b31b1,c5 -34b31b3,1a -34b31b5,a0 -34b31b6,1 -34b31b7,f4 -34b31ba,30 -34b31bb,12 -34b31bc,30 -34b31bd,c6 -34b31be,f -34b31bf,ff -34b31c1,46 -34b31c2,10 -34b31c3,25 -34b31c4,3c -34b31c5,5 -34b31c6,7 -34b31c9,45 -34b31ca,10 -34b31cb,25 -34b31cc,af -34b31cd,a2 -34b31cf,2c -34b31d0,3c -34b31d1,2 -34b31d2,e7 -34b31d4,af -34b31d5,a2 -34b31d7,30 -34b31d8,af -34b31d9,a0 -34b31db,34 -34b31dd,11 -34b31de,14 -34b31df,c0 -34b31e0,3c -34b31e1,5 -34b31e3,18 -34b31e5,45 -34b31e6,10 -34b31e7,24 -34b31e8,2e -34b31e9,31 -34b31eb,2 -34b31ec,16 -34b31ed,20 -34b31ef,2 -34b31f1,52 -34b31f2,10 -34b31f3,25 -34b31f4,24 -34b31f5,4 -34b31f7,10 -34b31f9,64 -34b31fb,18 -34b31fe,20 -34b31ff,12 -34b3200,24 -34b3201,84 -34b3203,3f -34b3205,4 -34b3206,97 -34b3207,c3 -34b3208,32 -34b3209,52 -34b320b,3f -34b320c,2 -34b320d,44 -34b320e,90 -34b320f,21 -34b3211,12 -34b3212,90 -34b3213,c0 -34b3214,3c -34b3215,4 -34b3217,3 -34b3218,34 -34b3219,84 -34b321a,fe -34b321c,2 -34b321d,44 -34b321e,90 -34b321f,24 -34b3220,2 -34b3221,42 -34b3222,90 -34b3223,25 -34b3224,3c -34b3225,2 -34b3226,f5 -34b3228,2 -34b3229,42 -34b322a,90 -34b322b,25 -34b322c,af -34b322d,b2 -34b322f,38 -34b3230,af -34b3231,a0 -34b3233,3c -34b3234,3c -34b3235,2 -34b3236,f2 -34b3238,af -34b3239,a2 -34b323b,40 -34b323c,24 -34b323d,62 -34b323e,3f -34b323f,ff -34b3241,2 -34b3242,13 -34b3243,80 -34b3244,3c -34b3245,3 -34b3247,ff -34b3248,34 -34b3249,63 -34b324a,f0 -34b324d,43 -34b324e,10 -34b324f,24 -34b3250,24 -34b3251,e7 -34b3252,ff -34b3253,ff -34b3255,7 -34b3256,38 -34b3257,80 -34b3258,30 -34b3259,e7 -34b325a,f -34b325b,fc -34b325d,47 -34b325e,10 -34b325f,25 -34b3260,af -34b3261,a2 -34b3263,44 -34b3264,27 -34b3265,a2 -34b3267,10 -34b3268,27 -34b3269,a6 -34b326b,48 -34b326c,8e -34b326d,3 -34b326f,8 -34b3270,24 -34b3271,64 -34b3273,8 -34b3274,ae -34b3275,4 -34b3277,8 -34b3278,8c -34b3279,45 -34b327b,4 -34b327c,8c -34b327d,44 -34b3280,ac -34b3281,65 -34b3283,4 -34b3284,24 -34b3285,42 -34b3287,8 -34b3288,14 -34b3289,46 -34b328a,ff -34b328b,f8 -34b328c,ac -34b328d,64 -34b3290,8f -34b3291,bf -34b3293,6c -34b3294,8f -34b3295,b7 -34b3297,68 -34b3298,8f -34b3299,b6 -34b329b,64 -34b329c,8f -34b329d,b5 -34b329f,60 -34b32a0,8f -34b32a1,b4 -34b32a3,5c -34b32a4,8f -34b32a5,b3 -34b32a7,58 -34b32a8,8f -34b32a9,b2 -34b32ab,54 -34b32ac,8f -34b32ad,b1 -34b32af,50 -34b32b0,8f -34b32b1,b0 -34b32b3,4c -34b32b4,3 -34b32b5,e0 -34b32b7,8 -34b32b8,27 -34b32b9,bd -34b32bb,70 -34b32bc,27 -34b32bd,bd -34b32be,ff -34b32bf,e8 -34b32c0,8f -34b32c1,a8 -34b32c3,28 -34b32c4,8f -34b32c5,a2 -34b32c7,2c -34b32c8,8f -34b32c9,aa -34b32cb,30 -34b32cc,94 -34b32cd,a9 -34b32cf,4 -34b32d1,9 -34b32d2,4a -34b32d3,80 -34b32d4,1 -34b32d5,22 -34b32d7,1a -34b32d9,40 -34b32da,1 -34b32db,f4 -34b32de,48 -34b32df,12 -34b32e0,94 -34b32e1,a3 -34b32e3,6 -34b32e5,47 -34b32e6,10 -34b32e7,21 -34b32e9,2 -34b32ea,13 -34b32eb,80 -34b32ec,3c -34b32ed,b -34b32ef,ff -34b32f0,35 -34b32f1,6b -34b32f2,f0 -34b32f5,4b -34b32f6,10 -34b32f7,24 -34b32f8,1 -34b32f9,48 -34b32fa,28 -34b32fb,21 -34b32fd,5 -34b32fe,28 -34b32ff,80 -34b3300,30 -34b3301,a5 -34b3302,f -34b3303,ff -34b3305,45 -34b3306,10 -34b3307,25 -34b3308,3c -34b3309,5 -34b330a,e4 -34b330d,45 -34b330e,10 -34b330f,25 -34b3310,af -34b3311,a2 -34b3315,7 -34b3316,3b -34b3317,80 -34b3319,eb -34b331a,38 -34b331b,24 -34b331d,8 -34b331e,40 -34b331f,80 -34b3320,31 -34b3321,8 -34b3322,f -34b3323,ff -34b3325,e8 -34b3326,38 -34b3327,25 -34b3328,af -34b3329,a7 -34b332b,4 -34b332c,3c -34b332d,2 -34b332e,e1 -34b3330,af -34b3331,a2 -34b3333,8 -34b3335,66 -34b3337,18 -34b333a,30 -34b333b,12 -34b333d,6 -34b333e,31 -34b333f,40 -34b3340,30 -34b3341,c6 -34b3342,ff -34b3343,ff -34b3344,af -34b3345,a6 -34b3347,c -34b3348,3c -34b3349,2 -34b334a,f1 -34b334c,af -34b334d,a2 -34b334f,10 -34b3351,3 -34b3352,1a -34b3353,80 -34b3355,6a -34b3357,1a -34b3358,1 -34b3359,40 -34b335a,1 -34b335b,f4 -34b335e,18 -34b335f,12 -34b3360,30 -34b3361,63 -34b3362,ff -34b3363,ff -34b3365,9 -34b3366,4c -34b3369,69 -34b336a,18 -34b336b,25 -34b336c,af -34b336d,a3 -34b336f,14 -34b3370,3 -34b3371,a0 -34b3372,10 -34b3373,25 -34b3374,27 -34b3375,a8 -34b3377,18 -34b3378,8c -34b3379,83 -34b337b,8 -34b337c,24 -34b337d,65 -34b337f,8 -34b3380,ac -34b3381,85 -34b3383,8 -34b3384,8c -34b3385,47 -34b3387,4 -34b3388,8c -34b3389,46 -34b338c,ac -34b338d,67 -34b338f,4 -34b3390,24 -34b3391,42 -34b3393,8 -34b3394,14 -34b3395,48 -34b3396,ff -34b3397,f8 -34b3398,ac -34b3399,66 -34b339c,3 -34b339d,e0 -34b339f,8 -34b33a0,27 -34b33a1,bd -34b33a3,18 -34b33a4,8c -34b33a5,82 -34b33a7,8 -34b33a8,24 -34b33a9,43 -34b33ab,8 -34b33ac,ac -34b33ad,83 -34b33af,8 -34b33b0,3c -34b33b1,3 -34b33b2,e7 -34b33b4,ac -34b33b5,43 -34b33b8,ac -34b33b9,40 -34b33bb,4 -34b33bc,8c -34b33bd,82 -34b33bf,8 -34b33c0,24 -34b33c1,43 -34b33c3,8 -34b33c4,ac -34b33c5,83 -34b33c7,8 -34b33c8,3c -34b33c9,3 -34b33ca,d9 -34b33cc,ac -34b33cd,43 -34b33d0,ac -34b33d1,40 -34b33d3,4 -34b33d4,8c -34b33d5,82 -34b33d7,8 -34b33d8,24 -34b33d9,43 -34b33db,8 -34b33dc,ac -34b33dd,83 -34b33df,8 -34b33e0,3c -34b33e1,3 -34b33e2,ed -34b33e4,ac -34b33e5,43 -34b33e8,3c -34b33e9,5 -34b33eb,50 -34b33ec,24 -34b33ed,a3 -34b33ee,3 -34b33ef,c0 -34b33f0,ac -34b33f1,43 -34b33f3,4 -34b33f4,8c -34b33f5,83 -34b33f7,8 -34b33f8,24 -34b33f9,62 -34b33fb,8 -34b33fc,ac -34b33fd,82 -34b33ff,8 -34b3400,3c -34b3401,2 -34b3402,e3 -34b3404,24 -34b3405,46 -34b3406,1a -34b3407,1 -34b3408,ac -34b3409,66 -34b340c,24 -34b340d,6 -34b340f,30 -34b3410,ac -34b3411,66 -34b3413,4 -34b3414,8c -34b3415,83 -34b3417,8 -34b3418,24 -34b3419,66 -34b341b,8 -34b341c,ac -34b341d,86 -34b341f,8 -34b3420,24 -34b3421,46 -34b3422,18 -34b3423,1 -34b3424,ac -34b3425,66 -34b3428,24 -34b3429,6 -34b342b,c0 -34b342c,ac -34b342d,66 -34b342f,4 -34b3430,8c -34b3431,86 -34b3433,8 -34b3434,24 -34b3435,c3 -34b3437,8 -34b3438,ac -34b3439,83 -34b343b,8 -34b343c,3c -34b343d,3 -34b343e,e2 -34b3440,24 -34b3441,67 -34b3442,1e -34b3443,1 -34b3444,ac -34b3445,c7 -34b3448,ac -34b3449,c0 -34b344b,4 -34b344c,8c -34b344d,86 -34b344f,8 -34b3450,24 -34b3451,c7 -34b3453,8 -34b3454,ac -34b3455,87 -34b3457,8 -34b3458,24 -34b3459,67 -34b345a,1d -34b345c,ac -34b345d,c7 -34b3460,24 -34b3461,7 -34b3463,4 -34b3464,ac -34b3465,c7 -34b3467,4 -34b3468,8c -34b3469,86 -34b346b,8 -34b346c,24 -34b346d,c7 -34b346f,8 -34b3470,ac -34b3471,87 -34b3473,8 -34b3474,24 -34b3475,47 -34b3476,17 -34b3478,ac -34b3479,c7 -34b347c,ac -34b347d,c0 -34b347f,4 -34b3480,8c -34b3481,86 -34b3483,8 -34b3484,24 -34b3485,c7 -34b3487,8 -34b3488,ac -34b3489,87 -34b348b,8 -34b348c,24 -34b348d,47 -34b348e,14 -34b348f,2 -34b3490,ac -34b3491,c7 -34b3494,24 -34b3495,7 -34b3496,c -34b3498,ac -34b3499,c7 -34b349b,4 -34b349c,8c -34b349d,86 -34b349f,8 -34b34a0,24 -34b34a1,c7 -34b34a3,8 -34b34a4,ac -34b34a5,87 -34b34a7,8 -34b34a8,24 -34b34a9,47 -34b34aa,d -34b34ab,1 -34b34ac,ac -34b34ad,c7 -34b34b0,ac -34b34b1,c0 -34b34b3,4 -34b34b4,8c -34b34b5,86 -34b34b7,8 -34b34b8,24 -34b34b9,c7 -34b34bb,8 -34b34bc,ac -34b34bd,87 -34b34bf,8 -34b34c0,24 -34b34c1,47 -34b34c2,c -34b34c4,ac -34b34c5,c7 -34b34c8,ac -34b34c9,c0 -34b34cb,4 -34b34cc,8c -34b34cd,86 -34b34cf,8 -34b34d0,24 -34b34d1,c7 -34b34d3,8 -34b34d4,ac -34b34d5,87 -34b34d7,8 -34b34d8,24 -34b34d9,47 -34b34da,f -34b34dc,ac -34b34dd,c7 -34b34e0,ac -34b34e1,c0 -34b34e3,4 -34b34e4,8c -34b34e5,86 -34b34e7,8 -34b34e8,24 -34b34e9,c7 -34b34eb,8 -34b34ec,ac -34b34ed,87 -34b34ef,8 -34b34f0,24 -34b34f1,47 -34b34f2,10 -34b34f3,1 -34b34f4,ac -34b34f5,c7 -34b34f8,ac -34b34f9,c0 -34b34fb,4 -34b34fc,8c -34b34fd,86 -34b34ff,8 -34b3500,24 -34b3501,c7 -34b3503,8 -34b3504,ac -34b3505,87 -34b3507,8 -34b3508,24 -34b3509,47 -34b350a,8 -34b350c,ac -34b350d,c7 -34b3510,ac -34b3511,c0 -34b3513,4 -34b3514,8c -34b3515,86 -34b3517,8 -34b3518,24 -34b3519,c7 -34b351b,8 -34b351c,ac -34b351d,87 -34b351f,8 -34b3520,24 -34b3521,47 -34b3522,a -34b3523,1 -34b3524,ac -34b3525,c7 -34b3528,ac -34b3529,c0 -34b352b,4 -34b352c,8c -34b352d,86 -34b352f,8 -34b3530,24 -34b3531,c7 -34b3533,8 -34b3534,ac -34b3535,87 -34b3537,8 -34b3538,24 -34b3539,63 -34b353b,1c -34b353c,ac -34b353d,c3 -34b3540,24 -34b3541,a5 -34b3542,42 -34b3543,40 -34b3544,ac -34b3545,c5 -34b3547,4 -34b3548,8c -34b3549,83 -34b354b,8 -34b354c,24 -34b354d,65 -34b354f,8 -34b3550,ac -34b3551,85 -34b3553,8 -34b3554,24 -34b3555,42 -34b3556,12 -34b3557,1 -34b3558,ac -34b3559,62 -34b355c,24 -34b355d,2 -34b355e,20 -34b3560,ac -34b3561,62 -34b3563,4 -34b3564,8c -34b3565,82 -34b3567,8 -34b3568,24 -34b3569,43 -34b356b,8 -34b356c,ac -34b356d,83 -34b356f,8 -34b3570,3c -34b3571,3 -34b3572,df -34b3574,ac -34b3575,43 -34b3578,3 -34b3579,e0 -34b357b,8 -34b357c,ac -34b357d,40 -34b357f,4 -34b3580,27 -34b3581,bd -34b3582,ff -34b3583,c8 -34b3584,af -34b3585,bf -34b3587,34 -34b3588,af -34b3589,b1 -34b358b,30 -34b358c,af -34b358d,b0 -34b358f,2c -34b3590,af -34b3591,a0 -34b3593,10 -34b3594,3c -34b3595,2 -34b3596,1 -34b3597,a0 -34b3598,24 -34b3599,42 -34b359a,20 -34b359c,af -34b359d,a2 -34b359f,14 -34b35a0,3c -34b35a1,10 -34b35a3,3 -34b35a4,36 -34b35a5,2 -34b35a6,95 -34b35a7,c0 -34b35a8,af -34b35a9,a2 -34b35ab,18 -34b35ac,c -34b35ad,10 -34b35ae,15 -34b35af,c4 -34b35b0,27 -34b35b1,a4 -34b35b3,10 -34b35b4,af -34b35b5,a0 -34b35b7,1c -34b35b8,3c -34b35b9,2 -34b35bb,84 -34b35bc,24 -34b35bd,42 -34b35be,60 -34b35c0,af -34b35c1,a2 -34b35c3,20 -34b35c4,34 -34b35c5,2 -34b35c6,b4 -34b35c8,af -34b35c9,a2 -34b35cb,24 -34b35cc,c -34b35cd,10 -34b35ce,15 -34b35cf,c4 -34b35d0,27 -34b35d1,a4 -34b35d3,1c -34b35d4,8f -34b35d5,a2 -34b35d7,10 -34b35d8,26 -34b35d9,10 -34b35da,a3 -34b35dd,50 -34b35de,80 -34b35df,21 -34b35e0,3c -34b35e1,3 -34b35e2,80 -34b35e3,40 -34b35e4,ac -34b35e5,70 -34b35e6,63 -34b35e7,f8 -34b35e8,24 -34b35e9,42 -34b35ea,29 -34b35eb,80 -34b35ec,3c -34b35ed,3 -34b35ee,80 -34b35ef,40 -34b35f0,ac -34b35f1,62 -34b35f2,63 -34b35f3,e8 -34b35f4,3c -34b35f5,2 -34b35f6,80 -34b35f7,40 -34b35f8,8f -34b35f9,a3 -34b35fb,1c -34b35fc,ac -34b35fd,43 -34b35fe,63 -34b35ff,d8 -34b3600,3c -34b3601,11 -34b3602,80 -34b3603,40 -34b3604,c -34b3605,10 -34b3606,14 -34b3607,10 -34b3608,26 -34b3609,24 -34b360a,63 -34b360b,c8 -34b360d,40 -34b360e,80 -34b360f,25 -34b3610,c -34b3611,10 -34b3612,15 -34b3613,b7 -34b3615,40 -34b3616,20 -34b3617,25 -34b3619,10 -34b361a,4f -34b361b,c2 -34b361c,1 -34b361d,30 -34b361e,48 -34b361f,21 -34b3620,2a -34b3621,10 -34b3623,2 -34b3624,16 -34b3627,18 -34b3628,ae -34b3629,22 -34b362a,63 -34b362b,c8 -34b362d,9 -34b362e,48 -34b362f,43 -34b3630,3c -34b3631,3 -34b3632,80 -34b3633,40 -34b3634,24 -34b3635,63 -34b3636,65 -34b3637,6 -34b363a,20 -34b363b,25 -34b363e,30 -34b363f,25 -34b3640,2 -34b3641,20 -34b3642,40 -34b3643,25 -34b3644,24 -34b3645,7 -34b3646,ff -34b3647,f0 -34b3648,8d -34b3649,5 -34b364a,63 -34b364b,c8 -34b364d,a4 -34b364e,28 -34b364f,21 -34b3650,90 -34b3651,62 -34b3655,2 -34b3656,11 -34b3657,2 -34b3659,47 -34b365a,10 -34b365b,25 -34b365c,a0 -34b365d,a2 -34b3660,8d -34b3661,2 -34b3662,63 -34b3663,c8 -34b3665,44 -34b3666,10 -34b3667,21 -34b3668,90 -34b3669,65 -34b366d,a7 -34b366e,28 -34b366f,25 -34b3670,a0 -34b3671,45 -34b3673,1 -34b3674,24 -34b3675,c6 -34b3677,1 -34b3678,24 -34b3679,63 -34b367b,1 -34b367d,c9 -34b367e,10 -34b367f,2a -34b3680,14 -34b3681,40 -34b3682,ff -34b3683,f1 -34b3684,24 -34b3685,84 -34b3687,2 -34b3688,c -34b3689,10 -34b368a,15 -34b368b,b7 -34b368c,24 -34b368d,4 -34b368e,1 -34b3690,3c -34b3691,4 -34b3692,80 -34b3693,40 -34b3694,24 -34b3695,3 -34b3696,1 -34b3698,ac -34b3699,83 -34b369a,64 -34b369b,e8 -34b369c,24 -34b369d,84 -34b369e,64 -34b369f,e8 -34b36a0,ac -34b36a1,82 -34b36a3,4 -34b36a4,ac -34b36a5,82 -34b36a7,8 -34b36a8,24 -34b36a9,42 -34b36aa,1 -34b36ac,c -34b36ad,10 -34b36ae,14 -34b36af,e9 -34b36b0,ac -34b36b1,82 -34b36b3,c -34b36b4,8f -34b36b5,bf -34b36b7,34 -34b36b8,8f -34b36b9,b1 -34b36bb,30 -34b36bc,8f -34b36bd,b0 -34b36bf,2c -34b36c0,3 -34b36c1,e0 -34b36c3,8 -34b36c4,27 -34b36c5,bd -34b36c7,38 -34b36c8,3c -34b36c9,3 -34b36ca,80 -34b36cb,40 -34b36cc,3c -34b36cd,2 -34b36ce,80 -34b36cf,50 -34b36d0,24 -34b36d1,42 -34b36d4,3 -34b36d5,e0 -34b36d7,8 -34b36d8,ac -34b36d9,62 -34b36da,64 -34b36db,d0 -34b36dd,4 -34b36de,17 -34b36df,c3 -34b36e1,2 -34b36e2,1f -34b36e3,2 -34b36e5,83 -34b36e6,10 -34b36e7,21 -34b36e8,30 -34b36e9,42 -34b36eb,f -34b36ed,43 -34b36ee,10 -34b36ef,23 -34b36f0,10 -34b36f1,40 -34b36f3,3 -34b36f4,3c -34b36f5,3 -34b36f6,80 -34b36f7,40 -34b36f9,82 -34b36fa,20 -34b36fb,23 -34b36fc,24 -34b36fd,84 -34b36ff,10 -34b3700,8c -34b3701,62 -34b3702,64 -34b3703,d0 -34b3705,44 -34b3706,20 -34b3707,21 -34b3708,3 -34b3709,e0 -34b370b,8 -34b370c,ac -34b370d,64 -34b370e,64 -34b370f,d0 -34b3710,27 -34b3711,bd -34b3712,ff -34b3713,e8 -34b3714,af -34b3715,bf -34b3717,14 -34b3718,af -34b3719,b0 -34b371b,10 -34b371d,80 -34b371e,80 -34b371f,25 -34b3720,c -34b3721,10 -34b3722,15 -34b3723,b7 -34b3724,8c -34b3725,84 -34b3727,8 -34b3728,ae -34b3729,2 -34b372c,8e -34b372d,6 -34b372f,8 -34b3731,40 -34b3732,20 -34b3733,25 -34b3734,3c -34b3735,2 -34b3736,80 -34b3738,24 -34b3739,42 -34b373a,d -34b373b,f0 -34b373d,40 -34b373e,f8 -34b373f,9 -34b3740,8e -34b3741,5 -34b3743,4 -34b3744,8f -34b3745,bf -34b3747,14 -34b3748,8f -34b3749,b0 -34b374b,10 -34b374c,3 -34b374d,e0 -34b374f,8 -34b3750,27 -34b3751,bd -34b3753,18 -34b3754,27 -34b3755,bd -34b3756,ff -34b3757,e8 -34b3758,af -34b3759,bf -34b375b,14 -34b375c,c -34b375d,10 -34b375e,15 -34b375f,b2 -34b3764,c -34b3765,10 -34b3766,15 -34b3767,60 -34b376c,c -34b376d,10 -34b376e,18 -34b376f,68 -34b3774,8f -34b3775,bf -34b3777,14 -34b3778,3 -34b3779,e0 -34b377b,8 -34b377c,27 -34b377d,bd -34b377f,18 -34b3780,27 -34b3781,bd -34b3782,ff -34b3783,e0 -34b3784,af -34b3785,bf -34b3787,1c -34b3788,af -34b3789,b2 -34b378b,18 -34b378c,af -34b378d,b1 -34b378f,14 -34b3790,af -34b3791,b0 -34b3793,10 -34b3795,80 -34b3796,80 -34b3797,25 -34b3799,a0 -34b379a,88 -34b379b,25 -34b379c,3c -34b379d,2 -34b379e,80 -34b379f,1c -34b37a0,34 -34b37a1,42 -34b37a2,84 -34b37a3,a0 -34b37a4,3c -34b37a5,3 -34b37a7,1 -34b37a9,43 -34b37aa,10 -34b37ab,21 -34b37ac,94 -34b37ad,43 -34b37ae,9 -34b37af,34 -34b37b0,24 -34b37b1,2 -34b37b3,6 -34b37b4,14 -34b37b5,62 -34b37b7,15 -34b37b9,c0 -34b37ba,90 -34b37bb,25 -34b37bc,3c -34b37bd,2 -34b37be,80 -34b37bf,1c -34b37c0,34 -34b37c1,42 -34b37c2,84 -34b37c3,a0 -34b37c4,3c -34b37c5,3 -34b37c7,1 -34b37c9,43 -34b37ca,10 -34b37cb,21 -34b37cc,94 -34b37cd,42 -34b37ce,9 -34b37cf,48 -34b37d0,14 -34b37d1,40 -34b37d3,f -34b37d4,2 -34b37d5,40 -34b37d6,30 -34b37d7,25 -34b37d8,3c -34b37d9,2 -34b37da,80 -34b37db,1c -34b37dc,34 -34b37dd,42 -34b37de,84 -34b37df,a0 -34b37e1,43 -34b37e2,10 -34b37e3,21 -34b37e4,94 -34b37e5,42 -34b37e6,9 -34b37e7,44 -34b37e8,14 -34b37e9,40 -34b37eb,a -34b37ec,2 -34b37ed,20 -34b37ee,28 -34b37ef,25 -34b37f0,3c -34b37f1,2 -34b37f2,80 -34b37f3,1c -34b37f4,34 -34b37f5,42 -34b37f6,84 -34b37f7,a0 -34b37f8,84 -34b37f9,42 -34b37fb,14 -34b37fc,4 -34b37fd,41 -34b37ff,5 -34b3804,c -34b3805,10 -34b3806,16 -34b3807,d -34b380c,2 -34b380d,40 -34b380e,30 -34b380f,25 -34b3810,2 -34b3811,20 -34b3812,28 -34b3813,25 -34b3814,c -34b3815,10 -34b3816,14 -34b3818,2 -34b381a,20 -34b381b,25 -34b381c,8f -34b381d,bf -34b381f,1c -34b3820,8f -34b3821,b2 -34b3823,18 -34b3824,8f -34b3825,b1 -34b3827,14 -34b3828,8f -34b3829,b0 -34b382b,10 -34b382c,3 -34b382d,e0 -34b382f,8 -34b3830,27 -34b3831,bd -34b3833,20 -34b3834,3c -34b3835,2 -34b3836,80 -34b3837,40 -34b3838,8c -34b3839,42 -34b383a,64 -34b383b,c8 -34b383c,10 -34b383d,40 -34b383e,2 -34b383f,56 -34b3840,3c -34b3841,3 -34b3842,80 -34b3843,40 -34b3844,27 -34b3845,bd -34b3846,ff -34b3847,98 -34b3848,af -34b3849,bf -34b384b,64 -34b384c,af -34b384d,be -34b384f,60 -34b3850,af -34b3851,b7 -34b3853,5c -34b3854,af -34b3855,b6 -34b3857,58 -34b3858,af -34b3859,b5 -34b385b,54 -34b385c,af -34b385d,b4 -34b385f,50 -34b3860,af -34b3861,b3 -34b3863,4c -34b3864,af -34b3865,b2 -34b3867,48 -34b3868,af -34b3869,b1 -34b386b,44 -34b386c,af -34b386d,b0 -34b386f,40 -34b3870,8c -34b3871,82 -34b3873,4 -34b3874,8c -34b3875,63 -34b3876,64 -34b3877,ec -34b3878,24 -34b3879,45 -34b387b,8 -34b387c,ac -34b387d,85 -34b387f,8 -34b3880,3c -34b3881,5 -34b3882,de -34b3884,ac -34b3885,45 -34b3888,ac -34b3889,43 -34b388b,4 -34b388c,3c -34b388d,2 -34b388e,80 -34b388f,40 -34b3890,8c -34b3891,42 -34b3892,64 -34b3893,dc -34b3894,10 -34b3895,40 -34b3897,7 -34b389a,18 -34b389b,25 -34b389c,3c -34b389d,2 -34b389e,80 -34b389f,40 -34b38a0,94 -34b38a1,43 -34b38a2,63 -34b38a3,cc -34b38a5,3 -34b38a6,10 -34b38a7,40 -34b38a9,43 -34b38aa,10 -34b38ab,21 -34b38ad,2 -34b38ae,10 -34b38af,40 -34b38b0,24 -34b38b1,43 -34b38b3,2 -34b38b4,3c -34b38b5,2 -34b38b6,80 -34b38b7,40 -34b38b8,94 -34b38b9,42 -34b38ba,63 -34b38bb,cc -34b38bd,2 -34b38be,10 -34b38bf,c0 -34b38c0,24 -34b38c1,42 -34b38c3,5e -34b38c5,43 -34b38c6,10 -34b38c7,21 -34b38c8,24 -34b38c9,13 -34b38ca,1 -34b38cb,40 -34b38cc,2 -34b38cd,62 -34b38ce,98 -34b38cf,23 -34b38d1,13 -34b38d2,98 -34b38d3,43 -34b38d4,26 -34b38d5,77 -34b38d7,2 -34b38d8,8c -34b38d9,83 -34b38db,8 -34b38dc,24 -34b38dd,65 -34b38df,8 -34b38e0,ac -34b38e1,85 -34b38e3,8 -34b38e4,3c -34b38e5,5 -34b38e6,fc -34b38e7,ff -34b38e8,34 -34b38e9,a5 -34b38ea,ff -34b38eb,ff -34b38ec,ac -34b38ed,65 -34b38f0,3c -34b38f1,5 -34b38f2,ff -34b38f3,fd -34b38f4,34 -34b38f5,a5 -34b38f6,f6 -34b38f7,fb -34b38f8,ac -34b38f9,65 -34b38fb,4 -34b38fc,8c -34b38fd,83 -34b38ff,8 -34b3900,24 -34b3901,65 -34b3903,8 -34b3904,ac -34b3905,85 -34b3907,8 -34b3908,3c -34b3909,5 -34b390a,fa -34b390c,ac -34b390d,65 -34b3910,24 -34b3911,5 -34b3913,d0 -34b3914,ac -34b3915,65 -34b3917,4 -34b3919,53 -34b391a,10 -34b391b,21 -34b391d,2 -34b391e,13 -34b391f,80 -34b3920,3c -34b3921,3 -34b3923,ff -34b3924,34 -34b3925,63 -34b3926,f0 -34b3929,43 -34b392a,10 -34b392b,24 -34b392c,3c -34b392d,5 -34b392e,e4 -34b3930,24 -34b3931,a5 -34b3932,3 -34b3933,b8 -34b3935,45 -34b3936,10 -34b3937,25 -34b3938,af -34b3939,a2 -34b393b,20 -34b393d,13 -34b393e,13 -34b393f,80 -34b3941,43 -34b3942,10 -34b3943,24 -34b3944,34 -34b3945,42 -34b3947,8 -34b3948,af -34b3949,a2 -34b394b,24 -34b394c,3c -34b394d,2 -34b394e,e1 -34b3950,af -34b3951,a2 -34b3953,28 -34b3954,af -34b3955,a0 -34b3957,2c -34b3958,3c -34b3959,2 -34b395a,f1 -34b395c,af -34b395d,a2 -34b395f,30 -34b3960,3c -34b3961,2 -34b3962,4 -34b3964,24 -34b3965,42 -34b3966,4 -34b3968,af -34b3969,a2 -34b396b,34 -34b396c,27 -34b396d,a2 -34b396f,20 -34b3970,27 -34b3971,a8 -34b3973,38 -34b3974,8c -34b3975,83 -34b3977,8 -34b3978,24 -34b3979,65 -34b397b,8 -34b397c,ac -34b397d,85 -34b397f,8 -34b3980,8c -34b3981,47 -34b3983,4 -34b3984,8c -34b3985,46 -34b3988,ac -34b3989,67 -34b398b,4 -34b398c,24 -34b398d,42 -34b398f,8 -34b3990,15 -34b3991,2 -34b3992,ff -34b3993,f8 -34b3994,ac -34b3995,66 -34b3999,80 -34b399a,80 -34b399b,25 -34b399c,8c -34b399d,82 -34b399f,8 -34b39a0,24 -34b39a1,43 -34b39a3,8 -34b39a4,ac -34b39a5,83 -34b39a7,8 -34b39a8,3c -34b39a9,3 -34b39aa,e7 -34b39ac,ac -34b39ad,43 -34b39b0,ac -34b39b1,40 -34b39b3,4 -34b39b4,8c -34b39b5,82 -34b39b7,8 -34b39b8,24 -34b39b9,43 -34b39bb,8 -34b39bc,ac -34b39bd,83 -34b39bf,8 -34b39c0,3c -34b39c1,3 -34b39c2,fc -34b39c3,11 -34b39c4,34 -34b39c5,63 -34b39c6,96 -34b39c7,23 -34b39c8,ac -34b39c9,43 -34b39cc,3c -34b39cd,3 -34b39ce,ff -34b39cf,2f -34b39d0,34 -34b39d1,63 -34b39d2,ff -34b39d3,ff -34b39d4,ac -34b39d5,43 -34b39d7,4 -34b39d8,3c -34b39d9,5 -34b39da,80 -34b39db,40 -34b39dc,24 -34b39dd,a5 -34b39de,63 -34b39df,e8 -34b39e0,94 -34b39e1,a7 -34b39e3,8 -34b39e4,c -34b39e5,10 -34b39e6,14 -34b39e7,1c -34b39ea,30 -34b39eb,25 -34b39ec,3c -34b39ed,2 -34b39ee,80 -34b39ef,40 -34b39f0,8c -34b39f1,42 -34b39f2,64 -34b39f3,cc -34b39f4,18 -34b39f5,40 -34b39f7,42 -34b39f8,3c -34b39f9,2 -34b39fa,80 -34b39fb,40 -34b39fc,3c -34b39fd,12 -34b39fe,80 -34b39ff,40 -34b3a00,26 -34b3a01,52 -34b3a02,64 -34b3a03,2c -34b3a06,88 -34b3a07,25 -34b3a08,3c -34b3a09,16 -34b3a0a,80 -34b3a0b,40 -34b3a0c,3c -34b3a0d,14 -34b3a0e,80 -34b3a0f,40 -34b3a10,26 -34b3a11,94 -34b3a12,64 -34b3a13,8 -34b3a14,3c -34b3a15,1e -34b3a16,80 -34b3a17,40 -34b3a18,27 -34b3a19,de -34b3a1a,64 -34b3a1b,18 -34b3a1c,24 -34b3a1d,42 -34b3a1e,63 -34b3a1f,e8 -34b3a20,af -34b3a21,a2 -34b3a23,38 -34b3a24,3c -34b3a25,15 -34b3a26,80 -34b3a27,40 -34b3a28,8e -34b3a29,c2 -34b3a2a,64 -34b3a2b,d4 -34b3a2c,50 -34b3a2d,40 -34b3a2f,b -34b3a30,92 -34b3a31,42 -34b3a34,92 -34b3a35,43 -34b3a38,3c -34b3a39,2 -34b3a3a,80 -34b3a3b,11 -34b3a3c,34 -34b3a3d,42 -34b3a3e,a5 -34b3a3f,d0 -34b3a41,43 -34b3a42,10 -34b3a43,21 -34b3a44,90 -34b3a45,42 -34b3a47,a8 -34b3a49,2 -34b3a4a,10 -34b3a4b,42 -34b3a4c,30 -34b3a4d,42 -34b3a4f,1 -34b3a50,50 -34b3a51,40 -34b3a53,27 -34b3a54,26 -34b3a55,31 -34b3a57,1 -34b3a58,92 -34b3a59,42 -34b3a5d,54 -34b3a5e,10 -34b3a5f,21 -34b3a60,80 -34b3a61,46 -34b3a64,28 -34b3a65,c2 -34b3a67,3 -34b3a68,54 -34b3a69,40 -34b3a6b,21 -34b3a6c,26 -34b3a6d,31 -34b3a6f,1 -34b3a70,24 -34b3a71,c6 -34b3a72,ff -34b3a73,fd -34b3a75,6 -34b3a76,18 -34b3a77,40 -34b3a79,66 -34b3a7a,18 -34b3a7b,21 -34b3a7d,7e -34b3a7e,18 -34b3a7f,21 -34b3a80,90 -34b3a81,62 -34b3a85,2 -34b3a86,16 -34b3a88,90 -34b3a89,64 -34b3a8b,2 -34b3a8d,4 -34b3a8e,22 -34b3a91,44 -34b3a92,10 -34b3a93,25 -34b3a94,90 -34b3a95,63 -34b3a97,1 -34b3a99,3 -34b3a9a,1c -34b3a9d,43 -34b3a9e,10 -34b3a9f,25 -34b3aa0,34 -34b3aa1,42 -34b3aa3,ff -34b3aa4,8e -34b3aa5,3 -34b3aa7,8 -34b3aa8,24 -34b3aa9,64 -34b3aab,8 -34b3aac,ae -34b3aad,4 -34b3aaf,8 -34b3ab0,3c -34b3ab1,4 -34b3ab2,fa -34b3ab4,ac -34b3ab5,64 -34b3ab8,ac -34b3ab9,62 -34b3abb,4 -34b3abc,24 -34b3abd,2 -34b3abf,10 -34b3ac0,af -34b3ac1,a2 -34b3ac3,18 -34b3ac4,af -34b3ac5,a2 -34b3ac7,14 -34b3ac9,11 -34b3aca,10 -34b3acb,c0 -34b3acd,51 -34b3ace,10 -34b3acf,21 -34b3ad1,2 -34b3ad2,10 -34b3ad3,40 -34b3ad4,24 -34b3ad5,42 -34b3ad7,4 -34b3ad8,af -34b3ad9,a2 -34b3adb,10 -34b3adc,2 -34b3add,e0 -34b3ade,38 -34b3adf,25 -34b3ae0,8f -34b3ae1,a5 -34b3ae3,38 -34b3ae4,c -34b3ae5,10 -34b3ae6,14 -34b3ae7,af -34b3ae8,2 -34b3aea,20 -34b3aeb,25 -34b3aec,26 -34b3aed,31 -34b3aef,1 -34b3af0,8e -34b3af1,a2 -34b3af2,64 -34b3af3,cc -34b3af4,2 -34b3af5,22 -34b3af6,10 -34b3af7,2a -34b3af8,14 -34b3af9,40 -34b3afa,ff -34b3afb,cb -34b3afc,26 -34b3afd,52 -34b3aff,c -34b3b00,8e -34b3b01,2 -34b3b03,8 -34b3b04,24 -34b3b05,43 -34b3b07,8 -34b3b08,ae -34b3b09,3 -34b3b0b,8 -34b3b0c,3c -34b3b0d,3 -34b3b0e,fa -34b3b10,ac -34b3b11,43 -34b3b14,24 -34b3b15,3 -34b3b16,ff -34b3b17,ff -34b3b18,ac -34b3b19,43 -34b3b1b,4 -34b3b1c,3c -34b3b1d,5 -34b3b1e,80 -34b3b1f,40 -34b3b20,24 -34b3b21,a5 -34b3b22,63 -34b3b23,f8 -34b3b24,94 -34b3b25,a7 -34b3b27,8 -34b3b2a,30 -34b3b2b,25 -34b3b2c,c -34b3b2d,10 -34b3b2e,14 -34b3b2f,1c -34b3b30,2 -34b3b32,20 -34b3b33,25 -34b3b34,3c -34b3b35,2 -34b3b36,80 -34b3b37,40 -34b3b38,8c -34b3b39,42 -34b3b3a,64 -34b3b3b,cc -34b3b3c,18 -34b3b3d,40 -34b3b3e,1 -34b3b3f,94 -34b3b40,3c -34b3b41,2 -34b3b42,80 -34b3b43,40 -34b3b44,3c -34b3b45,12 -34b3b46,80 -34b3b47,40 -34b3b48,26 -34b3b49,52 -34b3b4a,64 -34b3b4b,2c -34b3b4e,88 -34b3b4f,25 -34b3b50,3c -34b3b51,16 -34b3b52,80 -34b3b53,40 -34b3b54,3c -34b3b55,14 -34b3b56,80 -34b3b57,40 -34b3b58,26 -34b3b59,94 -34b3b5a,64 -34b3b5b,8 -34b3b5c,24 -34b3b5d,42 -34b3b5e,63 -34b3b5f,f8 -34b3b60,af -34b3b61,a2 -34b3b63,38 -34b3b64,3c -34b3b65,1e -34b3b66,80 -34b3b67,11 -34b3b68,37 -34b3b69,de -34b3b6a,a5 -34b3b6b,d0 -34b3b6c,3c -34b3b6d,15 -34b3b6e,80 -34b3b6f,40 -34b3b70,8e -34b3b71,c2 -34b3b72,64 -34b3b73,d4 -34b3b74,10 -34b3b75,40 -34b3b77,8 -34b3b78,92 -34b3b79,42 -34b3b7c,3 -34b3b7d,c2 -34b3b7e,10 -34b3b7f,21 -34b3b80,90 -34b3b81,42 -34b3b83,a8 -34b3b85,2 -34b3b86,10 -34b3b87,42 -34b3b88,30 -34b3b89,42 -34b3b8b,1 -34b3b8c,50 -34b3b8d,40 -34b3b8f,14 -34b3b90,26 -34b3b91,31 -34b3b93,1 -34b3b94,92 -34b3b95,42 -34b3b99,54 -34b3b9a,10 -34b3b9b,21 -34b3b9c,80 -34b3b9d,46 -34b3ba0,2c -34b3ba1,c2 -34b3ba3,3 -34b3ba4,50 -34b3ba5,40 -34b3ba7,e -34b3ba8,26 -34b3ba9,31 -34b3bab,1 -34b3bac,24 -34b3bad,2 -34b3baf,10 -34b3bb0,af -34b3bb1,a2 -34b3bb3,18 -34b3bb4,af -34b3bb5,a2 -34b3bb7,14 -34b3bb9,11 -34b3bba,10 -34b3bbb,c0 -34b3bbd,51 -34b3bbe,10 -34b3bbf,21 -34b3bc1,2 -34b3bc2,10 -34b3bc3,40 -34b3bc4,24 -34b3bc5,42 -34b3bc7,4 -34b3bc8,af -34b3bc9,a2 -34b3bcb,10 -34b3bcc,2 -34b3bcd,e0 -34b3bce,38 -34b3bcf,25 -34b3bd0,8f -34b3bd1,a5 -34b3bd3,38 -34b3bd4,c -34b3bd5,10 -34b3bd6,14 -34b3bd7,af -34b3bd8,2 -34b3bda,20 -34b3bdb,25 -34b3bdc,26 -34b3bdd,31 -34b3bdf,1 -34b3be0,8e -34b3be1,a2 -34b3be2,64 -34b3be3,cc -34b3be4,2 -34b3be5,22 -34b3be6,18 -34b3be7,2a -34b3be8,14 -34b3be9,60 -34b3bea,ff -34b3beb,e1 -34b3bec,26 -34b3bed,52 -34b3bef,c -34b3bf0,18 -34b3bf1,40 -34b3bf3,10 -34b3bf4,26 -34b3bf5,73 -34b3bf7,14 -34b3bf8,3c -34b3bf9,11 -34b3bfa,80 -34b3bfb,40 -34b3bfc,26 -34b3bfd,31 -34b3bfe,64 -34b3bff,2e -34b3c00,24 -34b3c01,14 -34b3c03,5 -34b3c06,90 -34b3c07,25 -34b3c08,3c -34b3c09,15 -34b3c0a,80 -34b3c0b,40 -34b3c0c,2 -34b3c0d,80 -34b3c0e,30 -34b3c0f,25 -34b3c10,2 -34b3c11,60 -34b3c12,28 -34b3c13,25 -34b3c14,c -34b3c15,10 -34b3c16,18 -34b3c17,73 -34b3c18,2 -34b3c19,20 -34b3c1a,20 -34b3c1b,25 -34b3c1c,26 -34b3c1d,52 -34b3c1f,1 -34b3c20,26 -34b3c21,31 -34b3c23,c -34b3c24,8e -34b3c25,a2 -34b3c26,64 -34b3c27,cc -34b3c28,2 -34b3c29,42 -34b3c2a,10 -34b3c2b,2a -34b3c2c,14 -34b3c2d,40 -34b3c2e,ff -34b3c2f,f7 -34b3c30,26 -34b3c31,94 -34b3c33,12 -34b3c34,3c -34b3c35,2 -34b3c36,80 -34b3c37,40 -34b3c38,94 -34b3c39,42 -34b3c3a,63 -34b3c3b,cc -34b3c3d,2 -34b3c3e,10 -34b3c3f,c0 -34b3c40,24 -34b3c41,42 -34b3c43,2 -34b3c45,53 -34b3c46,98 -34b3c47,21 -34b3c48,24 -34b3c49,7 -34b3c4b,1 -34b3c4c,24 -34b3c4d,6 -34b3c4f,11 -34b3c50,3c -34b3c51,5 -34b3c52,80 -34b3c53,40 -34b3c54,24 -34b3c55,a5 -34b3c56,63 -34b3c57,d8 -34b3c58,c -34b3c59,10 -34b3c5a,14 -34b3c5b,1c -34b3c5c,2 -34b3c5e,20 -34b3c5f,25 -34b3c60,3c -34b3c61,2 -34b3c62,80 -34b3c63,40 -34b3c64,8c -34b3c65,42 -34b3c66,64 -34b3c67,cc -34b3c68,18 -34b3c69,40 -34b3c6b,2a -34b3c6c,3c -34b3c6d,17 -34b3c6e,80 -34b3c6f,11 -34b3c70,3c -34b3c71,12 -34b3c72,80 -34b3c73,40 -34b3c74,26 -34b3c75,52 -34b3c76,64 -34b3c77,2c -34b3c78,24 -34b3c79,14 -34b3c7b,5 -34b3c7e,88 -34b3c7f,25 -34b3c80,2 -34b3c81,40 -34b3c82,a8 -34b3c83,25 -34b3c84,36 -34b3c85,f7 -34b3c86,a5 -34b3c87,d0 -34b3c88,3c -34b3c89,16 -34b3c8a,80 -34b3c8b,40 -34b3c8d,11 -34b3c8e,10 -34b3c8f,40 -34b3c91,51 -34b3c92,10 -34b3c93,21 -34b3c95,2 -34b3c96,10 -34b3c97,80 -34b3c99,55 -34b3c9a,10 -34b3c9b,21 -34b3c9c,80 -34b3c9d,42 -34b3c9f,1 -34b3ca0,4 -34b3ca1,43 -34b3ca3,17 -34b3ca4,26 -34b3ca5,31 -34b3ca7,1 -34b3ca8,92 -34b3ca9,42 -34b3cac,2 -34b3cad,e2 -34b3cae,10 -34b3caf,21 -34b3cb0,90 -34b3cb1,42 -34b3cb3,bc -34b3cb5,2 -34b3cb6,1e -34b3cb9,3 -34b3cba,1e -34b3cbb,3 -34b3cbc,28 -34b3cbd,63 -34b3cbf,a -34b3cc0,50 -34b3cc1,60 -34b3cc3,1 -34b3cc4,24 -34b3cc5,2 -34b3cc7,9 -34b3cc8,24 -34b3cc9,3 -34b3cca,30 -34b3ccc,a7 -34b3ccd,a3 -34b3ccf,20 -34b3cd1,40 -34b3cd2,18 -34b3cd3,25 -34b3cd5,2 -34b3cd6,16 -34b3cd9,2 -34b3cda,16 -34b3cdb,3 -34b3cdc,4 -34b3cdd,42 -34b3cdf,1 -34b3ce2,18 -34b3ce3,25 -34b3ce4,24 -34b3ce5,63 -34b3ce7,30 -34b3ce8,a3 -34b3ce9,a3 -34b3ceb,20 -34b3cec,2 -34b3ced,80 -34b3cee,30 -34b3cef,25 -34b3cf0,2 -34b3cf1,60 -34b3cf2,28 -34b3cf3,25 -34b3cf4,c -34b3cf5,10 -34b3cf6,18 -34b3cf7,73 -34b3cf8,27 -34b3cf9,a4 -34b3cfb,20 -34b3cfc,26 -34b3cfd,31 -34b3cff,1 -34b3d00,26 -34b3d01,52 -34b3d03,c -34b3d04,8e -34b3d05,c2 -34b3d06,64 -34b3d07,cc -34b3d08,2 -34b3d09,22 -34b3d0a,10 -34b3d0b,2a -34b3d0c,14 -34b3d0d,40 -34b3d0e,ff -34b3d0f,df -34b3d10,26 -34b3d11,94 -34b3d13,12 -34b3d14,26 -34b3d15,77 -34b3d17,12 -34b3d18,24 -34b3d19,7 -34b3d1b,1 -34b3d1c,24 -34b3d1d,6 -34b3d1f,e -34b3d20,3c -34b3d21,5 -34b3d22,80 -34b3d23,40 -34b3d24,24 -34b3d25,a5 -34b3d26,63 -34b3d27,d8 -34b3d28,c -34b3d29,10 -34b3d2a,14 -34b3d2b,1c -34b3d2c,2 -34b3d2e,20 -34b3d2f,25 -34b3d30,3c -34b3d31,2 -34b3d32,80 -34b3d33,40 -34b3d34,8c -34b3d35,42 -34b3d36,64 -34b3d37,cc -34b3d38,58 -34b3d39,40 -34b3d3b,2b -34b3d3c,24 -34b3d3d,7 -34b3d3f,1 -34b3d40,3c -34b3d41,12 -34b3d42,80 -34b3d43,40 -34b3d44,26 -34b3d45,52 -34b3d46,64 -34b3d47,2c -34b3d4a,88 -34b3d4b,25 -34b3d4c,2 -34b3d4d,40 -34b3d4e,a0 -34b3d4f,25 -34b3d50,3c -34b3d51,16 -34b3d52,80 -34b3d53,11 -34b3d54,3c -34b3d55,1e -34b3d56,80 -34b3d57,40 -34b3d58,27 -34b3d59,de -34b3d5a,63 -34b3d5b,d8 -34b3d5c,3c -34b3d5d,15 -34b3d5e,80 -34b3d5f,40 -34b3d61,11 -34b3d62,10 -34b3d63,40 -34b3d65,51 -34b3d66,10 -34b3d67,21 -34b3d69,2 -34b3d6a,10 -34b3d6b,80 -34b3d6d,54 -34b3d6e,10 -34b3d6f,21 -34b3d70,90 -34b3d71,42 -34b3d73,1 -34b3d74,30 -34b3d75,42 -34b3d77,40 -34b3d78,50 -34b3d79,40 -34b3d7b,16 -34b3d7c,26 -34b3d7d,31 -34b3d7f,1 -34b3d80,36 -34b3d81,c2 -34b3d82,a5 -34b3d83,d0 -34b3d84,92 -34b3d85,43 -34b3d89,43 -34b3d8a,10 -34b3d8b,21 -34b3d8c,90 -34b3d8d,42 -34b3d8f,a8 -34b3d90,30 -34b3d91,42 -34b3d93,1 -34b3d94,50 -34b3d95,40 -34b3d97,f -34b3d98,26 -34b3d99,31 -34b3d9b,1 -34b3d9c,24 -34b3d9d,2 -34b3d9f,10 -34b3da0,af -34b3da1,a2 -34b3da3,18 -34b3da4,af -34b3da5,a2 -34b3da7,14 -34b3da9,11 -34b3daa,10 -34b3dab,c0 -34b3dad,51 -34b3dae,10 -34b3daf,21 -34b3db1,2 -34b3db2,10 -34b3db3,40 -34b3db4,24 -34b3db5,42 -34b3db7,4 -34b3db8,af -34b3db9,a2 -34b3dbb,10 -34b3dbc,2 -34b3dbd,e0 -34b3dbe,38 -34b3dbf,25 -34b3dc2,30 -34b3dc3,25 -34b3dc4,3 -34b3dc5,c0 -34b3dc6,28 -34b3dc7,25 -34b3dc8,c -34b3dc9,10 -34b3dca,14 -34b3dcb,af -34b3dcc,2 -34b3dce,20 -34b3dcf,25 -34b3dd0,26 -34b3dd1,31 -34b3dd3,1 -34b3dd4,8e -34b3dd5,a2 -34b3dd6,64 -34b3dd7,cc -34b3dd8,2 -34b3dd9,22 -34b3dda,10 -34b3ddb,2a -34b3ddc,14 -34b3ddd,40 -34b3dde,ff -34b3ddf,e0 -34b3de0,26 -34b3de1,52 -34b3de3,c -34b3de4,24 -34b3de5,7 -34b3de7,1 -34b3de8,24 -34b3de9,6 -34b3deb,a -34b3dec,3c -34b3ded,5 -34b3dee,80 -34b3def,40 -34b3df0,24 -34b3df1,a5 -34b3df2,63 -34b3df3,d8 -34b3df4,c -34b3df5,10 -34b3df6,14 -34b3df7,1c -34b3df8,2 -34b3dfa,20 -34b3dfb,25 -34b3dfc,3c -34b3dfd,2 -34b3dfe,80 -34b3dff,40 -34b3e00,8c -34b3e01,42 -34b3e02,64 -34b3e03,cc -34b3e04,58 -34b3e05,40 -34b3e07,29 -34b3e08,26 -34b3e09,7e -34b3e0b,24 -34b3e0e,88 -34b3e0f,25 -34b3e10,3c -34b3e11,12 -34b3e12,80 -34b3e13,40 -34b3e14,26 -34b3e15,52 -34b3e16,64 -34b3e17,2c -34b3e18,3c -34b3e19,15 -34b3e1a,80 -34b3e1b,11 -34b3e1c,3c -34b3e1d,16 -34b3e1e,80 -34b3e1f,40 -34b3e20,26 -34b3e21,d6 -34b3e22,63 -34b3e23,d8 -34b3e24,3c -34b3e25,14 -34b3e26,80 -34b3e27,40 -34b3e29,11 -34b3e2a,10 -34b3e2b,40 -34b3e2d,51 -34b3e2e,10 -34b3e2f,21 -34b3e31,2 -34b3e32,10 -34b3e33,80 -34b3e35,52 -34b3e36,10 -34b3e37,21 -34b3e38,90 -34b3e39,42 -34b3e3b,1 -34b3e3c,30 -34b3e3d,42 -34b3e3f,20 -34b3e40,50 -34b3e41,40 -34b3e43,15 -34b3e44,26 -34b3e45,31 -34b3e47,1 -34b3e48,36 -34b3e49,a2 -34b3e4a,a5 -34b3e4b,d0 -34b3e4c,8c -34b3e4d,42 -34b3e4f,a4 -34b3e50,3c -34b3e51,3 -34b3e53,40 -34b3e55,43 -34b3e56,10 -34b3e57,24 -34b3e58,50 -34b3e59,40 -34b3e5b,f -34b3e5c,26 -34b3e5d,31 -34b3e5f,1 -34b3e60,24 -34b3e61,2 -34b3e63,10 -34b3e64,af -34b3e65,a2 -34b3e67,18 -34b3e68,af -34b3e69,a2 -34b3e6b,14 -34b3e6d,11 -34b3e6e,10 -34b3e6f,c0 -34b3e71,51 -34b3e72,10 -34b3e73,21 -34b3e75,2 -34b3e76,10 -34b3e77,40 -34b3e78,24 -34b3e79,42 -34b3e7b,4 -34b3e7c,af -34b3e7d,a2 -34b3e7f,10 -34b3e80,2 -34b3e81,e0 -34b3e82,38 -34b3e83,25 -34b3e86,30 -34b3e87,25 -34b3e88,2 -34b3e89,c0 -34b3e8a,28 -34b3e8b,25 -34b3e8c,c -34b3e8d,10 -34b3e8e,14 -34b3e8f,af -34b3e90,2 -34b3e92,20 -34b3e93,25 -34b3e94,26 -34b3e95,31 -34b3e97,1 -34b3e98,8e -34b3e99,82 -34b3e9a,64 -34b3e9b,cc -34b3e9c,2 -34b3e9d,22 -34b3e9e,10 -34b3e9f,2a -34b3ea0,14 -34b3ea1,40 -34b3ea2,ff -34b3ea3,e2 -34b3ea5,11 -34b3ea6,10 -34b3ea7,40 -34b3ea8,26 -34b3ea9,7e -34b3eab,24 -34b3eac,24 -34b3ead,7 -34b3eaf,1 -34b3eb0,24 -34b3eb1,6 -34b3eb3,10 -34b3eb4,3c -34b3eb5,5 -34b3eb6,80 -34b3eb7,40 -34b3eb8,24 -34b3eb9,a5 -34b3eba,63 -34b3ebb,d8 -34b3ebc,c -34b3ebd,10 -34b3ebe,14 -34b3ebf,1c -34b3ec0,2 -34b3ec2,20 -34b3ec3,25 -34b3ec4,3c -34b3ec5,2 -34b3ec6,80 -34b3ec7,40 -34b3ec8,8c -34b3ec9,42 -34b3eca,64 -34b3ecb,cc -34b3ecc,18 -34b3ecd,40 -34b3ecf,2a -34b3ed0,3c -34b3ed1,12 -34b3ed2,80 -34b3ed3,40 -34b3ed4,26 -34b3ed5,52 -34b3ed6,64 -34b3ed7,2c -34b3eda,88 -34b3edb,25 -34b3edc,2 -34b3edd,40 -34b3ede,a0 -34b3edf,25 -34b3ee0,3c -34b3ee1,16 -34b3ee2,80 -34b3ee3,11 -34b3ee4,3c -34b3ee5,17 -34b3ee6,80 -34b3ee7,40 -34b3ee8,26 -34b3ee9,f7 -34b3eea,63 -34b3eeb,d8 -34b3eec,3c -34b3eed,15 -34b3eee,80 -34b3eef,40 -34b3ef1,11 -34b3ef2,10 -34b3ef3,40 -34b3ef5,51 -34b3ef6,10 -34b3ef7,21 -34b3ef9,2 -34b3efa,10 -34b3efb,80 -34b3efd,54 -34b3efe,10 -34b3eff,21 -34b3f00,90 -34b3f01,42 -34b3f03,1 -34b3f04,30 -34b3f05,42 -34b3f07,10 -34b3f08,50 -34b3f09,40 -34b3f0b,17 -34b3f0c,26 -34b3f0d,31 -34b3f0f,1 -34b3f10,36 -34b3f11,c2 -34b3f12,a5 -34b3f13,d0 -34b3f14,92 -34b3f15,43 -34b3f19,43 -34b3f1a,10 -34b3f1b,21 -34b3f1c,90 -34b3f1d,42 -34b3f1f,a8 -34b3f21,2 -34b3f22,10 -34b3f23,82 -34b3f24,30 -34b3f25,42 -34b3f27,1 -34b3f28,50 -34b3f29,40 -34b3f2b,f -34b3f2c,26 -34b3f2d,31 -34b3f2f,1 -34b3f30,24 -34b3f31,2 -34b3f33,10 -34b3f34,af -34b3f35,a2 -34b3f37,18 -34b3f38,af -34b3f39,a2 -34b3f3b,14 -34b3f3d,11 -34b3f3e,10 -34b3f3f,c0 -34b3f41,51 -34b3f42,10 -34b3f43,21 -34b3f45,2 -34b3f46,10 -34b3f47,40 -34b3f48,24 -34b3f49,42 -34b3f4b,4 -34b3f4c,af -34b3f4d,a2 -34b3f4f,10 -34b3f50,3 -34b3f51,c0 -34b3f52,38 -34b3f53,25 -34b3f56,30 -34b3f57,25 -34b3f58,2 -34b3f59,e0 -34b3f5a,28 -34b3f5b,25 -34b3f5c,c -34b3f5d,10 -34b3f5e,14 -34b3f5f,af -34b3f60,2 -34b3f62,20 -34b3f63,25 -34b3f64,26 -34b3f65,31 -34b3f67,1 -34b3f68,8e -34b3f69,a2 -34b3f6a,64 -34b3f6b,cc -34b3f6c,2 -34b3f6d,22 -34b3f6e,10 -34b3f6f,2a -34b3f70,14 -34b3f71,40 -34b3f72,ff -34b3f73,df -34b3f74,26 -34b3f75,52 -34b3f77,c -34b3f78,26 -34b3f79,7e -34b3f7b,36 -34b3f7c,24 -34b3f7d,7 -34b3f7f,1 -34b3f80,24 -34b3f81,6 -34b3f83,f -34b3f84,3c -34b3f85,5 -34b3f86,80 -34b3f87,40 -34b3f88,24 -34b3f89,a5 -34b3f8a,63 -34b3f8b,d8 -34b3f8c,c -34b3f8d,10 -34b3f8e,14 -34b3f8f,1c -34b3f90,2 -34b3f92,20 -34b3f93,25 -34b3f94,3c -34b3f95,2 -34b3f96,80 -34b3f97,40 -34b3f98,8c -34b3f99,42 -34b3f9a,64 -34b3f9b,cc -34b3f9c,18 -34b3f9d,40 -34b3f9f,62 -34b3fa0,3c -34b3fa1,12 -34b3fa2,80 -34b3fa3,40 -34b3fa4,26 -34b3fa5,52 -34b3fa6,64 -34b3fa7,2c -34b3faa,88 -34b3fab,25 -34b3fac,2 -34b3fad,40 -34b3fae,a0 -34b3faf,25 -34b3fb0,3c -34b3fb1,16 -34b3fb2,80 -34b3fb3,11 -34b3fb4,3c -34b3fb5,17 -34b3fb6,80 -34b3fb7,40 -34b3fb8,26 -34b3fb9,f7 -34b3fba,63 -34b3fbb,d8 -34b3fbc,3c -34b3fbd,15 -34b3fbe,80 -34b3fbf,40 -34b3fc1,11 -34b3fc2,10 -34b3fc3,40 -34b3fc5,51 -34b3fc6,10 -34b3fc7,21 -34b3fc9,2 -34b3fca,10 -34b3fcb,80 -34b3fcd,54 -34b3fce,10 -34b3fcf,21 -34b3fd0,90 -34b3fd1,42 -34b3fd3,1 -34b3fd4,30 -34b3fd5,42 -34b3fd7,10 -34b3fd8,50 -34b3fd9,40 -34b3fdb,17 -34b3fdc,26 -34b3fdd,31 -34b3fdf,1 -34b3fe0,36 -34b3fe1,c2 -34b3fe2,a5 -34b3fe3,d0 -34b3fe4,92 -34b3fe5,43 -34b3fe9,43 -34b3fea,10 -34b3feb,21 -34b3fec,90 -34b3fed,42 -34b3fef,a8 -34b3ff1,2 -34b3ff2,10 -34b3ff3,42 -34b3ff4,30 -34b3ff5,42 -34b3ff7,1 -34b3ff8,50 -34b3ff9,40 -34b3ffb,f -34b3ffc,26 -34b3ffd,31 -34b3fff,1 -34b4000,24 -34b4001,2 -34b4003,10 -34b4004,af -34b4005,a2 -34b4007,18 -34b4008,af -34b4009,a2 -34b400b,14 -34b400d,11 -34b400e,10 -34b400f,c0 -34b4011,51 -34b4012,10 -34b4013,21 -34b4015,2 -34b4016,10 -34b4017,40 -34b4018,24 -34b4019,42 -34b401b,4 -34b401c,af -34b401d,a2 -34b401f,10 -34b4020,3 -34b4021,c0 -34b4022,38 -34b4023,25 -34b4026,30 -34b4027,25 -34b4028,2 -34b4029,e0 -34b402a,28 -34b402b,25 -34b402c,c -34b402d,10 -34b402e,14 -34b402f,af -34b4030,2 -34b4032,20 -34b4033,25 -34b4034,26 -34b4035,31 -34b4037,1 -34b4038,8e -34b4039,a2 -34b403a,64 -34b403b,cc -34b403c,2 -34b403d,22 -34b403e,10 -34b403f,2a -34b4040,14 -34b4041,40 -34b4042,ff -34b4043,df -34b4044,26 -34b4045,52 -34b4047,c -34b4048,3c -34b4049,2 -34b404a,80 -34b404b,40 -34b404c,8c -34b404d,42 -34b404e,64 -34b404f,dc -34b4050,10 -34b4051,40 -34b4053,35 -34b4054,3c -34b4055,2 -34b4056,80 -34b4057,40 -34b4058,8c -34b4059,42 -34b405a,64 -34b405b,cc -34b405c,18 -34b405d,40 -34b405f,32 -34b4060,3c -34b4061,12 -34b4062,80 -34b4063,40 -34b4064,26 -34b4065,52 -34b4066,64 -34b4067,2c -34b4068,24 -34b4069,14 -34b406b,5 -34b406e,88 -34b406f,25 -34b4070,3c -34b4071,17 -34b4072,80 -34b4073,40 -34b4074,3c -34b4075,16 -34b4076,80 -34b4077,40 -34b4078,26 -34b4079,d6 -34b407a,64 -34b407b,f8 -34b407c,3c -34b407d,15 -34b407e,80 -34b407f,40 -34b4080,26 -34b4081,b5 -34b4082,63 -34b4083,bc -34b4084,3c -34b4085,2 -34b4086,80 -34b4087,40 -34b4088,24 -34b4089,42 -34b408a,63 -34b408b,c0 -34b408c,af -34b408d,a2 -34b408f,38 -34b4090,3c -34b4091,1e -34b4092,80 -34b4093,40 -34b4094,8e -34b4095,e2 -34b4096,64 -34b4097,d8 -34b4098,50 -34b4099,40 -34b409b,14 -34b409c,92 -34b409d,42 -34b40a1,11 -34b40a2,10 -34b40a3,40 -34b40a5,51 -34b40a6,10 -34b40a7,21 -34b40a9,2 -34b40aa,10 -34b40ab,80 -34b40ac,27 -34b40ad,c3 -34b40ae,64 -34b40af,2c -34b40b1,43 -34b40b2,10 -34b40b3,21 -34b40b4,90 -34b40b5,42 -34b40b7,1 -34b40b8,30 -34b40b9,42 -34b40bb,10 -34b40bc,50 -34b40bd,40 -34b40bf,b -34b40c0,92 -34b40c1,42 -34b40c4,92 -34b40c5,43 -34b40c8,3c -34b40c9,2 -34b40ca,80 -34b40cb,11 -34b40cc,34 -34b40cd,42 -34b40ce,a5 -34b40cf,d0 -34b40d1,43 -34b40d2,10 -34b40d3,21 -34b40d4,90 -34b40d5,42 -34b40d7,a8 -34b40d9,2 -34b40da,10 -34b40db,82 -34b40dc,30 -34b40dd,42 -34b40df,1 -34b40e0,50 -34b40e1,40 -34b40e3,b -34b40e4,26 -34b40e5,31 -34b40e7,1 -34b40e8,92 -34b40e9,42 -34b40ed,56 -34b40ee,10 -34b40ef,21 -34b40f0,90 -34b40f1,42 -34b40f4,14 -34b40f5,40 -34b40f7,2 -34b40f8,2 -34b40f9,a0 -34b40fa,20 -34b40fb,25 -34b40fc,8f -34b40fd,a4 -34b40ff,38 -34b4100,2 -34b4101,80 -34b4102,30 -34b4103,25 -34b4104,c -34b4105,10 -34b4106,18 -34b4107,73 -34b4108,26 -34b4109,65 -34b410b,48 -34b410c,26 -34b410d,31 -34b410f,1 -34b4110,26 -34b4111,94 -34b4113,12 -34b4114,3c -34b4115,2 -34b4116,80 -34b4117,40 -34b4118,8c -34b4119,42 -34b411a,64 -34b411b,cc -34b411c,2 -34b411d,22 -34b411e,10 -34b411f,2a -34b4120,14 -34b4121,40 -34b4122,ff -34b4123,dc -34b4124,26 -34b4125,52 -34b4127,c -34b4128,c -34b4129,10 -34b412a,18 -34b412b,9d -34b412c,2 -34b412e,20 -34b412f,25 -34b4130,8e -34b4131,2 -34b4133,8 -34b4134,24 -34b4135,43 -34b4137,8 -34b4138,ae -34b4139,3 -34b413b,8 -34b413c,3c -34b413d,3 -34b413e,e9 -34b4140,ac -34b4141,43 -34b4144,ac -34b4145,40 -34b4147,4 -34b4148,8e -34b4149,2 -34b414b,8 -34b414c,24 -34b414d,43 -34b414f,8 -34b4150,ae -34b4151,3 -34b4153,8 -34b4154,3c -34b4155,3 -34b4156,df -34b4158,ac -34b4159,43 -34b415c,ac -34b415d,40 -34b415f,4 -34b4160,8f -34b4161,bf -34b4163,64 -34b4164,8f -34b4165,be -34b4167,60 -34b4168,8f -34b4169,b7 -34b416b,5c -34b416c,8f -34b416d,b6 -34b416f,58 -34b4170,8f -34b4171,b5 -34b4173,54 -34b4174,8f -34b4175,b4 -34b4177,50 -34b4178,8f -34b4179,b3 -34b417b,4c -34b417c,8f -34b417d,b2 -34b417f,48 -34b4180,8f -34b4181,b1 -34b4183,44 -34b4184,8f -34b4185,b0 -34b4187,40 -34b4188,3 -34b4189,e0 -34b418b,8 -34b418c,27 -34b418d,bd -34b418f,68 -34b4190,10 -34b4192,fe -34b4193,a8 -34b4194,26 -34b4195,73 -34b4197,14 -34b4198,3 -34b4199,e0 -34b419b,8 -34b41a0,27 -34b41a1,bd -34b41a2,ff -34b41a3,e8 -34b41a4,af -34b41a5,bf -34b41a7,14 -34b41a8,c -34b41a9,10 -34b41aa,15 -34b41ab,b7 -34b41ac,24 -34b41ad,4 -34b41ae,4 -34b41b0,3c -34b41b1,3 -34b41b2,80 -34b41b3,40 -34b41b4,ac -34b41b5,62 -34b41b6,64 -34b41b7,e4 -34b41b8,3c -34b41b9,3 -34b41ba,80 -34b41bb,40 -34b41bc,ac -34b41bd,62 -34b41be,64 -34b41bf,e0 -34b41c0,8f -34b41c1,bf -34b41c3,14 -34b41c4,3 -34b41c5,e0 -34b41c7,8 -34b41c8,27 -34b41c9,bd -34b41cb,18 -34b41cc,80 -34b41cd,82 -34b41d0,10 -34b41d1,40 -34b41d3,26 -34b41d4,24 -34b41d5,87 -34b41d7,1 -34b41d8,3c -34b41d9,3 -34b41da,80 -34b41db,40 -34b41dc,8c -34b41dd,68 -34b41de,64 -34b41df,e4 -34b41e0,25 -34b41e1,8 -34b41e2,4 -34b41e4,3c -34b41e5,3 -34b41e6,80 -34b41e7,40 -34b41e8,8c -34b41e9,63 -34b41ea,64 -34b41eb,e0 -34b41ed,68 -34b41ee,20 -34b41ef,2b -34b41f0,10 -34b41f1,80 -34b41f3,1e -34b41f4,3c -34b41f5,a -34b41f6,ff -34b41f8,25 -34b41f9,4a -34b41fa,f -34b41fb,ff -34b41fc,30 -34b41fd,c6 -34b41fe,f -34b41ff,ff -34b4200,24 -34b4201,b -34b4202,f0 -34b4204,3c -34b4205,9 -34b4206,80 -34b4207,40 -34b4208,10 -34b420b,7 -34b420c,25 -34b420d,29 -34b420e,63 -34b420f,c8 -34b4211,68 -34b4212,20 -34b4213,2b -34b4214,54 -34b4215,80 -34b4217,5 -34b4218,a0 -34b4219,62 -34b421c,3c -34b421d,2 -34b421e,80 -34b421f,40 -34b4220,3 -34b4221,e0 -34b4223,8 -34b4224,ac -34b4225,43 -34b4226,64 -34b4227,e0 -34b4228,a0 -34b4229,62 -34b422c,30 -34b422d,a2 -34b422e,f -34b422f,ff -34b4231,2 -34b4232,23 -34b4234,8c -34b4235,62 -34b4239,4a -34b423a,10 -34b423b,24 -34b423d,44 -34b423e,10 -34b423f,25 -34b4241,4b -34b4242,10 -34b4243,24 -34b4245,46 -34b4246,10 -34b4247,25 -34b4248,ac -34b4249,62 -34b424c,95 -34b424d,22 -34b424f,4 -34b4251,a2 -34b4252,28 -34b4253,21 -34b4254,24 -34b4255,e7 -34b4257,1 -34b4258,80 -34b4259,e2 -34b425a,ff -34b425b,ff -34b425c,14 -34b425d,40 -34b425e,ff -34b425f,ec -34b4260,24 -34b4261,63 -34b4263,4 -34b4264,3c -34b4265,2 -34b4266,80 -34b4267,40 -34b4268,ac -34b4269,43 -34b426a,64 -34b426b,e0 -34b426c,3 -34b426d,e0 -34b426f,8 -34b4274,27 -34b4275,bd -34b4276,ff -34b4277,b0 -34b4278,af -34b4279,bf -34b427b,4c -34b427c,af -34b427d,be -34b427f,48 -34b4280,af -34b4281,b7 -34b4283,44 -34b4284,af -34b4285,b6 -34b4287,40 -34b4288,af -34b4289,b5 -34b428b,3c -34b428c,af -34b428d,b4 -34b428f,38 -34b4290,af -34b4291,b3 -34b4293,34 -34b4294,af -34b4295,b2 -34b4297,30 -34b4298,af -34b4299,b1 -34b429b,2c -34b429c,af -34b429d,b0 -34b429f,28 -34b42a1,80 -34b42a2,a8 -34b42a3,25 -34b42a6,b0 -34b42a7,25 -34b42aa,90 -34b42ab,25 -34b42ac,3c -34b42ad,14 -34b42ae,80 -34b42af,40 -34b42b0,26 -34b42b1,94 -34b42b2,63 -34b42b3,c8 -34b42b4,3c -34b42b5,1e -34b42b6,80 -34b42b7,40 -34b42b8,3c -34b42b9,13 -34b42ba,80 -34b42bb,40 -34b42bc,3c -34b42bd,17 -34b42be,38 -34b42bf,e3 -34b42c0,af -34b42c1,b4 -34b42c3,20 -34b42c4,24 -34b42c5,7 -34b42c7,12 -34b42c8,2 -34b42c9,c0 -34b42ca,30 -34b42cb,25 -34b42cc,2 -34b42cd,80 -34b42ce,28 -34b42cf,25 -34b42d0,c -34b42d1,10 -34b42d2,14 -34b42d3,1c -34b42d4,2 -34b42d5,a0 -34b42d6,20 -34b42d7,25 -34b42d8,8f -34b42d9,c5 -34b42da,64 -34b42db,e4 -34b42dc,10 -34b42df,1f -34b42e0,36 -34b42e1,f1 -34b42e2,8e -34b42e3,39 -34b42e4,24 -34b42e5,42 -34b42e6,ff -34b42e7,e0 -34b42e9,51 -34b42eb,18 -34b42ee,18 -34b42ef,10 -34b42f1,3 -34b42f2,18 -34b42f3,83 -34b42f5,2 -34b42f6,27 -34b42f7,c3 -34b42f9,64 -34b42fa,18 -34b42fb,23 -34b42fc,14 -34b42fd,72 -34b42ff,16 -34b4300,24 -34b4301,b0 -34b4303,4 -34b4304,8c -34b4305,a7 -34b4309,7 -34b430a,3b -34b430b,2 -34b430d,51 -34b430f,18 -34b4312,30 -34b4313,10 -34b4315,6 -34b4316,30 -34b4317,83 -34b4319,c4 -34b431a,30 -34b431b,23 -34b431d,6 -34b431e,18 -34b431f,c0 -34b4321,66 -34b4322,30 -34b4323,21 -34b4325,6 -34b4326,30 -34b4327,40 -34b4328,96 -34b4329,83 -34b432b,6 -34b432c,af -34b432d,a3 -34b432f,18 -34b4330,96 -34b4331,83 -34b4333,4 -34b4334,af -34b4335,a3 -34b4337,14 -34b4338,8c -34b4339,a3 -34b433c,30 -34b433d,63 -34b433e,f -34b433f,ff -34b4340,af -34b4341,a3 -34b4343,10 -34b4344,30 -34b4345,e7 -34b4346,f -34b4347,ff -34b4349,46 -34b434a,30 -34b434b,23 -34b434c,8f -34b434d,a5 -34b434f,20 -34b4350,c -34b4351,10 -34b4352,14 -34b4353,af -34b4354,2 -34b4355,a0 -34b4356,20 -34b4357,25 -34b4358,2 -34b435a,28 -34b435b,25 -34b435c,8e -34b435d,62 -34b435e,64 -34b435f,e0 -34b4361,a2 -34b4362,10 -34b4363,2b -34b4364,54 -34b4365,40 -34b4366,ff -34b4367,df -34b4368,80 -34b4369,a2 -34b436c,26 -34b436d,52 -34b436f,1 -34b4370,24 -34b4371,2 -34b4373,6 -34b4374,16 -34b4375,42 -34b4376,ff -34b4377,d3 -34b4378,26 -34b4379,d6 -34b437b,12 -34b437c,3c -34b437d,2 -34b437e,80 -34b437f,40 -34b4380,8c -34b4381,43 -34b4382,64 -34b4383,e4 -34b4384,3c -34b4385,2 -34b4386,80 -34b4387,40 -34b4388,ac -34b4389,43 -34b438a,64 -34b438b,e0 -34b438c,8f -34b438d,bf -34b438f,4c -34b4390,8f -34b4391,be -34b4393,48 -34b4394,8f -34b4395,b7 -34b4397,44 -34b4398,8f -34b4399,b6 -34b439b,40 -34b439c,8f -34b439d,b5 -34b439f,3c -34b43a0,8f -34b43a1,b4 -34b43a3,38 -34b43a4,8f -34b43a5,b3 -34b43a7,34 -34b43a8,8f -34b43a9,b2 -34b43ab,30 -34b43ac,8f -34b43ad,b1 -34b43af,2c -34b43b0,8f -34b43b1,b0 -34b43b3,28 -34b43b4,3 -34b43b5,e0 -34b43b7,8 -34b43b8,27 -34b43b9,bd -34b43bb,50 -34b43bc,4d -34b43bd,51 -34b43c0,4e -34b43c1,6f -34b43c2,72 -34b43c3,6d -34b43c4,61 -34b43c5,6c -34b43cd,8 -34b43cf,e -34b43d1,5f -34b43d2,3 -34b43d3,1 -34b43d4,1 -34b43dd,18 -34b43df,18 -34b43e1,12 -34b43e3,3 -34b43e4,4 -34b43ed,10 -34b43ef,10 -34b43f1,6 -34b43f2,3 -34b43f3,1 -34b43f4,1 -34b43fd,10 -34b43ff,10 -34b4401,3 -34b4403,3 -34b4404,4 -34b4409,1 -34b440a,2 -34b440b,3 -34b440c,4 -34b440d,5 -34b440e,6 -34b440f,7 -34b4410,ff -34b4411,ff -34b4412,ff -34b4413,ff -34b4414,ff -34b4415,ff -34b4418,11 -34b4419,c2 -34b441a,2d -34b441b,d4 -34b441c,43 -34b441d,22 -34b441e,8 -34b441f,54 -34b4420,ce -34b4421,d1 -34b4422,75 -34b4423,1a -34b4424,a9 -34b4425,3a -34b4426,ea -34b4427,a4 -34b4428,ab -34b4429,21 -34b442d,10 -34b442e,44 -34b442f,65 -34b4430,6b -34b4431,75 -34b4438,1 -34b4439,10 -34b443a,44 -34b443b,6f -34b443c,64 -34b443d,6f -34b443e,6e -34b443f,67 -34b4440,6f -34b4444,2 -34b4445,10 -34b4446,4a -34b4447,61 -34b4448,62 -34b4449,75 -34b4450,3 -34b4451,d0 -34b4452,46 -34b4453,6f -34b4454,72 -34b4455,65 -34b4456,73 -34b4457,74 -34b445c,4 -34b445d,d0 -34b445e,46 -34b445f,69 -34b4460,72 -34b4461,65 -34b4468,5 -34b4469,d0 -34b446a,57 -34b446b,61 -34b446c,74 -34b446d,65 -34b446e,72 -34b4474,7 -34b4475,d0 -34b4476,53 -34b4477,68 -34b4478,61 -34b4479,64 -34b447a,6f -34b447b,77 -34b4480,6 -34b4481,d0 -34b4482,53 -34b4483,70 -34b4484,69 -34b4485,72 -34b4486,69 -34b4487,74 -34b448c,8 -34b448d,90 -34b448e,42 -34b448f,6f -34b4490,74 -34b4491,57 -34b4498,9 -34b4499,10 -34b449a,49 -34b449b,63 -34b449c,65 -34b44a4,c -34b44a5,a0 -34b44a6,47 -34b44a7,65 -34b44a8,72 -34b44a9,75 -34b44aa,64 -34b44ab,6f -34b44b0,b -34b44b1,80 -34b44b2,47 -34b44b3,54 -34b44b4,47 -34b44bc,d -34b44bd,c0 -34b44be,47 -34b44bf,61 -34b44c0,6e -34b44c1,6f -34b44c2,6e -34b44cb,1 -34b44cf,d -34b4547,d -34b4548,b0 -34b454b,d -34b454c,b0 -34b454f,d -34b4550,b0 -34b4553,c -34b4554,b0 -34b4557,c -34b4558,b0 -34b455b,c -34b455c,a0 -34b4563,d -34b4564,b0 -34b4567,d -34b4568,b0 -34b457f,e8 -34b4580,ac -34b4583,e8 -34b4584,ac -34b4587,e8 -34b4588,ac -34b458b,e8 -34b458c,ac -34b45b3,d -34b45b4,77 -34b45b5,d0 -34b45b7,2e -34b45b8,3a -34b45b9,b0 -34b45bb,7d -34b45bc,c -34b45bd,90 -34b45be,8f -34b45bf,ff -34b45c0,ff -34b45c1,fd -34b45c3,c9 -34b45c4,6e -34b45c6,2 -34b45c7,e4 -34b45c8,ac -34b45ca,ef -34b45cb,ff -34b45cc,ff -34b45cd,f4 -34b45ce,a -34b45cf,b0 -34b45d0,e5 -34b45d2,c -34b45d3,95 -34b45d4,e0 -34b45d6,e -34b45d7,59 -34b45d8,c0 -34b45ef,7 -34b45f0,90 -34b45f2,5 -34b45f3,ce -34b45f4,eb -34b45f5,40 -34b45f6,c -34b45f7,c8 -34b45f8,a9 -34b45f9,90 -34b45fa,d -34b45fb,a7 -34b45fc,90 -34b45fe,8 -34b45ff,ec -34b4600,b4 -34b4603,4a -34b4604,dd -34b4605,a0 -34b4607,7 -34b4608,97 -34b4609,e2 -34b460a,c -34b460b,88 -34b460c,aa -34b460d,e0 -34b460e,6 -34b460f,ce -34b4610,ed -34b4611,70 -34b4613,7 -34b4614,90 -34b4617,7 -34b4618,90 -34b4626,6d -34b4627,ea -34b462a,c9 -34b462b,4d -34b462c,60 -34b462e,c9 -34b462f,4d -34b4630,60 -34b4631,33 -34b4632,6d -34b4633,eb -34b4634,6b -34b4635,c6 -34b4637,8c -34b4638,b6 -34b463a,7c -34b463b,a4 -34b463c,ce -34b463d,c4 -34b463e,31 -34b463f,9 -34b4640,c3 -34b4641,bb -34b4643,9 -34b4644,c3 -34b4645,bb -34b4647,2 -34b4648,ce -34b4649,d4 -34b465e,4 -34b465f,ce -34b4660,fb -34b4662,a -34b4663,d5 -34b4666,8 -34b4667,e3 -34b466a,9 -34b466b,ec -34b466e,7e -34b466f,4d -34b4670,b0 -34b4671,ab -34b4672,bb -34b4673,5 -34b4674,e8 -34b4675,aa -34b4676,bc -34b4678,8e -34b4679,d6 -34b467a,7e -34b467b,93 -34b467c,6e -34b467d,d0 -34b467e,8 -34b467f,de -34b4680,d9 -34b4681,ea -34b4697,c -34b4698,a0 -34b469b,c -34b469c,a0 -34b469f,c -34b46a0,a0 -34b46a3,c -34b46a4,a0 -34b46c8,c9 -34b46cb,7 -34b46cc,e2 -34b46cf,c -34b46d0,b0 -34b46d3,e -34b46d4,80 -34b46d7,6f -34b46d8,30 -34b46db,8e -34b46df,8e -34b46e3,6f -34b46e4,40 -34b46e7,e -34b46e8,80 -34b46eb,c -34b46ec,b0 -34b46ef,7 -34b46f0,e2 -34b46f4,c9 -34b46ff,bb -34b4703,5e -34b4704,40 -34b4707,c -34b4708,a0 -34b470b,a -34b470c,d0 -34b470f,7 -34b4710,e1 -34b4713,6 -34b4714,f4 -34b4717,6 -34b4718,f4 -34b471b,7 -34b471c,e1 -34b471f,a -34b4720,d0 -34b4723,c -34b4724,a0 -34b4727,5e -34b4728,40 -34b472b,bb -34b473f,a -34b4740,80 -34b4742,c -34b4743,8a -34b4744,8a -34b4745,b0 -34b4746,3 -34b4747,be -34b4748,da -34b4749,10 -34b474a,3 -34b474b,be -34b474c,da -34b474d,10 -34b474e,c -34b474f,8a -34b4750,8a -34b4751,b0 -34b4753,a -34b4754,80 -34b477b,c -34b477c,a0 -34b477f,c -34b4780,a0 -34b4783,c -34b4784,a0 -34b4786,af -34b4787,ff -34b4788,ff -34b4789,f8 -34b478b,c -34b478c,a0 -34b478f,c -34b4790,a0 -34b4793,c -34b4794,a0 -34b47cb,d -34b47cc,d0 -34b47cf,e -34b47d0,c0 -34b47d3,4f -34b47d4,80 -34b47d7,9d -34b47fb,df -34b47fc,fb -34b483b,e -34b483c,c0 -34b483f,e -34b4840,c0 -34b4858,b -34b4859,c0 -34b485c,4e -34b485d,60 -34b4860,bc -34b4863,3 -34b4864,e8 -34b4867,a -34b4868,d0 -34b486b,1e -34b486c,90 -34b486f,9e -34b4870,20 -34b4873,da -34b4876,7 -34b4877,e3 -34b487a,c -34b487b,b0 -34b487e,6e -34b487f,50 -34b488e,3 -34b488f,ce -34b4890,eb -34b4892,b -34b4893,d5 -34b4894,7e -34b4895,90 -34b4896,e -34b4897,90 -34b4898,b -34b4899,d0 -34b489a,5f -34b489b,70 -34b489c,9 -34b489d,e0 -34b489e,6f -34b489f,6c -34b48a0,b9 -34b48a1,e0 -34b48a2,5f -34b48a3,70 -34b48a4,9 -34b48a5,e0 -34b48a6,e -34b48a7,90 -34b48a8,b -34b48a9,d0 -34b48aa,b -34b48ab,d5 -34b48ac,7e -34b48ad,90 -34b48ae,3 -34b48af,ce -34b48b0,eb -34b48c6,a -34b48c7,ff -34b48c8,e0 -34b48cb,8 -34b48cc,e0 -34b48cf,8 -34b48d0,e0 -34b48d3,8 -34b48d4,e0 -34b48d7,8 -34b48d8,e0 -34b48db,8 -34b48dc,e0 -34b48df,8 -34b48e0,e0 -34b48e3,8 -34b48e4,e0 -34b48e6,8 -34b48e7,ff -34b48e8,ff -34b48e9,e0 -34b48fe,8 -34b48ff,de -34b4900,ea -34b4902,c -34b4903,83 -34b4904,7e -34b4905,90 -34b4908,c -34b4909,c0 -34b490c,2e -34b490d,a0 -34b4910,bd -34b4911,20 -34b4913,b -34b4914,d4 -34b4917,bd -34b4918,40 -34b491a,b -34b491b,d4 -34b491e,2f -34b491f,ff -34b4920,ff -34b4921,d0 -34b4936,7 -34b4937,ce -34b4938,ea -34b493a,c -34b493b,83 -34b493c,7e -34b493d,90 -34b4940,c -34b4941,b0 -34b4943,2 -34b4944,7e -34b4945,90 -34b4947,bf -34b4948,fb -34b494b,2 -34b494c,7d -34b494d,a0 -34b4950,a -34b4951,d0 -34b4952,5c -34b4953,62 -34b4954,7d -34b4955,b0 -34b4956,9 -34b4957,de -34b4958,eb -34b4959,30 -34b496f,2 -34b4970,de -34b4973,b -34b4974,de -34b4977,7d -34b4978,9e -34b497a,2 -34b497b,d7 -34b497c,9e -34b497e,b -34b497f,b0 -34b4980,9e -34b4982,6e -34b4983,40 -34b4984,9e -34b4986,9f -34b4987,ff -34b4988,ff -34b4989,f7 -34b498c,9e -34b4990,9e -34b49a6,c -34b49a7,ff -34b49a8,ff -34b49a9,50 -34b49aa,c -34b49ab,a0 -34b49ae,c -34b49af,a0 -34b49b2,c -34b49b3,ee -34b49b4,ea -34b49b7,3 -34b49b8,8e -34b49b9,90 -34b49bc,b -34b49bd,c0 -34b49c0,b -34b49c1,c0 -34b49c2,5c -34b49c3,63 -34b49c4,8e -34b49c5,90 -34b49c6,9 -34b49c7,de -34b49c8,da -34b49df,ae -34b49e0,ec -34b49e1,30 -34b49e2,a -34b49e3,e8 -34b49e4,39 -34b49e5,80 -34b49e6,e -34b49e7,90 -34b49ea,4f -34b49eb,ae -34b49ec,ec -34b49ed,40 -34b49ee,6f -34b49ef,d5 -34b49f0,5d -34b49f1,c0 -34b49f2,5f -34b49f3,90 -34b49f4,9 -34b49f5,e0 -34b49f6,e -34b49f7,90 -34b49f8,9 -34b49f9,e0 -34b49fa,c -34b49fb,d5 -34b49fc,5d -34b49fd,c0 -34b49fe,3 -34b49ff,ce -34b4a00,ec -34b4a01,40 -34b4a16,5f -34b4a17,ff -34b4a18,ff -34b4a19,d0 -34b4a1c,d -34b4a1d,a0 -34b4a20,7e -34b4a21,40 -34b4a24,cc -34b4a27,4 -34b4a28,e8 -34b4a2b,a -34b4a2c,d0 -34b4a2f,d -34b4a30,a0 -34b4a33,8e -34b4a34,40 -34b4a37,cc -34b4a4e,5 -34b4a4f,ce -34b4a50,ec -34b4a51,30 -34b4a52,d -34b4a53,c4 -34b4a54,5d -34b4a55,b0 -34b4a56,e -34b4a57,90 -34b4a58,b -34b4a59,d0 -34b4a5a,b -34b4a5b,c4 -34b4a5c,5d -34b4a5d,90 -34b4a5e,4 -34b4a5f,df -34b4a60,fc -34b4a61,20 -34b4a62,1d -34b4a63,b4 -34b4a64,5c -34b4a65,c0 -34b4a66,5f -34b4a67,60 -34b4a68,9 -34b4a69,e0 -34b4a6a,2e -34b4a6b,b3 -34b4a6c,5c -34b4a6d,d0 -34b4a6e,7 -34b4a6f,de -34b4a70,ec -34b4a71,50 -34b4a86,6 -34b4a87,de -34b4a88,eb -34b4a8a,d -34b4a8b,b3 -34b4a8c,7e -34b4a8d,90 -34b4a8e,5f -34b4a8f,50 -34b4a90,b -34b4a91,d0 -34b4a92,5f -34b4a93,50 -34b4a94,b -34b4a95,e0 -34b4a96,d -34b4a97,b3 -34b4a98,7e -34b4a99,e0 -34b4a9a,6 -34b4a9b,de -34b4a9c,db -34b4a9d,e0 -34b4aa0,b -34b4aa1,c0 -34b4aa2,9 -34b4aa3,74 -34b4aa4,9e -34b4aa5,70 -34b4aa6,5 -34b4aa7,de -34b4aa8,d8 -34b4ac7,e -34b4ac8,c0 -34b4acb,e -34b4acc,c0 -34b4adb,e -34b4adc,c0 -34b4adf,e -34b4ae0,c0 -34b4aff,e -34b4b00,c0 -34b4b03,e -34b4b04,c0 -34b4b13,d -34b4b14,d0 -34b4b17,e -34b4b18,c0 -34b4b1b,4f -34b4b1c,80 -34b4b1f,9d -34b4b38,29 -34b4b39,c8 -34b4b3b,7b -34b4b3c,ed -34b4b3d,93 -34b4b3e,8d -34b4b3f,da -34b4b40,40 -34b4b42,8d -34b4b43,da -34b4b44,40 -34b4b47,7b -34b4b48,ec -34b4b49,93 -34b4b4c,29 -34b4b4d,c8 -34b4b72,af -34b4b73,ff -34b4b74,ff -34b4b75,f8 -34b4b7e,af -34b4b7f,ff -34b4b80,ff -34b4b81,f8 -34b4ba6,ac -34b4ba7,81 -34b4baa,4a -34b4bab,de -34b4bac,b6 -34b4baf,6 -34b4bb0,ad -34b4bb1,d6 -34b4bb3,6 -34b4bb4,ad -34b4bb5,d6 -34b4bb6,4a -34b4bb7,de -34b4bb8,b6 -34b4bba,ac -34b4bbb,81 -34b4bd6,4 -34b4bd7,be -34b4bd8,ec -34b4bd9,30 -34b4bda,9 -34b4bdb,a4 -34b4bdc,6e -34b4bdd,a0 -34b4be0,1d -34b4be1,a0 -34b4be3,2 -34b4be4,cd -34b4be5,30 -34b4be7,c -34b4be8,c1 -34b4beb,e -34b4bec,90 -34b4bf3,e -34b4bf4,90 -34b4bf7,e -34b4bf8,90 -34b4c0e,1 -34b4c0f,ae -34b4c10,ed -34b4c11,70 -34b4c12,c -34b4c13,d7 -34b4c14,39 -34b4c15,e4 -34b4c16,7e -34b4c17,20 -34b4c19,c9 -34b4c1a,ba -34b4c1b,a -34b4c1c,ee -34b4c1d,ca -34b4c1e,d7 -34b4c1f,6e -34b4c20,64 -34b4c21,da -34b4c22,d6 -34b4c23,9c -34b4c25,aa -34b4c26,d7 -34b4c27,6e -34b4c28,64 -34b4c29,da -34b4c2a,ba -34b4c2b,a -34b4c2c,ee -34b4c2d,ca -34b4c2e,6e -34b4c2f,40 -34b4c32,a -34b4c33,d8 -34b4c34,30 -34b4c37,8d -34b4c38,ee -34b4c39,90 -34b4c47,3e -34b4c48,d0 -34b4c4b,9d -34b4c4c,e6 -34b4c4f,cb -34b4c50,cb -34b4c52,3 -34b4c53,e8 -34b4c54,ad -34b4c56,8 -34b4c57,e2 -34b4c58,6f -34b4c59,60 -34b4c5a,c -34b4c5b,c0 -34b4c5c,e -34b4c5d,a0 -34b4c5e,2e -34b4c5f,ff -34b4c60,ff -34b4c61,d0 -34b4c62,8e -34b4c63,50 -34b4c64,8 -34b4c65,f5 -34b4c66,cd -34b4c68,1 -34b4c69,ea -34b4c7e,e -34b4c7f,ff -34b4c80,ec -34b4c81,40 -34b4c82,e -34b4c83,90 -34b4c84,5d -34b4c85,c0 -34b4c86,e -34b4c87,90 -34b4c88,a -34b4c89,e0 -34b4c8a,e -34b4c8b,90 -34b4c8c,5d -34b4c8d,c0 -34b4c8e,e -34b4c8f,ff -34b4c90,fd -34b4c91,50 -34b4c92,e -34b4c93,90 -34b4c94,4b -34b4c95,d2 -34b4c96,e -34b4c97,90 -34b4c98,5 -34b4c99,f6 -34b4c9a,e -34b4c9b,90 -34b4c9c,4b -34b4c9d,e3 -34b4c9e,e -34b4c9f,ff -34b4ca0,ed -34b4ca1,80 -34b4cb7,9d -34b4cb8,ed -34b4cb9,80 -34b4cba,8 -34b4cbb,e9 -34b4cbc,36 -34b4cbd,b0 -34b4cbe,d -34b4cbf,b0 -34b4cc2,3f -34b4cc3,90 -34b4cc6,5f -34b4cc7,70 -34b4cca,1e -34b4ccb,90 -34b4cce,d -34b4ccf,b0 -34b4cd2,8 -34b4cd3,e9 -34b4cd4,47 -34b4cd5,b0 -34b4cd7,9d -34b4cd8,ed -34b4cd9,80 -34b4cee,5f -34b4cef,fe -34b4cf0,d8 -34b4cf2,5f -34b4cf3,65 -34b4cf4,ae -34b4cf5,80 -34b4cf6,5f -34b4cf7,60 -34b4cf8,c -34b4cf9,d0 -34b4cfa,5f -34b4cfb,60 -34b4cfc,9 -34b4cfd,e0 -34b4cfe,5f -34b4cff,60 -34b4d00,9 -34b4d01,f0 -34b4d02,5f -34b4d03,60 -34b4d04,9 -34b4d05,e0 -34b4d06,5f -34b4d07,60 -34b4d08,c -34b4d09,d0 -34b4d0a,5f -34b4d0b,65 -34b4d0c,ae -34b4d0d,80 -34b4d0e,5f -34b4d0f,fe -34b4d10,d8 -34b4d26,d -34b4d27,ff -34b4d28,ff -34b4d29,e0 -34b4d2a,d -34b4d2b,b0 -34b4d2e,d -34b4d2f,b0 -34b4d32,d -34b4d33,b0 -34b4d36,d -34b4d37,ff -34b4d38,ff -34b4d39,c0 -34b4d3a,d -34b4d3b,b0 -34b4d3e,d -34b4d3f,b0 -34b4d42,d -34b4d43,b0 -34b4d46,d -34b4d47,ff -34b4d48,ff -34b4d49,f0 -34b4d5e,b -34b4d5f,ff -34b4d60,ff -34b4d61,f4 -34b4d62,b -34b4d63,d0 -34b4d66,b -34b4d67,d0 -34b4d6a,b -34b4d6b,d0 -34b4d6e,b -34b4d6f,ff -34b4d70,ff -34b4d71,c0 -34b4d72,b -34b4d73,d0 -34b4d76,b -34b4d77,d0 -34b4d7a,b -34b4d7b,d0 -34b4d7e,b -34b4d7f,d0 -34b4d96,1 -34b4d97,ae -34b4d98,ed -34b4d99,60 -34b4d9a,b -34b4d9b,e7 -34b4d9c,38 -34b4d9d,a0 -34b4d9e,4e -34b4d9f,90 -34b4da2,8f -34b4da3,40 -34b4da6,9f -34b4da7,10 -34b4da8,bf -34b4da9,f2 -34b4daa,7f -34b4dab,40 -34b4dac,7 -34b4dad,f2 -34b4dae,4e -34b4daf,90 -34b4db0,7 -34b4db1,f2 -34b4db2,b -34b4db3,e7 -34b4db4,39 -34b4db5,f2 -34b4db6,1 -34b4db7,be -34b4db8,ed -34b4db9,90 -34b4dce,5f -34b4dcf,60 -34b4dd0,9 -34b4dd1,e0 -34b4dd2,5f -34b4dd3,60 -34b4dd4,9 -34b4dd5,e0 -34b4dd6,5f -34b4dd7,60 -34b4dd8,9 -34b4dd9,e0 -34b4dda,5f -34b4ddb,60 -34b4ddc,9 -34b4ddd,e0 -34b4dde,5f -34b4ddf,ff -34b4de0,ff -34b4de1,e0 -34b4de2,5f -34b4de3,60 -34b4de4,9 -34b4de5,e0 -34b4de6,5f -34b4de7,60 -34b4de8,9 -34b4de9,e0 -34b4dea,5f -34b4deb,60 -34b4dec,9 -34b4ded,e0 -34b4dee,5f -34b4def,60 -34b4df0,9 -34b4df1,e0 -34b4e06,d -34b4e07,ff -34b4e08,ff -34b4e09,b0 -34b4e0b,d -34b4e0c,b0 -34b4e0f,d -34b4e10,b0 -34b4e13,d -34b4e14,b0 -34b4e17,d -34b4e18,b0 -34b4e1b,d -34b4e1c,b0 -34b4e1f,d -34b4e20,b0 -34b4e23,d -34b4e24,b0 -34b4e26,d -34b4e27,ff -34b4e28,ff -34b4e29,b0 -34b4e3f,cf -34b4e40,ff -34b4e41,40 -34b4e44,7f -34b4e45,40 -34b4e48,7f -34b4e49,40 -34b4e4c,7f -34b4e4d,40 -34b4e50,7f -34b4e51,40 -34b4e54,7f -34b4e55,30 -34b4e56,75 -34b4e58,9e -34b4e5a,8d -34b4e5b,64 -34b4e5c,dc -34b4e5e,2b -34b4e5f,ee -34b4e60,c5 -34b4e76,5f -34b4e77,60 -34b4e78,9 -34b4e79,e7 -34b4e7a,5f -34b4e7b,60 -34b4e7c,9e -34b4e7d,70 -34b4e7e,5f -34b4e7f,69 -34b4e80,e7 -34b4e82,5f -34b4e83,be -34b4e84,80 -34b4e86,5f -34b4e87,ed -34b4e88,b0 -34b4e8a,5f -34b4e8b,87 -34b4e8c,e8 -34b4e8e,5f -34b4e8f,60 -34b4e90,ae -34b4e91,40 -34b4e92,5f -34b4e93,60 -34b4e94,1d -34b4e95,c0 -34b4e96,5f -34b4e97,60 -34b4e98,6 -34b4e99,ea -34b4eae,c -34b4eaf,c0 -34b4eb2,c -34b4eb3,c0 -34b4eb6,c -34b4eb7,c0 -34b4eba,c -34b4ebb,c0 -34b4ebe,c -34b4ebf,c0 -34b4ec2,c -34b4ec3,c0 -34b4ec6,c -34b4ec7,c0 -34b4eca,c -34b4ecb,c0 -34b4ece,c -34b4ecf,ff -34b4ed0,ff -34b4ed1,f7 -34b4ee6,af -34b4ee7,a0 -34b4ee8,c -34b4ee9,f8 -34b4eea,ae -34b4eeb,d0 -34b4eec,2e -34b4eed,e8 -34b4eee,ad -34b4eef,d5 -34b4ef0,9b -34b4ef1,e8 -34b4ef2,ad -34b4ef3,aa -34b4ef4,c8 -34b4ef5,e8 -34b4ef6,ad -34b4ef7,5d -34b4ef8,e1 -34b4ef9,e8 -34b4efa,ad -34b4efb,d -34b4efc,b0 -34b4efd,e8 -34b4efe,ad -34b4f01,e8 -34b4f02,ad -34b4f05,e8 -34b4f06,ad -34b4f09,e8 -34b4f1e,5f -34b4f1f,c0 -34b4f20,8 -34b4f21,e0 -34b4f22,5f -34b4f23,e6 -34b4f24,8 -34b4f25,e0 -34b4f26,5f -34b4f27,cb -34b4f28,8 -34b4f29,e0 -34b4f2a,5f -34b4f2b,7e -34b4f2c,48 -34b4f2d,e0 -34b4f2e,5f -34b4f2f,5c -34b4f30,a8 -34b4f31,e0 -34b4f32,5f -34b4f33,57 -34b4f34,e8 -34b4f35,e0 -34b4f36,5f -34b4f37,50 -34b4f38,dc -34b4f39,e0 -34b4f3a,5f -34b4f3b,50 -34b4f3c,9e -34b4f3d,e0 -34b4f3e,5f -34b4f3f,50 -34b4f40,2e -34b4f41,e0 -34b4f56,4 -34b4f57,ce -34b4f58,eb -34b4f59,20 -34b4f5a,c -34b4f5b,d5 -34b4f5c,6e -34b4f5d,a0 -34b4f5e,3e -34b4f5f,80 -34b4f60,a -34b4f61,e0 -34b4f62,7f -34b4f63,50 -34b4f64,8 -34b4f65,f2 -34b4f66,7f -34b4f67,40 -34b4f68,8 -34b4f69,f4 -34b4f6a,7f -34b4f6b,50 -34b4f6c,8 -34b4f6d,f2 -34b4f6e,3e -34b4f6f,80 -34b4f70,a -34b4f71,e0 -34b4f72,c -34b4f73,d5 -34b4f74,6e -34b4f75,b0 -34b4f76,4 -34b4f77,ce -34b4f78,eb -34b4f79,20 -34b4f8e,d -34b4f8f,ff -34b4f90,ed -34b4f91,60 -34b4f92,d -34b4f93,b0 -34b4f94,5c -34b4f95,e2 -34b4f96,d -34b4f97,b0 -34b4f98,6 -34b4f99,f6 -34b4f9a,d -34b4f9b,b0 -34b4f9c,6 -34b4f9d,f6 -34b4f9e,d -34b4f9f,b0 -34b4fa0,5c -34b4fa1,e2 -34b4fa2,d -34b4fa3,ff -34b4fa4,ed -34b4fa5,60 -34b4fa6,d -34b4fa7,b0 -34b4faa,d -34b4fab,b0 -34b4fae,d -34b4faf,b0 -34b4fc6,4 -34b4fc7,ce -34b4fc8,eb -34b4fc9,20 -34b4fca,c -34b4fcb,d5 -34b4fcc,6e -34b4fcd,a0 -34b4fce,3e -34b4fcf,80 -34b4fd0,a -34b4fd1,e0 -34b4fd2,7f -34b4fd3,50 -34b4fd4,8 -34b4fd5,f2 -34b4fd6,7f -34b4fd7,40 -34b4fd8,8 -34b4fd9,f4 -34b4fda,7f -34b4fdb,50 -34b4fdc,8 -34b4fdd,f1 -34b4fde,3e -34b4fdf,80 -34b4fe0,a -34b4fe1,d0 -34b4fe2,c -34b4fe3,d5 -34b4fe4,6e -34b4fe5,a0 -34b4fe6,4 -34b4fe7,ce -34b4fe8,fc -34b4fe9,20 -34b4fec,ae -34b4fed,50 -34b4ff0,c -34b4ff1,80 -34b4ffe,5f -34b4fff,fe -34b5000,eb -34b5001,20 -34b5002,5f -34b5003,71 -34b5004,7e -34b5005,b0 -34b5006,5f -34b5007,70 -34b5008,c -34b5009,d0 -34b500a,5f -34b500b,71 -34b500c,6e -34b500d,a0 -34b500e,5f -34b500f,ff -34b5010,ea -34b5012,5f -34b5013,72 -34b5014,ae -34b5015,40 -34b5016,5f -34b5017,70 -34b5018,d -34b5019,b0 -34b501a,5f -34b501b,70 -34b501c,8 -34b501d,e5 -34b501e,5f -34b501f,70 -34b5021,db -34b5036,6 -34b5037,ce -34b5038,eb -34b5039,30 -34b503a,d -34b503b,c4 -34b503c,5a -34b503d,90 -34b503e,4f -34b503f,60 -34b5042,e -34b5043,c6 -34b5046,5 -34b5047,ce -34b5048,eb -34b5049,40 -34b504c,6c -34b504d,c0 -34b5050,8 -34b5051,e0 -34b5052,c -34b5053,73 -34b5054,5c -34b5055,d0 -34b5056,8 -34b5057,de -34b5058,ec -34b5059,50 -34b506e,cf -34b506f,ff -34b5070,ff -34b5071,fb -34b5073,d -34b5074,b0 -34b5077,d -34b5078,b0 -34b507b,d -34b507c,b0 -34b507f,d -34b5080,b0 -34b5083,d -34b5084,b0 -34b5087,d -34b5088,b0 -34b508b,d -34b508c,b0 -34b508f,d -34b5090,b0 -34b50a6,4f -34b50a7,70 -34b50a8,9 -34b50a9,e0 -34b50aa,4f -34b50ab,70 -34b50ac,9 -34b50ad,e0 -34b50ae,4f -34b50af,70 -34b50b0,9 -34b50b1,e0 -34b50b2,4f -34b50b3,70 -34b50b4,9 -34b50b5,e0 -34b50b6,4f -34b50b7,70 -34b50b8,9 -34b50b9,e0 -34b50ba,3f -34b50bb,70 -34b50bc,9 -34b50bd,e0 -34b50be,2e -34b50bf,70 -34b50c0,a -34b50c1,d0 -34b50c2,d -34b50c3,c4 -34b50c4,5d -34b50c5,c0 -34b50c6,5 -34b50c7,ce -34b50c8,ec -34b50c9,40 -34b50de,ad -34b50e0,3 -34b50e1,e8 -34b50e2,6f -34b50e3,50 -34b50e4,8 -34b50e5,e3 -34b50e6,e -34b50e7,90 -34b50e8,b -34b50e9,c0 -34b50ea,b -34b50eb,c0 -34b50ec,d -34b50ed,90 -34b50ee,8 -34b50ef,e1 -34b50f0,5e -34b50f1,40 -34b50f2,2 -34b50f3,e7 -34b50f4,ad -34b50f7,cb -34b50f8,ca -34b50fb,9d -34b50fc,e6 -34b50ff,3e -34b5100,d0 -34b5116,e8 -34b5119,ad -34b511a,da -34b511d,cb -34b511e,cb -34b5121,da -34b5122,ac -34b5123,e -34b5124,c0 -34b5125,e8 -34b5126,8d -34b5127,6d -34b5128,e1 -34b5129,e5 -34b512a,6e -34b512b,9b -34b512c,d8 -34b512d,e0 -34b512e,1e -34b512f,c8 -34b5130,ac -34b5131,d0 -34b5132,d -34b5133,e3 -34b5134,7e -34b5135,c0 -34b5136,c -34b5137,d0 -34b5138,e -34b5139,a0 -34b514e,6e -34b514f,70 -34b5150,7 -34b5151,e7 -34b5152,a -34b5153,d2 -34b5154,1d -34b5155,b0 -34b5156,2 -34b5157,da -34b5158,ad -34b5159,20 -34b515b,7e -34b515c,e7 -34b515f,3e -34b5160,e2 -34b5163,bd -34b5164,da -34b5166,7 -34b5167,e6 -34b5168,7e -34b5169,60 -34b516a,3e -34b516b,a0 -34b516c,b -34b516d,d0 -34b516e,bd -34b516f,20 -34b5170,4 -34b5171,e9 -34b5186,ae -34b5187,20 -34b5188,5 -34b5189,e8 -34b518a,2d -34b518b,a0 -34b518c,c -34b518d,c0 -34b518e,7 -34b518f,e5 -34b5190,7e -34b5191,50 -34b5193,cc -34b5194,da -34b5197,4e -34b5198,d2 -34b519b,d -34b519c,b0 -34b519f,d -34b51a0,b0 -34b51a3,d -34b51a4,b0 -34b51a7,d -34b51a8,b0 -34b51be,e -34b51bf,ff -34b51c0,ff -34b51c1,f8 -34b51c4,b -34b51c5,d3 -34b51c8,7e -34b51c9,70 -34b51cb,3 -34b51cc,ea -34b51cf,b -34b51d0,d1 -34b51d3,8e -34b51d4,50 -34b51d6,4 -34b51d7,e9 -34b51da,c -34b51db,c0 -34b51de,1f -34b51df,ff -34b51e0,ff -34b51e1,fa -34b51ef,4f -34b51f0,fc -34b51f3,4f -34b51f4,50 -34b51f7,4f -34b51f8,50 -34b51fb,4f -34b51fc,50 -34b51ff,4f -34b5200,50 -34b5203,4f -34b5204,50 -34b5207,4f -34b5208,50 -34b520b,4f -34b520c,50 -34b520f,4f -34b5210,50 -34b5213,4f -34b5214,50 -34b5217,4f -34b5218,50 -34b521b,4f -34b521c,fc -34b522e,6e -34b522f,50 -34b5232,c -34b5233,b0 -34b5236,7 -34b5237,e3 -34b523b,da -34b523f,9e -34b5240,20 -34b5243,1e -34b5244,90 -34b5247,a -34b5248,d0 -34b524b,3 -34b524c,e8 -34b5250,bc -34b5254,4e -34b5255,60 -34b5258,b -34b5259,c0 -34b525f,df -34b5260,e0 -34b5263,8 -34b5264,e0 -34b5267,8 -34b5268,e0 -34b526b,8 -34b526c,e0 -34b526f,8 -34b5270,e0 -34b5273,8 -34b5274,e0 -34b5277,8 -34b5278,e0 -34b527b,8 -34b527c,e0 -34b527f,8 -34b5280,e0 -34b5283,8 -34b5284,e0 -34b5287,8 -34b5288,e0 -34b528b,df -34b528c,e0 -34b529f,5e -34b52a0,d2 -34b52a3,dc -34b52a4,db -34b52a6,a -34b52a7,d2 -34b52a8,5e -34b52a9,80 -34b52aa,7e -34b52ab,50 -34b52ac,7 -34b52ad,e5 -34b5302,ff -34b5303,ff -34b5304,ff -34b5305,fd -34b530a,2 -34b530b,ca -34b530f,2c -34b5310,90 -34b534e,5 -34b534f,ce -34b5350,eb -34b5351,10 -34b5352,b -34b5353,93 -34b5354,6d -34b5355,a0 -34b5358,b -34b5359,c0 -34b535a,8 -34b535b,de -34b535c,ff -34b535d,c0 -34b535e,3e -34b535f,93 -34b5360,b -34b5361,d0 -34b5362,4f -34b5363,82 -34b5364,7e -34b5365,d0 -34b5366,a -34b5367,ee -34b5368,db -34b5369,d0 -34b5376,d -34b5377,90 -34b537a,d -34b537b,90 -34b537e,d -34b537f,90 -34b5382,d -34b5383,90 -34b5386,d -34b5387,bd -34b5388,ec -34b5389,40 -34b538a,d -34b538b,e6 -34b538c,5d -34b538d,c0 -34b538e,d -34b538f,b0 -34b5390,8 -34b5391,e0 -34b5392,d -34b5393,a0 -34b5394,7 -34b5395,f2 -34b5396,d -34b5397,b0 -34b5398,8 -34b5399,e0 -34b539a,d -34b539b,e6 -34b539c,4d -34b539d,b0 -34b539e,d -34b539f,bd -34b53a0,ec -34b53a1,40 -34b53bf,8d -34b53c0,ed -34b53c1,70 -34b53c2,7 -34b53c3,e9 -34b53c4,36 -34b53c5,a0 -34b53c6,c -34b53c7,c0 -34b53ca,d -34b53cb,b0 -34b53ce,c -34b53cf,c0 -34b53d2,7 -34b53d3,e9 -34b53d4,36 -34b53d5,a0 -34b53d7,8d -34b53d8,ed -34b53d9,70 -34b53e8,b -34b53e9,c0 -34b53ec,b -34b53ed,c0 -34b53f0,b -34b53f1,c0 -34b53f4,b -34b53f5,c0 -34b53f6,5 -34b53f7,de -34b53f8,dc -34b53f9,c0 -34b53fa,d -34b53fb,c4 -34b53fc,8e -34b53fd,c0 -34b53fe,5f -34b53ff,60 -34b5400,c -34b5401,c0 -34b5402,7f -34b5403,30 -34b5404,b -34b5405,c0 -34b5406,5f -34b5407,60 -34b5408,c -34b5409,c0 -34b540a,d -34b540b,c4 -34b540c,8e -34b540d,c0 -34b540e,5 -34b540f,de -34b5410,dc -34b5411,c0 -34b542e,3 -34b542f,be -34b5430,ec -34b5431,30 -34b5432,c -34b5433,d5 -34b5434,4c -34b5435,c0 -34b5436,4f -34b5437,60 -34b5438,7 -34b5439,e0 -34b543a,6f -34b543b,ff -34b543c,ff -34b543d,f3 -34b543e,4f -34b543f,50 -34b5442,c -34b5443,c5 -34b5444,38 -34b5445,c0 -34b5446,3 -34b5447,be -34b5448,ec -34b5449,60 -34b5457,5 -34b5458,de -34b5459,d0 -34b545b,c -34b545c,b2 -34b545f,d -34b5460,90 -34b5463,e -34b5464,80 -34b5466,d -34b5467,ff -34b5468,ff -34b5469,d0 -34b546b,e -34b546c,80 -34b546f,e -34b5470,80 -34b5473,e -34b5474,80 -34b5477,e -34b5478,80 -34b547b,e -34b547c,80 -34b547f,e -34b5480,80 -34b549e,5 -34b549f,de -34b54a0,dc -34b54a1,c0 -34b54a2,d -34b54a3,c4 -34b54a4,8e -34b54a5,c0 -34b54a6,5f -34b54a7,60 -34b54a8,c -34b54a9,c0 -34b54aa,7f -34b54ab,30 -34b54ac,b -34b54ad,c0 -34b54ae,5f -34b54af,60 -34b54b0,c -34b54b1,c0 -34b54b2,d -34b54b3,c4 -34b54b4,8e -34b54b5,c0 -34b54b6,5 -34b54b7,de -34b54b8,dc -34b54b9,b0 -34b54bc,c -34b54bd,a0 -34b54be,9 -34b54bf,94 -34b54c0,7e -34b54c1,60 -34b54c2,4 -34b54c3,ce -34b54c4,e9 -34b54c6,d -34b54c7,a0 -34b54ca,d -34b54cb,a0 -34b54ce,d -34b54cf,a0 -34b54d2,d -34b54d3,a0 -34b54d6,d -34b54d7,bd -34b54d8,ed -34b54d9,40 -34b54da,d -34b54db,e6 -34b54dc,5d -34b54dd,a0 -34b54de,d -34b54df,b0 -34b54e0,b -34b54e1,c0 -34b54e2,d -34b54e3,a0 -34b54e4,b -34b54e5,c0 -34b54e6,d -34b54e7,a0 -34b54e8,b -34b54e9,c0 -34b54ea,d -34b54eb,a0 -34b54ec,b -34b54ed,c0 -34b54ee,d -34b54ef,a0 -34b54f0,b -34b54f1,c0 -34b54ff,b -34b5500,c0 -34b550e,9 -34b550f,ff -34b5510,c0 -34b5513,b -34b5514,c0 -34b5517,b -34b5518,c0 -34b551b,b -34b551c,c0 -34b551f,b -34b5520,c0 -34b5523,b -34b5524,c0 -34b5526,e -34b5527,ff -34b5528,ff -34b5529,e0 -34b5537,7 -34b5538,e0 -34b5546,7 -34b5547,ff -34b5548,e0 -34b554b,7 -34b554c,e0 -34b554f,7 -34b5550,e0 -34b5553,7 -34b5554,e0 -34b5557,7 -34b5558,e0 -34b555b,7 -34b555c,e0 -34b555f,7 -34b5560,e0 -34b5563,7 -34b5564,e0 -34b5567,1b -34b5568,d0 -34b556a,d -34b556b,fe -34b556c,70 -34b556e,b -34b556f,c0 -34b5572,b -34b5573,c0 -34b5576,b -34b5577,c0 -34b557a,b -34b557b,c0 -34b557e,b -34b557f,c0 -34b5580,3d -34b5581,c2 -34b5582,b -34b5583,c3 -34b5584,db -34b5586,b -34b5587,dd -34b5588,c0 -34b558a,b -34b558b,fc -34b558c,e5 -34b558e,b -34b558f,d0 -34b5590,cd -34b5591,10 -34b5592,b -34b5593,c0 -34b5594,3d -34b5595,b0 -34b5596,b -34b5597,c0 -34b5598,7 -34b5599,e8 -34b55a6,e -34b55a7,ff -34b55a8,40 -34b55ab,5f -34b55ac,40 -34b55af,5f -34b55b0,40 -34b55b3,5f -34b55b4,40 -34b55b7,5f -34b55b8,40 -34b55bb,5f -34b55bc,40 -34b55bf,5f -34b55c0,40 -34b55c3,5f -34b55c4,40 -34b55c7,4f -34b55c8,50 -34b55cb,e -34b55cc,a0 -34b55cf,8 -34b55d0,ef -34b55d1,b0 -34b55ee,8d -34b55ef,dd -34b55f0,ae -34b55f1,c0 -34b55f2,8e -34b55f3,4d -34b55f4,c5 -34b55f5,e4 -34b55f6,8d -34b55f7,c -34b55f8,b0 -34b55f9,e6 -34b55fa,8d -34b55fb,b -34b55fc,a0 -34b55fd,e7 -34b55fe,8d -34b55ff,b -34b5600,a0 -34b5601,e7 -34b5602,8d -34b5603,b -34b5604,a0 -34b5605,e7 -34b5606,8d -34b5607,b -34b5608,a0 -34b5609,e7 -34b5626,d -34b5627,bd -34b5628,ed -34b5629,40 -34b562a,d -34b562b,e6 -34b562c,5d -34b562d,a0 -34b562e,d -34b562f,b0 -34b5630,b -34b5631,c0 -34b5632,d -34b5633,a0 -34b5634,b -34b5635,c0 -34b5636,d -34b5637,a0 -34b5638,b -34b5639,c0 -34b563a,d -34b563b,a0 -34b563c,b -34b563d,c0 -34b563e,d -34b563f,a0 -34b5640,b -34b5641,c0 -34b565e,4 -34b565f,ce -34b5660,eb -34b5661,20 -34b5662,c -34b5663,d5 -34b5664,6d -34b5665,a0 -34b5666,1e -34b5667,70 -34b5668,a -34b5669,d0 -34b566a,5f -34b566b,60 -34b566c,8 -34b566d,e0 -34b566e,1e -34b566f,70 -34b5670,a -34b5671,d0 -34b5672,c -34b5673,d4 -34b5674,6d -34b5675,b0 -34b5676,4 -34b5677,ce -34b5678,eb -34b5679,20 -34b5696,d -34b5697,bd -34b5698,ec -34b5699,30 -34b569a,d -34b569b,e6 -34b569c,5d -34b569d,b0 -34b569e,d -34b569f,b0 -34b56a0,9 -34b56a1,e0 -34b56a2,d -34b56a3,a0 -34b56a4,7 -34b56a5,e0 -34b56a6,d -34b56a7,b0 -34b56a8,8 -34b56a9,e0 -34b56aa,d -34b56ab,e6 -34b56ac,5d -34b56ad,b0 -34b56ae,d -34b56af,be -34b56b0,ec -34b56b1,40 -34b56b2,d -34b56b3,90 -34b56b6,d -34b56b7,90 -34b56ba,d -34b56bb,90 -34b56ce,4 -34b56cf,ce -34b56d0,dc -34b56d1,c0 -34b56d2,c -34b56d3,c4 -34b56d4,7e -34b56d5,c0 -34b56d6,1e -34b56d7,70 -34b56d8,c -34b56d9,c0 -34b56da,5f -34b56db,60 -34b56dc,b -34b56dd,c0 -34b56de,2e -34b56df,70 -34b56e0,c -34b56e1,c0 -34b56e2,c -34b56e3,c4 -34b56e4,7e -34b56e5,c0 -34b56e6,5 -34b56e7,ce -34b56e8,db -34b56e9,c0 -34b56ec,a -34b56ed,c0 -34b56f0,a -34b56f1,c0 -34b56f4,a -34b56f5,c0 -34b5707,cc -34b5708,de -34b5709,f9 -34b570b,ce -34b570c,83 -34b570f,cb -34b5713,ca -34b5717,ca -34b571b,ca -34b571f,ca -34b573e,4 -34b573f,ce -34b5740,ea -34b5741,10 -34b5742,b -34b5743,d4 -34b5744,5b -34b5745,60 -34b5746,b -34b5747,d4 -34b574a,3 -34b574b,bd -34b574c,db -34b574d,20 -34b5750,4d -34b5751,a0 -34b5752,b -34b5753,94 -34b5754,5e -34b5755,a0 -34b5756,5 -34b5757,ce -34b5758,eb -34b5759,20 -34b576f,8e -34b5773,8e -34b5776,6f -34b5777,ff -34b5778,ff -34b5779,b0 -34b577b,8e -34b577f,8e -34b5783,8e -34b5787,8e -34b578b,6e -34b578c,70 -34b578f,b -34b5790,ef -34b5791,b0 -34b57ae,d -34b57af,a0 -34b57b0,b -34b57b1,c0 -34b57b2,d -34b57b3,a0 -34b57b4,b -34b57b5,c0 -34b57b6,d -34b57b7,a0 -34b57b8,b -34b57b9,c0 -34b57ba,d -34b57bb,a0 -34b57bc,b -34b57bd,c0 -34b57be,d -34b57bf,a0 -34b57c0,b -34b57c1,c0 -34b57c2,b -34b57c3,d4 -34b57c4,7e -34b57c5,c0 -34b57c6,5 -34b57c7,de -34b57c8,db -34b57c9,c0 -34b57e6,6e -34b57e7,30 -34b57e8,7 -34b57e9,e3 -34b57ea,d -34b57eb,90 -34b57ec,b -34b57ed,c0 -34b57ee,a -34b57ef,d0 -34b57f0,1e -34b57f1,80 -34b57f2,5 -34b57f3,e4 -34b57f4,8e -34b57f5,20 -34b57f7,da -34b57f8,cb -34b57fb,9d -34b57fc,e7 -34b57ff,3e -34b5800,e0 -34b581e,e8 -34b5821,ac -34b5822,ca -34b5825,ca -34b5826,ac -34b5827,d -34b5828,b0 -34b5829,e7 -34b582a,6e -34b582b,3d -34b582c,d5 -34b582d,e2 -34b582e,e -34b582f,ab -34b5830,ca -34b5831,d0 -34b5832,c -34b5833,e7 -34b5834,9e -34b5835,b0 -34b5836,a -34b5837,e1 -34b5838,5f -34b5839,80 -34b5856,3d -34b5857,a0 -34b5858,b -34b5859,c0 -34b585a,6 -34b585b,e6 -34b585c,9e -34b585d,40 -34b585f,9e -34b5860,e7 -34b5863,2e -34b5864,d0 -34b5867,cc -34b5868,da -34b586a,9 -34b586b,e4 -34b586c,6e -34b586d,70 -34b586e,6e -34b586f,70 -34b5870,9 -34b5871,e4 -34b588e,6e -34b588f,50 -34b5890,5 -34b5891,e5 -34b5892,d -34b5893,a0 -34b5894,b -34b5895,d0 -34b5896,9 -34b5897,e0 -34b5898,e -34b5899,90 -34b589a,3 -34b589b,e7 -34b589c,8e -34b589d,30 -34b589f,cc -34b58a0,cc -34b58a3,7e -34b58a4,e7 -34b58a7,d -34b58a8,e0 -34b58ab,d -34b58ac,a0 -34b58af,8e -34b58b0,50 -34b58b2,d -34b58b3,ea -34b58c6,b -34b58c7,ff -34b58c8,ff -34b58c9,c0 -34b58cc,5e -34b58cd,70 -34b58cf,3 -34b58d0,d9 -34b58d3,c -34b58d4,b0 -34b58d7,bd -34b58d8,20 -34b58da,9 -34b58db,e4 -34b58de,d -34b58df,ff -34b58e0,ff -34b58e1,c0 -34b58ef,6 -34b58f0,de -34b58f1,a0 -34b58f3,b -34b58f4,d3 -34b58f7,c -34b58f8,b0 -34b58fb,c -34b58fc,b0 -34b58ff,5e -34b5900,a0 -34b5902,b -34b5903,fd -34b5904,20 -34b5907,7e -34b5908,90 -34b590b,d -34b590c,b0 -34b590f,c -34b5910,b0 -34b5913,c -34b5914,b0 -34b5917,b -34b5918,d4 -34b591b,5 -34b591c,de -34b591d,a0 -34b5927,c -34b5928,a0 -34b592b,c -34b592c,a0 -34b592f,c -34b5930,a0 -34b5933,c -34b5934,a0 -34b5937,c -34b5938,a0 -34b593b,c -34b593c,a0 -34b593f,c -34b5940,a0 -34b5943,c -34b5944,a0 -34b5947,c -34b5948,a0 -34b594b,c -34b594c,a0 -34b594f,c -34b5950,a0 -34b5953,c -34b5954,a0 -34b5957,c -34b5958,a0 -34b595e,b -34b595f,ed -34b5960,30 -34b5963,4e -34b5964,90 -34b5967,d -34b5968,a0 -34b596b,c -34b596c,a0 -34b596f,b -34b5970,c4 -34b5973,5 -34b5974,ef -34b5975,a0 -34b5977,b -34b5978,d5 -34b597b,c -34b597c,b0 -34b597f,d -34b5980,a0 -34b5983,d -34b5984,a0 -34b5987,5e -34b5988,80 -34b598a,b -34b598b,ec -34b598c,20 -34b59ae,5d -34b59af,ed -34b59b0,83 -34b59b1,a7 -34b59b2,98 -34b59b3,38 -34b59b4,de -34b59b5,c3 +11,45 +12,ae +13,5b +14,97 +15,db +16,41 +17,31 +d261,48 +d262,0 +d265,48 +d266,50 +d267,0 +d269,48 +d26a,0 +d271,4b +d272,30 +d275,4b +d276,e0 +d277,0 +d279,4b +d27a,30 +8a9c51,0 +8a9c52,0 +8a9c53,0 +8a9c55,0 +8a9c56,0 +8a9c57,0 +8a9c58,0 +8a9c59,0 +8a9c5a,0 +8a9c5c,0 +8a9c5d,0 +8a9c5e,0 +8a9c5f,0 +8a9c64,0 +8a9c65,0 +8a9c66,0 +8a9c67,0 +8a9c68,0 +8a9c69,0 +8a9c6a,0 +8a9c6b,0 +8a9c6c,0 +8a9c6d,0 +8a9c6e,0 +8a9c6f,0 +8a9c90,0 +8a9c91,0 +8a9c92,0 +8a9c93,0 +8a9c94,0 +8a9c95,0 +8a9c96,0 +8a9c97,0 +8a9c98,0 +8a9c99,0 +8a9c9a,0 +8a9c9c,0 +8a9c9d,0 +8a9c9e,0 +8a9c9f,0 +8a9ca0,0 +8a9ca3,0 +8a9ca4,0 +8a9ca5,0 +8a9ca6,0 +8a9ca7,0 +8a9ca8,0 +8a9ca9,0 +8a9caa,0 +8a9cab,0 +8a9cac,0 +8a9cad,0 +8a9cae,0 +8a9caf,0 +8a9cb0,0 +8a9cd0,0 +8a9cd1,0 +8a9cd2,0 +8a9cd3,0 +8a9cd4,0 +8a9cd5,0 +8a9cd6,0 +8a9cd7,0 +8a9cd8,0 +8a9cd9,0 +8a9cda,0 +8a9cdc,0 +8a9cdd,0 +8a9cde,0 +8a9cdf,0 +8a9ce0,0 +8a9ce3,0 +8a9ce4,0 +8a9ce5,0 +8a9ce6,0 +8a9ce7,0 +8a9ce8,0 +8a9ce9,0 +8a9cea,0 +8a9ceb,0 +8a9cec,0 +8a9ced,0 +8a9cee,0 +8a9cef,0 +8a9cf0,0 +8a9d10,0 +8a9d11,0 +8a9d12,0 +8a9d13,0 +8a9d14,0 +8a9d15,0 +8a9d16,0 +8a9d17,0 +8a9d18,0 +8a9d19,0 +8a9d1a,0 +8a9d1c,0 +8a9d1d,0 +8a9d1e,0 +8a9d1f,0 +8a9d20,0 +8a9d21,0 +8a9d22,0 +8a9d23,0 +8a9d24,0 +8a9d25,0 +8a9d26,0 +8a9d27,0 +8a9d28,0 +8a9d29,0 +8a9d2a,0 +8a9d2b,0 +8a9d2c,0 +8a9d2d,0 +8a9d2e,0 +8a9d2f,0 +8a9d30,0 +8a9d50,0 +8a9d51,0 +8a9d52,0 +8a9d53,0 +8a9d54,0 +8a9d55,0 +8a9d56,0 +8a9d57,0 +8a9d58,0 +8a9d59,0 +8a9d5a,0 +8a9d5c,0 +8a9d5d,0 +8a9d5e,0 +8a9d5f,0 +8a9d60,0 +8a9d61,0 +8a9d62,0 +8a9d63,0 +8a9d64,0 +8a9d65,0 +8a9d66,0 +8a9d67,0 +8a9d68,0 +8a9d69,0 +8a9d6a,0 +8a9d6b,0 +8a9d6c,0 +8a9d6d,0 +8a9d6e,0 +8a9d6f,0 +8a9d90,0 +8a9d91,0 +8a9d92,0 +8a9d93,0 +8a9d94,0 +8a9d95,0 +8a9d96,0 +8a9d97,0 +8a9d98,0 +8a9d99,0 +8a9d9a,0 +8a9d9c,0 +8a9d9d,0 +8a9d9e,0 +8a9d9f,0 +8a9da0,0 +8a9da1,0 +8a9da2,0 +8a9da3,0 +8a9da4,0 +8a9da6,0 +8a9da7,0 +8a9da8,0 +8a9da9,0 +8a9daa,0 +8a9dab,0 +8a9dac,0 +8a9dad,0 +8a9dae,0 +8a9dd0,0 +8a9dd1,0 +8a9dd2,0 +8a9dd3,0 +8a9dd4,0 +8a9dd5,0 +8a9dd6,0 +8a9dd7,0 +8a9dd8,0 +8a9dd9,0 +8a9dda,0 +8a9ddc,0 +8a9ddd,0 +8a9dde,0 +8a9ddf,0 +8a9de0,0 +8a9de1,0 +8a9de2,0 +8a9de3,0 +8a9de4,0 +8a9de6,0 +8a9de7,0 +8a9de8,0 +8a9de9,0 +8a9dea,0 +8a9deb,0 +8a9dec,0 +8a9ded,0 +8a9dee,0 +8a9e10,0 +8a9e11,0 +8a9e12,0 +8a9e13,0 +8a9e14,0 +8a9e15,0 +8a9e16,0 +8a9e17,0 +8a9e18,0 +8a9e19,0 +8a9e1a,0 +8a9e1c,0 +8a9e1d,0 +8a9e1e,0 +8a9e1f,0 +8a9e20,0 +8a9e21,0 +8a9e22,0 +8a9e23,0 +8a9e24,0 +8a9e26,0 +8a9e27,0 +8a9e28,0 +8a9e29,0 +8a9e2a,0 +8a9e2b,0 +8a9e2c,0 +8a9e2d,0 +8a9e2e,0 +8a9e50,0 +8a9e51,0 +8a9e52,0 +8a9e53,0 +8a9e54,0 +8a9e55,0 +8a9e56,0 +8a9e57,0 +8a9e58,0 +8a9e59,0 +8a9e5a,0 +8a9e5b,0 +8a9e5c,0 +8a9e5d,0 +8a9e5e,0 +8a9e5f,0 +8a9e60,0 +8a9e61,0 +8a9e62,0 +8a9e63,0 +8a9e64,0 +8a9e65,0 +8a9e66,0 +8a9e67,0 +8a9e68,0 +8a9e69,0 +8a9e6a,0 +8a9e6b,0 +8a9e6c,0 +8a9e6d,0 +8a9e6e,0 +8a9e90,0 +8a9e91,0 +8a9e92,0 +8a9e93,0 +8a9e94,0 +8a9e95,0 +8a9e96,0 +8a9e97,0 +8a9e98,0 +8a9e99,0 +8a9e9a,0 +8a9e9b,0 +8a9e9c,0 +8a9e9d,0 +8a9e9e,0 +8a9e9f,0 +8a9ea0,0 +8a9ea1,0 +8a9ea2,0 +8a9ea3,0 +8a9ea4,0 +8a9ea5,0 +8a9ea6,0 +8a9ea7,0 +8a9ea8,0 +8a9ea9,0 +8a9eaa,0 +8a9eab,0 +8a9eac,0 +8a9ead,0 +8a9eae,0 +8a9ed0,0 +8a9ed1,0 +8a9ed2,0 +8a9ed3,0 +8a9ed4,0 +8a9ed5,0 +8a9ed6,0 +8a9ed7,0 +8a9ed8,0 +8a9ed9,0 +8a9eda,0 +8a9edb,0 +8a9edc,0 +8a9edd,0 +8a9ede,0 +8a9edf,0 +8a9ee0,0 +8a9ee3,0 +8a9ee4,0 +8a9ee5,0 +8a9ee6,0 +8a9ee7,0 +8a9ee8,0 +8a9ee9,0 +8a9eea,0 +8a9eeb,0 +8a9eec,0 +8a9eed,0 +8a9eee,0 +8a9f10,0 +8a9f11,0 +8a9f12,0 +8a9f13,0 +8a9f14,0 +8a9f15,0 +8a9f16,0 +8a9f17,0 +8a9f18,0 +8a9f19,0 +8a9f1a,0 +8a9f1b,0 +8a9f1c,0 +8a9f1d,0 +8a9f1e,0 +8a9f1f,0 +8a9f20,0 +8a9f23,0 +8a9f24,0 +8a9f25,0 +8a9f26,0 +8a9f27,0 +8a9f28,0 +8a9f29,0 +8a9f2a,0 +8a9f2b,0 +8a9f2c,0 +8a9f2d,0 +8a9f2e,0 +8a9f50,0 +8a9f51,0 +8a9f52,0 +8a9f53,0 +8a9f55,0 +8a9f56,0 +8a9f57,0 +8a9f58,0 +8a9f59,0 +8a9f5a,0 +8a9f5b,0 +8a9f5c,0 +8a9f5d,0 +8a9f5e,0 +8a9f5f,0 +8a9f64,0 +8a9f65,0 +8a9f66,0 +8a9f67,0 +8a9f68,0 +8a9f69,0 +8a9f6a,0 +8a9f6b,0 +8a9f6c,0 +8a9f6d,0 +8a9f6e,0 +a98c30,c +a98c31,10 +a98c32,a +a98c33,cc +a9e838,8 +a9e839,10 +a9e83a,d +a9e83b,c1 +ac9abc,c +ac9abd,10 +ac9abe,b +ac9abf,df +ac9ac1,0 +ac9ac2,0 +ac9ac3,0 +acce88,c +acce89,10 +acce8a,b +acce8b,d0 +acce8c,0 +acce8d,0 +acce8e,0 +acce8f,0 +acce90,0 +acce91,0 +acce94,0 +acce97,0 +acce98,0 +acce99,0 +acce9b,0 +ae59e0,8 +ae59e1,10 +ae59e2,c +ae59e3,f7 +ae5df0,c +ae5df1,10 +ae5df2,d +ae5df8,c +ae5df9,10 +ae5dfa,b +ae5dfb,da +ae5e04,0 +ae5e05,0 +ae5e07,0 +ae6e48,c +ae6e49,10 +ae6e4a,b +ae6e4b,d5 +ae6e4c,1 +ae6e4d,f +ae6e4e,c0 +ae6e4f,21 +b06400,82 +b06402,e +b06403,de +b0640c,31 +b0640d,f8 +b0640e,0 +b0640f,2 +b06c2c,c +b06c2d,10 +b06c2e,d +b06c2f,d6 +b06c31,28 +b06c33,20 +b17129,10 +b1712a,15 +b1712b,e0 +b17bb4,af +b17bb5,bf +b17bb6,0 +b17bb7,1c +b17bb8,af +b17bb9,a4 +b17bba,1 +b17bbb,40 +b17bbc,3c +b17bbd,4 +b17bbe,80 +b17bbf,40 +b17bc0,3c +b17bc1,5 +b17bc2,3 +b17bc3,48 +b17bc4,c +b17bc5,0 +b17bc6,3 +b17bc7,7c +b17bc8,34 +b17bc9,6 +b17bca,50 +b17bcb,0 +b17bcc,c +b17bcd,10 +b17bce,0 +b17bd0,0 +b17bd1,0 +b17bd2,0 +b17bd3,0 +b54b38,c +b54b39,10 +b54b3a,d +b54b3b,b0 +b54e5c,c +b54e5d,10 +b54e5e,d +b54e5f,8d +baed6c,0 +baed6d,0 +baed6f,0 +bb77b4,0 +bb77b5,0 +bb77b7,0 +bb7890,c +bb7891,10 +bb7892,c +bb7893,d6 +bb7894,0 +bb7895,0 +bb7897,0 +bb7950,c +bb7951,10 +bb7952,c +bb7953,dd +bb7954,0 +bb7955,0 +bb7957,0 +bb7ba0,0 +bb7ba1,0 +bb7ba3,0 +bb7bfc,0 +bb7bfd,0 +bb7bff,0 +bb7c3c,c +bb7c3d,10 +bb7c3e,c +bb7c3f,e4 +bb7c40,0 +bb7c41,0 +bb7c43,0 +bb7c58,c +bb7c59,10 +bb7c5a,c +bb7c5b,cf +bb7c5c,0 +bb7c5d,0 +bb7c5f,0 +bcecbc,8 +bcecbd,10 +bcecbe,a +bcecbf,94 +bcecc1,0 +bcecc2,0 +bcecc3,0 +bcecc4,0 +bcecc5,0 +bcecc7,0 +bcecc8,0 +bcecc9,0 +bcecca,0 +bceccb,0 +bceccc,0 +bceccd,0 +bcecce,0 +bceccf,0 +bcecd0,0 +bcecd1,0 +bcecd3,0 +bda0a1,10 +bda0a2,a +bda0a3,1a +bda0d8,c +bda0d9,10 +bda0da,a +bda0db,72 +bda0e4,0 +bda0e5,0 +bda0e7,0 +bda264,c +bda265,10 +bda266,a +bda267,76 +bda270,0 +bda271,0 +bda273,0 +be5990,c +be5991,10 +be5992,c +be5993,9a +be5994,0 +be5995,0 +be5996,0 +be5997,0 +be9ac0,c +be9ac1,10 +be9ac2,a +be9ac3,a0 +be9ad8,c +be9ad9,10 +be9ada,a +be9adb,a9 +be9ae4,0 +be9ae5,0 +be9bde,83 +be9bdf,83 +c004ec,8 +c004ed,10 +c004ee,c +c004ef,3f +c0067f,64 +c018a0,c +c018a1,10 +c018a2,c +c018a3,54 +c6c7a8,c +c6c7a9,10 +c6c7aa,c +c6c7ab,64 +c6c920,c +c6c921,10 +c6c922,c +c6c923,64 +c892dc,34 +c892dd,e +c892de,0 +c892df,1 +c8931c,34 +c8931d,a +c8931e,0 +c8931f,1 +c89745,10 +c89746,b +c89747,a5 +c89868,92 +c89869,e +c8986a,1d +c8986b,28 +c898a4,92 +c898a5,19 +c898a6,1d +c898a7,29 +c898c8,92 +c898c9,a +c898ca,1d +c898cb,2a +cb6860,c +cb6861,10 +cb6862,c +cb6863,eb +d12f78,34 +d12f79,f +d12f7b,0 +d74964,10 +d74965,0 +d7e140,34 +d7e141,e +d7e142,0 +d7e143,1 +d7e144,80 +d7e146,e +d7e147,de +d7e160,84 +d7e161,88 +d7e163,a4 +d7e164,34 +d7e165,1 +d7e167,63 +d7e168,14 +d7e169,28 +d7e16b,3 +d7e16c,34 +d7e16d,2 +d7e16e,20 +d7e16f,49 +d7e170,10 +d7e171,0 +d7e172,0 +d7e173,6 +d7e174,0 +d7e177,0 +d7e178,94 +d7e179,69 +d7e17a,e +d7e17b,d6 +d7e17c,31 +d7e17d,29 +d7e17e,0 +d7e17f,4 +d7e180,15 +d7e181,20 +d7e183,2 +d7e184,34 +d7e185,2 +d7e186,20 +d7e187,44 +d7e188,34 +d7e189,2 +d7e18a,20 +d7e18b,43 +d7e18c,8f +d7e18d,bf +d7e18f,14 +d7e190,27 +d7e191,bd +d7e192,0 +d7e193,18 +d7e194,3 +d7e195,e0 +d7e197,8 +d7e198,0 +d7e199,0 +d7e19a,0 +d7e19b,0 +d7e398,94 +d7e399,89 +d7e39a,e +d7e39b,d6 +d7e39c,31 +d7e39d,28 +d7e39f,10 +d7e3a0,31 +d7e3a1,29 +d7e3a3,4 +d7e3a4,1 +d7e3a5,9 +d7e3a6,40 +d7e3a7,25 +d7e3a8,34 +d7e3a9,9 +d7e3ab,14 +d7e3ac,34 +d7e3ad,1 +d7e3ae,0 +d7e3af,5f +d7e3b0,14 +d7e3b1,23 +d7e3b3,6 +d7e3b4,0 +d7e3b5,0 +d7e3b7,0 +d7e3b8,11 +d7e3b9,9 +d7e3bb,4 +d7e3bc,0 +d7e3bd,0 +d7e3be,0 +d7e3bf,0 +d7e3c0,34 +d7e3c1,2 +d7e3c2,0 +d7e3c3,1 +d7e3c4,3 +d7e3c5,e0 +d7e3c7,8 +d7e3c8,0 +d7e3c9,0 +d7e3cb,0 +d7e3cc,14 +d7e3cd,c2 +d7e3cf,9 +d7e3d0,34 +d7e3d1,1 +d7e3d3,63 +d7e3d4,14 +d7e3d5,23 +d7e3d7,7 +d7e3d8,8c +d7e3d9,8a +d7e3db,10 +d7e3dc,15 +d7e3dd,40 +d7e3df,5 +d7e3e0,0 +d7e3e1,0 +d7e3e2,0 +d7e3e3,0 +d7e3e4,15 +d7e3e5,9 +d7e3e7,3 +d7e3e8,34 +d7e3e9,2 +d7e3eb,1 +d7e3ec,3 +d7e3ed,e0 +d7e3ef,8 +d7e3f0,0 +d7e3f1,0 +d7e3f2,0 +d7e3f3,0 +d7e3f4,34 +d7e3f5,2 +d7e3f6,0 +d7e3f7,0 +d7e3f8,3 +d7e3f9,e0 +d7e3fa,0 +d7e3fb,8 +d7e3fc,0 +d7e3fd,0 +d7e3ff,0 +d7e76c,8f +d7e76d,b8 +d7e76e,0 +d7e76f,44 +d7e778,87 +d7e779,18 +d7e77b,a4 +d7e77c,80 +d7e77d,49 +d7e77e,e +d7e77f,de +d7e784,34 +d7e786,0 +d7e787,1 +d7e788,2 +d7e789,0 +d7e78a,20 +d7e78b,21 +d7e798,15 +d7e79b,2 +d7e79c,34 +d7e79d,19 +d7e79e,0 +d7e79f,5f +d7e7a0,17 +d7e7a1,38 +d7e7a2,0 +d7e7a3,5 +d7e7a4,ae +d7e7a5,b +d7e7a6,1 +d7e7a7,80 +d7e890,0 +d7e891,0 +d7e893,0 +d7e8a0,10 +d7e8a1,0 +d7e8a3,7 +d7e8a4,31 +d7e8a5,4a +d7e8a7,4 +d7e8b0,0 +d7e8b3,0 +d7e8b4,0 +d7e8b5,0 +d7e8b7,0 +d7e8c0,34 +d7e8c1,b +d7e8c2,0 +d7e8c3,14 +d7e8c8,1 +d7e8c9,4b +d7e8ca,50 +d7e8cb,25 +d7e8cc,15 +d7e8cd,4b +d7e8cf,14 +d7e8d4,34 +d7e8d5,e +d7e8d6,0 +d7e8d7,1 +d7e8d8,80 +d7e8da,e +d7e8db,de +d7e8e0,57 +d7e8e3,f +d7ebbc,c +d7ebbd,10 +d7ebbe,b +d7ebbf,e2 +d7ec1c,0 +d7ec1d,0 +d7ec1f,0 +d7ec20,34 +d7ec23,5 +db13d3,76 +db532c,c +db532d,10 +db532e,b +db532f,f2 +df264f,76 +df7cb0,c +df7cb1,10 +df7cb2,c +df7cb3,84 +e09f68,80 +e09f6a,e +e09f6b,de +e09f74,31 +e09f75,f8 +e09f76,0 +e09f77,4 +e09fb0,c +e09fb1,10 +e09fb2,b +e09fb3,ea +e29388,8 +e29389,10 +e2938a,c +e2938b,9 +e2a044,c +e2a045,10 +e2a046,c +e2a047,12 +e2b0b5,10 +e2b0b6,c +e2b0b7,1a +e2f093,34 +e9e1d8,34 +e9e1d9,9 +e9e1da,40 +e9e1db,0 +e9e1f0,34 +e9e1f2,5b +e9e1f3,8 +e9e200,34 +e9e202,0 +e9e203,a +e9e20d,a9 +ebb85c,c +ebb85d,10 +ebb85e,c +ebb85f,6f +ebb865,40 +ebb867,12 +ebb86c,10 +ebb86d,0 +ebb86e,0 +ebb86f,14 +ec68bc,8f +ec68bd,ad +ec68be,0 +ec68bf,2c +ec68c0,34 +ec68c1,c +ec68c2,0 +ec68c3,a +ec68c4,a5 +ec68c5,ac +ec68c6,1 +ec68c7,10 +ec68c8,c +ec68c9,10 +ec68ca,a +ec68cb,37 +ec68cc,2 +ec68cd,0 +ec68ce,28 +ec68cf,21 +ec68d0,0 +ec68d1,0 +ec68d2,0 +ec68d3,0 +ec68d4,0 +ec68d5,0 +ec68d7,0 +ec68da,0 +ec68db,0 +ec68dc,0 +ec68dd,0 +ec68de,0 +ec68df,0 +ec68e0,0 +ec68e1,0 +ec68e2,0 +ec68e3,0 +ec69ad,ad +ec69af,2c +ec69b0,34 +ec69b1,c +ec69b2,0 +ec69b3,a +ec69b4,a5 +ec69b5,ac +ec69b6,1 +ec69b7,10 +ec69b8,c +ec69b9,10 +ec69ba,a +ec69bb,37 +ec69bc,2 +ec69bd,0 +ec69be,28 +ec69bf,21 +ec69c0,0 +ec69c1,0 +ec69c3,0 +ec69c4,0 +ec69c5,0 +ec69c6,0 +ec69c7,0 +ec69c8,0 +ec69c9,0 +ec69cb,0 +ec69cc,0 +ec69cd,0 +ec69ce,0 +ec69cf,0 +ec69d2,0 +ec69d3,0 +ec9ce7,7a +3480000,27 +3480001,bd +3480002,ff +3480003,e8 +3480004,af +3480005,bf +3480007,10 +3480008,3c +3480009,4 +348000a,80 +348000b,40 +348000c,24 +348000d,84 +348000e,50 +3480010,3c +3480011,5 +3480012,3 +3480013,4b +3480014,24 +3480015,a5 +3480016,30 +3480018,34 +3480019,6 +348001a,b0 +348001c,c +348001e,3 +348001f,7c +3480024,c +3480025,10 +3480026,15 +3480027,d5 +348002c,3c +348002d,2 +348002e,80 +348002f,12 +3480030,24 +3480031,42 +3480032,d2 +3480033,a0 +3480034,24 +3480035,e +3480036,1 +3480037,40 +3480038,3c +3480039,1 +348003a,80 +348003b,10 +348003c,ac +348003d,2e +348003e,e5 +3480040,8f +3480041,bf +3480043,10 +3480044,27 +3480045,bd +3480047,18 +3480048,3 +3480049,e0 +348004b,8 +3481c01,5a +3481c02,3b +3481c03,5d +3481c04,5c +3481c05,5e +3481c06,51 +3481c07,52 +3481c08,53 +3482050,ff +3482051,ff +3482052,ff +3482053,ff +3482054,ff +3482055,ff +3482056,ff +3482057,ff +3482058,80 +3482059,40 +348205a,26 +348205b,f4 +348205c,80 +348205d,40 +348205e,25 +348205f,58 +3482060,ff +3482061,ff +3482062,ff +3482063,ff +3482064,ff +3482065,ff +3482066,ff +3482067,ff +3482068,80 +3482069,40 +348206a,26 +348206b,f4 +348206c,80 +348206d,40 +348206e,25 +348206f,74 +3482070,ff +3482071,ff +3482072,ff +3482073,ff +3482074,ff +3482075,ff +3482076,ff +3482077,ff +3482078,80 +3482079,40 +348207a,26 +348207b,f4 +348207c,80 +348207d,40 +348207e,25 +348207f,9c +3482080,ff +3482081,ff +3482082,ff +3482083,ff +3482084,ff +3482085,ff +3482086,ff +3482087,ff +3482088,80 +3482089,40 +348208a,26 +348208b,f4 +348208c,80 +348208d,40 +348208e,25 +348208f,c4 +3482090,ff +3482091,ff +3482092,ff +3482093,ff +3482094,ff +3482095,ff +3482096,ff +3482097,ff +3482098,80 +3482099,40 +348209a,26 +348209b,f4 +348209c,80 +348209d,40 +348209e,25 +348209f,ec +34820a0,53 +34820a1,41 +34820a2,23 +34820a3,f8 +34820a5,d1 +34820a6,ff +34820a7,ff +34820a8,80 +34820a9,40 +34820aa,26 +34820ab,3c +34820ac,80 +34820ad,40 +34820ae,26 +34820af,14 +34820b0,ff +34820b1,ff +34820b2,ff +34820b3,ff +34820b4,ff +34820b5,ff +34820b6,ff +34820b7,ff +34820b8,80 +34820b9,40 +34820ba,26 +34820bb,f4 +34820bc,80 +34820bd,40 +34820be,26 +34820bf,50 +34820c0,ff +34820c1,ff +34820c2,ff +34820c3,ff +34820c4,ff +34820c5,ff +34820c6,ff +34820c7,ff +34820c8,80 +34820c9,40 +34820ca,26 +34820cb,f4 +34820cc,80 +34820cd,40 +34820ce,26 +34820cf,6c +34820d0,ff +34820d1,ff +34820d2,ff +34820d3,ff +34820d4,ff +34820d5,ff +34820d6,ff +34820d7,ff +34820d8,80 +34820d9,40 +34820da,26 +34820db,f4 +34820dc,80 +34820dd,40 +34820de,26 +34820df,88 +34820e0,53 +34820e1,41 +34820e2,38 +34820e3,43 +34820e5,eb +34820e6,15 +34820e7,ff +34820e8,80 +34820e9,40 +34820ea,27 +34820eb,c +34820ec,80 +34820ed,40 +34820ee,25 +34820ef,50 +34820f0,53 +34820f1,41 +34820f2,37 +34820f3,44 +34820f5,eb +34820f6,16 +34820f7,ff +34820f8,80 +34820f9,40 +34820fa,27 +34820fb,c +34820fc,80 +34820fd,40 +34820fe,25 +34820ff,50 +3482100,53 +3482101,41 +3482102,39 +3482103,45 +3482105,eb +3482106,17 +3482107,ff +3482108,80 +3482109,40 +348210a,27 +348210b,c +348210c,80 +348210d,40 +348210e,25 +348210f,50 +3482110,53 +3482111,41 +3482112,6b +3482113,46 +3482114,1 +3482115,77 +3482116,18 +3482117,ff +3482118,80 +3482119,40 +348211a,27 +348211b,c +348211c,80 +348211d,40 +348211e,25 +348211f,50 +3482120,53 +3482121,41 +3482122,3f +3482123,47 +3482125,f4 +3482126,19 +3482127,ff +3482128,80 +3482129,40 +348212a,27 +348212b,c +348212c,80 +348212d,40 +348212e,25 +348212f,50 +3482130,53 +3482131,41 +3482132,67 +3482133,5d +3482134,1 +3482135,73 +3482136,1c +3482137,ff +3482138,80 +3482139,40 +348213a,27 +348213b,c +348213c,80 +348213d,40 +348213e,25 +348213f,50 +3482140,53 +3482141,41 +3482142,68 +3482143,7a +3482144,1 +3482145,74 +3482146,1d +3482147,ff +3482148,80 +3482149,40 +348214a,27 +348214b,c +348214c,80 +348214d,40 +348214e,25 +348214f,50 +3482150,53 +3482151,41 +3482152,70 +3482153,f9 +3482154,1 +3482155,76 +3482156,1e +3482157,ff +3482158,80 +3482159,40 +348215a,27 +348215b,c +348215c,80 +348215d,40 +348215e,25 +348215f,50 +3482160,53 +3482161,41 +3482162,6a +3482163,97 +3482164,1 +3482165,76 +3482166,20 +3482167,ff +3482168,80 +3482169,40 +348216a,27 +348216b,c +348216c,80 +348216d,40 +348216e,25 +348216f,50 +3482170,53 +3482171,41 +3482172,a +3482173,6 +3482175,b9 +3482176,1 +3482177,3 +3482178,80 +3482179,40 +348217a,27 +348217b,48 +348217c,80 +348217d,40 +348217e,25 +348217f,50 +3482180,53 +3482181,41 +3482182,a +3482183,1c +3482185,b9 +3482186,1 +3482187,4 +3482188,80 +3482189,40 +348218a,27 +348218b,48 +348218c,80 +348218d,40 +348218e,25 +348218f,50 +3482190,53 +3482191,41 +3482192,a +3482193,1d +3482195,b9 +3482196,1 +3482197,5 +3482198,80 +3482199,40 +348219a,27 +348219b,48 +348219c,80 +348219d,40 +348219e,25 +348219f,50 +34821a0,53 +34821a1,41 +34821a2,a +34821a3,1e +34821a5,b9 +34821a6,1 +34821a7,6 +34821a8,80 +34821a9,40 +34821aa,27 +34821ab,48 +34821ac,80 +34821ad,40 +34821ae,25 +34821af,50 +34821b0,53 +34821b1,41 +34821b2,a +34821b3,2a +34821b5,b9 +34821b6,1 +34821b7,7 +34821b8,80 +34821b9,40 +34821ba,27 +34821bb,48 +34821bc,80 +34821bd,40 +34821be,25 +34821bf,50 +34821c0,53 +34821c1,41 +34821c2,a +34821c3,61 +34821c5,b9 +34821c6,1 +34821c7,a +34821c8,80 +34821c9,40 +34821ca,27 +34821cb,48 +34821cc,80 +34821cd,40 +34821ce,25 +34821cf,50 +34821d0,4d +34821d1,41 +34821d2,f5 +34821d3,62 +34821d5,b8 +34821d6,2 +34821d8,80 +34821d9,40 +34821da,27 +34821db,48 +34821dc,80 +34821dd,40 +34821de,25 +34821df,50 +34821e0,4d +34821e1,41 +34821e2,f5 +34821e3,63 +34821e5,b8 +34821e6,2 +34821e7,1 +34821e8,80 +34821e9,40 +34821ea,27 +34821eb,48 +34821ec,80 +34821ed,40 +34821ee,25 +34821ef,50 +34821f0,4d +34821f1,41 +34821f2,f5 +34821f3,64 +34821f5,b8 +34821f6,2 +34821f7,2 +34821f8,80 +34821f9,40 +34821fa,27 +34821fb,48 +34821fc,80 +34821fd,40 +34821fe,25 +34821ff,50 +3482200,4d +3482201,41 +3482202,f5 +3482203,65 +3482205,b8 +3482206,2 +3482207,3 +3482208,80 +3482209,40 +348220a,27 +348220b,48 +348220c,80 +348220d,40 +348220e,25 +348220f,50 +3482210,4d +3482211,41 +3482212,f5 +3482213,7c +3482215,b8 +3482216,2 +3482217,4 +3482218,80 +3482219,40 +348221a,27 +348221b,48 +348221c,80 +348221d,40 +348221e,25 +348221f,50 +3482220,4d +3482221,41 +3482222,f5 +3482223,7d +3482225,b8 +3482226,2 +3482227,5 +3482228,80 +3482229,40 +348222a,27 +348222b,48 +348222c,80 +348222d,40 +348222e,25 +348222f,50 +3482230,4d +3482231,41 +3482232,f5 +3482233,7e +3482235,b8 +3482236,2 +3482237,6 +3482238,80 +3482239,40 +348223a,27 +348223b,48 +348223c,80 +348223d,40 +348223e,25 +348223f,50 +3482240,4d +3482241,41 +3482242,f5 +3482243,7f +3482245,b8 +3482246,2 +3482247,7 +3482248,80 +3482249,40 +348224a,27 +348224b,48 +348224c,80 +348224d,40 +348224e,25 +348224f,50 +3482250,4d +3482251,41 +3482252,f5 +3482253,a2 +3482255,b8 +3482256,2 +3482257,8 +3482258,80 +3482259,40 +348225a,27 +348225b,48 +348225c,80 +348225d,40 +348225e,25 +348225f,50 +3482260,4d +3482261,41 +3482262,f5 +3482263,87 +3482265,b8 +3482266,2 +3482267,9 +3482268,80 +3482269,40 +348226a,27 +348226b,48 +348226c,80 +348226d,40 +348226e,25 +348226f,50 +3482270,4d +3482271,41 +3482272,e4 +3482273,88 +3482275,c8 +3482276,4 +3482278,80 +3482279,40 +348227a,27 +348227b,48 +348227c,80 +348227d,40 +348227e,25 +348227f,50 +3482280,4d +3482281,41 +3482282,e4 +3482283,89 +3482285,c8 +3482286,4 +3482287,1 +3482288,80 +3482289,40 +348228a,27 +348228b,48 +348228c,80 +348228d,40 +348228e,25 +348228f,50 +3482290,4d +3482291,41 +3482292,e4 +3482293,8a +3482295,c8 +3482296,4 +3482297,2 +3482298,80 +3482299,40 +348229a,27 +348229b,48 +348229c,80 +348229d,40 +348229e,25 +348229f,50 +34822a0,4d +34822a1,41 +34822a2,e4 +34822a3,8b +34822a5,c8 +34822a6,4 +34822a7,3 +34822a8,80 +34822a9,40 +34822aa,27 +34822ab,48 +34822ac,80 +34822ad,40 +34822ae,25 +34822af,50 +34822b0,4d +34822b1,41 +34822b2,e4 +34822b3,8c +34822b5,c8 +34822b6,4 +34822b7,4 +34822b8,80 +34822b9,40 +34822ba,27 +34822bb,48 +34822bc,80 +34822bd,40 +34822be,25 +34822bf,50 +34822c0,4d +34822c1,41 +34822c2,e4 +34822c3,8e +34822c5,c8 +34822c6,4 +34822c7,5 +34822c8,80 +34822c9,40 +34822ca,27 +34822cb,48 +34822cc,80 +34822cd,40 +34822ce,25 +34822cf,50 +34822d0,4d +34822d1,41 +34822d2,e4 +34822d3,8f +34822d5,c8 +34822d6,4 +34822d7,6 +34822d8,80 +34822d9,40 +34822da,27 +34822db,48 +34822dc,80 +34822dd,40 +34822de,25 +34822df,50 +34822e0,4d +34822e1,41 +34822e2,e4 +34822e3,a3 +34822e5,c8 +34822e6,4 +34822e7,7 +34822e8,80 +34822e9,40 +34822ea,27 +34822eb,48 +34822ec,80 +34822ed,40 +34822ee,25 +34822ef,50 +34822f0,4d +34822f1,41 +34822f2,e4 +34822f3,a5 +34822f5,c8 +34822f6,4 +34822f7,8 +34822f8,80 +34822f9,40 +34822fa,27 +34822fb,48 +34822fc,80 +34822fd,40 +34822fe,25 +34822ff,50 +3482300,4d +3482301,41 +3482302,e4 +3482303,92 +3482305,c8 +3482306,4 +3482307,9 +3482308,80 +3482309,40 +348230a,27 +348230b,48 +348230c,80 +348230d,40 +348230e,25 +348230f,50 +3482310,53 +3482311,41 +3482312,2 +3482313,93 +3482315,aa +3482316,3 +3482317,ff +3482318,80 +3482319,40 +348231a,27 +348231b,64 +348231c,80 +348231d,40 +348231e,25 +348231f,50 +3482320,53 +3482321,41 +3482322,2 +3482323,94 +3482325,aa +3482326,4 +3482327,ff +3482328,80 +3482329,40 +348232a,27 +348232b,64 +348232c,80 +348232d,40 +348232e,25 +348232f,50 +3482330,53 +3482331,41 +3482332,2 +3482333,95 +3482335,aa +3482336,5 +3482337,ff +3482338,80 +3482339,40 +348233a,27 +348233b,64 +348233c,80 +348233d,40 +348233e,25 +348233f,50 +3482340,53 +3482341,41 +3482342,2 +3482343,a6 +3482345,aa +3482346,6 +3482347,ff +3482348,80 +3482349,40 +348234a,27 +348234b,64 +348234c,80 +348234d,40 +348234e,25 +348234f,50 +3482350,53 +3482351,41 +3482352,2 +3482353,a9 +3482355,aa +3482356,7 +3482357,ff +3482358,80 +3482359,40 +348235a,27 +348235b,64 +348235c,80 +348235d,40 +348235e,25 +348235f,50 +3482360,53 +3482361,41 +3482362,2 +3482363,9b +3482365,aa +3482366,8 +3482367,ff +3482368,80 +3482369,40 +348236a,27 +348236b,64 +348236c,80 +348236d,40 +348236e,25 +348236f,50 +3482370,53 +3482371,41 +3482372,2 +3482373,9f +3482375,aa +3482376,b +3482377,ff +3482378,80 +3482379,40 +348237a,27 +348237b,64 +348237c,80 +348237d,40 +348237e,25 +348237f,50 +3482380,53 +3482381,41 +3482382,2 +3482383,a0 +3482385,aa +3482386,c +3482387,ff +3482388,80 +3482389,40 +348238a,27 +348238b,64 +348238c,80 +348238d,40 +348238e,25 +348238f,50 +3482390,53 +3482391,41 +3482392,2 +3482393,a1 +3482395,aa +3482396,d +3482397,ff +3482398,80 +3482399,40 +348239a,27 +348239b,64 +348239c,80 +348239d,40 +348239e,25 +348239f,50 +34823a0,53 +34823a1,3d +34823a2,43 +34823a3,c +34823a5,f8 +34823a6,ff +34823a7,ff +34823a8,80 +34823a9,40 +34823aa,26 +34823ab,fc +34823ac,80 +34823ad,40 +34823ae,25 +34823af,50 +34823b0,4d +34823b1,83 +34823b2,f7 +34823b3,55 +34823b5,b7 +34823b6,ff +34823b7,ff +34823b8,80 +34823b9,40 +34823ba,26 +34823bb,f4 +34823bc,80 +34823bd,40 +34823be,25 +34823bf,50 +34823c0,4d +34823c1,92 +34823c2,db +34823c3,e6 +34823c5,d8 +34823c6,ff +34823c7,ff +34823c8,80 +34823c9,40 +34823ca,26 +34823cb,f4 +34823cc,80 +34823cd,40 +34823ce,26 +34823cf,bc +34823d0,4d +34823d1,93 +34823d2,da +34823d3,e6 +34823d5,d8 +34823d6,ff +34823d7,ff +34823d8,80 +34823d9,40 +34823da,26 +34823db,f4 +34823dc,80 +34823dd,40 +34823de,26 +34823df,bc +34823e0,4d +34823e1,94 +34823e2,d9 +34823e3,e6 +34823e5,d8 +34823e6,ff +34823e7,ff +34823e8,80 +34823e9,40 +34823ea,26 +34823eb,f4 +34823ec,80 +34823ed,40 +34823ee,26 +34823ef,bc +34823f0,4d +34823f1,8e +34823f2,e0 +34823f3,32 +34823f5,ce +34823f6,ff +34823f7,ff +34823f8,80 +34823f9,40 +34823fa,26 +34823fb,f4 +34823fc,80 +34823fd,40 +34823fe,26 +34823ff,d8 +3482400,4d +3482401,8f +3482402,e0 +3482403,32 +3482405,ce +3482406,ff +3482407,ff +3482408,80 +3482409,40 +348240a,26 +348240b,f4 +348240c,80 +348240d,40 +348240e,26 +348240f,d8 +3482410,4d +3482411,90 +3482412,e0 +3482413,32 +3482415,ce +3482416,ff +3482417,ff +3482418,80 +3482419,40 +348241a,26 +348241b,f4 +348241c,80 +348241d,40 +348241e,26 +348241f,d8 +3482420,4d +3482421,8c +3482422,ee +3482423,34 +3482425,bb +3482426,ff +3482427,ff +3482428,80 +3482429,40 +348242a,26 +348242b,f4 +348242c,80 +348242d,40 +348242e,25 +348242f,50 +3482430,4d +3482431,8d +3482432,ee +3482433,34 +3482435,bb +3482436,ff +3482437,ff +3482438,80 +3482439,40 +348243a,26 +348243b,f4 +348243c,80 +348243d,40 +348243e,25 +348243f,50 +3482440,4f +3482441,41 +3482442,ed +3482443,e9 +3482445,bd +3482446,ff +3482447,ff +3482448,80 +3482449,40 +348244a,27 +348244b,8c +348244c,80 +348244d,40 +348244e,25 +348244f,50 +3482450,53 +3482451,41 +3482452,1e +3482453,e4 +3482455,cd +3482456,ff +3482457,ff +3482458,80 +3482459,40 +348245a,27 +348245b,ac +348245c,80 +348245d,40 +348245e,26 +348245f,a4 +3482460,53 +3482461,41 +3482462,1f +3482463,e8 +3482465,cd +3482466,ff +3482467,ff +3482468,80 +3482469,40 +348246a,27 +348246b,cc +348246c,80 +348246d,40 +348246e,25 +348246f,50 +3482470,ff +3482471,ff +3482472,ff +3482473,ff +3482474,ff +3482475,ff +3482476,ff +3482477,ff +3482478,80 +3482479,40 +348247a,26 +348247b,f4 +348247c,80 +348247d,40 +348247e,27 +348247f,f4 +3482480,53 +3482481,41 +3482482,46 +3482483,4a +3482484,1 +3482485,e +3482486,ff +3482487,ff +3482488,80 +3482489,40 +348248a,28 +348248b,3c +348248c,80 +348248d,40 +348248e,28 +348248f,20 +3482490,53 +3482491,41 +3482492,3 +3482493,b0 +3482495,b6 +3482496,6 +3482497,ff +3482498,80 +3482499,40 +348249a,28 +348249b,4c +348249c,80 +348249d,40 +348249e,25 +348249f,50 +34824a0,53 +34824a1,41 +34824a2,4 +34824a3,b1 +34824a5,b6 +34824a6,7 +34824a7,ff +34824a8,80 +34824a9,40 +34824aa,28 +34824ab,4c +34824ac,80 +34824ad,40 +34824ae,25 +34824af,50 +34824b0,53 +34824b1,41 +34824b2,5 +34824b3,b2 +34824b5,b6 +34824b6,8 +34824b7,ff +34824b8,80 +34824b9,40 +34824ba,28 +34824bb,4c +34824bc,80 +34824bd,40 +34824be,25 +34824bf,50 +34824c0,53 +34824c1,41 +34824c2,6 +34824c3,b3 +34824c5,b6 +34824c6,9 +34824c7,ff +34824c8,80 +34824c9,40 +34824ca,28 +34824cb,4c +34824cc,80 +34824cd,40 +34824ce,25 +34824cf,50 +34824d0,53 +34824d1,41 +34824d2,7 +34824d3,b6 +34824d5,b6 +34824d6,a +34824d7,ff +34824d8,80 +34824d9,40 +34824da,28 +34824db,4c +34824dc,80 +34824dd,40 +34824de,25 +34824df,50 +34824e0,53 +34824e1,41 +34824e2,8 +34824e3,b7 +34824e5,b6 +34824e6,b +34824e7,ff +34824e8,80 +34824e9,40 +34824ea,28 +34824eb,4c +34824ec,80 +34824ed,40 +34824ee,25 +34824ef,50 +34824f0,53 +34824f1,41 +34824f2,4 +34824f3,b8 +34824f5,b6 +34824f6,c +34824f7,ff +34824f8,80 +34824f9,40 +34824fa,28 +34824fb,4c +34824fc,80 +34824fd,40 +34824fe,25 +34824ff,50 +3482500,53 +3482501,41 +3482502,6 +3482503,b9 +3482505,b6 +3482506,d +3482507,ff +3482508,80 +3482509,40 +348250a,28 +348250b,4c +348250c,80 +348250d,40 +348250e,25 +348250f,50 +3482510,53 +3482511,41 +3482512,3 +3482513,ba +3482515,b6 +3482516,e +3482517,ff +3482518,80 +3482519,40 +348251a,28 +348251b,4c +348251c,80 +348251d,40 +348251e,25 +348251f,50 +3482520,53 +3482521,41 +3482522,8 +3482523,bb +3482525,b6 +3482526,f +3482527,ff +3482528,80 +3482529,40 +348252a,28 +348252b,4c +348252c,80 +348252d,40 +348252e,25 +348252f,50 +3482530,53 +3482531,41 +3482532,5 +3482533,bc +3482535,b6 +3482536,10 +3482537,ff +3482538,80 +3482539,40 +348253a,28 +348253b,4c +348253c,80 +348253d,40 +348253e,25 +348253f,50 +3482540,53 +3482541,41 +3482542,7 +3482543,bd +3482545,b6 +3482546,11 +3482547,ff +3482548,80 +3482549,40 +348254a,28 +348254b,4c +348254c,80 +348254d,40 +348254e,25 +348254f,50 +3482550,3 +3482551,e0 +3482553,8 +3482554,34 +3482555,a2 +3482558,90 +3482559,88 +348255b,7d +348255c,34 +348255d,1 +348255f,ff +3482560,11 +3482561,1 +3482563,2 +3482564,34 +3482565,2 +3482567,8 +3482568,34 +3482569,2 +348256b,9 +348256c,3 +348256d,e0 +348256f,8 +3482574,90 +3482575,88 +3482577,a3 +3482578,31 +3482579,8 +348257b,c0 +348257c,11 +348257f,5 +3482580,34 +3482581,2 +3482583,54 +3482584,34 +3482585,1 +3482587,40 +3482588,11 +3482589,1 +348258b,2 +348258c,34 +348258d,2 +348258f,35 +3482590,34 +3482591,2 +3482593,36 +3482594,3 +3482595,e0 +3482597,8 +348259c,90 +348259d,88 +348259f,a3 +34825a0,31 +34825a1,8 +34825a3,18 +34825a4,11 +34825a7,5 +34825a8,34 +34825a9,2 +34825ab,32 +34825ac,34 +34825ad,1 +34825af,8 +34825b0,11 +34825b1,1 +34825b3,2 +34825b4,34 +34825b5,2 +34825b7,33 +34825b8,34 +34825b9,2 +34825bb,34 +34825bc,3 +34825bd,e0 +34825bf,8 +34825c4,90 +34825c5,88 +34825c7,a3 +34825c8,31 +34825c9,8 +34825cb,3 +34825cc,11 +34825cf,5 +34825d0,34 +34825d1,2 +34825d3,4 +34825d4,34 +34825d5,1 +34825d7,1 +34825d8,11 +34825d9,1 +34825db,2 +34825dc,34 +34825dd,2 +34825df,30 +34825e0,34 +34825e1,2 +34825e3,31 +34825e4,3 +34825e5,e0 +34825e7,8 +34825ec,90 +34825ed,88 +34825ef,a2 +34825f0,31 +34825f1,8 +34825f3,c0 +34825f4,11 +34825f7,5 +34825f8,34 +34825f9,2 +34825fb,5 +34825fc,34 +34825fd,1 +34825ff,40 +3482600,11 +3482601,1 +3482603,2 +3482604,34 +3482605,2 +3482607,60 +3482608,34 +3482609,2 +348260b,7b +348260c,3 +348260d,e0 +348260f,8 +3482614,90 +3482615,88 +3482617,a2 +3482618,31 +3482619,8 +348261b,30 +348261c,11 +348261f,5 +3482620,34 +3482621,2 +3482623,45 +3482624,34 +3482625,9 +3482627,10 +3482628,11 +3482629,9 +348262b,2 +348262c,34 +348262d,2 +348262f,46 +3482630,34 +3482631,a2 +3482634,3 +3482635,e0 +3482637,8 +348263c,90 +348263d,88 +348263f,a2 +3482640,35 +3482641,8 +3482643,30 +3482644,a0 +3482645,88 +3482647,a2 +3482648,3 +3482649,e0 +348264b,8 +3482650,90 +3482651,88 +3482653,a2 +3482654,31 +3482655,8 +3482657,6 +3482658,11 +348265b,2 +348265c,34 +348265d,2 +348265f,37 +3482660,34 +3482661,2 +3482663,38 +3482664,3 +3482665,e0 +3482667,8 +348266c,90 +348266d,88 +348266f,a1 +3482670,31 +3482671,8 +3482673,20 +3482674,11 +3482677,2 +3482678,34 +3482679,2 +348267b,79 +348267c,34 +348267d,2 +348267f,7a +3482680,3 +3482681,e0 +3482683,8 +3482688,90 +3482689,88 +348268b,a1 +348268c,31 +348268d,8 +348268f,4 +3482690,11 +3482693,2 +3482694,34 +3482695,2 +3482697,77 +3482698,34 +3482699,2 +348269b,78 +348269c,3 +348269d,e0 +348269f,8 +34826a4,90 +34826a5,88 +34826a7,32 +34826a8,11 +34826ab,2 +34826ac,34 +34826ad,2 +34826af,c0 +34826b0,34 +34826b1,2 +34826b3,c1 +34826b4,3 +34826b5,e0 +34826b7,8 +34826bc,90 +34826bd,88 +34826bf,a3 +34826c0,31 +34826c1,8 +34826c3,3 +34826c4,11 +34826c7,2 +34826c8,34 +34826c9,2 +34826cb,4d +34826cc,34 +34826cd,a2 +34826d0,3 +34826d1,e0 +34826d3,8 +34826d8,90 +34826d9,88 +34826db,a3 +34826dc,31 +34826dd,8 +34826df,18 +34826e0,11 +34826e3,2 +34826e4,34 +34826e5,2 +34826e7,4d +34826e8,34 +34826e9,a2 +34826ec,3 +34826ed,e0 +34826ef,8 +34826f4,3 +34826f5,e0 +34826f7,8 +34826fc,34 +34826fd,8 +34826ff,1 +3482700,a0 +3482701,88 +3482703,3e +3482704,3 +3482705,e0 +3482707,8 +348270c,24 +348270d,88 +348270f,86 +3482710,24 +3482711,9 +3482712,ff +3482713,ff +3482714,25 +3482715,29 +3482717,1 +3482718,34 +3482719,1 +348271b,3 +348271d,29 +348271e,8 +348271f,2a +3482720,14 +3482721,20 +3482723,7 +3482728,1 +3482729,9 +348272a,50 +348272b,21 +348272c,91 +348272d,4b +3482730,34 +3482731,1 +3482733,ff +3482734,15 +3482735,61 +3482736,ff +3482737,f7 +348273c,a1 +348273d,45 +3482740,3 +3482741,e0 +3482743,8 +3482748,24 +3482749,88 +348274b,a8 +348274c,1 +348274d,6 +348274e,40 +348274f,21 +3482750,91 +3482751,9 +3482754,1 +3482755,25 +3482756,48 +3482757,25 +3482758,a1 +3482759,9 +348275c,3 +348275d,e0 +348275f,8 +3482764,24 +3482765,88 +3482767,bc +3482768,1 +3482769,5 +348276a,40 +348276b,21 +348276c,81 +348276d,9 +3482770,5 +3482771,21 +3482773,2 +3482778,34 +3482779,9 +348277c,25 +348277d,29 +348277f,1 +3482780,a1 +3482781,9 +3482784,3 +3482785,e0 +3482787,8 +348278c,34 +348278d,8 +348278f,1 +3482790,a0 +3482791,88 +3482793,3d +3482794,34 +3482795,8 +3482797,14 +3482798,a0 +3482799,88 +348279b,cf +348279c,34 +348279d,8 +348279e,1 +348279f,40 +34827a0,a4 +34827a1,88 +34827a2,14 +34827a3,24 +34827a4,3 +34827a5,e0 +34827a7,8 +34827ac,34 +34827ad,8 +34827af,1 +34827b0,a0 +34827b1,88 +34827b3,32 +34827b4,a0 +34827b5,88 +34827b7,3a +34827b8,34 +34827b9,8 +34827bb,30 +34827bc,a4 +34827bd,88 +34827be,13 +34827bf,f4 +34827c0,a0 +34827c1,88 +34827c3,33 +34827c4,3 +34827c5,e0 +34827c7,8 +34827cc,34 +34827cd,8 +34827cf,2 +34827d0,a0 +34827d1,88 +34827d3,32 +34827d4,34 +34827d5,8 +34827d7,1 +34827d8,a0 +34827d9,88 +34827db,3a +34827dc,a0 +34827dd,88 +34827df,3c +34827e0,34 +34827e1,8 +34827e3,60 +34827e4,a4 +34827e5,88 +34827e6,13 +34827e7,f4 +34827e8,a0 +34827e9,88 +34827eb,33 +34827ec,3 +34827ed,e0 +34827ef,8 +34827f4,90 +34827f5,88 +34827f7,7c +34827f8,34 +34827f9,1 +34827fb,ff +34827fc,11 +34827fd,1 +34827ff,6 +3482800,34 +3482801,2 +3482803,6b +3482804,90 +3482805,88 +3482807,94 +3482808,2d +3482809,8 +348280b,6 +348280c,11 +348280f,2 +3482810,34 +3482811,2 +3482813,6a +3482814,34 +3482815,2 +3482817,3 +3482818,3 +3482819,e0 +348281b,8 +3482820,90 +3482821,88 +3482823,7b +3482824,34 +3482825,1 +3482827,ff +3482828,11 +3482829,1 +348282b,2 +348282c,34 +348282d,a2 +3482830,34 +3482831,2 +3482833,c +3482834,3 +3482835,e0 +3482837,8 +348283c,34 +348283d,8 +348283f,7 +3482840,a0 +3482841,88 +3482843,7b +3482844,3 +3482845,e0 +3482847,8 +348284c,34 +348284d,8 +348284f,1 +3482851,a8 +3482852,40 +3482853,4 +3482854,8c +3482855,89 +3482857,a4 +3482858,1 +3482859,28 +348285a,48 +348285b,25 +348285c,ac +348285d,89 +348285f,a4 +3482860,3 +3482861,e0 +3482863,8 +3482868,30 +3482869,84 +348286b,ff +348286c,3c +348286d,8 +348286e,80 +348286f,12 +3482870,25 +3482871,8 +3482872,a5 +3482873,d0 +3482874,34 +3482875,1 +3482877,8c +3482878,10 +3482879,81 +348287b,16 +348287c,91 +348287d,2 +348287f,75 +3482880,34 +3482881,1 +3482883,8d +3482884,10 +3482885,81 +3482887,13 +3482888,91 +3482889,2 +348288b,75 +348288c,10 +348288d,80 +348288f,11 +3482890,91 +3482891,2 +3482893,74 +3482894,34 +3482895,1 +3482897,8a +3482898,10 +3482899,81 +348289b,e +348289c,91 +348289d,2 +348289f,74 +34828a0,34 +34828a1,1 +34828a3,8b +34828a4,10 +34828a5,81 +34828a7,b +34828a8,91 +34828a9,2 +34828ab,74 +34828ac,34 +34828ad,1 +34828af,58 +34828b0,10 +34828b1,81 +34828b3,8 +34828b4,34 +34828b5,2 +34828b8,34 +34828b9,1 +34828bb,78 +34828bc,10 +34828bd,81 +34828bf,5 +34828c0,34 +34828c1,2 +34828c4,34 +34828c5,1 +34828c7,79 +34828c8,10 +34828c9,81 +34828cb,2 +34828cc,34 +34828cd,2 +34828d0,34 +34828d1,2 +34828d3,ff +34828d4,3 +34828d5,e0 +34828d7,8 +34828dc,27 +34828dd,bd +34828de,ff +34828df,e0 +34828e0,af +34828e1,bf +34828e3,10 +34828e4,af +34828e5,b0 +34828e7,14 +34828e8,c +34828e9,10 +34828ea,b +34828eb,13 +34828f0,4 +34828f1,41 +34828f3,2 +34828f8,34 +34828f9,2 +34828fb,5b +34828fd,40 +34828fe,20 +34828ff,21 +3482900,c +3482901,10 +3482902,b +3482903,84 +3482908,10 +3482909,60 +348290b,16 +348290c,af +348290d,a3 +348290f,1c +3482910,3c +3482911,8 +3482912,80 +3482913,40 +3482914,25 +3482915,8 +3482916,20 +3482918,85 +3482919,9 +348291b,2 +348291c,11 +348291d,20 +348291f,3 +3482920,34 +3482921,a +3482923,1 +3482924,10 +3482927,c +3482928,a5 +3482929,a +348292c,3c +348292d,4 +348292e,80 +348292f,12 +3482930,24 +3482931,84 +3482932,a5 +3482933,d0 +3482934,90 +3482935,65 +3482937,6 +3482938,90 +3482939,66 +348293b,7 +348293c,8c +348293d,69 +348293f,8 +3482940,1 +3482941,20 +3482942,f8 +3482943,9 +3482948,8f +3482949,a3 +348294b,1c +348294c,90 +348294d,65 +348294f,1 +3482950,c +3482951,1 +3482952,bf +3482953,73 +3482954,2 +3482955,20 +3482956,20 +3482957,21 +3482958,8f +3482959,a3 +348295b,1c +348295c,90 +348295d,65 +348295f,3 +3482960,10 +3482963,11 +3482964,3c +3482965,9 +3482966,80 +3482967,3b +3482968,25 +3482969,29 +348296a,9e +348296b,7e +348296c,34 +348296d,a +348296f,6 +3482971,4a +3482973,18 +3482976,50 +3482977,12 +3482978,1 +3482979,2a +348297a,80 +348297b,21 +348297c,82 +348297d,5 +3482980,3c +3482981,8 +3482982,80 +3482983,40 +3482984,25 +3482985,8 +3482986,20 +3482988,85 +3482989,9 +348298b,2 +348298c,11 +348298d,20 +348298f,3 +3482990,34 +3482991,a +3482993,1 +3482994,a5 +3482995,a +3482998,34 +3482999,5 +348299b,41 +348299c,c +348299d,1 +348299e,bf +348299f,73 +34829a0,2 +34829a1,20 +34829a2,20 +34829a3,21 +34829a4,92 +34829a5,5 +34829a7,3 +34829a8,2 +34829a9,20 +34829aa,20 +34829ab,21 +34829ac,c +34829ad,3 +34829ae,73 +34829af,85 +34829b2,30 +34829b3,21 +34829b4,8f +34829b5,bf +34829b7,10 +34829b8,8f +34829b9,b0 +34829bb,14 +34829bc,27 +34829bd,bd +34829bf,20 +34829c0,3 +34829c1,e0 +34829c3,8 +34829c8,8f +34829c9,a6 +34829cb,30 +34829cc,84 +34829cd,c5 +34829cf,4 +34829d0,8 +34829d1,10 +34829d2,a +34829d3,7a +34829d8,8f +34829d9,b9 +34829db,2c +34829dc,87 +34829dd,25 +34829df,4 +34829e0,8 +34829e1,10 +34829e2,a +34829e3,7a +34829e8,3c +34829e9,a +34829ea,80 +34829eb,40 +34829ec,25 +34829ed,4a +34829ee,20 +34829ef,8 +34829f0,8d +34829f1,4b +34829f3,c +34829f4,11 +34829f5,60 +34829f7,2 +34829fc,95 +34829fd,45 +34829ff,4 +3482a00,3c +3482a01,a +3482a02,80 +3482a03,1e +3482a04,25 +3482a05,4a +3482a06,89 +3482a07,84 +3482a08,a5 +3482a09,40 +3482a0c,3c +3482a0d,9 +3482a0e,80 +3482a0f,40 +3482a10,25 +3482a11,29 +3482a12,20 +3482a13,18 +3482a14,81 +3482a15,2a +3482a17,3 +3482a18,5 +3482a19,40 +3482a1b,b +3482a1c,1 +3482a1d,2a +3482a1e,48 +3482a1f,20 +3482a20,81 +3482a21,28 +3482a24,34 +3482a25,a +3482a27,7f +3482a28,15 +3482a29,a +3482a2b,6 +3482a30,3c +3482a31,a +3482a32,80 +3482a33,12 +3482a34,25 +3482a35,4a +3482a36,a5 +3482a37,d0 +3482a38,85 +3482a39,48 +3482a3b,90 +3482a3c,21 +3482a3d,8 +3482a3f,1 +3482a40,a5 +3482a41,48 +3482a43,90 +3482a44,a1 +3482a45,20 +3482a48,3 +3482a49,e0 +3482a4b,8 +3482a50,3c +3482a51,8 +3482a52,80 +3482a53,40 +3482a54,25 +3482a55,8 +3482a56,20 +3482a57,8 +3482a58,8d +3482a59,9 +3482a5b,c +3482a5c,11 +3482a5d,20 +3482a5f,2 +3482a64,81 +3482a65,3 +3482a67,2 +3482a69,3 +3482a6a,f +3482a6b,c3 +3482a6d,61 +3482a6e,40 +3482a6f,26 +3482a70,1 +3482a71,1 +3482a72,40 +3482a73,23 +3482a74,a0 +3482a75,88 +3482a76,8 +3482a77,52 +3482a78,3 +3482a79,e0 +3482a7b,8 +3482a80,90 +3482a81,45 +3482a83,3 +3482a84,3c +3482a85,8 +3482a86,80 +3482a87,40 +3482a88,25 +3482a89,8 +3482a8a,20 +3482a8b,8 +3482a8c,8d +3482a8d,9 +3482a8f,c +3482a90,11 +3482a91,20 +3482a93,2 +3482a98,91 +3482a99,5 +3482a9b,3 +3482a9c,3 +3482a9d,e0 +3482a9f,8 +3482aa4,8f +3482aa5,a2 +3482aa7,24 +3482aa8,90 +3482aa9,45 +3482aac,3c +3482aad,8 +3482aae,80 +3482aaf,40 +3482ab0,25 +3482ab1,8 +3482ab2,20 +3482ab4,85 +3482ab5,9 +3482ab7,2 +3482ab8,11 +3482ab9,20 +3482abb,4 +3482abc,34 +3482abd,a +3482abf,1 +3482ac0,a5 +3482ac1,a +3482ac4,10 +3482ac7,18 +3482ac8,34 +3482ac9,5 +3482acb,41 +3482acc,3c +3482acd,8 +3482ace,80 +3482acf,40 +3482ad0,25 +3482ad1,8 +3482ad2,20 +3482ad3,8 +3482ad4,8d +3482ad5,9 +3482ad7,c +3482ad8,11 +3482ad9,20 +3482adb,13 +3482ae0,91 +3482ae1,5 +3482ae3,1 +3482ae4,af +3482ae5,a4 +3482ae8,af +3482ae9,a5 +3482aeb,4 +3482aec,af +3482aed,a6 +3482aef,8 +3482af0,27 +3482af1,bd +3482af2,ff +3482af3,e8 +3482af4,af +3482af5,bf +3482af7,10 +3482af8,3c +3482af9,4 +3482afa,80 +3482afb,12 +3482afc,24 +3482afd,84 +3482afe,a5 +3482aff,d0 +3482b00,91 +3482b01,5 +3482b03,6 +3482b04,91 +3482b05,6 +3482b07,7 +3482b08,8d +3482b09,9 +3482b0b,8 +3482b0c,1 +3482b0d,20 +3482b0e,f8 +3482b0f,9 +3482b14,8f +3482b15,bf +3482b17,10 +3482b18,27 +3482b19,bd +3482b1b,18 +3482b1c,8f +3482b1d,a4 +3482b20,8f +3482b21,a5 +3482b23,4 +3482b24,8f +3482b25,a6 +3482b27,8 +3482b28,3 +3482b29,e0 +3482b2b,8 +3482b30,a0 +3482b31,e6 +3482b32,4 +3482b33,24 +3482b34,27 +3482b35,bd +3482b36,ff +3482b37,e0 +3482b38,af +3482b39,a2 +3482b3b,10 +3482b3c,af +3482b3d,a3 +3482b3f,14 +3482b40,af +3482b41,bf +3482b43,18 +3482b44,c +3482b45,10 +3482b46,a +3482b47,d9 +3482b4c,8f +3482b4d,a2 +3482b4f,10 +3482b50,8f +3482b51,a3 +3482b53,14 +3482b54,8f +3482b55,bf +3482b57,18 +3482b58,27 +3482b59,bd +3482b5b,20 +3482b5c,3 +3482b5d,e0 +3482b5f,8 +3482b64,27 +3482b65,bd +3482b66,ff +3482b67,e8 +3482b68,af +3482b69,bf +3482b6b,10 +3482b6c,3c +3482b6d,8 +3482b6e,80 +3482b6f,40 +3482b70,25 +3482b71,8 +3482b72,20 +3482b73,8 +3482b74,ad +3482b78,ad +3482b7b,4 +3482b7c,ad +3482b7f,8 +3482b80,ad +3482b83,c +3482b84,3c +3482b85,8 +3482b86,80 +3482b87,1e +3482b88,25 +3482b89,8 +3482b8a,aa +3482b8b,30 +3482b8c,81 +3482b8d,9 +3482b8e,4 +3482b8f,24 +3482b90,11 +3482b91,20 +3482b93,2a +3482b99,9 +3482b9a,f +3482b9b,c3 +3482b9c,1 +3482b9d,21 +3482b9e,20 +3482b9f,26 +3482ba1,81 +3482ba2,20 +3482ba3,23 +3482ba4,8d +3482ba5,5 +3482ba6,4 +3482ba7,28 +3482ba8,c +3482ba9,10 +3482baa,b +3482bab,13 +3482bb0,4 +3482bb1,40 +3482bb3,22 +3482bb8,34 +3482bb9,44 +3482bbc,c +3482bbd,10 +3482bbe,b +3482bbf,84 +3482bc4,10 +3482bc5,60 +3482bc7,c +3482bcc,3c +3482bcd,8 +3482bce,80 +3482bcf,40 +3482bd0,25 +3482bd1,8 +3482bd2,20 +3482bd3,8 +3482bd4,8c +3482bd5,69 +3482bd8,ad +3482bd9,9 +3482bdc,8c +3482bdd,69 +3482bdf,4 +3482be0,ad +3482be1,9 +3482be3,4 +3482be4,8c +3482be5,69 +3482be7,8 +3482be8,ad +3482be9,9 +3482beb,8 +3482bec,34 +3482bed,9 +3482bef,1 +3482bf0,ad +3482bf1,9 +3482bf3,c +3482bf4,90 +3482bf5,62 +3482bf8,3c +3482bf9,8 +3482bfa,80 +3482bfb,1e +3482bfc,25 +3482bfd,8 +3482bfe,aa +3482bff,30 +3482c00,8d +3482c01,9 +3482c02,4 +3482c03,28 +3482c04,95 +3482c05,2a +3482c08,34 +3482c09,1 +3482c0b,a +3482c0c,15 +3482c0d,41 +3482c0f,6 +3482c14,95 +3482c15,2a +3482c17,1c +3482c18,31 +3482c19,4a +3482c1a,f0 +3482c1b,1f +3482c1d,2 +3482c1e,59 +3482c1f,40 +3482c20,1 +3482c21,4b +3482c22,50 +3482c23,25 +3482c24,a5 +3482c25,2a +3482c27,1c +3482c28,81 +3482c29,9 +3482c2a,4 +3482c2b,24 +3482c2c,5 +3482c2d,21 +3482c2f,2 +3482c35,2 +3482c36,10 +3482c37,23 +3482c38,a1 +3482c39,2 +3482c3a,4 +3482c3b,24 +3482c3c,8f +3482c3d,bf +3482c3f,10 +3482c40,27 +3482c41,bd +3482c43,18 +3482c44,3 +3482c45,e0 +3482c47,8 +3482c4c,27 +3482c4d,bd +3482c4e,ff +3482c4f,e8 +3482c50,af +3482c51,bf +3482c53,10 +3482c54,c +3482c55,10 +3482c56,b +3482c57,21 +3482c5c,24 +3482c5d,1 +3482c5e,ff +3482c5f,ff +3482c60,10 +3482c61,41 +3482c63,4 +3482c68,34 +3482c69,44 +3482c6c,c +3482c6d,10 +3482c6e,b +3482c6f,5f +3482c74,8f +3482c75,bf +3482c77,10 +3482c78,27 +3482c79,bd +3482c7b,18 +3482c7c,3 +3482c7d,e0 +3482c7f,8 +3482c84,3c +3482c85,2 +3482c86,80 +3482c87,1d +3482c88,24 +3482c89,42 +3482c8a,84 +3482c8b,a0 +3482c8c,94 +3482c8d,42 +3482c8f,a4 +3482c90,34 +3482c91,8 +3482c94,34 +3482c95,89 +3482c98,94 +3482c99,aa +3482c9c,34 +3482c9d,1 +3482c9e,1 +3482c9f,9c +3482ca0,15 +3482ca1,41 +3482ca3,8 +3482ca8,34 +3482ca9,8 +3482cab,3 +3482cac,94 +3482cad,ab +3482caf,1c +3482cb0,31 +3482cb1,69 +3482cb3,ff +3482cb4,31 +3482cb5,62 +3482cb6,1f +3482cb9,2 +3482cba,12 +3482cbb,2 +3482cbc,10 +3482cbf,1f +3482cc4,34 +3482cc5,1 +3482cc7,a +3482cc8,15 +3482cc9,41 +3482ccb,e +3482cd0,94 +3482cd1,ab +3482cd3,1c +3482cd4,34 +3482cd5,1 +3482cd7,10 +3482cd8,14 +3482cd9,41 +3482cdb,8 +3482ce0,31 +3482ce1,6c +3482ce2,f +3482ce3,e0 +3482ce4,34 +3482ce5,1 +3482ce6,e +3482ce7,a0 +3482ce8,15 +3482ce9,81 +3482ceb,4 +3482cf0,24 +3482cf1,2 +3482cf2,ff +3482cf3,ff +3482cf4,10 +3482cf7,1f +3482cfc,34 +3482cfd,8 +3482cff,1 +3482d00,31 +3482d01,69 +3482d03,1f +3482d04,34 +3482d05,1 +3482d07,15 +3482d08,15 +3482d09,41 +3482d0b,c +3482d10,34 +3482d11,1 +3482d13,3e +3482d14,10 +3482d15,81 +3482d17,7 +3482d1c,34 +3482d1d,1 +3482d1f,42 +3482d20,10 +3482d21,81 +3482d23,4 +3482d28,24 +3482d29,2 +3482d2a,ff +3482d2b,ff +3482d2c,10 +3482d2f,11 +3482d34,34 +3482d35,8 +3482d37,2 +3482d38,90 +3482d39,a9 +3482d3a,1 +3482d3b,41 +3482d3c,34 +3482d3d,1 +3482d3e,1 +3482d3f,1a +3482d40,15 +3482d41,41 +3482d43,8 +3482d48,34 +3482d49,1 +3482d4b,3e +3482d4c,14 +3482d4d,41 +3482d4f,5 +3482d54,34 +3482d55,8 +3482d57,4 +3482d58,3c +3482d59,b +3482d5a,80 +3482d5b,12 +3482d5c,25 +3482d5d,6b +3482d5e,a5 +3482d5f,d0 +3482d60,81 +3482d61,62 +3482d62,13 +3482d63,97 +3482d65,2 +3482d66,12 +3482d69,48 +3482d6a,10 +3482d6b,25 +3482d6d,2 +3482d6e,12 +3482d71,49 +3482d72,10 +3482d73,25 +3482d74,3 +3482d75,e0 +3482d77,8 +3482d7c,24 +3482d7d,2 +3482d7e,ff +3482d7f,ff +3482d80,3c +3482d81,8 +3482d82,80 +3482d83,40 +3482d84,25 +3482d85,8 +3482d86,1c +3482d88,81 +3482d89,9 +3482d8c,3c +3482d8d,8 +3482d8e,80 +3482d8f,12 +3482d90,25 +3482d91,8 +3482d92,a5 +3482d93,d0 +3482d94,a5 +3482d95,9 +3482d96,14 +3482d97,6 +3482d98,3c +3482d99,8 +3482d9a,80 +3482d9b,40 +3482d9c,25 +3482d9d,8 +3482d9e,f +3482d9f,fc +3482da0,25 +3482da1,8 +3482da3,4 +3482da4,8d +3482da5,9 +3482da8,11 +3482da9,20 +3482dab,17 +3482db1,9 +3482db2,52 +3482db3,2 +3482db4,31 +3482db5,4b +3482db6,f8 +3482db9,b +3482dba,5a +3482dbb,c2 +3482dbc,3c +3482dbd,c +3482dbe,ff +3482dbf,ff +3482dc0,35 +3482dc1,8c +3482dc2,7 +3482dc3,ff +3482dc4,1 +3482dc5,4c +3482dc6,50 +3482dc7,24 +3482dc8,15 +3482dc9,44 +3482dca,ff +3482dcb,f5 +3482dd0,31 +3482dd1,22 +3482dd3,ff +3482dd4,3c +3482dd5,8 +3482dd6,80 +3482dd7,12 +3482dd8,25 +3482dd9,8 +3482dda,a5 +3482ddb,d0 +3482ddc,a5 +3482ddd,b +3482dde,14 +3482ddf,6 +3482de0,3c +3482de1,9 +3482de2,80 +3482de3,40 +3482de4,25 +3482de5,29 +3482de6,20 +3482de8,3c +3482de9,c +3482dea,80 +3482deb,40 +3482dec,25 +3482ded,8c +3482dee,1c +3482df0,81 +3482df1,8c +3482df4,11 +3482df5,6c +3482df7,4 +3482df8,a5 +3482df9,20 +3482dfb,2 +3482dfc,a1 +3482dfd,2b +3482dff,2 +3482e00,a1 +3482e01,22 +3482e03,3 +3482e04,ad +3482e05,24 +3482e07,4 +3482e08,3 +3482e09,e0 +3482e0b,8 +3482e10,27 +3482e11,bd +3482e12,ff +3482e13,e0 +3482e14,af +3482e15,b0 +3482e17,10 +3482e18,af +3482e19,b1 +3482e1b,14 +3482e1c,af +3482e1d,bf +3482e1f,18 +3482e20,34 +3482e21,82 +3482e24,34 +3482e25,50 +3482e28,26 +3482e29,8 +3482e2a,ff +3482e2b,80 +3482e2c,5 +3482e2f,12 +3482e34,3c +3482e35,11 +3482e36,80 +3482e37,40 +3482e38,26 +3482e39,31 +3482e3a,20 +3482e3b,50 +3482e3c,34 +3482e3d,9 +3482e3f,10 +3482e40,1 +3482e41,9 +3482e43,18 +3482e46,40 +3482e47,12 +3482e48,2 +3482e49,28 +3482e4a,88 +3482e4b,21 +3482e4c,3c +3482e4d,4 +3482e4e,80 +3482e4f,12 +3482e50,24 +3482e51,84 +3482e52,a5 +3482e53,d0 +3482e54,36 +3482e55,5 +3482e58,8e +3482e59,28 +3482e5b,c +3482e5c,1 +3482e5e,f8 +3482e5f,9 +3482e64,14 +3482e65,50 +3482e66,ff +3482e67,ef +3482e6c,36 +3482e6d,23 +3482e70,10 +3482e73,2 +3482e78,34 +3482e79,3 +3482e7c,8f +3482e7d,b0 +3482e7f,10 +3482e80,8f +3482e81,b1 +3482e83,14 +3482e84,8f +3482e85,bf +3482e87,18 +3482e88,27 +3482e89,bd +3482e8b,20 +3482e8c,3 +3482e8d,e0 +3482e8f,8 +3482e94,8c +3482e95,88 +3482e96,1d +3482e97,2c +3482e98,34 +3482e99,9 +3482e9b,1 +3482e9d,9 +3482e9e,4e +3482ea0,1 +3482ea1,9 +3482ea2,10 +3482ea3,24 +3482ea4,10 +3482ea5,40 +3482ea7,24 +3482eac,94 +3482ead,ca +3482eae,2 +3482eaf,dc +3482eb0,3c +3482eb1,b +3482eb2,80 +3482eb3,12 +3482eb4,25 +3482eb5,6b +3482eb6,a5 +3482eb7,d0 +3482eb8,94 +3482eb9,8c +3482ebb,a4 +3482ebc,34 +3482ebd,1 +3482ebf,3d +3482ec0,11 +3482ec1,81 +3482ec3,a +3482ec9,8a +3482eca,60 +3482ecb,21 +3482ecc,91 +3482ecd,8d +3482ece,1d +3482ecf,28 +3482ed0,15 +3482ed1,a0 +3482ed3,19 +3482ed8,34 +3482ed9,d +3482edb,1 +3482edc,a1 +3482edd,8d +3482ede,1d +3482edf,28 +3482ee0,25 +3482ee1,4a +3482ee3,3 +3482ee4,10 +3482ee7,9 +3482eec,34 +3482eed,c +3482eef,1 +3482ef0,1 +3482ef1,4c +3482ef2,60 +3482ef3,4 +3482ef4,91 +3482ef5,6d +3482ef6,e +3482ef7,f2 +3482ef8,1 +3482ef9,ac +3482efa,70 +3482efb,24 +3482efc,15 +3482efd,c0 +3482eff,e +3482f04,1 +3482f05,ac +3482f06,70 +3482f07,25 +3482f08,a1 +3482f09,6e +3482f0a,e +3482f0b,f2 +3482f0c,1 +3482f0d,29 +3482f0e,48 +3482f0f,27 +3482f10,1 +3482f11,9 +3482f12,40 +3482f13,24 +3482f14,ac +3482f15,88 +3482f16,1d +3482f17,2c +3482f18,3c +3482f19,8 +3482f1a,80 +3482f1b,40 +3482f1c,25 +3482f1d,8 +3482f1e,1c +3482f1f,3 +3482f20,1 +3482f21,a +3482f22,40 +3482f23,21 +3482f24,81 +3482f25,8 +3482f28,3c +3482f29,9 +3482f2a,80 +3482f2b,40 +3482f2c,25 +3482f2d,29 +3482f2e,20 +3482f2f,18 +3482f30,a1 +3482f31,28 +3482f34,34 +3482f35,2 +3482f38,3 +3482f39,e0 +3482f3b,8 +3482f40,3c +3482f41,8 +3482f42,80 +3482f43,40 +3482f44,25 +3482f45,8 +3482f46,1c +3482f47,1 +3482f48,81 +3482f49,8 +3482f4c,10 +3482f4f,22 +3482f54,3c +3482f55,8 +3482f56,80 +3482f57,40 +3482f58,25 +3482f59,8 +3482f5a,1c +3482f5b,2 +3482f5c,81 +3482f5d,8 +3482f60,10 +3482f63,1d +3482f68,34 +3482f69,2 +3482f6b,ff +3482f6c,20 +3482f6d,e8 +3482f6e,ff +3482f6f,a6 +3482f70,21 +3482f71,8 +3482f73,61 +3482f74,10 +3482f77,18 +3482f7c,34 +3482f7d,8 +3482f7f,64 +3482f80,10 +3482f83,15 +3482f88,3c +3482f89,1 +3482f8a,80 +3482f8b,12 +3482f8c,24 +3482f8d,21 +3482f8e,a5 +3482f8f,d0 +3482f90,80 +3482f91,28 +3482f92,e +3482f93,de +3482f94,35 +3482f95,8 +3482f97,1 +3482f98,a0 +3482f99,28 +3482f9a,e +3482f9b,de +3482f9c,34 +3482f9d,8 +3482f9f,68 +3482fa0,10 +3482fa3,d +3482fa8,3c +3482fa9,1 +3482faa,80 +3482fab,12 +3482fac,24 +3482fad,21 +3482fae,a5 +3482faf,d0 +3482fb0,80 +3482fb1,28 +3482fb2,e +3482fb3,de +3482fb4,35 +3482fb5,8 +3482fb7,4 +3482fb8,a0 +3482fb9,28 +3482fba,e +3482fbb,de +3482fbc,34 +3482fbd,8 +3482fbf,6a +3482fc0,10 +3482fc3,5 +3482fc8,34 +3482fc9,5 +3482fcb,3 +3482fcc,34 +3482fcd,8 +3482fcf,6b +3482fd0,10 +3482fd3,1 +3482fd8,3c +3482fd9,9 +3482fda,80 +3482fdb,40 +3482fdc,25 +3482fdd,29 +3482fde,20 +3482fdf,18 +3482fe0,3c +3482fe1,a +3482fe2,80 +3482fe3,40 +3482fe4,25 +3482fe5,4a +3482fe6,20 +3482fe7,1b +3482fe8,81 +3482fe9,2c +3482fec,11 +3482fed,88 +3482fef,b +3482ff0,21 +3482ff1,29 +3482ff3,1 +3482ff4,15 +3482ff5,2a +3482ff6,ff +3482ff7,fc +3482ffc,3c +3482ffd,9 +3482ffe,80 +3482fff,40 +3483000,25 +3483001,29 +3483002,20 +3483003,17 +3483004,21 +3483005,29 +3483007,1 +3483008,11 +3483009,2a +348300b,4 +348300c,81 +348300d,2c +3483010,15 +3483011,80 +3483012,ff +3483013,fc +3483018,a1 +3483019,28 +348301c,3 +348301d,e0 +348301f,8 +3483025,60 +3483026,78 +3483027,21 +3483028,81 +3483029,ec +348302a,e +348302b,df +348302c,31 +348302d,8e +348302f,80 +3483030,11 +3483031,c0 +3483033,3 +3483034,34 +3483035,3 +3483037,5 +3483038,3 +3483039,e0 +348303b,8 +348303c,34 +348303d,2 +348303f,2 +3483040,3 +3483041,e0 +3483043,8 +3483045,60 +3483046,10 +3483047,21 +3483048,85 +3483049,c2 +348304b,a4 +348304c,3c +348304d,8 +348304e,80 +348304f,12 +3483050,25 +3483051,8 +3483052,a5 +3483053,d0 +3483054,81 +3483055,9 +3483056,e +3483057,df +3483058,35 +3483059,29 +348305b,80 +348305c,a1 +348305d,9 +348305e,e +348305f,df +3483060,3 +3483061,e0 +3483063,8 +3483068,27 +3483069,bd +348306a,ff +348306b,f0 +348306c,af +348306d,bf +348306f,4 +3483070,c +3483071,3 +3483072,58 +3483073,86 +3483078,3c +3483079,c +348307a,80 +348307b,12 +348307c,25 +348307d,8c +348307e,a5 +348307f,d0 +3483080,85 +3483081,8d +3483082,f +3483083,2e +3483084,8d +3483085,98 +3483087,4 +3483088,13 +348308b,2 +348308c,34 +348308d,e +348308f,1 +3483090,34 +3483091,e +3483093,2 +3483094,1 +3483095,ae +3483096,68 +3483097,25 +3483098,a5 +3483099,8d +348309a,f +348309b,2e +348309c,23 +348309d,bd +348309e,ff +348309f,e0 +34830a0,af +34830a1,a8 +34830a3,4 +34830a4,af +34830a5,a9 +34830a7,8 +34830a8,af +34830a9,aa +34830ab,c +34830ac,af +34830ad,ab +34830af,10 +34830b0,af +34830b1,a1 +34830b3,14 +34830b4,35 +34830b5,ab +34830b8,3c +34830b9,8 +34830ba,80 +34830bb,40 +34830bc,25 +34830bd,8 +34830bf,50 +34830c0,8d +34830c1,9 +34830c4,1 +34830c5,9 +34830c6,50 +34830c7,20 +34830c8,ad +34830c9,4b +34830cb,4 +34830cc,21 +34830cd,29 +34830cf,4 +34830d0,ad +34830d1,9 +34830d4,8f +34830d5,a8 +34830d7,4 +34830d8,8f +34830d9,a9 +34830db,8 +34830dc,8f +34830dd,aa +34830df,c +34830e0,8f +34830e1,ab +34830e3,10 +34830e4,8f +34830e5,a1 +34830e7,14 +34830e8,23 +34830e9,bd +34830eb,20 +34830ec,8f +34830ed,bf +34830ef,4 +34830f0,27 +34830f1,bd +34830f3,10 +34830f4,3 +34830f5,e0 +34830f7,8 +34830fc,84 +34830fd,8e +34830ff,1c +3483100,21 +3483101,cd +3483102,ff +3483103,ce +3483104,5 +3483105,a0 +3483107,10 +3483108,34 +3483109,2 +348310c,31 +348310d,a9 +348310f,7 +3483110,34 +3483111,a +3483113,1 +3483114,1 +3483115,2a +3483116,50 +3483117,4 +3483119,d +348311a,48 +348311b,c2 +348311c,3c +348311d,c +348311e,80 +348311f,12 +3483120,25 +3483121,8c +3483122,a5 +3483123,d0 +3483124,1 +3483125,89 +3483126,60 +3483127,20 +3483128,81 +3483129,8b +348312a,5 +348312b,b4 +348312c,1 +348312d,6a +348312e,58 +348312f,24 +3483130,34 +3483131,2 +3483134,11 +3483135,60 +3483137,4 +348313c,34 +348313d,d +348313f,26 +3483140,a4 +3483141,8d +3483143,1c +3483144,34 +3483145,2 +3483147,1 +3483148,3 +3483149,e0 +348314b,8 +3483150,84 +3483151,ae +3483153,1c +3483154,21 +3483155,cd +3483156,ff +3483157,ce +3483158,5 +3483159,a0 +348315b,b +348315c,34 +348315d,2 +3483160,31 +3483161,a9 +3483163,7 +3483164,34 +3483165,a +3483167,1 +3483168,1 +3483169,2a +348316a,50 +348316b,4 +348316d,d +348316e,48 +348316f,c2 +3483170,3c +3483171,c +3483172,80 +3483173,12 +3483174,25 +3483175,8c +3483176,a5 +3483177,d0 +3483178,1 +3483179,89 +348317a,60 +348317b,20 +348317c,81 +348317d,8b +348317e,5 +348317f,b4 +3483180,1 +3483181,6a +3483182,58 +3483183,25 +3483184,a1 +3483185,8b +3483186,5 +3483187,b4 +3483188,3 +3483189,e0 +348318b,8 +3483190,27 +3483191,bd +3483192,ff +3483193,f0 +3483194,af +3483195,bf +3483197,8 +3483198,28 +3483199,81 +348319b,32 +348319c,10 +348319d,20 +348319f,3 +34831a1,80 +34831a2,10 +34831a3,21 +34831a4,3 +34831a5,20 +34831a6,f8 +34831a7,9 +34831ac,8f +34831ad,bf +34831af,8 +34831b0,27 +34831b1,bd +34831b3,10 +34831b4,3 +34831b5,e0 +34831b7,8 +34831bc,3c +34831bd,8 +34831be,80 +34831bf,1d +34831c0,25 +34831c1,8 +34831c2,84 +34831c3,a0 +34831c4,3c +34831c5,9 +34831c6,80 +34831c7,12 +34831c8,25 +34831c9,29 +34831ca,a5 +34831cb,d0 +34831cc,85 +34831cd,a +34831cf,a4 +34831d0,34 +34831d1,1 +34831d3,3e +34831d4,15 +34831d5,41 +34831d7,2 +34831d8,81 +34831d9,2b +34831da,13 +34831db,97 +34831dc,21 +34831dd,6a +34831df,2d +34831e0,86 +34831e1,b +34831e3,1c +34831e4,21 +34831e5,6b +34831e7,1 +34831e8,34 +34831e9,c +34831eb,1 +34831ec,1 +34831ed,6c +34831ee,60 +34831ef,4 +34831f0,34 +34831f1,1 +34831f3,1c +34831f4,1 +34831f5,41 +34831f7,18 +34831fa,68 +34831fb,12 +34831fc,1 +34831fd,2d +34831fe,70 +34831ff,20 +3483200,8d +3483201,cf +3483203,e4 +3483204,1 +3483205,8f +3483206,10 +3483207,24 +3483208,3 +3483209,e0 +348320b,8 +3483210,3c +3483211,8 +3483212,80 +3483213,1d +3483214,25 +3483215,8 +3483216,84 +3483217,a0 +3483218,3c +3483219,9 +348321a,80 +348321b,12 +348321c,25 +348321d,29 +348321e,a5 +348321f,d0 +3483220,85 +3483221,a +3483223,a4 +3483224,34 +3483225,1 +3483227,3e +3483228,15 +3483229,41 +348322b,2 +348322c,81 +348322d,2b +348322e,13 +348322f,97 +3483230,21 +3483231,6a +3483233,2d +3483234,84 +3483235,8b +3483237,1c +3483238,21 +3483239,6b +348323b,1 +348323c,34 +348323d,c +348323f,1 +3483240,1 +3483241,6c +3483242,60 +3483243,4 +3483244,34 +3483245,1 +3483247,1c +3483248,1 +3483249,41 +348324b,18 +348324e,68 +348324f,12 +3483250,1 +3483251,2d +3483252,70 +3483253,20 +3483254,8d +3483255,cf +3483257,e4 +3483258,1 +3483259,8f +348325a,78 +348325b,25 +348325c,ad +348325d,cf +348325f,e4 +3483260,3 +3483261,e0 +3483263,8 +3483268,af +3483269,a4 +348326b,68 +348326c,af +348326d,a5 +348326f,6c +3483270,af +3483271,a6 +3483273,70 +3483274,af +3483275,a7 +3483277,74 +3483278,27 +3483279,bd +348327a,ff +348327b,e8 +348327c,af +348327d,a3 +348327f,10 +3483280,af +3483281,bf +3483283,14 +3483284,3c +3483285,a +3483286,80 +3483287,1e +3483288,25 +3483289,4a +348328a,aa +348328b,30 +348328c,81 +348328d,48 +348328e,6 +348328f,6c +3483290,31 +3483291,8 +3483293,20 +3483294,15 +3483297,1f +348329c,3c +348329d,9 +348329e,80 +348329f,40 +34832a0,25 +34832a1,29 +34832a2,20 +34832a3,1b +34832a4,34 +34832a5,a +34832a7,ff +34832a8,a1 +34832a9,2a +34832ac,3c +34832ad,9 +34832ae,80 +34832af,40 +34832b0,25 +34832b1,29 +34832b2,20 +34832b3,18 +34832b4,24 +34832b5,a +34832b6,ff +34832b7,ff +34832b8,34 +34832b9,c +34832bb,3 +34832bc,21 +34832bd,4a +34832bf,1 +34832c0,11 +34832c1,4c +34832c3,14 +34832c4,1 +34832c5,2a +34832c6,58 +34832c7,20 +34832c8,81 +34832c9,68 +34832cc,11 +34832ce,ff +34832cf,fb +34832d4,3c +34832d5,9 +34832d6,80 +34832d7,40 +34832d8,25 +34832d9,29 +34832da,20 +34832db,1b +34832dc,a1 +34832dd,2a +34832e0,3c +34832e1,9 +34832e2,80 +34832e3,1e +34832e4,25 +34832e5,29 +34832e6,89 +34832e7,84 +34832e8,34 +34832e9,a +34832eb,1 +34832ec,a5 +34832ed,2a +34832f0,3c +34832f1,9 +34832f2,80 +34832f3,48 +34832f4,34 +34832f5,a +34832f7,1 +34832f8,ad +34832f9,2a +34832fa,1 +34832fb,30 +34832fc,3c +34832fd,a +34832fe,80 +34832ff,1e +3483300,25 +3483301,4a +3483302,aa +3483303,30 +3483304,a1 +3483305,48 +3483306,4 +3483307,24 +3483308,ad +3483309,49 +348330a,4 +348330b,28 +348330c,c +348330d,10 +348330e,a +348330f,d9 +3483314,8f +3483315,a3 +3483317,10 +3483318,8f +3483319,bf +348331b,14 +348331c,27 +348331d,bd +348331f,18 +3483320,8f +3483321,a4 +3483323,68 +3483324,8f +3483325,a5 +3483327,6c +3483328,8f +3483329,a6 +348332b,70 +348332c,8f +348332d,a7 +348332f,74 +3483330,84 +3483331,6e +3483332,13 +3483333,c4 +3483334,3 +3483335,e0 +3483337,8 +348333c,93 +348333d,19 +348333f,74 +3483340,34 +3483341,1 +3483343,ff +3483344,17 +3483345,21 +3483347,2 +348334c,34 +348334d,19 +348334f,2c +3483350,3 +3483351,e0 +3483353,8 +3483354,a7 +3483355,b9 +3483357,9a +3483358,93 +3483359,2c +348335b,74 +348335c,34 +348335d,1 +348335f,ff +3483360,15 +3483361,81 +3483363,2 +3483368,34 +3483369,c +348336b,2c +348336c,3 +348336d,e0 +348336f,8 +3483374,91 +3483375,ae +3483377,74 +3483378,34 +3483379,1 +348337b,ff +348337c,15 +348337d,c1 +348337f,2 +3483384,34 +3483385,e +3483387,2c +3483388,3 +3483389,e0 +348338b,8 +348338c,a7 +348338d,ae +348338f,9a +3483390,91 +3483391,cf +3483393,74 +3483394,34 +3483395,1 +3483397,ff +3483398,15 +3483399,e1 +348339b,2 +34833a0,34 +34833a1,f +34833a3,2c +34833a4,3 +34833a5,e0 +34833a7,8 +34833a8,a7 +34833a9,af +34833ab,9a +34833ac,3c +34833ad,8 +34833ae,80 +34833af,40 +34833b0,25 +34833b1,8 +34833b2,20 +34833b3,1c +34833b4,8e +34833b5,9 +34833b7,68 +34833b8,ad +34833b9,9 +34833bc,8e +34833bd,9 +34833bf,6c +34833c0,ad +34833c1,9 +34833c3,4 +34833c4,96 +34833c5,9 +34833c7,70 +34833c8,a5 +34833c9,9 +34833cb,8 +34833cc,96 +34833cd,9 +34833cf,9c +34833d0,a5 +34833d1,9 +34833d3,a +34833d4,3 +34833d5,e0 +34833d7,8 +34833d8,8e +34833d9,e +34833db,4 +34833dc,27 +34833dd,bd +34833de,ff +34833df,e0 +34833e0,af +34833e1,b0 +34833e3,10 +34833e4,af +34833e5,b1 +34833e7,14 +34833e8,af +34833e9,bf +34833eb,18 +34833ec,3c +34833ed,10 +34833ee,80 +34833ef,12 +34833f0,26 +34833f1,10 +34833f2,a5 +34833f3,d0 +34833f4,3c +34833f5,11 +34833f6,80 +34833f7,40 +34833f8,26 +34833f9,31 +34833fa,20 +34833fb,1c +34833fc,8e +34833fd,8 +34833ff,4 +3483400,11 +3483403,5 +3483408,c +3483409,10 +348340a,d +348340b,21 +3483410,10 +3483413,3 +3483418,c +3483419,10 +348341a,d +348341b,34 +3483420,c +3483421,10 +3483422,d +3483423,14 +3483424,34 +3483425,4 +3483428,c +3483429,10 +348342a,d +348342b,14 +348342c,34 +348342d,4 +348342f,1 +3483430,c +3483431,10 +3483432,d +3483433,14 +3483434,34 +3483435,4 +3483437,2 +3483438,8f +3483439,b0 +348343b,10 +348343c,8f +348343d,b1 +348343f,14 +3483440,8f +3483441,bf +3483443,18 +3483444,27 +3483445,bd +3483447,20 +3483448,3 +3483449,e0 +348344b,8 +3483450,2 +3483451,4 +3483452,40 +3483453,21 +3483454,91 +3483455,9 +3483457,6c +3483458,34 +3483459,1 +348345b,ff +348345c,11 +348345d,21 +348345f,7 +3483464,2 +3483465,9 +3483466,48 +3483467,21 +3483468,91 +3483469,29 +348346b,74 +348346c,34 +348346d,1 +348346f,2c +3483470,11 +3483471,21 +3483473,2 +3483478,a1 +3483479,9 +348347b,69 +348347c,3 +348347d,e0 +348347f,8 +3483484,27 +3483485,bd +3483486,ff +3483487,e8 +3483488,af +3483489,bf +348348b,10 +348348c,8e +348348d,28 +3483490,ae +3483491,8 +3483493,40 +3483494,8e +3483495,28 +3483497,4 +3483498,ae +3483499,8 +348349b,44 +348349c,96 +348349d,28 +348349f,8 +34834a0,a6 +34834a1,8 +34834a3,48 +34834a4,a2 +34834a6,f +34834a7,33 +34834a8,92 +34834a9,8 +34834ab,4a +34834ac,34 +34834ad,1 +34834af,ff +34834b0,15 +34834b1,1 +34834b3,3 +34834b8,c +34834b9,10 +34834ba,d +34834bb,42 +34834c0,8f +34834c1,bf +34834c3,10 +34834c4,27 +34834c5,bd +34834c7,18 +34834c8,3 +34834c9,e0 +34834cb,8 +34834d0,8e +34834d1,8 +34834d3,40 +34834d4,ae +34834d5,8 +34834d7,68 +34834d8,8e +34834d9,8 +34834db,44 +34834dc,ae +34834dd,8 +34834df,6c +34834e0,96 +34834e1,8 +34834e3,48 +34834e4,a6 +34834e5,8 +34834e7,70 +34834e8,92 +34834e9,8 +34834eb,68 +34834ec,34 +34834ed,1 +34834ef,ff +34834f0,15 +34834f1,1 +34834f3,3 +34834f8,34 +34834f9,8 +34834fb,1 +34834fc,a2 +34834fd,8 +34834fe,f +34834ff,33 +3483500,3 +3483501,e0 +3483503,8 +3483508,27 +3483509,bd +348350a,ff +348350b,e8 +348350c,af +348350d,bf +348350f,10 +3483510,96 +3483511,8 +3483513,9c +3483514,31 +3483515,8 +3483517,40 +3483518,11 +348351b,5 +3483520,96 +3483521,8 +3483523,70 +3483524,31 +3483525,8 +3483526,ff +3483527,f +3483528,35 +3483529,8 +348352b,30 +348352c,a6 +348352d,8 +348352f,70 +3483530,92 +3483531,28 +3483533,1 +3483534,a2 +3483535,8 +3483537,69 +3483538,96 +3483539,28 +348353b,2 +348353c,a6 +348353d,8 +348353f,6a +3483540,8e +3483541,28 +3483543,4 +3483544,ae +3483545,8 +3483547,6c +3483548,c +3483549,10 +348354a,d +348354b,5c +348354c,34 +348354d,4 +3483550,c +3483551,10 +3483552,d +3483553,5c +3483554,34 +3483555,4 +3483557,1 +3483558,c +3483559,10 +348355a,d +348355b,5c +348355c,34 +348355d,4 +348355f,2 +3483560,8f +3483561,bf +3483563,10 +3483564,27 +3483565,bd +3483567,18 +3483568,3 +3483569,e0 +348356b,8 +3483570,2 +3483571,4 +3483572,40 +3483573,21 +3483574,3c +3483575,9 +3483576,80 +3483577,40 +3483578,25 +3483579,29 +348357a,36 +348357b,1c +348357c,91 +348357d,a +348357f,6c +3483580,34 +3483581,1 +3483583,ff +3483584,11 +3483585,41 +3483587,5 +348358c,1 +348358d,2a +348358e,48 +348358f,21 +3483590,91 +3483591,29 +3483594,15 +3483595,20 +3483597,1c +348359c,3c +348359d,9 +348359e,80 +348359f,40 +34835a0,25 +34835a1,29 +34835a2,36 +34835a3,f +34835a4,25 +34835a5,29 +34835a7,1 +34835a8,91 +34835a9,2a +34835ac,11 +34835ad,40 +34835af,13 +34835b4,2 +34835b5,a +34835b6,58 +34835b7,21 +34835b8,91 +34835b9,6b +34835bb,74 +34835bc,34 +34835bd,1 +34835bf,ff +34835c0,11 +34835c1,61 +34835c2,ff +34835c3,f8 +34835c8,92 +34835c9,c +34835cb,6c +34835cc,11 +34835cd,8a +34835ce,ff +34835cf,f5 +34835d4,92 +34835d5,c +34835d7,6d +34835d8,11 +34835d9,8a +34835da,ff +34835db,f2 +34835e0,92 +34835e1,c +34835e3,6e +34835e4,11 +34835e5,8a +34835e6,ff +34835e7,ef +34835ec,a1 +34835ed,b +34835ef,69 +34835f0,a1 +34835f1,a +34835f3,6c +34835f4,10 +34835f7,4 +34835fc,34 +34835fd,9 +34835ff,ff +3483600,a1 +3483601,9 +3483603,69 +3483604,a1 +3483605,9 +3483607,6c +3483608,3 +3483609,e0 +348360b,8 +3483610,7 +3483611,9 +3483612,f +3483613,2 +3483614,3 +3483615,1 +3483616,d +3483617,b +348361d,1 +348361e,1 +348361f,1 +3483620,1 +3483621,1 +3483623,1 +3483624,1 +3483625,1 +3483626,1 +3483627,1 +3483629,1 +348362b,1 +348362c,1 +348362d,1 +348362e,1 +348362f,1 +3483630,1 +3483631,1 +3483632,1 +3483635,33 +3483636,8 +3483637,21 +3483638,20 +3483639,f +348363b,47 +348363c,15 +348363d,ea +348363f,e +3483640,3c +3483641,2 +3483642,80 +3483643,12 +3483644,8c +3483645,42 +3483646,a5 +3483647,d4 +3483648,8e +3483649,6f +348364b,a4 +348364d,f +348364e,7a +348364f,3 +3483650,14 +3483651,40 +3483653,5 +3483654,34 +3483655,2 +3483656,48 +3483657,30 +3483658,15 +3483659,e2 +348365b,7 +3483660,24 +3483661,19 +3483663,3 +3483664,10 +3483667,4 +3483668,34 +3483669,2 +348366a,63 +348366b,11 +348366c,15 +348366d,e2 +348366f,2 +3483674,24 +3483675,19 +3483677,3 +3483678,3 +3483679,e0 +348367b,8 +3483680,8d +3483681,ad +3483682,8a +3483683,a0 +3483684,34 +3483685,2 +3483686,80 +3483688,10 +3483689,4d +348368b,2 +3483690,10 +3483693,9 +3483694,3c +3483695,f +3483696,80 +3483697,1e +3483698,25 +3483699,ef +348369a,84 +348369b,a0 +348369c,81 +348369d,e2 +348369e,1c +348369f,bf +34836a0,30 +34836a1,42 +34836a3,1 +34836a4,10 +34836a5,40 +34836a7,2 +34836ac,10 +34836af,2 +34836b0,34 +34836b1,2 +34836b3,1 +34836b4,a1 +34836b5,e2 +34836b6,1c +34836b7,bf +34836b8,3 +34836b9,e0 +34836bb,8 +34836c1,33 +34836c2,8 +34836c3,21 +34836c4,3c +34836c5,2 +34836c6,80 +34836c7,12 +34836c8,8c +34836c9,42 +34836ca,a5 +34836cb,d4 +34836cc,8e +34836cd,6f +34836cf,a4 +34836d1,f +34836d2,7a +34836d3,3 +34836d4,14 +34836d5,40 +34836d7,5 +34836d8,34 +34836d9,2 +34836da,48 +34836db,30 +34836dc,15 +34836dd,e2 +34836df,7 +34836e4,24 +34836e5,19 +34836e7,3 +34836e8,10 +34836eb,4 +34836ec,34 +34836ed,2 +34836ee,63 +34836ef,11 +34836f0,15 +34836f1,e2 +34836f3,2 +34836f8,24 +34836f9,19 +34836fb,3 +34836fc,3 +34836fd,e0 +34836ff,8 +3483704,34 +3483705,1 +3483707,18 +3483708,14 +3483709,81 +348370b,11 +3483710,14 +3483711,40 +3483713,f +3483718,3c +3483719,a +348371a,80 +348371b,12 +348371c,25 +348371d,4a +348371e,a5 +348371f,d0 +3483720,81 +3483721,48 +3483723,a6 +3483724,31 +3483725,8 +3483727,20 +3483728,11 +348372b,9 +348372c,34 +348372d,2 +3483730,34 +3483731,2 +3483733,1 +3483734,81 +3483735,48 +3483737,7b +3483738,34 +3483739,9 +348373b,7 +348373c,11 +348373d,9 +348373f,4 +3483740,34 +3483741,a +3483743,8 +3483744,11 +3483745,a +3483747,2 +348374c,34 +348374d,2 +3483750,3 +3483751,e0 +3483753,8 +3483758,a2 +3483759,25 +348375b,21 +348375c,3c +348375d,10 +348375e,80 +348375f,40 +3483760,26 +3483761,10 +3483762,17 +3483763,fc +3483764,26 +3483765,10 +3483767,4 +3483768,8e +3483769,a +348376c,11 +348376d,40 +348376f,b +3483775,a +3483776,7c +3483777,2 +3483778,1 +3483779,f1 +348377a,78 +348377b,20 +348377c,31 +348377d,58 +348377e,ff +3483781,18 +3483782,c2 +3483783,2 +3483784,17 +3483787,3 +3483788,31 +3483789,59 +348378b,ff +348378c,81 +348378d,ea +3483790,3 +3483791,2a +3483792,c8 +3483793,25 +3483794,8 +3483795,10 +3483796,d +3483797,d9 +3483798,a1 +3483799,f9 +348379c,3 +348379d,e0 +348379f,8 +34b3000,ac +34b3001,86 +34b3004,ac +34b3005,85 +34b3007,4 +34b3008,ac +34b3009,85 +34b300b,8 +34b300d,a6 +34b300e,28 +34b300f,21 +34b3010,3 +34b3011,e0 +34b3013,8 +34b3014,ac +34b3015,85 +34b3017,c +34b3018,94 +34b3019,82 +34b301b,4 +34b301c,94 +34b301d,83 +34b301f,6 +34b3021,43 +34b3023,18 +34b3026,10 +34b3027,12 +34b3028,90 +34b3029,83 +34b302b,c +34b3031,43 +34b3033,18 +34b3036,10 +34b3037,12 +34b3038,3 +34b3039,e0 +34b303b,8 +34b3040,27 +34b3041,bd +34b3042,ff +34b3043,e8 +34b3044,af +34b3045,bf +34b3047,14 +34b3048,af +34b3049,b0 +34b304b,10 +34b304c,c +34b304d,10 +34b304e,14 +34b304f,6 +34b3051,80 +34b3052,80 +34b3053,25 +34b3054,96 +34b3055,3 +34b3057,8 +34b3059,62 +34b305b,18 +34b305e,10 +34b305f,12 +34b3060,8f +34b3061,bf +34b3063,14 +34b3064,8f +34b3065,b0 +34b3067,10 +34b3068,3 +34b3069,e0 +34b306b,8 +34b306c,27 +34b306d,bd +34b306f,18 +34b3070,27 +34b3071,bd +34b3072,ff +34b3073,90 +34b3074,af +34b3075,bf +34b3077,6c +34b3078,af +34b3079,b7 +34b307b,68 +34b307c,af +34b307d,b6 +34b307f,64 +34b3080,af +34b3081,b5 +34b3083,60 +34b3084,af +34b3085,b4 +34b3087,5c +34b3088,af +34b3089,b3 +34b308b,58 +34b308c,af +34b308d,b2 +34b308f,54 +34b3090,af +34b3091,b1 +34b3093,50 +34b3094,af +34b3095,b0 +34b3097,4c +34b3099,80 +34b309a,80 +34b309b,25 +34b309d,a0 +34b309e,a8 +34b309f,25 +34b30a1,c0 +34b30a2,b8 +34b30a3,25 +34b30a5,e0 +34b30a6,b0 +34b30a7,25 +34b30a8,90 +34b30a9,b2 +34b30ab,a +34b30ad,12 +34b30ae,95 +34b30af,40 +34b30b0,3c +34b30b1,2 +34b30b3,e0 +34b30b4,2 +34b30b5,42 +34b30b6,90 +34b30b7,24 +34b30b8,90 +34b30b9,b1 +34b30bb,b +34b30bc,2e +34b30bd,22 +34b30bf,2 +34b30c0,10 +34b30c1,40 +34b30c3,2 +34b30c4,2 +34b30c5,20 +34b30c6,98 +34b30c7,25 +34b30c8,24 +34b30c9,13 +34b30cb,2 +34b30cc,32 +34b30cd,73 +34b30cf,ff +34b30d1,13 +34b30d2,a4 +34b30d3,c0 +34b30d4,3c +34b30d5,2 +34b30d7,18 +34b30d8,2 +34b30d9,82 +34b30da,a0 +34b30db,24 +34b30dc,2 +34b30dd,92 +34b30de,a0 +34b30df,25 +34b30e0,3c +34b30e1,2 +34b30e2,fd +34b30e4,2 +34b30e5,82 +34b30e6,10 +34b30e7,25 +34b30e8,af +34b30e9,a2 +34b30eb,10 +34b30ec,c +34b30ed,10 +34b30ee,14 +34b30ef,6 +34b30f0,2 +34b30f1,a0 +34b30f2,20 +34b30f3,25 +34b30f5,57 +34b30f7,18 +34b30fa,10 +34b30fb,12 +34b30fc,8e +34b30fd,a3 +34b3101,62 +34b3102,18 +34b3103,21 +34b3104,af +34b3105,a3 +34b3107,14 +34b3108,3c +34b3109,2 +34b310a,f5 +34b310c,2 +34b310d,82 +34b310e,a0 +34b310f,25 +34b3110,af +34b3111,b4 +34b3113,18 +34b3114,3c +34b3115,2 +34b3116,7 +34b3118,af +34b3119,a2 +34b311b,1c +34b311c,3c +34b311d,2 +34b311e,e6 +34b3120,af +34b3121,a2 +34b3123,20 +34b3124,af +34b3125,a0 +34b3127,24 +34b3128,3c +34b3129,2 +34b312a,f3 +34b312c,af +34b312d,a2 +34b312f,28 +34b3130,96 +34b3131,a3 +34b3133,4 +34b3134,96 +34b3135,a7 +34b3137,6 +34b3139,f6 +34b313b,18 +34b313e,38 +34b313f,12 +34b3140,24 +34b3141,5 +34b3143,4 +34b3144,2 +34b3145,25 +34b3146,20 +34b3147,4 +34b3149,67 +34b314b,18 +34b314e,10 +34b314f,12 +34b3150,24 +34b3151,42 +34b3153,1 +34b3159,44 +34b315b,18 +34b315e,10 +34b315f,12 +34b3160,24 +34b3161,42 +34b3162,ff +34b3163,ff +34b3164,2 +34b3165,65 +34b3166,98 +34b3167,4 +34b3169,53 +34b316b,1a +34b316c,2 +34b316d,60 +34b316e,1 +34b316f,f4 +34b3172,10 +34b3173,12 +34b3174,24 +34b3175,42 +34b3176,ff +34b3177,ff +34b3179,2 +34b317a,13 +34b317c,3c +34b317d,5 +34b317f,ff +34b3180,34 +34b3181,a5 +34b3182,f0 +34b3185,45 +34b3186,10 +34b3187,24 +34b3189,64 +34b318b,18 +34b318e,40 +34b318f,12 +34b3190,29 +34b3191,5 +34b3193,41 +34b3194,14 +34b3195,a0 +34b3197,a +34b3198,24 +34b3199,6 +34b319a,8 +34b319d,8 +34b319e,2f +34b319f,c3 +34b31a0,30 +34b31a1,a5 +34b31a3,3f +34b31a5,a8 +34b31a6,28 +34b31a7,21 +34b31a9,5 +34b31aa,29 +34b31ab,83 +34b31ac,24 +34b31ad,a6 +34b31ae,7 +34b31af,ff +34b31b1,c5 +34b31b3,1a +34b31b5,a0 +34b31b6,1 +34b31b7,f4 +34b31ba,30 +34b31bb,12 +34b31bc,30 +34b31bd,c6 +34b31be,f +34b31bf,ff +34b31c1,46 +34b31c2,10 +34b31c3,25 +34b31c4,3c +34b31c5,5 +34b31c6,7 +34b31c9,45 +34b31ca,10 +34b31cb,25 +34b31cc,af +34b31cd,a2 +34b31cf,2c +34b31d0,3c +34b31d1,2 +34b31d2,e7 +34b31d4,af +34b31d5,a2 +34b31d7,30 +34b31d8,af +34b31d9,a0 +34b31db,34 +34b31dd,11 +34b31de,14 +34b31df,c0 +34b31e0,3c +34b31e1,5 +34b31e3,18 +34b31e5,45 +34b31e6,10 +34b31e7,24 +34b31e8,2e +34b31e9,31 +34b31eb,2 +34b31ec,16 +34b31ed,20 +34b31ef,2 +34b31f1,52 +34b31f2,10 +34b31f3,25 +34b31f4,24 +34b31f5,4 +34b31f7,10 +34b31f9,64 +34b31fb,18 +34b31fe,20 +34b31ff,12 +34b3200,24 +34b3201,84 +34b3203,3f +34b3205,4 +34b3206,97 +34b3207,c3 +34b3208,32 +34b3209,52 +34b320b,3f +34b320c,2 +34b320d,44 +34b320e,90 +34b320f,21 +34b3211,12 +34b3212,90 +34b3213,c0 +34b3214,3c +34b3215,4 +34b3217,3 +34b3218,34 +34b3219,84 +34b321a,fe +34b321c,2 +34b321d,44 +34b321e,90 +34b321f,24 +34b3220,2 +34b3221,42 +34b3222,90 +34b3223,25 +34b3224,3c +34b3225,2 +34b3226,f5 +34b3228,2 +34b3229,42 +34b322a,90 +34b322b,25 +34b322c,af +34b322d,b2 +34b322f,38 +34b3230,af +34b3231,a0 +34b3233,3c +34b3234,3c +34b3235,2 +34b3236,f2 +34b3238,af +34b3239,a2 +34b323b,40 +34b323c,24 +34b323d,62 +34b323e,3f +34b323f,ff +34b3241,2 +34b3242,13 +34b3243,80 +34b3244,3c +34b3245,3 +34b3247,ff +34b3248,34 +34b3249,63 +34b324a,f0 +34b324d,43 +34b324e,10 +34b324f,24 +34b3250,24 +34b3251,e7 +34b3252,ff +34b3253,ff +34b3255,7 +34b3256,38 +34b3257,80 +34b3258,30 +34b3259,e7 +34b325a,f +34b325b,fc +34b325d,47 +34b325e,10 +34b325f,25 +34b3260,af +34b3261,a2 +34b3263,44 +34b3264,27 +34b3265,a2 +34b3267,10 +34b3268,27 +34b3269,a6 +34b326b,48 +34b326c,8e +34b326d,3 +34b326f,8 +34b3270,24 +34b3271,64 +34b3273,8 +34b3274,ae +34b3275,4 +34b3277,8 +34b3278,8c +34b3279,45 +34b327b,4 +34b327c,8c +34b327d,44 +34b3280,ac +34b3281,65 +34b3283,4 +34b3284,24 +34b3285,42 +34b3287,8 +34b3288,14 +34b3289,46 +34b328a,ff +34b328b,f8 +34b328c,ac +34b328d,64 +34b3290,8f +34b3291,bf +34b3293,6c +34b3294,8f +34b3295,b7 +34b3297,68 +34b3298,8f +34b3299,b6 +34b329b,64 +34b329c,8f +34b329d,b5 +34b329f,60 +34b32a0,8f +34b32a1,b4 +34b32a3,5c +34b32a4,8f +34b32a5,b3 +34b32a7,58 +34b32a8,8f +34b32a9,b2 +34b32ab,54 +34b32ac,8f +34b32ad,b1 +34b32af,50 +34b32b0,8f +34b32b1,b0 +34b32b3,4c +34b32b4,3 +34b32b5,e0 +34b32b7,8 +34b32b8,27 +34b32b9,bd +34b32bb,70 +34b32bc,27 +34b32bd,bd +34b32be,ff +34b32bf,e8 +34b32c0,8f +34b32c1,a8 +34b32c3,28 +34b32c4,8f +34b32c5,a2 +34b32c7,2c +34b32c8,8f +34b32c9,aa +34b32cb,30 +34b32cc,94 +34b32cd,a9 +34b32cf,4 +34b32d1,9 +34b32d2,4a +34b32d3,80 +34b32d4,1 +34b32d5,22 +34b32d7,1a +34b32d9,40 +34b32da,1 +34b32db,f4 +34b32de,48 +34b32df,12 +34b32e0,94 +34b32e1,a3 +34b32e3,6 +34b32e5,47 +34b32e6,10 +34b32e7,21 +34b32e9,2 +34b32ea,13 +34b32eb,80 +34b32ec,3c +34b32ed,b +34b32ef,ff +34b32f0,35 +34b32f1,6b +34b32f2,f0 +34b32f5,4b +34b32f6,10 +34b32f7,24 +34b32f8,1 +34b32f9,48 +34b32fa,28 +34b32fb,21 +34b32fd,5 +34b32fe,28 +34b32ff,80 +34b3300,30 +34b3301,a5 +34b3302,f +34b3303,ff +34b3305,45 +34b3306,10 +34b3307,25 +34b3308,3c +34b3309,5 +34b330a,e4 +34b330d,45 +34b330e,10 +34b330f,25 +34b3310,af +34b3311,a2 +34b3315,7 +34b3316,3b +34b3317,80 +34b3319,eb +34b331a,38 +34b331b,24 +34b331d,8 +34b331e,40 +34b331f,80 +34b3320,31 +34b3321,8 +34b3322,f +34b3323,ff +34b3325,e8 +34b3326,38 +34b3327,25 +34b3328,af +34b3329,a7 +34b332b,4 +34b332c,3c +34b332d,2 +34b332e,e1 +34b3330,af +34b3331,a2 +34b3333,8 +34b3335,66 +34b3337,18 +34b333a,30 +34b333b,12 +34b333d,6 +34b333e,31 +34b333f,40 +34b3340,30 +34b3341,c6 +34b3342,ff +34b3343,ff +34b3344,af +34b3345,a6 +34b3347,c +34b3348,3c +34b3349,2 +34b334a,f1 +34b334c,af +34b334d,a2 +34b334f,10 +34b3351,3 +34b3352,1a +34b3353,80 +34b3355,6a +34b3357,1a +34b3358,1 +34b3359,40 +34b335a,1 +34b335b,f4 +34b335e,18 +34b335f,12 +34b3360,30 +34b3361,63 +34b3362,ff +34b3363,ff +34b3365,9 +34b3366,4c +34b3369,69 +34b336a,18 +34b336b,25 +34b336c,af +34b336d,a3 +34b336f,14 +34b3370,3 +34b3371,a0 +34b3372,10 +34b3373,25 +34b3374,27 +34b3375,a8 +34b3377,18 +34b3378,8c +34b3379,83 +34b337b,8 +34b337c,24 +34b337d,65 +34b337f,8 +34b3380,ac +34b3381,85 +34b3383,8 +34b3384,8c +34b3385,47 +34b3387,4 +34b3388,8c +34b3389,46 +34b338c,ac +34b338d,67 +34b338f,4 +34b3390,24 +34b3391,42 +34b3393,8 +34b3394,14 +34b3395,48 +34b3396,ff +34b3397,f8 +34b3398,ac +34b3399,66 +34b339c,3 +34b339d,e0 +34b339f,8 +34b33a0,27 +34b33a1,bd +34b33a3,18 +34b33a4,8c +34b33a5,82 +34b33a7,8 +34b33a8,24 +34b33a9,43 +34b33ab,8 +34b33ac,ac +34b33ad,83 +34b33af,8 +34b33b0,3c +34b33b1,3 +34b33b2,e7 +34b33b4,ac +34b33b5,43 +34b33b8,ac +34b33b9,40 +34b33bb,4 +34b33bc,8c +34b33bd,82 +34b33bf,8 +34b33c0,24 +34b33c1,43 +34b33c3,8 +34b33c4,ac +34b33c5,83 +34b33c7,8 +34b33c8,3c +34b33c9,3 +34b33ca,d9 +34b33cc,ac +34b33cd,43 +34b33d0,ac +34b33d1,40 +34b33d3,4 +34b33d4,8c +34b33d5,82 +34b33d7,8 +34b33d8,24 +34b33d9,43 +34b33db,8 +34b33dc,ac +34b33dd,83 +34b33df,8 +34b33e0,3c +34b33e1,3 +34b33e2,ed +34b33e4,ac +34b33e5,43 +34b33e8,3c +34b33e9,5 +34b33eb,50 +34b33ec,24 +34b33ed,a3 +34b33ee,3 +34b33ef,c0 +34b33f0,ac +34b33f1,43 +34b33f3,4 +34b33f4,8c +34b33f5,83 +34b33f7,8 +34b33f8,24 +34b33f9,62 +34b33fb,8 +34b33fc,ac +34b33fd,82 +34b33ff,8 +34b3400,3c +34b3401,2 +34b3402,e3 +34b3404,24 +34b3405,46 +34b3406,1a +34b3407,1 +34b3408,ac +34b3409,66 +34b340c,24 +34b340d,6 +34b340f,30 +34b3410,ac +34b3411,66 +34b3413,4 +34b3414,8c +34b3415,83 +34b3417,8 +34b3418,24 +34b3419,66 +34b341b,8 +34b341c,ac +34b341d,86 +34b341f,8 +34b3420,24 +34b3421,46 +34b3422,18 +34b3423,1 +34b3424,ac +34b3425,66 +34b3428,24 +34b3429,6 +34b342b,c0 +34b342c,ac +34b342d,66 +34b342f,4 +34b3430,8c +34b3431,86 +34b3433,8 +34b3434,24 +34b3435,c3 +34b3437,8 +34b3438,ac +34b3439,83 +34b343b,8 +34b343c,3c +34b343d,3 +34b343e,e2 +34b3440,24 +34b3441,67 +34b3442,1e +34b3443,1 +34b3444,ac +34b3445,c7 +34b3448,ac +34b3449,c0 +34b344b,4 +34b344c,8c +34b344d,86 +34b344f,8 +34b3450,24 +34b3451,c7 +34b3453,8 +34b3454,ac +34b3455,87 +34b3457,8 +34b3458,24 +34b3459,67 +34b345a,1d +34b345c,ac +34b345d,c7 +34b3460,24 +34b3461,7 +34b3463,4 +34b3464,ac +34b3465,c7 +34b3467,4 +34b3468,8c +34b3469,86 +34b346b,8 +34b346c,24 +34b346d,c7 +34b346f,8 +34b3470,ac +34b3471,87 +34b3473,8 +34b3474,24 +34b3475,47 +34b3476,17 +34b3478,ac +34b3479,c7 +34b347c,ac +34b347d,c0 +34b347f,4 +34b3480,8c +34b3481,86 +34b3483,8 +34b3484,24 +34b3485,c7 +34b3487,8 +34b3488,ac +34b3489,87 +34b348b,8 +34b348c,24 +34b348d,47 +34b348e,14 +34b348f,2 +34b3490,ac +34b3491,c7 +34b3494,24 +34b3495,7 +34b3496,c +34b3498,ac +34b3499,c7 +34b349b,4 +34b349c,8c +34b349d,86 +34b349f,8 +34b34a0,24 +34b34a1,c7 +34b34a3,8 +34b34a4,ac +34b34a5,87 +34b34a7,8 +34b34a8,24 +34b34a9,47 +34b34aa,d +34b34ab,1 +34b34ac,ac +34b34ad,c7 +34b34b0,ac +34b34b1,c0 +34b34b3,4 +34b34b4,8c +34b34b5,86 +34b34b7,8 +34b34b8,24 +34b34b9,c7 +34b34bb,8 +34b34bc,ac +34b34bd,87 +34b34bf,8 +34b34c0,24 +34b34c1,47 +34b34c2,c +34b34c4,ac +34b34c5,c7 +34b34c8,ac +34b34c9,c0 +34b34cb,4 +34b34cc,8c +34b34cd,86 +34b34cf,8 +34b34d0,24 +34b34d1,c7 +34b34d3,8 +34b34d4,ac +34b34d5,87 +34b34d7,8 +34b34d8,24 +34b34d9,47 +34b34da,f +34b34dc,ac +34b34dd,c7 +34b34e0,ac +34b34e1,c0 +34b34e3,4 +34b34e4,8c +34b34e5,86 +34b34e7,8 +34b34e8,24 +34b34e9,c7 +34b34eb,8 +34b34ec,ac +34b34ed,87 +34b34ef,8 +34b34f0,24 +34b34f1,47 +34b34f2,10 +34b34f3,1 +34b34f4,ac +34b34f5,c7 +34b34f8,ac +34b34f9,c0 +34b34fb,4 +34b34fc,8c +34b34fd,86 +34b34ff,8 +34b3500,24 +34b3501,c7 +34b3503,8 +34b3504,ac +34b3505,87 +34b3507,8 +34b3508,24 +34b3509,47 +34b350a,8 +34b350c,ac +34b350d,c7 +34b3510,ac +34b3511,c0 +34b3513,4 +34b3514,8c +34b3515,86 +34b3517,8 +34b3518,24 +34b3519,c7 +34b351b,8 +34b351c,ac +34b351d,87 +34b351f,8 +34b3520,24 +34b3521,47 +34b3522,a +34b3523,1 +34b3524,ac +34b3525,c7 +34b3528,ac +34b3529,c0 +34b352b,4 +34b352c,8c +34b352d,86 +34b352f,8 +34b3530,24 +34b3531,c7 +34b3533,8 +34b3534,ac +34b3535,87 +34b3537,8 +34b3538,24 +34b3539,63 +34b353b,1c +34b353c,ac +34b353d,c3 +34b3540,24 +34b3541,a5 +34b3542,42 +34b3543,40 +34b3544,ac +34b3545,c5 +34b3547,4 +34b3548,8c +34b3549,83 +34b354b,8 +34b354c,24 +34b354d,65 +34b354f,8 +34b3550,ac +34b3551,85 +34b3553,8 +34b3554,24 +34b3555,42 +34b3556,12 +34b3557,1 +34b3558,ac +34b3559,62 +34b355c,24 +34b355d,2 +34b355e,20 +34b3560,ac +34b3561,62 +34b3563,4 +34b3564,8c +34b3565,82 +34b3567,8 +34b3568,24 +34b3569,43 +34b356b,8 +34b356c,ac +34b356d,83 +34b356f,8 +34b3570,3c +34b3571,3 +34b3572,df +34b3574,ac +34b3575,43 +34b3578,3 +34b3579,e0 +34b357b,8 +34b357c,ac +34b357d,40 +34b357f,4 +34b3580,27 +34b3581,bd +34b3582,ff +34b3583,c8 +34b3584,af +34b3585,bf +34b3587,34 +34b3588,af +34b3589,b1 +34b358b,30 +34b358c,af +34b358d,b0 +34b358f,2c +34b3590,af +34b3591,a0 +34b3593,10 +34b3594,3c +34b3595,2 +34b3596,1 +34b3597,a0 +34b3598,24 +34b3599,42 +34b359a,20 +34b359c,af +34b359d,a2 +34b359f,14 +34b35a0,3c +34b35a1,10 +34b35a3,3 +34b35a4,36 +34b35a5,2 +34b35a6,95 +34b35a7,c0 +34b35a8,af +34b35a9,a2 +34b35ab,18 +34b35ac,c +34b35ad,10 +34b35ae,15 +34b35af,c4 +34b35b0,27 +34b35b1,a4 +34b35b3,10 +34b35b4,af +34b35b5,a0 +34b35b7,1c +34b35b8,3c +34b35b9,2 +34b35bb,84 +34b35bc,24 +34b35bd,42 +34b35be,60 +34b35c0,af +34b35c1,a2 +34b35c3,20 +34b35c4,34 +34b35c5,2 +34b35c6,b4 +34b35c8,af +34b35c9,a2 +34b35cb,24 +34b35cc,c +34b35cd,10 +34b35ce,15 +34b35cf,c4 +34b35d0,27 +34b35d1,a4 +34b35d3,1c +34b35d4,8f +34b35d5,a2 +34b35d7,10 +34b35d8,26 +34b35d9,10 +34b35da,a3 +34b35dd,50 +34b35de,80 +34b35df,21 +34b35e0,3c +34b35e1,3 +34b35e2,80 +34b35e3,40 +34b35e4,ac +34b35e5,70 +34b35e6,63 +34b35e7,f8 +34b35e8,24 +34b35e9,42 +34b35ea,29 +34b35eb,80 +34b35ec,3c +34b35ed,3 +34b35ee,80 +34b35ef,40 +34b35f0,ac +34b35f1,62 +34b35f2,63 +34b35f3,e8 +34b35f4,3c +34b35f5,2 +34b35f6,80 +34b35f7,40 +34b35f8,8f +34b35f9,a3 +34b35fb,1c +34b35fc,ac +34b35fd,43 +34b35fe,63 +34b35ff,d8 +34b3600,3c +34b3601,11 +34b3602,80 +34b3603,40 +34b3604,c +34b3605,10 +34b3606,14 +34b3607,10 +34b3608,26 +34b3609,24 +34b360a,63 +34b360b,c8 +34b360d,40 +34b360e,80 +34b360f,25 +34b3610,c +34b3611,10 +34b3612,15 +34b3613,b7 +34b3615,40 +34b3616,20 +34b3617,25 +34b3619,10 +34b361a,4f +34b361b,c2 +34b361c,1 +34b361d,30 +34b361e,48 +34b361f,21 +34b3620,2a +34b3621,10 +34b3623,2 +34b3624,16 +34b3627,18 +34b3628,ae +34b3629,22 +34b362a,63 +34b362b,c8 +34b362d,9 +34b362e,48 +34b362f,43 +34b3630,3c +34b3631,3 +34b3632,80 +34b3633,40 +34b3634,24 +34b3635,63 +34b3636,65 +34b3637,6 +34b363a,20 +34b363b,25 +34b363e,30 +34b363f,25 +34b3640,2 +34b3641,20 +34b3642,40 +34b3643,25 +34b3644,24 +34b3645,7 +34b3646,ff +34b3647,f0 +34b3648,8d +34b3649,5 +34b364a,63 +34b364b,c8 +34b364d,a4 +34b364e,28 +34b364f,21 +34b3650,90 +34b3651,62 +34b3655,2 +34b3656,11 +34b3657,2 +34b3659,47 +34b365a,10 +34b365b,25 +34b365c,a0 +34b365d,a2 +34b3660,8d +34b3661,2 +34b3662,63 +34b3663,c8 +34b3665,44 +34b3666,10 +34b3667,21 +34b3668,90 +34b3669,65 +34b366d,a7 +34b366e,28 +34b366f,25 +34b3670,a0 +34b3671,45 +34b3673,1 +34b3674,24 +34b3675,c6 +34b3677,1 +34b3678,24 +34b3679,63 +34b367b,1 +34b367d,c9 +34b367e,10 +34b367f,2a +34b3680,14 +34b3681,40 +34b3682,ff +34b3683,f1 +34b3684,24 +34b3685,84 +34b3687,2 +34b3688,c +34b3689,10 +34b368a,15 +34b368b,b7 +34b368c,24 +34b368d,4 +34b368e,1 +34b3690,3c +34b3691,4 +34b3692,80 +34b3693,40 +34b3694,24 +34b3695,3 +34b3696,1 +34b3698,ac +34b3699,83 +34b369a,64 +34b369b,e8 +34b369c,24 +34b369d,84 +34b369e,64 +34b369f,e8 +34b36a0,ac +34b36a1,82 +34b36a3,4 +34b36a4,ac +34b36a5,82 +34b36a7,8 +34b36a8,24 +34b36a9,42 +34b36aa,1 +34b36ac,c +34b36ad,10 +34b36ae,14 +34b36af,e9 +34b36b0,ac +34b36b1,82 +34b36b3,c +34b36b4,8f +34b36b5,bf +34b36b7,34 +34b36b8,8f +34b36b9,b1 +34b36bb,30 +34b36bc,8f +34b36bd,b0 +34b36bf,2c +34b36c0,3 +34b36c1,e0 +34b36c3,8 +34b36c4,27 +34b36c5,bd +34b36c7,38 +34b36c8,3c +34b36c9,3 +34b36ca,80 +34b36cb,40 +34b36cc,3c +34b36cd,2 +34b36ce,80 +34b36cf,50 +34b36d0,24 +34b36d1,42 +34b36d4,3 +34b36d5,e0 +34b36d7,8 +34b36d8,ac +34b36d9,62 +34b36da,64 +34b36db,d0 +34b36dd,4 +34b36de,17 +34b36df,c3 +34b36e1,2 +34b36e2,1f +34b36e3,2 +34b36e5,83 +34b36e6,10 +34b36e7,21 +34b36e8,30 +34b36e9,42 +34b36eb,f +34b36ed,43 +34b36ee,10 +34b36ef,23 +34b36f0,10 +34b36f1,40 +34b36f3,3 +34b36f4,3c +34b36f5,3 +34b36f6,80 +34b36f7,40 +34b36f9,82 +34b36fa,20 +34b36fb,23 +34b36fc,24 +34b36fd,84 +34b36ff,10 +34b3700,8c +34b3701,62 +34b3702,64 +34b3703,d0 +34b3705,44 +34b3706,20 +34b3707,21 +34b3708,3 +34b3709,e0 +34b370b,8 +34b370c,ac +34b370d,64 +34b370e,64 +34b370f,d0 +34b3710,27 +34b3711,bd +34b3712,ff +34b3713,e8 +34b3714,af +34b3715,bf +34b3717,14 +34b3718,af +34b3719,b0 +34b371b,10 +34b371d,80 +34b371e,80 +34b371f,25 +34b3720,c +34b3721,10 +34b3722,15 +34b3723,b7 +34b3724,8c +34b3725,84 +34b3727,8 +34b3728,ae +34b3729,2 +34b372c,8e +34b372d,6 +34b372f,8 +34b3731,40 +34b3732,20 +34b3733,25 +34b3734,3c +34b3735,2 +34b3736,80 +34b3738,24 +34b3739,42 +34b373a,d +34b373b,f0 +34b373d,40 +34b373e,f8 +34b373f,9 +34b3740,8e +34b3741,5 +34b3743,4 +34b3744,8f +34b3745,bf +34b3747,14 +34b3748,8f +34b3749,b0 +34b374b,10 +34b374c,3 +34b374d,e0 +34b374f,8 +34b3750,27 +34b3751,bd +34b3753,18 +34b3754,27 +34b3755,bd +34b3756,ff +34b3757,e8 +34b3758,af +34b3759,bf +34b375b,14 +34b375c,c +34b375d,10 +34b375e,15 +34b375f,b2 +34b3764,c +34b3765,10 +34b3766,15 +34b3767,60 +34b376c,c +34b376d,10 +34b376e,18 +34b376f,68 +34b3774,8f +34b3775,bf +34b3777,14 +34b3778,3 +34b3779,e0 +34b377b,8 +34b377c,27 +34b377d,bd +34b377f,18 +34b3780,27 +34b3781,bd +34b3782,ff +34b3783,e0 +34b3784,af +34b3785,bf +34b3787,1c +34b3788,af +34b3789,b2 +34b378b,18 +34b378c,af +34b378d,b1 +34b378f,14 +34b3790,af +34b3791,b0 +34b3793,10 +34b3795,80 +34b3796,80 +34b3797,25 +34b3799,a0 +34b379a,88 +34b379b,25 +34b379c,3c +34b379d,2 +34b379e,80 +34b379f,1c +34b37a0,34 +34b37a1,42 +34b37a2,84 +34b37a3,a0 +34b37a4,3c +34b37a5,3 +34b37a7,1 +34b37a9,43 +34b37aa,10 +34b37ab,21 +34b37ac,94 +34b37ad,43 +34b37ae,9 +34b37af,34 +34b37b0,24 +34b37b1,2 +34b37b3,6 +34b37b4,14 +34b37b5,62 +34b37b7,15 +34b37b9,c0 +34b37ba,90 +34b37bb,25 +34b37bc,3c +34b37bd,2 +34b37be,80 +34b37bf,1c +34b37c0,34 +34b37c1,42 +34b37c2,84 +34b37c3,a0 +34b37c4,3c +34b37c5,3 +34b37c7,1 +34b37c9,43 +34b37ca,10 +34b37cb,21 +34b37cc,94 +34b37cd,42 +34b37ce,9 +34b37cf,48 +34b37d0,14 +34b37d1,40 +34b37d3,f +34b37d4,2 +34b37d5,40 +34b37d6,30 +34b37d7,25 +34b37d8,3c +34b37d9,2 +34b37da,80 +34b37db,1c +34b37dc,34 +34b37dd,42 +34b37de,84 +34b37df,a0 +34b37e1,43 +34b37e2,10 +34b37e3,21 +34b37e4,94 +34b37e5,42 +34b37e6,9 +34b37e7,44 +34b37e8,14 +34b37e9,40 +34b37eb,a +34b37ec,2 +34b37ed,20 +34b37ee,28 +34b37ef,25 +34b37f0,3c +34b37f1,2 +34b37f2,80 +34b37f3,1c +34b37f4,34 +34b37f5,42 +34b37f6,84 +34b37f7,a0 +34b37f8,84 +34b37f9,42 +34b37fb,14 +34b37fc,4 +34b37fd,41 +34b37ff,5 +34b3804,c +34b3805,10 +34b3806,16 +34b3807,d +34b380c,2 +34b380d,40 +34b380e,30 +34b380f,25 +34b3810,2 +34b3811,20 +34b3812,28 +34b3813,25 +34b3814,c +34b3815,10 +34b3816,14 +34b3818,2 +34b381a,20 +34b381b,25 +34b381c,8f +34b381d,bf +34b381f,1c +34b3820,8f +34b3821,b2 +34b3823,18 +34b3824,8f +34b3825,b1 +34b3827,14 +34b3828,8f +34b3829,b0 +34b382b,10 +34b382c,3 +34b382d,e0 +34b382f,8 +34b3830,27 +34b3831,bd +34b3833,20 +34b3834,3c +34b3835,2 +34b3836,80 +34b3837,40 +34b3838,8c +34b3839,42 +34b383a,64 +34b383b,c8 +34b383c,10 +34b383d,40 +34b383e,2 +34b383f,56 +34b3840,3c +34b3841,3 +34b3842,80 +34b3843,40 +34b3844,27 +34b3845,bd +34b3846,ff +34b3847,98 +34b3848,af +34b3849,bf +34b384b,64 +34b384c,af +34b384d,be +34b384f,60 +34b3850,af +34b3851,b7 +34b3853,5c +34b3854,af +34b3855,b6 +34b3857,58 +34b3858,af +34b3859,b5 +34b385b,54 +34b385c,af +34b385d,b4 +34b385f,50 +34b3860,af +34b3861,b3 +34b3863,4c +34b3864,af +34b3865,b2 +34b3867,48 +34b3868,af +34b3869,b1 +34b386b,44 +34b386c,af +34b386d,b0 +34b386f,40 +34b3870,8c +34b3871,82 +34b3873,4 +34b3874,8c +34b3875,63 +34b3876,64 +34b3877,ec +34b3878,24 +34b3879,45 +34b387b,8 +34b387c,ac +34b387d,85 +34b387f,8 +34b3880,3c +34b3881,5 +34b3882,de +34b3884,ac +34b3885,45 +34b3888,ac +34b3889,43 +34b388b,4 +34b388c,3c +34b388d,2 +34b388e,80 +34b388f,40 +34b3890,8c +34b3891,42 +34b3892,64 +34b3893,dc +34b3894,10 +34b3895,40 +34b3897,7 +34b389a,18 +34b389b,25 +34b389c,3c +34b389d,2 +34b389e,80 +34b389f,40 +34b38a0,94 +34b38a1,43 +34b38a2,63 +34b38a3,cc +34b38a5,3 +34b38a6,10 +34b38a7,40 +34b38a9,43 +34b38aa,10 +34b38ab,21 +34b38ad,2 +34b38ae,10 +34b38af,40 +34b38b0,24 +34b38b1,43 +34b38b3,2 +34b38b4,3c +34b38b5,2 +34b38b6,80 +34b38b7,40 +34b38b8,94 +34b38b9,42 +34b38ba,63 +34b38bb,cc +34b38bd,2 +34b38be,10 +34b38bf,c0 +34b38c0,24 +34b38c1,42 +34b38c3,5e +34b38c5,43 +34b38c6,10 +34b38c7,21 +34b38c8,24 +34b38c9,13 +34b38ca,1 +34b38cb,40 +34b38cc,2 +34b38cd,62 +34b38ce,98 +34b38cf,23 +34b38d1,13 +34b38d2,98 +34b38d3,43 +34b38d4,26 +34b38d5,77 +34b38d7,2 +34b38d8,8c +34b38d9,83 +34b38db,8 +34b38dc,24 +34b38dd,65 +34b38df,8 +34b38e0,ac +34b38e1,85 +34b38e3,8 +34b38e4,3c +34b38e5,5 +34b38e6,fc +34b38e7,ff +34b38e8,34 +34b38e9,a5 +34b38ea,ff +34b38eb,ff +34b38ec,ac +34b38ed,65 +34b38f0,3c +34b38f1,5 +34b38f2,ff +34b38f3,fd +34b38f4,34 +34b38f5,a5 +34b38f6,f6 +34b38f7,fb +34b38f8,ac +34b38f9,65 +34b38fb,4 +34b38fc,8c +34b38fd,83 +34b38ff,8 +34b3900,24 +34b3901,65 +34b3903,8 +34b3904,ac +34b3905,85 +34b3907,8 +34b3908,3c +34b3909,5 +34b390a,fa +34b390c,ac +34b390d,65 +34b3910,24 +34b3911,5 +34b3913,d0 +34b3914,ac +34b3915,65 +34b3917,4 +34b3919,53 +34b391a,10 +34b391b,21 +34b391d,2 +34b391e,13 +34b391f,80 +34b3920,3c +34b3921,3 +34b3923,ff +34b3924,34 +34b3925,63 +34b3926,f0 +34b3929,43 +34b392a,10 +34b392b,24 +34b392c,3c +34b392d,5 +34b392e,e4 +34b3930,24 +34b3931,a5 +34b3932,3 +34b3933,b8 +34b3935,45 +34b3936,10 +34b3937,25 +34b3938,af +34b3939,a2 +34b393b,20 +34b393d,13 +34b393e,13 +34b393f,80 +34b3941,43 +34b3942,10 +34b3943,24 +34b3944,34 +34b3945,42 +34b3947,8 +34b3948,af +34b3949,a2 +34b394b,24 +34b394c,3c +34b394d,2 +34b394e,e1 +34b3950,af +34b3951,a2 +34b3953,28 +34b3954,af +34b3955,a0 +34b3957,2c +34b3958,3c +34b3959,2 +34b395a,f1 +34b395c,af +34b395d,a2 +34b395f,30 +34b3960,3c +34b3961,2 +34b3962,4 +34b3964,24 +34b3965,42 +34b3966,4 +34b3968,af +34b3969,a2 +34b396b,34 +34b396c,27 +34b396d,a2 +34b396f,20 +34b3970,27 +34b3971,a8 +34b3973,38 +34b3974,8c +34b3975,83 +34b3977,8 +34b3978,24 +34b3979,65 +34b397b,8 +34b397c,ac +34b397d,85 +34b397f,8 +34b3980,8c +34b3981,47 +34b3983,4 +34b3984,8c +34b3985,46 +34b3988,ac +34b3989,67 +34b398b,4 +34b398c,24 +34b398d,42 +34b398f,8 +34b3990,15 +34b3991,2 +34b3992,ff +34b3993,f8 +34b3994,ac +34b3995,66 +34b3999,80 +34b399a,80 +34b399b,25 +34b399c,8c +34b399d,82 +34b399f,8 +34b39a0,24 +34b39a1,43 +34b39a3,8 +34b39a4,ac +34b39a5,83 +34b39a7,8 +34b39a8,3c +34b39a9,3 +34b39aa,e7 +34b39ac,ac +34b39ad,43 +34b39b0,ac +34b39b1,40 +34b39b3,4 +34b39b4,8c +34b39b5,82 +34b39b7,8 +34b39b8,24 +34b39b9,43 +34b39bb,8 +34b39bc,ac +34b39bd,83 +34b39bf,8 +34b39c0,3c +34b39c1,3 +34b39c2,fc +34b39c3,11 +34b39c4,34 +34b39c5,63 +34b39c6,96 +34b39c7,23 +34b39c8,ac +34b39c9,43 +34b39cc,3c +34b39cd,3 +34b39ce,ff +34b39cf,2f +34b39d0,34 +34b39d1,63 +34b39d2,ff +34b39d3,ff +34b39d4,ac +34b39d5,43 +34b39d7,4 +34b39d8,3c +34b39d9,5 +34b39da,80 +34b39db,40 +34b39dc,24 +34b39dd,a5 +34b39de,63 +34b39df,e8 +34b39e0,94 +34b39e1,a7 +34b39e3,8 +34b39e4,c +34b39e5,10 +34b39e6,14 +34b39e7,1c +34b39ea,30 +34b39eb,25 +34b39ec,3c +34b39ed,2 +34b39ee,80 +34b39ef,40 +34b39f0,8c +34b39f1,42 +34b39f2,64 +34b39f3,cc +34b39f4,18 +34b39f5,40 +34b39f7,42 +34b39f8,3c +34b39f9,2 +34b39fa,80 +34b39fb,40 +34b39fc,3c +34b39fd,12 +34b39fe,80 +34b39ff,40 +34b3a00,26 +34b3a01,52 +34b3a02,64 +34b3a03,2c +34b3a06,88 +34b3a07,25 +34b3a08,3c +34b3a09,16 +34b3a0a,80 +34b3a0b,40 +34b3a0c,3c +34b3a0d,14 +34b3a0e,80 +34b3a0f,40 +34b3a10,26 +34b3a11,94 +34b3a12,64 +34b3a13,8 +34b3a14,3c +34b3a15,1e +34b3a16,80 +34b3a17,40 +34b3a18,27 +34b3a19,de +34b3a1a,64 +34b3a1b,18 +34b3a1c,24 +34b3a1d,42 +34b3a1e,63 +34b3a1f,e8 +34b3a20,af +34b3a21,a2 +34b3a23,38 +34b3a24,3c +34b3a25,15 +34b3a26,80 +34b3a27,40 +34b3a28,8e +34b3a29,c2 +34b3a2a,64 +34b3a2b,d4 +34b3a2c,50 +34b3a2d,40 +34b3a2f,b +34b3a30,92 +34b3a31,42 +34b3a34,92 +34b3a35,43 +34b3a38,3c +34b3a39,2 +34b3a3a,80 +34b3a3b,11 +34b3a3c,34 +34b3a3d,42 +34b3a3e,a5 +34b3a3f,d0 +34b3a41,43 +34b3a42,10 +34b3a43,21 +34b3a44,90 +34b3a45,42 +34b3a47,a8 +34b3a49,2 +34b3a4a,10 +34b3a4b,42 +34b3a4c,30 +34b3a4d,42 +34b3a4f,1 +34b3a50,50 +34b3a51,40 +34b3a53,27 +34b3a54,26 +34b3a55,31 +34b3a57,1 +34b3a58,92 +34b3a59,42 +34b3a5d,54 +34b3a5e,10 +34b3a5f,21 +34b3a60,80 +34b3a61,46 +34b3a64,28 +34b3a65,c2 +34b3a67,3 +34b3a68,54 +34b3a69,40 +34b3a6b,21 +34b3a6c,26 +34b3a6d,31 +34b3a6f,1 +34b3a70,24 +34b3a71,c6 +34b3a72,ff +34b3a73,fd +34b3a75,6 +34b3a76,18 +34b3a77,40 +34b3a79,66 +34b3a7a,18 +34b3a7b,21 +34b3a7d,7e +34b3a7e,18 +34b3a7f,21 +34b3a80,90 +34b3a81,62 +34b3a85,2 +34b3a86,16 +34b3a88,90 +34b3a89,64 +34b3a8b,2 +34b3a8d,4 +34b3a8e,22 +34b3a91,44 +34b3a92,10 +34b3a93,25 +34b3a94,90 +34b3a95,63 +34b3a97,1 +34b3a99,3 +34b3a9a,1c +34b3a9d,43 +34b3a9e,10 +34b3a9f,25 +34b3aa0,34 +34b3aa1,42 +34b3aa3,ff +34b3aa4,8e +34b3aa5,3 +34b3aa7,8 +34b3aa8,24 +34b3aa9,64 +34b3aab,8 +34b3aac,ae +34b3aad,4 +34b3aaf,8 +34b3ab0,3c +34b3ab1,4 +34b3ab2,fa +34b3ab4,ac +34b3ab5,64 +34b3ab8,ac +34b3ab9,62 +34b3abb,4 +34b3abc,24 +34b3abd,2 +34b3abf,10 +34b3ac0,af +34b3ac1,a2 +34b3ac3,18 +34b3ac4,af +34b3ac5,a2 +34b3ac7,14 +34b3ac9,11 +34b3aca,10 +34b3acb,c0 +34b3acd,51 +34b3ace,10 +34b3acf,21 +34b3ad1,2 +34b3ad2,10 +34b3ad3,40 +34b3ad4,24 +34b3ad5,42 +34b3ad7,4 +34b3ad8,af +34b3ad9,a2 +34b3adb,10 +34b3adc,2 +34b3add,e0 +34b3ade,38 +34b3adf,25 +34b3ae0,8f +34b3ae1,a5 +34b3ae3,38 +34b3ae4,c +34b3ae5,10 +34b3ae6,14 +34b3ae7,af +34b3ae8,2 +34b3aea,20 +34b3aeb,25 +34b3aec,26 +34b3aed,31 +34b3aef,1 +34b3af0,8e +34b3af1,a2 +34b3af2,64 +34b3af3,cc +34b3af4,2 +34b3af5,22 +34b3af6,10 +34b3af7,2a +34b3af8,14 +34b3af9,40 +34b3afa,ff +34b3afb,cb +34b3afc,26 +34b3afd,52 +34b3aff,c +34b3b00,8e +34b3b01,2 +34b3b03,8 +34b3b04,24 +34b3b05,43 +34b3b07,8 +34b3b08,ae +34b3b09,3 +34b3b0b,8 +34b3b0c,3c +34b3b0d,3 +34b3b0e,fa +34b3b10,ac +34b3b11,43 +34b3b14,24 +34b3b15,3 +34b3b16,ff +34b3b17,ff +34b3b18,ac +34b3b19,43 +34b3b1b,4 +34b3b1c,3c +34b3b1d,5 +34b3b1e,80 +34b3b1f,40 +34b3b20,24 +34b3b21,a5 +34b3b22,63 +34b3b23,f8 +34b3b24,94 +34b3b25,a7 +34b3b27,8 +34b3b2a,30 +34b3b2b,25 +34b3b2c,c +34b3b2d,10 +34b3b2e,14 +34b3b2f,1c +34b3b30,2 +34b3b32,20 +34b3b33,25 +34b3b34,3c +34b3b35,2 +34b3b36,80 +34b3b37,40 +34b3b38,8c +34b3b39,42 +34b3b3a,64 +34b3b3b,cc +34b3b3c,18 +34b3b3d,40 +34b3b3e,1 +34b3b3f,94 +34b3b40,3c +34b3b41,2 +34b3b42,80 +34b3b43,40 +34b3b44,3c +34b3b45,12 +34b3b46,80 +34b3b47,40 +34b3b48,26 +34b3b49,52 +34b3b4a,64 +34b3b4b,2c +34b3b4e,88 +34b3b4f,25 +34b3b50,3c +34b3b51,16 +34b3b52,80 +34b3b53,40 +34b3b54,3c +34b3b55,14 +34b3b56,80 +34b3b57,40 +34b3b58,26 +34b3b59,94 +34b3b5a,64 +34b3b5b,8 +34b3b5c,24 +34b3b5d,42 +34b3b5e,63 +34b3b5f,f8 +34b3b60,af +34b3b61,a2 +34b3b63,38 +34b3b64,3c +34b3b65,1e +34b3b66,80 +34b3b67,11 +34b3b68,37 +34b3b69,de +34b3b6a,a5 +34b3b6b,d0 +34b3b6c,3c +34b3b6d,15 +34b3b6e,80 +34b3b6f,40 +34b3b70,8e +34b3b71,c2 +34b3b72,64 +34b3b73,d4 +34b3b74,10 +34b3b75,40 +34b3b77,8 +34b3b78,92 +34b3b79,42 +34b3b7c,3 +34b3b7d,c2 +34b3b7e,10 +34b3b7f,21 +34b3b80,90 +34b3b81,42 +34b3b83,a8 +34b3b85,2 +34b3b86,10 +34b3b87,42 +34b3b88,30 +34b3b89,42 +34b3b8b,1 +34b3b8c,50 +34b3b8d,40 +34b3b8f,14 +34b3b90,26 +34b3b91,31 +34b3b93,1 +34b3b94,92 +34b3b95,42 +34b3b99,54 +34b3b9a,10 +34b3b9b,21 +34b3b9c,80 +34b3b9d,46 +34b3ba0,2c +34b3ba1,c2 +34b3ba3,3 +34b3ba4,50 +34b3ba5,40 +34b3ba7,e +34b3ba8,26 +34b3ba9,31 +34b3bab,1 +34b3bac,24 +34b3bad,2 +34b3baf,10 +34b3bb0,af +34b3bb1,a2 +34b3bb3,18 +34b3bb4,af +34b3bb5,a2 +34b3bb7,14 +34b3bb9,11 +34b3bba,10 +34b3bbb,c0 +34b3bbd,51 +34b3bbe,10 +34b3bbf,21 +34b3bc1,2 +34b3bc2,10 +34b3bc3,40 +34b3bc4,24 +34b3bc5,42 +34b3bc7,4 +34b3bc8,af +34b3bc9,a2 +34b3bcb,10 +34b3bcc,2 +34b3bcd,e0 +34b3bce,38 +34b3bcf,25 +34b3bd0,8f +34b3bd1,a5 +34b3bd3,38 +34b3bd4,c +34b3bd5,10 +34b3bd6,14 +34b3bd7,af +34b3bd8,2 +34b3bda,20 +34b3bdb,25 +34b3bdc,26 +34b3bdd,31 +34b3bdf,1 +34b3be0,8e +34b3be1,a2 +34b3be2,64 +34b3be3,cc +34b3be4,2 +34b3be5,22 +34b3be6,18 +34b3be7,2a +34b3be8,14 +34b3be9,60 +34b3bea,ff +34b3beb,e1 +34b3bec,26 +34b3bed,52 +34b3bef,c +34b3bf0,18 +34b3bf1,40 +34b3bf3,10 +34b3bf4,26 +34b3bf5,73 +34b3bf7,14 +34b3bf8,3c +34b3bf9,11 +34b3bfa,80 +34b3bfb,40 +34b3bfc,26 +34b3bfd,31 +34b3bfe,64 +34b3bff,2e +34b3c00,24 +34b3c01,14 +34b3c03,5 +34b3c06,90 +34b3c07,25 +34b3c08,3c +34b3c09,15 +34b3c0a,80 +34b3c0b,40 +34b3c0c,2 +34b3c0d,80 +34b3c0e,30 +34b3c0f,25 +34b3c10,2 +34b3c11,60 +34b3c12,28 +34b3c13,25 +34b3c14,c +34b3c15,10 +34b3c16,18 +34b3c17,73 +34b3c18,2 +34b3c19,20 +34b3c1a,20 +34b3c1b,25 +34b3c1c,26 +34b3c1d,52 +34b3c1f,1 +34b3c20,26 +34b3c21,31 +34b3c23,c +34b3c24,8e +34b3c25,a2 +34b3c26,64 +34b3c27,cc +34b3c28,2 +34b3c29,42 +34b3c2a,10 +34b3c2b,2a +34b3c2c,14 +34b3c2d,40 +34b3c2e,ff +34b3c2f,f7 +34b3c30,26 +34b3c31,94 +34b3c33,12 +34b3c34,3c +34b3c35,2 +34b3c36,80 +34b3c37,40 +34b3c38,94 +34b3c39,42 +34b3c3a,63 +34b3c3b,cc +34b3c3d,2 +34b3c3e,10 +34b3c3f,c0 +34b3c40,24 +34b3c41,42 +34b3c43,2 +34b3c45,53 +34b3c46,98 +34b3c47,21 +34b3c48,24 +34b3c49,7 +34b3c4b,1 +34b3c4c,24 +34b3c4d,6 +34b3c4f,11 +34b3c50,3c +34b3c51,5 +34b3c52,80 +34b3c53,40 +34b3c54,24 +34b3c55,a5 +34b3c56,63 +34b3c57,d8 +34b3c58,c +34b3c59,10 +34b3c5a,14 +34b3c5b,1c +34b3c5c,2 +34b3c5e,20 +34b3c5f,25 +34b3c60,3c +34b3c61,2 +34b3c62,80 +34b3c63,40 +34b3c64,8c +34b3c65,42 +34b3c66,64 +34b3c67,cc +34b3c68,18 +34b3c69,40 +34b3c6b,2a +34b3c6c,3c +34b3c6d,17 +34b3c6e,80 +34b3c6f,11 +34b3c70,3c +34b3c71,12 +34b3c72,80 +34b3c73,40 +34b3c74,26 +34b3c75,52 +34b3c76,64 +34b3c77,2c +34b3c78,24 +34b3c79,14 +34b3c7b,5 +34b3c7e,88 +34b3c7f,25 +34b3c80,2 +34b3c81,40 +34b3c82,a8 +34b3c83,25 +34b3c84,36 +34b3c85,f7 +34b3c86,a5 +34b3c87,d0 +34b3c88,3c +34b3c89,16 +34b3c8a,80 +34b3c8b,40 +34b3c8d,11 +34b3c8e,10 +34b3c8f,40 +34b3c91,51 +34b3c92,10 +34b3c93,21 +34b3c95,2 +34b3c96,10 +34b3c97,80 +34b3c99,55 +34b3c9a,10 +34b3c9b,21 +34b3c9c,80 +34b3c9d,42 +34b3c9f,1 +34b3ca0,4 +34b3ca1,43 +34b3ca3,17 +34b3ca4,26 +34b3ca5,31 +34b3ca7,1 +34b3ca8,92 +34b3ca9,42 +34b3cac,2 +34b3cad,e2 +34b3cae,10 +34b3caf,21 +34b3cb0,90 +34b3cb1,42 +34b3cb3,bc +34b3cb5,2 +34b3cb6,1e +34b3cb9,3 +34b3cba,1e +34b3cbb,3 +34b3cbc,28 +34b3cbd,63 +34b3cbf,a +34b3cc0,50 +34b3cc1,60 +34b3cc3,1 +34b3cc4,24 +34b3cc5,2 +34b3cc7,9 +34b3cc8,24 +34b3cc9,3 +34b3cca,30 +34b3ccc,a7 +34b3ccd,a3 +34b3ccf,20 +34b3cd1,40 +34b3cd2,18 +34b3cd3,25 +34b3cd5,2 +34b3cd6,16 +34b3cd9,2 +34b3cda,16 +34b3cdb,3 +34b3cdc,4 +34b3cdd,42 +34b3cdf,1 +34b3ce2,18 +34b3ce3,25 +34b3ce4,24 +34b3ce5,63 +34b3ce7,30 +34b3ce8,a3 +34b3ce9,a3 +34b3ceb,20 +34b3cec,2 +34b3ced,80 +34b3cee,30 +34b3cef,25 +34b3cf0,2 +34b3cf1,60 +34b3cf2,28 +34b3cf3,25 +34b3cf4,c +34b3cf5,10 +34b3cf6,18 +34b3cf7,73 +34b3cf8,27 +34b3cf9,a4 +34b3cfb,20 +34b3cfc,26 +34b3cfd,31 +34b3cff,1 +34b3d00,26 +34b3d01,52 +34b3d03,c +34b3d04,8e +34b3d05,c2 +34b3d06,64 +34b3d07,cc +34b3d08,2 +34b3d09,22 +34b3d0a,10 +34b3d0b,2a +34b3d0c,14 +34b3d0d,40 +34b3d0e,ff +34b3d0f,df +34b3d10,26 +34b3d11,94 +34b3d13,12 +34b3d14,26 +34b3d15,77 +34b3d17,12 +34b3d18,24 +34b3d19,7 +34b3d1b,1 +34b3d1c,24 +34b3d1d,6 +34b3d1f,e +34b3d20,3c +34b3d21,5 +34b3d22,80 +34b3d23,40 +34b3d24,24 +34b3d25,a5 +34b3d26,63 +34b3d27,d8 +34b3d28,c +34b3d29,10 +34b3d2a,14 +34b3d2b,1c +34b3d2c,2 +34b3d2e,20 +34b3d2f,25 +34b3d30,3c +34b3d31,2 +34b3d32,80 +34b3d33,40 +34b3d34,8c +34b3d35,42 +34b3d36,64 +34b3d37,cc +34b3d38,58 +34b3d39,40 +34b3d3b,2b +34b3d3c,24 +34b3d3d,7 +34b3d3f,1 +34b3d40,3c +34b3d41,12 +34b3d42,80 +34b3d43,40 +34b3d44,26 +34b3d45,52 +34b3d46,64 +34b3d47,2c +34b3d4a,88 +34b3d4b,25 +34b3d4c,2 +34b3d4d,40 +34b3d4e,a0 +34b3d4f,25 +34b3d50,3c +34b3d51,16 +34b3d52,80 +34b3d53,11 +34b3d54,3c +34b3d55,1e +34b3d56,80 +34b3d57,40 +34b3d58,27 +34b3d59,de +34b3d5a,63 +34b3d5b,d8 +34b3d5c,3c +34b3d5d,15 +34b3d5e,80 +34b3d5f,40 +34b3d61,11 +34b3d62,10 +34b3d63,40 +34b3d65,51 +34b3d66,10 +34b3d67,21 +34b3d69,2 +34b3d6a,10 +34b3d6b,80 +34b3d6d,54 +34b3d6e,10 +34b3d6f,21 +34b3d70,90 +34b3d71,42 +34b3d73,1 +34b3d74,30 +34b3d75,42 +34b3d77,40 +34b3d78,50 +34b3d79,40 +34b3d7b,16 +34b3d7c,26 +34b3d7d,31 +34b3d7f,1 +34b3d80,36 +34b3d81,c2 +34b3d82,a5 +34b3d83,d0 +34b3d84,92 +34b3d85,43 +34b3d89,43 +34b3d8a,10 +34b3d8b,21 +34b3d8c,90 +34b3d8d,42 +34b3d8f,a8 +34b3d90,30 +34b3d91,42 +34b3d93,1 +34b3d94,50 +34b3d95,40 +34b3d97,f +34b3d98,26 +34b3d99,31 +34b3d9b,1 +34b3d9c,24 +34b3d9d,2 +34b3d9f,10 +34b3da0,af +34b3da1,a2 +34b3da3,18 +34b3da4,af +34b3da5,a2 +34b3da7,14 +34b3da9,11 +34b3daa,10 +34b3dab,c0 +34b3dad,51 +34b3dae,10 +34b3daf,21 +34b3db1,2 +34b3db2,10 +34b3db3,40 +34b3db4,24 +34b3db5,42 +34b3db7,4 +34b3db8,af +34b3db9,a2 +34b3dbb,10 +34b3dbc,2 +34b3dbd,e0 +34b3dbe,38 +34b3dbf,25 +34b3dc2,30 +34b3dc3,25 +34b3dc4,3 +34b3dc5,c0 +34b3dc6,28 +34b3dc7,25 +34b3dc8,c +34b3dc9,10 +34b3dca,14 +34b3dcb,af +34b3dcc,2 +34b3dce,20 +34b3dcf,25 +34b3dd0,26 +34b3dd1,31 +34b3dd3,1 +34b3dd4,8e +34b3dd5,a2 +34b3dd6,64 +34b3dd7,cc +34b3dd8,2 +34b3dd9,22 +34b3dda,10 +34b3ddb,2a +34b3ddc,14 +34b3ddd,40 +34b3dde,ff +34b3ddf,e0 +34b3de0,26 +34b3de1,52 +34b3de3,c +34b3de4,24 +34b3de5,7 +34b3de7,1 +34b3de8,24 +34b3de9,6 +34b3deb,a +34b3dec,3c +34b3ded,5 +34b3dee,80 +34b3def,40 +34b3df0,24 +34b3df1,a5 +34b3df2,63 +34b3df3,d8 +34b3df4,c +34b3df5,10 +34b3df6,14 +34b3df7,1c +34b3df8,2 +34b3dfa,20 +34b3dfb,25 +34b3dfc,3c +34b3dfd,2 +34b3dfe,80 +34b3dff,40 +34b3e00,8c +34b3e01,42 +34b3e02,64 +34b3e03,cc +34b3e04,58 +34b3e05,40 +34b3e07,29 +34b3e08,26 +34b3e09,7e +34b3e0b,24 +34b3e0e,88 +34b3e0f,25 +34b3e10,3c +34b3e11,12 +34b3e12,80 +34b3e13,40 +34b3e14,26 +34b3e15,52 +34b3e16,64 +34b3e17,2c +34b3e18,3c +34b3e19,15 +34b3e1a,80 +34b3e1b,11 +34b3e1c,3c +34b3e1d,16 +34b3e1e,80 +34b3e1f,40 +34b3e20,26 +34b3e21,d6 +34b3e22,63 +34b3e23,d8 +34b3e24,3c +34b3e25,14 +34b3e26,80 +34b3e27,40 +34b3e29,11 +34b3e2a,10 +34b3e2b,40 +34b3e2d,51 +34b3e2e,10 +34b3e2f,21 +34b3e31,2 +34b3e32,10 +34b3e33,80 +34b3e35,52 +34b3e36,10 +34b3e37,21 +34b3e38,90 +34b3e39,42 +34b3e3b,1 +34b3e3c,30 +34b3e3d,42 +34b3e3f,20 +34b3e40,50 +34b3e41,40 +34b3e43,15 +34b3e44,26 +34b3e45,31 +34b3e47,1 +34b3e48,36 +34b3e49,a2 +34b3e4a,a5 +34b3e4b,d0 +34b3e4c,8c +34b3e4d,42 +34b3e4f,a4 +34b3e50,3c +34b3e51,3 +34b3e53,40 +34b3e55,43 +34b3e56,10 +34b3e57,24 +34b3e58,50 +34b3e59,40 +34b3e5b,f +34b3e5c,26 +34b3e5d,31 +34b3e5f,1 +34b3e60,24 +34b3e61,2 +34b3e63,10 +34b3e64,af +34b3e65,a2 +34b3e67,18 +34b3e68,af +34b3e69,a2 +34b3e6b,14 +34b3e6d,11 +34b3e6e,10 +34b3e6f,c0 +34b3e71,51 +34b3e72,10 +34b3e73,21 +34b3e75,2 +34b3e76,10 +34b3e77,40 +34b3e78,24 +34b3e79,42 +34b3e7b,4 +34b3e7c,af +34b3e7d,a2 +34b3e7f,10 +34b3e80,2 +34b3e81,e0 +34b3e82,38 +34b3e83,25 +34b3e86,30 +34b3e87,25 +34b3e88,2 +34b3e89,c0 +34b3e8a,28 +34b3e8b,25 +34b3e8c,c +34b3e8d,10 +34b3e8e,14 +34b3e8f,af +34b3e90,2 +34b3e92,20 +34b3e93,25 +34b3e94,26 +34b3e95,31 +34b3e97,1 +34b3e98,8e +34b3e99,82 +34b3e9a,64 +34b3e9b,cc +34b3e9c,2 +34b3e9d,22 +34b3e9e,10 +34b3e9f,2a +34b3ea0,14 +34b3ea1,40 +34b3ea2,ff +34b3ea3,e2 +34b3ea5,11 +34b3ea6,10 +34b3ea7,40 +34b3ea8,26 +34b3ea9,7e +34b3eab,24 +34b3eac,24 +34b3ead,7 +34b3eaf,1 +34b3eb0,24 +34b3eb1,6 +34b3eb3,10 +34b3eb4,3c +34b3eb5,5 +34b3eb6,80 +34b3eb7,40 +34b3eb8,24 +34b3eb9,a5 +34b3eba,63 +34b3ebb,d8 +34b3ebc,c +34b3ebd,10 +34b3ebe,14 +34b3ebf,1c +34b3ec0,2 +34b3ec2,20 +34b3ec3,25 +34b3ec4,3c +34b3ec5,2 +34b3ec6,80 +34b3ec7,40 +34b3ec8,8c +34b3ec9,42 +34b3eca,64 +34b3ecb,cc +34b3ecc,18 +34b3ecd,40 +34b3ecf,2a +34b3ed0,3c +34b3ed1,12 +34b3ed2,80 +34b3ed3,40 +34b3ed4,26 +34b3ed5,52 +34b3ed6,64 +34b3ed7,2c +34b3eda,88 +34b3edb,25 +34b3edc,2 +34b3edd,40 +34b3ede,a0 +34b3edf,25 +34b3ee0,3c +34b3ee1,16 +34b3ee2,80 +34b3ee3,11 +34b3ee4,3c +34b3ee5,17 +34b3ee6,80 +34b3ee7,40 +34b3ee8,26 +34b3ee9,f7 +34b3eea,63 +34b3eeb,d8 +34b3eec,3c +34b3eed,15 +34b3eee,80 +34b3eef,40 +34b3ef1,11 +34b3ef2,10 +34b3ef3,40 +34b3ef5,51 +34b3ef6,10 +34b3ef7,21 +34b3ef9,2 +34b3efa,10 +34b3efb,80 +34b3efd,54 +34b3efe,10 +34b3eff,21 +34b3f00,90 +34b3f01,42 +34b3f03,1 +34b3f04,30 +34b3f05,42 +34b3f07,10 +34b3f08,50 +34b3f09,40 +34b3f0b,17 +34b3f0c,26 +34b3f0d,31 +34b3f0f,1 +34b3f10,36 +34b3f11,c2 +34b3f12,a5 +34b3f13,d0 +34b3f14,92 +34b3f15,43 +34b3f19,43 +34b3f1a,10 +34b3f1b,21 +34b3f1c,90 +34b3f1d,42 +34b3f1f,a8 +34b3f21,2 +34b3f22,10 +34b3f23,82 +34b3f24,30 +34b3f25,42 +34b3f27,1 +34b3f28,50 +34b3f29,40 +34b3f2b,f +34b3f2c,26 +34b3f2d,31 +34b3f2f,1 +34b3f30,24 +34b3f31,2 +34b3f33,10 +34b3f34,af +34b3f35,a2 +34b3f37,18 +34b3f38,af +34b3f39,a2 +34b3f3b,14 +34b3f3d,11 +34b3f3e,10 +34b3f3f,c0 +34b3f41,51 +34b3f42,10 +34b3f43,21 +34b3f45,2 +34b3f46,10 +34b3f47,40 +34b3f48,24 +34b3f49,42 +34b3f4b,4 +34b3f4c,af +34b3f4d,a2 +34b3f4f,10 +34b3f50,3 +34b3f51,c0 +34b3f52,38 +34b3f53,25 +34b3f56,30 +34b3f57,25 +34b3f58,2 +34b3f59,e0 +34b3f5a,28 +34b3f5b,25 +34b3f5c,c +34b3f5d,10 +34b3f5e,14 +34b3f5f,af +34b3f60,2 +34b3f62,20 +34b3f63,25 +34b3f64,26 +34b3f65,31 +34b3f67,1 +34b3f68,8e +34b3f69,a2 +34b3f6a,64 +34b3f6b,cc +34b3f6c,2 +34b3f6d,22 +34b3f6e,10 +34b3f6f,2a +34b3f70,14 +34b3f71,40 +34b3f72,ff +34b3f73,df +34b3f74,26 +34b3f75,52 +34b3f77,c +34b3f78,26 +34b3f79,7e +34b3f7b,36 +34b3f7c,24 +34b3f7d,7 +34b3f7f,1 +34b3f80,24 +34b3f81,6 +34b3f83,f +34b3f84,3c +34b3f85,5 +34b3f86,80 +34b3f87,40 +34b3f88,24 +34b3f89,a5 +34b3f8a,63 +34b3f8b,d8 +34b3f8c,c +34b3f8d,10 +34b3f8e,14 +34b3f8f,1c +34b3f90,2 +34b3f92,20 +34b3f93,25 +34b3f94,3c +34b3f95,2 +34b3f96,80 +34b3f97,40 +34b3f98,8c +34b3f99,42 +34b3f9a,64 +34b3f9b,cc +34b3f9c,18 +34b3f9d,40 +34b3f9f,62 +34b3fa0,3c +34b3fa1,12 +34b3fa2,80 +34b3fa3,40 +34b3fa4,26 +34b3fa5,52 +34b3fa6,64 +34b3fa7,2c +34b3faa,88 +34b3fab,25 +34b3fac,2 +34b3fad,40 +34b3fae,a0 +34b3faf,25 +34b3fb0,3c +34b3fb1,16 +34b3fb2,80 +34b3fb3,11 +34b3fb4,3c +34b3fb5,17 +34b3fb6,80 +34b3fb7,40 +34b3fb8,26 +34b3fb9,f7 +34b3fba,63 +34b3fbb,d8 +34b3fbc,3c +34b3fbd,15 +34b3fbe,80 +34b3fbf,40 +34b3fc1,11 +34b3fc2,10 +34b3fc3,40 +34b3fc5,51 +34b3fc6,10 +34b3fc7,21 +34b3fc9,2 +34b3fca,10 +34b3fcb,80 +34b3fcd,54 +34b3fce,10 +34b3fcf,21 +34b3fd0,90 +34b3fd1,42 +34b3fd3,1 +34b3fd4,30 +34b3fd5,42 +34b3fd7,10 +34b3fd8,50 +34b3fd9,40 +34b3fdb,17 +34b3fdc,26 +34b3fdd,31 +34b3fdf,1 +34b3fe0,36 +34b3fe1,c2 +34b3fe2,a5 +34b3fe3,d0 +34b3fe4,92 +34b3fe5,43 +34b3fe9,43 +34b3fea,10 +34b3feb,21 +34b3fec,90 +34b3fed,42 +34b3fef,a8 +34b3ff1,2 +34b3ff2,10 +34b3ff3,42 +34b3ff4,30 +34b3ff5,42 +34b3ff7,1 +34b3ff8,50 +34b3ff9,40 +34b3ffb,f +34b3ffc,26 +34b3ffd,31 +34b3fff,1 +34b4000,24 +34b4001,2 +34b4003,10 +34b4004,af +34b4005,a2 +34b4007,18 +34b4008,af +34b4009,a2 +34b400b,14 +34b400d,11 +34b400e,10 +34b400f,c0 +34b4011,51 +34b4012,10 +34b4013,21 +34b4015,2 +34b4016,10 +34b4017,40 +34b4018,24 +34b4019,42 +34b401b,4 +34b401c,af +34b401d,a2 +34b401f,10 +34b4020,3 +34b4021,c0 +34b4022,38 +34b4023,25 +34b4026,30 +34b4027,25 +34b4028,2 +34b4029,e0 +34b402a,28 +34b402b,25 +34b402c,c +34b402d,10 +34b402e,14 +34b402f,af +34b4030,2 +34b4032,20 +34b4033,25 +34b4034,26 +34b4035,31 +34b4037,1 +34b4038,8e +34b4039,a2 +34b403a,64 +34b403b,cc +34b403c,2 +34b403d,22 +34b403e,10 +34b403f,2a +34b4040,14 +34b4041,40 +34b4042,ff +34b4043,df +34b4044,26 +34b4045,52 +34b4047,c +34b4048,3c +34b4049,2 +34b404a,80 +34b404b,40 +34b404c,8c +34b404d,42 +34b404e,64 +34b404f,dc +34b4050,10 +34b4051,40 +34b4053,35 +34b4054,3c +34b4055,2 +34b4056,80 +34b4057,40 +34b4058,8c +34b4059,42 +34b405a,64 +34b405b,cc +34b405c,18 +34b405d,40 +34b405f,32 +34b4060,3c +34b4061,12 +34b4062,80 +34b4063,40 +34b4064,26 +34b4065,52 +34b4066,64 +34b4067,2c +34b4068,24 +34b4069,14 +34b406b,5 +34b406e,88 +34b406f,25 +34b4070,3c +34b4071,17 +34b4072,80 +34b4073,40 +34b4074,3c +34b4075,16 +34b4076,80 +34b4077,40 +34b4078,26 +34b4079,d6 +34b407a,64 +34b407b,f8 +34b407c,3c +34b407d,15 +34b407e,80 +34b407f,40 +34b4080,26 +34b4081,b5 +34b4082,63 +34b4083,bc +34b4084,3c +34b4085,2 +34b4086,80 +34b4087,40 +34b4088,24 +34b4089,42 +34b408a,63 +34b408b,c0 +34b408c,af +34b408d,a2 +34b408f,38 +34b4090,3c +34b4091,1e +34b4092,80 +34b4093,40 +34b4094,8e +34b4095,e2 +34b4096,64 +34b4097,d8 +34b4098,50 +34b4099,40 +34b409b,14 +34b409c,92 +34b409d,42 +34b40a1,11 +34b40a2,10 +34b40a3,40 +34b40a5,51 +34b40a6,10 +34b40a7,21 +34b40a9,2 +34b40aa,10 +34b40ab,80 +34b40ac,27 +34b40ad,c3 +34b40ae,64 +34b40af,2c +34b40b1,43 +34b40b2,10 +34b40b3,21 +34b40b4,90 +34b40b5,42 +34b40b7,1 +34b40b8,30 +34b40b9,42 +34b40bb,10 +34b40bc,50 +34b40bd,40 +34b40bf,b +34b40c0,92 +34b40c1,42 +34b40c4,92 +34b40c5,43 +34b40c8,3c +34b40c9,2 +34b40ca,80 +34b40cb,11 +34b40cc,34 +34b40cd,42 +34b40ce,a5 +34b40cf,d0 +34b40d1,43 +34b40d2,10 +34b40d3,21 +34b40d4,90 +34b40d5,42 +34b40d7,a8 +34b40d9,2 +34b40da,10 +34b40db,82 +34b40dc,30 +34b40dd,42 +34b40df,1 +34b40e0,50 +34b40e1,40 +34b40e3,b +34b40e4,26 +34b40e5,31 +34b40e7,1 +34b40e8,92 +34b40e9,42 +34b40ed,56 +34b40ee,10 +34b40ef,21 +34b40f0,90 +34b40f1,42 +34b40f4,14 +34b40f5,40 +34b40f7,2 +34b40f8,2 +34b40f9,a0 +34b40fa,20 +34b40fb,25 +34b40fc,8f +34b40fd,a4 +34b40ff,38 +34b4100,2 +34b4101,80 +34b4102,30 +34b4103,25 +34b4104,c +34b4105,10 +34b4106,18 +34b4107,73 +34b4108,26 +34b4109,65 +34b410b,48 +34b410c,26 +34b410d,31 +34b410f,1 +34b4110,26 +34b4111,94 +34b4113,12 +34b4114,3c +34b4115,2 +34b4116,80 +34b4117,40 +34b4118,8c +34b4119,42 +34b411a,64 +34b411b,cc +34b411c,2 +34b411d,22 +34b411e,10 +34b411f,2a +34b4120,14 +34b4121,40 +34b4122,ff +34b4123,dc +34b4124,26 +34b4125,52 +34b4127,c +34b4128,c +34b4129,10 +34b412a,18 +34b412b,9d +34b412c,2 +34b412e,20 +34b412f,25 +34b4130,8e +34b4131,2 +34b4133,8 +34b4134,24 +34b4135,43 +34b4137,8 +34b4138,ae +34b4139,3 +34b413b,8 +34b413c,3c +34b413d,3 +34b413e,e9 +34b4140,ac +34b4141,43 +34b4144,ac +34b4145,40 +34b4147,4 +34b4148,8e +34b4149,2 +34b414b,8 +34b414c,24 +34b414d,43 +34b414f,8 +34b4150,ae +34b4151,3 +34b4153,8 +34b4154,3c +34b4155,3 +34b4156,df +34b4158,ac +34b4159,43 +34b415c,ac +34b415d,40 +34b415f,4 +34b4160,8f +34b4161,bf +34b4163,64 +34b4164,8f +34b4165,be +34b4167,60 +34b4168,8f +34b4169,b7 +34b416b,5c +34b416c,8f +34b416d,b6 +34b416f,58 +34b4170,8f +34b4171,b5 +34b4173,54 +34b4174,8f +34b4175,b4 +34b4177,50 +34b4178,8f +34b4179,b3 +34b417b,4c +34b417c,8f +34b417d,b2 +34b417f,48 +34b4180,8f +34b4181,b1 +34b4183,44 +34b4184,8f +34b4185,b0 +34b4187,40 +34b4188,3 +34b4189,e0 +34b418b,8 +34b418c,27 +34b418d,bd +34b418f,68 +34b4190,10 +34b4192,fe +34b4193,a8 +34b4194,26 +34b4195,73 +34b4197,14 +34b4198,3 +34b4199,e0 +34b419b,8 +34b41a0,27 +34b41a1,bd +34b41a2,ff +34b41a3,e8 +34b41a4,af +34b41a5,bf +34b41a7,14 +34b41a8,c +34b41a9,10 +34b41aa,15 +34b41ab,b7 +34b41ac,24 +34b41ad,4 +34b41ae,4 +34b41b0,3c +34b41b1,3 +34b41b2,80 +34b41b3,40 +34b41b4,ac +34b41b5,62 +34b41b6,64 +34b41b7,e4 +34b41b8,3c +34b41b9,3 +34b41ba,80 +34b41bb,40 +34b41bc,ac +34b41bd,62 +34b41be,64 +34b41bf,e0 +34b41c0,8f +34b41c1,bf +34b41c3,14 +34b41c4,3 +34b41c5,e0 +34b41c7,8 +34b41c8,27 +34b41c9,bd +34b41cb,18 +34b41cc,80 +34b41cd,82 +34b41d0,10 +34b41d1,40 +34b41d3,26 +34b41d4,24 +34b41d5,87 +34b41d7,1 +34b41d8,3c +34b41d9,3 +34b41da,80 +34b41db,40 +34b41dc,8c +34b41dd,68 +34b41de,64 +34b41df,e4 +34b41e0,25 +34b41e1,8 +34b41e2,4 +34b41e4,3c +34b41e5,3 +34b41e6,80 +34b41e7,40 +34b41e8,8c +34b41e9,63 +34b41ea,64 +34b41eb,e0 +34b41ed,68 +34b41ee,20 +34b41ef,2b +34b41f0,10 +34b41f1,80 +34b41f3,1e +34b41f4,3c +34b41f5,a +34b41f6,ff +34b41f8,25 +34b41f9,4a +34b41fa,f +34b41fb,ff +34b41fc,30 +34b41fd,c6 +34b41fe,f +34b41ff,ff +34b4200,24 +34b4201,b +34b4202,f0 +34b4204,3c +34b4205,9 +34b4206,80 +34b4207,40 +34b4208,10 +34b420b,7 +34b420c,25 +34b420d,29 +34b420e,63 +34b420f,c8 +34b4211,68 +34b4212,20 +34b4213,2b +34b4214,54 +34b4215,80 +34b4217,5 +34b4218,a0 +34b4219,62 +34b421c,3c +34b421d,2 +34b421e,80 +34b421f,40 +34b4220,3 +34b4221,e0 +34b4223,8 +34b4224,ac +34b4225,43 +34b4226,64 +34b4227,e0 +34b4228,a0 +34b4229,62 +34b422c,30 +34b422d,a2 +34b422e,f +34b422f,ff +34b4231,2 +34b4232,23 +34b4234,8c +34b4235,62 +34b4239,4a +34b423a,10 +34b423b,24 +34b423d,44 +34b423e,10 +34b423f,25 +34b4241,4b +34b4242,10 +34b4243,24 +34b4245,46 +34b4246,10 +34b4247,25 +34b4248,ac +34b4249,62 +34b424c,95 +34b424d,22 +34b424f,4 +34b4251,a2 +34b4252,28 +34b4253,21 +34b4254,24 +34b4255,e7 +34b4257,1 +34b4258,80 +34b4259,e2 +34b425a,ff +34b425b,ff +34b425c,14 +34b425d,40 +34b425e,ff +34b425f,ec +34b4260,24 +34b4261,63 +34b4263,4 +34b4264,3c +34b4265,2 +34b4266,80 +34b4267,40 +34b4268,ac +34b4269,43 +34b426a,64 +34b426b,e0 +34b426c,3 +34b426d,e0 +34b426f,8 +34b4274,27 +34b4275,bd +34b4276,ff +34b4277,b0 +34b4278,af +34b4279,bf +34b427b,4c +34b427c,af +34b427d,be +34b427f,48 +34b4280,af +34b4281,b7 +34b4283,44 +34b4284,af +34b4285,b6 +34b4287,40 +34b4288,af +34b4289,b5 +34b428b,3c +34b428c,af +34b428d,b4 +34b428f,38 +34b4290,af +34b4291,b3 +34b4293,34 +34b4294,af +34b4295,b2 +34b4297,30 +34b4298,af +34b4299,b1 +34b429b,2c +34b429c,af +34b429d,b0 +34b429f,28 +34b42a1,80 +34b42a2,a8 +34b42a3,25 +34b42a6,b0 +34b42a7,25 +34b42aa,90 +34b42ab,25 +34b42ac,3c +34b42ad,14 +34b42ae,80 +34b42af,40 +34b42b0,26 +34b42b1,94 +34b42b2,63 +34b42b3,c8 +34b42b4,3c +34b42b5,1e +34b42b6,80 +34b42b7,40 +34b42b8,3c +34b42b9,13 +34b42ba,80 +34b42bb,40 +34b42bc,3c +34b42bd,17 +34b42be,38 +34b42bf,e3 +34b42c0,af +34b42c1,b4 +34b42c3,20 +34b42c4,24 +34b42c5,7 +34b42c7,12 +34b42c8,2 +34b42c9,c0 +34b42ca,30 +34b42cb,25 +34b42cc,2 +34b42cd,80 +34b42ce,28 +34b42cf,25 +34b42d0,c +34b42d1,10 +34b42d2,14 +34b42d3,1c +34b42d4,2 +34b42d5,a0 +34b42d6,20 +34b42d7,25 +34b42d8,8f +34b42d9,c5 +34b42da,64 +34b42db,e4 +34b42dc,10 +34b42df,1f +34b42e0,36 +34b42e1,f1 +34b42e2,8e +34b42e3,39 +34b42e4,24 +34b42e5,42 +34b42e6,ff +34b42e7,e0 +34b42e9,51 +34b42eb,18 +34b42ee,18 +34b42ef,10 +34b42f1,3 +34b42f2,18 +34b42f3,83 +34b42f5,2 +34b42f6,27 +34b42f7,c3 +34b42f9,64 +34b42fa,18 +34b42fb,23 +34b42fc,14 +34b42fd,72 +34b42ff,16 +34b4300,24 +34b4301,b0 +34b4303,4 +34b4304,8c +34b4305,a7 +34b4309,7 +34b430a,3b +34b430b,2 +34b430d,51 +34b430f,18 +34b4312,30 +34b4313,10 +34b4315,6 +34b4316,30 +34b4317,83 +34b4319,c4 +34b431a,30 +34b431b,23 +34b431d,6 +34b431e,18 +34b431f,c0 +34b4321,66 +34b4322,30 +34b4323,21 +34b4325,6 +34b4326,30 +34b4327,40 +34b4328,96 +34b4329,83 +34b432b,6 +34b432c,af +34b432d,a3 +34b432f,18 +34b4330,96 +34b4331,83 +34b4333,4 +34b4334,af +34b4335,a3 +34b4337,14 +34b4338,8c +34b4339,a3 +34b433c,30 +34b433d,63 +34b433e,f +34b433f,ff +34b4340,af +34b4341,a3 +34b4343,10 +34b4344,30 +34b4345,e7 +34b4346,f +34b4347,ff +34b4349,46 +34b434a,30 +34b434b,23 +34b434c,8f +34b434d,a5 +34b434f,20 +34b4350,c +34b4351,10 +34b4352,14 +34b4353,af +34b4354,2 +34b4355,a0 +34b4356,20 +34b4357,25 +34b4358,2 +34b435a,28 +34b435b,25 +34b435c,8e +34b435d,62 +34b435e,64 +34b435f,e0 +34b4361,a2 +34b4362,10 +34b4363,2b +34b4364,54 +34b4365,40 +34b4366,ff +34b4367,df +34b4368,80 +34b4369,a2 +34b436c,26 +34b436d,52 +34b436f,1 +34b4370,24 +34b4371,2 +34b4373,6 +34b4374,16 +34b4375,42 +34b4376,ff +34b4377,d3 +34b4378,26 +34b4379,d6 +34b437b,12 +34b437c,3c +34b437d,2 +34b437e,80 +34b437f,40 +34b4380,8c +34b4381,43 +34b4382,64 +34b4383,e4 +34b4384,3c +34b4385,2 +34b4386,80 +34b4387,40 +34b4388,ac +34b4389,43 +34b438a,64 +34b438b,e0 +34b438c,8f +34b438d,bf +34b438f,4c +34b4390,8f +34b4391,be +34b4393,48 +34b4394,8f +34b4395,b7 +34b4397,44 +34b4398,8f +34b4399,b6 +34b439b,40 +34b439c,8f +34b439d,b5 +34b439f,3c +34b43a0,8f +34b43a1,b4 +34b43a3,38 +34b43a4,8f +34b43a5,b3 +34b43a7,34 +34b43a8,8f +34b43a9,b2 +34b43ab,30 +34b43ac,8f +34b43ad,b1 +34b43af,2c +34b43b0,8f +34b43b1,b0 +34b43b3,28 +34b43b4,3 +34b43b5,e0 +34b43b7,8 +34b43b8,27 +34b43b9,bd +34b43bb,50 +34b43bc,4d +34b43bd,51 +34b43c0,4e +34b43c1,6f +34b43c2,72 +34b43c3,6d +34b43c4,61 +34b43c5,6c +34b43cd,8 +34b43cf,e +34b43d1,5f +34b43d2,3 +34b43d3,1 +34b43d4,1 +34b43dd,18 +34b43df,18 +34b43e1,12 +34b43e3,3 +34b43e4,4 +34b43ed,10 +34b43ef,10 +34b43f1,6 +34b43f2,3 +34b43f3,1 +34b43f4,1 +34b43fd,10 +34b43ff,10 +34b4401,3 +34b4403,3 +34b4404,4 +34b4409,1 +34b440a,2 +34b440b,3 +34b440c,4 +34b440d,5 +34b440e,6 +34b440f,7 +34b4410,ff +34b4411,ff +34b4412,ff +34b4413,ff +34b4414,ff +34b4415,ff +34b4418,11 +34b4419,c2 +34b441a,2d +34b441b,d4 +34b441c,43 +34b441d,22 +34b441e,8 +34b441f,54 +34b4420,ce +34b4421,d1 +34b4422,75 +34b4423,1a +34b4424,a9 +34b4425,3a +34b4426,ea +34b4427,a4 +34b4428,ab +34b4429,21 +34b442d,10 +34b442e,44 +34b442f,65 +34b4430,6b +34b4431,75 +34b4438,1 +34b4439,10 +34b443a,44 +34b443b,6f +34b443c,64 +34b443d,6f +34b443e,6e +34b443f,67 +34b4440,6f +34b4444,2 +34b4445,10 +34b4446,4a +34b4447,61 +34b4448,62 +34b4449,75 +34b4450,3 +34b4451,d0 +34b4452,46 +34b4453,6f +34b4454,72 +34b4455,65 +34b4456,73 +34b4457,74 +34b445c,4 +34b445d,d0 +34b445e,46 +34b445f,69 +34b4460,72 +34b4461,65 +34b4468,5 +34b4469,d0 +34b446a,57 +34b446b,61 +34b446c,74 +34b446d,65 +34b446e,72 +34b4474,7 +34b4475,d0 +34b4476,53 +34b4477,68 +34b4478,61 +34b4479,64 +34b447a,6f +34b447b,77 +34b4480,6 +34b4481,d0 +34b4482,53 +34b4483,70 +34b4484,69 +34b4485,72 +34b4486,69 +34b4487,74 +34b448c,8 +34b448d,90 +34b448e,42 +34b448f,6f +34b4490,74 +34b4491,57 +34b4498,9 +34b4499,10 +34b449a,49 +34b449b,63 +34b449c,65 +34b44a4,c +34b44a5,a0 +34b44a6,47 +34b44a7,65 +34b44a8,72 +34b44a9,75 +34b44aa,64 +34b44ab,6f +34b44b0,b +34b44b1,80 +34b44b2,47 +34b44b3,54 +34b44b4,47 +34b44bc,d +34b44bd,c0 +34b44be,47 +34b44bf,61 +34b44c0,6e +34b44c1,6f +34b44c2,6e +34b44cb,1 +34b44cf,d +34b4547,d +34b4548,b0 +34b454b,d +34b454c,b0 +34b454f,d +34b4550,b0 +34b4553,c +34b4554,b0 +34b4557,c +34b4558,b0 +34b455b,c +34b455c,a0 +34b4563,d +34b4564,b0 +34b4567,d +34b4568,b0 +34b457f,e8 +34b4580,ac +34b4583,e8 +34b4584,ac +34b4587,e8 +34b4588,ac +34b458b,e8 +34b458c,ac +34b45b3,d +34b45b4,77 +34b45b5,d0 +34b45b7,2e +34b45b8,3a +34b45b9,b0 +34b45bb,7d +34b45bc,c +34b45bd,90 +34b45be,8f +34b45bf,ff +34b45c0,ff +34b45c1,fd +34b45c3,c9 +34b45c4,6e +34b45c6,2 +34b45c7,e4 +34b45c8,ac +34b45ca,ef +34b45cb,ff +34b45cc,ff +34b45cd,f4 +34b45ce,a +34b45cf,b0 +34b45d0,e5 +34b45d2,c +34b45d3,95 +34b45d4,e0 +34b45d6,e +34b45d7,59 +34b45d8,c0 +34b45ef,7 +34b45f0,90 +34b45f2,5 +34b45f3,ce +34b45f4,eb +34b45f5,40 +34b45f6,c +34b45f7,c8 +34b45f8,a9 +34b45f9,90 +34b45fa,d +34b45fb,a7 +34b45fc,90 +34b45fe,8 +34b45ff,ec +34b4600,b4 +34b4603,4a +34b4604,dd +34b4605,a0 +34b4607,7 +34b4608,97 +34b4609,e2 +34b460a,c +34b460b,88 +34b460c,aa +34b460d,e0 +34b460e,6 +34b460f,ce +34b4610,ed +34b4611,70 +34b4613,7 +34b4614,90 +34b4617,7 +34b4618,90 +34b4626,6d +34b4627,ea +34b462a,c9 +34b462b,4d +34b462c,60 +34b462e,c9 +34b462f,4d +34b4630,60 +34b4631,33 +34b4632,6d +34b4633,eb +34b4634,6b +34b4635,c6 +34b4637,8c +34b4638,b6 +34b463a,7c +34b463b,a4 +34b463c,ce +34b463d,c4 +34b463e,31 +34b463f,9 +34b4640,c3 +34b4641,bb +34b4643,9 +34b4644,c3 +34b4645,bb +34b4647,2 +34b4648,ce +34b4649,d4 +34b465e,4 +34b465f,ce +34b4660,fb +34b4662,a +34b4663,d5 +34b4666,8 +34b4667,e3 +34b466a,9 +34b466b,ec +34b466e,7e +34b466f,4d +34b4670,b0 +34b4671,ab +34b4672,bb +34b4673,5 +34b4674,e8 +34b4675,aa +34b4676,bc +34b4678,8e +34b4679,d6 +34b467a,7e +34b467b,93 +34b467c,6e +34b467d,d0 +34b467e,8 +34b467f,de +34b4680,d9 +34b4681,ea +34b4697,c +34b4698,a0 +34b469b,c +34b469c,a0 +34b469f,c +34b46a0,a0 +34b46a3,c +34b46a4,a0 +34b46c8,c9 +34b46cb,7 +34b46cc,e2 +34b46cf,c +34b46d0,b0 +34b46d3,e +34b46d4,80 +34b46d7,6f +34b46d8,30 +34b46db,8e +34b46df,8e +34b46e3,6f +34b46e4,40 +34b46e7,e +34b46e8,80 +34b46eb,c +34b46ec,b0 +34b46ef,7 +34b46f0,e2 +34b46f4,c9 +34b46ff,bb +34b4703,5e +34b4704,40 +34b4707,c +34b4708,a0 +34b470b,a +34b470c,d0 +34b470f,7 +34b4710,e1 +34b4713,6 +34b4714,f4 +34b4717,6 +34b4718,f4 +34b471b,7 +34b471c,e1 +34b471f,a +34b4720,d0 +34b4723,c +34b4724,a0 +34b4727,5e +34b4728,40 +34b472b,bb +34b473f,a +34b4740,80 +34b4742,c +34b4743,8a +34b4744,8a +34b4745,b0 +34b4746,3 +34b4747,be +34b4748,da +34b4749,10 +34b474a,3 +34b474b,be +34b474c,da +34b474d,10 +34b474e,c +34b474f,8a +34b4750,8a +34b4751,b0 +34b4753,a +34b4754,80 +34b477b,c +34b477c,a0 +34b477f,c +34b4780,a0 +34b4783,c +34b4784,a0 +34b4786,af +34b4787,ff +34b4788,ff +34b4789,f8 +34b478b,c +34b478c,a0 +34b478f,c +34b4790,a0 +34b4793,c +34b4794,a0 +34b47cb,d +34b47cc,d0 +34b47cf,e +34b47d0,c0 +34b47d3,4f +34b47d4,80 +34b47d7,9d +34b47fb,df +34b47fc,fb +34b483b,e +34b483c,c0 +34b483f,e +34b4840,c0 +34b4858,b +34b4859,c0 +34b485c,4e +34b485d,60 +34b4860,bc +34b4863,3 +34b4864,e8 +34b4867,a +34b4868,d0 +34b486b,1e +34b486c,90 +34b486f,9e +34b4870,20 +34b4873,da +34b4876,7 +34b4877,e3 +34b487a,c +34b487b,b0 +34b487e,6e +34b487f,50 +34b488e,3 +34b488f,ce +34b4890,eb +34b4892,b +34b4893,d5 +34b4894,7e +34b4895,90 +34b4896,e +34b4897,90 +34b4898,b +34b4899,d0 +34b489a,5f +34b489b,70 +34b489c,9 +34b489d,e0 +34b489e,6f +34b489f,6c +34b48a0,b9 +34b48a1,e0 +34b48a2,5f +34b48a3,70 +34b48a4,9 +34b48a5,e0 +34b48a6,e +34b48a7,90 +34b48a8,b +34b48a9,d0 +34b48aa,b +34b48ab,d5 +34b48ac,7e +34b48ad,90 +34b48ae,3 +34b48af,ce +34b48b0,eb +34b48c6,a +34b48c7,ff +34b48c8,e0 +34b48cb,8 +34b48cc,e0 +34b48cf,8 +34b48d0,e0 +34b48d3,8 +34b48d4,e0 +34b48d7,8 +34b48d8,e0 +34b48db,8 +34b48dc,e0 +34b48df,8 +34b48e0,e0 +34b48e3,8 +34b48e4,e0 +34b48e6,8 +34b48e7,ff +34b48e8,ff +34b48e9,e0 +34b48fe,8 +34b48ff,de +34b4900,ea +34b4902,c +34b4903,83 +34b4904,7e +34b4905,90 +34b4908,c +34b4909,c0 +34b490c,2e +34b490d,a0 +34b4910,bd +34b4911,20 +34b4913,b +34b4914,d4 +34b4917,bd +34b4918,40 +34b491a,b +34b491b,d4 +34b491e,2f +34b491f,ff +34b4920,ff +34b4921,d0 +34b4936,7 +34b4937,ce +34b4938,ea +34b493a,c +34b493b,83 +34b493c,7e +34b493d,90 +34b4940,c +34b4941,b0 +34b4943,2 +34b4944,7e +34b4945,90 +34b4947,bf +34b4948,fb +34b494b,2 +34b494c,7d +34b494d,a0 +34b4950,a +34b4951,d0 +34b4952,5c +34b4953,62 +34b4954,7d +34b4955,b0 +34b4956,9 +34b4957,de +34b4958,eb +34b4959,30 +34b496f,2 +34b4970,de +34b4973,b +34b4974,de +34b4977,7d +34b4978,9e +34b497a,2 +34b497b,d7 +34b497c,9e +34b497e,b +34b497f,b0 +34b4980,9e +34b4982,6e +34b4983,40 +34b4984,9e +34b4986,9f +34b4987,ff +34b4988,ff +34b4989,f7 +34b498c,9e +34b4990,9e +34b49a6,c +34b49a7,ff +34b49a8,ff +34b49a9,50 +34b49aa,c +34b49ab,a0 +34b49ae,c +34b49af,a0 +34b49b2,c +34b49b3,ee +34b49b4,ea +34b49b7,3 +34b49b8,8e +34b49b9,90 +34b49bc,b +34b49bd,c0 +34b49c0,b +34b49c1,c0 +34b49c2,5c +34b49c3,63 +34b49c4,8e +34b49c5,90 +34b49c6,9 +34b49c7,de +34b49c8,da +34b49df,ae +34b49e0,ec +34b49e1,30 +34b49e2,a +34b49e3,e8 +34b49e4,39 +34b49e5,80 +34b49e6,e +34b49e7,90 +34b49ea,4f +34b49eb,ae +34b49ec,ec +34b49ed,40 +34b49ee,6f +34b49ef,d5 +34b49f0,5d +34b49f1,c0 +34b49f2,5f +34b49f3,90 +34b49f4,9 +34b49f5,e0 +34b49f6,e +34b49f7,90 +34b49f8,9 +34b49f9,e0 +34b49fa,c +34b49fb,d5 +34b49fc,5d +34b49fd,c0 +34b49fe,3 +34b49ff,ce +34b4a00,ec +34b4a01,40 +34b4a16,5f +34b4a17,ff +34b4a18,ff +34b4a19,d0 +34b4a1c,d +34b4a1d,a0 +34b4a20,7e +34b4a21,40 +34b4a24,cc +34b4a27,4 +34b4a28,e8 +34b4a2b,a +34b4a2c,d0 +34b4a2f,d +34b4a30,a0 +34b4a33,8e +34b4a34,40 +34b4a37,cc +34b4a4e,5 +34b4a4f,ce +34b4a50,ec +34b4a51,30 +34b4a52,d +34b4a53,c4 +34b4a54,5d +34b4a55,b0 +34b4a56,e +34b4a57,90 +34b4a58,b +34b4a59,d0 +34b4a5a,b +34b4a5b,c4 +34b4a5c,5d +34b4a5d,90 +34b4a5e,4 +34b4a5f,df +34b4a60,fc +34b4a61,20 +34b4a62,1d +34b4a63,b4 +34b4a64,5c +34b4a65,c0 +34b4a66,5f +34b4a67,60 +34b4a68,9 +34b4a69,e0 +34b4a6a,2e +34b4a6b,b3 +34b4a6c,5c +34b4a6d,d0 +34b4a6e,7 +34b4a6f,de +34b4a70,ec +34b4a71,50 +34b4a86,6 +34b4a87,de +34b4a88,eb +34b4a8a,d +34b4a8b,b3 +34b4a8c,7e +34b4a8d,90 +34b4a8e,5f +34b4a8f,50 +34b4a90,b +34b4a91,d0 +34b4a92,5f +34b4a93,50 +34b4a94,b +34b4a95,e0 +34b4a96,d +34b4a97,b3 +34b4a98,7e +34b4a99,e0 +34b4a9a,6 +34b4a9b,de +34b4a9c,db +34b4a9d,e0 +34b4aa0,b +34b4aa1,c0 +34b4aa2,9 +34b4aa3,74 +34b4aa4,9e +34b4aa5,70 +34b4aa6,5 +34b4aa7,de +34b4aa8,d8 +34b4ac7,e +34b4ac8,c0 +34b4acb,e +34b4acc,c0 +34b4adb,e +34b4adc,c0 +34b4adf,e +34b4ae0,c0 +34b4aff,e +34b4b00,c0 +34b4b03,e +34b4b04,c0 +34b4b13,d +34b4b14,d0 +34b4b17,e +34b4b18,c0 +34b4b1b,4f +34b4b1c,80 +34b4b1f,9d +34b4b38,29 +34b4b39,c8 +34b4b3b,7b +34b4b3c,ed +34b4b3d,93 +34b4b3e,8d +34b4b3f,da +34b4b40,40 +34b4b42,8d +34b4b43,da +34b4b44,40 +34b4b47,7b +34b4b48,ec +34b4b49,93 +34b4b4c,29 +34b4b4d,c8 +34b4b72,af +34b4b73,ff +34b4b74,ff +34b4b75,f8 +34b4b7e,af +34b4b7f,ff +34b4b80,ff +34b4b81,f8 +34b4ba6,ac +34b4ba7,81 +34b4baa,4a +34b4bab,de +34b4bac,b6 +34b4baf,6 +34b4bb0,ad +34b4bb1,d6 +34b4bb3,6 +34b4bb4,ad +34b4bb5,d6 +34b4bb6,4a +34b4bb7,de +34b4bb8,b6 +34b4bba,ac +34b4bbb,81 +34b4bd6,4 +34b4bd7,be +34b4bd8,ec +34b4bd9,30 +34b4bda,9 +34b4bdb,a4 +34b4bdc,6e +34b4bdd,a0 +34b4be0,1d +34b4be1,a0 +34b4be3,2 +34b4be4,cd +34b4be5,30 +34b4be7,c +34b4be8,c1 +34b4beb,e +34b4bec,90 +34b4bf3,e +34b4bf4,90 +34b4bf7,e +34b4bf8,90 +34b4c0e,1 +34b4c0f,ae +34b4c10,ed +34b4c11,70 +34b4c12,c +34b4c13,d7 +34b4c14,39 +34b4c15,e4 +34b4c16,7e +34b4c17,20 +34b4c19,c9 +34b4c1a,ba +34b4c1b,a +34b4c1c,ee +34b4c1d,ca +34b4c1e,d7 +34b4c1f,6e +34b4c20,64 +34b4c21,da +34b4c22,d6 +34b4c23,9c +34b4c25,aa +34b4c26,d7 +34b4c27,6e +34b4c28,64 +34b4c29,da +34b4c2a,ba +34b4c2b,a +34b4c2c,ee +34b4c2d,ca +34b4c2e,6e +34b4c2f,40 +34b4c32,a +34b4c33,d8 +34b4c34,30 +34b4c37,8d +34b4c38,ee +34b4c39,90 +34b4c47,3e +34b4c48,d0 +34b4c4b,9d +34b4c4c,e6 +34b4c4f,cb +34b4c50,cb +34b4c52,3 +34b4c53,e8 +34b4c54,ad +34b4c56,8 +34b4c57,e2 +34b4c58,6f +34b4c59,60 +34b4c5a,c +34b4c5b,c0 +34b4c5c,e +34b4c5d,a0 +34b4c5e,2e +34b4c5f,ff +34b4c60,ff +34b4c61,d0 +34b4c62,8e +34b4c63,50 +34b4c64,8 +34b4c65,f5 +34b4c66,cd +34b4c68,1 +34b4c69,ea +34b4c7e,e +34b4c7f,ff +34b4c80,ec +34b4c81,40 +34b4c82,e +34b4c83,90 +34b4c84,5d +34b4c85,c0 +34b4c86,e +34b4c87,90 +34b4c88,a +34b4c89,e0 +34b4c8a,e +34b4c8b,90 +34b4c8c,5d +34b4c8d,c0 +34b4c8e,e +34b4c8f,ff +34b4c90,fd +34b4c91,50 +34b4c92,e +34b4c93,90 +34b4c94,4b +34b4c95,d2 +34b4c96,e +34b4c97,90 +34b4c98,5 +34b4c99,f6 +34b4c9a,e +34b4c9b,90 +34b4c9c,4b +34b4c9d,e3 +34b4c9e,e +34b4c9f,ff +34b4ca0,ed +34b4ca1,80 +34b4cb7,9d +34b4cb8,ed +34b4cb9,80 +34b4cba,8 +34b4cbb,e9 +34b4cbc,36 +34b4cbd,b0 +34b4cbe,d +34b4cbf,b0 +34b4cc2,3f +34b4cc3,90 +34b4cc6,5f +34b4cc7,70 +34b4cca,1e +34b4ccb,90 +34b4cce,d +34b4ccf,b0 +34b4cd2,8 +34b4cd3,e9 +34b4cd4,47 +34b4cd5,b0 +34b4cd7,9d +34b4cd8,ed +34b4cd9,80 +34b4cee,5f +34b4cef,fe +34b4cf0,d8 +34b4cf2,5f +34b4cf3,65 +34b4cf4,ae +34b4cf5,80 +34b4cf6,5f +34b4cf7,60 +34b4cf8,c +34b4cf9,d0 +34b4cfa,5f +34b4cfb,60 +34b4cfc,9 +34b4cfd,e0 +34b4cfe,5f +34b4cff,60 +34b4d00,9 +34b4d01,f0 +34b4d02,5f +34b4d03,60 +34b4d04,9 +34b4d05,e0 +34b4d06,5f +34b4d07,60 +34b4d08,c +34b4d09,d0 +34b4d0a,5f +34b4d0b,65 +34b4d0c,ae +34b4d0d,80 +34b4d0e,5f +34b4d0f,fe +34b4d10,d8 +34b4d26,d +34b4d27,ff +34b4d28,ff +34b4d29,e0 +34b4d2a,d +34b4d2b,b0 +34b4d2e,d +34b4d2f,b0 +34b4d32,d +34b4d33,b0 +34b4d36,d +34b4d37,ff +34b4d38,ff +34b4d39,c0 +34b4d3a,d +34b4d3b,b0 +34b4d3e,d +34b4d3f,b0 +34b4d42,d +34b4d43,b0 +34b4d46,d +34b4d47,ff +34b4d48,ff +34b4d49,f0 +34b4d5e,b +34b4d5f,ff +34b4d60,ff +34b4d61,f4 +34b4d62,b +34b4d63,d0 +34b4d66,b +34b4d67,d0 +34b4d6a,b +34b4d6b,d0 +34b4d6e,b +34b4d6f,ff +34b4d70,ff +34b4d71,c0 +34b4d72,b +34b4d73,d0 +34b4d76,b +34b4d77,d0 +34b4d7a,b +34b4d7b,d0 +34b4d7e,b +34b4d7f,d0 +34b4d96,1 +34b4d97,ae +34b4d98,ed +34b4d99,60 +34b4d9a,b +34b4d9b,e7 +34b4d9c,38 +34b4d9d,a0 +34b4d9e,4e +34b4d9f,90 +34b4da2,8f +34b4da3,40 +34b4da6,9f +34b4da7,10 +34b4da8,bf +34b4da9,f2 +34b4daa,7f +34b4dab,40 +34b4dac,7 +34b4dad,f2 +34b4dae,4e +34b4daf,90 +34b4db0,7 +34b4db1,f2 +34b4db2,b +34b4db3,e7 +34b4db4,39 +34b4db5,f2 +34b4db6,1 +34b4db7,be +34b4db8,ed +34b4db9,90 +34b4dce,5f +34b4dcf,60 +34b4dd0,9 +34b4dd1,e0 +34b4dd2,5f +34b4dd3,60 +34b4dd4,9 +34b4dd5,e0 +34b4dd6,5f +34b4dd7,60 +34b4dd8,9 +34b4dd9,e0 +34b4dda,5f +34b4ddb,60 +34b4ddc,9 +34b4ddd,e0 +34b4dde,5f +34b4ddf,ff +34b4de0,ff +34b4de1,e0 +34b4de2,5f +34b4de3,60 +34b4de4,9 +34b4de5,e0 +34b4de6,5f +34b4de7,60 +34b4de8,9 +34b4de9,e0 +34b4dea,5f +34b4deb,60 +34b4dec,9 +34b4ded,e0 +34b4dee,5f +34b4def,60 +34b4df0,9 +34b4df1,e0 +34b4e06,d +34b4e07,ff +34b4e08,ff +34b4e09,b0 +34b4e0b,d +34b4e0c,b0 +34b4e0f,d +34b4e10,b0 +34b4e13,d +34b4e14,b0 +34b4e17,d +34b4e18,b0 +34b4e1b,d +34b4e1c,b0 +34b4e1f,d +34b4e20,b0 +34b4e23,d +34b4e24,b0 +34b4e26,d +34b4e27,ff +34b4e28,ff +34b4e29,b0 +34b4e3f,cf +34b4e40,ff +34b4e41,40 +34b4e44,7f +34b4e45,40 +34b4e48,7f +34b4e49,40 +34b4e4c,7f +34b4e4d,40 +34b4e50,7f +34b4e51,40 +34b4e54,7f +34b4e55,30 +34b4e56,75 +34b4e58,9e +34b4e5a,8d +34b4e5b,64 +34b4e5c,dc +34b4e5e,2b +34b4e5f,ee +34b4e60,c5 +34b4e76,5f +34b4e77,60 +34b4e78,9 +34b4e79,e7 +34b4e7a,5f +34b4e7b,60 +34b4e7c,9e +34b4e7d,70 +34b4e7e,5f +34b4e7f,69 +34b4e80,e7 +34b4e82,5f +34b4e83,be +34b4e84,80 +34b4e86,5f +34b4e87,ed +34b4e88,b0 +34b4e8a,5f +34b4e8b,87 +34b4e8c,e8 +34b4e8e,5f +34b4e8f,60 +34b4e90,ae +34b4e91,40 +34b4e92,5f +34b4e93,60 +34b4e94,1d +34b4e95,c0 +34b4e96,5f +34b4e97,60 +34b4e98,6 +34b4e99,ea +34b4eae,c +34b4eaf,c0 +34b4eb2,c +34b4eb3,c0 +34b4eb6,c +34b4eb7,c0 +34b4eba,c +34b4ebb,c0 +34b4ebe,c +34b4ebf,c0 +34b4ec2,c +34b4ec3,c0 +34b4ec6,c +34b4ec7,c0 +34b4eca,c +34b4ecb,c0 +34b4ece,c +34b4ecf,ff +34b4ed0,ff +34b4ed1,f7 +34b4ee6,af +34b4ee7,a0 +34b4ee8,c +34b4ee9,f8 +34b4eea,ae +34b4eeb,d0 +34b4eec,2e +34b4eed,e8 +34b4eee,ad +34b4eef,d5 +34b4ef0,9b +34b4ef1,e8 +34b4ef2,ad +34b4ef3,aa +34b4ef4,c8 +34b4ef5,e8 +34b4ef6,ad +34b4ef7,5d +34b4ef8,e1 +34b4ef9,e8 +34b4efa,ad +34b4efb,d +34b4efc,b0 +34b4efd,e8 +34b4efe,ad +34b4f01,e8 +34b4f02,ad +34b4f05,e8 +34b4f06,ad +34b4f09,e8 +34b4f1e,5f +34b4f1f,c0 +34b4f20,8 +34b4f21,e0 +34b4f22,5f +34b4f23,e6 +34b4f24,8 +34b4f25,e0 +34b4f26,5f +34b4f27,cb +34b4f28,8 +34b4f29,e0 +34b4f2a,5f +34b4f2b,7e +34b4f2c,48 +34b4f2d,e0 +34b4f2e,5f +34b4f2f,5c +34b4f30,a8 +34b4f31,e0 +34b4f32,5f +34b4f33,57 +34b4f34,e8 +34b4f35,e0 +34b4f36,5f +34b4f37,50 +34b4f38,dc +34b4f39,e0 +34b4f3a,5f +34b4f3b,50 +34b4f3c,9e +34b4f3d,e0 +34b4f3e,5f +34b4f3f,50 +34b4f40,2e +34b4f41,e0 +34b4f56,4 +34b4f57,ce +34b4f58,eb +34b4f59,20 +34b4f5a,c +34b4f5b,d5 +34b4f5c,6e +34b4f5d,a0 +34b4f5e,3e +34b4f5f,80 +34b4f60,a +34b4f61,e0 +34b4f62,7f +34b4f63,50 +34b4f64,8 +34b4f65,f2 +34b4f66,7f +34b4f67,40 +34b4f68,8 +34b4f69,f4 +34b4f6a,7f +34b4f6b,50 +34b4f6c,8 +34b4f6d,f2 +34b4f6e,3e +34b4f6f,80 +34b4f70,a +34b4f71,e0 +34b4f72,c +34b4f73,d5 +34b4f74,6e +34b4f75,b0 +34b4f76,4 +34b4f77,ce +34b4f78,eb +34b4f79,20 +34b4f8e,d +34b4f8f,ff +34b4f90,ed +34b4f91,60 +34b4f92,d +34b4f93,b0 +34b4f94,5c +34b4f95,e2 +34b4f96,d +34b4f97,b0 +34b4f98,6 +34b4f99,f6 +34b4f9a,d +34b4f9b,b0 +34b4f9c,6 +34b4f9d,f6 +34b4f9e,d +34b4f9f,b0 +34b4fa0,5c +34b4fa1,e2 +34b4fa2,d +34b4fa3,ff +34b4fa4,ed +34b4fa5,60 +34b4fa6,d +34b4fa7,b0 +34b4faa,d +34b4fab,b0 +34b4fae,d +34b4faf,b0 +34b4fc6,4 +34b4fc7,ce +34b4fc8,eb +34b4fc9,20 +34b4fca,c +34b4fcb,d5 +34b4fcc,6e +34b4fcd,a0 +34b4fce,3e +34b4fcf,80 +34b4fd0,a +34b4fd1,e0 +34b4fd2,7f +34b4fd3,50 +34b4fd4,8 +34b4fd5,f2 +34b4fd6,7f +34b4fd7,40 +34b4fd8,8 +34b4fd9,f4 +34b4fda,7f +34b4fdb,50 +34b4fdc,8 +34b4fdd,f1 +34b4fde,3e +34b4fdf,80 +34b4fe0,a +34b4fe1,d0 +34b4fe2,c +34b4fe3,d5 +34b4fe4,6e +34b4fe5,a0 +34b4fe6,4 +34b4fe7,ce +34b4fe8,fc +34b4fe9,20 +34b4fec,ae +34b4fed,50 +34b4ff0,c +34b4ff1,80 +34b4ffe,5f +34b4fff,fe +34b5000,eb +34b5001,20 +34b5002,5f +34b5003,71 +34b5004,7e +34b5005,b0 +34b5006,5f +34b5007,70 +34b5008,c +34b5009,d0 +34b500a,5f +34b500b,71 +34b500c,6e +34b500d,a0 +34b500e,5f +34b500f,ff +34b5010,ea +34b5012,5f +34b5013,72 +34b5014,ae +34b5015,40 +34b5016,5f +34b5017,70 +34b5018,d +34b5019,b0 +34b501a,5f +34b501b,70 +34b501c,8 +34b501d,e5 +34b501e,5f +34b501f,70 +34b5021,db +34b5036,6 +34b5037,ce +34b5038,eb +34b5039,30 +34b503a,d +34b503b,c4 +34b503c,5a +34b503d,90 +34b503e,4f +34b503f,60 +34b5042,e +34b5043,c6 +34b5046,5 +34b5047,ce +34b5048,eb +34b5049,40 +34b504c,6c +34b504d,c0 +34b5050,8 +34b5051,e0 +34b5052,c +34b5053,73 +34b5054,5c +34b5055,d0 +34b5056,8 +34b5057,de +34b5058,ec +34b5059,50 +34b506e,cf +34b506f,ff +34b5070,ff +34b5071,fb +34b5073,d +34b5074,b0 +34b5077,d +34b5078,b0 +34b507b,d +34b507c,b0 +34b507f,d +34b5080,b0 +34b5083,d +34b5084,b0 +34b5087,d +34b5088,b0 +34b508b,d +34b508c,b0 +34b508f,d +34b5090,b0 +34b50a6,4f +34b50a7,70 +34b50a8,9 +34b50a9,e0 +34b50aa,4f +34b50ab,70 +34b50ac,9 +34b50ad,e0 +34b50ae,4f +34b50af,70 +34b50b0,9 +34b50b1,e0 +34b50b2,4f +34b50b3,70 +34b50b4,9 +34b50b5,e0 +34b50b6,4f +34b50b7,70 +34b50b8,9 +34b50b9,e0 +34b50ba,3f +34b50bb,70 +34b50bc,9 +34b50bd,e0 +34b50be,2e +34b50bf,70 +34b50c0,a +34b50c1,d0 +34b50c2,d +34b50c3,c4 +34b50c4,5d +34b50c5,c0 +34b50c6,5 +34b50c7,ce +34b50c8,ec +34b50c9,40 +34b50de,ad +34b50e0,3 +34b50e1,e8 +34b50e2,6f +34b50e3,50 +34b50e4,8 +34b50e5,e3 +34b50e6,e +34b50e7,90 +34b50e8,b +34b50e9,c0 +34b50ea,b +34b50eb,c0 +34b50ec,d +34b50ed,90 +34b50ee,8 +34b50ef,e1 +34b50f0,5e +34b50f1,40 +34b50f2,2 +34b50f3,e7 +34b50f4,ad +34b50f7,cb +34b50f8,ca +34b50fb,9d +34b50fc,e6 +34b50ff,3e +34b5100,d0 +34b5116,e8 +34b5119,ad +34b511a,da +34b511d,cb +34b511e,cb +34b5121,da +34b5122,ac +34b5123,e +34b5124,c0 +34b5125,e8 +34b5126,8d +34b5127,6d +34b5128,e1 +34b5129,e5 +34b512a,6e +34b512b,9b +34b512c,d8 +34b512d,e0 +34b512e,1e +34b512f,c8 +34b5130,ac +34b5131,d0 +34b5132,d +34b5133,e3 +34b5134,7e +34b5135,c0 +34b5136,c +34b5137,d0 +34b5138,e +34b5139,a0 +34b514e,6e +34b514f,70 +34b5150,7 +34b5151,e7 +34b5152,a +34b5153,d2 +34b5154,1d +34b5155,b0 +34b5156,2 +34b5157,da +34b5158,ad +34b5159,20 +34b515b,7e +34b515c,e7 +34b515f,3e +34b5160,e2 +34b5163,bd +34b5164,da +34b5166,7 +34b5167,e6 +34b5168,7e +34b5169,60 +34b516a,3e +34b516b,a0 +34b516c,b +34b516d,d0 +34b516e,bd +34b516f,20 +34b5170,4 +34b5171,e9 +34b5186,ae +34b5187,20 +34b5188,5 +34b5189,e8 +34b518a,2d +34b518b,a0 +34b518c,c +34b518d,c0 +34b518e,7 +34b518f,e5 +34b5190,7e +34b5191,50 +34b5193,cc +34b5194,da +34b5197,4e +34b5198,d2 +34b519b,d +34b519c,b0 +34b519f,d +34b51a0,b0 +34b51a3,d +34b51a4,b0 +34b51a7,d +34b51a8,b0 +34b51be,e +34b51bf,ff +34b51c0,ff +34b51c1,f8 +34b51c4,b +34b51c5,d3 +34b51c8,7e +34b51c9,70 +34b51cb,3 +34b51cc,ea +34b51cf,b +34b51d0,d1 +34b51d3,8e +34b51d4,50 +34b51d6,4 +34b51d7,e9 +34b51da,c +34b51db,c0 +34b51de,1f +34b51df,ff +34b51e0,ff +34b51e1,fa +34b51ef,4f +34b51f0,fc +34b51f3,4f +34b51f4,50 +34b51f7,4f +34b51f8,50 +34b51fb,4f +34b51fc,50 +34b51ff,4f +34b5200,50 +34b5203,4f +34b5204,50 +34b5207,4f +34b5208,50 +34b520b,4f +34b520c,50 +34b520f,4f +34b5210,50 +34b5213,4f +34b5214,50 +34b5217,4f +34b5218,50 +34b521b,4f +34b521c,fc +34b522e,6e +34b522f,50 +34b5232,c +34b5233,b0 +34b5236,7 +34b5237,e3 +34b523b,da +34b523f,9e +34b5240,20 +34b5243,1e +34b5244,90 +34b5247,a +34b5248,d0 +34b524b,3 +34b524c,e8 +34b5250,bc +34b5254,4e +34b5255,60 +34b5258,b +34b5259,c0 +34b525f,df +34b5260,e0 +34b5263,8 +34b5264,e0 +34b5267,8 +34b5268,e0 +34b526b,8 +34b526c,e0 +34b526f,8 +34b5270,e0 +34b5273,8 +34b5274,e0 +34b5277,8 +34b5278,e0 +34b527b,8 +34b527c,e0 +34b527f,8 +34b5280,e0 +34b5283,8 +34b5284,e0 +34b5287,8 +34b5288,e0 +34b528b,df +34b528c,e0 +34b529f,5e +34b52a0,d2 +34b52a3,dc +34b52a4,db +34b52a6,a +34b52a7,d2 +34b52a8,5e +34b52a9,80 +34b52aa,7e +34b52ab,50 +34b52ac,7 +34b52ad,e5 +34b5302,ff +34b5303,ff +34b5304,ff +34b5305,fd +34b530a,2 +34b530b,ca +34b530f,2c +34b5310,90 +34b534e,5 +34b534f,ce +34b5350,eb +34b5351,10 +34b5352,b +34b5353,93 +34b5354,6d +34b5355,a0 +34b5358,b +34b5359,c0 +34b535a,8 +34b535b,de +34b535c,ff +34b535d,c0 +34b535e,3e +34b535f,93 +34b5360,b +34b5361,d0 +34b5362,4f +34b5363,82 +34b5364,7e +34b5365,d0 +34b5366,a +34b5367,ee +34b5368,db +34b5369,d0 +34b5376,d +34b5377,90 +34b537a,d +34b537b,90 +34b537e,d +34b537f,90 +34b5382,d +34b5383,90 +34b5386,d +34b5387,bd +34b5388,ec +34b5389,40 +34b538a,d +34b538b,e6 +34b538c,5d +34b538d,c0 +34b538e,d +34b538f,b0 +34b5390,8 +34b5391,e0 +34b5392,d +34b5393,a0 +34b5394,7 +34b5395,f2 +34b5396,d +34b5397,b0 +34b5398,8 +34b5399,e0 +34b539a,d +34b539b,e6 +34b539c,4d +34b539d,b0 +34b539e,d +34b539f,bd +34b53a0,ec +34b53a1,40 +34b53bf,8d +34b53c0,ed +34b53c1,70 +34b53c2,7 +34b53c3,e9 +34b53c4,36 +34b53c5,a0 +34b53c6,c +34b53c7,c0 +34b53ca,d +34b53cb,b0 +34b53ce,c +34b53cf,c0 +34b53d2,7 +34b53d3,e9 +34b53d4,36 +34b53d5,a0 +34b53d7,8d +34b53d8,ed +34b53d9,70 +34b53e8,b +34b53e9,c0 +34b53ec,b +34b53ed,c0 +34b53f0,b +34b53f1,c0 +34b53f4,b +34b53f5,c0 +34b53f6,5 +34b53f7,de +34b53f8,dc +34b53f9,c0 +34b53fa,d +34b53fb,c4 +34b53fc,8e +34b53fd,c0 +34b53fe,5f +34b53ff,60 +34b5400,c +34b5401,c0 +34b5402,7f +34b5403,30 +34b5404,b +34b5405,c0 +34b5406,5f +34b5407,60 +34b5408,c +34b5409,c0 +34b540a,d +34b540b,c4 +34b540c,8e +34b540d,c0 +34b540e,5 +34b540f,de +34b5410,dc +34b5411,c0 +34b542e,3 +34b542f,be +34b5430,ec +34b5431,30 +34b5432,c +34b5433,d5 +34b5434,4c +34b5435,c0 +34b5436,4f +34b5437,60 +34b5438,7 +34b5439,e0 +34b543a,6f +34b543b,ff +34b543c,ff +34b543d,f3 +34b543e,4f +34b543f,50 +34b5442,c +34b5443,c5 +34b5444,38 +34b5445,c0 +34b5446,3 +34b5447,be +34b5448,ec +34b5449,60 +34b5457,5 +34b5458,de +34b5459,d0 +34b545b,c +34b545c,b2 +34b545f,d +34b5460,90 +34b5463,e +34b5464,80 +34b5466,d +34b5467,ff +34b5468,ff +34b5469,d0 +34b546b,e +34b546c,80 +34b546f,e +34b5470,80 +34b5473,e +34b5474,80 +34b5477,e +34b5478,80 +34b547b,e +34b547c,80 +34b547f,e +34b5480,80 +34b549e,5 +34b549f,de +34b54a0,dc +34b54a1,c0 +34b54a2,d +34b54a3,c4 +34b54a4,8e +34b54a5,c0 +34b54a6,5f +34b54a7,60 +34b54a8,c +34b54a9,c0 +34b54aa,7f +34b54ab,30 +34b54ac,b +34b54ad,c0 +34b54ae,5f +34b54af,60 +34b54b0,c +34b54b1,c0 +34b54b2,d +34b54b3,c4 +34b54b4,8e +34b54b5,c0 +34b54b6,5 +34b54b7,de +34b54b8,dc +34b54b9,b0 +34b54bc,c +34b54bd,a0 +34b54be,9 +34b54bf,94 +34b54c0,7e +34b54c1,60 +34b54c2,4 +34b54c3,ce +34b54c4,e9 +34b54c6,d +34b54c7,a0 +34b54ca,d +34b54cb,a0 +34b54ce,d +34b54cf,a0 +34b54d2,d +34b54d3,a0 +34b54d6,d +34b54d7,bd +34b54d8,ed +34b54d9,40 +34b54da,d +34b54db,e6 +34b54dc,5d +34b54dd,a0 +34b54de,d +34b54df,b0 +34b54e0,b +34b54e1,c0 +34b54e2,d +34b54e3,a0 +34b54e4,b +34b54e5,c0 +34b54e6,d +34b54e7,a0 +34b54e8,b +34b54e9,c0 +34b54ea,d +34b54eb,a0 +34b54ec,b +34b54ed,c0 +34b54ee,d +34b54ef,a0 +34b54f0,b +34b54f1,c0 +34b54ff,b +34b5500,c0 +34b550e,9 +34b550f,ff +34b5510,c0 +34b5513,b +34b5514,c0 +34b5517,b +34b5518,c0 +34b551b,b +34b551c,c0 +34b551f,b +34b5520,c0 +34b5523,b +34b5524,c0 +34b5526,e +34b5527,ff +34b5528,ff +34b5529,e0 +34b5537,7 +34b5538,e0 +34b5546,7 +34b5547,ff +34b5548,e0 +34b554b,7 +34b554c,e0 +34b554f,7 +34b5550,e0 +34b5553,7 +34b5554,e0 +34b5557,7 +34b5558,e0 +34b555b,7 +34b555c,e0 +34b555f,7 +34b5560,e0 +34b5563,7 +34b5564,e0 +34b5567,1b +34b5568,d0 +34b556a,d +34b556b,fe +34b556c,70 +34b556e,b +34b556f,c0 +34b5572,b +34b5573,c0 +34b5576,b +34b5577,c0 +34b557a,b +34b557b,c0 +34b557e,b +34b557f,c0 +34b5580,3d +34b5581,c2 +34b5582,b +34b5583,c3 +34b5584,db +34b5586,b +34b5587,dd +34b5588,c0 +34b558a,b +34b558b,fc +34b558c,e5 +34b558e,b +34b558f,d0 +34b5590,cd +34b5591,10 +34b5592,b +34b5593,c0 +34b5594,3d +34b5595,b0 +34b5596,b +34b5597,c0 +34b5598,7 +34b5599,e8 +34b55a6,e +34b55a7,ff +34b55a8,40 +34b55ab,5f +34b55ac,40 +34b55af,5f +34b55b0,40 +34b55b3,5f +34b55b4,40 +34b55b7,5f +34b55b8,40 +34b55bb,5f +34b55bc,40 +34b55bf,5f +34b55c0,40 +34b55c3,5f +34b55c4,40 +34b55c7,4f +34b55c8,50 +34b55cb,e +34b55cc,a0 +34b55cf,8 +34b55d0,ef +34b55d1,b0 +34b55ee,8d +34b55ef,dd +34b55f0,ae +34b55f1,c0 +34b55f2,8e +34b55f3,4d +34b55f4,c5 +34b55f5,e4 +34b55f6,8d +34b55f7,c +34b55f8,b0 +34b55f9,e6 +34b55fa,8d +34b55fb,b +34b55fc,a0 +34b55fd,e7 +34b55fe,8d +34b55ff,b +34b5600,a0 +34b5601,e7 +34b5602,8d +34b5603,b +34b5604,a0 +34b5605,e7 +34b5606,8d +34b5607,b +34b5608,a0 +34b5609,e7 +34b5626,d +34b5627,bd +34b5628,ed +34b5629,40 +34b562a,d +34b562b,e6 +34b562c,5d +34b562d,a0 +34b562e,d +34b562f,b0 +34b5630,b +34b5631,c0 +34b5632,d +34b5633,a0 +34b5634,b +34b5635,c0 +34b5636,d +34b5637,a0 +34b5638,b +34b5639,c0 +34b563a,d +34b563b,a0 +34b563c,b +34b563d,c0 +34b563e,d +34b563f,a0 +34b5640,b +34b5641,c0 +34b565e,4 +34b565f,ce +34b5660,eb +34b5661,20 +34b5662,c +34b5663,d5 +34b5664,6d +34b5665,a0 +34b5666,1e +34b5667,70 +34b5668,a +34b5669,d0 +34b566a,5f +34b566b,60 +34b566c,8 +34b566d,e0 +34b566e,1e +34b566f,70 +34b5670,a +34b5671,d0 +34b5672,c +34b5673,d4 +34b5674,6d +34b5675,b0 +34b5676,4 +34b5677,ce +34b5678,eb +34b5679,20 +34b5696,d +34b5697,bd +34b5698,ec +34b5699,30 +34b569a,d +34b569b,e6 +34b569c,5d +34b569d,b0 +34b569e,d +34b569f,b0 +34b56a0,9 +34b56a1,e0 +34b56a2,d +34b56a3,a0 +34b56a4,7 +34b56a5,e0 +34b56a6,d +34b56a7,b0 +34b56a8,8 +34b56a9,e0 +34b56aa,d +34b56ab,e6 +34b56ac,5d +34b56ad,b0 +34b56ae,d +34b56af,be +34b56b0,ec +34b56b1,40 +34b56b2,d +34b56b3,90 +34b56b6,d +34b56b7,90 +34b56ba,d +34b56bb,90 +34b56ce,4 +34b56cf,ce +34b56d0,dc +34b56d1,c0 +34b56d2,c +34b56d3,c4 +34b56d4,7e +34b56d5,c0 +34b56d6,1e +34b56d7,70 +34b56d8,c +34b56d9,c0 +34b56da,5f +34b56db,60 +34b56dc,b +34b56dd,c0 +34b56de,2e +34b56df,70 +34b56e0,c +34b56e1,c0 +34b56e2,c +34b56e3,c4 +34b56e4,7e +34b56e5,c0 +34b56e6,5 +34b56e7,ce +34b56e8,db +34b56e9,c0 +34b56ec,a +34b56ed,c0 +34b56f0,a +34b56f1,c0 +34b56f4,a +34b56f5,c0 +34b5707,cc +34b5708,de +34b5709,f9 +34b570b,ce +34b570c,83 +34b570f,cb +34b5713,ca +34b5717,ca +34b571b,ca +34b571f,ca +34b573e,4 +34b573f,ce +34b5740,ea +34b5741,10 +34b5742,b +34b5743,d4 +34b5744,5b +34b5745,60 +34b5746,b +34b5747,d4 +34b574a,3 +34b574b,bd +34b574c,db +34b574d,20 +34b5750,4d +34b5751,a0 +34b5752,b +34b5753,94 +34b5754,5e +34b5755,a0 +34b5756,5 +34b5757,ce +34b5758,eb +34b5759,20 +34b576f,8e +34b5773,8e +34b5776,6f +34b5777,ff +34b5778,ff +34b5779,b0 +34b577b,8e +34b577f,8e +34b5783,8e +34b5787,8e +34b578b,6e +34b578c,70 +34b578f,b +34b5790,ef +34b5791,b0 +34b57ae,d +34b57af,a0 +34b57b0,b +34b57b1,c0 +34b57b2,d +34b57b3,a0 +34b57b4,b +34b57b5,c0 +34b57b6,d +34b57b7,a0 +34b57b8,b +34b57b9,c0 +34b57ba,d +34b57bb,a0 +34b57bc,b +34b57bd,c0 +34b57be,d +34b57bf,a0 +34b57c0,b +34b57c1,c0 +34b57c2,b +34b57c3,d4 +34b57c4,7e +34b57c5,c0 +34b57c6,5 +34b57c7,de +34b57c8,db +34b57c9,c0 +34b57e6,6e +34b57e7,30 +34b57e8,7 +34b57e9,e3 +34b57ea,d +34b57eb,90 +34b57ec,b +34b57ed,c0 +34b57ee,a +34b57ef,d0 +34b57f0,1e +34b57f1,80 +34b57f2,5 +34b57f3,e4 +34b57f4,8e +34b57f5,20 +34b57f7,da +34b57f8,cb +34b57fb,9d +34b57fc,e7 +34b57ff,3e +34b5800,e0 +34b581e,e8 +34b5821,ac +34b5822,ca +34b5825,ca +34b5826,ac +34b5827,d +34b5828,b0 +34b5829,e7 +34b582a,6e +34b582b,3d +34b582c,d5 +34b582d,e2 +34b582e,e +34b582f,ab +34b5830,ca +34b5831,d0 +34b5832,c +34b5833,e7 +34b5834,9e +34b5835,b0 +34b5836,a +34b5837,e1 +34b5838,5f +34b5839,80 +34b5856,3d +34b5857,a0 +34b5858,b +34b5859,c0 +34b585a,6 +34b585b,e6 +34b585c,9e +34b585d,40 +34b585f,9e +34b5860,e7 +34b5863,2e +34b5864,d0 +34b5867,cc +34b5868,da +34b586a,9 +34b586b,e4 +34b586c,6e +34b586d,70 +34b586e,6e +34b586f,70 +34b5870,9 +34b5871,e4 +34b588e,6e +34b588f,50 +34b5890,5 +34b5891,e5 +34b5892,d +34b5893,a0 +34b5894,b +34b5895,d0 +34b5896,9 +34b5897,e0 +34b5898,e +34b5899,90 +34b589a,3 +34b589b,e7 +34b589c,8e +34b589d,30 +34b589f,cc +34b58a0,cc +34b58a3,7e +34b58a4,e7 +34b58a7,d +34b58a8,e0 +34b58ab,d +34b58ac,a0 +34b58af,8e +34b58b0,50 +34b58b2,d +34b58b3,ea +34b58c6,b +34b58c7,ff +34b58c8,ff +34b58c9,c0 +34b58cc,5e +34b58cd,70 +34b58cf,3 +34b58d0,d9 +34b58d3,c +34b58d4,b0 +34b58d7,bd +34b58d8,20 +34b58da,9 +34b58db,e4 +34b58de,d +34b58df,ff +34b58e0,ff +34b58e1,c0 +34b58ef,6 +34b58f0,de +34b58f1,a0 +34b58f3,b +34b58f4,d3 +34b58f7,c +34b58f8,b0 +34b58fb,c +34b58fc,b0 +34b58ff,5e +34b5900,a0 +34b5902,b +34b5903,fd +34b5904,20 +34b5907,7e +34b5908,90 +34b590b,d +34b590c,b0 +34b590f,c +34b5910,b0 +34b5913,c +34b5914,b0 +34b5917,b +34b5918,d4 +34b591b,5 +34b591c,de +34b591d,a0 +34b5927,c +34b5928,a0 +34b592b,c +34b592c,a0 +34b592f,c +34b5930,a0 +34b5933,c +34b5934,a0 +34b5937,c +34b5938,a0 +34b593b,c +34b593c,a0 +34b593f,c +34b5940,a0 +34b5943,c +34b5944,a0 +34b5947,c +34b5948,a0 +34b594b,c +34b594c,a0 +34b594f,c +34b5950,a0 +34b5953,c +34b5954,a0 +34b5957,c +34b5958,a0 +34b595e,b +34b595f,ed +34b5960,30 +34b5963,4e +34b5964,90 +34b5967,d +34b5968,a0 +34b596b,c +34b596c,a0 +34b596f,b +34b5970,c4 +34b5973,5 +34b5974,ef +34b5975,a0 +34b5977,b +34b5978,d5 +34b597b,c +34b597c,b0 +34b597f,d +34b5980,a0 +34b5983,d +34b5984,a0 +34b5987,5e +34b5988,80 +34b598a,b +34b598b,ec +34b598c,20 +34b59ae,5d +34b59af,ed +34b59b0,83 +34b59b1,a7 +34b59b2,98 +34b59b3,38 +34b59b4,de +34b59b5,c3 diff --git a/data/symbols.json b/data/symbols.json index 5489f69fe..b14b528f3 100644 --- a/data/symbols.json +++ b/data/symbols.json @@ -1,32 +1,32 @@ -{ - "ADULT_INIT_ITEMS": "0348357C", - "ADULT_VALID_ITEMS": "03483588", - "EXTENDED_ITEM_DATA": "03482008", - "FAIRY_ITEMS": "03481C03", - "FAIRY_OCARINA_ITEM": "03481C02", - "FONT_TEXTURE": "034B4506", - "INITIAL_SAVE_DATA": "03481800", - "ITEM_OVERRIDES": "03481000", - "ITEM_TABLE": "03482050", - "LIGHT_ARROW_ITEM": "03481C01", - "PENDING_SPECIAL_ITEM": "03482018", - "PENDING_SPECIAL_ITEM_END": "0348201B", - "PLAYER_ID": "03481C00", - "PLAYER_OVERRIDE_DATA": "03482000", - "TIME_TRAVEL_SAVED_EQUIPS": "0348201C", - "cfg_dungeon_info_enable": "034B44C8", - "cfg_dungeon_info_mq_enable": "034B44DC", - "cfg_dungeon_info_mq_need_map": "034B44D8", - "cfg_dungeon_info_reward_need_compass": "034B44D4", - "cfg_dungeon_is_mq": "034B44F8", - "cfg_dungeon_rewards": "034B4408", - "dungeon_count": "034B44CC", - "dungeons": "034B442C", - "font_sprite": "034B43C8", - "heap_next": "034B44D0", - "medal_colors": "034B4418", - "medals_sprite": "034B43E8", - "quest_items_sprite": "034B43D8", - "setup_db": "034B44E8", - "stones_sprite": "034B43F8" +{ + "ADULT_INIT_ITEMS": "03483610", + "ADULT_VALID_ITEMS": "0348361C", + "EXTENDED_ITEM_DATA": "03482008", + "FAIRY_ITEMS": "03481C03", + "FAIRY_OCARINA_ITEM": "03481C02", + "FONT_TEXTURE": "034B4506", + "INITIAL_SAVE_DATA": "03481800", + "ITEM_OVERRIDES": "03481000", + "ITEM_TABLE": "03482050", + "LIGHT_ARROW_ITEM": "03481C01", + "PENDING_SPECIAL_ITEM": "03482018", + "PENDING_SPECIAL_ITEM_END": "0348201B", + "PLAYER_ID": "03481C00", + "PLAYER_OVERRIDE_DATA": "03482000", + "TIME_TRAVEL_SAVED_EQUIPS": "0348201C", + "cfg_dungeon_info_enable": "034B44C8", + "cfg_dungeon_info_mq_enable": "034B44DC", + "cfg_dungeon_info_mq_need_map": "034B44D8", + "cfg_dungeon_info_reward_need_compass": "034B44D4", + "cfg_dungeon_is_mq": "034B44F8", + "cfg_dungeon_rewards": "034B4408", + "dungeon_count": "034B44CC", + "dungeons": "034B442C", + "font_sprite": "034B43C8", + "heap_next": "034B44D0", + "medal_colors": "034B4418", + "medals_sprite": "034B43E8", + "quest_items_sprite": "034B43D8", + "setup_db": "034B44E8", + "stones_sprite": "034B43F8" } \ No newline at end of file diff --git a/version.py b/version.py index afc69de2e..4dd540cfa 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.18.3 f.LUM' +__version__ = '2.18.4 f.LUM' From 152061ffc2d41a3be1aec84a0609317f27b8d248 Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 17 Sep 2018 01:45:10 -0400 Subject: [PATCH 531/755] fix typo in rules --- Rules.py | 2 +- version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Rules.py b/Rules.py index 577555b4c..02ffa35eb 100644 --- a/Rules.py +++ b/Rules.py @@ -478,7 +478,7 @@ def dung_rules_wt0(world): set_rule(world.get_location('GS Water Temple South Basement'), lambda state: state.has_explosives() and state.can_play('Zeldas Lullaby')) set_rule(world.get_location('GS Water Temple Serpent River'), lambda state: state.can_play('Song of Time') and state.has('Small Key (Water Temple)', 6)) set_rule(world.get_location('GS Water Temple Falling Platform Room'), lambda state: state.has('Progressive Hookshot', 2)) - set_rule(world.get_location('GS Water Temple Central Room'), lambda state: state.has('Progressive Hookshot', 2) or (state.has('Farores Wind') and state.has('Magic'))) + set_rule(world.get_location('GS Water Temple Central Room'), lambda state: state.has('Progressive Hookshot', 2) or (state.has('Farores Wind') and state.has('Magic Meter'))) #5 keys would be better but it wouldn't be compatible with the key for key scenarios, 6 will be identical pre-keysanity. set_rule(world.get_location('GS Water Temple Near Boss Key Chest'), lambda state: state.has('Progressive Hookshot', 2) and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and (state.can_play('Zeldas Lullaby') or world.keysanity) and state.has('Small Key (Water Temple)', 6)) diff --git a/version.py b/version.py index 4dd540cfa..deea138d7 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.18.4 f.LUM' +__version__ = '2.18.5 f.LUM' From 2eab9fd9e9072bb201ea24ccc8c95e08966f4cb9 Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 17 Sep 2018 02:51:54 -0400 Subject: [PATCH 532/755] coop dungeon only items will always appear in their own world keysanity options will still allow showing up in either world --- BaseClasses.py | 2 +- version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 24598d276..dfb066342 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -640,7 +640,7 @@ def can_fill(self, item): return self.dungeon.major_items == 0 if is_dungeon_restricted: - return self.dungeon and self.dungeon.is_dungeon_item(item) + return self.dungeon and self.dungeon.is_dungeon_item(item) and item.world.id == self.world.id return True def __str__(self): diff --git a/version.py b/version.py index deea138d7..1dc986f7f 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.18.5 f.LUM' +__version__ = '2.18.6 f.LUM' From 14891d4dcd3755e364d4efd58edd0d641349f906 Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 17 Sep 2018 03:20:01 -0400 Subject: [PATCH 533/755] removed debug line --- ASM/build/asm_symbols.txt | 180 +-- ASM/src/cutscenes.asm | 2 - data/rom_patch.txt | 2438 ++++++++++++++++++------------------- data/symbols.json | 4 +- version.py | 2 +- 5 files changed, 1281 insertions(+), 1345 deletions(-) diff --git a/ASM/build/asm_symbols.txt b/ASM/build/asm_symbols.txt index b585a798e..b06f09465 100644 --- a/ASM/build/asm_symbols.txt +++ b/ASM/build/asm_symbols.txt @@ -897,96 +897,96 @@ 80403048 set_saria_song_flag 80403068 set_dungeon_knowledge 80403094 @@set_flag -804030FC Shop_Check_Sold_Out -80403148 @@return -80403150 Shop_Set_Sold_Out -80403188 @@return -80403190 Shop_Keeper_Init_ID -804031AC @@return -804031BC Deku_Check_Sold_Out -804031E0 @@continue -80403210 Deku_Set_Sold_Out -80403234 @@continue -80403268 every_frame -804032BC @@loop -80403314 @@no_pending_item -8040333C item_menu_description_id_periodic -80403350 @@item_menu_description_id_return_00000000 -80403358 item_menu_description_id_immediate_1 -8040336C @@item_menu_description_id_return_00000001 -80403374 item_menu_description_id_immediate_2 -80403388 @@item_menu_description_id_return_00000002 -80403390 item_menu_description_id_immediate_3 -804033A4 @@item_menu_description_id_return_00000003 -804033AC before_time_travel -804033DC after_time_travel -80403418 @@going_back -80403420 @@done -80403450 update_c_button -8040347C @@return -80403484 after_going_forward -804034C0 @@no_init -804034D0 after_going_back -80403500 @@not_swordless -80403508 initialize_adult -80403530 @@no_mirror_shield -80403570 init_adult_button -8040359C @@empty -804035A4 @@loop -804035FC @@set_empty -80403608 @@return -80403610 .byt:0001 -80403610 ADULT_INIT_ITEMS -80403611 .byt:0001 -80403612 .byt:0001 -80403613 .byt:0001 -80403614 .byt:0001 -80403615 .byt:0001 -80403616 .byt:0001 -80403617 .byt:0001 -80403618 .byt:0001 -8040361C .byt:0001 -8040361C ADULT_VALID_ITEMS -8040361D .byt:0001 -8040361E .byt:0001 -8040361F .byt:0001 -80403620 .byt:0001 -80403621 .byt:0001 -80403622 .byt:0001 -80403623 .byt:0001 -80403624 .byt:0001 -80403625 .byt:0001 -80403626 .byt:0001 -80403627 .byt:0001 -80403628 .byt:0001 -80403629 .byt:0001 -8040362A .byt:0001 -8040362B .byt:0001 -8040362C .byt:0001 -8040362D .byt:0001 -8040362E .byt:0001 -8040362F .byt:0001 -80403630 .byt:0001 -80403631 .byt:0001 -80403632 .byt:0001 -80403633 .byt:0001 -80403634 suns_song_fix_event -80403668 @@child -80403678 @@return -80403680 suns_song_fix -80403694 @@check_suns_status -804036B0 @@disable_suns -804036B8 @@return -804036C0 warp_song_fix -804036EC @@child -804036FC @@return -80403704 Check_Has_Epona_Song -80403750 @@return -80403758 write_initial_save -80403764 @@save_data_loop -80403794 @@overwrite_type -8040379C @@return -804037A4 .byt:08AC +804030AC Shop_Check_Sold_Out +804030F8 @@return +80403100 Shop_Set_Sold_Out +80403138 @@return +80403140 Shop_Keeper_Init_ID +8040315C @@return +8040316C Deku_Check_Sold_Out +80403190 @@continue +804031C0 Deku_Set_Sold_Out +804031E4 @@continue +80403218 every_frame +8040326C @@loop +804032C4 @@no_pending_item +804032EC item_menu_description_id_periodic +80403300 @@item_menu_description_id_return_00000000 +80403308 item_menu_description_id_immediate_1 +8040331C @@item_menu_description_id_return_00000001 +80403324 item_menu_description_id_immediate_2 +80403338 @@item_menu_description_id_return_00000002 +80403340 item_menu_description_id_immediate_3 +80403354 @@item_menu_description_id_return_00000003 +8040335C before_time_travel +8040338C after_time_travel +804033C8 @@going_back +804033D0 @@done +80403400 update_c_button +8040342C @@return +80403434 after_going_forward +80403470 @@no_init +80403480 after_going_back +804034B0 @@not_swordless +804034B8 initialize_adult +804034E0 @@no_mirror_shield +80403520 init_adult_button +8040354C @@empty +80403554 @@loop +804035AC @@set_empty +804035B8 @@return +804035C0 .byt:0001 +804035C0 ADULT_INIT_ITEMS +804035C1 .byt:0001 +804035C2 .byt:0001 +804035C3 .byt:0001 +804035C4 .byt:0001 +804035C5 .byt:0001 +804035C6 .byt:0001 +804035C7 .byt:0001 +804035C8 .byt:0001 +804035CC .byt:0001 +804035CC ADULT_VALID_ITEMS +804035CD .byt:0001 +804035CE .byt:0001 +804035CF .byt:0001 +804035D0 .byt:0001 +804035D1 .byt:0001 +804035D2 .byt:0001 +804035D3 .byt:0001 +804035D4 .byt:0001 +804035D5 .byt:0001 +804035D6 .byt:0001 +804035D7 .byt:0001 +804035D8 .byt:0001 +804035D9 .byt:0001 +804035DA .byt:0001 +804035DB .byt:0001 +804035DC .byt:0001 +804035DD .byt:0001 +804035DE .byt:0001 +804035DF .byt:0001 +804035E0 .byt:0001 +804035E1 .byt:0001 +804035E2 .byt:0001 +804035E3 .byt:0001 +804035E4 suns_song_fix_event +80403618 @@child +80403628 @@return +80403630 suns_song_fix +80403644 @@check_suns_status +80403660 @@disable_suns +80403668 @@return +80403670 warp_song_fix +8040369C @@child +804036AC @@return +804036B4 Check_Has_Epona_Song +80403700 @@return +80403708 write_initial_save +80403714 @@save_data_loop +80403744 @@overwrite_type +8040374C @@return +80403754 .byt:08FC 80405000 disp_buf_init,00000018 80405018 sprite_bytes_per_tile,00000028 80405040 sprite_bytes,00000030 diff --git a/ASM/src/cutscenes.asm b/ASM/src/cutscenes.asm index eac127e26..33f76a36e 100644 --- a/ASM/src/cutscenes.asm +++ b/ASM/src/cutscenes.asm @@ -180,8 +180,6 @@ set_dungeon_knowledge: or t5, t5, t6 sh t5, 0x0F2E(t4) ; set the flag - debug_print t5 - lw ra, 0x04(sp) addiu sp, sp, 0x10 diff --git a/data/rom_patch.txt b/data/rom_patch.txt index 810b5c9b3..4a3bb4144 100644 --- a/data/rom_patch.txt +++ b/data/rom_patch.txt @@ -407,7 +407,7 @@ a98c33,cc a9e838,8 a9e839,10 a9e83a,d -a9e83b,c1 +a9e83b,ad ac9abc,c ac9abd,10 ac9abe,b @@ -433,10 +433,11 @@ acce9b,0 ae59e0,8 ae59e1,10 ae59e2,c -ae59e3,f7 +ae59e3,e3 ae5df0,c ae5df1,10 ae5df2,d +ae5df3,8c ae5df8,c ae5df9,10 ae5dfa,b @@ -462,7 +463,7 @@ b0640f,2 b06c2c,c b06c2d,10 b06c2e,d -b06c2f,d6 +b06c2f,c2 b06c31,28 b06c33,20 b17129,10 @@ -502,11 +503,11 @@ b17bd3,0 b54b38,c b54b39,10 b54b3a,d -b54b3b,b0 +b54b3b,9c b54e5c,c b54e5d,10 b54e5e,d -b54e5f,8d +b54e5f,79 baed6c,0 baed6d,0 baed6f,0 @@ -516,14 +517,14 @@ bb77b7,0 bb7890,c bb7891,10 bb7892,c -bb7893,d6 +bb7893,c2 bb7894,0 bb7895,0 bb7897,0 bb7950,c bb7951,10 bb7952,c -bb7953,dd +bb7953,c9 bb7954,0 bb7955,0 bb7957,0 @@ -536,14 +537,14 @@ bb7bff,0 bb7c3c,c bb7c3d,10 bb7c3e,c -bb7c3f,e4 +bb7c3f,d0 bb7c40,0 bb7c41,0 bb7c43,0 bb7c58,c bb7c59,10 bb7c5a,c -bb7c5b,cf +bb7c5b,bb bb7c5c,0 bb7c5d,0 bb7c5f,0 @@ -588,7 +589,7 @@ bda273,0 be5990,c be5991,10 be5992,c -be5993,9a +be5993,86 be5994,0 be5995,0 be5996,0 @@ -608,20 +609,20 @@ be9bdf,83 c004ec,8 c004ed,10 c004ee,c -c004ef,3f +c004ef,2b c0067f,64 c018a0,c c018a1,10 c018a2,c -c018a3,54 +c018a3,40 c6c7a8,c c6c7a9,10 c6c7aa,c -c6c7ab,64 +c6c7ab,50 c6c920,c c6c921,10 c6c922,c -c6c923,64 +c6c923,50 c892dc,34 c892dd,e c892de,0 @@ -648,7 +649,7 @@ c898cb,2a cb6860,c cb6861,10 cb6862,c -cb6863,eb +cb6863,d7 d12f78,34 d12f79,f d12f7b,0 @@ -884,7 +885,7 @@ df264f,76 df7cb0,c df7cb1,10 df7cb2,c -df7cb3,84 +df7cb3,70 e09f68,80 e09f6a,e e09f6b,de @@ -922,7 +923,7 @@ e9e20d,a9 ebb85c,c ebb85d,10 ebb85e,c -ebb85f,6f +ebb85f,5b ebb865,40 ebb867,12 ebb86c,10 @@ -4231,1265 +4232,1202 @@ ec9ce7,7a 3483099,8d 348309a,f 348309b,2e -348309c,23 -348309d,bd -348309e,ff -348309f,e0 -34830a0,af -34830a1,a8 -34830a3,4 -34830a4,af -34830a5,a9 +348309c,8f +348309d,bf +348309f,4 +34830a0,27 +34830a1,bd +34830a3,10 +34830a4,3 +34830a5,e0 34830a7,8 -34830a8,af -34830a9,aa -34830ab,c -34830ac,af -34830ad,ab -34830af,10 -34830b0,af -34830b1,a1 -34830b3,14 -34830b4,35 -34830b5,ab -34830b8,3c -34830b9,8 -34830ba,80 -34830bb,40 -34830bc,25 -34830bd,8 -34830bf,50 -34830c0,8d -34830c1,9 +34830ac,84 +34830ad,8e +34830af,1c +34830b0,21 +34830b1,cd +34830b2,ff +34830b3,ce +34830b4,5 +34830b5,a0 +34830b7,10 +34830b8,34 +34830b9,2 +34830bc,31 +34830bd,a9 +34830bf,7 +34830c0,34 +34830c1,a +34830c3,1 34830c4,1 -34830c5,9 +34830c5,2a 34830c6,50 -34830c7,20 -34830c8,ad -34830c9,4b -34830cb,4 -34830cc,21 -34830cd,29 -34830cf,4 -34830d0,ad -34830d1,9 -34830d4,8f -34830d5,a8 -34830d7,4 -34830d8,8f -34830d9,a9 -34830db,8 -34830dc,8f -34830dd,aa -34830df,c -34830e0,8f -34830e1,ab -34830e3,10 -34830e4,8f -34830e5,a1 -34830e7,14 -34830e8,23 -34830e9,bd -34830eb,20 -34830ec,8f -34830ed,bf -34830ef,4 -34830f0,27 -34830f1,bd -34830f3,10 -34830f4,3 -34830f5,e0 -34830f7,8 -34830fc,84 -34830fd,8e -34830ff,1c -3483100,21 -3483101,cd -3483102,ff -3483103,ce -3483104,5 -3483105,a0 -3483107,10 -3483108,34 -3483109,2 -348310c,31 -348310d,a9 -348310f,7 -3483110,34 -3483111,a -3483113,1 -3483114,1 -3483115,2a -3483116,50 -3483117,4 -3483119,d -348311a,48 -348311b,c2 -348311c,3c -348311d,c -348311e,80 -348311f,12 -3483120,25 -3483121,8c -3483122,a5 -3483123,d0 -3483124,1 -3483125,89 -3483126,60 -3483127,20 -3483128,81 -3483129,8b -348312a,5 -348312b,b4 -348312c,1 -348312d,6a -348312e,58 -348312f,24 -3483130,34 -3483131,2 -3483134,11 -3483135,60 -3483137,4 -348313c,34 -348313d,d -348313f,26 -3483140,a4 -3483141,8d -3483143,1c -3483144,34 -3483145,2 -3483147,1 -3483148,3 -3483149,e0 -348314b,8 -3483150,84 -3483151,ae -3483153,1c -3483154,21 -3483155,cd -3483156,ff -3483157,ce -3483158,5 -3483159,a0 -348315b,b -348315c,34 -348315d,2 -3483160,31 -3483161,a9 -3483163,7 -3483164,34 -3483165,a -3483167,1 -3483168,1 -3483169,2a -348316a,50 -348316b,4 -348316d,d -348316e,48 -348316f,c2 -3483170,3c -3483171,c -3483172,80 -3483173,12 -3483174,25 -3483175,8c -3483176,a5 -3483177,d0 -3483178,1 -3483179,89 -348317a,60 -348317b,20 -348317c,81 -348317d,8b -348317e,5 -348317f,b4 -3483180,1 -3483181,6a -3483182,58 -3483183,25 -3483184,a1 -3483185,8b -3483186,5 -3483187,b4 -3483188,3 -3483189,e0 -348318b,8 -3483190,27 -3483191,bd -3483192,ff -3483193,f0 -3483194,af -3483195,bf -3483197,8 -3483198,28 -3483199,81 -348319b,32 -348319c,10 -348319d,20 -348319f,3 -34831a1,80 -34831a2,10 -34831a3,21 -34831a4,3 -34831a5,20 -34831a6,f8 -34831a7,9 -34831ac,8f -34831ad,bf -34831af,8 -34831b0,27 -34831b1,bd -34831b3,10 -34831b4,3 -34831b5,e0 -34831b7,8 -34831bc,3c -34831bd,8 -34831be,80 -34831bf,1d -34831c0,25 +34830c7,4 +34830c9,d +34830ca,48 +34830cb,c2 +34830cc,3c +34830cd,c +34830ce,80 +34830cf,12 +34830d0,25 +34830d1,8c +34830d2,a5 +34830d3,d0 +34830d4,1 +34830d5,89 +34830d6,60 +34830d7,20 +34830d8,81 +34830d9,8b +34830da,5 +34830db,b4 +34830dc,1 +34830dd,6a +34830de,58 +34830df,24 +34830e0,34 +34830e1,2 +34830e4,11 +34830e5,60 +34830e7,4 +34830ec,34 +34830ed,d +34830ef,26 +34830f0,a4 +34830f1,8d +34830f3,1c +34830f4,34 +34830f5,2 +34830f7,1 +34830f8,3 +34830f9,e0 +34830fb,8 +3483100,84 +3483101,ae +3483103,1c +3483104,21 +3483105,cd +3483106,ff +3483107,ce +3483108,5 +3483109,a0 +348310b,b +348310c,34 +348310d,2 +3483110,31 +3483111,a9 +3483113,7 +3483114,34 +3483115,a +3483117,1 +3483118,1 +3483119,2a +348311a,50 +348311b,4 +348311d,d +348311e,48 +348311f,c2 +3483120,3c +3483121,c +3483122,80 +3483123,12 +3483124,25 +3483125,8c +3483126,a5 +3483127,d0 +3483128,1 +3483129,89 +348312a,60 +348312b,20 +348312c,81 +348312d,8b +348312e,5 +348312f,b4 +3483130,1 +3483131,6a +3483132,58 +3483133,25 +3483134,a1 +3483135,8b +3483136,5 +3483137,b4 +3483138,3 +3483139,e0 +348313b,8 +3483140,27 +3483141,bd +3483142,ff +3483143,f0 +3483144,af +3483145,bf +3483147,8 +3483148,28 +3483149,81 +348314b,32 +348314c,10 +348314d,20 +348314f,3 +3483151,80 +3483152,10 +3483153,21 +3483154,3 +3483155,20 +3483156,f8 +3483157,9 +348315c,8f +348315d,bf +348315f,8 +3483160,27 +3483161,bd +3483163,10 +3483164,3 +3483165,e0 +3483167,8 +348316c,3c +348316d,8 +348316e,80 +348316f,1d +3483170,25 +3483171,8 +3483172,84 +3483173,a0 +3483174,3c +3483175,9 +3483176,80 +3483177,12 +3483178,25 +3483179,29 +348317a,a5 +348317b,d0 +348317c,85 +348317d,a +348317f,a4 +3483180,34 +3483181,1 +3483183,3e +3483184,15 +3483185,41 +3483187,2 +3483188,81 +3483189,2b +348318a,13 +348318b,97 +348318c,21 +348318d,6a +348318f,2d +3483190,86 +3483191,b +3483193,1c +3483194,21 +3483195,6b +3483197,1 +3483198,34 +3483199,c +348319b,1 +348319c,1 +348319d,6c +348319e,60 +348319f,4 +34831a0,34 +34831a1,1 +34831a3,1c +34831a4,1 +34831a5,41 +34831a7,18 +34831aa,68 +34831ab,12 +34831ac,1 +34831ad,2d +34831ae,70 +34831af,20 +34831b0,8d +34831b1,cf +34831b3,e4 +34831b4,1 +34831b5,8f +34831b6,10 +34831b7,24 +34831b8,3 +34831b9,e0 +34831bb,8 +34831c0,3c 34831c1,8 -34831c2,84 -34831c3,a0 -34831c4,3c -34831c5,9 -34831c6,80 -34831c7,12 -34831c8,25 -34831c9,29 -34831ca,a5 -34831cb,d0 -34831cc,85 -34831cd,a -34831cf,a4 -34831d0,34 -34831d1,1 -34831d3,3e -34831d4,15 -34831d5,41 -34831d7,2 -34831d8,81 -34831d9,2b -34831da,13 -34831db,97 -34831dc,21 -34831dd,6a -34831df,2d -34831e0,86 -34831e1,b -34831e3,1c -34831e4,21 -34831e5,6b -34831e7,1 -34831e8,34 -34831e9,c +34831c2,80 +34831c3,1d +34831c4,25 +34831c5,8 +34831c6,84 +34831c7,a0 +34831c8,3c +34831c9,9 +34831ca,80 +34831cb,12 +34831cc,25 +34831cd,29 +34831ce,a5 +34831cf,d0 +34831d0,85 +34831d1,a +34831d3,a4 +34831d4,34 +34831d5,1 +34831d7,3e +34831d8,15 +34831d9,41 +34831db,2 +34831dc,81 +34831dd,2b +34831de,13 +34831df,97 +34831e0,21 +34831e1,6a +34831e3,2d +34831e4,84 +34831e5,8b +34831e7,1c +34831e8,21 +34831e9,6b 34831eb,1 -34831ec,1 -34831ed,6c -34831ee,60 -34831ef,4 -34831f0,34 -34831f1,1 -34831f3,1c -34831f4,1 -34831f5,41 -34831f7,18 -34831fa,68 -34831fb,12 -34831fc,1 -34831fd,2d -34831fe,70 -34831ff,20 -3483200,8d -3483201,cf -3483203,e4 -3483204,1 -3483205,8f -3483206,10 -3483207,24 -3483208,3 -3483209,e0 -348320b,8 -3483210,3c -3483211,8 -3483212,80 -3483213,1d -3483214,25 -3483215,8 -3483216,84 -3483217,a0 -3483218,3c -3483219,9 -348321a,80 -348321b,12 -348321c,25 -348321d,29 -348321e,a5 -348321f,d0 -3483220,85 -3483221,a -3483223,a4 -3483224,34 -3483225,1 -3483227,3e -3483228,15 -3483229,41 -348322b,2 -348322c,81 -348322d,2b -348322e,13 -348322f,97 -3483230,21 -3483231,6a -3483233,2d -3483234,84 -3483235,8b -3483237,1c -3483238,21 -3483239,6b -348323b,1 -348323c,34 -348323d,c -348323f,1 -3483240,1 -3483241,6c -3483242,60 -3483243,4 -3483244,34 -3483245,1 -3483247,1c -3483248,1 -3483249,41 -348324b,18 -348324e,68 -348324f,12 -3483250,1 -3483251,2d -3483252,70 -3483253,20 -3483254,8d -3483255,cf -3483257,e4 -3483258,1 -3483259,8f -348325a,78 -348325b,25 -348325c,ad -348325d,cf -348325f,e4 -3483260,3 -3483261,e0 -3483263,8 -3483268,af -3483269,a4 -348326b,68 -348326c,af -348326d,a5 -348326f,6c -3483270,af -3483271,a6 -3483273,70 -3483274,af -3483275,a7 -3483277,74 -3483278,27 -3483279,bd -348327a,ff -348327b,e8 -348327c,af -348327d,a3 -348327f,10 -3483280,af -3483281,bf -3483283,14 +34831ec,34 +34831ed,c +34831ef,1 +34831f0,1 +34831f1,6c +34831f2,60 +34831f3,4 +34831f4,34 +34831f5,1 +34831f7,1c +34831f8,1 +34831f9,41 +34831fb,18 +34831fe,68 +34831ff,12 +3483200,1 +3483201,2d +3483202,70 +3483203,20 +3483204,8d +3483205,cf +3483207,e4 +3483208,1 +3483209,8f +348320a,78 +348320b,25 +348320c,ad +348320d,cf +348320f,e4 +3483210,3 +3483211,e0 +3483213,8 +3483218,af +3483219,a4 +348321b,68 +348321c,af +348321d,a5 +348321f,6c +3483220,af +3483221,a6 +3483223,70 +3483224,af +3483225,a7 +3483227,74 +3483228,27 +3483229,bd +348322a,ff +348322b,e8 +348322c,af +348322d,a3 +348322f,10 +3483230,af +3483231,bf +3483233,14 +3483234,3c +3483235,a +3483236,80 +3483237,1e +3483238,25 +3483239,4a +348323a,aa +348323b,30 +348323c,81 +348323d,48 +348323e,6 +348323f,6c +3483240,31 +3483241,8 +3483243,20 +3483244,15 +3483247,1f +348324c,3c +348324d,9 +348324e,80 +348324f,40 +3483250,25 +3483251,29 +3483252,20 +3483253,1b +3483254,34 +3483255,a +3483257,ff +3483258,a1 +3483259,2a +348325c,3c +348325d,9 +348325e,80 +348325f,40 +3483260,25 +3483261,29 +3483262,20 +3483263,18 +3483264,24 +3483265,a +3483266,ff +3483267,ff +3483268,34 +3483269,c +348326b,3 +348326c,21 +348326d,4a +348326f,1 +3483270,11 +3483271,4c +3483273,14 +3483274,1 +3483275,2a +3483276,58 +3483277,20 +3483278,81 +3483279,68 +348327c,11 +348327e,ff +348327f,fb 3483284,3c -3483285,a +3483285,9 3483286,80 -3483287,1e +3483287,40 3483288,25 -3483289,4a -348328a,aa -348328b,30 -348328c,81 -348328d,48 -348328e,6 -348328f,6c -3483290,31 -3483291,8 -3483293,20 -3483294,15 -3483297,1f -348329c,3c -348329d,9 -348329e,80 -348329f,40 -34832a0,25 -34832a1,29 -34832a2,20 -34832a3,1b +3483289,29 +348328a,20 +348328b,1b +348328c,a1 +348328d,2a +3483290,3c +3483291,9 +3483292,80 +3483293,1e +3483294,25 +3483295,29 +3483296,89 +3483297,84 +3483298,34 +3483299,a +348329b,1 +348329c,a5 +348329d,2a +34832a0,3c +34832a1,9 +34832a2,80 +34832a3,48 34832a4,34 34832a5,a -34832a7,ff -34832a8,a1 +34832a7,1 +34832a8,ad 34832a9,2a +34832aa,1 +34832ab,30 34832ac,3c -34832ad,9 +34832ad,a 34832ae,80 -34832af,40 +34832af,1e 34832b0,25 -34832b1,29 -34832b2,20 -34832b3,18 -34832b4,24 -34832b5,a -34832b6,ff -34832b7,ff -34832b8,34 -34832b9,c -34832bb,3 -34832bc,21 -34832bd,4a -34832bf,1 -34832c0,11 -34832c1,4c -34832c3,14 -34832c4,1 -34832c5,2a -34832c6,58 -34832c7,20 -34832c8,81 -34832c9,68 -34832cc,11 -34832ce,ff -34832cf,fb -34832d4,3c -34832d5,9 -34832d6,80 -34832d7,40 -34832d8,25 -34832d9,29 -34832da,20 -34832db,1b -34832dc,a1 -34832dd,2a -34832e0,3c -34832e1,9 -34832e2,80 -34832e3,1e -34832e4,25 -34832e5,29 -34832e6,89 -34832e7,84 -34832e8,34 -34832e9,a -34832eb,1 -34832ec,a5 -34832ed,2a -34832f0,3c -34832f1,9 -34832f2,80 -34832f3,48 -34832f4,34 -34832f5,a -34832f7,1 -34832f8,ad -34832f9,2a -34832fa,1 -34832fb,30 -34832fc,3c -34832fd,a -34832fe,80 -34832ff,1e -3483300,25 -3483301,4a -3483302,aa -3483303,30 -3483304,a1 -3483305,48 -3483306,4 -3483307,24 -3483308,ad -3483309,49 -348330a,4 -348330b,28 -348330c,c -348330d,10 -348330e,a -348330f,d9 -3483314,8f -3483315,a3 -3483317,10 -3483318,8f -3483319,bf -348331b,14 -348331c,27 -348331d,bd -348331f,18 -3483320,8f -3483321,a4 -3483323,68 -3483324,8f -3483325,a5 -3483327,6c -3483328,8f -3483329,a6 -348332b,70 -348332c,8f -348332d,a7 -348332f,74 -3483330,84 -3483331,6e -3483332,13 -3483333,c4 -3483334,3 -3483335,e0 -3483337,8 -348333c,93 -348333d,19 -348333f,74 -3483340,34 -3483341,1 -3483343,ff -3483344,17 -3483345,21 -3483347,2 -348334c,34 -348334d,19 -348334f,2c -3483350,3 -3483351,e0 -3483353,8 -3483354,a7 -3483355,b9 -3483357,9a -3483358,93 -3483359,2c -348335b,74 -348335c,34 -348335d,1 -348335f,ff -3483360,15 -3483361,81 -3483363,2 -3483368,34 -3483369,c -348336b,2c -348336c,3 -348336d,e0 -348336f,8 -3483374,91 -3483375,ae -3483377,74 -3483378,34 -3483379,1 -348337b,ff -348337c,15 -348337d,c1 -348337f,2 -3483384,34 -3483385,e -3483387,2c -3483388,3 -3483389,e0 -348338b,8 -348338c,a7 -348338d,ae -348338f,9a -3483390,91 -3483391,cf -3483393,74 -3483394,34 -3483395,1 -3483397,ff -3483398,15 -3483399,e1 -348339b,2 -34833a0,34 -34833a1,f -34833a3,2c -34833a4,3 -34833a5,e0 -34833a7,8 -34833a8,a7 -34833a9,af -34833ab,9a -34833ac,3c +34832b1,4a +34832b2,aa +34832b3,30 +34832b4,a1 +34832b5,48 +34832b6,4 +34832b7,24 +34832b8,ad +34832b9,49 +34832ba,4 +34832bb,28 +34832bc,c +34832bd,10 +34832be,a +34832bf,d9 +34832c4,8f +34832c5,a3 +34832c7,10 +34832c8,8f +34832c9,bf +34832cb,14 +34832cc,27 +34832cd,bd +34832cf,18 +34832d0,8f +34832d1,a4 +34832d3,68 +34832d4,8f +34832d5,a5 +34832d7,6c +34832d8,8f +34832d9,a6 +34832db,70 +34832dc,8f +34832dd,a7 +34832df,74 +34832e0,84 +34832e1,6e +34832e2,13 +34832e3,c4 +34832e4,3 +34832e5,e0 +34832e7,8 +34832ec,93 +34832ed,19 +34832ef,74 +34832f0,34 +34832f1,1 +34832f3,ff +34832f4,17 +34832f5,21 +34832f7,2 +34832fc,34 +34832fd,19 +34832ff,2c +3483300,3 +3483301,e0 +3483303,8 +3483304,a7 +3483305,b9 +3483307,9a +3483308,93 +3483309,2c +348330b,74 +348330c,34 +348330d,1 +348330f,ff +3483310,15 +3483311,81 +3483313,2 +3483318,34 +3483319,c +348331b,2c +348331c,3 +348331d,e0 +348331f,8 +3483324,91 +3483325,ae +3483327,74 +3483328,34 +3483329,1 +348332b,ff +348332c,15 +348332d,c1 +348332f,2 +3483334,34 +3483335,e +3483337,2c +3483338,3 +3483339,e0 +348333b,8 +348333c,a7 +348333d,ae +348333f,9a +3483340,91 +3483341,cf +3483343,74 +3483344,34 +3483345,1 +3483347,ff +3483348,15 +3483349,e1 +348334b,2 +3483350,34 +3483351,f +3483353,2c +3483354,3 +3483355,e0 +3483357,8 +3483358,a7 +3483359,af +348335b,9a +348335c,3c +348335d,8 +348335e,80 +348335f,40 +3483360,25 +3483361,8 +3483362,20 +3483363,1c +3483364,8e +3483365,9 +3483367,68 +3483368,ad +3483369,9 +348336c,8e +348336d,9 +348336f,6c +3483370,ad +3483371,9 +3483373,4 +3483374,96 +3483375,9 +3483377,70 +3483378,a5 +3483379,9 +348337b,8 +348337c,96 +348337d,9 +348337f,9c +3483380,a5 +3483381,9 +3483383,a +3483384,3 +3483385,e0 +3483387,8 +3483388,8e +3483389,e +348338b,4 +348338c,27 +348338d,bd +348338e,ff +348338f,e0 +3483390,af +3483391,b0 +3483393,10 +3483394,af +3483395,b1 +3483397,14 +3483398,af +3483399,bf +348339b,18 +348339c,3c +348339d,10 +348339e,80 +348339f,12 +34833a0,26 +34833a1,10 +34833a2,a5 +34833a3,d0 +34833a4,3c +34833a5,11 +34833a6,80 +34833a7,40 +34833a8,26 +34833a9,31 +34833aa,20 +34833ab,1c +34833ac,8e 34833ad,8 -34833ae,80 -34833af,40 -34833b0,25 -34833b1,8 -34833b2,20 -34833b3,1c -34833b4,8e -34833b5,9 -34833b7,68 -34833b8,ad -34833b9,9 -34833bc,8e -34833bd,9 -34833bf,6c -34833c0,ad -34833c1,9 -34833c3,4 -34833c4,96 -34833c5,9 -34833c7,70 -34833c8,a5 -34833c9,9 -34833cb,8 -34833cc,96 -34833cd,9 -34833cf,9c -34833d0,a5 -34833d1,9 -34833d3,a -34833d4,3 -34833d5,e0 -34833d7,8 -34833d8,8e -34833d9,e -34833db,4 -34833dc,27 -34833dd,bd -34833de,ff -34833df,e0 -34833e0,af -34833e1,b0 -34833e3,10 -34833e4,af -34833e5,b1 -34833e7,14 -34833e8,af -34833e9,bf -34833eb,18 -34833ec,3c -34833ed,10 -34833ee,80 -34833ef,12 -34833f0,26 -34833f1,10 -34833f2,a5 -34833f3,d0 -34833f4,3c -34833f5,11 -34833f6,80 -34833f7,40 -34833f8,26 -34833f9,31 -34833fa,20 -34833fb,1c -34833fc,8e -34833fd,8 -34833ff,4 -3483400,11 -3483403,5 -3483408,c -3483409,10 -348340a,d -348340b,21 -3483410,10 -3483413,3 -3483418,c -3483419,10 -348341a,d -348341b,34 -3483420,c -3483421,10 -3483422,d -3483423,14 -3483424,34 -3483425,4 -3483428,c -3483429,10 -348342a,d -348342b,14 -348342c,34 -348342d,4 -348342f,1 -3483430,c -3483431,10 -3483432,d -3483433,14 -3483434,34 -3483435,4 -3483437,2 -3483438,8f -3483439,b0 +34833af,4 +34833b0,11 +34833b3,5 +34833b8,c +34833b9,10 +34833ba,d +34833bb,d +34833c0,10 +34833c3,3 +34833c8,c +34833c9,10 +34833ca,d +34833cb,20 +34833d0,c +34833d1,10 +34833d2,d +34833d4,34 +34833d5,4 +34833d8,c +34833d9,10 +34833da,d +34833dc,34 +34833dd,4 +34833df,1 +34833e0,c +34833e1,10 +34833e2,d +34833e4,34 +34833e5,4 +34833e7,2 +34833e8,8f +34833e9,b0 +34833eb,10 +34833ec,8f +34833ed,b1 +34833ef,14 +34833f0,8f +34833f1,bf +34833f3,18 +34833f4,27 +34833f5,bd +34833f7,20 +34833f8,3 +34833f9,e0 +34833fb,8 +3483400,2 +3483401,4 +3483402,40 +3483403,21 +3483404,91 +3483405,9 +3483407,6c +3483408,34 +3483409,1 +348340b,ff +348340c,11 +348340d,21 +348340f,7 +3483414,2 +3483415,9 +3483416,48 +3483417,21 +3483418,91 +3483419,29 +348341b,74 +348341c,34 +348341d,1 +348341f,2c +3483420,11 +3483421,21 +3483423,2 +3483428,a1 +3483429,9 +348342b,69 +348342c,3 +348342d,e0 +348342f,8 +3483434,27 +3483435,bd +3483436,ff +3483437,e8 +3483438,af +3483439,bf 348343b,10 -348343c,8f -348343d,b1 -348343f,14 -3483440,8f -3483441,bf -3483443,18 -3483444,27 -3483445,bd -3483447,20 -3483448,3 -3483449,e0 -348344b,8 -3483450,2 -3483451,4 -3483452,40 -3483453,21 -3483454,91 -3483455,9 -3483457,6c -3483458,34 -3483459,1 -348345b,ff -348345c,11 -348345d,21 -348345f,7 -3483464,2 -3483465,9 -3483466,48 -3483467,21 -3483468,91 -3483469,29 -348346b,74 -348346c,34 -348346d,1 -348346f,2c -3483470,11 -3483471,21 -3483473,2 -3483478,a1 -3483479,9 -348347b,69 -348347c,3 -348347d,e0 -348347f,8 -3483484,27 -3483485,bd -3483486,ff -3483487,e8 -3483488,af -3483489,bf -348348b,10 -348348c,8e -348348d,28 -3483490,ae +348343c,8e +348343d,28 +3483440,ae +3483441,8 +3483443,40 +3483444,8e +3483445,28 +3483447,4 +3483448,ae +3483449,8 +348344b,44 +348344c,96 +348344d,28 +348344f,8 +3483450,a6 +3483451,8 +3483453,48 +3483454,a2 +3483456,f +3483457,33 +3483458,92 +3483459,8 +348345b,4a +348345c,34 +348345d,1 +348345f,ff +3483460,15 +3483461,1 +3483463,3 +3483468,c +3483469,10 +348346a,d +348346b,2e +3483470,8f +3483471,bf +3483473,10 +3483474,27 +3483475,bd +3483477,18 +3483478,3 +3483479,e0 +348347b,8 +3483480,8e +3483481,8 +3483483,40 +3483484,ae +3483485,8 +3483487,68 +3483488,8e +3483489,8 +348348b,44 +348348c,ae +348348d,8 +348348f,6c +3483490,96 3483491,8 -3483493,40 -3483494,8e -3483495,28 -3483497,4 -3483498,ae +3483493,48 +3483494,a6 +3483495,8 +3483497,70 +3483498,92 3483499,8 -348349b,44 -348349c,96 -348349d,28 -348349f,8 -34834a0,a6 -34834a1,8 -34834a3,48 -34834a4,a2 -34834a6,f -34834a7,33 -34834a8,92 +348349b,68 +348349c,34 +348349d,1 +348349f,ff +34834a0,15 +34834a1,1 +34834a3,3 +34834a8,34 34834a9,8 -34834ab,4a -34834ac,34 -34834ad,1 -34834af,ff -34834b0,15 -34834b1,1 -34834b3,3 -34834b8,c -34834b9,10 -34834ba,d -34834bb,42 -34834c0,8f -34834c1,bf -34834c3,10 -34834c4,27 -34834c5,bd -34834c7,18 -34834c8,3 -34834c9,e0 -34834cb,8 -34834d0,8e +34834ab,1 +34834ac,a2 +34834ad,8 +34834ae,f +34834af,33 +34834b0,3 +34834b1,e0 +34834b3,8 +34834b8,27 +34834b9,bd +34834ba,ff +34834bb,e8 +34834bc,af +34834bd,bf +34834bf,10 +34834c0,96 +34834c1,8 +34834c3,9c +34834c4,31 +34834c5,8 +34834c7,40 +34834c8,11 +34834cb,5 +34834d0,96 34834d1,8 -34834d3,40 -34834d4,ae +34834d3,70 +34834d4,31 34834d5,8 -34834d7,68 -34834d8,8e +34834d6,ff +34834d7,f +34834d8,35 34834d9,8 -34834db,44 -34834dc,ae +34834db,30 +34834dc,a6 34834dd,8 -34834df,6c -34834e0,96 -34834e1,8 -34834e3,48 -34834e4,a6 +34834df,70 +34834e0,92 +34834e1,28 +34834e3,1 +34834e4,a2 34834e5,8 -34834e7,70 -34834e8,92 -34834e9,8 -34834eb,68 -34834ec,34 -34834ed,1 -34834ef,ff -34834f0,15 -34834f1,1 -34834f3,3 -34834f8,34 -34834f9,8 -34834fb,1 -34834fc,a2 -34834fd,8 -34834fe,f -34834ff,33 -3483500,3 -3483501,e0 -3483503,8 -3483508,27 -3483509,bd -348350a,ff -348350b,e8 -348350c,af -348350d,bf -348350f,10 -3483510,96 -3483511,8 -3483513,9c -3483514,31 -3483515,8 -3483517,40 -3483518,11 -348351b,5 -3483520,96 -3483521,8 -3483523,70 -3483524,31 -3483525,8 -3483526,ff -3483527,f -3483528,35 -3483529,8 -348352b,30 -348352c,a6 -348352d,8 -348352f,70 -3483530,92 -3483531,28 -3483533,1 -3483534,a2 -3483535,8 -3483537,69 -3483538,96 -3483539,28 -348353b,2 -348353c,a6 -348353d,8 -348353f,6a -3483540,8e -3483541,28 -3483543,4 -3483544,ae -3483545,8 -3483547,6c -3483548,c -3483549,10 -348354a,d -348354b,5c -348354c,34 -348354d,4 -3483550,c -3483551,10 -3483552,d -3483553,5c -3483554,34 -3483555,4 +34834e7,69 +34834e8,96 +34834e9,28 +34834eb,2 +34834ec,a6 +34834ed,8 +34834ef,6a +34834f0,8e +34834f1,28 +34834f3,4 +34834f4,ae +34834f5,8 +34834f7,6c +34834f8,c +34834f9,10 +34834fa,d +34834fb,48 +34834fc,34 +34834fd,4 +3483500,c +3483501,10 +3483502,d +3483503,48 +3483504,34 +3483505,4 +3483507,1 +3483508,c +3483509,10 +348350a,d +348350b,48 +348350c,34 +348350d,4 +348350f,2 +3483510,8f +3483511,bf +3483513,10 +3483514,27 +3483515,bd +3483517,18 +3483518,3 +3483519,e0 +348351b,8 +3483520,2 +3483521,4 +3483522,40 +3483523,21 +3483524,3c +3483525,9 +3483526,80 +3483527,40 +3483528,25 +3483529,29 +348352a,35 +348352b,cc +348352c,91 +348352d,a +348352f,6c +3483530,34 +3483531,1 +3483533,ff +3483534,11 +3483535,41 +3483537,5 +348353c,1 +348353d,2a +348353e,48 +348353f,21 +3483540,91 +3483541,29 +3483544,15 +3483545,20 +3483547,1c +348354c,3c +348354d,9 +348354e,80 +348354f,40 +3483550,25 +3483551,29 +3483552,35 +3483553,bf +3483554,25 +3483555,29 3483557,1 -3483558,c -3483559,10 -348355a,d -348355b,5c -348355c,34 -348355d,4 -348355f,2 -3483560,8f -3483561,bf -3483563,10 -3483564,27 -3483565,bd -3483567,18 -3483568,3 -3483569,e0 -348356b,8 -3483570,2 -3483571,4 -3483572,40 -3483573,21 -3483574,3c -3483575,9 -3483576,80 -3483577,40 -3483578,25 -3483579,29 -348357a,36 -348357b,1c -348357c,91 -348357d,a -348357f,6c -3483580,34 -3483581,1 -3483583,ff -3483584,11 -3483585,41 -3483587,5 -348358c,1 -348358d,2a -348358e,48 -348358f,21 -3483590,91 -3483591,29 -3483594,15 -3483595,20 -3483597,1c -348359c,3c -348359d,9 -348359e,80 -348359f,40 -34835a0,25 -34835a1,29 -34835a2,36 -34835a3,f -34835a4,25 -34835a5,29 -34835a7,1 -34835a8,91 -34835a9,2a -34835ac,11 -34835ad,40 -34835af,13 -34835b4,2 -34835b5,a -34835b6,58 -34835b7,21 -34835b8,91 -34835b9,6b -34835bb,74 -34835bc,34 -34835bd,1 -34835bf,ff -34835c0,11 -34835c1,61 -34835c2,ff -34835c3,f8 -34835c8,92 -34835c9,c -34835cb,6c -34835cc,11 -34835cd,8a -34835ce,ff -34835cf,f5 -34835d4,92 -34835d5,c -34835d7,6d -34835d8,11 -34835d9,8a -34835da,ff -34835db,f2 -34835e0,92 -34835e1,c -34835e3,6e -34835e4,11 -34835e5,8a -34835e6,ff -34835e7,ef -34835ec,a1 -34835ed,b -34835ef,69 -34835f0,a1 -34835f1,a -34835f3,6c -34835f4,10 -34835f7,4 -34835fc,34 -34835fd,9 -34835ff,ff -3483600,a1 -3483601,9 -3483603,69 -3483604,a1 -3483605,9 -3483607,6c -3483608,3 -3483609,e0 -348360b,8 -3483610,7 -3483611,9 -3483612,f -3483613,2 -3483614,3 -3483615,1 -3483616,d -3483617,b -348361d,1 -348361e,1 -348361f,1 -3483620,1 -3483621,1 -3483623,1 -3483624,1 -3483625,1 -3483626,1 -3483627,1 -3483629,1 -348362b,1 -348362c,1 -348362d,1 -348362e,1 -348362f,1 -3483630,1 -3483631,1 -3483632,1 -3483635,33 -3483636,8 -3483637,21 -3483638,20 -3483639,f -348363b,47 -348363c,15 -348363d,ea -348363f,e -3483640,3c -3483641,2 -3483642,80 -3483643,12 -3483644,8c -3483645,42 -3483646,a5 -3483647,d4 -3483648,8e -3483649,6f -348364b,a4 -348364d,f -348364e,7a -348364f,3 -3483650,14 -3483651,40 -3483653,5 -3483654,34 -3483655,2 -3483656,48 -3483657,30 -3483658,15 -3483659,e2 -348365b,7 -3483660,24 -3483661,19 -3483663,3 -3483664,10 -3483667,4 -3483668,34 -3483669,2 -348366a,63 -348366b,11 -348366c,15 -348366d,e2 -348366f,2 -3483674,24 -3483675,19 -3483677,3 -3483678,3 -3483679,e0 -348367b,8 -3483680,8d -3483681,ad -3483682,8a -3483683,a0 -3483684,34 -3483685,2 -3483686,80 -3483688,10 -3483689,4d -348368b,2 -3483690,10 -3483693,9 -3483694,3c -3483695,f -3483696,80 -3483697,1e -3483698,25 -3483699,ef -348369a,84 -348369b,a0 -348369c,81 -348369d,e2 -348369e,1c -348369f,bf -34836a0,30 -34836a1,42 -34836a3,1 -34836a4,10 -34836a5,40 -34836a7,2 -34836ac,10 -34836af,2 -34836b0,34 -34836b1,2 -34836b3,1 -34836b4,a1 -34836b5,e2 -34836b6,1c -34836b7,bf -34836b8,3 -34836b9,e0 -34836bb,8 -34836c1,33 -34836c2,8 -34836c3,21 -34836c4,3c -34836c5,2 -34836c6,80 -34836c7,12 -34836c8,8c -34836c9,42 -34836ca,a5 -34836cb,d4 -34836cc,8e -34836cd,6f -34836cf,a4 -34836d1,f -34836d2,7a -34836d3,3 -34836d4,14 -34836d5,40 -34836d7,5 -34836d8,34 -34836d9,2 -34836da,48 -34836db,30 -34836dc,15 -34836dd,e2 -34836df,7 -34836e4,24 -34836e5,19 -34836e7,3 -34836e8,10 -34836eb,4 -34836ec,34 -34836ed,2 -34836ee,63 -34836ef,11 -34836f0,15 -34836f1,e2 -34836f3,2 -34836f8,24 -34836f9,19 -34836fb,3 -34836fc,3 -34836fd,e0 -34836ff,8 -3483704,34 -3483705,1 -3483707,18 -3483708,14 -3483709,81 -348370b,11 -3483710,14 -3483711,40 -3483713,f -3483718,3c +3483558,91 +3483559,2a +348355c,11 +348355d,40 +348355f,13 +3483564,2 +3483565,a +3483566,58 +3483567,21 +3483568,91 +3483569,6b +348356b,74 +348356c,34 +348356d,1 +348356f,ff +3483570,11 +3483571,61 +3483572,ff +3483573,f8 +3483578,92 +3483579,c +348357b,6c +348357c,11 +348357d,8a +348357e,ff +348357f,f5 +3483584,92 +3483585,c +3483587,6d +3483588,11 +3483589,8a +348358a,ff +348358b,f2 +3483590,92 +3483591,c +3483593,6e +3483594,11 +3483595,8a +3483596,ff +3483597,ef +348359c,a1 +348359d,b +348359f,69 +34835a0,a1 +34835a1,a +34835a3,6c +34835a4,10 +34835a7,4 +34835ac,34 +34835ad,9 +34835af,ff +34835b0,a1 +34835b1,9 +34835b3,69 +34835b4,a1 +34835b5,9 +34835b7,6c +34835b8,3 +34835b9,e0 +34835bb,8 +34835c0,7 +34835c1,9 +34835c2,f +34835c3,2 +34835c4,3 +34835c5,1 +34835c6,d +34835c7,b +34835cd,1 +34835ce,1 +34835cf,1 +34835d0,1 +34835d1,1 +34835d3,1 +34835d4,1 +34835d5,1 +34835d6,1 +34835d7,1 +34835d9,1 +34835db,1 +34835dc,1 +34835dd,1 +34835de,1 +34835df,1 +34835e0,1 +34835e1,1 +34835e2,1 +34835e5,33 +34835e6,8 +34835e7,21 +34835e8,20 +34835e9,f +34835eb,47 +34835ec,15 +34835ed,ea +34835ef,e +34835f0,3c +34835f1,2 +34835f2,80 +34835f3,12 +34835f4,8c +34835f5,42 +34835f6,a5 +34835f7,d4 +34835f8,8e +34835f9,6f +34835fb,a4 +34835fd,f +34835fe,7a +34835ff,3 +3483600,14 +3483601,40 +3483603,5 +3483604,34 +3483605,2 +3483606,48 +3483607,30 +3483608,15 +3483609,e2 +348360b,7 +3483610,24 +3483611,19 +3483613,3 +3483614,10 +3483617,4 +3483618,34 +3483619,2 +348361a,63 +348361b,11 +348361c,15 +348361d,e2 +348361f,2 +3483624,24 +3483625,19 +3483627,3 +3483628,3 +3483629,e0 +348362b,8 +3483630,8d +3483631,ad +3483632,8a +3483633,a0 +3483634,34 +3483635,2 +3483636,80 +3483638,10 +3483639,4d +348363b,2 +3483640,10 +3483643,9 +3483644,3c +3483645,f +3483646,80 +3483647,1e +3483648,25 +3483649,ef +348364a,84 +348364b,a0 +348364c,81 +348364d,e2 +348364e,1c +348364f,bf +3483650,30 +3483651,42 +3483653,1 +3483654,10 +3483655,40 +3483657,2 +348365c,10 +348365f,2 +3483660,34 +3483661,2 +3483663,1 +3483664,a1 +3483665,e2 +3483666,1c +3483667,bf +3483668,3 +3483669,e0 +348366b,8 +3483671,33 +3483672,8 +3483673,21 +3483674,3c +3483675,2 +3483676,80 +3483677,12 +3483678,8c +3483679,42 +348367a,a5 +348367b,d4 +348367c,8e +348367d,6f +348367f,a4 +3483681,f +3483682,7a +3483683,3 +3483684,14 +3483685,40 +3483687,5 +3483688,34 +3483689,2 +348368a,48 +348368b,30 +348368c,15 +348368d,e2 +348368f,7 +3483694,24 +3483695,19 +3483697,3 +3483698,10 +348369b,4 +348369c,34 +348369d,2 +348369e,63 +348369f,11 +34836a0,15 +34836a1,e2 +34836a3,2 +34836a8,24 +34836a9,19 +34836ab,3 +34836ac,3 +34836ad,e0 +34836af,8 +34836b4,34 +34836b5,1 +34836b7,18 +34836b8,14 +34836b9,81 +34836bb,11 +34836c0,14 +34836c1,40 +34836c3,f +34836c8,3c +34836c9,a +34836ca,80 +34836cb,12 +34836cc,25 +34836cd,4a +34836ce,a5 +34836cf,d0 +34836d0,81 +34836d1,48 +34836d3,a6 +34836d4,31 +34836d5,8 +34836d7,20 +34836d8,11 +34836db,9 +34836dc,34 +34836dd,2 +34836e0,34 +34836e1,2 +34836e3,1 +34836e4,81 +34836e5,48 +34836e7,7b +34836e8,34 +34836e9,9 +34836eb,7 +34836ec,11 +34836ed,9 +34836ef,4 +34836f0,34 +34836f1,a +34836f3,8 +34836f4,11 +34836f5,a +34836f7,2 +34836fc,34 +34836fd,2 +3483700,3 +3483701,e0 +3483703,8 +3483708,a2 +3483709,25 +348370b,21 +348370c,3c +348370d,10 +348370e,80 +348370f,40 +3483710,26 +3483711,10 +3483712,17 +3483713,fc +3483714,26 +3483715,10 +3483717,4 +3483718,8e 3483719,a -348371a,80 -348371b,12 -348371c,25 -348371d,4a -348371e,a5 -348371f,d0 -3483720,81 -3483721,48 -3483723,a6 -3483724,31 -3483725,8 -3483727,20 -3483728,11 -348372b,9 -348372c,34 -348372d,2 -3483730,34 -3483731,2 -3483733,1 -3483734,81 -3483735,48 -3483737,7b -3483738,34 -3483739,9 -348373b,7 -348373c,11 -348373d,9 -348373f,4 -3483740,34 -3483741,a -3483743,8 -3483744,11 -3483745,a -3483747,2 -348374c,34 -348374d,2 -3483750,3 -3483751,e0 -3483753,8 -3483758,a2 -3483759,25 -348375b,21 -348375c,3c -348375d,10 -348375e,80 -348375f,40 -3483760,26 -3483761,10 -3483762,17 -3483763,fc -3483764,26 -3483765,10 -3483767,4 -3483768,8e -3483769,a -348376c,11 -348376d,40 -348376f,b -3483775,a -3483776,7c -3483777,2 -3483778,1 -3483779,f1 -348377a,78 -348377b,20 -348377c,31 -348377d,58 -348377e,ff -3483781,18 -3483782,c2 -3483783,2 -3483784,17 -3483787,3 -3483788,31 -3483789,59 -348378b,ff -348378c,81 -348378d,ea -3483790,3 -3483791,2a -3483792,c8 -3483793,25 -3483794,8 -3483795,10 -3483796,d -3483797,d9 -3483798,a1 -3483799,f9 -348379c,3 -348379d,e0 -348379f,8 +348371c,11 +348371d,40 +348371f,b +3483725,a +3483726,7c +3483727,2 +3483728,1 +3483729,f1 +348372a,78 +348372b,20 +348372c,31 +348372d,58 +348372e,ff +3483731,18 +3483732,c2 +3483733,2 +3483734,17 +3483737,3 +3483738,31 +3483739,59 +348373b,ff +348373c,81 +348373d,ea +3483740,3 +3483741,2a +3483742,c8 +3483743,25 +3483744,8 +3483745,10 +3483746,d +3483747,c5 +3483748,a1 +3483749,f9 +348374c,3 +348374d,e0 +348374f,8 34b3000,ac 34b3001,86 34b3004,ac diff --git a/data/symbols.json b/data/symbols.json index b14b528f3..4d9b61bcb 100644 --- a/data/symbols.json +++ b/data/symbols.json @@ -1,6 +1,6 @@ { - "ADULT_INIT_ITEMS": "03483610", - "ADULT_VALID_ITEMS": "0348361C", + "ADULT_INIT_ITEMS": "034835C0", + "ADULT_VALID_ITEMS": "034835CC", "EXTENDED_ITEM_DATA": "03482008", "FAIRY_ITEMS": "03481C03", "FAIRY_OCARINA_ITEM": "03481C02", diff --git a/version.py b/version.py index 1dc986f7f..ef63d631f 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.18.6 f.LUM' +__version__ = '2.18.7 f.LUM' From 732716837a19b356e074e889f6280afa7f0916a6 Mon Sep 17 00:00:00 2001 From: Tyrus <42982810+Tyrusss@users.noreply.github.com> Date: Mon, 17 Sep 2018 15:55:39 +0100 Subject: [PATCH 534/755] Made All_Locations_Reachable tooltip clearer A lot of people in the Discord were expressing confusion over the current tooltip. --- Settings.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/Settings.py b/Settings.py index 4d50b46d7..4176c4eb8 100644 --- a/Settings.py +++ b/Settings.py @@ -400,9 +400,15 @@ def parse_custom_navi_color(s): 'widget': 'Checkbutton', 'default': 'checked', 'tooltip':'''\ - Chests that lock themselves can still exist. - When disabled, some locations and items might - not be reachable. + When this option is enabled, the randomizer will + guarantee that every item is obtainable, and every + location is reachable. + + When disabled, only required items and locations + to beat the game will be guaranteed reachable. + + Even when enabled, some chests may still be able to + hold the keys needed to reach them. ''' }), Setting_Info('bombchus_in_logic', bool, 1, True, From 7bf27e01b0d222e56cf941d88c0b8d9aea13c692 Mon Sep 17 00:00:00 2001 From: Zeimyth Date: Mon, 17 Sep 2018 09:34:45 -0600 Subject: [PATCH 535/755] Import required HTTP errors This prevents the randomizer from crashing when run offline --- OoTRandomizer.py | 1 + 1 file changed, 1 insertion(+) diff --git a/OoTRandomizer.py b/OoTRandomizer.py index 98932398a..84b21748c 100644 --- a/OoTRandomizer.py +++ b/OoTRandomizer.py @@ -5,6 +5,7 @@ import random import textwrap import sys +from urllib.error import HTTPError, URLError from Gui import guiMain from Main import main From 3bb53e32cdf46c6972460683f1bc31800ce05dfd Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Mon, 17 Sep 2018 15:08:07 -0300 Subject: [PATCH 536/755] Performance improvement for hint generation --- BaseClasses.py | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index dfb066342..ed6294257 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -562,7 +562,8 @@ def update_required_items(worlds): state_list = [world.state for world in worlds] # get list of all of the progressive items that can appear in hints - item_locations = [location for world in worlds for location in world.get_filled_locations() + all_locations = [location for world in worlds for location in world.get_filled_locations()] + item_locations = [location for location in all_locations if location.item.advancement and location.item.type != 'Event' and location.item.type != 'Shop' @@ -580,15 +581,21 @@ def update_required_items(worlds): spoiler_locations[location.name].append(location.world.id) item_locations = list(filter(lambda location: location.world.id in spoiler_locations[location.name], item_locations)) - - # Try to remove the items one at a time and see if the game is still beatable required_locations = [] - for location in item_locations: - old_item = location.item - location.item = None - if not CollectionState.can_beat_game(state_list): - required_locations.append(location) - location.item = old_item + reachable_items_locations = True + while (item_locations and reachable_items_locations): + reachable_items_locations = [location for location in all_locations if location.name not in state_list[location.world.id].collected_locations and state_list[location.world.id].can_reach(location)] + for location in reachable_items_locations: + # Try to remove items one at a time and see if the game is still beatable + if location in item_locations: + old_item = location.item + location.item = None + if not CollectionState.can_beat_game(state_list): + required_locations.append(location) + location.item = old_item + item_locations.remove(location) + state_list[location.world.id].collected_locations[location.name] = True + state_list[location.item.world.id].collect(location.item) # Filter the required location to only include location in the world for world in worlds: From 19bc4b019ac1e9844557279cfbe503e8b9a0003c Mon Sep 17 00:00:00 2001 From: Tyrus <42982810+Tyrusss@users.noreply.github.com> Date: Mon, 17 Sep 2018 21:32:07 +0100 Subject: [PATCH 537/755] Made some tooltips clearer --- Settings.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Settings.py b/Settings.py index 4176c4eb8..bbdac2a80 100644 --- a/Settings.py +++ b/Settings.py @@ -408,7 +408,8 @@ def parse_custom_navi_color(s): to beat the game will be guaranteed reachable. Even when enabled, some chests may still be able to - hold the keys needed to reach them. + hold the keys needed to reach them (Or gold + skulltulas in tokensanity). ''' }), Setting_Info('bombchus_in_logic', bool, 1, True, @@ -831,6 +832,11 @@ def parse_custom_navi_color(s): a random number of non-shop items. Each shop can have a maximum of 4 items. + + Child cannot buy tunics on + the right side of shops, + but can buy tunics on the + left side. ''' }), Setting_Info('shuffle_mapcompass', str, 2, True, From ca07904e1e5b96280b2c695c3e2eb1f554c6f52f Mon Sep 17 00:00:00 2001 From: Tyrus <42982810+Tyrusss@users.noreply.github.com> Date: Mon, 17 Sep 2018 22:34:43 +0100 Subject: [PATCH 538/755] Shopsanity tooltip clarification --- Settings.py | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/Settings.py b/Settings.py index bbdac2a80..9f6665c5b 100644 --- a/Settings.py +++ b/Settings.py @@ -820,23 +820,25 @@ def parse_custom_navi_color(s): }, 'tooltip':'''\ Shop contents are randomized. - - (X Items): Shops have X random - non-shop items. They will always - be on the left side. This means - every shop will have more - possible item locations. So +2 - means 2 items per shop. - - (Random): Each shop will have - a random number of non-shop - items. Each shop can have a - maximum of 4 items. + (X Items): Shops have X random non-shop (Special + Deal!) items. They will always be on the left + side. This means that every shop will have more + possible item locations. So +2 means 2 items + per shop. + + (Random): Each shop will have a random number + of non-shop items, up to a maximum of 4. + + The non-shop items have no requirements except + money, while the normal shop items (such as + 200/300 rupee tunics) have normal vanilla + requirements. This means that, for example, + as a child you cannot buy 200/300 rupee + tunics, but you can buy non-shop tunics. - Child cannot buy tunics on - the right side of shops, - but can buy tunics on the - left side. + non-shop bombchus will unlock the chu slot + in your inventory, which is needed to buy + normal chu refills. ''' }), Setting_Info('shuffle_mapcompass', str, 2, True, From ec18bdb3afefa28898648c71a1c29df7ff1caa9b Mon Sep 17 00:00:00 2001 From: Nick Langille Date: Mon, 17 Sep 2018 19:43:28 -0400 Subject: [PATCH 539/755] Add -mdivide-breaks to makefile --- ASM/c/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ASM/c/Makefile b/ASM/c/Makefile index 579b0098f..fd099a29b 100644 --- a/ASM/c/Makefile +++ b/ASM/c/Makefile @@ -2,7 +2,7 @@ CC = mips64-gcc LD = mips64-ld OBJDUMP = mips64-objdump -CFLAGS = -march=vr4300 -mtune=vr4300 -mabi=32 -mno-gpopt \ +CFLAGS = -march=vr4300 -mtune=vr4300 -mabi=32 -mno-gpopt -mdivide-breaks \ -O1 -fno-reorder-blocks \ -DZ64_VERSION=Z64_OOT10 From 7747cc852f3606be1f89b227d58b9876c5eac44a Mon Sep 17 00:00:00 2001 From: Unknown Date: Tue, 18 Sep 2018 00:36:40 -0400 Subject: [PATCH 540/755] Fixing some errors in the merge --- Patches.py | 12 +++++------- Regions.py | 7 ++++--- Rules.py | 4 ++-- version.py | 2 +- 4 files changed, 12 insertions(+), 13 deletions(-) diff --git a/Patches.py b/Patches.py index 74da85c10..83026733e 100644 --- a/Patches.py +++ b/Patches.py @@ -1362,7 +1362,7 @@ def write_save_table(rom): 'FiT': ("the \x05\x41Fire Temple", 'Volvagia', 0x7c, 0x8c), 'WT': ("the \x05\x43Water Temple", 'Morpha', 0x7d, 0x8e), 'SpT': ("the \x05\x46Spirit Temple", 'Twinrova', 0x7e, 0x8f), - 'IC': ("the \x05\x44Ice Cavern", None, 0x87, 0x92) + 'IC': ("the \x05\x44Ice Cavern", None, 0x87, 0x92), 'BW': ("the \x05\x45Bottom of the Well", None, 0xa2, 0xa5), 'ShT': ("the \x05\x45Shadow Temple", 'Bongo Bongo', 0x7f, 0xa3), } @@ -1371,7 +1371,7 @@ def write_save_table(rom): pass elif dungeon in ['BW', 'IC']: dungeon_name, boss_name, compass_id, map_id = dungeon_list[dungeon] - map_message = "\x13\x76\x08You found the \x05\x41Dungeon Map\x05\x40\x01for %s\x05\x40!\x01It\'s %s!\x09" % (dungeon_name, "masterful" if world.dungeon_mq[dungeon] else "ordinary") + map_message = "\x13\x76\x08You found the \x05\x41Dungeon Map\x05\x40\x01for %s\x05\x40!\x01It\'s %s!\x09" % (dungeon_name, "masterful" if world.dungeon_mq[dungeon] else "ordinary") if world.quest == 'mixed': update_message_by_id(messages, map_id, map_message) else: @@ -1480,11 +1480,6 @@ def write_save_table(rom): # actually write the save table to rom write_save_table(rom) - patch_files(world, rom) - - # re-seed for aesthetic effects. They shouldn't be affected by the generation seed - random.seed() - # patch music if world.background_music == 'random': randomize_music(rom) @@ -1521,6 +1516,9 @@ def write_save_table(rom): patch_files(rom, mq_scenes) + # re-seed for aesthetic effects. They shouldn't be affected by the generation seed + random.seed() + # patch tunic colors # Custom color tunic stuff Tunics = [] diff --git a/Regions.py b/Regions.py index 48dffae9d..a891b9676 100644 --- a/Regions.py +++ b/Regions.py @@ -450,7 +450,7 @@ def create_regions(world): ['Jabu Jabus Belly Exit', 'Jabu Jabus Belly Ceiling Switch']), create_dungeon_region( 'Jabu Jabus Belly Main', - ['Boomerang Chest', 'GS Jabu Jabu Water Switch Room'], + ['Boomerang Chest', 'GS Jabu Jabu Water Switch Room', 'Jabu Deku Scrub Deku Nuts'], ['Jabu Jabus Belly Retreat', 'Jabu Jabus Belly Tentacles']), create_dungeon_region( 'Jabu Jabus Belly Depths', @@ -677,7 +677,8 @@ def create_regions(world): ['Spirit Temple Exit', 'Spirit Temple Crawl Passage', 'Spirit Temple Silver Block']), create_dungeon_region( 'Child Spirit Temple', - ['Spirit Temple Child Left Chest', 'Spirit Temple Child Right Chest', 'GS Spirit Temple Metal Fence'], + ['Spirit Temple Child Left Chest', 'Spirit Temple Child Right Chest', 'GS Spirit Temple Metal Fence', + 'Spirit Temple Nut Crate'], ['Child Spirit Temple Climb']), create_dungeon_region( 'Child Spirit Temple Climb', @@ -791,7 +792,7 @@ def create_regions(world): 'Bottom of the Well Freestanding Key', 'Bottom of the Well Defeat Boss', 'Bottom of the Well Invisible Chest', 'Bottom of the Well Underwater Front Chest', 'Bottom of the Well Underwater Left Chest', 'Bottom of the Well Basement Chest', 'Bottom of the Well Locked Pits', 'Bottom of the Well Behind Right Grate', - 'GS Well West Inner Room', 'GS Well East Inner Room', 'GS Well Like Like Cage'], + 'GS Well West Inner Room', 'GS Well East Inner Room', 'GS Well Like Like Cage', 'Bottom of the Well Stick Pot'], ['Bottom of the Well Exit']) ]) diff --git a/Rules.py b/Rules.py index f9819ff02..fda3b1240 100644 --- a/Rules.py +++ b/Rules.py @@ -168,7 +168,7 @@ def global_rules(world): set_rule(world.get_location('Bombchu Bowling Bomb Bag'), lambda state: state.has_bombchus()) set_rule(world.get_location('Bombchu Bowling Piece of Heart'), lambda state: state.has_bombchus()) set_rule(world.get_location('Adult Shooting Gallery'), lambda state: state.can_use('Bow')) - set_rule(world.get_location('10 Big Poes'), lambda state: (not world.logic_no_big_poes) and (state.can_use() and state.has('Epona') and state.has_bottle() and state.guarantee_hint())) + set_rule(world.get_location('10 Big Poes'), lambda state: (not world.logic_no_big_poes) and (state.can_use('Bow') and state.has('Epona') and state.has_bottle() and state.guarantee_hint())) set_rule(world.get_location('Treasure Chest Game'), lambda state: state.can_use('Lens of Truth')) set_rule(world.get_entrance('Lost Woods Dive Warp'), lambda state: state.can_dive() and state.can_leave_forest()) set_rule(world.get_entrance('Zora River Dive Warp'), lambda state: state.can_dive()) @@ -314,7 +314,7 @@ def global_rules(world): set_rule(world.get_location('GS Lake Hylia Bean Patch'), lambda state: state.has_bottle() and state.can_child_attack()) set_rule(world.get_location('GS Lake Hylia Lab Wall'), lambda state: state.has('Boomerang') and state.nighttime()) set_rule(world.get_location('GS Lake Hylia Small Island'), lambda state: state.nighttime() and state.can_child_attack()) - set_rule(world.get_location('GS Lake Hylia Giant Tree'), lambda state: state.can_use('Longshot)) + set_rule(world.get_location('GS Lake Hylia Giant Tree'), lambda state: state.can_use('Longshot')) set_rule(world.get_location('GS Lab Underwater Crate'), lambda state: state.has('Iron Boots') and state.can_use('Hookshot')) set_rule(world.get_location('GS Gerudo Valley Small Bridge'), lambda state: state.has('Boomerang') and state.nighttime()) set_rule(world.get_location('GS Gerudo Valley Bean Patch'), lambda state: state.has_bottle() and state.can_child_attack()) diff --git a/version.py b/version.py index cf724af3b..8be346781 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.19.1 f.LUM' +__version__ = '2.19.2 f.LUM' From 57844a970e703931ab147104d6d6794f90111c12 Mon Sep 17 00:00:00 2001 From: Unknown Date: Tue, 18 Sep 2018 02:36:31 -0400 Subject: [PATCH 541/755] Fixing more bugs, correcting number of items --- Dungeons.py | 2 +- ItemList.py | 54 ++++++++++++++++++++++++++++++++++++----------------- Items.py | 3 +-- Patches.py | 6 +++--- Regions.py | 38 +++++++++++++++++++++++++++---------- Settings.py | 50 ++++++++++++++++++++++++------------------------- version.py | 2 +- 7 files changed, 96 insertions(+), 59 deletions(-) diff --git a/Dungeons.py b/Dungeons.py index bc7573b36..697a9b8e5 100644 --- a/Dungeons.py +++ b/Dungeons.py @@ -167,7 +167,7 @@ def make_dungeon(name, dungeon_regions_names, boss_key, small_keys, dungeon_item SpT = make_dungeon( 'Spirit Temple', ['Spirit Temple Lobby', 'Child Spirit Temple', 'Adult Spirit Temple', 'Spirit Temple Shared', - 'Lower Adult Spirit Temple', 'Spirit Temple Boss Area', 'Spirit Temple Outdoor Hands'], + 'Lower Adult Spirit Temple', 'Spirit Temple Boss Area', 'Mirror Shield Hand', 'Silver Gauntlets Hand'], ItemFactory('Boss Key (Spirit Temple)'), ItemFactory(['Small Key (Spirit Temple)'] * 7), ItemFactory(['Map (Spirit Temple)', 'Compass (Spirit Temple)'])) diff --git a/ItemList.py b/ItemList.py index af4fbc29d..070dc1f47 100644 --- a/ItemList.py +++ b/ItemList.py @@ -235,15 +235,6 @@ + ['Buy Fish']) vanilla_deku_scrubs = { - 'DC Deku Scrub Deku Nuts': 'Buy Deku Nut (5)', - 'DC Deku Scrub Deku Sticks': 'Buy Deku Stick (1)', - 'DC Deku Scrub Deku Seeds': 'Buy Deku Seeds (30)', - 'DC Deku Scrub Deku Shield': 'Buy Deku Shield', - 'Jabu Deku Scrub Deku Nuts': 'Buy Deku Nut (5)', - 'GC Deku Scrub Bombs': 'Buy Bombs (5) [35]', - 'GC Deku Scrub Arrows': 'Buy Arrows (30)', - 'GC Deku Scrub Red Potion': 'Buy Red Potion [30]', - 'GC Deku Scrub Green Potion': 'Buy Green Potion', 'ZR Grotto Deku Scrub Red Potion': 'Buy Red Potion [30]', 'ZR Grotto Deku Scrub Green Potion': 'Buy Green Potion', 'SFM Grotto Deku Scrub Red Potion': 'Buy Red Potion [30]', @@ -271,14 +262,12 @@ } deku_scrubs_items = ( - ['Deku Nuts (5)'] * 7 - + ['Rupees (20)'] * 2 # ['Deku Stick (1)'] * 2 - + ['Arrows (5)'] # ['Deku Seeds (30)'] - + ['Deku Shield'] - + ['Bombs (5)'] * 6 - + ['Arrows (30)'] * 6 - + ['Recovery Heart'] * 5 - + ['Rupees (5)'] * 5 # ['Green Potion'] + ['Deku Nuts (5)'] * 5 + + ['Deku Stick (1)'] + + ['Bombs (5)'] * 5 + + ['Arrows (30)'] * 5 + + ['Recovery Heart'] * 4 + + ['Rupees (5)'] * 4 # ['Green Potion'] ) rewardlist = [ @@ -683,8 +672,39 @@ def get_pool_core(world): pool.extend(shopsanity_rupees) if world.shuffle_scrubs: + if world.dungeon_mq['DT']: + pool.append('Deku Shield') + if world.dungeon_mq['DC']: + pool.extend(['Deku Stick (1)', 'Arrows (30)', 'Deku Shield', 'Recovery Heart']) + else: + pool.extend(['Deku Nuts (5)', 'Deku Stick (1)', 'Arrows (30)', 'Deku Shield']) + if not world.dungeon_mq['JB']: + pool.append('Deku Nuts (5)') + if world.dungeon_mq['GC']: + pool.append('Deku Nuts (5)') + pool.extend(['Bombs (5)', 'Arrows (30)', 'Recovery Heart', 'Rupees (5)']) pool.extend(deku_scrubs_items) else: + if world.dungeon_mq['DT']: + placed_items['DT MQ Deku Scrub Deku Shield'] = 'Buy Deku Shield' + if world.dungeon_mq['DC']: + placed_items['DC MQ Deku Scrub Deku Sticks'] = 'Buy Deku Stick (1)' + placed_items['DC MQ Deku Scrub Deku Seeds'] = 'Buy Deku Seeds (30)' + placed_items['DC MQ Deku Scrub Deku Shield'] = 'Buy Deku Shield' + placed_items['DC MQ Deku Scrub Red Potion'] = 'Buy Red Potion [30]' + else: + placed_items['DC Deku Scrub Deku Nuts'] = 'Buy Deku Nut (5)' + placed_items['DC Deku Scrub Deku Sticks'] = 'Buy Deku Stick (1)' + placed_items['DC Deku Scrub Deku Seeds'] = 'Buy Deku Seeds (30)' + placed_items['DC Deku Scrub Deku Shield'] = 'Buy Deku Shield' + if not world.dungeon_mq['JB']: + placed_items['Jabu Deku Scrub Deku Nuts'] = 'Buy Deku Nut (5)' + if world.dungeon_mq['GC']: + placed_items['GC MQ Deku Scrub Deku Nuts'] = 'Buy Deku Nut (5)' + placed_items['GC Deku Scrub Bombs'] = 'Buy Bombs (5) [35]' + placed_items['GC Deku Scrub Arrows'] = 'Buy Arrows (30)' + placed_items['GC Deku Scrub Red Potion'] = 'Buy Red Potion [30]' + placed_items['GC Deku Scrub Green Potion'] = 'Buy Green Potion' placed_items.update(vanilla_deku_scrubs) pool.extend(alwaysitems) diff --git a/Items.py b/Items.py index 534bcf16d..dc6714b36 100644 --- a/Items.py +++ b/Items.py @@ -14,8 +14,7 @@ def ItemFactory(items): advancement, priority, type, code, index, object, model = item_table[item] ret.append(Item(item, advancement, priority, type, code, index, object, model)) else: - logging.getLogger('').warning('Unknown Item: %s', item) - return None + raise KeyError('Unknown Item: %s', item) if singleton: return ret[0] diff --git a/Patches.py b/Patches.py index 83026733e..b0d86fd39 100644 --- a/Patches.py +++ b/Patches.py @@ -1344,7 +1344,7 @@ def write_save_table(rom): # give dungeon items the correct messages message_patch_for_dungeon_items(messages, shop_items, world) - if world.enhance_map_compass and world.shuffle_dungeon_items != 'off': + if world.shuffle_mapcompass == 'keysanity' and world.enhance_map_compass: reward_list = {'Kokiri Emerald': "\x05\x42Kokiri Emerald\x05\x40", 'Goron Ruby': "\x05\x41Goron Ruby\x05\x40", 'Zora Sapphire': "\x05\x43Zora Sapphire\x05\x40", @@ -1375,13 +1375,13 @@ def write_save_table(rom): if world.quest == 'mixed': update_message_by_id(messages, map_id, map_message) else: + dungeon_name, boss_name, compass_id, map_id = dungeon_list[dungeon] dungeon_reward = reward_list[world.get_location(boss_name).item.name] compass_message = "\x13\x75\x08You found the \x05\x41Compass\x05\x40\x01for %s\x05\x40!\x01It holds the %s!\x09" % (dungeon_name, dungeon_reward) update_message_by_id(messages, compass_id, compass_message) if world.quest == 'mixed': map_message = "\x13\x76\x08You found the \x05\x41Dungeon Map\x05\x40\x01for %s\x05\x40!\x01It\'s %s!\x09" % (dungeon_name, "masterful" if world.dungeon_mq[dungeon] else "ordinary") update_message_by_id(messages, map_id, map_message) - dungeon_name, boss_name, compass_id, map_id = dungeon_list[dungeon] else: # Set hints for boss reward shuffle @@ -2026,7 +2026,7 @@ def boss_reward_index(world, boss_name): def configure_dungeon_info(rom, world): mq_enable = world.quest == 'mixed' - mapcompass_keysanity = world.settings.shuffle_mapcompass == 'keysanity' + mapcompass_keysanity = world.settings.shuffle_mapcompass == 'keysanity' and world.settings.enhance_map_compass bosses = ['Queen Gohma', 'King Dodongo', 'Barinade', 'Phantom Ganon', 'Volvagia', 'Morpha', 'Twinrova', 'Bongo Bongo'] diff --git a/Regions.py b/Regions.py index a891b9676..474f3cfba 100644 --- a/Regions.py +++ b/Regions.py @@ -284,12 +284,6 @@ def create_regions(world): 'Forest Temple Entry Area', ['Sheik Forest Song', 'GS Lost Woods Above Stage', 'GS Sacred Forest Meadow'], ['Adult Meadow Exit', 'Forest Temple Entrance', 'Meadow Storms Grotto Adult Access']), - create_dungeon_region( - 'Ganons Castle Lobby', - ['GC Deku Scrub Bombs', 'GC Deku Scrub Arrows', 'GC Deku Scrub Red Potion', 'GC Deku Scrub Green Potion'], - ['Ganons Castle Exit', 'Ganons Castle Forest Trial', 'Ganons Castle Fire Trial', 'Ganons Castle Water Trial', - 'Ganons Castle Shadow Trial', 'Ganons Castle Spirit Trial', 'Ganons Castle Light Trial', - 'Ganons Castle Tower']), create_dungeon_region( 'Ganons Castle Tower', ['Ganons Tower Boss Key Chest', 'Ganon']), @@ -343,7 +337,7 @@ def create_regions(world): create_dungeon_region( 'Deku Tree Lobby', ['Deku Tree MQ Lobby Chest', 'Deku Tree MQ Slingshot Chest', 'Deku Tree MQ Slingshot Room Back Chest', - 'Deku Tree MQ Basement Chest', 'GS Deku Tree MQ Lobby'], + 'Deku Tree MQ Basement Chest', 'GS Deku Tree MQ Lobby', 'DT MQ Deku Scrub Deku Shield'], ['Deku Tree Exit', 'Deku Tree Compass Passage', 'Deku Tree Basement Path']), create_dungeon_region( 'Deku Tree Compass Room', @@ -385,7 +379,9 @@ def create_regions(world): ['Dodongos Cavern MQ Map Chest', 'Dodongos Cavern MQ Compass Chest', 'Dodongos Cavern MQ Larva Room Chest', 'Dodongos Cavern MQ Torch Puzzle Room Chest', 'Dodongos Cavern MQ Bomb Bag Chest', 'GS Dodongo\'s Cavern MQ Song of Time Block Room', 'GS Dodongo\'s Cavern MQ Larva Room', - 'GS Dodongo\'s Cavern MQ Lizalfos Room', 'GS Dodongo\'s Cavern MQ Scrub Room'], + 'GS Dodongo\'s Cavern MQ Lizalfos Room', 'GS Dodongo\'s Cavern MQ Scrub Room', + 'DC MQ Deku Scrub Deku Sticks', 'DC MQ Deku Scrub Deku Seeds', + 'DC MQ Deku Scrub Deku Shield', 'DC MQ Deku Scrub Red Potion'], ['Dodongos Cavern Bomb Drop']), create_dungeon_region( 'Dodongos Cavern Boss Area', @@ -641,7 +637,8 @@ def create_regions(world): ['Spirit Temple Exit', 'Spirit Temple Crawl Passage', 'Spirit Temple Ceiling Passage']), create_dungeon_region( 'Child Spirit Temple', - ['Spirit Temple MQ Child Left Chest', 'Spirit Temple MQ Map Chest', 'Spirit Temple MQ Silver Block Hallway Chest'], + ['Spirit Temple MQ Child Left Chest', 'Spirit Temple MQ Map Chest', 'Spirit Temple MQ Silver Block Hallway Chest', + 'Spirit Temple Nut Crate'], ['Child Spirit Temple to Shared']), create_dungeon_region( 'Adult Spirit Temple', @@ -779,7 +776,7 @@ def create_regions(world): 'Bottom of the Well', ['Bottom of the Well MQ Compass Chest', 'Bottom of the Well MQ Map Chest', 'Bottom of the Well MQ Lens Chest', 'Bottom of the Well MQ Dead Hand Freestanding Key', 'Bottom of the Well MQ East Inner Room Freestanding Key', - 'GS Well MQ Basement', 'GS Well MQ West Inner Room', 'GS Well MQ Coffin Room'], + 'GS Well MQ Basement', 'GS Well MQ West Inner Room', 'GS Well MQ Coffin Room', 'Bottom of the Well Stick Pot'], ['Bottom of the Well Exit']) ]) else: @@ -889,6 +886,13 @@ def create_regions(world): if world.dungeon_mq['GC']: world.regions.extend([ + create_dungeon_region( + 'Ganons Castle Lobby', + ['GC Deku Scrub Bombs', 'GC Deku Scrub Arrows', 'GC Deku Scrub Red Potion', 'GC Deku Scrub Green Potion', + 'GC MQ Deku Scrub Deku Nuts'], + ['Ganons Castle Exit', 'Ganons Castle Forest Trial', 'Ganons Castle Fire Trial', 'Ganons Castle Water Trial', + 'Ganons Castle Shadow Trial', 'Ganons Castle Spirit Trial', 'Ganons Castle Light Trial', + 'Ganons Castle Tower']), create_dungeon_region( 'Ganons Castle Forest Trial', ['Ganons Castle MQ Forest Trial First Chest', 'Ganons Castle MQ Forest Trial Second Chest', @@ -915,6 +919,12 @@ def create_regions(world): ]) else: world.regions.extend([ + create_dungeon_region( + 'Ganons Castle Lobby', + ['GC Deku Scrub Bombs', 'GC Deku Scrub Arrows', 'GC Deku Scrub Red Potion', 'GC Deku Scrub Green Potion'], + ['Ganons Castle Exit', 'Ganons Castle Forest Trial', 'Ganons Castle Fire Trial', 'Ganons Castle Water Trial', + 'Ganons Castle Shadow Trial', 'Ganons Castle Spirit Trial', 'Ganons Castle Light Trial', + 'Ganons Castle Tower']), create_dungeon_region( 'Ganons Castle Forest Trial', ['Ganons Castle Forest Trial Chest', 'Ganons Castle Forest Trial Clear']), @@ -1687,6 +1697,14 @@ def _create_region(name, type, locations=None, exits=None): 'GC Deku Scrub Arrows': (None, None, 0x33, 'NPC', 0x0D, 'Ganon\'s Castle'), 'GC Deku Scrub Red Potion': (None, None, 0x39, 'NPC', 0x0D, 'Ganon\'s Castle'), 'GC Deku Scrub Green Potion': (None, None, 0x3A, 'NPC', 0x0D, 'Ganon\'s Castle'), + + 'DT MQ Deku Scrub Deku Shield': (None, None, 0x34, 'NPC', 0x00, 'Deku Tree'), + 'DC MQ Deku Scrub Deku Sticks': (None, None, 0x31, 'NPC', 0x01, 'Dodongo\'s Cavern'), + 'DC MQ Deku Scrub Deku Seeds': (None, None, 0x33, 'NPC', 0x01, 'Dodongo\'s Cavern'), + 'DC MQ Deku Scrub Deku Shield': (None, None, 0x34, 'NPC', 0x01, 'Dodongo\'s Cavern'), + 'DC MQ Deku Scrub Red Potion': (None, None, 0x39, 'NPC', 0x01, 'Dodongo\'s Cavern'), + 'GC MQ Deku Scrub Deku Nuts': (None, None, 0x30, 'NPC', 0x0D, 'Ganon\'s Castle'), + 'HF Grotto Deku Scrub Piece of Heart': (None, None, 0x3E, 'GrottoNPC', 0x01, 'Hyrule Field'), 'ZR Grotto Deku Scrub Red Potion': (None, None, 0x39, 'GrottoNPC', 0x02, 'Zora\'s River'), 'ZR Grotto Deku Scrub Green Potion': (None, None, 0x3A, 'GrottoNPC', 0x02, 'Zora\'s River'), diff --git a/Settings.py b/Settings.py index 582338b82..15dd665a4 100644 --- a/Settings.py +++ b/Settings.py @@ -963,6 +963,31 @@ def parse_custom_navi_color(s): for a milder Keysanity experience. ''' }), + Setting_Info('enhance_map_compass', bool, 1, True, + { + 'help': '''\ + Gives the Map and Compass extra functionality. + Map will tell if a dungeon is vanilla or Master Quest. + Compass will tell what medallion or stone is within. + This setting will only activate these functions if the + other settings would make this useful information. + ''', + 'action': 'store_true' + }, + { + 'text': 'Maps and Compasses give information', + 'group': 'logic', + 'widget': 'Checkbutton', + 'default': 'checked', + 'tooltip':'''\ + Gives the Map and Compass extra functionality. + Map will tell if a dungeon is vanilla or Master Quest. + Compass will tell what medallion or stone is within. + This option is only available if shuffle 'Maps/Compasses' + is set to 'Anywhere' + ''', + 'dependency': lambda guivar: guivar['shuffle_mapcompass'].get() == 'Maps/Compasses: Anywhere', + }), Setting_Info('unlocked_ganondorf', bool, 1, True, { 'help': '''\ @@ -1054,7 +1079,6 @@ def parse_custom_navi_color(s): 'Mixed': Each dungeon will have a random chance to be in either form. ''', - 'dependency': lambda guivar: False, }), Setting_Info('logic_skulltulas', int, 3, True, { @@ -1495,30 +1519,6 @@ def parse_custom_navi_color(s): not be as cryptic if this option is enabled. ''' }), - Setting_Info('enhance_map_compass', bool, 1, True, - { - 'help': '''\ - Gives the Map and Compass extra functionality. - Map will tell if a dungeon is vanilla or Master Quest. - Compass will tell what medallion or stone is within. - This setting will only activate these functions if the - other settings would make this useful information. - ''', - 'action': 'store_true' - }, - { - 'text': 'Maps and Compasses give information', - 'group': 'other', - 'widget': 'Checkbutton', - 'default': 'unchecked', - 'tooltip':'''\ - Gives the Map and Compass extra functionality. - Map will tell if a dungeon is vanilla or Master Quest. - Compass will tell what medallion or stone is within. - This setting will only activate these functions if the - other settings would make this useful information. - ''' - }), Setting_Info('hints', str, 2, True, { 'default': 'none', diff --git a/version.py b/version.py index 8be346781..b5e230139 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.19.2 f.LUM' +__version__ = '2.19.3 f.LUM' From 994a522135a7847a396936b6ebd03fca5c72da2b Mon Sep 17 00:00:00 2001 From: Tyrus <42982810+Tyrusss@users.noreply.github.com> Date: Tue, 18 Sep 2018 07:40:11 +0100 Subject: [PATCH 542/755] Fixed typo in shopsanity tooltip --- Settings.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Settings.py b/Settings.py index 9f6665c5b..e60a24f97 100644 --- a/Settings.py +++ b/Settings.py @@ -823,7 +823,7 @@ def parse_custom_navi_color(s): (X Items): Shops have X random non-shop (Special Deal!) items. They will always be on the left side. This means that every shop will have more - possible item locations. So +2 means 2 items + possible item locations. So, +2 means 2 items per shop. (Random): Each shop will have a random number @@ -836,7 +836,7 @@ def parse_custom_navi_color(s): as a child you cannot buy 200/300 rupee tunics, but you can buy non-shop tunics. - non-shop bombchus will unlock the chu slot + Non-shop bombchus will unlock the chu slot in your inventory, which is needed to buy normal chu refills. ''' From 7fbd3969d31971dbda9bb14bf147bc8eba78ac3f Mon Sep 17 00:00:00 2001 From: Unknown Date: Tue, 18 Sep 2018 02:50:42 -0400 Subject: [PATCH 543/755] Added missing functions to MQ from merge --- MQ.py | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ version.py | 2 +- 2 files changed, 70 insertions(+), 1 deletion(-) diff --git a/MQ.py b/MQ.py index dec79efad..6d64a1693 100644 --- a/MQ.py +++ b/MQ.py @@ -215,6 +215,75 @@ def write_data(self, rom:LocalRom): cur += 0x08 + def write_map_data(self, rom:LocalRom): + if self.id >= 10: + return + + # write floormap + floormap_indices = 0xB6C934 + floormap_vrom = 0xBC7E00 + floormap_index = rom.read_int16(floormap_indices + (self.id * 2)) + floormap_index //= 2 # game uses texture index, where two textures are used per floor + + cur = floormap_vrom + (floormap_index * 0x1EC) + for floormap in self.floormaps: + for icon in floormap: + Icon.write_to_floormap(icon, rom, cur) + cur += 0xA4 + + + # fixes jabu jabu floor B1 having no chest data + if self.id == 2: + cur = floormap_vrom + (0x08 * 0x1EC + 4) + kaleido_scope_chest_verts = 0x803A3DA0 # hax, should be vram 0x8082EA00 + rom.write_int32s(cur, [0x17, kaleido_scope_chest_verts, 0x04]) + + # write minimaps + map_mark_vrom = 0xBF40D0 + map_mark_vram = 0x808567F0 + map_mark_array_vram = 0x8085D2DC # ptr array in map_mark_data to minimap "marks" + + array_vrom = map_mark_array_vram - map_mark_vram + map_mark_vrom + map_mark_scene_vram = rom.read_int32(self.id * 4 + array_vrom) + mark_vrom = map_mark_scene_vram - map_mark_vram + map_mark_vrom + + cur = mark_vrom + for minimap in self.minimaps: + for icon in minimap: + Icon.write_to_minimap(icon, rom, cur) + cur += 0x26 + + + def patch_mesh(self, rom:LocalRom, mesh:CollisionMesh): + start = self.file.start + + final_cams = [] + + # build final camera data + for cam in self.coldelta.cams: + data = cam['Data'] + pos = cam['PositionIndex'] + if pos < 0: + final_cams.append((data, 0)) + else: + addr = start + (mesh.camera_data_addr & 0xFFFFFF) + seg_off = rom.read_int32(addr + (pos * 8) + 4) + final_cams.append((data, seg_off)) + + types_move_addr = 0 + + # if data can't fit within the old mesh space, append camera data + if self.coldelta.is_larger: + types_move_addr = mesh.camera_data_addr + + # append to end of file + self.write_cam_data(rom, self.file.end, final_cams) + mesh.camera_data_addr = get_segment_address(2, self.file.end - self.file.start) + self.file.end += len(final_cams) * 8 + + else: + types_move_addr = mesh.camera_data_addr + (len(final_cams) * 8) + # append in place addr = self.file.start + (mesh.camera_data_addr & 0xFFFFFF) self.write_cam_data(rom, addr, final_cams) diff --git a/version.py b/version.py index b5e230139..ed70af4cb 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.19.3 f.LUM' +__version__ = '2.19.4 f.LUM' From 6565c633c82484815d951c4b85069c2a1a545834 Mon Sep 17 00:00:00 2001 From: Tyrus <42982810+Tyrusss@users.noreply.github.com> Date: Tue, 18 Sep 2018 08:04:09 +0100 Subject: [PATCH 544/755] Fixed more typos --- Settings.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Settings.py b/Settings.py index e60a24f97..709bea0d0 100644 --- a/Settings.py +++ b/Settings.py @@ -341,7 +341,7 @@ def parse_custom_navi_color(s): 'Start with Gerudo Card': 'open', }, 'tooltip':'''\ - 'Rescure one carpenter': The carpenter rescue sequence + 'Rescue one carpenter': The carpenter rescue sequence is much faster and doesn't affect logic much. 'Start with Gerudo Card': skips the rescue entirely, @@ -439,8 +439,8 @@ def parse_custom_navi_color(s): Bombchu Bowling opens with bombchus. Bombchus are available at Kokiri Shop - and the Bazaar. Bombchus refills cannot - be bought until Bomchus have been + and the Bazaar. Bombchu refills cannot + be bought until Bombchus have been obtained. ''', }), @@ -737,7 +737,7 @@ def parse_custom_navi_color(s): 'widget': 'Checkbutton', 'default': 'checked', 'tooltip':'''\ - Songs can appear anywhere not just Vanilla + Songs can appear anywhere, not just Vanilla song locations. This significantly reduces song placement bias and makes the songs more evenly distributed. @@ -782,7 +782,7 @@ def parse_custom_navi_color(s): 'tooltip':'''\ Every Deku Salescrub will give a random item. This adds 33 new - item locations. Scrubs prices + item locations. The Scrubs' prices are all reduced to 10 Rupees. ''' }), @@ -1112,7 +1112,7 @@ def parse_custom_navi_color(s): 'widget': 'Checkbutton', 'default': 'unchecked', 'tooltip':'''\ - Big Poes reward is time consuming + Hunting Big Poes is time consuming ''' }), Setting_Info('logic_no_child_fishing', bool, 1, True, @@ -1442,7 +1442,7 @@ def parse_custom_navi_color(s): 'default': 'unchecked', 'tooltip':'''\ Will need to memorize a new set of songs. - Can be silly, but difficult. Song are + Can be silly, but difficult. Songs are generally sensible, and warp songs are typically more difficult. ''' @@ -1471,8 +1471,8 @@ def parse_custom_navi_color(s): 'default': 'unchecked', 'tooltip':'''\ Chests will be large if they contain a major - item and small if not. Allows skipping - chests if they are small. However skipping + item, and small if they don't. Allows skipping + chests if they are small. However, skipping small chests will mean having low health, ammo, and rupees, so doing so is a risk. ''' From 52ec0a85ee9c2f4843733bddd0d05cb4d4877cc9 Mon Sep 17 00:00:00 2001 From: Tyrus <42982810+Tyrusss@users.noreply.github.com> Date: Tue, 18 Sep 2018 09:15:20 +0100 Subject: [PATCH 545/755] Removed comma --- Settings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Settings.py b/Settings.py index 709bea0d0..4c35ac003 100644 --- a/Settings.py +++ b/Settings.py @@ -823,7 +823,7 @@ def parse_custom_navi_color(s): (X Items): Shops have X random non-shop (Special Deal!) items. They will always be on the left side. This means that every shop will have more - possible item locations. So, +2 means 2 items + possible item locations. So +2 means 2 items per shop. (Random): Each shop will have a random number From f1547bad620230d7af976fd4c9a44472b5dd9f4e Mon Sep 17 00:00:00 2001 From: Unknown Date: Tue, 18 Sep 2018 13:54:10 -0400 Subject: [PATCH 546/755] Patch MQ data before functions scan for actors in rom (Issue#148) --- Patches.py | 63 +++++++++++++++++++++++++++--------------------------- version.py | 2 +- 2 files changed, 32 insertions(+), 33 deletions(-) diff --git a/Patches.py b/Patches.py index b0d86fd39..6fe825b4f 100644 --- a/Patches.py +++ b/Patches.py @@ -13,7 +13,7 @@ from Items import ItemFactory, item_data from Messages import * from OcarinaSongs import Song, replace_songs, subsong -from MQ import patch_files +from MQ import patch_files, File, update_dmadata, insert_space, add_relocations TunicColors = { "Custom Color": [0, 0, 0], @@ -1007,8 +1007,37 @@ def write_save_table(rom): # change the exit at child/day crawlspace to the end of zelda's goddess cutscene rom.write_bytes(0x21F60DE, [0x05, 0xF0]) + # patch mq scenes + mq_scenes = [] + if world.dungeon_mq['DT']: + mq_scenes.append(0) + if world.dungeon_mq['DC']: + mq_scenes.append(1) + if world.dungeon_mq['JB']: + mq_scenes.append(2) + if world.dungeon_mq['FoT']: + mq_scenes.append(3) + if world.dungeon_mq['FiT']: + mq_scenes.append(4) + if world.dungeon_mq['WT']: + mq_scenes.append(5) + if world.dungeon_mq['SpT']: + mq_scenes.append(6) + if world.dungeon_mq['ShT']: + mq_scenes.append(7) + if world.dungeon_mq['BW']: + mq_scenes.append(8) + if world.dungeon_mq['IC']: + mq_scenes.append(9) + # Scene 10 has no layout changes, so it doesn't need to be patched + if world.dungeon_mq['GTG']: + mq_scenes.append(11) + if world.dungeon_mq['GC']: + mq_scenes.append(13) + + patch_files(rom, mq_scenes) + ### Load Shop File - from MQ import File, update_dmadata, insert_space, add_relocations # Move shop actor file to free space shop_item_file = File({ 'Name':'En_GirlA', @@ -1486,36 +1515,6 @@ def write_save_table(rom): elif world.background_music == 'off': disable_music(rom) - # patch mq scenes - mq_scenes = [] - if world.dungeon_mq['DT']: - mq_scenes.append(0) - if world.dungeon_mq['DC']: - mq_scenes.append(1) - if world.dungeon_mq['JB']: - mq_scenes.append(2) - if world.dungeon_mq['FoT']: - mq_scenes.append(3) - if world.dungeon_mq['FiT']: - mq_scenes.append(4) - if world.dungeon_mq['WT']: - mq_scenes.append(5) - if world.dungeon_mq['SpT']: - mq_scenes.append(6) - if world.dungeon_mq['ShT']: - mq_scenes.append(7) - if world.dungeon_mq['BW']: - mq_scenes.append(8) - if world.dungeon_mq['IC']: - mq_scenes.append(9) - # Scene 10 has no layout changes, so it doesn't need to be patched - if world.dungeon_mq['GTG']: - mq_scenes.append(11) - if world.dungeon_mq['GC']: - mq_scenes.append(13) - - patch_files(rom, mq_scenes) - # re-seed for aesthetic effects. They shouldn't be affected by the generation seed random.seed() diff --git a/version.py b/version.py index ed70af4cb..a259a82e7 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.19.4 f.LUM' +__version__ = '2.19.5 f.LUM' From 98aacf9cc511884c983bfeec5b66e73f69cde8ba Mon Sep 17 00:00:00 2001 From: Dennis Date: Wed, 19 Sep 2018 08:50:14 +0200 Subject: [PATCH 547/755] added adult_trade_option --- ItemList.py | 18 +++++++++++++++--- Settings.py | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+), 3 deletions(-) diff --git a/ItemList.py b/ItemList.py index 9be5cd11f..e57e73561 100644 --- a/ItemList.py +++ b/ItemList.py @@ -350,7 +350,7 @@ 'GS Spirit Temple Boulder Room', 'GS Spirit Temple Lobby']) -tradeitems = [ +tradeitems = ( 'Pocket Egg', 'Pocket Cucco', 'Cojiro', @@ -360,7 +360,19 @@ 'Prescription', 'Eyeball Frog', 'Eyedrops', - 'Claim Check'] + 'Claim Check') + +tradeitemoptions = ( + 'pocket_egg', + 'pocket_cucco', + 'cojiro', + 'odd_mushroom', + 'poachers_saw', + 'broken_sword', + 'prescription', + 'eyeball_frog', + 'eyedrops', + 'claim_check') eventlocations = { @@ -548,7 +560,7 @@ def get_pool_core(world): for _ in range(normal_bottle_count): bottle = random.choice(normal_bottles) pool.append(bottle) - tradeitem = random.choice(tradeitems) + tradeitem = random.choice(tradeitems[tradeitemoptions.index(world.logic_earliest_adult_trade):]) pool.append(tradeitem) pool.extend(songlist) diff --git a/Settings.py b/Settings.py index aac743811..a72720b9d 100644 --- a/Settings.py +++ b/Settings.py @@ -1234,6 +1234,56 @@ def parse_custom_navi_color(s): Racing twice is repetitive. ''' }), + Setting_Info('logic_earliest_adult_trade', str, 2, True, + { + 'default': 'pocket_egg', + 'const': 'always', + 'nargs': '?', + 'choices': [ + 'pocket_egg', + 'pocket_cucco', + 'cojiro', + 'odd_mushroom', + 'poachers_saw', + 'broken_sword', + 'prescription', + 'eyeball_frog', + 'eyedrops', + 'claim_check'], + 'help': '''\ + Select the earliest item that will appear in the adult trade sequence: + 'pocket_egg' + 'pocket_cucco' + 'cojiro' + 'odd_mushroom' + 'poachers_saw' + 'broken_sword' + 'prescription' + 'eyeball_frog' + 'eyedrops' + 'claim_check' + ''' + }, + { + 'text': 'Adult Trade Sequence', + 'group': 'rewards', + 'widget': 'Combobox', + 'default': 'Pocket Egg', + 'options': { + 'Pocket Egg': 'pocket_egg', + 'Pocket Cucco': 'pocket_cucco', + 'Cojiro': 'cojiro', + 'Odd Mushroom': 'odd_mushroom', + 'Poachers Saw': 'poachers_saw', + 'Broken Sword': 'broken_sword', + 'Prescription': 'prescription', + 'Eyeball Frog': 'eyeball_frog', + 'Eyedrops': 'eyedrops', + 'Claim Check': 'claim_check'}, + 'tooltip':'''\ + Select the earliest item that will appear in the adult trade sequence. + ''' + }), Setting_Info('logic_man_on_roof', bool, 1, True, { 'help': '''\ From 76c762249db02483c15f98e04205f63546b22312 Mon Sep 17 00:00:00 2001 From: mzxrules Date: Wed, 19 Sep 2018 12:12:22 -0400 Subject: [PATCH 548/755] Scarecrow Song verification occurs sooner, no longer handled by Patches.py --- Main.py | 5 +++++ OcarinaSongs.py | 57 ++++++++++++++++++++++++++++++++++++++++++++++++- Patches.py | 49 ++---------------------------------------- 3 files changed, 63 insertions(+), 48 deletions(-) diff --git a/Main.py b/Main.py index 70de018e8..7d57033fa 100644 --- a/Main.py +++ b/Main.py @@ -21,6 +21,7 @@ from Hints import buildGossipHints from Utils import default_output_path from version import __version__ +from OcarinaSongs import verify_scarecrow_song_str class dummy_window(): def __init__(self): @@ -36,6 +37,10 @@ def main(settings, window=dummy_window()): logger = logging.getLogger('') + # verify that the settings are valid + if settings.free_scarecrow: + verify_scarecrow_song_str(settings.scarecrow_song, settings.ocarina_songs) + # initialize the world worlds = [] diff --git a/OcarinaSongs.py b/OcarinaSongs.py index dc1a23670..f0c2b921f 100644 --- a/OcarinaSongs.py +++ b/OcarinaSongs.py @@ -320,4 +320,59 @@ def replace_songs(rom, scarecrow_song=None): # write the songs to the playback table song_offset = PLAYBACK_START + song_order[index] * PLAYBACK_LENGTH - rom.write_bytes(song_offset, song.playback_data) \ No newline at end of file + rom.write_bytes(song_offset, song.playback_data) + + +original_songs = [ + 'LURLUR', + 'ULRULR', + 'DRLDRL', + 'RDURDU', + 'RADRAD', + 'ADUADU', + 'AULRLR', + 'DADALDLD', + 'ADRRL', + 'ADALDA', + 'LRRALRD', + 'URURLU' +] + +note_map = { + 'A': 0, + 'D': 1, + 'R': 2, + 'L': 3, + 'U': 4 +} + +def verify_scarecrow_song_str(scarecrow_song_str:str, randomize_ocarina_songs:bool): + + if len(scarecrow_song_str) != 8: + raise Exception('Scarecrow Song must be 8 notes long') + + if len(set(scarecrow_song_str.upper())) == 1: + raise Exception('Scarecrow Song must contain at least two different notes') + + scarecrow_song = str_to_song(scarecrow_song_str) + + if not randomize_ocarina_songs: + for original_song in original_songs: + song_notes = [] + for c in original_song: + song_notes.append(note_map[c]) + song = Song(activation=song_notes) + + if subsong(scarecrow_song, song): + raise Exception('You may not have the Scarecrow Song contain an existing song') + + return scarecrow_song + +def str_to_song(song:str): + notes = [] + for c in song.upper(): + if c not in note_map: + raise Exception('Invalid note %s. Valid notes are A, D, R, L, U' % c) + + notes.append(note_map[c]) + return Song(activation=notes) \ No newline at end of file diff --git a/Patches.py b/Patches.py index 6fe825b4f..f16d89e1d 100644 --- a/Patches.py +++ b/Patches.py @@ -12,7 +12,7 @@ from Utils import local_path, default_output_path from Items import ItemFactory, item_data from Messages import * -from OcarinaSongs import Song, replace_songs, subsong +from OcarinaSongs import Song, str_to_song, replace_songs from MQ import patch_files, File, update_dmadata, insert_space, add_relocations TunicColors = { @@ -1452,52 +1452,7 @@ def write_save_table(rom): scarecrow_song = None if world.free_scarecrow: - original_songs = [ - 'LURLUR', - 'ULRULR', - 'DRLDRL', - 'RDURDU', - 'RADRAD', - 'ADUADU', - 'AULRLR', - 'DADALDLD', - 'ADRRL', - 'ADALDA', - 'LRRALRD', - 'URURLU' - ] - - note_map = { - 'A': 0, - 'D': 1, - 'R': 2, - 'L': 3, - 'U': 4 - } - - if len(world.scarecrow_song) != 8: - raise Exception('Scarecrow Song must be 8 notes long') - - if len(set(world.scarecrow_song.upper())) == 1: - raise Exception('Scarecrow Song must contain at least two different notes') - - notes = [] - for c in world.scarecrow_song.upper(): - if c not in note_map: - raise Exception('Invalid note %s. Valid notes are A, D, R, L, U' % c) - - notes.append(note_map[c]) - scarecrow_song = Song(activation=notes) - - if not world.ocarina_songs: - for original_song in original_songs: - song_notes = [] - for c in original_song: - song_notes.append(note_map[c]) - song = Song(activation=song_notes) - - if subsong(scarecrow_song, song): - raise Exception('You may not have the Scarecrow Song contain an existing song') + scarecrow_song = str_to_song(world.scarecrow_song) #verified valid string in Main.py write_bits_to_save(0x0EE6, 0x10) # Played song as adult write_byte_to_save(0x12C5, 0x01) # Song is remembered From ca76ed17e58bcbbc9372bdbd10fbea02862ee2b4 Mon Sep 17 00:00:00 2001 From: Tyrus <42982810+Tyrusss@users.noreply.github.com> Date: Wed, 19 Sep 2018 19:54:40 +0100 Subject: [PATCH 549/755] Clarified the clarification --- Settings.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Settings.py b/Settings.py index 4c35ac003..a72382280 100644 --- a/Settings.py +++ b/Settings.py @@ -837,8 +837,9 @@ def parse_custom_navi_color(s): tunics, but you can buy non-shop tunics. Non-shop bombchus will unlock the chu slot - in your inventory, which is needed to buy - normal chu refills. + in your inventory, which, if bombchus are in + logic, is needed to buy chu refills. If not in + logic, the bomb bag is required. ''' }), Setting_Info('shuffle_mapcompass', str, 2, True, From e8c9ba156125c974bcde36348f6f77f29dcedfaf Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 19 Sep 2018 23:57:17 -0400 Subject: [PATCH 550/755] Fix some MQ hints to match the new formatting --- HintList.py | 43 ++++++++++++++++++++++++------------------- version.py | 2 +- 2 files changed, 25 insertions(+), 20 deletions(-) diff --git a/HintList.py b/HintList.py index 7c911ce6b..c7a32ac96 100644 --- a/HintList.py +++ b/HintList.py @@ -158,6 +158,7 @@ def getHintGroup(group, world): '30 Gold Skulltulla Reward': ("slaying #30 Gold Skulltulas# reveals", None, 'alwaysLocation'), '40 Gold Skulltulla Reward': ("slaying #40 Gold Skulltulas# reveals", None, 'alwaysLocation'), '50 Gold Skulltulla Reward': ("slaying #50 Gold Skulltulas# reveals", None, 'alwaysLocation'), + 'Ocarina of Time': ("They say the #treasure thrown by Princess Zelda# is", None, 'alwaysLocation'), 'Song from Ocarina of Time': ("the #Ocarina of Time# teaches", None, 'alwaysLocation'), 'Biggoron': ("#Biggoron# crafts", None, 'alwaysLocation'), 'Child Fishing': ("#fishing in youth# bestows", None, 'location'), @@ -169,23 +170,35 @@ def getHintGroup(group, world): 'Lake Hylia Sun': (["staring into #the sun# grants", "acts of #solar aggression# are punished with"], "shooting #the sun# grants", 'location'), 'Heart Piece Grave Chest': ("in a grave playing #Sun's Song# spawns", None, 'location'), 'Goron City Leftmost Maze Chest': ("in #Goron City# the hammer unlocks", None, 'location'), - 'Chest Above King Dodongo': ("the chest above the #Infernal Dinosaur# contains", "the chest above #King Dodongo# contains", 'location'), - 'Forest Temple Floormaster Chest': ("#Deep in the forest#, shadows guard a chest containing", "a Floormaster in #Forest Temple# guards", 'location'), + 'GS Hyrule Castle Grotto': ("a #storm near the castle# reveals", None, 'location'), + 'GS Hyrule Field Near Gerudo Valley': ("buried near near #the valley# a spider holds", None, 'location'), + 'GS Zora\'s Fountain Hidden Cave': ("a spider high above the #icy waters# holds", None, 'location'), + 'Forest Temple Floormaster Chest': ("deep in #the forest#, shadows guard a chest containing", "a Floormaster in #Forest Temple# guards", 'location'), 'Fire Temple Scarecrow Chest': ("high in the #Fire Temple#, Pierre hid", None, 'location'), 'Fire Temple Megaton Hammer Chest': ("high in the #Fire Temple#, Fire Dancers hid", None, 'location'), - 'Water Temple River Chest': ("#deep under the lake#, beyond the currents, hides", "the #Water Temple River Chest# holds", 'location'), - 'Water Temple Boss Key Chest': ("#deep under the lake#, the gilded chest contains", "the #Water Temple Gold Chest# holds", 'location'), + 'Fire Temple MQ West Tower Top Chest': ("high in the #Fire Temple#, Fire Dancers hid", None, 'location'), + 'Water Temple River Chest': ("deep under #the lake#, beyond the currents, hides", "the #Water Temple River Chest# holds", 'location'), + 'Water Temple Boss Key Chest': ("deep under #the lake#, the gilded chest contains", "the #Water Temple Gold Chest# holds", 'location'), + 'Water Temple MQ Boss Key Chest': ("deep under #the lake#, the gilded chest contains", "the #Water Temple Gold Chest# holds", 'location'), + 'Water Temple MQ Freestanding Key': ("deep under #the lake#, the apparent key is really", None, 'location'), + 'GS Water Temple MQ North Basement': ("deep under #the lake#, the locked spider holds", None, 'location'), 'Gerudo Training Grounds Underwater Silver Rupee Chest': ("those who seek #sunken silver rupees# will find", None, 'location'), - 'Gerudo Training Grounds Maze Path Final Chest': ("past #all the locked doors# is", None, 'location'), + 'Gerudo Training Grounds MQ Underwater Silver Rupee Chest': ("those who seek #sunken silver rupees# will find", None, 'location'), + 'Gerudo Training Grounds Maze Path Final Chest': ("the final prize of #the thieves\' training# is", None, 'location'), + 'Gerudo Training Grounds MQ Ice Arrows Chest': ("the final prize of #the thieves\' training# is", None, 'location'), 'Bottom of the Well Defeat Boss': (["#Dead Hand# holds", "draining the water reveals #a monster# guarding"], None, 'location'), + 'Bottom of the Well MQ Compass Chest': (["#Dead Hand# holds", "draining the water reveals #a monster# guarding"], None, 'location'), 'Silver Gauntlets Chest': ("upon the #Colossus's right hand# is", "upon the #Colossus's child hand# is", 'location'), 'Mirror Shield Chest': ("upon the #Colossus's left hand# is", "upon the #Colossus's adult hand# is", 'location'), + 'Spirit Temple MQ Child Center Chest': ("within #the Colossus# a temporal paradox yields", None, 'location'), + 'Spirit Temple MQ Lower Adult Right Chest': ("within #the Colossus# a symphony yields", None, 'location'), + 'GS Spirit Temple MQ Lower Adult Right': ("within #the Colossus# a spider\'s symphony yields", None, 'location'), 'Shadow Temple Hidden Floormaster Chest': (["shadows in an #invisible maze# guard", "after a free #boat ride# comes"], "a Floormaster in #Shadow Temple# guards", 'location'), + 'Shadow Temple MQ Bomb Flower Chest': (["shadows in an #invisible maze# guard", "after a free #boat ride# comes"], "a Floormaster in #Shadow Temple# guards", 'location'), 'Haunted Wasteland Structure Chest': (["deep in the #Wasteland# is", "beneath #the sands# lies"], None, 'location'), 'Composer Grave Chest': (["in the #Composers' Grave#, darkness hides", "the #Composer Brothers# hid"], None, 'location'), 'Song from Composer Grave': (["in the #Composers' Grave#, Redead guard", "the #Composer Brothers# wrote"], None, 'location'), - 'Song at Windmill': (["#the windmill# echoes with", "#Guru-guru# is driven mad by"], None, 'location'), - 'Sheik Forest Song': ("#deep in the forest# Sheik teaches", None, 'location'), + 'Sheik Forest Song': ("deep in #the forest# Sheik teaches", None, 'location'), 'Sheik at Temple': ("Sheik waits at a #monument to time# to teach", None, 'location'), 'Sheik in Crater': ("the #crater's melody# is", None, 'location'), 'Sheik in Ice Cavern': ("the #frozen cavern# echoes with", None, 'location'), @@ -195,18 +208,8 @@ def getHintGroup(group, world): 'Colossus Freestanding PoH': ("riding a #beanstalk in the desert# leads to", None, 'location'), 'DM Crater Volcano Freestanding PoH': ("riding a #beanstalk in the crater# leads to", None, 'location'), 'Goron City Pot Freestanding PoH': ("spinning #Goron pottery# contains", None, 'location'), - 'Deku Tree MQ After Spinning Log Chest': ("Within a tree, a temporal stone&contains", None, 'location'), - 'GS Jabu Jabu MQ Invisible Enemies Room': ("In the belly of a deity, a spider&surrounded by shadows&holds", None, 'location'), - 'Fire Temple MQ West Tower Top Chest': ("They say that the highest&chest in the crater&holds", None, 'location'), - 'Water Temple MQ Boss Key Chest': ("Deep under the lake,&the gilded chest&contains", None, 'location'), - 'Water Temple MQ Freestanding Key': ("Deep under the lake,&the apparent key&is really", None, 'location'), - 'GS Water Temple MQ North Basement': ("Deep under the lake,&the locked spider&holds", None, 'location'), - 'Gerudo Training Grounds MQ Underwater Silver Rupee Chest': ("They say those who seek&sunken silver rupees will&find", None, 'location'), - 'Gerudo Training Grounds MQ Ice Arrows Chest': ("They say the final prize&of the thieves\' training&is", None, 'location'), - 'Spirit Temple MQ Child Center Chest': ("Within the Colossus&a temporal paradox&yields", None, 'location'), - 'Spirit Temple MQ Lower Adult Right Chest': ("Within the Colossus&a symphony&yields", None, 'location'), - 'GS Spirit Temple MQ Lower Adult Right': ("Within the Colossus&a spider\'s symphony&yields", None, 'location'), - 'Shadow Temple MQ Bomb Flower Chest': ("They say in a maze&guarded by shadows&hides", None, 'location'), + 'Deku Tree MQ After Spinning Log Chest': ("within #a tree#, a temporal stone contains", None, 'location'), + 'GS Jabu Jabu MQ Invisible Enemies Room': ("in the #belly of a deity#, a spider surrounded by shadows holds", None, 'location'), '1001': ("Ganondorf 2020!", None, 'junkHint'), '1002': ("They say that monarchy is a terrible system of governance.", None, 'junkHint'), @@ -353,6 +356,8 @@ def hintExclusions(world): exclusions.append('Gerudo Training Grounds MQ Ice Arrows Chest') if world.dungeon_mq['BW']: exclusions.append('Bottom of the Well Defeat Boss') + else: + exclusions.append('Bottom of the Well MQ Compass Chest') if not world.dungeon_mq['SpT']: exclusions.append('Spirit Temple MQ Child Center Chest') exclusions.append('Spirit Temple MQ Lower Adult Right Chest') diff --git a/version.py b/version.py index a259a82e7..bc4c9fff3 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.19.5 f.LUM' +__version__ = '2.19.6 f.LUM' From 90fca6d35524435c62949ba3d0a0cefdf5cff142 Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 19 Sep 2018 23:58:54 -0400 Subject: [PATCH 551/755] some State rules now use the ammo check rules Simplified zorathawed by moving blue fire rules into has_blue_fire --- BaseClasses.py | 22 ++++++++++------------ version.py | 2 +- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index e09f128a3..bdc72afc9 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -373,7 +373,8 @@ def has_blue_fire(self): return self.has_bottle() and \ (self.can_reach('Ice Cavern') or self.can_reach('Ganons Castle Water Trial') - or self.has('Buy Blue Fire')) + or self.has('Buy Blue Fire') + or (self.world.dungeon_mq['GTG'] and self.can_reach('Gerudo Training Grounds Stalfos Room'))) def has_ocarina(self): return (self.has('Ocarina') or self.has("Fairy Ocarina") or self.has("Ocarina of Time")) @@ -390,7 +391,7 @@ def can_use(self, item): elif item in adult_items: return self.has(item) and self.is_adult() elif item in magic_arrows: - return self.has(item) and self.is_adult() and self.has('Bow') and self.has('Magic Meter') + return self.has(item) and self.is_adult() and self.has_bow() and self.has('Magic Meter') elif item == 'Hookshot': return self.has('Progressive Hookshot') and self.is_adult() elif item == 'Longshot': @@ -440,13 +441,13 @@ def can_see_with_lens(self): def has_projectile(self, age='either'): if age == 'child': - return self.has_explosives or self.has('Slingshot') or self.has('Boomerang') + return self.has_explosives() or self.has_slingshot() or self.has('Boomerang') elif age == 'adult': - return self.has_explosives or self.has('Bow') or self.has('Progressive Hookshot') + return self.has_explosives() or self.has_bow() or self.has('Progressive Hookshot') elif age == 'both': - return self.has_explosives or ((self.has('Bow') or self.has('Progressive Hookshot')) and (self.has('Slingshot') or self.has('Boomerang'))) + return self.has_explosives() or ((self.has_bow() or self.has('Progressive Hookshot')) and (self.has_slingshot() or self.has('Boomerang'))) else: - return self.has_explosives or ((self.has('Bow') or self.has('Progressive Hookshot')) or (self.has('Slingshot') or self.has('Boomerang'))) + return self.has_explosives() or ((self.has_bow() or self.has('Progressive Hookshot')) or (self.has_slingshot() or self.has('Boomerang'))) def has_GoronTunic(self): return (self.has('Goron Tunic') or self.has('Buy Goron Tunic')) @@ -458,12 +459,9 @@ def can_leave_forest(self): return self.world.open_forest or self.can_reach(self.world.get_location('Queen Gohma')) def can_finish_adult_trades(self): - if self.world.dungeon_mq['GTG']: - zora_thawed = self.has_bottle() and (self.can_play('Zeldas Lullaby') or (self.has('Hover Boots') and self.world.logic_zora_with_hovers)) and (self.can_reach('Ice Cavern') or self.can_reach('Ganons Castle Water Trial') or self.has('Progressive Wallet', 2) or self.can_reach('Gerudo Training Grounds Stalfos Room')) - else: - zora_thawed = self.has_bottle() and (self.can_play('Zeldas Lullaby') or (self.has('Hover Boots') and self.world.logic_zora_with_hovers)) and (self.can_reach('Ice Cavern') or self.can_reach('Ganons Castle Water Trial') or self.has('Progressive Wallet', 2)) + zora_thawed = (self.can_play('Zeldas Lullaby') or (self.has('Hover Boots') and self.world.logic_zora_with_hovers)) and self.has_blue_fire() carpenter_access = self.has('Epona') or self.has('Progressive Hookshot', 2) - return (self.has('Claim Check') or ((self.has('Progressive Strength Upgrade') or self.can_blast_or_smash() or self.has('Bow')) and (((self.has('Eyedrops') or self.has('Eyeball Frog') or self.has('Prescription') or self.has('Broken Sword')) and zora_thawed) or ((self.has('Poachers Saw') or self.has('Odd Mushroom') or self.has('Cojiro') or self.has('Pocket Cucco') or self.has('Pocket Egg')) and zora_thawed and carpenter_access)))) + return (self.has('Claim Check') or ((self.has('Progressive Strength Upgrade') or self.can_blast_or_smash() or self.has('Bow')) and (((self.has('Eyedrops') or self.has('Eyeball Frog') or self.has('Prescription') or self.has('Broken Sword')) and self.has_blue_fire()) or ((self.has('Poachers Saw') or self.has('Odd Mushroom') or self.has('Cojiro') or self.has('Pocket Cucco') or self.has('Pocket Egg')) and zora_thawed and carpenter_access)))) def has_bottle(self): is_normal_bottle = lambda item: (item.startswith('Bottle') and item != 'Bottle with Letter') @@ -485,7 +483,7 @@ def heart_count(self): ) def has_fire_source(self): - return ((self.has('Dins Fire') or (self.has_bow() and self.has('Fire Arrows') and self.is_adult())) and self.has('Magic Meter')) + return self.can_use('Dins Fire') or self.can_use('Fire Arrows') def guarantee_hint(self): if(self.world.hints == 'mask'): diff --git a/version.py b/version.py index bc4c9fff3..185321006 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.19.6 f.LUM' +__version__ = '2.19.7 f.LUM' From 334aef3bec900ffbbc3b280f37cd582183bd7947 Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 19 Sep 2018 23:59:40 -0400 Subject: [PATCH 552/755] split MQ GC scrubs, removed some drops from MQ --- ItemList.py | 22 ++++++++++++++-------- Regions.py | 11 +++++++---- version.py | 2 +- 3 files changed, 22 insertions(+), 13 deletions(-) diff --git a/ItemList.py b/ItemList.py index 070dc1f47..9db6a506f 100644 --- a/ItemList.py +++ b/ItemList.py @@ -375,11 +375,9 @@ 'Epona': 'Epona', 'Deku Baba Sticks': 'Deku Stick Drop', 'Goron City Stick Pot': 'Deku Stick Drop', - 'Bottom of the Well Stick Pot': 'Deku Stick Drop', 'Zoras Domain Stick Pot': 'Deku Stick Drop', 'Deku Baba Nuts': 'Deku Nut Drop', 'Zoras Domain Nut Pot': 'Deku Nut Drop', - 'Spirit Temple Nut Crate': 'Deku Nut Drop', 'Gerudo Fortress Carpenter Rescue': 'Carpenter Rescue', 'Ganons Castle Forest Trial Clear': 'Forest Trial Clear', 'Ganons Castle Fire Trial Clear': 'Fire Trial Clear', @@ -681,8 +679,9 @@ def get_pool_core(world): if not world.dungeon_mq['JB']: pool.append('Deku Nuts (5)') if world.dungeon_mq['GC']: - pool.append('Deku Nuts (5)') - pool.extend(['Bombs (5)', 'Arrows (30)', 'Recovery Heart', 'Rupees (5)']) + pool.extend(['Bombs (5)', 'Arrows (30)', 'Recovery Heart', 'Rupees (5)', 'Deku Nuts (5)']) + else: + pool.extend(['Bombs (5)', 'Arrows (30)', 'Recovery Heart', 'Rupees (5)']) pool.extend(deku_scrubs_items) else: if world.dungeon_mq['DT']: @@ -701,10 +700,15 @@ def get_pool_core(world): placed_items['Jabu Deku Scrub Deku Nuts'] = 'Buy Deku Nut (5)' if world.dungeon_mq['GC']: placed_items['GC MQ Deku Scrub Deku Nuts'] = 'Buy Deku Nut (5)' - placed_items['GC Deku Scrub Bombs'] = 'Buy Bombs (5) [35]' - placed_items['GC Deku Scrub Arrows'] = 'Buy Arrows (30)' - placed_items['GC Deku Scrub Red Potion'] = 'Buy Red Potion [30]' - placed_items['GC Deku Scrub Green Potion'] = 'Buy Green Potion' + placed_items['GC MQ Deku Scrub Bombs'] = 'Buy Bombs (5) [35]' + placed_items['GC MQ Deku Scrub Arrows'] = 'Buy Arrows (30)' + placed_items['GC MQ Deku Scrub Red Potion'] = 'Buy Red Potion [30]' + placed_items['GC MQ Deku Scrub Green Potion'] = 'Buy Green Potion' + else: + placed_items['GC Deku Scrub Bombs'] = 'Buy Bombs (5) [35]' + placed_items['GC Deku Scrub Arrows'] = 'Buy Arrows (30)' + placed_items['GC Deku Scrub Red Potion'] = 'Buy Red Potion [30]' + placed_items['GC Deku Scrub Green Potion'] = 'Buy Green Potion' placed_items.update(vanilla_deku_scrubs) pool.extend(alwaysitems) @@ -729,12 +733,14 @@ def get_pool_core(world): if world.dungeon_mq['SpT']: pool.extend(SpT_MQ) else: + placed_items['Spirit Temple Nut Crate'] = 'Deku Nut Drop' pool.extend(SpT_vanilla) if world.dungeon_mq['ShT']: pool.extend(ShT_MQ) else: pool.extend(ShT_vanilla) if not world.dungeon_mq['BW']: + placed_items['Bottom of the Well Stick Pot'] = 'Deku Stick Drop' pool.extend(BW_vanilla) if world.dungeon_mq['GTG']: pool.extend(GTG_MQ) diff --git a/Regions.py b/Regions.py index 474f3cfba..495749da1 100644 --- a/Regions.py +++ b/Regions.py @@ -674,8 +674,7 @@ def create_regions(world): ['Spirit Temple Exit', 'Spirit Temple Crawl Passage', 'Spirit Temple Silver Block']), create_dungeon_region( 'Child Spirit Temple', - ['Spirit Temple Child Left Chest', 'Spirit Temple Child Right Chest', 'GS Spirit Temple Metal Fence', - 'Spirit Temple Nut Crate'], + ['Spirit Temple Child Left Chest', 'Spirit Temple Child Right Chest', 'GS Spirit Temple Metal Fence'], ['Child Spirit Temple Climb']), create_dungeon_region( 'Child Spirit Temple Climb', @@ -776,7 +775,7 @@ def create_regions(world): 'Bottom of the Well', ['Bottom of the Well MQ Compass Chest', 'Bottom of the Well MQ Map Chest', 'Bottom of the Well MQ Lens Chest', 'Bottom of the Well MQ Dead Hand Freestanding Key', 'Bottom of the Well MQ East Inner Room Freestanding Key', - 'GS Well MQ Basement', 'GS Well MQ West Inner Room', 'GS Well MQ Coffin Room', 'Bottom of the Well Stick Pot'], + 'GS Well MQ Basement', 'GS Well MQ West Inner Room', 'GS Well MQ Coffin Room'], ['Bottom of the Well Exit']) ]) else: @@ -888,7 +887,7 @@ def create_regions(world): world.regions.extend([ create_dungeon_region( 'Ganons Castle Lobby', - ['GC Deku Scrub Bombs', 'GC Deku Scrub Arrows', 'GC Deku Scrub Red Potion', 'GC Deku Scrub Green Potion', + ['GC MQ Deku Scrub Bombs', 'GC MQ Deku Scrub Arrows', 'GC MQ Deku Scrub Red Potion', 'GC MQ Deku Scrub Green Potion', 'GC MQ Deku Scrub Deku Nuts'], ['Ganons Castle Exit', 'Ganons Castle Forest Trial', 'Ganons Castle Fire Trial', 'Ganons Castle Water Trial', 'Ganons Castle Shadow Trial', 'Ganons Castle Spirit Trial', 'Ganons Castle Light Trial', @@ -1704,6 +1703,10 @@ def _create_region(name, type, locations=None, exits=None): 'DC MQ Deku Scrub Deku Shield': (None, None, 0x34, 'NPC', 0x01, 'Dodongo\'s Cavern'), 'DC MQ Deku Scrub Red Potion': (None, None, 0x39, 'NPC', 0x01, 'Dodongo\'s Cavern'), 'GC MQ Deku Scrub Deku Nuts': (None, None, 0x30, 'NPC', 0x0D, 'Ganon\'s Castle'), + 'GC MQ Deku Scrub Bombs': (None, None, 0x37, 'NPC', 0x0D, 'Ganon\'s Castle'), + 'GC MQ Deku Scrub Arrows': (None, None, 0x33, 'NPC', 0x0D, 'Ganon\'s Castle'), + 'GC MQ Deku Scrub Red Potion': (None, None, 0x39, 'NPC', 0x0D, 'Ganon\'s Castle'), + 'GC MQ Deku Scrub Green Potion': (None, None, 0x3A, 'NPC', 0x0D, 'Ganon\'s Castle'), 'HF Grotto Deku Scrub Piece of Heart': (None, None, 0x3E, 'GrottoNPC', 0x01, 'Hyrule Field'), 'ZR Grotto Deku Scrub Red Potion': (None, None, 0x39, 'GrottoNPC', 0x02, 'Zora\'s River'), diff --git a/version.py b/version.py index 185321006..2ac2f0e7d 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.19.7 f.LUM' +__version__ = '2.19.8 f.LUM' From 0cddfa091cb9f0ecfc24c9071c26f44e97c4e42e Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 20 Sep 2018 00:00:17 -0400 Subject: [PATCH 553/755] Added some missing water temple rules from merge --- Fill.py | 4 +++- Rules.py | 30 ++++++++++++++---------------- version.py | 2 +- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/Fill.py b/Fill.py index 6649406f8..a6e108d71 100644 --- a/Fill.py +++ b/Fill.py @@ -59,7 +59,9 @@ def distribute_items_restrictive(window, worlds, fill_locations=None): # placement, but will leave as is for now random.shuffle(fill_locations) fill_dungeons_restrictive(window, worlds, fill_locations, dungeon_items, itempool + songitempool) - + for world in worlds: + world.keys_placed = True + # I have no idea why the locations are reversed but this is how it was, # so whatever. It can't hurt I guess random.shuffle(fill_locations) diff --git a/Rules.py b/Rules.py index fda3b1240..4ffd97814 100644 --- a/Rules.py +++ b/Rules.py @@ -555,8 +555,8 @@ def dung_rules_fit0(world): # Fire Temple Vanilla set_rule(world.get_entrance('Fire Temple Early Climb'), lambda state: state.has_GoronTunic() and state.has('Small Key (Fire Temple)', 4) and state.has('Progressive Strength Upgrade') and (state.has_explosives() or ((state.has_bow() or state.has('Progressive Hookshot')) and state.is_adult()))) set_rule(world.get_entrance('Fire Temple Fire Maze Escape'), lambda state: state.has('Small Key (Fire Temple)', 8) or (state.has('Small Key (Fire Temple)', 7) and state.has('Hover Boots') and state.has('Hammer') and state.is_adult())) - set_rule(world.get_location('Fire Temple Fire Dancer Chest'), lambda state: (state.has('Small Key (Fire Temple)', 8) or (not world.keysanity and not world.dungeon_mq['FiT'])) and state.is_adult() and state.has('Hammer')) - set_rule(world.get_location('Fire Temple Boss Key Chest'), lambda state: (state.has('Small Key (Fire Temple)', 8) or (not world.keysanity and not world.dungeon_mq['FiT'])) and state.is_adult() and state.has('Hammer')) + set_rule(world.get_location('Fire Temple Fire Dancer Chest'), lambda state: (state.has('Small Key (Fire Temple)', 8) or not world.keysanity) and state.is_adult() and state.has('Hammer')) + set_rule(world.get_location('Fire Temple Boss Key Chest'), lambda state: (state.has('Small Key (Fire Temple)', 8) or not world.keysanity) and state.is_adult() and state.has('Hammer')) set_rule(world.get_location('Fire Temple Big Lava Room Bombable Chest'), lambda state: state.has('Small Key (Fire Temple)', 2) and state.has_explosives()) set_rule(world.get_location('Fire Temple Big Lava Room Open Chest'), lambda state: state.has('Small Key (Fire Temple)', 2)) set_rule(world.get_location('Fire Temple Map Chest'), lambda state: state.has('Small Key (Fire Temple)', 6) or (state.has('Small Key (Fire Temple)', 5) and state.is_adult() and state.has_bow())) @@ -576,7 +576,7 @@ def dung_rules_fit0(world): set_rule(world.get_location('GS Fire Temple Unmarked Bomb Wall'), lambda state: state.has('Small Key (Fire Temple)', 4) and state.has_explosives()) set_rule(world.get_location('GS Fire Temple East Tower Climb'), lambda state: state.has_ocarina() and state.has('Small Key (Fire Temple)', 6) and state.has('Progressive Hookshot') and state.is_adult()) set_rule(world.get_location('GS Fire Temple East Tower Top'), lambda state: state.has_ocarina() and state.has('Small Key (Fire Temple)', 6) and state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('GS Fire Temple Basement'), lambda state: (state.has('Small Key (Fire Temple)', 8) or (not world.keysanity and not world.dungeon_mq['FiT'])) and state.has('Hammer') and state.is_adult()) + set_rule(world.get_location('GS Fire Temple Basement'), lambda state: (state.has('Small Key (Fire Temple)', 8) or not world.keysanity) and state.has('Hammer') and state.is_adult()) # MQ Fire Temple # "Quirks to Know": @@ -607,29 +607,27 @@ def dung_rules_fitmq(world): # Water Temple Vanilla def dung_rules_wt0(world): # Water Temple vanilla - set_rule(world.get_entrance('Water Temple Central Pillar'), lambda state: (state.has_bow() or (state.has('Dins Fire') and state.has('Magic Meter')) or state.has('Small Key (Water Temple)', 5)) and state.can_play('Zeldas Lullaby')) + set_rule(world.get_entrance('Water Temple Central Pillar'), lambda state: (state.has('Bow') or state.can_use('Dins Fire') or state.has('Small Key (Water Temple)', 5)) and state.can_play('Zeldas Lullaby')) set_rule(world.get_entrance('Water Temple Upper Locked Door'), lambda state: state.has('Small Key (Water Temple)', 5) and (state.can_play('Zeldas Lullaby') or world.keysanity)) - set_rule(world.get_location('Water Temple Torches Chest'), lambda state: (state.has_bow() or (state.has('Dins Fire') and state.has('Magic Meter'))) and state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('Water Temple Dragon Chest'), lambda state: (state.has('Progressive Strength Upgrade') and state.can_play('Zeldas Lullaby')) or (state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity) and state.can_play('Song of Time') and state.has_bow())) - set_rule(world.get_location('Water Temple Central Bow Target Chest'), lambda state: state.has_bow() and state.has('Progressive Strength Upgrade') and state.can_play('Zeldas Lullaby') and (state.has('Hover Boots') or state.has('Progressive Hookshot', 2))) - set_always_allow(world.get_location('Water Temple Boss Key Chest'), lambda item, state: item.name == 'Small Key (Water Temple)') + set_rule(world.get_location('Water Temple Torches Chest'), lambda state: (state.has('Bow') or state.can_use('Dins Fire')) and state.can_play('Zeldas Lullaby')) + set_rule(world.get_location('Water Temple Dragon Chest'), lambda state: (state.has('Progressive Strength Upgrade') and state.can_play('Zeldas Lullaby')) or (state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity) and state.can_play('Song of Time') and state.has('Bow'))) + set_rule(world.get_location('Water Temple Central Bow Target Chest'), lambda state: state.has('Bow') and state.has('Progressive Strength Upgrade') and state.can_play('Zeldas Lullaby') and (state.has('Hover Boots') or state.can_use('Longshot'))) set_rule(world.get_location('Water Temple Boss Key Chest'), lambda state: (state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity) and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and state.has('Progressive Hookshot', 2)) or item_name(state, 'Water Temple Boss Key Chest') == 'Small Key (Water Temple)') #If key for key, this lets the logic reduce the small key reqs for every other locked door. set_rule(world.get_location('Water Temple Cracked Wall Chest'), lambda state: state.has_explosives()) set_rule(world.get_location('Water Temple Dark Link Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity)) - set_rule(world.get_location('Water Temple River Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and state.can_play('Song of Time') and state.has_bow() and (state.can_play('Zeldas Lullaby') or world.keysanity)) + set_rule(world.get_location('Water Temple River Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and state.can_play('Song of Time') and state.has('Bow') and (state.can_play('Zeldas Lullaby') or world.keysanity)) set_rule(world.get_location('Water Temple Central Pillar Chest'), lambda state: state.has_ZoraTunic()) - # boss rules - set_rule(world.get_location('Morpha'), lambda state: state.has('Boss Key (Water Temple)') and state.has('Progressive Hookshot', 2)) - set_rule(world.get_location('Morpha Heart'), lambda state: state.has('Boss Key (Water Temple)') and state.has('Progressive Hookshot', 2)) + # Boss + set_rule(world.get_location('Morpha'), lambda state: state.has('Boss Key (Water Temple)') and state.can_use('Longshot')) + set_rule(world.get_location('Morpha Heart'), lambda state: state.has('Boss Key (Water Temple)') and state.can_use('Longshot')) # GS set_rule(world.get_location('GS Water Temple South Basement'), lambda state: state.has_explosives() and state.can_play('Zeldas Lullaby')) set_rule(world.get_location('GS Water Temple Serpent River'), lambda state: state.can_play('Song of Time') and state.has('Small Key (Water Temple)', 6)) - set_rule(world.get_location('GS Water Temple Falling Platform Room'), lambda state: state.has('Progressive Hookshot', 2)) - set_rule(world.get_location('GS Water Temple Central Room'), lambda state: state.has('Progressive Hookshot', 2) or (state.has('Farores Wind') and state.has('Magic Meter'))) - #5 keys would be better but it wouldn't be compatible with the key for key scenarios, 6 will be identical pre-keysanity. - set_rule(world.get_location('GS Water Temple Near Boss Key Chest'), lambda state: state.has('Progressive Hookshot', 2) and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and (state.can_play('Zeldas Lullaby') or world.keysanity) and state.has('Small Key (Water Temple)', 6)) + set_rule(world.get_location('GS Water Temple Falling Platform Room'), lambda state: state.can_use('Longshot')) + set_rule(world.get_location('GS Water Temple Central Room'), lambda state: state.can_use('Longshot') or state.can_use('Farores Wind')) + set_rule(world.get_location('GS Water Temple Near Boss Key Chest'), lambda state: state.can_use('Longshot') and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and (state.can_play('Zeldas Lullaby') or world.keysanity) and state.has('Small Key (Water Temple)', 5)) # MQ Water Temple # Water Temple Freestanding Key: diff --git a/version.py b/version.py index 2ac2f0e7d..5bbbaee49 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.19.8 f.LUM' +__version__ = '2.19.9 f.LUM' From a149f24b5e72c89d9a67a307c026b4c054e3dde0 Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 20 Sep 2018 00:03:05 -0400 Subject: [PATCH 554/755] Spirit temple nut crate was moved to the wrong area --- Regions.py | 6 +++--- version.py | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Regions.py b/Regions.py index 495749da1..773abd099 100644 --- a/Regions.py +++ b/Regions.py @@ -637,8 +637,7 @@ def create_regions(world): ['Spirit Temple Exit', 'Spirit Temple Crawl Passage', 'Spirit Temple Ceiling Passage']), create_dungeon_region( 'Child Spirit Temple', - ['Spirit Temple MQ Child Left Chest', 'Spirit Temple MQ Map Chest', 'Spirit Temple MQ Silver Block Hallway Chest', - 'Spirit Temple Nut Crate'], + ['Spirit Temple MQ Child Left Chest', 'Spirit Temple MQ Map Chest', 'Spirit Temple MQ Silver Block Hallway Chest'], ['Child Spirit Temple to Shared']), create_dungeon_region( 'Adult Spirit Temple', @@ -674,7 +673,8 @@ def create_regions(world): ['Spirit Temple Exit', 'Spirit Temple Crawl Passage', 'Spirit Temple Silver Block']), create_dungeon_region( 'Child Spirit Temple', - ['Spirit Temple Child Left Chest', 'Spirit Temple Child Right Chest', 'GS Spirit Temple Metal Fence'], + ['Spirit Temple Child Left Chest', 'Spirit Temple Child Right Chest', 'GS Spirit Temple Metal Fence', + 'Spirit Temple Nut Crate'], ['Child Spirit Temple Climb']), create_dungeon_region( 'Child Spirit Temple Climb', diff --git a/version.py b/version.py index 5bbbaee49..8356ee0ec 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.19.9 f.LUM' +__version__ = '2.19.10 f.LUM' From ea2f5f68b6bed79bb7f061ae1869380e801cfec2 Mon Sep 17 00:00:00 2001 From: Nick Langille Date: Thu, 20 Sep 2018 00:32:19 -0400 Subject: [PATCH 555/755] Add altar requirement to show medals/stones --- ASM/build/asm_symbols.txt | 94 +- ASM/build/bundle.o | Bin 10028 -> 10196 bytes ASM/build/c_symbols.txt | 37 +- ASM/c/dungeon_info.c | 151 +- Patches.py | 1 + data/rom_patch.txt | 11919 ++++++++++++++++++------------------ data/symbols.json | 33 +- 7 files changed, 6162 insertions(+), 6073 deletions(-) diff --git a/ASM/build/asm_symbols.txt b/ASM/build/asm_symbols.txt index 499ab1795..ae152f740 100644 --- a/ASM/build/asm_symbols.txt +++ b/ASM/build/asm_symbols.txt @@ -988,52 +988,54 @@ 80405000 disp_buf_init,00000018 80405018 sprite_bytes_per_tile,00000028 80405040 sprite_bytes,00000030 -80405070 sprite_load,0000024C -804052BC sprite_draw,000000E8 -804053A4 draw_setup,000001DC -80405580 gfx_init,00000148 -804056C8 heap_init,00000014 -804056DC heap_alloc,00000034 -80405710 file_init,00000044 -80405754 c_init,0000002C -80405780 overlay_swap,000000B4 -80405834 draw_dungeon_info,0000096C -804061A0 text_init,0000002C -804061CC text_print,000000A8 -80406274 text_flush,00000148 -804063C8 .byt:0010 -804063C8 font_sprite -804063D8 .byt:0010 -804063D8 quest_items_sprite -804063E8 .byt:0010 -804063E8 medals_sprite -804063F8 .byt:0010 -804063F8 stones_sprite -80406408 .byt:000E -80406408 cfg_dungeon_rewards -80406418 .byt:0012 -80406418 medal_colors -8040642C .byt:009C -8040642C dungeons -804064C8 .byt:0004 -804064C8 cfg_dungeon_info_enable -804064CC .byt:0004 -804064CC dungeon_count -804064D0 .byt:0004 -804064D0 heap_next -804064D4 .byt:0004 -804064D4 cfg_dungeon_info_reward_need_compass -804064D8 .byt:0004 -804064D8 cfg_dungeon_info_mq_need_map -804064DC .byt:0004 -804064DC cfg_dungeon_info_mq_enable -804064E8 .byt:0010 -804064E8 setup_db -804064F8 .byt:000E -804064F8 cfg_dungeon_is_mq -80406506 .byt:14C8 -80406506 FONT_TEXTURE -804079CE .byt:8632 +80405070 sprite_load,00000254 +804052C4 sprite_draw,000000F0 +804053B4 draw_setup,000001DC +80405590 gfx_init,00000148 +804056D8 heap_init,00000014 +804056EC heap_alloc,00000034 +80405720 file_init,00000044 +80405764 c_init,0000002C +80405790 overlay_swap,000000B4 +80405844 draw_dungeon_info,000009C0 +80406204 text_init,0000002C +80406230 text_print,000000A8 +804062D8 text_flush,00000148 +8040642C .byt:0010 +8040642C font_sprite +8040643C .byt:0010 +8040643C quest_items_sprite +8040644C .byt:0010 +8040644C medals_sprite +8040645C .byt:0010 +8040645C stones_sprite +8040646C .byt:000E +8040646C cfg_dungeon_rewards +8040647C .byt:0012 +8040647C medal_colors +80406490 .byt:009C +80406490 dungeons +8040652C .byt:0004 +8040652C cfg_dungeon_info_enable +80406530 .byt:0004 +80406530 dungeon_count +80406534 .byt:0004 +80406534 heap_next +80406538 .byt:0004 +80406538 cfg_dungeon_info_reward_need_altar +8040653C .byt:0004 +8040653C cfg_dungeon_info_reward_need_compass +80406540 .byt:0004 +80406540 cfg_dungeon_info_mq_need_map +80406544 .byt:0004 +80406544 cfg_dungeon_info_mq_enable +80406550 .byt:0010 +80406550 setup_db +80406560 .byt:000E +80406560 cfg_dungeon_is_mq +8040656E .byt:14C8 +8040656E FONT_TEXTURE +80407A36 .byt:85CA 80480000 DUMMY_ACTOR 80500000 C_HEAP  \ No newline at end of file diff --git a/ASM/build/bundle.o b/ASM/build/bundle.o index 053402c31668fa0e2aaa43c54852ecd9e4e3e53d..a9d98276dfec3c722411349fe18704e29e12e098 100644 GIT binary patch delta 3752 zcmb_eOKelw8UF5d9!`91Uq6yK55S2Z2@sJGLWoqC8YgO_mZ3b-mIW#yJchOiP@z&5 zXlzYqkp+q)PE@f#Rn$qQR7Ew@FzqauHi~G4Dm2OhRau};N~?-R7A%kkjiy7t|DKZw zG}A?^v1I@E|Ih#UzW6Q8B^ zPujYWwA(Bvo`-F97{6iPgwsF+erR0o`TkM0^G7)!(D}iO>B=8*uJQ+*t^6LRD!;>6 zXwtAEvh>qyjH#9_A`wwq`6DpqpKzr`<7H=a42ICbj~3u zE8d1Y-eB{QAjs}jZv;EkvQxd4P}Xb8;j+hOGr6Wx#2ltU;ic=U4}(ponQ!3n{PMMv zv<~TQFk29oTItWV`qfVR76&sxZ-xhG@V|6>HG4^YGt^n!i?nyx&B4z#vN!BO_G5ie zUg^aV4~a!2Np5dlSLJ(im6Tr`~7zWs}O z_R=MMxo_VOH`Q(QO}!Cr`ren*sgGo5vwJa+u4U(I5LRvB*6k<$Z)6ADrs9`~EINzb zFWs8HbzJKwTXu7OjO7}*v+n_F&26q5-#BrhNNY7U4zL}OE&GUVeSA$9fOsCZJ)6vw z=P)QYPtH>|gAwn{%Pq6@$ToxN5zp0B0jpbFLU~r zIsJXB@OOTIi!MI9ncb;Ai?r7z{8bRk)swW0M!#ak)pT@-zYn7q ztb`hl{glu5V=2ZF2M1t$;aO~tPX!u-3xiDy*1iPcR#||baxcFeejEBXc;%|7cXP(=K*)UMIs7lSP4fnY6)U15S=ZieYqw03^cI%FM z)Z7!1cF9YI^{qajdRn!$9Ee7HX}+n$tSc;YN?mE`X=ic7jrG@j7SQX#%Y1g#gO;96 zNj?p0FPnn%ZNtmnz2I-{vDI>$Q#^6*@`)eg`Yy0rCOCJD5OVUX_|(euD&2^gjn{iw0Klw!YV^y?;W7U&TBO-k{@y6JkS7~UJW2{Unh15NB}rwD$JdOMn9$tIb6sN*w}_Q|jE+Oq_crPzsCvp((JU3j~jv0&ChYcvkxb-_rSlEGYScS9QLi zbcA(+1kh5${SQh@#BkFjWUB;7&;SW_Yv#d49T*za1wv#jexXraAVeT?7D8k$1wyBc z-({UYG@W4KKh2q$%caF_NA6PR=)+^-9S2~1iZ z9x-wIP24@5KTM#KKfG+>)_DJgL6`ufMd4?rfB>M~g?4oPx`6BG0+XRq{2LMR-c8)gf1Mpq6xSK>{-9qH)d;#zhm{|5^q{$;dO1k*DX3o;Ui4 z(f1pjg=8*7FY3b^Et&O6vwq*`540X5K=F^UupIVSzwUHQ-h5IxCIw~Tj&5bl0E#Ud z`>OF{XFR_rMqgVPPQ7E<@uXTyr>a*tLlY{VNm-L>Fw<$xs4?$%GSgXo10=8RaP5X# zq4mbKY^U{Hb@BJ9I_N!5WV3d{uV%B^nuMQk+md>aO;wYV{hE4~?PyGsE@t>$|L~O! F{0FHNPGJB5 delta 3697 zcmcImO>7(25uRO&)Kbfz-Q~)ZX;~Jw$}RfZq3m8fIQfY1zs}fSCrBK)@}#>(RT2s!vUhg zd)teR4`{maK20_LOp}dwX`=BCjW@2)SYwS&HvUATjkoDU<1O;UrqL52nky4o9<>vR za(F17&^-OjVulinBl+KvF6P2dX{W`la7IgrFT;-q>QoZ<0^NG2E}rfvi@A~43%mf?16H3AWf7)vnM%W*M6cZ-8uQ4!gtbc}(9x^*;qpq8My&LF znd+olhvv6$TyHeRnp{Hs; z@!3kVm5Sw&aj7hhN0OCC$PR)ml8E_ab+W*w3tyN1Czf3U?$q|*QQQbJwer6qci2X8 z50ajBDM&P*V1;cy z86sO$<9kL1hLcshb)GWBY)<#;xuf@yG|m?EJyql?{RHQNvuYcmB&W$|rGFuQ9~~J| zTnfw7%R8I^pS&vj=gb8y=BU^)#O|t0c(k7vTH(2!bZ-eQ1xl)wINOIPpf%7o8d}Cf zwRdr_qc>KX+*+-cQtcGyz3jK2#QvRzAu8qq*HtzDvuQTaG=Gd0DiZ8&7tk@(;pe8Kiraq4|iIR+mg%pUDK{rN|Sp6qvTzC z-`-!)D5KVmWg_b4tfTk7w14=s=^Cbd4O6~`DPO~suVKp9Fy(8Q@-L<1~-0FY~oGf^0dgdwGqEPR?lFxNNI^VXJ6FK8FFXt=VXbi&N0mrTh0i6 zONn1=uBazo!SkS-3AOTdE; z5n|GdM9vJ6HmdL>QF~R)?|$+}>)1W4R{sEJhl#@H6n+PL{)b)Ta|2bn2Dz#BZ{hho z)=mmHwO?BnUTVl@Hf@-oklG=lU{zF8&pYEhPjNaZAmv%y^{gR4YGfP)C-%MGG526*reWC#*^yBXhu zWV}VRhw;~tz#-V?@a4Y>nAQ|R*lx!C3KxlbpdUhodaz#!jj9cB$nwUN!n4Y7o~V!4 z7a`f<>q>%Xh8=_GH4zL8V16aqO28nMf9Fe%a*Y{tc_DRf9IBK6p$FV#| zv7xSw$sBWR6Qh z=7c0qVF`uY(Ym zHUdK2WDx}5CX9dxH(>-sxRQ}6WjC$tK!E*6W|aRes>lGdQZWi64iH5J*kKd_*0MQN*QEd0Uz8q*aRRYQQw0DsE_v*ZGTfAg zaWLm*iGeW(h@X{)@mHl@d{*g!2v;b+p!5`x_>%M=UzYykidb9`t5}0FKpYG?fK`$K ztWkNLtdsIOS>tMdLhVmU$JVrTY|Rio#`Z5kA`$BXhBxCXBx4YE7=y6G7`>1W;{2@z zJn+K2a=0oT+Q^2R&vs>CyGsVP`-zggUY7&PehV`Lj_oUu@MB+97zz3KQ-#+RzN7Fa zW1PPOXWY$BM0T^&Eft)sG;pRBKC3VY`uYgW-S0GI=^ZA(emEf36JxTnjv|zpRO=U{ zUILYAkFw&cYGHQmZsrY5Ph1lVxlGW*5H-ZLTt>@^ja)%13M0?I#e5-HBBCxana^k? zQN?OW)bYC@n)n?RU-{3yg}k0z7NdoHD7lOm=y@?y$OKVMeL%ck=+iSd#r1;wZ)!$2 A761SM diff --git a/ASM/build/c_symbols.txt b/ASM/build/c_symbols.txt index 9ee4df20e..ba1dcd342 100644 --- a/ASM/build/c_symbols.txt +++ b/ASM/build/c_symbols.txt @@ -21,40 +21,41 @@ SYMBOL TABLE: 00000000 l .rodata.str1.4 00000000 $LC0 00000004 l .rodata.str1.4 00000000 $LC1 00000000 l df *ABS* 00000000 text.c -00000014 l O .sbss 00000004 text_buf -00000010 l O .sbss 00000004 text_end -000011a0 g F .text 0000002c text_init -00001274 g F .text 00000148 text_flush -00000780 g F .text 000000b4 overlay_swap +00000018 l O .sbss 00000004 text_buf +00000014 l O .sbss 00000004 text_end +00001204 g F .text 0000002c text_init +000012d8 g F .text 00000148 text_flush +00000790 g F .text 000000b4 overlay_swap 00000020 g O .data 00000010 medals_sprite 00000004 g O .sdata 00000004 dungeon_count 00000010 g O .data 00000010 quest_items_sprite -000006dc g F .text 00000034 heap_alloc -00000834 g F .text 0000096c draw_dungeon_info +000006ec g F .text 00000034 heap_alloc +00000844 g F .text 000009c0 draw_dungeon_info 00000000 *UND* 00000000 FONT_TEXTURE -000002bc g F .text 000000e8 sprite_draw -00000070 g F .text 0000024c sprite_load +000002c4 g F .text 000000f0 sprite_draw +00000070 g F .text 00000254 sprite_load 00000030 g O .data 00000010 stones_sprite 00000000 g O .bss 00000010 setup_db -000003a4 g F .text 000001dc draw_setup +000003b4 g F .text 000001dc draw_setup 00000000 g O .data 00000010 font_sprite 00000040 g F .text 00000030 sprite_bytes -00000008 g O .sbss 00000004 cfg_dungeon_info_mq_need_map -00000580 g F .text 00000148 gfx_init +0000000c g O .sbss 00000004 cfg_dungeon_info_mq_need_map +00000590 g F .text 00000148 gfx_init 00000000 g F .text 00000018 disp_buf_init 00000010 g O .bss 0000000e cfg_dungeon_is_mq 00000064 g O .data 0000009c dungeons 00000050 g O .data 00000012 medal_colors -000011cc g F .text 000000a8 text_print -00000754 g F .text 0000002c c_init +00001230 g F .text 000000a8 text_print +00000764 g F .text 0000002c c_init 00000000 g O .sbss 00000004 heap_next 00000040 g O .data 0000000e cfg_dungeon_rewards -000006c8 g F .text 00000014 heap_init -00000004 g O .sbss 00000004 cfg_dungeon_info_reward_need_compass -0000000c g O .sbss 00000004 cfg_dungeon_info_mq_enable +000006d8 g F .text 00000014 heap_init +00000008 g O .sbss 00000004 cfg_dungeon_info_reward_need_compass +00000010 g O .sbss 00000004 cfg_dungeon_info_mq_enable 00000000 *UND* 00000000 C_HEAP 00000018 g F .text 00000028 sprite_bytes_per_tile -00000710 g F .text 00000044 file_init +00000720 g F .text 00000044 file_init +00000004 g O .sbss 00000004 cfg_dungeon_info_reward_need_altar 00000000 g O .sdata 00000004 cfg_dungeon_info_enable diff --git a/ASM/c/dungeon_info.c b/ASM/c/dungeon_info.c index f69fad99b..fe22eeaaa 100644 --- a/ASM/c/dungeon_info.c +++ b/ASM/c/dungeon_info.c @@ -55,6 +55,7 @@ uint32_t cfg_dungeon_info_enable = 1; uint32_t cfg_dungeon_info_mq_enable = 0; uint32_t cfg_dungeon_info_mq_need_map = 0; uint32_t cfg_dungeon_info_reward_need_compass = 0; +uint32_t cfg_dungeon_info_reward_need_altar = 0; int8_t cfg_dungeon_rewards[] = { 0, 1, 2, 3, 4, 5, 6, 7, -1, -1, -1, -1, -1, -1 }; uint8_t cfg_dungeon_is_mq[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; @@ -67,12 +68,19 @@ void draw_dungeon_info(z64_disp_buf_t *db) { // Call setup display list gSPDisplayList(db->p++, setup_db.buf); + uint16_t altar_flags = z64_file.inf_table[27]; + int show_medals = !cfg_dungeon_info_reward_need_altar || (altar_flags & 1); + int show_stones = !cfg_dungeon_info_reward_need_altar || (altar_flags & 2); + int show_keys = 1; + int show_map_compass = 1; + int show_mq = cfg_dungeon_info_mq_enable; + // Set up dimensions int icon_size = 16; int padding = 2; int rows = 13; - int mq_width = cfg_dungeon_info_mq_enable ? + int mq_width = show_mq ? ((6 * font_sprite.tile_w) + padding) : 0; int bg_width = @@ -98,49 +106,53 @@ void draw_dungeon_info(z64_disp_buf_t *db) { 0, 0, 1<<10, 1<<10); - // Draw medals - gDPPipeSync(db->p++); gDPSetCombineMode(db->p++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM); - sprite_load(db, &medals_sprite, 0, medals_sprite.tile_count); + // Draw medals - for (int i = 0; i < dungeon_count; i++) { - dungeon_entry_t *d = &(dungeons[i]); - if (cfg_dungeon_info_reward_need_compass && - !z64_file.dungeon_items[d->index].compass) { - continue; - } - int reward = cfg_dungeon_rewards[d->index]; - if (reward < 3) continue; - reward -= 3; + if (show_medals) { + sprite_load(db, &medals_sprite, 0, medals_sprite.tile_count); - medal_color_t *c = &(medal_colors[reward]); - gDPSetPrimColor(db->p++, 0, 0, c->r, c->g, c->b, 0xFF); + for (int i = 0; i < dungeon_count; i++) { + dungeon_entry_t *d = &(dungeons[i]); + if (cfg_dungeon_info_reward_need_compass && + !z64_file.dungeon_items[d->index].compass) { + continue; + } + int reward = cfg_dungeon_rewards[d->index]; + if (reward < 3) continue; + reward -= 3; - int top = start_top + ((icon_size + padding) * i); - sprite_draw(db, &medals_sprite, reward, - left, top, icon_size, icon_size); - } + medal_color_t *c = &(medal_colors[reward]); + gDPSetPrimColor(db->p++, 0, 0, c->r, c->g, c->b, 0xFF); - // Draw stones + int top = start_top + ((icon_size + padding) * i); + sprite_draw(db, &medals_sprite, reward, + left, top, icon_size, icon_size); + } + } gDPSetPrimColor(db->p++, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF); - sprite_load(db, &stones_sprite, 0, stones_sprite.tile_count); - for (int i = 0; i < dungeon_count; i++) { - dungeon_entry_t *d = &(dungeons[i]); - if (cfg_dungeon_info_reward_need_compass && - !z64_file.dungeon_items[d->index].compass) { - continue; - } - int reward = cfg_dungeon_rewards[d->index]; - if (reward < 0 || reward >= 3) continue; + // Draw stones - int top = start_top + ((icon_size + padding) * i); - sprite_draw(db, &stones_sprite, reward, - left, top, icon_size, icon_size); + if (show_stones) { + sprite_load(db, &stones_sprite, 0, stones_sprite.tile_count); + + for (int i = 0; i < dungeon_count; i++) { + dungeon_entry_t *d = &(dungeons[i]); + if (cfg_dungeon_info_reward_need_compass && + !z64_file.dungeon_items[d->index].compass) { + continue; + } + int reward = cfg_dungeon_rewards[d->index]; + if (reward < 0 || reward >= 3) continue; + int top = start_top + ((icon_size + padding) * i); + sprite_draw(db, &stones_sprite, reward, + left, top, icon_size, icon_size); + } } left += icon_size + padding; @@ -155,58 +167,61 @@ void draw_dungeon_info(z64_disp_buf_t *db) { left += (8 * font_sprite.tile_w) + padding; - // Draw key counts + // Draw keys - sprite_load(db, &quest_items_sprite, 17, 1); + if (show_keys) { + // Draw small key counts - for (int i = 0; i < dungeon_count; i++) { - dungeon_entry_t *d = &(dungeons[i]); - if (!d->has_keys) continue; + sprite_load(db, &quest_items_sprite, 17, 1); - int8_t keys = z64_file.dungeon_keys[d->index]; - if (keys < 0) keys = 0; - if (keys > 9) keys = 9; + for (int i = 0; i < dungeon_count; i++) { + dungeon_entry_t *d = &(dungeons[i]); + if (!d->has_keys) continue; - char count[2] = "0"; - count[0] += keys; - int top = start_top + ((icon_size + padding) * i) + 1; - text_print(count, left, top); - } + int8_t keys = z64_file.dungeon_keys[d->index]; + if (keys < 0) keys = 0; + if (keys > 9) keys = 9; - left += icon_size + padding; + char count[2] = "0"; + count[0] += keys; + int top = start_top + ((icon_size + padding) * i) + 1; + text_print(count, left, top); + } - // Draw boss keys + left += icon_size + padding; - sprite_load(db, &quest_items_sprite, 14, 1); + // Draw boss keys - for (int i = 0; i < dungeon_count; i++) { - dungeon_entry_t *d = &(dungeons[i]); - if (d->has_boss_key && z64_file.dungeon_items[d->index].boss_key) { - int top = start_top + ((icon_size + padding) * i); - sprite_draw(db, &quest_items_sprite, 0, - left, top, icon_size, icon_size); + sprite_load(db, &quest_items_sprite, 14, 1); + + for (int i = 0; i < dungeon_count; i++) { + dungeon_entry_t *d = &(dungeons[i]); + if (d->has_boss_key && z64_file.dungeon_items[d->index].boss_key) { + int top = start_top + ((icon_size + padding) * i); + sprite_draw(db, &quest_items_sprite, 0, + left, top, icon_size, icon_size); + } } - } - // Draw gerudo card + // Draw gerudo card - sprite_load(db, &quest_items_sprite, 10, 1); + sprite_load(db, &quest_items_sprite, 10, 1); - for (int i = 0; i < dungeon_count; i++) { - dungeon_entry_t *d = &(dungeons[i]); - if (d->has_card && z64_file.gerudos_card) { - int top = start_top + ((icon_size + padding) * i); - sprite_draw(db, &quest_items_sprite, 0, - left, top, icon_size, icon_size); + for (int i = 0; i < dungeon_count; i++) { + dungeon_entry_t *d = &(dungeons[i]); + if (d->has_card && z64_file.gerudos_card) { + int top = start_top + ((icon_size + padding) * i); + sprite_draw(db, &quest_items_sprite, 0, + left, top, icon_size, icon_size); + } } - } - left += icon_size + padding; + left += icon_size + padding; + } // Draw maps and compasses - int draw_maps_and_compasses = 1; - if (draw_maps_and_compasses) { + if (show_map_compass) { // Draw maps sprite_load(db, &quest_items_sprite, 16, 1); @@ -240,7 +255,7 @@ void draw_dungeon_info(z64_disp_buf_t *db) { // Draw master quest dungeons - if (cfg_dungeon_info_mq_enable) { + if (show_mq) { for (int i = 0; i < dungeon_count; i++) { dungeon_entry_t *d = &(dungeons[i]); if (cfg_dungeon_info_mq_need_map && d->has_map && diff --git a/Patches.py b/Patches.py index e2f4f0aad..724a108fe 100644 --- a/Patches.py +++ b/Patches.py @@ -1972,5 +1972,6 @@ def configure_dungeon_info(rom, world): rom.write_int32(rom.sym('cfg_dungeon_info_mq_enable'), int(mq_enable)) rom.write_int32(rom.sym('cfg_dungeon_info_mq_need_map'), int(mapcompass_keysanity)) rom.write_int32(rom.sym('cfg_dungeon_info_reward_need_compass'), int(mapcompass_keysanity)) + rom.write_int32(rom.sym('cfg_dungeon_info_reward_need_altar'), int(not mapcompass_keysanity)) rom.write_bytes(rom.sym('cfg_dungeon_rewards'), dungeon_rewards) rom.write_bytes(rom.sym('cfg_dungeon_is_mq'), dungeon_is_mq) diff --git a/data/rom_patch.txt b/data/rom_patch.txt index 8a6f28861..5a1c4786d 100644 --- a/data/rom_patch.txt +++ b/data/rom_patch.txt @@ -468,7 +468,7 @@ b06c31,28 b06c33,20 b17129,10 b1712a,15 -b1712b,e0 +b1712b,e4 b17bb4,af b17bb5,bf b17bb6,0 @@ -1029,7 +1029,7 @@ ec9ce7,7a 3480024,c 3480025,10 3480026,15 -3480027,d5 +3480027,d9 348002c,3c 348002d,2 348002e,80 @@ -5636,6147 +5636,6216 @@ ec9ce7,7a 34b3165,65 34b3166,98 34b3167,4 -34b3169,53 -34b316b,1a -34b316c,2 -34b316d,60 -34b316e,1 -34b316f,f4 -34b3172,10 -34b3173,12 -34b3174,24 -34b3175,42 -34b3176,ff -34b3177,ff -34b3179,2 -34b317a,13 -34b317c,3c -34b317d,5 -34b317f,ff -34b3180,34 -34b3181,a5 -34b3182,f0 -34b3185,45 -34b3186,10 -34b3187,24 -34b3189,64 -34b318b,18 -34b318e,40 -34b318f,12 -34b3190,29 -34b3191,5 -34b3193,41 -34b3194,14 -34b3195,a0 -34b3197,a -34b3198,24 -34b3199,6 -34b319a,8 -34b319d,8 -34b319e,2f -34b319f,c3 -34b31a0,30 -34b31a1,a5 -34b31a3,3f -34b31a5,a8 -34b31a6,28 -34b31a7,21 -34b31a9,5 -34b31aa,29 -34b31ab,83 -34b31ac,24 -34b31ad,a6 -34b31ae,7 -34b31af,ff -34b31b1,c5 -34b31b3,1a +34b3168,16 +34b3169,60 +34b316b,2 +34b316d,53 +34b316f,1a +34b3171,7 +34b3173,d +34b3176,10 +34b3177,12 +34b3178,24 +34b3179,42 +34b317a,ff +34b317b,ff +34b317d,2 +34b317e,13 +34b3180,3c +34b3181,5 +34b3183,ff +34b3184,34 +34b3185,a5 +34b3186,f0 +34b3189,45 +34b318a,10 +34b318b,24 +34b318d,64 +34b318f,18 +34b3192,40 +34b3193,12 +34b3194,29 +34b3195,5 +34b3197,41 +34b3198,14 +34b3199,a0 +34b319b,b +34b319c,24 +34b319d,6 +34b319e,8 +34b31a1,8 +34b31a2,2f +34b31a3,c3 +34b31a4,30 +34b31a5,a5 +34b31a7,3f +34b31a9,a8 +34b31aa,28 +34b31ab,21 +34b31ad,5 +34b31ae,29 +34b31af,83 +34b31b0,24 +34b31b1,a6 +34b31b2,7 +34b31b3,ff +34b31b4,14 34b31b5,a0 -34b31b6,1 -34b31b7,f4 -34b31ba,30 -34b31bb,12 -34b31bc,30 -34b31bd,c6 -34b31be,f -34b31bf,ff -34b31c1,46 -34b31c2,10 -34b31c3,25 -34b31c4,3c -34b31c5,5 -34b31c6,7 -34b31c9,45 +34b31b7,2 +34b31b9,c5 +34b31bb,1a +34b31bd,7 +34b31bf,d +34b31c2,30 +34b31c3,12 +34b31c4,30 +34b31c5,c6 +34b31c6,f +34b31c7,ff +34b31c9,46 34b31ca,10 34b31cb,25 -34b31cc,af -34b31cd,a2 -34b31cf,2c -34b31d0,3c -34b31d1,2 -34b31d2,e7 +34b31cc,3c +34b31cd,5 +34b31ce,7 +34b31d1,45 +34b31d2,10 +34b31d3,25 34b31d4,af 34b31d5,a2 -34b31d7,30 -34b31d8,af -34b31d9,a0 -34b31db,34 -34b31dd,11 -34b31de,14 -34b31df,c0 -34b31e0,3c -34b31e1,5 -34b31e3,18 -34b31e5,45 -34b31e6,10 -34b31e7,24 -34b31e8,2e -34b31e9,31 -34b31eb,2 -34b31ec,16 -34b31ed,20 -34b31ef,2 -34b31f1,52 -34b31f2,10 -34b31f3,25 -34b31f4,24 -34b31f5,4 -34b31f7,10 -34b31f9,64 -34b31fb,18 -34b31fe,20 -34b31ff,12 -34b3200,24 -34b3201,84 -34b3203,3f -34b3205,4 -34b3206,97 -34b3207,c3 -34b3208,32 -34b3209,52 +34b31d7,2c +34b31d8,3c +34b31d9,2 +34b31da,e7 +34b31dc,af +34b31dd,a2 +34b31df,30 +34b31e0,af +34b31e1,a0 +34b31e3,34 +34b31e5,11 +34b31e6,14 +34b31e7,c0 +34b31e8,3c +34b31e9,5 +34b31eb,18 +34b31ed,45 +34b31ee,10 +34b31ef,24 +34b31f0,2e +34b31f1,31 +34b31f3,2 +34b31f4,16 +34b31f5,20 +34b31f7,2 +34b31f9,52 +34b31fa,10 +34b31fb,25 +34b31fc,24 +34b31fd,4 +34b31ff,10 +34b3201,64 +34b3203,18 +34b3206,20 +34b3207,12 +34b3208,24 +34b3209,84 34b320b,3f -34b320c,2 -34b320d,44 -34b320e,90 -34b320f,21 -34b3211,12 -34b3212,90 -34b3213,c0 -34b3214,3c -34b3215,4 -34b3217,3 -34b3218,34 -34b3219,84 -34b321a,fe -34b321c,2 -34b321d,44 -34b321e,90 -34b321f,24 -34b3220,2 -34b3221,42 -34b3222,90 -34b3223,25 -34b3224,3c -34b3225,2 -34b3226,f5 +34b320d,4 +34b320e,97 +34b320f,c3 +34b3210,32 +34b3211,52 +34b3213,3f +34b3214,2 +34b3215,44 +34b3216,90 +34b3217,21 +34b3219,12 +34b321a,90 +34b321b,c0 +34b321c,3c +34b321d,4 +34b321f,3 +34b3220,34 +34b3221,84 +34b3222,fe +34b3224,2 +34b3225,44 +34b3226,90 +34b3227,24 34b3228,2 34b3229,42 34b322a,90 34b322b,25 -34b322c,af -34b322d,b2 -34b322f,38 -34b3230,af -34b3231,a0 -34b3233,3c -34b3234,3c -34b3235,2 -34b3236,f2 +34b322c,3c +34b322d,2 +34b322e,f5 +34b3230,2 +34b3231,42 +34b3232,90 +34b3233,25 +34b3234,af +34b3235,b2 +34b3237,38 34b3238,af -34b3239,a2 -34b323b,40 -34b323c,24 -34b323d,62 -34b323e,3f -34b323f,ff -34b3241,2 -34b3242,13 -34b3243,80 -34b3244,3c -34b3245,3 +34b3239,a0 +34b323b,3c +34b323c,3c +34b323d,2 +34b323e,f2 +34b3240,af +34b3241,a2 +34b3243,40 +34b3244,24 +34b3245,62 +34b3246,3f 34b3247,ff -34b3248,34 -34b3249,63 -34b324a,f0 -34b324d,43 -34b324e,10 -34b324f,24 -34b3250,24 -34b3251,e7 -34b3252,ff -34b3253,ff -34b3255,7 -34b3256,38 -34b3257,80 -34b3258,30 +34b3249,2 +34b324a,13 +34b324b,80 +34b324c,3c +34b324d,3 +34b324f,ff +34b3250,34 +34b3251,63 +34b3252,f0 +34b3255,43 +34b3256,10 +34b3257,24 +34b3258,24 34b3259,e7 -34b325a,f -34b325b,fc -34b325d,47 -34b325e,10 -34b325f,25 -34b3260,af -34b3261,a2 -34b3263,44 -34b3264,27 -34b3265,a2 -34b3267,10 -34b3268,27 -34b3269,a6 -34b326b,48 -34b326c,8e -34b326d,3 -34b326f,8 -34b3270,24 -34b3271,64 -34b3273,8 -34b3274,ae -34b3275,4 +34b325a,ff +34b325b,ff +34b325d,7 +34b325e,38 +34b325f,80 +34b3260,30 +34b3261,e7 +34b3262,f +34b3263,fc +34b3265,47 +34b3266,10 +34b3267,25 +34b3268,af +34b3269,a2 +34b326b,44 +34b326c,27 +34b326d,a2 +34b326f,10 +34b3270,27 +34b3271,a6 +34b3273,48 +34b3274,8e +34b3275,3 34b3277,8 -34b3278,8c -34b3279,45 -34b327b,4 -34b327c,8c -34b327d,44 -34b3280,ac -34b3281,65 +34b3278,24 +34b3279,64 +34b327b,8 +34b327c,ae +34b327d,4 +34b327f,8 +34b3280,8c +34b3281,45 34b3283,4 -34b3284,24 -34b3285,42 -34b3287,8 -34b3288,14 -34b3289,46 -34b328a,ff -34b328b,f8 -34b328c,ac -34b328d,64 -34b3290,8f -34b3291,bf -34b3293,6c -34b3294,8f -34b3295,b7 -34b3297,68 +34b3284,8c +34b3285,44 +34b3288,ac +34b3289,65 +34b328b,4 +34b328c,24 +34b328d,42 +34b328f,8 +34b3290,14 +34b3291,46 +34b3292,ff +34b3293,f8 +34b3294,ac +34b3295,64 34b3298,8f -34b3299,b6 -34b329b,64 +34b3299,bf +34b329b,6c 34b329c,8f -34b329d,b5 -34b329f,60 +34b329d,b7 +34b329f,68 34b32a0,8f -34b32a1,b4 -34b32a3,5c +34b32a1,b6 +34b32a3,64 34b32a4,8f -34b32a5,b3 -34b32a7,58 +34b32a5,b5 +34b32a7,60 34b32a8,8f -34b32a9,b2 -34b32ab,54 +34b32a9,b4 +34b32ab,5c 34b32ac,8f -34b32ad,b1 -34b32af,50 +34b32ad,b3 +34b32af,58 34b32b0,8f -34b32b1,b0 -34b32b3,4c -34b32b4,3 -34b32b5,e0 -34b32b7,8 -34b32b8,27 -34b32b9,bd -34b32bb,70 -34b32bc,27 -34b32bd,bd -34b32be,ff -34b32bf,e8 -34b32c0,8f -34b32c1,a8 -34b32c3,28 -34b32c4,8f -34b32c5,a2 -34b32c7,2c +34b32b1,b2 +34b32b3,54 +34b32b4,8f +34b32b5,b1 +34b32b7,50 +34b32b8,8f +34b32b9,b0 +34b32bb,4c +34b32bc,3 +34b32bd,e0 +34b32bf,8 +34b32c0,27 +34b32c1,bd +34b32c3,70 +34b32c4,27 +34b32c5,bd +34b32c6,ff +34b32c7,e8 34b32c8,8f -34b32c9,aa -34b32cb,30 -34b32cc,94 -34b32cd,a9 -34b32cf,4 -34b32d1,9 -34b32d2,4a -34b32d3,80 -34b32d4,1 -34b32d5,22 -34b32d7,1a -34b32d9,40 -34b32da,1 -34b32db,f4 -34b32de,48 -34b32df,12 -34b32e0,94 -34b32e1,a3 -34b32e3,6 -34b32e5,47 -34b32e6,10 -34b32e7,21 -34b32e9,2 -34b32ea,13 -34b32eb,80 -34b32ec,3c -34b32ed,b -34b32ef,ff -34b32f0,35 -34b32f1,6b -34b32f2,f0 -34b32f5,4b -34b32f6,10 -34b32f7,24 -34b32f8,1 -34b32f9,48 -34b32fa,28 -34b32fb,21 -34b32fd,5 -34b32fe,28 -34b32ff,80 -34b3300,30 -34b3301,a5 -34b3302,f -34b3303,ff -34b3305,45 -34b3306,10 -34b3307,25 -34b3308,3c +34b32c9,a8 +34b32cb,28 +34b32cc,8f +34b32cd,a2 +34b32cf,2c +34b32d0,8f +34b32d1,aa +34b32d3,30 +34b32d4,94 +34b32d5,a9 +34b32d7,4 +34b32d9,9 +34b32da,4a +34b32db,80 +34b32dc,14 +34b32dd,40 +34b32df,2 +34b32e0,1 +34b32e1,22 +34b32e3,1a +34b32e5,7 +34b32e7,d +34b32ea,48 +34b32eb,12 +34b32ec,94 +34b32ed,a3 +34b32ef,6 +34b32f1,47 +34b32f2,10 +34b32f3,21 +34b32f5,2 +34b32f6,13 +34b32f7,80 +34b32f8,3c +34b32f9,b +34b32fb,ff +34b32fc,35 +34b32fd,6b +34b32fe,f0 +34b3301,4b +34b3302,10 +34b3303,24 +34b3304,1 +34b3305,48 +34b3306,28 +34b3307,21 34b3309,5 -34b330a,e4 -34b330d,45 -34b330e,10 -34b330f,25 -34b3310,af -34b3311,a2 -34b3315,7 -34b3316,3b -34b3317,80 -34b3319,eb -34b331a,38 -34b331b,24 -34b331d,8 -34b331e,40 -34b331f,80 -34b3320,31 -34b3321,8 -34b3322,f -34b3323,ff -34b3325,e8 +34b330a,28 +34b330b,80 +34b330c,30 +34b330d,a5 +34b330e,f +34b330f,ff +34b3311,45 +34b3312,10 +34b3313,25 +34b3314,3c +34b3315,5 +34b3316,e4 +34b3319,45 +34b331a,10 +34b331b,25 +34b331c,af +34b331d,a2 +34b3321,7 +34b3322,3b +34b3323,80 +34b3325,eb 34b3326,38 -34b3327,25 -34b3328,af -34b3329,a7 -34b332b,4 -34b332c,3c -34b332d,2 -34b332e,e1 -34b3330,af -34b3331,a2 -34b3333,8 -34b3335,66 -34b3337,18 -34b333a,30 -34b333b,12 -34b333d,6 -34b333e,31 -34b333f,40 -34b3340,30 -34b3341,c6 -34b3342,ff -34b3343,ff -34b3344,af -34b3345,a6 -34b3347,c -34b3348,3c -34b3349,2 -34b334a,f1 -34b334c,af -34b334d,a2 -34b334f,10 -34b3351,3 -34b3352,1a -34b3353,80 -34b3355,6a -34b3357,1a -34b3358,1 -34b3359,40 -34b335a,1 -34b335b,f4 -34b335e,18 -34b335f,12 -34b3360,30 -34b3361,63 -34b3362,ff -34b3363,ff -34b3365,9 -34b3366,4c -34b3369,69 -34b336a,18 -34b336b,25 -34b336c,af -34b336d,a3 -34b336f,14 -34b3370,3 -34b3371,a0 -34b3372,10 -34b3373,25 -34b3374,27 -34b3375,a8 -34b3377,18 -34b3378,8c -34b3379,83 -34b337b,8 -34b337c,24 -34b337d,65 -34b337f,8 -34b3380,ac -34b3381,85 -34b3383,8 -34b3384,8c -34b3385,47 -34b3387,4 +34b3327,24 +34b3329,8 +34b332a,40 +34b332b,80 +34b332c,31 +34b332d,8 +34b332e,f +34b332f,ff +34b3331,e8 +34b3332,38 +34b3333,25 +34b3334,af +34b3335,a7 +34b3337,4 +34b3338,3c +34b3339,2 +34b333a,e1 +34b333c,af +34b333d,a2 +34b333f,8 +34b3341,66 +34b3343,18 +34b3346,30 +34b3347,12 +34b3349,6 +34b334a,31 +34b334b,40 +34b334c,30 +34b334d,c6 +34b334e,ff +34b334f,ff +34b3350,af +34b3351,a6 +34b3353,c +34b3354,3c +34b3355,2 +34b3356,f1 +34b3358,af +34b3359,a2 +34b335b,10 +34b335d,3 +34b335e,1a +34b335f,80 +34b3360,15 +34b3361,40 +34b3363,2 +34b3365,6a +34b3367,1a +34b3369,7 +34b336b,d +34b336e,18 +34b336f,12 +34b3370,30 +34b3371,63 +34b3372,ff +34b3373,ff +34b3375,9 +34b3376,4c +34b3379,69 +34b337a,18 +34b337b,25 +34b337c,af +34b337d,a3 +34b337f,14 +34b3380,3 +34b3381,a0 +34b3382,10 +34b3383,25 +34b3384,27 +34b3385,a8 +34b3387,18 34b3388,8c -34b3389,46 -34b338c,ac -34b338d,67 -34b338f,4 -34b3390,24 -34b3391,42 +34b3389,83 +34b338b,8 +34b338c,24 +34b338d,65 +34b338f,8 +34b3390,ac +34b3391,85 34b3393,8 -34b3394,14 -34b3395,48 -34b3396,ff -34b3397,f8 -34b3398,ac -34b3399,66 -34b339c,3 -34b339d,e0 -34b339f,8 -34b33a0,27 -34b33a1,bd -34b33a3,18 -34b33a4,8c -34b33a5,82 -34b33a7,8 -34b33a8,24 -34b33a9,43 -34b33ab,8 -34b33ac,ac -34b33ad,83 +34b3394,8c +34b3395,47 +34b3397,4 +34b3398,8c +34b3399,46 +34b339c,ac +34b339d,67 +34b339f,4 +34b33a0,24 +34b33a1,42 +34b33a3,8 +34b33a4,14 +34b33a5,48 +34b33a6,ff +34b33a7,f8 +34b33a8,ac +34b33a9,66 +34b33ac,3 +34b33ad,e0 34b33af,8 -34b33b0,3c -34b33b1,3 -34b33b2,e7 -34b33b4,ac -34b33b5,43 -34b33b8,ac -34b33b9,40 -34b33bb,4 -34b33bc,8c -34b33bd,82 +34b33b0,27 +34b33b1,bd +34b33b3,18 +34b33b4,8c +34b33b5,82 +34b33b7,8 +34b33b8,24 +34b33b9,43 +34b33bb,8 +34b33bc,ac +34b33bd,83 34b33bf,8 -34b33c0,24 -34b33c1,43 -34b33c3,8 +34b33c0,3c +34b33c1,3 +34b33c2,e7 34b33c4,ac -34b33c5,83 -34b33c7,8 -34b33c8,3c -34b33c9,3 -34b33ca,d9 -34b33cc,ac -34b33cd,43 -34b33d0,ac -34b33d1,40 -34b33d3,4 -34b33d4,8c -34b33d5,82 +34b33c5,43 +34b33c8,ac +34b33c9,40 +34b33cb,4 +34b33cc,8c +34b33cd,82 +34b33cf,8 +34b33d0,24 +34b33d1,43 +34b33d3,8 +34b33d4,ac +34b33d5,83 34b33d7,8 -34b33d8,24 -34b33d9,43 -34b33db,8 +34b33d8,3c +34b33d9,3 +34b33da,d9 34b33dc,ac -34b33dd,83 -34b33df,8 -34b33e0,3c -34b33e1,3 -34b33e2,ed -34b33e4,ac -34b33e5,43 -34b33e8,3c -34b33e9,5 -34b33eb,50 -34b33ec,24 -34b33ed,a3 -34b33ee,3 -34b33ef,c0 -34b33f0,ac -34b33f1,43 -34b33f3,4 -34b33f4,8c -34b33f5,83 -34b33f7,8 -34b33f8,24 -34b33f9,62 -34b33fb,8 -34b33fc,ac -34b33fd,82 -34b33ff,8 -34b3400,3c -34b3401,2 -34b3402,e3 -34b3404,24 -34b3405,46 -34b3406,1a -34b3407,1 -34b3408,ac -34b3409,66 -34b340c,24 -34b340d,6 -34b340f,30 -34b3410,ac -34b3411,66 -34b3413,4 -34b3414,8c -34b3415,83 -34b3417,8 -34b3418,24 +34b33dd,43 +34b33e0,ac +34b33e1,40 +34b33e3,4 +34b33e4,8c +34b33e5,82 +34b33e7,8 +34b33e8,24 +34b33e9,43 +34b33eb,8 +34b33ec,ac +34b33ed,83 +34b33ef,8 +34b33f0,3c +34b33f1,3 +34b33f2,ed +34b33f4,ac +34b33f5,43 +34b33f8,3c +34b33f9,5 +34b33fb,50 +34b33fc,24 +34b33fd,a3 +34b33fe,3 +34b33ff,c0 +34b3400,ac +34b3401,43 +34b3403,4 +34b3404,8c +34b3405,83 +34b3407,8 +34b3408,24 +34b3409,62 +34b340b,8 +34b340c,ac +34b340d,82 +34b340f,8 +34b3410,3c +34b3411,2 +34b3412,e3 +34b3414,24 +34b3415,46 +34b3416,1a +34b3417,1 +34b3418,ac 34b3419,66 -34b341b,8 -34b341c,ac -34b341d,86 -34b341f,8 -34b3420,24 -34b3421,46 -34b3422,18 -34b3423,1 -34b3424,ac -34b3425,66 +34b341c,24 +34b341d,6 +34b341f,30 +34b3420,ac +34b3421,66 +34b3423,4 +34b3424,8c +34b3425,83 +34b3427,8 34b3428,24 -34b3429,6 -34b342b,c0 +34b3429,66 +34b342b,8 34b342c,ac -34b342d,66 -34b342f,4 -34b3430,8c -34b3431,86 -34b3433,8 -34b3434,24 -34b3435,c3 -34b3437,8 -34b3438,ac -34b3439,83 -34b343b,8 -34b343c,3c -34b343d,3 -34b343e,e2 -34b3440,24 -34b3441,67 -34b3442,1e -34b3443,1 -34b3444,ac -34b3445,c7 +34b342d,86 +34b342f,8 +34b3430,24 +34b3431,46 +34b3432,18 +34b3433,1 +34b3434,ac +34b3435,66 +34b3438,24 +34b3439,6 +34b343b,c0 +34b343c,ac +34b343d,66 +34b343f,4 +34b3440,8c +34b3441,86 +34b3443,8 +34b3444,24 +34b3445,c3 +34b3447,8 34b3448,ac -34b3449,c0 -34b344b,4 -34b344c,8c -34b344d,86 -34b344f,8 +34b3449,83 +34b344b,8 +34b344c,3c +34b344d,3 +34b344e,e2 34b3450,24 -34b3451,c7 -34b3453,8 +34b3451,67 +34b3452,1e +34b3453,1 34b3454,ac -34b3455,87 -34b3457,8 -34b3458,24 -34b3459,67 -34b345a,1d -34b345c,ac -34b345d,c7 +34b3455,c7 +34b3458,ac +34b3459,c0 +34b345b,4 +34b345c,8c +34b345d,86 +34b345f,8 34b3460,24 -34b3461,7 -34b3463,4 +34b3461,c7 +34b3463,8 34b3464,ac -34b3465,c7 -34b3467,4 -34b3468,8c -34b3469,86 -34b346b,8 -34b346c,24 +34b3465,87 +34b3467,8 +34b3468,24 +34b3469,67 +34b346a,1d +34b346c,ac 34b346d,c7 -34b346f,8 -34b3470,ac -34b3471,87 -34b3473,8 -34b3474,24 -34b3475,47 -34b3476,17 -34b3478,ac -34b3479,c7 -34b347c,ac -34b347d,c0 -34b347f,4 -34b3480,8c -34b3481,86 +34b3470,24 +34b3471,7 +34b3473,4 +34b3474,ac +34b3475,c7 +34b3477,4 +34b3478,8c +34b3479,86 +34b347b,8 +34b347c,24 +34b347d,c7 +34b347f,8 +34b3480,ac +34b3481,87 34b3483,8 34b3484,24 -34b3485,c7 -34b3487,8 +34b3485,47 +34b3486,17 34b3488,ac -34b3489,87 -34b348b,8 -34b348c,24 -34b348d,47 -34b348e,14 -34b348f,2 -34b3490,ac -34b3491,c7 +34b3489,c7 +34b348c,ac +34b348d,c0 +34b348f,4 +34b3490,8c +34b3491,86 +34b3493,8 34b3494,24 -34b3495,7 -34b3496,c +34b3495,c7 +34b3497,8 34b3498,ac -34b3499,c7 -34b349b,4 -34b349c,8c -34b349d,86 -34b349f,8 -34b34a0,24 +34b3499,87 +34b349b,8 +34b349c,24 +34b349d,47 +34b349e,14 +34b349f,2 +34b34a0,ac 34b34a1,c7 -34b34a3,8 -34b34a4,ac -34b34a5,87 -34b34a7,8 -34b34a8,24 -34b34a9,47 -34b34aa,d -34b34ab,1 -34b34ac,ac -34b34ad,c7 -34b34b0,ac -34b34b1,c0 -34b34b3,4 -34b34b4,8c -34b34b5,86 +34b34a4,24 +34b34a5,7 +34b34a6,c +34b34a8,ac +34b34a9,c7 +34b34ab,4 +34b34ac,8c +34b34ad,86 +34b34af,8 +34b34b0,24 +34b34b1,c7 +34b34b3,8 +34b34b4,ac +34b34b5,87 34b34b7,8 34b34b8,24 -34b34b9,c7 -34b34bb,8 +34b34b9,47 +34b34ba,d +34b34bb,1 34b34bc,ac -34b34bd,87 -34b34bf,8 -34b34c0,24 -34b34c1,47 -34b34c2,c -34b34c4,ac -34b34c5,c7 -34b34c8,ac -34b34c9,c0 -34b34cb,4 -34b34cc,8c -34b34cd,86 +34b34bd,c7 +34b34c0,ac +34b34c1,c0 +34b34c3,4 +34b34c4,8c +34b34c5,86 +34b34c7,8 +34b34c8,24 +34b34c9,c7 +34b34cb,8 +34b34cc,ac +34b34cd,87 34b34cf,8 34b34d0,24 -34b34d1,c7 -34b34d3,8 +34b34d1,47 +34b34d2,c 34b34d4,ac -34b34d5,87 -34b34d7,8 -34b34d8,24 -34b34d9,47 -34b34da,f -34b34dc,ac -34b34dd,c7 -34b34e0,ac -34b34e1,c0 -34b34e3,4 -34b34e4,8c -34b34e5,86 +34b34d5,c7 +34b34d8,ac +34b34d9,c0 +34b34db,4 +34b34dc,8c +34b34dd,86 +34b34df,8 +34b34e0,24 +34b34e1,c7 +34b34e3,8 +34b34e4,ac +34b34e5,87 34b34e7,8 34b34e8,24 -34b34e9,c7 -34b34eb,8 +34b34e9,47 +34b34ea,f 34b34ec,ac -34b34ed,87 -34b34ef,8 -34b34f0,24 -34b34f1,47 -34b34f2,10 -34b34f3,1 -34b34f4,ac -34b34f5,c7 -34b34f8,ac -34b34f9,c0 -34b34fb,4 -34b34fc,8c -34b34fd,86 +34b34ed,c7 +34b34f0,ac +34b34f1,c0 +34b34f3,4 +34b34f4,8c +34b34f5,86 +34b34f7,8 +34b34f8,24 +34b34f9,c7 +34b34fb,8 +34b34fc,ac +34b34fd,87 34b34ff,8 34b3500,24 -34b3501,c7 -34b3503,8 +34b3501,47 +34b3502,10 +34b3503,1 34b3504,ac -34b3505,87 -34b3507,8 -34b3508,24 -34b3509,47 -34b350a,8 -34b350c,ac -34b350d,c7 -34b3510,ac -34b3511,c0 -34b3513,4 -34b3514,8c -34b3515,86 +34b3505,c7 +34b3508,ac +34b3509,c0 +34b350b,4 +34b350c,8c +34b350d,86 +34b350f,8 +34b3510,24 +34b3511,c7 +34b3513,8 +34b3514,ac +34b3515,87 34b3517,8 34b3518,24 -34b3519,c7 -34b351b,8 +34b3519,47 +34b351a,8 34b351c,ac -34b351d,87 -34b351f,8 -34b3520,24 -34b3521,47 -34b3522,a -34b3523,1 -34b3524,ac -34b3525,c7 -34b3528,ac -34b3529,c0 -34b352b,4 -34b352c,8c -34b352d,86 +34b351d,c7 +34b3520,ac +34b3521,c0 +34b3523,4 +34b3524,8c +34b3525,86 +34b3527,8 +34b3528,24 +34b3529,c7 +34b352b,8 +34b352c,ac +34b352d,87 34b352f,8 34b3530,24 -34b3531,c7 -34b3533,8 +34b3531,47 +34b3532,a +34b3533,1 34b3534,ac -34b3535,87 -34b3537,8 -34b3538,24 -34b3539,63 -34b353b,1c -34b353c,ac -34b353d,c3 +34b3535,c7 +34b3538,ac +34b3539,c0 +34b353b,4 +34b353c,8c +34b353d,86 +34b353f,8 34b3540,24 -34b3541,a5 -34b3542,42 -34b3543,40 +34b3541,c7 +34b3543,8 34b3544,ac -34b3545,c5 -34b3547,4 -34b3548,8c -34b3549,83 -34b354b,8 -34b354c,24 -34b354d,65 -34b354f,8 -34b3550,ac -34b3551,85 -34b3553,8 -34b3554,24 -34b3555,42 -34b3556,12 -34b3557,1 -34b3558,ac -34b3559,62 +34b3545,87 +34b3547,8 +34b3548,24 +34b3549,63 +34b354b,1c +34b354c,ac +34b354d,c3 +34b3550,24 +34b3551,a5 +34b3552,42 +34b3553,40 +34b3554,ac +34b3555,c5 +34b3557,4 +34b3558,8c +34b3559,83 +34b355b,8 34b355c,24 -34b355d,2 -34b355e,20 +34b355d,65 +34b355f,8 34b3560,ac -34b3561,62 -34b3563,4 -34b3564,8c -34b3565,82 -34b3567,8 -34b3568,24 -34b3569,43 -34b356b,8 -34b356c,ac -34b356d,83 -34b356f,8 -34b3570,3c -34b3571,3 -34b3572,df -34b3574,ac -34b3575,43 -34b3578,3 -34b3579,e0 +34b3561,85 +34b3563,8 +34b3564,24 +34b3565,42 +34b3566,12 +34b3567,1 +34b3568,ac +34b3569,62 +34b356c,24 +34b356d,2 +34b356e,20 +34b3570,ac +34b3571,62 +34b3573,4 +34b3574,8c +34b3575,82 +34b3577,8 +34b3578,24 +34b3579,43 34b357b,8 34b357c,ac -34b357d,40 -34b357f,4 -34b3580,27 -34b3581,bd -34b3582,ff -34b3583,c8 -34b3584,af -34b3585,bf -34b3587,34 -34b3588,af -34b3589,b1 -34b358b,30 -34b358c,af -34b358d,b0 -34b358f,2c -34b3590,af -34b3591,a0 -34b3593,10 -34b3594,3c -34b3595,2 -34b3596,1 -34b3597,a0 -34b3598,24 -34b3599,42 -34b359a,20 +34b357d,83 +34b357f,8 +34b3580,3c +34b3581,3 +34b3582,df +34b3584,ac +34b3585,43 +34b3588,3 +34b3589,e0 +34b358b,8 +34b358c,ac +34b358d,40 +34b358f,4 +34b3590,27 +34b3591,bd +34b3592,ff +34b3593,c8 +34b3594,af +34b3595,bf +34b3597,34 +34b3598,af +34b3599,b1 +34b359b,30 34b359c,af -34b359d,a2 -34b359f,14 -34b35a0,3c -34b35a1,10 -34b35a3,3 -34b35a4,36 +34b359d,b0 +34b359f,2c +34b35a0,af +34b35a1,a0 +34b35a3,10 +34b35a4,3c 34b35a5,2 -34b35a6,95 -34b35a7,c0 -34b35a8,af -34b35a9,a2 -34b35ab,18 -34b35ac,c -34b35ad,10 -34b35ae,15 -34b35af,c4 -34b35b0,27 -34b35b1,a4 -34b35b3,10 -34b35b4,af -34b35b5,a0 -34b35b7,1c -34b35b8,3c -34b35b9,2 -34b35bb,84 -34b35bc,24 -34b35bd,42 -34b35be,60 -34b35c0,af -34b35c1,a2 -34b35c3,20 -34b35c4,34 -34b35c5,2 -34b35c6,b4 -34b35c8,af -34b35c9,a2 -34b35cb,24 -34b35cc,c -34b35cd,10 -34b35ce,15 -34b35cf,c4 -34b35d0,27 -34b35d1,a4 -34b35d3,1c -34b35d4,8f -34b35d5,a2 -34b35d7,10 -34b35d8,26 -34b35d9,10 -34b35da,a3 -34b35dd,50 -34b35de,80 -34b35df,21 -34b35e0,3c -34b35e1,3 -34b35e2,80 -34b35e3,40 -34b35e4,ac -34b35e5,70 -34b35e6,63 -34b35e7,f8 -34b35e8,24 -34b35e9,42 -34b35ea,29 -34b35eb,80 -34b35ec,3c -34b35ed,3 +34b35a6,1 +34b35a7,a0 +34b35a8,24 +34b35a9,42 +34b35aa,20 +34b35ac,af +34b35ad,a2 +34b35af,14 +34b35b0,3c +34b35b1,10 +34b35b3,3 +34b35b4,36 +34b35b5,2 +34b35b6,95 +34b35b7,c0 +34b35b8,af +34b35b9,a2 +34b35bb,18 +34b35bc,c +34b35bd,10 +34b35be,15 +34b35bf,c8 +34b35c0,27 +34b35c1,a4 +34b35c3,10 +34b35c4,af +34b35c5,a0 +34b35c7,1c +34b35c8,3c +34b35c9,2 +34b35cb,84 +34b35cc,24 +34b35cd,42 +34b35ce,60 +34b35d0,af +34b35d1,a2 +34b35d3,20 +34b35d4,34 +34b35d5,2 +34b35d6,b4 +34b35d8,af +34b35d9,a2 +34b35db,24 +34b35dc,c +34b35dd,10 +34b35de,15 +34b35df,c8 +34b35e0,27 +34b35e1,a4 +34b35e3,1c +34b35e4,8f +34b35e5,a2 +34b35e7,10 +34b35e8,26 +34b35e9,10 +34b35ea,a3 +34b35ed,50 34b35ee,80 -34b35ef,40 -34b35f0,ac -34b35f1,62 -34b35f2,63 -34b35f3,e8 -34b35f4,3c -34b35f5,2 -34b35f6,80 -34b35f7,40 -34b35f8,8f -34b35f9,a3 -34b35fb,1c -34b35fc,ac -34b35fd,43 -34b35fe,63 -34b35ff,d8 -34b3600,3c -34b3601,11 -34b3602,80 -34b3603,40 -34b3604,c -34b3605,10 -34b3606,14 -34b3607,10 -34b3608,26 -34b3609,24 -34b360a,63 -34b360b,c8 -34b360d,40 -34b360e,80 -34b360f,25 -34b3610,c -34b3611,10 -34b3612,15 -34b3613,b7 -34b3615,40 -34b3616,20 -34b3617,25 -34b3619,10 -34b361a,4f -34b361b,c2 -34b361c,1 -34b361d,30 -34b361e,48 -34b361f,21 -34b3620,2a +34b35ef,21 +34b35f0,3c +34b35f1,3 +34b35f2,80 +34b35f3,40 +34b35f4,ac +34b35f5,70 +34b35f6,64 +34b35f7,5c +34b35f8,24 +34b35f9,42 +34b35fa,29 +34b35fb,80 +34b35fc,3c +34b35fd,3 +34b35fe,80 +34b35ff,40 +34b3600,ac +34b3601,62 +34b3602,64 +34b3603,4c +34b3604,3c +34b3605,2 +34b3606,80 +34b3607,40 +34b3608,8f +34b3609,a3 +34b360b,1c +34b360c,ac +34b360d,43 +34b360e,64 +34b360f,3c +34b3610,3c +34b3611,11 +34b3612,80 +34b3613,40 +34b3614,c +34b3615,10 +34b3616,14 +34b3617,10 +34b3618,26 +34b3619,24 +34b361a,64 +34b361b,2c +34b361d,40 +34b361e,80 +34b361f,25 +34b3620,c 34b3621,10 -34b3623,2 -34b3624,16 -34b3627,18 -34b3628,ae -34b3629,22 -34b362a,63 -34b362b,c8 -34b362d,9 +34b3622,15 +34b3623,bb +34b3625,40 +34b3626,20 +34b3627,25 +34b3629,10 +34b362a,4f +34b362b,c2 +34b362c,1 +34b362d,30 34b362e,48 -34b362f,43 -34b3630,3c -34b3631,3 -34b3632,80 -34b3633,40 -34b3634,24 -34b3635,63 -34b3636,65 -34b3637,6 -34b363a,20 -34b363b,25 -34b363e,30 -34b363f,25 -34b3640,2 -34b3641,20 -34b3642,40 -34b3643,25 +34b362f,21 +34b3630,2a +34b3631,10 +34b3633,2 +34b3634,16 +34b3637,18 +34b3638,ae +34b3639,22 +34b363a,64 +34b363b,2c +34b363d,9 +34b363e,48 +34b363f,43 +34b3640,3c +34b3641,3 +34b3642,80 +34b3643,40 34b3644,24 -34b3645,7 -34b3646,ff -34b3647,f0 -34b3648,8d -34b3649,5 -34b364a,63 -34b364b,c8 -34b364d,a4 -34b364e,28 -34b364f,21 -34b3650,90 -34b3651,62 -34b3655,2 -34b3656,11 -34b3657,2 -34b3659,47 -34b365a,10 -34b365b,25 -34b365c,a0 -34b365d,a2 -34b3660,8d -34b3661,2 -34b3662,63 -34b3663,c8 -34b3665,44 -34b3666,10 -34b3667,21 -34b3668,90 -34b3669,65 -34b366d,a7 -34b366e,28 -34b366f,25 -34b3670,a0 -34b3671,45 -34b3673,1 -34b3674,24 -34b3675,c6 -34b3677,1 -34b3678,24 -34b3679,63 -34b367b,1 -34b367d,c9 -34b367e,10 -34b367f,2a -34b3680,14 -34b3681,40 -34b3682,ff -34b3683,f1 +34b3645,63 +34b3646,65 +34b3647,6e +34b364a,20 +34b364b,25 +34b364e,30 +34b364f,25 +34b3650,2 +34b3651,20 +34b3652,40 +34b3653,25 +34b3654,24 +34b3655,7 +34b3656,ff +34b3657,f0 +34b3658,8d +34b3659,5 +34b365a,64 +34b365b,2c +34b365d,a4 +34b365e,28 +34b365f,21 +34b3660,90 +34b3661,62 +34b3665,2 +34b3666,11 +34b3667,2 +34b3669,47 +34b366a,10 +34b366b,25 +34b366c,a0 +34b366d,a2 +34b3670,8d +34b3671,2 +34b3672,64 +34b3673,2c +34b3675,44 +34b3676,10 +34b3677,21 +34b3678,90 +34b3679,65 +34b367d,a7 +34b367e,28 +34b367f,25 +34b3680,a0 +34b3681,45 +34b3683,1 34b3684,24 -34b3685,84 -34b3687,2 -34b3688,c -34b3689,10 -34b368a,15 -34b368b,b7 -34b368c,24 -34b368d,4 -34b368e,1 -34b3690,3c -34b3691,4 -34b3692,80 -34b3693,40 +34b3685,c6 +34b3687,1 +34b3688,24 +34b3689,63 +34b368b,1 +34b368d,c9 +34b368e,10 +34b368f,2a +34b3690,14 +34b3691,40 +34b3692,ff +34b3693,f1 34b3694,24 -34b3695,3 -34b3696,1 -34b3698,ac -34b3699,83 -34b369a,64 -34b369b,e8 +34b3695,84 +34b3697,2 +34b3698,c +34b3699,10 +34b369a,15 +34b369b,bb 34b369c,24 -34b369d,84 -34b369e,64 -34b369f,e8 -34b36a0,ac -34b36a1,82 -34b36a3,4 -34b36a4,ac -34b36a5,82 -34b36a7,8 -34b36a8,24 -34b36a9,42 -34b36aa,1 -34b36ac,c -34b36ad,10 -34b36ae,14 -34b36af,e9 +34b369d,4 +34b369e,1 +34b36a0,3c +34b36a1,4 +34b36a2,80 +34b36a3,40 +34b36a4,24 +34b36a5,3 +34b36a6,1 +34b36a8,ac +34b36a9,83 +34b36aa,65 +34b36ab,50 +34b36ac,24 +34b36ad,84 +34b36ae,65 +34b36af,50 34b36b0,ac 34b36b1,82 -34b36b3,c -34b36b4,8f -34b36b5,bf -34b36b7,34 -34b36b8,8f -34b36b9,b1 -34b36bb,30 -34b36bc,8f -34b36bd,b0 -34b36bf,2c -34b36c0,3 -34b36c1,e0 -34b36c3,8 -34b36c4,27 -34b36c5,bd -34b36c7,38 -34b36c8,3c -34b36c9,3 -34b36ca,80 -34b36cb,40 -34b36cc,3c -34b36cd,2 -34b36ce,80 -34b36cf,50 -34b36d0,24 -34b36d1,42 -34b36d4,3 -34b36d5,e0 -34b36d7,8 -34b36d8,ac -34b36d9,62 -34b36da,64 -34b36db,d0 -34b36dd,4 -34b36de,17 -34b36df,c3 -34b36e1,2 -34b36e2,1f -34b36e3,2 -34b36e5,83 -34b36e6,10 -34b36e7,21 -34b36e8,30 -34b36e9,42 -34b36eb,f -34b36ed,43 -34b36ee,10 -34b36ef,23 -34b36f0,10 -34b36f1,40 -34b36f3,3 -34b36f4,3c -34b36f5,3 -34b36f6,80 -34b36f7,40 -34b36f9,82 -34b36fa,20 -34b36fb,23 -34b36fc,24 -34b36fd,84 -34b36ff,10 -34b3700,8c -34b3701,62 -34b3702,64 -34b3703,d0 -34b3705,44 -34b3706,20 -34b3707,21 -34b3708,3 -34b3709,e0 -34b370b,8 -34b370c,ac -34b370d,64 -34b370e,64 -34b370f,d0 -34b3710,27 -34b3711,bd -34b3712,ff -34b3713,e8 -34b3714,af -34b3715,bf -34b3717,14 -34b3718,af -34b3719,b0 -34b371b,10 -34b371d,80 -34b371e,80 -34b371f,25 -34b3720,c -34b3721,10 -34b3722,15 -34b3723,b7 -34b3724,8c -34b3725,84 -34b3727,8 -34b3728,ae -34b3729,2 -34b372c,8e -34b372d,6 -34b372f,8 -34b3731,40 -34b3732,20 -34b3733,25 -34b3734,3c -34b3735,2 -34b3736,80 -34b3738,24 -34b3739,42 -34b373a,d -34b373b,f0 -34b373d,40 -34b373e,f8 -34b373f,9 -34b3740,8e -34b3741,5 -34b3743,4 -34b3744,8f -34b3745,bf -34b3747,14 -34b3748,8f -34b3749,b0 -34b374b,10 -34b374c,3 -34b374d,e0 -34b374f,8 -34b3750,27 -34b3751,bd -34b3753,18 -34b3754,27 -34b3755,bd -34b3756,ff -34b3757,e8 -34b3758,af -34b3759,bf -34b375b,14 -34b375c,c -34b375d,10 -34b375e,15 -34b375f,b2 -34b3764,c -34b3765,10 -34b3766,15 -34b3767,60 +34b36b3,4 +34b36b4,ac +34b36b5,82 +34b36b7,8 +34b36b8,24 +34b36b9,42 +34b36ba,1 +34b36bc,c +34b36bd,10 +34b36be,14 +34b36bf,ed +34b36c0,ac +34b36c1,82 +34b36c3,c +34b36c4,8f +34b36c5,bf +34b36c7,34 +34b36c8,8f +34b36c9,b1 +34b36cb,30 +34b36cc,8f +34b36cd,b0 +34b36cf,2c +34b36d0,3 +34b36d1,e0 +34b36d3,8 +34b36d4,27 +34b36d5,bd +34b36d7,38 +34b36d8,3c +34b36d9,3 +34b36da,80 +34b36db,40 +34b36dc,3c +34b36dd,2 +34b36de,80 +34b36df,50 +34b36e0,24 +34b36e1,42 +34b36e4,3 +34b36e5,e0 +34b36e7,8 +34b36e8,ac +34b36e9,62 +34b36ea,65 +34b36eb,34 +34b36ed,4 +34b36ee,17 +34b36ef,c3 +34b36f1,2 +34b36f2,1f +34b36f3,2 +34b36f5,83 +34b36f6,10 +34b36f7,21 +34b36f8,30 +34b36f9,42 +34b36fb,f +34b36fd,43 +34b36fe,10 +34b36ff,23 +34b3700,10 +34b3701,40 +34b3703,3 +34b3704,3c +34b3705,3 +34b3706,80 +34b3707,40 +34b3709,82 +34b370a,20 +34b370b,23 +34b370c,24 +34b370d,84 +34b370f,10 +34b3710,8c +34b3711,62 +34b3712,65 +34b3713,34 +34b3715,44 +34b3716,20 +34b3717,21 +34b3718,3 +34b3719,e0 +34b371b,8 +34b371c,ac +34b371d,64 +34b371e,65 +34b371f,34 +34b3720,27 +34b3721,bd +34b3722,ff +34b3723,e8 +34b3724,af +34b3725,bf +34b3727,14 +34b3728,af +34b3729,b0 +34b372b,10 +34b372d,80 +34b372e,80 +34b372f,25 +34b3730,c +34b3731,10 +34b3732,15 +34b3733,bb +34b3734,8c +34b3735,84 +34b3737,8 +34b3738,ae +34b3739,2 +34b373c,8e +34b373d,6 +34b373f,8 +34b3741,40 +34b3742,20 +34b3743,25 +34b3744,3c +34b3745,2 +34b3746,80 +34b3748,24 +34b3749,42 +34b374a,d +34b374b,f0 +34b374d,40 +34b374e,f8 +34b374f,9 +34b3750,8e +34b3751,5 +34b3753,4 +34b3754,8f +34b3755,bf +34b3757,14 +34b3758,8f +34b3759,b0 +34b375b,10 +34b375c,3 +34b375d,e0 +34b375f,8 +34b3760,27 +34b3761,bd +34b3763,18 +34b3764,27 +34b3765,bd +34b3766,ff +34b3767,e8 +34b3768,af +34b3769,bf +34b376b,14 34b376c,c 34b376d,10 -34b376e,18 -34b376f,68 -34b3774,8f -34b3775,bf -34b3777,14 -34b3778,3 -34b3779,e0 -34b377b,8 -34b377c,27 -34b377d,bd -34b377f,18 -34b3780,27 -34b3781,bd -34b3782,ff -34b3783,e0 -34b3784,af +34b376e,15 +34b376f,b6 +34b3774,c +34b3775,10 +34b3776,15 +34b3777,64 +34b377c,c +34b377d,10 +34b377e,18 +34b377f,81 +34b3784,8f 34b3785,bf -34b3787,1c -34b3788,af -34b3789,b2 -34b378b,18 -34b378c,af -34b378d,b1 -34b378f,14 -34b3790,af -34b3791,b0 -34b3793,10 -34b3795,80 -34b3796,80 -34b3797,25 -34b3799,a0 -34b379a,88 -34b379b,25 -34b379c,3c -34b379d,2 -34b379e,80 -34b379f,1c -34b37a0,34 -34b37a1,42 -34b37a2,84 -34b37a3,a0 -34b37a4,3c -34b37a5,3 -34b37a7,1 -34b37a9,43 -34b37aa,10 -34b37ab,21 -34b37ac,94 -34b37ad,43 -34b37ae,9 -34b37af,34 -34b37b0,24 -34b37b1,2 -34b37b3,6 -34b37b4,14 -34b37b5,62 -34b37b7,15 -34b37b9,c0 -34b37ba,90 -34b37bb,25 -34b37bc,3c -34b37bd,2 -34b37be,80 -34b37bf,1c -34b37c0,34 -34b37c1,42 -34b37c2,84 -34b37c3,a0 -34b37c4,3c -34b37c5,3 -34b37c7,1 -34b37c9,43 -34b37ca,10 -34b37cb,21 -34b37cc,94 -34b37cd,42 -34b37ce,9 -34b37cf,48 -34b37d0,14 -34b37d1,40 -34b37d3,f -34b37d4,2 -34b37d5,40 -34b37d6,30 -34b37d7,25 -34b37d8,3c -34b37d9,2 -34b37da,80 -34b37db,1c -34b37dc,34 +34b3787,14 +34b3788,3 +34b3789,e0 +34b378b,8 +34b378c,27 +34b378d,bd +34b378f,18 +34b3790,27 +34b3791,bd +34b3792,ff +34b3793,e0 +34b3794,af +34b3795,bf +34b3797,1c +34b3798,af +34b3799,b2 +34b379b,18 +34b379c,af +34b379d,b1 +34b379f,14 +34b37a0,af +34b37a1,b0 +34b37a3,10 +34b37a5,80 +34b37a6,80 +34b37a7,25 +34b37a9,a0 +34b37aa,88 +34b37ab,25 +34b37ac,3c +34b37ad,2 +34b37ae,80 +34b37af,1c +34b37b0,34 +34b37b1,42 +34b37b2,84 +34b37b3,a0 +34b37b4,3c +34b37b5,3 +34b37b7,1 +34b37b9,43 +34b37ba,10 +34b37bb,21 +34b37bc,94 +34b37bd,43 +34b37be,9 +34b37bf,34 +34b37c0,24 +34b37c1,2 +34b37c3,6 +34b37c4,14 +34b37c5,62 +34b37c7,15 +34b37c9,c0 +34b37ca,90 +34b37cb,25 +34b37cc,3c +34b37cd,2 +34b37ce,80 +34b37cf,1c +34b37d0,34 +34b37d1,42 +34b37d2,84 +34b37d3,a0 +34b37d4,3c +34b37d5,3 +34b37d7,1 +34b37d9,43 +34b37da,10 +34b37db,21 +34b37dc,94 34b37dd,42 -34b37de,84 -34b37df,a0 -34b37e1,43 -34b37e2,10 -34b37e3,21 -34b37e4,94 -34b37e5,42 -34b37e6,9 -34b37e7,44 -34b37e8,14 -34b37e9,40 -34b37eb,a -34b37ec,2 -34b37ed,20 -34b37ee,28 -34b37ef,25 -34b37f0,3c -34b37f1,2 -34b37f2,80 -34b37f3,1c -34b37f4,34 +34b37de,9 +34b37df,48 +34b37e0,14 +34b37e1,40 +34b37e3,f +34b37e4,2 +34b37e5,40 +34b37e6,30 +34b37e7,25 +34b37e8,3c +34b37e9,2 +34b37ea,80 +34b37eb,1c +34b37ec,34 +34b37ed,42 +34b37ee,84 +34b37ef,a0 +34b37f1,43 +34b37f2,10 +34b37f3,21 +34b37f4,94 34b37f5,42 -34b37f6,84 -34b37f7,a0 -34b37f8,84 -34b37f9,42 -34b37fb,14 -34b37fc,4 -34b37fd,41 -34b37ff,5 -34b3804,c -34b3805,10 -34b3806,16 -34b3807,d -34b380c,2 -34b380d,40 -34b380e,30 -34b380f,25 -34b3810,2 -34b3811,20 -34b3812,28 -34b3813,25 +34b37f6,9 +34b37f7,44 +34b37f8,14 +34b37f9,40 +34b37fb,a +34b37fc,2 +34b37fd,20 +34b37fe,28 +34b37ff,25 +34b3800,3c +34b3801,2 +34b3802,80 +34b3803,1c +34b3804,34 +34b3805,42 +34b3806,84 +34b3807,a0 +34b3808,84 +34b3809,42 +34b380b,14 +34b380c,4 +34b380d,41 +34b380f,5 34b3814,c 34b3815,10 -34b3816,14 -34b3818,2 -34b381a,20 -34b381b,25 -34b381c,8f -34b381d,bf -34b381f,1c -34b3820,8f -34b3821,b2 -34b3823,18 -34b3824,8f -34b3825,b1 -34b3827,14 -34b3828,8f -34b3829,b0 -34b382b,10 -34b382c,3 -34b382d,e0 -34b382f,8 -34b3830,27 -34b3831,bd -34b3833,20 -34b3834,3c -34b3835,2 -34b3836,80 -34b3837,40 -34b3838,8c -34b3839,42 -34b383a,64 -34b383b,c8 -34b383c,10 -34b383d,40 -34b383e,2 -34b383f,56 -34b3840,3c -34b3841,3 -34b3842,80 -34b3843,40 -34b3844,27 -34b3845,bd -34b3846,ff -34b3847,98 -34b3848,af -34b3849,bf -34b384b,64 -34b384c,af -34b384d,be -34b384f,60 -34b3850,af -34b3851,b7 -34b3853,5c -34b3854,af -34b3855,b6 -34b3857,58 +34b3816,16 +34b3817,11 +34b381c,2 +34b381d,40 +34b381e,30 +34b381f,25 +34b3820,2 +34b3821,20 +34b3822,28 +34b3823,25 +34b3824,c +34b3825,10 +34b3826,14 +34b3828,2 +34b382a,20 +34b382b,25 +34b382c,8f +34b382d,bf +34b382f,1c +34b3830,8f +34b3831,b2 +34b3833,18 +34b3834,8f +34b3835,b1 +34b3837,14 +34b3838,8f +34b3839,b0 +34b383b,10 +34b383c,3 +34b383d,e0 +34b383f,8 +34b3840,27 +34b3841,bd +34b3843,20 +34b3844,3c +34b3845,2 +34b3846,80 +34b3847,40 +34b3848,8c +34b3849,42 +34b384a,65 +34b384b,2c +34b384c,10 +34b384d,40 +34b384e,2 +34b384f,6b +34b3850,3c +34b3851,3 +34b3852,80 +34b3853,40 +34b3854,27 +34b3855,bd +34b3856,ff +34b3857,90 34b3858,af -34b3859,b5 -34b385b,54 +34b3859,bf +34b385b,6c 34b385c,af -34b385d,b4 -34b385f,50 +34b385d,be +34b385f,68 34b3860,af -34b3861,b3 -34b3863,4c +34b3861,b7 +34b3863,64 34b3864,af -34b3865,b2 -34b3867,48 +34b3865,b6 +34b3867,60 34b3868,af -34b3869,b1 -34b386b,44 +34b3869,b5 +34b386b,5c 34b386c,af -34b386d,b0 -34b386f,40 -34b3870,8c -34b3871,82 -34b3873,4 -34b3874,8c -34b3875,63 -34b3876,64 -34b3877,ec -34b3878,24 -34b3879,45 -34b387b,8 -34b387c,ac -34b387d,85 -34b387f,8 -34b3880,3c -34b3881,5 -34b3882,de -34b3884,ac -34b3885,45 -34b3888,ac -34b3889,43 -34b388b,4 -34b388c,3c -34b388d,2 -34b388e,80 -34b388f,40 -34b3890,8c -34b3891,42 -34b3892,64 -34b3893,dc -34b3894,10 -34b3895,40 -34b3897,7 -34b389a,18 -34b389b,25 +34b386d,b4 +34b386f,58 +34b3870,af +34b3871,b3 +34b3873,54 +34b3874,af +34b3875,b2 +34b3877,50 +34b3878,af +34b3879,b1 +34b387b,4c +34b387c,af +34b387d,b0 +34b387f,48 +34b3880,8c +34b3881,82 +34b3883,4 +34b3884,8c +34b3885,63 +34b3886,65 +34b3887,54 +34b3888,24 +34b3889,45 +34b388b,8 +34b388c,ac +34b388d,85 +34b388f,8 +34b3890,3c +34b3891,5 +34b3892,de +34b3894,ac +34b3895,45 +34b3898,ac +34b3899,43 +34b389b,4 34b389c,3c 34b389d,2 34b389e,80 -34b389f,40 -34b38a0,94 -34b38a1,43 -34b38a2,63 -34b38a3,cc -34b38a5,3 -34b38a6,10 -34b38a7,40 -34b38a9,43 -34b38aa,10 -34b38ab,21 -34b38ad,2 -34b38ae,10 -34b38af,40 -34b38b0,24 -34b38b1,43 -34b38b3,2 -34b38b4,3c -34b38b5,2 -34b38b6,80 -34b38b7,40 -34b38b8,94 -34b38b9,42 -34b38ba,63 -34b38bb,cc -34b38bd,2 -34b38be,10 -34b38bf,c0 -34b38c0,24 -34b38c1,42 -34b38c3,5e -34b38c5,43 -34b38c6,10 -34b38c7,21 +34b389f,11 +34b38a0,34 +34b38a1,42 +34b38a2,a5 +34b38a3,d0 +34b38a4,94 +34b38a5,54 +34b38a6,f +34b38a7,2e +34b38a8,3c +34b38a9,2 +34b38aa,80 +34b38ab,40 +34b38ac,8c +34b38ad,42 +34b38ae,65 +34b38af,38 +34b38b0,50 +34b38b1,40 +34b38b3,5 +34b38b4,24 +34b38b5,8 +34b38b7,1 +34b38b8,32 +34b38b9,88 +34b38bb,1 +34b38bd,14 +34b38be,a0 +34b38bf,42 +34b38c0,10 +34b38c3,2 +34b38c4,32 +34b38c5,94 +34b38c7,1 34b38c8,24 -34b38c9,13 -34b38ca,1 -34b38cb,40 -34b38cc,2 -34b38cd,62 -34b38ce,98 -34b38cf,23 -34b38d1,13 -34b38d2,98 -34b38d3,43 -34b38d4,26 -34b38d5,77 -34b38d7,2 -34b38d8,8c -34b38d9,83 -34b38db,8 -34b38dc,24 -34b38dd,65 -34b38df,8 -34b38e0,ac -34b38e1,85 -34b38e3,8 -34b38e4,3c -34b38e5,5 -34b38e6,fc -34b38e7,ff -34b38e8,34 -34b38e9,a5 -34b38ea,ff -34b38eb,ff -34b38ec,ac -34b38ed,65 -34b38f0,3c -34b38f1,5 -34b38f2,ff -34b38f3,fd -34b38f4,34 -34b38f5,a5 -34b38f6,f6 -34b38f7,fb -34b38f8,ac -34b38f9,65 -34b38fb,4 -34b38fc,8c -34b38fd,83 -34b38ff,8 +34b38c9,14 +34b38cb,1 +34b38cc,3c +34b38cd,2 +34b38ce,80 +34b38cf,40 +34b38d0,8c +34b38d1,55 +34b38d2,65 +34b38d3,44 +34b38d4,12 +34b38d5,a0 +34b38d7,7 +34b38d8,2 +34b38d9,a0 +34b38da,18 +34b38db,25 +34b38dc,3c +34b38dd,2 +34b38de,80 +34b38df,40 +34b38e0,94 +34b38e1,43 +34b38e2,64 +34b38e3,30 +34b38e5,3 +34b38e6,10 +34b38e7,40 +34b38e9,43 +34b38ea,10 +34b38eb,21 +34b38ed,2 +34b38ee,10 +34b38ef,40 +34b38f0,24 +34b38f1,43 +34b38f3,2 +34b38f4,3c +34b38f5,2 +34b38f6,80 +34b38f7,40 +34b38f8,94 +34b38f9,42 +34b38fa,64 +34b38fb,30 +34b38fd,2 +34b38fe,10 +34b38ff,c0 34b3900,24 -34b3901,65 -34b3903,8 -34b3904,ac -34b3905,85 -34b3907,8 -34b3908,3c -34b3909,5 -34b390a,fa -34b390c,ac -34b390d,65 -34b3910,24 -34b3911,5 -34b3913,d0 -34b3914,ac -34b3915,65 -34b3917,4 -34b3919,53 -34b391a,10 -34b391b,21 -34b391d,2 -34b391e,13 -34b391f,80 -34b3920,3c -34b3921,3 -34b3923,ff -34b3924,34 -34b3925,63 -34b3926,f0 -34b3929,43 -34b392a,10 -34b392b,24 -34b392c,3c -34b392d,5 -34b392e,e4 -34b3930,24 -34b3931,a5 -34b3932,3 -34b3933,b8 -34b3935,45 -34b3936,10 -34b3937,25 -34b3938,af -34b3939,a2 -34b393b,20 -34b393d,13 -34b393e,13 -34b393f,80 -34b3941,43 -34b3942,10 -34b3943,24 -34b3944,34 -34b3945,42 -34b3947,8 -34b3948,af -34b3949,a2 -34b394b,24 -34b394c,3c -34b394d,2 -34b394e,e1 -34b3950,af -34b3951,a2 -34b3953,28 -34b3954,af -34b3955,a0 -34b3957,2c -34b3958,3c -34b3959,2 -34b395a,f1 -34b395c,af -34b395d,a2 -34b395f,30 -34b3960,3c -34b3961,2 -34b3962,4 -34b3964,24 -34b3965,42 -34b3966,4 -34b3968,af -34b3969,a2 -34b396b,34 -34b396c,27 -34b396d,a2 -34b396f,20 -34b3970,27 -34b3971,a8 -34b3973,38 -34b3974,8c -34b3975,83 -34b3977,8 -34b3978,24 -34b3979,65 -34b397b,8 -34b397c,ac -34b397d,85 -34b397f,8 -34b3980,8c -34b3981,47 -34b3983,4 -34b3984,8c -34b3985,46 -34b3988,ac -34b3989,67 -34b398b,4 -34b398c,24 -34b398d,42 -34b398f,8 -34b3990,15 -34b3991,2 -34b3992,ff -34b3993,f8 -34b3994,ac -34b3995,66 -34b3999,80 -34b399a,80 -34b399b,25 -34b399c,8c -34b399d,82 -34b399f,8 -34b39a0,24 -34b39a1,43 -34b39a3,8 -34b39a4,ac -34b39a5,83 -34b39a7,8 -34b39a8,3c -34b39a9,3 -34b39aa,e7 -34b39ac,ac -34b39ad,43 -34b39b0,ac -34b39b1,40 -34b39b3,4 -34b39b4,8c -34b39b5,82 -34b39b7,8 -34b39b8,24 -34b39b9,43 -34b39bb,8 -34b39bc,ac -34b39bd,83 -34b39bf,8 -34b39c0,3c -34b39c1,3 -34b39c2,fc -34b39c3,11 -34b39c4,34 -34b39c5,63 -34b39c6,96 -34b39c7,23 +34b3901,42 +34b3903,5e +34b3905,43 +34b3906,10 +34b3907,21 +34b3908,24 +34b3909,3 +34b390a,1 +34b390b,40 +34b390d,62 +34b390e,18 +34b390f,23 +34b3911,3 +34b3912,8f +34b3913,c2 +34b3914,2 +34b3915,23 +34b3916,88 +34b3917,21 +34b3919,11 +34b391a,88 +34b391b,43 +34b391c,26 +34b391d,23 +34b391f,2 +34b3920,af +34b3921,a3 +34b3923,38 +34b3924,8c +34b3925,83 +34b3927,8 +34b3928,24 +34b3929,65 +34b392b,8 +34b392c,ac +34b392d,85 +34b392f,8 +34b3930,3c +34b3931,5 +34b3932,fc +34b3933,ff +34b3934,34 +34b3935,a5 +34b3936,ff +34b3937,ff +34b3938,ac +34b3939,65 +34b393c,3c +34b393d,5 +34b393e,ff +34b393f,fd +34b3940,34 +34b3941,a5 +34b3942,f6 +34b3943,fb +34b3944,ac +34b3945,65 +34b3947,4 +34b3948,8c +34b3949,83 +34b394b,8 +34b394c,24 +34b394d,65 +34b394f,8 +34b3950,ac +34b3951,85 +34b3953,8 +34b3954,3c +34b3955,5 +34b3956,fa +34b3958,ac +34b3959,65 +34b395c,24 +34b395d,5 +34b395f,d0 +34b3960,ac +34b3961,65 +34b3963,4 +34b3965,51 +34b3966,10 +34b3967,21 +34b3969,2 +34b396a,13 +34b396b,80 +34b396c,3c +34b396d,3 +34b396f,ff +34b3970,34 +34b3971,63 +34b3972,f0 +34b3975,43 +34b3976,10 +34b3977,24 +34b3978,3c +34b3979,5 +34b397a,e4 +34b397c,24 +34b397d,a5 +34b397e,3 +34b397f,b8 +34b3981,45 +34b3982,10 +34b3983,25 +34b3984,af +34b3985,a2 +34b3987,20 +34b3989,11 +34b398a,13 +34b398b,80 +34b398d,43 +34b398e,10 +34b398f,24 +34b3990,34 +34b3991,42 +34b3993,8 +34b3994,af +34b3995,a2 +34b3997,24 +34b3998,3c +34b3999,2 +34b399a,e1 +34b399c,af +34b399d,a2 +34b399f,28 +34b39a0,af +34b39a1,a0 +34b39a3,2c +34b39a4,3c +34b39a5,2 +34b39a6,f1 +34b39a8,af +34b39a9,a2 +34b39ab,30 +34b39ac,3c +34b39ad,2 +34b39ae,4 +34b39b0,24 +34b39b1,42 +34b39b2,4 +34b39b4,af +34b39b5,a2 +34b39b7,34 +34b39b8,27 +34b39b9,a2 +34b39bb,20 +34b39bc,27 +34b39bd,a9 +34b39bf,38 +34b39c0,8c +34b39c1,83 +34b39c3,8 +34b39c4,24 +34b39c5,65 +34b39c7,8 34b39c8,ac -34b39c9,43 -34b39cc,3c -34b39cd,3 -34b39ce,ff -34b39cf,2f -34b39d0,34 -34b39d1,63 -34b39d2,ff -34b39d3,ff +34b39c9,85 +34b39cb,8 +34b39cc,8c +34b39cd,47 +34b39cf,4 +34b39d0,8c +34b39d1,46 34b39d4,ac -34b39d5,43 +34b39d5,67 34b39d7,4 -34b39d8,3c -34b39d9,5 -34b39da,80 -34b39db,40 -34b39dc,24 -34b39dd,a5 -34b39de,63 -34b39df,e8 -34b39e0,94 -34b39e1,a7 -34b39e3,8 -34b39e4,c -34b39e5,10 -34b39e6,14 -34b39e7,1c -34b39ea,30 -34b39eb,25 -34b39ec,3c -34b39ed,2 -34b39ee,80 -34b39ef,40 -34b39f0,8c -34b39f1,42 -34b39f2,64 -34b39f3,cc -34b39f4,18 -34b39f5,40 -34b39f7,42 -34b39f8,3c -34b39f9,2 -34b39fa,80 -34b39fb,40 -34b39fc,3c -34b39fd,12 -34b39fe,80 -34b39ff,40 -34b3a00,26 -34b3a01,52 -34b3a02,64 -34b3a03,2c -34b3a06,88 -34b3a07,25 -34b3a08,3c -34b3a09,16 -34b3a0a,80 -34b3a0b,40 +34b39d8,24 +34b39d9,42 +34b39db,8 +34b39dc,15 +34b39dd,22 +34b39de,ff +34b39df,f8 +34b39e0,ac +34b39e1,66 +34b39e5,80 +34b39e6,80 +34b39e7,25 +34b39e8,8c +34b39e9,82 +34b39eb,8 +34b39ec,24 +34b39ed,43 +34b39ef,8 +34b39f0,ac +34b39f1,83 +34b39f3,8 +34b39f4,3c +34b39f5,3 +34b39f6,e7 +34b39f8,ac +34b39f9,43 +34b39fc,ac +34b39fd,40 +34b39ff,4 +34b3a00,8c +34b3a01,82 +34b3a03,8 +34b3a04,24 +34b3a05,43 +34b3a07,8 +34b3a08,ac +34b3a09,83 +34b3a0b,8 34b3a0c,3c -34b3a0d,14 -34b3a0e,80 -34b3a0f,40 -34b3a10,26 -34b3a11,94 -34b3a12,64 -34b3a13,8 -34b3a14,3c -34b3a15,1e -34b3a16,80 -34b3a17,40 -34b3a18,27 -34b3a19,de -34b3a1a,64 -34b3a1b,18 -34b3a1c,24 -34b3a1d,42 -34b3a1e,63 -34b3a1f,e8 -34b3a20,af -34b3a21,a2 -34b3a23,38 -34b3a24,3c -34b3a25,15 -34b3a26,80 -34b3a27,40 -34b3a28,8e -34b3a29,c2 -34b3a2a,64 -34b3a2b,d4 -34b3a2c,50 -34b3a2d,40 -34b3a2f,b -34b3a30,92 -34b3a31,42 -34b3a34,92 -34b3a35,43 -34b3a38,3c -34b3a39,2 -34b3a3a,80 -34b3a3b,11 -34b3a3c,34 -34b3a3d,42 -34b3a3e,a5 -34b3a3f,d0 -34b3a41,43 -34b3a42,10 -34b3a43,21 -34b3a44,90 -34b3a45,42 -34b3a47,a8 +34b3a0d,3 +34b3a0e,fc +34b3a0f,11 +34b3a10,34 +34b3a11,63 +34b3a12,96 +34b3a13,23 +34b3a14,ac +34b3a15,43 +34b3a18,3c +34b3a19,3 +34b3a1a,ff +34b3a1b,2f +34b3a1c,34 +34b3a1d,63 +34b3a1e,ff +34b3a1f,ff +34b3a20,11 +34b3a23,4d +34b3a24,ac +34b3a25,43 +34b3a27,4 +34b3a28,3c +34b3a29,5 +34b3a2a,80 +34b3a2b,40 +34b3a2c,24 +34b3a2d,a5 +34b3a2e,64 +34b3a2f,4c +34b3a30,94 +34b3a31,a7 +34b3a33,8 +34b3a34,c +34b3a35,10 +34b3a36,14 +34b3a37,1c +34b3a3a,30 +34b3a3b,25 +34b3a3c,3c +34b3a3d,2 +34b3a3e,80 +34b3a3f,40 +34b3a40,8c +34b3a41,42 +34b3a42,65 +34b3a43,30 +34b3a44,18 +34b3a45,40 +34b3a47,44 +34b3a48,3c 34b3a49,2 -34b3a4a,10 -34b3a4b,42 -34b3a4c,30 -34b3a4d,42 -34b3a4f,1 -34b3a50,50 -34b3a51,40 -34b3a53,27 -34b3a54,26 -34b3a55,31 -34b3a57,1 -34b3a58,92 -34b3a59,42 -34b3a5d,54 -34b3a5e,10 -34b3a5f,21 -34b3a60,80 -34b3a61,46 -34b3a64,28 -34b3a65,c2 -34b3a67,3 -34b3a68,54 -34b3a69,40 -34b3a6b,21 -34b3a6c,26 -34b3a6d,31 -34b3a6f,1 +34b3a4a,80 +34b3a4b,40 +34b3a4c,3c +34b3a4d,13 +34b3a4e,80 +34b3a4f,40 +34b3a50,26 +34b3a51,73 +34b3a52,64 +34b3a53,90 +34b3a56,90 +34b3a57,25 +34b3a58,3c +34b3a59,1e +34b3a5a,80 +34b3a5b,40 +34b3a5c,3c +34b3a5d,16 +34b3a5e,80 +34b3a5f,40 +34b3a60,26 +34b3a61,d6 +34b3a62,64 +34b3a63,6c +34b3a64,24 +34b3a65,42 +34b3a66,64 +34b3a67,7c +34b3a68,af +34b3a69,a2 +34b3a6b,3c +34b3a6c,3c +34b3a6d,2 +34b3a6e,80 +34b3a6f,40 34b3a70,24 -34b3a71,c6 -34b3a72,ff -34b3a73,fd -34b3a75,6 -34b3a76,18 +34b3a71,42 +34b3a72,64 +34b3a73,4c +34b3a74,af +34b3a75,a2 34b3a77,40 -34b3a79,66 -34b3a7a,18 -34b3a7b,21 -34b3a7d,7e -34b3a7e,18 -34b3a7f,21 -34b3a80,90 -34b3a81,62 -34b3a85,2 -34b3a86,16 -34b3a88,90 -34b3a89,64 -34b3a8b,2 -34b3a8d,4 -34b3a8e,22 -34b3a91,44 -34b3a92,10 -34b3a93,25 -34b3a94,90 -34b3a95,63 -34b3a97,1 -34b3a99,3 -34b3a9a,1c -34b3a9d,43 +34b3a78,3c +34b3a79,17 +34b3a7a,80 +34b3a7b,40 +34b3a7c,8f +34b3a7d,c2 +34b3a7e,65 +34b3a7f,3c +34b3a80,50 +34b3a81,40 +34b3a83,b +34b3a84,92 +34b3a85,62 +34b3a88,92 +34b3a89,63 +34b3a8c,3c +34b3a8d,2 +34b3a8e,80 +34b3a8f,11 +34b3a90,34 +34b3a91,42 +34b3a92,a5 +34b3a93,d0 +34b3a95,43 +34b3a96,10 +34b3a97,21 +34b3a98,90 +34b3a99,42 +34b3a9b,a8 +34b3a9d,2 34b3a9e,10 -34b3a9f,25 -34b3aa0,34 +34b3a9f,42 +34b3aa0,30 34b3aa1,42 -34b3aa3,ff -34b3aa4,8e -34b3aa5,3 -34b3aa7,8 -34b3aa8,24 -34b3aa9,64 -34b3aab,8 -34b3aac,ae -34b3aad,4 -34b3aaf,8 -34b3ab0,3c -34b3ab1,4 -34b3ab2,fa -34b3ab4,ac -34b3ab5,64 -34b3ab8,ac -34b3ab9,62 -34b3abb,4 -34b3abc,24 -34b3abd,2 -34b3abf,10 -34b3ac0,af -34b3ac1,a2 -34b3ac3,18 -34b3ac4,af -34b3ac5,a2 -34b3ac7,14 -34b3ac9,11 -34b3aca,10 -34b3acb,c0 -34b3acd,51 -34b3ace,10 +34b3aa3,1 +34b3aa4,50 +34b3aa5,40 +34b3aa7,28 +34b3aa8,26 +34b3aa9,52 +34b3aab,1 +34b3aac,92 +34b3aad,62 +34b3ab1,56 +34b3ab2,10 +34b3ab3,21 +34b3ab4,80 +34b3ab5,46 +34b3ab8,28 +34b3ab9,c2 +34b3abb,3 +34b3abc,54 +34b3abd,40 +34b3abf,22 +34b3ac0,26 +34b3ac1,52 +34b3ac3,1 +34b3ac4,24 +34b3ac5,c6 +34b3ac6,ff +34b3ac7,fd +34b3ac9,6 +34b3aca,18 +34b3acb,40 +34b3acd,66 +34b3ace,18 34b3acf,21 -34b3ad1,2 -34b3ad2,10 -34b3ad3,40 -34b3ad4,24 -34b3ad5,42 -34b3ad7,4 -34b3ad8,af -34b3ad9,a2 -34b3adb,10 -34b3adc,2 -34b3add,e0 -34b3ade,38 -34b3adf,25 -34b3ae0,8f -34b3ae1,a5 -34b3ae3,38 -34b3ae4,c -34b3ae5,10 -34b3ae6,14 -34b3ae7,af -34b3ae8,2 -34b3aea,20 +34b3ad0,8f +34b3ad1,a2 +34b3ad3,3c +34b3ad5,62 +34b3ad6,18 +34b3ad7,21 +34b3ad8,90 +34b3ad9,62 +34b3add,2 +34b3ade,16 +34b3ae0,90 +34b3ae1,64 +34b3ae3,2 +34b3ae5,4 +34b3ae6,22 +34b3ae9,44 +34b3aea,10 34b3aeb,25 -34b3aec,26 -34b3aed,31 +34b3aec,90 +34b3aed,63 34b3aef,1 -34b3af0,8e -34b3af1,a2 -34b3af2,64 -34b3af3,cc -34b3af4,2 -34b3af5,22 +34b3af1,3 +34b3af2,1c +34b3af5,43 34b3af6,10 -34b3af7,2a -34b3af8,14 -34b3af9,40 -34b3afa,ff -34b3afb,cb -34b3afc,26 -34b3afd,52 -34b3aff,c -34b3b00,8e -34b3b01,2 +34b3af7,25 +34b3af8,34 +34b3af9,42 +34b3afb,ff +34b3afc,8e +34b3afd,3 +34b3aff,8 +34b3b00,24 +34b3b01,64 34b3b03,8 -34b3b04,24 -34b3b05,43 +34b3b04,ae +34b3b05,4 34b3b07,8 -34b3b08,ae -34b3b09,3 -34b3b0b,8 -34b3b0c,3c -34b3b0d,3 -34b3b0e,fa +34b3b08,3c +34b3b09,4 +34b3b0a,fa +34b3b0c,ac +34b3b0d,64 34b3b10,ac -34b3b11,43 +34b3b11,62 +34b3b13,4 34b3b14,24 -34b3b15,3 -34b3b16,ff -34b3b17,ff -34b3b18,ac -34b3b19,43 -34b3b1b,4 -34b3b1c,3c -34b3b1d,5 -34b3b1e,80 -34b3b1f,40 -34b3b20,24 -34b3b21,a5 -34b3b22,63 -34b3b23,f8 -34b3b24,94 -34b3b25,a7 -34b3b27,8 -34b3b2a,30 -34b3b2b,25 -34b3b2c,c -34b3b2d,10 -34b3b2e,14 -34b3b2f,1c -34b3b30,2 -34b3b32,20 -34b3b33,25 -34b3b34,3c -34b3b35,2 -34b3b36,80 -34b3b37,40 -34b3b38,8c -34b3b39,42 -34b3b3a,64 -34b3b3b,cc -34b3b3c,18 -34b3b3d,40 -34b3b3e,1 -34b3b3f,94 -34b3b40,3c -34b3b41,2 -34b3b42,80 -34b3b43,40 -34b3b44,3c -34b3b45,12 -34b3b46,80 -34b3b47,40 -34b3b48,26 -34b3b49,52 -34b3b4a,64 -34b3b4b,2c -34b3b4e,88 -34b3b4f,25 -34b3b50,3c -34b3b51,16 -34b3b52,80 -34b3b53,40 -34b3b54,3c -34b3b55,14 -34b3b56,80 -34b3b57,40 -34b3b58,26 -34b3b59,94 -34b3b5a,64 +34b3b15,2 +34b3b17,10 +34b3b18,af +34b3b19,a2 +34b3b1b,18 +34b3b1c,af +34b3b1d,a2 +34b3b1f,14 +34b3b21,12 +34b3b22,10 +34b3b23,c0 +34b3b25,52 +34b3b26,10 +34b3b27,21 +34b3b29,2 +34b3b2a,10 +34b3b2b,40 +34b3b2c,24 +34b3b2d,42 +34b3b2f,4 +34b3b30,af +34b3b31,a2 +34b3b33,10 +34b3b34,8f +34b3b35,a7 +34b3b37,38 +34b3b38,8f +34b3b39,a5 +34b3b3b,40 +34b3b3c,c +34b3b3d,10 +34b3b3e,14 +34b3b3f,b1 +34b3b40,2 +34b3b42,20 +34b3b43,25 +34b3b44,26 +34b3b45,52 +34b3b47,1 +34b3b48,8e +34b3b49,e2 +34b3b4a,65 +34b3b4b,30 +34b3b4c,2 +34b3b4d,42 +34b3b4e,10 +34b3b4f,2a +34b3b50,14 +34b3b51,40 +34b3b52,ff +34b3b53,ca +34b3b54,26 +34b3b55,73 +34b3b57,c +34b3b58,8e +34b3b59,2 34b3b5b,8 34b3b5c,24 -34b3b5d,42 -34b3b5e,63 -34b3b5f,f8 -34b3b60,af -34b3b61,a2 -34b3b63,38 +34b3b5d,43 +34b3b5f,8 +34b3b60,ae +34b3b61,3 +34b3b63,8 34b3b64,3c -34b3b65,1e -34b3b66,80 -34b3b67,11 -34b3b68,37 -34b3b69,de -34b3b6a,a5 -34b3b6b,d0 -34b3b6c,3c -34b3b6d,15 -34b3b6e,80 -34b3b6f,40 -34b3b70,8e -34b3b71,c2 -34b3b72,64 -34b3b73,d4 -34b3b74,10 -34b3b75,40 -34b3b77,8 -34b3b78,92 -34b3b79,42 -34b3b7c,3 -34b3b7d,c2 -34b3b7e,10 -34b3b7f,21 -34b3b80,90 -34b3b81,42 -34b3b83,a8 -34b3b85,2 -34b3b86,10 -34b3b87,42 -34b3b88,30 -34b3b89,42 -34b3b8b,1 -34b3b8c,50 -34b3b8d,40 -34b3b8f,14 -34b3b90,26 -34b3b91,31 -34b3b93,1 -34b3b94,92 +34b3b65,3 +34b3b66,fa +34b3b68,ac +34b3b69,43 +34b3b6c,24 +34b3b6d,3 +34b3b6e,ff +34b3b6f,ff +34b3b70,12 +34b3b71,80 +34b3b73,36 +34b3b74,ac +34b3b75,43 +34b3b77,4 +34b3b78,3c +34b3b79,5 +34b3b7a,80 +34b3b7b,40 +34b3b7c,24 +34b3b7d,a5 +34b3b7e,64 +34b3b7f,5c +34b3b80,94 +34b3b81,a7 +34b3b83,8 +34b3b86,30 +34b3b87,25 +34b3b88,c +34b3b89,10 +34b3b8a,14 +34b3b8b,1c +34b3b8c,2 +34b3b8e,20 +34b3b8f,25 +34b3b90,3c +34b3b91,2 +34b3b92,80 +34b3b93,40 +34b3b94,8c 34b3b95,42 -34b3b99,54 -34b3b9a,10 -34b3b9b,21 -34b3b9c,80 -34b3b9d,46 -34b3ba0,2c -34b3ba1,c2 -34b3ba3,3 -34b3ba4,50 -34b3ba5,40 -34b3ba7,e -34b3ba8,26 -34b3ba9,31 -34b3bab,1 -34b3bac,24 -34b3bad,2 -34b3baf,10 -34b3bb0,af -34b3bb1,a2 -34b3bb3,18 -34b3bb4,af -34b3bb5,a2 -34b3bb7,14 -34b3bb9,11 -34b3bba,10 -34b3bbb,c0 -34b3bbd,51 -34b3bbe,10 -34b3bbf,21 -34b3bc1,2 -34b3bc2,10 -34b3bc3,40 -34b3bc4,24 -34b3bc5,42 -34b3bc7,4 -34b3bc8,af -34b3bc9,a2 -34b3bcb,10 -34b3bcc,2 -34b3bcd,e0 -34b3bce,38 -34b3bcf,25 -34b3bd0,8f -34b3bd1,a5 -34b3bd3,38 -34b3bd4,c -34b3bd5,10 -34b3bd6,14 -34b3bd7,af -34b3bd8,2 -34b3bda,20 -34b3bdb,25 -34b3bdc,26 -34b3bdd,31 -34b3bdf,1 -34b3be0,8e -34b3be1,a2 -34b3be2,64 -34b3be3,cc -34b3be4,2 -34b3be5,22 -34b3be6,18 -34b3be7,2a -34b3be8,14 -34b3be9,60 -34b3bea,ff -34b3beb,e1 +34b3b96,65 +34b3b97,30 +34b3b98,18 +34b3b99,40 +34b3b9a,1 +34b3b9b,96 +34b3b9c,3c +34b3b9d,2 +34b3b9e,80 +34b3b9f,40 +34b3ba0,3c +34b3ba1,13 +34b3ba2,80 +34b3ba3,40 +34b3ba4,26 +34b3ba5,73 +34b3ba6,64 +34b3ba7,90 +34b3baa,90 +34b3bab,25 +34b3bac,3c +34b3bad,17 +34b3bae,80 +34b3baf,40 +34b3bb0,3c +34b3bb1,14 +34b3bb2,80 +34b3bb3,40 +34b3bb4,26 +34b3bb5,94 +34b3bb6,64 +34b3bb7,6c +34b3bb8,24 +34b3bb9,42 +34b3bba,64 +34b3bbb,5c +34b3bbc,af +34b3bbd,a2 +34b3bbf,3c +34b3bc0,3c +34b3bc1,1e +34b3bc2,80 +34b3bc3,11 +34b3bc4,37 +34b3bc5,de +34b3bc6,a5 +34b3bc7,d0 +34b3bc8,3c +34b3bc9,16 +34b3bca,80 +34b3bcb,40 +34b3bcc,8e +34b3bcd,e2 +34b3bce,65 +34b3bcf,3c +34b3bd0,10 +34b3bd1,40 +34b3bd3,8 +34b3bd4,92 +34b3bd5,62 +34b3bd8,3 +34b3bd9,c2 +34b3bda,10 +34b3bdb,21 +34b3bdc,90 +34b3bdd,42 +34b3bdf,a8 +34b3be1,2 +34b3be2,10 +34b3be3,42 +34b3be4,30 +34b3be5,42 +34b3be7,1 +34b3be8,50 +34b3be9,40 +34b3beb,14 34b3bec,26 34b3bed,52 -34b3bef,c -34b3bf0,18 -34b3bf1,40 -34b3bf3,10 -34b3bf4,26 -34b3bf5,73 -34b3bf7,14 -34b3bf8,3c -34b3bf9,11 -34b3bfa,80 -34b3bfb,40 -34b3bfc,26 -34b3bfd,31 -34b3bfe,64 -34b3bff,2e -34b3c00,24 -34b3c01,14 -34b3c03,5 -34b3c06,90 -34b3c07,25 -34b3c08,3c -34b3c09,15 -34b3c0a,80 -34b3c0b,40 -34b3c0c,2 -34b3c0d,80 -34b3c0e,30 -34b3c0f,25 -34b3c10,2 -34b3c11,60 -34b3c12,28 -34b3c13,25 -34b3c14,c -34b3c15,10 -34b3c16,18 -34b3c17,73 -34b3c18,2 -34b3c19,20 -34b3c1a,20 -34b3c1b,25 -34b3c1c,26 -34b3c1d,52 -34b3c1f,1 -34b3c20,26 -34b3c21,31 -34b3c23,c -34b3c24,8e +34b3bef,1 +34b3bf0,92 +34b3bf1,62 +34b3bf5,54 +34b3bf6,10 +34b3bf7,21 +34b3bf8,80 +34b3bf9,46 +34b3bfc,2c +34b3bfd,c2 +34b3bff,3 +34b3c00,50 +34b3c01,40 +34b3c03,e +34b3c04,26 +34b3c05,52 +34b3c07,1 +34b3c08,24 +34b3c09,2 +34b3c0b,10 +34b3c0c,af +34b3c0d,a2 +34b3c0f,18 +34b3c10,af +34b3c11,a2 +34b3c13,14 +34b3c15,12 +34b3c16,10 +34b3c17,c0 +34b3c19,52 +34b3c1a,10 +34b3c1b,21 +34b3c1d,2 +34b3c1e,10 +34b3c1f,40 +34b3c20,24 +34b3c21,42 +34b3c23,4 +34b3c24,af 34b3c25,a2 -34b3c26,64 -34b3c27,cc -34b3c28,2 -34b3c29,42 -34b3c2a,10 -34b3c2b,2a -34b3c2c,14 -34b3c2d,40 -34b3c2e,ff -34b3c2f,f7 -34b3c30,26 -34b3c31,94 -34b3c33,12 -34b3c34,3c -34b3c35,2 -34b3c36,80 -34b3c37,40 -34b3c38,94 -34b3c39,42 -34b3c3a,63 -34b3c3b,cc -34b3c3d,2 -34b3c3e,10 -34b3c3f,c0 -34b3c40,24 +34b3c27,10 +34b3c28,8f +34b3c29,a7 +34b3c2b,38 +34b3c2c,8f +34b3c2d,a5 +34b3c2f,3c +34b3c30,c +34b3c31,10 +34b3c32,14 +34b3c33,b1 +34b3c34,2 +34b3c36,20 +34b3c37,25 +34b3c38,26 +34b3c39,52 +34b3c3b,1 +34b3c3c,8e +34b3c3d,c2 +34b3c3e,65 +34b3c3f,30 +34b3c40,2 34b3c41,42 -34b3c43,2 -34b3c45,53 -34b3c46,98 -34b3c47,21 -34b3c48,24 -34b3c49,7 -34b3c4b,1 -34b3c4c,24 -34b3c4d,6 -34b3c4f,11 -34b3c50,3c -34b3c51,5 -34b3c52,80 -34b3c53,40 -34b3c54,24 -34b3c55,a5 -34b3c56,63 -34b3c57,d8 -34b3c58,c -34b3c59,10 -34b3c5a,14 -34b3c5b,1c -34b3c5c,2 -34b3c5e,20 -34b3c5f,25 -34b3c60,3c -34b3c61,2 -34b3c62,80 -34b3c63,40 -34b3c64,8c -34b3c65,42 -34b3c66,64 -34b3c67,cc -34b3c68,18 -34b3c69,40 -34b3c6b,2a +34b3c42,10 +34b3c43,2a +34b3c44,14 +34b3c45,40 +34b3c46,ff +34b3c47,e1 +34b3c48,26 +34b3c49,73 +34b3c4b,c +34b3c4c,3c +34b3c4d,2 +34b3c4e,80 +34b3c4f,40 +34b3c50,8c +34b3c51,42 +34b3c52,65 +34b3c53,30 +34b3c54,18 +34b3c55,40 +34b3c57,10 +34b3c58,26 +34b3c59,31 +34b3c5b,14 +34b3c5c,3c +34b3c5d,12 +34b3c5e,80 +34b3c5f,40 +34b3c60,26 +34b3c61,52 +34b3c62,64 +34b3c63,92 +34b3c64,24 +34b3c65,14 +34b3c67,5 +34b3c6a,98 +34b3c6b,25 34b3c6c,3c -34b3c6d,17 +34b3c6d,16 34b3c6e,80 -34b3c6f,11 -34b3c70,3c -34b3c71,12 -34b3c72,80 -34b3c73,40 -34b3c74,26 -34b3c75,52 -34b3c76,64 -34b3c77,2c -34b3c78,24 -34b3c79,14 -34b3c7b,5 -34b3c7e,88 +34b3c6f,40 +34b3c70,2 +34b3c71,80 +34b3c72,30 +34b3c73,25 +34b3c74,2 +34b3c75,20 +34b3c76,28 +34b3c77,25 +34b3c78,c +34b3c79,10 +34b3c7a,18 +34b3c7b,8c +34b3c7c,2 +34b3c7d,40 +34b3c7e,20 34b3c7f,25 -34b3c80,2 -34b3c81,40 -34b3c82,a8 -34b3c83,25 -34b3c84,36 -34b3c85,f7 -34b3c86,a5 -34b3c87,d0 -34b3c88,3c -34b3c89,16 -34b3c8a,80 -34b3c8b,40 -34b3c8d,11 +34b3c80,26 +34b3c81,73 +34b3c83,1 +34b3c84,26 +34b3c85,52 +34b3c87,c +34b3c88,8e +34b3c89,c2 +34b3c8a,65 +34b3c8b,30 +34b3c8c,2 +34b3c8d,62 34b3c8e,10 -34b3c8f,40 -34b3c91,51 -34b3c92,10 -34b3c93,21 -34b3c95,2 -34b3c96,10 -34b3c97,80 -34b3c99,55 -34b3c9a,10 -34b3c9b,21 -34b3c9c,80 +34b3c8f,2a +34b3c90,14 +34b3c91,40 +34b3c92,ff +34b3c93,f7 +34b3c94,26 +34b3c95,94 +34b3c97,12 +34b3c98,3c +34b3c99,2 +34b3c9a,80 +34b3c9b,40 +34b3c9c,94 34b3c9d,42 -34b3c9f,1 -34b3ca0,4 -34b3ca1,43 -34b3ca3,17 -34b3ca4,26 -34b3ca5,31 -34b3ca7,1 -34b3ca8,92 -34b3ca9,42 -34b3cac,2 -34b3cad,e2 -34b3cae,10 -34b3caf,21 -34b3cb0,90 -34b3cb1,42 -34b3cb3,bc -34b3cb5,2 -34b3cb6,1e -34b3cb9,3 -34b3cba,1e -34b3cbb,3 -34b3cbc,28 -34b3cbd,63 -34b3cbf,a -34b3cc0,50 -34b3cc1,60 -34b3cc3,1 -34b3cc4,24 +34b3c9e,64 +34b3c9f,30 +34b3ca1,2 +34b3ca2,10 +34b3ca3,c0 +34b3ca4,24 +34b3ca5,42 +34b3ca7,2 +34b3ca9,51 +34b3caa,88 +34b3cab,21 +34b3cac,24 +34b3cad,7 +34b3caf,1 +34b3cb0,24 +34b3cb1,6 +34b3cb3,11 +34b3cb4,3c +34b3cb5,5 +34b3cb6,80 +34b3cb7,40 +34b3cb8,24 +34b3cb9,a5 +34b3cba,64 +34b3cbb,3c +34b3cbc,c +34b3cbd,10 +34b3cbe,14 +34b3cbf,1c +34b3cc0,2 +34b3cc2,20 +34b3cc3,25 +34b3cc4,3c 34b3cc5,2 -34b3cc7,9 -34b3cc8,24 -34b3cc9,3 -34b3cca,30 -34b3ccc,a7 -34b3ccd,a3 -34b3ccf,20 -34b3cd1,40 -34b3cd2,18 -34b3cd3,25 -34b3cd5,2 -34b3cd6,16 -34b3cd9,2 -34b3cda,16 -34b3cdb,3 -34b3cdc,4 -34b3cdd,42 -34b3cdf,1 -34b3ce2,18 +34b3cc6,80 +34b3cc7,40 +34b3cc8,8c +34b3cc9,42 +34b3cca,65 +34b3ccb,30 +34b3ccc,18 +34b3ccd,40 +34b3ccf,2a +34b3cd0,3c +34b3cd1,1e +34b3cd2,80 +34b3cd3,11 +34b3cd4,3c +34b3cd5,13 +34b3cd6,80 +34b3cd7,40 +34b3cd8,26 +34b3cd9,73 +34b3cda,64 +34b3cdb,90 +34b3cdc,24 +34b3cdd,14 +34b3cdf,5 +34b3ce2,90 34b3ce3,25 -34b3ce4,24 -34b3ce5,63 -34b3ce7,30 -34b3ce8,a3 -34b3ce9,a3 -34b3ceb,20 -34b3cec,2 -34b3ced,80 -34b3cee,30 -34b3cef,25 -34b3cf0,2 -34b3cf1,60 -34b3cf2,28 -34b3cf3,25 -34b3cf4,c -34b3cf5,10 -34b3cf6,18 -34b3cf7,73 -34b3cf8,27 -34b3cf9,a4 -34b3cfb,20 -34b3cfc,26 -34b3cfd,31 -34b3cff,1 -34b3d00,26 -34b3d01,52 -34b3d03,c -34b3d04,8e -34b3d05,c2 -34b3d06,64 -34b3d07,cc -34b3d08,2 -34b3d09,22 -34b3d0a,10 -34b3d0b,2a -34b3d0c,14 -34b3d0d,40 -34b3d0e,ff -34b3d0f,df -34b3d10,26 -34b3d11,94 -34b3d13,12 -34b3d14,26 -34b3d15,77 -34b3d17,12 -34b3d18,24 -34b3d19,7 -34b3d1b,1 -34b3d1c,24 -34b3d1d,6 -34b3d1f,e -34b3d20,3c -34b3d21,5 -34b3d22,80 -34b3d23,40 -34b3d24,24 -34b3d25,a5 -34b3d26,63 -34b3d27,d8 -34b3d28,c -34b3d29,10 -34b3d2a,14 -34b3d2b,1c -34b3d2c,2 -34b3d2e,20 -34b3d2f,25 -34b3d30,3c -34b3d31,2 -34b3d32,80 -34b3d33,40 -34b3d34,8c -34b3d35,42 -34b3d36,64 -34b3d37,cc -34b3d38,58 -34b3d39,40 -34b3d3b,2b -34b3d3c,24 -34b3d3d,7 -34b3d3f,1 -34b3d40,3c -34b3d41,12 -34b3d42,80 -34b3d43,40 -34b3d44,26 -34b3d45,52 -34b3d46,64 -34b3d47,2c -34b3d4a,88 -34b3d4b,25 -34b3d4c,2 -34b3d4d,40 -34b3d4e,a0 -34b3d4f,25 -34b3d50,3c -34b3d51,16 -34b3d52,80 -34b3d53,11 -34b3d54,3c -34b3d55,1e -34b3d56,80 -34b3d57,40 -34b3d58,27 -34b3d59,de -34b3d5a,63 -34b3d5b,d8 -34b3d5c,3c -34b3d5d,15 -34b3d5e,80 -34b3d5f,40 -34b3d61,11 -34b3d62,10 -34b3d63,40 -34b3d65,51 -34b3d66,10 -34b3d67,21 -34b3d69,2 -34b3d6a,10 -34b3d6b,80 -34b3d6d,54 +34b3ce4,2 +34b3ce5,60 +34b3ce6,b0 +34b3ce7,25 +34b3ce8,37 +34b3ce9,de +34b3cea,a5 +34b3ceb,d0 +34b3cec,3c +34b3ced,17 +34b3cee,80 +34b3cef,40 +34b3cf1,12 +34b3cf2,10 +34b3cf3,40 +34b3cf5,52 +34b3cf6,10 +34b3cf7,21 +34b3cf9,2 +34b3cfa,10 +34b3cfb,80 +34b3cfd,56 +34b3cfe,10 +34b3cff,21 +34b3d00,80 +34b3d01,42 +34b3d03,1 +34b3d04,4 +34b3d05,43 +34b3d07,17 +34b3d08,26 +34b3d09,52 +34b3d0b,1 +34b3d0c,92 +34b3d0d,62 +34b3d10,3 +34b3d11,c2 +34b3d12,10 +34b3d13,21 +34b3d14,90 +34b3d15,42 +34b3d17,bc +34b3d19,2 +34b3d1a,1e +34b3d1d,3 +34b3d1e,1e +34b3d1f,3 +34b3d20,28 +34b3d21,63 +34b3d23,a +34b3d24,50 +34b3d25,60 +34b3d27,1 +34b3d28,24 +34b3d29,2 +34b3d2b,9 +34b3d2c,24 +34b3d2d,3 +34b3d2e,30 +34b3d30,a7 +34b3d31,a3 +34b3d33,20 +34b3d35,40 +34b3d36,18 +34b3d37,25 +34b3d39,2 +34b3d3a,16 +34b3d3d,2 +34b3d3e,16 +34b3d3f,3 +34b3d40,4 +34b3d41,42 +34b3d43,1 +34b3d46,18 +34b3d47,25 +34b3d48,24 +34b3d49,63 +34b3d4b,30 +34b3d4c,a3 +34b3d4d,a3 +34b3d4f,20 +34b3d50,2 +34b3d51,80 +34b3d52,30 +34b3d53,25 +34b3d54,2 +34b3d55,20 +34b3d56,28 +34b3d57,25 +34b3d58,c +34b3d59,10 +34b3d5a,18 +34b3d5b,8c +34b3d5c,27 +34b3d5d,a4 +34b3d5f,20 +34b3d60,26 +34b3d61,52 +34b3d63,1 +34b3d64,26 +34b3d65,73 +34b3d67,c +34b3d68,8e +34b3d69,e2 +34b3d6a,65 +34b3d6b,30 +34b3d6c,2 +34b3d6d,42 34b3d6e,10 -34b3d6f,21 -34b3d70,90 -34b3d71,42 -34b3d73,1 -34b3d74,30 -34b3d75,42 -34b3d77,40 -34b3d78,50 -34b3d79,40 -34b3d7b,16 -34b3d7c,26 -34b3d7d,31 +34b3d6f,2a +34b3d70,14 +34b3d71,40 +34b3d72,ff +34b3d73,df +34b3d74,26 +34b3d75,94 +34b3d77,12 +34b3d78,26 +34b3d79,3e +34b3d7b,12 +34b3d7c,24 +34b3d7d,7 34b3d7f,1 -34b3d80,36 -34b3d81,c2 -34b3d82,a5 -34b3d83,d0 -34b3d84,92 -34b3d85,43 -34b3d89,43 -34b3d8a,10 -34b3d8b,21 -34b3d8c,90 -34b3d8d,42 -34b3d8f,a8 -34b3d90,30 -34b3d91,42 -34b3d93,1 -34b3d94,50 -34b3d95,40 -34b3d97,f -34b3d98,26 -34b3d99,31 -34b3d9b,1 -34b3d9c,24 -34b3d9d,2 -34b3d9f,10 -34b3da0,af -34b3da1,a2 -34b3da3,18 -34b3da4,af -34b3da5,a2 -34b3da7,14 -34b3da9,11 -34b3daa,10 -34b3dab,c0 -34b3dad,51 -34b3dae,10 -34b3daf,21 -34b3db1,2 -34b3db2,10 -34b3db3,40 -34b3db4,24 -34b3db5,42 -34b3db7,4 -34b3db8,af -34b3db9,a2 -34b3dbb,10 -34b3dbc,2 -34b3dbd,e0 -34b3dbe,38 -34b3dbf,25 -34b3dc2,30 -34b3dc3,25 -34b3dc4,3 -34b3dc5,c0 -34b3dc6,28 -34b3dc7,25 -34b3dc8,c -34b3dc9,10 -34b3dca,14 -34b3dcb,af -34b3dcc,2 -34b3dce,20 -34b3dcf,25 -34b3dd0,26 -34b3dd1,31 -34b3dd3,1 -34b3dd4,8e -34b3dd5,a2 -34b3dd6,64 -34b3dd7,cc -34b3dd8,2 -34b3dd9,22 -34b3dda,10 -34b3ddb,2a -34b3ddc,14 +34b3d80,24 +34b3d81,6 +34b3d83,e +34b3d84,3c +34b3d85,5 +34b3d86,80 +34b3d87,40 +34b3d88,24 +34b3d89,a5 +34b3d8a,64 +34b3d8b,3c +34b3d8c,c +34b3d8d,10 +34b3d8e,14 +34b3d8f,1c +34b3d90,2 +34b3d92,20 +34b3d93,25 +34b3d94,3c +34b3d95,2 +34b3d96,80 +34b3d97,40 +34b3d98,8c +34b3d99,42 +34b3d9a,65 +34b3d9b,30 +34b3d9c,18 +34b3d9d,40 +34b3d9f,2a +34b3da0,3c +34b3da1,2 +34b3da2,80 +34b3da3,40 +34b3da4,3c +34b3da5,13 +34b3da6,80 +34b3da7,40 +34b3da8,26 +34b3da9,73 +34b3daa,64 +34b3dab,90 +34b3dae,90 +34b3daf,25 +34b3db0,2 +34b3db1,60 +34b3db2,a0 +34b3db3,25 +34b3db4,3c +34b3db5,17 +34b3db6,80 +34b3db7,11 +34b3db8,24 +34b3db9,42 +34b3dba,64 +34b3dbb,3c +34b3dbc,af +34b3dbd,a2 +34b3dbf,38 +34b3dc0,3c +34b3dc1,16 +34b3dc2,80 +34b3dc3,40 +34b3dc5,12 +34b3dc6,10 +34b3dc7,40 +34b3dc9,52 +34b3dca,10 +34b3dcb,21 +34b3dcd,2 +34b3dce,10 +34b3dcf,80 +34b3dd1,54 +34b3dd2,10 +34b3dd3,21 +34b3dd4,90 +34b3dd5,42 +34b3dd7,1 +34b3dd8,30 +34b3dd9,42 +34b3ddb,40 +34b3ddc,50 34b3ddd,40 -34b3dde,ff -34b3ddf,e0 +34b3ddf,16 34b3de0,26 34b3de1,52 -34b3de3,c -34b3de4,24 -34b3de5,7 -34b3de7,1 -34b3de8,24 -34b3de9,6 -34b3deb,a -34b3dec,3c -34b3ded,5 -34b3dee,80 -34b3def,40 -34b3df0,24 -34b3df1,a5 -34b3df2,63 -34b3df3,d8 -34b3df4,c -34b3df5,10 -34b3df6,14 -34b3df7,1c -34b3df8,2 -34b3dfa,20 -34b3dfb,25 -34b3dfc,3c -34b3dfd,2 -34b3dfe,80 -34b3dff,40 -34b3e00,8c -34b3e01,42 -34b3e02,64 -34b3e03,cc -34b3e04,58 -34b3e05,40 -34b3e07,29 -34b3e08,26 -34b3e09,7e -34b3e0b,24 -34b3e0e,88 -34b3e0f,25 -34b3e10,3c -34b3e11,12 -34b3e12,80 -34b3e13,40 -34b3e14,26 -34b3e15,52 -34b3e16,64 -34b3e17,2c -34b3e18,3c -34b3e19,15 -34b3e1a,80 -34b3e1b,11 -34b3e1c,3c -34b3e1d,16 -34b3e1e,80 -34b3e1f,40 -34b3e20,26 -34b3e21,d6 -34b3e22,63 -34b3e23,d8 -34b3e24,3c -34b3e25,14 -34b3e26,80 -34b3e27,40 -34b3e29,11 -34b3e2a,10 -34b3e2b,40 -34b3e2d,51 -34b3e2e,10 -34b3e2f,21 -34b3e31,2 -34b3e32,10 -34b3e33,80 +34b3de3,1 +34b3de4,36 +34b3de5,e2 +34b3de6,a5 +34b3de7,d0 +34b3de8,92 +34b3de9,63 +34b3ded,43 +34b3dee,10 +34b3def,21 +34b3df0,90 +34b3df1,42 +34b3df3,a8 +34b3df4,30 +34b3df5,42 +34b3df7,1 +34b3df8,50 +34b3df9,40 +34b3dfb,f +34b3dfc,26 +34b3dfd,52 +34b3dff,1 +34b3e00,24 +34b3e01,2 +34b3e03,10 +34b3e04,af +34b3e05,a2 +34b3e07,18 +34b3e08,af +34b3e09,a2 +34b3e0b,14 +34b3e0d,12 +34b3e0e,10 +34b3e0f,c0 +34b3e11,52 +34b3e12,10 +34b3e13,21 +34b3e15,2 +34b3e16,10 +34b3e17,40 +34b3e18,24 +34b3e19,42 +34b3e1b,4 +34b3e1c,af +34b3e1d,a2 +34b3e1f,10 +34b3e20,3 +34b3e21,c0 +34b3e22,38 +34b3e23,25 +34b3e26,30 +34b3e27,25 +34b3e28,8f +34b3e29,a5 +34b3e2b,38 +34b3e2c,c +34b3e2d,10 +34b3e2e,14 +34b3e2f,b1 +34b3e30,2 +34b3e32,20 +34b3e33,25 +34b3e34,26 34b3e35,52 -34b3e36,10 -34b3e37,21 -34b3e38,90 -34b3e39,42 -34b3e3b,1 -34b3e3c,30 +34b3e37,1 +34b3e38,8e +34b3e39,c2 +34b3e3a,65 +34b3e3b,30 +34b3e3c,2 34b3e3d,42 -34b3e3f,20 -34b3e40,50 +34b3e3e,10 +34b3e3f,2a +34b3e40,14 34b3e41,40 -34b3e43,15 +34b3e42,ff +34b3e43,e0 34b3e44,26 -34b3e45,31 -34b3e47,1 -34b3e48,36 -34b3e49,a2 -34b3e4a,a5 -34b3e4b,d0 -34b3e4c,8c -34b3e4d,42 -34b3e4f,a4 +34b3e45,73 +34b3e47,c +34b3e48,24 +34b3e49,7 +34b3e4b,1 +34b3e4c,24 +34b3e4d,6 +34b3e4f,a 34b3e50,3c -34b3e51,3 +34b3e51,5 +34b3e52,80 34b3e53,40 -34b3e55,43 -34b3e56,10 -34b3e57,24 -34b3e58,50 -34b3e59,40 -34b3e5b,f -34b3e5c,26 -34b3e5d,31 -34b3e5f,1 -34b3e60,24 +34b3e54,24 +34b3e55,a5 +34b3e56,64 +34b3e57,3c +34b3e58,c +34b3e59,10 +34b3e5a,14 +34b3e5b,1c +34b3e5c,2 +34b3e5e,20 +34b3e5f,25 +34b3e60,3c 34b3e61,2 -34b3e63,10 -34b3e64,af -34b3e65,a2 -34b3e67,18 -34b3e68,af -34b3e69,a2 -34b3e6b,14 -34b3e6d,11 -34b3e6e,10 -34b3e6f,c0 -34b3e71,51 -34b3e72,10 -34b3e73,21 -34b3e75,2 -34b3e76,10 +34b3e62,80 +34b3e63,40 +34b3e64,8c +34b3e65,42 +34b3e66,65 +34b3e67,30 +34b3e68,58 +34b3e69,40 +34b3e6b,29 +34b3e6c,26 +34b3e6d,3e +34b3e6f,24 +34b3e72,90 +34b3e73,25 +34b3e74,3c +34b3e75,13 +34b3e76,80 34b3e77,40 -34b3e78,24 -34b3e79,42 -34b3e7b,4 -34b3e7c,af -34b3e7d,a2 -34b3e7f,10 -34b3e80,2 -34b3e81,e0 -34b3e82,38 -34b3e83,25 -34b3e86,30 -34b3e87,25 -34b3e88,2 -34b3e89,c0 -34b3e8a,28 -34b3e8b,25 -34b3e8c,c -34b3e8d,10 -34b3e8e,14 -34b3e8f,af -34b3e90,2 -34b3e92,20 -34b3e93,25 -34b3e94,26 -34b3e95,31 -34b3e97,1 -34b3e98,8e -34b3e99,82 -34b3e9a,64 -34b3e9b,cc -34b3e9c,2 -34b3e9d,22 -34b3e9e,10 -34b3e9f,2a -34b3ea0,14 -34b3ea1,40 -34b3ea2,ff -34b3ea3,e2 -34b3ea5,11 -34b3ea6,10 -34b3ea7,40 +34b3e78,26 +34b3e79,73 +34b3e7a,64 +34b3e7b,90 +34b3e7c,3c +34b3e7d,16 +34b3e7e,80 +34b3e7f,11 +34b3e80,3c +34b3e81,17 +34b3e82,80 +34b3e83,40 +34b3e84,26 +34b3e85,f7 +34b3e86,64 +34b3e87,3c +34b3e88,3c +34b3e89,14 +34b3e8a,80 +34b3e8b,40 +34b3e8d,12 +34b3e8e,10 +34b3e8f,40 +34b3e91,52 +34b3e92,10 +34b3e93,21 +34b3e95,2 +34b3e96,10 +34b3e97,80 +34b3e99,53 +34b3e9a,10 +34b3e9b,21 +34b3e9c,90 +34b3e9d,42 +34b3e9f,1 +34b3ea0,30 +34b3ea1,42 +34b3ea3,20 +34b3ea4,50 +34b3ea5,40 +34b3ea7,15 34b3ea8,26 -34b3ea9,7e -34b3eab,24 -34b3eac,24 -34b3ead,7 -34b3eaf,1 -34b3eb0,24 -34b3eb1,6 -34b3eb3,10 +34b3ea9,52 +34b3eab,1 +34b3eac,36 +34b3ead,c2 +34b3eae,a5 +34b3eaf,d0 +34b3eb0,8c +34b3eb1,42 +34b3eb3,a4 34b3eb4,3c -34b3eb5,5 -34b3eb6,80 +34b3eb5,3 34b3eb7,40 -34b3eb8,24 -34b3eb9,a5 -34b3eba,63 -34b3ebb,d8 -34b3ebc,c -34b3ebd,10 -34b3ebe,14 -34b3ebf,1c -34b3ec0,2 -34b3ec2,20 -34b3ec3,25 -34b3ec4,3c +34b3eb9,43 +34b3eba,10 +34b3ebb,24 +34b3ebc,50 +34b3ebd,40 +34b3ebf,f +34b3ec0,26 +34b3ec1,52 +34b3ec3,1 +34b3ec4,24 34b3ec5,2 -34b3ec6,80 -34b3ec7,40 -34b3ec8,8c -34b3ec9,42 -34b3eca,64 -34b3ecb,cc -34b3ecc,18 -34b3ecd,40 -34b3ecf,2a -34b3ed0,3c +34b3ec7,10 +34b3ec8,af +34b3ec9,a2 +34b3ecb,18 +34b3ecc,af +34b3ecd,a2 +34b3ecf,14 34b3ed1,12 -34b3ed2,80 -34b3ed3,40 -34b3ed4,26 +34b3ed2,10 +34b3ed3,c0 34b3ed5,52 -34b3ed6,64 -34b3ed7,2c -34b3eda,88 -34b3edb,25 -34b3edc,2 -34b3edd,40 -34b3ede,a0 -34b3edf,25 -34b3ee0,3c -34b3ee1,16 -34b3ee2,80 -34b3ee3,11 -34b3ee4,3c -34b3ee5,17 -34b3ee6,80 -34b3ee7,40 -34b3ee8,26 -34b3ee9,f7 -34b3eea,63 -34b3eeb,d8 -34b3eec,3c -34b3eed,15 -34b3eee,80 -34b3eef,40 -34b3ef1,11 -34b3ef2,10 -34b3ef3,40 -34b3ef5,51 -34b3ef6,10 -34b3ef7,21 -34b3ef9,2 -34b3efa,10 -34b3efb,80 -34b3efd,54 -34b3efe,10 -34b3eff,21 -34b3f00,90 +34b3ed6,10 +34b3ed7,21 +34b3ed9,2 +34b3eda,10 +34b3edb,40 +34b3edc,24 +34b3edd,42 +34b3edf,4 +34b3ee0,af +34b3ee1,a2 +34b3ee3,10 +34b3ee4,3 +34b3ee5,c0 +34b3ee6,38 +34b3ee7,25 +34b3eea,30 +34b3eeb,25 +34b3eec,2 +34b3eed,e0 +34b3eee,28 +34b3eef,25 +34b3ef0,c +34b3ef1,10 +34b3ef2,14 +34b3ef3,b1 +34b3ef4,2 +34b3ef6,20 +34b3ef7,25 +34b3ef8,26 +34b3ef9,52 +34b3efb,1 +34b3efc,8e +34b3efd,82 +34b3efe,65 +34b3eff,30 +34b3f00,2 34b3f01,42 -34b3f03,1 -34b3f04,30 -34b3f05,42 -34b3f07,10 -34b3f08,50 -34b3f09,40 -34b3f0b,17 +34b3f02,10 +34b3f03,2a +34b3f04,14 +34b3f05,40 +34b3f06,ff +34b3f07,e2 +34b3f09,12 +34b3f0a,10 +34b3f0b,40 34b3f0c,26 -34b3f0d,31 -34b3f0f,1 -34b3f10,36 -34b3f11,c2 -34b3f12,a5 -34b3f13,d0 -34b3f14,92 -34b3f15,43 -34b3f19,43 -34b3f1a,10 -34b3f1b,21 -34b3f1c,90 -34b3f1d,42 -34b3f1f,a8 -34b3f21,2 -34b3f22,10 -34b3f23,82 -34b3f24,30 -34b3f25,42 -34b3f27,1 -34b3f28,50 -34b3f29,40 -34b3f2b,f -34b3f2c,26 -34b3f2d,31 -34b3f2f,1 -34b3f30,24 -34b3f31,2 -34b3f33,10 -34b3f34,af -34b3f35,a2 -34b3f37,18 -34b3f38,af -34b3f39,a2 -34b3f3b,14 -34b3f3d,11 -34b3f3e,10 -34b3f3f,c0 -34b3f41,51 -34b3f42,10 -34b3f43,21 -34b3f45,2 -34b3f46,10 -34b3f47,40 -34b3f48,24 -34b3f49,42 -34b3f4b,4 -34b3f4c,af -34b3f4d,a2 -34b3f4f,10 -34b3f50,3 -34b3f51,c0 -34b3f52,38 -34b3f53,25 -34b3f56,30 -34b3f57,25 -34b3f58,2 -34b3f59,e0 -34b3f5a,28 -34b3f5b,25 -34b3f5c,c -34b3f5d,10 -34b3f5e,14 -34b3f5f,af -34b3f60,2 -34b3f62,20 -34b3f63,25 -34b3f64,26 -34b3f65,31 -34b3f67,1 -34b3f68,8e -34b3f69,a2 -34b3f6a,64 -34b3f6b,cc -34b3f6c,2 -34b3f6d,22 -34b3f6e,10 -34b3f6f,2a -34b3f70,14 +34b3f0d,3e +34b3f0f,24 +34b3f10,24 +34b3f11,7 +34b3f13,1 +34b3f14,24 +34b3f15,6 +34b3f17,10 +34b3f18,3c +34b3f19,5 +34b3f1a,80 +34b3f1b,40 +34b3f1c,24 +34b3f1d,a5 +34b3f1e,64 +34b3f1f,3c +34b3f20,c +34b3f21,10 +34b3f22,14 +34b3f23,1c +34b3f24,2 +34b3f26,20 +34b3f27,25 +34b3f28,3c +34b3f29,2 +34b3f2a,80 +34b3f2b,40 +34b3f2c,8c +34b3f2d,42 +34b3f2e,65 +34b3f2f,30 +34b3f30,18 +34b3f31,40 +34b3f33,2b +34b3f34,3c +34b3f35,13 +34b3f36,80 +34b3f37,40 +34b3f38,26 +34b3f39,73 +34b3f3a,64 +34b3f3b,90 +34b3f3e,90 +34b3f3f,25 +34b3f40,2 +34b3f41,60 +34b3f42,a0 +34b3f43,25 +34b3f44,3c +34b3f45,17 +34b3f46,80 +34b3f47,11 +34b3f48,3c +34b3f49,2 +34b3f4a,80 +34b3f4b,40 +34b3f4c,24 +34b3f4d,42 +34b3f4e,64 +34b3f4f,3c +34b3f50,af +34b3f51,a2 +34b3f53,38 +34b3f54,3c +34b3f55,16 +34b3f56,80 +34b3f57,40 +34b3f59,12 +34b3f5a,10 +34b3f5b,40 +34b3f5d,52 +34b3f5e,10 +34b3f5f,21 +34b3f61,2 +34b3f62,10 +34b3f63,80 +34b3f65,54 +34b3f66,10 +34b3f67,21 +34b3f68,90 +34b3f69,42 +34b3f6b,1 +34b3f6c,30 +34b3f6d,42 +34b3f6f,10 +34b3f70,50 34b3f71,40 -34b3f72,ff -34b3f73,df +34b3f73,17 34b3f74,26 34b3f75,52 -34b3f77,c -34b3f78,26 -34b3f79,7e -34b3f7b,36 -34b3f7c,24 -34b3f7d,7 -34b3f7f,1 -34b3f80,24 -34b3f81,6 -34b3f83,f -34b3f84,3c -34b3f85,5 -34b3f86,80 -34b3f87,40 -34b3f88,24 -34b3f89,a5 -34b3f8a,63 -34b3f8b,d8 -34b3f8c,c -34b3f8d,10 -34b3f8e,14 -34b3f8f,1c -34b3f90,2 -34b3f92,20 -34b3f93,25 -34b3f94,3c -34b3f95,2 -34b3f96,80 -34b3f97,40 -34b3f98,8c -34b3f99,42 -34b3f9a,64 -34b3f9b,cc -34b3f9c,18 -34b3f9d,40 -34b3f9f,62 -34b3fa0,3c -34b3fa1,12 -34b3fa2,80 -34b3fa3,40 -34b3fa4,26 -34b3fa5,52 -34b3fa6,64 -34b3fa7,2c -34b3faa,88 -34b3fab,25 -34b3fac,2 -34b3fad,40 -34b3fae,a0 -34b3faf,25 -34b3fb0,3c -34b3fb1,16 -34b3fb2,80 -34b3fb3,11 -34b3fb4,3c -34b3fb5,17 -34b3fb6,80 -34b3fb7,40 -34b3fb8,26 -34b3fb9,f7 -34b3fba,63 -34b3fbb,d8 -34b3fbc,3c -34b3fbd,15 -34b3fbe,80 -34b3fbf,40 -34b3fc1,11 -34b3fc2,10 -34b3fc3,40 -34b3fc5,51 -34b3fc6,10 -34b3fc7,21 -34b3fc9,2 -34b3fca,10 -34b3fcb,80 -34b3fcd,54 -34b3fce,10 -34b3fcf,21 -34b3fd0,90 -34b3fd1,42 -34b3fd3,1 -34b3fd4,30 +34b3f77,1 +34b3f78,36 +34b3f79,e2 +34b3f7a,a5 +34b3f7b,d0 +34b3f7c,92 +34b3f7d,63 +34b3f81,43 +34b3f82,10 +34b3f83,21 +34b3f84,90 +34b3f85,42 +34b3f87,a8 +34b3f89,2 +34b3f8a,10 +34b3f8b,82 +34b3f8c,30 +34b3f8d,42 +34b3f8f,1 +34b3f90,50 +34b3f91,40 +34b3f93,f +34b3f94,26 +34b3f95,52 +34b3f97,1 +34b3f98,24 +34b3f99,2 +34b3f9b,10 +34b3f9c,af +34b3f9d,a2 +34b3f9f,18 +34b3fa0,af +34b3fa1,a2 +34b3fa3,14 +34b3fa5,12 +34b3fa6,10 +34b3fa7,c0 +34b3fa9,52 +34b3faa,10 +34b3fab,21 +34b3fad,2 +34b3fae,10 +34b3faf,40 +34b3fb0,24 +34b3fb1,42 +34b3fb3,4 +34b3fb4,af +34b3fb5,a2 +34b3fb7,10 +34b3fb8,3 +34b3fb9,c0 +34b3fba,38 +34b3fbb,25 +34b3fbe,30 +34b3fbf,25 +34b3fc0,8f +34b3fc1,a5 +34b3fc3,38 +34b3fc4,c +34b3fc5,10 +34b3fc6,14 +34b3fc7,b1 +34b3fc8,2 +34b3fca,20 +34b3fcb,25 +34b3fcc,26 +34b3fcd,52 +34b3fcf,1 +34b3fd0,8e +34b3fd1,c2 +34b3fd2,65 +34b3fd3,30 +34b3fd4,2 34b3fd5,42 -34b3fd7,10 -34b3fd8,50 +34b3fd6,10 +34b3fd7,2a +34b3fd8,14 34b3fd9,40 -34b3fdb,17 +34b3fda,ff +34b3fdb,df 34b3fdc,26 -34b3fdd,31 -34b3fdf,1 -34b3fe0,36 -34b3fe1,c2 -34b3fe2,a5 -34b3fe3,d0 -34b3fe4,92 -34b3fe5,43 -34b3fe9,43 -34b3fea,10 -34b3feb,21 -34b3fec,90 -34b3fed,42 -34b3fef,a8 -34b3ff1,2 -34b3ff2,10 -34b3ff3,42 -34b3ff4,30 -34b3ff5,42 -34b3ff7,1 -34b3ff8,50 -34b3ff9,40 -34b3ffb,f -34b3ffc,26 -34b3ffd,31 -34b3fff,1 -34b4000,24 -34b4001,2 -34b4003,10 -34b4004,af -34b4005,a2 -34b4007,18 -34b4008,af -34b4009,a2 -34b400b,14 -34b400d,11 -34b400e,10 -34b400f,c0 -34b4011,51 -34b4012,10 -34b4013,21 -34b4015,2 -34b4016,10 -34b4017,40 -34b4018,24 -34b4019,42 -34b401b,4 -34b401c,af -34b401d,a2 -34b401f,10 -34b4020,3 -34b4021,c0 -34b4022,38 -34b4023,25 -34b4026,30 -34b4027,25 -34b4028,2 -34b4029,e0 -34b402a,28 -34b402b,25 -34b402c,c -34b402d,10 -34b402e,14 -34b402f,af -34b4030,2 -34b4032,20 -34b4033,25 -34b4034,26 -34b4035,31 -34b4037,1 -34b4038,8e -34b4039,a2 -34b403a,64 -34b403b,cc -34b403c,2 -34b403d,22 -34b403e,10 -34b403f,2a -34b4040,14 -34b4041,40 -34b4042,ff -34b4043,df -34b4044,26 -34b4045,52 -34b4047,c -34b4048,3c -34b4049,2 -34b404a,80 -34b404b,40 -34b404c,8c -34b404d,42 -34b404e,64 -34b404f,dc -34b4050,10 -34b4051,40 -34b4053,35 -34b4054,3c -34b4055,2 -34b4056,80 -34b4057,40 -34b4058,8c +34b3fdd,73 +34b3fdf,c +34b3fe0,26 +34b3fe1,3e +34b3fe3,36 +34b3fe4,24 +34b3fe5,7 +34b3fe7,1 +34b3fe8,24 +34b3fe9,6 +34b3feb,f +34b3fec,3c +34b3fed,5 +34b3fee,80 +34b3fef,40 +34b3ff0,24 +34b3ff1,a5 +34b3ff2,64 +34b3ff3,3c +34b3ff4,c +34b3ff5,10 +34b3ff6,14 +34b3ff7,1c +34b3ff8,2 +34b3ffa,20 +34b3ffb,25 +34b3ffc,3c +34b3ffd,2 +34b3ffe,80 +34b3fff,40 +34b4000,8c +34b4001,42 +34b4002,65 +34b4003,30 +34b4004,18 +34b4005,40 +34b4007,61 +34b4008,3c +34b4009,13 +34b400a,80 +34b400b,40 +34b400c,26 +34b400d,73 +34b400e,64 +34b400f,90 +34b4012,90 +34b4013,25 +34b4014,2 +34b4015,60 +34b4016,a0 +34b4017,25 +34b4018,3c +34b4019,17 +34b401a,80 +34b401b,11 +34b401c,3c +34b401d,2 +34b401e,80 +34b401f,40 +34b4020,24 +34b4021,42 +34b4022,64 +34b4023,3c +34b4024,af +34b4025,a2 +34b4027,38 +34b4028,3c +34b4029,16 +34b402a,80 +34b402b,40 +34b402d,12 +34b402e,10 +34b402f,40 +34b4031,52 +34b4032,10 +34b4033,21 +34b4035,2 +34b4036,10 +34b4037,80 +34b4039,54 +34b403a,10 +34b403b,21 +34b403c,90 +34b403d,42 +34b403f,1 +34b4040,30 +34b4041,42 +34b4043,10 +34b4044,50 +34b4045,40 +34b4047,17 +34b4048,26 +34b4049,52 +34b404b,1 +34b404c,36 +34b404d,e2 +34b404e,a5 +34b404f,d0 +34b4050,92 +34b4051,63 +34b4055,43 +34b4056,10 +34b4057,21 +34b4058,90 34b4059,42 -34b405a,64 -34b405b,cc -34b405c,18 -34b405d,40 -34b405f,32 -34b4060,3c -34b4061,12 -34b4062,80 -34b4063,40 -34b4064,26 -34b4065,52 -34b4066,64 -34b4067,2c -34b4068,24 -34b4069,14 -34b406b,5 -34b406e,88 -34b406f,25 -34b4070,3c -34b4071,17 -34b4072,80 -34b4073,40 -34b4074,3c -34b4075,16 -34b4076,80 -34b4077,40 -34b4078,26 -34b4079,d6 -34b407a,64 -34b407b,f8 -34b407c,3c -34b407d,15 -34b407e,80 -34b407f,40 -34b4080,26 -34b4081,b5 -34b4082,63 -34b4083,bc -34b4084,3c -34b4085,2 -34b4086,80 -34b4087,40 -34b4088,24 -34b4089,42 -34b408a,63 -34b408b,c0 -34b408c,af -34b408d,a2 -34b408f,38 -34b4090,3c -34b4091,1e -34b4092,80 -34b4093,40 -34b4094,8e -34b4095,e2 -34b4096,64 -34b4097,d8 -34b4098,50 -34b4099,40 -34b409b,14 -34b409c,92 -34b409d,42 -34b40a1,11 -34b40a2,10 -34b40a3,40 -34b40a5,51 -34b40a6,10 -34b40a7,21 -34b40a9,2 +34b405b,a8 +34b405d,2 +34b405e,10 +34b405f,42 +34b4060,30 +34b4061,42 +34b4063,1 +34b4064,50 +34b4065,40 +34b4067,f +34b4068,26 +34b4069,52 +34b406b,1 +34b406c,24 +34b406d,2 +34b406f,10 +34b4070,af +34b4071,a2 +34b4073,18 +34b4074,af +34b4075,a2 +34b4077,14 +34b4079,12 +34b407a,10 +34b407b,c0 +34b407d,52 +34b407e,10 +34b407f,21 +34b4081,2 +34b4082,10 +34b4083,40 +34b4084,24 +34b4085,42 +34b4087,4 +34b4088,af +34b4089,a2 +34b408b,10 +34b408c,3 +34b408d,c0 +34b408e,38 +34b408f,25 +34b4092,30 +34b4093,25 +34b4094,8f +34b4095,a5 +34b4097,38 +34b4098,c +34b4099,10 +34b409a,14 +34b409b,b1 +34b409c,2 +34b409e,20 +34b409f,25 +34b40a0,26 +34b40a1,52 +34b40a3,1 +34b40a4,8e +34b40a5,c2 +34b40a6,65 +34b40a7,30 +34b40a8,2 +34b40a9,42 34b40aa,10 -34b40ab,80 -34b40ac,27 -34b40ad,c3 -34b40ae,64 -34b40af,2c -34b40b1,43 -34b40b2,10 -34b40b3,21 -34b40b4,90 -34b40b5,42 -34b40b7,1 -34b40b8,30 -34b40b9,42 -34b40bb,10 -34b40bc,50 -34b40bd,40 -34b40bf,b -34b40c0,92 -34b40c1,42 -34b40c4,92 -34b40c5,43 -34b40c8,3c -34b40c9,2 -34b40ca,80 -34b40cb,11 -34b40cc,34 -34b40cd,42 -34b40ce,a5 -34b40cf,d0 -34b40d1,43 -34b40d2,10 -34b40d3,21 -34b40d4,90 -34b40d5,42 -34b40d7,a8 -34b40d9,2 -34b40da,10 -34b40db,82 -34b40dc,30 -34b40dd,42 -34b40df,1 -34b40e0,50 -34b40e1,40 -34b40e3,b +34b40ab,2a +34b40ac,14 +34b40ad,40 +34b40ae,ff +34b40af,df +34b40b0,26 +34b40b1,73 +34b40b3,c +34b40b4,12 +34b40b5,a0 +34b40b7,35 +34b40b8,3c +34b40b9,2 +34b40ba,80 +34b40bb,40 +34b40bc,8c +34b40bd,42 +34b40be,65 +34b40bf,30 +34b40c0,18 +34b40c1,40 +34b40c3,32 +34b40c4,3c +34b40c5,13 +34b40c6,80 +34b40c7,40 +34b40c8,26 +34b40c9,73 +34b40ca,64 +34b40cb,90 +34b40cc,24 +34b40cd,14 +34b40cf,5 +34b40d2,90 +34b40d3,25 +34b40d4,3c +34b40d5,17 +34b40d6,80 +34b40d7,40 +34b40d8,3c +34b40d9,16 +34b40da,80 +34b40db,40 +34b40dc,26 +34b40dd,d6 +34b40de,65 +34b40df,60 +34b40e0,3c +34b40e1,15 +34b40e2,80 +34b40e3,40 34b40e4,26 -34b40e5,31 -34b40e7,1 -34b40e8,92 -34b40e9,42 -34b40ed,56 -34b40ee,10 -34b40ef,21 -34b40f0,90 -34b40f1,42 -34b40f4,14 -34b40f5,40 -34b40f7,2 -34b40f8,2 -34b40f9,a0 -34b40fa,20 -34b40fb,25 -34b40fc,8f -34b40fd,a4 -34b40ff,38 -34b4100,2 -34b4101,80 -34b4102,30 -34b4103,25 -34b4104,c -34b4105,10 -34b4106,18 -34b4107,73 -34b4108,26 -34b4109,65 -34b410b,48 -34b410c,26 -34b410d,31 -34b410f,1 -34b4110,26 -34b4111,94 -34b4113,12 -34b4114,3c -34b4115,2 -34b4116,80 -34b4117,40 -34b4118,8c +34b40e5,b5 +34b40e6,64 +34b40e7,20 +34b40e8,3c +34b40e9,2 +34b40ea,80 +34b40eb,40 +34b40ec,24 +34b40ed,42 +34b40ee,64 +34b40ef,24 +34b40f0,af +34b40f1,a2 +34b40f3,38 +34b40f4,3c +34b40f5,1e +34b40f6,80 +34b40f7,40 +34b40f8,8e +34b40f9,e2 +34b40fa,65 +34b40fb,40 +34b40fc,50 +34b40fd,40 +34b40ff,14 +34b4100,92 +34b4101,62 +34b4105,12 +34b4106,10 +34b4107,40 +34b4109,52 +34b410a,10 +34b410b,21 +34b410d,2 +34b410e,10 +34b410f,80 +34b4110,27 +34b4111,c3 +34b4112,64 +34b4113,90 +34b4115,43 +34b4116,10 +34b4117,21 +34b4118,90 34b4119,42 -34b411a,64 -34b411b,cc -34b411c,2 -34b411d,22 -34b411e,10 -34b411f,2a -34b4120,14 +34b411b,1 +34b411c,30 +34b411d,42 +34b411f,10 +34b4120,50 34b4121,40 -34b4122,ff -34b4123,dc -34b4124,26 -34b4125,52 -34b4127,c -34b4128,c -34b4129,10 -34b412a,18 -34b412b,9d -34b412c,2 -34b412e,20 -34b412f,25 -34b4130,8e -34b4131,2 -34b4133,8 -34b4134,24 +34b4123,b +34b4124,92 +34b4125,62 +34b4128,92 +34b4129,63 +34b412c,3c +34b412d,2 +34b412e,80 +34b412f,11 +34b4130,34 +34b4131,42 +34b4132,a5 +34b4133,d0 34b4135,43 -34b4137,8 -34b4138,ae -34b4139,3 -34b413b,8 -34b413c,3c -34b413d,3 -34b413e,e9 -34b4140,ac -34b4141,43 -34b4144,ac +34b4136,10 +34b4137,21 +34b4138,90 +34b4139,42 +34b413b,a8 +34b413d,2 +34b413e,10 +34b413f,82 +34b4140,30 +34b4141,42 +34b4143,1 +34b4144,50 34b4145,40 -34b4147,4 -34b4148,8e -34b4149,2 -34b414b,8 -34b414c,24 -34b414d,43 -34b414f,8 -34b4150,ae -34b4151,3 -34b4153,8 -34b4154,3c -34b4155,3 -34b4156,df -34b4158,ac -34b4159,43 -34b415c,ac -34b415d,40 -34b415f,4 +34b4147,b +34b4148,26 +34b4149,52 +34b414b,1 +34b414c,92 +34b414d,62 +34b4151,56 +34b4152,10 +34b4153,21 +34b4154,90 +34b4155,42 +34b4158,14 +34b4159,40 +34b415b,2 +34b415c,2 +34b415d,a0 +34b415e,20 +34b415f,25 34b4160,8f -34b4161,bf -34b4163,64 -34b4164,8f -34b4165,be -34b4167,60 -34b4168,8f -34b4169,b7 -34b416b,5c -34b416c,8f -34b416d,b6 -34b416f,58 -34b4170,8f -34b4171,b5 -34b4173,54 -34b4174,8f -34b4175,b4 -34b4177,50 -34b4178,8f -34b4179,b3 -34b417b,4c -34b417c,8f -34b417d,b2 -34b417f,48 -34b4180,8f -34b4181,b1 -34b4183,44 -34b4184,8f -34b4185,b0 -34b4187,40 -34b4188,3 -34b4189,e0 -34b418b,8 -34b418c,27 -34b418d,bd -34b418f,68 -34b4190,10 -34b4192,fe -34b4193,a8 -34b4194,26 -34b4195,73 -34b4197,14 -34b4198,3 -34b4199,e0 +34b4161,a4 +34b4163,38 +34b4164,2 +34b4165,80 +34b4166,30 +34b4167,25 +34b4168,c +34b4169,10 +34b416a,18 +34b416b,8c +34b416c,26 +34b416d,25 +34b416f,48 +34b4170,26 +34b4171,52 +34b4173,1 +34b4174,26 +34b4175,94 +34b4177,12 +34b4178,3c +34b4179,2 +34b417a,80 +34b417b,40 +34b417c,8c +34b417d,42 +34b417e,65 +34b417f,30 +34b4180,2 +34b4181,42 +34b4182,10 +34b4183,2a +34b4184,14 +34b4185,40 +34b4186,ff +34b4187,dc +34b4188,26 +34b4189,73 +34b418b,c +34b418c,c +34b418d,10 +34b418e,18 +34b418f,b6 +34b4190,2 +34b4192,20 +34b4193,25 +34b4194,8e +34b4195,2 +34b4197,8 +34b4198,24 +34b4199,43 34b419b,8 -34b41a0,27 -34b41a1,bd -34b41a2,ff -34b41a3,e8 -34b41a4,af -34b41a5,bf -34b41a7,14 -34b41a8,c -34b41a9,10 -34b41aa,15 -34b41ab,b7 -34b41ac,24 -34b41ad,4 -34b41ae,4 -34b41b0,3c -34b41b1,3 -34b41b2,80 -34b41b3,40 -34b41b4,ac -34b41b5,62 -34b41b6,64 -34b41b7,e4 +34b419c,ae +34b419d,3 +34b419f,8 +34b41a0,3c +34b41a1,3 +34b41a2,e9 +34b41a4,ac +34b41a5,43 +34b41a8,ac +34b41a9,40 +34b41ab,4 +34b41ac,8e +34b41ad,2 +34b41af,8 +34b41b0,24 +34b41b1,43 +34b41b3,8 +34b41b4,ae +34b41b5,3 +34b41b7,8 34b41b8,3c 34b41b9,3 -34b41ba,80 -34b41bb,40 +34b41ba,df 34b41bc,ac -34b41bd,62 -34b41be,64 -34b41bf,e0 -34b41c0,8f -34b41c1,bf -34b41c3,14 -34b41c4,3 -34b41c5,e0 -34b41c7,8 -34b41c8,27 -34b41c9,bd -34b41cb,18 -34b41cc,80 -34b41cd,82 -34b41d0,10 -34b41d1,40 -34b41d3,26 -34b41d4,24 -34b41d5,87 -34b41d7,1 -34b41d8,3c -34b41d9,3 -34b41da,80 -34b41db,40 -34b41dc,8c -34b41dd,68 -34b41de,64 -34b41df,e4 -34b41e0,25 -34b41e1,8 -34b41e2,4 -34b41e4,3c -34b41e5,3 -34b41e6,80 -34b41e7,40 -34b41e8,8c -34b41e9,63 -34b41ea,64 -34b41eb,e0 -34b41ed,68 -34b41ee,20 -34b41ef,2b -34b41f0,10 -34b41f1,80 -34b41f3,1e -34b41f4,3c -34b41f5,a -34b41f6,ff -34b41f8,25 -34b41f9,4a -34b41fa,f -34b41fb,ff -34b41fc,30 -34b41fd,c6 -34b41fe,f -34b41ff,ff -34b4200,24 -34b4201,b -34b4202,f0 -34b4204,3c -34b4205,9 -34b4206,80 -34b4207,40 -34b4208,10 -34b420b,7 -34b420c,25 -34b420d,29 -34b420e,63 -34b420f,c8 -34b4211,68 -34b4212,20 -34b4213,2b -34b4214,54 -34b4215,80 -34b4217,5 -34b4218,a0 +34b41bd,43 +34b41c0,ac +34b41c1,40 +34b41c3,4 +34b41c4,8f +34b41c5,bf +34b41c7,6c +34b41c8,8f +34b41c9,be +34b41cb,68 +34b41cc,8f +34b41cd,b7 +34b41cf,64 +34b41d0,8f +34b41d1,b6 +34b41d3,60 +34b41d4,8f +34b41d5,b5 +34b41d7,5c +34b41d8,8f +34b41d9,b4 +34b41db,58 +34b41dc,8f +34b41dd,b3 +34b41df,54 +34b41e0,8f +34b41e1,b2 +34b41e3,50 +34b41e4,8f +34b41e5,b1 +34b41e7,4c +34b41e8,8f +34b41e9,b0 +34b41eb,48 +34b41ec,3 +34b41ed,e0 +34b41ef,8 +34b41f0,27 +34b41f1,bd +34b41f3,70 +34b41f4,10 +34b41f6,fe +34b41f7,a8 +34b41f8,26 +34b41f9,31 +34b41fb,14 +34b41fc,3 +34b41fd,e0 +34b41ff,8 +34b4204,27 +34b4205,bd +34b4206,ff +34b4207,e8 +34b4208,af +34b4209,bf +34b420b,14 +34b420c,c +34b420d,10 +34b420e,15 +34b420f,bb +34b4210,24 +34b4211,4 +34b4212,4 +34b4214,3c +34b4215,3 +34b4216,80 +34b4217,40 +34b4218,ac 34b4219,62 +34b421a,65 +34b421b,4c 34b421c,3c -34b421d,2 +34b421d,3 34b421e,80 34b421f,40 -34b4220,3 -34b4221,e0 -34b4223,8 -34b4224,ac -34b4225,43 -34b4226,64 -34b4227,e0 -34b4228,a0 -34b4229,62 -34b422c,30 -34b422d,a2 -34b422e,f -34b422f,ff -34b4231,2 -34b4232,23 -34b4234,8c -34b4235,62 -34b4239,4a -34b423a,10 -34b423b,24 -34b423d,44 -34b423e,10 -34b423f,25 -34b4241,4b -34b4242,10 -34b4243,24 -34b4245,46 -34b4246,10 -34b4247,25 -34b4248,ac -34b4249,62 -34b424c,95 -34b424d,22 -34b424f,4 -34b4251,a2 -34b4252,28 -34b4253,21 -34b4254,24 -34b4255,e7 -34b4257,1 -34b4258,80 -34b4259,e2 +34b4220,ac +34b4221,62 +34b4222,65 +34b4223,48 +34b4224,8f +34b4225,bf +34b4227,14 +34b4228,3 +34b4229,e0 +34b422b,8 +34b422c,27 +34b422d,bd +34b422f,18 +34b4230,80 +34b4231,82 +34b4234,10 +34b4235,40 +34b4237,26 +34b4238,24 +34b4239,87 +34b423b,1 +34b423c,3c +34b423d,3 +34b423e,80 +34b423f,40 +34b4240,8c +34b4241,68 +34b4242,65 +34b4243,4c +34b4244,25 +34b4245,8 +34b4246,4 +34b4248,3c +34b4249,3 +34b424a,80 +34b424b,40 +34b424c,8c +34b424d,63 +34b424e,65 +34b424f,48 +34b4251,68 +34b4252,20 +34b4253,2b +34b4254,10 +34b4255,80 +34b4257,1e +34b4258,3c +34b4259,a 34b425a,ff -34b425b,ff -34b425c,14 -34b425d,40 -34b425e,ff -34b425f,ec -34b4260,24 -34b4261,63 -34b4263,4 -34b4264,3c -34b4265,2 -34b4266,80 -34b4267,40 -34b4268,ac -34b4269,43 -34b426a,64 -34b426b,e0 -34b426c,3 -34b426d,e0 -34b426f,8 -34b4274,27 -34b4275,bd -34b4276,ff -34b4277,b0 -34b4278,af -34b4279,bf -34b427b,4c -34b427c,af -34b427d,be -34b427f,48 -34b4280,af -34b4281,b7 -34b4283,44 -34b4284,af -34b4285,b6 -34b4287,40 -34b4288,af -34b4289,b5 -34b428b,3c -34b428c,af -34b428d,b4 -34b428f,38 -34b4290,af -34b4291,b3 -34b4293,34 -34b4294,af -34b4295,b2 -34b4297,30 -34b4298,af -34b4299,b1 -34b429b,2c -34b429c,af -34b429d,b0 -34b429f,28 -34b42a1,80 -34b42a2,a8 +34b425c,25 +34b425d,4a +34b425e,f +34b425f,ff +34b4260,30 +34b4261,c6 +34b4262,f +34b4263,ff +34b4264,24 +34b4265,b +34b4266,f0 +34b4268,3c +34b4269,9 +34b426a,80 +34b426b,40 +34b426c,10 +34b426f,7 +34b4270,25 +34b4271,29 +34b4272,64 +34b4273,2c +34b4275,68 +34b4276,20 +34b4277,2b +34b4278,54 +34b4279,80 +34b427b,5 +34b427c,a0 +34b427d,62 +34b4280,3c +34b4281,2 +34b4282,80 +34b4283,40 +34b4284,3 +34b4285,e0 +34b4287,8 +34b4288,ac +34b4289,43 +34b428a,65 +34b428b,48 +34b428c,a0 +34b428d,62 +34b4290,30 +34b4291,a2 +34b4292,f +34b4293,ff +34b4295,2 +34b4296,23 +34b4298,8c +34b4299,62 +34b429d,4a +34b429e,10 +34b429f,24 +34b42a1,44 +34b42a2,10 34b42a3,25 -34b42a6,b0 -34b42a7,25 -34b42aa,90 +34b42a5,4b +34b42a6,10 +34b42a7,24 +34b42a9,46 +34b42aa,10 34b42ab,25 -34b42ac,3c -34b42ad,14 -34b42ae,80 -34b42af,40 -34b42b0,26 -34b42b1,94 -34b42b2,63 -34b42b3,c8 -34b42b4,3c -34b42b5,1e -34b42b6,80 -34b42b7,40 -34b42b8,3c -34b42b9,13 -34b42ba,80 -34b42bb,40 -34b42bc,3c -34b42bd,17 -34b42be,38 -34b42bf,e3 -34b42c0,af -34b42c1,b4 -34b42c3,20 +34b42ac,ac +34b42ad,62 +34b42b0,95 +34b42b1,22 +34b42b3,4 +34b42b5,a2 +34b42b6,28 +34b42b7,21 +34b42b8,24 +34b42b9,e7 +34b42bb,1 +34b42bc,80 +34b42bd,e2 +34b42be,ff +34b42bf,ff +34b42c0,14 +34b42c1,40 +34b42c2,ff +34b42c3,ec 34b42c4,24 -34b42c5,7 -34b42c7,12 -34b42c8,2 -34b42c9,c0 -34b42ca,30 -34b42cb,25 -34b42cc,2 -34b42cd,80 -34b42ce,28 -34b42cf,25 -34b42d0,c -34b42d1,10 -34b42d2,14 -34b42d3,1c -34b42d4,2 -34b42d5,a0 -34b42d6,20 -34b42d7,25 -34b42d8,8f -34b42d9,c5 -34b42da,64 -34b42db,e4 -34b42dc,10 -34b42df,1f -34b42e0,36 -34b42e1,f1 -34b42e2,8e -34b42e3,39 -34b42e4,24 -34b42e5,42 -34b42e6,ff -34b42e7,e0 -34b42e9,51 -34b42eb,18 -34b42ee,18 -34b42ef,10 -34b42f1,3 -34b42f2,18 -34b42f3,83 -34b42f5,2 -34b42f6,27 -34b42f7,c3 -34b42f9,64 -34b42fa,18 -34b42fb,23 -34b42fc,14 -34b42fd,72 -34b42ff,16 -34b4300,24 +34b42c5,63 +34b42c7,4 +34b42c8,3c +34b42c9,2 +34b42ca,80 +34b42cb,40 +34b42cc,ac +34b42cd,43 +34b42ce,65 +34b42cf,48 +34b42d0,3 +34b42d1,e0 +34b42d3,8 +34b42d8,27 +34b42d9,bd +34b42da,ff +34b42db,b0 +34b42dc,af +34b42dd,bf +34b42df,4c +34b42e0,af +34b42e1,be +34b42e3,48 +34b42e4,af +34b42e5,b7 +34b42e7,44 +34b42e8,af +34b42e9,b6 +34b42eb,40 +34b42ec,af +34b42ed,b5 +34b42ef,3c +34b42f0,af +34b42f1,b4 +34b42f3,38 +34b42f4,af +34b42f5,b3 +34b42f7,34 +34b42f8,af +34b42f9,b2 +34b42fb,30 +34b42fc,af +34b42fd,b1 +34b42ff,2c +34b4300,af 34b4301,b0 -34b4303,4 -34b4304,8c -34b4305,a7 -34b4309,7 -34b430a,3b -34b430b,2 -34b430d,51 -34b430f,18 -34b4312,30 -34b4313,10 -34b4315,6 -34b4316,30 -34b4317,83 -34b4319,c4 -34b431a,30 -34b431b,23 -34b431d,6 -34b431e,18 -34b431f,c0 -34b4321,66 -34b4322,30 -34b4323,21 -34b4325,6 -34b4326,30 -34b4327,40 -34b4328,96 -34b4329,83 -34b432b,6 -34b432c,af -34b432d,a3 -34b432f,18 -34b4330,96 -34b4331,83 -34b4333,4 -34b4334,af -34b4335,a3 -34b4337,14 -34b4338,8c -34b4339,a3 -34b433c,30 -34b433d,63 -34b433e,f -34b433f,ff -34b4340,af -34b4341,a3 -34b4343,10 -34b4344,30 -34b4345,e7 -34b4346,f -34b4347,ff -34b4349,46 -34b434a,30 -34b434b,23 -34b434c,8f -34b434d,a5 -34b434f,20 -34b4350,c -34b4351,10 -34b4352,14 -34b4353,af -34b4354,2 -34b4355,a0 -34b4356,20 -34b4357,25 -34b4358,2 -34b435a,28 -34b435b,25 -34b435c,8e -34b435d,62 -34b435e,64 -34b435f,e0 -34b4361,a2 -34b4362,10 -34b4363,2b -34b4364,54 -34b4365,40 -34b4366,ff -34b4367,df -34b4368,80 -34b4369,a2 -34b436c,26 -34b436d,52 -34b436f,1 -34b4370,24 -34b4371,2 -34b4373,6 -34b4374,16 -34b4375,42 -34b4376,ff -34b4377,d3 -34b4378,26 -34b4379,d6 -34b437b,12 -34b437c,3c -34b437d,2 -34b437e,80 -34b437f,40 -34b4380,8c -34b4381,43 -34b4382,64 -34b4383,e4 -34b4384,3c -34b4385,2 -34b4386,80 -34b4387,40 -34b4388,ac -34b4389,43 -34b438a,64 -34b438b,e0 -34b438c,8f -34b438d,bf -34b438f,4c -34b4390,8f -34b4391,be -34b4393,48 -34b4394,8f -34b4395,b7 -34b4397,44 -34b4398,8f -34b4399,b6 -34b439b,40 -34b439c,8f -34b439d,b5 -34b439f,3c -34b43a0,8f -34b43a1,b4 -34b43a3,38 -34b43a4,8f -34b43a5,b3 -34b43a7,34 -34b43a8,8f -34b43a9,b2 -34b43ab,30 -34b43ac,8f -34b43ad,b1 -34b43af,2c +34b4303,28 +34b4305,80 +34b4306,a8 +34b4307,25 +34b430a,b0 +34b430b,25 +34b430e,90 +34b430f,25 +34b4310,3c +34b4311,14 +34b4312,80 +34b4313,40 +34b4314,26 +34b4315,94 +34b4316,64 +34b4317,2c +34b4318,3c +34b4319,1e +34b431a,80 +34b431b,40 +34b431c,3c +34b431d,13 +34b431e,80 +34b431f,40 +34b4320,3c +34b4321,17 +34b4322,38 +34b4323,e3 +34b4324,af +34b4325,b4 +34b4327,20 +34b4328,24 +34b4329,7 +34b432b,12 +34b432c,2 +34b432d,c0 +34b432e,30 +34b432f,25 +34b4330,2 +34b4331,80 +34b4332,28 +34b4333,25 +34b4334,c +34b4335,10 +34b4336,14 +34b4337,1c +34b4338,2 +34b4339,a0 +34b433a,20 +34b433b,25 +34b433c,8f +34b433d,c5 +34b433e,65 +34b433f,4c +34b4340,10 +34b4343,1f +34b4344,36 +34b4345,f1 +34b4346,8e +34b4347,39 +34b4348,24 +34b4349,42 +34b434a,ff +34b434b,e0 +34b434d,51 +34b434f,18 +34b4352,18 +34b4353,10 +34b4355,3 +34b4356,18 +34b4357,83 +34b4359,2 +34b435a,27 +34b435b,c3 +34b435d,64 +34b435e,18 +34b435f,23 +34b4360,14 +34b4361,72 +34b4363,16 +34b4364,24 +34b4365,b0 +34b4367,4 +34b4368,8c +34b4369,a7 +34b436d,7 +34b436e,3b +34b436f,2 +34b4371,51 +34b4373,18 +34b4376,30 +34b4377,10 +34b4379,6 +34b437a,30 +34b437b,83 +34b437d,c4 +34b437e,30 +34b437f,23 +34b4381,6 +34b4382,18 +34b4383,c0 +34b4385,66 +34b4386,30 +34b4387,21 +34b4389,6 +34b438a,30 +34b438b,40 +34b438c,96 +34b438d,83 +34b438f,6 +34b4390,af +34b4391,a3 +34b4393,18 +34b4394,96 +34b4395,83 +34b4397,4 +34b4398,af +34b4399,a3 +34b439b,14 +34b439c,8c +34b439d,a3 +34b43a0,30 +34b43a1,63 +34b43a2,f +34b43a3,ff +34b43a4,af +34b43a5,a3 +34b43a7,10 +34b43a8,30 +34b43a9,e7 +34b43aa,f +34b43ab,ff +34b43ad,46 +34b43ae,30 +34b43af,23 34b43b0,8f -34b43b1,b0 -34b43b3,28 -34b43b4,3 -34b43b5,e0 -34b43b7,8 -34b43b8,27 -34b43b9,bd -34b43bb,50 -34b43bc,4d -34b43bd,51 -34b43c0,4e -34b43c1,6f -34b43c2,72 -34b43c3,6d -34b43c4,61 -34b43c5,6c -34b43cd,8 -34b43cf,e -34b43d1,5f -34b43d2,3 +34b43b1,a5 +34b43b3,20 +34b43b4,c +34b43b5,10 +34b43b6,14 +34b43b7,b1 +34b43b8,2 +34b43b9,a0 +34b43ba,20 +34b43bb,25 +34b43bc,2 +34b43be,28 +34b43bf,25 +34b43c0,8e +34b43c1,62 +34b43c2,65 +34b43c3,48 +34b43c5,a2 +34b43c6,10 +34b43c7,2b +34b43c8,54 +34b43c9,40 +34b43ca,ff +34b43cb,df +34b43cc,80 +34b43cd,a2 +34b43d0,26 +34b43d1,52 34b43d3,1 -34b43d4,1 -34b43dd,18 -34b43df,18 -34b43e1,12 -34b43e3,3 -34b43e4,4 -34b43ed,10 -34b43ef,10 -34b43f1,6 -34b43f2,3 -34b43f3,1 -34b43f4,1 -34b43fd,10 -34b43ff,10 -34b4401,3 -34b4403,3 -34b4404,4 -34b4409,1 -34b440a,2 -34b440b,3 -34b440c,4 -34b440d,5 -34b440e,6 -34b440f,7 -34b4410,ff -34b4411,ff -34b4412,ff -34b4413,ff -34b4414,ff -34b4415,ff -34b4418,11 -34b4419,c2 -34b441a,2d -34b441b,d4 -34b441c,43 -34b441d,22 -34b441e,8 -34b441f,54 -34b4420,ce -34b4421,d1 -34b4422,75 -34b4423,1a -34b4424,a9 -34b4425,3a -34b4426,ea -34b4427,a4 -34b4428,ab -34b4429,21 -34b442d,10 -34b442e,44 -34b442f,65 -34b4430,6b -34b4431,75 +34b43d4,24 +34b43d5,2 +34b43d7,6 +34b43d8,16 +34b43d9,42 +34b43da,ff +34b43db,d3 +34b43dc,26 +34b43dd,d6 +34b43df,12 +34b43e0,3c +34b43e1,2 +34b43e2,80 +34b43e3,40 +34b43e4,8c +34b43e5,43 +34b43e6,65 +34b43e7,4c +34b43e8,3c +34b43e9,2 +34b43ea,80 +34b43eb,40 +34b43ec,ac +34b43ed,43 +34b43ee,65 +34b43ef,48 +34b43f0,8f +34b43f1,bf +34b43f3,4c +34b43f4,8f +34b43f5,be +34b43f7,48 +34b43f8,8f +34b43f9,b7 +34b43fb,44 +34b43fc,8f +34b43fd,b6 +34b43ff,40 +34b4400,8f +34b4401,b5 +34b4403,3c +34b4404,8f +34b4405,b4 +34b4407,38 +34b4408,8f +34b4409,b3 +34b440b,34 +34b440c,8f +34b440d,b2 +34b440f,30 +34b4410,8f +34b4411,b1 +34b4413,2c +34b4414,8f +34b4415,b0 +34b4417,28 +34b4418,3 +34b4419,e0 +34b441b,8 +34b441c,27 +34b441d,bd +34b441f,50 +34b4420,4d +34b4421,51 +34b4424,4e +34b4425,6f +34b4426,72 +34b4427,6d +34b4428,61 +34b4429,6c +34b4431,8 +34b4433,e +34b4435,5f +34b4436,3 +34b4437,1 34b4438,1 -34b4439,10 -34b443a,44 -34b443b,6f -34b443c,64 -34b443d,6f -34b443e,6e -34b443f,67 -34b4440,6f -34b4444,2 -34b4445,10 -34b4446,4a -34b4447,61 -34b4448,62 -34b4449,75 -34b4450,3 -34b4451,d0 -34b4452,46 -34b4453,6f -34b4454,72 -34b4455,65 -34b4456,73 -34b4457,74 -34b445c,4 -34b445d,d0 -34b445e,46 -34b445f,69 -34b4460,72 -34b4461,65 -34b4468,5 -34b4469,d0 -34b446a,57 -34b446b,61 -34b446c,74 -34b446d,65 -34b446e,72 -34b4474,7 -34b4475,d0 -34b4476,53 -34b4477,68 -34b4478,61 -34b4479,64 -34b447a,6f -34b447b,77 -34b4480,6 -34b4481,d0 -34b4482,53 -34b4483,70 -34b4484,69 -34b4485,72 -34b4486,69 -34b4487,74 -34b448c,8 -34b448d,90 -34b448e,42 -34b448f,6f -34b4490,74 -34b4491,57 -34b4498,9 -34b4499,10 -34b449a,49 -34b449b,63 -34b449c,65 -34b44a4,c -34b44a5,a0 -34b44a6,47 -34b44a7,65 -34b44a8,72 -34b44a9,75 -34b44aa,64 -34b44ab,6f -34b44b0,b -34b44b1,80 -34b44b2,47 -34b44b3,54 -34b44b4,47 -34b44bc,d -34b44bd,c0 -34b44be,47 -34b44bf,61 -34b44c0,6e -34b44c1,6f -34b44c2,6e -34b44cb,1 -34b44cf,d -34b4547,d -34b4548,b0 -34b454b,d -34b454c,b0 -34b454f,d -34b4550,b0 -34b4553,c -34b4554,b0 -34b4557,c -34b4558,b0 -34b455b,c -34b455c,a0 -34b4563,d -34b4564,b0 -34b4567,d -34b4568,b0 -34b457f,e8 -34b4580,ac -34b4583,e8 -34b4584,ac -34b4587,e8 -34b4588,ac -34b458b,e8 -34b458c,ac +34b4441,18 +34b4443,18 +34b4445,12 +34b4447,3 +34b4448,4 +34b4451,10 +34b4453,10 +34b4455,6 +34b4456,3 +34b4457,1 +34b4458,1 +34b4461,10 +34b4463,10 +34b4465,3 +34b4467,3 +34b4468,4 +34b446d,1 +34b446e,2 +34b446f,3 +34b4470,4 +34b4471,5 +34b4472,6 +34b4473,7 +34b4474,ff +34b4475,ff +34b4476,ff +34b4477,ff +34b4478,ff +34b4479,ff +34b447c,11 +34b447d,c2 +34b447e,2d +34b447f,d4 +34b4480,43 +34b4481,22 +34b4482,8 +34b4483,54 +34b4484,ce +34b4485,d1 +34b4486,75 +34b4487,1a +34b4488,a9 +34b4489,3a +34b448a,ea +34b448b,a4 +34b448c,ab +34b448d,21 +34b4491,10 +34b4492,44 +34b4493,65 +34b4494,6b +34b4495,75 +34b449c,1 +34b449d,10 +34b449e,44 +34b449f,6f +34b44a0,64 +34b44a1,6f +34b44a2,6e +34b44a3,67 +34b44a4,6f +34b44a8,2 +34b44a9,10 +34b44aa,4a +34b44ab,61 +34b44ac,62 +34b44ad,75 +34b44b4,3 +34b44b5,d0 +34b44b6,46 +34b44b7,6f +34b44b8,72 +34b44b9,65 +34b44ba,73 +34b44bb,74 +34b44c0,4 +34b44c1,d0 +34b44c2,46 +34b44c3,69 +34b44c4,72 +34b44c5,65 +34b44cc,5 +34b44cd,d0 +34b44ce,57 +34b44cf,61 +34b44d0,74 +34b44d1,65 +34b44d2,72 +34b44d8,7 +34b44d9,d0 +34b44da,53 +34b44db,68 +34b44dc,61 +34b44dd,64 +34b44de,6f +34b44df,77 +34b44e4,6 +34b44e5,d0 +34b44e6,53 +34b44e7,70 +34b44e8,69 +34b44e9,72 +34b44ea,69 +34b44eb,74 +34b44f0,8 +34b44f1,90 +34b44f2,42 +34b44f3,6f +34b44f4,74 +34b44f5,57 +34b44fc,9 +34b44fd,10 +34b44fe,49 +34b44ff,63 +34b4500,65 +34b4508,c +34b4509,a0 +34b450a,47 +34b450b,65 +34b450c,72 +34b450d,75 +34b450e,64 +34b450f,6f +34b4514,b +34b4515,80 +34b4516,47 +34b4517,54 +34b4518,47 +34b4520,d +34b4521,c0 +34b4522,47 +34b4523,61 +34b4524,6e +34b4525,6f +34b4526,6e +34b452f,1 +34b4533,d +34b45af,d +34b45b0,b0 34b45b3,d -34b45b4,77 -34b45b5,d0 -34b45b7,2e -34b45b8,3a -34b45b9,b0 -34b45bb,7d -34b45bc,c -34b45bd,90 -34b45be,8f -34b45bf,ff -34b45c0,ff -34b45c1,fd -34b45c3,c9 -34b45c4,6e -34b45c6,2 -34b45c7,e4 -34b45c8,ac -34b45ca,ef -34b45cb,ff -34b45cc,ff -34b45cd,f4 -34b45ce,a -34b45cf,b0 -34b45d0,e5 -34b45d2,c -34b45d3,95 -34b45d4,e0 -34b45d6,e -34b45d7,59 -34b45d8,c0 -34b45ef,7 -34b45f0,90 -34b45f2,5 -34b45f3,ce -34b45f4,eb -34b45f5,40 -34b45f6,c -34b45f7,c8 -34b45f8,a9 -34b45f9,90 -34b45fa,d -34b45fb,a7 -34b45fc,90 -34b45fe,8 -34b45ff,ec -34b4600,b4 -34b4603,4a -34b4604,dd -34b4605,a0 -34b4607,7 -34b4608,97 -34b4609,e2 -34b460a,c -34b460b,88 -34b460c,aa -34b460d,e0 -34b460e,6 -34b460f,ce -34b4610,ed -34b4611,70 -34b4613,7 -34b4614,90 -34b4617,7 -34b4618,90 -34b4626,6d -34b4627,ea -34b462a,c9 -34b462b,4d -34b462c,60 -34b462e,c9 -34b462f,4d -34b4630,60 -34b4631,33 -34b4632,6d -34b4633,eb -34b4634,6b -34b4635,c6 -34b4637,8c -34b4638,b6 -34b463a,7c -34b463b,a4 -34b463c,ce -34b463d,c4 -34b463e,31 -34b463f,9 -34b4640,c3 -34b4641,bb -34b4643,9 -34b4644,c3 -34b4645,bb -34b4647,2 -34b4648,ce -34b4649,d4 -34b465e,4 -34b465f,ce -34b4660,fb -34b4662,a -34b4663,d5 +34b45b4,b0 +34b45b7,d +34b45b8,b0 +34b45bb,c +34b45bc,b0 +34b45bf,c +34b45c0,b0 +34b45c3,c +34b45c4,a0 +34b45cb,d +34b45cc,b0 +34b45cf,d +34b45d0,b0 +34b45e7,e8 +34b45e8,ac +34b45eb,e8 +34b45ec,ac +34b45ef,e8 +34b45f0,ac +34b45f3,e8 +34b45f4,ac +34b461b,d +34b461c,77 +34b461d,d0 +34b461f,2e +34b4620,3a +34b4621,b0 +34b4623,7d +34b4624,c +34b4625,90 +34b4626,8f +34b4627,ff +34b4628,ff +34b4629,fd +34b462b,c9 +34b462c,6e +34b462e,2 +34b462f,e4 +34b4630,ac +34b4632,ef +34b4633,ff +34b4634,ff +34b4635,f4 +34b4636,a +34b4637,b0 +34b4638,e5 +34b463a,c +34b463b,95 +34b463c,e0 +34b463e,e +34b463f,59 +34b4640,c0 +34b4657,7 +34b4658,90 +34b465a,5 +34b465b,ce +34b465c,eb +34b465d,40 +34b465e,c +34b465f,c8 +34b4660,a9 +34b4661,90 +34b4662,d +34b4663,a7 +34b4664,90 34b4666,8 -34b4667,e3 -34b466a,9 -34b466b,ec -34b466e,7e -34b466f,4d -34b4670,b0 -34b4671,ab -34b4672,bb -34b4673,5 -34b4674,e8 -34b4675,aa -34b4676,bc -34b4678,8e -34b4679,d6 -34b467a,7e -34b467b,93 -34b467c,6e -34b467d,d0 -34b467e,8 -34b467f,de -34b4680,d9 -34b4681,ea -34b4697,c -34b4698,a0 -34b469b,c -34b469c,a0 -34b469f,c -34b46a0,a0 -34b46a3,c -34b46a4,a0 -34b46c8,c9 -34b46cb,7 -34b46cc,e2 -34b46cf,c -34b46d0,b0 -34b46d3,e -34b46d4,80 -34b46d7,6f -34b46d8,30 -34b46db,8e -34b46df,8e -34b46e3,6f -34b46e4,40 -34b46e7,e -34b46e8,80 -34b46eb,c -34b46ec,b0 -34b46ef,7 -34b46f0,e2 -34b46f4,c9 -34b46ff,bb -34b4703,5e -34b4704,40 +34b4667,ec +34b4668,b4 +34b466b,4a +34b466c,dd +34b466d,a0 +34b466f,7 +34b4670,97 +34b4671,e2 +34b4672,c +34b4673,88 +34b4674,aa +34b4675,e0 +34b4676,6 +34b4677,ce +34b4678,ed +34b4679,70 +34b467b,7 +34b467c,90 +34b467f,7 +34b4680,90 +34b468e,6d +34b468f,ea +34b4692,c9 +34b4693,4d +34b4694,60 +34b4696,c9 +34b4697,4d +34b4698,60 +34b4699,33 +34b469a,6d +34b469b,eb +34b469c,6b +34b469d,c6 +34b469f,8c +34b46a0,b6 +34b46a2,7c +34b46a3,a4 +34b46a4,ce +34b46a5,c4 +34b46a6,31 +34b46a7,9 +34b46a8,c3 +34b46a9,bb +34b46ab,9 +34b46ac,c3 +34b46ad,bb +34b46af,2 +34b46b0,ce +34b46b1,d4 +34b46c6,4 +34b46c7,ce +34b46c8,fb +34b46ca,a +34b46cb,d5 +34b46ce,8 +34b46cf,e3 +34b46d2,9 +34b46d3,ec +34b46d6,7e +34b46d7,4d +34b46d8,b0 +34b46d9,ab +34b46da,bb +34b46db,5 +34b46dc,e8 +34b46dd,aa +34b46de,bc +34b46e0,8e +34b46e1,d6 +34b46e2,7e +34b46e3,93 +34b46e4,6e +34b46e5,d0 +34b46e6,8 +34b46e7,de +34b46e8,d9 +34b46e9,ea +34b46ff,c +34b4700,a0 +34b4703,c +34b4704,a0 34b4707,c 34b4708,a0 -34b470b,a -34b470c,d0 -34b470f,7 -34b4710,e1 -34b4713,6 -34b4714,f4 -34b4717,6 -34b4718,f4 -34b471b,7 -34b471c,e1 -34b471f,a -34b4720,d0 -34b4723,c -34b4724,a0 -34b4727,5e -34b4728,40 -34b472b,bb -34b473f,a -34b4740,80 -34b4742,c -34b4743,8a -34b4744,8a -34b4745,b0 -34b4746,3 -34b4747,be -34b4748,da -34b4749,10 -34b474a,3 -34b474b,be -34b474c,da -34b474d,10 -34b474e,c -34b474f,8a -34b4750,8a -34b4751,b0 -34b4753,a -34b4754,80 -34b477b,c -34b477c,a0 -34b477f,c -34b4780,a0 -34b4783,c -34b4784,a0 -34b4786,af -34b4787,ff -34b4788,ff -34b4789,f8 +34b470b,c +34b470c,a0 +34b4730,c9 +34b4733,7 +34b4734,e2 +34b4737,c +34b4738,b0 +34b473b,e +34b473c,80 +34b473f,6f +34b4740,30 +34b4743,8e +34b4747,8e +34b474b,6f +34b474c,40 +34b474f,e +34b4750,80 +34b4753,c +34b4754,b0 +34b4757,7 +34b4758,e2 +34b475c,c9 +34b4767,bb +34b476b,5e +34b476c,40 +34b476f,c +34b4770,a0 +34b4773,a +34b4774,d0 +34b4777,7 +34b4778,e1 +34b477b,6 +34b477c,f4 +34b477f,6 +34b4780,f4 +34b4783,7 +34b4784,e1 +34b4787,a +34b4788,d0 34b478b,c 34b478c,a0 -34b478f,c -34b4790,a0 -34b4793,c -34b4794,a0 -34b47cb,d -34b47cc,d0 -34b47cf,e -34b47d0,c0 -34b47d3,4f -34b47d4,80 -34b47d7,9d -34b47fb,df -34b47fc,fb -34b483b,e -34b483c,c0 -34b483f,e -34b4840,c0 -34b4858,b -34b4859,c0 -34b485c,4e -34b485d,60 -34b4860,bc -34b4863,3 -34b4864,e8 -34b4867,a -34b4868,d0 -34b486b,1e -34b486c,90 -34b486f,9e -34b4870,20 -34b4873,da -34b4876,7 -34b4877,e3 -34b487a,c -34b487b,b0 -34b487e,6e -34b487f,50 -34b488e,3 -34b488f,ce -34b4890,eb -34b4892,b -34b4893,d5 -34b4894,7e -34b4895,90 -34b4896,e -34b4897,90 -34b4898,b -34b4899,d0 -34b489a,5f -34b489b,70 -34b489c,9 -34b489d,e0 -34b489e,6f -34b489f,6c -34b48a0,b9 -34b48a1,e0 -34b48a2,5f -34b48a3,70 -34b48a4,9 -34b48a5,e0 -34b48a6,e -34b48a7,90 -34b48a8,b -34b48a9,d0 -34b48aa,b -34b48ab,d5 -34b48ac,7e -34b48ad,90 -34b48ae,3 -34b48af,ce -34b48b0,eb -34b48c6,a -34b48c7,ff -34b48c8,e0 -34b48cb,8 -34b48cc,e0 -34b48cf,8 -34b48d0,e0 -34b48d3,8 -34b48d4,e0 -34b48d7,8 -34b48d8,e0 -34b48db,8 -34b48dc,e0 -34b48df,8 -34b48e0,e0 -34b48e3,8 -34b48e4,e0 -34b48e6,8 -34b48e7,ff -34b48e8,ff -34b48e9,e0 -34b48fe,8 -34b48ff,de -34b4900,ea -34b4902,c -34b4903,83 -34b4904,7e -34b4905,90 -34b4908,c -34b4909,c0 -34b490c,2e -34b490d,a0 -34b4910,bd -34b4911,20 -34b4913,b -34b4914,d4 -34b4917,bd -34b4918,40 -34b491a,b -34b491b,d4 -34b491e,2f -34b491f,ff -34b4920,ff -34b4921,d0 -34b4936,7 -34b4937,ce -34b4938,ea -34b493a,c -34b493b,83 -34b493c,7e -34b493d,90 -34b4940,c -34b4941,b0 -34b4943,2 -34b4944,7e -34b4945,90 -34b4947,bf -34b4948,fb -34b494b,2 -34b494c,7d -34b494d,a0 -34b4950,a -34b4951,d0 -34b4952,5c -34b4953,62 -34b4954,7d -34b4955,b0 -34b4956,9 -34b4957,de -34b4958,eb -34b4959,30 -34b496f,2 -34b4970,de -34b4973,b -34b4974,de -34b4977,7d -34b4978,9e -34b497a,2 -34b497b,d7 -34b497c,9e -34b497e,b -34b497f,b0 -34b4980,9e -34b4982,6e -34b4983,40 -34b4984,9e -34b4986,9f +34b478f,5e +34b4790,40 +34b4793,bb +34b47a7,a +34b47a8,80 +34b47aa,c +34b47ab,8a +34b47ac,8a +34b47ad,b0 +34b47ae,3 +34b47af,be +34b47b0,da +34b47b1,10 +34b47b2,3 +34b47b3,be +34b47b4,da +34b47b5,10 +34b47b6,c +34b47b7,8a +34b47b8,8a +34b47b9,b0 +34b47bb,a +34b47bc,80 +34b47e3,c +34b47e4,a0 +34b47e7,c +34b47e8,a0 +34b47eb,c +34b47ec,a0 +34b47ee,af +34b47ef,ff +34b47f0,ff +34b47f1,f8 +34b47f3,c +34b47f4,a0 +34b47f7,c +34b47f8,a0 +34b47fb,c +34b47fc,a0 +34b4833,d +34b4834,d0 +34b4837,e +34b4838,c0 +34b483b,4f +34b483c,80 +34b483f,9d +34b4863,df +34b4864,fb +34b48a3,e +34b48a4,c0 +34b48a7,e +34b48a8,c0 +34b48c0,b +34b48c1,c0 +34b48c4,4e +34b48c5,60 +34b48c8,bc +34b48cb,3 +34b48cc,e8 +34b48cf,a +34b48d0,d0 +34b48d3,1e +34b48d4,90 +34b48d7,9e +34b48d8,20 +34b48db,da +34b48de,7 +34b48df,e3 +34b48e2,c +34b48e3,b0 +34b48e6,6e +34b48e7,50 +34b48f6,3 +34b48f7,ce +34b48f8,eb +34b48fa,b +34b48fb,d5 +34b48fc,7e +34b48fd,90 +34b48fe,e +34b48ff,90 +34b4900,b +34b4901,d0 +34b4902,5f +34b4903,70 +34b4904,9 +34b4905,e0 +34b4906,6f +34b4907,6c +34b4908,b9 +34b4909,e0 +34b490a,5f +34b490b,70 +34b490c,9 +34b490d,e0 +34b490e,e +34b490f,90 +34b4910,b +34b4911,d0 +34b4912,b +34b4913,d5 +34b4914,7e +34b4915,90 +34b4916,3 +34b4917,ce +34b4918,eb +34b492e,a +34b492f,ff +34b4930,e0 +34b4933,8 +34b4934,e0 +34b4937,8 +34b4938,e0 +34b493b,8 +34b493c,e0 +34b493f,8 +34b4940,e0 +34b4943,8 +34b4944,e0 +34b4947,8 +34b4948,e0 +34b494b,8 +34b494c,e0 +34b494e,8 +34b494f,ff +34b4950,ff +34b4951,e0 +34b4966,8 +34b4967,de +34b4968,ea +34b496a,c +34b496b,83 +34b496c,7e +34b496d,90 +34b4970,c +34b4971,c0 +34b4974,2e +34b4975,a0 +34b4978,bd +34b4979,20 +34b497b,b +34b497c,d4 +34b497f,bd +34b4980,40 +34b4982,b +34b4983,d4 +34b4986,2f 34b4987,ff 34b4988,ff -34b4989,f7 -34b498c,9e -34b4990,9e -34b49a6,c -34b49a7,ff -34b49a8,ff -34b49a9,50 -34b49aa,c -34b49ab,a0 -34b49ae,c -34b49af,a0 -34b49b2,c -34b49b3,ee -34b49b4,ea -34b49b7,3 -34b49b8,8e -34b49b9,90 -34b49bc,b -34b49bd,c0 -34b49c0,b -34b49c1,c0 -34b49c2,5c -34b49c3,63 -34b49c4,8e -34b49c5,90 -34b49c6,9 -34b49c7,de -34b49c8,da -34b49df,ae -34b49e0,ec -34b49e1,30 -34b49e2,a -34b49e3,e8 -34b49e4,39 -34b49e5,80 -34b49e6,e -34b49e7,90 -34b49ea,4f -34b49eb,ae -34b49ec,ec -34b49ed,40 -34b49ee,6f -34b49ef,d5 -34b49f0,5d -34b49f1,c0 -34b49f2,5f -34b49f3,90 -34b49f4,9 -34b49f5,e0 -34b49f6,e -34b49f7,90 -34b49f8,9 -34b49f9,e0 -34b49fa,c -34b49fb,d5 -34b49fc,5d -34b49fd,c0 -34b49fe,3 -34b49ff,ce -34b4a00,ec -34b4a01,40 -34b4a16,5f -34b4a17,ff -34b4a18,ff -34b4a19,d0 -34b4a1c,d -34b4a1d,a0 -34b4a20,7e -34b4a21,40 -34b4a24,cc -34b4a27,4 -34b4a28,e8 -34b4a2b,a -34b4a2c,d0 -34b4a2f,d -34b4a30,a0 -34b4a33,8e -34b4a34,40 -34b4a37,cc -34b4a4e,5 -34b4a4f,ce -34b4a50,ec -34b4a51,30 -34b4a52,d -34b4a53,c4 -34b4a54,5d -34b4a55,b0 -34b4a56,e -34b4a57,90 -34b4a58,b -34b4a59,d0 -34b4a5a,b -34b4a5b,c4 -34b4a5c,5d -34b4a5d,90 -34b4a5e,4 -34b4a5f,df -34b4a60,fc -34b4a61,20 -34b4a62,1d -34b4a63,b4 -34b4a64,5c +34b4989,d0 +34b499e,7 +34b499f,ce +34b49a0,ea +34b49a2,c +34b49a3,83 +34b49a4,7e +34b49a5,90 +34b49a8,c +34b49a9,b0 +34b49ab,2 +34b49ac,7e +34b49ad,90 +34b49af,bf +34b49b0,fb +34b49b3,2 +34b49b4,7d +34b49b5,a0 +34b49b8,a +34b49b9,d0 +34b49ba,5c +34b49bb,62 +34b49bc,7d +34b49bd,b0 +34b49be,9 +34b49bf,de +34b49c0,eb +34b49c1,30 +34b49d7,2 +34b49d8,de +34b49db,b +34b49dc,de +34b49df,7d +34b49e0,9e +34b49e2,2 +34b49e3,d7 +34b49e4,9e +34b49e6,b +34b49e7,b0 +34b49e8,9e +34b49ea,6e +34b49eb,40 +34b49ec,9e +34b49ee,9f +34b49ef,ff +34b49f0,ff +34b49f1,f7 +34b49f4,9e +34b49f8,9e +34b4a0e,c +34b4a0f,ff +34b4a10,ff +34b4a11,50 +34b4a12,c +34b4a13,a0 +34b4a16,c +34b4a17,a0 +34b4a1a,c +34b4a1b,ee +34b4a1c,ea +34b4a1f,3 +34b4a20,8e +34b4a21,90 +34b4a24,b +34b4a25,c0 +34b4a28,b +34b4a29,c0 +34b4a2a,5c +34b4a2b,63 +34b4a2c,8e +34b4a2d,90 +34b4a2e,9 +34b4a2f,de +34b4a30,da +34b4a47,ae +34b4a48,ec +34b4a49,30 +34b4a4a,a +34b4a4b,e8 +34b4a4c,39 +34b4a4d,80 +34b4a4e,e +34b4a4f,90 +34b4a52,4f +34b4a53,ae +34b4a54,ec +34b4a55,40 +34b4a56,6f +34b4a57,d5 +34b4a58,5d +34b4a59,c0 +34b4a5a,5f +34b4a5b,90 +34b4a5c,9 +34b4a5d,e0 +34b4a5e,e +34b4a5f,90 +34b4a60,9 +34b4a61,e0 +34b4a62,c +34b4a63,d5 +34b4a64,5d 34b4a65,c0 -34b4a66,5f -34b4a67,60 -34b4a68,9 -34b4a69,e0 -34b4a6a,2e -34b4a6b,b3 -34b4a6c,5c -34b4a6d,d0 -34b4a6e,7 -34b4a6f,de -34b4a70,ec -34b4a71,50 -34b4a86,6 -34b4a87,de -34b4a88,eb -34b4a8a,d -34b4a8b,b3 -34b4a8c,7e -34b4a8d,90 -34b4a8e,5f -34b4a8f,50 -34b4a90,b -34b4a91,d0 -34b4a92,5f -34b4a93,50 -34b4a94,b -34b4a95,e0 -34b4a96,d -34b4a97,b3 -34b4a98,7e -34b4a99,e0 -34b4a9a,6 -34b4a9b,de -34b4a9c,db -34b4a9d,e0 -34b4aa0,b -34b4aa1,c0 -34b4aa2,9 -34b4aa3,74 -34b4aa4,9e -34b4aa5,70 -34b4aa6,5 -34b4aa7,de -34b4aa8,d8 -34b4ac7,e -34b4ac8,c0 -34b4acb,e -34b4acc,c0 -34b4adb,e -34b4adc,c0 -34b4adf,e -34b4ae0,c0 -34b4aff,e -34b4b00,c0 -34b4b03,e -34b4b04,c0 -34b4b13,d -34b4b14,d0 -34b4b17,e -34b4b18,c0 -34b4b1b,4f -34b4b1c,80 -34b4b1f,9d -34b4b38,29 -34b4b39,c8 -34b4b3b,7b -34b4b3c,ed -34b4b3d,93 -34b4b3e,8d -34b4b3f,da -34b4b40,40 -34b4b42,8d -34b4b43,da -34b4b44,40 -34b4b47,7b -34b4b48,ec -34b4b49,93 -34b4b4c,29 -34b4b4d,c8 -34b4b72,af -34b4b73,ff -34b4b74,ff -34b4b75,f8 -34b4b7e,af -34b4b7f,ff -34b4b80,ff -34b4b81,f8 -34b4ba6,ac -34b4ba7,81 -34b4baa,4a -34b4bab,de -34b4bac,b6 -34b4baf,6 -34b4bb0,ad -34b4bb1,d6 -34b4bb3,6 -34b4bb4,ad -34b4bb5,d6 -34b4bb6,4a -34b4bb7,de -34b4bb8,b6 -34b4bba,ac -34b4bbb,81 -34b4bd6,4 -34b4bd7,be -34b4bd8,ec -34b4bd9,30 -34b4bda,9 -34b4bdb,a4 -34b4bdc,6e -34b4bdd,a0 -34b4be0,1d -34b4be1,a0 -34b4be3,2 -34b4be4,cd -34b4be5,30 -34b4be7,c -34b4be8,c1 -34b4beb,e -34b4bec,90 -34b4bf3,e -34b4bf4,90 -34b4bf7,e -34b4bf8,90 -34b4c0e,1 -34b4c0f,ae -34b4c10,ed -34b4c11,70 -34b4c12,c -34b4c13,d7 -34b4c14,39 -34b4c15,e4 -34b4c16,7e -34b4c17,20 -34b4c19,c9 -34b4c1a,ba -34b4c1b,a -34b4c1c,ee -34b4c1d,ca -34b4c1e,d7 -34b4c1f,6e -34b4c20,64 -34b4c21,da -34b4c22,d6 -34b4c23,9c -34b4c25,aa -34b4c26,d7 -34b4c27,6e -34b4c28,64 -34b4c29,da -34b4c2a,ba -34b4c2b,a -34b4c2c,ee -34b4c2d,ca -34b4c2e,6e -34b4c2f,40 -34b4c32,a -34b4c33,d8 -34b4c34,30 -34b4c37,8d -34b4c38,ee -34b4c39,90 -34b4c47,3e -34b4c48,d0 -34b4c4b,9d -34b4c4c,e6 -34b4c4f,cb -34b4c50,cb -34b4c52,3 -34b4c53,e8 -34b4c54,ad -34b4c56,8 -34b4c57,e2 -34b4c58,6f -34b4c59,60 -34b4c5a,c -34b4c5b,c0 -34b4c5c,e -34b4c5d,a0 -34b4c5e,2e -34b4c5f,ff -34b4c60,ff -34b4c61,d0 -34b4c62,8e -34b4c63,50 -34b4c64,8 -34b4c65,f5 -34b4c66,cd -34b4c68,1 -34b4c69,ea -34b4c7e,e -34b4c7f,ff -34b4c80,ec -34b4c81,40 -34b4c82,e -34b4c83,90 -34b4c84,5d -34b4c85,c0 -34b4c86,e -34b4c87,90 -34b4c88,a -34b4c89,e0 -34b4c8a,e -34b4c8b,90 -34b4c8c,5d -34b4c8d,c0 -34b4c8e,e -34b4c8f,ff -34b4c90,fd -34b4c91,50 -34b4c92,e -34b4c93,90 -34b4c94,4b -34b4c95,d2 -34b4c96,e -34b4c97,90 -34b4c98,5 -34b4c99,f6 -34b4c9a,e -34b4c9b,90 -34b4c9c,4b -34b4c9d,e3 -34b4c9e,e -34b4c9f,ff -34b4ca0,ed -34b4ca1,80 -34b4cb7,9d -34b4cb8,ed -34b4cb9,80 -34b4cba,8 -34b4cbb,e9 -34b4cbc,36 -34b4cbd,b0 -34b4cbe,d -34b4cbf,b0 -34b4cc2,3f -34b4cc3,90 -34b4cc6,5f -34b4cc7,70 -34b4cca,1e -34b4ccb,90 -34b4cce,d -34b4ccf,b0 -34b4cd2,8 -34b4cd3,e9 -34b4cd4,47 -34b4cd5,b0 -34b4cd7,9d -34b4cd8,ed -34b4cd9,80 -34b4cee,5f -34b4cef,fe -34b4cf0,d8 -34b4cf2,5f -34b4cf3,65 -34b4cf4,ae -34b4cf5,80 -34b4cf6,5f -34b4cf7,60 -34b4cf8,c -34b4cf9,d0 -34b4cfa,5f -34b4cfb,60 -34b4cfc,9 -34b4cfd,e0 -34b4cfe,5f -34b4cff,60 -34b4d00,9 -34b4d01,f0 -34b4d02,5f -34b4d03,60 -34b4d04,9 -34b4d05,e0 -34b4d06,5f -34b4d07,60 -34b4d08,c -34b4d09,d0 -34b4d0a,5f -34b4d0b,65 -34b4d0c,ae -34b4d0d,80 -34b4d0e,5f -34b4d0f,fe -34b4d10,d8 +34b4a66,3 +34b4a67,ce +34b4a68,ec +34b4a69,40 +34b4a7e,5f +34b4a7f,ff +34b4a80,ff +34b4a81,d0 +34b4a84,d +34b4a85,a0 +34b4a88,7e +34b4a89,40 +34b4a8c,cc +34b4a8f,4 +34b4a90,e8 +34b4a93,a +34b4a94,d0 +34b4a97,d +34b4a98,a0 +34b4a9b,8e +34b4a9c,40 +34b4a9f,cc +34b4ab6,5 +34b4ab7,ce +34b4ab8,ec +34b4ab9,30 +34b4aba,d +34b4abb,c4 +34b4abc,5d +34b4abd,b0 +34b4abe,e +34b4abf,90 +34b4ac0,b +34b4ac1,d0 +34b4ac2,b +34b4ac3,c4 +34b4ac4,5d +34b4ac5,90 +34b4ac6,4 +34b4ac7,df +34b4ac8,fc +34b4ac9,20 +34b4aca,1d +34b4acb,b4 +34b4acc,5c +34b4acd,c0 +34b4ace,5f +34b4acf,60 +34b4ad0,9 +34b4ad1,e0 +34b4ad2,2e +34b4ad3,b3 +34b4ad4,5c +34b4ad5,d0 +34b4ad6,7 +34b4ad7,de +34b4ad8,ec +34b4ad9,50 +34b4aee,6 +34b4aef,de +34b4af0,eb +34b4af2,d +34b4af3,b3 +34b4af4,7e +34b4af5,90 +34b4af6,5f +34b4af7,50 +34b4af8,b +34b4af9,d0 +34b4afa,5f +34b4afb,50 +34b4afc,b +34b4afd,e0 +34b4afe,d +34b4aff,b3 +34b4b00,7e +34b4b01,e0 +34b4b02,6 +34b4b03,de +34b4b04,db +34b4b05,e0 +34b4b08,b +34b4b09,c0 +34b4b0a,9 +34b4b0b,74 +34b4b0c,9e +34b4b0d,70 +34b4b0e,5 +34b4b0f,de +34b4b10,d8 +34b4b2f,e +34b4b30,c0 +34b4b33,e +34b4b34,c0 +34b4b43,e +34b4b44,c0 +34b4b47,e +34b4b48,c0 +34b4b67,e +34b4b68,c0 +34b4b6b,e +34b4b6c,c0 +34b4b7b,d +34b4b7c,d0 +34b4b7f,e +34b4b80,c0 +34b4b83,4f +34b4b84,80 +34b4b87,9d +34b4ba0,29 +34b4ba1,c8 +34b4ba3,7b +34b4ba4,ed +34b4ba5,93 +34b4ba6,8d +34b4ba7,da +34b4ba8,40 +34b4baa,8d +34b4bab,da +34b4bac,40 +34b4baf,7b +34b4bb0,ec +34b4bb1,93 +34b4bb4,29 +34b4bb5,c8 +34b4bda,af +34b4bdb,ff +34b4bdc,ff +34b4bdd,f8 +34b4be6,af +34b4be7,ff +34b4be8,ff +34b4be9,f8 +34b4c0e,ac +34b4c0f,81 +34b4c12,4a +34b4c13,de +34b4c14,b6 +34b4c17,6 +34b4c18,ad +34b4c19,d6 +34b4c1b,6 +34b4c1c,ad +34b4c1d,d6 +34b4c1e,4a +34b4c1f,de +34b4c20,b6 +34b4c22,ac +34b4c23,81 +34b4c3e,4 +34b4c3f,be +34b4c40,ec +34b4c41,30 +34b4c42,9 +34b4c43,a4 +34b4c44,6e +34b4c45,a0 +34b4c48,1d +34b4c49,a0 +34b4c4b,2 +34b4c4c,cd +34b4c4d,30 +34b4c4f,c +34b4c50,c1 +34b4c53,e +34b4c54,90 +34b4c5b,e +34b4c5c,90 +34b4c5f,e +34b4c60,90 +34b4c76,1 +34b4c77,ae +34b4c78,ed +34b4c79,70 +34b4c7a,c +34b4c7b,d7 +34b4c7c,39 +34b4c7d,e4 +34b4c7e,7e +34b4c7f,20 +34b4c81,c9 +34b4c82,ba +34b4c83,a +34b4c84,ee +34b4c85,ca +34b4c86,d7 +34b4c87,6e +34b4c88,64 +34b4c89,da +34b4c8a,d6 +34b4c8b,9c +34b4c8d,aa +34b4c8e,d7 +34b4c8f,6e +34b4c90,64 +34b4c91,da +34b4c92,ba +34b4c93,a +34b4c94,ee +34b4c95,ca +34b4c96,6e +34b4c97,40 +34b4c9a,a +34b4c9b,d8 +34b4c9c,30 +34b4c9f,8d +34b4ca0,ee +34b4ca1,90 +34b4caf,3e +34b4cb0,d0 +34b4cb3,9d +34b4cb4,e6 +34b4cb7,cb +34b4cb8,cb +34b4cba,3 +34b4cbb,e8 +34b4cbc,ad +34b4cbe,8 +34b4cbf,e2 +34b4cc0,6f +34b4cc1,60 +34b4cc2,c +34b4cc3,c0 +34b4cc4,e +34b4cc5,a0 +34b4cc6,2e +34b4cc7,ff +34b4cc8,ff +34b4cc9,d0 +34b4cca,8e +34b4ccb,50 +34b4ccc,8 +34b4ccd,f5 +34b4cce,cd +34b4cd0,1 +34b4cd1,ea +34b4ce6,e +34b4ce7,ff +34b4ce8,ec +34b4ce9,40 +34b4cea,e +34b4ceb,90 +34b4cec,5d +34b4ced,c0 +34b4cee,e +34b4cef,90 +34b4cf0,a +34b4cf1,e0 +34b4cf2,e +34b4cf3,90 +34b4cf4,5d +34b4cf5,c0 +34b4cf6,e +34b4cf7,ff +34b4cf8,fd +34b4cf9,50 +34b4cfa,e +34b4cfb,90 +34b4cfc,4b +34b4cfd,d2 +34b4cfe,e +34b4cff,90 +34b4d00,5 +34b4d01,f6 +34b4d02,e +34b4d03,90 +34b4d04,4b +34b4d05,e3 +34b4d06,e +34b4d07,ff +34b4d08,ed +34b4d09,80 +34b4d1f,9d +34b4d20,ed +34b4d21,80 +34b4d22,8 +34b4d23,e9 +34b4d24,36 +34b4d25,b0 34b4d26,d -34b4d27,ff -34b4d28,ff -34b4d29,e0 -34b4d2a,d -34b4d2b,b0 -34b4d2e,d -34b4d2f,b0 -34b4d32,d -34b4d33,b0 +34b4d27,b0 +34b4d2a,3f +34b4d2b,90 +34b4d2e,5f +34b4d2f,70 +34b4d32,1e +34b4d33,90 34b4d36,d -34b4d37,ff -34b4d38,ff -34b4d39,c0 -34b4d3a,d -34b4d3b,b0 -34b4d3e,d -34b4d3f,b0 -34b4d42,d -34b4d43,b0 -34b4d46,d -34b4d47,ff -34b4d48,ff -34b4d49,f0 -34b4d5e,b -34b4d5f,ff -34b4d60,ff -34b4d61,f4 -34b4d62,b -34b4d63,d0 -34b4d66,b -34b4d67,d0 -34b4d6a,b -34b4d6b,d0 -34b4d6e,b -34b4d6f,ff -34b4d70,ff -34b4d71,c0 -34b4d72,b -34b4d73,d0 -34b4d76,b -34b4d77,d0 -34b4d7a,b -34b4d7b,d0 -34b4d7e,b -34b4d7f,d0 -34b4d96,1 -34b4d97,ae -34b4d98,ed -34b4d99,60 -34b4d9a,b -34b4d9b,e7 -34b4d9c,38 -34b4d9d,a0 -34b4d9e,4e -34b4d9f,90 -34b4da2,8f -34b4da3,40 -34b4da6,9f -34b4da7,10 -34b4da8,bf -34b4da9,f2 -34b4daa,7f -34b4dab,40 -34b4dac,7 -34b4dad,f2 -34b4dae,4e -34b4daf,90 -34b4db0,7 -34b4db1,f2 -34b4db2,b -34b4db3,e7 -34b4db4,39 -34b4db5,f2 -34b4db6,1 -34b4db7,be -34b4db8,ed -34b4db9,90 -34b4dce,5f -34b4dcf,60 -34b4dd0,9 -34b4dd1,e0 -34b4dd2,5f -34b4dd3,60 -34b4dd4,9 -34b4dd5,e0 -34b4dd6,5f -34b4dd7,60 -34b4dd8,9 -34b4dd9,e0 -34b4dda,5f -34b4ddb,60 -34b4ddc,9 -34b4ddd,e0 -34b4dde,5f -34b4ddf,ff -34b4de0,ff -34b4de1,e0 -34b4de2,5f -34b4de3,60 -34b4de4,9 -34b4de5,e0 -34b4de6,5f -34b4de7,60 -34b4de8,9 -34b4de9,e0 -34b4dea,5f -34b4deb,60 -34b4dec,9 -34b4ded,e0 -34b4dee,5f -34b4def,60 -34b4df0,9 -34b4df1,e0 -34b4e06,d -34b4e07,ff -34b4e08,ff -34b4e09,b0 -34b4e0b,d -34b4e0c,b0 -34b4e0f,d -34b4e10,b0 -34b4e13,d -34b4e14,b0 -34b4e17,d -34b4e18,b0 -34b4e1b,d -34b4e1c,b0 -34b4e1f,d -34b4e20,b0 -34b4e23,d -34b4e24,b0 -34b4e26,d -34b4e27,ff -34b4e28,ff -34b4e29,b0 -34b4e3f,cf -34b4e40,ff -34b4e41,40 -34b4e44,7f -34b4e45,40 -34b4e48,7f -34b4e49,40 -34b4e4c,7f -34b4e4d,40 -34b4e50,7f -34b4e51,40 -34b4e54,7f -34b4e55,30 -34b4e56,75 -34b4e58,9e -34b4e5a,8d -34b4e5b,64 -34b4e5c,dc -34b4e5e,2b -34b4e5f,ee -34b4e60,c5 -34b4e76,5f -34b4e77,60 -34b4e78,9 -34b4e79,e7 -34b4e7a,5f -34b4e7b,60 -34b4e7c,9e -34b4e7d,70 -34b4e7e,5f -34b4e7f,69 -34b4e80,e7 -34b4e82,5f -34b4e83,be -34b4e84,80 -34b4e86,5f -34b4e87,ed +34b4d37,b0 +34b4d3a,8 +34b4d3b,e9 +34b4d3c,47 +34b4d3d,b0 +34b4d3f,9d +34b4d40,ed +34b4d41,80 +34b4d56,5f +34b4d57,fe +34b4d58,d8 +34b4d5a,5f +34b4d5b,65 +34b4d5c,ae +34b4d5d,80 +34b4d5e,5f +34b4d5f,60 +34b4d60,c +34b4d61,d0 +34b4d62,5f +34b4d63,60 +34b4d64,9 +34b4d65,e0 +34b4d66,5f +34b4d67,60 +34b4d68,9 +34b4d69,f0 +34b4d6a,5f +34b4d6b,60 +34b4d6c,9 +34b4d6d,e0 +34b4d6e,5f +34b4d6f,60 +34b4d70,c +34b4d71,d0 +34b4d72,5f +34b4d73,65 +34b4d74,ae +34b4d75,80 +34b4d76,5f +34b4d77,fe +34b4d78,d8 +34b4d8e,d +34b4d8f,ff +34b4d90,ff +34b4d91,e0 +34b4d92,d +34b4d93,b0 +34b4d96,d +34b4d97,b0 +34b4d9a,d +34b4d9b,b0 +34b4d9e,d +34b4d9f,ff +34b4da0,ff +34b4da1,c0 +34b4da2,d +34b4da3,b0 +34b4da6,d +34b4da7,b0 +34b4daa,d +34b4dab,b0 +34b4dae,d +34b4daf,ff +34b4db0,ff +34b4db1,f0 +34b4dc6,b +34b4dc7,ff +34b4dc8,ff +34b4dc9,f4 +34b4dca,b +34b4dcb,d0 +34b4dce,b +34b4dcf,d0 +34b4dd2,b +34b4dd3,d0 +34b4dd6,b +34b4dd7,ff +34b4dd8,ff +34b4dd9,c0 +34b4dda,b +34b4ddb,d0 +34b4dde,b +34b4ddf,d0 +34b4de2,b +34b4de3,d0 +34b4de6,b +34b4de7,d0 +34b4dfe,1 +34b4dff,ae +34b4e00,ed +34b4e01,60 +34b4e02,b +34b4e03,e7 +34b4e04,38 +34b4e05,a0 +34b4e06,4e +34b4e07,90 +34b4e0a,8f +34b4e0b,40 +34b4e0e,9f +34b4e0f,10 +34b4e10,bf +34b4e11,f2 +34b4e12,7f +34b4e13,40 +34b4e14,7 +34b4e15,f2 +34b4e16,4e +34b4e17,90 +34b4e18,7 +34b4e19,f2 +34b4e1a,b +34b4e1b,e7 +34b4e1c,39 +34b4e1d,f2 +34b4e1e,1 +34b4e1f,be +34b4e20,ed +34b4e21,90 +34b4e36,5f +34b4e37,60 +34b4e38,9 +34b4e39,e0 +34b4e3a,5f +34b4e3b,60 +34b4e3c,9 +34b4e3d,e0 +34b4e3e,5f +34b4e3f,60 +34b4e40,9 +34b4e41,e0 +34b4e42,5f +34b4e43,60 +34b4e44,9 +34b4e45,e0 +34b4e46,5f +34b4e47,ff +34b4e48,ff +34b4e49,e0 +34b4e4a,5f +34b4e4b,60 +34b4e4c,9 +34b4e4d,e0 +34b4e4e,5f +34b4e4f,60 +34b4e50,9 +34b4e51,e0 +34b4e52,5f +34b4e53,60 +34b4e54,9 +34b4e55,e0 +34b4e56,5f +34b4e57,60 +34b4e58,9 +34b4e59,e0 +34b4e6e,d +34b4e6f,ff +34b4e70,ff +34b4e71,b0 +34b4e73,d +34b4e74,b0 +34b4e77,d +34b4e78,b0 +34b4e7b,d +34b4e7c,b0 +34b4e7f,d +34b4e80,b0 +34b4e83,d +34b4e84,b0 +34b4e87,d 34b4e88,b0 -34b4e8a,5f -34b4e8b,87 -34b4e8c,e8 -34b4e8e,5f -34b4e8f,60 -34b4e90,ae -34b4e91,40 -34b4e92,5f -34b4e93,60 -34b4e94,1d -34b4e95,c0 -34b4e96,5f -34b4e97,60 -34b4e98,6 -34b4e99,ea -34b4eae,c -34b4eaf,c0 -34b4eb2,c -34b4eb3,c0 -34b4eb6,c -34b4eb7,c0 -34b4eba,c -34b4ebb,c0 -34b4ebe,c -34b4ebf,c0 -34b4ec2,c -34b4ec3,c0 -34b4ec6,c -34b4ec7,c0 -34b4eca,c -34b4ecb,c0 -34b4ece,c -34b4ecf,ff -34b4ed0,ff -34b4ed1,f7 -34b4ee6,af -34b4ee7,a0 -34b4ee8,c -34b4ee9,f8 -34b4eea,ae -34b4eeb,d0 -34b4eec,2e -34b4eed,e8 -34b4eee,ad -34b4eef,d5 -34b4ef0,9b -34b4ef1,e8 -34b4ef2,ad -34b4ef3,aa -34b4ef4,c8 -34b4ef5,e8 -34b4ef6,ad -34b4ef7,5d -34b4ef8,e1 -34b4ef9,e8 -34b4efa,ad -34b4efb,d -34b4efc,b0 -34b4efd,e8 -34b4efe,ad -34b4f01,e8 -34b4f02,ad -34b4f05,e8 -34b4f06,ad -34b4f09,e8 -34b4f1e,5f +34b4e8b,d +34b4e8c,b0 +34b4e8e,d +34b4e8f,ff +34b4e90,ff +34b4e91,b0 +34b4ea7,cf +34b4ea8,ff +34b4ea9,40 +34b4eac,7f +34b4ead,40 +34b4eb0,7f +34b4eb1,40 +34b4eb4,7f +34b4eb5,40 +34b4eb8,7f +34b4eb9,40 +34b4ebc,7f +34b4ebd,30 +34b4ebe,75 +34b4ec0,9e +34b4ec2,8d +34b4ec3,64 +34b4ec4,dc +34b4ec6,2b +34b4ec7,ee +34b4ec8,c5 +34b4ede,5f +34b4edf,60 +34b4ee0,9 +34b4ee1,e7 +34b4ee2,5f +34b4ee3,60 +34b4ee4,9e +34b4ee5,70 +34b4ee6,5f +34b4ee7,69 +34b4ee8,e7 +34b4eea,5f +34b4eeb,be +34b4eec,80 +34b4eee,5f +34b4eef,ed +34b4ef0,b0 +34b4ef2,5f +34b4ef3,87 +34b4ef4,e8 +34b4ef6,5f +34b4ef7,60 +34b4ef8,ae +34b4ef9,40 +34b4efa,5f +34b4efb,60 +34b4efc,1d +34b4efd,c0 +34b4efe,5f +34b4eff,60 +34b4f00,6 +34b4f01,ea +34b4f16,c +34b4f17,c0 +34b4f1a,c +34b4f1b,c0 +34b4f1e,c 34b4f1f,c0 -34b4f20,8 -34b4f21,e0 -34b4f22,5f -34b4f23,e6 -34b4f24,8 -34b4f25,e0 -34b4f26,5f -34b4f27,cb -34b4f28,8 -34b4f29,e0 -34b4f2a,5f -34b4f2b,7e -34b4f2c,48 -34b4f2d,e0 -34b4f2e,5f -34b4f2f,5c -34b4f30,a8 -34b4f31,e0 -34b4f32,5f -34b4f33,57 -34b4f34,e8 -34b4f35,e0 -34b4f36,5f -34b4f37,50 -34b4f38,dc -34b4f39,e0 -34b4f3a,5f -34b4f3b,50 -34b4f3c,9e -34b4f3d,e0 -34b4f3e,5f -34b4f3f,50 -34b4f40,2e -34b4f41,e0 -34b4f56,4 -34b4f57,ce -34b4f58,eb -34b4f59,20 -34b4f5a,c -34b4f5b,d5 -34b4f5c,6e -34b4f5d,a0 -34b4f5e,3e -34b4f5f,80 -34b4f60,a -34b4f61,e0 -34b4f62,7f -34b4f63,50 -34b4f64,8 -34b4f65,f2 -34b4f66,7f -34b4f67,40 -34b4f68,8 -34b4f69,f4 -34b4f6a,7f -34b4f6b,50 -34b4f6c,8 -34b4f6d,f2 -34b4f6e,3e -34b4f6f,80 -34b4f70,a -34b4f71,e0 -34b4f72,c -34b4f73,d5 -34b4f74,6e -34b4f75,b0 -34b4f76,4 -34b4f77,ce -34b4f78,eb -34b4f79,20 -34b4f8e,d -34b4f8f,ff -34b4f90,ed -34b4f91,60 -34b4f92,d -34b4f93,b0 -34b4f94,5c -34b4f95,e2 -34b4f96,d -34b4f97,b0 -34b4f98,6 -34b4f99,f6 -34b4f9a,d -34b4f9b,b0 -34b4f9c,6 -34b4f9d,f6 -34b4f9e,d -34b4f9f,b0 -34b4fa0,5c -34b4fa1,e2 -34b4fa2,d -34b4fa3,ff -34b4fa4,ed -34b4fa5,60 -34b4fa6,d -34b4fa7,b0 -34b4faa,d -34b4fab,b0 -34b4fae,d -34b4faf,b0 -34b4fc6,4 -34b4fc7,ce -34b4fc8,eb -34b4fc9,20 -34b4fca,c -34b4fcb,d5 -34b4fcc,6e -34b4fcd,a0 -34b4fce,3e -34b4fcf,80 -34b4fd0,a -34b4fd1,e0 +34b4f22,c +34b4f23,c0 +34b4f26,c +34b4f27,c0 +34b4f2a,c +34b4f2b,c0 +34b4f2e,c +34b4f2f,c0 +34b4f32,c +34b4f33,c0 +34b4f36,c +34b4f37,ff +34b4f38,ff +34b4f39,f7 +34b4f4e,af +34b4f4f,a0 +34b4f50,c +34b4f51,f8 +34b4f52,ae +34b4f53,d0 +34b4f54,2e +34b4f55,e8 +34b4f56,ad +34b4f57,d5 +34b4f58,9b +34b4f59,e8 +34b4f5a,ad +34b4f5b,aa +34b4f5c,c8 +34b4f5d,e8 +34b4f5e,ad +34b4f5f,5d +34b4f60,e1 +34b4f61,e8 +34b4f62,ad +34b4f63,d +34b4f64,b0 +34b4f65,e8 +34b4f66,ad +34b4f69,e8 +34b4f6a,ad +34b4f6d,e8 +34b4f6e,ad +34b4f71,e8 +34b4f86,5f +34b4f87,c0 +34b4f88,8 +34b4f89,e0 +34b4f8a,5f +34b4f8b,e6 +34b4f8c,8 +34b4f8d,e0 +34b4f8e,5f +34b4f8f,cb +34b4f90,8 +34b4f91,e0 +34b4f92,5f +34b4f93,7e +34b4f94,48 +34b4f95,e0 +34b4f96,5f +34b4f97,5c +34b4f98,a8 +34b4f99,e0 +34b4f9a,5f +34b4f9b,57 +34b4f9c,e8 +34b4f9d,e0 +34b4f9e,5f +34b4f9f,50 +34b4fa0,dc +34b4fa1,e0 +34b4fa2,5f +34b4fa3,50 +34b4fa4,9e +34b4fa5,e0 +34b4fa6,5f +34b4fa7,50 +34b4fa8,2e +34b4fa9,e0 +34b4fbe,4 +34b4fbf,ce +34b4fc0,eb +34b4fc1,20 +34b4fc2,c +34b4fc3,d5 +34b4fc4,6e +34b4fc5,a0 +34b4fc6,3e +34b4fc7,80 +34b4fc8,a +34b4fc9,e0 +34b4fca,7f +34b4fcb,50 +34b4fcc,8 +34b4fcd,f2 +34b4fce,7f +34b4fcf,40 +34b4fd0,8 +34b4fd1,f4 34b4fd2,7f 34b4fd3,50 34b4fd4,8 34b4fd5,f2 -34b4fd6,7f -34b4fd7,40 -34b4fd8,8 -34b4fd9,f4 -34b4fda,7f -34b4fdb,50 -34b4fdc,8 -34b4fdd,f1 -34b4fde,3e -34b4fdf,80 -34b4fe0,a -34b4fe1,d0 -34b4fe2,c -34b4fe3,d5 -34b4fe4,6e -34b4fe5,a0 -34b4fe6,4 -34b4fe7,ce -34b4fe8,fc -34b4fe9,20 -34b4fec,ae -34b4fed,50 -34b4ff0,c -34b4ff1,80 -34b4ffe,5f -34b4fff,fe -34b5000,eb -34b5001,20 -34b5002,5f -34b5003,71 -34b5004,7e -34b5005,b0 -34b5006,5f -34b5007,70 -34b5008,c -34b5009,d0 -34b500a,5f -34b500b,71 -34b500c,6e -34b500d,a0 -34b500e,5f -34b500f,ff -34b5010,ea -34b5012,5f -34b5013,72 -34b5014,ae -34b5015,40 -34b5016,5f -34b5017,70 -34b5018,d -34b5019,b0 -34b501a,5f -34b501b,70 -34b501c,8 -34b501d,e5 -34b501e,5f -34b501f,70 -34b5021,db -34b5036,6 -34b5037,ce -34b5038,eb -34b5039,30 -34b503a,d -34b503b,c4 -34b503c,5a -34b503d,90 -34b503e,4f -34b503f,60 -34b5042,e -34b5043,c6 -34b5046,5 -34b5047,ce -34b5048,eb -34b5049,40 -34b504c,6c -34b504d,c0 -34b5050,8 -34b5051,e0 -34b5052,c -34b5053,73 -34b5054,5c -34b5055,d0 -34b5056,8 -34b5057,de -34b5058,ec -34b5059,50 -34b506e,cf -34b506f,ff -34b5070,ff -34b5071,fb -34b5073,d -34b5074,b0 -34b5077,d -34b5078,b0 -34b507b,d -34b507c,b0 -34b507f,d -34b5080,b0 -34b5083,d -34b5084,b0 -34b5087,d -34b5088,b0 -34b508b,d -34b508c,b0 -34b508f,d -34b5090,b0 +34b4fd6,3e +34b4fd7,80 +34b4fd8,a +34b4fd9,e0 +34b4fda,c +34b4fdb,d5 +34b4fdc,6e +34b4fdd,b0 +34b4fde,4 +34b4fdf,ce +34b4fe0,eb +34b4fe1,20 +34b4ff6,d +34b4ff7,ff +34b4ff8,ed +34b4ff9,60 +34b4ffa,d +34b4ffb,b0 +34b4ffc,5c +34b4ffd,e2 +34b4ffe,d +34b4fff,b0 +34b5000,6 +34b5001,f6 +34b5002,d +34b5003,b0 +34b5004,6 +34b5005,f6 +34b5006,d +34b5007,b0 +34b5008,5c +34b5009,e2 +34b500a,d +34b500b,ff +34b500c,ed +34b500d,60 +34b500e,d +34b500f,b0 +34b5012,d +34b5013,b0 +34b5016,d +34b5017,b0 +34b502e,4 +34b502f,ce +34b5030,eb +34b5031,20 +34b5032,c +34b5033,d5 +34b5034,6e +34b5035,a0 +34b5036,3e +34b5037,80 +34b5038,a +34b5039,e0 +34b503a,7f +34b503b,50 +34b503c,8 +34b503d,f2 +34b503e,7f +34b503f,40 +34b5040,8 +34b5041,f4 +34b5042,7f +34b5043,50 +34b5044,8 +34b5045,f1 +34b5046,3e +34b5047,80 +34b5048,a +34b5049,d0 +34b504a,c +34b504b,d5 +34b504c,6e +34b504d,a0 +34b504e,4 +34b504f,ce +34b5050,fc +34b5051,20 +34b5054,ae +34b5055,50 +34b5058,c +34b5059,80 +34b5066,5f +34b5067,fe +34b5068,eb +34b5069,20 +34b506a,5f +34b506b,71 +34b506c,7e +34b506d,b0 +34b506e,5f +34b506f,70 +34b5070,c +34b5071,d0 +34b5072,5f +34b5073,71 +34b5074,6e +34b5075,a0 +34b5076,5f +34b5077,ff +34b5078,ea +34b507a,5f +34b507b,72 +34b507c,ae +34b507d,40 +34b507e,5f +34b507f,70 +34b5080,d +34b5081,b0 +34b5082,5f +34b5083,70 +34b5084,8 +34b5085,e5 +34b5086,5f +34b5087,70 +34b5089,db +34b509e,6 +34b509f,ce +34b50a0,eb +34b50a1,30 +34b50a2,d +34b50a3,c4 +34b50a4,5a +34b50a5,90 34b50a6,4f -34b50a7,70 -34b50a8,9 -34b50a9,e0 -34b50aa,4f -34b50ab,70 -34b50ac,9 -34b50ad,e0 -34b50ae,4f -34b50af,70 -34b50b0,9 -34b50b1,e0 -34b50b2,4f -34b50b3,70 -34b50b4,9 -34b50b5,e0 -34b50b6,4f -34b50b7,70 -34b50b8,9 +34b50a7,60 +34b50aa,e +34b50ab,c6 +34b50ae,5 +34b50af,ce +34b50b0,eb +34b50b1,40 +34b50b4,6c +34b50b5,c0 +34b50b8,8 34b50b9,e0 -34b50ba,3f -34b50bb,70 -34b50bc,9 -34b50bd,e0 -34b50be,2e -34b50bf,70 -34b50c0,a -34b50c1,d0 -34b50c2,d -34b50c3,c4 -34b50c4,5d -34b50c5,c0 -34b50c6,5 -34b50c7,ce -34b50c8,ec -34b50c9,40 -34b50de,ad -34b50e0,3 -34b50e1,e8 -34b50e2,6f -34b50e3,50 -34b50e4,8 -34b50e5,e3 -34b50e6,e -34b50e7,90 -34b50e8,b -34b50e9,c0 -34b50ea,b -34b50eb,c0 -34b50ec,d -34b50ed,90 -34b50ee,8 -34b50ef,e1 -34b50f0,5e -34b50f1,40 -34b50f2,2 -34b50f3,e7 -34b50f4,ad -34b50f7,cb -34b50f8,ca -34b50fb,9d -34b50fc,e6 -34b50ff,3e -34b5100,d0 -34b5116,e8 -34b5119,ad -34b511a,da -34b511d,cb -34b511e,cb -34b5121,da -34b5122,ac -34b5123,e -34b5124,c0 -34b5125,e8 -34b5126,8d -34b5127,6d -34b5128,e1 -34b5129,e5 -34b512a,6e -34b512b,9b -34b512c,d8 -34b512d,e0 -34b512e,1e -34b512f,c8 -34b5130,ac -34b5131,d0 -34b5132,d -34b5133,e3 -34b5134,7e -34b5135,c0 -34b5136,c -34b5137,d0 -34b5138,e -34b5139,a0 -34b514e,6e -34b514f,70 -34b5150,7 -34b5151,e7 -34b5152,a -34b5153,d2 -34b5154,1d -34b5155,b0 -34b5156,2 -34b5157,da -34b5158,ad -34b5159,20 -34b515b,7e -34b515c,e7 -34b515f,3e -34b5160,e2 -34b5163,bd -34b5164,da -34b5166,7 -34b5167,e6 -34b5168,7e -34b5169,60 -34b516a,3e -34b516b,a0 -34b516c,b -34b516d,d0 -34b516e,bd -34b516f,20 -34b5170,4 -34b5171,e9 -34b5186,ae -34b5187,20 -34b5188,5 -34b5189,e8 -34b518a,2d -34b518b,a0 -34b518c,c -34b518d,c0 -34b518e,7 -34b518f,e5 -34b5190,7e -34b5191,50 -34b5193,cc -34b5194,da -34b5197,4e -34b5198,d2 -34b519b,d -34b519c,b0 -34b519f,d -34b51a0,b0 -34b51a3,d -34b51a4,b0 -34b51a7,d -34b51a8,b0 -34b51be,e -34b51bf,ff -34b51c0,ff -34b51c1,f8 -34b51c4,b -34b51c5,d3 -34b51c8,7e -34b51c9,70 -34b51cb,3 -34b51cc,ea -34b51cf,b -34b51d0,d1 -34b51d3,8e -34b51d4,50 -34b51d6,4 -34b51d7,e9 -34b51da,c -34b51db,c0 -34b51de,1f -34b51df,ff -34b51e0,ff -34b51e1,fa -34b51ef,4f -34b51f0,fc -34b51f3,4f -34b51f4,50 -34b51f7,4f -34b51f8,50 -34b51fb,4f -34b51fc,50 -34b51ff,4f -34b5200,50 -34b5203,4f -34b5204,50 -34b5207,4f -34b5208,50 -34b520b,4f -34b520c,50 -34b520f,4f -34b5210,50 -34b5213,4f -34b5214,50 -34b5217,4f -34b5218,50 -34b521b,4f -34b521c,fc -34b522e,6e -34b522f,50 -34b5232,c -34b5233,b0 -34b5236,7 -34b5237,e3 -34b523b,da -34b523f,9e -34b5240,20 -34b5243,1e -34b5244,90 -34b5247,a -34b5248,d0 -34b524b,3 -34b524c,e8 -34b5250,bc -34b5254,4e -34b5255,60 -34b5258,b -34b5259,c0 -34b525f,df -34b5260,e0 -34b5263,8 -34b5264,e0 -34b5267,8 -34b5268,e0 -34b526b,8 -34b526c,e0 -34b526f,8 -34b5270,e0 -34b5273,8 -34b5274,e0 -34b5277,8 -34b5278,e0 -34b527b,8 -34b527c,e0 -34b527f,8 -34b5280,e0 -34b5283,8 -34b5284,e0 -34b5287,8 -34b5288,e0 -34b528b,df -34b528c,e0 -34b529f,5e -34b52a0,d2 -34b52a3,dc -34b52a4,db -34b52a6,a -34b52a7,d2 -34b52a8,5e -34b52a9,80 -34b52aa,7e -34b52ab,50 -34b52ac,7 -34b52ad,e5 -34b5302,ff -34b5303,ff -34b5304,ff -34b5305,fd -34b530a,2 -34b530b,ca -34b530f,2c -34b5310,90 -34b534e,5 -34b534f,ce -34b5350,eb -34b5351,10 -34b5352,b -34b5353,93 -34b5354,6d -34b5355,a0 -34b5358,b -34b5359,c0 -34b535a,8 -34b535b,de -34b535c,ff -34b535d,c0 -34b535e,3e -34b535f,93 -34b5360,b -34b5361,d0 -34b5362,4f -34b5363,82 -34b5364,7e -34b5365,d0 -34b5366,a -34b5367,ee -34b5368,db -34b5369,d0 -34b5376,d -34b5377,90 -34b537a,d -34b537b,90 -34b537e,d -34b537f,90 -34b5382,d -34b5383,90 -34b5386,d -34b5387,bd -34b5388,ec -34b5389,40 -34b538a,d -34b538b,e6 -34b538c,5d -34b538d,c0 -34b538e,d -34b538f,b0 -34b5390,8 -34b5391,e0 -34b5392,d -34b5393,a0 -34b5394,7 -34b5395,f2 -34b5396,d -34b5397,b0 -34b5398,8 -34b5399,e0 -34b539a,d -34b539b,e6 -34b539c,4d -34b539d,b0 -34b539e,d -34b539f,bd -34b53a0,ec -34b53a1,40 -34b53bf,8d -34b53c0,ed -34b53c1,70 -34b53c2,7 -34b53c3,e9 -34b53c4,36 -34b53c5,a0 -34b53c6,c -34b53c7,c0 -34b53ca,d -34b53cb,b0 -34b53ce,c -34b53cf,c0 -34b53d2,7 -34b53d3,e9 -34b53d4,36 -34b53d5,a0 -34b53d7,8d -34b53d8,ed -34b53d9,70 -34b53e8,b -34b53e9,c0 -34b53ec,b -34b53ed,c0 -34b53f0,b -34b53f1,c0 -34b53f4,b +34b50ba,c +34b50bb,73 +34b50bc,5c +34b50bd,d0 +34b50be,8 +34b50bf,de +34b50c0,ec +34b50c1,50 +34b50d6,cf +34b50d7,ff +34b50d8,ff +34b50d9,fb +34b50db,d +34b50dc,b0 +34b50df,d +34b50e0,b0 +34b50e3,d +34b50e4,b0 +34b50e7,d +34b50e8,b0 +34b50eb,d +34b50ec,b0 +34b50ef,d +34b50f0,b0 +34b50f3,d +34b50f4,b0 +34b50f7,d +34b50f8,b0 +34b510e,4f +34b510f,70 +34b5110,9 +34b5111,e0 +34b5112,4f +34b5113,70 +34b5114,9 +34b5115,e0 +34b5116,4f +34b5117,70 +34b5118,9 +34b5119,e0 +34b511a,4f +34b511b,70 +34b511c,9 +34b511d,e0 +34b511e,4f +34b511f,70 +34b5120,9 +34b5121,e0 +34b5122,3f +34b5123,70 +34b5124,9 +34b5125,e0 +34b5126,2e +34b5127,70 +34b5128,a +34b5129,d0 +34b512a,d +34b512b,c4 +34b512c,5d +34b512d,c0 +34b512e,5 +34b512f,ce +34b5130,ec +34b5131,40 +34b5146,ad +34b5148,3 +34b5149,e8 +34b514a,6f +34b514b,50 +34b514c,8 +34b514d,e3 +34b514e,e +34b514f,90 +34b5150,b +34b5151,c0 +34b5152,b +34b5153,c0 +34b5154,d +34b5155,90 +34b5156,8 +34b5157,e1 +34b5158,5e +34b5159,40 +34b515a,2 +34b515b,e7 +34b515c,ad +34b515f,cb +34b5160,ca +34b5163,9d +34b5164,e6 +34b5167,3e +34b5168,d0 +34b517e,e8 +34b5181,ad +34b5182,da +34b5185,cb +34b5186,cb +34b5189,da +34b518a,ac +34b518b,e +34b518c,c0 +34b518d,e8 +34b518e,8d +34b518f,6d +34b5190,e1 +34b5191,e5 +34b5192,6e +34b5193,9b +34b5194,d8 +34b5195,e0 +34b5196,1e +34b5197,c8 +34b5198,ac +34b5199,d0 +34b519a,d +34b519b,e3 +34b519c,7e +34b519d,c0 +34b519e,c +34b519f,d0 +34b51a0,e +34b51a1,a0 +34b51b6,6e +34b51b7,70 +34b51b8,7 +34b51b9,e7 +34b51ba,a +34b51bb,d2 +34b51bc,1d +34b51bd,b0 +34b51be,2 +34b51bf,da +34b51c0,ad +34b51c1,20 +34b51c3,7e +34b51c4,e7 +34b51c7,3e +34b51c8,e2 +34b51cb,bd +34b51cc,da +34b51ce,7 +34b51cf,e6 +34b51d0,7e +34b51d1,60 +34b51d2,3e +34b51d3,a0 +34b51d4,b +34b51d5,d0 +34b51d6,bd +34b51d7,20 +34b51d8,4 +34b51d9,e9 +34b51ee,ae +34b51ef,20 +34b51f0,5 +34b51f1,e8 +34b51f2,2d +34b51f3,a0 +34b51f4,c +34b51f5,c0 +34b51f6,7 +34b51f7,e5 +34b51f8,7e +34b51f9,50 +34b51fb,cc +34b51fc,da +34b51ff,4e +34b5200,d2 +34b5203,d +34b5204,b0 +34b5207,d +34b5208,b0 +34b520b,d +34b520c,b0 +34b520f,d +34b5210,b0 +34b5226,e +34b5227,ff +34b5228,ff +34b5229,f8 +34b522c,b +34b522d,d3 +34b5230,7e +34b5231,70 +34b5233,3 +34b5234,ea +34b5237,b +34b5238,d1 +34b523b,8e +34b523c,50 +34b523e,4 +34b523f,e9 +34b5242,c +34b5243,c0 +34b5246,1f +34b5247,ff +34b5248,ff +34b5249,fa +34b5257,4f +34b5258,fc +34b525b,4f +34b525c,50 +34b525f,4f +34b5260,50 +34b5263,4f +34b5264,50 +34b5267,4f +34b5268,50 +34b526b,4f +34b526c,50 +34b526f,4f +34b5270,50 +34b5273,4f +34b5274,50 +34b5277,4f +34b5278,50 +34b527b,4f +34b527c,50 +34b527f,4f +34b5280,50 +34b5283,4f +34b5284,fc +34b5296,6e +34b5297,50 +34b529a,c +34b529b,b0 +34b529e,7 +34b529f,e3 +34b52a3,da +34b52a7,9e +34b52a8,20 +34b52ab,1e +34b52ac,90 +34b52af,a +34b52b0,d0 +34b52b3,3 +34b52b4,e8 +34b52b8,bc +34b52bc,4e +34b52bd,60 +34b52c0,b +34b52c1,c0 +34b52c7,df +34b52c8,e0 +34b52cb,8 +34b52cc,e0 +34b52cf,8 +34b52d0,e0 +34b52d3,8 +34b52d4,e0 +34b52d7,8 +34b52d8,e0 +34b52db,8 +34b52dc,e0 +34b52df,8 +34b52e0,e0 +34b52e3,8 +34b52e4,e0 +34b52e7,8 +34b52e8,e0 +34b52eb,8 +34b52ec,e0 +34b52ef,8 +34b52f0,e0 +34b52f3,df +34b52f4,e0 +34b5307,5e +34b5308,d2 +34b530b,dc +34b530c,db +34b530e,a +34b530f,d2 +34b5310,5e +34b5311,80 +34b5312,7e +34b5313,50 +34b5314,7 +34b5315,e5 +34b536a,ff +34b536b,ff +34b536c,ff +34b536d,fd +34b5372,2 +34b5373,ca +34b5377,2c +34b5378,90 +34b53b6,5 +34b53b7,ce +34b53b8,eb +34b53b9,10 +34b53ba,b +34b53bb,93 +34b53bc,6d +34b53bd,a0 +34b53c0,b +34b53c1,c0 +34b53c2,8 +34b53c3,de +34b53c4,ff +34b53c5,c0 +34b53c6,3e +34b53c7,93 +34b53c8,b +34b53c9,d0 +34b53ca,4f +34b53cb,82 +34b53cc,7e +34b53cd,d0 +34b53ce,a +34b53cf,ee +34b53d0,db +34b53d1,d0 +34b53de,d +34b53df,90 +34b53e2,d +34b53e3,90 +34b53e6,d +34b53e7,90 +34b53ea,d +34b53eb,90 +34b53ee,d +34b53ef,bd +34b53f0,ec +34b53f1,40 +34b53f2,d +34b53f3,e6 +34b53f4,5d 34b53f5,c0 -34b53f6,5 -34b53f7,de -34b53f8,dc -34b53f9,c0 +34b53f6,d +34b53f7,b0 +34b53f8,8 +34b53f9,e0 34b53fa,d -34b53fb,c4 -34b53fc,8e -34b53fd,c0 -34b53fe,5f -34b53ff,60 -34b5400,c -34b5401,c0 -34b5402,7f -34b5403,30 -34b5404,b -34b5405,c0 -34b5406,5f -34b5407,60 -34b5408,c -34b5409,c0 -34b540a,d -34b540b,c4 -34b540c,8e -34b540d,c0 -34b540e,5 -34b540f,de -34b5410,dc -34b5411,c0 -34b542e,3 -34b542f,be -34b5430,ec -34b5431,30 -34b5432,c -34b5433,d5 -34b5434,4c -34b5435,c0 -34b5436,4f -34b5437,60 -34b5438,7 -34b5439,e0 -34b543a,6f -34b543b,ff -34b543c,ff -34b543d,f3 -34b543e,4f -34b543f,50 -34b5442,c -34b5443,c5 -34b5444,38 -34b5445,c0 -34b5446,3 -34b5447,be -34b5448,ec -34b5449,60 -34b5457,5 -34b5458,de -34b5459,d0 -34b545b,c -34b545c,b2 -34b545f,d -34b5460,90 -34b5463,e -34b5464,80 -34b5466,d -34b5467,ff -34b5468,ff -34b5469,d0 -34b546b,e -34b546c,80 -34b546f,e -34b5470,80 -34b5473,e -34b5474,80 -34b5477,e -34b5478,80 -34b547b,e -34b547c,80 -34b547f,e -34b5480,80 -34b549e,5 -34b549f,de -34b54a0,dc -34b54a1,c0 -34b54a2,d -34b54a3,c4 -34b54a4,8e -34b54a5,c0 -34b54a6,5f -34b54a7,60 -34b54a8,c -34b54a9,c0 -34b54aa,7f -34b54ab,30 -34b54ac,b +34b53fb,a0 +34b53fc,7 +34b53fd,f2 +34b53fe,d +34b53ff,b0 +34b5400,8 +34b5401,e0 +34b5402,d +34b5403,e6 +34b5404,4d +34b5405,b0 +34b5406,d +34b5407,bd +34b5408,ec +34b5409,40 +34b5427,8d +34b5428,ed +34b5429,70 +34b542a,7 +34b542b,e9 +34b542c,36 +34b542d,a0 +34b542e,c +34b542f,c0 +34b5432,d +34b5433,b0 +34b5436,c +34b5437,c0 +34b543a,7 +34b543b,e9 +34b543c,36 +34b543d,a0 +34b543f,8d +34b5440,ed +34b5441,70 +34b5450,b +34b5451,c0 +34b5454,b +34b5455,c0 +34b5458,b +34b5459,c0 +34b545c,b +34b545d,c0 +34b545e,5 +34b545f,de +34b5460,dc +34b5461,c0 +34b5462,d +34b5463,c4 +34b5464,8e +34b5465,c0 +34b5466,5f +34b5467,60 +34b5468,c +34b5469,c0 +34b546a,7f +34b546b,30 +34b546c,b +34b546d,c0 +34b546e,5f +34b546f,60 +34b5470,c +34b5471,c0 +34b5472,d +34b5473,c4 +34b5474,8e +34b5475,c0 +34b5476,5 +34b5477,de +34b5478,dc +34b5479,c0 +34b5496,3 +34b5497,be +34b5498,ec +34b5499,30 +34b549a,c +34b549b,d5 +34b549c,4c +34b549d,c0 +34b549e,4f +34b549f,60 +34b54a0,7 +34b54a1,e0 +34b54a2,6f +34b54a3,ff +34b54a4,ff +34b54a5,f3 +34b54a6,4f +34b54a7,50 +34b54aa,c +34b54ab,c5 +34b54ac,38 34b54ad,c0 -34b54ae,5f -34b54af,60 -34b54b0,c -34b54b1,c0 -34b54b2,d -34b54b3,c4 -34b54b4,8e -34b54b5,c0 -34b54b6,5 -34b54b7,de -34b54b8,dc -34b54b9,b0 -34b54bc,c -34b54bd,a0 -34b54be,9 -34b54bf,94 -34b54c0,7e -34b54c1,60 -34b54c2,4 -34b54c3,ce -34b54c4,e9 -34b54c6,d -34b54c7,a0 -34b54ca,d -34b54cb,a0 +34b54ae,3 +34b54af,be +34b54b0,ec +34b54b1,60 +34b54bf,5 +34b54c0,de +34b54c1,d0 +34b54c3,c +34b54c4,b2 +34b54c7,d +34b54c8,90 +34b54cb,e +34b54cc,80 34b54ce,d -34b54cf,a0 -34b54d2,d -34b54d3,a0 -34b54d6,d -34b54d7,bd -34b54d8,ed -34b54d9,40 -34b54da,d -34b54db,e6 -34b54dc,5d -34b54dd,a0 -34b54de,d -34b54df,b0 -34b54e0,b -34b54e1,c0 -34b54e2,d -34b54e3,a0 -34b54e4,b -34b54e5,c0 -34b54e6,d -34b54e7,a0 -34b54e8,b -34b54e9,c0 -34b54ea,d -34b54eb,a0 -34b54ec,b -34b54ed,c0 -34b54ee,d -34b54ef,a0 -34b54f0,b -34b54f1,c0 -34b54ff,b -34b5500,c0 -34b550e,9 -34b550f,ff -34b5510,c0 -34b5513,b -34b5514,c0 -34b5517,b -34b5518,c0 -34b551b,b -34b551c,c0 -34b551f,b -34b5520,c0 -34b5523,b -34b5524,c0 -34b5526,e -34b5527,ff -34b5528,ff -34b5529,e0 -34b5537,7 -34b5538,e0 -34b5546,7 -34b5547,ff -34b5548,e0 -34b554b,7 -34b554c,e0 -34b554f,7 -34b5550,e0 -34b5553,7 -34b5554,e0 -34b5557,7 -34b5558,e0 -34b555b,7 -34b555c,e0 -34b555f,7 -34b5560,e0 -34b5563,7 -34b5564,e0 -34b5567,1b -34b5568,d0 -34b556a,d -34b556b,fe -34b556c,70 -34b556e,b -34b556f,c0 -34b5572,b -34b5573,c0 -34b5576,b -34b5577,c0 -34b557a,b -34b557b,c0 -34b557e,b -34b557f,c0 -34b5580,3d -34b5581,c2 -34b5582,b -34b5583,c3 -34b5584,db -34b5586,b -34b5587,dd +34b54cf,ff +34b54d0,ff +34b54d1,d0 +34b54d3,e +34b54d4,80 +34b54d7,e +34b54d8,80 +34b54db,e +34b54dc,80 +34b54df,e +34b54e0,80 +34b54e3,e +34b54e4,80 +34b54e7,e +34b54e8,80 +34b5506,5 +34b5507,de +34b5508,dc +34b5509,c0 +34b550a,d +34b550b,c4 +34b550c,8e +34b550d,c0 +34b550e,5f +34b550f,60 +34b5510,c +34b5511,c0 +34b5512,7f +34b5513,30 +34b5514,b +34b5515,c0 +34b5516,5f +34b5517,60 +34b5518,c +34b5519,c0 +34b551a,d +34b551b,c4 +34b551c,8e +34b551d,c0 +34b551e,5 +34b551f,de +34b5520,dc +34b5521,b0 +34b5524,c +34b5525,a0 +34b5526,9 +34b5527,94 +34b5528,7e +34b5529,60 +34b552a,4 +34b552b,ce +34b552c,e9 +34b552e,d +34b552f,a0 +34b5532,d +34b5533,a0 +34b5536,d +34b5537,a0 +34b553a,d +34b553b,a0 +34b553e,d +34b553f,bd +34b5540,ed +34b5541,40 +34b5542,d +34b5543,e6 +34b5544,5d +34b5545,a0 +34b5546,d +34b5547,b0 +34b5548,b +34b5549,c0 +34b554a,d +34b554b,a0 +34b554c,b +34b554d,c0 +34b554e,d +34b554f,a0 +34b5550,b +34b5551,c0 +34b5552,d +34b5553,a0 +34b5554,b +34b5555,c0 +34b5556,d +34b5557,a0 +34b5558,b +34b5559,c0 +34b5567,b +34b5568,c0 +34b5576,9 +34b5577,ff +34b5578,c0 +34b557b,b +34b557c,c0 +34b557f,b +34b5580,c0 +34b5583,b +34b5584,c0 +34b5587,b 34b5588,c0 -34b558a,b -34b558b,fc -34b558c,e5 -34b558e,b -34b558f,d0 -34b5590,cd -34b5591,10 -34b5592,b -34b5593,c0 -34b5594,3d -34b5595,b0 -34b5596,b -34b5597,c0 -34b5598,7 -34b5599,e8 -34b55a6,e -34b55a7,ff -34b55a8,40 -34b55ab,5f -34b55ac,40 -34b55af,5f -34b55b0,40 -34b55b3,5f -34b55b4,40 -34b55b7,5f -34b55b8,40 -34b55bb,5f -34b55bc,40 -34b55bf,5f -34b55c0,40 -34b55c3,5f -34b55c4,40 -34b55c7,4f -34b55c8,50 -34b55cb,e -34b55cc,a0 -34b55cf,8 -34b55d0,ef -34b55d1,b0 -34b55ee,8d +34b558b,b +34b558c,c0 +34b558e,e +34b558f,ff +34b5590,ff +34b5591,e0 +34b559f,7 +34b55a0,e0 +34b55ae,7 +34b55af,ff +34b55b0,e0 +34b55b3,7 +34b55b4,e0 +34b55b7,7 +34b55b8,e0 +34b55bb,7 +34b55bc,e0 +34b55bf,7 +34b55c0,e0 +34b55c3,7 +34b55c4,e0 +34b55c7,7 +34b55c8,e0 +34b55cb,7 +34b55cc,e0 +34b55cf,1b +34b55d0,d0 +34b55d2,d +34b55d3,fe +34b55d4,70 +34b55d6,b +34b55d7,c0 +34b55da,b +34b55db,c0 +34b55de,b +34b55df,c0 +34b55e2,b +34b55e3,c0 +34b55e6,b +34b55e7,c0 +34b55e8,3d +34b55e9,c2 +34b55ea,b +34b55eb,c3 +34b55ec,db +34b55ee,b 34b55ef,dd -34b55f0,ae -34b55f1,c0 -34b55f2,8e -34b55f3,4d -34b55f4,c5 -34b55f5,e4 -34b55f6,8d -34b55f7,c -34b55f8,b0 -34b55f9,e6 -34b55fa,8d -34b55fb,b -34b55fc,a0 -34b55fd,e7 -34b55fe,8d -34b55ff,b -34b5600,a0 -34b5601,e7 -34b5602,8d -34b5603,b -34b5604,a0 -34b5605,e7 -34b5606,8d -34b5607,b -34b5608,a0 -34b5609,e7 -34b5626,d -34b5627,bd -34b5628,ed -34b5629,40 -34b562a,d -34b562b,e6 -34b562c,5d -34b562d,a0 -34b562e,d -34b562f,b0 -34b5630,b -34b5631,c0 -34b5632,d -34b5633,a0 -34b5634,b -34b5635,c0 -34b5636,d -34b5637,a0 -34b5638,b -34b5639,c0 -34b563a,d -34b563b,a0 -34b563c,b -34b563d,c0 -34b563e,d -34b563f,a0 -34b5640,b -34b5641,c0 -34b565e,4 -34b565f,ce -34b5660,eb -34b5661,20 -34b5662,c -34b5663,d5 -34b5664,6d -34b5665,a0 -34b5666,1e -34b5667,70 -34b5668,a -34b5669,d0 -34b566a,5f -34b566b,60 -34b566c,8 -34b566d,e0 -34b566e,1e -34b566f,70 -34b5670,a -34b5671,d0 -34b5672,c -34b5673,d4 -34b5674,6d -34b5675,b0 -34b5676,4 -34b5677,ce -34b5678,eb -34b5679,20 +34b55f0,c0 +34b55f2,b +34b55f3,fc +34b55f4,e5 +34b55f6,b +34b55f7,d0 +34b55f8,cd +34b55f9,10 +34b55fa,b +34b55fb,c0 +34b55fc,3d +34b55fd,b0 +34b55fe,b +34b55ff,c0 +34b5600,7 +34b5601,e8 +34b560e,e +34b560f,ff +34b5610,40 +34b5613,5f +34b5614,40 +34b5617,5f +34b5618,40 +34b561b,5f +34b561c,40 +34b561f,5f +34b5620,40 +34b5623,5f +34b5624,40 +34b5627,5f +34b5628,40 +34b562b,5f +34b562c,40 +34b562f,4f +34b5630,50 +34b5633,e +34b5634,a0 +34b5637,8 +34b5638,ef +34b5639,b0 +34b5656,8d +34b5657,dd +34b5658,ae +34b5659,c0 +34b565a,8e +34b565b,4d +34b565c,c5 +34b565d,e4 +34b565e,8d +34b565f,c +34b5660,b0 +34b5661,e6 +34b5662,8d +34b5663,b +34b5664,a0 +34b5665,e7 +34b5666,8d +34b5667,b +34b5668,a0 +34b5669,e7 +34b566a,8d +34b566b,b +34b566c,a0 +34b566d,e7 +34b566e,8d +34b566f,b +34b5670,a0 +34b5671,e7 +34b568e,d +34b568f,bd +34b5690,ed +34b5691,40 +34b5692,d +34b5693,e6 +34b5694,5d +34b5695,a0 34b5696,d -34b5697,bd -34b5698,ec -34b5699,30 +34b5697,b0 +34b5698,b +34b5699,c0 34b569a,d -34b569b,e6 -34b569c,5d -34b569d,b0 +34b569b,a0 +34b569c,b +34b569d,c0 34b569e,d -34b569f,b0 -34b56a0,9 -34b56a1,e0 +34b569f,a0 +34b56a0,b +34b56a1,c0 34b56a2,d 34b56a3,a0 -34b56a4,7 -34b56a5,e0 +34b56a4,b +34b56a5,c0 34b56a6,d -34b56a7,b0 -34b56a8,8 -34b56a9,e0 -34b56aa,d -34b56ab,e6 -34b56ac,5d -34b56ad,b0 -34b56ae,d -34b56af,be -34b56b0,ec -34b56b1,40 -34b56b2,d -34b56b3,90 -34b56b6,d -34b56b7,90 -34b56ba,d -34b56bb,90 -34b56ce,4 -34b56cf,ce -34b56d0,dc -34b56d1,c0 -34b56d2,c -34b56d3,c4 -34b56d4,7e -34b56d5,c0 +34b56a7,a0 +34b56a8,b +34b56a9,c0 +34b56c6,4 +34b56c7,ce +34b56c8,eb +34b56c9,20 +34b56ca,c +34b56cb,d5 +34b56cc,6d +34b56cd,a0 +34b56ce,1e +34b56cf,70 +34b56d0,a +34b56d1,d0 +34b56d2,5f +34b56d3,60 +34b56d4,8 +34b56d5,e0 34b56d6,1e 34b56d7,70 -34b56d8,c -34b56d9,c0 -34b56da,5f -34b56db,60 -34b56dc,b -34b56dd,c0 -34b56de,2e -34b56df,70 -34b56e0,c -34b56e1,c0 -34b56e2,c -34b56e3,c4 -34b56e4,7e -34b56e5,c0 -34b56e6,5 -34b56e7,ce -34b56e8,db -34b56e9,c0 -34b56ec,a -34b56ed,c0 -34b56f0,a -34b56f1,c0 -34b56f4,a -34b56f5,c0 -34b5707,cc -34b5708,de -34b5709,f9 -34b570b,ce -34b570c,83 -34b570f,cb -34b5713,ca -34b5717,ca -34b571b,ca -34b571f,ca -34b573e,4 -34b573f,ce -34b5740,ea -34b5741,10 -34b5742,b -34b5743,d4 -34b5744,5b -34b5745,60 -34b5746,b -34b5747,d4 -34b574a,3 -34b574b,bd -34b574c,db -34b574d,20 -34b5750,4d -34b5751,a0 -34b5752,b -34b5753,94 -34b5754,5e -34b5755,a0 -34b5756,5 -34b5757,ce -34b5758,eb -34b5759,20 -34b576f,8e -34b5773,8e -34b5776,6f -34b5777,ff -34b5778,ff -34b5779,b0 -34b577b,8e -34b577f,8e -34b5783,8e -34b5787,8e -34b578b,6e -34b578c,70 -34b578f,b -34b5790,ef -34b5791,b0 -34b57ae,d -34b57af,a0 -34b57b0,b -34b57b1,c0 -34b57b2,d -34b57b3,a0 -34b57b4,b -34b57b5,c0 -34b57b6,d -34b57b7,a0 -34b57b8,b -34b57b9,c0 -34b57ba,d -34b57bb,a0 -34b57bc,b -34b57bd,c0 -34b57be,d -34b57bf,a0 -34b57c0,b -34b57c1,c0 -34b57c2,b -34b57c3,d4 -34b57c4,7e -34b57c5,c0 -34b57c6,5 -34b57c7,de -34b57c8,db -34b57c9,c0 -34b57e6,6e -34b57e7,30 -34b57e8,7 -34b57e9,e3 -34b57ea,d -34b57eb,90 -34b57ec,b -34b57ed,c0 -34b57ee,a -34b57ef,d0 -34b57f0,1e -34b57f1,80 -34b57f2,5 -34b57f3,e4 -34b57f4,8e -34b57f5,20 -34b57f7,da -34b57f8,cb -34b57fb,9d -34b57fc,e7 -34b57ff,3e -34b5800,e0 -34b581e,e8 -34b5821,ac -34b5822,ca -34b5825,ca -34b5826,ac -34b5827,d -34b5828,b0 -34b5829,e7 -34b582a,6e -34b582b,3d -34b582c,d5 -34b582d,e2 -34b582e,e -34b582f,ab -34b5830,ca -34b5831,d0 -34b5832,c -34b5833,e7 -34b5834,9e -34b5835,b0 -34b5836,a -34b5837,e1 -34b5838,5f -34b5839,80 -34b5856,3d -34b5857,a0 -34b5858,b -34b5859,c0 -34b585a,6 -34b585b,e6 -34b585c,9e -34b585d,40 -34b585f,9e -34b5860,e7 -34b5863,2e -34b5864,d0 -34b5867,cc -34b5868,da -34b586a,9 -34b586b,e4 -34b586c,6e -34b586d,70 -34b586e,6e -34b586f,70 -34b5870,9 -34b5871,e4 -34b588e,6e -34b588f,50 -34b5890,5 -34b5891,e5 -34b5892,d -34b5893,a0 -34b5894,b -34b5895,d0 -34b5896,9 -34b5897,e0 -34b5898,e -34b5899,90 -34b589a,3 +34b56d8,a +34b56d9,d0 +34b56da,c +34b56db,d4 +34b56dc,6d +34b56dd,b0 +34b56de,4 +34b56df,ce +34b56e0,eb +34b56e1,20 +34b56fe,d +34b56ff,bd +34b5700,ec +34b5701,30 +34b5702,d +34b5703,e6 +34b5704,5d +34b5705,b0 +34b5706,d +34b5707,b0 +34b5708,9 +34b5709,e0 +34b570a,d +34b570b,a0 +34b570c,7 +34b570d,e0 +34b570e,d +34b570f,b0 +34b5710,8 +34b5711,e0 +34b5712,d +34b5713,e6 +34b5714,5d +34b5715,b0 +34b5716,d +34b5717,be +34b5718,ec +34b5719,40 +34b571a,d +34b571b,90 +34b571e,d +34b571f,90 +34b5722,d +34b5723,90 +34b5736,4 +34b5737,ce +34b5738,dc +34b5739,c0 +34b573a,c +34b573b,c4 +34b573c,7e +34b573d,c0 +34b573e,1e +34b573f,70 +34b5740,c +34b5741,c0 +34b5742,5f +34b5743,60 +34b5744,b +34b5745,c0 +34b5746,2e +34b5747,70 +34b5748,c +34b5749,c0 +34b574a,c +34b574b,c4 +34b574c,7e +34b574d,c0 +34b574e,5 +34b574f,ce +34b5750,db +34b5751,c0 +34b5754,a +34b5755,c0 +34b5758,a +34b5759,c0 +34b575c,a +34b575d,c0 +34b576f,cc +34b5770,de +34b5771,f9 +34b5773,ce +34b5774,83 +34b5777,cb +34b577b,ca +34b577f,ca +34b5783,ca +34b5787,ca +34b57a6,4 +34b57a7,ce +34b57a8,ea +34b57a9,10 +34b57aa,b +34b57ab,d4 +34b57ac,5b +34b57ad,60 +34b57ae,b +34b57af,d4 +34b57b2,3 +34b57b3,bd +34b57b4,db +34b57b5,20 +34b57b8,4d +34b57b9,a0 +34b57ba,b +34b57bb,94 +34b57bc,5e +34b57bd,a0 +34b57be,5 +34b57bf,ce +34b57c0,eb +34b57c1,20 +34b57d7,8e +34b57db,8e +34b57de,6f +34b57df,ff +34b57e0,ff +34b57e1,b0 +34b57e3,8e +34b57e7,8e +34b57eb,8e +34b57ef,8e +34b57f3,6e +34b57f4,70 +34b57f7,b +34b57f8,ef +34b57f9,b0 +34b5816,d +34b5817,a0 +34b5818,b +34b5819,c0 +34b581a,d +34b581b,a0 +34b581c,b +34b581d,c0 +34b581e,d +34b581f,a0 +34b5820,b +34b5821,c0 +34b5822,d +34b5823,a0 +34b5824,b +34b5825,c0 +34b5826,d +34b5827,a0 +34b5828,b +34b5829,c0 +34b582a,b +34b582b,d4 +34b582c,7e +34b582d,c0 +34b582e,5 +34b582f,de +34b5830,db +34b5831,c0 +34b584e,6e +34b584f,30 +34b5850,7 +34b5851,e3 +34b5852,d +34b5853,90 +34b5854,b +34b5855,c0 +34b5856,a +34b5857,d0 +34b5858,1e +34b5859,80 +34b585a,5 +34b585b,e4 +34b585c,8e +34b585d,20 +34b585f,da +34b5860,cb +34b5863,9d +34b5864,e7 +34b5867,3e +34b5868,e0 +34b5886,e8 +34b5889,ac +34b588a,ca +34b588d,ca +34b588e,ac +34b588f,d +34b5890,b0 +34b5891,e7 +34b5892,6e +34b5893,3d +34b5894,d5 +34b5895,e2 +34b5896,e +34b5897,ab +34b5898,ca +34b5899,d0 +34b589a,c 34b589b,e7 -34b589c,8e -34b589d,30 -34b589f,cc -34b58a0,cc -34b58a3,7e -34b58a4,e7 -34b58a7,d -34b58a8,e0 -34b58ab,d -34b58ac,a0 -34b58af,8e -34b58b0,50 -34b58b2,d -34b58b3,ea -34b58c6,b -34b58c7,ff -34b58c8,ff -34b58c9,c0 -34b58cc,5e -34b58cd,70 -34b58cf,3 -34b58d0,d9 -34b58d3,c -34b58d4,b0 -34b58d7,bd -34b58d8,20 -34b58da,9 -34b58db,e4 -34b58de,d -34b58df,ff -34b58e0,ff -34b58e1,c0 -34b58ef,6 -34b58f0,de -34b58f1,a0 -34b58f3,b -34b58f4,d3 -34b58f7,c -34b58f8,b0 -34b58fb,c -34b58fc,b0 -34b58ff,5e -34b5900,a0 -34b5902,b -34b5903,fd -34b5904,20 -34b5907,7e -34b5908,90 -34b590b,d -34b590c,b0 -34b590f,c -34b5910,b0 -34b5913,c -34b5914,b0 -34b5917,b -34b5918,d4 -34b591b,5 -34b591c,de -34b591d,a0 -34b5927,c -34b5928,a0 -34b592b,c -34b592c,a0 -34b592f,c -34b5930,a0 -34b5933,c -34b5934,a0 -34b5937,c -34b5938,a0 +34b589c,9e +34b589d,b0 +34b589e,a +34b589f,e1 +34b58a0,5f +34b58a1,80 +34b58be,3d +34b58bf,a0 +34b58c0,b +34b58c1,c0 +34b58c2,6 +34b58c3,e6 +34b58c4,9e +34b58c5,40 +34b58c7,9e +34b58c8,e7 +34b58cb,2e +34b58cc,d0 +34b58cf,cc +34b58d0,da +34b58d2,9 +34b58d3,e4 +34b58d4,6e +34b58d5,70 +34b58d6,6e +34b58d7,70 +34b58d8,9 +34b58d9,e4 +34b58f6,6e +34b58f7,50 +34b58f8,5 +34b58f9,e5 +34b58fa,d +34b58fb,a0 +34b58fc,b +34b58fd,d0 +34b58fe,9 +34b58ff,e0 +34b5900,e +34b5901,90 +34b5902,3 +34b5903,e7 +34b5904,8e +34b5905,30 +34b5907,cc +34b5908,cc +34b590b,7e +34b590c,e7 +34b590f,d +34b5910,e0 +34b5913,d +34b5914,a0 +34b5917,8e +34b5918,50 +34b591a,d +34b591b,ea +34b592e,b +34b592f,ff +34b5930,ff +34b5931,c0 +34b5934,5e +34b5935,70 +34b5937,3 +34b5938,d9 34b593b,c -34b593c,a0 -34b593f,c -34b5940,a0 -34b5943,c -34b5944,a0 -34b5947,c -34b5948,a0 -34b594b,c -34b594c,a0 -34b594f,c -34b5950,a0 -34b5953,c -34b5954,a0 -34b5957,c -34b5958,a0 -34b595e,b -34b595f,ed -34b5960,30 -34b5963,4e -34b5964,90 -34b5967,d +34b593c,b0 +34b593f,bd +34b5940,20 +34b5942,9 +34b5943,e4 +34b5946,d +34b5947,ff +34b5948,ff +34b5949,c0 +34b5957,6 +34b5958,de +34b5959,a0 +34b595b,b +34b595c,d3 +34b595f,c +34b5960,b0 +34b5963,c +34b5964,b0 +34b5967,5e 34b5968,a0 -34b596b,c -34b596c,a0 -34b596f,b -34b5970,c4 -34b5973,5 -34b5974,ef -34b5975,a0 -34b5977,b -34b5978,d5 +34b596a,b +34b596b,fd +34b596c,20 +34b596f,7e +34b5970,90 +34b5973,d +34b5974,b0 +34b5977,c +34b5978,b0 34b597b,c 34b597c,b0 -34b597f,d -34b5980,a0 -34b5983,d -34b5984,a0 -34b5987,5e -34b5988,80 -34b598a,b -34b598b,ec -34b598c,20 -34b59ae,5d -34b59af,ed -34b59b0,83 -34b59b1,a7 -34b59b2,98 -34b59b3,38 -34b59b4,de -34b59b5,c3 +34b597f,b +34b5980,d4 +34b5983,5 +34b5984,de +34b5985,a0 +34b598f,c +34b5990,a0 +34b5993,c +34b5994,a0 +34b5997,c +34b5998,a0 +34b599b,c +34b599c,a0 +34b599f,c +34b59a0,a0 +34b59a3,c +34b59a4,a0 +34b59a7,c +34b59a8,a0 +34b59ab,c +34b59ac,a0 +34b59af,c +34b59b0,a0 +34b59b3,c +34b59b4,a0 +34b59b7,c +34b59b8,a0 +34b59bb,c +34b59bc,a0 +34b59bf,c +34b59c0,a0 +34b59c6,b +34b59c7,ed +34b59c8,30 +34b59cb,4e +34b59cc,90 +34b59cf,d +34b59d0,a0 +34b59d3,c +34b59d4,a0 +34b59d7,b +34b59d8,c4 +34b59db,5 +34b59dc,ef +34b59dd,a0 +34b59df,b +34b59e0,d5 +34b59e3,c +34b59e4,b0 +34b59e7,d +34b59e8,a0 +34b59eb,d +34b59ec,a0 +34b59ef,5e +34b59f0,80 +34b59f2,b +34b59f3,ec +34b59f4,20 +34b5a16,5d +34b5a17,ed +34b5a18,83 +34b5a19,a7 +34b5a1a,98 +34b5a1b,38 +34b5a1c,de +34b5a1d,c3 diff --git a/data/symbols.json b/data/symbols.json index 5489f69fe..18a6dd735 100644 --- a/data/symbols.json +++ b/data/symbols.json @@ -4,7 +4,7 @@ "EXTENDED_ITEM_DATA": "03482008", "FAIRY_ITEMS": "03481C03", "FAIRY_OCARINA_ITEM": "03481C02", - "FONT_TEXTURE": "034B4506", + "FONT_TEXTURE": "034B456E", "INITIAL_SAVE_DATA": "03481800", "ITEM_OVERRIDES": "03481000", "ITEM_TABLE": "03482050", @@ -14,19 +14,20 @@ "PLAYER_ID": "03481C00", "PLAYER_OVERRIDE_DATA": "03482000", "TIME_TRAVEL_SAVED_EQUIPS": "0348201C", - "cfg_dungeon_info_enable": "034B44C8", - "cfg_dungeon_info_mq_enable": "034B44DC", - "cfg_dungeon_info_mq_need_map": "034B44D8", - "cfg_dungeon_info_reward_need_compass": "034B44D4", - "cfg_dungeon_is_mq": "034B44F8", - "cfg_dungeon_rewards": "034B4408", - "dungeon_count": "034B44CC", - "dungeons": "034B442C", - "font_sprite": "034B43C8", - "heap_next": "034B44D0", - "medal_colors": "034B4418", - "medals_sprite": "034B43E8", - "quest_items_sprite": "034B43D8", - "setup_db": "034B44E8", - "stones_sprite": "034B43F8" + "cfg_dungeon_info_enable": "034B452C", + "cfg_dungeon_info_mq_enable": "034B4544", + "cfg_dungeon_info_mq_need_map": "034B4540", + "cfg_dungeon_info_reward_need_altar": "034B4538", + "cfg_dungeon_info_reward_need_compass": "034B453C", + "cfg_dungeon_is_mq": "034B4560", + "cfg_dungeon_rewards": "034B446C", + "dungeon_count": "034B4530", + "dungeons": "034B4490", + "font_sprite": "034B442C", + "heap_next": "034B4534", + "medal_colors": "034B447C", + "medals_sprite": "034B444C", + "quest_items_sprite": "034B443C", + "setup_db": "034B4550", + "stones_sprite": "034B445C" } \ No newline at end of file From ad189a0e5dd19fd8135e53dce8a725bc33e66049 Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 20 Sep 2018 01:02:21 -0400 Subject: [PATCH 556/755] Missing rule in Water temple and fix shadow hint I blame git on this one --- HintList.py | 4 ++-- Rules.py | 2 +- version.py | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/HintList.py b/HintList.py index c7a32ac96..d239a461e 100644 --- a/HintList.py +++ b/HintList.py @@ -193,8 +193,8 @@ def getHintGroup(group, world): 'Spirit Temple MQ Child Center Chest': ("within #the Colossus# a temporal paradox yields", None, 'location'), 'Spirit Temple MQ Lower Adult Right Chest': ("within #the Colossus# a symphony yields", None, 'location'), 'GS Spirit Temple MQ Lower Adult Right': ("within #the Colossus# a spider\'s symphony yields", None, 'location'), - 'Shadow Temple Hidden Floormaster Chest': (["shadows in an #invisible maze# guard", "after a free #boat ride# comes"], "a Floormaster in #Shadow Temple# guards", 'location'), - 'Shadow Temple MQ Bomb Flower Chest': (["shadows in an #invisible maze# guard", "after a free #boat ride# comes"], "a Floormaster in #Shadow Temple# guards", 'location'), + 'Shadow Temple Hidden Floormaster Chest': (["shadows in an #invisible maze# guard", "after a free #boat ride# comes"], None, 'location'), + 'Shadow Temple MQ Bomb Flower Chest': (["shadows in an #invisible maze# guard", "after a free #boat ride# comes"], None, 'location'), 'Haunted Wasteland Structure Chest': (["deep in the #Wasteland# is", "beneath #the sands# lies"], None, 'location'), 'Composer Grave Chest': (["in the #Composers' Grave#, darkness hides", "the #Composer Brothers# hid"], None, 'location'), 'Song from Composer Grave': (["in the #Composers' Grave#, Redead guard", "the #Composer Brothers# wrote"], None, 'location'), diff --git a/Rules.py b/Rules.py index 4ffd97814..3fd04b5cc 100644 --- a/Rules.py +++ b/Rules.py @@ -612,7 +612,7 @@ def dung_rules_wt0(world): set_rule(world.get_location('Water Temple Torches Chest'), lambda state: (state.has('Bow') or state.can_use('Dins Fire')) and state.can_play('Zeldas Lullaby')) set_rule(world.get_location('Water Temple Dragon Chest'), lambda state: (state.has('Progressive Strength Upgrade') and state.can_play('Zeldas Lullaby')) or (state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity) and state.can_play('Song of Time') and state.has('Bow'))) set_rule(world.get_location('Water Temple Central Bow Target Chest'), lambda state: state.has('Bow') and state.has('Progressive Strength Upgrade') and state.can_play('Zeldas Lullaby') and (state.has('Hover Boots') or state.can_use('Longshot'))) - set_rule(world.get_location('Water Temple Boss Key Chest'), lambda state: (state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity) and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and state.has('Progressive Hookshot', 2)) or item_name(state, 'Water Temple Boss Key Chest') == 'Small Key (Water Temple)') #If key for key, this lets the logic reduce the small key reqs for every other locked door. + set_rule(world.get_location('Water Temple Boss Key Chest'), lambda state: (state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity) and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and state.can_use('Longshot')) or (state.has('Small Key (Water Temple)', 5) and (item_name(state, 'Water Temple Boss Key Chest') == 'Small Key (Water Temple)' or not world.keys_placed))) #If key for key, this lets the logic reduce the small key reqs for every other locked door. set_rule(world.get_location('Water Temple Cracked Wall Chest'), lambda state: state.has_explosives()) set_rule(world.get_location('Water Temple Dark Link Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity)) set_rule(world.get_location('Water Temple River Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and state.can_play('Song of Time') and state.has('Bow') and (state.can_play('Zeldas Lullaby') or world.keysanity)) diff --git a/version.py b/version.py index 8356ee0ec..af0992f74 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.19.10 f.LUM' +__version__ = '2.19.11 f.LUM' From c3cb5cc13e58aee9c9f9bde471083a2cf8887310 Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 20 Sep 2018 01:05:01 -0400 Subject: [PATCH 557/755] Added Deku Seeds and Deku Stick item. Junk items are more random --- ASM/build/asm_symbols.txt | 418 +-- ASM/src/extended_items.asm | 19 + ItemList.py | 61 +- Items.py | 3 +- data/rom_patch.txt | 6577 ++++++++++++++++++------------------ data/symbols.json | 4 +- version.py | 2 +- 7 files changed, 3588 insertions(+), 3496 deletions(-) diff --git a/ASM/build/asm_symbols.txt b/ASM/build/asm_symbols.txt index b06f09465..1d05637ff 100644 --- a/ASM/build/asm_symbols.txt +++ b/ASM/build/asm_symbols.txt @@ -788,205 +788,225 @@ 80402547 .byt:0001 80402548 .dbl:0004 8040254C .dbl:0004 -80402550 no_upgrade -80402558 hookshot_upgrade -8040256C @@return -80402574 strength_upgrade -80402594 @@return -8040259C bomb_bag_upgrade -804025BC @@return -804025C4 bow_upgrade -804025E4 @@return -804025EC slingshot_upgrade -8040260C @@return -80402614 wallet_upgrade -80402634 @@return -8040263C tycoon_wallet -80402650 scale_upgrade -80402664 @@return -8040266C nut_upgrade -80402680 @@return -80402688 stick_upgrade -8040269C @@return -804026A4 magic_upgrade -804026B4 @@return -804026BC arrows_to_rupee -804026D0 @@return -804026D8 bombs_to_rupee -804026EC @@return -804026F4 no_effect -804026FC give_biggoron_sword -8040270C give_bottle -80402714 @@loop -80402740 @@return -80402748 give_dungeon_item -80402764 give_small_key -8040277C @not_negative -8040278C give_defense -804027AC give_magic -804027CC double_magic -804027F4 bombchu_upgrade -80402818 @@return -80402820 ocarina_upgrade -80402834 @@return -8040283C give_fairy_ocarina -8040284C give_song -80402868 inventory_check -804028D4 @@return -804028DC override_skulltula_token -804028FC @@in_table -8040292C @@extended_effect -80402958 @@no_extended_effect -80402964 @@not_extended -8040299C @@item_effect -804029A8 @@display_message -804029B4 @@return -804029C8 override_object_npc -804029D8 override_object_chest -804029E8 override_object -80402A00 @@return -80402A44 @@no_count_inc -80402A48 @@no_pending_clear -80402A50 override_graphic -80402A68 @@return -80402A80 override_text -80402A9C @@return -80402AA4 override_action -80402ACC @@no_player_override -80402B28 @@return -80402B30 store_item_data_hook -80402B64 store_item_data -80402BF8 @@update_base_game -80402C28 @@not_chest -80402C38 @@not_negative -80402C3C @@return -80402C4C lookup_override -80402C74 @@return -80402C84 get_override_search_key -80402CC4 @@not_skulltula -80402CFC @@valid_chest -80402D04 @@not_chest -80402D34 @@valid_collectable -80402D3C @@not_collectable -80402D64 @@not_grotto_deku_scrub -80402D74 @@return -80402D7C scan_override_table -80402DA0 @@lookup_loop -80402E08 @@return -80402E10 resolve_extended_item -80402E24 @@loop -80402E78 @@not_extended -80402E7C @@return -80402E94 override_great_fairy_cutscene -80402EEC @@item_fairy -80402F0C @@give_item -80402F38 @@return -80402F40 override_light_arrow_cutscene -80402F54 override_fairy_ocarina_cutscene -80402F68 override_ocarina_songs -80402F7C override_requiem_song -80402F88 override_epona_song -80402FA8 override_suns_song -80402FC8 override_song_of_time -80402FD8 store_pending_special_item -80402FE8 @@find_duplicate_loop -80403004 @@find_empty_loop -8040301C @@return -80403024 override_saria_song_check -80403040 @@get_item -80403048 set_saria_song_flag -80403068 set_dungeon_knowledge -80403094 @@set_flag -804030AC Shop_Check_Sold_Out -804030F8 @@return -80403100 Shop_Set_Sold_Out -80403138 @@return -80403140 Shop_Keeper_Init_ID -8040315C @@return -8040316C Deku_Check_Sold_Out -80403190 @@continue -804031C0 Deku_Set_Sold_Out -804031E4 @@continue -80403218 every_frame -8040326C @@loop -804032C4 @@no_pending_item -804032EC item_menu_description_id_periodic -80403300 @@item_menu_description_id_return_00000000 -80403308 item_menu_description_id_immediate_1 -8040331C @@item_menu_description_id_return_00000001 -80403324 item_menu_description_id_immediate_2 -80403338 @@item_menu_description_id_return_00000002 -80403340 item_menu_description_id_immediate_3 -80403354 @@item_menu_description_id_return_00000003 -8040335C before_time_travel -8040338C after_time_travel -804033C8 @@going_back -804033D0 @@done -80403400 update_c_button -8040342C @@return -80403434 after_going_forward -80403470 @@no_init -80403480 after_going_back -804034B0 @@not_swordless -804034B8 initialize_adult -804034E0 @@no_mirror_shield -80403520 init_adult_button -8040354C @@empty -80403554 @@loop -804035AC @@set_empty -804035B8 @@return -804035C0 .byt:0001 -804035C0 ADULT_INIT_ITEMS -804035C1 .byt:0001 -804035C2 .byt:0001 -804035C3 .byt:0001 -804035C4 .byt:0001 -804035C5 .byt:0001 -804035C6 .byt:0001 -804035C7 .byt:0001 -804035C8 .byt:0001 -804035CC .byt:0001 -804035CC ADULT_VALID_ITEMS -804035CD .byt:0001 -804035CE .byt:0001 -804035CF .byt:0001 -804035D0 .byt:0001 -804035D1 .byt:0001 -804035D2 .byt:0001 -804035D3 .byt:0001 -804035D4 .byt:0001 -804035D5 .byt:0001 -804035D6 .byt:0001 -804035D7 .byt:0001 -804035D8 .byt:0001 -804035D9 .byt:0001 -804035DA .byt:0001 -804035DB .byt:0001 -804035DC .byt:0001 -804035DD .byt:0001 -804035DE .byt:0001 -804035DF .byt:0001 -804035E0 .byt:0001 -804035E1 .byt:0001 -804035E2 .byt:0001 -804035E3 .byt:0001 -804035E4 suns_song_fix_event -80403618 @@child -80403628 @@return -80403630 suns_song_fix -80403644 @@check_suns_status -80403660 @@disable_suns -80403668 @@return -80403670 warp_song_fix -8040369C @@child -804036AC @@return -804036B4 Check_Has_Epona_Song -80403700 @@return -80403708 write_initial_save -80403714 @@save_data_loop -80403744 @@overwrite_type -8040374C @@return -80403754 .byt:08FC +80402550 .byt:0001 +80402551 .byt:0001 +80402552 .byt:0001 +80402553 .byt:0001 +80402554 .wrd:0002 +80402556 .byt:0001 +80402557 .byt:0001 +80402558 .dbl:0004 +8040255C .dbl:0004 +80402560 .byt:0001 +80402561 .byt:0001 +80402562 .byt:0001 +80402563 .byt:0001 +80402564 .wrd:0002 +80402566 .byt:0001 +80402567 .byt:0001 +80402568 .dbl:0004 +8040256C .dbl:0004 +80402570 no_upgrade +80402578 hookshot_upgrade +8040258C @@return +80402594 strength_upgrade +804025B4 @@return +804025BC bomb_bag_upgrade +804025DC @@return +804025E4 bow_upgrade +80402604 @@return +8040260C slingshot_upgrade +8040262C @@return +80402634 wallet_upgrade +80402654 @@return +8040265C tycoon_wallet +80402670 scale_upgrade +80402684 @@return +8040268C nut_upgrade +804026A0 @@return +804026A8 stick_upgrade +804026BC @@return +804026C4 magic_upgrade +804026D4 @@return +804026DC arrows_to_rupee +804026F0 @@return +804026F8 bombs_to_rupee +8040270C @@return +80402714 seeds_to_rupee +80402728 @@return +80402730 no_effect +80402738 give_biggoron_sword +80402748 give_bottle +80402750 @@loop +8040277C @@return +80402784 give_dungeon_item +804027A0 give_small_key +804027B8 @not_negative +804027C8 give_defense +804027E8 give_magic +80402808 double_magic +80402830 bombchu_upgrade +80402854 @@return +8040285C ocarina_upgrade +80402870 @@return +80402878 give_fairy_ocarina +80402888 give_song +804028A4 inventory_check +80402910 @@return +80402918 override_skulltula_token +80402938 @@in_table +80402968 @@extended_effect +80402994 @@no_extended_effect +804029A0 @@not_extended +804029D8 @@item_effect +804029E4 @@display_message +804029F0 @@return +80402A04 override_object_npc +80402A14 override_object_chest +80402A24 override_object +80402A3C @@return +80402A80 @@no_count_inc +80402A84 @@no_pending_clear +80402A8C override_graphic +80402AA4 @@return +80402ABC override_text +80402AD8 @@return +80402AE0 override_action +80402B08 @@no_player_override +80402B64 @@return +80402B6C store_item_data_hook +80402BA0 store_item_data +80402C34 @@update_base_game +80402C64 @@not_chest +80402C74 @@not_negative +80402C78 @@return +80402C88 lookup_override +80402CB0 @@return +80402CC0 get_override_search_key +80402D00 @@not_skulltula +80402D38 @@valid_chest +80402D40 @@not_chest +80402D70 @@valid_collectable +80402D78 @@not_collectable +80402DA0 @@not_grotto_deku_scrub +80402DB0 @@return +80402DB8 scan_override_table +80402DDC @@lookup_loop +80402E44 @@return +80402E4C resolve_extended_item +80402E60 @@loop +80402EB4 @@not_extended +80402EB8 @@return +80402ED0 override_great_fairy_cutscene +80402F28 @@item_fairy +80402F48 @@give_item +80402F74 @@return +80402F7C override_light_arrow_cutscene +80402F90 override_fairy_ocarina_cutscene +80402FA4 override_ocarina_songs +80402FB8 override_requiem_song +80402FC4 override_epona_song +80402FE4 override_suns_song +80403004 override_song_of_time +80403014 store_pending_special_item +80403024 @@find_duplicate_loop +80403040 @@find_empty_loop +80403058 @@return +80403060 override_saria_song_check +8040307C @@get_item +80403084 set_saria_song_flag +804030A4 set_dungeon_knowledge +804030D0 @@set_flag +804030E8 Shop_Check_Sold_Out +80403134 @@return +8040313C Shop_Set_Sold_Out +80403174 @@return +8040317C Shop_Keeper_Init_ID +80403198 @@return +804031A8 Deku_Check_Sold_Out +804031CC @@continue +804031FC Deku_Set_Sold_Out +80403220 @@continue +80403254 every_frame +804032A8 @@loop +80403300 @@no_pending_item +80403328 item_menu_description_id_periodic +8040333C @@item_menu_description_id_return_00000000 +80403344 item_menu_description_id_immediate_1 +80403358 @@item_menu_description_id_return_00000001 +80403360 item_menu_description_id_immediate_2 +80403374 @@item_menu_description_id_return_00000002 +8040337C item_menu_description_id_immediate_3 +80403390 @@item_menu_description_id_return_00000003 +80403398 before_time_travel +804033C8 after_time_travel +80403404 @@going_back +8040340C @@done +8040343C update_c_button +80403468 @@return +80403470 after_going_forward +804034AC @@no_init +804034BC after_going_back +804034EC @@not_swordless +804034F4 initialize_adult +8040351C @@no_mirror_shield +8040355C init_adult_button +80403588 @@empty +80403590 @@loop +804035E8 @@set_empty +804035F4 @@return +804035FC .byt:0001 +804035FC ADULT_INIT_ITEMS +804035FD .byt:0001 +804035FE .byt:0001 +804035FF .byt:0001 +80403600 .byt:0001 +80403601 .byt:0001 +80403602 .byt:0001 +80403603 .byt:0001 +80403604 .byt:0001 +80403608 .byt:0001 +80403608 ADULT_VALID_ITEMS +80403609 .byt:0001 +8040360A .byt:0001 +8040360B .byt:0001 +8040360C .byt:0001 +8040360D .byt:0001 +8040360E .byt:0001 +8040360F .byt:0001 +80403610 .byt:0001 +80403611 .byt:0001 +80403612 .byt:0001 +80403613 .byt:0001 +80403614 .byt:0001 +80403615 .byt:0001 +80403616 .byt:0001 +80403617 .byt:0001 +80403618 .byt:0001 +80403619 .byt:0001 +8040361A .byt:0001 +8040361B .byt:0001 +8040361C .byt:0001 +8040361D .byt:0001 +8040361E .byt:0001 +8040361F .byt:0001 +80403620 suns_song_fix_event +80403654 @@child +80403664 @@return +8040366C suns_song_fix +80403680 @@check_suns_status +8040369C @@disable_suns +804036A4 @@return +804036AC warp_song_fix +804036D8 @@child +804036E8 @@return +804036F0 Check_Has_Epona_Song +8040373C @@return +80403744 write_initial_save +80403750 @@save_data_loop +80403780 @@overwrite_type +80403788 @@return +80403790 .byt:08C0 80405000 disp_buf_init,00000018 80405018 sprite_bytes_per_tile,00000028 80405040 sprite_bytes,00000030 diff --git a/ASM/src/extended_items.asm b/ASM/src/extended_items.asm index c12f536d6..6b9be8c63 100755 --- a/ASM/src/extended_items.asm +++ b/ASM/src/extended_items.asm @@ -141,6 +141,10 @@ Item_Row 0x53, 0x41, 0x08, 0xBB, 0x00B6, no_upgrade, give_song, 15, -1 ; 0xCD = Item_Row 0x53, 0x41, 0x05, 0xBC, 0x00B6, no_upgrade, give_song, 16, -1 ; 0xCE = Song of Time Item_Row 0x53, 0x41, 0x07, 0xBD, 0x00B6, no_upgrade, give_song, 17, -1 ; 0xCF = Song of Storms +Item_Row 0x4D, 0x00, 0xE5, 0x37, 0x00C7, no_upgrade, no_effect, -1, -1 ; 0xD0 = Deku Sticks (1) +Item_Row 0x4D, 0x95, 0xB8, 0xDC, 0x0119, seeds_to_rupee, no_effect, -1, -1 ; 0xD1 = Deku Seeds (30) + + ;================================================================================================== ; Item upgrade functions ;================================================================================================== @@ -351,6 +355,21 @@ bombs_to_rupee: jr ra nop +;================================================================================================== + +seeds_to_rupee: + lbu t0, 0xA2 (a0) ; Load seed bag from inventory + andi t0, t0, 0xC0 ; Mask bits to isolate seed bag + + beqz t0, @@return + li v0, 0x4D ; Blue Rupee + + ori v0, a1, 0 + +@@return: + jr ra + nop + ;================================================================================================== ; Item effect functions ;================================================================================================== diff --git a/ItemList.py b/ItemList.py index 9db6a506f..52c74bb77 100644 --- a/ItemList.py +++ b/ItemList.py @@ -119,23 +119,6 @@ normal_bottle_count = 3 -# 10 items get removed for hard+ -harditems = ( - ['Bombs (5)'] * 2 - + ['Arrows (5)'] * 2 - + ['Deku Nuts (5)'] * 2 - + ['Rupees (5)'] * 3 - + ['Rupees (20)']) - -# 37 items get removed for very hard -veryharditems = ( - ['Bombs (5)'] * 8 - + ['Arrows (5)'] * 8 - + ['Deku Nuts (5)'] * 8 - + ['Rupees (5)'] * 10 - + ['Rupees (20)'] * 2 - + ['Rupees (50)']) - normal_rupees = ( ['Rupees (5)'] * 13 + ['Rupees (20)'] * 5 @@ -265,7 +248,6 @@ ['Deku Nuts (5)'] * 5 + ['Deku Stick (1)'] + ['Bombs (5)'] * 5 - + ['Arrows (30)'] * 5 + ['Recovery Heart'] * 4 + ['Rupees (5)'] * 4 # ['Green Potion'] ) @@ -387,7 +369,24 @@ 'Ganons Castle Light Trial Clear': 'Light Trial Clear' } -#total_items_to_place = 5 +junk_pool = ( + 8 * ['Bombs (5)'] + + 2 * ['Bombs (10)'] + + 8 * ['Arrows (5)'] + + 2 * ['Arrows (10)'] + + 5 * ['Deku Sticks (1)'] + + 5 * ['Deku Nuts (5)'] + + 5 * ['Deku Seeds (30)'] + + 10 * ['Rupees (5)'] + + 4 * ['Rupees (20)'] + + 1 * ['Rupees (50)']) +def get_junk_item(count=1): + ret_junk = [] + for _ in range(count): + ret_junk.append(random.choice(junk_pool)) + + return ret_junk + def generate_itempool(world): for location, item in eventlocations.items(): @@ -610,10 +609,10 @@ def get_pool_core(world): if world.difficulty == 'normal': pool.extend(['Magic Meter', 'Double Defense'] + ['Heart Container'] * 8) else: - pool.extend(harditems) + pool.extend(get_junk_item(10)) if world.difficulty == 'very_hard' or world.difficulty == 'ohko': - pool.extend(veryharditems) + pool.extend(get_junk_item(37)) else: pool.extend(['Nayrus Love', 'Piece of Heart (Treasure Chest Game)'] + ['Piece of Heart'] * 35) @@ -666,23 +665,27 @@ def get_pool_core(world): shop_item_count = shop_slots_count - shop_nonitem_count pool.extend(random.sample(remain_shop_items, shop_item_count)) - pool.extend(random.sample(veryharditems, shop_nonitem_count)) + pool.extend(get_junk_item(shop_nonitem_count)) pool.extend(shopsanity_rupees) if world.shuffle_scrubs: + arrows_or_seeds = 0 if world.dungeon_mq['DT']: pool.append('Deku Shield') if world.dungeon_mq['DC']: - pool.extend(['Deku Stick (1)', 'Arrows (30)', 'Deku Shield', 'Recovery Heart']) + pool.extend(['Deku Stick (1)', 'Deku Shield', 'Recovery Heart']) else: - pool.extend(['Deku Nuts (5)', 'Deku Stick (1)', 'Arrows (30)', 'Deku Shield']) + pool.extend(['Deku Nuts (5)', 'Deku Stick (1)', 'Deku Shield']) if not world.dungeon_mq['JB']: pool.append('Deku Nuts (5)') if world.dungeon_mq['GC']: - pool.extend(['Bombs (5)', 'Arrows (30)', 'Recovery Heart', 'Rupees (5)', 'Deku Nuts (5)']) + pool.extend(['Bombs (5)', 'Recovery Heart', 'Rupees (5)', 'Deku Nuts (5)']) else: - pool.extend(['Bombs (5)', 'Arrows (30)', 'Recovery Heart', 'Rupees (5)']) + pool.extend(['Bombs (5)', 'Recovery Heart', 'Rupees (5)']) pool.extend(deku_scrubs_items) + for _ in range(7): + pool.append('Arrows (30)' if random.int(4) > 0 else 'Deku Seeds (30)') + else: if world.dungeon_mq['DT']: placed_items['DT MQ Deku Scrub Deku Shield'] = 'Buy Deku Shield' @@ -760,15 +763,15 @@ def get_pool_core(world): if world.shuffle_mapcompass == 'remove': for item in [item for dungeon in world.dungeons for item in dungeon.dungeon_items]: world.state.collect(item) - pool.append(random.choice(harditems)) + pool.extend(get_junk_item()) if world.shuffle_smallkeys == 'remove': for item in [item for dungeon in world.dungeons for item in dungeon.small_keys]: world.state.collect(item) - pool.append(random.choice(harditems)) + pool.extend(get_junk_item()) if world.shuffle_bosskeys == 'remove': for item in [item for dungeon in world.dungeons for item in dungeon.boss_key]: world.state.collect(item) - pool.append(random.choice(harditems)) + pool.extend(get_junk_item()) if not world.keysanity and not world.dungeon_mq['FiT']: world.state.collect(ItemFactory('Small Key (Fire Temple)')) diff --git a/Items.py b/Items.py index dc6714b36..b0d90689e 100644 --- a/Items.py +++ b/Items.py @@ -104,7 +104,8 @@ def __init__(self, model, gid, price): 'Bombchus': (True, False, None, None, 0xC2, 0x00D9, 0x28), 'Deku Nuts (5)': (False, False, None, None, 0xBD, 0x00BB, 0x12), 'Deku Nuts (10)': (False, False, None, None, 0xBE, 0x00BB, 0x12), - 'Deku Stick (1)': (False, False, None, 0x00E0, 0x07, 0x00C7, 0x1B), # This probably will need an extended version made to be NPC friendly. + 'Deku Stick (1)': (False, False, None, 0x00E0, 0xD0, 0x00C7, 0xE5), + 'Deku Seeds (30)': (False, False, None, 0x00E0, 0xD1, 0x0119, 0xB8), 'Rupee (Treasure Chest Game)': (False, False, None, 0x0E40, 0x72, 0x017F, 0x6D), 'Rupee (1)': (False, False, None, 0x0980, 0x4C, 0x017F, 0x6D), 'Rupees (5)': (False, False, None, 0x09A0, 0x4D, 0x017F, 0x6E), diff --git a/data/rom_patch.txt b/data/rom_patch.txt index 4a3bb4144..0a7831e22 100644 --- a/data/rom_patch.txt +++ b/data/rom_patch.txt @@ -403,22 +403,22 @@ d27a,30 a98c30,c a98c31,10 a98c32,a -a98c33,cc +a98c33,db a9e838,8 a9e839,10 a9e83a,d -a9e83b,ad +a9e83b,bc ac9abc,c ac9abd,10 ac9abe,b -ac9abf,df +ac9abf,ee ac9ac1,0 ac9ac2,0 ac9ac3,0 acce88,c acce89,10 acce8a,b -acce8b,d0 +acce8b,df acce8c,0 acce8d,0 acce8e,0 @@ -433,22 +433,22 @@ acce9b,0 ae59e0,8 ae59e1,10 ae59e2,c -ae59e3,e3 +ae59e3,f2 ae5df0,c ae5df1,10 ae5df2,d -ae5df3,8c +ae5df3,9b ae5df8,c ae5df9,10 ae5dfa,b -ae5dfb,da +ae5dfb,e9 ae5e04,0 ae5e05,0 ae5e07,0 ae6e48,c ae6e49,10 ae6e4a,b -ae6e4b,d5 +ae6e4b,e4 ae6e4c,1 ae6e4d,f ae6e4e,c0 @@ -463,7 +463,7 @@ b0640f,2 b06c2c,c b06c2d,10 b06c2e,d -b06c2f,c2 +b06c2f,d1 b06c31,28 b06c33,20 b17129,10 @@ -503,11 +503,11 @@ b17bd3,0 b54b38,c b54b39,10 b54b3a,d -b54b3b,9c +b54b3b,ab b54e5c,c b54e5d,10 b54e5e,d -b54e5f,79 +b54e5f,88 baed6c,0 baed6d,0 baed6f,0 @@ -517,14 +517,14 @@ bb77b7,0 bb7890,c bb7891,10 bb7892,c -bb7893,c2 +bb7893,d1 bb7894,0 bb7895,0 bb7897,0 bb7950,c bb7951,10 bb7952,c -bb7953,c9 +bb7953,d8 bb7954,0 bb7955,0 bb7957,0 @@ -537,21 +537,21 @@ bb7bff,0 bb7c3c,c bb7c3d,10 bb7c3e,c -bb7c3f,d0 +bb7c3f,df bb7c40,0 bb7c41,0 bb7c43,0 bb7c58,c bb7c59,10 bb7c5a,c -bb7c5b,bb +bb7c5b,ca bb7c5c,0 bb7c5d,0 bb7c5f,0 bcecbc,8 bcecbd,10 bcecbe,a -bcecbf,94 +bcecbf,a3 bcecc1,0 bcecc2,0 bcecc3,0 @@ -571,25 +571,25 @@ bcecd1,0 bcecd3,0 bda0a1,10 bda0a2,a -bda0a3,1a +bda0a3,29 bda0d8,c bda0d9,10 bda0da,a -bda0db,72 +bda0db,81 bda0e4,0 bda0e5,0 bda0e7,0 bda264,c bda265,10 bda266,a -bda267,76 +bda267,85 bda270,0 bda271,0 bda273,0 be5990,c be5991,10 be5992,c -be5993,86 +be5993,95 be5994,0 be5995,0 be5996,0 @@ -597,11 +597,11 @@ be5997,0 be9ac0,c be9ac1,10 be9ac2,a -be9ac3,a0 +be9ac3,af be9ad8,c be9ad9,10 be9ada,a -be9adb,a9 +be9adb,b8 be9ae4,0 be9ae5,0 be9bde,83 @@ -609,20 +609,20 @@ be9bdf,83 c004ec,8 c004ed,10 c004ee,c -c004ef,2b +c004ef,3a c0067f,64 c018a0,c c018a1,10 c018a2,c -c018a3,40 +c018a3,4f c6c7a8,c c6c7a9,10 c6c7aa,c -c6c7ab,50 +c6c7ab,5f c6c920,c c6c921,10 c6c922,c -c6c923,50 +c6c923,5f c892dc,34 c892dd,e c892de,0 @@ -633,7 +633,7 @@ c8931e,0 c8931f,1 c89745,10 c89746,b -c89747,a5 +c89747,b4 c89868,92 c89869,e c8986a,1d @@ -649,7 +649,7 @@ c898cb,2a cb6860,c cb6861,10 cb6862,c -cb6863,d7 +cb6863,e6 d12f78,34 d12f79,f d12f7b,0 @@ -870,7 +870,7 @@ d7e8e3,f d7ebbc,c d7ebbd,10 d7ebbe,b -d7ebbf,e2 +d7ebbf,f1 d7ec1c,0 d7ec1d,0 d7ec1f,0 @@ -879,13 +879,13 @@ d7ec23,5 db13d3,76 db532c,c db532d,10 -db532e,b -db532f,f2 +db532e,c +db532f,1 df264f,76 df7cb0,c df7cb1,10 df7cb2,c -df7cb3,70 +df7cb3,7f e09f68,80 e09f6a,e e09f6b,de @@ -896,18 +896,18 @@ e09f77,4 e09fb0,c e09fb1,10 e09fb2,b -e09fb3,ea +e09fb3,f9 e29388,8 e29389,10 e2938a,c -e2938b,9 +e2938b,18 e2a044,c e2a045,10 e2a046,c -e2a047,12 +e2a047,21 e2b0b5,10 e2b0b6,c -e2b0b7,1a +e2b0b7,29 e2f093,34 e9e1d8,34 e9e1d9,9 @@ -923,7 +923,7 @@ e9e20d,a9 ebb85c,c ebb85d,10 ebb85e,c -ebb85f,5b +ebb85f,6a ebb865,40 ebb867,12 ebb86c,10 @@ -945,7 +945,7 @@ ec68c7,10 ec68c8,c ec68c9,10 ec68ca,a -ec68cb,37 +ec68cb,46 ec68cc,2 ec68cd,0 ec68ce,28 @@ -980,7 +980,7 @@ ec69b7,10 ec69b8,c ec69b9,10 ec69ba,a -ec69bb,37 +ec69bb,46 ec69bc,2 ec69bd,0 ec69be,28 @@ -1079,12 +1079,12 @@ ec9ce7,7a 3482057,ff 3482058,80 3482059,40 -348205a,26 -348205b,f4 +348205a,27 +348205b,30 348205c,80 348205d,40 348205e,25 -348205f,58 +348205f,78 3482060,ff 3482061,ff 3482062,ff @@ -1095,12 +1095,12 @@ ec9ce7,7a 3482067,ff 3482068,80 3482069,40 -348206a,26 -348206b,f4 +348206a,27 +348206b,30 348206c,80 348206d,40 348206e,25 -348206f,74 +348206f,94 3482070,ff 3482071,ff 3482072,ff @@ -1111,12 +1111,12 @@ ec9ce7,7a 3482077,ff 3482078,80 3482079,40 -348207a,26 -348207b,f4 +348207a,27 +348207b,30 348207c,80 348207d,40 348207e,25 -348207f,9c +348207f,bc 3482080,ff 3482081,ff 3482082,ff @@ -1127,12 +1127,12 @@ ec9ce7,7a 3482087,ff 3482088,80 3482089,40 -348208a,26 -348208b,f4 +348208a,27 +348208b,30 348208c,80 348208d,40 348208e,25 -348208f,c4 +348208f,e4 3482090,ff 3482091,ff 3482092,ff @@ -1143,12 +1143,12 @@ ec9ce7,7a 3482097,ff 3482098,80 3482099,40 -348209a,26 -348209b,f4 +348209a,27 +348209b,30 348209c,80 348209d,40 -348209e,25 -348209f,ec +348209e,26 +348209f,c 34820a0,53 34820a1,41 34820a2,23 @@ -1159,11 +1159,11 @@ ec9ce7,7a 34820a8,80 34820a9,40 34820aa,26 -34820ab,3c +34820ab,5c 34820ac,80 34820ad,40 34820ae,26 -34820af,14 +34820af,34 34820b0,ff 34820b1,ff 34820b2,ff @@ -1174,12 +1174,12 @@ ec9ce7,7a 34820b7,ff 34820b8,80 34820b9,40 -34820ba,26 -34820bb,f4 +34820ba,27 +34820bb,30 34820bc,80 34820bd,40 34820be,26 -34820bf,50 +34820bf,70 34820c0,ff 34820c1,ff 34820c2,ff @@ -1190,12 +1190,12 @@ ec9ce7,7a 34820c7,ff 34820c8,80 34820c9,40 -34820ca,26 -34820cb,f4 +34820ca,27 +34820cb,30 34820cc,80 34820cd,40 34820ce,26 -34820cf,6c +34820cf,8c 34820d0,ff 34820d1,ff 34820d2,ff @@ -1206,12 +1206,12 @@ ec9ce7,7a 34820d7,ff 34820d8,80 34820d9,40 -34820da,26 -34820db,f4 +34820da,27 +34820db,30 34820dc,80 34820dd,40 34820de,26 -34820df,88 +34820df,a8 34820e0,53 34820e1,41 34820e2,38 @@ -1222,11 +1222,11 @@ ec9ce7,7a 34820e8,80 34820e9,40 34820ea,27 -34820eb,c +34820eb,48 34820ec,80 34820ed,40 34820ee,25 -34820ef,50 +34820ef,70 34820f0,53 34820f1,41 34820f2,37 @@ -1237,11 +1237,11 @@ ec9ce7,7a 34820f8,80 34820f9,40 34820fa,27 -34820fb,c +34820fb,48 34820fc,80 34820fd,40 34820fe,25 -34820ff,50 +34820ff,70 3482100,53 3482101,41 3482102,39 @@ -1252,11 +1252,11 @@ ec9ce7,7a 3482108,80 3482109,40 348210a,27 -348210b,c +348210b,48 348210c,80 348210d,40 348210e,25 -348210f,50 +348210f,70 3482110,53 3482111,41 3482112,6b @@ -1268,11 +1268,11 @@ ec9ce7,7a 3482118,80 3482119,40 348211a,27 -348211b,c +348211b,48 348211c,80 348211d,40 348211e,25 -348211f,50 +348211f,70 3482120,53 3482121,41 3482122,3f @@ -1283,11 +1283,11 @@ ec9ce7,7a 3482128,80 3482129,40 348212a,27 -348212b,c +348212b,48 348212c,80 348212d,40 348212e,25 -348212f,50 +348212f,70 3482130,53 3482131,41 3482132,67 @@ -1299,11 +1299,11 @@ ec9ce7,7a 3482138,80 3482139,40 348213a,27 -348213b,c +348213b,48 348213c,80 348213d,40 348213e,25 -348213f,50 +348213f,70 3482140,53 3482141,41 3482142,68 @@ -1315,11 +1315,11 @@ ec9ce7,7a 3482148,80 3482149,40 348214a,27 -348214b,c +348214b,48 348214c,80 348214d,40 348214e,25 -348214f,50 +348214f,70 3482150,53 3482151,41 3482152,70 @@ -1331,11 +1331,11 @@ ec9ce7,7a 3482158,80 3482159,40 348215a,27 -348215b,c +348215b,48 348215c,80 348215d,40 348215e,25 -348215f,50 +348215f,70 3482160,53 3482161,41 3482162,6a @@ -1347,11 +1347,11 @@ ec9ce7,7a 3482168,80 3482169,40 348216a,27 -348216b,c +348216b,48 348216c,80 348216d,40 348216e,25 -348216f,50 +348216f,70 3482170,53 3482171,41 3482172,a @@ -1362,11 +1362,11 @@ ec9ce7,7a 3482178,80 3482179,40 348217a,27 -348217b,48 +348217b,84 348217c,80 348217d,40 348217e,25 -348217f,50 +348217f,70 3482180,53 3482181,41 3482182,a @@ -1377,11 +1377,11 @@ ec9ce7,7a 3482188,80 3482189,40 348218a,27 -348218b,48 +348218b,84 348218c,80 348218d,40 348218e,25 -348218f,50 +348218f,70 3482190,53 3482191,41 3482192,a @@ -1392,11 +1392,11 @@ ec9ce7,7a 3482198,80 3482199,40 348219a,27 -348219b,48 +348219b,84 348219c,80 348219d,40 348219e,25 -348219f,50 +348219f,70 34821a0,53 34821a1,41 34821a2,a @@ -1407,11 +1407,11 @@ ec9ce7,7a 34821a8,80 34821a9,40 34821aa,27 -34821ab,48 +34821ab,84 34821ac,80 34821ad,40 34821ae,25 -34821af,50 +34821af,70 34821b0,53 34821b1,41 34821b2,a @@ -1422,11 +1422,11 @@ ec9ce7,7a 34821b8,80 34821b9,40 34821ba,27 -34821bb,48 +34821bb,84 34821bc,80 34821bd,40 34821be,25 -34821bf,50 +34821bf,70 34821c0,53 34821c1,41 34821c2,a @@ -1437,11 +1437,11 @@ ec9ce7,7a 34821c8,80 34821c9,40 34821ca,27 -34821cb,48 +34821cb,84 34821cc,80 34821cd,40 34821ce,25 -34821cf,50 +34821cf,70 34821d0,4d 34821d1,41 34821d2,f5 @@ -1451,11 +1451,11 @@ ec9ce7,7a 34821d8,80 34821d9,40 34821da,27 -34821db,48 +34821db,84 34821dc,80 34821dd,40 34821de,25 -34821df,50 +34821df,70 34821e0,4d 34821e1,41 34821e2,f5 @@ -1466,11 +1466,11 @@ ec9ce7,7a 34821e8,80 34821e9,40 34821ea,27 -34821eb,48 +34821eb,84 34821ec,80 34821ed,40 34821ee,25 -34821ef,50 +34821ef,70 34821f0,4d 34821f1,41 34821f2,f5 @@ -1481,11 +1481,11 @@ ec9ce7,7a 34821f8,80 34821f9,40 34821fa,27 -34821fb,48 +34821fb,84 34821fc,80 34821fd,40 34821fe,25 -34821ff,50 +34821ff,70 3482200,4d 3482201,41 3482202,f5 @@ -1496,11 +1496,11 @@ ec9ce7,7a 3482208,80 3482209,40 348220a,27 -348220b,48 +348220b,84 348220c,80 348220d,40 348220e,25 -348220f,50 +348220f,70 3482210,4d 3482211,41 3482212,f5 @@ -1511,11 +1511,11 @@ ec9ce7,7a 3482218,80 3482219,40 348221a,27 -348221b,48 +348221b,84 348221c,80 348221d,40 348221e,25 -348221f,50 +348221f,70 3482220,4d 3482221,41 3482222,f5 @@ -1526,11 +1526,11 @@ ec9ce7,7a 3482228,80 3482229,40 348222a,27 -348222b,48 +348222b,84 348222c,80 348222d,40 348222e,25 -348222f,50 +348222f,70 3482230,4d 3482231,41 3482232,f5 @@ -1541,11 +1541,11 @@ ec9ce7,7a 3482238,80 3482239,40 348223a,27 -348223b,48 +348223b,84 348223c,80 348223d,40 348223e,25 -348223f,50 +348223f,70 3482240,4d 3482241,41 3482242,f5 @@ -1556,11 +1556,11 @@ ec9ce7,7a 3482248,80 3482249,40 348224a,27 -348224b,48 +348224b,84 348224c,80 348224d,40 348224e,25 -348224f,50 +348224f,70 3482250,4d 3482251,41 3482252,f5 @@ -1571,11 +1571,11 @@ ec9ce7,7a 3482258,80 3482259,40 348225a,27 -348225b,48 +348225b,84 348225c,80 348225d,40 348225e,25 -348225f,50 +348225f,70 3482260,4d 3482261,41 3482262,f5 @@ -1586,11 +1586,11 @@ ec9ce7,7a 3482268,80 3482269,40 348226a,27 -348226b,48 +348226b,84 348226c,80 348226d,40 348226e,25 -348226f,50 +348226f,70 3482270,4d 3482271,41 3482272,e4 @@ -1600,11 +1600,11 @@ ec9ce7,7a 3482278,80 3482279,40 348227a,27 -348227b,48 +348227b,84 348227c,80 348227d,40 348227e,25 -348227f,50 +348227f,70 3482280,4d 3482281,41 3482282,e4 @@ -1615,11 +1615,11 @@ ec9ce7,7a 3482288,80 3482289,40 348228a,27 -348228b,48 +348228b,84 348228c,80 348228d,40 348228e,25 -348228f,50 +348228f,70 3482290,4d 3482291,41 3482292,e4 @@ -1630,11 +1630,11 @@ ec9ce7,7a 3482298,80 3482299,40 348229a,27 -348229b,48 +348229b,84 348229c,80 348229d,40 348229e,25 -348229f,50 +348229f,70 34822a0,4d 34822a1,41 34822a2,e4 @@ -1645,11 +1645,11 @@ ec9ce7,7a 34822a8,80 34822a9,40 34822aa,27 -34822ab,48 +34822ab,84 34822ac,80 34822ad,40 34822ae,25 -34822af,50 +34822af,70 34822b0,4d 34822b1,41 34822b2,e4 @@ -1660,11 +1660,11 @@ ec9ce7,7a 34822b8,80 34822b9,40 34822ba,27 -34822bb,48 +34822bb,84 34822bc,80 34822bd,40 34822be,25 -34822bf,50 +34822bf,70 34822c0,4d 34822c1,41 34822c2,e4 @@ -1675,11 +1675,11 @@ ec9ce7,7a 34822c8,80 34822c9,40 34822ca,27 -34822cb,48 +34822cb,84 34822cc,80 34822cd,40 34822ce,25 -34822cf,50 +34822cf,70 34822d0,4d 34822d1,41 34822d2,e4 @@ -1690,11 +1690,11 @@ ec9ce7,7a 34822d8,80 34822d9,40 34822da,27 -34822db,48 +34822db,84 34822dc,80 34822dd,40 34822de,25 -34822df,50 +34822df,70 34822e0,4d 34822e1,41 34822e2,e4 @@ -1705,11 +1705,11 @@ ec9ce7,7a 34822e8,80 34822e9,40 34822ea,27 -34822eb,48 +34822eb,84 34822ec,80 34822ed,40 34822ee,25 -34822ef,50 +34822ef,70 34822f0,4d 34822f1,41 34822f2,e4 @@ -1720,11 +1720,11 @@ ec9ce7,7a 34822f8,80 34822f9,40 34822fa,27 -34822fb,48 +34822fb,84 34822fc,80 34822fd,40 34822fe,25 -34822ff,50 +34822ff,70 3482300,4d 3482301,41 3482302,e4 @@ -1735,11 +1735,11 @@ ec9ce7,7a 3482308,80 3482309,40 348230a,27 -348230b,48 +348230b,84 348230c,80 348230d,40 348230e,25 -348230f,50 +348230f,70 3482310,53 3482311,41 3482312,2 @@ -1750,11 +1750,11 @@ ec9ce7,7a 3482318,80 3482319,40 348231a,27 -348231b,64 +348231b,a0 348231c,80 348231d,40 348231e,25 -348231f,50 +348231f,70 3482320,53 3482321,41 3482322,2 @@ -1765,11 +1765,11 @@ ec9ce7,7a 3482328,80 3482329,40 348232a,27 -348232b,64 +348232b,a0 348232c,80 348232d,40 348232e,25 -348232f,50 +348232f,70 3482330,53 3482331,41 3482332,2 @@ -1780,11 +1780,11 @@ ec9ce7,7a 3482338,80 3482339,40 348233a,27 -348233b,64 +348233b,a0 348233c,80 348233d,40 348233e,25 -348233f,50 +348233f,70 3482340,53 3482341,41 3482342,2 @@ -1795,11 +1795,11 @@ ec9ce7,7a 3482348,80 3482349,40 348234a,27 -348234b,64 +348234b,a0 348234c,80 348234d,40 348234e,25 -348234f,50 +348234f,70 3482350,53 3482351,41 3482352,2 @@ -1810,11 +1810,11 @@ ec9ce7,7a 3482358,80 3482359,40 348235a,27 -348235b,64 +348235b,a0 348235c,80 348235d,40 348235e,25 -348235f,50 +348235f,70 3482360,53 3482361,41 3482362,2 @@ -1825,11 +1825,11 @@ ec9ce7,7a 3482368,80 3482369,40 348236a,27 -348236b,64 +348236b,a0 348236c,80 348236d,40 348236e,25 -348236f,50 +348236f,70 3482370,53 3482371,41 3482372,2 @@ -1840,11 +1840,11 @@ ec9ce7,7a 3482378,80 3482379,40 348237a,27 -348237b,64 +348237b,a0 348237c,80 348237d,40 348237e,25 -348237f,50 +348237f,70 3482380,53 3482381,41 3482382,2 @@ -1855,11 +1855,11 @@ ec9ce7,7a 3482388,80 3482389,40 348238a,27 -348238b,64 +348238b,a0 348238c,80 348238d,40 348238e,25 -348238f,50 +348238f,70 3482390,53 3482391,41 3482392,2 @@ -1870,11 +1870,11 @@ ec9ce7,7a 3482398,80 3482399,40 348239a,27 -348239b,64 +348239b,a0 348239c,80 348239d,40 348239e,25 -348239f,50 +348239f,70 34823a0,53 34823a1,3d 34823a2,43 @@ -1884,12 +1884,12 @@ ec9ce7,7a 34823a7,ff 34823a8,80 34823a9,40 -34823aa,26 -34823ab,fc +34823aa,27 +34823ab,38 34823ac,80 34823ad,40 34823ae,25 -34823af,50 +34823af,70 34823b0,4d 34823b1,83 34823b2,f7 @@ -1899,12 +1899,12 @@ ec9ce7,7a 34823b7,ff 34823b8,80 34823b9,40 -34823ba,26 -34823bb,f4 +34823ba,27 +34823bb,30 34823bc,80 34823bd,40 34823be,25 -34823bf,50 +34823bf,70 34823c0,4d 34823c1,92 34823c2,db @@ -1914,12 +1914,12 @@ ec9ce7,7a 34823c7,ff 34823c8,80 34823c9,40 -34823ca,26 -34823cb,f4 +34823ca,27 +34823cb,30 34823cc,80 34823cd,40 34823ce,26 -34823cf,bc +34823cf,dc 34823d0,4d 34823d1,93 34823d2,da @@ -1929,12 +1929,12 @@ ec9ce7,7a 34823d7,ff 34823d8,80 34823d9,40 -34823da,26 -34823db,f4 +34823da,27 +34823db,30 34823dc,80 34823dd,40 34823de,26 -34823df,bc +34823df,dc 34823e0,4d 34823e1,94 34823e2,d9 @@ -1944,12 +1944,12 @@ ec9ce7,7a 34823e7,ff 34823e8,80 34823e9,40 -34823ea,26 -34823eb,f4 +34823ea,27 +34823eb,30 34823ec,80 34823ed,40 34823ee,26 -34823ef,bc +34823ef,dc 34823f0,4d 34823f1,8e 34823f2,e0 @@ -1959,12 +1959,12 @@ ec9ce7,7a 34823f7,ff 34823f8,80 34823f9,40 -34823fa,26 -34823fb,f4 +34823fa,27 +34823fb,30 34823fc,80 34823fd,40 34823fe,26 -34823ff,d8 +34823ff,f8 3482400,4d 3482401,8f 3482402,e0 @@ -1974,12 +1974,12 @@ ec9ce7,7a 3482407,ff 3482408,80 3482409,40 -348240a,26 -348240b,f4 +348240a,27 +348240b,30 348240c,80 348240d,40 348240e,26 -348240f,d8 +348240f,f8 3482410,4d 3482411,90 3482412,e0 @@ -1989,12 +1989,12 @@ ec9ce7,7a 3482417,ff 3482418,80 3482419,40 -348241a,26 -348241b,f4 +348241a,27 +348241b,30 348241c,80 348241d,40 348241e,26 -348241f,d8 +348241f,f8 3482420,4d 3482421,8c 3482422,ee @@ -2004,12 +2004,12 @@ ec9ce7,7a 3482427,ff 3482428,80 3482429,40 -348242a,26 -348242b,f4 +348242a,27 +348242b,30 348242c,80 348242d,40 348242e,25 -348242f,50 +348242f,70 3482430,4d 3482431,8d 3482432,ee @@ -2019,12 +2019,12 @@ ec9ce7,7a 3482437,ff 3482438,80 3482439,40 -348243a,26 -348243b,f4 +348243a,27 +348243b,30 348243c,80 348243d,40 348243e,25 -348243f,50 +348243f,70 3482440,4f 3482441,41 3482442,ed @@ -2035,11 +2035,11 @@ ec9ce7,7a 3482448,80 3482449,40 348244a,27 -348244b,8c +348244b,c8 348244c,80 348244d,40 348244e,25 -348244f,50 +348244f,70 3482450,53 3482451,41 3482452,1e @@ -2050,11 +2050,11 @@ ec9ce7,7a 3482458,80 3482459,40 348245a,27 -348245b,ac +348245b,e8 348245c,80 348245d,40 348245e,26 -348245f,a4 +348245f,c4 3482460,53 3482461,41 3482462,1f @@ -2064,12 +2064,12 @@ ec9ce7,7a 3482467,ff 3482468,80 3482469,40 -348246a,27 -348246b,cc +348246a,28 +348246b,8 348246c,80 348246d,40 348246e,25 -348246f,50 +348246f,70 3482470,ff 3482471,ff 3482472,ff @@ -2080,12 +2080,12 @@ ec9ce7,7a 3482477,ff 3482478,80 3482479,40 -348247a,26 -348247b,f4 +348247a,27 +348247b,30 348247c,80 348247d,40 -348247e,27 -348247f,f4 +348247e,28 +348247f,30 3482480,53 3482481,41 3482482,46 @@ -2097,11 +2097,11 @@ ec9ce7,7a 3482488,80 3482489,40 348248a,28 -348248b,3c +348248b,78 348248c,80 348248d,40 348248e,28 -348248f,20 +348248f,5c 3482490,53 3482491,41 3482492,3 @@ -2112,11 +2112,11 @@ ec9ce7,7a 3482498,80 3482499,40 348249a,28 -348249b,4c +348249b,88 348249c,80 348249d,40 348249e,25 -348249f,50 +348249f,70 34824a0,53 34824a1,41 34824a2,4 @@ -2127,11 +2127,11 @@ ec9ce7,7a 34824a8,80 34824a9,40 34824aa,28 -34824ab,4c +34824ab,88 34824ac,80 34824ad,40 34824ae,25 -34824af,50 +34824af,70 34824b0,53 34824b1,41 34824b2,5 @@ -2142,11 +2142,11 @@ ec9ce7,7a 34824b8,80 34824b9,40 34824ba,28 -34824bb,4c +34824bb,88 34824bc,80 34824bd,40 34824be,25 -34824bf,50 +34824bf,70 34824c0,53 34824c1,41 34824c2,6 @@ -2157,11 +2157,11 @@ ec9ce7,7a 34824c8,80 34824c9,40 34824ca,28 -34824cb,4c +34824cb,88 34824cc,80 34824cd,40 34824ce,25 -34824cf,50 +34824cf,70 34824d0,53 34824d1,41 34824d2,7 @@ -2172,11 +2172,11 @@ ec9ce7,7a 34824d8,80 34824d9,40 34824da,28 -34824db,4c +34824db,88 34824dc,80 34824dd,40 34824de,25 -34824df,50 +34824df,70 34824e0,53 34824e1,41 34824e2,8 @@ -2187,11 +2187,11 @@ ec9ce7,7a 34824e8,80 34824e9,40 34824ea,28 -34824eb,4c +34824eb,88 34824ec,80 34824ed,40 34824ee,25 -34824ef,50 +34824ef,70 34824f0,53 34824f1,41 34824f2,4 @@ -2202,11 +2202,11 @@ ec9ce7,7a 34824f8,80 34824f9,40 34824fa,28 -34824fb,4c +34824fb,88 34824fc,80 34824fd,40 34824fe,25 -34824ff,50 +34824ff,70 3482500,53 3482501,41 3482502,6 @@ -2217,11 +2217,11 @@ ec9ce7,7a 3482508,80 3482509,40 348250a,28 -348250b,4c +348250b,88 348250c,80 348250d,40 348250e,25 -348250f,50 +348250f,70 3482510,53 3482511,41 3482512,3 @@ -2232,11 +2232,11 @@ ec9ce7,7a 3482518,80 3482519,40 348251a,28 -348251b,4c +348251b,88 348251c,80 348251d,40 348251e,25 -348251f,50 +348251f,70 3482520,53 3482521,41 3482522,8 @@ -2247,11 +2247,11 @@ ec9ce7,7a 3482528,80 3482529,40 348252a,28 -348252b,4c +348252b,88 348252c,80 348252d,40 348252e,25 -348252f,50 +348252f,70 3482530,53 3482531,41 3482532,5 @@ -2262,11 +2262,11 @@ ec9ce7,7a 3482538,80 3482539,40 348253a,28 -348253b,4c +348253b,88 348253c,80 348253d,40 348253e,25 -348253f,50 +348253f,70 3482540,53 3482541,41 3482542,7 @@ -2277,1728 +2277,1733 @@ ec9ce7,7a 3482548,80 3482549,40 348254a,28 -348254b,4c +348254b,88 348254c,80 348254d,40 348254e,25 -348254f,50 -3482550,3 -3482551,e0 -3482553,8 -3482554,34 -3482555,a2 -3482558,90 -3482559,88 -348255b,7d -348255c,34 -348255d,1 -348255f,ff -3482560,11 -3482561,1 -3482563,2 -3482564,34 -3482565,2 -3482567,8 -3482568,34 -3482569,2 -348256b,9 -348256c,3 -348256d,e0 -348256f,8 -3482574,90 -3482575,88 -3482577,a3 -3482578,31 -3482579,8 -348257b,c0 -348257c,11 -348257f,5 -3482580,34 -3482581,2 -3482583,54 +348254f,70 +3482550,4d +3482552,e5 +3482553,37 +3482555,c7 +3482556,ff +3482557,ff +3482558,80 +3482559,40 +348255a,27 +348255b,30 +348255c,80 +348255d,40 +348255e,25 +348255f,70 +3482560,4d +3482561,95 +3482562,b8 +3482563,dc +3482564,1 +3482565,19 +3482566,ff +3482567,ff +3482568,80 +3482569,40 +348256a,27 +348256b,30 +348256c,80 +348256d,40 +348256e,27 +348256f,14 +3482570,3 +3482571,e0 +3482573,8 +3482574,34 +3482575,a2 +3482578,90 +3482579,88 +348257b,7d +348257c,34 +348257d,1 +348257f,ff +3482580,11 +3482581,1 +3482583,2 3482584,34 -3482585,1 -3482587,40 -3482588,11 -3482589,1 -348258b,2 -348258c,34 -348258d,2 -348258f,35 -3482590,34 -3482591,2 -3482593,36 -3482594,3 -3482595,e0 -3482597,8 -348259c,90 -348259d,88 -348259f,a3 -34825a0,31 -34825a1,8 -34825a3,18 -34825a4,11 -34825a7,5 -34825a8,34 -34825a9,2 -34825ab,32 +3482585,2 +3482587,8 +3482588,34 +3482589,2 +348258b,9 +348258c,3 +348258d,e0 +348258f,8 +3482594,90 +3482595,88 +3482597,a3 +3482598,31 +3482599,8 +348259b,c0 +348259c,11 +348259f,5 +34825a0,34 +34825a1,2 +34825a3,54 +34825a4,34 +34825a5,1 +34825a7,40 +34825a8,11 +34825a9,1 +34825ab,2 34825ac,34 -34825ad,1 -34825af,8 -34825b0,11 -34825b1,1 -34825b3,2 -34825b4,34 -34825b5,2 -34825b7,33 -34825b8,34 -34825b9,2 -34825bb,34 -34825bc,3 -34825bd,e0 -34825bf,8 -34825c4,90 -34825c5,88 -34825c7,a3 -34825c8,31 -34825c9,8 -34825cb,3 -34825cc,11 -34825cf,5 -34825d0,34 -34825d1,2 -34825d3,4 +34825ad,2 +34825af,35 +34825b0,34 +34825b1,2 +34825b3,36 +34825b4,3 +34825b5,e0 +34825b7,8 +34825bc,90 +34825bd,88 +34825bf,a3 +34825c0,31 +34825c1,8 +34825c3,18 +34825c4,11 +34825c7,5 +34825c8,34 +34825c9,2 +34825cb,32 +34825cc,34 +34825cd,1 +34825cf,8 +34825d0,11 +34825d1,1 +34825d3,2 34825d4,34 -34825d5,1 -34825d7,1 -34825d8,11 -34825d9,1 -34825db,2 -34825dc,34 -34825dd,2 -34825df,30 -34825e0,34 -34825e1,2 -34825e3,31 -34825e4,3 -34825e5,e0 -34825e7,8 -34825ec,90 -34825ed,88 -34825ef,a2 -34825f0,31 -34825f1,8 -34825f3,c0 -34825f4,11 -34825f7,5 -34825f8,34 -34825f9,2 -34825fb,5 +34825d5,2 +34825d7,33 +34825d8,34 +34825d9,2 +34825db,34 +34825dc,3 +34825dd,e0 +34825df,8 +34825e4,90 +34825e5,88 +34825e7,a3 +34825e8,31 +34825e9,8 +34825eb,3 +34825ec,11 +34825ef,5 +34825f0,34 +34825f1,2 +34825f3,4 +34825f4,34 +34825f5,1 +34825f7,1 +34825f8,11 +34825f9,1 +34825fb,2 34825fc,34 -34825fd,1 -34825ff,40 -3482600,11 -3482601,1 -3482603,2 -3482604,34 -3482605,2 -3482607,60 -3482608,34 -3482609,2 -348260b,7b -348260c,3 -348260d,e0 -348260f,8 -3482614,90 -3482615,88 -3482617,a2 -3482618,31 -3482619,8 -348261b,30 -348261c,11 -348261f,5 -3482620,34 -3482621,2 -3482623,45 +34825fd,2 +34825ff,30 +3482600,34 +3482601,2 +3482603,31 +3482604,3 +3482605,e0 +3482607,8 +348260c,90 +348260d,88 +348260f,a2 +3482610,31 +3482611,8 +3482613,c0 +3482614,11 +3482617,5 +3482618,34 +3482619,2 +348261b,5 +348261c,34 +348261d,1 +348261f,40 +3482620,11 +3482621,1 +3482623,2 3482624,34 -3482625,9 -3482627,10 -3482628,11 -3482629,9 -348262b,2 -348262c,34 -348262d,2 -348262f,46 -3482630,34 -3482631,a2 -3482634,3 -3482635,e0 -3482637,8 -348263c,90 -348263d,88 -348263f,a2 -3482640,35 -3482641,8 -3482643,30 -3482644,a0 -3482645,88 -3482647,a2 -3482648,3 -3482649,e0 -348264b,8 -3482650,90 -3482651,88 -3482653,a2 -3482654,31 -3482655,8 -3482657,6 -3482658,11 -348265b,2 -348265c,34 -348265d,2 -348265f,37 -3482660,34 -3482661,2 -3482663,38 -3482664,3 -3482665,e0 -3482667,8 -348266c,90 -348266d,88 -348266f,a1 -3482670,31 -3482671,8 -3482673,20 -3482674,11 -3482677,2 -3482678,34 -3482679,2 -348267b,79 +3482625,2 +3482627,60 +3482628,34 +3482629,2 +348262b,7b +348262c,3 +348262d,e0 +348262f,8 +3482634,90 +3482635,88 +3482637,a2 +3482638,31 +3482639,8 +348263b,30 +348263c,11 +348263f,5 +3482640,34 +3482641,2 +3482643,45 +3482644,34 +3482645,9 +3482647,10 +3482648,11 +3482649,9 +348264b,2 +348264c,34 +348264d,2 +348264f,46 +3482650,34 +3482651,a2 +3482654,3 +3482655,e0 +3482657,8 +348265c,90 +348265d,88 +348265f,a2 +3482660,35 +3482661,8 +3482663,30 +3482664,a0 +3482665,88 +3482667,a2 +3482668,3 +3482669,e0 +348266b,8 +3482670,90 +3482671,88 +3482673,a2 +3482674,31 +3482675,8 +3482677,6 +3482678,11 +348267b,2 348267c,34 348267d,2 -348267f,7a -3482680,3 -3482681,e0 -3482683,8 -3482688,90 -3482689,88 -348268b,a1 -348268c,31 -348268d,8 -348268f,4 -3482690,11 -3482693,2 -3482694,34 -3482695,2 -3482697,77 +348267f,37 +3482680,34 +3482681,2 +3482683,38 +3482684,3 +3482685,e0 +3482687,8 +348268c,90 +348268d,88 +348268f,a1 +3482690,31 +3482691,8 +3482693,20 +3482694,11 +3482697,2 3482698,34 3482699,2 -348269b,78 -348269c,3 -348269d,e0 -348269f,8 -34826a4,90 -34826a5,88 -34826a7,32 -34826a8,11 -34826ab,2 -34826ac,34 -34826ad,2 -34826af,c0 -34826b0,34 -34826b1,2 -34826b3,c1 -34826b4,3 -34826b5,e0 -34826b7,8 -34826bc,90 -34826bd,88 -34826bf,a3 -34826c0,31 -34826c1,8 -34826c3,3 -34826c4,11 -34826c7,2 -34826c8,34 -34826c9,2 -34826cb,4d +348269b,79 +348269c,34 +348269d,2 +348269f,7a +34826a0,3 +34826a1,e0 +34826a3,8 +34826a8,90 +34826a9,88 +34826ab,a1 +34826ac,31 +34826ad,8 +34826af,4 +34826b0,11 +34826b3,2 +34826b4,34 +34826b5,2 +34826b7,77 +34826b8,34 +34826b9,2 +34826bb,78 +34826bc,3 +34826bd,e0 +34826bf,8 +34826c4,90 +34826c5,88 +34826c7,32 +34826c8,11 +34826cb,2 34826cc,34 -34826cd,a2 -34826d0,3 -34826d1,e0 -34826d3,8 -34826d8,90 -34826d9,88 -34826db,a3 -34826dc,31 -34826dd,8 -34826df,18 -34826e0,11 -34826e3,2 -34826e4,34 -34826e5,2 -34826e7,4d +34826cd,2 +34826cf,c0 +34826d0,34 +34826d1,2 +34826d3,c1 +34826d4,3 +34826d5,e0 +34826d7,8 +34826dc,90 +34826dd,88 +34826df,a3 +34826e0,31 +34826e1,8 +34826e3,3 +34826e4,11 +34826e7,2 34826e8,34 -34826e9,a2 -34826ec,3 -34826ed,e0 -34826ef,8 -34826f4,3 -34826f5,e0 -34826f7,8 -34826fc,34 +34826e9,2 +34826eb,4d +34826ec,34 +34826ed,a2 +34826f0,3 +34826f1,e0 +34826f3,8 +34826f8,90 +34826f9,88 +34826fb,a3 +34826fc,31 34826fd,8 -34826ff,1 -3482700,a0 -3482701,88 -3482703,3e -3482704,3 -3482705,e0 -3482707,8 -348270c,24 -348270d,88 -348270f,86 -3482710,24 -3482711,9 -3482712,ff -3482713,ff -3482714,25 -3482715,29 -3482717,1 -3482718,34 -3482719,1 -348271b,3 -348271d,29 -348271e,8 -348271f,2a -3482720,14 -3482721,20 -3482723,7 -3482728,1 -3482729,9 -348272a,50 -348272b,21 -348272c,91 -348272d,4b -3482730,34 -3482731,1 -3482733,ff -3482734,15 -3482735,61 -3482736,ff -3482737,f7 -348273c,a1 -348273d,45 +34826ff,18 +3482700,11 +3482703,2 +3482704,34 +3482705,2 +3482707,4d +3482708,34 +3482709,a2 +348270c,3 +348270d,e0 +348270f,8 +3482714,90 +3482715,88 +3482717,a2 +3482718,31 +3482719,8 +348271b,c0 +348271c,11 +348271f,2 +3482720,34 +3482721,2 +3482723,4d +3482724,34 +3482725,a2 +3482728,3 +3482729,e0 +348272b,8 +3482730,3 +3482731,e0 +3482733,8 +3482738,34 +3482739,8 +348273b,1 +348273c,a0 +348273d,88 +348273f,3e 3482740,3 3482741,e0 3482743,8 3482748,24 3482749,88 -348274b,a8 -348274c,1 -348274d,6 -348274e,40 -348274f,21 -3482750,91 -3482751,9 -3482754,1 -3482755,25 -3482756,48 -3482757,25 -3482758,a1 -3482759,9 -348275c,3 -348275d,e0 -348275f,8 -3482764,24 -3482765,88 -3482767,bc -3482768,1 -3482769,5 -348276a,40 -348276b,21 -348276c,81 -348276d,9 -3482770,5 -3482771,21 -3482773,2 -3482778,34 -3482779,9 -348277c,25 -348277d,29 -348277f,1 -3482780,a1 -3482781,9 -3482784,3 -3482785,e0 -3482787,8 -348278c,34 -348278d,8 -348278f,1 -3482790,a0 -3482791,88 -3482793,3d -3482794,34 -3482795,8 -3482797,14 -3482798,a0 -3482799,88 -348279b,cf -348279c,34 -348279d,8 -348279e,1 -348279f,40 -34827a0,a4 +348274b,86 +348274c,24 +348274d,9 +348274e,ff +348274f,ff +3482750,25 +3482751,29 +3482753,1 +3482754,34 +3482755,1 +3482757,3 +3482759,29 +348275a,8 +348275b,2a +348275c,14 +348275d,20 +348275f,7 +3482764,1 +3482765,9 +3482766,50 +3482767,21 +3482768,91 +3482769,4b +348276c,34 +348276d,1 +348276f,ff +3482770,15 +3482771,61 +3482772,ff +3482773,f7 +3482778,a1 +3482779,45 +348277c,3 +348277d,e0 +348277f,8 +3482784,24 +3482785,88 +3482787,a8 +3482788,1 +3482789,6 +348278a,40 +348278b,21 +348278c,91 +348278d,9 +3482790,1 +3482791,25 +3482792,48 +3482793,25 +3482794,a1 +3482795,9 +3482798,3 +3482799,e0 +348279b,8 +34827a0,24 34827a1,88 -34827a2,14 -34827a3,24 -34827a4,3 -34827a5,e0 -34827a7,8 -34827ac,34 -34827ad,8 -34827af,1 -34827b0,a0 -34827b1,88 -34827b3,32 -34827b4,a0 -34827b5,88 -34827b7,3a -34827b8,34 -34827b9,8 -34827bb,30 -34827bc,a4 -34827bd,88 -34827be,13 -34827bf,f4 -34827c0,a0 -34827c1,88 -34827c3,33 -34827c4,3 -34827c5,e0 -34827c7,8 -34827cc,34 -34827cd,8 -34827cf,2 -34827d0,a0 -34827d1,88 -34827d3,32 -34827d4,34 -34827d5,8 -34827d7,1 -34827d8,a0 -34827d9,88 -34827db,3a -34827dc,a0 +34827a3,bc +34827a4,1 +34827a5,5 +34827a6,40 +34827a7,21 +34827a8,81 +34827a9,9 +34827ac,5 +34827ad,21 +34827af,2 +34827b4,34 +34827b5,9 +34827b8,25 +34827b9,29 +34827bb,1 +34827bc,a1 +34827bd,9 +34827c0,3 +34827c1,e0 +34827c3,8 +34827c8,34 +34827c9,8 +34827cb,1 +34827cc,a0 +34827cd,88 +34827cf,3d +34827d0,34 +34827d1,8 +34827d3,14 +34827d4,a0 +34827d5,88 +34827d7,cf +34827d8,34 +34827d9,8 +34827da,1 +34827db,40 +34827dc,a4 34827dd,88 -34827df,3c -34827e0,34 -34827e1,8 -34827e3,60 -34827e4,a4 -34827e5,88 -34827e6,13 -34827e7,f4 -34827e8,a0 -34827e9,88 -34827eb,33 -34827ec,3 -34827ed,e0 -34827ef,8 -34827f4,90 -34827f5,88 -34827f7,7c -34827f8,34 -34827f9,1 -34827fb,ff -34827fc,11 -34827fd,1 -34827ff,6 -3482800,34 -3482801,2 -3482803,6b -3482804,90 -3482805,88 -3482807,94 -3482808,2d +34827de,14 +34827df,24 +34827e0,3 +34827e1,e0 +34827e3,8 +34827e8,34 +34827e9,8 +34827eb,1 +34827ec,a0 +34827ed,88 +34827ef,32 +34827f0,a0 +34827f1,88 +34827f3,3a +34827f4,34 +34827f5,8 +34827f7,30 +34827f8,a4 +34827f9,88 +34827fa,13 +34827fb,f4 +34827fc,a0 +34827fd,88 +34827ff,33 +3482800,3 +3482801,e0 +3482803,8 +3482808,34 3482809,8 -348280b,6 -348280c,11 -348280f,2 +348280b,2 +348280c,a0 +348280d,88 +348280f,32 3482810,34 -3482811,2 -3482813,6a -3482814,34 -3482815,2 -3482817,3 -3482818,3 -3482819,e0 -348281b,8 -3482820,90 +3482811,8 +3482813,1 +3482814,a0 +3482815,88 +3482817,3a +3482818,a0 +3482819,88 +348281b,3c +348281c,34 +348281d,8 +348281f,60 +3482820,a4 3482821,88 -3482823,7b -3482824,34 -3482825,1 -3482827,ff -3482828,11 -3482829,1 -348282b,2 -348282c,34 -348282d,a2 -3482830,34 -3482831,2 -3482833,c -3482834,3 -3482835,e0 -3482837,8 +3482822,13 +3482823,f4 +3482824,a0 +3482825,88 +3482827,33 +3482828,3 +3482829,e0 +348282b,8 +3482830,90 +3482831,88 +3482833,7c +3482834,34 +3482835,1 +3482837,ff +3482838,11 +3482839,1 +348283b,6 348283c,34 -348283d,8 -348283f,7 -3482840,a0 +348283d,2 +348283f,6b +3482840,90 3482841,88 -3482843,7b -3482844,3 -3482845,e0 -3482847,8 +3482843,94 +3482844,2d +3482845,8 +3482847,6 +3482848,11 +348284b,2 348284c,34 -348284d,8 -348284f,1 -3482851,a8 -3482852,40 -3482853,4 -3482854,8c -3482855,89 -3482857,a4 -3482858,1 -3482859,28 -348285a,48 -348285b,25 -348285c,ac -348285d,89 -348285f,a4 -3482860,3 -3482861,e0 -3482863,8 -3482868,30 -3482869,84 -348286b,ff -348286c,3c -348286d,8 -348286e,80 -348286f,12 -3482870,25 -3482871,8 -3482872,a5 -3482873,d0 -3482874,34 -3482875,1 -3482877,8c -3482878,10 -3482879,81 -348287b,16 -348287c,91 -348287d,2 -348287f,75 -3482880,34 -3482881,1 -3482883,8d -3482884,10 -3482885,81 -3482887,13 -3482888,91 -3482889,2 -348288b,75 -348288c,10 -348288d,80 -348288f,11 -3482890,91 -3482891,2 -3482893,74 -3482894,34 -3482895,1 -3482897,8a -3482898,10 -3482899,81 -348289b,e -348289c,91 -348289d,2 -348289f,74 -34828a0,34 -34828a1,1 -34828a3,8b -34828a4,10 -34828a5,81 -34828a7,b -34828a8,91 -34828a9,2 -34828ab,74 -34828ac,34 -34828ad,1 -34828af,58 -34828b0,10 -34828b1,81 -34828b3,8 -34828b4,34 -34828b5,2 -34828b8,34 -34828b9,1 -34828bb,78 -34828bc,10 -34828bd,81 -34828bf,5 -34828c0,34 -34828c1,2 -34828c4,34 -34828c5,1 -34828c7,79 +348284d,2 +348284f,6a +3482850,34 +3482851,2 +3482853,3 +3482854,3 +3482855,e0 +3482857,8 +348285c,90 +348285d,88 +348285f,7b +3482860,34 +3482861,1 +3482863,ff +3482864,11 +3482865,1 +3482867,2 +3482868,34 +3482869,a2 +348286c,34 +348286d,2 +348286f,c +3482870,3 +3482871,e0 +3482873,8 +3482878,34 +3482879,8 +348287b,7 +348287c,a0 +348287d,88 +348287f,7b +3482880,3 +3482881,e0 +3482883,8 +3482888,34 +3482889,8 +348288b,1 +348288d,a8 +348288e,40 +348288f,4 +3482890,8c +3482891,89 +3482893,a4 +3482894,1 +3482895,28 +3482896,48 +3482897,25 +3482898,ac +3482899,89 +348289b,a4 +348289c,3 +348289d,e0 +348289f,8 +34828a4,30 +34828a5,84 +34828a7,ff +34828a8,3c +34828a9,8 +34828aa,80 +34828ab,12 +34828ac,25 +34828ad,8 +34828ae,a5 +34828af,d0 +34828b0,34 +34828b1,1 +34828b3,8c +34828b4,10 +34828b5,81 +34828b7,16 +34828b8,91 +34828b9,2 +34828bb,75 +34828bc,34 +34828bd,1 +34828bf,8d +34828c0,10 +34828c1,81 +34828c3,13 +34828c4,91 +34828c5,2 +34828c7,75 34828c8,10 -34828c9,81 -34828cb,2 -34828cc,34 +34828c9,80 +34828cb,11 +34828cc,91 34828cd,2 +34828cf,74 34828d0,34 -34828d1,2 -34828d3,ff -34828d4,3 -34828d5,e0 -34828d7,8 -34828dc,27 -34828dd,bd -34828de,ff -34828df,e0 -34828e0,af -34828e1,bf -34828e3,10 -34828e4,af -34828e5,b0 -34828e7,14 -34828e8,c -34828e9,10 -34828ea,b -34828eb,13 -34828f0,4 -34828f1,41 -34828f3,2 -34828f8,34 -34828f9,2 -34828fb,5b -34828fd,40 -34828fe,20 -34828ff,21 -3482900,c -3482901,10 -3482902,b -3482903,84 -3482908,10 -3482909,60 -348290b,16 -348290c,af -348290d,a3 -348290f,1c -3482910,3c -3482911,8 -3482912,80 -3482913,40 -3482914,25 -3482915,8 -3482916,20 -3482918,85 -3482919,9 -348291b,2 -348291c,11 -348291d,20 -348291f,3 -3482920,34 -3482921,a -3482923,1 -3482924,10 -3482927,c -3482928,a5 -3482929,a -348292c,3c -348292d,4 -348292e,80 -348292f,12 -3482930,24 -3482931,84 -3482932,a5 -3482933,d0 -3482934,90 -3482935,65 -3482937,6 -3482938,90 -3482939,66 -348293b,7 -348293c,8c -348293d,69 -348293f,8 -3482940,1 -3482941,20 -3482942,f8 -3482943,9 -3482948,8f +34828d1,1 +34828d3,8a +34828d4,10 +34828d5,81 +34828d7,e +34828d8,91 +34828d9,2 +34828db,74 +34828dc,34 +34828dd,1 +34828df,8b +34828e0,10 +34828e1,81 +34828e3,b +34828e4,91 +34828e5,2 +34828e7,74 +34828e8,34 +34828e9,1 +34828eb,58 +34828ec,10 +34828ed,81 +34828ef,8 +34828f0,34 +34828f1,2 +34828f4,34 +34828f5,1 +34828f7,78 +34828f8,10 +34828f9,81 +34828fb,5 +34828fc,34 +34828fd,2 +3482900,34 +3482901,1 +3482903,79 +3482904,10 +3482905,81 +3482907,2 +3482908,34 +3482909,2 +348290c,34 +348290d,2 +348290f,ff +3482910,3 +3482911,e0 +3482913,8 +3482918,27 +3482919,bd +348291a,ff +348291b,e0 +348291c,af +348291d,bf +348291f,10 +3482920,af +3482921,b0 +3482923,14 +3482924,c +3482925,10 +3482926,b +3482927,22 +348292c,4 +348292d,41 +348292f,2 +3482934,34 +3482935,2 +3482937,5b +3482939,40 +348293a,20 +348293b,21 +348293c,c +348293d,10 +348293e,b +348293f,93 +3482944,10 +3482945,60 +3482947,16 +3482948,af 3482949,a3 348294b,1c -348294c,90 -348294d,65 -348294f,1 -3482950,c -3482951,1 -3482952,bf -3482953,73 -3482954,2 -3482955,20 -3482956,20 -3482957,21 -3482958,8f -3482959,a3 -348295b,1c -348295c,90 -348295d,65 -348295f,3 +348294c,3c +348294d,8 +348294e,80 +348294f,40 +3482950,25 +3482951,8 +3482952,20 +3482954,85 +3482955,9 +3482957,2 +3482958,11 +3482959,20 +348295b,3 +348295c,34 +348295d,a +348295f,1 3482960,10 -3482963,11 -3482964,3c -3482965,9 -3482966,80 -3482967,3b -3482968,25 -3482969,29 -348296a,9e -348296b,7e -348296c,34 -348296d,a -348296f,6 -3482971,4a -3482973,18 -3482976,50 -3482977,12 -3482978,1 -3482979,2a -348297a,80 -348297b,21 -348297c,82 -348297d,5 -3482980,3c -3482981,8 -3482982,80 -3482983,40 -3482984,25 -3482985,8 -3482986,20 -3482988,85 -3482989,9 -348298b,2 -348298c,11 -348298d,20 -348298f,3 -3482990,34 -3482991,a -3482993,1 -3482994,a5 -3482995,a -3482998,34 -3482999,5 -348299b,41 -348299c,c -348299d,1 -348299e,bf -348299f,73 -34829a0,2 -34829a1,20 -34829a2,20 -34829a3,21 -34829a4,92 -34829a5,5 -34829a7,3 -34829a8,2 -34829a9,20 -34829aa,20 -34829ab,21 -34829ac,c -34829ad,3 -34829ae,73 -34829af,85 -34829b2,30 -34829b3,21 -34829b4,8f -34829b5,bf -34829b7,10 -34829b8,8f -34829b9,b0 -34829bb,14 -34829bc,27 -34829bd,bd -34829bf,20 -34829c0,3 -34829c1,e0 -34829c3,8 -34829c8,8f -34829c9,a6 -34829cb,30 -34829cc,84 -34829cd,c5 -34829cf,4 -34829d0,8 -34829d1,10 -34829d2,a -34829d3,7a -34829d8,8f -34829d9,b9 -34829db,2c -34829dc,87 -34829dd,25 -34829df,4 -34829e0,8 -34829e1,10 -34829e2,a -34829e3,7a -34829e8,3c -34829e9,a -34829ea,80 -34829eb,40 -34829ec,25 -34829ed,4a -34829ee,20 -34829ef,8 -34829f0,8d -34829f1,4b -34829f3,c -34829f4,11 -34829f5,60 -34829f7,2 -34829fc,95 -34829fd,45 -34829ff,4 -3482a00,3c -3482a01,a -3482a02,80 -3482a03,1e -3482a04,25 -3482a05,4a -3482a06,89 -3482a07,84 -3482a08,a5 -3482a09,40 -3482a0c,3c -3482a0d,9 -3482a0e,80 -3482a0f,40 -3482a10,25 -3482a11,29 -3482a12,20 -3482a13,18 -3482a14,81 -3482a15,2a -3482a17,3 -3482a18,5 -3482a19,40 -3482a1b,b -3482a1c,1 -3482a1d,2a -3482a1e,48 -3482a1f,20 -3482a20,81 -3482a21,28 -3482a24,34 +3482963,c +3482964,a5 +3482965,a +3482968,3c +3482969,4 +348296a,80 +348296b,12 +348296c,24 +348296d,84 +348296e,a5 +348296f,d0 +3482970,90 +3482971,65 +3482973,6 +3482974,90 +3482975,66 +3482977,7 +3482978,8c +3482979,69 +348297b,8 +348297c,1 +348297d,20 +348297e,f8 +348297f,9 +3482984,8f +3482985,a3 +3482987,1c +3482988,90 +3482989,65 +348298b,1 +348298c,c +348298d,1 +348298e,bf +348298f,73 +3482990,2 +3482991,20 +3482992,20 +3482993,21 +3482994,8f +3482995,a3 +3482997,1c +3482998,90 +3482999,65 +348299b,3 +348299c,10 +348299f,11 +34829a0,3c +34829a1,9 +34829a2,80 +34829a3,3b +34829a4,25 +34829a5,29 +34829a6,9e +34829a7,7e +34829a8,34 +34829a9,a +34829ab,6 +34829ad,4a +34829af,18 +34829b2,50 +34829b3,12 +34829b4,1 +34829b5,2a +34829b6,80 +34829b7,21 +34829b8,82 +34829b9,5 +34829bc,3c +34829bd,8 +34829be,80 +34829bf,40 +34829c0,25 +34829c1,8 +34829c2,20 +34829c4,85 +34829c5,9 +34829c7,2 +34829c8,11 +34829c9,20 +34829cb,3 +34829cc,34 +34829cd,a +34829cf,1 +34829d0,a5 +34829d1,a +34829d4,34 +34829d5,5 +34829d7,41 +34829d8,c +34829d9,1 +34829da,bf +34829db,73 +34829dc,2 +34829dd,20 +34829de,20 +34829df,21 +34829e0,92 +34829e1,5 +34829e3,3 +34829e4,2 +34829e5,20 +34829e6,20 +34829e7,21 +34829e8,c +34829e9,3 +34829ea,73 +34829eb,85 +34829ee,30 +34829ef,21 +34829f0,8f +34829f1,bf +34829f3,10 +34829f4,8f +34829f5,b0 +34829f7,14 +34829f8,27 +34829f9,bd +34829fb,20 +34829fc,3 +34829fd,e0 +34829ff,8 +3482a04,8f +3482a05,a6 +3482a07,30 +3482a08,84 +3482a09,c5 +3482a0b,4 +3482a0c,8 +3482a0d,10 +3482a0e,a +3482a0f,89 +3482a14,8f +3482a15,b9 +3482a17,2c +3482a18,87 +3482a19,25 +3482a1b,4 +3482a1c,8 +3482a1d,10 +3482a1e,a +3482a1f,89 +3482a24,3c 3482a25,a -3482a27,7f -3482a28,15 -3482a29,a -3482a2b,6 -3482a30,3c -3482a31,a -3482a32,80 -3482a33,12 -3482a34,25 -3482a35,4a -3482a36,a5 -3482a37,d0 -3482a38,85 -3482a39,48 -3482a3b,90 -3482a3c,21 -3482a3d,8 -3482a3f,1 -3482a40,a5 -3482a41,48 -3482a43,90 -3482a44,a1 -3482a45,20 -3482a48,3 -3482a49,e0 -3482a4b,8 -3482a50,3c -3482a51,8 -3482a52,80 -3482a53,40 -3482a54,25 -3482a55,8 -3482a56,20 -3482a57,8 -3482a58,8d -3482a59,9 -3482a5b,c -3482a5c,11 -3482a5d,20 -3482a5f,2 -3482a64,81 -3482a65,3 -3482a67,2 -3482a69,3 -3482a6a,f -3482a6b,c3 -3482a6d,61 -3482a6e,40 -3482a6f,26 -3482a70,1 -3482a71,1 -3482a72,40 -3482a73,23 -3482a74,a0 -3482a75,88 -3482a76,8 -3482a77,52 -3482a78,3 -3482a79,e0 -3482a7b,8 -3482a80,90 -3482a81,45 -3482a83,3 -3482a84,3c -3482a85,8 -3482a86,80 -3482a87,40 -3482a88,25 -3482a89,8 -3482a8a,20 -3482a8b,8 -3482a8c,8d -3482a8d,9 -3482a8f,c -3482a90,11 -3482a91,20 -3482a93,2 -3482a98,91 -3482a99,5 -3482a9b,3 -3482a9c,3 -3482a9d,e0 -3482a9f,8 -3482aa4,8f -3482aa5,a2 -3482aa7,24 -3482aa8,90 -3482aa9,45 -3482aac,3c -3482aad,8 -3482aae,80 -3482aaf,40 -3482ab0,25 -3482ab1,8 -3482ab2,20 -3482ab4,85 -3482ab5,9 -3482ab7,2 -3482ab8,11 -3482ab9,20 -3482abb,4 -3482abc,34 -3482abd,a -3482abf,1 -3482ac0,a5 -3482ac1,a -3482ac4,10 -3482ac7,18 -3482ac8,34 -3482ac9,5 -3482acb,41 -3482acc,3c -3482acd,8 -3482ace,80 -3482acf,40 -3482ad0,25 -3482ad1,8 -3482ad2,20 -3482ad3,8 -3482ad4,8d -3482ad5,9 -3482ad7,c -3482ad8,11 -3482ad9,20 -3482adb,13 -3482ae0,91 -3482ae1,5 -3482ae3,1 -3482ae4,af -3482ae5,a4 -3482ae8,af -3482ae9,a5 -3482aeb,4 -3482aec,af -3482aed,a6 -3482aef,8 -3482af0,27 -3482af1,bd -3482af2,ff -3482af3,e8 -3482af4,af -3482af5,bf -3482af7,10 -3482af8,3c -3482af9,4 -3482afa,80 -3482afb,12 -3482afc,24 -3482afd,84 -3482afe,a5 -3482aff,d0 -3482b00,91 -3482b01,5 -3482b03,6 -3482b04,91 -3482b05,6 -3482b07,7 -3482b08,8d -3482b09,9 -3482b0b,8 -3482b0c,1 -3482b0d,20 -3482b0e,f8 -3482b0f,9 -3482b14,8f -3482b15,bf -3482b17,10 -3482b18,27 -3482b19,bd -3482b1b,18 -3482b1c,8f -3482b1d,a4 -3482b20,8f -3482b21,a5 -3482b23,4 -3482b24,8f -3482b25,a6 -3482b27,8 -3482b28,3 -3482b29,e0 +3482a26,80 +3482a27,40 +3482a28,25 +3482a29,4a +3482a2a,20 +3482a2b,8 +3482a2c,8d +3482a2d,4b +3482a2f,c +3482a30,11 +3482a31,60 +3482a33,2 +3482a38,95 +3482a39,45 +3482a3b,4 +3482a3c,3c +3482a3d,a +3482a3e,80 +3482a3f,1e +3482a40,25 +3482a41,4a +3482a42,89 +3482a43,84 +3482a44,a5 +3482a45,40 +3482a48,3c +3482a49,9 +3482a4a,80 +3482a4b,40 +3482a4c,25 +3482a4d,29 +3482a4e,20 +3482a4f,18 +3482a50,81 +3482a51,2a +3482a53,3 +3482a54,5 +3482a55,40 +3482a57,b +3482a58,1 +3482a59,2a +3482a5a,48 +3482a5b,20 +3482a5c,81 +3482a5d,28 +3482a60,34 +3482a61,a +3482a63,7f +3482a64,15 +3482a65,a +3482a67,6 +3482a6c,3c +3482a6d,a +3482a6e,80 +3482a6f,12 +3482a70,25 +3482a71,4a +3482a72,a5 +3482a73,d0 +3482a74,85 +3482a75,48 +3482a77,90 +3482a78,21 +3482a79,8 +3482a7b,1 +3482a7c,a5 +3482a7d,48 +3482a7f,90 +3482a80,a1 +3482a81,20 +3482a84,3 +3482a85,e0 +3482a87,8 +3482a8c,3c +3482a8d,8 +3482a8e,80 +3482a8f,40 +3482a90,25 +3482a91,8 +3482a92,20 +3482a93,8 +3482a94,8d +3482a95,9 +3482a97,c +3482a98,11 +3482a99,20 +3482a9b,2 +3482aa0,81 +3482aa1,3 +3482aa3,2 +3482aa5,3 +3482aa6,f +3482aa7,c3 +3482aa9,61 +3482aaa,40 +3482aab,26 +3482aac,1 +3482aad,1 +3482aae,40 +3482aaf,23 +3482ab0,a0 +3482ab1,88 +3482ab2,8 +3482ab3,52 +3482ab4,3 +3482ab5,e0 +3482ab7,8 +3482abc,90 +3482abd,45 +3482abf,3 +3482ac0,3c +3482ac1,8 +3482ac2,80 +3482ac3,40 +3482ac4,25 +3482ac5,8 +3482ac6,20 +3482ac7,8 +3482ac8,8d +3482ac9,9 +3482acb,c +3482acc,11 +3482acd,20 +3482acf,2 +3482ad4,91 +3482ad5,5 +3482ad7,3 +3482ad8,3 +3482ad9,e0 +3482adb,8 +3482ae0,8f +3482ae1,a2 +3482ae3,24 +3482ae4,90 +3482ae5,45 +3482ae8,3c +3482ae9,8 +3482aea,80 +3482aeb,40 +3482aec,25 +3482aed,8 +3482aee,20 +3482af0,85 +3482af1,9 +3482af3,2 +3482af4,11 +3482af5,20 +3482af7,4 +3482af8,34 +3482af9,a +3482afb,1 +3482afc,a5 +3482afd,a +3482b00,10 +3482b03,18 +3482b04,34 +3482b05,5 +3482b07,41 +3482b08,3c +3482b09,8 +3482b0a,80 +3482b0b,40 +3482b0c,25 +3482b0d,8 +3482b0e,20 +3482b0f,8 +3482b10,8d +3482b11,9 +3482b13,c +3482b14,11 +3482b15,20 +3482b17,13 +3482b1c,91 +3482b1d,5 +3482b1f,1 +3482b20,af +3482b21,a4 +3482b24,af +3482b25,a5 +3482b27,4 +3482b28,af +3482b29,a6 3482b2b,8 -3482b30,a0 -3482b31,e6 -3482b32,4 -3482b33,24 -3482b34,27 -3482b35,bd -3482b36,ff -3482b37,e0 -3482b38,af -3482b39,a2 -3482b3b,10 -3482b3c,af -3482b3d,a3 -3482b3f,14 -3482b40,af -3482b41,bf -3482b43,18 -3482b44,c -3482b45,10 -3482b46,a -3482b47,d9 -3482b4c,8f -3482b4d,a2 -3482b4f,10 +3482b2c,27 +3482b2d,bd +3482b2e,ff +3482b2f,e8 +3482b30,af +3482b31,bf +3482b33,10 +3482b34,3c +3482b35,4 +3482b36,80 +3482b37,12 +3482b38,24 +3482b39,84 +3482b3a,a5 +3482b3b,d0 +3482b3c,91 +3482b3d,5 +3482b3f,6 +3482b40,91 +3482b41,6 +3482b43,7 +3482b44,8d +3482b45,9 +3482b47,8 +3482b48,1 +3482b49,20 +3482b4a,f8 +3482b4b,9 3482b50,8f -3482b51,a3 -3482b53,14 -3482b54,8f -3482b55,bf +3482b51,bf +3482b53,10 +3482b54,27 +3482b55,bd 3482b57,18 -3482b58,27 -3482b59,bd -3482b5b,20 -3482b5c,3 -3482b5d,e0 -3482b5f,8 -3482b64,27 -3482b65,bd -3482b66,ff -3482b67,e8 -3482b68,af -3482b69,bf -3482b6b,10 -3482b6c,3c -3482b6d,8 -3482b6e,80 -3482b6f,40 -3482b70,25 -3482b71,8 -3482b72,20 -3482b73,8 -3482b74,ad -3482b78,ad -3482b7b,4 -3482b7c,ad -3482b7f,8 -3482b80,ad -3482b83,c -3482b84,3c -3482b85,8 -3482b86,80 -3482b87,1e -3482b88,25 -3482b89,8 -3482b8a,aa -3482b8b,30 -3482b8c,81 -3482b8d,9 -3482b8e,4 -3482b8f,24 -3482b90,11 -3482b91,20 -3482b93,2a -3482b99,9 -3482b9a,f -3482b9b,c3 -3482b9c,1 -3482b9d,21 -3482b9e,20 -3482b9f,26 -3482ba1,81 -3482ba2,20 -3482ba3,23 -3482ba4,8d -3482ba5,5 -3482ba6,4 -3482ba7,28 -3482ba8,c -3482ba9,10 -3482baa,b -3482bab,13 -3482bb0,4 -3482bb1,40 -3482bb3,22 -3482bb8,34 -3482bb9,44 -3482bbc,c -3482bbd,10 -3482bbe,b -3482bbf,84 -3482bc4,10 -3482bc5,60 -3482bc7,c -3482bcc,3c -3482bcd,8 -3482bce,80 -3482bcf,40 -3482bd0,25 -3482bd1,8 -3482bd2,20 -3482bd3,8 -3482bd4,8c -3482bd5,69 -3482bd8,ad -3482bd9,9 -3482bdc,8c -3482bdd,69 -3482bdf,4 -3482be0,ad -3482be1,9 -3482be3,4 -3482be4,8c -3482be5,69 -3482be7,8 -3482be8,ad -3482be9,9 -3482beb,8 -3482bec,34 -3482bed,9 -3482bef,1 -3482bf0,ad -3482bf1,9 -3482bf3,c -3482bf4,90 -3482bf5,62 -3482bf8,3c -3482bf9,8 -3482bfa,80 -3482bfb,1e -3482bfc,25 -3482bfd,8 -3482bfe,aa -3482bff,30 -3482c00,8d -3482c01,9 -3482c02,4 -3482c03,28 -3482c04,95 -3482c05,2a -3482c08,34 -3482c09,1 -3482c0b,a -3482c0c,15 -3482c0d,41 -3482c0f,6 -3482c14,95 -3482c15,2a -3482c17,1c -3482c18,31 -3482c19,4a -3482c1a,f0 -3482c1b,1f -3482c1d,2 -3482c1e,59 -3482c1f,40 -3482c20,1 -3482c21,4b -3482c22,50 -3482c23,25 -3482c24,a5 -3482c25,2a -3482c27,1c -3482c28,81 +3482b58,8f +3482b59,a4 +3482b5c,8f +3482b5d,a5 +3482b5f,4 +3482b60,8f +3482b61,a6 +3482b63,8 +3482b64,3 +3482b65,e0 +3482b67,8 +3482b6c,a0 +3482b6d,e6 +3482b6e,4 +3482b6f,24 +3482b70,27 +3482b71,bd +3482b72,ff +3482b73,e0 +3482b74,af +3482b75,a2 +3482b77,10 +3482b78,af +3482b79,a3 +3482b7b,14 +3482b7c,af +3482b7d,bf +3482b7f,18 +3482b80,c +3482b81,10 +3482b82,a +3482b83,e8 +3482b88,8f +3482b89,a2 +3482b8b,10 +3482b8c,8f +3482b8d,a3 +3482b8f,14 +3482b90,8f +3482b91,bf +3482b93,18 +3482b94,27 +3482b95,bd +3482b97,20 +3482b98,3 +3482b99,e0 +3482b9b,8 +3482ba0,27 +3482ba1,bd +3482ba2,ff +3482ba3,e8 +3482ba4,af +3482ba5,bf +3482ba7,10 +3482ba8,3c +3482ba9,8 +3482baa,80 +3482bab,40 +3482bac,25 +3482bad,8 +3482bae,20 +3482baf,8 +3482bb0,ad +3482bb4,ad +3482bb7,4 +3482bb8,ad +3482bbb,8 +3482bbc,ad +3482bbf,c +3482bc0,3c +3482bc1,8 +3482bc2,80 +3482bc3,1e +3482bc4,25 +3482bc5,8 +3482bc6,aa +3482bc7,30 +3482bc8,81 +3482bc9,9 +3482bca,4 +3482bcb,24 +3482bcc,11 +3482bcd,20 +3482bcf,2a +3482bd5,9 +3482bd6,f +3482bd7,c3 +3482bd8,1 +3482bd9,21 +3482bda,20 +3482bdb,26 +3482bdd,81 +3482bde,20 +3482bdf,23 +3482be0,8d +3482be1,5 +3482be2,4 +3482be3,28 +3482be4,c +3482be5,10 +3482be6,b +3482be7,22 +3482bec,4 +3482bed,40 +3482bef,22 +3482bf4,34 +3482bf5,44 +3482bf8,c +3482bf9,10 +3482bfa,b +3482bfb,93 +3482c00,10 +3482c01,60 +3482c03,c +3482c08,3c +3482c09,8 +3482c0a,80 +3482c0b,40 +3482c0c,25 +3482c0d,8 +3482c0e,20 +3482c0f,8 +3482c10,8c +3482c11,69 +3482c14,ad +3482c15,9 +3482c18,8c +3482c19,69 +3482c1b,4 +3482c1c,ad +3482c1d,9 +3482c1f,4 +3482c20,8c +3482c21,69 +3482c23,8 +3482c24,ad +3482c25,9 +3482c27,8 +3482c28,34 3482c29,9 -3482c2a,4 -3482c2b,24 -3482c2c,5 -3482c2d,21 -3482c2f,2 -3482c35,2 -3482c36,10 -3482c37,23 -3482c38,a1 -3482c39,2 -3482c3a,4 -3482c3b,24 -3482c3c,8f -3482c3d,bf -3482c3f,10 -3482c40,27 -3482c41,bd -3482c43,18 -3482c44,3 -3482c45,e0 -3482c47,8 -3482c4c,27 -3482c4d,bd -3482c4e,ff -3482c4f,e8 -3482c50,af -3482c51,bf -3482c53,10 -3482c54,c -3482c55,10 -3482c56,b -3482c57,21 -3482c5c,24 -3482c5d,1 -3482c5e,ff -3482c5f,ff -3482c60,10 -3482c61,41 -3482c63,4 -3482c68,34 -3482c69,44 -3482c6c,c -3482c6d,10 -3482c6e,b -3482c6f,5f -3482c74,8f -3482c75,bf -3482c77,10 -3482c78,27 -3482c79,bd -3482c7b,18 -3482c7c,3 -3482c7d,e0 -3482c7f,8 -3482c84,3c -3482c85,2 -3482c86,80 -3482c87,1d -3482c88,24 -3482c89,42 -3482c8a,84 -3482c8b,a0 -3482c8c,94 -3482c8d,42 -3482c8f,a4 -3482c90,34 -3482c91,8 -3482c94,34 -3482c95,89 -3482c98,94 -3482c99,aa -3482c9c,34 -3482c9d,1 -3482c9e,1 -3482c9f,9c -3482ca0,15 -3482ca1,41 -3482ca3,8 -3482ca8,34 -3482ca9,8 -3482cab,3 -3482cac,94 -3482cad,ab -3482caf,1c -3482cb0,31 -3482cb1,69 -3482cb3,ff -3482cb4,31 -3482cb5,62 -3482cb6,1f -3482cb9,2 -3482cba,12 -3482cbb,2 -3482cbc,10 -3482cbf,1f -3482cc4,34 -3482cc5,1 -3482cc7,a -3482cc8,15 -3482cc9,41 -3482ccb,e -3482cd0,94 -3482cd1,ab -3482cd3,1c -3482cd4,34 -3482cd5,1 -3482cd7,10 -3482cd8,14 -3482cd9,41 -3482cdb,8 -3482ce0,31 -3482ce1,6c -3482ce2,f -3482ce3,e0 +3482c2b,1 +3482c2c,ad +3482c2d,9 +3482c2f,c +3482c30,90 +3482c31,62 +3482c34,3c +3482c35,8 +3482c36,80 +3482c37,1e +3482c38,25 +3482c39,8 +3482c3a,aa +3482c3b,30 +3482c3c,8d +3482c3d,9 +3482c3e,4 +3482c3f,28 +3482c40,95 +3482c41,2a +3482c44,34 +3482c45,1 +3482c47,a +3482c48,15 +3482c49,41 +3482c4b,6 +3482c50,95 +3482c51,2a +3482c53,1c +3482c54,31 +3482c55,4a +3482c56,f0 +3482c57,1f +3482c59,2 +3482c5a,59 +3482c5b,40 +3482c5c,1 +3482c5d,4b +3482c5e,50 +3482c5f,25 +3482c60,a5 +3482c61,2a +3482c63,1c +3482c64,81 +3482c65,9 +3482c66,4 +3482c67,24 +3482c68,5 +3482c69,21 +3482c6b,2 +3482c71,2 +3482c72,10 +3482c73,23 +3482c74,a1 +3482c75,2 +3482c76,4 +3482c77,24 +3482c78,8f +3482c79,bf +3482c7b,10 +3482c7c,27 +3482c7d,bd +3482c7f,18 +3482c80,3 +3482c81,e0 +3482c83,8 +3482c88,27 +3482c89,bd +3482c8a,ff +3482c8b,e8 +3482c8c,af +3482c8d,bf +3482c8f,10 +3482c90,c +3482c91,10 +3482c92,b +3482c93,30 +3482c98,24 +3482c99,1 +3482c9a,ff +3482c9b,ff +3482c9c,10 +3482c9d,41 +3482c9f,4 +3482ca4,34 +3482ca5,44 +3482ca8,c +3482ca9,10 +3482caa,b +3482cab,6e +3482cb0,8f +3482cb1,bf +3482cb3,10 +3482cb4,27 +3482cb5,bd +3482cb7,18 +3482cb8,3 +3482cb9,e0 +3482cbb,8 +3482cc0,3c +3482cc1,2 +3482cc2,80 +3482cc3,1d +3482cc4,24 +3482cc5,42 +3482cc6,84 +3482cc7,a0 +3482cc8,94 +3482cc9,42 +3482ccb,a4 +3482ccc,34 +3482ccd,8 +3482cd0,34 +3482cd1,89 +3482cd4,94 +3482cd5,aa +3482cd8,34 +3482cd9,1 +3482cda,1 +3482cdb,9c +3482cdc,15 +3482cdd,41 +3482cdf,8 3482ce4,34 -3482ce5,1 -3482ce6,e -3482ce7,a0 -3482ce8,15 -3482ce9,81 -3482ceb,4 -3482cf0,24 -3482cf1,2 -3482cf2,ff -3482cf3,ff -3482cf4,10 -3482cf7,1f -3482cfc,34 -3482cfd,8 -3482cff,1 -3482d00,31 -3482d01,69 -3482d03,1f -3482d04,34 -3482d05,1 -3482d07,15 -3482d08,15 -3482d09,41 -3482d0b,c +3482ce5,8 +3482ce7,3 +3482ce8,94 +3482ce9,ab +3482ceb,1c +3482cec,31 +3482ced,69 +3482cef,ff +3482cf0,31 +3482cf1,62 +3482cf2,1f +3482cf5,2 +3482cf6,12 +3482cf7,2 +3482cf8,10 +3482cfb,1f +3482d00,34 +3482d01,1 +3482d03,a +3482d04,15 +3482d05,41 +3482d07,e +3482d0c,94 +3482d0d,ab +3482d0f,1c 3482d10,34 3482d11,1 -3482d13,3e -3482d14,10 -3482d15,81 -3482d17,7 -3482d1c,34 -3482d1d,1 -3482d1f,42 -3482d20,10 -3482d21,81 -3482d23,4 -3482d28,24 -3482d29,2 -3482d2a,ff -3482d2b,ff -3482d2c,10 -3482d2f,11 -3482d34,34 -3482d35,8 -3482d37,2 -3482d38,90 -3482d39,a9 -3482d3a,1 -3482d3b,41 -3482d3c,34 -3482d3d,1 -3482d3e,1 -3482d3f,1a -3482d40,15 -3482d41,41 -3482d43,8 -3482d48,34 -3482d49,1 -3482d4b,3e -3482d4c,14 -3482d4d,41 -3482d4f,5 -3482d54,34 -3482d55,8 -3482d57,4 -3482d58,3c -3482d59,b -3482d5a,80 -3482d5b,12 -3482d5c,25 -3482d5d,6b -3482d5e,a5 -3482d5f,d0 -3482d60,81 -3482d61,62 -3482d62,13 -3482d63,97 +3482d13,10 +3482d14,14 +3482d15,41 +3482d17,8 +3482d1c,31 +3482d1d,6c +3482d1e,f +3482d1f,e0 +3482d20,34 +3482d21,1 +3482d22,e +3482d23,a0 +3482d24,15 +3482d25,81 +3482d27,4 +3482d2c,24 +3482d2d,2 +3482d2e,ff +3482d2f,ff +3482d30,10 +3482d33,1f +3482d38,34 +3482d39,8 +3482d3b,1 +3482d3c,31 +3482d3d,69 +3482d3f,1f +3482d40,34 +3482d41,1 +3482d43,15 +3482d44,15 +3482d45,41 +3482d47,c +3482d4c,34 +3482d4d,1 +3482d4f,3e +3482d50,10 +3482d51,81 +3482d53,7 +3482d58,34 +3482d59,1 +3482d5b,42 +3482d5c,10 +3482d5d,81 +3482d5f,4 +3482d64,24 3482d65,2 -3482d66,12 -3482d69,48 -3482d6a,10 -3482d6b,25 -3482d6d,2 -3482d6e,12 -3482d71,49 -3482d72,10 -3482d73,25 -3482d74,3 -3482d75,e0 -3482d77,8 -3482d7c,24 -3482d7d,2 -3482d7e,ff -3482d7f,ff -3482d80,3c -3482d81,8 -3482d82,80 -3482d83,40 -3482d84,25 -3482d85,8 -3482d86,1c -3482d88,81 -3482d89,9 -3482d8c,3c -3482d8d,8 -3482d8e,80 -3482d8f,12 -3482d90,25 +3482d66,ff +3482d67,ff +3482d68,10 +3482d6b,11 +3482d70,34 +3482d71,8 +3482d73,2 +3482d74,90 +3482d75,a9 +3482d76,1 +3482d77,41 +3482d78,34 +3482d79,1 +3482d7a,1 +3482d7b,1a +3482d7c,15 +3482d7d,41 +3482d7f,8 +3482d84,34 +3482d85,1 +3482d87,3e +3482d88,14 +3482d89,41 +3482d8b,5 +3482d90,34 3482d91,8 -3482d92,a5 -3482d93,d0 -3482d94,a5 -3482d95,9 -3482d96,14 -3482d97,6 -3482d98,3c -3482d99,8 -3482d9a,80 -3482d9b,40 -3482d9c,25 -3482d9d,8 -3482d9e,f -3482d9f,fc -3482da0,25 -3482da1,8 -3482da3,4 -3482da4,8d -3482da5,9 -3482da8,11 -3482da9,20 -3482dab,17 -3482db1,9 -3482db2,52 -3482db3,2 -3482db4,31 -3482db5,4b -3482db6,f8 -3482db9,b -3482dba,5a -3482dbb,c2 +3482d93,4 +3482d94,3c +3482d95,b +3482d96,80 +3482d97,12 +3482d98,25 +3482d99,6b +3482d9a,a5 +3482d9b,d0 +3482d9c,81 +3482d9d,62 +3482d9e,13 +3482d9f,97 +3482da1,2 +3482da2,12 +3482da5,48 +3482da6,10 +3482da7,25 +3482da9,2 +3482daa,12 +3482dad,49 +3482dae,10 +3482daf,25 +3482db0,3 +3482db1,e0 +3482db3,8 +3482db8,24 +3482db9,2 +3482dba,ff +3482dbb,ff 3482dbc,3c -3482dbd,c -3482dbe,ff -3482dbf,ff -3482dc0,35 -3482dc1,8c -3482dc2,7 -3482dc3,ff -3482dc4,1 -3482dc5,4c -3482dc6,50 -3482dc7,24 -3482dc8,15 -3482dc9,44 -3482dca,ff -3482dcb,f5 -3482dd0,31 -3482dd1,22 -3482dd3,ff +3482dbd,8 +3482dbe,80 +3482dbf,40 +3482dc0,25 +3482dc1,8 +3482dc2,1c +3482dc4,81 +3482dc5,9 +3482dc8,3c +3482dc9,8 +3482dca,80 +3482dcb,12 +3482dcc,25 +3482dcd,8 +3482dce,a5 +3482dcf,d0 +3482dd0,a5 +3482dd1,9 +3482dd2,14 +3482dd3,6 3482dd4,3c 3482dd5,8 3482dd6,80 -3482dd7,12 +3482dd7,40 3482dd8,25 3482dd9,8 -3482dda,a5 -3482ddb,d0 -3482ddc,a5 -3482ddd,b -3482dde,14 -3482ddf,6 -3482de0,3c +3482dda,f +3482ddb,fc +3482ddc,25 +3482ddd,8 +3482ddf,4 +3482de0,8d 3482de1,9 -3482de2,80 -3482de3,40 -3482de4,25 -3482de5,29 -3482de6,20 -3482de8,3c -3482de9,c -3482dea,80 -3482deb,40 -3482dec,25 -3482ded,8c -3482dee,1c -3482df0,81 -3482df1,8c -3482df4,11 -3482df5,6c -3482df7,4 -3482df8,a5 -3482df9,20 -3482dfb,2 -3482dfc,a1 -3482dfd,2b -3482dff,2 -3482e00,a1 -3482e01,22 -3482e03,3 -3482e04,ad -3482e05,24 -3482e07,4 -3482e08,3 -3482e09,e0 -3482e0b,8 -3482e10,27 -3482e11,bd -3482e12,ff -3482e13,e0 -3482e14,af -3482e15,b0 -3482e17,10 -3482e18,af -3482e19,b1 -3482e1b,14 -3482e1c,af -3482e1d,bf -3482e1f,18 -3482e20,34 -3482e21,82 -3482e24,34 -3482e25,50 -3482e28,26 -3482e29,8 -3482e2a,ff -3482e2b,80 -3482e2c,5 -3482e2f,12 -3482e34,3c -3482e35,11 -3482e36,80 -3482e37,40 -3482e38,26 -3482e39,31 -3482e3a,20 -3482e3b,50 -3482e3c,34 -3482e3d,9 -3482e3f,10 -3482e40,1 -3482e41,9 -3482e43,18 -3482e46,40 -3482e47,12 -3482e48,2 -3482e49,28 -3482e4a,88 -3482e4b,21 -3482e4c,3c -3482e4d,4 -3482e4e,80 -3482e4f,12 -3482e50,24 -3482e51,84 -3482e52,a5 -3482e53,d0 -3482e54,36 -3482e55,5 -3482e58,8e -3482e59,28 -3482e5b,c -3482e5c,1 -3482e5e,f8 -3482e5f,9 -3482e64,14 -3482e65,50 +3482de4,11 +3482de5,20 +3482de7,17 +3482ded,9 +3482dee,52 +3482def,2 +3482df0,31 +3482df1,4b +3482df2,f8 +3482df5,b +3482df6,5a +3482df7,c2 +3482df8,3c +3482df9,c +3482dfa,ff +3482dfb,ff +3482dfc,35 +3482dfd,8c +3482dfe,7 +3482dff,ff +3482e00,1 +3482e01,4c +3482e02,50 +3482e03,24 +3482e04,15 +3482e05,44 +3482e06,ff +3482e07,f5 +3482e0c,31 +3482e0d,22 +3482e0f,ff +3482e10,3c +3482e11,8 +3482e12,80 +3482e13,12 +3482e14,25 +3482e15,8 +3482e16,a5 +3482e17,d0 +3482e18,a5 +3482e19,b +3482e1a,14 +3482e1b,6 +3482e1c,3c +3482e1d,9 +3482e1e,80 +3482e1f,40 +3482e20,25 +3482e21,29 +3482e22,20 +3482e24,3c +3482e25,c +3482e26,80 +3482e27,40 +3482e28,25 +3482e29,8c +3482e2a,1c +3482e2c,81 +3482e2d,8c +3482e30,11 +3482e31,6c +3482e33,4 +3482e34,a5 +3482e35,20 +3482e37,2 +3482e38,a1 +3482e39,2b +3482e3b,2 +3482e3c,a1 +3482e3d,22 +3482e3f,3 +3482e40,ad +3482e41,24 +3482e43,4 +3482e44,3 +3482e45,e0 +3482e47,8 +3482e4c,27 +3482e4d,bd +3482e4e,ff +3482e4f,e0 +3482e50,af +3482e51,b0 +3482e53,10 +3482e54,af +3482e55,b1 +3482e57,14 +3482e58,af +3482e59,bf +3482e5b,18 +3482e5c,34 +3482e5d,82 +3482e60,34 +3482e61,50 +3482e64,26 +3482e65,8 3482e66,ff -3482e67,ef -3482e6c,36 -3482e6d,23 -3482e70,10 -3482e73,2 +3482e67,80 +3482e68,5 +3482e6b,12 +3482e70,3c +3482e71,11 +3482e72,80 +3482e73,40 +3482e74,26 +3482e75,31 +3482e76,20 +3482e77,50 3482e78,34 -3482e79,3 -3482e7c,8f -3482e7d,b0 -3482e7f,10 -3482e80,8f -3482e81,b1 -3482e83,14 -3482e84,8f -3482e85,bf -3482e87,18 -3482e88,27 -3482e89,bd -3482e8b,20 -3482e8c,3 -3482e8d,e0 -3482e8f,8 -3482e94,8c -3482e95,88 -3482e96,1d -3482e97,2c -3482e98,34 -3482e99,9 -3482e9b,1 -3482e9d,9 -3482e9e,4e -3482ea0,1 -3482ea1,9 -3482ea2,10 -3482ea3,24 -3482ea4,10 -3482ea5,40 -3482ea7,24 -3482eac,94 -3482ead,ca -3482eae,2 -3482eaf,dc -3482eb0,3c -3482eb1,b -3482eb2,80 -3482eb3,12 -3482eb4,25 -3482eb5,6b -3482eb6,a5 -3482eb7,d0 -3482eb8,94 -3482eb9,8c -3482ebb,a4 -3482ebc,34 -3482ebd,1 -3482ebf,3d -3482ec0,11 -3482ec1,81 -3482ec3,a -3482ec9,8a -3482eca,60 -3482ecb,21 -3482ecc,91 -3482ecd,8d -3482ece,1d -3482ecf,28 -3482ed0,15 -3482ed1,a0 -3482ed3,19 -3482ed8,34 -3482ed9,d -3482edb,1 -3482edc,a1 -3482edd,8d -3482ede,1d -3482edf,28 -3482ee0,25 -3482ee1,4a -3482ee3,3 -3482ee4,10 -3482ee7,9 -3482eec,34 -3482eed,c -3482eef,1 -3482ef0,1 -3482ef1,4c -3482ef2,60 -3482ef3,4 -3482ef4,91 -3482ef5,6d -3482ef6,e -3482ef7,f2 -3482ef8,1 -3482ef9,ac -3482efa,70 -3482efb,24 -3482efc,15 -3482efd,c0 -3482eff,e -3482f04,1 -3482f05,ac -3482f06,70 -3482f07,25 -3482f08,a1 -3482f09,6e -3482f0a,e -3482f0b,f2 -3482f0c,1 -3482f0d,29 -3482f0e,48 -3482f0f,27 -3482f10,1 -3482f11,9 -3482f12,40 -3482f13,24 -3482f14,ac -3482f15,88 -3482f16,1d -3482f17,2c -3482f18,3c -3482f19,8 -3482f1a,80 -3482f1b,40 +3482e79,9 +3482e7b,10 +3482e7c,1 +3482e7d,9 +3482e7f,18 +3482e82,40 +3482e83,12 +3482e84,2 +3482e85,28 +3482e86,88 +3482e87,21 +3482e88,3c +3482e89,4 +3482e8a,80 +3482e8b,12 +3482e8c,24 +3482e8d,84 +3482e8e,a5 +3482e8f,d0 +3482e90,36 +3482e91,5 +3482e94,8e +3482e95,28 +3482e97,c +3482e98,1 +3482e9a,f8 +3482e9b,9 +3482ea0,14 +3482ea1,50 +3482ea2,ff +3482ea3,ef +3482ea8,36 +3482ea9,23 +3482eac,10 +3482eaf,2 +3482eb4,34 +3482eb5,3 +3482eb8,8f +3482eb9,b0 +3482ebb,10 +3482ebc,8f +3482ebd,b1 +3482ebf,14 +3482ec0,8f +3482ec1,bf +3482ec3,18 +3482ec4,27 +3482ec5,bd +3482ec7,20 +3482ec8,3 +3482ec9,e0 +3482ecb,8 +3482ed0,8c +3482ed1,88 +3482ed2,1d +3482ed3,2c +3482ed4,34 +3482ed5,9 +3482ed7,1 +3482ed9,9 +3482eda,4e +3482edc,1 +3482edd,9 +3482ede,10 +3482edf,24 +3482ee0,10 +3482ee1,40 +3482ee3,24 +3482ee8,94 +3482ee9,ca +3482eea,2 +3482eeb,dc +3482eec,3c +3482eed,b +3482eee,80 +3482eef,12 +3482ef0,25 +3482ef1,6b +3482ef2,a5 +3482ef3,d0 +3482ef4,94 +3482ef5,8c +3482ef7,a4 +3482ef8,34 +3482ef9,1 +3482efb,3d +3482efc,11 +3482efd,81 +3482eff,a +3482f05,8a +3482f06,60 +3482f07,21 +3482f08,91 +3482f09,8d +3482f0a,1d +3482f0b,28 +3482f0c,15 +3482f0d,a0 +3482f0f,19 +3482f14,34 +3482f15,d +3482f17,1 +3482f18,a1 +3482f19,8d +3482f1a,1d +3482f1b,28 3482f1c,25 -3482f1d,8 -3482f1e,1c +3482f1d,4a 3482f1f,3 -3482f20,1 -3482f21,a -3482f22,40 -3482f23,21 -3482f24,81 -3482f25,8 -3482f28,3c -3482f29,9 -3482f2a,80 -3482f2b,40 -3482f2c,25 -3482f2d,29 -3482f2e,20 -3482f2f,18 -3482f30,a1 -3482f31,28 -3482f34,34 -3482f35,2 -3482f38,3 -3482f39,e0 -3482f3b,8 -3482f40,3c -3482f41,8 -3482f42,80 -3482f43,40 -3482f44,25 -3482f45,8 -3482f46,1c -3482f47,1 -3482f48,81 -3482f49,8 -3482f4c,10 -3482f4f,22 +3482f20,10 +3482f23,9 +3482f28,34 +3482f29,c +3482f2b,1 +3482f2c,1 +3482f2d,4c +3482f2e,60 +3482f2f,4 +3482f30,91 +3482f31,6d +3482f32,e +3482f33,f2 +3482f34,1 +3482f35,ac +3482f36,70 +3482f37,24 +3482f38,15 +3482f39,c0 +3482f3b,e +3482f40,1 +3482f41,ac +3482f42,70 +3482f43,25 +3482f44,a1 +3482f45,6e +3482f46,e +3482f47,f2 +3482f48,1 +3482f49,29 +3482f4a,48 +3482f4b,27 +3482f4c,1 +3482f4d,9 +3482f4e,40 +3482f4f,24 +3482f50,ac +3482f51,88 +3482f52,1d +3482f53,2c 3482f54,3c 3482f55,8 3482f56,80 @@ -4006,1428 +4011,1472 @@ ec9ce7,7a 3482f58,25 3482f59,8 3482f5a,1c -3482f5b,2 -3482f5c,81 -3482f5d,8 -3482f60,10 -3482f63,1d -3482f68,34 -3482f69,2 -3482f6b,ff -3482f6c,20 -3482f6d,e8 -3482f6e,ff -3482f6f,a6 -3482f70,21 -3482f71,8 -3482f73,61 -3482f74,10 -3482f77,18 -3482f7c,34 +3482f5b,3 +3482f5c,1 +3482f5d,a +3482f5e,40 +3482f5f,21 +3482f60,81 +3482f61,8 +3482f64,3c +3482f65,9 +3482f66,80 +3482f67,40 +3482f68,25 +3482f69,29 +3482f6a,20 +3482f6b,18 +3482f6c,a1 +3482f6d,28 +3482f70,34 +3482f71,2 +3482f74,3 +3482f75,e0 +3482f77,8 +3482f7c,3c 3482f7d,8 -3482f7f,64 -3482f80,10 -3482f83,15 -3482f88,3c -3482f89,1 -3482f8a,80 -3482f8b,12 -3482f8c,24 -3482f8d,21 -3482f8e,a5 -3482f8f,d0 -3482f90,80 -3482f91,28 -3482f92,e -3482f93,de -3482f94,35 +3482f7e,80 +3482f7f,40 +3482f80,25 +3482f81,8 +3482f82,1c +3482f83,1 +3482f84,81 +3482f85,8 +3482f88,10 +3482f8b,22 +3482f90,3c +3482f91,8 +3482f92,80 +3482f93,40 +3482f94,25 3482f95,8 -3482f97,1 -3482f98,a0 -3482f99,28 -3482f9a,e -3482f9b,de -3482f9c,34 -3482f9d,8 -3482f9f,68 -3482fa0,10 -3482fa3,d -3482fa8,3c -3482fa9,1 -3482faa,80 -3482fab,12 -3482fac,24 -3482fad,21 -3482fae,a5 -3482faf,d0 -3482fb0,80 -3482fb1,28 -3482fb2,e -3482fb3,de -3482fb4,35 -3482fb5,8 -3482fb7,4 -3482fb8,a0 -3482fb9,28 -3482fba,e -3482fbb,de -3482fbc,34 -3482fbd,8 -3482fbf,6a -3482fc0,10 -3482fc3,5 -3482fc8,34 -3482fc9,5 -3482fcb,3 -3482fcc,34 -3482fcd,8 -3482fcf,6b -3482fd0,10 +3482f96,1c +3482f97,2 +3482f98,81 +3482f99,8 +3482f9c,10 +3482f9f,1d +3482fa4,34 +3482fa5,2 +3482fa7,ff +3482fa8,20 +3482fa9,e8 +3482faa,ff +3482fab,a6 +3482fac,21 +3482fad,8 +3482faf,61 +3482fb0,10 +3482fb3,18 +3482fb8,34 +3482fb9,8 +3482fbb,64 +3482fbc,10 +3482fbf,15 +3482fc4,3c +3482fc5,1 +3482fc6,80 +3482fc7,12 +3482fc8,24 +3482fc9,21 +3482fca,a5 +3482fcb,d0 +3482fcc,80 +3482fcd,28 +3482fce,e +3482fcf,de +3482fd0,35 +3482fd1,8 3482fd3,1 -3482fd8,3c -3482fd9,9 -3482fda,80 -3482fdb,40 -3482fdc,25 -3482fdd,29 -3482fde,20 -3482fdf,18 -3482fe0,3c -3482fe1,a -3482fe2,80 -3482fe3,40 -3482fe4,25 -3482fe5,4a -3482fe6,20 -3482fe7,1b -3482fe8,81 -3482fe9,2c -3482fec,11 -3482fed,88 -3482fef,b -3482ff0,21 -3482ff1,29 -3482ff3,1 -3482ff4,15 -3482ff5,2a -3482ff6,ff -3482ff7,fc -3482ffc,3c -3482ffd,9 -3482ffe,80 -3482fff,40 -3483000,25 -3483001,29 -3483002,20 -3483003,17 -3483004,21 -3483005,29 -3483007,1 -3483008,11 -3483009,2a -348300b,4 -348300c,81 -348300d,2c -3483010,15 -3483011,80 -3483012,ff -3483013,fc -3483018,a1 -3483019,28 -348301c,3 -348301d,e0 -348301f,8 -3483025,60 -3483026,78 -3483027,21 -3483028,81 -3483029,ec -348302a,e -348302b,df -348302c,31 -348302d,8e -348302f,80 -3483030,11 -3483031,c0 -3483033,3 -3483034,34 -3483035,3 -3483037,5 -3483038,3 -3483039,e0 -348303b,8 -348303c,34 -348303d,2 -348303f,2 -3483040,3 -3483041,e0 -3483043,8 -3483045,60 -3483046,10 -3483047,21 -3483048,85 -3483049,c2 -348304b,a4 -348304c,3c -348304d,8 -348304e,80 -348304f,12 -3483050,25 -3483051,8 -3483052,a5 -3483053,d0 -3483054,81 -3483055,9 -3483056,e -3483057,df -3483058,35 -3483059,29 -348305b,80 -348305c,a1 -348305d,9 -348305e,e -348305f,df -3483060,3 -3483061,e0 -3483063,8 -3483068,27 -3483069,bd -348306a,ff -348306b,f0 -348306c,af -348306d,bf -348306f,4 -3483070,c +3482fd4,a0 +3482fd5,28 +3482fd6,e +3482fd7,de +3482fd8,34 +3482fd9,8 +3482fdb,68 +3482fdc,10 +3482fdf,d +3482fe4,3c +3482fe5,1 +3482fe6,80 +3482fe7,12 +3482fe8,24 +3482fe9,21 +3482fea,a5 +3482feb,d0 +3482fec,80 +3482fed,28 +3482fee,e +3482fef,de +3482ff0,35 +3482ff1,8 +3482ff3,4 +3482ff4,a0 +3482ff5,28 +3482ff6,e +3482ff7,de +3482ff8,34 +3482ff9,8 +3482ffb,6a +3482ffc,10 +3482fff,5 +3483004,34 +3483005,5 +3483007,3 +3483008,34 +3483009,8 +348300b,6b +348300c,10 +348300f,1 +3483014,3c +3483015,9 +3483016,80 +3483017,40 +3483018,25 +3483019,29 +348301a,20 +348301b,18 +348301c,3c +348301d,a +348301e,80 +348301f,40 +3483020,25 +3483021,4a +3483022,20 +3483023,1b +3483024,81 +3483025,2c +3483028,11 +3483029,88 +348302b,b +348302c,21 +348302d,29 +348302f,1 +3483030,15 +3483031,2a +3483032,ff +3483033,fc +3483038,3c +3483039,9 +348303a,80 +348303b,40 +348303c,25 +348303d,29 +348303e,20 +348303f,17 +3483040,21 +3483041,29 +3483043,1 +3483044,11 +3483045,2a +3483047,4 +3483048,81 +3483049,2c +348304c,15 +348304d,80 +348304e,ff +348304f,fc +3483054,a1 +3483055,28 +3483058,3 +3483059,e0 +348305b,8 +3483061,60 +3483062,78 +3483063,21 +3483064,81 +3483065,ec +3483066,e +3483067,df +3483068,31 +3483069,8e +348306b,80 +348306c,11 +348306d,c0 +348306f,3 +3483070,34 3483071,3 -3483072,58 -3483073,86 -3483078,3c -3483079,c -348307a,80 -348307b,12 -348307c,25 -348307d,8c -348307e,a5 -348307f,d0 -3483080,85 -3483081,8d -3483082,f -3483083,2e -3483084,8d -3483085,98 -3483087,4 -3483088,13 -348308b,2 -348308c,34 -348308d,e -348308f,1 -3483090,34 -3483091,e -3483093,2 -3483094,1 -3483095,ae -3483096,68 -3483097,25 -3483098,a5 -3483099,8d -348309a,f -348309b,2e -348309c,8f -348309d,bf -348309f,4 -34830a0,27 -34830a1,bd -34830a3,10 -34830a4,3 -34830a5,e0 -34830a7,8 -34830ac,84 -34830ad,8e -34830af,1c -34830b0,21 -34830b1,cd -34830b2,ff -34830b3,ce -34830b4,5 -34830b5,a0 -34830b7,10 -34830b8,34 -34830b9,2 -34830bc,31 -34830bd,a9 -34830bf,7 -34830c0,34 -34830c1,a -34830c3,1 -34830c4,1 -34830c5,2a -34830c6,50 -34830c7,4 -34830c9,d -34830ca,48 -34830cb,c2 -34830cc,3c -34830cd,c -34830ce,80 -34830cf,12 -34830d0,25 -34830d1,8c -34830d2,a5 -34830d3,d0 -34830d4,1 -34830d5,89 -34830d6,60 -34830d7,20 -34830d8,81 -34830d9,8b -34830da,5 -34830db,b4 -34830dc,1 -34830dd,6a -34830de,58 -34830df,24 -34830e0,34 -34830e1,2 -34830e4,11 -34830e5,60 -34830e7,4 -34830ec,34 -34830ed,d -34830ef,26 -34830f0,a4 -34830f1,8d -34830f3,1c +3483073,5 +3483074,3 +3483075,e0 +3483077,8 +3483078,34 +3483079,2 +348307b,2 +348307c,3 +348307d,e0 +348307f,8 +3483081,60 +3483082,10 +3483083,21 +3483084,85 +3483085,c2 +3483087,a4 +3483088,3c +3483089,8 +348308a,80 +348308b,12 +348308c,25 +348308d,8 +348308e,a5 +348308f,d0 +3483090,81 +3483091,9 +3483092,e +3483093,df +3483094,35 +3483095,29 +3483097,80 +3483098,a1 +3483099,9 +348309a,e +348309b,df +348309c,3 +348309d,e0 +348309f,8 +34830a4,27 +34830a5,bd +34830a6,ff +34830a7,f0 +34830a8,af +34830a9,bf +34830ab,4 +34830ac,c +34830ad,3 +34830ae,58 +34830af,86 +34830b4,3c +34830b5,c +34830b6,80 +34830b7,12 +34830b8,25 +34830b9,8c +34830ba,a5 +34830bb,d0 +34830bc,85 +34830bd,8d +34830be,f +34830bf,2e +34830c0,8d +34830c1,98 +34830c3,4 +34830c4,13 +34830c7,2 +34830c8,34 +34830c9,e +34830cb,1 +34830cc,34 +34830cd,e +34830cf,2 +34830d0,1 +34830d1,ae +34830d2,68 +34830d3,25 +34830d4,a5 +34830d5,8d +34830d6,f +34830d7,2e +34830d8,8f +34830d9,bf +34830db,4 +34830dc,27 +34830dd,bd +34830df,10 +34830e0,3 +34830e1,e0 +34830e3,8 +34830e8,84 +34830e9,8e +34830eb,1c +34830ec,21 +34830ed,cd +34830ee,ff +34830ef,ce +34830f0,5 +34830f1,a0 +34830f3,10 34830f4,34 34830f5,2 -34830f7,1 -34830f8,3 -34830f9,e0 -34830fb,8 -3483100,84 -3483101,ae -3483103,1c -3483104,21 -3483105,cd -3483106,ff -3483107,ce -3483108,5 -3483109,a0 -348310b,b -348310c,34 -348310d,2 -3483110,31 -3483111,a9 -3483113,7 -3483114,34 -3483115,a -3483117,1 +34830f8,31 +34830f9,a9 +34830fb,7 +34830fc,34 +34830fd,a +34830ff,1 +3483100,1 +3483101,2a +3483102,50 +3483103,4 +3483105,d +3483106,48 +3483107,c2 +3483108,3c +3483109,c +348310a,80 +348310b,12 +348310c,25 +348310d,8c +348310e,a5 +348310f,d0 +3483110,1 +3483111,89 +3483112,60 +3483113,20 +3483114,81 +3483115,8b +3483116,5 +3483117,b4 3483118,1 -3483119,2a -348311a,50 -348311b,4 -348311d,d -348311e,48 -348311f,c2 -3483120,3c -3483121,c -3483122,80 -3483123,12 -3483124,25 -3483125,8c -3483126,a5 -3483127,d0 -3483128,1 -3483129,89 -348312a,60 -348312b,20 -348312c,81 -348312d,8b -348312e,5 -348312f,b4 -3483130,1 -3483131,6a -3483132,58 -3483133,25 -3483134,a1 -3483135,8b -3483136,5 -3483137,b4 -3483138,3 -3483139,e0 -348313b,8 -3483140,27 -3483141,bd +3483119,6a +348311a,58 +348311b,24 +348311c,34 +348311d,2 +3483120,11 +3483121,60 +3483123,4 +3483128,34 +3483129,d +348312b,26 +348312c,a4 +348312d,8d +348312f,1c +3483130,34 +3483131,2 +3483133,1 +3483134,3 +3483135,e0 +3483137,8 +348313c,84 +348313d,ae +348313f,1c +3483140,21 +3483141,cd 3483142,ff -3483143,f0 -3483144,af -3483145,bf -3483147,8 -3483148,28 -3483149,81 -348314b,32 -348314c,10 -348314d,20 -348314f,3 -3483151,80 -3483152,10 -3483153,21 -3483154,3 -3483155,20 -3483156,f8 -3483157,9 -348315c,8f -348315d,bf -348315f,8 -3483160,27 -3483161,bd -3483163,10 -3483164,3 -3483165,e0 -3483167,8 -348316c,3c -348316d,8 -348316e,80 -348316f,1d -3483170,25 -3483171,8 -3483172,84 -3483173,a0 -3483174,3c -3483175,9 -3483176,80 -3483177,12 -3483178,25 -3483179,29 -348317a,a5 -348317b,d0 -348317c,85 -348317d,a -348317f,a4 -3483180,34 -3483181,1 -3483183,3e -3483184,15 -3483185,41 -3483187,2 -3483188,81 -3483189,2b -348318a,13 -348318b,97 -348318c,21 -348318d,6a -348318f,2d -3483190,86 -3483191,b -3483193,1c -3483194,21 -3483195,6b -3483197,1 -3483198,34 -3483199,c -348319b,1 -348319c,1 -348319d,6c -348319e,60 -348319f,4 -34831a0,34 -34831a1,1 -34831a3,1c -34831a4,1 -34831a5,41 -34831a7,18 -34831aa,68 -34831ab,12 -34831ac,1 -34831ad,2d -34831ae,70 -34831af,20 -34831b0,8d -34831b1,cf -34831b3,e4 -34831b4,1 -34831b5,8f -34831b6,10 -34831b7,24 -34831b8,3 -34831b9,e0 -34831bb,8 -34831c0,3c -34831c1,8 -34831c2,80 -34831c3,1d -34831c4,25 -34831c5,8 -34831c6,84 -34831c7,a0 -34831c8,3c -34831c9,9 -34831ca,80 -34831cb,12 -34831cc,25 -34831cd,29 -34831ce,a5 -34831cf,d0 -34831d0,85 -34831d1,a -34831d3,a4 +3483143,ce +3483144,5 +3483145,a0 +3483147,b +3483148,34 +3483149,2 +348314c,31 +348314d,a9 +348314f,7 +3483150,34 +3483151,a +3483153,1 +3483154,1 +3483155,2a +3483156,50 +3483157,4 +3483159,d +348315a,48 +348315b,c2 +348315c,3c +348315d,c +348315e,80 +348315f,12 +3483160,25 +3483161,8c +3483162,a5 +3483163,d0 +3483164,1 +3483165,89 +3483166,60 +3483167,20 +3483168,81 +3483169,8b +348316a,5 +348316b,b4 +348316c,1 +348316d,6a +348316e,58 +348316f,25 +3483170,a1 +3483171,8b +3483172,5 +3483173,b4 +3483174,3 +3483175,e0 +3483177,8 +348317c,27 +348317d,bd +348317e,ff +348317f,f0 +3483180,af +3483181,bf +3483183,8 +3483184,28 +3483185,81 +3483187,32 +3483188,10 +3483189,20 +348318b,3 +348318d,80 +348318e,10 +348318f,21 +3483190,3 +3483191,20 +3483192,f8 +3483193,9 +3483198,8f +3483199,bf +348319b,8 +348319c,27 +348319d,bd +348319f,10 +34831a0,3 +34831a1,e0 +34831a3,8 +34831a8,3c +34831a9,8 +34831aa,80 +34831ab,1d +34831ac,25 +34831ad,8 +34831ae,84 +34831af,a0 +34831b0,3c +34831b1,9 +34831b2,80 +34831b3,12 +34831b4,25 +34831b5,29 +34831b6,a5 +34831b7,d0 +34831b8,85 +34831b9,a +34831bb,a4 +34831bc,34 +34831bd,1 +34831bf,3e +34831c0,15 +34831c1,41 +34831c3,2 +34831c4,81 +34831c5,2b +34831c6,13 +34831c7,97 +34831c8,21 +34831c9,6a +34831cb,2d +34831cc,86 +34831cd,b +34831cf,1c +34831d0,21 +34831d1,6b +34831d3,1 34831d4,34 -34831d5,1 -34831d7,3e -34831d8,15 -34831d9,41 -34831db,2 -34831dc,81 -34831dd,2b -34831de,13 -34831df,97 -34831e0,21 -34831e1,6a -34831e3,2d -34831e4,84 -34831e5,8b -34831e7,1c -34831e8,21 -34831e9,6b -34831eb,1 -34831ec,34 -34831ed,c -34831ef,1 +34831d5,c +34831d7,1 +34831d8,1 +34831d9,6c +34831da,60 +34831db,4 +34831dc,34 +34831dd,1 +34831df,1c +34831e0,1 +34831e1,41 +34831e3,18 +34831e6,68 +34831e7,12 +34831e8,1 +34831e9,2d +34831ea,70 +34831eb,20 +34831ec,8d +34831ed,cf +34831ef,e4 34831f0,1 -34831f1,6c -34831f2,60 -34831f3,4 -34831f4,34 -34831f5,1 -34831f7,1c -34831f8,1 -34831f9,41 -34831fb,18 -34831fe,68 -34831ff,12 -3483200,1 -3483201,2d -3483202,70 -3483203,20 -3483204,8d -3483205,cf -3483207,e4 -3483208,1 -3483209,8f -348320a,78 -348320b,25 -348320c,ad -348320d,cf -348320f,e4 -3483210,3 -3483211,e0 -3483213,8 -3483218,af -3483219,a4 -348321b,68 -348321c,af -348321d,a5 -348321f,6c -3483220,af -3483221,a6 -3483223,70 -3483224,af -3483225,a7 -3483227,74 -3483228,27 -3483229,bd -348322a,ff -348322b,e8 -348322c,af -348322d,a3 -348322f,10 -3483230,af -3483231,bf -3483233,14 -3483234,3c -3483235,a -3483236,80 -3483237,1e -3483238,25 -3483239,4a -348323a,aa -348323b,30 -348323c,81 -348323d,48 -348323e,6 -348323f,6c -3483240,31 -3483241,8 -3483243,20 -3483244,15 -3483247,1f -348324c,3c -348324d,9 -348324e,80 -348324f,40 -3483250,25 -3483251,29 -3483252,20 -3483253,1b -3483254,34 -3483255,a -3483257,ff -3483258,a1 -3483259,2a -348325c,3c -348325d,9 -348325e,80 -348325f,40 -3483260,25 -3483261,29 -3483262,20 -3483263,18 -3483264,24 -3483265,a +34831f1,8f +34831f2,10 +34831f3,24 +34831f4,3 +34831f5,e0 +34831f7,8 +34831fc,3c +34831fd,8 +34831fe,80 +34831ff,1d +3483200,25 +3483201,8 +3483202,84 +3483203,a0 +3483204,3c +3483205,9 +3483206,80 +3483207,12 +3483208,25 +3483209,29 +348320a,a5 +348320b,d0 +348320c,85 +348320d,a +348320f,a4 +3483210,34 +3483211,1 +3483213,3e +3483214,15 +3483215,41 +3483217,2 +3483218,81 +3483219,2b +348321a,13 +348321b,97 +348321c,21 +348321d,6a +348321f,2d +3483220,84 +3483221,8b +3483223,1c +3483224,21 +3483225,6b +3483227,1 +3483228,34 +3483229,c +348322b,1 +348322c,1 +348322d,6c +348322e,60 +348322f,4 +3483230,34 +3483231,1 +3483233,1c +3483234,1 +3483235,41 +3483237,18 +348323a,68 +348323b,12 +348323c,1 +348323d,2d +348323e,70 +348323f,20 +3483240,8d +3483241,cf +3483243,e4 +3483244,1 +3483245,8f +3483246,78 +3483247,25 +3483248,ad +3483249,cf +348324b,e4 +348324c,3 +348324d,e0 +348324f,8 +3483254,af +3483255,a4 +3483257,68 +3483258,af +3483259,a5 +348325b,6c +348325c,af +348325d,a6 +348325f,70 +3483260,af +3483261,a7 +3483263,74 +3483264,27 +3483265,bd 3483266,ff -3483267,ff -3483268,34 -3483269,c -348326b,3 -348326c,21 -348326d,4a -348326f,1 -3483270,11 -3483271,4c -3483273,14 -3483274,1 -3483275,2a -3483276,58 -3483277,20 +3483267,e8 +3483268,af +3483269,a3 +348326b,10 +348326c,af +348326d,bf +348326f,14 +3483270,3c +3483271,a +3483272,80 +3483273,1e +3483274,25 +3483275,4a +3483276,aa +3483277,30 3483278,81 -3483279,68 -348327c,11 -348327e,ff -348327f,fb -3483284,3c -3483285,9 -3483286,80 -3483287,40 -3483288,25 -3483289,29 -348328a,20 -348328b,1b -348328c,a1 -348328d,2a -3483290,3c -3483291,9 -3483292,80 -3483293,1e -3483294,25 -3483295,29 -3483296,89 -3483297,84 -3483298,34 -3483299,a -348329b,1 -348329c,a5 -348329d,2a -34832a0,3c -34832a1,9 -34832a2,80 -34832a3,48 +3483279,48 +348327a,6 +348327b,6c +348327c,31 +348327d,8 +348327f,20 +3483280,15 +3483283,1f +3483288,3c +3483289,9 +348328a,80 +348328b,40 +348328c,25 +348328d,29 +348328e,20 +348328f,1b +3483290,34 +3483291,a +3483293,ff +3483294,a1 +3483295,2a +3483298,3c +3483299,9 +348329a,80 +348329b,40 +348329c,25 +348329d,29 +348329e,20 +348329f,18 +34832a0,24 +34832a1,a +34832a2,ff +34832a3,ff 34832a4,34 -34832a5,a -34832a7,1 -34832a8,ad -34832a9,2a -34832aa,1 -34832ab,30 -34832ac,3c -34832ad,a -34832ae,80 -34832af,1e -34832b0,25 -34832b1,4a -34832b2,aa -34832b3,30 -34832b4,a1 -34832b5,48 -34832b6,4 -34832b7,24 -34832b8,ad -34832b9,49 -34832ba,4 -34832bb,28 -34832bc,c -34832bd,10 -34832be,a -34832bf,d9 -34832c4,8f -34832c5,a3 -34832c7,10 -34832c8,8f -34832c9,bf -34832cb,14 -34832cc,27 -34832cd,bd -34832cf,18 -34832d0,8f -34832d1,a4 -34832d3,68 -34832d4,8f -34832d5,a5 -34832d7,6c -34832d8,8f -34832d9,a6 -34832db,70 -34832dc,8f -34832dd,a7 -34832df,74 -34832e0,84 -34832e1,6e -34832e2,13 -34832e3,c4 -34832e4,3 -34832e5,e0 -34832e7,8 -34832ec,93 -34832ed,19 -34832ef,74 -34832f0,34 -34832f1,1 -34832f3,ff -34832f4,17 -34832f5,21 -34832f7,2 -34832fc,34 -34832fd,19 -34832ff,2c -3483300,3 -3483301,e0 -3483303,8 -3483304,a7 -3483305,b9 -3483307,9a -3483308,93 -3483309,2c -348330b,74 -348330c,34 -348330d,1 -348330f,ff -3483310,15 -3483311,81 -3483313,2 -3483318,34 -3483319,c -348331b,2c -348331c,3 -348331d,e0 -348331f,8 -3483324,91 -3483325,ae -3483327,74 -3483328,34 -3483329,1 -348332b,ff -348332c,15 -348332d,c1 -348332f,2 -3483334,34 -3483335,e -3483337,2c -3483338,3 -3483339,e0 -348333b,8 -348333c,a7 -348333d,ae -348333f,9a -3483340,91 -3483341,cf -3483343,74 -3483344,34 -3483345,1 -3483347,ff -3483348,15 -3483349,e1 -348334b,2 -3483350,34 -3483351,f -3483353,2c -3483354,3 -3483355,e0 -3483357,8 -3483358,a7 -3483359,af -348335b,9a -348335c,3c -348335d,8 -348335e,80 -348335f,40 -3483360,25 -3483361,8 -3483362,20 -3483363,1c -3483364,8e -3483365,9 -3483367,68 -3483368,ad -3483369,9 -348336c,8e -348336d,9 -348336f,6c -3483370,ad -3483371,9 -3483373,4 -3483374,96 -3483375,9 -3483377,70 -3483378,a5 -3483379,9 -348337b,8 -348337c,96 -348337d,9 -348337f,9c -3483380,a5 -3483381,9 -3483383,a -3483384,3 -3483385,e0 -3483387,8 -3483388,8e -3483389,e -348338b,4 -348338c,27 -348338d,bd -348338e,ff -348338f,e0 -3483390,af -3483391,b0 -3483393,10 -3483394,af -3483395,b1 -3483397,14 -3483398,af -3483399,bf -348339b,18 -348339c,3c -348339d,10 -348339e,80 -348339f,12 -34833a0,26 -34833a1,10 -34833a2,a5 -34833a3,d0 -34833a4,3c -34833a5,11 -34833a6,80 -34833a7,40 -34833a8,26 -34833a9,31 -34833aa,20 -34833ab,1c -34833ac,8e -34833ad,8 +34832a5,c +34832a7,3 +34832a8,21 +34832a9,4a +34832ab,1 +34832ac,11 +34832ad,4c +34832af,14 +34832b0,1 +34832b1,2a +34832b2,58 +34832b3,20 +34832b4,81 +34832b5,68 +34832b8,11 +34832ba,ff +34832bb,fb +34832c0,3c +34832c1,9 +34832c2,80 +34832c3,40 +34832c4,25 +34832c5,29 +34832c6,20 +34832c7,1b +34832c8,a1 +34832c9,2a +34832cc,3c +34832cd,9 +34832ce,80 +34832cf,1e +34832d0,25 +34832d1,29 +34832d2,89 +34832d3,84 +34832d4,34 +34832d5,a +34832d7,1 +34832d8,a5 +34832d9,2a +34832dc,3c +34832dd,9 +34832de,80 +34832df,48 +34832e0,34 +34832e1,a +34832e3,1 +34832e4,ad +34832e5,2a +34832e6,1 +34832e7,30 +34832e8,3c +34832e9,a +34832ea,80 +34832eb,1e +34832ec,25 +34832ed,4a +34832ee,aa +34832ef,30 +34832f0,a1 +34832f1,48 +34832f2,4 +34832f3,24 +34832f4,ad +34832f5,49 +34832f6,4 +34832f7,28 +34832f8,c +34832f9,10 +34832fa,a +34832fb,e8 +3483300,8f +3483301,a3 +3483303,10 +3483304,8f +3483305,bf +3483307,14 +3483308,27 +3483309,bd +348330b,18 +348330c,8f +348330d,a4 +348330f,68 +3483310,8f +3483311,a5 +3483313,6c +3483314,8f +3483315,a6 +3483317,70 +3483318,8f +3483319,a7 +348331b,74 +348331c,84 +348331d,6e +348331e,13 +348331f,c4 +3483320,3 +3483321,e0 +3483323,8 +3483328,93 +3483329,19 +348332b,74 +348332c,34 +348332d,1 +348332f,ff +3483330,17 +3483331,21 +3483333,2 +3483338,34 +3483339,19 +348333b,2c +348333c,3 +348333d,e0 +348333f,8 +3483340,a7 +3483341,b9 +3483343,9a +3483344,93 +3483345,2c +3483347,74 +3483348,34 +3483349,1 +348334b,ff +348334c,15 +348334d,81 +348334f,2 +3483354,34 +3483355,c +3483357,2c +3483358,3 +3483359,e0 +348335b,8 +3483360,91 +3483361,ae +3483363,74 +3483364,34 +3483365,1 +3483367,ff +3483368,15 +3483369,c1 +348336b,2 +3483370,34 +3483371,e +3483373,2c +3483374,3 +3483375,e0 +3483377,8 +3483378,a7 +3483379,ae +348337b,9a +348337c,91 +348337d,cf +348337f,74 +3483380,34 +3483381,1 +3483383,ff +3483384,15 +3483385,e1 +3483387,2 +348338c,34 +348338d,f +348338f,2c +3483390,3 +3483391,e0 +3483393,8 +3483394,a7 +3483395,af +3483397,9a +3483398,3c +3483399,8 +348339a,80 +348339b,40 +348339c,25 +348339d,8 +348339e,20 +348339f,1c +34833a0,8e +34833a1,9 +34833a3,68 +34833a4,ad +34833a5,9 +34833a8,8e +34833a9,9 +34833ab,6c +34833ac,ad +34833ad,9 34833af,4 -34833b0,11 -34833b3,5 -34833b8,c -34833b9,10 -34833ba,d -34833bb,d -34833c0,10 -34833c3,3 -34833c8,c -34833c9,10 -34833ca,d -34833cb,20 -34833d0,c -34833d1,10 -34833d2,d -34833d4,34 -34833d5,4 -34833d8,c +34833b0,96 +34833b1,9 +34833b3,70 +34833b4,a5 +34833b5,9 +34833b7,8 +34833b8,96 +34833b9,9 +34833bb,9c +34833bc,a5 +34833bd,9 +34833bf,a +34833c0,3 +34833c1,e0 +34833c3,8 +34833c4,8e +34833c5,e +34833c7,4 +34833c8,27 +34833c9,bd +34833ca,ff +34833cb,e0 +34833cc,af +34833cd,b0 +34833cf,10 +34833d0,af +34833d1,b1 +34833d3,14 +34833d4,af +34833d5,bf +34833d7,18 +34833d8,3c 34833d9,10 -34833da,d -34833dc,34 -34833dd,4 -34833df,1 -34833e0,c -34833e1,10 -34833e2,d -34833e4,34 -34833e5,4 -34833e7,2 -34833e8,8f -34833e9,b0 -34833eb,10 -34833ec,8f -34833ed,b1 -34833ef,14 -34833f0,8f -34833f1,bf -34833f3,18 -34833f4,27 -34833f5,bd -34833f7,20 -34833f8,3 -34833f9,e0 -34833fb,8 -3483400,2 -3483401,4 -3483402,40 -3483403,21 -3483404,91 -3483405,9 -3483407,6c -3483408,34 -3483409,1 -348340b,ff -348340c,11 -348340d,21 -348340f,7 -3483414,2 -3483415,9 -3483416,48 -3483417,21 -3483418,91 -3483419,29 -348341b,74 -348341c,34 -348341d,1 -348341f,2c -3483420,11 -3483421,21 +34833da,80 +34833db,12 +34833dc,26 +34833dd,10 +34833de,a5 +34833df,d0 +34833e0,3c +34833e1,11 +34833e2,80 +34833e3,40 +34833e4,26 +34833e5,31 +34833e6,20 +34833e7,1c +34833e8,8e +34833e9,8 +34833eb,4 +34833ec,11 +34833ef,5 +34833f4,c +34833f5,10 +34833f6,d +34833f7,1c +34833fc,10 +34833ff,3 +3483404,c +3483405,10 +3483406,d +3483407,2f +348340c,c +348340d,10 +348340e,d +348340f,f +3483410,34 +3483411,4 +3483414,c +3483415,10 +3483416,d +3483417,f +3483418,34 +3483419,4 +348341b,1 +348341c,c +348341d,10 +348341e,d +348341f,f +3483420,34 +3483421,4 3483423,2 -3483428,a1 -3483429,9 -348342b,69 -348342c,3 -348342d,e0 -348342f,8 -3483434,27 -3483435,bd -3483436,ff -3483437,e8 -3483438,af -3483439,bf -348343b,10 -348343c,8e -348343d,28 -3483440,ae -3483441,8 -3483443,40 -3483444,8e -3483445,28 -3483447,4 -3483448,ae -3483449,8 -348344b,44 -348344c,96 -348344d,28 -348344f,8 -3483450,a6 -3483451,8 -3483453,48 -3483454,a2 -3483456,f -3483457,33 -3483458,92 -3483459,8 -348345b,4a -348345c,34 -348345d,1 -348345f,ff -3483460,15 -3483461,1 -3483463,3 -3483468,c -3483469,10 -348346a,d -348346b,2e -3483470,8f -3483471,bf -3483473,10 -3483474,27 -3483475,bd -3483477,18 -3483478,3 -3483479,e0 -348347b,8 +3483424,8f +3483425,b0 +3483427,10 +3483428,8f +3483429,b1 +348342b,14 +348342c,8f +348342d,bf +348342f,18 +3483430,27 +3483431,bd +3483433,20 +3483434,3 +3483435,e0 +3483437,8 +348343c,2 +348343d,4 +348343e,40 +348343f,21 +3483440,91 +3483441,9 +3483443,6c +3483444,34 +3483445,1 +3483447,ff +3483448,11 +3483449,21 +348344b,7 +3483450,2 +3483451,9 +3483452,48 +3483453,21 +3483454,91 +3483455,29 +3483457,74 +3483458,34 +3483459,1 +348345b,2c +348345c,11 +348345d,21 +348345f,2 +3483464,a1 +3483465,9 +3483467,69 +3483468,3 +3483469,e0 +348346b,8 +3483470,27 +3483471,bd +3483472,ff +3483473,e8 +3483474,af +3483475,bf +3483477,10 +3483478,8e +3483479,28 +348347c,ae +348347d,8 +348347f,40 3483480,8e -3483481,8 -3483483,40 +3483481,28 +3483483,4 3483484,ae 3483485,8 -3483487,68 -3483488,8e -3483489,8 -348348b,44 -348348c,ae +3483487,44 +3483488,96 +3483489,28 +348348b,8 +348348c,a6 348348d,8 -348348f,6c -3483490,96 -3483491,8 -3483493,48 -3483494,a6 +348348f,48 +3483490,a2 +3483492,f +3483493,33 +3483494,92 3483495,8 -3483497,70 -3483498,92 -3483499,8 -348349b,68 -348349c,34 +3483497,4a +3483498,34 +3483499,1 +348349b,ff +348349c,15 348349d,1 -348349f,ff -34834a0,15 -34834a1,1 -34834a3,3 -34834a8,34 -34834a9,8 -34834ab,1 -34834ac,a2 -34834ad,8 -34834ae,f -34834af,33 -34834b0,3 -34834b1,e0 -34834b3,8 -34834b8,27 -34834b9,bd -34834ba,ff -34834bb,e8 -34834bc,af -34834bd,bf -34834bf,10 -34834c0,96 +348349f,3 +34834a4,c +34834a5,10 +34834a6,d +34834a7,3d +34834ac,8f +34834ad,bf +34834af,10 +34834b0,27 +34834b1,bd +34834b3,18 +34834b4,3 +34834b5,e0 +34834b7,8 +34834bc,8e +34834bd,8 +34834bf,40 +34834c0,ae 34834c1,8 -34834c3,9c -34834c4,31 +34834c3,68 +34834c4,8e 34834c5,8 -34834c7,40 -34834c8,11 -34834cb,5 -34834d0,96 +34834c7,44 +34834c8,ae +34834c9,8 +34834cb,6c +34834cc,96 +34834cd,8 +34834cf,48 +34834d0,a6 34834d1,8 34834d3,70 -34834d4,31 +34834d4,92 34834d5,8 -34834d6,ff -34834d7,f -34834d8,35 -34834d9,8 -34834db,30 -34834dc,a6 -34834dd,8 -34834df,70 -34834e0,92 -34834e1,28 -34834e3,1 -34834e4,a2 +34834d7,68 +34834d8,34 +34834d9,1 +34834db,ff +34834dc,15 +34834dd,1 +34834df,3 +34834e4,34 34834e5,8 -34834e7,69 -34834e8,96 -34834e9,28 -34834eb,2 -34834ec,a6 -34834ed,8 -34834ef,6a -34834f0,8e -34834f1,28 -34834f3,4 -34834f4,ae -34834f5,8 -34834f7,6c -34834f8,c -34834f9,10 -34834fa,d -34834fb,48 -34834fc,34 -34834fd,4 -3483500,c -3483501,10 -3483502,d -3483503,48 -3483504,34 -3483505,4 -3483507,1 -3483508,c -3483509,10 -348350a,d -348350b,48 -348350c,34 -348350d,4 -348350f,2 -3483510,8f -3483511,bf -3483513,10 -3483514,27 -3483515,bd -3483517,18 -3483518,3 -3483519,e0 -348351b,8 -3483520,2 -3483521,4 -3483522,40 -3483523,21 -3483524,3c -3483525,9 -3483526,80 -3483527,40 -3483528,25 -3483529,29 -348352a,35 -348352b,cc -348352c,91 -348352d,a -348352f,6c -3483530,34 -3483531,1 -3483533,ff -3483534,11 -3483535,41 -3483537,5 -348353c,1 -348353d,2a -348353e,48 -348353f,21 -3483540,91 -3483541,29 -3483544,15 -3483545,20 -3483547,1c -348354c,3c -348354d,9 -348354e,80 -348354f,40 -3483550,25 -3483551,29 -3483552,35 -3483553,bf -3483554,25 -3483555,29 -3483557,1 -3483558,91 -3483559,2a -348355c,11 -348355d,40 -348355f,13 -3483564,2 -3483565,a -3483566,58 -3483567,21 +34834e7,1 +34834e8,a2 +34834e9,8 +34834ea,f +34834eb,33 +34834ec,3 +34834ed,e0 +34834ef,8 +34834f4,27 +34834f5,bd +34834f6,ff +34834f7,e8 +34834f8,af +34834f9,bf +34834fb,10 +34834fc,96 +34834fd,8 +34834ff,9c +3483500,31 +3483501,8 +3483503,40 +3483504,11 +3483507,5 +348350c,96 +348350d,8 +348350f,70 +3483510,31 +3483511,8 +3483512,ff +3483513,f +3483514,35 +3483515,8 +3483517,30 +3483518,a6 +3483519,8 +348351b,70 +348351c,92 +348351d,28 +348351f,1 +3483520,a2 +3483521,8 +3483523,69 +3483524,96 +3483525,28 +3483527,2 +3483528,a6 +3483529,8 +348352b,6a +348352c,8e +348352d,28 +348352f,4 +3483530,ae +3483531,8 +3483533,6c +3483534,c +3483535,10 +3483536,d +3483537,57 +3483538,34 +3483539,4 +348353c,c +348353d,10 +348353e,d +348353f,57 +3483540,34 +3483541,4 +3483543,1 +3483544,c +3483545,10 +3483546,d +3483547,57 +3483548,34 +3483549,4 +348354b,2 +348354c,8f +348354d,bf +348354f,10 +3483550,27 +3483551,bd +3483553,18 +3483554,3 +3483555,e0 +3483557,8 +348355c,2 +348355d,4 +348355e,40 +348355f,21 +3483560,3c +3483561,9 +3483562,80 +3483563,40 +3483564,25 +3483565,29 +3483566,36 +3483567,8 3483568,91 -3483569,6b -348356b,74 +3483569,a +348356b,6c 348356c,34 348356d,1 348356f,ff 3483570,11 -3483571,61 -3483572,ff -3483573,f8 -3483578,92 -3483579,c -348357b,6c -348357c,11 -348357d,8a -348357e,ff -348357f,f5 -3483584,92 -3483585,c -3483587,6d -3483588,11 -3483589,8a -348358a,ff -348358b,f2 -3483590,92 -3483591,c -3483593,6e -3483594,11 -3483595,8a -3483596,ff -3483597,ef -348359c,a1 -348359d,b -348359f,69 -34835a0,a1 +3483571,41 +3483573,5 +3483578,1 +3483579,2a +348357a,48 +348357b,21 +348357c,91 +348357d,29 +3483580,15 +3483581,20 +3483583,1c +3483588,3c +3483589,9 +348358a,80 +348358b,40 +348358c,25 +348358d,29 +348358e,35 +348358f,fb +3483590,25 +3483591,29 +3483593,1 +3483594,91 +3483595,2a +3483598,11 +3483599,40 +348359b,13 +34835a0,2 34835a1,a -34835a3,6c -34835a4,10 -34835a7,4 -34835ac,34 -34835ad,9 -34835af,ff -34835b0,a1 -34835b1,9 -34835b3,69 -34835b4,a1 -34835b5,9 +34835a2,58 +34835a3,21 +34835a4,91 +34835a5,6b +34835a7,74 +34835a8,34 +34835a9,1 +34835ab,ff +34835ac,11 +34835ad,61 +34835ae,ff +34835af,f8 +34835b4,92 +34835b5,c 34835b7,6c -34835b8,3 -34835b9,e0 -34835bb,8 -34835c0,7 -34835c1,9 -34835c2,f -34835c3,2 -34835c4,3 -34835c5,1 -34835c6,d -34835c7,b -34835cd,1 -34835ce,1 -34835cf,1 -34835d0,1 -34835d1,1 -34835d3,1 -34835d4,1 -34835d5,1 -34835d6,1 -34835d7,1 -34835d9,1 -34835db,1 -34835dc,1 -34835dd,1 -34835de,1 -34835df,1 -34835e0,1 -34835e1,1 -34835e2,1 -34835e5,33 -34835e6,8 -34835e7,21 -34835e8,20 -34835e9,f -34835eb,47 -34835ec,15 -34835ed,ea -34835ef,e -34835f0,3c -34835f1,2 -34835f2,80 -34835f3,12 -34835f4,8c -34835f5,42 -34835f6,a5 -34835f7,d4 -34835f8,8e -34835f9,6f -34835fb,a4 -34835fd,f -34835fe,7a -34835ff,3 -3483600,14 -3483601,40 -3483603,5 -3483604,34 -3483605,2 -3483606,48 -3483607,30 -3483608,15 -3483609,e2 -348360b,7 -3483610,24 -3483611,19 -3483613,3 -3483614,10 -3483617,4 -3483618,34 -3483619,2 -348361a,63 -348361b,11 -348361c,15 -348361d,e2 -348361f,2 -3483624,24 -3483625,19 -3483627,3 -3483628,3 -3483629,e0 -348362b,8 -3483630,8d -3483631,ad -3483632,8a -3483633,a0 -3483634,34 -3483635,2 -3483636,80 -3483638,10 -3483639,4d -348363b,2 -3483640,10 -3483643,9 -3483644,3c -3483645,f -3483646,80 -3483647,1e -3483648,25 -3483649,ef -348364a,84 -348364b,a0 -348364c,81 -348364d,e2 -348364e,1c -348364f,bf -3483650,30 -3483651,42 -3483653,1 -3483654,10 -3483655,40 -3483657,2 -348365c,10 -348365f,2 -3483660,34 -3483661,2 -3483663,1 -3483664,a1 -3483665,e2 -3483666,1c -3483667,bf -3483668,3 -3483669,e0 -348366b,8 -3483671,33 -3483672,8 -3483673,21 -3483674,3c -3483675,2 -3483676,80 -3483677,12 -3483678,8c -3483679,42 -348367a,a5 -348367b,d4 -348367c,8e -348367d,6f -348367f,a4 +34835b8,11 +34835b9,8a +34835ba,ff +34835bb,f5 +34835c0,92 +34835c1,c +34835c3,6d +34835c4,11 +34835c5,8a +34835c6,ff +34835c7,f2 +34835cc,92 +34835cd,c +34835cf,6e +34835d0,11 +34835d1,8a +34835d2,ff +34835d3,ef +34835d8,a1 +34835d9,b +34835db,69 +34835dc,a1 +34835dd,a +34835df,6c +34835e0,10 +34835e3,4 +34835e8,34 +34835e9,9 +34835eb,ff +34835ec,a1 +34835ed,9 +34835ef,69 +34835f0,a1 +34835f1,9 +34835f3,6c +34835f4,3 +34835f5,e0 +34835f7,8 +34835fc,7 +34835fd,9 +34835fe,f +34835ff,2 +3483600,3 +3483601,1 +3483602,d +3483603,b +3483609,1 +348360a,1 +348360b,1 +348360c,1 +348360d,1 +348360f,1 +3483610,1 +3483611,1 +3483612,1 +3483613,1 +3483615,1 +3483617,1 +3483618,1 +3483619,1 +348361a,1 +348361b,1 +348361c,1 +348361d,1 +348361e,1 +3483621,33 +3483622,8 +3483623,21 +3483624,20 +3483625,f +3483627,47 +3483628,15 +3483629,ea +348362b,e +348362c,3c +348362d,2 +348362e,80 +348362f,12 +3483630,8c +3483631,42 +3483632,a5 +3483633,d4 +3483634,8e +3483635,6f +3483637,a4 +3483639,f +348363a,7a +348363b,3 +348363c,14 +348363d,40 +348363f,5 +3483640,34 +3483641,2 +3483642,48 +3483643,30 +3483644,15 +3483645,e2 +3483647,7 +348364c,24 +348364d,19 +348364f,3 +3483650,10 +3483653,4 +3483654,34 +3483655,2 +3483656,63 +3483657,11 +3483658,15 +3483659,e2 +348365b,2 +3483660,24 +3483661,19 +3483663,3 +3483664,3 +3483665,e0 +3483667,8 +348366c,8d +348366d,ad +348366e,8a +348366f,a0 +3483670,34 +3483671,2 +3483672,80 +3483674,10 +3483675,4d +3483677,2 +348367c,10 +348367f,9 +3483680,3c 3483681,f -3483682,7a -3483683,3 -3483684,14 -3483685,40 -3483687,5 -3483688,34 -3483689,2 -348368a,48 -348368b,30 -348368c,15 -348368d,e2 -348368f,7 -3483694,24 -3483695,19 -3483697,3 +3483682,80 +3483683,1e +3483684,25 +3483685,ef +3483686,84 +3483687,a0 +3483688,81 +3483689,e2 +348368a,1c +348368b,bf +348368c,30 +348368d,42 +348368f,1 +3483690,10 +3483691,40 +3483693,2 3483698,10 -348369b,4 +348369b,2 348369c,34 348369d,2 -348369e,63 -348369f,11 -34836a0,15 +348369f,1 +34836a0,a1 34836a1,e2 -34836a3,2 -34836a8,24 -34836a9,19 -34836ab,3 -34836ac,3 -34836ad,e0 -34836af,8 -34836b4,34 -34836b5,1 -34836b7,18 -34836b8,14 -34836b9,81 -34836bb,11 +34836a2,1c +34836a3,bf +34836a4,3 +34836a5,e0 +34836a7,8 +34836ad,33 +34836ae,8 +34836af,21 +34836b0,3c +34836b1,2 +34836b2,80 +34836b3,12 +34836b4,8c +34836b5,42 +34836b6,a5 +34836b7,d4 +34836b8,8e +34836b9,6f +34836bb,a4 +34836bd,f +34836be,7a +34836bf,3 34836c0,14 34836c1,40 -34836c3,f -34836c8,3c -34836c9,a -34836ca,80 -34836cb,12 -34836cc,25 -34836cd,4a -34836ce,a5 -34836cf,d0 -34836d0,81 -34836d1,48 -34836d3,a6 -34836d4,31 -34836d5,8 -34836d7,20 -34836d8,11 -34836db,9 -34836dc,34 -34836dd,2 -34836e0,34 -34836e1,2 -34836e3,1 -34836e4,81 -34836e5,48 -34836e7,7b -34836e8,34 -34836e9,9 -34836eb,7 -34836ec,11 -34836ed,9 -34836ef,4 +34836c3,5 +34836c4,34 +34836c5,2 +34836c6,48 +34836c7,30 +34836c8,15 +34836c9,e2 +34836cb,7 +34836d0,24 +34836d1,19 +34836d3,3 +34836d4,10 +34836d7,4 +34836d8,34 +34836d9,2 +34836da,63 +34836db,11 +34836dc,15 +34836dd,e2 +34836df,2 +34836e4,24 +34836e5,19 +34836e7,3 +34836e8,3 +34836e9,e0 +34836eb,8 34836f0,34 -34836f1,a -34836f3,8 -34836f4,11 -34836f5,a -34836f7,2 -34836fc,34 -34836fd,2 -3483700,3 -3483701,e0 -3483703,8 -3483708,a2 -3483709,25 -348370b,21 -348370c,3c -348370d,10 -348370e,80 -348370f,40 -3483710,26 -3483711,10 -3483712,17 -3483713,fc -3483714,26 -3483715,10 -3483717,4 -3483718,8e -3483719,a -348371c,11 -348371d,40 -348371f,b -3483725,a -3483726,7c -3483727,2 -3483728,1 -3483729,f1 -348372a,78 -348372b,20 -348372c,31 -348372d,58 -348372e,ff -3483731,18 -3483732,c2 +34836f1,1 +34836f3,18 +34836f4,14 +34836f5,81 +34836f7,11 +34836fc,14 +34836fd,40 +34836ff,f +3483704,3c +3483705,a +3483706,80 +3483707,12 +3483708,25 +3483709,4a +348370a,a5 +348370b,d0 +348370c,81 +348370d,48 +348370f,a6 +3483710,31 +3483711,8 +3483713,20 +3483714,11 +3483717,9 +3483718,34 +3483719,2 +348371c,34 +348371d,2 +348371f,1 +3483720,81 +3483721,48 +3483723,7b +3483724,34 +3483725,9 +3483727,7 +3483728,11 +3483729,9 +348372b,4 +348372c,34 +348372d,a +348372f,8 +3483730,11 +3483731,a 3483733,2 -3483734,17 -3483737,3 -3483738,31 -3483739,59 -348373b,ff -348373c,81 -348373d,ea -3483740,3 -3483741,2a -3483742,c8 -3483743,25 -3483744,8 -3483745,10 -3483746,d -3483747,c5 -3483748,a1 -3483749,f9 -348374c,3 -348374d,e0 -348374f,8 +3483738,34 +3483739,2 +348373c,3 +348373d,e0 +348373f,8 +3483744,a2 +3483745,25 +3483747,21 +3483748,3c +3483749,10 +348374a,80 +348374b,40 +348374c,26 +348374d,10 +348374e,17 +348374f,fc +3483750,26 +3483751,10 +3483753,4 +3483754,8e +3483755,a +3483758,11 +3483759,40 +348375b,b +3483761,a +3483762,7c +3483763,2 +3483764,1 +3483765,f1 +3483766,78 +3483767,20 +3483768,31 +3483769,58 +348376a,ff +348376d,18 +348376e,c2 +348376f,2 +3483770,17 +3483773,3 +3483774,31 +3483775,59 +3483777,ff +3483778,81 +3483779,ea +348377c,3 +348377d,2a +348377e,c8 +348377f,25 +3483780,8 +3483781,10 +3483782,d +3483783,d4 +3483784,a1 +3483785,f9 +3483788,3 +3483789,e0 +348378b,8 34b3000,ac 34b3001,86 34b3004,ac diff --git a/data/symbols.json b/data/symbols.json index 4d9b61bcb..82a46efd5 100644 --- a/data/symbols.json +++ b/data/symbols.json @@ -1,6 +1,6 @@ { - "ADULT_INIT_ITEMS": "034835C0", - "ADULT_VALID_ITEMS": "034835CC", + "ADULT_INIT_ITEMS": "034835FC", + "ADULT_VALID_ITEMS": "03483608", "EXTENDED_ITEM_DATA": "03482008", "FAIRY_ITEMS": "03481C03", "FAIRY_OCARINA_ITEM": "03481C02", diff --git a/version.py b/version.py index af0992f74..00400f4cf 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.19.11 f.LUM' +__version__ = '2.19.12 f.LUM' From 301b5b7ad2b0426aa2f030bc23b1afe71c485140 Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 20 Sep 2018 01:05:33 -0400 Subject: [PATCH 558/755] Fix can_finish_adult_trades check for zora_thawed --- BaseClasses.py | 2 +- version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index bdc72afc9..807d2df6b 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -461,7 +461,7 @@ def can_leave_forest(self): def can_finish_adult_trades(self): zora_thawed = (self.can_play('Zeldas Lullaby') or (self.has('Hover Boots') and self.world.logic_zora_with_hovers)) and self.has_blue_fire() carpenter_access = self.has('Epona') or self.has('Progressive Hookshot', 2) - return (self.has('Claim Check') or ((self.has('Progressive Strength Upgrade') or self.can_blast_or_smash() or self.has('Bow')) and (((self.has('Eyedrops') or self.has('Eyeball Frog') or self.has('Prescription') or self.has('Broken Sword')) and self.has_blue_fire()) or ((self.has('Poachers Saw') or self.has('Odd Mushroom') or self.has('Cojiro') or self.has('Pocket Cucco') or self.has('Pocket Egg')) and zora_thawed and carpenter_access)))) + return (self.has('Claim Check') or ((self.has('Progressive Strength Upgrade') or self.can_blast_or_smash() or self.has_bow()) and (((self.has('Eyedrops') or self.has('Eyeball Frog') or self.has('Prescription') or self.has('Broken Sword')) and zora_thawed) or ((self.has('Poachers Saw') or self.has('Odd Mushroom') or self.has('Cojiro') or self.has('Pocket Cucco') or self.has('Pocket Egg')) and zora_thawed and carpenter_access)))) def has_bottle(self): is_normal_bottle = lambda item: (item.startswith('Bottle') and item != 'Bottle with Letter') diff --git a/version.py b/version.py index 00400f4cf..9fd1c1b86 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.19.12 f.LUM' +__version__ = '2.19.13 f.LUM' From 52adbb2ee0eccea6df9171094b0cf734c924e4e7 Mon Sep 17 00:00:00 2001 From: Dennis Date: Thu, 20 Sep 2018 10:55:59 +0200 Subject: [PATCH 559/755] expanded the adult trade option to have a min and max --- ItemList.py | 9 ++++- Settings.py | 103 +++++++++++++++++++++++++++++++++++++++------------- 2 files changed, 85 insertions(+), 27 deletions(-) diff --git a/ItemList.py b/ItemList.py index e57e73561..ac788150d 100644 --- a/ItemList.py +++ b/ItemList.py @@ -557,11 +557,18 @@ def get_pool_core(world): pool.extend(DC_MQ) else: pool.extend(DC_vanilla) + for _ in range(normal_bottle_count): bottle = random.choice(normal_bottles) pool.append(bottle) - tradeitem = random.choice(tradeitems[tradeitemoptions.index(world.logic_earliest_adult_trade):]) + + earliest_trade = tradeitemoptions.index(world.logic_earliest_adult_trade) + latest_trade = tradeitemoptions.index(world.logic_latest_adult_trade) + if earliest_trade > latest_trade: + earliest_trade, latest_trade = latest_trade, earliest_trade + tradeitem = random.choice(tradeitems[earliest_trade:latest_trade+1]) pool.append(tradeitem) + pool.extend(songlist) if world.shuffle_mapcompass == 'remove': diff --git a/Settings.py b/Settings.py index a72720b9d..85cebfdff 100644 --- a/Settings.py +++ b/Settings.py @@ -1169,22 +1169,6 @@ def parse_custom_navi_color(s): Spiritual Stones. ''' }), - Setting_Info('logic_no_trade_biggoron', bool, 1, True, - { - 'help': '''\ - You will not be expected to trade for biggoron's reward. - ''', - 'action': 'store_true' - }, - { - 'text': 'No Biggoron reward', - 'group': 'rewards', - 'widget': 'Checkbutton', - 'default': 'unchecked', - 'tooltip':'''\ - Adult trade sequence is time consuming. - ''' - }), Setting_Info('logic_no_1500_archery', bool, 1, True, { 'help': '''\ @@ -1234,6 +1218,22 @@ def parse_custom_navi_color(s): Racing twice is repetitive. ''' }), + Setting_Info('logic_no_trade_biggoron', bool, 1, True, + { + 'help': '''\ + You will not be expected to trade for biggoron's reward. + ''', + 'action': 'store_true' + }, + { + 'text': 'No Biggoron reward', + 'group': 'rewards', + 'widget': 'Checkbutton', + 'default': 'unchecked', + 'tooltip':'''\ + Adult trade sequence is time consuming. + ''' + }), Setting_Info('logic_earliest_adult_trade', str, 2, True, { 'default': 'pocket_egg', @@ -1268,22 +1268,73 @@ def parse_custom_navi_color(s): 'text': 'Adult Trade Sequence', 'group': 'rewards', 'widget': 'Combobox', + 'dependency': lambda guivar: not guivar['logic_no_trade_biggoron'].get(), 'default': 'Pocket Egg', 'options': { - 'Pocket Egg': 'pocket_egg', - 'Pocket Cucco': 'pocket_cucco', - 'Cojiro': 'cojiro', - 'Odd Mushroom': 'odd_mushroom', - 'Poachers Saw': 'poachers_saw', - 'Broken Sword': 'broken_sword', - 'Prescription': 'prescription', - 'Eyeball Frog': 'eyeball_frog', - 'Eyedrops': 'eyedrops', - 'Claim Check': 'claim_check'}, + 'Earliest: Pocket Egg': 'pocket_egg', + 'Earliest: Pocket Cucco': 'pocket_cucco', + 'Earliest: Cojiro': 'cojiro', + 'Earliest: Odd Mushroom': 'odd_mushroom', + 'Earliest: Poachers Saw': 'poachers_saw', + 'Earliest: Broken Sword': 'broken_sword', + 'Earliest: Prescription': 'prescription', + 'Earliest: Eyeball Frog': 'eyeball_frog', + 'Earliest: Eyedrops': 'eyedrops', + 'Earliest: Claim Check': 'claim_check'}, 'tooltip':'''\ Select the earliest item that will appear in the adult trade sequence. ''' }), + Setting_Info('logic_latest_adult_trade', str, 2, True, + { + 'default': 'claim_check', + 'const': 'always', + 'nargs': '?', + 'choices': [ + 'pocket_egg', + 'pocket_cucco', + 'cojiro', + 'odd_mushroom', + 'poachers_saw', + 'broken_sword', + 'prescription', + 'eyeball_frog', + 'eyedrops', + 'claim_check'], + 'help': '''\ + Select the latest item that will appear in the adult trade sequence: + 'pocket_egg' + 'pocket_cucco' + 'cojiro' + 'odd_mushroom' + 'poachers_saw' + 'broken_sword' + 'prescription' + 'eyeball_frog' + 'eyedrops' + 'claim_check' + ''' + }, + { + 'group': 'rewards', + 'widget': 'Combobox', + 'dependency': lambda guivar: not guivar['logic_no_trade_biggoron'].get(), + 'default': 'Claim Check', + 'options': { + 'Latest: Pocket Egg': 'pocket_egg', + 'Latest: Pocket Cucco': 'pocket_cucco', + 'Latest: Cojiro': 'cojiro', + 'Latest: Odd Mushroom': 'odd_mushroom', + 'Latest: Poachers Saw': 'poachers_saw', + 'Latest: Broken Sword': 'broken_sword', + 'Latest: Prescription': 'prescription', + 'Latest: Eyeball Frog': 'eyeball_frog', + 'Latest: Eyedrops': 'eyedrops', + 'Latest: Claim Check': 'claim_check'}, + 'tooltip':'''\ + Select the latest item that will appear in the adult trade sequence. + ''' + }), Setting_Info('logic_man_on_roof', bool, 1, True, { 'help': '''\ From b225431fcbef2b01d2252c10c3d5b6ddaf6fadf2 Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 20 Sep 2018 05:16:37 -0400 Subject: [PATCH 560/755] Fix typo in junk items list and scrub arrow/seeds --- ItemList.py | 4 ++-- version.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ItemList.py b/ItemList.py index 52c74bb77..ed775ce50 100644 --- a/ItemList.py +++ b/ItemList.py @@ -374,7 +374,7 @@ 2 * ['Bombs (10)'] + 8 * ['Arrows (5)'] + 2 * ['Arrows (10)'] + - 5 * ['Deku Sticks (1)'] + + 5 * ['Deku Stick (1)'] + 5 * ['Deku Nuts (5)'] + 5 * ['Deku Seeds (30)'] + 10 * ['Rupees (5)'] + @@ -684,7 +684,7 @@ def get_pool_core(world): pool.extend(['Bombs (5)', 'Recovery Heart', 'Rupees (5)']) pool.extend(deku_scrubs_items) for _ in range(7): - pool.append('Arrows (30)' if random.int(4) > 0 else 'Deku Seeds (30)') + pool.append('Arrows (30)' if random.randint(0,3) > 0 else 'Deku Seeds (30)') else: if world.dungeon_mq['DT']: diff --git a/version.py b/version.py index 9fd1c1b86..9326ccf38 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.19.13 f.LUM' +__version__ = '2.19.14 f.LUM' From 54f6e0f44a54c0ac95906fc8120edb29d4f0c560 Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Thu, 20 Sep 2018 07:06:27 -0300 Subject: [PATCH 561/755] Update Regions.py --- Regions.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Regions.py b/Regions.py index 773abd099..133d2f8fd 100644 --- a/Regions.py +++ b/Regions.py @@ -643,12 +643,12 @@ def create_regions(world): 'Adult Spirit Temple', ['Spirit Temple MQ Child Center Chest', 'Spirit Temple MQ Child Climb South Chest', 'Spirit Temple MQ Lower NE Main Room Chest', 'Spirit Temple MQ Upper NE Main Room Chest', 'Spirit Temple MQ Beamos Room Chest', 'Spirit Temple MQ Ice Trap Chest', - 'Spirit Temple MQ Boss Key Chest', 'GS Spirit Temple MQ Iron Knuckle West', 'GS Spirit Temple MQ Iron Knuckle North'], + 'Spirit Temple MQ Boss Key Chest', 'GS Spirit Temple MQ Sun Block Room', 'GS Spirit Temple MQ Iron Knuckle West', + 'GS Spirit Temple MQ Iron Knuckle North'], ['Adult Spirit Temple Descent', 'Adult Spirit Temple to Shared', 'Spirit Temple Climbable Wall', 'Mirror Shield Exit']), create_dungeon_region( 'Spirit Temple Shared', - ['Spirit Temple MQ Child Climb North Chest', 'Spirit Temple MQ Compass Chest', 'Spirit Temple MQ Sun Block Room Chest', - 'GS Spirit Temple MQ Sun Block Room'], + ['Spirit Temple MQ Child Climb North Chest', 'Spirit Temple MQ Compass Chest', 'Spirit Temple MQ Sun Block Room Chest'], ['Silver Gauntlets Exit']), create_dungeon_region( 'Lower Adult Spirit Temple', From 8bd63c432bcd19e40e7702c1c16470a27090f0b5 Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Thu, 20 Sep 2018 07:13:34 -0300 Subject: [PATCH 562/755] Logic Update for MQ Dungeons IGNORE CHANGES TO VANILLA DUNGEONS --- Rules.py | 111 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 59 insertions(+), 52 deletions(-) diff --git a/Rules.py b/Rules.py index 3fd04b5cc..da13c5357 100644 --- a/Rules.py +++ b/Rules.py @@ -414,23 +414,21 @@ def dung_rules_dt0(world): # MQ Deku Tree def dung_rules_dtmq(world): - set_rule(world.get_entrance('Deku Tree Compass Passage'), lambda state: state.has('Slingshot')) - set_rule(world.get_entrance('Deku Tree Basement Path'), lambda state: state.has('Slingshot')) + set_rule(world.get_entrance('Deku Tree Compass Passage'), lambda state: state.has_slingshot() and (state.has_sticks() or state.can_use('Dins Fire'))) + set_rule(world.get_entrance('Deku Tree Basement Path'), lambda state: state.has_slingshot() and (state.has_sticks() or state.can_use('Dins Fire'))) + set_rule(world.get_location('Deku Tree MQ Slingshot Chest'), lambda state: state.can_child_attack()) + set_rule(world.get_location('Deku Tree MQ Slingshot Room Back Chest'), lambda state: state.has_sticks() or state.can_use('Dins Fire')) + set_rule(world.get_location('Deku Tree MQ Basement Chest'), lambda state: state.has_sticks() or state.can_use('Dins Fire')) set_rule(world.get_location('Deku Tree MQ After Spinning Log Chest'), lambda state: state.can_play('Song of Time')) + set_rule(world.get_location('DT MQ Deku Scrub Deku Shield'), lambda state: state.has_slingshot() or state.has_nuts() or state.has('Boomerang') or state.can_use('Dins Fire') or state.has_bombchus()) - # GS - set_rule(world.get_location('GS Deku Tree MQ Compass Room'), lambda state: state.has('Boomerang') and ((state.has('Bomb Bag') and state.can_play('Song of Time')) or (state.has_bombchus() and state.can_leave_forest()))) - set_rule(world.get_location('GS Deku Tree MQ Basement Ceiling'), lambda state: state.has('Boomerang') and state.can_play('Song of Time')) - set_rule(world.get_location('GS Deku Tree MQ Basement Back Room'), lambda state: state.has('Boomerang')) - -# MQ Deku Tree -def dung_rules_dtmq(world): - set_rule(world.get_entrance('Deku Tree Compass Passage'), lambda state: state.has('Slingshot')) - set_rule(world.get_entrance('Deku Tree Basement Path'), lambda state: state.has('Slingshot')) - set_rule(world.get_location('Deku Tree MQ After Spinning Log Chest'), lambda state: state.can_play('Song of Time')) + # Boss + set_rule(world.get_location('Queen Gohma Heart'), lambda state: state.has('Buy Deku Shield') and (state.has('Kokiri Sword') or state.has_sticks())) + set_rule(world.get_location('Queen Gohma'), lambda state: state.has('Buy Deku Shield') and (state.has('Kokiri Sword') or state.has_sticks())) # GS - set_rule(world.get_location('GS Deku Tree MQ Compass Room'), lambda state: state.has('Boomerang') and ((state.has('Bomb Bag') and state.can_play('Song of Time')) or (state.has_bombchus() and state.can_leave_forest()))) + set_rule(world.get_location('GS Deku Tree MQ Lobby'), lambda state: state.can_child_attack()) + set_rule(world.get_location('GS Deku Tree MQ Compass Room'), lambda state: state.has('Boomerang') and ((state.has_bombs() and state.can_play('Song of Time')) or state.has_bombchus())) set_rule(world.get_location('GS Deku Tree MQ Basement Ceiling'), lambda state: state.has('Boomerang') and state.can_play('Song of Time')) set_rule(world.get_location('GS Deku Tree MQ Basement Back Room'), lambda state: state.has('Boomerang')) @@ -483,13 +481,15 @@ def dung_rules_jb0(world): # Jabu Jabu's Belly MQ def dung_rules_jbmq(world): - set_rule(world.get_entrance('Jabu Jabus Belly Cow Switch'), lambda state: state.has('Slingshot')) + set_rule(world.get_entrance('Jabu Jabus Belly Cow Switch'), lambda state: state.has_slingshot()) set_rule(world.get_entrance('Jabu Jabus Belly Tentacle Access'), lambda state: state.has_explosives() and state.has('Boomerang')) + set_rule(world.get_entrance('Jabu Jabus Belly Octopus'), lambda state: state.has_sticks() or (state.has('Kokiri Sword') and state.can_use('Dins Fire'))) set_rule(world.get_location('Jabu Jabus Belly MQ Map Chest'), lambda state: state.has_explosives()) - set_rule(world.get_location('Jabu Jabus Belly MQ Entry Side Chest'), lambda state: state.has('Slingshot')) + set_rule(world.get_location('Jabu Jabus Belly MQ Entry Side Chest'), lambda state: state.has_slingshot()) # GS set_rule(world.get_location('GS Jabu Jabu MQ Boomerang Room'), lambda state: state.can_play('Song of Time')) + set_rule(world.get_location('GS Jabu Jabu MQ Tailpasaran Room'), lambda state: state.has_sticks() or state.can_use('Dins Fire')) set_rule(world.get_location('GS Jabu Jabu MQ Invisible Enemies Room'), lambda state: state.can_see_with_lens()) # Forest Temple Vanilla @@ -555,8 +555,8 @@ def dung_rules_fit0(world): # Fire Temple Vanilla set_rule(world.get_entrance('Fire Temple Early Climb'), lambda state: state.has_GoronTunic() and state.has('Small Key (Fire Temple)', 4) and state.has('Progressive Strength Upgrade') and (state.has_explosives() or ((state.has_bow() or state.has('Progressive Hookshot')) and state.is_adult()))) set_rule(world.get_entrance('Fire Temple Fire Maze Escape'), lambda state: state.has('Small Key (Fire Temple)', 8) or (state.has('Small Key (Fire Temple)', 7) and state.has('Hover Boots') and state.has('Hammer') and state.is_adult())) - set_rule(world.get_location('Fire Temple Fire Dancer Chest'), lambda state: (state.has('Small Key (Fire Temple)', 8) or not world.keysanity) and state.is_adult() and state.has('Hammer')) - set_rule(world.get_location('Fire Temple Boss Key Chest'), lambda state: (state.has('Small Key (Fire Temple)', 8) or not world.keysanity) and state.is_adult() and state.has('Hammer')) + set_rule(world.get_location('Fire Temple Fire Dancer Chest'), lambda state: (state.has('Small Key (Fire Temple)', 8) or (not world.keysanity and not world.dungeon_mq['FiT'])) and state.is_adult() and state.has('Hammer')) + set_rule(world.get_location('Fire Temple Boss Key Chest'), lambda state: (state.has('Small Key (Fire Temple)', 8) or (not world.keysanity and not world.dungeon_mq['FiT'])) and state.is_adult() and state.has('Hammer')) set_rule(world.get_location('Fire Temple Big Lava Room Bombable Chest'), lambda state: state.has('Small Key (Fire Temple)', 2) and state.has_explosives()) set_rule(world.get_location('Fire Temple Big Lava Room Open Chest'), lambda state: state.has('Small Key (Fire Temple)', 2)) set_rule(world.get_location('Fire Temple Map Chest'), lambda state: state.has('Small Key (Fire Temple)', 6) or (state.has('Small Key (Fire Temple)', 5) and state.is_adult() and state.has_bow())) @@ -576,7 +576,7 @@ def dung_rules_fit0(world): set_rule(world.get_location('GS Fire Temple Unmarked Bomb Wall'), lambda state: state.has('Small Key (Fire Temple)', 4) and state.has_explosives()) set_rule(world.get_location('GS Fire Temple East Tower Climb'), lambda state: state.has_ocarina() and state.has('Small Key (Fire Temple)', 6) and state.has('Progressive Hookshot') and state.is_adult()) set_rule(world.get_location('GS Fire Temple East Tower Top'), lambda state: state.has_ocarina() and state.has('Small Key (Fire Temple)', 6) and state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('GS Fire Temple Basement'), lambda state: (state.has('Small Key (Fire Temple)', 8) or not world.keysanity) and state.has('Hammer') and state.is_adult()) + set_rule(world.get_location('GS Fire Temple Basement'), lambda state: (state.has('Small Key (Fire Temple)', 8) or (not world.keysanity and not world.dungeon_mq['FiT'])) and state.has('Hammer') and state.is_adult()) # MQ Fire Temple # "Quirks to Know": @@ -607,32 +607,34 @@ def dung_rules_fitmq(world): # Water Temple Vanilla def dung_rules_wt0(world): # Water Temple vanilla - set_rule(world.get_entrance('Water Temple Central Pillar'), lambda state: (state.has('Bow') or state.can_use('Dins Fire') or state.has('Small Key (Water Temple)', 5)) and state.can_play('Zeldas Lullaby')) + set_rule(world.get_entrance('Water Temple Central Pillar'), lambda state: (state.has_bow() or (state.has('Dins Fire') and state.has('Magic Meter')) or state.has('Small Key (Water Temple)', 5)) and state.can_play('Zeldas Lullaby')) set_rule(world.get_entrance('Water Temple Upper Locked Door'), lambda state: state.has('Small Key (Water Temple)', 5) and (state.can_play('Zeldas Lullaby') or world.keysanity)) - set_rule(world.get_location('Water Temple Torches Chest'), lambda state: (state.has('Bow') or state.can_use('Dins Fire')) and state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('Water Temple Dragon Chest'), lambda state: (state.has('Progressive Strength Upgrade') and state.can_play('Zeldas Lullaby')) or (state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity) and state.can_play('Song of Time') and state.has('Bow'))) - set_rule(world.get_location('Water Temple Central Bow Target Chest'), lambda state: state.has('Bow') and state.has('Progressive Strength Upgrade') and state.can_play('Zeldas Lullaby') and (state.has('Hover Boots') or state.can_use('Longshot'))) - set_rule(world.get_location('Water Temple Boss Key Chest'), lambda state: (state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity) and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and state.can_use('Longshot')) or (state.has('Small Key (Water Temple)', 5) and (item_name(state, 'Water Temple Boss Key Chest') == 'Small Key (Water Temple)' or not world.keys_placed))) #If key for key, this lets the logic reduce the small key reqs for every other locked door. + set_rule(world.get_location('Water Temple Torches Chest'), lambda state: (state.has_bow() or (state.has('Dins Fire') and state.has('Magic Meter'))) and state.can_play('Zeldas Lullaby')) + set_rule(world.get_location('Water Temple Dragon Chest'), lambda state: (state.has('Progressive Strength Upgrade') and state.can_play('Zeldas Lullaby')) or (state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity) and state.can_play('Song of Time') and state.has_bow())) + set_rule(world.get_location('Water Temple Central Bow Target Chest'), lambda state: state.has_bow() and state.has('Progressive Strength Upgrade') and state.can_play('Zeldas Lullaby') and (state.has('Hover Boots') or state.has('Progressive Hookshot', 2))) + set_always_allow(world.get_location('Water Temple Boss Key Chest'), lambda item, state: item.name == 'Small Key (Water Temple)') + set_rule(world.get_location('Water Temple Boss Key Chest'), lambda state: (state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity) and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and state.has('Progressive Hookshot', 2)) or item_name(state, 'Water Temple Boss Key Chest') == 'Small Key (Water Temple)') #If key for key, this lets the logic reduce the small key reqs for every other locked door. set_rule(world.get_location('Water Temple Cracked Wall Chest'), lambda state: state.has_explosives()) set_rule(world.get_location('Water Temple Dark Link Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity)) - set_rule(world.get_location('Water Temple River Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and state.can_play('Song of Time') and state.has('Bow') and (state.can_play('Zeldas Lullaby') or world.keysanity)) + set_rule(world.get_location('Water Temple River Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and state.can_play('Song of Time') and state.has_bow() and (state.can_play('Zeldas Lullaby') or world.keysanity)) set_rule(world.get_location('Water Temple Central Pillar Chest'), lambda state: state.has_ZoraTunic()) - # Boss - set_rule(world.get_location('Morpha'), lambda state: state.has('Boss Key (Water Temple)') and state.can_use('Longshot')) - set_rule(world.get_location('Morpha Heart'), lambda state: state.has('Boss Key (Water Temple)') and state.can_use('Longshot')) + # boss rules + set_rule(world.get_location('Morpha'), lambda state: state.has('Boss Key (Water Temple)') and state.has('Progressive Hookshot', 2)) + set_rule(world.get_location('Morpha Heart'), lambda state: state.has('Boss Key (Water Temple)') and state.has('Progressive Hookshot', 2)) # GS set_rule(world.get_location('GS Water Temple South Basement'), lambda state: state.has_explosives() and state.can_play('Zeldas Lullaby')) set_rule(world.get_location('GS Water Temple Serpent River'), lambda state: state.can_play('Song of Time') and state.has('Small Key (Water Temple)', 6)) - set_rule(world.get_location('GS Water Temple Falling Platform Room'), lambda state: state.can_use('Longshot')) - set_rule(world.get_location('GS Water Temple Central Room'), lambda state: state.can_use('Longshot') or state.can_use('Farores Wind')) - set_rule(world.get_location('GS Water Temple Near Boss Key Chest'), lambda state: state.can_use('Longshot') and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and (state.can_play('Zeldas Lullaby') or world.keysanity) and state.has('Small Key (Water Temple)', 5)) + set_rule(world.get_location('GS Water Temple Falling Platform Room'), lambda state: state.has('Progressive Hookshot', 2)) + set_rule(world.get_location('GS Water Temple Central Room'), lambda state: state.has('Progressive Hookshot', 2) or (state.has('Farores Wind') and state.has('Magic Meter'))) + #5 keys would be better but it wouldn't be compatible with the key for key scenarios, 6 will be identical pre-keysanity. + set_rule(world.get_location('GS Water Temple Near Boss Key Chest'), lambda state: state.has('Progressive Hookshot', 2) and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and (state.can_play('Zeldas Lullaby') or world.keysanity) and state.has('Small Key (Water Temple)', 6)) # MQ Water Temple # Water Temple Freestanding Key: # - There's an extra key in water temple because the door it was supposed to unlock shares a flag with something that it's required to do in order to reach the door in the first place. -# - This was fixed in OoT3D; these rules presume the door is removed. +# - This was fixed in OoT3D... and it's been fixed in rando I guess. def dung_rules_wtmq(world): set_rule(world.get_entrance('Water Temple Water Level Switch'), lambda state: state.can_play('Zeldas Lullaby')) set_rule(world.get_entrance('Water Temple Locked Door'), lambda state: state.has('Small Key (Water Temple)') and state.can_use('Longshot')) @@ -650,6 +652,7 @@ def dung_rules_wtmq(world): set_rule(world.get_location('GS Water Temple MQ Lizalfos Hallway'), lambda state: state.can_use('Dins Fire')) set_rule(world.get_location('GS Water Temple MQ Before Upper Water Switch'), lambda state: state.can_use('Longshot')) set_rule(world.get_location('GS Water Temple MQ South Basement'), lambda state: state.can_use('Fire Arrows')) + set_rule(world.get_location('GS Water Temple MQ North Basement'), lambda state: state.has('Small Key (Water Temple)', 2) or ((item_name(state, 'GS Water Temple MQ North Basement') == 'Small Key (Water Temple)' or not world.keys_placed) and state.has('Small Key (Water Temple)'))) # Spirit Temple Vanilla def dung_rules_spt0(world): @@ -693,23 +696,23 @@ def dung_rules_spt0(world): # Spirit Temple MQ # "Quirks to Know": # Spirit Temple Sun Block Room: -# - The switch to enter this room can be reached as adult with the Hover Boots, not just with Song of Time. +# - The switch to enter this room can be reached as adult without either hover boots or song of time. # GS Spirit Temple Sun Block Room: # - You can get the GS with Boomerang. You do have to stand in about the right spot. # Spirit Temple Silver Block Hallway Chest: -# - In the vanilla game, this eye switch gets permanently blocked off after the silver block is pushed. The logic assumes this will be changed to a temp flag. -# - You can thaw the eye switch and get this door open with Fire Arrows as adult, by the way. -# - It can also be done with bow but the only place you can get a line of sight is with the Song of Time. The shot is a little bit precise. +# - In the vanilla game, this eye switch gets permanently blocked off after the silver block is pushed. +# - This was changed so that the block does not appear pushed as child. def dung_rules_sptmq(world): set_rule(world.get_entrance('Spirit Temple Crawl Passage'), lambda state: state.can_play('Requiem of Spirit')) set_rule(world.get_entrance('Spirit Temple Ceiling Passage'), lambda state: state.has_bombchus() and state.can_use('Longshot') and state.can_use('Silver Gauntlets')) set_rule(world.get_entrance('Child Spirit Temple to Shared'), lambda state: state.has_bombchus() and state.has('Small Key (Spirit Temple)', 2)) set_rule(world.get_entrance('Adult Spirit Temple Descent'), lambda state: state.can_use('Fire Arrows') and state.has('Mirror Shield')) set_rule(world.get_entrance('Spirit Temple Climbable Wall'), lambda state: state.has('Small Key (Spirit Temple)', 6) and state.can_play('Zeldas Lullaby') and state.has('Hammer')) - set_rule(world.get_location('Spirit Temple MQ Entrance Back Left Chest'), lambda state: state.can_blast_or_smash() and ((state.can_play('Requiem of Spirit') and state.has('Slingshot')) or state.can_use('Bow'))) - set_rule(world.get_location('Spirit Temple MQ Entrance Back Right Chest'), lambda state: state.has_bombchus() or ((state.is_adult() and (state.has('Bow') or state.has('Progressive Hookshot'))) or (state.can_play('Requiem of Spirit') and (state.has('Slingshot') or state.has('Boomerang'))))) - set_rule(world.get_location('Spirit Temple MQ Child Left Chest'), lambda state: state.has_bombchus() and state.has('Slingshot') and state.can_use('Dins Fire')) - set_rule(world.get_location('Spirit Temple MQ Silver Block Hallway Chest'), lambda state: state.has_bombchus() and state.has('Small Key (Spirit Temple)', 7) and state.has('Slingshot') and (state.can_use('Dins Fire') or (state.can_use('Longshot') and state.can_use('Silver Gauntlets') and state.has('Bow') and (state.can_use('Fire Arrows') or state.can_play('Song of Time'))))) + set_rule(world.get_location('Spirit Temple MQ Entrance Back Left Chest'), lambda state: state.can_blast_or_smash() and ((state.can_play('Requiem of Spirit') and state.has_slingshot()) or state.can_use('Bow'))) + set_rule(world.get_location('Spirit Temple MQ Entrance Back Right Chest'), lambda state: state.has_bombchus() or ((state.is_adult() and (state.has_bow() or state.has('Progressive Hookshot'))) or (state.can_play('Requiem of Spirit') and (state.has_slingshot() or state.has('Boomerang'))))) + set_rule(world.get_location('Spirit Temple MQ Map Chest'), lambda state: state.has_sticks() or state.has('Kokiri Sword') or state.has_explosives()) + set_rule(world.get_location('Spirit Temple MQ Child Left Chest'), lambda state: (state.has_sticks() or state.has('Kokiri Sword')) and state.has_bombchus() and state.has_slingshot() and state.can_use('Dins Fire')) + set_rule(world.get_location('Spirit Temple MQ Silver Block Hallway Chest'), lambda state: state.has_bombchus() and state.has('Small Key (Spirit Temple)', 7) and state.has_slingshot() and (state.can_use('Dins Fire') or (state.can_use('Longshot') and state.can_use('Silver Gauntlets') and state.can_use('Fire Arrows')))) set_rule(world.get_location('Spirit Temple MQ Child Center Chest'), lambda state: state.has('Small Key (Spirit Temple)', 7) and state.has('Hammer') and state.can_play('Requiem of Spirit')) set_rule(world.get_location('Spirit Temple MQ Child Climb South Chest'), lambda state: state.has('Small Key (Spirit Temple)', 7)) set_rule(world.get_location('Spirit Temple MQ Lower NE Main Room Chest'), lambda state: state.can_play('Zelda Lullaby')) @@ -721,9 +724,9 @@ def dung_rules_sptmq(world): set_rule(world.get_location('Spirit Temple MQ Entrance Front Right Chest'), lambda state: state.has('Hammer')) set_rule(world.get_location('Spirit Temple MQ Lower Adult Right Chest'), lambda state: state.has('Small Key (Spirit Temple)', 7) and state.has('Hammer') and state.has_ocarina() and state.has('Song of Time') and state.has('Eponas Song') and state.has('Suns Song') and state.has('Song of Storms') and state.has('Zeldas Lullaby')) set_rule(world.get_location('Spirit Temple MQ Child Climb North Chest'), lambda state: state.has('Small Key (Spirit Temple)', 6)) - set_rule(world.get_location('Spirit Temple MQ Compass Chest'), lambda state: (state.can_play('Requiem of Spirit') and state.has('Small Key (Spirit Temple)', 7) and state.has('Slingshot')) or (state.can_use('Longshot') and state.can_use('Silver Gauntlets') and state.has('Bow')) or (state.has('Slingshot') and state.has('Bow'))) - set_rule(world.get_location('Spirit Temple MQ Sun Block Room Chest'), lambda state: state.can_play('Song of Time') or (state.can_use('Longshot') and state.can_use('Silver Gauntlets') and state.has('Hover Boots'))) - set_rule(world.get_entrance('Silver Gauntlets Exit'), lambda state: (state.has('Small Key (Spirit Temple)', 7) and ((state.can_play('Requiem of Spirit') and state.can_play('Song of Time')) or (state.can_use('Longshot') and state.can_use('Silver Gauntlets') and (state.has('Hover Boots') or state.can_play('Song of Time'))))) or (state.has('Small Key (Spirit Temple)', 4) and state.can_play('Song of Time') and state.can_see_with_lens())) + set_rule(world.get_location('Spirit Temple MQ Compass Chest'), lambda state: (state.can_play('Requiem of Spirit') and state.has('Small Key (Spirit Temple)', 7) and state.has_slingshot()) or (state.can_use('Longshot') and state.can_use('Silver Gauntlets') and state.has_bow())) or (state.has_slingshot() and state.has_bow())) + set_rule(world.get_location('Spirit Temple MQ Sun Block Room Chest'), lambda state: state.can_play('Song of Time') or (state.can_use('Longshot') and state.can_use('Silver Gauntlets'))) + set_rule(world.get_entrance('Silver Gauntlets Exit'), lambda state: (state.has('Small Key (Spirit Temple)', 7) and (state.can_play('Song of Time') or (state.can_use('Longshot') and state.can_use('Silver Gauntlets')))) or (state.has('Small Key (Spirit Temple)', 4) and state.can_play('Song of Time') and state.can_see_with_lens())) set_rule(world.get_location('Spirit Temple MQ Mirror Puzzle Invisible Chest'), lambda state: state.can_see_with_lens()) # Boss @@ -732,7 +735,6 @@ def dung_rules_sptmq(world): # GS set_rule(world.get_location('GS Spirit Temple MQ Lower Adult Right'), lambda state: state.has('Small Key (Spirit Temple)', 7) and state.has('Hammer') and state.has_ocarina() and state.has('Song of Time') and state.has('Eponas Song') and state.has('Suns Song') and state.has('Song of Storms') and state.has('Zeldas Lullaby')) - set_rule(world.get_location('GS Spirit Temple MQ Sun Block Room'), lambda state: (state.can_use('Longshot') and state.can_use('Silver Gauntlets') and (state.has('Hover Boots') or state.can_play('Song of Time'))) or (state.can_play('Song of Time') and state.has('Boomerang'))) set_rule(world.get_location('GS Spirit Temple MQ Iron Knuckle West'), lambda state: state.has('Small Key (Spirit Temple)', 7)) set_rule(world.get_location('GS Spirit Temple MQ Iron Knuckle North'), lambda state: state.has('Small Key (Spirit Temple)', 7)) @@ -821,21 +823,24 @@ def dung_rules_bw0(world): # Bottom of the Well MQ # "Quirks to Know": # Water Lowering Switch: -# - You can jumpslash this switch by jumping off with a Deku Stick, so no requirements need to be listed to lower the water. +# - You can jumpslash this switch by jumping off with a Deku Stick or Kokiri Sword. # Switch for West Inner Room Door: # - Explosives are not required to reach this switch. You can sidehop or backflip over the corner of the pit. +# Zelda's Lullaby opening the gates: +# - Similarly, if you have explosives, you can sidehop/backflip the corner of the pit to get into the main area. def dung_rules_bwmq(world): - set_rule(world.get_location('Bottom of the Well MQ Compass Chest'), lambda state: state.has('Kokiri Sword') or world.logic_child_deadhand) + set_rule(world.get_location('Bottom of the Well MQ Compass Chest'), lambda state: state.has('Kokiri Sword') or (state.has_sticks() and world.logic_child_deadhand)) set_rule(world.get_location('Bottom of the Well MQ Dead Hand Freestanding Key'), lambda state: state.has_explosives()) - set_rule(world.get_location('Bottom of the Well MQ Map Chest'), lambda state: state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('Bottom of the Well MQ East Inner Room Freestanding Key'), lambda state: state.can_play('Zeldas Lullaby') and state.has_projectile('child')) + set_rule(world.get_location('Bottom of the Well MQ Map Chest'), lambda state: state.can_play('Zeldas Lullaby') or state.has_explosives()) + set_rule(world.get_location('Bottom of the Well MQ East Inner Room Freestanding Key'), lambda state: state.can_play('Zeldas Lullaby') or state.has_explosives()) set_always_allow(world.get_location('Bottom of the Well MQ Lens Chest'), lambda item, state: item.name == 'Small Key (Bottom of the Well)') - set_rule(world.get_location('Bottom of the Well MQ Lens Chest'), lambda state: state.can_play('Zeldas Lullaby') and state.has_explosives() and (state.has('Small Key (Bottom of the Well)', 2) or item_name(state, 'Bottom of the Well MQ Lens Chest') == 'Small Key (Bottom of the Well)')) + set_rule(world.get_location('Bottom of the Well MQ Lens Chest'), lambda state: state.has_explosives() and (state.has('Small Key (Bottom of the Well)', 2) or item_name(state, 'Bottom of the Well MQ Lens Chest') == 'Small Key (Bottom of the Well)')) # GS - set_rule(world.get_location('GS Well MQ West Inner Room'), lambda state: state.can_play('Zeldas Lullaby') and state.can_see_with_lens()) + set_rule(world.get_location('GS Well MQ Basement'), lambda state: state.can_child_attack() or (state.can_play('Zeldas Lullaby') and state.can_see_with_lens() and (world.difficulty != 'ohko' or (state.can_use('Nayrus Love') and world.logic_lens != 'all')))) + set_rule(world.get_location('GS Well MQ West Inner Room'), lambda state: state.can_child_attack() and (state.can_play('Zeldas Lullaby') or state.has_explosives()) and state.can_see_with_lens()) set_always_allow(world.get_location('GS Well MQ Coffin Room'), lambda item, state: item.name == 'Small Key (Bottom of the Well)') - set_rule(world.get_location('GS Well MQ Coffin Room'), lambda state: state.has('Small Key (Bottom of the Well)', 2) or item_name(state, 'GS Well MQ Coffin Room') == 'Small Key (Bottom of the Well)') + set_rule(world.get_location('GS Well MQ Coffin Room'), lambda state: state.can_child_attack() and (state.has('Small Key (Bottom of the Well)', 2) or item_name(state, 'GS Well MQ Coffin Room') == 'Small Key (Bottom of the Well)')) # Ice Cavern Vanilla def dung_rules_ic0(world): @@ -892,6 +897,8 @@ def dung_rules_gtg0(world): set_rule(world.get_location('Gerudo Training Grounds Heavy Block Fourth Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.can_see_with_lens() and state.is_adult()) # Gerudo Training Grounds MQ +# I'm considering adding just hookshot as logic to fully clear this place, longshot not required. +# - It's maybe the sort of thing that needs a logic option... def dung_rules_gtgmq(world): set_rule(world.get_entrance('Gerudo Training Grounds Left Door'), lambda state: state.has_fire_source()) set_rule(world.get_entrance('Gerudo Training Grounds Right Door'), lambda state: state.has('Bow')) @@ -900,7 +907,7 @@ def dung_rules_gtgmq(world): set_rule(world.get_entrance('Gerudo Training Grounds Rusted Switch'), lambda state: state.has('Hammer')) set_rule(world.get_location('Gerudo Training Grounds MQ Hidden Ceiling Chest'), lambda state: state.can_see_with_lens()) set_rule(world.get_location('Gerudo Training Grounds MQ Maze Path Third Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 1)) - set_rule(world.get_location('Gerudo Training Grounds MQ Underwater Silver Rupee Chest'), lambda state: state.has('Hover Boots') and state.has_fire_source() and state.has('Progressive Hookshot') and state.has('Iron Boots') and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic()) and ((world.difficulty != 'ohko') or state.has_bottle() or state.can_use('Nayrus Love'))) + set_rule(world.get_location('Gerudo Training Grounds MQ Underwater Silver Rupee Chest'), lambda state: state.has('Hover Boots') and state.has_fire_source() and state.has('Progressive Hookshot') and state.has('Iron Boots') and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic())) set_rule(world.get_location('Gerudo Training Grounds MQ Heavy Block Chest'), lambda state: state.has('Progressive Strength Upgrade', 2)) set_rule(world.get_location('Gerudo Training Grounds MQ Eye Statue Chest'), lambda state: state.has('Bow')) set_rule(world.get_location('Gerudo Training Grounds MQ Ice Arrows Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 3) or (item_name(state, 'Gerudo Training Grounds MQ Ice Arrows Chest') == 'Small Key (Gerudo Training Grounds)' and state.has('Small Key (Gerudo Training Grounds)'))) @@ -940,7 +947,7 @@ def dung_rules_gcmq(world): set_rule(world.get_location('Ganons Castle Fire Trial Clear'), lambda state: state.has_GoronTunic() and state.can_use('Golden Gauntlets') and state.can_use('Light Arrows') and (state.can_use('Longshot') or state.has('Hover Boots'))) set_rule(world.get_location('Ganons Castle MQ Water Trial Chest'), lambda state: state.has_bottle()) set_rule(world.get_location('Ganons Castle Water Trial Clear'), lambda state: state.has_bottle() and state.can_use('Light Arrows') and state.has('Small Key (Ganons Castle)', 3)) - set_rule(world.get_location('Ganons Castle MQ Shadow Trial First Chest'), lambda state: (state.has('Bow') and (state.has('Progressive Hookshot') or state.has('Hover Boots'))) or (state.has('Hover Boots') and state.can_see_with_lens() and (state.has_explosives() or state.has('Progressive Strength Upgrade') or state.can_use('Dins Fire')))) + set_rule(world.get_location('Ganons Castle MQ Shadow Trial First Chest'), lambda state: (state.has('Bow') and (state.has('Progressive Hookshot') or state.has('Hover Boots'))) or (state.has('Hover Boots') and state.can_see_with_lens() and (state.has_explosives() or state.has('Progressive Strength Upgrade') or state.can_use('Dins Fire') or state.has_blue_fire()))) set_rule(world.get_location('Ganons Castle MQ Shadow Trial Second Chest'), lambda state: state.has('Bow') and state.can_see_with_lens() and (state.has('Hover Boots') or (state.has('Progressive Hookshot') and state.has_fire_source()))) set_rule(world.get_location('Ganons Castle Shadow Trial Clear'), lambda state: state.can_use('Light Arrows') and state.can_see_with_lens() and (state.has('Hover Boots') or (state.has('Progressive Hookshot') and state.has_fire_source()))) set_rule(world.get_location('Ganons Castle MQ Spirit Trial First Chest'), lambda state: state.has('Bow') and state.has('Hammer')) From e98876174d55366b707bd63241633af276f9d38c Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Thu, 20 Sep 2018 07:27:34 -0300 Subject: [PATCH 563/755] Logic Update for MQ Dungeons whoops bracket fix --- Rules.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Rules.py b/Rules.py index da13c5357..4e99d76d2 100644 --- a/Rules.py +++ b/Rules.py @@ -724,7 +724,7 @@ def dung_rules_sptmq(world): set_rule(world.get_location('Spirit Temple MQ Entrance Front Right Chest'), lambda state: state.has('Hammer')) set_rule(world.get_location('Spirit Temple MQ Lower Adult Right Chest'), lambda state: state.has('Small Key (Spirit Temple)', 7) and state.has('Hammer') and state.has_ocarina() and state.has('Song of Time') and state.has('Eponas Song') and state.has('Suns Song') and state.has('Song of Storms') and state.has('Zeldas Lullaby')) set_rule(world.get_location('Spirit Temple MQ Child Climb North Chest'), lambda state: state.has('Small Key (Spirit Temple)', 6)) - set_rule(world.get_location('Spirit Temple MQ Compass Chest'), lambda state: (state.can_play('Requiem of Spirit') and state.has('Small Key (Spirit Temple)', 7) and state.has_slingshot()) or (state.can_use('Longshot') and state.can_use('Silver Gauntlets') and state.has_bow())) or (state.has_slingshot() and state.has_bow())) + set_rule(world.get_location('Spirit Temple MQ Compass Chest'), lambda state: (state.can_play('Requiem of Spirit') and state.has('Small Key (Spirit Temple)', 7) and state.has_slingshot()) or (state.can_use('Longshot') and state.can_use('Silver Gauntlets') and state.has_bow()) or (state.has_slingshot() and state.has_bow())) set_rule(world.get_location('Spirit Temple MQ Sun Block Room Chest'), lambda state: state.can_play('Song of Time') or (state.can_use('Longshot') and state.can_use('Silver Gauntlets'))) set_rule(world.get_entrance('Silver Gauntlets Exit'), lambda state: (state.has('Small Key (Spirit Temple)', 7) and (state.can_play('Song of Time') or (state.can_use('Longshot') and state.can_use('Silver Gauntlets')))) or (state.has('Small Key (Spirit Temple)', 4) and state.can_play('Song of Time') and state.can_see_with_lens())) set_rule(world.get_location('Spirit Temple MQ Mirror Puzzle Invisible Chest'), lambda state: state.can_see_with_lens()) From 6d610ed68f25bfb8095b52e0b8bb4e3e856c740d Mon Sep 17 00:00:00 2001 From: mzxrules Date: Thu, 20 Sep 2018 06:29:41 -0400 Subject: [PATCH 564/755] Setting default targetting to hold no longer overrides saved setting --- Patches.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Patches.py b/Patches.py index f16d89e1d..e184fccb9 100644 --- a/Patches.py +++ b/Patches.py @@ -1144,9 +1144,9 @@ def write_save_table(rom): # song of time rom.write_int32(0xDB532C, 0x24050003) - # Set Default targeting option to Hold + # Set default targeting option to Hold if world.default_targeting == 'hold': - rom.write_bytes(0xB07200, [0x20, 0x0C, 0x00, 0x01 ]) + rom.write_byte(0xB71E6D, 0x01) # Set OHKO mode if world.difficulty == 'ohko': From 43e68454491457ca06da5a142c1dec717e5e896d Mon Sep 17 00:00:00 2001 From: mzxrules Date: Thu, 20 Sep 2018 08:46:50 -0400 Subject: [PATCH 565/755] corrected int24_as_bytes mask --- Rom.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Rom.py b/Rom.py index 872e50479..7cf81f5e4 100644 --- a/Rom.py +++ b/Rom.py @@ -207,7 +207,7 @@ def int16_as_bytes(value): return [(value >> 8) & 0xFF, value & 0xFF] def int24_as_bytes(value): - value = value & 0xFFFFFFFF + value = value & 0xFFFFFF return [(value >> 16) & 0xFF, (value >> 8) & 0xFF, value & 0xFF] def int32_as_bytes(value): From afcd8ba365da46bdcd64c3afb3a009ece8102650 Mon Sep 17 00:00:00 2001 From: mzxrules Date: Thu, 20 Sep 2018 10:28:20 -0400 Subject: [PATCH 566/755] Move dmadata access functions to LocalRom class functions, standardize function names --- MQ.py | 66 ++++--------------------------------------------- Rom.py | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++------- 2 files changed, 73 insertions(+), 70 deletions(-) diff --git a/MQ.py b/MQ.py index 6d64a1693..cdfc28382 100644 --- a/MQ.py +++ b/MQ.py @@ -48,7 +48,6 @@ import json from struct import pack, unpack -DMA_TABLE = 0x7430 SCENE_TABLE = 0xB71440 @@ -105,6 +104,7 @@ def __init__(self, delta): self.polytypes = delta['PolyTypes'] self.cams = delta['Cams'] + class Icon(object): def __init__(self, data): self.icon = data["Icon"]; @@ -128,6 +128,7 @@ def write_to_floormap(self, rom:LocalRom, addr): p.write_to_floormap(rom, addr + cur) cur += 0x0C + class IconPoint(object): def __init__(self, point): self.flag = point["Flag"] @@ -355,6 +356,7 @@ def append_path_data(self, rom:LocalRom): self.file.end = cur return records_offset + class Room(object): def __init__(self, room): self.file = File(room['File']) @@ -416,7 +418,6 @@ def patch_files(rom:LocalRom, mq_scenes:list): patch_ice_cavern_scene_header(rom) scene.write_data(rom) - verify_dma(rom) def get_json(): @@ -440,6 +441,7 @@ def patch_ice_cavern_scene_header(rom): rom.buffer[0x2BEB000:0x2BEB038] = rom.buffer[0x2BEB008:0x2BEB040] rom.write_int32s(0x2BEB038, [0x0D000000, 0x02000000]) + def patch_spirit_temple_mq_room_6(rom:LocalRom, room_addr): cur = room_addr @@ -483,8 +485,6 @@ def patch_spirit_temple_mq_room_6(rom:LocalRom, room_addr): # make the child header skip the first actor, # which avoids the spawning of the block while in the hole - - cmd_addr = room_addr + cmd_actors_offset actor_list_addr += 0x10 actors = rom.read_byte(cmd_addr + 1) @@ -499,15 +499,6 @@ def patch_spirit_temple_mq_room_6(rom:LocalRom, room_addr): rom.write_int32s(room_addr, [0x18000000, seg]) - - -def get_dma_record(rom:LocalRom, cur): - start = rom.read_int32(cur) - end = rom.read_int32(cur+0x04) - size = end-start - return start, end, size - - def verify_remap(scenes): def test_remap(file:File): if file.remap is not None: @@ -527,56 +518,9 @@ def test_remap(file:File): print("{0} - {1}".format(result, file)) -def verify_dma(rom:LocalRom): - cur = DMA_TABLE - overlapping_records = [] - dma_data = [] - - while True: - this_start, this_end, this_size = get_dma_record(rom, cur) - - if this_start == 0 and this_end == 0: - break - - dma_data.append((this_start, this_end, this_size)) - cur += 0x10 - - dma_data.sort(key=lambda v: v[0]) - - for i in range(0, len(dma_data) - 1): - this_start, this_end, this_size = dma_data[i] - next_start, next_end, next_size = dma_data[i + 1] - - if this_end > next_start: - overlapping_records.append( - '0x%08X - 0x%08X (Size: 0x%04X)\n0x%08X - 0x%08X (Size: 0x%04X)' % \ - (this_start, this_end, this_size, next_start, next_end, next_size) - ) - - if len(overlapping_records) > 0: - raise Exception("Overlapping DMA Data Records!\n%s" % \ - '\n-------------------------------------\n'.join(overlapping_records)) - - def update_dmadata(rom:LocalRom, file:File): - cur = DMA_TABLE - key, start, end = file.dma_key, file.start, file.end - - dma_start, dma_end, dma_size = get_dma_record(rom, cur) - while dma_start != key: - if dma_start == 0 and dma_end == 0: - break - - cur += 0x10 - dma_start, dma_end, dma_size = get_dma_record(rom, cur) - - if dma_start == 0: - raise Exception('dmadata update failed: key {0:x} not found in dmadata'.format(key)) - - else: - rom.write_int32s(cur, [start, end, start, 0]) - + rom.update_dmadata_record(key, start, end) def update_scene_table(rom:LocalRom, sceneId, start, end): cur = sceneId * 0x14 + SCENE_TABLE diff --git a/Rom.py b/Rom.py index 7cf81f5e4..c01eb9531 100644 --- a/Rom.py +++ b/Rom.py @@ -10,6 +10,8 @@ from Utils import local_path, default_output_path +DMADATA_START = 0x7430 + class LocalRom(object): def __init__(self, settings, patch=True): self.last_address = None @@ -27,13 +29,13 @@ def __init__(self, settings, patch=True): try: # Read decompressed file if it exists with open(decomp_file, 'rb') as stream: - self.buffer = read_rom(stream) + self.buffer = self.read_rom(stream) # This is mainly for validation testing, but just in case... self.decompress_rom_file(decomp_file, decomp_file) except Exception as ex: # No decompressed file, instead read Input ROM with open(file, 'rb') as stream: - self.buffer = read_rom(stream) + self.buffer = self.read_rom(stream) self.decompress_rom_file(file, decomp_file) # Add file to maximum size @@ -63,15 +65,15 @@ def decompress_rom_file(self, file, decomp_file): else: subprocess.call(["Decompress\\Decompress32.exe", file, decomp_file]) with open(decomp_file, 'rb') as stream: - self.buffer = read_rom(stream) + self.buffer = self.read_rom(stream) elif platform.system() == 'Linux': subprocess.call(["Decompress/Decompress", file]) with open(("ZOOTDEC.z64"), 'rb') as stream: - self.buffer = read_rom(stream) + self.buffer = self.read_rom(stream) elif platform.system() == 'Darwin': subprocess.call(["Decompress/Decompress.out", file]) with open(("ZOOTDEC.z64"), 'rb') as stream: - self.buffer = read_rom(stream) + self.buffer = self.read_rom(stream) else: raise RuntimeError('Unsupported operating system for decompression. Please supply an already decompressed ROM.') else: @@ -157,6 +159,7 @@ def write_int32s(self, startaddress, values): self.write_int32(startaddress + (i * 4), value) def write_to_file(self, file): + self.verify_dmadata() self.update_crc() with open(file, 'wb') as outfile: outfile.write(self.buffer) @@ -196,10 +199,66 @@ def update_crc(self): self.write_int32s(0x10, [crc0, crc1]) -def read_rom(stream): - "Reads rom into bytearray" - buffer = bytearray(stream.read()) - return buffer + def read_rom(self, stream): + "Reads rom into bytearray" + buffer = bytearray(stream.read()) + return buffer + + # dmadata/file management helper functions + + def _get_dmadata_record(rom, cur): + start = rom.read_int32(cur) + end = rom.read_int32(cur+0x04) + size = end-start + return start, end, size + + + def verify_dmadata(rom): + cur = DMADATA_START + overlapping_records = [] + dma_data = [] + + while True: + this_start, this_end, this_size = rom._get_dmadata_record(cur) + + if this_start == 0 and this_end == 0: + break + + dma_data.append((this_start, this_end, this_size)) + cur += 0x10 + + dma_data.sort(key=lambda v: v[0]) + + for i in range(0, len(dma_data) - 1): + this_start, this_end, this_size = dma_data[i] + next_start, next_end, next_size = dma_data[i + 1] + + if this_end > next_start: + overlapping_records.append( + '0x%08X - 0x%08X (Size: 0x%04X)\n0x%08X - 0x%08X (Size: 0x%04X)' % \ + (this_start, this_end, this_size, next_start, next_end, next_size) + ) + + if len(overlapping_records) > 0: + raise Exception("Overlapping DMA Data Records!\n%s" % \ + '\n-------------------------------------\n'.join(overlapping_records)) + + + def update_dmadata_record(rom, key, start, end): + cur = DMADATA_START + dma_start, dma_end, dma_size = rom._get_dmadata_record(cur) + while dma_start != key: + if dma_start == 0 and dma_end == 0: + break + + cur += 0x10 + dma_start, dma_end, dma_size = rom._get_dmadata_record(cur) + + if dma_start == 0: + raise Exception('dmadata update failed: key {0:x} not found in dmadata'.format(key)) + + else: + rom.write_int32s(cur, [start, end, start, 0]) def int16_as_bytes(value): From f9c43c88ad49ea8e33549db8aa35f87b931993a1 Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 20 Sep 2018 12:28:04 -0400 Subject: [PATCH 567/755] not taking vanilla dungeon changes --- Rules.py | 50 ++++++++++++++++++++++++-------------------------- version.py | 2 +- 2 files changed, 25 insertions(+), 27 deletions(-) diff --git a/Rules.py b/Rules.py index 4e99d76d2..12af1a416 100644 --- a/Rules.py +++ b/Rules.py @@ -555,8 +555,8 @@ def dung_rules_fit0(world): # Fire Temple Vanilla set_rule(world.get_entrance('Fire Temple Early Climb'), lambda state: state.has_GoronTunic() and state.has('Small Key (Fire Temple)', 4) and state.has('Progressive Strength Upgrade') and (state.has_explosives() or ((state.has_bow() or state.has('Progressive Hookshot')) and state.is_adult()))) set_rule(world.get_entrance('Fire Temple Fire Maze Escape'), lambda state: state.has('Small Key (Fire Temple)', 8) or (state.has('Small Key (Fire Temple)', 7) and state.has('Hover Boots') and state.has('Hammer') and state.is_adult())) - set_rule(world.get_location('Fire Temple Fire Dancer Chest'), lambda state: (state.has('Small Key (Fire Temple)', 8) or (not world.keysanity and not world.dungeon_mq['FiT'])) and state.is_adult() and state.has('Hammer')) - set_rule(world.get_location('Fire Temple Boss Key Chest'), lambda state: (state.has('Small Key (Fire Temple)', 8) or (not world.keysanity and not world.dungeon_mq['FiT'])) and state.is_adult() and state.has('Hammer')) + set_rule(world.get_location('Fire Temple Fire Dancer Chest'), lambda state: (state.has('Small Key (Fire Temple)', 8) or not world.keysanity) and state.is_adult() and state.has('Hammer')) + set_rule(world.get_location('Fire Temple Boss Key Chest'), lambda state: (state.has('Small Key (Fire Temple)', 8) or not world.keysanity) and state.is_adult() and state.has('Hammer')) set_rule(world.get_location('Fire Temple Big Lava Room Bombable Chest'), lambda state: state.has('Small Key (Fire Temple)', 2) and state.has_explosives()) set_rule(world.get_location('Fire Temple Big Lava Room Open Chest'), lambda state: state.has('Small Key (Fire Temple)', 2)) set_rule(world.get_location('Fire Temple Map Chest'), lambda state: state.has('Small Key (Fire Temple)', 6) or (state.has('Small Key (Fire Temple)', 5) and state.is_adult() and state.has_bow())) @@ -576,7 +576,7 @@ def dung_rules_fit0(world): set_rule(world.get_location('GS Fire Temple Unmarked Bomb Wall'), lambda state: state.has('Small Key (Fire Temple)', 4) and state.has_explosives()) set_rule(world.get_location('GS Fire Temple East Tower Climb'), lambda state: state.has_ocarina() and state.has('Small Key (Fire Temple)', 6) and state.has('Progressive Hookshot') and state.is_adult()) set_rule(world.get_location('GS Fire Temple East Tower Top'), lambda state: state.has_ocarina() and state.has('Small Key (Fire Temple)', 6) and state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('GS Fire Temple Basement'), lambda state: (state.has('Small Key (Fire Temple)', 8) or (not world.keysanity and not world.dungeon_mq['FiT'])) and state.has('Hammer') and state.is_adult()) + set_rule(world.get_location('GS Fire Temple Basement'), lambda state: (state.has('Small Key (Fire Temple)', 8) or not world.keysanity) and state.has('Hammer') and state.is_adult()) # MQ Fire Temple # "Quirks to Know": @@ -607,29 +607,27 @@ def dung_rules_fitmq(world): # Water Temple Vanilla def dung_rules_wt0(world): # Water Temple vanilla - set_rule(world.get_entrance('Water Temple Central Pillar'), lambda state: (state.has_bow() or (state.has('Dins Fire') and state.has('Magic Meter')) or state.has('Small Key (Water Temple)', 5)) and state.can_play('Zeldas Lullaby')) - set_rule(world.get_entrance('Water Temple Upper Locked Door'), lambda state: state.has('Small Key (Water Temple)', 5) and (state.can_play('Zeldas Lullaby') or world.keysanity)) - set_rule(world.get_location('Water Temple Torches Chest'), lambda state: (state.has_bow() or (state.has('Dins Fire') and state.has('Magic Meter'))) and state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('Water Temple Dragon Chest'), lambda state: (state.has('Progressive Strength Upgrade') and state.can_play('Zeldas Lullaby')) or (state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity) and state.can_play('Song of Time') and state.has_bow())) - set_rule(world.get_location('Water Temple Central Bow Target Chest'), lambda state: state.has_bow() and state.has('Progressive Strength Upgrade') and state.can_play('Zeldas Lullaby') and (state.has('Hover Boots') or state.has('Progressive Hookshot', 2))) - set_always_allow(world.get_location('Water Temple Boss Key Chest'), lambda item, state: item.name == 'Small Key (Water Temple)') - set_rule(world.get_location('Water Temple Boss Key Chest'), lambda state: (state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity) and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and state.has('Progressive Hookshot', 2)) or item_name(state, 'Water Temple Boss Key Chest') == 'Small Key (Water Temple)') #If key for key, this lets the logic reduce the small key reqs for every other locked door. - set_rule(world.get_location('Water Temple Cracked Wall Chest'), lambda state: state.has_explosives()) - set_rule(world.get_location('Water Temple Dark Link Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity)) - set_rule(world.get_location('Water Temple River Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and state.can_play('Song of Time') and state.has_bow() and (state.can_play('Zeldas Lullaby') or world.keysanity)) - set_rule(world.get_location('Water Temple Central Pillar Chest'), lambda state: state.has_ZoraTunic()) - - # boss rules - set_rule(world.get_location('Morpha'), lambda state: state.has('Boss Key (Water Temple)') and state.has('Progressive Hookshot', 2)) - set_rule(world.get_location('Morpha Heart'), lambda state: state.has('Boss Key (Water Temple)') and state.has('Progressive Hookshot', 2)) - - # GS - set_rule(world.get_location('GS Water Temple South Basement'), lambda state: state.has_explosives() and state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('GS Water Temple Serpent River'), lambda state: state.can_play('Song of Time') and state.has('Small Key (Water Temple)', 6)) - set_rule(world.get_location('GS Water Temple Falling Platform Room'), lambda state: state.has('Progressive Hookshot', 2)) - set_rule(world.get_location('GS Water Temple Central Room'), lambda state: state.has('Progressive Hookshot', 2) or (state.has('Farores Wind') and state.has('Magic Meter'))) - #5 keys would be better but it wouldn't be compatible with the key for key scenarios, 6 will be identical pre-keysanity. - set_rule(world.get_location('GS Water Temple Near Boss Key Chest'), lambda state: state.has('Progressive Hookshot', 2) and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and (state.can_play('Zeldas Lullaby') or world.keysanity) and state.has('Small Key (Water Temple)', 6)) + set_rule(world.get_entrance('Water Temple Central Pillar'), lambda state: (state.has('Bow') or state.can_use('Dins Fire') or state.has('Small Key (Water Temple)', 5)) and state.can_play('Zeldas Lullaby')) + set_rule(world.get_entrance('Water Temple Upper Locked Door'), lambda state: state.has('Small Key (Water Temple)', 5) and (state.can_play('Zeldas Lullaby') or world.keysanity)) + set_rule(world.get_location('Water Temple Torches Chest'), lambda state: (state.has('Bow') or state.can_use('Dins Fire')) and state.can_play('Zeldas Lullaby')) + set_rule(world.get_location('Water Temple Dragon Chest'), lambda state: (state.has('Progressive Strength Upgrade') and state.can_play('Zeldas Lullaby')) or (state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity) and state.can_play('Song of Time') and state.has('Bow'))) + set_rule(world.get_location('Water Temple Central Bow Target Chest'), lambda state: state.has('Bow') and state.has('Progressive Strength Upgrade') and state.can_play('Zeldas Lullaby') and (state.has('Hover Boots') or state.can_use('Longshot'))) + set_rule(world.get_location('Water Temple Boss Key Chest'), lambda state: (state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity) and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and state.can_use('Longshot')) or (state.has('Small Key (Water Temple)', 5) and (item_name(state, 'Water Temple Boss Key Chest') == 'Small Key (Water Temple)' or not world.keys_placed))) #If key for key, this lets the logic reduce the small key reqs for every other locked door. + set_rule(world.get_location('Water Temple Cracked Wall Chest'), lambda state: state.has_explosives()) + set_rule(world.get_location('Water Temple Dark Link Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity)) + set_rule(world.get_location('Water Temple River Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and state.can_play('Song of Time') and state.has('Bow') and (state.can_play('Zeldas Lullaby') or world.keysanity)) + set_rule(world.get_location('Water Temple Central Pillar Chest'), lambda state: state.has_ZoraTunic()) + + # Boss + set_rule(world.get_location('Morpha'), lambda state: state.has('Boss Key (Water Temple)') and state.can_use('Longshot')) + set_rule(world.get_location('Morpha Heart'), lambda state: state.has('Boss Key (Water Temple)') and state.can_use('Longshot')) + + # GS + set_rule(world.get_location('GS Water Temple South Basement'), lambda state: state.has_explosives() and state.can_play('Zeldas Lullaby')) + set_rule(world.get_location('GS Water Temple Serpent River'), lambda state: state.can_play('Song of Time') and state.has('Small Key (Water Temple)', 6)) + set_rule(world.get_location('GS Water Temple Falling Platform Room'), lambda state: state.can_use('Longshot')) + set_rule(world.get_location('GS Water Temple Central Room'), lambda state: state.can_use('Longshot') or state.can_use('Farores Wind')) + set_rule(world.get_location('GS Water Temple Near Boss Key Chest'), lambda state: state.can_use('Longshot') and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and (state.can_play('Zeldas Lullaby') or world.keysanity) and state.has('Small Key (Water Temple)', 5)) # MQ Water Temple # Water Temple Freestanding Key: diff --git a/version.py b/version.py index 9326ccf38..13b2f2bfd 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.19.14 f.LUM' +__version__ = '2.19.15 f.LUM' From d499ee8e3dccf69673f51955e85b56b5f6a7d88e Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 20 Sep 2018 16:23:41 -0400 Subject: [PATCH 568/755] Fixed deku stick and deku seed items crashing in shops --- Items.py | 4 ++-- Patches.py | 2 ++ version.py | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Items.py b/Items.py index b0d90689e..1997655aa 100644 --- a/Items.py +++ b/Items.py @@ -104,8 +104,8 @@ def __init__(self, model, gid, price): 'Bombchus': (True, False, None, None, 0xC2, 0x00D9, 0x28), 'Deku Nuts (5)': (False, False, None, None, 0xBD, 0x00BB, 0x12), 'Deku Nuts (10)': (False, False, None, None, 0xBE, 0x00BB, 0x12), - 'Deku Stick (1)': (False, False, None, 0x00E0, 0xD0, 0x00C7, 0xE5), - 'Deku Seeds (30)': (False, False, None, 0x00E0, 0xD1, 0x0119, 0xB8), + 'Deku Stick (1)': (False, False, None, 0x00E0, 0xD0, 0x00C7, 0x1B), + 'Deku Seeds (30)': (False, False, None, 0x00E0, 0xD1, 0x0119, 0x48), 'Rupee (Treasure Chest Game)': (False, False, None, 0x0E40, 0x72, 0x017F, 0x6D), 'Rupee (1)': (False, False, None, 0x0980, 0x4C, 0x017F, 0x6D), 'Rupees (5)': (False, False, None, 0x09A0, 0x4D, 0x017F, 0x6E), diff --git a/Patches.py b/Patches.py index e184fccb9..0eb684ad6 100644 --- a/Patches.py +++ b/Patches.py @@ -1696,6 +1696,8 @@ def get_override_entry(location): 0xBD, # Deku Nuts (5) 0xBE, # Deku Nuts (10) 0xBF, # Double Defense + 0xD0, # Deku Stick (1) + 0xD1, # Deky Seeds (30) ] diff --git a/version.py b/version.py index 13b2f2bfd..799e7a99e 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.19.15 f.LUM' +__version__ = '2.19.16 f.LUM' From 2496d30ff2105bd0722ef1f8dae1dec59b97dc60 Mon Sep 17 00:00:00 2001 From: Tyrus <42982810+Tyrusss@users.noreply.github.com> Date: Fri, 21 Sep 2018 00:02:47 +0100 Subject: [PATCH 569/755] Added Navi colours based on Link's companions --- Patches.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Patches.py b/Patches.py index e2f4f0aad..f2fd89d64 100644 --- a/Patches.py +++ b/Patches.py @@ -62,6 +62,15 @@ "Black": [0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00], "Tatl": [0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0x98, 0x00, 0x00], "Tael": [0x49, 0x14, 0x6C, 0xFF, 0xFF, 0x00, 0x00, 0x00], + "Fi": [0x5E, 0xBA, 0xE4, 0xFF, 0x5E, 0x3A, 0xB7, 0x00], + "Ciela": [0xF9, 0xF7, 0xEA, 0xFF, 0xE7, 0xDF, 0x86, 0x00], + "Epona": [0xD1, 0x49, 0x02, 0xFF, 0x55, 0x1F, 0x08, 0x00], + "Ezlo": [0x62, 0x9C, 0x5F, 0xFF, 0x3F, 0x5D, 0x37, 0x00], + "King of Red Lions": [0xA8, 0x33, 0x17, 0xFF, 0xDE, 0xD7, 0xC5, 0x00], + "Linebeck": [0x03, 0x26, 0x60, 0xFF, 0xEF, 0xFF, 0xFF, 0x00], + "Loftwing": [0xD6, 0x2E, 0x31, 0xFF, 0xFD, 0xE6, 0xCC, 0x00], + "Midna": [0x59, 0x5F, 0x51, 0xFF, 0x8A, 0x4B, 0x07, 0x00], + "Phantom Zelda": [0x97, 0x7A, 0x6C, 0xFF, 0x6F, 0x46, 0x67, 0x00], } def get_tunic_colors(): From 87165b9ce5e09ab954deea6bf02ceb477fdc2f26 Mon Sep 17 00:00:00 2001 From: Tyrus <42982810+Tyrusss@users.noreply.github.com> Date: Fri, 21 Sep 2018 00:27:07 +0100 Subject: [PATCH 570/755] Made 'em better --- Patches.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Patches.py b/Patches.py index f2fd89d64..f4af1b625 100644 --- a/Patches.py +++ b/Patches.py @@ -62,14 +62,14 @@ "Black": [0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00], "Tatl": [0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0x98, 0x00, 0x00], "Tael": [0x49, 0x14, 0x6C, 0xFF, 0xFF, 0x00, 0x00, 0x00], - "Fi": [0x5E, 0xBA, 0xE4, 0xFF, 0x5E, 0x3A, 0xB7, 0x00], - "Ciela": [0xF9, 0xF7, 0xEA, 0xFF, 0xE7, 0xDF, 0x86, 0x00], + "Fi": [0x2C, 0x9E, 0xC4, 0xFF, 0x2C, 0x19, 0x83, 0x00], + "Ciela": [0xE6, 0xDE, 0x83, 0xFF, 0xC6, 0xBE, 0x5B, 0x00], "Epona": [0xD1, 0x49, 0x02, 0xFF, 0x55, 0x1F, 0x08, 0x00], "Ezlo": [0x62, 0x9C, 0x5F, 0xFF, 0x3F, 0x5D, 0x37, 0x00], "King of Red Lions": [0xA8, 0x33, 0x17, 0xFF, 0xDE, 0xD7, 0xC5, 0x00], "Linebeck": [0x03, 0x26, 0x60, 0xFF, 0xEF, 0xFF, 0xFF, 0x00], "Loftwing": [0xD6, 0x2E, 0x31, 0xFF, 0xFD, 0xE6, 0xCC, 0x00], - "Midna": [0x59, 0x5F, 0x51, 0xFF, 0x8A, 0x4B, 0x07, 0x00], + "Midna": [0x5D, 0xBC, 0xD2, 0xFF, 0xA1, 0x66, 0x02, 0x00], "Phantom Zelda": [0x97, 0x7A, 0x6C, 0xFF, 0x6F, 0x46, 0x67, 0x00], } From 3d635ff3061de00a540f90cd8f91ef415d47350f Mon Sep 17 00:00:00 2001 From: Tyrus <42982810+Tyrusss@users.noreply.github.com> Date: Fri, 21 Sep 2018 01:02:14 +0100 Subject: [PATCH 571/755] last changes --- Patches.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Patches.py b/Patches.py index f4af1b625..231fa3504 100644 --- a/Patches.py +++ b/Patches.py @@ -69,7 +69,7 @@ "King of Red Lions": [0xA8, 0x33, 0x17, 0xFF, 0xDE, 0xD7, 0xC5, 0x00], "Linebeck": [0x03, 0x26, 0x60, 0xFF, 0xEF, 0xFF, 0xFF, 0x00], "Loftwing": [0xD6, 0x2E, 0x31, 0xFF, 0xFD, 0xE6, 0xCC, 0x00], - "Midna": [0x5D, 0xBC, 0xD2, 0xFF, 0xA1, 0x66, 0x02, 0x00], + "Midna": [0x19, 0x24, 0x26, 0xFF, 0xD2, 0x83, 0x30, 0x00], "Phantom Zelda": [0x97, 0x7A, 0x6C, 0xFF, 0x6F, 0x46, 0x67, 0x00], } From a55d9ae86ab5470a5cabb958305dd5af9c0124ce Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 20 Sep 2018 21:48:51 -0400 Subject: [PATCH 572/755] Fix trade quest type, saving, and dependency react --- Gui.py | 13 +++++++++++-- Settings.py | 8 ++++---- version.py | 2 +- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/Gui.py b/Gui.py index 93019fa8d..ad8e4fdf1 100755 --- a/Gui.py +++ b/Gui.py @@ -152,13 +152,22 @@ def show_settings(event=None): if widgets[info.name].winfo_class() == 'Frame': for child in widgets[info.name].winfo_children(): - child.configure(state= 'normal' if dep_met else 'disabled') + if child.winfo_class() == 'TCombobox': + child.configure(state= 'readonly' if dep_met else 'disabled') + else: + child.configure(state= 'normal' if dep_met else 'disabled') + if child.winfo_class() == 'Scale': child.configure(fg='Black'if dep_met else 'Grey') else: + if widgets[info.name].winfo_class() == 'TCombobox': + widgets[info.name].configure(state= 'readonly' if dep_met else 'disabled') + else: + widgets[info.name].configure(state= 'normal' if dep_met else 'disabled') + if widgets[info.name].winfo_class() == 'Scale': widgets[info.name].configure(fg='Black'if dep_met else 'Grey') - widgets[info.name].config(state = 'normal' if dep_met else 'disabled') + if info.name in guivars and guivars[info.name].get() == 'Custom Color': color = askcolor() diff --git a/Settings.py b/Settings.py index f51836383..d4ddf7796 100644 --- a/Settings.py +++ b/Settings.py @@ -1249,7 +1249,7 @@ def parse_custom_navi_color(s): Adult trade sequence is time consuming. ''' }), - Setting_Info('logic_earliest_adult_trade', str, 2, True, + Setting_Info('logic_earliest_adult_trade', str, 4, True, { 'default': 'pocket_egg', 'const': 'always', @@ -1284,7 +1284,7 @@ def parse_custom_navi_color(s): 'group': 'rewards', 'widget': 'Combobox', 'dependency': lambda guivar: not guivar['logic_no_trade_biggoron'].get(), - 'default': 'Pocket Egg', + 'default': 'Earliest: Pocket Egg', 'options': { 'Earliest: Pocket Egg': 'pocket_egg', 'Earliest: Pocket Cucco': 'pocket_cucco', @@ -1300,7 +1300,7 @@ def parse_custom_navi_color(s): Select the earliest item that will appear in the adult trade sequence. ''' }), - Setting_Info('logic_latest_adult_trade', str, 2, True, + Setting_Info('logic_latest_adult_trade', str, 4, True, { 'default': 'claim_check', 'const': 'always', @@ -1334,7 +1334,7 @@ def parse_custom_navi_color(s): 'group': 'rewards', 'widget': 'Combobox', 'dependency': lambda guivar: not guivar['logic_no_trade_biggoron'].get(), - 'default': 'Claim Check', + 'default': 'Latest: Claim Check', 'options': { 'Latest: Pocket Egg': 'pocket_egg', 'Latest: Pocket Cucco': 'pocket_cucco', diff --git a/version.py b/version.py index ef63d631f..deb64b272 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.18.7 f.LUM' +__version__ = '2.18.8 f.LUM' From 7b6929707a96e46a5e66a8bb90dede1f337a5615 Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Fri, 21 Sep 2018 12:06:05 -0300 Subject: [PATCH 573/755] MQ Shops Logic Update Part 2 Decided not to split DC into regions because I don't think they would have helped very much. A few more changes to other areas were noticed. Changed my mind about a couple things. --- Rules.py | 38 ++++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/Rules.py b/Rules.py index 12af1a416..b87858d10 100644 --- a/Rules.py +++ b/Rules.py @@ -139,8 +139,7 @@ def global_rules(world): set_rule(world.get_entrance('Bottom of the Well'), lambda state: state.can_play('Song of Storms') and (world.dungeon_mq['BW'] or (state.has_slingshot() or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword') or (state.has('Dins Fire') and state.has('Magic Meter'))))) set_rule(world.get_entrance('Death Mountain Entrance'), lambda state: state.has('Zeldas Letter') or state.is_adult() or world.open_kakariko) set_rule(world.get_entrance('Dodongos Cavern Rocks'), lambda state: state.has_explosives() or state.has('Progressive Strength Upgrade') or state.is_adult()) - # In the future, 'Buy Fairy\'s Spirit' should be changed to has_fairy() so that other potential sources of fairies could be added. - set_rule(world.get_location('DM Trail Freestanding PoH'), lambda state: world.open_kakariko or (world.difficulty != 'ohko') or state.has('Zeldas Letter') or state.can_blast_or_smash() or state.can_use('Dins Fire') or state.can_use('Nayrus Love') or state.has_bow() or state.has('Progressive Strength Upgrade') or state.has('Buy Fairy\'s Spirit') or state.has('Hover Boots')) + set_rule(world.get_location('DM Trail Freestanding PoH'), lambda state: world.open_kakariko or (world.difficulty != 'ohko') or state.has('Zeldas Letter') or state.can_blast_or_smash() or state.can_use('Dins Fire') or state.can_use('Nayrus Love') or state.has_bow() or state.has('Progressive Strength Upgrade') or state.has_bottle() or state.has('Hover Boots')) set_rule(world.get_location('Death Mountain Bombable Chest'), lambda state: state.can_blast_or_smash()) set_rule(world.get_location('Biggoron'), lambda state: (not world.logic_no_trade_biggoron) and state.is_adult() and state.can_finish_adult_trades() and state.guarantee_hint()) set_rule(world.get_location('Goron City Leftmost Maze Chest'), lambda state: state.is_adult() and (state.can_use('Hammer') or state.can_use('Silver Gauntlets'))) @@ -439,7 +438,6 @@ def dung_rules_dc0(world): set_rule(world.get_entrance('Dodongos Cavern Left Door'), lambda state: (state.is_adult() or ((state.has_sticks() or (state.has('Dins Fire') and state.has('Magic Meter'))) and (state.has_slingshot() or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword')))) and (state.has_explosives() or state.has('Progressive Strength Upgrade') or (state.has('Dins Fire') and state.has('Magic Meter')) or (state.has_bow() and state.is_adult()))) set_rule(world.get_location('Dodongos Cavern Compass Chest'), lambda state: state.is_adult() or ((state.has_sticks() or (state.has('Dins Fire') and state.has('Magic Meter'))) and (state.has_slingshot() or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword')))) set_rule(world.get_location('DC Deku Scrub Deku Sticks'), lambda state: (state.is_adult() or (state.has_slingshot() or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword')))) - set_rule(world.get_entrance('Dodongos Cavern Slingshot Target'), lambda state: (state.has_slingshot() and (state.has_explosives() or state.has('Progressive Strength Upgrade'))) or ((state.has_bow() or state.has('Hover Boots') or state.has('Progressive Hookshot', 2) or world.logic_dc_jump) and state.is_adult())) set_rule(world.get_location('DC Deku Scrub Deku Nuts'), lambda state: state.can_blast_or_smash()) set_rule(world.get_location('DC Deku Scrub Deku Seeds'), lambda state: state.can_blast_or_smash()) @@ -459,19 +457,24 @@ def dung_rules_dc0(world): def dung_rules_dcmq(world): set_rule(world.get_entrance('Dodongos Cavern Lobby'), lambda state: state.can_blast_or_smash() or state.has('Progressive Strength Upgrade')) set_rule(world.get_entrance('Dodongos Cavern Bomb Drop'), lambda state: state.has_explosives()) - set_rule(world.get_location('Dodongos Cavern MQ Larva Room Chest'), lambda state: state.has_explosives or state.has('Progressive Strength Upgrade') or state.has_fire_source()) - set_rule(world.get_location('Dodongos Cavern MQ Bomb Bag Chest'), lambda state: state.has('Slingshot') or state.is_adult()) + set_rule(world.get_location('Dodongos Cavern MQ Compass Chest'), lambda state: state.is_adult() or state.can_child_attack() or state.has_nuts()) + set_rule(world.get_location('Dodongos Cavern MQ Torch Puzzle Room Chest'), lambda state: state.can_blast_or_smash() or state.has_sticks() or state.can_use('Dins Fire') or (state.is_adult() and (world.logic_dc_jump or state.has('Hover Boots') or state.has('Hookshot')))) + set_rule(world.get_location('Dodongos Cavern MQ Larva Room Chest'), lambda state: (state.has_sticks() and (state.has_explosives or state.has('Progressive Strength Upgrade'))) or state.has_fire_source()) + set_rule(world.get_location('Dodongos Cavern MQ Bomb Bag Chest'), lambda state: state.is_adult() or (state.has_slingshot() and (state.has_sticks() or state.can_use('Dins Fire') or state.has_explosives()))) + set_rule(world.get_location('DC MQ Deku Scrub Deku Sticks'), lambda state: state.can_stun_deku()) + set_rule(world.get_location('DC MQ Deku Scrub Deku Seeds'), lambda state: state.can_stun_deku()) + set_rule(world.get_location('DC MQ Deku Scrub Deku Shield'), lambda state: state.can_stun_deku()) + set_rule(world.get_location('DC MQ Deku Scrub Red Potion'), lambda state: state.is_adult() or state.has_sticks() or state.can_use('Dins Fire') or state.has_explosives()) # Boss - set_rule(world.get_location('King Dodongo'), lambda state: state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) - set_rule(world.get_location('King Dodongo Heart'), lambda state: state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) + set_rule(world.get_location('King Dodongo'), lambda state: (state.has_bombs() or state.has('Progressive Strength Upgrade')) and (state.is_adult() or state.has_sticks() or state.has('Kokiri Sword'))) + set_rule(world.get_location('King Dodongo Heart'), lambda state: (state.has_bombs() or state.has('Progressive Strength Upgrade')) and (state.is_adult() or state.has_sticks() or state.has('Kokiri Sword'))) # GS - set_rule(world.get_location('GS Dodongo\'s Cavern MQ Song of Time Block Room'), lambda state: state.can_play('Song of Time')) - set_rule(world.get_location('GS Dodongo\'s Cavern MQ Larva Room'), lambda state: state.has_explosives or state.has('Progressive Strength Upgrade') or state.has_fire_source()) + set_rule(world.get_location('GS Dodongo\'s Cavern MQ Song of Time Block Room'), lambda state: state.can_play('Song of Time') and (state.can_child_attack() or state.is_adult())) + set_rule(world.get_location('GS Dodongo\'s Cavern MQ Larva Room'), lambda state: (state.has_sticks() and (state.has_explosives or state.has('Progressive Strength Upgrade'))) or state.has_fire_source()) set_rule(world.get_location('GS Dodongo\'s Cavern MQ Lizalfos Room'), lambda state: state.can_blast_or_smash()) - set_rule(world.get_location('GS Dodongo\'s Cavern MQ Scrub Room'), lambda state: ((state.has('Slingshot') or (state.is_adult() and state.has_explosives())) and state.has('Boomerang') and (state.has_explosives() or state.has('Progressive Strength Upgrade'))) or (state.can_use('Hookshot') and (state.has_explosives() or state.has('Progressive Strength Upgrade') or state.has('Bow') or state.can_use('Dins Fire')))) - # You may have to kill the lower Lizalfos as adult, then use Bombs to jump down from the upper Lizalfos as child, so you can use the Boomerang to get this GS without needing the Slingshot. (Or you could do the jumpslash recoil, but that's not in logic.) + set_rule(world.get_location('GS Dodongo\'s Cavern MQ Scrub Room'), lambda state: (state.has('Boomerang') and (state.has_slingshot() or (state.is_adult() and state.has_explosives())) and (state.has_explosives() or (state.has('Progressive Strength Upgrade') and (state.has_sticks() or state.can_use('Dins Fire') or (state.is_adult() and (world.logic_dc_jump or state.has('Hover Boots') or state.has('Hammer'))))))) or (state.can_use('Hookshot') and (state.has_explosives() or state.has('Progressive Strength Upgrade') or state.has_bow() or state.can_use('Dins Fire')))) # Jabu Jabu's Belly Vanilla def dung_rules_jb0(world): @@ -695,8 +698,6 @@ def dung_rules_spt0(world): # "Quirks to Know": # Spirit Temple Sun Block Room: # - The switch to enter this room can be reached as adult without either hover boots or song of time. -# GS Spirit Temple Sun Block Room: -# - You can get the GS with Boomerang. You do have to stand in about the right spot. # Spirit Temple Silver Block Hallway Chest: # - In the vanilla game, this eye switch gets permanently blocked off after the silver block is pushed. # - This was changed so that the block does not appear pushed as child. @@ -856,11 +857,15 @@ def dung_rules_ic0(world): # Ice Cavern MQ # The rule exists on the entrance to avoid needing to change Blue Fire checks elsewhere. # "Quirks to Know": +# Ice Cavern Entrance: +# - You can throw a pot at this switch. +# - To get the pot here you must destroy an icicle in order to beat a boulder cycle. It's easy to do. +# - Later, there's a switch you hit to get a GS and that can also be hit with a pot. # GS Ice Cavern Scarecrow: # - You can use the hover boots to get onto one of the taller pillars, and from there you can Longshot to the GS. # - This skips the Ocarina requirement and is only relevant if Hover Boots into Zora's Domain is in logic. def dung_rules_icmq(world): - set_rule(world.get_entrance('Ice Cavern Entrance'), lambda state: state.has_bottle() and state.has_projectile('adult')) + set_rule(world.get_entrance('Ice Cavern Entrance'), lambda state: state.has_bottle()) set_rule(world.get_location('Ice Cavern MQ Freestanding PoH'), lambda state: state.has_explosives()) # GS @@ -905,7 +910,7 @@ def dung_rules_gtgmq(world): set_rule(world.get_entrance('Gerudo Training Grounds Rusted Switch'), lambda state: state.has('Hammer')) set_rule(world.get_location('Gerudo Training Grounds MQ Hidden Ceiling Chest'), lambda state: state.can_see_with_lens()) set_rule(world.get_location('Gerudo Training Grounds MQ Maze Path Third Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 1)) - set_rule(world.get_location('Gerudo Training Grounds MQ Underwater Silver Rupee Chest'), lambda state: state.has('Hover Boots') and state.has_fire_source() and state.has('Progressive Hookshot') and state.has('Iron Boots') and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic())) + set_rule(world.get_location('Gerudo Training Grounds MQ Underwater Silver Rupee Chest'), lambda state: (state.has('Hover Boots') or state.can_reach('Gerudo Training Grounds Central Maze Right')) and state.has_fire_source() and state.has('Iron Boots') and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic()) and (world.difficulty != 'ohko' or (state.has_bottle() or state.can_use('Nayrus Love')))) set_rule(world.get_location('Gerudo Training Grounds MQ Heavy Block Chest'), lambda state: state.has('Progressive Strength Upgrade', 2)) set_rule(world.get_location('Gerudo Training Grounds MQ Eye Statue Chest'), lambda state: state.has('Bow')) set_rule(world.get_location('Gerudo Training Grounds MQ Ice Arrows Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 3) or (item_name(state, 'Gerudo Training Grounds MQ Ice Arrows Chest') == 'Small Key (Gerudo Training Grounds)' and state.has('Small Key (Gerudo Training Grounds)'))) @@ -929,6 +934,7 @@ def dung_rules_gc0(world): set_rule(world.get_location('Ganons Castle Light Trial Clear'), lambda state: state.has('Magic Meter') and state.has_bow() and state.has('Progressive Hookshot') and state.has('Light Arrows') and state.has('Small Key (Ganons Castle)', 2)) set_rule(world.get_location('Ganons Castle Light Trail Invisible Enemies Chest'), lambda state: state.can_see_with_lens()) set_rule(world.get_location('Ganons Castle Light Trial Lullaby Chest'), lambda state: state.can_play('Zeldas Lullaby') and state.has('Small Key (Ganons Castle)', 1)) + # Ganon's Castle MQ # MQ Ganons Castle # "Quirks to Know": @@ -945,7 +951,7 @@ def dung_rules_gcmq(world): set_rule(world.get_location('Ganons Castle Fire Trial Clear'), lambda state: state.has_GoronTunic() and state.can_use('Golden Gauntlets') and state.can_use('Light Arrows') and (state.can_use('Longshot') or state.has('Hover Boots'))) set_rule(world.get_location('Ganons Castle MQ Water Trial Chest'), lambda state: state.has_bottle()) set_rule(world.get_location('Ganons Castle Water Trial Clear'), lambda state: state.has_bottle() and state.can_use('Light Arrows') and state.has('Small Key (Ganons Castle)', 3)) - set_rule(world.get_location('Ganons Castle MQ Shadow Trial First Chest'), lambda state: (state.has('Bow') and (state.has('Progressive Hookshot') or state.has('Hover Boots'))) or (state.has('Hover Boots') and state.can_see_with_lens() and (state.has_explosives() or state.has('Progressive Strength Upgrade') or state.can_use('Dins Fire') or state.has_blue_fire()))) + set_rule(world.get_location('Ganons Castle MQ Shadow Trial First Chest'), lambda state: (state.has('Bow') and (state.has('Progressive Hookshot') or state.has('Hover Boots'))) or (state.has('Hover Boots') and state.can_see_with_lens() and (state.has_explosives() or state.has('Progressive Strength Upgrade') or state.can_use('Dins Fire')))) set_rule(world.get_location('Ganons Castle MQ Shadow Trial Second Chest'), lambda state: state.has('Bow') and state.can_see_with_lens() and (state.has('Hover Boots') or (state.has('Progressive Hookshot') and state.has_fire_source()))) set_rule(world.get_location('Ganons Castle Shadow Trial Clear'), lambda state: state.can_use('Light Arrows') and state.can_see_with_lens() and (state.has('Hover Boots') or (state.has('Progressive Hookshot') and state.has_fire_source()))) set_rule(world.get_location('Ganons Castle MQ Spirit Trial First Chest'), lambda state: state.has('Bow') and state.has('Hammer')) From 2121f1cea529a209b4e0692d636755cec072b522 Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Sat, 22 Sep 2018 05:21:09 -0300 Subject: [PATCH 574/755] Fairy Spirit no longer progression --- Items.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Items.py b/Items.py index 1997655aa..fce350f33 100644 --- a/Items.py +++ b/Items.py @@ -220,7 +220,7 @@ def __init__(self, model, gid, price): 'Buy Blue Fire': (True, False, 'Shop', None, 0x27, 0x0173, 0x67), 'Buy Bottle Bug': (True, False, 'Shop', None, 0x28, 0x0174, 0x68), 'Buy Poe': (False, True, 'Shop', None, 0x2A, 0x0176, 0x6A), - 'Buy Fairy\'s Spirit': (True, False, 'Shop', None, 0x2B, 0x0177, 0x6B), + 'Buy Fairy\'s Spirit': (False, True, 'Shop', None, 0x2B, 0x0177, 0x6B), 'Buy Arrows (10)': (False, True, 'Shop', None, 0x2C, 0x00D8, 0x25), 'Buy Bombs (20)': (False, True, 'Shop', None, 0x2D, 0x00CE, 0x20), 'Buy Bombs (30)': (False, True, 'Shop', None, 0x2E, 0x00CE, 0x20), From 66b8d3ba99b7a5e33b64939b3c344240d76f8705 Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Sat, 22 Sep 2018 05:44:54 -0300 Subject: [PATCH 575/755] Rules Cleanup Part 3 Rules Cleanup and Bug Fixes (part 3) Adding various calls to can_use, mostly. But some bug fixes as well. Bug Fixes: - King Dodongo (Vanilla & MQ) - King Dodongo Heart (Vanilla & MQ) - Lake Hylia Freestanding PoH - Goron Shop - GS Desert Colossus Hill - Desert Colossus Grotto - Dodongos Cavern MQ Torch Puzzle Room Chest Changed my mind on killing GS Well MQ Basement with a pot. For the comments I removed about the quirks, as well as a list of some things I decided not to put into logic, see the bottom of this paste: https://pastebin.com/4h0XpQih --- Rules.py | 327 +++++++++++++++++++++++-------------------------------- 1 file changed, 136 insertions(+), 191 deletions(-) diff --git a/Rules.py b/Rules.py index b87858d10..d74e46acc 100644 --- a/Rules.py +++ b/Rules.py @@ -65,7 +65,7 @@ def global_rules(world): # these are default save&quit points and always accessible world.get_region('Links House').can_reach = lambda state: True - # dungeon requirements (including gold skulltulas) + # dungeon requirements (including gold skulltulas) if world.dungeon_mq['DT']: dung_rules_dtmq(world) else: @@ -117,7 +117,7 @@ def global_rules(world): # overworld requirements set_rule(world.get_location('Deku Baba Sticks'), lambda state: (state.has('Kokiri Sword') and state.has('Buy Deku Shield')) or (world.open_forest and (state.is_adult() or state.has('Kokiri Sword') or state.has('Boomerang')))) - set_rule(world.get_location('Deku Baba Nuts'), lambda state: (state.has('Kokiri Sword') and state.has('Buy Deku Shield')) or (world.open_forest and (state.is_adult() or state.has_slingshot() or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword') or (state.has('Dins Fire') and state.has('Magic Meter'))))) + set_rule(world.get_location('Deku Baba Nuts'), lambda state: (state.has('Kokiri Sword') and state.has('Buy Deku Shield')) or (world.open_forest and (state.is_adult() or state.has_slingshot() or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword') or state.can_use('Dins Fire')))) set_rule(world.get_entrance('Deku Tree'), lambda state: (state.has('Kokiri Sword') and state.has('Buy Deku Shield')) or world.open_forest) set_rule(world.get_entrance('Lost Woods Bridge'), lambda state: state.can_leave_forest()) set_rule(world.get_location('Skull Kid'), lambda state: state.can_play('Sarias Song')) @@ -136,23 +136,21 @@ def global_rules(world): set_rule(world.get_entrance('Composer Grave'), lambda state: state.can_play('Zeldas Lullaby')) set_rule(world.get_location('Song from Composer Grave'), lambda state: state.is_adult() or (state.has_slingshot() or state.has('Boomerang') or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword'))) set_rule(world.get_location('Composer Grave Chest'), lambda state: state.has_fire_source()) - set_rule(world.get_entrance('Bottom of the Well'), lambda state: state.can_play('Song of Storms') and (world.dungeon_mq['BW'] or (state.has_slingshot() or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword') or (state.has('Dins Fire') and state.has('Magic Meter'))))) + set_rule(world.get_entrance('Bottom of the Well'), lambda state: state.can_play('Song of Storms') and (world.dungeon_mq['BW'] or (state.has_slingshot() or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword') or state.can_use('Dins Fire')))) set_rule(world.get_entrance('Death Mountain Entrance'), lambda state: state.has('Zeldas Letter') or state.is_adult() or world.open_kakariko) set_rule(world.get_entrance('Dodongos Cavern Rocks'), lambda state: state.has_explosives() or state.has('Progressive Strength Upgrade') or state.is_adult()) set_rule(world.get_location('DM Trail Freestanding PoH'), lambda state: world.open_kakariko or (world.difficulty != 'ohko') or state.has('Zeldas Letter') or state.can_blast_or_smash() or state.can_use('Dins Fire') or state.can_use('Nayrus Love') or state.has_bow() or state.has('Progressive Strength Upgrade') or state.has_bottle() or state.has('Hover Boots')) set_rule(world.get_location('Death Mountain Bombable Chest'), lambda state: state.can_blast_or_smash()) set_rule(world.get_location('Biggoron'), lambda state: (not world.logic_no_trade_biggoron) and state.is_adult() and state.can_finish_adult_trades() and state.guarantee_hint()) - set_rule(world.get_location('Goron City Leftmost Maze Chest'), lambda state: state.is_adult() and (state.can_use('Hammer') or state.can_use('Silver Gauntlets'))) - set_rule(world.get_location('Goron City Left Maze Chest'), lambda state: state.can_blast_or_smash() or (state.can_use('Hammer') or state.can_use('Silver Gauntlets'))) - set_rule(world.get_location('Goron City Right Maze Chest'), lambda state: state.can_blast_or_smash() or (state.can_use('Hammer') or state.can_use('Silver Gauntlets'))) + set_rule(world.get_location('Goron City Leftmost Maze Chest'), lambda state: state.can_use('Hammer') or state.can_use('Silver Gauntlets')) + set_rule(world.get_location('Goron City Left Maze Chest'), lambda state: state.can_blast_or_smash() or state.can_use('Silver Gauntlets')) + set_rule(world.get_location('Goron City Right Maze Chest'), lambda state: state.can_blast_or_smash() or state.can_use('Silver Gauntlets')) set_rule(world.get_location('Rolling Goron as Child'), lambda state: state.has('Bomb Bag') and state.has_explosives()) set_rule(world.get_location('Goron City Pot Freestanding PoH'), lambda state: (state.has_bombs() or state.has('Progressive Strength Upgrade')) and ((state.can_play('Zeldas Lullaby') and state.has_sticks()) or state.can_use('Dins Fire'))) set_rule(world.get_entrance('Darunias Chamber'), lambda state: state.can_play('Zeldas Lullaby')) set_rule(world.get_location('Darunias Joy'), lambda state: state.can_play('Sarias Song')) set_rule(world.get_location('Goron City Stick Pot'), lambda state: world.open_kakariko or state.has('Zeldas Letter') or state.has_explosives() or state.can_use('Dins Fire')) set_rule(world.get_entrance('Goron City from Woods'), lambda state: (state.can_blast_or_smash() or state.can_use('Dins Fire') or ((state.has_bow() or state.has('Progressive Strength Upgrade')) and state.is_adult())) and state.can_leave_forest()) - set_rule(world.get_location('King Dodongo'), lambda state: state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) - set_rule(world.get_location('King Dodongo Heart'), lambda state: state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) set_rule(world.get_location('Song from Saria'), lambda state: state.has('Zeldas Letter')) set_rule(world.get_entrance('Mountain Summit Fairy'), lambda state: state.can_blast_or_smash()) set_rule(world.get_location('Crater Fairy Reward'), lambda state: state.can_play('Zeldas Lullaby')) @@ -166,7 +164,7 @@ def global_rules(world): set_rule(world.get_location('Ganons Castle Fairy Reward'), lambda state: state.can_play('Zeldas Lullaby')) set_rule(world.get_location('Bombchu Bowling Bomb Bag'), lambda state: state.has_bombchus()) set_rule(world.get_location('Bombchu Bowling Piece of Heart'), lambda state: state.has_bombchus()) - set_rule(world.get_location('Adult Shooting Gallery'), lambda state: state.can_use('Bow')) + set_rule(world.get_location('Adult Shooting Gallery'), lambda state: state.has('Bow') and state.is_adult()) set_rule(world.get_location('10 Big Poes'), lambda state: (not world.logic_no_big_poes) and (state.can_use('Bow') and state.has('Epona') and state.has_bottle() and state.guarantee_hint())) set_rule(world.get_location('Treasure Chest Game'), lambda state: state.can_use('Lens of Truth')) set_rule(world.get_entrance('Lost Woods Dive Warp'), lambda state: state.can_dive() and state.can_leave_forest()) @@ -175,8 +173,8 @@ def global_rules(world): set_rule(world.get_entrance('Zoras Domain Dive Warp'), lambda state: state.can_dive()) set_rule(world.get_entrance('Zora River Waterfall'), lambda state: state.can_play('Zeldas Lullaby') or world.logic_zora_with_cucco) set_rule(world.get_entrance('Zora River Rocks'), lambda state: state.has_explosives()) - set_rule(world.get_location('Zora River Lower Freestanding PoH'), lambda state: state.has_explosives() or state.has('Progressive Scale') or state.can_use('Hover Boots')) - set_rule(world.get_location('Zora River Upper Freestanding PoH'), lambda state: state.has_explosives() or state.has('Progressive Scale') or state.can_use('Hover Boots')) + set_rule(world.get_location('Zora River Lower Freestanding PoH'), lambda state: state.has_explosives() or state.can_dive() or state.can_use('Hover Boots')) + set_rule(world.get_location('Zora River Upper Freestanding PoH'), lambda state: state.has_explosives() or state.can_dive() or state.can_use('Hover Boots')) set_rule(world.get_location('Frog Ocarina Game'), lambda state: state.can_play('Zeldas Lullaby') and state.can_play('Sarias Song') and state.can_play('Suns Song') and state.can_play('Eponas Song') and state.can_play('Song of Time') and state.can_play('Song of Storms')) set_rule(world.get_location('Frogs in the Rain'), lambda state: state.can_play('Song of Storms')) set_rule(world.get_location('Underwater Bottle'), lambda state: state.can_dive()) @@ -208,12 +206,12 @@ def global_rules(world): set_rule(world.get_location('Sheik at Temple'), lambda state: state.has('Forest Medallion') and state.is_adult()) set_rule(world.get_location('Diving in the Lab'), lambda state: state.has('Progressive Scale', 2)) set_rule(world.get_location('Child Fishing'), lambda state: (not world.logic_no_child_fishing) and state.has('Kokiri Sword')) - set_rule(world.get_location('Adult Fishing'), lambda state: (not world.logic_no_adult_fishing) and state.is_adult() and (state.can_use('Scarecrow') or state.has('Magic Bean') or state.can_reach(world.get_location('Morpha')))) - set_rule(world.get_location('Lake Hylia Freestanding PoH'), lambda state: state.can_use('Scarecrow') or state.has('Magic Bean')) + set_rule(world.get_location('Adult Fishing'), lambda state: (not world.logic_no_adult_fishing) and (state.can_use('Scarecrow') or state.can_use('Magic Bean') or state.can_reach(world.get_location('Morpha')))) + set_rule(world.get_location('Lake Hylia Freestanding PoH'), lambda state: state.can_use('Scarecrow') or state.can_use('Magic Bean')) set_rule(world.get_location('Lake Hylia Sun'), lambda state: (state.can_use('Distant Scarecrow') or state.can_reach(world.get_location('Morpha'))) and state.can_use('Bow')) set_rule(world.get_entrance('Crater Hover Boots'), lambda state: state.can_use('Hover Boots')) set_rule(world.get_entrance('Crater Ascent'), lambda state: state.is_adult()) - set_rule(world.get_entrance('Crater Scarecrow'), lambda state: state.has_ocarina() and state.can_use('Longshot')) + set_rule(world.get_entrance('Crater Scarecrow'), lambda state: state.can_use('Distant Scarecrow')) set_rule(world.get_entrance('Crater Bridge'), lambda state: state.can_use('Hover Boots') or state.can_use('Hookshot')) set_rule(world.get_entrance('Crater Bridge Reverse'), lambda state: state.can_use('Hover Boots') or state.can_use('Hookshot') or state.can_use('Magic Bean')) set_rule(world.get_entrance('Crater Warp Pad'), lambda state: state.can_play('Bolero of Fire') and state.can_leave_forest()) @@ -223,7 +221,7 @@ def global_rules(world): set_rule(world.get_location('Sheik in Crater'), lambda state: state.is_adult()) set_rule(world.get_location('Link the Goron'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade') or state.has_explosives() or state.has_bow())) set_rule(world.get_entrance('Crater Access'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade') or state.has_explosives() or state.has_bow())) - set_rule(world.get_entrance('Goron Shop'), lambda state: state.has_explosives() or state.has('Progressive Strength') or (state.has_bow() and state.is_adult()) or (state.has('Dins Fire') and state.has('Magic Meter')) or ((state.has('Zeldas Letter') or world.open_kakariko or (state.has('Hammer') and state.is_adult())) and (state.can_play('Zeldas Lullaby') and state.has_sticks()))) + set_rule(world.get_entrance('Goron Shop'), lambda state: state.has_explosives() or state.has('Progressive Strength Upgrade') or state.can_use('Bow') or state.can_use('Dins Fire') or ((state.has('Zeldas Letter') or world.open_kakariko or state.can_use('Hammer')) and (state.can_play('Zeldas Lullaby') and state.has_sticks()))) set_rule(world.get_entrance('Lake Warp Pad'), lambda state: state.can_play('Serenade of Water') and state.can_leave_forest()) set_rule(world.get_location('King Zora Thawed'), lambda state: state.has_blue_fire()) set_rule(world.get_entrance('Zora Shop Adult Access'), lambda state: state.has_blue_fire()) @@ -249,7 +247,7 @@ def global_rules(world): set_rule(world.get_location('Desert Colossus Fairy Reward'), lambda state: state.can_play('Zeldas Lullaby')) set_rule(world.get_location('Gerudo Fortress Rooftop Chest'), lambda state: state.can_use('Hover Boots') or state.can_use('Scarecrow') or state.can_use('Longshot')) set_rule(world.get_location('Horseback Archery 1000 Points'), lambda state: state.has('Carpenter Rescue') and state.has('Epona') and state.can_use('Bow')) - set_rule(world.get_location('Horseback Archery 1500 Points'), lambda state: (not world.logic_no_1500_archery) and (state.has('Carpenter Rescue') and state.has('Epona') and state.can_use('Bow'))) + set_rule(world.get_location('Horseback Archery 1500 Points'), lambda state: (not world.logic_no_1500_archery) and state.has('Carpenter Rescue') and state.has('Epona') and state.can_use('Bow')) set_rule(world.get_location('Haunted Wasteland Structure Chest'), lambda state: state.has_fire_source()) set_rule(world.get_location('Zelda'), lambda state: state.has('Shadow Medallion') and state.has('Spirit Medallion') and state.is_adult()) set_rule(world.get_location('Ganon'), lambda state: (state.has('Boss Key (Ganons Castle)') or world.unlocked_ganondorf) and state.can_use('Light Arrows')) @@ -266,11 +264,11 @@ def global_rules(world): set_rule(world.get_entrance('Field Kakariko Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Field North Lon Lon Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Castle Storms Grotto'), lambda state: state.can_play('Song of Storms')) - set_rule(world.get_entrance('Kakariko Bombable Grotto'), lambda state: state.can_blast_or_smash() and (state.is_adult() or (state.has_sticks() or state.has('Kokiri Sword') or (state.has('Dins Fire') and state.has('Magic Meter'))))) + set_rule(world.get_entrance('Kakariko Bombable Grotto'), lambda state: state.can_blast_or_smash() and (state.is_adult() or (state.has_sticks() or state.has('Kokiri Sword') or state.can_use('Dins Fire')))) set_rule(world.get_entrance('Mountain Bombable Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Mountain Storms Grotto'), lambda state: state.can_play('Song of Storms')) set_rule(world.get_entrance('Top of Crater Grotto'), lambda state: state.can_blast_or_smash()) - set_rule(world.get_entrance('Zora River Plateau Open Grotto'), lambda state: state.has_explosives() or state.has('Progressive Scale') or state.is_adult()) + set_rule(world.get_entrance('Zora River Plateau Open Grotto'), lambda state: state.has_explosives() or state.can_dive() or state.is_adult()) set_rule(world.get_entrance('Zora River Plateau Bombable Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_location('Tektite Grotto Freestanding PoH'), lambda state: state.has('Progressive Scale', 2) or state.can_use('Iron Boots')) set_rule(world.get_location('GS Kokiri Know It All House'), lambda state: state.nighttime() and (state.can_leave_forest() or state.can_play('Suns Song')) and state.can_child_attack()) @@ -278,7 +276,7 @@ def global_rules(world): set_rule(world.get_location('GS Kokiri House of Twins'), lambda state: state.can_use('Hookshot') and state.nighttime()) set_rule(world.get_location('GS Lost Woods Bean Patch Near Bridge'), lambda state: state.has_bottle() and state.can_child_attack() and (state.can_leave_forest() or state.has('Kokiri Sword') or state.has_sticks() or state.has('Boomerang') or state.has_explosives() or state.has('Buy Bottle Bug'))) set_rule(world.get_location('GS Lost Woods Bean Patch Near Stage'), lambda state: state.has_bottle() and (state.can_child_attack() or (not world.shuffle_scrubs and state.has('Buy Deku Shield'))) and (state.can_leave_forest() or state.has('Kokiri Sword') or state.has_sticks() or state.has('Boomerang') or state.has_explosives() or state.has('Buy Bottle Bug'))) - set_rule(world.get_location('GS Lost Woods Above Stage'), lambda state: state.has('Magic Bean') and state.nighttime()) + set_rule(world.get_location('GS Lost Woods Above Stage'), lambda state: state.can_use('Magic Bean') and state.nighttime()) set_rule(world.get_location('GS Sacred Forest Meadow'), lambda state: state.can_use('Hookshot') and state.nighttime()) set_rule(world.get_location('GS Hyrule Field near Kakariko'), lambda state: (state.has('Boomerang') and state.has_explosives()) or state.can_use('Hookshot')) set_rule(world.get_location('GS Hyrule Field Near Gerudo Valley'), lambda state: (state.has('Hammer') and state.has_fire_source() and state.can_use('Hookshot')) or (state.has('Boomerang') and state.has_explosives() and state.can_use('Dins Fire'))) @@ -302,7 +300,6 @@ def global_rules(world): set_rule(world.get_location('GS Goron City Boulder Maze'), lambda state: state.has_explosives()) set_rule(world.get_location('GS Death Mountain Crater Crate'), lambda state: state.can_blast_or_smash() and state.can_child_attack()) set_rule(world.get_location('GS Goron City Center Platform'), lambda state: state.is_adult()) - set_rule(world.get_location('GS Mountain Crater Bean Patch'), lambda state: state.can_play('Bolero of Fire') and state.has_bottle() and state.can_child_attack()) set_rule(world.get_location('GS Zora River Ladder'), lambda state: state.nighttime() and state.can_child_attack()) set_rule(world.get_location('GS Zora River Near Raised Grottos'), lambda state: state.can_use('Hookshot') and state.nighttime()) @@ -324,7 +321,7 @@ def global_rules(world): set_rule(world.get_location('GS Wasteland Ruins'), lambda state: state.can_use('Hookshot')) set_rule(world.get_location('GS Desert Colossus Bean Patch'), lambda state: state.has_bottle() and state.can_play('Requiem of Spirit') and state.can_child_attack()) set_rule(world.get_location('GS Desert Colossus Tree'), lambda state: state.can_use('Hookshot') and state.nighttime()) - set_rule(world.get_location('GS Desert Colossus Hill'), lambda state: ((state.has('Magic Bean') and state.can_play('Requiem of Spirit')) or state.can_use('Longshot')) and state.nighttime()) + set_rule(world.get_location('GS Desert Colossus Hill'), lambda state: ((state.can_use('Magic Bean') and state.can_play('Requiem of Spirit')) or state.can_use('Longshot')) and state.nighttime()) set_rule(world.get_location('GS Zora River Tree'), lambda state: state.can_child_attack()) set_rule(world.get_location('HF Grotto Deku Scrub Piece of Heart'), lambda state: state.can_stun_deku()) set_rule(world.get_entrance('Zora River Storms Grotto'), lambda state: state.can_play('Song of Storms') and state.can_stun_deku()) @@ -334,7 +331,7 @@ def global_rules(world): set_rule(world.get_location('LW Deku Scrub Deku Nuts'), lambda state: state.can_stun_deku()) set_rule(world.get_location('LW Deku Scrub Deku Sticks'), lambda state: state.can_stun_deku()) set_rule(world.get_location('LW Deku Scrub Deku Stick Upgrade'), lambda state: state.can_stun_deku()) - set_rule(world.get_entrance('Desert Colossus Grotto'), lambda state: state.can_use('Longshot')) + set_rule(world.get_entrance('Desert Colossus Grotto'), lambda state: state.can_use('Silver Gauntlets')) set_rule(world.get_location('DMC Deku Scrub Bombs'), lambda state: state.can_blast_or_smash() and (state.can_child_attack() or state.has_nuts() or state.has('Buy Deku Shield'))) set_rule(world.get_entrance('DMC Hammer Grotto'), lambda state: state.can_use('Hammer')) set_rule(world.get_entrance('Goron City Grotto'), lambda state: state.is_adult() and ((state.can_play('Song of Time') and (world.difficulty != 'ohko' or state.has_GoronTunic() or state.can_use('Longshot') or state.can_use('Nayrus Love'))) or (world.difficulty != 'ohko' and state.has_GoronTunic() and state.can_use('Hookshot')) or (state.can_use('Nayrus Love') and state.can_use('Hookshot')))) @@ -391,27 +388,28 @@ def set_shop_rules(world): add_rule(location, lambda state: state.is_adult()) # Add item prerequisit checks - if location.item.name in ['Buy Blue Fire', 'Buy Blue Potion', 'Buy Bottle Bug', 'Buy Fish', 'Buy Green Potion', 'Buy Poe', 'Buy Red Potion [30]', 'Buy Red Potion [40]', 'Buy Red Potion [50]', 'Fairy\'s Spirit']: + if location.item.name in ['Buy Blue Fire', 'Buy Blue Potion', 'Buy Bottle Bug', 'Buy Fish', 'Buy Green Potion', 'Buy Poe', 'Buy Red Potion [30]', 'Buy Red Potion [40]', 'Buy Red Potion [50]', 'Buy Fairy\'s Spirit']: add_rule(location, lambda state: state.has_bottle()) if location.item.name in ['Buy Bombchu (10)', 'Buy Bombchu (20)', 'Buy Bombchu (5)']: add_rule(location, lambda state: state.has_bombchus_item()) +# Deku Tree Vanilla def dung_rules_dt0(world): - # Deku Tree Vanilla - set_rule(world.get_entrance('Deku Tree Basement Path'), lambda state: state.has_slingshot() and (state.has_sticks() or (state.has('Dins Fire') and state.has('Magic Meter')))) + set_rule(world.get_entrance('Deku Tree Basement Path'), lambda state: state.has_slingshot() and (state.has_sticks() or state.can_use('Dins Fire'))) set_rule(world.get_entrance('Deku Tree Slingshot Passage'), lambda state: state.has('Buy Deku Shield')) + # Boss set_rule(world.get_location('Queen Gohma Heart'), lambda state: state.has('Buy Deku Shield') and (state.has('Kokiri Sword') or state.has_sticks())) set_rule(world.get_location('Queen Gohma'), lambda state: state.has('Buy Deku Shield') and (state.has('Kokiri Sword') or state.has_sticks())) - # GS + # GS set_rule(world.get_location('GS Deku Tree Basement Back Room'), lambda state: state.has('Boomerang') and (state.has_explosives())) set_rule(world.get_location('GS Deku Tree Basement Gate'), lambda state: state.can_child_attack()) - set_rule(world.get_location('GS Deku Tree Basement Vines'), lambda state: state.has_slingshot() or state.has('Boomerang') or state.has_explosives() or (state.has('Dins Fire') and state.has('Magic Meter'))) + set_rule(world.get_location('GS Deku Tree Basement Vines'), lambda state: state.has_slingshot() or state.has('Boomerang') or state.has_explosives() or state.can_use('Dins Fire')) set_rule(world.get_location('GS Deku Tree Compass Room'), lambda state: state.can_child_attack()) -# MQ Deku Tree +# Deku Tree MQ def dung_rules_dtmq(world): set_rule(world.get_entrance('Deku Tree Compass Passage'), lambda state: state.has_slingshot() and (state.has_sticks() or state.can_use('Dins Fire'))) set_rule(world.get_entrance('Deku Tree Basement Path'), lambda state: state.has_slingshot() and (state.has_sticks() or state.can_use('Dins Fire'))) @@ -431,13 +429,12 @@ def dung_rules_dtmq(world): set_rule(world.get_location('GS Deku Tree MQ Basement Ceiling'), lambda state: state.has('Boomerang') and state.can_play('Song of Time')) set_rule(world.get_location('GS Deku Tree MQ Basement Back Room'), lambda state: state.has('Boomerang')) +# Dodongo's Cavern Vanilla def dung_rules_dc0(world): - # Dodongo's Cavern Vanilla - set_rule(world.get_entrance('Dodongos Cavern Rocks'), lambda state: state.can_blast_or_smash() or state.has('Progressive Strength Upgrade') or state.is_adult()) set_rule(world.get_entrance('Dodongos Cavern Lobby'), lambda state: state.can_blast_or_smash() or state.has('Progressive Strength Upgrade')) - set_rule(world.get_entrance('Dodongos Cavern Left Door'), lambda state: (state.is_adult() or ((state.has_sticks() or (state.has('Dins Fire') and state.has('Magic Meter'))) and (state.has_slingshot() or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword')))) and (state.has_explosives() or state.has('Progressive Strength Upgrade') or (state.has('Dins Fire') and state.has('Magic Meter')) or (state.has_bow() and state.is_adult()))) - set_rule(world.get_location('Dodongos Cavern Compass Chest'), lambda state: state.is_adult() or ((state.has_sticks() or (state.has('Dins Fire') and state.has('Magic Meter'))) and (state.has_slingshot() or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword')))) - set_rule(world.get_location('DC Deku Scrub Deku Sticks'), lambda state: (state.is_adult() or (state.has_slingshot() or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword')))) + set_rule(world.get_entrance('Dodongos Cavern Left Door'), lambda state: (state.is_adult() or ((state.has_sticks() or state.can_use('Dins Fire')) and (state.has_slingshot() or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword')))) and (state.has_explosives() or state.has('Progressive Strength Upgrade') or state.can_use('Dins Fire') or state.can_use('Bow'))) + set_rule(world.get_location('Dodongos Cavern Compass Chest'), lambda state: state.is_adult() or ((state.has_sticks() or state.can_use('Dins Fire')) and (state.has_slingshot() or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword')))) + set_rule(world.get_location('DC Deku Scrub Deku Sticks'), lambda state: state.is_adult() or state.has_slingshot() or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword')) set_rule(world.get_entrance('Dodongos Cavern Slingshot Target'), lambda state: (state.has_slingshot() and (state.has_explosives() or state.has('Progressive Strength Upgrade'))) or ((state.has_bow() or state.has('Hover Boots') or state.has('Progressive Hookshot', 2) or world.logic_dc_jump) and state.is_adult())) set_rule(world.get_location('DC Deku Scrub Deku Nuts'), lambda state: state.can_blast_or_smash()) set_rule(world.get_location('DC Deku Scrub Deku Seeds'), lambda state: state.can_blast_or_smash()) @@ -450,15 +447,15 @@ def dung_rules_dc0(world): # GS set_rule(world.get_location('GS Dodongo\'s Cavern East Side Room'), lambda state: state.has_explosives() or state.is_adult() or state.has_slingshot() or state.has('Boomerang') or state.has_sticks() or state.has('Kokiri Sword')) - set_rule(world.get_location('GS Dodongo\'s Cavern Alcove Above Stairs'), lambda state: (state.has('Progressive Hookshot') and state.is_adult()) or (state.has('Boomerang') and (state.has_explosives() or state.has('Progressive Strength Upgrade')))) - set_rule(world.get_location('GS Dodongo\'s Cavern Scarecrow'), lambda state: state.is_adult() and ( (state.has('Progressive Hookshot') and state.has_ocarina()) or state.has('Progressive Hookshot', 2) )) + set_rule(world.get_location('GS Dodongo\'s Cavern Alcove Above Stairs'), lambda state: state.can_use('Hookshot') or (state.has('Boomerang') and (state.has_explosives() or state.has('Progressive Strength Upgrade')))) + set_rule(world.get_location('GS Dodongo\'s Cavern Scarecrow'), lambda state: state.can_use('Scarecrow') or state.can_use('Longshot')) # Dodongo's Cavern MQ def dung_rules_dcmq(world): set_rule(world.get_entrance('Dodongos Cavern Lobby'), lambda state: state.can_blast_or_smash() or state.has('Progressive Strength Upgrade')) set_rule(world.get_entrance('Dodongos Cavern Bomb Drop'), lambda state: state.has_explosives()) set_rule(world.get_location('Dodongos Cavern MQ Compass Chest'), lambda state: state.is_adult() or state.can_child_attack() or state.has_nuts()) - set_rule(world.get_location('Dodongos Cavern MQ Torch Puzzle Room Chest'), lambda state: state.can_blast_or_smash() or state.has_sticks() or state.can_use('Dins Fire') or (state.is_adult() and (world.logic_dc_jump or state.has('Hover Boots') or state.has('Hookshot')))) + set_rule(world.get_location('Dodongos Cavern MQ Torch Puzzle Room Chest'), lambda state: state.can_blast_or_smash() or state.has_sticks() or state.can_use('Dins Fire') or (state.is_adult() and (world.logic_dc_jump or state.has('Hover Boots') or state.has('Progressive Hookshot')))) set_rule(world.get_location('Dodongos Cavern MQ Larva Room Chest'), lambda state: (state.has_sticks() and (state.has_explosives or state.has('Progressive Strength Upgrade'))) or state.has_fire_source()) set_rule(world.get_location('Dodongos Cavern MQ Bomb Bag Chest'), lambda state: state.is_adult() or (state.has_slingshot() and (state.has_sticks() or state.can_use('Dins Fire') or state.has_explosives()))) set_rule(world.get_location('DC MQ Deku Scrub Deku Sticks'), lambda state: state.can_stun_deku()) @@ -515,17 +512,14 @@ def dung_rules_fot0(world): set_rule(world.get_location('Phantom Ganon'), lambda state: state.has('Boss Key (Forest Temple)')) set_rule(world.get_location('Phantom Ganon Heart'), lambda state: state.has('Boss Key (Forest Temple)')) - # GS + # GS set_rule(world.get_location('GS Forest Temple First Room'), lambda state: state.can_use('Hookshot') or state.can_use('Bow') or state.can_use('Dins Fire')) set_rule(world.get_location('GS Forest Temple Lobby'), lambda state: state.can_use('Hookshot')) set_rule(world.get_location('GS Forest Temple Outdoor East'), lambda state: state.can_use('Hookshot')) set_rule(world.get_location('GS Forest Temple Outdoor West'), lambda state: state.can_use('Longshot') or (state.can_use('Hookshot') and state.can_reach('Forest Temple Outside Upper Ledge'))) set_rule(world.get_location('GS Forest Temple Basement'), lambda state: state.can_use('Hookshot')) -# MQ Forest Temple -# "Quirks to Know": -# - In the block puzzle room, if you turn left immediately and send a bombchu straight up the wall, it'll hit a shortcut switch and you can skip the puzzle (and needing Goron Bracelet). -# - Additionally, after hitting that switch, you can jump, from the 2nd ice block that appears, down to where the hallway twist switch is located, and then jumpslash it through the ice blocks. (You'll recoil off if you jumpslash too early, but the timing is still pretty lenient.) +# Forest Temple MQ def dung_rules_fotmq(world): set_rule(world.get_entrance('Forest Temple Lobby Locked Door'), lambda state: state.has('Small Key (Forest Temple)', 1)) set_rule(world.get_entrance('Forest Temple West Eye Switch'), lambda state: state.can_use('Bow')) @@ -537,7 +531,7 @@ def dung_rules_fotmq(world): set_rule(world.get_entrance('Forest Temple Climb to Top Ledges'), lambda state: state.can_use('Longshot') or state.can_use('Hover Boots') or state.can_play('Song of Time')) set_rule(world.get_entrance('Forest Temple Longshot to NE Outdoors Ledge'), lambda state: state.can_use('Longshot')) set_rule(world.get_entrance('Forest Temple Song of Time Block Climb'), lambda state: state.can_play('Song of Time')) - set_rule(world.get_entrance('Forest Temple Drop to Falling Room'), lambda state: state.has('Small Key (Forest Temple)', 5) and (state.can_use('Bow') or state.can_use('Dins Fire'))) # Only 5 keys because the door you could 'waste' your key on is the door you're trying to use keys to get to. If you do something out of logic to open that door, then I suppose you could be forced to go out of logic again if you don't get the chest or beat Amy. But there shouldn't be any non-glitch thing that you could do that wouldn't be repeatable even if it is out of logic. + set_rule(world.get_entrance('Forest Temple Drop to Falling Room'), lambda state: state.has('Small Key (Forest Temple)', 5) and (state.can_use('Bow') or state.can_use('Dins Fire'))) # Only 5 keys because the door you could 'waste' your key on is the door you're trying to use keys to get to. set_rule(world.get_entrance('Forest Temple Elevator'), lambda state: state.can_use('Bow') and state.has('Small Key (Forest Temple)', 6) and state.can_reach('Forest Temple Bow Region')) if not (world.keysanity or world.tokensanity != 'off'): # Normal seeds will fail to generate if the Boss Key is placed at this location, as it must be a key to progress into the temple. This solution not ideal as it does not allow the Boss Key to appear at this location in beatable only seeds. forbid_item(world.get_location('Forest Temple MQ First Chest'), 'Boss Key (Forest Temple)') @@ -554,48 +548,43 @@ def dung_rules_fotmq(world): # GS set_rule(world.get_location('GS Forest Temple MQ Well'), lambda state: state.can_use('Iron Boots') or state.can_use('Bow')) +# Fire Temple Vanilla def dung_rules_fit0(world): - # Fire Temple Vanilla set_rule(world.get_entrance('Fire Temple Early Climb'), lambda state: state.has_GoronTunic() and state.has('Small Key (Fire Temple)', 4) and state.has('Progressive Strength Upgrade') and (state.has_explosives() or ((state.has_bow() or state.has('Progressive Hookshot')) and state.is_adult()))) - set_rule(world.get_entrance('Fire Temple Fire Maze Escape'), lambda state: state.has('Small Key (Fire Temple)', 8) or (state.has('Small Key (Fire Temple)', 7) and state.has('Hover Boots') and state.has('Hammer') and state.is_adult())) - set_rule(world.get_location('Fire Temple Fire Dancer Chest'), lambda state: (state.has('Small Key (Fire Temple)', 8) or not world.keysanity) and state.is_adult() and state.has('Hammer')) - set_rule(world.get_location('Fire Temple Boss Key Chest'), lambda state: (state.has('Small Key (Fire Temple)', 8) or not world.keysanity) and state.is_adult() and state.has('Hammer')) + set_rule(world.get_entrance('Fire Temple Fire Maze Escape'), lambda state: state.has('Small Key (Fire Temple)', 8) or (state.has('Small Key (Fire Temple)', 7) and state.can_use('Hover Boots') and state.can_use('Hammer'))) + set_rule(world.get_location('Fire Temple Fire Dancer Chest'), lambda state: (state.has('Small Key (Fire Temple)', 8) or not world.keysanity) and state.can_use('Hammer')) + set_rule(world.get_location('Fire Temple Boss Key Chest'), lambda state: (state.has('Small Key (Fire Temple)', 8) or not world.keysanity) and state.can_use('Hammer')) set_rule(world.get_location('Fire Temple Big Lava Room Bombable Chest'), lambda state: state.has('Small Key (Fire Temple)', 2) and state.has_explosives()) set_rule(world.get_location('Fire Temple Big Lava Room Open Chest'), lambda state: state.has('Small Key (Fire Temple)', 2)) - set_rule(world.get_location('Fire Temple Map Chest'), lambda state: state.has('Small Key (Fire Temple)', 6) or (state.has('Small Key (Fire Temple)', 5) and state.is_adult() and state.has_bow())) + set_rule(world.get_location('Fire Temple Map Chest'), lambda state: state.has('Small Key (Fire Temple)', 6) or (state.has('Small Key (Fire Temple)', 5) and state.can_use('Bow'))) set_rule(world.get_location('Fire Temple Boulder Maze Upper Chest'), lambda state: state.has('Small Key (Fire Temple)', 6)) set_rule(world.get_location('Fire Temple Boulder Maze Bombable Pit'), lambda state: state.has('Small Key (Fire Temple)', 6) and state.has_explosives()) - set_rule(world.get_location('Fire Temple Scarecrow Chest'), lambda state: state.has_ocarina() and state.has('Small Key (Fire Temple)', 6) and state.has('Progressive Hookshot') and state.is_adult()) + set_rule(world.get_location('Fire Temple Scarecrow Chest'), lambda state: state.has('Small Key (Fire Temple)', 6) and state.can_use('Scarecrow')) set_rule(world.get_location('Fire Temple Compass Chest'), lambda state: state.has('Small Key (Fire Temple)', 7)) - set_rule(world.get_location('Fire Temple Highest Goron Chest'), lambda state: state.can_play('Song of Time') and state.has('Hammer') and state.is_adult()) + set_rule(world.get_location('Fire Temple Highest Goron Chest'), lambda state: state.can_play('Song of Time') and state.can_use('Hammer')) set_rule(world.get_location('Fire Temple Megaton Hammer Chest'), lambda state: state.has_explosives()) - #boss - set_rule(world.get_location('Volvagia'), lambda state: state.has_GoronTunic() and state.has('Hammer') and state.is_adult() and state.has('Boss Key (Fire Temple)') and (state.has('Hover Boots') or (state.can_reach('Fire Temple Upper') and (state.can_play('Song of Time') or state.has_explosives())))) - set_rule(world.get_location('Volvagia Heart'), lambda state: state.has_GoronTunic() and state.has('Hammer') and state.is_adult() and state.has('Boss Key (Fire Temple)') and (state.has('Hover Boots') or (state.can_reach('Fire Temple Upper') and (state.can_play('Song of Time') or state.has_explosives())))) + # Boss + set_rule(world.get_location('Volvagia'), lambda state: state.has_GoronTunic() and state.can_use('Hammer') and state.has('Boss Key (Fire Temple)') and (state.has('Hover Boots') or (state.can_reach('Fire Temple Upper') and (state.can_play('Song of Time') or state.has_explosives())))) + set_rule(world.get_location('Volvagia Heart'), lambda state: state.has_GoronTunic() and state.can_use('Hammer') and state.has('Boss Key (Fire Temple)') and (state.has('Hover Boots') or (state.can_reach('Fire Temple Upper') and (state.can_play('Song of Time') or state.has_explosives())))) - # GS + # GS set_rule(world.get_location('GS Fire Temple Song of Time Room'), lambda state: state.has('Small Key (Fire Temple)', 2) and state.can_play('Song of Time')) set_rule(world.get_location('GS Fire Temple Unmarked Bomb Wall'), lambda state: state.has('Small Key (Fire Temple)', 4) and state.has_explosives()) - set_rule(world.get_location('GS Fire Temple East Tower Climb'), lambda state: state.has_ocarina() and state.has('Small Key (Fire Temple)', 6) and state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('GS Fire Temple East Tower Top'), lambda state: state.has_ocarina() and state.has('Small Key (Fire Temple)', 6) and state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_location('GS Fire Temple Basement'), lambda state: (state.has('Small Key (Fire Temple)', 8) or not world.keysanity) and state.has('Hammer') and state.is_adult()) - -# MQ Fire Temple -# "Quirks to Know": -# - In the "Big Lava Room", the torches are a little glitchy I guess and can only be lit with just Dins (using no Bow) if you light them in a certain order. -# - That order is south torch, then one of the other two torches, and ignoring the 3rd torch, and without leaving the room between lighting those two torches. -# - If you fail to hit the torches in this this specific way, you must leave the dungeon to reset the puzzle to try again. -# - Now actually, the ledge torch and the north torch can be lit with just Dins but you really have to know what you're doing and you have to move really quickly. + set_rule(world.get_location('GS Fire Temple East Tower Climb'), lambda state: state.has('Small Key (Fire Temple)', 6) and state.can_use('Scarecrow')) + set_rule(world.get_location('GS Fire Temple East Tower Top'), lambda state: state.has('Small Key (Fire Temple)', 6) and state.can_use('Scarecrow')) + set_rule(world.get_location('GS Fire Temple Basement'), lambda state: (state.has('Small Key (Fire Temple)', 8) or not world.keysanity) and state.can_use('Hammer')) + +# Fire Temple MQ def dung_rules_fitmq(world): set_rule(world.get_entrance('Fire Temple Lower Locked Door'), lambda state: state.has('Small Key (Fire Temple)', 5) and (state.has_explosives() or state.has('Hammer') or state.has('Progressive Hookshot'))) set_rule(world.get_entrance('Fire Temple Hammer Statue'), lambda state: state.can_use('Hammer')) set_rule(world.get_entrance('Fire Temple Early Climb'), lambda state: state.has_GoronTunic() and state.has('Small Key (Fire Temple)', 2) and state.has_fire_source()) set_rule(world.get_entrance('Fire Temple Maze Climb'), lambda state: state.has_explosives() and state.can_use('Hookshot')) - set_rule(world.get_entrance('Fire Temple Maze Escape'), lambda state: state.has('Small Key (Fire Temple)', 3) and state.has('Bow')) - set_rule(world.get_location('Fire Temple MQ Chest Near Boss'), lambda state: (state.has('Hover Boots') and state.has_fire_source()) or (state.has('Progressive Hookshot') and state.has('Magic Meter') and ((state.has('Fire Arrows') and state.has('Bow')) or (state.has('Dins Fire') and ((world.difficulty != 'ohko') or state.has_GoronTunic() or state.has('Bow') or state.has('Progressive Hookshot', 2)))))) + set_rule(world.get_entrance('Fire Temple Maze Escape'), lambda state: state.has('Small Key (Fire Temple)', 3) and state.has_bow()) + set_rule(world.get_location('Fire Temple MQ Chest Near Boss'), lambda state: (state.has('Hover Boots') and state.has_fire_source()) or (state.has('Progressive Hookshot') and (state.can_use('Fire Arrows') or (state.can_use('Dins Fire') and (world.difficulty != 'ohko' or state.has_GoronTunic() or state.has_bow() or state.has('Progressive Hookshot', 2)))))) set_rule(world.get_location('Fire Temple MQ Map Chest'), lambda state: state.has('Hammer')) - set_rule(world.get_location('Fire Temple MQ Boss Key Chest'), lambda state: state.has_fire_source() and state.has('Bow') and state.has('Progressive Hookshot')) + set_rule(world.get_location('Fire Temple MQ Boss Key Chest'), lambda state: state.has_fire_source() and state.has_bow() and state.has('Progressive Hookshot')) set_rule(world.get_location('Fire Temple MQ Big Lava Room Bombable Chest'), lambda state: state.has_fire_source() and state.has('Progressive Hookshot') and state.has_explosives()) set_rule(world.get_location('Fire Temple MQ West Tower Top Chest'), lambda state: state.has('Small Key (Fire Temple)', 4)) @@ -609,40 +598,36 @@ def dung_rules_fitmq(world): # Water Temple Vanilla def dung_rules_wt0(world): - # Water Temple vanilla - set_rule(world.get_entrance('Water Temple Central Pillar'), lambda state: (state.has('Bow') or state.can_use('Dins Fire') or state.has('Small Key (Water Temple)', 5)) and state.can_play('Zeldas Lullaby')) - set_rule(world.get_entrance('Water Temple Upper Locked Door'), lambda state: state.has('Small Key (Water Temple)', 5) and (state.can_play('Zeldas Lullaby') or world.keysanity)) - set_rule(world.get_location('Water Temple Torches Chest'), lambda state: (state.has('Bow') or state.can_use('Dins Fire')) and state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('Water Temple Dragon Chest'), lambda state: (state.has('Progressive Strength Upgrade') and state.can_play('Zeldas Lullaby')) or (state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity) and state.can_play('Song of Time') and state.has('Bow'))) - set_rule(world.get_location('Water Temple Central Bow Target Chest'), lambda state: state.has('Bow') and state.has('Progressive Strength Upgrade') and state.can_play('Zeldas Lullaby') and (state.has('Hover Boots') or state.can_use('Longshot'))) - set_rule(world.get_location('Water Temple Boss Key Chest'), lambda state: (state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity) and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and state.can_use('Longshot')) or (state.has('Small Key (Water Temple)', 5) and (item_name(state, 'Water Temple Boss Key Chest') == 'Small Key (Water Temple)' or not world.keys_placed))) #If key for key, this lets the logic reduce the small key reqs for every other locked door. - set_rule(world.get_location('Water Temple Cracked Wall Chest'), lambda state: state.has_explosives()) - set_rule(world.get_location('Water Temple Dark Link Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity)) - set_rule(world.get_location('Water Temple River Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and state.can_play('Song of Time') and state.has('Bow') and (state.can_play('Zeldas Lullaby') or world.keysanity)) - set_rule(world.get_location('Water Temple Central Pillar Chest'), lambda state: state.has_ZoraTunic()) - - # Boss - set_rule(world.get_location('Morpha'), lambda state: state.has('Boss Key (Water Temple)') and state.can_use('Longshot')) - set_rule(world.get_location('Morpha Heart'), lambda state: state.has('Boss Key (Water Temple)') and state.can_use('Longshot')) - - # GS - set_rule(world.get_location('GS Water Temple South Basement'), lambda state: state.has_explosives() and state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('GS Water Temple Serpent River'), lambda state: state.can_play('Song of Time') and state.has('Small Key (Water Temple)', 6)) - set_rule(world.get_location('GS Water Temple Falling Platform Room'), lambda state: state.can_use('Longshot')) - set_rule(world.get_location('GS Water Temple Central Room'), lambda state: state.can_use('Longshot') or state.can_use('Farores Wind')) - set_rule(world.get_location('GS Water Temple Near Boss Key Chest'), lambda state: state.can_use('Longshot') and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and (state.can_play('Zeldas Lullaby') or world.keysanity) and state.has('Small Key (Water Temple)', 5)) - -# MQ Water Temple -# Water Temple Freestanding Key: -# - There's an extra key in water temple because the door it was supposed to unlock shares a flag with something that it's required to do in order to reach the door in the first place. -# - This was fixed in OoT3D... and it's been fixed in rando I guess. + set_rule(world.get_entrance('Water Temple Central Pillar'), lambda state: (state.has_bow() or state.can_use('Dins Fire') or state.has('Small Key (Water Temple)', 5)) and state.can_play('Zeldas Lullaby')) + set_rule(world.get_entrance('Water Temple Upper Locked Door'), lambda state: state.has('Small Key (Water Temple)', 5) and (state.can_play('Zeldas Lullaby') or world.keysanity)) + set_rule(world.get_location('Water Temple Torches Chest'), lambda state: (state.has_bow() or state.can_use('Dins Fire')) and state.can_play('Zeldas Lullaby')) + set_rule(world.get_location('Water Temple Dragon Chest'), lambda state: (state.has('Progressive Strength Upgrade') and state.can_play('Zeldas Lullaby')) or (state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity) and state.can_play('Song of Time') and state.has_bow())) + set_rule(world.get_location('Water Temple Central Bow Target Chest'), lambda state: state.has_bow() and state.has('Progressive Strength Upgrade') and state.can_play('Zeldas Lullaby') and (state.has('Hover Boots') or state.can_use('Longshot'))) + set_rule(world.get_location('Water Temple Boss Key Chest'), lambda state: (state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity) and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and state.can_use('Longshot')) or (state.has('Small Key (Water Temple)', 5) and (item_name(state, 'Water Temple Boss Key Chest') == 'Small Key (Water Temple)' or not world.keys_placed))) #If key for key, this lets the logic reduce the small key reqs for every other locked door. + set_rule(world.get_location('Water Temple Cracked Wall Chest'), lambda state: state.has_explosives()) + set_rule(world.get_location('Water Temple Dark Link Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity)) + set_rule(world.get_location('Water Temple River Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and state.can_play('Song of Time') and state.has_bow() and (state.can_play('Zeldas Lullaby') or world.keysanity)) + set_rule(world.get_location('Water Temple Central Pillar Chest'), lambda state: state.has_ZoraTunic()) + + # Boss + set_rule(world.get_location('Morpha'), lambda state: state.has('Boss Key (Water Temple)') and state.can_use('Longshot')) + set_rule(world.get_location('Morpha Heart'), lambda state: state.has('Boss Key (Water Temple)') and state.can_use('Longshot')) + + # GS + set_rule(world.get_location('GS Water Temple South Basement'), lambda state: state.has_explosives() and state.can_play('Zeldas Lullaby')) + set_rule(world.get_location('GS Water Temple Serpent River'), lambda state: state.can_play('Song of Time') and state.has('Small Key (Water Temple)', 6)) + set_rule(world.get_location('GS Water Temple Falling Platform Room'), lambda state: state.can_use('Longshot')) + set_rule(world.get_location('GS Water Temple Central Room'), lambda state: state.can_use('Longshot') or state.can_use('Farores Wind')) + set_rule(world.get_location('GS Water Temple Near Boss Key Chest'), lambda state: state.can_use('Longshot') and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and (state.can_play('Zeldas Lullaby') or world.keysanity) and state.has('Small Key (Water Temple)', 5)) + +# Water Temple MQ def dung_rules_wtmq(world): set_rule(world.get_entrance('Water Temple Water Level Switch'), lambda state: state.can_play('Zeldas Lullaby')) set_rule(world.get_entrance('Water Temple Locked Door'), lambda state: state.has('Small Key (Water Temple)') and state.can_use('Longshot')) set_rule(world.get_entrance('Water Temple Basement Gates Switch'), lambda state: state.can_use('Dins Fire') and (state.has('Hover Boots') or state.has_ocarina())) set_rule(world.get_location('Water Temple MQ Map Chest'), lambda state: state.has_fire_source()) set_rule(world.get_location('Water Temple MQ Central Pillar Chest'), lambda state: state.has_ZoraTunic() and (state.can_use('Fire Arrows') or (state.can_use('Dins Fire') and state.can_play('Song of Time')))) - set_rule(world.get_location('Water Temple MQ Compass Chest'), lambda state: state.has('Bow') or state.can_use('Dins Fire')) + set_rule(world.get_location('Water Temple MQ Compass Chest'), lambda state: state.has_bow() or state.can_use('Dins Fire')) set_rule(world.get_location('Water Temple MQ Boss Key Chest'), lambda state: state.can_use('Dins Fire')) # Boss @@ -658,26 +643,26 @@ def dung_rules_wtmq(world): # Spirit Temple Vanilla def dung_rules_spt0(world): set_rule(world.get_entrance('Spirit Temple Crawl Passage'), lambda state: state.can_play('Requiem of Spirit')) - set_rule(world.get_entrance('Spirit Temple Silver Block'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.is_adult()) + set_rule(world.get_entrance('Spirit Temple Silver Block'), lambda state: state.can_use('Silver Gauntlets')) set_rule(world.get_entrance('Child Spirit Temple Climb'), lambda state: state.has('Small Key (Spirit Temple)', 1)) set_rule(world.get_entrance('Child Spirit Temple Passthrough'), lambda state: state.has_explosives()) set_rule(world.get_entrance('Adult Spirit Temple Passthrough'), lambda state: state.has('Small Key (Spirit Temple)', 1)) - set_rule(world.get_entrance('Spirit Temple Central Locked Door'), lambda state: state.has('Small Key (Spirit Temple)', 4) and state.has('Progressive Strength Upgrade', 2) and state.is_adult()) - set_rule(world.get_entrance('Spirit Temple Final Locked Door'), lambda state: state.has('Small Key (Spirit Temple)', 5) and (state.has('Progressive Hookshot') or state.has_bow() or state.has_explosives())) + set_rule(world.get_entrance('Spirit Temple Central Locked Door'), lambda state: state.has('Small Key (Spirit Temple)', 4) and state.can_use('Silver Gauntlets')) + set_rule(world.get_entrance('Spirit Temple Final Locked Door'), lambda state: state.has('Small Key (Spirit Temple)', 5) and state.has_projectile('adult')) set_rule(world.get_location('Spirit Temple Child Left Chest'), lambda state: (state.has('Boomerang') or state.has_slingshot() or state.has_bombchus()) and (state.has_sticks() or state.has_explosives() or ((state.has_nuts() or state.has('Boomerang')) and (state.has('Kokiri Sword') or state.has_slingshot())))) - set_rule(world.get_location('Spirit Temple Child Right Chest'), lambda state: (state.has('Boomerang') or state.has_slingshot() or state.has_bombchus()) and (state.has_sticks() or state.has_explosives() or ((state.has_nuts() or state.has('Boomerang')) and (state.has('Kokiri Sword') or state.has_slingshot()))) and (state.has_sticks() or (state.has('Dins Fire') and state.has('Magic Meter')))) + set_rule(world.get_location('Spirit Temple Child Right Chest'), lambda state: (state.has('Boomerang') or state.has_slingshot() or state.has_bombchus()) and (state.has_sticks() or state.has_explosives() or ((state.has_nuts() or state.has('Boomerang')) and (state.has('Kokiri Sword') or state.has_slingshot()))) and (state.has_sticks() or state.can_use('Dins Fire'))) set_rule(world.get_location('Spirit Temple Compass Chest'), lambda state: state.has('Progressive Hookshot') and state.can_play('Zeldas Lullaby')) set_rule(world.get_location('Spirit Temple Early Adult Right Chest'), lambda state: state.has_bow() or state.has('Progressive Hookshot') or state.has_bombchus()) #requires a very specific Bombchu use, Hover Boots can be skipped by jumping on top of the rolling rock. set_rule(world.get_location('Spirit Temple First Mirror Right Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3)) set_rule(world.get_location('Spirit Temple First Mirror Left Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3)) # All of these paths that include a check for bombchus_in_logic need to ensure that you have access to bombchu refills as well. That's currently always true thanks to bombchu bowling. But other the sources require bombchus already to be bought, which is not how we'd need it to work if bombchu refills were suddenly to become more scarce. So for now I opted not to put in the check for bombchu refills. - set_rule(world.get_location('Spirit Temple Map Chest'), lambda state: ((state.has_explosives() or state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and world.bombchus_in_logic)) and state.has('Magic Meter') and (state.has('Dins Fire') or (state.has('Fire Arrows') and state.has_bow() and state.has_sticks()))) or (state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit') and state.has_sticks()) or (state.has('Small Key (Spirit Temple)', 3) and state.has('Fire Arrows') and state.has('Magic Meter') and state.has_bow() and state.has('Progressive Strength Upgrade', 2) and state.is_adult())) - set_rule(world.get_location('Spirit Temple Child Climb East Chest'), lambda state: state.has_explosives() or ((state.has('Boomerang') or state.has_slingshot()) and (state.has('Progressive Hookshot') or state.has_bow())) or ((state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and world.bombchus_in_logic)) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and (state.has('Progressive Hookshot') or state.has_bow())) or (state.has('Small Key (Spirit Temple)', 5) and state.can_play('Requiem of Spirit') and (state.has('Boomerang') or state.has_slingshot()))) - set_rule(world.get_location('Spirit Temple Child Climb North Chest'), lambda state: state.has_explosives() or ((state.has('Boomerang') or state.has_slingshot()) and (state.has('Progressive Hookshot') or state.has_bow())) or ((state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and world.bombchus_in_logic)) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and (state.has('Progressive Hookshot') or state.has_bow())) or (state.has('Small Key (Spirit Temple)', 5) and state.can_play('Requiem of Spirit') and (state.has('Boomerang') or state.has_slingshot()))) - set_rule(world.get_location('Spirit Temple Sun Block Room Chest'), lambda state: ((state.has_explosives() or state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and world.bombchus_in_logic)) and state.has('Magic Meter') and (state.has('Dins Fire') or (state.has('Fire Arrows') and state.has_bow() and state.has_sticks()))) or (state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit') and state.has_sticks()) or (state.has('Small Key (Spirit Temple)', 3) and state.has('Fire Arrows') and state.has('Magic Meter') and state.has_bow() and state.has('Progressive Strength Upgrade', 2) and state.is_adult())) - set_rule(world.get_location('Spirit Temple Statue Hand Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('Spirit Temple NE Main Room Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.can_play('Zeldas Lullaby') and (state.has('Progressive Hookshot') or state.has("Hover Boots"))) - set_rule(world.get_location('Mirror Shield Chest'), lambda state: state.has('Small Key (Spirit Temple)', 4) and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and state.has_explosives()) + set_rule(world.get_location('Spirit Temple Map Chest'), lambda state: ((state.has_explosives() or state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and world.bombchus_in_logic)) and state.has('Magic Meter') and (state.has('Dins Fire') or (state.has('Fire Arrows') and state.has_bow() and state.has_sticks()))) or (state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit') and state.has_sticks()) or (state.has('Small Key (Spirit Temple)', 3) and state.can_use('Fire Arrows') and state.can_use('Silver Gauntlets'))) + set_rule(world.get_location('Spirit Temple Child Climb East Chest'), lambda state: state.has_projectile('both') or ((state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and world.bombchus_in_logic)) and state.can_use('Silver Gauntlets') and state.has_projectile('adult')) or (state.has('Small Key (Spirit Temple)', 5) and state.can_play('Requiem of Spirit') and state.has_projectile('child'))) + set_rule(world.get_location('Spirit Temple Child Climb North Chest'), lambda state: state.has_projectile('both') or ((state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and world.bombchus_in_logic)) and state.can_use('Silver Gauntlets') and state.has_projectile('adult')) or (state.has('Small Key (Spirit Temple)', 5) and state.can_play('Requiem of Spirit') and state.has_projectile('child'))) + set_rule(world.get_location('Spirit Temple Sun Block Room Chest'), lambda state: ((state.has_explosives() or state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and world.bombchus_in_logic)) and state.has('Magic Meter') and (state.has('Dins Fire') or (state.has('Fire Arrows') and state.has_bow() and state.has_sticks()))) or (state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit') and state.has_sticks()) or (state.has('Small Key (Spirit Temple)', 3) and state.can_use('Fire Arrows') and state.can_use('Silver Gauntlets'))) + set_rule(world.get_location('Spirit Temple Statue Hand Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3) and state.can_use('Silver Gauntlets') and state.can_play('Zeldas Lullaby')) + set_rule(world.get_location('Spirit Temple NE Main Room Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3) and state.can_use('Silver Gauntlets') and state.can_play('Zeldas Lullaby') and (state.has('Progressive Hookshot') or state.has('Hover Boots'))) + set_rule(world.get_location('Mirror Shield Chest'), lambda state: state.has('Small Key (Spirit Temple)', 4) and state.can_use('Silver Gauntlets') and state.has_explosives()) set_rule(world.get_location('Silver Gauntlets Chest'), lambda state: (state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Hookshot', 2) and state.has_explosives()) or state.has('Small Key (Spirit Temple)', 5)) set_rule(world.get_location('Spirit Temple Near Four Armos Chest'), lambda state: state.has('Mirror Shield') and state.has_explosives()) set_rule(world.get_location('Spirit Temple Hallway Left Invisible Chest'), lambda state: state.can_see_with_lens() and state.has_explosives()) @@ -687,20 +672,14 @@ def dung_rules_spt0(world): set_rule(world.get_location('Twinrova'), lambda state: state.has('Mirror Shield') and state.has_explosives() and state.has('Progressive Hookshot') and state.has('Boss Key (Spirit Temple)')) set_rule(world.get_location('Twinrova Heart'), lambda state: state.has('Mirror Shield') and state.has_explosives() and state.has('Progressive Hookshot') and state.has('Boss Key (Spirit Temple)')) - # GS + # GS set_rule(world.get_location('GS Spirit Temple Metal Fence'), lambda state: (state.has('Boomerang') or state.has_slingshot() or state.has_bombchus()) and (state.has_sticks() or state.has_explosives() or ((state.has_nuts() or state.has('Boomerang')) and (state.has('Kokiri Sword') or state.has_slingshot())))) - set_rule(world.get_location('GS Spirit Temple Hall to West Iron Knuckle'), lambda state: (state.has_explosives() and state.has('Boomerang') and state.has('Progressive Hookshot')) or (state.has('Boomerang') and state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit')) or (state.has('Progressive Hookshot') and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and (state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and state.has('Boomerang') and world.bombchus_in_logic)))) + set_rule(world.get_location('GS Spirit Temple Hall to West Iron Knuckle'), lambda state: (state.has_explosives() and state.has('Boomerang') and state.has('Progressive Hookshot')) or (state.has('Boomerang') and state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit')) or (state.has('Progressive Hookshot') and state.can_use('Silver Gauntlets') and (state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and state.has('Boomerang') and world.bombchus_in_logic)))) set_rule(world.get_location('GS Spirit Temple Boulder Room'), lambda state: state.can_play('Song of Time') and (state.has_bow() or state.has('Progressive Hookshot') or state.has_bombchus())) - set_rule(world.get_location('GS Spirit Temple Lobby'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.has('Small Key (Spirit Temple)', 3) and state.is_adult() and (state.has('Progressive Hookshot', 2) or (state.has('Progressive Hookshot') and state.has_ocarina()) or state.has('Hover Boots'))) - set_rule(world.get_location('GS Spirit Temple Bomb for Light Room'), lambda state: state.can_child_attack() or ((state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and world.bombchus_in_logic)) and state.has('Progressive Strength Upgrade', 2) and state.is_adult())) + set_rule(world.get_location('GS Spirit Temple Lobby'), lambda state: state.can_use('Silver Gauntlets') and state.has('Small Key (Spirit Temple)', 3) and (state.can_use('Longshot') or state.can_use('Scarecrow') or state.has('Hover Boots'))) + set_rule(world.get_location('GS Spirit Temple Bomb for Light Room'), lambda state: state.can_child_attack() or ((state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and world.bombchus_in_logic)) and state.can_use('Silver Gauntlets'))) # Spirit Temple MQ -# "Quirks to Know": -# Spirit Temple Sun Block Room: -# - The switch to enter this room can be reached as adult without either hover boots or song of time. -# Spirit Temple Silver Block Hallway Chest: -# - In the vanilla game, this eye switch gets permanently blocked off after the silver block is pushed. -# - This was changed so that the block does not appear pushed as child. def dung_rules_sptmq(world): set_rule(world.get_entrance('Spirit Temple Crawl Passage'), lambda state: state.can_play('Requiem of Spirit')) set_rule(world.get_entrance('Spirit Temple Ceiling Passage'), lambda state: state.has_bombchus() and state.can_use('Longshot') and state.can_use('Silver Gauntlets')) @@ -708,7 +687,7 @@ def dung_rules_sptmq(world): set_rule(world.get_entrance('Adult Spirit Temple Descent'), lambda state: state.can_use('Fire Arrows') and state.has('Mirror Shield')) set_rule(world.get_entrance('Spirit Temple Climbable Wall'), lambda state: state.has('Small Key (Spirit Temple)', 6) and state.can_play('Zeldas Lullaby') and state.has('Hammer')) set_rule(world.get_location('Spirit Temple MQ Entrance Back Left Chest'), lambda state: state.can_blast_or_smash() and ((state.can_play('Requiem of Spirit') and state.has_slingshot()) or state.can_use('Bow'))) - set_rule(world.get_location('Spirit Temple MQ Entrance Back Right Chest'), lambda state: state.has_bombchus() or ((state.is_adult() and (state.has_bow() or state.has('Progressive Hookshot'))) or (state.can_play('Requiem of Spirit') and (state.has_slingshot() or state.has('Boomerang'))))) + set_rule(world.get_location('Spirit Temple MQ Entrance Back Right Chest'), lambda state: state.has_bombchus() or state.can_use('Bow') or state.can_use('Hookshot') or (state.can_play('Requiem of Spirit') and (state.has_slingshot() or state.has('Boomerang')))) set_rule(world.get_location('Spirit Temple MQ Map Chest'), lambda state: state.has_sticks() or state.has('Kokiri Sword') or state.has_explosives()) set_rule(world.get_location('Spirit Temple MQ Child Left Chest'), lambda state: (state.has_sticks() or state.has('Kokiri Sword')) and state.has_bombchus() and state.has_slingshot() and state.can_use('Dins Fire')) set_rule(world.get_location('Spirit Temple MQ Silver Block Hallway Chest'), lambda state: state.has_bombchus() and state.has('Small Key (Spirit Temple)', 7) and state.has_slingshot() and (state.can_use('Dins Fire') or (state.can_use('Longshot') and state.can_use('Silver Gauntlets') and state.can_use('Fire Arrows')))) @@ -748,7 +727,7 @@ def dung_rules_sht0(world): set_rule(world.get_location('Shadow Temple Invisible Spikes Chest'), lambda state: state.has('Small Key (Shadow Temple)', 2)) set_rule(world.get_location('Shadow Temple Freestanding Key'), lambda state: state.has('Small Key (Shadow Temple)', 2) and state.has('Progressive Hookshot') and (state.has_bombs() or state.has('Progressive Strength Upgrade'))) - # boss rules + # Boss set_rule(world.get_location('Bongo Bongo'), lambda state: state.has('Small Key (Shadow Temple)', 5) and (state.has_bow() or state.has('Progressive Hookshot', 2)) and state.has('Boss Key (Shadow Temple)')) set_rule(world.get_location('Bongo Bongo Heart'), lambda state: state.has('Small Key (Shadow Temple)', 5) and (state.has_bow() or state.has('Progressive Hookshot', 2)) and state.has('Boss Key (Shadow Temple)')) @@ -759,23 +738,14 @@ def dung_rules_sht0(world): set_rule(world.get_location('GS Shadow Temple Near Ship'), lambda state: state.has('Progressive Hookshot', 2) and state.has('Small Key (Shadow Temple)', 4)) # Shadow Temple MQ -# "Quirks to Know": -# GS Shadow Temple After Ship: -# - You do not need to bring down the statue to get this. -# - If you position carefully you can get it with just the hookshot. Hopefully you don't fall in! -# Shadow Temple Bomb Flower Room Chest: -# - With lens logic off, you may have to fight this guy not knowing where he is. -# - Dins can set off all the flowers, then a few bombs can maybe hit the few spots in the room that doesn't reach. -# - And arrows can help too if you run out of magic. And maybe you'll have strength a fair amount of the time. -# - So I think if you're really playing with lens logic off, you should be able to handle this. def dung_rules_shtmq(world): - set_rule(world.get_entrance('Shadow Temple First Pit'), lambda state: (state.has('Fire Arrows') and state.has('Bow')) or state.has('Hover Boots')) + set_rule(world.get_entrance('Shadow Temple First Pit'), lambda state: state.can_use('Fire Arrows') or state.has('Hover Boots')) set_rule(world.get_entrance('Shadow Temple Beginning Locked Door'), lambda state: state.has_explosives() and state.has('Small Key (Shadow Temple)', 6)) set_rule(world.get_entrance('Shadow Temple Bomb Wall'), lambda state: state.has_explosives() and state.has('Small Key (Shadow Temple)', 2)) set_rule(world.get_entrance('Shadow Temple Hookshot Target'), lambda state: state.has('Hover Boots') and state.has('Progressive Hookshot') and state.has('Small Key (Shadow Temple)', 4)) set_rule(world.get_entrance('Shadow Temple Boat'), lambda state: state.can_play('Zeldas Lullaby') and state.has('Small Key (Shadow Temple)', 5)) - set_rule(world.get_entrance('Shadow Temple Longshot Target'), lambda state: state.has('Bow') and state.can_play('Song of Time') and state.can_use('Longshot')) - set_rule(world.get_location('Shadow Temple MQ Hover Boots Chest'), lambda state: state.can_play('Song of Time') and state.has('Bow')) + set_rule(world.get_entrance('Shadow Temple Longshot Target'), lambda state: state.has_bow() and state.can_play('Song of Time') and state.can_use('Longshot')) + set_rule(world.get_location('Shadow Temple MQ Hover Boots Chest'), lambda state: state.can_play('Song of Time') and state.has_bow()) set_rule(world.get_location('Shadow Temple MQ Invisible Blades Visible Chest'), lambda state: state.can_play('Song of Time')) set_rule(world.get_location('Shadow Temple MQ Invisible Blades Invisible Chest'), lambda state: state.can_play('Song of Time')) set_rule(world.get_location('Shadow Temple MQ Beamos Silver Rupees Chest'), lambda state: state.can_use('Longshot')) @@ -787,12 +757,12 @@ def dung_rules_shtmq(world): set_rule(world.get_location('Shadow Temple MQ Boss Key Chest'), lambda state: state.has('Small Key (Shadow Temple)', 6)) # Boss - set_rule(world.get_location('Bongo Bongo'), lambda state: state.has('Bow') and state.has('Boss Key (Shadow Temple)')) - set_rule(world.get_location('Bongo Bongo Heart'), lambda state: state.has('Bow') and state.has('Boss Key (Shadow Temple)')) + set_rule(world.get_location('Bongo Bongo'), lambda state: state.has_bow() and state.has('Boss Key (Shadow Temple)')) + set_rule(world.get_location('Bongo Bongo Heart'), lambda state: state.has_bow() and state.has('Boss Key (Shadow Temple)')) # GS set_rule(world.get_location('GS Shadow Temple MQ Crusher Room'), lambda state: state.has('Progressive Hookshot')) - set_rule(world.get_location('GS Shadow Temple MQ Near Boss'), lambda state: state.has('Bow')) + set_rule(world.get_location('GS Shadow Temple MQ Near Boss'), lambda state: state.has_bow()) # Bottom of the Well Vanilla @@ -810,7 +780,7 @@ def dung_rules_bw0(world): set_rule(world.get_location('Bottom of the Well Basement Chest'), lambda state: state.has_explosives() or (((state.has('Small Key (Bottom of the Well)', 3) and state.can_see_with_lens()) or state.can_use('Dins Fire')) and state.has('Progressive Strength Upgrade'))) set_rule(world.get_location('Bottom of the Well Locked Pits'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.can_see_with_lens()) #These pits are really unfair. set_rule(world.get_location('Bottom of the Well Behind Right Grate'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.can_see_with_lens()) - set_rule(world.get_location('Bottom of the Well Freestanding Key'), lambda state: state.has_sticks() or (state.has('Dins Fire') or state.has('Magic Meter'))) + set_rule(world.get_location('Bottom of the Well Freestanding Key'), lambda state: state.has_sticks() or state.can_use('Dins Fire')) # GS set_always_allow(world.get_location('GS Well West Inner Room'), lambda item, state: item.name == 'Small Key (Bottom of the Well)') @@ -820,13 +790,6 @@ def dung_rules_bw0(world): set_rule(world.get_location('GS Well Like Like Cage'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang') and state.can_see_with_lens()) # Bottom of the Well MQ -# "Quirks to Know": -# Water Lowering Switch: -# - You can jumpslash this switch by jumping off with a Deku Stick or Kokiri Sword. -# Switch for West Inner Room Door: -# - Explosives are not required to reach this switch. You can sidehop or backflip over the corner of the pit. -# Zelda's Lullaby opening the gates: -# - Similarly, if you have explosives, you can sidehop/backflip the corner of the pit to get into the main area. def dung_rules_bwmq(world): set_rule(world.get_location('Bottom of the Well MQ Compass Chest'), lambda state: state.has('Kokiri Sword') or (state.has_sticks() and world.logic_child_deadhand)) set_rule(world.get_location('Bottom of the Well MQ Dead Hand Freestanding Key'), lambda state: state.has_explosives()) @@ -836,7 +799,7 @@ def dung_rules_bwmq(world): set_rule(world.get_location('Bottom of the Well MQ Lens Chest'), lambda state: state.has_explosives() and (state.has('Small Key (Bottom of the Well)', 2) or item_name(state, 'Bottom of the Well MQ Lens Chest') == 'Small Key (Bottom of the Well)')) # GS - set_rule(world.get_location('GS Well MQ Basement'), lambda state: state.can_child_attack() or (state.can_play('Zeldas Lullaby') and state.can_see_with_lens() and (world.difficulty != 'ohko' or (state.can_use('Nayrus Love') and world.logic_lens != 'all')))) + set_rule(world.get_location('GS Well MQ Basement'), lambda state: state.can_child_attack()) set_rule(world.get_location('GS Well MQ West Inner Room'), lambda state: state.can_child_attack() and (state.can_play('Zeldas Lullaby') or state.has_explosives()) and state.can_see_with_lens()) set_always_allow(world.get_location('GS Well MQ Coffin Room'), lambda item, state: item.name == 'Small Key (Bottom of the Well)') set_rule(world.get_location('GS Well MQ Coffin Room'), lambda state: state.can_child_attack() and (state.has('Small Key (Bottom of the Well)', 2) or item_name(state, 'GS Well MQ Coffin Room') == 'Small Key (Bottom of the Well)')) @@ -849,21 +812,12 @@ def dung_rules_ic0(world): set_rule(world.get_location('Ice Cavern Iron Boots Chest'), lambda state: state.has_bottle()) set_rule(world.get_location('Sheik in Ice Cavern'), lambda state: state.has_bottle() and state.is_adult()) - # GS + # GS set_rule(world.get_location('GS Ice Cavern Spinning Scythe Room'), lambda state: state.can_use('Hookshot')) set_rule(world.get_location('GS Ice Cavern Heart Piece Room'), lambda state: state.can_use('Hookshot') and state.has_bottle()) set_rule(world.get_location('GS Ice Cavern Push Block Room'), lambda state: state.can_use('Hookshot') and state.has_bottle()) # Ice Cavern MQ -# The rule exists on the entrance to avoid needing to change Blue Fire checks elsewhere. -# "Quirks to Know": -# Ice Cavern Entrance: -# - You can throw a pot at this switch. -# - To get the pot here you must destroy an icicle in order to beat a boulder cycle. It's easy to do. -# - Later, there's a switch you hit to get a GS and that can also be hit with a pot. -# GS Ice Cavern Scarecrow: -# - You can use the hover boots to get onto one of the taller pillars, and from there you can Longshot to the GS. -# - This skips the Ocarina requirement and is only relevant if Hover Boots into Zora's Domain is in logic. def dung_rules_icmq(world): set_rule(world.get_entrance('Ice Cavern Entrance'), lambda state: state.has_bottle()) set_rule(world.get_location('Ice Cavern MQ Freestanding PoH'), lambda state: state.has_explosives()) @@ -874,15 +828,15 @@ def dung_rules_icmq(world): # Gerudo Training Grounds Vanilla def dung_rules_gtg0(world): - set_rule(world.get_entrance('Gerudo Training Ground Left Silver Rupees'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) + set_rule(world.get_entrance('Gerudo Training Ground Left Silver Rupees'), lambda state: state.can_use('Hookshot')) set_rule(world.get_entrance('Gerudo Training Ground Beamos'), lambda state: state.has_explosives()) set_rule(world.get_entrance('Gerudo Training Grounds Right Locked Doors'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 9)) set_rule(world.get_entrance('Gerudo Training Grounds Maze Ledge'), lambda state: state.can_play('Song of Time')) - set_rule(world.get_entrance('Gerudo Training Grounds Right Hookshot Target'), lambda state: state.has('Progressive Hookshot') and state.is_adult()) - set_rule(world.get_entrance('Gerudo Training Grounds Hammer Target'), lambda state: state.has('Hammer') and state.has_bow() and state.is_adult()) - set_rule(world.get_entrance('Gerudo Training Grounds Hidden Hookshot Target'), lambda state: state.has('Progressive Hookshot') and state.can_see_with_lens() and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Lobby Left Chest'), lambda state: state.has_bow() and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Lobby Right Chest'), lambda state: state.has_bow() and state.is_adult()) + set_rule(world.get_entrance('Gerudo Training Grounds Right Hookshot Target'), lambda state: state.can_use('Hookshot')) + set_rule(world.get_entrance('Gerudo Training Grounds Hammer Target'), lambda state: state.can_use('Hammer') and state.can_use('Bow')) + set_rule(world.get_entrance('Gerudo Training Grounds Hidden Hookshot Target'), lambda state: state.can_use('Hookshot') and state.can_see_with_lens()) + set_rule(world.get_location('Gerudo Training Grounds Lobby Left Chest'), lambda state: state.can_use('Bow')) + set_rule(world.get_location('Gerudo Training Grounds Lobby Right Chest'), lambda state: state.can_use('Bow')) set_rule(world.get_location('Gerudo Training Grounds Beamos Chest'), lambda state: state.has_explosives()) set_rule(world.get_location('Gerudo Training Grounds Hidden Ceiling Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 3) and state.can_see_with_lens()) set_rule(world.get_location('Gerudo Training Grounds Maze Path First Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 4)) @@ -890,72 +844,63 @@ def dung_rules_gtg0(world): set_rule(world.get_location('Gerudo Training Grounds Maze Path Third Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 7)) set_rule(world.get_location('Gerudo Training Grounds Maze Path Final Chest'), lambda state: (state.has('Small Key (Gerudo Training Grounds)', 9)) or (item_name(state, 'Gerudo Training Grounds Maze Path Final Chest') == 'Small Key (Gerudo Training Grounds)' and state.has('Small Key (Gerudo Training Grounds)', 8))) #Allow key for key set_always_allow(world.get_location('Gerudo Training Grounds Maze Path Final Chest'), lambda item, state: item.name == 'Small Key (Gerudo Training Grounds)') - set_rule(world.get_location('Gerudo Training Grounds Underwater Silver Rupee Chest'), lambda state: state.has('Progressive Hookshot') and state.can_play('Song of Time') and state.has('Iron Boots') and state.is_adult() and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic())) - set_rule(world.get_location('Gerudo Training Grounds Hammer Room Switch Chest'), lambda state: state.has('Hammer') and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Eye Statue Chest'), lambda state: state.has_bow() and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Near Scarecrow Chest'), lambda state: state.has_bow() and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Heavy Block First Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.can_see_with_lens() and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Heavy Block Second Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.can_see_with_lens() and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Heavy Block Third Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.can_see_with_lens() and state.is_adult()) - set_rule(world.get_location('Gerudo Training Grounds Heavy Block Fourth Chest'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.can_see_with_lens() and state.is_adult()) + set_rule(world.get_location('Gerudo Training Grounds Underwater Silver Rupee Chest'), lambda state: state.can_use('Hookshot') and state.can_play('Song of Time') and state.has('Iron Boots') and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic())) + set_rule(world.get_location('Gerudo Training Grounds Hammer Room Switch Chest'), lambda state: state.can_use('Hammer')) + set_rule(world.get_location('Gerudo Training Grounds Eye Statue Chest'), lambda state: state.can_use('Bow')) + set_rule(world.get_location('Gerudo Training Grounds Near Scarecrow Chest'), lambda state: state.can_use('Bow')) + set_rule(world.get_location('Gerudo Training Grounds Heavy Block First Chest'), lambda state: state.can_use('Silver Gauntlets') and state.can_see_with_lens()) + set_rule(world.get_location('Gerudo Training Grounds Heavy Block Second Chest'), lambda state: state.can_use('Silver Gauntlets') and state.can_see_with_lens()) + set_rule(world.get_location('Gerudo Training Grounds Heavy Block Third Chest'), lambda state: state.can_use('Silver Gauntlets') and state.can_see_with_lens()) + set_rule(world.get_location('Gerudo Training Grounds Heavy Block Fourth Chest'), lambda state: state.can_use('Silver Gauntlets') and state.can_see_with_lens()) # Gerudo Training Grounds MQ -# I'm considering adding just hookshot as logic to fully clear this place, longshot not required. -# - It's maybe the sort of thing that needs a logic option... def dung_rules_gtgmq(world): set_rule(world.get_entrance('Gerudo Training Grounds Left Door'), lambda state: state.has_fire_source()) - set_rule(world.get_entrance('Gerudo Training Grounds Right Door'), lambda state: state.has('Bow')) + set_rule(world.get_entrance('Gerudo Training Grounds Right Door'), lambda state: state.has_bow()) set_rule(world.get_entrance('Gerudo Training Grounds Longshot Target'), lambda state: state.can_use('Longshot')) set_rule(world.get_entrance('Gerudo Training Grounds Song of Time Block'), lambda state: state.can_play('Song of Time') and state.can_see_with_lens() and state.has_bottle()) set_rule(world.get_entrance('Gerudo Training Grounds Rusted Switch'), lambda state: state.has('Hammer')) set_rule(world.get_location('Gerudo Training Grounds MQ Hidden Ceiling Chest'), lambda state: state.can_see_with_lens()) set_rule(world.get_location('Gerudo Training Grounds MQ Maze Path Third Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 1)) set_rule(world.get_location('Gerudo Training Grounds MQ Underwater Silver Rupee Chest'), lambda state: (state.has('Hover Boots') or state.can_reach('Gerudo Training Grounds Central Maze Right')) and state.has_fire_source() and state.has('Iron Boots') and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic()) and (world.difficulty != 'ohko' or (state.has_bottle() or state.can_use('Nayrus Love')))) - set_rule(world.get_location('Gerudo Training Grounds MQ Heavy Block Chest'), lambda state: state.has('Progressive Strength Upgrade', 2)) - set_rule(world.get_location('Gerudo Training Grounds MQ Eye Statue Chest'), lambda state: state.has('Bow')) + set_rule(world.get_location('Gerudo Training Grounds MQ Heavy Block Chest'), lambda state: state.can_use('Silver Gauntlets')) + set_rule(world.get_location('Gerudo Training Grounds MQ Eye Statue Chest'), lambda state: state.has_bow()) set_rule(world.get_location('Gerudo Training Grounds MQ Ice Arrows Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 3) or (item_name(state, 'Gerudo Training Grounds MQ Ice Arrows Chest') == 'Small Key (Gerudo Training Grounds)' and state.has('Small Key (Gerudo Training Grounds)'))) set_always_allow(world.get_location('Gerudo Training Grounds MQ Ice Arrows Chest'), lambda item, state: item.name == 'Small Key (Gerudo Training Grounds)') - # There is Blue Fire in GTG. I also had to make this edit to the same check in baseclasses. - add_rule(world.get_location('King Zora Thawed'), lambda state: state.has_bottle() and state.can_reach('Gerudo Training Grounds Stalfos Room'), 'or') # Ganon's Castle Vanilla def dung_rules_gc0(world): - set_rule(world.get_entrance('Ganons Castle Light Trial'), lambda state: state.has('Progressive Strength Upgrade', 3)) + set_rule(world.get_entrance('Ganons Castle Light Trial'), lambda state: state.can_use('Golden Gauntlets')) set_rule(world.get_entrance('Ganons Castle Tower'), lambda state: (world.skipped_trials['Forest'] or state.has('Forest Trial Clear')) and (world.skipped_trials['Fire'] or state.has('Fire Trial Clear')) and (world.skipped_trials['Water'] or state.has('Water Trial Clear')) and (world.skipped_trials['Shadow'] or state.has('Shadow Trial Clear')) and (world.skipped_trials['Spirit'] or state.has('Spirit Trial Clear')) and (world.skipped_trials['Light'] or state.has('Light Trial Clear'))) - set_rule(world.get_location('Ganons Castle Forest Trial Clear'), lambda state: state.has('Magic Meter') and state.has_bow() and state.has('Light Arrows') and (state.has('Fire Arrows') or state.has('Dins Fire'))) - set_rule(world.get_location('Ganons Castle Fire Trial Clear'), lambda state: state.has_GoronTunic() and state.has('Progressive Strength Upgrade', 3) and state.has('Magic Meter') and state.has_bow() and state.has('Light Arrows') and state.has('Progressive Hookshot', 2)) - set_rule(world.get_location('Ganons Castle Water Trial Clear'), lambda state: state.has_bottle() and state.has('Hammer') and state.has('Magic Meter') and state.has_bow() and state.has('Light Arrows')) - set_rule(world.get_location('Ganons Castle Shadow Trial Clear'), lambda state: state.has('Magic Meter') and state.has_bow() and state.has('Light Arrows') and state.has('Hammer') and ((state.has('Fire Arrows') and (state.has('Hover Boots') or state.can_see_with_lens())) or (state.has('Progressive Hookshot', 2) and (state.has('Hover Boots') or (state.has('Dins Fire') and state.can_see_with_lens()))))) - set_rule(world.get_location('Ganons Castle Shadow Trial First Chest'), lambda state: (state.has('Magic Meter') and state.has_bow() and state.has('Fire Arrows')) or state.has('Progressive Hookshot') or state.has('Hover Boots') or state.can_play('Song of Time')) - set_rule(world.get_location('Ganons Castle Shadow Trial Second Chest'), lambda state: (state.has('Magic Meter') and state.has_bow() and state.has('Fire Arrows')) or (state.has('Progressive Hookshot', 2) and (state.has('Hover Boots') or (state.has('Dins Fire') and state.has('Magic Meter'))))) - set_rule(world.get_location('Ganons Castle Spirit Trial Clear'), lambda state: state.has('Magic Meter') and state.has_bow() and state.has('Light Arrows') and state.has('Mirror Shield') and state.has_bombchus() and state.has('Progressive Hookshot')) + set_rule(world.get_location('Ganons Castle Forest Trial Clear'), lambda state: state.can_use('Light Arrows') and (state.has('Fire Arrows') or state.has('Dins Fire'))) + set_rule(world.get_location('Ganons Castle Fire Trial Clear'), lambda state: state.has_GoronTunic() and state.can_use('Golden Gauntlets') and state.can_use('Light Arrows') and state.can_use('Longshot')) + set_rule(world.get_location('Ganons Castle Water Trial Clear'), lambda state: state.has_bottle() and state.has('Hammer') and state.can_use('Light Arrows')) + set_rule(world.get_location('Ganons Castle Shadow Trial Clear'), lambda state: state.can_use('Light Arrows') and state.has('Hammer') and ((state.has('Fire Arrows') and (state.has('Hover Boots') or state.can_see_with_lens())) or (state.can_use('Longshot') and (state.has('Hover Boots') or (state.has('Dins Fire') and state.can_see_with_lens()))))) + set_rule(world.get_location('Ganons Castle Shadow Trial First Chest'), lambda state: state.can_use('Fire Arrows') or state.has('Progressive Hookshot') or state.has('Hover Boots') or state.can_play('Song of Time')) + set_rule(world.get_location('Ganons Castle Shadow Trial Second Chest'), lambda state: state.can_use('Fire Arrows') or (state.can_use('Longshot') and (state.has('Hover Boots') or state.can_use('Dins Fire')))) + set_rule(world.get_location('Ganons Castle Spirit Trial Clear'), lambda state: state.can_use('Light Arrows') and state.has('Mirror Shield') and state.has_bombchus() and state.has('Progressive Hookshot')) set_rule(world.get_location('Ganons Castle Spirit Trial First Chest'), lambda state: state.has('Progressive Hookshot')) set_rule(world.get_location('Ganons Castle Spirit Trial Second Chest'), lambda state: state.has('Progressive Hookshot') and state.has_bombchus() and state.can_see_with_lens()) - set_rule(world.get_location('Ganons Castle Light Trial Clear'), lambda state: state.has('Magic Meter') and state.has_bow() and state.has('Progressive Hookshot') and state.has('Light Arrows') and state.has('Small Key (Ganons Castle)', 2)) + set_rule(world.get_location('Ganons Castle Light Trial Clear'), lambda state: state.can_use('Light Arrows') and state.has('Progressive Hookshot') and state.has('Small Key (Ganons Castle)', 2)) set_rule(world.get_location('Ganons Castle Light Trail Invisible Enemies Chest'), lambda state: state.can_see_with_lens()) set_rule(world.get_location('Ganons Castle Light Trial Lullaby Chest'), lambda state: state.can_play('Zeldas Lullaby') and state.has('Small Key (Ganons Castle)', 1)) # Ganon's Castle MQ -# MQ Ganons Castle -# "Quirks to Know": -# Ganons Castle Shadow Trial First Chest: -# - You can spawn this chest with strength but you have to make sure the bombflower explodes in about the same position it spawns in. -# Just in general I want to say if there's a silver rupee inside a Beamos, you can just brush the Beamos to get it. That comes up a few times, but this trial without explosives can get a little hairy. def dung_rules_gcmq(world): set_rule(world.get_entrance('Ganons Castle Light Trial'), lambda state: state.can_use('Golden Gauntlets')) set_rule(world.get_entrance('Ganons Castle Tower'), lambda state: (world.skipped_trials['Forest'] or state.has('Forest Trial Clear')) and (world.skipped_trials['Fire'] or state.has('Fire Trial Clear')) and (world.skipped_trials['Water'] or state.has('Water Trial Clear')) and (world.skipped_trials['Shadow'] or state.has('Shadow Trial Clear')) and (world.skipped_trials['Spirit'] or state.has('Spirit Trial Clear')) and (world.skipped_trials['Light'] or state.has('Light Trial Clear'))) - set_rule(world.get_location('Ganons Castle MQ Forest Trial First Chest'), lambda state: state.has('Bow')) + set_rule(world.get_location('Ganons Castle MQ Forest Trial First Chest'), lambda state: state.has_bow()) set_rule(world.get_location('Ganons Castle MQ Forest Trial Second Chest'), lambda state: state.has_fire_source()) set_rule(world.get_location('Ganons Castle MQ Forest Trial Freestanding Key'), lambda state: state.has('Progressive Hookshot')) set_rule(world.get_location('Ganons Castle Forest Trial Clear'), lambda state: state.can_use('Light Arrows') and state.can_play('Song of Time')) set_rule(world.get_location('Ganons Castle Fire Trial Clear'), lambda state: state.has_GoronTunic() and state.can_use('Golden Gauntlets') and state.can_use('Light Arrows') and (state.can_use('Longshot') or state.has('Hover Boots'))) set_rule(world.get_location('Ganons Castle MQ Water Trial Chest'), lambda state: state.has_bottle()) set_rule(world.get_location('Ganons Castle Water Trial Clear'), lambda state: state.has_bottle() and state.can_use('Light Arrows') and state.has('Small Key (Ganons Castle)', 3)) - set_rule(world.get_location('Ganons Castle MQ Shadow Trial First Chest'), lambda state: (state.has('Bow') and (state.has('Progressive Hookshot') or state.has('Hover Boots'))) or (state.has('Hover Boots') and state.can_see_with_lens() and (state.has_explosives() or state.has('Progressive Strength Upgrade') or state.can_use('Dins Fire')))) - set_rule(world.get_location('Ganons Castle MQ Shadow Trial Second Chest'), lambda state: state.has('Bow') and state.can_see_with_lens() and (state.has('Hover Boots') or (state.has('Progressive Hookshot') and state.has_fire_source()))) + set_rule(world.get_location('Ganons Castle MQ Shadow Trial First Chest'), lambda state: (state.has_bow() and (state.has('Progressive Hookshot') or state.has('Hover Boots'))) or (state.has('Hover Boots') and state.can_see_with_lens() and (state.has_explosives() or state.has('Progressive Strength Upgrade') or state.can_use('Dins Fire')))) + set_rule(world.get_location('Ganons Castle MQ Shadow Trial Second Chest'), lambda state: state.has_bow() and state.can_see_with_lens() and (state.has('Hover Boots') or (state.has('Progressive Hookshot') and state.has_fire_source()))) set_rule(world.get_location('Ganons Castle Shadow Trial Clear'), lambda state: state.can_use('Light Arrows') and state.can_see_with_lens() and (state.has('Hover Boots') or (state.has('Progressive Hookshot') and state.has_fire_source()))) - set_rule(world.get_location('Ganons Castle MQ Spirit Trial First Chest'), lambda state: state.has('Bow') and state.has('Hammer')) - set_rule(world.get_location('Ganons Castle MQ Spirit Trial Second Chest'), lambda state: state.has('Bow') and state.has('Hammer') and state.has_bombchus() and state.can_see_with_lens()) + set_rule(world.get_location('Ganons Castle MQ Spirit Trial First Chest'), lambda state: state.has_bow() and state.has('Hammer')) + set_rule(world.get_location('Ganons Castle MQ Spirit Trial Second Chest'), lambda state: state.has_bow() and state.has('Hammer') and state.has_bombchus() and state.can_see_with_lens()) set_rule(world.get_location('Ganons Castle MQ Spirit Trial Sun Front Left Chest'), lambda state: state.has('Hammer') and state.has_bombchus() and state.can_use('Fire Arrows') and state.has('Mirror Shield')) set_rule(world.get_location('Ganons Castle MQ Spirit Trial Sun Back Left Chest'), lambda state: state.has('Hammer') and state.has_bombchus() and state.can_use('Fire Arrows') and state.has('Mirror Shield')) set_rule(world.get_location('Ganons Castle MQ Spirit Trial Golden Gauntlets Chest'), lambda state: state.has('Hammer') and state.has_bombchus() and state.can_use('Fire Arrows') and state.has('Mirror Shield')) From 656b991f0bffd918bbb490a0286fd2b293a95850 Mon Sep 17 00:00:00 2001 From: mzxrules Date: Sat, 22 Sep 2018 06:58:21 -0400 Subject: [PATCH 576/755] simplified (de)compressor calls, improved read_rom function --- Main.py | 16 +++++++++------- Rom.py | 33 +++++++++++++++------------------ 2 files changed, 24 insertions(+), 25 deletions(-) diff --git a/Main.py b/Main.py index 7d57033fa..1f43a8e6e 100644 --- a/Main.py +++ b/Main.py @@ -137,20 +137,22 @@ def main(settings, window=dummy_window()): if settings.compress_rom == 'True': window.update_status('Compressing ROM') logger.info('Compressing ROM.') + + compressor_path = "" if platform.system() == 'Windows': if 8 * struct.calcsize("P") == 64: - run_process(window, logger, ["Compress\\Compress.exe", rom_path, os.path.join(output_dir, '%s-comp.z64' % outfilebase)]) + compressor_path = "Compress\\Compress.exe" else: - run_process(window, logger, ["Compress\\Compress32.exe", rom_path, os.path.join(output_dir, '%s-comp.z64' % outfilebase)]) - os.remove(rom_path) + compressor_path = "Compress\\Compress32.exe" elif platform.system() == 'Linux': - run_process(window, logger, ["Compress/Compress", rom_path, os.path.join(output_dir, '%s-comp.z64' % outfilebase)]) - os.remove(rom_path) + compressor_path = "Compress/Compress" elif platform.system() == 'Darwin': - run_process(window, logger, ["Compress/Compress.out", rom_path, os.path.join(output_dir, '%s-comp.z64' % outfilebase)]) - os.remove(rom_path) + compressor_path = "Compress/Compress.out" else: logger.info('OS not supported for compression') + + run_process(window, logger, [compressor_path, rom_path, os.path.join(output_dir, '%s-comp.z64' % outfilebase)]) + os.remove(rom_path) window.update_progress(95) diff --git a/Rom.py b/Rom.py index c01eb9531..7a068dffb 100644 --- a/Rom.py +++ b/Rom.py @@ -28,14 +28,12 @@ def __init__(self, settings, patch=True): try: # Read decompressed file if it exists - with open(decomp_file, 'rb') as stream: - self.buffer = self.read_rom(stream) + self.read_rom(decomp_file) # This is mainly for validation testing, but just in case... self.decompress_rom_file(decomp_file, decomp_file) except Exception as ex: # No decompressed file, instead read Input ROM - with open(file, 'rb') as stream: - self.buffer = self.read_rom(stream) + self.read_rom(file) self.decompress_rom_file(file, decomp_file) # Add file to maximum size @@ -59,23 +57,22 @@ def decompress_rom_file(self, file, decomp_file): raise RuntimeError('ROM file %s is not a valid OoT 1.0 US ROM.' % file) elif len(self.buffer) == 0x2000000: # If Input ROM is compressed, then Decompress it + subcall = [] + if platform.system() == 'Windows': if 8 * struct.calcsize("P") == 64: - subprocess.call(["Decompress\\Decompress.exe", file, decomp_file]) + subcall = ["Decompress\\Decompress.exe", file, decomp_file] else: - subprocess.call(["Decompress\\Decompress32.exe", file, decomp_file]) - with open(decomp_file, 'rb') as stream: - self.buffer = self.read_rom(stream) + subcall = ["Decompress\\Decompress32.exe", file, decomp_file] elif platform.system() == 'Linux': - subprocess.call(["Decompress/Decompress", file]) - with open(("ZOOTDEC.z64"), 'rb') as stream: - self.buffer = self.read_rom(stream) + subcall = ["Decompress/Decompress", file] elif platform.system() == 'Darwin': - subprocess.call(["Decompress/Decompress.out", file]) - with open(("ZOOTDEC.z64"), 'rb') as stream: - self.buffer = self.read_rom(stream) + subcall = ["Decompress/Decompress.out", file] else: raise RuntimeError('Unsupported operating system for decompression. Please supply an already decompressed ROM.') + + subprocess.call(subcall) + self.read_rom(decomp_file) else: # ROM file is a valid and already uncompressed pass @@ -199,10 +196,10 @@ def update_crc(self): self.write_int32s(0x10, [crc0, crc1]) - def read_rom(self, stream): - "Reads rom into bytearray" - buffer = bytearray(stream.read()) - return buffer + def read_rom(self, file): + # "Reads rom into bytearray" + with open(file, 'rb') as stream: + self.buffer = bytearray(stream.read()) # dmadata/file management helper functions From 6adb210362043cc6bb2060d4b961562c819c7896 Mon Sep 17 00:00:00 2001 From: mzxrules Date: Sat, 22 Sep 2018 08:29:22 -0400 Subject: [PATCH 577/755] I CAN'T WAIT TO BOMB SOME DODONGOS --- Patches.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Patches.py b/Patches.py index e184fccb9..f8b574ba2 100644 --- a/Patches.py +++ b/Patches.py @@ -87,6 +87,10 @@ def patch_rom(world, rom): titleBytes = stream.read() rom.write_bytes(0x01795300, titleBytes) + # Increase the instance size of Bombchus prevent the heap from becoming corrupt when + # a Dodongo eats a Bombchu. Does not fix stale pointer issues with the animation + rom.write_int32(0xD6002C, 0x1F0) + # Can always return to youth rom.write_byte(0xCB6844, 0x35) rom.write_byte(0x253C0E2, 0x03) # Moves sheik from pedestal From 5e98159558a922040a4fbb4d39a4ccd9e5d085d1 Mon Sep 17 00:00:00 2001 From: AmazingAmpharos Date: Sun, 23 Sep 2018 03:46:53 -0500 Subject: [PATCH 578/755] Updates from TR's fork, logic polishing This should have the fairly massive amount of stuff TR has done in the past few weeks. This also represents the initial implementation of the logic tricks flag which adds just a mountain of little tricks to the logic. All of the following are the tricks enabled: Death Mountain Bombable Chest with strength Gerudo Fortress upper reaches with no extra items (last carpenter, rescue finished, and gs all included) GS Kokiri House of Twins: Hover Boots from back-left root to get on top GS Deku Tree Basement Vines (Vanilla): Kill with jump slash from sticks or Kokiri Sword Dodongo's Cavern Vanilla: Lower stairs with Bow Forest Temple Vanilla: Reach vines to drain well with Hookshot Forest Temple MQ: Bombchu to hit switch at the end of the block pushing puzzle. Fire Temple Highest Goron Chest (Vanilla): Hammer through SoT block to avoid needing Song of Time Fire Temple MQ Boss Key Chest: Either abuse the poor programming on the torches or use a super precise Din's Fire to reach this without Bow Fire Temple MQ: Reach the upper part of the old Boulder Maze without explosives by using the Hammer through the bombable wall. Spirit Temple Vanilla: Access lower child section content with a trick Bombchu shot over the ceiling timed to explode as it passes the crystal switch. Spirit Temple MQ Silver Block Hallway Chest: Includes an easy to execute but insane to figure out no fire source solution involving a SoT block, a very good shot with the Bow, and a time paradox. Bottom of the Well Basement Chest (Vanilla): Jumpslash some rocks in the basement with a lit Deku Stick to reach the Map chest with just sticks and strength. Ganon's Castle MQ: Hammer a rusted switch at the start of Spirit Trial without using the Bow to summon an Iron Knuckle to clear some chairs. A very large number of logic fixes and refactors are included here. The most significant factors are that the logic now considers that Morpha (vanilla or MQ) can be defeated without Iron Boots if you have a Gold Scale, Longshot, and the Water Temple Boss Key (obviously requires keysanity or keysy mode). Nothing else in Water Temple can be required without Iron Boots because stepping into Morpha's boss portal makes it impossible to backtrack, but now the reward from Morpha itself could gate Iron Boots (or filling the lake to reach the Fire Arrows slot could be required early in this way too). Secondarily in significance, Hover Boots are now a solution to hit the crystal switch and reach the NW outdoors ledge in Forest Temple MQ. This required breaking one region into two since this does not match the previous assumption that access to that ledge was synonymous with solving the block puzzle. --- ASM/README.md | 17 +- ASM/build/asm_symbols.txt | 1061 ++++ ASM/build/bundle.o | Bin 0 -> 10028 bytes ASM/build/c_symbols.txt | 60 + ASM/c/Makefile | 28 + ASM/c/dungeon_info.c | 264 + ASM/c/dungeon_info.h | 8 + ASM/c/gfx.c | 122 + ASM/c/gfx.h | 31 + ASM/c/main.c | 22 + ASM/c/text.c | 60 + ASM/c/text.h | 10 + ASM/c/util.c | 23 + ASM/c/util.h | 23 + ASM/c/z64.h | 1289 ++++ ASM/quick_build.bat | 1 - ASM/resources/font.bin | Bin 0 -> 5320 bytes ASM/scripts/build.py | 98 +- ASM/scripts/rom_diff.py | 34 +- ASM/src/boot.asm | 31 + ASM/src/build.asm | 18 + ASM/src/constants.asm | 9 +- ASM/src/cutscenes.asm | 44 +- ASM/src/debug.asm | 40 + ASM/src/extended_items.asm | 81 +- ASM/src/hacks.asm | 65 + ASM/src/init.asm | 25 + ASM/src/item_overrides.asm | 13 +- ASM/src/shop.asm | 146 + BaseClasses.py | 310 +- Dungeons.py | 6 +- EntranceShuffle.py | 968 +-- Fill.py | 126 +- Gui.py | 70 +- HintList.py | 547 +- Hints.py | 141 +- ItemList.py | 277 +- Items.py | 540 +- MQ.py | 242 +- Main.py | 73 +- Messages.py | 82 +- Notes/shop item notes.txt | 2486 ++++++++ OcarinaSongs.py | 57 +- OoTRandomizer.py | 3 +- Patches.py | 3705 ++++++----- README.md | 26 +- Regions.py | 305 +- Rom.py | 436 +- Rules.py | 484 +- Settings.py | 582 +- TextBox.py | 276 + Utils.py | 4 +- data/rom_patch.txt | 11882 +++++++++++++++++++++++++++++++++++ data/symbols.json | 32 + data/title.bin | Bin 0 -> 102400 bytes settings.sav | 1 + table.txt | 2 +- version.py | 2 +- 58 files changed, 23582 insertions(+), 3706 deletions(-) create mode 100644 ASM/build/asm_symbols.txt create mode 100644 ASM/build/bundle.o create mode 100644 ASM/build/c_symbols.txt create mode 100644 ASM/c/Makefile create mode 100644 ASM/c/dungeon_info.c create mode 100644 ASM/c/dungeon_info.h create mode 100644 ASM/c/gfx.c create mode 100644 ASM/c/gfx.h create mode 100644 ASM/c/main.c create mode 100644 ASM/c/text.c create mode 100644 ASM/c/text.h create mode 100644 ASM/c/util.c create mode 100644 ASM/c/util.h create mode 100644 ASM/c/z64.h create mode 100644 ASM/resources/font.bin create mode 100644 ASM/src/boot.asm create mode 100644 ASM/src/debug.asm create mode 100644 ASM/src/init.asm create mode 100644 ASM/src/shop.asm create mode 100644 Notes/shop item notes.txt create mode 100644 TextBox.py create mode 100644 data/rom_patch.txt create mode 100644 data/symbols.json create mode 100644 data/title.bin create mode 100644 settings.sav diff --git a/ASM/README.md b/ASM/README.md index 68654ceaa..2f2f0a226 100644 --- a/ASM/README.md +++ b/ASM/README.md @@ -1,8 +1,13 @@ -- Download the armips assembler: and put the - executable in the `scripts` directory, or somewhere in your PATH +- Download the armips assembler: and put + the executable in the `scripts` directory, or somewhere in your PATH - Put the ROM you want to patch at `roms/base.z64` -- Run `python3 scripts/build.py`, which will create `roms/patched.z64` -- To update the front-end patch file, run: - ```python3 scripts/rom_diff.py roms/base.z64 roms/patched.z64 ../data/base2current.json``` +- Run `python scripts/build.py`, which will: + - create `roms/patched.z64` + - update `../data/rom_patch.txt` and `../data/symbols.json` -To generate debugging symbols for the Project 64 debugger, run `python3 scripts/build.py --pj64sym 'path_to_pj64/Saves/THE LEGEND OF ZELDA.sym'` +To generate debugging symbols for the Project 64 debugger, use the `--pj64sym` +option: +`python scripts/build.py --pj64sym 'path_to_pj64/Saves/THE LEGEND OF ZELDA.sym'`. + +To recompile the C modules, use the `--compile-c` option. This requires the +N64 development tools to be installed: diff --git a/ASM/build/asm_symbols.txt b/ASM/build/asm_symbols.txt new file mode 100644 index 000000000..1d05637ff --- /dev/null +++ b/ASM/build/asm_symbols.txt @@ -0,0 +1,1061 @@ +00000000 0 +00000000 .byt:4000000 +00000010 .dbl:0008 +00000010 ITEM_TABLE_ROW_SIZE +000005B4 Shop_Item_Save_Offset +0000D260 .dbl:0010 +0000D270 .dbl:0010 +008A9C00 .byt:0400 +00D74990 skip_steal_tunic +00D7E178 @@not_in_ranch +00D7E18C @@return +00D7E18C return_from_the_other_function +00D7E3AC @@hyrule_check +00D7E3CC @@lon_lon_check +00D7E3F4 @@return_false +00D7E7A4 @@set_ev0 +00D7E7B8 set_ev1 +00D7E8A8 @@unsafe +00D7E8C0 @@safe +00D7E8D4 @@not_hyrule +00D7E920 ev0_return +00DB13D3 .byt:0001 +00DF264F .byt:0001 +00E2F093 .byt:0001 +00EBB8B0 @Deku_Check_True +00EBB8C0 @Deku_Check_False +00EC68D0 .byt:0014 +00EC69C0 .byt:0014 +00EC9CE7 .byt:0001 +8011A5D0 SAVE_CONTEXT +801C84A0 GLOBAL_CONTEXT +801DAA30 PLAYER_ACTOR +803A9E7E GET_ITEMTABLE +80400000 init +80400050 DebugOutput +80401000 .byt:0800 +80401000 ITEM_OVERRIDES +80401800 .byt:0400 +80401800 INITIAL_SAVE_DATA +80401C00 .byt:0001 +80401C00 PLAYER_ID +80401C01 .byt:0001 +80401C01 LIGHT_ARROW_ITEM +80401C02 .byt:0001 +80401C02 FAIRY_OCARINA_ITEM +80401C03 .byt:0001 +80401C03 FAIRY_ITEMS +80401C04 .byt:0001 +80401C05 .byt:0001 +80401C06 .byt:0001 +80401C07 .byt:0001 +80401C08 .byt:0001 +80401C0C .byt:03F4 +80402000 .dbl:0008 +80402000 PLAYER_OVERRIDE_DATA +80402008 .dbl:0010 +80402008 EXTENDED_ITEM_DATA +80402018 .byt:0001 +80402018 PENDING_SPECIAL_ITEM +80402019 .byt:0001 +8040201A .byt:0001 +8040201B .byt:0001 +8040201B PENDING_SPECIAL_ITEM_END +8040201C .dbl:0004 +8040201C TIME_TRAVEL_SAVED_EQUIPS +80402020 .dbl:0004 +80402024 .wrd:0002 +80402026 .wrd:0002 +80402028 .byt:0028 +80402050 .byt:0001 +80402050 ITEM_TABLE +80402051 .byt:0001 +80402052 .byt:0001 +80402053 .byt:0001 +80402054 .wrd:0002 +80402056 .byt:0001 +80402057 .byt:0001 +80402058 .dbl:0004 +8040205C .dbl:0004 +80402060 .byt:0001 +80402061 .byt:0001 +80402062 .byt:0001 +80402063 .byt:0001 +80402064 .wrd:0002 +80402066 .byt:0001 +80402067 .byt:0001 +80402068 .dbl:0004 +8040206C .dbl:0004 +80402070 .byt:0001 +80402071 .byt:0001 +80402072 .byt:0001 +80402073 .byt:0001 +80402074 .wrd:0002 +80402076 .byt:0001 +80402077 .byt:0001 +80402078 .dbl:0004 +8040207C .dbl:0004 +80402080 .byt:0001 +80402081 .byt:0001 +80402082 .byt:0001 +80402083 .byt:0001 +80402084 .wrd:0002 +80402086 .byt:0001 +80402087 .byt:0001 +80402088 .dbl:0004 +8040208C .dbl:0004 +80402090 .byt:0001 +80402091 .byt:0001 +80402092 .byt:0001 +80402093 .byt:0001 +80402094 .wrd:0002 +80402096 .byt:0001 +80402097 .byt:0001 +80402098 .dbl:0004 +8040209C .dbl:0004 +804020A0 .byt:0001 +804020A1 .byt:0001 +804020A2 .byt:0001 +804020A3 .byt:0001 +804020A4 .wrd:0002 +804020A6 .byt:0001 +804020A7 .byt:0001 +804020A8 .dbl:0004 +804020AC .dbl:0004 +804020B0 .byt:0001 +804020B1 .byt:0001 +804020B2 .byt:0001 +804020B3 .byt:0001 +804020B4 .wrd:0002 +804020B6 .byt:0001 +804020B7 .byt:0001 +804020B8 .dbl:0004 +804020BC .dbl:0004 +804020C0 .byt:0001 +804020C1 .byt:0001 +804020C2 .byt:0001 +804020C3 .byt:0001 +804020C4 .wrd:0002 +804020C6 .byt:0001 +804020C7 .byt:0001 +804020C8 .dbl:0004 +804020CC .dbl:0004 +804020D0 .byt:0001 +804020D1 .byt:0001 +804020D2 .byt:0001 +804020D3 .byt:0001 +804020D4 .wrd:0002 +804020D6 .byt:0001 +804020D7 .byt:0001 +804020D8 .dbl:0004 +804020DC .dbl:0004 +804020E0 .byt:0001 +804020E1 .byt:0001 +804020E2 .byt:0001 +804020E3 .byt:0001 +804020E4 .wrd:0002 +804020E6 .byt:0001 +804020E7 .byt:0001 +804020E8 .dbl:0004 +804020EC .dbl:0004 +804020F0 .byt:0001 +804020F1 .byt:0001 +804020F2 .byt:0001 +804020F3 .byt:0001 +804020F4 .wrd:0002 +804020F6 .byt:0001 +804020F7 .byt:0001 +804020F8 .dbl:0004 +804020FC .dbl:0004 +80402100 .byt:0001 +80402101 .byt:0001 +80402102 .byt:0001 +80402103 .byt:0001 +80402104 .wrd:0002 +80402106 .byt:0001 +80402107 .byt:0001 +80402108 .dbl:0004 +8040210C .dbl:0004 +80402110 .byt:0001 +80402111 .byt:0001 +80402112 .byt:0001 +80402113 .byt:0001 +80402114 .wrd:0002 +80402116 .byt:0001 +80402117 .byt:0001 +80402118 .dbl:0004 +8040211C .dbl:0004 +80402120 .byt:0001 +80402121 .byt:0001 +80402122 .byt:0001 +80402123 .byt:0001 +80402124 .wrd:0002 +80402126 .byt:0001 +80402127 .byt:0001 +80402128 .dbl:0004 +8040212C .dbl:0004 +80402130 .byt:0001 +80402131 .byt:0001 +80402132 .byt:0001 +80402133 .byt:0001 +80402134 .wrd:0002 +80402136 .byt:0001 +80402137 .byt:0001 +80402138 .dbl:0004 +8040213C .dbl:0004 +80402140 .byt:0001 +80402141 .byt:0001 +80402142 .byt:0001 +80402143 .byt:0001 +80402144 .wrd:0002 +80402146 .byt:0001 +80402147 .byt:0001 +80402148 .dbl:0004 +8040214C .dbl:0004 +80402150 .byt:0001 +80402151 .byt:0001 +80402152 .byt:0001 +80402153 .byt:0001 +80402154 .wrd:0002 +80402156 .byt:0001 +80402157 .byt:0001 +80402158 .dbl:0004 +8040215C .dbl:0004 +80402160 .byt:0001 +80402161 .byt:0001 +80402162 .byt:0001 +80402163 .byt:0001 +80402164 .wrd:0002 +80402166 .byt:0001 +80402167 .byt:0001 +80402168 .dbl:0004 +8040216C .dbl:0004 +80402170 .byt:0001 +80402171 .byt:0001 +80402172 .byt:0001 +80402173 .byt:0001 +80402174 .wrd:0002 +80402176 .byt:0001 +80402177 .byt:0001 +80402178 .dbl:0004 +8040217C .dbl:0004 +80402180 .byt:0001 +80402181 .byt:0001 +80402182 .byt:0001 +80402183 .byt:0001 +80402184 .wrd:0002 +80402186 .byt:0001 +80402187 .byt:0001 +80402188 .dbl:0004 +8040218C .dbl:0004 +80402190 .byt:0001 +80402191 .byt:0001 +80402192 .byt:0001 +80402193 .byt:0001 +80402194 .wrd:0002 +80402196 .byt:0001 +80402197 .byt:0001 +80402198 .dbl:0004 +8040219C .dbl:0004 +804021A0 .byt:0001 +804021A1 .byt:0001 +804021A2 .byt:0001 +804021A3 .byt:0001 +804021A4 .wrd:0002 +804021A6 .byt:0001 +804021A7 .byt:0001 +804021A8 .dbl:0004 +804021AC .dbl:0004 +804021B0 .byt:0001 +804021B1 .byt:0001 +804021B2 .byt:0001 +804021B3 .byt:0001 +804021B4 .wrd:0002 +804021B6 .byt:0001 +804021B7 .byt:0001 +804021B8 .dbl:0004 +804021BC .dbl:0004 +804021C0 .byt:0001 +804021C1 .byt:0001 +804021C2 .byt:0001 +804021C3 .byt:0001 +804021C4 .wrd:0002 +804021C6 .byt:0001 +804021C7 .byt:0001 +804021C8 .dbl:0004 +804021CC .dbl:0004 +804021D0 .byt:0001 +804021D1 .byt:0001 +804021D2 .byt:0001 +804021D3 .byt:0001 +804021D4 .wrd:0002 +804021D6 .byt:0001 +804021D7 .byt:0001 +804021D8 .dbl:0004 +804021DC .dbl:0004 +804021E0 .byt:0001 +804021E1 .byt:0001 +804021E2 .byt:0001 +804021E3 .byt:0001 +804021E4 .wrd:0002 +804021E6 .byt:0001 +804021E7 .byt:0001 +804021E8 .dbl:0004 +804021EC .dbl:0004 +804021F0 .byt:0001 +804021F1 .byt:0001 +804021F2 .byt:0001 +804021F3 .byt:0001 +804021F4 .wrd:0002 +804021F6 .byt:0001 +804021F7 .byt:0001 +804021F8 .dbl:0004 +804021FC .dbl:0004 +80402200 .byt:0001 +80402201 .byt:0001 +80402202 .byt:0001 +80402203 .byt:0001 +80402204 .wrd:0002 +80402206 .byt:0001 +80402207 .byt:0001 +80402208 .dbl:0004 +8040220C .dbl:0004 +80402210 .byt:0001 +80402211 .byt:0001 +80402212 .byt:0001 +80402213 .byt:0001 +80402214 .wrd:0002 +80402216 .byt:0001 +80402217 .byt:0001 +80402218 .dbl:0004 +8040221C .dbl:0004 +80402220 .byt:0001 +80402221 .byt:0001 +80402222 .byt:0001 +80402223 .byt:0001 +80402224 .wrd:0002 +80402226 .byt:0001 +80402227 .byt:0001 +80402228 .dbl:0004 +8040222C .dbl:0004 +80402230 .byt:0001 +80402231 .byt:0001 +80402232 .byt:0001 +80402233 .byt:0001 +80402234 .wrd:0002 +80402236 .byt:0001 +80402237 .byt:0001 +80402238 .dbl:0004 +8040223C .dbl:0004 +80402240 .byt:0001 +80402241 .byt:0001 +80402242 .byt:0001 +80402243 .byt:0001 +80402244 .wrd:0002 +80402246 .byt:0001 +80402247 .byt:0001 +80402248 .dbl:0004 +8040224C .dbl:0004 +80402250 .byt:0001 +80402251 .byt:0001 +80402252 .byt:0001 +80402253 .byt:0001 +80402254 .wrd:0002 +80402256 .byt:0001 +80402257 .byt:0001 +80402258 .dbl:0004 +8040225C .dbl:0004 +80402260 .byt:0001 +80402261 .byt:0001 +80402262 .byt:0001 +80402263 .byt:0001 +80402264 .wrd:0002 +80402266 .byt:0001 +80402267 .byt:0001 +80402268 .dbl:0004 +8040226C .dbl:0004 +80402270 .byt:0001 +80402271 .byt:0001 +80402272 .byt:0001 +80402273 .byt:0001 +80402274 .wrd:0002 +80402276 .byt:0001 +80402277 .byt:0001 +80402278 .dbl:0004 +8040227C .dbl:0004 +80402280 .byt:0001 +80402281 .byt:0001 +80402282 .byt:0001 +80402283 .byt:0001 +80402284 .wrd:0002 +80402286 .byt:0001 +80402287 .byt:0001 +80402288 .dbl:0004 +8040228C .dbl:0004 +80402290 .byt:0001 +80402291 .byt:0001 +80402292 .byt:0001 +80402293 .byt:0001 +80402294 .wrd:0002 +80402296 .byt:0001 +80402297 .byt:0001 +80402298 .dbl:0004 +8040229C .dbl:0004 +804022A0 .byt:0001 +804022A1 .byt:0001 +804022A2 .byt:0001 +804022A3 .byt:0001 +804022A4 .wrd:0002 +804022A6 .byt:0001 +804022A7 .byt:0001 +804022A8 .dbl:0004 +804022AC .dbl:0004 +804022B0 .byt:0001 +804022B1 .byt:0001 +804022B2 .byt:0001 +804022B3 .byt:0001 +804022B4 .wrd:0002 +804022B6 .byt:0001 +804022B7 .byt:0001 +804022B8 .dbl:0004 +804022BC .dbl:0004 +804022C0 .byt:0001 +804022C1 .byt:0001 +804022C2 .byt:0001 +804022C3 .byt:0001 +804022C4 .wrd:0002 +804022C6 .byt:0001 +804022C7 .byt:0001 +804022C8 .dbl:0004 +804022CC .dbl:0004 +804022D0 .byt:0001 +804022D1 .byt:0001 +804022D2 .byt:0001 +804022D3 .byt:0001 +804022D4 .wrd:0002 +804022D6 .byt:0001 +804022D7 .byt:0001 +804022D8 .dbl:0004 +804022DC .dbl:0004 +804022E0 .byt:0001 +804022E1 .byt:0001 +804022E2 .byt:0001 +804022E3 .byt:0001 +804022E4 .wrd:0002 +804022E6 .byt:0001 +804022E7 .byt:0001 +804022E8 .dbl:0004 +804022EC .dbl:0004 +804022F0 .byt:0001 +804022F1 .byt:0001 +804022F2 .byt:0001 +804022F3 .byt:0001 +804022F4 .wrd:0002 +804022F6 .byt:0001 +804022F7 .byt:0001 +804022F8 .dbl:0004 +804022FC .dbl:0004 +80402300 .byt:0001 +80402301 .byt:0001 +80402302 .byt:0001 +80402303 .byt:0001 +80402304 .wrd:0002 +80402306 .byt:0001 +80402307 .byt:0001 +80402308 .dbl:0004 +8040230C .dbl:0004 +80402310 .byt:0001 +80402311 .byt:0001 +80402312 .byt:0001 +80402313 .byt:0001 +80402314 .wrd:0002 +80402316 .byt:0001 +80402317 .byt:0001 +80402318 .dbl:0004 +8040231C .dbl:0004 +80402320 .byt:0001 +80402321 .byt:0001 +80402322 .byt:0001 +80402323 .byt:0001 +80402324 .wrd:0002 +80402326 .byt:0001 +80402327 .byt:0001 +80402328 .dbl:0004 +8040232C .dbl:0004 +80402330 .byt:0001 +80402331 .byt:0001 +80402332 .byt:0001 +80402333 .byt:0001 +80402334 .wrd:0002 +80402336 .byt:0001 +80402337 .byt:0001 +80402338 .dbl:0004 +8040233C .dbl:0004 +80402340 .byt:0001 +80402341 .byt:0001 +80402342 .byt:0001 +80402343 .byt:0001 +80402344 .wrd:0002 +80402346 .byt:0001 +80402347 .byt:0001 +80402348 .dbl:0004 +8040234C .dbl:0004 +80402350 .byt:0001 +80402351 .byt:0001 +80402352 .byt:0001 +80402353 .byt:0001 +80402354 .wrd:0002 +80402356 .byt:0001 +80402357 .byt:0001 +80402358 .dbl:0004 +8040235C .dbl:0004 +80402360 .byt:0001 +80402361 .byt:0001 +80402362 .byt:0001 +80402363 .byt:0001 +80402364 .wrd:0002 +80402366 .byt:0001 +80402367 .byt:0001 +80402368 .dbl:0004 +8040236C .dbl:0004 +80402370 .byt:0001 +80402371 .byt:0001 +80402372 .byt:0001 +80402373 .byt:0001 +80402374 .wrd:0002 +80402376 .byt:0001 +80402377 .byt:0001 +80402378 .dbl:0004 +8040237C .dbl:0004 +80402380 .byt:0001 +80402381 .byt:0001 +80402382 .byt:0001 +80402383 .byt:0001 +80402384 .wrd:0002 +80402386 .byt:0001 +80402387 .byt:0001 +80402388 .dbl:0004 +8040238C .dbl:0004 +80402390 .byt:0001 +80402391 .byt:0001 +80402392 .byt:0001 +80402393 .byt:0001 +80402394 .wrd:0002 +80402396 .byt:0001 +80402397 .byt:0001 +80402398 .dbl:0004 +8040239C .dbl:0004 +804023A0 .byt:0001 +804023A1 .byt:0001 +804023A2 .byt:0001 +804023A3 .byt:0001 +804023A4 .wrd:0002 +804023A6 .byt:0001 +804023A7 .byt:0001 +804023A8 .dbl:0004 +804023AC .dbl:0004 +804023B0 .byt:0001 +804023B1 .byt:0001 +804023B2 .byt:0001 +804023B3 .byt:0001 +804023B4 .wrd:0002 +804023B6 .byt:0001 +804023B7 .byt:0001 +804023B8 .dbl:0004 +804023BC .dbl:0004 +804023C0 .byt:0001 +804023C1 .byt:0001 +804023C2 .byt:0001 +804023C3 .byt:0001 +804023C4 .wrd:0002 +804023C6 .byt:0001 +804023C7 .byt:0001 +804023C8 .dbl:0004 +804023CC .dbl:0004 +804023D0 .byt:0001 +804023D1 .byt:0001 +804023D2 .byt:0001 +804023D3 .byt:0001 +804023D4 .wrd:0002 +804023D6 .byt:0001 +804023D7 .byt:0001 +804023D8 .dbl:0004 +804023DC .dbl:0004 +804023E0 .byt:0001 +804023E1 .byt:0001 +804023E2 .byt:0001 +804023E3 .byt:0001 +804023E4 .wrd:0002 +804023E6 .byt:0001 +804023E7 .byt:0001 +804023E8 .dbl:0004 +804023EC .dbl:0004 +804023F0 .byt:0001 +804023F1 .byt:0001 +804023F2 .byt:0001 +804023F3 .byt:0001 +804023F4 .wrd:0002 +804023F6 .byt:0001 +804023F7 .byt:0001 +804023F8 .dbl:0004 +804023FC .dbl:0004 +80402400 .byt:0001 +80402401 .byt:0001 +80402402 .byt:0001 +80402403 .byt:0001 +80402404 .wrd:0002 +80402406 .byt:0001 +80402407 .byt:0001 +80402408 .dbl:0004 +8040240C .dbl:0004 +80402410 .byt:0001 +80402411 .byt:0001 +80402412 .byt:0001 +80402413 .byt:0001 +80402414 .wrd:0002 +80402416 .byt:0001 +80402417 .byt:0001 +80402418 .dbl:0004 +8040241C .dbl:0004 +80402420 .byt:0001 +80402421 .byt:0001 +80402422 .byt:0001 +80402423 .byt:0001 +80402424 .wrd:0002 +80402426 .byt:0001 +80402427 .byt:0001 +80402428 .dbl:0004 +8040242C .dbl:0004 +80402430 .byt:0001 +80402431 .byt:0001 +80402432 .byt:0001 +80402433 .byt:0001 +80402434 .wrd:0002 +80402436 .byt:0001 +80402437 .byt:0001 +80402438 .dbl:0004 +8040243C .dbl:0004 +80402440 .byt:0001 +80402441 .byt:0001 +80402442 .byt:0001 +80402443 .byt:0001 +80402444 .wrd:0002 +80402446 .byt:0001 +80402447 .byt:0001 +80402448 .dbl:0004 +8040244C .dbl:0004 +80402450 .byt:0001 +80402451 .byt:0001 +80402452 .byt:0001 +80402453 .byt:0001 +80402454 .wrd:0002 +80402456 .byt:0001 +80402457 .byt:0001 +80402458 .dbl:0004 +8040245C .dbl:0004 +80402460 .byt:0001 +80402461 .byt:0001 +80402462 .byt:0001 +80402463 .byt:0001 +80402464 .wrd:0002 +80402466 .byt:0001 +80402467 .byt:0001 +80402468 .dbl:0004 +8040246C .dbl:0004 +80402470 .byt:0001 +80402471 .byt:0001 +80402472 .byt:0001 +80402473 .byt:0001 +80402474 .wrd:0002 +80402476 .byt:0001 +80402477 .byt:0001 +80402478 .dbl:0004 +8040247C .dbl:0004 +80402480 .byt:0001 +80402481 .byt:0001 +80402482 .byt:0001 +80402483 .byt:0001 +80402484 .wrd:0002 +80402486 .byt:0001 +80402487 .byt:0001 +80402488 .dbl:0004 +8040248C .dbl:0004 +80402490 .byt:0001 +80402491 .byt:0001 +80402492 .byt:0001 +80402493 .byt:0001 +80402494 .wrd:0002 +80402496 .byt:0001 +80402497 .byt:0001 +80402498 .dbl:0004 +8040249C .dbl:0004 +804024A0 .byt:0001 +804024A1 .byt:0001 +804024A2 .byt:0001 +804024A3 .byt:0001 +804024A4 .wrd:0002 +804024A6 .byt:0001 +804024A7 .byt:0001 +804024A8 .dbl:0004 +804024AC .dbl:0004 +804024B0 .byt:0001 +804024B1 .byt:0001 +804024B2 .byt:0001 +804024B3 .byt:0001 +804024B4 .wrd:0002 +804024B6 .byt:0001 +804024B7 .byt:0001 +804024B8 .dbl:0004 +804024BC .dbl:0004 +804024C0 .byt:0001 +804024C1 .byt:0001 +804024C2 .byt:0001 +804024C3 .byt:0001 +804024C4 .wrd:0002 +804024C6 .byt:0001 +804024C7 .byt:0001 +804024C8 .dbl:0004 +804024CC .dbl:0004 +804024D0 .byt:0001 +804024D1 .byt:0001 +804024D2 .byt:0001 +804024D3 .byt:0001 +804024D4 .wrd:0002 +804024D6 .byt:0001 +804024D7 .byt:0001 +804024D8 .dbl:0004 +804024DC .dbl:0004 +804024E0 .byt:0001 +804024E1 .byt:0001 +804024E2 .byt:0001 +804024E3 .byt:0001 +804024E4 .wrd:0002 +804024E6 .byt:0001 +804024E7 .byt:0001 +804024E8 .dbl:0004 +804024EC .dbl:0004 +804024F0 .byt:0001 +804024F1 .byt:0001 +804024F2 .byt:0001 +804024F3 .byt:0001 +804024F4 .wrd:0002 +804024F6 .byt:0001 +804024F7 .byt:0001 +804024F8 .dbl:0004 +804024FC .dbl:0004 +80402500 .byt:0001 +80402501 .byt:0001 +80402502 .byt:0001 +80402503 .byt:0001 +80402504 .wrd:0002 +80402506 .byt:0001 +80402507 .byt:0001 +80402508 .dbl:0004 +8040250C .dbl:0004 +80402510 .byt:0001 +80402511 .byt:0001 +80402512 .byt:0001 +80402513 .byt:0001 +80402514 .wrd:0002 +80402516 .byt:0001 +80402517 .byt:0001 +80402518 .dbl:0004 +8040251C .dbl:0004 +80402520 .byt:0001 +80402521 .byt:0001 +80402522 .byt:0001 +80402523 .byt:0001 +80402524 .wrd:0002 +80402526 .byt:0001 +80402527 .byt:0001 +80402528 .dbl:0004 +8040252C .dbl:0004 +80402530 .byt:0001 +80402531 .byt:0001 +80402532 .byt:0001 +80402533 .byt:0001 +80402534 .wrd:0002 +80402536 .byt:0001 +80402537 .byt:0001 +80402538 .dbl:0004 +8040253C .dbl:0004 +80402540 .byt:0001 +80402541 .byt:0001 +80402542 .byt:0001 +80402543 .byt:0001 +80402544 .wrd:0002 +80402546 .byt:0001 +80402547 .byt:0001 +80402548 .dbl:0004 +8040254C .dbl:0004 +80402550 .byt:0001 +80402551 .byt:0001 +80402552 .byt:0001 +80402553 .byt:0001 +80402554 .wrd:0002 +80402556 .byt:0001 +80402557 .byt:0001 +80402558 .dbl:0004 +8040255C .dbl:0004 +80402560 .byt:0001 +80402561 .byt:0001 +80402562 .byt:0001 +80402563 .byt:0001 +80402564 .wrd:0002 +80402566 .byt:0001 +80402567 .byt:0001 +80402568 .dbl:0004 +8040256C .dbl:0004 +80402570 no_upgrade +80402578 hookshot_upgrade +8040258C @@return +80402594 strength_upgrade +804025B4 @@return +804025BC bomb_bag_upgrade +804025DC @@return +804025E4 bow_upgrade +80402604 @@return +8040260C slingshot_upgrade +8040262C @@return +80402634 wallet_upgrade +80402654 @@return +8040265C tycoon_wallet +80402670 scale_upgrade +80402684 @@return +8040268C nut_upgrade +804026A0 @@return +804026A8 stick_upgrade +804026BC @@return +804026C4 magic_upgrade +804026D4 @@return +804026DC arrows_to_rupee +804026F0 @@return +804026F8 bombs_to_rupee +8040270C @@return +80402714 seeds_to_rupee +80402728 @@return +80402730 no_effect +80402738 give_biggoron_sword +80402748 give_bottle +80402750 @@loop +8040277C @@return +80402784 give_dungeon_item +804027A0 give_small_key +804027B8 @not_negative +804027C8 give_defense +804027E8 give_magic +80402808 double_magic +80402830 bombchu_upgrade +80402854 @@return +8040285C ocarina_upgrade +80402870 @@return +80402878 give_fairy_ocarina +80402888 give_song +804028A4 inventory_check +80402910 @@return +80402918 override_skulltula_token +80402938 @@in_table +80402968 @@extended_effect +80402994 @@no_extended_effect +804029A0 @@not_extended +804029D8 @@item_effect +804029E4 @@display_message +804029F0 @@return +80402A04 override_object_npc +80402A14 override_object_chest +80402A24 override_object +80402A3C @@return +80402A80 @@no_count_inc +80402A84 @@no_pending_clear +80402A8C override_graphic +80402AA4 @@return +80402ABC override_text +80402AD8 @@return +80402AE0 override_action +80402B08 @@no_player_override +80402B64 @@return +80402B6C store_item_data_hook +80402BA0 store_item_data +80402C34 @@update_base_game +80402C64 @@not_chest +80402C74 @@not_negative +80402C78 @@return +80402C88 lookup_override +80402CB0 @@return +80402CC0 get_override_search_key +80402D00 @@not_skulltula +80402D38 @@valid_chest +80402D40 @@not_chest +80402D70 @@valid_collectable +80402D78 @@not_collectable +80402DA0 @@not_grotto_deku_scrub +80402DB0 @@return +80402DB8 scan_override_table +80402DDC @@lookup_loop +80402E44 @@return +80402E4C resolve_extended_item +80402E60 @@loop +80402EB4 @@not_extended +80402EB8 @@return +80402ED0 override_great_fairy_cutscene +80402F28 @@item_fairy +80402F48 @@give_item +80402F74 @@return +80402F7C override_light_arrow_cutscene +80402F90 override_fairy_ocarina_cutscene +80402FA4 override_ocarina_songs +80402FB8 override_requiem_song +80402FC4 override_epona_song +80402FE4 override_suns_song +80403004 override_song_of_time +80403014 store_pending_special_item +80403024 @@find_duplicate_loop +80403040 @@find_empty_loop +80403058 @@return +80403060 override_saria_song_check +8040307C @@get_item +80403084 set_saria_song_flag +804030A4 set_dungeon_knowledge +804030D0 @@set_flag +804030E8 Shop_Check_Sold_Out +80403134 @@return +8040313C Shop_Set_Sold_Out +80403174 @@return +8040317C Shop_Keeper_Init_ID +80403198 @@return +804031A8 Deku_Check_Sold_Out +804031CC @@continue +804031FC Deku_Set_Sold_Out +80403220 @@continue +80403254 every_frame +804032A8 @@loop +80403300 @@no_pending_item +80403328 item_menu_description_id_periodic +8040333C @@item_menu_description_id_return_00000000 +80403344 item_menu_description_id_immediate_1 +80403358 @@item_menu_description_id_return_00000001 +80403360 item_menu_description_id_immediate_2 +80403374 @@item_menu_description_id_return_00000002 +8040337C item_menu_description_id_immediate_3 +80403390 @@item_menu_description_id_return_00000003 +80403398 before_time_travel +804033C8 after_time_travel +80403404 @@going_back +8040340C @@done +8040343C update_c_button +80403468 @@return +80403470 after_going_forward +804034AC @@no_init +804034BC after_going_back +804034EC @@not_swordless +804034F4 initialize_adult +8040351C @@no_mirror_shield +8040355C init_adult_button +80403588 @@empty +80403590 @@loop +804035E8 @@set_empty +804035F4 @@return +804035FC .byt:0001 +804035FC ADULT_INIT_ITEMS +804035FD .byt:0001 +804035FE .byt:0001 +804035FF .byt:0001 +80403600 .byt:0001 +80403601 .byt:0001 +80403602 .byt:0001 +80403603 .byt:0001 +80403604 .byt:0001 +80403608 .byt:0001 +80403608 ADULT_VALID_ITEMS +80403609 .byt:0001 +8040360A .byt:0001 +8040360B .byt:0001 +8040360C .byt:0001 +8040360D .byt:0001 +8040360E .byt:0001 +8040360F .byt:0001 +80403610 .byt:0001 +80403611 .byt:0001 +80403612 .byt:0001 +80403613 .byt:0001 +80403614 .byt:0001 +80403615 .byt:0001 +80403616 .byt:0001 +80403617 .byt:0001 +80403618 .byt:0001 +80403619 .byt:0001 +8040361A .byt:0001 +8040361B .byt:0001 +8040361C .byt:0001 +8040361D .byt:0001 +8040361E .byt:0001 +8040361F .byt:0001 +80403620 suns_song_fix_event +80403654 @@child +80403664 @@return +8040366C suns_song_fix +80403680 @@check_suns_status +8040369C @@disable_suns +804036A4 @@return +804036AC warp_song_fix +804036D8 @@child +804036E8 @@return +804036F0 Check_Has_Epona_Song +8040373C @@return +80403744 write_initial_save +80403750 @@save_data_loop +80403780 @@overwrite_type +80403788 @@return +80403790 .byt:08C0 +80405000 disp_buf_init,00000018 +80405018 sprite_bytes_per_tile,00000028 +80405040 sprite_bytes,00000030 +80405070 sprite_load,0000024C +804052BC sprite_draw,000000E8 +804053A4 draw_setup,000001DC +80405580 gfx_init,00000148 +804056C8 heap_init,00000014 +804056DC heap_alloc,00000034 +80405710 file_init,00000044 +80405754 c_init,0000002C +80405780 overlay_swap,000000B4 +80405834 draw_dungeon_info,0000096C +804061A0 text_init,0000002C +804061CC text_print,000000A8 +80406274 text_flush,00000148 +804063C8 .byt:0010 +804063C8 font_sprite +804063D8 .byt:0010 +804063D8 quest_items_sprite +804063E8 .byt:0010 +804063E8 medals_sprite +804063F8 .byt:0010 +804063F8 stones_sprite +80406408 .byt:000E +80406408 cfg_dungeon_rewards +80406418 .byt:0012 +80406418 medal_colors +8040642C .byt:009C +8040642C dungeons +804064C8 .byt:0004 +804064C8 cfg_dungeon_info_enable +804064CC .byt:0004 +804064CC dungeon_count +804064D0 .byt:0004 +804064D0 heap_next +804064D4 .byt:0004 +804064D4 cfg_dungeon_info_reward_need_compass +804064D8 .byt:0004 +804064D8 cfg_dungeon_info_mq_need_map +804064DC .byt:0004 +804064DC cfg_dungeon_info_mq_enable +804064E8 .byt:0010 +804064E8 setup_db +804064F8 .byt:000E +804064F8 cfg_dungeon_is_mq +80406506 .byt:14C8 +80406506 FONT_TEXTURE +804079CE .byt:8632 +80480000 DUMMY_ACTOR +80500000 C_HEAP + \ No newline at end of file diff --git a/ASM/build/bundle.o b/ASM/build/bundle.o new file mode 100644 index 0000000000000000000000000000000000000000..053402c31668fa0e2aaa43c54852ecd9e4e3e53d GIT binary patch literal 10028 zcmcIpZ){uFbw7NhBubRTCyKT?M{y|YQKlVLp&iEM8g6-^WJ}4^RI!!D+l)!1Nc~wQ zQPH0|0fLsW-P9ixNeC3zANql_q}XkR$Zeh0AJR^+o5aJ4Lc@Zg8;nGCjoDi>!0yr} z*phO;bMJi=CCg4SY!`Yw_uPB#`FGDf=f0<}?`zv{(`=M)Hgck0Fkl?^QVle)-H%a?Bi~Vrn8Ek?xs3 zM&)9q!kLco9Y4w4So~Y^E}kP@5M(lelXlD{~sen;U+MZF$QT5ysXnfkytf9S>4Meq%Njs_s7Eeq4w5&fsPfOhBxPM(2Ze$PB29;1jHTEOq1 zUdhvlDc?6+crK@%~F|B z4EH)8xD=YFN9b&@mWp;BGhQjl(Hpdtvdkys3BBpg(SAJ;Eh=FiY-2-IyUu!spmUh2 zyi1VbWB!f1N!#ovjSlDm!$G=~=l2-L!Qb(%OM4E`BU*iXvh`HO=w0JeSrkv;3@@uKsSWb(eyH#9_TYOVpmJ#o45VVdxUu$>)^y zA*`jTS?J${KB@+gY4Jl)8Xf2Z&Anz>uZ zK^n_795zDkA;WGX#5!S|5Tg!`QzK>*dZJ&B91%t?2q70Vupd!ZBCHqNg-&QGXry>k~}Z?3Z;fxwf8h4Pw0}jw5G*_hd27K713^ zGLTbolgtlGCz1c5&-xlCYNGHZ)~|<5uk_}6xPtw!L2mUS21Ff|weJMWsR_r9XQ8hR zy4TJ$m4*$CioFTiL`$5P*UiUDTfHW^H8Yf-6YFB7%@{A!{K5SA@fdj>j}q@%UO!&P zG_0?N{e_-2$h$uHy3js9`*|XUN@i+bW?#aFQ?Mbq_*2yKAETE42(|n*)bjJF{Snd%^J}!|Bh=Yk4z&g~H}`RP{`ddQb!RQje{n4$ z)bnMYql2nu6x24Z5yrgzf~vKCs;34?&zy)L~H%LQ&0uSaI{gxJ4`bYhb0r5MpmO`y>-RpHqDGW&iy zMrW}XF`O|QXm-@^CL7aHhhCdOT?<|$dxuH2JZ`+1`{Gjd)Q3v)3=M?ALfwQ1PKOY`1Rq0Fgq>2&52F7%4B@&pL zr-&8LEPwJeVtc#DJAV(`%O^GI<5wXgY6oxFX4r4{A?G@a&#E77Gk5bN=OW?1ZJDai zzcasV`B68?$^Nllyv=vs^}cI>@8Hu);k*B}y}n)EuH3KKUU*)wA4Oe3-Um<3@Ny17 zF2Npa8Jzzvb^iVS0O)O?DHlGA37>s{`0%jJGppxMql2evQRi*AKUCqKA>!_KU(v4U zmQ0lub5ib!fM%Wz?EL_~LHuD4O|^#^dJ3_Fcyct+7Rx8vRpGDKNkf3zx7mZ;RMy@F zxf+!k_7I(!B|n+IfT&p7X1hb&#eD(Pn$Rrf3hmo5M}FojV&GyvCf;THkUu=ip2|Df zbI7FonZ~k*&yZ%~ePc6hROg3%y2d7)2b>if&WVXV-OTd$UYuX%^JJYPb%xwL_i5sr zuAN8+sEh(rqI6IS9MXm9Q8d8uGc3jGz6Fx({XLqYd*1owoJ_WBYi?}7P ziEjp3+;8S6!a0F+Reg$Dna;{@e7{k3;tKDVmCx4Ji+>aKg75Kb$K@TL$8m>BPT^jJ zciO{vr#*ys+77(aw&R_)4R@U|ZHt!WDDb#D$KMYO*G-C+VjbRk z13MuEG#wc#$|mH#upX$1I^&_!co){{NZgqp$2SYqYJQjIZxGOlUfzy-)9GNXah+_L ztGOKR_U|G0ihCXND6r`q?u%`>FSg>o*o^z4iTh#{_r(bAi(%XsL%1(C;Jz57488%; zIXtLQ1^1I^HT2sO`8C$~agIFN63$#kojKmyH^>W{?%R87@{jSoWrd#PcXl7%rhLap zLnI}Ab>0!$Y@EYA@C@uOd03M)A)Sgt$LMFFI^0v1s3%kl+&qbIVR(P{0XhJ^6SMF~ zw>yWvj&B|K4il=wUBfTp1oAZs1|}15>uLS|4m0;|<}_jq^%Ob1cylcGkI1W{j!rc3 zwa&o(?h*!pql=8JfX(z%lp$KsnIc}axCxfA4y62qUERKW2q5=lq?_Y zizm}Z7%5&pINU$dFX)}qvGmx}lD<@btXnOm@@z|LWIV~D$dzg7XptmTvD6YDN)IUv zcSfQLYH4cvf&pQ8}PDKOz?B9!z4)(~Jff-f4*@||Cw3;=^QU-_w(~fSdQ}#9gGc%c8P9`UVQW?RVW^nF{CS1v6if7_0s&&`tm zBKjsC=Fj~82H-MquUh{-^eun0zRSS5BwFi#gT832B<6pMA3mQ!xn9GX5}s;SIDlw! z|9X3#ZS1D;vHk&o!Fc}=KyrMjH>uh$12x*3Lj1Fv#!}CYVSqtrV!TIoQbS4E z=^sMP5pz8Q^s!))Pa2@Id(FY)gMU5lQcS(9!ll;ji$!N zhdYxA$xUF?lO7tg6jEFg&yA%xiCH0UjRfpWrzDY@b*Bf1 z7Zi7X$|8+g@=f? zfxZ~|V;j%6s&S}*uZmRMrSKDK-89j59!Cz^&h+0_5PH@zU+DQD&o2Y={4bF{8A7i{ zjB`2@_+^EcOT5G{`Ij6<8Ude@B;Fzz4iIey#0vr4%g~Es#}NAN1wUs55d58{)XO<0 z^>I!R?csUoyNBnYC)?x9N_(8=6@EeDrO=c8Sb9bJvGf{JGUSxLN3@m4Zvui(=|@Dn zfODDJ1-uOUKft&S$T;-7pK%``(|;)WmeokUWlo~qJRbyPddRsCa>@)Tr%cIlfu8r- z1;6k@A5;9_SNu;%x(cje{uQvF`Bgw3^Q(a0m|sOm(LuhTgPqK;qFM5*VEK$gzF2oz z+F1cVu>KWqt99=wx|@m)dIcn+|Zljq!Rive|Mi;=RPj!+$R(r^kDtn zGm1{>;m%6_?m5Zdt@Ls$z4Qjj-wpkkzaEkN^;UU~^fq~p^bR$DNX>UizIsyf)yHss z;`Pr0!Vdj;)M~~vfQ&<55983+!}u`XFd3f#WPDojTaf&!U<=1xl~>BG@=3W>L82`@ zepcp-_({Fe&9qVQ`9zaeoCcySzi%4HmTYUI4fQ1eNJ_bD9u z33|xoxc4kezk66d^I>@yuWpxq^(cL+53BL#C0#ZABIu4Q{Di~_Ey#CoKk5KO6M39r z7ls&Sz?Webd6(f5@+HF+7WtLo68y|?1%B12 zarC*tv3LS-Y(&C7tM|pn+7C9y6a75{@!nBt97*-^C5Af#jeIphFP)5!#d+!O#xON9 z0!9iXP(mBU4+`pF3PoD198QiRP<6~nZ{fTkDBs2~tQ;G3j7WUvC`V8%!VFVB8 zVUK7L{Q6X%fm7kTK!-ibH|*6KItOreI2{{0wS#*C6 z%vnIU-Y*tiC)43kayKy@zHsK7MVG_~+rjeC1l?cAzWC)iesEtGPz-_&XWiNwF=X)@ z1Xkd`x>n#BJnTRA57V(;Urpz7zXMcl3;2om2Wx<3a(e-f)kk;B91j*WYmQ-oLQH2L q#u!{h{2v~c%YD{O`2;<>$BShgXI8WL;WeX>uI@5$*3oK$?tcI(gP?l= literal 0 HcmV?d00001 diff --git a/ASM/build/c_symbols.txt b/ASM/build/c_symbols.txt new file mode 100644 index 000000000..9ee4df20e --- /dev/null +++ b/ASM/build/c_symbols.txt @@ -0,0 +1,60 @@ + +../build/bundle.o: file format elf32-bigmips + +SYMBOL TABLE: +00000000 l d .MIPS.abiflags 00000000 .MIPS.abiflags +00000000 l d .reginfo 00000000 .reginfo +00000000 l d .text 00000000 .text +00000000 l d .rodata.str1.4 00000000 .rodata.str1.4 +00000000 l d .data 00000000 .data +00000000 l d .sdata 00000000 .sdata +00000000 l d .sbss 00000000 .sbss +00000000 l d .bss 00000000 .bss +00000000 l d .comment 00000000 .comment +00000000 l d .pdr 00000000 .pdr +00000000 l d .gnu.attributes 00000000 .gnu.attributes +00000000 l d .mdebug.abi32 00000000 .mdebug.abi32 +00000000 l df *ABS* 00000000 gfx.c +00000000 l df *ABS* 00000000 util.c +00000000 l df *ABS* 00000000 main.c +00000000 l df *ABS* 00000000 dungeon_info.c +00000000 l .rodata.str1.4 00000000 $LC0 +00000004 l .rodata.str1.4 00000000 $LC1 +00000000 l df *ABS* 00000000 text.c +00000014 l O .sbss 00000004 text_buf +00000010 l O .sbss 00000004 text_end +000011a0 g F .text 0000002c text_init +00001274 g F .text 00000148 text_flush +00000780 g F .text 000000b4 overlay_swap +00000020 g O .data 00000010 medals_sprite +00000004 g O .sdata 00000004 dungeon_count +00000010 g O .data 00000010 quest_items_sprite +000006dc g F .text 00000034 heap_alloc +00000834 g F .text 0000096c draw_dungeon_info +00000000 *UND* 00000000 FONT_TEXTURE +000002bc g F .text 000000e8 sprite_draw +00000070 g F .text 0000024c sprite_load +00000030 g O .data 00000010 stones_sprite +00000000 g O .bss 00000010 setup_db +000003a4 g F .text 000001dc draw_setup +00000000 g O .data 00000010 font_sprite +00000040 g F .text 00000030 sprite_bytes +00000008 g O .sbss 00000004 cfg_dungeon_info_mq_need_map +00000580 g F .text 00000148 gfx_init +00000000 g F .text 00000018 disp_buf_init +00000010 g O .bss 0000000e cfg_dungeon_is_mq +00000064 g O .data 0000009c dungeons +00000050 g O .data 00000012 medal_colors +000011cc g F .text 000000a8 text_print +00000754 g F .text 0000002c c_init +00000000 g O .sbss 00000004 heap_next +00000040 g O .data 0000000e cfg_dungeon_rewards +000006c8 g F .text 00000014 heap_init +00000004 g O .sbss 00000004 cfg_dungeon_info_reward_need_compass +0000000c g O .sbss 00000004 cfg_dungeon_info_mq_enable +00000000 *UND* 00000000 C_HEAP +00000018 g F .text 00000028 sprite_bytes_per_tile +00000710 g F .text 00000044 file_init +00000000 g O .sdata 00000004 cfg_dungeon_info_enable + + diff --git a/ASM/c/Makefile b/ASM/c/Makefile new file mode 100644 index 000000000..579b0098f --- /dev/null +++ b/ASM/c/Makefile @@ -0,0 +1,28 @@ +CC = mips64-gcc +LD = mips64-ld +OBJDUMP = mips64-objdump + +CFLAGS = -march=vr4300 -mtune=vr4300 -mabi=32 -mno-gpopt \ + -O1 -fno-reorder-blocks \ + -DZ64_VERSION=Z64_OOT10 + +OBJECTS = $(patsubst %.c,%.o,$(wildcard *.c)) +HEADERS = $(wildcard *.h) + +OUTDIR = ../build + +.PHONY: all clean bundle symbols + +all: clean bundle symbols + +%.o: %.c $(HEADERS) + $(CC) -c $< $(CFLAGS) + +bundle: $(OBJECTS) + $(LD) -o $(OUTDIR)/bundle.o -i -L. $(patsubst %.o,-l:%.o,$(OBJECTS)) + +symbols: bundle + $(OBJDUMP) -t $(OUTDIR)/bundle.o > $(OUTDIR)/c_symbols.txt + +clean: + rm -f *.o diff --git a/ASM/c/dungeon_info.c b/ASM/c/dungeon_info.c new file mode 100644 index 000000000..f69fad99b --- /dev/null +++ b/ASM/c/dungeon_info.c @@ -0,0 +1,264 @@ +#include "dungeon_info.h" + +#include "gfx.h" +#include "text.h" +#include "util.h" +#include "z64.h" + +typedef struct { + uint8_t index; + struct { + uint8_t has_keys : 1; + uint8_t has_boss_key : 1; + uint8_t has_card : 1; + uint8_t has_map : 1; + }; + char name[10]; +} dungeon_entry_t; + +dungeon_entry_t dungeons[] = { + { 0, 0, 0, 0, 1, "Deku" }, + { 1, 0, 0, 0, 1, "Dodongo" }, + { 2, 0, 0, 0, 1, "Jabu" }, + + { 3, 1, 1, 0, 1, "Forest" }, + { 4, 1, 1, 0, 1, "Fire" }, + { 5, 1, 1, 0, 1, "Water" }, + { 7, 1, 1, 0, 1, "Shadow" }, + { 6, 1, 1, 0, 1, "Spirit" }, + + { 8, 1, 0, 0, 1, "BotW" }, + { 9, 0, 0, 0, 1, "Ice" }, + { 12, 1, 0, 1, 0, "Gerudo" }, + { 11, 1, 0, 0, 0, "GTG" }, + { 13, 1, 1, 0, 0, "Ganon" }, +}; + +int dungeon_count = array_size(dungeons); + +typedef struct { + uint8_t r; + uint8_t g; + uint8_t b; +} medal_color_t; + +medal_color_t medal_colors[] = { + { 0x11, 0xC2, 0x2D }, // Forest + { 0xD4, 0x43, 0x22 }, // Fire + { 0x08, 0x54, 0xCE }, // Water + { 0xD1, 0x75, 0x1A }, // Spirit + { 0xA9, 0x3A, 0xEA }, // Shadow + { 0xA4, 0xAB, 0x21 }, // Light +}; + +uint32_t cfg_dungeon_info_enable = 1; +uint32_t cfg_dungeon_info_mq_enable = 0; +uint32_t cfg_dungeon_info_mq_need_map = 0; +uint32_t cfg_dungeon_info_reward_need_compass = 0; + +int8_t cfg_dungeon_rewards[] = { 0, 1, 2, 3, 4, 5, 6, 7, -1, -1, -1, -1, -1, -1 }; +uint8_t cfg_dungeon_is_mq[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; + +void draw_dungeon_info(z64_disp_buf_t *db) { + if (!cfg_dungeon_info_enable) return; + + db->p = db->buf; + + // Call setup display list + gSPDisplayList(db->p++, setup_db.buf); + + // Set up dimensions + + int icon_size = 16; + int padding = 2; + int rows = 13; + int mq_width = cfg_dungeon_info_mq_enable ? + ((6 * font_sprite.tile_w) + padding) : + 0; + int bg_width = + (5 * icon_size) + + (8 * font_sprite.tile_w) + + (7 * padding) + + mq_width; + int bg_height = (rows * icon_size) + ((rows + 1) * padding); + int bg_left = (Z64_SCREEN_WIDTH - bg_width) / 2; + int bg_top = (Z64_SCREEN_HEIGHT - bg_height) / 2; + + int left = bg_left + padding; + int start_top = bg_top + padding; + + // Draw background + + gDPSetCombineMode(db->p++, G_CC_PRIMITIVE, G_CC_PRIMITIVE); + gDPSetPrimColor(db->p++, 0, 0, 0x00, 0x00, 0x00, 0xD0); + gSPTextureRectangle(db->p++, + bg_left<<2, bg_top<<2, + (bg_left + bg_width)<<2, (bg_top + bg_height)<<2, + 0, + 0, 0, + 1<<10, 1<<10); + + // Draw medals + + gDPPipeSync(db->p++); + gDPSetCombineMode(db->p++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM); + + sprite_load(db, &medals_sprite, 0, medals_sprite.tile_count); + + for (int i = 0; i < dungeon_count; i++) { + dungeon_entry_t *d = &(dungeons[i]); + if (cfg_dungeon_info_reward_need_compass && + !z64_file.dungeon_items[d->index].compass) { + continue; + } + int reward = cfg_dungeon_rewards[d->index]; + if (reward < 3) continue; + reward -= 3; + + medal_color_t *c = &(medal_colors[reward]); + gDPSetPrimColor(db->p++, 0, 0, c->r, c->g, c->b, 0xFF); + + int top = start_top + ((icon_size + padding) * i); + sprite_draw(db, &medals_sprite, reward, + left, top, icon_size, icon_size); + } + + // Draw stones + + gDPSetPrimColor(db->p++, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF); + sprite_load(db, &stones_sprite, 0, stones_sprite.tile_count); + + for (int i = 0; i < dungeon_count; i++) { + dungeon_entry_t *d = &(dungeons[i]); + if (cfg_dungeon_info_reward_need_compass && + !z64_file.dungeon_items[d->index].compass) { + continue; + } + int reward = cfg_dungeon_rewards[d->index]; + if (reward < 0 || reward >= 3) continue; + + int top = start_top + ((icon_size + padding) * i); + sprite_draw(db, &stones_sprite, reward, + left, top, icon_size, icon_size); + + } + + left += icon_size + padding; + + // Draw dungeon names + + for (int i = 0; i < dungeon_count; i++) { + dungeon_entry_t *d = &(dungeons[i]); + int top = start_top + ((icon_size + padding) * i) + 1; + text_print(d->name, left, top); + } + + left += (8 * font_sprite.tile_w) + padding; + + // Draw key counts + + sprite_load(db, &quest_items_sprite, 17, 1); + + for (int i = 0; i < dungeon_count; i++) { + dungeon_entry_t *d = &(dungeons[i]); + if (!d->has_keys) continue; + + int8_t keys = z64_file.dungeon_keys[d->index]; + if (keys < 0) keys = 0; + if (keys > 9) keys = 9; + + char count[2] = "0"; + count[0] += keys; + int top = start_top + ((icon_size + padding) * i) + 1; + text_print(count, left, top); + } + + left += icon_size + padding; + + // Draw boss keys + + sprite_load(db, &quest_items_sprite, 14, 1); + + for (int i = 0; i < dungeon_count; i++) { + dungeon_entry_t *d = &(dungeons[i]); + if (d->has_boss_key && z64_file.dungeon_items[d->index].boss_key) { + int top = start_top + ((icon_size + padding) * i); + sprite_draw(db, &quest_items_sprite, 0, + left, top, icon_size, icon_size); + } + } + + // Draw gerudo card + + sprite_load(db, &quest_items_sprite, 10, 1); + + for (int i = 0; i < dungeon_count; i++) { + dungeon_entry_t *d = &(dungeons[i]); + if (d->has_card && z64_file.gerudos_card) { + int top = start_top + ((icon_size + padding) * i); + sprite_draw(db, &quest_items_sprite, 0, + left, top, icon_size, icon_size); + } + } + + left += icon_size + padding; + + // Draw maps and compasses + + int draw_maps_and_compasses = 1; + if (draw_maps_and_compasses) { + // Draw maps + + sprite_load(db, &quest_items_sprite, 16, 1); + + for (int i = 0; i < dungeon_count; i++) { + dungeon_entry_t *d = &(dungeons[i]); + if (d->has_map && z64_file.dungeon_items[d->index].map) { + int top = start_top + ((icon_size + padding) * i); + sprite_draw(db, &quest_items_sprite, 0, + left, top, icon_size, icon_size); + } + } + + left += icon_size + padding; + + // Draw compasses + + sprite_load(db, &quest_items_sprite, 15, 1); + + for (int i = 0; i < dungeon_count; i++) { + dungeon_entry_t *d = &(dungeons[i]); + if (d->has_map && z64_file.dungeon_items[d->index].compass) { + int top = start_top + ((icon_size + padding) * i); + sprite_draw(db, &quest_items_sprite, 0, + left, top, icon_size, icon_size); + } + } + + left += icon_size + padding; + } + + // Draw master quest dungeons + + if (cfg_dungeon_info_mq_enable) { + for (int i = 0; i < dungeon_count; i++) { + dungeon_entry_t *d = &(dungeons[i]); + if (cfg_dungeon_info_mq_need_map && d->has_map && + !z64_file.dungeon_items[d->index].map) { + continue; + } + char *str = cfg_dungeon_is_mq[d->index] ? "MQ" : "Normal"; + int top = start_top + ((icon_size + padding) * i) + 1; + text_print(str, left, top); + } + + left += icon_size + padding; + } + + // Finish + + text_flush(db); + + gDPFullSync(db->p++); + gSPEndDisplayList(db->p++); +} diff --git a/ASM/c/dungeon_info.h b/ASM/c/dungeon_info.h new file mode 100644 index 000000000..435af14b7 --- /dev/null +++ b/ASM/c/dungeon_info.h @@ -0,0 +1,8 @@ +#ifndef DUNGEON_INFO_H +#define DUNGEON_INFO_H + +#include "z64.h" + +void draw_dungeon_info(z64_disp_buf_t *db); + +#endif diff --git a/ASM/c/gfx.c b/ASM/c/gfx.c new file mode 100644 index 000000000..37b800b0e --- /dev/null +++ b/ASM/c/gfx.c @@ -0,0 +1,122 @@ +#include "gfx.h" + +#include "util.h" +#include "z64.h" + +void disp_buf_init(z64_disp_buf_t *db, Gfx *buf, int size) { + db->size = size; + db->buf = buf; + db->p = buf; + db->d = (Gfx *)((char *)buf + size); +} + +sprite_t stones_sprite = { + NULL, 16, 16, 3, + G_IM_FMT_RGBA, G_IM_SIZ_32b, 4 +}; + +sprite_t medals_sprite = { + NULL, 16, 16, 6, + G_IM_FMT_IA, G_IM_SIZ_8b, 1 +}; + +sprite_t quest_items_sprite = { + NULL, 24, 24, 18, + G_IM_FMT_RGBA, G_IM_SIZ_32b, 4 +}; + +sprite_t font_sprite = { + NULL, 8, 14, 95, + G_IM_FMT_IA, G_IM_SIZ_8b, 1 +}; + +int sprite_bytes_per_tile(sprite_t *sprite) { + return sprite->tile_w * sprite->tile_h * sprite->bytes_per_texel; +} + +int sprite_bytes(sprite_t *sprite) { + return sprite->tile_count * sprite_bytes_per_tile(sprite); +} + +void sprite_load(z64_disp_buf_t *db, sprite_t *sprite, + int start_tile, int tile_count) { + gDPLoadTextureBlock(db->p++, + sprite->buf + (start_tile * sprite_bytes_per_tile(sprite)), + sprite->im_fmt, sprite->im_siz, + sprite->tile_w, tile_count * sprite->tile_h, + 0, + G_TX_WRAP, G_TX_WRAP, + G_TX_NOMASK, G_TX_NOMASK, + G_TX_NOLOD, G_TX_NOLOD); +} + +void sprite_draw(z64_disp_buf_t *db, sprite_t *sprite, int tile_index, + int left, int top, int width, int height) { + int width_factor = (1<<10) * sprite->tile_w / width; + int height_factor = (1<<10) * sprite->tile_h / height; + + gSPTextureRectangle(db->p++, + left<<2, top<<2, + (left + width)<<2, (top + height)<<2, + 0, + 0, (tile_index * sprite->tile_h)<<5, + width_factor, height_factor); +} + +z64_disp_buf_t setup_db = {}; + +void draw_setup(z64_disp_buf_t *db) { + gDPPipeSync(db->p++); + + gSPLoadGeometryMode(db->p++, 0); + gDPSetScissor(db->p++, G_SC_NON_INTERLACE, + 0, 0, Z64_SCREEN_WIDTH, Z64_SCREEN_HEIGHT); + gDPSetAlphaDither(db->p++, G_AD_DISABLE); + gDPSetColorDither(db->p++, G_CD_DISABLE); + gDPSetAlphaCompare(db->p++, G_AC_NONE); + gDPSetDepthSource(db->p++, G_ZS_PRIM); + gDPSetCombineKey(db->p++, G_CK_NONE); + gDPSetTextureConvert(db->p++, G_TC_FILT); + gDPSetTextureDetail(db->p++, G_TD_CLAMP); + gDPSetTexturePersp(db->p++, G_TP_NONE); + gDPSetTextureLOD(db->p++, G_TL_TILE); + gDPSetTextureLUT(db->p++, G_TT_NONE); + gDPPipelineMode(db->p++, G_PM_NPRIMITIVE); + + gDPSetCycleType(db->p++, G_CYC_1CYCLE); + gDPSetRenderMode(db->p++, G_RM_XLU_SURF, G_RM_XLU_SURF2); + gDPSetTextureFilter(db->p++, G_TF_BILERP); + + gSPEndDisplayList(db->p++); +} + +extern char FONT_TEXTURE; +#define font_texture_raw ((uint8_t *)&FONT_TEXTURE) + +void gfx_init() { + file_t title_static = { + NULL, 0x01A02000, 0x395C0 + }; + file_init(&title_static); + + file_t icon_item_24_static = { + NULL, 0x00846000, 0xB400 + }; + file_init(&icon_item_24_static); + + stones_sprite.buf = title_static.buf + 0x2A300; + medals_sprite.buf = title_static.buf + 0x2980; + quest_items_sprite.buf = icon_item_24_static.buf; + + int font_bytes = sprite_bytes(&font_sprite); + font_sprite.buf = heap_alloc(font_bytes); + for (int i = 0; i < font_bytes / 2; i++) { + font_sprite.buf[2*i] = (font_texture_raw[i] >> 4) | 0xF0; + font_sprite.buf[2*i + 1] = font_texture_raw[i] | 0xF0; + } + + int setup_size = 32 * sizeof(Gfx); + Gfx *setup_buf = heap_alloc(setup_size); + disp_buf_init(&setup_db, setup_buf, setup_size); + draw_setup(&setup_db); +} diff --git a/ASM/c/gfx.h b/ASM/c/gfx.h new file mode 100644 index 000000000..282c8340e --- /dev/null +++ b/ASM/c/gfx.h @@ -0,0 +1,31 @@ +#ifndef GFX_H +#define GFX_H + +#include "z64.h" + +z64_disp_buf_t setup_db; + +typedef struct { + uint8_t *buf; + uint16_t tile_w; + uint16_t tile_h; + uint16_t tile_count; + uint8_t im_fmt; + uint8_t im_siz; + uint8_t bytes_per_texel; +} sprite_t; + +sprite_t stones_sprite; +sprite_t medals_sprite; +sprite_t quest_items_sprite; +sprite_t font_sprite; + +void disp_buf_init(z64_disp_buf_t *db, Gfx *buf, int size); +void gfx_init(); + +void sprite_load(z64_disp_buf_t *db, sprite_t *sprite, + int start_tile, int tile_count); +void sprite_draw(z64_disp_buf_t *db, sprite_t *sprite, int tile_index, + int left, int top, int width, int height); + +#endif diff --git a/ASM/c/main.c b/ASM/c/main.c new file mode 100644 index 000000000..07f994df3 --- /dev/null +++ b/ASM/c/main.c @@ -0,0 +1,22 @@ +#include "dungeon_info.h" +#include "gfx.h" +#include "text.h" +#include "util.h" +#include "z64.h" + +void c_init() { + heap_init(); + gfx_init(); + text_init(); +} + +void overlay_swap(z64_disp_buf_t *db, Gfx *buf, uint32_t size) { + if (z64_game.pause_state == 6 && + z64_game.pause_screen == 0 && + !z64_game.pause_screen_changing && + z64_ctxt.input[0].raw.a) { + draw_dungeon_info(db); + } + + disp_buf_init(db, buf, size); +} diff --git a/ASM/c/text.c b/ASM/c/text.c new file mode 100644 index 000000000..6e03f933a --- /dev/null +++ b/ASM/c/text.c @@ -0,0 +1,60 @@ +#include "text.h" + +#include "gfx.h" +#include "util.h" +#include "z64.h" + +#define text_max_chars 256 +#define text_bucket_count 6 +#define text_bucket_size 18 + +typedef struct { + uint32_t c : 8; + uint32_t left : 12; + uint32_t top : 12; +} text_char_t; + +static text_char_t *text_buf = NULL; +static text_char_t *text_end = NULL; + +void text_init() { + text_buf = heap_alloc(text_max_chars * sizeof(text_char_t)); + text_end = text_buf; +} + +void text_print(char *s, int left, int top) { + char c; + while (c = *(s++)) { + if (text_end >= text_buf + text_max_chars) break; + text_end->c = c; + text_end->left = left; + text_end->top = top; + text_end++; + left += font_sprite.tile_w; + } +} + +void text_flush(z64_disp_buf_t *db) { + for (int i = 0; i < text_bucket_count; i++) { + sprite_load(db, &font_sprite, + i * text_bucket_size, text_bucket_size); + + text_char_t *text_p = text_buf; + while (text_p < text_end) { + char c = text_p->c; + int left = text_p->left; + int top = text_p->top; + text_p++; + + int bucket = (c - 32) / text_bucket_size; + if (bucket != i) continue; + + int tile_index = (c - 32) % text_bucket_size; + sprite_draw(db, &font_sprite, tile_index, + left, top, + font_sprite.tile_w, font_sprite.tile_h); + } + } + + text_end = text_buf; +} diff --git a/ASM/c/text.h b/ASM/c/text.h new file mode 100644 index 000000000..a12863e97 --- /dev/null +++ b/ASM/c/text.h @@ -0,0 +1,10 @@ +#ifndef TEXT_H +#define TEXT_H + +#include "z64.h" + +void text_init(); +void text_print(char *s, int left, int top); +void text_flush(z64_disp_buf_t *db); + +#endif diff --git a/ASM/c/util.c b/ASM/c/util.c new file mode 100644 index 000000000..874e95b21 --- /dev/null +++ b/ASM/c/util.c @@ -0,0 +1,23 @@ +#include "util.h" + +extern char C_HEAP; +char *heap_next = NULL; + +void heap_init() { + heap_next = &C_HEAP; +} + +void *heap_alloc(int bytes) { + int rem = bytes % 16; + if (rem) bytes += 16 - rem; + + void *result = heap_next; + heap_next += bytes; + return result; +} + + +void file_init(file_t *file) { + file->buf = heap_alloc(file->size); + read_file(file->buf, file->vrom_start, file->size); +} diff --git a/ASM/c/util.h b/ASM/c/util.h new file mode 100644 index 000000000..3e894271a --- /dev/null +++ b/ASM/c/util.h @@ -0,0 +1,23 @@ +#ifndef UTIL_H +#define UTIL_H + +#include + +#define array_size(a) (sizeof(a) / sizeof(a[0])) + +void heap_init(); +void *heap_alloc(int bytes); + +typedef struct { + uint8_t *buf; + uint32_t vrom_start; + uint32_t size; +} file_t; + +typedef void (*read_file_fn)(void *mem_addr, uint32_t vrom_addr, + uint32_t size); +#define read_file ((read_file_fn)0x80000DF0) + +void file_init(file_t *file); + +#endif diff --git a/ASM/c/z64.h b/ASM/c/z64.h new file mode 100644 index 000000000..d936964cd --- /dev/null +++ b/ASM/c/z64.h @@ -0,0 +1,1289 @@ +#ifndef Z64_H +#define Z64_H +#include +#include + +#ifndef Z64_VERSION +#error no z64 version specified +#endif + +#define Z64_OOT10 0x00 +#define Z64_OOT11 0x01 +#define Z64_OOT12 0x02 + +#define Z64_SCREEN_WIDTH 320 +#define Z64_SCREEN_HEIGHT 240 + +#define Z64_SEG_PHYS 0x00 +#define Z64_SEG_TITLE 0x01 +#define Z64_SEG_SCENE 0x02 +#define Z64_SEG_ROOM 0x03 +#define Z64_SEG_KEEP 0x04 +#define Z64_SEG_SKEEP 0x05 +#define Z64_SEG_OBJ 0x06 +#define Z64_SEG_ZIMG 0x0E +#define Z64_SEG_CIMG 0x0F + +#define Z64_ETAB_LENGTH 0x0614 + +typedef struct +{ + int16_t x; + int16_t y; + int16_t z; +} z64_xyz_t; + +typedef struct +{ + float x; + float y; + float z; +} z64_xyzf_t; + +typedef uint16_t z64_angle_t; +typedef struct +{ + z64_angle_t x; + z64_angle_t y; + z64_angle_t z; +} z64_rot_t; + +typedef struct +{ + /* index of z64_col_type in scene file */ + uint16_t type; + /* vertex indices, a and b are bitmasked for some reason */ + struct + { + uint16_t unk_00_ : 3; + uint16_t va : 13; + }; + struct + { + uint16_t unk_01_ : 3; + uint16_t vb : 13; + }; + uint16_t vc; + /* normal vector */ + z64_xyz_t norm; + /* plane distance from origin */ + int16_t dist; +} z64_col_poly_t; + +typedef struct +{ + struct + { + uint32_t unk_00_ : 1; + uint32_t drop : 1; /* link drops one unit into the floor */ + uint32_t special : 4; + uint32_t interaction : 5; + uint32_t unk_01_ : 3; + uint32_t behavior : 5; + uint32_t exit : 5; + uint32_t camera : 8; + } flags_1; /* 0x0000 */ + struct + { + uint32_t pad_00_ : 4; + uint32_t wall_damage : 1; + uint32_t unk_00_ : 6; + uint32_t unk_01_ : 3; + uint32_t hookshot : 1; + uint32_t echo : 6; + uint32_t unk_02_ : 5; + uint32_t terrain : 2; + uint32_t material : 4; + } flags_2; /* 0x0004 */ +} z64_col_type_t; + +typedef struct +{ + z64_xyz_t pos; + z64_xyz_t rot; + int16_t fov; + int16_t unk_00_; +} z64_camera_params_t; + +typedef struct +{ + uint16_t mode; + uint16_t unk_01_; + uint32_t seg_params; /* segment address of z64_camera_params_t */ +} z64_camera_t; + +typedef struct +{ + z64_xyz_t pos; + int16_t width; + int16_t depth; + struct + { + uint32_t unk_00_ : 12; + uint32_t active : 1; + uint32_t group : 6; /* ? */ + uint32_t unk_01_ : 5; + uint32_t camera : 8; + } flags; +} z64_col_water_t; + +typedef struct +{ + z64_xyz_t min; + z64_xyz_t max; + uint16_t n_vtx; + z64_xyz_t *vtx; + uint16_t n_poly; + z64_col_poly_t *poly; + z64_col_type_t *type; + z64_camera_t *camera; + uint16_t n_water; + z64_col_water_t *water; +} z64_col_hdr_t; + +typedef enum +{ + Z64_ITEM_NULL = -1, + Z64_ITEM_STICK, + Z64_ITEM_NUT, + Z64_ITEM_BOMB, + Z64_ITEM_BOW, + Z64_ITEM_FIRE_ARROW, + Z64_ITEM_DINS_FIRE, + Z64_ITEM_SLINGSHOT, + Z64_ITEM_FAIRY_OCARINA, + Z64_ITEM_OCARINA_OF_TIME, + Z64_ITEM_BOMBCHU, + Z64_ITEM_HOOKSHOT, + Z64_ITEM_LONGSHOT, + Z64_ITEM_ICE_ARROW, + Z64_ITEM_FARORES_WIND, + Z64_ITEM_BOOMERANG, + Z64_ITEM_LENS, + Z64_ITEM_BEANS, + Z64_ITEM_HAMMER, + Z64_ITEM_LIGHT_ARROW, + Z64_ITEM_NAYRUS_LOVE, + Z64_ITEM_BOTTLE, + Z64_ITEM_RED_POTION, + Z64_ITEM_GREEN_POTION, + Z64_ITEM_BLUE_POTION, + Z64_ITEM_FAIRY, + Z64_ITEM_FISH, + Z64_ITEM_MILK, + Z64_ITEM_LETTER, + Z64_ITEM_BLUE_FIRE, + Z64_ITEM_BUG, + Z64_ITEM_BIG_POE, + Z64_ITEM_HALF_MILK, + Z64_ITEM_POE, + Z64_ITEM_WEIRD_EGG, + Z64_ITEM_CHICKEN, + Z64_ITEM_ZELDAS_LETTER, + Z64_ITEM_KEATON_MASK, + Z64_ITEM_SKULL_MASK, + Z64_ITEM_SPOOKY_MASK, + Z64_ITEM_BUNNY_HOOD, + Z64_ITEM_GORON_MASK, + Z64_ITEM_ZORA_MASK, + Z64_ITEM_GERUDO_MASK, + Z64_ITEM_MASK_OF_TRUTH, + Z64_ITEM_SOLD_OUT, + Z64_ITEM_POCKET_EGG, + Z64_ITEM_POCKET_CUCCO, + Z64_ITEM_COJIRO, + Z64_ITEM_ODD_MUSHROOM, + Z64_ITEM_ODD_POTION, + Z64_ITEM_POACHERS_SAW, + Z64_ITEM_BROKEN_GORONS_SWORD, + Z64_ITEM_PRESCRIPTION, + Z64_ITEM_EYEBALL_FROG, + Z64_ITEM_EYE_DROPS, + Z64_ITEM_CLAIM_CHECK, + Z64_ITEM_BOW_FIRE_ARROW, + Z64_ITEM_BOW_ICE_ARROW, + Z64_ITEM_BOW_LIGHT_ARROW, + Z64_ITEM_KOKIRI_SWORD, + Z64_ITEM_MASTER_SWORD, + Z64_ITEM_BIGGORON_SWORD, + Z64_ITEM_DEKU_SHIELD, + Z64_ITEM_HYLIAN_SHIELD, + Z64_ITEM_MIRROR_SHIELD, + Z64_ITEM_KOKIRI_TUNIC, + Z64_ITEM_GORON_TUNIC, + Z64_ITEM_ZORA_TUNIC, + Z64_ITEM_KOKIRI_BOOTS, + Z64_ITEM_IRON_BOOTS, + Z64_ITEM_HOVER_BOOTS, + Z64_ITEM_BULLET_BAG_30, + Z64_ITEM_BULLET_BAG_40, + Z64_ITEM_BULLET_BAG_50, + Z64_ITEM_QUIVER_30, + Z64_ITEM_QUIVER_40, + Z64_ITEM_QUIVER_50, + Z64_ITEM_BOMB_BAG_20, + Z64_ITEM_BOMB_BAG_30, + Z64_ITEM_BOMB_BAG_40, + Z64_ITEM_GORONS_BRACELET, + Z64_ITEM_SILVER_GAUNTLETS, + Z64_ITEM_GOLDEN_GAUNTLETS, + Z64_ITEM_SILVER_SCALE, + Z64_ITEM_GOLDEN_SCALE, + Z64_ITEM_BROKEN_GIANTS_KNIFE, + Z64_ITEM_ADULTS_WALLET, + Z64_ITEM_GIANTS_WALLET, + Z64_ITEM_DEKU_SEEDS, + Z64_ITEM_FISHING_POLE, + Z64_ITEM_MINUET, + Z64_ITEM_BOLERO, + Z64_ITEM_SERENADE, + Z64_ITEM_REQUIEM, + Z64_ITEM_NOCTURNE, + Z64_ITEM_PRELUDE, + Z64_ITEM_ZELDAS_LULLABY, + Z64_ITEM_EPONAS_SONG, + Z64_ITEM_SARIAS_SONG, + Z64_ITEM_SUNS_SONG, + Z64_ITEM_SONG_OF_TIME, + Z64_ITEM_SONG_OF_STORMS, + Z64_ITEM_FOREST_MEDALLION, + Z64_ITEM_FIRE_MEDALLION, + Z64_ITEM_WATER_MEDALLION, + Z64_ITEM_SPIRIT_MEDALLION, + Z64_ITEM_SHADOW_MEDALLION, + Z64_ITEM_LIGHT_MEDALLION, + Z64_ITEM_KOKIRIS_EMERALD, + Z64_ITEM_GORONS_RUBY, + Z64_ITEM_ZORAS_SAPPHIRE, + Z64_ITEM_STONE_OF_AGONY, + Z64_ITEM_GERUDOS_CARD, + Z64_ITEM_GOLD_SKULLTULA, + Z64_ITEM_HEART_CONTAINER, + Z64_ITEM_PIECE_OF_HEART, + Z64_ITEM_BOSS_KEY, + Z64_ITEM_COMPASS, + Z64_ITEM_DUNGEON_MAP, + Z64_ITEM_SMALL_KEY, +} z64_item_t; + +typedef enum +{ + Z64_SLOT_STICK, + Z64_SLOT_NUT, + Z64_SLOT_BOMB, + Z64_SLOT_BOW, + Z64_SLOT_FIRE_ARROW, + Z64_SLOT_DINS_FIRE, + Z64_SLOT_SLINGSHOT, + Z64_SLOT_OCARINA, + Z64_SLOT_BOMBCHU, + Z64_SLOT_HOOKSHOT, + Z64_SLOT_ICE_ARROW, + Z64_SLOT_FARORES_WIND, + Z64_SLOT_BOOMERANG, + Z64_SLOT_LENS, + Z64_SLOT_BEANS, + Z64_SLOT_HAMMER, + Z64_SLOT_LIGHT_ARROW, + Z64_SLOT_NAYRUS_LOVE, + Z64_SLOT_BOTTLE_1, + Z64_SLOT_BOTTLE_2, + Z64_SLOT_BOTTLE_3, + Z64_SLOT_BOTTLE_4, + Z64_SLOT_ADULT_TRADE, + Z64_SLOT_CHILD_TRADE, +} z64_slot_t; + +typedef enum +{ + Z64_ITEMBTN_B, + Z64_ITEMBTN_CL, + Z64_ITEMBTN_CD, + Z64_ITEMBTN_CR, +} z64_itembtn_t; + +typedef struct +{ + char unk_00_[0x006E]; /* 0x0000 */ + int16_t run_speed_limit; /* 0x006E */ + char unk_01_[0x0004]; /* 0x0070 */ + int16_t run_speed_max_anim; /* 0x0074 */ + char unk_02_[0x0026]; /* 0x0076 */ + int16_t gravity; /* 0x009C */ + char unk_03_[0x0072]; /* 0x009E */ + uint16_t update_rate; /* 0x0110 */ + char unk_04_[0x0022]; /* 0x0112 */ + int16_t override_aspect; /* 0x0134 */ + uint16_t aspect_width; /* 0x0136 */ + uint16_t aspect_height; /* 0x0138 */ + char unk_05_[0x0050]; /* 0x013A */ + int16_t game_playing; /* 0x018A */ + char unk_06_[0x03B8]; /* 0x018C */ + uint16_t c_up_icon_x; /* 0x0544 */ + uint16_t c_up_icon_y; /* 0x0546 */ + char unk_07_[0x021C]; /* 0x0548 */ + uint16_t game_freeze; /* 0x0764 */ + char unk_08_[0x002E]; /* 0x0766 */ + uint16_t magic_fill_r; /* 0x0794 */ + uint16_t magic_fill_g; /* 0x0796 */ + uint16_t magic_fill_b; /* 0x0798 */ + char unk_09_[0x004A]; /* 0x079A */ + uint16_t c_button_r; /* 0x07E4 */ + uint16_t c_button_g; /* 0x07E6 */ + uint16_t c_button_b; /* 0x07E8 */ + uint16_t b_button_r; /* 0x07EA */ + uint16_t b_button_g; /* 0x07EC */ + uint16_t b_button_b; /* 0x07EE */ + char unk_0A_[0x0004]; /* 0x07F0 */ + qs510_t start_icon_dd; /* 0x07F4 */ + int16_t start_icon_scale; /* 0x07F6 */ + char unk_0B_[0x0006]; /* 0x07F8 */ + uint16_t start_icon_y; /* 0x07FE */ + char unk_0C_[0x0002]; /* 0x0800 */ + uint16_t start_icon_x; /* 0x0802 */ + char unk_0D_[0x000C]; /* 0x0804 */ + uint16_t c_up_button_x; /* 0x0810 */ + uint16_t c_up_button_y; /* 0x0812 */ + char unk_0E_[0x0008]; /* 0x0814 */ + uint16_t start_button_x; /* 0x081C */ + uint16_t start_button_y; /* 0x081E */ + uint16_t item_button_x[4]; /* 0x0820 */ + uint16_t item_button_y[4]; /* 0x0828 */ + qs510_t item_button_dd[4]; /* 0x0830 */ + uint16_t item_icon_x[4]; /* 0x0838 */ + uint16_t item_icon_y[4]; /* 0x0840 */ + qs510_t item_icon_dd[4]; /* 0x0848 */ + char unk_0F_[0x0264]; /* 0x0850 */ + uint16_t a_button_y; /* 0x0AB4 */ + uint16_t a_button_x; /* 0x0AB6 */ + char unk_10_[0x0002]; /* 0x0AB8 */ + uint16_t a_button_icon_y; /* 0x0ABA */ + uint16_t a_button_icon_x; /* 0x0ABC */ + char unk_11_[0x0002]; /* 0x0ABE */ + uint16_t a_button_r; /* 0x0AC0 */ + uint16_t a_button_g; /* 0x0AC2 */ + uint16_t a_button_b; /* 0x0AC4 */ + char unk_12_[0x0030]; /* 0x0AC6 */ + uint16_t magic_bar_x; /* 0x0AF6 */ + uint16_t magic_bar_y; /* 0x0AF8 */ + uint16_t magic_fill_x; /* 0x0AFA */ + char unk_13_[0x02D6]; /* 0x0AFC */ + int16_t minimap_disabled; /* 0x0DD2 */ + char unk_14_[0x01C0]; /* 0x0DD4 */ + uint16_t item_ammo_x[4]; /* 0x0F94 */ + uint16_t item_ammo_y[4]; /* 0x0F9C */ + char unk_15_[0x0008]; /* 0x0FA4 */ + uint16_t item_icon_space[4]; /* 0x0FAC */ + uint16_t item_button_space[4]; /* 0x0FB4 */ + /* 0x0FBC */ +} z64_gameinfo_t; + +typedef struct +{ + int32_t entrance_index; /* 0x0000 */ + int32_t link_age; /* 0x0004 */ + char unk_00_[0x0002]; /* 0x0008 */ + uint16_t cutscene_index; /* 0x000A */ + uint16_t day_time; /* 0x000C */ + char unk_01_[0x0002]; /* 0x000E */ + int32_t night_flag; /* 0x0010 */ + char unk_02_[0x0008]; /* 0x0014 */ + char id[6]; /* 0x001C */ + int16_t deaths; /* 0x0022 */ + char file_name[0x08]; /* 0x0024 */ + int16_t n64dd_flag; /* 0x002C */ + int16_t energy_capacity; /* 0x002E */ + int16_t energy; /* 0x0030 */ + uint8_t magic_capacity_set; /* 0x0032 */ + uint8_t magic; /* 0x0033 */ + uint16_t rupees; /* 0x0034 */ + uint16_t bgs_hits_left; /* 0x0036 */ + uint16_t navi_timer; /* 0x0038 */ + uint8_t magic_acquired; /* 0x003A */ + char unk_03_; /* 0x003B */ + uint8_t magic_capacity; /* 0x003C */ + int8_t double_defense; /* 0x003D */ + int8_t bgs_flag; /* 0x003E */ + char unk_05_; /* 0x003F */ + int8_t child_button_items[4]; /* 0x0040 */ + int8_t child_c_button_slots[3]; /* 0x0044 */ + union + { + uint16_t child_equips; /* 0x0048 */ + struct + { + uint16_t child_equip_boots : 4; + uint16_t child_equip_tunic : 4; + uint16_t child_equip_shield : 4; + uint16_t child_equip_sword : 4; + }; + }; + int8_t adult_button_items[4]; /* 0x004A */ + int8_t adult_c_button_slots[3]; /* 0x004E */ + union + { + uint16_t adult_equips; /* 0x0052 */ + struct + { + uint16_t adult_equip_boots : 4; + uint16_t adult_equip_tunic : 4; + uint16_t adult_equip_shield : 4; + uint16_t adult_equip_sword : 4; + }; + }; + char unk_06_[0x0012]; /* 0x0054 */ + int16_t scene_index; /* 0x0066 */ + int8_t button_items[4]; /* 0x0068 */ + int8_t c_button_slots[3]; /* 0x006C */ + union + { + uint16_t equips; /* 0x0070 */ + struct + { + uint16_t equip_boots : 4; + uint16_t equip_tunic : 4; + uint16_t equip_shield : 4; + uint16_t equip_sword : 4; + }; + }; + char unk_07_[0x0002]; /* 0x0072 */ + int8_t items[24]; /* 0x0074 */ + int8_t ammo[15]; /* 0x008C */ + uint8_t magic_beans_sold; /* 0x009B */ + union + { + uint16_t equipment; /* 0x009C */ + struct + { + uint16_t : 1; + uint16_t hover_boots : 1; + uint16_t iron_boots : 1; + uint16_t kokiri_boots : 1; + uint16_t : 1; + uint16_t zora_tunic : 1; + uint16_t goron_tunic : 1; + uint16_t kokiri_tunic : 1; + uint16_t : 1; + uint16_t mirror_shield : 1; + uint16_t hylian_shield : 1; + uint16_t deku_shield : 1; + uint16_t broken_giants_knife : 1; + uint16_t giants_knife : 1; + uint16_t master_sword : 1; + uint16_t kokiri_sword : 1; + }; + }; + char unk_08_[0x0002]; /* 0x009E */ + union + { + uint32_t equipment_items; /* 0x00A0 */ + struct + { + uint32_t : 9; + uint32_t nut_upgrade : 3; + uint32_t stick_upgrade : 3; + uint32_t bullet_bag : 3; + uint32_t wallet : 2; + uint32_t diving_upgrade : 3; + uint32_t strength_upgrade : 3; + uint32_t bomb_bag : 3; + uint32_t quiver : 3; + }; + }; + union + { + uint32_t quest_items; /* 0x00A4 */ + struct + { + uint32_t heart_pieces : 8; + uint32_t gold_skulltula : 1; + uint32_t gerudos_card : 1; + uint32_t stone_of_agony : 1; + uint32_t zoras_sapphire : 1; + uint32_t gorons_ruby : 1; + uint32_t kokiris_emerald : 1; + uint32_t song_of_storms : 1; + uint32_t song_of_time : 1; + uint32_t suns_song : 1; + uint32_t sarias_song : 1; + uint32_t eponas_song : 1; + uint32_t zeldas_lullaby : 1; + uint32_t prelude_of_light : 1; + uint32_t nocturne_of_shadow : 1; + uint32_t requiem_of_spirit : 1; + uint32_t serenade_of_water : 1; + uint32_t bolero_of_fire : 1; + uint32_t minuet_of_forest : 1; + uint32_t light_medallion : 1; + uint32_t shadow_medallion : 1; + uint32_t spirit_medallion : 1; + uint32_t water_medallion : 1; + uint32_t fire_medallion : 1; + uint32_t forest_medallion : 1; + }; + }; + union + { + uint8_t items; + struct + { + uint8_t : 5; + uint8_t map : 1; + uint8_t compass : 1; + uint8_t boss_key : 1; + }; + } dungeon_items[20]; /* 0x00A8 */ + int8_t dungeon_keys[19]; /* 0x00BC */ + uint8_t defense_hearts; /* 0x00CF */ + int16_t gs_tokens; /* 0x00D0 */ + char unk_09_[0x0002]; /* 0x00D2 */ + struct + { + uint32_t chest; + uint32_t swch; + uint32_t clear; + uint32_t collect; + uint32_t unk_00_; + uint32_t rooms_1; + uint32_t rooms_2; + } scene_flags[101]; /* 0x00D4 */ + char unk_0A_[0x0284]; /* 0x0BE0 */ + z64_xyzf_t fw_pos; /* 0x0E64 */ + z64_angle_t fw_yaw; /* 0x0E70 */ + char unk_0B_[0x0008]; /* 0x0E72 */ + uint16_t fw_scene_index; /* 0x0E7A */ + uint32_t fw_room_index; /* 0x0E7C */ + int32_t fw_set; /* 0x0E80 */ + char unk_0C_[0x0018]; /* 0x0E84 */ + uint8_t gs_flags[56]; /* 0x0E9C */ + uint16_t event_chk_inf[14]; /* 0x0ED4 */ + uint16_t item_get_inf[4]; /* 0x0EF0 */ + uint16_t inf_table[30]; /* 0x0EF8 */ + char unk_0D_[0x041E]; /* 0x0F34 */ + uint16_t checksum; /* 0x1352 */ + char unk_0E_[0x0003]; /* 0x1354 */ + int8_t file_index; /* 0x1357 */ + char unk_0F_[0x0004]; /* 0x1358 */ + int32_t interface_flag; /* 0x135C */ + uint32_t scene_setup_index; /* 0x1360 */ + int32_t void_flag; /* 0x1364 */ + z64_xyzf_t void_pos; /* 0x1368 */ + z64_angle_t void_yaw; /* 0x1374 */ + int16_t void_var; /* 0x1376 */ + int16_t void_entrance; /* 0x1378 */ + int8_t void_room_index; /* 0x137A */ + int8_t unk_10_; /* 0x137B */ + uint32_t temp_swch_flags; /* 0x137C */ + uint32_t temp_collect_flags; /* 0x1380 */ + char unk_11_[0x0044]; /* 0x1384 */ + uint16_t nayrus_love_timer; /* 0x13C8 */ + char unk_12_[0x0004]; /* 0x13CA */ + int16_t timer_1_state; /* 0x13CE */ + int16_t timer_1_value; /* 0x13D0 */ + int16_t timer_2_state; /* 0x13D2 */ + int16_t timer_2_value; /* 0x13D4 */ + char unk_13_[0x000A]; /* 0x13D6 */ + int8_t seq_index; /* 0x13E0 */ + int8_t night_sfx; /* 0x13E1 */ + char unk_14_[0x0018]; /* 0x13E2 */ + uint16_t event_inf[4]; /* 0x13FA */ + char unk_15_[0x0001]; /* 0x1402 */ + uint8_t minimap_index; /* 0x1403 */ + int16_t minigame_state; /* 0x1404 */ + char unk_16_[0x0003]; /* 0x1406 */ + uint8_t language; /* 0x1409 */ + char unk_17_[0x0002]; /* 0x140A */ + uint8_t z_targeting; /* 0x140C */ + char unk_18_[0x0001]; /* 0x140D */ + uint16_t disable_music_flag; /* 0x140E */ + char unk_19_[0x0020]; /* 0x1410 */ + z64_gameinfo_t *gameinfo; /* 0x1430 */ + char unk_1A_[0x001C]; /* 0x1434 */ + /* 0x1450 */ +} z64_file_t; + +typedef struct +{ + uint32_t seg[16]; +} z64_stab_t; + +typedef struct +{ + uint8_t scene_index; + uint8_t entrance_index; + union + { + uint16_t variable; + struct + { + uint16_t transition_out : 7; + uint16_t transition_in : 7; + uint16_t unk_00_ : 1; + uint16_t continue_music : 1; + }; + }; +} z64_entrance_table_t; + +typedef struct +{ + uint32_t scene_vrom_start; + uint32_t scene_vrom_end; + uint32_t title_vrom_start; + uint32_t title_vrom_end; + char unk_00_; + uint8_t scene_config; + char unk_01_; + char padding_00_; +} z64_scene_table_t; + +typedef struct +{ + uint32_t size; /* 0x0000 */ + Gfx *buf; /* 0x0004 */ + Gfx *p; /* 0x0008 */ + Gfx *d; /* 0x000C */ +} z64_disp_buf_t; + +typedef struct +{ + Gfx *poly_opa_w; /* 0x0000 */ + Gfx *poly_xlu_w; /* 0x0004 */ + char unk_00_[0x0008]; /* 0x0008 */ + Gfx *overlay_w; /* 0x0010 */ + char unk_01_[0x00A4]; /* 0x0014 */ + Gfx *work_c; /* 0x00B8 */ + uint32_t work_c_size; /* 0x00BC */ + char unk_02_[0x00F0]; /* 0x00C0 */ + Gfx *work_w; /* 0x01B0 */ + z64_disp_buf_t work; /* 0x01B4 */ + char unk_03_[0x00E4]; /* 0x01C4 */ + z64_disp_buf_t overlay; /* 0x02A8 */ + z64_disp_buf_t poly_opa; /* 0x02B8 */ + z64_disp_buf_t poly_xlu; /* 0x02C8 */ + uint32_t frame_count_1; /* 0x02D8 */ + void *frame_buffer; /* 0x02DC */ + char unk_04_[0x0008]; /* 0x02E0 */ + uint32_t frame_count_2; /* 0x02E8 */ + /* 0x02EC */ +} z64_gfx_t; + +typedef struct +{ + union + { + struct + { + uint16_t a : 1; + uint16_t b : 1; + uint16_t z : 1; + uint16_t s : 1; + uint16_t du : 1; + uint16_t dd : 1; + uint16_t dl : 1; + uint16_t dr : 1; + uint16_t : 2; + uint16_t l : 1; + uint16_t r : 1; + uint16_t cu : 1; + uint16_t cd : 1; + uint16_t cl : 1; + uint16_t cr : 1; + }; + uint16_t pad; + }; + int8_t x; + int8_t y; +} z64_controller_t; + +typedef struct z64_actor_s z64_actor_t; +struct z64_actor_s +{ + int16_t actor_id; /* 0x0000 */ + uint8_t actor_type; /* 0x0002 */ + int8_t room_index; /* 0x0003 */ + uint32_t flags; /* 0x0004 */ + z64_xyzf_t pos_1; /* 0x0008 */ + z64_rot_t rot_init; /* 0x0014 */ + char unk_01_[0x0002]; /* 0x001A */ + uint16_t variable; /* 0x001C */ + uint8_t alloc_index; /* 0x001E */ + char unk_02_; /* 0x001F */ + uint16_t sound_effect; /* 0x0020 */ + char unk_03_[0x0002]; /* 0x0022 */ + z64_xyzf_t pos_2; /* 0x0024 */ + char unk_04_[0x0002]; /* 0x0030 */ + uint16_t xz_dir; /* 0x0032 */ + char unk_05_[0x0004]; /* 0x0034 */ + z64_xyzf_t pos_3; /* 0x0038 */ + z64_rot_t rot_1; /* 0x0044 */ + char unk_06_[0x0002]; /* 0x004A */ + float unk_07_; /* 0x004C */ + z64_xyzf_t scale; /* 0x0050 */ + z64_xyzf_t vel_1; /* 0x005C */ + float xz_speed; /* 0x0068 */ + float gravity; /* 0x006C */ + float min_vel_y; /* 0x0070 */ + void *unk_08_; /* 0x0074 */ + z64_col_poly_t *floor_poly; /* 0x0078 */ + char unk_0A_[0x001C]; /* 0x007C */ + void *damage_table; /* 0x0098 */ + z64_xyzf_t vel_2; /* 0x009C */ + char unk_0B_[0x0006]; /* 0x00A8 */ + int16_t health; /* 0x00AE */ + char unk_0C_; /* 0x00B0 */ + uint8_t damage_effect; /* 0x00B1 */ + char unk_0D_[0x0002]; /* 0x00B2 */ + z64_rot_t rot_2; /* 0x00B4 */ + char unk_0E_[0x0046]; /* 0x00BA */ + z64_xyzf_t pos_4; /* 0x0100 */ + uint16_t unk_0F_; /* 0x010C */ + uint16_t text_id; /* 0x010E */ + int16_t frozen; /* 0x0110 */ + char unk_10_[0x0003]; /* 0x0112 */ + uint8_t active; /* 0x0115 */ + char unk_11_[0x0002]; /* 0x0116 */ + z64_actor_t *unk_12_; /* 0x0118 */ + char unk_13_[0x0004]; /* 0x011C */ + z64_actor_t *prev; /* 0x0120 */ + z64_actor_t *next; /* 0x0124 */ + void *ctor; /* 0x0128 */ + void *dtor; /* 0x012C */ + void *main_proc; /* 0x0130 */ + void *draw_proc; /* 0x0134 */ + void *code_entry; /* 0x0138 */ + /* 0x013C */ +}; + +typedef struct +{ + z64_actor_t common; /* 0x0000 */ + char unk_00_[0x02F8]; /* 0x013C */ + uint8_t action; /* 0x0434 */ + char unk_01_[0x0237]; /* 0x0435 */ + uint32_t state_flags_1; /* 0x066C */ + uint32_t state_flags_2; /* 0x0670 */ + char unk_02_[0x01B4]; /* 0x0674 */ + float linear_vel; /* 0x0828 */ + char unk_03_[0x0002]; /* 0x082C */ + uint16_t target_yaw; /* 0x082E */ + char unk_04_[0x0003]; /* 0x0830 */ + int8_t sword_state; /* 0x0833 */ + char unk_05_[0x0050]; /* 0x0834 */ + int16_t drop_y; /* 0x0884 */ + int16_t drop_distance; /* 0x0886 */ + /* 0x0888 */ +} z64_link_t; + +typedef struct +{ + z64_controller_t raw; + uint16_t unk_00_; + z64_controller_t raw_prev; + uint16_t unk_01_; + uint16_t pad_pressed; + int8_t x_diff; + int8_t y_diff; + char unk_02_[0x0002]; + uint16_t pad_released; + int8_t adjusted_x; + int8_t adjusted_y; + char unk_03_[0x0002]; +} z64_input_t; + +/* context base */ +typedef struct +{ + z64_gfx_t *gfx; /* 0x0000 */ + void *state_main; /* 0x0004 */ + void *state_dtor; /* 0x0008 */ + void *next_ctor; /* 0x000C */ + uint32_t next_size; /* 0x0010 */ + z64_input_t input[4]; /* 0x0014 */ + uint32_t state_heap_size; /* 0x0074 */ + void *state_heap; /* 0x0078 */ + void *heap_start; /* 0x007C */ + void *heap_end; /* 0x0080 */ + void *state_heap_node; /* 0x0084 */ + char unk_00_[0x0010]; /* 0x0088 */ + int32_t state_continue; /* 0x0098 */ + int32_t state_frames; /* 0x009C */ + uint32_t unk_01_; /* 0x00A0 */ + /* 0x00A4 */ +} z64_ctxt_t; + +typedef struct +{ + /* file loading params */ + uint32_t vrom_addr; + void *dram_addr; + uint32_t size; + /* unknown, seem to be unused */ + void *unk_00_; + uint32_t unk_01_; + uint32_t unk_02_; + /* completion notification params */ + OSMesgQueue *notify_queue; + OSMesg notify_message; +} z64_getfile_t; + +/* object structs */ +typedef struct +{ + int16_t id; + void *data; + z64_getfile_t getfile; + OSMesgQueue load_mq; + OSMesg load_m; +} z64_mem_obj_t; + +typedef struct +{ + void *obj_space_start; + void *obj_space_end; + uint8_t n_objects; + char unk_00_; + uint8_t keep_index; + uint8_t skeep_index; + z64_mem_obj_t objects[19]; +} z64_obj_ctxt_t; + +typedef struct +{ + uint32_t vrom_start; + uint32_t vrom_end; +} z64_object_table_t; + +/* lighting structs */ +typedef struct +{ + int8_t dir[3]; + uint8_t col[3]; +} z64_light1_t; + +typedef struct +{ + int16_t x; + int16_t y; + int16_t z; + uint8_t col[3]; + int16_t intensity; +} z64_light2_t; + +typedef union +{ + z64_light1_t light1; + z64_light2_t light2; +} z64_lightn_t; + +typedef struct +{ + uint8_t type; + z64_lightn_t lightn; +} z64_light_t; + +typedef struct z64_light_node_s z64_light_node_t; +struct z64_light_node_s +{ + z64_light_t *light; + z64_light_node_t *prev; + z64_light_node_t *next; +}; + +typedef struct +{ + z64_light_node_t *light_list; + uint8_t ambient[3]; + uint8_t fog[3]; + int16_t fog_position; + int16_t draw_distance; +} z64_lighting_t; + +typedef struct +{ + int8_t numlights; + Lightsn lites; +} z64_gbi_lights_t; + +typedef void (*z64_light_handler_t)(z64_gbi_lights_t*, z64_lightn_t*, + z64_actor_t*); + +/* game context */ +typedef struct +{ + z64_ctxt_t common; /* 0x00000 */ + uint16_t scene_index; /* 0x000A4 */ + char unk_00_[0x001A]; /* 0x000A6 */ + uint32_t screen_top; /* 0x000C0 */ + uint32_t screen_bottom; /* 0x000C4 */ + uint32_t screen_left; /* 0x000C8 */ + uint32_t screen_right; /* 0x000CC */ + float camera_distance; /* 0x000D0 */ + float fog_distance; /* 0x000D4 */ + float z_distance; /* 0x000D8 */ + float unk_01_; /* 0x000DC */ + char unk_02_[0x0190]; /* 0x000E0 */ + z64_actor_t *camera_focus; /* 0x00270 */ + char unk_03_[0x00AE]; /* 0x00274 */ + uint16_t camera_mode; /* 0x00322 */ + char unk_04_[0x001A]; /* 0x00324 */ + uint16_t camera_flag_1; /* 0x0033E */ + char unk_05_[0x016C]; /* 0x00340 */ + int16_t event_flag; /* 0x004AC */ + char unk_06_[0x02FA]; /* 0x004AE */ + z64_lighting_t lighting; /* 0x007A8 */ + char unk_07_[0x0008]; /* 0x007B8 */ + z64_col_hdr_t *col_hdr; /* 0x007C0 */ + char unk_08_[0x1460]; /* 0x007C4 */ + char actor_ctxt[0x0008]; /* 0x01C24 */ + uint8_t n_actors_loaded; /* 0x01C2C */ + char unk_09_[0x0003]; /* 0x01C2D */ + struct + { + uint32_t length; + z64_actor_t *first; + } actor_list[12]; /* 0x01C30 */ + char unk_0A_[0x0038]; /* 0x01C90 */ + z64_actor_t *arrow_actor; /* 0x01CC8 */ + z64_actor_t *target_actor; /* 0x01CCC */ + char unk_0B_[0x0058]; /* 0x01CD0 */ + uint32_t swch_flags; /* 0x01D28 */ + uint32_t temp_swch_flags; /* 0x01D2C */ + uint32_t unk_flags_0; /* 0x01D30 */ + uint32_t unk_flags_1; /* 0x01D34 */ + uint32_t chest_flags; /* 0x01D38 */ + uint32_t clear_flags; /* 0x01D3C */ + uint32_t temp_clear_flags; /* 0x01D40 */ + uint32_t collect_flags; /* 0x01D44 */ + uint32_t temp_collect_flags; /* 0x01D48 */ + void *title_card_texture; /* 0x01D4C */ + char unk_0C_[0x0007]; /* 0x01D50 */ + uint8_t title_card_delay; /* 0x01D57 */ + char unk_0D_[0x0010]; /* 0x01D58 */ + void *cutscene_ptr; /* 0x01D68 */ + int8_t cutscene_state; /* 0x01D6C */ + char unk_0E_[0xE66F]; /* 0x01D6D */ + uint8_t textbox_state_1; /* 0x103DC */ + char unk_0F_[0x00DF]; /* 0x103DD */ + uint8_t textbox_state_2; /* 0x104BC */ + char unk_10_[0x0002]; /* 0x104BD */ + uint8_t textbox_state_3; /* 0x104BF */ + char unk_11_[0x0292]; /* 0x104C0 */ + struct + { + uint8_t unk_00_; + uint8_t b_button; + uint8_t unk_01_; + uint8_t bottles; + uint8_t trade_items; + uint8_t hookshot; + uint8_t ocarina; + uint8_t warp_songs; + uint8_t suns_song; + uint8_t farores_wind; + uint8_t dfnl; + uint8_t all; + } restriction_flags; /* 0x10752 */ + char unk_12_[0x01D6]; /* 0x1075E */ + uint16_t pause_state; /* 0x10934 */ + char unk_13_[0x000E]; /* 0x10936 */ + uint16_t pause_screen_changing; /* 0x10944 */ + uint16_t pause_screen_prev; /* 0x10946 */ + uint16_t pause_screen; /* 0x10948 */ + char unk_14_[0x002E]; /* 0x1094A */ + int16_t item_screen_cursor; /* 0x10978 */ + char unk_15_[0x0002]; /* 0x1097A */ + int16_t quest_screen_cursor; /* 0x1097C */ + int16_t equip_screen_cursor; /* 0x1097E */ + int16_t map_screen_cursor; /* 0x10980 */ + int16_t item_screen_x; /* 0x10982 */ + char unk_16_[0x0004]; /* 0x10984 */ + int16_t equipment_screen_x; /* 0x10988 */ + char unk_17_[0x0002]; /* 0x1098A */ + int16_t item_screen_y; /* 0x1098C */ + char unk_18_[0x0004]; /* 0x1099E */ + int16_t equipment_screen_y; /* 0x10992 */ + char unk_19_[0x0004]; /* 0x10994 */ + int16_t pause_screen_cursor; /* 0x10998 */ + char unk_1A_[0x0002]; /* 0x1099A */ + int16_t pause_screen_item; /* 0x1099C */ + int16_t item_screen_item; /* 0x1099E */ + int16_t map_screen_item; /* 0x109A0 */ + int16_t quest_screen_item; /* 0x109A2 */ + int16_t equip_screen_item; /* 0x109A4 */ + char unk_1B_[0x0004]; /* 0x109A6 */ + int16_t quest_screen_hilite; /* 0x109AA */ + char unk_1C_[0x0018]; /* 0x109AC */ + int16_t quest_screen_song; /* 0x109C4 */ + char unk_1D_[0x0DDE]; /* 0x109C6 */ + z64_obj_ctxt_t obj_ctxt; /* 0x117A4 */ + int8_t room_index; /* 0x11CBC */ + char unk_1E_[0x000B]; /* 0x11CBD */ + void *room_ptr; /* 0x11CC8 */ + char unk_1F_[0x0118]; /* 0x11CCC */ + uint32_t gameplay_frames; /* 0x11DE4 */ + uint8_t link_age; /* 0x11DE8 */ + char unk_20_; /* 0x11DE9 */ + uint8_t spawn_index; /* 0x11DEA */ + uint8_t n_map_actors; /* 0x11DEB */ + uint8_t n_rooms; /* 0x11DEC */ + char unk_21_[0x000B]; /* 0x11DED */ + void *map_actor_list; /* 0x11DF8 */ + char unk_22_[0x0008]; /* 0x11DFC */ + void *scene_exit_list; /* 0x11E04 */ + char unk_23_[0x000C]; /* 0x11E08 */ + uint8_t skybox_type; /* 0x11E14 */ + int8_t scene_load_flag; /* 0x11E15 */ + char unk_24_[0x0004]; /* 0x11E16 */ + int16_t entrance_index; /* 0x11E1A */ + char unk_25_[0x0042]; /* 0x11E1C */ + uint8_t fadeout_transition; /* 0x11E5E */ + /* 0x11E5F */ +} z64_game_t; + +#if Z64_VERSION == Z64_OOT10 + +/* dram addresses */ +#define z64_osSendMesg_addr 0x80001E20 +#define z64_osRecvMesg_addr 0x80002030 +#define z64_osCreateMesgQueue_addr 0x80004220 +#define z64_file_mq_addr 0x80007D40 +#define z64_vi_counter_addr 0x80009E8C +#define z64_DrawActors_addr 0x80024AB4 +#define z64_DeleteActor_addr 0x80024FE0 +#define z64_SpawnActor_addr 0x80025110 +#define z64_minimap_disable_1_addr 0x8006CD50 +#define z64_minimap_disable_2_addr 0x8006D4E4 +#define z64_SwitchAgeEquips_addr 0x8006F804 +#define z64_UpdateItemButton_addr 0x8006FB50 +#define z64_UpdateEquipment_addr 0x80079764 +#define z64_LoadRoom_addr 0x80080A3C +#define z64_UnloadRoom_addr 0x80080C98 +#define z64_Io_addr 0x80091474 +#define z64_entrance_offset_hook_addr 0x8009AA44 +#define z64_frame_update_func_addr 0x8009AF1C +#define z64_frame_update_call_addr 0x8009CAE8 +#define z64_disp_swap_1_addr 0x800A1198 +#define z64_disp_swap_2_addr 0x800A11B0 +#define z64_disp_swap_3_addr 0x800A11C8 +#define z64_disp_swap_4_addr 0x800A11E4 +#define z64_frame_input_func_addr 0x800A0BA0 +#define z64_main_hook_addr 0x800A0C3C +#define z64_frame_input_call_addr 0x800A16AC +#define gspF3DEX2_NoN_fifoTextStart 0x800E3F70 +#define z64_day_speed_addr 0x800F1650 +#define z64_light_handlers_addr 0x800F1B40 +#define z64_object_table_addr 0x800F8FF8 +#define z64_entrance_table_addr 0x800F9C90 +#define z64_scene_table_addr 0x800FB4E0 +#define z64_scene_config_table_addr 0x800FBD18 +#define z64_seq_pos_addr 0x801043B0 +#define gspF3DEX2_NoN_fifoDataStart 0x801145C0 +#define z64_file_addr 0x8011A5D0 +#define z64_input_direct_addr 0x8011D730 +#define z64_stab_addr 0x80120C38 +#define z64_seq_buf_addr 0x80124800 +#define z64_ctxt_addr 0x801C84A0 +#define z64_link_addr 0x801DAA30 + +/* rom addresses */ +#define z64_icon_item_static_vaddr 0x007BD000 +#define z64_icon_item_static_vsize 0x000888A0 +#define z64_icon_item_24_static_vaddr 0x00846000 +#define z64_icon_item_24_static_vsize 0x0000B400 +#define z64_nes_font_static_vaddr 0x00928000 +#define z64_nes_font_static_vsize 0x00004580 +#define z64_parameter_static_vaddr 0x01A3C000 +#define z64_parameter_static_vsize 0x00003B00 + +/* context info */ +#define z64_ctxt_filemenu_ctor 0x80812394 +#define z64_ctxt_filemenu_size 0x0001CAD0 +#define z64_ctxt_game_ctor 0x8009A750 +#define z64_ctxt_game_size 0x00012518 + +#elif Z64_VERSION == Z64_OOT11 + +/* dram ddresses */ +#define z64_osSendMesg_addr 0x80001E20 +#define z64_osRecvMesg_addr 0x80002030 +#define z64_osCreateMesgQueue_addr 0x80004220 +#define z64_file_mq_addr 0x80007D40 +#define z64_vi_counter_addr 0x80009E8C +#define z64_DrawActors_addr 0x80024AB4 +#define z64_DeleteActor_addr 0x80024FE0 +#define z64_SpawnActor_addr 0x80025110 +#define z64_minimap_disable_1_addr 0x8006CD50 +#define z64_minimap_disable_2_addr 0x8006D4E4 +#define z64_SwitchAgeEquips_addr 0x8006F804 +#define z64_UpdateItemButton_addr 0x8006FB50 +#define z64_UpdateEquipment_addr 0x80079764 +#define z64_LoadRoom_addr 0x80080A3C +#define z64_UnloadRoom_addr 0x80080C98 +#define z64_Io_addr 0x80091484 +#define z64_entrance_offset_hook_addr 0x8009AA54 +#define z64_frame_update_func_addr 0x8009AF2C +#define z64_frame_update_call_addr 0x8009CAF8 +#define z64_disp_swap_1_addr 0x800A11A8 +#define z64_disp_swap_2_addr 0x800A11C0 +#define z64_disp_swap_3_addr 0x800A11D8 +#define z64_disp_swap_4_addr 0x800A11F4 +#define z64_frame_input_func_addr 0x800A0BB0 +#define z64_main_hook_addr 0x800A0C4C +#define z64_frame_input_call_addr 0x800A16BC +#define gspF3DEX2_NoN_fifoTextStart 0x800E4130 +#define z64_day_speed_addr 0x800F1810 +#define z64_light_handlers_addr 0x800F1D00 +#define z64_object_table_addr 0x800F91B8 +#define z64_entrance_table_addr 0x800F9E50 +#define z64_scene_table_addr 0x800FB6A0 +#define z64_scene_config_table_addr 0x800FBED8 +#define z64_seq_pos_addr 0x80104570 +#define gspF3DEX2_NoN_fifoDataStart 0x80114780 +#define z64_file_addr 0x8011A790 +#define z64_input_direct_addr 0x8011D8F0 +#define z64_stab_addr 0x80120DF8 +#define z64_seq_buf_addr 0x801249C0 +#define z64_ctxt_addr 0x801C8660 +#define z64_link_addr 0x801DABF0 + +/* rom addresses */ +#define z64_icon_item_static_vaddr 0x007BD000 +#define z64_icon_item_static_vsize 0x000888A0 +#define z64_icon_item_24_static_vaddr 0x00846000 +#define z64_icon_item_24_static_vsize 0x0000B400 +#define z64_nes_font_static_vaddr 0x008ED000 +#define z64_nes_font_static_vsize 0x00004580 +#define z64_parameter_static_vaddr 0x01A3C000 +#define z64_parameter_static_vsize 0x00003B00 + +/* context info */ +#define z64_ctxt_filemenu_ctor 0x80812394 +#define z64_ctxt_filemenu_size 0x0001CAD0 +#define z64_ctxt_game_ctor 0x8009A760 +#define z64_ctxt_game_size 0x00012518 + +#elif Z64_VERSION == Z64_OOT12 + +/* dram ddresses */ +#define z64_osSendMesg_addr 0x80001FD0 +#define z64_osRecvMesg_addr 0x800021F0 +#define z64_osCreateMesgQueue_addr 0x800043E0 +#define z64_file_mq_addr 0x80008A30 +#define z64_vi_counter_addr 0x8000A4CC +#define z64_DrawActors_addr 0x800250F4 +#define z64_DeleteActor_addr 0x80025620 +#define z64_SpawnActor_addr 0x80025750 +#define z64_minimap_disable_1_addr 0x8006D3B0 +#define z64_minimap_disable_2_addr 0x8006DB44 +#define z64_SwitchAgeEquips_addr 0x8006FE64 +#define z64_UpdateItemButton_addr 0x800701B0 +#define z64_UpdateEquipment_addr 0x80079DF4 +#define z64_LoadRoom_addr 0x80081064 +#define z64_UnloadRoom_addr 0x800812C0 +#define z64_Io_addr 0x80091AB4 +#define z64_entrance_offset_hook_addr 0x8009B134 +#define z64_frame_update_func_addr 0x8009B60C +#define z64_frame_update_call_addr 0x8009D1D8 +#define z64_disp_swap_1_addr 0x800A1848 +#define z64_disp_swap_2_addr 0x800A1860 +#define z64_disp_swap_3_addr 0x800A1878 +#define z64_disp_swap_4_addr 0x800A1894 +#define z64_frame_input_func_addr 0x800A1290 +#define z64_main_hook_addr 0x800A1328 +#define z64_frame_input_call_addr 0x800A1D8C +#define gspF3DEX2_NoN_fifoTextStart 0x800E45B0 +#define z64_day_speed_addr 0x800F1C90 +#define z64_light_handlers_addr 0x800F2180 +#define z64_object_table_addr 0x800F9648 +#define z64_entrance_table_addr 0x800FA2E0 +#define z64_scene_table_addr 0x800FBB30 +#define z64_scene_config_table_addr 0x800FC368 +#define z64_seq_pos_addr 0x801049F0 +#define gspF3DEX2_NoN_fifoDataStart 0x80114C70 +#define z64_file_addr 0x8011AC80 +#define z64_input_direct_addr 0x8011DE00 +#define z64_stab_addr 0x80121508 +#define z64_seq_buf_addr 0x801250D0 +#define z64_ctxt_addr 0x801C8D60 +#define z64_link_addr 0x801DB2F0 + +/* rom addresses */ +#define z64_icon_item_static_vaddr 0x007BD000 +#define z64_icon_item_static_vsize 0x000888A0 +#define z64_icon_item_24_static_vaddr 0x00846000 +#define z64_icon_item_24_static_vsize 0x0000B400 +#define z64_nes_font_static_vaddr 0x008ED000 +#define z64_nes_font_static_vsize 0x00004580 +#define z64_parameter_static_vaddr 0x01A3C000 +#define z64_parameter_static_vsize 0x00003B00 + +/* context info */ +#define z64_ctxt_filemenu_ctor 0x80812394 +#define z64_ctxt_filemenu_size 0x0001CAD0 +#define z64_ctxt_game_ctor 0x8009AE40 +#define z64_ctxt_game_size 0x00012518 + +#endif + +/* function prototypes */ +typedef void (*z64_DrawActors_proc) (z64_game_t *game, void *actor_ctxt); +typedef void (*z64_DeleteActor_proc) (z64_game_t *game, void *actor_ctxt, + z64_actor_t *actor); +typedef void (*z64_SpawnActor_proc) (void *actor_ctxt, z64_game_t *game, + int actor_id, float x, float y, + float z, uint16_t rx, uint16_t ry, + uint16_t rz, uint16_t variable); +typedef void (*z64_SwitchAgeEquips_proc) (void); +typedef void (*z64_UpdateItemButton_proc) (z64_game_t *game, int button_index); +typedef void (*z64_UpdateEquipment_proc) (z64_game_t *game, z64_link_t *link); +typedef void (*z64_LoadRoom_proc) (z64_game_t *game, + void *p_ctxt_room_index, + uint8_t room_index); +typedef void (*z64_UnloadRoom_proc) (z64_game_t *game, + void *p_ctxt_room_index); +typedef void (*z64_Io_proc) (uint32_t dev_addr, void *dram_addr, + uint32_t size, int32_t direction); +typedef void (*z64_SceneConfig_proc) (z64_game_t *game); + +/* data */ +#define z64_file_mq (*(OSMesgQueue*) z64_file_mq_addr) +#define z64_vi_counter (*(uint32_t*) z64_vi_counter_addr) +#define z64_stab (*(z64_stab_t*) z64_stab_addr) +#define z64_scene_table ( (z64_scene_table_t*)z64_scene_table_addr) +#define z64_day_speed (*(uint16_t*) z64_day_speed_addr) +#define z64_light_handlers ( (z64_light_handler_t*) \ + z64_light_handlers_addr) +#define z64_object_table ( (z64_object_table_t*) \ + z64_object_table_addr) +#define z64_entrance_table ( (z64_entrance_table_t*) \ + z64_entrance_table_addr) +#define z64_scene_config_table ( (z64_SceneConfig_proc*) \ + z64_scene_config_table_addr) +#define z64_file (*(z64_file_t*) z64_file_addr) +#define z64_input_direct (*(z64_input_t*) z64_input_direct_addr) +#define z64_gameinfo (* z64_file.gameinfo) +#define z64_ctxt (*(z64_ctxt_t*) z64_ctxt_addr) +#define z64_game (*(z64_game_t*) &z64_ctxt) +#define z64_link (*(z64_link_t*) z64_link_addr) + +/* functions */ +#define z64_osSendMesg ((osSendMesg_t) z64_osSendMesg_addr) +#define z64_osRecvMesg ((osRecvMesg_t) z64_osRecvMesg_addr) +#define z64_osCreateMesgQueue ((osCreateMesgQueue_t) \ + z64_osCreateMesgQueue_addr) +#define z64_DrawActors ((z64_DrawActors_proc)z64_DrawActors_addr) +#define z64_DeleteActor ((z64_DeleteActor_proc) \ + z64_DeleteActor_addr) +#define z64_SpawnActor ((z64_SpawnActor_proc)z64_SpawnActor_addr) +#define z64_SwitchAgeEquips ((z64_SwitchAgeEquips_proc) \ + z64_SwitchAgeEquips_addr) +#define z64_UpdateItemButton ((z64_UpdateItemButton_proc) \ + z64_UpdateItemButton_addr) +#define z64_UpdateEquipment ((z64_UpdateEquipment_proc) \ + z64_UpdateEquipment_addr) +#define z64_LoadRoom ((z64_LoadRoom_proc) z64_LoadRoom_addr) +#define z64_UnloadRoom ((z64_UnloadRoom_proc) \ + z64_UnloadRoom_addr) +#define z64_Io ((z64_Io_proc) z64_Io_addr) + +#endif diff --git a/ASM/quick_build.bat b/ASM/quick_build.bat index 2f168d043..4d6dcbc2d 100644 --- a/ASM/quick_build.bat +++ b/ASM/quick_build.bat @@ -1,3 +1,2 @@ python scripts/build.py -python scripts/rom_diff.py roms/base.z64 roms/patched.z64 ../data/base2current.json pause \ No newline at end of file diff --git a/ASM/resources/font.bin b/ASM/resources/font.bin new file mode 100644 index 0000000000000000000000000000000000000000..b894248beee607ac11ad8b9f7ee0e4a8c26b5744 GIT binary patch literal 5320 zcmb_gU2Ggz6+T(-dVgkS<#!abuLv-Ukg5bJ?!JKl$NPo=+p~i5fT-8o0^*@$vycZ+ zg|{QQ2&9tjJX9*AwmYI#B}nZK#HkX;*$yF2(zUZ0|L)q}b&3h4ke}f@vp?RSS>vc2 z>GQq!+;isMd+xdCoHfzMBuOKxK}6q%TKQ;=@3cg5lBf|*GOax6#|HI%QKM6$@`7bO zq|0$~txwWj%eoiPHc0%HNx^UEty-0_S0PV!Cn8?@y&}D;kgxP6(N}J(1 zmxz)B+H2=M#dB{{`bKghZus)={W;|A)*}241eJ3 zh)0{1yRthZEGCtpA{cVQZ;n0vN0VC~GoR<3C}5dzvd-{XEYMEA{5FYalGvE26ZNS? zGa(Y-$}wyvj<3;OTCmabFK4;Vw=KBf8dJ7Fh1a^;Bx;8ccOH!~z? z8Hz_T^s;6B3&w#8qn$*{iq_p_7f+@ujXkrC1%2o{X~mz1QJrYI6b=-Rr-G0koGwMi z7Ke3NVSD;b5&f=gDdMCi+vk>4yjaXH5V@;&$gFgQMGoZ2mcr89ux8)a+_2)l^B{Ee z%^_Wm`OUsJh751M6m?Le?)(l(ZzL5tihGX=Ci-S~e#zwX`G1&6c=ETL)b@Enz15Zao|DX>-qEKn(R1aA@mz!$^jv9z2)sj({no2;js1gECx41Coqr2)Y3c@p`^@V^ z?%7h<|4LjXI;xWEYM8`7!#;2VCT?r}3a9?}$aFa&-aNjZ4AJF31$O6e#-GaF_${5| zmdEi3Jp5LeXneQ&v8rmnfta&Nbma=3`xN8S6YSLq0xww;1jDH2qM z^`H_k?bdo24Ju!~7F0YRqFoDGzAg3 zX|_@Ac_+p9tO(KRR)l|qI5z&&GJSgYqLUV3PX#%aNyy(TkUX0rxvY`=^CI}u5jl2L zmt)7>_Ty}x5UgZJUiKEQg@QCKh4s4qX-3CYhSH8}zQejiL#XSV)k0tqp_%O4f#kHbV>28j6_@o-1?RIO1$E@NEDP&Yc zGs;Z{_2T&G%0~R9TW0U2Nkdvo>Y@=;9n>hE@D>8sj%u#lREUxVqJGqyGdc2ZCS(1o zV9bQvTTXh@Ay4tMs;GN6l2KZ~$|tYwUwG|3Iw%IYZY1Gv$kPex+D7-U$j?#YRYaZW zla}?LCbhu_CKs-2V-7y%(DK$ZX{kjrh^}AlJw*a68}&+ zWH80~#UQkfXi{t*9I#IfE35t&lQDO8izF3GHDadB_EaSeuU>6N(+X8Lt?~Sp-e{(J zAMebp$=I#8WysUa>x54jBt1$r+(7NqC;lQ_SR&!JPQrr?)CpI61pNed?d8W*ry!?U z`2g@ma7gmqgQ$4-aCu7&lQiy0k6@-i}uP z|3sCCER`2Jdbna9F)oG;Jk>rC;mcTG|RJz(^vJnQKY<#5omoS)3jN|=EYPQo1X zlaf}5pIBTCzBX@&g^U(hky8gLp1{7kH!~5+V2wTlKOuAEUymo^3IF;*dhw`d17|Y$ z7iw1_9j1i^q&9p*G6B`jZPIr87f@&G_$Li=;QN&XH50;mP_g+9^4)pWPM4xqksHDA zVF+umLsfY^#~12>Y>h;89~aOS%3-8K{&rPgn8SDPVp054jMrg4V 0: self.prog_items[item.name] -= 1 @@ -503,27 +570,6 @@ def collect_locations(state_list): # Collect the item for the state world it is for state_list[location.item.world.id].collect(location.item) - - # This removes all item locations collected in the state list given that - # the states have collected items. The purpose is that it will search for - # all new items that become no longer accessible with a removed item - @staticmethod - def remove_locations(state_list): - # Get all item locations in the worlds - item_locations = [location for state in state_list for location in state.world.get_filled_locations() if location.item.advancement] - - # will loop if there is more items removed in the previous iteration. Always run once - unreachable_items_locations = True - while unreachable_items_locations: - # get unreachable new items locations - unreachable_items_locations = [location for location in item_locations if location.name in state_list[location.world.id].collected_locations and not state_list[location.world.id].can_reach(location)] - for location in unreachable_items_locations: - # Mark the location uncollected in the state world it exists in - del state_list[location.world.id].collected_locations[location.name] - # Remove the item for the state world it is for - state_list[location.item.world.id].remove(location.item) - - # This returns True is every state is beatable. It's important to ensure # all states beatable since items required in one world can be in another. @staticmethod @@ -552,32 +598,47 @@ def can_beat_game(state_list, scan_for_items=True): @staticmethod def update_required_items(worlds): - state_list = [CollectionState(world) for world in worlds] - CollectionState.collect_locations(state_list) - - item_locations = [] + state_list = [world.state for world in worlds] + + # get list of all of the progressive items that can appear in hints + all_locations = [location for world in worlds for location in world.get_filled_locations()] + item_locations = [location for location in all_locations + if location.item.advancement + and location.item.type != 'Event' + and location.item.type != 'Shop' + and not location.event + and (worlds[0].shuffle_smallkeys != 'dungeon' or not location.item.smallkey) + and (worlds[0].shuffle_bosskeys != 'dungeon' or not location.item.bosskey)] + + # if the playthrough was generated, filter the list of locations to the + # locations in the playthrough. The required locations is a subset of these + # locations. Can't use the locations directly since they are location to the + # copied spoiler world, so must try to find the matching locations by name if worlds[0].spoiler.playthrough: - item_locations = [location for _,sphere in worlds[0].spoiler.playthrough.items() for location in sphere - if location.item.type != 'Event' and not location.event and (worlds[0].keysanity or not location.item.key)] - else: - item_locations = [location for world in worlds for location in world.get_filled_locations() - if location.item.advancement and location.item.type != 'Event' and not location.event and (worlds[0].keysanity or not location.item.key)] + spoiler_locations = defaultdict(lambda: []) + for location in [location for _,sphere in worlds[0].spoiler.playthrough.items() for location in sphere]: + spoiler_locations[location.name].append(location.world.id) + item_locations = list(filter(lambda location: location.world.id in spoiler_locations[location.name], item_locations)) required_locations = [] - for location in item_locations: - old_item = location.item - new_state_list = [state.copy() for state in state_list] - - location.item = None - new_state_list[old_item.world.id].remove(old_item) - CollectionState.remove_locations(new_state_list) - - if not CollectionState.can_beat_game(new_state_list, False): - required_locations.append(location) - location.item = old_item + reachable_items_locations = True + while (item_locations and reachable_items_locations): + reachable_items_locations = [location for location in all_locations if location.name not in state_list[location.world.id].collected_locations and state_list[location.world.id].can_reach(location)] + for location in reachable_items_locations: + # Try to remove items one at a time and see if the game is still beatable + if location in item_locations: + old_item = location.item + location.item = None + if not CollectionState.can_beat_game(state_list): + required_locations.append(location) + location.item = old_item + item_locations.remove(location) + state_list[location.world.id].collected_locations[location.name] = True + state_list[location.item.world.id].collect(location.item) + # Filter the required location to only include location in the world for world in worlds: - world.spoiler.required_locations = [location for location in required_locations if location.world.id == world.id] + world.spoiler.required_locations = list(filter(lambda location: location.world.id == world.id, required_locations)) @unique @@ -605,6 +666,7 @@ def __init__(self, name, type): self.world = None self.spot_type = 'Region' self.recursion_count = 0 + self.price = None def can_reach(self, state): for entrance in self.entrances: @@ -613,14 +675,18 @@ def can_reach(self, state): return False def can_fill(self, item): - if self.world.shuffle_dungeon_items == 'keysanity': - is_dungeon_restricted = False - elif self.world.shuffle_dungeon_items == 'mapcompass': - is_dungeon_restricted = item.key - else: - is_dungeon_restricted = item.key or item.map or item.compass + is_dungeon_restricted = False + if item.map or item.compass: + is_dungeon_restricted = self.world.shuffle_mapcompass == 'dungeon' + elif item.smallkey: + is_dungeon_restricted = self.world.shuffle_smallkeys == 'dungeon' + elif item.bosskey: + is_dungeon_restricted = self.world.shuffle_bosskeys == 'dungeon' + elif item.type != 'Token' and item.type != 'Event' and item.type != 'Shop' and item.advancement and self.world.one_item_per_dungeon and self.dungeon: + return self.dungeon.major_items == 0 + if is_dungeon_restricted: - return self.dungeon and self.dungeon.is_dungeon_item(item) + return self.dungeon and self.dungeon.is_dungeon_item(item) and item.world.id == self.world.id return True def __str__(self): @@ -666,15 +732,24 @@ def __unicode__(self): class Dungeon(object): def __init__(self, name, regions, boss_key, small_keys, dungeon_items): + def to_array(obj): + if obj == None: + return [] + if isinstance(obj, list): + return obj + else: + return [obj] + self.name = name self.regions = regions - self.boss_key = boss_key - self.small_keys = small_keys - self.dungeon_items = dungeon_items + self.boss_key = to_array(boss_key) + self.small_keys = to_array(small_keys) + self.dungeon_items = to_array(dungeon_items) + self.major_items = 0 @property def keys(self): - return self.small_keys + ([self.boss_key] if self.boss_key else []) + return self.small_keys + self.boss_key @property def all_items(self): @@ -709,6 +784,7 @@ def __init__(self, name='', address=None, address2=None, default=None, type='Che self.access_rule = lambda state: True self.item_rule = lambda item: True self.event = False + self.price = None def can_fill(self, state, item, check_access=True): return self.always_allow(item, self) or (self.parent_region.can_fill(item) and self.item_rule(item) and (not check_access or self.can_reach(state))) @@ -730,7 +806,7 @@ def __unicode__(self): class Item(object): - def __init__(self, name='', advancement=False, priority=False, type=None, code=None, index=None): + def __init__(self, name='', advancement=False, priority=False, type=None, code=None, index=None, object=None, model=None): self.name = name self.advancement = advancement self.priority = priority @@ -738,6 +814,9 @@ def __init__(self, name='', advancement=False, priority=False, type=None, code=N self.code = code self.index = index self.location = None + self.object = object + self.model = model + self.price = None def copy(self): return Item(self.name, self.advancement, self.priority, self.type, self.code, self.index) @@ -746,6 +825,14 @@ def copy(self): def key(self): return self.type == 'SmallKey' or self.type == 'BossKey' + @property + def smallkey(self): + return self.type == 'SmallKey' + + @property + def bosskey(self): + return self.type == 'BossKey' + @property def crystal(self): return self.type == 'Crystal' @@ -773,6 +860,7 @@ def __init__(self, world): self.locations = {} self.metadata = {} self.required_locations = [] + self.hints = {} def parse_data(self): spoiler_locations = [location for location in self.world.get_locations() if not location.event] @@ -803,8 +891,12 @@ def to_file(self, filename): else: outfile.write('\n'.join(['%s: {\n%s\n}' % (sphere_nr, '\n'.join([' %s: %s' % (location.name, item.name) for (location, item) in sphere.items()])) for (sphere_nr, sphere) in self.playthrough.items()])) - outfile.write('\n\nAlways Required Locations:\n\n') - if self.settings.world_count > 1: - outfile.write('\n'.join(['%s: %s [Player %d]' % (location.name, location.item.name, location.item.world.id + 1) for location in self.required_locations])) - else: - outfile.write('\n'.join(['%s: %s' % (location.name, location.item.name) for location in self.required_locations])) + if len(self.hints) > 0: + outfile.write('\n\nAlways Required Locations:\n\n') + if self.settings.world_count > 1: + outfile.write('\n'.join(['%s: %s [Player %d]' % (location.name, location.item.name, location.item.world.id + 1) for location in self.required_locations])) + else: + outfile.write('\n'.join(['%s: %s' % (location.name, location.item.name) for location in self.required_locations])) + + outfile.write('\n\nGossip Stone Hints:\n\n') + outfile.write('\n'.join(self.hints.values())) diff --git a/Dungeons.py b/Dungeons.py index 7a10d0a34..5c388ffb3 100644 --- a/Dungeons.py +++ b/Dungeons.py @@ -5,10 +5,12 @@ def create_dungeons(world): - def make_dungeon(name, dungeon_regions, boss_key, small_keys, dungeon_items): + def make_dungeon(name, dungeon_regions_names, boss_key, small_keys, dungeon_items): + dungeon_regions = [world.get_region(region) for region in dungeon_regions_names] + dungeon = Dungeon(name, dungeon_regions, boss_key, small_keys, dungeon_items) for region in dungeon.regions: - world.get_region(region).dungeon = dungeon + region.dungeon = dungeon return dungeon if world.dungeon_mq['DT']: diff --git a/EntranceShuffle.py b/EntranceShuffle.py index 83fc31c50..8065cfa76 100644 --- a/EntranceShuffle.py +++ b/EntranceShuffle.py @@ -1,479 +1,489 @@ -import random - -def link_entrances(world): - - # setup mandatory connections - for exitname, regionname in mandatory_connections: - connect_simple(world, exitname, regionname) - if world.dungeon_mq['DT']: - for exitname, regionname in DT_MQ_connections: - connect_simple(world, exitname, regionname) - else: - for exitname, regionname in DT_vanilla_connections: - connect_simple(world, exitname, regionname) - if world.dungeon_mq['DC']: - for exitname, regionname in DC_MQ_connections: - connect_simple(world, exitname, regionname) - else: - for exitname, regionname in DC_vanilla_connections: - connect_simple(world, exitname, regionname) - if world.dungeon_mq['JB']: - for exitname, regionname in JB_MQ_connections: - connect_simple(world, exitname, regionname) - else: - for exitname, regionname in JB_vanilla_connections: - connect_simple(world, exitname, regionname) - if world.dungeon_mq['FoT']: - for exitname, regionname in FoT_MQ_connections: - connect_simple(world, exitname, regionname) - else: - for exitname, regionname in FoT_vanilla_connections: - connect_simple(world, exitname, regionname) - if world.dungeon_mq['FiT']: - for exitname, regionname in FiT_MQ_connections: - connect_simple(world, exitname, regionname) - else: - for exitname, regionname in FiT_vanilla_connections: - connect_simple(world, exitname, regionname) - if world.dungeon_mq['WT']: - for exitname, regionname in WT_MQ_connections: - connect_simple(world, exitname, regionname) - else: - for exitname, regionname in WT_vanilla_connections: - connect_simple(world, exitname, regionname) - if world.dungeon_mq['GTG']: - for exitname, regionname in GTG_MQ_connections: - connect_simple(world, exitname, regionname) - else: - for exitname, regionname in GTG_vanilla_connections: - connect_simple(world, exitname, regionname) - if world.dungeon_mq['SpT']: - for exitname, regionname in SpT_MQ_connections: - connect_simple(world, exitname, regionname) - else: - for exitname, regionname in SpT_vanilla_connections: - connect_simple(world, exitname, regionname) - if world.dungeon_mq['ShT']: - for exitname, regionname in ShT_MQ_connections: - connect_simple(world, exitname, regionname) - else: - for exitname, regionname in ShT_vanilla_connections: - connect_simple(world, exitname, regionname) - # if we do not shuffle, set default connections - if world.shuffle == 'vanilla': - for exitname, regionname in default_connections: - connect_simple(world, exitname, regionname) - for exitname, regionname in default_dungeon_connections: - connect_simple(world, exitname, regionname) - else: - raise NotImplementedError('Shuffling not supported yet') - - -def connect_simple(world, exitname, regionname): - world.get_entrance(exitname).connect(world.get_region(regionname)) - -def connect_entrance(world, entrancename, exitname): - entrance = world.get_entrance(entrancename) - # check if we got an entrance or a region to connect to - try: - region = world.get_region(exitname) - exit = None - except RuntimeError: - exit = world.get_entrance(exitname) - region = exit.parent_region - - # if this was already connected somewhere, remove the backreference - if entrance.connected_region is not None: - entrance.connected_region.entrances.remove(entrance) - - target = exit_ids[exit.name][0] if exit is not None else exit_ids.get(region.name, None) - addresses = door_addresses[entrance.name][0] - - entrance.connect(region, addresses, target) - world.spoiler.set_entrance(entrance.name, exit.name if exit is not None else region.name, 'entrance') - - -def connect_exit(world, exitname, entrancename): - entrance = world.get_entrance(entrancename) - exit = world.get_entrance(exitname) - - # if this was already connected somewhere, remove the backreference - if exit.connected_region is not None: - exit.connected_region.entrances.remove(exit) - - exit.connect(entrance.parent_region, door_addresses[entrance.name][1], exit_ids[exit.name][1]) - world.spoiler.set_entrance(entrance.name, exit.name, 'exit') - - -def connect_random(world, exitlist, targetlist, two_way=False): - targetlist = list(targetlist) - random.shuffle(targetlist) - - for exit, target in zip(exitlist, targetlist): - if two_way: - connect_two_way(world, exit, target) - else: - connect_entrance(world, exit, target) - - -def connect_doors(world, doors, targets): - """This works inplace""" - random.shuffle(doors) - random.shuffle(targets) - while doors: - door = doors.pop() - target = targets.pop() - connect_entrance(world, door, target) - -# these are connections that cannot be shuffled and always exist. They link together separate parts of the world we need to divide into regions -mandatory_connections = [('Adult Forest Warp Pad', 'Forest Temple Entry Area'), - ('Child Forest Warp Pad', 'Sacred Forest Meadow'), - ('Temple Warp Pad', 'Temple of Time'), - ('Crater Warp Pad', 'Death Mountain Crater Central'), - ('Lake Warp Pad', 'Lake Hylia'), - ('Graveyard Warp Pad', 'Shadow Temple Warp Region'), - ('Colossus Warp Pad', 'Desert Colossus'), - ('Lost Woods', 'Lost Woods'), - ('Lost Woods Front', 'Kokiri Forest'), - ('Woods to Goron City', 'Goron City Woods Warp'), - ('Goron City to Woods', 'Lost Woods'), - ('Goron City from Woods', 'Goron City'), - ('Goron City Bomb Wall', 'Goron City Woods Warp'), - ('Lost Woods Dive Warp', 'Zora River Child'), - ('Zora River Dive Warp', 'Lost Woods'), - ('Meadow Entrance', 'Sacred Forest Meadow Entryway'), - ('Meadow Exit', 'Lost Woods'), - ('Meadow Gate', 'Sacred Forest Meadow'), - ('Meadow Gate Exit', 'Sacred Forest Meadow Entryway'), - ('Adult Meadow Access', 'Forest Temple Entry Area'), - ('Adult Meadow Exit', 'Lost Woods'), - ('Lost Woods Bridge', 'Lost Woods Bridge'), - ('Kokiri Forest Entrance', 'Kokiri Forest'), - ('Field to Forest', 'Lost Woods Bridge'), - ('Forest Exit', 'Hyrule Field'), - ('Field to Lake', 'Lake Hylia'), - ('Lake Hylia Dive Warp', 'Zoras Domain'), - ('Zoras Domain Dive Warp', 'Lake Hylia'), - ('Lake Exit', 'Hyrule Field'), - ('Field to Valley', 'Gerudo Valley'), - ('Valley Exit', 'Hyrule Field'), - ('Valley River', 'Lake Hylia'), - ('Bridge Crossing', 'Gerudo Valley Far Side'), - ('Fortress Entrance', 'Gerudo Fortress'), - ('Haunted Wasteland Entrance', 'Haunted Wasteland'), - ('Haunted Wasteland Crossing', 'Desert Colossus'), - ('Field to Castle Town', 'Castle Town'), - ('Castle Town Exit', 'Hyrule Field'), - ('Hyrule Castle Grounds', 'Hyrule Castle Grounds'), - ('Hyrule Castle Grounds Exit', 'Castle Town'), - ('Hyrule Castle Garden', 'Hyrule Castle Garden'), - ('Hyrule Castle Garden Exit', 'Hyrule Castle Grounds'), - ('Ganons Castle Grounds', 'Ganons Castle Grounds'), - ('Ganons Castle Grounds Exit', 'Castle Town'), - ('Field to Kakariko', 'Kakariko Village'), - ('Kakariko Exit', 'Hyrule Field'), - ('Graveyard Entrance', 'Graveyard'), - ('Graveyard Exit', 'Kakariko Village'), - ('Drop to Graveyard', 'Graveyard'), - ('Death Mountain Entrance', 'Death Mountain'), - ('Death Mountain Exit', 'Kakariko Village'), - ('Goron City Entrance', 'Goron City'), - ('Goron City Exit', 'Death Mountain'), - ('Darunias Chamber', 'Darunias Chamber'), - ('Darunias Chamber Exit', 'Goron City'), - ('Mountain Crater Entrance', 'Death Mountain Crater Upper'), - ('Crater Exit', 'Death Mountain'), - ('Crater Hover Boots', 'Death Mountain Crater Lower'), - ('Crater Ascent', 'Death Mountain Crater Upper'), - ('Crater Scarecrow', 'Death Mountain Crater Central'), - ('Crater Bridge', 'Death Mountain Crater Central'), - ('Crater Bridge Reverse', 'Death Mountain Crater Lower'), - ('Crater to City', 'Goron City'), - ('Crater Access', 'Death Mountain Crater Lower'), - ('Dodongos Cavern Rocks', 'Dodongos Cavern Entryway'), - ('Mountain Access from Behind Rock', 'Death Mountain'), - ('Field to Zora River', 'Zora River Front'), - ('Zora River Exit', 'Hyrule Field'), - ('Zora River Rocks', 'Zora River Child'), - ('Zora River Downstream', 'Zora River Front'), - ('Zora River Child to Shared', 'Zora River Shared'), - ('Zora River Adult to Shared', 'Zora River Shared'), - ('Zora River Waterfall', 'Zoras Domain'), - ('Zoras Domain Exit', 'Zora River Child'), - ('Behind King Zora', 'Zoras Fountain'), - ('Zoras Fountain Exit', 'Zoras Domain'), - ('Zora River Adult', 'Zora River Adult'), - ('Zoras Domain Adult Access', 'Zoras Domain Frozen'), - ('Zoras Fountain Adult Access', 'Outside Ice Cavern'), - ('Lon Lon Rance Entrance', 'Lon Lon Ranch'), - ('Lon Lon Exit', 'Hyrule Field'), - ('Ganons Castle Forest Trial', 'Ganons Castle Forest Trial'), - ('Ganons Castle Fire Trial', 'Ganons Castle Fire Trial'), - ('Ganons Castle Water Trial', 'Ganons Castle Water Trial'), - ('Ganons Castle Shadow Trial', 'Ganons Castle Shadow Trial'), - ('Ganons Castle Spirit Trial', 'Ganons Castle Spirit Trial'), - ('Ganons Castle Light Trial', 'Ganons Castle Light Trial'), - ('Ganons Castle Tower', 'Ganons Castle Tower') - ] - -DT_vanilla_connections = [('Deku Tree Slingshot Passage', 'Deku Tree Slingshot Room'), - ('Deku Tree Slingshot Exit', 'Deku Tree Lobby'), - ('Deku Tree Basement Path', 'Deku Tree Boss Room'), - ('Deku Tree Basement Vines', 'Deku Tree Lobby') - ] - -DT_MQ_connections = [('Deku Tree Compass Passage', 'Deku Tree Compass Room'), - ('Deku Tree Compass Exit', 'Deku Tree Lobby'), - ('Deku Tree Basement Path', 'Deku Tree Boss Room'), - ('Deku Tree Basement Vines', 'Deku Tree Lobby') - ] - -DC_vanilla_connections = [('Dodongos Cavern Lobby', 'Dodongos Cavern Lobby'), - ('Dodongos Cavern Retreat', 'Dodongos Cavern Beginning'), - ('Dodongos Cavern Left Door', 'Dodongos Cavern Climb'), - ('Dodongos Cavern Bridge Fall', 'Dodongos Cavern Lobby'), - ('Dodongos Cavern Slingshot Target', 'Dodongos Cavern Far Bridge'), - ('Dodongos Cavern Bridge Fall 2', 'Dodongos Cavern Lobby'), - ('Dodongos Cavern Bomb Drop', 'Dodongos Cavern Boss Area'), - ('Dodongos Cavern Exit Skull', 'Dodongos Cavern Lobby') - ] - -DC_MQ_connections = [('Dodongos Cavern Lobby', 'Dodongos Cavern Lobby'), - ('Dodongos Cavern Bomb Drop', 'Dodongos Cavern Boss Area') - ] - -JB_vanilla_connections = [('Jabu Jabus Belly Ceiling Switch', 'Jabu Jabus Belly Main'), - ('Jabu Jabus Belly Retreat', 'Jabu Jabus Belly Beginning'), - ('Jabu Jabus Belly Tentacles', 'Jabu Jabus Belly Depths'), - ('Jabu Jabus Belly Elevator', 'Jabu Jabus Belly Main'), - ('Jabu Jabus Belly Octopus', 'Jabu Jabus Belly Boss Area'), - ('Jabu Jabus Belly Final Backtrack', 'Jabu Jabus Belly Main') - ] - -JB_MQ_connections = [('Jabu Jabus Belly Cow Switch', 'Jabu Jabus Belly Main'), - ('Jabu Jabus Belly Retreat', 'Jabu Jabus Belly Beginning'), - ('Jabu Jabus Belly Tentacle Access', 'Jabu Jabus Belly Depths'), - ('Jabu Jabus Belly Elevator', 'Jabu Jabus Belly Main'), - ('Jabu Jabus Belly Octopus', 'Jabu Jabus Belly Boss Area'), - ('Jabu Jabus Belly Final Backtrack', 'Jabu Jabus Belly Main') - ] - -FoT_vanilla_connections = [('Forest Temple Song of Time Block', 'Forest Temple NW Outdoors'), - ('Forest Temple Lobby Eyeball Switch', 'Forest Temple NE Outdoors'), - ('Forest Temple Lobby Locked Door', 'Forest Temple Block Push Room'), - ('Forest Temple Through Map Room', 'Forest Temple NE Outdoors'), - ('Forest Temple Well Connection', 'Forest Temple NW Outdoors'), - ('Forest Temple Outside to Lobby', 'Forest Temple Lobby'), - ('Forest Temple Scarecrows Song', 'Forest Temple Falling Room'), - ('Forest Temple Falling Room Exit', 'Forest Temple NE Outdoors'), - ('Forest Temple Elevator', 'Forest Temple Boss Region'), - ('Forest Temple Outside Backdoor', 'Forest Temple Outside Upper Ledge'), - ('Forest Temple Twisted Hall', 'Forest Temple Bow Region'), - ('Forest Temple Straightened Hall', 'Forest Temple Straightened Hall'), - ('Forest Temple Boss Key Chest Drop', 'Forest Temple Outside Upper Ledge'), - ('Forest Temple Outside Ledge Drop', 'Forest Temple NW Outdoors'), - ('Forest Temple Drop to Falling Room', 'Forest Temple Falling Room') - ] - -FoT_MQ_connections = [('Forest Temple Lobby Locked Door', 'Forest Temple Central Area'), - ('Forest Temple West Eye Switch', 'Forest Temple NW Outdoors'), - ('Forest Temple East Eye Switch', 'Forest Temple NE Outdoors'), - ('Forest Temple Block Puzzle Solve', 'Forest Temple After Block Puzzle'), - ('Forest Temple Drop to NW Outdoors', 'Forest Temple NW Outdoors'), - ('Forest Temple Well Connection', 'Forest Temple NE Outdoors'), - ('Forest Temple Webs', 'Forest Temple Outdoors Top Ledges'), - ('Forest Temple Climb to Top Ledges', 'Forest Temple Outdoors Top Ledges'), - ('Forest Temple Longshot to NE Outdoors Ledge', 'Forest Temple NE Outdoors Ledge'), - ('Forest Temple Top Drop to NE Outdoors', 'Forest Temple NE Outdoors'), - ('Forest Temple Drop to NE Outdoors', 'Forest Temple NE Outdoors'), - ('Forest Temple Song of Time Block Climb', 'Forest Temple Falling Room'), - ('Forest Temple Twisted Hall', 'Forest Temple Bow Region'), - ('Forest Temple Drop to Falling Room', 'Forest Temple Falling Room'), - ('Forest Temple Falling Room Exit', 'Forest Temple NE Outdoors Ledge'), - ('Forest Temple Elevator', 'Forest Temple Boss Region') - ] - -FiT_vanilla_connections = [('Fire Temple Early Climb', 'Fire Temple Middle'), - ('Fire Temple Fire Maze Escape', 'Fire Temple Upper') - ] - -FiT_MQ_connections = [('Fire Temple Boss Door', 'Fire Boss Room'), - ('Fire Temple Lower Locked Door', 'Fire Lower Locked Door'), - ('Fire Temple Hammer Statue', 'Fire Big Lava Room'), - ('Fire Temple Early Climb', 'Fire Lower Maze'), - ('Fire Temple Maze Climb', 'Fire Upper Maze'), - ('Fire Temple Maze Escape', 'Fire Temple Upper') - ] - -WT_vanilla_connections = [('Water Temple Central Pillar', 'Water Temple Middle Water Level'), - ('Water Temple Upper Locked Door', 'Water Temple Dark Link Region') - ] - -WT_MQ_connections = [('Water Temple Water Level Switch', 'Water Temple Lowered Water Levels'), - ('Water Temple Locked Door', 'Water Temple Dark Link Region'), - ('Water Temple Basement Gates Switch', 'Water Temple Basement Gated Areas') - ] - -GTG_vanilla_connections = [('Gerudo Training Ground Left Silver Rupees', 'Gerudo Training Grounds Heavy Block Room'), - ('Gerudo Training Ground Beamos', 'Gerudo Training Grounds Lava Room'), - ('Gerudo Training Ground Central Door', 'Gerudo Training Grounds Central Maze'), - ('Gerudo Training Grounds Right Locked Doors', 'Gerudo Training Grounds Central Maze Right'), - ('Gerudo Training Grounds Maze Exit', 'Gerudo Training Grounds Lava Room'), - ('Gerudo Training Grounds Maze Ledge', 'Gerudo Training Grounds Central Maze Right'), - ('Gerudo Training Grounds Right Hookshot Target', 'Gerudo Training Grounds Hammer Room'), - ('Gerudo Training Grounds Hammer Target', 'Gerudo Training Grounds Eye Statue Lower'), - ('Gerudo Training Grounds Hammer Room Clear', 'Gerudo Training Grounds Lava Room'), - ('Gerudo Training Grounds Eye Statue Exit', 'Gerudo Training Grounds Hammer Room'), - ('Gerudo Training Grounds Eye Statue Drop', 'Gerudo Training Grounds Eye Statue Lower'), - ('Gerudo Training Grounds Hidden Hookshot Target', 'Gerudo Training Grounds Eye Statue Upper') - ] - -GTG_MQ_connections = [('Gerudo Training Grounds Left Door', 'Gerudo Training Grounds Left Side'), - ('Gerudo Training Grounds Right Door', 'Gerudo Training Grounds Right Side'), - ('Gerudo Training Grounds Longshot Target', 'Gerudo Training Grounds Stalfos Room'), - ('Gerudo Training Grounds Song of Time Block', 'Gerudo Training Grounds Back Areas'), - ('Gerudo Training Grounds Rusted Switch', 'Gerudo Training Grounds Central Maze Right'), - ('Gerudo Training Grounds Loop Around', 'Gerudo Training Grounds Right Side') - ] - -SpT_vanilla_connections = [('Spirit Temple Crawl Passage', 'Child Spirit Temple'), - ('Spirit Temple Silver Block', 'Early Adult Spirit Temple'), - ('Child Spirit Temple Climb', 'Child Spirit Temple Climb'), - ('Child Spirit Temple Passthrough', 'Spirit Temple Central Chamber'), - ('Adult Spirit Temple Passthrough', 'Spirit Temple Central Chamber'), - ('Spirit Temple Middle Child Door', 'Child Spirit Temple Climb'), - ('Spirit Temple to Hands', 'Spirit Temple Outdoor Hands'), - ('Spirit Temple Central Locked Door', 'Spirit Temple Beyond Central Locked Door'), - ('Spirit Temple Final Locked Door', 'Spirit Temple Beyond Final Locked Door'), - ] - -SpT_MQ_connections = [('Spirit Temple Crawl Passage', 'Child Spirit Temple'), - ('Spirit Temple Ceiling Passage', 'Adult Spirit Temple'), - ('Child Spirit Temple to Shared', 'Spirit Temple Shared'), - ('Adult Spirit Temple to Shared', 'Spirit Temple Shared'), - ('Adult Spirit Temple Descent', 'Lower Adult Spirit Temple'), - ('Spirit Temple Climbable Wall', 'Spirit Temple Boss Area'), - ('Mirror Shield Exit', 'Mirror Shield Hand'), - ('Silver Gauntlets Exit', 'Silver Gauntlets Hand') - ] - -ShT_vanilla_connections = [('Shadow Temple First Pit', 'Shadow Temple First Beamos'), - ('Shadow Temple Bomb Wall', 'Shadow Temple Huge Pit'), - ('Shadow Temple Hookshot Target', 'Shadow Temple Wind Tunnel'), - ('Shadow Temple Boat', 'Shadow Temple Beyond Boat') - ] - -ShT_MQ_connections = [('Shadow Temple First Pit', 'Shadow Temple First Beamos'), - ('Shadow Temple Beginning Locked Door', 'Shadow Temple Dead Hand Area'), - ('Shadow Temple Bomb Wall', 'Shadow Temple Huge Pit'), - ('Shadow Temple Hookshot Target', 'Shadow Temple Wind Tunnel'), - ('Shadow Temple Boat', 'Shadow Temple Beyond Boat'), - ('Shadow Temple Longshot Target', 'Shadow Temple Invisible Maze') - ] - -# non-shuffled entrance links -default_connections = [('Links House Exit', 'Kokiri Forest'), - ('Links House', 'Links House'), - ('Mido House Exit', 'Kokiri Forest'), - ('Mido House', 'Mido House'), - ('Saria House Exit', 'Kokiri Forest'), - ('Saria House', 'Saria House'), - ('House of Twins Exit', 'Kokiri Forest'), - ('House of Twins', 'House of Twins'), - ('Know It All House Exit', 'Kokiri Forest'), - ('Know It All House', 'Know It All House'), - ('Kokiri Shop Exit', 'Kokiri Forest'), - ('Kokiri Shop', 'Kokiri Shop'), - ('Lake Hylia Lab', 'Lake Hylia Lab'), - ('Fishing Hole', 'Fishing Hole'), - ('Colossus Fairy', 'Colossus Fairy'), - ('Temple of Time', 'Temple of Time'), - ('Temple of Time Exit', 'Castle Town'), - ('Door of Time', 'Beyond Door of Time'), - ('Emerge as Adult', 'Temple of Time'), - ('Hyrule Castle Fairy', 'Hyrule Castle Fairy'), - ('Ganons Castle Fairy', 'Ganons Castle Fairy'), - ('Castle Town Rupee Room', 'Castle Town Rupee Room'), - ('Castle Town Bazaar', 'Castle Town Bazaar'), - ('Castle Town Mask Shop', 'Castle Town Mask Shop'), - ('Castle Town Shooting Gallery', 'Castle Town Shooting Gallery'), - ('Castle Town Bombchu Bowling', 'Castle Town Bombchu Bowling'), - ('Castle Town Potion Shop', 'Castle Town Potion Shop'), - ('Castle Town Treasure Chest Game', 'Castle Town Treasure Chest Game'), - ('Castle Town Bombchu Shop', 'Castle Town Bombchu Shop'), - ('Castle Town Dog Lady', 'Castle Town Dog Lady'), - ('Castle Town Man in Green House', 'Castle Town Man in Green House'), - ('Carpenter Boss House', 'Carpenter Boss House'), - ('House of Skulltulla', 'House of Skulltulla'), - ('Impas House', 'Impas House'), - ('Impas House Back', 'Impas House Back'), - ('Windmill', 'Windmill'), - ('Kakariko Bazaar', 'Kakariko Bazaar'), - ('Kakariko Shooting Gallery', 'Kakariko Shooting Gallery'), - ('Kakariko Potion Shop Front', 'Kakariko Potion Shop Front'), - ('Kakariko Potion Shop Back', 'Kakariko Potion Shop Back'), - ('Odd Medicine Building', 'Odd Medicine Building'), - ('Shield Grave', 'Shield Grave'), - ('Heart Piece Grave', 'Heart Piece Grave'), - ('Composer Grave', 'Composer Grave'), - ('Dampes Grave', 'Dampes Grave'), - ('Crater Fairy', 'Crater Fairy'), - ('Mountain Summit Fairy', 'Mountain Summit Fairy'), - ('Dampes House', 'Dampes House'), - ('Talon House', 'Talon House'), - ('Ingo Barn', 'Ingo Barn'), - ('Lon Lon Corner Tower', 'Lon Lon Corner Tower'), - ('Zora Shop', 'Zora Shop'), - ('Zoras Fountain Fairy', 'Zoras Fountain Fairy'), - ('Kokiri Forest Storms Grotto', 'Kokiri Forest Storms Grotto'), - ('Lost Woods Generic Grotto', 'Lost Woods Generic Grotto'), - ('Deku Theater', 'Deku Theater'), - ('Lost Woods Sales Grotto', 'Lost Woods Sales Grotto'), - ('Meadow Fairy Grotto', 'Meadow Fairy Grotto'), - ('Front of Meadow Grotto', 'Front of Meadow Grotto'), - ('Lon Lon Grotto', 'Lon Lon Grotto'), - ('Remote Southern Grotto', 'Remote Southern Grotto'), - ('Field Near Lake Outside Fence Grotto', 'Field Near Lake Outside Fence Grotto'), - ('Field Near Lake Inside Fence Grotto', 'Field Near Lake Inside Fence Grotto'), - ('Field Valley Grotto', 'Field Valley Grotto'), - ('Field West Castle Town Grotto', 'Field West Castle Town Grotto'), - ('Field Far West Castle Town Grotto', 'Field Far West Castle Town Grotto'), - ('Field Kakariko Grotto', 'Field Kakariko Grotto'), - ('Kakariko Bombable Grotto', 'Kakariko Bombable Grotto'), - ('Kakariko Back Grotto', 'Kakariko Back Grotto'), - ('Mountain Bombable Grotto', 'Mountain Bombable Grotto'), - ('Mountain Storms Grotto', 'Mountain Storms Grotto'), - ('Top of Crater Grotto', 'Top of Crater Grotto'), - ('Field North Lon Lon Grotto', 'Field North Lon Lon Grotto'), - ('Castle Storms Grotto', 'Castle Storms Grotto'), - ('Zora River Plateau Open Grotto', 'Zora River Plateau Open Grotto'), - ('Zora River Plateau Bombable Grotto', 'Zora River Plateau Bombable Grotto'), - ('Lake Hylia Grotto', 'Lake Hylia Grotto') - ] - -# non shuffled dungeons -default_dungeon_connections = [('Deku Tree', 'Deku Tree Lobby'), - ('Deku Tree Exit', 'Kokiri Forest'), - ('Dodongos Cavern', 'Dodongos Cavern Beginning'), - ('Dodongos Cavern Exit', 'Dodongos Cavern Entryway'), - ('Jabu Jabus Belly', 'Jabu Jabus Belly Beginning'), - ('Jabu Jabus Belly Exit', 'Zoras Fountain'), - ('Forest Temple Entrance', 'Forest Temple Lobby'), - ('Forest Temple Exit', 'Forest Temple Entry Area'), - ('Bottom of the Well', 'Bottom of the Well'), - ('Bottom of the Well Exit', 'Kakariko Village'), - ('Fire Temple Entrance', 'Fire Temple Lower'), - ('Fire Temple Exit', 'Death Mountain Crater Central'), - ('Ice Cavern Entrance', 'Ice Cavern'), - ('Ice Cavern Exit', 'Outside Ice Cavern'), - ('Water Temple Entrance', 'Water Temple Lobby'), - ('Water Temple Exit', 'Lake Hylia'), - ('Shadow Temple Entrance', 'Shadow Temple Beginning'), - ('Shadow Temple Exit', 'Shadow Temple Warp Region'), - ('Gerudo Training Grounds Entrance', 'Gerudo Training Grounds Lobby'), - ('Gerudo Training Grounds Exit', 'Gerudo Fortress'), - ('Spirit Temple Entrance', 'Spirit Temple Lobby'), - ('Spirit Temple Exit', 'Desert Colossus'), - ('Rainbow Bridge', 'Ganons Castle Lobby'), - ('Ganons Castle Exit', 'Ganons Castle Grounds') - ] +import random + +def link_entrances(world): + + # setup mandatory connections + for exitname, regionname in mandatory_connections: + connect_simple(world, exitname, regionname) + if world.dungeon_mq['DT']: + for exitname, regionname in DT_MQ_connections: + connect_simple(world, exitname, regionname) + else: + for exitname, regionname in DT_vanilla_connections: + connect_simple(world, exitname, regionname) + if world.dungeon_mq['DC']: + for exitname, regionname in DC_MQ_connections: + connect_simple(world, exitname, regionname) + else: + for exitname, regionname in DC_vanilla_connections: + connect_simple(world, exitname, regionname) + if world.dungeon_mq['JB']: + for exitname, regionname in JB_MQ_connections: + connect_simple(world, exitname, regionname) + else: + for exitname, regionname in JB_vanilla_connections: + connect_simple(world, exitname, regionname) + if world.dungeon_mq['FoT']: + for exitname, regionname in FoT_MQ_connections: + connect_simple(world, exitname, regionname) + else: + for exitname, regionname in FoT_vanilla_connections: + connect_simple(world, exitname, regionname) + if world.dungeon_mq['FiT']: + for exitname, regionname in FiT_MQ_connections: + connect_simple(world, exitname, regionname) + else: + for exitname, regionname in FiT_vanilla_connections: + connect_simple(world, exitname, regionname) + if world.dungeon_mq['WT']: + for exitname, regionname in WT_MQ_connections: + connect_simple(world, exitname, regionname) + else: + for exitname, regionname in WT_vanilla_connections: + connect_simple(world, exitname, regionname) + if world.dungeon_mq['GTG']: + for exitname, regionname in GTG_MQ_connections: + connect_simple(world, exitname, regionname) + else: + for exitname, regionname in GTG_vanilla_connections: + connect_simple(world, exitname, regionname) + if world.dungeon_mq['SpT']: + for exitname, regionname in SpT_MQ_connections: + connect_simple(world, exitname, regionname) + else: + for exitname, regionname in SpT_vanilla_connections: + connect_simple(world, exitname, regionname) + if world.dungeon_mq['ShT']: + for exitname, regionname in ShT_MQ_connections: + connect_simple(world, exitname, regionname) + else: + for exitname, regionname in ShT_vanilla_connections: + connect_simple(world, exitname, regionname) + # if we do not shuffle, set default connections + if world.shuffle == 'vanilla': + for exitname, regionname in default_connections: + connect_simple(world, exitname, regionname) + for exitname, regionname in default_dungeon_connections: + connect_simple(world, exitname, regionname) + else: + raise NotImplementedError('Shuffling not supported yet') + + +def connect_simple(world, exitname, regionname): + world.get_entrance(exitname).connect(world.get_region(regionname)) + +def connect_entrance(world, entrancename, exitname): + entrance = world.get_entrance(entrancename) + # check if we got an entrance or a region to connect to + try: + region = world.get_region(exitname) + exit = None + except RuntimeError: + exit = world.get_entrance(exitname) + region = exit.parent_region + + # if this was already connected somewhere, remove the backreference + if entrance.connected_region is not None: + entrance.connected_region.entrances.remove(entrance) + + target = exit_ids[exit.name][0] if exit is not None else exit_ids.get(region.name, None) + addresses = door_addresses[entrance.name][0] + + entrance.connect(region, addresses, target) + world.spoiler.set_entrance(entrance.name, exit.name if exit is not None else region.name, 'entrance') + + +def connect_exit(world, exitname, entrancename): + entrance = world.get_entrance(entrancename) + exit = world.get_entrance(exitname) + + # if this was already connected somewhere, remove the backreference + if exit.connected_region is not None: + exit.connected_region.entrances.remove(exit) + + exit.connect(entrance.parent_region, door_addresses[entrance.name][1], exit_ids[exit.name][1]) + world.spoiler.set_entrance(entrance.name, exit.name, 'exit') + + +def connect_random(world, exitlist, targetlist, two_way=False): + targetlist = list(targetlist) + random.shuffle(targetlist) + + for exit, target in zip(exitlist, targetlist): + if two_way: + connect_two_way(world, exit, target) + else: + connect_entrance(world, exit, target) + + +def connect_doors(world, doors, targets): + """This works inplace""" + random.shuffle(doors) + random.shuffle(targets) + while doors: + door = doors.pop() + target = targets.pop() + connect_entrance(world, door, target) + +# these are connections that cannot be shuffled and always exist. They link together separate parts of the world we need to divide into regions +mandatory_connections = [('Adult Forest Warp Pad', 'Forest Temple Entry Area'), + ('Child Forest Warp Pad', 'Sacred Forest Meadow'), + ('Temple Warp Pad', 'Temple of Time'), + ('Crater Warp Pad', 'Death Mountain Crater Central'), + ('Lake Warp Pad', 'Lake Hylia'), + ('Graveyard Warp Pad', 'Shadow Temple Warp Region'), + ('Colossus Warp Pad', 'Desert Colossus'), + ('Lost Woods', 'Lost Woods'), + ('Lost Woods Front', 'Kokiri Forest'), + ('Woods to Goron City', 'Goron City Woods Warp'), + ('Goron City to Woods', 'Lost Woods'), + ('Goron City from Woods', 'Goron City'), + ('Goron City Bomb Wall', 'Goron City Woods Warp'), + ('Lost Woods Dive Warp', 'Zora River Child'), + ('Zora River Dive Warp', 'Lost Woods'), + ('Meadow Entrance', 'Sacred Forest Meadow Entryway'), + ('Meadow Exit', 'Lost Woods'), + ('Meadow Gate', 'Sacred Forest Meadow'), + ('Meadow Gate Exit', 'Sacred Forest Meadow Entryway'), + ('Adult Meadow Access', 'Forest Temple Entry Area'), + ('Adult Meadow Exit', 'Lost Woods'), + ('Lost Woods Bridge', 'Lost Woods Bridge'), + ('Kokiri Forest Entrance', 'Kokiri Forest'), + ('Field to Forest', 'Lost Woods Bridge'), + ('Forest Exit', 'Hyrule Field'), + ('Field to Lake', 'Lake Hylia'), + ('Lake Hylia Dive Warp', 'Zoras Domain'), + ('Zoras Domain Dive Warp', 'Lake Hylia'), + ('Lake Exit', 'Hyrule Field'), + ('Field to Valley', 'Gerudo Valley'), + ('Valley Exit', 'Hyrule Field'), + ('Valley River', 'Lake Hylia'), + ('Bridge Crossing', 'Gerudo Valley Far Side'), + ('Fortress Entrance', 'Gerudo Fortress'), + ('Haunted Wasteland Entrance', 'Haunted Wasteland'), + ('Haunted Wasteland Crossing', 'Desert Colossus'), + ('Field to Castle Town', 'Castle Town'), + ('Castle Town Exit', 'Hyrule Field'), + ('Hyrule Castle Grounds', 'Hyrule Castle Grounds'), + ('Hyrule Castle Grounds Exit', 'Castle Town'), + ('Hyrule Castle Garden', 'Hyrule Castle Garden'), + ('Hyrule Castle Garden Exit', 'Hyrule Castle Grounds'), + ('Ganons Castle Grounds', 'Ganons Castle Grounds'), + ('Ganons Castle Grounds Exit', 'Castle Town'), + ('Field to Kakariko', 'Kakariko Village'), + ('Kakariko Exit', 'Hyrule Field'), + ('Graveyard Entrance', 'Graveyard'), + ('Graveyard Exit', 'Kakariko Village'), + ('Drop to Graveyard', 'Graveyard'), + ('Death Mountain Entrance', 'Death Mountain'), + ('Death Mountain Exit', 'Kakariko Village'), + ('Goron City Entrance', 'Goron City'), + ('Goron City Exit', 'Death Mountain'), + ('Darunias Chamber', 'Darunias Chamber'), + ('Darunias Chamber Exit', 'Goron City'), + ('Mountain Crater Entrance', 'Death Mountain Crater Upper'), + ('Crater Exit', 'Death Mountain'), + ('Crater Hover Boots', 'Death Mountain Crater Lower'), + ('Crater Ascent', 'Death Mountain Crater Upper'), + ('Crater Scarecrow', 'Death Mountain Crater Central'), + ('Crater Bridge', 'Death Mountain Crater Central'), + ('Crater Bridge Reverse', 'Death Mountain Crater Lower'), + ('Crater to City', 'Goron City'), + ('Crater Access', 'Death Mountain Crater Lower'), + ('Dodongos Cavern Rocks', 'Dodongos Cavern Entryway'), + ('Mountain Access from Behind Rock', 'Death Mountain'), + ('Field to Zora River', 'Zora River Front'), + ('Zora River Exit', 'Hyrule Field'), + ('Zora River Rocks', 'Zora River Child'), + ('Zora River Downstream', 'Zora River Front'), + ('Zora River Child to Shared', 'Zora River Shared'), + ('Zora River Adult to Shared', 'Zora River Shared'), + ('Zora River Waterfall', 'Zoras Domain'), + ('Zoras Domain Exit', 'Zora River Child'), + ('Behind King Zora', 'Zoras Fountain'), + ('Zoras Fountain Exit', 'Zoras Domain'), + ('Zora River Adult', 'Zora River Adult'), + ('Zoras Domain Adult Access', 'Zoras Domain Frozen'), + ('Zoras Fountain Adult Access', 'Outside Ice Cavern'), + ('Lon Lon Rance Entrance', 'Lon Lon Ranch'), + ('Lon Lon Exit', 'Hyrule Field'), + ('Ganons Castle Forest Trial', 'Ganons Castle Forest Trial'), + ('Ganons Castle Fire Trial', 'Ganons Castle Fire Trial'), + ('Ganons Castle Water Trial', 'Ganons Castle Water Trial'), + ('Ganons Castle Shadow Trial', 'Ganons Castle Shadow Trial'), + ('Ganons Castle Spirit Trial', 'Ganons Castle Spirit Trial'), + ('Ganons Castle Light Trial', 'Ganons Castle Light Trial'), + ('Ganons Castle Tower', 'Ganons Castle Tower') + ] + +DT_vanilla_connections = [('Deku Tree Slingshot Passage', 'Deku Tree Slingshot Room'), + ('Deku Tree Slingshot Exit', 'Deku Tree Lobby'), + ('Deku Tree Basement Path', 'Deku Tree Boss Room'), + ('Deku Tree Basement Vines', 'Deku Tree Lobby') + ] + +DT_MQ_connections = [('Deku Tree Compass Passage', 'Deku Tree Compass Room'), + ('Deku Tree Compass Exit', 'Deku Tree Lobby'), + ('Deku Tree Basement Path', 'Deku Tree Boss Room'), + ('Deku Tree Basement Vines', 'Deku Tree Lobby') + ] + +DC_vanilla_connections = [('Dodongos Cavern Lobby', 'Dodongos Cavern Lobby'), + ('Dodongos Cavern Retreat', 'Dodongos Cavern Beginning'), + ('Dodongos Cavern Left Door', 'Dodongos Cavern Climb'), + ('Dodongos Cavern Bridge Fall', 'Dodongos Cavern Lobby'), + ('Dodongos Cavern Slingshot Target', 'Dodongos Cavern Far Bridge'), + ('Dodongos Cavern Bridge Fall 2', 'Dodongos Cavern Lobby'), + ('Dodongos Cavern Bomb Drop', 'Dodongos Cavern Boss Area'), + ('Dodongos Cavern Exit Skull', 'Dodongos Cavern Lobby') + ] + +DC_MQ_connections = [('Dodongos Cavern Lobby', 'Dodongos Cavern Lobby'), + ('Dodongos Cavern Bomb Drop', 'Dodongos Cavern Boss Area') + ] + +JB_vanilla_connections = [('Jabu Jabus Belly Ceiling Switch', 'Jabu Jabus Belly Main'), + ('Jabu Jabus Belly Retreat', 'Jabu Jabus Belly Beginning'), + ('Jabu Jabus Belly Tentacles', 'Jabu Jabus Belly Depths'), + ('Jabu Jabus Belly Elevator', 'Jabu Jabus Belly Main'), + ('Jabu Jabus Belly Octopus', 'Jabu Jabus Belly Boss Area'), + ('Jabu Jabus Belly Final Backtrack', 'Jabu Jabus Belly Main') + ] + +JB_MQ_connections = [('Jabu Jabus Belly Cow Switch', 'Jabu Jabus Belly Main'), + ('Jabu Jabus Belly Retreat', 'Jabu Jabus Belly Beginning'), + ('Jabu Jabus Belly Tentacle Access', 'Jabu Jabus Belly Depths'), + ('Jabu Jabus Belly Elevator', 'Jabu Jabus Belly Main'), + ('Jabu Jabus Belly Octopus', 'Jabu Jabus Belly Boss Area'), + ('Jabu Jabus Belly Final Backtrack', 'Jabu Jabus Belly Main') + ] + +FoT_vanilla_connections = [('Forest Temple Song of Time Block', 'Forest Temple NW Outdoors'), + ('Forest Temple Lobby Eyeball Switch', 'Forest Temple NE Outdoors'), + ('Forest Temple Lobby Locked Door', 'Forest Temple Block Push Room'), + ('Forest Temple Through Map Room', 'Forest Temple NE Outdoors'), + ('Forest Temple Well Connection', 'Forest Temple NW Outdoors'), + ('Forest Temple Outside to Lobby', 'Forest Temple Lobby'), + ('Forest Temple Scarecrows Song', 'Forest Temple Falling Room'), + ('Forest Temple Falling Room Exit', 'Forest Temple NE Outdoors'), + ('Forest Temple Elevator', 'Forest Temple Boss Region'), + ('Forest Temple Outside Backdoor', 'Forest Temple Outside Upper Ledge'), + ('Forest Temple Twisted Hall', 'Forest Temple Bow Region'), + ('Forest Temple Straightened Hall', 'Forest Temple Straightened Hall'), + ('Forest Temple Boss Key Chest Drop', 'Forest Temple Outside Upper Ledge'), + ('Forest Temple Outside Ledge Drop', 'Forest Temple NW Outdoors'), + ('Forest Temple Drop to Falling Room', 'Forest Temple Falling Room') + ] + +FoT_MQ_connections = [('Forest Temple Lobby Locked Door', 'Forest Temple Central Area'), + ('Forest Temple West Eye Switch', 'Forest Temple NW Outdoors'), + ('Forest Temple East Eye Switch', 'Forest Temple NE Outdoors'), + ('Forest Temple Block Puzzle Solve', 'Forest Temple After Block Puzzle'), + ('Forest Temple Crystal Switch Jump', 'Forest Temple Outdoor Ledge'), + ('Forest Temple Drop to NW Outdoors', 'Forest Temple NW Outdoors'), + ('Forest Temple Well Connection', 'Forest Temple NE Outdoors'), + ('Forest Temple Webs', 'Forest Temple Outdoors Top Ledges'), + ('Forest Temple Climb to Top Ledges', 'Forest Temple Outdoors Top Ledges'), + ('Forest Temple Longshot to NE Outdoors Ledge', 'Forest Temple NE Outdoors Ledge'), + ('Forest Temple Top Drop to NE Outdoors', 'Forest Temple NE Outdoors'), + ('Forest Temple Drop to NE Outdoors', 'Forest Temple NE Outdoors'), + ('Forest Temple Song of Time Block Climb', 'Forest Temple Falling Room'), + ('Forest Temple Twisted Hall', 'Forest Temple Bow Region'), + ('Forest Temple Drop to Falling Room', 'Forest Temple Falling Room'), + ('Forest Temple Falling Room Exit', 'Forest Temple NE Outdoors Ledge'), + ('Forest Temple Elevator', 'Forest Temple Boss Region') + ] + +FiT_vanilla_connections = [('Fire Temple Early Climb', 'Fire Temple Middle'), + ('Fire Temple Fire Maze Escape', 'Fire Temple Upper') + ] + +FiT_MQ_connections = [('Fire Temple Boss Door', 'Fire Boss Room'), + ('Fire Temple Lower Locked Door', 'Fire Lower Locked Door'), + ('Fire Temple Hammer Statue', 'Fire Big Lava Room'), + ('Fire Temple Early Climb', 'Fire Lower Maze'), + ('Fire Temple Maze Climb', 'Fire Upper Maze'), + ('Fire Temple Maze Escape', 'Fire Temple Upper') + ] + +WT_vanilla_connections = [('Water Temple Central Pillar', 'Water Temple Middle Water Level'), + ('Water Temple Upper Locked Door', 'Water Temple Dark Link Region') + ] + +WT_MQ_connections = [('Water Temple Water Level Switch', 'Water Temple Lowered Water Levels'), + ('Water Temple Locked Door', 'Water Temple Dark Link Region'), + ('Water Temple Basement Gates Switch', 'Water Temple Basement Gated Areas') + ] + +GTG_vanilla_connections = [('Gerudo Training Ground Left Silver Rupees', 'Gerudo Training Grounds Heavy Block Room'), + ('Gerudo Training Ground Beamos', 'Gerudo Training Grounds Lava Room'), + ('Gerudo Training Ground Central Door', 'Gerudo Training Grounds Central Maze'), + ('Gerudo Training Grounds Right Locked Doors', 'Gerudo Training Grounds Central Maze Right'), + ('Gerudo Training Grounds Maze Exit', 'Gerudo Training Grounds Lava Room'), + ('Gerudo Training Grounds Maze Ledge', 'Gerudo Training Grounds Central Maze Right'), + ('Gerudo Training Grounds Right Hookshot Target', 'Gerudo Training Grounds Hammer Room'), + ('Gerudo Training Grounds Hammer Target', 'Gerudo Training Grounds Eye Statue Lower'), + ('Gerudo Training Grounds Hammer Room Clear', 'Gerudo Training Grounds Lava Room'), + ('Gerudo Training Grounds Eye Statue Exit', 'Gerudo Training Grounds Hammer Room'), + ('Gerudo Training Grounds Eye Statue Drop', 'Gerudo Training Grounds Eye Statue Lower'), + ('Gerudo Training Grounds Hidden Hookshot Target', 'Gerudo Training Grounds Eye Statue Upper') + ] + +GTG_MQ_connections = [('Gerudo Training Grounds Left Door', 'Gerudo Training Grounds Left Side'), + ('Gerudo Training Grounds Right Door', 'Gerudo Training Grounds Right Side'), + ('Gerudo Training Grounds Longshot Target', 'Gerudo Training Grounds Stalfos Room'), + ('Gerudo Training Grounds Song of Time Block', 'Gerudo Training Grounds Back Areas'), + ('Gerudo Training Grounds Rusted Switch', 'Gerudo Training Grounds Central Maze Right'), + ('Gerudo Training Grounds Loop Around', 'Gerudo Training Grounds Right Side') + ] + +SpT_vanilla_connections = [('Spirit Temple Crawl Passage', 'Child Spirit Temple'), + ('Spirit Temple Silver Block', 'Early Adult Spirit Temple'), + ('Child Spirit Temple Climb', 'Child Spirit Temple Climb'), + ('Child Spirit Temple Passthrough', 'Spirit Temple Central Chamber'), + ('Adult Spirit Temple Passthrough', 'Spirit Temple Central Chamber'), + ('Spirit Temple Middle Child Door', 'Child Spirit Temple Climb'), + ('Spirit Temple to Hands', 'Spirit Temple Outdoor Hands'), + ('Spirit Temple Central Locked Door', 'Spirit Temple Beyond Central Locked Door'), + ('Spirit Temple Final Locked Door', 'Spirit Temple Beyond Final Locked Door'), + ] + +SpT_MQ_connections = [('Spirit Temple Crawl Passage', 'Child Spirit Temple'), + ('Spirit Temple Ceiling Passage', 'Adult Spirit Temple'), + ('Child Spirit Temple to Shared', 'Spirit Temple Shared'), + ('Adult Spirit Temple to Shared', 'Spirit Temple Shared'), + ('Adult Spirit Temple Descent', 'Lower Adult Spirit Temple'), + ('Spirit Temple Climbable Wall', 'Spirit Temple Boss Area'), + ('Mirror Shield Exit', 'Mirror Shield Hand'), + ('Silver Gauntlets Exit', 'Silver Gauntlets Hand') + ] + +ShT_vanilla_connections = [('Shadow Temple First Pit', 'Shadow Temple First Beamos'), + ('Shadow Temple Bomb Wall', 'Shadow Temple Huge Pit'), + ('Shadow Temple Hookshot Target', 'Shadow Temple Wind Tunnel'), + ('Shadow Temple Boat', 'Shadow Temple Beyond Boat') + ] + +ShT_MQ_connections = [('Shadow Temple First Pit', 'Shadow Temple First Beamos'), + ('Shadow Temple Beginning Locked Door', 'Shadow Temple Dead Hand Area'), + ('Shadow Temple Bomb Wall', 'Shadow Temple Huge Pit'), + ('Shadow Temple Hookshot Target', 'Shadow Temple Wind Tunnel'), + ('Shadow Temple Boat', 'Shadow Temple Beyond Boat'), + ('Shadow Temple Longshot Target', 'Shadow Temple Invisible Maze') + ] + +# non-shuffled entrance links +default_connections = [('Links House Exit', 'Kokiri Forest'), + ('Links House', 'Links House'), + ('Mido House Exit', 'Kokiri Forest'), + ('Mido House', 'Mido House'), + ('Saria House Exit', 'Kokiri Forest'), + ('Saria House', 'Saria House'), + ('House of Twins Exit', 'Kokiri Forest'), + ('House of Twins', 'House of Twins'), + ('Know It All House Exit', 'Kokiri Forest'), + ('Know It All House', 'Know It All House'), + ('Kokiri Shop Exit', 'Kokiri Forest'), + ('Kokiri Shop', 'Kokiri Shop'), + ('Lake Hylia Lab', 'Lake Hylia Lab'), + ('Fishing Hole', 'Fishing Hole'), + ('Colossus Fairy', 'Colossus Fairy'), + ('Temple of Time', 'Temple of Time'), + ('Temple of Time Exit', 'Castle Town'), + ('Door of Time', 'Beyond Door of Time'), + ('Emerge as Adult', 'Temple of Time'), + ('Hyrule Castle Fairy', 'Hyrule Castle Fairy'), + ('Ganons Castle Fairy', 'Ganons Castle Fairy'), + ('Castle Town Rupee Room', 'Castle Town Rupee Room'), + ('Castle Town Bazaar', 'Castle Town Bazaar'), + ('Castle Town Mask Shop', 'Castle Town Mask Shop'), + ('Castle Town Shooting Gallery', 'Castle Town Shooting Gallery'), + ('Castle Town Bombchu Bowling', 'Castle Town Bombchu Bowling'), + ('Castle Town Potion Shop', 'Castle Town Potion Shop'), + ('Castle Town Treasure Chest Game', 'Castle Town Treasure Chest Game'), + ('Castle Town Bombchu Shop', 'Castle Town Bombchu Shop'), + ('Castle Town Dog Lady', 'Castle Town Dog Lady'), + ('Castle Town Man in Green House', 'Castle Town Man in Green House'), + ('Carpenter Boss House', 'Carpenter Boss House'), + ('House of Skulltulla', 'House of Skulltulla'), + ('Impas House', 'Impas House'), + ('Impas House Back', 'Impas House Back'), + ('Windmill', 'Windmill'), + ('Kakariko Bazaar', 'Kakariko Bazaar'), + ('Kakariko Shooting Gallery', 'Kakariko Shooting Gallery'), + ('Kakariko Potion Shop Front', 'Kakariko Potion Shop Front'), + ('Kakariko Potion Shop Back', 'Kakariko Potion Shop Back'), + ('Odd Medicine Building', 'Odd Medicine Building'), + ('Shield Grave', 'Shield Grave'), + ('Heart Piece Grave', 'Heart Piece Grave'), + ('Composer Grave', 'Composer Grave'), + ('Dampes Grave', 'Dampes Grave'), + ('Crater Fairy', 'Crater Fairy'), + ('Mountain Summit Fairy', 'Mountain Summit Fairy'), + ('Dampes House', 'Dampes House'), + ('Talon House', 'Talon House'), + ('Ingo Barn', 'Ingo Barn'), + ('Lon Lon Corner Tower', 'Lon Lon Corner Tower'), + ('Zora Shop Child Access', 'Zora Shop'), + ('Goron Shop', 'Goron Shop'), + ('Zoras Fountain Fairy', 'Zoras Fountain Fairy'), + ('Kokiri Forest Storms Grotto', 'Kokiri Forest Storms Grotto'), + ('Lost Woods Generic Grotto', 'Lost Woods Generic Grotto'), + ('Deku Theater', 'Deku Theater'), + ('Lost Woods Sales Grotto', 'Lost Woods Sales Grotto'), + ('Meadow Fairy Grotto', 'Meadow Fairy Grotto'), + ('Front of Meadow Grotto', 'Front of Meadow Grotto'), + ('Lon Lon Grotto', 'Lon Lon Grotto'), + ('Remote Southern Grotto', 'Remote Southern Grotto'), + ('Field Near Lake Outside Fence Grotto', 'Field Near Lake Outside Fence Grotto'), + ('Field Near Lake Inside Fence Grotto', 'Field Near Lake Inside Fence Grotto'), + ('Field Valley Grotto', 'Field Valley Grotto'), + ('Field West Castle Town Grotto', 'Field West Castle Town Grotto'), + ('Field Far West Castle Town Grotto', 'Field Far West Castle Town Grotto'), + ('Field Kakariko Grotto', 'Field Kakariko Grotto'), + ('Kakariko Bombable Grotto', 'Kakariko Bombable Grotto'), + ('Kakariko Back Grotto', 'Kakariko Back Grotto'), + ('Mountain Bombable Grotto', 'Mountain Bombable Grotto'), + ('Mountain Storms Grotto', 'Mountain Storms Grotto'), + ('Top of Crater Grotto', 'Top of Crater Grotto'), + ('Field North Lon Lon Grotto', 'Field North Lon Lon Grotto'), + ('Castle Storms Grotto', 'Castle Storms Grotto'), + ('Zora River Plateau Open Grotto', 'Zora River Plateau Open Grotto'), + ('Zora River Plateau Bombable Grotto', 'Zora River Plateau Bombable Grotto'), + ('Lake Hylia Grotto', 'Lake Hylia Grotto'), + ('Meadow Storms Grotto Child Access', 'Meadow Storms Grotto'), + ('Meadow Storms Grotto Adult Access', 'Meadow Storms Grotto'), + ('Gerudo Valley Storms Grotto','Gerudo Valley Storms Grotto'), + ('Desert Colossus Grotto','Desert Colossus Grotto'), + ('Goron City Grotto', 'Goron City Grotto'), + ('DMC Hammer Grotto', 'DMC Hammer Grotto'), + ('Zora River Storms Grotto', 'Zora River Storms Grotto'), + ('Zora Shop Adult Access', 'Zora Shop'), + ] + +# non shuffled dungeons +default_dungeon_connections = [('Deku Tree', 'Deku Tree Lobby'), + ('Deku Tree Exit', 'Kokiri Forest'), + ('Dodongos Cavern', 'Dodongos Cavern Beginning'), + ('Dodongos Cavern Exit', 'Dodongos Cavern Entryway'), + ('Jabu Jabus Belly', 'Jabu Jabus Belly Beginning'), + ('Jabu Jabus Belly Exit', 'Zoras Fountain'), + ('Forest Temple Entrance', 'Forest Temple Lobby'), + ('Forest Temple Exit', 'Forest Temple Entry Area'), + ('Bottom of the Well', 'Bottom of the Well'), + ('Bottom of the Well Exit', 'Kakariko Village'), + ('Fire Temple Entrance', 'Fire Temple Lower'), + ('Fire Temple Exit', 'Death Mountain Crater Central'), + ('Ice Cavern Entrance', 'Ice Cavern'), + ('Ice Cavern Exit', 'Outside Ice Cavern'), + ('Water Temple Entrance', 'Water Temple Lobby'), + ('Water Temple Exit', 'Lake Hylia'), + ('Shadow Temple Entrance', 'Shadow Temple Beginning'), + ('Shadow Temple Exit', 'Shadow Temple Warp Region'), + ('Gerudo Training Grounds Entrance', 'Gerudo Training Grounds Lobby'), + ('Gerudo Training Grounds Exit', 'Gerudo Fortress'), + ('Spirit Temple Entrance', 'Spirit Temple Lobby'), + ('Spirit Temple Exit', 'Desert Colossus'), + ('Rainbow Bridge', 'Ganons Castle Lobby'), + ('Ganons Castle Exit', 'Ganons Castle Grounds') + ] diff --git a/Fill.py b/Fill.py index cf7d86ffa..a6e108d71 100644 --- a/Fill.py +++ b/Fill.py @@ -1,6 +1,7 @@ import random import logging from BaseClasses import CollectionState +from Rules import set_shop_rules class FillError(RuntimeError): pass @@ -12,38 +13,55 @@ def distribute_items_restrictive(window, worlds, fill_locations=None): 'Song from Ocarina of Time', 'Song at Windmill', 'Sheik Forest Song', 'Sheik at Temple', 'Sheik in Crater', 'Sheik in Ice Cavern', 'Sheik in Kakariko', 'Sheik at Colossus']] + shop_locations = [location for world in worlds for location in world.get_unfilled_locations() if location.type == 'Shop' and location.price == None] + # If not passed in, then get a shuffled list of locations to fill in if not fill_locations: - fill_locations = [location for world in worlds for location in world.get_unfilled_locations() if location not in song_locations] + fill_locations = [location for world in worlds for location in world.get_unfilled_locations() if location not in song_locations and location not in shop_locations] world_states = [world.state for world in worlds] window.locationcount = len(fill_locations) + len(song_locations) window.fillcount = 0 # Generate the itempools + shopitempool = [item for world in worlds for item in world.itempool if item.type == 'Shop'] songitempool = [item for world in worlds for item in world.itempool if item.type == 'Song'] - itempool = [item for world in worlds for item in world.itempool if item.type != 'Song'] + itempool = [item for world in worlds for item in world.itempool if item.type != 'Shop' and item.type != 'Song'] if worlds[0].shuffle_song_items: itempool.extend(songitempool) fill_locations.extend(song_locations) # add unrestricted dungeon items to main item pool itempool.extend([item for world in worlds for item in world.get_unrestricted_dungeon_items()]) + dungeon_items = [item for world in worlds for item in world.get_restricted_dungeon_items()] random.shuffle(itempool) # randomize item placement order. this ordering can greatly affect the location accessibility bias progitempool = [item for item in itempool if item.advancement] prioitempool = [item for item in itempool if not item.advancement and item.priority] restitempool = [item for item in itempool if not item.advancement and not item.priority] + + # We place all the shop items first. Like songs, they have a more limited + # set of locations that they can be placed in, so placing them first will + # reduce the odds of creating unbeatable seeds. This also avoids needing + # to create item rules for every location for whether they are a shop item + # or not. This shouldn't have much affect on item bias. + if shop_locations: + random.shuffle(shop_locations) + fill_shops(window, worlds, shop_locations, shopitempool, itempool + songitempool + dungeon_items) + # Update the shop item access rules + for world in worlds: + set_shop_rules(world) + # If there are dungeon items that are restricted to their original dungeon, # we must place them first to make sure that there is always a location to # place them. This could probably be replaced for more intelligent item # placement, but will leave as is for now random.shuffle(fill_locations) - fill_dungeons_restrictive(window, worlds, fill_locations, itempool + songitempool) + fill_dungeons_restrictive(window, worlds, fill_locations, dungeon_items, itempool + songitempool) for world in worlds: world.keys_placed = True - + # I have no idea why the locations are reversed but this is how it was, # so whatever. It can't hurt I guess random.shuffle(fill_locations) @@ -58,6 +76,11 @@ def distribute_items_restrictive(window, worlds, fill_locations=None): if not worlds[0].shuffle_song_items: fill_songs(window, worlds, song_locations, songitempool, progitempool) + # Put one item in every dungeon, needs to be done before other items are + # placed to ensure there is a spot available for them + if worlds[0].one_item_per_dungeon: + fill_dungeon_unique_item(window, worlds, fill_locations, progitempool) + # Place all progression items. This will include keys in keysanity. # Items in this group will check for reachability and will be placed # such that the game is guaranteed beatable. @@ -80,6 +103,12 @@ def distribute_items_restrictive(window, worlds, fill_locations=None): # Log unplaced item/location warnings for item in progitempool + prioitempool + restitempool: logging.getLogger('').debug('Unplaced Items: %s [World %d]' % (item.name, item.world.id)) + if progitempool + prioitempool + restitempool: + for item in progitempool + prioitempool + restitempool: + print('Unplaced Items: %s [World %d]' % (item.name, item.world.id)) + + raise FillError('Not all items are placed.') + if fill_locations: for location in fill_locations: logging.getLogger('').debug('Unfilled Locations: %s [World %d]' % (location.name, location.world.id)) @@ -88,11 +117,9 @@ def distribute_items_restrictive(window, worlds, fill_locations=None): # Places restricted dungeon items into the worlds. To ensure there is room for them. # they are placed first so it will assume all other items are reachable -def fill_dungeons_restrictive(window, worlds, shuffled_locations, itempool): +def fill_dungeons_restrictive(window, worlds, shuffled_locations, dungeon_items, itempool): # List of states with all non-key items all_state_base_list = CollectionState.get_states_with_items([world.state for world in worlds], itempool) - # list of all dungeon items to be placed - dungeon_items = [item for world in worlds for item in world.get_restricted_dungeon_items()] # shuffle this list to avoid placement bias random.shuffle(dungeon_items) @@ -109,6 +136,84 @@ def fill_dungeons_restrictive(window, worlds, shuffled_locations, itempool): world.state.clear_cached_unreachable() +# Places items into dungeon locations. This is used when there should be exactly +# one progression item per dungeon. This should be ran before all the progression +# items are places to ensure there is space to place them. +def fill_dungeon_unique_item(window, worlds, fill_locations, itempool, attempts=15): + # We should make sure that we don't count event items, shop items, + # token items, or dungeon items as a major item. itempool at this + # point should only be able to have tokens of those restrictions + # since the rest are already placed. + major_items = [item for item in itempool if item.type != 'Token'] + token_items = [item for item in itempool if item.type == 'Token'] + + while attempts: + attempts -= 1 + try: + # choose a random set of items and locations + dungeon_locations = [] + for dungeon in [dungeon for world in worlds for dungeon in world.dungeons]: + dungeon_locations.append(random.choice([location for region in dungeon.regions for location in region.locations if location in fill_locations])) + dungeon_items = random.sample(major_items, len(dungeon_locations)) + + new_dungeon_locations = list(dungeon_locations) + new_dungeon_items = list(dungeon_items) + non_dungeon_items = [item for item in major_items if item not in dungeon_items] + all_other_item_state = CollectionState.get_states_with_items([world.state for world in worlds], token_items + non_dungeon_items) + + # attempt to place the items into the locations + random.shuffle(new_dungeon_locations) + random.shuffle(new_dungeon_items) + fill_restrictive(window, worlds, all_other_item_state, new_dungeon_locations, new_dungeon_items) + if len(new_dungeon_locations) > 0: + raise FillError('Not all items were placed successfully') + + logging.getLogger('').info("Unique dungeon items placed") + + # remove the placed items from the fill_location and itempool + for location in dungeon_locations: + fill_locations.remove(location) + for item in dungeon_items: + itempool.remove(item) + + except FillError as e: + logging.getLogger('').info("Failed to place unique dungeon items. Will retry %s more times", attempts) + for location in dungeon_locations: + location.item = None + for dungeon in [dungeon for world in worlds for dungeon in world.dungeons]: + dungeon.major_items = 0 + logging.getLogger('').info('\t%s' % str(e)) + continue + break + else: + raise FillError('Unable to place unique dungeon items') + + +# Places the shop items into the world at the Shop locations +def fill_shops(window, worlds, locations, shoppool, itempool, attempts=15): + # List of states with all items + all_state_base_list = CollectionState.get_states_with_items([world.state for world in worlds], itempool) + + while attempts: + attempts -= 1 + try: + prizepool = list(shoppool) + prize_locs = list(locations) + random.shuffle(prizepool) + random.shuffle(prize_locs) + fill_restrictive(window, worlds, all_state_base_list, prize_locs, prizepool) + logging.getLogger('').info("Shop items placed") + except FillError as e: + logging.getLogger('').info("Failed to place shop items. Will retry %s more times", attempts) + for location in locations: + location.item = None + logging.getLogger('').info('\t%s' % str(e)) + continue + break + else: + raise FillError('Unable to place shops') + + # Places the songs into the world at the Song locations def fill_songs(window, worlds, locations, songpool, itempool, attempts=15): # get the song locations for each world @@ -129,11 +234,12 @@ def fill_songs(window, worlds, locations, songpool, itempool, attempts=15): random.shuffle(prizepool) random.shuffle(prize_locs) fill_restrictive(window, worlds, all_state_base_list, prize_locs, prizepool) + logging.getLogger('').info("Songs placed") except FillError as e: logging.getLogger('').info("Failed to place songs. Will retry %s more times", attempts) for location in empty_song_locations: location.item = None - logging.getLogger('').info(str(e)) + logging.getLogger('').info('\t%s' % str(e)) continue break else: @@ -184,7 +290,7 @@ def fill_restrictive(window, worlds, base_state_list, locations, itempool): raise FillError('Game unbeatable: No more spots to place %s [World %d]' % (item_to_place, item_to_place.world.id)) if not worlds[0].check_beatable_only: - logging.getLogger('').warning('Not all items placed. Game beatable anyway.') + logging.getLogger('').debug('Not all items placed. Game beatable anyway.') break # Place the item in the world and continue @@ -213,7 +319,7 @@ def fill_restrictive_fast(window, worlds, locations, itempool): # at this point if spot_to_fill is None: if not worlds[0].check_beatable_only: - logging.getLogger('').warning('Not all items placed. Game beatable anyway.') + logging.getLogger('').debug('Not all items placed. Game beatable anyway.') break # Place the item in the world and continue diff --git a/Gui.py b/Gui.py index 4c43a2f0b..433da9faa 100755 --- a/Gui.py +++ b/Gui.py @@ -3,9 +3,11 @@ from glob import glob import json import random +import re import os import shutil from tkinter import Scale, Checkbutton, OptionMenu, Toplevel, LabelFrame, Radiobutton, PhotoImage, Tk, BOTH, LEFT, RIGHT, BOTTOM, TOP, StringVar, IntVar, Frame, Label, W, E, X, N, S, NW, Entry, Spinbox, Button, filedialog, messagebox, ttk, HORIZONTAL, Toplevel +from tkinter.colorchooser import * from urllib.parse import urlparse from urllib.request import urlopen @@ -33,9 +35,12 @@ def settings_to_guivars(settings, guivars): guivar.set( "" ) else: if info.gui_params and 'options' in info.gui_params: - for gui_text,gui_value in info.gui_params['options'].items(): - if gui_value == value: - guivar.set( gui_text ) + if 'Custom Color' in info.gui_params['options'] and re.match(r'^[A-Fa-f0-9]{6}$', value): + guivar.set('Custom (#' + value + ')') + else: + for gui_text,gui_value in info.gui_params['options'].items(): + if gui_value == value: + guivar.set( gui_text ) else: guivar.set( value ) # text field for a number... @@ -58,7 +63,10 @@ def guivars_to_settings(guivars): result[name] = bool(guivar.get()) # dropdown/radiobox if info.type == str: - if info.gui_params and 'options' in info.gui_params: + # set guivar to hexcode if custom color + if re.match(r'^Custom \(#[A-Fa-f0-9]{6}\)$', guivar.get()): + result[name] = re.findall(r'[A-Fa-f0-9]{6}', guivar.get())[0] + elif info.gui_params and 'options' in info.gui_params: result[name] = info.gui_params['options'][guivar.get()] else: result[name] = guivar.get() @@ -109,6 +117,7 @@ def guiMain(settings=None): #Rules Tab frames['open'] = LabelFrame(frames['rules_tab'], text='Open', labelanchor=NW) + frames['world'] = LabelFrame(frames['rules_tab'], text='World', labelanchor=NW) frames['logic'] = LabelFrame(frames['rules_tab'], text='Shuffle', labelanchor=NW) # Logic tab @@ -135,7 +144,7 @@ def guiMain(settings=None): def show_settings(event=None): settings = guivars_to_settings(guivars) settings_string_var.set( settings.get_settings_string() ) - + # Update any dependencies for info in setting_infos: if info.gui_params and 'dependency' in info.gui_params: @@ -144,8 +153,39 @@ def show_settings(event=None): if widgets[info.name].winfo_class() == 'Frame': for child in widgets[info.name].winfo_children(): child.configure(state= 'normal' if dep_met else 'disabled') + if child.winfo_class() == 'Scale': + child.configure(fg='Black'if dep_met else 'Grey') else: + if widgets[info.name].winfo_class() == 'Scale': + widgets[info.name].configure(fg='Black'if dep_met else 'Grey') widgets[info.name].config(state = 'normal' if dep_met else 'disabled') + + if info.name in guivars and guivars[info.name].get() == 'Custom Color': + color = askcolor() + if color == (None, None): + color = ((0,0,0),'#000000') + guivars[info.name].set('Custom (' + color[1] + ')') + + def show_settings_special(event=None): + if guivars['logic_tricks'].get(): + widgets['logic_man_on_roof'].select() + widgets['logic_child_deadhand'].select() + widgets['logic_dc_jump'].select() + widgets['logic_windmill_hp'].select() + widgets['logic_crater_bean_hp_with_hovers'].select() + widgets['logic_zora_with_cucco'].select() + widgets['logic_fewer_tunic_requirements'].select() + else: + widgets['logic_man_on_roof'].deselect() + widgets['logic_child_deadhand'].deselect() + widgets['logic_dc_jump'].deselect() + widgets['logic_windmill_hp'].deselect() + widgets['logic_crater_bean_hp_with_hovers'].deselect() + widgets['logic_zora_with_cucco'].deselect() + widgets['logic_fewer_tunic_requirements'].deselect() + settings = guivars_to_settings(guivars) + settings_string_var.set( settings.get_settings_string() ) + def import_settings(event=None): @@ -236,7 +276,15 @@ def open_readme(): # create a variable to access the box's state guivars[info.name] = IntVar(value=default_value) # create the checkbox - widgets[info.name] = Checkbutton(frames[info.gui_params['group']], text=info.gui_params['text'], variable=guivars[info.name], justify=LEFT, wraplength=200, command=show_settings) + widgets[info.name] = Checkbutton(frames[info.gui_params['group']], text=info.gui_params['text'], variable=guivars[info.name], justify=LEFT, wraplength=190, command=show_settings) + widgets[info.name].pack(expand=False, anchor=W) + if info.gui_params['widget'] == 'SpecialCheckbutton': + # determine the initial value of the checkbox + default_value = 1 if info.gui_params['default'] == "checked" else 0 + # create a variable to access the box's state + guivars[info.name] = IntVar(value=default_value) + # create the checkbox + widgets[info.name] = Checkbutton(frames[info.gui_params['group']], text=info.gui_params['text'], variable=guivars[info.name], justify=LEFT, wraplength=190, command=show_settings_special) widgets[info.name].pack(expand=False, anchor=W) elif info.gui_params['widget'] == 'Combobox': # create the variable to store the user's decision @@ -270,7 +318,7 @@ def open_readme(): anchor = N # add the radio buttons for option in info.gui_params["options"]: - radio_button = Radiobutton(widgets[info.name], text=option, value=option, variable=guivars[info.name], justify=LEFT, wraplength=200, indicatoron=False, command=show_settings) + radio_button = Radiobutton(widgets[info.name], text=option, value=option, variable=guivars[info.name], justify=LEFT, wraplength=190, indicatoron=False, command=show_settings) radio_button.pack(expand=True, side=side, anchor=anchor) # pack the frame widgets[info.name].pack(expand=False, side=TOP, anchor=W, padx=3, pady=3) @@ -312,8 +360,9 @@ def open_readme(): # pack the hierarchy - frames['open'].pack( fill=BOTH, expand=True, anchor=N, side=LEFT, pady=(5,1) ) - frames['logic'].pack( fill=BOTH, expand=True, anchor=N, side=LEFT, pady=(5,1) ) + frames['logic'].pack( fill=BOTH, expand=True, anchor=N, side=RIGHT, pady=(5,1) ) + frames['open'].pack( fill=BOTH, expand=True, anchor=W, side=TOP, pady=(5,1) ) + frames['world'].pack( fill=BOTH, expand=True, anchor=W, side=BOTTOM, pady=(5,1) ) # Logic tab frames['rewards'].pack(fill=BOTH, expand=True, anchor=N, side=LEFT, pady=(5,1) ) @@ -408,7 +457,8 @@ def generateRom(): else: # try to load saved settings try: - with open('settings.sav') as f: + settingsFile = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'settings.sav') + with open(settingsFile) as f: settings = Settings( json.load(f) ) settings.update_seed("") settings_to_guivars(settings, guivars) diff --git a/HintList.py b/HintList.py index 00410a862..d239a461e 100644 --- a/HintList.py +++ b/HintList.py @@ -1,286 +1,299 @@ +import random + class Hint(object): name = "" text = "" type = "" - def __init__(self, name, text, type): + def __init__(self, name, text, type, choice=None): self.name = name - self.text = text self.type = type -def getHint(string): - ret = Hint - for hint in hintTable: - if string == hint: - text, type = hintTable[hint] - ret = Hint(hint, text, type) - break + if isinstance(text, str): + self.text = text else: - text, type = hintTable['KeyError'] - ret = Hint(hint, text, type) - return ret + if choice == None: + self.text = random.choice(text) + else: + self.text = text[choice] + + +def getHint(name, world): + hint = name + if name not in hintTable: + hint = 'KeyError' + + textOptions, clearText, type = hintTable[hint] + if world.clearer_hints == True: + if clearText == None: + return Hint(name, textOptions, type, 0) + return Hint(name, clearText, type) + else: + return Hint(name, textOptions, type) -def getHintGroup(string, world): + +def getHintGroup(group, world): ret = [] - for hint in hintTable: - text, type = hintTable[hint] - if type == string and not (hint in hintExclusions(world)): - ret.append(Hint(hint, text, type)) + for name in hintTable: + hint = getHint(name, world) + if hint.type == group and not (name in hintExclusions(world)): + ret.append(hint) return ret -#table of hints, format is (name, hint text, type of hint) there are special characters that are read for certain in game commands: + +#table of hints, format is (name, hint text, clear hint text, type of hint) there are special characters that are read for certain in game commands: # ^ is a box break # & is a new line # @ will print the player name # # sets color to white (currently only used for dungeon reward hints). -hintTable = {'Hammer': ("the dragon smasher", 'item'), - 'Magic Meter': ("pixie dust", 'item'), - 'Double Defense': ("a white outline", 'item'), - 'Progressive Hookshot': ("Dampe's keepsake", 'item'), - 'Progressive Strength Upgrade': ("power gloves", 'item'), - 'Hover Boots': ("butter boots", 'item'), - 'Master Sword': ("evil's bane", 'item'), - 'Mirror Shield': ("the reflective rampart", 'item'), - 'Farores Wind': ("teleportation", 'item'), - 'Nayrus Love': ("a safe space", 'item'), - 'Ice Arrows': ("the refrigerator rocket", 'item'), - 'Lens of Truth': ("the perjureless porthole", 'item'), - 'Dins Fire': ("an inferno", 'item'), - 'Ocarina': ("a flute", 'item'), - 'Fairy Ocarina': ("a brown flute", 'item'), - 'Goron Tunic': ("ruby robes", 'item'), - 'Zora Tunic': ("a sapphire suit", 'item'), - 'Iron Boots': ("sink shoes", 'item'), - 'Zeldas Letter': ("an autograph", 'item'), - 'Zeldas Lullaby': ("a song of royal slumber", 'item'), - 'Nocturne of Shadow': ("a song of spooky spirits", 'item'), - 'Bow': ("an archery enabler", 'item'), - 'Bomb Bag': ("an explosive container", 'item'), - 'Sarias Song': ("a song of dancing Gorons", 'item'), - 'Song of Time': ("a song 7 years long", 'item'), - 'Song of Storms': ("Rain Dance", 'item'), - 'Minuet of Forest': ("the song of tall trees", 'item'), - 'Requiem of Spirit': ("a song of sandy statues", 'item'), - 'Slingshot': ("a seed shooter", 'item'), - 'Boomerang': ("a banana", 'item'), - 'Fire Arrows': ("the furnace firearm", 'item'), - 'Ocarina of Time': ("a blue flute", 'item'), - 'Bottle': ("a fairy prison", 'item'), - 'Bottle with Letter': ("a call for help", 'item'), - 'Bottle with Milk': ("cow juice", 'item'), - 'Bottle with Red Potion': ("a vitality vial", 'item'), - 'Bottle with Green Potion': ("a magic mixture", 'item'), - 'Bottle with Blue Potion': ("an all-cure antidote", 'item'), - 'Bottle with Fairy': ("an imprisoned fairy", 'item'), - 'Bottle with Fish': ("an aquarium", 'item'), - 'Bottle with Blue Fire': ("a conflagration canteen", 'item'), - 'Bottle with Bugs': ("a terrarium", 'item'), - 'Bottle with Poe': ("a spooky ghost", 'item'), - 'Bottle with Big Poe': ("a supersized spirit", 'item'), - 'Progressive Scale': ("Zora's Flippers", 'item'), - 'Stone of Agony': ("an empty chest", 'item'), - 'Eponas Song': ("an equestrian etude", 'item'), - 'Epona': ("a horse", 'item'), - 'Gerudo Membership Card': ("a GT subscription", 'item'), - 'Progressive Wallet': ("a mo' money holder", 'item'), - 'Bolero of Fire': ("a song of lethal lava", 'item'), - 'Suns Song': ("Sunny Day", 'item'), - 'Deku Shield': ("a wooden ward", 'item'), - 'Hylian Shield': ("a steel safeguard", 'item'), - 'Deku Stick Capacity': ("a bundle of sticks", 'item'), - 'Deku Nut Capacity': ("more nuts", 'item'), - 'Prelude of Light': ("a luminous prologue melody", 'item'), - 'Serenade of Water': ("a song of a damp ditch", 'item'), - 'Heart Container': ("a lot of love", 'item'), - 'Piece of Heart': ("love", 'item'), - 'Piece of Heart (Treasure Chest Game)': ("WINNER!", 'item'), - 'Recovery Heart': ("a free heal", 'item'), - 'Rupee (Treasure Chest Game)': ("the dollar of defeat", 'item'), - 'Rupee (1)': ("rare riches", 'item'), - 'Rupees (5)': ("a common coin", 'item'), - 'Rupees (20)': ("couch cash", 'item'), - 'Rupees (50)': ("big bucks", 'item'), - 'Rupees (200)': ("a juicy jackpot", 'item'), - 'Light Arrows': ("the shining shot", 'item'), - 'Kokiri Sword': ("a butter knife", 'item'), - 'Biggoron Sword': ("a shield disabler", 'item'), - 'Pocket Egg': ("a Cucco container", 'item'), - 'Weird Egg': ("a chicken dilemma", 'item'), - 'Pocket Cucco': ("a little clucker", 'item'), - 'Cojiro': ("a cerulean capon", 'item'), - 'Odd Mushroom': ("a powder ingredient", 'item'), - 'Odd Potion': ("Granny's goodies", 'item'), - 'Poachers Saw': ("a tree killer", 'item'), - 'Broken Sword': ("a shattered slicer", 'item'), - 'Prescription': ("a pill pamphlet", 'item'), - 'Eyeball Frog': ("a perceiving polliwog", 'item'), - 'Eyedrops': ("a vision vial", 'item'), - 'Claim Check': ("a three day wait", 'item'), - 'Map': ("a dungeon atlas", 'item'), - 'Compass': ("a treasure tracker", 'item'), - 'BossKey': ("a master of unlocking", 'item'), - 'SmallKey': ("a tool for unlocking", 'item'), - 'FortressSmallKey': ("a get out of jail free card", 'item'), - 'KeyError': ("something mysterious", 'item'), - 'Arrows (5)': ("danger darts", 'item'), - 'Arrows (10)': ("danger darts", 'item'), - 'Arrows (30)': ("danger darts", 'item'), - 'Bombs (5)': ("explosives", 'item'), - 'Bombs (10)': ("explosives", 'item'), - 'Bombs (20)': ("lots-o-explosives", 'item'), - 'Ice Trap': ("a gift from Ganon", 'item'), - 'Magic Bean': ("wizardly legumes", 'item'), - 'Bombchus': ("mice bombs", 'item'), - 'Bombchus (5)': ("mice bombs", 'item'), - 'Bombchus (10)': ("mice bombs", 'item'), - 'Bombchus (20)': ("mice bombs", 'item'), - 'Deku Nuts (5)': ("some nuts", 'item'), - 'Deku Nuts (10)': ("lots-o-nuts", 'item'), - 'Deku Stick (1)': ("a breakable branch", 'item'), - 'Gold Skulltulla Token': ("proof of destruction", 'item'), - #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box - '10 Big Poes': ("They say that Big Poes leads&to", 'alwaysLocation'), - 'Deku Theater Mask of Truth': ("They say that the Mask of Truth&yields", 'alwaysLocation'), - '30 Gold Skulltulla Reward': ("They say that slaying&30 Gold Skulltulas&reveals", 'alwaysLocation'), - '40 Gold Skulltulla Reward': ("They say that slaying&40 Gold Skulltulas&reveals", 'alwaysLocation'), - '50 Gold Skulltulla Reward': ("They say that slaying&50 Gold Skulltulas&reveals", 'alwaysLocation'), - 'Song from Ocarina of Time': ("They say the Ocarina of Time&teaches", 'alwaysLocation'), - 'Ocarina of Time': ("They say the treasure thrown&by Princess Zelda&is", 'alwaysLocation'), - 'Biggoron': ("They say that Biggoron&crafts", 'alwaysLocation'), - 'Child Fishing': ("They say that fishing in youth&bestows", 'location'), - 'Adult Fishing': ("They say that fishing in maturity&bestows", 'location'), - '20 Gold Skulltulla Reward': ("They say that slaying&20 Gold Skulltulas&reveals", 'location'), - 'Treasure Chest Game': ("They say that gambling&grants", 'location'), - 'Darunias Joy': ("They say that Darunia's dance leads&to", 'location'), - 'Frog Ocarina Game': ("They say The Frogs of Zora River&hold", 'location'), - 'Horseback Archery 1500 Points': ("They say that mastery of horseback&archery grants", 'location'), - 'Lake Hylia Sun': ("They say staring into the sun&grants", 'location'), - 'Heart Piece Grave Chest': ("They say there's a hidden location&where the Sun's Song&spawns", 'location'), - 'Goron City Leftmost Maze Chest': ("They say in Goron City the hammer&unlocks", 'location'), - 'GS Hyrule Castle Grotto': ("They say that a storm&near the castle&reveals", 'location'), - 'GS Hyrule Field Near Gerudo Valley': ("They say that buried near&near the valley a spider&holds", 'location'), - 'GS Zora\'s Fountain Hidden Cave': ("They say a spider high&above the icy waters&holds", 'location'), - 'Deku Tree MQ After Spinning Log Chest': ("Within a tree, a temporal stone&contains", 'location'), - 'GS Jabu Jabu MQ Invisible Enemies Room': ("In the belly of a deity, a spider&surrounded by shadows&holds", 'location'), - 'Forest Temple Floormaster Chest': ("Deep in the forest, shadows guard a&chest containing", 'location'), - 'Fire Temple Scarecrow Chest': ("They say high in the Fire Temple,&Pierre hid", 'location'), - 'Fire Temple Megaton Hammer Chest': ("They say that the highest&chest in the crater&holds", 'location'), - 'Fire Temple MQ West Tower Top Chest': ("They say that the highest&chest in the crater&holds", 'location'), - 'Water Temple River Chest': ("They say deep under the lake,&beyond the currents,&hides", 'location'), - 'Water Temple Boss Key Chest': ("Deep under the lake,&the gilded chest&contains", 'location'), - 'Water Temple MQ Boss Key Chest': ("Deep under the lake,&the gilded chest&contains", 'location'), - 'Water Temple MQ Freestanding Key': ("Deep under the lake,&the apparent key&is really", 'location'), - 'GS Water Temple MQ North Basement': ("Deep under the lake,&the locked spider&holds", 'location'), - 'Gerudo Training Grounds Underwater Silver Rupee Chest': ("They say those who seek&sunken silver rupees will&find", 'location'), - 'Gerudo Training Grounds Maze Path Final Chest': ("They say the final prize&of the thieves\' training&is", 'location'), - 'Gerudo Training Grounds MQ Underwater Silver Rupee Chest': ("They say those who seek&sunken silver rupees will&find", 'location'), - 'Gerudo Training Grounds MQ Ice Arrows Chest': ("They say the final prize&of the thieves\' training&is", 'location'), - 'Bottom of the Well Defeat Boss': ("They say that Dead Hand&holds", 'location'), - 'Silver Gauntlets Chest': ("They say that upon&the Colossus's southern edge&is", 'location'), - 'Mirror Shield Chest': ("They say that upon&the Colossus's northern edge&is", 'location'), - 'Spirit Temple MQ Child Center Chest': ("Within the Colossus&a temporal paradox&yields", 'location'), - 'Spirit Temple MQ Lower Adult Right Chest': ("Within the Colossus&a symphony&yields", 'location'), - 'GS Spirit Temple MQ Lower Adult Right': ("Within the Colossus&a spider\'s symphony&yields", 'location'), - 'Shadow Temple Hidden Floormaster Chest': ("They say in a maze&guarded by shadows&hides", 'location'), - 'Shadow Temple MQ Bomb Flower Chest': ("They say in a maze&guarded by shadows&hides", 'location'), - 'Haunted Wasteland Structure Chest': ("They say that deep in the Wasteland&is", 'location'), - 'Composer Grave Chest': ("They say that the Composer Brothers&hid", 'location'), - 'Song from Composer Grave': ("They say that the Composer Brothers&wrote", 'location'), - 'Sheik Forest Song': ("They say that deep&in the forest Sheik&teaches", 'location'), - 'Sheik at Temple': ("They say that Sheik&waits at a monument to time to&teach", 'location'), - 'Sheik in Crater': ("They say that the crater's melody&is", 'location'), - 'Sheik in Ice Cavern': ("They say that the&frozen cavern echoes&with", 'location'), - 'Sheik in Kakariko': ("They say that a&ravaged village mourns&with", 'location'), - 'Sheik at Colossus': ("They say that a hero ventures&beyond the Wasteland to&learn", 'location'), - 'Zoras Fountain Bottom Freestanding PoH': ("They say under the icy waters&lies", 'location'), - 'Colossus Freestanding PoH': ("They say that riding a&beanstalk in the desert&leads to", 'location'), - 'DM Crater Volcano Freestanding PoH': ("They say that riding a&beanstalk in the crater&leads to", 'location'), - 'Goron City Pot Freestanding PoH': ("They say that spinning&Goron pottery&contains", 'location'), - #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box - '1001': ("Ganondorf 2020!", 'junkHint'), - '1002': ("They say that monarchy is a&terrible system of governance.", 'junkHint'), - '1003': ("They say that Zelda is a poor&leader.", 'junkHint'), - '1004': ("These hints can be quite useful.&This is an exception.", 'junkHint'), - '1006': ("They say that all the Zora drowned&in Wind Waker.", 'junkHint'), - '1007': ("They say that PJ64 is a terrible&emulator.", 'junkHint'), - '1008': ("'Member when Ganon was a blue pig?^I 'member.", 'junkHint'), - '1009': ("One who does not have Triforce&can't go in.", 'junkHint'), - '1010': ("Save your future,&end the Happy Mask Salesman.", 'junkHint'), - '1012': ("I'm stoned. Get it?", 'junkHint'), - '1013': ("Hoot! Hoot! Would you like me to&repeat that?", 'junkHint'), - '1014': ("Gorons are stupid.&They eat rocks.", 'junkHint'), - '1015': ("They say that Lon Lon Ranch&prospered under Ingo.", 'junkHint'), - '1016': ("The single rupee is a&unique item.&Well... sometimes.", 'junkHint'), - '1017': ("Without the Lens of Truth, the&Treasure Chest Mini-Game&is a 1 out of 32 chance.^Good luck!", 'junkHint'), - '1018': ("Use bombs wisely.", 'junkHint'), - '1021': ("I found you, faker!", 'junkHint'), - '1022': ("You're comparing&yourself to me?^Ha! You're not even good&enough to be my fake.", 'junkHint'), - '1023': ("I'll make you eat those words.", 'junkHint'), - '1024': ("What happened to Sheik?", 'junkHint'), - '1025': ("L2P @.", 'junkHint'), - '1026': ("I heard @ isn't&very good at Zelda.", 'junkHint'), - '1027': ("I'm Lonk from Pennsylvania.", 'junkHint'), - '1028': ("I bet you'd like to&have more bombs.", 'junkHint'), - '1029': ("When all else fails&use Fire.", 'junkHint'), - '1030': ("Here's a hint @.&Don't be bad.", 'junkHint'), - '1031': ("Game Over.&Return of Ganon.", 'junkHint'), - '1032': ("May the way of the Hero&lead to the Triforce.", 'junkHint'), - '1033': ("Can't find an item?&Scan an Amiibo.", 'junkHint'), - '1034': ("They say this game has&just a few glitches.", 'junkHint'), - '1035': ("BRRING BRRING This is Ulrira.&Wrong number?", 'junkHint'), - '1036': ("Tingle Tingle Kooloo Limpah", 'junkHint'), - '1037': ("L is real 2041", 'junkHint'), - '1038': ("They say that Ganondorf will&appear in the next Mario Tennis.", 'junkHint'), - '1039': ("Medigoron sells the earliest&Breath of the Wild demo.", 'junkHint'), - '1040': ("There's a reason why I am special&inquisitor!", 'junkHint'), - '1041': ("You were almost a @&sandwich.", 'junkHint'), - '1042': ("I'm a helpful hint Gossip Stone!^See, I'm helping.", 'junkHint'), - '1043': ("Dear @, please come to the&castle. I've baked a cake for you.&&Yours truly, Princess Zelda.", 'junkHint'), - '1044': ("I like shorts! They're comfy and&easy to wear!", 'junkHint'), - '1044': ("They say all toasters toast toast.", 'junkHint'), - '1045': ("They say that Okami is&the best Zelda game.", 'junkHint'), - #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box - 'Deku Tree': ("an ancient tree", 'dungeon'), - 'Dodongos Cavern': ("an immense cavern", 'dungeon'), - 'Jabu Jabus Belly': ("the belly of a deity", 'dungeon'), - 'Forest Temple': ("a deep forest", 'dungeon'), - 'Fire Temple': ("a high mountain", 'dungeon'), - 'Water Temple': ("a vast lake", 'dungeon'), - 'Shadow Temple': ("the house of the dead", 'dungeon'), - 'Spirit Temple': ("the goddess of the sand", 'dungeon'), - 'Ice Cavern': ("a frozen maze", 'dungeon'), - 'Bottom of the Well': ("a shadow\'s prison", 'dungeon'), - 'Gerudo Training Grounds': ("the test of thieves", 'dungeon'), - 'Ganons Castle': ("a conquered citadel", 'dungeon'), - #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box - 'Spiritual Stone Text Start': ("Ye who owns 3 Spiritual Stones...^", 'boss'), - 'Spiritual Stone Text End': ("Stand with the Ocarina of Time&and play the Song of Time.", 'boss'), - 'Queen Gohma': ("One inside an #ancient tree#...^", 'boss'), - 'King Dodongo': ("One within an #immense cavern#...^", 'boss'), - 'Barinade': ("One in the #belly of a deity#...^", 'boss'), - 'Phantom Ganon': ("One in a #deep forest#...^", 'boss'), - 'Volvagia': ("One on a #high mountain#...^", 'boss'), - 'Morpha': ("One under a #vast lake#...^", 'boss'), - 'Bongo Bongo': ("One within the #house of the dead#...^", 'boss'), - 'Twinrova': ("One inside a #goddess of the sand#...^", 'boss'), - 'Links Pocket': ("One in #@'s pocket#...^", 'boss'), - 'Spiritual Stone Text Start': ("Ye who owns 3 Spiritual Stones...^", 'boss'), - 'Spiritual Stone Text End': ("Stand with the Ocarina of Time&and play the Song of Time.", 'boss'), - 'Medallion Text End': ("Together with the Hero of Time,&the awakened ones will bind the&evil and return the light of peace&to the world.", 'boss'), - #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box - 'Validation Line': ("Hmph... Since you made it this far,&I'll let you know what glorious&prize of Ganon's you likely&missed out on in my tower.^Behold...^", 'validation line'), - 'Light Arrow Location': ("Ha ha ha... You'll never beat me by&reflecting my lightning bolts&and unleashing the arrows from&", 'Light Arrow Location'), - '2001': ("Oh! It's @.&I was expecting someone called&Sheik. Do you know what&happened to them?", 'ganonLine'), - '2002': ("I knew I shouldn't have put the key&on the other side of my door.", 'ganonLine'), - '2003': ("Looks like it's time for a&round of tennis.", 'ganonLine'), - '2004': ("You'll never deflect my bolts of&energy with your sword,&then shoot me with those Light&Arrows you happen to have.", 'ganonLine'), - '2005': ("Why did I leave my trident&back in the desert?", 'ganonLine'), - '2006': ("Zelda is probably going to do&something stupid, like send you&back to your own timeline.^So this is quite meaningless.&Do you really want&to save this moron?", 'ganonLine'), - '2007': ("What about Zelda makes you think&she'd be a better ruler than I?^I saved Lon Lon Ranch,&fed the hungry,&and my castle floats.", 'ganonLine'), - '2008': ("I've learned this spell,&it's really neat,&I'll keep it later&for your treat!", 'ganonLine'), - '2009': ("Many tricks are up my sleeve,&to save yourself&you'd better leave!", 'ganonLine'), - '2010': ("After what you did to&Koholint Island, how can&you call me the bad guy?", 'ganonLine'), - '2011': ("Today, let's begin down&'The Hero is Defeated' timeline.", 'ganonLine'), +hintTable = { + 'Magic Meter': (["sorcery training", "a stamina scroll", "pixie dust"], "Magic", 'item'), + 'Double Defense': (["a white outline", "sturdy hearts", "strengthened love"], "Double Defense", 'item'), + 'Slingshot': (["a seed shooter", "a rubberband", "a child's catapult"], "a Slingshot", 'item'), + 'Boomerang': (["a banana", "a faithful curved stick"], "the Boomerang", 'item'), + 'Bow': (["an archery enabler", "a danger dart launcher"], "a Bow", 'item'), + 'Bomb Bag': (["an explosive container", "kaboom storage"], "a Bomb Bag", 'item'), + 'Progressive Hookshot': (["Dampe's keepsake", "an arm extension", "a great chain"], "a Hookshot", 'item'), + 'Progressive Strength Upgrade': (["power gloves", "arm day results", "the heavy lifty"], "a Strength Upgrade", 'item'), + 'Progressive Scale': (["vertical swim depth", "a dive enhancer"], "a Zora Scale", 'item'), + 'Hammer': (["the dragon smasher", "a metallic crusher", "the WHAM! weapon"], "the Hammer", 'item'), + 'Iron Boots': (["sink shoes", "watery footwear", "noisy boots"], "the Iron Boots", 'item'), + 'Hover Boots': (["butter boots", "slippery shoes", "spacewalkers"], "the Hover Boots", 'item'), + 'Kokiri Sword': (["a butter knife", "a tiny, sharp blade", "a child's blade"], "the Kokiri Sword", 'item'), + 'Biggoron Sword': (["an unwieldy knife", "a two-handed blade"], "the Biggoron Sword", 'item'), + 'Master Sword': (["evil's bane"], "the Master Sword", 'item'), + 'Deku Shield': (["a wooden ward", "forest protection"], "a Deku Shield", 'item'), + 'Hylian Shield': (["a steel safeguard", "a Hylian relic", "metallic protection"], "a Hylian Shield", 'item'), + 'Mirror Shield': (["the reflective rampart", "Medusa's weakness", "a silvered surface"], "the Mirror Shield", 'item'), + 'Farores Wind': (["teleportation", "relocation magic", "a warp spell", "green wind"], "Farore's Wind", 'item'), + 'Nayrus Love': (["a safe space", "an impregnable aura", "a blue barrier"], "Nayru's Love", 'item'), + 'Dins Fire': (["an inferno", "a great heat wave", "a blast of hot air"], "Din's Fire", 'item'), + 'Fire Arrows': (["the furnace firearm", "flame darts", "burning projectiles"], "the Fire Arrows", 'item'), + 'Ice Arrows': (["the refrigerator rocket", "frostbite bolts", "cold darts", "freezing projectiles"], "the Ice Arrows", 'item'), + 'Light Arrows': (["the shining shot", "glowing darts", "Ganondorf's bane"], "the Light Arrows", 'item'), + 'Lens of Truth': (["a lie detector", "true sight", "a detective's tool"], "the Lens of Truth", 'item'), + 'Ocarina': (["a flute", "a source of music"], "an Ocarina", 'item'), + 'Fairy Ocarina': (["a brown flute", "a forest instrument"], "the Fairy Ocarina", 'item'), + 'Ocarina of Time': (["a blue flute", "a royal instrument"], "the Ocarina of Time", 'item'), + 'Goron Tunic': (["ruby robes", "fireproof garbs", "mountain clothing"], "a Goron Tunic", 'item'), + 'Zora Tunic': (["a sapphire suit", "a fishy outfit", "lake clothing"], "a Zora Tunic", 'item'), + 'Epona': (["a horse", "a four legged friend"], "Epona", 'item'), + 'Zeldas Lullaby': (["a song of royal slumber", "a triforce tune"], "Zelda's Lullaby", 'item'), + 'Eponas Song': (["an equestrian etude", "a ranch song"], "Epona's song", 'item'), + 'Sarias Song': (["a song of dancing Gorons", "a green girl's tune", "child's forest melody"], "Sarias Song", 'item'), + 'Suns Song': (["Sunny Day", "a time advancer", "a day/night melody", "the gibdo's bane"], "the Sun's Song", 'item'), + 'Song of Time': (["a song 7 years long", "a tune to move blocks"], "the Song of Time", 'item'), + 'Song of Storms': (["Rain Dance", "a thunderstorm melody", "the tune of windmills"], "the Song of Storms", 'item'), + 'Minuet of Forest': (["the song of tall trees", "adult's forest melody", "a green warp song"], "the Minuet of Forest", 'item'), + 'Bolero of Fire': (["a song of lethal lava", "a red warp song", "a volcano tune", "a song of a red sea"], "the Bolero of Fire", 'item'), + 'Serenade of Water': (["a song of a damp ditch", "a blue warp song", "the lake's tune"], "the Serenade of Water", 'item'), + 'Requiem of Spirit': (["a song of sandy statues", "an orange warp song", "the tune of the desert"], "the Requiem of Spirit", 'item'), + 'Nocturne of Shadow': (["a song of spooky spirits", "a graveyard boogie", "a ghastly tune"], "the Nocturne of Shadow", 'item'), + 'Prelude of Light': (["a luminous prologue melody", "a yellow warp song", "the temple traveler"], "the Prelude of Light", 'item'), + 'Bottle': (["a glass container", "an empty jar", "something to be filled"], "a Bottle", 'item'), + 'Bottle with Letter': (["a call for help", "an SOS jar", "fishy stationery"], "Ruto's letter", 'item'), + 'Bottle with Milk': (["cow juice", "a white liquid"], "a Milk Bottle", 'item'), + 'Bottle with Red Potion': (["a vitality vial", "a red liquid"], "a Red Bottle", 'item'), + 'Bottle with Green Potion': (["a magic mixture", "a green liquid"], "a Green Bottle", 'item'), + 'Bottle with Blue Potion': (["a cure-all antidote", "a blue liquid"], "a Blue Bottle", 'item'), + 'Bottle with Fairy': (["an imprisoned fairy", "an extra life"], "a Fairy Bottle", 'item'), + 'Bottle with Fish': (["an aquarium", "a contained sea beast"], "a Fish Bottle", 'item'), + 'Bottle with Blue Fire': (["a conflagration canteen", "an icemelt jar"], "a Fire Bottle", 'item'), + 'Bottle with Bugs': (["an insectarium", "skultula finders", "a Bug Bottle"], "bugs", 'item'), + 'Bottle with Poe': (["a spooky ghost", "a face in the jar"], "a Poe Bottle", 'item'), + 'Stone of Agony': (["a vibrating rock", "a clue finder"], "the Stone of Agony", 'item'), + 'Gerudo Membership Card': (["a GT subscription", "a desert tribe's pass"], "the Gerudo Card", 'item'), + 'Progressive Wallet': (["a mo' money holder", "a gem purse", "financial capacity"], "a Wallet", 'item'), + 'Deku Stick Capacity': (["a lumber rack", "more flammable twigs"], "a Stick Capacity Upgrade", 'item'), + 'Deku Nut Capacity': (["more nuts", "flashbang storage"], "a Nut Capacity Upgrade", 'item'), + 'Heart Container': (["a lot of love", "a Valentine's gift", "a boss's organ"], "a Heart Container", 'item'), + 'Piece of Heart': (["love", "a partial Valentine"], "a Heart Piece", 'item'), + 'Piece of Heart (Treasure Chest Game)': (["love", "a partial Valentine"], "a Heart Piece", 'item'), + 'Recovery Heart': (["a free heal", "disappointing love"], "a Recovery Heart", 'item'), + 'Rupee (Treasure Chest Game)': ("the dollar of defeat", 'a Green Rupee', 'item'), + 'Deku Stick (1)': ("a breakable branch", 'a Deku Stick', 'item'), + 'Rupee (1)': (["a unique coin", "a penny", "a tiny coin", "a green gem"], "a Green Rupee", 'item'), + 'Rupees (5)': (["a common coin", "a blue gem"], "a Blue Rupee", 'item'), + 'Rupees (20)': (["couch cash", "a red gem"], "a Red Rupees", 'item'), + 'Rupees (50)': (["big bucks", "a purple gem", "wealth"], "a Purple Rupee", 'item'), + 'Rupees (200)': (["a juicy jackpot", "a yellow gem", "great wealth"], "a Gold Rupee", 'item'), + 'Weird Egg': (["a chicken dilemma"], "the Weird Egg", 'item'), + 'Zeldas Letter': (["an autograph", "royal stationery", "royal snail mail"], "Zelda's Letter", 'item'), + 'Pocket Egg': (["a Cucco container", "a Cucco, eventually", "a fowl youth"], "the Pocket Egg", 'item'), + 'Pocket Cucco': (["a little clucker"], "the Pocket Cucco", 'item'), + 'Cojiro': (["a cerulean capon"], "Cojiro", 'item'), + 'Odd Mushroom': (["a powder ingredient"], "an Odd Mushroom", 'item'), + 'Odd Potion': (["Granny's goodies"], "an Odd Potion", 'item'), + 'Poachers Saw': (["a tree killer"], "the Poacher's Saw", 'item'), + 'Broken Sword': (["a shattered slicer"], "the Broken Sword", 'item'), + 'Prescription': (["a pill pamphlet", "a Doctor's slip"], "the Prescription", 'item'), + 'Eyeball Frog': (["a perceiving polliwog"], "the Eyeball Frog", 'item'), + 'Eyedrops': (["a vision vial"], "the Eyedrops", 'item'), + 'Claim Check': (["a three day wait"], "the Claim check", 'item'), + 'Map': (["a dungeon atlas", "blueprints"], "a Map", 'item'), + 'Compass': (["a treasure tracker", "a magnetic needle"], "a Compass", 'item'), + 'BossKey': (["a master of unlocking", "a dungeon's final pass"], "a Boss Key", 'item'), + 'SmallKey': (["a tool for unlocking", "a dungeon pass", "a lock remover", "a legal lockpick", "a portal opener"], "a Small Key", 'item'), + 'FortressSmallKey': (["a get out of jail free card"], "a Jail Key", 'item'), + 'KeyError': (["something mysterious", "an unknown treasure"], "An Error (Please Report This)", 'item'), + 'Arrows (5)': (["a few danger darts", "a few piercing ammunition"], "Arrows", 'item'), + 'Arrows (10)': (["some danger darts", "some piercing ammunition"], "Arrows", 'item'), + 'Arrows (30)': (["plenty of danger darts", "plenty of piercing ammunition"], "Arrows", 'item'), + 'Bombs (5)': (["a few explosives", "a few sparky boom balls", "a few fireworks"], "Bombs", 'item'), + 'Bombs (10)': (["some explosives", "some sparky boom balls", "some fireworks"], "Bombs", 'item'), + 'Bombs (20)': (["lots-o-explosives", "plenty of sparky boom balls", "plenty of fireworks"], "Bombs", 'item'), + 'Ice Trap': (["a gift from Ganon", "a chilling discovery", "an icy blast", "an unwanted freeze", "a wintery surprise"], "an Ice Trap", 'item'), + 'Magic Bean': (["wizardly legumes"], "a Magic Bean", 'item'), + 'Bombchus': (["mice bombs", "remote mines", "proximity mice", "wall crawlers", "trail blazers"], "Bombchus", 'item'), + 'Bombchus (5)': (["a few mice bombs", "a few remote mines", "a few proximity mice", "a few wall crawlers", "a few trail blazers"], "Bombchus", 'item'), + 'Bombchus (10)': (["some mice bombs", "some remote mines", "some proximity mice", "some wall crawlers", "some trail blazers"], "Bombchus", 'item'), + 'Bombchus (20)': (["plenty of mice bombs", "plenty of remote mines", "plenty of proximity mice", "plenty of wall crawlers", "plenty of trail blazers"], "Bombchus", 'item'), + 'Deku Nuts (5)': (["some nuts", "some flashbangs", "some Sheik's ammo"], "some Deku Nuts", 'item'), + 'Deku Nuts (10)': (["lots-o-nuts", "plenty of flashbangs", "plenty of Sheik's ammo"], "plenty of Deku Nuts", 'item'), + 'Gold Skulltulla Token': (["proof of destruction", "an arachnid chip", "spider remains"], "a Golden Token", 'item'), + + '10 Big Poes': (["#Big Poes# leads to", "#ghost hunters# will be rewarded with"], None, 'alwaysLocation'), + 'Deku Theater Mask of Truth': ("the #Mask of Truth# yields", None, 'alwaysLocation'), + '20 Gold Skulltulla Reward': ("slaying #20 Gold Skulltulas# reveals", None, 'location'), + '30 Gold Skulltulla Reward': ("slaying #30 Gold Skulltulas# reveals", None, 'alwaysLocation'), + '40 Gold Skulltulla Reward': ("slaying #40 Gold Skulltulas# reveals", None, 'alwaysLocation'), + '50 Gold Skulltulla Reward': ("slaying #50 Gold Skulltulas# reveals", None, 'alwaysLocation'), + 'Ocarina of Time': ("They say the #treasure thrown by Princess Zelda# is", None, 'alwaysLocation'), + 'Song from Ocarina of Time': ("the #Ocarina of Time# teaches", None, 'alwaysLocation'), + 'Biggoron': ("#Biggoron# crafts", None, 'alwaysLocation'), + 'Child Fishing': ("#fishing in youth# bestows", None, 'location'), + 'Adult Fishing': ("#fishing in maturity# bestows", None, 'location'), + 'Treasure Chest Game': (["#gambling# grants", "there is a #1/32 chance# to win"], "the #treasure chest game# grants", 'location'), + 'Darunias Joy': ("#Darunia's dance# leads to", None, 'location'), + 'Frog Ocarina Game': (["The #Frogs of Zora River# hold", "the #musical amphibians# have found"], None, 'location'), + 'Horseback Archery 1500 Points': ("mastery of #horseback archery# grants", "1500 in #horseback archery# grants", 'location'), + 'Lake Hylia Sun': (["staring into #the sun# grants", "acts of #solar aggression# are punished with"], "shooting #the sun# grants", 'location'), + 'Heart Piece Grave Chest': ("in a grave playing #Sun's Song# spawns", None, 'location'), + 'Goron City Leftmost Maze Chest': ("in #Goron City# the hammer unlocks", None, 'location'), + 'GS Hyrule Castle Grotto': ("a #storm near the castle# reveals", None, 'location'), + 'GS Hyrule Field Near Gerudo Valley': ("buried near near #the valley# a spider holds", None, 'location'), + 'GS Zora\'s Fountain Hidden Cave': ("a spider high above the #icy waters# holds", None, 'location'), + 'Forest Temple Floormaster Chest': ("deep in #the forest#, shadows guard a chest containing", "a Floormaster in #Forest Temple# guards", 'location'), + 'Fire Temple Scarecrow Chest': ("high in the #Fire Temple#, Pierre hid", None, 'location'), + 'Fire Temple Megaton Hammer Chest': ("high in the #Fire Temple#, Fire Dancers hid", None, 'location'), + 'Fire Temple MQ West Tower Top Chest': ("high in the #Fire Temple#, Fire Dancers hid", None, 'location'), + 'Water Temple River Chest': ("deep under #the lake#, beyond the currents, hides", "the #Water Temple River Chest# holds", 'location'), + 'Water Temple Boss Key Chest': ("deep under #the lake#, the gilded chest contains", "the #Water Temple Gold Chest# holds", 'location'), + 'Water Temple MQ Boss Key Chest': ("deep under #the lake#, the gilded chest contains", "the #Water Temple Gold Chest# holds", 'location'), + 'Water Temple MQ Freestanding Key': ("deep under #the lake#, the apparent key is really", None, 'location'), + 'GS Water Temple MQ North Basement': ("deep under #the lake#, the locked spider holds", None, 'location'), + 'Gerudo Training Grounds Underwater Silver Rupee Chest': ("those who seek #sunken silver rupees# will find", None, 'location'), + 'Gerudo Training Grounds MQ Underwater Silver Rupee Chest': ("those who seek #sunken silver rupees# will find", None, 'location'), + 'Gerudo Training Grounds Maze Path Final Chest': ("the final prize of #the thieves\' training# is", None, 'location'), + 'Gerudo Training Grounds MQ Ice Arrows Chest': ("the final prize of #the thieves\' training# is", None, 'location'), + 'Bottom of the Well Defeat Boss': (["#Dead Hand# holds", "draining the water reveals #a monster# guarding"], None, 'location'), + 'Bottom of the Well MQ Compass Chest': (["#Dead Hand# holds", "draining the water reveals #a monster# guarding"], None, 'location'), + 'Silver Gauntlets Chest': ("upon the #Colossus's right hand# is", "upon the #Colossus's child hand# is", 'location'), + 'Mirror Shield Chest': ("upon the #Colossus's left hand# is", "upon the #Colossus's adult hand# is", 'location'), + 'Spirit Temple MQ Child Center Chest': ("within #the Colossus# a temporal paradox yields", None, 'location'), + 'Spirit Temple MQ Lower Adult Right Chest': ("within #the Colossus# a symphony yields", None, 'location'), + 'GS Spirit Temple MQ Lower Adult Right': ("within #the Colossus# a spider\'s symphony yields", None, 'location'), + 'Shadow Temple Hidden Floormaster Chest': (["shadows in an #invisible maze# guard", "after a free #boat ride# comes"], None, 'location'), + 'Shadow Temple MQ Bomb Flower Chest': (["shadows in an #invisible maze# guard", "after a free #boat ride# comes"], None, 'location'), + 'Haunted Wasteland Structure Chest': (["deep in the #Wasteland# is", "beneath #the sands# lies"], None, 'location'), + 'Composer Grave Chest': (["in the #Composers' Grave#, darkness hides", "the #Composer Brothers# hid"], None, 'location'), + 'Song from Composer Grave': (["in the #Composers' Grave#, Redead guard", "the #Composer Brothers# wrote"], None, 'location'), + 'Sheik Forest Song': ("deep in #the forest# Sheik teaches", None, 'location'), + 'Sheik at Temple': ("Sheik waits at a #monument to time# to teach", None, 'location'), + 'Sheik in Crater': ("the #crater's melody# is", None, 'location'), + 'Sheik in Ice Cavern': ("the #frozen cavern# echoes with", None, 'location'), + 'Sheik in Kakariko': ("a #ravaged village# mourns with", None, 'location'), + 'Sheik at Colossus': ("a hero ventures beyond #the Wasteland# to learn", None, 'location'), + 'Zoras Fountain Bottom Freestanding PoH': ("under the #icy waters# lies", None, 'location'), + 'Colossus Freestanding PoH': ("riding a #beanstalk in the desert# leads to", None, 'location'), + 'DM Crater Volcano Freestanding PoH': ("riding a #beanstalk in the crater# leads to", None, 'location'), + 'Goron City Pot Freestanding PoH': ("spinning #Goron pottery# contains", None, 'location'), + 'Deku Tree MQ After Spinning Log Chest': ("within #a tree#, a temporal stone contains", None, 'location'), + 'GS Jabu Jabu MQ Invisible Enemies Room': ("in the #belly of a deity#, a spider surrounded by shadows holds", None, 'location'), + + '1001': ("Ganondorf 2020!", None, 'junkHint'), + '1002': ("They say that monarchy is a terrible system of governance.", None, 'junkHint'), + '1003': ("They say that Zelda is a poor leader.", None, 'junkHint'), + '1004': ("These hints can be quite useful. This is an exception.", None, 'junkHint'), + '1006': ("They say that all the Zora drowned in Wind Waker.", None, 'junkHint'), + '1007': ("They say that PJ64 is a terrible emulator.", None, 'junkHint'), + '1008': ("'Member when Ganon was a blue pig?^I 'member.", None, 'junkHint'), + '1009': ("One who does not have Triforce can't go in.", None, 'junkHint'), + '1010': ("Save your future, end the Happy Mask Salesman.", None, 'junkHint'), + '1012': ("I'm stoned. Get it?", None, 'junkHint'), + '1013': ("Hoot! Hoot! Would you like me to repeat that?", None, 'junkHint'), + '1014': ("Gorons are stupid. They eat rocks.", None, 'junkHint'), + '1015': ("They say that Lon Lon Ranch prospered under Ingo.", None, 'junkHint'), + '1016': ("The single rupee is a unique item.", None, 'junkHint'), + '1017': ("Without the Lens of Truth, the Treasure Chest Mini-Game is a 1 out of 32 chance.^Good luck!", None, 'junkHint'), + '1018': ("Use bombs wisely.", None, 'junkHint'), + '1021': ("I found you, faker!", None, 'junkHint'), + '1022': ("You're comparing yourself to me?^Ha! You're not even good enough to be my fake.", None, 'junkHint'), + '1023': ("I'll make you eat those words.", None, 'junkHint'), + '1024': ("What happened to Sheik?", None, 'junkHint'), + '1025': ("L2P @.", None, 'junkHint'), + '1026': ("I heard @ isn't very good at Zelda.", None, 'junkHint'), + '1027': ("I'm Lonk from Pennsylvania.", None, 'junkHint'), + '1028': ("I bet you'd like to have more bombs.", None, 'junkHint'), + '1029': ("When all else fails, use Fire.", None, 'junkHint'), + '1030': ("Here's a hint, @. Don't be bad.", None, 'junkHint'), + '1031': ("Game Over. Return of Ganon.", None, 'junkHint'), + '1032': ("May the way of the Hero lead to the Triforce.", None, 'junkHint'), + '1033': ("Can't find an item? Scan an Amiibo.", None, 'junkHint'), + '1034': ("They say this game has just a few glitches.", None, 'junkHint'), + '1035': ("BRRING BRRING This is Ulrira. Wrong number?", None, 'junkHint'), + '1036': ("Tingle Tingle Kooloo Limpah", None, 'junkHint'), + '1037': ("L is real 2041", None, 'junkHint'), + '1038': ("They say that Ganondorf will appear in the next Mario Tennis.", None, 'junkHint'), + '1039': ("Medigoron sells the earliest Breath of the Wild demo.", None, 'junkHint'), + '1040': ("There's a reason why I am special inquisitor!", None, 'junkHint'), + '1041': ("You were almost a @ sandwich.", None, 'junkHint'), + '1042': ("I'm a helpful hint Gossip Stone!^See, I'm helping.", None, 'junkHint'), + '1043': ("Dear @, please come to the castle. I've baked a cake for you.&&Yours truly, princess Zelda.", None, 'junkHint'), + '1044': ("They say all toasters toast toast.", None, 'junkHint'), + '1045': ("They say that Okami is the best Zelda game.", None, 'junkHint'), + '1046': ("They say that quest guidance can be found at a talking rock.", None, 'junkHint'), + '1047': ("They say that the final item you're looking for can be found somewhere in Hyrule", None, 'junkHint'), + #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box + 'Deku Tree': ("an ancient tree", "Deku Tree", 'dungeon'), + 'Dodongos Cavern': ("an immense cavern", "Dodongo's Cavern", 'dungeon'), + 'Jabu Jabus Belly': ("the belly of a deity", "Jabu Jabu's Belly", 'dungeon'), + 'Forest Temple': ("a deep forest", "Forest Temple", 'dungeon'), + 'Fire Temple': ("a high mountain", "Fire Temple", 'dungeon'), + 'Water Temple': ("a vast lake", "Water Temple", 'dungeon'), + 'Shadow Temple': ("the house of the dead", "Shadow Temple", 'dungeon'), + 'Spirit Temple': ("the goddess of the sand", "Spirit Temple", 'dungeon'), + 'Ice Cavern': ("a frozen maze", "Ice Cavern", 'dungeon'), + 'Bottom of the Well': ("a shadow\'s prison", "Bottom of the Well", 'dungeon'), + 'Gerudo Training Grounds': ("the test of thieves", "Gerudo Training Grounds", 'dungeon'), + 'Ganons Castle': ("a conquered citadel", "Ganon's Castle", 'dungeon'), + #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box + 'Queen Gohma': ("One inside an #ancient tree#...^", "One in the #Deku Tree#...^", 'boss'), + 'King Dodongo': ("One within an #immense cavern#...^", "One in #Dodongo's Cavern#...^", 'boss'), + 'Barinade': ("One in the #belly of a deity#...^", "One in #Jabu Jabu's Belly#...^", 'boss'), + 'Phantom Ganon': ("One in a #deep forest#...^", "One in the #Forest Temple#...^", 'boss'), + 'Volvagia': ("One on a #high mountain#...^", "One in the #Fire Temple#...^", 'boss'), + 'Morpha': ("One under a #vast lake#...^", "One in the #Water Temple#...^", 'boss'), + 'Bongo Bongo': ("One within the #house of the dead#...^", "One in the #Shadow Temple#...^", 'boss'), + 'Twinrova': ("One inside a #goddess of the sand#...^", "One in the #Spirit Temple#...^", 'boss'), + 'Links Pocket': ("One in #@'s pocket#...^", "One #@ already has#...^", 'boss'), + 'Spiritual Stone Text Start': ("Ye who owns 3 Spiritual Stones...^", None, 'boss'), + 'Spiritual Stone Text End': ("Stand with the Ocarina of Time&and play the Song of Time.", None, 'boss'), + 'Medallion Text End': ("Together with the Hero of Time,&the awakened ones will bind the&evil and return the light of peace&to the world.", None, 'boss'), + #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box + 'Validation Line': ("Hmph... Since you made it this far,&I'll let you know what glorious&prize of Ganon's you likely&missed out on in my tower.^Behold...^", None, 'validation line'), + 'Light Arrow Location': ("Ha ha ha... You'll never beat me by&reflecting my lightning bolts&and unleashing the arrows from&", None, 'Light Arrow Location'), + '2001': ("Oh! It's @.&I was expecting someone called&Sheik. Do you know what&happened to them?", None, 'ganonLine'), + '2002': ("I knew I shouldn't have put the key&on the other side of my door.", None, 'ganonLine'), + '2003': ("Looks like it's time for a&round of tennis.", None, 'ganonLine'), + '2004': ("You'll never deflect my bolts of&energy with your sword,&then shoot me with those Light&Arrows you happen to have.", None, 'ganonLine'), + '2005': ("Why did I leave my trident&back in the desert?", None, 'ganonLine'), + '2006': ("Zelda is probably going to do&something stupid, like send you&back to your own timeline.^So this is quite meaningless.&Do you really want&to save this moron?", None, 'ganonLine'), + '2007': ("What about Zelda makes you think&she'd be a better ruler than I?^I saved Lon Lon Ranch,&fed the hungry,&and my castle floats.", None, 'ganonLine'), + '2008': ("I've learned this spell,&it's really neat,&I'll keep it later&for your treat!", None, 'ganonLine'), + '2009': ("Many tricks are up my sleeve,&to save yourself&you'd better leave!", None, 'ganonLine'), + '2010': ("After what you did to&Koholint Island, how can&you call me the bad guy?", None, 'ganonLine'), + '2011': ("Today, let's begin down&'The Hero is Defeated' timeline.", None, 'ganonLine'), } # This specifies which hints will never appear due to either having known or known useless contents or due to the locations not existing. @@ -343,6 +356,8 @@ def hintExclusions(world): exclusions.append('Gerudo Training Grounds MQ Ice Arrows Chest') if world.dungeon_mq['BW']: exclusions.append('Bottom of the Well Defeat Boss') + else: + exclusions.append('Bottom of the Well MQ Compass Chest') if not world.dungeon_mq['SpT']: exclusions.append('Spirit Temple MQ Child Center Chest') exclusions.append('Spirit Temple MQ Lower Adult Right Chest') diff --git a/Hints.py b/Hints.py index 954c7f352..aabb5dbd9 100644 --- a/Hints.py +++ b/Hints.py @@ -9,39 +9,16 @@ from Utils import local_path from ItemList import eventlocations from Messages import update_message_by_id +from TextBox import lineWrap -# build a formatted string with linebreaks appropriate textboxes def buildHintString(hintString): if len(hintString) < 77: hintString = "They say that " + hintString elif len(hintString) < 82: hintString = "They say " + hintString - elif len(hintString) > 91: - print('Too many characters in hint') - hintString = hintString[:91] hintString = hintString.capitalize() - formatString = "" - splitHintString = hintString.split() - lineLength = 0 - - for word in splitHintString: - # let's assume words are not 35 or more char long - if lineLength + len(word) + 1 <= 35: - # add a space if line is not empty - if lineLength != 0: - lineLength = lineLength + 1 - formatString = formatString + ' ' - - # append word - formatString = formatString + word - lineLength = lineLength + len(word) - else: - # word won'd fit, add to a new line - formatString = formatString + '&' + word - lineLength = len(word) - - return formatString + return hintString def getItemGenericName(item): @@ -55,12 +32,64 @@ def isDungeonItem(item): return item.type == 'Map' or item.type == 'Compass' or item.type == 'BossKey' or item.type == 'SmallKey' -def update_hint(messages, id, text): - update_message_by_id(messages, id, get_raw_text(text)) +def add_hint(world, id, text): + world.spoiler.hints[id] = lineWrap(text) + + +def writeGossipStoneHintsHints(world, messages): + for id,text in world.spoiler.hints.items(): + update_message_by_id(messages, id, get_raw_text(text)) + +def filterTrailingSpace(text): + if text.endswith('& '): + return text[:-1] + else: + return text + +def colorText(text, color): + colorMap = { + 'White': '\x40', + 'Red': '\x41', + 'Green': '\x42', + 'Blue': '\x43', + 'Light Blue': '\x44', + 'Pink': '\x45', + 'Yellow': '\x46', + 'Black': '\x47', + } + + ignoredStarts = [ + 'a few ', + 'some ', + 'plenty of ', + 'a ', + 'an ', + 'the ', + '', + ] + + colorTags = False + while True: + splitText = text.split('#', 2) + if len(splitText) == 3: + splitText[1] = '\x05' + colorMap[color] + splitText[1] + '\x05\x40' + text = ''.join(splitText) + colorTags = True + else: + text = '#'.join(splitText) + break + + if not colorTags: + for ignoredStart in ignoredStarts: + if text.startswith(ignoredStart): + text = text[:len(ignoredStart)] + '\x05' + colorMap[color] + text[len(ignoredStart):] + '\x05\x40' + break + + return text #builds out general hints based on location and whether an item is required or not -def buildGossipHints(world, messages): +def buildGossipHints(world): stoneIDs = [0x0401, 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407, 0x0408, 0x0409, 0x040A, 0x040B, 0x040C, 0x040D, 0x040E, 0x040F, 0x0410, @@ -74,11 +103,11 @@ def buildGossipHints(world, messages): if world.trials < 6 and world.trials > 3: for trial,skipped in world.skipped_trials.items(): if skipped: - update_hint(messages, stoneIDs.pop(0), buildHintString("the " + trial + " Trial was dispelled by Sheik.")) + add_hint(world, stoneIDs.pop(0), buildHintString("the " + colorText(trial + " Trial", 'Yellow') + " was dispelled by Sheik.")) elif world.trials <= 3 and world.trials > 0: for trial,skipped in world.skipped_trials.items(): if not skipped: - update_hint(messages, stoneIDs.pop(0), buildHintString("the " + trial + " Trial protects Ganon's Tower.")) + add_hint(world, stoneIDs.pop(0), buildHintString("the " + colorText(trial + " Trial", 'Pink') + " protects Ganon's Tower.")) # add required items locations for hints (good hints) requiredSample = world.spoiler.required_locations @@ -86,10 +115,10 @@ def buildGossipHints(world, messages): requiredSample = random.sample(requiredSample, random.randint(3,4)) for location in requiredSample: if location.parent_region.dungeon: - update_hint(messages, stoneIDs.pop(0), buildHintString(getHint(location.parent_region.dungeon.name).text + \ + add_hint(world, stoneIDs.pop(0), buildHintString(colorText(getHint(location.parent_region.dungeon.name, world).text, 'Light Blue') + \ " is on the way of the hero.")) else: - update_hint(messages, stoneIDs.pop(0), buildHintString(location.hint + " is on the way of the hero.")) + add_hint(world, stoneIDs.pop(0), buildHintString(colorText(location.hint, 'Light Blue') + " is on the way of the hero.")) # Don't repeat hints checkedLocations = [] @@ -100,8 +129,8 @@ def buildGossipHints(world, messages): for locationWorld in world.get_locations(): if hint.name == locationWorld.name: checkedLocations.append(hint.name) - update_hint(messages, stoneIDs.pop(0), getHint(locationWorld.name).text + " " + \ - getHint(getItemGenericName(locationWorld.item)).text + ".") + add_hint(world, stoneIDs.pop(0), buildHintString(colorText(getHint(locationWorld.name, world).text, 'Green') + " " + \ + colorText(getHint(getItemGenericName(locationWorld.item), world).text, 'Red') + ".")) # Add good location hints @@ -116,22 +145,23 @@ def buildGossipHints(world, messages): for locationWorld in world.get_locations(): if hint.name == locationWorld.name: checkedLocations.append(locationWorld.name) - update_hint(messages, stoneIDs.pop(0), getHint(locationWorld.name).text + " " + \ - getHint(getItemGenericName(locationWorld.item)).text + ".") + add_hint(world, stoneIDs.pop(0), buildHintString(colorText(getHint(locationWorld.name, world).text, 'Green') + " " + \ + colorText(getHint(getItemGenericName(locationWorld.item), world).text, 'Red') + ".")) # add bad dungeon locations hints for dungeon in random.sample(world.dungeons, random.randint(3,4)): # Choose a randome dungeon location that is a non-dungeon item - locationWorld = random.choice([location for region in dungeon.regions for location in world.get_region(region).locations + locationWorld = random.choice([location for region in dungeon.regions for location in region.locations if location.item.type != 'Event' and \ + location.item.type != 'Shop' and \ not location.event and \ not isDungeonItem(location.item) and \ (world.tokensanity != 'off' or location.item.name != 'Gold Skulltulla Token') and\ location.item.type != 'Song']) checkedLocations.append(locationWorld.name) - update_hint(messages, stoneIDs.pop(0), buildHintString(getHint(dungeon.name).text + \ - " hoards " + getHint(getItemGenericName(locationWorld.item)).text + ".")) + add_hint(world, stoneIDs.pop(0), buildHintString(colorText(getHint(dungeon.name, world).text, 'Green') + \ + " hoards " + colorText(getHint(getItemGenericName(locationWorld.item), world).text, 'Red') + ".")) # add bad overworld locations hints # only choose location if it is new and a proper item from the overworld @@ -140,6 +170,7 @@ def buildGossipHints(world, messages): not locationWorld.name in alwaysLocations and \ not locationWorld.name in sometimesLocations and \ locationWorld.item.type != 'Event' and \ + locationWorld.item.type != 'Shop' and \ not locationWorld.event and \ (world.tokensanity == 'all' or locationWorld.item.name != 'Gold Skulltulla Token') and \ not locationWorld.parent_region.dungeon] @@ -156,8 +187,8 @@ def buildGossipHints(world, messages): overworldSample = random.sample(overworldlocations, random.randint(2,4)) for locationWorld in overworldSample: checkedLocations.append(locationWorld.name) - update_hint(messages, stoneIDs.pop(0), buildHintString(getHint(getItemGenericName(locationWorld.item)).text + \ - " can be found at " + locationWorld.hint + ".")) + add_hint(world, stoneIDs.pop(0), buildHintString(colorText(getHint(getItemGenericName(locationWorld.item), world).text, 'Red') + \ + " can be found at " + colorText(locationWorld.hint, 'Green') + ".")) # add good item hints # only choose location if it is new and a good item @@ -165,6 +196,7 @@ def buildGossipHints(world, messages): if not locationWorld.name in checkedLocations and \ locationWorld.item.advancement and \ locationWorld.item.type != 'Event' and \ + locationWorld.item.type != 'Shop' and \ not locationWorld.event and \ locationWorld.item.name != 'Gold Skulltulla Token' and \ not locationWorld.item.key] @@ -174,17 +206,17 @@ def buildGossipHints(world, messages): for locationWorld in gooditemSample: checkedLocations.append(locationWorld.name) if locationWorld.parent_region.dungeon: - update_hint(messages, stoneIDs.pop(0), buildHintString(getHint(locationWorld.parent_region.dungeon.name).text + \ - " hoards " + getHint(getItemGenericName(locationWorld.item)).text + ".")) + add_hint(world, stoneIDs.pop(0), buildHintString(colorText(getHint(locationWorld.parent_region.dungeon.name, world).text, 'Green') + \ + " hoards " + colorText(getHint(getItemGenericName(locationWorld.item), world).text, 'Red') + ".")) else: - update_hint(messages, stoneIDs.pop(0), buildHintString(getHint(getItemGenericName(locationWorld.item)).text + \ - " can be found at " + locationWorld.hint + ".")) + add_hint(world, stoneIDs.pop(0), buildHintString(colorText(getHint(getItemGenericName(locationWorld.item), world).text, 'Red') + \ + " can be found at " + colorText(locationWorld.hint, 'Green') + ".")) # fill the remaining hints with junk junkHints = getHintGroup('junkHint', world) random.shuffle(junkHints) while stoneIDs: - update_hint( messages, stoneIDs.pop(0), junkHints.pop().text ) + add_hint( world, stoneIDs.pop(0), junkHints.pop().text ) # builds boss reward text that is displayed at the temple of time altar for child and adult, pull based off of item in a fixed order. def buildBossRewardHints(world, messages): @@ -193,12 +225,12 @@ def buildBossRewardHints(world, messages): # text that appears at altar as a child. text = '\x08' - text += get_raw_text(getHint('Spiritual Stone Text Start').text) + text += get_raw_text(getHint('Spiritual Stone Text Start', world).text) for reward in bossRewardsSpiritualStones: text += buildBossString(reward, world) text = setRewardColor(text) - text += get_raw_text(getHint('Spiritual Stone Text End').text) + text += get_raw_text(getHint('Spiritual Stone Text End', world).text) text += '\x0B' update_message_by_id(messages, 0x707a, text, 0x20) @@ -211,7 +243,7 @@ def buildBossRewardHints(world, messages): text += buildBossString(reward, world) text = setRewardColor(text) - text += get_raw_text(getHint('Medallion Text End').text) + text += get_raw_text(getHint('Medallion Text End', world).text) text += '\x0B' update_message_by_id(messages, 0x7057, start + text, 0x20) @@ -221,7 +253,7 @@ def buildBossString(reward, world): text = '' for location in world.get_locations(): if location.item.name == reward: - text += '\x08' + get_raw_text(getHint(location.name).text) + text += '\x08' + get_raw_text(getHint(location.name, world).text) return text # alternates through color set commands in child and adult boss reward hint strings setting the colors at the start of the string to correspond with the reward found at the location. @@ -258,15 +290,16 @@ def buildGanonText(world, messages): if world.trials == 0: for location in world.get_locations(): if location.item.name == 'Light Arrows': - text = get_raw_text(getHint('Light Arrow Location').text) - text += get_raw_text(location.hint) + text = get_raw_text(getHint('Light Arrow Location', world).text) + location_hint = location.hint.replace('Ganon\'s Castle', 'my castle') + text += get_raw_text(location_hint) text += '!' break else: - text = get_raw_text(getHint('Validation Line').text) + text = get_raw_text(getHint('Validation Line', world).text) for location in world.get_locations(): if location.name == 'Ganons Tower Boss Key Chest': - text += get_raw_text(getHint(getItemGenericName(location.item)).text) + text += get_raw_text(getHint(getItemGenericName(location.item), world).text) update_message_by_id(messages, 0x70CC, text) diff --git a/ItemList.py b/ItemList.py index 8d2d30ed9..11e65b6f8 100644 --- a/ItemList.py +++ b/ItemList.py @@ -30,10 +30,6 @@ + ['Progressive Strength Upgrade'] * 3 + ['Progressive Scale'] * 2 + ['Recovery Heart'] * 6 - + ['Rupees (5)'] * 13 - + ['Rupees (20)'] * 5 - + ['Rupees (50)'] * 7 - + ['Rupees (200)'] * 3 + ['Bow'] * 3 + ['Slingshot'] * 3 + ['Bomb Bag'] * 3 @@ -119,26 +115,144 @@ 'Bottle with Fairy', 'Bottle with Fish', 'Bottle with Bugs', - 'Bottle with Poe'] # 'Bottle with Blue Fire' + 'Bottle with Poe', + 'Bottle with Big Poe', + 'Bottle with Blue Fire'] normal_bottle_count = 3 -# 10 items get removed for hard+ -harditems = ( - ['Bombs (5)'] * 2 - + ['Arrows (5)'] * 2 - + ['Deku Nuts (5)'] * 2 - + ['Rupees (5)'] * 3 - + ['Rupees (20)']) - -# 37 items get removed for very hard -veryharditems = ( - ['Bombs (5)'] * 8 - + ['Arrows (5)'] * 8 - + ['Deku Nuts (5)'] * 8 - + ['Rupees (5)'] * 10 - + ['Rupees (20)'] * 2 - + ['Rupees (50)']) +normal_rupees = ( + ['Rupees (5)'] * 13 + + ['Rupees (20)'] * 5 + + ['Rupees (50)'] * 7 + + ['Rupees (200)'] * 3) + +shopsanity_rupees = ( + ['Rupees (5)'] * 2 + + ['Rupees (20)'] * 10 + + ['Rupees (50)'] * 10 + + ['Rupees (200)'] * 5 + + ['Progressive Wallet']) + +vanilla_shop_items = { + 'Kokiri Shop Item 1': 'Buy Deku Shield', + 'Kokiri Shop Item 2': 'Buy Deku Nut (5)', + 'Kokiri Shop Item 3': 'Buy Deku Nut (10)', + 'Kokiri Shop Item 4': 'Buy Deku Stick (1)', + 'Kokiri Shop Item 5': 'Buy Deku Seeds (30)', + 'Kokiri Shop Item 6': 'Buy Arrows (10)', + 'Kokiri Shop Item 7': 'Buy Arrows (30)', + 'Kokiri Shop Item 8': 'Buy Heart', + 'Kakariko Potion Shop Item 1': 'Buy Deku Nut (5)', + 'Kakariko Potion Shop Item 2': 'Buy Fish', + 'Kakariko Potion Shop Item 3': 'Buy Red Potion [30]', + 'Kakariko Potion Shop Item 4': 'Buy Green Potion', + 'Kakariko Potion Shop Item 5': 'Buy Blue Fire', + 'Kakariko Potion Shop Item 6': 'Buy Bottle Bug', + 'Kakariko Potion Shop Item 7': 'Buy Poe', + 'Kakariko Potion Shop Item 8': 'Buy Fairy\'s Spirit', + 'Bombchu Shop Item 1': 'Buy Bombchu (5)', + 'Bombchu Shop Item 2': 'Buy Bombchu (10)', + 'Bombchu Shop Item 3': 'Buy Bombchu (10)', + 'Bombchu Shop Item 4': 'Buy Bombchu (10)', + 'Bombchu Shop Item 5': 'Buy Bombchu (20)', + 'Bombchu Shop Item 6': 'Buy Bombchu (20)', + 'Bombchu Shop Item 7': 'Buy Bombchu (20)', + 'Bombchu Shop Item 8': 'Buy Bombchu (20)', + 'Castle Town Potion Shop Item 1': 'Buy Green Potion', + 'Castle Town Potion Shop Item 2': 'Buy Blue Fire', + 'Castle Town Potion Shop Item 3': 'Buy Red Potion [30]', + 'Castle Town Potion Shop Item 4': 'Buy Fairy\'s Spirit', + 'Castle Town Potion Shop Item 5': 'Buy Deku Nut (5)', + 'Castle Town Potion Shop Item 6': 'Buy Bottle Bug', + 'Castle Town Potion Shop Item 7': 'Buy Poe', + 'Castle Town Potion Shop Item 8': 'Buy Fish', + 'Castle Town Bazaar Item 1': 'Buy Hylian Shield', + 'Castle Town Bazaar Item 2': 'Buy Bombs (5) [35]', + 'Castle Town Bazaar Item 3': 'Buy Deku Nut (5)', + 'Castle Town Bazaar Item 4': 'Buy Heart', + 'Castle Town Bazaar Item 5': 'Buy Arrows (10)', + 'Castle Town Bazaar Item 6': 'Buy Arrows (50)', + 'Castle Town Bazaar Item 7': 'Buy Deku Stick (1)', + 'Castle Town Bazaar Item 8': 'Buy Arrows (30)', + 'Kakariko Bazaar Item 1': 'Buy Hylian Shield', + 'Kakariko Bazaar Item 2': 'Buy Bombs (5) [35]', + 'Kakariko Bazaar Item 3': 'Buy Deku Nut (5)', + 'Kakariko Bazaar Item 4': 'Buy Heart', + 'Kakariko Bazaar Item 5': 'Buy Arrows (10)', + 'Kakariko Bazaar Item 6': 'Buy Arrows (50)', + 'Kakariko Bazaar Item 7': 'Buy Deku Stick (1)', + 'Kakariko Bazaar Item 8': 'Buy Arrows (30)', + 'Zora Shop Item 1': 'Buy Zora Tunic', + 'Zora Shop Item 2': 'Buy Arrows (10)', + 'Zora Shop Item 3': 'Buy Heart', + 'Zora Shop Item 4': 'Buy Arrows (30)', + 'Zora Shop Item 5': 'Buy Deku Nut (5)', + 'Zora Shop Item 6': 'Buy Arrows (50)', + 'Zora Shop Item 7': 'Buy Fish', + 'Zora Shop Item 8': 'Buy Red Potion [50]', + 'Goron Shop Item 1': 'Buy Bombs (5) [25]', + 'Goron Shop Item 2': 'Buy Bombs (10)', + 'Goron Shop Item 3': 'Buy Bombs (20)', + 'Goron Shop Item 4': 'Buy Bombs (30)', + 'Goron Shop Item 5': 'Buy Goron Tunic', + 'Goron Shop Item 6': 'Buy Heart', + 'Goron Shop Item 7': 'Buy Red Potion [40]', + 'Goron Shop Item 8': 'Buy Heart', +} + +min_shop_items = ( + ['Buy Deku Shield'] + + ['Buy Hylian Shield'] + + ['Buy Goron Tunic'] + + ['Buy Zora Tunic'] + + ['Buy Deku Nut (5)'] * 2 + ['Buy Deku Nut (10)'] + + ['Buy Deku Stick (1)'] * 2 + + ['Buy Deku Seeds (30)'] + + ['Buy Arrows (10)'] * 2 + ['Buy Arrows (30)'] + ['Buy Arrows (50)'] + + ['Buy Bombchu (5)'] + ['Buy Bombchu (10)'] * 2 + ['Buy Bombchu (20)'] + + ['Buy Bombs (5) [25]'] + ['Buy Bombs (5) [35]'] + ['Buy Bombs (10)'] + ['Buy Bombs (20)'] + + ['Buy Green Potion'] + + ['Buy Red Potion [30]'] + + ['Buy Blue Fire'] + + ['Buy Fairy\'s Spirit'] + + ['Buy Bottle Bug'] + + ['Buy Fish']) + +vanilla_deku_scrubs = { + 'ZR Grotto Deku Scrub Red Potion': 'Buy Red Potion [30]', + 'ZR Grotto Deku Scrub Green Potion': 'Buy Green Potion', + 'SFM Grotto Deku Scrub Red Potion': 'Buy Red Potion [30]', + 'SFM Grotto Deku Scrub Green Potion': 'Buy Green Potion', + 'LH Grotto Deku Scrub Deku Nuts': 'Buy Deku Nut (5)', + 'LH Grotto Deku Scrub Bombs': 'Buy Bombs (5) [35]', + 'LH Grotto Deku Scrub Arrows': 'Buy Arrows (30)', + 'Valley Grotto Deku Scrub Red Potion': 'Buy Red Potion [30]', + 'Valley Grotto Deku Scrub Green Potion': 'Buy Green Potion', + 'LW Deku Scrub Deku Nuts': 'Buy Deku Nut (5)', + 'LW Deku Scrub Deku Sticks': 'Buy Deku Stick (1)', + 'LW Grotto Deku Scrub Arrows': 'Buy Arrows (30)', + 'Desert Grotto Deku Scrub Red Potion': 'Buy Red Potion [30]', + 'Desert Grotto Deku Scrub Green Potion': 'Buy Green Potion', + 'DMC Deku Scrub Bombs': 'Buy Bombs (5) [35]', + 'DMC Grotto Deku Scrub Deku Nuts': 'Buy Deku Nut (5)', + 'DMC Grotto Deku Scrub Bombs': 'Buy Bombs (5) [35]', + 'DMC Grotto Deku Scrub Arrows': 'Buy Arrows (30)', + 'Goron Grotto Deku Scrub Deku Nuts': 'Buy Deku Nut (5)', + 'Goron Grotto Deku Scrub Bombs': 'Buy Bombs (5) [35]', + 'Goron Grotto Deku Scrub Arrows': 'Buy Arrows (30)', + 'LLR Grotto Deku Scrub Deku Nuts': 'Buy Deku Nut (5)', + 'LLR Grotto Deku Scrub Bombs': 'Buy Bombs (5) [35]', + 'LLR Grotto Deku Scrub Arrows': 'Buy Arrows (30)', +} + +deku_scrubs_items = ( + ['Deku Nuts (5)'] * 5 + + ['Deku Stick (1)'] + + ['Bombs (5)'] * 5 + + ['Recovery Heart'] * 4 + + ['Rupees (5)'] * 4 # ['Green Potion'] +) rewardlist = [ 'Kokiri Emerald', @@ -243,6 +357,11 @@ 'King Zora Moves': 'Bottle', 'Master Sword Pedestal': 'Master Sword', 'Epona': 'Epona', + 'Deku Baba Sticks': 'Deku Stick Drop', + 'Goron City Stick Pot': 'Deku Stick Drop', + 'Zoras Domain Stick Pot': 'Deku Stick Drop', + 'Deku Baba Nuts': 'Deku Nut Drop', + 'Zoras Domain Nut Pot': 'Deku Nut Drop', 'Gerudo Fortress Carpenter Rescue': 'Carpenter Rescue', 'Ganons Castle Forest Trial Clear': 'Forest Trial Clear', 'Ganons Castle Fire Trial Clear': 'Fire Trial Clear', @@ -252,7 +371,24 @@ 'Ganons Castle Light Trial Clear': 'Light Trial Clear' } -#total_items_to_place = 5 +junk_pool = ( + 8 * ['Bombs (5)'] + + 2 * ['Bombs (10)'] + + 8 * ['Arrows (5)'] + + 2 * ['Arrows (10)'] + + 5 * ['Deku Stick (1)'] + + 5 * ['Deku Nuts (5)'] + + 5 * ['Deku Seeds (30)'] + + 10 * ['Rupees (5)'] + + 4 * ['Rupees (20)'] + + 1 * ['Rupees (50)']) +def get_junk_item(count=1): + ret_junk = [] + for _ in range(count): + ret_junk.append(random.choice(junk_pool)) + + return ret_junk + def generate_itempool(world): for location, item in eventlocations.items(): @@ -263,7 +399,9 @@ def generate_itempool(world): (pool, placed_items) = get_pool_core(world) world.itempool = ItemFactory(pool) for (location, item) in placed_items.items(): - world.push_item(location, ItemFactory(item)) + new_item = ItemFactory(item) + new_item.world = world + world.push_item(location, new_item) world.get_location(location).event = True choose_trials(world) @@ -473,10 +611,10 @@ def get_pool_core(world): if world.difficulty == 'normal': pool.extend(['Magic Meter', 'Double Defense'] + ['Heart Container'] * 8) else: - pool.extend(harditems) + pool.extend(get_junk_item(10)) if world.difficulty == 'very_hard' or world.difficulty == 'ohko': - pool.extend(veryharditems) + pool.extend(get_junk_item(37)) else: pool.extend(['Nayrus Love', 'Piece of Heart (Treasure Chest Game)'] + ['Piece of Heart'] * 35) @@ -485,7 +623,7 @@ def get_pool_core(world): placed_items['Gerudo Fortress North F2 Carpenter'] = 'Recovery Heart' placed_items['Gerudo Fortress South F1 Carpenter'] = 'Recovery Heart' placed_items['Gerudo Fortress South F2 Carpenter'] = 'Recovery Heart' - elif world.keysanity: + elif world.shuffle_smallkeys == 'keysanity': if world.gerudo_fortress == 'fast': pool.append('Small Key (Gerudo Fortress)') placed_items['Gerudo Fortress North F2 Carpenter'] = 'Recovery Heart' @@ -510,6 +648,73 @@ def get_pool_core(world): else: placed_items['Gerudo Fortress Membership Card'] = 'Gerudo Membership Card' + if world.shopsanity == 'off': + placed_items.update(vanilla_shop_items) + if world.bombchus_in_logic: + placed_items['Kokiri Shop Item 8'] = 'Buy Bombchu (5)' + placed_items['Castle Town Bazaar Item 4'] = 'Buy Bombchu (5)' + placed_items['Kakariko Bazaar Item 4'] = 'Buy Bombchu (5)' + pool.extend(normal_rupees) + + else: + remain_shop_items = [item for _,item in vanilla_shop_items.items()] + pool.extend(min_shop_items) + for item in min_shop_items: + remain_shop_items.remove(item) + + shop_slots_count = len(remain_shop_items) + shop_nonitem_count = len(world.shop_prices) + shop_item_count = shop_slots_count - shop_nonitem_count + + pool.extend(random.sample(remain_shop_items, shop_item_count)) + pool.extend(get_junk_item(shop_nonitem_count)) + pool.extend(shopsanity_rupees) + + if world.shuffle_scrubs: + arrows_or_seeds = 0 + if world.dungeon_mq['DT']: + pool.append('Deku Shield') + if world.dungeon_mq['DC']: + pool.extend(['Deku Stick (1)', 'Deku Shield', 'Recovery Heart']) + else: + pool.extend(['Deku Nuts (5)', 'Deku Stick (1)', 'Deku Shield']) + if not world.dungeon_mq['JB']: + pool.append('Deku Nuts (5)') + if world.dungeon_mq['GC']: + pool.extend(['Bombs (5)', 'Recovery Heart', 'Rupees (5)', 'Deku Nuts (5)']) + else: + pool.extend(['Bombs (5)', 'Recovery Heart', 'Rupees (5)']) + pool.extend(deku_scrubs_items) + for _ in range(7): + pool.append('Arrows (30)' if random.randint(0,3) > 0 else 'Deku Seeds (30)') + + else: + if world.dungeon_mq['DT']: + placed_items['DT MQ Deku Scrub Deku Shield'] = 'Buy Deku Shield' + if world.dungeon_mq['DC']: + placed_items['DC MQ Deku Scrub Deku Sticks'] = 'Buy Deku Stick (1)' + placed_items['DC MQ Deku Scrub Deku Seeds'] = 'Buy Deku Seeds (30)' + placed_items['DC MQ Deku Scrub Deku Shield'] = 'Buy Deku Shield' + placed_items['DC MQ Deku Scrub Red Potion'] = 'Buy Red Potion [30]' + else: + placed_items['DC Deku Scrub Deku Nuts'] = 'Buy Deku Nut (5)' + placed_items['DC Deku Scrub Deku Sticks'] = 'Buy Deku Stick (1)' + placed_items['DC Deku Scrub Deku Seeds'] = 'Buy Deku Seeds (30)' + placed_items['DC Deku Scrub Deku Shield'] = 'Buy Deku Shield' + if not world.dungeon_mq['JB']: + placed_items['Jabu Deku Scrub Deku Nuts'] = 'Buy Deku Nut (5)' + if world.dungeon_mq['GC']: + placed_items['GC MQ Deku Scrub Deku Nuts'] = 'Buy Deku Nut (5)' + placed_items['GC MQ Deku Scrub Bombs'] = 'Buy Bombs (5) [35]' + placed_items['GC MQ Deku Scrub Arrows'] = 'Buy Arrows (30)' + placed_items['GC MQ Deku Scrub Red Potion'] = 'Buy Red Potion [30]' + placed_items['GC MQ Deku Scrub Green Potion'] = 'Buy Green Potion' + else: + placed_items['GC Deku Scrub Bombs'] = 'Buy Bombs (5) [35]' + placed_items['GC Deku Scrub Arrows'] = 'Buy Arrows (30)' + placed_items['GC Deku Scrub Red Potion'] = 'Buy Red Potion [30]' + placed_items['GC Deku Scrub Green Potion'] = 'Buy Green Potion' + placed_items.update(vanilla_deku_scrubs) pool.extend(alwaysitems) if world.dungeon_mq['DT']: @@ -533,12 +738,14 @@ def get_pool_core(world): if world.dungeon_mq['SpT']: pool.extend(SpT_MQ) else: + placed_items['Spirit Temple Nut Crate'] = 'Deku Nut Drop' pool.extend(SpT_vanilla) if world.dungeon_mq['ShT']: pool.extend(ShT_MQ) else: pool.extend(ShT_vanilla) if not world.dungeon_mq['BW']: + placed_items['Bottom of the Well Stick Pot'] = 'Deku Stick Drop' pool.extend(BW_vanilla) if world.dungeon_mq['GTG']: pool.extend(GTG_MQ) @@ -555,9 +762,27 @@ def get_pool_core(world): pool.append(tradeitem) pool.extend(songlist) + if world.shuffle_mapcompass == 'remove': + for item in [item for dungeon in world.dungeons for item in dungeon.dungeon_items]: + world.state.collect(item) + pool.extend(get_junk_item()) + if world.shuffle_smallkeys == 'remove': + for item in [item for dungeon in world.dungeons for item in dungeon.small_keys]: + world.state.collect(item) + pool.extend(get_junk_item()) + if world.shuffle_bosskeys == 'remove': + for item in [item for dungeon in world.dungeons for item in dungeon.boss_key]: + world.state.collect(item) + pool.extend(get_junk_item()) + if not world.keysanity and not world.dungeon_mq['FiT']: + world.state.collect(ItemFactory('Small Key (Fire Temple)')) + + return (pool, placed_items) def choose_trials(world): + if world.trials_random: + world.trials = random.randint(0, 6) num_trials = int(world.trials) choosen_trials = random.sample(['Forest', 'Fire', 'Water', 'Spirit', 'Shadow', 'Light'], num_trials) for trial in world.skipped_trials: diff --git a/Items.py b/Items.py index 163416ae1..68f72e18f 100644 --- a/Items.py +++ b/Items.py @@ -11,261 +11,303 @@ def ItemFactory(items): singleton = True for item in items: if item in item_table: - advancement, priority, type, code, index = item_table[item] - ret.append(Item(item, advancement, priority, type, code, index)) + advancement, priority, type, code, index, object, model = item_table[item] + ret.append(Item(item, advancement, priority, type, code, index, object, model)) else: - logging.getLogger('').warning('Unknown Item: %s', item) - return None + raise KeyError('Unknown Item: %s', item) if singleton: return ret[0] return ret -# Format: Name: (Advancement, Priority, Type, ItemCode, Index) -item_table = {'Bow': (True, False, None, None, 0x83), - 'Progressive Hookshot': (True, False, None, None, 0x80), - 'Hammer': (True, False, None, 0x01A0, 0x0D), - 'Slingshot': (True, False, None, None, 0x84), - 'Boomerang': (True, False, None, 0x00C0, 0x06), - 'Bomb Bag': (True, False, None, None, 0x82), - 'Lens of Truth': (True, False, None, 0x0140, 0x0A), - 'Dins Fire': (True, False, None, 0x0B80, 0x5C), - 'Farores Wind': (True, False, None, 0x0BA0, 0x5D), - 'Nayrus Love': (True, False, None, 0x0BC0, 0x5E), - 'Fire Arrows': (True, False, None, 0x0B00, 0x58), - 'Ice Arrows': (True, False, None, 0x0B20, 0x59), - 'Light Arrows': (True, False, None, 0x0B40, 0x5A), - 'Fairy Ocarina': (True, False, None, 0x0760, 0x3B), - 'Ocarina of Time': (True, False, None, 0x0180, 0x0C), - 'Ocarina': (True, False, None, 0x0180, 0xC3), - 'Bottle': (True, False, None, 0x01E0, 0x0F), - 'Bottle with Letter': (True, False, None, 0x02A0, 0x15), - 'Bottle with Milk': (True, False, None, 0x0280, 0x14), - 'Bottle with Red Potion': (True, False, None, None, 0x89), - 'Bottle with Green Potion': (True, False, None, None, 0x8A), - 'Bottle with Blue Potion': (True, False, None, None, 0x8B), - 'Bottle with Fairy': (True, False, None, None, 0x8C), - 'Bottle with Fish': (True, False, None, None, 0x8D), - 'Bottle with Blue Fire': (True, False, None, None, 0x8E), - 'Bottle with Bugs': (True, False, None, None, 0x8F), - 'Bottle with Big Poe': (True, False, None, None, 0x90), - 'Bottle with Poe': (True, False, None, None, 0x91), - 'Weird Egg': (True, False, None, 0x08E0, 0x47), - 'Pocket Egg': (True, False, None, 0x03A0, 0x1D), - 'Pocket Cucco': (True, False, None, 0x03C0, 0x1E), - 'Cojiro': (True, False, None, 0x01C0, 0x0E), - 'Odd Mushroom': (True, False, None, 0x03E0, 0x1F), - 'Odd Potion': (True, False, None, 0x0400, 0x20), - 'Poachers Saw': (True, False, None, 0x0420, 0x21), - 'Broken Sword': (True, False, None, 0x0440, 0x22), - 'Prescription': (True, False, None, 0x0460, 0x23), - 'Eyeball Frog': (True, False, None, 0x0480, 0x24), - 'Eyedrops': (True, False, None, 0x04A0, 0x25), - 'Claim Check': (True, False, None, 0x04C0, 0x26), - 'Kokiri Sword': (True, False, None, 0x04E0, 0x27), - 'Master Sword': (True, False, None, None, None), - 'Biggoron Sword': (True, False, None, None, 0xB5), - 'Deku Shield': (False, False, None, 0x0520, 0x29), - 'Hylian Shield': (False, False, None, 0x0540, 0x2A), - 'Mirror Shield': (True, False, None, 0x0560, 0x2B), - 'Goron Tunic': (True, False, None, 0x0580, 0x2C), - 'Zora Tunic': (True, False, None, 0x05A0, 0x2D), - 'Iron Boots': (True, False, None, 0x05C0, 0x2E), - 'Hover Boots': (True, False, None, 0x05E0, 0x2F), - 'Progressive Strength Upgrade': (True, False, None, None, 0x81), - 'Progressive Scale': (True, False, None, None, 0x86), - 'Progressive Wallet': (True, False, None, None, 0x85), - 'Deku Stick Capacity': (False, False, None, None, 0x88), - 'Deku Nut Capacity': (False, False, None, None, 0x87), - 'Magic Meter': (True, False, None, None, 0xC0), - 'Double Defense': (False, False, None, None, 0xBF), - 'Stone of Agony': (True, False, None, 0x0720, 0x39), - 'Piece of Heart': (False, False, None, 0x07C0, 0x3E), - 'Heart Container': (False, False, None, 0x07A0, 0x3D), - 'Piece of Heart (Treasure Chest Game)': (False, False, None, None, 0x76), - 'Heart Container (Boss)': (False, False, None, None, 0x4F), - 'Recovery Heart': (False, False, None, None, 0xB6), - 'Arrows (5)': (False, False, None, None, 0xB7), - 'Arrows (10)': (False, False, None, None, 0xB8), - 'Arrows (30)': (False, False, None, None, 0xB9), - 'Bombs (5)': (False, False, None, None, 0xBA), - 'Bombs (10)': (False, False, None, None, 0xBB), - 'Bombs (20)': (False, False, None, None, 0xBC), - 'Bombchus (5)': (True, False, None, 0x0D40, 0x6A), - 'Bombchus (10)': (True, False, None, 0x0060, 0x03), - 'Bombchus (20)': (True, False, None, 0x0D60, 0x6B), - 'Bombchus': (True, False, None, None, 0xC2), - 'Deku Nuts (5)': (False, False, None, None, 0xBD), - 'Deku Nuts (10)': (False, False, None, None, 0xBE), - 'Deku Stick (1)': (False, False, None, 0x00E0, 0x07), # This probably will need an extended version made to be NPC friendly. - 'Rupee (Treasure Chest Game)': (False, False, None, 0x0E40, 0x72), - 'Rupee (1)': (False, False, None, 0x0980, 0x4C), - 'Rupees (5)': (False, False, None, 0x09A0, 0x4D), - 'Rupees (20)': (False, False, None, 0x09C0, 0x4E), - 'Rupees (50)': (False, False, None, 0x0AA0, 0x55), - 'Rupees (200)': (False, False, None, 0x0AC0, 0x56), - 'Skull Mask': (False, False, None, 0x02E0, 0x17), - 'Spooky Mask': (False, False, None, 0x0300, 0x18), - 'Keaton Mask': (False, False, None, 0x0340, 0x1A), - 'Bunny Hood': (False, False, None, 0x0360, 0x1B), - 'Mask of Truth': (False, False, None, 0x0380, 0x1C), - 'Goron Mask': (False, False, None, 0x0A20, 0x51), - 'Zora Mask': (False, False, None, 0x0A40, 0x52), - 'Gerudo Mask': (False, False, None, 0x0A60, 0x53), - 'Ice Trap': (False, True, None, 0x0F80, 0x7C), - 'Magic Bean': (True, False, None, 0x02C0, 0x16), - 'Map': (False, False, 'Map', 0x0820, 0x41), - 'Compass': (False, False, 'Compass', 0x0800, 0x40), - 'Boss Key': (True, False, 'BossKey', 0x07E0, 0x3F), - 'Small Key': (True, False, 'SmallKey', 0x0840, 0x42), - 'Boss Key (Forest Temple)': (True, False, 'BossKey', None, 0x92), - 'Boss Key (Fire Temple)': (True, False, 'BossKey', None, 0x93), - 'Boss Key (Water Temple)': (True, False, 'BossKey', None, 0x94), - 'Boss Key (Spirit Temple)': (True, False, 'BossKey', None, 0x95), - 'Boss Key (Shadow Temple)': (True, False, 'BossKey', None, 0x96), - 'Boss Key (Ganons Castle)': (True, False, 'BossKey', None, 0x97), - 'Compass (Deku Tree)': (False, False, 'Compass', None, 0x98), - 'Compass (Dodongos Cavern)': (False, False, 'Compass', None, 0x99), - 'Compass (Jabu Jabus Belly)': (False, False, 'Compass', None, 0x9A), - 'Compass (Forest Temple)': (False, False, 'Compass', None, 0x9B), - 'Compass (Fire Temple)': (False, False, 'Compass', None, 0x9C), - 'Compass (Water Temple)': (False, False, 'Compass', None, 0x9D), - 'Compass (Spirit Temple)': (False, False, 'Compass', None, 0x9E), - 'Compass (Shadow Temple)': (False, False, 'Compass', None, 0x9F), - 'Compass (Bottom of the Well)': (False, False, 'Compass', None, 0xA0), - 'Compass (Ice Cavern)': (False, False, 'Compass', None, 0xA1), - 'Map (Deku Tree)': (False, False, 'Map', None, 0xA2), - 'Map (Dodongos Cavern)': (False, False, 'Map', None, 0xA3), - 'Map (Jabu Jabus Belly)': (False, False, 'Map', None, 0xA4), - 'Map (Forest Temple)': (False, False, 'Map', None, 0xA5), - 'Map (Fire Temple)': (False, False, 'Map', None, 0xA6), - 'Map (Water Temple)': (False, False, 'Map', None, 0xA7), - 'Map (Spirit Temple)': (False, False, 'Map', None, 0xA8), - 'Map (Shadow Temple)': (False, False, 'Map', None, 0xA9), - 'Map (Bottom of the Well)': (False, False, 'Map', None, 0xAA), - 'Map (Ice Cavern)': (False, False, 'Map', None, 0xAB), - 'Small Key (Forest Temple)': (True, False, 'SmallKey', None, 0xAC), - 'Small Key (Fire Temple)': (True, False, 'SmallKey', None, 0xAD), - 'Small Key (Water Temple)': (True, False, 'SmallKey', None, 0xAE), - 'Small Key (Spirit Temple)': (True, False, 'SmallKey', None, 0xAF), - 'Small Key (Shadow Temple)': (True, False, 'SmallKey', None, 0xB0), - 'Small Key (Bottom of the Well)': (True, False, 'SmallKey', None, 0xB1), - 'Small Key (Gerudo Training Grounds)': (True, False, 'SmallKey', None, 0xB2), - 'Small Key (Gerudo Fortress)': (True, False, 'FortressSmallKey', None, 0xB3), - 'Small Key (Ganons Castle)': (True, False, 'SmallKey', None, 0xB4), - 'Zeldas Letter': (True, False, None, None, None), - 'Zeldas Lullaby': (True, False, 'Song', [0x0A, 0x5], 0xCA), - 'Eponas Song': (True, False, 'Song', [0x09, 0x4], 0xCB), - 'Suns Song': (True, False, 'Song', [0x0B, 0x2], 0xCD), - 'Sarias Song': (True, False, 'Song', [0x08, 0x3], 0xCC), - 'Song of Time': (True, False, 'Song', [0x0C, 0x1], 0xCE), - 'Song of Storms': (True, False, 'Song', [0x0D, 0x0], 0xCF), - 'Minuet of Forest': (True, False, 'Song', [0x02, 0xB], 0xC4), - 'Prelude of Light': (True, False, 'Song', [0x07, 0x6], 0xC9), - 'Bolero of Fire': (True, False, 'Song', [0x03, 0xA], 0xC5), - 'Serenade of Water': (True, False, 'Song', [0x04, 0x9], 0xC6), - 'Nocturne of Shadow': (True, False, 'Song', [0x06, 0x7], 0xC8), - 'Requiem of Spirit': (True, False, 'Song', [0x05, 0x8], 0xC7), - 'Gold Skulltulla Token': (True, False, 'Token', None, 0x5B), - 'Epona': (True, False, 'Event', None, None), - 'Carpenter Rescue': (True, False, 'Event', None, None), - 'Gerudo Membership Card': (True, False, None, 0x0740, 0x3A), - 'Kokiri Emerald': (True, False, 'Event', 0x6C, None), - 'Goron Ruby': (True, False, 'Event', 0x6D, None), - 'Zora Sapphire': (True, False, 'Event', 0x6E, None), - 'Forest Medallion': (True, False, 'Event', 0x66, None), - 'Fire Medallion': (True, False, 'Event', 0x67, None), - 'Water Medallion': (True, False, 'Event', 0x68, None), - 'Spirit Medallion': (True, False, 'Event', 0x69, None), - 'Shadow Medallion': (True, False, 'Event', 0x6A, None), - 'Light Medallion': (True, False, 'Event', 0x6B, None), - 'Forest Trial Clear': (True, False, 'Event', None, None), - 'Fire Trial Clear': (True, False, 'Event', None, None), - 'Water Trial Clear': (True, False, 'Event', None, None), - 'Shadow Trial Clear': (True, False, 'Event', None, None), - 'Spirit Trial Clear': (True, False, 'Event', None, None), - 'Light Trial Clear': (True, False, 'Event', None, None), - 'Triforce': (True, False, 'Event', None, None)} +class ShopData(object): + def __init__(self, model, gid, price): + self.model = model + self.gid = gid + self.price = price + + +# Format: Name: (Advancement, Priority, Type, ItemCode, Index, Object, Model) +item_table = { + 'Bow': (True, False, None, None, 0x83, 0x00E9, 0x35), + 'Progressive Hookshot': (True, False, None, None, 0x80, 0x00DD, 0x2D), + 'Hammer': (True, False, None, 0x01A0, 0x0D, 0x00F6, 0x41), + 'Slingshot': (True, False, None, None, 0x84, 0x00E7, 0x33), + 'Boomerang': (True, False, None, 0x00C0, 0x06, 0x00E8, 0x34), + 'Bomb Bag': (True, False, None, None, 0x82, 0x00BF, 0x18), + 'Lens of Truth': (True, False, None, 0x0140, 0x0A, 0x00EA, 0x36), + 'Dins Fire': (True, False, None, 0x0B80, 0x5C, 0x015D, 0x64), + 'Farores Wind': (True, False, None, 0x0BA0, 0x5D, 0x015D, 0x65), + 'Nayrus Love': (True, False, None, 0x0BC0, 0x5E, 0x015D, 0x66), + 'Fire Arrows': (True, False, None, 0x0B00, 0x58, 0x0158, 0x60), + 'Ice Arrows': (True, False, None, 0x0B20, 0x59, 0x0158, 0x61), + 'Light Arrows': (True, False, None, 0x0B40, 0x5A, 0x0158, 0x62), + 'Fairy Ocarina': (True, False, None, 0x0760, 0x3B, 0x010E, 0x46), + 'Ocarina of Time': (True, False, None, 0x0180, 0x0C, 0x00DE, 0x2F), + 'Ocarina': (True, False, None, 0x0180, 0xC3, 0x00DE, 0x2F), + 'Bottle': (True, False, None, 0x01E0, 0x0F, 0x00C6, 0x01), + 'Bottle with Letter': (True, False, None, 0x02A0, 0x15, 0x010B, 0x45), + 'Bottle with Milk': (True, False, None, 0x0280, 0x14, 0x00DF, 0x30), + 'Bottle with Red Potion': (True, False, None, None, 0x89, 0x00C6, 0x01), + 'Bottle with Green Potion': (True, False, None, None, 0x8A, 0x00C6, 0x01), + 'Bottle with Blue Potion': (True, False, None, None, 0x8B, 0x00C6, 0x01), + 'Bottle with Fairy': (True, False, None, None, 0x8C, 0x00C6, 0x01), + 'Bottle with Fish': (True, False, None, None, 0x8D, 0x00C6, 0x01), + 'Bottle with Blue Fire': (True, False, None, None, 0x8E, 0x00C6, 0x01), + 'Bottle with Bugs': (True, False, None, None, 0x8F, 0x00C6, 0x01), + 'Bottle with Big Poe': (True, False, None, None, 0x90, 0x00C6, 0x01), + 'Bottle with Poe': (True, False, None, None, 0x91, 0x00C6, 0x01), + 'Weird Egg': (True, False, None, 0x08E0, 0x47, 0x00DA, 0x29), + 'Pocket Egg': (True, False, None, 0x03A0, 0x1D, 0x00DA, 0x29), + 'Pocket Cucco': (True, False, None, 0x03C0, 0x1E, 0x0109, 0x44), + 'Cojiro': (True, False, None, 0x01C0, 0x0E, 0x0109, 0x5E), + 'Odd Mushroom': (True, False, None, 0x03E0, 0x1F, 0x0141, 0x54), + 'Odd Potion': (True, False, None, 0x0400, 0x20, 0x0140, 0x53), + 'Poachers Saw': (True, False, None, 0x0420, 0x21, 0x00F5, 0x40), + 'Broken Sword': (True, False, None, 0x0440, 0x22, 0x0143, 0x56), + 'Prescription': (True, False, None, 0x0460, 0x23, 0x0146, 0x57), + 'Eyeball Frog': (True, False, None, 0x0480, 0x24, 0x0149, 0x5A), + 'Eyedrops': (True, False, None, 0x04A0, 0x25, 0x013F, 0x52), + 'Claim Check': (True, False, None, 0x04C0, 0x26, 0x0142, 0x55), + 'Kokiri Sword': (True, False, None, 0x04E0, 0x27, 0x018D, 0x74), + 'Master Sword': (True, False, None, None, None, None, None), + 'Biggoron Sword': (True, False, None, None, 0xB5, 0x00F8, 0x43), + 'Deku Shield': (False, False, None, 0x0520, 0x29, 0x00CB, 0x1D), + 'Hylian Shield': (False, False, None, 0x0540, 0x2A, 0x00DC, 0x2C), + 'Mirror Shield': (True, False, None, 0x0560, 0x2B, 0x00EE, 0x3A), + 'Goron Tunic': (True, False, None, 0x0580, 0x2C, 0x00F2, 0x3C), + 'Zora Tunic': (True, False, None, 0x05A0, 0x2D, 0x00F2, 0x3D), + 'Iron Boots': (True, False, None, 0x05C0, 0x2E, 0x0118, 0x47), + 'Hover Boots': (True, False, None, 0x05E0, 0x2F, 0x0157, 0x5F), + 'Progressive Strength Upgrade': (True, False, None, None, 0x81, 0x0147, 0x58), + 'Progressive Scale': (True, False, None, None, 0x86, 0x00DB, 0x2A), + 'Progressive Wallet': (True, False, None, None, 0x85, 0x00D1, 0x22), + 'Deku Stick Capacity': (False, False, None, None, 0x88, 0x00C7, 0x1B), + 'Deku Nut Capacity': (False, False, None, None, 0x87, 0x00BB, 0x12), + 'Magic Meter': (True, False, None, None, 0xC0, 0x00CD, 0x1E), + 'Double Defense': (False, False, None, None, 0xBF, 0x00BD, 0x13), + 'Stone of Agony': (True, False, None, 0x0720, 0x39, 0x00C8, 0x21), + 'Piece of Heart': (False, False, None, 0x07C0, 0x3E, 0x00BD, 0x14), + 'Heart Container': (False, False, None, 0x07A0, 0x3D, 0x00BD, 0x13), + 'Piece of Heart (Treasure Chest Game)': (False, False, None, None, 0x76, 0x00BD, 0x14), + 'Heart Container (Boss)': (False, False, None, None, 0x4F, 0x00BD, 0x13), + 'Recovery Heart': (False, False, None, None, 0xB6, 0x00B7, 0x09), + 'Arrows (5)': (False, False, None, None, 0xB7, 0x00D8, 0x25), + 'Arrows (10)': (False, False, None, None, 0xB8, 0x00D8, 0x26), + 'Arrows (30)': (False, False, None, None, 0xB9, 0x00D8, 0x27), + 'Bombs (5)': (False, False, None, None, 0xBA, 0x00CE, 0x20), + 'Bombs (10)': (False, False, None, None, 0xBB, 0x00CE, 0x20), + 'Bombs (20)': (False, False, None, None, 0xBC, 0x00CE, 0x20), + 'Bombchus (5)': (True, False, None, 0x0D40, 0x6A, 0x00D9, 0x28), + 'Bombchus (10)': (True, False, None, 0x0060, 0x03, 0x00D9, 0x28), + 'Bombchus (20)': (True, False, None, 0x0D60, 0x6B, 0x00D9, 0x28), + 'Bombchus': (True, False, None, None, 0xC2, 0x00D9, 0x28), + 'Deku Nuts (5)': (False, False, None, None, 0xBD, 0x00BB, 0x12), + 'Deku Nuts (10)': (False, False, None, None, 0xBE, 0x00BB, 0x12), + 'Deku Stick (1)': (False, False, None, 0x00E0, 0xD0, 0x00C7, 0x1B), + 'Deku Seeds (30)': (False, False, None, 0x00E0, 0xD1, 0x0119, 0x48), + 'Rupee (Treasure Chest Game)': (False, False, None, 0x0E40, 0x72, 0x017F, 0x6D), + 'Rupee (1)': (False, False, None, 0x0980, 0x4C, 0x017F, 0x6D), + 'Rupees (5)': (False, False, None, 0x09A0, 0x4D, 0x017F, 0x6E), + 'Rupees (20)': (False, False, None, 0x09C0, 0x4E, 0x017F, 0x6F), + 'Rupees (50)': (False, False, None, 0x0AA0, 0x55, 0x017F, 0x71), + 'Rupees (200)': (False, False, None, 0x0AC0, 0x56, 0x017F, 0x72), + 'Skull Mask': (False, False, None, 0x02E0, 0x17, 0x0136, 0x4F), + 'Spooky Mask': (False, False, None, 0x0300, 0x18, 0x0135, 0x32), + 'Keaton Mask': (False, False, None, 0x0340, 0x1A, 0x0134, 0x31), + 'Bunny Hood': (False, False, None, 0x0360, 0x1B, 0x0137, 0x50), + 'Mask of Truth': (False, False, None, 0x0380, 0x1C, 0x0138, 0x51), + 'Goron Mask': (False, False, None, 0x0A20, 0x51, 0x0150, 0x5B), + 'Zora Mask': (False, False, None, 0x0A40, 0x52, 0x0151, 0x5C), + 'Gerudo Mask': (False, False, None, 0x0A60, 0x53, 0x0152, 0x5D), + 'Ice Trap': (False, True, None, 0x0F80, 0x7C, None, None), + 'Magic Bean': (True, False, None, 0x02C0, 0x16, 0x00F3, 0x3E), + 'Map': (False, False, 'Map', 0x0820, 0x41, 0x00C8, 0x1C), + 'Compass': (False, False, 'Compass', 0x0800, 0x40, 0x00B8, 0x0B), + 'Boss Key': (True, False, 'BossKey', 0x07E0, 0x3F, 0x00B9, 0x0A), + 'Small Key': (True, False, 'SmallKey', 0x0840, 0x42, 0x00AA, 0x02), + 'Boss Key (Forest Temple)': (True, False, 'BossKey', None, 0x92, 0x00B9, 0x0A), + 'Boss Key (Fire Temple)': (True, False, 'BossKey', None, 0x93, 0x00B9, 0x0A), + 'Boss Key (Water Temple)': (True, False, 'BossKey', None, 0x94, 0x00B9, 0x0A), + 'Boss Key (Spirit Temple)': (True, False, 'BossKey', None, 0x95, 0x00B9, 0x0A), + 'Boss Key (Shadow Temple)': (True, False, 'BossKey', None, 0x96, 0x00B9, 0x0A), + 'Boss Key (Ganons Castle)': (True, False, 'BossKey', None, 0x97, 0x00B9, 0x0A), + 'Compass (Deku Tree)': (False, False, 'Compass', None, 0x98, 0x00B8, 0x0B), + 'Compass (Dodongos Cavern)': (False, False, 'Compass', None, 0x99, 0x00B8, 0x0B), + 'Compass (Jabu Jabus Belly)': (False, False, 'Compass', None, 0x9A, 0x00B8, 0x0B), + 'Compass (Forest Temple)': (False, False, 'Compass', None, 0x9B, 0x00B8, 0x0B), + 'Compass (Fire Temple)': (False, False, 'Compass', None, 0x9C, 0x00B8, 0x0B), + 'Compass (Water Temple)': (False, False, 'Compass', None, 0x9D, 0x00B8, 0x0B), + 'Compass (Spirit Temple)': (False, False, 'Compass', None, 0x9E, 0x00B8, 0x0B), + 'Compass (Shadow Temple)': (False, False, 'Compass', None, 0x9F, 0x00B8, 0x0B), + 'Compass (Bottom of the Well)': (False, False, 'Compass', None, 0xA0, 0x00B8, 0x0B), + 'Compass (Ice Cavern)': (False, False, 'Compass', None, 0xA1, 0x00B8, 0x0B), + 'Map (Deku Tree)': (False, False, 'Map', None, 0xA2, 0x00C8, 0x1C), + 'Map (Dodongos Cavern)': (False, False, 'Map', None, 0xA3, 0x00C8, 0x1C), + 'Map (Jabu Jabus Belly)': (False, False, 'Map', None, 0xA4, 0x00C8, 0x1C), + 'Map (Forest Temple)': (False, False, 'Map', None, 0xA5, 0x00C8, 0x1C), + 'Map (Fire Temple)': (False, False, 'Map', None, 0xA6, 0x00C8, 0x1C), + 'Map (Water Temple)': (False, False, 'Map', None, 0xA7, 0x00C8, 0x1C), + 'Map (Spirit Temple)': (False, False, 'Map', None, 0xA8, 0x00C8, 0x1C), + 'Map (Shadow Temple)': (False, False, 'Map', None, 0xA9, 0x00C8, 0x1C), + 'Map (Bottom of the Well)': (False, False, 'Map', None, 0xAA, 0x00C8, 0x1C), + 'Map (Ice Cavern)': (False, False, 'Map', None, 0xAB, 0x00C8, 0x1C), + 'Small Key (Forest Temple)': (True, False, 'SmallKey', None, 0xAC, 0x00AA, 0x02), + 'Small Key (Fire Temple)': (True, False, 'SmallKey', None, 0xAD, 0x00AA, 0x02), + 'Small Key (Water Temple)': (True, False, 'SmallKey', None, 0xAE, 0x00AA, 0x02), + 'Small Key (Spirit Temple)': (True, False, 'SmallKey', None, 0xAF, 0x00AA, 0x02), + 'Small Key (Shadow Temple)': (True, False, 'SmallKey', None, 0xB0, 0x00AA, 0x02), + 'Small Key (Bottom of the Well)': (True, False, 'SmallKey', None, 0xB1, 0x00AA, 0x02), + 'Small Key (Gerudo Training Grounds)': (True, False, 'SmallKey', None, 0xB2, 0x00AA, 0x02), + 'Small Key (Gerudo Fortress)': (True, False, 'FortressSmallKey', None, 0xB3, 0x00AA, 0x02), + 'Small Key (Ganons Castle)': (True, False, 'SmallKey', None, 0xB4, 0x00AA, 0x02), + 'Zeldas Letter': (True, False, None, None, None, None, None), + 'Zeldas Lullaby': (True, False, 'Song', [0x0A, 0x5], 0xCA, 0x00B6, 0x04), + 'Eponas Song': (True, False, 'Song', [0x09, 0x4], 0xCB, 0x00B6, 0x06), + 'Suns Song': (True, False, 'Song', [0x0B, 0x2], 0xCD, 0x00B6, 0x08), + 'Sarias Song': (True, False, 'Song', [0x08, 0x3], 0xCC, 0x00B6, 0x03), + 'Song of Time': (True, False, 'Song', [0x0C, 0x1], 0xCE, 0x00B6, 0x05), + 'Song of Storms': (True, False, 'Song', [0x0D, 0x0], 0xCF, 0x00B6, 0x07), + 'Minuet of Forest': (True, False, 'Song', [0x02, 0xB], 0xC4, 0x00B6, 0x03), + 'Prelude of Light': (True, False, 'Song', [0x07, 0x6], 0xC9, 0x00B6, 0x08), + 'Bolero of Fire': (True, False, 'Song', [0x03, 0xA], 0xC5, 0x00B6, 0x04), + 'Serenade of Water': (True, False, 'Song', [0x04, 0x9], 0xC6, 0x00B6, 0x05), + 'Nocturne of Shadow': (True, False, 'Song', [0x06, 0x7], 0xC8, 0x00B6, 0x07), + 'Requiem of Spirit': (True, False, 'Song', [0x05, 0x8], 0xC7, 0x00B6, 0x08), + 'Gold Skulltulla Token': (True, False, 'Token', None, 0x5B, 0x015C, 0x63), + 'Epona': (True, False, 'Event', None, None, None, None), + 'Deku Stick Drop': (True, False, 'Event', None, None, None, None), + 'Deku Nut Drop': (True, False, 'Event', None, None, None, None), + 'Carpenter Rescue': (True, False, 'Event', None, None, None, None), + 'Gerudo Membership Card': (True, False, None, 0x0740, 0x3A, 0x00D7, 0x24), + 'Kokiri Emerald': (True, False, 'Event', 0x6C, None, None, None), + 'Goron Ruby': (True, False, 'Event', 0x6D, None, None, None), + 'Zora Sapphire': (True, False, 'Event', 0x6E, None, None, None), + 'Forest Medallion': (True, False, 'Event', 0x66, None, None, None), + 'Fire Medallion': (True, False, 'Event', 0x67, None, None, None), + 'Water Medallion': (True, False, 'Event', 0x68, None, None, None), + 'Spirit Medallion': (True, False, 'Event', 0x69, None, None, None), + 'Shadow Medallion': (True, False, 'Event', 0x6A, None, None, None), + 'Light Medallion': (True, False, 'Event', 0x6B, None, None, None), + 'Forest Trial Clear': (True, False, 'Event', None, None, None, None), + 'Fire Trial Clear': (True, False, 'Event', None, None, None, None), + 'Water Trial Clear': (True, False, 'Event', None, None, None, None), + 'Shadow Trial Clear': (True, False, 'Event', None, None, None, None), + 'Spirit Trial Clear': (True, False, 'Event', None, None, None, None), + 'Light Trial Clear': (True, False, 'Event', None, None, None, None), + 'Triforce': (True, False, 'Event', None, None, None, None), + 'Buy Deku Nut (5)': (True, False, 'Shop', None, 0x00, 0x00BB, 0x12), + 'Buy Arrows (30)': (False, True, 'Shop', None, 0x01, 0x00D8, 0x26), + 'Buy Arrows (50)': (False, True, 'Shop', None, 0x02, 0x00D8, 0x27), + 'Buy Bombs (5) [25]': (False, True, 'Shop', None, 0x03, 0x00CE, 0x20), + 'Buy Deku Nut (10)': (True, False, 'Shop', None, 0x04, 0x00BB, 0x12), + 'Buy Deku Stick (1)': (True, False, 'Shop', None, 0x05, 0x00C7, 0x1B), + 'Buy Bombs (10)': (False, True, 'Shop', None, 0x06, 0x00CE, 0x20), + 'Buy Fish': (False, True, 'Shop', None, 0x07, 0x00F4, 0x3F), + 'Buy Red Potion [30]': (False, True, 'Shop', None, 0x08, 0x00EB, 0x38), + 'Buy Green Potion': (False, True, 'Shop', None, 0x09, 0x00EB, 0x37), + 'Buy Blue Potion': (False, True, 'Shop', None, 0x0A, 0x00EB, 0x39), + 'Buy Hylian Shield': (False, True, 'Shop', None, 0x0C, 0x00DC, 0x2C), + 'Buy Deku Shield': (True, False, 'Shop', None, 0x0D, 0x00CB, 0x1D), + 'Buy Goron Tunic': (True, False, 'Shop', None, 0x0E, 0x00F2, 0x3C), + 'Buy Zora Tunic': (True, False, 'Shop', None, 0x0F, 0x00F2, 0x3D), + 'Buy Heart': (False, True, 'Shop', None, 0x10, 0x00B7, 0x09), + 'Buy Bombchu (10)': (True, False, 'Shop', None, 0x15, 0x00D9, 0x28), + 'Buy Bombchu (20)': (True, False, 'Shop', None, 0x16, 0x00D9, 0x28), + 'Buy Bombchu (5)': (True, False, 'Shop', None, 0x18, 0x00D9, 0x28), + 'Buy Deku Seeds (30)': (False, True, 'Shop', None, 0x1D, 0x0119, 0x48), + 'Sold Out': (False, True, 'Shop', None, 0x26, 0x0148, 0x59), + 'Buy Blue Fire': (True, False, 'Shop', None, 0x27, 0x0173, 0x67), + 'Buy Bottle Bug': (True, False, 'Shop', None, 0x28, 0x0174, 0x68), + 'Buy Poe': (False, True, 'Shop', None, 0x2A, 0x0176, 0x6A), + 'Buy Fairy\'s Spirit': (False, True, 'Shop', None, 0x2B, 0x0177, 0x6B), + 'Buy Arrows (10)': (False, True, 'Shop', None, 0x2C, 0x00D8, 0x25), + 'Buy Bombs (20)': (False, True, 'Shop', None, 0x2D, 0x00CE, 0x20), + 'Buy Bombs (30)': (False, True, 'Shop', None, 0x2E, 0x00CE, 0x20), + 'Buy Bombs (5) [35]': (False, True, 'Shop', None, 0x2F, 0x00CE, 0x20), + 'Buy Red Potion [40]': (False, True, 'Shop', None, 0x30, 0x00EB, 0x38), + 'Buy Red Potion [50]': (False, True, 'Shop', None, 0x31, 0x00EB, 0x38), +} item_data = { - 'Hammer': [0x11, 0x80, 0x41, 0x38, 0x00, 0xF6], - 'Boomerang': [0x0E, 0x80, 0x34, 0x35, 0x00, 0xE8], - 'Lens of Truth': [0x0F, 0x80, 0x36, 0x39, 0x00, 0xEA], - 'Dins Fire': [0x05, 0x80, 0x64, 0xAD, 0x01, 0x5D], - 'Farores Wind': [0x0D, 0x80, 0x65, 0xAE, 0x01, 0x5D], - 'Nayrus Love': [0x13, 0x80, 0x66, 0xAF, 0x01, 0x5D], - 'Fire Arrows': [0x04, 0x80, 0x60, 0x70, 0x01, 0x58], - 'Ice Arrows': [0x0C, 0x80, 0x61, 0x71, 0x01, 0x58], - 'Light Arrows': [0x12, 0x80, 0x62, 0x72, 0x01, 0x58], - 'Bottle': [0x14, 0x80, 0x01, 0x42, 0x00, 0xC6], - 'Bottle with Letter': [0x1B, 0x80, 0x45, 0x99, 0x01, 0x0B], - 'Bottle with Milk': [0x1A, 0x80, 0x30, 0x98, 0x00, 0xDF], - 'Pocket Egg': [0x2D, 0x80, 0x29, 0x01, 0x00, 0xDA], - 'Pocket Cucco': [0x2E, 0x80, 0x44, 0x0B, 0x01, 0x09], - 'Cojiro': [0x2F, 0x80, 0x5E, 0x02, 0x01, 0x09], - 'Odd Mushroom': [0x30, 0x80, 0x54, 0x03, 0x01, 0x41], - 'Odd Potion': [0x31, 0x80, 0x53, 0x04, 0x01, 0x40], - 'Poachers Saw': [0x32, 0x80, 0x40, 0x05, 0x00, 0xF5], - 'Broken Sword': [0x33, 0x80, 0x56, 0x08, 0x01, 0x43], - 'Prescription': [0x34, 0x80, 0x57, 0x09, 0x01, 0x46], - 'Eyeball Frog': [0x35, 0x80, 0x5A, 0x0D, 0x01, 0x49], - 'Eyedrops': [0x36, 0x80, 0x52, 0x0E, 0x01, 0x3F], - 'Claim Check': [0x37, 0x80, 0x55, 0xA4, 0x01, 0x8D], - 'Kokiri Sword': [0x3B, 0x80, 0x74, 0xA4, 0x01, 0x8D], - 'Deku Shield': [0x3E, 0xA0, 0xE3, 0x4C, 0x00, 0xCB], - 'Hylian Shield': [0x3F, 0xA0, 0xD4, 0x4D, 0x00, 0xDC], - 'Mirror Shield': [0x40, 0x80, 0x3A, 0x4E, 0x00, 0xEE], - 'Goron Tunic': [0x42, 0xA0, 0x3C, 0x50, 0x00, 0xF2], - 'Zora Tunic': [0x43, 0xA0, 0x3D, 0x51, 0x00, 0xF2], - 'Iron Boots': [0x45, 0x80, 0x47, 0x53, 0x01, 0x18], - 'Hover Boots': [0x46, 0x80, 0x5F, 0x54, 0x01, 0x57], - 'Stone of Agony': [0x6F, 0x80, 0x21, 0x68, 0x00, 0xC8], - 'Piece of Heart': [0x7A, 0x80, 0x14, 0xC2, 0x00, 0xBD], - 'Recovery Heart': [0x83, 0x80, 0x09, 0x55, 0x00, 0xB7], - 'Arrows (5)': [0x92, 0x48, 0xDB, 0xE6, 0x00, 0xD8], - 'Arrows (10)': [0x93, 0x4A, 0xDA, 0xE6, 0x00, 0xD8], - 'Arrows (30)': [0x94, 0x4A, 0xD9, 0xE6, 0x00, 0xD8], - 'Bombs (5)': [0x8E, 0x59, 0xE0, 0x32, 0x00, 0xCE], - 'Bombs (10)': [0x8F, 0x59, 0xE0, 0x32, 0x00, 0xCE], - 'Bombs (20)': [0x90, 0x59, 0xE0, 0x32, 0x00, 0xCE], - 'Bombchus (5)': [0x96, 0x80, 0xD8, 0x33, 0x00, 0xD9], - 'Bombchus (10)': [0x09, 0x80, 0xD8, 0x33, 0x00, 0xD9], - 'Bombchus (20)': [0x97, 0x80, 0xD8, 0x33, 0x00, 0xD9], - 'Deku Nuts (5)': [0x8C, 0x0C, 0xEE, 0x34, 0x00, 0xBB], - 'Deku Nuts (10)': [0x8D, 0x0C, 0xEE, 0x34, 0x00, 0xBB], - 'Rupee (1)': [0x84, 0x00, 0x93, 0x6F, 0x01, 0x7F], - 'Rupees (5)': [0x85, 0x01, 0x92, 0xCC, 0x01, 0x7F], - 'Rupees (20)': [0x86, 0x02, 0x91, 0xF0, 0x01, 0x7F], - 'Rupees (50)': [0x87, 0x14, 0x8F, 0xF1, 0x01, 0x7F], - 'Rupees (200)': [0x88, 0x13, 0x8E, 0xF2, 0x01, 0x7F], - 'Skull Mask': [0x25, 0x80, 0x4F, 0x10, 0x01, 0x36 ], - 'Spooky Mask': [0x26, 0x80, 0x32, 0x11, 0x01, 0x35], - 'Keaton Mask': [0x24, 0x80, 0x31, 0x12, 0x01, 0x34], - 'Bunny Hood': [0x27, 0x80, 0x50, 0x13, 0x01, 0x37], - 'Mask of Truth': [0x2B, 0x80, 0x51, 0x17, 0x01, 0x38], - 'Goron Mask': [0x28, 0x80, 0x5B, 0x14, 0x01, 0x50], - 'Zora Mask': [0x29, 0x80, 0x5C, 0x15, 0x01, 0x51 ], - 'Gerudo Mask': [0x2A, 0x80, 0x5D, 0x16, 0x01, 0x52], - 'Ice Trap': [0x85, 0x01, 0x92, 0xCC, 0x01, 0x7F], # Ice Trap in special spots will become a blue rupee. - 'Zeldas Lullaby': 0xD4, - 'Eponas Song': 0xD2, - 'Suns Song': 0xD3, - 'Sarias Song': 0xD1, - 'Song of Time': 0xD5, - 'Song of Storms': 0xD6, - 'Minuet of Forest': 0x73, - 'Bolero of Fire': 0x74, - 'Serenade of Water': 0x75, - 'Nocturne of Shadow': 0x77, - 'Requiem of Spirit': 0x76, - 'Prelude of Light': 0x78, - 'Kokiri Emerald': [0x04, 0xA5, 0x80, [0x00, 0x04, 0x00, 0x00]], - 'Goron Ruby': [0x08, 0xA5, 0x81, [0x00, 0x08, 0x00, 0x00]], - 'Zora Sapphire': [0x10, 0xA5, 0x82, [0x00, 0x10, 0x00, 0x00]], - 'Forest Medallion': [0x01, 0xA7, 0x3E, [0x00, 0x00, 0x00, 0x01]], - 'Fire Medallion': [0x02, 0xA7, 0x3C, [0x00, 0x00, 0x00, 0x02]], - 'Water Medallion': [0x04, 0xA7, 0x3D, [0x00, 0x00, 0x00, 0x04]], - 'Spirit Medallion': [0x08, 0xA7, 0x3F, [0x00, 0x00, 0x00, 0x08]], - 'Shadow Medallion': [0x10, 0xA7, 0x41, [0x00, 0x00, 0x00, 0x10]], - 'Light Medallion': [0x20, 0xA7, 0x40, [0x00, 0x00, 0x00, 0x20]]} + 'Hammer': [0x11, 0x80, 0x41, 0x38, 0x00, 0xF6], + 'Boomerang': [0x0E, 0x80, 0x34, 0x35, 0x00, 0xE8], + 'Lens of Truth': [0x0F, 0x80, 0x36, 0x39, 0x00, 0xEA], + 'Dins Fire': [0x05, 0x80, 0x64, 0xAD, 0x01, 0x5D], + 'Farores Wind': [0x0D, 0x80, 0x65, 0xAE, 0x01, 0x5D], + 'Nayrus Love': [0x13, 0x80, 0x66, 0xAF, 0x01, 0x5D], + 'Fire Arrows': [0x04, 0x80, 0x60, 0x70, 0x01, 0x58], + 'Ice Arrows': [0x0C, 0x80, 0x61, 0x71, 0x01, 0x58], + 'Light Arrows': [0x12, 0x80, 0x62, 0x72, 0x01, 0x58], + 'Bottle': [0x14, 0x80, 0x01, 0x42, 0x00, 0xC6], + 'Bottle with Letter': [0x1B, 0x80, 0x45, 0x99, 0x01, 0x0B], + 'Bottle with Milk': [0x1A, 0x80, 0x30, 0x98, 0x00, 0xDF], + 'Pocket Egg': [0x2D, 0x80, 0x29, 0x01, 0x00, 0xDA], + 'Pocket Cucco': [0x2E, 0x80, 0x44, 0x0B, 0x01, 0x09], + 'Cojiro': [0x2F, 0x80, 0x5E, 0x02, 0x01, 0x09], + 'Odd Mushroom': [0x30, 0x80, 0x54, 0x03, 0x01, 0x41], + 'Odd Potion': [0x31, 0x80, 0x53, 0x04, 0x01, 0x40], + 'Poachers Saw': [0x32, 0x80, 0x40, 0x05, 0x00, 0xF5], + 'Broken Sword': [0x33, 0x80, 0x56, 0x08, 0x01, 0x43], + 'Prescription': [0x34, 0x80, 0x57, 0x09, 0x01, 0x46], + 'Eyeball Frog': [0x35, 0x80, 0x5A, 0x0D, 0x01, 0x49], + 'Eyedrops': [0x36, 0x80, 0x52, 0x0E, 0x01, 0x3F], + 'Claim Check': [0x37, 0x80, 0x55, 0xA4, 0x01, 0x8D], + 'Kokiri Sword': [0x3B, 0x80, 0x74, 0xA4, 0x01, 0x8D], + 'Deku Shield': [0x3E, 0xA0, 0xE3, 0x4C, 0x00, 0xCB], + 'Hylian Shield': [0x3F, 0xA0, 0xD4, 0x4D, 0x00, 0xDC], + 'Mirror Shield': [0x40, 0x80, 0x3A, 0x4E, 0x00, 0xEE], + 'Goron Tunic': [0x42, 0xA0, 0x3C, 0x50, 0x00, 0xF2], + 'Zora Tunic': [0x43, 0xA0, 0x3D, 0x51, 0x00, 0xF2], + 'Iron Boots': [0x45, 0x80, 0x47, 0x53, 0x01, 0x18], + 'Hover Boots': [0x46, 0x80, 0x5F, 0x54, 0x01, 0x57], + 'Stone of Agony': [0x6F, 0x80, 0x21, 0x68, 0x00, 0xC8], + 'Piece of Heart': [0x7A, 0x80, 0x14, 0xC2, 0x00, 0xBD], + 'Recovery Heart': [0x83, 0x80, 0x09, 0x55, 0x00, 0xB7], + 'Arrows (5)': [0x92, 0x48, 0xDB, 0xE6, 0x00, 0xD8], + 'Arrows (10)': [0x93, 0x4A, 0xDA, 0xE6, 0x00, 0xD8], + 'Arrows (30)': [0x94, 0x4A, 0xD9, 0xE6, 0x00, 0xD8], + 'Bombs (5)': [0x8E, 0x59, 0xE0, 0x32, 0x00, 0xCE], + 'Bombs (10)': [0x8F, 0x59, 0xE0, 0x32, 0x00, 0xCE], + 'Bombs (20)': [0x90, 0x59, 0xE0, 0x32, 0x00, 0xCE], + 'Bombchus (5)': [0x96, 0x80, 0xD8, 0x33, 0x00, 0xD9], + 'Bombchus (10)': [0x09, 0x80, 0xD8, 0x33, 0x00, 0xD9], + 'Bombchus (20)': [0x97, 0x80, 0xD8, 0x33, 0x00, 0xD9], + 'Deku Nuts (5)': [0x8C, 0x0C, 0xEE, 0x34, 0x00, 0xBB], + 'Deku Nuts (10)': [0x8D, 0x0C, 0xEE, 0x34, 0x00, 0xBB], + 'Rupee (1)': [0x84, 0x00, 0x93, 0x6F, 0x01, 0x7F], + 'Rupees (5)': [0x85, 0x01, 0x92, 0xCC, 0x01, 0x7F], + 'Rupees (20)': [0x86, 0x02, 0x91, 0xF0, 0x01, 0x7F], + 'Rupees (50)': [0x87, 0x14, 0x8F, 0xF1, 0x01, 0x7F], + 'Rupees (200)': [0x88, 0x13, 0x8E, 0xF2, 0x01, 0x7F], + 'Skull Mask': [0x25, 0x80, 0x4F, 0x10, 0x01, 0x36 ], + 'Spooky Mask': [0x26, 0x80, 0x32, 0x11, 0x01, 0x35], + 'Keaton Mask': [0x24, 0x80, 0x31, 0x12, 0x01, 0x34], + 'Bunny Hood': [0x27, 0x80, 0x50, 0x13, 0x01, 0x37], + 'Mask of Truth': [0x2B, 0x80, 0x51, 0x17, 0x01, 0x38], + 'Goron Mask': [0x28, 0x80, 0x5B, 0x14, 0x01, 0x50], + 'Zora Mask': [0x29, 0x80, 0x5C, 0x15, 0x01, 0x51 ], + 'Gerudo Mask': [0x2A, 0x80, 0x5D, 0x16, 0x01, 0x52], + 'Ice Trap': [0x85, 0x01, 0x92, 0xCC, 0x01, 0x7F], # Ice Trap in special spots will become a blue rupee. + 'Zeldas Lullaby': 0xD4, + 'Eponas Song': 0xD2, + 'Suns Song': 0xD3, + 'Sarias Song': 0xD1, + 'Song of Time': 0xD5, + 'Song of Storms': 0xD6, + 'Minuet of Forest': 0x73, + 'Bolero of Fire': 0x74, + 'Serenade of Water': 0x75, + 'Nocturne of Shadow': 0x77, + 'Requiem of Spirit': 0x76, + 'Prelude of Light': 0x78, + 'Kokiri Emerald': [0x04, 0xA5, 0x80, [0x00, 0x04, 0x00, 0x00]], + 'Goron Ruby': [0x08, 0xA5, 0x81, [0x00, 0x08, 0x00, 0x00]], + 'Zora Sapphire': [0x10, 0xA5, 0x82, [0x00, 0x10, 0x00, 0x00]], + 'Forest Medallion': [0x01, 0xA7, 0x3E, [0x00, 0x00, 0x00, 0x01]], + 'Fire Medallion': [0x02, 0xA7, 0x3C, [0x00, 0x00, 0x00, 0x02]], + 'Water Medallion': [0x04, 0xA7, 0x3D, [0x00, 0x00, 0x00, 0x04]], + 'Spirit Medallion': [0x08, 0xA7, 0x3F, [0x00, 0x00, 0x00, 0x08]], + 'Shadow Medallion': [0x10, 0xA7, 0x41, [0x00, 0x00, 0x00, 0x10]], + 'Light Medallion': [0x20, 0xA7, 0x40, [0x00, 0x00, 0x00, 0x20]]} diff --git a/MQ.py b/MQ.py index 6e83e096c..6d64a1693 100644 --- a/MQ.py +++ b/MQ.py @@ -46,10 +46,12 @@ from Utils import local_path from Rom import LocalRom import json +from struct import pack, unpack -SCENE_DMADATA = 0xB320 # address where scene files begin to appear in dmadata +DMA_TABLE = 0x7430 SCENE_TABLE = 0xB71440 + class File(object): def __init__(self, file): self.name = file['Name'] @@ -212,6 +214,7 @@ def write_data(self, rom:LocalRom): rom.write_int32s(cur, [room.file.start, room.file.end]) cur += 0x08 + def write_map_data(self, rom:LocalRom): if self.id >= 10: return @@ -525,46 +528,50 @@ def test_remap(file:File): def verify_dma(rom:LocalRom): - cur = SCENE_DMADATA - - next_start = -1 - errors = [] + cur = DMA_TABLE + overlapping_records = [] + dma_data = [] while True: this_start, this_end, this_size = get_dma_record(rom, cur) - next_start, next_end, next_size = get_dma_record(rom, cur + 0x10) - if next_start == 0: + if this_start == 0 and this_end == 0: break - if this_end > next_start: - errors.append('dmadata info') - st, e, si = get_dma_record(rom, cur-0x10) - errors.append("{0:x} {1:x} {2:x}".format(st, e, si)) - st, e, si = get_dma_record(rom, cur) - errors.append("{0:x} {1:x} {2:x} <-- overlapping record".format(st, e, si)) - st, e, si = get_dma_record(rom, cur+0x10) - errors.append("{0:x} {1:x} {2:x}".format(st, e, si)) - next_start = this_start + dma_data.append((this_start, this_end, this_size)) cur += 0x10 - if len(errors) > 0: - for e in errors: - print(e) - Exception("overlapping dmadata records!") + dma_data.sort(key=lambda v: v[0]) + + for i in range(0, len(dma_data) - 1): + this_start, this_end, this_size = dma_data[i] + next_start, next_end, next_size = dma_data[i + 1] + + if this_end > next_start: + overlapping_records.append( + '0x%08X - 0x%08X (Size: 0x%04X)\n0x%08X - 0x%08X (Size: 0x%04X)' % \ + (this_start, this_end, this_size, next_start, next_end, next_size) + ) + + if len(overlapping_records) > 0: + raise Exception("Overlapping DMA Data Records!\n%s" % \ + '\n-------------------------------------\n'.join(overlapping_records)) def update_dmadata(rom:LocalRom, file:File): - cur = SCENE_DMADATA + cur = DMA_TABLE key, start, end = file.dma_key, file.start, file.end - record_key = rom.read_int32(cur) - while record_key != 0 and record_key != key: + dma_start, dma_end, dma_size = get_dma_record(rom, cur) + while dma_start != key: + if dma_start == 0 and dma_end == 0: + break + cur += 0x10 - record_key = rom.read_int32(cur) + dma_start, dma_end, dma_size = get_dma_record(rom, cur) - if record_key == 0: + if dma_start == 0: raise Exception('dmadata update failed: key {0:x} not found in dmadata'.format(key)) else: @@ -586,3 +593,188 @@ def align4(value): def align16(value): return ((value + 0xF) // 0x10) * 0x10 + +# This function inserts space in a ovl section at the section's offset +# The section size is expanded +# Every relocation entry in the section after the offet is moved accordingly +# Every relocation value that is after the inserted space is increased accordingly +def insert_space(rom, file, vram_start, insert_section, insert_offset, insert_size): + sections = [] + val_hi = {} + adr_hi = {} + + # get the ovl header + cur = file.end - rom.read_int32(file.end - 4) + section_total = 0 + for i in range(0, 4): + # build the section offsets + section_size = rom.read_int32(cur) + sections.append(section_total) + section_total += section_size + + # increase the section to be expanded + if insert_section == i: + rom.write_int32(cur, section_size + insert_size) + + cur += 4 + + # calculate the insert address in vram + insert_vram = sections[insert_section] + insert_offset + vram_start + insert_rom = sections[insert_section] + insert_offset + file.start + + # iterate over the relocation table + relocate_count = rom.read_int32(cur) + cur += 4 + for i in range(0, relocate_count): + entry = rom.read_int32(cur) + + # parse relocation entry + section = ((entry & 0xC0000000) >> 30) - 1 + type = (entry & 0x3F000000) >> 24 + offset = entry & 0x00FFFFFF + + # calculate relocation address in rom + address = file.start + sections[section] + offset + + # move relocation if section is increased and it's after the insert + if insert_section == section and offset >= insert_offset: + # rebuild new relocation entry + rom.write_int32(cur, + ((section + 1) << 30) | + (type << 24) | + (offset + insert_size)) + + # value contains the vram address + value = rom.read_int32(address) + raw_value = value + if type == 2: + # Data entry: value is the raw vram address + pass + elif type == 4: + # Jump OP: Get the address from a Jump instruction + value = 0x80000000 | (value & 0x03FFFFFF) << 2 + elif type == 5: + # Load High: Upper half of an address load + reg = (value >> 16) & 0x1F + val_hi[reg] = (value & 0x0000FFFF) << 16 + adr_hi[reg] = address + # Do not process, wait until the lower half is read + value = None + elif type == 6: + # Load Low: Lower half of the address load + reg = (value >> 21) & 0x1F + val_low = value & 0x0000FFFF + val_low = unpack('h', pack('H', val_low))[0] + # combine with previous load high + value = val_hi[reg] + val_low + else: + # unknown. OoT does not use any other types + value = None + + # update the vram values if it's been moved + if value != None and value >= insert_vram: + # value = new vram address + new_value = value + insert_size + + if type == 2: + # Data entry: value is the raw vram address + rom.write_int32(address, new_value) + elif type == 4: + # Jump OP: Set the address in the Jump instruction + op = rom.read_int32(address) & 0xFC000000 + new_value = (new_value & 0x0FFFFFFC) >> 2 + new_value = op | new_value + rom.write_int32(address, new_value) + elif type == 6: + # Load Low: Lower half of the address load + op = rom.read_int32(address) & 0xFFFF0000 + new_val_low = new_value & 0x0000FFFF + rom.write_int32(address, op | new_val_low) + + # Load High: Upper half of an address load + op = rom.read_int32(adr_hi[reg]) & 0xFFFF0000 + new_val_hi = (new_value & 0xFFFF0000) >> 16 + if new_val_low >= 0x8000: + # add 1 if the lower part is negative for borrow + new_val_hi += 1 + rom.write_int32(adr_hi[reg], op | new_val_hi) + + cur += 4 + + # Move rom bytes + rom.buffer[(insert_rom + insert_size):(file.end + insert_size)] = rom.buffer[insert_rom:file.end] + rom.buffer[insert_rom:(insert_rom + insert_size)] = [0] * insert_size + file.end += insert_size + + +def add_relocations(rom, file, addresses): + relocations = [] + sections = [] + header_size = rom.read_int32(file.end - 4) + header = file.end - header_size + cur = header + + # read section sizes and build offsets + section_total = 0 + for i in range(0, 4): + section_size = rom.read_int32(cur) + sections.append(section_total) + section_total += section_size + cur += 4 + + # get all entries in relocation table + relocate_count = rom.read_int32(cur) + cur += 4 + for i in range(0, relocate_count): + relocations.append(rom.read_int32(cur)) + cur += 4 + + # create new enties + for address in addresses: + if isinstance(address, tuple): + # if type provided use it + type, address = address + else: + # Otherwise, try to infer type from value + value = rom.read_int32(address) + op = value >> 26 + type = 2 # default: data + if op == 0x02 or op == 0x03: # j or jal + type = 4 + elif op == 0x0F: # lui + type = 5 + elif op == 0x08: # addi + type = 6 + + # Calculate section and offset + address = address - file.start + section = 0 + for section_start in sections: + if address >= section_start: + section += 1 + else: + break + offset = address - sections[section - 1] + + # generate relocation entry + relocations.append((section << 30) + | (type << 24) + | (offset & 0x00FFFFFF)) + + # Rebuild Relocation Table + cur = header + 0x10 + relocations.sort(key = lambda val: val & 0xC0FFFFFF) + rom.write_int32(cur, len(relocations)) + cur += 4 + for relocation in relocations: + rom.write_int32(cur, relocation) + cur += 4 + + # Add padded 0? + rom.write_int32(cur, 0) + cur += 4 + + # Update Header and File size + new_header_size = (cur + 4) - header + rom.write_int32(cur, new_header_size) + file.end += (new_header_size - header_size) diff --git a/Main.py b/Main.py index 13437935f..7d57033fa 100644 --- a/Main.py +++ b/Main.py @@ -18,8 +18,10 @@ from Rules import set_rules from Fill import distribute_items_restrictive from ItemList import generate_itempool +from Hints import buildGossipHints from Utils import default_output_path from version import __version__ +from OcarinaSongs import verify_scarecrow_song_str class dummy_window(): def __init__(self): @@ -35,6 +37,10 @@ def main(settings, window=dummy_window()): logger = logging.getLogger('') + # verify that the settings are valid + if settings.free_scarecrow: + verify_scarecrow_song_str(settings.scarecrow_song, settings.ocarina_songs) + # initialize the world worlds = [] @@ -82,6 +88,9 @@ def main(settings, window=dummy_window()): logger.info('Linking Entrances') link_entrances(world) + if settings.shopsanity != 'off': + world.random_shop_prices() + window.update_progress(0 + (((id + 1) / settings.world_count) * 4)) logger.info('Calculating Access Rules.') set_rules(world) @@ -100,9 +109,11 @@ def main(settings, window=dummy_window()): logger.info('Calculating playthrough.') create_playthrough(worlds) window.update_progress(50) - window.update_status('Calculating Hint Data') - CollectionState.update_required_items(worlds) - window.update_progress(55) + if settings.hints != 'none': + window.update_status('Calculating Hint Data') + CollectionState.update_required_items(worlds) + buildGossipHints(worlds[settings.player_num - 1]) + window.update_progress(55) logger.info('Patching ROM.') @@ -181,10 +192,10 @@ def create_playthrough(worlds): if worlds[0].check_beatable_only and not CollectionState.can_beat_game([world.state for world in worlds]): raise RuntimeError('Cannot beat game. Something went terribly wrong here!') - state_list = [CollectionState(world) for world in worlds] + state_list = [world.state for world in worlds] # Get all item locations in the worlds - collection_spheres = [] + required_locations = [] item_locations = [location for state in state_list for location in state.world.get_filled_locations() if location.item.advancement] # in the first phase, we create the generous spheres. Collecting every item in a sphere will @@ -201,33 +212,39 @@ def create_playthrough(worlds): state_list[location.world.id].collected_locations[location.name] = True # Collect the item for the state world it is for state_list[location.item.world.id].collect(location.item) - if reachable_items_locations: - collection_spheres.append(reachable_items_locations) + required_locations.append(location) # in the second phase, we cull each sphere such that the game is still beatable, reducing each # range of influence to the bare minimum required inside it. Effectively creates a min play - for num, sphere in reversed(list(enumerate(collection_spheres))): - to_delete = [] + for location in reversed(required_locations): + # we remove the item at location and check if game is still beatable + logging.getLogger('').debug('Checking if %s is required to beat the game.', location.item.name) + old_item = location.item + + # Uncollect the item location. Removing it from the collected_locations + # will ensure that can_beat_game will try to collect it if it can. + # Because we search in reverse sphere order, all the later spheres will + # have their locations flagged to be re-searched. + location.item = None + state_list[old_item.world.id].remove(old_item) + del state_list[location.world.id].collected_locations[location.name] + + # remove the item from the world and test if the game is still beatable + if CollectionState.can_beat_game(state_list): + # cull entries for spoiler walkthrough at end + required_locations.remove(location) + else: + # still required, got to keep it around + location.item = old_item + + # This ensures the playthrough shows items being collected in the proper order. + collection_spheres = [] + while required_locations: + sphere = [location for location in required_locations if state_list[location.world.id].can_reach(location)] for location in sphere: - # we remove the item at location and check if game is still beatable - logging.getLogger('').debug('Checking if %s is required to beat the game.', location.item.name) - old_item = location.item - old_state_list = [state.copy() for state in state_list] - - location.item = None - state_list[old_item.world.id].remove(old_item) - CollectionState.remove_locations(state_list) - if CollectionState.can_beat_game(state_list, False): - to_delete.append(location) - else: - # still required, got to keep it around - state_list = old_state_list - location.item = old_item - - # cull entries in spheres for spoiler walkthrough at end - for location in to_delete: - sphere.remove(location) - collection_spheres = [sphere for sphere in collection_spheres if sphere] + required_locations.remove(location) + state_list[location.item.world.id].collect(location.item) + collection_spheres.append(sphere) # we can finally output our playthrough for world in old_worlds: diff --git a/Messages.py b/Messages.py index 98135a850..07665fa80 100644 --- a/Messages.py +++ b/Messages.py @@ -8,8 +8,6 @@ TABLE_SIZE_LIMIT = 0x43A8 TEXT_SIZE_LIMIT = 0x38130 -SHOP_ITEM_START = 0xC022CC - # name of type, followed by number of additional bytes to read, follwed by a function that prints the code CONTROL_CODES = { 0x00: ('pad', 0, lambda _: '' ), @@ -490,13 +488,15 @@ def from_string(cls, text, id=0, opts=0x00): __str__ = __repr__ = display # wrapper for updating the text of a message, given its message id -# if the id does not exist in the list, this will silently do nothing +# if the id does not exist in the list, then it will add it def update_message_by_id(messages, id, text, opts=None): # get the message index index = next( (m.index for m in messages if m.id == id), -1) # update if it was found if index >= 0: update_message_by_index(messages, index, text, opts) + else: + add_message(messages, text, id, opts) # Gets the message by its ID. Returns None if the index does not exist def get_message_by_id(messages, id): @@ -512,6 +512,7 @@ def update_message_by_index(messages, index, text, opts=None): if opts is None: opts = messages[index].opts messages[index] = Message.from_string(text, messages[index].id, opts) + messages[index].index = index # wrapper for adding a string message to a list of messages def add_message(messages, text, id=0, opts=0x00): @@ -538,9 +539,9 @@ def display(self): return ', '.join(meta_data) + '\n' + ', '.join(func_data) # write the shop item back - def write(self, rom, index): + def write(self, rom, shop_table_address, index): - entry_offset = SHOP_ITEM_START + 0x20 * index + entry_offset = shop_table_address + 0x20 * index bytes = [] bytes += int_to_bytes(self.object, 2) @@ -559,9 +560,9 @@ def write(self, rom, index): rom.write_bytes(entry_offset, bytes) # read a single message - def __init__(self, rom, index): + def __init__(self, rom, shop_table_address, index): - entry_offset = SHOP_ITEM_START + 0x20 * index + entry_offset = shop_table_address + 0x20 * index entry = rom.read_bytes(entry_offset, 0x20) self.index = index @@ -581,18 +582,18 @@ def __init__(self, rom, index): __str__ = __repr__ = display # reads each of the shop items -def read_shop_items(rom): +def read_shop_items(rom, shop_table_address): shop_items = [] - for index in range(0x032): - shop_items.append( Shop_Item(rom, index) ) + for index in range(0, 100): + shop_items.append( Shop_Item(rom, shop_table_address, index) ) return shop_items # writes each of the shop item back into rom -def write_shop_items(rom, shop_items): +def write_shop_items(rom, shop_table_address, shop_items): for s in shop_items: - s.write(rom, s.index) + s.write(rom, shop_table_address, s.index) # these are unused shop items, and contain text ids that are used elsewhere, and should not be moved SHOP_ITEM_EXCEPTIONS = [0x0A, 0x0B, 0x11, 0x12, 0x13, 0x14, 0x29] @@ -633,42 +634,65 @@ def is_in_item_range(id): if is_in_item_range(shop.purchase_message): shop.purchase_message |= 0x8000 +def make_player_message(text): + player_text_U = '\x05\x42Player \x18\x05\x40' + player_text_L = '\x05\x42player \x18\x05\x40' + pronoun_mapping = { + 'You have ': player_text_U + ' ', + 'You\'ve ': player_text_U + ' ', + 'Your ': player_text_U + '\'s ', + 'You ': player_text_U + ' ', + + 'you have ': player_text_L + ' ', + 'you\'ve ': player_text_L + ' ', + 'your ': player_text_L + '\'s ', + 'you ': player_text_L + ' ', + } + + verb_mapping = { + 'obtained ': 'got ', + 'received ': 'got ', + 'learned ': 'got ', + 'borrowed ': 'got ', + 'found ': 'got ', + } + + new_text = text + for find_text, replace_text in pronoun_mapping.items(): + if find_text in text: + new_text = new_text.replace(find_text, replace_text, 1) + break + for find_text, replace_text in verb_mapping.items(): + new_text = new_text.replace(find_text, replace_text) + return new_text + + + # add the keysanity messages # make sure to call this AFTER move_shop_item_messages() def add_keysanity_messages(messages, world): for id, text in KEYSANITY_MESSAGES.items(): if world.world_count > 1: - index = 0 - while ord(text[index]) in CONTROL_CODES: - index = index + CONTROL_CODES[ord(text[index])][1] + 1 - new_text = text[:index] + "\x08\x05\x42Player \x18:\x05\x40\x01" + text[index:] - add_message(messages, new_text, id, 0x23) + update_message_by_id(messages, id, make_player_message(text), 0x23) else: - add_message(messages, text, id, 0x23) + update_message_by_id(messages, id, text, 0x23) # add the song messages # make sure to call this AFTER move_shop_item_messages() def add_song_messages(messages, world): for id, text in SONG_MESSAGES.items(): if world.world_count > 1: - index = 0 - while ord(text[index]) in CONTROL_CODES: - index = index + CONTROL_CODES[ord(text[index])][1] + 1 - new_text = text[:index] + "\x08\x05\x42Player \x18:\x05\x40\x01" + text[index:] - add_message(messages, new_text, id, 0x23) + update_message_by_id(messages, id, make_player_message(text), 0x23) else: - add_message(messages, text, id, 0x23) + update_message_by_id(messages, id, text, 0x23) # reduce item message sizes def update_item_messages(messages, world): for id, text in ITEM_MESSAGES.items(): if world.world_count > 1: - index = 0 - while ord(text[index]) in CONTROL_CODES: - index = index + CONTROL_CODES[ord(text[index])][1] + 1 - new_text = text[:index] + "\x08\x05\x42Player \x18:\x05\x40\x01" + text[index:] - update_message_by_id(messages, id, new_text) + update_message_by_id(messages, id, make_player_message(text), 0x23) + else: update_message_by_id(messages, id, text) diff --git a/Notes/shop item notes.txt b/Notes/shop item notes.txt new file mode 100644 index 000000000..a348e5756 --- /dev/null +++ b/Notes/shop item notes.txt @@ -0,0 +1,2486 @@ +scene shop item object loads +[scene] address: object +[0x2C] 0x028E4044: 0x00D8 +[0x2C] 0x028E4046: 0x00B7 +[0x2C] 0x028E4048: 0x00C7 +[0x2C] 0x028E404A: 0x00DC +[0x2C] 0x028E404C: 0x00BB +[0x2C] 0x028E404E: 0x00CE + +[0x2D] 0x02587042: 0x00D8 +[0x2D] 0x02587044: 0x00B7 +[0x2D] 0x02587046: 0x00CB +[0x2D] 0x02587048: 0x00BB +[0x2D] 0x0258704A: 0x00C7 +[0x2D] 0x0258704E: 0x0119 + +[0x2E] 0x02D33042: 0x00B7 +[0x2E] 0x02D33044: 0x00C7 +[0x2E] 0x02D33046: 0x00CE +[0x2E] 0x02D3304A: 0x00EB +[0x2E] 0x02D3304C: 0x00F2 +[0x2E] 0x02D3304E: 0x00F8 + +[0x2F] 0x02D5B044: 0x00B7 +[0x2F] 0x02D5B046: 0x00BB +[0x2F] 0x02D5B048: 0x00D8 +[0x2F] 0x02D5B04A: 0x00EB +[0x2F] 0x02D5B04C: 0x00F4 +[0x2F] 0x02D5B04E: 0x00F2 + +[0x30] 0x02D83044: 0x00EB +[0x30] 0x02D83046: 0x0173 +[0x30] 0x02D83048: 0x0174 +[0x30] 0x02D8304C: 0x00F4 +[0x30] 0x02D8304E: 0x0176 +[0x30] 0x02D83050: 0x0177 +[0x30] 0x02D83054: 0x00BB + +[0x31] 0x02DB0044: 0x00EB +[0x31] 0x02DB0046: 0x0173 +[0x31] 0x02DB0048: 0x0174 +[0x31] 0x02DB004C: 0x00F4 +[0x31] 0x02DB004E: 0x0176 +[0x31] 0x02DB0050: 0x0177 +[0x31] 0x02DB0058: 0x00BB + +[0x32] 0x02DD8044: 0x0148 +[0x32] 0x02DD8046: 0x00D9 + +[0x33] 0x0340A044: 0x0134 +[0x33] 0x0340A046: 0x0135 +[0x33] 0x0340A048: 0x0136 +[0x33] 0x0340A04A: 0x0137 +[0x33] 0x0340A04C: 0x0138 +[0x33] 0x0340A04E: 0x0150 +[0x33] 0x0340A050: 0x0151 +[0x33] 0x0340A052: 0x0152 + +.org 0xC022CC +scene shop item table +0 Deku Nut, x5, 15 00BB 0011 80022554 000F 0005 00B2 007F 00000063 80862FDC 80863B4C 80863FB4 +1 Arrows (2), x30, 60 00D8 0025 80022438 003C 001E 00C1 009B 0000004A 80862E8C 80863A64 80863FB4 +2 Arrows (3), x50, 90 00D8 0026 80022438 005A 0032 00B0 007D 0000004B 80862E8C 80863A64 80863FB4 +3 Bombs, x5, 25 00CE 001F 80022438 0019 0005 00A3 008B 00000001 80862F3C 80863AAC 80863FB4 +4 Deku Nut, x10, 30 00BB 0011 80022554 001E 000A 00A2 0087 00000064 80862FDC 80863B4C 80863FB4 +5 Deku Stick, x1, 10 00C7 001A 00000000 000A 0001 00A1 0088 00000007 80863094 80863BBC 80863FB4 +6 Bombs, x10, 50 00CE 001F 80022438 0032 000A 00B1 007C 00000066 80862F3C 80863AAC 80863FB4 +7 Fish, x1, 200 00F4 003E 80022554 00C8 0001 00B3 007E 0000006C 8086314C 00000000 80863FB4 +8 Red Potion, x1, 30 00EB 0037 80022438 001E 0001 00A5 008E 00000010 808631C4 80863E84 80863FB4 +9 Green Potion, x1, 30 00EB 0036 80022438 001E 0001 00A6 008F 00000011 8086323C 80863E84 80863FB4 +10 Blue Potion, x1, 60 00EB 0038 80022438 003C 0001 00A7 0090 00000012 808632B4 80863E84 80863FB4 +11 Giant's Knife, x1, 00F8 0042 80022438 03E8 0001 00A8 0091 00000028 8086332C 80863BF8 80863FB4 +12 Hylian Shield, x1, 80 00DC 002B 80022438 0050 0001 00A9 0092 0000002A 808633C0 80863C40 80863FB4 +13 Deku Shield, x1, 40 00CB 001C 80022438 0028 0001 009F 0089 00000029 80863440 80863C7C 80863FB4 +14 Goron Tunic, x1, 200 00F2 003B 00000000 00C8 0001 00AA 0093 0000002C 808634C0 80863CB8 80864054 +15 Zora Tunic, x1, 300 00F2 003C 00000000 012C 0001 00AB 0094 0000002D 80863568 80863CF4 80864084 +16 Heart, x16, 10 00B7 0008 00000000 000A 0010 00AC 0095 00000048 80863610 80863D30 80863FB4 +17 Milk Bottle (U) 00DF 002F 808648CC 0064 0001 00AD 0097 00000014 8086365C 80863D70 80863FB4 +18 Weird Egg (U) 00DA 0028 80022438 0064 0001 00AE 0099 00000047 808636B8 80863DAC 80863FB4 +19 Milk Bottle (U) 00DF 002F 808648CC 2710 0001 00B4 0085 00000000 80863714 80863DE8 80863FB4 +20 Weird Egg (U) 00DA 0028 80022438 2710 0001 00B5 0085 00000000 80863728 80863E18 80863FB4 +21 Bombchu, x10, 100 00D9 0027 80022438 0064 000A 00BC 008C 00000003 8086373C 00000000 808640B4 +22 Bombchu, x20, 180 00D9 0027 80022438 00B4 0014 0061 002A 0000006B 8086373C 00000000 808640B4 +23 Bombchu, x20, 180 00D9 0027 80022438 00B4 0014 0061 002A 0000006B 8086373C 00000000 808640B4 +24 Bombchu, x10, 100 00D9 0027 80022438 0064 000A 00BC 008C 00000003 8086373C 00000000 808640B4 +25 Bombchu, x10, 100 00D9 0027 80022438 0064 000A 00BC 008C 00000003 8086373C 00000000 808640B4 +26 Bombchu, x20, 180 00D9 0027 80022438 00B4 0014 0061 002A 0000006B 8086373C 00000000 808640B4 +27 Bombchu, x20, 180 00D9 0027 80022438 00B4 0014 0061 002A 0000006B 8086373C 00000000 808640B4 +28 Bombchu, x10, 100 00D9 0027 80022438 0064 000A 00BC 008C 00000003 8086373C 00000000 808640B4 +29 Deku Seeds, x30, 30 0119 0047 80022438 001E 001E 00DF 00DE 00000069 808637C0 80863E48 80863FB4 +30 Keaton Mask, x1, 0 0134 0030 80022438 0000 0001 70B2 70BE 0000001A 808637C0 80863E48 80863FB4 +31 Spooky Mask, x1, 0 0135 0031 80022438 0000 0001 70B1 70BD 00000018 808637C0 80863E48 80863FB4 +32 Skull Mask, x1, 0 0136 004E 80022438 0000 0001 70B0 70BC 00000017 808637C0 80863E48 80863FB4 +33 Bunny Hood, x1, 0 0137 004F 80022438 0000 0001 70B3 70BF 0000001B 808637C0 80863E48 80863FB4 +34 Mask of Truth, x1, 0 0138 0050 808648CC 0000 0001 70AF 70C3 0000001C 808637C0 80863E48 80863FB4 +35 Zora Mask, x1, 0 0151 005B 00000000 0000 0001 70B9 70C1 00000052 808637C0 80863E48 80863FB4 +36 Goron Mask, x1, 0 0150 005A 00000000 0000 0001 70B8 70C0 00000051 808637C0 80863E48 80863FB4 +37 Gerudo Mask, x1, 0 0152 005C 00000000 0000 0001 70BA 70C2 00000053 808637C0 80863E48 80863FB4 +38 Sold Out, x0, 0 0148 0058 80022438 0000 0000 00BD 70C2 00000053 80863870 00000000 00000000 +39 Blue Fire, x1, 300 0173 0066 80022438 012C 0001 00B9 00B8 0000006E 80863884 80863E84 80863FB4 +40 Bottle Bug, x1, 50 0174 0067 808648CC 0032 0001 00BB 00BA 0000006D 808638FC 80863E84 80863FB4 +41 Big Poe (U), x1, 50 0176 006F 808648CC 0032 0001 506F 5070 00000070 80863974 80863E84 80863FB4 +42 Poe, x1, 30 0176 0069 808648CC 001E 0001 506D 506E 0000006F 80863974 80863E84 80863FB4 +43 Fairy's Spirit, x1, 50 0177 006A 808648CC 0032 0001 00B7 00B6 00000013 808639EC 80863E84 80863FB4 +44 Arrow (1), x10, 20 00D8 0024 80022438 0014 000A 00A0 008A 00000049 80862E8C 80863A64 80863FB4 +45 Bombs, x20, 80 00CE 001F 80022438 0050 0014 001C 0006 00000067 80862F3C 80863AAC 80863FB4 +46 Bombs, x30, 120 00CE 001F 80022438 0078 001E 001D 001E 00000068 80862F3C 80863AAC 80863FB4 +47 Bombs, x5, 35 00CE 001F 80022438 0023 0005 00CB 00CA 00000001 80862F3C 80863AAC 80863FB4 +48 Red Potion, x1, 40 00EB 0037 80022438 0028 0001 0064 0062 00000010 808631C4 80863E84 80863FB4 +49 Red Potion, x1, 50 00EB 0037 80022438 0032 0001 0065 0063 00000010 808631C4 80863E84 80863FB4 + + +00BB 0011 80022554 000F 0005 80B2807F 00000063 801EEEAC 801EFA1C 801EFE84 + +0x1f17a0 + +1ebb50 +00D9 0027 80022438 003C 0005 80FE80FF 0000006A 801E9B7C 00000000 801EA4F4 + + +1f08bc + +0x17, 0x19, 0x1A, 0x1B, 0x1C, + +0xC022CC + (id * 0x20) + 0x1C + + +[0x11, 0x12, 0x13, 0x14, 0x17, 0x19, 0x1A, 0x1B, 0x1C, 0x29, 0x2A, 0x2F, 0x30, 0x31] + Function_1, Function_2, Function_3, Function_4 + ---------------------------------------------- + ["Deku Nut, x5, 15 ", 0x00A984B4, 0x00C008BC, 0x00C0142C, 0x00C01894], + ["Arrows (2), x30, 60 ", 0x00A98398, 0x00C0076C, 0x00C01344, 0x00C01894], + ["Arrows (3), x50, 90 ", 0x00A98398, 0x00C0076C, 0x00C01344, 0x00C01894], X + ["Bombs, x5, 25 ", 0x00A98398, 0x00C0081C, 0x00C0138C, 0x00C01894], + ["Deku Nut, x10, 30 ", 0x00A984B4, 0x00C008BC, 0x00C0142C, 0x00C01894], + ["Deku Stick, x1, 10 ", , 0x00C00974, 0x00C0149C, 0x00C01894], + ["Bombs, x10, 50 ", 0x00A98398, 0x00C0081C, 0x00C0138C, 0x00C01894], + ["Fish, x1, 200 ", 0x00A984B4, 0x00C00A2C, , 0x00C01894], X + ["Red Potion, x1, 30 ", 0x00A98398, 0x00C00AA4, 0x00C01764, 0x00C01894], + ["Green Potion, x1, 30 ", 0x00A98398, 0x00C00B1C, 0x00C01764, 0x00C01894], + ["Blue Potion, x1, 60 ", 0x00A98398, 0x00C00B94, 0x00C01764, 0x00C01894], + ["Giant's Knife, x1, ", 0x00A98398, 0x00C00C0C, 0x00C014D8, 0x00C01894], X + ["Hylian Shield, x1, 80 ", 0x00A98398, 0x00C00CA0, 0x00C01520, 0x00C01894], + ["Deku Shield, x1, 40 ", 0x00A98398, 0x00C00D20, 0x00C0155C, 0x00C01894], + ["Goron Tunic, x1, 200 ", , 0x00C00DA0, 0x00C01598, 0x00C01934], + ["Zora Tunic, x1, 300 ", , 0x00C00E48, 0x00C015D4, 0x00C01964], + ["Heart, x16, 10 ", , 0x00C00EF0, 0x00C01610, 0x00C01894], + ["Milk Bottle (U) ", 0x00C021AC, 0x00C00F3C, 0x00C01650, 0x00C01894], X + ["Weird Egg (U) ", 0x00A98398, 0x00C00F98, 0x00C0168C, 0x00C01894], X + ["Milk Bottle (U) ", 0x00C021AC, 0x00C00FF4, 0x00C016C8, 0x00C01894], X + ["Weird Egg (U) ", 0x00A98398, 0x00C01008, 0x00C016F8, 0x00C01894], X + ["Bombchu, x10, 100 ", 0x00A98398, 0x00C0101C, , 0x00C01994], + ["Bombchu, x20, 180 ", 0x00A98398, 0x00C0101C, , 0x00C01994], + ["Bombchu, x20, 180 ", 0x00A98398, 0x00C0101C, , 0x00C01994], + ["Bombchu, x10, 100 ", 0x00A98398, 0x00C0101C, , 0x00C01994], X + ["Bombchu, x10, 100 ", 0x00A98398, 0x00C0101C, , 0x00C01994], X + ["Bombchu, x20, 180 ", 0x00A98398, 0x00C0101C, , 0x00C01994], X + ["Bombchu, x20, 180 ", 0x00A98398, 0x00C0101C, , 0x00C01994], X + ["Bombchu, x10, 100 ", 0x00A98398, 0x00C0101C, , 0x00C01994], X + ["Deku Seeds, x30, 30 ", 0x00A98398, 0x00C010A0, 0x00C01728, 0x00C01894], + ["Keaton Mask, x1, 0 ", 0x00A98398, 0x00C010A0, 0x00C01728, 0x00C01894], + ["Spooky Mask, x1, 0 ", 0x00A98398, 0x00C010A0, 0x00C01728, 0x00C01894], + ["Skull Mask, x1, 0 ", 0x00A98398, 0x00C010A0, 0x00C01728, 0x00C01894], + ["Bunny Hood, x1, 0 ", 0x00A98398, 0x00C010A0, 0x00C01728, 0x00C01894], + ["Mask of Truth, x1, 0 ", 0x00C021AC, 0x00C010A0, 0x00C01728, 0x00C01894], + ["Zora Mask, x1, 0 ", , 0x00C010A0, 0x00C01728, 0x00C01894], + ["Goron Mask, x1, 0 ", , 0x00C010A0, 0x00C01728, 0x00C01894], + ["Gerudo Mask, x1, 0 ", , 0x00C010A0, 0x00C01728, 0x00C01894], + ["Sold Out, x0, 0 ", 0x00A98398, 0x00C01150, , ], + ["Blue Fire, x1, 300 ", 0x00A98398, 0x00C01164, 0x00C01764, 0x00C01894], + ["Bottle Bug, x1, 50 ", 0x00C021AC, 0x00C011DC, 0x00C01764, 0x00C01894], + ["Big Poe (U), x1, 50 ", 0x00C021AC, 0x00C01254, 0x00C01764, 0x00C01894], X + ["Poe, x1, 30 ", 0x00C021AC, 0x00C01254, 0x00C01764, 0x00C01894], X + ["Fairy's Spirit, x1, 50 ", 0x00C021AC, 0x00C012CC, 0x00C01764, 0x00C01894], + ["Arrow (1), x10, 20 ", 0x00A98398, 0x00C0076C, 0x00C01344, 0x00C01894], + ["Bombs, x20, 80 ", 0x00A98398, 0x00C0081C, 0x00C0138C, 0x00C01894], + ["Bombs, x30, 120 ", 0x00A98398, 0x00C0081C, 0x00C0138C, 0x00C01894], X + ["Bombs, x5, 35 ", 0x00A98398, 0x00C0081C, 0x00C0138C, 0x00C01894], X + ["Red Potion, x1, 40 ", 0x00A98398, 0x00C00AA4, 0x00C01764, 0x00C01894], X + ["Red Potion, x1, 50 ", 0x00A98398, 0x00C00AA4, 0x00C01764, 0x00C01894], X + + +shop actor item list [shop item id, X, Y ,Z] * 8 +.org 0xC71ED0 +-----------------------------------RIGHT SIDE------------------------------------- ---------------------------------LEFT SIDE---------------------------------------- +bottom left top left bottom right top right bottom right top right bottom left top left +000D 0032 0034 FFEC, 0000 0032 004C FFEC, 0004 0050 0034 FFFD, 0005 0050 004C FFFD, 001D FFCE 0034 FFEC, 002C FFCE 004C FFEC, 0001 FFB0 0034 FFFD, 0010 FFB0 004C FFFD, +0009 0032 0034 FFEC, 0027 0032 004C FFEC, 0008 0050 0034 FFFD, 002B 0050 004C FFFD, 0000 FFCE 0034 FFEC, 0028 FFCE 004C FFEC, 002A FFB0 0034 FFFD, 0007 FFB0 004C FFFD, +0018 0032 0034 FFEC, 001C 0032 004C FFEC, 0019 0050 0034 FFFD, 0015 0050 004C FFFD, 001A FFCE 0034 FFEC, 0016 FFCE 004C FFEC, 001B FFB0 0034 FFFD, 0017 FFB0 004C FFFD, +0009 0032 0034 FFEC, 0027 0032 004C FFEC, 0008 0050 0034 FFFD, 002B 0050 004C FFFD, 0000 FFCE 0034 FFEC, 0028 FFCE 004C FFEC, 002A FFB0 0034 FFFD, 0007 FFB0 004C FFFD, +000C 0032 0034 FFEC, 002F 0032 004C FFEC, 0000 0050 0034 FFFD, 0010 0050 004C FFFD, 002C FFCE 0034 FFEC, 0002 FFCE 004C FFEC, 0005 FFB0 0034 FFFD, 0001 FFB0 004C FFFD, +000C 0032 0034 FFEC, 0003 0032 004C FFEC, 0000 0050 0034 FFFD, 0010 0050 004C FFFD, 002C FFCE 0034 FFEC, 0002 FFCE 004C FFEC, 0005 FFB0 0034 FFFD, 0001 FFB0 004C FFFD, +0011 0032 0034 FFEC, 0000 0032 004C FFEC, 0004 0050 0034 FFFD, 0010 0050 004C FFFD, 0012 FFCE 0034 FFEC, 0005 FFCE 004C FFEC, 0010 FFB0 0034 FFFD, 0010 FFB0 004C FFFD, +000F 0032 0034 FFEC, 002C 0032 004C FFEC, 0010 0050 0034 FFFD, 0001 0050 004C FFFD, 0000 FFCE 0034 FFEC, 0002 FFCE 004C FFEC, 0007 FFB0 0034 FFFD, 0031 FFB0 004C FFFD, +0003 0032 0034 FFEC, 0006 0032 004C FFEC, 002D 0050 0034 FFFD, 002E 0050 004C FFFD, 000E FFCE 0034 FFEC, 0010 FFCE 004C FFEC, 0030 FFB0 0034 FFFD, 0010 FFB0 004C FFFD, +0013 0032 0034 FFEC, 0013 0032 004C FFEC, 0013 0050 0034 FFFD, 0013 0050 004C FFFD, 0014 FFCE 0034 FFEC, 0014 FFCE 004C FFEC, 0014 FFB0 0034 FFFD, 0014 FFB0 004C FFFD, +0025 0032 0034 FFEC, 0023 0032 004C FFEC, 0022 0050 0034 FFFD, 0024 0050 004C FFFD, 0020 FFCE 0034 FFEC, 001E FFCE 004C FFEC, 0021 FFB0 0034 FFFD, 001F FFB0 004C FFFD, + + + + +init = 808649B0 = +id 0004 +type 06 +room 00 +flags 00000019 +objectid 0001 +0000 +size 000001C4 +init 80862E28 - C00708 +0x00000000: addiu $sp, $sp, -0x18 +0x00000004: sw $ra, 0x14($sp) +0x00000008: sw $a0, 0x18($sp) +0x0000000c: sw $a1, 0x1c($sp) +0x00000010: jal 0x862c0c ; c004ec +0x00000014: lw $a0, 0x18($sp) +0x00000018: lw $a0, 0x18($sp) +0x0000001c: jal 0x862d84 ; +0x00000020: lw $a1, 0x1c($sp) +0x00000024: lw $ra, 0x14($sp) +0x00000028: addiu $sp, $sp, 0x18 +0x0000002c: jr $ra +0x00000030: nop + + .word data_80A3A780 + .word data_80A3A8C4 + .word data_80A3A8C4 + .word data_80A3A8C4 + .word data_80A3A858 + .word data_80A3A87C + .word data_80A3A8A0 + .word data_80A3A7A4 + .word data_80A3A7C8 + .word data_80A3A7EC + .word data_80A3A810 + .word data_80A3A834 + +func_0x862c0c_C004EC: +0x00000000: lh $t6, 0x1c($a0) ; t6 = var +0x00000004: addiu $t7, $t6, -0x11 ; t7 = var - 0x11 +0x00000008: sltiu $at, $t7, 0xc +0x0000000c: beqz $at, 0x16c ; if not 0x11 < var < 0x1D, return +0x00000010: sll $t7, $t7, 2 ; t7 = t7 << 2 +0x00000014: lui $at, 0x8086 +0x00000018: addu $at, $at, $t7 +0x0000001c: lw $t7, 0x5040($at) ; t7 = (?? + t7) +0x00000020: jr $t7 +0x00000024: nop + +0x00000028: lui $t8, 0x8012 +0x0000002c: lhu $t8, -0x4b40($t8) +0x00000030: addiu $t0, $zero, 0x10 +0x00000034: addiu $v0, $zero, 1 +0x00000038: andi $t9, $t8, 4 +0x0000003c: beql $t9, $zero, 0x170 +0x00000040: move $v0, $zero +0x00000044: jr $ra +0x00000048: sh $t0, 0x1c($a0) + +0x0000004c: lui $t1, 0x8012 +0x00000050: lhu $t1, -0x4b40($t1) +0x00000054: addiu $t3, $zero, 0x26 +0x00000058: addiu $v0, $zero, 1 +0x0000005c: andi $t2, $t1, 0x40 +0x00000060: beql $t2, $zero, 0x170 +0x00000064: move $v0, $zero +0x00000068: jr $ra +0x0000006c: sh $t3, 0x1c($a0) + +0x00000070: lui $t4, 0x8012 +0x00000074: lhu $t4, -0x4b40($t4) +0x00000078: addiu $t6, $zero, 0x26 +0x0000007c: addiu $v0, $zero, 1 +0x00000080: andi $t5, $t4, 0x80 +0x00000084: beql $t5, $zero, 0x170 +0x00000088: move $v0, $zero +0x0000008c: jr $ra +0x00000090: sh $t6, 0x1c($a0) + +0x00000094: lui $t7, 0x8012 +0x00000098: lhu $t7, -0x4b40($t7) +0x0000009c: addiu $t9, $zero, 0x26 +0x000000a0: addiu $v0, $zero, 1 +0x000000a4: andi $t8, $t7, 0x100 +0x000000a8: beql $t8, $zero, 0x170 +0x000000ac: move $v0, $zero +0x000000b0: jr $ra +0x000000b4: sh $t9, 0x1c($a0) + +0x000000b8: lui $t0, 0x8012 +0x000000bc: lhu $t0, -0x4b40($t0) +0x000000c0: addiu $t2, $zero, 0x26 +0x000000c4: addiu $v0, $zero, 1 +0x000000c8: andi $t1, $t0, 0x200 +0x000000cc: beql $t1, $zero, 0x170 +0x000000d0: move $v0, $zero +0x000000d4: jr $ra +0x000000d8: sh $t2, 0x1c($a0) + +0x000000dc: lui $t3, 0x8012 +0x000000e0: lhu $t3, -0x4b40($t3) +0x000000e4: addiu $t5, $zero, 0x26 +0x000000e8: addiu $v0, $zero, 1 +0x000000ec: andi $t4, $t3, 0x400 +0x000000f0: beql $t4, $zero, 0x170 +0x000000f4: move $v0, $zero +0x000000f8: jr $ra +0x000000fc: sh $t5, 0x1c($a0) + +0x00000100: lui $t6, 0x8012 +0x00000104: lhu $t6, -0x4b40($t6) +0x00000108: addiu $t8, $zero, 0x26 +0x0000010c: addiu $v0, $zero, 1 +0x00000110: andi $t7, $t6, 8 +0x00000114: beql $t7, $zero, 0x170 +0x00000118: move $v0, $zero +0x0000011c: jr $ra +0x00000120: sh $t8, 0x1c($a0) + +0x00000124: lui $t9, 0x8012 +0x00000128: lhu $t9, -0x4b40($t9) +0x0000012c: addiu $t1, $zero, 0x26 +0x00000130: addiu $v0, $zero, 1 +0x00000134: andi $t0, $t9, 0x10 +0x00000138: beql $t0, $zero, 0x170 +0x0000013c: move $v0, $zero +0x00000140: jr $ra +0x00000144: sh $t1, 0x1c($a0) + +0x00000148: lui $t2, 0x8012 +0x0000014c: lhu $t2, -0x4b40($t2) +0x00000150: addiu $t4, $zero, 0x26 +0x00000154: addiu $v0, $zero, 1 +0x00000158: andi $t3, $t2, 0x20 +0x0000015c: beql $t3, $zero, 0x170 +0x00000160: move $v0, $zero +0x00000164: jr $ra +0x00000168: sh $t4, 0x1c($a0) + +0x0000016c: move $v0, $zero +0x00000170: jr $ra +0x00000174: nop + + +func_0x862d84_c00664: +0x00000000: addiu $sp, $sp, -0x20 +0x00000004: sw $ra, 0x14($sp) +0x00000008: move $a2, $a0 ; a0 = a2 = actor +0x0000000c: move $a3, $a1 +0x00000010: lh $v1, 0x1c($a2) ; v1 = variable +0x00000014: lui $a1, 0x8086 +0x00000018: slti $at, $v1, 0x32 +0x0000001c: bnez $at, 0x3c +0x00000020: sll $t6, $v1, 5 ; t6 = variable << 5 (row offset) +0x00000024: bgezl $v1, 0x40 ; if variable not between 0-0x32 +0x00000028: lui $at, 1 + + ; shop item id not valid range + 0x0000002c: jal 0x20eb4 + 0x00000030: move $a0, $a2 + 0x00000034: b 0x98 + 0x00000038: lw $ra, 0x14($sp) + +; shop item id valid range +0x0000003c: lui $at, 1 +0x00000040: ori $at, $at, 0x17a4 ; at = 0x117A4 +0x00000044: addu $a1, $a1, $t6 ; a1 = partial address + row offset +0x00000048: lh $a1, 0x49ec($a1) ; a1 = (shop item table + row offset)[0] = model +0x0000004c: addu $a0, $a3, $at ; a0 = ctx + 0x117A4 +0x00000050: sh $v1, 0x1e($sp) +0x00000054: jal 0x81628 +0x00000058: sw $a2, 0x20($sp) +0x0000005c: lw $a2, 0x20($sp) +0x00000060: lh $v1, 0x1e($sp) +0x00000064: lui $t8, 0x8086 ; t8 = state1_8086443c_c01d1c +0x00000068: sb $v0, 0x184($a2) +0x0000006c: lb $t7, 0x184($a2) +0x00000070: addiu $t8, $t8, 0x443c +0x00000074: bgezl $t7, 0x90 +0x00000078: sh $v1, 0x1c($a2) + +0x0000007c: jal 0x20eb4 +0x00000080: move $a0, $a2 +0x00000084: b 0x98 +0x00000088: lw $ra, 0x14($sp) + +0x0000008c: sh $v1, 0x1c($a2) +0x00000090: sw $t8, 0x188($a2) + +0x00000094: lw $ra, 0x14($sp) +0x00000098: addiu $sp, $sp, 0x20 +0x0000009c: jr $ra +0x000000a0: nop + + +dest 80862E5C_c0073c +0x00000000: addiu $sp, $sp, -0x18 +0x00000004: sw $ra, 0x14($sp) +0x00000008: move $a2, $a0 +0x0000000c: lw $t6, 0x18c($a2) +0x00000010: beql $t6, $zero, 0x24 +0x00000014: lw $ra, 0x14($sp) +0x00000018: jal 0x8d6d0 +0x0000001c: addiu $a0, $a2, 0x13c +0x00000020: lw $ra, 0x14($sp) +0x00000024: addiu $sp, $sp, 0x18 +0x00000028: jr $ra +0x0000002c: nop + +main 808648A8 - C02188 +0x00000000: addiu $sp, $sp, -0x18 +0x00000004: sw $ra, 0x14($sp) +0x00000008: lw $t9, 0x188($a0) +0x0000000c: jalr $t9 +0x00000010: nop +0x00000014: lw $ra, 0x14($sp) +0x00000018: addiu $sp, $sp, 0x18 +0x0000001c: jr $ra +0x00000020: nop + +draw 00000000 + + + + + + + + + + +------------------------------------------------------------------------------------------------------------ +Function_1 +------------------------------------------------------------------------------------------------------------ +func_0x00A984B4: +0x00000000: addiu $sp, $sp, -0x58 +0x00000004: sw $s0, 0x18($sp) +0x00000008: move $s0, $a1 +0x0000000c: sw $ra, 0x1c($sp) +0x00000010: sw $a0, 0x58($sp) +0x00000014: sw $a2, 0x60($sp) +0x00000018: lui $at, 1 +0x0000001c: addu $v0, $s0, $at +0x00000020: lb $t6, 0xa4e($v0) +0x00000024: lw $a0, 0x58($sp) +0x00000028: addiu $a1, $s0, 0xe0 +0x0000002c: mtc1 $t6, $f4 +0x00000030: addiu $a2, $sp, 0x48 +0x00000034: addiu $a0, $a0, 0x24 +0x00000038: cvt.s.w $f6, $f4 +0x0000003c: swc1 $f6, 0x48($sp) +0x00000040: lb $t7, 0xa4f($v0) +0x00000044: mtc1 $t7, $f8 +0x00000048: nop +0x0000004c: cvt.s.w $f10, $f8 +0x00000050: swc1 $f10, 0x4c($sp) +0x00000054: lb $t8, 0xa50($v0) +0x00000058: mtc1 $t8, $f16 +0x0000005c: nop +0x00000060: cvt.s.w $f18, $f16 +0x00000064: swc1 $f18, 0x50($sp) +0x00000068: jal 0x22400 +0x0000006c: lw $a3, ($s0) +0x00000070: lw $t9, 0x60($sp) +0x00000074: lui $t0, 0xdf00 +0x00000078: beql $t9, $zero, 0x10c +0x0000007c: lw $ra, 0x1c($sp) +0x00000080: lw $a0, ($s0) +0x00000084: lw $v1, 0x2c4($a0) +0x00000088: addiu $v1, $v1, -0x10 +0x0000008c: sw $v1, 0x2c4($a0) +0x00000090: lw $a1, ($s0) +0x00000094: lw $t1, ($v0) +0x00000098: lw $t6, 4($v0) +0x0000009c: lui $at, 0xf200 +0x000000a0: andi $t2, $t1, 0xfff +0x000000a4: sll $t3, $t2, 0xc +0x000000a8: or $t4, $t3, $at +0x000000ac: andi $t7, $t6, 0xfff +0x000000b0: or $t8, $t4, $t7 +0x000000b4: sw $t8, ($v1) +0x000000b8: lw $t9, ($v0) +0x000000bc: lw $t6, 4($v0) +0x000000c0: lui $at, 0x100 +0x000000c4: addiu $t1, $t9, 0x3c +0x000000c8: andi $t2, $t1, 0xfff +0x000000cc: sll $t3, $t2, 0xc +0x000000d0: addiu $t7, $t6, 0x3c +0x000000d4: andi $t8, $t7, 0xfff +0x000000d8: or $t5, $t3, $at +0x000000dc: or $t9, $t5, $t8 +0x000000e0: sw $t9, 4($v1) +0x000000e4: sw $t0, 8($v1) +0x000000e8: sw $zero, 0xc($v1) +0x000000ec: lw $a3, 0x2d0($a1) +0x000000f0: lui $t2, 0xdb06 +0x000000f4: ori $t2, $t2, 0x1c +0x000000f8: addiu $t1, $a3, 8 +0x000000fc: sw $t1, 0x2d0($a1) +0x00000100: sw $v1, 4($a3) +0x00000104: sw $t2, ($a3) +0x00000108: lw $ra, 0x1c($sp) +0x0000010c: lw $s0, 0x18($sp) +0x00000110: addiu $sp, $sp, 0x58 +0x00000114: jr $ra +0x00000118: nop + + +func_0x00A98398: +0x00000000: addiu $sp, $sp, -0x58 +0x00000004: sw $s0, 0x18($sp) +0x00000008: move $s0, $a1 +0x0000000c: sw $ra, 0x1c($sp) +0x00000010: sw $a0, 0x58($sp) +0x00000014: sw $a2, 0x60($sp) +0x00000018: lui $at, 1 +0x0000001c: addu $v0, $s0, $at +0x00000020: lb $t6, 0xa4e($v0) +0x00000024: lw $a0, 0x58($sp) +0x00000028: addiu $a1, $s0, 0xe0 +0x0000002c: mtc1 $t6, $f4 +0x00000030: addiu $a2, $sp, 0x48 +0x00000034: addiu $a0, $a0, 0x24 +0x00000038: cvt.s.w $f6, $f4 +0x0000003c: swc1 $f6, 0x48($sp) +0x00000040: lb $t7, 0xa4f($v0) +0x00000044: mtc1 $t7, $f8 +0x00000048: nop +0x0000004c: cvt.s.w $f10, $f8 +0x00000050: swc1 $f10, 0x4c($sp) +0x00000054: lb $t8, 0xa50($v0) +0x00000058: mtc1 $t8, $f16 +0x0000005c: nop +0x00000060: cvt.s.w $f18, $f16 +0x00000064: swc1 $f18, 0x50($sp) +0x00000068: jal 0x223c8 +0x0000006c: lw $a3, ($s0) +0x00000070: lw $t9, 0x60($sp) +0x00000074: lui $t0, 0xdf00 +0x00000078: beql $t9, $zero, 0x10c +0x0000007c: lw $ra, 0x1c($sp) +0x00000080: lw $a0, ($s0) +0x00000084: lw $v1, 0x2c4($a0) +0x00000088: addiu $v1, $v1, -0x10 +0x0000008c: sw $v1, 0x2c4($a0) +0x00000090: lw $a1, ($s0) +0x00000094: lw $t1, ($v0) +0x00000098: lw $t6, 4($v0) +0x0000009c: lui $at, 0xf200 +0x000000a0: andi $t2, $t1, 0xfff +0x000000a4: sll $t3, $t2, 0xc +0x000000a8: or $t4, $t3, $at +0x000000ac: andi $t7, $t6, 0xfff +0x000000b0: or $t8, $t4, $t7 +0x000000b4: sw $t8, ($v1) +0x000000b8: lw $t9, ($v0) +0x000000bc: lw $t6, 4($v0) +0x000000c0: lui $at, 0x100 +0x000000c4: addiu $t1, $t9, 0x3c +0x000000c8: andi $t2, $t1, 0xfff +0x000000cc: sll $t3, $t2, 0xc +0x000000d0: addiu $t7, $t6, 0x3c +0x000000d4: andi $t8, $t7, 0xfff +0x000000d8: or $t5, $t3, $at +0x000000dc: or $t9, $t5, $t8 +0x000000e0: sw $t9, 4($v1) +0x000000e4: sw $t0, 8($v1) +0x000000e8: sw $zero, 0xc($v1) +0x000000ec: lw $a3, 0x2c0($a1) +0x000000f0: lui $t2, 0xdb06 +0x000000f4: ori $t2, $t2, 0x1c +0x000000f8: addiu $t1, $a3, 8 +0x000000fc: sw $t1, 0x2c0($a1) +0x00000100: sw $v1, 4($a3) +0x00000104: sw $t2, ($a3) +0x00000108: lw $ra, 0x1c($sp) +0x0000010c: lw $s0, 0x18($sp) +0x00000110: addiu $sp, $sp, 0x58 +0x00000114: jr $ra +0x00000118: nop + + +func_0x00C021AC: +0x00000000: addiu $sp, $sp, -0x18 +0x00000004: sw $ra, 0x14($sp) +0x00000008: sw $a0, 0x18($sp) +0x0000000c: sw $a1, 0x1c($sp) +0x00000010: sw $a2, 0x20($sp) +0x00000014: lw $a0, 0x18($sp) +0x00000018: lw $a1, 0x1c($sp) +0x0000001c: jal 0x22438 +0x00000020: move $a2, $zero +0x00000024: lw $a0, 0x18($sp) +0x00000028: lw $a1, 0x1c($sp) +0x0000002c: jal 0x22554 +0x00000030: move $a2, $zero +0x00000034: lw $ra, 0x14($sp) +0x00000038: addiu $sp, $sp, 0x18 +0x0000003c: jr $ra +0x00000040: nop + + + + + + + +------------------------------------------------------------------------------------------------------------ +Function_2 +------------------------------------------------------------------------------------------------------------ +;a0 = ??? +;a1 = actor +;-------- +; +ext_func_0x71420_AE7370: +0x00000000: sw $a0, ($sp) +0x00000004: lui $a2, 0x8010 +0x00000008: addiu $a2, $a2, -0x70cc ; a2 = ?? +0x0000000c: andi $a0, $a0, 0xff ; a0 = a0 & 0xff +0x00000010: addu $t6, $a2, $a0 ; t6 = a2 + item id +0x00000014: lbu $v1, ($t6) ; v1 = ??? +0x00000018: slti $at, $a0, 0x8a ; at = item id < 0x8A ? +0x0000001c: move $v0, $a0 ; v0 = item id +0x00000020: sll $a1, $v1, 0x10 +0x00000024: bnez $at, 0x44 ; if item id < 0x8A +0x00000028: sra $a1, $a1, 0x10 ; a1 = v1 & 0x0000FFFF + 0x0000002c: sll $t7, $v0, 1 ; t7 = item id << 1 + 0x00000030: lui $t8, 0x800f + 0x00000034: addu $t8, $t8, $t7 + 0x00000038: lh $t8, 0x7400($t8) ; t8 = *(??? + item id) + 0x0000003c: addu $t9, $a2, $t8 ; t9 = a2 + t8 + 0x00000040: lbu $a1, ($t9) ; a1 = (t9) + +0x00000044: slti $at, $v0, 0x66 +0x00000048: bnez $at, 0x60 ; if item id >= 0x66 +0x0000004c: slti $at, $v0, 0x6c +0x00000050: beql $at, $zero, 0x64 ; if item id < 0x6C +0x00000054: slti $at, $v0, 0x6c + 0x00000058: jr $ra + 0x0000005c: addiu $v0, $zero, 0xff ; return FF if medallion + +0x00000060: slti $at, $v0, 0x6c +0x00000064: bnez $at, 0x7c ; if item id >= 0x6C +0x00000068: slti $at, $v0, 0x72 +0x0000006c: beql $at, $zero, 0x80 ; if item id < 0x80 +0x00000070: slti $at, $v0, 0x3b + 0x00000074: jr $ra + 0x00000078: addiu $v0, $zero, 0xff ; return if more junk... + +0x0000007c: slti $at, $v0, 0x3b +0x00000080: bnez $at, 0xdc ; if item id >= 0x3B +0x00000084: slti $at, $v0, 0x3e +0x00000088: beqz $at, 0xdc ; if item id < 0x3E +0x0000008c: addiu $at, $zero, 0x3d + 0x00000090: bne $v0, $at, 0xa0 ; if item id == 0x3D + 0x00000094: sll $t0, $v0, 2 ; t0 = item id << 2 + 0x00000098: jr $ra + 0x0000009c: addiu $v0, $zero, 0xff ; return FF if biggoron sword + ; if swords + 0x000000a0: lui $t1, 0x8010 + 0x000000a4: addu $t1, $t1, $t0 + 0x000000a8: lui $t2, 0x8010 + 0x000000ac: lbu $t2, -0x7340($t2); t2 = ??? + 0x000000b0: lw $t1, -0x74fc($t1) ; t1 = (??? + item id) + 0x000000b4: lui $t4, 0x8012 + 0x000000b8: lhu $t4, -0x5994($t4); t4 = ??? + 0x000000bc: sllv $t3, $t1, $t2 ; t3 = t1 << t2 + 0x000000c0: and $t5, $t3, $t4 ; t5 = t3 & t4 + 0x000000c4: beqz $t5, 0xd4 ; if t5 is found + 0x000000c8: nop + 0x000000cc: jr $ra + 0x000000d0: move $v0, $a0 ; return item if found + 0x000000d4: jr $ra + 0x000000d8: addiu $v0, $zero, 0xff ; return ff + +0x000000dc: slti $at, $v0, 0x3e +0x000000e0: bnez $at, 0x12c ; if item id >= 0x3E +0x000000e4: slti $at, $v0, 0x41 +0x000000e8: beqz $at, 0x12c ; if item id < 0x41 +0x000000ec: sll $t6, $v0, 2 + ; if shields + 0x000000f0: lui $t7, 0x8010 + 0x000000f4: addu $t7, $t7, $t6 + 0x000000f8: lui $t8, 0x8010 + 0x000000fc: lbu $t8, -0x733f($t8) + 0x00000100: lw $t7, -0x7508($t7) + 0x00000104: lui $t0, 0x8012 + 0x00000108: lhu $t0, -0x5994($t0) + 0x0000010c: sllv $t9, $t7, $t8 + 0x00000110: and $t1, $t9, $t0 + 0x00000114: beqz $t1, 0x124 + 0x00000118: nop + 0x0000011c: jr $ra + 0x00000120: move $v0, $a0 + 0x00000124: jr $ra + 0x00000128: addiu $v0, $zero, 0xff + +0x0000012c: slti $at, $v0, 0x41 +0x00000130: bnez $at, 0x17c ; if item id >= 0x41 +0x00000134: slti $at, $v0, 0x44 +0x00000138: beqz $at, 0x17c ; if item id < 0x44 +0x0000013c: sll $t2, $v0, 2 + ; tunics + 0x00000140: lui $t3, 0x8010 + 0x00000144: addu $t3, $t3, $t2 + 0x00000148: lui $t4, 0x8010 + 0x0000014c: lbu $t4, -0x733e($t4) + 0x00000150: lw $t3, -0x7514($t3) + 0x00000154: lui $t6, 0x8012 + 0x00000158: lhu $t6, -0x5994($t6) + 0x0000015c: sllv $t5, $t3, $t4 + 0x00000160: and $t7, $t5, $t6 + 0x00000164: beqz $t7, 0x174 + 0x00000168: nop + 0x0000016c: jr $ra + 0x00000170: move $v0, $a0 + 0x00000174: jr $ra + 0x00000178: addiu $v0, $zero, 0xff + +0x0000017c: slti $at, $v0, 0x44 +0x00000180: bnez $at, 0x1cc ; if item id >= 0x44 +0x00000184: slti $at, $v0, 0x47 +0x00000188: beqz $at, 0x1cc ; if item id < 0x47 +0x0000018c: sll $t8, $v0, 2 + ; if boots + 0x00000190: lui $t9, 0x8010 + 0x00000194: addu $t9, $t9, $t8 + 0x00000198: lui $t0, 0x8010 + 0x0000019c: lbu $t0, -0x733d($t0) + 0x000001a0: lw $t9, -0x7520($t9) + 0x000001a4: lui $t2, 0x8012 + 0x000001a8: lhu $t2, -0x5994($t2) + 0x000001ac: sllv $t1, $t9, $t0 + 0x000001b0: and $t3, $t1, $t2 + 0x000001b4: beqz $t3, 0x1c4 + 0x000001b8: nop + 0x000001bc: jr $ra + 0x000001c0: move $v0, $a0 + 0x000001c4: jr $ra + 0x000001c8: addiu $v0, $zero, 0xff + +0x000001cc: addiu $at, $zero, 0x74 +0x000001d0: beq $v0, $at, 0x1e8 ; if item id == 0x74 ;boss key +0x000001d4: addiu $at, $zero, 0x75 +0x000001d8: beq $v0, $at, 0x1e8 ; if item id == 0x75 ;compass +0x000001dc: addiu $at, $zero, 0x76 +0x000001e0: bnel $v0, $at, 0x1f4 ; if item id == 0x76 ;map +0x000001e4: addiu $at, $zero, 0x77 + 0x000001e8: jr $ra + 0x000001ec: addiu $v0, $zero, 0xff ; return ff + +0x000001f0: addiu $at, $zero, 0x77 +0x000001f4: bnel $v0, $at, 0x208 ; if item id == 0x77 ;key +0x000001f8: slti $at, $v0, 6 + 0x000001fc: jr $ra + 0x00000200: addiu $v0, $zero, 0xff ; return ff + +0x00000204: slti $at, $v0, 6 +0x00000208: bnez $at, 0x220 ; if item id >= 0x06 +0x0000020c: slti $at, $v0, 0xa +0x00000210: beql $at, $zero, 0x224 ; if item id < 0x0A +0x00000214: addiu $at, $zero, 0x96 + ; slingshot, ocarina, bombchu, hookshot = FF + 0x00000218: jr $ra + 0x0000021c: addiu $v0, $zero, 0xff + +0x00000220: addiu $at, $zero, 0x96 +0x00000224: beq $v0, $at, 0x234 ; if item id == 0x96 ; bombchu 5 +0x00000228: addiu $at, $zero, 0x97 +0x0000022c: bnel $v0, $at, 0x240 ; if item id == 0x97 ; bombchu 20 +0x00000230: addiu $at, $zero, 0x4a + ; bombchus (5/20) = FF + 0x00000234: jr $ra + 0x00000238: addiu $v0, $zero, 0xff + +0x0000023c: addiu $at, $zero, 0x4a +0x00000240: beq $v0, $at, 0x250 ; if item id == 0x4A ; quiver 30 +0x00000244: lui $t4, 0x8012 +0x00000248: addiu $at, $zero, 3 +0x0000024c: bne $v0, $at, 0x284 ; if item id == 0x03 ; bow + 0x00000250: lui $t5, 0x8010 + 0x00000254: lw $t5, -0x7380($t5) + 0x00000258: lw $t4, -0x5990($t4) + 0x0000025c: lui $t7, 0x8010 + 0x00000260: lbu $t7, -0x733c($t7) + 0x00000264: and $t6, $t4, $t5 + 0x00000268: srav $t8, $t6, $t7 + 0x0000026c: bnez $t8, 0x27c + 0x00000270: nop + 0x00000274: jr $ra + 0x00000278: addiu $v0, $zero, 0xff ; if no bow, return FF + 0x0000027c: jr $ra + 0x00000280: move $v0, $zero ; if bow, return 0 + +0x00000284: addiu $at, $zero, 0x4b +0x00000288: beq $v0, $at, 0x298 ; if item id == 0x4B ; quiver 40 +0x0000028c: addiu $at, $zero, 0x4c +0x00000290: bnel $v0, $at, 0x2a4 ; if item id == 0x4C ; quiver 50 +0x00000294: addiu $at, $zero, 0x48 + 0x00000298: jr $ra + 0x0000029c: addiu $v0, $zero, 0xff ; return FF + +0x000002a0: addiu $at, $zero, 0x48 +0x000002a4: beq $v0, $at, 0x2b4 ; if item id == 0x48 ; bullet bag 40 +0x000002a8: addiu $at, $zero, 0x49 +0x000002ac: bnel $v0, $at, 0x2c0 ; if item id == 0x49 ; bullet bag 50 +0x000002b0: addiu $at, $zero, 0x4d + 0x000002b4: jr $ra + 0x000002b8: addiu $v0, $zero, 0xff ; return ff + +0x000002bc: addiu $at, $zero, 0x4d +0x000002c0: beq $v0, $at, 0x2d0 ; if item id == 0x4D ; bomb bag 20 +0x000002c4: lui $t9, 0x8012 +0x000002c8: addiu $at, $zero, 2 +0x000002cc: bne $v0, $at, 0x304 ; if item id == 0x02 ; bombs + 0x000002d0: lui $t0, 0x8010 + 0x000002d4: lw $t0, -0x737c($t0) + 0x000002d8: lw $t9, -0x5990($t9) + 0x000002dc: lui $t2, 0x8010 + 0x000002e0: lbu $t2, -0x733b($t2) + 0x000002e4: and $t1, $t9, $t0 + 0x000002e8: srav $t3, $t1, $t2 + 0x000002ec: bnez $t3, 0x2fc + 0x000002f0: nop + 0x000002f4: jr $ra + 0x000002f8: addiu $v0, $zero, 0xff ; if no bomb, return ff + 0x000002fc: jr $ra + 0x00000300: move $v0, $zero ; if bomb, return 0 + +0x00000304: slti $at, $v0, 0x98 +0x00000308: bnez $at, 0x320 ; if item id >= 0x98 +0x0000030c: slti $at, $v0, 0x9c +0x00000310: beql $at, $zero, 0x324 ; if item id < 0x9C +0x00000314: slti $at, $v0, 0x4e + ; stick and nut capacity upgrades = FF + 0x00000318: jr $ra + 0x0000031c: addiu $v0, $zero, 0xff + +0x00000320: slti $at, $v0, 0x4e +0x00000324: bnez $at, 0x33c ; if item id >= 0x4E +0x00000328: slti $at, $v0, 0x58 +0x0000032c: beql $at, $zero, 0x340 ; if item id < 0x58 + ; bomb bag 30/40, bracelets, scales, wallets = FF + 0x00000330: addiu $at, $zero, 0xb + 0x00000334: jr $ra + 0x00000338: addiu $v0, $zero, 0xff + +0x0000033c: addiu $at, $zero, 0xb +0x00000340: bnel $v0, $at, 0x354 ; if item id == 0x0B ; longshot +0x00000344: addiu $at, $zero, 0x58 + 0x00000348: jr $ra + 0x0000034c: addiu $v0, $zero, 0xff ; return FF + +0x00000350: addiu $at, $zero, 0x58 +0x00000354: beq $v0, $at, 0x368 ; if item id == 0x58 ; deku seeds 5 +0x00000358: lui $t4, 0x8012 +0x0000035c: addiu $at, $zero, 0x95 +0x00000360: bnel $v0, $at, 0x38c ; if item id == 0x95 ; deku seeds 30 +0x00000364: addiu $at, $zero, 0x10 + 0x00000368: lhu $t4, -0x4b3e($t4) + 0x0000036c: andi $t5, $t4, 8 + 0x00000370: bnez $t5, 0x380 + 0x00000374: nop + 0x00000378: jr $ra + 0x0000037c: addiu $v0, $zero, 0xff ; if no seed bag, return ff + 0x00000380: jr $ra + 0x00000384: addiu $v0, $zero, 0x58 ; if seed bag, return 58 + +0x00000388: addiu $at, $zero, 0x10 +0x0000038c: bnel $v0, $at, 0x3a0 ; if item id == 0x10 ; magic bean +0x00000390: addiu $at, $zero, 0x7a + 0x00000394: jr $ra + 0x00000398: addiu $v0, $zero, 0xff ; return FF + +0x0000039c: addiu $at, $zero, 0x7a +0x000003a0: beq $v0, $at, 0x3b0 ; if item id == 0x7A ; heart piece +0x000003a4: addiu $at, $zero, 0x73 +0x000003a8: bnel $v0, $at, 0x3bc ; if item id == 0x73 ; heart piece +0x000003ac: addiu $at, $zero, 0x72 + 0x000003b0: jr $ra + 0x000003b4: addiu $v0, $zero, 0xff ; return FF + +0x000003b8: addiu $at, $zero, 0x72 +0x000003bc: bnel $v0, $at, 0x3d0 ; if item id == 0x72 ; heart container +0x000003c0: addiu $at, $zero, 0x83 + 0x000003c4: jr $ra + 0x000003c8: addiu $v0, $zero, 0xff ; return FF + +0x000003cc: addiu $at, $zero, 0x83 +0x000003d0: bnel $v0, $at, 0x3e4 ; if item id == 0x83 ; recovery heart +0x000003d4: addiu $at, $zero, 0x78 + 0x000003d8: jr $ra + 0x000003dc: addiu $v0, $zero, 0x83 ; return 83 + +0x000003e0: addiu $at, $zero, 0x78 +0x000003e4: beq $v0, $at, 0x3f8 ; if item id == 0x78 ; small magic refill +0x000003e8: lui $t6, 0x8012 +0x000003ec: addiu $at, $zero, 0x79 +0x000003f0: bnel $v0, $at, 0x41c ; if item id == 0x79 ; large magic refill +0x000003f4: slti $at, $v0, 0x84 + 0x000003f8: lhu $t6, -0x4b06($t6) + 0x000003fc: andi $t7, $t6, 0x100 + 0x00000400: bnez $t7, 0x410 + 0x00000404: nop + 0x00000408: jr $ra + 0x0000040c: addiu $v0, $zero, 0xff ; no magic = return ff + 0x00000410: jr $ra + 0x00000414: move $v0, $a0 ; magic = return item id + +0x00000418: slti $at, $v0, 0x84 +0x0000041c: bnez $at, 0x438 ; if item id >= 0x84 +0x00000420: addiu $a2, $zero, 0x14 +0x00000424: slti $at, $v0, 0x8a +0x00000428: beqz $at, 0x438 ; if item id < 0x8A +0x0000042c: nop + ; rupee 1/5/20/50/200 = FF + 0x00000430: jr $ra + 0x00000434: addiu $v0, $zero, 0xff + +0x00000438: bne $a2, $v0, 0x448 ; if item id == 0x14 ; bottle +0x0000043c: slti $at, $v0, 0x15 + 0x00000440: jr $ra + 0x00000444: addiu $v0, $zero, 0xff ; return FF + +0x00000448: bnez $at, 0x454 ; if item id >= 0x15 +0x0000044c: slti $at, $v0, 0x21 +0x00000450: bnez $at, 0x45c ; if item id < 0x21 +0x00000454: addiu $at, $zero, 0x82 +0x00000458: bne $v0, $at, 0x510 ; if item id == 0x82 ; milk + ; if item is bottled item + 0x0000045c: sll $a0, $v1, 0x10 + 0x00000460: addiu $at, $zero, 0x1a + 0x00000464: beq $v0, $at, 0x4c8 + 0x00000468: sra $a0, $a0, 0x10 ; a0 = v1 & 0x0000FFFF + 0x0000046c: addiu $at, $zero, 0x1b + 0x00000470: beq $v0, $at, 0x4c8 ; if item id == 0x1B ; ruto's letter + 0x00000474: lui $t8, 0x8012 + 0x00000478: addiu $at, $zero, 0x82 + 0x0000047c: bne $v0, $at, 0x48c ; if item id == 0x82 ; milk + 0x00000480: addiu $t8, $t8, -0x5a30 ; t8 = inventory + 0x00000484: lui $a0, 0x8010 + 0x00000488: lbu $a0, -0x70b2($a0) ; a0 = ?? + 0x0000048c: move $v0, $zero ; v0 = 0 + 0x00000490: addu $v1, $a0, $t8 ; v1 = inventory item slot + 0x00000494: addu $t9, $v1, $v0 ; t9 = inventory item slot + + 0x00000498: lbu $t0, 0x74($t9) ; t0 = inventory item + 0x0000049c: addiu $v0, $v0, 1 ; v0++ + 0x000004a0: sll $v0, $v0, 0x10 + 0x000004a4: bne $a2, $t0, 0x4b4 ; if inventory item == item id + 0x000004a8: sra $v0, $v0, 0x10 ; v0 = v0 & 0x0000FFFF ? + 0x000004ac: jr $ra + 0x000004b0: addiu $v0, $zero, 0xff ; return FF + 0x000004b4: slti $at, $v0, 4 + 0x000004b8: bnezl $at, 0x498 ; if v0 < 4, loop + 0x000004bc: addu $t9, $v1, $v0 ; t9 = inventory item slot + 0x000004c0: b 0x52c ; return ?? + 0x000004c4: nop + + ; ruto's letter + 0x000004c8: lui $t1, 0x8012 + 0x000004cc: addiu $t1, $t1, -0x5a30 ; t1 = inventory + 0x000004d0: addu $v1, $a0, $t1 ; v1 = inventory item slot + 0x000004d4: addiu $a0, $zero, 0xff ; a0 = FF + 0x000004d8: move $v0, $zero ; v0 = 0 + 0x000004dc: addu $t2, $v1, $v0 ; t2 = inventory item slot + + 0x000004e0: lbu $t3, 0x74($t2) ; t3 = inventory item + 0x000004e4: addiu $v0, $v0, 1 ; v0++ + 0x000004e8: sll $v0, $v0, 0x10 + 0x000004ec: bne $a0, $t3, 0x4fc ; if inventory item == FF + 0x000004f0: sra $v0, $v0, 0x10 ; v0 = v0 & 0x0000FFFF ? + 0x000004f4: jr $ra + 0x000004f8: addiu $v0, $zero, 0xff ; return FF + 0x000004fc: slti $at, $v0, 4 + 0x00000500: bnezl $at, 0x4e0 ; if v0 < 4, loop + 0x00000504: addu $t2, $v1, $v0 ; t2 = inventory item slot + 0x00000508: b 0x52c ; return ?? + 0x0000050c: nop + +0x00000510: slti $at, $v0, 0x21 +0x00000514: bnez $at, 0x52c ; if item id >= 0x21 +0x00000518: slti $at, $v0, 0x38 +0x0000051c: beqz $at, 0x52c ; if item id >= 0x38 +0x00000520: nop + ; child/adult trade items + 0x00000524: jr $ra + 0x00000528: addiu $v0, $zero, 0xff ; return FF + +0x0000052c: lui $v0, 0x8012 +0x00000530: addu $v0, $v0, $a1 +0x00000534: lbu $v0, -0x59bc($v0) ; return ??? +0x00000538: jr $ra +0x0000053c: nop + + + + + + + + + + + + + + + + + + + + + +; Called when attempting to buy item +;a0 = ??? +;a1 = actor +;-------- +;v0 = 0 = already have one +; 1 = can buy! +; 2 = can't hold any more/already own +; 3 = no empty bottle +; 4 = not enough rupees +; 5 = not adult/can't buy + +func_0x00C0076C: +0x00000000: addiu sp, sp, -0x18 +0x00000004: sw ra, 0x14(sp) +0x00000008: sw a0, 0x18(sp) +0x0000000c: sw a1, 0x1c(sp) +0x00000010: jal 0x71420 ; get inventory slot with bow +0x00000014: addiu a0, zero, 3 ; a0 = 3 +0x00000018: addiu at, zero, 0xff ; at = 0xFF +0x0000001c: bne v0, at, 0x2c ; if has bow +0x00000020: lw ra, 0x14(sp) +0x00000024: b 0xa8 +0x00000028: addiu v0, zero, 5 ; if v0 == 0xFF, return v0 = 5 + +0x0000002c: lui v0, 0x8012 +0x00000030: addiu v0, v0, -0x5a30 ; v0 = save context +0x00000034: lui t0, 0x8010 +0x00000038: lw t0, -0x7380(t0) ; t0 = bow_bitflag +0x0000003c: lw t9, 0xa0(v0) ; t9 = equipment +0x00000040: lui t2, 0x8010 +0x00000044: lbu t2, -0x733c(t2) ; t2 = bow_bit +0x00000048: lui t6, 0x8010 +0x0000004c: lbu t6, -0x70c9(t6) ; t6 = bowslot +0x00000050: and t1, t9, t0 ; t1 = equipment & bow_bitflag +0x00000054: srav t3, t1, t2 ; t3 = t1 >> bow_bit +0x00000058: sll t4, t3, 1 ; t4 = t3 << 1 +0x0000005c: lui t5, 0x8010 +0x00000060: addu t5, t5, t4 ; t5 = quiver_index +0x00000064: addu t7, v0, t6 ; t7 = save + bowslot +0x00000068: lb t8, 0x8c(t7) ; t8 = arrow_ammo +0x0000006c: lhu t5, -0x7334(t5) ; t5 = arrow_max +0x00000070: lw t7, 0x1c(sp) ; t7 = a1 +0x00000074: slt at, t8, t5 ; at = arrow_ammo < arrow_max +0x00000078: bnezl at, 0x8c ; if arrow_ammo < arrow_max +0x0000007c: lh t6, 0x34(v0) ; t6 = rupees +0x00000080: b 0xa8 +0x00000084: addiu v0, zero, 2 ; if arrow_ammo >= arrow_max, return v0 = 2 + +0x00000088: lh t6, 0x34(v0) ; unreachable? + +0x0000008c: lh t9, 0x1b8(t7) ; t9 = cost +0x00000090: addiu v0, zero, 1 ; v0 = 1 +0x00000094: slt at, t6, t9 ; at = rupees < cost +0x00000098: beqz at, 0xa8 ; if rupees < cost, return v0 = 1 +0x0000009c: nop +0x000000a0: b 0xa8 +0x000000a4: addiu v0, zero, 4 ; return v0 = 4 +0x000000a8: jr ra +0x000000ac: addiu sp, sp, 0x18 + +func_0x00C0081C: +0x00000000: lui v0, 0x8012 +0x00000004: addiu v0, v0, -0x5a30 +0x00000008: sw a0, (sp) +0x0000000c: lui t6, 0x8010 +0x00000010: lw t6, -0x73c4(t6) +0x00000014: lw t7, 0xa4(v0) +0x00000018: lui t9, 0x8010 +0x0000001c: lui t3, 0x8010 +0x00000020: and t8, t6, t7 +0x00000024: bnez t8, 0x34 +0x00000028: lui t5, 0x8010 +0x0000002c: jr ra +0x00000030: addiu v0, zero, 2 +0x00000034: lw t2, 0xa0(v0) +0x00000038: lw t3, -0x737c(t3) +0x0000003c: lbu t5, -0x733b(t5) +0x00000040: lbu t9, -0x70ca(t9) +0x00000044: and t4, t2, t3 +0x00000048: srav t6, t4, t5 +0x0000004c: sll t7, t6, 1 +0x00000050: lui t8, 0x8010 +0x00000054: addu t8, t8, t7 +0x00000058: addu t0, v0, t9 +0x0000005c: lb t1, 0x8c(t0) +0x00000060: lhu t8, -0x732c(t8) +0x00000064: slt at, t1, t8 +0x00000068: bnezl at, 0x7c +0x0000006c: lh t9, 0x34(v0) +0x00000070: jr ra +0x00000074: addiu v0, zero, 2 +0x00000078: lh t9, 0x34(v0) +0x0000007c: lh t0, 0x1b8(a1) +0x00000080: addiu v0, zero, 1 +0x00000084: slt at, t9, t0 +0x00000088: beqz at, 0x98 +0x0000008c: nop +0x00000090: jr ra +0x00000094: addiu v0, zero, 4 +0x00000098: jr ra +0x0000009c: nop + + +func_0x00C008BC: +0x00000000: addiu sp, sp, -0x18 +0x00000004: lui v1, 0x8012 +0x00000008: addiu v1, v1, -0x5a30 +0x0000000c: sw ra, 0x14(sp) +0x00000010: sw a0, 0x18(sp) +0x00000014: lui t7, 0x8010 +0x00000018: lw t7, -0x7364(t7) +0x0000001c: lw t6, 0xa0(v1) +0x00000020: lui t9, 0x8010 +0x00000024: lbu t9, -0x7335(t9) +0x00000028: and t8, t6, t7 +0x0000002c: lui v0, 0x8010 +0x00000030: srav t0, t8, t9 +0x00000034: sll t1, t0, 1 +0x00000038: addu v0, v0, t1 +0x0000003c: lhu v0, -0x72fc(v0) +0x00000040: lui t2, 0x8010 +0x00000044: beql v0, zero, 0x70 +0x00000048: lh t5, 0x34(v1) +0x0000004c: lbu t2, -0x70cb(t2) +0x00000050: addu t3, v1, t2 +0x00000054: lb t4, 0x8c(t3) +0x00000058: slt at, t4, v0 +0x0000005c: bnezl at, 0x70 +0x00000060: lh t5, 0x34(v1) +0x00000064: b 0xa8 +0x00000068: addiu v0, zero, 2 +0x0000006c: lh t5, 0x34(v1) +0x00000070: lh t6, 0x1b8(a1) +0x00000074: slt at, t5, t6 +0x00000078: beqz at, 0x88 +0x0000007c: nop +0x00000080: b 0xa8 +0x00000084: addiu v0, zero, 4 +0x00000088: jal 0x71420 +0x0000008c: addiu a0, zero, 1 +0x00000090: addiu at, zero, 0xff +0x00000094: bnel v0, at, 0xa8 +0x00000098: addiu v0, zero, 1 +0x0000009c: b 0xa8 +0x000000a0: move v0, zero +0x000000a4: addiu v0, zero, 1 +0x000000a8: lw ra, 0x14(sp) +0x000000ac: addiu sp, sp, 0x18 +0x000000b0: jr ra +0x000000b4: nop + + +func_0x00C00974: +0x00000000: addiu sp, sp, -0x18 +0x00000004: lui v1, 0x8012 +0x00000008: addiu v1, v1, -0x5a30 +0x0000000c: sw ra, 0x14(sp) +0x00000010: sw a0, 0x18(sp) +0x00000014: lui t7, 0x8010 +0x00000018: lw t7, -0x7368(t7) +0x0000001c: lw t6, 0xa0(v1) +0x00000020: lui t9, 0x8010 +0x00000024: lbu t9, -0x7336(t9) +0x00000028: and t8, t6, t7 +0x0000002c: lui v0, 0x8010 +0x00000030: srav t0, t8, t9 +0x00000034: sll t1, t0, 1 +0x00000038: addu v0, v0, t1 +0x0000003c: lhu v0, -0x7304(v0) +0x00000040: lui t2, 0x8010 +0x00000044: beql v0, zero, 0x70 +0x00000048: lh t5, 0x34(v1) +0x0000004c: lbu t2, -0x70cc(t2) +0x00000050: addu t3, v1, t2 +0x00000054: lb t4, 0x8c(t3) +0x00000058: slt at, t4, v0 +0x0000005c: bnezl at, 0x70 +0x00000060: lh t5, 0x34(v1) +0x00000064: b 0xa8 +0x00000068: addiu v0, zero, 2 +0x0000006c: lh t5, 0x34(v1) +0x00000070: lh t6, 0x1b8(a1) +0x00000074: slt at, t5, t6 +0x00000078: beqz at, 0x88 +0x0000007c: nop +0x00000080: b 0xa8 +0x00000084: addiu v0, zero, 4 +0x00000088: jal 0x71420 +0x0000008c: move a0, zero +0x00000090: addiu at, zero, 0xff +0x00000094: bnel v0, at, 0xa8 +0x00000098: addiu v0, zero, 1 +0x0000009c: b 0xa8 +0x000000a0: move v0, zero +0x000000a4: addiu v0, zero, 1 +0x000000a8: lw ra, 0x14(sp) +0x000000ac: addiu sp, sp, 0x18 +0x000000b0: jr ra +0x000000b4: nop + + +func_0x00C00A2C: +0x00000000: addiu sp, sp, -0x18 +0x00000004: sw ra, 0x14(sp) +0x00000008: sw a0, 0x18(sp) +0x0000000c: sw a1, 0x1c(sp) +0x00000010: jal 0x71a94 +0x00000014: nop +0x00000018: bnez v0, 0x28 +0x0000001c: lw t7, 0x1c(sp) +0x00000020: b 0x68 +0x00000024: addiu v0, zero, 3 +0x00000028: lui t6, 0x8012 +0x0000002c: lh t6, -0x59fc(t6) +0x00000030: lh t8, 0x1b8(t7) +0x00000034: slt at, t6, t8 +0x00000038: beqz at, 0x48 +0x0000003c: nop +0x00000040: b 0x68 +0x00000044: addiu v0, zero, 4 +0x00000048: jal 0x71420 +0x0000004c: addiu a0, zero, 0x19 +0x00000050: addiu at, zero, 0xff +0x00000054: bnel v0, at, 0x68 +0x00000058: addiu v0, zero, 1 +0x0000005c: b 0x68 +0x00000060: move v0, zero +0x00000064: addiu v0, zero, 1 +0x00000068: lw ra, 0x14(sp) +0x0000006c: addiu sp, sp, 0x18 +0x00000070: jr ra +0x00000074: nop + + +func_0x00C00AA4: +0x00000000: addiu sp, sp, -0x18 +0x00000004: sw ra, 0x14(sp) +0x00000008: sw a0, 0x18(sp) +0x0000000c: sw a1, 0x1c(sp) +0x00000010: jal 0x71a94 +0x00000014: nop +0x00000018: bnez v0, 0x28 +0x0000001c: lw t7, 0x1c(sp) +0x00000020: b 0x68 +0x00000024: addiu v0, zero, 3 +0x00000028: lui t6, 0x8012 +0x0000002c: lh t6, -0x59fc(t6) +0x00000030: lh t8, 0x1b8(t7) +0x00000034: slt at, t6, t8 +0x00000038: beqz at, 0x48 +0x0000003c: nop +0x00000040: b 0x68 +0x00000044: addiu v0, zero, 4 +0x00000048: jal 0x71420 +0x0000004c: addiu a0, zero, 0x15 +0x00000050: addiu at, zero, 0xff +0x00000054: bnel v0, at, 0x68 +0x00000058: addiu v0, zero, 1 +0x0000005c: b 0x68 +0x00000060: move v0, zero +0x00000064: addiu v0, zero, 1 +0x00000068: lw ra, 0x14(sp) +0x0000006c: addiu sp, sp, 0x18 +0x00000070: jr ra +0x00000074: nop + + +func_0x00C00B1C: +0x00000000: addiu sp, sp, -0x18 +0x00000004: sw ra, 0x14(sp) +0x00000008: sw a0, 0x18(sp) +0x0000000c: sw a1, 0x1c(sp) +0x00000010: jal 0x71a94 +0x00000014: nop +0x00000018: bnez v0, 0x28 +0x0000001c: lw t7, 0x1c(sp) +0x00000020: b 0x68 +0x00000024: addiu v0, zero, 3 +0x00000028: lui t6, 0x8012 +0x0000002c: lh t6, -0x59fc(t6) +0x00000030: lh t8, 0x1b8(t7) +0x00000034: slt at, t6, t8 +0x00000038: beqz at, 0x48 +0x0000003c: nop +0x00000040: b 0x68 +0x00000044: addiu v0, zero, 4 +0x00000048: jal 0x71420 +0x0000004c: addiu a0, zero, 0x16 +0x00000050: addiu at, zero, 0xff +0x00000054: bnel v0, at, 0x68 +0x00000058: addiu v0, zero, 1 +0x0000005c: b 0x68 +0x00000060: move v0, zero +0x00000064: addiu v0, zero, 1 +0x00000068: lw ra, 0x14(sp) +0x0000006c: addiu sp, sp, 0x18 +0x00000070: jr ra +0x00000074: nop + + +func_0x00C00B94: +0x00000000: addiu sp, sp, -0x18 +0x00000004: sw ra, 0x14(sp) +0x00000008: sw a0, 0x18(sp) +0x0000000c: sw a1, 0x1c(sp) +0x00000010: jal 0x71a94 +0x00000014: nop +0x00000018: bnez v0, 0x28 +0x0000001c: lw t7, 0x1c(sp) +0x00000020: b 0x68 +0x00000024: addiu v0, zero, 3 +0x00000028: lui t6, 0x8012 +0x0000002c: lh t6, -0x59fc(t6) +0x00000030: lh t8, 0x1b8(t7) +0x00000034: slt at, t6, t8 +0x00000038: beqz at, 0x48 +0x0000003c: nop +0x00000040: b 0x68 +0x00000044: addiu v0, zero, 4 +0x00000048: jal 0x71420 +0x0000004c: addiu a0, zero, 0x17 +0x00000050: addiu at, zero, 0xff +0x00000054: bnel v0, at, 0x68 +0x00000058: addiu v0, zero, 1 +0x0000005c: b 0x68 +0x00000060: move v0, zero +0x00000064: addiu v0, zero, 1 +0x00000068: lw ra, 0x14(sp) +0x0000006c: addiu sp, sp, 0x18 +0x00000070: jr ra +0x00000074: nop + + +func_0x00C00C0C: +0x00000000: addiu sp, sp, -0x18 +0x00000004: sw a0, 0x18(sp) +0x00000008: lui a0, 0x8012 +0x0000000c: lui v1, 0x8010 +0x00000010: addiu v1, v1, -0x7410 +0x00000014: addiu a0, a0, -0x5a30 +0x00000018: sw ra, 0x14(sp) +0x0000001c: lhu v0, 0x9c(a0) +0x00000020: lw t6, 8(v1) +0x00000024: and t7, t6, v0 +0x00000028: beql t7, zero, 0x4c +0x0000002c: lh t0, 0x34(a0) +0x00000030: lw t8, 0xc(v1) +0x00000034: and t9, t8, v0 +0x00000038: bnezl t9, 0x4c +0x0000003c: lh t0, 0x34(a0) +0x00000040: b 0x84 +0x00000044: addiu v0, zero, 2 +0x00000048: lh t0, 0x34(a0) +0x0000004c: lh t1, 0x1b8(a1) +0x00000050: slt at, t0, t1 +0x00000054: beqz at, 0x64 +0x00000058: nop +0x0000005c: b 0x84 +0x00000060: addiu v0, zero, 4 +0x00000064: jal 0x71420 +0x00000068: addiu a0, zero, 0x3d +0x0000006c: addiu at, zero, 0xff +0x00000070: bnel v0, at, 0x84 +0x00000074: addiu v0, zero, 1 +0x00000078: b 0x84 +0x0000007c: move v0, zero +0x00000080: addiu v0, zero, 1 +0x00000084: lw ra, 0x14(sp) +0x00000088: addiu sp, sp, 0x18 +0x0000008c: jr ra +0x00000090: nop + + +func_0x00C00CA0: +0x00000000: addiu sp, sp, -0x18 +0x00000004: lui v0, 0x8012 +0x00000008: addiu v0, v0, -0x5a30 +0x0000000c: sw ra, 0x14(sp) +0x00000010: sw a0, 0x18(sp) +0x00000014: lui t6, 0x8010 +0x00000018: lw t6, -0x73fc(t6) +0x0000001c: lhu t7, 0x9c(v0) +0x00000020: and t8, t6, t7 +0x00000024: beql t8, zero, 0x38 +0x00000028: lh t9, 0x34(v0) +0x0000002c: b 0x70 +0x00000030: addiu v0, zero, 2 +0x00000034: lh t9, 0x34(v0) +0x00000038: lh t0, 0x1b8(a1) +0x0000003c: slt at, t9, t0 +0x00000040: beqz at, 0x50 +0x00000044: nop +0x00000048: b 0x70 +0x0000004c: addiu v0, zero, 4 +0x00000050: jal 0x71420 +0x00000054: addiu a0, zero, 0x3f +0x00000058: addiu at, zero, 0xff +0x0000005c: bnel v0, at, 0x70 +0x00000060: addiu v0, zero, 1 +0x00000064: b 0x70 +0x00000068: move v0, zero +0x0000006c: addiu v0, zero, 1 +0x00000070: lw ra, 0x14(sp) +0x00000074: addiu sp, sp, 0x18 +0x00000078: jr ra +0x0000007c: nop + + +func_0x00C00D20: +0x00000000: addiu sp, sp, -0x18 +0x00000004: lui v0, 0x8012 +0x00000008: addiu v0, v0, -0x5a30 +0x0000000c: sw ra, 0x14(sp) +0x00000010: sw a0, 0x18(sp) +0x00000014: lui t6, 0x8010 +0x00000018: lw t6, -0x7400(t6) +0x0000001c: lhu t7, 0x9c(v0) +0x00000020: and t8, t6, t7 +0x00000024: beql t8, zero, 0x38 +0x00000028: lh t9, 0x34(v0) +0x0000002c: b 0x70 +0x00000030: addiu v0, zero, 2 +0x00000034: lh t9, 0x34(v0) +0x00000038: lh t0, 0x1b8(a1) +0x0000003c: slt at, t9, t0 +0x00000040: beqz at, 0x50 +0x00000044: nop +0x00000048: b 0x70 +0x0000004c: addiu v0, zero, 4 +0x00000050: jal 0x71420 +0x00000054: addiu a0, zero, 0x3e +0x00000058: addiu at, zero, 0xff +0x0000005c: bnel v0, at, 0x70 +0x00000060: addiu v0, zero, 1 +0x00000064: b 0x70 +0x00000068: move v0, zero +0x0000006c: addiu v0, zero, 1 +0x00000070: lw ra, 0x14(sp) +0x00000074: addiu sp, sp, 0x18 +0x00000078: jr ra +0x0000007c: nop + + +func_0x00C00DA0: +0x00000000: addiu sp, sp, -0x18 +0x00000004: lui v1, 0x8012 +0x00000008: addiu v1, v1, -0x5a30 ; v1 = save context +0x0000000c: sw ra, 0x14(sp) +0x00000010: sw a0, 0x18(sp) +0x00000014: lw t6, 4(v1) ; t6 = age +0x00000018: addiu at, zero, 5 ; at = 5 +0x0000001c: addiu v0, zero, 0x11 ; v0 = 0x11 +0x00000020: beqz t6, 0x30 ; if adult +0x00000024: lui t7, 0x8010 +0x00000028: b 0x30 ; if child, return v0 = 5 +0x0000002c: addiu v0, zero, 5 + +0x00000030: bne v0, at, 0x40 ; if 5 != 11??????? +0x00000034: nop +0x00000038: b 0x98 +0x0000003c: addiu v0, zero, 2 ; this is unreachable + +0x00000040: lw t7, -0x73ec(t7) ; fire tunic bitmask +0x00000044: lhu t8, 0x9c(v1) ; t8 = equipment +0x00000048: and t9, t7, t8 ; t9 = has fire tunic +0x0000004c: beql t9, zero, 0x60 ; if not has fire tunic +0x00000050: lh t0, 0x34(v1) ; t0 = rupees +0x00000054: b 0x98 ; if has fire tunic, return v0 = 2 +0x00000058: addiu v0, zero, 2 + +0x0000005c: lh t0, 0x34(v1) ; unreachable + +0x00000060: lh t1, 0x1b8(a1) ; t1 = cost +0x00000064: slt at, t0, t1 ; at = rupees < cost +0x00000068: beqz at, 0x78 +0x0000006c: nop +0x00000070: b 0x98 +0x00000074: addiu v0, zero, 4 +0x00000078: jal 0x71420 +0x0000007c: addiu a0, zero, 0x42 +0x00000080: addiu at, zero, 0xff +0x00000084: bnel v0, at, 0x98 +0x00000088: addiu v0, zero, 1 +0x0000008c: b 0x98 +0x00000090: move v0, zero +0x00000094: addiu v0, zero, 1 +0x00000098: lw ra, 0x14(sp) +0x0000009c: addiu sp, sp, 0x18 +0x000000a0: jr ra +0x000000a4: nop + + +func_0x00C00E48: +0x00000000: addiu sp, sp, -0x18 +0x00000004: lui v1, 0x8012 +0x00000008: addiu v1, v1, -0x5a30 +0x0000000c: sw ra, 0x14(sp) +0x00000010: sw a0, 0x18(sp) +0x00000014: lw t6, 4(v1) +0x00000018: addiu at, zero, 5 +0x0000001c: addiu v0, zero, 0x11 +0x00000020: beqz t6, 0x30 +0x00000024: lui t7, 0x8010 +0x00000028: b 0x30 +0x0000002c: addiu v0, zero, 5 +0x00000030: bne v0, at, 0x40 +0x00000034: nop +0x00000038: b 0x98 +0x0000003c: addiu v0, zero, 2 +0x00000040: lw t7, -0x73e8(t7) +0x00000044: lhu t8, 0x9c(v1) +0x00000048: and t9, t7, t8 +0x0000004c: beql t9, zero, 0x60 +0x00000050: lh t0, 0x34(v1) +0x00000054: b 0x98 +0x00000058: addiu v0, zero, 2 +0x0000005c: lh t0, 0x34(v1) +0x00000060: lh t1, 0x1b8(a1) +0x00000064: slt at, t0, t1 +0x00000068: beqz at, 0x78 +0x0000006c: nop +0x00000070: b 0x98 +0x00000074: addiu v0, zero, 4 +0x00000078: jal 0x71420 +0x0000007c: addiu a0, zero, 0x43 +0x00000080: addiu at, zero, 0xff +0x00000084: bnel v0, at, 0x98 +0x00000088: addiu v0, zero, 1 +0x0000008c: b 0x98 +0x00000090: move v0, zero +0x00000094: addiu v0, zero, 1 +0x00000098: lw ra, 0x14(sp) +0x0000009c: addiu sp, sp, 0x18 +0x000000a0: jr ra +0x000000a4: nop + + +func_0x00C00EF0: +0x00000000: lui v0, 0x8012 +0x00000004: addiu v0, v0, -0x5a30 +0x00000008: sw a0, (sp) +0x0000000c: lh t6, 0x30(v0) +0x00000010: lh t7, 0x2e(v0) +0x00000014: bnel t6, t7, 0x28 +0x00000018: lh t8, 0x34(v0) +0x0000001c: jr ra +0x00000020: addiu v0, zero, 2 +0x00000024: lh t8, 0x34(v0) +0x00000028: lh t9, 0x1b8(a1) +0x0000002c: addiu v0, zero, 1 +0x00000030: slt at, t8, t9 +0x00000034: beqz at, 0x44 +0x00000038: nop +0x0000003c: jr ra +0x00000040: addiu v0, zero, 4 +0x00000044: jr ra +0x00000048: nop + +------------------------------------------------------------------------------------------------------------ +func_0x00C00F3C: +0x00000000: addiu sp, sp, -0x18 +0x00000004: sw ra, 0x14(sp) +0x00000008: sw a0, 0x18(sp) +0x0000000c: lui t6, 0x8012 +0x00000010: lh t6, -0x59fc(t6) +0x00000014: lh t7, 0x1b8(a1) +0x00000018: slt at, t6, t7 +0x0000001c: beqz at, 0x2c +0x00000020: nop +0x00000024: b 0x4c +0x00000028: addiu v0, zero, 4 +0x0000002c: jal 0x71420 +0x00000030: addiu a0, zero, 0x1a +0x00000034: addiu at, zero, 0xff +0x00000038: bnel v0, at, 0x4c +0x0000003c: addiu v0, zero, 1 +0x00000040: b 0x4c +0x00000044: move v0, zero +0x00000048: addiu v0, zero, 1 +0x0000004c: lw ra, 0x14(sp) +0x00000050: addiu sp, sp, 0x18 +0x00000054: jr ra +0x00000058: nop + + +func_0x00C00F98: +0x00000000: addiu sp, sp, -0x18 +0x00000004: sw ra, 0x14(sp) +0x00000008: sw a0, 0x18(sp) +0x0000000c: lui t6, 0x8012 +0x00000010: lh t6, -0x59fc(t6) +0x00000014: lh t7, 0x1b8(a1) +0x00000018: slt at, t6, t7 +0x0000001c: beqz at, 0x2c +0x00000020: nop +0x00000024: b 0x4c +0x00000028: addiu v0, zero, 4 +0x0000002c: jal 0x71420 +0x00000030: addiu a0, zero, 0x23 +0x00000034: addiu at, zero, 0xff +0x00000038: bnel v0, at, 0x4c +0x0000003c: addiu v0, zero, 1 +0x00000040: b 0x4c +0x00000044: move v0, zero +0x00000048: addiu v0, zero, 1 +0x0000004c: lw ra, 0x14(sp) +0x00000050: addiu sp, sp, 0x18 +0x00000054: jr ra +0x00000058: nop + + +func_0x00C00FF4: +0x00000000: sw a0, (sp) +0x00000004: sw a1, 4(sp) +0x00000008: addiu v0, zero, 4 +0x0000000c: jr ra +0x00000010: nop + + +func_0x00C01008: +0x00000000: sw a0, (sp) +0x00000004: sw a1, 4(sp) +0x00000008: addiu v0, zero, 4 +0x0000000c: jr ra +0x00000010: nop + + +func_0x00C0101C: +0x00000000: addiu sp, sp, -0x18 +0x00000004: lui v0, 0x8012 +0x00000008: addiu v0, v0, -0x5a30 ;v0 = save +0x0000000c: sw ra, 0x14(sp) +0x00000010: sw a0, 0x18(sp) +0x00000014: lui t6, 0x8010 +0x00000018: lbu t6, -0x70c3(t6) ; t6 = bombchu slot id +0x0000001c: addu t7, v0, t6 ; t7 = save + bomchu slot id +0x00000020: lb t8, 0x8c(t7) ; t8 = bombchu count +0x00000024: slti at, t8, 0x32 +0x00000028: bnezl at, 0x3c ; if bombchu count < 50 +0x0000002c: lh t9, 0x34(v0) ; t9 = rupees +0x00000030: b 0x74 +0x00000034: addiu v0, zero, 2 ; if bombchu count >= 50, return v0 = 2 + +0x00000038: lh t9, 0x34(v0) ; unreachable + +0x0000003c: lh t0, 0x1b8(a1) ; t0 = cost +0x00000040: slt at, t9, t0 +0x00000044: beqz at, 0x54 ; if rupees < cost +0x00000048: nop +0x0000004c: b 0x74 +0x00000050: addiu v0, zero, 4 ; if rupees < cost return v0 = 4 + +0x00000054: jal 0x71420 ; v0 = bombchu item slot +0x00000058: addiu a0, zero, 9 +0x0000005c: addiu at, zero, 0xff +0x00000060: bnel v0, at, 0x74 ; if no bombchu item +0x00000064: addiu v0, zero, 1 ; if bombchu item, return v0 = 1 +0x00000068: b 0x74 +0x0000006c: move v0, zero ; if not bombchu item, return v0 = 0 + +0x00000070: addiu v0, zero, 1 ; unreachable + +0x00000074: lw ra, 0x14(sp) +0x00000078: addiu sp, sp, 0x18 +0x0000007c: jr ra +0x00000080: nop + + +func_0x00C010A0: +0x00000000: addiu sp, sp, -0x18 +0x00000004: lui v0, 0x8012 +0x00000008: addiu v0, v0, -0x5a30 ; v0 = save +0x0000000c: sw ra, 0x14(sp) +0x00000010: sw a0, 0x18(sp) +0x00000014: lui t0, 0x8010 +0x00000018: lw t0, -0x736c(t0) ; t0 = ?? +0x0000001c: lw t9, 0xa0(v0) ; t9 = equipment +0x00000020: lui t2, 0x8010 +0x00000024: lbu t2, -0x7337(t2) ; t2 = ?? +0x00000028: lui t6, 0x8010 +0x0000002c: lbu t6, -0x70c6(t6) ; t6 = ?? +0x00000030: and t1, t9, t0 ; t1 = equipment & t0 +0x00000034: srav t3, t1, t2 ; t3 = t1 >> t2 +0x00000038: sll t4, t3, 1 ; t4 = t3 << 1 +0x0000003c: lui t5, 0x8010 +0x00000040: addu t5, t5, t4 +0x00000044: addu t7, v0, t6 ; t7 = save + ?? +0x00000048: lb t8, 0x8c(t7) ; t8 = ammo +0x0000004c: lhu t5, -0x730c(t5) ; t5 = max_ammo +0x00000050: slt at, t8, t5 +0x00000054: bnezl at, 0x68 ; if ammo < max_ammo +0x00000058: lh t6, 0x34(v0) ; t6 = rupees + 0x0000005c: b 0xa0 + 0x00000060: addiu v0, zero, 2 ; return 2 +0x00000064: lh t6, 0x34(v0) ; unreachable + +0x00000068: lh t7, 0x1b8(a1) ; t7 = cost +0x0000006c: slt at, t6, t7 +0x00000070: beqz at, 0x80 ; if rupee < cost +0x00000074: nop + 0x00000078: b 0xa0 + 0x0000007c: addiu v0, zero, 4 ; return 4 +0x00000080: jal 0x71420 ; v0 = item in deku seed slot +0x00000084: addiu a0, zero, 0x58 ; a0 = deku seeds +0x00000088: addiu at, zero, 0xff +0x0000008c: bnel v0, at, 0xa0 ; if no item +0x00000090: addiu v0, zero, 1 + 0x00000094: b 0xa0 + 0x00000098: move v0, zero ; return 0 +0x0000009c: addiu v0, zero, 1 ; return 1 +0x000000a0: lw ra, 0x14(sp) +0x000000a4: addiu sp, sp, 0x18 +0x000000a8: jr ra +0x000000ac: nop + + +func_0x00C01150: +0x00000000: sw a0, (sp) +0x00000004: sw a1, 4(sp) +0x00000008: addiu v0, zero, 5 +0x0000000c: jr ra +0x00000010: nop + + +func_0x00C01164: +0x00000000: addiu sp, sp, -0x18 +0x00000004: sw ra, 0x14(sp) +0x00000008: sw a0, 0x18(sp) +0x0000000c: sw a1, 0x1c(sp) +0x00000010: jal 0x71a94 +0x00000014: nop +0x00000018: bnez v0, 0x28 +0x0000001c: lw t7, 0x1c(sp) +0x00000020: b 0x68 +0x00000024: addiu v0, zero, 3 +0x00000028: lui t6, 0x8012 +0x0000002c: lh t6, -0x59fc(t6) +0x00000030: lh t8, 0x1b8(t7) +0x00000034: slt at, t6, t8 +0x00000038: beqz at, 0x48 +0x0000003c: nop +0x00000040: b 0x68 +0x00000044: addiu v0, zero, 4 +0x00000048: jal 0x71420 +0x0000004c: addiu a0, zero, 0x1c +0x00000050: addiu at, zero, 0xff +0x00000054: bnel v0, at, 0x68 +0x00000058: addiu v0, zero, 1 +0x0000005c: b 0x68 +0x00000060: move v0, zero +0x00000064: addiu v0, zero, 1 +0x00000068: lw ra, 0x14(sp) +0x0000006c: addiu sp, sp, 0x18 +0x00000070: jr ra +0x00000074: nop + + +func_0x00C011DC: +0x00000000: addiu sp, sp, -0x18 +0x00000004: sw ra, 0x14(sp) +0x00000008: sw a0, 0x18(sp) +0x0000000c: sw a1, 0x1c(sp) +0x00000010: jal 0x71a94 +0x00000014: nop +0x00000018: bnez v0, 0x28 +0x0000001c: lw t7, 0x1c(sp) +0x00000020: b 0x68 +0x00000024: addiu v0, zero, 3 +0x00000028: lui t6, 0x8012 +0x0000002c: lh t6, -0x59fc(t6) +0x00000030: lh t8, 0x1b8(t7) +0x00000034: slt at, t6, t8 +0x00000038: beqz at, 0x48 +0x0000003c: nop +0x00000040: b 0x68 +0x00000044: addiu v0, zero, 4 +0x00000048: jal 0x71420 +0x0000004c: addiu a0, zero, 0x1d +0x00000050: addiu at, zero, 0xff +0x00000054: bnel v0, at, 0x68 +0x00000058: addiu v0, zero, 1 +0x0000005c: b 0x68 +0x00000060: move v0, zero +0x00000064: addiu v0, zero, 1 +0x00000068: lw ra, 0x14(sp) +0x0000006c: addiu sp, sp, 0x18 +0x00000070: jr ra +0x00000074: nop + + +func_0x00C01254: +0x00000000: addiu sp, sp, -0x18 +0x00000004: sw ra, 0x14(sp) +0x00000008: sw a0, 0x18(sp) +0x0000000c: sw a1, 0x1c(sp) +0x00000010: jal 0x71a94 +0x00000014: nop +0x00000018: bnez v0, 0x28 +0x0000001c: lw t7, 0x1c(sp) +0x00000020: b 0x68 +0x00000024: addiu v0, zero, 3 +0x00000028: lui t6, 0x8012 +0x0000002c: lh t6, -0x59fc(t6) +0x00000030: lh t8, 0x1b8(t7) +0x00000034: slt at, t6, t8 +0x00000038: beqz at, 0x48 +0x0000003c: nop +0x00000040: b 0x68 +0x00000044: addiu v0, zero, 4 +0x00000048: jal 0x71420 +0x0000004c: addiu a0, zero, 0x20 +0x00000050: addiu at, zero, 0xff +0x00000054: bnel v0, at, 0x68 +0x00000058: addiu v0, zero, 1 +0x0000005c: b 0x68 +0x00000060: move v0, zero +0x00000064: addiu v0, zero, 1 +0x00000068: lw ra, 0x14(sp) +0x0000006c: addiu sp, sp, 0x18 +0x00000070: jr ra +0x00000074: nop + + +func_0x00C012CC: +0x00000000: addiu sp, sp, -0x18 +0x00000004: sw ra, 0x14(sp) +0x00000008: sw a0, 0x18(sp) +0x0000000c: sw a1, 0x1c(sp) +0x00000010: jal 0x71a94 +0x00000014: nop +0x00000018: bnez v0, 0x28 +0x0000001c: lw t7, 0x1c(sp) +0x00000020: b 0x68 +0x00000024: addiu v0, zero, 3 +0x00000028: lui t6, 0x8012 +0x0000002c: lh t6, -0x59fc(t6) +0x00000030: lh t8, 0x1b8(t7) +0x00000034: slt at, t6, t8 +0x00000038: beqz at, 0x48 +0x0000003c: nop +0x00000040: b 0x68 +0x00000044: addiu v0, zero, 4 +0x00000048: jal 0x71420 +0x0000004c: addiu a0, zero, 0x18 +0x00000050: addiu at, zero, 0xff +0x00000054: bnel v0, at, 0x68 +0x00000058: addiu v0, zero, 1 +0x0000005c: b 0x68 +0x00000060: move v0, zero +0x00000064: addiu v0, zero, 1 +0x00000068: lw ra, 0x14(sp) +0x0000006c: addiu sp, sp, 0x18 +0x00000070: jr ra +0x00000074: nop + + + + + + + + + + + + + + +------------------------------------------------------------------------------------------------------------ +Function_3 +------------------------------------------------------------------------------------------------------------ +;a0 = global context +;a1 = actor +;-------- +;none +func_0x00C01344: +0x00000000: addiu $sp, $sp, -0x18 +0x00000004: sw $ra, 0x14($sp) +0x00000008: sw $a0, 0x18($sp) +0x0000000c: sw $a1, 0x1c($sp) +0x00000010: lw $t6, 0x1c($sp) ; t6 = actor +0x00000014: addiu $a0, $zero, 3 ; a0 = 3 +0x00000018: jal 0x721f4 ; ? +0x0000001c: lh $a1, 0x1ba($t6) ; a1 = count +; subtract money +0x00000020: lw $t7, 0x1c($sp) ; t7 = actor +0x00000024: lh $a0, 0x1b8($t7) ; a0 = cost +0x00000028: negu $a0, $a0 ; +0x0000002c: sll $a0, $a0, 0x10 +0x00000030: jal 0x721cc +0x00000034: sra $a0, $a0, 0x10 ; a0 = -cost +0x00000038: lw $ra, 0x14($sp) +0x0000003c: addiu $sp, $sp, 0x18 +0x00000040: jr $ra +0x00000044: nop + + +func_0x00C0138C: +0x00000000: addiu $sp, $sp, -0x18 +0x00000004: sw $ra, 0x14($sp) +0x00000008: sw $a1, 0x1c($sp) +0x0000000c: lw $t6, 0x1c($sp) ; t6 = actor +0x00000010: addiu $at, $zero, 5 ; at = 5 +0x00000014: lh $v0, 0x1ba($t6) ; v0 = count +0x00000018: beq $v0, $at, 0x40 ; if count = 5 +0x0000001c: addiu $at, $zero, 0xa +0x00000020: beq $v0, $at, 0x50 ; if count = 10 +0x00000024: addiu $at, $zero, 0x14 +0x00000028: beq $v0, $at, 0x60 ; if count = 15 +0x0000002c: addiu $at, $zero, 0x1e +0x00000030: beq $v0, $at, 0x70 ; if count = 20 +0x00000034: nop +0x00000038: b 0x7c ; else give nothing +0x0000003c: lw $t7, 0x1c($sp) +; give bombs +0x00000040: jal 0x6fdcc +0x00000044: addiu $a1, $zero, 0x8e +0x00000048: b 0x7c +0x0000004c: lw $t7, 0x1c($sp) + +0x00000050: jal 0x6fdcc +0x00000054: addiu $a1, $zero, 0x8f +0x00000058: b 0x7c +0x0000005c: lw $t7, 0x1c($sp) + +0x00000060: jal 0x6fdcc +0x00000064: addiu $a1, $zero, 0x90 +0x00000068: b 0x7c +0x0000006c: lw $t7, 0x1c($sp) + +0x00000070: jal 0x6fdcc +0x00000074: addiu $a1, $zero, 0x91 +0x00000078: lw $t7, 0x1c($sp) +; subtract money +0x0000007c: lh $a0, 0x1b8($t7) +0x00000080: negu $a0, $a0 +0x00000084: sll $a0, $a0, 0x10 +0x00000088: jal 0x721cc +0x0000008c: sra $a0, $a0, 0x10 +0x00000090: lw $ra, 0x14($sp) +0x00000094: addiu $sp, $sp, 0x18 +0x00000098: jr $ra +0x0000009c: nop + + +func_0x00C0142C: +0x00000000: addiu $sp, $sp, -0x18 +0x00000004: sw $ra, 0x14($sp) +0x00000008: sw $a1, 0x1c($sp) +0x0000000c: lw $t6, 0x1c($sp) +0x00000010: addiu $at, $zero, 5 +0x00000014: lh $v0, 0x1ba($t6) +0x00000018: beq $v0, $at, 0x30 +0x0000001c: addiu $at, $zero, 0xa +0x00000020: beq $v0, $at, 0x40 +0x00000024: nop +0x00000028: b 0x4c +0x0000002c: lw $t7, 0x1c($sp) +0x00000030: jal 0x6fdcc +0x00000034: addiu $a1, $zero, 0x8c +0x00000038: b 0x4c +0x0000003c: lw $t7, 0x1c($sp) +0x00000040: jal 0x6fdcc +0x00000044: addiu $a1, $zero, 0x8d +0x00000048: lw $t7, 0x1c($sp) +0x0000004c: lh $a0, 0x1b8($t7) +0x00000050: negu $a0, $a0 +0x00000054: sll $a0, $a0, 0x10 +0x00000058: jal 0x721cc +0x0000005c: sra $a0, $a0, 0x10 +0x00000060: lw $ra, 0x14($sp) +0x00000064: addiu $sp, $sp, 0x18 +0x00000068: jr $ra +0x0000006c: nop + + +func_0x00C0149C: +0x00000000: addiu $sp, $sp, -0x18 +0x00000004: sw $ra, 0x14($sp) +0x00000008: sw $a1, 0x1c($sp) +0x0000000c: jal 0x6fdcc +0x00000010: move $a1, $zero +0x00000014: lw $t6, 0x1c($sp) +0x00000018: lh $a0, 0x1b8($t6) +0x0000001c: negu $a0, $a0 +0x00000020: sll $a0, $a0, 0x10 +0x00000024: jal 0x721cc +0x00000028: sra $a0, $a0, 0x10 +0x0000002c: lw $ra, 0x14($sp) +0x00000030: addiu $sp, $sp, 0x18 +0x00000034: jr $ra +0x00000038: nop + + +func_0x00C014D8: +0x00000000: addiu $sp, $sp, -0x18 +0x00000004: sw $ra, 0x14($sp) +0x00000008: sw $a1, 0x1c($sp) +0x0000000c: jal 0x6fad0 +0x00000010: nop +0x00000014: lw $t7, 0x1c($sp) +0x00000018: addiu $t6, $zero, 8 +0x0000001c: lui $at, 0x8012 +0x00000020: sh $t6, -0x59fa($at) +0x00000024: lh $a0, 0x1b8($t7) +0x00000028: negu $a0, $a0 +0x0000002c: sll $a0, $a0, 0x10 +0x00000030: jal 0x721cc +0x00000034: sra $a0, $a0, 0x10 +0x00000038: lw $ra, 0x14($sp) +0x0000003c: addiu $sp, $sp, 0x18 +0x00000040: jr $ra +0x00000044: nop + + +func_0x00C01520: +0x00000000: addiu $sp, $sp, -0x18 +0x00000004: sw $ra, 0x14($sp) +0x00000008: sw $a1, 0x1c($sp) +0x0000000c: jal 0x6fdcc +0x00000010: addiu $a1, $zero, 0x3f +0x00000014: lw $t6, 0x1c($sp) +0x00000018: lh $a0, 0x1b8($t6) +0x0000001c: negu $a0, $a0 +0x00000020: sll $a0, $a0, 0x10 +0x00000024: jal 0x721cc +0x00000028: sra $a0, $a0, 0x10 +0x0000002c: lw $ra, 0x14($sp) +0x00000030: addiu $sp, $sp, 0x18 +0x00000034: jr $ra +0x00000038: nop + + +func_0x00C0155C: +0x00000000: addiu $sp, $sp, -0x18 +0x00000004: sw $ra, 0x14($sp) +0x00000008: sw $a1, 0x1c($sp) +0x0000000c: jal 0x6fdcc +0x00000010: addiu $a1, $zero, 0x3e +0x00000014: lw $t6, 0x1c($sp) +0x00000018: lh $a0, 0x1b8($t6) +0x0000001c: negu $a0, $a0 +0x00000020: sll $a0, $a0, 0x10 +0x00000024: jal 0x721cc +0x00000028: sra $a0, $a0, 0x10 +0x0000002c: lw $ra, 0x14($sp) +0x00000030: addiu $sp, $sp, 0x18 +0x00000034: jr $ra +0x00000038: nop + + +func_0x00C01598: +0x00000000: addiu $sp, $sp, -0x18 +0x00000004: sw $ra, 0x14($sp) +0x00000008: sw $a1, 0x1c($sp) +0x0000000c: jal 0x6fdcc ; give goron tunic +0x00000010: addiu $a1, $zero, 0x42 ; a1 = goron tunic item +; subtract money +0x00000014: lw $t6, 0x1c($sp) ; t6 = actor +0x00000018: lh $a0, 0x1b8($t6) ; a0 = cost +0x0000001c: negu $a0, $a0 +0x00000020: sll $a0, $a0, 0x10 +0x00000024: jal 0x721cc +0x00000028: sra $a0, $a0, 0x10 +0x0000002c: lw $ra, 0x14($sp) +0x00000030: addiu $sp, $sp, 0x18 +0x00000034: jr $ra +0x00000038: nop + + +func_0x00C015D4: +0x00000000: addiu $sp, $sp, -0x18 +0x00000004: sw $ra, 0x14($sp) +0x00000008: sw $a1, 0x1c($sp) +0x0000000c: jal 0x6fdcc +0x00000010: addiu $a1, $zero, 0x43 +0x00000014: lw $t6, 0x1c($sp) +0x00000018: lh $a0, 0x1b8($t6) +0x0000001c: negu $a0, $a0 +0x00000020: sll $a0, $a0, 0x10 +0x00000024: jal 0x721cc +0x00000028: sra $a0, $a0, 0x10 +0x0000002c: lw $ra, 0x14($sp) +0x00000030: addiu $sp, $sp, 0x18 +0x00000034: jr $ra +0x00000038: nop + + +func_0x00C01610: +0x00000000: addiu $sp, $sp, -0x18 +0x00000004: sw $ra, 0x14($sp) +0x00000008: sw $a1, 0x1c($sp) +0x0000000c: lw $t6, 0x1c($sp) +0x00000010: jal 0x720bc +0x00000014: lh $a1, 0x1ba($t6) +0x00000018: lw $t7, 0x1c($sp) +0x0000001c: lh $a0, 0x1b8($t7) +0x00000020: negu $a0, $a0 +0x00000024: sll $a0, $a0, 0x10 +0x00000028: jal 0x721cc +0x0000002c: sra $a0, $a0, 0x10 +0x00000030: lw $ra, 0x14($sp) +0x00000034: addiu $sp, $sp, 0x18 +0x00000038: jr $ra +0x0000003c: nop + + +func_0x00C01650: +0x00000000: addiu $sp, $sp, -0x18 +0x00000004: sw $ra, 0x14($sp) +0x00000008: sw $a1, 0x1c($sp) +0x0000000c: jal 0x6fdcc +0x00000010: addiu $a1, $zero, 0x1a +0x00000014: lw $t6, 0x1c($sp) +0x00000018: lh $a0, 0x1b8($t6) +0x0000001c: negu $a0, $a0 +0x00000020: sll $a0, $a0, 0x10 +0x00000024: jal 0x721cc +0x00000028: sra $a0, $a0, 0x10 +0x0000002c: lw $ra, 0x14($sp) +0x00000030: addiu $sp, $sp, 0x18 +0x00000034: jr $ra +0x00000038: nop + + +func_0x00C0168C: +0x00000000: addiu $sp, $sp, -0x18 +0x00000004: sw $ra, 0x14($sp) +0x00000008: sw $a1, 0x1c($sp) +0x0000000c: jal 0x6fdcc +0x00000010: addiu $a1, $zero, 0x21 +0x00000014: lw $t6, 0x1c($sp) +0x00000018: lh $a0, 0x1b8($t6) +0x0000001c: negu $a0, $a0 +0x00000020: sll $a0, $a0, 0x10 +0x00000024: jal 0x721cc +0x00000028: sra $a0, $a0, 0x10 +0x0000002c: lw $ra, 0x14($sp) +0x00000030: addiu $sp, $sp, 0x18 +0x00000034: jr $ra +0x00000038: nop + + +func_0x00C016C8: +0x00000000: addiu $sp, $sp, -0x18 +0x00000004: sw $ra, 0x14($sp) +0x00000008: sw $a0, 0x18($sp) +0x0000000c: lh $a0, 0x1b8($a1) +0x00000010: negu $a0, $a0 +0x00000014: sll $a0, $a0, 0x10 +0x00000018: jal 0x721cc +0x0000001c: sra $a0, $a0, 0x10 +0x00000020: lw $ra, 0x14($sp) +0x00000024: addiu $sp, $sp, 0x18 +0x00000028: jr $ra +0x0000002c: nop + + +func_0x00C016F8: +0x00000000: addiu $sp, $sp, -0x18 +0x00000004: sw $ra, 0x14($sp) +0x00000008: sw $a0, 0x18($sp) +0x0000000c: lh $a0, 0x1b8($a1) +0x00000010: negu $a0, $a0 +0x00000014: sll $a0, $a0, 0x10 +0x00000018: jal 0x721cc +0x0000001c: sra $a0, $a0, 0x10 +0x00000020: lw $ra, 0x14($sp) +0x00000024: addiu $sp, $sp, 0x18 +0x00000028: jr $ra +0x0000002c: nop + + +func_0x00C01728: +0x00000000: addiu $sp, $sp, -0x18 +0x00000004: sw $ra, 0x14($sp) +0x00000008: sw $a1, 0x1c($sp) +0x0000000c: jal 0x6fdcc +0x00000010: addiu $a1, $zero, 0x95 +0x00000014: lw $t6, 0x1c($sp) +0x00000018: lh $a0, 0x1b8($t6) +0x0000001c: negu $a0, $a0 +0x00000020: sll $a0, $a0, 0x10 +0x00000024: jal 0x721cc +0x00000028: sra $a0, $a0, 0x10 +0x0000002c: lw $ra, 0x14($sp) +0x00000030: addiu $sp, $sp, 0x18 +0x00000034: jr $ra +0x00000038: nop + + +func_0x00C01764: +0x00000000: addiu $sp, $sp, -0x18 +0x00000004: sw $ra, 0x14($sp) +0x00000008: sw $a1, 0x1c($sp) +0x0000000c: lw $t6, 0x1c($sp) +0x00000010: lh $v0, 0x1c($t6) +0x00000014: slti $at, $v0, 0xa +0x00000018: bnez $at, 0x5c +0x0000001c: addiu $t7, $v0, -0x27 +0x00000020: slti $at, $v0, 0xb +0x00000024: bnez $at, 0x48 +0x00000028: sltiu $at, $t7, 5 +0x0000002c: beqz $at, 0x108 +0x00000030: sll $t7, $t7, 2 +0x00000034: lui $at, 0x8086 +0x00000038: addu $at, $at, $t7 +0x0000003c: lw $t7, 0x5070($at) +0x00000040: jr $t7 +0x00000044: nop +0x00000048: addiu $at, $zero, 0xa +0x0000004c: beq $v0, $at, 0xb0 +0x00000050: nop +0x00000054: b 0x10c +0x00000058: lw $t8, 0x1c($sp) +0x0000005c: addiu $at, $zero, 7 +0x00000060: beq $v0, $at, 0x80 +0x00000064: addiu $at, $zero, 8 +0x00000068: beq $v0, $at, 0x90 +0x0000006c: addiu $at, $zero, 9 +0x00000070: beq $v0, $at, 0xa0 +0x00000074: nop +0x00000078: b 0x10c +0x0000007c: lw $t8, 0x1c($sp) +; give item +0x00000080: jal 0x6fdcc +0x00000084: addiu $a1, $zero, 0x19 +0x00000088: b 0x10c +0x0000008c: lw $t8, 0x1c($sp) +0x00000090: jal 0x6fdcc +0x00000094: addiu $a1, $zero, 0x15 +0x00000098: b 0x10c +0x0000009c: lw $t8, 0x1c($sp) +0x000000a0: jal 0x6fdcc +0x000000a4: addiu $a1, $zero, 0x16 +0x000000a8: b 0x10c +0x000000ac: lw $t8, 0x1c($sp) +0x000000b0: jal 0x6fdcc +0x000000b4: addiu $a1, $zero, 0x17 +0x000000b8: b 0x10c +0x000000bc: lw $t8, 0x1c($sp) +0x000000c0: jal 0x6fdcc +0x000000c4: addiu $a1, $zero, 0x1c +0x000000c8: b 0x10c +0x000000cc: lw $t8, 0x1c($sp) +0x000000d0: jal 0x6fdcc +0x000000d4: addiu $a1, $zero, 0x1d +0x000000d8: b 0x10c +0x000000dc: lw $t8, 0x1c($sp) +0x000000e0: jal 0x6fdcc +0x000000e4: addiu $a1, $zero, 0x1e +0x000000e8: b 0x10c +0x000000ec: lw $t8, 0x1c($sp) +0x000000f0: jal 0x6fdcc +0x000000f4: addiu $a1, $zero, 0x20 +0x000000f8: b 0x10c +0x000000fc: lw $t8, 0x1c($sp) +0x00000100: jal 0x6fdcc +0x00000104: addiu $a1, $zero, 0x18 +;subtract money +0x00000108: lw $t8, 0x1c($sp) +0x0000010c: lh $a0, 0x1b8($t8) +0x00000110: negu $a0, $a0 +0x00000114: sll $a0, $a0, 0x10 +0x00000118: jal 0x721cc +0x0000011c: sra $a0, $a0, 0x10 +0x00000120: lw $ra, 0x14($sp) +0x00000124: addiu $sp, $sp, 0x18 +0x00000128: jr $ra +0x0000012c: nop + + + + + + + + + + + + + + + + + + + + + + + + + +------------------------------------------------------------------------------------------------------------ +Function_4 +------------------------------------------------------------------------------------------------------------ +;called when item is bought +;a0 = ??? +;a1 = actor +;----- +;no return +func_0x00C01894: +0x00000000: addiu sp, sp, -0x18 +0x00000004: sw ra, 0x14(sp) +0x00000008: sw a0, 0x18(sp) +0x0000000c: lh t6, 0x1c(a1) ; t6 = actor variable +0x00000010: addiu at, zero, 0xc ; at = 0xc +0x00000014: lui t7, 0x8012 +0x00000018: bnel t6, at, 0x80 ; if var != 0xC Hylian Shield +0x0000001c: lh a0, 0x1b8(a1) ; a0 = cost + +0x00000020: lhu t7, -0x4b2a(t7) ; t7 = ??? +0x00000024: lui at, 0x8086 +0x00000028: andi t8, t7, 0x40 ; t8 = t7 & 0x40 +0x0000002c: beql t8, zero, 0x80 ; if not t8flag +0x00000030: lh a0, 0x1b8(a1) + +; hylian shield discount? +0x00000034: lwc1 f12, 0x5084(at) ; f12 = ??? +0x00000038: jal 0x26d64 +0x0000003c: sw a1, 0x1c(sp) +0x00000040: trunc.w.s f4, f0 +0x00000044: lw a1, 0x1c(sp) +0x00000048: lui t3, 0x8086 +0x0000004c: mfc1 t1, f4 +0x00000050: lh t9, 0x1b8(a1) +0x00000054: sll t2, t1, 1 +0x00000058: addu t3, t3, t2 +0x0000005c: lh t3, 0x502c(t3) +0x00000060: subu a0, t9, t3 +0x00000064: negu a0, a0 +0x00000068: sll a0, a0, 0x10 +0x0000006c: jal 0x721cc +0x00000070: sra a0, a0, 0x10 +0x00000074: b 0x94 +0x00000078: lw ra, 0x14(sp) + +0x0000007c: lh a0, 0x1b8(a1) ; unreachable +; subtract money +0x00000080: negu a0, a0 +0x00000084: sll a0, a0, 0x10 +0x00000088: jal 0x721cc +0x0000008c: sra a0, a0, 0x10 +0x00000090: lw ra, 0x14(sp) +0x00000094: addiu sp, sp, 0x18 +0x00000098: jr ra +0x0000009c: nop + +func_0x00C01934: +0x00000000: addiu sp, sp, -0x1b +0x00000004: sw ra, 0x14(sp) +0x00000008: sw a0, 0x18(sp) +0x0000000c: lh a0, 0x1b8(a1) ; a0 = *(a1 + 0x1B8) +0x00000010: negu a0, a0 ; a0 = ~a0 +0x00000014: sll a0, a0, 0x10 ; a0 = a0 << 0x10 +0x00000018: jal 0x721cc +0x0000001c: sra a0, a0, 0x10 ; a0 = ~(*(a1 + 0x1B8)) & 0x0000FFFF +0x00000020: lw ra, 0x14(sp) +0x00000024: addiu sp, sp, 0x18 +0x00000028: jr ra +0x0000002c: nop + +func_0x00C01964: +0x00000000: addiu sp, sp, -0x18 +0x00000004: sw ra, 0x14(sp) +0x00000008: sw a0, 0x18(sp) +0x0000000c: lh a0, 0x1b8(a1) +0x00000010: negu a0, a0 +0x00000014: sll a0, a0, 0x10 +0x00000018: jal 0x721cc +0x0000001c: sra a0, a0, 0x10 +0x00000020: lw ra, 0x14(sp) +0x00000024: addiu sp, sp, 0x18 +0x00000028: jr ra +0x0000002c: nop + +func_0x00C01994: +0x00000000: addiu sp, sp, -0x18 +0x00000004: sw ra, 0x14(sp) +0x00000008: sw a0, 0x18(sp) +0x0000000c: lh t6, 0x1c(a1) ; t6 = actor variable +0x00000010: addiu t7, t6, -0x15 ; t7 = t6 - 0x15 (bombchu index) +0x00000014: sltiu at, t7, 8 ; at = t7 < 8 +0x00000018: beqz at, 0xf0 ; if 0 >= bombchu index > 8 (not bombchu panic handler) +0x0000001c: sll t7, t7, 2 ; t7 = bombchu index << 2 +0x00000020: lui at, 0x8086 +0x00000024: addu at, at, t7 +0x00000028: lw t7, 0x5088(at) ; t7 = (??? + bombchu index) +0x0000002c: jr t7 ; jump to t7 +0x00000030: nop + +0x00000034: lui v0, 0x8012 +0x00000038: addiu v0, v0, -0x5a30 ; v0 = save context +0x0000003c: lhu t8, 0xef0(v0) ; t8 = item_get_flags +0x00000040: ori t9, t8, 0x40 ; t9 = t8 | bombchu_shot_slot_flag +0x00000044: b 0xf0 +0x00000048: sh t9, 0xef0(v0) ; + +0x0000004c: lui v0, 0x8012 +0x00000050: addiu v0, v0, -0x5a30 +0x00000054: lhu t0, 0xef0(v0) +0x00000058: ori t1, t0, 0x80 +0x0000005c: b 0xf0 +0x00000060: sh t1, 0xef0(v0) + +0x00000064: lui v0, 0x8012 +0x00000068: addiu v0, v0, -0x5a30 +0x0000006c: lhu t2, 0xef0(v0) +0x00000070: ori t3, t2, 0x100 +0x00000074: b 0xf0 +0x00000078: sh t3, 0xef0(v0) + +0x0000007c: lui v0, 0x8012 +0x00000080: addiu v0, v0, -0x5a30 +0x00000084: lhu t4, 0xef0(v0) +0x00000088: ori t5, t4, 0x200 +0x0000008c: b 0xf0 +0x00000090: sh t5, 0xef0(v0) + +0x00000094: lui v0, 0x8012 +0x00000098: addiu v0, v0, -0x5a30 +0x0000009c: lhu t6, 0xef0(v0) +0x000000a0: ori t7, t6, 0x400 +0x000000a4: b 0xf0 +0x000000a8: sh t7, 0xef0(v0) + +0x000000ac: lui v0, 0x8012 +0x000000b0: addiu v0, v0, -0x5a30 +0x000000b4: lhu t8, 0xef0(v0) +0x000000b8: ori t9, t8, 8 +0x000000bc: b 0xf0 +0x000000c0: sh t9, 0xef0(v0) + +0x000000c4: lui v0, 0x8012 +0x000000c8: addiu v0, v0, -0x5a30 +0x000000cc: lhu t0, 0xef0(v0) +0x000000d0: ori t1, t0, 0x10 +0x000000d4: b 0xf0 +0x000000d8: sh t1, 0xef0(v0) + +0x000000dc: lui v0, 0x8012 +0x000000e0: addiu v0, v0, -0x5a30 +0x000000e4: lhu t2, 0xef0(v0) +0x000000e8: ori t3, t2, 0x20 +0x000000ec: sh t3, 0xef0(v0) + +; subtract money +0x000000f0: lh a0, 0x1b8(a1) +0x000000f4: negu a0, a0 +0x000000f8: sll a0, a0, 0x10 +0x000000fc: jal 0x721cc +0x00000100: sra a0, a0, 0x10 +0x00000104: lw ra, 0x14(sp) +0x00000108: addiu sp, sp, 0x18 +0x0000010c: jr ra +0x00000110: nop + + +ext_func_0x721cc: ; add money +0x00000000: sw a0, (sp) +0x00000004: sll a0, a0, 0x10 +0x00000008: lui v0, 0x8012 +0x0000000c: addiu v0, v0, -0x5a30 +0x00000010: sra a0, a0, 0x10 +0x00000014: lh t6, 0x13cc(v0) +0x00000018: addu t7, t6, a0 +0x0000001c: sh t7, 0x13cc(v0) +0x00000020: jr ra +0x00000024: nop \ No newline at end of file diff --git a/OcarinaSongs.py b/OcarinaSongs.py index dc1a23670..f0c2b921f 100644 --- a/OcarinaSongs.py +++ b/OcarinaSongs.py @@ -320,4 +320,59 @@ def replace_songs(rom, scarecrow_song=None): # write the songs to the playback table song_offset = PLAYBACK_START + song_order[index] * PLAYBACK_LENGTH - rom.write_bytes(song_offset, song.playback_data) \ No newline at end of file + rom.write_bytes(song_offset, song.playback_data) + + +original_songs = [ + 'LURLUR', + 'ULRULR', + 'DRLDRL', + 'RDURDU', + 'RADRAD', + 'ADUADU', + 'AULRLR', + 'DADALDLD', + 'ADRRL', + 'ADALDA', + 'LRRALRD', + 'URURLU' +] + +note_map = { + 'A': 0, + 'D': 1, + 'R': 2, + 'L': 3, + 'U': 4 +} + +def verify_scarecrow_song_str(scarecrow_song_str:str, randomize_ocarina_songs:bool): + + if len(scarecrow_song_str) != 8: + raise Exception('Scarecrow Song must be 8 notes long') + + if len(set(scarecrow_song_str.upper())) == 1: + raise Exception('Scarecrow Song must contain at least two different notes') + + scarecrow_song = str_to_song(scarecrow_song_str) + + if not randomize_ocarina_songs: + for original_song in original_songs: + song_notes = [] + for c in original_song: + song_notes.append(note_map[c]) + song = Song(activation=song_notes) + + if subsong(scarecrow_song, song): + raise Exception('You may not have the Scarecrow Song contain an existing song') + + return scarecrow_song + +def str_to_song(song:str): + notes = [] + for c in song.upper(): + if c not in note_map: + raise Exception('Invalid note %s. Valid notes are A, D, R, L, U' % c) + + notes.append(note_map[c]) + return Song(activation=notes) \ No newline at end of file diff --git a/OoTRandomizer.py b/OoTRandomizer.py index c798c8198..84b21748c 100644 --- a/OoTRandomizer.py +++ b/OoTRandomizer.py @@ -5,11 +5,12 @@ import random import textwrap import sys +from urllib.error import HTTPError, URLError from Gui import guiMain from Main import main from Utils import is_bundled, close_console, check_version, VersionError -from Rom import get_tunic_color_options, get_navi_color_options +from Patches import get_tunic_color_options, get_navi_color_options from Settings import get_settings_from_command_line_args diff --git a/Patches.py b/Patches.py index 28494f9a1..0eb684ad6 100644 --- a/Patches.py +++ b/Patches.py @@ -1,1705 +1,2000 @@ -import io -import json -import logging -import os -import platform -import struct -import subprocess -import random -import copy - -from Hints import buildGossipHints, buildBossRewardHints, buildGanonText -from Utils import local_path, default_output_path -from Items import ItemFactory, item_data -from Messages import * -from OcarinaSongs import Song, replace_songs, subsong -from MQ import patch_files - -TunicColors = { - "Kokiri Green": [0x1E, 0x69, 0x1B], - "Goron Red": [0x64, 0x14, 0x00], - "Zora Blue": [0x00, 0x3C, 0x64], - "Black": [0x30, 0x30, 0x30], - "White": [0xF0, 0xF0, 0xFF], - "Purple": [0x95, 0x30, 0x80], - "Yellow": [0xE0, 0xD8, 0x60], - "Orange": [0xE0, 0x79, 0x40], - "Pink": [0xFF, 0x90, 0xB3], - "Gray": [0xA0, 0xA0, 0xB0], - "Brown": [0x95, 0x59, 0x0A], - "Gold": [0xD8, 0xB0, 0x60], - "Silver": [0xD0, 0xF0, 0xFF], - "Beige": [0xC0, 0xA0, 0xA0], - "Teal": [0x30, 0xD0, 0xB0], - "Royal Blue": [0x40, 0x00, 0x90], - "Sonic Blue": [0x50, 0x90, 0xE0], - "Blood Red": [0x30, 0x10, 0x10], - "Blood Orange": [0xF0, 0x30, 0x30], - "NES Green": [0x00, 0xD0, 0x00], - "Dark Green": [0x00, 0x25, 0x18], - "Only": [80, 140, 240], -} - -NaviColors = { - "White": [0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00], - "Green": [0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00], - "Light Blue": [0x96, 0x96, 0xFF, 0xFF, 0x96, 0x96, 0xFF, 0x00], - "Yellow": [0xFF, 0xFF, 0x00, 0xFF, 0xC8, 0x9B, 0x00, 0x00], - "Red": [0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00], - "Magenta": [0xFF, 0x00, 0xFF, 0xFF, 0xC8, 0x00, 0x9B, 0x00], - "Black": [0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00], - "Tatl": [0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0x98, 0x00, 0x00], - "Tael": [0x49, 0x14, 0x6C, 0xFF, 0xFF, 0x00, 0x00, 0x00], -} - -def get_tunic_colors(): - return list(TunicColors.keys()) - -def get_tunic_color_options(): - return ["Random Choice", "Completely Random"] + get_tunic_colors() - -def get_navi_colors(): - return list(NaviColors.keys()) - -def get_navi_color_options(): - return ["Random Choice", "Completely Random"] + get_navi_colors() - -def patch_rom(world, rom): - with open(local_path('data/base2current.json'), 'r') as stream: - patches = json.load(stream) - for patch in patches: - if isinstance(patch, dict): - for baseaddress, values in patch.items(): - rom.write_bytes(int(baseaddress), values) - - # Can always return to youth - rom.write_byte(0xCB6844, 0x35) - rom.write_byte(0x253C0E2, 0x03) # Moves sheik from pedestal - - # Fix child shooting gallery reward to be static - rom.write_bytes(0xD35EFC, [0x00, 0x00, 0x00, 0x00]) - - # Fix target in woods reward to be static - rom.write_bytes(0xE59CD4, [0x00, 0x00, 0x00, 0x00]) - - # Fix GS rewards to be static - rom.write_bytes(0xEA3934, [0x00, 0x00, 0x00, 0x00]) - rom.write_bytes(0xEA3940 , [0x10, 0x00]) - - # Fix horseback archery rewards to be static - rom.write_byte(0xE12BA5, 0x00) - rom.write_byte(0xE12ADD, 0x00) - - # Fix adult shooting gallery reward to be static - rom.write_byte(0xD35F55, 0x00) - - # Fix deku theater rewards to be static - rom.write_bytes(0xEC9A7C, [0x00, 0x00, 0x00, 0x00]) #Sticks - rom.write_byte(0xEC9CD5, 0x00) #Nuts - - # Fix deku scrub who sells stick upgrade - rom.write_bytes(0xDF8060, [0x00, 0x00, 0x00, 0x00]) - - # Fix deku scrub who sells nut upgrade - rom.write_bytes(0xDF80D4, [0x00, 0x00, 0x00, 0x00]) - - # Fix rolling goron as child reward to be static - rom.write_bytes(0xED2960, [0x00, 0x00, 0x00, 0x00]) - - # Fix proximity text boxes (Navi) (Part 1) - rom.write_bytes(0xDF8B84, [0x00, 0x00, 0x00, 0x00]) - - # Fix final magic bean to cost 99 - rom.write_byte(0xE20A0F, 0x63) - rom.write_bytes(0x94FCDD, [0x08, 0x39, 0x39]) - - # Remove intro cutscene - rom.write_bytes(0xB06BBA, [0x00, 0x00]) - - # Remove locked door to Boss Key Chest in Fire Temple - rom.write_byte(0x22D82B7, 0x3F) - - if world.bombchus_in_logic: - # Change Bombchu Shop check to bombchus - rom.write_bytes(0xC6CED8, [0x80, 0x8A, 0x00, 0x7C, 0x24, 0x0B, 0x00, 0x09, 0x11, 0x4B, 0x00, 0x05]) - # Change Bombchu Shop to never sell out - rom.write_bytes(0xC019C0, [0x10, 0x00, 0x00, 0x30]) - - # Change Bowling Alley check to bombchus (Part 1) - rom.write_bytes(0x00E2D714, [0x81, 0xEF, 0xA6, 0x4C]) - rom.write_bytes(0x00E2D720, [0x24, 0x18, 0x00, 0x09, 0x11, 0xF8, 0x00, 0x06]) - - # Change Bowling Alley check to bombchus (Part 2) - rom.write_bytes(0x00E2D890, [0x81, 0x6B, 0xA6, 0x4C, 0x24, 0x0C, 0x00, 0x09, 0x51, 0x6C, 0x00, 0x0A]) - else: - # Change Bombchu Shop check to Bomb Bag - rom.write_bytes(0xC6CEDA, [0x00, 0xA2]) - rom.write_byte(0xC6CEDF, 0x18) - - # Change Bowling Alley check to Bomb Bag (Part 1) - rom.write_bytes(0x00E2D716, [0xA6, 0x72]) - rom.write_byte(0x00E2D723, 0x18) - - # Change Bowling Alley check to Bomb Bag (Part 2) - rom.write_bytes(0x00E2D892, [0xA6, 0x72]) - rom.write_byte(0x00E2D897, 0x18) - - # Change Bazaar check to Bomb Bag (Child?) - rom.write_bytes(0x00C0082A, [0x00, 0x18]) - rom.write_bytes(0x00C0082C, [0x00, 0x0E, 0X74, 0X02]) - rom.write_byte(0x00C00833, 0xA0) - - # Change Bazaar check to Bomb Bag (Adult?) - rom.write_bytes(0x00DF7A8E, [0x00, 0x18]) - rom.write_bytes(0x00DF7A90, [0x00, 0x0E, 0X74, 0X02]) - rom.write_byte(0x00DF7A97, 0xA0) - - # Change Goron Shop check to Bomb Bag - rom.write_bytes(0x00C6ED86, [0x00, 0xA2]) - rom.write_bytes(0x00C6ED8A, [0x00, 0x18]) - - # Change graveyard graves to not allow grabbing on to the ledge - rom.write_byte(0x0202039D, 0x20) - rom.write_byte(0x0202043C, 0x24) - - # Fix Link the Goron to always work - rom.write_bytes(0xED2FAC, [0x80, 0x6E, 0x0F, 0x18]) - rom.write_bytes(0xED2FEC, [0x24, 0x0A, 0x00, 0x00]) - rom.write_bytes(0xAE74D8, [0x24, 0x0E, 0x00, 0x00]) - - # Fix King Zora Thawed to always work - rom.write_bytes(0xE55C4C, [0x00, 0x00, 0x00, 0x00]) - rom.write_bytes(0xE56290, [0x00, 0x00, 0x00, 0x00]) - rom.write_bytes(0xE56298, [0x00, 0x00, 0x00, 0x00]) - - # Fix Castle Courtyard to check for meeting Zelda, not Zelda fleeing, to block you - rom.write_bytes(0xCD5E76, [0x0E, 0xDC]) - rom.write_bytes(0xCD5E12, [0x0E, 0xDC]) - - # Cutscene for all medallions never triggers when leaving shadow or spirit temples(hopefully stops warp to colossus on shadow completion with boss reward shuffle) - rom.write_byte(0xACA409, 0xAD) - rom.write_byte(0xACA49D, 0xCE) - - # Speed Zelda's Letter scene - rom.write_bytes(0x290E08E, [0x05, 0xF0]) - rom.write_byte(0xEFCBA7, 0x08) - rom.write_byte(0xEFE7C7, 0x05) - #rom.write_byte(0xEFEAF7, 0x08) - #rom.write_byte(0xEFE7C7, 0x05) - rom.write_bytes(0xEFE938, [0x00, 0x00, 0x00, 0x00]) - rom.write_bytes(0xEFE948, [0x00, 0x00, 0x00, 0x00]) - rom.write_bytes(0xEFE950, [0x00, 0x00, 0x00, 0x00]) - - # Speed Zelda escaping from Hyrule Castle - Block_code = [0x00, 0x00, 0x00, 0x01, 0x00, 0x21, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02] - rom.write_bytes(0x1FC0CF8, Block_code) - - # Speed learning Zelda's Lullaby - rom.write_int32s(0x02E8E90C, [0x000003E8, 0x00000001]) # Terminator Execution - if world.shuffle_song_items: - rom.write_int16s(None, [0x0073, 0x001, 0x0002, 0x0002]) # ID, start, end, end - else: - rom.write_int16s(None, [0x0073, 0x003B, 0x003C, 0x003C]) # ID, start, end, end - - - rom.write_int32s(0x02E8E91C, [0x00000013, 0x0000000C]) # Textbox, Count - if world.shuffle_song_items: - rom.write_int16s(None, [0xFFFF, 0x0000, 0x0010, 0xFFFF, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 - else: - rom.write_int16s(None, [0x0017, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 - rom.write_int16s(None, [0x00D4, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 - - # Speed learning Sun's Song - if world.shuffle_song_items: - rom.write_int32(0x0332A4A4, 0xFFFFFFFF) # Header: frame_count - else: - rom.write_int32(0x0332A4A4, 0x0000003C) # Header: frame_count - - rom.write_int32s(0x0332A868, [0x00000013, 0x00000008]) # Textbox, Count - rom.write_int16s(None, [0x0018, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 - rom.write_int16s(None, [0x00D3, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 - - # Speed learning Saria's Song - if world.shuffle_song_items: - rom.write_int32(0x020B1734, 0xFFFFFFFF) # Header: frame_count - else: - rom.write_int32(0x020B1734, 0x0000003C) # Header: frame_count - - rom.write_int32s(0x20B1DA8, [0x00000013, 0x0000000C]) # Textbox, Count - rom.write_int16s(None, [0x0015, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 - rom.write_int16s(None, [0x00D1, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 - - rom.write_int32s(0x020B19C0, [0x0000000A, 0x00000006]) # Link, Count - rom.write_int16s(0x020B19C8, [0x0011, 0x0000, 0x0010, 0x0000]) #action, start, end, ???? - rom.write_int16s(0x020B19F8, [0x003E, 0x0011, 0x0020, 0x0000]) #action, start, end, ???? - rom.write_int32s(None, [0x80000000, # ??? - 0x00000000, 0x000001D4, 0xFFFFF731, # start_XYZ - 0x00000000, 0x000001D4, 0xFFFFF712]) # end_XYZ - - # Speed learning Epona's Song - rom.write_int32s(0x029BEF60, [0x000003E8, 0x00000001]) # Terminator Execution - if world.shuffle_song_items: - rom.write_int16s(None, [0x005E, 0x0001, 0x0002, 0x0002]) # ID, start, end, end - else: - rom.write_int16s(None, [0x005E, 0x000A, 0x000B, 0x000B]) # ID, start, end, end - - rom.write_int32s(0x029BECB0, [0x00000013, 0x00000002]) # Textbox, Count - if world.shuffle_song_items: - rom.write_int16s(None, [0xFFFF, 0x0000, 0x0009, 0xFFFF, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 - else: - rom.write_int16s(None, [0x00D2, 0x0000, 0x0009, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 - rom.write_int16s(None, [0xFFFF, 0x000A, 0x003C, 0xFFFF, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 - - # Speed learning Song of Time - rom.write_int32s(0x0252FB98, [0x000003E8, 0x00000001]) # Terminator Execution - if world.shuffle_song_items: - rom.write_int16s(None, [0x0035, 0x0001, 0x0002, 0x0002]) # ID, start, end, end - else: - rom.write_int16s(None, [0x0035, 0x003B, 0x003C, 0x003C]) # ID, start, end, end - - rom.write_int32s(0x0252FC80, [0x00000013, 0x0000000C]) # Textbox, Count - if world.shuffle_song_items: - rom.write_int16s(None, [0xFFFF, 0x0000, 0x0010, 0xFFFF, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 - else: - rom.write_int16s(None, [0x0019, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 - rom.write_int16s(None, [0x00D5, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 - - rom.write_int32(0x01FC3B84, 0xFFFFFFFF) # Other Header?: frame_count - - # Speed learning Song of Storms - if world.shuffle_song_items: - rom.write_int32(0x03041084, 0xFFFFFFFF) # Header: frame_count - else: - rom.write_int32(0x03041084, 0x0000000A) # Header: frame_count - - rom.write_int32s(0x03041088, [0x00000013, 0x00000002]) # Textbox, Count - rom.write_int16s(None, [0x00D6, 0x0000, 0x0009, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 - rom.write_int16s(None, [0xFFFF, 0x00BE, 0x00C8, 0xFFFF, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 - - # Speed learning Minuet of Forest - if world.shuffle_song_items: - rom.write_int32(0x020AFF84, 0xFFFFFFFF) # Header: frame_count - else: - rom.write_int32(0x020AFF84, 0x0000003C) # Header: frame_count - - rom.write_int32s(0x020B0800, [0x00000013, 0x0000000A]) # Textbox, Count - rom.write_int16s(None, [0x000F, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 - rom.write_int16s(None, [0x0073, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 - - rom.write_int32s(0x020AFF88, [0x0000000A, 0x00000005]) # Link, Count - rom.write_int16s(0x020AFF90, [0x0011, 0x0000, 0x0010, 0x0000]) #action, start, end, ???? - rom.write_int16s(0x020AFFC1, [0x003E, 0x0011, 0x0020, 0x0000]) #action, start, end, ???? - - rom.write_int32s(0x020B0488, [0x00000056, 0x00000001]) # Music Change, Count - rom.write_int16s(None, [0x003F, 0x0021, 0x0022, 0x0000]) #action, start, end, ???? - - rom.write_int32s(0x020B04C0, [0x0000007C, 0x00000001]) # Music Fade Out, Count - rom.write_int16s(None, [0x0004, 0x0000, 0x0000, 0x0000]) #action, start, end, ???? - - # Speed learning Bolero of Fire - if world.shuffle_song_items: - rom.write_int32(0x0224B5D4, 0xFFFFFFFF) # Header: frame_count - else: - rom.write_int32(0x0224B5D4, 0x0000003C) # Header: frame_count - - rom.write_int32s(0x0224D7E8, [0x00000013, 0x0000000A]) # Textbox, Count - rom.write_int16s(None, [0x0010, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 - rom.write_int16s(None, [0x0074, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 - - rom.write_int32s(0x0224B5D8, [0x0000000A, 0x0000000B]) # Link, Count - rom.write_int16s(0x0224B5E0, [0x0011, 0x0000, 0x0010, 0x0000]) #action, start, end, ???? - rom.write_int16s(0x0224B610, [0x003E, 0x0011, 0x0020, 0x0000]) #action, start, end, ???? - - rom.write_int32s(0x0224B7F0, [0x0000002F, 0x0000000E]) # Sheik, Count - rom.write_int16s(0x0224B7F8, [0x0000]) #action - rom.write_int16s(0x0224B828, [0x0000]) #action - rom.write_int16s(0x0224B858, [0x0000]) #action - rom.write_int16s(0x0224B888, [0x0000]) #action - - # Speed learning Serenade of Water - if world.shuffle_song_items: - rom.write_int32(0x02BEB254, 0xFFFFFFFF) # Header: frame_count - else: - rom.write_int32(0x02BEB254, 0x0000003C) # Header: frame_count - - rom.write_int32s(0x02BEC880, [0x00000013, 0x00000010]) # Textbox, Count - rom.write_int16s(None, [0x0011, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 - rom.write_int16s(None, [0x0075, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 - - rom.write_int32s(0x02BEB258, [0x0000000A, 0x0000000F]) # Link, Count - rom.write_int16s(0x02BEB260, [0x0011, 0x0000, 0x0010, 0x0000]) #action, start, end, ???? - rom.write_int16s(0x02BEB290, [0x003E, 0x0011, 0x0020, 0x0000]) #action, start, end, ???? - - rom.write_int32s(0x02BEB530, [0x0000002F, 0x00000006]) # Sheik, Count - rom.write_int16s(0x02BEB538, [0x0000, 0x0000, 0x018A, 0x0000]) #action, start, end, ???? - rom.write_int32s(None, [0x1BBB0000, # ??? - 0xFFFFFB10, 0x8000011A, 0x00000330, # start_XYZ - 0xFFFFFB10, 0x8000011A, 0x00000330]) # end_XYZ - - rom.write_int32s(0x02BEC848, [0x00000056, 0x00000001]) # Music Change, Count - rom.write_int16s(None, [0x0059, 0x0021, 0x0022, 0x0000]) #action, start, end, ???? - - # Speed learning Nocturne of Shadow - rom.write_int32s(0x01FFE458, [0x000003E8, 0x00000001]) # Other Scene? Terminator Execution - rom.write_int16s(None, [0x002F, 0x0001, 0x0002, 0x0002]) # ID, start, end, end - - rom.write_int32(0x01FFFDF4, 0x0000003C) # Header: frame_count - - rom.write_int32s(0x02000FD8, [0x00000013, 0x0000000E]) # Textbox, Count - if world.shuffle_song_items: - rom.write_int16s(None, [0xFFFF, 0x0000, 0x0010, 0xFFFF, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 - else: - rom.write_int16s(None, [0x0013, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 - rom.write_int16s(None, [0x0077, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 - - rom.write_int32s(0x02000128, [0x000003E8, 0x00000001]) # Terminator Execution - if world.shuffle_song_items: - rom.write_int16s(None, [0x0032, 0x0001, 0x0002, 0x0002]) # ID, start, end, end - else: - rom.write_int16s(None, [0x0032, 0x003A, 0x003B, 0x003B]) # ID, start, end, end - - # Speed learning Requiem of Spirit - rom.write_int32(0x0218AF14, 0x0000003C) # Header: frame_count - - rom.write_int32s(0x0218C574, [0x00000013, 0x00000008]) # Textbox, Count - if world.shuffle_song_items: - rom.write_int16s(None, [0xFFFF, 0x0000, 0x0010, 0xFFFF, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 - else: - rom.write_int16s(None, [0x0012, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 - rom.write_int16s(None, [0x0076, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 - - rom.write_int32s(0x0218B478, [0x000003E8, 0x00000001]) # Terminator Execution - if world.shuffle_song_items: - rom.write_int16s(None, [0x0030, 0x0001, 0x0002, 0x0002]) # ID, start, end, end - else: - rom.write_int16s(None, [0x0030, 0x003A, 0x003B, 0x003B]) # ID, start, end, end - - rom.write_int32s(0x0218AF18, [0x0000000A, 0x0000000B]) # Link, Count - rom.write_int16s(0x0218AF20, [0x0011, 0x0000, 0x0010, 0x0000]) #action, start, end, ???? - rom.write_int32s(None, [0x40000000, # ??? - 0xFFFFFAF9, 0x00000008, 0x00000001, # start_XYZ - 0xFFFFFAF9, 0x00000008, 0x00000001, # end_XYZ - 0x0F671408, 0x00000000, 0x00000001]) # normal_XYZ - rom.write_int16s(0x0218AF50, [0x003E, 0x0011, 0x0020, 0x0000]) #action, start, end, ???? - - # Speed learning Prelude of Light - if world.shuffle_song_items: - rom.write_int32(0x0252FD24, 0xFFFFFFFF) # Header: frame_count - else: - rom.write_int32(0x0252FD24, 0x0000003C) # Header: frame_count - - rom.write_int32s(0x02531320, [0x00000013, 0x0000000E]) # Textbox, Count - rom.write_int16s(None, [0x0014, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 - rom.write_int16s(None, [0x0078, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 - - rom.write_int32s(0x0252FF10, [0x0000002F, 0x00000009]) # Sheik, Count - rom.write_int16s(0x0252FF18, [0x0006, 0x0000, 0x0000, 0x0000]) #action, start, end, ???? - - rom.write_int32s(0x025313D0, [0x00000056, 0x00000001]) # Music Change, Count - rom.write_int16s(None, [0x003B, 0x0021, 0x0022, 0x0000]) #action, start, end, ???? - - # Speed scene after Deku Tree - rom.write_bytes(0x2077E20, [0x00, 0x07, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) - rom.write_bytes(0x2078A10, [0x00, 0x0E, 0x00, 0x1F, 0x00, 0x20, 0x00, 0x20]) - Block_code = [0x00, 0x80, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0x1E, 0x00, 0x28, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF] - rom.write_bytes(0x2079570, Block_code) - - # Speed scene after Dodongo's Cavern - rom.write_bytes(0x2221E88, [0x00, 0x0C, 0x00, 0x3B, 0x00, 0x3C, 0x00, 0x3C]) - rom.write_bytes(0x2223308, [0x00, 0x81, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00]) - - # Speed scene after Jabu Jabu's Belly - rom.write_bytes(0xCA3530, [0x00, 0x00, 0x00, 0x00]) - rom.write_bytes(0x2113340, [0x00, 0x0D, 0x00, 0x3B, 0x00, 0x3C, 0x00, 0x3C]) - rom.write_bytes(0x2113C18, [0x00, 0x82, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00]) - rom.write_bytes(0x21131D0, [0x00, 0x01, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x3C]) - - # Speed scene after Forest Temple - rom.write_bytes(0xD4ED68, [0x00, 0x45, 0x00, 0x3B, 0x00, 0x3C, 0x00, 0x3C]) - rom.write_bytes(0xD4ED78, [0x00, 0x3E, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00]) - rom.write_bytes(0x207B9D4, [0xFF, 0xFF, 0xFF, 0xFF]) - - # Speed scene after Fire Temple - rom.write_bytes(0x2001848, [0x00, 0x1E, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) - rom.write_bytes(0xD100B4, [0x00, 0x62, 0x00, 0x3B, 0x00, 0x3C, 0x00, 0x3C]) - rom.write_bytes(0xD10134, [0x00, 0x3C, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00]) - - # Speed scene after Water Temple - rom.write_bytes(0xD5A458, [0x00, 0x15, 0x00, 0x3B, 0x00, 0x3C, 0x00, 0x3C]) - rom.write_bytes(0xD5A3A8, [0x00, 0x3D, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00]) - rom.write_bytes(0x20D0D20, [0x00, 0x29, 0x00, 0xC7, 0x00, 0xC8, 0x00, 0xC8]) - - # Speed scene after Shadow Temple - rom.write_bytes(0xD13EC8, [0x00, 0x61, 0x00, 0x3B, 0x00, 0x3C, 0x00, 0x3C]) - rom.write_bytes(0xD13E18, [0x00, 0x41, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00]) - - # Speed scene after Spirit Temple - rom.write_bytes(0xD3A0A8, [0x00, 0x60, 0x00, 0x3B, 0x00, 0x3C, 0x00, 0x3C]) - rom.write_bytes(0xD39FF0, [0x00, 0x3F, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00]) - - # Speed Nabooru defeat scene - rom.write_bytes(0x2F5AF84, [0x00, 0x00, 0x00, 0x05]) - rom.write_bytes(0x2F5C7DA, [0x00, 0x01, 0x00, 0x02]) - rom.write_bytes(0x2F5C7A2, [0x00, 0x03, 0x00, 0x04]) - rom.write_byte(0x2F5B369, 0x09) - rom.write_byte(0x2F5B491, 0x04) - rom.write_byte(0x2F5B559, 0x04) - rom.write_byte(0x2F5B621, 0x04) - rom.write_byte(0x2F5B761, 0x07) - - # Speed scene with all medallions - rom.write_bytes(0x2512680, [0x00, 0x74, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) - - # Speed collapse of Ganon's Tower - rom.write_bytes(0x33FB328, [0x00, 0x76, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) - - # Speed Phantom Ganon defeat scene - rom.write_bytes(0xC944D8, [0x00, 0x00, 0x00, 0x00]) - rom.write_bytes(0xC94548, [0x00, 0x00, 0x00, 0x00]) - rom.write_bytes(0xC94730, [0x00, 0x00, 0x00, 0x00]) - rom.write_bytes(0xC945A8, [0x00, 0x00, 0x00, 0x00]) - rom.write_bytes(0xC94594, [0x00, 0x00, 0x00, 0x00]) - - # Speed Twinrova defeat scene - rom.write_bytes(0xD678CC, [0x24, 0x01, 0x03, 0xA2, 0xA6, 0x01, 0x01, 0x42]) - rom.write_bytes(0xD67BA4, [0x10, 0x00]) - - # Speed scenes during final battle - # Ganondorf battle end - rom.write_byte(0xD82047, 0x09) - # Zelda descends - rom.write_byte(0xD82AB3, 0x66) - rom.write_byte(0xD82FAF, 0x65) - rom.write_bytes(0xD82D2E, [0x04, 0x1F]) - rom.write_bytes(0xD83142, [0x00, 0x6B]) - rom.write_bytes(0xD82DD8, [0x00, 0x00, 0x00, 0x00]) - rom.write_bytes(0xD82ED4, [0x00, 0x00, 0x00, 0x00]) - rom.write_byte(0xD82FDF, 0x33) - # After tower collapse - rom.write_byte(0xE82E0F, 0x04) - # Ganon intro - rom.write_bytes(0xE83D28, [0x00, 0x00, 0x00, 0x00]) - rom.write_bytes(0xE83B5C, [0x00, 0x00, 0x00, 0x00]) - rom.write_bytes(0xE84C80, [0x10, 0x00]) - - # Speed completion of the trials in Ganon's Castle - rom.write_bytes(0x31A8090, [0x00, 0x6B, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) #Forest - rom.write_bytes(0x31A9E00, [0x00, 0x6E, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) #Fire - rom.write_bytes(0x31A8B18, [0x00, 0x6C, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) #Water - rom.write_bytes(0x31A9430, [0x00, 0x6D, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) #Shadow - rom.write_bytes(0x31AB200, [0x00, 0x70, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) #Spirit - rom.write_bytes(0x31AA830, [0x00, 0x6F, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) #Light - - # Speed obtaining Fairy Ocarina - rom.write_bytes(0x2150CD0, [0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x30]) - Block_code = [0xFF, 0xFF, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0x3C, 0x00, 0x81, 0xFF, 0xFF] - rom.write_bytes(0x2151240, Block_code) - rom.write_bytes(0x2150E20, [0xFF, 0xFF, 0xFA, 0x4C]) - - # Speed Zelda Light Arrow cutscene - rom.write_bytes(0x2531B40, [0x00, 0x28, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) - rom.write_bytes(0x2532FBC, [0x00, 0x75]) - rom.write_bytes(0x2532FEA, [0x00, 0x75, 0x00, 0x80]) - rom.write_byte(0x2533115, 0x05) - rom.write_bytes(0x2533141, [0x06, 0x00, 0x06, 0x00, 0x10]) - rom.write_bytes(0x2533171, [0x0F, 0x00, 0x11, 0x00, 0x40]) - rom.write_bytes(0x25331A1, [0x07, 0x00, 0x41, 0x00, 0x65]) - rom.write_bytes(0x2533642, [0x00, 0x50]) - rom.write_byte(0x253389D, 0x74) - rom.write_bytes(0x25338A4, [0x00, 0x72, 0x00, 0x75, 0x00, 0x79]) - rom.write_bytes(0x25338BC, [0xFF, 0xFF]) - rom.write_bytes(0x25338C2, [0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF]) - rom.write_bytes(0x25339C2, [0x00, 0x75, 0x00, 0x76]) - rom.write_bytes(0x2533830, [0x00, 0x31, 0x00, 0x81, 0x00, 0x82, 0x00, 0x82]) - - # Speed Bridge of Light cutscene - rom.write_bytes(0x292D644, [0x00, 0x00, 0x00, 0xA0]) - rom.write_bytes(0x292D680, [0x00, 0x02, 0x00, 0x0A, 0x00, 0x6C, 0x00, 0x00]) - rom.write_bytes(0x292D6E8, [0x00, 0x27]) - rom.write_bytes(0x292D718, [0x00, 0x32]) - rom.write_bytes(0x292D810, [0x00, 0x02, 0x00, 0x3C]) - rom.write_bytes(0x292D924, [0xFF, 0xFF, 0x00, 0x14, 0x00, 0x96, 0xFF, 0xFF]) - - # Remove remaining owls - rom.write_bytes(0x1FE30CE, [0x01, 0x4B]) - rom.write_bytes(0x1FE30DE, [0x01, 0x4B]) - rom.write_bytes(0x1FE30EE, [0x01, 0x4B]) - rom.write_bytes(0x205909E, [0x00, 0x3F]) - rom.write_byte(0x2059094, 0x80) - - # Darunia won't dance - rom.write_bytes(0x22769E4, [0xFF, 0xFF, 0xFF, 0xFF]) - - # Zora moves quickly - rom.write_bytes(0xE56924, [0x00, 0x00, 0x00, 0x00]) - - # Speed Jabu Jabu swallowing Link - rom.write_bytes(0xCA0784, [0x00, 0x18, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) - - # Ruto no longer points to Zora Sapphire - rom.write_bytes(0xD03BAC, [0xFF, 0xFF, 0xFF, 0xFF]) - - # Ruto never disappears from Jabu Jabu's Belly - rom.write_byte(0xD01EA3, 0x00) - - # Speed up Epona race start - rom.write_bytes(0x29BE984, [0x00, 0x00, 0x00, 0x02]) - rom.write_bytes(0x29BE9CA, [0x00, 0x01, 0x00, 0x02]) - - # Speed start of Horseback Archery - #rom.write_bytes(0x21B2064, [0x00, 0x00, 0x00, 0x02]) - #rom.write_bytes(0x21B20AA, [0x00, 0x01, 0x00, 0x02]) - - # Speed up Epona escape - rom.write_bytes(0x1FC8B36, [0x00, 0x2A]) - - # Speed up draining the well - rom.write_bytes(0xE0A010, [0x00, 0x2A, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) - rom.write_bytes(0x2001110, [0x00, 0x2B, 0x00, 0xB7, 0x00, 0xB8, 0x00, 0xB8]) - - # Speed up opening the royal tomb for both child and adult - rom.write_bytes(0x2025026, [0x00, 0x01]) - rom.write_bytes(0x2023C86, [0x00, 0x01]) - rom.write_byte(0x2025159, 0x02) - rom.write_byte(0x2023E19, 0x02) - - #Speed opening of Door of Time - rom.write_bytes(0xE0A176, [0x00, 0x02]) - rom.write_bytes(0xE0A35A, [0x00, 0x01, 0x00, 0x02]) - - # Poacher's Saw no longer messes up Deku Theater - rom.write_bytes(0xAE72CC, [0x00, 0x00, 0x00, 0x00]) - - # Learning Serenade tied to opening chest in room - Block_code = [0x3C, 0x0F, 0x80, 0x1D, 0x81, 0xE8, 0xA1, 0xDB, 0x24, 0x19, 0x00, 0x04, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8C, 0xA2, 0x1C, 0x44, - 0x00, 0x00, 0x00, 0x00] - rom.write_bytes(0xC7BCF0, Block_code) - - # Dampe Chest spawn condition looks at chest flag instead of having obtained hookshot - Block_code = [0x93, 0x18, 0xAE, 0x7E, 0x27, 0xA5, 0x00, 0x24, 0x33, 0x19, 0x00, 0x01, - 0x00, 0x00, 0x00, 0x00] - rom.write_bytes(0xDFEC40, Block_code) - - # Darunia sets an event flag and checks for it - Block_code = [0x24, 0x19, 0x00, 0x40, 0x8F, 0x09, 0xB4, 0xA8, 0x01, 0x39, 0x40, 0x24, - 0x01, 0x39, 0xC8, 0x25, 0xAF, 0x19, 0xB4, 0xA8, 0x24, 0x09, 0x00, 0x06] - rom.write_bytes(0xCF1AB8, Block_code) - - # Change Prelude CS to check for medallion - rom.write_bytes(0x00C805E6, [0x00, 0xA6]) - rom.write_bytes(0x00C805F2, [0x00, 0x01]) - - # Change Nocturne CS to check for medallions - rom.write_bytes(0x00ACCD8E, [0x00, 0xA6]) - rom.write_bytes(0x00ACCD92, [0x00, 0x01]) - rom.write_bytes(0x00ACCD9A, [0x00, 0x02]) - rom.write_bytes(0x00ACCDA2, [0x00, 0x04]) - - # Change King Zora to move even if Zora Sapphire is in inventory - rom.write_bytes(0x00E55BB0, [0x85, 0xCE, 0x8C, 0x3C]) - rom.write_bytes(0x00E55BB4, [0x84, 0x4F, 0x0E, 0xDA]) - - # Remove extra Forest Temple medallions - rom.write_bytes(0x00D4D37C, [0x00, 0x00, 0x00, 0x00]) - - # Remove extra Fire Temple medallions - rom.write_bytes(0x00AC9754, [0x00, 0x00, 0x00, 0x00]) - rom.write_bytes(0x00D0DB8C, [0x00, 0x00, 0x00, 0x00]) - - # Remove extra Water Temple medallions - rom.write_bytes(0x00D57F94, [0x00, 0x00, 0x00, 0x00]) - - # Remove extra Spirit Temple medallions - rom.write_bytes(0x00D370C4, [0x00, 0x00, 0x00, 0x00]) - rom.write_bytes(0x00D379C4, [0x00, 0x00, 0x00, 0x00]) - - # Remove extra Shadow Temple medallions - rom.write_bytes(0x00D116E0, [0x00, 0x00, 0x00, 0x00]) - - # Change Mido, Saria, and Kokiri to check for Deku Tree complete flag - # bitwise pointer for 0x80 - kokiriAddresses = [0xE52836, 0xE53A56, 0xE51D4E, 0xE51F3E, 0xE51D96, 0xE51E1E, 0xE51E7E, 0xE51EDE, 0xE51FC6, 0xE51F96, 0xE293B6, 0xE29B8E, 0xE62EDA, 0xE630D6, 0xE62642, 0xE633AA, 0xE6369E] - for kokiri in kokiriAddresses: - rom.write_bytes(kokiri, [0x8C, 0x0C]) - # Kokiri - rom.write_bytes(0xE52838, [0x94, 0x48, 0x0E, 0xD4]) - rom.write_bytes(0xE53A58, [0x94, 0x49, 0x0E, 0xD4]) - rom.write_bytes(0xE51D50, [0x94, 0x58, 0x0E, 0xD4]) - rom.write_bytes(0xE51F40, [0x94, 0x4B, 0x0E, 0xD4]) - rom.write_bytes(0xE51D98, [0x94, 0x4B, 0x0E, 0xD4]) - rom.write_bytes(0xE51E20, [0x94, 0x4A, 0x0E, 0xD4]) - rom.write_bytes(0xE51E80, [0x94, 0x59, 0x0E, 0xD4]) - rom.write_bytes(0xE51EE0, [0x94, 0x4E, 0x0E, 0xD4]) - rom.write_bytes(0xE51FC8, [0x94, 0x49, 0x0E, 0xD4]) - rom.write_bytes(0xE51F98, [0x94, 0x58, 0x0E, 0xD4]) - # Saria - rom.write_bytes(0xE293B8, [0x94, 0x78, 0x0E, 0xD4]) - rom.write_bytes(0xE29B90, [0x94, 0x68, 0x0E, 0xD4]) - # Mido - rom.write_bytes(0xE62EDC, [0x94, 0x6F, 0x0E, 0xD4]) - rom.write_bytes(0xE630D8, [0x94, 0x4F, 0x0E, 0xD4]) - rom.write_bytes(0xE62644, [0x94, 0x6F, 0x0E, 0xD4]) - rom.write_bytes(0xE633AC, [0x94, 0x68, 0x0E, 0xD4]) - rom.write_bytes(0xE636A0, [0x94, 0x48, 0x0E, 0xD4]) - - # Change adult Kokiri Forest to check for Forest Temple complete flag - rom.write_bytes(0xE5369E, [0xB4, 0xAC]) - rom.write_bytes(0xD5A83C, [0x80, 0x49, 0x0E, 0xDC]) - - # Change adult Goron City to check for Fire Temple complete flag - rom.write_bytes(0xED59DC, [0x80, 0xC9, 0x0E, 0xDC]) - - # Change Pokey to check DT complete flag - rom.write_bytes(0xE5400A, [0x8C, 0x4C]) - rom.write_bytes(0xE5400E, [0xB4, 0xA4]) - if world.open_forest: - rom.write_bytes(0xE5401C, [0x14, 0x0B]) - - # Fix Shadow Temple to check for different rewards for scene - rom.write_bytes(0xCA3F32, [0x00, 0x00, 0x25, 0x4A, 0x00, 0x10]) - - # Fix Spirit Temple to check for different rewards for scene - rom.write_bytes(0xCA3EA2, [0x00, 0x00, 0x25, 0x4A, 0x00, 0x08]) - - # Fix Biggoron to check a different flag. - rom.write_byte(0xED329B, 0x72) - rom.write_byte(0xED43E7, 0x72) - rom.write_bytes(0xED3370, [0x3C, 0x0D, 0x80, 0x12]) - rom.write_bytes(0xED3378, [0x91, 0xB8, 0xA6, 0x42, 0xA1, 0xA8, 0xA6, 0x42]) - rom.write_bytes(0xED6574, [0x00, 0x00, 0x00, 0x00]) - - # Remove the check on the number of days that passed for claim check. - rom.write_bytes(0xED4470, [0x00, 0x00, 0x00, 0x00]) - rom.write_bytes(0xED4498, [0x00, 0x00, 0x00, 0x00]) - - # Fixed reward order for Bombchu Bowling - rom.write_bytes(0xE2E698, [0x80, 0xAA, 0xE2, 0x64]) - rom.write_bytes(0xE2E6A0, [0x80, 0xAA, 0xE2, 0x4C]) - rom.write_bytes(0xE2D440, [0x24, 0x19, 0x00, 0x00]) - - # Make fishing less obnoxious - Block_code = [0x3C, 0x0A, 0x80, 0x12, 0x8D, 0x4A, 0xA5, 0xD4, 0x14, 0x0A, 0x00, 0x06, - 0x31, 0x78, 0x00, 0x01, 0x14, 0x18, 0x00, 0x02, 0x3c, 0x18, 0x42, 0x30, - 0x3C, 0x18, 0x42, 0x50, 0x03, 0xe0, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, - 0x14, 0x18, 0x00, 0x02, 0x3C, 0x18, 0x42, 0x10, 0x3C, 0x18, 0x42, 0x38, - 0x03, 0xE0, 0x00, 0x08] - rom.write_bytes(0x3480C00, Block_code) - rom.write_bytes(0xDBF434, [0x44, 0x98, 0x90, 0x00, 0xE6, 0x52, 0x01, 0x9C]) - rom.write_bytes(0xDBF484, [0x00, 0x00, 0x00, 0x00]) - rom.write_bytes(0xDBF4A8, [0x00, 0x00, 0x00, 0x00]) - rom.write_bytes(0xDCBEAA, [0x42, 0x48]) #set adult fish size requirement - rom.write_bytes(0xDCBF26, [0x42, 0x48]) #set adult fish size requirement - rom.write_bytes(0xDCBF32, [0x42, 0x30]) #set child fish size requirement - rom.write_bytes(0xDCBF9E, [0x42, 0x30]) #set child fish size requirement - - # Dampe always digs something up and first dig is always the Piece of Heart - rom.write_bytes(0xCC3FA8, [0xA2, 0x01, 0x01, 0xF8]) - rom.write_bytes(0xCC4024, [0x00, 0x00, 0x00, 0x00]) - - # Allow owl to always carry the kid down Death Mountain - rom.write_bytes(0xE304F0, [0x24, 0x0E, 0x00, 0x01]) - - # Forbid Sun's Song from a bunch of cutscenes - Suns_scenes = [0x2016FC9, 0x2017219, 0x20173D9, 0x20174C9, 0x2017679, 0x20C1539, 0x20C15D9, 0x21A0719, 0x21A07F9, 0x2E90129, 0x2E901B9, 0x2E90249, 0x225E829, 0x225E939, 0x306D009] - for address in Suns_scenes: - rom.write_byte(address,0x01) - - # Remove forcible text triggers - Wonder_text = [0x27C00C6, 0x27C00D6, 0x27C00E6, 0x27C00F6, 0x27C0106, 0x27C0116, 0x27C0126, 0x27C0136] - for address in Wonder_text: - rom.write_byte(address, 0x02) - rom.write_byte(0x27CE08A, 0x09) - rom.write_byte(0x27CE09A, 0x0F) - Wonder_text = [0x288707A, 0x288708A, 0x288709A, 0x289707A, 0x28C713E, 0x28D91C6] - for address in Wonder_text: - rom.write_byte(address, 0x0C) - Wonder_text = [0x28A60FE, 0x28AE08E, 0x28B917E, 0x28BF172, 0x28BF182, 0x28BF192] - for address in Wonder_text: - rom.write_byte(address, 0x0D) - rom.write_byte(0x28A114E, 0x0E) - rom.write_byte(0x28A610E, 0x0E) - Wonder_text = [0x9367F6, 0x93673D, 0x93679D] - for address in Wonder_text: - rom.write_byte(address, 0x08) - Wonder_text = [0x289707B, 0x28AE08F, 0x28C713F] - for address in Wonder_text: - rom.write_byte(address, 0xAF) - rom.write_byte(0x28A114F, 0x6F) - rom.write_byte(0x28B917F, 0x6F) - rom.write_byte(0x28A60FF, 0xEF) - rom.write_byte(0x28D91C7, 0xEF) - Wonder_text = [0x28A610F, 0x28BF173, 0x28BF183, 0x28BF193] - for address in Wonder_text: - rom.write_byte(address, 0x2F) - Wonder_text = [0x27CE08B, 0x27C00C7, 0x27C00D7, 0x27C0117, 0x27C0127] - for address in Wonder_text: - rom.write_byte(address, 0x3D) - rom.write_byte(0x27C00E7, 0x7D) - rom.write_byte(0x27C00F7, 0x7D) - rom.write_byte(0x27C0107, 0xBD) - rom.write_byte(0x27C0137, 0xBD) - Wonder_text = [0x27C00BC, 0x27C00CC, 0x27C00DC, 0x27C00EC, 0x27C00FC, 0x27C010C, 0x27C011C, 0x27C012C, 0x27CE080, 0x27CE090, 0x2887070, 0x2887080, 0x2887090, 0x2897070, 0x28C7134, 0x28D91BC, 0x28A60F4, 0x28AE084, 0x28B9174, 0x28BF168, 0x28BF178, 0x28BF188, 0x28A1144, 0x28A6104] - for address in Wonder_text: - rom.write_byte(address, 0xFE) - - # Speed dig text for Dampe - rom.write_bytes(0x9532F8, [0x08, 0x08, 0x08, 0x59]) - - # Make item descriptions into a single box - Short_item_descriptions = [0x92EC84, 0x92F9E3, 0x92F2B4, 0x92F37A, 0x92F513, 0x92F5C6, 0x92E93B, 0x92EA12] - for address in Short_item_descriptions: - rom.write_byte(address,0x02) - - # Fix text for Pocket Cucco. - rom.write_byte(0xBEEF45, 0x0B) - rom.write_byte(0x92D41A, 0x2E) - Block_code = [0x59, 0x6f, 0x75, 0x20, 0x67, 0x6f, 0x74, 0x20, 0x61, 0x20, 0x05, 0x41, - 0x50, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x20, 0x43, 0x75, 0x63, 0x63, 0x6f, - 0x2c, 0x20, 0x05, 0x40, 0x6f, 0x6e, 0x65, 0x01, 0x6f, 0x66, 0x20, 0x41, - 0x6e, 0x6a, 0x75, 0x27, 0x73, 0x20, 0x70, 0x72, 0x69, 0x7a, 0x65, 0x64, - 0x20, 0x68, 0x65, 0x6e, 0x73, 0x21, 0x20, 0x49, 0x74, 0x20, 0x66, 0x69, - 0x74, 0x73, 0x20, 0x01, 0x69, 0x6e, 0x20, 0x79, 0x6f, 0x75, 0x72, 0x20, - 0x70, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x02] - rom.write_bytes(0x92D41C, Block_code) - - # DMA in extra code - Block_code = [0xAF, 0xBF, 0x00, 0x1C, 0xAF, 0xA4, 0x01, 0x40, 0x3C, 0x05, 0x03, 0x48, - 0x3C, 0x04, 0x80, 0x40, 0x0C, 0x00, 0x03, 0x7C, 0x24, 0x06, 0x50, 0x00, - 0x0C, 0x10, 0x02, 0x00] - rom.write_bytes(0xB17BB4, Block_code) - Block_code = [0x3C, 0x02, 0x80, 0x12, 0x24, 0x42, 0xD2, 0xA0, 0x24, 0x0E, 0x01, 0x40, - 0xAC, 0x2E, 0xE5, 0x00, 0x03, 0xE0, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00] - rom.write_bytes(0x3480800, Block_code) - rom.write_bytes(0xD270, [0x03, 0x48, 0x00, 0x00, 0x03, 0x48, 0x50, 0x00, 0x03, 0x48, 0x00, 0x00]) - - # Set hooks for various code - rom.write_bytes(0xDBF428, [0x0C, 0x10, 0x03, 0x00]) #Set Fishing Hook - - - # will be populated with data to be written to initial save - # see initial_save.asm and config.asm for more details on specifics - # or just use the following functions to add an entry to the table - initial_save_table = [] - - # will set the bits of value to the offset in the save (or'ing them with what is already there) - def write_bits_to_save(offset, value, filter=None): - nonlocal initial_save_table - - if filter and not filter(value): - return - - initial_save_table += [(offset & 0xFF00) >> 8, offset & 0xFF, 0x00, value] - - - - # will overwrite the byte at offset with the given value - def write_byte_to_save(offset, value, filter=None): - nonlocal initial_save_table - - if filter and not filter(value): - return - - initial_save_table += [(offset & 0xFF00) >> 8, offset & 0xFF, 0x01, value] - - # will overwrite the byte at offset with the given value - def write_bytes_to_save(offset, bytes, filter=None): - for i, value in enumerate(bytes): - write_byte_to_save(offset + i, value, filter) - - # will overwrite the byte at offset with the given value - def write_save_table(rom): - nonlocal initial_save_table - - table_len = len(initial_save_table) - if table_len > 0x400: - raise Exception("The Initial Save Table has exceeded it's maximum capacity: 0x%03X/0x400" % table_len) - rom.write_bytes(0x3481800, initial_save_table) - - - # Initial Save Data - write_bits_to_save(0x003F, 0x02) # Some Biggoron's Sword flag? - - #write_bits_to_save(0x00D4 + 0x00 * 0x1C + 0x04 + 0x0, 0x80) # Deku tree switch flag (navi text?) - #write_bits_to_save(0x00D4 + 0x00 * 0x1C + 0x04 + 0x1, 0x02) # Deku tree switch flag (navi text?) - #write_bits_to_save(0x00D4 + 0x00 * 0x1C + 0x04 + 0x2, 0x80) # Deku tree switch flag (navi text?) - #write_bits_to_save(0x00D4 + 0x00 * 0x1C + 0x04 + 0x2, 0x04) # Deku tree switch flag (navi text?) - #write_bits_to_save(0x00D4 + 0x01 * 0x1C + 0x04 + 0x2, 0x40) # Dodongo's Cavern switch flag (navi text?) - #write_bits_to_save(0x00D4 + 0x01 * 0x1C + 0x04 + 0x2, 0x08) # Dodongo's Cavern switch flag (navi text?) - #write_bits_to_save(0x00D4 + 0x01 * 0x1C + 0x04 + 0x2, 0x01) # Dodongo's Cavern switch flag (navi text?) - #write_bits_to_save(0x00D4 + 0x02 * 0x1C + 0x04 + 0x0, 0x08) # Inside Jabu-Jabu's Belly switch flag (ruto?) - #write_bits_to_save(0x00D4 + 0x02 * 0x1C + 0x04 + 0x0, 0x04) # Inside Jabu-Jabu's Belly switch flag (ruto?) - #write_bits_to_save(0x00D4 + 0x02 * 0x1C + 0x04 + 0x0, 0x02) # Inside Jabu-Jabu's Belly switch flag (ruto?) - #write_bits_to_save(0x00D4 + 0x02 * 0x1C + 0x04 + 0x0, 0x01) # Inside Jabu-Jabu's Belly switch flag (ruto?) - #write_bits_to_save(0x00D4 + 0x02 * 0x1C + 0x04 + 0x1, 0x01) # Inside Jabu-Jabu's Belly switch flag (ruto?) - write_bits_to_save(0x00D4 + 0x03 * 0x1C + 0x04 + 0x0, 0x08) # Forest Temple switch flag (poes?) - #write_bits_to_save(0x00D4 + 0x03 * 0x1C + 0x04 + 0x0, 0x01) # Forest Temple switch flag (Poe Sisters cutscene) - #write_bits_to_save(0x00D4 + 0x03 * 0x1C + 0x04 + 0x2, 0x02) # Forest Temple switch flag (poes?) - #write_bits_to_save(0x00D4 + 0x03 * 0x1C + 0x04 + 0x2, 0x01) # Forest Temple switch flag (poes?) - #write_bits_to_save(0x00D4 + 0x04 * 0x1C + 0x04 + 0x1, 0x08) # Fire Temple switch flag (First locked door?) - write_bits_to_save(0x00D4 + 0x05 * 0x1C + 0x04 + 0x1, 0x01) # Water temple switch flag (navi text?) - #write_bits_to_save(0x00D4 + 0x0B * 0x1C + 0x04 + 0x2, 0x01) # Gerudo Training Ground switch flag (command text?) - write_bits_to_save(0x00D4 + 0x51 * 0x1C + 0x04 + 0x2, 0x08) # Hyrule Field switch flag (???) - write_bits_to_save(0x00D4 + 0x55 * 0x1C + 0x04 + 0x0, 0x80) # Kokiri Forest switch flag (???) - write_bits_to_save(0x00D4 + 0x56 * 0x1C + 0x04 + 0x2, 0x40) # Sacred Forest Meadow switch flag (???) - write_bits_to_save(0x00D4 + 0x5B * 0x1C + 0x04 + 0x2, 0x01) # Lost Woods switch flag (???) - write_bits_to_save(0x00D4 + 0x5B * 0x1C + 0x04 + 0x3, 0x80) # Lost Woods switch flag (???) - write_bits_to_save(0x00D4 + 0x5C * 0x1C + 0x04 + 0x0, 0x80) # Desert Colossus switch flag (???) - write_bits_to_save(0x00D4 + 0x5F * 0x1C + 0x04 + 0x3, 0x20) # Hyrule Castle switch flag (???) - - write_bits_to_save(0x0ED4, 0x10) # "Met Deku Tree" - write_bits_to_save(0x0ED5, 0x20) # "Deku Tree Opened Mouth" - write_bits_to_save(0x0ED6, 0x08) # "Rented Horse From Ingo" - write_bits_to_save(0x0EDA, 0x08) # "Began Nabooru Battle" - write_bits_to_save(0x0EDC, 0x80) # "Entered the Master Sword Chamber" - write_bits_to_save(0x0EDD, 0x20) # "Pulled Master Sword from Pedestal" - write_bits_to_save(0x0EE0, 0x80) # "Spoke to Kaepora Gaebora by Lost Woods" - write_bits_to_save(0x0EE7, 0x20) # "Nabooru Captured by Twinrova" - write_bits_to_save(0x0EE7, 0x10) # "Spoke to Nabooru in Spirit Temple" - write_bits_to_save(0x0EED, 0x20) # "Sheik, Spawned at Master Sword Pedestal as Adult" - write_bits_to_save(0x0EED, 0x01) # "Nabooru Ordered to Fight by Twinrova" - write_bits_to_save(0x0EF9, 0x01) # "Greeted by Saria" - write_bits_to_save(0x0F0A, 0x04) # "Spoke to Ingo Once as Adult" - write_bits_to_save(0x0F1A, 0x04) # "Met Darunia in Fire Temple" - - write_bits_to_save(0x0ED7, 0x01) # "Spoke to Child Malon at Castle or Market" - write_bits_to_save(0x0ED7, 0x20) # "Spoke to Child Malon at Ranch" - write_bits_to_save(0x0ED7, 0x40) # "Invited to Sing With Child Malon" - write_bits_to_save(0x0F09, 0x10) # "Met Child Malon at Castle or Market" - write_bits_to_save(0x0F09, 0x20) # "Child Malon Said Epona Was Scared of You" - - write_bits_to_save(0x0F21, 0x04) # "Ruto in JJ (M3) Talk First Time" - write_bits_to_save(0x0F21, 0x02) # "Ruto in JJ (M2) Meet Ruto" - - write_bits_to_save(0x0EE2, 0x01) # "Began Ganondorf Battle" - write_bits_to_save(0x0EE3, 0x80) # "Began Bongo Bongo Battle" - write_bits_to_save(0x0EE3, 0x40) # "Began Barinade Battle" - write_bits_to_save(0x0EE3, 0x20) # "Began Twinrova Battle" - write_bits_to_save(0x0EE3, 0x10) # "Began Morpha Battle" - write_bits_to_save(0x0EE3, 0x08) # "Began Volvagia Battle" - write_bits_to_save(0x0EE3, 0x04) # "Began Phantom Ganon Battle" - write_bits_to_save(0x0EE3, 0x02) # "Began King Dodongo Battle" - write_bits_to_save(0x0EE3, 0x01) # "Began Gohma Battle" - - write_bits_to_save(0x0EE8, 0x01) # "Entered Deku Tree" - write_bits_to_save(0x0EE9, 0x80) # "Entered Temple of Time" - write_bits_to_save(0x0EE9, 0x40) # "Entered Goron City" - write_bits_to_save(0x0EE9, 0x20) # "Entered Hyrule Castle" - write_bits_to_save(0x0EE9, 0x10) # "Entered Zora's Domain" - write_bits_to_save(0x0EE9, 0x08) # "Entered Kakariko Village" - write_bits_to_save(0x0EE9, 0x02) # "Entered Death Mountain Trail" - write_bits_to_save(0x0EE9, 0x01) # "Entered Hyrule Field" - write_bits_to_save(0x0EEA, 0x04) # "Entered Ganon's Castle (Exterior)" - write_bits_to_save(0x0EEA, 0x02) # "Entered Death Mountain Crater" - write_bits_to_save(0x0EEA, 0x01) # "Entered Desert Colossus" - write_bits_to_save(0x0EEB, 0x80) # "Entered Zora's Fountain" - write_bits_to_save(0x0EEB, 0x40) # "Entered Graveyard" - write_bits_to_save(0x0EEB, 0x20) # "Entered Jabu-Jabu's Belly" - write_bits_to_save(0x0EEB, 0x10) # "Entered Lon Lon Ranch" - write_bits_to_save(0x0EEB, 0x08) # "Entered Gerudo's Fortress" - write_bits_to_save(0x0EEB, 0x04) # "Entered Gerudo Valley" - write_bits_to_save(0x0EEB, 0x02) # "Entered Lake Hylia" - write_bits_to_save(0x0EEB, 0x01) # "Entered Dodongo's Cavern" - write_bits_to_save(0x0F08, 0x08) # "Entered Hyrule Castle" - - # Make the Kakariko Gate not open with the MS - if not world.open_kakariko: - rom.write_int32(0xDD3538, 0x34190000) # li t9, 0 - - # Make all chest opening animations fast - if world.fast_chests: - rom.write_int32(0xBDA2E8, 0x240AFFFF) # addiu t2, r0, -1 - # replaces # lb t2, 0x0002 (t1) - - # Set up for Rainbow Bridge dungeons condition - Block_code = [0x15, 0x41, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x80, 0xEA, 0x00, 0xA5, - 0x24, 0x01, 0x00, 0x1C, 0x31, 0x4A, 0x00, 0x1C, 0x08, 0x07, 0x88, 0xD9] - rom.write_bytes(0x3480820, Block_code) - - # Gossip stones resond to stone of agony - Block_code = [0x3C, 0x01, 0x80, 0x12, 0x80, 0x21, 0xA6, 0x75, 0x30, 0x21, 0x00, 0x20, - 0x03, 0xE0, 0x00, 0x08] - # Gossip stones always respond - if(world.hints == 'always'): - Block_code = [0x24, 0x01, 0x00, 0x20, 0x03, 0xE0, 0x00, 0x08] - rom.write_bytes(0x3480840, Block_code) - - # Set up Rainbow Bridge conditions - if world.bridge == 'medallions': - Block_code = [0x80, 0xEA, 0x00, 0xA7, 0x24, 0x01, 0x00, 0x3F, - 0x31, 0x4A, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00] - rom.write_bytes(0xE2B454, Block_code) - elif world.bridge == 'open': - write_bits_to_save(0xEDC, 0x20) # "Rainbow Bridge Built by Sages" - elif world.bridge == 'dungeons': - Block_code = [0x80, 0xEA, 0x00, 0xA7, 0x24, 0x01, 0x00, 0x3F, - 0x08, 0x10, 0x02, 0x08, 0x31, 0x4A, 0x00, 0x3F] - rom.write_bytes(0xE2B454, Block_code) - - if world.open_forest: - write_bits_to_save(0xED5, 0x10) # "Showed Mido Sword & Shield" - - if world.open_door_of_time: - write_bits_to_save(0xEDC, 0x08) # "Opened the Door of Time" - - # "fast-ganon" stuff - if world.no_escape_sequence: - rom.write_bytes(0xD82A12, [0x05, 0x17]) # Sets exit from Ganondorf fight to entrance to Ganon fight - if world.unlocked_ganondorf: - write_bits_to_save(0x00D4 + 0x0A * 0x1C + 0x04 + 0x1, 0x10) # Ganon's Tower switch flag (unlock boss key door) - if world.skipped_trials['Forest']: - write_bits_to_save(0x0EEA, 0x08) # "Completed Forest Trial" - if world.skipped_trials['Fire']: - write_bits_to_save(0x0EEA, 0x40) # "Completed Fire Trial" - if world.skipped_trials['Water']: - write_bits_to_save(0x0EEA, 0x10) # "Completed Water Trial" - if world.skipped_trials['Spirit']: - write_bits_to_save(0x0EE8, 0x20) # "Completed Spirit Trial" - if world.skipped_trials['Shadow']: - write_bits_to_save(0x0EEA, 0x20) # "Completed Shadow Trial" - if world.skipped_trials['Light']: - write_bits_to_save(0x0EEA, 0x80) # "Completed Light Trial" - if world.trials == 0: - write_bits_to_save(0x0EED, 0x08) # "Dispelled Ganon's Tower Barrier" - - # open gerudo fortress - if world.gerudo_fortress == 'open': - write_bits_to_save(0x00A5, 0x40) # Give Gerudo Card - write_bits_to_save(0x0EE7, 0x0F) # Free all 4 carpenters - write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x04 + 0x1, 0x0F) # Thieves' Hideout switch flags (started all fights) - write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x04 + 0x2, 0x01) # Thieves' Hideout switch flags (heard yells/unlocked doors) - write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x04 + 0x3, 0xFE) # Thieves' Hideout switch flags (heard yells/unlocked doors) - write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x0C + 0x2, 0xD4) # Thieves' Hideout collection flags (picked up keys, marks fights finished as well) - elif world.gerudo_fortress == 'fast': - write_bits_to_save(0x0EE7, 0x0E) # Free 3 carpenters - write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x04 + 0x1, 0x0D) # Thieves' Hideout switch flags (started all fights) - write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x04 + 0x2, 0x01) # Thieves' Hideout switch flags (heard yells/unlocked doors) - write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x04 + 0x3, 0xDC) # Thieves' Hideout switch flags (heard yells/unlocked doors) - write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x0C + 0x2, 0xC4) # Thieves' Hideout collection flags (picked up keys, marks fights finished as well) - - # Revert change that Skips the Epona Race - if not world.no_epona_race: - rom.write_int32(0xA9E838, 0x03E00008) - - # skip castle guard stealth sequence - if world.no_guard_stealth: - # change the exit at child/day crawlspace to the end of zelda's goddess cutscene - rom.write_bytes(0x21F60DE, [0x05, 0xF0]) - - - messages = read_messages(rom) - shop_items = read_shop_items(rom) - remove_unused_messages(messages) - - # Set Big Poe count to get reward from buyer - if world.big_poe_count == 'random': - world.big_poe_count = str(random.randint(1, 10)) - poe_points = int(world.big_poe_count) * 100 - rom.write_int16(0xEE69CE, poe_points) - # update dialogue - if world.big_poe_count != 10: - new_message = "\x1AOh, you brought a Poe today!\x04\x1AHmmmm!\x04\x1AVery interesting!\x01This is a \x05\x41Big Poe\x05\x40!\x04\x1AI'll buy it for \x05\x4150 Rupees\x05\x40.\x04On top of that, I'll put \x05\x41100\x01points \x05\x40on your card.\x04\x1AIf you earn \x05\x41%d points\x05\x40, you'll\x01be a happy man! Heh heh." % poe_points - update_message_by_id(messages, 0x70f7, new_message) - new_message = "\x1AWait a minute! WOW!\x04\x1AYou have earned \x05\x41%d points\x05\x40!\x04\x1AYoung man, you are a genuine\x01\x05\x41Ghost Hunter\x05\x40!\x04\x1AIs that what you expected me to\x01say? Heh heh heh!\x04\x1ABecause of you, I have extra\x01inventory of \x05\x41Big Poes\x05\x40, so this will\x01be the last time I can buy a \x01ghost.\x04\x1AYou're thinking about what I \x01promised would happen when you\x01earned %d points. Heh heh.\x04\x1ADon't worry, I didn't forget.\x01Just take this." % (poe_points, poe_points) - update_message_by_id(messages, 0x70f8, new_message) - - # Sets hooks for gossip stone changes - if world.hints != 'none': - if world.hints != 'mask': - rom.write_bytes(0xEE7B84, [0x0C, 0x10, 0x02, 0x10]) - rom.write_bytes(0xEE7B8C, [0x24, 0x02, 0x00, 0x20]) - buildGossipHints(world, messages) - - # build silly ganon lines - buildGanonText(world, messages) - - # Write item overrides - override_table = get_override_table(world) - rom.write_bytes(0x3481000, sum(override_table, [])) - rom.write_byte(0x03481C00, world.id + 1) # Write player ID - - # Revert Song Get Override Injection - if not world.shuffle_song_items: - # general get song - rom.write_int32(0xAE5DF8, 0x240200FF) - rom.write_int32(0xAE5E04, 0xAD0F00A4) - # requiem of spirit - rom.write_int32s(0xAC9ABC, [0x3C010001, 0x00300821]) - # sun song - rom.write_int32(0xE09F68, 0x8C6F00A4) - rom.write_int32(0xE09F74, 0x01CFC024) - rom.write_int32(0xE09FB0, 0x240F0001) - # epona - rom.write_int32(0xD7E77C, 0x8C4900A4) - rom.write_int32(0xD7E784, 0x8D088C24) - rom.write_int32s(0xD7E8D4, [0x8DCE8C24, 0x8C4F00A4]) - rom.write_int32s(0xD7E140, [0x8DCE8C24, 0x8C6F00A4]) - rom.write_int32(0xD7EBBC, 0x14410008) - rom.write_int32(0xD7EC1C, 0x17010010) - # song of time - rom.write_int32(0xDB532C, 0x24050003) - - # Set Default targeting option to Hold - if world.default_targeting == 'hold': - rom.write_bytes(0xB07200, [0x20, 0x0C, 0x00, 0x01 ]) - - # Set OHKO mode - if world.difficulty == 'ohko': - rom.write_int32(0xAE80A8, 0xA4A00030) # sh zero,48(a1) - rom.write_int32(0xAE80B4, 0x06000003) # bltz s0, +0003 - - # Patch songs and boss rewards - for location in world.get_locations(): - item = location.item - itemid = copy.copy(item.code) - locationaddress = location.address - secondaryaddress = location.address2 - - if itemid is None or location.address is None: - continue - - if location.type == 'Song' and not world.shuffle_song_items: - rom.write_byte(locationaddress, itemid[0]) - itemid[0] = itemid[0] + 0x0D - rom.write_byte(secondaryaddress, itemid[0]) - if location.name == 'Impa at Castle': - impa_fix = 0x65 - itemid[1] - rom.write_byte(0xD12ECB, impa_fix) - rom.write_byte(0x2E8E931, item_data[item.name]) #Fix text box - elif location.name == 'Song from Malon': - if item.name == 'Suns Song': - rom.write_byte(locationaddress, itemid[0]) - malon_fix = 0x8C34 - (itemid[1] * 4) - malon_fix_high = malon_fix >> 8 - malon_fix_low = malon_fix & 0x00FF - rom.write_bytes(0xD7E142, [malon_fix_high, malon_fix_low]) - rom.write_bytes(0xD7E8D6, [malon_fix_high, malon_fix_low]) # I really don't like hardcoding these addresses, but for now..... - rom.write_bytes(0xD7E786, [malon_fix_high, malon_fix_low]) - rom.write_byte(0x29BECB9, item_data[item.name]) #Fix text box - elif location.name == 'Song from Composer Grave': - sun_fix = 0x8C34 - (itemid[1] * 4) - sun_fix_high = sun_fix >> 8 - sun_fix_low = sun_fix & 0x00FF - rom.write_bytes(0xE09F66, [sun_fix_high, sun_fix_low]) - rom.write_byte(0x332A87D, item_data[item.name]) #Fix text box - elif location.name == 'Song from Saria': - saria_fix = 0x65 - itemid[1] - rom.write_byte(0xE2A02B, saria_fix) - rom.write_byte(0x20B1DBD, item_data[item.name]) #Fix text box - elif location.name == 'Song from Ocarina of Time': - rom.write_byte(0x252FC95, item_data[item.name]) #Fix text box - elif location.name == 'Song at Windmill': - windmill_fix = 0x65 - itemid[1] - rom.write_byte(0xE42ABF, windmill_fix) - rom.write_byte(0x3041091, item_data[item.name]) #Fix text box - elif location.name == 'Sheik Forest Song': - minuet_fix = 0x65 - itemid[1] - rom.write_byte(0xC7BAA3, minuet_fix) - rom.write_byte(0x20B0815, item_data[item.name]) #Fix text box - elif location.name == 'Sheik at Temple': - prelude_fix = 0x65 - itemid[1] - rom.write_byte(0xC805EF, prelude_fix) - rom.write_byte(0x2531335, item_data[item.name]) #Fix text box - elif location.name == 'Sheik in Crater': - bolero_fix = 0x65 - itemid[1] - rom.write_byte(0xC7BC57, bolero_fix) - rom.write_byte(0x224D7FD, item_data[item.name]) #Fix text box - elif location.name == 'Sheik in Ice Cavern': - serenade_fix = 0x65 - itemid[1] - rom.write_byte(0xC7BD77, serenade_fix) - rom.write_byte(0x2BEC895, item_data[item.name]) #Fix text box - elif location.name == 'Sheik in Kakariko': - nocturne_fix = 0x65 - itemid[1] - rom.write_byte(0xAC9A5B, nocturne_fix) - rom.write_byte(0x2000FED, item_data[item.name]) #Fix text box - elif location.name == 'Sheik at Colossus': - rom.write_byte(0x218C589, item_data[item.name]) #Fix text box - elif location.type == 'Boss': - if location.name == 'Links Pocket': - write_bits_to_save(item_data[item.name][1], item_data[item.name][0]) - else: - rom.write_byte(locationaddress, itemid) - rom.write_byte(secondaryaddress, item_data[item.name][2]) - if location.name == 'Bongo Bongo': - rom.write_bytes(0xCA3F32, [item_data[item.name][3][0], item_data[item.name][3][1]]) - rom.write_bytes(0xCA3F36, [item_data[item.name][3][2], item_data[item.name][3][3]]) - elif location.name == 'Twinrova': - rom.write_bytes(0xCA3EA2, [item_data[item.name][3][0], item_data[item.name][3][1]]) - rom.write_bytes(0xCA3EA6, [item_data[item.name][3][2], item_data[item.name][3][3]]) - - if world.bombchus_in_logic: - # add a cheaper bombchu pack to the bombchu shop - # describe - add_message(messages, '\x08\x05\x41Bombchu (5 pieces) 60 Rupees\x01\x05\x40This looks like a toy mouse, but\x01it\'s actually a self-propelled time\x01bomb!\x09\x0A', 0x80FE, 0x03) - # purchase - add_message(messages, '\x08Bombchu 5 Pieces 60 Rupees\x01\x01\x1B\x05\x42Buy\x01Don\'t buy\x05\x40\x09', 0x80FF, 0x03) - rbl_bombchu = shop_items[0x0018] - rbl_bombchu.price = 60 - rbl_bombchu.pieces = 5 - rbl_bombchu.get_item_id = 0x006A - rbl_bombchu.description_message = 0x80FE - rbl_bombchu.purchase_message = 0x80FF - - # Reduce 10 Pack Bombchus from 100 to 99 Rupees - shop_items[0x0015].price = 99 - shop_items[0x0019].price = 99 - shop_items[0x001C].price = 99 - update_message_by_id(messages, shop_items[0x001C].description_message, "\x08\x05\x41Bombchu (10 pieces) 99 Rupees\x01\x05\x40This looks like a toy mouse, but\x01it's actually a self-propelled time\x01bomb!\x09\x0A") - update_message_by_id(messages, shop_items[0x001C].purchase_message, "\x08Bombchu 10 pieces 100 Rupees\x09\x01\x01\x1B\x05\x42Buy\x01Don't buy\x05\x40") - - #Fix bombchu chest animations - chestAnimations = { - 0x6A: 0x28, #0xD8 #Bombchu (5) - 0x03: 0x28, #0xD8 #Bombchu (10) - 0x6B: 0x28, #0xD8 #Bombchu (20) - } - for item_id, gfx_id in chestAnimations.items(): - rom.write_byte(0xBEEE8E + (item_id * 6) + 2, gfx_id) - - #Fix item chest animations - chestAnimations = { - 0x3D: 0xED, #0x13 #Heart Container - 0x3E: 0xEC, #0x14 #Piece of Heart - 0x42: 0x02, #0xFE #Small Key - 0x48: 0xF7, #0x09 #Recovery Heart - 0x4F: 0xED, #0x13 #Heart Container - 0x76: 0xEC, #0x14 #WINNER! Piece of Heart - } - for item_id, gfx_id in chestAnimations.items(): - rom.write_byte(0xBEEE8E + (item_id * 6) + 2, gfx_id) - - # Update chest type sizes - if world.correct_chest_sizes: - update_chest_sizes(rom, override_table) - - # Move Ganon's Castle's Zelda's Lullaby Chest back so is reachable if large - rom.write_int16(0x321B176, 0xFC40) # original 0xFC48 - - # give dungeon items the correct messages - message_patch_for_dungeon_items(messages, shop_items, world) - if world.enhance_map_compass and world.shuffle_dungeon_items != 'off': - reward_list = {'Kokiri Emerald': "\x05\x42Kokiri Emerald\x05\x40", - 'Goron Ruby': "\x05\x41Goron Ruby\x05\x40", - 'Zora Sapphire': "\x05\x43Zora Sapphire\x05\x40", - 'Forest Medallion': "\x05\x42Forest Medallion\x05\x40", - 'Fire Medallion': "\x05\x41Fire Medallion\x05\x40", - 'Water Medallion': "\x05\x43Water Medallion\x05\x40", - 'Spirit Medallion': "\x05\x46Spirit Medallion\x05\x40", - 'Shadow Medallion': "\x05\x45Shadow Medallion\x05\x40", - 'Light Medallion': "\x05\x44Light Medallion\x05\x40" - } - dungeon_list = {'DT': ("the \x05\x42Deku Tree", 'Queen Gohma', 0x62, 0x88), - 'DC': ("\x05\x41Dodongo\'s Cavern", 'King Dodongo', 0x63, 0x89), - 'JB': ("\x05\x43Jabu Jabu\'s Belly", 'Barinade', 0x64, 0x8a), - 'FoT': ("the \x05\x42Forest Temple", 'Phantom Ganon', 0x65, 0x8b), - 'FiT': ("the \x05\x41Fire Temple", 'Volvagia', 0x7c, 0x8c), - 'WT': ("the \x05\x43Water Temple", 'Morpha', 0x7d, 0x8e), - 'SpT': ("the \x05\x46Spirit Temple", 'Twinrova', 0x7e, 0x8f), - 'ShT': ("the \x05\x45Shadow Temple", 'Bongo Bongo', 0x7f, 0xa3), - 'BW': ("the \x05\x45Bottom of the Well", None, 0xa2, 0xa5), - 'IC': ("the \x05\x44Ice Cavern", None, 0x87, 0x92) - } - for dungeon in world.dungeon_mq: - if dungeon in ['GTG', 'GC']: - pass - elif dungeon in ['BW', 'IC']: - dungeon_name, boss_name, compass_id, map_id = dungeon_list[dungeon] - if world.quest == 'mixed': - map_message = "\x13\x76\x08You found the \x05\x41Dungeon Map\x05\x40\x01for %s\x05\x40!\x01It\'s %s!\x09" % (dungeon_name, "masterful" if world.dungeon_mq[dungeon] else "ordinary") - update_message_by_id(messages, map_id, map_message) - else: - dungeon_name, boss_name, compass_id, map_id = dungeon_list[dungeon] - dungeon_reward = reward_list[world.get_location(boss_name).item.name] - compass_message = "\x13\x75\x08You found the \x05\x41Compass\x05\x40\x01for %s\x05\x40!\x01It holds the %s!\x09" % (dungeon_name, dungeon_reward) - update_message_by_id(messages, compass_id, compass_message) - if world.quest == 'mixed': - map_message = "\x13\x76\x08You found the \x05\x41Dungeon Map\x05\x40\x01for %s\x05\x40!\x01It\'s %s!\x09" % (dungeon_name, "masterful" if world.dungeon_mq[dungeon] else "ordinary") - update_message_by_id(messages, map_id, map_message) - - else: - # Set hints for boss reward shuffle - rom.write_bytes(0xE2ADB2, [0x70, 0x7A]) - rom.write_bytes(0xE2ADB6, [0x70, 0x57]) - buildBossRewardHints(world, messages) - - # update happy mask shop to use new SOLD OUT text id - rom.write_int16(0xC01C06, shop_items[0x26].description_message) - - # add song messages - add_song_messages(messages, world) - - # reduce item message lengths - update_item_messages(messages, world) - - repack_messages(rom, messages) - write_shop_items(rom, shop_items) - - # text shuffle - if world.text_shuffle == 'except_hints': - shuffle_messages(rom, True) - elif world.text_shuffle == 'complete': - shuffle_messages(rom, False) - - # output a text dump, for testing... - #with open('keysanity_' + str(world.seed) + '_dump.txt', 'w', encoding='utf-16') as f: - # messages = read_messages(rom) - # f.write('item_message_strings = {\n') - # for m in messages: - # f.write("\t0x%04X: \"%s\",\n" % (m.id, m.get_python_string())) - # f.write('}\n') - - - scarecrow_song = None - if world.free_scarecrow: - original_songs = [ - 'LURLUR', - 'ULRULR', - 'DRLDRL', - 'RDURDU', - 'RADRAD', - 'ADUADU', - 'AULRLR', - 'DADALDLD', - 'ADRRL', - 'ADALDA', - 'LRRALRD', - 'URURLU' - ] - - note_map = { - 'A': 0, - 'D': 1, - 'R': 2, - 'L': 3, - 'U': 4 - } - - if len(world.scarecrow_song) != 8: - raise Exception('Scarecrow Song must be 8 notes long') - - if len(set(world.scarecrow_song.upper())) == 1: - raise Exception('Scarecrow Song must contain at least two different notes') - - notes = [] - for c in world.scarecrow_song.upper(): - if c not in note_map: - raise Exception('Invalid note %s. Valid notes are A, D, R, L, U' % c) - - notes.append(note_map[c]) - scarecrow_song = Song(activation=notes) - - if not world.ocarina_songs: - for original_song in original_songs: - song_notes = [] - for c in original_song: - song_notes.append(note_map[c]) - song = Song(activation=song_notes) - - if subsong(scarecrow_song, song): - raise Exception('You may not have the Scarecrow Song contain an existing song') - - write_bits_to_save(0x0EE6, 0x10) # Played song as adult - write_byte_to_save(0x12C5, 0x01) # Song is remembered - write_bytes_to_save(0x12C6, scarecrow_song.playback_data[:(16*8)], lambda v: v != 0) - - if world.ocarina_songs: - replace_songs(rom, scarecrow_song) - - # actually write the save table to rom - write_save_table(rom) - - # re-seed for aesthetic effects. They shouldn't be affected by the generation seed - random.seed() - - # patch music - if world.background_music == 'random': - randomize_music(rom) - elif world.background_music == 'off': - disable_music(rom) - - # patch mq scenes - mq_scenes = [] - if world.dungeon_mq['DT']: - mq_scenes.append(0) - if world.dungeon_mq['DC']: - mq_scenes.append(1) - if world.dungeon_mq['JB']: - mq_scenes.append(2) - if world.dungeon_mq['FoT']: - mq_scenes.append(3) - if world.dungeon_mq['FiT']: - mq_scenes.append(4) - if world.dungeon_mq['WT']: - mq_scenes.append(5) - if world.dungeon_mq['SpT']: - mq_scenes.append(6) - if world.dungeon_mq['ShT']: - mq_scenes.append(7) - if world.dungeon_mq['BW']: - mq_scenes.append(8) - if world.dungeon_mq['IC']: - mq_scenes.append(9) - # Scene 10 has no layout changes, so it doesn't need to be patched - if world.dungeon_mq['GTG']: - mq_scenes.append(11) - if world.dungeon_mq['GC']: - mq_scenes.append(13) - - patch_files(rom, mq_scenes) - - # patch tunic colors - # Custom color tunic stuff - Tunics = [] - Tunics.append(0x00B6DA38) # Kokiri Tunic - Tunics.append(0x00B6DA3B) # Goron Tunic - Tunics.append(0x00B6DA3E) # Zora Tunic - colorList = get_tunic_colors() - randomColors = random.choices(colorList, k=3) - - for i in range(len(Tunics)): - # get the color option - thisColor = world.tunic_colors[i] - # handle true random - randColor = [random.getrandbits(8), random.getrandbits(8), random.getrandbits(8)] - if thisColor == 'Completely Random': - color = randColor - else: - # handle random - if world.tunic_colors[i] == 'Random Choice': - thisColor = randomColors[i] - # grab the color from the list - color = TunicColors[thisColor] - rom.write_bytes(Tunics[i], color) - - # patch navi colors - Navi = [] - Navi.append([0x00B5E184]) # Default - Navi.append([0x00B5E19C, 0x00B5E1BC]) # Enemy, Boss - Navi.append([0x00B5E194]) # NPC - Navi.append([0x00B5E174, 0x00B5E17C, 0x00B5E18C, 0x00B5E1A4, 0x00B5E1AC, 0x00B5E1B4, 0x00B5E1C4, 0x00B5E1CC, 0x00B5E1D4]) # Everything else - naviList = get_navi_colors() - randomColors = random.choices(naviList, k=4) - - for i in range(len(Navi)): - # do everything in the inner loop so that "true random" changes even for subcategories - for j in range(len(Navi[i])): - # get the color option - thisColor = world.navi_colors[i] - # handle true random - randColor = [random.getrandbits(8), random.getrandbits(8), random.getrandbits(8), 0xFF, - random.getrandbits(8), random.getrandbits(8), random.getrandbits(8), 0x00] - if thisColor == 'Completely Random': - color = randColor - else: - # handle random - if world.navi_colors[i] == 'Random Choice': - thisColor = randomColors[i] - # grab the color from the list - color = NaviColors[thisColor] - rom.write_bytes(Navi[i][j], color) - - #Navi hints - NaviHint = [] - NaviHint.append([0xAE7EF2, 0xC26C7E]) #Overworld Hint - NaviHint.append([0xAE7EC6]) #Enemy Target Hint - naviHintSFXList = ['Default', 'Notification', 'Rupee', 'Timer', 'Tamborine', 'Recovery Heart', 'Carrot Refill', 'Navi - Hey!', 'Navi - Random', 'Zelda - Gasp', 'Cluck', 'Mweep!', 'None'] - randomNaviHintSFX = random.choices(naviHintSFXList, k=2) - - for i in range(len(NaviHint)): - for j in range(len(NaviHint[i])): - thisNaviHintSFX = world.navi_hint_sounds[i] - if thisNaviHintSFX == 'Random Choice': - thisNaviHintSFX = randomNaviHintSFX[i] - if thisNaviHintSFX == 'Notification': - naviHintSFX = [0x48, 0x20] - elif thisNaviHintSFX == 'Rupee': - naviHintSFX = [0x48, 0x03] - elif thisNaviHintSFX == 'Timer': - naviHintSFX = [0x48, 0x1A] - elif thisNaviHintSFX == 'Tamborine': - naviHintSFX = [0x48, 0x42] - elif thisNaviHintSFX == 'Recovery Heart': - naviHintSFX = [0x48, 0x0B] - elif thisNaviHintSFX == 'Carrot Refill': - naviHintSFX = [0x48, 0x45] - elif thisNaviHintSFX == 'Navi - Hey!': - naviHintSFX = [0x68, 0x5F] - elif thisNaviHintSFX == 'Navi - Random': - naviHintSFX = [0x68, 0x43] - elif thisNaviHintSFX == 'Zelda - Gasp': - naviHintSFX = [0x68, 0x79] - elif thisNaviHintSFX == 'Cluck': - naviHintSFX = [0x28, 0x12] - elif thisNaviHintSFX == 'Mweep!': - naviHintSFX = [0x68, 0x7A] - elif thisNaviHintSFX == 'None': - naviHintSFX = [0x00, 0x00] - if thisNaviHintSFX != 'Default': - rom.write_bytes(NaviHint[i][j], naviHintSFX) - - #Low health beep - healthSFXList = ['Default', 'Softer Beep', 'Rupee', 'Timer', 'Tamborine', 'Recovery Heart', 'Carrot Refill', 'Navi - Hey!', 'Zelda - Gasp', 'Cluck', 'Mweep!', 'None'] - randomSFX = random.choice(healthSFXList) - address = 0xADBA1A - - if world.healthSFX == 'Random Choice': - thisHealthSFX = randomSFX - else: - thisHealthSFX = world.healthSFX - if thisHealthSFX == 'Default': - healthSFX = [0x48, 0x1B] - elif thisHealthSFX == 'Softer Beep': - healthSFX = [0x48, 0x04] - elif thisHealthSFX == 'Rupee': - healthSFX = [0x48, 0x03] - elif thisHealthSFX == 'Timer': - healthSFX = [0x48, 0x1A] - elif thisHealthSFX == 'Tamborine': - healthSFX = [0x48, 0x42] - elif thisHealthSFX == 'Recovery Heart': - healthSFX = [0x48, 0x0B] - elif thisHealthSFX == 'Carrot Refill': - healthSFX = [0x48, 0x45] - elif thisHealthSFX == 'Navi - Hey!': - healthSFX = [0x68, 0x5F] - elif thisHealthSFX == 'Zelda - Gasp': - healthSFX = [0x68, 0x79] - elif thisHealthSFX == 'Cluck': - healthSFX = [0x28, 0x12] - elif thisHealthSFX == 'Mweep!': - healthSFX = [0x68, 0x7A] - elif thisHealthSFX == 'None': - healthSFX = [0x00, 0x00, 0x00, 0x00] - address = 0xADBA14 - rom.write_bytes(address, healthSFX) - - return rom - -def get_override_table(world): - override_entries = [] - for location in world.get_locations(): - override_entries.append(get_override_entry(location)) - override_entries.sort() - return override_entries - -def get_override_entry(location): - scene = location.scene - default = location.default - item_id = location.item.index - if None in [scene, default, item_id]: - return [] - - player_id = (location.item.world.id + 1) << 3 - - if location.type in ['NPC', 'BossHeart', 'Song']: - return [scene, player_id | 0x00, default, item_id] - elif location.type == 'Chest': - flag = default & 0x1F - return [scene, player_id | 0x01, flag, item_id] - elif location.type == 'Collectable': - return [scene, player_id | 0x02, default, item_id] - elif location.type == 'GS Token': - return [scene, player_id | 0x03, default, item_id] - else: - return [] - - -chestTypeMap = { - # small big boss - 0x0000: [0x5000, 0x0000, 0x2000], #Large - 0x1000: [0x7000, 0x1000, 0x1000], #Large, Appears, Clear Flag - 0x2000: [0x5000, 0x0000, 0x2000], #Boss Key’s Chest - 0x3000: [0x8000, 0x3000, 0x3000], #Large, Falling, Switch Flag - 0x4000: [0x6000, 0x4000, 0x4000], #Large, Invisible - 0x5000: [0x5000, 0x0000, 0x2000], #Small - 0x6000: [0x6000, 0x4000, 0x4000], #Small, Invisible - 0x7000: [0x7000, 0x1000, 0x1000], #Small, Appears, Clear Flag - 0x8000: [0x8000, 0x3000, 0x3000], #Small, Falling, Switch Flag - 0x9000: [0x9000, 0x9000, 0x9000], #Large, Appears, Zelda's Lullaby - 0xA000: [0xA000, 0xA000, 0xA000], #Large, Appears, Sun's Song Triggered - 0xB000: [0xB000, 0xB000, 0xB000], #Large, Appears, Switch Flag - 0xC000: [0x5000, 0x0000, 0x2000], #Large - 0xD000: [0x5000, 0x0000, 0x2000], #Large - 0xE000: [0x5000, 0x0000, 0x2000], #Large - 0xF000: [0x5000, 0x0000, 0x2000], #Large -} - -chestAnimationExtendedFast = [ - 0x87, # Progressive Nut Capacity - 0x88, # Progressive Stick Capacity - 0xB6, # Recovery Heart - 0xB7, # Arrows (5) - 0xB8, # Arrows (10) - 0xB9, # Arrows (30) - 0xBA, # Bombs (5) - 0xBB, # Bombs (10) - 0xBC, # Bombs (20) - 0xBD, # Deku Nuts (5) - 0xBE, # Deku Nuts (10) -] - - -def room_get_chests(rom, room_data, scene, chests, alternate=None): - room_start = alternate or room_data - command = 0 - while command != 0x14: # 0x14 = end header - command = rom.read_byte(room_data) - if command == 0x01: # actor list - actor_count = rom.read_byte(room_data + 1) - actor_list = room_start + (rom.read_int32(room_data + 4) & 0x00FFFFFF) - for _ in range(0, actor_count): - actor_id = rom.read_int16(actor_list); - actor_var = rom.read_int16(actor_list + 14) - if actor_id == 0x000A: #Chest Actor - chests[actor_list + 14] = [scene, actor_var & 0x001F] - actor_list = actor_list + 16 - if command == 0x18 and scene >= 81 and scene <= 99: # Alternate header list - header_list = room_start + (rom.read_int32(room_data + 4) & 0x00FFFFFF) - for alt_id in range(0,2): - header_data = room_start + (rom.read_int32(header_list + 4) & 0x00FFFFFF) - if header_data != 0 and not alternate: - room_get_chests(rom, header_data, scene, chests, room_start) - header_list = header_list + 4 - room_data = room_data + 8 - - -def scene_get_chests(rom, scene_data, scene, chests, alternate=None): - scene_start = alternate or scene_data - command = 0 - while command != 0x14: # 0x14 = end header - command = rom.read_byte(scene_data) - if command == 0x04: #room list - room_count = rom.read_byte(scene_data + 1) - room_list = scene_start + (rom.read_int32(scene_data + 4) & 0x00FFFFFF) - for _ in range(0, room_count): - room_data = rom.read_int32(room_list); - room_get_chests(rom, room_data, scene, chests) - room_list = room_list + 8 - if command == 0x18 and scene >= 81 and scene <= 99: # Alternate header list - header_list = scene_start + (rom.read_int32(scene_data + 4) & 0x00FFFFFF) - for alt_id in range(0,2): - header_data = scene_start + (rom.read_int32(header_list + 4) & 0x00FFFFFF) - if header_data != 0 and not alternate: - scene_get_chests(rom, header_data, scene, chests, scene_start) - header_list = header_list + 4 - - scene_data = scene_data + 8 - - -def get_chest_list(rom): - chests = {} - scene_table = 0x00B71440 - for scene in range(0x00, 0x65): - scene_data = rom.read_int32(scene_table + (scene * 0x14)); - scene_get_chests(rom, scene_data, scene, chests) - return chests - - -def get_override_itemid(override_table, scene, type, flags): - for entry in override_table: - if len(entry) == 4 and entry[0] == scene and (entry[1] & 0x07) == type and entry[2] == flags: - return entry[3] - return None - -def update_chest_sizes(rom, override_table): - chest_list = get_chest_list(rom) - for address, [scene, flags] in chest_list.items(): - item_id = get_override_itemid(override_table, scene, 1, flags) - - if None in [address, scene, flags, item_id]: - continue - - itemType = 0 # Item animation - - if item_id >= 0x80: # if extended item, always big except from exception list - itemType = 0 if item_id in chestAnimationExtendedFast else 1 - elif rom.read_byte(0xBEEE8E + (item_id * 6) + 2) & 0x80: # get animation from rom, ice trap is big - itemType = 0 # No animation, small chest - else: - itemType = 1 # Long animation, big chest - # Don't use boss chests - - default = rom.read_int16(address) - chestType = default & 0xF000 - newChestType = chestTypeMap[chestType][itemType] - default = (default & 0x0FFF) | newChestType - rom.write_int16(address, default) - - -# Format: (Title, Sequence ID) -bgm_sequence_ids = [ - ('Hyrule Field', 0x02), - ('Dodongos Cavern', 0x18), - ('Kakariko Adult', 0x19), - ('Battle', 0x1A), - ('Boss Battle', 0x1B), - ('Inside Deku Tree', 0x1C), - ('Market', 0x1D), - ('Title Theme', 0x1E), - ('House', 0x1F), - ('Jabu Jabu', 0x26), - ('Kakariko Child', 0x27), - ('Fairy Fountain', 0x28), - ('Zelda Theme', 0x29), - ('Fire Temple', 0x2A), - ('Forest Temple', 0x2C), - ('Castle Courtyard', 0x2D), - ('Ganondorf Theme', 0x2E), - ('Lon Lon Ranch', 0x2F), - ('Goron City', 0x30), - ('Miniboss Battle', 0x38), - ('Temple of Time', 0x3A), - ('Kokiri Forest', 0x3C), - ('Lost Woods', 0x3E), - ('Spirit Temple', 0x3F), - ('Horse Race', 0x40), - ('Ingo Theme', 0x42), - ('Fairy Flying', 0x4A), - ('Deku Tree', 0x4B), - ('Windmill Hut', 0x4C), - ('Shooting Gallery', 0x4E), - ('Sheik Theme', 0x4F), - ('Zoras Domain', 0x50), - ('Shop', 0x55), - ('Chamber of the Sages', 0x56), - ('File Select', 0x57), - ('Ice Cavern', 0x58), - ('Kaepora Gaebora', 0x5A), - ('Shadow Temple', 0x5B), - ('Water Temple', 0x5C), - ('Gerudo Valley', 0x5F), - ('Potion Shop', 0x60), - ('Kotake and Koume', 0x61), - ('Castle Escape', 0x62), - ('Castle Underground', 0x63), - ('Ganondorf Battle', 0x64), - ('Ganon Battle', 0x65), - ('Fire Boss', 0x6B), - ('Mini-game', 0x6C) -] - -def randomize_music(rom): - # Read in all the Music data - bgm_data = [] - for bgm in bgm_sequence_ids: - bgm_sequence = rom.read_bytes(0xB89AE0 + (bgm[1] * 0x10), 0x10) - bgm_instrument = rom.read_int16(0xB89910 + 0xDD + (bgm[1] * 2)) - bgm_data.append((bgm_sequence, bgm_instrument)) - - # shuffle data - random.shuffle(bgm_data) - - # Write Music data back in random ordering - for bgm in bgm_sequence_ids: - bgm_sequence, bgm_instrument = bgm_data.pop() - rom.write_bytes(0xB89AE0 + (bgm[1] * 0x10), bgm_sequence) - rom.write_int16(0xB89910 + 0xDD + (bgm[1] * 2), bgm_instrument) - -def disable_music(rom): - # First track is no music - blank_track = rom.read_bytes(0xB89AE0 + (0 * 0x10), 0x10) - for bgm in bgm_sequence_ids: - rom.write_bytes(0xB89AE0 + (bgm[1] * 0x10), blank_track) - +import io +import json +import logging +import os +import platform +import struct +import subprocess +import random +import copy + +from Hints import writeGossipStoneHintsHints, buildBossRewardHints, buildGanonText +from Utils import local_path, default_output_path +from Items import ItemFactory, item_data +from Messages import * +from OcarinaSongs import Song, str_to_song, replace_songs +from MQ import patch_files, File, update_dmadata, insert_space, add_relocations + +TunicColors = { + "Custom Color": [0, 0, 0], + "Kokiri Green": [0x1E, 0x69, 0x1B], + "Goron Red": [0x64, 0x14, 0x00], + "Zora Blue": [0x00, 0x3C, 0x64], + "Black": [0x30, 0x30, 0x30], + "White": [0xF0, 0xF0, 0xFF], + "Azure Blue": [0x13, 0x9E, 0xD8], + "Vivid Cyan": [0x13, 0xE9, 0xD8], + "Light Red": [0xF8, 0x7C, 0x6D], + "Fuchsia":[0xFF, 0x00, 0xFF], + "Purple": [0x95, 0x30, 0x80], + "MM Purple": [0x50, 0x52, 0x9A], + "Twitch Purple": [0x64, 0x41, 0xA5], + "Purple Heart": [0x8A, 0x2B, 0xE2], + "Persian Rose": [0xFF, 0x14, 0x93], + "Dirty Yellow": [0xE0, 0xD8, 0x60], + "Blush Pink": [0xF8, 0x6C, 0xF8], + "Hot Pink": [0xFF, 0x69, 0xB4], + "Rose Pink": [0xFF, 0x90, 0xB3], + "Orange": [0xE0, 0x79, 0x40], + "Gray": [0xA0, 0xA0, 0xB0], + "Gold": [0xD8, 0xB0, 0x60], + "Silver": [0xD0, 0xF0, 0xFF], + "Beige": [0xC0, 0xA0, 0xA0], + "Teal": [0x30, 0xD0, 0xB0], + "Blood Red": [0x83, 0x03, 0x03], + "Blood Orange": [0xFE, 0x4B, 0x03], + "Royal Blue": [0x40, 0x00, 0x90], + "Sonic Blue": [0x50, 0x90, 0xE0], + "NES Green": [0x00, 0xD0, 0x00], + "Dark Green": [0x00, 0x25, 0x18], + "Lumen": [80, 140, 240], +} + +NaviColors = { + "Custom Color": [0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00], + "Gold": [0xFE, 0xCC, 0x3C, 0xFF, 0xFE, 0xC0, 0x07, 0x00], + "White": [0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00], + "Green": [0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00], + "Light Blue": [0x96, 0x96, 0xFF, 0xFF, 0x96, 0x96, 0xFF, 0x00], + "Yellow": [0xFF, 0xFF, 0x00, 0xFF, 0xC8, 0x9B, 0x00, 0x00], + "Red": [0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00], + "Magenta": [0xFF, 0x00, 0xFF, 0xFF, 0xC8, 0x00, 0x9B, 0x00], + "Black": [0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00], + "Tatl": [0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0x98, 0x00, 0x00], + "Tael": [0x49, 0x14, 0x6C, 0xFF, 0xFF, 0x00, 0x00, 0x00], +} + +def get_tunic_colors(): + return list(TunicColors.keys()) + +def get_tunic_color_options(): + return ["Random Choice", "Completely Random"] + get_tunic_colors() + +def get_navi_colors(): + return list(NaviColors.keys()) + +def get_navi_color_options(): + return ["Random Choice", "Completely Random"] + get_navi_colors() + +def patch_rom(world, rom): + with open(local_path('data/rom_patch.txt'), 'r') as stream: + for line in stream: + address, value = [int(x, 16) for x in line.split(',')] + rom.write_byte(address, value) + + # Write Randomizer title screen logo + with open(local_path('data/title.bin'), 'rb') as stream: + titleBytes = stream.read() + rom.write_bytes(0x01795300, titleBytes) + + # Can always return to youth + rom.write_byte(0xCB6844, 0x35) + rom.write_byte(0x253C0E2, 0x03) # Moves sheik from pedestal + + # Fix child shooting gallery reward to be static + rom.write_bytes(0xD35EFC, [0x00, 0x00, 0x00, 0x00]) + + # Fix target in woods reward to be static + rom.write_bytes(0xE59CD4, [0x00, 0x00, 0x00, 0x00]) + + # Fix GS rewards to be static + rom.write_bytes(0xEA3934, [0x00, 0x00, 0x00, 0x00]) + rom.write_bytes(0xEA3940 , [0x10, 0x00]) + + # Fix horseback archery rewards to be static + rom.write_byte(0xE12BA5, 0x00) + rom.write_byte(0xE12ADD, 0x00) + + # Fix adult shooting gallery reward to be static + rom.write_byte(0xD35F55, 0x00) + + # Fix deku theater rewards to be static + rom.write_bytes(0xEC9A7C, [0x00, 0x00, 0x00, 0x00]) #Sticks + rom.write_byte(0xEC9CD5, 0x00) #Nuts + + # Fix deku scrub who sells stick upgrade + rom.write_bytes(0xDF8060, [0x00, 0x00, 0x00, 0x00]) + + # Fix deku scrub who sells nut upgrade + rom.write_bytes(0xDF80D4, [0x00, 0x00, 0x00, 0x00]) + + # Fix rolling goron as child reward to be static + rom.write_bytes(0xED2960, [0x00, 0x00, 0x00, 0x00]) + + # Fix proximity text boxes (Navi) (Part 1) + rom.write_bytes(0xDF8B84, [0x00, 0x00, 0x00, 0x00]) + + # Fix final magic bean to cost 99 + rom.write_byte(0xE20A0F, 0x63) + rom.write_bytes(0x94FCDD, [0x08, 0x39, 0x39]) + + # Remove intro cutscene + rom.write_bytes(0xB06BBA, [0x00, 0x00]) + + # Remove locked door to Boss Key Chest in Fire Temple + if not world.keysanity and not world.dungeon_mq['FiT']: + rom.write_byte(0x22D82B7, 0x3F) + + # Change Bombchi Shop to be always open + rom.write_int32(0xC6CEDC, 0x240B0001) # li t3, 1 + + if world.bombchus_in_logic: + # Change Bowling Alley check to bombchus (Part 1) + rom.write_bytes(0x00E2D714, [0x81, 0xEF, 0xA6, 0x4C]) + rom.write_bytes(0x00E2D720, [0x24, 0x18, 0x00, 0x09, 0x11, 0xF8, 0x00, 0x06]) + + # Change Bowling Alley check to bombchus (Part 2) + rom.write_bytes(0x00E2D890, [0x81, 0x6B, 0xA6, 0x4C, 0x24, 0x0C, 0x00, 0x09, 0x51, 0x6C, 0x00, 0x0A]) + + # Cannot buy bombchu refills without Bombchus + rom.write_int32s(0xC01078, + [0x3C098012, # lui t1, 0x8012 + 0x812AA64C, # lb t2, -0x59B4(t1) ; bombchu item (SAVE_CONTEXT + 0x7C) + 0x340B0009, # li t3, 9 + 0x114B0002, # beq t2, t3, @@return ; if has bombchu, return 1 (can buy) + 0x34020000, # li v0, 0 + 0x34020002]) # li v0, 2 ; else, return 2 (can't buy) + else: + # Change Bowling Alley check to Bomb Bag (Part 1) + rom.write_bytes(0x00E2D716, [0xA6, 0x72]) + rom.write_byte(0x00E2D723, 0x18) + + # Change Bowling Alley check to Bomb Bag (Part 2) + rom.write_bytes(0x00E2D892, [0xA6, 0x72]) + rom.write_byte(0x00E2D897, 0x18) + + # Cannot buy bombchu refills without Bomb Bag + rom.write_int32s(0xC01078, + [0x3C098012, # lui t1, 0x8012 + 0x812AA673, # lb t2, -0x598D(t1) ; bombbag size (SAVE_CONTEXT + 0xA3) + 0x314A0038, # andi t2, t2, 0x38 + 0x15400002, # bnez t2, @@return ; If has bombbag, return 1 (can buy) + 0x24020000, # li v0, 0 + 0x24020002]) # li v0, 2 ; else, return 2, (can't buy) + + # Change Bazaar check to Bomb Bag (Child?) + rom.write_bytes(0x00C0082A, [0x00, 0x18]) + rom.write_bytes(0x00C0082C, [0x00, 0x0E, 0X74, 0X02]) + rom.write_byte(0x00C00833, 0xA0) + + # Change Bazaar check to Bomb Bag (Adult?) + rom.write_bytes(0x00DF7A8E, [0x00, 0x18]) + rom.write_bytes(0x00DF7A90, [0x00, 0x0E, 0X74, 0X02]) + rom.write_byte(0x00DF7A97, 0xA0) + + # Change Goron Shop check to Bomb Bag + rom.write_bytes(0x00C6ED86, [0x00, 0xA2]) + rom.write_bytes(0x00C6ED8A, [0x00, 0x18]) + + # Change graveyard graves to not allow grabbing on to the ledge + rom.write_byte(0x0202039D, 0x20) + rom.write_byte(0x0202043C, 0x24) + + # Fix Link the Goron to always work + rom.write_bytes(0xED2FAC, [0x80, 0x6E, 0x0F, 0x18]) + rom.write_bytes(0xED2FEC, [0x24, 0x0A, 0x00, 0x00]) + rom.write_bytes(0xAE74D8, [0x24, 0x0E, 0x00, 0x00]) + + # Fix King Zora Thawed to always work + rom.write_bytes(0xE55C4C, [0x00, 0x00, 0x00, 0x00]) + rom.write_bytes(0xE56290, [0x00, 0x00, 0x00, 0x00]) + rom.write_bytes(0xE56298, [0x00, 0x00, 0x00, 0x00]) + + # Fix Castle Courtyard to check for meeting Zelda, not Zelda fleeing, to block you + rom.write_bytes(0xCD5E76, [0x0E, 0xDC]) + rom.write_bytes(0xCD5E12, [0x0E, 0xDC]) + + # Cutscene for all medallions never triggers when leaving shadow or spirit temples(hopefully stops warp to colossus on shadow completion with boss reward shuffle) + rom.write_byte(0xACA409, 0xAD) + rom.write_byte(0xACA49D, 0xCE) + + # Speed Zelda's Letter scene + rom.write_bytes(0x290E08E, [0x05, 0xF0]) + rom.write_byte(0xEFCBA7, 0x08) + rom.write_byte(0xEFE7C7, 0x05) + #rom.write_byte(0xEFEAF7, 0x08) + #rom.write_byte(0xEFE7C7, 0x05) + rom.write_bytes(0xEFE938, [0x00, 0x00, 0x00, 0x00]) + rom.write_bytes(0xEFE948, [0x00, 0x00, 0x00, 0x00]) + rom.write_bytes(0xEFE950, [0x00, 0x00, 0x00, 0x00]) + + # Speed Zelda escaping from Hyrule Castle + Block_code = [0x00, 0x00, 0x00, 0x01, 0x00, 0x21, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02] + rom.write_bytes(0x1FC0CF8, Block_code) + + # Speed learning Zelda's Lullaby + rom.write_int32s(0x02E8E90C, [0x000003E8, 0x00000001]) # Terminator Execution + if world.shuffle_song_items: + rom.write_int16s(None, [0x0073, 0x001, 0x0002, 0x0002]) # ID, start, end, end + else: + rom.write_int16s(None, [0x0073, 0x003B, 0x003C, 0x003C]) # ID, start, end, end + + + rom.write_int32s(0x02E8E91C, [0x00000013, 0x0000000C]) # Textbox, Count + if world.shuffle_song_items: + rom.write_int16s(None, [0xFFFF, 0x0000, 0x0010, 0xFFFF, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + else: + rom.write_int16s(None, [0x0017, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 + rom.write_int16s(None, [0x00D4, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + + # Speed learning Sun's Song + if world.shuffle_song_items: + rom.write_int32(0x0332A4A4, 0xFFFFFFFF) # Header: frame_count + else: + rom.write_int32(0x0332A4A4, 0x0000003C) # Header: frame_count + + rom.write_int32s(0x0332A868, [0x00000013, 0x00000008]) # Textbox, Count + rom.write_int16s(None, [0x0018, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 + rom.write_int16s(None, [0x00D3, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + + # Speed learning Saria's Song + if world.shuffle_song_items: + rom.write_int32(0x020B1734, 0xFFFFFFFF) # Header: frame_count + else: + rom.write_int32(0x020B1734, 0x0000003C) # Header: frame_count + + rom.write_int32s(0x20B1DA8, [0x00000013, 0x0000000C]) # Textbox, Count + rom.write_int16s(None, [0x0015, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 + rom.write_int16s(None, [0x00D1, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + + rom.write_int32s(0x020B19C0, [0x0000000A, 0x00000006]) # Link, Count + rom.write_int16s(0x020B19C8, [0x0011, 0x0000, 0x0010, 0x0000]) #action, start, end, ???? + rom.write_int16s(0x020B19F8, [0x003E, 0x0011, 0x0020, 0x0000]) #action, start, end, ???? + rom.write_int32s(None, [0x80000000, # ??? + 0x00000000, 0x000001D4, 0xFFFFF731, # start_XYZ + 0x00000000, 0x000001D4, 0xFFFFF712]) # end_XYZ + + # Speed learning Epona's Song + rom.write_int32s(0x029BEF60, [0x000003E8, 0x00000001]) # Terminator Execution + if world.shuffle_song_items: + rom.write_int16s(None, [0x005E, 0x0001, 0x0002, 0x0002]) # ID, start, end, end + else: + rom.write_int16s(None, [0x005E, 0x000A, 0x000B, 0x000B]) # ID, start, end, end + + rom.write_int32s(0x029BECB0, [0x00000013, 0x00000002]) # Textbox, Count + if world.shuffle_song_items: + rom.write_int16s(None, [0xFFFF, 0x0000, 0x0009, 0xFFFF, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + else: + rom.write_int16s(None, [0x00D2, 0x0000, 0x0009, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + rom.write_int16s(None, [0xFFFF, 0x000A, 0x003C, 0xFFFF, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + + # Speed learning Song of Time + rom.write_int32s(0x0252FB98, [0x000003E8, 0x00000001]) # Terminator Execution + if world.shuffle_song_items: + rom.write_int16s(None, [0x0035, 0x0001, 0x0002, 0x0002]) # ID, start, end, end + else: + rom.write_int16s(None, [0x0035, 0x003B, 0x003C, 0x003C]) # ID, start, end, end + + rom.write_int32s(0x0252FC80, [0x00000013, 0x0000000C]) # Textbox, Count + if world.shuffle_song_items: + rom.write_int16s(None, [0xFFFF, 0x0000, 0x0010, 0xFFFF, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + else: + rom.write_int16s(None, [0x0019, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 + rom.write_int16s(None, [0x00D5, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + + rom.write_int32(0x01FC3B84, 0xFFFFFFFF) # Other Header?: frame_count + + # Speed learning Song of Storms + if world.shuffle_song_items: + rom.write_int32(0x03041084, 0xFFFFFFFF) # Header: frame_count + else: + rom.write_int32(0x03041084, 0x0000000A) # Header: frame_count + + rom.write_int32s(0x03041088, [0x00000013, 0x00000002]) # Textbox, Count + rom.write_int16s(None, [0x00D6, 0x0000, 0x0009, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + rom.write_int16s(None, [0xFFFF, 0x00BE, 0x00C8, 0xFFFF, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + + # Speed learning Minuet of Forest + if world.shuffle_song_items: + rom.write_int32(0x020AFF84, 0xFFFFFFFF) # Header: frame_count + else: + rom.write_int32(0x020AFF84, 0x0000003C) # Header: frame_count + + rom.write_int32s(0x020B0800, [0x00000013, 0x0000000A]) # Textbox, Count + rom.write_int16s(None, [0x000F, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 + rom.write_int16s(None, [0x0073, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + + rom.write_int32s(0x020AFF88, [0x0000000A, 0x00000005]) # Link, Count + rom.write_int16s(0x020AFF90, [0x0011, 0x0000, 0x0010, 0x0000]) #action, start, end, ???? + rom.write_int16s(0x020AFFC1, [0x003E, 0x0011, 0x0020, 0x0000]) #action, start, end, ???? + + rom.write_int32s(0x020B0488, [0x00000056, 0x00000001]) # Music Change, Count + rom.write_int16s(None, [0x003F, 0x0021, 0x0022, 0x0000]) #action, start, end, ???? + + rom.write_int32s(0x020B04C0, [0x0000007C, 0x00000001]) # Music Fade Out, Count + rom.write_int16s(None, [0x0004, 0x0000, 0x0000, 0x0000]) #action, start, end, ???? + + # Speed learning Bolero of Fire + if world.shuffle_song_items: + rom.write_int32(0x0224B5D4, 0xFFFFFFFF) # Header: frame_count + else: + rom.write_int32(0x0224B5D4, 0x0000003C) # Header: frame_count + + rom.write_int32s(0x0224D7E8, [0x00000013, 0x0000000A]) # Textbox, Count + rom.write_int16s(None, [0x0010, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 + rom.write_int16s(None, [0x0074, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + + rom.write_int32s(0x0224B5D8, [0x0000000A, 0x0000000B]) # Link, Count + rom.write_int16s(0x0224B5E0, [0x0011, 0x0000, 0x0010, 0x0000]) #action, start, end, ???? + rom.write_int16s(0x0224B610, [0x003E, 0x0011, 0x0020, 0x0000]) #action, start, end, ???? + + rom.write_int32s(0x0224B7F0, [0x0000002F, 0x0000000E]) # Sheik, Count + rom.write_int16s(0x0224B7F8, [0x0000]) #action + rom.write_int16s(0x0224B828, [0x0000]) #action + rom.write_int16s(0x0224B858, [0x0000]) #action + rom.write_int16s(0x0224B888, [0x0000]) #action + + # Speed learning Serenade of Water + if world.shuffle_song_items: + rom.write_int32(0x02BEB254, 0xFFFFFFFF) # Header: frame_count + else: + rom.write_int32(0x02BEB254, 0x0000003C) # Header: frame_count + + rom.write_int32s(0x02BEC880, [0x00000013, 0x00000010]) # Textbox, Count + rom.write_int16s(None, [0x0011, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 + rom.write_int16s(None, [0x0075, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + + rom.write_int32s(0x02BEB258, [0x0000000A, 0x0000000F]) # Link, Count + rom.write_int16s(0x02BEB260, [0x0011, 0x0000, 0x0010, 0x0000]) #action, start, end, ???? + rom.write_int16s(0x02BEB290, [0x003E, 0x0011, 0x0020, 0x0000]) #action, start, end, ???? + + rom.write_int32s(0x02BEB530, [0x0000002F, 0x00000006]) # Sheik, Count + rom.write_int16s(0x02BEB538, [0x0000, 0x0000, 0x018A, 0x0000]) #action, start, end, ???? + rom.write_int32s(None, [0x1BBB0000, # ??? + 0xFFFFFB10, 0x8000011A, 0x00000330, # start_XYZ + 0xFFFFFB10, 0x8000011A, 0x00000330]) # end_XYZ + + rom.write_int32s(0x02BEC848, [0x00000056, 0x00000001]) # Music Change, Count + rom.write_int16s(None, [0x0059, 0x0021, 0x0022, 0x0000]) #action, start, end, ???? + + # Speed learning Nocturne of Shadow + rom.write_int32s(0x01FFE458, [0x000003E8, 0x00000001]) # Other Scene? Terminator Execution + rom.write_int16s(None, [0x002F, 0x0001, 0x0002, 0x0002]) # ID, start, end, end + + rom.write_int32(0x01FFFDF4, 0x0000003C) # Header: frame_count + + rom.write_int32s(0x02000FD8, [0x00000013, 0x0000000E]) # Textbox, Count + if world.shuffle_song_items: + rom.write_int16s(None, [0xFFFF, 0x0000, 0x0010, 0xFFFF, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + else: + rom.write_int16s(None, [0x0013, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 + rom.write_int16s(None, [0x0077, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + + rom.write_int32s(0x02000128, [0x000003E8, 0x00000001]) # Terminator Execution + if world.shuffle_song_items: + rom.write_int16s(None, [0x0032, 0x0001, 0x0002, 0x0002]) # ID, start, end, end + else: + rom.write_int16s(None, [0x0032, 0x003A, 0x003B, 0x003B]) # ID, start, end, end + + # Speed learning Requiem of Spirit + rom.write_int32(0x0218AF14, 0x0000003C) # Header: frame_count + + rom.write_int32s(0x0218C574, [0x00000013, 0x00000008]) # Textbox, Count + if world.shuffle_song_items: + rom.write_int16s(None, [0xFFFF, 0x0000, 0x0010, 0xFFFF, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + else: + rom.write_int16s(None, [0x0012, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 + rom.write_int16s(None, [0x0076, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + + rom.write_int32s(0x0218B478, [0x000003E8, 0x00000001]) # Terminator Execution + if world.shuffle_song_items: + rom.write_int16s(None, [0x0030, 0x0001, 0x0002, 0x0002]) # ID, start, end, end + else: + rom.write_int16s(None, [0x0030, 0x003A, 0x003B, 0x003B]) # ID, start, end, end + + rom.write_int32s(0x0218AF18, [0x0000000A, 0x0000000B]) # Link, Count + rom.write_int16s(0x0218AF20, [0x0011, 0x0000, 0x0010, 0x0000]) #action, start, end, ???? + rom.write_int32s(None, [0x40000000, # ??? + 0xFFFFFAF9, 0x00000008, 0x00000001, # start_XYZ + 0xFFFFFAF9, 0x00000008, 0x00000001, # end_XYZ + 0x0F671408, 0x00000000, 0x00000001]) # normal_XYZ + rom.write_int16s(0x0218AF50, [0x003E, 0x0011, 0x0020, 0x0000]) #action, start, end, ???? + + # Speed learning Prelude of Light + if world.shuffle_song_items: + rom.write_int32(0x0252FD24, 0xFFFFFFFF) # Header: frame_count + else: + rom.write_int32(0x0252FD24, 0x0000003C) # Header: frame_count + + rom.write_int32s(0x02531320, [0x00000013, 0x0000000E]) # Textbox, Count + rom.write_int16s(None, [0x0014, 0x0000, 0x0010, 0x0002, 0x088B, 0xFFFF]) # ID, start, end, type, alt1, alt2 + rom.write_int16s(None, [0x0078, 0x0011, 0x0020, 0x0000, 0xFFFF, 0xFFFF]) # ID, start, end, type, alt1, alt2 + + rom.write_int32s(0x0252FF10, [0x0000002F, 0x00000009]) # Sheik, Count + rom.write_int16s(0x0252FF18, [0x0006, 0x0000, 0x0000, 0x0000]) #action, start, end, ???? + + rom.write_int32s(0x025313D0, [0x00000056, 0x00000001]) # Music Change, Count + rom.write_int16s(None, [0x003B, 0x0021, 0x0022, 0x0000]) #action, start, end, ???? + + # Speed scene after Deku Tree + rom.write_bytes(0x2077E20, [0x00, 0x07, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) + rom.write_bytes(0x2078A10, [0x00, 0x0E, 0x00, 0x1F, 0x00, 0x20, 0x00, 0x20]) + Block_code = [0x00, 0x80, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0x00, 0x1E, 0x00, 0x28, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF] + rom.write_bytes(0x2079570, Block_code) + + # Speed scene after Dodongo's Cavern + rom.write_bytes(0x2221E88, [0x00, 0x0C, 0x00, 0x3B, 0x00, 0x3C, 0x00, 0x3C]) + rom.write_bytes(0x2223308, [0x00, 0x81, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00]) + + # Speed scene after Jabu Jabu's Belly + rom.write_bytes(0xCA3530, [0x00, 0x00, 0x00, 0x00]) + rom.write_bytes(0x2113340, [0x00, 0x0D, 0x00, 0x3B, 0x00, 0x3C, 0x00, 0x3C]) + rom.write_bytes(0x2113C18, [0x00, 0x82, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00]) + rom.write_bytes(0x21131D0, [0x00, 0x01, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x3C]) + + # Speed scene after Forest Temple + rom.write_bytes(0xD4ED68, [0x00, 0x45, 0x00, 0x3B, 0x00, 0x3C, 0x00, 0x3C]) + rom.write_bytes(0xD4ED78, [0x00, 0x3E, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00]) + rom.write_bytes(0x207B9D4, [0xFF, 0xFF, 0xFF, 0xFF]) + + # Speed scene after Fire Temple + rom.write_bytes(0x2001848, [0x00, 0x1E, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) + rom.write_bytes(0xD100B4, [0x00, 0x62, 0x00, 0x3B, 0x00, 0x3C, 0x00, 0x3C]) + rom.write_bytes(0xD10134, [0x00, 0x3C, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00]) + + # Speed scene after Water Temple + rom.write_bytes(0xD5A458, [0x00, 0x15, 0x00, 0x3B, 0x00, 0x3C, 0x00, 0x3C]) + rom.write_bytes(0xD5A3A8, [0x00, 0x3D, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00]) + rom.write_bytes(0x20D0D20, [0x00, 0x29, 0x00, 0xC7, 0x00, 0xC8, 0x00, 0xC8]) + + # Speed scene after Shadow Temple + rom.write_bytes(0xD13EC8, [0x00, 0x61, 0x00, 0x3B, 0x00, 0x3C, 0x00, 0x3C]) + rom.write_bytes(0xD13E18, [0x00, 0x41, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00]) + + # Speed scene after Spirit Temple + rom.write_bytes(0xD3A0A8, [0x00, 0x60, 0x00, 0x3B, 0x00, 0x3C, 0x00, 0x3C]) + rom.write_bytes(0xD39FF0, [0x00, 0x3F, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00]) + + # Speed Nabooru defeat scene + rom.write_bytes(0x2F5AF84, [0x00, 0x00, 0x00, 0x05]) + rom.write_bytes(0x2F5C7DA, [0x00, 0x01, 0x00, 0x02]) + rom.write_bytes(0x2F5C7A2, [0x00, 0x03, 0x00, 0x04]) + rom.write_byte(0x2F5B369, 0x09) + rom.write_byte(0x2F5B491, 0x04) + rom.write_byte(0x2F5B559, 0x04) + rom.write_byte(0x2F5B621, 0x04) + rom.write_byte(0x2F5B761, 0x07) + + # Speed scene with all medallions + rom.write_bytes(0x2512680, [0x00, 0x74, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) + + # Speed collapse of Ganon's Tower + rom.write_bytes(0x33FB328, [0x00, 0x76, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) + + # Speed Phantom Ganon defeat scene + rom.write_bytes(0xC944D8, [0x00, 0x00, 0x00, 0x00]) + rom.write_bytes(0xC94548, [0x00, 0x00, 0x00, 0x00]) + rom.write_bytes(0xC94730, [0x00, 0x00, 0x00, 0x00]) + rom.write_bytes(0xC945A8, [0x00, 0x00, 0x00, 0x00]) + rom.write_bytes(0xC94594, [0x00, 0x00, 0x00, 0x00]) + + # Speed Twinrova defeat scene + rom.write_bytes(0xD678CC, [0x24, 0x01, 0x03, 0xA2, 0xA6, 0x01, 0x01, 0x42]) + rom.write_bytes(0xD67BA4, [0x10, 0x00]) + + # Speed scenes during final battle + # Ganondorf battle end + rom.write_byte(0xD82047, 0x09) + # Zelda descends + rom.write_byte(0xD82AB3, 0x66) + rom.write_byte(0xD82FAF, 0x65) + rom.write_bytes(0xD82D2E, [0x04, 0x1F]) + rom.write_bytes(0xD83142, [0x00, 0x6B]) + rom.write_bytes(0xD82DD8, [0x00, 0x00, 0x00, 0x00]) + rom.write_bytes(0xD82ED4, [0x00, 0x00, 0x00, 0x00]) + rom.write_byte(0xD82FDF, 0x33) + # After tower collapse + rom.write_byte(0xE82E0F, 0x04) + # Ganon intro + rom.write_bytes(0xE83D28, [0x00, 0x00, 0x00, 0x00]) + rom.write_bytes(0xE83B5C, [0x00, 0x00, 0x00, 0x00]) + rom.write_bytes(0xE84C80, [0x10, 0x00]) + + # Speed completion of the trials in Ganon's Castle + rom.write_bytes(0x31A8090, [0x00, 0x6B, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) #Forest + rom.write_bytes(0x31A9E00, [0x00, 0x6E, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) #Fire + rom.write_bytes(0x31A8B18, [0x00, 0x6C, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) #Water + rom.write_bytes(0x31A9430, [0x00, 0x6D, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) #Shadow + rom.write_bytes(0x31AB200, [0x00, 0x70, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) #Spirit + rom.write_bytes(0x31AA830, [0x00, 0x6F, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) #Light + + # Speed obtaining Fairy Ocarina + rom.write_bytes(0x2150CD0, [0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x30]) + Block_code = [0xFF, 0xFF, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0x00, 0x3C, 0x00, 0x81, 0xFF, 0xFF] + rom.write_bytes(0x2151240, Block_code) + rom.write_bytes(0x2150E20, [0xFF, 0xFF, 0xFA, 0x4C]) + + # Speed Zelda Light Arrow cutscene + rom.write_bytes(0x2531B40, [0x00, 0x28, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) + rom.write_bytes(0x2532FBC, [0x00, 0x75]) + rom.write_bytes(0x2532FEA, [0x00, 0x75, 0x00, 0x80]) + rom.write_byte(0x2533115, 0x05) + rom.write_bytes(0x2533141, [0x06, 0x00, 0x06, 0x00, 0x10]) + rom.write_bytes(0x2533171, [0x0F, 0x00, 0x11, 0x00, 0x40]) + rom.write_bytes(0x25331A1, [0x07, 0x00, 0x41, 0x00, 0x65]) + rom.write_bytes(0x2533642, [0x00, 0x50]) + rom.write_byte(0x253389D, 0x74) + rom.write_bytes(0x25338A4, [0x00, 0x72, 0x00, 0x75, 0x00, 0x79]) + rom.write_bytes(0x25338BC, [0xFF, 0xFF]) + rom.write_bytes(0x25338C2, [0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF]) + rom.write_bytes(0x25339C2, [0x00, 0x75, 0x00, 0x76]) + rom.write_bytes(0x2533830, [0x00, 0x31, 0x00, 0x81, 0x00, 0x82, 0x00, 0x82]) + + # Speed Bridge of Light cutscene + rom.write_bytes(0x292D644, [0x00, 0x00, 0x00, 0xA0]) + rom.write_bytes(0x292D680, [0x00, 0x02, 0x00, 0x0A, 0x00, 0x6C, 0x00, 0x00]) + rom.write_bytes(0x292D6E8, [0x00, 0x27]) + rom.write_bytes(0x292D718, [0x00, 0x32]) + rom.write_bytes(0x292D810, [0x00, 0x02, 0x00, 0x3C]) + rom.write_bytes(0x292D924, [0xFF, 0xFF, 0x00, 0x14, 0x00, 0x96, 0xFF, 0xFF]) + + # Remove remaining owls + rom.write_bytes(0x1FE30CE, [0x01, 0x4B]) + rom.write_bytes(0x1FE30DE, [0x01, 0x4B]) + rom.write_bytes(0x1FE30EE, [0x01, 0x4B]) + rom.write_bytes(0x205909E, [0x00, 0x3F]) + rom.write_byte(0x2059094, 0x80) + + # Darunia won't dance + rom.write_bytes(0x22769E4, [0xFF, 0xFF, 0xFF, 0xFF]) + + # Zora moves quickly + rom.write_bytes(0xE56924, [0x00, 0x00, 0x00, 0x00]) + + # Speed Jabu Jabu swallowing Link + rom.write_bytes(0xCA0784, [0x00, 0x18, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) + + # Ruto no longer points to Zora Sapphire + rom.write_bytes(0xD03BAC, [0xFF, 0xFF, 0xFF, 0xFF]) + + # Ruto never disappears from Jabu Jabu's Belly + rom.write_byte(0xD01EA3, 0x00) + + # Speed up Epona race start + rom.write_bytes(0x29BE984, [0x00, 0x00, 0x00, 0x02]) + rom.write_bytes(0x29BE9CA, [0x00, 0x01, 0x00, 0x02]) + + # Speed start of Horseback Archery + #rom.write_bytes(0x21B2064, [0x00, 0x00, 0x00, 0x02]) + #rom.write_bytes(0x21B20AA, [0x00, 0x01, 0x00, 0x02]) + + # Speed up Epona escape + rom.write_bytes(0x1FC8B36, [0x00, 0x2A]) + + # Speed up draining the well + rom.write_bytes(0xE0A010, [0x00, 0x2A, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02]) + rom.write_bytes(0x2001110, [0x00, 0x2B, 0x00, 0xB7, 0x00, 0xB8, 0x00, 0xB8]) + + # Speed up opening the royal tomb for both child and adult + rom.write_bytes(0x2025026, [0x00, 0x01]) + rom.write_bytes(0x2023C86, [0x00, 0x01]) + rom.write_byte(0x2025159, 0x02) + rom.write_byte(0x2023E19, 0x02) + + #Speed opening of Door of Time + rom.write_bytes(0xE0A176, [0x00, 0x02]) + rom.write_bytes(0xE0A35A, [0x00, 0x01, 0x00, 0x02]) + + # Poacher's Saw no longer messes up Deku Theater + rom.write_bytes(0xAE72CC, [0x00, 0x00, 0x00, 0x00]) + + # Learning Serenade tied to opening chest in room + Block_code = [0x3C, 0x0F, 0x80, 0x1D, 0x81, 0xE8, 0xA1, 0xDB, 0x24, 0x19, 0x00, 0x04, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8C, 0xA2, 0x1C, 0x44, + 0x00, 0x00, 0x00, 0x00] + rom.write_bytes(0xC7BCF0, Block_code) + + # Dampe Chest spawn condition looks at chest flag instead of having obtained hookshot + Block_code = [0x93, 0x18, 0xAE, 0x7E, 0x27, 0xA5, 0x00, 0x24, 0x33, 0x19, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x00] + rom.write_bytes(0xDFEC40, Block_code) + + # Darunia sets an event flag and checks for it + Block_code = [0x24, 0x19, 0x00, 0x40, 0x8F, 0x09, 0xB4, 0xA8, 0x01, 0x39, 0x40, 0x24, + 0x01, 0x39, 0xC8, 0x25, 0xAF, 0x19, 0xB4, 0xA8, 0x24, 0x09, 0x00, 0x06] + rom.write_bytes(0xCF1AB8, Block_code) + + # Change Prelude CS to check for medallion + rom.write_bytes(0x00C805E6, [0x00, 0xA6]) + rom.write_bytes(0x00C805F2, [0x00, 0x01]) + + # Change Nocturne CS to check for medallions + rom.write_bytes(0x00ACCD8E, [0x00, 0xA6]) + rom.write_bytes(0x00ACCD92, [0x00, 0x01]) + rom.write_bytes(0x00ACCD9A, [0x00, 0x02]) + rom.write_bytes(0x00ACCDA2, [0x00, 0x04]) + + # Change King Zora to move even if Zora Sapphire is in inventory + rom.write_bytes(0x00E55BB0, [0x85, 0xCE, 0x8C, 0x3C]) + rom.write_bytes(0x00E55BB4, [0x84, 0x4F, 0x0E, 0xDA]) + + # Remove extra Forest Temple medallions + rom.write_bytes(0x00D4D37C, [0x00, 0x00, 0x00, 0x00]) + + # Remove extra Fire Temple medallions + rom.write_bytes(0x00AC9754, [0x00, 0x00, 0x00, 0x00]) + rom.write_bytes(0x00D0DB8C, [0x00, 0x00, 0x00, 0x00]) + + # Remove extra Water Temple medallions + rom.write_bytes(0x00D57F94, [0x00, 0x00, 0x00, 0x00]) + + # Remove extra Spirit Temple medallions + rom.write_bytes(0x00D370C4, [0x00, 0x00, 0x00, 0x00]) + rom.write_bytes(0x00D379C4, [0x00, 0x00, 0x00, 0x00]) + + # Remove extra Shadow Temple medallions + rom.write_bytes(0x00D116E0, [0x00, 0x00, 0x00, 0x00]) + + # Change Mido, Saria, and Kokiri to check for Deku Tree complete flag + # bitwise pointer for 0x80 + kokiriAddresses = [0xE52836, 0xE53A56, 0xE51D4E, 0xE51F3E, 0xE51D96, 0xE51E1E, 0xE51E7E, 0xE51EDE, 0xE51FC6, 0xE51F96, 0xE293B6, 0xE29B8E, 0xE62EDA, 0xE630D6, 0xE62642, 0xE633AA, 0xE6369E] + for kokiri in kokiriAddresses: + rom.write_bytes(kokiri, [0x8C, 0x0C]) + # Kokiri + rom.write_bytes(0xE52838, [0x94, 0x48, 0x0E, 0xD4]) + rom.write_bytes(0xE53A58, [0x94, 0x49, 0x0E, 0xD4]) + rom.write_bytes(0xE51D50, [0x94, 0x58, 0x0E, 0xD4]) + rom.write_bytes(0xE51F40, [0x94, 0x4B, 0x0E, 0xD4]) + rom.write_bytes(0xE51D98, [0x94, 0x4B, 0x0E, 0xD4]) + rom.write_bytes(0xE51E20, [0x94, 0x4A, 0x0E, 0xD4]) + rom.write_bytes(0xE51E80, [0x94, 0x59, 0x0E, 0xD4]) + rom.write_bytes(0xE51EE0, [0x94, 0x4E, 0x0E, 0xD4]) + rom.write_bytes(0xE51FC8, [0x94, 0x49, 0x0E, 0xD4]) + rom.write_bytes(0xE51F98, [0x94, 0x58, 0x0E, 0xD4]) + # Saria + rom.write_bytes(0xE293B8, [0x94, 0x78, 0x0E, 0xD4]) + rom.write_bytes(0xE29B90, [0x94, 0x68, 0x0E, 0xD4]) + # Mido + rom.write_bytes(0xE62EDC, [0x94, 0x6F, 0x0E, 0xD4]) + rom.write_bytes(0xE630D8, [0x94, 0x4F, 0x0E, 0xD4]) + rom.write_bytes(0xE62644, [0x94, 0x6F, 0x0E, 0xD4]) + rom.write_bytes(0xE633AC, [0x94, 0x68, 0x0E, 0xD4]) + rom.write_bytes(0xE636A0, [0x94, 0x48, 0x0E, 0xD4]) + + # Change adult Kokiri Forest to check for Forest Temple complete flag + rom.write_bytes(0xE5369E, [0xB4, 0xAC]) + rom.write_bytes(0xD5A83C, [0x80, 0x49, 0x0E, 0xDC]) + + # Change adult Goron City to check for Fire Temple complete flag + rom.write_bytes(0xED59DC, [0x80, 0xC9, 0x0E, 0xDC]) + + # Change Pokey to check DT complete flag + rom.write_bytes(0xE5400A, [0x8C, 0x4C]) + rom.write_bytes(0xE5400E, [0xB4, 0xA4]) + if world.open_forest: + rom.write_bytes(0xE5401C, [0x14, 0x0B]) + + # Fix Shadow Temple to check for different rewards for scene + rom.write_bytes(0xCA3F32, [0x00, 0x00, 0x25, 0x4A, 0x00, 0x10]) + + # Fix Spirit Temple to check for different rewards for scene + rom.write_bytes(0xCA3EA2, [0x00, 0x00, 0x25, 0x4A, 0x00, 0x08]) + + # Fix Biggoron to check a different flag. + rom.write_byte(0xED329B, 0x72) + rom.write_byte(0xED43E7, 0x72) + rom.write_bytes(0xED3370, [0x3C, 0x0D, 0x80, 0x12]) + rom.write_bytes(0xED3378, [0x91, 0xB8, 0xA6, 0x42, 0xA1, 0xA8, 0xA6, 0x42]) + rom.write_bytes(0xED6574, [0x00, 0x00, 0x00, 0x00]) + + # Remove the check on the number of days that passed for claim check. + rom.write_bytes(0xED4470, [0x00, 0x00, 0x00, 0x00]) + rom.write_bytes(0xED4498, [0x00, 0x00, 0x00, 0x00]) + + # Fixed reward order for Bombchu Bowling + rom.write_bytes(0xE2E698, [0x80, 0xAA, 0xE2, 0x64]) + rom.write_bytes(0xE2E6A0, [0x80, 0xAA, 0xE2, 0x4C]) + rom.write_bytes(0xE2D440, [0x24, 0x19, 0x00, 0x00]) + + # Make fishing less obnoxious + Block_code = [0x3C, 0x0A, 0x80, 0x12, 0x8D, 0x4A, 0xA5, 0xD4, 0x14, 0x0A, 0x00, 0x06, + 0x31, 0x78, 0x00, 0x01, 0x14, 0x18, 0x00, 0x02, 0x3c, 0x18, 0x42, 0x30, + 0x3C, 0x18, 0x42, 0x50, 0x03, 0xe0, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, + 0x14, 0x18, 0x00, 0x02, 0x3C, 0x18, 0x42, 0x10, 0x3C, 0x18, 0x42, 0x38, + 0x03, 0xE0, 0x00, 0x08] + rom.write_bytes(0x3480C00, Block_code) + rom.write_bytes(0xDBF434, [0x44, 0x98, 0x90, 0x00, 0xE6, 0x52, 0x01, 0x9C]) + rom.write_bytes(0xDBF484, [0x00, 0x00, 0x00, 0x00]) + rom.write_bytes(0xDBF4A8, [0x00, 0x00, 0x00, 0x00]) + rom.write_bytes(0xDCBEAA, [0x42, 0x48]) #set adult fish size requirement + rom.write_bytes(0xDCBF26, [0x42, 0x48]) #set adult fish size requirement + rom.write_bytes(0xDCBF32, [0x42, 0x30]) #set child fish size requirement + rom.write_bytes(0xDCBF9E, [0x42, 0x30]) #set child fish size requirement + + # Dampe always digs something up and first dig is always the Piece of Heart + rom.write_bytes(0xCC3FA8, [0xA2, 0x01, 0x01, 0xF8]) + rom.write_bytes(0xCC4024, [0x00, 0x00, 0x00, 0x00]) + + # Allow owl to always carry the kid down Death Mountain + rom.write_bytes(0xE304F0, [0x24, 0x0E, 0x00, 0x01]) + + # Forbid Sun's Song from a bunch of cutscenes + Suns_scenes = [0x2016FC9, 0x2017219, 0x20173D9, 0x20174C9, 0x2017679, 0x20C1539, 0x20C15D9, 0x21A0719, 0x21A07F9, 0x2E90129, 0x2E901B9, 0x2E90249, 0x225E829, 0x225E939, 0x306D009] + for address in Suns_scenes: + rom.write_byte(address,0x01) + + # Remove forcible text triggers + Wonder_text = [0x27C00C6, 0x27C00D6, 0x27C00E6, 0x27C00F6, 0x27C0106, 0x27C0116, 0x27C0126, 0x27C0136] + for address in Wonder_text: + rom.write_byte(address, 0x02) + rom.write_byte(0x27CE08A, 0x09) + rom.write_byte(0x27CE09A, 0x0F) + Wonder_text = [0x288707A, 0x288708A, 0x288709A, 0x289707A, 0x28C713E, 0x28D91C6] + for address in Wonder_text: + rom.write_byte(address, 0x0C) + Wonder_text = [0x28A60FE, 0x28AE08E, 0x28B917E, 0x28BF172, 0x28BF182, 0x28BF192] + for address in Wonder_text: + rom.write_byte(address, 0x0D) + rom.write_byte(0x28A114E, 0x0E) + rom.write_byte(0x28A610E, 0x0E) + Wonder_text = [0x9367F6, 0x93673D, 0x93679D] + for address in Wonder_text: + rom.write_byte(address, 0x08) + Wonder_text = [0x289707B, 0x28AE08F, 0x28C713F] + for address in Wonder_text: + rom.write_byte(address, 0xAF) + rom.write_byte(0x28A114F, 0x6F) + rom.write_byte(0x28B917F, 0x6F) + rom.write_byte(0x28A60FF, 0xEF) + rom.write_byte(0x28D91C7, 0xEF) + Wonder_text = [0x28A610F, 0x28BF173, 0x28BF183, 0x28BF193] + for address in Wonder_text: + rom.write_byte(address, 0x2F) + Wonder_text = [0x27CE08B, 0x27C00C7, 0x27C00D7, 0x27C0117, 0x27C0127] + for address in Wonder_text: + rom.write_byte(address, 0x3D) + rom.write_byte(0x27C00E7, 0x7D) + rom.write_byte(0x27C00F7, 0x7D) + rom.write_byte(0x27C0107, 0xBD) + rom.write_byte(0x27C0137, 0xBD) + Wonder_text = [0x27C00BC, 0x27C00CC, 0x27C00DC, 0x27C00EC, 0x27C00FC, 0x27C010C, 0x27C011C, 0x27C012C, 0x27CE080, 0x27CE090, 0x2887070, 0x2887080, 0x2887090, 0x2897070, 0x28C7134, 0x28D91BC, 0x28A60F4, 0x28AE084, 0x28B9174, 0x28BF168, 0x28BF178, 0x28BF188, 0x28A1144, 0x28A6104] + for address in Wonder_text: + rom.write_byte(address, 0xFE) + + # Speed dig text for Dampe + rom.write_bytes(0x9532F8, [0x08, 0x08, 0x08, 0x59]) + + # Make item descriptions into a single box + Short_item_descriptions = [0x92EC84, 0x92F9E3, 0x92F2B4, 0x92F37A, 0x92F513, 0x92F5C6, 0x92E93B, 0x92EA12] + for address in Short_item_descriptions: + rom.write_byte(address,0x02) + + # Fix text for Pocket Cucco. + rom.write_byte(0xBEEF45, 0x0B) + rom.write_byte(0x92D41A, 0x2E) + Block_code = [0x59, 0x6f, 0x75, 0x20, 0x67, 0x6f, 0x74, 0x20, 0x61, 0x20, 0x05, 0x41, + 0x50, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x20, 0x43, 0x75, 0x63, 0x63, 0x6f, + 0x2c, 0x20, 0x05, 0x40, 0x6f, 0x6e, 0x65, 0x01, 0x6f, 0x66, 0x20, 0x41, + 0x6e, 0x6a, 0x75, 0x27, 0x73, 0x20, 0x70, 0x72, 0x69, 0x7a, 0x65, 0x64, + 0x20, 0x68, 0x65, 0x6e, 0x73, 0x21, 0x20, 0x49, 0x74, 0x20, 0x66, 0x69, + 0x74, 0x73, 0x20, 0x01, 0x69, 0x6e, 0x20, 0x79, 0x6f, 0x75, 0x72, 0x20, + 0x70, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x02] + rom.write_bytes(0x92D41C, Block_code) + + # Set hooks for various code + rom.write_bytes(0xDBF428, [0x0C, 0x10, 0x03, 0x00]) #Set Fishing Hook + + configure_dungeon_info(rom, world) + + # will be populated with data to be written to initial save + # see initial_save.asm and config.asm for more details on specifics + # or just use the following functions to add an entry to the table + initial_save_table = [] + + # will set the bits of value to the offset in the save (or'ing them with what is already there) + def write_bits_to_save(offset, value, filter=None): + nonlocal initial_save_table + + if filter and not filter(value): + return + + initial_save_table += [(offset & 0xFF00) >> 8, offset & 0xFF, 0x00, value] + + + + # will overwrite the byte at offset with the given value + def write_byte_to_save(offset, value, filter=None): + nonlocal initial_save_table + + if filter and not filter(value): + return + + initial_save_table += [(offset & 0xFF00) >> 8, offset & 0xFF, 0x01, value] + + # will overwrite the byte at offset with the given value + def write_bytes_to_save(offset, bytes, filter=None): + for i, value in enumerate(bytes): + write_byte_to_save(offset + i, value, filter) + + # will overwrite the byte at offset with the given value + def write_save_table(rom): + nonlocal initial_save_table + + table_len = len(initial_save_table) + if table_len > 0x400: + raise Exception("The Initial Save Table has exceeded it's maximum capacity: 0x%03X/0x400" % table_len) + rom.write_bytes(0x3481800, initial_save_table) + + + # Initial Save Data + write_bits_to_save(0x003F, 0x02) # Some Biggoron's Sword flag? + + #write_bits_to_save(0x00D4 + 0x00 * 0x1C + 0x04 + 0x0, 0x80) # Deku tree switch flag (navi text?) + #write_bits_to_save(0x00D4 + 0x00 * 0x1C + 0x04 + 0x1, 0x02) # Deku tree switch flag (navi text?) + #write_bits_to_save(0x00D4 + 0x00 * 0x1C + 0x04 + 0x2, 0x80) # Deku tree switch flag (navi text?) + #write_bits_to_save(0x00D4 + 0x00 * 0x1C + 0x04 + 0x2, 0x04) # Deku tree switch flag (navi text?) + #write_bits_to_save(0x00D4 + 0x01 * 0x1C + 0x04 + 0x2, 0x40) # Dodongo's Cavern switch flag (navi text?) + #write_bits_to_save(0x00D4 + 0x01 * 0x1C + 0x04 + 0x2, 0x08) # Dodongo's Cavern switch flag (navi text?) + #write_bits_to_save(0x00D4 + 0x01 * 0x1C + 0x04 + 0x2, 0x01) # Dodongo's Cavern switch flag (navi text?) + #write_bits_to_save(0x00D4 + 0x02 * 0x1C + 0x04 + 0x0, 0x08) # Inside Jabu-Jabu's Belly switch flag (ruto?) + #write_bits_to_save(0x00D4 + 0x02 * 0x1C + 0x04 + 0x0, 0x04) # Inside Jabu-Jabu's Belly switch flag (ruto?) + #write_bits_to_save(0x00D4 + 0x02 * 0x1C + 0x04 + 0x0, 0x02) # Inside Jabu-Jabu's Belly switch flag (ruto?) + #write_bits_to_save(0x00D4 + 0x02 * 0x1C + 0x04 + 0x0, 0x01) # Inside Jabu-Jabu's Belly switch flag (ruto?) + #write_bits_to_save(0x00D4 + 0x02 * 0x1C + 0x04 + 0x1, 0x01) # Inside Jabu-Jabu's Belly switch flag (ruto?) + write_bits_to_save(0x00D4 + 0x03 * 0x1C + 0x04 + 0x0, 0x08) # Forest Temple switch flag (poes?) + #write_bits_to_save(0x00D4 + 0x03 * 0x1C + 0x04 + 0x0, 0x01) # Forest Temple switch flag (Poe Sisters cutscene) + #write_bits_to_save(0x00D4 + 0x03 * 0x1C + 0x04 + 0x2, 0x02) # Forest Temple switch flag (poes?) + #write_bits_to_save(0x00D4 + 0x03 * 0x1C + 0x04 + 0x2, 0x01) # Forest Temple switch flag (poes?) + #write_bits_to_save(0x00D4 + 0x04 * 0x1C + 0x04 + 0x1, 0x08) # Fire Temple switch flag (First locked door?) + write_bits_to_save(0x00D4 + 0x05 * 0x1C + 0x04 + 0x1, 0x01) # Water temple switch flag (navi text?) + #write_bits_to_save(0x00D4 + 0x0B * 0x1C + 0x04 + 0x2, 0x01) # Gerudo Training Ground switch flag (command text?) + write_bits_to_save(0x00D4 + 0x51 * 0x1C + 0x04 + 0x2, 0x08) # Hyrule Field switch flag (???) + write_bits_to_save(0x00D4 + 0x55 * 0x1C + 0x04 + 0x0, 0x80) # Kokiri Forest switch flag (???) + write_bits_to_save(0x00D4 + 0x56 * 0x1C + 0x04 + 0x2, 0x40) # Sacred Forest Meadow switch flag (???) + write_bits_to_save(0x00D4 + 0x5B * 0x1C + 0x04 + 0x2, 0x01) # Lost Woods switch flag (???) + write_bits_to_save(0x00D4 + 0x5B * 0x1C + 0x04 + 0x3, 0x80) # Lost Woods switch flag (???) + write_bits_to_save(0x00D4 + 0x5C * 0x1C + 0x04 + 0x0, 0x80) # Desert Colossus switch flag (???) + write_bits_to_save(0x00D4 + 0x5F * 0x1C + 0x04 + 0x3, 0x20) # Hyrule Castle switch flag (???) + + write_bits_to_save(0x0ED4, 0x10) # "Met Deku Tree" + write_bits_to_save(0x0ED5, 0x20) # "Deku Tree Opened Mouth" + write_bits_to_save(0x0ED6, 0x08) # "Rented Horse From Ingo" + write_bits_to_save(0x0EDA, 0x08) # "Began Nabooru Battle" + write_bits_to_save(0x0EDC, 0x80) # "Entered the Master Sword Chamber" + write_bits_to_save(0x0EDD, 0x20) # "Pulled Master Sword from Pedestal" + write_bits_to_save(0x0EE0, 0x80) # "Spoke to Kaepora Gaebora by Lost Woods" + write_bits_to_save(0x0EE7, 0x20) # "Nabooru Captured by Twinrova" + write_bits_to_save(0x0EE7, 0x10) # "Spoke to Nabooru in Spirit Temple" + write_bits_to_save(0x0EED, 0x20) # "Sheik, Spawned at Master Sword Pedestal as Adult" + write_bits_to_save(0x0EED, 0x01) # "Nabooru Ordered to Fight by Twinrova" + write_bits_to_save(0x0EF9, 0x01) # "Greeted by Saria" + write_bits_to_save(0x0F0A, 0x04) # "Spoke to Ingo Once as Adult" + write_bits_to_save(0x0F1A, 0x04) # "Met Darunia in Fire Temple" + + write_bits_to_save(0x0ED7, 0x01) # "Spoke to Child Malon at Castle or Market" + write_bits_to_save(0x0ED7, 0x20) # "Spoke to Child Malon at Ranch" + write_bits_to_save(0x0ED7, 0x40) # "Invited to Sing With Child Malon" + write_bits_to_save(0x0F09, 0x10) # "Met Child Malon at Castle or Market" + write_bits_to_save(0x0F09, 0x20) # "Child Malon Said Epona Was Scared of You" + + write_bits_to_save(0x0F21, 0x04) # "Ruto in JJ (M3) Talk First Time" + write_bits_to_save(0x0F21, 0x02) # "Ruto in JJ (M2) Meet Ruto" + + write_bits_to_save(0x0EE2, 0x01) # "Began Ganondorf Battle" + write_bits_to_save(0x0EE3, 0x80) # "Began Bongo Bongo Battle" + write_bits_to_save(0x0EE3, 0x40) # "Began Barinade Battle" + write_bits_to_save(0x0EE3, 0x20) # "Began Twinrova Battle" + write_bits_to_save(0x0EE3, 0x10) # "Began Morpha Battle" + write_bits_to_save(0x0EE3, 0x08) # "Began Volvagia Battle" + write_bits_to_save(0x0EE3, 0x04) # "Began Phantom Ganon Battle" + write_bits_to_save(0x0EE3, 0x02) # "Began King Dodongo Battle" + write_bits_to_save(0x0EE3, 0x01) # "Began Gohma Battle" + + write_bits_to_save(0x0EE8, 0x01) # "Entered Deku Tree" + write_bits_to_save(0x0EE9, 0x80) # "Entered Temple of Time" + write_bits_to_save(0x0EE9, 0x40) # "Entered Goron City" + write_bits_to_save(0x0EE9, 0x20) # "Entered Hyrule Castle" + write_bits_to_save(0x0EE9, 0x10) # "Entered Zora's Domain" + write_bits_to_save(0x0EE9, 0x08) # "Entered Kakariko Village" + write_bits_to_save(0x0EE9, 0x02) # "Entered Death Mountain Trail" + write_bits_to_save(0x0EE9, 0x01) # "Entered Hyrule Field" + write_bits_to_save(0x0EEA, 0x04) # "Entered Ganon's Castle (Exterior)" + write_bits_to_save(0x0EEA, 0x02) # "Entered Death Mountain Crater" + write_bits_to_save(0x0EEA, 0x01) # "Entered Desert Colossus" + write_bits_to_save(0x0EEB, 0x80) # "Entered Zora's Fountain" + write_bits_to_save(0x0EEB, 0x40) # "Entered Graveyard" + write_bits_to_save(0x0EEB, 0x20) # "Entered Jabu-Jabu's Belly" + write_bits_to_save(0x0EEB, 0x10) # "Entered Lon Lon Ranch" + write_bits_to_save(0x0EEB, 0x08) # "Entered Gerudo's Fortress" + write_bits_to_save(0x0EEB, 0x04) # "Entered Gerudo Valley" + write_bits_to_save(0x0EEB, 0x02) # "Entered Lake Hylia" + write_bits_to_save(0x0EEB, 0x01) # "Entered Dodongo's Cavern" + write_bits_to_save(0x0F08, 0x08) # "Entered Hyrule Castle" + + # Make the Kakariko Gate not open with the MS + if not world.open_kakariko: + rom.write_int32(0xDD3538, 0x34190000) # li t9, 0 + + # Make all chest opening animations fast + if world.fast_chests: + rom.write_int32(0xBDA2E8, 0x240AFFFF) # addiu t2, r0, -1 + # replaces # lb t2, 0x0002 (t1) + + # Set up for Rainbow Bridge dungeons condition + Block_code = [0x15, 0x41, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x80, 0xEA, 0x00, 0xA5, + 0x24, 0x01, 0x00, 0x1C, 0x31, 0x4A, 0x00, 0x1C, 0x08, 0x07, 0x88, 0xD9] + rom.write_bytes(0x3480820, Block_code) + + # Gossip stones resond to stone of agony + Block_code = [0x3C, 0x01, 0x80, 0x12, 0x80, 0x21, 0xA6, 0x75, 0x30, 0x21, 0x00, 0x20, + 0x03, 0xE0, 0x00, 0x08] + # Gossip stones always respond + if(world.hints == 'always'): + Block_code = [0x24, 0x01, 0x00, 0x20, 0x03, 0xE0, 0x00, 0x08] + rom.write_bytes(0x3480840, Block_code) + + # Set up Rainbow Bridge conditions + if world.bridge == 'medallions': + Block_code = [0x80, 0xEA, 0x00, 0xA7, 0x24, 0x01, 0x00, 0x3F, + 0x31, 0x4A, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00] + rom.write_bytes(0xE2B454, Block_code) + elif world.bridge == 'open': + write_bits_to_save(0xEDC, 0x20) # "Rainbow Bridge Built by Sages" + elif world.bridge == 'dungeons': + Block_code = [0x80, 0xEA, 0x00, 0xA7, 0x24, 0x01, 0x00, 0x3F, + 0x08, 0x10, 0x02, 0x08, 0x31, 0x4A, 0x00, 0x3F] + rom.write_bytes(0xE2B454, Block_code) + + if world.open_forest: + write_bits_to_save(0xED5, 0x10) # "Showed Mido Sword & Shield" + + if world.open_door_of_time: + write_bits_to_save(0xEDC, 0x08) # "Opened the Door of Time" + + # "fast-ganon" stuff + if world.no_escape_sequence: + rom.write_bytes(0xD82A12, [0x05, 0x17]) # Sets exit from Ganondorf fight to entrance to Ganon fight + if world.unlocked_ganondorf: + write_bits_to_save(0x00D4 + 0x0A * 0x1C + 0x04 + 0x1, 0x10) # Ganon's Tower switch flag (unlock boss key door) + if world.skipped_trials['Forest']: + write_bits_to_save(0x0EEA, 0x08) # "Completed Forest Trial" + if world.skipped_trials['Fire']: + write_bits_to_save(0x0EEA, 0x40) # "Completed Fire Trial" + if world.skipped_trials['Water']: + write_bits_to_save(0x0EEA, 0x10) # "Completed Water Trial" + if world.skipped_trials['Spirit']: + write_bits_to_save(0x0EE8, 0x20) # "Completed Spirit Trial" + if world.skipped_trials['Shadow']: + write_bits_to_save(0x0EEA, 0x20) # "Completed Shadow Trial" + if world.skipped_trials['Light']: + write_bits_to_save(0x0EEA, 0x80) # "Completed Light Trial" + if world.trials == 0: + write_bits_to_save(0x0EED, 0x08) # "Dispelled Ganon's Tower Barrier" + + # open gerudo fortress + if world.gerudo_fortress == 'open': + write_bits_to_save(0x00A5, 0x40) # Give Gerudo Card + write_bits_to_save(0x0EE7, 0x0F) # Free all 4 carpenters + write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x04 + 0x1, 0x0F) # Thieves' Hideout switch flags (started all fights) + write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x04 + 0x2, 0x01) # Thieves' Hideout switch flags (heard yells/unlocked doors) + write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x04 + 0x3, 0xFE) # Thieves' Hideout switch flags (heard yells/unlocked doors) + write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x0C + 0x2, 0xD4) # Thieves' Hideout collection flags (picked up keys, marks fights finished as well) + elif world.gerudo_fortress == 'fast': + write_bits_to_save(0x0EE7, 0x0E) # Free 3 carpenters + write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x04 + 0x1, 0x0D) # Thieves' Hideout switch flags (started all fights) + write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x04 + 0x2, 0x01) # Thieves' Hideout switch flags (heard yells/unlocked doors) + write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x04 + 0x3, 0xDC) # Thieves' Hideout switch flags (heard yells/unlocked doors) + write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x0C + 0x2, 0xC4) # Thieves' Hideout collection flags (picked up keys, marks fights finished as well) + + # Revert change that Skips the Epona Race + if not world.no_epona_race: + rom.write_int32(0xA9E838, 0x03E00008) + + # skip castle guard stealth sequence + if world.no_guard_stealth: + # change the exit at child/day crawlspace to the end of zelda's goddess cutscene + rom.write_bytes(0x21F60DE, [0x05, 0xF0]) + + # patch mq scenes + mq_scenes = [] + if world.dungeon_mq['DT']: + mq_scenes.append(0) + if world.dungeon_mq['DC']: + mq_scenes.append(1) + if world.dungeon_mq['JB']: + mq_scenes.append(2) + if world.dungeon_mq['FoT']: + mq_scenes.append(3) + if world.dungeon_mq['FiT']: + mq_scenes.append(4) + if world.dungeon_mq['WT']: + mq_scenes.append(5) + if world.dungeon_mq['SpT']: + mq_scenes.append(6) + if world.dungeon_mq['ShT']: + mq_scenes.append(7) + if world.dungeon_mq['BW']: + mq_scenes.append(8) + if world.dungeon_mq['IC']: + mq_scenes.append(9) + # Scene 10 has no layout changes, so it doesn't need to be patched + if world.dungeon_mq['GTG']: + mq_scenes.append(11) + if world.dungeon_mq['GC']: + mq_scenes.append(13) + + patch_files(rom, mq_scenes) + + ### Load Shop File + # Move shop actor file to free space + shop_item_file = File({ + 'Name':'En_GirlA', + 'Start':'00C004E0', + 'End':'00C02E00', + 'RemapStart':'03485000', + }) + shop_item_file.relocate(rom) + + # Increase the shop item table size + shop_item_vram_start = rom.read_int32(0x00B5E490 + (0x20 * 4) + 0x08) + insert_space(rom, shop_item_file, shop_item_vram_start, 1, 0x3C + (0x20 * 50), 0x20 * 50) + + # Add relocation entries for shop item table + new_relocations = [] + for i in range(50, 100): + new_relocations.append(shop_item_file.start + 0x1DEC + (i * 0x20) + 0x04) + new_relocations.append(shop_item_file.start + 0x1DEC + (i * 0x20) + 0x14) + new_relocations.append(shop_item_file.start + 0x1DEC + (i * 0x20) + 0x1C) + add_relocations(rom, shop_item_file, new_relocations) + + # update actor table + rom.write_int32s(0x00B5E490 + (0x20 * 4), + [shop_item_file.start, + shop_item_file.end, + shop_item_vram_start, + shop_item_vram_start + (shop_item_file.end - shop_item_file.start)]) + + # Update DMA Table + update_dmadata(rom, shop_item_file) + + # Create 2nd Bazaar Room + bazaar_room_file = File({ + 'Name':'shop1_room_1', + 'Start':'028E4000', + 'End':'0290D7B0', + 'RemapStart':'03489000', + }) + bazaar_room_file.dma_key = 0x03472000 + bazaar_room_file.relocate(rom) + # Update DMA Table + update_dmadata(rom, bazaar_room_file) + + # Add new Bazaar Room to Bazaar Scene + rom.write_int32s(0x28E3030, [0x00010000, 0x02000058]) #reduce position list size + rom.write_int32s(0x28E3008, [0x04020000, 0x02000070]) #expand room list size + + rom.write_int32s(0x28E3070, [0x028E4000, 0x0290D7B0, + bazaar_room_file.start, bazaar_room_file.end]) #room list + rom.write_int16s(0x28E3080, [0x0000, 0x0001]) # entrance list + rom.write_int16(0x28E4076, 0x0005) # Change shop to Kakariko Bazaar + #rom.write_int16(0x3489076, 0x0005) # Change shop to Kakariko Bazaar + + # Load Message and Shop Data + messages = read_messages(rom) + shop_items = read_shop_items(rom, shop_item_file.start + 0x1DEC) + remove_unused_messages(messages) + + # Set Big Poe count to get reward from buyer + if world.big_poe_count_random: + world.big_poe_count = random.randint(1, 10) + poe_points = world.big_poe_count * 100 + rom.write_int16(0xEE69CE, poe_points) + # update dialogue + if world.big_poe_count != 10: + new_message = "\x1AOh, you brought a Poe today!\x04\x1AHmmmm!\x04\x1AVery interesting!\x01This is a \x05\x41Big Poe\x05\x40!\x04\x1AI'll buy it for \x05\x4150 Rupees\x05\x40.\x04On top of that, I'll put \x05\x41100\x01points \x05\x40on your card.\x04\x1AIf you earn \x05\x41%d points\x05\x40, you'll\x01be a happy man! Heh heh." % poe_points + update_message_by_id(messages, 0x70f7, new_message) + new_message = "\x1AWait a minute! WOW!\x04\x1AYou have earned \x05\x41%d points\x05\x40!\x04\x1AYoung man, you are a genuine\x01\x05\x41Ghost Hunter\x05\x40!\x04\x1AIs that what you expected me to\x01say? Heh heh heh!\x04\x1ABecause of you, I have extra\x01inventory of \x05\x41Big Poes\x05\x40, so this will\x01be the last time I can buy a \x01ghost.\x04\x1AYou're thinking about what I \x01promised would happen when you\x01earned %d points. Heh heh.\x04\x1ADon't worry, I didn't forget.\x01Just take this." % (poe_points, poe_points) + update_message_by_id(messages, 0x70f8, new_message) + + # Sets hooks for gossip stone changes + if world.hints != 'none': + if world.hints != 'mask': + rom.write_bytes(0xEE7B84, [0x0C, 0x10, 0x02, 0x10]) + rom.write_bytes(0xEE7B8C, [0x24, 0x02, 0x00, 0x20]) + writeGossipStoneHintsHints(world, messages) + + # build silly ganon lines + buildGanonText(world, messages) + + # Write item overrides + override_table = get_override_table(world) + rom.write_bytes(0x3481000, sum(override_table, [])) + rom.write_byte(0x03481C00, world.id + 1) # Write player ID + + # Revert Song Get Override Injection + if not world.shuffle_song_items: + # general get song + rom.write_int32(0xAE5DF8, 0x240200FF) + rom.write_int32(0xAE5E04, 0xAD0F00A4) + # requiem of spirit + rom.write_int32s(0xAC9ABC, [0x3C010001, 0x00300821]) + # sun song + rom.write_int32(0xE09F68, 0x8C6F00A4) + rom.write_int32(0xE09F74, 0x01CFC024) + rom.write_int32(0xE09FB0, 0x240F0001) + # epona + rom.write_int32(0xD7E77C, 0x8C4900A4) + rom.write_int32(0xD7E784, 0x8D088C24) + rom.write_int32s(0xD7E8D4, [0x8DCE8C24, 0x8C4F00A4]) + rom.write_int32s(0xD7E140, [0x8DCE8C24, 0x8C6F00A4]) + rom.write_int32(0xD7EBBC, 0x14410008) + rom.write_int32(0xD7EC1C, 0x17010010) + # song of time + rom.write_int32(0xDB532C, 0x24050003) + + # Set default targeting option to Hold + if world.default_targeting == 'hold': + rom.write_byte(0xB71E6D, 0x01) + + # Set OHKO mode + if world.difficulty == 'ohko': + rom.write_int32(0xAE80A8, 0xA4A00030) # sh zero,48(a1) + rom.write_int32(0xAE80B4, 0x06000003) # bltz s0, +0003 + + # Patch songs and boss rewards + for location in world.get_locations(): + item = location.item + itemid = copy.copy(item.code) + locationaddress = location.address + secondaryaddress = location.address2 + + if itemid is None or location.address is None: + continue + + if location.type == 'Song' and not world.shuffle_song_items: + rom.write_byte(locationaddress, itemid[0]) + itemid[0] = itemid[0] + 0x0D + rom.write_byte(secondaryaddress, itemid[0]) + if location.name == 'Impa at Castle': + impa_fix = 0x65 - itemid[1] + rom.write_byte(0xD12ECB, impa_fix) + rom.write_byte(0x2E8E931, item_data[item.name]) #Fix text box + elif location.name == 'Song from Malon': + if item.name == 'Suns Song': + rom.write_byte(locationaddress, itemid[0]) + malon_fix = 0x8C34 - (itemid[1] * 4) + malon_fix_high = malon_fix >> 8 + malon_fix_low = malon_fix & 0x00FF + rom.write_bytes(0xD7E142, [malon_fix_high, malon_fix_low]) + rom.write_bytes(0xD7E8D6, [malon_fix_high, malon_fix_low]) # I really don't like hardcoding these addresses, but for now..... + rom.write_bytes(0xD7E786, [malon_fix_high, malon_fix_low]) + rom.write_byte(0x29BECB9, item_data[item.name]) #Fix text box + elif location.name == 'Song from Composer Grave': + sun_fix = 0x8C34 - (itemid[1] * 4) + sun_fix_high = sun_fix >> 8 + sun_fix_low = sun_fix & 0x00FF + rom.write_bytes(0xE09F66, [sun_fix_high, sun_fix_low]) + rom.write_byte(0x332A87D, item_data[item.name]) #Fix text box + elif location.name == 'Song from Saria': + saria_fix = 0x65 - itemid[1] + rom.write_byte(0xE2A02B, saria_fix) + rom.write_byte(0x20B1DBD, item_data[item.name]) #Fix text box + elif location.name == 'Song from Ocarina of Time': + rom.write_byte(0x252FC95, item_data[item.name]) #Fix text box + elif location.name == 'Song at Windmill': + windmill_fix = 0x65 - itemid[1] + rom.write_byte(0xE42ABF, windmill_fix) + rom.write_byte(0x3041091, item_data[item.name]) #Fix text box + elif location.name == 'Sheik Forest Song': + minuet_fix = 0x65 - itemid[1] + rom.write_byte(0xC7BAA3, minuet_fix) + rom.write_byte(0x20B0815, item_data[item.name]) #Fix text box + elif location.name == 'Sheik at Temple': + prelude_fix = 0x65 - itemid[1] + rom.write_byte(0xC805EF, prelude_fix) + rom.write_byte(0x2531335, item_data[item.name]) #Fix text box + elif location.name == 'Sheik in Crater': + bolero_fix = 0x65 - itemid[1] + rom.write_byte(0xC7BC57, bolero_fix) + rom.write_byte(0x224D7FD, item_data[item.name]) #Fix text box + elif location.name == 'Sheik in Ice Cavern': + serenade_fix = 0x65 - itemid[1] + rom.write_byte(0xC7BD77, serenade_fix) + rom.write_byte(0x2BEC895, item_data[item.name]) #Fix text box + elif location.name == 'Sheik in Kakariko': + nocturne_fix = 0x65 - itemid[1] + rom.write_byte(0xAC9A5B, nocturne_fix) + rom.write_byte(0x2000FED, item_data[item.name]) #Fix text box + elif location.name == 'Sheik at Colossus': + rom.write_byte(0x218C589, item_data[item.name]) #Fix text box + elif location.type == 'Boss': + if location.name == 'Links Pocket': + write_bits_to_save(item_data[item.name][1], item_data[item.name][0]) + else: + rom.write_byte(locationaddress, itemid) + rom.write_byte(secondaryaddress, item_data[item.name][2]) + if location.name == 'Bongo Bongo': + rom.write_bytes(0xCA3F32, [item_data[item.name][3][0], item_data[item.name][3][1]]) + rom.write_bytes(0xCA3F36, [item_data[item.name][3][2], item_data[item.name][3][3]]) + elif location.name == 'Twinrova': + rom.write_bytes(0xCA3EA2, [item_data[item.name][3][0], item_data[item.name][3][1]]) + rom.write_bytes(0xCA3EA6, [item_data[item.name][3][2], item_data[item.name][3][3]]) + + # add a cheaper bombchu pack to the bombchu shop + # describe + update_message_by_id(messages, 0x80FE, '\x08\x05\x41Bombchu (5 pieces) 60 Rupees\x01\x05\x40This looks like a toy mouse, but\x01it\'s actually a self-propelled time\x01bomb!\x09\x0A', 0x03) + # purchase + update_message_by_id(messages, 0x80FF, '\x08Bombchu 5 Pieces 60 Rupees\x01\x01\x1B\x05\x42Buy\x01Don\'t buy\x05\x40\x09', 0x03) + rbl_bombchu = shop_items[0x0018] + rbl_bombchu.price = 60 + rbl_bombchu.pieces = 5 + rbl_bombchu.get_item_id = 0x006A + rbl_bombchu.description_message = 0x80FE + rbl_bombchu.purchase_message = 0x80FF + + # Reduce 10 Pack Bombchus from 100 to 99 Rupees + shop_items[0x0015].price = 99 + shop_items[0x0019].price = 99 + shop_items[0x001C].price = 99 + update_message_by_id(messages, shop_items[0x001C].description_message, "\x08\x05\x41Bombchu (10 pieces) 99 Rupees\x01\x05\x40This looks like a toy mouse, but\x01it's actually a self-propelled time\x01bomb!\x09\x0A") + update_message_by_id(messages, shop_items[0x001C].purchase_message, "\x08Bombchu 10 pieces 100 Rupees\x09\x01\x01\x1B\x05\x42Buy\x01Don't buy\x05\x40") + + # kokiri shop + shop_objs = place_shop_items(rom, world, shop_items, messages, + world.get_region('Kokiri Shop').locations, True) + shop_objs |= {0x00FC, 0x00B2, 0x0101, 0x0102, 0x00FD, 0x00C5} # Shop objects + rom.write_byte(0x2587029, len(shop_objs)) + rom.write_int32(0x258702C, 0x0300F600) + rom.write_int16s(0x2596600, list(shop_objs)) + + # kakariko bazaar + shop_objs = place_shop_items(rom, world, shop_items, messages, + world.get_region('Kakariko Bazaar').locations) + shop_objs |= {0x005B, 0x00B2, 0x00C5, 0x0107, 0x00C9, 0x016B} # Shop objects + rom.write_byte(0x28E4029, len(shop_objs)) + rom.write_int32(0x28E402C, 0x03007A40) + rom.write_int16s(0x28EBA40, list(shop_objs)) + + # castle town bazaar + shop_objs = place_shop_items(rom, world, shop_items, messages, + world.get_region('Castle Town Bazaar').locations) + shop_objs |= {0x005B, 0x00B2, 0x00C5, 0x0107, 0x00C9, 0x016B} # Shop objects + rom.write_byte(0x3489029, len(shop_objs)) + rom.write_int32(0x348902C, 0x03007A40) + rom.write_int16s(0x3490A40, list(shop_objs)) + + # goron shop + shop_objs = place_shop_items(rom, world, shop_items, messages, + world.get_region('Goron Shop').locations) + shop_objs |= {0x00C9, 0x00B2, 0x0103, 0x00AF} # Shop objects + rom.write_byte(0x2D33029, len(shop_objs)) + rom.write_int32(0x2D3302C, 0x03004340) + rom.write_int16s(0x2D37340, list(shop_objs)) + + # zora shop + shop_objs = place_shop_items(rom, world, shop_items, messages, + world.get_region('Zora Shop').locations) + shop_objs |= {0x005B, 0x00B2, 0x0104, 0x00FE} # Shop objects + rom.write_byte(0x2D5B029, len(shop_objs)) + rom.write_int32(0x2D5B02C, 0x03004B40) + rom.write_int16s(0x2D5FB40, list(shop_objs)) + + # kakariko potion shop + shop_objs = place_shop_items(rom, world, shop_items, messages, + world.get_region('Kakariko Potion Shop Front').locations) + shop_objs |= {0x0159, 0x00B2, 0x0175, 0x0122} # Shop objects + rom.write_byte(0x2D83029, len(shop_objs)) + rom.write_int32(0x2D8302C, 0x0300A500) + rom.write_int16s(0x2D8D500, list(shop_objs)) + + # market potion shop + shop_objs = place_shop_items(rom, world, shop_items, messages, + world.get_region('Castle Town Potion Shop').locations) + shop_objs |= {0x0159, 0x00B2, 0x0175, 0x00C5, 0x010C, 0x016B} # Shop objects + rom.write_byte(0x2DB0029, len(shop_objs)) + rom.write_int32(0x2DB002C, 0x03004E40) + rom.write_int16s(0x2DB4E40, list(shop_objs)) + + # bombchu shop + shop_objs = place_shop_items(rom, world, shop_items, messages, + world.get_region('Castle Town Bombchu Shop').locations) + shop_objs |= {0x0165, 0x00B2} # Shop objects + rom.write_byte(0x2DD8029, len(shop_objs)) + rom.write_int32(0x2DD802C, 0x03006A40) + rom.write_int16s(0x2DDEA40, list(shop_objs)) + + if world.shuffle_scrubs: + # Rebuild Deku Salescrub Item Table + scrub_items = [0x30, 0x31, 0x3E, 0x33, 0x34, 0x37, 0x38, 0x39, 0x3A, 0x77, 0x79] + rom.seek_address(0xDF8684) + for scrub_item in scrub_items: + rom.write_int16(None, 10) # Price + rom.write_int16(None, 1) # Count + rom.write_int32(None, scrub_item) # Item + rom.write_int32(None, 0x80A74FF8) # Can_Buy_Func + rom.write_int32(None, 0x80A75354) # Buy_Func + + # update actor IDs + set_deku_salesman_data(rom) + else: + # Revert Deku Scrubs changes + rom.write_int32s(0xEBB85C, [ + 0x24010002, # addiu at, zero, 2 + 0x3C038012, # lui v1, 0x8012 + 0x14410004, # bne v0, at, 0xd8 + 0x2463A5D0, # addiu v1, v1, -0x5a30 + 0x94790EF0])# lhu t9, 0xef0(v1) + rom.write_int32(0xDF7CB0, + 0xA44F0EF0) # sh t7, 0xef0(v0) + + # Update grotto id data + set_grotto_id_data(rom) + + if world.shuffle_smallkeys == 'remove' or world.shuffle_bosskeys == 'remove': + locked_doors = get_locked_doors(rom, world) + for _,[door_byte, door_bits] in locked_doors.items(): + write_bits_to_save(door_byte, door_bits) + + #Fix item chest animations + chestAnimations = { + 0x3D: 0xED, #0x13 #Heart Container + 0x3E: 0xEC, #0x14 #Piece of Heart + 0x42: 0x02, #0xFE #Small Key + 0x48: 0xF7, #0x09 #Recovery Heart + 0x4F: 0xED, #0x13 #Heart Container + 0x76: 0xEC, #0x14 #WINNER! Piece of Heart + } + if world.bombchus_in_logic: + #Fix bombchu chest animations + chestAnimations[0x6A] = 0x28 #0xD8 #Bombchu (5) + chestAnimations[0x03] = 0x28 #0xD8 #Bombchu (10) + chestAnimations[0x6B] = 0x28 #0xD8 #Bombchu (20) + for item_id, gfx_id in chestAnimations.items(): + rom.write_byte(0xBEEE8E + (item_id * 6) + 2, gfx_id) + + # Update chest type sizes + if world.correct_chest_sizes: + update_chest_sizes(rom, override_table) + + # Move Ganon's Castle's Zelda's Lullaby Chest back so is reachable if large + rom.write_int16(0x321B176, 0xFC40) # original 0xFC48 + + # give dungeon items the correct messages + message_patch_for_dungeon_items(messages, shop_items, world) + if world.shuffle_mapcompass == 'keysanity' and world.enhance_map_compass: + reward_list = {'Kokiri Emerald': "\x05\x42Kokiri Emerald\x05\x40", + 'Goron Ruby': "\x05\x41Goron Ruby\x05\x40", + 'Zora Sapphire': "\x05\x43Zora Sapphire\x05\x40", + 'Forest Medallion': "\x05\x42Forest Medallion\x05\x40", + 'Fire Medallion': "\x05\x41Fire Medallion\x05\x40", + 'Water Medallion': "\x05\x43Water Medallion\x05\x40", + 'Spirit Medallion': "\x05\x46Spirit Medallion\x05\x40", + 'Shadow Medallion': "\x05\x45Shadow Medallion\x05\x40", + 'Light Medallion': "\x05\x44Light Medallion\x05\x40" + } + dungeon_list = {'DT': ("the \x05\x42Deku Tree", 'Queen Gohma', 0x62, 0x88), + 'DC': ("\x05\x41Dodongo\'s Cavern", 'King Dodongo', 0x63, 0x89), + 'JB': ("\x05\x43Jabu Jabu\'s Belly", 'Barinade', 0x64, 0x8a), + 'FoT': ("the \x05\x42Forest Temple", 'Phantom Ganon', 0x65, 0x8b), + 'FiT': ("the \x05\x41Fire Temple", 'Volvagia', 0x7c, 0x8c), + 'WT': ("the \x05\x43Water Temple", 'Morpha', 0x7d, 0x8e), + 'SpT': ("the \x05\x46Spirit Temple", 'Twinrova', 0x7e, 0x8f), + 'IC': ("the \x05\x44Ice Cavern", None, 0x87, 0x92), + 'BW': ("the \x05\x45Bottom of the Well", None, 0xa2, 0xa5), + 'ShT': ("the \x05\x45Shadow Temple", 'Bongo Bongo', 0x7f, 0xa3), + } + for dungeon in world.dungeon_mq: + if dungeon in ['GTG', 'GC']: + pass + elif dungeon in ['BW', 'IC']: + dungeon_name, boss_name, compass_id, map_id = dungeon_list[dungeon] + map_message = "\x13\x76\x08You found the \x05\x41Dungeon Map\x05\x40\x01for %s\x05\x40!\x01It\'s %s!\x09" % (dungeon_name, "masterful" if world.dungeon_mq[dungeon] else "ordinary") + if world.quest == 'mixed': + update_message_by_id(messages, map_id, map_message) + else: + dungeon_name, boss_name, compass_id, map_id = dungeon_list[dungeon] + dungeon_reward = reward_list[world.get_location(boss_name).item.name] + compass_message = "\x13\x75\x08You found the \x05\x41Compass\x05\x40\x01for %s\x05\x40!\x01It holds the %s!\x09" % (dungeon_name, dungeon_reward) + update_message_by_id(messages, compass_id, compass_message) + if world.quest == 'mixed': + map_message = "\x13\x76\x08You found the \x05\x41Dungeon Map\x05\x40\x01for %s\x05\x40!\x01It\'s %s!\x09" % (dungeon_name, "masterful" if world.dungeon_mq[dungeon] else "ordinary") + update_message_by_id(messages, map_id, map_message) + + else: + # Set hints for boss reward shuffle + rom.write_bytes(0xE2ADB2, [0x70, 0x7A]) + rom.write_bytes(0xE2ADB6, [0x70, 0x57]) + buildBossRewardHints(world, messages) + + # update happy mask shop to use new SOLD OUT text id + rom.write_int16(shop_item_file.start + 0x1726, shop_items[0x26].description_message) + + # add song messages + add_song_messages(messages, world) + + # reduce item message lengths + update_item_messages(messages, world) + + # Add 3rd Wallet Upgrade + rom.write_int16(0xB6D57E, 0x0003) + rom.write_int16(0xB6EC52, 999) + update_message_by_id(messages, 0x00F8, "\x08\x13\x57You got a \x05\x43Tycoon's Wallet\x05\x40!\x01Now you can hold\x01up to \x05\x46999\x05\x40 \x05\x46Rupees\x05\x40.", 0x23) + + repack_messages(rom, messages) + write_shop_items(rom, shop_item_file.start + 0x1DEC, shop_items) + + # text shuffle + if world.text_shuffle == 'except_hints': + shuffle_messages(rom, True) + elif world.text_shuffle == 'complete': + shuffle_messages(rom, False) + + # output a text dump, for testing... + #with open('keysanity_' + str(world.seed) + '_dump.txt', 'w', encoding='utf-16') as f: + # messages = read_messages(rom) + # f.write('item_message_strings = {\n') + # for m in messages: + # f.write("\t0x%04X: \"%s\",\n" % (m.id, m.get_python_string())) + # f.write('}\n') + + + scarecrow_song = None + if world.free_scarecrow: + scarecrow_song = str_to_song(world.scarecrow_song) #verified valid string in Main.py + + write_bits_to_save(0x0EE6, 0x10) # Played song as adult + write_byte_to_save(0x12C5, 0x01) # Song is remembered + write_bytes_to_save(0x12C6, scarecrow_song.playback_data[:(16*8)], lambda v: v != 0) + + if world.ocarina_songs: + replace_songs(rom, scarecrow_song) + + # actually write the save table to rom + write_save_table(rom) + + # patch music + if world.background_music == 'random': + randomize_music(rom) + elif world.background_music == 'off': + disable_music(rom) + + # re-seed for aesthetic effects. They shouldn't be affected by the generation seed + random.seed() + + # patch tunic colors + # Custom color tunic stuff + Tunics = [] + Tunics.append(0x00B6DA38) # Kokiri Tunic + Tunics.append(0x00B6DA3B) # Goron Tunic + Tunics.append(0x00B6DA3E) # Zora Tunic + colorList = get_tunic_colors() + randomColors = random.choices(colorList, k=3) + + for i in range(len(Tunics)): + # get the color option + thisColor = world.tunic_colors[i] + # handle true random + randColor = [random.getrandbits(8), random.getrandbits(8), random.getrandbits(8)] + if thisColor == 'Completely Random': + color = randColor + else: + # handle random + if world.tunic_colors[i] == 'Random Choice': + color = TunicColors[randomColors[i]] + # grab the color from the list + elif thisColor in TunicColors: + color = TunicColors[thisColor] + # build color from hex code + else: + color = list(int(thisColor[i:i+2], 16) for i in (0, 2 ,4)) + rom.write_bytes(Tunics[i], color) + + # patch navi colors + Navi = [] + Navi.append([0x00B5E184]) # Default + Navi.append([0x00B5E19C, 0x00B5E1BC]) # Enemy, Boss + Navi.append([0x00B5E194]) # NPC + Navi.append([0x00B5E174, 0x00B5E17C, 0x00B5E18C, 0x00B5E1A4, 0x00B5E1AC, 0x00B5E1B4, 0x00B5E1C4, 0x00B5E1CC, 0x00B5E1D4]) # Everything else + naviList = get_navi_colors() + randomColors = random.choices(naviList, k=4) + + for i in range(len(Navi)): + # do everything in the inner loop so that "true random" changes even for subcategories + for j in range(len(Navi[i])): + # get the color option + thisColor = world.navi_colors[i] + # handle true random + randColor = [random.getrandbits(8), random.getrandbits(8), random.getrandbits(8), 0xFF, + random.getrandbits(8), random.getrandbits(8), random.getrandbits(8), 0x00] + if thisColor == 'Completely Random': + color = randColor + else: + # handle random + if world.navi_colors[i] == 'Random Choice': + color = NaviColors[randomColors[i]] + # grab the color from the list + elif thisColor in NaviColors: + color = NaviColors[thisColor] + # build color from hex code + else: + color = list(int(thisColor[i:i+2], 16) for i in (0, 2 ,4)) + color = color + [0xFF] + color + [0x00] + rom.write_bytes(Navi[i][j], color) + + #Navi hints + NaviHint = [] + NaviHint.append([0xAE7EF2, 0xC26C7E]) #Overworld Hint + NaviHint.append([0xAE7EC6]) #Enemy Target Hint + naviHintSFXList = ['Default', 'Notification', 'Rupee', 'Timer', 'Tamborine', 'Recovery Heart', 'Carrot Refill', 'Navi - Hey!', 'Navi - Random', 'Zelda - Gasp', 'Cluck', 'Mweep!', 'None'] + randomNaviHintSFX = random.choices(naviHintSFXList, k=2) + + for i in range(len(NaviHint)): + for j in range(len(NaviHint[i])): + thisNaviHintSFX = world.navi_hint_sounds[i] + if thisNaviHintSFX == 'Random Choice': + thisNaviHintSFX = randomNaviHintSFX[i] + if thisNaviHintSFX == 'Notification': + naviHintSFX = [0x48, 0x20] + elif thisNaviHintSFX == 'Rupee': + naviHintSFX = [0x48, 0x03] + elif thisNaviHintSFX == 'Timer': + naviHintSFX = [0x48, 0x1A] + elif thisNaviHintSFX == 'Tamborine': + naviHintSFX = [0x48, 0x42] + elif thisNaviHintSFX == 'Recovery Heart': + naviHintSFX = [0x48, 0x0B] + elif thisNaviHintSFX == 'Carrot Refill': + naviHintSFX = [0x48, 0x45] + elif thisNaviHintSFX == 'Navi - Hey!': + naviHintSFX = [0x68, 0x5F] + elif thisNaviHintSFX == 'Navi - Random': + naviHintSFX = [0x68, 0x43] + elif thisNaviHintSFX == 'Zelda - Gasp': + naviHintSFX = [0x68, 0x79] + elif thisNaviHintSFX == 'Cluck': + naviHintSFX = [0x28, 0x12] + elif thisNaviHintSFX == 'Mweep!': + naviHintSFX = [0x68, 0x7A] + elif thisNaviHintSFX == 'None': + naviHintSFX = [0x00, 0x00] + if thisNaviHintSFX != 'Default': + rom.write_bytes(NaviHint[i][j], naviHintSFX) + + #Low health beep + healthSFXList = ['Default', 'Softer Beep', 'Rupee', 'Timer', 'Tamborine', 'Recovery Heart', 'Carrot Refill', 'Navi - Hey!', 'Zelda - Gasp', 'Cluck', 'Mweep!', 'None'] + randomSFX = random.choice(healthSFXList) + address = 0xADBA1A + + if world.healthSFX == 'Random Choice': + thisHealthSFX = randomSFX + else: + thisHealthSFX = world.healthSFX + if thisHealthSFX == 'Default': + healthSFX = [0x48, 0x1B] + elif thisHealthSFX == 'Softer Beep': + healthSFX = [0x48, 0x04] + elif thisHealthSFX == 'Rupee': + healthSFX = [0x48, 0x03] + elif thisHealthSFX == 'Timer': + healthSFX = [0x48, 0x1A] + elif thisHealthSFX == 'Tamborine': + healthSFX = [0x48, 0x42] + elif thisHealthSFX == 'Recovery Heart': + healthSFX = [0x48, 0x0B] + elif thisHealthSFX == 'Carrot Refill': + healthSFX = [0x48, 0x45] + elif thisHealthSFX == 'Navi - Hey!': + healthSFX = [0x68, 0x5F] + elif thisHealthSFX == 'Zelda - Gasp': + healthSFX = [0x68, 0x79] + elif thisHealthSFX == 'Cluck': + healthSFX = [0x28, 0x12] + elif thisHealthSFX == 'Mweep!': + healthSFX = [0x68, 0x7A] + elif thisHealthSFX == 'None': + healthSFX = [0x00, 0x00, 0x00, 0x00] + address = 0xADBA14 + rom.write_bytes(address, healthSFX) + + return rom + +def get_override_table(world): + override_entries = [] + for location in world.get_locations(): + override_entries.append(get_override_entry(location)) + override_entries.sort() + return override_entries + +def get_override_entry(location): + scene = location.scene + default = location.default + item_id = location.item.index + if None in [scene, default, item_id]: + return [] + + player_id = (location.item.world.id + 1) << 3 + + if location.type in ['NPC', 'BossHeart', 'Song']: + return [scene, player_id | 0x00, default, item_id] + elif location.type == 'Chest': + flag = default & 0x1F + return [scene, player_id | 0x01, flag, item_id] + elif location.type == 'Collectable': + return [scene, player_id | 0x02, default, item_id] + elif location.type == 'GS Token': + return [scene, player_id | 0x03, default, item_id] + elif location.type == 'Shop' and location.item.type != 'Shop': + return [scene, player_id | 0x00, default, item_id] + elif location.type == 'GrottoNPC' and location.item.type != 'Shop': + return [scene, player_id | 0x04, default, item_id] + else: + return [] + + +chestTypeMap = { + # small big boss + 0x0000: [0x5000, 0x0000, 0x2000], #Large + 0x1000: [0x7000, 0x1000, 0x1000], #Large, Appears, Clear Flag + 0x2000: [0x5000, 0x0000, 0x2000], #Boss Key’s Chest + 0x3000: [0x8000, 0x3000, 0x3000], #Large, Falling, Switch Flag + 0x4000: [0x6000, 0x4000, 0x4000], #Large, Invisible + 0x5000: [0x5000, 0x0000, 0x2000], #Small + 0x6000: [0x6000, 0x4000, 0x4000], #Small, Invisible + 0x7000: [0x7000, 0x1000, 0x1000], #Small, Appears, Clear Flag + 0x8000: [0x8000, 0x3000, 0x3000], #Small, Falling, Switch Flag + 0x9000: [0x9000, 0x9000, 0x9000], #Large, Appears, Zelda's Lullaby + 0xA000: [0xA000, 0xA000, 0xA000], #Large, Appears, Sun's Song Triggered + 0xB000: [0xB000, 0xB000, 0xB000], #Large, Appears, Switch Flag + 0xC000: [0x5000, 0x0000, 0x2000], #Large + 0xD000: [0x5000, 0x0000, 0x2000], #Large + 0xE000: [0x5000, 0x0000, 0x2000], #Large + 0xF000: [0x5000, 0x0000, 0x2000], #Large +} + +chestAnimationExtendedFast = [ + 0x87, # Progressive Nut Capacity + 0x88, # Progressive Stick Capacity + 0x98, # Deku Tree Compass + 0x99, # Dodongo's Cavern Compass + 0x9A, # Jabu Jabu Compass + 0x9B, # Forest Temple Compass + 0x9C, # Fire Temple Compass + 0x9D, # Water Temple Compass + 0x9E, # Spirit Temple Compass + 0x9F, # Shadow Temple Compass + 0xA0, # Bottom of the Well Compass + 0xA1, # Ice Cavern Compass + 0xA2, # Deku Tree Map + 0xA3, # Dodongo's Cavern Map + 0xA4, # Jabu Jabu Map + 0xA5, # Forest Temple Map + 0xA6, # Fire Temple Map + 0xA7, # Water Temple Map + 0xA8, # Spirit Temple Map + 0xA9, # Shadow Temple Map + 0xAA, # Bottom of the Well Map + 0xAB, # Ice Cavern Map + 0xB6, # Recovery Heart + 0xB7, # Arrows (5) + 0xB8, # Arrows (10) + 0xB9, # Arrows (30) + 0xBA, # Bombs (5) + 0xBB, # Bombs (10) + 0xBC, # Bombs (20) + 0xBD, # Deku Nuts (5) + 0xBE, # Deku Nuts (10) + 0xBF, # Double Defense + 0xD0, # Deku Stick (1) + 0xD1, # Deky Seeds (30) +] + + +def room_get_actors(rom, actor_func, room_data, scene, alternate=None): + actors = {} + room_start = alternate if alternate else room_data + command = 0 + while command != 0x14: # 0x14 = end header + command = rom.read_byte(room_data) + if command == 0x01: # actor list + actor_count = rom.read_byte(room_data + 1) + actor_list = room_start + (rom.read_int32(room_data + 4) & 0x00FFFFFF) + for _ in range(0, actor_count): + actor_id = rom.read_int16(actor_list) + entry = actor_func(rom, actor_id, actor_list, scene) + if entry: + actors[actor_list] = entry + actor_list = actor_list + 16 + if command == 0x18: # Alternate header list + header_list = room_start + (rom.read_int32(room_data + 4) & 0x00FFFFFF) + for alt_id in range(0,3): + header_data = room_start + (rom.read_int32(header_list) & 0x00FFFFFF) + if header_data != 0 and not alternate: + actors.update(room_get_actors(rom, actor_func, header_data, scene, room_start)) + header_list = header_list + 4 + room_data = room_data + 8 + return actors + + +def scene_get_actors(rom, actor_func, scene_data, scene, alternate=None, processed_rooms=None): + if processed_rooms == None: + processed_rooms = [] + actors = {} + scene_start = alternate if alternate else scene_data + command = 0 + while command != 0x14: # 0x14 = end header + command = rom.read_byte(scene_data) + if command == 0x04: #room list + room_count = rom.read_byte(scene_data + 1) + room_list = scene_start + (rom.read_int32(scene_data + 4) & 0x00FFFFFF) + for _ in range(0, room_count): + room_data = rom.read_int32(room_list); + + if not room_data in processed_rooms: + actors.update(room_get_actors(rom, actor_func, room_data, scene)) + processed_rooms.append(room_data) + room_list = room_list + 8 + if command == 0x0E: #transition actor list + actor_count = rom.read_byte(scene_data + 1) + actor_list = scene_start + (rom.read_int32(scene_data + 4) & 0x00FFFFFF) + for _ in range(0, actor_count): + actor_id = rom.read_int16(actor_list + 4) + entry = actor_func(rom, actor_id, actor_list, scene) + if entry: + actors[actor_list] = entry + actor_list = actor_list + 16 + if command == 0x18: # Alternate header list + header_list = scene_start + (rom.read_int32(scene_data + 4) & 0x00FFFFFF) + for alt_id in range(0,3): + header_data = scene_start + (rom.read_int32(header_list) & 0x00FFFFFF) + if header_data != 0 and not alternate: + actors.update(scene_get_actors(rom, actor_func, header_data, scene, scene_start, processed_rooms)) + header_list = header_list + 4 + + scene_data = scene_data + 8 + return actors + +def get_actor_list(rom, actor_func): + actors = {} + scene_table = 0x00B71440 + for scene in range(0x00, 0x65): + scene_data = rom.read_int32(scene_table + (scene * 0x14)); + actors.update(scene_get_actors(rom, actor_func, scene_data, scene)) + return actors + +def get_override_itemid(override_table, scene, type, flags): + for entry in override_table: + if len(entry) == 4 and entry[0] == scene and (entry[1] & 0x07) == type and entry[2] == flags: + return entry[3] + return None + +def update_chest_sizes(rom, override_table): + def get_chest(rom, actor_id, actor, scene): + if actor_id == 0x000A: #Chest Actor + actor_var = rom.read_int16(actor + 14) + return [scene, actor_var & 0x001F] + + chest_list = get_actor_list(rom, get_chest) + for actor, [scene, flags] in chest_list.items(): + item_id = get_override_itemid(override_table, scene, 1, flags) + + if None in [actor, scene, flags, item_id]: + continue + + itemType = 0 # Item animation + + if item_id >= 0x80: # if extended item, always big except from exception list + itemType = 0 if item_id in chestAnimationExtendedFast else 1 + elif rom.read_byte(0xBEEE8E + (item_id * 6) + 2) & 0x80: # get animation from rom, ice trap is big + itemType = 0 # No animation, small chest + else: + itemType = 1 # Long animation, big chest + # Don't use boss chests + + default = rom.read_int16(actor + 14) + chestType = default & 0xF000 + newChestType = chestTypeMap[chestType][itemType] + default = (default & 0x0FFF) | newChestType + rom.write_int16(actor + 14, default) + +def set_grotto_id_data(rom): + def set_grotto_id(rom, actor_id, actor, scene): + if actor_id == 0x009B: #Grotto + actor_zrot = rom.read_int16(actor + 12) + actor_var = rom.read_int16(actor + 14); + grotto_scene = actor_var >> 12 + grotto_entrance = actor_zrot & 0x000F + grotto_id = actor_var & 0x00FF + + if grotto_scene == 0 and grotto_entrance in [2, 4, 7, 10]: + grotto_scenes.add(scene) + rom.write_byte(actor + 15, len(grotto_scenes)) + + grotto_scenes = set() + + get_actor_list(rom, set_grotto_id) + +def set_deku_salesman_data(rom): + def set_deku_salesman(rom, actor_id, actor, scene): + if actor_id == 0x0195: #Salesman + actor_var = rom.read_int16(actor + 14) + if actor_var == 6: + rom.write_int16(actor + 14, 0x0003) + + get_actor_list(rom, set_deku_salesman) + +def get_locked_doors(rom, world): + def locked_door(rom, actor_id, actor, scene): + actor_var = rom.read_int16(actor + 14) + actor_type = actor_var >> 6 + actor_flag = actor_var & 0x003F + + flag_id = (1 << actor_flag) + flag_byte = 3 - (actor_flag >> 3) + flag_bits = 1 << (actor_flag & 0x07) + + # If locked door, set the door's unlock flag + if world.shuffle_smallkeys == 'remove': + if actor_id == 0x0009 and actor_type == 0x02: + return [0x00D4 + scene * 0x1C + 0x04 + flag_byte, flag_bits] + if actor_id == 0x002E and actor_type == 0x0B: + return [0x00D4 + scene * 0x1C + 0x04 + flag_byte, flag_bits] + + # If boss door, set the door's unlock flag + if world.shuffle_bosskeys == 'remove': + if actor_id == 0x002E and actor_type == 0x05: + return [0x00D4 + scene * 0x1C + 0x04 + flag_byte, flag_bits] + + return get_actor_list(rom, locked_door) + +def place_shop_items(rom, world, shop_items, messages, locations, init_shop_id=False): + if init_shop_id: + place_shop_items.shop_id = 0x32 + + shop_objs = { 0x0148 } # Sold Out + messages + for location in locations: + shop_objs.add(location.item.object) + if location.item.type == 'Shop': + rom.write_int16(location.address, location.item.index) + else: + shop_id = place_shop_items.shop_id + rom.write_int16(location.address, shop_id) + shop_item = shop_items[shop_id] + + shop_item.object = location.item.object + shop_item.model = location.item.model - 1 + shop_item.price = location.price + shop_item.pieces = 1 + shop_item.get_item_id = location.default + shop_item.func1 = 0x808648CC + shop_item.func2 = 0x808636B8 + shop_item.func3 = 0x00000000 + shop_item.func4 = 0x80863FB4 + + message_id = (shop_id - 0x32) * 2 + shop_item.description_message = 0x8100 + message_id + shop_item.purchase_message = 0x8100 + message_id + 1 + if world.world_count > 1: + update_message_by_id(messages, shop_item.description_message, '\x08\x05\x41%s %d Rupees\x01\x05\x42Player %d\x05\x40\x01Special deal! ONE LEFT!\x09\x0A\x02' % (location.item.name, location.price, location.item.world.id + 1), 0x03) + else: + update_message_by_id(messages, shop_item.description_message, '\x08\x05\x41%s %d Rupees\x01\x05\x40Special deal! ONE LEFT!\x01Get it while it lasts!\x09\x0A\x02' % (location.item.name, location.price), 0x03) + update_message_by_id(messages, shop_item.purchase_message, '\x08%s %d Rupees\x09\x01\x01\x1B\x05\x42Buy\x01Don\'t buy\x05\x40\x02' % (location.item.name, location.price), 0x03) + + place_shop_items.shop_id += 1 + + return shop_objs + +# Format: (Title, Sequence ID) +bgm_sequence_ids = [ + ('Hyrule Field', 0x02), + ('Dodongos Cavern', 0x18), + ('Kakariko Adult', 0x19), + ('Battle', 0x1A), + ('Boss Battle', 0x1B), + ('Inside Deku Tree', 0x1C), + ('Market', 0x1D), + ('Title Theme', 0x1E), + ('House', 0x1F), + ('Jabu Jabu', 0x26), + ('Kakariko Child', 0x27), + ('Fairy Fountain', 0x28), + ('Zelda Theme', 0x29), + ('Fire Temple', 0x2A), + ('Forest Temple', 0x2C), + ('Castle Courtyard', 0x2D), + ('Ganondorf Theme', 0x2E), + ('Lon Lon Ranch', 0x2F), + ('Goron City', 0x30), + ('Miniboss Battle', 0x38), + ('Temple of Time', 0x3A), + ('Kokiri Forest', 0x3C), + ('Lost Woods', 0x3E), + ('Spirit Temple', 0x3F), + ('Horse Race', 0x40), + ('Ingo Theme', 0x42), + ('Fairy Flying', 0x4A), + ('Deku Tree', 0x4B), + ('Windmill Hut', 0x4C), + ('Shooting Gallery', 0x4E), + ('Sheik Theme', 0x4F), + ('Zoras Domain', 0x50), + ('Shop', 0x55), + ('Chamber of the Sages', 0x56), + ('Ice Cavern', 0x58), + ('Kaepora Gaebora', 0x5A), + ('Shadow Temple', 0x5B), + ('Water Temple', 0x5C), + ('Gerudo Valley', 0x5F), + ('Potion Shop', 0x60), + ('Kotake and Koume', 0x61), + ('Castle Escape', 0x62), + ('Castle Underground', 0x63), + ('Ganondorf Battle', 0x64), + ('Ganon Battle', 0x65), + ('Fire Boss', 0x6B), + ('Mini-game', 0x6C) +] + +def randomize_music(rom): + # Read in all the Music data + bgm_data = [] + for bgm in bgm_sequence_ids: + bgm_sequence = rom.read_bytes(0xB89AE0 + (bgm[1] * 0x10), 0x10) + bgm_instrument = rom.read_int16(0xB89910 + 0xDD + (bgm[1] * 2)) + bgm_data.append((bgm_sequence, bgm_instrument)) + + # shuffle data + random.shuffle(bgm_data) + + # Write Music data back in random ordering + for bgm in bgm_sequence_ids: + bgm_sequence, bgm_instrument = bgm_data.pop() + rom.write_bytes(0xB89AE0 + (bgm[1] * 0x10), bgm_sequence) + rom.write_int16(0xB89910 + 0xDD + (bgm[1] * 2), bgm_instrument) + + # Write Fairy Fountain instrument to File Select (uses same track but different instrument set pointer for some reason) + rom.write_int16(0xB89910 + 0xDD + (0x57 * 2), rom.read_int16(0xB89910 + 0xDD + (0x28 * 2))) + +def disable_music(rom): + # First track is no music + blank_track = rom.read_bytes(0xB89AE0 + (0 * 0x10), 0x10) + for bgm in bgm_sequence_ids: + rom.write_bytes(0xB89AE0 + (bgm[1] * 0x10), blank_track) + +def boss_reward_index(world, boss_name): + code = world.get_location(boss_name).item.code + if code >= 0x6C: + return code - 0x6C + else: + return 3 + code - 0x66 + +def configure_dungeon_info(rom, world): + mq_enable = world.quest == 'mixed' + mapcompass_keysanity = world.settings.shuffle_mapcompass == 'keysanity' and world.settings.enhance_map_compass + + bosses = ['Queen Gohma', 'King Dodongo', 'Barinade', 'Phantom Ganon', + 'Volvagia', 'Morpha', 'Twinrova', 'Bongo Bongo'] + dungeon_rewards = [boss_reward_index(world, boss) for boss in bosses] + + codes = ['DT', 'DC', 'JB', 'FoT', 'FiT', 'WT', 'SpT', 'ShT', + 'BW', 'IC', 'Tower (N/A)', 'GTG', 'Hideout (N/A)', 'GC'] + dungeon_is_mq = [1 if world.dungeon_mq.get(c) else 0 for c in codes] + + rom.write_int32(rom.sym('cfg_dungeon_info_enable'), 1) + rom.write_int32(rom.sym('cfg_dungeon_info_mq_enable'), int(mq_enable)) + rom.write_int32(rom.sym('cfg_dungeon_info_mq_need_map'), int(mapcompass_keysanity)) + rom.write_int32(rom.sym('cfg_dungeon_info_reward_need_compass'), int(mapcompass_keysanity)) + rom.write_bytes(rom.sym('cfg_dungeon_rewards'), dungeon_rewards) + rom.write_bytes(rom.sym('cfg_dungeon_is_mq'), dungeon_is_mq) diff --git a/README.md b/README.md index f3376fce4..e3e52afb8 100644 --- a/README.md +++ b/README.md @@ -91,11 +91,15 @@ The Fairy Ocarina and Ocarina of Time can be shuffled into the item pool with `s Enabling `shuffle_song_items` will make learning songs into items and shuffle the songs into the item pool. Song can appear at any location, and any item can appear at the original song locations. -## Keysanity +## Shuffle Dungeon Items -Dungeon items (maps, compasses, small keys, boss keys) are shuffled into the item pool at large. +The shuffling rules can be set separately for Maps/Compasses, Small Keys, and Boss Keys using `shuffle_mapcompass`, `shuffle_smallkeys`, and `shuffle_bosskeys` respectively. They can use one of the following rules: -This was actually mostly implemented, I just pulled the trigger... +- `remove`: The dungeon item type is removed from the game. If it is a key, then the associated doors will be unlocked. +- `dungeon`: The dungeon item type will always appear in their own dungeon. +- `keysanity`: The dungeon item type are shuffles into the pool and can appear anywhere. + +Keysanity also adds a menu to view your current dungeon items. While in the item select screen, hold A and it will show current key counts along with maps and compasses. If the compass has been obtained then it will show the medallion/stone reward for the dungeon. If the map has been obatained it will indicate if the dungeon is a Master Quest dungeon or a vanilla Ocarina of Time dungeon. ## Tokensanity @@ -103,10 +107,26 @@ Gold Skulltula Token are added to the item pool, and Gold Skulltula locations gi In addition there is an option for the logic to expect Sun's Song to obtain any night-only skulltula token. +## Shopsanity + +Shop items are shuffled within the world's shops. The logic ensures that ammo is always available from a shop in order to use the associated item. The Kakariko and Market Bazaar are seperate shops, meaning that there is a total of 8 shops in the game. + +There is also an option to replace some number of shop items in each shop with a non-shop item. These items can only be purchased once, and may require having 1 or 2 wallet upgrades but never more than 300 rupees. You can choose to have up to 4 non-shop items per shop, making a total of 32 new item locations. The random option will have each shop have a different number of these items (0 to 4). These items will always be on the left side of the shop. + +Since a lot more money is excepted to be needed to buy items, more money is added to the pool as well as a 3rd Wallet upgrade. The highest tier can hold 999 rupees. This will make it easier to obtain wallets earlier to help hold the added money. + +## Shuffle Deku Scrubs + +This option will shuffle all the Deku Salesscrubs to give random items. There is a total of 36 total scrubs that sell items. You can only buy from each scrubs once. Because of the large amount of money normally required to purchase from all the scrubs (well over 1000 rupees) the cost of all scrubs is reduced to 10 rupees. For a reference, here is a list of all the locations: . + +When this option is off, only the three unique Deku Salescrubs (Heart Piece, Stick Upgrade, and Nut Upgrade) will be randomized to a new item. Their prices and all other scrubs are unaffected. + ## Changed hint system The hint system has been changed to include different kinds of hints (such as saying a location has something good, but not saying what item it is, or saying a specific item is somewhere in a dungeon, instead of giving the specific location, and so on.) An option has been added to allow talking to gossip stones from the start. Yes, this makes the Stone of Agony completely useless. +- `clearer_hints`: hints will be more obvious what item and locations they are referring to. + ## Text shuffle You can shuffle most of the text in the game. This is hilarious, but can get really confusing when buying from shops and such, so make sure you really know what people are actually asking for. diff --git a/Regions.py b/Regions.py index 3987ff3be..3b907bb51 100644 --- a/Regions.py +++ b/Regions.py @@ -1,13 +1,16 @@ import collections from BaseClasses import Region, Location, Entrance, RegionType +def shop_address(shop_id, shelf_id): + return 0xC71ED0 + (0x40 * shop_id) + (0x08 * shelf_id) def create_regions(world): world.regions = [ create_ow_region( 'Kokiri Forest', - ['Kokiri Sword Chest', 'GS Kokiri Know It All House', 'GS Kokiri Bean Patch', 'GS Kokiri House of Twins'], + ['Kokiri Sword Chest', 'GS Kokiri Know It All House', 'GS Kokiri Bean Patch', 'GS Kokiri House of Twins', + 'Deku Baba Sticks', 'Deku Baba Nuts'], ['Links House', 'Mido House', 'Saria House', 'House of Twins', 'Know It All House', 'Kokiri Shop', 'Deku Tree', 'Lost Woods', 'Lost Woods Bridge', 'Kokiri Forest Storms Grotto']), create_interior_region( @@ -33,20 +36,21 @@ def create_regions(world): ['Know It All House Exit']), create_interior_region( 'Kokiri Shop', - None, + ['Kokiri Shop Item 1', 'Kokiri Shop Item 2', 'Kokiri Shop Item 3', 'Kokiri Shop Item 4', + 'Kokiri Shop Item 5', 'Kokiri Shop Item 6', 'Kokiri Shop Item 7', 'Kokiri Shop Item 8'], ['Kokiri Shop Exit']), create_ow_region( 'Lost Woods', - ['Skull Kid', 'Ocarina Memory Game', 'Target in Woods', 'Deku Salesman Woods', - 'GS Lost Woods Bean Patch Near Bridge', 'GS Lost Woods Bean Patch Near Stage'], + ['Skull Kid', 'Ocarina Memory Game', 'Target in Woods', 'LW Deku Scrub Deku Stick Upgrade', + 'GS Lost Woods Bean Patch Near Bridge', 'GS Lost Woods Bean Patch Near Stage', + 'LW Deku Scrub Deku Nuts', 'LW Deku Scrub Deku Sticks'], ['Lost Woods Front', 'Meadow Entrance', 'Woods to Goron City', 'Lost Woods Dive Warp', 'Adult Meadow Access', 'Lost Woods Generic Grotto', 'Deku Theater', 'Lost Woods Sales Grotto']), create_ow_region('Sacred Forest Meadow Entryway', None, ['Meadow Exit', 'Meadow Gate', 'Front of Meadow Grotto']), - create_ow_region('Sacred Forest Meadow', ['Song from Saria'], ['Meadow Gate Exit', 'Meadow Fairy Grotto']), create_ow_region( - 'Forest Temple Entry Area', - ['Sheik Forest Song', 'GS Lost Woods Above Stage', 'GS Sacred Forest Meadow'], - ['Adult Meadow Exit', 'Forest Temple Entrance']), + 'Sacred Forest Meadow', + ['Song from Saria'], + ['Meadow Gate Exit', 'Meadow Fairy Grotto', 'Meadow Storms Grotto Child Access']), create_ow_region('Lost Woods Bridge', ['Gift from Saria'], ['Kokiri Forest Entrance', 'Forest Exit']), create_ow_region('Hyrule Field', ['Ocarina of Time', 'Song from Ocarina of Time'], @@ -69,7 +73,7 @@ def create_regions(world): create_ow_region( 'Gerudo Valley Far Side', ['Gerudo Valley Hammer Rocks Chest', 'GS Gerudo Valley Behind Tent', 'GS Gerudo Valley Pillar'], - ['Fortress Entrance']), + ['Fortress Entrance', 'Gerudo Valley Storms Grotto']), create_ow_region( 'Gerudo Fortress', ['Gerudo Fortress Rooftop Chest', 'Horseback Archery 1000 Points', 'Horseback Archery 1500 Points', @@ -85,7 +89,7 @@ def create_regions(world): 'Desert Colossus', ['Colossus Freestanding PoH', 'Sheik at Colossus', 'GS Desert Colossus Bean Patch', 'GS Desert Colossus Tree', 'GS Desert Colossus Hill'], - ['Colossus Fairy', 'Spirit Temple Entrance']), + ['Colossus Fairy', 'Spirit Temple Entrance', 'Desert Colossus Grotto']), create_interior_region( 'Colossus Fairy', ['Desert Colossus Fairy Reward']), @@ -121,15 +125,27 @@ def create_regions(world): ['Ganons Castle Grounds Exit', 'Ganons Castle Fairy', 'Rainbow Bridge']), create_interior_region('Ganons Castle Fairy', ['Ganons Castle Fairy Reward']), create_interior_region('Castle Town Rupee Room', ['10 Big Poes', 'GS Castle Market Guard House']), - create_interior_region('Castle Town Bazaar'), + create_interior_region( + 'Castle Town Bazaar', + ['Castle Town Bazaar Item 1', 'Castle Town Bazaar Item 2', 'Castle Town Bazaar Item 3', + 'Castle Town Bazaar Item 4', 'Castle Town Bazaar Item 5', 'Castle Town Bazaar Item 6', + 'Castle Town Bazaar Item 7', 'Castle Town Bazaar Item 8']), create_interior_region('Castle Town Mask Shop'), create_interior_region('Castle Town Shooting Gallery', ['Child Shooting Gallery']), create_interior_region( 'Castle Town Bombchu Bowling', ['Bombchu Bowling Bomb Bag', 'Bombchu Bowling Piece of Heart']), - create_interior_region('Castle Town Potion Shop'), + create_interior_region( + 'Castle Town Potion Shop', + ['Castle Town Potion Shop Item 1', 'Castle Town Potion Shop Item 2', + 'Castle Town Potion Shop Item 3', 'Castle Town Potion Shop Item 4', + 'Castle Town Potion Shop Item 5', 'Castle Town Potion Shop Item 6', + 'Castle Town Potion Shop Item 7', 'Castle Town Potion Shop Item 8']), create_interior_region('Castle Town Treasure Chest Game', ['Treasure Chest Game']), - create_interior_region('Castle Town Bombchu Shop'), + create_interior_region( + 'Castle Town Bombchu Shop', + ['Bombchu Shop Item 1', 'Bombchu Shop Item 2', 'Bombchu Shop Item 3', 'Bombchu Shop Item 4', + 'Bombchu Shop Item 5', 'Bombchu Shop Item 6', 'Bombchu Shop Item 7', 'Bombchu Shop Item 8']), create_interior_region('Castle Town Dog Lady', ['Dog Lady']), create_interior_region('Castle Town Man in Green House'), create_ow_region( @@ -149,9 +165,18 @@ def create_regions(world): create_interior_region('Impas House'), create_interior_region('Impas House Back', ['Impa House Freestanding PoH']), create_interior_region('Windmill', ['Windmill Freestanding PoH', 'Song at Windmill']), - create_interior_region('Kakariko Bazaar'), + create_interior_region( + 'Kakariko Bazaar', + ['Kakariko Bazaar Item 1', 'Kakariko Bazaar Item 2', 'Kakariko Bazaar Item 3', + 'Kakariko Bazaar Item 4', 'Kakariko Bazaar Item 5', 'Kakariko Bazaar Item 6', + 'Kakariko Bazaar Item 7', 'Kakariko Bazaar Item 8']), create_interior_region('Kakariko Shooting Gallery', ['Adult Shooting Gallery']), - create_interior_region('Kakariko Potion Shop Front'), + create_interior_region( + 'Kakariko Potion Shop Front', + ['Kakariko Potion Shop Item 1', 'Kakariko Potion Shop Item 2', + 'Kakariko Potion Shop Item 3', 'Kakariko Potion Shop Item 4', + 'Kakariko Potion Shop Item 5', 'Kakariko Potion Shop Item 6', + 'Kakariko Potion Shop Item 7', 'Kakariko Potion Shop Item 8']), create_interior_region('Kakariko Potion Shop Back'), create_interior_region('Odd Medicine Building'), create_ow_region( @@ -179,21 +204,26 @@ def create_regions(world): 'Goron City', ['Goron City Leftmost Maze Chest', 'Goron City Left Maze Chest', 'Goron City Right Maze Chest', 'Goron City Pot Freestanding PoH', 'Rolling Goron as Child', 'Link the Goron', 'GS Goron City Boulder Maze', - 'GS Goron City Center Platform'], - ['Goron City Exit', 'Goron City Bomb Wall', 'Darunias Chamber', 'Crater Access']), + 'GS Goron City Center Platform', 'Goron City Stick Pot'], + ['Goron City Exit', 'Goron City Bomb Wall', 'Darunias Chamber', + 'Crater Access', 'Goron Shop', 'Goron City Grotto']), create_ow_region( 'Goron City Woods Warp', None, ['Goron City from Woods', 'Goron City to Woods']), + create_interior_region( + 'Goron Shop', + ['Goron Shop Item 1', 'Goron Shop Item 2', 'Goron Shop Item 3', 'Goron Shop Item 4', + 'Goron Shop Item 5', 'Goron Shop Item 6', 'Goron Shop Item 7', 'Goron Shop Item 8']), create_ow_region('Darunias Chamber', ['Darunias Joy'], ['Darunias Chamber Exit']), create_ow_region( 'Death Mountain Crater Upper', - ['Biggoron', 'DM Crater Wall Freestanding PoH', 'GS Death Mountain Crater Crate'], + ['DM Crater Wall Freestanding PoH', 'Biggoron', 'GS Death Mountain Crater Crate', 'DMC Deku Scrub Bombs'], ['Crater Exit', 'Crater Hover Boots', 'Crater Scarecrow', 'Top of Crater Grotto']), create_ow_region( 'Death Mountain Crater Lower', None, - ['Crater to City', 'Crater Fairy', 'Crater Bridge', 'Crater Ascent']), + ['Crater to City', 'Crater Fairy', 'Crater Bridge', 'Crater Ascent', 'DMC Hammer Grotto']), create_ow_region( 'Death Mountain Crater Central', ['DM Crater Volcano Freestanding PoH', 'Sheik in Crater', 'GS Mountain Crater Bean Patch'], @@ -218,11 +248,12 @@ def create_regions(world): 'Zora River Shared', ['Zora River Lower Freestanding PoH', 'Zora River Upper Freestanding PoH'], ['Zora River Downstream', 'Zora River Plateau Open Grotto', 'Zora River Plateau Bombable Grotto', - 'Zora River Dive Warp']), + 'Zora River Dive Warp', 'Zora River Storms Grotto']), create_ow_region( 'Zoras Domain', - ['Diving Minigame', 'Zoras Domain Torch Run', 'King Zora Moves'], - ['Zoras Domain Exit', 'Zoras Domain Dive Warp', 'Behind King Zora', 'Zora Shop']), + ['Diving Minigame', 'Zoras Domain Torch Run', 'King Zora Moves', 'Zoras Domain Stick Pot', + 'Zoras Domain Nut Pot'], + ['Zoras Domain Exit', 'Zoras Domain Dive Warp', 'Behind King Zora', 'Zora Shop Child Access']), create_ow_region( 'Zoras Fountain', ['GS Zora\'s Fountain Tree', 'GS Zora\'s Fountain Above the Log'], @@ -230,13 +261,16 @@ def create_regions(world): create_ow_region( 'Zoras Domain Frozen', ['King Zora Thawed', 'GS Zora\'s Domain Frozen Waterfall'], - ['Zoras Fountain Adult Access']), + ['Zoras Fountain Adult Access', 'Zora Shop Adult Access']), create_ow_region( 'Outside Ice Cavern', ['Zoras Fountain Iceberg Freestanding PoH', 'Zoras Fountain Bottom Freestanding PoH', 'GS Zora\'s Fountain Hidden Cave'], ['Ice Cavern Entrance']), - create_interior_region('Zora Shop'), + create_interior_region( + 'Zora Shop', + ['Zora Shop Item 1', 'Zora Shop Item 2', 'Zora Shop Item 3', 'Zora Shop Item 4', + 'Zora Shop Item 5', 'Zora Shop Item 6', 'Zora Shop Item 7', 'Zora Shop Item 8']), create_interior_region('Zoras Fountain Fairy', ['Zoras Fountain Fairy Reward']), create_ow_region( 'Lon Lon Ranch', @@ -246,12 +280,10 @@ def create_regions(world): create_interior_region('Talon House', ['Talons Chickens']), create_interior_region('Ingo Barn'), create_interior_region('Lon Lon Corner Tower', ['Lon Lon Tower Freestanding PoH']), - create_dungeon_region( - 'Ganons Castle Lobby', - None, - ['Ganons Castle Exit', 'Ganons Castle Forest Trial', 'Ganons Castle Fire Trial', 'Ganons Castle Water Trial', - 'Ganons Castle Shadow Trial', 'Ganons Castle Spirit Trial', 'Ganons Castle Light Trial', - 'Ganons Castle Tower']), + create_interior_region( + 'Forest Temple Entry Area', + ['Sheik Forest Song', 'GS Lost Woods Above Stage', 'GS Sacred Forest Meadow'], + ['Adult Meadow Exit', 'Forest Temple Entrance', 'Meadow Storms Grotto Adult Access']), create_dungeon_region( 'Ganons Castle Tower', ['Ganons Tower Boss Key Chest', 'Ganon']), @@ -262,13 +294,17 @@ def create_regions(world): 'Lost Woods Generic Grotto', ['Lost Woods Generic Grotto Chest']), create_grotto_region('Deku Theater', ['Deku Theater Skull Mask', 'Deku Theater Mask of Truth']), - create_grotto_region('Lost Woods Sales Grotto', ['Deku Salesman Lost Woods Grotto']), + create_grotto_region('Lost Woods Sales Grotto', + ['LW Grotto Deku Scrub Arrows', 'LW Grotto Deku Scrub Deku Nut Upgrade']), create_grotto_region('Meadow Fairy Grotto'), + create_grotto_region('Meadow Storms Grotto', + ['SFM Grotto Deku Scrub Red Potion', 'SFM Grotto Deku Scrub Green Potion']), create_grotto_region('Front of Meadow Grotto', ['Wolfos Grotto Chest']), - create_grotto_region('Lon Lon Grotto'), + create_grotto_region('Lon Lon Grotto', + ['LLR Grotto Deku Scrub Deku Nuts', 'LLR Grotto Deku Scrub Bombs', 'LLR Grotto Deku Scrub Arrows']), create_grotto_region('Remote Southern Grotto', ['Remote Southern Grotto Chest']), create_grotto_region('Field Near Lake Outside Fence Grotto', ['Field Near Lake Outside Fence Grotto Chest']), - create_grotto_region('Field Near Lake Inside Fence Grotto', ['Deku Salesman Hyrule Field Grotto']), + create_grotto_region('Field Near Lake Inside Fence Grotto', ['HF Grotto Deku Scrub Piece of Heart']), create_grotto_region('Field Valley Grotto', ['GS Hyrule Field Near Gerudo Valley']), create_grotto_region('Field West Castle Town Grotto', ['Field West Castle Town Grotto Chest']), create_grotto_region('Field Far West Castle Town Grotto'), @@ -279,10 +315,21 @@ def create_regions(world): create_grotto_region('Kakariko Back Grotto', ['Kakariko Back Grotto Chest']), create_grotto_region('Mountain Bombable Grotto'), create_grotto_region('Mountain Storms Grotto', ['Mountain Storms Grotto Chest']), + create_grotto_region('Goron City Grotto', + ['Goron Grotto Deku Scrub Deku Nuts', 'Goron Grotto Deku Scrub Bombs', 'Goron Grotto Deku Scrub Arrows']), create_grotto_region('Top of Crater Grotto', ['Top of Crater Grotto Chest']), + create_grotto_region('DMC Hammer Grotto', + ['DMC Grotto Deku Scrub Deku Nuts', 'DMC Grotto Deku Scrub Bombs', 'DMC Grotto Deku Scrub Arrows']), create_grotto_region('Zora River Plateau Open Grotto', ['Zora River Plateau Open Grotto Chest']), create_grotto_region('Zora River Plateau Bombable Grotto'), - create_grotto_region('Lake Hylia Grotto') + create_grotto_region('Zora River Storms Grotto', + ['ZR Grotto Deku Scrub Red Potion', 'ZR Grotto Deku Scrub Green Potion']), + create_grotto_region('Lake Hylia Grotto', + ['LH Grotto Deku Scrub Deku Nuts', 'LH Grotto Deku Scrub Bombs', 'LH Grotto Deku Scrub Arrows']), + create_grotto_region('Desert Colossus Grotto', + ['Desert Grotto Deku Scrub Red Potion', 'Desert Grotto Deku Scrub Green Potion']), + create_grotto_region('Gerudo Valley Storms Grotto', + ['Valley Grotto Deku Scrub Red Potion', 'Valley Grotto Deku Scrub Green Potion']), ] if world.dungeon_mq['DT']: @@ -290,7 +337,7 @@ def create_regions(world): create_dungeon_region( 'Deku Tree Lobby', ['Deku Tree MQ Lobby Chest', 'Deku Tree MQ Slingshot Chest', 'Deku Tree MQ Slingshot Room Back Chest', - 'Deku Tree MQ Basement Chest', 'GS Deku Tree MQ Lobby'], + 'Deku Tree MQ Basement Chest', 'GS Deku Tree MQ Lobby', 'DT MQ Deku Scrub Deku Shield'], ['Deku Tree Exit', 'Deku Tree Compass Passage', 'Deku Tree Basement Path']), create_dungeon_region( 'Deku Tree Compass Room', @@ -332,7 +379,9 @@ def create_regions(world): ['Dodongos Cavern MQ Map Chest', 'Dodongos Cavern MQ Compass Chest', 'Dodongos Cavern MQ Larva Room Chest', 'Dodongos Cavern MQ Torch Puzzle Room Chest', 'Dodongos Cavern MQ Bomb Bag Chest', 'GS Dodongo\'s Cavern MQ Song of Time Block Room', 'GS Dodongo\'s Cavern MQ Larva Room', - 'GS Dodongo\'s Cavern MQ Lizalfos Room', 'GS Dodongo\'s Cavern MQ Scrub Room'], + 'GS Dodongo\'s Cavern MQ Lizalfos Room', 'GS Dodongo\'s Cavern MQ Scrub Room', + 'DC MQ Deku Scrub Deku Sticks', 'DC MQ Deku Scrub Deku Seeds', + 'DC MQ Deku Scrub Deku Shield', 'DC MQ Deku Scrub Red Potion'], ['Dodongos Cavern Bomb Drop']), create_dungeon_region( 'Dodongos Cavern Boss Area', @@ -348,11 +397,12 @@ def create_regions(world): create_dungeon_region( 'Dodongos Cavern Lobby', ['Dodongos Cavern Map Chest', 'Dodongos Cavern Compass Chest', 'GS Dodongo\'s Cavern East Side Room', - 'GS Dodongo\'s Cavern Scarecrow'], + 'GS Dodongo\'s Cavern Scarecrow', 'DC Deku Scrub Deku Sticks', 'DC Deku Scrub Deku Shield'], ['Dodongos Cavern Retreat', 'Dodongos Cavern Left Door']), create_dungeon_region( 'Dodongos Cavern Climb', - ['Dodongos Cavern Bomb Flower Platform', 'GS Dodongo\'s Cavern Vines Above Stairs'], + ['Dodongos Cavern Bomb Flower Platform', 'GS Dodongo\'s Cavern Vines Above Stairs', + 'DC Deku Scrub Deku Seeds', 'DC Deku Scrub Deku Nuts'], ['Dodongos Cavern Bridge Fall', 'Dodongos Cavern Slingshot Target']), create_dungeon_region( 'Dodongos Cavern Far Bridge', @@ -396,7 +446,7 @@ def create_regions(world): ['Jabu Jabus Belly Exit', 'Jabu Jabus Belly Ceiling Switch']), create_dungeon_region( 'Jabu Jabus Belly Main', - ['Boomerang Chest', 'GS Jabu Jabu Water Switch Room'], + ['Boomerang Chest', 'GS Jabu Jabu Water Switch Room', 'Jabu Deku Scrub Deku Nuts'], ['Jabu Jabus Belly Retreat', 'Jabu Jabus Belly Tentacles']), create_dungeon_region( 'Jabu Jabus Belly Depths', @@ -419,11 +469,15 @@ def create_regions(world): 'Forest Temple Central Area', ['Forest Temple MQ Chest Behind Lobby', 'GS Forest Temple MQ Block Push Room'], ['Forest Temple West Eye Switch', 'Forest Temple East Eye Switch', - 'Forest Temple Block Puzzle Solve']), + 'Forest Temple Block Puzzle Solve', 'Forest Temple Crystal Switch Jump']), create_dungeon_region( 'Forest Temple After Block Puzzle', - ['Forest Temple MQ Boss Key Chest', 'Forest Temple MQ Redead Chest'], - ['Forest Temple Drop to NW Outdoors', 'Forest Temple Twisted Hall']), + ['Forest Temple MQ Boss Key Chest'], + ['Forest Temple Twisted Hall']), + create_dungeon_region( + 'Forest Temple Outdoor Ledge', + ['Forest Temple MQ Redead Chest'], + ['Forest Temple Drop to NW Outdoors']), create_dungeon_region( 'Forest Temple NW Outdoors', ['GS Forest Temple MQ Outdoor West'], @@ -593,12 +647,12 @@ def create_regions(world): 'Adult Spirit Temple', ['Spirit Temple MQ Child Center Chest', 'Spirit Temple MQ Child Climb South Chest', 'Spirit Temple MQ Lower NE Main Room Chest', 'Spirit Temple MQ Upper NE Main Room Chest', 'Spirit Temple MQ Beamos Room Chest', 'Spirit Temple MQ Ice Trap Chest', - 'Spirit Temple MQ Boss Key Chest', 'GS Spirit Temple MQ Iron Knuckle West', 'GS Spirit Temple MQ Iron Knuckle North'], + 'Spirit Temple MQ Boss Key Chest', 'GS Spirit Temple MQ Sun Block Room', 'GS Spirit Temple MQ Iron Knuckle West', + 'GS Spirit Temple MQ Iron Knuckle North'], ['Adult Spirit Temple Descent', 'Adult Spirit Temple to Shared', 'Spirit Temple Climbable Wall', 'Mirror Shield Exit']), create_dungeon_region( 'Spirit Temple Shared', - ['Spirit Temple MQ Child Climb North Chest', 'Spirit Temple MQ Compass Chest', 'Spirit Temple MQ Sun Block Room Chest', - 'GS Spirit Temple MQ Sun Block Room'], + ['Spirit Temple MQ Child Climb North Chest', 'Spirit Temple MQ Compass Chest', 'Spirit Temple MQ Sun Block Room Chest'], ['Silver Gauntlets Exit']), create_dungeon_region( 'Lower Adult Spirit Temple', @@ -623,7 +677,8 @@ def create_regions(world): ['Spirit Temple Exit', 'Spirit Temple Crawl Passage', 'Spirit Temple Silver Block']), create_dungeon_region( 'Child Spirit Temple', - ['Spirit Temple Child Left Chest', 'Spirit Temple Child Right Chest', 'GS Spirit Temple Metal Fence'], + ['Spirit Temple Child Left Chest', 'Spirit Temple Child Right Chest', 'GS Spirit Temple Metal Fence', + 'Spirit Temple Nut Crate'], ['Child Spirit Temple Climb']), create_dungeon_region( 'Child Spirit Temple Climb', @@ -737,7 +792,7 @@ def create_regions(world): 'Bottom of the Well Freestanding Key', 'Bottom of the Well Defeat Boss', 'Bottom of the Well Invisible Chest', 'Bottom of the Well Underwater Front Chest', 'Bottom of the Well Underwater Left Chest', 'Bottom of the Well Basement Chest', 'Bottom of the Well Locked Pits', 'Bottom of the Well Behind Right Grate', - 'GS Well West Inner Room', 'GS Well East Inner Room', 'GS Well Like Like Cage'], + 'GS Well West Inner Room', 'GS Well East Inner Room', 'GS Well Like Like Cage', 'Bottom of the Well Stick Pot'], ['Bottom of the Well Exit']) ]) @@ -834,6 +889,13 @@ def create_regions(world): if world.dungeon_mq['GC']: world.regions.extend([ + create_dungeon_region( + 'Ganons Castle Lobby', + ['GC MQ Deku Scrub Bombs', 'GC MQ Deku Scrub Arrows', 'GC MQ Deku Scrub Red Potion', 'GC MQ Deku Scrub Green Potion', + 'GC MQ Deku Scrub Deku Nuts'], + ['Ganons Castle Exit', 'Ganons Castle Forest Trial', 'Ganons Castle Fire Trial', 'Ganons Castle Water Trial', + 'Ganons Castle Shadow Trial', 'Ganons Castle Spirit Trial', 'Ganons Castle Light Trial', + 'Ganons Castle Tower']), create_dungeon_region( 'Ganons Castle Forest Trial', ['Ganons Castle MQ Forest Trial First Chest', 'Ganons Castle MQ Forest Trial Second Chest', @@ -860,6 +922,12 @@ def create_regions(world): ]) else: world.regions.extend([ + create_dungeon_region( + 'Ganons Castle Lobby', + ['GC Deku Scrub Bombs', 'GC Deku Scrub Arrows', 'GC Deku Scrub Red Potion', 'GC Deku Scrub Green Potion'], + ['Ganons Castle Exit', 'Ganons Castle Forest Trial', 'Ganons Castle Fire Trial', 'Ganons Castle Water Trial', + 'Ganons Castle Shadow Trial', 'Ganons Castle Spirit Trial', 'Ganons Castle Light Trial', + 'Ganons Castle Tower']), create_dungeon_region( 'Ganons Castle Forest Trial', ['Ganons Castle Forest Trial Chest', 'Ganons Castle Forest Trial Clear']), @@ -967,8 +1035,8 @@ def _create_region(name, type, locations=None, exits=None): 'Desert Colossus Fairy Reward': (0x3481403, None, 0x5E, 'NPC', 0x3D, 'Desert Colossus'), 'Mountain Summit Fairy Reward': (0x3481404, None, 0x51, 'NPC', 0x3B, 'Death Mountain Trail'), 'Crater Fairy Reward': (0x3481405, None, 0x52, 'NPC', 0x3B, 'Death Mountain Crater'), - 'Ganons Castle Fairy Reward': (0x3481406, None, 0x53, 'NPC', 0x3B, 'outside my castle'), - 'Treasure Chest Game': (None, None, 0x0A, 'Chest', 0x10, 'the market'), + 'Ganons Castle Fairy Reward': (0x3481406, None, 0x53, 'NPC', 0x3B, 'outside Ganon\'s Castle'), + 'Treasure Chest Game': (None, None, 0x0A, 'Chest', 0x10, 'the Market'), 'Darunias Joy': (0xCF1BFF, None, 0x54, 'NPC', 0x62, 'Goron City'), 'Diving Minigame': (0xE01A2B, 0xE01AA7, 0x37, 'NPC', 0x58, 'Zora\'s Domain'), 'Child Fishing': (0xDCBFBF, None, 0x3E, 'NPC', 0x49, 'Lake Hylia'), @@ -976,9 +1044,9 @@ def _create_region(name, type, locations=None, exits=None): 'Diving in the Lab': (0xE2CB97, None, 0x3E, 'NPC', 0x38, 'Lake Hylia'), 'Link the Goron': (0xED30EB, 0xED64F3, 0x2C, 'NPC', 0x62, 'Goron City'), 'King Zora Thawed': (0xE56AD7, None, 0x2D, 'NPC', 0x58, 'Zora\'s Domain'), - 'Bombchu Bowling Bomb Bag': (0xE2F093, None, 0x34, 'NPC', 0x4B, 'the market'), - 'Bombchu Bowling Piece of Heart': (0xE2F097, None, 0x3E, 'NPC', 0x4B, 'the market'), - 'Dog Lady': (0xE65163, 0xE661BB, 0x3E, 'NPC', 0x35, 'the market'), + 'Bombchu Bowling Bomb Bag': (0xE2F093, None, 0x34, 'NPC', 0x4B, 'the Market'), + 'Bombchu Bowling Piece of Heart': (0xE2F097, None, 0x3E, 'NPC', 0x4B, 'the Market'), + 'Dog Lady': (0xE65163, 0xE661BB, 0x3E, 'NPC', 0x35, 'the Market'), 'Skull Kid': (0xDF0F33, 0xDF0E9B, 0x3E, 'NPC', 0x5B, 'the Lost Woods'), 'Ocarina Memory Game': (0xDF264F, None, 0x76, 'NPC', 0x5B, 'the Lost Woods'), '10 Gold Skulltulla Reward': (0xEA7173, None, 0x45, 'NPC', 0x50, 'Kakariko Village'), @@ -991,19 +1059,16 @@ def _create_region(name, type, locations=None, exits=None): 'Frogs in the Rain': (0xDB1387, None, 0x3E, 'NPC', 0x54, 'Zora River'), 'Horseback Archery 1000 Points': (0xE12B6F, 0xE12AA3, 0x3E, 'NPC', 0x5D, 'Gerudo Fortress'), 'Horseback Archery 1500 Points': (0xE12BC3, 0xE12AFB, 0x30, 'NPC', 0x5D, 'Gerudo Fortress'), - 'Child Shooting Gallery': (0xD35EF3, None, 0x60, 'NPC', 0x42, 'the market'), + 'Child Shooting Gallery': (0xD35EF3, None, 0x60, 'NPC', 0x42, 'the Market'), 'Adult Shooting Gallery': (0xD35F5B, None, 0x30, 'NPC', 0x42, 'Kakariko Village'), 'Target in Woods': (0xE59CDF, None, 0x60, 'NPC', 0x5B, 'the Lost Woods'), 'Deku Theater Skull Mask': (0xEC9A87, None, 0x77, 'NPC', 0x3E, 'the Lost Woods'), 'Deku Theater Mask of Truth': (0xEC9CE7, None, 0x7A, 'NPC', 0x3E, 'the Lost Woods'), - 'Deku Salesman Woods': (0xDF8073, None, 0x77, 'NPC', 0x5B, 'the Lost Woods'), - 'Deku Salesman Lost Woods Grotto': (0xDF80E7, None, 0x79, 'NPC', 0x3E, 'the Lost Woods'), - 'Deku Salesman Hyrule Field Grotto': (0xDF86AB, None, 0x3E, 'NPC', 0x3E, 'Hyrule Field'), 'Anju as Adult': (0xE1EABB, None, 0x1D, 'NPC', 0x52, 'Kakariko Village'), 'Biggoron': (0xED338F, 0xED650F, 0x57, 'NPC', 0x60, 'Death Mountain Trail'), 'Anjus Chickens': (0xE1E7A7, None, 0x0F, 'NPC', 0x52, 'Kakariko Village'), 'Talons Chickens': (0xCC14EB, None, 0x14, 'NPC', 0x4C, 'Lon Lon Ranch'), - '10 Big Poes': (0xEE6AEF, None, 0x0F, 'NPC', 0x4D, 'the market'), + '10 Big Poes': (0xEE6AEF, None, 0x0F, 'NPC', 0x4D, 'the Market'), 'Rolling Goron as Child': (0xED296F, 0xED6503, 0x34, 'NPC', 0x62, 'Goron City'), 'Lake Hylia Sun': (0xE9E1F2, None, 0x5B08, 'Chest', 0x57, 'Lake Hylia'), 'Underwater Bottle': (0xDE10FB, None, 0x15, 'NPC', 0x57, 'Lake Hylia'), @@ -1044,6 +1109,13 @@ def _create_region(name, type, locations=None, exits=None): 'Ocarina of Time': (None, None, 0x0C, 'NPC', 0x51, 'Hyrule Field'), 'Master Sword Pedestal': (None, None, None, 'Event', None, 'the Temple of Time'), 'Epona': (None, None, None, 'Event', None, 'Lon Lon Ranch'), + 'Deku Baba Sticks': (None, None, None, 'Event', None, 'Kokiri Forest'), + 'Deku Baba Nuts': (None, None, None, 'Event', None, 'Kokiri Forest'), + 'Goron City Stick Pot': (None, None, None, 'Event', None, 'Goron City'), + 'Bottom of the Well Stick Pot': (None, None, None, 'Event', None, 'Bottom of the Well'), + 'Zoras Domain Stick Pot': (None, None, None, 'Event', None, 'Zora\'s Domain'), + 'Zoras Domain Nut Pot': (None, None, None, 'Event', None, 'Zora\'s Domain'), + 'Spirit Temple Nut Crate': (None, None, None, 'Event', None, 'Spirit Temple'), 'Gerudo Fortress Carpenter Rescue': (None, None, None, 'Event', None, 'Gerudo Fortress'), 'Ganons Castle Forest Trial Clear': (None, None, None, 'Event', None, 'Ganon\'s Castle'), 'Ganons Castle Fire Trial Clear': (None, None, None, 'Event', None, 'Ganon\'s Castle'), @@ -1504,10 +1576,10 @@ def _create_region(name, type, locations=None, exits=None): 'GS Lost Woods Above Stage': (None, None, 0x04, 'GS Token', 0x0D, 'the Lost Woods'), 'GS Sacred Forest Meadow': (None, None, 0x08, 'GS Token', 0x0D, 'Sacred Forest Meadow'), - 'GS Outside Ganon\'s Castle': (None, None, 0x01, 'GS Token', 0x0E, 'outside my castle'), + 'GS Outside Ganon\'s Castle': (None, None, 0x01, 'GS Token', 0x0E, 'outside Ganon\'s Castle'), 'GS Hyrule Castle Grotto': (None, None, 0x02, 'GS Token', 0x0E, 'Hyrule Castle'), 'GS Hyrule Castle Tree': (None, None, 0x04, 'GS Token', 0x0E, 'Hyrule Castle'), - 'GS Castle Market Guard House': (None, None, 0x08, 'GS Token', 0x0E, 'the market'), + 'GS Castle Market Guard House': (None, None, 0x08, 'GS Token', 0x0E, 'the Market'), 'GS Mountain Crater Bean Patch': (None, None, 0x01, 'GS Token', 0x0F, 'Death Mountain Crater'), 'GS Mountain Trail Bean Patch': (None, None, 0x02, 'GS Token', 0x0F, 'Death Mountain Trail'), @@ -1549,9 +1621,122 @@ def _create_region(name, type, locations=None, exits=None): 'GS Gerudo Fortress Archery Range': (None, None, 0x01, 'GS Token', 0x14, 'Gerudo Fortress'), 'GS Gerudo Fortress Top Floor': (None, None, 0x02, 'GS Token', 0x14, 'Gerudo Fortress'), - 'GS Desert Colossus Bean Patch': (None, None, 0x01, 'GS Token', 0x15, 'Desert Colossus'), 'GS Wasteland Ruins': (None, None, 0x02, 'GS Token', 0x15, 'Haunted Wasteland'), 'GS Desert Colossus Hill': (None, None, 0x04, 'GS Token', 0x15, 'Desert Colossus'), 'GS Desert Colossus Tree': (None, None, 0x08, 'GS Token', 0x15, 'Desert Colossus'), + + 'Kokiri Shop Item 1': (shop_address(0, 0), None, 0x30, 'Shop', 0x2D, 'Kokiri Forest'), + 'Kokiri Shop Item 2': (shop_address(0, 1), None, 0x31, 'Shop', 0x2D, 'Kokiri Forest'), + 'Kokiri Shop Item 3': (shop_address(0, 2), None, 0x32, 'Shop', 0x2D, 'Kokiri Forest'), + 'Kokiri Shop Item 4': (shop_address(0, 3), None, 0x33, 'Shop', 0x2D, 'Kokiri Forest'), + 'Kokiri Shop Item 5': (shop_address(0, 4), None, 0x34, 'Shop', 0x2D, 'Kokiri Forest'), + 'Kokiri Shop Item 6': (shop_address(0, 5), None, 0x35, 'Shop', 0x2D, 'Kokiri Forest'), + 'Kokiri Shop Item 7': (shop_address(0, 6), None, 0x36, 'Shop', 0x2D, 'Kokiri Forest'), + 'Kokiri Shop Item 8': (shop_address(0, 7), None, 0x37, 'Shop', 0x2D, 'Kokiri Forest'), + 'Kakariko Potion Shop Item 1': (shop_address(1, 0), None, 0x30, 'Shop', 0x30, 'Kakariko Village'), + 'Kakariko Potion Shop Item 2': (shop_address(1, 1), None, 0x31, 'Shop', 0x30, 'Kakariko Village'), + 'Kakariko Potion Shop Item 3': (shop_address(1, 2), None, 0x32, 'Shop', 0x30, 'Kakariko Village'), + 'Kakariko Potion Shop Item 4': (shop_address(1, 3), None, 0x33, 'Shop', 0x30, 'Kakariko Village'), + 'Kakariko Potion Shop Item 5': (shop_address(1, 4), None, 0x34, 'Shop', 0x30, 'Kakariko Village'), + 'Kakariko Potion Shop Item 6': (shop_address(1, 5), None, 0x35, 'Shop', 0x30, 'Kakariko Village'), + 'Kakariko Potion Shop Item 7': (shop_address(1, 6), None, 0x36, 'Shop', 0x30, 'Kakariko Village'), + 'Kakariko Potion Shop Item 8': (shop_address(1, 7), None, 0x37, 'Shop', 0x30, 'Kakariko Village'), + 'Bombchu Shop Item 1': (shop_address(2, 0), None, 0x30, 'Shop', 0x32, 'the Market'), + 'Bombchu Shop Item 2': (shop_address(2, 1), None, 0x31, 'Shop', 0x32, 'the Market'), + 'Bombchu Shop Item 3': (shop_address(2, 2), None, 0x32, 'Shop', 0x32, 'the Market'), + 'Bombchu Shop Item 4': (shop_address(2, 3), None, 0x33, 'Shop', 0x32, 'the Market'), + 'Bombchu Shop Item 5': (shop_address(2, 4), None, 0x34, 'Shop', 0x32, 'the Market'), + 'Bombchu Shop Item 6': (shop_address(2, 5), None, 0x35, 'Shop', 0x32, 'the Market'), + 'Bombchu Shop Item 7': (shop_address(2, 6), None, 0x36, 'Shop', 0x32, 'the Market'), + 'Bombchu Shop Item 8': (shop_address(2, 7), None, 0x37, 'Shop', 0x32, 'the Market'), + 'Castle Town Potion Shop Item 1': (shop_address(3, 0), None, 0x30, 'Shop', 0x31, 'the Market'), + 'Castle Town Potion Shop Item 2': (shop_address(3, 1), None, 0x31, 'Shop', 0x31, 'the Market'), + 'Castle Town Potion Shop Item 3': (shop_address(3, 2), None, 0x32, 'Shop', 0x31, 'the Market'), + 'Castle Town Potion Shop Item 4': (shop_address(3, 3), None, 0x33, 'Shop', 0x31, 'the Market'), + 'Castle Town Potion Shop Item 5': (shop_address(3, 4), None, 0x34, 'Shop', 0x31, 'the Market'), + 'Castle Town Potion Shop Item 6': (shop_address(3, 5), None, 0x35, 'Shop', 0x31, 'the Market'), + 'Castle Town Potion Shop Item 7': (shop_address(3, 6), None, 0x36, 'Shop', 0x31, 'the Market'), + 'Castle Town Potion Shop Item 8': (shop_address(3, 7), None, 0x37, 'Shop', 0x31, 'the Market'), + 'Castle Town Bazaar Item 1': (shop_address(4, 0), None, 0x30, 'Shop', 0x2C, 'the Market'), + 'Castle Town Bazaar Item 2': (shop_address(4, 1), None, 0x31, 'Shop', 0x2C, 'the Market'), + 'Castle Town Bazaar Item 3': (shop_address(4, 2), None, 0x32, 'Shop', 0x2C, 'the Market'), + 'Castle Town Bazaar Item 4': (shop_address(4, 3), None, 0x33, 'Shop', 0x2C, 'the Market'), + 'Castle Town Bazaar Item 5': (shop_address(4, 4), None, 0x34, 'Shop', 0x2C, 'the Market'), + 'Castle Town Bazaar Item 6': (shop_address(4, 5), None, 0x35, 'Shop', 0x2C, 'the Market'), + 'Castle Town Bazaar Item 7': (shop_address(4, 6), None, 0x36, 'Shop', 0x2C, 'the Market'), + 'Castle Town Bazaar Item 8': (shop_address(4, 7), None, 0x37, 'Shop', 0x2C, 'the Market'), + 'Kakariko Bazaar Item 1': (shop_address(5, 0), None, 0x38, 'Shop', 0x2C, 'Kakariko Village'), + 'Kakariko Bazaar Item 2': (shop_address(5, 1), None, 0x39, 'Shop', 0x2C, 'Kakariko Village'), + 'Kakariko Bazaar Item 3': (shop_address(5, 2), None, 0x3A, 'Shop', 0x2C, 'Kakariko Village'), + 'Kakariko Bazaar Item 4': (shop_address(5, 3), None, 0x3B, 'Shop', 0x2C, 'Kakariko Village'), + 'Kakariko Bazaar Item 5': (shop_address(5, 4), None, 0x3D, 'Shop', 0x2C, 'Kakariko Village'), + 'Kakariko Bazaar Item 6': (shop_address(5, 5), None, 0x3E, 'Shop', 0x2C, 'Kakariko Village'), + 'Kakariko Bazaar Item 7': (shop_address(5, 6), None, 0x3F, 'Shop', 0x2C, 'Kakariko Village'), + 'Kakariko Bazaar Item 8': (shop_address(5, 7), None, 0x40, 'Shop', 0x2C, 'Kakariko Village'), + 'Zora Shop Item 1': (shop_address(7, 0), None, 0x30, 'Shop', 0x2F, 'Zora\'s Domain'), + 'Zora Shop Item 2': (shop_address(7, 1), None, 0x31, 'Shop', 0x2F, 'Zora\'s Domain'), + 'Zora Shop Item 3': (shop_address(7, 2), None, 0x32, 'Shop', 0x2F, 'Zora\'s Domain'), + 'Zora Shop Item 4': (shop_address(7, 3), None, 0x33, 'Shop', 0x2F, 'Zora\'s Domain'), + 'Zora Shop Item 5': (shop_address(7, 4), None, 0x34, 'Shop', 0x2F, 'Zora\'s Domain'), + 'Zora Shop Item 6': (shop_address(7, 5), None, 0x35, 'Shop', 0x2F, 'Zora\'s Domain'), + 'Zora Shop Item 7': (shop_address(7, 6), None, 0x36, 'Shop', 0x2F, 'Zora\'s Domain'), + 'Zora Shop Item 8': (shop_address(7, 7), None, 0x37, 'Shop', 0x2F, 'Zora\'s Domain'), + 'Goron Shop Item 1': (shop_address(8, 0), None, 0x30, 'Shop', 0x2E, 'Goron City'), + 'Goron Shop Item 2': (shop_address(8, 1), None, 0x31, 'Shop', 0x2E, 'Goron City'), + 'Goron Shop Item 3': (shop_address(8, 2), None, 0x32, 'Shop', 0x2E, 'Goron City'), + 'Goron Shop Item 4': (shop_address(8, 3), None, 0x33, 'Shop', 0x2E, 'Goron City'), + 'Goron Shop Item 5': (shop_address(8, 4), None, 0x34, 'Shop', 0x2E, 'Goron City'), + 'Goron Shop Item 6': (shop_address(8, 5), None, 0x35, 'Shop', 0x2E, 'Goron City'), + 'Goron Shop Item 7': (shop_address(8, 6), None, 0x36, 'Shop', 0x2E, 'Goron City'), + 'Goron Shop Item 8': (shop_address(8, 7), None, 0x37, 'Shop', 0x2E, 'Goron City'), + + 'DC Deku Scrub Deku Nuts': (None, None, 0x30, 'NPC', 0x01, 'Dodongo\'s Cavern'), + 'DC Deku Scrub Deku Sticks': (None, None, 0x31, 'NPC', 0x01, 'Dodongo\'s Cavern'), + 'DC Deku Scrub Deku Seeds': (None, None, 0x33, 'NPC', 0x01, 'Dodongo\'s Cavern'), + 'DC Deku Scrub Deku Shield': (None, None, 0x34, 'NPC', 0x01, 'Dodongo\'s Cavern'), + 'Jabu Deku Scrub Deku Nuts': (None, None, 0x30, 'NPC', 0x02, 'Jabu Jabu\'s Belly'), + 'GC Deku Scrub Bombs': (None, None, 0x37, 'NPC', 0x0D, 'Ganon\'s Castle'), + 'GC Deku Scrub Arrows': (None, None, 0x33, 'NPC', 0x0D, 'Ganon\'s Castle'), + 'GC Deku Scrub Red Potion': (None, None, 0x39, 'NPC', 0x0D, 'Ganon\'s Castle'), + 'GC Deku Scrub Green Potion': (None, None, 0x3A, 'NPC', 0x0D, 'Ganon\'s Castle'), + + 'DT MQ Deku Scrub Deku Shield': (None, None, 0x34, 'NPC', 0x00, 'Deku Tree'), + 'DC MQ Deku Scrub Deku Sticks': (None, None, 0x31, 'NPC', 0x01, 'Dodongo\'s Cavern'), + 'DC MQ Deku Scrub Deku Seeds': (None, None, 0x33, 'NPC', 0x01, 'Dodongo\'s Cavern'), + 'DC MQ Deku Scrub Deku Shield': (None, None, 0x34, 'NPC', 0x01, 'Dodongo\'s Cavern'), + 'DC MQ Deku Scrub Red Potion': (None, None, 0x39, 'NPC', 0x01, 'Dodongo\'s Cavern'), + 'GC MQ Deku Scrub Deku Nuts': (None, None, 0x30, 'NPC', 0x0D, 'Ganon\'s Castle'), + 'GC MQ Deku Scrub Bombs': (None, None, 0x37, 'NPC', 0x0D, 'Ganon\'s Castle'), + 'GC MQ Deku Scrub Arrows': (None, None, 0x33, 'NPC', 0x0D, 'Ganon\'s Castle'), + 'GC MQ Deku Scrub Red Potion': (None, None, 0x39, 'NPC', 0x0D, 'Ganon\'s Castle'), + 'GC MQ Deku Scrub Green Potion': (None, None, 0x3A, 'NPC', 0x0D, 'Ganon\'s Castle'), + + 'HF Grotto Deku Scrub Piece of Heart': (None, None, 0x3E, 'GrottoNPC', 0x01, 'Hyrule Field'), + 'ZR Grotto Deku Scrub Red Potion': (None, None, 0x39, 'GrottoNPC', 0x02, 'Zora\'s River'), + 'ZR Grotto Deku Scrub Green Potion': (None, None, 0x3A, 'GrottoNPC', 0x02, 'Zora\'s River'), + 'SFM Grotto Deku Scrub Red Potion': (None, None, 0x39, 'GrottoNPC', 0x03, 'Sacred Forest Meadow'), + 'SFM Grotto Deku Scrub Green Potion': (None, None, 0x3A, 'GrottoNPC', 0x03, 'Sacred Forest Meadow'), + 'LH Grotto Deku Scrub Deku Nuts': (None, None, 0x30, 'GrottoNPC', 0x04, 'Lake Hylia'), + 'LH Grotto Deku Scrub Bombs': (None, None, 0x37, 'GrottoNPC', 0x04, 'Lake Hylia'), + 'LH Grotto Deku Scrub Arrows': (None, None, 0x33, 'GrottoNPC', 0x04, 'Lake Hylia'), + 'Valley Grotto Deku Scrub Red Potion': (None, None, 0x39, 'GrottoNPC', 0x05, 'Gerudo Valley'), + 'Valley Grotto Deku Scrub Green Potion': (None, None, 0x3A, 'GrottoNPC', 0x05, 'Gerudo Valley'), + 'LW Deku Scrub Deku Nuts': (None, None, 0x30, 'NPC', 0x5B, 'Lost Woods'), + 'LW Deku Scrub Deku Sticks': (None, None, 0x31, 'NPC', 0x5B, 'Lost Woods'), + 'LW Deku Scrub Deku Stick Upgrade': (None, None, 0x77, 'NPC', 0x5B, 'Lost Woods'), + 'LW Grotto Deku Scrub Arrows': (None, None, 0x33, 'GrottoNPC', 0x06, 'Lost Woods'), + 'LW Grotto Deku Scrub Deku Nut Upgrade': (None, None, 0x79, 'GrottoNPC', 0x06, 'Lost Woods'), + 'Desert Grotto Deku Scrub Red Potion': (None, None, 0x39, 'GrottoNPC', 0x07, 'Desert Colossus'), + 'Desert Grotto Deku Scrub Green Potion': (None, None, 0x3A, 'GrottoNPC', 0x07, 'Desert Colossus'), + 'DMC Deku Scrub Bombs': (None, None, 0x37, 'NPC', 0x61, 'Death Mountain Crater'), + 'DMC Grotto Deku Scrub Deku Nuts': (None, None, 0x30, 'GrottoNPC', 0x08, 'Death Mountain Crater'), + 'DMC Grotto Deku Scrub Bombs': (None, None, 0x37, 'GrottoNPC', 0x08, 'Death Mountain Crater'), + 'DMC Grotto Deku Scrub Arrows': (None, None, 0x33, 'GrottoNPC', 0x08, 'Death Mountain Crater'), + 'Goron Grotto Deku Scrub Deku Nuts': (None, None, 0x30, 'GrottoNPC', 0x09, 'Goron City'), + 'Goron Grotto Deku Scrub Bombs': (None, None, 0x37, 'GrottoNPC', 0x09, 'Goron City'), + 'Goron Grotto Deku Scrub Arrows': (None, None, 0x33, 'GrottoNPC', 0x09, 'Goron City'), + 'LLR Grotto Deku Scrub Deku Nuts': (None, None, 0x30, 'GrottoNPC', 0x0A, 'Lon Lon Ranch'), + 'LLR Grotto Deku Scrub Bombs': (None, None, 0x37, 'GrottoNPC', 0x0A, 'Lon Lon Ranch'), + 'LLR Grotto Deku Scrub Arrows': (None, None, 0x33, 'GrottoNPC', 0x0A, 'Lon Lon Ranch'), } diff --git a/Rom.py b/Rom.py index c17d7c2a8..872e50479 100644 --- a/Rom.py +++ b/Rom.py @@ -1,212 +1,224 @@ -import io -import json -import logging -import os -import platform -import struct -import subprocess -import random -import copy - -from Utils import default_output_path - -class LocalRom(object): - def __init__(self, settings, patch=True): - self.last_address = None - - file = settings.rom - decomp_file = 'ZOOTDEC.z64' - - os.chdir(os.path.dirname(os.path.realpath(__file__))) - #os.chdir(output_path(os.path.dirname(os.path.realpath(__file__)))) - - try: - # Read decompressed file if it exists - with open(decomp_file, 'rb') as stream: - self.buffer = read_rom(stream) - # This is mainly for validation testing, but just in case... - self.decompress_rom_file(decomp_file, decomp_file) - except Exception as ex: - # No decompressed file, instead read Input ROM - with open(file, 'rb') as stream: - self.buffer = read_rom(stream) - self.decompress_rom_file(file, decomp_file) - - # Add file to maximum size - self.buffer.extend(bytearray([0x00] * (0x4000000 - len(self.buffer)))) - - def decompress_rom_file(self, file, decomp_file): - validCRC = [ - [0xEC, 0x70, 0x11, 0xB7, 0x76, 0x16, 0xD7, 0x2B], # Compressed - [0x70, 0xEC, 0xB7, 0x11, 0x16, 0x76, 0x2B, 0xD7], # Byteswap compressed - [0x93, 0x52, 0x2E, 0x7B, 0xE5, 0x06, 0xD4, 0x27], # Decompressed - ] - - # Validate ROM file - file_name = os.path.splitext(file) - romCRC = list(self.buffer[0x10:0x18]) - if romCRC not in validCRC: - # Bad CRC validation - raise RuntimeError('ROM file %s is not a valid OoT 1.0 US ROM.' % file) - elif len(self.buffer) < 0x2000000 or len(self.buffer) > (0x4000000) or file_name[1] not in ['.z64', '.n64']: - # ROM is too big, or too small, or not a bad type - raise RuntimeError('ROM file %s is not a valid OoT 1.0 US ROM.' % file) - elif len(self.buffer) == 0x2000000: - # If Input ROM is compressed, then Decompress it - if platform.system() == 'Windows': - if 8 * struct.calcsize("P") == 64: - subprocess.call(["Decompress\\Decompress.exe", file, decomp_file]) - else: - subprocess.call(["Decompress\\Decompress32.exe", file, decomp_file]) - with open(decomp_file, 'rb') as stream: - self.buffer = read_rom(stream) - elif platform.system() == 'Linux': - subprocess.call(["Decompress/Decompress", file]) - with open(("ZOOTDEC.z64"), 'rb') as stream: - self.buffer = read_rom(stream) - elif platform.system() == 'Darwin': - subprocess.call(["Decompress/Decompress.out", file]) - with open(("ZOOTDEC.z64"), 'rb') as stream: - self.buffer = read_rom(stream) - else: - raise RuntimeError('Unsupported operating system for decompression. Please supply an already decompressed ROM.') - else: - # ROM file is a valid and already uncompressed - pass - - def read_byte(self, address): - return self.buffer[address] - - def read_bytes(self, address, len): - return self.buffer[address : address + len] - - def read_int16(self, address): - return bytes_as_int16(self.read_bytes(address, 2)) - - def read_int24(self, address): - return bytes_as_int24(self.read_bytes(address, 3)) - - def read_int32(self, address): - return bytes_as_int32(self.read_bytes(address, 4)) - - def write_byte(self, address, value): - if address == None: - address = self.last_address - self.buffer[address] = value - self.last_address = address + 1 - - def write_sbyte(self, address, value): - if address == None: - address = self.last_address - self.write_bytes(address, struct.pack('b', value)) - - def write_int16(self, address, value): - if address == None: - address = self.last_address - self.write_bytes(address, int16_as_bytes(value)) - - def write_int24(self, address, value): - if address == None: - address = self.last_address - self.write_bytes(address, int24_as_bytes(value)) - - def write_int32(self, address, value): - if address == None: - address = self.last_address - self.write_bytes(address, int32_as_bytes(value)) - - def write_f32(self, address, value:float): - if address == None: - address = self.last_address - self.write_bytes(address, struct.pack('>f', value)) - - def write_bytes(self, startaddress, values): - if startaddress == None: - startaddress = self.last_address - for i, value in enumerate(values): - self.write_byte(startaddress + i, value) - - def write_int16s(self, startaddress, values): - if startaddress == None: - startaddress = self.last_address - for i, value in enumerate(values): - self.write_int16(startaddress + (i * 2), value) - - def write_int24s(self, startaddress, values): - if startaddress == None: - startaddress = self.last_address - for i, value in enumerate(values): - self.write_int24(startaddress + (i * 3), value) - - def write_int32s(self, startaddress, values): - if startaddress == None: - startaddress = self.last_address - for i, value in enumerate(values): - self.write_int32(startaddress + (i * 4), value) - - def write_to_file(self, file): - self.update_crc() - with open(file, 'wb') as outfile: - outfile.write(self.buffer) - - def update_crc(self): - t1 = t2 = t3 = t4 = t5 = t6 = 0xDF26F436 - u32 = 0xFFFFFFFF - - cur = 0x1000 - while cur < 0x00101000: - d = self.read_int32(cur) - - if ((t6 + d) & u32) < t6: - t4 += 1 - - t6 = (t6+d) & u32 - t3 ^= d - shift = d & 0x1F - r = ((d << shift) | (d >> (32 - shift))) & u32 - t5 = (t5 + r) & u32 - - if t2 > d: - t2 ^= r - else: - t2 ^= t6 ^ d - - data2 = self.read_int32(0x750 + (cur & 0xFF)) - t1 += data2 ^ d - t1 &= u32 - - cur += 4 - - crc0 = t6 ^ t4 ^ t3 - crc1 = t5 ^ t2 ^ t1 - - # Finally write the crc back to the rom - self.write_int32s(0x10, [crc0, crc1]) - - -def read_rom(stream): - "Reads rom into bytearray" - buffer = bytearray(stream.read()) - return buffer - - -def int16_as_bytes(value): - value = value & 0xFFFF - return [(value >> 8) & 0xFF, value & 0xFF] - -def int24_as_bytes(value): - value = value & 0xFFFFFFFF - return [(value >> 16) & 0xFF, (value >> 8) & 0xFF, value & 0xFF] - -def int32_as_bytes(value): - value = value & 0xFFFFFFFF - return [(value >> 24) & 0xFF, (value >> 16) & 0xFF, (value >> 8) & 0xFF, value & 0xFF] - -def bytes_as_int16(values): - return (values[0] << 8) | values[1] - -def bytes_as_int24(values): - return (values[0] << 16) | (values[1] << 8) | values[2] - -def bytes_as_int32(values): - return (values[0] << 24) | (values[1] << 16) | (values[2] << 8) | values[3] +import io +import json +import logging +import os +import platform +import struct +import subprocess +import random +import copy + +from Utils import local_path, default_output_path + +class LocalRom(object): + def __init__(self, settings, patch=True): + self.last_address = None + + file = settings.rom + decomp_file = 'ZOOTDEC.z64' + + os.chdir(os.path.dirname(os.path.realpath(__file__))) + #os.chdir(output_path(os.path.dirname(os.path.realpath(__file__)))) + + with open(local_path('data/symbols.json'), 'r') as stream: + symbols = json.load(stream) + self.symbols = { name: int(addr, 16) for name, addr in symbols.items() } + + try: + # Read decompressed file if it exists + with open(decomp_file, 'rb') as stream: + self.buffer = read_rom(stream) + # This is mainly for validation testing, but just in case... + self.decompress_rom_file(decomp_file, decomp_file) + except Exception as ex: + # No decompressed file, instead read Input ROM + with open(file, 'rb') as stream: + self.buffer = read_rom(stream) + self.decompress_rom_file(file, decomp_file) + + # Add file to maximum size + self.buffer.extend(bytearray([0x00] * (0x4000000 - len(self.buffer)))) + + def decompress_rom_file(self, file, decomp_file): + validCRC = [ + [0xEC, 0x70, 0x11, 0xB7, 0x76, 0x16, 0xD7, 0x2B], # Compressed + [0x70, 0xEC, 0xB7, 0x11, 0x16, 0x76, 0x2B, 0xD7], # Byteswap compressed + [0x93, 0x52, 0x2E, 0x7B, 0xE5, 0x06, 0xD4, 0x27], # Decompressed + ] + + # Validate ROM file + file_name = os.path.splitext(file) + romCRC = list(self.buffer[0x10:0x18]) + if romCRC not in validCRC: + # Bad CRC validation + raise RuntimeError('ROM file %s is not a valid OoT 1.0 US ROM.' % file) + elif len(self.buffer) < 0x2000000 or len(self.buffer) > (0x4000000) or file_name[1] not in ['.z64', '.n64']: + # ROM is too big, or too small, or not a bad type + raise RuntimeError('ROM file %s is not a valid OoT 1.0 US ROM.' % file) + elif len(self.buffer) == 0x2000000: + # If Input ROM is compressed, then Decompress it + if platform.system() == 'Windows': + if 8 * struct.calcsize("P") == 64: + subprocess.call(["Decompress\\Decompress.exe", file, decomp_file]) + else: + subprocess.call(["Decompress\\Decompress32.exe", file, decomp_file]) + with open(decomp_file, 'rb') as stream: + self.buffer = read_rom(stream) + elif platform.system() == 'Linux': + subprocess.call(["Decompress/Decompress", file]) + with open(("ZOOTDEC.z64"), 'rb') as stream: + self.buffer = read_rom(stream) + elif platform.system() == 'Darwin': + subprocess.call(["Decompress/Decompress.out", file]) + with open(("ZOOTDEC.z64"), 'rb') as stream: + self.buffer = read_rom(stream) + else: + raise RuntimeError('Unsupported operating system for decompression. Please supply an already decompressed ROM.') + else: + # ROM file is a valid and already uncompressed + pass + + def sym(self, symbol_name): + return self.symbols.get(symbol_name) + + def seek_address(self, address): + self.last_address = address + + def read_byte(self, address): + self.last_address = address + 1 + return self.buffer[address] + + def read_bytes(self, address, len): + self.last_address = address + len + return self.buffer[address : address + len] + + def read_int16(self, address): + return bytes_as_int16(self.read_bytes(address, 2)) + + def read_int24(self, address): + return bytes_as_int24(self.read_bytes(address, 3)) + + def read_int32(self, address): + return bytes_as_int32(self.read_bytes(address, 4)) + + def write_byte(self, address, value): + if address == None: + address = self.last_address + self.buffer[address] = value + self.last_address = address + 1 + + def write_sbyte(self, address, value): + if address == None: + address = self.last_address + self.write_bytes(address, struct.pack('b', value)) + + def write_int16(self, address, value): + if address == None: + address = self.last_address + self.write_bytes(address, int16_as_bytes(value)) + + def write_int24(self, address, value): + if address == None: + address = self.last_address + self.write_bytes(address, int24_as_bytes(value)) + + def write_int32(self, address, value): + if address == None: + address = self.last_address + self.write_bytes(address, int32_as_bytes(value)) + + def write_f32(self, address, value:float): + if address == None: + address = self.last_address + self.write_bytes(address, struct.pack('>f', value)) + + def write_bytes(self, startaddress, values): + if startaddress == None: + startaddress = self.last_address + for i, value in enumerate(values): + self.write_byte(startaddress + i, value) + + def write_int16s(self, startaddress, values): + if startaddress == None: + startaddress = self.last_address + for i, value in enumerate(values): + self.write_int16(startaddress + (i * 2), value) + + def write_int24s(self, startaddress, values): + if startaddress == None: + startaddress = self.last_address + for i, value in enumerate(values): + self.write_int24(startaddress + (i * 3), value) + + def write_int32s(self, startaddress, values): + if startaddress == None: + startaddress = self.last_address + for i, value in enumerate(values): + self.write_int32(startaddress + (i * 4), value) + + def write_to_file(self, file): + self.update_crc() + with open(file, 'wb') as outfile: + outfile.write(self.buffer) + + def update_crc(self): + t1 = t2 = t3 = t4 = t5 = t6 = 0xDF26F436 + u32 = 0xFFFFFFFF + + cur = 0x1000 + while cur < 0x00101000: + d = self.read_int32(cur) + + if ((t6 + d) & u32) < t6: + t4 += 1 + + t6 = (t6+d) & u32 + t3 ^= d + shift = d & 0x1F + r = ((d << shift) | (d >> (32 - shift))) & u32 + t5 = (t5 + r) & u32 + + if t2 > d: + t2 ^= r + else: + t2 ^= t6 ^ d + + data2 = self.read_int32(0x750 + (cur & 0xFF)) + t1 += data2 ^ d + t1 &= u32 + + cur += 4 + + crc0 = t6 ^ t4 ^ t3 + crc1 = t5 ^ t2 ^ t1 + + # Finally write the crc back to the rom + self.write_int32s(0x10, [crc0, crc1]) + + +def read_rom(stream): + "Reads rom into bytearray" + buffer = bytearray(stream.read()) + return buffer + + +def int16_as_bytes(value): + value = value & 0xFFFF + return [(value >> 8) & 0xFF, value & 0xFF] + +def int24_as_bytes(value): + value = value & 0xFFFFFFFF + return [(value >> 16) & 0xFF, (value >> 8) & 0xFF, value & 0xFF] + +def int32_as_bytes(value): + value = value & 0xFFFFFFFF + return [(value >> 24) & 0xFF, (value >> 16) & 0xFF, (value >> 8) & 0xFF, value & 0xFF] + +def bytes_as_int16(values): + return (values[0] << 8) | values[1] + +def bytes_as_int24(values): + return (values[0] << 16) | (values[1] << 8) | values[2] + +def bytes_as_int32(values): + return (values[0] << 24) | (values[1] << 16) | (values[2] << 8) | values[3] diff --git a/Rules.py b/Rules.py index f9476cd04..70ab1113c 100644 --- a/Rules.py +++ b/Rules.py @@ -66,7 +66,6 @@ def global_rules(world): world.get_region('Links House').can_reach = lambda state: True # dungeon requirements (including gold skulltulas) - if world.dungeon_mq['DT']: dung_rules_dtmq(world) else: @@ -117,11 +116,13 @@ def global_rules(world): dung_rules_gc0(world) # overworld requirements - set_rule(world.get_entrance('Deku Tree'), lambda state: state.has('Kokiri Sword') or world.open_forest) + set_rule(world.get_location('Deku Baba Sticks'), lambda state: (state.has('Kokiri Sword') and state.has('Buy Deku Shield')) or (world.open_forest and (state.is_adult() or state.has('Kokiri Sword') or state.has('Boomerang')))) + set_rule(world.get_location('Deku Baba Nuts'), lambda state: (state.has('Kokiri Sword') and state.has('Buy Deku Shield')) or (world.open_forest and (state.is_adult() or state.has_slingshot() or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword') or state.can_use('Dins Fire')))) + set_rule(world.get_entrance('Deku Tree'), lambda state: (state.has('Kokiri Sword') and state.has('Buy Deku Shield')) or world.open_forest) set_rule(world.get_entrance('Lost Woods Bridge'), lambda state: state.can_leave_forest()) set_rule(world.get_location('Skull Kid'), lambda state: state.can_play('Sarias Song')) set_rule(world.get_location('Ocarina Memory Game'), lambda state: (not world.logic_no_memory_game) and state.has_ocarina()) - set_rule(world.get_location('Target in Woods'), lambda state: state.has('Slingshot')) + set_rule(world.get_location('Target in Woods'), lambda state: state.has_slingshot()) set_rule(world.get_location('Deku Theater Skull Mask'), lambda state: (not world.logic_no_trade_skull_mask) and state.has('Zeldas Letter')) set_rule(world.get_location('Deku Theater Mask of Truth'), lambda state: (not world.logic_no_trade_mask_of_truth) and (state.has('Zeldas Letter') and state.can_play('Sarias Song') and state.has('Kokiri Emerald') and state.has('Goron Ruby') and state.has('Zora Sapphire') and state.guarantee_hint())) #Must befriend Skull Kid to sell Skull Mask, all stones to spawn running man. set_rule(world.get_location('Anju as Adult'), lambda state: state.is_adult()) @@ -133,21 +134,23 @@ def global_rules(world): set_rule(world.get_location('50 Gold Skulltulla Reward'), lambda state: (expected_skulltulas >= 50) and state.has('Gold Skulltulla Token', 50) and state.guarantee_hint()) set_rule(world.get_location('Heart Piece Grave Chest'), lambda state: state.can_play('Suns Song')) set_rule(world.get_entrance('Composer Grave'), lambda state: state.can_play('Zeldas Lullaby')) + set_rule(world.get_location('Song from Composer Grave'), lambda state: state.is_adult() or (state.has_slingshot() or state.has('Boomerang') or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword'))) set_rule(world.get_location('Composer Grave Chest'), lambda state: state.has_fire_source()) - set_rule(world.get_entrance('Bottom of the Well'), lambda state: state.can_play('Song of Storms')) + set_rule(world.get_entrance('Bottom of the Well'), lambda state: state.can_play('Song of Storms') and (world.dungeon_mq['BW'] or (state.has_slingshot() or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword') or state.can_use('Dins Fire')))) set_rule(world.get_entrance('Death Mountain Entrance'), lambda state: state.has('Zeldas Letter') or state.is_adult() or world.open_kakariko) set_rule(world.get_entrance('Dodongos Cavern Rocks'), lambda state: state.has_explosives() or state.has('Progressive Strength Upgrade') or state.is_adult()) - set_rule(world.get_location('DM Trail Freestanding PoH'), lambda state: world.open_kakariko or (world.difficulty != 'ohko') or state.has('Zeldas Letter') or state.can_blast_or_smash() or state.can_use('Dins Fire') or state.can_use('Nayrus Love') or state.has('Bow') or state.has('Progressive Strength Upgrade') or state.has_bottle() or state.has('Hover Boots')) - set_rule(world.get_location('Death Mountain Bombable Chest'), lambda state: state.can_blast_or_smash()) + set_rule(world.get_location('DM Trail Freestanding PoH'), lambda state: world.open_kakariko or (world.difficulty != 'ohko') or state.has('Zeldas Letter') or state.can_blast_or_smash() or state.can_use('Dins Fire') or state.can_use('Nayrus Love') or state.has_bow() or state.has('Progressive Strength Upgrade') or state.has_bottle() or state.has('Hover Boots')) + set_rule(world.get_location('Death Mountain Bombable Chest'), lambda state: state.can_blast_or_smash() or (world.logic_tricks and state.has('Progressive Strength Upgrade'))) set_rule(world.get_location('Biggoron'), lambda state: (not world.logic_no_trade_biggoron) and state.is_adult() and state.can_finish_adult_trades() and state.guarantee_hint()) set_rule(world.get_location('Goron City Leftmost Maze Chest'), lambda state: state.can_use('Hammer') or state.can_use('Silver Gauntlets')) set_rule(world.get_location('Goron City Left Maze Chest'), lambda state: state.can_blast_or_smash() or state.can_use('Silver Gauntlets')) set_rule(world.get_location('Goron City Right Maze Chest'), lambda state: state.can_blast_or_smash() or state.can_use('Silver Gauntlets')) - set_rule(world.get_location('Rolling Goron as Child'), lambda state: state.has('Bomb Bag')) - set_rule(world.get_location('Goron City Pot Freestanding PoH'), lambda state: (state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) and (state.can_play('Zeldas Lullaby') or state.can_use('Dins Fire'))) + set_rule(world.get_location('Rolling Goron as Child'), lambda state: state.has('Bomb Bag') and state.has_explosives()) + set_rule(world.get_location('Goron City Pot Freestanding PoH'), lambda state: (state.has_bombs() or state.has('Progressive Strength Upgrade')) and ((state.can_play('Zeldas Lullaby') and state.has_sticks()) or state.can_use('Dins Fire'))) set_rule(world.get_entrance('Darunias Chamber'), lambda state: state.can_play('Zeldas Lullaby')) set_rule(world.get_location('Darunias Joy'), lambda state: state.can_play('Sarias Song')) - set_rule(world.get_entrance('Goron City from Woods'), lambda state: (state.can_blast_or_smash() or state.can_use('Dins Fire') or ((state.has('Bow') or state.has('Progressive Strength Upgrade')) and state.is_adult())) and state.can_leave_forest()) + set_rule(world.get_location('Goron City Stick Pot'), lambda state: world.open_kakariko or state.has('Zeldas Letter') or state.has_explosives() or state.can_use('Dins Fire')) # Logically irrelevant, only useful for spoiler log + set_rule(world.get_entrance('Goron City from Woods'), lambda state: (state.can_blast_or_smash() or state.can_use('Dins Fire') or ((state.has_bow() or state.has('Progressive Strength Upgrade')) and state.is_adult())) and state.can_leave_forest()) set_rule(world.get_location('Song from Saria'), lambda state: state.has('Zeldas Letter')) set_rule(world.get_entrance('Mountain Summit Fairy'), lambda state: state.can_blast_or_smash()) set_rule(world.get_location('Crater Fairy Reward'), lambda state: state.can_play('Zeldas Lullaby')) @@ -162,7 +165,7 @@ def global_rules(world): set_rule(world.get_location('Bombchu Bowling Bomb Bag'), lambda state: state.has_bombchus()) set_rule(world.get_location('Bombchu Bowling Piece of Heart'), lambda state: state.has_bombchus()) set_rule(world.get_location('Adult Shooting Gallery'), lambda state: state.can_use('Bow')) - set_rule(world.get_location('10 Big Poes'), lambda state: (not world.logic_no_big_poes) and state.can_use('Bow') and state.has('Epona') and state.has_bottle() and state.guarantee_hint()) + set_rule(world.get_location('10 Big Poes'), lambda state: (not world.logic_no_big_poes) and (state.can_use('Bow') and state.has('Epona') and state.has_bottle() and state.guarantee_hint())) set_rule(world.get_location('Treasure Chest Game'), lambda state: state.can_use('Lens of Truth')) set_rule(world.get_entrance('Lost Woods Dive Warp'), lambda state: state.can_dive() and state.can_leave_forest()) set_rule(world.get_entrance('Zora River Dive Warp'), lambda state: state.can_dive()) @@ -170,8 +173,8 @@ def global_rules(world): set_rule(world.get_entrance('Zoras Domain Dive Warp'), lambda state: state.can_dive()) set_rule(world.get_entrance('Zora River Waterfall'), lambda state: state.can_play('Zeldas Lullaby') or world.logic_zora_with_cucco) set_rule(world.get_entrance('Zora River Rocks'), lambda state: state.has_explosives()) - set_rule(world.get_location('Zora River Lower Freestanding PoH'), lambda state: state.has_explosives() or state.has('Progressive Scale') or state.can_use('Hover Boots')) - set_rule(world.get_location('Zora River Upper Freestanding PoH'), lambda state: state.has_explosives() or state.has('Progressive Scale') or state.can_use('Hover Boots')) + set_rule(world.get_location('Zora River Lower Freestanding PoH'), lambda state: state.has_explosives() or state.can_dive() or state.can_use('Hover Boots')) + set_rule(world.get_location('Zora River Upper Freestanding PoH'), lambda state: state.has_explosives() or state.can_dive() or state.can_use('Hover Boots')) set_rule(world.get_location('Frog Ocarina Game'), lambda state: state.can_play('Zeldas Lullaby') and state.can_play('Sarias Song') and state.can_play('Suns Song') and state.can_play('Eponas Song') and state.can_play('Song of Time') and state.can_play('Song of Storms')) set_rule(world.get_location('Frogs in the Rain'), lambda state: state.can_play('Song of Storms')) set_rule(world.get_location('Underwater Bottle'), lambda state: state.can_dive()) @@ -180,6 +183,7 @@ def global_rules(world): set_rule(world.get_entrance('Zora River Adult'), lambda state: state.is_adult()) set_rule(world.get_entrance('Zoras Domain Adult Access'), lambda state: state.can_play('Zeldas Lullaby') or (state.has('Hover Boots') and world.logic_zora_with_hovers)) set_rule(world.get_entrance('Zoras Fountain Adult Access'), lambda state: state.can_reach('Zoras Fountain')) + set_rule(world.get_location('Zoras Domain Torch Run'), lambda state: state.has_sticks()) set_rule(world.get_entrance('Jabu Jabus Belly'), lambda state: state.has_bottle()) set_rule(world.get_entrance('Zoras Fountain Fairy'), lambda state: state.has_explosives()) set_rule(world.get_location('Zoras Fountain Fairy Reward'), lambda state: state.can_play('Zeldas Lullaby')) @@ -191,6 +195,7 @@ def global_rules(world): set_rule(world.get_location('Epona'), lambda state: state.can_play('Eponas Song') and state.is_adult()) set_rule(world.get_entrance('Adult Forest Warp Pad'), lambda state: state.can_play('Minuet of Forest') and state.is_adult()) set_rule(world.get_entrance('Child Forest Warp Pad'), lambda state: state.can_play('Minuet of Forest')) + set_rule(world.get_entrance('Meadow Gate'), lambda state: state.has_slingshot() or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword') or state.can_use('Dins Fire')) set_rule(world.get_entrance('Adult Meadow Access'), lambda state: state.can_play('Sarias Song') and state.is_adult()) set_rule(world.get_entrance('Forest Temple Entrance'), lambda state: state.can_use('Hookshot')) set_rule(world.get_entrance('Dampes Grave'), lambda state: state.is_adult()) @@ -207,7 +212,7 @@ def global_rules(world): set_rule(world.get_location('Lake Hylia Sun'), lambda state: (state.can_use('Distant Scarecrow') or state.can_reach(world.get_location('Morpha'))) and state.can_use('Bow')) set_rule(world.get_entrance('Crater Hover Boots'), lambda state: state.can_use('Hover Boots')) set_rule(world.get_entrance('Crater Ascent'), lambda state: state.is_adult()) - set_rule(world.get_entrance('Crater Scarecrow'), lambda state: state.has_ocarina() and state.can_use('Longshot')) + set_rule(world.get_entrance('Crater Scarecrow'), lambda state: state.can_use('Distant Scarecrow')) set_rule(world.get_entrance('Crater Bridge'), lambda state: state.can_use('Hover Boots') or state.can_use('Hookshot')) set_rule(world.get_entrance('Crater Bridge Reverse'), lambda state: state.can_use('Hover Boots') or state.can_use('Hookshot') or state.can_use('Magic Bean')) set_rule(world.get_entrance('Crater Warp Pad'), lambda state: state.can_play('Bolero of Fire') and state.can_leave_forest()) @@ -215,18 +220,23 @@ def global_rules(world): set_rule(world.get_location('DM Crater Volcano Freestanding PoH'), lambda state: (state.can_use('Magic Bean') and state.can_play('Bolero of Fire')) or (world.logic_crater_bean_hp_with_hovers and state.can_use('Hover Boots'))) set_rule(world.get_entrance('Fire Temple Entrance'), lambda state: state.is_adult() and (world.logic_fewer_tunic_requirements or state.has_GoronTunic())) set_rule(world.get_location('Sheik in Crater'), lambda state: state.is_adult()) - set_rule(world.get_location('Link the Goron'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade') or state.has_explosives() or state.has('Bow'))) - set_rule(world.get_entrance('Crater Access'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade') or state.has_explosives() or state.has('Bow'))) + set_rule(world.get_location('Link the Goron'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade') or state.has_explosives() or state.has_bow())) + set_rule(world.get_entrance('Crater Access'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade') or state.has_explosives() or state.has_bow())) + set_rule(world.get_entrance('Goron Shop'), lambda state: state.has_explosives() or state.has('Progressive Strength Upgrade') or state.can_use('Bow') or state.can_use('Dins Fire') or ((state.has('Zeldas Letter') or world.open_kakariko or state.can_use('Hammer')) and (state.can_play('Zeldas Lullaby') and state.has_sticks()))) set_rule(world.get_entrance('Lake Warp Pad'), lambda state: state.can_play('Serenade of Water') and state.can_leave_forest()) - set_rule(world.get_location('King Zora Thawed'), lambda state: state.has_bottle() and (state.can_reach('Ice Cavern') or state.can_reach('Ganons Castle Water Trial') or state.has('Progressive Wallet', 2))) + set_rule(world.get_location('King Zora Thawed'), lambda state: state.has_blue_fire()) + set_rule(world.get_entrance('Zora Shop Adult Access'), lambda state: state.has_blue_fire()) set_rule(world.get_location('Zoras Fountain Bottom Freestanding PoH'), lambda state: state.has('Iron Boots') and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic())) - set_rule(world.get_entrance('Water Temple Entrance'), lambda state: state.has('Iron Boots') and state.can_use('Hookshot') and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic())) + set_rule(world.get_entrance('Water Temple Entrance'), lambda state: (state.has('Iron Boots') or state.has('Progressive Scale', 2)) and state.can_use('Hookshot') and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic())) set_rule(world.get_location('Sheik in Kakariko'), lambda state: state.is_adult() and state.has('Forest Medallion') and state.has('Fire Medallion') and state.has('Water Medallion')) + set_rule(world.get_entrance('Kakariko Potion Shop Front'), lambda state: state.is_adult()) + set_rule(world.get_entrance('Kakariko Potion Shop Back'), lambda state: state.is_adult()) + set_rule(world.get_entrance('Kakariko Bazaar'), lambda state: state.is_adult()) set_rule(world.get_entrance('Graveyard Warp Pad'), lambda state: state.can_play('Nocturne of Shadow') and state.can_leave_forest()) set_rule(world.get_entrance('Shadow Temple Entrance'), lambda state: state.can_use('Dins Fire') and state.can_see_with_lens() and (state.can_use('Hover Boots') or state.can_use('Hookshot'))) set_rule(world.get_entrance('Bridge Crossing'), lambda state: state.has('Epona') or state.can_use('Longshot') or ((world.gerudo_fortress == 'open') and state.is_adult())) set_rule(world.get_location('Gerudo Valley Hammer Rocks Chest'), lambda state: state.can_use('Hammer')) - set_rule(world.get_location('Gerudo Fortress North F2 Carpenter'), lambda state: state.can_use('Bow') or state.can_use('Hookshot') or state.can_use('Hover Boots')) + set_rule(world.get_location('Gerudo Fortress North F2 Carpenter'), lambda state: state.can_use('Bow') or state.can_use('Hookshot') or state.can_use('Hover Boots') or world.logic_tricks) set_rule(world.get_location('Gerudo Fortress Carpenter Rescue'), lambda state: state.can_finish_GerudoFortress()) set_rule(world.get_location('Gerudo Fortress Membership Card'), lambda state: state.can_finish_GerudoFortress()) set_rule(world.get_entrance('Gerudo Training Grounds Entrance'), lambda state: state.has('Carpenter Rescue') and state.has('Gerudo Membership Card') and state.is_adult()) @@ -238,14 +248,14 @@ def global_rules(world): set_rule(world.get_location('Desert Colossus Fairy Reward'), lambda state: state.can_play('Zeldas Lullaby')) set_rule(world.get_location('Gerudo Fortress Rooftop Chest'), lambda state: state.can_use('Hover Boots') or state.can_use('Scarecrow') or state.can_use('Longshot')) set_rule(world.get_location('Horseback Archery 1000 Points'), lambda state: state.has('Carpenter Rescue') and state.has('Epona') and state.can_use('Bow')) - set_rule(world.get_location('Horseback Archery 1500 Points'), lambda state: (not world.logic_no_1500_archery) and (state.has('Carpenter Rescue') and state.has('Epona') and state.can_use('Bow'))) + set_rule(world.get_location('Horseback Archery 1500 Points'), lambda state: (not world.logic_no_1500_archery) and state.has('Carpenter Rescue') and state.has('Epona') and state.can_use('Bow')) set_rule(world.get_location('Haunted Wasteland Structure Chest'), lambda state: state.has_fire_source()) set_rule(world.get_location('Zelda'), lambda state: state.has('Shadow Medallion') and state.has('Spirit Medallion') and state.is_adult()) set_rule(world.get_location('Ganon'), lambda state: (state.has('Boss Key (Ganons Castle)') or world.unlocked_ganondorf) and state.can_use('Light Arrows')) set_rule(world.get_entrance('Kokiri Forest Storms Grotto'), lambda state: state.can_play('Song of Storms')) - set_rule(world.get_entrance('Lost Woods Generic Grotto'), lambda state: state.has('Bomb Bag') or (state.can_blast_or_smash() and state.can_leave_forest())) - set_rule(world.get_entrance('Lost Woods Sales Grotto'), lambda state: (state.has('Bomb Bag') or (state.has_bombchus() and state.can_leave_forest())) or (state.can_use('Hammer') and (state.can_play('Minuet of Forest') or state.can_play('Sarias Song')))) - set_rule(world.get_entrance('Front of Meadow Grotto'), lambda state: (state.has('Bomb Bag') or (state.has_bombchus() and state.can_leave_forest())) or (state.can_use('Hammer') and (state.can_play('Minuet of Forest') or state.can_play('Sarias Song')))) + set_rule(world.get_entrance('Lost Woods Generic Grotto'), lambda state: state.can_blast_or_smash()) + set_rule(world.get_entrance('Lost Woods Sales Grotto'), lambda state: state.has_explosives() or (state.can_use('Hammer') and (state.can_play('Minuet of Forest') or state.can_play('Sarias Song')))) + set_rule(world.get_entrance('Front of Meadow Grotto'), lambda state: state.has_explosives() or (state.can_use('Hammer') and (state.can_play('Minuet of Forest') or state.can_play('Sarias Song')))) set_rule(world.get_entrance('Remote Southern Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Field Near Lake Inside Fence Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Field Valley Grotto'), lambda state: state.can_blast_or_smash()) @@ -254,22 +264,23 @@ def global_rules(world): set_rule(world.get_entrance('Field Kakariko Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Field North Lon Lon Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Castle Storms Grotto'), lambda state: state.can_play('Song of Storms')) - set_rule(world.get_entrance('Kakariko Bombable Grotto'), lambda state: state.can_blast_or_smash()) + set_rule(world.get_entrance('Kakariko Bombable Grotto'), lambda state: state.can_blast_or_smash() and (state.is_adult() or (state.has_sticks() or state.has('Kokiri Sword') or state.can_use('Dins Fire')))) set_rule(world.get_entrance('Mountain Bombable Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Mountain Storms Grotto'), lambda state: state.can_play('Song of Storms')) set_rule(world.get_entrance('Top of Crater Grotto'), lambda state: state.can_blast_or_smash()) - set_rule(world.get_entrance('Zora River Plateau Open Grotto'), lambda state: state.has_explosives() or state.has('Progressive Scale') or state.is_adult()) + set_rule(world.get_entrance('Zora River Plateau Open Grotto'), lambda state: state.has_explosives() or state.can_dive() or state.is_adult()) set_rule(world.get_entrance('Zora River Plateau Bombable Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_location('Tektite Grotto Freestanding PoH'), lambda state: state.has('Progressive Scale', 2) or state.can_use('Iron Boots')) - set_rule(world.get_location('GS Kokiri Know It All House'), lambda state: state.nighttime() and state.can_leave_forest()) - set_rule(world.get_location('GS Kokiri Bean Patch'), lambda state: state.has_bottle()) - set_rule(world.get_location('GS Kokiri House of Twins'), lambda state: state.can_use('Hookshot') and state.nighttime()) - set_rule(world.get_location('GS Lost Woods Bean Patch Near Bridge'), lambda state: state.has_bottle()) - set_rule(world.get_location('GS Lost Woods Bean Patch Near Stage'), lambda state: state.has_bottle()) + set_rule(world.get_location('GS Kokiri Know It All House'), lambda state: state.nighttime() and (state.can_leave_forest() or state.can_play('Suns Song')) and state.can_child_attack()) + set_rule(world.get_location('GS Kokiri Bean Patch'), lambda state: state.has_bottle() and state.can_child_attack() and (state.can_leave_forest() or state.has('Kokiri Sword') or state.has_sticks() or state.has('Boomerang') or state.has_explosives() or state.has('Buy Bottle Bug'))) + set_rule(world.get_location('GS Kokiri House of Twins'), lambda state: (state.can_use('Hookshot') or (world.logic_tricks and state.can_use('Hover Boots'))) and state.nighttime()) + set_rule(world.get_location('GS Lost Woods Bean Patch Near Bridge'), lambda state: state.has_bottle() and state.can_child_attack() and (state.can_leave_forest() or state.has('Kokiri Sword') or state.has_sticks() or state.has('Boomerang') or state.has_explosives() or state.has('Buy Bottle Bug'))) + set_rule(world.get_location('GS Lost Woods Bean Patch Near Stage'), lambda state: state.has_bottle() and (state.can_child_attack() or (not world.shuffle_scrubs and state.has('Buy Deku Shield'))) and (state.can_leave_forest() or state.has('Kokiri Sword') or state.has_sticks() or state.has('Boomerang') or state.has_explosives() or state.has('Buy Bottle Bug'))) set_rule(world.get_location('GS Lost Woods Above Stage'), lambda state: state.has('Magic Bean') and state.nighttime()) set_rule(world.get_location('GS Sacred Forest Meadow'), lambda state: state.can_use('Hookshot') and state.nighttime()) set_rule(world.get_location('GS Hyrule Field near Kakariko'), lambda state: (state.has('Boomerang') and state.has_explosives()) or state.can_use('Hookshot')) set_rule(world.get_location('GS Hyrule Field Near Gerudo Valley'), lambda state: (state.has('Hammer') and state.has_fire_source() and state.can_use('Hookshot')) or (state.has('Boomerang') and state.has_explosives() and state.can_use('Dins Fire'))) + set_rule(world.get_location('GS Hyrule Castle Tree'), lambda state: state.can_child_attack()) set_rule(world.get_location('GS Hyrule Castle Grotto'), lambda state: state.has('Boomerang') and state.has_explosives()) set_rule(world.get_location('GS Lon Lon Ranch Rain Shed'), lambda state: state.nighttime()) set_rule(world.get_location('GS Lon Lon Ranch House Window'), lambda state: state.has('Boomerang') and state.nighttime()) @@ -278,44 +289,70 @@ def global_rules(world): set_rule(world.get_location('GS Kakariko Skulltula House'), lambda state: state.nighttime()) set_rule(world.get_location('GS Kakariko Guard\'s House'), lambda state: state.nighttime()) set_rule(world.get_location('GS Kakariko Tree'), lambda state: state.nighttime()) - set_rule(world.get_location('GS Kakariko Watchtower'), lambda state: (state.has('Slingshot') or state.has_bombchus()) and state.nighttime()) + set_rule(world.get_location('GS Kakariko Watchtower'), lambda state: (state.has_slingshot() or state.has_bombchus()) and state.nighttime()) set_rule(world.get_location('GS Kakariko Above Impa\'s House'), lambda state: state.can_use('Hookshot') and state.nighttime()) set_rule(world.get_location('GS Graveyard Wall'), lambda state: state.has('Boomerang') and state.nighttime()) - set_rule(world.get_location('GS Graveyard Bean Patch'), lambda state: state.has_bottle()) + set_rule(world.get_location('GS Graveyard Bean Patch'), lambda state: state.has_bottle() and state.can_child_attack()) set_rule(world.get_location('GS Mountain Trail Bean Patch'), lambda state: state.has_bottle() and (state.has_explosives() or state.has('Progressive Strength Upgrade'))) set_rule(world.get_location('GS Mountain Trail Bomb Alcove'), lambda state: state.can_blast_or_smash()) set_rule(world.get_location('GS Mountain Trail Path to Crater'), lambda state: state.can_use('Hammer') and state.nighttime()) set_rule(world.get_location('GS Mountain Trail Above Dodongo\'s Cavern'), lambda state: state.can_use('Hammer') and state.nighttime()) set_rule(world.get_location('GS Goron City Boulder Maze'), lambda state: state.has_explosives()) + set_rule(world.get_location('GS Death Mountain Crater Crate'), lambda state: state.can_blast_or_smash() and state.can_child_attack()) set_rule(world.get_location('GS Goron City Center Platform'), lambda state: state.is_adult()) - set_rule(world.get_location('GS Death Mountain Crater Crate'), lambda state: state.can_blast_or_smash()) - set_rule(world.get_location('GS Mountain Crater Bean Patch'), lambda state: state.can_play('Bolero of Fire') and state.has_bottle()) - set_rule(world.get_location('GS Zora River Ladder'), lambda state: state.nighttime()) + set_rule(world.get_location('GS Mountain Crater Bean Patch'), lambda state: state.can_play('Bolero of Fire') and state.has_bottle() and state.can_child_attack()) + set_rule(world.get_location('GS Zora River Ladder'), lambda state: state.nighttime() and state.can_child_attack()) set_rule(world.get_location('GS Zora River Near Raised Grottos'), lambda state: state.can_use('Hookshot') and state.nighttime()) set_rule(world.get_location('GS Zora River Above Bridge'), lambda state: state.can_use('Hookshot') and state.nighttime()) - set_rule(world.get_location('GS Zora\'s Domain Frozen Waterfall'), lambda state: state.nighttime() and (state.has('Progressive Hookshot') or state.has('Bow') or state.has('Magic Meter'))) + set_rule(world.get_location('GS Zora\'s Domain Frozen Waterfall'), lambda state: state.nighttime() and (state.has('Progressive Hookshot') or state.has_bow() or state.has('Magic Meter'))) set_rule(world.get_location('GS Zora\'s Fountain Above the Log'), lambda state: state.has('Boomerang') and state.nighttime()) set_rule(world.get_location('GS Zora\'s Fountain Hidden Cave'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.can_blast_or_smash() and state.has('Progressive Hookshot') and state.nighttime()) - set_rule(world.get_location('GS Lake Hylia Bean Patch'), lambda state: state.has_bottle()) + set_rule(world.get_location('GS Lake Hylia Bean Patch'), lambda state: state.has_bottle() and state.can_child_attack()) set_rule(world.get_location('GS Lake Hylia Lab Wall'), lambda state: state.has('Boomerang') and state.nighttime()) - set_rule(world.get_location('GS Lake Hylia Small Island'), lambda state: state.nighttime()) + set_rule(world.get_location('GS Lake Hylia Small Island'), lambda state: state.nighttime() and state.can_child_attack()) set_rule(world.get_location('GS Lake Hylia Giant Tree'), lambda state: state.can_use('Longshot')) set_rule(world.get_location('GS Lab Underwater Crate'), lambda state: state.has('Iron Boots') and state.can_use('Hookshot')) set_rule(world.get_location('GS Gerudo Valley Small Bridge'), lambda state: state.has('Boomerang') and state.nighttime()) - set_rule(world.get_location('GS Gerudo Valley Bean Patch'), lambda state: state.has_bottle()) + set_rule(world.get_location('GS Gerudo Valley Bean Patch'), lambda state: state.has_bottle() and state.can_child_attack()) set_rule(world.get_location('GS Gerudo Valley Behind Tent'), lambda state: state.can_use('Hookshot') and state.nighttime()) set_rule(world.get_location('GS Gerudo Valley Pillar'), lambda state: state.can_use('Hookshot') and state.nighttime()) set_rule(world.get_location('GS Gerudo Fortress Archery Range'), lambda state: state.can_use('Hookshot') and state.has('Carpenter Rescue') and state.nighttime()) - set_rule(world.get_location('GS Gerudo Fortress Top Floor'), lambda state: state.nighttime()) + set_rule(world.get_location('GS Gerudo Fortress Top Floor'), lambda state: state.nighttime() and (self.can_use('Bow') or self.can_use('Hookshot') or self.can_use('Hover Boots') or self.world.logic_tricks)) set_rule(world.get_location('GS Wasteland Ruins'), lambda state: state.can_use('Hookshot')) - set_rule(world.get_location('GS Desert Colossus Bean Patch'), lambda state: state.has_bottle() and state.can_play('Requiem of Spirit')) + set_rule(world.get_location('GS Desert Colossus Bean Patch'), lambda state: state.has_bottle() and state.can_play('Requiem of Spirit') and state.can_child_attack()) set_rule(world.get_location('GS Desert Colossus Tree'), lambda state: state.can_use('Hookshot') and state.nighttime()) set_rule(world.get_location('GS Desert Colossus Hill'), lambda state: ((state.can_use('Magic Bean') and state.can_play('Requiem of Spirit')) or state.can_use('Longshot')) and state.nighttime()) + set_rule(world.get_location('GS Zora River Tree'), lambda state: state.can_child_attack()) + set_rule(world.get_location('HF Grotto Deku Scrub Piece of Heart'), lambda state: state.can_stun_deku()) + set_rule(world.get_entrance('Zora River Storms Grotto'), lambda state: state.can_play('Song of Storms') and state.can_stun_deku()) + set_rule(world.get_entrance('Meadow Storms Grotto Child Access'), lambda state: state.can_play('Song of Storms') and (state.can_child_attack() or state.has_nuts() or state.has('Buy Deku Shield'))) + set_rule(world.get_entrance('Meadow Storms Grotto Adult Access'), lambda state: state.can_play('Song of Storms')) + set_rule(world.get_entrance('Lake Hylia Grotto'), lambda state: state.can_stun_deku()) + set_rule(world.get_location('LW Deku Scrub Deku Nuts'), lambda state: state.can_stun_deku()) + set_rule(world.get_location('LW Deku Scrub Deku Sticks'), lambda state: state.can_stun_deku()) + set_rule(world.get_location('LW Deku Scrub Deku Stick Upgrade'), lambda state: state.can_stun_deku()) + set_rule(world.get_entrance('Desert Colossus Grotto'), lambda state: state.can_use('Silver Gauntlets')) + set_rule(world.get_location('DMC Deku Scrub Bombs'), lambda state: state.can_blast_or_smash() and (state.can_child_attack() or state.has_nuts() or state.has('Buy Deku Shield'))) + set_rule(world.get_entrance('DMC Hammer Grotto'), lambda state: state.can_use('Hammer')) + set_rule(world.get_entrance('Goron City Grotto'), lambda state: state.is_adult() and ((state.can_play('Song of Time') and (world.difficulty != 'ohko' or state.has_GoronTunic() or state.can_use('Longshot') or state.can_use('Nayrus Love'))) or (world.difficulty != 'ohko' and state.has_GoronTunic() and state.can_use('Hookshot')) or (state.can_use('Nayrus Love') and state.can_use('Hookshot')))) + set_rule(world.get_entrance('Lon Lon Grotto'), lambda state: state.can_child_attack() or state.has_nuts() or state.has('Buy Deku Shield')) + set_rule(world.get_entrance('Gerudo Valley Storms Grotto'), lambda state: state.can_play('Song of Storms')) + for location in world.get_locations(): if location.type != 'Chest': forbid_item(location, 'Ice Trap') add_item_rule(location, lambda i: not (i.type == 'Song' and not i.world.shuffle_song_items and i.world.id != location.world.id)) + add_item_rule(location, lambda i: not (i.type == 'Shop' and i.world.id != location.world.id)) + if location.type == 'Shop': + forbid_item(location, 'Biggoron Sword') + + if location.name in world.shop_prices: + location.price = world.shop_prices[location.name] + if location.price > 200: + set_rule(location, lambda state: state.has('Progressive Wallet', 2)) + elif location.price > 99: + set_rule(location, lambda state: state.has('Progressive Wallet')) # Biggoron Sword at bombchu bowling seems to lead to a soft lock. # Unsure what causes this, but I'm leaving this to original devs. @@ -323,37 +360,92 @@ def global_rules(world): forbid_item(world.get_location('Bombchu Bowling Bomb Bag'), 'Biggoron Sword') forbid_item(world.get_location('Bombchu Bowling Piece of Heart'), 'Biggoron Sword') + +# This function should be ran once after the shop items are placed in the world. +# It should be ran before other items are placed in the world so that logic has +# the correct checks for them. This is save to do since every shop is still +# accessible when all items are obtained and every shop item is not. +# This function should also be called when a world is copied if the original world +# had called this function because the world.copy does not copy the rules +def set_shop_rules(world): + for location in world.get_filled_locations(): + if location.item.type == 'Shop': + # Add wallet requirements + if location.item.name in ['Buy Arrows (50)', 'Buy Fish', 'Buy Goron Tunic', 'Buy Bombchu (20)', 'Buy Bombs (30)']: + add_rule(location, lambda state: state.has('Progressive Wallet')) + elif location.item.name in ['Buy Zora Tunic', 'Buy Blue Fire']: + add_rule(location, lambda state: state.has('Progressive Wallet', 2)) + + # Add adult only checks + if location.item.name in ['Buy Goron Tunic', 'Buy Zora Tunic']: + if location.parent_region.name == 'Goron Shop': + add_rule(location, lambda state: state.is_adult() and (state.has_explosives() or state.has('Progressive Strength Upgrade') or state.has_bow())) + elif location.parent_region.name == 'Zora Shop': + add_rule(location, lambda state: state.can_reach('Zora Shop Adult Access', 'Entrance')) + elif location.parent_region.name in ['Castle Town Bombchu Shop', 'Castle Town Potion Shop', 'Castle Town Bazaar']: + set_rule(location, lambda state: False) + else: + add_rule(location, lambda state: state.is_adult()) + + # Add item prerequisit checks + if location.item.name in ['Buy Blue Fire', 'Buy Blue Potion', 'Buy Bottle Bug', 'Buy Fish', 'Buy Green Potion', 'Buy Poe', 'Buy Red Potion [30]', 'Buy Red Potion [40]', 'Buy Red Potion [50]', 'Buy Fairy\'s Spirit']: + add_rule(location, lambda state: state.has_bottle()) + if location.item.name in ['Buy Bombchu (10)', 'Buy Bombchu (20)', 'Buy Bombchu (5)']: + add_rule(location, lambda state: state.has_bombchus_item()) + # Deku Tree Vanilla def dung_rules_dt0(world): - set_rule(world.get_entrance('Deku Tree Basement Path'), lambda state: state.has('Slingshot')) + set_rule(world.get_entrance('Deku Tree Basement Path'), lambda state: state.has_slingshot() and (state.has_sticks() or state.can_use('Dins Fire'))) + set_rule(world.get_entrance('Deku Tree Slingshot Passage'), lambda state: state.has('Buy Deku Shield')) - # GS - set_rule(world.get_location('GS Deku Tree Basement Back Room'), lambda state: state.has('Boomerang') and (state.has('Bomb Bag') or (state.has_bombchus() and state.can_leave_forest()))) + # Boss + set_rule(world.get_location('Queen Gohma Heart'), lambda state: state.has('Buy Deku Shield') and (state.has('Kokiri Sword') or state.has_sticks())) + set_rule(world.get_location('Queen Gohma'), lambda state: state.has('Buy Deku Shield') and (state.has('Kokiri Sword') or state.has_sticks())) + + # GS + set_rule(world.get_location('GS Deku Tree Basement Back Room'), lambda state: state.has('Boomerang') and (state.has_explosives())) + set_rule(world.get_location('GS Deku Tree Basement Gate'), lambda state: state.can_child_attack()) + set_rule(world.get_location('GS Deku Tree Basement Vines'), lambda state: state.has_slingshot() or state.has('Boomerang') or state.has_explosives() or state.can_use('Dins Fire') or (world.logic_tricks and (state.has_sticks() or state.has('Kokiri Sword')))) + set_rule(world.get_location('GS Deku Tree Compass Room'), lambda state: state.can_child_attack()) -# MQ Deku Tree +# Deku Tree MQ def dung_rules_dtmq(world): - set_rule(world.get_entrance('Deku Tree Compass Passage'), lambda state: state.has('Slingshot')) - set_rule(world.get_entrance('Deku Tree Basement Path'), lambda state: state.has('Slingshot')) + set_rule(world.get_entrance('Deku Tree Compass Passage'), lambda state: state.has_slingshot() and (state.has_sticks() or state.can_use('Dins Fire'))) + set_rule(world.get_entrance('Deku Tree Basement Path'), lambda state: state.has_slingshot() and (state.has_sticks() or state.can_use('Dins Fire'))) + set_rule(world.get_location('Deku Tree MQ Slingshot Chest'), lambda state: state.can_child_attack()) + set_rule(world.get_location('Deku Tree MQ Slingshot Room Back Chest'), lambda state: state.has_sticks() or state.can_use('Dins Fire')) + set_rule(world.get_location('Deku Tree MQ Basement Chest'), lambda state: state.has_sticks() or state.can_use('Dins Fire')) set_rule(world.get_location('Deku Tree MQ After Spinning Log Chest'), lambda state: state.can_play('Song of Time')) + set_rule(world.get_location('DT MQ Deku Scrub Deku Shield'), lambda state: state.has_slingshot() or state.has_nuts() or state.has('Boomerang') or state.can_use('Dins Fire') or state.has_bombchus()) + + # Boss + set_rule(world.get_location('Queen Gohma Heart'), lambda state: state.has('Buy Deku Shield') and (state.has('Kokiri Sword') or state.has_sticks())) + set_rule(world.get_location('Queen Gohma'), lambda state: state.has('Buy Deku Shield') and (state.has('Kokiri Sword') or state.has_sticks())) # GS - set_rule(world.get_location('GS Deku Tree MQ Compass Room'), lambda state: state.has('Boomerang') and ((state.has('Bomb Bag') and state.can_play('Song of Time')) or (state.has_bombchus() and state.can_leave_forest()))) + set_rule(world.get_location('GS Deku Tree MQ Lobby'), lambda state: state.can_child_attack()) + set_rule(world.get_location('GS Deku Tree MQ Compass Room'), lambda state: state.has('Boomerang') and ((state.has_bombs() and state.can_play('Song of Time')) or state.has_bombchus())) set_rule(world.get_location('GS Deku Tree MQ Basement Ceiling'), lambda state: state.has('Boomerang') and state.can_play('Song of Time')) set_rule(world.get_location('GS Deku Tree MQ Basement Back Room'), lambda state: state.has('Boomerang')) # Dodongo's Cavern Vanilla def dung_rules_dc0(world): set_rule(world.get_entrance('Dodongos Cavern Lobby'), lambda state: state.can_blast_or_smash() or state.has('Progressive Strength Upgrade')) - set_rule(world.get_entrance('Dodongos Cavern Left Door'), lambda state: state.has_explosives() or state.has('Progressive Strength Upgrade') or state.can_use('Dins Fire') or state.can_use('Bow')) - set_rule(world.get_entrance('Dodongos Cavern Slingshot Target'), lambda state: (state.has('Slingshot') and (state.has_explosives() or state.has('Progressive Strength Upgrade'))) or state.can_use('Bow') or state.can_use('Hover Boots') or state.can_use('Longshot') or (world.logic_dc_jump and state.is_adult())) + set_rule(world.get_entrance('Dodongos Cavern Left Door'), lambda state: (state.is_adult() or ((state.has_sticks() or state.can_use('Dins Fire')) and (state.has_slingshot() or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword')))) and (state.has_explosives() or state.has('Progressive Strength Upgrade') or state.can_use('Dins Fire') or (world.logic_tricks and state.can_use('Bow')))) + set_rule(world.get_location('Dodongos Cavern Compass Chest'), lambda state: state.is_adult() or state.has_sticks() or (state.can_use('Dins Fire') and (state.has_slingshot() or state.has_explosives() or state.has('Kokiri Sword')))) + set_rule(world.get_location('DC Deku Scrub Deku Sticks'), lambda state: state.is_adult() or state.has_slingshot() or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword')) + set_rule(world.get_entrance('Dodongos Cavern Slingshot Target'), lambda state: (state.has_slingshot() and (state.has_explosives() or state.has('Progressive Strength Upgrade'))) or ((state.has_bow() or state.has('Hover Boots') or state.can_use('Longshot') or world.logic_dc_jump) and state.is_adult())) + set_rule(world.get_location('DC Deku Scrub Deku Nuts'), lambda state: state.can_blast_or_smash()) + set_rule(world.get_location('DC Deku Scrub Deku Seeds'), lambda state: state.can_blast_or_smash()) set_rule(world.get_location('Dodongos Cavern End of Bridge Chest'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Dodongos Cavern Bomb Drop'), lambda state: state.has_explosives()) # Boss - set_rule(world.get_location('King Dodongo'), lambda state: state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) - set_rule(world.get_location('King Dodongo Heart'), lambda state: state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) + set_rule(world.get_location('King Dodongo'), lambda state: (state.has_bombs() or state.has('Progressive Strength Upgrade')) and (state.is_adult() or state.has_sticks() or state.has('Kokiri Sword'))) + set_rule(world.get_location('King Dodongo Heart'), lambda state: (state.has_bombs() or state.has('Progressive Strength Upgrade')) and (state.is_adult() or state.has_sticks() or state.has('Kokiri Sword'))) # GS + set_rule(world.get_location('GS Dodongo\'s Cavern East Side Room'), lambda state: state.has_explosives() or state.is_adult() or state.has_slingshot() or state.has('Boomerang') or state.has_sticks() or state.has('Kokiri Sword')) set_rule(world.get_location('GS Dodongo\'s Cavern Alcove Above Stairs'), lambda state: state.can_use('Hookshot') or (state.has('Boomerang') and (state.has_explosives() or state.has('Progressive Strength Upgrade')))) set_rule(world.get_location('GS Dodongo\'s Cavern Scarecrow'), lambda state: state.can_use('Scarecrow') or state.can_use('Longshot')) @@ -361,34 +453,42 @@ def dung_rules_dc0(world): def dung_rules_dcmq(world): set_rule(world.get_entrance('Dodongos Cavern Lobby'), lambda state: state.can_blast_or_smash() or state.has('Progressive Strength Upgrade')) set_rule(world.get_entrance('Dodongos Cavern Bomb Drop'), lambda state: state.has_explosives()) - set_rule(world.get_location('Dodongos Cavern MQ Larva Room Chest'), lambda state: state.has_explosives or state.has('Progressive Strength Upgrade') or state.has_fire_source()) - set_rule(world.get_location('Dodongos Cavern MQ Bomb Bag Chest'), lambda state: state.has('Slingshot') or state.is_adult()) + set_rule(world.get_location('Dodongos Cavern MQ Compass Chest'), lambda state: state.is_adult() or state.can_child_attack() or state.has_nuts()) + set_rule(world.get_location('Dodongos Cavern MQ Torch Puzzle Room Chest'), lambda state: state.can_blast_or_smash() or state.has_sticks() or state.can_use('Dins Fire') or (state.is_adult() and (world.logic_dc_jump or state.has('Hover Boots') or state.has('Progressive Hookshot')))) + set_rule(world.get_location('Dodongos Cavern MQ Larva Room Chest'), lambda state: (state.has_sticks() and (state.has_explosives or state.has('Progressive Strength Upgrade'))) or state.has_fire_source()) + set_rule(world.get_location('Dodongos Cavern MQ Bomb Bag Chest'), lambda state: state.is_adult() or (state.has_slingshot() and (state.has_sticks() or state.can_use('Dins Fire') or state.has_explosives()))) + set_rule(world.get_location('DC MQ Deku Scrub Deku Sticks'), lambda state: state.can_stun_deku()) + set_rule(world.get_location('DC MQ Deku Scrub Deku Seeds'), lambda state: state.can_stun_deku()) + set_rule(world.get_location('DC MQ Deku Scrub Deku Shield'), lambda state: state.can_stun_deku()) + set_rule(world.get_location('DC MQ Deku Scrub Red Potion'), lambda state: state.is_adult() or state.has_sticks() or state.can_use('Dins Fire') or state.has_explosives()) # Boss - set_rule(world.get_location('King Dodongo'), lambda state: state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) - set_rule(world.get_location('King Dodongo Heart'), lambda state: state.has('Bomb Bag') or state.has('Progressive Strength Upgrade')) + set_rule(world.get_location('King Dodongo'), lambda state: (state.has_bombs() or state.has('Progressive Strength Upgrade')) and (state.is_adult() or state.has_sticks() or state.has('Kokiri Sword'))) + set_rule(world.get_location('King Dodongo Heart'), lambda state: (state.has_bombs() or state.has('Progressive Strength Upgrade')) and (state.is_adult() or state.has_sticks() or state.has('Kokiri Sword'))) # GS - set_rule(world.get_location('GS Dodongo\'s Cavern MQ Song of Time Block Room'), lambda state: state.can_play('Song of Time')) - set_rule(world.get_location('GS Dodongo\'s Cavern MQ Larva Room'), lambda state: state.has_explosives or state.has('Progressive Strength Upgrade') or state.has_fire_source()) + set_rule(world.get_location('GS Dodongo\'s Cavern MQ Song of Time Block Room'), lambda state: state.can_play('Song of Time') and (state.can_child_attack() or state.is_adult())) + set_rule(world.get_location('GS Dodongo\'s Cavern MQ Larva Room'), lambda state: (state.has_sticks() and (state.has_explosives or state.has('Progressive Strength Upgrade'))) or state.has_fire_source()) set_rule(world.get_location('GS Dodongo\'s Cavern MQ Lizalfos Room'), lambda state: state.can_blast_or_smash()) - set_rule(world.get_location('GS Dodongo\'s Cavern MQ Scrub Room'), lambda state: ((state.has('Slingshot') or (state.is_adult() and state.has_explosives())) and state.has('Boomerang') and (state.has_explosives() or state.has('Progressive Strength Upgrade'))) or (state.can_use('Hookshot') and (state.has_explosives() or state.has('Progressive Strength Upgrade') or state.has('Bow') or state.can_use('Dins Fire')))) - # You may have to kill the lower Lizalfos as adult, then use Bombs to jump down from the upper Lizalfos as child, so you can use the Boomerang to get this GS without needing the Slingshot. (Or you could do the jumpslash recoil, but that's not in logic.) + set_rule(world.get_location('GS Dodongo\'s Cavern MQ Scrub Room'), lambda state: (state.has('Boomerang') and (state.has_slingshot() or (state.is_adult() and state.has_explosives())) and (state.has_explosives() or (state.has('Progressive Strength Upgrade') and (state.has_sticks() or state.can_use('Dins Fire') or (state.is_adult() and (world.logic_dc_jump or state.has('Hover Boots') or state.has('Hammer'))))))) or (state.can_use('Hookshot') and (state.has_explosives() or state.has('Progressive Strength Upgrade') or state.has_bow() or state.can_use('Dins Fire')))) # Jabu Jabu's Belly Vanilla def dung_rules_jb0(world): - set_rule(world.get_entrance('Jabu Jabus Belly Ceiling Switch'), lambda state: state.has('Slingshot') or state.has_explosives() or state.has('Boomerang')) - set_rule(world.get_entrance('Jabu Jabus Belly Tentacles'), lambda state: state.has('Boomerang')) + set_rule(world.get_entrance('Jabu Jabus Belly Ceiling Switch'), lambda state: state.has_slingshot() or state.has_explosives() or state.has('Boomerang')) + set_rule(world.get_entrance('Jabu Jabus Belly Tentacles'), lambda state: state.has('Boomerang')) + set_rule(world.get_entrance('Jabu Jabus Belly Octopus'), lambda state: state.has_sticks() or state.has('Kokiri Sword')) # Jabu Jabu's Belly MQ def dung_rules_jbmq(world): - set_rule(world.get_entrance('Jabu Jabus Belly Cow Switch'), lambda state: state.has('Slingshot')) + set_rule(world.get_entrance('Jabu Jabus Belly Cow Switch'), lambda state: state.has_slingshot()) set_rule(world.get_entrance('Jabu Jabus Belly Tentacle Access'), lambda state: state.has_explosives() and state.has('Boomerang')) + set_rule(world.get_entrance('Jabu Jabus Belly Octopus'), lambda state: state.has_sticks() or (state.has('Kokiri Sword') and state.can_use('Dins Fire'))) set_rule(world.get_location('Jabu Jabus Belly MQ Map Chest'), lambda state: state.has_explosives()) - set_rule(world.get_location('Jabu Jabus Belly MQ Entry Side Chest'), lambda state: state.has('Slingshot')) + set_rule(world.get_location('Jabu Jabus Belly MQ Entry Side Chest'), lambda state: state.has_slingshot()) # GS set_rule(world.get_location('GS Jabu Jabu MQ Boomerang Room'), lambda state: state.can_play('Song of Time')) + set_rule(world.get_location('GS Jabu Jabu MQ Tailpasaran Room'), lambda state: state.has_sticks() or state.can_use('Dins Fire')) set_rule(world.get_location('GS Jabu Jabu MQ Invisible Enemies Room'), lambda state: state.can_see_with_lens()) # Forest Temple Vanilla @@ -396,7 +496,7 @@ def dung_rules_fot0(world): set_rule(world.get_entrance('Forest Temple Song of Time Block'), lambda state: state.can_play('Song of Time')) set_rule(world.get_entrance('Forest Temple Lobby Eyeball Switch'), lambda state: state.can_use('Bow')) set_rule(world.get_entrance('Forest Temple Lobby Locked Door'), lambda state: state.has('Small Key (Forest Temple)', 1)) - set_rule(world.get_entrance('Forest Temple Well Connection'), lambda state: state.can_use('Iron Boots') or state.can_use('Longshot') or state.has('Progressive Scale', 2)) #Longshot can grab some very high up vines to drain the well. + set_rule(world.get_entrance('Forest Temple Well Connection'), lambda state: state.can_use('Iron Boots') or state.can_use('Longshot') or state.has('Progressive Scale', 2) or (world.logic_tricks and state.can_use('Hookshot'))) #Longshot can grab some very high up vines to drain the well. set_rule(world.get_entrance('Forest Temple Scarecrows Song'), lambda state: False) #For some reason you can't actually activate this from below. Cool game. set_rule(world.get_entrance('Forest Temple Elevator'), lambda state: state.can_use('Bow')) set_rule(world.get_entrance('Forest Temple Outside Backdoor'), lambda state: state.can_use('Hover Boots')) @@ -411,29 +511,27 @@ def dung_rules_fot0(world): set_rule(world.get_location('Phantom Ganon'), lambda state: state.has('Boss Key (Forest Temple)')) set_rule(world.get_location('Phantom Ganon Heart'), lambda state: state.has('Boss Key (Forest Temple)')) - # GS + # GS set_rule(world.get_location('GS Forest Temple First Room'), lambda state: state.can_use('Hookshot') or state.can_use('Bow') or state.can_use('Dins Fire')) set_rule(world.get_location('GS Forest Temple Lobby'), lambda state: state.can_use('Hookshot')) set_rule(world.get_location('GS Forest Temple Outdoor East'), lambda state: state.can_use('Hookshot')) set_rule(world.get_location('GS Forest Temple Outdoor West'), lambda state: state.can_use('Longshot') or (state.can_use('Hookshot') and state.can_reach('Forest Temple Outside Upper Ledge'))) set_rule(world.get_location('GS Forest Temple Basement'), lambda state: state.can_use('Hookshot')) -# MQ Forest Temple -# "Quirks to Know": -# - In the block puzzle room, if you turn left immediately and send a bombchu straight up the wall, it'll hit a shortcut switch and you can skip the puzzle (and needing Goron Bracelet). -# - Additionally, after hitting that switch, you can jump, from the 2nd ice block that appears, down to where the hallway twist switch is located, and then jumpslash it through the ice blocks. (You'll recoil off if you jumpslash too early, but the timing is still pretty lenient.) +# Forest Temple MQ def dung_rules_fotmq(world): set_rule(world.get_entrance('Forest Temple Lobby Locked Door'), lambda state: state.has('Small Key (Forest Temple)', 1)) set_rule(world.get_entrance('Forest Temple West Eye Switch'), lambda state: state.can_use('Bow')) set_rule(world.get_entrance('Forest Temple East Eye Switch'), lambda state: state.can_use('Bow')) - set_rule(world.get_entrance('Forest Temple Block Puzzle Solve'), lambda state: state.has_bombchus() or state.has('Progressive Strength Upgrade')) + set_rule(world.get_entrance('Forest Temple Block Puzzle Solve'), lambda state: (state.has_bombchus() and world.logic_tricks) or state.has('Progressive Strength Upgrade')) + set_rule(world.get_entrance('Forest Temple Block Puzzle Solve'), lambda state: (state.has_bombchus() and world.logic_tricks) or state.has('Progressive Strength Upgrade') or state.can_use('Hover Boots')) set_rule(world.get_entrance('Forest Temple Twisted Hall'), lambda state: state.has('Small Key (Forest Temple)', 4)) set_rule(world.get_entrance('Forest Temple Well Connection'), lambda state: state.can_use('Iron Boots') or state.can_use('Longshot') or state.has('Progressive Scale', 2)) set_rule(world.get_entrance('Forest Temple Webs'), lambda state: state.can_use('Fire Arrows')) set_rule(world.get_entrance('Forest Temple Climb to Top Ledges'), lambda state: state.can_use('Longshot') or state.can_use('Hover Boots') or state.can_play('Song of Time')) set_rule(world.get_entrance('Forest Temple Longshot to NE Outdoors Ledge'), lambda state: state.can_use('Longshot')) set_rule(world.get_entrance('Forest Temple Song of Time Block Climb'), lambda state: state.can_play('Song of Time')) - set_rule(world.get_entrance('Forest Temple Drop to Falling Room'), lambda state: state.has('Small Key (Forest Temple)', 5) and (state.can_use('Bow') or state.can_use('Dins Fire'))) # Only 5 keys because the door you could 'waste' your key on is the door you're trying to use keys to get to. If you do something out of logic to open that door, then I suppose you could be forced to go out of logic again if you don't get the chest or beat Amy. But there shouldn't be any non-glitch thing that you could do that wouldn't be repeatable even if it is out of logic. + set_rule(world.get_entrance('Forest Temple Drop to Falling Room'), lambda state: state.has('Small Key (Forest Temple)', 5) and (state.can_use('Bow') or state.can_use('Dins Fire'))) # Only 5 keys because the door you could 'waste' your key on is the door you're trying to use keys to get to. set_rule(world.get_entrance('Forest Temple Elevator'), lambda state: state.can_use('Bow') and state.has('Small Key (Forest Temple)', 6) and state.can_reach('Forest Temple Bow Region')) if not (world.keysanity or world.tokensanity != 'off'): # Normal seeds will fail to generate if the Boss Key is placed at this location, as it must be a key to progress into the temple. This solution not ideal as it does not allow the Boss Key to appear at this location in beatable only seeds. forbid_item(world.get_location('Forest Temple MQ First Chest'), 'Boss Key (Forest Temple)') @@ -452,47 +550,44 @@ def dung_rules_fotmq(world): # Fire Temple Vanilla def dung_rules_fit0(world): - set_rule(world.get_entrance('Fire Temple Early Climb'), lambda state: state.has_GoronTunic() and state.has('Small Key (Fire Temple)', 3) and state.has('Progressive Strength Upgrade') and (state.has_explosives() or state.can_use('Bow') or state.can_use('Hookshot'))) - set_rule(world.get_entrance('Fire Temple Fire Maze Escape'), lambda state: state.has('Small Key (Fire Temple)', 7) or (state.has('Small Key (Fire Temple)', 6) and state.has('Hover Boots') and state.can_use('Hammer'))) - set_rule(world.get_location('Fire Temple Fire Dancer Chest'), lambda state: state.can_use('Hammer')) - set_rule(world.get_location('Fire Temple Boss Key Chest'), lambda state: state.can_use('Hammer')) - set_rule(world.get_location('Fire Temple Big Lava Room Bombable Chest'), lambda state: state.has('Small Key (Fire Temple)', 1) and state.has_explosives()) - set_rule(world.get_location('Fire Temple Big Lava Room Open Chest'), lambda state: state.has('Small Key (Fire Temple)', 1)) - set_rule(world.get_location('Fire Temple Map Chest'), lambda state: state.has('Small Key (Fire Temple)', 5) or (state.has('Small Key (Fire Temple)', 4) and state.can_use('Bow'))) - set_rule(world.get_location('Fire Temple Boulder Maze Upper Chest'), lambda state: state.has('Small Key (Fire Temple)', 5)) - set_rule(world.get_location('Fire Temple Boulder Maze Bombable Pit'), lambda state: state.has('Small Key (Fire Temple)', 5) and state.has_explosives()) - set_rule(world.get_location('Fire Temple Scarecrow Chest'), lambda state: state.has('Small Key (Fire Temple)', 5) and state.can_use('Scarecrow')) - set_rule(world.get_location('Fire Temple Compass Chest'), lambda state: state.has('Small Key (Fire Temple)', 6)) - set_rule(world.get_location('Fire Temple Highest Goron Chest'), lambda state: state.can_play('Song of Time') and state.can_use('Hammer')) + set_rule(world.get_entrance('Fire Temple Early Climb'), lambda state: state.has_GoronTunic() and state.has('Small Key (Fire Temple)', 4) and state.has('Progressive Strength Upgrade') and (state.has_explosives() or ((state.has_bow() or state.has('Progressive Hookshot')) and state.is_adult()))) + set_rule(world.get_entrance('Fire Temple Fire Maze Escape'), lambda state: state.has('Small Key (Fire Temple)', 8) or (state.has('Small Key (Fire Temple)', 7) and state.can_use('Hover Boots') and state.can_use('Hammer'))) + set_rule(world.get_location('Fire Temple Fire Dancer Chest'), lambda state: (state.has('Small Key (Fire Temple)', 8) or not world.keysanity) and state.can_use('Hammer')) + set_rule(world.get_location('Fire Temple Boss Key Chest'), lambda state: (state.has('Small Key (Fire Temple)', 8) or not world.keysanity) and state.can_use('Hammer')) + set_rule(world.get_location('Fire Temple Big Lava Room Bombable Chest'), lambda state: state.has('Small Key (Fire Temple)', 2) and state.has_explosives()) + set_rule(world.get_location('Fire Temple Big Lava Room Open Chest'), lambda state: state.has('Small Key (Fire Temple)', 2)) + set_rule(world.get_location('Fire Temple Map Chest'), lambda state: state.has('Small Key (Fire Temple)', 6) or (state.has('Small Key (Fire Temple)', 5) and state.can_use('Bow'))) + set_rule(world.get_location('Fire Temple Boulder Maze Upper Chest'), lambda state: state.has('Small Key (Fire Temple)', 6)) + set_rule(world.get_location('Fire Temple Boulder Maze Bombable Pit'), lambda state: state.has('Small Key (Fire Temple)', 6) and state.has_explosives()) + set_rule(world.get_location('Fire Temple Scarecrow Chest'), lambda state: state.has('Small Key (Fire Temple)', 6) and state.can_use('Scarecrow')) + set_rule(world.get_location('Fire Temple Compass Chest'), lambda state: state.has('Small Key (Fire Temple)', 7)) + set_rule(world.get_location('Fire Temple Highest Goron Chest'), lambda state: (state.can_play('Song of Time') or world.logic_tricks) and state.can_use('Hammer')) set_rule(world.get_location('Fire Temple Megaton Hammer Chest'), lambda state: state.has_explosives()) # Boss set_rule(world.get_location('Volvagia'), lambda state: state.has_GoronTunic() and state.can_use('Hammer') and state.has('Boss Key (Fire Temple)') and (state.has('Hover Boots') or (state.can_reach('Fire Temple Upper') and (state.can_play('Song of Time') or state.has_explosives())))) set_rule(world.get_location('Volvagia Heart'), lambda state: state.has_GoronTunic() and state.can_use('Hammer') and state.has('Boss Key (Fire Temple)') and (state.has('Hover Boots') or (state.can_reach('Fire Temple Upper') and (state.can_play('Song of Time') or state.has_explosives())))) - # GS - set_rule(world.get_location('GS Fire Temple Song of Time Room'), lambda state: state.has('Small Key (Fire Temple)', 1) and state.can_play('Song of Time')) - set_rule(world.get_location('GS Fire Temple Unmarked Bomb Wall'), lambda state: state.has('Small Key (Fire Temple)', 3) and state.has_explosives()) - set_rule(world.get_location('GS Fire Temple East Tower Climb'), lambda state: state.has('Small Key (Fire Temple)', 5) and state.can_use('Scarecrow')) - set_rule(world.get_location('GS Fire Temple East Tower Top'), lambda state: state.has('Small Key (Fire Temple)', 5) and state.can_use('Scarecrow')) - set_rule(world.get_location('GS Fire Temple Basement'), lambda state: state.can_use('Hammer')) - -# MQ Fire Temple -# "Quirks to Know": -# - In the "Big Lava Room", the torches are a little glitchy I guess and can only be lit with just Dins (using no Bow) if you light them in a certain order. -# - That order is south torch, then one of the other two torches, and ignoring the 3rd torch, and without leaving the room between lighting those two torches. -# - If you fail to hit the torches in this this specific way, you must leave the dungeon to reset the puzzle to try again. -# - Now actually, the ledge torch and the north torch can be lit with just Dins but you really have to know what you're doing and you have to move really quickly. + # GS + set_rule(world.get_location('GS Fire Temple Song of Time Room'), lambda state: state.has('Small Key (Fire Temple)', 2) and state.can_play('Song of Time')) + set_rule(world.get_location('GS Fire Temple Unmarked Bomb Wall'), lambda state: state.has('Small Key (Fire Temple)', 4) and state.has_explosives()) + set_rule(world.get_location('GS Fire Temple East Tower Climb'), lambda state: state.has('Small Key (Fire Temple)', 6) and state.can_use('Scarecrow')) + set_rule(world.get_location('GS Fire Temple East Tower Top'), lambda state: state.has('Small Key (Fire Temple)', 6) and state.can_use('Scarecrow')) + set_rule(world.get_location('GS Fire Temple Basement'), lambda state: (state.has('Small Key (Fire Temple)', 8) or not world.keysanity) and state.can_use('Hammer')) + +# Fire Temple MQ def dung_rules_fitmq(world): set_rule(world.get_entrance('Fire Temple Lower Locked Door'), lambda state: state.has('Small Key (Fire Temple)', 5) and (state.has_explosives() or state.has('Hammer') or state.has('Progressive Hookshot'))) set_rule(world.get_entrance('Fire Temple Hammer Statue'), lambda state: state.can_use('Hammer')) set_rule(world.get_entrance('Fire Temple Early Climb'), lambda state: state.has_GoronTunic() and state.has('Small Key (Fire Temple)', 2) and state.has_fire_source()) - set_rule(world.get_entrance('Fire Temple Maze Climb'), lambda state: state.has_explosives() and state.can_use('Hookshot')) - set_rule(world.get_entrance('Fire Temple Maze Escape'), lambda state: state.has('Small Key (Fire Temple)', 3) and state.has('Bow')) - set_rule(world.get_location('Fire Temple MQ Chest Near Boss'), lambda state: (state.has('Hover Boots') and state.has_fire_source()) or (state.has('Progressive Hookshot') and state.has('Magic Meter') and ((state.has('Fire Arrows') and state.has('Bow')) or (state.has('Dins Fire') and ((world.difficulty != 'ohko') or state.has_GoronTunic() or state.has('Bow') or state.has('Progressive Hookshot', 2)))))) + set_rule(world.get_entrance('Fire Temple Maze Climb'), lambda state: (state.has_explosives() or world.logic_tricks) and state.can_use('Hookshot')) + set_rule(world.get_entrance('Fire Temple Maze Escape'), lambda state: state.has('Small Key (Fire Temple)', 3) and state.has_bow()) + set_rule(world.get_location('Fire Temple MQ Chest Near Boss'), lambda state: (state.has('Hover Boots') and state.has_fire_source()) or (state.has('Progressive Hookshot') and (state.can_use('Fire Arrows') or (state.can_use('Dins Fire') and (world.difficulty != 'ohko' or state.has_GoronTunic() or state.has_bow() or state.has('Progressive Hookshot', 2)))))) set_rule(world.get_location('Fire Temple MQ Map Chest'), lambda state: state.has('Hammer')) - set_rule(world.get_location('Fire Temple MQ Boss Key Chest'), lambda state: state.has_fire_source() and state.has('Bow') and state.has('Progressive Hookshot')) + set_rule(world.get_location('Fire Temple MQ Boss Key Chest'), lambda state: state.has_fire_source() and (state.has_bow() or world.logic_tricks) and state.has('Progressive Hookshot')) set_rule(world.get_location('Fire Temple MQ Big Lava Room Bombable Chest'), lambda state: state.has_fire_source() and state.has('Progressive Hookshot') and state.has_explosives()) + set_rule(world.get_location('Fire Temple MQ Maze Side Room'), lambda state: state.has_explosives()) + set_rule(world.get_location('Fire Temple MQ Compass Chest'), lambda state: state.has_explosives()) set_rule(world.get_location('Fire Temple MQ West Tower Top Chest'), lambda state: state.has('Small Key (Fire Temple)', 4)) # Boss @@ -501,54 +596,54 @@ def dung_rules_fitmq(world): # GS set_rule(world.get_location('GS Fire Temple MQ East Tower Top'), lambda state: state.can_play('Song of Time') or state.can_use('Longshot')) set_rule(world.get_location('GS Fire Temple MQ Fire Wall Maze Side Room'), lambda state: state.can_play('Song of Time') or state.has('Hover Boots')) + set_rule(world.get_location('GS Fire Temple MQ Fire Wall Maze Center'), lambda state: state.has_explosives()) set_rule(world.get_location('GS Fire Temple MQ Above Fire Wall Maze'), lambda state: state.has('Small Key (Fire Temple)', 5) or ((item_name(state, 'GS Fire Temple MQ Above Fire Wall Maze') == 'Small Key (Fire Temple)' or not world.keys_placed) and state.has('Small Key (Fire Temple)', 4))) # Water Temple Vanilla def dung_rules_wt0(world): - set_rule(world.get_entrance('Water Temple Central Pillar'), lambda state: (state.has('Bow') or state.can_use('Dins Fire') or state.has('Small Key (Water Temple)', 5)) and state.can_play('Zeldas Lullaby')) - set_rule(world.get_entrance('Water Temple Upper Locked Door'), lambda state: state.has('Small Key (Water Temple)', 5) and (state.can_play('Zeldas Lullaby') or world.keysanity)) - set_rule(world.get_location('Water Temple Torches Chest'), lambda state: (state.has('Bow') or state.can_use('Dins Fire')) and state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('Water Temple Dragon Chest'), lambda state: (state.has('Progressive Strength Upgrade') and state.can_play('Zeldas Lullaby')) or (state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity) and state.can_play('Song of Time') and state.has('Bow'))) - set_rule(world.get_location('Water Temple Central Bow Target Chest'), lambda state: state.has('Bow') and state.has('Progressive Strength Upgrade') and state.can_play('Zeldas Lullaby') and (state.has('Hover Boots') or state.can_use('Longshot'))) - set_rule(world.get_location('Water Temple Boss Key Chest'), lambda state: (state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity) and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and state.can_use('Longshot')) or (state.has('Small Key (Water Temple)', 5) and (item_name(state, 'Water Temple Boss Key Chest') == 'Small Key (Water Temple)' or not world.keys_placed))) #If key for key, this lets the logic reduce the small key reqs for every other locked door. + set_rule(world.get_entrance('Water Temple Central Pillar'), lambda state: (state.has_bow() or state.can_use('Dins Fire') or state.has('Small Key (Water Temple)', 5)) and state.can_play('Zeldas Lullaby') and state.has('Iron Boots')) + set_rule(world.get_entrance('Water Temple Upper Locked Door'), lambda state: state.has('Small Key (Water Temple)', 5) and state.has('Iron Boots') and (state.can_play('Zeldas Lullaby') or world.keysanity)) + set_rule(world.get_location('Water Temple Map Chest'), lambda state: state.has('Iron Boots')) + set_rule(world.get_location('Water Temple Compass Chest'), lambda state: state.has('Iron Boots')) + set_rule(world.get_location('Water Temple Torches Chest'), lambda state: (state.has_bow() or state.can_use('Dins Fire')) and state.can_play('Zeldas Lullaby') and state.has('Iron Boots')) + set_rule(world.get_location('Water Temple Dragon Chest'), lambda state: state.has('Iron Boots') and ((state.has('Progressive Strength Upgrade') and state.can_play('Zeldas Lullaby')) or (state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity) and state.can_play('Song of Time') and state.has_bow()))) + set_rule(world.get_location('Water Temple Central Bow Target Chest'), lambda state: state.has_bow() and state.has('Iron Boots') and state.has('Progressive Strength Upgrade') and state.can_play('Zeldas Lullaby') and (state.has('Hover Boots') or state.can_use('Longshot'))) + set_rule(world.get_location('Water Temple Boss Key Chest'), lambda state: (state.has('Small Key (Water Temple)', 6) and state.has('Iron Boots') and (state.can_play('Zeldas Lullaby') or world.keysanity) and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and state.can_use('Longshot')) or (state.has('Small Key (Water Temple)', 5) and (item_name(state, 'Water Temple Boss Key Chest') == 'Small Key (Water Temple)' or not world.keys_placed))) #If key for key, this lets the logic reduce the small key reqs for every other locked door. set_rule(world.get_location('Water Temple Cracked Wall Chest'), lambda state: state.has_explosives()) set_rule(world.get_location('Water Temple Dark Link Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity)) - set_rule(world.get_location('Water Temple River Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and state.can_play('Song of Time') and state.has('Bow') and (state.can_play('Zeldas Lullaby') or world.keysanity)) + set_rule(world.get_location('Water Temple River Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and state.can_play('Song of Time') and state.has_bow() and (state.can_play('Zeldas Lullaby') or world.keysanity)) set_rule(world.get_location('Water Temple Central Pillar Chest'), lambda state: state.has_ZoraTunic()) - # Boss + # Boss set_rule(world.get_location('Morpha'), lambda state: state.has('Boss Key (Water Temple)') and state.can_use('Longshot')) - set_rule(world.get_location('Morpha Heart'), lambda state: state.has('Boss Key (Water Temple)') and state.can_use('Longshot')) + set_rule(world.get_location('Morpha Heart'), lambda state: state.has('Boss Key (Water Temple)') and state.can_use('Longshot') and state.has('Iron Boots')) # GS - set_rule(world.get_location('GS Water Temple South Basement'), lambda state: state.has_explosives() and state.can_play('Zeldas Lullaby')) + set_rule(world.get_location('GS Water Temple South Basement'), lambda state: state.has_explosives() and state.can_play('Zeldas Lullaby') and state.has('Iron Boots')) set_rule(world.get_location('GS Water Temple Serpent River'), lambda state: state.can_play('Song of Time') and state.has('Small Key (Water Temple)', 6)) set_rule(world.get_location('GS Water Temple Falling Platform Room'), lambda state: state.can_use('Longshot')) set_rule(world.get_location('GS Water Temple Central Room'), lambda state: state.can_use('Longshot') or state.can_use('Farores Wind')) - #5 keys would be better but it wouldn't be compatible with the key for key scenarios, 6 will be identical pre-keysanity. - set_rule(world.get_location('GS Water Temple Near Boss Key Chest'), lambda state: state.can_use('Longshot') and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and (state.can_play('Zeldas Lullaby') or world.keysanity) and state.has('Small Key (Water Temple)', 5)) + set_rule(world.get_location('GS Water Temple Near Boss Key Chest'), lambda state: state.can_use('Longshot') and state.has('Iron Boots') and (state.can_play('Zeldas Lullaby') or world.keysanity) and state.has('Small Key (Water Temple)', 5)) # Longshot just reaches without the need to actually go near -# MQ Water Temple -# Water Temple Freestanding Key: -# - There's an extra key in water temple because the door it was supposed to unlock shares a flag with something that it's required to do in order to reach the door in the first place. -# - This was fixed in OoT3D; these rules presume the door is removed. +# Water Temple MQ def dung_rules_wtmq(world): - set_rule(world.get_entrance('Water Temple Water Level Switch'), lambda state: state.can_play('Zeldas Lullaby')) - set_rule(world.get_entrance('Water Temple Locked Door'), lambda state: state.has('Small Key (Water Temple)') and state.can_use('Longshot')) + set_rule(world.get_entrance('Water Temple Water Level Switch'), lambda state: state.can_play('Zeldas Lullaby') and state.has('Iron Boots')) + set_rule(world.get_entrance('Water Temple Locked Door'), lambda state: state.has('Small Key (Water Temple)') and state.can_use('Longshot') and state.has('Iron Boots')) set_rule(world.get_entrance('Water Temple Basement Gates Switch'), lambda state: state.can_use('Dins Fire') and (state.has('Hover Boots') or state.has_ocarina())) - set_rule(world.get_location('Water Temple MQ Map Chest'), lambda state: state.has_fire_source()) - set_rule(world.get_location('Water Temple MQ Central Pillar Chest'), lambda state: state.has_ZoraTunic() and (state.can_use('Fire Arrows') or (state.can_use('Dins Fire') and state.can_play('Song of Time')))) - set_rule(world.get_location('Water Temple MQ Compass Chest'), lambda state: state.has('Bow') or state.can_use('Dins Fire')) + set_rule(world.get_location('Water Temple MQ Map Chest'), lambda state: state.has_fire_source() and state.has('Iron Boots')) + set_rule(world.get_location('Water Temple MQ Central Pillar Chest'), lambda state: state.has_ZoraTunic() and state.has('Iron Boots') and (state.can_use('Fire Arrows') or (state.can_use('Dins Fire') and state.can_play('Song of Time')))) + set_rule(world.get_location('Water Temple MQ Compass Chest'), lambda state: state.has_bow() or state.can_use('Dins Fire')) set_rule(world.get_location('Water Temple MQ Boss Key Chest'), lambda state: state.can_use('Dins Fire')) # Boss set_rule(world.get_location('Morpha'), lambda state: state.has('Boss Key (Water Temple)') and state.can_use('Longshot')) - set_rule(world.get_location('Morpha Heart'), lambda state: state.has('Boss Key (Water Temple)') and state.can_use('Longshot')) + set_rule(world.get_location('Morpha Heart'), lambda state: state.has('Boss Key (Water Temple)') and state.can_use('Longshot') and state.has('Iron Boots')) # GS set_rule(world.get_location('GS Water Temple MQ Lizalfos Hallway'), lambda state: state.can_use('Dins Fire')) set_rule(world.get_location('GS Water Temple MQ Before Upper Water Switch'), lambda state: state.can_use('Longshot')) set_rule(world.get_location('GS Water Temple MQ South Basement'), lambda state: state.can_use('Fire Arrows')) + set_rule(world.get_location('GS Water Temple MQ North Basement'), lambda state: state.has('Small Key (Water Temple)', 2) or ((item_name(state, 'GS Water Temple MQ North Basement') == 'Small Key (Water Temple)' or not world.keys_placed) and state.has('Small Key (Water Temple)'))) # Spirit Temple Vanilla def dung_rules_spt0(world): @@ -559,56 +654,50 @@ def dung_rules_spt0(world): set_rule(world.get_entrance('Adult Spirit Temple Passthrough'), lambda state: state.has('Small Key (Spirit Temple)', 1)) set_rule(world.get_entrance('Spirit Temple Central Locked Door'), lambda state: state.has('Small Key (Spirit Temple)', 4) and state.can_use('Silver Gauntlets')) set_rule(world.get_entrance('Spirit Temple Final Locked Door'), lambda state: state.has('Small Key (Spirit Temple)', 5) and state.has_projectile('adult')) - set_rule(world.get_location('Spirit Temple Child Left Chest'), lambda state: state.has('Boomerang') or state.has('Slingshot') or state.has_bombchus()) - set_rule(world.get_location('Spirit Temple Child Right Chest'), lambda state: state.has('Boomerang') or state.has('Slingshot') or state.has_bombchus()) + set_rule(world.get_location('Spirit Temple Child Left Chest'), lambda state: (state.has('Boomerang') or state.has_slingshot() or (state.has_bombchus() and world.logic_tricks)) and (state.has_sticks() or state.has_explosives() or ((state.has_nuts() or state.has('Boomerang')) and (state.has('Kokiri Sword') or state.has_slingshot())))) + set_rule(world.get_location('Spirit Temple Child Right Chest'), lambda state: (state.has('Boomerang') or state.has_slingshot() or (state.has_bombchus() and world.logic_tricks)) and (state.has_sticks() or state.has_explosives() or ((state.has_nuts() or state.has('Boomerang')) and (state.has('Kokiri Sword') or state.has_slingshot()))) and (state.has_sticks() or state.can_use('Dins Fire'))) set_rule(world.get_location('Spirit Temple Compass Chest'), lambda state: state.has('Progressive Hookshot') and state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('Spirit Temple Early Adult Right Chest'), lambda state: state.has('Bow') or state.has('Progressive Hookshot') or state.has_bombchus()) #requires a very specific Bombchu use, Hover Boots can be skipped by jumping on top of the rolling rock. + set_rule(world.get_location('Spirit Temple Early Adult Right Chest'), lambda state: state.has_bow() or state.has('Progressive Hookshot') or state.has_bombchus()) #requires a very specific Bombchu use, Hover Boots can be skipped by jumping on top of the rolling rock. set_rule(world.get_location('Spirit Temple First Mirror Right Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3)) set_rule(world.get_location('Spirit Temple First Mirror Left Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3)) - set_rule(world.get_location('Spirit Temple Map Chest'), lambda state: ((state.has_explosives() or state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and world.bombchus_in_logic)) and state.can_use('Magic Meter') and (state.has('Dins Fire') or (state.has('Fire Arrows') and state.has('Bow')))) or (state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit'))) + # All of these paths that include a check for bombchus_in_logic need to ensure that you have access to bombchu refills as well. That's currently always true thanks to bombchu bowling. But other the sources require bombchus already to be bought, which is not how we'd need it to work if bombchu refills were suddenly to become more scarce. So for now I opted not to put in the check for bombchu refills. + set_rule(world.get_location('Spirit Temple Map Chest'), lambda state: ((state.has_explosives() or state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and world.bombchus_in_logic)) and state.has('Magic Meter') and (state.has('Dins Fire') or (state.has('Fire Arrows') and state.has_bow() and state.has_sticks()))) or (state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit') and state.has_sticks()) or (state.has('Small Key (Spirit Temple)', 3) and state.can_use('Fire Arrows') and state.can_use('Silver Gauntlets'))) set_rule(world.get_location('Spirit Temple Child Climb East Chest'), lambda state: state.has_projectile('both') or ((state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and world.bombchus_in_logic)) and state.can_use('Silver Gauntlets') and state.has_projectile('adult')) or (state.has('Small Key (Spirit Temple)', 5) and state.can_play('Requiem of Spirit') and state.has_projectile('child'))) set_rule(world.get_location('Spirit Temple Child Climb North Chest'), lambda state: state.has_projectile('both') or ((state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and world.bombchus_in_logic)) and state.can_use('Silver Gauntlets') and state.has_projectile('adult')) or (state.has('Small Key (Spirit Temple)', 5) and state.can_play('Requiem of Spirit') and state.has_projectile('child'))) - set_rule(world.get_location('Spirit Temple Sun Block Room Chest'), lambda state: ((state.has_explosives() or state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and world.bombchus_in_logic)) and state.has('Magic Meter') and (state.has('Dins Fire') or (state.has('Fire Arrows') and state.has('Bow')))) or (state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit'))) + set_rule(world.get_location('Spirit Temple Sun Block Room Chest'), lambda state: ((state.has_explosives() or state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and world.bombchus_in_logic)) and state.has('Magic Meter') and (state.has('Dins Fire') or (state.has('Fire Arrows') and state.has_bow() and state.has_sticks()))) or (state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit') and state.has_sticks()) or (state.has('Small Key (Spirit Temple)', 3) and state.can_use('Fire Arrows') and state.can_use('Silver Gauntlets'))) set_rule(world.get_location('Spirit Temple Statue Hand Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3) and state.can_use('Silver Gauntlets') and state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('Spirit Temple NE Main Room Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3) and state.can_use('Silver Gauntlets') and state.can_play('Zeldas Lullaby') and (state.has('Progressive Hookshot') or state.has("Hover Boots"))) + set_rule(world.get_location('Spirit Temple NE Main Room Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3) and state.can_use('Silver Gauntlets') and state.can_play('Zeldas Lullaby') and (state.has('Progressive Hookshot') or state.has('Hover Boots'))) set_rule(world.get_location('Mirror Shield Chest'), lambda state: state.has('Small Key (Spirit Temple)', 4) and state.can_use('Silver Gauntlets') and state.has_explosives()) set_rule(world.get_location('Silver Gauntlets Chest'), lambda state: (state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Hookshot', 2) and state.has_explosives()) or state.has('Small Key (Spirit Temple)', 5)) set_rule(world.get_location('Spirit Temple Near Four Armos Chest'), lambda state: state.has('Mirror Shield') and state.has_explosives()) set_rule(world.get_location('Spirit Temple Hallway Left Invisible Chest'), lambda state: state.can_see_with_lens() and state.has_explosives()) set_rule(world.get_location('Spirit Temple Hallway Right Invisible Chest'), lambda state: state.can_see_with_lens() and state.has_explosives()) - set_rule(world.get_location('Spirit Temple Boss Key Chest'), lambda state: state.can_play('Zeldas Lullaby') and state.has('Bow') and state.has('Progressive Hookshot') and state.can_blast_or_smash()) + set_rule(world.get_location('Spirit Temple Boss Key Chest'), lambda state: state.can_play('Zeldas Lullaby') and state.has_bow() and state.has('Progressive Hookshot') and state.can_blast_or_smash()) set_rule(world.get_location('Spirit Temple Topmost Chest'), lambda state: state.has('Mirror Shield')) # Boss set_rule(world.get_location('Twinrova'), lambda state: state.has('Mirror Shield') and state.has_explosives() and state.has('Progressive Hookshot') and state.has('Boss Key (Spirit Temple)')) set_rule(world.get_location('Twinrova Heart'), lambda state: state.has('Mirror Shield') and state.has_explosives() and state.has('Progressive Hookshot') and state.has('Boss Key (Spirit Temple)')) - # GS - set_rule(world.get_location('GS Spirit Temple Metal Fence'), lambda state: state.has('Boomerang') or state.has('Slingshot') or state.has_bombchus()) - set_rule(world.get_location('GS Spirit Temple Hall to West Iron Knuckle'), lambda state: (state.has_explosives() and state.has('Boomerang') and state.has('Progressive Hookshot')) or (state.has('Boomerang') and state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit')) or (state.has('Progressive Hookshot') and state.has('Progressive Strength Upgrade', 2) and state.is_adult() and (state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and state.has('Boomerang') and world.bombchus_in_logic)))) - set_rule(world.get_location('GS Spirit Temple Boulder Room'), lambda state: state.can_play('Song of Time') and (state.has('Bow') or state.has('Progressive Hookshot') or state.has_bombchus())) - set_rule(world.get_location('GS Spirit Temple Lobby'), lambda state: state.can_use('Silver Gauntlets') and state.has('Small Key (Spirit Temple)', 3) and (state.can_use('Longshot') or (state.can_use('Scarecrow') or state.has('Hover Boots')))) + # GS + set_rule(world.get_location('GS Spirit Temple Metal Fence'), lambda state: (state.has('Boomerang') or state.has_slingshot() or (state.has_bombchus() and world.logic_tricks)) and (state.has_sticks() or state.has_explosives() or ((state.has_nuts() or state.has('Boomerang')) and (state.has('Kokiri Sword') or state.has_slingshot())))) + set_rule(world.get_location('GS Spirit Temple Hall to West Iron Knuckle'), lambda state: (state.has_explosives() and state.has('Boomerang') and state.has('Progressive Hookshot')) or (state.has('Boomerang') and state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit')) or (state.has('Progressive Hookshot') and state.can_use('Silver Gauntlets') and (state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and state.has('Boomerang') and world.bombchus_in_logic)))) + set_rule(world.get_location('GS Spirit Temple Boulder Room'), lambda state: state.can_play('Song of Time') and (state.has_bow() or state.has('Progressive Hookshot') or state.has_bombchus())) + set_rule(world.get_location('GS Spirit Temple Lobby'), lambda state: state.can_use('Silver Gauntlets') and state.has('Small Key (Spirit Temple)', 3) and (state.can_use('Longshot') or state.can_use('Scarecrow') or state.has('Hover Boots'))) + set_rule(world.get_location('GS Spirit Temple Bomb for Light Room'), lambda state: state.can_child_attack() or ((state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and world.bombchus_in_logic)) and state.can_use('Silver Gauntlets'))) # Spirit Temple MQ -# "Quirks to Know": -# Spirit Temple Sun Block Room: -# - The switch to enter this room can be reached as adult with the Hover Boots, not just with Song of Time. -# GS Spirit Temple Sun Block Room: -# - You can get the GS with Boomerang. You do have to stand in about the right spot. -# Spirit Temple Silver Block Hallway Chest: -# - In the vanilla game, this eye switch gets permanently blocked off after the silver block is pushed. The logic assumes this will be changed to a temp flag. -# - You can thaw the eye switch and get this door open with Fire Arrows as adult, by the way. -# - It can also be done with bow but the only place you can get a line of sight is with the Song of Time. The shot is a little bit precise. def dung_rules_sptmq(world): set_rule(world.get_entrance('Spirit Temple Crawl Passage'), lambda state: state.can_play('Requiem of Spirit')) set_rule(world.get_entrance('Spirit Temple Ceiling Passage'), lambda state: state.has_bombchus() and state.can_use('Longshot') and state.can_use('Silver Gauntlets')) set_rule(world.get_entrance('Child Spirit Temple to Shared'), lambda state: state.has_bombchus() and state.has('Small Key (Spirit Temple)', 2)) set_rule(world.get_entrance('Adult Spirit Temple Descent'), lambda state: state.can_use('Fire Arrows') and state.has('Mirror Shield')) set_rule(world.get_entrance('Spirit Temple Climbable Wall'), lambda state: state.has('Small Key (Spirit Temple)', 6) and state.can_play('Zeldas Lullaby') and state.has('Hammer')) - set_rule(world.get_location('Spirit Temple MQ Entrance Back Left Chest'), lambda state: state.can_blast_or_smash() and ((state.can_play('Requiem of Spirit') and state.has('Slingshot')) or state.can_use('Bow'))) - set_rule(world.get_location('Spirit Temple MQ Entrance Back Right Chest'), lambda state: state.has_bombchus() or ((state.is_adult() and (state.has('Bow') or state.has('Progressive Hookshot'))) or (state.can_play('Requiem of Spirit') and (state.has('Slingshot') or state.has('Boomerang'))))) - set_rule(world.get_location('Spirit Temple MQ Child Left Chest'), lambda state: state.has_bombchus() and state.has('Slingshot') and state.can_use('Dins Fire')) - set_rule(world.get_location('Spirit Temple MQ Silver Block Hallway Chest'), lambda state: state.has_bombchus() and state.has('Small Key (Spirit Temple)', 7) and state.has('Slingshot') and (state.can_use('Dins Fire') or (state.can_use('Longshot') and state.can_use('Silver Gauntlets') and state.has('Bow') and (state.can_use('Fire Arrows') or state.can_play('Song of Time'))))) + set_rule(world.get_location('Spirit Temple MQ Entrance Back Left Chest'), lambda state: state.can_blast_or_smash() and ((state.can_play('Requiem of Spirit') and state.has_slingshot()) or state.can_use('Bow'))) + set_rule(world.get_location('Spirit Temple MQ Entrance Back Right Chest'), lambda state: state.has_bombchus() or state.can_use('Bow') or state.can_use('Hookshot') or (state.can_play('Requiem of Spirit') and (state.has_slingshot() or state.has('Boomerang')))) + set_rule(world.get_location('Spirit Temple MQ Map Chest'), lambda state: state.has_sticks() or state.has('Kokiri Sword') or state.has_explosives()) + set_rule(world.get_location('Spirit Temple MQ Child Left Chest'), lambda state: (state.has_sticks() or state.has('Kokiri Sword')) and state.has_bombchus() and state.has_slingshot() and state.can_use('Dins Fire')) + set_rule(world.get_location('Spirit Temple MQ Silver Block Hallway Chest'), lambda state: state.has_bombchus() and state.has('Small Key (Spirit Temple)', 7) and state.has_slingshot() and (state.can_use('Dins Fire') or (state.can_use('Longshot') and state.can_use('Silver Gauntlets') and (state.can_use('Fire Arrows') or (world.logic_tricks and state.has_bow() and state.can_play('Song of Time')))))) set_rule(world.get_location('Spirit Temple MQ Child Center Chest'), lambda state: state.has('Small Key (Spirit Temple)', 7) and state.has('Hammer') and state.can_play('Requiem of Spirit')) set_rule(world.get_location('Spirit Temple MQ Child Climb South Chest'), lambda state: state.has('Small Key (Spirit Temple)', 7)) set_rule(world.get_location('Spirit Temple MQ Lower NE Main Room Chest'), lambda state: state.can_play('Zelda Lullaby')) @@ -620,9 +709,9 @@ def dung_rules_sptmq(world): set_rule(world.get_location('Spirit Temple MQ Entrance Front Right Chest'), lambda state: state.has('Hammer')) set_rule(world.get_location('Spirit Temple MQ Lower Adult Right Chest'), lambda state: state.has('Small Key (Spirit Temple)', 7) and state.has('Hammer') and state.has_ocarina() and state.has('Song of Time') and state.has('Eponas Song') and state.has('Suns Song') and state.has('Song of Storms') and state.has('Zeldas Lullaby')) set_rule(world.get_location('Spirit Temple MQ Child Climb North Chest'), lambda state: state.has('Small Key (Spirit Temple)', 6)) - set_rule(world.get_location('Spirit Temple MQ Compass Chest'), lambda state: (state.can_play('Requiem of Spirit') and state.has('Small Key (Spirit Temple)', 7) and state.has('Slingshot')) or (state.can_use('Longshot') and state.can_use('Silver Gauntlets') and state.has('Bow')) or (state.has('Slingshot') and state.has('Bow'))) - set_rule(world.get_location('Spirit Temple MQ Sun Block Room Chest'), lambda state: state.can_play('Song of Time') or (state.can_use('Longshot') and state.can_use('Silver Gauntlets') and state.has('Hover Boots'))) - set_rule(world.get_entrance('Silver Gauntlets Exit'), lambda state: (state.has('Small Key (Spirit Temple)', 7) and ((state.can_play('Requiem of Spirit') and state.can_play('Song of Time')) or (state.can_use('Longshot') and state.can_use('Silver Gauntlets') and (state.has('Hover Boots') or state.can_play('Song of Time'))))) or (state.has('Small Key (Spirit Temple)', 4) and state.can_play('Song of Time') and state.can_see_with_lens())) + set_rule(world.get_location('Spirit Temple MQ Compass Chest'), lambda state: (state.can_play('Requiem of Spirit') and state.has('Small Key (Spirit Temple)', 7) and state.has_slingshot()) or (state.can_use('Longshot') and state.can_use('Silver Gauntlets') and state.has_bow()) or (state.has_slingshot() and state.has_bow())) + set_rule(world.get_location('Spirit Temple MQ Sun Block Room Chest'), lambda state: state.can_play('Song of Time') or (state.can_use('Longshot') and state.can_use('Silver Gauntlets'))) + set_rule(world.get_entrance('Silver Gauntlets Exit'), lambda state: (state.has('Small Key (Spirit Temple)', 7) and (state.can_play('Song of Time') or (state.can_use('Longshot') and state.can_use('Silver Gauntlets')))) or (state.has('Small Key (Spirit Temple)', 4) and state.can_play('Song of Time') and state.can_see_with_lens())) set_rule(world.get_location('Spirit Temple MQ Mirror Puzzle Invisible Chest'), lambda state: state.can_see_with_lens()) # Boss @@ -631,7 +720,6 @@ def dung_rules_sptmq(world): # GS set_rule(world.get_location('GS Spirit Temple MQ Lower Adult Right'), lambda state: state.has('Small Key (Spirit Temple)', 7) and state.has('Hammer') and state.has_ocarina() and state.has('Song of Time') and state.has('Eponas Song') and state.has('Suns Song') and state.has('Song of Storms') and state.has('Zeldas Lullaby')) - set_rule(world.get_location('GS Spirit Temple MQ Sun Block Room'), lambda state: (state.can_use('Longshot') and state.can_use('Silver Gauntlets') and (state.has('Hover Boots') or state.can_play('Song of Time'))) or (state.can_play('Song of Time') and state.has('Boomerang'))) set_rule(world.get_location('GS Spirit Temple MQ Iron Knuckle West'), lambda state: state.has('Small Key (Spirit Temple)', 7)) set_rule(world.get_location('GS Spirit Temple MQ Iron Knuckle North'), lambda state: state.has('Small Key (Spirit Temple)', 7)) @@ -644,7 +732,7 @@ def dung_rules_sht0(world): set_rule(world.get_location('Shadow Temple Falling Spikes Upper Chest'), lambda state: state.has('Progressive Strength Upgrade')) set_rule(world.get_location('Shadow Temple Falling Spikes Switch Chest'), lambda state: state.has('Progressive Strength Upgrade')) set_rule(world.get_location('Shadow Temple Invisible Spikes Chest'), lambda state: state.has('Small Key (Shadow Temple)', 2)) - set_rule(world.get_location('Shadow Temple Freestanding Key'), lambda state: state.has('Small Key (Shadow Temple)', 2) and state.has('Progressive Hookshot') and (state.has('Bomb Bag') or state.has('Progressive Strength Upgrade'))) + set_rule(world.get_location('Shadow Temple Freestanding Key'), lambda state: state.has('Small Key (Shadow Temple)', 2) and state.has('Progressive Hookshot') and (state.has_bombs() or state.has('Progressive Strength Upgrade'))) # Boss set_rule(world.get_location('Bongo Bongo'), lambda state: state.has('Small Key (Shadow Temple)', 5) and (state.has('Bow') or state.can_use('Distant Scarecrow')) and state.has('Boss Key (Shadow Temple)')) @@ -657,23 +745,14 @@ def dung_rules_sht0(world): set_rule(world.get_location('GS Shadow Temple Near Ship'), lambda state: state.can_use('Longshot') and state.has('Small Key (Shadow Temple)', 4)) # Shadow Temple MQ -# "Quirks to Know": -# GS Shadow Temple After Ship: -# - You do not need to bring down the statue to get this. -# - If you position carefully you can get it with just the hookshot. Hopefully you don't fall in! -# Shadow Temple Bomb Flower Room Chest: -# - With lens logic off, you may have to fight this guy not knowing where he is. -# - Dins can set off all the flowers, then a few bombs can maybe hit the few spots in the room that doesn't reach. -# - And arrows can help too if you run out of magic. And maybe you'll have strength a fair amount of the time. -# - So I think if you're really playing with lens logic off, you should be able to handle this. def dung_rules_shtmq(world): - set_rule(world.get_entrance('Shadow Temple First Pit'), lambda state: (state.has('Fire Arrows') and state.has('Bow')) or state.has('Hover Boots')) + set_rule(world.get_entrance('Shadow Temple First Pit'), lambda state: state.can_use('Fire Arrows') or state.has('Hover Boots')) set_rule(world.get_entrance('Shadow Temple Beginning Locked Door'), lambda state: state.has_explosives() and state.has('Small Key (Shadow Temple)', 6)) set_rule(world.get_entrance('Shadow Temple Bomb Wall'), lambda state: state.has_explosives() and state.has('Small Key (Shadow Temple)', 2)) set_rule(world.get_entrance('Shadow Temple Hookshot Target'), lambda state: state.has('Hover Boots') and state.has('Progressive Hookshot') and state.has('Small Key (Shadow Temple)', 4)) set_rule(world.get_entrance('Shadow Temple Boat'), lambda state: state.can_play('Zeldas Lullaby') and state.has('Small Key (Shadow Temple)', 5)) - set_rule(world.get_entrance('Shadow Temple Longshot Target'), lambda state: state.has('Bow') and state.can_play('Song of Time') and state.can_use('Longshot')) - set_rule(world.get_location('Shadow Temple MQ Hover Boots Chest'), lambda state: state.can_play('Song of Time') and state.has('Bow')) + set_rule(world.get_entrance('Shadow Temple Longshot Target'), lambda state: state.has_bow() and state.can_play('Song of Time') and state.can_use('Longshot')) + set_rule(world.get_location('Shadow Temple MQ Hover Boots Chest'), lambda state: state.can_play('Song of Time') and state.has_bow()) set_rule(world.get_location('Shadow Temple MQ Invisible Blades Visible Chest'), lambda state: state.can_play('Song of Time')) set_rule(world.get_location('Shadow Temple MQ Invisible Blades Invisible Chest'), lambda state: state.can_play('Song of Time')) set_rule(world.get_location('Shadow Temple MQ Beamos Silver Rupees Chest'), lambda state: state.can_use('Longshot')) @@ -685,12 +764,12 @@ def dung_rules_shtmq(world): set_rule(world.get_location('Shadow Temple MQ Boss Key Chest'), lambda state: state.has('Small Key (Shadow Temple)', 6)) # Boss - set_rule(world.get_location('Bongo Bongo'), lambda state: state.has('Bow') and state.has('Boss Key (Shadow Temple)')) - set_rule(world.get_location('Bongo Bongo Heart'), lambda state: state.has('Bow') and state.has('Boss Key (Shadow Temple)')) + set_rule(world.get_location('Bongo Bongo'), lambda state: state.has_bow() and state.has('Boss Key (Shadow Temple)')) + set_rule(world.get_location('Bongo Bongo Heart'), lambda state: state.has_bow() and state.has('Boss Key (Shadow Temple)')) # GS set_rule(world.get_location('GS Shadow Temple MQ Crusher Room'), lambda state: state.has('Progressive Hookshot')) - set_rule(world.get_location('GS Shadow Temple MQ Near Boss'), lambda state: state.has('Bow')) + set_rule(world.get_location('GS Shadow Temple MQ Near Boss'), lambda state: state.has_bow()) # Bottom of the Well Vanilla @@ -701,13 +780,14 @@ def dung_rules_bw0(world): set_rule(world.get_location('Bottom of the Well Center Large Chest'), lambda state: state.can_see_with_lens()) set_rule(world.get_location('Bottom of the Well Center Small Chest'), lambda state: state.can_see_with_lens()) set_rule(world.get_location('Bottom of the Well Back Left Bombable'), lambda state: state.has_explosives()) - set_rule(world.get_location('Bottom of the Well Defeat Boss'), lambda state: state.can_play('Zeldas Lullaby') and (state.has('Kokiri Sword') or world.logic_child_deadhand)) #Sword not strictly necessary but frankly being forced to do this with sticks isn't fair + set_rule(world.get_location('Bottom of the Well Defeat Boss'), lambda state: state.can_play('Zeldas Lullaby') and (state.has('Kokiri Sword') or (state.has_sticks() and world.logic_child_deadhand))) #Sword not strictly necessary but frankly being forced to do this with sticks isn't fair set_rule(world.get_location('Bottom of the Well Invisible Chest'), lambda state: state.can_play('Zeldas Lullaby') and state.can_see_with_lens()) set_rule(world.get_location('Bottom of the Well Underwater Front Chest'), lambda state: state.can_play('Zeldas Lullaby')) set_rule(world.get_location('Bottom of the Well Underwater Left Chest'), lambda state: state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('Bottom of the Well Basement Chest'), lambda state: state.has_explosives() or (((state.has('Small Key (Bottom of the Well)', 3) and state.can_see_with_lens()) or state.can_use('Dins Fire')) and state.has('Progressive Strength Upgrade'))) + set_rule(world.get_location('Bottom of the Well Basement Chest'), lambda state: state.has_explosives() or (((state.has('Small Key (Bottom of the Well)', 3) and state.can_see_with_lens()) or state.can_use('Dins Fire') or (world.logic_tricks and state.has_sticks())) and state.has('Progressive Strength Upgrade'))) set_rule(world.get_location('Bottom of the Well Locked Pits'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.can_see_with_lens()) #These pits are really unfair. set_rule(world.get_location('Bottom of the Well Behind Right Grate'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.can_see_with_lens()) + set_rule(world.get_location('Bottom of the Well Freestanding Key'), lambda state: state.has_sticks() or state.can_use('Dins Fire')) # GS set_always_allow(world.get_location('GS Well West Inner Room'), lambda item, state: item.name == 'Small Key (Bottom of the Well)') @@ -717,23 +797,19 @@ def dung_rules_bw0(world): set_rule(world.get_location('GS Well Like Like Cage'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang') and state.can_see_with_lens()) # Bottom of the Well MQ -# "Quirks to Know": -# Water Lowering Switch: -# - You can jumpslash this switch by jumping off with a Deku Stick, so no requirements need to be listed to lower the water. -# Switch for West Inner Room Door: -# - Explosives are not required to reach this switch. You can sidehop or backflip over the corner of the pit. def dung_rules_bwmq(world): - set_rule(world.get_location('Bottom of the Well MQ Compass Chest'), lambda state: state.has('Kokiri Sword') or world.logic_child_deadhand) + set_rule(world.get_location('Bottom of the Well MQ Compass Chest'), lambda state: state.has('Kokiri Sword') or (state.has_sticks() and world.logic_child_deadhand)) set_rule(world.get_location('Bottom of the Well MQ Dead Hand Freestanding Key'), lambda state: state.has_explosives()) - set_rule(world.get_location('Bottom of the Well MQ Map Chest'), lambda state: state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('Bottom of the Well MQ East Inner Room Freestanding Key'), lambda state: state.can_play('Zeldas Lullaby') and state.has_projectile('child')) + set_rule(world.get_location('Bottom of the Well MQ Map Chest'), lambda state: state.can_play('Zeldas Lullaby') or state.has_explosives()) + set_rule(world.get_location('Bottom of the Well MQ East Inner Room Freestanding Key'), lambda state: state.can_play('Zeldas Lullaby') or state.has_explosives()) set_always_allow(world.get_location('Bottom of the Well MQ Lens Chest'), lambda item, state: item.name == 'Small Key (Bottom of the Well)') - set_rule(world.get_location('Bottom of the Well MQ Lens Chest'), lambda state: state.can_play('Zeldas Lullaby') and state.has_explosives() and (state.has('Small Key (Bottom of the Well)', 2) or item_name(state, 'Bottom of the Well MQ Lens Chest') == 'Small Key (Bottom of the Well)')) + set_rule(world.get_location('Bottom of the Well MQ Lens Chest'), lambda state: state.has_explosives() and (state.has('Small Key (Bottom of the Well)', 2) or item_name(state, 'Bottom of the Well MQ Lens Chest') == 'Small Key (Bottom of the Well)')) # GS - set_rule(world.get_location('GS Well MQ West Inner Room'), lambda state: state.can_play('Zeldas Lullaby') and state.can_see_with_lens()) + set_rule(world.get_location('GS Well MQ Basement'), lambda state: state.can_child_attack()) + set_rule(world.get_location('GS Well MQ West Inner Room'), lambda state: state.can_child_attack() and (state.can_play('Zeldas Lullaby') or state.has_explosives()) and state.can_see_with_lens()) set_always_allow(world.get_location('GS Well MQ Coffin Room'), lambda item, state: item.name == 'Small Key (Bottom of the Well)') - set_rule(world.get_location('GS Well MQ Coffin Room'), lambda state: state.has('Small Key (Bottom of the Well)', 2) or item_name(state, 'GS Well MQ Coffin Room') == 'Small Key (Bottom of the Well)') + set_rule(world.get_location('GS Well MQ Coffin Room'), lambda state: state.can_child_attack() and (state.has('Small Key (Bottom of the Well)', 2) or item_name(state, 'GS Well MQ Coffin Room') == 'Small Key (Bottom of the Well)')) # Ice Cavern Vanilla def dung_rules_ic0(world): @@ -743,19 +819,14 @@ def dung_rules_ic0(world): set_rule(world.get_location('Ice Cavern Iron Boots Chest'), lambda state: state.has_bottle()) set_rule(world.get_location('Sheik in Ice Cavern'), lambda state: state.has_bottle() and state.is_adult()) - # GS + # GS set_rule(world.get_location('GS Ice Cavern Spinning Scythe Room'), lambda state: state.can_use('Hookshot')) set_rule(world.get_location('GS Ice Cavern Heart Piece Room'), lambda state: state.can_use('Hookshot') and state.has_bottle()) set_rule(world.get_location('GS Ice Cavern Push Block Room'), lambda state: state.can_use('Hookshot') and state.has_bottle()) # Ice Cavern MQ -# The rule exists on the entrance to avoid needing to change Blue Fire checks elsewhere. -# "Quirks to Know": -# GS Ice Cavern Scarecrow: -# - You can use the hover boots to get onto one of the taller pillars, and from there you can Longshot to the GS. -# - This skips the Ocarina requirement and is only relevant if Hover Boots into Zora's Domain is in logic. def dung_rules_icmq(world): - set_rule(world.get_entrance('Ice Cavern Entrance'), lambda state: state.has_bottle() and state.has_projectile('adult')) + set_rule(world.get_entrance('Ice Cavern Entrance'), lambda state: state.has_bottle()) set_rule(world.get_location('Ice Cavern MQ Freestanding PoH'), lambda state: state.has_explosives()) # GS @@ -768,8 +839,8 @@ def dung_rules_gtg0(world): set_rule(world.get_entrance('Gerudo Training Ground Beamos'), lambda state: state.has_explosives()) set_rule(world.get_entrance('Gerudo Training Grounds Right Locked Doors'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 9)) set_rule(world.get_entrance('Gerudo Training Grounds Maze Ledge'), lambda state: state.can_play('Song of Time')) - set_rule(world.get_entrance('Gerudo Training Grounds Right Hookshot Target'), lambda state: state.can_use('Progressive Hookshot')) - set_rule(world.get_entrance('Gerudo Training Grounds Hammer Target'), lambda state: state.can_use('Hammer') and state.has('Bow')) + set_rule(world.get_entrance('Gerudo Training Grounds Right Hookshot Target'), lambda state: state.can_use('Hookshot')) + set_rule(world.get_entrance('Gerudo Training Grounds Hammer Target'), lambda state: state.can_use('Hammer') and state.has_bow()) set_rule(world.get_entrance('Gerudo Training Grounds Hidden Hookshot Target'), lambda state: state.can_use('Hookshot') and state.can_see_with_lens()) set_rule(world.get_location('Gerudo Training Grounds Lobby Left Chest'), lambda state: state.can_use('Bow')) set_rule(world.get_location('Gerudo Training Grounds Lobby Right Chest'), lambda state: state.can_use('Bow')) @@ -792,15 +863,15 @@ def dung_rules_gtg0(world): # Gerudo Training Grounds MQ def dung_rules_gtgmq(world): set_rule(world.get_entrance('Gerudo Training Grounds Left Door'), lambda state: state.has_fire_source()) - set_rule(world.get_entrance('Gerudo Training Grounds Right Door'), lambda state: state.has('Bow')) + set_rule(world.get_entrance('Gerudo Training Grounds Right Door'), lambda state: state.has_bow()) set_rule(world.get_entrance('Gerudo Training Grounds Longshot Target'), lambda state: state.can_use('Longshot')) set_rule(world.get_entrance('Gerudo Training Grounds Song of Time Block'), lambda state: state.can_play('Song of Time') and state.can_see_with_lens() and state.has_bottle()) set_rule(world.get_entrance('Gerudo Training Grounds Rusted Switch'), lambda state: state.has('Hammer')) set_rule(world.get_location('Gerudo Training Grounds MQ Hidden Ceiling Chest'), lambda state: state.can_see_with_lens()) set_rule(world.get_location('Gerudo Training Grounds MQ Maze Path Third Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 1)) - set_rule(world.get_location('Gerudo Training Grounds MQ Underwater Silver Rupee Chest'), lambda state: state.has('Hover Boots') and state.has_fire_source() and state.has('Progressive Hookshot') and state.has('Iron Boots') and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic()) and ((world.difficulty != 'ohko') or state.has_bottle() or state.can_use('Nayrus Love'))) - set_rule(world.get_location('Gerudo Training Grounds MQ Heavy Block Chest'), lambda state: state.has('Progressive Strength Upgrade', 2)) - set_rule(world.get_location('Gerudo Training Grounds MQ Eye Statue Chest'), lambda state: state.has('Bow')) + set_rule(world.get_location('Gerudo Training Grounds MQ Underwater Silver Rupee Chest'), lambda state: (state.has('Hover Boots') or state.can_reach('Gerudo Training Grounds Central Maze Right')) and state.has_fire_source() and state.has('Iron Boots') and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic()) and (world.difficulty != 'ohko' or (state.has_bottle() or state.can_use('Nayrus Love')))) + set_rule(world.get_location('Gerudo Training Grounds MQ Heavy Block Chest'), lambda state: state.can_use('Silver Gauntlets')) + set_rule(world.get_location('Gerudo Training Grounds MQ Eye Statue Chest'), lambda state: state.has_bow()) set_rule(world.get_location('Gerudo Training Grounds MQ Ice Arrows Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 3) or (item_name(state, 'Gerudo Training Grounds MQ Ice Arrows Chest') == 'Small Key (Gerudo Training Grounds)' and state.has('Small Key (Gerudo Training Grounds)'))) set_always_allow(world.get_location('Gerudo Training Grounds MQ Ice Arrows Chest'), lambda item, state: item.name == 'Small Key (Gerudo Training Grounds)') # There is Blue Fire in GTG. I also had to make this edit to the same check in baseclasses. @@ -822,27 +893,23 @@ def dung_rules_gc0(world): set_rule(world.get_location('Ganons Castle Light Trial Clear'), lambda state: state.can_use('Light Arrows') and state.has('Progressive Hookshot') and state.has('Small Key (Ganons Castle)', 2)) set_rule(world.get_location('Ganons Castle Light Trail Invisible Enemies Chest'), lambda state: state.can_see_with_lens()) set_rule(world.get_location('Ganons Castle Light Trial Lullaby Chest'), lambda state: state.can_play('Zeldas Lullaby') and state.has('Small Key (Ganons Castle)', 1)) + # Ganon's Castle MQ -# MQ Ganons Castle -# "Quirks to Know": -# Ganons Castle Shadow Trial First Chest: -# - You can spawn this chest with strength but you have to make sure the bombflower explodes in about the same position it spawns in. -# Just in general I want to say if there's a silver rupee inside a Beamos, you can just brush the Beamos to get it. That comes up a few times, but this trial without explosives can get a little hairy. def dung_rules_gcmq(world): set_rule(world.get_entrance('Ganons Castle Light Trial'), lambda state: state.can_use('Golden Gauntlets')) set_rule(world.get_entrance('Ganons Castle Tower'), lambda state: (world.skipped_trials['Forest'] or state.has('Forest Trial Clear')) and (world.skipped_trials['Fire'] or state.has('Fire Trial Clear')) and (world.skipped_trials['Water'] or state.has('Water Trial Clear')) and (world.skipped_trials['Shadow'] or state.has('Shadow Trial Clear')) and (world.skipped_trials['Spirit'] or state.has('Spirit Trial Clear')) and (world.skipped_trials['Light'] or state.has('Light Trial Clear'))) - set_rule(world.get_location('Ganons Castle MQ Forest Trial First Chest'), lambda state: state.has('Bow')) + set_rule(world.get_location('Ganons Castle MQ Forest Trial First Chest'), lambda state: state.has_bow()) set_rule(world.get_location('Ganons Castle MQ Forest Trial Second Chest'), lambda state: state.has_fire_source()) set_rule(world.get_location('Ganons Castle MQ Forest Trial Freestanding Key'), lambda state: state.has('Progressive Hookshot')) set_rule(world.get_location('Ganons Castle Forest Trial Clear'), lambda state: state.can_use('Light Arrows') and state.can_play('Song of Time')) set_rule(world.get_location('Ganons Castle Fire Trial Clear'), lambda state: state.has_GoronTunic() and state.can_use('Golden Gauntlets') and state.can_use('Light Arrows') and (state.can_use('Longshot') or state.has('Hover Boots'))) set_rule(world.get_location('Ganons Castle MQ Water Trial Chest'), lambda state: state.has_bottle()) set_rule(world.get_location('Ganons Castle Water Trial Clear'), lambda state: state.has_bottle() and state.can_use('Light Arrows') and state.has('Small Key (Ganons Castle)', 3)) - set_rule(world.get_location('Ganons Castle MQ Shadow Trial First Chest'), lambda state: (state.has('Bow') and (state.has('Progressive Hookshot') or state.has('Hover Boots'))) or (state.has('Hover Boots') and state.can_see_with_lens() and (state.has_explosives() or state.has('Progressive Strength Upgrade') or state.can_use('Dins Fire')))) - set_rule(world.get_location('Ganons Castle MQ Shadow Trial Second Chest'), lambda state: state.has('Bow') and state.can_see_with_lens() and (state.has('Hover Boots') or (state.has('Progressive Hookshot') and state.has_fire_source()))) + set_rule(world.get_location('Ganons Castle MQ Shadow Trial First Chest'), lambda state: (state.has_bow() and (state.has('Progressive Hookshot') or state.has('Hover Boots'))) or (state.has('Hover Boots') and state.can_see_with_lens() and (state.has_explosives() or state.has('Progressive Strength Upgrade') or state.can_use('Dins Fire')))) + set_rule(world.get_location('Ganons Castle MQ Shadow Trial Second Chest'), lambda state: state.has_bow() and state.can_see_with_lens() and (state.has('Hover Boots') or (state.has('Progressive Hookshot') and state.has_fire_source()))) set_rule(world.get_location('Ganons Castle Shadow Trial Clear'), lambda state: state.can_use('Light Arrows') and state.can_see_with_lens() and (state.has('Hover Boots') or (state.has('Progressive Hookshot') and state.has_fire_source()))) - set_rule(world.get_location('Ganons Castle MQ Spirit Trial First Chest'), lambda state: state.has('Bow') and state.has('Hammer')) - set_rule(world.get_location('Ganons Castle MQ Spirit Trial Second Chest'), lambda state: state.has('Bow') and state.has('Hammer') and state.has_bombchus() and state.can_see_with_lens()) + set_rule(world.get_location('Ganons Castle MQ Spirit Trial First Chest'), lambda state: (state.has_bow() or world.logic_tricks) and state.has('Hammer')) + set_rule(world.get_location('Ganons Castle MQ Spirit Trial Second Chest'), lambda state: (state.has_bow() or world.logic_tricks) and state.has('Hammer') and state.has_bombchus() and state.can_see_with_lens()) set_rule(world.get_location('Ganons Castle MQ Spirit Trial Sun Front Left Chest'), lambda state: state.has('Hammer') and state.has_bombchus() and state.can_use('Fire Arrows') and state.has('Mirror Shield')) set_rule(world.get_location('Ganons Castle MQ Spirit Trial Sun Back Left Chest'), lambda state: state.has('Hammer') and state.has_bombchus() and state.can_use('Fire Arrows') and state.has('Mirror Shield')) set_rule(world.get_location('Ganons Castle MQ Spirit Trial Golden Gauntlets Chest'), lambda state: state.has('Hammer') and state.has_bombchus() and state.can_use('Fire Arrows') and state.has('Mirror Shield')) @@ -850,14 +917,3 @@ def dung_rules_gcmq(world): set_rule(world.get_location('Ganons Castle Spirit Trial Clear'), lambda state: state.can_use('Light Arrows') and state.has('Hammer') and state.has_bombchus() and state.has('Fire Arrows') and state.has('Mirror Shield')) set_rule(world.get_location('Ganons Castle MQ Light Trial Lullaby Chest'), lambda state: state.can_play('Zeldas Lullaby')) set_rule(world.get_location('Ganons Castle Light Trial Clear'), lambda state: state.can_use('Light Arrows') and state.has('Progressive Hookshot') and state.has('Small Key (Ganons Castle)', 3)) - - # Song locations can only be a song - #song_locations = [world.get_location(location) for location in - # ['Song from Composer Grave', 'Impa at Castle', 'Song from Malon', 'Song from Saria', - # 'Song from Ocarina of Time', 'Song at Windmill', 'Sheik Forest Song', 'Sheik at Temple', - # 'Sheik in Crater', 'Sheik in Ice Cavern', 'Sheik in Kakariko', 'Sheik at Colossus']] - #for location in world.get_locations(): - # if location in song_locations: - # add_item_rule(location, lambda item: item.type == 'Song') - # else: - # add_item_rule(location, lambda item: item.type != 'Song') diff --git a/Settings.py b/Settings.py index b8011b31b..9ed72ff1d 100644 --- a/Settings.py +++ b/Settings.py @@ -155,6 +155,25 @@ def __init__(self, settings_dict): self.sanatize_seed() self.numeric_seed = self.get_numeric_seed() +def parse_custom_tunic_color(s): + if s == 'Custom Color': + raise argparse.ArgumentTypeError('Specify custom color by using \'Custom (#xxxxxx)\'') + elif re.match(r'^Custom \(#[A-Fa-f0-9]{6}\)$', s): + return re.findall(r'[A-Fa-f0-9]{6}', s)[0] + elif s in get_tunic_color_options(): + return s + else: + raise argparse.ArgumentTypeError('Invalid color specified') + +def parse_custom_navi_color(s): + if s == 'Custom Color': + raise argparse.ArgumentTypeError('Specify custom color by using \'Custom (#xxxxxx)\'') + elif re.match(r'^Custom \(#[A-Fa-f0-9]{6}\)$', s): + return re.findall(r'[A-Fa-f0-9]{6}', s)[0] + elif s in get_navi_color_options(): + return s + else: + raise argparse.ArgumentTypeError('Invalid color specified') # a list of the possible settings setting_infos = [ @@ -252,9 +271,10 @@ def __init__(self, settings_dict): 'widget': 'Checkbutton', 'default': 'checked', 'tooltip':'''\ - The Deku Tree can be beaten without leaving the Forest - areas. This means that the Kokiri Sword and Slingshot - are always available somewhere in the forest. + Can leave the Kokiri Forest without beating the + Deku Tree. When this option is off, the Kokiri + Sword and Slingshot are always available somewhere + in the forest. ''' }), Setting_Info('open_kakariko', bool, 1, True, @@ -321,7 +341,7 @@ def __init__(self, settings_dict): 'Start with Gerudo Card': 'open', }, 'tooltip':'''\ - 'Rescure one carpenter': The carpenter rescue sequence + 'Rescue one carpenter': The carpenter rescue sequence is much faster and doesn't affect logic much. 'Start with Gerudo Card': skips the rescue entirely, @@ -364,19 +384,47 @@ def __init__(self, settings_dict): 'Always open': Nothing ''' }), + Setting_Info('all_reachable', bool, 1, True, + { + 'help': '''\ + When disabled, only check if the game is beatable with + placement. Do not ensure all locations are reachable. + This only has an effect on the restrictive algorithm + currently. + ''', + 'action': 'store_true' + }, + { + 'text': 'All Locations Reachable', + 'group': 'world', + 'widget': 'Checkbutton', + 'default': 'checked', + 'tooltip':'''\ + When this option is enabled, the randomizer will + guarantee that every item is obtainable, and every + location is reachable. + + When disabled, only required items and locations + to beat the game will be guaranteed reachable. + + Even when enabled, some chests may still be able to + hold the keys needed to reach them (Or gold + skulltulas in tokensanity). + ''' + }), Setting_Info('bombchus_in_logic', bool, 1, True, { 'help': '''\ Bombchus will be considered in logic. This has a few effects: -Back alley shop will open once you've found Bombchus -It will sell an affordable pack (5 for 60), and never sell out - -Bombchu Bowling will open once you've found Bombchus + -Bombchus refills cannot be bought until Bomchus have been obtained. ''', 'action': 'store_true' }, { 'text': 'Bombchus are considered in logic', - 'group': 'logic', + 'group': 'world', 'widget': 'Checkbutton', 'default': 'checked', 'tooltip':'''\ @@ -390,6 +438,51 @@ def __init__(self, settings_dict): rupees once they are been found. Bombchu Bowling opens with bombchus. + Bombchus are available at Kokiri Shop + and the Bazaar. Bombchu refills cannot + be bought until Bombchus have been + obtained. + ''', + }), + Setting_Info('one_item_per_dungeon', bool, 1, True, + { + 'help': '''\ + Each dungeon will have exactly one major item. + Does not include dungeon items or skulltulas. + ''', + 'action': 'store_true' + }, + { + 'text': 'Dungeons have one major item', + 'group': 'world', + 'widget': 'Checkbutton', + 'default': 'unchecked', + 'tooltip':'''\ + Dungeons have exactly one major + item. Makes dungeon value more + even. Also allows skipping items + once the major item is found. + + Dungeon items and skulltulas do + not count as major items. + ''', + }), + Setting_Info('trials_random', bool, 1, True, + { + 'help': '''\ + Sets the number of trials must be cleared to enter + Ganon's Tower to a random value. + ''', + 'action': 'store_true' + }, + { + 'text': 'Random Number of Ganon\'s Trials', + 'group': 'open', + 'widget': 'Checkbutton', + 'default': 'unchecked', + 'tooltip':'''\ + Sets a random number of trials to + enter Ganon's Tower. ''' }), Setting_Info('trials', int, 3, True, @@ -405,17 +498,18 @@ def __init__(self, settings_dict): 'type': int }, { - 'text': 'Number of Ganon\'s Trials', 'group': 'open', 'widget': 'Scale', 'default': 6, 'min': 0, 'max': 6, + 'random': True, 'tooltip':'''\ Trials are randomly selected. If hints are enabled, then there will be hints for which trials need to be completed. - ''' + ''', + 'dependency': lambda guivar: not guivar['trials_random'].get(), }), Setting_Info('no_escape_sequence', bool, 1, True, { @@ -485,38 +579,45 @@ def __init__(self, settings_dict): the animation time is slow for major items. ''' }), - Setting_Info('big_poe_count', str, 4, True, + Setting_Info('big_poe_count_random', bool, 1, True, + { + 'help': '''\ + Sets a random number of Big Poes to receive an item from the buyer. + ''', + 'action': 'store_true' + }, + { + 'text': 'Random Big Poe Target Count', + 'group': 'convenience', + 'widget': 'Checkbutton', + 'default': 'unchecked', + 'tooltip':'''\ + The Poe buyer will give a reward for turning + in a random number of Big Poes. + ''' + }), + Setting_Info('big_poe_count', int, 4, True, { - 'default': 'random', - 'const': 'random', + 'default': 10, + 'const': 10, 'nargs': '?', - 'choices': ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'random'], + 'choices': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 'help': '''\ Select the number of Big Poes to receive an item from the buyer. - ''' + ''', + 'type': int, }, { - 'text': 'Big Poe Target Count', 'group': 'convenience', - 'widget': 'Combobox', - 'default': 'Random', - 'options': { - 'Random': 'random', - '1': '1', - '2': '2', - '3': '3', - '4': '4', - '5': '5', - '6': '6', - '7': '7', - '8': '8', - '9': '9', - '10': '10' - }, - 'tooltip': '''\ - The Poe buyer will give a reward for turning - in the chosen number of Big Poes. - ''', + 'widget': 'Scale', + 'default': 10, + 'min': 1, + 'max': 10, + 'tooltip':'''\ + The Poe buyer will give a reward for turning + in the chosen number of Big Poes. + ''', + 'dependency': lambda guivar: not guivar['big_poe_count_random'].get(), }), Setting_Info('free_scarecrow', bool, 1, True, { @@ -539,12 +640,12 @@ def __init__(self, settings_dict): }), Setting_Info('scarecrow_song', str, 0, False, { - 'default': 'DAAAAAAA', - 'const': 'DAAAAAAA', + 'default': 'DAAAAAAA', + 'const': 'DAAAAAAA', 'nargs': '?', 'help': '''\ The song started with if 'free_scarecrow' is True - ''' + ''', }, { 'group': 'convenience', @@ -562,45 +663,6 @@ def __init__(self, settings_dict): 'R': C-Right ''' }), - Setting_Info('unlocked_ganondorf', bool, 1, True, - { - 'help': '''\ - The Boss Key door in Ganon's Tower will start unlocked. - ''', - 'action': 'store_true' - }, - { - 'text': 'Remove Ganon\'s Boss Door Lock', - 'group': 'open', - 'widget': 'Checkbutton', - 'default': 'unchecked', - 'tooltip':'''\ - Best when used when reducing the number of - Trials to less than 6 to prevent needing - to do them all anyways looking for the key. - ''' - }), - Setting_Info('all_reachable', bool, 1, True, - { - 'help': '''\ - When disabled, only check if the game is beatable with - placement. Do not ensure all locations are reachable. - This only has an effect on the restrictive algorithm - currently. - ''', - 'action': 'store_true' - }, - { - 'text': 'All Locations Reachable', - 'group': 'logic', - 'widget': 'Checkbutton', - 'default': 'checked', - 'tooltip':'''\ - Chests that lock themselves can still exists. - When disabled, some locations and item might - not be reachable. - ''' - }), Setting_Info('shuffle_kokiri_sword', bool, 1, True, { 'help': '''\ @@ -675,7 +737,7 @@ def __init__(self, settings_dict): 'widget': 'Checkbutton', 'default': 'checked', 'tooltip':'''\ - Songs can appear anywhere not just Vanilla + Songs can appear anywhere, not just Vanilla song locations. This significantly reduces song placement bias and makes the songs more evenly distributed. @@ -705,45 +767,247 @@ def __init__(self, settings_dict): Plays spiritually best with Keysanity. ''' }), - Setting_Info('shuffle_dungeon_items', str, 2, True, + Setting_Info('shuffle_scrubs', bool, 1, True, + { + 'help': '''\ + All Deku Salesmen will give a random item. + ''', + 'action': 'store_true' + }, + { + 'text': 'Shuffle Deku Salescrubs', + 'group': 'logic', + 'widget': 'Checkbutton', + 'default': 'unchecked', + 'tooltip':'''\ + Every Deku Salescrub will give + a random item. This adds 33 new + item locations. The Scrubs' prices + are all reduced to 10 Rupees. + ''' + }), + Setting_Info('shopsanity', str, 3, True, { - 'default': 'mapcompass', - 'const': 'mapcompass', + 'default': 'off', + 'const': 'off', + 'nargs': '?', + 'choices': ['off', '0', '1', '2', '3', '4', 'random'], + 'help': '''\ + Shop contents are randomized. There are Two items + in every shop that are one time buy and are not + refill items. + off: Normal Shops* + 0-4: Shop contents are shuffled and N non-shop + items are added to every shop. So more + possible item locations. + random: Shop contents are shuffles and each shop + will have a random number of non-shop items + ''' + }, + { + 'text': 'Shopsanity', + 'group': 'logic', + 'widget': 'Combobox', + 'default': 'Off', + 'options': { + 'Off': 'off', + 'Shuffled Shops (0 Items)': '0', + 'Shuffled Shops (1 Items)': '1', + 'Shuffled Shops (2 Items)': '2', + 'Shuffled Shops (3 Items)': '3', + 'Shuffled Shops (4 Items)': '4', + 'Shuffled Shops (Random)': 'random', + }, + 'tooltip':'''\ + Shop contents are randomized. + (X Items): Shops have X random non-shop (Special + Deal!) items. They will always be on the left + side. This means that every shop will have more + possible item locations. So +2 means 2 items + per shop. + + (Random): Each shop will have a random number + of non-shop items, up to a maximum of 4. + + The non-shop items have no requirements except + money, while the normal shop items (such as + 200/300 rupee tunics) have normal vanilla + requirements. This means that, for example, + as a child you cannot buy 200/300 rupee + tunics, but you can buy non-shop tunics. + + Non-shop bombchus will unlock the chu slot + in your inventory, which, if bombchus are in + logic, is needed to buy chu refills. If not in + logic, the bomb bag is required. + ''' + }), + Setting_Info('shuffle_mapcompass', str, 2, True, + { + 'default': 'dungeon', + 'const': 'dungeon', 'nargs': '?', - 'choices': ['off', 'mapcompass', 'keysanity'], + 'choices': ['remove', 'dungeon', 'keysanity'], 'help': '''\ - Dungeon items can appear outside of their - respective dungeon. - off: Dungeon items will be in their dungeons - mapcompass: Maps and Compasses can appear anywhere - keysanity: Dungeon items can appear anywhere + Sets the Map and Compass placement rules + remove: Maps and Compasses are removed from the world + dungeon: Maps and Compasses are put in their Dungeon + keysanity: Maps and Compasses can appear anywhere ''' }, { 'text': 'Shuffle Dungeon Items', 'group': 'logic', 'widget': 'Combobox', - 'default': 'Maps and Compasses', + 'default': 'Maps/Compasses: Dungeon Only', 'options': { - 'Off': 'off', - 'Maps and Compasses': 'mapcompass', - 'Full Keysanity': 'keysanity' + 'Maps/Compasses: Remove': 'remove', + 'Maps/Compasses: Dungeon Only': 'dungeon', + 'Maps/Compasses: Anywhere': 'keysanity' }, 'tooltip':'''\ - Dungeon items can appear anywhere instead - of just being restricted to their own dungeon. + 'Remove': Maps and Compasses are removed. + This will add a small amount of money and + refill items to the pool. - 'Maps and Compasses': Dungeons will have - 2 more possible item locations. This helps - make some dungeons more profitable, such as - Ice Cavern and Jabu Jabu's Belly. + 'Dungeon': Maps and Compasses can only appear + in their respective dungeon. - 'Full Keysanity': Maps, Compasses, and Keys - can appear anywhere. A difficult mode, since + 'Anywhere': Maps and Compasses can appear + anywhere in the world. + + Setting 'Remove' or 'Anywhere' will add 2 + more possible locations to each Dungeons. + This helps make some dungeons more profitable, + such as Ice Cavern and Jabu Jabu's Belly. + ''' + }), + Setting_Info('shuffle_smallkeys', str, 2, True, + { + 'default': 'dungeon', + 'const': 'dungeon', + 'nargs': '?', + 'choices': ['remove', 'dungeon', 'keysanity'], + 'help': '''\ + Sets the Small Keys placement rules + remove: Small Keys are removed from the world + dungeon: Small Keys are put in their Dungeon + keysanity: Small Keys can appear anywhere + ''' + }, + { + 'group': 'logic', + 'widget': 'Combobox', + 'default': 'Small Keys: Dungeon Only', + 'options': { + 'Small Keys: Remove (Keysy)': 'remove', + 'Small Keys: Dungeon Only': 'dungeon', + 'Small Keys: Anywhere (Keysanity)': 'keysanity' + }, + 'tooltip':'''\ + 'Remove': Small Keys are removed. All locked + doors in dungeons will be unlocked. An easier + mode. + + 'Dungeon': Small Keys can only appear in their + respective dungeon. If Fire Temple is not a + Master Quest dungeon, the door to the boss key + chest will be unlocked + + 'Anywhere': Small Keys can appear + anywhere in the world. A difficult mode since it is more likely to need to enter a dungeon multiple times. + + Try different combination out, such as: + 'Small Keys: Dungeon' + 'Boss Keys: Anywhere' + for a milder Keysanity experience. ''' }), + Setting_Info('shuffle_bosskeys', str, 2, True, + { + 'default': 'dungeon', + 'const': 'dungeon', + 'nargs': '?', + 'choices': ['remove', 'dungeon', 'keysanity'], + 'help': '''\ + Sets the Boss Keys placement rules + remove: Boss Keys are removed from the world + dungeon: Boss Keys are put in their Dungeon + keysanity: Boss Keys can appear anywhere + ''' + }, + { + 'group': 'logic', + 'widget': 'Combobox', + 'default': 'Boss Keys: Dungeon Only', + 'options': { + 'Boss Keys: Remove (Keysy)': 'remove', + 'Boss Keys: Dungeon Only': 'dungeon', + 'Boss Keys: Anywhere (Keysanity)': 'keysanity' + }, + 'tooltip':'''\ + 'Remove': Boss Keys are removed. All locked + doors in dungeons will be unlocked. An easier + mode. + + 'Dungeon': Boss Keys can only appear in their + respective dungeon. + + 'Anywhere': Boss Keys can appear + anywhere in the world. A difficult mode since + it is more likely to need to enter a dungeon + multiple times. + + Try different combination out, such as: + 'Small Keys: Dungeon' + 'Boss Keys: Anywhere' + for a milder Keysanity experience. + ''' + }), + Setting_Info('enhance_map_compass', bool, 1, True, + { + 'help': '''\ + Gives the Map and Compass extra functionality. + Map will tell if a dungeon is vanilla or Master Quest. + Compass will tell what medallion or stone is within. + This setting will only activate these functions if the + other settings would make this useful information. + ''', + 'action': 'store_true' + }, + { + 'text': 'Maps and Compasses give information', + 'group': 'logic', + 'widget': 'Checkbutton', + 'default': 'checked', + 'tooltip':'''\ + Gives the Map and Compass extra functionality. + Map will tell if a dungeon is vanilla or Master Quest. + Compass will tell what medallion or stone is within. + This option is only available if shuffle 'Maps/Compasses' + is set to 'Anywhere' + ''', + 'dependency': lambda guivar: guivar['shuffle_mapcompass'].get() == 'Maps/Compasses: Anywhere', + }), + Setting_Info('unlocked_ganondorf', bool, 1, True, + { + 'help': '''\ + The Boss Key door in Ganon's Tower will start unlocked. + ''', + 'action': 'store_true' + }, + { + 'text': 'Remove Ganon\'s Boss Door Lock', + 'group': 'logic', + 'widget': 'Checkbutton', + 'default': 'unchecked', + 'tooltip':'''\ + Best when used when reducing the number of + Trials to less than 6 to prevent needing + to do them all anyways looking for the key. + ''', + 'dependency': lambda guivar: guivar['shuffle_bosskeys'].get() != 'Boss Keys: Remove (Keysy)', + }), Setting_Info('tokensanity', str, 2, True, { 'default': 'off', @@ -782,7 +1046,7 @@ def __init__(self, settings_dict): 'All Tokens': Effectively adds 100 new locations for items to appear. ''' - }), + }), Setting_Info('quest', str, 2, True, { 'default': 'vanilla', @@ -798,7 +1062,7 @@ def __init__(self, settings_dict): }, { 'text': 'Dungeon Quest', - 'group': 'logic', + 'group': 'world', 'widget': 'Combobox', 'default': 'Vanilla', 'options': { @@ -815,7 +1079,7 @@ def __init__(self, settings_dict): 'Mixed': Each dungeon will have a random chance to be in either form. - ''' + ''', }), Setting_Info('logic_skulltulas', int, 3, True, { @@ -873,7 +1137,7 @@ def __init__(self, settings_dict): 'widget': 'Checkbutton', 'default': 'unchecked', 'tooltip':'''\ - Big Poes reward is time consuming + Hunting Big Poes is time consuming ''' }), Setting_Info('logic_no_child_fishing', bool, 1, True, @@ -1009,6 +1273,23 @@ def __init__(self, settings_dict): Racing twice is repetitive. ''' }), + Setting_Info('logic_tricks', bool, 1, True, + { + 'help': '''\ + Enable various tricks. + ''', + 'action': 'store_true' + }, + { + 'text': 'Require minor tricks', + 'group': 'tricks', + 'widget': 'SpecialCheckbutton', + 'default': 'unchecked', + 'tooltip':'''\ + Enables a large number of tricks. + Still does not require glitches. + ''' + }), Setting_Info('logic_man_on_roof', bool, 1, True, { 'help': '''\ @@ -1124,6 +1405,7 @@ def __init__(self, settings_dict): 'default': 'unchecked', 'tooltip':'''\ Can hover behind the waterfall as adult. + This is very difficult. ''' }), Setting_Info('logic_fewer_tunic_requirements', bool, 1, True, @@ -1203,7 +1485,7 @@ def __init__(self, settings_dict): 'default': 'unchecked', 'tooltip':'''\ Will need to memorize a new set of songs. - Can be silly, but difficult. Song are + Can be silly, but difficult. Songs are generally sensible, and warp songs are typically more difficult. ''' @@ -1232,34 +1514,28 @@ def __init__(self, settings_dict): 'default': 'unchecked', 'tooltip':'''\ Chests will be large if they contain a major - item and small if not. Allows skipping - chests if they are small. However skipping + item, and small if they don't. Allows skipping + chests if they are small. However, skipping small chests will mean having low health, ammo, and rupees, so doing so is a risk. ''' }), - Setting_Info('enhance_map_compass', bool, 1, True, + Setting_Info('clearer_hints', bool, 1, True, { 'help': '''\ - Gives the Map and Compass extra functionality. - Map will tell if a dungeon is vanilla or Master Quest. - Compass will tell what medallion or stone is within. - This setting will only activate these functions if the - other settings would make this useful information. + The hints provided by Gossip Stones are + easier to understand. ''', 'action': 'store_true' }, { - 'text': 'Maps and Compasses give information', + 'text': 'Clearer hints', 'group': 'other', 'widget': 'Checkbutton', 'default': 'unchecked', 'tooltip':'''\ - Gives the Map and Compass extra functionality. - Map will tell if a dungeon is vanilla or Master Quest. - Compass will tell what medallion or stone is within. - This setting will only activate these functions if the - other settings would make this useful information. + The hints provided by Gossip Stones will + not be as cryptic if this option is enabled. ''' }), Setting_Info('hints', str, 2, True, @@ -1394,37 +1670,37 @@ def __init__(self, settings_dict): 'Switch': 'switch', } }), + Setting_Info('background_music', str, 2, False, + { + 'default': 'normal', + 'const': 'normal', + 'nargs': '?', + 'choices': ['normal', 'off', 'random'], + 'help': '''\ + Sets the background music behavior + normal: Areas play their normal background music + off: No background music + random: Areas play random background music + ''' + }, + { + 'text': 'Background Music', + 'group': 'cosmetics', + 'widget': 'Combobox', + 'default': 'Normal', + 'options': { + 'Normal': 'normal', + 'No Music': 'off', + 'Random': 'random', + }, + 'tooltip': '''\ + 'No Music': No background is played. + Useful for playing your own music + over the game. - Setting_Info('background_music', str, 2, False, - { - 'default': 'normal', - 'const': 'normal', - 'nargs': '?', - 'choices': ['normal', 'off', 'random'], - 'help': '''\ - Sets the background music behavior - normal: Areas play their normal background music - off: No background music - random: Areas play random background music - ''' - }, - { - 'text': 'Background Music', - 'group': 'cosmetics', - 'widget': 'Combobox', - 'default': 'Normal', - 'options': { - 'Normal': 'normal', - 'No Music': 'off', - 'Random': 'random', - }, - 'tooltip': '''\ - 'No Music': No background is played. - Useful for playing your own music - over the game. - 'Random': Area background music is - randomized. - ''' + 'Random': Area background music is + randomized. + ''' }), Setting_Info('kokiricolor', str, 0, False, @@ -1432,7 +1708,7 @@ def __init__(self, settings_dict): 'default': 'Kokiri Green', 'const': 'Kokiri Green', 'nargs': '?', - 'choices': get_tunic_color_options(), + 'type': parse_custom_tunic_color, 'help': '''\ Choose the color for Link's Kokiri Tunic. (default: %(default)s) @@ -1456,7 +1732,7 @@ def __init__(self, settings_dict): 'default': 'Goron Red', 'const': 'Goron Red', 'nargs': '?', - 'choices': get_tunic_color_options(), + 'type': parse_custom_tunic_color, 'help': '''\ Choose the color for Link's Goron Tunic. (default: %(default)s) Color: Make the Goron Tunic this color. @@ -1482,7 +1758,7 @@ def __init__(self, settings_dict): 'default': 'Zora Blue', 'const': 'Zora Blue', 'nargs': '?', - 'choices': get_tunic_color_options(), + 'type': parse_custom_tunic_color, 'help': '''\ Choose the color for Link's Zora Tunic. (default: %(default)s) Color: Make the Zora Tunic this color. @@ -1508,7 +1784,7 @@ def __init__(self, settings_dict): 'default': 'White', 'const': 'White', 'nargs': '?', - 'choices': get_navi_color_options(), + 'type': parse_custom_navi_color, 'help': '''\ Choose the color for Navi when she is idle. (default: %(default)s) Color: Make the Navi this color. @@ -1534,7 +1810,7 @@ def __init__(self, settings_dict): 'default': 'Yellow', 'const': 'Yellow', 'nargs': '?', - 'choices': get_navi_color_options(), + 'type': parse_custom_navi_color, 'help': '''\ Choose the color for Navi when she is targeting an enemy. (default: %(default)s) Color: Make the Navi this color. @@ -1560,7 +1836,7 @@ def __init__(self, settings_dict): 'default': 'Light Blue', 'const': 'Light Blue', 'nargs': '?', - 'choices': get_navi_color_options(), + 'type': parse_custom_navi_color, 'help': '''\ Choose the color for Navi when she is targeting an NPC. (default: %(default)s) Color: Make the Navi this color. @@ -1586,7 +1862,7 @@ def __init__(self, settings_dict): 'default': 'Green', 'const': 'Green', 'nargs': '?', - 'choices': get_navi_color_options(), + 'type': parse_custom_navi_color, 'help': '''\ Choose the color for Navi when she is targeting a prop. (default: %(default)s) Color: Make the Navi this color. diff --git a/TextBox.py b/TextBox.py new file mode 100644 index 000000000..6d994b109 --- /dev/null +++ b/TextBox.py @@ -0,0 +1,276 @@ +import Messages + +# Least common multiple of all possible character widths. A line wrap must occur when the combined widths of all of the +# characters on a line reach this value. +LINE_WIDTH = 1801800 + +# Attempting to display more lines in a single text box will cause additional lines to bleed past the bottom of the box. +LINES_PER_BOX = 4 + +# Attempting to display more characters in a single text box will cause buffer overflows. First, visual artifacts will +# appear in lower areas of the text box. Eventually, the text box will become uncloseable. +MAX_CHARACTERS_PER_BOX = 200 + +LINE_BREAK = '&' +BOX_BREAK = '^' + + +def lineWrap(text): + boxes = text.split(BOX_BREAK) + boxesWithWrappedLines = [] + + for box in boxes: + forcedLines = box.split(LINE_BREAK) + lines = [line.strip() for forcedLine in forcedLines for line in _wrapLines(forcedLine)] + wrapped = LINE_BREAK.join(lines) + + if len(lines) > LINES_PER_BOX: + print('Wrapped text exceeds maximum lines per text box. Original text:\n' + box) + + # Subtracting line count so that line breaks aren't counted as characters + if len(wrapped) - (len(lines) - 1) > MAX_CHARACTERS_PER_BOX: + print('Text length exceeds maximum characters per text box. Original text:\n' + box) + + boxesWithWrappedLines.append(wrapped) + + return BOX_BREAK.join(boxesWithWrappedLines) + + +def _wrapLines(text): + lines = [] + currentLine = [] + currentWidth = 0 + + for word in text.split(' '): + currentLinePlusWord = currentLine.copy() + currentLinePlusWord.append(word) + currentLinePlusWordWidth = _calculateWidth(currentLinePlusWord) + + if (currentLinePlusWordWidth <= LINE_WIDTH): + currentLine = currentLinePlusWord + currentWidth = currentLinePlusWordWidth + else: + lines.append(' '.join(currentLine)) + currentLine = [word] + currentWidth = _calculateWidth(currentLine) + + lines.append(' '.join(currentLine)) + + return lines + + +def _calculateWidth(words): + wordsWidth = 0 + for word in words: + index = 0 + while index < len(word): + character = word[index] + index += 1 + if ord(character) in Messages.CONTROL_CODES: + index += Messages.CONTROL_CODES[ord(character)][1] + else: + wordsWidth += _getCharacterWidth(character) + spacesWidth = _getCharacterWidth(' ') * (len(words) - 1) + + return wordsWidth + spacesWidth + + +def _getCharacterWidth(character): + try: + return characterTable[character] + except KeyError: + # Control character for color settings; does not affect the width + if character == '#': + return 0 + # Control character for displaying the player's name; assume greater than average width + elif character == '@': + return characterTable['M'] * 8 + # A sane default with the most common character width + else : + return characterTable[' '] + + +# Tediously measured by filling a full line of a gossip stone's text box with one character until it is reasonably full +# (with a right margin) and counting how many characters fit. OoT does not appear to use any kerning, but, if it does, +# it will only make the characters more space-efficient, so this is an underestimate of the number of letters per line, +# at worst. This ensures that we will never bleed text out of the text box while line wrapping. +# Larger numbers in the denominator mean more of that character fits on a line; conversely, larger values in this table +# mean the character is wider and can't fit as many on one line. +characterTable = { + 'a': 51480, # LINE_WIDTH / 35 + 'b': 51480, # LINE_WIDTH / 35 + 'c': 51480, # LINE_WIDTH / 35 + 'd': 51480, # LINE_WIDTH / 35 + 'e': 51480, # LINE_WIDTH / 35 + 'f': 34650, # LINE_WIDTH / 52 + 'g': 51480, # LINE_WIDTH / 35 + 'h': 51480, # LINE_WIDTH / 35 + 'i': 25740, # LINE_WIDTH / 70 + 'j': 34650, # LINE_WIDTH / 52 + 'k': 51480, # LINE_WIDTH / 35 + 'l': 25740, # LINE_WIDTH / 70 + 'm': 81900, # LINE_WIDTH / 22 + 'n': 51480, # LINE_WIDTH / 35 + 'o': 51480, # LINE_WIDTH / 35 + 'p': 51480, # LINE_WIDTH / 35 + 'q': 51480, # LINE_WIDTH / 35 + 'r': 42900, # LINE_WIDTH / 42 + 's': 51480, # LINE_WIDTH / 35 + 't': 42900, # LINE_WIDTH / 42 + 'u': 51480, # LINE_WIDTH / 35 + 'v': 51480, # LINE_WIDTH / 35 + 'w': 81900, # LINE_WIDTH / 22 + 'x': 51480, # LINE_WIDTH / 35 + 'y': 51480, # LINE_WIDTH / 35 + 'z': 51480, # LINE_WIDTH / 35 + 'A': 81900, # LINE_WIDTH / 22 + 'B': 51480, # LINE_WIDTH / 35 + 'C': 72072, # LINE_WIDTH / 25 + 'D': 72072, # LINE_WIDTH / 25 + 'E': 51480, # LINE_WIDTH / 35 + 'F': 51480, # LINE_WIDTH / 35 + 'G': 81900, # LINE_WIDTH / 22 + 'H': 60060, # LINE_WIDTH / 30 + 'I': 25740, # LINE_WIDTH / 70 + 'J': 51480, # LINE_WIDTH / 35 + 'K': 60060, # LINE_WIDTH / 30 + 'L': 51480, # LINE_WIDTH / 35 + 'M': 81900, # LINE_WIDTH / 22 + 'N': 72072, # LINE_WIDTH / 25 + 'O': 81900, # LINE_WIDTH / 22 + 'P': 51480, # LINE_WIDTH / 35 + 'Q': 81900, # LINE_WIDTH / 22 + 'R': 60060, # LINE_WIDTH / 30 + 'S': 60060, # LINE_WIDTH / 30 + 'T': 51480, # LINE_WIDTH / 35 + 'U': 60060, # LINE_WIDTH / 30 + 'V': 72072, # LINE_WIDTH / 25 + 'W': 100100, # LINE_WIDTH / 18 + 'X': 72072, # LINE_WIDTH / 25 + 'Y': 60060, # LINE_WIDTH / 30 + 'Z': 60060, # LINE_WIDTH / 30 + ' ': 51480, # LINE_WIDTH / 35 + '1': 25740, # LINE_WIDTH / 70 + '2': 51480, # LINE_WIDTH / 35 + '3': 51480, # LINE_WIDTH / 35 + '4': 60060, # LINE_WIDTH / 30 + '5': 51480, # LINE_WIDTH / 35 + '6': 51480, # LINE_WIDTH / 35 + '7': 51480, # LINE_WIDTH / 35 + '8': 51480, # LINE_WIDTH / 35 + '9': 51480, # LINE_WIDTH / 35 + '0': 60060, # LINE_WIDTH / 30 + '!': 51480, # LINE_WIDTH / 35 + '?': 72072, # LINE_WIDTH / 25 + '\'': 17325, # LINE_WIDTH / 104 + '"': 34650, # LINE_WIDTH / 52 + '.': 25740, # LINE_WIDTH / 70 + ',': 25740, # LINE_WIDTH / 70 + '/': 51480, # LINE_WIDTH / 35 + '-': 34650, # LINE_WIDTH / 52 + '_': 51480, # LINE_WIDTH / 35 + '(': 42900, # LINE_WIDTH / 42 + ')': 42900, # LINE_WIDTH / 42 + '$': 51480 # LINE_WIDTH / 35 +} + +# To run tests, enter the following into a python3 REPL: +# >>> from TextBox import test_lineWrapTests +# >>> test_lineWrapTests() +def test_lineWrapTests(): + test_wrapSimpleLine() + test_honorForcedLineWraps() + test_honorBoxBreaks() + test_honorControlCharacters() + test_honorPlayerName() + test_maintainMultipleForcedBreaks() + test_trimWhitespace() + test_supportLongWords() + + +def test_wrapSimpleLine(): + words = 'Hello World! Hello World! Hello World!' + expected = 'Hello World! Hello World! Hello&World!' + result = lineWrap(words) + + if result != expected: + print('"Wrap Simple Line" test failed: Got ' + result + ', wanted ' + expected) + else: + print('"Wrap Simple Line" test passed!') + + +def test_honorForcedLineWraps(): + words = 'Hello World! Hello World!&Hello World! Hello World! Hello World!' + expected = 'Hello World! Hello World!&Hello World! Hello World! Hello&World!' + result = lineWrap(words) + + if result != expected: + print('"Honor Forced Line Wraps" test failed: Got ' + result + ', wanted ' + expected) + else: + print('"Honor Forced Line Wraps" test passed!') + + +def test_honorBoxBreaks(): + words = 'Hello World! Hello World!^Hello World! Hello World! Hello World!' + expected = 'Hello World! Hello World!^Hello World! Hello World! Hello&World!' + result = lineWrap(words) + + if result != expected: + print('"Honor Box Breaks" test failed: Got ' + result + ', wanted ' + expected) + else: + print('"Honor Box Breaks" test passed!') + + +def test_honorControlCharacters(): + words = 'Hello World! #Hello# World! Hello World!' + expected = 'Hello World! #Hello# World! Hello&World!' + result = lineWrap(words) + + if result != expected: + print('"Honor Control Characters" test failed: Got ' + result + ', wanted ' + expected) + else: + print('"Honor Control Characters" test passed!') + + +def test_honorPlayerName(): + words = 'Hello @! Hello World! Hello World!' + expected = 'Hello @! Hello World!&Hello World!' + result = lineWrap(words) + + if result != expected: + print('"Honor Player Name" test failed: Got ' + result + ', wanted ' + expected) + else: + print('"Honor Player Name" test passed!') + + +def test_maintainMultipleForcedBreaks(): + words = 'Hello World!&&&Hello World!' + expected = 'Hello World!&&&Hello World!' + result = lineWrap(words) + + if result != expected: + print('"Maintain Multiple Forced Breaks" test failed: Got ' + result + ', wanted ' + expected) + else: + print('"Maintain Multiple Forced Breaks" test passed!') + + +def test_trimWhitespace(): + words = 'Hello World! & Hello World!' + expected = 'Hello World!&Hello World!' + result = lineWrap(words) + + if result != expected: + print('"Trim Whitespace" test failed: Got ' + result + ', wanted ' + expected) + else: + print('"Trim Whitespace" test passed!') + + +def test_supportLongWords(): + words = 'Hello World! WWWWWWWWWWWWWWWWWWWW Hello World!' + expected = 'Hello World!&WWWWWWWWWWWWWWWWWWWW&Hello World!' + result = lineWrap(words) + + if result != expected: + print('"Support Long Words" test failed: Got ' + result + ', wanted ' + expected) + else: + print('"Support Long Words" test passed!') diff --git a/Utils.py b/Utils.py index b04465383..5dc4cc224 100644 --- a/Utils.py +++ b/Utils.py @@ -26,9 +26,9 @@ def local_path(path): def default_output_path(path): if path == '': - path = os.path.join('.', 'Output') + path = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'Output') - if not os.path.exists(path): + if not os.path.exists(path): os.mkdir(path) return path diff --git a/data/rom_patch.txt b/data/rom_patch.txt new file mode 100644 index 000000000..0a7831e22 --- /dev/null +++ b/data/rom_patch.txt @@ -0,0 +1,11882 @@ +11,45 +12,ae +13,5b +14,97 +15,db +16,41 +17,31 +d261,48 +d262,0 +d265,48 +d266,50 +d267,0 +d269,48 +d26a,0 +d271,4b +d272,30 +d275,4b +d276,e0 +d277,0 +d279,4b +d27a,30 +8a9c51,0 +8a9c52,0 +8a9c53,0 +8a9c55,0 +8a9c56,0 +8a9c57,0 +8a9c58,0 +8a9c59,0 +8a9c5a,0 +8a9c5c,0 +8a9c5d,0 +8a9c5e,0 +8a9c5f,0 +8a9c64,0 +8a9c65,0 +8a9c66,0 +8a9c67,0 +8a9c68,0 +8a9c69,0 +8a9c6a,0 +8a9c6b,0 +8a9c6c,0 +8a9c6d,0 +8a9c6e,0 +8a9c6f,0 +8a9c90,0 +8a9c91,0 +8a9c92,0 +8a9c93,0 +8a9c94,0 +8a9c95,0 +8a9c96,0 +8a9c97,0 +8a9c98,0 +8a9c99,0 +8a9c9a,0 +8a9c9c,0 +8a9c9d,0 +8a9c9e,0 +8a9c9f,0 +8a9ca0,0 +8a9ca3,0 +8a9ca4,0 +8a9ca5,0 +8a9ca6,0 +8a9ca7,0 +8a9ca8,0 +8a9ca9,0 +8a9caa,0 +8a9cab,0 +8a9cac,0 +8a9cad,0 +8a9cae,0 +8a9caf,0 +8a9cb0,0 +8a9cd0,0 +8a9cd1,0 +8a9cd2,0 +8a9cd3,0 +8a9cd4,0 +8a9cd5,0 +8a9cd6,0 +8a9cd7,0 +8a9cd8,0 +8a9cd9,0 +8a9cda,0 +8a9cdc,0 +8a9cdd,0 +8a9cde,0 +8a9cdf,0 +8a9ce0,0 +8a9ce3,0 +8a9ce4,0 +8a9ce5,0 +8a9ce6,0 +8a9ce7,0 +8a9ce8,0 +8a9ce9,0 +8a9cea,0 +8a9ceb,0 +8a9cec,0 +8a9ced,0 +8a9cee,0 +8a9cef,0 +8a9cf0,0 +8a9d10,0 +8a9d11,0 +8a9d12,0 +8a9d13,0 +8a9d14,0 +8a9d15,0 +8a9d16,0 +8a9d17,0 +8a9d18,0 +8a9d19,0 +8a9d1a,0 +8a9d1c,0 +8a9d1d,0 +8a9d1e,0 +8a9d1f,0 +8a9d20,0 +8a9d21,0 +8a9d22,0 +8a9d23,0 +8a9d24,0 +8a9d25,0 +8a9d26,0 +8a9d27,0 +8a9d28,0 +8a9d29,0 +8a9d2a,0 +8a9d2b,0 +8a9d2c,0 +8a9d2d,0 +8a9d2e,0 +8a9d2f,0 +8a9d30,0 +8a9d50,0 +8a9d51,0 +8a9d52,0 +8a9d53,0 +8a9d54,0 +8a9d55,0 +8a9d56,0 +8a9d57,0 +8a9d58,0 +8a9d59,0 +8a9d5a,0 +8a9d5c,0 +8a9d5d,0 +8a9d5e,0 +8a9d5f,0 +8a9d60,0 +8a9d61,0 +8a9d62,0 +8a9d63,0 +8a9d64,0 +8a9d65,0 +8a9d66,0 +8a9d67,0 +8a9d68,0 +8a9d69,0 +8a9d6a,0 +8a9d6b,0 +8a9d6c,0 +8a9d6d,0 +8a9d6e,0 +8a9d6f,0 +8a9d90,0 +8a9d91,0 +8a9d92,0 +8a9d93,0 +8a9d94,0 +8a9d95,0 +8a9d96,0 +8a9d97,0 +8a9d98,0 +8a9d99,0 +8a9d9a,0 +8a9d9c,0 +8a9d9d,0 +8a9d9e,0 +8a9d9f,0 +8a9da0,0 +8a9da1,0 +8a9da2,0 +8a9da3,0 +8a9da4,0 +8a9da6,0 +8a9da7,0 +8a9da8,0 +8a9da9,0 +8a9daa,0 +8a9dab,0 +8a9dac,0 +8a9dad,0 +8a9dae,0 +8a9dd0,0 +8a9dd1,0 +8a9dd2,0 +8a9dd3,0 +8a9dd4,0 +8a9dd5,0 +8a9dd6,0 +8a9dd7,0 +8a9dd8,0 +8a9dd9,0 +8a9dda,0 +8a9ddc,0 +8a9ddd,0 +8a9dde,0 +8a9ddf,0 +8a9de0,0 +8a9de1,0 +8a9de2,0 +8a9de3,0 +8a9de4,0 +8a9de6,0 +8a9de7,0 +8a9de8,0 +8a9de9,0 +8a9dea,0 +8a9deb,0 +8a9dec,0 +8a9ded,0 +8a9dee,0 +8a9e10,0 +8a9e11,0 +8a9e12,0 +8a9e13,0 +8a9e14,0 +8a9e15,0 +8a9e16,0 +8a9e17,0 +8a9e18,0 +8a9e19,0 +8a9e1a,0 +8a9e1c,0 +8a9e1d,0 +8a9e1e,0 +8a9e1f,0 +8a9e20,0 +8a9e21,0 +8a9e22,0 +8a9e23,0 +8a9e24,0 +8a9e26,0 +8a9e27,0 +8a9e28,0 +8a9e29,0 +8a9e2a,0 +8a9e2b,0 +8a9e2c,0 +8a9e2d,0 +8a9e2e,0 +8a9e50,0 +8a9e51,0 +8a9e52,0 +8a9e53,0 +8a9e54,0 +8a9e55,0 +8a9e56,0 +8a9e57,0 +8a9e58,0 +8a9e59,0 +8a9e5a,0 +8a9e5b,0 +8a9e5c,0 +8a9e5d,0 +8a9e5e,0 +8a9e5f,0 +8a9e60,0 +8a9e61,0 +8a9e62,0 +8a9e63,0 +8a9e64,0 +8a9e65,0 +8a9e66,0 +8a9e67,0 +8a9e68,0 +8a9e69,0 +8a9e6a,0 +8a9e6b,0 +8a9e6c,0 +8a9e6d,0 +8a9e6e,0 +8a9e90,0 +8a9e91,0 +8a9e92,0 +8a9e93,0 +8a9e94,0 +8a9e95,0 +8a9e96,0 +8a9e97,0 +8a9e98,0 +8a9e99,0 +8a9e9a,0 +8a9e9b,0 +8a9e9c,0 +8a9e9d,0 +8a9e9e,0 +8a9e9f,0 +8a9ea0,0 +8a9ea1,0 +8a9ea2,0 +8a9ea3,0 +8a9ea4,0 +8a9ea5,0 +8a9ea6,0 +8a9ea7,0 +8a9ea8,0 +8a9ea9,0 +8a9eaa,0 +8a9eab,0 +8a9eac,0 +8a9ead,0 +8a9eae,0 +8a9ed0,0 +8a9ed1,0 +8a9ed2,0 +8a9ed3,0 +8a9ed4,0 +8a9ed5,0 +8a9ed6,0 +8a9ed7,0 +8a9ed8,0 +8a9ed9,0 +8a9eda,0 +8a9edb,0 +8a9edc,0 +8a9edd,0 +8a9ede,0 +8a9edf,0 +8a9ee0,0 +8a9ee3,0 +8a9ee4,0 +8a9ee5,0 +8a9ee6,0 +8a9ee7,0 +8a9ee8,0 +8a9ee9,0 +8a9eea,0 +8a9eeb,0 +8a9eec,0 +8a9eed,0 +8a9eee,0 +8a9f10,0 +8a9f11,0 +8a9f12,0 +8a9f13,0 +8a9f14,0 +8a9f15,0 +8a9f16,0 +8a9f17,0 +8a9f18,0 +8a9f19,0 +8a9f1a,0 +8a9f1b,0 +8a9f1c,0 +8a9f1d,0 +8a9f1e,0 +8a9f1f,0 +8a9f20,0 +8a9f23,0 +8a9f24,0 +8a9f25,0 +8a9f26,0 +8a9f27,0 +8a9f28,0 +8a9f29,0 +8a9f2a,0 +8a9f2b,0 +8a9f2c,0 +8a9f2d,0 +8a9f2e,0 +8a9f50,0 +8a9f51,0 +8a9f52,0 +8a9f53,0 +8a9f55,0 +8a9f56,0 +8a9f57,0 +8a9f58,0 +8a9f59,0 +8a9f5a,0 +8a9f5b,0 +8a9f5c,0 +8a9f5d,0 +8a9f5e,0 +8a9f5f,0 +8a9f64,0 +8a9f65,0 +8a9f66,0 +8a9f67,0 +8a9f68,0 +8a9f69,0 +8a9f6a,0 +8a9f6b,0 +8a9f6c,0 +8a9f6d,0 +8a9f6e,0 +a98c30,c +a98c31,10 +a98c32,a +a98c33,db +a9e838,8 +a9e839,10 +a9e83a,d +a9e83b,bc +ac9abc,c +ac9abd,10 +ac9abe,b +ac9abf,ee +ac9ac1,0 +ac9ac2,0 +ac9ac3,0 +acce88,c +acce89,10 +acce8a,b +acce8b,df +acce8c,0 +acce8d,0 +acce8e,0 +acce8f,0 +acce90,0 +acce91,0 +acce94,0 +acce97,0 +acce98,0 +acce99,0 +acce9b,0 +ae59e0,8 +ae59e1,10 +ae59e2,c +ae59e3,f2 +ae5df0,c +ae5df1,10 +ae5df2,d +ae5df3,9b +ae5df8,c +ae5df9,10 +ae5dfa,b +ae5dfb,e9 +ae5e04,0 +ae5e05,0 +ae5e07,0 +ae6e48,c +ae6e49,10 +ae6e4a,b +ae6e4b,e4 +ae6e4c,1 +ae6e4d,f +ae6e4e,c0 +ae6e4f,21 +b06400,82 +b06402,e +b06403,de +b0640c,31 +b0640d,f8 +b0640e,0 +b0640f,2 +b06c2c,c +b06c2d,10 +b06c2e,d +b06c2f,d1 +b06c31,28 +b06c33,20 +b17129,10 +b1712a,15 +b1712b,e0 +b17bb4,af +b17bb5,bf +b17bb6,0 +b17bb7,1c +b17bb8,af +b17bb9,a4 +b17bba,1 +b17bbb,40 +b17bbc,3c +b17bbd,4 +b17bbe,80 +b17bbf,40 +b17bc0,3c +b17bc1,5 +b17bc2,3 +b17bc3,48 +b17bc4,c +b17bc5,0 +b17bc6,3 +b17bc7,7c +b17bc8,34 +b17bc9,6 +b17bca,50 +b17bcb,0 +b17bcc,c +b17bcd,10 +b17bce,0 +b17bd0,0 +b17bd1,0 +b17bd2,0 +b17bd3,0 +b54b38,c +b54b39,10 +b54b3a,d +b54b3b,ab +b54e5c,c +b54e5d,10 +b54e5e,d +b54e5f,88 +baed6c,0 +baed6d,0 +baed6f,0 +bb77b4,0 +bb77b5,0 +bb77b7,0 +bb7890,c +bb7891,10 +bb7892,c +bb7893,d1 +bb7894,0 +bb7895,0 +bb7897,0 +bb7950,c +bb7951,10 +bb7952,c +bb7953,d8 +bb7954,0 +bb7955,0 +bb7957,0 +bb7ba0,0 +bb7ba1,0 +bb7ba3,0 +bb7bfc,0 +bb7bfd,0 +bb7bff,0 +bb7c3c,c +bb7c3d,10 +bb7c3e,c +bb7c3f,df +bb7c40,0 +bb7c41,0 +bb7c43,0 +bb7c58,c +bb7c59,10 +bb7c5a,c +bb7c5b,ca +bb7c5c,0 +bb7c5d,0 +bb7c5f,0 +bcecbc,8 +bcecbd,10 +bcecbe,a +bcecbf,a3 +bcecc1,0 +bcecc2,0 +bcecc3,0 +bcecc4,0 +bcecc5,0 +bcecc7,0 +bcecc8,0 +bcecc9,0 +bcecca,0 +bceccb,0 +bceccc,0 +bceccd,0 +bcecce,0 +bceccf,0 +bcecd0,0 +bcecd1,0 +bcecd3,0 +bda0a1,10 +bda0a2,a +bda0a3,29 +bda0d8,c +bda0d9,10 +bda0da,a +bda0db,81 +bda0e4,0 +bda0e5,0 +bda0e7,0 +bda264,c +bda265,10 +bda266,a +bda267,85 +bda270,0 +bda271,0 +bda273,0 +be5990,c +be5991,10 +be5992,c +be5993,95 +be5994,0 +be5995,0 +be5996,0 +be5997,0 +be9ac0,c +be9ac1,10 +be9ac2,a +be9ac3,af +be9ad8,c +be9ad9,10 +be9ada,a +be9adb,b8 +be9ae4,0 +be9ae5,0 +be9bde,83 +be9bdf,83 +c004ec,8 +c004ed,10 +c004ee,c +c004ef,3a +c0067f,64 +c018a0,c +c018a1,10 +c018a2,c +c018a3,4f +c6c7a8,c +c6c7a9,10 +c6c7aa,c +c6c7ab,5f +c6c920,c +c6c921,10 +c6c922,c +c6c923,5f +c892dc,34 +c892dd,e +c892de,0 +c892df,1 +c8931c,34 +c8931d,a +c8931e,0 +c8931f,1 +c89745,10 +c89746,b +c89747,b4 +c89868,92 +c89869,e +c8986a,1d +c8986b,28 +c898a4,92 +c898a5,19 +c898a6,1d +c898a7,29 +c898c8,92 +c898c9,a +c898ca,1d +c898cb,2a +cb6860,c +cb6861,10 +cb6862,c +cb6863,e6 +d12f78,34 +d12f79,f +d12f7b,0 +d74964,10 +d74965,0 +d7e140,34 +d7e141,e +d7e142,0 +d7e143,1 +d7e144,80 +d7e146,e +d7e147,de +d7e160,84 +d7e161,88 +d7e163,a4 +d7e164,34 +d7e165,1 +d7e167,63 +d7e168,14 +d7e169,28 +d7e16b,3 +d7e16c,34 +d7e16d,2 +d7e16e,20 +d7e16f,49 +d7e170,10 +d7e171,0 +d7e172,0 +d7e173,6 +d7e174,0 +d7e177,0 +d7e178,94 +d7e179,69 +d7e17a,e +d7e17b,d6 +d7e17c,31 +d7e17d,29 +d7e17e,0 +d7e17f,4 +d7e180,15 +d7e181,20 +d7e183,2 +d7e184,34 +d7e185,2 +d7e186,20 +d7e187,44 +d7e188,34 +d7e189,2 +d7e18a,20 +d7e18b,43 +d7e18c,8f +d7e18d,bf +d7e18f,14 +d7e190,27 +d7e191,bd +d7e192,0 +d7e193,18 +d7e194,3 +d7e195,e0 +d7e197,8 +d7e198,0 +d7e199,0 +d7e19a,0 +d7e19b,0 +d7e398,94 +d7e399,89 +d7e39a,e +d7e39b,d6 +d7e39c,31 +d7e39d,28 +d7e39f,10 +d7e3a0,31 +d7e3a1,29 +d7e3a3,4 +d7e3a4,1 +d7e3a5,9 +d7e3a6,40 +d7e3a7,25 +d7e3a8,34 +d7e3a9,9 +d7e3ab,14 +d7e3ac,34 +d7e3ad,1 +d7e3ae,0 +d7e3af,5f +d7e3b0,14 +d7e3b1,23 +d7e3b3,6 +d7e3b4,0 +d7e3b5,0 +d7e3b7,0 +d7e3b8,11 +d7e3b9,9 +d7e3bb,4 +d7e3bc,0 +d7e3bd,0 +d7e3be,0 +d7e3bf,0 +d7e3c0,34 +d7e3c1,2 +d7e3c2,0 +d7e3c3,1 +d7e3c4,3 +d7e3c5,e0 +d7e3c7,8 +d7e3c8,0 +d7e3c9,0 +d7e3cb,0 +d7e3cc,14 +d7e3cd,c2 +d7e3cf,9 +d7e3d0,34 +d7e3d1,1 +d7e3d3,63 +d7e3d4,14 +d7e3d5,23 +d7e3d7,7 +d7e3d8,8c +d7e3d9,8a +d7e3db,10 +d7e3dc,15 +d7e3dd,40 +d7e3df,5 +d7e3e0,0 +d7e3e1,0 +d7e3e2,0 +d7e3e3,0 +d7e3e4,15 +d7e3e5,9 +d7e3e7,3 +d7e3e8,34 +d7e3e9,2 +d7e3eb,1 +d7e3ec,3 +d7e3ed,e0 +d7e3ef,8 +d7e3f0,0 +d7e3f1,0 +d7e3f2,0 +d7e3f3,0 +d7e3f4,34 +d7e3f5,2 +d7e3f6,0 +d7e3f7,0 +d7e3f8,3 +d7e3f9,e0 +d7e3fa,0 +d7e3fb,8 +d7e3fc,0 +d7e3fd,0 +d7e3ff,0 +d7e76c,8f +d7e76d,b8 +d7e76e,0 +d7e76f,44 +d7e778,87 +d7e779,18 +d7e77b,a4 +d7e77c,80 +d7e77d,49 +d7e77e,e +d7e77f,de +d7e784,34 +d7e786,0 +d7e787,1 +d7e788,2 +d7e789,0 +d7e78a,20 +d7e78b,21 +d7e798,15 +d7e79b,2 +d7e79c,34 +d7e79d,19 +d7e79e,0 +d7e79f,5f +d7e7a0,17 +d7e7a1,38 +d7e7a2,0 +d7e7a3,5 +d7e7a4,ae +d7e7a5,b +d7e7a6,1 +d7e7a7,80 +d7e890,0 +d7e891,0 +d7e893,0 +d7e8a0,10 +d7e8a1,0 +d7e8a3,7 +d7e8a4,31 +d7e8a5,4a +d7e8a7,4 +d7e8b0,0 +d7e8b3,0 +d7e8b4,0 +d7e8b5,0 +d7e8b7,0 +d7e8c0,34 +d7e8c1,b +d7e8c2,0 +d7e8c3,14 +d7e8c8,1 +d7e8c9,4b +d7e8ca,50 +d7e8cb,25 +d7e8cc,15 +d7e8cd,4b +d7e8cf,14 +d7e8d4,34 +d7e8d5,e +d7e8d6,0 +d7e8d7,1 +d7e8d8,80 +d7e8da,e +d7e8db,de +d7e8e0,57 +d7e8e3,f +d7ebbc,c +d7ebbd,10 +d7ebbe,b +d7ebbf,f1 +d7ec1c,0 +d7ec1d,0 +d7ec1f,0 +d7ec20,34 +d7ec23,5 +db13d3,76 +db532c,c +db532d,10 +db532e,c +db532f,1 +df264f,76 +df7cb0,c +df7cb1,10 +df7cb2,c +df7cb3,7f +e09f68,80 +e09f6a,e +e09f6b,de +e09f74,31 +e09f75,f8 +e09f76,0 +e09f77,4 +e09fb0,c +e09fb1,10 +e09fb2,b +e09fb3,f9 +e29388,8 +e29389,10 +e2938a,c +e2938b,18 +e2a044,c +e2a045,10 +e2a046,c +e2a047,21 +e2b0b5,10 +e2b0b6,c +e2b0b7,29 +e2f093,34 +e9e1d8,34 +e9e1d9,9 +e9e1da,40 +e9e1db,0 +e9e1f0,34 +e9e1f2,5b +e9e1f3,8 +e9e200,34 +e9e202,0 +e9e203,a +e9e20d,a9 +ebb85c,c +ebb85d,10 +ebb85e,c +ebb85f,6a +ebb865,40 +ebb867,12 +ebb86c,10 +ebb86d,0 +ebb86e,0 +ebb86f,14 +ec68bc,8f +ec68bd,ad +ec68be,0 +ec68bf,2c +ec68c0,34 +ec68c1,c +ec68c2,0 +ec68c3,a +ec68c4,a5 +ec68c5,ac +ec68c6,1 +ec68c7,10 +ec68c8,c +ec68c9,10 +ec68ca,a +ec68cb,46 +ec68cc,2 +ec68cd,0 +ec68ce,28 +ec68cf,21 +ec68d0,0 +ec68d1,0 +ec68d2,0 +ec68d3,0 +ec68d4,0 +ec68d5,0 +ec68d7,0 +ec68da,0 +ec68db,0 +ec68dc,0 +ec68dd,0 +ec68de,0 +ec68df,0 +ec68e0,0 +ec68e1,0 +ec68e2,0 +ec68e3,0 +ec69ad,ad +ec69af,2c +ec69b0,34 +ec69b1,c +ec69b2,0 +ec69b3,a +ec69b4,a5 +ec69b5,ac +ec69b6,1 +ec69b7,10 +ec69b8,c +ec69b9,10 +ec69ba,a +ec69bb,46 +ec69bc,2 +ec69bd,0 +ec69be,28 +ec69bf,21 +ec69c0,0 +ec69c1,0 +ec69c3,0 +ec69c4,0 +ec69c5,0 +ec69c6,0 +ec69c7,0 +ec69c8,0 +ec69c9,0 +ec69cb,0 +ec69cc,0 +ec69cd,0 +ec69ce,0 +ec69cf,0 +ec69d2,0 +ec69d3,0 +ec9ce7,7a +3480000,27 +3480001,bd +3480002,ff +3480003,e8 +3480004,af +3480005,bf +3480007,10 +3480008,3c +3480009,4 +348000a,80 +348000b,40 +348000c,24 +348000d,84 +348000e,50 +3480010,3c +3480011,5 +3480012,3 +3480013,4b +3480014,24 +3480015,a5 +3480016,30 +3480018,34 +3480019,6 +348001a,b0 +348001c,c +348001e,3 +348001f,7c +3480024,c +3480025,10 +3480026,15 +3480027,d5 +348002c,3c +348002d,2 +348002e,80 +348002f,12 +3480030,24 +3480031,42 +3480032,d2 +3480033,a0 +3480034,24 +3480035,e +3480036,1 +3480037,40 +3480038,3c +3480039,1 +348003a,80 +348003b,10 +348003c,ac +348003d,2e +348003e,e5 +3480040,8f +3480041,bf +3480043,10 +3480044,27 +3480045,bd +3480047,18 +3480048,3 +3480049,e0 +348004b,8 +3481c01,5a +3481c02,3b +3481c03,5d +3481c04,5c +3481c05,5e +3481c06,51 +3481c07,52 +3481c08,53 +3482050,ff +3482051,ff +3482052,ff +3482053,ff +3482054,ff +3482055,ff +3482056,ff +3482057,ff +3482058,80 +3482059,40 +348205a,27 +348205b,30 +348205c,80 +348205d,40 +348205e,25 +348205f,78 +3482060,ff +3482061,ff +3482062,ff +3482063,ff +3482064,ff +3482065,ff +3482066,ff +3482067,ff +3482068,80 +3482069,40 +348206a,27 +348206b,30 +348206c,80 +348206d,40 +348206e,25 +348206f,94 +3482070,ff +3482071,ff +3482072,ff +3482073,ff +3482074,ff +3482075,ff +3482076,ff +3482077,ff +3482078,80 +3482079,40 +348207a,27 +348207b,30 +348207c,80 +348207d,40 +348207e,25 +348207f,bc +3482080,ff +3482081,ff +3482082,ff +3482083,ff +3482084,ff +3482085,ff +3482086,ff +3482087,ff +3482088,80 +3482089,40 +348208a,27 +348208b,30 +348208c,80 +348208d,40 +348208e,25 +348208f,e4 +3482090,ff +3482091,ff +3482092,ff +3482093,ff +3482094,ff +3482095,ff +3482096,ff +3482097,ff +3482098,80 +3482099,40 +348209a,27 +348209b,30 +348209c,80 +348209d,40 +348209e,26 +348209f,c +34820a0,53 +34820a1,41 +34820a2,23 +34820a3,f8 +34820a5,d1 +34820a6,ff +34820a7,ff +34820a8,80 +34820a9,40 +34820aa,26 +34820ab,5c +34820ac,80 +34820ad,40 +34820ae,26 +34820af,34 +34820b0,ff +34820b1,ff +34820b2,ff +34820b3,ff +34820b4,ff +34820b5,ff +34820b6,ff +34820b7,ff +34820b8,80 +34820b9,40 +34820ba,27 +34820bb,30 +34820bc,80 +34820bd,40 +34820be,26 +34820bf,70 +34820c0,ff +34820c1,ff +34820c2,ff +34820c3,ff +34820c4,ff +34820c5,ff +34820c6,ff +34820c7,ff +34820c8,80 +34820c9,40 +34820ca,27 +34820cb,30 +34820cc,80 +34820cd,40 +34820ce,26 +34820cf,8c +34820d0,ff +34820d1,ff +34820d2,ff +34820d3,ff +34820d4,ff +34820d5,ff +34820d6,ff +34820d7,ff +34820d8,80 +34820d9,40 +34820da,27 +34820db,30 +34820dc,80 +34820dd,40 +34820de,26 +34820df,a8 +34820e0,53 +34820e1,41 +34820e2,38 +34820e3,43 +34820e5,eb +34820e6,15 +34820e7,ff +34820e8,80 +34820e9,40 +34820ea,27 +34820eb,48 +34820ec,80 +34820ed,40 +34820ee,25 +34820ef,70 +34820f0,53 +34820f1,41 +34820f2,37 +34820f3,44 +34820f5,eb +34820f6,16 +34820f7,ff +34820f8,80 +34820f9,40 +34820fa,27 +34820fb,48 +34820fc,80 +34820fd,40 +34820fe,25 +34820ff,70 +3482100,53 +3482101,41 +3482102,39 +3482103,45 +3482105,eb +3482106,17 +3482107,ff +3482108,80 +3482109,40 +348210a,27 +348210b,48 +348210c,80 +348210d,40 +348210e,25 +348210f,70 +3482110,53 +3482111,41 +3482112,6b +3482113,46 +3482114,1 +3482115,77 +3482116,18 +3482117,ff +3482118,80 +3482119,40 +348211a,27 +348211b,48 +348211c,80 +348211d,40 +348211e,25 +348211f,70 +3482120,53 +3482121,41 +3482122,3f +3482123,47 +3482125,f4 +3482126,19 +3482127,ff +3482128,80 +3482129,40 +348212a,27 +348212b,48 +348212c,80 +348212d,40 +348212e,25 +348212f,70 +3482130,53 +3482131,41 +3482132,67 +3482133,5d +3482134,1 +3482135,73 +3482136,1c +3482137,ff +3482138,80 +3482139,40 +348213a,27 +348213b,48 +348213c,80 +348213d,40 +348213e,25 +348213f,70 +3482140,53 +3482141,41 +3482142,68 +3482143,7a +3482144,1 +3482145,74 +3482146,1d +3482147,ff +3482148,80 +3482149,40 +348214a,27 +348214b,48 +348214c,80 +348214d,40 +348214e,25 +348214f,70 +3482150,53 +3482151,41 +3482152,70 +3482153,f9 +3482154,1 +3482155,76 +3482156,1e +3482157,ff +3482158,80 +3482159,40 +348215a,27 +348215b,48 +348215c,80 +348215d,40 +348215e,25 +348215f,70 +3482160,53 +3482161,41 +3482162,6a +3482163,97 +3482164,1 +3482165,76 +3482166,20 +3482167,ff +3482168,80 +3482169,40 +348216a,27 +348216b,48 +348216c,80 +348216d,40 +348216e,25 +348216f,70 +3482170,53 +3482171,41 +3482172,a +3482173,6 +3482175,b9 +3482176,1 +3482177,3 +3482178,80 +3482179,40 +348217a,27 +348217b,84 +348217c,80 +348217d,40 +348217e,25 +348217f,70 +3482180,53 +3482181,41 +3482182,a +3482183,1c +3482185,b9 +3482186,1 +3482187,4 +3482188,80 +3482189,40 +348218a,27 +348218b,84 +348218c,80 +348218d,40 +348218e,25 +348218f,70 +3482190,53 +3482191,41 +3482192,a +3482193,1d +3482195,b9 +3482196,1 +3482197,5 +3482198,80 +3482199,40 +348219a,27 +348219b,84 +348219c,80 +348219d,40 +348219e,25 +348219f,70 +34821a0,53 +34821a1,41 +34821a2,a +34821a3,1e +34821a5,b9 +34821a6,1 +34821a7,6 +34821a8,80 +34821a9,40 +34821aa,27 +34821ab,84 +34821ac,80 +34821ad,40 +34821ae,25 +34821af,70 +34821b0,53 +34821b1,41 +34821b2,a +34821b3,2a +34821b5,b9 +34821b6,1 +34821b7,7 +34821b8,80 +34821b9,40 +34821ba,27 +34821bb,84 +34821bc,80 +34821bd,40 +34821be,25 +34821bf,70 +34821c0,53 +34821c1,41 +34821c2,a +34821c3,61 +34821c5,b9 +34821c6,1 +34821c7,a +34821c8,80 +34821c9,40 +34821ca,27 +34821cb,84 +34821cc,80 +34821cd,40 +34821ce,25 +34821cf,70 +34821d0,4d +34821d1,41 +34821d2,f5 +34821d3,62 +34821d5,b8 +34821d6,2 +34821d8,80 +34821d9,40 +34821da,27 +34821db,84 +34821dc,80 +34821dd,40 +34821de,25 +34821df,70 +34821e0,4d +34821e1,41 +34821e2,f5 +34821e3,63 +34821e5,b8 +34821e6,2 +34821e7,1 +34821e8,80 +34821e9,40 +34821ea,27 +34821eb,84 +34821ec,80 +34821ed,40 +34821ee,25 +34821ef,70 +34821f0,4d +34821f1,41 +34821f2,f5 +34821f3,64 +34821f5,b8 +34821f6,2 +34821f7,2 +34821f8,80 +34821f9,40 +34821fa,27 +34821fb,84 +34821fc,80 +34821fd,40 +34821fe,25 +34821ff,70 +3482200,4d +3482201,41 +3482202,f5 +3482203,65 +3482205,b8 +3482206,2 +3482207,3 +3482208,80 +3482209,40 +348220a,27 +348220b,84 +348220c,80 +348220d,40 +348220e,25 +348220f,70 +3482210,4d +3482211,41 +3482212,f5 +3482213,7c +3482215,b8 +3482216,2 +3482217,4 +3482218,80 +3482219,40 +348221a,27 +348221b,84 +348221c,80 +348221d,40 +348221e,25 +348221f,70 +3482220,4d +3482221,41 +3482222,f5 +3482223,7d +3482225,b8 +3482226,2 +3482227,5 +3482228,80 +3482229,40 +348222a,27 +348222b,84 +348222c,80 +348222d,40 +348222e,25 +348222f,70 +3482230,4d +3482231,41 +3482232,f5 +3482233,7e +3482235,b8 +3482236,2 +3482237,6 +3482238,80 +3482239,40 +348223a,27 +348223b,84 +348223c,80 +348223d,40 +348223e,25 +348223f,70 +3482240,4d +3482241,41 +3482242,f5 +3482243,7f +3482245,b8 +3482246,2 +3482247,7 +3482248,80 +3482249,40 +348224a,27 +348224b,84 +348224c,80 +348224d,40 +348224e,25 +348224f,70 +3482250,4d +3482251,41 +3482252,f5 +3482253,a2 +3482255,b8 +3482256,2 +3482257,8 +3482258,80 +3482259,40 +348225a,27 +348225b,84 +348225c,80 +348225d,40 +348225e,25 +348225f,70 +3482260,4d +3482261,41 +3482262,f5 +3482263,87 +3482265,b8 +3482266,2 +3482267,9 +3482268,80 +3482269,40 +348226a,27 +348226b,84 +348226c,80 +348226d,40 +348226e,25 +348226f,70 +3482270,4d +3482271,41 +3482272,e4 +3482273,88 +3482275,c8 +3482276,4 +3482278,80 +3482279,40 +348227a,27 +348227b,84 +348227c,80 +348227d,40 +348227e,25 +348227f,70 +3482280,4d +3482281,41 +3482282,e4 +3482283,89 +3482285,c8 +3482286,4 +3482287,1 +3482288,80 +3482289,40 +348228a,27 +348228b,84 +348228c,80 +348228d,40 +348228e,25 +348228f,70 +3482290,4d +3482291,41 +3482292,e4 +3482293,8a +3482295,c8 +3482296,4 +3482297,2 +3482298,80 +3482299,40 +348229a,27 +348229b,84 +348229c,80 +348229d,40 +348229e,25 +348229f,70 +34822a0,4d +34822a1,41 +34822a2,e4 +34822a3,8b +34822a5,c8 +34822a6,4 +34822a7,3 +34822a8,80 +34822a9,40 +34822aa,27 +34822ab,84 +34822ac,80 +34822ad,40 +34822ae,25 +34822af,70 +34822b0,4d +34822b1,41 +34822b2,e4 +34822b3,8c +34822b5,c8 +34822b6,4 +34822b7,4 +34822b8,80 +34822b9,40 +34822ba,27 +34822bb,84 +34822bc,80 +34822bd,40 +34822be,25 +34822bf,70 +34822c0,4d +34822c1,41 +34822c2,e4 +34822c3,8e +34822c5,c8 +34822c6,4 +34822c7,5 +34822c8,80 +34822c9,40 +34822ca,27 +34822cb,84 +34822cc,80 +34822cd,40 +34822ce,25 +34822cf,70 +34822d0,4d +34822d1,41 +34822d2,e4 +34822d3,8f +34822d5,c8 +34822d6,4 +34822d7,6 +34822d8,80 +34822d9,40 +34822da,27 +34822db,84 +34822dc,80 +34822dd,40 +34822de,25 +34822df,70 +34822e0,4d +34822e1,41 +34822e2,e4 +34822e3,a3 +34822e5,c8 +34822e6,4 +34822e7,7 +34822e8,80 +34822e9,40 +34822ea,27 +34822eb,84 +34822ec,80 +34822ed,40 +34822ee,25 +34822ef,70 +34822f0,4d +34822f1,41 +34822f2,e4 +34822f3,a5 +34822f5,c8 +34822f6,4 +34822f7,8 +34822f8,80 +34822f9,40 +34822fa,27 +34822fb,84 +34822fc,80 +34822fd,40 +34822fe,25 +34822ff,70 +3482300,4d +3482301,41 +3482302,e4 +3482303,92 +3482305,c8 +3482306,4 +3482307,9 +3482308,80 +3482309,40 +348230a,27 +348230b,84 +348230c,80 +348230d,40 +348230e,25 +348230f,70 +3482310,53 +3482311,41 +3482312,2 +3482313,93 +3482315,aa +3482316,3 +3482317,ff +3482318,80 +3482319,40 +348231a,27 +348231b,a0 +348231c,80 +348231d,40 +348231e,25 +348231f,70 +3482320,53 +3482321,41 +3482322,2 +3482323,94 +3482325,aa +3482326,4 +3482327,ff +3482328,80 +3482329,40 +348232a,27 +348232b,a0 +348232c,80 +348232d,40 +348232e,25 +348232f,70 +3482330,53 +3482331,41 +3482332,2 +3482333,95 +3482335,aa +3482336,5 +3482337,ff +3482338,80 +3482339,40 +348233a,27 +348233b,a0 +348233c,80 +348233d,40 +348233e,25 +348233f,70 +3482340,53 +3482341,41 +3482342,2 +3482343,a6 +3482345,aa +3482346,6 +3482347,ff +3482348,80 +3482349,40 +348234a,27 +348234b,a0 +348234c,80 +348234d,40 +348234e,25 +348234f,70 +3482350,53 +3482351,41 +3482352,2 +3482353,a9 +3482355,aa +3482356,7 +3482357,ff +3482358,80 +3482359,40 +348235a,27 +348235b,a0 +348235c,80 +348235d,40 +348235e,25 +348235f,70 +3482360,53 +3482361,41 +3482362,2 +3482363,9b +3482365,aa +3482366,8 +3482367,ff +3482368,80 +3482369,40 +348236a,27 +348236b,a0 +348236c,80 +348236d,40 +348236e,25 +348236f,70 +3482370,53 +3482371,41 +3482372,2 +3482373,9f +3482375,aa +3482376,b +3482377,ff +3482378,80 +3482379,40 +348237a,27 +348237b,a0 +348237c,80 +348237d,40 +348237e,25 +348237f,70 +3482380,53 +3482381,41 +3482382,2 +3482383,a0 +3482385,aa +3482386,c +3482387,ff +3482388,80 +3482389,40 +348238a,27 +348238b,a0 +348238c,80 +348238d,40 +348238e,25 +348238f,70 +3482390,53 +3482391,41 +3482392,2 +3482393,a1 +3482395,aa +3482396,d +3482397,ff +3482398,80 +3482399,40 +348239a,27 +348239b,a0 +348239c,80 +348239d,40 +348239e,25 +348239f,70 +34823a0,53 +34823a1,3d +34823a2,43 +34823a3,c +34823a5,f8 +34823a6,ff +34823a7,ff +34823a8,80 +34823a9,40 +34823aa,27 +34823ab,38 +34823ac,80 +34823ad,40 +34823ae,25 +34823af,70 +34823b0,4d +34823b1,83 +34823b2,f7 +34823b3,55 +34823b5,b7 +34823b6,ff +34823b7,ff +34823b8,80 +34823b9,40 +34823ba,27 +34823bb,30 +34823bc,80 +34823bd,40 +34823be,25 +34823bf,70 +34823c0,4d +34823c1,92 +34823c2,db +34823c3,e6 +34823c5,d8 +34823c6,ff +34823c7,ff +34823c8,80 +34823c9,40 +34823ca,27 +34823cb,30 +34823cc,80 +34823cd,40 +34823ce,26 +34823cf,dc +34823d0,4d +34823d1,93 +34823d2,da +34823d3,e6 +34823d5,d8 +34823d6,ff +34823d7,ff +34823d8,80 +34823d9,40 +34823da,27 +34823db,30 +34823dc,80 +34823dd,40 +34823de,26 +34823df,dc +34823e0,4d +34823e1,94 +34823e2,d9 +34823e3,e6 +34823e5,d8 +34823e6,ff +34823e7,ff +34823e8,80 +34823e9,40 +34823ea,27 +34823eb,30 +34823ec,80 +34823ed,40 +34823ee,26 +34823ef,dc +34823f0,4d +34823f1,8e +34823f2,e0 +34823f3,32 +34823f5,ce +34823f6,ff +34823f7,ff +34823f8,80 +34823f9,40 +34823fa,27 +34823fb,30 +34823fc,80 +34823fd,40 +34823fe,26 +34823ff,f8 +3482400,4d +3482401,8f +3482402,e0 +3482403,32 +3482405,ce +3482406,ff +3482407,ff +3482408,80 +3482409,40 +348240a,27 +348240b,30 +348240c,80 +348240d,40 +348240e,26 +348240f,f8 +3482410,4d +3482411,90 +3482412,e0 +3482413,32 +3482415,ce +3482416,ff +3482417,ff +3482418,80 +3482419,40 +348241a,27 +348241b,30 +348241c,80 +348241d,40 +348241e,26 +348241f,f8 +3482420,4d +3482421,8c +3482422,ee +3482423,34 +3482425,bb +3482426,ff +3482427,ff +3482428,80 +3482429,40 +348242a,27 +348242b,30 +348242c,80 +348242d,40 +348242e,25 +348242f,70 +3482430,4d +3482431,8d +3482432,ee +3482433,34 +3482435,bb +3482436,ff +3482437,ff +3482438,80 +3482439,40 +348243a,27 +348243b,30 +348243c,80 +348243d,40 +348243e,25 +348243f,70 +3482440,4f +3482441,41 +3482442,ed +3482443,e9 +3482445,bd +3482446,ff +3482447,ff +3482448,80 +3482449,40 +348244a,27 +348244b,c8 +348244c,80 +348244d,40 +348244e,25 +348244f,70 +3482450,53 +3482451,41 +3482452,1e +3482453,e4 +3482455,cd +3482456,ff +3482457,ff +3482458,80 +3482459,40 +348245a,27 +348245b,e8 +348245c,80 +348245d,40 +348245e,26 +348245f,c4 +3482460,53 +3482461,41 +3482462,1f +3482463,e8 +3482465,cd +3482466,ff +3482467,ff +3482468,80 +3482469,40 +348246a,28 +348246b,8 +348246c,80 +348246d,40 +348246e,25 +348246f,70 +3482470,ff +3482471,ff +3482472,ff +3482473,ff +3482474,ff +3482475,ff +3482476,ff +3482477,ff +3482478,80 +3482479,40 +348247a,27 +348247b,30 +348247c,80 +348247d,40 +348247e,28 +348247f,30 +3482480,53 +3482481,41 +3482482,46 +3482483,4a +3482484,1 +3482485,e +3482486,ff +3482487,ff +3482488,80 +3482489,40 +348248a,28 +348248b,78 +348248c,80 +348248d,40 +348248e,28 +348248f,5c +3482490,53 +3482491,41 +3482492,3 +3482493,b0 +3482495,b6 +3482496,6 +3482497,ff +3482498,80 +3482499,40 +348249a,28 +348249b,88 +348249c,80 +348249d,40 +348249e,25 +348249f,70 +34824a0,53 +34824a1,41 +34824a2,4 +34824a3,b1 +34824a5,b6 +34824a6,7 +34824a7,ff +34824a8,80 +34824a9,40 +34824aa,28 +34824ab,88 +34824ac,80 +34824ad,40 +34824ae,25 +34824af,70 +34824b0,53 +34824b1,41 +34824b2,5 +34824b3,b2 +34824b5,b6 +34824b6,8 +34824b7,ff +34824b8,80 +34824b9,40 +34824ba,28 +34824bb,88 +34824bc,80 +34824bd,40 +34824be,25 +34824bf,70 +34824c0,53 +34824c1,41 +34824c2,6 +34824c3,b3 +34824c5,b6 +34824c6,9 +34824c7,ff +34824c8,80 +34824c9,40 +34824ca,28 +34824cb,88 +34824cc,80 +34824cd,40 +34824ce,25 +34824cf,70 +34824d0,53 +34824d1,41 +34824d2,7 +34824d3,b6 +34824d5,b6 +34824d6,a +34824d7,ff +34824d8,80 +34824d9,40 +34824da,28 +34824db,88 +34824dc,80 +34824dd,40 +34824de,25 +34824df,70 +34824e0,53 +34824e1,41 +34824e2,8 +34824e3,b7 +34824e5,b6 +34824e6,b +34824e7,ff +34824e8,80 +34824e9,40 +34824ea,28 +34824eb,88 +34824ec,80 +34824ed,40 +34824ee,25 +34824ef,70 +34824f0,53 +34824f1,41 +34824f2,4 +34824f3,b8 +34824f5,b6 +34824f6,c +34824f7,ff +34824f8,80 +34824f9,40 +34824fa,28 +34824fb,88 +34824fc,80 +34824fd,40 +34824fe,25 +34824ff,70 +3482500,53 +3482501,41 +3482502,6 +3482503,b9 +3482505,b6 +3482506,d +3482507,ff +3482508,80 +3482509,40 +348250a,28 +348250b,88 +348250c,80 +348250d,40 +348250e,25 +348250f,70 +3482510,53 +3482511,41 +3482512,3 +3482513,ba +3482515,b6 +3482516,e +3482517,ff +3482518,80 +3482519,40 +348251a,28 +348251b,88 +348251c,80 +348251d,40 +348251e,25 +348251f,70 +3482520,53 +3482521,41 +3482522,8 +3482523,bb +3482525,b6 +3482526,f +3482527,ff +3482528,80 +3482529,40 +348252a,28 +348252b,88 +348252c,80 +348252d,40 +348252e,25 +348252f,70 +3482530,53 +3482531,41 +3482532,5 +3482533,bc +3482535,b6 +3482536,10 +3482537,ff +3482538,80 +3482539,40 +348253a,28 +348253b,88 +348253c,80 +348253d,40 +348253e,25 +348253f,70 +3482540,53 +3482541,41 +3482542,7 +3482543,bd +3482545,b6 +3482546,11 +3482547,ff +3482548,80 +3482549,40 +348254a,28 +348254b,88 +348254c,80 +348254d,40 +348254e,25 +348254f,70 +3482550,4d +3482552,e5 +3482553,37 +3482555,c7 +3482556,ff +3482557,ff +3482558,80 +3482559,40 +348255a,27 +348255b,30 +348255c,80 +348255d,40 +348255e,25 +348255f,70 +3482560,4d +3482561,95 +3482562,b8 +3482563,dc +3482564,1 +3482565,19 +3482566,ff +3482567,ff +3482568,80 +3482569,40 +348256a,27 +348256b,30 +348256c,80 +348256d,40 +348256e,27 +348256f,14 +3482570,3 +3482571,e0 +3482573,8 +3482574,34 +3482575,a2 +3482578,90 +3482579,88 +348257b,7d +348257c,34 +348257d,1 +348257f,ff +3482580,11 +3482581,1 +3482583,2 +3482584,34 +3482585,2 +3482587,8 +3482588,34 +3482589,2 +348258b,9 +348258c,3 +348258d,e0 +348258f,8 +3482594,90 +3482595,88 +3482597,a3 +3482598,31 +3482599,8 +348259b,c0 +348259c,11 +348259f,5 +34825a0,34 +34825a1,2 +34825a3,54 +34825a4,34 +34825a5,1 +34825a7,40 +34825a8,11 +34825a9,1 +34825ab,2 +34825ac,34 +34825ad,2 +34825af,35 +34825b0,34 +34825b1,2 +34825b3,36 +34825b4,3 +34825b5,e0 +34825b7,8 +34825bc,90 +34825bd,88 +34825bf,a3 +34825c0,31 +34825c1,8 +34825c3,18 +34825c4,11 +34825c7,5 +34825c8,34 +34825c9,2 +34825cb,32 +34825cc,34 +34825cd,1 +34825cf,8 +34825d0,11 +34825d1,1 +34825d3,2 +34825d4,34 +34825d5,2 +34825d7,33 +34825d8,34 +34825d9,2 +34825db,34 +34825dc,3 +34825dd,e0 +34825df,8 +34825e4,90 +34825e5,88 +34825e7,a3 +34825e8,31 +34825e9,8 +34825eb,3 +34825ec,11 +34825ef,5 +34825f0,34 +34825f1,2 +34825f3,4 +34825f4,34 +34825f5,1 +34825f7,1 +34825f8,11 +34825f9,1 +34825fb,2 +34825fc,34 +34825fd,2 +34825ff,30 +3482600,34 +3482601,2 +3482603,31 +3482604,3 +3482605,e0 +3482607,8 +348260c,90 +348260d,88 +348260f,a2 +3482610,31 +3482611,8 +3482613,c0 +3482614,11 +3482617,5 +3482618,34 +3482619,2 +348261b,5 +348261c,34 +348261d,1 +348261f,40 +3482620,11 +3482621,1 +3482623,2 +3482624,34 +3482625,2 +3482627,60 +3482628,34 +3482629,2 +348262b,7b +348262c,3 +348262d,e0 +348262f,8 +3482634,90 +3482635,88 +3482637,a2 +3482638,31 +3482639,8 +348263b,30 +348263c,11 +348263f,5 +3482640,34 +3482641,2 +3482643,45 +3482644,34 +3482645,9 +3482647,10 +3482648,11 +3482649,9 +348264b,2 +348264c,34 +348264d,2 +348264f,46 +3482650,34 +3482651,a2 +3482654,3 +3482655,e0 +3482657,8 +348265c,90 +348265d,88 +348265f,a2 +3482660,35 +3482661,8 +3482663,30 +3482664,a0 +3482665,88 +3482667,a2 +3482668,3 +3482669,e0 +348266b,8 +3482670,90 +3482671,88 +3482673,a2 +3482674,31 +3482675,8 +3482677,6 +3482678,11 +348267b,2 +348267c,34 +348267d,2 +348267f,37 +3482680,34 +3482681,2 +3482683,38 +3482684,3 +3482685,e0 +3482687,8 +348268c,90 +348268d,88 +348268f,a1 +3482690,31 +3482691,8 +3482693,20 +3482694,11 +3482697,2 +3482698,34 +3482699,2 +348269b,79 +348269c,34 +348269d,2 +348269f,7a +34826a0,3 +34826a1,e0 +34826a3,8 +34826a8,90 +34826a9,88 +34826ab,a1 +34826ac,31 +34826ad,8 +34826af,4 +34826b0,11 +34826b3,2 +34826b4,34 +34826b5,2 +34826b7,77 +34826b8,34 +34826b9,2 +34826bb,78 +34826bc,3 +34826bd,e0 +34826bf,8 +34826c4,90 +34826c5,88 +34826c7,32 +34826c8,11 +34826cb,2 +34826cc,34 +34826cd,2 +34826cf,c0 +34826d0,34 +34826d1,2 +34826d3,c1 +34826d4,3 +34826d5,e0 +34826d7,8 +34826dc,90 +34826dd,88 +34826df,a3 +34826e0,31 +34826e1,8 +34826e3,3 +34826e4,11 +34826e7,2 +34826e8,34 +34826e9,2 +34826eb,4d +34826ec,34 +34826ed,a2 +34826f0,3 +34826f1,e0 +34826f3,8 +34826f8,90 +34826f9,88 +34826fb,a3 +34826fc,31 +34826fd,8 +34826ff,18 +3482700,11 +3482703,2 +3482704,34 +3482705,2 +3482707,4d +3482708,34 +3482709,a2 +348270c,3 +348270d,e0 +348270f,8 +3482714,90 +3482715,88 +3482717,a2 +3482718,31 +3482719,8 +348271b,c0 +348271c,11 +348271f,2 +3482720,34 +3482721,2 +3482723,4d +3482724,34 +3482725,a2 +3482728,3 +3482729,e0 +348272b,8 +3482730,3 +3482731,e0 +3482733,8 +3482738,34 +3482739,8 +348273b,1 +348273c,a0 +348273d,88 +348273f,3e +3482740,3 +3482741,e0 +3482743,8 +3482748,24 +3482749,88 +348274b,86 +348274c,24 +348274d,9 +348274e,ff +348274f,ff +3482750,25 +3482751,29 +3482753,1 +3482754,34 +3482755,1 +3482757,3 +3482759,29 +348275a,8 +348275b,2a +348275c,14 +348275d,20 +348275f,7 +3482764,1 +3482765,9 +3482766,50 +3482767,21 +3482768,91 +3482769,4b +348276c,34 +348276d,1 +348276f,ff +3482770,15 +3482771,61 +3482772,ff +3482773,f7 +3482778,a1 +3482779,45 +348277c,3 +348277d,e0 +348277f,8 +3482784,24 +3482785,88 +3482787,a8 +3482788,1 +3482789,6 +348278a,40 +348278b,21 +348278c,91 +348278d,9 +3482790,1 +3482791,25 +3482792,48 +3482793,25 +3482794,a1 +3482795,9 +3482798,3 +3482799,e0 +348279b,8 +34827a0,24 +34827a1,88 +34827a3,bc +34827a4,1 +34827a5,5 +34827a6,40 +34827a7,21 +34827a8,81 +34827a9,9 +34827ac,5 +34827ad,21 +34827af,2 +34827b4,34 +34827b5,9 +34827b8,25 +34827b9,29 +34827bb,1 +34827bc,a1 +34827bd,9 +34827c0,3 +34827c1,e0 +34827c3,8 +34827c8,34 +34827c9,8 +34827cb,1 +34827cc,a0 +34827cd,88 +34827cf,3d +34827d0,34 +34827d1,8 +34827d3,14 +34827d4,a0 +34827d5,88 +34827d7,cf +34827d8,34 +34827d9,8 +34827da,1 +34827db,40 +34827dc,a4 +34827dd,88 +34827de,14 +34827df,24 +34827e0,3 +34827e1,e0 +34827e3,8 +34827e8,34 +34827e9,8 +34827eb,1 +34827ec,a0 +34827ed,88 +34827ef,32 +34827f0,a0 +34827f1,88 +34827f3,3a +34827f4,34 +34827f5,8 +34827f7,30 +34827f8,a4 +34827f9,88 +34827fa,13 +34827fb,f4 +34827fc,a0 +34827fd,88 +34827ff,33 +3482800,3 +3482801,e0 +3482803,8 +3482808,34 +3482809,8 +348280b,2 +348280c,a0 +348280d,88 +348280f,32 +3482810,34 +3482811,8 +3482813,1 +3482814,a0 +3482815,88 +3482817,3a +3482818,a0 +3482819,88 +348281b,3c +348281c,34 +348281d,8 +348281f,60 +3482820,a4 +3482821,88 +3482822,13 +3482823,f4 +3482824,a0 +3482825,88 +3482827,33 +3482828,3 +3482829,e0 +348282b,8 +3482830,90 +3482831,88 +3482833,7c +3482834,34 +3482835,1 +3482837,ff +3482838,11 +3482839,1 +348283b,6 +348283c,34 +348283d,2 +348283f,6b +3482840,90 +3482841,88 +3482843,94 +3482844,2d +3482845,8 +3482847,6 +3482848,11 +348284b,2 +348284c,34 +348284d,2 +348284f,6a +3482850,34 +3482851,2 +3482853,3 +3482854,3 +3482855,e0 +3482857,8 +348285c,90 +348285d,88 +348285f,7b +3482860,34 +3482861,1 +3482863,ff +3482864,11 +3482865,1 +3482867,2 +3482868,34 +3482869,a2 +348286c,34 +348286d,2 +348286f,c +3482870,3 +3482871,e0 +3482873,8 +3482878,34 +3482879,8 +348287b,7 +348287c,a0 +348287d,88 +348287f,7b +3482880,3 +3482881,e0 +3482883,8 +3482888,34 +3482889,8 +348288b,1 +348288d,a8 +348288e,40 +348288f,4 +3482890,8c +3482891,89 +3482893,a4 +3482894,1 +3482895,28 +3482896,48 +3482897,25 +3482898,ac +3482899,89 +348289b,a4 +348289c,3 +348289d,e0 +348289f,8 +34828a4,30 +34828a5,84 +34828a7,ff +34828a8,3c +34828a9,8 +34828aa,80 +34828ab,12 +34828ac,25 +34828ad,8 +34828ae,a5 +34828af,d0 +34828b0,34 +34828b1,1 +34828b3,8c +34828b4,10 +34828b5,81 +34828b7,16 +34828b8,91 +34828b9,2 +34828bb,75 +34828bc,34 +34828bd,1 +34828bf,8d +34828c0,10 +34828c1,81 +34828c3,13 +34828c4,91 +34828c5,2 +34828c7,75 +34828c8,10 +34828c9,80 +34828cb,11 +34828cc,91 +34828cd,2 +34828cf,74 +34828d0,34 +34828d1,1 +34828d3,8a +34828d4,10 +34828d5,81 +34828d7,e +34828d8,91 +34828d9,2 +34828db,74 +34828dc,34 +34828dd,1 +34828df,8b +34828e0,10 +34828e1,81 +34828e3,b +34828e4,91 +34828e5,2 +34828e7,74 +34828e8,34 +34828e9,1 +34828eb,58 +34828ec,10 +34828ed,81 +34828ef,8 +34828f0,34 +34828f1,2 +34828f4,34 +34828f5,1 +34828f7,78 +34828f8,10 +34828f9,81 +34828fb,5 +34828fc,34 +34828fd,2 +3482900,34 +3482901,1 +3482903,79 +3482904,10 +3482905,81 +3482907,2 +3482908,34 +3482909,2 +348290c,34 +348290d,2 +348290f,ff +3482910,3 +3482911,e0 +3482913,8 +3482918,27 +3482919,bd +348291a,ff +348291b,e0 +348291c,af +348291d,bf +348291f,10 +3482920,af +3482921,b0 +3482923,14 +3482924,c +3482925,10 +3482926,b +3482927,22 +348292c,4 +348292d,41 +348292f,2 +3482934,34 +3482935,2 +3482937,5b +3482939,40 +348293a,20 +348293b,21 +348293c,c +348293d,10 +348293e,b +348293f,93 +3482944,10 +3482945,60 +3482947,16 +3482948,af +3482949,a3 +348294b,1c +348294c,3c +348294d,8 +348294e,80 +348294f,40 +3482950,25 +3482951,8 +3482952,20 +3482954,85 +3482955,9 +3482957,2 +3482958,11 +3482959,20 +348295b,3 +348295c,34 +348295d,a +348295f,1 +3482960,10 +3482963,c +3482964,a5 +3482965,a +3482968,3c +3482969,4 +348296a,80 +348296b,12 +348296c,24 +348296d,84 +348296e,a5 +348296f,d0 +3482970,90 +3482971,65 +3482973,6 +3482974,90 +3482975,66 +3482977,7 +3482978,8c +3482979,69 +348297b,8 +348297c,1 +348297d,20 +348297e,f8 +348297f,9 +3482984,8f +3482985,a3 +3482987,1c +3482988,90 +3482989,65 +348298b,1 +348298c,c +348298d,1 +348298e,bf +348298f,73 +3482990,2 +3482991,20 +3482992,20 +3482993,21 +3482994,8f +3482995,a3 +3482997,1c +3482998,90 +3482999,65 +348299b,3 +348299c,10 +348299f,11 +34829a0,3c +34829a1,9 +34829a2,80 +34829a3,3b +34829a4,25 +34829a5,29 +34829a6,9e +34829a7,7e +34829a8,34 +34829a9,a +34829ab,6 +34829ad,4a +34829af,18 +34829b2,50 +34829b3,12 +34829b4,1 +34829b5,2a +34829b6,80 +34829b7,21 +34829b8,82 +34829b9,5 +34829bc,3c +34829bd,8 +34829be,80 +34829bf,40 +34829c0,25 +34829c1,8 +34829c2,20 +34829c4,85 +34829c5,9 +34829c7,2 +34829c8,11 +34829c9,20 +34829cb,3 +34829cc,34 +34829cd,a +34829cf,1 +34829d0,a5 +34829d1,a +34829d4,34 +34829d5,5 +34829d7,41 +34829d8,c +34829d9,1 +34829da,bf +34829db,73 +34829dc,2 +34829dd,20 +34829de,20 +34829df,21 +34829e0,92 +34829e1,5 +34829e3,3 +34829e4,2 +34829e5,20 +34829e6,20 +34829e7,21 +34829e8,c +34829e9,3 +34829ea,73 +34829eb,85 +34829ee,30 +34829ef,21 +34829f0,8f +34829f1,bf +34829f3,10 +34829f4,8f +34829f5,b0 +34829f7,14 +34829f8,27 +34829f9,bd +34829fb,20 +34829fc,3 +34829fd,e0 +34829ff,8 +3482a04,8f +3482a05,a6 +3482a07,30 +3482a08,84 +3482a09,c5 +3482a0b,4 +3482a0c,8 +3482a0d,10 +3482a0e,a +3482a0f,89 +3482a14,8f +3482a15,b9 +3482a17,2c +3482a18,87 +3482a19,25 +3482a1b,4 +3482a1c,8 +3482a1d,10 +3482a1e,a +3482a1f,89 +3482a24,3c +3482a25,a +3482a26,80 +3482a27,40 +3482a28,25 +3482a29,4a +3482a2a,20 +3482a2b,8 +3482a2c,8d +3482a2d,4b +3482a2f,c +3482a30,11 +3482a31,60 +3482a33,2 +3482a38,95 +3482a39,45 +3482a3b,4 +3482a3c,3c +3482a3d,a +3482a3e,80 +3482a3f,1e +3482a40,25 +3482a41,4a +3482a42,89 +3482a43,84 +3482a44,a5 +3482a45,40 +3482a48,3c +3482a49,9 +3482a4a,80 +3482a4b,40 +3482a4c,25 +3482a4d,29 +3482a4e,20 +3482a4f,18 +3482a50,81 +3482a51,2a +3482a53,3 +3482a54,5 +3482a55,40 +3482a57,b +3482a58,1 +3482a59,2a +3482a5a,48 +3482a5b,20 +3482a5c,81 +3482a5d,28 +3482a60,34 +3482a61,a +3482a63,7f +3482a64,15 +3482a65,a +3482a67,6 +3482a6c,3c +3482a6d,a +3482a6e,80 +3482a6f,12 +3482a70,25 +3482a71,4a +3482a72,a5 +3482a73,d0 +3482a74,85 +3482a75,48 +3482a77,90 +3482a78,21 +3482a79,8 +3482a7b,1 +3482a7c,a5 +3482a7d,48 +3482a7f,90 +3482a80,a1 +3482a81,20 +3482a84,3 +3482a85,e0 +3482a87,8 +3482a8c,3c +3482a8d,8 +3482a8e,80 +3482a8f,40 +3482a90,25 +3482a91,8 +3482a92,20 +3482a93,8 +3482a94,8d +3482a95,9 +3482a97,c +3482a98,11 +3482a99,20 +3482a9b,2 +3482aa0,81 +3482aa1,3 +3482aa3,2 +3482aa5,3 +3482aa6,f +3482aa7,c3 +3482aa9,61 +3482aaa,40 +3482aab,26 +3482aac,1 +3482aad,1 +3482aae,40 +3482aaf,23 +3482ab0,a0 +3482ab1,88 +3482ab2,8 +3482ab3,52 +3482ab4,3 +3482ab5,e0 +3482ab7,8 +3482abc,90 +3482abd,45 +3482abf,3 +3482ac0,3c +3482ac1,8 +3482ac2,80 +3482ac3,40 +3482ac4,25 +3482ac5,8 +3482ac6,20 +3482ac7,8 +3482ac8,8d +3482ac9,9 +3482acb,c +3482acc,11 +3482acd,20 +3482acf,2 +3482ad4,91 +3482ad5,5 +3482ad7,3 +3482ad8,3 +3482ad9,e0 +3482adb,8 +3482ae0,8f +3482ae1,a2 +3482ae3,24 +3482ae4,90 +3482ae5,45 +3482ae8,3c +3482ae9,8 +3482aea,80 +3482aeb,40 +3482aec,25 +3482aed,8 +3482aee,20 +3482af0,85 +3482af1,9 +3482af3,2 +3482af4,11 +3482af5,20 +3482af7,4 +3482af8,34 +3482af9,a +3482afb,1 +3482afc,a5 +3482afd,a +3482b00,10 +3482b03,18 +3482b04,34 +3482b05,5 +3482b07,41 +3482b08,3c +3482b09,8 +3482b0a,80 +3482b0b,40 +3482b0c,25 +3482b0d,8 +3482b0e,20 +3482b0f,8 +3482b10,8d +3482b11,9 +3482b13,c +3482b14,11 +3482b15,20 +3482b17,13 +3482b1c,91 +3482b1d,5 +3482b1f,1 +3482b20,af +3482b21,a4 +3482b24,af +3482b25,a5 +3482b27,4 +3482b28,af +3482b29,a6 +3482b2b,8 +3482b2c,27 +3482b2d,bd +3482b2e,ff +3482b2f,e8 +3482b30,af +3482b31,bf +3482b33,10 +3482b34,3c +3482b35,4 +3482b36,80 +3482b37,12 +3482b38,24 +3482b39,84 +3482b3a,a5 +3482b3b,d0 +3482b3c,91 +3482b3d,5 +3482b3f,6 +3482b40,91 +3482b41,6 +3482b43,7 +3482b44,8d +3482b45,9 +3482b47,8 +3482b48,1 +3482b49,20 +3482b4a,f8 +3482b4b,9 +3482b50,8f +3482b51,bf +3482b53,10 +3482b54,27 +3482b55,bd +3482b57,18 +3482b58,8f +3482b59,a4 +3482b5c,8f +3482b5d,a5 +3482b5f,4 +3482b60,8f +3482b61,a6 +3482b63,8 +3482b64,3 +3482b65,e0 +3482b67,8 +3482b6c,a0 +3482b6d,e6 +3482b6e,4 +3482b6f,24 +3482b70,27 +3482b71,bd +3482b72,ff +3482b73,e0 +3482b74,af +3482b75,a2 +3482b77,10 +3482b78,af +3482b79,a3 +3482b7b,14 +3482b7c,af +3482b7d,bf +3482b7f,18 +3482b80,c +3482b81,10 +3482b82,a +3482b83,e8 +3482b88,8f +3482b89,a2 +3482b8b,10 +3482b8c,8f +3482b8d,a3 +3482b8f,14 +3482b90,8f +3482b91,bf +3482b93,18 +3482b94,27 +3482b95,bd +3482b97,20 +3482b98,3 +3482b99,e0 +3482b9b,8 +3482ba0,27 +3482ba1,bd +3482ba2,ff +3482ba3,e8 +3482ba4,af +3482ba5,bf +3482ba7,10 +3482ba8,3c +3482ba9,8 +3482baa,80 +3482bab,40 +3482bac,25 +3482bad,8 +3482bae,20 +3482baf,8 +3482bb0,ad +3482bb4,ad +3482bb7,4 +3482bb8,ad +3482bbb,8 +3482bbc,ad +3482bbf,c +3482bc0,3c +3482bc1,8 +3482bc2,80 +3482bc3,1e +3482bc4,25 +3482bc5,8 +3482bc6,aa +3482bc7,30 +3482bc8,81 +3482bc9,9 +3482bca,4 +3482bcb,24 +3482bcc,11 +3482bcd,20 +3482bcf,2a +3482bd5,9 +3482bd6,f +3482bd7,c3 +3482bd8,1 +3482bd9,21 +3482bda,20 +3482bdb,26 +3482bdd,81 +3482bde,20 +3482bdf,23 +3482be0,8d +3482be1,5 +3482be2,4 +3482be3,28 +3482be4,c +3482be5,10 +3482be6,b +3482be7,22 +3482bec,4 +3482bed,40 +3482bef,22 +3482bf4,34 +3482bf5,44 +3482bf8,c +3482bf9,10 +3482bfa,b +3482bfb,93 +3482c00,10 +3482c01,60 +3482c03,c +3482c08,3c +3482c09,8 +3482c0a,80 +3482c0b,40 +3482c0c,25 +3482c0d,8 +3482c0e,20 +3482c0f,8 +3482c10,8c +3482c11,69 +3482c14,ad +3482c15,9 +3482c18,8c +3482c19,69 +3482c1b,4 +3482c1c,ad +3482c1d,9 +3482c1f,4 +3482c20,8c +3482c21,69 +3482c23,8 +3482c24,ad +3482c25,9 +3482c27,8 +3482c28,34 +3482c29,9 +3482c2b,1 +3482c2c,ad +3482c2d,9 +3482c2f,c +3482c30,90 +3482c31,62 +3482c34,3c +3482c35,8 +3482c36,80 +3482c37,1e +3482c38,25 +3482c39,8 +3482c3a,aa +3482c3b,30 +3482c3c,8d +3482c3d,9 +3482c3e,4 +3482c3f,28 +3482c40,95 +3482c41,2a +3482c44,34 +3482c45,1 +3482c47,a +3482c48,15 +3482c49,41 +3482c4b,6 +3482c50,95 +3482c51,2a +3482c53,1c +3482c54,31 +3482c55,4a +3482c56,f0 +3482c57,1f +3482c59,2 +3482c5a,59 +3482c5b,40 +3482c5c,1 +3482c5d,4b +3482c5e,50 +3482c5f,25 +3482c60,a5 +3482c61,2a +3482c63,1c +3482c64,81 +3482c65,9 +3482c66,4 +3482c67,24 +3482c68,5 +3482c69,21 +3482c6b,2 +3482c71,2 +3482c72,10 +3482c73,23 +3482c74,a1 +3482c75,2 +3482c76,4 +3482c77,24 +3482c78,8f +3482c79,bf +3482c7b,10 +3482c7c,27 +3482c7d,bd +3482c7f,18 +3482c80,3 +3482c81,e0 +3482c83,8 +3482c88,27 +3482c89,bd +3482c8a,ff +3482c8b,e8 +3482c8c,af +3482c8d,bf +3482c8f,10 +3482c90,c +3482c91,10 +3482c92,b +3482c93,30 +3482c98,24 +3482c99,1 +3482c9a,ff +3482c9b,ff +3482c9c,10 +3482c9d,41 +3482c9f,4 +3482ca4,34 +3482ca5,44 +3482ca8,c +3482ca9,10 +3482caa,b +3482cab,6e +3482cb0,8f +3482cb1,bf +3482cb3,10 +3482cb4,27 +3482cb5,bd +3482cb7,18 +3482cb8,3 +3482cb9,e0 +3482cbb,8 +3482cc0,3c +3482cc1,2 +3482cc2,80 +3482cc3,1d +3482cc4,24 +3482cc5,42 +3482cc6,84 +3482cc7,a0 +3482cc8,94 +3482cc9,42 +3482ccb,a4 +3482ccc,34 +3482ccd,8 +3482cd0,34 +3482cd1,89 +3482cd4,94 +3482cd5,aa +3482cd8,34 +3482cd9,1 +3482cda,1 +3482cdb,9c +3482cdc,15 +3482cdd,41 +3482cdf,8 +3482ce4,34 +3482ce5,8 +3482ce7,3 +3482ce8,94 +3482ce9,ab +3482ceb,1c +3482cec,31 +3482ced,69 +3482cef,ff +3482cf0,31 +3482cf1,62 +3482cf2,1f +3482cf5,2 +3482cf6,12 +3482cf7,2 +3482cf8,10 +3482cfb,1f +3482d00,34 +3482d01,1 +3482d03,a +3482d04,15 +3482d05,41 +3482d07,e +3482d0c,94 +3482d0d,ab +3482d0f,1c +3482d10,34 +3482d11,1 +3482d13,10 +3482d14,14 +3482d15,41 +3482d17,8 +3482d1c,31 +3482d1d,6c +3482d1e,f +3482d1f,e0 +3482d20,34 +3482d21,1 +3482d22,e +3482d23,a0 +3482d24,15 +3482d25,81 +3482d27,4 +3482d2c,24 +3482d2d,2 +3482d2e,ff +3482d2f,ff +3482d30,10 +3482d33,1f +3482d38,34 +3482d39,8 +3482d3b,1 +3482d3c,31 +3482d3d,69 +3482d3f,1f +3482d40,34 +3482d41,1 +3482d43,15 +3482d44,15 +3482d45,41 +3482d47,c +3482d4c,34 +3482d4d,1 +3482d4f,3e +3482d50,10 +3482d51,81 +3482d53,7 +3482d58,34 +3482d59,1 +3482d5b,42 +3482d5c,10 +3482d5d,81 +3482d5f,4 +3482d64,24 +3482d65,2 +3482d66,ff +3482d67,ff +3482d68,10 +3482d6b,11 +3482d70,34 +3482d71,8 +3482d73,2 +3482d74,90 +3482d75,a9 +3482d76,1 +3482d77,41 +3482d78,34 +3482d79,1 +3482d7a,1 +3482d7b,1a +3482d7c,15 +3482d7d,41 +3482d7f,8 +3482d84,34 +3482d85,1 +3482d87,3e +3482d88,14 +3482d89,41 +3482d8b,5 +3482d90,34 +3482d91,8 +3482d93,4 +3482d94,3c +3482d95,b +3482d96,80 +3482d97,12 +3482d98,25 +3482d99,6b +3482d9a,a5 +3482d9b,d0 +3482d9c,81 +3482d9d,62 +3482d9e,13 +3482d9f,97 +3482da1,2 +3482da2,12 +3482da5,48 +3482da6,10 +3482da7,25 +3482da9,2 +3482daa,12 +3482dad,49 +3482dae,10 +3482daf,25 +3482db0,3 +3482db1,e0 +3482db3,8 +3482db8,24 +3482db9,2 +3482dba,ff +3482dbb,ff +3482dbc,3c +3482dbd,8 +3482dbe,80 +3482dbf,40 +3482dc0,25 +3482dc1,8 +3482dc2,1c +3482dc4,81 +3482dc5,9 +3482dc8,3c +3482dc9,8 +3482dca,80 +3482dcb,12 +3482dcc,25 +3482dcd,8 +3482dce,a5 +3482dcf,d0 +3482dd0,a5 +3482dd1,9 +3482dd2,14 +3482dd3,6 +3482dd4,3c +3482dd5,8 +3482dd6,80 +3482dd7,40 +3482dd8,25 +3482dd9,8 +3482dda,f +3482ddb,fc +3482ddc,25 +3482ddd,8 +3482ddf,4 +3482de0,8d +3482de1,9 +3482de4,11 +3482de5,20 +3482de7,17 +3482ded,9 +3482dee,52 +3482def,2 +3482df0,31 +3482df1,4b +3482df2,f8 +3482df5,b +3482df6,5a +3482df7,c2 +3482df8,3c +3482df9,c +3482dfa,ff +3482dfb,ff +3482dfc,35 +3482dfd,8c +3482dfe,7 +3482dff,ff +3482e00,1 +3482e01,4c +3482e02,50 +3482e03,24 +3482e04,15 +3482e05,44 +3482e06,ff +3482e07,f5 +3482e0c,31 +3482e0d,22 +3482e0f,ff +3482e10,3c +3482e11,8 +3482e12,80 +3482e13,12 +3482e14,25 +3482e15,8 +3482e16,a5 +3482e17,d0 +3482e18,a5 +3482e19,b +3482e1a,14 +3482e1b,6 +3482e1c,3c +3482e1d,9 +3482e1e,80 +3482e1f,40 +3482e20,25 +3482e21,29 +3482e22,20 +3482e24,3c +3482e25,c +3482e26,80 +3482e27,40 +3482e28,25 +3482e29,8c +3482e2a,1c +3482e2c,81 +3482e2d,8c +3482e30,11 +3482e31,6c +3482e33,4 +3482e34,a5 +3482e35,20 +3482e37,2 +3482e38,a1 +3482e39,2b +3482e3b,2 +3482e3c,a1 +3482e3d,22 +3482e3f,3 +3482e40,ad +3482e41,24 +3482e43,4 +3482e44,3 +3482e45,e0 +3482e47,8 +3482e4c,27 +3482e4d,bd +3482e4e,ff +3482e4f,e0 +3482e50,af +3482e51,b0 +3482e53,10 +3482e54,af +3482e55,b1 +3482e57,14 +3482e58,af +3482e59,bf +3482e5b,18 +3482e5c,34 +3482e5d,82 +3482e60,34 +3482e61,50 +3482e64,26 +3482e65,8 +3482e66,ff +3482e67,80 +3482e68,5 +3482e6b,12 +3482e70,3c +3482e71,11 +3482e72,80 +3482e73,40 +3482e74,26 +3482e75,31 +3482e76,20 +3482e77,50 +3482e78,34 +3482e79,9 +3482e7b,10 +3482e7c,1 +3482e7d,9 +3482e7f,18 +3482e82,40 +3482e83,12 +3482e84,2 +3482e85,28 +3482e86,88 +3482e87,21 +3482e88,3c +3482e89,4 +3482e8a,80 +3482e8b,12 +3482e8c,24 +3482e8d,84 +3482e8e,a5 +3482e8f,d0 +3482e90,36 +3482e91,5 +3482e94,8e +3482e95,28 +3482e97,c +3482e98,1 +3482e9a,f8 +3482e9b,9 +3482ea0,14 +3482ea1,50 +3482ea2,ff +3482ea3,ef +3482ea8,36 +3482ea9,23 +3482eac,10 +3482eaf,2 +3482eb4,34 +3482eb5,3 +3482eb8,8f +3482eb9,b0 +3482ebb,10 +3482ebc,8f +3482ebd,b1 +3482ebf,14 +3482ec0,8f +3482ec1,bf +3482ec3,18 +3482ec4,27 +3482ec5,bd +3482ec7,20 +3482ec8,3 +3482ec9,e0 +3482ecb,8 +3482ed0,8c +3482ed1,88 +3482ed2,1d +3482ed3,2c +3482ed4,34 +3482ed5,9 +3482ed7,1 +3482ed9,9 +3482eda,4e +3482edc,1 +3482edd,9 +3482ede,10 +3482edf,24 +3482ee0,10 +3482ee1,40 +3482ee3,24 +3482ee8,94 +3482ee9,ca +3482eea,2 +3482eeb,dc +3482eec,3c +3482eed,b +3482eee,80 +3482eef,12 +3482ef0,25 +3482ef1,6b +3482ef2,a5 +3482ef3,d0 +3482ef4,94 +3482ef5,8c +3482ef7,a4 +3482ef8,34 +3482ef9,1 +3482efb,3d +3482efc,11 +3482efd,81 +3482eff,a +3482f05,8a +3482f06,60 +3482f07,21 +3482f08,91 +3482f09,8d +3482f0a,1d +3482f0b,28 +3482f0c,15 +3482f0d,a0 +3482f0f,19 +3482f14,34 +3482f15,d +3482f17,1 +3482f18,a1 +3482f19,8d +3482f1a,1d +3482f1b,28 +3482f1c,25 +3482f1d,4a +3482f1f,3 +3482f20,10 +3482f23,9 +3482f28,34 +3482f29,c +3482f2b,1 +3482f2c,1 +3482f2d,4c +3482f2e,60 +3482f2f,4 +3482f30,91 +3482f31,6d +3482f32,e +3482f33,f2 +3482f34,1 +3482f35,ac +3482f36,70 +3482f37,24 +3482f38,15 +3482f39,c0 +3482f3b,e +3482f40,1 +3482f41,ac +3482f42,70 +3482f43,25 +3482f44,a1 +3482f45,6e +3482f46,e +3482f47,f2 +3482f48,1 +3482f49,29 +3482f4a,48 +3482f4b,27 +3482f4c,1 +3482f4d,9 +3482f4e,40 +3482f4f,24 +3482f50,ac +3482f51,88 +3482f52,1d +3482f53,2c +3482f54,3c +3482f55,8 +3482f56,80 +3482f57,40 +3482f58,25 +3482f59,8 +3482f5a,1c +3482f5b,3 +3482f5c,1 +3482f5d,a +3482f5e,40 +3482f5f,21 +3482f60,81 +3482f61,8 +3482f64,3c +3482f65,9 +3482f66,80 +3482f67,40 +3482f68,25 +3482f69,29 +3482f6a,20 +3482f6b,18 +3482f6c,a1 +3482f6d,28 +3482f70,34 +3482f71,2 +3482f74,3 +3482f75,e0 +3482f77,8 +3482f7c,3c +3482f7d,8 +3482f7e,80 +3482f7f,40 +3482f80,25 +3482f81,8 +3482f82,1c +3482f83,1 +3482f84,81 +3482f85,8 +3482f88,10 +3482f8b,22 +3482f90,3c +3482f91,8 +3482f92,80 +3482f93,40 +3482f94,25 +3482f95,8 +3482f96,1c +3482f97,2 +3482f98,81 +3482f99,8 +3482f9c,10 +3482f9f,1d +3482fa4,34 +3482fa5,2 +3482fa7,ff +3482fa8,20 +3482fa9,e8 +3482faa,ff +3482fab,a6 +3482fac,21 +3482fad,8 +3482faf,61 +3482fb0,10 +3482fb3,18 +3482fb8,34 +3482fb9,8 +3482fbb,64 +3482fbc,10 +3482fbf,15 +3482fc4,3c +3482fc5,1 +3482fc6,80 +3482fc7,12 +3482fc8,24 +3482fc9,21 +3482fca,a5 +3482fcb,d0 +3482fcc,80 +3482fcd,28 +3482fce,e +3482fcf,de +3482fd0,35 +3482fd1,8 +3482fd3,1 +3482fd4,a0 +3482fd5,28 +3482fd6,e +3482fd7,de +3482fd8,34 +3482fd9,8 +3482fdb,68 +3482fdc,10 +3482fdf,d +3482fe4,3c +3482fe5,1 +3482fe6,80 +3482fe7,12 +3482fe8,24 +3482fe9,21 +3482fea,a5 +3482feb,d0 +3482fec,80 +3482fed,28 +3482fee,e +3482fef,de +3482ff0,35 +3482ff1,8 +3482ff3,4 +3482ff4,a0 +3482ff5,28 +3482ff6,e +3482ff7,de +3482ff8,34 +3482ff9,8 +3482ffb,6a +3482ffc,10 +3482fff,5 +3483004,34 +3483005,5 +3483007,3 +3483008,34 +3483009,8 +348300b,6b +348300c,10 +348300f,1 +3483014,3c +3483015,9 +3483016,80 +3483017,40 +3483018,25 +3483019,29 +348301a,20 +348301b,18 +348301c,3c +348301d,a +348301e,80 +348301f,40 +3483020,25 +3483021,4a +3483022,20 +3483023,1b +3483024,81 +3483025,2c +3483028,11 +3483029,88 +348302b,b +348302c,21 +348302d,29 +348302f,1 +3483030,15 +3483031,2a +3483032,ff +3483033,fc +3483038,3c +3483039,9 +348303a,80 +348303b,40 +348303c,25 +348303d,29 +348303e,20 +348303f,17 +3483040,21 +3483041,29 +3483043,1 +3483044,11 +3483045,2a +3483047,4 +3483048,81 +3483049,2c +348304c,15 +348304d,80 +348304e,ff +348304f,fc +3483054,a1 +3483055,28 +3483058,3 +3483059,e0 +348305b,8 +3483061,60 +3483062,78 +3483063,21 +3483064,81 +3483065,ec +3483066,e +3483067,df +3483068,31 +3483069,8e +348306b,80 +348306c,11 +348306d,c0 +348306f,3 +3483070,34 +3483071,3 +3483073,5 +3483074,3 +3483075,e0 +3483077,8 +3483078,34 +3483079,2 +348307b,2 +348307c,3 +348307d,e0 +348307f,8 +3483081,60 +3483082,10 +3483083,21 +3483084,85 +3483085,c2 +3483087,a4 +3483088,3c +3483089,8 +348308a,80 +348308b,12 +348308c,25 +348308d,8 +348308e,a5 +348308f,d0 +3483090,81 +3483091,9 +3483092,e +3483093,df +3483094,35 +3483095,29 +3483097,80 +3483098,a1 +3483099,9 +348309a,e +348309b,df +348309c,3 +348309d,e0 +348309f,8 +34830a4,27 +34830a5,bd +34830a6,ff +34830a7,f0 +34830a8,af +34830a9,bf +34830ab,4 +34830ac,c +34830ad,3 +34830ae,58 +34830af,86 +34830b4,3c +34830b5,c +34830b6,80 +34830b7,12 +34830b8,25 +34830b9,8c +34830ba,a5 +34830bb,d0 +34830bc,85 +34830bd,8d +34830be,f +34830bf,2e +34830c0,8d +34830c1,98 +34830c3,4 +34830c4,13 +34830c7,2 +34830c8,34 +34830c9,e +34830cb,1 +34830cc,34 +34830cd,e +34830cf,2 +34830d0,1 +34830d1,ae +34830d2,68 +34830d3,25 +34830d4,a5 +34830d5,8d +34830d6,f +34830d7,2e +34830d8,8f +34830d9,bf +34830db,4 +34830dc,27 +34830dd,bd +34830df,10 +34830e0,3 +34830e1,e0 +34830e3,8 +34830e8,84 +34830e9,8e +34830eb,1c +34830ec,21 +34830ed,cd +34830ee,ff +34830ef,ce +34830f0,5 +34830f1,a0 +34830f3,10 +34830f4,34 +34830f5,2 +34830f8,31 +34830f9,a9 +34830fb,7 +34830fc,34 +34830fd,a +34830ff,1 +3483100,1 +3483101,2a +3483102,50 +3483103,4 +3483105,d +3483106,48 +3483107,c2 +3483108,3c +3483109,c +348310a,80 +348310b,12 +348310c,25 +348310d,8c +348310e,a5 +348310f,d0 +3483110,1 +3483111,89 +3483112,60 +3483113,20 +3483114,81 +3483115,8b +3483116,5 +3483117,b4 +3483118,1 +3483119,6a +348311a,58 +348311b,24 +348311c,34 +348311d,2 +3483120,11 +3483121,60 +3483123,4 +3483128,34 +3483129,d +348312b,26 +348312c,a4 +348312d,8d +348312f,1c +3483130,34 +3483131,2 +3483133,1 +3483134,3 +3483135,e0 +3483137,8 +348313c,84 +348313d,ae +348313f,1c +3483140,21 +3483141,cd +3483142,ff +3483143,ce +3483144,5 +3483145,a0 +3483147,b +3483148,34 +3483149,2 +348314c,31 +348314d,a9 +348314f,7 +3483150,34 +3483151,a +3483153,1 +3483154,1 +3483155,2a +3483156,50 +3483157,4 +3483159,d +348315a,48 +348315b,c2 +348315c,3c +348315d,c +348315e,80 +348315f,12 +3483160,25 +3483161,8c +3483162,a5 +3483163,d0 +3483164,1 +3483165,89 +3483166,60 +3483167,20 +3483168,81 +3483169,8b +348316a,5 +348316b,b4 +348316c,1 +348316d,6a +348316e,58 +348316f,25 +3483170,a1 +3483171,8b +3483172,5 +3483173,b4 +3483174,3 +3483175,e0 +3483177,8 +348317c,27 +348317d,bd +348317e,ff +348317f,f0 +3483180,af +3483181,bf +3483183,8 +3483184,28 +3483185,81 +3483187,32 +3483188,10 +3483189,20 +348318b,3 +348318d,80 +348318e,10 +348318f,21 +3483190,3 +3483191,20 +3483192,f8 +3483193,9 +3483198,8f +3483199,bf +348319b,8 +348319c,27 +348319d,bd +348319f,10 +34831a0,3 +34831a1,e0 +34831a3,8 +34831a8,3c +34831a9,8 +34831aa,80 +34831ab,1d +34831ac,25 +34831ad,8 +34831ae,84 +34831af,a0 +34831b0,3c +34831b1,9 +34831b2,80 +34831b3,12 +34831b4,25 +34831b5,29 +34831b6,a5 +34831b7,d0 +34831b8,85 +34831b9,a +34831bb,a4 +34831bc,34 +34831bd,1 +34831bf,3e +34831c0,15 +34831c1,41 +34831c3,2 +34831c4,81 +34831c5,2b +34831c6,13 +34831c7,97 +34831c8,21 +34831c9,6a +34831cb,2d +34831cc,86 +34831cd,b +34831cf,1c +34831d0,21 +34831d1,6b +34831d3,1 +34831d4,34 +34831d5,c +34831d7,1 +34831d8,1 +34831d9,6c +34831da,60 +34831db,4 +34831dc,34 +34831dd,1 +34831df,1c +34831e0,1 +34831e1,41 +34831e3,18 +34831e6,68 +34831e7,12 +34831e8,1 +34831e9,2d +34831ea,70 +34831eb,20 +34831ec,8d +34831ed,cf +34831ef,e4 +34831f0,1 +34831f1,8f +34831f2,10 +34831f3,24 +34831f4,3 +34831f5,e0 +34831f7,8 +34831fc,3c +34831fd,8 +34831fe,80 +34831ff,1d +3483200,25 +3483201,8 +3483202,84 +3483203,a0 +3483204,3c +3483205,9 +3483206,80 +3483207,12 +3483208,25 +3483209,29 +348320a,a5 +348320b,d0 +348320c,85 +348320d,a +348320f,a4 +3483210,34 +3483211,1 +3483213,3e +3483214,15 +3483215,41 +3483217,2 +3483218,81 +3483219,2b +348321a,13 +348321b,97 +348321c,21 +348321d,6a +348321f,2d +3483220,84 +3483221,8b +3483223,1c +3483224,21 +3483225,6b +3483227,1 +3483228,34 +3483229,c +348322b,1 +348322c,1 +348322d,6c +348322e,60 +348322f,4 +3483230,34 +3483231,1 +3483233,1c +3483234,1 +3483235,41 +3483237,18 +348323a,68 +348323b,12 +348323c,1 +348323d,2d +348323e,70 +348323f,20 +3483240,8d +3483241,cf +3483243,e4 +3483244,1 +3483245,8f +3483246,78 +3483247,25 +3483248,ad +3483249,cf +348324b,e4 +348324c,3 +348324d,e0 +348324f,8 +3483254,af +3483255,a4 +3483257,68 +3483258,af +3483259,a5 +348325b,6c +348325c,af +348325d,a6 +348325f,70 +3483260,af +3483261,a7 +3483263,74 +3483264,27 +3483265,bd +3483266,ff +3483267,e8 +3483268,af +3483269,a3 +348326b,10 +348326c,af +348326d,bf +348326f,14 +3483270,3c +3483271,a +3483272,80 +3483273,1e +3483274,25 +3483275,4a +3483276,aa +3483277,30 +3483278,81 +3483279,48 +348327a,6 +348327b,6c +348327c,31 +348327d,8 +348327f,20 +3483280,15 +3483283,1f +3483288,3c +3483289,9 +348328a,80 +348328b,40 +348328c,25 +348328d,29 +348328e,20 +348328f,1b +3483290,34 +3483291,a +3483293,ff +3483294,a1 +3483295,2a +3483298,3c +3483299,9 +348329a,80 +348329b,40 +348329c,25 +348329d,29 +348329e,20 +348329f,18 +34832a0,24 +34832a1,a +34832a2,ff +34832a3,ff +34832a4,34 +34832a5,c +34832a7,3 +34832a8,21 +34832a9,4a +34832ab,1 +34832ac,11 +34832ad,4c +34832af,14 +34832b0,1 +34832b1,2a +34832b2,58 +34832b3,20 +34832b4,81 +34832b5,68 +34832b8,11 +34832ba,ff +34832bb,fb +34832c0,3c +34832c1,9 +34832c2,80 +34832c3,40 +34832c4,25 +34832c5,29 +34832c6,20 +34832c7,1b +34832c8,a1 +34832c9,2a +34832cc,3c +34832cd,9 +34832ce,80 +34832cf,1e +34832d0,25 +34832d1,29 +34832d2,89 +34832d3,84 +34832d4,34 +34832d5,a +34832d7,1 +34832d8,a5 +34832d9,2a +34832dc,3c +34832dd,9 +34832de,80 +34832df,48 +34832e0,34 +34832e1,a +34832e3,1 +34832e4,ad +34832e5,2a +34832e6,1 +34832e7,30 +34832e8,3c +34832e9,a +34832ea,80 +34832eb,1e +34832ec,25 +34832ed,4a +34832ee,aa +34832ef,30 +34832f0,a1 +34832f1,48 +34832f2,4 +34832f3,24 +34832f4,ad +34832f5,49 +34832f6,4 +34832f7,28 +34832f8,c +34832f9,10 +34832fa,a +34832fb,e8 +3483300,8f +3483301,a3 +3483303,10 +3483304,8f +3483305,bf +3483307,14 +3483308,27 +3483309,bd +348330b,18 +348330c,8f +348330d,a4 +348330f,68 +3483310,8f +3483311,a5 +3483313,6c +3483314,8f +3483315,a6 +3483317,70 +3483318,8f +3483319,a7 +348331b,74 +348331c,84 +348331d,6e +348331e,13 +348331f,c4 +3483320,3 +3483321,e0 +3483323,8 +3483328,93 +3483329,19 +348332b,74 +348332c,34 +348332d,1 +348332f,ff +3483330,17 +3483331,21 +3483333,2 +3483338,34 +3483339,19 +348333b,2c +348333c,3 +348333d,e0 +348333f,8 +3483340,a7 +3483341,b9 +3483343,9a +3483344,93 +3483345,2c +3483347,74 +3483348,34 +3483349,1 +348334b,ff +348334c,15 +348334d,81 +348334f,2 +3483354,34 +3483355,c +3483357,2c +3483358,3 +3483359,e0 +348335b,8 +3483360,91 +3483361,ae +3483363,74 +3483364,34 +3483365,1 +3483367,ff +3483368,15 +3483369,c1 +348336b,2 +3483370,34 +3483371,e +3483373,2c +3483374,3 +3483375,e0 +3483377,8 +3483378,a7 +3483379,ae +348337b,9a +348337c,91 +348337d,cf +348337f,74 +3483380,34 +3483381,1 +3483383,ff +3483384,15 +3483385,e1 +3483387,2 +348338c,34 +348338d,f +348338f,2c +3483390,3 +3483391,e0 +3483393,8 +3483394,a7 +3483395,af +3483397,9a +3483398,3c +3483399,8 +348339a,80 +348339b,40 +348339c,25 +348339d,8 +348339e,20 +348339f,1c +34833a0,8e +34833a1,9 +34833a3,68 +34833a4,ad +34833a5,9 +34833a8,8e +34833a9,9 +34833ab,6c +34833ac,ad +34833ad,9 +34833af,4 +34833b0,96 +34833b1,9 +34833b3,70 +34833b4,a5 +34833b5,9 +34833b7,8 +34833b8,96 +34833b9,9 +34833bb,9c +34833bc,a5 +34833bd,9 +34833bf,a +34833c0,3 +34833c1,e0 +34833c3,8 +34833c4,8e +34833c5,e +34833c7,4 +34833c8,27 +34833c9,bd +34833ca,ff +34833cb,e0 +34833cc,af +34833cd,b0 +34833cf,10 +34833d0,af +34833d1,b1 +34833d3,14 +34833d4,af +34833d5,bf +34833d7,18 +34833d8,3c +34833d9,10 +34833da,80 +34833db,12 +34833dc,26 +34833dd,10 +34833de,a5 +34833df,d0 +34833e0,3c +34833e1,11 +34833e2,80 +34833e3,40 +34833e4,26 +34833e5,31 +34833e6,20 +34833e7,1c +34833e8,8e +34833e9,8 +34833eb,4 +34833ec,11 +34833ef,5 +34833f4,c +34833f5,10 +34833f6,d +34833f7,1c +34833fc,10 +34833ff,3 +3483404,c +3483405,10 +3483406,d +3483407,2f +348340c,c +348340d,10 +348340e,d +348340f,f +3483410,34 +3483411,4 +3483414,c +3483415,10 +3483416,d +3483417,f +3483418,34 +3483419,4 +348341b,1 +348341c,c +348341d,10 +348341e,d +348341f,f +3483420,34 +3483421,4 +3483423,2 +3483424,8f +3483425,b0 +3483427,10 +3483428,8f +3483429,b1 +348342b,14 +348342c,8f +348342d,bf +348342f,18 +3483430,27 +3483431,bd +3483433,20 +3483434,3 +3483435,e0 +3483437,8 +348343c,2 +348343d,4 +348343e,40 +348343f,21 +3483440,91 +3483441,9 +3483443,6c +3483444,34 +3483445,1 +3483447,ff +3483448,11 +3483449,21 +348344b,7 +3483450,2 +3483451,9 +3483452,48 +3483453,21 +3483454,91 +3483455,29 +3483457,74 +3483458,34 +3483459,1 +348345b,2c +348345c,11 +348345d,21 +348345f,2 +3483464,a1 +3483465,9 +3483467,69 +3483468,3 +3483469,e0 +348346b,8 +3483470,27 +3483471,bd +3483472,ff +3483473,e8 +3483474,af +3483475,bf +3483477,10 +3483478,8e +3483479,28 +348347c,ae +348347d,8 +348347f,40 +3483480,8e +3483481,28 +3483483,4 +3483484,ae +3483485,8 +3483487,44 +3483488,96 +3483489,28 +348348b,8 +348348c,a6 +348348d,8 +348348f,48 +3483490,a2 +3483492,f +3483493,33 +3483494,92 +3483495,8 +3483497,4a +3483498,34 +3483499,1 +348349b,ff +348349c,15 +348349d,1 +348349f,3 +34834a4,c +34834a5,10 +34834a6,d +34834a7,3d +34834ac,8f +34834ad,bf +34834af,10 +34834b0,27 +34834b1,bd +34834b3,18 +34834b4,3 +34834b5,e0 +34834b7,8 +34834bc,8e +34834bd,8 +34834bf,40 +34834c0,ae +34834c1,8 +34834c3,68 +34834c4,8e +34834c5,8 +34834c7,44 +34834c8,ae +34834c9,8 +34834cb,6c +34834cc,96 +34834cd,8 +34834cf,48 +34834d0,a6 +34834d1,8 +34834d3,70 +34834d4,92 +34834d5,8 +34834d7,68 +34834d8,34 +34834d9,1 +34834db,ff +34834dc,15 +34834dd,1 +34834df,3 +34834e4,34 +34834e5,8 +34834e7,1 +34834e8,a2 +34834e9,8 +34834ea,f +34834eb,33 +34834ec,3 +34834ed,e0 +34834ef,8 +34834f4,27 +34834f5,bd +34834f6,ff +34834f7,e8 +34834f8,af +34834f9,bf +34834fb,10 +34834fc,96 +34834fd,8 +34834ff,9c +3483500,31 +3483501,8 +3483503,40 +3483504,11 +3483507,5 +348350c,96 +348350d,8 +348350f,70 +3483510,31 +3483511,8 +3483512,ff +3483513,f +3483514,35 +3483515,8 +3483517,30 +3483518,a6 +3483519,8 +348351b,70 +348351c,92 +348351d,28 +348351f,1 +3483520,a2 +3483521,8 +3483523,69 +3483524,96 +3483525,28 +3483527,2 +3483528,a6 +3483529,8 +348352b,6a +348352c,8e +348352d,28 +348352f,4 +3483530,ae +3483531,8 +3483533,6c +3483534,c +3483535,10 +3483536,d +3483537,57 +3483538,34 +3483539,4 +348353c,c +348353d,10 +348353e,d +348353f,57 +3483540,34 +3483541,4 +3483543,1 +3483544,c +3483545,10 +3483546,d +3483547,57 +3483548,34 +3483549,4 +348354b,2 +348354c,8f +348354d,bf +348354f,10 +3483550,27 +3483551,bd +3483553,18 +3483554,3 +3483555,e0 +3483557,8 +348355c,2 +348355d,4 +348355e,40 +348355f,21 +3483560,3c +3483561,9 +3483562,80 +3483563,40 +3483564,25 +3483565,29 +3483566,36 +3483567,8 +3483568,91 +3483569,a +348356b,6c +348356c,34 +348356d,1 +348356f,ff +3483570,11 +3483571,41 +3483573,5 +3483578,1 +3483579,2a +348357a,48 +348357b,21 +348357c,91 +348357d,29 +3483580,15 +3483581,20 +3483583,1c +3483588,3c +3483589,9 +348358a,80 +348358b,40 +348358c,25 +348358d,29 +348358e,35 +348358f,fb +3483590,25 +3483591,29 +3483593,1 +3483594,91 +3483595,2a +3483598,11 +3483599,40 +348359b,13 +34835a0,2 +34835a1,a +34835a2,58 +34835a3,21 +34835a4,91 +34835a5,6b +34835a7,74 +34835a8,34 +34835a9,1 +34835ab,ff +34835ac,11 +34835ad,61 +34835ae,ff +34835af,f8 +34835b4,92 +34835b5,c +34835b7,6c +34835b8,11 +34835b9,8a +34835ba,ff +34835bb,f5 +34835c0,92 +34835c1,c +34835c3,6d +34835c4,11 +34835c5,8a +34835c6,ff +34835c7,f2 +34835cc,92 +34835cd,c +34835cf,6e +34835d0,11 +34835d1,8a +34835d2,ff +34835d3,ef +34835d8,a1 +34835d9,b +34835db,69 +34835dc,a1 +34835dd,a +34835df,6c +34835e0,10 +34835e3,4 +34835e8,34 +34835e9,9 +34835eb,ff +34835ec,a1 +34835ed,9 +34835ef,69 +34835f0,a1 +34835f1,9 +34835f3,6c +34835f4,3 +34835f5,e0 +34835f7,8 +34835fc,7 +34835fd,9 +34835fe,f +34835ff,2 +3483600,3 +3483601,1 +3483602,d +3483603,b +3483609,1 +348360a,1 +348360b,1 +348360c,1 +348360d,1 +348360f,1 +3483610,1 +3483611,1 +3483612,1 +3483613,1 +3483615,1 +3483617,1 +3483618,1 +3483619,1 +348361a,1 +348361b,1 +348361c,1 +348361d,1 +348361e,1 +3483621,33 +3483622,8 +3483623,21 +3483624,20 +3483625,f +3483627,47 +3483628,15 +3483629,ea +348362b,e +348362c,3c +348362d,2 +348362e,80 +348362f,12 +3483630,8c +3483631,42 +3483632,a5 +3483633,d4 +3483634,8e +3483635,6f +3483637,a4 +3483639,f +348363a,7a +348363b,3 +348363c,14 +348363d,40 +348363f,5 +3483640,34 +3483641,2 +3483642,48 +3483643,30 +3483644,15 +3483645,e2 +3483647,7 +348364c,24 +348364d,19 +348364f,3 +3483650,10 +3483653,4 +3483654,34 +3483655,2 +3483656,63 +3483657,11 +3483658,15 +3483659,e2 +348365b,2 +3483660,24 +3483661,19 +3483663,3 +3483664,3 +3483665,e0 +3483667,8 +348366c,8d +348366d,ad +348366e,8a +348366f,a0 +3483670,34 +3483671,2 +3483672,80 +3483674,10 +3483675,4d +3483677,2 +348367c,10 +348367f,9 +3483680,3c +3483681,f +3483682,80 +3483683,1e +3483684,25 +3483685,ef +3483686,84 +3483687,a0 +3483688,81 +3483689,e2 +348368a,1c +348368b,bf +348368c,30 +348368d,42 +348368f,1 +3483690,10 +3483691,40 +3483693,2 +3483698,10 +348369b,2 +348369c,34 +348369d,2 +348369f,1 +34836a0,a1 +34836a1,e2 +34836a2,1c +34836a3,bf +34836a4,3 +34836a5,e0 +34836a7,8 +34836ad,33 +34836ae,8 +34836af,21 +34836b0,3c +34836b1,2 +34836b2,80 +34836b3,12 +34836b4,8c +34836b5,42 +34836b6,a5 +34836b7,d4 +34836b8,8e +34836b9,6f +34836bb,a4 +34836bd,f +34836be,7a +34836bf,3 +34836c0,14 +34836c1,40 +34836c3,5 +34836c4,34 +34836c5,2 +34836c6,48 +34836c7,30 +34836c8,15 +34836c9,e2 +34836cb,7 +34836d0,24 +34836d1,19 +34836d3,3 +34836d4,10 +34836d7,4 +34836d8,34 +34836d9,2 +34836da,63 +34836db,11 +34836dc,15 +34836dd,e2 +34836df,2 +34836e4,24 +34836e5,19 +34836e7,3 +34836e8,3 +34836e9,e0 +34836eb,8 +34836f0,34 +34836f1,1 +34836f3,18 +34836f4,14 +34836f5,81 +34836f7,11 +34836fc,14 +34836fd,40 +34836ff,f +3483704,3c +3483705,a +3483706,80 +3483707,12 +3483708,25 +3483709,4a +348370a,a5 +348370b,d0 +348370c,81 +348370d,48 +348370f,a6 +3483710,31 +3483711,8 +3483713,20 +3483714,11 +3483717,9 +3483718,34 +3483719,2 +348371c,34 +348371d,2 +348371f,1 +3483720,81 +3483721,48 +3483723,7b +3483724,34 +3483725,9 +3483727,7 +3483728,11 +3483729,9 +348372b,4 +348372c,34 +348372d,a +348372f,8 +3483730,11 +3483731,a +3483733,2 +3483738,34 +3483739,2 +348373c,3 +348373d,e0 +348373f,8 +3483744,a2 +3483745,25 +3483747,21 +3483748,3c +3483749,10 +348374a,80 +348374b,40 +348374c,26 +348374d,10 +348374e,17 +348374f,fc +3483750,26 +3483751,10 +3483753,4 +3483754,8e +3483755,a +3483758,11 +3483759,40 +348375b,b +3483761,a +3483762,7c +3483763,2 +3483764,1 +3483765,f1 +3483766,78 +3483767,20 +3483768,31 +3483769,58 +348376a,ff +348376d,18 +348376e,c2 +348376f,2 +3483770,17 +3483773,3 +3483774,31 +3483775,59 +3483777,ff +3483778,81 +3483779,ea +348377c,3 +348377d,2a +348377e,c8 +348377f,25 +3483780,8 +3483781,10 +3483782,d +3483783,d4 +3483784,a1 +3483785,f9 +3483788,3 +3483789,e0 +348378b,8 +34b3000,ac +34b3001,86 +34b3004,ac +34b3005,85 +34b3007,4 +34b3008,ac +34b3009,85 +34b300b,8 +34b300d,a6 +34b300e,28 +34b300f,21 +34b3010,3 +34b3011,e0 +34b3013,8 +34b3014,ac +34b3015,85 +34b3017,c +34b3018,94 +34b3019,82 +34b301b,4 +34b301c,94 +34b301d,83 +34b301f,6 +34b3021,43 +34b3023,18 +34b3026,10 +34b3027,12 +34b3028,90 +34b3029,83 +34b302b,c +34b3031,43 +34b3033,18 +34b3036,10 +34b3037,12 +34b3038,3 +34b3039,e0 +34b303b,8 +34b3040,27 +34b3041,bd +34b3042,ff +34b3043,e8 +34b3044,af +34b3045,bf +34b3047,14 +34b3048,af +34b3049,b0 +34b304b,10 +34b304c,c +34b304d,10 +34b304e,14 +34b304f,6 +34b3051,80 +34b3052,80 +34b3053,25 +34b3054,96 +34b3055,3 +34b3057,8 +34b3059,62 +34b305b,18 +34b305e,10 +34b305f,12 +34b3060,8f +34b3061,bf +34b3063,14 +34b3064,8f +34b3065,b0 +34b3067,10 +34b3068,3 +34b3069,e0 +34b306b,8 +34b306c,27 +34b306d,bd +34b306f,18 +34b3070,27 +34b3071,bd +34b3072,ff +34b3073,90 +34b3074,af +34b3075,bf +34b3077,6c +34b3078,af +34b3079,b7 +34b307b,68 +34b307c,af +34b307d,b6 +34b307f,64 +34b3080,af +34b3081,b5 +34b3083,60 +34b3084,af +34b3085,b4 +34b3087,5c +34b3088,af +34b3089,b3 +34b308b,58 +34b308c,af +34b308d,b2 +34b308f,54 +34b3090,af +34b3091,b1 +34b3093,50 +34b3094,af +34b3095,b0 +34b3097,4c +34b3099,80 +34b309a,80 +34b309b,25 +34b309d,a0 +34b309e,a8 +34b309f,25 +34b30a1,c0 +34b30a2,b8 +34b30a3,25 +34b30a5,e0 +34b30a6,b0 +34b30a7,25 +34b30a8,90 +34b30a9,b2 +34b30ab,a +34b30ad,12 +34b30ae,95 +34b30af,40 +34b30b0,3c +34b30b1,2 +34b30b3,e0 +34b30b4,2 +34b30b5,42 +34b30b6,90 +34b30b7,24 +34b30b8,90 +34b30b9,b1 +34b30bb,b +34b30bc,2e +34b30bd,22 +34b30bf,2 +34b30c0,10 +34b30c1,40 +34b30c3,2 +34b30c4,2 +34b30c5,20 +34b30c6,98 +34b30c7,25 +34b30c8,24 +34b30c9,13 +34b30cb,2 +34b30cc,32 +34b30cd,73 +34b30cf,ff +34b30d1,13 +34b30d2,a4 +34b30d3,c0 +34b30d4,3c +34b30d5,2 +34b30d7,18 +34b30d8,2 +34b30d9,82 +34b30da,a0 +34b30db,24 +34b30dc,2 +34b30dd,92 +34b30de,a0 +34b30df,25 +34b30e0,3c +34b30e1,2 +34b30e2,fd +34b30e4,2 +34b30e5,82 +34b30e6,10 +34b30e7,25 +34b30e8,af +34b30e9,a2 +34b30eb,10 +34b30ec,c +34b30ed,10 +34b30ee,14 +34b30ef,6 +34b30f0,2 +34b30f1,a0 +34b30f2,20 +34b30f3,25 +34b30f5,57 +34b30f7,18 +34b30fa,10 +34b30fb,12 +34b30fc,8e +34b30fd,a3 +34b3101,62 +34b3102,18 +34b3103,21 +34b3104,af +34b3105,a3 +34b3107,14 +34b3108,3c +34b3109,2 +34b310a,f5 +34b310c,2 +34b310d,82 +34b310e,a0 +34b310f,25 +34b3110,af +34b3111,b4 +34b3113,18 +34b3114,3c +34b3115,2 +34b3116,7 +34b3118,af +34b3119,a2 +34b311b,1c +34b311c,3c +34b311d,2 +34b311e,e6 +34b3120,af +34b3121,a2 +34b3123,20 +34b3124,af +34b3125,a0 +34b3127,24 +34b3128,3c +34b3129,2 +34b312a,f3 +34b312c,af +34b312d,a2 +34b312f,28 +34b3130,96 +34b3131,a3 +34b3133,4 +34b3134,96 +34b3135,a7 +34b3137,6 +34b3139,f6 +34b313b,18 +34b313e,38 +34b313f,12 +34b3140,24 +34b3141,5 +34b3143,4 +34b3144,2 +34b3145,25 +34b3146,20 +34b3147,4 +34b3149,67 +34b314b,18 +34b314e,10 +34b314f,12 +34b3150,24 +34b3151,42 +34b3153,1 +34b3159,44 +34b315b,18 +34b315e,10 +34b315f,12 +34b3160,24 +34b3161,42 +34b3162,ff +34b3163,ff +34b3164,2 +34b3165,65 +34b3166,98 +34b3167,4 +34b3169,53 +34b316b,1a +34b316c,2 +34b316d,60 +34b316e,1 +34b316f,f4 +34b3172,10 +34b3173,12 +34b3174,24 +34b3175,42 +34b3176,ff +34b3177,ff +34b3179,2 +34b317a,13 +34b317c,3c +34b317d,5 +34b317f,ff +34b3180,34 +34b3181,a5 +34b3182,f0 +34b3185,45 +34b3186,10 +34b3187,24 +34b3189,64 +34b318b,18 +34b318e,40 +34b318f,12 +34b3190,29 +34b3191,5 +34b3193,41 +34b3194,14 +34b3195,a0 +34b3197,a +34b3198,24 +34b3199,6 +34b319a,8 +34b319d,8 +34b319e,2f +34b319f,c3 +34b31a0,30 +34b31a1,a5 +34b31a3,3f +34b31a5,a8 +34b31a6,28 +34b31a7,21 +34b31a9,5 +34b31aa,29 +34b31ab,83 +34b31ac,24 +34b31ad,a6 +34b31ae,7 +34b31af,ff +34b31b1,c5 +34b31b3,1a +34b31b5,a0 +34b31b6,1 +34b31b7,f4 +34b31ba,30 +34b31bb,12 +34b31bc,30 +34b31bd,c6 +34b31be,f +34b31bf,ff +34b31c1,46 +34b31c2,10 +34b31c3,25 +34b31c4,3c +34b31c5,5 +34b31c6,7 +34b31c9,45 +34b31ca,10 +34b31cb,25 +34b31cc,af +34b31cd,a2 +34b31cf,2c +34b31d0,3c +34b31d1,2 +34b31d2,e7 +34b31d4,af +34b31d5,a2 +34b31d7,30 +34b31d8,af +34b31d9,a0 +34b31db,34 +34b31dd,11 +34b31de,14 +34b31df,c0 +34b31e0,3c +34b31e1,5 +34b31e3,18 +34b31e5,45 +34b31e6,10 +34b31e7,24 +34b31e8,2e +34b31e9,31 +34b31eb,2 +34b31ec,16 +34b31ed,20 +34b31ef,2 +34b31f1,52 +34b31f2,10 +34b31f3,25 +34b31f4,24 +34b31f5,4 +34b31f7,10 +34b31f9,64 +34b31fb,18 +34b31fe,20 +34b31ff,12 +34b3200,24 +34b3201,84 +34b3203,3f +34b3205,4 +34b3206,97 +34b3207,c3 +34b3208,32 +34b3209,52 +34b320b,3f +34b320c,2 +34b320d,44 +34b320e,90 +34b320f,21 +34b3211,12 +34b3212,90 +34b3213,c0 +34b3214,3c +34b3215,4 +34b3217,3 +34b3218,34 +34b3219,84 +34b321a,fe +34b321c,2 +34b321d,44 +34b321e,90 +34b321f,24 +34b3220,2 +34b3221,42 +34b3222,90 +34b3223,25 +34b3224,3c +34b3225,2 +34b3226,f5 +34b3228,2 +34b3229,42 +34b322a,90 +34b322b,25 +34b322c,af +34b322d,b2 +34b322f,38 +34b3230,af +34b3231,a0 +34b3233,3c +34b3234,3c +34b3235,2 +34b3236,f2 +34b3238,af +34b3239,a2 +34b323b,40 +34b323c,24 +34b323d,62 +34b323e,3f +34b323f,ff +34b3241,2 +34b3242,13 +34b3243,80 +34b3244,3c +34b3245,3 +34b3247,ff +34b3248,34 +34b3249,63 +34b324a,f0 +34b324d,43 +34b324e,10 +34b324f,24 +34b3250,24 +34b3251,e7 +34b3252,ff +34b3253,ff +34b3255,7 +34b3256,38 +34b3257,80 +34b3258,30 +34b3259,e7 +34b325a,f +34b325b,fc +34b325d,47 +34b325e,10 +34b325f,25 +34b3260,af +34b3261,a2 +34b3263,44 +34b3264,27 +34b3265,a2 +34b3267,10 +34b3268,27 +34b3269,a6 +34b326b,48 +34b326c,8e +34b326d,3 +34b326f,8 +34b3270,24 +34b3271,64 +34b3273,8 +34b3274,ae +34b3275,4 +34b3277,8 +34b3278,8c +34b3279,45 +34b327b,4 +34b327c,8c +34b327d,44 +34b3280,ac +34b3281,65 +34b3283,4 +34b3284,24 +34b3285,42 +34b3287,8 +34b3288,14 +34b3289,46 +34b328a,ff +34b328b,f8 +34b328c,ac +34b328d,64 +34b3290,8f +34b3291,bf +34b3293,6c +34b3294,8f +34b3295,b7 +34b3297,68 +34b3298,8f +34b3299,b6 +34b329b,64 +34b329c,8f +34b329d,b5 +34b329f,60 +34b32a0,8f +34b32a1,b4 +34b32a3,5c +34b32a4,8f +34b32a5,b3 +34b32a7,58 +34b32a8,8f +34b32a9,b2 +34b32ab,54 +34b32ac,8f +34b32ad,b1 +34b32af,50 +34b32b0,8f +34b32b1,b0 +34b32b3,4c +34b32b4,3 +34b32b5,e0 +34b32b7,8 +34b32b8,27 +34b32b9,bd +34b32bb,70 +34b32bc,27 +34b32bd,bd +34b32be,ff +34b32bf,e8 +34b32c0,8f +34b32c1,a8 +34b32c3,28 +34b32c4,8f +34b32c5,a2 +34b32c7,2c +34b32c8,8f +34b32c9,aa +34b32cb,30 +34b32cc,94 +34b32cd,a9 +34b32cf,4 +34b32d1,9 +34b32d2,4a +34b32d3,80 +34b32d4,1 +34b32d5,22 +34b32d7,1a +34b32d9,40 +34b32da,1 +34b32db,f4 +34b32de,48 +34b32df,12 +34b32e0,94 +34b32e1,a3 +34b32e3,6 +34b32e5,47 +34b32e6,10 +34b32e7,21 +34b32e9,2 +34b32ea,13 +34b32eb,80 +34b32ec,3c +34b32ed,b +34b32ef,ff +34b32f0,35 +34b32f1,6b +34b32f2,f0 +34b32f5,4b +34b32f6,10 +34b32f7,24 +34b32f8,1 +34b32f9,48 +34b32fa,28 +34b32fb,21 +34b32fd,5 +34b32fe,28 +34b32ff,80 +34b3300,30 +34b3301,a5 +34b3302,f +34b3303,ff +34b3305,45 +34b3306,10 +34b3307,25 +34b3308,3c +34b3309,5 +34b330a,e4 +34b330d,45 +34b330e,10 +34b330f,25 +34b3310,af +34b3311,a2 +34b3315,7 +34b3316,3b +34b3317,80 +34b3319,eb +34b331a,38 +34b331b,24 +34b331d,8 +34b331e,40 +34b331f,80 +34b3320,31 +34b3321,8 +34b3322,f +34b3323,ff +34b3325,e8 +34b3326,38 +34b3327,25 +34b3328,af +34b3329,a7 +34b332b,4 +34b332c,3c +34b332d,2 +34b332e,e1 +34b3330,af +34b3331,a2 +34b3333,8 +34b3335,66 +34b3337,18 +34b333a,30 +34b333b,12 +34b333d,6 +34b333e,31 +34b333f,40 +34b3340,30 +34b3341,c6 +34b3342,ff +34b3343,ff +34b3344,af +34b3345,a6 +34b3347,c +34b3348,3c +34b3349,2 +34b334a,f1 +34b334c,af +34b334d,a2 +34b334f,10 +34b3351,3 +34b3352,1a +34b3353,80 +34b3355,6a +34b3357,1a +34b3358,1 +34b3359,40 +34b335a,1 +34b335b,f4 +34b335e,18 +34b335f,12 +34b3360,30 +34b3361,63 +34b3362,ff +34b3363,ff +34b3365,9 +34b3366,4c +34b3369,69 +34b336a,18 +34b336b,25 +34b336c,af +34b336d,a3 +34b336f,14 +34b3370,3 +34b3371,a0 +34b3372,10 +34b3373,25 +34b3374,27 +34b3375,a8 +34b3377,18 +34b3378,8c +34b3379,83 +34b337b,8 +34b337c,24 +34b337d,65 +34b337f,8 +34b3380,ac +34b3381,85 +34b3383,8 +34b3384,8c +34b3385,47 +34b3387,4 +34b3388,8c +34b3389,46 +34b338c,ac +34b338d,67 +34b338f,4 +34b3390,24 +34b3391,42 +34b3393,8 +34b3394,14 +34b3395,48 +34b3396,ff +34b3397,f8 +34b3398,ac +34b3399,66 +34b339c,3 +34b339d,e0 +34b339f,8 +34b33a0,27 +34b33a1,bd +34b33a3,18 +34b33a4,8c +34b33a5,82 +34b33a7,8 +34b33a8,24 +34b33a9,43 +34b33ab,8 +34b33ac,ac +34b33ad,83 +34b33af,8 +34b33b0,3c +34b33b1,3 +34b33b2,e7 +34b33b4,ac +34b33b5,43 +34b33b8,ac +34b33b9,40 +34b33bb,4 +34b33bc,8c +34b33bd,82 +34b33bf,8 +34b33c0,24 +34b33c1,43 +34b33c3,8 +34b33c4,ac +34b33c5,83 +34b33c7,8 +34b33c8,3c +34b33c9,3 +34b33ca,d9 +34b33cc,ac +34b33cd,43 +34b33d0,ac +34b33d1,40 +34b33d3,4 +34b33d4,8c +34b33d5,82 +34b33d7,8 +34b33d8,24 +34b33d9,43 +34b33db,8 +34b33dc,ac +34b33dd,83 +34b33df,8 +34b33e0,3c +34b33e1,3 +34b33e2,ed +34b33e4,ac +34b33e5,43 +34b33e8,3c +34b33e9,5 +34b33eb,50 +34b33ec,24 +34b33ed,a3 +34b33ee,3 +34b33ef,c0 +34b33f0,ac +34b33f1,43 +34b33f3,4 +34b33f4,8c +34b33f5,83 +34b33f7,8 +34b33f8,24 +34b33f9,62 +34b33fb,8 +34b33fc,ac +34b33fd,82 +34b33ff,8 +34b3400,3c +34b3401,2 +34b3402,e3 +34b3404,24 +34b3405,46 +34b3406,1a +34b3407,1 +34b3408,ac +34b3409,66 +34b340c,24 +34b340d,6 +34b340f,30 +34b3410,ac +34b3411,66 +34b3413,4 +34b3414,8c +34b3415,83 +34b3417,8 +34b3418,24 +34b3419,66 +34b341b,8 +34b341c,ac +34b341d,86 +34b341f,8 +34b3420,24 +34b3421,46 +34b3422,18 +34b3423,1 +34b3424,ac +34b3425,66 +34b3428,24 +34b3429,6 +34b342b,c0 +34b342c,ac +34b342d,66 +34b342f,4 +34b3430,8c +34b3431,86 +34b3433,8 +34b3434,24 +34b3435,c3 +34b3437,8 +34b3438,ac +34b3439,83 +34b343b,8 +34b343c,3c +34b343d,3 +34b343e,e2 +34b3440,24 +34b3441,67 +34b3442,1e +34b3443,1 +34b3444,ac +34b3445,c7 +34b3448,ac +34b3449,c0 +34b344b,4 +34b344c,8c +34b344d,86 +34b344f,8 +34b3450,24 +34b3451,c7 +34b3453,8 +34b3454,ac +34b3455,87 +34b3457,8 +34b3458,24 +34b3459,67 +34b345a,1d +34b345c,ac +34b345d,c7 +34b3460,24 +34b3461,7 +34b3463,4 +34b3464,ac +34b3465,c7 +34b3467,4 +34b3468,8c +34b3469,86 +34b346b,8 +34b346c,24 +34b346d,c7 +34b346f,8 +34b3470,ac +34b3471,87 +34b3473,8 +34b3474,24 +34b3475,47 +34b3476,17 +34b3478,ac +34b3479,c7 +34b347c,ac +34b347d,c0 +34b347f,4 +34b3480,8c +34b3481,86 +34b3483,8 +34b3484,24 +34b3485,c7 +34b3487,8 +34b3488,ac +34b3489,87 +34b348b,8 +34b348c,24 +34b348d,47 +34b348e,14 +34b348f,2 +34b3490,ac +34b3491,c7 +34b3494,24 +34b3495,7 +34b3496,c +34b3498,ac +34b3499,c7 +34b349b,4 +34b349c,8c +34b349d,86 +34b349f,8 +34b34a0,24 +34b34a1,c7 +34b34a3,8 +34b34a4,ac +34b34a5,87 +34b34a7,8 +34b34a8,24 +34b34a9,47 +34b34aa,d +34b34ab,1 +34b34ac,ac +34b34ad,c7 +34b34b0,ac +34b34b1,c0 +34b34b3,4 +34b34b4,8c +34b34b5,86 +34b34b7,8 +34b34b8,24 +34b34b9,c7 +34b34bb,8 +34b34bc,ac +34b34bd,87 +34b34bf,8 +34b34c0,24 +34b34c1,47 +34b34c2,c +34b34c4,ac +34b34c5,c7 +34b34c8,ac +34b34c9,c0 +34b34cb,4 +34b34cc,8c +34b34cd,86 +34b34cf,8 +34b34d0,24 +34b34d1,c7 +34b34d3,8 +34b34d4,ac +34b34d5,87 +34b34d7,8 +34b34d8,24 +34b34d9,47 +34b34da,f +34b34dc,ac +34b34dd,c7 +34b34e0,ac +34b34e1,c0 +34b34e3,4 +34b34e4,8c +34b34e5,86 +34b34e7,8 +34b34e8,24 +34b34e9,c7 +34b34eb,8 +34b34ec,ac +34b34ed,87 +34b34ef,8 +34b34f0,24 +34b34f1,47 +34b34f2,10 +34b34f3,1 +34b34f4,ac +34b34f5,c7 +34b34f8,ac +34b34f9,c0 +34b34fb,4 +34b34fc,8c +34b34fd,86 +34b34ff,8 +34b3500,24 +34b3501,c7 +34b3503,8 +34b3504,ac +34b3505,87 +34b3507,8 +34b3508,24 +34b3509,47 +34b350a,8 +34b350c,ac +34b350d,c7 +34b3510,ac +34b3511,c0 +34b3513,4 +34b3514,8c +34b3515,86 +34b3517,8 +34b3518,24 +34b3519,c7 +34b351b,8 +34b351c,ac +34b351d,87 +34b351f,8 +34b3520,24 +34b3521,47 +34b3522,a +34b3523,1 +34b3524,ac +34b3525,c7 +34b3528,ac +34b3529,c0 +34b352b,4 +34b352c,8c +34b352d,86 +34b352f,8 +34b3530,24 +34b3531,c7 +34b3533,8 +34b3534,ac +34b3535,87 +34b3537,8 +34b3538,24 +34b3539,63 +34b353b,1c +34b353c,ac +34b353d,c3 +34b3540,24 +34b3541,a5 +34b3542,42 +34b3543,40 +34b3544,ac +34b3545,c5 +34b3547,4 +34b3548,8c +34b3549,83 +34b354b,8 +34b354c,24 +34b354d,65 +34b354f,8 +34b3550,ac +34b3551,85 +34b3553,8 +34b3554,24 +34b3555,42 +34b3556,12 +34b3557,1 +34b3558,ac +34b3559,62 +34b355c,24 +34b355d,2 +34b355e,20 +34b3560,ac +34b3561,62 +34b3563,4 +34b3564,8c +34b3565,82 +34b3567,8 +34b3568,24 +34b3569,43 +34b356b,8 +34b356c,ac +34b356d,83 +34b356f,8 +34b3570,3c +34b3571,3 +34b3572,df +34b3574,ac +34b3575,43 +34b3578,3 +34b3579,e0 +34b357b,8 +34b357c,ac +34b357d,40 +34b357f,4 +34b3580,27 +34b3581,bd +34b3582,ff +34b3583,c8 +34b3584,af +34b3585,bf +34b3587,34 +34b3588,af +34b3589,b1 +34b358b,30 +34b358c,af +34b358d,b0 +34b358f,2c +34b3590,af +34b3591,a0 +34b3593,10 +34b3594,3c +34b3595,2 +34b3596,1 +34b3597,a0 +34b3598,24 +34b3599,42 +34b359a,20 +34b359c,af +34b359d,a2 +34b359f,14 +34b35a0,3c +34b35a1,10 +34b35a3,3 +34b35a4,36 +34b35a5,2 +34b35a6,95 +34b35a7,c0 +34b35a8,af +34b35a9,a2 +34b35ab,18 +34b35ac,c +34b35ad,10 +34b35ae,15 +34b35af,c4 +34b35b0,27 +34b35b1,a4 +34b35b3,10 +34b35b4,af +34b35b5,a0 +34b35b7,1c +34b35b8,3c +34b35b9,2 +34b35bb,84 +34b35bc,24 +34b35bd,42 +34b35be,60 +34b35c0,af +34b35c1,a2 +34b35c3,20 +34b35c4,34 +34b35c5,2 +34b35c6,b4 +34b35c8,af +34b35c9,a2 +34b35cb,24 +34b35cc,c +34b35cd,10 +34b35ce,15 +34b35cf,c4 +34b35d0,27 +34b35d1,a4 +34b35d3,1c +34b35d4,8f +34b35d5,a2 +34b35d7,10 +34b35d8,26 +34b35d9,10 +34b35da,a3 +34b35dd,50 +34b35de,80 +34b35df,21 +34b35e0,3c +34b35e1,3 +34b35e2,80 +34b35e3,40 +34b35e4,ac +34b35e5,70 +34b35e6,63 +34b35e7,f8 +34b35e8,24 +34b35e9,42 +34b35ea,29 +34b35eb,80 +34b35ec,3c +34b35ed,3 +34b35ee,80 +34b35ef,40 +34b35f0,ac +34b35f1,62 +34b35f2,63 +34b35f3,e8 +34b35f4,3c +34b35f5,2 +34b35f6,80 +34b35f7,40 +34b35f8,8f +34b35f9,a3 +34b35fb,1c +34b35fc,ac +34b35fd,43 +34b35fe,63 +34b35ff,d8 +34b3600,3c +34b3601,11 +34b3602,80 +34b3603,40 +34b3604,c +34b3605,10 +34b3606,14 +34b3607,10 +34b3608,26 +34b3609,24 +34b360a,63 +34b360b,c8 +34b360d,40 +34b360e,80 +34b360f,25 +34b3610,c +34b3611,10 +34b3612,15 +34b3613,b7 +34b3615,40 +34b3616,20 +34b3617,25 +34b3619,10 +34b361a,4f +34b361b,c2 +34b361c,1 +34b361d,30 +34b361e,48 +34b361f,21 +34b3620,2a +34b3621,10 +34b3623,2 +34b3624,16 +34b3627,18 +34b3628,ae +34b3629,22 +34b362a,63 +34b362b,c8 +34b362d,9 +34b362e,48 +34b362f,43 +34b3630,3c +34b3631,3 +34b3632,80 +34b3633,40 +34b3634,24 +34b3635,63 +34b3636,65 +34b3637,6 +34b363a,20 +34b363b,25 +34b363e,30 +34b363f,25 +34b3640,2 +34b3641,20 +34b3642,40 +34b3643,25 +34b3644,24 +34b3645,7 +34b3646,ff +34b3647,f0 +34b3648,8d +34b3649,5 +34b364a,63 +34b364b,c8 +34b364d,a4 +34b364e,28 +34b364f,21 +34b3650,90 +34b3651,62 +34b3655,2 +34b3656,11 +34b3657,2 +34b3659,47 +34b365a,10 +34b365b,25 +34b365c,a0 +34b365d,a2 +34b3660,8d +34b3661,2 +34b3662,63 +34b3663,c8 +34b3665,44 +34b3666,10 +34b3667,21 +34b3668,90 +34b3669,65 +34b366d,a7 +34b366e,28 +34b366f,25 +34b3670,a0 +34b3671,45 +34b3673,1 +34b3674,24 +34b3675,c6 +34b3677,1 +34b3678,24 +34b3679,63 +34b367b,1 +34b367d,c9 +34b367e,10 +34b367f,2a +34b3680,14 +34b3681,40 +34b3682,ff +34b3683,f1 +34b3684,24 +34b3685,84 +34b3687,2 +34b3688,c +34b3689,10 +34b368a,15 +34b368b,b7 +34b368c,24 +34b368d,4 +34b368e,1 +34b3690,3c +34b3691,4 +34b3692,80 +34b3693,40 +34b3694,24 +34b3695,3 +34b3696,1 +34b3698,ac +34b3699,83 +34b369a,64 +34b369b,e8 +34b369c,24 +34b369d,84 +34b369e,64 +34b369f,e8 +34b36a0,ac +34b36a1,82 +34b36a3,4 +34b36a4,ac +34b36a5,82 +34b36a7,8 +34b36a8,24 +34b36a9,42 +34b36aa,1 +34b36ac,c +34b36ad,10 +34b36ae,14 +34b36af,e9 +34b36b0,ac +34b36b1,82 +34b36b3,c +34b36b4,8f +34b36b5,bf +34b36b7,34 +34b36b8,8f +34b36b9,b1 +34b36bb,30 +34b36bc,8f +34b36bd,b0 +34b36bf,2c +34b36c0,3 +34b36c1,e0 +34b36c3,8 +34b36c4,27 +34b36c5,bd +34b36c7,38 +34b36c8,3c +34b36c9,3 +34b36ca,80 +34b36cb,40 +34b36cc,3c +34b36cd,2 +34b36ce,80 +34b36cf,50 +34b36d0,24 +34b36d1,42 +34b36d4,3 +34b36d5,e0 +34b36d7,8 +34b36d8,ac +34b36d9,62 +34b36da,64 +34b36db,d0 +34b36dd,4 +34b36de,17 +34b36df,c3 +34b36e1,2 +34b36e2,1f +34b36e3,2 +34b36e5,83 +34b36e6,10 +34b36e7,21 +34b36e8,30 +34b36e9,42 +34b36eb,f +34b36ed,43 +34b36ee,10 +34b36ef,23 +34b36f0,10 +34b36f1,40 +34b36f3,3 +34b36f4,3c +34b36f5,3 +34b36f6,80 +34b36f7,40 +34b36f9,82 +34b36fa,20 +34b36fb,23 +34b36fc,24 +34b36fd,84 +34b36ff,10 +34b3700,8c +34b3701,62 +34b3702,64 +34b3703,d0 +34b3705,44 +34b3706,20 +34b3707,21 +34b3708,3 +34b3709,e0 +34b370b,8 +34b370c,ac +34b370d,64 +34b370e,64 +34b370f,d0 +34b3710,27 +34b3711,bd +34b3712,ff +34b3713,e8 +34b3714,af +34b3715,bf +34b3717,14 +34b3718,af +34b3719,b0 +34b371b,10 +34b371d,80 +34b371e,80 +34b371f,25 +34b3720,c +34b3721,10 +34b3722,15 +34b3723,b7 +34b3724,8c +34b3725,84 +34b3727,8 +34b3728,ae +34b3729,2 +34b372c,8e +34b372d,6 +34b372f,8 +34b3731,40 +34b3732,20 +34b3733,25 +34b3734,3c +34b3735,2 +34b3736,80 +34b3738,24 +34b3739,42 +34b373a,d +34b373b,f0 +34b373d,40 +34b373e,f8 +34b373f,9 +34b3740,8e +34b3741,5 +34b3743,4 +34b3744,8f +34b3745,bf +34b3747,14 +34b3748,8f +34b3749,b0 +34b374b,10 +34b374c,3 +34b374d,e0 +34b374f,8 +34b3750,27 +34b3751,bd +34b3753,18 +34b3754,27 +34b3755,bd +34b3756,ff +34b3757,e8 +34b3758,af +34b3759,bf +34b375b,14 +34b375c,c +34b375d,10 +34b375e,15 +34b375f,b2 +34b3764,c +34b3765,10 +34b3766,15 +34b3767,60 +34b376c,c +34b376d,10 +34b376e,18 +34b376f,68 +34b3774,8f +34b3775,bf +34b3777,14 +34b3778,3 +34b3779,e0 +34b377b,8 +34b377c,27 +34b377d,bd +34b377f,18 +34b3780,27 +34b3781,bd +34b3782,ff +34b3783,e0 +34b3784,af +34b3785,bf +34b3787,1c +34b3788,af +34b3789,b2 +34b378b,18 +34b378c,af +34b378d,b1 +34b378f,14 +34b3790,af +34b3791,b0 +34b3793,10 +34b3795,80 +34b3796,80 +34b3797,25 +34b3799,a0 +34b379a,88 +34b379b,25 +34b379c,3c +34b379d,2 +34b379e,80 +34b379f,1c +34b37a0,34 +34b37a1,42 +34b37a2,84 +34b37a3,a0 +34b37a4,3c +34b37a5,3 +34b37a7,1 +34b37a9,43 +34b37aa,10 +34b37ab,21 +34b37ac,94 +34b37ad,43 +34b37ae,9 +34b37af,34 +34b37b0,24 +34b37b1,2 +34b37b3,6 +34b37b4,14 +34b37b5,62 +34b37b7,15 +34b37b9,c0 +34b37ba,90 +34b37bb,25 +34b37bc,3c +34b37bd,2 +34b37be,80 +34b37bf,1c +34b37c0,34 +34b37c1,42 +34b37c2,84 +34b37c3,a0 +34b37c4,3c +34b37c5,3 +34b37c7,1 +34b37c9,43 +34b37ca,10 +34b37cb,21 +34b37cc,94 +34b37cd,42 +34b37ce,9 +34b37cf,48 +34b37d0,14 +34b37d1,40 +34b37d3,f +34b37d4,2 +34b37d5,40 +34b37d6,30 +34b37d7,25 +34b37d8,3c +34b37d9,2 +34b37da,80 +34b37db,1c +34b37dc,34 +34b37dd,42 +34b37de,84 +34b37df,a0 +34b37e1,43 +34b37e2,10 +34b37e3,21 +34b37e4,94 +34b37e5,42 +34b37e6,9 +34b37e7,44 +34b37e8,14 +34b37e9,40 +34b37eb,a +34b37ec,2 +34b37ed,20 +34b37ee,28 +34b37ef,25 +34b37f0,3c +34b37f1,2 +34b37f2,80 +34b37f3,1c +34b37f4,34 +34b37f5,42 +34b37f6,84 +34b37f7,a0 +34b37f8,84 +34b37f9,42 +34b37fb,14 +34b37fc,4 +34b37fd,41 +34b37ff,5 +34b3804,c +34b3805,10 +34b3806,16 +34b3807,d +34b380c,2 +34b380d,40 +34b380e,30 +34b380f,25 +34b3810,2 +34b3811,20 +34b3812,28 +34b3813,25 +34b3814,c +34b3815,10 +34b3816,14 +34b3818,2 +34b381a,20 +34b381b,25 +34b381c,8f +34b381d,bf +34b381f,1c +34b3820,8f +34b3821,b2 +34b3823,18 +34b3824,8f +34b3825,b1 +34b3827,14 +34b3828,8f +34b3829,b0 +34b382b,10 +34b382c,3 +34b382d,e0 +34b382f,8 +34b3830,27 +34b3831,bd +34b3833,20 +34b3834,3c +34b3835,2 +34b3836,80 +34b3837,40 +34b3838,8c +34b3839,42 +34b383a,64 +34b383b,c8 +34b383c,10 +34b383d,40 +34b383e,2 +34b383f,56 +34b3840,3c +34b3841,3 +34b3842,80 +34b3843,40 +34b3844,27 +34b3845,bd +34b3846,ff +34b3847,98 +34b3848,af +34b3849,bf +34b384b,64 +34b384c,af +34b384d,be +34b384f,60 +34b3850,af +34b3851,b7 +34b3853,5c +34b3854,af +34b3855,b6 +34b3857,58 +34b3858,af +34b3859,b5 +34b385b,54 +34b385c,af +34b385d,b4 +34b385f,50 +34b3860,af +34b3861,b3 +34b3863,4c +34b3864,af +34b3865,b2 +34b3867,48 +34b3868,af +34b3869,b1 +34b386b,44 +34b386c,af +34b386d,b0 +34b386f,40 +34b3870,8c +34b3871,82 +34b3873,4 +34b3874,8c +34b3875,63 +34b3876,64 +34b3877,ec +34b3878,24 +34b3879,45 +34b387b,8 +34b387c,ac +34b387d,85 +34b387f,8 +34b3880,3c +34b3881,5 +34b3882,de +34b3884,ac +34b3885,45 +34b3888,ac +34b3889,43 +34b388b,4 +34b388c,3c +34b388d,2 +34b388e,80 +34b388f,40 +34b3890,8c +34b3891,42 +34b3892,64 +34b3893,dc +34b3894,10 +34b3895,40 +34b3897,7 +34b389a,18 +34b389b,25 +34b389c,3c +34b389d,2 +34b389e,80 +34b389f,40 +34b38a0,94 +34b38a1,43 +34b38a2,63 +34b38a3,cc +34b38a5,3 +34b38a6,10 +34b38a7,40 +34b38a9,43 +34b38aa,10 +34b38ab,21 +34b38ad,2 +34b38ae,10 +34b38af,40 +34b38b0,24 +34b38b1,43 +34b38b3,2 +34b38b4,3c +34b38b5,2 +34b38b6,80 +34b38b7,40 +34b38b8,94 +34b38b9,42 +34b38ba,63 +34b38bb,cc +34b38bd,2 +34b38be,10 +34b38bf,c0 +34b38c0,24 +34b38c1,42 +34b38c3,5e +34b38c5,43 +34b38c6,10 +34b38c7,21 +34b38c8,24 +34b38c9,13 +34b38ca,1 +34b38cb,40 +34b38cc,2 +34b38cd,62 +34b38ce,98 +34b38cf,23 +34b38d1,13 +34b38d2,98 +34b38d3,43 +34b38d4,26 +34b38d5,77 +34b38d7,2 +34b38d8,8c +34b38d9,83 +34b38db,8 +34b38dc,24 +34b38dd,65 +34b38df,8 +34b38e0,ac +34b38e1,85 +34b38e3,8 +34b38e4,3c +34b38e5,5 +34b38e6,fc +34b38e7,ff +34b38e8,34 +34b38e9,a5 +34b38ea,ff +34b38eb,ff +34b38ec,ac +34b38ed,65 +34b38f0,3c +34b38f1,5 +34b38f2,ff +34b38f3,fd +34b38f4,34 +34b38f5,a5 +34b38f6,f6 +34b38f7,fb +34b38f8,ac +34b38f9,65 +34b38fb,4 +34b38fc,8c +34b38fd,83 +34b38ff,8 +34b3900,24 +34b3901,65 +34b3903,8 +34b3904,ac +34b3905,85 +34b3907,8 +34b3908,3c +34b3909,5 +34b390a,fa +34b390c,ac +34b390d,65 +34b3910,24 +34b3911,5 +34b3913,d0 +34b3914,ac +34b3915,65 +34b3917,4 +34b3919,53 +34b391a,10 +34b391b,21 +34b391d,2 +34b391e,13 +34b391f,80 +34b3920,3c +34b3921,3 +34b3923,ff +34b3924,34 +34b3925,63 +34b3926,f0 +34b3929,43 +34b392a,10 +34b392b,24 +34b392c,3c +34b392d,5 +34b392e,e4 +34b3930,24 +34b3931,a5 +34b3932,3 +34b3933,b8 +34b3935,45 +34b3936,10 +34b3937,25 +34b3938,af +34b3939,a2 +34b393b,20 +34b393d,13 +34b393e,13 +34b393f,80 +34b3941,43 +34b3942,10 +34b3943,24 +34b3944,34 +34b3945,42 +34b3947,8 +34b3948,af +34b3949,a2 +34b394b,24 +34b394c,3c +34b394d,2 +34b394e,e1 +34b3950,af +34b3951,a2 +34b3953,28 +34b3954,af +34b3955,a0 +34b3957,2c +34b3958,3c +34b3959,2 +34b395a,f1 +34b395c,af +34b395d,a2 +34b395f,30 +34b3960,3c +34b3961,2 +34b3962,4 +34b3964,24 +34b3965,42 +34b3966,4 +34b3968,af +34b3969,a2 +34b396b,34 +34b396c,27 +34b396d,a2 +34b396f,20 +34b3970,27 +34b3971,a8 +34b3973,38 +34b3974,8c +34b3975,83 +34b3977,8 +34b3978,24 +34b3979,65 +34b397b,8 +34b397c,ac +34b397d,85 +34b397f,8 +34b3980,8c +34b3981,47 +34b3983,4 +34b3984,8c +34b3985,46 +34b3988,ac +34b3989,67 +34b398b,4 +34b398c,24 +34b398d,42 +34b398f,8 +34b3990,15 +34b3991,2 +34b3992,ff +34b3993,f8 +34b3994,ac +34b3995,66 +34b3999,80 +34b399a,80 +34b399b,25 +34b399c,8c +34b399d,82 +34b399f,8 +34b39a0,24 +34b39a1,43 +34b39a3,8 +34b39a4,ac +34b39a5,83 +34b39a7,8 +34b39a8,3c +34b39a9,3 +34b39aa,e7 +34b39ac,ac +34b39ad,43 +34b39b0,ac +34b39b1,40 +34b39b3,4 +34b39b4,8c +34b39b5,82 +34b39b7,8 +34b39b8,24 +34b39b9,43 +34b39bb,8 +34b39bc,ac +34b39bd,83 +34b39bf,8 +34b39c0,3c +34b39c1,3 +34b39c2,fc +34b39c3,11 +34b39c4,34 +34b39c5,63 +34b39c6,96 +34b39c7,23 +34b39c8,ac +34b39c9,43 +34b39cc,3c +34b39cd,3 +34b39ce,ff +34b39cf,2f +34b39d0,34 +34b39d1,63 +34b39d2,ff +34b39d3,ff +34b39d4,ac +34b39d5,43 +34b39d7,4 +34b39d8,3c +34b39d9,5 +34b39da,80 +34b39db,40 +34b39dc,24 +34b39dd,a5 +34b39de,63 +34b39df,e8 +34b39e0,94 +34b39e1,a7 +34b39e3,8 +34b39e4,c +34b39e5,10 +34b39e6,14 +34b39e7,1c +34b39ea,30 +34b39eb,25 +34b39ec,3c +34b39ed,2 +34b39ee,80 +34b39ef,40 +34b39f0,8c +34b39f1,42 +34b39f2,64 +34b39f3,cc +34b39f4,18 +34b39f5,40 +34b39f7,42 +34b39f8,3c +34b39f9,2 +34b39fa,80 +34b39fb,40 +34b39fc,3c +34b39fd,12 +34b39fe,80 +34b39ff,40 +34b3a00,26 +34b3a01,52 +34b3a02,64 +34b3a03,2c +34b3a06,88 +34b3a07,25 +34b3a08,3c +34b3a09,16 +34b3a0a,80 +34b3a0b,40 +34b3a0c,3c +34b3a0d,14 +34b3a0e,80 +34b3a0f,40 +34b3a10,26 +34b3a11,94 +34b3a12,64 +34b3a13,8 +34b3a14,3c +34b3a15,1e +34b3a16,80 +34b3a17,40 +34b3a18,27 +34b3a19,de +34b3a1a,64 +34b3a1b,18 +34b3a1c,24 +34b3a1d,42 +34b3a1e,63 +34b3a1f,e8 +34b3a20,af +34b3a21,a2 +34b3a23,38 +34b3a24,3c +34b3a25,15 +34b3a26,80 +34b3a27,40 +34b3a28,8e +34b3a29,c2 +34b3a2a,64 +34b3a2b,d4 +34b3a2c,50 +34b3a2d,40 +34b3a2f,b +34b3a30,92 +34b3a31,42 +34b3a34,92 +34b3a35,43 +34b3a38,3c +34b3a39,2 +34b3a3a,80 +34b3a3b,11 +34b3a3c,34 +34b3a3d,42 +34b3a3e,a5 +34b3a3f,d0 +34b3a41,43 +34b3a42,10 +34b3a43,21 +34b3a44,90 +34b3a45,42 +34b3a47,a8 +34b3a49,2 +34b3a4a,10 +34b3a4b,42 +34b3a4c,30 +34b3a4d,42 +34b3a4f,1 +34b3a50,50 +34b3a51,40 +34b3a53,27 +34b3a54,26 +34b3a55,31 +34b3a57,1 +34b3a58,92 +34b3a59,42 +34b3a5d,54 +34b3a5e,10 +34b3a5f,21 +34b3a60,80 +34b3a61,46 +34b3a64,28 +34b3a65,c2 +34b3a67,3 +34b3a68,54 +34b3a69,40 +34b3a6b,21 +34b3a6c,26 +34b3a6d,31 +34b3a6f,1 +34b3a70,24 +34b3a71,c6 +34b3a72,ff +34b3a73,fd +34b3a75,6 +34b3a76,18 +34b3a77,40 +34b3a79,66 +34b3a7a,18 +34b3a7b,21 +34b3a7d,7e +34b3a7e,18 +34b3a7f,21 +34b3a80,90 +34b3a81,62 +34b3a85,2 +34b3a86,16 +34b3a88,90 +34b3a89,64 +34b3a8b,2 +34b3a8d,4 +34b3a8e,22 +34b3a91,44 +34b3a92,10 +34b3a93,25 +34b3a94,90 +34b3a95,63 +34b3a97,1 +34b3a99,3 +34b3a9a,1c +34b3a9d,43 +34b3a9e,10 +34b3a9f,25 +34b3aa0,34 +34b3aa1,42 +34b3aa3,ff +34b3aa4,8e +34b3aa5,3 +34b3aa7,8 +34b3aa8,24 +34b3aa9,64 +34b3aab,8 +34b3aac,ae +34b3aad,4 +34b3aaf,8 +34b3ab0,3c +34b3ab1,4 +34b3ab2,fa +34b3ab4,ac +34b3ab5,64 +34b3ab8,ac +34b3ab9,62 +34b3abb,4 +34b3abc,24 +34b3abd,2 +34b3abf,10 +34b3ac0,af +34b3ac1,a2 +34b3ac3,18 +34b3ac4,af +34b3ac5,a2 +34b3ac7,14 +34b3ac9,11 +34b3aca,10 +34b3acb,c0 +34b3acd,51 +34b3ace,10 +34b3acf,21 +34b3ad1,2 +34b3ad2,10 +34b3ad3,40 +34b3ad4,24 +34b3ad5,42 +34b3ad7,4 +34b3ad8,af +34b3ad9,a2 +34b3adb,10 +34b3adc,2 +34b3add,e0 +34b3ade,38 +34b3adf,25 +34b3ae0,8f +34b3ae1,a5 +34b3ae3,38 +34b3ae4,c +34b3ae5,10 +34b3ae6,14 +34b3ae7,af +34b3ae8,2 +34b3aea,20 +34b3aeb,25 +34b3aec,26 +34b3aed,31 +34b3aef,1 +34b3af0,8e +34b3af1,a2 +34b3af2,64 +34b3af3,cc +34b3af4,2 +34b3af5,22 +34b3af6,10 +34b3af7,2a +34b3af8,14 +34b3af9,40 +34b3afa,ff +34b3afb,cb +34b3afc,26 +34b3afd,52 +34b3aff,c +34b3b00,8e +34b3b01,2 +34b3b03,8 +34b3b04,24 +34b3b05,43 +34b3b07,8 +34b3b08,ae +34b3b09,3 +34b3b0b,8 +34b3b0c,3c +34b3b0d,3 +34b3b0e,fa +34b3b10,ac +34b3b11,43 +34b3b14,24 +34b3b15,3 +34b3b16,ff +34b3b17,ff +34b3b18,ac +34b3b19,43 +34b3b1b,4 +34b3b1c,3c +34b3b1d,5 +34b3b1e,80 +34b3b1f,40 +34b3b20,24 +34b3b21,a5 +34b3b22,63 +34b3b23,f8 +34b3b24,94 +34b3b25,a7 +34b3b27,8 +34b3b2a,30 +34b3b2b,25 +34b3b2c,c +34b3b2d,10 +34b3b2e,14 +34b3b2f,1c +34b3b30,2 +34b3b32,20 +34b3b33,25 +34b3b34,3c +34b3b35,2 +34b3b36,80 +34b3b37,40 +34b3b38,8c +34b3b39,42 +34b3b3a,64 +34b3b3b,cc +34b3b3c,18 +34b3b3d,40 +34b3b3e,1 +34b3b3f,94 +34b3b40,3c +34b3b41,2 +34b3b42,80 +34b3b43,40 +34b3b44,3c +34b3b45,12 +34b3b46,80 +34b3b47,40 +34b3b48,26 +34b3b49,52 +34b3b4a,64 +34b3b4b,2c +34b3b4e,88 +34b3b4f,25 +34b3b50,3c +34b3b51,16 +34b3b52,80 +34b3b53,40 +34b3b54,3c +34b3b55,14 +34b3b56,80 +34b3b57,40 +34b3b58,26 +34b3b59,94 +34b3b5a,64 +34b3b5b,8 +34b3b5c,24 +34b3b5d,42 +34b3b5e,63 +34b3b5f,f8 +34b3b60,af +34b3b61,a2 +34b3b63,38 +34b3b64,3c +34b3b65,1e +34b3b66,80 +34b3b67,11 +34b3b68,37 +34b3b69,de +34b3b6a,a5 +34b3b6b,d0 +34b3b6c,3c +34b3b6d,15 +34b3b6e,80 +34b3b6f,40 +34b3b70,8e +34b3b71,c2 +34b3b72,64 +34b3b73,d4 +34b3b74,10 +34b3b75,40 +34b3b77,8 +34b3b78,92 +34b3b79,42 +34b3b7c,3 +34b3b7d,c2 +34b3b7e,10 +34b3b7f,21 +34b3b80,90 +34b3b81,42 +34b3b83,a8 +34b3b85,2 +34b3b86,10 +34b3b87,42 +34b3b88,30 +34b3b89,42 +34b3b8b,1 +34b3b8c,50 +34b3b8d,40 +34b3b8f,14 +34b3b90,26 +34b3b91,31 +34b3b93,1 +34b3b94,92 +34b3b95,42 +34b3b99,54 +34b3b9a,10 +34b3b9b,21 +34b3b9c,80 +34b3b9d,46 +34b3ba0,2c +34b3ba1,c2 +34b3ba3,3 +34b3ba4,50 +34b3ba5,40 +34b3ba7,e +34b3ba8,26 +34b3ba9,31 +34b3bab,1 +34b3bac,24 +34b3bad,2 +34b3baf,10 +34b3bb0,af +34b3bb1,a2 +34b3bb3,18 +34b3bb4,af +34b3bb5,a2 +34b3bb7,14 +34b3bb9,11 +34b3bba,10 +34b3bbb,c0 +34b3bbd,51 +34b3bbe,10 +34b3bbf,21 +34b3bc1,2 +34b3bc2,10 +34b3bc3,40 +34b3bc4,24 +34b3bc5,42 +34b3bc7,4 +34b3bc8,af +34b3bc9,a2 +34b3bcb,10 +34b3bcc,2 +34b3bcd,e0 +34b3bce,38 +34b3bcf,25 +34b3bd0,8f +34b3bd1,a5 +34b3bd3,38 +34b3bd4,c +34b3bd5,10 +34b3bd6,14 +34b3bd7,af +34b3bd8,2 +34b3bda,20 +34b3bdb,25 +34b3bdc,26 +34b3bdd,31 +34b3bdf,1 +34b3be0,8e +34b3be1,a2 +34b3be2,64 +34b3be3,cc +34b3be4,2 +34b3be5,22 +34b3be6,18 +34b3be7,2a +34b3be8,14 +34b3be9,60 +34b3bea,ff +34b3beb,e1 +34b3bec,26 +34b3bed,52 +34b3bef,c +34b3bf0,18 +34b3bf1,40 +34b3bf3,10 +34b3bf4,26 +34b3bf5,73 +34b3bf7,14 +34b3bf8,3c +34b3bf9,11 +34b3bfa,80 +34b3bfb,40 +34b3bfc,26 +34b3bfd,31 +34b3bfe,64 +34b3bff,2e +34b3c00,24 +34b3c01,14 +34b3c03,5 +34b3c06,90 +34b3c07,25 +34b3c08,3c +34b3c09,15 +34b3c0a,80 +34b3c0b,40 +34b3c0c,2 +34b3c0d,80 +34b3c0e,30 +34b3c0f,25 +34b3c10,2 +34b3c11,60 +34b3c12,28 +34b3c13,25 +34b3c14,c +34b3c15,10 +34b3c16,18 +34b3c17,73 +34b3c18,2 +34b3c19,20 +34b3c1a,20 +34b3c1b,25 +34b3c1c,26 +34b3c1d,52 +34b3c1f,1 +34b3c20,26 +34b3c21,31 +34b3c23,c +34b3c24,8e +34b3c25,a2 +34b3c26,64 +34b3c27,cc +34b3c28,2 +34b3c29,42 +34b3c2a,10 +34b3c2b,2a +34b3c2c,14 +34b3c2d,40 +34b3c2e,ff +34b3c2f,f7 +34b3c30,26 +34b3c31,94 +34b3c33,12 +34b3c34,3c +34b3c35,2 +34b3c36,80 +34b3c37,40 +34b3c38,94 +34b3c39,42 +34b3c3a,63 +34b3c3b,cc +34b3c3d,2 +34b3c3e,10 +34b3c3f,c0 +34b3c40,24 +34b3c41,42 +34b3c43,2 +34b3c45,53 +34b3c46,98 +34b3c47,21 +34b3c48,24 +34b3c49,7 +34b3c4b,1 +34b3c4c,24 +34b3c4d,6 +34b3c4f,11 +34b3c50,3c +34b3c51,5 +34b3c52,80 +34b3c53,40 +34b3c54,24 +34b3c55,a5 +34b3c56,63 +34b3c57,d8 +34b3c58,c +34b3c59,10 +34b3c5a,14 +34b3c5b,1c +34b3c5c,2 +34b3c5e,20 +34b3c5f,25 +34b3c60,3c +34b3c61,2 +34b3c62,80 +34b3c63,40 +34b3c64,8c +34b3c65,42 +34b3c66,64 +34b3c67,cc +34b3c68,18 +34b3c69,40 +34b3c6b,2a +34b3c6c,3c +34b3c6d,17 +34b3c6e,80 +34b3c6f,11 +34b3c70,3c +34b3c71,12 +34b3c72,80 +34b3c73,40 +34b3c74,26 +34b3c75,52 +34b3c76,64 +34b3c77,2c +34b3c78,24 +34b3c79,14 +34b3c7b,5 +34b3c7e,88 +34b3c7f,25 +34b3c80,2 +34b3c81,40 +34b3c82,a8 +34b3c83,25 +34b3c84,36 +34b3c85,f7 +34b3c86,a5 +34b3c87,d0 +34b3c88,3c +34b3c89,16 +34b3c8a,80 +34b3c8b,40 +34b3c8d,11 +34b3c8e,10 +34b3c8f,40 +34b3c91,51 +34b3c92,10 +34b3c93,21 +34b3c95,2 +34b3c96,10 +34b3c97,80 +34b3c99,55 +34b3c9a,10 +34b3c9b,21 +34b3c9c,80 +34b3c9d,42 +34b3c9f,1 +34b3ca0,4 +34b3ca1,43 +34b3ca3,17 +34b3ca4,26 +34b3ca5,31 +34b3ca7,1 +34b3ca8,92 +34b3ca9,42 +34b3cac,2 +34b3cad,e2 +34b3cae,10 +34b3caf,21 +34b3cb0,90 +34b3cb1,42 +34b3cb3,bc +34b3cb5,2 +34b3cb6,1e +34b3cb9,3 +34b3cba,1e +34b3cbb,3 +34b3cbc,28 +34b3cbd,63 +34b3cbf,a +34b3cc0,50 +34b3cc1,60 +34b3cc3,1 +34b3cc4,24 +34b3cc5,2 +34b3cc7,9 +34b3cc8,24 +34b3cc9,3 +34b3cca,30 +34b3ccc,a7 +34b3ccd,a3 +34b3ccf,20 +34b3cd1,40 +34b3cd2,18 +34b3cd3,25 +34b3cd5,2 +34b3cd6,16 +34b3cd9,2 +34b3cda,16 +34b3cdb,3 +34b3cdc,4 +34b3cdd,42 +34b3cdf,1 +34b3ce2,18 +34b3ce3,25 +34b3ce4,24 +34b3ce5,63 +34b3ce7,30 +34b3ce8,a3 +34b3ce9,a3 +34b3ceb,20 +34b3cec,2 +34b3ced,80 +34b3cee,30 +34b3cef,25 +34b3cf0,2 +34b3cf1,60 +34b3cf2,28 +34b3cf3,25 +34b3cf4,c +34b3cf5,10 +34b3cf6,18 +34b3cf7,73 +34b3cf8,27 +34b3cf9,a4 +34b3cfb,20 +34b3cfc,26 +34b3cfd,31 +34b3cff,1 +34b3d00,26 +34b3d01,52 +34b3d03,c +34b3d04,8e +34b3d05,c2 +34b3d06,64 +34b3d07,cc +34b3d08,2 +34b3d09,22 +34b3d0a,10 +34b3d0b,2a +34b3d0c,14 +34b3d0d,40 +34b3d0e,ff +34b3d0f,df +34b3d10,26 +34b3d11,94 +34b3d13,12 +34b3d14,26 +34b3d15,77 +34b3d17,12 +34b3d18,24 +34b3d19,7 +34b3d1b,1 +34b3d1c,24 +34b3d1d,6 +34b3d1f,e +34b3d20,3c +34b3d21,5 +34b3d22,80 +34b3d23,40 +34b3d24,24 +34b3d25,a5 +34b3d26,63 +34b3d27,d8 +34b3d28,c +34b3d29,10 +34b3d2a,14 +34b3d2b,1c +34b3d2c,2 +34b3d2e,20 +34b3d2f,25 +34b3d30,3c +34b3d31,2 +34b3d32,80 +34b3d33,40 +34b3d34,8c +34b3d35,42 +34b3d36,64 +34b3d37,cc +34b3d38,58 +34b3d39,40 +34b3d3b,2b +34b3d3c,24 +34b3d3d,7 +34b3d3f,1 +34b3d40,3c +34b3d41,12 +34b3d42,80 +34b3d43,40 +34b3d44,26 +34b3d45,52 +34b3d46,64 +34b3d47,2c +34b3d4a,88 +34b3d4b,25 +34b3d4c,2 +34b3d4d,40 +34b3d4e,a0 +34b3d4f,25 +34b3d50,3c +34b3d51,16 +34b3d52,80 +34b3d53,11 +34b3d54,3c +34b3d55,1e +34b3d56,80 +34b3d57,40 +34b3d58,27 +34b3d59,de +34b3d5a,63 +34b3d5b,d8 +34b3d5c,3c +34b3d5d,15 +34b3d5e,80 +34b3d5f,40 +34b3d61,11 +34b3d62,10 +34b3d63,40 +34b3d65,51 +34b3d66,10 +34b3d67,21 +34b3d69,2 +34b3d6a,10 +34b3d6b,80 +34b3d6d,54 +34b3d6e,10 +34b3d6f,21 +34b3d70,90 +34b3d71,42 +34b3d73,1 +34b3d74,30 +34b3d75,42 +34b3d77,40 +34b3d78,50 +34b3d79,40 +34b3d7b,16 +34b3d7c,26 +34b3d7d,31 +34b3d7f,1 +34b3d80,36 +34b3d81,c2 +34b3d82,a5 +34b3d83,d0 +34b3d84,92 +34b3d85,43 +34b3d89,43 +34b3d8a,10 +34b3d8b,21 +34b3d8c,90 +34b3d8d,42 +34b3d8f,a8 +34b3d90,30 +34b3d91,42 +34b3d93,1 +34b3d94,50 +34b3d95,40 +34b3d97,f +34b3d98,26 +34b3d99,31 +34b3d9b,1 +34b3d9c,24 +34b3d9d,2 +34b3d9f,10 +34b3da0,af +34b3da1,a2 +34b3da3,18 +34b3da4,af +34b3da5,a2 +34b3da7,14 +34b3da9,11 +34b3daa,10 +34b3dab,c0 +34b3dad,51 +34b3dae,10 +34b3daf,21 +34b3db1,2 +34b3db2,10 +34b3db3,40 +34b3db4,24 +34b3db5,42 +34b3db7,4 +34b3db8,af +34b3db9,a2 +34b3dbb,10 +34b3dbc,2 +34b3dbd,e0 +34b3dbe,38 +34b3dbf,25 +34b3dc2,30 +34b3dc3,25 +34b3dc4,3 +34b3dc5,c0 +34b3dc6,28 +34b3dc7,25 +34b3dc8,c +34b3dc9,10 +34b3dca,14 +34b3dcb,af +34b3dcc,2 +34b3dce,20 +34b3dcf,25 +34b3dd0,26 +34b3dd1,31 +34b3dd3,1 +34b3dd4,8e +34b3dd5,a2 +34b3dd6,64 +34b3dd7,cc +34b3dd8,2 +34b3dd9,22 +34b3dda,10 +34b3ddb,2a +34b3ddc,14 +34b3ddd,40 +34b3dde,ff +34b3ddf,e0 +34b3de0,26 +34b3de1,52 +34b3de3,c +34b3de4,24 +34b3de5,7 +34b3de7,1 +34b3de8,24 +34b3de9,6 +34b3deb,a +34b3dec,3c +34b3ded,5 +34b3dee,80 +34b3def,40 +34b3df0,24 +34b3df1,a5 +34b3df2,63 +34b3df3,d8 +34b3df4,c +34b3df5,10 +34b3df6,14 +34b3df7,1c +34b3df8,2 +34b3dfa,20 +34b3dfb,25 +34b3dfc,3c +34b3dfd,2 +34b3dfe,80 +34b3dff,40 +34b3e00,8c +34b3e01,42 +34b3e02,64 +34b3e03,cc +34b3e04,58 +34b3e05,40 +34b3e07,29 +34b3e08,26 +34b3e09,7e +34b3e0b,24 +34b3e0e,88 +34b3e0f,25 +34b3e10,3c +34b3e11,12 +34b3e12,80 +34b3e13,40 +34b3e14,26 +34b3e15,52 +34b3e16,64 +34b3e17,2c +34b3e18,3c +34b3e19,15 +34b3e1a,80 +34b3e1b,11 +34b3e1c,3c +34b3e1d,16 +34b3e1e,80 +34b3e1f,40 +34b3e20,26 +34b3e21,d6 +34b3e22,63 +34b3e23,d8 +34b3e24,3c +34b3e25,14 +34b3e26,80 +34b3e27,40 +34b3e29,11 +34b3e2a,10 +34b3e2b,40 +34b3e2d,51 +34b3e2e,10 +34b3e2f,21 +34b3e31,2 +34b3e32,10 +34b3e33,80 +34b3e35,52 +34b3e36,10 +34b3e37,21 +34b3e38,90 +34b3e39,42 +34b3e3b,1 +34b3e3c,30 +34b3e3d,42 +34b3e3f,20 +34b3e40,50 +34b3e41,40 +34b3e43,15 +34b3e44,26 +34b3e45,31 +34b3e47,1 +34b3e48,36 +34b3e49,a2 +34b3e4a,a5 +34b3e4b,d0 +34b3e4c,8c +34b3e4d,42 +34b3e4f,a4 +34b3e50,3c +34b3e51,3 +34b3e53,40 +34b3e55,43 +34b3e56,10 +34b3e57,24 +34b3e58,50 +34b3e59,40 +34b3e5b,f +34b3e5c,26 +34b3e5d,31 +34b3e5f,1 +34b3e60,24 +34b3e61,2 +34b3e63,10 +34b3e64,af +34b3e65,a2 +34b3e67,18 +34b3e68,af +34b3e69,a2 +34b3e6b,14 +34b3e6d,11 +34b3e6e,10 +34b3e6f,c0 +34b3e71,51 +34b3e72,10 +34b3e73,21 +34b3e75,2 +34b3e76,10 +34b3e77,40 +34b3e78,24 +34b3e79,42 +34b3e7b,4 +34b3e7c,af +34b3e7d,a2 +34b3e7f,10 +34b3e80,2 +34b3e81,e0 +34b3e82,38 +34b3e83,25 +34b3e86,30 +34b3e87,25 +34b3e88,2 +34b3e89,c0 +34b3e8a,28 +34b3e8b,25 +34b3e8c,c +34b3e8d,10 +34b3e8e,14 +34b3e8f,af +34b3e90,2 +34b3e92,20 +34b3e93,25 +34b3e94,26 +34b3e95,31 +34b3e97,1 +34b3e98,8e +34b3e99,82 +34b3e9a,64 +34b3e9b,cc +34b3e9c,2 +34b3e9d,22 +34b3e9e,10 +34b3e9f,2a +34b3ea0,14 +34b3ea1,40 +34b3ea2,ff +34b3ea3,e2 +34b3ea5,11 +34b3ea6,10 +34b3ea7,40 +34b3ea8,26 +34b3ea9,7e +34b3eab,24 +34b3eac,24 +34b3ead,7 +34b3eaf,1 +34b3eb0,24 +34b3eb1,6 +34b3eb3,10 +34b3eb4,3c +34b3eb5,5 +34b3eb6,80 +34b3eb7,40 +34b3eb8,24 +34b3eb9,a5 +34b3eba,63 +34b3ebb,d8 +34b3ebc,c +34b3ebd,10 +34b3ebe,14 +34b3ebf,1c +34b3ec0,2 +34b3ec2,20 +34b3ec3,25 +34b3ec4,3c +34b3ec5,2 +34b3ec6,80 +34b3ec7,40 +34b3ec8,8c +34b3ec9,42 +34b3eca,64 +34b3ecb,cc +34b3ecc,18 +34b3ecd,40 +34b3ecf,2a +34b3ed0,3c +34b3ed1,12 +34b3ed2,80 +34b3ed3,40 +34b3ed4,26 +34b3ed5,52 +34b3ed6,64 +34b3ed7,2c +34b3eda,88 +34b3edb,25 +34b3edc,2 +34b3edd,40 +34b3ede,a0 +34b3edf,25 +34b3ee0,3c +34b3ee1,16 +34b3ee2,80 +34b3ee3,11 +34b3ee4,3c +34b3ee5,17 +34b3ee6,80 +34b3ee7,40 +34b3ee8,26 +34b3ee9,f7 +34b3eea,63 +34b3eeb,d8 +34b3eec,3c +34b3eed,15 +34b3eee,80 +34b3eef,40 +34b3ef1,11 +34b3ef2,10 +34b3ef3,40 +34b3ef5,51 +34b3ef6,10 +34b3ef7,21 +34b3ef9,2 +34b3efa,10 +34b3efb,80 +34b3efd,54 +34b3efe,10 +34b3eff,21 +34b3f00,90 +34b3f01,42 +34b3f03,1 +34b3f04,30 +34b3f05,42 +34b3f07,10 +34b3f08,50 +34b3f09,40 +34b3f0b,17 +34b3f0c,26 +34b3f0d,31 +34b3f0f,1 +34b3f10,36 +34b3f11,c2 +34b3f12,a5 +34b3f13,d0 +34b3f14,92 +34b3f15,43 +34b3f19,43 +34b3f1a,10 +34b3f1b,21 +34b3f1c,90 +34b3f1d,42 +34b3f1f,a8 +34b3f21,2 +34b3f22,10 +34b3f23,82 +34b3f24,30 +34b3f25,42 +34b3f27,1 +34b3f28,50 +34b3f29,40 +34b3f2b,f +34b3f2c,26 +34b3f2d,31 +34b3f2f,1 +34b3f30,24 +34b3f31,2 +34b3f33,10 +34b3f34,af +34b3f35,a2 +34b3f37,18 +34b3f38,af +34b3f39,a2 +34b3f3b,14 +34b3f3d,11 +34b3f3e,10 +34b3f3f,c0 +34b3f41,51 +34b3f42,10 +34b3f43,21 +34b3f45,2 +34b3f46,10 +34b3f47,40 +34b3f48,24 +34b3f49,42 +34b3f4b,4 +34b3f4c,af +34b3f4d,a2 +34b3f4f,10 +34b3f50,3 +34b3f51,c0 +34b3f52,38 +34b3f53,25 +34b3f56,30 +34b3f57,25 +34b3f58,2 +34b3f59,e0 +34b3f5a,28 +34b3f5b,25 +34b3f5c,c +34b3f5d,10 +34b3f5e,14 +34b3f5f,af +34b3f60,2 +34b3f62,20 +34b3f63,25 +34b3f64,26 +34b3f65,31 +34b3f67,1 +34b3f68,8e +34b3f69,a2 +34b3f6a,64 +34b3f6b,cc +34b3f6c,2 +34b3f6d,22 +34b3f6e,10 +34b3f6f,2a +34b3f70,14 +34b3f71,40 +34b3f72,ff +34b3f73,df +34b3f74,26 +34b3f75,52 +34b3f77,c +34b3f78,26 +34b3f79,7e +34b3f7b,36 +34b3f7c,24 +34b3f7d,7 +34b3f7f,1 +34b3f80,24 +34b3f81,6 +34b3f83,f +34b3f84,3c +34b3f85,5 +34b3f86,80 +34b3f87,40 +34b3f88,24 +34b3f89,a5 +34b3f8a,63 +34b3f8b,d8 +34b3f8c,c +34b3f8d,10 +34b3f8e,14 +34b3f8f,1c +34b3f90,2 +34b3f92,20 +34b3f93,25 +34b3f94,3c +34b3f95,2 +34b3f96,80 +34b3f97,40 +34b3f98,8c +34b3f99,42 +34b3f9a,64 +34b3f9b,cc +34b3f9c,18 +34b3f9d,40 +34b3f9f,62 +34b3fa0,3c +34b3fa1,12 +34b3fa2,80 +34b3fa3,40 +34b3fa4,26 +34b3fa5,52 +34b3fa6,64 +34b3fa7,2c +34b3faa,88 +34b3fab,25 +34b3fac,2 +34b3fad,40 +34b3fae,a0 +34b3faf,25 +34b3fb0,3c +34b3fb1,16 +34b3fb2,80 +34b3fb3,11 +34b3fb4,3c +34b3fb5,17 +34b3fb6,80 +34b3fb7,40 +34b3fb8,26 +34b3fb9,f7 +34b3fba,63 +34b3fbb,d8 +34b3fbc,3c +34b3fbd,15 +34b3fbe,80 +34b3fbf,40 +34b3fc1,11 +34b3fc2,10 +34b3fc3,40 +34b3fc5,51 +34b3fc6,10 +34b3fc7,21 +34b3fc9,2 +34b3fca,10 +34b3fcb,80 +34b3fcd,54 +34b3fce,10 +34b3fcf,21 +34b3fd0,90 +34b3fd1,42 +34b3fd3,1 +34b3fd4,30 +34b3fd5,42 +34b3fd7,10 +34b3fd8,50 +34b3fd9,40 +34b3fdb,17 +34b3fdc,26 +34b3fdd,31 +34b3fdf,1 +34b3fe0,36 +34b3fe1,c2 +34b3fe2,a5 +34b3fe3,d0 +34b3fe4,92 +34b3fe5,43 +34b3fe9,43 +34b3fea,10 +34b3feb,21 +34b3fec,90 +34b3fed,42 +34b3fef,a8 +34b3ff1,2 +34b3ff2,10 +34b3ff3,42 +34b3ff4,30 +34b3ff5,42 +34b3ff7,1 +34b3ff8,50 +34b3ff9,40 +34b3ffb,f +34b3ffc,26 +34b3ffd,31 +34b3fff,1 +34b4000,24 +34b4001,2 +34b4003,10 +34b4004,af +34b4005,a2 +34b4007,18 +34b4008,af +34b4009,a2 +34b400b,14 +34b400d,11 +34b400e,10 +34b400f,c0 +34b4011,51 +34b4012,10 +34b4013,21 +34b4015,2 +34b4016,10 +34b4017,40 +34b4018,24 +34b4019,42 +34b401b,4 +34b401c,af +34b401d,a2 +34b401f,10 +34b4020,3 +34b4021,c0 +34b4022,38 +34b4023,25 +34b4026,30 +34b4027,25 +34b4028,2 +34b4029,e0 +34b402a,28 +34b402b,25 +34b402c,c +34b402d,10 +34b402e,14 +34b402f,af +34b4030,2 +34b4032,20 +34b4033,25 +34b4034,26 +34b4035,31 +34b4037,1 +34b4038,8e +34b4039,a2 +34b403a,64 +34b403b,cc +34b403c,2 +34b403d,22 +34b403e,10 +34b403f,2a +34b4040,14 +34b4041,40 +34b4042,ff +34b4043,df +34b4044,26 +34b4045,52 +34b4047,c +34b4048,3c +34b4049,2 +34b404a,80 +34b404b,40 +34b404c,8c +34b404d,42 +34b404e,64 +34b404f,dc +34b4050,10 +34b4051,40 +34b4053,35 +34b4054,3c +34b4055,2 +34b4056,80 +34b4057,40 +34b4058,8c +34b4059,42 +34b405a,64 +34b405b,cc +34b405c,18 +34b405d,40 +34b405f,32 +34b4060,3c +34b4061,12 +34b4062,80 +34b4063,40 +34b4064,26 +34b4065,52 +34b4066,64 +34b4067,2c +34b4068,24 +34b4069,14 +34b406b,5 +34b406e,88 +34b406f,25 +34b4070,3c +34b4071,17 +34b4072,80 +34b4073,40 +34b4074,3c +34b4075,16 +34b4076,80 +34b4077,40 +34b4078,26 +34b4079,d6 +34b407a,64 +34b407b,f8 +34b407c,3c +34b407d,15 +34b407e,80 +34b407f,40 +34b4080,26 +34b4081,b5 +34b4082,63 +34b4083,bc +34b4084,3c +34b4085,2 +34b4086,80 +34b4087,40 +34b4088,24 +34b4089,42 +34b408a,63 +34b408b,c0 +34b408c,af +34b408d,a2 +34b408f,38 +34b4090,3c +34b4091,1e +34b4092,80 +34b4093,40 +34b4094,8e +34b4095,e2 +34b4096,64 +34b4097,d8 +34b4098,50 +34b4099,40 +34b409b,14 +34b409c,92 +34b409d,42 +34b40a1,11 +34b40a2,10 +34b40a3,40 +34b40a5,51 +34b40a6,10 +34b40a7,21 +34b40a9,2 +34b40aa,10 +34b40ab,80 +34b40ac,27 +34b40ad,c3 +34b40ae,64 +34b40af,2c +34b40b1,43 +34b40b2,10 +34b40b3,21 +34b40b4,90 +34b40b5,42 +34b40b7,1 +34b40b8,30 +34b40b9,42 +34b40bb,10 +34b40bc,50 +34b40bd,40 +34b40bf,b +34b40c0,92 +34b40c1,42 +34b40c4,92 +34b40c5,43 +34b40c8,3c +34b40c9,2 +34b40ca,80 +34b40cb,11 +34b40cc,34 +34b40cd,42 +34b40ce,a5 +34b40cf,d0 +34b40d1,43 +34b40d2,10 +34b40d3,21 +34b40d4,90 +34b40d5,42 +34b40d7,a8 +34b40d9,2 +34b40da,10 +34b40db,82 +34b40dc,30 +34b40dd,42 +34b40df,1 +34b40e0,50 +34b40e1,40 +34b40e3,b +34b40e4,26 +34b40e5,31 +34b40e7,1 +34b40e8,92 +34b40e9,42 +34b40ed,56 +34b40ee,10 +34b40ef,21 +34b40f0,90 +34b40f1,42 +34b40f4,14 +34b40f5,40 +34b40f7,2 +34b40f8,2 +34b40f9,a0 +34b40fa,20 +34b40fb,25 +34b40fc,8f +34b40fd,a4 +34b40ff,38 +34b4100,2 +34b4101,80 +34b4102,30 +34b4103,25 +34b4104,c +34b4105,10 +34b4106,18 +34b4107,73 +34b4108,26 +34b4109,65 +34b410b,48 +34b410c,26 +34b410d,31 +34b410f,1 +34b4110,26 +34b4111,94 +34b4113,12 +34b4114,3c +34b4115,2 +34b4116,80 +34b4117,40 +34b4118,8c +34b4119,42 +34b411a,64 +34b411b,cc +34b411c,2 +34b411d,22 +34b411e,10 +34b411f,2a +34b4120,14 +34b4121,40 +34b4122,ff +34b4123,dc +34b4124,26 +34b4125,52 +34b4127,c +34b4128,c +34b4129,10 +34b412a,18 +34b412b,9d +34b412c,2 +34b412e,20 +34b412f,25 +34b4130,8e +34b4131,2 +34b4133,8 +34b4134,24 +34b4135,43 +34b4137,8 +34b4138,ae +34b4139,3 +34b413b,8 +34b413c,3c +34b413d,3 +34b413e,e9 +34b4140,ac +34b4141,43 +34b4144,ac +34b4145,40 +34b4147,4 +34b4148,8e +34b4149,2 +34b414b,8 +34b414c,24 +34b414d,43 +34b414f,8 +34b4150,ae +34b4151,3 +34b4153,8 +34b4154,3c +34b4155,3 +34b4156,df +34b4158,ac +34b4159,43 +34b415c,ac +34b415d,40 +34b415f,4 +34b4160,8f +34b4161,bf +34b4163,64 +34b4164,8f +34b4165,be +34b4167,60 +34b4168,8f +34b4169,b7 +34b416b,5c +34b416c,8f +34b416d,b6 +34b416f,58 +34b4170,8f +34b4171,b5 +34b4173,54 +34b4174,8f +34b4175,b4 +34b4177,50 +34b4178,8f +34b4179,b3 +34b417b,4c +34b417c,8f +34b417d,b2 +34b417f,48 +34b4180,8f +34b4181,b1 +34b4183,44 +34b4184,8f +34b4185,b0 +34b4187,40 +34b4188,3 +34b4189,e0 +34b418b,8 +34b418c,27 +34b418d,bd +34b418f,68 +34b4190,10 +34b4192,fe +34b4193,a8 +34b4194,26 +34b4195,73 +34b4197,14 +34b4198,3 +34b4199,e0 +34b419b,8 +34b41a0,27 +34b41a1,bd +34b41a2,ff +34b41a3,e8 +34b41a4,af +34b41a5,bf +34b41a7,14 +34b41a8,c +34b41a9,10 +34b41aa,15 +34b41ab,b7 +34b41ac,24 +34b41ad,4 +34b41ae,4 +34b41b0,3c +34b41b1,3 +34b41b2,80 +34b41b3,40 +34b41b4,ac +34b41b5,62 +34b41b6,64 +34b41b7,e4 +34b41b8,3c +34b41b9,3 +34b41ba,80 +34b41bb,40 +34b41bc,ac +34b41bd,62 +34b41be,64 +34b41bf,e0 +34b41c0,8f +34b41c1,bf +34b41c3,14 +34b41c4,3 +34b41c5,e0 +34b41c7,8 +34b41c8,27 +34b41c9,bd +34b41cb,18 +34b41cc,80 +34b41cd,82 +34b41d0,10 +34b41d1,40 +34b41d3,26 +34b41d4,24 +34b41d5,87 +34b41d7,1 +34b41d8,3c +34b41d9,3 +34b41da,80 +34b41db,40 +34b41dc,8c +34b41dd,68 +34b41de,64 +34b41df,e4 +34b41e0,25 +34b41e1,8 +34b41e2,4 +34b41e4,3c +34b41e5,3 +34b41e6,80 +34b41e7,40 +34b41e8,8c +34b41e9,63 +34b41ea,64 +34b41eb,e0 +34b41ed,68 +34b41ee,20 +34b41ef,2b +34b41f0,10 +34b41f1,80 +34b41f3,1e +34b41f4,3c +34b41f5,a +34b41f6,ff +34b41f8,25 +34b41f9,4a +34b41fa,f +34b41fb,ff +34b41fc,30 +34b41fd,c6 +34b41fe,f +34b41ff,ff +34b4200,24 +34b4201,b +34b4202,f0 +34b4204,3c +34b4205,9 +34b4206,80 +34b4207,40 +34b4208,10 +34b420b,7 +34b420c,25 +34b420d,29 +34b420e,63 +34b420f,c8 +34b4211,68 +34b4212,20 +34b4213,2b +34b4214,54 +34b4215,80 +34b4217,5 +34b4218,a0 +34b4219,62 +34b421c,3c +34b421d,2 +34b421e,80 +34b421f,40 +34b4220,3 +34b4221,e0 +34b4223,8 +34b4224,ac +34b4225,43 +34b4226,64 +34b4227,e0 +34b4228,a0 +34b4229,62 +34b422c,30 +34b422d,a2 +34b422e,f +34b422f,ff +34b4231,2 +34b4232,23 +34b4234,8c +34b4235,62 +34b4239,4a +34b423a,10 +34b423b,24 +34b423d,44 +34b423e,10 +34b423f,25 +34b4241,4b +34b4242,10 +34b4243,24 +34b4245,46 +34b4246,10 +34b4247,25 +34b4248,ac +34b4249,62 +34b424c,95 +34b424d,22 +34b424f,4 +34b4251,a2 +34b4252,28 +34b4253,21 +34b4254,24 +34b4255,e7 +34b4257,1 +34b4258,80 +34b4259,e2 +34b425a,ff +34b425b,ff +34b425c,14 +34b425d,40 +34b425e,ff +34b425f,ec +34b4260,24 +34b4261,63 +34b4263,4 +34b4264,3c +34b4265,2 +34b4266,80 +34b4267,40 +34b4268,ac +34b4269,43 +34b426a,64 +34b426b,e0 +34b426c,3 +34b426d,e0 +34b426f,8 +34b4274,27 +34b4275,bd +34b4276,ff +34b4277,b0 +34b4278,af +34b4279,bf +34b427b,4c +34b427c,af +34b427d,be +34b427f,48 +34b4280,af +34b4281,b7 +34b4283,44 +34b4284,af +34b4285,b6 +34b4287,40 +34b4288,af +34b4289,b5 +34b428b,3c +34b428c,af +34b428d,b4 +34b428f,38 +34b4290,af +34b4291,b3 +34b4293,34 +34b4294,af +34b4295,b2 +34b4297,30 +34b4298,af +34b4299,b1 +34b429b,2c +34b429c,af +34b429d,b0 +34b429f,28 +34b42a1,80 +34b42a2,a8 +34b42a3,25 +34b42a6,b0 +34b42a7,25 +34b42aa,90 +34b42ab,25 +34b42ac,3c +34b42ad,14 +34b42ae,80 +34b42af,40 +34b42b0,26 +34b42b1,94 +34b42b2,63 +34b42b3,c8 +34b42b4,3c +34b42b5,1e +34b42b6,80 +34b42b7,40 +34b42b8,3c +34b42b9,13 +34b42ba,80 +34b42bb,40 +34b42bc,3c +34b42bd,17 +34b42be,38 +34b42bf,e3 +34b42c0,af +34b42c1,b4 +34b42c3,20 +34b42c4,24 +34b42c5,7 +34b42c7,12 +34b42c8,2 +34b42c9,c0 +34b42ca,30 +34b42cb,25 +34b42cc,2 +34b42cd,80 +34b42ce,28 +34b42cf,25 +34b42d0,c +34b42d1,10 +34b42d2,14 +34b42d3,1c +34b42d4,2 +34b42d5,a0 +34b42d6,20 +34b42d7,25 +34b42d8,8f +34b42d9,c5 +34b42da,64 +34b42db,e4 +34b42dc,10 +34b42df,1f +34b42e0,36 +34b42e1,f1 +34b42e2,8e +34b42e3,39 +34b42e4,24 +34b42e5,42 +34b42e6,ff +34b42e7,e0 +34b42e9,51 +34b42eb,18 +34b42ee,18 +34b42ef,10 +34b42f1,3 +34b42f2,18 +34b42f3,83 +34b42f5,2 +34b42f6,27 +34b42f7,c3 +34b42f9,64 +34b42fa,18 +34b42fb,23 +34b42fc,14 +34b42fd,72 +34b42ff,16 +34b4300,24 +34b4301,b0 +34b4303,4 +34b4304,8c +34b4305,a7 +34b4309,7 +34b430a,3b +34b430b,2 +34b430d,51 +34b430f,18 +34b4312,30 +34b4313,10 +34b4315,6 +34b4316,30 +34b4317,83 +34b4319,c4 +34b431a,30 +34b431b,23 +34b431d,6 +34b431e,18 +34b431f,c0 +34b4321,66 +34b4322,30 +34b4323,21 +34b4325,6 +34b4326,30 +34b4327,40 +34b4328,96 +34b4329,83 +34b432b,6 +34b432c,af +34b432d,a3 +34b432f,18 +34b4330,96 +34b4331,83 +34b4333,4 +34b4334,af +34b4335,a3 +34b4337,14 +34b4338,8c +34b4339,a3 +34b433c,30 +34b433d,63 +34b433e,f +34b433f,ff +34b4340,af +34b4341,a3 +34b4343,10 +34b4344,30 +34b4345,e7 +34b4346,f +34b4347,ff +34b4349,46 +34b434a,30 +34b434b,23 +34b434c,8f +34b434d,a5 +34b434f,20 +34b4350,c +34b4351,10 +34b4352,14 +34b4353,af +34b4354,2 +34b4355,a0 +34b4356,20 +34b4357,25 +34b4358,2 +34b435a,28 +34b435b,25 +34b435c,8e +34b435d,62 +34b435e,64 +34b435f,e0 +34b4361,a2 +34b4362,10 +34b4363,2b +34b4364,54 +34b4365,40 +34b4366,ff +34b4367,df +34b4368,80 +34b4369,a2 +34b436c,26 +34b436d,52 +34b436f,1 +34b4370,24 +34b4371,2 +34b4373,6 +34b4374,16 +34b4375,42 +34b4376,ff +34b4377,d3 +34b4378,26 +34b4379,d6 +34b437b,12 +34b437c,3c +34b437d,2 +34b437e,80 +34b437f,40 +34b4380,8c +34b4381,43 +34b4382,64 +34b4383,e4 +34b4384,3c +34b4385,2 +34b4386,80 +34b4387,40 +34b4388,ac +34b4389,43 +34b438a,64 +34b438b,e0 +34b438c,8f +34b438d,bf +34b438f,4c +34b4390,8f +34b4391,be +34b4393,48 +34b4394,8f +34b4395,b7 +34b4397,44 +34b4398,8f +34b4399,b6 +34b439b,40 +34b439c,8f +34b439d,b5 +34b439f,3c +34b43a0,8f +34b43a1,b4 +34b43a3,38 +34b43a4,8f +34b43a5,b3 +34b43a7,34 +34b43a8,8f +34b43a9,b2 +34b43ab,30 +34b43ac,8f +34b43ad,b1 +34b43af,2c +34b43b0,8f +34b43b1,b0 +34b43b3,28 +34b43b4,3 +34b43b5,e0 +34b43b7,8 +34b43b8,27 +34b43b9,bd +34b43bb,50 +34b43bc,4d +34b43bd,51 +34b43c0,4e +34b43c1,6f +34b43c2,72 +34b43c3,6d +34b43c4,61 +34b43c5,6c +34b43cd,8 +34b43cf,e +34b43d1,5f +34b43d2,3 +34b43d3,1 +34b43d4,1 +34b43dd,18 +34b43df,18 +34b43e1,12 +34b43e3,3 +34b43e4,4 +34b43ed,10 +34b43ef,10 +34b43f1,6 +34b43f2,3 +34b43f3,1 +34b43f4,1 +34b43fd,10 +34b43ff,10 +34b4401,3 +34b4403,3 +34b4404,4 +34b4409,1 +34b440a,2 +34b440b,3 +34b440c,4 +34b440d,5 +34b440e,6 +34b440f,7 +34b4410,ff +34b4411,ff +34b4412,ff +34b4413,ff +34b4414,ff +34b4415,ff +34b4418,11 +34b4419,c2 +34b441a,2d +34b441b,d4 +34b441c,43 +34b441d,22 +34b441e,8 +34b441f,54 +34b4420,ce +34b4421,d1 +34b4422,75 +34b4423,1a +34b4424,a9 +34b4425,3a +34b4426,ea +34b4427,a4 +34b4428,ab +34b4429,21 +34b442d,10 +34b442e,44 +34b442f,65 +34b4430,6b +34b4431,75 +34b4438,1 +34b4439,10 +34b443a,44 +34b443b,6f +34b443c,64 +34b443d,6f +34b443e,6e +34b443f,67 +34b4440,6f +34b4444,2 +34b4445,10 +34b4446,4a +34b4447,61 +34b4448,62 +34b4449,75 +34b4450,3 +34b4451,d0 +34b4452,46 +34b4453,6f +34b4454,72 +34b4455,65 +34b4456,73 +34b4457,74 +34b445c,4 +34b445d,d0 +34b445e,46 +34b445f,69 +34b4460,72 +34b4461,65 +34b4468,5 +34b4469,d0 +34b446a,57 +34b446b,61 +34b446c,74 +34b446d,65 +34b446e,72 +34b4474,7 +34b4475,d0 +34b4476,53 +34b4477,68 +34b4478,61 +34b4479,64 +34b447a,6f +34b447b,77 +34b4480,6 +34b4481,d0 +34b4482,53 +34b4483,70 +34b4484,69 +34b4485,72 +34b4486,69 +34b4487,74 +34b448c,8 +34b448d,90 +34b448e,42 +34b448f,6f +34b4490,74 +34b4491,57 +34b4498,9 +34b4499,10 +34b449a,49 +34b449b,63 +34b449c,65 +34b44a4,c +34b44a5,a0 +34b44a6,47 +34b44a7,65 +34b44a8,72 +34b44a9,75 +34b44aa,64 +34b44ab,6f +34b44b0,b +34b44b1,80 +34b44b2,47 +34b44b3,54 +34b44b4,47 +34b44bc,d +34b44bd,c0 +34b44be,47 +34b44bf,61 +34b44c0,6e +34b44c1,6f +34b44c2,6e +34b44cb,1 +34b44cf,d +34b4547,d +34b4548,b0 +34b454b,d +34b454c,b0 +34b454f,d +34b4550,b0 +34b4553,c +34b4554,b0 +34b4557,c +34b4558,b0 +34b455b,c +34b455c,a0 +34b4563,d +34b4564,b0 +34b4567,d +34b4568,b0 +34b457f,e8 +34b4580,ac +34b4583,e8 +34b4584,ac +34b4587,e8 +34b4588,ac +34b458b,e8 +34b458c,ac +34b45b3,d +34b45b4,77 +34b45b5,d0 +34b45b7,2e +34b45b8,3a +34b45b9,b0 +34b45bb,7d +34b45bc,c +34b45bd,90 +34b45be,8f +34b45bf,ff +34b45c0,ff +34b45c1,fd +34b45c3,c9 +34b45c4,6e +34b45c6,2 +34b45c7,e4 +34b45c8,ac +34b45ca,ef +34b45cb,ff +34b45cc,ff +34b45cd,f4 +34b45ce,a +34b45cf,b0 +34b45d0,e5 +34b45d2,c +34b45d3,95 +34b45d4,e0 +34b45d6,e +34b45d7,59 +34b45d8,c0 +34b45ef,7 +34b45f0,90 +34b45f2,5 +34b45f3,ce +34b45f4,eb +34b45f5,40 +34b45f6,c +34b45f7,c8 +34b45f8,a9 +34b45f9,90 +34b45fa,d +34b45fb,a7 +34b45fc,90 +34b45fe,8 +34b45ff,ec +34b4600,b4 +34b4603,4a +34b4604,dd +34b4605,a0 +34b4607,7 +34b4608,97 +34b4609,e2 +34b460a,c +34b460b,88 +34b460c,aa +34b460d,e0 +34b460e,6 +34b460f,ce +34b4610,ed +34b4611,70 +34b4613,7 +34b4614,90 +34b4617,7 +34b4618,90 +34b4626,6d +34b4627,ea +34b462a,c9 +34b462b,4d +34b462c,60 +34b462e,c9 +34b462f,4d +34b4630,60 +34b4631,33 +34b4632,6d +34b4633,eb +34b4634,6b +34b4635,c6 +34b4637,8c +34b4638,b6 +34b463a,7c +34b463b,a4 +34b463c,ce +34b463d,c4 +34b463e,31 +34b463f,9 +34b4640,c3 +34b4641,bb +34b4643,9 +34b4644,c3 +34b4645,bb +34b4647,2 +34b4648,ce +34b4649,d4 +34b465e,4 +34b465f,ce +34b4660,fb +34b4662,a +34b4663,d5 +34b4666,8 +34b4667,e3 +34b466a,9 +34b466b,ec +34b466e,7e +34b466f,4d +34b4670,b0 +34b4671,ab +34b4672,bb +34b4673,5 +34b4674,e8 +34b4675,aa +34b4676,bc +34b4678,8e +34b4679,d6 +34b467a,7e +34b467b,93 +34b467c,6e +34b467d,d0 +34b467e,8 +34b467f,de +34b4680,d9 +34b4681,ea +34b4697,c +34b4698,a0 +34b469b,c +34b469c,a0 +34b469f,c +34b46a0,a0 +34b46a3,c +34b46a4,a0 +34b46c8,c9 +34b46cb,7 +34b46cc,e2 +34b46cf,c +34b46d0,b0 +34b46d3,e +34b46d4,80 +34b46d7,6f +34b46d8,30 +34b46db,8e +34b46df,8e +34b46e3,6f +34b46e4,40 +34b46e7,e +34b46e8,80 +34b46eb,c +34b46ec,b0 +34b46ef,7 +34b46f0,e2 +34b46f4,c9 +34b46ff,bb +34b4703,5e +34b4704,40 +34b4707,c +34b4708,a0 +34b470b,a +34b470c,d0 +34b470f,7 +34b4710,e1 +34b4713,6 +34b4714,f4 +34b4717,6 +34b4718,f4 +34b471b,7 +34b471c,e1 +34b471f,a +34b4720,d0 +34b4723,c +34b4724,a0 +34b4727,5e +34b4728,40 +34b472b,bb +34b473f,a +34b4740,80 +34b4742,c +34b4743,8a +34b4744,8a +34b4745,b0 +34b4746,3 +34b4747,be +34b4748,da +34b4749,10 +34b474a,3 +34b474b,be +34b474c,da +34b474d,10 +34b474e,c +34b474f,8a +34b4750,8a +34b4751,b0 +34b4753,a +34b4754,80 +34b477b,c +34b477c,a0 +34b477f,c +34b4780,a0 +34b4783,c +34b4784,a0 +34b4786,af +34b4787,ff +34b4788,ff +34b4789,f8 +34b478b,c +34b478c,a0 +34b478f,c +34b4790,a0 +34b4793,c +34b4794,a0 +34b47cb,d +34b47cc,d0 +34b47cf,e +34b47d0,c0 +34b47d3,4f +34b47d4,80 +34b47d7,9d +34b47fb,df +34b47fc,fb +34b483b,e +34b483c,c0 +34b483f,e +34b4840,c0 +34b4858,b +34b4859,c0 +34b485c,4e +34b485d,60 +34b4860,bc +34b4863,3 +34b4864,e8 +34b4867,a +34b4868,d0 +34b486b,1e +34b486c,90 +34b486f,9e +34b4870,20 +34b4873,da +34b4876,7 +34b4877,e3 +34b487a,c +34b487b,b0 +34b487e,6e +34b487f,50 +34b488e,3 +34b488f,ce +34b4890,eb +34b4892,b +34b4893,d5 +34b4894,7e +34b4895,90 +34b4896,e +34b4897,90 +34b4898,b +34b4899,d0 +34b489a,5f +34b489b,70 +34b489c,9 +34b489d,e0 +34b489e,6f +34b489f,6c +34b48a0,b9 +34b48a1,e0 +34b48a2,5f +34b48a3,70 +34b48a4,9 +34b48a5,e0 +34b48a6,e +34b48a7,90 +34b48a8,b +34b48a9,d0 +34b48aa,b +34b48ab,d5 +34b48ac,7e +34b48ad,90 +34b48ae,3 +34b48af,ce +34b48b0,eb +34b48c6,a +34b48c7,ff +34b48c8,e0 +34b48cb,8 +34b48cc,e0 +34b48cf,8 +34b48d0,e0 +34b48d3,8 +34b48d4,e0 +34b48d7,8 +34b48d8,e0 +34b48db,8 +34b48dc,e0 +34b48df,8 +34b48e0,e0 +34b48e3,8 +34b48e4,e0 +34b48e6,8 +34b48e7,ff +34b48e8,ff +34b48e9,e0 +34b48fe,8 +34b48ff,de +34b4900,ea +34b4902,c +34b4903,83 +34b4904,7e +34b4905,90 +34b4908,c +34b4909,c0 +34b490c,2e +34b490d,a0 +34b4910,bd +34b4911,20 +34b4913,b +34b4914,d4 +34b4917,bd +34b4918,40 +34b491a,b +34b491b,d4 +34b491e,2f +34b491f,ff +34b4920,ff +34b4921,d0 +34b4936,7 +34b4937,ce +34b4938,ea +34b493a,c +34b493b,83 +34b493c,7e +34b493d,90 +34b4940,c +34b4941,b0 +34b4943,2 +34b4944,7e +34b4945,90 +34b4947,bf +34b4948,fb +34b494b,2 +34b494c,7d +34b494d,a0 +34b4950,a +34b4951,d0 +34b4952,5c +34b4953,62 +34b4954,7d +34b4955,b0 +34b4956,9 +34b4957,de +34b4958,eb +34b4959,30 +34b496f,2 +34b4970,de +34b4973,b +34b4974,de +34b4977,7d +34b4978,9e +34b497a,2 +34b497b,d7 +34b497c,9e +34b497e,b +34b497f,b0 +34b4980,9e +34b4982,6e +34b4983,40 +34b4984,9e +34b4986,9f +34b4987,ff +34b4988,ff +34b4989,f7 +34b498c,9e +34b4990,9e +34b49a6,c +34b49a7,ff +34b49a8,ff +34b49a9,50 +34b49aa,c +34b49ab,a0 +34b49ae,c +34b49af,a0 +34b49b2,c +34b49b3,ee +34b49b4,ea +34b49b7,3 +34b49b8,8e +34b49b9,90 +34b49bc,b +34b49bd,c0 +34b49c0,b +34b49c1,c0 +34b49c2,5c +34b49c3,63 +34b49c4,8e +34b49c5,90 +34b49c6,9 +34b49c7,de +34b49c8,da +34b49df,ae +34b49e0,ec +34b49e1,30 +34b49e2,a +34b49e3,e8 +34b49e4,39 +34b49e5,80 +34b49e6,e +34b49e7,90 +34b49ea,4f +34b49eb,ae +34b49ec,ec +34b49ed,40 +34b49ee,6f +34b49ef,d5 +34b49f0,5d +34b49f1,c0 +34b49f2,5f +34b49f3,90 +34b49f4,9 +34b49f5,e0 +34b49f6,e +34b49f7,90 +34b49f8,9 +34b49f9,e0 +34b49fa,c +34b49fb,d5 +34b49fc,5d +34b49fd,c0 +34b49fe,3 +34b49ff,ce +34b4a00,ec +34b4a01,40 +34b4a16,5f +34b4a17,ff +34b4a18,ff +34b4a19,d0 +34b4a1c,d +34b4a1d,a0 +34b4a20,7e +34b4a21,40 +34b4a24,cc +34b4a27,4 +34b4a28,e8 +34b4a2b,a +34b4a2c,d0 +34b4a2f,d +34b4a30,a0 +34b4a33,8e +34b4a34,40 +34b4a37,cc +34b4a4e,5 +34b4a4f,ce +34b4a50,ec +34b4a51,30 +34b4a52,d +34b4a53,c4 +34b4a54,5d +34b4a55,b0 +34b4a56,e +34b4a57,90 +34b4a58,b +34b4a59,d0 +34b4a5a,b +34b4a5b,c4 +34b4a5c,5d +34b4a5d,90 +34b4a5e,4 +34b4a5f,df +34b4a60,fc +34b4a61,20 +34b4a62,1d +34b4a63,b4 +34b4a64,5c +34b4a65,c0 +34b4a66,5f +34b4a67,60 +34b4a68,9 +34b4a69,e0 +34b4a6a,2e +34b4a6b,b3 +34b4a6c,5c +34b4a6d,d0 +34b4a6e,7 +34b4a6f,de +34b4a70,ec +34b4a71,50 +34b4a86,6 +34b4a87,de +34b4a88,eb +34b4a8a,d +34b4a8b,b3 +34b4a8c,7e +34b4a8d,90 +34b4a8e,5f +34b4a8f,50 +34b4a90,b +34b4a91,d0 +34b4a92,5f +34b4a93,50 +34b4a94,b +34b4a95,e0 +34b4a96,d +34b4a97,b3 +34b4a98,7e +34b4a99,e0 +34b4a9a,6 +34b4a9b,de +34b4a9c,db +34b4a9d,e0 +34b4aa0,b +34b4aa1,c0 +34b4aa2,9 +34b4aa3,74 +34b4aa4,9e +34b4aa5,70 +34b4aa6,5 +34b4aa7,de +34b4aa8,d8 +34b4ac7,e +34b4ac8,c0 +34b4acb,e +34b4acc,c0 +34b4adb,e +34b4adc,c0 +34b4adf,e +34b4ae0,c0 +34b4aff,e +34b4b00,c0 +34b4b03,e +34b4b04,c0 +34b4b13,d +34b4b14,d0 +34b4b17,e +34b4b18,c0 +34b4b1b,4f +34b4b1c,80 +34b4b1f,9d +34b4b38,29 +34b4b39,c8 +34b4b3b,7b +34b4b3c,ed +34b4b3d,93 +34b4b3e,8d +34b4b3f,da +34b4b40,40 +34b4b42,8d +34b4b43,da +34b4b44,40 +34b4b47,7b +34b4b48,ec +34b4b49,93 +34b4b4c,29 +34b4b4d,c8 +34b4b72,af +34b4b73,ff +34b4b74,ff +34b4b75,f8 +34b4b7e,af +34b4b7f,ff +34b4b80,ff +34b4b81,f8 +34b4ba6,ac +34b4ba7,81 +34b4baa,4a +34b4bab,de +34b4bac,b6 +34b4baf,6 +34b4bb0,ad +34b4bb1,d6 +34b4bb3,6 +34b4bb4,ad +34b4bb5,d6 +34b4bb6,4a +34b4bb7,de +34b4bb8,b6 +34b4bba,ac +34b4bbb,81 +34b4bd6,4 +34b4bd7,be +34b4bd8,ec +34b4bd9,30 +34b4bda,9 +34b4bdb,a4 +34b4bdc,6e +34b4bdd,a0 +34b4be0,1d +34b4be1,a0 +34b4be3,2 +34b4be4,cd +34b4be5,30 +34b4be7,c +34b4be8,c1 +34b4beb,e +34b4bec,90 +34b4bf3,e +34b4bf4,90 +34b4bf7,e +34b4bf8,90 +34b4c0e,1 +34b4c0f,ae +34b4c10,ed +34b4c11,70 +34b4c12,c +34b4c13,d7 +34b4c14,39 +34b4c15,e4 +34b4c16,7e +34b4c17,20 +34b4c19,c9 +34b4c1a,ba +34b4c1b,a +34b4c1c,ee +34b4c1d,ca +34b4c1e,d7 +34b4c1f,6e +34b4c20,64 +34b4c21,da +34b4c22,d6 +34b4c23,9c +34b4c25,aa +34b4c26,d7 +34b4c27,6e +34b4c28,64 +34b4c29,da +34b4c2a,ba +34b4c2b,a +34b4c2c,ee +34b4c2d,ca +34b4c2e,6e +34b4c2f,40 +34b4c32,a +34b4c33,d8 +34b4c34,30 +34b4c37,8d +34b4c38,ee +34b4c39,90 +34b4c47,3e +34b4c48,d0 +34b4c4b,9d +34b4c4c,e6 +34b4c4f,cb +34b4c50,cb +34b4c52,3 +34b4c53,e8 +34b4c54,ad +34b4c56,8 +34b4c57,e2 +34b4c58,6f +34b4c59,60 +34b4c5a,c +34b4c5b,c0 +34b4c5c,e +34b4c5d,a0 +34b4c5e,2e +34b4c5f,ff +34b4c60,ff +34b4c61,d0 +34b4c62,8e +34b4c63,50 +34b4c64,8 +34b4c65,f5 +34b4c66,cd +34b4c68,1 +34b4c69,ea +34b4c7e,e +34b4c7f,ff +34b4c80,ec +34b4c81,40 +34b4c82,e +34b4c83,90 +34b4c84,5d +34b4c85,c0 +34b4c86,e +34b4c87,90 +34b4c88,a +34b4c89,e0 +34b4c8a,e +34b4c8b,90 +34b4c8c,5d +34b4c8d,c0 +34b4c8e,e +34b4c8f,ff +34b4c90,fd +34b4c91,50 +34b4c92,e +34b4c93,90 +34b4c94,4b +34b4c95,d2 +34b4c96,e +34b4c97,90 +34b4c98,5 +34b4c99,f6 +34b4c9a,e +34b4c9b,90 +34b4c9c,4b +34b4c9d,e3 +34b4c9e,e +34b4c9f,ff +34b4ca0,ed +34b4ca1,80 +34b4cb7,9d +34b4cb8,ed +34b4cb9,80 +34b4cba,8 +34b4cbb,e9 +34b4cbc,36 +34b4cbd,b0 +34b4cbe,d +34b4cbf,b0 +34b4cc2,3f +34b4cc3,90 +34b4cc6,5f +34b4cc7,70 +34b4cca,1e +34b4ccb,90 +34b4cce,d +34b4ccf,b0 +34b4cd2,8 +34b4cd3,e9 +34b4cd4,47 +34b4cd5,b0 +34b4cd7,9d +34b4cd8,ed +34b4cd9,80 +34b4cee,5f +34b4cef,fe +34b4cf0,d8 +34b4cf2,5f +34b4cf3,65 +34b4cf4,ae +34b4cf5,80 +34b4cf6,5f +34b4cf7,60 +34b4cf8,c +34b4cf9,d0 +34b4cfa,5f +34b4cfb,60 +34b4cfc,9 +34b4cfd,e0 +34b4cfe,5f +34b4cff,60 +34b4d00,9 +34b4d01,f0 +34b4d02,5f +34b4d03,60 +34b4d04,9 +34b4d05,e0 +34b4d06,5f +34b4d07,60 +34b4d08,c +34b4d09,d0 +34b4d0a,5f +34b4d0b,65 +34b4d0c,ae +34b4d0d,80 +34b4d0e,5f +34b4d0f,fe +34b4d10,d8 +34b4d26,d +34b4d27,ff +34b4d28,ff +34b4d29,e0 +34b4d2a,d +34b4d2b,b0 +34b4d2e,d +34b4d2f,b0 +34b4d32,d +34b4d33,b0 +34b4d36,d +34b4d37,ff +34b4d38,ff +34b4d39,c0 +34b4d3a,d +34b4d3b,b0 +34b4d3e,d +34b4d3f,b0 +34b4d42,d +34b4d43,b0 +34b4d46,d +34b4d47,ff +34b4d48,ff +34b4d49,f0 +34b4d5e,b +34b4d5f,ff +34b4d60,ff +34b4d61,f4 +34b4d62,b +34b4d63,d0 +34b4d66,b +34b4d67,d0 +34b4d6a,b +34b4d6b,d0 +34b4d6e,b +34b4d6f,ff +34b4d70,ff +34b4d71,c0 +34b4d72,b +34b4d73,d0 +34b4d76,b +34b4d77,d0 +34b4d7a,b +34b4d7b,d0 +34b4d7e,b +34b4d7f,d0 +34b4d96,1 +34b4d97,ae +34b4d98,ed +34b4d99,60 +34b4d9a,b +34b4d9b,e7 +34b4d9c,38 +34b4d9d,a0 +34b4d9e,4e +34b4d9f,90 +34b4da2,8f +34b4da3,40 +34b4da6,9f +34b4da7,10 +34b4da8,bf +34b4da9,f2 +34b4daa,7f +34b4dab,40 +34b4dac,7 +34b4dad,f2 +34b4dae,4e +34b4daf,90 +34b4db0,7 +34b4db1,f2 +34b4db2,b +34b4db3,e7 +34b4db4,39 +34b4db5,f2 +34b4db6,1 +34b4db7,be +34b4db8,ed +34b4db9,90 +34b4dce,5f +34b4dcf,60 +34b4dd0,9 +34b4dd1,e0 +34b4dd2,5f +34b4dd3,60 +34b4dd4,9 +34b4dd5,e0 +34b4dd6,5f +34b4dd7,60 +34b4dd8,9 +34b4dd9,e0 +34b4dda,5f +34b4ddb,60 +34b4ddc,9 +34b4ddd,e0 +34b4dde,5f +34b4ddf,ff +34b4de0,ff +34b4de1,e0 +34b4de2,5f +34b4de3,60 +34b4de4,9 +34b4de5,e0 +34b4de6,5f +34b4de7,60 +34b4de8,9 +34b4de9,e0 +34b4dea,5f +34b4deb,60 +34b4dec,9 +34b4ded,e0 +34b4dee,5f +34b4def,60 +34b4df0,9 +34b4df1,e0 +34b4e06,d +34b4e07,ff +34b4e08,ff +34b4e09,b0 +34b4e0b,d +34b4e0c,b0 +34b4e0f,d +34b4e10,b0 +34b4e13,d +34b4e14,b0 +34b4e17,d +34b4e18,b0 +34b4e1b,d +34b4e1c,b0 +34b4e1f,d +34b4e20,b0 +34b4e23,d +34b4e24,b0 +34b4e26,d +34b4e27,ff +34b4e28,ff +34b4e29,b0 +34b4e3f,cf +34b4e40,ff +34b4e41,40 +34b4e44,7f +34b4e45,40 +34b4e48,7f +34b4e49,40 +34b4e4c,7f +34b4e4d,40 +34b4e50,7f +34b4e51,40 +34b4e54,7f +34b4e55,30 +34b4e56,75 +34b4e58,9e +34b4e5a,8d +34b4e5b,64 +34b4e5c,dc +34b4e5e,2b +34b4e5f,ee +34b4e60,c5 +34b4e76,5f +34b4e77,60 +34b4e78,9 +34b4e79,e7 +34b4e7a,5f +34b4e7b,60 +34b4e7c,9e +34b4e7d,70 +34b4e7e,5f +34b4e7f,69 +34b4e80,e7 +34b4e82,5f +34b4e83,be +34b4e84,80 +34b4e86,5f +34b4e87,ed +34b4e88,b0 +34b4e8a,5f +34b4e8b,87 +34b4e8c,e8 +34b4e8e,5f +34b4e8f,60 +34b4e90,ae +34b4e91,40 +34b4e92,5f +34b4e93,60 +34b4e94,1d +34b4e95,c0 +34b4e96,5f +34b4e97,60 +34b4e98,6 +34b4e99,ea +34b4eae,c +34b4eaf,c0 +34b4eb2,c +34b4eb3,c0 +34b4eb6,c +34b4eb7,c0 +34b4eba,c +34b4ebb,c0 +34b4ebe,c +34b4ebf,c0 +34b4ec2,c +34b4ec3,c0 +34b4ec6,c +34b4ec7,c0 +34b4eca,c +34b4ecb,c0 +34b4ece,c +34b4ecf,ff +34b4ed0,ff +34b4ed1,f7 +34b4ee6,af +34b4ee7,a0 +34b4ee8,c +34b4ee9,f8 +34b4eea,ae +34b4eeb,d0 +34b4eec,2e +34b4eed,e8 +34b4eee,ad +34b4eef,d5 +34b4ef0,9b +34b4ef1,e8 +34b4ef2,ad +34b4ef3,aa +34b4ef4,c8 +34b4ef5,e8 +34b4ef6,ad +34b4ef7,5d +34b4ef8,e1 +34b4ef9,e8 +34b4efa,ad +34b4efb,d +34b4efc,b0 +34b4efd,e8 +34b4efe,ad +34b4f01,e8 +34b4f02,ad +34b4f05,e8 +34b4f06,ad +34b4f09,e8 +34b4f1e,5f +34b4f1f,c0 +34b4f20,8 +34b4f21,e0 +34b4f22,5f +34b4f23,e6 +34b4f24,8 +34b4f25,e0 +34b4f26,5f +34b4f27,cb +34b4f28,8 +34b4f29,e0 +34b4f2a,5f +34b4f2b,7e +34b4f2c,48 +34b4f2d,e0 +34b4f2e,5f +34b4f2f,5c +34b4f30,a8 +34b4f31,e0 +34b4f32,5f +34b4f33,57 +34b4f34,e8 +34b4f35,e0 +34b4f36,5f +34b4f37,50 +34b4f38,dc +34b4f39,e0 +34b4f3a,5f +34b4f3b,50 +34b4f3c,9e +34b4f3d,e0 +34b4f3e,5f +34b4f3f,50 +34b4f40,2e +34b4f41,e0 +34b4f56,4 +34b4f57,ce +34b4f58,eb +34b4f59,20 +34b4f5a,c +34b4f5b,d5 +34b4f5c,6e +34b4f5d,a0 +34b4f5e,3e +34b4f5f,80 +34b4f60,a +34b4f61,e0 +34b4f62,7f +34b4f63,50 +34b4f64,8 +34b4f65,f2 +34b4f66,7f +34b4f67,40 +34b4f68,8 +34b4f69,f4 +34b4f6a,7f +34b4f6b,50 +34b4f6c,8 +34b4f6d,f2 +34b4f6e,3e +34b4f6f,80 +34b4f70,a +34b4f71,e0 +34b4f72,c +34b4f73,d5 +34b4f74,6e +34b4f75,b0 +34b4f76,4 +34b4f77,ce +34b4f78,eb +34b4f79,20 +34b4f8e,d +34b4f8f,ff +34b4f90,ed +34b4f91,60 +34b4f92,d +34b4f93,b0 +34b4f94,5c +34b4f95,e2 +34b4f96,d +34b4f97,b0 +34b4f98,6 +34b4f99,f6 +34b4f9a,d +34b4f9b,b0 +34b4f9c,6 +34b4f9d,f6 +34b4f9e,d +34b4f9f,b0 +34b4fa0,5c +34b4fa1,e2 +34b4fa2,d +34b4fa3,ff +34b4fa4,ed +34b4fa5,60 +34b4fa6,d +34b4fa7,b0 +34b4faa,d +34b4fab,b0 +34b4fae,d +34b4faf,b0 +34b4fc6,4 +34b4fc7,ce +34b4fc8,eb +34b4fc9,20 +34b4fca,c +34b4fcb,d5 +34b4fcc,6e +34b4fcd,a0 +34b4fce,3e +34b4fcf,80 +34b4fd0,a +34b4fd1,e0 +34b4fd2,7f +34b4fd3,50 +34b4fd4,8 +34b4fd5,f2 +34b4fd6,7f +34b4fd7,40 +34b4fd8,8 +34b4fd9,f4 +34b4fda,7f +34b4fdb,50 +34b4fdc,8 +34b4fdd,f1 +34b4fde,3e +34b4fdf,80 +34b4fe0,a +34b4fe1,d0 +34b4fe2,c +34b4fe3,d5 +34b4fe4,6e +34b4fe5,a0 +34b4fe6,4 +34b4fe7,ce +34b4fe8,fc +34b4fe9,20 +34b4fec,ae +34b4fed,50 +34b4ff0,c +34b4ff1,80 +34b4ffe,5f +34b4fff,fe +34b5000,eb +34b5001,20 +34b5002,5f +34b5003,71 +34b5004,7e +34b5005,b0 +34b5006,5f +34b5007,70 +34b5008,c +34b5009,d0 +34b500a,5f +34b500b,71 +34b500c,6e +34b500d,a0 +34b500e,5f +34b500f,ff +34b5010,ea +34b5012,5f +34b5013,72 +34b5014,ae +34b5015,40 +34b5016,5f +34b5017,70 +34b5018,d +34b5019,b0 +34b501a,5f +34b501b,70 +34b501c,8 +34b501d,e5 +34b501e,5f +34b501f,70 +34b5021,db +34b5036,6 +34b5037,ce +34b5038,eb +34b5039,30 +34b503a,d +34b503b,c4 +34b503c,5a +34b503d,90 +34b503e,4f +34b503f,60 +34b5042,e +34b5043,c6 +34b5046,5 +34b5047,ce +34b5048,eb +34b5049,40 +34b504c,6c +34b504d,c0 +34b5050,8 +34b5051,e0 +34b5052,c +34b5053,73 +34b5054,5c +34b5055,d0 +34b5056,8 +34b5057,de +34b5058,ec +34b5059,50 +34b506e,cf +34b506f,ff +34b5070,ff +34b5071,fb +34b5073,d +34b5074,b0 +34b5077,d +34b5078,b0 +34b507b,d +34b507c,b0 +34b507f,d +34b5080,b0 +34b5083,d +34b5084,b0 +34b5087,d +34b5088,b0 +34b508b,d +34b508c,b0 +34b508f,d +34b5090,b0 +34b50a6,4f +34b50a7,70 +34b50a8,9 +34b50a9,e0 +34b50aa,4f +34b50ab,70 +34b50ac,9 +34b50ad,e0 +34b50ae,4f +34b50af,70 +34b50b0,9 +34b50b1,e0 +34b50b2,4f +34b50b3,70 +34b50b4,9 +34b50b5,e0 +34b50b6,4f +34b50b7,70 +34b50b8,9 +34b50b9,e0 +34b50ba,3f +34b50bb,70 +34b50bc,9 +34b50bd,e0 +34b50be,2e +34b50bf,70 +34b50c0,a +34b50c1,d0 +34b50c2,d +34b50c3,c4 +34b50c4,5d +34b50c5,c0 +34b50c6,5 +34b50c7,ce +34b50c8,ec +34b50c9,40 +34b50de,ad +34b50e0,3 +34b50e1,e8 +34b50e2,6f +34b50e3,50 +34b50e4,8 +34b50e5,e3 +34b50e6,e +34b50e7,90 +34b50e8,b +34b50e9,c0 +34b50ea,b +34b50eb,c0 +34b50ec,d +34b50ed,90 +34b50ee,8 +34b50ef,e1 +34b50f0,5e +34b50f1,40 +34b50f2,2 +34b50f3,e7 +34b50f4,ad +34b50f7,cb +34b50f8,ca +34b50fb,9d +34b50fc,e6 +34b50ff,3e +34b5100,d0 +34b5116,e8 +34b5119,ad +34b511a,da +34b511d,cb +34b511e,cb +34b5121,da +34b5122,ac +34b5123,e +34b5124,c0 +34b5125,e8 +34b5126,8d +34b5127,6d +34b5128,e1 +34b5129,e5 +34b512a,6e +34b512b,9b +34b512c,d8 +34b512d,e0 +34b512e,1e +34b512f,c8 +34b5130,ac +34b5131,d0 +34b5132,d +34b5133,e3 +34b5134,7e +34b5135,c0 +34b5136,c +34b5137,d0 +34b5138,e +34b5139,a0 +34b514e,6e +34b514f,70 +34b5150,7 +34b5151,e7 +34b5152,a +34b5153,d2 +34b5154,1d +34b5155,b0 +34b5156,2 +34b5157,da +34b5158,ad +34b5159,20 +34b515b,7e +34b515c,e7 +34b515f,3e +34b5160,e2 +34b5163,bd +34b5164,da +34b5166,7 +34b5167,e6 +34b5168,7e +34b5169,60 +34b516a,3e +34b516b,a0 +34b516c,b +34b516d,d0 +34b516e,bd +34b516f,20 +34b5170,4 +34b5171,e9 +34b5186,ae +34b5187,20 +34b5188,5 +34b5189,e8 +34b518a,2d +34b518b,a0 +34b518c,c +34b518d,c0 +34b518e,7 +34b518f,e5 +34b5190,7e +34b5191,50 +34b5193,cc +34b5194,da +34b5197,4e +34b5198,d2 +34b519b,d +34b519c,b0 +34b519f,d +34b51a0,b0 +34b51a3,d +34b51a4,b0 +34b51a7,d +34b51a8,b0 +34b51be,e +34b51bf,ff +34b51c0,ff +34b51c1,f8 +34b51c4,b +34b51c5,d3 +34b51c8,7e +34b51c9,70 +34b51cb,3 +34b51cc,ea +34b51cf,b +34b51d0,d1 +34b51d3,8e +34b51d4,50 +34b51d6,4 +34b51d7,e9 +34b51da,c +34b51db,c0 +34b51de,1f +34b51df,ff +34b51e0,ff +34b51e1,fa +34b51ef,4f +34b51f0,fc +34b51f3,4f +34b51f4,50 +34b51f7,4f +34b51f8,50 +34b51fb,4f +34b51fc,50 +34b51ff,4f +34b5200,50 +34b5203,4f +34b5204,50 +34b5207,4f +34b5208,50 +34b520b,4f +34b520c,50 +34b520f,4f +34b5210,50 +34b5213,4f +34b5214,50 +34b5217,4f +34b5218,50 +34b521b,4f +34b521c,fc +34b522e,6e +34b522f,50 +34b5232,c +34b5233,b0 +34b5236,7 +34b5237,e3 +34b523b,da +34b523f,9e +34b5240,20 +34b5243,1e +34b5244,90 +34b5247,a +34b5248,d0 +34b524b,3 +34b524c,e8 +34b5250,bc +34b5254,4e +34b5255,60 +34b5258,b +34b5259,c0 +34b525f,df +34b5260,e0 +34b5263,8 +34b5264,e0 +34b5267,8 +34b5268,e0 +34b526b,8 +34b526c,e0 +34b526f,8 +34b5270,e0 +34b5273,8 +34b5274,e0 +34b5277,8 +34b5278,e0 +34b527b,8 +34b527c,e0 +34b527f,8 +34b5280,e0 +34b5283,8 +34b5284,e0 +34b5287,8 +34b5288,e0 +34b528b,df +34b528c,e0 +34b529f,5e +34b52a0,d2 +34b52a3,dc +34b52a4,db +34b52a6,a +34b52a7,d2 +34b52a8,5e +34b52a9,80 +34b52aa,7e +34b52ab,50 +34b52ac,7 +34b52ad,e5 +34b5302,ff +34b5303,ff +34b5304,ff +34b5305,fd +34b530a,2 +34b530b,ca +34b530f,2c +34b5310,90 +34b534e,5 +34b534f,ce +34b5350,eb +34b5351,10 +34b5352,b +34b5353,93 +34b5354,6d +34b5355,a0 +34b5358,b +34b5359,c0 +34b535a,8 +34b535b,de +34b535c,ff +34b535d,c0 +34b535e,3e +34b535f,93 +34b5360,b +34b5361,d0 +34b5362,4f +34b5363,82 +34b5364,7e +34b5365,d0 +34b5366,a +34b5367,ee +34b5368,db +34b5369,d0 +34b5376,d +34b5377,90 +34b537a,d +34b537b,90 +34b537e,d +34b537f,90 +34b5382,d +34b5383,90 +34b5386,d +34b5387,bd +34b5388,ec +34b5389,40 +34b538a,d +34b538b,e6 +34b538c,5d +34b538d,c0 +34b538e,d +34b538f,b0 +34b5390,8 +34b5391,e0 +34b5392,d +34b5393,a0 +34b5394,7 +34b5395,f2 +34b5396,d +34b5397,b0 +34b5398,8 +34b5399,e0 +34b539a,d +34b539b,e6 +34b539c,4d +34b539d,b0 +34b539e,d +34b539f,bd +34b53a0,ec +34b53a1,40 +34b53bf,8d +34b53c0,ed +34b53c1,70 +34b53c2,7 +34b53c3,e9 +34b53c4,36 +34b53c5,a0 +34b53c6,c +34b53c7,c0 +34b53ca,d +34b53cb,b0 +34b53ce,c +34b53cf,c0 +34b53d2,7 +34b53d3,e9 +34b53d4,36 +34b53d5,a0 +34b53d7,8d +34b53d8,ed +34b53d9,70 +34b53e8,b +34b53e9,c0 +34b53ec,b +34b53ed,c0 +34b53f0,b +34b53f1,c0 +34b53f4,b +34b53f5,c0 +34b53f6,5 +34b53f7,de +34b53f8,dc +34b53f9,c0 +34b53fa,d +34b53fb,c4 +34b53fc,8e +34b53fd,c0 +34b53fe,5f +34b53ff,60 +34b5400,c +34b5401,c0 +34b5402,7f +34b5403,30 +34b5404,b +34b5405,c0 +34b5406,5f +34b5407,60 +34b5408,c +34b5409,c0 +34b540a,d +34b540b,c4 +34b540c,8e +34b540d,c0 +34b540e,5 +34b540f,de +34b5410,dc +34b5411,c0 +34b542e,3 +34b542f,be +34b5430,ec +34b5431,30 +34b5432,c +34b5433,d5 +34b5434,4c +34b5435,c0 +34b5436,4f +34b5437,60 +34b5438,7 +34b5439,e0 +34b543a,6f +34b543b,ff +34b543c,ff +34b543d,f3 +34b543e,4f +34b543f,50 +34b5442,c +34b5443,c5 +34b5444,38 +34b5445,c0 +34b5446,3 +34b5447,be +34b5448,ec +34b5449,60 +34b5457,5 +34b5458,de +34b5459,d0 +34b545b,c +34b545c,b2 +34b545f,d +34b5460,90 +34b5463,e +34b5464,80 +34b5466,d +34b5467,ff +34b5468,ff +34b5469,d0 +34b546b,e +34b546c,80 +34b546f,e +34b5470,80 +34b5473,e +34b5474,80 +34b5477,e +34b5478,80 +34b547b,e +34b547c,80 +34b547f,e +34b5480,80 +34b549e,5 +34b549f,de +34b54a0,dc +34b54a1,c0 +34b54a2,d +34b54a3,c4 +34b54a4,8e +34b54a5,c0 +34b54a6,5f +34b54a7,60 +34b54a8,c +34b54a9,c0 +34b54aa,7f +34b54ab,30 +34b54ac,b +34b54ad,c0 +34b54ae,5f +34b54af,60 +34b54b0,c +34b54b1,c0 +34b54b2,d +34b54b3,c4 +34b54b4,8e +34b54b5,c0 +34b54b6,5 +34b54b7,de +34b54b8,dc +34b54b9,b0 +34b54bc,c +34b54bd,a0 +34b54be,9 +34b54bf,94 +34b54c0,7e +34b54c1,60 +34b54c2,4 +34b54c3,ce +34b54c4,e9 +34b54c6,d +34b54c7,a0 +34b54ca,d +34b54cb,a0 +34b54ce,d +34b54cf,a0 +34b54d2,d +34b54d3,a0 +34b54d6,d +34b54d7,bd +34b54d8,ed +34b54d9,40 +34b54da,d +34b54db,e6 +34b54dc,5d +34b54dd,a0 +34b54de,d +34b54df,b0 +34b54e0,b +34b54e1,c0 +34b54e2,d +34b54e3,a0 +34b54e4,b +34b54e5,c0 +34b54e6,d +34b54e7,a0 +34b54e8,b +34b54e9,c0 +34b54ea,d +34b54eb,a0 +34b54ec,b +34b54ed,c0 +34b54ee,d +34b54ef,a0 +34b54f0,b +34b54f1,c0 +34b54ff,b +34b5500,c0 +34b550e,9 +34b550f,ff +34b5510,c0 +34b5513,b +34b5514,c0 +34b5517,b +34b5518,c0 +34b551b,b +34b551c,c0 +34b551f,b +34b5520,c0 +34b5523,b +34b5524,c0 +34b5526,e +34b5527,ff +34b5528,ff +34b5529,e0 +34b5537,7 +34b5538,e0 +34b5546,7 +34b5547,ff +34b5548,e0 +34b554b,7 +34b554c,e0 +34b554f,7 +34b5550,e0 +34b5553,7 +34b5554,e0 +34b5557,7 +34b5558,e0 +34b555b,7 +34b555c,e0 +34b555f,7 +34b5560,e0 +34b5563,7 +34b5564,e0 +34b5567,1b +34b5568,d0 +34b556a,d +34b556b,fe +34b556c,70 +34b556e,b +34b556f,c0 +34b5572,b +34b5573,c0 +34b5576,b +34b5577,c0 +34b557a,b +34b557b,c0 +34b557e,b +34b557f,c0 +34b5580,3d +34b5581,c2 +34b5582,b +34b5583,c3 +34b5584,db +34b5586,b +34b5587,dd +34b5588,c0 +34b558a,b +34b558b,fc +34b558c,e5 +34b558e,b +34b558f,d0 +34b5590,cd +34b5591,10 +34b5592,b +34b5593,c0 +34b5594,3d +34b5595,b0 +34b5596,b +34b5597,c0 +34b5598,7 +34b5599,e8 +34b55a6,e +34b55a7,ff +34b55a8,40 +34b55ab,5f +34b55ac,40 +34b55af,5f +34b55b0,40 +34b55b3,5f +34b55b4,40 +34b55b7,5f +34b55b8,40 +34b55bb,5f +34b55bc,40 +34b55bf,5f +34b55c0,40 +34b55c3,5f +34b55c4,40 +34b55c7,4f +34b55c8,50 +34b55cb,e +34b55cc,a0 +34b55cf,8 +34b55d0,ef +34b55d1,b0 +34b55ee,8d +34b55ef,dd +34b55f0,ae +34b55f1,c0 +34b55f2,8e +34b55f3,4d +34b55f4,c5 +34b55f5,e4 +34b55f6,8d +34b55f7,c +34b55f8,b0 +34b55f9,e6 +34b55fa,8d +34b55fb,b +34b55fc,a0 +34b55fd,e7 +34b55fe,8d +34b55ff,b +34b5600,a0 +34b5601,e7 +34b5602,8d +34b5603,b +34b5604,a0 +34b5605,e7 +34b5606,8d +34b5607,b +34b5608,a0 +34b5609,e7 +34b5626,d +34b5627,bd +34b5628,ed +34b5629,40 +34b562a,d +34b562b,e6 +34b562c,5d +34b562d,a0 +34b562e,d +34b562f,b0 +34b5630,b +34b5631,c0 +34b5632,d +34b5633,a0 +34b5634,b +34b5635,c0 +34b5636,d +34b5637,a0 +34b5638,b +34b5639,c0 +34b563a,d +34b563b,a0 +34b563c,b +34b563d,c0 +34b563e,d +34b563f,a0 +34b5640,b +34b5641,c0 +34b565e,4 +34b565f,ce +34b5660,eb +34b5661,20 +34b5662,c +34b5663,d5 +34b5664,6d +34b5665,a0 +34b5666,1e +34b5667,70 +34b5668,a +34b5669,d0 +34b566a,5f +34b566b,60 +34b566c,8 +34b566d,e0 +34b566e,1e +34b566f,70 +34b5670,a +34b5671,d0 +34b5672,c +34b5673,d4 +34b5674,6d +34b5675,b0 +34b5676,4 +34b5677,ce +34b5678,eb +34b5679,20 +34b5696,d +34b5697,bd +34b5698,ec +34b5699,30 +34b569a,d +34b569b,e6 +34b569c,5d +34b569d,b0 +34b569e,d +34b569f,b0 +34b56a0,9 +34b56a1,e0 +34b56a2,d +34b56a3,a0 +34b56a4,7 +34b56a5,e0 +34b56a6,d +34b56a7,b0 +34b56a8,8 +34b56a9,e0 +34b56aa,d +34b56ab,e6 +34b56ac,5d +34b56ad,b0 +34b56ae,d +34b56af,be +34b56b0,ec +34b56b1,40 +34b56b2,d +34b56b3,90 +34b56b6,d +34b56b7,90 +34b56ba,d +34b56bb,90 +34b56ce,4 +34b56cf,ce +34b56d0,dc +34b56d1,c0 +34b56d2,c +34b56d3,c4 +34b56d4,7e +34b56d5,c0 +34b56d6,1e +34b56d7,70 +34b56d8,c +34b56d9,c0 +34b56da,5f +34b56db,60 +34b56dc,b +34b56dd,c0 +34b56de,2e +34b56df,70 +34b56e0,c +34b56e1,c0 +34b56e2,c +34b56e3,c4 +34b56e4,7e +34b56e5,c0 +34b56e6,5 +34b56e7,ce +34b56e8,db +34b56e9,c0 +34b56ec,a +34b56ed,c0 +34b56f0,a +34b56f1,c0 +34b56f4,a +34b56f5,c0 +34b5707,cc +34b5708,de +34b5709,f9 +34b570b,ce +34b570c,83 +34b570f,cb +34b5713,ca +34b5717,ca +34b571b,ca +34b571f,ca +34b573e,4 +34b573f,ce +34b5740,ea +34b5741,10 +34b5742,b +34b5743,d4 +34b5744,5b +34b5745,60 +34b5746,b +34b5747,d4 +34b574a,3 +34b574b,bd +34b574c,db +34b574d,20 +34b5750,4d +34b5751,a0 +34b5752,b +34b5753,94 +34b5754,5e +34b5755,a0 +34b5756,5 +34b5757,ce +34b5758,eb +34b5759,20 +34b576f,8e +34b5773,8e +34b5776,6f +34b5777,ff +34b5778,ff +34b5779,b0 +34b577b,8e +34b577f,8e +34b5783,8e +34b5787,8e +34b578b,6e +34b578c,70 +34b578f,b +34b5790,ef +34b5791,b0 +34b57ae,d +34b57af,a0 +34b57b0,b +34b57b1,c0 +34b57b2,d +34b57b3,a0 +34b57b4,b +34b57b5,c0 +34b57b6,d +34b57b7,a0 +34b57b8,b +34b57b9,c0 +34b57ba,d +34b57bb,a0 +34b57bc,b +34b57bd,c0 +34b57be,d +34b57bf,a0 +34b57c0,b +34b57c1,c0 +34b57c2,b +34b57c3,d4 +34b57c4,7e +34b57c5,c0 +34b57c6,5 +34b57c7,de +34b57c8,db +34b57c9,c0 +34b57e6,6e +34b57e7,30 +34b57e8,7 +34b57e9,e3 +34b57ea,d +34b57eb,90 +34b57ec,b +34b57ed,c0 +34b57ee,a +34b57ef,d0 +34b57f0,1e +34b57f1,80 +34b57f2,5 +34b57f3,e4 +34b57f4,8e +34b57f5,20 +34b57f7,da +34b57f8,cb +34b57fb,9d +34b57fc,e7 +34b57ff,3e +34b5800,e0 +34b581e,e8 +34b5821,ac +34b5822,ca +34b5825,ca +34b5826,ac +34b5827,d +34b5828,b0 +34b5829,e7 +34b582a,6e +34b582b,3d +34b582c,d5 +34b582d,e2 +34b582e,e +34b582f,ab +34b5830,ca +34b5831,d0 +34b5832,c +34b5833,e7 +34b5834,9e +34b5835,b0 +34b5836,a +34b5837,e1 +34b5838,5f +34b5839,80 +34b5856,3d +34b5857,a0 +34b5858,b +34b5859,c0 +34b585a,6 +34b585b,e6 +34b585c,9e +34b585d,40 +34b585f,9e +34b5860,e7 +34b5863,2e +34b5864,d0 +34b5867,cc +34b5868,da +34b586a,9 +34b586b,e4 +34b586c,6e +34b586d,70 +34b586e,6e +34b586f,70 +34b5870,9 +34b5871,e4 +34b588e,6e +34b588f,50 +34b5890,5 +34b5891,e5 +34b5892,d +34b5893,a0 +34b5894,b +34b5895,d0 +34b5896,9 +34b5897,e0 +34b5898,e +34b5899,90 +34b589a,3 +34b589b,e7 +34b589c,8e +34b589d,30 +34b589f,cc +34b58a0,cc +34b58a3,7e +34b58a4,e7 +34b58a7,d +34b58a8,e0 +34b58ab,d +34b58ac,a0 +34b58af,8e +34b58b0,50 +34b58b2,d +34b58b3,ea +34b58c6,b +34b58c7,ff +34b58c8,ff +34b58c9,c0 +34b58cc,5e +34b58cd,70 +34b58cf,3 +34b58d0,d9 +34b58d3,c +34b58d4,b0 +34b58d7,bd +34b58d8,20 +34b58da,9 +34b58db,e4 +34b58de,d +34b58df,ff +34b58e0,ff +34b58e1,c0 +34b58ef,6 +34b58f0,de +34b58f1,a0 +34b58f3,b +34b58f4,d3 +34b58f7,c +34b58f8,b0 +34b58fb,c +34b58fc,b0 +34b58ff,5e +34b5900,a0 +34b5902,b +34b5903,fd +34b5904,20 +34b5907,7e +34b5908,90 +34b590b,d +34b590c,b0 +34b590f,c +34b5910,b0 +34b5913,c +34b5914,b0 +34b5917,b +34b5918,d4 +34b591b,5 +34b591c,de +34b591d,a0 +34b5927,c +34b5928,a0 +34b592b,c +34b592c,a0 +34b592f,c +34b5930,a0 +34b5933,c +34b5934,a0 +34b5937,c +34b5938,a0 +34b593b,c +34b593c,a0 +34b593f,c +34b5940,a0 +34b5943,c +34b5944,a0 +34b5947,c +34b5948,a0 +34b594b,c +34b594c,a0 +34b594f,c +34b5950,a0 +34b5953,c +34b5954,a0 +34b5957,c +34b5958,a0 +34b595e,b +34b595f,ed +34b5960,30 +34b5963,4e +34b5964,90 +34b5967,d +34b5968,a0 +34b596b,c +34b596c,a0 +34b596f,b +34b5970,c4 +34b5973,5 +34b5974,ef +34b5975,a0 +34b5977,b +34b5978,d5 +34b597b,c +34b597c,b0 +34b597f,d +34b5980,a0 +34b5983,d +34b5984,a0 +34b5987,5e +34b5988,80 +34b598a,b +34b598b,ec +34b598c,20 +34b59ae,5d +34b59af,ed +34b59b0,83 +34b59b1,a7 +34b59b2,98 +34b59b3,38 +34b59b4,de +34b59b5,c3 diff --git a/data/symbols.json b/data/symbols.json new file mode 100644 index 000000000..82a46efd5 --- /dev/null +++ b/data/symbols.json @@ -0,0 +1,32 @@ +{ + "ADULT_INIT_ITEMS": "034835FC", + "ADULT_VALID_ITEMS": "03483608", + "EXTENDED_ITEM_DATA": "03482008", + "FAIRY_ITEMS": "03481C03", + "FAIRY_OCARINA_ITEM": "03481C02", + "FONT_TEXTURE": "034B4506", + "INITIAL_SAVE_DATA": "03481800", + "ITEM_OVERRIDES": "03481000", + "ITEM_TABLE": "03482050", + "LIGHT_ARROW_ITEM": "03481C01", + "PENDING_SPECIAL_ITEM": "03482018", + "PENDING_SPECIAL_ITEM_END": "0348201B", + "PLAYER_ID": "03481C00", + "PLAYER_OVERRIDE_DATA": "03482000", + "TIME_TRAVEL_SAVED_EQUIPS": "0348201C", + "cfg_dungeon_info_enable": "034B44C8", + "cfg_dungeon_info_mq_enable": "034B44DC", + "cfg_dungeon_info_mq_need_map": "034B44D8", + "cfg_dungeon_info_reward_need_compass": "034B44D4", + "cfg_dungeon_is_mq": "034B44F8", + "cfg_dungeon_rewards": "034B4408", + "dungeon_count": "034B44CC", + "dungeons": "034B442C", + "font_sprite": "034B43C8", + "heap_next": "034B44D0", + "medal_colors": "034B4418", + "medals_sprite": "034B43E8", + "quest_items_sprite": "034B43D8", + "setup_db": "034B44E8", + "stones_sprite": "034B43F8" +} \ No newline at end of file diff --git a/data/title.bin b/data/title.bin new file mode 100644 index 0000000000000000000000000000000000000000..4c566cef8c0dc6b3d2240f10ace2a8cf77d13bee GIT binary patch literal 102400 zcmeFa30zJ6+W(*CRLWS0=1D1JNMwixGa)i%o)amlP!UoojiOYN&|u1x5E7ZE%w$Z3 zM#)g^>;Jhn`#z56ocp=YIrsB>&i^@iy*~Had#`b?^gTG%Tn)iF_H_mJ1>z`$S z`C{fIA!$hFC-Hm!oagg$|Li^**K0g?e~STTN&;fe}702%;I9&0~qS^Kt@YgAfxTcy&v z=i>0NZDa6x4~RXGS!HG$^T0-?er4*9z885P=X@MfH6e@Br_W6^(C_8ZPNipPyEfgo zw^QpA*}kpC>b-mRPr>{?kOrg#HS*WU-XCS{Z!O3CaX*D)sVdYN8h&8^X_rn0q_CEHuX+v#iuIt`) zUed6k5l8wDT$QP*J}|LWOMM^An*{ZOIR0{t%yFBy^GEmDxLo785;4HsFh4(g-!Qyi zs^4isL>J5X8Qr@tINqb%f&(VTQ=>Z@TP?@Dk&p?*^#|vR?46DLH8Le)>W@xE-p4%@ z?&oPi99O4q3QSsSU@j>Aw+P&-#YwOtU95m2jU1{n2>6p(oG4}&`9rn$}{!1f! zf0VhOm*bk1y-xw+ev2tI^8Wp&%Q~CQ3fHxqxX*g-_CrQ}C#Q@UwKN3toFVo`_CD?n z@_M4@a6fOi@pU7Q{~ZHAdtXa%qzeszW)2;;c)ecV$veA^aNVzFYL%+f**-cg?Z`^Z zbAUMS(}1{6X76k4yEL-)-?8@Vd}fci5%rq+`C4~q+_sqX6$ag=Mt2>)EOpTA=>7T@ z4he2%GMuw&-^hvTsyRe3?XZ1zDbuwfkxJIlTB{z$uVXHBZ`z^g8O-K}X8*7e6rbJBrBU9#&y^H%T+&?jf zhLo0mSZrW2C&YA^ONxoz{QX)zMkjYRog0XG3m_Y)6U5Ku8v8Ac-2EfG{k*Km`~FM6 z#eQ^vuU_wIJH~iqqz{@NxX;jRR&;b^$_nr{4&vOf@mX&pcR#Zvdd*DzJ&BePO-20{ zerCaWTo-6$X=&Lq6Z7R^27_ko={#g%x~|2fgxNDg{V{I_Gyvk-m}_LNIU3_`BZoip z#!Ru8i=V}x{k$B%=K0JJ*RNd14uob79qR6HY`r*P;@Z>cR#SsgjJnO=Qc&>N1@lBT zhp5-rSaba6viCDfBHow>?xAozWv)cx_gr7_d}dCxJb%XHRXRdEerjB7>=6%RizU%r zMlRcDJY+$de&1=RIbyixm<(A!no#3&j{jWlICe67B8HeL=7{S6j-y|xBEh#~$R5ZA6;6KF#Q5HrQk#aPS@f8HKqE}2DMhvTR|)E}A_8hX^n)OJ~H z_wlRJdQR|7HSFuObyL7@e$Fu->Iw1o*)Q2+Me$seOEymb@3YC*ocqM=U+iVmK%=3d5Z4W6kRik@vY1gGJ22tx+p-mAeLN%kP7mETbJNBBrh^vk z9BUu20rO@d$H4bNBXj>b=YX#_Uw8IA_8|5y=8l%)u(FWw8^JKTMoce+8J zSy5-sTyVoY-fmZjy_4fL`!3%HjqLsBoC8tJ6|u)G7(teheZk#FbN$yQtQ>0Ry-`1!>B*U_Anp|7{(M3=7X&RSST=k@I$ddbdqTb@PV&1cNIuRmm{w;<_4?)}Jj z@5+N6C#(owvpP7^YT&e88tV2(O-$U+oA=t3r)eM)t**h)M?4h zPWsL#yLX$s4f|LIaURLFizx4F^uGW595Qb|i@i^j_i??Uv(|TeUmf+Slk~Nmy!EtZ zZtr0lklCl_wmdtVV>kO)#ND;*xBH%zb@Dy?@h2YIkIj5)W3%n~P}^OFUAioK+_l?^ z`z9uCcMbIx-!(B>`M|8Je_>yX@K?H8PA}Ef#@y@Je)Oq@^H)b>KOCE_A+9@kzg%}P ze~r1{|4jx(%<=X8S$xeo_VV@T98Bxpy=N9PoPr#>7?H$r<$Bf@q(Z_Pb z3zN=E^SX6$NP7Ri(hK`=fVii_^#}K{x&Gzj;p1%d!TJ@IT5Ugm|CfP-BkBeW4yf`*aqdV%Ro$dTX zIXQVDSf69?D2N%7`gh-l=vCLr3hcgAac0(aW<6D(ceB{ho0rm$L?X^Y@J$zGlmc6$u^*2^W}WJ}$0@ z`8e2*`QG90^XqqPeE;uvPWU>p*fW0iJoYw@ZOo1x+&OFb61n0zz^9!mzewvEU zhCv(y4Is|{m_3fmqBzYwa8H__&#FVrq$y+r&4*%Ri zeZfVUy2(=`zKkAssCML-r0O9fM_BQtFX4T9$1c}(FRp;cL- zvBw_b{RbdiOGOf2>5ABwJBLj_4X_HUa+rLw+;Qru_ajFhE3xXA_-6Q!jqf_6kKT@$g_eckqBYs1q|ZP|JDMBw)0sS!I*M&Ey0#5KjNAItN4?3uhB-X6zr zu3dQh%pkMT8RBg(gZIVyZ+(0gub)C?^leBD6`0geWme^rw^TZAa>}czGcP}LoR<06 z-ah-W?cnq$L+o}w8#W^Knbn}k2Lt+Vyky>IWBSOE{sH)V2Q#n@OGp#qeew6=?bcn@~|z;}Vf@Fks25utczTY{mMxe8k=Y|HuQ6qW0w9 z3*VJ{Wpn(g6C0urCq*Tn4ygM0*#+xyJ*{y5b0?2WoeUS<8arn1qh1yP zPx@QM-RWw!=9Iqv!tJ@a_m*Kj?hA4r$ot|L%-@s0b0d5IyXQc}9s2>tCB8Ns8~Hkk z>I=@FcudJ$%h*^nln4Irn2fREJEVp_SFN1l||DHazzv-rt8x zp$drEdv)nv)$Qrd8&7ARIF~wmMnwFWF>ANYnh_O0-6<$FARy(G{e%nG`&;dJXl@bu zz^r?~B@Ok-dnZj?GB49!yeV~0O3&WB zbWLRP67MZp@V#s9{@b5~#KxAy?mJoO7nb@dYERzhl0!}XQbwTrPmW?>-2{Xotoc{&)HapXL$U$OaZT6tyl6}*25F?Z!qQFSfd z_1=3K+Jc7 z*kAdc;`^(y4*uWa?^nO$T!{UE>w=$S?I678`e8|A!lCu>ytpOaVTZw99(?Z}^1aud z0f}X6LQ-nhhNXR7A9bK^d-~P-gLxn7(sGKvreqb?#2+dsV=vs2bnY(dlCxkiHD=Gb z@S;-TbBfv6_Bd!b#NIj`-nV*XIK`vp$iaKAJJ|b}J)S-~eWU8!#91qMK70Pg7w_jl zW1&%yBjj@7!lRI>({AqX-)~QTKg)yyv#xW~p+0S$wuqo=ZB-Iip;+KAm??xeF<=rv3q zqsQ_V`CbLs`{Wa{=j*zNjQWjR4+#Qej|n!%XVL!L=XAY@DEBc5PT#F-IC8nVKI44J z*WK_!0;z{ zK)vmVuybdxEyObH>ADc-7%~v&yp8<*&)k1Mb0>-O{3~~y2N^=<&`@Y9xN|*}mABE= zH+lzZ+e~nG5xS4K`x<%Q2gKZu-a)&*_=N7MTNjbu@SVM*6q=Y#VY_nZ=+#1c@`>mk zr~!w9+{X=q?Au@Ah2`J&oq1D>cw8C1_i{<-&a=IwEt_DN>8k-z^L<~WZ0%AF|Aiu{giPUendmn}3IeLRSa4hw?fj?Bft~J>E*zejw97j2q zB;iXEqS$?9S&d-Cm2@A_m-Xj(29kiohH2xu;;S7_aaly)7E_#X?wiSLA@aMJLYcj&a^B)zs-qJsAW^Z-6`;PeX(cAlT{lx z6h-ekR0j5Hmiuk};;~^z9oTE|3EeBO9^p@_?QO^>G>x_-ohD{4ChZc%9k@n`M{d!> zR|vd6{xOGj5W+FN#~WwQqvR8ERB+(JJH+HK4XI~}>Jl>_euWo)NjrJ#OX`U$Uyu)e zg9m;Cli$L3UHEk1)VfChb3t%|t>=AZCmEHJT8|UXG>wU0XoxiCkZFfw+#c zxqtt;?S%2J9Cy1xyiQAq>n=WDeEv9QH0qC^0}*pP6?q-U5vp3Z!FW0^L5c|3+#I+QQzdL`%bq4z+*Yxa*8W7J{fcShhdfy*s zPIP~YnB#j_6l2-zI1cf-RfF`Pu24USyI%qEyBKY=M{1l%spJRa`S6U zKfwR0*SH6N-m)z4Tln(L_0cOM1bf}W1nzd>G}SngrWkLf$(^>-u(lIuR`+RicEesu zP0pp%@H9HSEsgSHvgz%yn?#o$&~?23c=`rjKcvqEMRaNVBRU&$pAJU8p?y)Mw0cYw z1x}Bmf|UD$^Qn&nCu8#kdlD}S4uob2GBzI*Wcg$?obXBik`|a*d1&LIS8?H)*CTdc zJaQ`k>9#keRX+GW^PzFjAc*q`=8W$*&TW}L=8>oEA@)R$1AJdHdmJAcz3-oAk7KOt zk8{bfhtDy;qijR}B<)9>{R?+1H-A{{xw#tbefDzQ z@a` z7g`Ia@`w9wfHtDa4*a2Dbb3O5C=?Y%7!>}~G+cns>S)-OPoy^H!==&gh48{_c&>aR zA~|o@{!;~^_n(${SJ!-9fbTgGVt?-g@qNc$rwQ@B$mgaN#PM0g9^bc(-uI93$G*q+ zEXNH#k9;rlz0J9fDbyDl3OPaxbMkI@V@%X$m(^hj;O+qU%0Z014zGJ8^t+Y8A26-P zXP=$DL%%Iu9bO+X!>!?JXG=kOn_hxibt`JnvccAISv8O{b^^`@_Q;@MrCp~ZqA$cA znMF@rc|SaX2*Rj@C_Ir!h4vA-ogwnOMHKjqXj?h-hA6p+Xg_qRn&@H)(alnH_G*Y8 zV_Jsk&w3*KtfBPa*>90zt!p+-_xi9U>HJINg#}O^bQByW@5;OtasOGV-&{+vM-aoUl*vl>MGx|GdmU z@|ur@+2idfLL5u@yz;$15E>25sHm)VJ#hT|I*f;k1XH`6y+V$HuUy2|TZ>i(KUugk zxM-nAa2Z}#&tAIj^PFY=-{!imub=O}v0>rLKtXEn5rX^Lz3E-6?o_Q}PG8#gAwl~A z$fO1%vJF8tH4+>;pn{x&za%;vT|+R~A0BA42EGMvn-GmipNPLYbpTH^P7Ti{jhILGZHrk^Lxar-uTu6zCDc`F(w&2bm>9W+(YM{^Lt`{;3po>bDx zj4ImnqFPl8YG~gd-^A*>2kIb|)Q7zoA>4I=5B8i34|KsD;PE})3O(>A2A7{ET788m z0HAFtBHHnZXm33c@T6?$Jai4Z3*Cnbp%>7r@6)Hd&XBKI3&E@rQ*oSbb@(1%!jtnp z!TTz}U@6#pdE)%_2U~aVxrX;=@&0gF(z#^t7?FSb#acYuV^74*B8<(wFy-^62DO5e zA!d>9=f5Ssj;y8-^UC)=i@k+E9O7Jr_sz%g^L~HtH6If*&fkH#=I!^s zdH3=7{m0HNTN4-;xWqd&5ngu~+?|8h-I(FL<`J&fE5}(&-eFn^eS*GBn(JOC;%>@( z4}s<2X@ZumElF0c2Tg0!Q^?=*=B8BCvKzf?-Ge@=^ro+E`;tIy09Cf{M;jG1$-Nn* zq)i^pb;+ZJ0j+G+i9FkwkXPGoo{85 za}urV?L_{4XHv4Q3q9I=o#;5e4YPO-%7ZTam|jA&MYk_4Y|@G>t(^p8COZrGenEex z4)yRC#NJQvzbdf!J|HHu2z|q+p@}(np-W)#B&MlQOxlT?>s}R?J6C?Jb-BFdJ;c|Hd2Rkf9LL*09MhR)URM2w__b(Vp2y4lygswaJThCqawxja z>`%N5v&4Sg78318v@f3WXFQLOO$p*7zRvH zDvc9sL)r@M$xKz9x~r&@xrQED>UJgrMK#hDQy@JtMN$=OCsZfA?jWX0L%a2*{;HZZ zNZW{PbWCV~jv2)%=~L~*5afha$O-F+_B9ag!s~Q=yZz8%SmX3?S|O%P&6*eyAETOv zHQ9}sCs^VgC5X+q*|0tRW*x@4qDPqf8NT-s%vFRW=9EG&!RSNiT1dj_Q;5_1wx^$u zc=$&6H;mW^#zD5wK&T&N`HTAEeILji>JD{=^dL=$dF5+t1a*VhQ+ZilhqohIw>Mt% zJYK&G#LMeK%ne^dW|{qpS>tQV{=(w-{CO*gmotNVG4W@@G7c?btIPIdyx0f`xPD(BabfOApdk>m)dT7dF$Xr#7-%xY z%kny+b!YwfY#OGMAl}9ZXb{9qGtbNmbI86Wil59Ldkp(4bIxorE2AOa&UA>k&HI`O zO@-_s-Y#=L9C3CFypGwch3_>$f*-2KXXTi84a>M2BjIEr+s(HHvRdW&=s%FL2SIyY= zjU2*0)A*2T8XNS!ZbrzZS#pr;&b#$tftAhOdgHsR7Y6bwdPA@sFS(?vXUv zFM{k`!)cPw7IIu2M7B%TlB2g9P4Jwxxl`}4<;5lJnatfN3f(oGtmnGY;JJQeJtvSR zxNV_9v%+covM?I6cndjsgwPcH{oe`B8^~j$PyP1YE56=)wCG#uduE1NWL}IRzMjk* zdkeG2`6$O!V?4whMDtfoCWpmKY0zX}OasYbQ79CK_aV?myk2?N&T--CtSm>YGZ$TA534=Io(`VoEdv@q4eyc&ePAfe{C%u7Za71VqFTk1LMNkw<3 zn-!hMUnEn<95Nn%s@}-{)K`=7r)oRfpRUlhIaSeVM0T;J)v;28p&4)W?GoM?*aeSm zsqSVdCg}wJ*oQ`44~m>}-hP(r#SXnT-O=hBpVzi)#!byW$MQS$Jb6dQGW)i6-;*~r z%uhVg?tAo6$DRkP)Xh^1TN@`{SJH_(+tYgey^!eTpGr#E8|@%7NDJb8QWrR?+e}+W0@!{%ee!`d6CEc-jw;{Sk3o{8pIy%lyy2TXzzZ% zqlb=dc#v};^uvw2+dtnZh^t?*+EdU*)s_?#Erebt@;m0EeMj6?RtlKIYi7;?r*Z5S{I%XdT*hjTsNYrcTYW;LKjuOnl}&tx#R zigZW4^HtV)*xc#yPja*V2>dxUuF@V(OQGty<$&Zo+>zqv=c{exubc8`;! z+dfW|YWr}9lxjh&l*+AbQYu%rO0~&NH|>{|AlW)ST%zUnxGsJDi*Masi0v`coX6=v zsu0Iy4an^BuDzpIw$*c8AkjR+OQQJ!ABpA{)<`tJwOXS2{Z$gp?|Dl!zvd;OoYk|5 zOq};}H(#vd3AT=cv5KGl4>6ZLP=I-#Fz+R%oP+2=%+w$CKVFu3Z3l54GU@oK*o}z6 zhcYt#3yz=K^zOpt@Xuhd-gC_=fv(|HQfOxRU#|b$q$Ik+`@ZvMY+^&(lQxo@?^^0%;qX`6u+Y$?LNNDcwHUo!BSuA- z7J7-%C?mDsmP_h29n7r36%0V;6oL^_5wx#$7jOuUrojKuH+(+aU+8cHM-(i&P7(p>*tPcfMy5Al|-Pb(R|L65T-?7c(3>BGwwT|OZ1c#HhwNxFho ze#<5j`@!DkTeog4#`)%4Z{QD&ex7w^QKYItaEN%Tj9pUg^7l!%f082I?(Ht=cJFse zxBU<=rTQ*TO7(59Wb0Qk;5}Nh&4Vb(Hn+niTVLKR(K6dlTzQYPn8N0JS*O^y>>>6P zu20xsm_Ji!NdB(9i&nJN+p<_(`LHK=1AB#FuNW!;f6u|+^+8SK4)iuL#f?bZXW1^w z|1hn``v&$x)E-~K;Cp;_8J{895!O;-nEny5|4BeiA-+d&(P;eD8^`^2r~0I49A0

cgE1R_*K6#!Jl*Ny{u{C0!sezQA1QZ!5AS={TSESViHS*aad9zj z7-5akA5%W>tbUMVVb+;dVXFE&qvW;DA5=Dc0`Ged@B0Yvs{w!2Qze>xP!wzOcA~iA zi?tFhpGHcyc>?|(Zjo$#J4CWo?xH3N8FN+Cx7^CghG7eRkbQ-Hkon`fw?E|c`u5!o zZf$kbqq>b^{$7E-aoQr~>Sj;IkW; zhnrn^{2WXF2z$JYh(B4pZVeejqn^Jk@Y=P{CuQG(wbu?FTmSad+2Bu?Z$#Jc&kO~B zlQBkW_+MSeg)3Ikk+TW3YTb(8K5r>$BJ{pIwJsDQrAkx5UQbygYO7>Lin8V;BRv=# zkEEGP{AjsfIC=Q`(6l-0se?u!85pOKY4;-t`av44E>O`SU)$zOp9%kz!RAHaRDL(^quA z@C9j(eqE+w@&0wouGQ#y)*|lKfW7yKyN?iePXz@9MdMp6flxFF{YVp2W}`F2waB7p zsYfDS4|dNwpk%S8M!6LV%`teyv!iS$DR<^&Z{Wz^X@0UC-Q&rR|Wn)fxSvk3FVjI z?;`lyi5kQQ%ksT337m2N?>ge`L+CzU=i)Qm&wX$BA?| z)sJe$)CKiz`_+TJ&kgPRRRlHDEHX1OEd+m0NMqEC^0xg-z+M&Ds|9;CVDH^^MT2`f z;xb2;FBks*Yi8hE^o6vcHW1(c%wcb63SD`!9yRuX{Yv_`;eEyMzK`&}8svRtQzV+b z1b=tnp%)LjtvbI^qE&vlRGYh@lC7U@mTdJL{5|lMXmP=zNz*<4Q>Ocu6_-rMHU~n? zw?4$R$tY+Aov7J)VvOe{c;8Ei`TGq1K7zluDSj*<}8BJ!OdRk3lt`Dil#9?zFYVYQIXqfZ|YQ$`OXzGN8Nx0KmRkGN+B%_$wFFZ3B9L}Hxvy@t|;i=(GizE z0RQvH(c_?nJwNsgKKDvcTZrSZJw185ibk#9dt9a4HF#eUyswJAZ@ZLA>0}AThv1I` z!r_m_r5XFW4m`3$x?SE6?|T^}+3IDWWXpTt>9m!Y%#K|_n?0~B`<(@33gLzm#$^vm zuTDzrHYy*>z5;vIh`nFHUM=(<{N3x(MCQmSYa3h;a)Lw*YvDB?H|K2ZTO4!$8TOdP zCXf`=4AOusp}DCCgTi<1TXSlAqUV#)NY{!Jrvty{=7%+y^_oW7dJ{2D^gDk&&4EVG*yt&F5)U~ie1C%Hm; zox(|7YX`Qw8~h!h!#2+WPybtlx zWCC1!EImgK$F)t-Ncdi_Sweo8rIBE7guDuko#sqqr!J;()0WVLnXWWq!b14?09w-w zRv?2I4BnVwp^UIi!*LYd!iajvw8wHo$)fK>x_vK>E?$kKZ<4n4Rye}?+sSC$UFoXS}3H0{c8cM6$gV=iw z{1t(}8hGC~u*VEmfWIeJO=M3Y2IFK4gAuQ%3AKdyc;z4&h&lRa#r#P^ygg>x9CA96 zwJj)V@0w$K(tRJG4lYAK`pel1p$%3xGX+|@6X0|Ggq-#2J(NzL+e|S#H_|enK(ZM% z2fe{jG|^!J&2n<41s

RcBZKV>?Nn>>|fIj^J@{xP)F)0ZdFoxGu_LGyRT96R>1qpQS-i>B%yd2{H0;JEzmk>({+o{ zi3b&RPJ_Msfs(D>fWP96s7*FVw7k$wOe$&9awO^B>zyH(4u@vZ^_qYut1=IQy*ps9 z6siS(bztu+*sJ!CP<}B*T;T%v+i~~SE!^0`+*BV^_B`f}V<+?T&$7qs@%j=F*TC%m zX3)el=lA#{1|Lk`=W}=8e!q8zk8k*V@=Q?ujM<9?nmP{Ds*R11zZNZe()u75@`s!~ z*U;MV6#Q-|i`>?Q!t?xT@=PZh>*zqk$BdvMBkUksJY%z`g~;!w%vw!t+HQisY$i4J zC|Wvw9>z)ap#ul!;(10Ine{$TeXVZOprKD`#Q1V@aQa3wor(4=y!@R%^c+cjFvTkB z2HhMX2GrTFo%1?Eo| z=@5?r<8e6J!@%_ric~^FQMevu5b=N~~kVo0x%#a(cyX}vXX?q>) zy@dCbg1KqIgd2ZZHiGNjO z2>U72wfki1&~Xy!88}eqF1GN)h1iB4wN~9gD(wPka1RfR*JE2ZhNja>?+7w6J3&4B z2X%a~kPTPV=XifjtirSk0#TcKzrn#xaaTeG|dnHxaiuypS~QXlHZeZivT& zY==^B%R$0tdL7#Lp)QE66Q^tehHtFqk4xw{(?g zPOVj}$Z6Irir>A4GP8o{=Dj#U{`IK(i<8HEeJs|#x=_*R-F%tWFW`RF2i%d-*fPXzKbySHh{f)uvZI}u8>f^)1!&>0ra6oIV<~9JBa<7 zWzybbX!In&kp@EqiMFQw^-v zp%1xv&qX|Sq3m1FC?++BRtKynw^g3xIDG-?-C5LBeja*#ix9V$l2UVbYTjZc`Y)^D zqkf2Q0rc)LEd4WXt9nE1elRqZJXZxH4rf!(z8A@I&~35?gZblQsDAijs=>G!JY%34 z;>yC_%B$fENuW1WIG*qk`hNq(Dl$jo42+SRo4;Kn)lZwnagMj1YfYs|==PE1c;@K`h;V5HC1$A+$d2kpI_1!AolH ziM1<#tYBE=DXaPv{#QUbm+w*=%g0ZZO^d)@1=y=O+f=(6>=kFrY2MHQe}BjSIR5Yr zXaEhN%lF-Az|x&ZTbbm8J?=HL_m!d7T!_BkdGHs9<#5xI6NKcIT&pI#MIKVt&jNoB zz#rIa`N3bJ#Va=n?A}EB1p3gt?o5d5;EoX23tTt+S^RN4Zw~1}HqV~lSsJ_3dk6TtfL`EB#Ng`v znf~9l#;z9hMlRmGr4>m?{$-rN*oot5#ym%wy=V??jEtec$j#*90lr#K$M}Tl;BO9| z3(qITX3o@1c^Sr8OmaNsXc!(S#a!XXT&hmR)E*a>mewI?%} zN6YMv!~0fHt;Hnz(7GqBmR6Ec8F=#sIx)%-cd`-TnVFC|_Eglf^cmx`gXKGtp{yF|=#QXl1@V-BBSvuO z_{N5#hr_;pTDhktdyP-o)#f@ywpl-|DH^`cmDj0&@6~|4 z>Qi!>#V6!6{y2Y6Ub|7Bg**4)c?sg~E3j7%_R7#}E}S9J>>T)u#Yy7Wi!UIoW#-kz zrUjO3+Z+OWci?@+@V+weSG-oDMS;GU)QP!MrZTfZLR~1^@iFoa$6kKkR_Y|KSUX9& zImcb*uL10R1$&iH;YjhOXORQOpbw1b1D4LP|1bdn|Z7jLKDtj`A)}rT&9b z;DcF|k7r}wMl2GJA$*FltWM}@^H_ox!xvDE@d!d4N~e{L(Cd>WSIfWd_etS*oxS^B zr9qZgsZXz5(lFKjcpkO5AjmIOhuU57(C;U!@0-CCkW$Siy{a!rfU5TWl z*?|qm4u#cyI#m3rV9|~;i_SW)uB=`C;Hp^L>ocU9=XEnN$)$qF`P8!a-3QH#U&8mw zPdC-7f$vp=z2c*?>c5x&{p^23>G5lKvY5X!ML{zk-uDV|w;b%1MM$<5@wW{p$Q44u zD|~+JBsh3xt-xqZYNTwt>+rreV6S|gM2mOe?}=p-+1%mQHmO*4yHKfb(r(V%dI9V` zh04Z=%YR;=*j~sV*kk^_fxVCJ63VX;zw^Og68g|6?u38CrxT_eD>-KV8T_$_vX{by zgx<;?JM-Ytt)cM1EaZWYcJ5hSo|5MK1><5GGEZz2WSt434dX z5E?&u3`HkK&_J8z=o31UjO>&j400Tvi#WUxaoB}M_ZmlZ2Pte3^M|iegOs9P8M|f% zH6cz#`_KwcKU!&t)8^n#MLJf(F0%M~ovie4;@rh2z+!ZEGyF|K-;xB~h0mZJKt zVzkKeFY#BeQxbLSeunz?I72YsqCw~9Udd=C5thx zI_h-ldsr3N-m_CpH9wq`)2ulzr|}W&6=%wJys6zpIt}@s55CygA74-fQw0cL{_mn zr=ByDcFSvAj+Sck8thd>fImEEE1dq_|Cm3nNqIX%AxFx)xr$62l6N-Kz6|es1@_9p zUYVanicJlK zR|Ecv5x;N1KU0wd`e1!rG+~dDkDKoqT);mi21{Z)d=A<}J)tQFj%?kuEzv6zdEmW- z-K*ZC7Ws^EF%9X5*9lIX*-YmzMbhP)u@s*ah#Juz{8>Xis7G&%jSpB&QqtqlC!7Ee zoJ6v+Q-8$a*;t0-Fs%GMurI>l7h~5SfPV!Tti@OQhSZ_~400?Mwj<2w{mkX`!F)W% za2e4bFrz^vz&^H+!D#q_pSp53{9;1yh0~8?Fo@})`(vg#!24{BZkPS4R z9=%vWT^$n>m9#Iy`(FOwuLAtN9WSnMPh3pwd`WTfaVq+Bf?}WMZEUW6AN;*V-BAI5 zs~IiZqIPEsea`zh_I?95}yDpfo+q zl%+?<<>^tD5`735grjjI^wNam2zeY=zJfkI>pX%UVLTz8anV(bEwpJOPfLs>sU%p8 zK1O4#)_O4touY}}@ea~4*hhMJzGAAMLMD32=s9jh4HZcnJ2=rN@WDe&5$k}N~D~O9fF$Vf^XHnN2_rhZ>CB$zhP<8oJza2iin; zAH`Gi?k97bY8SxwO2A$<*sBJ6#rwbWC+a_oe1y+8#~r?wZ6IT41ZC!~q^^^b4=Nj6 zf%m-zdlg`>4A0oWpQ4DrC0KS8gd_&zXg*ZBQjckI8Ld0#g1zVPzH+cvg=cZ^W{E34 z1+zDBj2CK8-Ou|NeCZb0dj|GO7E3fM!@P1+F{#RoHl3@%UM=*6`GfbBfxpKCn#i6+ z4HAa^%!Vu>PLlr28ie`dc+U4ApMz0P3-5Ss-Ql?h3|<3+Z;=bufWi7b8EXamGdH3a z8%(Fph0*!^X!KO(p^lvj_H3b{Bq=$9B&9|R8I+cGKpdWkILx`=cLr6OJCH%!5v112 zkvgl5LQI}Trt0HJtGzRI)pR7?j>}0;!-KRtx`VytRNTv+E@KQAk0Zo$R3VGZA$q)o z=c^PY*MazVAlv2?^yNkZ!IYuSMl0Ba+shro>q|0ucrwtIt z!9~zYI(;del+6xbmDjy>L{|OnVX${VrbBfG_)C*fy9NJCNBs50vLgQ4;x%7KPJX$s z(FGbqdAGgEbYjZRrX8<>y*FU50^5AOqi zN)^i`l%9_eZ+Z?Mxg9l#Gxo*2>q3844Z{A(c_i1sXoLu#Q4axs%cFO!Oxzmpc@Yf0 zirwi|ja;xUIn`IN@1Q^JKN5hPd^2T(!D%zyF$R_W&lY3*>_}eHhGZm%gTFEGz_EzK z4v52?3;v}Zkr&p)^MtXunbH!}#LH0=uRveM6Ls@y^gVnjs*g9-4xdM;B`FW%2ze|a z`nkgKgv=s);sJRr>LMmB{B6?D^{$MpHQ3vZXDcx{wkXo<7)^Q|BS{y}TiU1wq4%?q zyqk@s5;+|q!yMcBcLFRS+a3DSeWOwIsP_!PUBlrGH`?|3iv4p><*BWN!Z~|u+jyKS z?!nE4WmfRR2j8mjODwf`JF#MEIS_R25}tYz6;;? zT97$3kq)2rrOpniiE*Sr`Eg{4sT=k?vbhcI=%4_MXA} zn7nx#{$7%2rY71N$opK17Aah3=Wjgq#=^(WGdN> zRHUp)L3$KC@OvEo3xgbsXT$sEV@xY*5@i?k23^q`bO(bgsh_47yw8s4#e9cjA5>V?^R}8 z4sWDG$Aiej+Y{qTCWEDsLjH6my3qm&8CoVGNzRf@$w5kutfY-dPsWOx%Z^1oGKJ*i zoTw@KGV%)O4Jx8P%?v6zBYw^XgKo69pPP`sEIAEYC8J8Mnn;iw#)2lvwiB`l7HBKR zl^VnQl*Bats@JF3Y%2H*Mw|_%j_uZywdy=tsbWJhDrU65b$g7JQKc>To$)3GJ9;6j zC1j1`J9{gO*=DcJY^q6znraFTHq~f2AgA#K_W}1*o{g7imOIAUHW}xCBZLDL{+;R7 zboXI2H8VYuC98fL+`Zi=)4mGqRbvcu3C8i=*7ys56R=J%h~tFpTJ*Lcz?T! zD!-HEV6PnPy~h~8H~9Q9eDTifTX$~fcNy|9L|*L;ysrZ6eFA$m(0lNA->ixBQPd!T zIKF8R`!pAb3Xml9ulgUa&)eY|nDdYx(B#}pnE{d8Jq|+!;P5>-{2UYSRSyOQiF~Jq!hV9E2N~!Q%Z)GN-NWF8H_EFwInq; zds1lXBxF!gaW0L)Z%d4oCX%iSQYr_GC+#tkj>)Q19BSKf(k*C$baUDc7TFJTAd4n) z)KyFhu~+>!{-h+$kz1}J2h~ZmS)~ibwb7vzFqhh@Jsre!f2($s(7X)|RUSoa+wR9X+KO5sfR=}? z-{rYBluqaEBE`<9&dX`u`{8-jyQSNG1bZdBq}z)4TZi==A?|Z^hS*C6Qb77dn(4nR zXq;0Z<=)s$dc)7|kX3sK_DaEC6~?xdV{Ad;7%eXU7N0-Gy7!=hvjfIGIo!H)5!kB) zceO0AR}MX$C@z0mTSYYzIp91j+aJ<|lpv0q;?Tbmf0;iCNc0?-^Wbs07c+grx2;Hn zZbocdQ4+D;;}bZn2ZMsxq}7y=g7NNY{umPyK%I=IB8M9d{sw_R8#0wJqUjQf@Ig6v zpd2lelpzmhP+Eq(rDbW2j2yYiwxES_YSh1}C0WW_k-I`ikf1l}cs-o6Yu=gJ9 zRm1zrF}8sDk~RSN#9!QK}Z*sFqGf<7}U4uy@*?(|MJ}fxgVn-X-(}V`;oqsIdzxnMgtLtt)U4r znzTr!4K0^#Nh{@A&^kFq8Y|z8X6r8$df$bP-3d7qp?5*Yde~BF_BqN&zYf=5=!xb{ zWJw)0FXws#(Dxe-uNosROHr+~Xk#lQa%t6v=C|xmwk^kzZHuwguf;U#(gJ;==5Evi z&!H8YxsY$uLG%>-A*K?ZkqL#q9kG^3wj|pwhO{lwTfjMo%V6^_u1%U%?U8B!cC>`z z1Mqi=E*E4|-#M9he+c{?0e@%kJmva98MQ)q-UoPI4aSdtOpt0@f^k$L{`_%n`I#+q z(;pg1cV5oNUyb!2F0T@2ZEbyk_Gh0VZQGl%vh81hy)yXTM~o@0VE!h3=WiRuSzRtlt*DSP~lT9vc$nc0MH1?FCeY*Wb2mT_K3rwvwWEc+={&OGyR4%aoAp z5B6B#?}rBp`!SN-j~OQH$w*0!LOqP})96jh%8Wz2o=8fvzOqt;M6WjAW6v<&PmAq9m+dzbh?uz z+wlcFuZ({)gt5yXF@~xHWB6{XH<4ujTaR-)9U2N@;0=1Znb$qvj`fWmATE~<|2s+N zuU#Zf>w?|#>aW=Mz}`oUE2w}9hoKh&mY6>T3E?;{-i{+(eYA?kuiw2{QT+8;lQW(!>Jl3-0v~-G8TWmkaX-)NUaxcB=r0P|P=Yo*v{*saBE~XgrCB-nwiLoQU|!n3 z!g!CZ8|q0f^iPt}rx;VLo`mCD8Ue-HOHffK>0GqCxZ8FXCtDwBZWAbtt$oqn90Z@N z0g`CmUXH__(xzg(PERGln6ZSJ6qObg%gfA#aRsv$#ytnQ69@P_h)^tVqR#{U1)Y{| zLyn)S((Y&<6YE2;e?J$T{N?adt2$@CDO~Y7w3o?uHlV#6_)y(}AB$%Hrr^GY1KO_M zV4y@Sp1P-T&o$0Q=HEbndu8vTLsG@%?2^J|Z$NvQ(4DG3_!V64_N)F_53(=HIyhLq zJD&Wo*Z7Ul-cgVa{pCV?`50%`xuTt1wNMe=vEF0oU%+`@`d6vigZ{2Uduix%0NX3D zd$$4Ge7So4J%RonK!4|(8kucJ9XuDua;L9ok$%yYOst z^J1r@WzeY|#p|8&LVFPUJDUI9565yX?ays6D|Z9B%Y@D2J3~3p-W~W69IpiX2mh<7 zxUc;I`@lhxl@ljn3l@G^qy1*+Zx`y{19JA_5vkPv+!~8YH&Ewh!lxw%WEtphDbkJr ze!v?<$>yI@ANrpS@8b@h@FXx5FiZwl5Fbd+2FwajUjbA^2An zJ`8?r25K1vq=hw6BD9evpZ+&bdMDf=SbdJ)bgb_~WUwV>71BiM>2|Li8z& zR~*e)zVWEE3_OW?_H=I(>r>F*@%)qLPGnow{$*?73h-GjlL_5DhW}I!w3iMas^b+E z)6J-VQ*mE8U&3*W0kZSt#B85QtI*Hg*3QU$KkVNjIRihgitT<`V_xwFY@ez>XfF%% zx>x*+tu+6?c%)}Ll6{$>vUcD6>%9}VL3`(*z5CE!9w@+Aiw-`_GP{L`Zk4^ub7+sg z_36;unbM_8?}gsCfORXpx{dL#tuO;;Nb{l96 z8`#LCj`T6HlV&D$rJSjgSQP4txe*U30$Q3imedlJQST0wy){}3?1pqhdj)MA@i4VQ zeOp#g#)9^|pnRkX^vC`#bw^nD4za8()2;0!*1EdXweBM}98bi!ww+bD)UoO%y)2tc zEc&*!E&aqs)n1607YUYN%#j>}{@BhWY;&@{$6STA(Bbuz zS;J3%w|mP^xGz7-;3+?+*X?#3_3W7r#ujIwzmw0u`{87!W$p9O-%aR_KFg1xyBzpW zrNfVa`r88gHxudEcB2g(DKj_CKHom_Q}i?T;Q9`u{Et4~wf}^!Lfi9;%*xz^-OGgb za^TaV>d*J3{y6qM21I~Jb$R$lD|R{t?Sb|#L3a8=n%L37!p47*J3H@99v3Mn)}Ovw=p& ztcTeSd|3~hK!Y5UF~QuNscBcWKT_G$Q6fxjWd!Qs6OP>_yL*JdUdSALE1@CAl;QIu zAJlV_jV0>{%2*a)Uu9^o82p;)U+RK5)Lz{pZKSG|uMEXEET>r(l_bkj(#NV9z9;A{ zR+wM0u!OC{ICn`<0$7>{tNu8ag##t1a7Q@|{jq*$dsBn9Ho(|M=UA`Si}=I=xzOO< ziK#==CQciA=*+oeyK!H3N;BX6M=Q2Ij_2iUdt-~U(BG*SC(oU_Z&B;~7PIm<7ejyW zoq7!2<-ms^9X>24iYmsRqs-ZU8U@&Xn;`yEm+h+8^&9jveukgk3Fz-c&dwiCy(sT^ zVS!ocTkz$h?s7mD{R-TSEq;KWR;y`WzSA*GuHK(26Sr-6uVS-<(BDmHF9+ItLE8u4 zKB-}5uG`-}gnsq8Xz!)ty^a&eW9x?>en{=H9uLzKo4x0!Imaus{yfpF#Bu2EHpqtV z9)o+}EZTq^hn|7>!Jsv$2&}KGeIc-)Ud9kjwCM*VVSQeLikdbk5l1 z!M7(&jX9G%edv$4A3Nad^qn;G`Ek8vl@q9EfAKW7I*0!6>8IcAJC$Kk^TLOP%G`v_ z%YybELwh;!8@&TRf>Y4nm(brLo_fKb@ zm2I82vPgO8Pt{!xw3mf>-D^JhE&;T&4(X?X(I81SpI)4vu<>hX?=-Z>ciH$I1J$1% z_Da{PXqkea+=kGnkNz#!;M05nd8~my%s8ZH{q3fw?~^kZ#vLiwa?LdJvIn5OYv7?? zf0;2Dhwf%%z7uuuB8)>1K$;GKc8d0jc8m2V`?7x(+Q2v4fL=TId^H|=TR(cjz{3ei z18#xG;6)dAe|!_G8^$?08`!`%>tTI=Shazjq&nv2y5qY7{Y{F#BlPs(-e(i*Llzvjw zB2c_7>dQooJwYoPt4&HF|u$=*@Jo)<8*2r&vvIC zosY3~L7Td@o{gR`=utw_z#C&G4mz=P<*dE9Ki|sg&%c+ZefVz18Pv0B9>$jEp}(`w zPo6t-+oA@(Q&r~HOP|q_xzJq>dYp|*YYsV@&djs9Ct1lW#1-$WzDuvp}kD@bvqap*@?E_dq_J3aQudSP2vt>jyH5$ zJm0e7E@V;;<_IIst9 zH*Z}V4(%-)HGaU}_{9E~j1%(9{lq%B|{v=(Yzvg-kQh$avQ0ouFPg<`* zQ~1f);~QAxs=31U#mH*gs)F*8Fk>6l_FasdB`10fQ0*bgS1Lez4vMil##~XUAQnn( z)a}j18{g8JU~Y-=>tbSW?gl#-1m7z^aW!|4;^r7*G>5H&&y7Wq04WBWX9L~Q7pIU} zAGANcB?j*#?S%eVzY~lTgE9hptLp>(H7Hm1>F|WetPx|Pu7Ts5wthtYeJ>ru_UY|M&=bEC%mO zSn9^_Yj@lO?VUzH;}Z0D3Hm$#V%JZ<R&(u&K5U`uhdiyRX+@HuQIUh>6XSvWm%ie3v5;alJre!2YTw_`7XD z>X!PYEwu$zL0b?$Z*j_OXzuIy@iAxPCycrmn-GyVVoYRy)f(=)lBGMLT-gU^J5Z~K zStn~_f|>?d4{L3~E^?wvf4KqM2m2r>FSU+c)B&HL2u%>wU8+qCfhO61V_&1FQXM`B z_EJ`8YAf7$0D7%$P#c^O;f*DYKA>4A6$#?rMT(zivc|GRaa7~Y(yC=|HF8a3gow|tj>jCI*EAHpV zl6G^W^c?f;hb8MBK_7$fieGm$DsmP2yZCU!*0hJE9InnaE0qE5J%aXfp}ic;YuxQ@ zY->WLzb#j-P7#R@hWQpQEIVLLKX3T~Z!TTq-L|)DpDU@!hr( zVvl}Eb-n&IC@HWlcuaA9Am2HjOGGf+A^#7bG~ zAdL5Ti7m8e3*SV)LXNT*_K$Tu`#uI>&cG_aQPs*%6Q{&JL?7hVG|K_Lf zA9Wsb5ZXHr?eSglbm;FU^mjFD{pVLQOE$Z?qDZ-W&>nn9?ed_#T#)H)Y71e*SWZY^3pZGY(|TcN$v(B56>E*Ct3_A)^l^tTiK&`XeJC~yPyKq>G~ z^@G_4WF5?Uo%MT{>o=|rgWi_L#D(o1G9vU+bZltW;MmZoq5b<6lq~J0D_RWmAWAd6 z25AGeF+oQuTC}4iPmh!65yPcIWnU?8g=Pcl-P0|*3(7`NPSO&6js+ch$sQM9)gIC& z!q*aGedcKM6;kbA6{Vay=Imx#T3Qrt0iD6GRfWEV8uYh*i4E%F+O?x)O!8PsnwlU@ z8wN=U*uDzTUlr3{@Wp8%yP-eU@r3;!f;tubMyrBe&77Wnz2ftn4exz;_rNE6ugL{T zld&t)Zr1E@6@7|y*lfO&@c>%ATefuRTe;uuy>+EZi#uyE_J`|w44y)FdFb0>{fcKr#Em;CJI)=EA&ZVb>NHr>-aWMQ?zb^2k^%kQ%v}HZ&3h%Arq9NEm(U)4Na;sK zvb~Hg@0PZ-x+(`w@Od~lzlqaDXzvDecbEEu_V_+W7BrTH{zcZ;&VJbo%Qd9!qfg&0 z_|j8J7gRTr=hZV$q;cI}_>L#f7JOf6F8mHwc+Jn#ry?_+Fv5XV@bm41gB z*7B%^WppN0-B3TQNB?R&kZnM%4yJ9TT@HDF#k|zPu_0Rr4GTUA?hG0pk~?^K$cwrS zJYWO6!nU=8?i|3c^>Bqso$-ByVKRE+P#FWl2Sv+@j**g$eh11$P(IS%*jB=8HRdpHSmyl7{@x37dcx7!tCEtYKeDfOiv`U!*Ki`5&xqrD1Om!5csqdxlJW`+9z zy!Qlb%zdRy=}3u*OOPpZ5@ptV6J>nz7->;0P^!T8RW|jMucMa8&#kATYvgl?zW7__tu<#kh?V_{oV(sZ|1H#f8*N{_0plc`>0>(7oXL^$ozii zR&6tIk1`(L$+)+qP$}BG$GE;H&>bkAgEroSezjZOdYriVa(eXpX}2ThT>7k9n;Yog z-i7w~u4E?kcMtkYf3a;}dQQ^p3}`PC+RK6NatX$kvptP1A8ensDE-))_55blRcP-T zbaxY^Lwk2T8#U$k0W)A{Gp@{Eb??@v+u7%!_V_Nx4a{>Kt6aMDX7zoQm*XyIgsc8` zTK^;ZS;qYZzYH3)ZAQhqXJPj;pt)?2Oa0+}k=yWRIMrJ*|0c3@<%Q57ZD4o6c3^qH zu@kKx{;L{fI;{?7+p-bp`PH_~3DDi@0Yig-91zp*O8=OC55Y4pKmURfuz|M4`2BF& zz?T}d!MA$j#toLZ#Aq2ceuyNd43`;6820iRA_tpxLVvfo+UI2*`yhF#EU~Mu+C$nz z_<6wgnW+9P#g%HXk1xMpYG%?#8l&G(%dD+f7Vasn%$i6~GrZ@9_MjQ+Rx|iFSi`5G zT8VJ!A2R~SjF<6K;w5R?D48^4w2U4fCynj>W!=b6M7E{NjxG^uTa*1CJp~B!QU5=K zje7zf!Oq=>-l#eH!jp77BN^ZxZ1-LG(cPIoe$s7d@Am2@&Uc`@djNhbs?Q4j1|ERB zsB3S5Yp8FpqQ1Qb-Q5Bi&>r8@z1!NT$eq9rop0e@-})?gz-?$R1G>8p9zc8dF}`v) zwRqL^X%+1G-sELyFAci80M4VmcLDv1G-!|h%$K*%Sa2=-PR7lNM$Nti1s4ei;$_R+t}M5zZqzpARP3t_&_3|N|Z;5(}Lt|fG6PXB&0zH9Q5 zT6XvwgKp6>dFB|r3!0$nFEJ%f;KMBm6Jq7+y8URqUzd+-I;!nV_I;o;_JIn(3-Az|8eQcU!Xe`=uryg;S((eSKTXm15{_YF7*-JJnx(A*_(5uAh8kAj`x<9>?8 zj47SE4}u0cj?)m71y-OCpoadA4P+k7i*~gc@ZR&o&T$cg0@sEQ>U$u3VBf3Y5qRd( z*}DK^(K;Kn^(s~Ah_+sY3>g`T?;-S;5n~3bI`sEIa~HPnv&u~bWg#dRb-ZtnXSkrO zUfDzX7nIW5KI%`yM18N*13IH0mj>RmgAUbo_;;1F^u>3F2FbX|aWV|wVrbC--#hZ_ z2i*-v8z5G$;eUl?>t#vl=qLD=#VcULba=P>1;_&r0qPl>G`w$n0{o2k9{2IxGmQ1^ z0y`O^eY&d$!q7&|cfv1fCw${~!atPkg8kkdU~Hx0j}U$ z6F+t=#)0PJIP1U{@ZI8Zd0xBlP4Zp6kWWuzi?6Z#DZ=GAMoLG;Y@l1|3UAiI|AhY7 zj?~5iXsn=p7@X#aq(L!$goOs##fZ2%Yzn8zHzv^*#6nz_t;XMl-d80d?9SckJ8{7>0G_FZT{sbjV&H5=Gx z%NL)HgZ9=0NBaE;E`u!a6x;HlMP0<8AbejcSo#kMkwL@4Q1;=nAQ+|{wr?K((+zcx z3cpwId5f;9E!6BGZJ%o;%kos%WSYYE=vKtD#2fx{vs zAS6&1I-qYs=zxG{AyEO@xQ1K7k^U!xqx^R){ouV1aosb)Sb&Br-Z7)U-plWv4fvNs z`X`Vm5D9Pt)$wBb&9Ki&-@l%Kc87JJyMCQxDzs@~fa$b+w7i%P_j>~jM5unAtr4;x z>;ifKKM(@6^lx4(&x!f4?xub_f~KG<;Jn2@F%CohvFmhJ;IIz+l+EFhN^K(B@H@Y~SLQ7HJbvZ=s!M zEFX9(@>7%|Klgtbo*$-&ZW@?@Q=0uNc~cab*}1G#H}{h2c(1O8WgjVQ+!)$w@S6U1 zj9Dv>m+h5Lns!zD+clu^x^-&e841IA2I=}m_`L{<@XJM*0nR~x-wz!*a3!vD0W)n63(-FP0TB1IFO5w*64Zuf}eeM#07@=EbANUv$Jn#pYz}z)}MeE(4h{tMAcw8Y~h;l2-v=8nQc`;(9Tvh7+Sp2 z>srKiYOktAQQ6>YD*M6}*%$FrfA{d8GtVa}@^qpi`S`AeZtBbMeGhA~E7TeOT<$6+ z@N-~&T?k{3wx+I95_WOJ;P>(0z{lmonr+m+_Bb4;5NuzEj%_7;V6ZMYG9W)N%r_5Y z;@mGG{1JTg!Rn>SxXw_}8SoynjH`pHfcN@;MP(d|R00)21;BDB132be0uQ*RL7O&joD>k!XT5*0_fG-A-dC`k1)f5S`LH7>TYniI6{Ko!n|&KWzfLfwr9vHQ zTBJ>c?~xRT{>+SOOVJ{AWRpKM2>l%y1l=Vok_YWQnV?86cm^$=iZPWEmM!4R<%YSm zZs-rYOA%o{}3x=DlU+{ZXf^IPZ2 zeOf+-c`#3=*N*pF>9y@zK1|1Rpq-*tX!{H`^mmsv8_09xGgc3D$;^5%Xkbj_T>pOF zU-$)ioxu11Zut#W;crH8|R~;%hn_fp;zVUqb^M_m=5> zQe})+s(d{%K`x~Zm&c1^<=L_k@_fYzdA4STJX;G^jgW5=6J`4PK28(N-BEwRQGo?P;Q`P4hWbAC4-UBF*U$Sj zu4DV4p;3!3U%3>E>+=A#^|U3_9m|RJ3h(j%3usd`SjL91ybaeG@4ubnZ{_tz(i-M% zn9n~|=f0^|%?9%RQ~R_Btdn{lIeKW+fFThpd;)v#ii!!l&^IjbKD3wzE#{By=dWYE z`?Wp(yIik7>TpJ}Dyl7fX%Ar&8+4K_eJ9Gj`3L3Byr1OG!b6g??uO*7zb$u`o|2qR z8FJ@?({g9kY03E#%WJW`4$I$Sc>}`l5q^qrcZTHb0eds#@|?}`L5-HL`Zny}5NfY! z(}udBaQ_zpA-=i6{X_1>#P`488|1YItor1$4dZZKet>Nx*0r?xe71R?wfoEa@s79O zgEzJFPpxYjq#dvWH2~Y8q3^F)Jk6(Xuh04f^g0S|p>E589$#GY>#w8jSx0`+OY5Pst<#>T7UY@@Z~rU$9i5u9|!19hi~HN`v?2v`38AEzWBOB|LWN>w1I4o z+k-A3=0WCzC85!icY68vO!M;d%zWTG@Yyw2U-kVf%oPddj8qL8>d??8YWC1jhkr$n zw2{Ao4*i?_h7IfH`SkV5!ZUIm&&pBo1z2$L^2K4e4o|>wEVeIf0sC@nR~h|Z)*i3j z@Q3^H|2zF1I4Mgey!T+2e@N)X-hQ50eQZlTvs8=^hiB@PPe@maVe{2h}A8c6vCQM!~t7om1 zA7_8?!_|=fA&)wB>-elrz1js0n>5fhYT7^?S~ivDt(r-THV)F#(LpL##k_<~J@`sh zgI-F3N(NySELX(bS~YwN&>qXx0sRl^!q1?-RIE%Nn;Pmmw;35#26gmdHN5XuAK&1x z7aSYky>F?j->6=Gy@qx2aQv*^zMeOF`Fb4h<>RppEdA-{1EZfkd*=7#$rGpS?Ce^1 z?%XML`t)h5jT<+b0Z3NCRNe1_sT9SK{}$hHzhSyJmwD{p;?20)`X7yNcn*K)`NFxp z_A6epW<$reqh^Fges_GrJGaOq;e! zHqTg@dHnR9N9jMDO?w<175oC_tJ6T8tb^Ur;rsYHwDolu@4$D#J=Awc%<-O@0>3^( ztl_&AJ|GDHpA{e_OLfBg9&Pc>0$1tf8zcdtc-IL2t}nm$!Eb)>eNQJbGIqp!zg?uJ zy{GgI^%L|l3VZ^+U!a|r2RoOAe#Z?D@9rl&yxhO_=W@KdayL$Di%gK`` z8^9;H;_~Io?FJ1RWQG5?ErQ#K&&Dh0vit|!Zb)IQ6T@x4wXDT`TgYP)a|0}}tYNra zi>rl(`?$y}BdbCLV@?duLZ*CI7FwRUJ| zXvK~lJC?S$w=Z54KiozeJ=O>f(YD)Sy9VQH%WvDS?PI*RQ4HJd^b|)(O6VzRu&nK4 z$oPiqhH13447Ir0Ir3U80rg2u@)@HRe^ZBT+b7K!lk`}o&(_JZ4@6deh!^k{<0aAw z5AYuu7i3WEZv40C2l&5khmFX`8QS3p!}ahgHK6sUyrBI;dAIP-#egZ0noYk^uRZo`Tq^AKqLHToTp$c z4m$D@zaVeeF>lyBAL$ECV!T-ThWOI9Azm-Bv4P#gdnYAJb(C%%p7?*mp3u8T0gm~i zd#`SJ-8|hM;lBrOb?WAN+SRSYE|<>EAI+UVHx;&S2;RT$Gj-}zm$0xfhYlS&)T>^- zdJXuQR4r1ZNG06E3ZOhF2g-sndbrGO+(#JC5N*2_8t&tA#kauYRR&e`R7F@#Pj!SE z+BWWg8`}Qrrly5k)~V|@#l*C53w>PX&tvnvN(1VWdZZRL9nvPM8l)YxD^a6i_nu2X zOiX?(iu$xmsM^N5g)+Y=8g5`qRc; zI3B_IKK2oNpSdKXVf$9iUaQ-;^0OV6pt($t2VQ`D@O?eXfdysPmkvSwy}q3jTY1@JItt$bCNyR&UOIPPoHw$&%o zXQa+swrp8KN=iytR8&;YE?v5~)~#FD3A$@(VPVm%P@zIia1R@T2B03O3+xT3qu<7T z_4P2W2DfqFZ|!H^Z_)_c8Ur4?DQE^9KyyI-XmFj|x&KYLT}#tEENa1p1&e=@u!t|E zQe~$(#>Ry@VLy+{>!}H<0BVu8l{&Npw1uX2#j7`V?vONN+{9d&gF5!ZkMPGyD<0vS z@U>KZg@oh(o|7^pZuD6RkKP6CtrZWfGHey+?1?^DSCC9BA6S@z%ugiA$4`l2V|% z;oZA;4{h4CsZYg<6+LZiY}^YMF5K1B)U*rkzbohnIsj+T7C3@7`p`+gtsO${C+!W; zwrSg$4{_1Myx#`((HXdbuAm!m2l%w6(nB9|o!hzpO}PD4nij1CkH(DLC__hnAwK?V zq-E=&m#nPHjzJt=PfI|}*9MgV?IG)b%UX4MghUQJaANMl0$I66r|4#ZxAC{pB2PG`}Gx6}Aj`B!Czptnu50V6Z{1f`4_GtSI=iORh-4}h1 z#FQ2C(X2JP1IKPWxC*Uhfv4b=_Rigx`=h2Gz8W2ua&qL@lmo-#hVFyj_QOt{fR-+I z^XzgLI?CzNz0&ac3)-}6^`fO?i@fHo9Ue7p-sDc>W)0ICG_HTRPJR3BK|z5Zp?$Z&-Q7Le z!NDO8b!~Ks5+$Nw^TJ{CLQPCeLU7;ufj|%d{D2Se2E9Q~J-rZm>EXUUfbrqn9M1m;LUmtRv+qpl?0It85#=_EWMLU;~5*RjLfBQ7^^>*h)ZW{}qsLY^H@7v- zn>T+Cx|@l*HpR-yYJ!=WSt4v+qOq}YB5v7OK>IKXj0CY@7>EIb!9YEO^y|?G$q+CU zFz#@D$YrKyKJkEgY9wHp{>2(xCp`8zFdig1^d)5DXGS(+?n||K}gp9|K zsPPdp&Sa;i%8GIo8sBN!JOs8W0d3<6;^I11T02HdqehJ`)~Hcqqot+gKsfJ492hElq zy{4d^nuzybi>UE%Y=-}Y{NTt7)TvYP!Jr`9he<=sAC4JhlkU;2=>gQUU+{jrIu-jWCD!!(Q^6FVmA_iH;|D4Gr;SjK zlGUk7`nZA0Pc^G3?<3v}FcZw~@M*LsM#39OgG9zBOdSENQ z`%u#?)3bARNgPs1QsQd^dr6EgDiMC=#Kpx$JUu;8uf$!78uWuqnsQE-uevGj9^+r? zt(mv%|5+!!y_4~60Xym0dzeg}bywn(Pf7&pTyOu`X!9hBqw@&VMWKe;OTzX1Q~J}! zTj;0Q5cI%!ODy^v?@wQ?+qvq~-RGgT```(n?Ni%)2=C5cedJv1nA9EPCeL4nbYnqy zety2++iNlLMzj(_mXmAcjBvfT<+;s>}lEZWwIjuEVC~hS+4G5+OdOeZq%q&YImDvmOnBd zEpNu@@2i|P%tzbDkZI2zm?i6GDLDiEl|#6tE5LHE&dT@9hx@ho*$*zM>x|pqPdS2k zA9;3Eel*OR%RM?M2Z`Z!=GCN*vWw@Uoj3F4GW7q8cFtUXlf4^V1iHVjore}?T>DXt z8|0zfH$0ZMpVyTdZz~b~+$A7ry^I|7J^Hi9 zItHC_yd@jZ=CR#J8<=$_Bl}9+_?i1*`#xIt$yXDhyV(T}J%(_GtE%KB`fvF^pQ$Ljq{7+|5}z2Z8{p_PN3lr2|ASEgKP z-G|dnV>*V` zmdgGxFXal$m2p2?pu8BuyUF3_*z^p zw`rmrMiK0U?Yl=UXnAAX0b6V35aVzg&k;87Cbs{8b2)(c_ZgqSWlIoys zw@k)Q*eV~bKOp-L{vzM)yeg?Pe~=H?J(Fp(pGo562a+-eeccJiBq(An?A{!4=`sd( zFIL*R#9{2g!BBgu?Zfr_UHhkvx6sd}JW$759_2_v@-p2@*uK37&fj=*yoI)pV}G}k z=N~>1GivG=uzjmul_bzrV#-Uw!3?ao?d+r%svU+`irBTJ|*$ zR;gC`%BBUs>Mz9GqTti{Mrv8{{(E(`&=s>QrgLj=spCE7Hfl-T*TpQ?!qOrGeTth= zeioU$=h}T|+&~Yb3?n0>bBiY^c`Q4IxJ{?~^;GU?@mP-7M(zCEsf}`Bc7pOqE9<4n zN{&|cbH^x|Hde}R#M@5X+A1fxpZV&wlZoxeXO2=HYr5n)_Hd3=Ixr=lcKb@}>X!;BEP%=BVR_=0t z`O?Zwq*3bw?*DYYvBZRyRqqS$+lIMCC9?ke@{zsN9`5;f` zEPgJN=iR}3+xsP~|2pVyoV0Qp2D|qXSGQ4y+T-%8AIkf$YEZL%9B<)!0kwcS-jcjj zHz#Ge?#uZf-98DO8IHG5d+c*O`1*)0ZDit%-LQQtGP54VBW*80U)4&OUoG*|Pd}Aj zvt~_=MT-`-!TWzmyfpo>9I@>jI7Ohr>(nlPJP)R0+>l<%b?pBU?A5d1tBZ0~(+1BAcIl>; zMmxvpamq8o^QB#TsR{L%H;~T_*wQDO{;-^9X|CLXesXG8RUS00t7I`>UJK75!dumC z2GZUAbe{66&KMq|0^oq=0cwc5LdL-kgUX%$bhb3yzdW9V zoFlFdilg0UxpwVZo4B~RGJ^*Xt~YStK-ci_@UWnuph5V?&iE zxJ|bMdMK(^4YZJk?Z1F?b*sN@$K%{p{b@D^^&0EUpTT}`0351ULpe{qX>nnjvZzO% zqoy^UqgFRkBg~I!pfB3X4D@N9zS19-vF$#103Bwbo%dYZ$7O7LgncTS{&lb>dp+;9@s?M8jwKt;pNmVJ`R({A3*Uq78;Z2uKz+deizVh;&4v#jZjLzz zyUv|ES4AJJ1>U9Z%-Pv_UhCGaw{Bi!{HiU(veBORfF7m=7$bh+(a|(tD_8E< z;&5B<&Zdtro^q?NhmoqOzCDZ{b#Jd^vaFepUU#`#h#Phj`g^FAkKX>B$9AVX1f7BGq9{q`I#%21|)0BMeI(TgE*EGZPM!PZ_dEBAR z(=wDA^d zPwjIYxuLt7ki7H&Y~Q*~U+hRiI)6Zay2^n0neE!O%d}auW`!^oVpFSDt@4=XZ&1H} z{Z0)UGzh`_^GWsU)mypcJ>%!U+8MLQTKV(7H*ZwvX=6&+~ySgYS= zjxu_JvAl~xo-f-?Y(L?qq(Nh9n_SD6<%9Z{wj)hzV{xCp{dWS}k62kK$Jmx507z25P_T^LBA(pwOajxr+os$%;sBHu0i9R#W z<%+hAd2kuquA$9vPqUS@ov>%w^F#cuj$x z*3zI+7rY0(4BrU&Oss9oQ%h36k)OD99*41*B#ggImR1-ubZ9vcwr{Ywy2Yw-7*9_U z!vFZ8y#I>+X#42j!gt(gx4J#dkzt98bxS5M(|xymsR zW2b+aGj9ARCmZD;?N{b6tkV}KdlPSDo6fP8jS^URl;nHsC4!~Ps? zWUu__?yQ_(eCmc;f!#c-ox_Kz%Cm}Pl=FrfV!Kl7_fV72D%%1lFoyR~vwvKM&VJGQ zFg)kDaOENUFYKF8i@Y!B(_|R-Ke!*)`he$+=kPAku8;j+UypjSVydlLNArF;G%%Nd z;3d+_d#;o%+epe+XaU_#61Q%nr8D{$&K+W*yFse$>*5}d|7k9*=}rs(LwnqSvi>t@ zwoe;tu7>n{$2WMxw=yMRzHU?Uf@4Q6Wai$4*0k}KSAC9Mr?W4{C(YV}xsH`bPn=Ca zy54|&X7-(5dxrw2W(q7Y|4_LBZ2Q{OW@03{OPFn}%Fpt5q)ilpE zgz;F$D9hs*Gueo9Uc<3H=Evh}`&ovJ$2_>tshP5$<96CPF+}}&k$q<)6w2VO3OB|d8l_CS`NTBo#NqhSw_>G7UH(N{fBb@ zv-;C)Um2w3ShL5O%QAA@d%ESL=VtESvgd3XY#)95*w5AK-R!gXbT_6g`trz#anm=g zT8BSkefjoB;f37d+Bh8uzOY;`t2qUD4L%6Cvr}i=MwWJ^V zt2&p(=GNn zc8p4zwK(hHBfi7q4*32Ub}X!egZ{Fa0^J#(Jur=?KXT9Cu;s#>!e^ zUrkw#ZL`r2UV-(G2$nyVQule+lY~@1ekNylaoK7)u$U>dU3Qw>Y=$0l#v*7hT9gt$Q0Z3Xq14 zgQRh@P-)sCN}M_j#XAzO&FxZqN#J*XDDyv~KiVhy7_i+(?ew^pC2?~;mJgB^-P!xi z&!;a!dzx>bX8W=ZUuU1={R0UTW`Df(n_Ux-j(v_+pfXVV90*_8KK*+v#yD{^UQq-tbbTO2xxxAOUU0QK+Zmv3&%zHyri%Q1mxq0K=ik zgT4UKV6dJ+2nPVoe}u~e_4^o)@#$YcxXk#B8xDd2eNqB|zaB1g8~25Q2tc0{rqS}& zLguBRoex7E*YMapZ$h61&4*z)mI*bl`7rQV;4?7}Bx2lh148;LBtG-w%PmNK+ZK0sY?JBGaa>mMv3P{G!@E*gW<#X!~CE zIcBdocoMen%Ng@On2R(6K_~FGKF6zfXK~`xUm?Ic*anmYl>jx^1a{Dowh%h(3JrRq zo#5MBF!NgKea>o|Xt(=;3lJ{dUG-S|`v} zA95S_HwVo?6VM1W)WhYbzyUB%!@S-+u6BIJ(c)>_w7A;wwR7Nkv@^gN%N+pqPwn%0 zp#Hl6J_8I1w{f2v<-!82G;UCNW4?z8C{f=^2<~*724`*e~qvW`q%m#SXa;a4gJvunu5ZB8ngk$ zL1{o8RtD8TP1LcqVe9M-!S>pqmL4wK>*2EDKE|mDY8b$EZZ}Lv%`*>f<9+A+0IJ1_0njH6+=&+zy>HqU|7HJ~1r>w^Y>&j9t`81T8^b3nMv zZQQ3lD~!){^-7khwy>4s0BO=J625BzQm4MR)UAjAoUiYLb$`^ieW6Jo_z^ha-PZqT z=dtj}F7T&*EcZWv;dryw?}+$#zs%izMZP(8KkwYNr*aRPqi-q4ndx7UG5@0@XMzWg z-rj%Mg!isqyEPQYd263TJ3dcb)1ST#XoO8BfEqLd=D-qAhs6N3NSjy+P?H*E43-VI zal3}LT??59^V0Iu^3>v #g)8g|S>;TWFs2=UyN?={fkH^vS(vHcH`MeFoI9fXG z_*z&FX*J4Yna?Dj0X_@bGf)M~gzLocIbnRJBjrkzD!;#0o%YaOFX#?5@Ph7oO7$8J zcwhCkIb1>f*U-uh+yB&0EBoIGY5S-@j``8gfbBN72e~qQ`*~S$@UHATm-+O{nJm?> zo^>wUfA=Q8ckrT5Xu>|!O44I!{o`!i@W1j}MYw`I^@LY&?UR>t(-^xo%Z+PtATK=tb z(9VS+pGR9gdV$I>?DsYTz0>YX;-L&#fBtd7;T?xB+&p$G_aW`x*FWEX5Ht4u zD?NN;5BBis|LKsp$*G7R0bD?B!1g2aVtvlMU)f)twW0pBWo)JfH62omnjSSx(mwv1 z6hi)nXvgC5HMH|GJhwN`k9lZm|7vJ>9)`=T9|)fT!{Y((JAG z`wvUG>fzJ>h`U$B)_zfObJH$e8-n<(cd1*p9bfBnVEw=9PrJ518sY}LdL9kaaQkoV zds{p${@X&s_`kLMwsdc9`>nLUxBbmL-dHz$4t{T0d#2wECm_Gy(pwVtIscb)LzF-M zGc5n#Sf>6sHcZ`A296;7*aMk!?YVrj_w=vyPxZ>eE;7B*Gh%eo} zBNwGzx;g@J+23^ll>y%m`Hy-R+umCL{@!)I+xPam;-9!LP>-rJgYb7XXL!s%uDq8q zwX*-6(6H}O4e{E8f#-8&A$(l6f4=wFsafxTd}+{#@K+{hj`n{d;;c)W^TQY^Xo2T>nN$+o$QT7?wG1;`&@C(U-@x_#W5&(Ba8a#u zY4@l-#xDgl?Y-9D#rD^9_)dTSt~UM`&)&bRKiV>vhxrn5;KJ>cm78`f8yK7XVNd_T zOJhe*nS%Bn`x#ynW-TJ%x@rDMp`j_^PeTS-`O-A-p z-!JwZ8$KcRy@{xIlNT;s8~@-zRv7lNpUeJnHSlJg`%ZiBp0_`1Z#4axK~MBM;P^|U z%^D+AVQF9EN0k-uxzDGOBe(t+E_nqzxb@W%44Q(LD09mhA0&L$=bJYQTS*T6! zXI)LbzO#Gp^!Haa_hvfH22xwBS83x|$5L|~m!a-7o2T`0ndZ%W-mSm8Cx2A~v}e>7 z>s9&zQg4Ks#yqTkEGM;Vror;n$vXm&gQ+--yhM@--$zwy^X(<=exA; obo)*N?= Date: Sun, 23 Sep 2018 04:32:12 -0500 Subject: [PATCH 579/755] Typo fix Oops, a bad c&p here prevented this from running. --- Rules.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Rules.py b/Rules.py index 70ab1113c..35ce4e119 100644 --- a/Rules.py +++ b/Rules.py @@ -317,7 +317,7 @@ def global_rules(world): set_rule(world.get_location('GS Gerudo Valley Behind Tent'), lambda state: state.can_use('Hookshot') and state.nighttime()) set_rule(world.get_location('GS Gerudo Valley Pillar'), lambda state: state.can_use('Hookshot') and state.nighttime()) set_rule(world.get_location('GS Gerudo Fortress Archery Range'), lambda state: state.can_use('Hookshot') and state.has('Carpenter Rescue') and state.nighttime()) - set_rule(world.get_location('GS Gerudo Fortress Top Floor'), lambda state: state.nighttime() and (self.can_use('Bow') or self.can_use('Hookshot') or self.can_use('Hover Boots') or self.world.logic_tricks)) + set_rule(world.get_location('GS Gerudo Fortress Top Floor'), lambda state: state.nighttime() and (state.can_use('Bow') or state.can_use('Hookshot') or state.can_use('Hover Boots') or world.logic_tricks)) set_rule(world.get_location('GS Wasteland Ruins'), lambda state: state.can_use('Hookshot')) set_rule(world.get_location('GS Desert Colossus Bean Patch'), lambda state: state.has_bottle() and state.can_play('Requiem of Spirit') and state.can_child_attack()) set_rule(world.get_location('GS Desert Colossus Tree'), lambda state: state.can_use('Hookshot') and state.nighttime()) From c172c8096d452bfc66d078e13f40af9b8700312e Mon Sep 17 00:00:00 2001 From: Nick Langille Date: Sun, 23 Sep 2018 05:51:47 -0400 Subject: [PATCH 580/755] Move every-frame hooks, draw dungeon info when game state is in scope --- ASM/build/asm_symbols.txt | 189 +- ASM/build/bundle.o | Bin 10196 -> 10156 bytes ASM/build/c_symbols.txt | 10 +- ASM/c/main.c | 5 +- ASM/src/every_frame.asm | 35 +- ASM/src/hacks.asm | 32 +- data/rom_patch.txt | 11348 ++++++++++++++++++------------------ data/symbols.json | 38 +- 8 files changed, 5817 insertions(+), 5840 deletions(-) diff --git a/ASM/build/asm_symbols.txt b/ASM/build/asm_symbols.txt index c4baa3761..939289e1d 100644 --- a/ASM/build/asm_symbols.txt +++ b/ASM/build/asm_symbols.txt @@ -907,46 +907,51 @@ 80403190 @@continue 804031C0 Deku_Set_Sold_Out 804031E4 @@continue -80403218 every_frame -8040326C @@loop -804032C4 @@no_pending_item -804032EC item_menu_description_id_periodic -80403300 @@item_menu_description_id_return_00000000 -80403308 item_menu_description_id_immediate_1 -8040331C @@item_menu_description_id_return_00000001 -80403324 item_menu_description_id_immediate_2 -80403338 @@item_menu_description_id_return_00000002 -80403340 item_menu_description_id_immediate_3 -80403354 @@item_menu_description_id_return_00000003 -8040335C before_time_travel -8040338C after_time_travel -804033C8 @@going_back -804033D0 @@done -80403400 update_c_button -8040342C @@return -80403434 after_going_forward -80403470 @@no_init -80403480 after_going_back -804034B0 @@not_swordless -804034B8 initialize_adult -804034E0 @@no_mirror_shield -80403520 init_adult_button -8040354C @@empty -80403554 @@loop -804035AC @@set_empty -804035B8 @@return +80403218 before_game_state_update +80403258 @@loop +804032B0 @@no_pending_item +804032C4 after_game_state_update +804032E8 item_menu_description_id_periodic +804032FC @@item_menu_description_id_return_00000000 +80403304 item_menu_description_id_immediate_1 +80403318 @@item_menu_description_id_return_00000001 +80403320 item_menu_description_id_immediate_2 +80403334 @@item_menu_description_id_return_00000002 +8040333C item_menu_description_id_immediate_3 +80403350 @@item_menu_description_id_return_00000003 +80403358 before_time_travel +80403388 after_time_travel +804033C4 @@going_back +804033CC @@done +804033FC update_c_button +80403428 @@return +80403430 after_going_forward +8040346C @@no_init +8040347C after_going_back +804034AC @@not_swordless +804034B4 initialize_adult +804034DC @@no_mirror_shield +8040351C init_adult_button +80403548 @@empty +80403550 @@loop +804035A8 @@set_empty +804035B4 @@return +804035BC .byt:0001 +804035BC ADULT_INIT_ITEMS +804035BD .byt:0001 +804035BE .byt:0001 +804035BF .byt:0001 804035C0 .byt:0001 -804035C0 ADULT_INIT_ITEMS 804035C1 .byt:0001 804035C2 .byt:0001 804035C3 .byt:0001 804035C4 .byt:0001 -804035C5 .byt:0001 -804035C6 .byt:0001 -804035C7 .byt:0001 804035C8 .byt:0001 +804035C8 ADULT_VALID_ITEMS +804035C9 .byt:0001 +804035CA .byt:0001 +804035CB .byt:0001 804035CC .byt:0001 -804035CC ADULT_VALID_ITEMS 804035CD .byt:0001 804035CE .byt:0001 804035CF .byt:0001 @@ -966,27 +971,23 @@ 804035DD .byt:0001 804035DE .byt:0001 804035DF .byt:0001 -804035E0 .byt:0001 -804035E1 .byt:0001 -804035E2 .byt:0001 -804035E3 .byt:0001 -804035E4 suns_song_fix_event -80403618 @@child -80403628 @@return -80403630 suns_song_fix -80403644 @@check_suns_status -80403660 @@disable_suns -80403668 @@return -80403670 warp_song_fix -8040369C @@child -804036AC @@return -804036B4 Check_Has_Epona_Song -80403700 @@return -80403708 write_initial_save -80403714 @@save_data_loop -80403744 @@overwrite_type -8040374C @@return -80403754 .byt:08FC +804035E0 suns_song_fix_event +80403614 @@child +80403624 @@return +8040362C suns_song_fix +80403640 @@check_suns_status +8040365C @@disable_suns +80403664 @@return +8040366C warp_song_fix +80403698 @@child +804036A8 @@return +804036B0 Check_Has_Epona_Song +804036FC @@return +80403704 write_initial_save +80403710 @@save_data_loop +80403740 @@overwrite_type +80403748 @@return +80403750 .byt:0900 80405000 disp_buf_init,00000018 80405018 sprite_bytes_per_tile,00000028 80405040 sprite_bytes,00000030 @@ -998,46 +999,46 @@ 804056EC heap_alloc,00000034 80405720 file_init,00000044 80405764 c_init,0000002C -80405790 overlay_swap,000000B4 -80405844 draw_dungeon_info,000009C0 -80406204 text_init,0000002C -80406230 text_print,000000A8 -804062D8 text_flush,00000148 -8040642C .byt:0010 -8040642C font_sprite -8040643C .byt:0010 -8040643C quest_items_sprite -8040644C .byt:0010 -8040644C medals_sprite -8040645C .byt:0010 -8040645C stones_sprite -8040646C .byt:000E -8040646C cfg_dungeon_rewards -8040647C .byt:0012 -8040647C medal_colors -80406490 .byt:009C -80406490 dungeons -8040652C .byt:0004 -8040652C cfg_dungeon_info_enable -80406530 .byt:0004 -80406530 dungeon_count -80406534 .byt:0004 -80406534 heap_next -80406538 .byt:0004 -80406538 cfg_dungeon_info_reward_need_altar -8040653C .byt:0004 -8040653C cfg_dungeon_info_reward_need_compass -80406540 .byt:0004 -80406540 cfg_dungeon_info_mq_need_map -80406544 .byt:0004 -80406544 cfg_dungeon_info_mq_enable -80406550 .byt:0010 -80406550 setup_db -80406560 .byt:000E -80406560 cfg_dungeon_is_mq -8040656E .byt:14C8 -8040656E FONT_TEXTURE -80407A36 .byt:85CA +80405790 c_after_game_state_update,00000088 +80405818 draw_dungeon_info,000009C0 +804061D8 text_init,0000002C +80406204 text_print,000000A8 +804062AC text_flush,00000148 +80406400 .byt:0010 +80406400 font_sprite +80406410 .byt:0010 +80406410 quest_items_sprite +80406420 .byt:0010 +80406420 medals_sprite +80406430 .byt:0010 +80406430 stones_sprite +80406440 .byt:000E +80406440 cfg_dungeon_rewards +80406450 .byt:0012 +80406450 medal_colors +80406464 .byt:009C +80406464 dungeons +80406500 .byt:0004 +80406500 cfg_dungeon_info_enable +80406504 .byt:0004 +80406504 dungeon_count +80406508 .byt:0004 +80406508 heap_next +8040650C .byt:0004 +8040650C cfg_dungeon_info_reward_need_altar +80406510 .byt:0004 +80406510 cfg_dungeon_info_reward_need_compass +80406514 .byt:0004 +80406514 cfg_dungeon_info_mq_need_map +80406518 .byt:0004 +80406518 cfg_dungeon_info_mq_enable +80406524 .byt:0010 +80406524 setup_db +80406534 .byt:000E +80406534 cfg_dungeon_is_mq +80406542 .byt:14C8 +80406542 FONT_TEXTURE +80407A0A .byt:85F6 80480000 DUMMY_ACTOR 80500000 C_HEAP  \ No newline at end of file diff --git a/ASM/build/bundle.o b/ASM/build/bundle.o index a9d98276dfec3c722411349fe18704e29e12e098..57d8dbd4641a7e8b92d31fe79109e74f3790d2ae 100644 GIT binary patch delta 2470 zcmZWrO-Ni<6h80yGc&$7Z)Tp;`d`P)=$L9!+uFv3g{g7jLK+J~LlM+g8!47bYfBcw z%)*6Gp~92m!o@7Ia3O6{Eo5Qn6tZw(Aqy9USa6Yr3!%2S2vkVF@0}}I^uc}Se&_c) z=Uwl3cx(IC+7&x@^dNT_DGu7D*8ZX8@?e!%ax>Ynelymev!youi8TGsHWV947o`4D zANmi)hN1H=b<0DNu6|$Yi1UwLoc#2wq?vzpSi}{P+_Js(J#t559~C&1~j0qm{LqDal!%Z{zzQvx;C4piIpn$~!7_qgE01%QDli)|F`H9j7Kg6D0 zTqgJvdlJ0F&#@05Dv|F6Uibvkt?~9N$e#foR_xpD0Ay?u*h9fm%iPZ2Edy55r<2p4 zEzW*5d1v~I*~zaLrx#}@zgd`p2)f&T4xYAUiWuI(+zc z6s`mDChChAX%iCFWkjx00RmTv(ZO}%en?^ve4TgzlDJ?J51YijB5%?@1_`@^0q zs1|Y%&pHk;Ke+=xe)6I-p^Tgv<2Yv=F)|Wz?kXW?SqV8SO2}C-iB>g{Q&Iv>SqZo( zP6E!R=5;}c1Y9)A&fQ#yi{kcaAs3ypa~BMI5a^=A&=CZ~z8@!b?uLnDVd}R`{%y@4?=|@=^uza$52|Av-<%2KD9D8IDNPvXM5qS=CX90;#7ib2 zCKbjRBA#gH@pX;!T#fV4G5x%5&F_Iodl8*_=$r+-0pmEL1-wx$;EkI=5(EM7u@>+^ zG>m&<;!cgp|Od7@PV6B!LmY-oW5n6g0Po(ZfNKM)|1 z#J(0tkO2J-jo**H8`e+AvLOnQ@|vWni6TKhC~Ov z;Zi5KG>|BD3Q7B!!RUzCPb&7)L2tIX$jitmuuIr;Z zRG+2bSI^YcujtTxQ@VcL=rM!P4>Jh;_At~?fgw=ACvW4G!OuEn0k=5i6bez6keITJ zOP8{O%aZaKmnWo!Z3|^aWaehew6MBbn*;WDKx<8q~};2)8mojbW6%dS5U);qH` zpjMj<_BylHL~z`hx8{Oq7vFt&F9f&4cPV^t;e8N1!FxY=9_};wF1z6<7*Vm1&(~m( P_Q%0yK5LBxm3;a?9Bd1B delta 2572 zcmZWqO=w(I6h80eXI|#LnR)Y5J8e>(G&7l4V@+#XD`qjKS)@>Dgf0RWOr=7FfKiLB zP?!NDWKl_AvdE%~h+PCMq%jeTq%=quT@=Y8iy&Rh!bQL=qI8i(F@E1WCw1Y4`_BFD z`TNefckbN1uyJALs9S1YDsIH8#fQ?d_@m?(mn64%PeQ5HN-{rH8gOeJ{ezS9 z15M({*|2l=Y+HZPmDb!xazNH*{;wZw8_rcEX8@?nGo5B8y;ZLwGV1{XtR>*t=->ci=wE{RCTBa}c*d{)IYLP{32O-!Itg z9S=4Y%s$mS2biB7WCc(I*L zVM)RZ=6@57qK$RjseTQ>u}|PztSgvIz<}RD;7BBA0e--mRqWfZV@*Q)_)n~(!AFZKobTvQ+=& zNU_?9TiEhUq!a8~(BDJASjr)MTAM}MiP6$_;+#kcd#zwlBu3^A;xmRTA}`Z^2$K3y z+Xwj~_a_X`ncqAv%uy;9M2^zouE|xAE(U%o@+S2SNb0vljzh+vJC6Mr0u!^P5$-U3 zpC*Wn<8HtfhR05T7H6hRC)q>AMsydq8pmWhd=Z9z&!e@4?~{4Kc$TP z88e(U!+9m--%&#TJtgF?C?Ws02J-J)oV!ZEf1(6}J|*Bk*0=!(kwAb#QFv8?5!<+= zi2_v0$^$U$1@izEvO@s~MvimZ+5m~!>HtJ|NdpkzB@I@!kl>N|F){ZyEdHj(PmD4? z&Og{z!^BlJOiXIP1QIe};+6(Xup>y6009O}up`6^77(2xk%SRR_G;ycHT6rLQNJV# zrd{$PWEFvuV8Y9gMCDA7ykdseG(qx)CP>!Ikp$_tqY08A8u>j}zf@lBQXOiSDro#v zkJ_a`j0L3nasI3z1!in{YSA|x6#2}g> z-Vo^~-i0IvVa7{`IDb~2zN(ikeM1wcZ))Q7Es=vDm_Y@6=`uMyB5=&)A>o%nMG;0t z5gssHF+6PeykX?wyO5dC%bTgz%wWn49vgn5IE!A=A&bPk?b&{9b(RFU&xG7x(WA;5 zq3oLNH_Q&5iR`uvZ!6{>ru4Y@6!5=JS-~4mIfgCD8UjiQ#g&1s!$Yt6wX39YC{X K7IS})v-}Hc#1+^8 diff --git a/ASM/build/c_symbols.txt b/ASM/build/c_symbols.txt index ba1dcd342..7de47f35f 100644 --- a/ASM/build/c_symbols.txt +++ b/ASM/build/c_symbols.txt @@ -23,14 +23,13 @@ SYMBOL TABLE: 00000000 l df *ABS* 00000000 text.c 00000018 l O .sbss 00000004 text_buf 00000014 l O .sbss 00000004 text_end -00001204 g F .text 0000002c text_init -000012d8 g F .text 00000148 text_flush -00000790 g F .text 000000b4 overlay_swap +000011d8 g F .text 0000002c text_init +000012ac g F .text 00000148 text_flush 00000020 g O .data 00000010 medals_sprite 00000004 g O .sdata 00000004 dungeon_count 00000010 g O .data 00000010 quest_items_sprite 000006ec g F .text 00000034 heap_alloc -00000844 g F .text 000009c0 draw_dungeon_info +00000818 g F .text 000009c0 draw_dungeon_info 00000000 *UND* 00000000 FONT_TEXTURE 000002c4 g F .text 000000f0 sprite_draw 00000070 g F .text 00000254 sprite_load @@ -45,10 +44,11 @@ SYMBOL TABLE: 00000010 g O .bss 0000000e cfg_dungeon_is_mq 00000064 g O .data 0000009c dungeons 00000050 g O .data 00000012 medal_colors -00001230 g F .text 000000a8 text_print +00001204 g F .text 000000a8 text_print 00000764 g F .text 0000002c c_init 00000000 g O .sbss 00000004 heap_next 00000040 g O .data 0000000e cfg_dungeon_rewards +00000790 g F .text 00000088 c_after_game_state_update 000006d8 g F .text 00000014 heap_init 00000008 g O .sbss 00000004 cfg_dungeon_info_reward_need_compass 00000010 g O .sbss 00000004 cfg_dungeon_info_mq_enable diff --git a/ASM/c/main.c b/ASM/c/main.c index 07f994df3..469c6f45a 100644 --- a/ASM/c/main.c +++ b/ASM/c/main.c @@ -10,13 +10,12 @@ void c_init() { text_init(); } -void overlay_swap(z64_disp_buf_t *db, Gfx *buf, uint32_t size) { +void c_after_game_state_update() { if (z64_game.pause_state == 6 && z64_game.pause_screen == 0 && !z64_game.pause_screen_changing && z64_ctxt.input[0].raw.a) { + z64_disp_buf_t *db = &(z64_ctxt.gfx->overlay); draw_dungeon_info(db); } - - disp_buf_init(db, buf, size); } diff --git a/ASM/src/every_frame.asm b/ASM/src/every_frame.asm index 0d89fbf20..8c9bb9cb5 100644 --- a/ASM/src/every_frame.asm +++ b/ASM/src/every_frame.asm @@ -1,11 +1,6 @@ -every_frame: - sw a0, 0x68 (sp) - sw a1, 0x6C (sp) - sw a2, 0x70 (sp) - sw a3, 0x74 (sp) +before_game_state_update: addiu sp, sp, -0x18 - sw v1, 0x10 (sp) - sw ra, 0x14 (sp) + sw ra, 0x10 (sp) ; Don't give pending item during cutscene. This can lead to a crash when giving an item ; during another item cutscene. @@ -58,15 +53,25 @@ every_frame: nop @@no_pending_item: - lw v1, 0x10 (sp) - lw ra, 0x14 (sp) + ; Displaced code + lw t9, 0x04 (s0) + or a0, s0, r0 + + lw ra, 0x10 (sp) + jr ra addiu sp, sp, 0x18 - lw a0, 0x68 (sp) - lw a1, 0x6C (sp) - lw a2, 0x70 (sp) - lw a3, 0x74 (sp) - lh t6, 0x13C4 (v1) ; Displaced code +after_game_state_update: + addiu sp, sp, -0x18 + sw ra, 0x10 (sp) - jr ra + jal c_after_game_state_update nop + + ; Displaced code + lui t6, 0x8012 + lbu t6, 0x1212 (t6) + + lw ra, 0x10 (sp) + jr ra + addiu sp, sp, 0x18 diff --git a/ASM/src/hacks.asm b/ASM/src/hacks.asm index eecf09a4a..1cc5fe99b 100755 --- a/ASM/src/hacks.asm +++ b/ASM/src/hacks.asm @@ -146,17 +146,29 @@ .endarea ;================================================================================================== -; Special item sources +; Every frame hooks ;================================================================================================== -; Runs every frame (part of player actor) +; Runs before the game state updates ; Replaces: -; sw a1, 0x006C (sp) -; lh t6, 0x13C4 (v1) -.org 0xBE5990 ; In memory: 0x803A0980 - jal every_frame +; lw t9, 0x0004 (s0) +; or a0, s0, r0 +.org 0xB16B50 ; In memory: 0x800A0BF0 + jal before_game_state_update nop +; Runs after the game state updates +; Replaces: +; lui t6, 0x8012 +; lbu t6, 0x1212 (t6) +.org 0xB16B60 ; In memory: 0x800A0C00 + jal after_game_state_update + nop + +;================================================================================================== +; Special item sources +;================================================================================================== + ; Override Light Arrow cutscene ; Replaces: ; addiu t8, r0, 0x0053 @@ -471,16 +483,8 @@ ; Dungeon info display ;================================================================================================== -; Replaces: -; jal 0x8009FEC0 ; swap buffers for overlay display list -.org 0xB17128 ; In memory: 0x800A11C8 - jal overlay_swap - ; Talk to Temple of Time Altar injection ; Replaces: ; jal 0xD6218 .org 0xE2B0B4 jal set_dungeon_knowledge - - - diff --git a/data/rom_patch.txt b/data/rom_patch.txt index e92765130..250d2cc55 100644 --- a/data/rom_patch.txt +++ b/data/rom_patch.txt @@ -407,7 +407,7 @@ a98c33,cc a9e838,8 a9e839,10 a9e83a,d -a9e83b,ad +a9e83b,ac ac9abc,c ac9abd,10 ac9abe,b @@ -433,11 +433,11 @@ acce9b,0 ae59e0,8 ae59e1,10 ae59e2,c -ae59e3,e3 +ae59e3,e2 ae5df0,c ae5df1,10 ae5df2,d -ae5df3,8c +ae5df3,8b ae5df8,c ae5df9,10 ae5dfa,b @@ -463,12 +463,24 @@ b0640f,2 b06c2c,c b06c2d,10 b06c2e,d -b06c2f,c2 +b06c2f,c1 b06c31,28 b06c33,20 -b17129,10 -b1712a,15 -b1712b,e4 +b16b50,c +b16b51,10 +b16b52,c +b16b53,86 +b16b54,0 +b16b56,0 +b16b57,0 +b16b60,c +b16b61,10 +b16b62,c +b16b63,b1 +b16b64,0 +b16b65,0 +b16b66,0 +b16b67,0 b17bb4,af b17bb5,bf b17bb6,0 @@ -503,11 +515,11 @@ b17bd3,0 b54b38,c b54b39,10 b54b3a,d -b54b3b,9c +b54b3b,9b b54e5c,c b54e5d,10 b54e5e,d -b54e5f,79 +b54e5f,78 baed6c,0 baed6d,0 baed6f,0 @@ -517,14 +529,14 @@ bb77b7,0 bb7890,c bb7891,10 bb7892,c -bb7893,c2 +bb7893,c1 bb7894,0 bb7895,0 bb7897,0 bb7950,c bb7951,10 bb7952,c -bb7953,c9 +bb7953,c8 bb7954,0 bb7955,0 bb7957,0 @@ -537,14 +549,14 @@ bb7bff,0 bb7c3c,c bb7c3d,10 bb7c3e,c -bb7c3f,d0 +bb7c3f,cf bb7c40,0 bb7c41,0 bb7c43,0 bb7c58,c bb7c59,10 bb7c5a,c -bb7c5b,bb +bb7c5b,ba bb7c5c,0 bb7c5d,0 bb7c5f,0 @@ -586,14 +598,6 @@ bda267,76 bda270,0 bda271,0 bda273,0 -be5990,c -be5991,10 -be5992,c -be5993,86 -be5994,0 -be5995,0 -be5996,0 -be5997,0 be9ac0,c be9ac1,10 be9ac2,a @@ -649,7 +653,7 @@ c898cb,2a cb6860,c cb6861,10 cb6862,c -cb6863,d7 +cb6863,d6 d12f78,34 d12f79,f d12f7b,0 @@ -4521,913 +4525,916 @@ ec9ce7,7a 3483210,3 3483211,e0 3483213,8 -3483218,af -3483219,a4 -348321b,68 +3483218,27 +3483219,bd +348321a,ff +348321b,e8 348321c,af -348321d,a5 -348321f,6c -3483220,af -3483221,a6 -3483223,70 -3483224,af -3483225,a7 -3483227,74 -3483228,27 -3483229,bd -348322a,ff -348322b,e8 -348322c,af -348322d,a3 -348322f,10 -3483230,af -3483231,bf -3483233,14 -3483234,3c -3483235,a -3483236,80 -3483237,1e -3483238,25 -3483239,4a -348323a,aa -348323b,30 -348323c,81 -348323d,48 -348323e,6 -348323f,6c -3483240,31 -3483241,8 -3483243,20 -3483244,15 -3483247,1f -348324c,3c -348324d,9 -348324e,80 -348324f,40 -3483250,25 -3483251,29 -3483252,20 -3483253,1b +348321d,bf +348321f,10 +3483220,3c +3483221,a +3483222,80 +3483223,1e +3483224,25 +3483225,4a +3483226,aa +3483227,30 +3483228,81 +3483229,48 +348322a,6 +348322b,6c +348322c,31 +348322d,8 +348322f,20 +3483230,15 +3483233,1f +3483238,3c +3483239,9 +348323a,80 +348323b,40 +348323c,25 +348323d,29 +348323e,20 +348323f,1b +3483240,34 +3483241,a +3483243,ff +3483244,a1 +3483245,2a +3483248,3c +3483249,9 +348324a,80 +348324b,40 +348324c,25 +348324d,29 +348324e,20 +348324f,18 +3483250,24 +3483251,a +3483252,ff +3483253,ff 3483254,34 -3483255,a -3483257,ff -3483258,a1 -3483259,2a -348325c,3c -348325d,9 -348325e,80 -348325f,40 -3483260,25 -3483261,29 -3483262,20 -3483263,18 -3483264,24 -3483265,a -3483266,ff -3483267,ff -3483268,34 -3483269,c -348326b,3 -348326c,21 -348326d,4a -348326f,1 -3483270,11 -3483271,4c -3483273,14 -3483274,1 -3483275,2a -3483276,58 -3483277,20 -3483278,81 -3483279,68 -348327c,11 -348327e,ff -348327f,fb -3483284,3c -3483285,9 -3483286,80 -3483287,40 -3483288,25 -3483289,29 -348328a,20 -348328b,1b -348328c,a1 -348328d,2a -3483290,3c -3483291,9 -3483292,80 -3483293,1e -3483294,25 -3483295,29 -3483296,89 -3483297,84 -3483298,34 +3483255,c +3483257,3 +3483258,21 +3483259,4a +348325b,1 +348325c,11 +348325d,4c +348325f,14 +3483260,1 +3483261,2a +3483262,58 +3483263,20 +3483264,81 +3483265,68 +3483268,11 +348326a,ff +348326b,fb +3483270,3c +3483271,9 +3483272,80 +3483273,40 +3483274,25 +3483275,29 +3483276,20 +3483277,1b +3483278,a1 +3483279,2a +348327c,3c +348327d,9 +348327e,80 +348327f,1e +3483280,25 +3483281,29 +3483282,89 +3483283,84 +3483284,34 +3483285,a +3483287,1 +3483288,a5 +3483289,2a +348328c,3c +348328d,9 +348328e,80 +348328f,48 +3483290,34 +3483291,a +3483293,1 +3483294,ad +3483295,2a +3483296,1 +3483297,30 +3483298,3c 3483299,a -348329b,1 -348329c,a5 -348329d,2a -34832a0,3c -34832a1,9 -34832a2,80 -34832a3,48 -34832a4,34 -34832a5,a -34832a7,1 -34832a8,ad -34832a9,2a -34832aa,1 -34832ab,30 -34832ac,3c -34832ad,a -34832ae,80 -34832af,1e -34832b0,25 -34832b1,4a -34832b2,aa -34832b3,30 -34832b4,a1 -34832b5,48 -34832b6,4 -34832b7,24 -34832b8,ad -34832b9,49 -34832ba,4 -34832bb,28 -34832bc,c -34832bd,10 -34832be,a -34832bf,d9 -34832c4,8f -34832c5,a3 -34832c7,10 -34832c8,8f +348329a,80 +348329b,1e +348329c,25 +348329d,4a +348329e,aa +348329f,30 +34832a0,a1 +34832a1,48 +34832a2,4 +34832a3,24 +34832a4,ad +34832a5,49 +34832a6,4 +34832a7,28 +34832a8,c +34832a9,10 +34832aa,a +34832ab,d9 +34832b0,8e +34832b1,19 +34832b3,4 +34832b4,2 +34832b6,20 +34832b7,25 +34832b8,8f +34832b9,bf +34832bb,10 +34832bc,3 +34832bd,e0 +34832bf,8 +34832c0,27 +34832c1,bd +34832c3,18 +34832c4,27 +34832c5,bd +34832c6,ff +34832c7,e8 +34832c8,af 34832c9,bf -34832cb,14 -34832cc,27 -34832cd,bd -34832cf,18 -34832d0,8f -34832d1,a4 -34832d3,68 -34832d4,8f -34832d5,a5 -34832d7,6c -34832d8,8f -34832d9,a6 -34832db,70 +34832cb,10 +34832cc,c +34832cd,10 +34832ce,15 +34832cf,e4 +34832d4,3c +34832d5,e +34832d6,80 +34832d7,12 +34832d8,91 +34832d9,ce +34832da,12 +34832db,12 34832dc,8f -34832dd,a7 -34832df,74 -34832e0,84 -34832e1,6e -34832e2,13 -34832e3,c4 -34832e4,3 -34832e5,e0 -34832e7,8 -34832ec,93 -34832ed,19 -34832ef,74 -34832f0,34 -34832f1,1 -34832f3,ff -34832f4,17 -34832f5,21 -34832f7,2 -34832fc,34 -34832fd,19 -34832ff,2c -3483300,3 -3483301,e0 -3483303,8 -3483304,a7 -3483305,b9 -3483307,9a -3483308,93 -3483309,2c -348330b,74 -348330c,34 -348330d,1 -348330f,ff -3483310,15 -3483311,81 -3483313,2 -3483318,34 -3483319,c -348331b,2c -348331c,3 -348331d,e0 -348331f,8 -3483324,91 -3483325,ae -3483327,74 -3483328,34 -3483329,1 -348332b,ff -348332c,15 -348332d,c1 -348332f,2 -3483334,34 -3483335,e -3483337,2c -3483338,3 -3483339,e0 -348333b,8 -348333c,a7 -348333d,ae -348333f,9a -3483340,91 -3483341,cf -3483343,74 -3483344,34 -3483345,1 -3483347,ff -3483348,15 -3483349,e1 -348334b,2 -3483350,34 -3483351,f -3483353,2c -3483354,3 -3483355,e0 -3483357,8 -3483358,a7 -3483359,af -348335b,9a -348335c,3c +34832dd,bf +34832df,10 +34832e0,3 +34832e1,e0 +34832e3,8 +34832e4,27 +34832e5,bd +34832e7,18 +34832e8,93 +34832e9,19 +34832eb,74 +34832ec,34 +34832ed,1 +34832ef,ff +34832f0,17 +34832f1,21 +34832f3,2 +34832f8,34 +34832f9,19 +34832fb,2c +34832fc,3 +34832fd,e0 +34832ff,8 +3483300,a7 +3483301,b9 +3483303,9a +3483304,93 +3483305,2c +3483307,74 +3483308,34 +3483309,1 +348330b,ff +348330c,15 +348330d,81 +348330f,2 +3483314,34 +3483315,c +3483317,2c +3483318,3 +3483319,e0 +348331b,8 +3483320,91 +3483321,ae +3483323,74 +3483324,34 +3483325,1 +3483327,ff +3483328,15 +3483329,c1 +348332b,2 +3483330,34 +3483331,e +3483333,2c +3483334,3 +3483335,e0 +3483337,8 +3483338,a7 +3483339,ae +348333b,9a +348333c,91 +348333d,cf +348333f,74 +3483340,34 +3483341,1 +3483343,ff +3483344,15 +3483345,e1 +3483347,2 +348334c,34 +348334d,f +348334f,2c +3483350,3 +3483351,e0 +3483353,8 +3483354,a7 +3483355,af +3483357,9a +3483358,3c +3483359,8 +348335a,80 +348335b,40 +348335c,25 348335d,8 -348335e,80 -348335f,40 -3483360,25 -3483361,8 -3483362,20 -3483363,1c -3483364,8e +348335e,20 +348335f,1c +3483360,8e +3483361,9 +3483363,68 +3483364,ad 3483365,9 -3483367,68 -3483368,ad +3483368,8e 3483369,9 -348336c,8e +348336b,6c +348336c,ad 348336d,9 -348336f,6c -3483370,ad +348336f,4 +3483370,96 3483371,9 -3483373,4 -3483374,96 +3483373,70 +3483374,a5 3483375,9 -3483377,70 -3483378,a5 +3483377,8 +3483378,96 3483379,9 -348337b,8 -348337c,96 +348337b,9c +348337c,a5 348337d,9 -348337f,9c -3483380,a5 -3483381,9 -3483383,a -3483384,3 -3483385,e0 -3483387,8 -3483388,8e -3483389,e -348338b,4 -348338c,27 -348338d,bd -348338e,ff -348338f,e0 +348337f,a +3483380,3 +3483381,e0 +3483383,8 +3483384,8e +3483385,e +3483387,4 +3483388,27 +3483389,bd +348338a,ff +348338b,e0 +348338c,af +348338d,b0 +348338f,10 3483390,af -3483391,b0 -3483393,10 +3483391,b1 +3483393,14 3483394,af -3483395,b1 -3483397,14 -3483398,af -3483399,bf -348339b,18 -348339c,3c +3483395,bf +3483397,18 +3483398,3c +3483399,10 +348339a,80 +348339b,12 +348339c,26 348339d,10 -348339e,80 -348339f,12 -34833a0,26 -34833a1,10 -34833a2,a5 -34833a3,d0 -34833a4,3c -34833a5,11 -34833a6,80 -34833a7,40 -34833a8,26 -34833a9,31 -34833aa,20 -34833ab,1c -34833ac,8e -34833ad,8 -34833af,4 -34833b0,11 -34833b3,5 -34833b8,c -34833b9,10 -34833ba,d -34833bb,d -34833c0,10 -34833c3,3 -34833c8,c -34833c9,10 -34833ca,d -34833cb,20 -34833d0,c -34833d1,10 -34833d2,d -34833d4,34 -34833d5,4 -34833d8,c -34833d9,10 -34833da,d -34833dc,34 -34833dd,4 -34833df,1 -34833e0,c -34833e1,10 -34833e2,d -34833e4,34 -34833e5,4 -34833e7,2 +348339e,a5 +348339f,d0 +34833a0,3c +34833a1,11 +34833a2,80 +34833a3,40 +34833a4,26 +34833a5,31 +34833a6,20 +34833a7,1c +34833a8,8e +34833a9,8 +34833ab,4 +34833ac,11 +34833af,5 +34833b4,c +34833b5,10 +34833b6,d +34833b7,c +34833bc,10 +34833bf,3 +34833c4,c +34833c5,10 +34833c6,d +34833c7,1f +34833cc,c +34833cd,10 +34833ce,c +34833cf,ff +34833d0,34 +34833d1,4 +34833d4,c +34833d5,10 +34833d6,c +34833d7,ff +34833d8,34 +34833d9,4 +34833db,1 +34833dc,c +34833dd,10 +34833de,c +34833df,ff +34833e0,34 +34833e1,4 +34833e3,2 +34833e4,8f +34833e5,b0 +34833e7,10 34833e8,8f -34833e9,b0 -34833eb,10 +34833e9,b1 +34833eb,14 34833ec,8f -34833ed,b1 -34833ef,14 -34833f0,8f -34833f1,bf -34833f3,18 -34833f4,27 -34833f5,bd -34833f7,20 -34833f8,3 -34833f9,e0 -34833fb,8 -3483400,2 -3483401,4 -3483402,40 -3483403,21 -3483404,91 -3483405,9 -3483407,6c -3483408,34 -3483409,1 -348340b,ff -348340c,11 -348340d,21 -348340f,7 -3483414,2 -3483415,9 -3483416,48 -3483417,21 -3483418,91 -3483419,29 -348341b,74 -348341c,34 -348341d,1 -348341f,2c -3483420,11 -3483421,21 -3483423,2 -3483428,a1 -3483429,9 -348342b,69 -348342c,3 -348342d,e0 -348342f,8 -3483434,27 -3483435,bd -3483436,ff -3483437,e8 -3483438,af -3483439,bf -348343b,10 -348343c,8e -348343d,28 -3483440,ae -3483441,8 -3483443,40 -3483444,8e -3483445,28 -3483447,4 -3483448,ae -3483449,8 -348344b,44 -348344c,96 -348344d,28 -348344f,8 -3483450,a6 -3483451,8 -3483453,48 -3483454,a2 -3483456,f -3483457,33 -3483458,92 -3483459,8 -348345b,4a -348345c,34 +34833ed,bf +34833ef,18 +34833f0,27 +34833f1,bd +34833f3,20 +34833f4,3 +34833f5,e0 +34833f7,8 +34833fc,2 +34833fd,4 +34833fe,40 +34833ff,21 +3483400,91 +3483401,9 +3483403,6c +3483404,34 +3483405,1 +3483407,ff +3483408,11 +3483409,21 +348340b,7 +3483410,2 +3483411,9 +3483412,48 +3483413,21 +3483414,91 +3483415,29 +3483417,74 +3483418,34 +3483419,1 +348341b,2c +348341c,11 +348341d,21 +348341f,2 +3483424,a1 +3483425,9 +3483427,69 +3483428,3 +3483429,e0 +348342b,8 +3483430,27 +3483431,bd +3483432,ff +3483433,e8 +3483434,af +3483435,bf +3483437,10 +3483438,8e +3483439,28 +348343c,ae +348343d,8 +348343f,40 +3483440,8e +3483441,28 +3483443,4 +3483444,ae +3483445,8 +3483447,44 +3483448,96 +3483449,28 +348344b,8 +348344c,a6 +348344d,8 +348344f,48 +3483450,a2 +3483452,f +3483453,33 +3483454,92 +3483455,8 +3483457,4a +3483458,34 +3483459,1 +348345b,ff +348345c,15 348345d,1 -348345f,ff -3483460,15 -3483461,1 -3483463,3 -3483468,c -3483469,10 -348346a,d -348346b,2e -3483470,8f -3483471,bf -3483473,10 -3483474,27 -3483475,bd -3483477,18 -3483478,3 -3483479,e0 -348347b,8 -3483480,8e +348345f,3 +3483464,c +3483465,10 +3483466,d +3483467,2d +348346c,8f +348346d,bf +348346f,10 +3483470,27 +3483471,bd +3483473,18 +3483474,3 +3483475,e0 +3483477,8 +348347c,8e +348347d,8 +348347f,40 +3483480,ae 3483481,8 -3483483,40 -3483484,ae +3483483,68 +3483484,8e 3483485,8 -3483487,68 -3483488,8e +3483487,44 +3483488,ae 3483489,8 -348348b,44 -348348c,ae +348348b,6c +348348c,96 348348d,8 -348348f,6c -3483490,96 +348348f,48 +3483490,a6 3483491,8 -3483493,48 -3483494,a6 +3483493,70 +3483494,92 3483495,8 -3483497,70 -3483498,92 -3483499,8 -348349b,68 -348349c,34 +3483497,68 +3483498,34 +3483499,1 +348349b,ff +348349c,15 348349d,1 -348349f,ff -34834a0,15 -34834a1,1 -34834a3,3 -34834a8,34 +348349f,3 +34834a4,34 +34834a5,8 +34834a7,1 +34834a8,a2 34834a9,8 -34834ab,1 -34834ac,a2 -34834ad,8 -34834ae,f -34834af,33 -34834b0,3 -34834b1,e0 -34834b3,8 -34834b8,27 -34834b9,bd -34834ba,ff -34834bb,e8 -34834bc,af -34834bd,bf -34834bf,10 -34834c0,96 +34834aa,f +34834ab,33 +34834ac,3 +34834ad,e0 +34834af,8 +34834b4,27 +34834b5,bd +34834b6,ff +34834b7,e8 +34834b8,af +34834b9,bf +34834bb,10 +34834bc,96 +34834bd,8 +34834bf,9c +34834c0,31 34834c1,8 -34834c3,9c -34834c4,31 -34834c5,8 -34834c7,40 -34834c8,11 -34834cb,5 -34834d0,96 +34834c3,40 +34834c4,11 +34834c7,5 +34834cc,96 +34834cd,8 +34834cf,70 +34834d0,31 34834d1,8 -34834d3,70 -34834d4,31 +34834d2,ff +34834d3,f +34834d4,35 34834d5,8 -34834d6,ff -34834d7,f -34834d8,35 +34834d7,30 +34834d8,a6 34834d9,8 -34834db,30 -34834dc,a6 -34834dd,8 -34834df,70 -34834e0,92 -34834e1,28 -34834e3,1 -34834e4,a2 -34834e5,8 -34834e7,69 -34834e8,96 -34834e9,28 -34834eb,2 -34834ec,a6 -34834ed,8 -34834ef,6a -34834f0,8e -34834f1,28 -34834f3,4 -34834f4,ae -34834f5,8 -34834f7,6c -34834f8,c -34834f9,10 -34834fa,d -34834fb,48 -34834fc,34 -34834fd,4 -3483500,c -3483501,10 -3483502,d -3483503,48 -3483504,34 -3483505,4 -3483507,1 -3483508,c -3483509,10 -348350a,d -348350b,48 -348350c,34 -348350d,4 -348350f,2 -3483510,8f -3483511,bf -3483513,10 -3483514,27 -3483515,bd -3483517,18 -3483518,3 -3483519,e0 -348351b,8 -3483520,2 -3483521,4 -3483522,40 -3483523,21 -3483524,3c -3483525,9 -3483526,80 -3483527,40 -3483528,25 -3483529,29 -348352a,35 -348352b,cc -348352c,91 -348352d,a -348352f,6c -3483530,34 -3483531,1 -3483533,ff -3483534,11 -3483535,41 -3483537,5 -348353c,1 -348353d,2a -348353e,48 -348353f,21 -3483540,91 -3483541,29 -3483544,15 -3483545,20 -3483547,1c -348354c,3c -348354d,9 -348354e,80 -348354f,40 +34834db,70 +34834dc,92 +34834dd,28 +34834df,1 +34834e0,a2 +34834e1,8 +34834e3,69 +34834e4,96 +34834e5,28 +34834e7,2 +34834e8,a6 +34834e9,8 +34834eb,6a +34834ec,8e +34834ed,28 +34834ef,4 +34834f0,ae +34834f1,8 +34834f3,6c +34834f4,c +34834f5,10 +34834f6,d +34834f7,47 +34834f8,34 +34834f9,4 +34834fc,c +34834fd,10 +34834fe,d +34834ff,47 +3483500,34 +3483501,4 +3483503,1 +3483504,c +3483505,10 +3483506,d +3483507,47 +3483508,34 +3483509,4 +348350b,2 +348350c,8f +348350d,bf +348350f,10 +3483510,27 +3483511,bd +3483513,18 +3483514,3 +3483515,e0 +3483517,8 +348351c,2 +348351d,4 +348351e,40 +348351f,21 +3483520,3c +3483521,9 +3483522,80 +3483523,40 +3483524,25 +3483525,29 +3483526,35 +3483527,c8 +3483528,91 +3483529,a +348352b,6c +348352c,34 +348352d,1 +348352f,ff +3483530,11 +3483531,41 +3483533,5 +3483538,1 +3483539,2a +348353a,48 +348353b,21 +348353c,91 +348353d,29 +3483540,15 +3483541,20 +3483543,1c +3483548,3c +3483549,9 +348354a,80 +348354b,40 +348354c,25 +348354d,29 +348354e,35 +348354f,bb 3483550,25 3483551,29 -3483552,35 -3483553,bf -3483554,25 -3483555,29 -3483557,1 -3483558,91 -3483559,2a -348355c,11 -348355d,40 -348355f,13 -3483564,2 -3483565,a -3483566,58 -3483567,21 -3483568,91 -3483569,6b -348356b,74 -348356c,34 -348356d,1 -348356f,ff -3483570,11 -3483571,61 -3483572,ff -3483573,f8 -3483578,92 -3483579,c -348357b,6c -348357c,11 -348357d,8a -348357e,ff -348357f,f5 -3483584,92 -3483585,c -3483587,6d -3483588,11 -3483589,8a -348358a,ff -348358b,f2 -3483590,92 -3483591,c -3483593,6e -3483594,11 -3483595,8a -3483596,ff -3483597,ef +3483553,1 +3483554,91 +3483555,2a +3483558,11 +3483559,40 +348355b,13 +3483560,2 +3483561,a +3483562,58 +3483563,21 +3483564,91 +3483565,6b +3483567,74 +3483568,34 +3483569,1 +348356b,ff +348356c,11 +348356d,61 +348356e,ff +348356f,f8 +3483574,92 +3483575,c +3483577,6c +3483578,11 +3483579,8a +348357a,ff +348357b,f5 +3483580,92 +3483581,c +3483583,6d +3483584,11 +3483585,8a +3483586,ff +3483587,f2 +348358c,92 +348358d,c +348358f,6e +3483590,11 +3483591,8a +3483592,ff +3483593,ef +3483598,a1 +3483599,b +348359b,69 348359c,a1 -348359d,b -348359f,69 -34835a0,a1 -34835a1,a -34835a3,6c -34835a4,10 -34835a7,4 -34835ac,34 +348359d,a +348359f,6c +34835a0,10 +34835a3,4 +34835a8,34 +34835a9,9 +34835ab,ff +34835ac,a1 34835ad,9 -34835af,ff +34835af,69 34835b0,a1 34835b1,9 -34835b3,69 -34835b4,a1 -34835b5,9 -34835b7,6c -34835b8,3 -34835b9,e0 -34835bb,8 -34835c0,7 -34835c1,9 -34835c2,f -34835c3,2 -34835c4,3 -34835c5,1 -34835c6,d -34835c7,b +34835b3,6c +34835b4,3 +34835b5,e0 +34835b7,8 +34835bc,7 +34835bd,9 +34835be,f +34835bf,2 +34835c0,3 +34835c1,1 +34835c2,d +34835c3,b +34835c9,1 +34835ca,1 +34835cb,1 +34835cc,1 34835cd,1 -34835ce,1 34835cf,1 34835d0,1 34835d1,1 +34835d2,1 34835d3,1 -34835d4,1 34835d5,1 -34835d6,1 34835d7,1 +34835d8,1 34835d9,1 +34835da,1 34835db,1 34835dc,1 34835dd,1 34835de,1 -34835df,1 -34835e0,1 -34835e1,1 -34835e2,1 -34835e5,33 -34835e6,8 -34835e7,21 -34835e8,20 -34835e9,f -34835eb,47 -34835ec,15 -34835ed,ea -34835ef,e -34835f0,3c -34835f1,2 -34835f2,80 -34835f3,12 -34835f4,8c -34835f5,42 -34835f6,a5 -34835f7,d4 -34835f8,8e -34835f9,6f -34835fb,a4 -34835fd,f -34835fe,7a -34835ff,3 -3483600,14 -3483601,40 -3483603,5 -3483604,34 -3483605,2 -3483606,48 -3483607,30 -3483608,15 -3483609,e2 -348360b,7 -3483610,24 -3483611,19 -3483613,3 -3483614,10 -3483617,4 -3483618,34 -3483619,2 -348361a,63 -348361b,11 -348361c,15 -348361d,e2 -348361f,2 -3483624,24 -3483625,19 -3483627,3 -3483628,3 -3483629,e0 -348362b,8 -3483630,8d -3483631,ad -3483632,8a -3483633,a0 -3483634,34 -3483635,2 -3483636,80 -3483638,10 -3483639,4d -348363b,2 -3483640,10 -3483643,9 -3483644,3c -3483645,f -3483646,80 -3483647,1e -3483648,25 -3483649,ef -348364a,84 -348364b,a0 -348364c,81 -348364d,e2 -348364e,1c -348364f,bf -3483650,30 -3483651,42 -3483653,1 -3483654,10 -3483655,40 -3483657,2 -348365c,10 -348365f,2 -3483660,34 -3483661,2 -3483663,1 -3483664,a1 -3483665,e2 -3483666,1c -3483667,bf -3483668,3 -3483669,e0 -348366b,8 -3483671,33 -3483672,8 -3483673,21 -3483674,3c -3483675,2 -3483676,80 -3483677,12 -3483678,8c -3483679,42 -348367a,a5 -348367b,d4 -348367c,8e -348367d,6f -348367f,a4 -3483681,f -3483682,7a -3483683,3 -3483684,14 -3483685,40 -3483687,5 -3483688,34 -3483689,2 -348368a,48 -348368b,30 -348368c,15 -348368d,e2 -348368f,7 -3483694,24 -3483695,19 -3483697,3 -3483698,10 -348369b,4 -348369c,34 -348369d,2 -348369e,63 -348369f,11 -34836a0,15 -34836a1,e2 -34836a3,2 -34836a8,24 -34836a9,19 -34836ab,3 -34836ac,3 -34836ad,e0 -34836af,8 -34836b4,34 -34836b5,1 -34836b7,18 -34836b8,14 -34836b9,81 -34836bb,11 -34836c0,14 -34836c1,40 -34836c3,f -34836c8,3c -34836c9,a -34836ca,80 -34836cb,12 -34836cc,25 -34836cd,4a -34836ce,a5 -34836cf,d0 -34836d0,81 -34836d1,48 -34836d3,a6 -34836d4,31 -34836d5,8 -34836d7,20 -34836d8,11 -34836db,9 +34835e1,33 +34835e2,8 +34835e3,21 +34835e4,20 +34835e5,f +34835e7,47 +34835e8,15 +34835e9,ea +34835eb,e +34835ec,3c +34835ed,2 +34835ee,80 +34835ef,12 +34835f0,8c +34835f1,42 +34835f2,a5 +34835f3,d4 +34835f4,8e +34835f5,6f +34835f7,a4 +34835f9,f +34835fa,7a +34835fb,3 +34835fc,14 +34835fd,40 +34835ff,5 +3483600,34 +3483601,2 +3483602,48 +3483603,30 +3483604,15 +3483605,e2 +3483607,7 +348360c,24 +348360d,19 +348360f,3 +3483610,10 +3483613,4 +3483614,34 +3483615,2 +3483616,63 +3483617,11 +3483618,15 +3483619,e2 +348361b,2 +3483620,24 +3483621,19 +3483623,3 +3483624,3 +3483625,e0 +3483627,8 +348362c,8d +348362d,ad +348362e,8a +348362f,a0 +3483630,34 +3483631,2 +3483632,80 +3483634,10 +3483635,4d +3483637,2 +348363c,10 +348363f,9 +3483640,3c +3483641,f +3483642,80 +3483643,1e +3483644,25 +3483645,ef +3483646,84 +3483647,a0 +3483648,81 +3483649,e2 +348364a,1c +348364b,bf +348364c,30 +348364d,42 +348364f,1 +3483650,10 +3483651,40 +3483653,2 +3483658,10 +348365b,2 +348365c,34 +348365d,2 +348365f,1 +3483660,a1 +3483661,e2 +3483662,1c +3483663,bf +3483664,3 +3483665,e0 +3483667,8 +348366d,33 +348366e,8 +348366f,21 +3483670,3c +3483671,2 +3483672,80 +3483673,12 +3483674,8c +3483675,42 +3483676,a5 +3483677,d4 +3483678,8e +3483679,6f +348367b,a4 +348367d,f +348367e,7a +348367f,3 +3483680,14 +3483681,40 +3483683,5 +3483684,34 +3483685,2 +3483686,48 +3483687,30 +3483688,15 +3483689,e2 +348368b,7 +3483690,24 +3483691,19 +3483693,3 +3483694,10 +3483697,4 +3483698,34 +3483699,2 +348369a,63 +348369b,11 +348369c,15 +348369d,e2 +348369f,2 +34836a4,24 +34836a5,19 +34836a7,3 +34836a8,3 +34836a9,e0 +34836ab,8 +34836b0,34 +34836b1,1 +34836b3,18 +34836b4,14 +34836b5,81 +34836b7,11 +34836bc,14 +34836bd,40 +34836bf,f +34836c4,3c +34836c5,a +34836c6,80 +34836c7,12 +34836c8,25 +34836c9,4a +34836ca,a5 +34836cb,d0 +34836cc,81 +34836cd,48 +34836cf,a6 +34836d0,31 +34836d1,8 +34836d3,20 +34836d4,11 +34836d7,9 +34836d8,34 +34836d9,2 34836dc,34 34836dd,2 -34836e0,34 -34836e1,2 -34836e3,1 -34836e4,81 -34836e5,48 -34836e7,7b -34836e8,34 +34836df,1 +34836e0,81 +34836e1,48 +34836e3,7b +34836e4,34 +34836e5,9 +34836e7,7 +34836e8,11 34836e9,9 -34836eb,7 -34836ec,11 -34836ed,9 -34836ef,4 -34836f0,34 +34836eb,4 +34836ec,34 +34836ed,a +34836ef,8 +34836f0,11 34836f1,a -34836f3,8 -34836f4,11 -34836f5,a -34836f7,2 -34836fc,34 -34836fd,2 -3483700,3 -3483701,e0 -3483703,8 -3483708,a2 -3483709,25 -348370b,21 -348370c,3c +34836f3,2 +34836f8,34 +34836f9,2 +34836fc,3 +34836fd,e0 +34836ff,8 +3483704,a2 +3483705,25 +3483707,21 +3483708,3c +3483709,10 +348370a,80 +348370b,40 +348370c,26 348370d,10 -348370e,80 -348370f,40 +348370e,17 +348370f,fc 3483710,26 3483711,10 -3483712,17 -3483713,fc -3483714,26 -3483715,10 -3483717,4 -3483718,8e -3483719,a -348371c,11 -348371d,40 -348371f,b -3483725,a -3483726,7c -3483727,2 -3483728,1 -3483729,f1 -348372a,78 -348372b,20 -348372c,31 -348372d,58 -348372e,ff -3483731,18 -3483732,c2 -3483733,2 -3483734,17 -3483737,3 -3483738,31 -3483739,59 -348373b,ff -348373c,81 -348373d,ea -3483740,3 -3483741,2a -3483742,c8 -3483743,25 -3483744,8 -3483745,10 -3483746,d -3483747,c5 -3483748,a1 -3483749,f9 -348374c,3 -348374d,e0 -348374f,8 +3483713,4 +3483714,8e +3483715,a +3483718,11 +3483719,40 +348371b,b +3483721,a +3483722,7c +3483723,2 +3483724,1 +3483725,f1 +3483726,78 +3483727,20 +3483728,31 +3483729,58 +348372a,ff +348372d,18 +348372e,c2 +348372f,2 +3483730,17 +3483733,3 +3483734,31 +3483735,59 +3483737,ff +3483738,81 +3483739,ea +348373c,3 +348373d,2a +348373e,c8 +348373f,25 +3483740,8 +3483741,10 +3483742,d +3483743,c4 +3483744,a1 +3483745,f9 +3483748,3 +3483749,e0 +348374b,8 34b3000,ac 34b3001,86 34b3004,ac @@ -6556,7 +6563,7 @@ ec9ce7,7a 34b35f4,ac 34b35f5,70 34b35f6,64 -34b35f7,5c +34b35f7,30 34b35f8,24 34b35f9,42 34b35fa,29 @@ -6568,7 +6575,7 @@ ec9ce7,7a 34b3600,ac 34b3601,62 34b3602,64 -34b3603,4c +34b3603,20 34b3604,3c 34b3605,2 34b3606,80 @@ -6579,7 +6586,7 @@ ec9ce7,7a 34b360c,ac 34b360d,43 34b360e,64 -34b360f,3c +34b360f,10 34b3610,3c 34b3611,11 34b3612,80 @@ -6591,7 +6598,6 @@ ec9ce7,7a 34b3618,26 34b3619,24 34b361a,64 -34b361b,2c 34b361d,40 34b361e,80 34b361f,25 @@ -6617,7 +6623,6 @@ ec9ce7,7a 34b3638,ae 34b3639,22 34b363a,64 -34b363b,2c 34b363d,9 34b363e,48 34b363f,43 @@ -6628,7 +6633,7 @@ ec9ce7,7a 34b3644,24 34b3645,63 34b3646,65 -34b3647,6e +34b3647,42 34b364a,20 34b364b,25 34b364e,30 @@ -6644,7 +6649,6 @@ ec9ce7,7a 34b3658,8d 34b3659,5 34b365a,64 -34b365b,2c 34b365d,a4 34b365e,28 34b365f,21 @@ -6661,7 +6665,6 @@ ec9ce7,7a 34b3670,8d 34b3671,2 34b3672,64 -34b3673,2c 34b3675,44 34b3676,10 34b3677,21 @@ -6706,11 +6709,11 @@ ec9ce7,7a 34b36a8,ac 34b36a9,83 34b36aa,65 -34b36ab,50 +34b36ab,24 34b36ac,24 34b36ad,84 34b36ae,65 -34b36af,50 +34b36af,24 34b36b0,ac 34b36b1,82 34b36b3,4 @@ -6758,7 +6761,7 @@ ec9ce7,7a 34b36e8,ac 34b36e9,62 34b36ea,65 -34b36eb,34 +34b36eb,8 34b36ed,4 34b36ee,17 34b36ef,c3 @@ -6790,7 +6793,7 @@ ec9ce7,7a 34b3710,8c 34b3711,62 34b3712,65 -34b3713,34 +34b3713,8 34b3715,44 34b3716,20 34b3717,21 @@ -6800,7 +6803,7 @@ ec9ce7,7a 34b371c,ac 34b371d,64 34b371e,65 -34b371f,34 +34b371f,8 34b3720,27 34b3721,bd 34b3722,ff @@ -6872,7 +6875,7 @@ ec9ce7,7a 34b377c,c 34b377d,10 34b377e,18 -34b377f,81 +34b377f,76 34b3784,8f 34b3785,bf 34b3787,14 @@ -6882,28 +6885,30 @@ ec9ce7,7a 34b378c,27 34b378d,bd 34b378f,18 -34b3790,27 -34b3791,bd -34b3792,ff -34b3793,e0 -34b3794,af -34b3795,bf -34b3797,1c -34b3798,af -34b3799,b2 -34b379b,18 -34b379c,af -34b379d,b1 -34b379f,14 -34b37a0,af -34b37a1,b0 -34b37a3,10 -34b37a5,80 -34b37a6,80 -34b37a7,25 -34b37a9,a0 -34b37aa,88 -34b37ab,25 +34b3790,3c +34b3791,2 +34b3792,80 +34b3793,1c +34b3794,34 +34b3795,42 +34b3796,84 +34b3797,a0 +34b3798,3c +34b3799,3 +34b379b,1 +34b379d,43 +34b379e,10 +34b379f,21 +34b37a0,94 +34b37a1,43 +34b37a2,9 +34b37a3,34 +34b37a4,24 +34b37a5,2 +34b37a7,6 +34b37a8,14 +34b37a9,62 +34b37ab,19 34b37ac,3c 34b37ad,2 34b37ae,80 @@ -6919,4984 +6924,4947 @@ ec9ce7,7a 34b37ba,10 34b37bb,21 34b37bc,94 -34b37bd,43 +34b37bd,42 34b37be,9 -34b37bf,34 -34b37c0,24 -34b37c1,2 -34b37c3,6 -34b37c4,14 -34b37c5,62 -34b37c7,15 -34b37c9,c0 -34b37ca,90 -34b37cb,25 -34b37cc,3c -34b37cd,2 -34b37ce,80 -34b37cf,1c -34b37d0,34 +34b37bf,48 +34b37c0,14 +34b37c1,40 +34b37c3,13 +34b37c4,3c +34b37c5,2 +34b37c6,80 +34b37c7,1c +34b37c8,34 +34b37c9,42 +34b37ca,84 +34b37cb,a0 +34b37cd,43 +34b37ce,10 +34b37cf,21 +34b37d0,94 34b37d1,42 -34b37d2,84 -34b37d3,a0 -34b37d4,3c -34b37d5,3 -34b37d7,1 -34b37d9,43 -34b37da,10 -34b37db,21 -34b37dc,94 +34b37d2,9 +34b37d3,44 +34b37d4,14 +34b37d5,40 +34b37d7,e +34b37d8,3c +34b37d9,2 +34b37da,80 +34b37db,1c +34b37dc,34 34b37dd,42 -34b37de,9 -34b37df,48 -34b37e0,14 -34b37e1,40 -34b37e3,f -34b37e4,2 -34b37e5,40 -34b37e6,30 -34b37e7,25 +34b37de,84 +34b37df,a0 +34b37e0,84 +34b37e1,42 +34b37e3,14 +34b37e4,4 +34b37e5,41 +34b37e7,a 34b37e8,3c 34b37e9,2 34b37ea,80 34b37eb,1c -34b37ec,34 -34b37ed,42 -34b37ee,84 -34b37ef,a0 -34b37f1,43 -34b37f2,10 -34b37f3,21 -34b37f4,94 +34b37ec,27 +34b37ed,bd +34b37ee,ff +34b37ef,e8 +34b37f0,af +34b37f1,bf +34b37f3,14 +34b37f4,34 34b37f5,42 -34b37f6,9 -34b37f7,44 -34b37f8,14 -34b37f9,40 -34b37fb,a -34b37fc,2 -34b37fd,20 -34b37fe,28 -34b37ff,25 -34b3800,3c -34b3801,2 -34b3802,80 -34b3803,1c -34b3804,34 -34b3805,42 -34b3806,84 -34b3807,a0 -34b3808,84 -34b3809,42 -34b380b,14 -34b380c,4 -34b380d,41 -34b380f,5 -34b3814,c -34b3815,10 -34b3816,16 -34b3817,11 -34b381c,2 -34b381d,40 -34b381e,30 -34b381f,25 -34b3820,2 -34b3821,20 -34b3822,28 -34b3823,25 -34b3824,c -34b3825,10 -34b3826,14 -34b3828,2 -34b382a,20 -34b382b,25 -34b382c,8f +34b37f6,84 +34b37f7,a0 +34b37f8,8c +34b37f9,44 +34b37fc,c +34b37fd,10 +34b37fe,16 +34b37ff,6 +34b3800,24 +34b3801,84 +34b3802,2 +34b3803,a8 +34b3804,8f +34b3805,bf +34b3807,14 +34b3808,3 +34b3809,e0 +34b380b,8 +34b380c,27 +34b380d,bd +34b380f,18 +34b3810,3 +34b3811,e0 +34b3813,8 +34b3818,3c +34b3819,2 +34b381a,80 +34b381b,40 +34b381c,8c +34b381d,42 +34b381e,65 +34b3820,10 +34b3821,40 +34b3822,2 +34b3823,6b +34b3824,3c +34b3825,3 +34b3826,80 +34b3827,40 +34b3828,27 +34b3829,bd +34b382a,ff +34b382b,90 +34b382c,af 34b382d,bf -34b382f,1c -34b3830,8f -34b3831,b2 -34b3833,18 -34b3834,8f -34b3835,b1 -34b3837,14 -34b3838,8f -34b3839,b0 -34b383b,10 -34b383c,3 -34b383d,e0 -34b383f,8 -34b3840,27 -34b3841,bd -34b3843,20 -34b3844,3c -34b3845,2 -34b3846,80 -34b3847,40 -34b3848,8c -34b3849,42 -34b384a,65 -34b384b,2c -34b384c,10 -34b384d,40 -34b384e,2 -34b384f,6b -34b3850,3c -34b3851,3 -34b3852,80 -34b3853,40 -34b3854,27 -34b3855,bd -34b3856,ff -34b3857,90 -34b3858,af -34b3859,bf -34b385b,6c -34b385c,af -34b385d,be -34b385f,68 -34b3860,af -34b3861,b7 -34b3863,64 -34b3864,af -34b3865,b6 -34b3867,60 -34b3868,af -34b3869,b5 -34b386b,5c -34b386c,af -34b386d,b4 -34b386f,58 -34b3870,af -34b3871,b3 -34b3873,54 -34b3874,af -34b3875,b2 -34b3877,50 -34b3878,af -34b3879,b1 -34b387b,4c -34b387c,af -34b387d,b0 -34b387f,48 +34b382f,6c +34b3830,af +34b3831,be +34b3833,68 +34b3834,af +34b3835,b7 +34b3837,64 +34b3838,af +34b3839,b6 +34b383b,60 +34b383c,af +34b383d,b5 +34b383f,5c +34b3840,af +34b3841,b4 +34b3843,58 +34b3844,af +34b3845,b3 +34b3847,54 +34b3848,af +34b3849,b2 +34b384b,50 +34b384c,af +34b384d,b1 +34b384f,4c +34b3850,af +34b3851,b0 +34b3853,48 +34b3854,8c +34b3855,82 +34b3857,4 +34b3858,8c +34b3859,63 +34b385a,65 +34b385b,28 +34b385c,24 +34b385d,45 +34b385f,8 +34b3860,ac +34b3861,85 +34b3863,8 +34b3864,3c +34b3865,5 +34b3866,de +34b3868,ac +34b3869,45 +34b386c,ac +34b386d,43 +34b386f,4 +34b3870,3c +34b3871,2 +34b3872,80 +34b3873,11 +34b3874,34 +34b3875,42 +34b3876,a5 +34b3877,d0 +34b3878,94 +34b3879,54 +34b387a,f +34b387b,2e +34b387c,3c +34b387d,2 +34b387e,80 +34b387f,40 34b3880,8c -34b3881,82 -34b3883,4 -34b3884,8c -34b3885,63 -34b3886,65 -34b3887,54 +34b3881,42 +34b3882,65 +34b3883,c +34b3884,50 +34b3885,40 +34b3887,5 34b3888,24 -34b3889,45 -34b388b,8 -34b388c,ac -34b388d,85 -34b388f,8 -34b3890,3c -34b3891,5 -34b3892,de -34b3894,ac -34b3895,45 -34b3898,ac -34b3899,43 -34b389b,4 -34b389c,3c -34b389d,2 -34b389e,80 -34b389f,11 -34b38a0,34 -34b38a1,42 -34b38a2,a5 -34b38a3,d0 -34b38a4,94 -34b38a5,54 -34b38a6,f -34b38a7,2e -34b38a8,3c -34b38a9,2 -34b38aa,80 -34b38ab,40 -34b38ac,8c -34b38ad,42 -34b38ae,65 -34b38af,38 -34b38b0,50 -34b38b1,40 -34b38b3,5 -34b38b4,24 -34b38b5,8 -34b38b7,1 -34b38b8,32 -34b38b9,88 -34b38bb,1 -34b38bd,14 -34b38be,a0 -34b38bf,42 -34b38c0,10 -34b38c3,2 -34b38c4,32 -34b38c5,94 -34b38c7,1 -34b38c8,24 -34b38c9,14 -34b38cb,1 -34b38cc,3c -34b38cd,2 -34b38ce,80 -34b38cf,40 -34b38d0,8c -34b38d1,55 -34b38d2,65 -34b38d3,44 -34b38d4,12 -34b38d5,a0 -34b38d7,7 -34b38d8,2 -34b38d9,a0 -34b38da,18 -34b38db,25 -34b38dc,3c -34b38dd,2 -34b38de,80 +34b3889,8 +34b388b,1 +34b388c,32 +34b388d,88 +34b388f,1 +34b3891,14 +34b3892,a0 +34b3893,42 +34b3894,10 +34b3897,2 +34b3898,32 +34b3899,94 +34b389b,1 +34b389c,24 +34b389d,14 +34b389f,1 +34b38a0,3c +34b38a1,2 +34b38a2,80 +34b38a3,40 +34b38a4,8c +34b38a5,55 +34b38a6,65 +34b38a7,18 +34b38a8,12 +34b38a9,a0 +34b38ab,7 +34b38ac,2 +34b38ad,a0 +34b38ae,18 +34b38af,25 +34b38b0,3c +34b38b1,2 +34b38b2,80 +34b38b3,40 +34b38b4,94 +34b38b5,43 +34b38b6,64 +34b38b7,4 +34b38b9,3 +34b38ba,10 +34b38bb,40 +34b38bd,43 +34b38be,10 +34b38bf,21 +34b38c1,2 +34b38c2,10 +34b38c3,40 +34b38c4,24 +34b38c5,43 +34b38c7,2 +34b38c8,3c +34b38c9,2 +34b38ca,80 +34b38cb,40 +34b38cc,94 +34b38cd,42 +34b38ce,64 +34b38cf,4 +34b38d1,2 +34b38d2,10 +34b38d3,c0 +34b38d4,24 +34b38d5,42 +34b38d7,5e +34b38d9,43 +34b38da,10 +34b38db,21 +34b38dc,24 +34b38dd,3 +34b38de,1 34b38df,40 -34b38e0,94 -34b38e1,43 -34b38e2,64 -34b38e3,30 +34b38e1,62 +34b38e2,18 +34b38e3,23 34b38e5,3 -34b38e6,10 -34b38e7,40 -34b38e9,43 -34b38ea,10 +34b38e6,8f +34b38e7,c2 +34b38e8,2 +34b38e9,23 +34b38ea,88 34b38eb,21 -34b38ed,2 -34b38ee,10 -34b38ef,40 -34b38f0,24 -34b38f1,43 +34b38ed,11 +34b38ee,88 +34b38ef,43 +34b38f0,26 +34b38f1,23 34b38f3,2 -34b38f4,3c -34b38f5,2 -34b38f6,80 -34b38f7,40 -34b38f8,94 -34b38f9,42 -34b38fa,64 -34b38fb,30 -34b38fd,2 -34b38fe,10 -34b38ff,c0 -34b3900,24 -34b3901,42 -34b3903,5e -34b3905,43 -34b3906,10 -34b3907,21 -34b3908,24 -34b3909,3 -34b390a,1 -34b390b,40 -34b390d,62 -34b390e,18 -34b390f,23 -34b3911,3 -34b3912,8f -34b3913,c2 -34b3914,2 -34b3915,23 -34b3916,88 -34b3917,21 -34b3919,11 -34b391a,88 -34b391b,43 -34b391c,26 -34b391d,23 -34b391f,2 -34b3920,af -34b3921,a3 -34b3923,38 -34b3924,8c -34b3925,83 +34b38f4,af +34b38f5,a3 +34b38f7,38 +34b38f8,8c +34b38f9,83 +34b38fb,8 +34b38fc,24 +34b38fd,65 +34b38ff,8 +34b3900,ac +34b3901,85 +34b3903,8 +34b3904,3c +34b3905,5 +34b3906,fc +34b3907,ff +34b3908,34 +34b3909,a5 +34b390a,ff +34b390b,ff +34b390c,ac +34b390d,65 +34b3910,3c +34b3911,5 +34b3912,ff +34b3913,fd +34b3914,34 +34b3915,a5 +34b3916,f6 +34b3917,fb +34b3918,ac +34b3919,65 +34b391b,4 +34b391c,8c +34b391d,83 +34b391f,8 +34b3920,24 +34b3921,65 +34b3923,8 +34b3924,ac +34b3925,85 34b3927,8 -34b3928,24 -34b3929,65 -34b392b,8 +34b3928,3c +34b3929,5 +34b392a,fa 34b392c,ac -34b392d,85 -34b392f,8 -34b3930,3c +34b392d,65 +34b3930,24 34b3931,5 -34b3932,fc -34b3933,ff -34b3934,34 -34b3935,a5 -34b3936,ff -34b3937,ff -34b3938,ac -34b3939,65 -34b393c,3c -34b393d,5 -34b393e,ff -34b393f,fd -34b3940,34 -34b3941,a5 -34b3942,f6 -34b3943,fb -34b3944,ac -34b3945,65 -34b3947,4 -34b3948,8c -34b3949,83 -34b394b,8 -34b394c,24 -34b394d,65 -34b394f,8 -34b3950,ac -34b3951,85 -34b3953,8 -34b3954,3c -34b3955,5 -34b3956,fa -34b3958,ac -34b3959,65 -34b395c,24 -34b395d,5 -34b395f,d0 -34b3960,ac -34b3961,65 -34b3963,4 -34b3965,51 -34b3966,10 -34b3967,21 -34b3969,2 -34b396a,13 -34b396b,80 +34b3933,d0 +34b3934,ac +34b3935,65 +34b3937,4 +34b3939,51 +34b393a,10 +34b393b,21 +34b393d,2 +34b393e,13 +34b393f,80 +34b3940,3c +34b3941,3 +34b3943,ff +34b3944,34 +34b3945,63 +34b3946,f0 +34b3949,43 +34b394a,10 +34b394b,24 +34b394c,3c +34b394d,5 +34b394e,e4 +34b3950,24 +34b3951,a5 +34b3952,3 +34b3953,b8 +34b3955,45 +34b3956,10 +34b3957,25 +34b3958,af +34b3959,a2 +34b395b,20 +34b395d,11 +34b395e,13 +34b395f,80 +34b3961,43 +34b3962,10 +34b3963,24 +34b3964,34 +34b3965,42 +34b3967,8 +34b3968,af +34b3969,a2 +34b396b,24 34b396c,3c -34b396d,3 -34b396f,ff -34b3970,34 -34b3971,63 -34b3972,f0 -34b3975,43 -34b3976,10 -34b3977,24 +34b396d,2 +34b396e,e1 +34b3970,af +34b3971,a2 +34b3973,28 +34b3974,af +34b3975,a0 +34b3977,2c 34b3978,3c -34b3979,5 -34b397a,e4 -34b397c,24 -34b397d,a5 -34b397e,3 -34b397f,b8 -34b3981,45 -34b3982,10 -34b3983,25 -34b3984,af -34b3985,a2 -34b3987,20 -34b3989,11 -34b398a,13 -34b398b,80 -34b398d,43 -34b398e,10 -34b398f,24 -34b3990,34 -34b3991,42 -34b3993,8 -34b3994,af -34b3995,a2 -34b3997,24 -34b3998,3c -34b3999,2 -34b399a,e1 -34b399c,af -34b399d,a2 -34b399f,28 -34b39a0,af -34b39a1,a0 -34b39a3,2c -34b39a4,3c -34b39a5,2 -34b39a6,f1 -34b39a8,af -34b39a9,a2 -34b39ab,30 -34b39ac,3c -34b39ad,2 -34b39ae,4 -34b39b0,24 -34b39b1,42 -34b39b2,4 -34b39b4,af -34b39b5,a2 -34b39b7,34 -34b39b8,27 -34b39b9,a2 -34b39bb,20 -34b39bc,27 -34b39bd,a9 -34b39bf,38 -34b39c0,8c -34b39c1,83 +34b3979,2 +34b397a,f1 +34b397c,af +34b397d,a2 +34b397f,30 +34b3980,3c +34b3981,2 +34b3982,4 +34b3984,24 +34b3985,42 +34b3986,4 +34b3988,af +34b3989,a2 +34b398b,34 +34b398c,27 +34b398d,a2 +34b398f,20 +34b3990,27 +34b3991,a9 +34b3993,38 +34b3994,8c +34b3995,83 +34b3997,8 +34b3998,24 +34b3999,65 +34b399b,8 +34b399c,ac +34b399d,85 +34b399f,8 +34b39a0,8c +34b39a1,47 +34b39a3,4 +34b39a4,8c +34b39a5,46 +34b39a8,ac +34b39a9,67 +34b39ab,4 +34b39ac,24 +34b39ad,42 +34b39af,8 +34b39b0,15 +34b39b1,22 +34b39b2,ff +34b39b3,f8 +34b39b4,ac +34b39b5,66 +34b39b9,80 +34b39ba,80 +34b39bb,25 +34b39bc,8c +34b39bd,82 +34b39bf,8 +34b39c0,24 +34b39c1,43 34b39c3,8 -34b39c4,24 -34b39c5,65 +34b39c4,ac +34b39c5,83 34b39c7,8 -34b39c8,ac -34b39c9,85 -34b39cb,8 -34b39cc,8c -34b39cd,47 -34b39cf,4 -34b39d0,8c -34b39d1,46 -34b39d4,ac -34b39d5,67 -34b39d7,4 +34b39c8,3c +34b39c9,3 +34b39ca,e7 +34b39cc,ac +34b39cd,43 +34b39d0,ac +34b39d1,40 +34b39d3,4 +34b39d4,8c +34b39d5,82 +34b39d7,8 34b39d8,24 -34b39d9,42 +34b39d9,43 34b39db,8 -34b39dc,15 -34b39dd,22 -34b39de,ff -34b39df,f8 -34b39e0,ac -34b39e1,66 -34b39e5,80 -34b39e6,80 -34b39e7,25 -34b39e8,8c -34b39e9,82 -34b39eb,8 -34b39ec,24 -34b39ed,43 -34b39ef,8 -34b39f0,ac -34b39f1,83 -34b39f3,8 -34b39f4,3c -34b39f5,3 -34b39f6,e7 +34b39dc,ac +34b39dd,83 +34b39df,8 +34b39e0,3c +34b39e1,3 +34b39e2,fc +34b39e3,11 +34b39e4,34 +34b39e5,63 +34b39e6,96 +34b39e7,23 +34b39e8,ac +34b39e9,43 +34b39ec,3c +34b39ed,3 +34b39ee,ff +34b39ef,2f +34b39f0,34 +34b39f1,63 +34b39f2,ff +34b39f3,ff +34b39f4,11 +34b39f7,4d 34b39f8,ac 34b39f9,43 -34b39fc,ac -34b39fd,40 -34b39ff,4 -34b3a00,8c -34b3a01,82 -34b3a03,8 -34b3a04,24 -34b3a05,43 +34b39fb,4 +34b39fc,3c +34b39fd,5 +34b39fe,80 +34b39ff,40 +34b3a00,24 +34b3a01,a5 +34b3a02,64 +34b3a03,20 +34b3a04,94 +34b3a05,a7 34b3a07,8 -34b3a08,ac -34b3a09,83 -34b3a0b,8 -34b3a0c,3c -34b3a0d,3 -34b3a0e,fc -34b3a0f,11 -34b3a10,34 -34b3a11,63 -34b3a12,96 -34b3a13,23 -34b3a14,ac -34b3a15,43 -34b3a18,3c -34b3a19,3 -34b3a1a,ff -34b3a1b,2f -34b3a1c,34 -34b3a1d,63 -34b3a1e,ff -34b3a1f,ff -34b3a20,11 -34b3a23,4d -34b3a24,ac -34b3a25,43 -34b3a27,4 -34b3a28,3c -34b3a29,5 -34b3a2a,80 -34b3a2b,40 -34b3a2c,24 -34b3a2d,a5 -34b3a2e,64 -34b3a2f,4c -34b3a30,94 -34b3a31,a7 -34b3a33,8 -34b3a34,c -34b3a35,10 -34b3a36,14 -34b3a37,1c -34b3a3a,30 -34b3a3b,25 -34b3a3c,3c -34b3a3d,2 -34b3a3e,80 -34b3a3f,40 -34b3a40,8c -34b3a41,42 -34b3a42,65 -34b3a43,30 -34b3a44,18 -34b3a45,40 -34b3a47,44 -34b3a48,3c -34b3a49,2 -34b3a4a,80 +34b3a08,c +34b3a09,10 +34b3a0a,14 +34b3a0b,1c +34b3a0e,30 +34b3a0f,25 +34b3a10,3c +34b3a11,2 +34b3a12,80 +34b3a13,40 +34b3a14,8c +34b3a15,42 +34b3a16,65 +34b3a17,4 +34b3a18,18 +34b3a19,40 +34b3a1b,44 +34b3a1c,3c +34b3a1d,2 +34b3a1e,80 +34b3a1f,40 +34b3a20,3c +34b3a21,13 +34b3a22,80 +34b3a23,40 +34b3a24,26 +34b3a25,73 +34b3a26,64 +34b3a27,64 +34b3a2a,90 +34b3a2b,25 +34b3a2c,3c +34b3a2d,1e +34b3a2e,80 +34b3a2f,40 +34b3a30,3c +34b3a31,16 +34b3a32,80 +34b3a33,40 +34b3a34,26 +34b3a35,d6 +34b3a36,64 +34b3a37,40 +34b3a38,24 +34b3a39,42 +34b3a3a,64 +34b3a3b,50 +34b3a3c,af +34b3a3d,a2 +34b3a3f,3c +34b3a40,3c +34b3a41,2 +34b3a42,80 +34b3a43,40 +34b3a44,24 +34b3a45,42 +34b3a46,64 +34b3a47,20 +34b3a48,af +34b3a49,a2 34b3a4b,40 34b3a4c,3c -34b3a4d,13 +34b3a4d,17 34b3a4e,80 34b3a4f,40 -34b3a50,26 -34b3a51,73 -34b3a52,64 -34b3a53,90 -34b3a56,90 -34b3a57,25 -34b3a58,3c -34b3a59,1e -34b3a5a,80 -34b3a5b,40 -34b3a5c,3c -34b3a5d,16 -34b3a5e,80 -34b3a5f,40 -34b3a60,26 -34b3a61,d6 -34b3a62,64 -34b3a63,6c -34b3a64,24 +34b3a50,8f +34b3a51,c2 +34b3a52,65 +34b3a53,10 +34b3a54,50 +34b3a55,40 +34b3a57,b +34b3a58,92 +34b3a59,62 +34b3a5c,92 +34b3a5d,63 +34b3a60,3c +34b3a61,2 +34b3a62,80 +34b3a63,11 +34b3a64,34 34b3a65,42 -34b3a66,64 -34b3a67,7c -34b3a68,af -34b3a69,a2 -34b3a6b,3c -34b3a6c,3c -34b3a6d,2 -34b3a6e,80 -34b3a6f,40 -34b3a70,24 -34b3a71,42 -34b3a72,64 -34b3a73,4c -34b3a74,af -34b3a75,a2 -34b3a77,40 -34b3a78,3c -34b3a79,17 -34b3a7a,80 -34b3a7b,40 -34b3a7c,8f -34b3a7d,c2 -34b3a7e,65 -34b3a7f,3c -34b3a80,50 -34b3a81,40 -34b3a83,b -34b3a84,92 -34b3a85,62 -34b3a88,92 -34b3a89,63 -34b3a8c,3c -34b3a8d,2 -34b3a8e,80 -34b3a8f,11 -34b3a90,34 -34b3a91,42 -34b3a92,a5 -34b3a93,d0 -34b3a95,43 -34b3a96,10 -34b3a97,21 -34b3a98,90 -34b3a99,42 -34b3a9b,a8 -34b3a9d,2 -34b3a9e,10 -34b3a9f,42 -34b3aa0,30 -34b3aa1,42 -34b3aa3,1 -34b3aa4,50 -34b3aa5,40 -34b3aa7,28 -34b3aa8,26 -34b3aa9,52 -34b3aab,1 -34b3aac,92 +34b3a66,a5 +34b3a67,d0 +34b3a69,43 +34b3a6a,10 +34b3a6b,21 +34b3a6c,90 +34b3a6d,42 +34b3a6f,a8 +34b3a71,2 +34b3a72,10 +34b3a73,42 +34b3a74,30 +34b3a75,42 +34b3a77,1 +34b3a78,50 +34b3a79,40 +34b3a7b,28 +34b3a7c,26 +34b3a7d,52 +34b3a7f,1 +34b3a80,92 +34b3a81,62 +34b3a85,56 +34b3a86,10 +34b3a87,21 +34b3a88,80 +34b3a89,46 +34b3a8c,28 +34b3a8d,c2 +34b3a8f,3 +34b3a90,54 +34b3a91,40 +34b3a93,22 +34b3a94,26 +34b3a95,52 +34b3a97,1 +34b3a98,24 +34b3a99,c6 +34b3a9a,ff +34b3a9b,fd +34b3a9d,6 +34b3a9e,18 +34b3a9f,40 +34b3aa1,66 +34b3aa2,18 +34b3aa3,21 +34b3aa4,8f +34b3aa5,a2 +34b3aa7,3c +34b3aa9,62 +34b3aaa,18 +34b3aab,21 +34b3aac,90 34b3aad,62 -34b3ab1,56 -34b3ab2,10 -34b3ab3,21 -34b3ab4,80 -34b3ab5,46 -34b3ab8,28 -34b3ab9,c2 -34b3abb,3 -34b3abc,54 -34b3abd,40 -34b3abf,22 -34b3ac0,26 -34b3ac1,52 +34b3ab1,2 +34b3ab2,16 +34b3ab4,90 +34b3ab5,64 +34b3ab7,2 +34b3ab9,4 +34b3aba,22 +34b3abd,44 +34b3abe,10 +34b3abf,25 +34b3ac0,90 +34b3ac1,63 34b3ac3,1 -34b3ac4,24 -34b3ac5,c6 -34b3ac6,ff -34b3ac7,fd -34b3ac9,6 -34b3aca,18 -34b3acb,40 -34b3acd,66 -34b3ace,18 -34b3acf,21 -34b3ad0,8f -34b3ad1,a2 -34b3ad3,3c -34b3ad5,62 -34b3ad6,18 -34b3ad7,21 -34b3ad8,90 -34b3ad9,62 -34b3add,2 -34b3ade,16 -34b3ae0,90 +34b3ac5,3 +34b3ac6,1c +34b3ac9,43 +34b3aca,10 +34b3acb,25 +34b3acc,34 +34b3acd,42 +34b3acf,ff +34b3ad0,8e +34b3ad1,3 +34b3ad3,8 +34b3ad4,24 +34b3ad5,64 +34b3ad7,8 +34b3ad8,ae +34b3ad9,4 +34b3adb,8 +34b3adc,3c +34b3add,4 +34b3ade,fa +34b3ae0,ac 34b3ae1,64 -34b3ae3,2 -34b3ae5,4 -34b3ae6,22 -34b3ae9,44 -34b3aea,10 -34b3aeb,25 -34b3aec,90 -34b3aed,63 -34b3aef,1 -34b3af1,3 -34b3af2,1c -34b3af5,43 +34b3ae4,ac +34b3ae5,62 +34b3ae7,4 +34b3ae8,24 +34b3ae9,2 +34b3aeb,10 +34b3aec,af +34b3aed,a2 +34b3aef,18 +34b3af0,af +34b3af1,a2 +34b3af3,14 +34b3af5,12 34b3af6,10 -34b3af7,25 -34b3af8,34 -34b3af9,42 -34b3afb,ff -34b3afc,8e -34b3afd,3 -34b3aff,8 +34b3af7,c0 +34b3af9,52 +34b3afa,10 +34b3afb,21 +34b3afd,2 +34b3afe,10 +34b3aff,40 34b3b00,24 -34b3b01,64 -34b3b03,8 -34b3b04,ae -34b3b05,4 -34b3b07,8 -34b3b08,3c -34b3b09,4 -34b3b0a,fa -34b3b0c,ac -34b3b0d,64 -34b3b10,ac -34b3b11,62 -34b3b13,4 -34b3b14,24 -34b3b15,2 -34b3b17,10 -34b3b18,af -34b3b19,a2 -34b3b1b,18 -34b3b1c,af -34b3b1d,a2 -34b3b1f,14 -34b3b21,12 +34b3b01,42 +34b3b03,4 +34b3b04,af +34b3b05,a2 +34b3b07,10 +34b3b08,8f +34b3b09,a7 +34b3b0b,38 +34b3b0c,8f +34b3b0d,a5 +34b3b0f,40 +34b3b10,c +34b3b11,10 +34b3b12,14 +34b3b13,b1 +34b3b14,2 +34b3b16,20 +34b3b17,25 +34b3b18,26 +34b3b19,52 +34b3b1b,1 +34b3b1c,8e +34b3b1d,e2 +34b3b1e,65 +34b3b1f,4 +34b3b20,2 +34b3b21,42 34b3b22,10 -34b3b23,c0 -34b3b25,52 -34b3b26,10 -34b3b27,21 -34b3b29,2 -34b3b2a,10 -34b3b2b,40 -34b3b2c,24 -34b3b2d,42 -34b3b2f,4 -34b3b30,af -34b3b31,a2 -34b3b33,10 -34b3b34,8f -34b3b35,a7 -34b3b37,38 -34b3b38,8f -34b3b39,a5 -34b3b3b,40 -34b3b3c,c -34b3b3d,10 -34b3b3e,14 -34b3b3f,b1 -34b3b40,2 -34b3b42,20 -34b3b43,25 -34b3b44,26 -34b3b45,52 -34b3b47,1 -34b3b48,8e -34b3b49,e2 -34b3b4a,65 -34b3b4b,30 -34b3b4c,2 -34b3b4d,42 -34b3b4e,10 -34b3b4f,2a -34b3b50,14 -34b3b51,40 -34b3b52,ff -34b3b53,ca -34b3b54,26 -34b3b55,73 -34b3b57,c -34b3b58,8e -34b3b59,2 -34b3b5b,8 -34b3b5c,24 -34b3b5d,43 -34b3b5f,8 -34b3b60,ae -34b3b61,3 -34b3b63,8 +34b3b23,2a +34b3b24,14 +34b3b25,40 +34b3b26,ff +34b3b27,ca +34b3b28,26 +34b3b29,73 +34b3b2b,c +34b3b2c,8e +34b3b2d,2 +34b3b2f,8 +34b3b30,24 +34b3b31,43 +34b3b33,8 +34b3b34,ae +34b3b35,3 +34b3b37,8 +34b3b38,3c +34b3b39,3 +34b3b3a,fa +34b3b3c,ac +34b3b3d,43 +34b3b40,24 +34b3b41,3 +34b3b42,ff +34b3b43,ff +34b3b44,12 +34b3b45,80 +34b3b47,36 +34b3b48,ac +34b3b49,43 +34b3b4b,4 +34b3b4c,3c +34b3b4d,5 +34b3b4e,80 +34b3b4f,40 +34b3b50,24 +34b3b51,a5 +34b3b52,64 +34b3b53,30 +34b3b54,94 +34b3b55,a7 +34b3b57,8 +34b3b5a,30 +34b3b5b,25 +34b3b5c,c +34b3b5d,10 +34b3b5e,14 +34b3b5f,1c +34b3b60,2 +34b3b62,20 +34b3b63,25 34b3b64,3c -34b3b65,3 -34b3b66,fa -34b3b68,ac -34b3b69,43 -34b3b6c,24 -34b3b6d,3 -34b3b6e,ff -34b3b6f,ff -34b3b70,12 -34b3b71,80 -34b3b73,36 -34b3b74,ac -34b3b75,43 -34b3b77,4 -34b3b78,3c -34b3b79,5 -34b3b7a,80 -34b3b7b,40 -34b3b7c,24 -34b3b7d,a5 -34b3b7e,64 -34b3b7f,5c -34b3b80,94 -34b3b81,a7 -34b3b83,8 -34b3b86,30 -34b3b87,25 -34b3b88,c -34b3b89,10 -34b3b8a,14 -34b3b8b,1c -34b3b8c,2 -34b3b8e,20 -34b3b8f,25 -34b3b90,3c -34b3b91,2 -34b3b92,80 -34b3b93,40 -34b3b94,8c -34b3b95,42 -34b3b96,65 -34b3b97,30 -34b3b98,18 -34b3b99,40 -34b3b9a,1 -34b3b9b,96 +34b3b65,2 +34b3b66,80 +34b3b67,40 +34b3b68,8c +34b3b69,42 +34b3b6a,65 +34b3b6b,4 +34b3b6c,18 +34b3b6d,40 +34b3b6e,1 +34b3b6f,96 +34b3b70,3c +34b3b71,2 +34b3b72,80 +34b3b73,40 +34b3b74,3c +34b3b75,13 +34b3b76,80 +34b3b77,40 +34b3b78,26 +34b3b79,73 +34b3b7a,64 +34b3b7b,64 +34b3b7e,90 +34b3b7f,25 +34b3b80,3c +34b3b81,17 +34b3b82,80 +34b3b83,40 +34b3b84,3c +34b3b85,14 +34b3b86,80 +34b3b87,40 +34b3b88,26 +34b3b89,94 +34b3b8a,64 +34b3b8b,40 +34b3b8c,24 +34b3b8d,42 +34b3b8e,64 +34b3b8f,30 +34b3b90,af +34b3b91,a2 +34b3b93,3c +34b3b94,3c +34b3b95,1e +34b3b96,80 +34b3b97,11 +34b3b98,37 +34b3b99,de +34b3b9a,a5 +34b3b9b,d0 34b3b9c,3c -34b3b9d,2 +34b3b9d,16 34b3b9e,80 34b3b9f,40 -34b3ba0,3c -34b3ba1,13 -34b3ba2,80 -34b3ba3,40 -34b3ba4,26 -34b3ba5,73 -34b3ba6,64 -34b3ba7,90 -34b3baa,90 -34b3bab,25 -34b3bac,3c -34b3bad,17 -34b3bae,80 -34b3baf,40 -34b3bb0,3c -34b3bb1,14 -34b3bb2,80 -34b3bb3,40 -34b3bb4,26 -34b3bb5,94 -34b3bb6,64 -34b3bb7,6c -34b3bb8,24 +34b3ba0,8e +34b3ba1,e2 +34b3ba2,65 +34b3ba3,10 +34b3ba4,10 +34b3ba5,40 +34b3ba7,8 +34b3ba8,92 +34b3ba9,62 +34b3bac,3 +34b3bad,c2 +34b3bae,10 +34b3baf,21 +34b3bb0,90 +34b3bb1,42 +34b3bb3,a8 +34b3bb5,2 +34b3bb6,10 +34b3bb7,42 +34b3bb8,30 34b3bb9,42 -34b3bba,64 -34b3bbb,5c -34b3bbc,af -34b3bbd,a2 -34b3bbf,3c -34b3bc0,3c -34b3bc1,1e -34b3bc2,80 -34b3bc3,11 -34b3bc4,37 -34b3bc5,de -34b3bc6,a5 -34b3bc7,d0 -34b3bc8,3c -34b3bc9,16 -34b3bca,80 -34b3bcb,40 -34b3bcc,8e -34b3bcd,e2 -34b3bce,65 -34b3bcf,3c -34b3bd0,10 -34b3bd1,40 -34b3bd3,8 -34b3bd4,92 -34b3bd5,62 -34b3bd8,3 -34b3bd9,c2 -34b3bda,10 -34b3bdb,21 -34b3bdc,90 -34b3bdd,42 -34b3bdf,a8 -34b3be1,2 -34b3be2,10 -34b3be3,42 -34b3be4,30 -34b3be5,42 -34b3be7,1 -34b3be8,50 -34b3be9,40 -34b3beb,14 -34b3bec,26 +34b3bbb,1 +34b3bbc,50 +34b3bbd,40 +34b3bbf,14 +34b3bc0,26 +34b3bc1,52 +34b3bc3,1 +34b3bc4,92 +34b3bc5,62 +34b3bc9,54 +34b3bca,10 +34b3bcb,21 +34b3bcc,80 +34b3bcd,46 +34b3bd0,2c +34b3bd1,c2 +34b3bd3,3 +34b3bd4,50 +34b3bd5,40 +34b3bd7,e +34b3bd8,26 +34b3bd9,52 +34b3bdb,1 +34b3bdc,24 +34b3bdd,2 +34b3bdf,10 +34b3be0,af +34b3be1,a2 +34b3be3,18 +34b3be4,af +34b3be5,a2 +34b3be7,14 +34b3be9,12 +34b3bea,10 +34b3beb,c0 34b3bed,52 -34b3bef,1 -34b3bf0,92 -34b3bf1,62 -34b3bf5,54 -34b3bf6,10 -34b3bf7,21 -34b3bf8,80 -34b3bf9,46 -34b3bfc,2c -34b3bfd,c2 -34b3bff,3 -34b3c00,50 -34b3c01,40 -34b3c03,e -34b3c04,26 -34b3c05,52 -34b3c07,1 -34b3c08,24 -34b3c09,2 -34b3c0b,10 -34b3c0c,af -34b3c0d,a2 -34b3c0f,18 -34b3c10,af -34b3c11,a2 -34b3c13,14 -34b3c15,12 +34b3bee,10 +34b3bef,21 +34b3bf1,2 +34b3bf2,10 +34b3bf3,40 +34b3bf4,24 +34b3bf5,42 +34b3bf7,4 +34b3bf8,af +34b3bf9,a2 +34b3bfb,10 +34b3bfc,8f +34b3bfd,a7 +34b3bff,38 +34b3c00,8f +34b3c01,a5 +34b3c03,3c +34b3c04,c +34b3c05,10 +34b3c06,14 +34b3c07,b1 +34b3c08,2 +34b3c0a,20 +34b3c0b,25 +34b3c0c,26 +34b3c0d,52 +34b3c0f,1 +34b3c10,8e +34b3c11,c2 +34b3c12,65 +34b3c13,4 +34b3c14,2 +34b3c15,42 34b3c16,10 -34b3c17,c0 -34b3c19,52 -34b3c1a,10 -34b3c1b,21 -34b3c1d,2 -34b3c1e,10 -34b3c1f,40 -34b3c20,24 -34b3c21,42 -34b3c23,4 -34b3c24,af -34b3c25,a2 -34b3c27,10 -34b3c28,8f -34b3c29,a7 -34b3c2b,38 -34b3c2c,8f -34b3c2d,a5 -34b3c2f,3c -34b3c30,c -34b3c31,10 -34b3c32,14 -34b3c33,b1 -34b3c34,2 -34b3c36,20 -34b3c37,25 -34b3c38,26 -34b3c39,52 -34b3c3b,1 -34b3c3c,8e -34b3c3d,c2 -34b3c3e,65 -34b3c3f,30 -34b3c40,2 -34b3c41,42 -34b3c42,10 -34b3c43,2a -34b3c44,14 -34b3c45,40 -34b3c46,ff -34b3c47,e1 -34b3c48,26 -34b3c49,73 -34b3c4b,c -34b3c4c,3c -34b3c4d,2 -34b3c4e,80 -34b3c4f,40 -34b3c50,8c -34b3c51,42 -34b3c52,65 -34b3c53,30 -34b3c54,18 -34b3c55,40 -34b3c57,10 +34b3c17,2a +34b3c18,14 +34b3c19,40 +34b3c1a,ff +34b3c1b,e1 +34b3c1c,26 +34b3c1d,73 +34b3c1f,c +34b3c20,3c +34b3c21,2 +34b3c22,80 +34b3c23,40 +34b3c24,8c +34b3c25,42 +34b3c26,65 +34b3c27,4 +34b3c28,18 +34b3c29,40 +34b3c2b,10 +34b3c2c,26 +34b3c2d,31 +34b3c2f,14 +34b3c30,3c +34b3c31,12 +34b3c32,80 +34b3c33,40 +34b3c34,26 +34b3c35,52 +34b3c36,64 +34b3c37,66 +34b3c38,24 +34b3c39,14 +34b3c3b,5 +34b3c3e,98 +34b3c3f,25 +34b3c40,3c +34b3c41,16 +34b3c42,80 +34b3c43,40 +34b3c44,2 +34b3c45,80 +34b3c46,30 +34b3c47,25 +34b3c48,2 +34b3c49,20 +34b3c4a,28 +34b3c4b,25 +34b3c4c,c +34b3c4d,10 +34b3c4e,18 +34b3c4f,81 +34b3c50,2 +34b3c51,40 +34b3c52,20 +34b3c53,25 +34b3c54,26 +34b3c55,73 +34b3c57,1 34b3c58,26 -34b3c59,31 -34b3c5b,14 -34b3c5c,3c -34b3c5d,12 -34b3c5e,80 -34b3c5f,40 -34b3c60,26 -34b3c61,52 -34b3c62,64 -34b3c63,92 -34b3c64,24 -34b3c65,14 -34b3c67,5 -34b3c6a,98 -34b3c6b,25 +34b3c59,52 +34b3c5b,c +34b3c5c,8e +34b3c5d,c2 +34b3c5e,65 +34b3c5f,4 +34b3c60,2 +34b3c61,62 +34b3c62,10 +34b3c63,2a +34b3c64,14 +34b3c65,40 +34b3c66,ff +34b3c67,f7 +34b3c68,26 +34b3c69,94 +34b3c6b,12 34b3c6c,3c -34b3c6d,16 +34b3c6d,2 34b3c6e,80 34b3c6f,40 -34b3c70,2 -34b3c71,80 -34b3c72,30 -34b3c73,25 -34b3c74,2 -34b3c75,20 -34b3c76,28 -34b3c77,25 -34b3c78,c -34b3c79,10 -34b3c7a,18 -34b3c7b,8c -34b3c7c,2 -34b3c7d,40 -34b3c7e,20 -34b3c7f,25 -34b3c80,26 -34b3c81,73 +34b3c70,94 +34b3c71,42 +34b3c72,64 +34b3c73,4 +34b3c75,2 +34b3c76,10 +34b3c77,c0 +34b3c78,24 +34b3c79,42 +34b3c7b,2 +34b3c7d,51 +34b3c7e,88 +34b3c7f,21 +34b3c80,24 +34b3c81,7 34b3c83,1 -34b3c84,26 -34b3c85,52 -34b3c87,c -34b3c88,8e -34b3c89,c2 -34b3c8a,65 -34b3c8b,30 -34b3c8c,2 -34b3c8d,62 -34b3c8e,10 -34b3c8f,2a -34b3c90,14 -34b3c91,40 -34b3c92,ff -34b3c93,f7 -34b3c94,26 -34b3c95,94 -34b3c97,12 +34b3c84,24 +34b3c85,6 +34b3c87,11 +34b3c88,3c +34b3c89,5 +34b3c8a,80 +34b3c8b,40 +34b3c8c,24 +34b3c8d,a5 +34b3c8e,64 +34b3c8f,10 +34b3c90,c +34b3c91,10 +34b3c92,14 +34b3c93,1c +34b3c94,2 +34b3c96,20 +34b3c97,25 34b3c98,3c 34b3c99,2 34b3c9a,80 34b3c9b,40 -34b3c9c,94 +34b3c9c,8c 34b3c9d,42 -34b3c9e,64 -34b3c9f,30 -34b3ca1,2 -34b3ca2,10 -34b3ca3,c0 -34b3ca4,24 -34b3ca5,42 -34b3ca7,2 -34b3ca9,51 -34b3caa,88 -34b3cab,21 -34b3cac,24 -34b3cad,7 -34b3caf,1 +34b3c9e,65 +34b3c9f,4 +34b3ca0,18 +34b3ca1,40 +34b3ca3,2a +34b3ca4,3c +34b3ca5,1e +34b3ca6,80 +34b3ca7,11 +34b3ca8,3c +34b3ca9,13 +34b3caa,80 +34b3cab,40 +34b3cac,26 +34b3cad,73 +34b3cae,64 +34b3caf,64 34b3cb0,24 -34b3cb1,6 -34b3cb3,11 -34b3cb4,3c -34b3cb5,5 -34b3cb6,80 -34b3cb7,40 -34b3cb8,24 -34b3cb9,a5 -34b3cba,64 -34b3cbb,3c -34b3cbc,c -34b3cbd,10 -34b3cbe,14 -34b3cbf,1c -34b3cc0,2 -34b3cc2,20 -34b3cc3,25 -34b3cc4,3c -34b3cc5,2 -34b3cc6,80 +34b3cb1,14 +34b3cb3,5 +34b3cb6,90 +34b3cb7,25 +34b3cb8,2 +34b3cb9,60 +34b3cba,b0 +34b3cbb,25 +34b3cbc,37 +34b3cbd,de +34b3cbe,a5 +34b3cbf,d0 +34b3cc0,3c +34b3cc1,17 +34b3cc2,80 +34b3cc3,40 +34b3cc5,12 +34b3cc6,10 34b3cc7,40 -34b3cc8,8c -34b3cc9,42 -34b3cca,65 -34b3ccb,30 -34b3ccc,18 -34b3ccd,40 -34b3ccf,2a -34b3cd0,3c -34b3cd1,1e -34b3cd2,80 -34b3cd3,11 -34b3cd4,3c -34b3cd5,13 -34b3cd6,80 -34b3cd7,40 -34b3cd8,26 -34b3cd9,73 -34b3cda,64 -34b3cdb,90 -34b3cdc,24 -34b3cdd,14 -34b3cdf,5 -34b3ce2,90 -34b3ce3,25 -34b3ce4,2 -34b3ce5,60 -34b3ce6,b0 -34b3ce7,25 -34b3ce8,37 -34b3ce9,de -34b3cea,a5 -34b3ceb,d0 -34b3cec,3c -34b3ced,17 -34b3cee,80 -34b3cef,40 -34b3cf1,12 -34b3cf2,10 -34b3cf3,40 -34b3cf5,52 -34b3cf6,10 -34b3cf7,21 -34b3cf9,2 -34b3cfa,10 -34b3cfb,80 -34b3cfd,56 -34b3cfe,10 -34b3cff,21 -34b3d00,80 -34b3d01,42 -34b3d03,1 -34b3d04,4 -34b3d05,43 -34b3d07,17 -34b3d08,26 -34b3d09,52 -34b3d0b,1 -34b3d0c,92 -34b3d0d,62 -34b3d10,3 -34b3d11,c2 -34b3d12,10 -34b3d13,21 -34b3d14,90 +34b3cc9,52 +34b3cca,10 +34b3ccb,21 +34b3ccd,2 +34b3cce,10 +34b3ccf,80 +34b3cd1,56 +34b3cd2,10 +34b3cd3,21 +34b3cd4,80 +34b3cd5,42 +34b3cd7,1 +34b3cd8,4 +34b3cd9,43 +34b3cdb,17 +34b3cdc,26 +34b3cdd,52 +34b3cdf,1 +34b3ce0,92 +34b3ce1,62 +34b3ce4,3 +34b3ce5,c2 +34b3ce6,10 +34b3ce7,21 +34b3ce8,90 +34b3ce9,42 +34b3ceb,bc +34b3ced,2 +34b3cee,1e +34b3cf1,3 +34b3cf2,1e +34b3cf3,3 +34b3cf4,28 +34b3cf5,63 +34b3cf7,a +34b3cf8,50 +34b3cf9,60 +34b3cfb,1 +34b3cfc,24 +34b3cfd,2 +34b3cff,9 +34b3d00,24 +34b3d01,3 +34b3d02,30 +34b3d04,a7 +34b3d05,a3 +34b3d07,20 +34b3d09,40 +34b3d0a,18 +34b3d0b,25 +34b3d0d,2 +34b3d0e,16 +34b3d11,2 +34b3d12,16 +34b3d13,3 +34b3d14,4 34b3d15,42 -34b3d17,bc -34b3d19,2 -34b3d1a,1e -34b3d1d,3 -34b3d1e,1e -34b3d1f,3 -34b3d20,28 -34b3d21,63 -34b3d23,a -34b3d24,50 -34b3d25,60 -34b3d27,1 -34b3d28,24 -34b3d29,2 -34b3d2b,9 -34b3d2c,24 -34b3d2d,3 -34b3d2e,30 -34b3d30,a7 -34b3d31,a3 +34b3d17,1 +34b3d1a,18 +34b3d1b,25 +34b3d1c,24 +34b3d1d,63 +34b3d1f,30 +34b3d20,a3 +34b3d21,a3 +34b3d23,20 +34b3d24,2 +34b3d25,80 +34b3d26,30 +34b3d27,25 +34b3d28,2 +34b3d29,20 +34b3d2a,28 +34b3d2b,25 +34b3d2c,c +34b3d2d,10 +34b3d2e,18 +34b3d2f,81 +34b3d30,27 +34b3d31,a4 34b3d33,20 -34b3d35,40 -34b3d36,18 -34b3d37,25 -34b3d39,2 -34b3d3a,16 -34b3d3d,2 -34b3d3e,16 -34b3d3f,3 -34b3d40,4 +34b3d34,26 +34b3d35,52 +34b3d37,1 +34b3d38,26 +34b3d39,73 +34b3d3b,c +34b3d3c,8e +34b3d3d,e2 +34b3d3e,65 +34b3d3f,4 +34b3d40,2 34b3d41,42 -34b3d43,1 -34b3d46,18 -34b3d47,25 -34b3d48,24 -34b3d49,63 -34b3d4b,30 -34b3d4c,a3 -34b3d4d,a3 -34b3d4f,20 -34b3d50,2 -34b3d51,80 -34b3d52,30 -34b3d53,25 -34b3d54,2 -34b3d55,20 -34b3d56,28 -34b3d57,25 -34b3d58,c -34b3d59,10 -34b3d5a,18 -34b3d5b,8c -34b3d5c,27 -34b3d5d,a4 -34b3d5f,20 -34b3d60,26 -34b3d61,52 -34b3d63,1 -34b3d64,26 -34b3d65,73 -34b3d67,c -34b3d68,8e -34b3d69,e2 -34b3d6a,65 -34b3d6b,30 -34b3d6c,2 +34b3d42,10 +34b3d43,2a +34b3d44,14 +34b3d45,40 +34b3d46,ff +34b3d47,df +34b3d48,26 +34b3d49,94 +34b3d4b,12 +34b3d4c,26 +34b3d4d,3e +34b3d4f,12 +34b3d50,24 +34b3d51,7 +34b3d53,1 +34b3d54,24 +34b3d55,6 +34b3d57,e +34b3d58,3c +34b3d59,5 +34b3d5a,80 +34b3d5b,40 +34b3d5c,24 +34b3d5d,a5 +34b3d5e,64 +34b3d5f,10 +34b3d60,c +34b3d61,10 +34b3d62,14 +34b3d63,1c +34b3d64,2 +34b3d66,20 +34b3d67,25 +34b3d68,3c +34b3d69,2 +34b3d6a,80 +34b3d6b,40 +34b3d6c,8c 34b3d6d,42 -34b3d6e,10 -34b3d6f,2a -34b3d70,14 +34b3d6e,65 +34b3d6f,4 +34b3d70,18 34b3d71,40 -34b3d72,ff -34b3d73,df -34b3d74,26 -34b3d75,94 -34b3d77,12 -34b3d78,26 -34b3d79,3e -34b3d7b,12 -34b3d7c,24 -34b3d7d,7 -34b3d7f,1 -34b3d80,24 -34b3d81,6 -34b3d83,e -34b3d84,3c -34b3d85,5 -34b3d86,80 -34b3d87,40 -34b3d88,24 -34b3d89,a5 -34b3d8a,64 -34b3d8b,3c -34b3d8c,c -34b3d8d,10 -34b3d8e,14 -34b3d8f,1c -34b3d90,2 -34b3d92,20 -34b3d93,25 +34b3d73,2a +34b3d74,3c +34b3d75,2 +34b3d76,80 +34b3d77,40 +34b3d78,3c +34b3d79,13 +34b3d7a,80 +34b3d7b,40 +34b3d7c,26 +34b3d7d,73 +34b3d7e,64 +34b3d7f,64 +34b3d82,90 +34b3d83,25 +34b3d84,2 +34b3d85,60 +34b3d86,a0 +34b3d87,25 +34b3d88,3c +34b3d89,17 +34b3d8a,80 +34b3d8b,11 +34b3d8c,24 +34b3d8d,42 +34b3d8e,64 +34b3d8f,10 +34b3d90,af +34b3d91,a2 +34b3d93,38 34b3d94,3c -34b3d95,2 +34b3d95,16 34b3d96,80 34b3d97,40 -34b3d98,8c -34b3d99,42 -34b3d9a,65 -34b3d9b,30 -34b3d9c,18 -34b3d9d,40 -34b3d9f,2a -34b3da0,3c +34b3d99,12 +34b3d9a,10 +34b3d9b,40 +34b3d9d,52 +34b3d9e,10 +34b3d9f,21 34b3da1,2 -34b3da2,80 -34b3da3,40 -34b3da4,3c -34b3da5,13 -34b3da6,80 -34b3da7,40 -34b3da8,26 -34b3da9,73 -34b3daa,64 -34b3dab,90 -34b3dae,90 -34b3daf,25 -34b3db0,2 -34b3db1,60 -34b3db2,a0 -34b3db3,25 -34b3db4,3c -34b3db5,17 -34b3db6,80 -34b3db7,11 -34b3db8,24 -34b3db9,42 -34b3dba,64 -34b3dbb,3c -34b3dbc,af -34b3dbd,a2 -34b3dbf,38 -34b3dc0,3c -34b3dc1,16 -34b3dc2,80 -34b3dc3,40 -34b3dc5,12 -34b3dc6,10 -34b3dc7,40 -34b3dc9,52 -34b3dca,10 -34b3dcb,21 -34b3dcd,2 -34b3dce,10 -34b3dcf,80 -34b3dd1,54 -34b3dd2,10 -34b3dd3,21 -34b3dd4,90 -34b3dd5,42 -34b3dd7,1 -34b3dd8,30 -34b3dd9,42 -34b3ddb,40 -34b3ddc,50 -34b3ddd,40 -34b3ddf,16 -34b3de0,26 -34b3de1,52 -34b3de3,1 -34b3de4,36 -34b3de5,e2 -34b3de6,a5 -34b3de7,d0 -34b3de8,92 -34b3de9,63 -34b3ded,43 -34b3dee,10 -34b3def,21 -34b3df0,90 -34b3df1,42 -34b3df3,a8 -34b3df4,30 -34b3df5,42 -34b3df7,1 -34b3df8,50 -34b3df9,40 -34b3dfb,f -34b3dfc,26 -34b3dfd,52 -34b3dff,1 -34b3e00,24 -34b3e01,2 -34b3e03,10 -34b3e04,af -34b3e05,a2 -34b3e07,18 -34b3e08,af -34b3e09,a2 -34b3e0b,14 -34b3e0d,12 -34b3e0e,10 -34b3e0f,c0 -34b3e11,52 +34b3da2,10 +34b3da3,80 +34b3da5,54 +34b3da6,10 +34b3da7,21 +34b3da8,90 +34b3da9,42 +34b3dab,1 +34b3dac,30 +34b3dad,42 +34b3daf,40 +34b3db0,50 +34b3db1,40 +34b3db3,16 +34b3db4,26 +34b3db5,52 +34b3db7,1 +34b3db8,36 +34b3db9,e2 +34b3dba,a5 +34b3dbb,d0 +34b3dbc,92 +34b3dbd,63 +34b3dc1,43 +34b3dc2,10 +34b3dc3,21 +34b3dc4,90 +34b3dc5,42 +34b3dc7,a8 +34b3dc8,30 +34b3dc9,42 +34b3dcb,1 +34b3dcc,50 +34b3dcd,40 +34b3dcf,f +34b3dd0,26 +34b3dd1,52 +34b3dd3,1 +34b3dd4,24 +34b3dd5,2 +34b3dd7,10 +34b3dd8,af +34b3dd9,a2 +34b3ddb,18 +34b3ddc,af +34b3ddd,a2 +34b3ddf,14 +34b3de1,12 +34b3de2,10 +34b3de3,c0 +34b3de5,52 +34b3de6,10 +34b3de7,21 +34b3de9,2 +34b3dea,10 +34b3deb,40 +34b3dec,24 +34b3ded,42 +34b3def,4 +34b3df0,af +34b3df1,a2 +34b3df3,10 +34b3df4,3 +34b3df5,c0 +34b3df6,38 +34b3df7,25 +34b3dfa,30 +34b3dfb,25 +34b3dfc,8f +34b3dfd,a5 +34b3dff,38 +34b3e00,c +34b3e01,10 +34b3e02,14 +34b3e03,b1 +34b3e04,2 +34b3e06,20 +34b3e07,25 +34b3e08,26 +34b3e09,52 +34b3e0b,1 +34b3e0c,8e +34b3e0d,c2 +34b3e0e,65 +34b3e0f,4 +34b3e10,2 +34b3e11,42 34b3e12,10 -34b3e13,21 -34b3e15,2 -34b3e16,10 -34b3e17,40 -34b3e18,24 -34b3e19,42 -34b3e1b,4 -34b3e1c,af -34b3e1d,a2 -34b3e1f,10 -34b3e20,3 -34b3e21,c0 -34b3e22,38 -34b3e23,25 -34b3e26,30 -34b3e27,25 -34b3e28,8f +34b3e13,2a +34b3e14,14 +34b3e15,40 +34b3e16,ff +34b3e17,e0 +34b3e18,26 +34b3e19,73 +34b3e1b,c +34b3e1c,24 +34b3e1d,7 +34b3e1f,1 +34b3e20,24 +34b3e21,6 +34b3e23,a +34b3e24,3c +34b3e25,5 +34b3e26,80 +34b3e27,40 +34b3e28,24 34b3e29,a5 -34b3e2b,38 +34b3e2a,64 +34b3e2b,10 34b3e2c,c 34b3e2d,10 34b3e2e,14 -34b3e2f,b1 +34b3e2f,1c 34b3e30,2 34b3e32,20 34b3e33,25 -34b3e34,26 -34b3e35,52 -34b3e37,1 -34b3e38,8e -34b3e39,c2 +34b3e34,3c +34b3e35,2 +34b3e36,80 +34b3e37,40 +34b3e38,8c +34b3e39,42 34b3e3a,65 -34b3e3b,30 -34b3e3c,2 -34b3e3d,42 -34b3e3e,10 -34b3e3f,2a -34b3e40,14 -34b3e41,40 -34b3e42,ff -34b3e43,e0 -34b3e44,26 -34b3e45,73 -34b3e47,c -34b3e48,24 -34b3e49,7 -34b3e4b,1 -34b3e4c,24 -34b3e4d,6 -34b3e4f,a +34b3e3b,4 +34b3e3c,58 +34b3e3d,40 +34b3e3f,29 +34b3e40,26 +34b3e41,3e +34b3e43,24 +34b3e46,90 +34b3e47,25 +34b3e48,3c +34b3e49,13 +34b3e4a,80 +34b3e4b,40 +34b3e4c,26 +34b3e4d,73 +34b3e4e,64 +34b3e4f,64 34b3e50,3c -34b3e51,5 +34b3e51,16 34b3e52,80 -34b3e53,40 -34b3e54,24 -34b3e55,a5 -34b3e56,64 -34b3e57,3c -34b3e58,c -34b3e59,10 -34b3e5a,14 -34b3e5b,1c -34b3e5c,2 -34b3e5e,20 -34b3e5f,25 -34b3e60,3c -34b3e61,2 -34b3e62,80 +34b3e53,11 +34b3e54,3c +34b3e55,17 +34b3e56,80 +34b3e57,40 +34b3e58,26 +34b3e59,f7 +34b3e5a,64 +34b3e5b,10 +34b3e5c,3c +34b3e5d,14 +34b3e5e,80 +34b3e5f,40 +34b3e61,12 +34b3e62,10 34b3e63,40 -34b3e64,8c -34b3e65,42 -34b3e66,65 -34b3e67,30 -34b3e68,58 -34b3e69,40 -34b3e6b,29 -34b3e6c,26 -34b3e6d,3e -34b3e6f,24 -34b3e72,90 -34b3e73,25 -34b3e74,3c -34b3e75,13 -34b3e76,80 -34b3e77,40 -34b3e78,26 -34b3e79,73 -34b3e7a,64 -34b3e7b,90 -34b3e7c,3c -34b3e7d,16 -34b3e7e,80 -34b3e7f,11 -34b3e80,3c -34b3e81,17 -34b3e82,80 -34b3e83,40 -34b3e84,26 -34b3e85,f7 -34b3e86,64 -34b3e87,3c +34b3e65,52 +34b3e66,10 +34b3e67,21 +34b3e69,2 +34b3e6a,10 +34b3e6b,80 +34b3e6d,53 +34b3e6e,10 +34b3e6f,21 +34b3e70,90 +34b3e71,42 +34b3e73,1 +34b3e74,30 +34b3e75,42 +34b3e77,20 +34b3e78,50 +34b3e79,40 +34b3e7b,15 +34b3e7c,26 +34b3e7d,52 +34b3e7f,1 +34b3e80,36 +34b3e81,c2 +34b3e82,a5 +34b3e83,d0 +34b3e84,8c +34b3e85,42 +34b3e87,a4 34b3e88,3c -34b3e89,14 -34b3e8a,80 +34b3e89,3 34b3e8b,40 -34b3e8d,12 +34b3e8d,43 34b3e8e,10 -34b3e8f,40 -34b3e91,52 -34b3e92,10 -34b3e93,21 -34b3e95,2 -34b3e96,10 -34b3e97,80 -34b3e99,53 -34b3e9a,10 -34b3e9b,21 -34b3e9c,90 -34b3e9d,42 -34b3e9f,1 -34b3ea0,30 -34b3ea1,42 -34b3ea3,20 -34b3ea4,50 -34b3ea5,40 -34b3ea7,15 -34b3ea8,26 +34b3e8f,24 +34b3e90,50 +34b3e91,40 +34b3e93,f +34b3e94,26 +34b3e95,52 +34b3e97,1 +34b3e98,24 +34b3e99,2 +34b3e9b,10 +34b3e9c,af +34b3e9d,a2 +34b3e9f,18 +34b3ea0,af +34b3ea1,a2 +34b3ea3,14 +34b3ea5,12 +34b3ea6,10 +34b3ea7,c0 34b3ea9,52 -34b3eab,1 -34b3eac,36 -34b3ead,c2 -34b3eae,a5 -34b3eaf,d0 -34b3eb0,8c +34b3eaa,10 +34b3eab,21 +34b3ead,2 +34b3eae,10 +34b3eaf,40 +34b3eb0,24 34b3eb1,42 -34b3eb3,a4 -34b3eb4,3c -34b3eb5,3 -34b3eb7,40 -34b3eb9,43 -34b3eba,10 -34b3ebb,24 -34b3ebc,50 -34b3ebd,40 -34b3ebf,f -34b3ec0,26 -34b3ec1,52 -34b3ec3,1 -34b3ec4,24 -34b3ec5,2 -34b3ec7,10 -34b3ec8,af -34b3ec9,a2 -34b3ecb,18 -34b3ecc,af -34b3ecd,a2 -34b3ecf,14 -34b3ed1,12 -34b3ed2,10 -34b3ed3,c0 -34b3ed5,52 +34b3eb3,4 +34b3eb4,af +34b3eb5,a2 +34b3eb7,10 +34b3eb8,3 +34b3eb9,c0 +34b3eba,38 +34b3ebb,25 +34b3ebe,30 +34b3ebf,25 +34b3ec0,2 +34b3ec1,e0 +34b3ec2,28 +34b3ec3,25 +34b3ec4,c +34b3ec5,10 +34b3ec6,14 +34b3ec7,b1 +34b3ec8,2 +34b3eca,20 +34b3ecb,25 +34b3ecc,26 +34b3ecd,52 +34b3ecf,1 +34b3ed0,8e +34b3ed1,82 +34b3ed2,65 +34b3ed3,4 +34b3ed4,2 +34b3ed5,42 34b3ed6,10 -34b3ed7,21 -34b3ed9,2 -34b3eda,10 -34b3edb,40 -34b3edc,24 -34b3edd,42 -34b3edf,4 -34b3ee0,af -34b3ee1,a2 -34b3ee3,10 -34b3ee4,3 -34b3ee5,c0 -34b3ee6,38 -34b3ee7,25 -34b3eea,30 -34b3eeb,25 -34b3eec,2 -34b3eed,e0 -34b3eee,28 -34b3eef,25 -34b3ef0,c -34b3ef1,10 -34b3ef2,14 -34b3ef3,b1 -34b3ef4,2 -34b3ef6,20 -34b3ef7,25 -34b3ef8,26 -34b3ef9,52 -34b3efb,1 -34b3efc,8e -34b3efd,82 -34b3efe,65 -34b3eff,30 -34b3f00,2 +34b3ed7,2a +34b3ed8,14 +34b3ed9,40 +34b3eda,ff +34b3edb,e2 +34b3edd,12 +34b3ede,10 +34b3edf,40 +34b3ee0,26 +34b3ee1,3e +34b3ee3,24 +34b3ee4,24 +34b3ee5,7 +34b3ee7,1 +34b3ee8,24 +34b3ee9,6 +34b3eeb,10 +34b3eec,3c +34b3eed,5 +34b3eee,80 +34b3eef,40 +34b3ef0,24 +34b3ef1,a5 +34b3ef2,64 +34b3ef3,10 +34b3ef4,c +34b3ef5,10 +34b3ef6,14 +34b3ef7,1c +34b3ef8,2 +34b3efa,20 +34b3efb,25 +34b3efc,3c +34b3efd,2 +34b3efe,80 +34b3eff,40 +34b3f00,8c 34b3f01,42 -34b3f02,10 -34b3f03,2a -34b3f04,14 +34b3f02,65 +34b3f03,4 +34b3f04,18 34b3f05,40 -34b3f06,ff -34b3f07,e2 -34b3f09,12 -34b3f0a,10 +34b3f07,2b +34b3f08,3c +34b3f09,13 +34b3f0a,80 34b3f0b,40 34b3f0c,26 -34b3f0d,3e -34b3f0f,24 -34b3f10,24 -34b3f11,7 -34b3f13,1 -34b3f14,24 -34b3f15,6 -34b3f17,10 +34b3f0d,73 +34b3f0e,64 +34b3f0f,64 +34b3f12,90 +34b3f13,25 +34b3f14,2 +34b3f15,60 +34b3f16,a0 +34b3f17,25 34b3f18,3c -34b3f19,5 +34b3f19,17 34b3f1a,80 -34b3f1b,40 -34b3f1c,24 -34b3f1d,a5 -34b3f1e,64 -34b3f1f,3c -34b3f20,c -34b3f21,10 -34b3f22,14 -34b3f23,1c -34b3f24,2 -34b3f26,20 -34b3f27,25 +34b3f1b,11 +34b3f1c,3c +34b3f1d,2 +34b3f1e,80 +34b3f1f,40 +34b3f20,24 +34b3f21,42 +34b3f22,64 +34b3f23,10 +34b3f24,af +34b3f25,a2 +34b3f27,38 34b3f28,3c -34b3f29,2 +34b3f29,16 34b3f2a,80 34b3f2b,40 -34b3f2c,8c -34b3f2d,42 -34b3f2e,65 -34b3f2f,30 -34b3f30,18 -34b3f31,40 -34b3f33,2b -34b3f34,3c -34b3f35,13 -34b3f36,80 -34b3f37,40 -34b3f38,26 -34b3f39,73 -34b3f3a,64 -34b3f3b,90 -34b3f3e,90 -34b3f3f,25 -34b3f40,2 -34b3f41,60 -34b3f42,a0 -34b3f43,25 -34b3f44,3c -34b3f45,17 -34b3f46,80 -34b3f47,11 -34b3f48,3c -34b3f49,2 -34b3f4a,80 -34b3f4b,40 -34b3f4c,24 -34b3f4d,42 -34b3f4e,64 -34b3f4f,3c -34b3f50,af -34b3f51,a2 -34b3f53,38 -34b3f54,3c -34b3f55,16 -34b3f56,80 -34b3f57,40 -34b3f59,12 -34b3f5a,10 -34b3f5b,40 -34b3f5d,52 +34b3f2d,12 +34b3f2e,10 +34b3f2f,40 +34b3f31,52 +34b3f32,10 +34b3f33,21 +34b3f35,2 +34b3f36,10 +34b3f37,80 +34b3f39,54 +34b3f3a,10 +34b3f3b,21 +34b3f3c,90 +34b3f3d,42 +34b3f3f,1 +34b3f40,30 +34b3f41,42 +34b3f43,10 +34b3f44,50 +34b3f45,40 +34b3f47,17 +34b3f48,26 +34b3f49,52 +34b3f4b,1 +34b3f4c,36 +34b3f4d,e2 +34b3f4e,a5 +34b3f4f,d0 +34b3f50,92 +34b3f51,63 +34b3f55,43 +34b3f56,10 +34b3f57,21 +34b3f58,90 +34b3f59,42 +34b3f5b,a8 +34b3f5d,2 34b3f5e,10 -34b3f5f,21 -34b3f61,2 -34b3f62,10 -34b3f63,80 -34b3f65,54 -34b3f66,10 -34b3f67,21 -34b3f68,90 -34b3f69,42 +34b3f5f,82 +34b3f60,30 +34b3f61,42 +34b3f63,1 +34b3f64,50 +34b3f65,40 +34b3f67,f +34b3f68,26 +34b3f69,52 34b3f6b,1 -34b3f6c,30 -34b3f6d,42 +34b3f6c,24 +34b3f6d,2 34b3f6f,10 -34b3f70,50 -34b3f71,40 -34b3f73,17 -34b3f74,26 -34b3f75,52 -34b3f77,1 -34b3f78,36 -34b3f79,e2 -34b3f7a,a5 -34b3f7b,d0 -34b3f7c,92 -34b3f7d,63 -34b3f81,43 +34b3f70,af +34b3f71,a2 +34b3f73,18 +34b3f74,af +34b3f75,a2 +34b3f77,14 +34b3f79,12 +34b3f7a,10 +34b3f7b,c0 +34b3f7d,52 +34b3f7e,10 +34b3f7f,21 +34b3f81,2 34b3f82,10 -34b3f83,21 -34b3f84,90 +34b3f83,40 +34b3f84,24 34b3f85,42 -34b3f87,a8 -34b3f89,2 -34b3f8a,10 -34b3f8b,82 -34b3f8c,30 -34b3f8d,42 -34b3f8f,1 -34b3f90,50 -34b3f91,40 -34b3f93,f -34b3f94,26 -34b3f95,52 -34b3f97,1 -34b3f98,24 -34b3f99,2 -34b3f9b,10 -34b3f9c,af -34b3f9d,a2 -34b3f9f,18 -34b3fa0,af -34b3fa1,a2 -34b3fa3,14 -34b3fa5,12 -34b3fa6,10 -34b3fa7,c0 -34b3fa9,52 +34b3f87,4 +34b3f88,af +34b3f89,a2 +34b3f8b,10 +34b3f8c,3 +34b3f8d,c0 +34b3f8e,38 +34b3f8f,25 +34b3f92,30 +34b3f93,25 +34b3f94,8f +34b3f95,a5 +34b3f97,38 +34b3f98,c +34b3f99,10 +34b3f9a,14 +34b3f9b,b1 +34b3f9c,2 +34b3f9e,20 +34b3f9f,25 +34b3fa0,26 +34b3fa1,52 +34b3fa3,1 +34b3fa4,8e +34b3fa5,c2 +34b3fa6,65 +34b3fa7,4 +34b3fa8,2 +34b3fa9,42 34b3faa,10 -34b3fab,21 -34b3fad,2 -34b3fae,10 -34b3faf,40 -34b3fb0,24 -34b3fb1,42 -34b3fb3,4 -34b3fb4,af -34b3fb5,a2 -34b3fb7,10 -34b3fb8,3 -34b3fb9,c0 -34b3fba,38 -34b3fbb,25 -34b3fbe,30 -34b3fbf,25 -34b3fc0,8f -34b3fc1,a5 -34b3fc3,38 -34b3fc4,c -34b3fc5,10 -34b3fc6,14 -34b3fc7,b1 -34b3fc8,2 -34b3fca,20 -34b3fcb,25 -34b3fcc,26 -34b3fcd,52 -34b3fcf,1 -34b3fd0,8e -34b3fd1,c2 -34b3fd2,65 -34b3fd3,30 -34b3fd4,2 +34b3fab,2a +34b3fac,14 +34b3fad,40 +34b3fae,ff +34b3faf,df +34b3fb0,26 +34b3fb1,73 +34b3fb3,c +34b3fb4,26 +34b3fb5,3e +34b3fb7,36 +34b3fb8,24 +34b3fb9,7 +34b3fbb,1 +34b3fbc,24 +34b3fbd,6 +34b3fbf,f +34b3fc0,3c +34b3fc1,5 +34b3fc2,80 +34b3fc3,40 +34b3fc4,24 +34b3fc5,a5 +34b3fc6,64 +34b3fc7,10 +34b3fc8,c +34b3fc9,10 +34b3fca,14 +34b3fcb,1c +34b3fcc,2 +34b3fce,20 +34b3fcf,25 +34b3fd0,3c +34b3fd1,2 +34b3fd2,80 +34b3fd3,40 +34b3fd4,8c 34b3fd5,42 -34b3fd6,10 -34b3fd7,2a -34b3fd8,14 +34b3fd6,65 +34b3fd7,4 +34b3fd8,18 34b3fd9,40 -34b3fda,ff -34b3fdb,df -34b3fdc,26 -34b3fdd,73 -34b3fdf,c +34b3fdb,61 +34b3fdc,3c +34b3fdd,13 +34b3fde,80 +34b3fdf,40 34b3fe0,26 -34b3fe1,3e -34b3fe3,36 -34b3fe4,24 -34b3fe5,7 -34b3fe7,1 -34b3fe8,24 -34b3fe9,6 -34b3feb,f +34b3fe1,73 +34b3fe2,64 +34b3fe3,64 +34b3fe6,90 +34b3fe7,25 +34b3fe8,2 +34b3fe9,60 +34b3fea,a0 +34b3feb,25 34b3fec,3c -34b3fed,5 +34b3fed,17 34b3fee,80 -34b3fef,40 -34b3ff0,24 -34b3ff1,a5 -34b3ff2,64 -34b3ff3,3c -34b3ff4,c -34b3ff5,10 -34b3ff6,14 -34b3ff7,1c -34b3ff8,2 -34b3ffa,20 -34b3ffb,25 +34b3fef,11 +34b3ff0,3c +34b3ff1,2 +34b3ff2,80 +34b3ff3,40 +34b3ff4,24 +34b3ff5,42 +34b3ff6,64 +34b3ff7,10 +34b3ff8,af +34b3ff9,a2 +34b3ffb,38 34b3ffc,3c -34b3ffd,2 +34b3ffd,16 34b3ffe,80 34b3fff,40 -34b4000,8c -34b4001,42 -34b4002,65 -34b4003,30 -34b4004,18 -34b4005,40 -34b4007,61 -34b4008,3c -34b4009,13 -34b400a,80 -34b400b,40 -34b400c,26 -34b400d,73 -34b400e,64 -34b400f,90 -34b4012,90 -34b4013,25 -34b4014,2 -34b4015,60 -34b4016,a0 -34b4017,25 -34b4018,3c -34b4019,17 -34b401a,80 -34b401b,11 -34b401c,3c -34b401d,2 -34b401e,80 -34b401f,40 -34b4020,24 -34b4021,42 -34b4022,64 -34b4023,3c -34b4024,af -34b4025,a2 -34b4027,38 -34b4028,3c -34b4029,16 -34b402a,80 -34b402b,40 -34b402d,12 -34b402e,10 -34b402f,40 -34b4031,52 +34b4001,12 +34b4002,10 +34b4003,40 +34b4005,52 +34b4006,10 +34b4007,21 +34b4009,2 +34b400a,10 +34b400b,80 +34b400d,54 +34b400e,10 +34b400f,21 +34b4010,90 +34b4011,42 +34b4013,1 +34b4014,30 +34b4015,42 +34b4017,10 +34b4018,50 +34b4019,40 +34b401b,17 +34b401c,26 +34b401d,52 +34b401f,1 +34b4020,36 +34b4021,e2 +34b4022,a5 +34b4023,d0 +34b4024,92 +34b4025,63 +34b4029,43 +34b402a,10 +34b402b,21 +34b402c,90 +34b402d,42 +34b402f,a8 +34b4031,2 34b4032,10 -34b4033,21 -34b4035,2 -34b4036,10 -34b4037,80 -34b4039,54 -34b403a,10 -34b403b,21 -34b403c,90 -34b403d,42 +34b4033,42 +34b4034,30 +34b4035,42 +34b4037,1 +34b4038,50 +34b4039,40 +34b403b,f +34b403c,26 +34b403d,52 34b403f,1 -34b4040,30 -34b4041,42 +34b4040,24 +34b4041,2 34b4043,10 -34b4044,50 -34b4045,40 -34b4047,17 -34b4048,26 -34b4049,52 -34b404b,1 -34b404c,36 -34b404d,e2 -34b404e,a5 -34b404f,d0 -34b4050,92 -34b4051,63 -34b4055,43 +34b4044,af +34b4045,a2 +34b4047,18 +34b4048,af +34b4049,a2 +34b404b,14 +34b404d,12 +34b404e,10 +34b404f,c0 +34b4051,52 +34b4052,10 +34b4053,21 +34b4055,2 34b4056,10 -34b4057,21 -34b4058,90 +34b4057,40 +34b4058,24 34b4059,42 -34b405b,a8 -34b405d,2 -34b405e,10 -34b405f,42 -34b4060,30 -34b4061,42 -34b4063,1 -34b4064,50 -34b4065,40 -34b4067,f -34b4068,26 -34b4069,52 -34b406b,1 -34b406c,24 -34b406d,2 -34b406f,10 -34b4070,af -34b4071,a2 -34b4073,18 -34b4074,af -34b4075,a2 -34b4077,14 -34b4079,12 -34b407a,10 -34b407b,c0 -34b407d,52 +34b405b,4 +34b405c,af +34b405d,a2 +34b405f,10 +34b4060,3 +34b4061,c0 +34b4062,38 +34b4063,25 +34b4066,30 +34b4067,25 +34b4068,8f +34b4069,a5 +34b406b,38 +34b406c,c +34b406d,10 +34b406e,14 +34b406f,b1 +34b4070,2 +34b4072,20 +34b4073,25 +34b4074,26 +34b4075,52 +34b4077,1 +34b4078,8e +34b4079,c2 +34b407a,65 +34b407b,4 +34b407c,2 +34b407d,42 34b407e,10 -34b407f,21 -34b4081,2 -34b4082,10 -34b4083,40 -34b4084,24 -34b4085,42 -34b4087,4 -34b4088,af -34b4089,a2 -34b408b,10 -34b408c,3 -34b408d,c0 -34b408e,38 -34b408f,25 -34b4092,30 -34b4093,25 -34b4094,8f -34b4095,a5 -34b4097,38 -34b4098,c -34b4099,10 -34b409a,14 -34b409b,b1 -34b409c,2 -34b409e,20 -34b409f,25 -34b40a0,26 -34b40a1,52 -34b40a3,1 -34b40a4,8e -34b40a5,c2 -34b40a6,65 -34b40a7,30 -34b40a8,2 -34b40a9,42 -34b40aa,10 -34b40ab,2a -34b40ac,14 -34b40ad,40 -34b40ae,ff -34b40af,df +34b407f,2a +34b4080,14 +34b4081,40 +34b4082,ff +34b4083,df +34b4084,26 +34b4085,73 +34b4087,c +34b4088,12 +34b4089,a0 +34b408b,35 +34b408c,3c +34b408d,2 +34b408e,80 +34b408f,40 +34b4090,8c +34b4091,42 +34b4092,65 +34b4093,4 +34b4094,18 +34b4095,40 +34b4097,32 +34b4098,3c +34b4099,13 +34b409a,80 +34b409b,40 +34b409c,26 +34b409d,73 +34b409e,64 +34b409f,64 +34b40a0,24 +34b40a1,14 +34b40a3,5 +34b40a6,90 +34b40a7,25 +34b40a8,3c +34b40a9,17 +34b40aa,80 +34b40ab,40 +34b40ac,3c +34b40ad,16 +34b40ae,80 +34b40af,40 34b40b0,26 -34b40b1,73 -34b40b3,c -34b40b4,12 -34b40b5,a0 -34b40b7,35 -34b40b8,3c -34b40b9,2 -34b40ba,80 -34b40bb,40 -34b40bc,8c -34b40bd,42 -34b40be,65 -34b40bf,30 -34b40c0,18 -34b40c1,40 -34b40c3,32 -34b40c4,3c -34b40c5,13 -34b40c6,80 -34b40c7,40 -34b40c8,26 -34b40c9,73 -34b40ca,64 -34b40cb,90 -34b40cc,24 -34b40cd,14 -34b40cf,5 -34b40d2,90 -34b40d3,25 -34b40d4,3c -34b40d5,17 -34b40d6,80 -34b40d7,40 -34b40d8,3c -34b40d9,16 -34b40da,80 +34b40b1,d6 +34b40b2,65 +34b40b3,34 +34b40b4,3c +34b40b5,15 +34b40b6,80 +34b40b7,40 +34b40b8,26 +34b40b9,b5 +34b40ba,63 +34b40bb,f4 +34b40bc,3c +34b40bd,2 +34b40be,80 +34b40bf,40 +34b40c0,24 +34b40c1,42 +34b40c2,63 +34b40c3,f8 +34b40c4,af +34b40c5,a2 +34b40c7,38 +34b40c8,3c +34b40c9,1e +34b40ca,80 +34b40cb,40 +34b40cc,8e +34b40cd,e2 +34b40ce,65 +34b40cf,14 +34b40d0,50 +34b40d1,40 +34b40d3,14 +34b40d4,92 +34b40d5,62 +34b40d9,12 +34b40da,10 34b40db,40 -34b40dc,26 -34b40dd,d6 -34b40de,65 -34b40df,60 -34b40e0,3c -34b40e1,15 -34b40e2,80 -34b40e3,40 -34b40e4,26 -34b40e5,b5 +34b40dd,52 +34b40de,10 +34b40df,21 +34b40e1,2 +34b40e2,10 +34b40e3,80 +34b40e4,27 +34b40e5,c3 34b40e6,64 -34b40e7,20 -34b40e8,3c -34b40e9,2 -34b40ea,80 -34b40eb,40 -34b40ec,24 +34b40e7,64 +34b40e9,43 +34b40ea,10 +34b40eb,21 +34b40ec,90 34b40ed,42 -34b40ee,64 -34b40ef,24 -34b40f0,af -34b40f1,a2 -34b40f3,38 -34b40f4,3c -34b40f5,1e -34b40f6,80 -34b40f7,40 -34b40f8,8e -34b40f9,e2 -34b40fa,65 -34b40fb,40 -34b40fc,50 -34b40fd,40 -34b40ff,14 -34b4100,92 -34b4101,62 -34b4105,12 -34b4106,10 -34b4107,40 -34b4109,52 +34b40ef,1 +34b40f0,30 +34b40f1,42 +34b40f3,10 +34b40f4,50 +34b40f5,40 +34b40f7,b +34b40f8,92 +34b40f9,62 +34b40fc,92 +34b40fd,63 +34b4100,3c +34b4101,2 +34b4102,80 +34b4103,11 +34b4104,34 +34b4105,42 +34b4106,a5 +34b4107,d0 +34b4109,43 34b410a,10 34b410b,21 -34b410d,2 -34b410e,10 -34b410f,80 -34b4110,27 -34b4111,c3 -34b4112,64 -34b4113,90 -34b4115,43 -34b4116,10 -34b4117,21 -34b4118,90 -34b4119,42 -34b411b,1 -34b411c,30 -34b411d,42 -34b411f,10 -34b4120,50 -34b4121,40 -34b4123,b -34b4124,92 -34b4125,62 -34b4128,92 -34b4129,63 -34b412c,3c -34b412d,2 -34b412e,80 -34b412f,11 -34b4130,34 -34b4131,42 -34b4132,a5 -34b4133,d0 -34b4135,43 -34b4136,10 -34b4137,21 -34b4138,90 -34b4139,42 -34b413b,a8 -34b413d,2 -34b413e,10 -34b413f,82 -34b4140,30 -34b4141,42 -34b4143,1 -34b4144,50 -34b4145,40 -34b4147,b +34b410c,90 +34b410d,42 +34b410f,a8 +34b4111,2 +34b4112,10 +34b4113,82 +34b4114,30 +34b4115,42 +34b4117,1 +34b4118,50 +34b4119,40 +34b411b,b +34b411c,26 +34b411d,52 +34b411f,1 +34b4120,92 +34b4121,62 +34b4125,56 +34b4126,10 +34b4127,21 +34b4128,90 +34b4129,42 +34b412c,14 +34b412d,40 +34b412f,2 +34b4130,2 +34b4131,a0 +34b4132,20 +34b4133,25 +34b4134,8f +34b4135,a4 +34b4137,38 +34b4138,2 +34b4139,80 +34b413a,30 +34b413b,25 +34b413c,c +34b413d,10 +34b413e,18 +34b413f,81 +34b4140,26 +34b4141,25 +34b4143,48 +34b4144,26 +34b4145,52 +34b4147,1 34b4148,26 -34b4149,52 -34b414b,1 -34b414c,92 -34b414d,62 -34b4151,56 -34b4152,10 -34b4153,21 -34b4154,90 +34b4149,94 +34b414b,12 +34b414c,3c +34b414d,2 +34b414e,80 +34b414f,40 +34b4150,8c +34b4151,42 +34b4152,65 +34b4153,4 +34b4154,2 34b4155,42 +34b4156,10 +34b4157,2a 34b4158,14 34b4159,40 -34b415b,2 -34b415c,2 -34b415d,a0 -34b415e,20 -34b415f,25 -34b4160,8f -34b4161,a4 -34b4163,38 +34b415a,ff +34b415b,dc +34b415c,26 +34b415d,73 +34b415f,c +34b4160,c +34b4161,10 +34b4162,18 +34b4163,ab 34b4164,2 -34b4165,80 -34b4166,30 +34b4166,20 34b4167,25 -34b4168,c -34b4169,10 -34b416a,18 -34b416b,8c -34b416c,26 -34b416d,25 -34b416f,48 -34b4170,26 -34b4171,52 -34b4173,1 -34b4174,26 -34b4175,94 -34b4177,12 -34b4178,3c -34b4179,2 -34b417a,80 -34b417b,40 -34b417c,8c -34b417d,42 -34b417e,65 -34b417f,30 -34b4180,2 -34b4181,42 -34b4182,10 -34b4183,2a -34b4184,14 -34b4185,40 -34b4186,ff -34b4187,dc -34b4188,26 -34b4189,73 -34b418b,c -34b418c,c -34b418d,10 -34b418e,18 -34b418f,b6 -34b4190,2 -34b4192,20 -34b4193,25 -34b4194,8e -34b4195,2 -34b4197,8 -34b4198,24 -34b4199,43 -34b419b,8 -34b419c,ae -34b419d,3 -34b419f,8 -34b41a0,3c -34b41a1,3 -34b41a2,e9 -34b41a4,ac -34b41a5,43 -34b41a8,ac -34b41a9,40 -34b41ab,4 -34b41ac,8e -34b41ad,2 -34b41af,8 -34b41b0,24 -34b41b1,43 -34b41b3,8 -34b41b4,ae -34b41b5,3 -34b41b7,8 -34b41b8,3c -34b41b9,3 -34b41ba,df -34b41bc,ac -34b41bd,43 -34b41c0,ac -34b41c1,40 -34b41c3,4 -34b41c4,8f -34b41c5,bf -34b41c7,6c -34b41c8,8f -34b41c9,be -34b41cb,68 -34b41cc,8f -34b41cd,b7 -34b41cf,64 -34b41d0,8f -34b41d1,b6 -34b41d3,60 -34b41d4,8f -34b41d5,b5 -34b41d7,5c -34b41d8,8f -34b41d9,b4 -34b41db,58 -34b41dc,8f -34b41dd,b3 -34b41df,54 -34b41e0,8f -34b41e1,b2 -34b41e3,50 -34b41e4,8f -34b41e5,b1 -34b41e7,4c -34b41e8,8f -34b41e9,b0 -34b41eb,48 -34b41ec,3 -34b41ed,e0 -34b41ef,8 -34b41f0,27 -34b41f1,bd -34b41f3,70 -34b41f4,10 -34b41f6,fe -34b41f7,a8 -34b41f8,26 -34b41f9,31 +34b4168,8e +34b4169,2 +34b416b,8 +34b416c,24 +34b416d,43 +34b416f,8 +34b4170,ae +34b4171,3 +34b4173,8 +34b4174,3c +34b4175,3 +34b4176,e9 +34b4178,ac +34b4179,43 +34b417c,ac +34b417d,40 +34b417f,4 +34b4180,8e +34b4181,2 +34b4183,8 +34b4184,24 +34b4185,43 +34b4187,8 +34b4188,ae +34b4189,3 +34b418b,8 +34b418c,3c +34b418d,3 +34b418e,df +34b4190,ac +34b4191,43 +34b4194,ac +34b4195,40 +34b4197,4 +34b4198,8f +34b4199,bf +34b419b,6c +34b419c,8f +34b419d,be +34b419f,68 +34b41a0,8f +34b41a1,b7 +34b41a3,64 +34b41a4,8f +34b41a5,b6 +34b41a7,60 +34b41a8,8f +34b41a9,b5 +34b41ab,5c +34b41ac,8f +34b41ad,b4 +34b41af,58 +34b41b0,8f +34b41b1,b3 +34b41b3,54 +34b41b4,8f +34b41b5,b2 +34b41b7,50 +34b41b8,8f +34b41b9,b1 +34b41bb,4c +34b41bc,8f +34b41bd,b0 +34b41bf,48 +34b41c0,3 +34b41c1,e0 +34b41c3,8 +34b41c4,27 +34b41c5,bd +34b41c7,70 +34b41c8,10 +34b41ca,fe +34b41cb,a8 +34b41cc,26 +34b41cd,31 +34b41cf,14 +34b41d0,3 +34b41d1,e0 +34b41d3,8 +34b41d8,27 +34b41d9,bd +34b41da,ff +34b41db,e8 +34b41dc,af +34b41dd,bf +34b41df,14 +34b41e0,c +34b41e1,10 +34b41e2,15 +34b41e3,bb +34b41e4,24 +34b41e5,4 +34b41e6,4 +34b41e8,3c +34b41e9,3 +34b41ea,80 +34b41eb,40 +34b41ec,ac +34b41ed,62 +34b41ee,65 +34b41ef,20 +34b41f0,3c +34b41f1,3 +34b41f2,80 +34b41f3,40 +34b41f4,ac +34b41f5,62 +34b41f6,65 +34b41f7,1c +34b41f8,8f +34b41f9,bf 34b41fb,14 34b41fc,3 34b41fd,e0 34b41ff,8 -34b4204,27 -34b4205,bd -34b4206,ff -34b4207,e8 -34b4208,af -34b4209,bf -34b420b,14 -34b420c,c -34b420d,10 -34b420e,15 -34b420f,bb -34b4210,24 -34b4211,4 -34b4212,4 -34b4214,3c -34b4215,3 -34b4216,80 -34b4217,40 -34b4218,ac -34b4219,62 -34b421a,65 -34b421b,4c +34b4200,27 +34b4201,bd +34b4203,18 +34b4204,80 +34b4205,82 +34b4208,10 +34b4209,40 +34b420b,26 +34b420c,24 +34b420d,87 +34b420f,1 +34b4210,3c +34b4211,3 +34b4212,80 +34b4213,40 +34b4214,8c +34b4215,68 +34b4216,65 +34b4217,20 +34b4218,25 +34b4219,8 +34b421a,4 34b421c,3c 34b421d,3 34b421e,80 34b421f,40 -34b4220,ac -34b4221,62 +34b4220,8c +34b4221,63 34b4222,65 -34b4223,48 -34b4224,8f -34b4225,bf -34b4227,14 -34b4228,3 -34b4229,e0 -34b422b,8 -34b422c,27 -34b422d,bd -34b422f,18 -34b4230,80 -34b4231,82 -34b4234,10 -34b4235,40 -34b4237,26 +34b4223,1c +34b4225,68 +34b4226,20 +34b4227,2b +34b4228,10 +34b4229,80 +34b422b,1e +34b422c,3c +34b422d,a +34b422e,ff +34b4230,25 +34b4231,4a +34b4232,f +34b4233,ff +34b4234,30 +34b4235,c6 +34b4236,f +34b4237,ff 34b4238,24 -34b4239,87 -34b423b,1 +34b4239,b +34b423a,f0 34b423c,3c -34b423d,3 +34b423d,9 34b423e,80 34b423f,40 -34b4240,8c -34b4241,68 -34b4242,65 -34b4243,4c +34b4240,10 +34b4243,7 34b4244,25 -34b4245,8 -34b4246,4 -34b4248,3c -34b4249,3 -34b424a,80 -34b424b,40 -34b424c,8c -34b424d,63 -34b424e,65 -34b424f,48 -34b4251,68 -34b4252,20 -34b4253,2b -34b4254,10 -34b4255,80 -34b4257,1e -34b4258,3c -34b4259,a -34b425a,ff -34b425c,25 -34b425d,4a -34b425e,f -34b425f,ff -34b4260,30 -34b4261,c6 -34b4262,f -34b4263,ff -34b4264,24 -34b4265,b -34b4266,f0 -34b4268,3c -34b4269,9 -34b426a,80 -34b426b,40 -34b426c,10 -34b426f,7 -34b4270,25 -34b4271,29 -34b4272,64 -34b4273,2c -34b4275,68 -34b4276,20 -34b4277,2b -34b4278,54 -34b4279,80 -34b427b,5 -34b427c,a0 -34b427d,62 -34b4280,3c -34b4281,2 -34b4282,80 -34b4283,40 -34b4284,3 -34b4285,e0 -34b4287,8 -34b4288,ac -34b4289,43 -34b428a,65 -34b428b,48 -34b428c,a0 -34b428d,62 -34b4290,30 -34b4291,a2 -34b4292,f +34b4245,29 +34b4246,64 +34b4249,68 +34b424a,20 +34b424b,2b +34b424c,54 +34b424d,80 +34b424f,5 +34b4250,a0 +34b4251,62 +34b4254,3c +34b4255,2 +34b4256,80 +34b4257,40 +34b4258,3 +34b4259,e0 +34b425b,8 +34b425c,ac +34b425d,43 +34b425e,65 +34b425f,1c +34b4260,a0 +34b4261,62 +34b4264,30 +34b4265,a2 +34b4266,f +34b4267,ff +34b4269,2 +34b426a,23 +34b426c,8c +34b426d,62 +34b4271,4a +34b4272,10 +34b4273,24 +34b4275,44 +34b4276,10 +34b4277,25 +34b4279,4b +34b427a,10 +34b427b,24 +34b427d,46 +34b427e,10 +34b427f,25 +34b4280,ac +34b4281,62 +34b4284,95 +34b4285,22 +34b4287,4 +34b4289,a2 +34b428a,28 +34b428b,21 +34b428c,24 +34b428d,e7 +34b428f,1 +34b4290,80 +34b4291,e2 +34b4292,ff 34b4293,ff -34b4295,2 -34b4296,23 -34b4298,8c -34b4299,62 -34b429d,4a -34b429e,10 -34b429f,24 -34b42a1,44 -34b42a2,10 -34b42a3,25 -34b42a5,4b -34b42a6,10 -34b42a7,24 -34b42a9,46 -34b42aa,10 -34b42ab,25 -34b42ac,ac -34b42ad,62 -34b42b0,95 -34b42b1,22 -34b42b3,4 -34b42b5,a2 -34b42b6,28 -34b42b7,21 -34b42b8,24 -34b42b9,e7 -34b42bb,1 -34b42bc,80 -34b42bd,e2 -34b42be,ff -34b42bf,ff -34b42c0,14 -34b42c1,40 -34b42c2,ff -34b42c3,ec -34b42c4,24 -34b42c5,63 -34b42c7,4 -34b42c8,3c -34b42c9,2 -34b42ca,80 -34b42cb,40 -34b42cc,ac -34b42cd,43 -34b42ce,65 -34b42cf,48 -34b42d0,3 -34b42d1,e0 -34b42d3,8 -34b42d8,27 -34b42d9,bd -34b42da,ff -34b42db,b0 -34b42dc,af -34b42dd,bf -34b42df,4c -34b42e0,af -34b42e1,be -34b42e3,48 -34b42e4,af -34b42e5,b7 -34b42e7,44 -34b42e8,af -34b42e9,b6 -34b42eb,40 -34b42ec,af -34b42ed,b5 -34b42ef,3c -34b42f0,af -34b42f1,b4 -34b42f3,38 -34b42f4,af -34b42f5,b3 -34b42f7,34 +34b4294,14 +34b4295,40 +34b4296,ff +34b4297,ec +34b4298,24 +34b4299,63 +34b429b,4 +34b429c,3c +34b429d,2 +34b429e,80 +34b429f,40 +34b42a0,ac +34b42a1,43 +34b42a2,65 +34b42a3,1c +34b42a4,3 +34b42a5,e0 +34b42a7,8 +34b42ac,27 +34b42ad,bd +34b42ae,ff +34b42af,b0 +34b42b0,af +34b42b1,bf +34b42b3,4c +34b42b4,af +34b42b5,be +34b42b7,48 +34b42b8,af +34b42b9,b7 +34b42bb,44 +34b42bc,af +34b42bd,b6 +34b42bf,40 +34b42c0,af +34b42c1,b5 +34b42c3,3c +34b42c4,af +34b42c5,b4 +34b42c7,38 +34b42c8,af +34b42c9,b3 +34b42cb,34 +34b42cc,af +34b42cd,b2 +34b42cf,30 +34b42d0,af +34b42d1,b1 +34b42d3,2c +34b42d4,af +34b42d5,b0 +34b42d7,28 +34b42d9,80 +34b42da,a8 +34b42db,25 +34b42de,b0 +34b42df,25 +34b42e2,90 +34b42e3,25 +34b42e4,3c +34b42e5,14 +34b42e6,80 +34b42e7,40 +34b42e8,26 +34b42e9,94 +34b42ea,64 +34b42ec,3c +34b42ed,1e +34b42ee,80 +34b42ef,40 +34b42f0,3c +34b42f1,13 +34b42f2,80 +34b42f3,40 +34b42f4,3c +34b42f5,17 +34b42f6,38 +34b42f7,e3 34b42f8,af -34b42f9,b2 -34b42fb,30 -34b42fc,af -34b42fd,b1 -34b42ff,2c -34b4300,af -34b4301,b0 -34b4303,28 +34b42f9,b4 +34b42fb,20 +34b42fc,24 +34b42fd,7 +34b42ff,12 +34b4300,2 +34b4301,c0 +34b4302,30 +34b4303,25 +34b4304,2 34b4305,80 -34b4306,a8 +34b4306,28 34b4307,25 -34b430a,b0 -34b430b,25 -34b430e,90 +34b4308,c +34b4309,10 +34b430a,14 +34b430b,1c +34b430c,2 +34b430d,a0 +34b430e,20 34b430f,25 -34b4310,3c -34b4311,14 -34b4312,80 -34b4313,40 -34b4314,26 -34b4315,94 -34b4316,64 -34b4317,2c -34b4318,3c -34b4319,1e -34b431a,80 -34b431b,40 -34b431c,3c -34b431d,13 -34b431e,80 -34b431f,40 -34b4320,3c -34b4321,17 -34b4322,38 -34b4323,e3 -34b4324,af -34b4325,b4 -34b4327,20 -34b4328,24 -34b4329,7 -34b432b,12 -34b432c,2 -34b432d,c0 -34b432e,30 -34b432f,25 -34b4330,2 -34b4331,80 -34b4332,28 -34b4333,25 -34b4334,c -34b4335,10 -34b4336,14 -34b4337,1c -34b4338,2 -34b4339,a0 -34b433a,20 -34b433b,25 -34b433c,8f -34b433d,c5 -34b433e,65 -34b433f,4c -34b4340,10 -34b4343,1f -34b4344,36 -34b4345,f1 -34b4346,8e -34b4347,39 -34b4348,24 -34b4349,42 -34b434a,ff -34b434b,e0 -34b434d,51 -34b434f,18 -34b4352,18 -34b4353,10 -34b4355,3 +34b4310,8f +34b4311,c5 +34b4312,65 +34b4313,20 +34b4314,10 +34b4317,1f +34b4318,36 +34b4319,f1 +34b431a,8e +34b431b,39 +34b431c,24 +34b431d,42 +34b431e,ff +34b431f,e0 +34b4321,51 +34b4323,18 +34b4326,18 +34b4327,10 +34b4329,3 +34b432a,18 +34b432b,83 +34b432d,2 +34b432e,27 +34b432f,c3 +34b4331,64 +34b4332,18 +34b4333,23 +34b4334,14 +34b4335,72 +34b4337,16 +34b4338,24 +34b4339,b0 +34b433b,4 +34b433c,8c +34b433d,a7 +34b4341,7 +34b4342,3b +34b4343,2 +34b4345,51 +34b4347,18 +34b434a,30 +34b434b,10 +34b434d,6 +34b434e,30 +34b434f,83 +34b4351,c4 +34b4352,30 +34b4353,23 +34b4355,6 34b4356,18 -34b4357,83 -34b4359,2 -34b435a,27 -34b435b,c3 -34b435d,64 -34b435e,18 -34b435f,23 -34b4360,14 -34b4361,72 -34b4363,16 -34b4364,24 -34b4365,b0 -34b4367,4 -34b4368,8c -34b4369,a7 -34b436d,7 -34b436e,3b -34b436f,2 -34b4371,51 -34b4373,18 -34b4376,30 -34b4377,10 -34b4379,6 -34b437a,30 -34b437b,83 -34b437d,c4 -34b437e,30 -34b437f,23 -34b4381,6 -34b4382,18 -34b4383,c0 -34b4385,66 -34b4386,30 -34b4387,21 -34b4389,6 -34b438a,30 -34b438b,40 -34b438c,96 -34b438d,83 -34b438f,6 -34b4390,af -34b4391,a3 -34b4393,18 -34b4394,96 -34b4395,83 -34b4397,4 -34b4398,af -34b4399,a3 -34b439b,14 -34b439c,8c -34b439d,a3 -34b43a0,30 -34b43a1,63 -34b43a2,f -34b43a3,ff -34b43a4,af -34b43a5,a3 -34b43a7,10 -34b43a8,30 -34b43a9,e7 -34b43aa,f -34b43ab,ff -34b43ad,46 -34b43ae,30 -34b43af,23 -34b43b0,8f -34b43b1,a5 -34b43b3,20 -34b43b4,c -34b43b5,10 -34b43b6,14 -34b43b7,b1 -34b43b8,2 -34b43b9,a0 -34b43ba,20 -34b43bb,25 -34b43bc,2 -34b43be,28 -34b43bf,25 -34b43c0,8e -34b43c1,62 +34b4357,c0 +34b4359,66 +34b435a,30 +34b435b,21 +34b435d,6 +34b435e,30 +34b435f,40 +34b4360,96 +34b4361,83 +34b4363,6 +34b4364,af +34b4365,a3 +34b4367,18 +34b4368,96 +34b4369,83 +34b436b,4 +34b436c,af +34b436d,a3 +34b436f,14 +34b4370,8c +34b4371,a3 +34b4374,30 +34b4375,63 +34b4376,f +34b4377,ff +34b4378,af +34b4379,a3 +34b437b,10 +34b437c,30 +34b437d,e7 +34b437e,f +34b437f,ff +34b4381,46 +34b4382,30 +34b4383,23 +34b4384,8f +34b4385,a5 +34b4387,20 +34b4388,c +34b4389,10 +34b438a,14 +34b438b,b1 +34b438c,2 +34b438d,a0 +34b438e,20 +34b438f,25 +34b4390,2 +34b4392,28 +34b4393,25 +34b4394,8e +34b4395,62 +34b4396,65 +34b4397,1c +34b4399,a2 +34b439a,10 +34b439b,2b +34b439c,54 +34b439d,40 +34b439e,ff +34b439f,df +34b43a0,80 +34b43a1,a2 +34b43a4,26 +34b43a5,52 +34b43a7,1 +34b43a8,24 +34b43a9,2 +34b43ab,6 +34b43ac,16 +34b43ad,42 +34b43ae,ff +34b43af,d3 +34b43b0,26 +34b43b1,d6 +34b43b3,12 +34b43b4,3c +34b43b5,2 +34b43b6,80 +34b43b7,40 +34b43b8,8c +34b43b9,43 +34b43ba,65 +34b43bb,20 +34b43bc,3c +34b43bd,2 +34b43be,80 +34b43bf,40 +34b43c0,ac +34b43c1,43 34b43c2,65 -34b43c3,48 -34b43c5,a2 -34b43c6,10 -34b43c7,2b -34b43c8,54 -34b43c9,40 -34b43ca,ff -34b43cb,df -34b43cc,80 -34b43cd,a2 -34b43d0,26 -34b43d1,52 -34b43d3,1 -34b43d4,24 -34b43d5,2 -34b43d7,6 -34b43d8,16 -34b43d9,42 -34b43da,ff -34b43db,d3 -34b43dc,26 -34b43dd,d6 -34b43df,12 -34b43e0,3c -34b43e1,2 -34b43e2,80 -34b43e3,40 -34b43e4,8c -34b43e5,43 -34b43e6,65 -34b43e7,4c -34b43e8,3c -34b43e9,2 -34b43ea,80 -34b43eb,40 -34b43ec,ac -34b43ed,43 -34b43ee,65 -34b43ef,48 -34b43f0,8f -34b43f1,bf -34b43f3,4c -34b43f4,8f -34b43f5,be -34b43f7,48 -34b43f8,8f -34b43f9,b7 -34b43fb,44 -34b43fc,8f -34b43fd,b6 -34b43ff,40 -34b4400,8f -34b4401,b5 -34b4403,3c -34b4404,8f -34b4405,b4 -34b4407,38 -34b4408,8f -34b4409,b3 -34b440b,34 -34b440c,8f -34b440d,b2 -34b440f,30 -34b4410,8f -34b4411,b1 -34b4413,2c -34b4414,8f -34b4415,b0 -34b4417,28 -34b4418,3 -34b4419,e0 -34b441b,8 -34b441c,27 -34b441d,bd -34b441f,50 -34b4420,4d -34b4421,51 -34b4424,4e -34b4425,6f -34b4426,72 -34b4427,6d -34b4428,61 -34b4429,6c -34b4431,8 -34b4433,e -34b4435,5f -34b4436,3 -34b4437,1 -34b4438,1 -34b4441,18 -34b4443,18 -34b4445,12 -34b4447,3 -34b4448,4 -34b4451,10 -34b4453,10 -34b4455,6 -34b4456,3 -34b4457,1 -34b4458,1 -34b4461,10 -34b4463,10 -34b4465,3 -34b4467,3 -34b4468,4 -34b446d,1 -34b446e,2 -34b446f,3 -34b4470,4 -34b4471,5 -34b4472,6 -34b4473,7 -34b4474,ff -34b4475,ff -34b4476,ff -34b4477,ff -34b4478,ff -34b4479,ff -34b447c,11 -34b447d,c2 -34b447e,2d -34b447f,d4 -34b4480,43 -34b4481,22 -34b4482,8 -34b4483,54 -34b4484,ce -34b4485,d1 -34b4486,75 -34b4487,1a -34b4488,a9 -34b4489,3a -34b448a,ea -34b448b,a4 -34b448c,ab -34b448d,21 -34b4491,10 -34b4492,44 -34b4493,65 -34b4494,6b -34b4495,75 -34b449c,1 -34b449d,10 -34b449e,44 -34b449f,6f -34b44a0,64 -34b44a1,6f -34b44a2,6e -34b44a3,67 -34b44a4,6f -34b44a8,2 -34b44a9,10 -34b44aa,4a -34b44ab,61 -34b44ac,62 -34b44ad,75 -34b44b4,3 -34b44b5,d0 -34b44b6,46 -34b44b7,6f -34b44b8,72 -34b44b9,65 -34b44ba,73 -34b44bb,74 -34b44c0,4 -34b44c1,d0 -34b44c2,46 -34b44c3,69 -34b44c4,72 -34b44c5,65 -34b44cc,5 -34b44cd,d0 -34b44ce,57 -34b44cf,61 -34b44d0,74 -34b44d1,65 -34b44d2,72 -34b44d8,7 -34b44d9,d0 -34b44da,53 -34b44db,68 -34b44dc,61 -34b44dd,64 -34b44de,6f -34b44df,77 -34b44e4,6 -34b44e5,d0 -34b44e6,53 -34b44e7,70 -34b44e8,69 -34b44e9,72 -34b44ea,69 -34b44eb,74 -34b44f0,8 -34b44f1,90 -34b44f2,42 -34b44f3,6f -34b44f4,74 -34b44f5,57 -34b44fc,9 -34b44fd,10 -34b44fe,49 -34b44ff,63 -34b4500,65 -34b4508,c -34b4509,a0 -34b450a,47 -34b450b,65 -34b450c,72 -34b450d,75 -34b450e,64 -34b450f,6f -34b4514,b -34b4515,80 -34b4516,47 -34b4517,54 -34b4518,47 -34b4520,d -34b4521,c0 -34b4522,47 -34b4523,61 -34b4524,6e -34b4525,6f -34b4526,6e -34b452f,1 -34b4533,d -34b45af,d -34b45b0,b0 -34b45b3,d -34b45b4,b0 -34b45b7,d -34b45b8,b0 -34b45bb,c -34b45bc,b0 -34b45bf,c -34b45c0,b0 -34b45c3,c -34b45c4,a0 -34b45cb,d -34b45cc,b0 -34b45cf,d -34b45d0,b0 -34b45e7,e8 -34b45e8,ac -34b45eb,e8 -34b45ec,ac -34b45ef,e8 -34b45f0,ac -34b45f3,e8 -34b45f4,ac -34b461b,d -34b461c,77 -34b461d,d0 -34b461f,2e -34b4620,3a -34b4621,b0 -34b4623,7d -34b4624,c -34b4625,90 -34b4626,8f -34b4627,ff -34b4628,ff -34b4629,fd -34b462b,c9 -34b462c,6e -34b462e,2 -34b462f,e4 -34b4630,ac -34b4632,ef -34b4633,ff -34b4634,ff -34b4635,f4 -34b4636,a -34b4637,b0 -34b4638,e5 -34b463a,c -34b463b,95 -34b463c,e0 -34b463e,e -34b463f,59 -34b4640,c0 -34b4657,7 -34b4658,90 -34b465a,5 -34b465b,ce -34b465c,eb -34b465d,40 -34b465e,c -34b465f,c8 -34b4660,a9 -34b4661,90 -34b4662,d -34b4663,a7 -34b4664,90 -34b4666,8 -34b4667,ec -34b4668,b4 -34b466b,4a -34b466c,dd -34b466d,a0 -34b466f,7 -34b4670,97 -34b4671,e2 -34b4672,c -34b4673,88 -34b4674,aa -34b4675,e0 -34b4676,6 -34b4677,ce -34b4678,ed -34b4679,70 -34b467b,7 -34b467c,90 -34b467f,7 -34b4680,90 -34b468e,6d -34b468f,ea -34b4692,c9 -34b4693,4d -34b4694,60 -34b4696,c9 -34b4697,4d -34b4698,60 -34b4699,33 -34b469a,6d -34b469b,eb -34b469c,6b -34b469d,c6 -34b469f,8c -34b46a0,b6 -34b46a2,7c -34b46a3,a4 -34b46a4,ce -34b46a5,c4 -34b46a6,31 -34b46a7,9 -34b46a8,c3 -34b46a9,bb -34b46ab,9 -34b46ac,c3 -34b46ad,bb -34b46af,2 -34b46b0,ce -34b46b1,d4 -34b46c6,4 -34b46c7,ce -34b46c8,fb -34b46ca,a -34b46cb,d5 -34b46ce,8 -34b46cf,e3 -34b46d2,9 -34b46d3,ec -34b46d6,7e -34b46d7,4d -34b46d8,b0 -34b46d9,ab -34b46da,bb -34b46db,5 -34b46dc,e8 -34b46dd,aa -34b46de,bc -34b46e0,8e -34b46e1,d6 -34b46e2,7e -34b46e3,93 -34b46e4,6e -34b46e5,d0 -34b46e6,8 -34b46e7,de -34b46e8,d9 -34b46e9,ea -34b46ff,c -34b4700,a0 -34b4703,c -34b4704,a0 -34b4707,c -34b4708,a0 +34b43c3,1c +34b43c4,8f +34b43c5,bf +34b43c7,4c +34b43c8,8f +34b43c9,be +34b43cb,48 +34b43cc,8f +34b43cd,b7 +34b43cf,44 +34b43d0,8f +34b43d1,b6 +34b43d3,40 +34b43d4,8f +34b43d5,b5 +34b43d7,3c +34b43d8,8f +34b43d9,b4 +34b43db,38 +34b43dc,8f +34b43dd,b3 +34b43df,34 +34b43e0,8f +34b43e1,b2 +34b43e3,30 +34b43e4,8f +34b43e5,b1 +34b43e7,2c +34b43e8,8f +34b43e9,b0 +34b43eb,28 +34b43ec,3 +34b43ed,e0 +34b43ef,8 +34b43f0,27 +34b43f1,bd +34b43f3,50 +34b43f4,4d +34b43f5,51 +34b43f8,4e +34b43f9,6f +34b43fa,72 +34b43fb,6d +34b43fc,61 +34b43fd,6c +34b4405,8 +34b4407,e +34b4409,5f +34b440a,3 +34b440b,1 +34b440c,1 +34b4415,18 +34b4417,18 +34b4419,12 +34b441b,3 +34b441c,4 +34b4425,10 +34b4427,10 +34b4429,6 +34b442a,3 +34b442b,1 +34b442c,1 +34b4435,10 +34b4437,10 +34b4439,3 +34b443b,3 +34b443c,4 +34b4441,1 +34b4442,2 +34b4443,3 +34b4444,4 +34b4445,5 +34b4446,6 +34b4447,7 +34b4448,ff +34b4449,ff +34b444a,ff +34b444b,ff +34b444c,ff +34b444d,ff +34b4450,11 +34b4451,c2 +34b4452,2d +34b4453,d4 +34b4454,43 +34b4455,22 +34b4456,8 +34b4457,54 +34b4458,ce +34b4459,d1 +34b445a,75 +34b445b,1a +34b445c,a9 +34b445d,3a +34b445e,ea +34b445f,a4 +34b4460,ab +34b4461,21 +34b4465,10 +34b4466,44 +34b4467,65 +34b4468,6b +34b4469,75 +34b4470,1 +34b4471,10 +34b4472,44 +34b4473,6f +34b4474,64 +34b4475,6f +34b4476,6e +34b4477,67 +34b4478,6f +34b447c,2 +34b447d,10 +34b447e,4a +34b447f,61 +34b4480,62 +34b4481,75 +34b4488,3 +34b4489,d0 +34b448a,46 +34b448b,6f +34b448c,72 +34b448d,65 +34b448e,73 +34b448f,74 +34b4494,4 +34b4495,d0 +34b4496,46 +34b4497,69 +34b4498,72 +34b4499,65 +34b44a0,5 +34b44a1,d0 +34b44a2,57 +34b44a3,61 +34b44a4,74 +34b44a5,65 +34b44a6,72 +34b44ac,7 +34b44ad,d0 +34b44ae,53 +34b44af,68 +34b44b0,61 +34b44b1,64 +34b44b2,6f +34b44b3,77 +34b44b8,6 +34b44b9,d0 +34b44ba,53 +34b44bb,70 +34b44bc,69 +34b44bd,72 +34b44be,69 +34b44bf,74 +34b44c4,8 +34b44c5,90 +34b44c6,42 +34b44c7,6f +34b44c8,74 +34b44c9,57 +34b44d0,9 +34b44d1,10 +34b44d2,49 +34b44d3,63 +34b44d4,65 +34b44dc,c +34b44dd,a0 +34b44de,47 +34b44df,65 +34b44e0,72 +34b44e1,75 +34b44e2,64 +34b44e3,6f +34b44e8,b +34b44e9,80 +34b44ea,47 +34b44eb,54 +34b44ec,47 +34b44f4,d +34b44f5,c0 +34b44f6,47 +34b44f7,61 +34b44f8,6e +34b44f9,6f +34b44fa,6e +34b4503,1 +34b4507,d +34b4583,d +34b4584,b0 +34b4587,d +34b4588,b0 +34b458b,d +34b458c,b0 +34b458f,c +34b4590,b0 +34b4593,c +34b4594,b0 +34b4597,c +34b4598,a0 +34b459f,d +34b45a0,b0 +34b45a3,d +34b45a4,b0 +34b45bb,e8 +34b45bc,ac +34b45bf,e8 +34b45c0,ac +34b45c3,e8 +34b45c4,ac +34b45c7,e8 +34b45c8,ac +34b45ef,d +34b45f0,77 +34b45f1,d0 +34b45f3,2e +34b45f4,3a +34b45f5,b0 +34b45f7,7d +34b45f8,c +34b45f9,90 +34b45fa,8f +34b45fb,ff +34b45fc,ff +34b45fd,fd +34b45ff,c9 +34b4600,6e +34b4602,2 +34b4603,e4 +34b4604,ac +34b4606,ef +34b4607,ff +34b4608,ff +34b4609,f4 +34b460a,a +34b460b,b0 +34b460c,e5 +34b460e,c +34b460f,95 +34b4610,e0 +34b4612,e +34b4613,59 +34b4614,c0 +34b462b,7 +34b462c,90 +34b462e,5 +34b462f,ce +34b4630,eb +34b4631,40 +34b4632,c +34b4633,c8 +34b4634,a9 +34b4635,90 +34b4636,d +34b4637,a7 +34b4638,90 +34b463a,8 +34b463b,ec +34b463c,b4 +34b463f,4a +34b4640,dd +34b4641,a0 +34b4643,7 +34b4644,97 +34b4645,e2 +34b4646,c +34b4647,88 +34b4648,aa +34b4649,e0 +34b464a,6 +34b464b,ce +34b464c,ed +34b464d,70 +34b464f,7 +34b4650,90 +34b4653,7 +34b4654,90 +34b4662,6d +34b4663,ea +34b4666,c9 +34b4667,4d +34b4668,60 +34b466a,c9 +34b466b,4d +34b466c,60 +34b466d,33 +34b466e,6d +34b466f,eb +34b4670,6b +34b4671,c6 +34b4673,8c +34b4674,b6 +34b4676,7c +34b4677,a4 +34b4678,ce +34b4679,c4 +34b467a,31 +34b467b,9 +34b467c,c3 +34b467d,bb +34b467f,9 +34b4680,c3 +34b4681,bb +34b4683,2 +34b4684,ce +34b4685,d4 +34b469a,4 +34b469b,ce +34b469c,fb +34b469e,a +34b469f,d5 +34b46a2,8 +34b46a3,e3 +34b46a6,9 +34b46a7,ec +34b46aa,7e +34b46ab,4d +34b46ac,b0 +34b46ad,ab +34b46ae,bb +34b46af,5 +34b46b0,e8 +34b46b1,aa +34b46b2,bc +34b46b4,8e +34b46b5,d6 +34b46b6,7e +34b46b7,93 +34b46b8,6e +34b46b9,d0 +34b46ba,8 +34b46bb,de +34b46bc,d9 +34b46bd,ea +34b46d3,c +34b46d4,a0 +34b46d7,c +34b46d8,a0 +34b46db,c +34b46dc,a0 +34b46df,c +34b46e0,a0 +34b4704,c9 +34b4707,7 +34b4708,e2 34b470b,c -34b470c,a0 +34b470c,b0 +34b470f,e +34b4710,80 +34b4713,6f +34b4714,30 +34b4717,8e +34b471b,8e +34b471f,6f +34b4720,40 +34b4723,e +34b4724,80 +34b4727,c +34b4728,b0 +34b472b,7 +34b472c,e2 34b4730,c9 -34b4733,7 -34b4734,e2 -34b4737,c -34b4738,b0 -34b473b,e -34b473c,80 -34b473f,6f -34b4740,30 -34b4743,8e -34b4747,8e -34b474b,6f -34b474c,40 -34b474f,e -34b4750,80 -34b4753,c -34b4754,b0 +34b473b,bb +34b473f,5e +34b4740,40 +34b4743,c +34b4744,a0 +34b4747,a +34b4748,d0 +34b474b,7 +34b474c,e1 +34b474f,6 +34b4750,f4 +34b4753,6 +34b4754,f4 34b4757,7 -34b4758,e2 -34b475c,c9 +34b4758,e1 +34b475b,a +34b475c,d0 +34b475f,c +34b4760,a0 +34b4763,5e +34b4764,40 34b4767,bb -34b476b,5e -34b476c,40 -34b476f,c -34b4770,a0 -34b4773,a -34b4774,d0 -34b4777,7 -34b4778,e1 -34b477b,6 -34b477c,f4 -34b477f,6 -34b4780,f4 -34b4783,7 -34b4784,e1 -34b4787,a -34b4788,d0 -34b478b,c -34b478c,a0 -34b478f,5e -34b4790,40 -34b4793,bb -34b47a7,a -34b47a8,80 -34b47aa,c -34b47ab,8a -34b47ac,8a -34b47ad,b0 -34b47ae,3 -34b47af,be -34b47b0,da -34b47b1,10 -34b47b2,3 -34b47b3,be -34b47b4,da -34b47b5,10 -34b47b6,c -34b47b7,8a -34b47b8,8a -34b47b9,b0 -34b47bb,a -34b47bc,80 -34b47e3,c -34b47e4,a0 -34b47e7,c -34b47e8,a0 -34b47eb,c -34b47ec,a0 -34b47ee,af -34b47ef,ff -34b47f0,ff -34b47f1,f8 -34b47f3,c -34b47f4,a0 -34b47f7,c -34b47f8,a0 -34b47fb,c -34b47fc,a0 -34b4833,d -34b4834,d0 -34b4837,e -34b4838,c0 -34b483b,4f -34b483c,80 -34b483f,9d -34b4863,df -34b4864,fb -34b48a3,e -34b48a4,c0 -34b48a7,e -34b48a8,c0 -34b48c0,b -34b48c1,c0 -34b48c4,4e -34b48c5,60 -34b48c8,bc -34b48cb,3 -34b48cc,e8 -34b48cf,a -34b48d0,d0 -34b48d3,1e -34b48d4,90 -34b48d7,9e -34b48d8,20 -34b48db,da -34b48de,7 -34b48df,e3 -34b48e2,c -34b48e3,b0 -34b48e6,6e -34b48e7,50 -34b48f6,3 -34b48f7,ce -34b48f8,eb -34b48fa,b -34b48fb,d5 -34b48fc,7e -34b48fd,90 -34b48fe,e -34b48ff,90 -34b4900,b -34b4901,d0 -34b4902,5f -34b4903,70 -34b4904,9 -34b4905,e0 -34b4906,6f -34b4907,6c -34b4908,b9 -34b4909,e0 -34b490a,5f -34b490b,70 -34b490c,9 -34b490d,e0 -34b490e,e -34b490f,90 -34b4910,b -34b4911,d0 -34b4912,b -34b4913,d5 -34b4914,7e -34b4915,90 -34b4916,3 -34b4917,ce -34b4918,eb -34b492e,a -34b492f,ff -34b4930,e0 -34b4933,8 -34b4934,e0 -34b4937,8 -34b4938,e0 -34b493b,8 -34b493c,e0 -34b493f,8 -34b4940,e0 -34b4943,8 -34b4944,e0 -34b4947,8 -34b4948,e0 -34b494b,8 -34b494c,e0 -34b494e,8 -34b494f,ff -34b4950,ff -34b4951,e0 -34b4966,8 -34b4967,de -34b4968,ea -34b496a,c -34b496b,83 -34b496c,7e -34b496d,90 -34b4970,c -34b4971,c0 -34b4974,2e -34b4975,a0 -34b4978,bd -34b4979,20 -34b497b,b -34b497c,d4 -34b497f,bd -34b4980,40 -34b4982,b -34b4983,d4 -34b4986,2f -34b4987,ff -34b4988,ff -34b4989,d0 -34b499e,7 -34b499f,ce -34b49a0,ea -34b49a2,c -34b49a3,83 -34b49a4,7e -34b49a5,90 -34b49a8,c -34b49a9,b0 +34b477b,a +34b477c,80 +34b477e,c +34b477f,8a +34b4780,8a +34b4781,b0 +34b4782,3 +34b4783,be +34b4784,da +34b4785,10 +34b4786,3 +34b4787,be +34b4788,da +34b4789,10 +34b478a,c +34b478b,8a +34b478c,8a +34b478d,b0 +34b478f,a +34b4790,80 +34b47b7,c +34b47b8,a0 +34b47bb,c +34b47bc,a0 +34b47bf,c +34b47c0,a0 +34b47c2,af +34b47c3,ff +34b47c4,ff +34b47c5,f8 +34b47c7,c +34b47c8,a0 +34b47cb,c +34b47cc,a0 +34b47cf,c +34b47d0,a0 +34b4807,d +34b4808,d0 +34b480b,e +34b480c,c0 +34b480f,4f +34b4810,80 +34b4813,9d +34b4837,df +34b4838,fb +34b4877,e +34b4878,c0 +34b487b,e +34b487c,c0 +34b4894,b +34b4895,c0 +34b4898,4e +34b4899,60 +34b489c,bc +34b489f,3 +34b48a0,e8 +34b48a3,a +34b48a4,d0 +34b48a7,1e +34b48a8,90 +34b48ab,9e +34b48ac,20 +34b48af,da +34b48b2,7 +34b48b3,e3 +34b48b6,c +34b48b7,b0 +34b48ba,6e +34b48bb,50 +34b48ca,3 +34b48cb,ce +34b48cc,eb +34b48ce,b +34b48cf,d5 +34b48d0,7e +34b48d1,90 +34b48d2,e +34b48d3,90 +34b48d4,b +34b48d5,d0 +34b48d6,5f +34b48d7,70 +34b48d8,9 +34b48d9,e0 +34b48da,6f +34b48db,6c +34b48dc,b9 +34b48dd,e0 +34b48de,5f +34b48df,70 +34b48e0,9 +34b48e1,e0 +34b48e2,e +34b48e3,90 +34b48e4,b +34b48e5,d0 +34b48e6,b +34b48e7,d5 +34b48e8,7e +34b48e9,90 +34b48ea,3 +34b48eb,ce +34b48ec,eb +34b4902,a +34b4903,ff +34b4904,e0 +34b4907,8 +34b4908,e0 +34b490b,8 +34b490c,e0 +34b490f,8 +34b4910,e0 +34b4913,8 +34b4914,e0 +34b4917,8 +34b4918,e0 +34b491b,8 +34b491c,e0 +34b491f,8 +34b4920,e0 +34b4922,8 +34b4923,ff +34b4924,ff +34b4925,e0 +34b493a,8 +34b493b,de +34b493c,ea +34b493e,c +34b493f,83 +34b4940,7e +34b4941,90 +34b4944,c +34b4945,c0 +34b4948,2e +34b4949,a0 +34b494c,bd +34b494d,20 +34b494f,b +34b4950,d4 +34b4953,bd +34b4954,40 +34b4956,b +34b4957,d4 +34b495a,2f +34b495b,ff +34b495c,ff +34b495d,d0 +34b4972,7 +34b4973,ce +34b4974,ea +34b4976,c +34b4977,83 +34b4978,7e +34b4979,90 +34b497c,c +34b497d,b0 +34b497f,2 +34b4980,7e +34b4981,90 +34b4983,bf +34b4984,fb +34b4987,2 +34b4988,7d +34b4989,a0 +34b498c,a +34b498d,d0 +34b498e,5c +34b498f,62 +34b4990,7d +34b4991,b0 +34b4992,9 +34b4993,de +34b4994,eb +34b4995,30 34b49ab,2 -34b49ac,7e -34b49ad,90 -34b49af,bf -34b49b0,fb -34b49b3,2 -34b49b4,7d -34b49b5,a0 -34b49b8,a -34b49b9,d0 -34b49ba,5c -34b49bb,62 -34b49bc,7d -34b49bd,b0 -34b49be,9 -34b49bf,de -34b49c0,eb -34b49c1,30 -34b49d7,2 -34b49d8,de -34b49db,b -34b49dc,de -34b49df,7d -34b49e0,9e -34b49e2,2 -34b49e3,d7 -34b49e4,9e -34b49e6,b -34b49e7,b0 -34b49e8,9e -34b49ea,6e -34b49eb,40 -34b49ec,9e -34b49ee,9f -34b49ef,ff -34b49f0,ff -34b49f1,f7 -34b49f4,9e -34b49f8,9e -34b4a0e,c -34b4a0f,ff -34b4a10,ff -34b4a11,50 -34b4a12,c -34b4a13,a0 -34b4a16,c -34b4a17,a0 -34b4a1a,c -34b4a1b,ee -34b4a1c,ea -34b4a1f,3 -34b4a20,8e -34b4a21,90 -34b4a24,b -34b4a25,c0 -34b4a28,b -34b4a29,c0 -34b4a2a,5c -34b4a2b,63 -34b4a2c,8e -34b4a2d,90 -34b4a2e,9 -34b4a2f,de -34b4a30,da -34b4a47,ae -34b4a48,ec -34b4a49,30 -34b4a4a,a -34b4a4b,e8 -34b4a4c,39 -34b4a4d,80 -34b4a4e,e -34b4a4f,90 -34b4a52,4f -34b4a53,ae -34b4a54,ec -34b4a55,40 -34b4a56,6f -34b4a57,d5 -34b4a58,5d -34b4a59,c0 -34b4a5a,5f -34b4a5b,90 -34b4a5c,9 -34b4a5d,e0 -34b4a5e,e -34b4a5f,90 -34b4a60,9 -34b4a61,e0 -34b4a62,c -34b4a63,d5 -34b4a64,5d -34b4a65,c0 -34b4a66,3 -34b4a67,ce -34b4a68,ec -34b4a69,40 -34b4a7e,5f -34b4a7f,ff -34b4a80,ff -34b4a81,d0 -34b4a84,d -34b4a85,a0 -34b4a88,7e -34b4a89,40 -34b4a8c,cc -34b4a8f,4 -34b4a90,e8 -34b4a93,a -34b4a94,d0 -34b4a97,d -34b4a98,a0 -34b4a9b,8e -34b4a9c,40 -34b4a9f,cc -34b4ab6,5 -34b4ab7,ce -34b4ab8,ec -34b4ab9,30 -34b4aba,d -34b4abb,c4 -34b4abc,5d -34b4abd,b0 -34b4abe,e -34b4abf,90 -34b4ac0,b -34b4ac1,d0 -34b4ac2,b -34b4ac3,c4 -34b4ac4,5d -34b4ac5,90 -34b4ac6,4 -34b4ac7,df -34b4ac8,fc -34b4ac9,20 -34b4aca,1d -34b4acb,b4 -34b4acc,5c -34b4acd,c0 +34b49ac,de +34b49af,b +34b49b0,de +34b49b3,7d +34b49b4,9e +34b49b6,2 +34b49b7,d7 +34b49b8,9e +34b49ba,b +34b49bb,b0 +34b49bc,9e +34b49be,6e +34b49bf,40 +34b49c0,9e +34b49c2,9f +34b49c3,ff +34b49c4,ff +34b49c5,f7 +34b49c8,9e +34b49cc,9e +34b49e2,c +34b49e3,ff +34b49e4,ff +34b49e5,50 +34b49e6,c +34b49e7,a0 +34b49ea,c +34b49eb,a0 +34b49ee,c +34b49ef,ee +34b49f0,ea +34b49f3,3 +34b49f4,8e +34b49f5,90 +34b49f8,b +34b49f9,c0 +34b49fc,b +34b49fd,c0 +34b49fe,5c +34b49ff,63 +34b4a00,8e +34b4a01,90 +34b4a02,9 +34b4a03,de +34b4a04,da +34b4a1b,ae +34b4a1c,ec +34b4a1d,30 +34b4a1e,a +34b4a1f,e8 +34b4a20,39 +34b4a21,80 +34b4a22,e +34b4a23,90 +34b4a26,4f +34b4a27,ae +34b4a28,ec +34b4a29,40 +34b4a2a,6f +34b4a2b,d5 +34b4a2c,5d +34b4a2d,c0 +34b4a2e,5f +34b4a2f,90 +34b4a30,9 +34b4a31,e0 +34b4a32,e +34b4a33,90 +34b4a34,9 +34b4a35,e0 +34b4a36,c +34b4a37,d5 +34b4a38,5d +34b4a39,c0 +34b4a3a,3 +34b4a3b,ce +34b4a3c,ec +34b4a3d,40 +34b4a52,5f +34b4a53,ff +34b4a54,ff +34b4a55,d0 +34b4a58,d +34b4a59,a0 +34b4a5c,7e +34b4a5d,40 +34b4a60,cc +34b4a63,4 +34b4a64,e8 +34b4a67,a +34b4a68,d0 +34b4a6b,d +34b4a6c,a0 +34b4a6f,8e +34b4a70,40 +34b4a73,cc +34b4a8a,5 +34b4a8b,ce +34b4a8c,ec +34b4a8d,30 +34b4a8e,d +34b4a8f,c4 +34b4a90,5d +34b4a91,b0 +34b4a92,e +34b4a93,90 +34b4a94,b +34b4a95,d0 +34b4a96,b +34b4a97,c4 +34b4a98,5d +34b4a99,90 +34b4a9a,4 +34b4a9b,df +34b4a9c,fc +34b4a9d,20 +34b4a9e,1d +34b4a9f,b4 +34b4aa0,5c +34b4aa1,c0 +34b4aa2,5f +34b4aa3,60 +34b4aa4,9 +34b4aa5,e0 +34b4aa6,2e +34b4aa7,b3 +34b4aa8,5c +34b4aa9,d0 +34b4aaa,7 +34b4aab,de +34b4aac,ec +34b4aad,50 +34b4ac2,6 +34b4ac3,de +34b4ac4,eb +34b4ac6,d +34b4ac7,b3 +34b4ac8,7e +34b4ac9,90 +34b4aca,5f +34b4acb,50 +34b4acc,b +34b4acd,d0 34b4ace,5f -34b4acf,60 -34b4ad0,9 +34b4acf,50 +34b4ad0,b 34b4ad1,e0 -34b4ad2,2e +34b4ad2,d 34b4ad3,b3 -34b4ad4,5c -34b4ad5,d0 -34b4ad6,7 +34b4ad4,7e +34b4ad5,e0 +34b4ad6,6 34b4ad7,de -34b4ad8,ec -34b4ad9,50 -34b4aee,6 -34b4aef,de -34b4af0,eb -34b4af2,d -34b4af3,b3 -34b4af4,7e -34b4af5,90 -34b4af6,5f -34b4af7,50 -34b4af8,b -34b4af9,d0 -34b4afa,5f -34b4afb,50 -34b4afc,b -34b4afd,e0 -34b4afe,d -34b4aff,b3 -34b4b00,7e -34b4b01,e0 -34b4b02,6 -34b4b03,de -34b4b04,db -34b4b05,e0 -34b4b08,b -34b4b09,c0 -34b4b0a,9 -34b4b0b,74 -34b4b0c,9e -34b4b0d,70 -34b4b0e,5 -34b4b0f,de -34b4b10,d8 -34b4b2f,e -34b4b30,c0 -34b4b33,e -34b4b34,c0 -34b4b43,e -34b4b44,c0 -34b4b47,e -34b4b48,c0 -34b4b67,e -34b4b68,c0 -34b4b6b,e -34b4b6c,c0 -34b4b7b,d -34b4b7c,d0 -34b4b7f,e -34b4b80,c0 -34b4b83,4f -34b4b84,80 -34b4b87,9d -34b4ba0,29 -34b4ba1,c8 -34b4ba3,7b -34b4ba4,ed -34b4ba5,93 -34b4ba6,8d -34b4ba7,da -34b4ba8,40 -34b4baa,8d -34b4bab,da -34b4bac,40 -34b4baf,7b -34b4bb0,ec -34b4bb1,93 -34b4bb4,29 -34b4bb5,c8 -34b4bda,af -34b4bdb,ff -34b4bdc,ff -34b4bdd,f8 -34b4be6,af -34b4be7,ff -34b4be8,ff -34b4be9,f8 -34b4c0e,ac -34b4c0f,81 -34b4c12,4a -34b4c13,de -34b4c14,b6 -34b4c17,6 -34b4c18,ad -34b4c19,d6 -34b4c1b,6 -34b4c1c,ad -34b4c1d,d6 -34b4c1e,4a -34b4c1f,de -34b4c20,b6 -34b4c22,ac -34b4c23,81 -34b4c3e,4 -34b4c3f,be -34b4c40,ec -34b4c41,30 -34b4c42,9 -34b4c43,a4 -34b4c44,6e -34b4c45,a0 -34b4c48,1d -34b4c49,a0 -34b4c4b,2 -34b4c4c,cd -34b4c4d,30 -34b4c4f,c -34b4c50,c1 -34b4c53,e -34b4c54,90 -34b4c5b,e -34b4c5c,90 -34b4c5f,e -34b4c60,90 -34b4c76,1 -34b4c77,ae -34b4c78,ed -34b4c79,70 -34b4c7a,c -34b4c7b,d7 -34b4c7c,39 -34b4c7d,e4 -34b4c7e,7e -34b4c7f,20 -34b4c81,c9 -34b4c82,ba -34b4c83,a -34b4c84,ee -34b4c85,ca -34b4c86,d7 -34b4c87,6e -34b4c88,64 -34b4c89,da -34b4c8a,d6 -34b4c8b,9c -34b4c8d,aa -34b4c8e,d7 -34b4c8f,6e -34b4c90,64 -34b4c91,da -34b4c92,ba -34b4c93,a -34b4c94,ee -34b4c95,ca -34b4c96,6e -34b4c97,40 -34b4c9a,a -34b4c9b,d8 -34b4c9c,30 -34b4c9f,8d -34b4ca0,ee -34b4ca1,90 -34b4caf,3e -34b4cb0,d0 -34b4cb3,9d -34b4cb4,e6 -34b4cb7,cb -34b4cb8,cb -34b4cba,3 -34b4cbb,e8 -34b4cbc,ad -34b4cbe,8 -34b4cbf,e2 -34b4cc0,6f -34b4cc1,60 -34b4cc2,c -34b4cc3,c0 -34b4cc4,e -34b4cc5,a0 -34b4cc6,2e -34b4cc7,ff -34b4cc8,ff -34b4cc9,d0 -34b4cca,8e -34b4ccb,50 -34b4ccc,8 -34b4ccd,f5 -34b4cce,cd -34b4cd0,1 -34b4cd1,ea -34b4ce6,e -34b4ce7,ff -34b4ce8,ec -34b4ce9,40 -34b4cea,e -34b4ceb,90 -34b4cec,5d -34b4ced,c0 -34b4cee,e -34b4cef,90 -34b4cf0,a -34b4cf1,e0 -34b4cf2,e -34b4cf3,90 -34b4cf4,5d -34b4cf5,c0 -34b4cf6,e -34b4cf7,ff -34b4cf8,fd -34b4cf9,50 -34b4cfa,e -34b4cfb,90 -34b4cfc,4b -34b4cfd,d2 -34b4cfe,e +34b4ad8,db +34b4ad9,e0 +34b4adc,b +34b4add,c0 +34b4ade,9 +34b4adf,74 +34b4ae0,9e +34b4ae1,70 +34b4ae2,5 +34b4ae3,de +34b4ae4,d8 +34b4b03,e +34b4b04,c0 +34b4b07,e +34b4b08,c0 +34b4b17,e +34b4b18,c0 +34b4b1b,e +34b4b1c,c0 +34b4b3b,e +34b4b3c,c0 +34b4b3f,e +34b4b40,c0 +34b4b4f,d +34b4b50,d0 +34b4b53,e +34b4b54,c0 +34b4b57,4f +34b4b58,80 +34b4b5b,9d +34b4b74,29 +34b4b75,c8 +34b4b77,7b +34b4b78,ed +34b4b79,93 +34b4b7a,8d +34b4b7b,da +34b4b7c,40 +34b4b7e,8d +34b4b7f,da +34b4b80,40 +34b4b83,7b +34b4b84,ec +34b4b85,93 +34b4b88,29 +34b4b89,c8 +34b4bae,af +34b4baf,ff +34b4bb0,ff +34b4bb1,f8 +34b4bba,af +34b4bbb,ff +34b4bbc,ff +34b4bbd,f8 +34b4be2,ac +34b4be3,81 +34b4be6,4a +34b4be7,de +34b4be8,b6 +34b4beb,6 +34b4bec,ad +34b4bed,d6 +34b4bef,6 +34b4bf0,ad +34b4bf1,d6 +34b4bf2,4a +34b4bf3,de +34b4bf4,b6 +34b4bf6,ac +34b4bf7,81 +34b4c12,4 +34b4c13,be +34b4c14,ec +34b4c15,30 +34b4c16,9 +34b4c17,a4 +34b4c18,6e +34b4c19,a0 +34b4c1c,1d +34b4c1d,a0 +34b4c1f,2 +34b4c20,cd +34b4c21,30 +34b4c23,c +34b4c24,c1 +34b4c27,e +34b4c28,90 +34b4c2f,e +34b4c30,90 +34b4c33,e +34b4c34,90 +34b4c4a,1 +34b4c4b,ae +34b4c4c,ed +34b4c4d,70 +34b4c4e,c +34b4c4f,d7 +34b4c50,39 +34b4c51,e4 +34b4c52,7e +34b4c53,20 +34b4c55,c9 +34b4c56,ba +34b4c57,a +34b4c58,ee +34b4c59,ca +34b4c5a,d7 +34b4c5b,6e +34b4c5c,64 +34b4c5d,da +34b4c5e,d6 +34b4c5f,9c +34b4c61,aa +34b4c62,d7 +34b4c63,6e +34b4c64,64 +34b4c65,da +34b4c66,ba +34b4c67,a +34b4c68,ee +34b4c69,ca +34b4c6a,6e +34b4c6b,40 +34b4c6e,a +34b4c6f,d8 +34b4c70,30 +34b4c73,8d +34b4c74,ee +34b4c75,90 +34b4c83,3e +34b4c84,d0 +34b4c87,9d +34b4c88,e6 +34b4c8b,cb +34b4c8c,cb +34b4c8e,3 +34b4c8f,e8 +34b4c90,ad +34b4c92,8 +34b4c93,e2 +34b4c94,6f +34b4c95,60 +34b4c96,c +34b4c97,c0 +34b4c98,e +34b4c99,a0 +34b4c9a,2e +34b4c9b,ff +34b4c9c,ff +34b4c9d,d0 +34b4c9e,8e +34b4c9f,50 +34b4ca0,8 +34b4ca1,f5 +34b4ca2,cd +34b4ca4,1 +34b4ca5,ea +34b4cba,e +34b4cbb,ff +34b4cbc,ec +34b4cbd,40 +34b4cbe,e +34b4cbf,90 +34b4cc0,5d +34b4cc1,c0 +34b4cc2,e +34b4cc3,90 +34b4cc4,a +34b4cc5,e0 +34b4cc6,e +34b4cc7,90 +34b4cc8,5d +34b4cc9,c0 +34b4cca,e +34b4ccb,ff +34b4ccc,fd +34b4ccd,50 +34b4cce,e +34b4ccf,90 +34b4cd0,4b +34b4cd1,d2 +34b4cd2,e +34b4cd3,90 +34b4cd4,5 +34b4cd5,f6 +34b4cd6,e +34b4cd7,90 +34b4cd8,4b +34b4cd9,e3 +34b4cda,e +34b4cdb,ff +34b4cdc,ed +34b4cdd,80 +34b4cf3,9d +34b4cf4,ed +34b4cf5,80 +34b4cf6,8 +34b4cf7,e9 +34b4cf8,36 +34b4cf9,b0 +34b4cfa,d +34b4cfb,b0 +34b4cfe,3f 34b4cff,90 -34b4d00,5 -34b4d01,f6 -34b4d02,e -34b4d03,90 -34b4d04,4b -34b4d05,e3 -34b4d06,e -34b4d07,ff -34b4d08,ed -34b4d09,80 -34b4d1f,9d -34b4d20,ed -34b4d21,80 -34b4d22,8 -34b4d23,e9 -34b4d24,36 -34b4d25,b0 -34b4d26,d -34b4d27,b0 -34b4d2a,3f -34b4d2b,90 +34b4d02,5f +34b4d03,70 +34b4d06,1e +34b4d07,90 +34b4d0a,d +34b4d0b,b0 +34b4d0e,8 +34b4d0f,e9 +34b4d10,47 +34b4d11,b0 +34b4d13,9d +34b4d14,ed +34b4d15,80 +34b4d2a,5f +34b4d2b,fe +34b4d2c,d8 34b4d2e,5f -34b4d2f,70 -34b4d32,1e -34b4d33,90 -34b4d36,d -34b4d37,b0 -34b4d3a,8 -34b4d3b,e9 -34b4d3c,47 -34b4d3d,b0 -34b4d3f,9d -34b4d40,ed -34b4d41,80 -34b4d56,5f -34b4d57,fe -34b4d58,d8 -34b4d5a,5f -34b4d5b,65 -34b4d5c,ae -34b4d5d,80 -34b4d5e,5f -34b4d5f,60 -34b4d60,c -34b4d61,d0 -34b4d62,5f -34b4d63,60 -34b4d64,9 +34b4d2f,65 +34b4d30,ae +34b4d31,80 +34b4d32,5f +34b4d33,60 +34b4d34,c +34b4d35,d0 +34b4d36,5f +34b4d37,60 +34b4d38,9 +34b4d39,e0 +34b4d3a,5f +34b4d3b,60 +34b4d3c,9 +34b4d3d,f0 +34b4d3e,5f +34b4d3f,60 +34b4d40,9 +34b4d41,e0 +34b4d42,5f +34b4d43,60 +34b4d44,c +34b4d45,d0 +34b4d46,5f +34b4d47,65 +34b4d48,ae +34b4d49,80 +34b4d4a,5f +34b4d4b,fe +34b4d4c,d8 +34b4d62,d +34b4d63,ff +34b4d64,ff 34b4d65,e0 -34b4d66,5f -34b4d67,60 -34b4d68,9 -34b4d69,f0 -34b4d6a,5f -34b4d6b,60 -34b4d6c,9 -34b4d6d,e0 -34b4d6e,5f -34b4d6f,60 -34b4d70,c -34b4d71,d0 -34b4d72,5f -34b4d73,65 -34b4d74,ae -34b4d75,80 -34b4d76,5f -34b4d77,fe -34b4d78,d8 -34b4d8e,d -34b4d8f,ff -34b4d90,ff -34b4d91,e0 -34b4d92,d -34b4d93,b0 -34b4d96,d -34b4d97,b0 -34b4d9a,d -34b4d9b,b0 -34b4d9e,d -34b4d9f,ff -34b4da0,ff -34b4da1,c0 -34b4da2,d -34b4da3,b0 -34b4da6,d -34b4da7,b0 -34b4daa,d -34b4dab,b0 -34b4dae,d -34b4daf,ff -34b4db0,ff -34b4db1,f0 -34b4dc6,b -34b4dc7,ff -34b4dc8,ff -34b4dc9,f4 -34b4dca,b -34b4dcb,d0 -34b4dce,b -34b4dcf,d0 -34b4dd2,b -34b4dd3,d0 +34b4d66,d +34b4d67,b0 +34b4d6a,d +34b4d6b,b0 +34b4d6e,d +34b4d6f,b0 +34b4d72,d +34b4d73,ff +34b4d74,ff +34b4d75,c0 +34b4d76,d +34b4d77,b0 +34b4d7a,d +34b4d7b,b0 +34b4d7e,d +34b4d7f,b0 +34b4d82,d +34b4d83,ff +34b4d84,ff +34b4d85,f0 +34b4d9a,b +34b4d9b,ff +34b4d9c,ff +34b4d9d,f4 +34b4d9e,b +34b4d9f,d0 +34b4da2,b +34b4da3,d0 +34b4da6,b +34b4da7,d0 +34b4daa,b +34b4dab,ff +34b4dac,ff +34b4dad,c0 +34b4dae,b +34b4daf,d0 +34b4db2,b +34b4db3,d0 +34b4db6,b +34b4db7,d0 +34b4dba,b +34b4dbb,d0 +34b4dd2,1 +34b4dd3,ae +34b4dd4,ed +34b4dd5,60 34b4dd6,b -34b4dd7,ff -34b4dd8,ff -34b4dd9,c0 -34b4dda,b -34b4ddb,d0 -34b4dde,b -34b4ddf,d0 -34b4de2,b -34b4de3,d0 -34b4de6,b -34b4de7,d0 -34b4dfe,1 -34b4dff,ae -34b4e00,ed -34b4e01,60 -34b4e02,b -34b4e03,e7 -34b4e04,38 -34b4e05,a0 -34b4e06,4e -34b4e07,90 -34b4e0a,8f -34b4e0b,40 -34b4e0e,9f -34b4e0f,10 -34b4e10,bf -34b4e11,f2 -34b4e12,7f -34b4e13,40 -34b4e14,7 -34b4e15,f2 -34b4e16,4e -34b4e17,90 -34b4e18,7 -34b4e19,f2 -34b4e1a,b -34b4e1b,e7 -34b4e1c,39 -34b4e1d,f2 -34b4e1e,1 -34b4e1f,be -34b4e20,ed -34b4e21,90 -34b4e36,5f -34b4e37,60 -34b4e38,9 -34b4e39,e0 -34b4e3a,5f -34b4e3b,60 -34b4e3c,9 -34b4e3d,e0 -34b4e3e,5f -34b4e3f,60 -34b4e40,9 -34b4e41,e0 -34b4e42,5f -34b4e43,60 -34b4e44,9 -34b4e45,e0 -34b4e46,5f -34b4e47,ff -34b4e48,ff -34b4e49,e0 -34b4e4a,5f -34b4e4b,60 -34b4e4c,9 -34b4e4d,e0 -34b4e4e,5f -34b4e4f,60 -34b4e50,9 -34b4e51,e0 -34b4e52,5f -34b4e53,60 -34b4e54,9 -34b4e55,e0 -34b4e56,5f -34b4e57,60 -34b4e58,9 -34b4e59,e0 -34b4e6e,d -34b4e6f,ff -34b4e70,ff -34b4e71,b0 -34b4e73,d -34b4e74,b0 -34b4e77,d -34b4e78,b0 -34b4e7b,d -34b4e7c,b0 -34b4e7f,d -34b4e80,b0 -34b4e83,d -34b4e84,b0 -34b4e87,d -34b4e88,b0 -34b4e8b,d -34b4e8c,b0 -34b4e8e,d -34b4e8f,ff -34b4e90,ff -34b4e91,b0 -34b4ea7,cf -34b4ea8,ff -34b4ea9,40 -34b4eac,7f -34b4ead,40 -34b4eb0,7f -34b4eb1,40 -34b4eb4,7f -34b4eb5,40 -34b4eb8,7f -34b4eb9,40 -34b4ebc,7f -34b4ebd,30 -34b4ebe,75 -34b4ec0,9e -34b4ec2,8d -34b4ec3,64 -34b4ec4,dc -34b4ec6,2b -34b4ec7,ee -34b4ec8,c5 -34b4ede,5f -34b4edf,60 -34b4ee0,9 -34b4ee1,e7 -34b4ee2,5f -34b4ee3,60 -34b4ee4,9e -34b4ee5,70 -34b4ee6,5f -34b4ee7,69 -34b4ee8,e7 -34b4eea,5f -34b4eeb,be -34b4eec,80 -34b4eee,5f -34b4eef,ed -34b4ef0,b0 -34b4ef2,5f -34b4ef3,87 -34b4ef4,e8 -34b4ef6,5f -34b4ef7,60 -34b4ef8,ae -34b4ef9,40 -34b4efa,5f -34b4efb,60 -34b4efc,1d -34b4efd,c0 -34b4efe,5f -34b4eff,60 -34b4f00,6 -34b4f01,ea -34b4f16,c -34b4f17,c0 -34b4f1a,c -34b4f1b,c0 -34b4f1e,c -34b4f1f,c0 -34b4f22,c -34b4f23,c0 -34b4f26,c -34b4f27,c0 -34b4f2a,c -34b4f2b,c0 -34b4f2e,c -34b4f2f,c0 -34b4f32,c -34b4f33,c0 -34b4f36,c -34b4f37,ff -34b4f38,ff -34b4f39,f7 -34b4f4e,af -34b4f4f,a0 -34b4f50,c -34b4f51,f8 -34b4f52,ae -34b4f53,d0 -34b4f54,2e -34b4f55,e8 -34b4f56,ad -34b4f57,d5 -34b4f58,9b -34b4f59,e8 -34b4f5a,ad -34b4f5b,aa -34b4f5c,c8 -34b4f5d,e8 -34b4f5e,ad -34b4f5f,5d -34b4f60,e1 -34b4f61,e8 -34b4f62,ad -34b4f63,d -34b4f64,b0 -34b4f65,e8 -34b4f66,ad -34b4f69,e8 -34b4f6a,ad -34b4f6d,e8 -34b4f6e,ad -34b4f71,e8 -34b4f86,5f -34b4f87,c0 -34b4f88,8 -34b4f89,e0 -34b4f8a,5f -34b4f8b,e6 -34b4f8c,8 -34b4f8d,e0 -34b4f8e,5f -34b4f8f,cb -34b4f90,8 -34b4f91,e0 -34b4f92,5f -34b4f93,7e -34b4f94,48 -34b4f95,e0 -34b4f96,5f -34b4f97,5c -34b4f98,a8 -34b4f99,e0 -34b4f9a,5f -34b4f9b,57 -34b4f9c,e8 +34b4dd7,e7 +34b4dd8,38 +34b4dd9,a0 +34b4dda,4e +34b4ddb,90 +34b4dde,8f +34b4ddf,40 +34b4de2,9f +34b4de3,10 +34b4de4,bf +34b4de5,f2 +34b4de6,7f +34b4de7,40 +34b4de8,7 +34b4de9,f2 +34b4dea,4e +34b4deb,90 +34b4dec,7 +34b4ded,f2 +34b4dee,b +34b4def,e7 +34b4df0,39 +34b4df1,f2 +34b4df2,1 +34b4df3,be +34b4df4,ed +34b4df5,90 +34b4e0a,5f +34b4e0b,60 +34b4e0c,9 +34b4e0d,e0 +34b4e0e,5f +34b4e0f,60 +34b4e10,9 +34b4e11,e0 +34b4e12,5f +34b4e13,60 +34b4e14,9 +34b4e15,e0 +34b4e16,5f +34b4e17,60 +34b4e18,9 +34b4e19,e0 +34b4e1a,5f +34b4e1b,ff +34b4e1c,ff +34b4e1d,e0 +34b4e1e,5f +34b4e1f,60 +34b4e20,9 +34b4e21,e0 +34b4e22,5f +34b4e23,60 +34b4e24,9 +34b4e25,e0 +34b4e26,5f +34b4e27,60 +34b4e28,9 +34b4e29,e0 +34b4e2a,5f +34b4e2b,60 +34b4e2c,9 +34b4e2d,e0 +34b4e42,d +34b4e43,ff +34b4e44,ff +34b4e45,b0 +34b4e47,d +34b4e48,b0 +34b4e4b,d +34b4e4c,b0 +34b4e4f,d +34b4e50,b0 +34b4e53,d +34b4e54,b0 +34b4e57,d +34b4e58,b0 +34b4e5b,d +34b4e5c,b0 +34b4e5f,d +34b4e60,b0 +34b4e62,d +34b4e63,ff +34b4e64,ff +34b4e65,b0 +34b4e7b,cf +34b4e7c,ff +34b4e7d,40 +34b4e80,7f +34b4e81,40 +34b4e84,7f +34b4e85,40 +34b4e88,7f +34b4e89,40 +34b4e8c,7f +34b4e8d,40 +34b4e90,7f +34b4e91,30 +34b4e92,75 +34b4e94,9e +34b4e96,8d +34b4e97,64 +34b4e98,dc +34b4e9a,2b +34b4e9b,ee +34b4e9c,c5 +34b4eb2,5f +34b4eb3,60 +34b4eb4,9 +34b4eb5,e7 +34b4eb6,5f +34b4eb7,60 +34b4eb8,9e +34b4eb9,70 +34b4eba,5f +34b4ebb,69 +34b4ebc,e7 +34b4ebe,5f +34b4ebf,be +34b4ec0,80 +34b4ec2,5f +34b4ec3,ed +34b4ec4,b0 +34b4ec6,5f +34b4ec7,87 +34b4ec8,e8 +34b4eca,5f +34b4ecb,60 +34b4ecc,ae +34b4ecd,40 +34b4ece,5f +34b4ecf,60 +34b4ed0,1d +34b4ed1,c0 +34b4ed2,5f +34b4ed3,60 +34b4ed4,6 +34b4ed5,ea +34b4eea,c +34b4eeb,c0 +34b4eee,c +34b4eef,c0 +34b4ef2,c +34b4ef3,c0 +34b4ef6,c +34b4ef7,c0 +34b4efa,c +34b4efb,c0 +34b4efe,c +34b4eff,c0 +34b4f02,c +34b4f03,c0 +34b4f06,c +34b4f07,c0 +34b4f0a,c +34b4f0b,ff +34b4f0c,ff +34b4f0d,f7 +34b4f22,af +34b4f23,a0 +34b4f24,c +34b4f25,f8 +34b4f26,ae +34b4f27,d0 +34b4f28,2e +34b4f29,e8 +34b4f2a,ad +34b4f2b,d5 +34b4f2c,9b +34b4f2d,e8 +34b4f2e,ad +34b4f2f,aa +34b4f30,c8 +34b4f31,e8 +34b4f32,ad +34b4f33,5d +34b4f34,e1 +34b4f35,e8 +34b4f36,ad +34b4f37,d +34b4f38,b0 +34b4f39,e8 +34b4f3a,ad +34b4f3d,e8 +34b4f3e,ad +34b4f41,e8 +34b4f42,ad +34b4f45,e8 +34b4f5a,5f +34b4f5b,c0 +34b4f5c,8 +34b4f5d,e0 +34b4f5e,5f +34b4f5f,e6 +34b4f60,8 +34b4f61,e0 +34b4f62,5f +34b4f63,cb +34b4f64,8 +34b4f65,e0 +34b4f66,5f +34b4f67,7e +34b4f68,48 +34b4f69,e0 +34b4f6a,5f +34b4f6b,5c +34b4f6c,a8 +34b4f6d,e0 +34b4f6e,5f +34b4f6f,57 +34b4f70,e8 +34b4f71,e0 +34b4f72,5f +34b4f73,50 +34b4f74,dc +34b4f75,e0 +34b4f76,5f +34b4f77,50 +34b4f78,9e +34b4f79,e0 +34b4f7a,5f +34b4f7b,50 +34b4f7c,2e +34b4f7d,e0 +34b4f92,4 +34b4f93,ce +34b4f94,eb +34b4f95,20 +34b4f96,c +34b4f97,d5 +34b4f98,6e +34b4f99,a0 +34b4f9a,3e +34b4f9b,80 +34b4f9c,a 34b4f9d,e0 -34b4f9e,5f +34b4f9e,7f 34b4f9f,50 -34b4fa0,dc -34b4fa1,e0 -34b4fa2,5f -34b4fa3,50 -34b4fa4,9e -34b4fa5,e0 -34b4fa6,5f +34b4fa0,8 +34b4fa1,f2 +34b4fa2,7f +34b4fa3,40 +34b4fa4,8 +34b4fa5,f4 +34b4fa6,7f 34b4fa7,50 -34b4fa8,2e -34b4fa9,e0 -34b4fbe,4 -34b4fbf,ce -34b4fc0,eb -34b4fc1,20 -34b4fc2,c -34b4fc3,d5 -34b4fc4,6e -34b4fc5,a0 -34b4fc6,3e -34b4fc7,80 -34b4fc8,a -34b4fc9,e0 -34b4fca,7f -34b4fcb,50 -34b4fcc,8 -34b4fcd,f2 -34b4fce,7f -34b4fcf,40 -34b4fd0,8 -34b4fd1,f4 -34b4fd2,7f -34b4fd3,50 -34b4fd4,8 -34b4fd5,f2 -34b4fd6,3e -34b4fd7,80 -34b4fd8,a -34b4fd9,e0 -34b4fda,c -34b4fdb,d5 -34b4fdc,6e -34b4fdd,b0 -34b4fde,4 -34b4fdf,ce -34b4fe0,eb -34b4fe1,20 -34b4ff6,d -34b4ff7,ff -34b4ff8,ed -34b4ff9,60 -34b4ffa,d -34b4ffb,b0 -34b4ffc,5c -34b4ffd,e2 -34b4ffe,d -34b4fff,b0 -34b5000,6 -34b5001,f6 -34b5002,d -34b5003,b0 -34b5004,6 -34b5005,f6 -34b5006,d -34b5007,b0 -34b5008,5c -34b5009,e2 -34b500a,d -34b500b,ff -34b500c,ed -34b500d,60 -34b500e,d -34b500f,b0 -34b5012,d -34b5013,b0 -34b5016,d -34b5017,b0 -34b502e,4 -34b502f,ce -34b5030,eb -34b5031,20 -34b5032,c -34b5033,d5 -34b5034,6e -34b5035,a0 -34b5036,3e -34b5037,80 -34b5038,a -34b5039,e0 -34b503a,7f -34b503b,50 -34b503c,8 -34b503d,f2 -34b503e,7f -34b503f,40 -34b5040,8 -34b5041,f4 -34b5042,7f -34b5043,50 -34b5044,8 -34b5045,f1 -34b5046,3e -34b5047,80 -34b5048,a -34b5049,d0 -34b504a,c -34b504b,d5 -34b504c,6e -34b504d,a0 -34b504e,4 -34b504f,ce -34b5050,fc -34b5051,20 -34b5054,ae -34b5055,50 -34b5058,c -34b5059,80 -34b5066,5f -34b5067,fe -34b5068,eb -34b5069,20 -34b506a,5f -34b506b,71 -34b506c,7e -34b506d,b0 -34b506e,5f -34b506f,70 -34b5070,c -34b5071,d0 -34b5072,5f -34b5073,71 -34b5074,6e -34b5075,a0 -34b5076,5f -34b5077,ff -34b5078,ea -34b507a,5f -34b507b,72 -34b507c,ae -34b507d,40 -34b507e,5f -34b507f,70 -34b5080,d -34b5081,b0 -34b5082,5f -34b5083,70 -34b5084,8 -34b5085,e5 -34b5086,5f -34b5087,70 -34b5089,db -34b509e,6 -34b509f,ce -34b50a0,eb -34b50a1,30 -34b50a2,d -34b50a3,c4 -34b50a4,5a -34b50a5,90 -34b50a6,4f -34b50a7,60 -34b50aa,e -34b50ab,c6 -34b50ae,5 -34b50af,ce -34b50b0,eb -34b50b1,40 -34b50b4,6c -34b50b5,c0 -34b50b8,8 -34b50b9,e0 -34b50ba,c -34b50bb,73 -34b50bc,5c -34b50bd,d0 -34b50be,8 -34b50bf,de -34b50c0,ec -34b50c1,50 -34b50d6,cf -34b50d7,ff -34b50d8,ff -34b50d9,fb -34b50db,d -34b50dc,b0 -34b50df,d -34b50e0,b0 -34b50e3,d -34b50e4,b0 -34b50e7,d -34b50e8,b0 -34b50eb,d -34b50ec,b0 -34b50ef,d -34b50f0,b0 -34b50f3,d -34b50f4,b0 -34b50f7,d -34b50f8,b0 -34b510e,4f -34b510f,70 -34b5110,9 -34b5111,e0 -34b5112,4f -34b5113,70 -34b5114,9 -34b5115,e0 -34b5116,4f -34b5117,70 -34b5118,9 -34b5119,e0 -34b511a,4f -34b511b,70 -34b511c,9 -34b511d,e0 -34b511e,4f -34b511f,70 -34b5120,9 -34b5121,e0 -34b5122,3f -34b5123,70 -34b5124,9 -34b5125,e0 -34b5126,2e -34b5127,70 -34b5128,a -34b5129,d0 -34b512a,d -34b512b,c4 -34b512c,5d -34b512d,c0 -34b512e,5 -34b512f,ce -34b5130,ec -34b5131,40 -34b5146,ad -34b5148,3 -34b5149,e8 -34b514a,6f -34b514b,50 -34b514c,8 -34b514d,e3 -34b514e,e -34b514f,90 -34b5150,b -34b5151,c0 -34b5152,b -34b5153,c0 -34b5154,d -34b5155,90 -34b5156,8 -34b5157,e1 -34b5158,5e -34b5159,40 -34b515a,2 -34b515b,e7 -34b515c,ad -34b515f,cb -34b5160,ca -34b5163,9d -34b5164,e6 -34b5167,3e -34b5168,d0 -34b517e,e8 -34b5181,ad -34b5182,da -34b5185,cb -34b5186,cb -34b5189,da -34b518a,ac -34b518b,e -34b518c,c0 -34b518d,e8 -34b518e,8d -34b518f,6d -34b5190,e1 -34b5191,e5 -34b5192,6e -34b5193,9b -34b5194,d8 -34b5195,e0 -34b5196,1e -34b5197,c8 -34b5198,ac -34b5199,d0 -34b519a,d -34b519b,e3 -34b519c,7e -34b519d,c0 -34b519e,c -34b519f,d0 -34b51a0,e -34b51a1,a0 -34b51b6,6e -34b51b7,70 -34b51b8,7 -34b51b9,e7 -34b51ba,a -34b51bb,d2 -34b51bc,1d -34b51bd,b0 -34b51be,2 -34b51bf,da -34b51c0,ad -34b51c1,20 -34b51c3,7e -34b51c4,e7 -34b51c7,3e -34b51c8,e2 -34b51cb,bd -34b51cc,da -34b51ce,7 -34b51cf,e6 -34b51d0,7e -34b51d1,60 -34b51d2,3e -34b51d3,a0 -34b51d4,b -34b51d5,d0 -34b51d6,bd -34b51d7,20 -34b51d8,4 -34b51d9,e9 -34b51ee,ae -34b51ef,20 -34b51f0,5 -34b51f1,e8 -34b51f2,2d -34b51f3,a0 -34b51f4,c -34b51f5,c0 -34b51f6,7 -34b51f7,e5 -34b51f8,7e -34b51f9,50 -34b51fb,cc -34b51fc,da -34b51ff,4e -34b5200,d2 -34b5203,d -34b5204,b0 -34b5207,d -34b5208,b0 -34b520b,d -34b520c,b0 -34b520f,d -34b5210,b0 -34b5226,e -34b5227,ff -34b5228,ff -34b5229,f8 -34b522c,b -34b522d,d3 -34b5230,7e -34b5231,70 -34b5233,3 -34b5234,ea -34b5237,b -34b5238,d1 -34b523b,8e +34b4fa8,8 +34b4fa9,f2 +34b4faa,3e +34b4fab,80 +34b4fac,a +34b4fad,e0 +34b4fae,c +34b4faf,d5 +34b4fb0,6e +34b4fb1,b0 +34b4fb2,4 +34b4fb3,ce +34b4fb4,eb +34b4fb5,20 +34b4fca,d +34b4fcb,ff +34b4fcc,ed +34b4fcd,60 +34b4fce,d +34b4fcf,b0 +34b4fd0,5c +34b4fd1,e2 +34b4fd2,d +34b4fd3,b0 +34b4fd4,6 +34b4fd5,f6 +34b4fd6,d +34b4fd7,b0 +34b4fd8,6 +34b4fd9,f6 +34b4fda,d +34b4fdb,b0 +34b4fdc,5c +34b4fdd,e2 +34b4fde,d +34b4fdf,ff +34b4fe0,ed +34b4fe1,60 +34b4fe2,d +34b4fe3,b0 +34b4fe6,d +34b4fe7,b0 +34b4fea,d +34b4feb,b0 +34b5002,4 +34b5003,ce +34b5004,eb +34b5005,20 +34b5006,c +34b5007,d5 +34b5008,6e +34b5009,a0 +34b500a,3e +34b500b,80 +34b500c,a +34b500d,e0 +34b500e,7f +34b500f,50 +34b5010,8 +34b5011,f2 +34b5012,7f +34b5013,40 +34b5014,8 +34b5015,f4 +34b5016,7f +34b5017,50 +34b5018,8 +34b5019,f1 +34b501a,3e +34b501b,80 +34b501c,a +34b501d,d0 +34b501e,c +34b501f,d5 +34b5020,6e +34b5021,a0 +34b5022,4 +34b5023,ce +34b5024,fc +34b5025,20 +34b5028,ae +34b5029,50 +34b502c,c +34b502d,80 +34b503a,5f +34b503b,fe +34b503c,eb +34b503d,20 +34b503e,5f +34b503f,71 +34b5040,7e +34b5041,b0 +34b5042,5f +34b5043,70 +34b5044,c +34b5045,d0 +34b5046,5f +34b5047,71 +34b5048,6e +34b5049,a0 +34b504a,5f +34b504b,ff +34b504c,ea +34b504e,5f +34b504f,72 +34b5050,ae +34b5051,40 +34b5052,5f +34b5053,70 +34b5054,d +34b5055,b0 +34b5056,5f +34b5057,70 +34b5058,8 +34b5059,e5 +34b505a,5f +34b505b,70 +34b505d,db +34b5072,6 +34b5073,ce +34b5074,eb +34b5075,30 +34b5076,d +34b5077,c4 +34b5078,5a +34b5079,90 +34b507a,4f +34b507b,60 +34b507e,e +34b507f,c6 +34b5082,5 +34b5083,ce +34b5084,eb +34b5085,40 +34b5088,6c +34b5089,c0 +34b508c,8 +34b508d,e0 +34b508e,c +34b508f,73 +34b5090,5c +34b5091,d0 +34b5092,8 +34b5093,de +34b5094,ec +34b5095,50 +34b50aa,cf +34b50ab,ff +34b50ac,ff +34b50ad,fb +34b50af,d +34b50b0,b0 +34b50b3,d +34b50b4,b0 +34b50b7,d +34b50b8,b0 +34b50bb,d +34b50bc,b0 +34b50bf,d +34b50c0,b0 +34b50c3,d +34b50c4,b0 +34b50c7,d +34b50c8,b0 +34b50cb,d +34b50cc,b0 +34b50e2,4f +34b50e3,70 +34b50e4,9 +34b50e5,e0 +34b50e6,4f +34b50e7,70 +34b50e8,9 +34b50e9,e0 +34b50ea,4f +34b50eb,70 +34b50ec,9 +34b50ed,e0 +34b50ee,4f +34b50ef,70 +34b50f0,9 +34b50f1,e0 +34b50f2,4f +34b50f3,70 +34b50f4,9 +34b50f5,e0 +34b50f6,3f +34b50f7,70 +34b50f8,9 +34b50f9,e0 +34b50fa,2e +34b50fb,70 +34b50fc,a +34b50fd,d0 +34b50fe,d +34b50ff,c4 +34b5100,5d +34b5101,c0 +34b5102,5 +34b5103,ce +34b5104,ec +34b5105,40 +34b511a,ad +34b511c,3 +34b511d,e8 +34b511e,6f +34b511f,50 +34b5120,8 +34b5121,e3 +34b5122,e +34b5123,90 +34b5124,b +34b5125,c0 +34b5126,b +34b5127,c0 +34b5128,d +34b5129,90 +34b512a,8 +34b512b,e1 +34b512c,5e +34b512d,40 +34b512e,2 +34b512f,e7 +34b5130,ad +34b5133,cb +34b5134,ca +34b5137,9d +34b5138,e6 +34b513b,3e +34b513c,d0 +34b5152,e8 +34b5155,ad +34b5156,da +34b5159,cb +34b515a,cb +34b515d,da +34b515e,ac +34b515f,e +34b5160,c0 +34b5161,e8 +34b5162,8d +34b5163,6d +34b5164,e1 +34b5165,e5 +34b5166,6e +34b5167,9b +34b5168,d8 +34b5169,e0 +34b516a,1e +34b516b,c8 +34b516c,ac +34b516d,d0 +34b516e,d +34b516f,e3 +34b5170,7e +34b5171,c0 +34b5172,c +34b5173,d0 +34b5174,e +34b5175,a0 +34b518a,6e +34b518b,70 +34b518c,7 +34b518d,e7 +34b518e,a +34b518f,d2 +34b5190,1d +34b5191,b0 +34b5192,2 +34b5193,da +34b5194,ad +34b5195,20 +34b5197,7e +34b5198,e7 +34b519b,3e +34b519c,e2 +34b519f,bd +34b51a0,da +34b51a2,7 +34b51a3,e6 +34b51a4,7e +34b51a5,60 +34b51a6,3e +34b51a7,a0 +34b51a8,b +34b51a9,d0 +34b51aa,bd +34b51ab,20 +34b51ac,4 +34b51ad,e9 +34b51c2,ae +34b51c3,20 +34b51c4,5 +34b51c5,e8 +34b51c6,2d +34b51c7,a0 +34b51c8,c +34b51c9,c0 +34b51ca,7 +34b51cb,e5 +34b51cc,7e +34b51cd,50 +34b51cf,cc +34b51d0,da +34b51d3,4e +34b51d4,d2 +34b51d7,d +34b51d8,b0 +34b51db,d +34b51dc,b0 +34b51df,d +34b51e0,b0 +34b51e3,d +34b51e4,b0 +34b51fa,e +34b51fb,ff +34b51fc,ff +34b51fd,f8 +34b5200,b +34b5201,d3 +34b5204,7e +34b5205,70 +34b5207,3 +34b5208,ea +34b520b,b +34b520c,d1 +34b520f,8e +34b5210,50 +34b5212,4 +34b5213,e9 +34b5216,c +34b5217,c0 +34b521a,1f +34b521b,ff +34b521c,ff +34b521d,fa +34b522b,4f +34b522c,fc +34b522f,4f +34b5230,50 +34b5233,4f +34b5234,50 +34b5237,4f +34b5238,50 +34b523b,4f 34b523c,50 -34b523e,4 -34b523f,e9 -34b5242,c -34b5243,c0 -34b5246,1f -34b5247,ff -34b5248,ff -34b5249,fa +34b523f,4f +34b5240,50 +34b5243,4f +34b5244,50 +34b5247,4f +34b5248,50 +34b524b,4f +34b524c,50 +34b524f,4f +34b5250,50 +34b5253,4f +34b5254,50 34b5257,4f 34b5258,fc -34b525b,4f -34b525c,50 -34b525f,4f -34b5260,50 -34b5263,4f -34b5264,50 -34b5267,4f -34b5268,50 -34b526b,4f -34b526c,50 -34b526f,4f -34b5270,50 -34b5273,4f -34b5274,50 -34b5277,4f -34b5278,50 -34b527b,4f -34b527c,50 -34b527f,4f -34b5280,50 -34b5283,4f -34b5284,fc -34b5296,6e -34b5297,50 -34b529a,c -34b529b,b0 -34b529e,7 -34b529f,e3 -34b52a3,da -34b52a7,9e -34b52a8,20 -34b52ab,1e -34b52ac,90 -34b52af,a -34b52b0,d0 -34b52b3,3 -34b52b4,e8 -34b52b8,bc -34b52bc,4e -34b52bd,60 -34b52c0,b -34b52c1,c0 +34b526a,6e +34b526b,50 +34b526e,c +34b526f,b0 +34b5272,7 +34b5273,e3 +34b5277,da +34b527b,9e +34b527c,20 +34b527f,1e +34b5280,90 +34b5283,a +34b5284,d0 +34b5287,3 +34b5288,e8 +34b528c,bc +34b5290,4e +34b5291,60 +34b5294,b +34b5295,c0 +34b529b,df +34b529c,e0 +34b529f,8 +34b52a0,e0 +34b52a3,8 +34b52a4,e0 +34b52a7,8 +34b52a8,e0 +34b52ab,8 +34b52ac,e0 +34b52af,8 +34b52b0,e0 +34b52b3,8 +34b52b4,e0 +34b52b7,8 +34b52b8,e0 +34b52bb,8 +34b52bc,e0 +34b52bf,8 +34b52c0,e0 +34b52c3,8 +34b52c4,e0 34b52c7,df 34b52c8,e0 -34b52cb,8 -34b52cc,e0 -34b52cf,8 -34b52d0,e0 -34b52d3,8 -34b52d4,e0 -34b52d7,8 -34b52d8,e0 -34b52db,8 -34b52dc,e0 -34b52df,8 -34b52e0,e0 -34b52e3,8 -34b52e4,e0 -34b52e7,8 -34b52e8,e0 -34b52eb,8 -34b52ec,e0 -34b52ef,8 -34b52f0,e0 -34b52f3,df -34b52f4,e0 -34b5307,5e -34b5308,d2 -34b530b,dc -34b530c,db -34b530e,a -34b530f,d2 -34b5310,5e -34b5311,80 -34b5312,7e -34b5313,50 -34b5314,7 -34b5315,e5 -34b536a,ff -34b536b,ff -34b536c,ff -34b536d,fd -34b5372,2 -34b5373,ca -34b5377,2c -34b5378,90 -34b53b6,5 -34b53b7,ce -34b53b8,eb -34b53b9,10 -34b53ba,b -34b53bb,93 -34b53bc,6d -34b53bd,a0 -34b53c0,b -34b53c1,c0 -34b53c2,8 -34b53c3,de -34b53c4,ff -34b53c5,c0 -34b53c6,3e -34b53c7,93 -34b53c8,b -34b53c9,d0 -34b53ca,4f -34b53cb,82 -34b53cc,7e -34b53cd,d0 -34b53ce,a -34b53cf,ee -34b53d0,db -34b53d1,d0 -34b53de,d -34b53df,90 -34b53e2,d -34b53e3,90 -34b53e6,d -34b53e7,90 -34b53ea,d -34b53eb,90 -34b53ee,d -34b53ef,bd -34b53f0,ec -34b53f1,40 -34b53f2,d -34b53f3,e6 -34b53f4,5d -34b53f5,c0 -34b53f6,d -34b53f7,b0 -34b53f8,8 -34b53f9,e0 -34b53fa,d -34b53fb,a0 -34b53fc,7 -34b53fd,f2 -34b53fe,d -34b53ff,b0 -34b5400,8 -34b5401,e0 -34b5402,d -34b5403,e6 -34b5404,4d -34b5405,b0 +34b52db,5e +34b52dc,d2 +34b52df,dc +34b52e0,db +34b52e2,a +34b52e3,d2 +34b52e4,5e +34b52e5,80 +34b52e6,7e +34b52e7,50 +34b52e8,7 +34b52e9,e5 +34b533e,ff +34b533f,ff +34b5340,ff +34b5341,fd +34b5346,2 +34b5347,ca +34b534b,2c +34b534c,90 +34b538a,5 +34b538b,ce +34b538c,eb +34b538d,10 +34b538e,b +34b538f,93 +34b5390,6d +34b5391,a0 +34b5394,b +34b5395,c0 +34b5396,8 +34b5397,de +34b5398,ff +34b5399,c0 +34b539a,3e +34b539b,93 +34b539c,b +34b539d,d0 +34b539e,4f +34b539f,82 +34b53a0,7e +34b53a1,d0 +34b53a2,a +34b53a3,ee +34b53a4,db +34b53a5,d0 +34b53b2,d +34b53b3,90 +34b53b6,d +34b53b7,90 +34b53ba,d +34b53bb,90 +34b53be,d +34b53bf,90 +34b53c2,d +34b53c3,bd +34b53c4,ec +34b53c5,40 +34b53c6,d +34b53c7,e6 +34b53c8,5d +34b53c9,c0 +34b53ca,d +34b53cb,b0 +34b53cc,8 +34b53cd,e0 +34b53ce,d +34b53cf,a0 +34b53d0,7 +34b53d1,f2 +34b53d2,d +34b53d3,b0 +34b53d4,8 +34b53d5,e0 +34b53d6,d +34b53d7,e6 +34b53d8,4d +34b53d9,b0 +34b53da,d +34b53db,bd +34b53dc,ec +34b53dd,40 +34b53fb,8d +34b53fc,ed +34b53fd,70 +34b53fe,7 +34b53ff,e9 +34b5400,36 +34b5401,a0 +34b5402,c +34b5403,c0 34b5406,d -34b5407,bd -34b5408,ec -34b5409,40 -34b5427,8d -34b5428,ed -34b5429,70 -34b542a,7 -34b542b,e9 -34b542c,36 -34b542d,a0 -34b542e,c -34b542f,c0 -34b5432,d -34b5433,b0 -34b5436,c -34b5437,c0 -34b543a,7 -34b543b,e9 -34b543c,36 -34b543d,a0 -34b543f,8d -34b5440,ed -34b5441,70 -34b5450,b -34b5451,c0 -34b5454,b -34b5455,c0 -34b5458,b -34b5459,c0 -34b545c,b -34b545d,c0 -34b545e,5 -34b545f,de -34b5460,dc -34b5461,c0 -34b5462,d -34b5463,c4 -34b5464,8e -34b5465,c0 -34b5466,5f -34b5467,60 -34b5468,c -34b5469,c0 -34b546a,7f -34b546b,30 -34b546c,b -34b546d,c0 -34b546e,5f -34b546f,60 -34b5470,c +34b5407,b0 +34b540a,c +34b540b,c0 +34b540e,7 +34b540f,e9 +34b5410,36 +34b5411,a0 +34b5413,8d +34b5414,ed +34b5415,70 +34b5424,b +34b5425,c0 +34b5428,b +34b5429,c0 +34b542c,b +34b542d,c0 +34b5430,b +34b5431,c0 +34b5432,5 +34b5433,de +34b5434,dc +34b5435,c0 +34b5436,d +34b5437,c4 +34b5438,8e +34b5439,c0 +34b543a,5f +34b543b,60 +34b543c,c +34b543d,c0 +34b543e,7f +34b543f,30 +34b5440,b +34b5441,c0 +34b5442,5f +34b5443,60 +34b5444,c +34b5445,c0 +34b5446,d +34b5447,c4 +34b5448,8e +34b5449,c0 +34b544a,5 +34b544b,de +34b544c,dc +34b544d,c0 +34b546a,3 +34b546b,be +34b546c,ec +34b546d,30 +34b546e,c +34b546f,d5 +34b5470,4c 34b5471,c0 -34b5472,d -34b5473,c4 -34b5474,8e -34b5475,c0 -34b5476,5 -34b5477,de -34b5478,dc -34b5479,c0 -34b5496,3 -34b5497,be -34b5498,ec -34b5499,30 -34b549a,c -34b549b,d5 -34b549c,4c -34b549d,c0 -34b549e,4f -34b549f,60 -34b54a0,7 -34b54a1,e0 -34b54a2,6f +34b5472,4f +34b5473,60 +34b5474,7 +34b5475,e0 +34b5476,6f +34b5477,ff +34b5478,ff +34b5479,f3 +34b547a,4f +34b547b,50 +34b547e,c +34b547f,c5 +34b5480,38 +34b5481,c0 +34b5482,3 +34b5483,be +34b5484,ec +34b5485,60 +34b5493,5 +34b5494,de +34b5495,d0 +34b5497,c +34b5498,b2 +34b549b,d +34b549c,90 +34b549f,e +34b54a0,80 +34b54a2,d 34b54a3,ff 34b54a4,ff -34b54a5,f3 -34b54a6,4f -34b54a7,50 -34b54aa,c -34b54ab,c5 -34b54ac,38 -34b54ad,c0 -34b54ae,3 -34b54af,be -34b54b0,ec -34b54b1,60 -34b54bf,5 -34b54c0,de -34b54c1,d0 -34b54c3,c -34b54c4,b2 -34b54c7,d -34b54c8,90 -34b54cb,e -34b54cc,80 -34b54ce,d -34b54cf,ff -34b54d0,ff -34b54d1,d0 -34b54d3,e -34b54d4,80 -34b54d7,e -34b54d8,80 -34b54db,e -34b54dc,80 -34b54df,e -34b54e0,80 -34b54e3,e -34b54e4,80 -34b54e7,e -34b54e8,80 -34b5506,5 -34b5507,de -34b5508,dc -34b5509,c0 +34b54a5,d0 +34b54a7,e +34b54a8,80 +34b54ab,e +34b54ac,80 +34b54af,e +34b54b0,80 +34b54b3,e +34b54b4,80 +34b54b7,e +34b54b8,80 +34b54bb,e +34b54bc,80 +34b54da,5 +34b54db,de +34b54dc,dc +34b54dd,c0 +34b54de,d +34b54df,c4 +34b54e0,8e +34b54e1,c0 +34b54e2,5f +34b54e3,60 +34b54e4,c +34b54e5,c0 +34b54e6,7f +34b54e7,30 +34b54e8,b +34b54e9,c0 +34b54ea,5f +34b54eb,60 +34b54ec,c +34b54ed,c0 +34b54ee,d +34b54ef,c4 +34b54f0,8e +34b54f1,c0 +34b54f2,5 +34b54f3,de +34b54f4,dc +34b54f5,b0 +34b54f8,c +34b54f9,a0 +34b54fa,9 +34b54fb,94 +34b54fc,7e +34b54fd,60 +34b54fe,4 +34b54ff,ce +34b5500,e9 +34b5502,d +34b5503,a0 +34b5506,d +34b5507,a0 34b550a,d -34b550b,c4 -34b550c,8e -34b550d,c0 -34b550e,5f -34b550f,60 -34b5510,c -34b5511,c0 -34b5512,7f -34b5513,30 -34b5514,b -34b5515,c0 -34b5516,5f -34b5517,60 -34b5518,c -34b5519,c0 +34b550b,a0 +34b550e,d +34b550f,a0 +34b5512,d +34b5513,bd +34b5514,ed +34b5515,40 +34b5516,d +34b5517,e6 +34b5518,5d +34b5519,a0 34b551a,d -34b551b,c4 -34b551c,8e +34b551b,b0 +34b551c,b 34b551d,c0 -34b551e,5 -34b551f,de -34b5520,dc -34b5521,b0 -34b5524,c -34b5525,a0 -34b5526,9 -34b5527,94 -34b5528,7e -34b5529,60 -34b552a,4 -34b552b,ce -34b552c,e9 -34b552e,d -34b552f,a0 -34b5532,d -34b5533,a0 -34b5536,d -34b5537,a0 -34b553a,d -34b553b,a0 -34b553e,d -34b553f,bd -34b5540,ed -34b5541,40 -34b5542,d -34b5543,e6 -34b5544,5d -34b5545,a0 -34b5546,d -34b5547,b0 -34b5548,b -34b5549,c0 -34b554a,d -34b554b,a0 -34b554c,b -34b554d,c0 -34b554e,d -34b554f,a0 -34b5550,b -34b5551,c0 -34b5552,d -34b5553,a0 -34b5554,b -34b5555,c0 -34b5556,d -34b5557,a0 -34b5558,b -34b5559,c0 -34b5567,b -34b5568,c0 -34b5576,9 -34b5577,ff -34b5578,c0 -34b557b,b -34b557c,c0 -34b557f,b -34b5580,c0 -34b5583,b -34b5584,c0 -34b5587,b -34b5588,c0 -34b558b,b -34b558c,c0 -34b558e,e -34b558f,ff -34b5590,ff -34b5591,e0 +34b551e,d +34b551f,a0 +34b5520,b +34b5521,c0 +34b5522,d +34b5523,a0 +34b5524,b +34b5525,c0 +34b5526,d +34b5527,a0 +34b5528,b +34b5529,c0 +34b552a,d +34b552b,a0 +34b552c,b +34b552d,c0 +34b553b,b +34b553c,c0 +34b554a,9 +34b554b,ff +34b554c,c0 +34b554f,b +34b5550,c0 +34b5553,b +34b5554,c0 +34b5557,b +34b5558,c0 +34b555b,b +34b555c,c0 +34b555f,b +34b5560,c0 +34b5562,e +34b5563,ff +34b5564,ff +34b5565,e0 +34b5573,7 +34b5574,e0 +34b5582,7 +34b5583,ff +34b5584,e0 +34b5587,7 +34b5588,e0 +34b558b,7 +34b558c,e0 +34b558f,7 +34b5590,e0 +34b5593,7 +34b5594,e0 +34b5597,7 +34b5598,e0 +34b559b,7 +34b559c,e0 34b559f,7 34b55a0,e0 -34b55ae,7 -34b55af,ff -34b55b0,e0 -34b55b3,7 -34b55b4,e0 -34b55b7,7 -34b55b8,e0 -34b55bb,7 -34b55bc,e0 -34b55bf,7 -34b55c0,e0 -34b55c3,7 -34b55c4,e0 -34b55c7,7 -34b55c8,e0 -34b55cb,7 -34b55cc,e0 -34b55cf,1b -34b55d0,d0 -34b55d2,d -34b55d3,fe -34b55d4,70 -34b55d6,b -34b55d7,c0 -34b55da,b -34b55db,c0 -34b55de,b -34b55df,c0 -34b55e2,b -34b55e3,c0 -34b55e6,b -34b55e7,c0 -34b55e8,3d -34b55e9,c2 -34b55ea,b -34b55eb,c3 -34b55ec,db -34b55ee,b -34b55ef,dd -34b55f0,c0 -34b55f2,b -34b55f3,fc -34b55f4,e5 -34b55f6,b -34b55f7,d0 -34b55f8,cd -34b55f9,10 -34b55fa,b -34b55fb,c0 -34b55fc,3d -34b55fd,b0 -34b55fe,b -34b55ff,c0 -34b5600,7 -34b5601,e8 -34b560e,e -34b560f,ff -34b5610,40 -34b5613,5f -34b5614,40 -34b5617,5f -34b5618,40 -34b561b,5f -34b561c,40 -34b561f,5f -34b5620,40 -34b5623,5f -34b5624,40 -34b5627,5f -34b5628,40 -34b562b,5f -34b562c,40 -34b562f,4f -34b5630,50 -34b5633,e -34b5634,a0 -34b5637,8 -34b5638,ef -34b5639,b0 -34b5656,8d -34b5657,dd -34b5658,ae -34b5659,c0 -34b565a,8e -34b565b,4d -34b565c,c5 -34b565d,e4 -34b565e,8d -34b565f,c -34b5660,b0 -34b5661,e6 -34b5662,8d -34b5663,b -34b5664,a0 -34b5665,e7 -34b5666,8d -34b5667,b -34b5668,a0 -34b5669,e7 -34b566a,8d -34b566b,b -34b566c,a0 -34b566d,e7 -34b566e,8d -34b566f,b -34b5670,a0 -34b5671,e7 -34b568e,d -34b568f,bd -34b5690,ed -34b5691,40 -34b5692,d -34b5693,e6 -34b5694,5d -34b5695,a0 -34b5696,d -34b5697,b0 -34b5698,b -34b5699,c0 -34b569a,d -34b569b,a0 -34b569c,b -34b569d,c0 -34b569e,d -34b569f,a0 -34b56a0,b -34b56a1,c0 -34b56a2,d -34b56a3,a0 -34b56a4,b -34b56a5,c0 -34b56a6,d -34b56a7,a0 -34b56a8,b -34b56a9,c0 -34b56c6,4 -34b56c7,ce -34b56c8,eb -34b56c9,20 -34b56ca,c -34b56cb,d5 -34b56cc,6d -34b56cd,a0 -34b56ce,1e -34b56cf,70 -34b56d0,a -34b56d1,d0 -34b56d2,5f -34b56d3,60 -34b56d4,8 -34b56d5,e0 -34b56d6,1e -34b56d7,70 -34b56d8,a -34b56d9,d0 -34b56da,c -34b56db,d4 -34b56dc,6d -34b56dd,b0 -34b56de,4 -34b56df,ce -34b56e0,eb -34b56e1,20 -34b56fe,d -34b56ff,bd -34b5700,ec -34b5701,30 -34b5702,d -34b5703,e6 -34b5704,5d -34b5705,b0 -34b5706,d -34b5707,b0 -34b5708,9 -34b5709,e0 -34b570a,d -34b570b,a0 -34b570c,7 -34b570d,e0 -34b570e,d -34b570f,b0 -34b5710,8 -34b5711,e0 -34b5712,d -34b5713,e6 -34b5714,5d -34b5715,b0 -34b5716,d -34b5717,be -34b5718,ec -34b5719,40 -34b571a,d -34b571b,90 -34b571e,d -34b571f,90 -34b5722,d -34b5723,90 -34b5736,4 -34b5737,ce -34b5738,dc -34b5739,c0 -34b573a,c -34b573b,c4 -34b573c,7e -34b573d,c0 -34b573e,1e -34b573f,70 -34b5740,c -34b5741,c0 -34b5742,5f -34b5743,60 -34b5744,b -34b5745,c0 -34b5746,2e -34b5747,70 -34b5748,c -34b5749,c0 -34b574a,c -34b574b,c4 -34b574c,7e -34b574d,c0 -34b574e,5 -34b574f,ce -34b5750,db -34b5751,c0 -34b5754,a -34b5755,c0 -34b5758,a -34b5759,c0 -34b575c,a -34b575d,c0 -34b576f,cc -34b5770,de -34b5771,f9 -34b5773,ce -34b5774,83 -34b5777,cb -34b577b,ca -34b577f,ca -34b5783,ca -34b5787,ca -34b57a6,4 -34b57a7,ce -34b57a8,ea -34b57a9,10 -34b57aa,b -34b57ab,d4 -34b57ac,5b -34b57ad,60 -34b57ae,b -34b57af,d4 -34b57b2,3 -34b57b3,bd -34b57b4,db -34b57b5,20 -34b57b8,4d -34b57b9,a0 -34b57ba,b -34b57bb,94 -34b57bc,5e -34b57bd,a0 -34b57be,5 -34b57bf,ce -34b57c0,eb -34b57c1,20 -34b57d7,8e -34b57db,8e -34b57de,6f -34b57df,ff -34b57e0,ff -34b57e1,b0 -34b57e3,8e -34b57e7,8e -34b57eb,8e -34b57ef,8e -34b57f3,6e -34b57f4,70 -34b57f7,b -34b57f8,ef -34b57f9,b0 -34b5816,d -34b5817,a0 -34b5818,b -34b5819,c0 -34b581a,d -34b581b,a0 -34b581c,b -34b581d,c0 -34b581e,d -34b581f,a0 -34b5820,b -34b5821,c0 -34b5822,d -34b5823,a0 -34b5824,b -34b5825,c0 +34b55a3,1b +34b55a4,d0 +34b55a6,d +34b55a7,fe +34b55a8,70 +34b55aa,b +34b55ab,c0 +34b55ae,b +34b55af,c0 +34b55b2,b +34b55b3,c0 +34b55b6,b +34b55b7,c0 +34b55ba,b +34b55bb,c0 +34b55bc,3d +34b55bd,c2 +34b55be,b +34b55bf,c3 +34b55c0,db +34b55c2,b +34b55c3,dd +34b55c4,c0 +34b55c6,b +34b55c7,fc +34b55c8,e5 +34b55ca,b +34b55cb,d0 +34b55cc,cd +34b55cd,10 +34b55ce,b +34b55cf,c0 +34b55d0,3d +34b55d1,b0 +34b55d2,b +34b55d3,c0 +34b55d4,7 +34b55d5,e8 +34b55e2,e +34b55e3,ff +34b55e4,40 +34b55e7,5f +34b55e8,40 +34b55eb,5f +34b55ec,40 +34b55ef,5f +34b55f0,40 +34b55f3,5f +34b55f4,40 +34b55f7,5f +34b55f8,40 +34b55fb,5f +34b55fc,40 +34b55ff,5f +34b5600,40 +34b5603,4f +34b5604,50 +34b5607,e +34b5608,a0 +34b560b,8 +34b560c,ef +34b560d,b0 +34b562a,8d +34b562b,dd +34b562c,ae +34b562d,c0 +34b562e,8e +34b562f,4d +34b5630,c5 +34b5631,e4 +34b5632,8d +34b5633,c +34b5634,b0 +34b5635,e6 +34b5636,8d +34b5637,b +34b5638,a0 +34b5639,e7 +34b563a,8d +34b563b,b +34b563c,a0 +34b563d,e7 +34b563e,8d +34b563f,b +34b5640,a0 +34b5641,e7 +34b5642,8d +34b5643,b +34b5644,a0 +34b5645,e7 +34b5662,d +34b5663,bd +34b5664,ed +34b5665,40 +34b5666,d +34b5667,e6 +34b5668,5d +34b5669,a0 +34b566a,d +34b566b,b0 +34b566c,b +34b566d,c0 +34b566e,d +34b566f,a0 +34b5670,b +34b5671,c0 +34b5672,d +34b5673,a0 +34b5674,b +34b5675,c0 +34b5676,d +34b5677,a0 +34b5678,b +34b5679,c0 +34b567a,d +34b567b,a0 +34b567c,b +34b567d,c0 +34b569a,4 +34b569b,ce +34b569c,eb +34b569d,20 +34b569e,c +34b569f,d5 +34b56a0,6d +34b56a1,a0 +34b56a2,1e +34b56a3,70 +34b56a4,a +34b56a5,d0 +34b56a6,5f +34b56a7,60 +34b56a8,8 +34b56a9,e0 +34b56aa,1e +34b56ab,70 +34b56ac,a +34b56ad,d0 +34b56ae,c +34b56af,d4 +34b56b0,6d +34b56b1,b0 +34b56b2,4 +34b56b3,ce +34b56b4,eb +34b56b5,20 +34b56d2,d +34b56d3,bd +34b56d4,ec +34b56d5,30 +34b56d6,d +34b56d7,e6 +34b56d8,5d +34b56d9,b0 +34b56da,d +34b56db,b0 +34b56dc,9 +34b56dd,e0 +34b56de,d +34b56df,a0 +34b56e0,7 +34b56e1,e0 +34b56e2,d +34b56e3,b0 +34b56e4,8 +34b56e5,e0 +34b56e6,d +34b56e7,e6 +34b56e8,5d +34b56e9,b0 +34b56ea,d +34b56eb,be +34b56ec,ec +34b56ed,40 +34b56ee,d +34b56ef,90 +34b56f2,d +34b56f3,90 +34b56f6,d +34b56f7,90 +34b570a,4 +34b570b,ce +34b570c,dc +34b570d,c0 +34b570e,c +34b570f,c4 +34b5710,7e +34b5711,c0 +34b5712,1e +34b5713,70 +34b5714,c +34b5715,c0 +34b5716,5f +34b5717,60 +34b5718,b +34b5719,c0 +34b571a,2e +34b571b,70 +34b571c,c +34b571d,c0 +34b571e,c +34b571f,c4 +34b5720,7e +34b5721,c0 +34b5722,5 +34b5723,ce +34b5724,db +34b5725,c0 +34b5728,a +34b5729,c0 +34b572c,a +34b572d,c0 +34b5730,a +34b5731,c0 +34b5743,cc +34b5744,de +34b5745,f9 +34b5747,ce +34b5748,83 +34b574b,cb +34b574f,ca +34b5753,ca +34b5757,ca +34b575b,ca +34b577a,4 +34b577b,ce +34b577c,ea +34b577d,10 +34b577e,b +34b577f,d4 +34b5780,5b +34b5781,60 +34b5782,b +34b5783,d4 +34b5786,3 +34b5787,bd +34b5788,db +34b5789,20 +34b578c,4d +34b578d,a0 +34b578e,b +34b578f,94 +34b5790,5e +34b5791,a0 +34b5792,5 +34b5793,ce +34b5794,eb +34b5795,20 +34b57ab,8e +34b57af,8e +34b57b2,6f +34b57b3,ff +34b57b4,ff +34b57b5,b0 +34b57b7,8e +34b57bb,8e +34b57bf,8e +34b57c3,8e +34b57c7,6e +34b57c8,70 +34b57cb,b +34b57cc,ef +34b57cd,b0 +34b57ea,d +34b57eb,a0 +34b57ec,b +34b57ed,c0 +34b57ee,d +34b57ef,a0 +34b57f0,b +34b57f1,c0 +34b57f2,d +34b57f3,a0 +34b57f4,b +34b57f5,c0 +34b57f6,d +34b57f7,a0 +34b57f8,b +34b57f9,c0 +34b57fa,d +34b57fb,a0 +34b57fc,b +34b57fd,c0 +34b57fe,b +34b57ff,d4 +34b5800,7e +34b5801,c0 +34b5802,5 +34b5803,de +34b5804,db +34b5805,c0 +34b5822,6e +34b5823,30 +34b5824,7 +34b5825,e3 34b5826,d -34b5827,a0 +34b5827,90 34b5828,b 34b5829,c0 -34b582a,b -34b582b,d4 -34b582c,7e -34b582d,c0 +34b582a,a +34b582b,d0 +34b582c,1e +34b582d,80 34b582e,5 -34b582f,de -34b5830,db -34b5831,c0 -34b584e,6e -34b584f,30 -34b5850,7 -34b5851,e3 -34b5852,d -34b5853,90 -34b5854,b -34b5855,c0 -34b5856,a -34b5857,d0 -34b5858,1e -34b5859,80 -34b585a,5 -34b585b,e4 -34b585c,8e -34b585d,20 -34b585f,da -34b5860,cb -34b5863,9d -34b5864,e7 -34b5867,3e -34b5868,e0 -34b5886,e8 -34b5889,ac -34b588a,ca -34b588d,ca -34b588e,ac -34b588f,d -34b5890,b0 -34b5891,e7 -34b5892,6e -34b5893,3d -34b5894,d5 -34b5895,e2 -34b5896,e -34b5897,ab -34b5898,ca -34b5899,d0 -34b589a,c -34b589b,e7 -34b589c,9e -34b589d,b0 -34b589e,a -34b589f,e1 -34b58a0,5f -34b58a1,80 -34b58be,3d -34b58bf,a0 -34b58c0,b -34b58c1,c0 -34b58c2,6 -34b58c3,e6 -34b58c4,9e -34b58c5,40 -34b58c7,9e -34b58c8,e7 -34b58cb,2e -34b58cc,d0 -34b58cf,cc -34b58d0,da +34b582f,e4 +34b5830,8e +34b5831,20 +34b5833,da +34b5834,cb +34b5837,9d +34b5838,e7 +34b583b,3e +34b583c,e0 +34b585a,e8 +34b585d,ac +34b585e,ca +34b5861,ca +34b5862,ac +34b5863,d +34b5864,b0 +34b5865,e7 +34b5866,6e +34b5867,3d +34b5868,d5 +34b5869,e2 +34b586a,e +34b586b,ab +34b586c,ca +34b586d,d0 +34b586e,c +34b586f,e7 +34b5870,9e +34b5871,b0 +34b5872,a +34b5873,e1 +34b5874,5f +34b5875,80 +34b5892,3d +34b5893,a0 +34b5894,b +34b5895,c0 +34b5896,6 +34b5897,e6 +34b5898,9e +34b5899,40 +34b589b,9e +34b589c,e7 +34b589f,2e +34b58a0,d0 +34b58a3,cc +34b58a4,da +34b58a6,9 +34b58a7,e4 +34b58a8,6e +34b58a9,70 +34b58aa,6e +34b58ab,70 +34b58ac,9 +34b58ad,e4 +34b58ca,6e +34b58cb,50 +34b58cc,5 +34b58cd,e5 +34b58ce,d +34b58cf,a0 +34b58d0,b +34b58d1,d0 34b58d2,9 -34b58d3,e4 -34b58d4,6e -34b58d5,70 -34b58d6,6e -34b58d7,70 -34b58d8,9 -34b58d9,e4 -34b58f6,6e -34b58f7,50 -34b58f8,5 -34b58f9,e5 -34b58fa,d -34b58fb,a0 -34b58fc,b -34b58fd,d0 -34b58fe,9 -34b58ff,e0 -34b5900,e -34b5901,90 -34b5902,3 -34b5903,e7 -34b5904,8e -34b5905,30 -34b5907,cc -34b5908,cc -34b590b,7e -34b590c,e7 -34b590f,d -34b5910,e0 -34b5913,d -34b5914,a0 -34b5917,8e -34b5918,50 +34b58d3,e0 +34b58d4,e +34b58d5,90 +34b58d6,3 +34b58d7,e7 +34b58d8,8e +34b58d9,30 +34b58db,cc +34b58dc,cc +34b58df,7e +34b58e0,e7 +34b58e3,d +34b58e4,e0 +34b58e7,d +34b58e8,a0 +34b58eb,8e +34b58ec,50 +34b58ee,d +34b58ef,ea +34b5902,b +34b5903,ff +34b5904,ff +34b5905,c0 +34b5908,5e +34b5909,70 +34b590b,3 +34b590c,d9 +34b590f,c +34b5910,b0 +34b5913,bd +34b5914,20 +34b5916,9 +34b5917,e4 34b591a,d -34b591b,ea -34b592e,b -34b592f,ff -34b5930,ff -34b5931,c0 -34b5934,5e -34b5935,70 -34b5937,3 -34b5938,d9 -34b593b,c -34b593c,b0 -34b593f,bd +34b591b,ff +34b591c,ff +34b591d,c0 +34b592b,6 +34b592c,de +34b592d,a0 +34b592f,b +34b5930,d3 +34b5933,c +34b5934,b0 +34b5937,c +34b5938,b0 +34b593b,5e +34b593c,a0 +34b593e,b +34b593f,fd 34b5940,20 -34b5942,9 -34b5943,e4 -34b5946,d -34b5947,ff -34b5948,ff -34b5949,c0 -34b5957,6 +34b5943,7e +34b5944,90 +34b5947,d +34b5948,b0 +34b594b,c +34b594c,b0 +34b594f,c +34b5950,b0 +34b5953,b +34b5954,d4 +34b5957,5 34b5958,de 34b5959,a0 -34b595b,b -34b595c,d3 -34b595f,c -34b5960,b0 34b5963,c -34b5964,b0 -34b5967,5e +34b5964,a0 +34b5967,c 34b5968,a0 -34b596a,b -34b596b,fd -34b596c,20 -34b596f,7e -34b5970,90 -34b5973,d -34b5974,b0 +34b596b,c +34b596c,a0 +34b596f,c +34b5970,a0 +34b5973,c +34b5974,a0 34b5977,c -34b5978,b0 +34b5978,a0 34b597b,c -34b597c,b0 -34b597f,b -34b5980,d4 -34b5983,5 -34b5984,de -34b5985,a0 +34b597c,a0 +34b597f,c +34b5980,a0 +34b5983,c +34b5984,a0 +34b5987,c +34b5988,a0 +34b598b,c +34b598c,a0 34b598f,c 34b5990,a0 34b5993,c 34b5994,a0 -34b5997,c -34b5998,a0 -34b599b,c -34b599c,a0 -34b599f,c -34b59a0,a0 -34b59a3,c +34b599a,b +34b599b,ed +34b599c,30 +34b599f,4e +34b59a0,90 +34b59a3,d 34b59a4,a0 34b59a7,c 34b59a8,a0 -34b59ab,c -34b59ac,a0 -34b59af,c -34b59b0,a0 -34b59b3,c -34b59b4,a0 +34b59ab,b +34b59ac,c4 +34b59af,5 +34b59b0,ef +34b59b1,a0 +34b59b3,b +34b59b4,d5 34b59b7,c -34b59b8,a0 -34b59bb,c +34b59b8,b0 +34b59bb,d 34b59bc,a0 -34b59bf,c +34b59bf,d 34b59c0,a0 +34b59c3,5e +34b59c4,80 34b59c6,b -34b59c7,ed -34b59c8,30 -34b59cb,4e -34b59cc,90 -34b59cf,d -34b59d0,a0 -34b59d3,c -34b59d4,a0 -34b59d7,b -34b59d8,c4 -34b59db,5 -34b59dc,ef -34b59dd,a0 -34b59df,b -34b59e0,d5 -34b59e3,c -34b59e4,b0 -34b59e7,d -34b59e8,a0 -34b59eb,d -34b59ec,a0 -34b59ef,5e -34b59f0,80 -34b59f2,b -34b59f3,ec -34b59f4,20 -34b5a16,5d -34b5a17,ed -34b5a18,83 -34b5a19,a7 -34b5a1a,98 -34b5a1b,38 -34b5a1c,de -34b5a1d,c3 +34b59c7,ec +34b59c8,20 +34b59ea,5d +34b59eb,ed +34b59ec,83 +34b59ed,a7 +34b59ee,98 +34b59ef,38 +34b59f0,de +34b59f1,c3 diff --git a/data/symbols.json b/data/symbols.json index 0bb3e4cb6..d4309144c 100644 --- a/data/symbols.json +++ b/data/symbols.json @@ -1,10 +1,10 @@ { - "ADULT_INIT_ITEMS": "034835C0", - "ADULT_VALID_ITEMS": "034835CC", + "ADULT_INIT_ITEMS": "034835BC", + "ADULT_VALID_ITEMS": "034835C8", "EXTENDED_ITEM_DATA": "03482008", "FAIRY_ITEMS": "03481C03", "FAIRY_OCARINA_ITEM": "03481C02", - "FONT_TEXTURE": "034B456E", + "FONT_TEXTURE": "034B4542", "INITIAL_SAVE_DATA": "03481800", "ITEM_OVERRIDES": "03481000", "ITEM_TABLE": "03482050", @@ -14,20 +14,20 @@ "PLAYER_ID": "03481C00", "PLAYER_OVERRIDE_DATA": "03482000", "TIME_TRAVEL_SAVED_EQUIPS": "0348201C", - "cfg_dungeon_info_enable": "034B452C", - "cfg_dungeon_info_mq_enable": "034B4544", - "cfg_dungeon_info_mq_need_map": "034B4540", - "cfg_dungeon_info_reward_need_altar": "034B4538", - "cfg_dungeon_info_reward_need_compass": "034B453C", - "cfg_dungeon_is_mq": "034B4560", - "cfg_dungeon_rewards": "034B446C", - "dungeon_count": "034B4530", - "dungeons": "034B4490", - "font_sprite": "034B442C", - "heap_next": "034B4534", - "medal_colors": "034B447C", - "medals_sprite": "034B444C", - "quest_items_sprite": "034B443C", - "setup_db": "034B4550", - "stones_sprite": "034B445C" + "cfg_dungeon_info_enable": "034B4500", + "cfg_dungeon_info_mq_enable": "034B4518", + "cfg_dungeon_info_mq_need_map": "034B4514", + "cfg_dungeon_info_reward_need_altar": "034B450C", + "cfg_dungeon_info_reward_need_compass": "034B4510", + "cfg_dungeon_is_mq": "034B4534", + "cfg_dungeon_rewards": "034B4440", + "dungeon_count": "034B4504", + "dungeons": "034B4464", + "font_sprite": "034B4400", + "heap_next": "034B4508", + "medal_colors": "034B4450", + "medals_sprite": "034B4420", + "quest_items_sprite": "034B4410", + "setup_db": "034B4524", + "stones_sprite": "034B4430" } \ No newline at end of file From 399781c5fe08627a73c947c1e5d7466501d4e069 Mon Sep 17 00:00:00 2001 From: Nick Langille Date: Sun, 23 Sep 2018 06:04:17 -0400 Subject: [PATCH 581/755] Fix Ganon's Tower BK in dungeon info display --- ASM/build/asm_symbols.txt | 70 +- ASM/build/bundle.o | Bin 10156 -> 10168 bytes ASM/build/c_symbols.txt | 8 +- ASM/c/dungeon_info.c | 5 +- data/rom_patch.txt | 6585 +++++++++++++++++++------------------ data/symbols.json | 34 +- 6 files changed, 3360 insertions(+), 3342 deletions(-) diff --git a/ASM/build/asm_symbols.txt b/ASM/build/asm_symbols.txt index 939289e1d..c8e7ed0bb 100644 --- a/ASM/build/asm_symbols.txt +++ b/ASM/build/asm_symbols.txt @@ -1000,45 +1000,45 @@ 80405720 file_init,00000044 80405764 c_init,0000002C 80405790 c_after_game_state_update,00000088 -80405818 draw_dungeon_info,000009C0 -804061D8 text_init,0000002C -80406204 text_print,000000A8 -804062AC text_flush,00000148 -80406400 .byt:0010 -80406400 font_sprite -80406410 .byt:0010 -80406410 quest_items_sprite -80406420 .byt:0010 -80406420 medals_sprite -80406430 .byt:0010 -80406430 stones_sprite -80406440 .byt:000E -80406440 cfg_dungeon_rewards -80406450 .byt:0012 -80406450 medal_colors -80406464 .byt:009C -80406464 dungeons -80406500 .byt:0004 -80406500 cfg_dungeon_info_enable -80406504 .byt:0004 -80406504 dungeon_count -80406508 .byt:0004 -80406508 heap_next +80405818 draw_dungeon_info,000009CC +804061E4 text_init,0000002C +80406210 text_print,000000A8 +804062B8 text_flush,00000148 +8040640C .byt:0010 +8040640C font_sprite +8040641C .byt:0010 +8040641C quest_items_sprite +8040642C .byt:0010 +8040642C medals_sprite +8040643C .byt:0010 +8040643C stones_sprite +8040644C .byt:000E +8040644C cfg_dungeon_rewards +8040645C .byt:0012 +8040645C medal_colors +80406470 .byt:009C +80406470 dungeons 8040650C .byt:0004 -8040650C cfg_dungeon_info_reward_need_altar +8040650C cfg_dungeon_info_enable 80406510 .byt:0004 -80406510 cfg_dungeon_info_reward_need_compass +80406510 dungeon_count 80406514 .byt:0004 -80406514 cfg_dungeon_info_mq_need_map +80406514 heap_next 80406518 .byt:0004 -80406518 cfg_dungeon_info_mq_enable -80406524 .byt:0010 -80406524 setup_db -80406534 .byt:000E -80406534 cfg_dungeon_is_mq -80406542 .byt:14C8 -80406542 FONT_TEXTURE -80407A0A .byt:85F6 +80406518 cfg_dungeon_info_reward_need_altar +8040651C .byt:0004 +8040651C cfg_dungeon_info_reward_need_compass +80406520 .byt:0004 +80406520 cfg_dungeon_info_mq_need_map +80406524 .byt:0004 +80406524 cfg_dungeon_info_mq_enable +80406530 .byt:0010 +80406530 setup_db +80406540 .byt:000E +80406540 cfg_dungeon_is_mq +8040654E .byt:14C8 +8040654E FONT_TEXTURE +80407A16 .byt:85EA 80480000 DUMMY_ACTOR 80500000 C_HEAP  \ No newline at end of file diff --git a/ASM/build/bundle.o b/ASM/build/bundle.o index 57d8dbd4641a7e8b92d31fe79109e74f3790d2ae..4c6e78a27f5fa2fe4ca4cb61abc4531a1f0b95de 100644 GIT binary patch delta 924 zcmX|9J!n%=7(F-XPf+{rdoR(NDjG=AM2t`&Lx&7f910Gt7%+oFK*0>92nsp~$>8V^ zdIKsr6tR+_pz<6tICRL+Aw!1_85BA=1axq4$l&1l-o5yS@7#0m`Mz`RP4+hi8{NE` zd@ejpsqN@x>Q+*{iN>dsiR;&D380n+mLG#(w^&%jLZZ1_EUW<^-(j_O4%oR5Y(9l5 zBynoT%cW|GPEcLjJ2GYOuKFHzyeO&mqH3t;gC87H34tW>HV_U>J$pxuOh5Zm`B87_ z)m-}waA^iu=mFVTz&lTzBd!2T!mC8#tH5RIycw9kvG=s_o^e5LhaykZ(3+Q7v zUjm5kB-XW|C(huPGmtY9MH4g4s<6sL|lzm>{g5V!u zo^ygJk#hoGNI3roF%K^~o+Gv?2+MAx;si9xOT#8n&YSMM<<9$#?>o+bv7W}FPiO2? zhZ2Bu(qbt4J^PZO3zXg^j}H!nZER={>(q(_e delta 870 zcmX|8Eo@U!7(KT?Tf@)0@4XgC2LY0|@&;5Q5ET`OB`j$P6^M!n5|)5KPLR|hDw^B{ z5ET=IOjJN#Ma4wL#Kgn|VxnSVf`kghB!ct3`-O_{^xU5FopWzzok?eun8lCvHx=_X z8&;kd&8O__YOzp$)G7e38`j)Tn3UVyHg38RSu5z6^K2MoMRSm~W4jui0cgfRk@y0L zCvLm`(#+ko{@awY{k6|41O9Ti1YF+(>SZ9fMqDAT18c%Jh{Bt|J?erds(Y%sP2i#E zwuqwZsqdBgj{N?huf9|DExm3K{88bh2K@Cx%VJW*R(ybEF$u7DywTqGKKsQ7SQeEF z*stoFtBwWa0`}PNw^BfKKXcsxcA)|18X$#4z(QgS-)Vpr3wM1$IP{Cck#ZK1mk7sx zPdEWKgnuW>o+%IspAm&0@((HV{X;g5<=_Blh~R`MoQ?B^7k**X0v?xW-txgw*9S-2 zz%4oF1#S!e0#>;vS`xV@;)Qa~3ki=y&*K`=B}r|-#R(1ZGolE3D(I_WtbAYjh3Xk3 z`f9~LZ7hM@Qb3L-9}<&Zrn&s-yL!8 xxMehas_boss_key && z64_file.dungeon_items[d->index].boss_key) { + // Replace index 13 (Ganon's Castle) with 10 (Ganon's Tower) + int index = d->index == 13 ? 10 : d->index; + + if (d->has_boss_key && z64_file.dungeon_items[index].boss_key) { int top = start_top + ((icon_size + padding) * i); sprite_draw(db, &quest_items_sprite, 0, left, top, icon_size, icon_size); diff --git a/data/rom_patch.txt b/data/rom_patch.txt index 250d2cc55..414b7f142 100644 --- a/data/rom_patch.txt +++ b/data/rom_patch.txt @@ -6563,7 +6563,7 @@ ec9ce7,7a 34b35f4,ac 34b35f5,70 34b35f6,64 -34b35f7,30 +34b35f7,3c 34b35f8,24 34b35f9,42 34b35fa,29 @@ -6575,7 +6575,7 @@ ec9ce7,7a 34b3600,ac 34b3601,62 34b3602,64 -34b3603,20 +34b3603,2c 34b3604,3c 34b3605,2 34b3606,80 @@ -6586,7 +6586,7 @@ ec9ce7,7a 34b360c,ac 34b360d,43 34b360e,64 -34b360f,10 +34b360f,1c 34b3610,3c 34b3611,11 34b3612,80 @@ -6598,6 +6598,7 @@ ec9ce7,7a 34b3618,26 34b3619,24 34b361a,64 +34b361b,c 34b361d,40 34b361e,80 34b361f,25 @@ -6623,6 +6624,7 @@ ec9ce7,7a 34b3638,ae 34b3639,22 34b363a,64 +34b363b,c 34b363d,9 34b363e,48 34b363f,43 @@ -6633,7 +6635,7 @@ ec9ce7,7a 34b3644,24 34b3645,63 34b3646,65 -34b3647,42 +34b3647,4e 34b364a,20 34b364b,25 34b364e,30 @@ -6649,6 +6651,7 @@ ec9ce7,7a 34b3658,8d 34b3659,5 34b365a,64 +34b365b,c 34b365d,a4 34b365e,28 34b365f,21 @@ -6665,6 +6668,7 @@ ec9ce7,7a 34b3670,8d 34b3671,2 34b3672,64 +34b3673,c 34b3675,44 34b3676,10 34b3677,21 @@ -6709,11 +6713,11 @@ ec9ce7,7a 34b36a8,ac 34b36a9,83 34b36aa,65 -34b36ab,24 +34b36ab,30 34b36ac,24 34b36ad,84 34b36ae,65 -34b36af,24 +34b36af,30 34b36b0,ac 34b36b1,82 34b36b3,4 @@ -6761,7 +6765,7 @@ ec9ce7,7a 34b36e8,ac 34b36e9,62 34b36ea,65 -34b36eb,8 +34b36eb,14 34b36ed,4 34b36ee,17 34b36ef,c3 @@ -6793,7 +6797,7 @@ ec9ce7,7a 34b3710,8c 34b3711,62 34b3712,65 -34b3713,8 +34b3713,14 34b3715,44 34b3716,20 34b3717,21 @@ -6803,7 +6807,7 @@ ec9ce7,7a 34b371c,ac 34b371d,64 34b371e,65 -34b371f,8 +34b371f,14 34b3720,27 34b3721,bd 34b3722,ff @@ -6875,7 +6879,7 @@ ec9ce7,7a 34b377c,c 34b377d,10 34b377e,18 -34b377f,76 +34b377f,79 34b3784,8f 34b3785,bf 34b3787,14 @@ -7006,10 +7010,11 @@ ec9ce7,7a 34b381c,8c 34b381d,42 34b381e,65 +34b381f,c 34b3820,10 34b3821,40 34b3822,2 -34b3823,6b +34b3823,6e 34b3824,3c 34b3825,3 34b3826,80 @@ -7054,7 +7059,7 @@ ec9ce7,7a 34b3858,8c 34b3859,63 34b385a,65 -34b385b,28 +34b385b,34 34b385c,24 34b385d,45 34b385f,8 @@ -7088,7 +7093,7 @@ ec9ce7,7a 34b3880,8c 34b3881,42 34b3882,65 -34b3883,c +34b3883,18 34b3884,50 34b3885,40 34b3887,5 @@ -7116,7 +7121,7 @@ ec9ce7,7a 34b38a4,8c 34b38a5,55 34b38a6,65 -34b38a7,18 +34b38a7,24 34b38a8,12 34b38a9,a0 34b38ab,7 @@ -7131,7 +7136,7 @@ ec9ce7,7a 34b38b4,94 34b38b5,43 34b38b6,64 -34b38b7,4 +34b38b7,10 34b38b9,3 34b38ba,10 34b38bb,40 @@ -7151,7 +7156,7 @@ ec9ce7,7a 34b38cc,94 34b38cd,42 34b38ce,64 -34b38cf,4 +34b38cf,10 34b38d1,2 34b38d2,10 34b38d3,c0 @@ -7389,7 +7394,7 @@ ec9ce7,7a 34b3a00,24 34b3a01,a5 34b3a02,64 -34b3a03,20 +34b3a03,2c 34b3a04,94 34b3a05,a7 34b3a07,8 @@ -7406,7 +7411,7 @@ ec9ce7,7a 34b3a14,8c 34b3a15,42 34b3a16,65 -34b3a17,4 +34b3a17,10 34b3a18,18 34b3a19,40 34b3a1b,44 @@ -7421,7 +7426,7 @@ ec9ce7,7a 34b3a24,26 34b3a25,73 34b3a26,64 -34b3a27,64 +34b3a27,70 34b3a2a,90 34b3a2b,25 34b3a2c,3c @@ -7435,11 +7440,11 @@ ec9ce7,7a 34b3a34,26 34b3a35,d6 34b3a36,64 -34b3a37,40 +34b3a37,4c 34b3a38,24 34b3a39,42 34b3a3a,64 -34b3a3b,50 +34b3a3b,5c 34b3a3c,af 34b3a3d,a2 34b3a3f,3c @@ -7450,7 +7455,7 @@ ec9ce7,7a 34b3a44,24 34b3a45,42 34b3a46,64 -34b3a47,20 +34b3a47,2c 34b3a48,af 34b3a49,a2 34b3a4b,40 @@ -7461,7 +7466,7 @@ ec9ce7,7a 34b3a50,8f 34b3a51,c2 34b3a52,65 -34b3a53,10 +34b3a53,1c 34b3a54,50 34b3a55,40 34b3a57,b @@ -7610,7 +7615,7 @@ ec9ce7,7a 34b3b1c,8e 34b3b1d,e2 34b3b1e,65 -34b3b1f,4 +34b3b1f,10 34b3b20,2 34b3b21,42 34b3b22,10 @@ -7653,7 +7658,7 @@ ec9ce7,7a 34b3b50,24 34b3b51,a5 34b3b52,64 -34b3b53,30 +34b3b53,3c 34b3b54,94 34b3b55,a7 34b3b57,8 @@ -7673,11 +7678,11 @@ ec9ce7,7a 34b3b68,8c 34b3b69,42 34b3b6a,65 -34b3b6b,4 +34b3b6b,10 34b3b6c,18 34b3b6d,40 34b3b6e,1 -34b3b6f,96 +34b3b6f,99 34b3b70,3c 34b3b71,2 34b3b72,80 @@ -7689,7 +7694,7 @@ ec9ce7,7a 34b3b78,26 34b3b79,73 34b3b7a,64 -34b3b7b,64 +34b3b7b,70 34b3b7e,90 34b3b7f,25 34b3b80,3c @@ -7703,11 +7708,11 @@ ec9ce7,7a 34b3b88,26 34b3b89,94 34b3b8a,64 -34b3b8b,40 +34b3b8b,4c 34b3b8c,24 34b3b8d,42 34b3b8e,64 -34b3b8f,30 +34b3b8f,3c 34b3b90,af 34b3b91,a2 34b3b93,3c @@ -7726,7 +7731,7 @@ ec9ce7,7a 34b3ba0,8e 34b3ba1,e2 34b3ba2,65 -34b3ba3,10 +34b3ba3,1c 34b3ba4,10 34b3ba5,40 34b3ba7,8 @@ -7810,7 +7815,7 @@ ec9ce7,7a 34b3c10,8e 34b3c11,c2 34b3c12,65 -34b3c13,4 +34b3c13,10 34b3c14,2 34b3c15,42 34b3c16,10 @@ -7829,7 +7834,7 @@ ec9ce7,7a 34b3c24,8c 34b3c25,42 34b3c26,65 -34b3c27,4 +34b3c27,10 34b3c28,18 34b3c29,40 34b3c2b,10 @@ -7843,7 +7848,7 @@ ec9ce7,7a 34b3c34,26 34b3c35,52 34b3c36,64 -34b3c37,66 +34b3c37,72 34b3c38,24 34b3c39,14 34b3c3b,5 @@ -7864,7 +7869,7 @@ ec9ce7,7a 34b3c4c,c 34b3c4d,10 34b3c4e,18 -34b3c4f,81 +34b3c4f,84 34b3c50,2 34b3c51,40 34b3c52,20 @@ -7878,7 +7883,7 @@ ec9ce7,7a 34b3c5c,8e 34b3c5d,c2 34b3c5e,65 -34b3c5f,4 +34b3c5f,10 34b3c60,2 34b3c61,62 34b3c62,10 @@ -7897,7 +7902,7 @@ ec9ce7,7a 34b3c70,94 34b3c71,42 34b3c72,64 -34b3c73,4 +34b3c73,10 34b3c75,2 34b3c76,10 34b3c77,c0 @@ -7920,7 +7925,7 @@ ec9ce7,7a 34b3c8c,24 34b3c8d,a5 34b3c8e,64 -34b3c8f,10 +34b3c8f,1c 34b3c90,c 34b3c91,10 34b3c92,14 @@ -7935,7 +7940,7 @@ ec9ce7,7a 34b3c9c,8c 34b3c9d,42 34b3c9e,65 -34b3c9f,4 +34b3c9f,10 34b3ca0,18 34b3ca1,40 34b3ca3,2a @@ -7950,7 +7955,7 @@ ec9ce7,7a 34b3cac,26 34b3cad,73 34b3cae,64 -34b3caf,64 +34b3caf,70 34b3cb0,24 34b3cb1,14 34b3cb3,5 @@ -8048,7 +8053,7 @@ ec9ce7,7a 34b3d2c,c 34b3d2d,10 34b3d2e,18 -34b3d2f,81 +34b3d2f,84 34b3d30,27 34b3d31,a4 34b3d33,20 @@ -8061,7 +8066,7 @@ ec9ce7,7a 34b3d3c,8e 34b3d3d,e2 34b3d3e,65 -34b3d3f,4 +34b3d3f,10 34b3d40,2 34b3d41,42 34b3d42,10 @@ -8089,7 +8094,7 @@ ec9ce7,7a 34b3d5c,24 34b3d5d,a5 34b3d5e,64 -34b3d5f,10 +34b3d5f,1c 34b3d60,c 34b3d61,10 34b3d62,14 @@ -8104,10 +8109,10 @@ ec9ce7,7a 34b3d6c,8c 34b3d6d,42 34b3d6e,65 -34b3d6f,4 +34b3d6f,10 34b3d70,18 34b3d71,40 -34b3d73,2a +34b3d73,2d 34b3d74,3c 34b3d75,2 34b3d76,80 @@ -8119,21 +8124,20 @@ ec9ce7,7a 34b3d7c,26 34b3d7d,73 34b3d7e,64 -34b3d7f,64 +34b3d7f,70 34b3d82,90 34b3d83,25 -34b3d84,2 -34b3d85,60 -34b3d86,a0 -34b3d87,25 -34b3d88,3c -34b3d89,17 -34b3d8a,80 -34b3d8b,11 +34b3d84,24 +34b3d85,17 +34b3d87,d +34b3d88,2 +34b3d89,60 +34b3d8a,a0 +34b3d8b,25 34b3d8c,24 34b3d8d,42 34b3d8e,64 -34b3d8f,10 +34b3d8f,1c 34b3d90,af 34b3d91,a2 34b3d93,38 @@ -8141,1771 +8145,1776 @@ ec9ce7,7a 34b3d95,16 34b3d96,80 34b3d97,40 -34b3d99,12 -34b3d9a,10 -34b3d9b,40 -34b3d9d,52 -34b3d9e,10 -34b3d9f,21 -34b3da1,2 -34b3da2,10 -34b3da3,80 -34b3da5,54 +34b3d98,92 +34b3d99,63 +34b3d9c,50 +34b3d9d,77 +34b3d9f,1 +34b3da0,24 +34b3da1,3 +34b3da3,a +34b3da5,12 34b3da6,10 -34b3da7,21 -34b3da8,90 -34b3da9,42 -34b3dab,1 -34b3dac,30 -34b3dad,42 -34b3daf,40 -34b3db0,50 -34b3db1,40 -34b3db3,16 -34b3db4,26 -34b3db5,52 +34b3da7,40 +34b3da9,52 +34b3daa,10 +34b3dab,21 +34b3dad,2 +34b3dae,10 +34b3daf,80 +34b3db1,54 +34b3db2,10 +34b3db3,21 +34b3db4,90 +34b3db5,42 34b3db7,1 -34b3db8,36 -34b3db9,e2 -34b3dba,a5 -34b3dbb,d0 -34b3dbc,92 -34b3dbd,63 -34b3dc1,43 -34b3dc2,10 -34b3dc3,21 -34b3dc4,90 -34b3dc5,42 -34b3dc7,a8 -34b3dc8,30 +34b3db8,30 +34b3db9,42 +34b3dbb,40 +34b3dbc,50 +34b3dbd,40 +34b3dbf,16 +34b3dc0,26 +34b3dc1,52 +34b3dc3,1 +34b3dc4,3c +34b3dc5,2 +34b3dc6,80 +34b3dc7,11 +34b3dc8,34 34b3dc9,42 -34b3dcb,1 -34b3dcc,50 -34b3dcd,40 -34b3dcf,f -34b3dd0,26 -34b3dd1,52 -34b3dd3,1 -34b3dd4,24 -34b3dd5,2 -34b3dd7,10 -34b3dd8,af -34b3dd9,a2 -34b3ddb,18 -34b3ddc,af -34b3ddd,a2 -34b3ddf,14 -34b3de1,12 -34b3de2,10 -34b3de3,c0 -34b3de5,52 -34b3de6,10 -34b3de7,21 -34b3de9,2 -34b3dea,10 -34b3deb,40 -34b3dec,24 -34b3ded,42 -34b3def,4 -34b3df0,af -34b3df1,a2 -34b3df3,10 -34b3df4,3 -34b3df5,c0 -34b3df6,38 -34b3df7,25 -34b3dfa,30 -34b3dfb,25 -34b3dfc,8f -34b3dfd,a5 -34b3dff,38 -34b3e00,c -34b3e01,10 -34b3e02,14 -34b3e03,b1 -34b3e04,2 -34b3e06,20 +34b3dca,a5 +34b3dcb,d0 +34b3dcd,43 +34b3dce,10 +34b3dcf,21 +34b3dd0,90 +34b3dd1,42 +34b3dd3,a8 +34b3dd4,30 +34b3dd5,42 +34b3dd7,1 +34b3dd8,50 +34b3dd9,40 +34b3ddb,f +34b3ddc,26 +34b3ddd,52 +34b3ddf,1 +34b3de0,24 +34b3de1,2 +34b3de3,10 +34b3de4,af +34b3de5,a2 +34b3de7,18 +34b3de8,af +34b3de9,a2 +34b3deb,14 +34b3ded,12 +34b3dee,10 +34b3def,c0 +34b3df1,52 +34b3df2,10 +34b3df3,21 +34b3df5,2 +34b3df6,10 +34b3df7,40 +34b3df8,24 +34b3df9,42 +34b3dfb,4 +34b3dfc,af +34b3dfd,a2 +34b3dff,10 +34b3e00,3 +34b3e01,c0 +34b3e02,38 +34b3e03,25 +34b3e06,30 34b3e07,25 -34b3e08,26 -34b3e09,52 -34b3e0b,1 -34b3e0c,8e -34b3e0d,c2 -34b3e0e,65 -34b3e0f,4 +34b3e08,8f +34b3e09,a5 +34b3e0b,38 +34b3e0c,c +34b3e0d,10 +34b3e0e,14 +34b3e0f,b1 34b3e10,2 -34b3e11,42 -34b3e12,10 -34b3e13,2a -34b3e14,14 -34b3e15,40 -34b3e16,ff -34b3e17,e0 -34b3e18,26 -34b3e19,73 -34b3e1b,c -34b3e1c,24 -34b3e1d,7 -34b3e1f,1 -34b3e20,24 -34b3e21,6 -34b3e23,a -34b3e24,3c -34b3e25,5 -34b3e26,80 -34b3e27,40 +34b3e12,20 +34b3e13,25 +34b3e14,26 +34b3e15,52 +34b3e17,1 +34b3e18,8e +34b3e19,c2 +34b3e1a,65 +34b3e1b,10 +34b3e1c,2 +34b3e1d,42 +34b3e1e,10 +34b3e1f,2a +34b3e20,14 +34b3e21,40 +34b3e22,ff +34b3e23,dd +34b3e24,26 +34b3e25,73 +34b3e27,c 34b3e28,24 -34b3e29,a5 -34b3e2a,64 -34b3e2b,10 -34b3e2c,c -34b3e2d,10 -34b3e2e,14 -34b3e2f,1c -34b3e30,2 -34b3e32,20 -34b3e33,25 -34b3e34,3c -34b3e35,2 -34b3e36,80 -34b3e37,40 -34b3e38,8c -34b3e39,42 -34b3e3a,65 -34b3e3b,4 -34b3e3c,58 -34b3e3d,40 -34b3e3f,29 -34b3e40,26 -34b3e41,3e -34b3e43,24 -34b3e46,90 -34b3e47,25 -34b3e48,3c -34b3e49,13 -34b3e4a,80 -34b3e4b,40 +34b3e29,7 +34b3e2b,1 +34b3e2c,24 +34b3e2d,6 +34b3e2f,a +34b3e30,3c +34b3e31,5 +34b3e32,80 +34b3e33,40 +34b3e34,24 +34b3e35,a5 +34b3e36,64 +34b3e37,1c +34b3e38,c +34b3e39,10 +34b3e3a,14 +34b3e3b,1c +34b3e3c,2 +34b3e3e,20 +34b3e3f,25 +34b3e40,3c +34b3e41,2 +34b3e42,80 +34b3e43,40 +34b3e44,8c +34b3e45,42 +34b3e46,65 +34b3e47,10 +34b3e48,58 +34b3e49,40 +34b3e4b,29 34b3e4c,26 -34b3e4d,73 -34b3e4e,64 -34b3e4f,64 -34b3e50,3c -34b3e51,16 -34b3e52,80 -34b3e53,11 +34b3e4d,3e +34b3e4f,24 +34b3e52,90 +34b3e53,25 34b3e54,3c -34b3e55,17 +34b3e55,13 34b3e56,80 34b3e57,40 34b3e58,26 -34b3e59,f7 +34b3e59,73 34b3e5a,64 -34b3e5b,10 +34b3e5b,70 34b3e5c,3c -34b3e5d,14 +34b3e5d,16 34b3e5e,80 -34b3e5f,40 -34b3e61,12 -34b3e62,10 +34b3e5f,11 +34b3e60,3c +34b3e61,17 +34b3e62,80 34b3e63,40 -34b3e65,52 -34b3e66,10 -34b3e67,21 -34b3e69,2 -34b3e6a,10 -34b3e6b,80 -34b3e6d,53 +34b3e64,26 +34b3e65,f7 +34b3e66,64 +34b3e67,1c +34b3e68,3c +34b3e69,14 +34b3e6a,80 +34b3e6b,40 +34b3e6d,12 34b3e6e,10 -34b3e6f,21 -34b3e70,90 -34b3e71,42 -34b3e73,1 -34b3e74,30 -34b3e75,42 -34b3e77,20 -34b3e78,50 -34b3e79,40 -34b3e7b,15 -34b3e7c,26 -34b3e7d,52 +34b3e6f,40 +34b3e71,52 +34b3e72,10 +34b3e73,21 +34b3e75,2 +34b3e76,10 +34b3e77,80 +34b3e79,53 +34b3e7a,10 +34b3e7b,21 +34b3e7c,90 +34b3e7d,42 34b3e7f,1 -34b3e80,36 -34b3e81,c2 -34b3e82,a5 -34b3e83,d0 -34b3e84,8c -34b3e85,42 -34b3e87,a4 -34b3e88,3c -34b3e89,3 -34b3e8b,40 -34b3e8d,43 -34b3e8e,10 -34b3e8f,24 -34b3e90,50 -34b3e91,40 -34b3e93,f -34b3e94,26 -34b3e95,52 -34b3e97,1 -34b3e98,24 -34b3e99,2 -34b3e9b,10 -34b3e9c,af -34b3e9d,a2 -34b3e9f,18 -34b3ea0,af -34b3ea1,a2 -34b3ea3,14 -34b3ea5,12 -34b3ea6,10 -34b3ea7,c0 -34b3ea9,52 -34b3eaa,10 -34b3eab,21 -34b3ead,2 -34b3eae,10 -34b3eaf,40 -34b3eb0,24 -34b3eb1,42 -34b3eb3,4 -34b3eb4,af -34b3eb5,a2 -34b3eb7,10 -34b3eb8,3 -34b3eb9,c0 -34b3eba,38 -34b3ebb,25 -34b3ebe,30 -34b3ebf,25 -34b3ec0,2 -34b3ec1,e0 -34b3ec2,28 -34b3ec3,25 -34b3ec4,c -34b3ec5,10 -34b3ec6,14 -34b3ec7,b1 -34b3ec8,2 -34b3eca,20 +34b3e80,30 +34b3e81,42 +34b3e83,20 +34b3e84,50 +34b3e85,40 +34b3e87,15 +34b3e88,26 +34b3e89,52 +34b3e8b,1 +34b3e8c,36 +34b3e8d,c2 +34b3e8e,a5 +34b3e8f,d0 +34b3e90,8c +34b3e91,42 +34b3e93,a4 +34b3e94,3c +34b3e95,3 +34b3e97,40 +34b3e99,43 +34b3e9a,10 +34b3e9b,24 +34b3e9c,50 +34b3e9d,40 +34b3e9f,f +34b3ea0,26 +34b3ea1,52 +34b3ea3,1 +34b3ea4,24 +34b3ea5,2 +34b3ea7,10 +34b3ea8,af +34b3ea9,a2 +34b3eab,18 +34b3eac,af +34b3ead,a2 +34b3eaf,14 +34b3eb1,12 +34b3eb2,10 +34b3eb3,c0 +34b3eb5,52 +34b3eb6,10 +34b3eb7,21 +34b3eb9,2 +34b3eba,10 +34b3ebb,40 +34b3ebc,24 +34b3ebd,42 +34b3ebf,4 +34b3ec0,af +34b3ec1,a2 +34b3ec3,10 +34b3ec4,3 +34b3ec5,c0 +34b3ec6,38 +34b3ec7,25 +34b3eca,30 34b3ecb,25 -34b3ecc,26 -34b3ecd,52 -34b3ecf,1 -34b3ed0,8e -34b3ed1,82 -34b3ed2,65 -34b3ed3,4 +34b3ecc,2 +34b3ecd,e0 +34b3ece,28 +34b3ecf,25 +34b3ed0,c +34b3ed1,10 +34b3ed2,14 +34b3ed3,b1 34b3ed4,2 -34b3ed5,42 -34b3ed6,10 -34b3ed7,2a -34b3ed8,14 -34b3ed9,40 -34b3eda,ff -34b3edb,e2 -34b3edd,12 -34b3ede,10 -34b3edf,40 -34b3ee0,26 -34b3ee1,3e -34b3ee3,24 -34b3ee4,24 -34b3ee5,7 -34b3ee7,1 -34b3ee8,24 -34b3ee9,6 -34b3eeb,10 -34b3eec,3c -34b3eed,5 -34b3eee,80 -34b3eef,40 +34b3ed6,20 +34b3ed7,25 +34b3ed8,26 +34b3ed9,52 +34b3edb,1 +34b3edc,8e +34b3edd,82 +34b3ede,65 +34b3edf,10 +34b3ee0,2 +34b3ee1,42 +34b3ee2,10 +34b3ee3,2a +34b3ee4,14 +34b3ee5,40 +34b3ee6,ff +34b3ee7,e2 +34b3ee9,12 +34b3eea,10 +34b3eeb,40 +34b3eec,26 +34b3eed,3e +34b3eef,24 34b3ef0,24 -34b3ef1,a5 -34b3ef2,64 -34b3ef3,10 -34b3ef4,c -34b3ef5,10 -34b3ef6,14 -34b3ef7,1c -34b3ef8,2 -34b3efa,20 -34b3efb,25 -34b3efc,3c -34b3efd,2 -34b3efe,80 -34b3eff,40 -34b3f00,8c -34b3f01,42 -34b3f02,65 -34b3f03,4 -34b3f04,18 -34b3f05,40 -34b3f07,2b +34b3ef1,7 +34b3ef3,1 +34b3ef4,24 +34b3ef5,6 +34b3ef7,10 +34b3ef8,3c +34b3ef9,5 +34b3efa,80 +34b3efb,40 +34b3efc,24 +34b3efd,a5 +34b3efe,64 +34b3eff,1c +34b3f00,c +34b3f01,10 +34b3f02,14 +34b3f03,1c +34b3f04,2 +34b3f06,20 +34b3f07,25 34b3f08,3c -34b3f09,13 +34b3f09,2 34b3f0a,80 34b3f0b,40 -34b3f0c,26 -34b3f0d,73 -34b3f0e,64 -34b3f0f,64 -34b3f12,90 -34b3f13,25 -34b3f14,2 -34b3f15,60 -34b3f16,a0 -34b3f17,25 -34b3f18,3c -34b3f19,17 -34b3f1a,80 -34b3f1b,11 -34b3f1c,3c -34b3f1d,2 -34b3f1e,80 -34b3f1f,40 -34b3f20,24 -34b3f21,42 -34b3f22,64 -34b3f23,10 -34b3f24,af -34b3f25,a2 -34b3f27,38 +34b3f0c,8c +34b3f0d,42 +34b3f0e,65 +34b3f0f,10 +34b3f10,18 +34b3f11,40 +34b3f13,2b +34b3f14,3c +34b3f15,13 +34b3f16,80 +34b3f17,40 +34b3f18,26 +34b3f19,73 +34b3f1a,64 +34b3f1b,70 +34b3f1e,90 +34b3f1f,25 +34b3f20,2 +34b3f21,60 +34b3f22,a0 +34b3f23,25 +34b3f24,3c +34b3f25,17 +34b3f26,80 +34b3f27,11 34b3f28,3c -34b3f29,16 +34b3f29,2 34b3f2a,80 34b3f2b,40 -34b3f2d,12 -34b3f2e,10 -34b3f2f,40 -34b3f31,52 -34b3f32,10 -34b3f33,21 -34b3f35,2 -34b3f36,10 -34b3f37,80 -34b3f39,54 +34b3f2c,24 +34b3f2d,42 +34b3f2e,64 +34b3f2f,1c +34b3f30,af +34b3f31,a2 +34b3f33,38 +34b3f34,3c +34b3f35,16 +34b3f36,80 +34b3f37,40 +34b3f39,12 34b3f3a,10 -34b3f3b,21 -34b3f3c,90 -34b3f3d,42 -34b3f3f,1 -34b3f40,30 -34b3f41,42 -34b3f43,10 -34b3f44,50 -34b3f45,40 -34b3f47,17 -34b3f48,26 -34b3f49,52 +34b3f3b,40 +34b3f3d,52 +34b3f3e,10 +34b3f3f,21 +34b3f41,2 +34b3f42,10 +34b3f43,80 +34b3f45,54 +34b3f46,10 +34b3f47,21 +34b3f48,90 +34b3f49,42 34b3f4b,1 -34b3f4c,36 -34b3f4d,e2 -34b3f4e,a5 -34b3f4f,d0 -34b3f50,92 -34b3f51,63 -34b3f55,43 -34b3f56,10 -34b3f57,21 -34b3f58,90 -34b3f59,42 -34b3f5b,a8 -34b3f5d,2 -34b3f5e,10 -34b3f5f,82 -34b3f60,30 -34b3f61,42 -34b3f63,1 -34b3f64,50 -34b3f65,40 -34b3f67,f -34b3f68,26 -34b3f69,52 -34b3f6b,1 -34b3f6c,24 -34b3f6d,2 -34b3f6f,10 -34b3f70,af -34b3f71,a2 -34b3f73,18 -34b3f74,af -34b3f75,a2 -34b3f77,14 -34b3f79,12 -34b3f7a,10 -34b3f7b,c0 -34b3f7d,52 -34b3f7e,10 -34b3f7f,21 -34b3f81,2 -34b3f82,10 -34b3f83,40 -34b3f84,24 -34b3f85,42 -34b3f87,4 -34b3f88,af -34b3f89,a2 -34b3f8b,10 -34b3f8c,3 -34b3f8d,c0 -34b3f8e,38 -34b3f8f,25 -34b3f92,30 -34b3f93,25 -34b3f94,8f -34b3f95,a5 -34b3f97,38 -34b3f98,c -34b3f99,10 -34b3f9a,14 -34b3f9b,b1 -34b3f9c,2 -34b3f9e,20 +34b3f4c,30 +34b3f4d,42 +34b3f4f,10 +34b3f50,50 +34b3f51,40 +34b3f53,17 +34b3f54,26 +34b3f55,52 +34b3f57,1 +34b3f58,36 +34b3f59,e2 +34b3f5a,a5 +34b3f5b,d0 +34b3f5c,92 +34b3f5d,63 +34b3f61,43 +34b3f62,10 +34b3f63,21 +34b3f64,90 +34b3f65,42 +34b3f67,a8 +34b3f69,2 +34b3f6a,10 +34b3f6b,82 +34b3f6c,30 +34b3f6d,42 +34b3f6f,1 +34b3f70,50 +34b3f71,40 +34b3f73,f +34b3f74,26 +34b3f75,52 +34b3f77,1 +34b3f78,24 +34b3f79,2 +34b3f7b,10 +34b3f7c,af +34b3f7d,a2 +34b3f7f,18 +34b3f80,af +34b3f81,a2 +34b3f83,14 +34b3f85,12 +34b3f86,10 +34b3f87,c0 +34b3f89,52 +34b3f8a,10 +34b3f8b,21 +34b3f8d,2 +34b3f8e,10 +34b3f8f,40 +34b3f90,24 +34b3f91,42 +34b3f93,4 +34b3f94,af +34b3f95,a2 +34b3f97,10 +34b3f98,3 +34b3f99,c0 +34b3f9a,38 +34b3f9b,25 +34b3f9e,30 34b3f9f,25 -34b3fa0,26 -34b3fa1,52 -34b3fa3,1 -34b3fa4,8e -34b3fa5,c2 -34b3fa6,65 -34b3fa7,4 +34b3fa0,8f +34b3fa1,a5 +34b3fa3,38 +34b3fa4,c +34b3fa5,10 +34b3fa6,14 +34b3fa7,b1 34b3fa8,2 -34b3fa9,42 -34b3faa,10 -34b3fab,2a -34b3fac,14 -34b3fad,40 -34b3fae,ff -34b3faf,df -34b3fb0,26 -34b3fb1,73 -34b3fb3,c -34b3fb4,26 -34b3fb5,3e -34b3fb7,36 -34b3fb8,24 -34b3fb9,7 -34b3fbb,1 -34b3fbc,24 -34b3fbd,6 -34b3fbf,f -34b3fc0,3c -34b3fc1,5 -34b3fc2,80 -34b3fc3,40 +34b3faa,20 +34b3fab,25 +34b3fac,26 +34b3fad,52 +34b3faf,1 +34b3fb0,8e +34b3fb1,c2 +34b3fb2,65 +34b3fb3,10 +34b3fb4,2 +34b3fb5,42 +34b3fb6,10 +34b3fb7,2a +34b3fb8,14 +34b3fb9,40 +34b3fba,ff +34b3fbb,df +34b3fbc,26 +34b3fbd,73 +34b3fbf,c +34b3fc0,26 +34b3fc1,3e +34b3fc3,36 34b3fc4,24 -34b3fc5,a5 -34b3fc6,64 -34b3fc7,10 -34b3fc8,c -34b3fc9,10 -34b3fca,14 -34b3fcb,1c -34b3fcc,2 -34b3fce,20 -34b3fcf,25 -34b3fd0,3c -34b3fd1,2 -34b3fd2,80 -34b3fd3,40 -34b3fd4,8c -34b3fd5,42 -34b3fd6,65 -34b3fd7,4 -34b3fd8,18 -34b3fd9,40 -34b3fdb,61 +34b3fc5,7 +34b3fc7,1 +34b3fc8,24 +34b3fc9,6 +34b3fcb,f +34b3fcc,3c +34b3fcd,5 +34b3fce,80 +34b3fcf,40 +34b3fd0,24 +34b3fd1,a5 +34b3fd2,64 +34b3fd3,1c +34b3fd4,c +34b3fd5,10 +34b3fd6,14 +34b3fd7,1c +34b3fd8,2 +34b3fda,20 +34b3fdb,25 34b3fdc,3c -34b3fdd,13 +34b3fdd,2 34b3fde,80 34b3fdf,40 -34b3fe0,26 -34b3fe1,73 -34b3fe2,64 -34b3fe3,64 -34b3fe6,90 -34b3fe7,25 -34b3fe8,2 -34b3fe9,60 -34b3fea,a0 -34b3feb,25 -34b3fec,3c -34b3fed,17 -34b3fee,80 -34b3fef,11 -34b3ff0,3c -34b3ff1,2 -34b3ff2,80 -34b3ff3,40 -34b3ff4,24 -34b3ff5,42 -34b3ff6,64 -34b3ff7,10 -34b3ff8,af -34b3ff9,a2 -34b3ffb,38 +34b3fe0,8c +34b3fe1,42 +34b3fe2,65 +34b3fe3,10 +34b3fe4,18 +34b3fe5,40 +34b3fe7,61 +34b3fe8,3c +34b3fe9,13 +34b3fea,80 +34b3feb,40 +34b3fec,26 +34b3fed,73 +34b3fee,64 +34b3fef,70 +34b3ff2,90 +34b3ff3,25 +34b3ff4,2 +34b3ff5,60 +34b3ff6,a0 +34b3ff7,25 +34b3ff8,3c +34b3ff9,17 +34b3ffa,80 +34b3ffb,11 34b3ffc,3c -34b3ffd,16 +34b3ffd,2 34b3ffe,80 34b3fff,40 -34b4001,12 -34b4002,10 -34b4003,40 -34b4005,52 -34b4006,10 -34b4007,21 -34b4009,2 -34b400a,10 -34b400b,80 -34b400d,54 +34b4000,24 +34b4001,42 +34b4002,64 +34b4003,1c +34b4004,af +34b4005,a2 +34b4007,38 +34b4008,3c +34b4009,16 +34b400a,80 +34b400b,40 +34b400d,12 34b400e,10 -34b400f,21 -34b4010,90 -34b4011,42 -34b4013,1 -34b4014,30 -34b4015,42 -34b4017,10 -34b4018,50 -34b4019,40 -34b401b,17 -34b401c,26 -34b401d,52 +34b400f,40 +34b4011,52 +34b4012,10 +34b4013,21 +34b4015,2 +34b4016,10 +34b4017,80 +34b4019,54 +34b401a,10 +34b401b,21 +34b401c,90 +34b401d,42 34b401f,1 -34b4020,36 -34b4021,e2 -34b4022,a5 -34b4023,d0 -34b4024,92 -34b4025,63 -34b4029,43 -34b402a,10 -34b402b,21 -34b402c,90 -34b402d,42 -34b402f,a8 -34b4031,2 -34b4032,10 -34b4033,42 -34b4034,30 -34b4035,42 -34b4037,1 -34b4038,50 -34b4039,40 -34b403b,f -34b403c,26 -34b403d,52 -34b403f,1 -34b4040,24 -34b4041,2 -34b4043,10 -34b4044,af -34b4045,a2 -34b4047,18 -34b4048,af -34b4049,a2 -34b404b,14 -34b404d,12 -34b404e,10 -34b404f,c0 -34b4051,52 -34b4052,10 -34b4053,21 -34b4055,2 -34b4056,10 -34b4057,40 -34b4058,24 -34b4059,42 -34b405b,4 -34b405c,af -34b405d,a2 -34b405f,10 -34b4060,3 -34b4061,c0 -34b4062,38 -34b4063,25 -34b4066,30 -34b4067,25 -34b4068,8f -34b4069,a5 -34b406b,38 -34b406c,c -34b406d,10 -34b406e,14 -34b406f,b1 -34b4070,2 -34b4072,20 +34b4020,30 +34b4021,42 +34b4023,10 +34b4024,50 +34b4025,40 +34b4027,17 +34b4028,26 +34b4029,52 +34b402b,1 +34b402c,36 +34b402d,e2 +34b402e,a5 +34b402f,d0 +34b4030,92 +34b4031,63 +34b4035,43 +34b4036,10 +34b4037,21 +34b4038,90 +34b4039,42 +34b403b,a8 +34b403d,2 +34b403e,10 +34b403f,42 +34b4040,30 +34b4041,42 +34b4043,1 +34b4044,50 +34b4045,40 +34b4047,f +34b4048,26 +34b4049,52 +34b404b,1 +34b404c,24 +34b404d,2 +34b404f,10 +34b4050,af +34b4051,a2 +34b4053,18 +34b4054,af +34b4055,a2 +34b4057,14 +34b4059,12 +34b405a,10 +34b405b,c0 +34b405d,52 +34b405e,10 +34b405f,21 +34b4061,2 +34b4062,10 +34b4063,40 +34b4064,24 +34b4065,42 +34b4067,4 +34b4068,af +34b4069,a2 +34b406b,10 +34b406c,3 +34b406d,c0 +34b406e,38 +34b406f,25 +34b4072,30 34b4073,25 -34b4074,26 -34b4075,52 -34b4077,1 -34b4078,8e -34b4079,c2 -34b407a,65 -34b407b,4 +34b4074,8f +34b4075,a5 +34b4077,38 +34b4078,c +34b4079,10 +34b407a,14 +34b407b,b1 34b407c,2 -34b407d,42 -34b407e,10 -34b407f,2a -34b4080,14 -34b4081,40 -34b4082,ff -34b4083,df -34b4084,26 -34b4085,73 -34b4087,c -34b4088,12 -34b4089,a0 -34b408b,35 -34b408c,3c -34b408d,2 -34b408e,80 -34b408f,40 -34b4090,8c -34b4091,42 -34b4092,65 -34b4093,4 -34b4094,18 -34b4095,40 -34b4097,32 +34b407e,20 +34b407f,25 +34b4080,26 +34b4081,52 +34b4083,1 +34b4084,8e +34b4085,c2 +34b4086,65 +34b4087,10 +34b4088,2 +34b4089,42 +34b408a,10 +34b408b,2a +34b408c,14 +34b408d,40 +34b408e,ff +34b408f,df +34b4090,26 +34b4091,73 +34b4093,c +34b4094,12 +34b4095,a0 +34b4097,35 34b4098,3c -34b4099,13 +34b4099,2 34b409a,80 34b409b,40 -34b409c,26 -34b409d,73 -34b409e,64 -34b409f,64 -34b40a0,24 -34b40a1,14 -34b40a3,5 -34b40a6,90 -34b40a7,25 -34b40a8,3c -34b40a9,17 -34b40aa,80 -34b40ab,40 -34b40ac,3c -34b40ad,16 -34b40ae,80 -34b40af,40 -34b40b0,26 -34b40b1,d6 -34b40b2,65 -34b40b3,34 +34b409c,8c +34b409d,42 +34b409e,65 +34b409f,10 +34b40a0,18 +34b40a1,40 +34b40a3,32 +34b40a4,3c +34b40a5,13 +34b40a6,80 +34b40a7,40 +34b40a8,26 +34b40a9,73 +34b40aa,64 +34b40ab,70 +34b40ac,24 +34b40ad,14 +34b40af,5 +34b40b2,90 +34b40b3,25 34b40b4,3c -34b40b5,15 +34b40b5,17 34b40b6,80 34b40b7,40 -34b40b8,26 -34b40b9,b5 -34b40ba,63 -34b40bb,f4 -34b40bc,3c -34b40bd,2 -34b40be,80 +34b40b8,3c +34b40b9,16 +34b40ba,80 +34b40bb,40 +34b40bc,26 +34b40bd,d6 +34b40be,65 34b40bf,40 -34b40c0,24 -34b40c1,42 -34b40c2,63 -34b40c3,f8 -34b40c4,af -34b40c5,a2 -34b40c7,38 +34b40c0,3c +34b40c1,15 +34b40c2,80 +34b40c3,40 +34b40c4,26 +34b40c5,b5 +34b40c6,64 34b40c8,3c -34b40c9,1e +34b40c9,2 34b40ca,80 34b40cb,40 -34b40cc,8e -34b40cd,e2 -34b40ce,65 -34b40cf,14 -34b40d0,50 -34b40d1,40 -34b40d3,14 -34b40d4,92 -34b40d5,62 -34b40d9,12 -34b40da,10 -34b40db,40 -34b40dd,52 -34b40de,10 -34b40df,21 -34b40e1,2 -34b40e2,10 -34b40e3,80 -34b40e4,27 -34b40e5,c3 -34b40e6,64 -34b40e7,64 -34b40e9,43 +34b40cc,24 +34b40cd,42 +34b40ce,64 +34b40cf,4 +34b40d0,af +34b40d1,a2 +34b40d3,38 +34b40d4,3c +34b40d5,1e +34b40d6,80 +34b40d7,40 +34b40d8,8e +34b40d9,e2 +34b40da,65 +34b40db,20 +34b40dc,50 +34b40dd,40 +34b40df,14 +34b40e0,92 +34b40e1,62 +34b40e5,12 +34b40e6,10 +34b40e7,40 +34b40e9,52 34b40ea,10 34b40eb,21 -34b40ec,90 -34b40ed,42 -34b40ef,1 -34b40f0,30 -34b40f1,42 -34b40f3,10 -34b40f4,50 -34b40f5,40 -34b40f7,b -34b40f8,92 -34b40f9,62 -34b40fc,92 -34b40fd,63 -34b4100,3c -34b4101,2 -34b4102,80 -34b4103,11 -34b4104,34 -34b4105,42 -34b4106,a5 -34b4107,d0 -34b4109,43 -34b410a,10 -34b410b,21 -34b410c,90 -34b410d,42 -34b410f,a8 -34b4111,2 -34b4112,10 -34b4113,82 -34b4114,30 -34b4115,42 -34b4117,1 -34b4118,50 -34b4119,40 -34b411b,b -34b411c,26 -34b411d,52 -34b411f,1 -34b4120,92 -34b4121,62 -34b4125,56 -34b4126,10 -34b4127,21 -34b4128,90 -34b4129,42 -34b412c,14 -34b412d,40 -34b412f,2 -34b4130,2 -34b4131,a0 -34b4132,20 -34b4133,25 -34b4134,8f -34b4135,a4 -34b4137,38 -34b4138,2 -34b4139,80 -34b413a,30 -34b413b,25 -34b413c,c -34b413d,10 -34b413e,18 -34b413f,81 -34b4140,26 -34b4141,25 -34b4143,48 -34b4144,26 -34b4145,52 -34b4147,1 -34b4148,26 -34b4149,94 -34b414b,12 -34b414c,3c -34b414d,2 -34b414e,80 -34b414f,40 -34b4150,8c -34b4151,42 -34b4152,65 -34b4153,4 -34b4154,2 -34b4155,42 -34b4156,10 -34b4157,2a -34b4158,14 -34b4159,40 -34b415a,ff -34b415b,dc -34b415c,26 -34b415d,73 -34b415f,c -34b4160,c -34b4161,10 -34b4162,18 -34b4163,ab -34b4164,2 -34b4166,20 -34b4167,25 -34b4168,8e -34b4169,2 -34b416b,8 -34b416c,24 -34b416d,43 -34b416f,8 -34b4170,ae -34b4171,3 -34b4173,8 -34b4174,3c -34b4175,3 -34b4176,e9 -34b4178,ac +34b40ed,2 +34b40ee,10 +34b40ef,80 +34b40f0,27 +34b40f1,c3 +34b40f2,64 +34b40f3,70 +34b40f5,43 +34b40f6,10 +34b40f7,21 +34b40f8,90 +34b40f9,42 +34b40fb,1 +34b40fc,30 +34b40fd,42 +34b40ff,10 +34b4100,50 +34b4101,40 +34b4103,b +34b4104,92 +34b4105,62 +34b4108,92 +34b4109,63 +34b410c,3c +34b410d,2 +34b410e,80 +34b410f,11 +34b4110,34 +34b4111,42 +34b4112,a5 +34b4113,d0 +34b4115,43 +34b4116,10 +34b4117,21 +34b4118,90 +34b4119,42 +34b411b,a8 +34b411d,2 +34b411e,10 +34b411f,82 +34b4120,30 +34b4121,42 +34b4123,1 +34b4124,50 +34b4125,40 +34b4127,b +34b4128,26 +34b4129,52 +34b412b,1 +34b412c,92 +34b412d,62 +34b4131,56 +34b4132,10 +34b4133,21 +34b4134,90 +34b4135,42 +34b4138,14 +34b4139,40 +34b413b,2 +34b413c,2 +34b413d,a0 +34b413e,20 +34b413f,25 +34b4140,8f +34b4141,a4 +34b4143,38 +34b4144,2 +34b4145,80 +34b4146,30 +34b4147,25 +34b4148,c +34b4149,10 +34b414a,18 +34b414b,84 +34b414c,26 +34b414d,25 +34b414f,48 +34b4150,26 +34b4151,52 +34b4153,1 +34b4154,26 +34b4155,94 +34b4157,12 +34b4158,3c +34b4159,2 +34b415a,80 +34b415b,40 +34b415c,8c +34b415d,42 +34b415e,65 +34b415f,10 +34b4160,2 +34b4161,42 +34b4162,10 +34b4163,2a +34b4164,14 +34b4165,40 +34b4166,ff +34b4167,dc +34b4168,26 +34b4169,73 +34b416b,c +34b416c,c +34b416d,10 +34b416e,18 +34b416f,ae +34b4170,2 +34b4172,20 +34b4173,25 +34b4174,8e +34b4175,2 +34b4177,8 +34b4178,24 34b4179,43 -34b417c,ac -34b417d,40 -34b417f,4 -34b4180,8e -34b4181,2 -34b4183,8 -34b4184,24 +34b417b,8 +34b417c,ae +34b417d,3 +34b417f,8 +34b4180,3c +34b4181,3 +34b4182,e9 +34b4184,ac 34b4185,43 -34b4187,8 -34b4188,ae -34b4189,3 -34b418b,8 -34b418c,3c -34b418d,3 -34b418e,df -34b4190,ac +34b4188,ac +34b4189,40 +34b418b,4 +34b418c,8e +34b418d,2 +34b418f,8 +34b4190,24 34b4191,43 -34b4194,ac -34b4195,40 -34b4197,4 -34b4198,8f -34b4199,bf -34b419b,6c -34b419c,8f -34b419d,be -34b419f,68 -34b41a0,8f -34b41a1,b7 -34b41a3,64 +34b4193,8 +34b4194,ae +34b4195,3 +34b4197,8 +34b4198,3c +34b4199,3 +34b419a,df +34b419c,ac +34b419d,43 +34b41a0,ac +34b41a1,40 +34b41a3,4 34b41a4,8f -34b41a5,b6 -34b41a7,60 +34b41a5,bf +34b41a7,6c 34b41a8,8f -34b41a9,b5 -34b41ab,5c +34b41a9,be +34b41ab,68 34b41ac,8f -34b41ad,b4 -34b41af,58 +34b41ad,b7 +34b41af,64 34b41b0,8f -34b41b1,b3 -34b41b3,54 +34b41b1,b6 +34b41b3,60 34b41b4,8f -34b41b5,b2 -34b41b7,50 +34b41b5,b5 +34b41b7,5c 34b41b8,8f -34b41b9,b1 -34b41bb,4c +34b41b9,b4 +34b41bb,58 34b41bc,8f -34b41bd,b0 -34b41bf,48 -34b41c0,3 -34b41c1,e0 -34b41c3,8 -34b41c4,27 -34b41c5,bd -34b41c7,70 -34b41c8,10 -34b41ca,fe -34b41cb,a8 -34b41cc,26 -34b41cd,31 -34b41cf,14 -34b41d0,3 -34b41d1,e0 -34b41d3,8 -34b41d8,27 -34b41d9,bd -34b41da,ff -34b41db,e8 -34b41dc,af -34b41dd,bf -34b41df,14 -34b41e0,c -34b41e1,10 -34b41e2,15 -34b41e3,bb -34b41e4,24 -34b41e5,4 -34b41e6,4 -34b41e8,3c -34b41e9,3 -34b41ea,80 -34b41eb,40 -34b41ec,ac -34b41ed,62 -34b41ee,65 -34b41ef,20 -34b41f0,3c -34b41f1,3 -34b41f2,80 -34b41f3,40 -34b41f4,ac -34b41f5,62 -34b41f6,65 -34b41f7,1c -34b41f8,8f -34b41f9,bf -34b41fb,14 -34b41fc,3 -34b41fd,e0 -34b41ff,8 -34b4200,27 -34b4201,bd -34b4203,18 -34b4204,80 -34b4205,82 -34b4208,10 -34b4209,40 -34b420b,26 -34b420c,24 -34b420d,87 -34b420f,1 -34b4210,3c -34b4211,3 -34b4212,80 -34b4213,40 -34b4214,8c -34b4215,68 -34b4216,65 -34b4217,20 -34b4218,25 -34b4219,8 -34b421a,4 +34b41bd,b3 +34b41bf,54 +34b41c0,8f +34b41c1,b2 +34b41c3,50 +34b41c4,8f +34b41c5,b1 +34b41c7,4c +34b41c8,8f +34b41c9,b0 +34b41cb,48 +34b41cc,3 +34b41cd,e0 +34b41cf,8 +34b41d0,27 +34b41d1,bd +34b41d3,70 +34b41d4,10 +34b41d6,fe +34b41d7,a5 +34b41d8,26 +34b41d9,31 +34b41db,14 +34b41dc,3 +34b41dd,e0 +34b41df,8 +34b41e4,27 +34b41e5,bd +34b41e6,ff +34b41e7,e8 +34b41e8,af +34b41e9,bf +34b41eb,14 +34b41ec,c +34b41ed,10 +34b41ee,15 +34b41ef,bb +34b41f0,24 +34b41f1,4 +34b41f2,4 +34b41f4,3c +34b41f5,3 +34b41f6,80 +34b41f7,40 +34b41f8,ac +34b41f9,62 +34b41fa,65 +34b41fb,2c +34b41fc,3c +34b41fd,3 +34b41fe,80 +34b41ff,40 +34b4200,ac +34b4201,62 +34b4202,65 +34b4203,28 +34b4204,8f +34b4205,bf +34b4207,14 +34b4208,3 +34b4209,e0 +34b420b,8 +34b420c,27 +34b420d,bd +34b420f,18 +34b4210,80 +34b4211,82 +34b4214,10 +34b4215,40 +34b4217,26 +34b4218,24 +34b4219,87 +34b421b,1 34b421c,3c 34b421d,3 34b421e,80 34b421f,40 34b4220,8c -34b4221,63 +34b4221,68 34b4222,65 -34b4223,1c -34b4225,68 -34b4226,20 -34b4227,2b -34b4228,10 -34b4229,80 -34b422b,1e -34b422c,3c -34b422d,a -34b422e,ff -34b4230,25 -34b4231,4a -34b4232,f -34b4233,ff -34b4234,30 -34b4235,c6 -34b4236,f -34b4237,ff -34b4238,24 -34b4239,b -34b423a,f0 -34b423c,3c -34b423d,9 -34b423e,80 -34b423f,40 -34b4240,10 -34b4243,7 -34b4244,25 -34b4245,29 -34b4246,64 -34b4249,68 -34b424a,20 -34b424b,2b -34b424c,54 -34b424d,80 -34b424f,5 -34b4250,a0 -34b4251,62 -34b4254,3c -34b4255,2 -34b4256,80 -34b4257,40 -34b4258,3 -34b4259,e0 -34b425b,8 -34b425c,ac -34b425d,43 -34b425e,65 -34b425f,1c -34b4260,a0 -34b4261,62 -34b4264,30 -34b4265,a2 -34b4266,f -34b4267,ff -34b4269,2 -34b426a,23 -34b426c,8c +34b4223,2c +34b4224,25 +34b4225,8 +34b4226,4 +34b4228,3c +34b4229,3 +34b422a,80 +34b422b,40 +34b422c,8c +34b422d,63 +34b422e,65 +34b422f,28 +34b4231,68 +34b4232,20 +34b4233,2b +34b4234,10 +34b4235,80 +34b4237,1e +34b4238,3c +34b4239,a +34b423a,ff +34b423c,25 +34b423d,4a +34b423e,f +34b423f,ff +34b4240,30 +34b4241,c6 +34b4242,f +34b4243,ff +34b4244,24 +34b4245,b +34b4246,f0 +34b4248,3c +34b4249,9 +34b424a,80 +34b424b,40 +34b424c,10 +34b424f,7 +34b4250,25 +34b4251,29 +34b4252,64 +34b4253,c +34b4255,68 +34b4256,20 +34b4257,2b +34b4258,54 +34b4259,80 +34b425b,5 +34b425c,a0 +34b425d,62 +34b4260,3c +34b4261,2 +34b4262,80 +34b4263,40 +34b4264,3 +34b4265,e0 +34b4267,8 +34b4268,ac +34b4269,43 +34b426a,65 +34b426b,28 +34b426c,a0 34b426d,62 -34b4271,4a -34b4272,10 -34b4273,24 -34b4275,44 -34b4276,10 -34b4277,25 -34b4279,4b -34b427a,10 -34b427b,24 -34b427d,46 +34b4270,30 +34b4271,a2 +34b4272,f +34b4273,ff +34b4275,2 +34b4276,23 +34b4278,8c +34b4279,62 +34b427d,4a 34b427e,10 -34b427f,25 -34b4280,ac -34b4281,62 -34b4284,95 -34b4285,22 -34b4287,4 -34b4289,a2 -34b428a,28 -34b428b,21 -34b428c,24 -34b428d,e7 -34b428f,1 -34b4290,80 -34b4291,e2 -34b4292,ff -34b4293,ff -34b4294,14 -34b4295,40 -34b4296,ff -34b4297,ec +34b427f,24 +34b4281,44 +34b4282,10 +34b4283,25 +34b4285,4b +34b4286,10 +34b4287,24 +34b4289,46 +34b428a,10 +34b428b,25 +34b428c,ac +34b428d,62 +34b4290,95 +34b4291,22 +34b4293,4 +34b4295,a2 +34b4296,28 +34b4297,21 34b4298,24 -34b4299,63 -34b429b,4 -34b429c,3c -34b429d,2 -34b429e,80 -34b429f,40 -34b42a0,ac -34b42a1,43 -34b42a2,65 -34b42a3,1c -34b42a4,3 -34b42a5,e0 -34b42a7,8 -34b42ac,27 -34b42ad,bd -34b42ae,ff -34b42af,b0 -34b42b0,af -34b42b1,bf -34b42b3,4c -34b42b4,af -34b42b5,be -34b42b7,48 -34b42b8,af -34b42b9,b7 -34b42bb,44 +34b4299,e7 +34b429b,1 +34b429c,80 +34b429d,e2 +34b429e,ff +34b429f,ff +34b42a0,14 +34b42a1,40 +34b42a2,ff +34b42a3,ec +34b42a4,24 +34b42a5,63 +34b42a7,4 +34b42a8,3c +34b42a9,2 +34b42aa,80 +34b42ab,40 +34b42ac,ac +34b42ad,43 +34b42ae,65 +34b42af,28 +34b42b0,3 +34b42b1,e0 +34b42b3,8 +34b42b8,27 +34b42b9,bd +34b42ba,ff +34b42bb,b0 34b42bc,af -34b42bd,b6 -34b42bf,40 +34b42bd,bf +34b42bf,4c 34b42c0,af -34b42c1,b5 -34b42c3,3c +34b42c1,be +34b42c3,48 34b42c4,af -34b42c5,b4 -34b42c7,38 +34b42c5,b7 +34b42c7,44 34b42c8,af -34b42c9,b3 -34b42cb,34 +34b42c9,b6 +34b42cb,40 34b42cc,af -34b42cd,b2 -34b42cf,30 +34b42cd,b5 +34b42cf,3c 34b42d0,af -34b42d1,b1 -34b42d3,2c +34b42d1,b4 +34b42d3,38 34b42d4,af -34b42d5,b0 -34b42d7,28 -34b42d9,80 -34b42da,a8 -34b42db,25 -34b42de,b0 -34b42df,25 -34b42e2,90 -34b42e3,25 -34b42e4,3c -34b42e5,14 -34b42e6,80 -34b42e7,40 -34b42e8,26 -34b42e9,94 -34b42ea,64 -34b42ec,3c -34b42ed,1e -34b42ee,80 -34b42ef,40 +34b42d5,b3 +34b42d7,34 +34b42d8,af +34b42d9,b2 +34b42db,30 +34b42dc,af +34b42dd,b1 +34b42df,2c +34b42e0,af +34b42e1,b0 +34b42e3,28 +34b42e5,80 +34b42e6,a8 +34b42e7,25 +34b42ea,b0 +34b42eb,25 +34b42ee,90 +34b42ef,25 34b42f0,3c -34b42f1,13 +34b42f1,14 34b42f2,80 34b42f3,40 -34b42f4,3c -34b42f5,17 -34b42f6,38 -34b42f7,e3 -34b42f8,af -34b42f9,b4 -34b42fb,20 -34b42fc,24 -34b42fd,7 -34b42ff,12 -34b4300,2 -34b4301,c0 -34b4302,30 -34b4303,25 -34b4304,2 -34b4305,80 -34b4306,28 -34b4307,25 -34b4308,c -34b4309,10 -34b430a,14 -34b430b,1c +34b42f4,26 +34b42f5,94 +34b42f6,64 +34b42f7,c +34b42f8,3c +34b42f9,1e +34b42fa,80 +34b42fb,40 +34b42fc,3c +34b42fd,13 +34b42fe,80 +34b42ff,40 +34b4300,3c +34b4301,17 +34b4302,38 +34b4303,e3 +34b4304,af +34b4305,b4 +34b4307,20 +34b4308,24 +34b4309,7 +34b430b,12 34b430c,2 -34b430d,a0 -34b430e,20 +34b430d,c0 +34b430e,30 34b430f,25 -34b4310,8f -34b4311,c5 -34b4312,65 -34b4313,20 -34b4314,10 -34b4317,1f -34b4318,36 -34b4319,f1 -34b431a,8e -34b431b,39 -34b431c,24 -34b431d,42 -34b431e,ff -34b431f,e0 -34b4321,51 -34b4323,18 -34b4326,18 -34b4327,10 -34b4329,3 -34b432a,18 -34b432b,83 -34b432d,2 -34b432e,27 -34b432f,c3 -34b4331,64 +34b4310,2 +34b4311,80 +34b4312,28 +34b4313,25 +34b4314,c +34b4315,10 +34b4316,14 +34b4317,1c +34b4318,2 +34b4319,a0 +34b431a,20 +34b431b,25 +34b431c,8f +34b431d,c5 +34b431e,65 +34b431f,2c +34b4320,10 +34b4323,1f +34b4324,36 +34b4325,f1 +34b4326,8e +34b4327,39 +34b4328,24 +34b4329,42 +34b432a,ff +34b432b,e0 +34b432d,51 +34b432f,18 34b4332,18 -34b4333,23 -34b4334,14 -34b4335,72 -34b4337,16 -34b4338,24 -34b4339,b0 -34b433b,4 -34b433c,8c -34b433d,a7 -34b4341,7 -34b4342,3b -34b4343,2 -34b4345,51 -34b4347,18 -34b434a,30 -34b434b,10 -34b434d,6 -34b434e,30 -34b434f,83 -34b4351,c4 -34b4352,30 -34b4353,23 -34b4355,6 -34b4356,18 -34b4357,c0 -34b4359,66 +34b4333,10 +34b4335,3 +34b4336,18 +34b4337,83 +34b4339,2 +34b433a,27 +34b433b,c3 +34b433d,64 +34b433e,18 +34b433f,23 +34b4340,14 +34b4341,72 +34b4343,16 +34b4344,24 +34b4345,b0 +34b4347,4 +34b4348,8c +34b4349,a7 +34b434d,7 +34b434e,3b +34b434f,2 +34b4351,51 +34b4353,18 +34b4356,30 +34b4357,10 +34b4359,6 34b435a,30 -34b435b,21 -34b435d,6 +34b435b,83 +34b435d,c4 34b435e,30 -34b435f,40 -34b4360,96 -34b4361,83 -34b4363,6 -34b4364,af -34b4365,a3 -34b4367,18 -34b4368,96 -34b4369,83 -34b436b,4 -34b436c,af -34b436d,a3 -34b436f,14 -34b4370,8c +34b435f,23 +34b4361,6 +34b4362,18 +34b4363,c0 +34b4365,66 +34b4366,30 +34b4367,21 +34b4369,6 +34b436a,30 +34b436b,40 +34b436c,96 +34b436d,83 +34b436f,6 +34b4370,af 34b4371,a3 -34b4374,30 -34b4375,63 -34b4376,f -34b4377,ff +34b4373,18 +34b4374,96 +34b4375,83 +34b4377,4 34b4378,af 34b4379,a3 -34b437b,10 -34b437c,30 -34b437d,e7 -34b437e,f -34b437f,ff -34b4381,46 -34b4382,30 -34b4383,23 -34b4384,8f -34b4385,a5 -34b4387,20 -34b4388,c -34b4389,10 -34b438a,14 -34b438b,b1 -34b438c,2 -34b438d,a0 -34b438e,20 -34b438f,25 -34b4390,2 -34b4392,28 -34b4393,25 -34b4394,8e -34b4395,62 -34b4396,65 -34b4397,1c -34b4399,a2 -34b439a,10 -34b439b,2b -34b439c,54 -34b439d,40 -34b439e,ff -34b439f,df -34b43a0,80 -34b43a1,a2 -34b43a4,26 -34b43a5,52 -34b43a7,1 -34b43a8,24 -34b43a9,2 -34b43ab,6 -34b43ac,16 -34b43ad,42 -34b43ae,ff -34b43af,d3 +34b437b,14 +34b437c,8c +34b437d,a3 +34b4380,30 +34b4381,63 +34b4382,f +34b4383,ff +34b4384,af +34b4385,a3 +34b4387,10 +34b4388,30 +34b4389,e7 +34b438a,f +34b438b,ff +34b438d,46 +34b438e,30 +34b438f,23 +34b4390,8f +34b4391,a5 +34b4393,20 +34b4394,c +34b4395,10 +34b4396,14 +34b4397,b1 +34b4398,2 +34b4399,a0 +34b439a,20 +34b439b,25 +34b439c,2 +34b439e,28 +34b439f,25 +34b43a0,8e +34b43a1,62 +34b43a2,65 +34b43a3,28 +34b43a5,a2 +34b43a6,10 +34b43a7,2b +34b43a8,54 +34b43a9,40 +34b43aa,ff +34b43ab,df +34b43ac,80 +34b43ad,a2 34b43b0,26 -34b43b1,d6 -34b43b3,12 -34b43b4,3c +34b43b1,52 +34b43b3,1 +34b43b4,24 34b43b5,2 -34b43b6,80 -34b43b7,40 -34b43b8,8c -34b43b9,43 -34b43ba,65 -34b43bb,20 -34b43bc,3c -34b43bd,2 -34b43be,80 -34b43bf,40 -34b43c0,ac -34b43c1,43 -34b43c2,65 -34b43c3,1c -34b43c4,8f -34b43c5,bf -34b43c7,4c -34b43c8,8f -34b43c9,be -34b43cb,48 -34b43cc,8f -34b43cd,b7 -34b43cf,44 +34b43b7,6 +34b43b8,16 +34b43b9,42 +34b43ba,ff +34b43bb,d3 +34b43bc,26 +34b43bd,d6 +34b43bf,12 +34b43c0,3c +34b43c1,2 +34b43c2,80 +34b43c3,40 +34b43c4,8c +34b43c5,43 +34b43c6,65 +34b43c7,2c +34b43c8,3c +34b43c9,2 +34b43ca,80 +34b43cb,40 +34b43cc,ac +34b43cd,43 +34b43ce,65 +34b43cf,28 34b43d0,8f -34b43d1,b6 -34b43d3,40 +34b43d1,bf +34b43d3,4c 34b43d4,8f -34b43d5,b5 -34b43d7,3c +34b43d5,be +34b43d7,48 34b43d8,8f -34b43d9,b4 -34b43db,38 +34b43d9,b7 +34b43db,44 34b43dc,8f -34b43dd,b3 -34b43df,34 +34b43dd,b6 +34b43df,40 34b43e0,8f -34b43e1,b2 -34b43e3,30 +34b43e1,b5 +34b43e3,3c 34b43e4,8f -34b43e5,b1 -34b43e7,2c +34b43e5,b4 +34b43e7,38 34b43e8,8f -34b43e9,b0 -34b43eb,28 -34b43ec,3 -34b43ed,e0 -34b43ef,8 -34b43f0,27 -34b43f1,bd -34b43f3,50 -34b43f4,4d -34b43f5,51 -34b43f8,4e -34b43f9,6f -34b43fa,72 -34b43fb,6d -34b43fc,61 -34b43fd,6c -34b4405,8 -34b4407,e -34b4409,5f -34b440a,3 -34b440b,1 -34b440c,1 -34b4415,18 -34b4417,18 -34b4419,12 -34b441b,3 -34b441c,4 -34b4425,10 -34b4427,10 -34b4429,6 -34b442a,3 -34b442b,1 -34b442c,1 -34b4435,10 -34b4437,10 -34b4439,3 -34b443b,3 -34b443c,4 -34b4441,1 -34b4442,2 -34b4443,3 -34b4444,4 -34b4445,5 -34b4446,6 -34b4447,7 -34b4448,ff -34b4449,ff -34b444a,ff -34b444b,ff -34b444c,ff -34b444d,ff -34b4450,11 -34b4451,c2 -34b4452,2d -34b4453,d4 -34b4454,43 -34b4455,22 -34b4456,8 -34b4457,54 -34b4458,ce -34b4459,d1 -34b445a,75 -34b445b,1a -34b445c,a9 -34b445d,3a -34b445e,ea -34b445f,a4 -34b4460,ab -34b4461,21 -34b4465,10 -34b4466,44 -34b4467,65 -34b4468,6b -34b4469,75 -34b4470,1 +34b43e9,b3 +34b43eb,34 +34b43ec,8f +34b43ed,b2 +34b43ef,30 +34b43f0,8f +34b43f1,b1 +34b43f3,2c +34b43f4,8f +34b43f5,b0 +34b43f7,28 +34b43f8,3 +34b43f9,e0 +34b43fb,8 +34b43fc,27 +34b43fd,bd +34b43ff,50 +34b4400,4d +34b4401,51 +34b4404,4e +34b4405,6f +34b4406,72 +34b4407,6d +34b4408,61 +34b4409,6c +34b4411,8 +34b4413,e +34b4415,5f +34b4416,3 +34b4417,1 +34b4418,1 +34b4421,18 +34b4423,18 +34b4425,12 +34b4427,3 +34b4428,4 +34b4431,10 +34b4433,10 +34b4435,6 +34b4436,3 +34b4437,1 +34b4438,1 +34b4441,10 +34b4443,10 +34b4445,3 +34b4447,3 +34b4448,4 +34b444d,1 +34b444e,2 +34b444f,3 +34b4450,4 +34b4451,5 +34b4452,6 +34b4453,7 +34b4454,ff +34b4455,ff +34b4456,ff +34b4457,ff +34b4458,ff +34b4459,ff +34b445c,11 +34b445d,c2 +34b445e,2d +34b445f,d4 +34b4460,43 +34b4461,22 +34b4462,8 +34b4463,54 +34b4464,ce +34b4465,d1 +34b4466,75 +34b4467,1a +34b4468,a9 +34b4469,3a +34b446a,ea +34b446b,a4 +34b446c,ab +34b446d,21 34b4471,10 34b4472,44 -34b4473,6f -34b4474,64 -34b4475,6f -34b4476,6e -34b4477,67 -34b4478,6f -34b447c,2 +34b4473,65 +34b4474,6b +34b4475,75 +34b447c,1 34b447d,10 -34b447e,4a -34b447f,61 -34b4480,62 -34b4481,75 -34b4488,3 -34b4489,d0 -34b448a,46 -34b448b,6f -34b448c,72 -34b448d,65 -34b448e,73 -34b448f,74 -34b4494,4 +34b447e,44 +34b447f,6f +34b4480,64 +34b4481,6f +34b4482,6e +34b4483,67 +34b4484,6f +34b4488,2 +34b4489,10 +34b448a,4a +34b448b,61 +34b448c,62 +34b448d,75 +34b4494,3 34b4495,d0 34b4496,46 -34b4497,69 +34b4497,6f 34b4498,72 34b4499,65 -34b44a0,5 +34b449a,73 +34b449b,74 +34b44a0,4 34b44a1,d0 -34b44a2,57 -34b44a3,61 -34b44a4,74 +34b44a2,46 +34b44a3,69 +34b44a4,72 34b44a5,65 -34b44a6,72 -34b44ac,7 +34b44ac,5 34b44ad,d0 -34b44ae,53 -34b44af,68 -34b44b0,61 -34b44b1,64 -34b44b2,6f -34b44b3,77 -34b44b8,6 +34b44ae,57 +34b44af,61 +34b44b0,74 +34b44b1,65 +34b44b2,72 +34b44b8,7 34b44b9,d0 34b44ba,53 -34b44bb,70 -34b44bc,69 -34b44bd,72 -34b44be,69 -34b44bf,74 -34b44c4,8 -34b44c5,90 -34b44c6,42 -34b44c7,6f -34b44c8,74 -34b44c9,57 -34b44d0,9 -34b44d1,10 -34b44d2,49 -34b44d3,63 -34b44d4,65 -34b44dc,c -34b44dd,a0 -34b44de,47 -34b44df,65 -34b44e0,72 -34b44e1,75 -34b44e2,64 -34b44e3,6f -34b44e8,b -34b44e9,80 +34b44bb,68 +34b44bc,61 +34b44bd,64 +34b44be,6f +34b44bf,77 +34b44c4,6 +34b44c5,d0 +34b44c6,53 +34b44c7,70 +34b44c8,69 +34b44c9,72 +34b44ca,69 +34b44cb,74 +34b44d0,8 +34b44d1,90 +34b44d2,42 +34b44d3,6f +34b44d4,74 +34b44d5,57 +34b44dc,9 +34b44dd,10 +34b44de,49 +34b44df,63 +34b44e0,65 +34b44e8,c +34b44e9,a0 34b44ea,47 -34b44eb,54 -34b44ec,47 -34b44f4,d -34b44f5,c0 +34b44eb,65 +34b44ec,72 +34b44ed,75 +34b44ee,64 +34b44ef,6f +34b44f4,b +34b44f5,80 34b44f6,47 -34b44f7,61 -34b44f8,6e -34b44f9,6f -34b44fa,6e -34b4503,1 -34b4507,d -34b4583,d -34b4584,b0 -34b4587,d -34b4588,b0 -34b458b,d -34b458c,b0 -34b458f,c +34b44f7,54 +34b44f8,47 +34b4500,d +34b4501,c0 +34b4502,47 +34b4503,61 +34b4504,6e +34b4505,6f +34b4506,6e +34b450f,1 +34b4513,d +34b458f,d 34b4590,b0 -34b4593,c +34b4593,d 34b4594,b0 -34b4597,c -34b4598,a0 -34b459f,d +34b4597,d +34b4598,b0 +34b459b,c +34b459c,b0 +34b459f,c 34b45a0,b0 -34b45a3,d -34b45a4,b0 -34b45bb,e8 -34b45bc,ac -34b45bf,e8 -34b45c0,ac -34b45c3,e8 -34b45c4,ac +34b45a3,c +34b45a4,a0 +34b45ab,d +34b45ac,b0 +34b45af,d +34b45b0,b0 34b45c7,e8 34b45c8,ac -34b45ef,d -34b45f0,77 -34b45f1,d0 -34b45f3,2e -34b45f4,3a -34b45f5,b0 -34b45f7,7d -34b45f8,c -34b45f9,90 -34b45fa,8f -34b45fb,ff -34b45fc,ff -34b45fd,fd -34b45ff,c9 -34b4600,6e -34b4602,2 -34b4603,e4 -34b4604,ac -34b4606,ef +34b45cb,e8 +34b45cc,ac +34b45cf,e8 +34b45d0,ac +34b45d3,e8 +34b45d4,ac +34b45fb,d +34b45fc,77 +34b45fd,d0 +34b45ff,2e +34b4600,3a +34b4601,b0 +34b4603,7d +34b4604,c +34b4605,90 +34b4606,8f 34b4607,ff 34b4608,ff -34b4609,f4 -34b460a,a -34b460b,b0 -34b460c,e5 -34b460e,c -34b460f,95 -34b4610,e0 -34b4612,e -34b4613,59 -34b4614,c0 -34b462b,7 -34b462c,90 -34b462e,5 -34b462f,ce -34b4630,eb -34b4631,40 -34b4632,c -34b4633,c8 -34b4634,a9 -34b4635,90 -34b4636,d -34b4637,a7 +34b4609,fd +34b460b,c9 +34b460c,6e +34b460e,2 +34b460f,e4 +34b4610,ac +34b4612,ef +34b4613,ff +34b4614,ff +34b4615,f4 +34b4616,a +34b4617,b0 +34b4618,e5 +34b461a,c +34b461b,95 +34b461c,e0 +34b461e,e +34b461f,59 +34b4620,c0 +34b4637,7 34b4638,90 -34b463a,8 -34b463b,ec -34b463c,b4 -34b463f,4a -34b4640,dd -34b4641,a0 -34b4643,7 -34b4644,97 -34b4645,e2 -34b4646,c -34b4647,88 -34b4648,aa -34b4649,e0 -34b464a,6 -34b464b,ce -34b464c,ed -34b464d,70 +34b463a,5 +34b463b,ce +34b463c,eb +34b463d,40 +34b463e,c +34b463f,c8 +34b4640,a9 +34b4641,90 +34b4642,d +34b4643,a7 +34b4644,90 +34b4646,8 +34b4647,ec +34b4648,b4 +34b464b,4a +34b464c,dd +34b464d,a0 34b464f,7 -34b4650,90 -34b4653,7 -34b4654,90 -34b4662,6d -34b4663,ea -34b4666,c9 -34b4667,4d -34b4668,60 -34b466a,c9 -34b466b,4d -34b466c,60 -34b466d,33 +34b4650,97 +34b4651,e2 +34b4652,c +34b4653,88 +34b4654,aa +34b4655,e0 +34b4656,6 +34b4657,ce +34b4658,ed +34b4659,70 +34b465b,7 +34b465c,90 +34b465f,7 +34b4660,90 34b466e,6d -34b466f,eb -34b4670,6b -34b4671,c6 -34b4673,8c -34b4674,b6 -34b4676,7c -34b4677,a4 -34b4678,ce -34b4679,c4 -34b467a,31 -34b467b,9 -34b467c,c3 -34b467d,bb -34b467f,9 -34b4680,c3 -34b4681,bb -34b4683,2 +34b466f,ea +34b4672,c9 +34b4673,4d +34b4674,60 +34b4676,c9 +34b4677,4d +34b4678,60 +34b4679,33 +34b467a,6d +34b467b,eb +34b467c,6b +34b467d,c6 +34b467f,8c +34b4680,b6 +34b4682,7c +34b4683,a4 34b4684,ce -34b4685,d4 -34b469a,4 -34b469b,ce -34b469c,fb -34b469e,a -34b469f,d5 -34b46a2,8 -34b46a3,e3 -34b46a6,9 -34b46a7,ec -34b46aa,7e -34b46ab,4d -34b46ac,b0 -34b46ad,ab -34b46ae,bb -34b46af,5 -34b46b0,e8 -34b46b1,aa -34b46b2,bc -34b46b4,8e -34b46b5,d6 +34b4685,c4 +34b4686,31 +34b4687,9 +34b4688,c3 +34b4689,bb +34b468b,9 +34b468c,c3 +34b468d,bb +34b468f,2 +34b4690,ce +34b4691,d4 +34b46a6,4 +34b46a7,ce +34b46a8,fb +34b46aa,a +34b46ab,d5 +34b46ae,8 +34b46af,e3 +34b46b2,9 +34b46b3,ec 34b46b6,7e -34b46b7,93 -34b46b8,6e -34b46b9,d0 -34b46ba,8 -34b46bb,de -34b46bc,d9 -34b46bd,ea -34b46d3,c -34b46d4,a0 -34b46d7,c -34b46d8,a0 -34b46db,c -34b46dc,a0 +34b46b7,4d +34b46b8,b0 +34b46b9,ab +34b46ba,bb +34b46bb,5 +34b46bc,e8 +34b46bd,aa +34b46be,bc +34b46c0,8e +34b46c1,d6 +34b46c2,7e +34b46c3,93 +34b46c4,6e +34b46c5,d0 +34b46c6,8 +34b46c7,de +34b46c8,d9 +34b46c9,ea 34b46df,c 34b46e0,a0 -34b4704,c9 -34b4707,7 -34b4708,e2 -34b470b,c -34b470c,b0 -34b470f,e -34b4710,80 -34b4713,6f -34b4714,30 -34b4717,8e -34b471b,8e +34b46e3,c +34b46e4,a0 +34b46e7,c +34b46e8,a0 +34b46eb,c +34b46ec,a0 +34b4710,c9 +34b4713,7 +34b4714,e2 +34b4717,c +34b4718,b0 +34b471b,e +34b471c,80 34b471f,6f -34b4720,40 -34b4723,e -34b4724,80 -34b4727,c -34b4728,b0 -34b472b,7 -34b472c,e2 -34b4730,c9 -34b473b,bb -34b473f,5e -34b4740,40 -34b4743,c -34b4744,a0 -34b4747,a -34b4748,d0 -34b474b,7 -34b474c,e1 -34b474f,6 -34b4750,f4 -34b4753,6 -34b4754,f4 +34b4720,30 +34b4723,8e +34b4727,8e +34b472b,6f +34b472c,40 +34b472f,e +34b4730,80 +34b4733,c +34b4734,b0 +34b4737,7 +34b4738,e2 +34b473c,c9 +34b4747,bb +34b474b,5e +34b474c,40 +34b474f,c +34b4750,a0 +34b4753,a +34b4754,d0 34b4757,7 34b4758,e1 -34b475b,a -34b475c,d0 -34b475f,c -34b4760,a0 -34b4763,5e -34b4764,40 -34b4767,bb -34b477b,a -34b477c,80 -34b477e,c -34b477f,8a -34b4780,8a -34b4781,b0 -34b4782,3 -34b4783,be -34b4784,da -34b4785,10 -34b4786,3 -34b4787,be -34b4788,da -34b4789,10 +34b475b,6 +34b475c,f4 +34b475f,6 +34b4760,f4 +34b4763,7 +34b4764,e1 +34b4767,a +34b4768,d0 +34b476b,c +34b476c,a0 +34b476f,5e +34b4770,40 +34b4773,bb +34b4787,a +34b4788,80 34b478a,c 34b478b,8a 34b478c,8a 34b478d,b0 -34b478f,a -34b4790,80 -34b47b7,c -34b47b8,a0 -34b47bb,c -34b47bc,a0 -34b47bf,c -34b47c0,a0 -34b47c2,af -34b47c3,ff -34b47c4,ff -34b47c5,f8 +34b478e,3 +34b478f,be +34b4790,da +34b4791,10 +34b4792,3 +34b4793,be +34b4794,da +34b4795,10 +34b4796,c +34b4797,8a +34b4798,8a +34b4799,b0 +34b479b,a +34b479c,80 +34b47c3,c +34b47c4,a0 34b47c7,c 34b47c8,a0 34b47cb,c 34b47cc,a0 -34b47cf,c -34b47d0,a0 -34b4807,d -34b4808,d0 -34b480b,e -34b480c,c0 -34b480f,4f -34b4810,80 -34b4813,9d -34b4837,df -34b4838,fb -34b4877,e -34b4878,c0 -34b487b,e -34b487c,c0 -34b4894,b -34b4895,c0 -34b4898,4e -34b4899,60 -34b489c,bc -34b489f,3 -34b48a0,e8 -34b48a3,a -34b48a4,d0 -34b48a7,1e -34b48a8,90 -34b48ab,9e -34b48ac,20 -34b48af,da -34b48b2,7 -34b48b3,e3 -34b48b6,c -34b48b7,b0 -34b48ba,6e -34b48bb,50 -34b48ca,3 -34b48cb,ce -34b48cc,eb -34b48ce,b -34b48cf,d5 -34b48d0,7e -34b48d1,90 -34b48d2,e -34b48d3,90 -34b48d4,b -34b48d5,d0 -34b48d6,5f -34b48d7,70 -34b48d8,9 -34b48d9,e0 -34b48da,6f -34b48db,6c -34b48dc,b9 -34b48dd,e0 -34b48de,5f -34b48df,70 -34b48e0,9 -34b48e1,e0 -34b48e2,e -34b48e3,90 -34b48e4,b -34b48e5,d0 -34b48e6,b -34b48e7,d5 -34b48e8,7e -34b48e9,90 -34b48ea,3 -34b48eb,ce -34b48ec,eb -34b4902,a -34b4903,ff -34b4904,e0 -34b4907,8 -34b4908,e0 -34b490b,8 -34b490c,e0 -34b490f,8 +34b47ce,af +34b47cf,ff +34b47d0,ff +34b47d1,f8 +34b47d3,c +34b47d4,a0 +34b47d7,c +34b47d8,a0 +34b47db,c +34b47dc,a0 +34b4813,d +34b4814,d0 +34b4817,e +34b4818,c0 +34b481b,4f +34b481c,80 +34b481f,9d +34b4843,df +34b4844,fb +34b4883,e +34b4884,c0 +34b4887,e +34b4888,c0 +34b48a0,b +34b48a1,c0 +34b48a4,4e +34b48a5,60 +34b48a8,bc +34b48ab,3 +34b48ac,e8 +34b48af,a +34b48b0,d0 +34b48b3,1e +34b48b4,90 +34b48b7,9e +34b48b8,20 +34b48bb,da +34b48be,7 +34b48bf,e3 +34b48c2,c +34b48c3,b0 +34b48c6,6e +34b48c7,50 +34b48d6,3 +34b48d7,ce +34b48d8,eb +34b48da,b +34b48db,d5 +34b48dc,7e +34b48dd,90 +34b48de,e +34b48df,90 +34b48e0,b +34b48e1,d0 +34b48e2,5f +34b48e3,70 +34b48e4,9 +34b48e5,e0 +34b48e6,6f +34b48e7,6c +34b48e8,b9 +34b48e9,e0 +34b48ea,5f +34b48eb,70 +34b48ec,9 +34b48ed,e0 +34b48ee,e +34b48ef,90 +34b48f0,b +34b48f1,d0 +34b48f2,b +34b48f3,d5 +34b48f4,7e +34b48f5,90 +34b48f6,3 +34b48f7,ce +34b48f8,eb +34b490e,a +34b490f,ff 34b4910,e0 34b4913,8 34b4914,e0 @@ -9915,562 +9924,556 @@ ec9ce7,7a 34b491c,e0 34b491f,8 34b4920,e0 -34b4922,8 -34b4923,ff -34b4924,ff -34b4925,e0 -34b493a,8 -34b493b,de -34b493c,ea -34b493e,c -34b493f,83 -34b4940,7e -34b4941,90 -34b4944,c -34b4945,c0 -34b4948,2e -34b4949,a0 -34b494c,bd -34b494d,20 -34b494f,b -34b4950,d4 -34b4953,bd -34b4954,40 -34b4956,b -34b4957,d4 -34b495a,2f -34b495b,ff -34b495c,ff -34b495d,d0 -34b4972,7 -34b4973,ce -34b4974,ea -34b4976,c -34b4977,83 -34b4978,7e -34b4979,90 -34b497c,c -34b497d,b0 -34b497f,2 -34b4980,7e -34b4981,90 -34b4983,bf -34b4984,fb -34b4987,2 -34b4988,7d -34b4989,a0 -34b498c,a -34b498d,d0 -34b498e,5c -34b498f,62 -34b4990,7d -34b4991,b0 -34b4992,9 -34b4993,de -34b4994,eb -34b4995,30 -34b49ab,2 -34b49ac,de -34b49af,b -34b49b0,de -34b49b3,7d -34b49b4,9e -34b49b6,2 -34b49b7,d7 -34b49b8,9e -34b49ba,b -34b49bb,b0 -34b49bc,9e -34b49be,6e -34b49bf,40 +34b4923,8 +34b4924,e0 +34b4927,8 +34b4928,e0 +34b492b,8 +34b492c,e0 +34b492e,8 +34b492f,ff +34b4930,ff +34b4931,e0 +34b4946,8 +34b4947,de +34b4948,ea +34b494a,c +34b494b,83 +34b494c,7e +34b494d,90 +34b4950,c +34b4951,c0 +34b4954,2e +34b4955,a0 +34b4958,bd +34b4959,20 +34b495b,b +34b495c,d4 +34b495f,bd +34b4960,40 +34b4962,b +34b4963,d4 +34b4966,2f +34b4967,ff +34b4968,ff +34b4969,d0 +34b497e,7 +34b497f,ce +34b4980,ea +34b4982,c +34b4983,83 +34b4984,7e +34b4985,90 +34b4988,c +34b4989,b0 +34b498b,2 +34b498c,7e +34b498d,90 +34b498f,bf +34b4990,fb +34b4993,2 +34b4994,7d +34b4995,a0 +34b4998,a +34b4999,d0 +34b499a,5c +34b499b,62 +34b499c,7d +34b499d,b0 +34b499e,9 +34b499f,de +34b49a0,eb +34b49a1,30 +34b49b7,2 +34b49b8,de +34b49bb,b +34b49bc,de +34b49bf,7d 34b49c0,9e -34b49c2,9f -34b49c3,ff -34b49c4,ff -34b49c5,f7 +34b49c2,2 +34b49c3,d7 +34b49c4,9e +34b49c6,b +34b49c7,b0 34b49c8,9e +34b49ca,6e +34b49cb,40 34b49cc,9e -34b49e2,c -34b49e3,ff -34b49e4,ff -34b49e5,50 -34b49e6,c -34b49e7,a0 -34b49ea,c -34b49eb,a0 +34b49ce,9f +34b49cf,ff +34b49d0,ff +34b49d1,f7 +34b49d4,9e +34b49d8,9e 34b49ee,c -34b49ef,ee -34b49f0,ea -34b49f3,3 -34b49f4,8e -34b49f5,90 -34b49f8,b -34b49f9,c0 -34b49fc,b -34b49fd,c0 -34b49fe,5c -34b49ff,63 +34b49ef,ff +34b49f0,ff +34b49f1,50 +34b49f2,c +34b49f3,a0 +34b49f6,c +34b49f7,a0 +34b49fa,c +34b49fb,ee +34b49fc,ea +34b49ff,3 34b4a00,8e 34b4a01,90 -34b4a02,9 -34b4a03,de -34b4a04,da -34b4a1b,ae -34b4a1c,ec -34b4a1d,30 -34b4a1e,a -34b4a1f,e8 -34b4a20,39 -34b4a21,80 -34b4a22,e -34b4a23,90 -34b4a26,4f +34b4a04,b +34b4a05,c0 +34b4a08,b +34b4a09,c0 +34b4a0a,5c +34b4a0b,63 +34b4a0c,8e +34b4a0d,90 +34b4a0e,9 +34b4a0f,de +34b4a10,da 34b4a27,ae 34b4a28,ec -34b4a29,40 -34b4a2a,6f -34b4a2b,d5 -34b4a2c,5d -34b4a2d,c0 -34b4a2e,5f +34b4a29,30 +34b4a2a,a +34b4a2b,e8 +34b4a2c,39 +34b4a2d,80 +34b4a2e,e 34b4a2f,90 -34b4a30,9 -34b4a31,e0 -34b4a32,e -34b4a33,90 -34b4a34,9 -34b4a35,e0 -34b4a36,c +34b4a32,4f +34b4a33,ae +34b4a34,ec +34b4a35,40 +34b4a36,6f 34b4a37,d5 34b4a38,5d 34b4a39,c0 -34b4a3a,3 -34b4a3b,ce -34b4a3c,ec -34b4a3d,40 -34b4a52,5f -34b4a53,ff -34b4a54,ff -34b4a55,d0 -34b4a58,d -34b4a59,a0 -34b4a5c,7e -34b4a5d,40 -34b4a60,cc -34b4a63,4 -34b4a64,e8 -34b4a67,a -34b4a68,d0 -34b4a6b,d -34b4a6c,a0 -34b4a6f,8e -34b4a70,40 -34b4a73,cc -34b4a8a,5 -34b4a8b,ce -34b4a8c,ec -34b4a8d,30 -34b4a8e,d -34b4a8f,c4 -34b4a90,5d -34b4a91,b0 -34b4a92,e -34b4a93,90 -34b4a94,b -34b4a95,d0 -34b4a96,b -34b4a97,c4 -34b4a98,5d -34b4a99,90 -34b4a9a,4 -34b4a9b,df -34b4a9c,fc -34b4a9d,20 -34b4a9e,1d -34b4a9f,b4 -34b4aa0,5c -34b4aa1,c0 -34b4aa2,5f -34b4aa3,60 -34b4aa4,9 -34b4aa5,e0 -34b4aa6,2e -34b4aa7,b3 -34b4aa8,5c -34b4aa9,d0 -34b4aaa,7 -34b4aab,de -34b4aac,ec -34b4aad,50 -34b4ac2,6 -34b4ac3,de -34b4ac4,eb -34b4ac6,d -34b4ac7,b3 -34b4ac8,7e -34b4ac9,90 -34b4aca,5f -34b4acb,50 -34b4acc,b -34b4acd,d0 -34b4ace,5f -34b4acf,50 -34b4ad0,b -34b4ad1,e0 +34b4a3a,5f +34b4a3b,90 +34b4a3c,9 +34b4a3d,e0 +34b4a3e,e +34b4a3f,90 +34b4a40,9 +34b4a41,e0 +34b4a42,c +34b4a43,d5 +34b4a44,5d +34b4a45,c0 +34b4a46,3 +34b4a47,ce +34b4a48,ec +34b4a49,40 +34b4a5e,5f +34b4a5f,ff +34b4a60,ff +34b4a61,d0 +34b4a64,d +34b4a65,a0 +34b4a68,7e +34b4a69,40 +34b4a6c,cc +34b4a6f,4 +34b4a70,e8 +34b4a73,a +34b4a74,d0 +34b4a77,d +34b4a78,a0 +34b4a7b,8e +34b4a7c,40 +34b4a7f,cc +34b4a96,5 +34b4a97,ce +34b4a98,ec +34b4a99,30 +34b4a9a,d +34b4a9b,c4 +34b4a9c,5d +34b4a9d,b0 +34b4a9e,e +34b4a9f,90 +34b4aa0,b +34b4aa1,d0 +34b4aa2,b +34b4aa3,c4 +34b4aa4,5d +34b4aa5,90 +34b4aa6,4 +34b4aa7,df +34b4aa8,fc +34b4aa9,20 +34b4aaa,1d +34b4aab,b4 +34b4aac,5c +34b4aad,c0 +34b4aae,5f +34b4aaf,60 +34b4ab0,9 +34b4ab1,e0 +34b4ab2,2e +34b4ab3,b3 +34b4ab4,5c +34b4ab5,d0 +34b4ab6,7 +34b4ab7,de +34b4ab8,ec +34b4ab9,50 +34b4ace,6 +34b4acf,de +34b4ad0,eb 34b4ad2,d 34b4ad3,b3 34b4ad4,7e -34b4ad5,e0 -34b4ad6,6 -34b4ad7,de -34b4ad8,db -34b4ad9,e0 +34b4ad5,90 +34b4ad6,5f +34b4ad7,50 +34b4ad8,b +34b4ad9,d0 +34b4ada,5f +34b4adb,50 34b4adc,b -34b4add,c0 -34b4ade,9 -34b4adf,74 -34b4ae0,9e -34b4ae1,70 -34b4ae2,5 +34b4add,e0 +34b4ade,d +34b4adf,b3 +34b4ae0,7e +34b4ae1,e0 +34b4ae2,6 34b4ae3,de -34b4ae4,d8 -34b4b03,e -34b4b04,c0 -34b4b07,e -34b4b08,c0 -34b4b17,e -34b4b18,c0 -34b4b1b,e -34b4b1c,c0 -34b4b3b,e -34b4b3c,c0 -34b4b3f,e -34b4b40,c0 -34b4b4f,d -34b4b50,d0 -34b4b53,e -34b4b54,c0 -34b4b57,4f -34b4b58,80 -34b4b5b,9d -34b4b74,29 -34b4b75,c8 -34b4b77,7b -34b4b78,ed -34b4b79,93 -34b4b7a,8d -34b4b7b,da -34b4b7c,40 -34b4b7e,8d -34b4b7f,da -34b4b80,40 +34b4ae4,db +34b4ae5,e0 +34b4ae8,b +34b4ae9,c0 +34b4aea,9 +34b4aeb,74 +34b4aec,9e +34b4aed,70 +34b4aee,5 +34b4aef,de +34b4af0,d8 +34b4b0f,e +34b4b10,c0 +34b4b13,e +34b4b14,c0 +34b4b23,e +34b4b24,c0 +34b4b27,e +34b4b28,c0 +34b4b47,e +34b4b48,c0 +34b4b4b,e +34b4b4c,c0 +34b4b5b,d +34b4b5c,d0 +34b4b5f,e +34b4b60,c0 +34b4b63,4f +34b4b64,80 +34b4b67,9d +34b4b80,29 +34b4b81,c8 34b4b83,7b -34b4b84,ec +34b4b84,ed 34b4b85,93 -34b4b88,29 -34b4b89,c8 -34b4bae,af -34b4baf,ff -34b4bb0,ff -34b4bb1,f8 +34b4b86,8d +34b4b87,da +34b4b88,40 +34b4b8a,8d +34b4b8b,da +34b4b8c,40 +34b4b8f,7b +34b4b90,ec +34b4b91,93 +34b4b94,29 +34b4b95,c8 34b4bba,af 34b4bbb,ff 34b4bbc,ff 34b4bbd,f8 -34b4be2,ac -34b4be3,81 -34b4be6,4a -34b4be7,de -34b4be8,b6 -34b4beb,6 -34b4bec,ad -34b4bed,d6 -34b4bef,6 -34b4bf0,ad -34b4bf1,d6 +34b4bc6,af +34b4bc7,ff +34b4bc8,ff +34b4bc9,f8 +34b4bee,ac +34b4bef,81 34b4bf2,4a 34b4bf3,de 34b4bf4,b6 -34b4bf6,ac -34b4bf7,81 -34b4c12,4 -34b4c13,be -34b4c14,ec -34b4c15,30 -34b4c16,9 -34b4c17,a4 -34b4c18,6e -34b4c19,a0 -34b4c1c,1d -34b4c1d,a0 -34b4c1f,2 -34b4c20,cd +34b4bf7,6 +34b4bf8,ad +34b4bf9,d6 +34b4bfb,6 +34b4bfc,ad +34b4bfd,d6 +34b4bfe,4a +34b4bff,de +34b4c00,b6 +34b4c02,ac +34b4c03,81 +34b4c1e,4 +34b4c1f,be +34b4c20,ec 34b4c21,30 -34b4c23,c -34b4c24,c1 -34b4c27,e -34b4c28,90 -34b4c2f,e -34b4c30,90 +34b4c22,9 +34b4c23,a4 +34b4c24,6e +34b4c25,a0 +34b4c28,1d +34b4c29,a0 +34b4c2b,2 +34b4c2c,cd +34b4c2d,30 +34b4c2f,c +34b4c30,c1 34b4c33,e 34b4c34,90 -34b4c4a,1 -34b4c4b,ae -34b4c4c,ed -34b4c4d,70 -34b4c4e,c -34b4c4f,d7 -34b4c50,39 -34b4c51,e4 -34b4c52,7e -34b4c53,20 -34b4c55,c9 -34b4c56,ba -34b4c57,a -34b4c58,ee -34b4c59,ca -34b4c5a,d7 -34b4c5b,6e -34b4c5c,64 -34b4c5d,da -34b4c5e,d6 -34b4c5f,9c -34b4c61,aa -34b4c62,d7 -34b4c63,6e -34b4c64,64 -34b4c65,da -34b4c66,ba -34b4c67,a -34b4c68,ee -34b4c69,ca -34b4c6a,6e -34b4c6b,40 -34b4c6e,a -34b4c6f,d8 -34b4c70,30 -34b4c73,8d +34b4c3b,e +34b4c3c,90 +34b4c3f,e +34b4c40,90 +34b4c56,1 +34b4c57,ae +34b4c58,ed +34b4c59,70 +34b4c5a,c +34b4c5b,d7 +34b4c5c,39 +34b4c5d,e4 +34b4c5e,7e +34b4c5f,20 +34b4c61,c9 +34b4c62,ba +34b4c63,a +34b4c64,ee +34b4c65,ca +34b4c66,d7 +34b4c67,6e +34b4c68,64 +34b4c69,da +34b4c6a,d6 +34b4c6b,9c +34b4c6d,aa +34b4c6e,d7 +34b4c6f,6e +34b4c70,64 +34b4c71,da +34b4c72,ba +34b4c73,a 34b4c74,ee -34b4c75,90 -34b4c83,3e -34b4c84,d0 -34b4c87,9d -34b4c88,e6 -34b4c8b,cb -34b4c8c,cb -34b4c8e,3 -34b4c8f,e8 -34b4c90,ad -34b4c92,8 -34b4c93,e2 -34b4c94,6f -34b4c95,60 -34b4c96,c -34b4c97,c0 -34b4c98,e -34b4c99,a0 -34b4c9a,2e -34b4c9b,ff -34b4c9c,ff -34b4c9d,d0 -34b4c9e,8e -34b4c9f,50 -34b4ca0,8 -34b4ca1,f5 -34b4ca2,cd -34b4ca4,1 -34b4ca5,ea -34b4cba,e -34b4cbb,ff -34b4cbc,ec -34b4cbd,40 -34b4cbe,e -34b4cbf,90 -34b4cc0,5d -34b4cc1,c0 -34b4cc2,e -34b4cc3,90 -34b4cc4,a -34b4cc5,e0 +34b4c75,ca +34b4c76,6e +34b4c77,40 +34b4c7a,a +34b4c7b,d8 +34b4c7c,30 +34b4c7f,8d +34b4c80,ee +34b4c81,90 +34b4c8f,3e +34b4c90,d0 +34b4c93,9d +34b4c94,e6 +34b4c97,cb +34b4c98,cb +34b4c9a,3 +34b4c9b,e8 +34b4c9c,ad +34b4c9e,8 +34b4c9f,e2 +34b4ca0,6f +34b4ca1,60 +34b4ca2,c +34b4ca3,c0 +34b4ca4,e +34b4ca5,a0 +34b4ca6,2e +34b4ca7,ff +34b4ca8,ff +34b4ca9,d0 +34b4caa,8e +34b4cab,50 +34b4cac,8 +34b4cad,f5 +34b4cae,cd +34b4cb0,1 +34b4cb1,ea 34b4cc6,e -34b4cc7,90 -34b4cc8,5d -34b4cc9,c0 +34b4cc7,ff +34b4cc8,ec +34b4cc9,40 34b4cca,e -34b4ccb,ff -34b4ccc,fd -34b4ccd,50 +34b4ccb,90 +34b4ccc,5d +34b4ccd,c0 34b4cce,e 34b4ccf,90 -34b4cd0,4b -34b4cd1,d2 +34b4cd0,a +34b4cd1,e0 34b4cd2,e 34b4cd3,90 -34b4cd4,5 -34b4cd5,f6 +34b4cd4,5d +34b4cd5,c0 34b4cd6,e -34b4cd7,90 -34b4cd8,4b -34b4cd9,e3 +34b4cd7,ff +34b4cd8,fd +34b4cd9,50 34b4cda,e -34b4cdb,ff -34b4cdc,ed -34b4cdd,80 -34b4cf3,9d -34b4cf4,ed -34b4cf5,80 -34b4cf6,8 -34b4cf7,e9 -34b4cf8,36 -34b4cf9,b0 -34b4cfa,d -34b4cfb,b0 -34b4cfe,3f -34b4cff,90 -34b4d02,5f -34b4d03,70 -34b4d06,1e -34b4d07,90 -34b4d0a,d -34b4d0b,b0 -34b4d0e,8 -34b4d0f,e9 -34b4d10,47 -34b4d11,b0 -34b4d13,9d -34b4d14,ed -34b4d15,80 -34b4d2a,5f -34b4d2b,fe -34b4d2c,d8 -34b4d2e,5f -34b4d2f,65 -34b4d30,ae -34b4d31,80 -34b4d32,5f -34b4d33,60 -34b4d34,c -34b4d35,d0 +34b4cdb,90 +34b4cdc,4b +34b4cdd,d2 +34b4cde,e +34b4cdf,90 +34b4ce0,5 +34b4ce1,f6 +34b4ce2,e +34b4ce3,90 +34b4ce4,4b +34b4ce5,e3 +34b4ce6,e +34b4ce7,ff +34b4ce8,ed +34b4ce9,80 +34b4cff,9d +34b4d00,ed +34b4d01,80 +34b4d02,8 +34b4d03,e9 +34b4d04,36 +34b4d05,b0 +34b4d06,d +34b4d07,b0 +34b4d0a,3f +34b4d0b,90 +34b4d0e,5f +34b4d0f,70 +34b4d12,1e +34b4d13,90 +34b4d16,d +34b4d17,b0 +34b4d1a,8 +34b4d1b,e9 +34b4d1c,47 +34b4d1d,b0 +34b4d1f,9d +34b4d20,ed +34b4d21,80 34b4d36,5f -34b4d37,60 -34b4d38,9 -34b4d39,e0 +34b4d37,fe +34b4d38,d8 34b4d3a,5f -34b4d3b,60 -34b4d3c,9 -34b4d3d,f0 +34b4d3b,65 +34b4d3c,ae +34b4d3d,80 34b4d3e,5f 34b4d3f,60 -34b4d40,9 -34b4d41,e0 +34b4d40,c +34b4d41,d0 34b4d42,5f 34b4d43,60 -34b4d44,c -34b4d45,d0 +34b4d44,9 +34b4d45,e0 34b4d46,5f -34b4d47,65 -34b4d48,ae -34b4d49,80 +34b4d47,60 +34b4d48,9 +34b4d49,f0 34b4d4a,5f -34b4d4b,fe -34b4d4c,d8 -34b4d62,d -34b4d63,ff -34b4d64,ff -34b4d65,e0 -34b4d66,d -34b4d67,b0 -34b4d6a,d -34b4d6b,b0 +34b4d4b,60 +34b4d4c,9 +34b4d4d,e0 +34b4d4e,5f +34b4d4f,60 +34b4d50,c +34b4d51,d0 +34b4d52,5f +34b4d53,65 +34b4d54,ae +34b4d55,80 +34b4d56,5f +34b4d57,fe +34b4d58,d8 34b4d6e,d -34b4d6f,b0 +34b4d6f,ff +34b4d70,ff +34b4d71,e0 34b4d72,d -34b4d73,ff -34b4d74,ff -34b4d75,c0 +34b4d73,b0 34b4d76,d 34b4d77,b0 34b4d7a,d 34b4d7b,b0 34b4d7e,d -34b4d7f,b0 +34b4d7f,ff +34b4d80,ff +34b4d81,c0 34b4d82,d -34b4d83,ff -34b4d84,ff -34b4d85,f0 -34b4d9a,b -34b4d9b,ff -34b4d9c,ff -34b4d9d,f4 -34b4d9e,b -34b4d9f,d0 -34b4da2,b -34b4da3,d0 +34b4d83,b0 +34b4d86,d +34b4d87,b0 +34b4d8a,d +34b4d8b,b0 +34b4d8e,d +34b4d8f,ff +34b4d90,ff +34b4d91,f0 34b4da6,b -34b4da7,d0 +34b4da7,ff +34b4da8,ff +34b4da9,f4 34b4daa,b -34b4dab,ff -34b4dac,ff -34b4dad,c0 +34b4dab,d0 34b4dae,b 34b4daf,d0 34b4db2,b 34b4db3,d0 34b4db6,b -34b4db7,d0 +34b4db7,ff +34b4db8,ff +34b4db9,c0 34b4dba,b 34b4dbb,d0 -34b4dd2,1 -34b4dd3,ae -34b4dd4,ed -34b4dd5,60 -34b4dd6,b -34b4dd7,e7 -34b4dd8,38 -34b4dd9,a0 -34b4dda,4e -34b4ddb,90 -34b4dde,8f -34b4ddf,40 -34b4de2,9f -34b4de3,10 -34b4de4,bf -34b4de5,f2 -34b4de6,7f -34b4de7,40 -34b4de8,7 -34b4de9,f2 -34b4dea,4e -34b4deb,90 -34b4dec,7 -34b4ded,f2 -34b4dee,b -34b4def,e7 -34b4df0,39 +34b4dbe,b +34b4dbf,d0 +34b4dc2,b +34b4dc3,d0 +34b4dc6,b +34b4dc7,d0 +34b4dde,1 +34b4ddf,ae +34b4de0,ed +34b4de1,60 +34b4de2,b +34b4de3,e7 +34b4de4,38 +34b4de5,a0 +34b4de6,4e +34b4de7,90 +34b4dea,8f +34b4deb,40 +34b4dee,9f +34b4def,10 +34b4df0,bf 34b4df1,f2 -34b4df2,1 -34b4df3,be -34b4df4,ed -34b4df5,90 -34b4e0a,5f -34b4e0b,60 -34b4e0c,9 -34b4e0d,e0 -34b4e0e,5f -34b4e0f,60 -34b4e10,9 -34b4e11,e0 -34b4e12,5f -34b4e13,60 -34b4e14,9 -34b4e15,e0 +34b4df2,7f +34b4df3,40 +34b4df4,7 +34b4df5,f2 +34b4df6,4e +34b4df7,90 +34b4df8,7 +34b4df9,f2 +34b4dfa,b +34b4dfb,e7 +34b4dfc,39 +34b4dfd,f2 +34b4dfe,1 +34b4dff,be +34b4e00,ed +34b4e01,90 34b4e16,5f 34b4e17,60 34b4e18,9 34b4e19,e0 34b4e1a,5f -34b4e1b,ff -34b4e1c,ff +34b4e1b,60 +34b4e1c,9 34b4e1d,e0 34b4e1e,5f 34b4e1f,60 @@ -10481,23 +10484,29 @@ ec9ce7,7a 34b4e24,9 34b4e25,e0 34b4e26,5f -34b4e27,60 -34b4e28,9 +34b4e27,ff +34b4e28,ff 34b4e29,e0 34b4e2a,5f 34b4e2b,60 34b4e2c,9 34b4e2d,e0 -34b4e42,d -34b4e43,ff -34b4e44,ff -34b4e45,b0 -34b4e47,d -34b4e48,b0 -34b4e4b,d -34b4e4c,b0 -34b4e4f,d -34b4e50,b0 +34b4e2e,5f +34b4e2f,60 +34b4e30,9 +34b4e31,e0 +34b4e32,5f +34b4e33,60 +34b4e34,9 +34b4e35,e0 +34b4e36,5f +34b4e37,60 +34b4e38,9 +34b4e39,e0 +34b4e4e,d +34b4e4f,ff +34b4e50,ff +34b4e51,b0 34b4e53,d 34b4e54,b0 34b4e57,d @@ -10506,69 +10515,69 @@ ec9ce7,7a 34b4e5c,b0 34b4e5f,d 34b4e60,b0 -34b4e62,d -34b4e63,ff -34b4e64,ff -34b4e65,b0 -34b4e7b,cf -34b4e7c,ff -34b4e7d,40 -34b4e80,7f -34b4e81,40 -34b4e84,7f -34b4e85,40 -34b4e88,7f +34b4e63,d +34b4e64,b0 +34b4e67,d +34b4e68,b0 +34b4e6b,d +34b4e6c,b0 +34b4e6e,d +34b4e6f,ff +34b4e70,ff +34b4e71,b0 +34b4e87,cf +34b4e88,ff 34b4e89,40 34b4e8c,7f 34b4e8d,40 34b4e90,7f -34b4e91,30 -34b4e92,75 -34b4e94,9e -34b4e96,8d -34b4e97,64 -34b4e98,dc -34b4e9a,2b -34b4e9b,ee -34b4e9c,c5 -34b4eb2,5f -34b4eb3,60 -34b4eb4,9 -34b4eb5,e7 -34b4eb6,5f -34b4eb7,60 -34b4eb8,9e -34b4eb9,70 -34b4eba,5f -34b4ebb,69 -34b4ebc,e7 +34b4e91,40 +34b4e94,7f +34b4e95,40 +34b4e98,7f +34b4e99,40 +34b4e9c,7f +34b4e9d,30 +34b4e9e,75 +34b4ea0,9e +34b4ea2,8d +34b4ea3,64 +34b4ea4,dc +34b4ea6,2b +34b4ea7,ee +34b4ea8,c5 34b4ebe,5f -34b4ebf,be -34b4ec0,80 +34b4ebf,60 +34b4ec0,9 +34b4ec1,e7 34b4ec2,5f -34b4ec3,ed -34b4ec4,b0 +34b4ec3,60 +34b4ec4,9e +34b4ec5,70 34b4ec6,5f -34b4ec7,87 -34b4ec8,e8 +34b4ec7,69 +34b4ec8,e7 34b4eca,5f -34b4ecb,60 -34b4ecc,ae -34b4ecd,40 +34b4ecb,be +34b4ecc,80 34b4ece,5f -34b4ecf,60 -34b4ed0,1d -34b4ed1,c0 +34b4ecf,ed +34b4ed0,b0 34b4ed2,5f -34b4ed3,60 -34b4ed4,6 -34b4ed5,ea -34b4eea,c -34b4eeb,c0 -34b4eee,c -34b4eef,c0 -34b4ef2,c -34b4ef3,c0 +34b4ed3,87 +34b4ed4,e8 +34b4ed6,5f +34b4ed7,60 +34b4ed8,ae +34b4ed9,40 +34b4eda,5f +34b4edb,60 +34b4edc,1d +34b4edd,c0 +34b4ede,5f +34b4edf,60 +34b4ee0,6 +34b4ee1,ea 34b4ef6,c 34b4ef7,c0 34b4efa,c @@ -10580,253 +10589,253 @@ ec9ce7,7a 34b4f06,c 34b4f07,c0 34b4f0a,c -34b4f0b,ff -34b4f0c,ff -34b4f0d,f7 -34b4f22,af -34b4f23,a0 -34b4f24,c -34b4f25,f8 -34b4f26,ae -34b4f27,d0 -34b4f28,2e -34b4f29,e8 -34b4f2a,ad -34b4f2b,d5 -34b4f2c,9b -34b4f2d,e8 -34b4f2e,ad -34b4f2f,aa -34b4f30,c8 -34b4f31,e8 -34b4f32,ad -34b4f33,5d -34b4f34,e1 +34b4f0b,c0 +34b4f0e,c +34b4f0f,c0 +34b4f12,c +34b4f13,c0 +34b4f16,c +34b4f17,ff +34b4f18,ff +34b4f19,f7 +34b4f2e,af +34b4f2f,a0 +34b4f30,c +34b4f31,f8 +34b4f32,ae +34b4f33,d0 +34b4f34,2e 34b4f35,e8 34b4f36,ad -34b4f37,d -34b4f38,b0 +34b4f37,d5 +34b4f38,9b 34b4f39,e8 34b4f3a,ad +34b4f3b,aa +34b4f3c,c8 34b4f3d,e8 34b4f3e,ad +34b4f3f,5d +34b4f40,e1 34b4f41,e8 34b4f42,ad +34b4f43,d +34b4f44,b0 34b4f45,e8 -34b4f5a,5f -34b4f5b,c0 -34b4f5c,8 -34b4f5d,e0 -34b4f5e,5f -34b4f5f,e6 -34b4f60,8 -34b4f61,e0 -34b4f62,5f -34b4f63,cb -34b4f64,8 -34b4f65,e0 +34b4f46,ad +34b4f49,e8 +34b4f4a,ad +34b4f4d,e8 +34b4f4e,ad +34b4f51,e8 34b4f66,5f -34b4f67,7e -34b4f68,48 +34b4f67,c0 +34b4f68,8 34b4f69,e0 34b4f6a,5f -34b4f6b,5c -34b4f6c,a8 +34b4f6b,e6 +34b4f6c,8 34b4f6d,e0 34b4f6e,5f -34b4f6f,57 -34b4f70,e8 +34b4f6f,cb +34b4f70,8 34b4f71,e0 34b4f72,5f -34b4f73,50 -34b4f74,dc +34b4f73,7e +34b4f74,48 34b4f75,e0 34b4f76,5f -34b4f77,50 -34b4f78,9e +34b4f77,5c +34b4f78,a8 34b4f79,e0 34b4f7a,5f -34b4f7b,50 -34b4f7c,2e +34b4f7b,57 +34b4f7c,e8 34b4f7d,e0 -34b4f92,4 -34b4f93,ce -34b4f94,eb -34b4f95,20 -34b4f96,c -34b4f97,d5 -34b4f98,6e -34b4f99,a0 -34b4f9a,3e -34b4f9b,80 -34b4f9c,a -34b4f9d,e0 -34b4f9e,7f -34b4f9f,50 -34b4fa0,8 -34b4fa1,f2 -34b4fa2,7f -34b4fa3,40 -34b4fa4,8 -34b4fa5,f4 -34b4fa6,7f -34b4fa7,50 -34b4fa8,8 -34b4fa9,f2 -34b4faa,3e -34b4fab,80 -34b4fac,a -34b4fad,e0 -34b4fae,c -34b4faf,d5 -34b4fb0,6e -34b4fb1,b0 -34b4fb2,4 -34b4fb3,ce -34b4fb4,eb -34b4fb5,20 -34b4fca,d -34b4fcb,ff -34b4fcc,ed -34b4fcd,60 -34b4fce,d -34b4fcf,b0 -34b4fd0,5c -34b4fd1,e2 -34b4fd2,d -34b4fd3,b0 -34b4fd4,6 -34b4fd5,f6 +34b4f7e,5f +34b4f7f,50 +34b4f80,dc +34b4f81,e0 +34b4f82,5f +34b4f83,50 +34b4f84,9e +34b4f85,e0 +34b4f86,5f +34b4f87,50 +34b4f88,2e +34b4f89,e0 +34b4f9e,4 +34b4f9f,ce +34b4fa0,eb +34b4fa1,20 +34b4fa2,c +34b4fa3,d5 +34b4fa4,6e +34b4fa5,a0 +34b4fa6,3e +34b4fa7,80 +34b4fa8,a +34b4fa9,e0 +34b4faa,7f +34b4fab,50 +34b4fac,8 +34b4fad,f2 +34b4fae,7f +34b4faf,40 +34b4fb0,8 +34b4fb1,f4 +34b4fb2,7f +34b4fb3,50 +34b4fb4,8 +34b4fb5,f2 +34b4fb6,3e +34b4fb7,80 +34b4fb8,a +34b4fb9,e0 +34b4fba,c +34b4fbb,d5 +34b4fbc,6e +34b4fbd,b0 +34b4fbe,4 +34b4fbf,ce +34b4fc0,eb +34b4fc1,20 34b4fd6,d -34b4fd7,b0 -34b4fd8,6 -34b4fd9,f6 +34b4fd7,ff +34b4fd8,ed +34b4fd9,60 34b4fda,d 34b4fdb,b0 34b4fdc,5c 34b4fdd,e2 34b4fde,d -34b4fdf,ff -34b4fe0,ed -34b4fe1,60 +34b4fdf,b0 +34b4fe0,6 +34b4fe1,f6 34b4fe2,d 34b4fe3,b0 +34b4fe4,6 +34b4fe5,f6 34b4fe6,d 34b4fe7,b0 +34b4fe8,5c +34b4fe9,e2 34b4fea,d -34b4feb,b0 -34b5002,4 -34b5003,ce -34b5004,eb -34b5005,20 -34b5006,c -34b5007,d5 -34b5008,6e -34b5009,a0 -34b500a,3e -34b500b,80 -34b500c,a -34b500d,e0 -34b500e,7f -34b500f,50 -34b5010,8 -34b5011,f2 -34b5012,7f -34b5013,40 -34b5014,8 -34b5015,f4 -34b5016,7f -34b5017,50 -34b5018,8 -34b5019,f1 -34b501a,3e -34b501b,80 -34b501c,a -34b501d,d0 -34b501e,c -34b501f,d5 -34b5020,6e -34b5021,a0 -34b5022,4 -34b5023,ce -34b5024,fc -34b5025,20 -34b5028,ae -34b5029,50 -34b502c,c -34b502d,80 -34b503a,5f -34b503b,fe -34b503c,eb -34b503d,20 -34b503e,5f -34b503f,71 -34b5040,7e -34b5041,b0 -34b5042,5f -34b5043,70 -34b5044,c -34b5045,d0 +34b4feb,ff +34b4fec,ed +34b4fed,60 +34b4fee,d +34b4fef,b0 +34b4ff2,d +34b4ff3,b0 +34b4ff6,d +34b4ff7,b0 +34b500e,4 +34b500f,ce +34b5010,eb +34b5011,20 +34b5012,c +34b5013,d5 +34b5014,6e +34b5015,a0 +34b5016,3e +34b5017,80 +34b5018,a +34b5019,e0 +34b501a,7f +34b501b,50 +34b501c,8 +34b501d,f2 +34b501e,7f +34b501f,40 +34b5020,8 +34b5021,f4 +34b5022,7f +34b5023,50 +34b5024,8 +34b5025,f1 +34b5026,3e +34b5027,80 +34b5028,a +34b5029,d0 +34b502a,c +34b502b,d5 +34b502c,6e +34b502d,a0 +34b502e,4 +34b502f,ce +34b5030,fc +34b5031,20 +34b5034,ae +34b5035,50 +34b5038,c +34b5039,80 34b5046,5f -34b5047,71 -34b5048,6e -34b5049,a0 +34b5047,fe +34b5048,eb +34b5049,20 34b504a,5f -34b504b,ff -34b504c,ea +34b504b,71 +34b504c,7e +34b504d,b0 34b504e,5f -34b504f,72 -34b5050,ae -34b5051,40 +34b504f,70 +34b5050,c +34b5051,d0 34b5052,5f -34b5053,70 -34b5054,d -34b5055,b0 +34b5053,71 +34b5054,6e +34b5055,a0 34b5056,5f -34b5057,70 -34b5058,8 -34b5059,e5 +34b5057,ff +34b5058,ea 34b505a,5f -34b505b,70 -34b505d,db -34b5072,6 -34b5073,ce -34b5074,eb -34b5075,30 -34b5076,d -34b5077,c4 -34b5078,5a -34b5079,90 -34b507a,4f -34b507b,60 -34b507e,e -34b507f,c6 -34b5082,5 -34b5083,ce -34b5084,eb -34b5085,40 -34b5088,6c -34b5089,c0 -34b508c,8 -34b508d,e0 -34b508e,c -34b508f,73 -34b5090,5c -34b5091,d0 -34b5092,8 -34b5093,de -34b5094,ec -34b5095,50 -34b50aa,cf -34b50ab,ff -34b50ac,ff -34b50ad,fb -34b50af,d -34b50b0,b0 -34b50b3,d -34b50b4,b0 -34b50b7,d -34b50b8,b0 +34b505b,72 +34b505c,ae +34b505d,40 +34b505e,5f +34b505f,70 +34b5060,d +34b5061,b0 +34b5062,5f +34b5063,70 +34b5064,8 +34b5065,e5 +34b5066,5f +34b5067,70 +34b5069,db +34b507e,6 +34b507f,ce +34b5080,eb +34b5081,30 +34b5082,d +34b5083,c4 +34b5084,5a +34b5085,90 +34b5086,4f +34b5087,60 +34b508a,e +34b508b,c6 +34b508e,5 +34b508f,ce +34b5090,eb +34b5091,40 +34b5094,6c +34b5095,c0 +34b5098,8 +34b5099,e0 +34b509a,c +34b509b,73 +34b509c,5c +34b509d,d0 +34b509e,8 +34b509f,de +34b50a0,ec +34b50a1,50 +34b50b6,cf +34b50b7,ff +34b50b8,ff +34b50b9,fb 34b50bb,d 34b50bc,b0 34b50bf,d @@ -10837,18 +10846,12 @@ ec9ce7,7a 34b50c8,b0 34b50cb,d 34b50cc,b0 -34b50e2,4f -34b50e3,70 -34b50e4,9 -34b50e5,e0 -34b50e6,4f -34b50e7,70 -34b50e8,9 -34b50e9,e0 -34b50ea,4f -34b50eb,70 -34b50ec,9 -34b50ed,e0 +34b50cf,d +34b50d0,b0 +34b50d3,d +34b50d4,b0 +34b50d7,d +34b50d8,b0 34b50ee,4f 34b50ef,70 34b50f0,9 @@ -10857,164 +10860,170 @@ ec9ce7,7a 34b50f3,70 34b50f4,9 34b50f5,e0 -34b50f6,3f +34b50f6,4f 34b50f7,70 34b50f8,9 34b50f9,e0 -34b50fa,2e +34b50fa,4f 34b50fb,70 -34b50fc,a -34b50fd,d0 -34b50fe,d -34b50ff,c4 -34b5100,5d -34b5101,c0 -34b5102,5 -34b5103,ce -34b5104,ec -34b5105,40 -34b511a,ad -34b511c,3 -34b511d,e8 -34b511e,6f -34b511f,50 -34b5120,8 -34b5121,e3 -34b5122,e -34b5123,90 -34b5124,b -34b5125,c0 -34b5126,b -34b5127,c0 -34b5128,d -34b5129,90 -34b512a,8 -34b512b,e1 -34b512c,5e -34b512d,40 -34b512e,2 -34b512f,e7 -34b5130,ad -34b5133,cb -34b5134,ca -34b5137,9d -34b5138,e6 -34b513b,3e -34b513c,d0 -34b5152,e8 -34b5155,ad -34b5156,da -34b5159,cb -34b515a,cb -34b515d,da -34b515e,ac -34b515f,e -34b5160,c0 -34b5161,e8 -34b5162,8d -34b5163,6d -34b5164,e1 -34b5165,e5 -34b5166,6e -34b5167,9b -34b5168,d8 -34b5169,e0 -34b516a,1e -34b516b,c8 -34b516c,ac -34b516d,d0 -34b516e,d -34b516f,e3 -34b5170,7e -34b5171,c0 -34b5172,c -34b5173,d0 -34b5174,e -34b5175,a0 -34b518a,6e -34b518b,70 -34b518c,7 -34b518d,e7 -34b518e,a -34b518f,d2 -34b5190,1d -34b5191,b0 -34b5192,2 -34b5193,da -34b5194,ad -34b5195,20 -34b5197,7e -34b5198,e7 -34b519b,3e -34b519c,e2 -34b519f,bd -34b51a0,da -34b51a2,7 -34b51a3,e6 -34b51a4,7e -34b51a5,60 -34b51a6,3e -34b51a7,a0 -34b51a8,b -34b51a9,d0 -34b51aa,bd -34b51ab,20 -34b51ac,4 -34b51ad,e9 -34b51c2,ae -34b51c3,20 -34b51c4,5 -34b51c5,e8 -34b51c6,2d -34b51c7,a0 -34b51c8,c -34b51c9,c0 -34b51ca,7 -34b51cb,e5 -34b51cc,7e -34b51cd,50 -34b51cf,cc -34b51d0,da -34b51d3,4e -34b51d4,d2 -34b51d7,d -34b51d8,b0 -34b51db,d -34b51dc,b0 -34b51df,d -34b51e0,b0 +34b50fc,9 +34b50fd,e0 +34b50fe,4f +34b50ff,70 +34b5100,9 +34b5101,e0 +34b5102,3f +34b5103,70 +34b5104,9 +34b5105,e0 +34b5106,2e +34b5107,70 +34b5108,a +34b5109,d0 +34b510a,d +34b510b,c4 +34b510c,5d +34b510d,c0 +34b510e,5 +34b510f,ce +34b5110,ec +34b5111,40 +34b5126,ad +34b5128,3 +34b5129,e8 +34b512a,6f +34b512b,50 +34b512c,8 +34b512d,e3 +34b512e,e +34b512f,90 +34b5130,b +34b5131,c0 +34b5132,b +34b5133,c0 +34b5134,d +34b5135,90 +34b5136,8 +34b5137,e1 +34b5138,5e +34b5139,40 +34b513a,2 +34b513b,e7 +34b513c,ad +34b513f,cb +34b5140,ca +34b5143,9d +34b5144,e6 +34b5147,3e +34b5148,d0 +34b515e,e8 +34b5161,ad +34b5162,da +34b5165,cb +34b5166,cb +34b5169,da +34b516a,ac +34b516b,e +34b516c,c0 +34b516d,e8 +34b516e,8d +34b516f,6d +34b5170,e1 +34b5171,e5 +34b5172,6e +34b5173,9b +34b5174,d8 +34b5175,e0 +34b5176,1e +34b5177,c8 +34b5178,ac +34b5179,d0 +34b517a,d +34b517b,e3 +34b517c,7e +34b517d,c0 +34b517e,c +34b517f,d0 +34b5180,e +34b5181,a0 +34b5196,6e +34b5197,70 +34b5198,7 +34b5199,e7 +34b519a,a +34b519b,d2 +34b519c,1d +34b519d,b0 +34b519e,2 +34b519f,da +34b51a0,ad +34b51a1,20 +34b51a3,7e +34b51a4,e7 +34b51a7,3e +34b51a8,e2 +34b51ab,bd +34b51ac,da +34b51ae,7 +34b51af,e6 +34b51b0,7e +34b51b1,60 +34b51b2,3e +34b51b3,a0 +34b51b4,b +34b51b5,d0 +34b51b6,bd +34b51b7,20 +34b51b8,4 +34b51b9,e9 +34b51ce,ae +34b51cf,20 +34b51d0,5 +34b51d1,e8 +34b51d2,2d +34b51d3,a0 +34b51d4,c +34b51d5,c0 +34b51d6,7 +34b51d7,e5 +34b51d8,7e +34b51d9,50 +34b51db,cc +34b51dc,da +34b51df,4e +34b51e0,d2 34b51e3,d 34b51e4,b0 -34b51fa,e -34b51fb,ff -34b51fc,ff -34b51fd,f8 -34b5200,b -34b5201,d3 -34b5204,7e -34b5205,70 -34b5207,3 -34b5208,ea -34b520b,b -34b520c,d1 -34b520f,8e -34b5210,50 -34b5212,4 -34b5213,e9 -34b5216,c -34b5217,c0 -34b521a,1f -34b521b,ff -34b521c,ff -34b521d,fa -34b522b,4f -34b522c,fc -34b522f,4f -34b5230,50 -34b5233,4f -34b5234,50 +34b51e7,d +34b51e8,b0 +34b51eb,d +34b51ec,b0 +34b51ef,d +34b51f0,b0 +34b5206,e +34b5207,ff +34b5208,ff +34b5209,f8 +34b520c,b +34b520d,d3 +34b5210,7e +34b5211,70 +34b5213,3 +34b5214,ea +34b5217,b +34b5218,d1 +34b521b,8e +34b521c,50 +34b521e,4 +34b521f,e9 +34b5222,c +34b5223,c0 +34b5226,1f +34b5227,ff +34b5228,ff +34b5229,fa 34b5237,4f -34b5238,50 +34b5238,fc 34b523b,4f 34b523c,50 34b523f,4f @@ -11030,34 +11039,34 @@ ec9ce7,7a 34b5253,4f 34b5254,50 34b5257,4f -34b5258,fc -34b526a,6e -34b526b,50 -34b526e,c -34b526f,b0 -34b5272,7 -34b5273,e3 -34b5277,da -34b527b,9e -34b527c,20 -34b527f,1e -34b5280,90 -34b5283,a -34b5284,d0 -34b5287,3 -34b5288,e8 -34b528c,bc -34b5290,4e -34b5291,60 -34b5294,b -34b5295,c0 -34b529b,df -34b529c,e0 -34b529f,8 -34b52a0,e0 -34b52a3,8 -34b52a4,e0 -34b52a7,8 +34b5258,50 +34b525b,4f +34b525c,50 +34b525f,4f +34b5260,50 +34b5263,4f +34b5264,fc +34b5276,6e +34b5277,50 +34b527a,c +34b527b,b0 +34b527e,7 +34b527f,e3 +34b5283,da +34b5287,9e +34b5288,20 +34b528b,1e +34b528c,90 +34b528f,a +34b5290,d0 +34b5293,3 +34b5294,e8 +34b5298,bc +34b529c,4e +34b529d,60 +34b52a0,b +34b52a1,c0 +34b52a7,df 34b52a8,e0 34b52ab,8 34b52ac,e0 @@ -11073,299 +11082,299 @@ ec9ce7,7a 34b52c0,e0 34b52c3,8 34b52c4,e0 -34b52c7,df +34b52c7,8 34b52c8,e0 -34b52db,5e -34b52dc,d2 -34b52df,dc -34b52e0,db -34b52e2,a -34b52e3,d2 -34b52e4,5e -34b52e5,80 -34b52e6,7e -34b52e7,50 -34b52e8,7 -34b52e9,e5 -34b533e,ff -34b533f,ff -34b5340,ff -34b5341,fd -34b5346,2 -34b5347,ca -34b534b,2c -34b534c,90 -34b538a,5 -34b538b,ce -34b538c,eb -34b538d,10 -34b538e,b -34b538f,93 -34b5390,6d -34b5391,a0 -34b5394,b -34b5395,c0 -34b5396,8 -34b5397,de -34b5398,ff -34b5399,c0 -34b539a,3e +34b52cb,8 +34b52cc,e0 +34b52cf,8 +34b52d0,e0 +34b52d3,df +34b52d4,e0 +34b52e7,5e +34b52e8,d2 +34b52eb,dc +34b52ec,db +34b52ee,a +34b52ef,d2 +34b52f0,5e +34b52f1,80 +34b52f2,7e +34b52f3,50 +34b52f4,7 +34b52f5,e5 +34b534a,ff +34b534b,ff +34b534c,ff +34b534d,fd +34b5352,2 +34b5353,ca +34b5357,2c +34b5358,90 +34b5396,5 +34b5397,ce +34b5398,eb +34b5399,10 +34b539a,b 34b539b,93 -34b539c,b -34b539d,d0 -34b539e,4f -34b539f,82 -34b53a0,7e -34b53a1,d0 -34b53a2,a -34b53a3,ee -34b53a4,db -34b53a5,d0 -34b53b2,d -34b53b3,90 -34b53b6,d -34b53b7,90 -34b53ba,d -34b53bb,90 +34b539c,6d +34b539d,a0 +34b53a0,b +34b53a1,c0 +34b53a2,8 +34b53a3,de +34b53a4,ff +34b53a5,c0 +34b53a6,3e +34b53a7,93 +34b53a8,b +34b53a9,d0 +34b53aa,4f +34b53ab,82 +34b53ac,7e +34b53ad,d0 +34b53ae,a +34b53af,ee +34b53b0,db +34b53b1,d0 34b53be,d 34b53bf,90 34b53c2,d -34b53c3,bd -34b53c4,ec -34b53c5,40 +34b53c3,90 34b53c6,d -34b53c7,e6 -34b53c8,5d -34b53c9,c0 +34b53c7,90 34b53ca,d -34b53cb,b0 -34b53cc,8 -34b53cd,e0 +34b53cb,90 34b53ce,d -34b53cf,a0 -34b53d0,7 -34b53d1,f2 +34b53cf,bd +34b53d0,ec +34b53d1,40 34b53d2,d -34b53d3,b0 -34b53d4,8 -34b53d5,e0 +34b53d3,e6 +34b53d4,5d +34b53d5,c0 34b53d6,d -34b53d7,e6 -34b53d8,4d -34b53d9,b0 +34b53d7,b0 +34b53d8,8 +34b53d9,e0 34b53da,d -34b53db,bd -34b53dc,ec -34b53dd,40 -34b53fb,8d -34b53fc,ed -34b53fd,70 -34b53fe,7 -34b53ff,e9 -34b5400,36 -34b5401,a0 -34b5402,c -34b5403,c0 -34b5406,d -34b5407,b0 -34b540a,c -34b540b,c0 -34b540e,7 -34b540f,e9 -34b5410,36 -34b5411,a0 -34b5413,8d -34b5414,ed -34b5415,70 -34b5424,b -34b5425,c0 -34b5428,b -34b5429,c0 -34b542c,b -34b542d,c0 +34b53db,a0 +34b53dc,7 +34b53dd,f2 +34b53de,d +34b53df,b0 +34b53e0,8 +34b53e1,e0 +34b53e2,d +34b53e3,e6 +34b53e4,4d +34b53e5,b0 +34b53e6,d +34b53e7,bd +34b53e8,ec +34b53e9,40 +34b5407,8d +34b5408,ed +34b5409,70 +34b540a,7 +34b540b,e9 +34b540c,36 +34b540d,a0 +34b540e,c +34b540f,c0 +34b5412,d +34b5413,b0 +34b5416,c +34b5417,c0 +34b541a,7 +34b541b,e9 +34b541c,36 +34b541d,a0 +34b541f,8d +34b5420,ed +34b5421,70 34b5430,b 34b5431,c0 -34b5432,5 -34b5433,de -34b5434,dc +34b5434,b 34b5435,c0 -34b5436,d -34b5437,c4 -34b5438,8e +34b5438,b 34b5439,c0 -34b543a,5f -34b543b,60 -34b543c,c +34b543c,b 34b543d,c0 -34b543e,7f -34b543f,30 -34b5440,b +34b543e,5 +34b543f,de +34b5440,dc 34b5441,c0 -34b5442,5f -34b5443,60 -34b5444,c +34b5442,d +34b5443,c4 +34b5444,8e 34b5445,c0 -34b5446,d -34b5447,c4 -34b5448,8e +34b5446,5f +34b5447,60 +34b5448,c 34b5449,c0 -34b544a,5 -34b544b,de -34b544c,dc +34b544a,7f +34b544b,30 +34b544c,b 34b544d,c0 -34b546a,3 -34b546b,be -34b546c,ec -34b546d,30 -34b546e,c -34b546f,d5 -34b5470,4c -34b5471,c0 -34b5472,4f -34b5473,60 -34b5474,7 -34b5475,e0 -34b5476,6f -34b5477,ff -34b5478,ff -34b5479,f3 -34b547a,4f -34b547b,50 -34b547e,c -34b547f,c5 -34b5480,38 -34b5481,c0 -34b5482,3 -34b5483,be -34b5484,ec -34b5485,60 -34b5493,5 -34b5494,de -34b5495,d0 -34b5497,c -34b5498,b2 -34b549b,d -34b549c,90 -34b549f,e -34b54a0,80 -34b54a2,d -34b54a3,ff -34b54a4,ff -34b54a5,d0 -34b54a7,e -34b54a8,80 +34b544e,5f +34b544f,60 +34b5450,c +34b5451,c0 +34b5452,d +34b5453,c4 +34b5454,8e +34b5455,c0 +34b5456,5 +34b5457,de +34b5458,dc +34b5459,c0 +34b5476,3 +34b5477,be +34b5478,ec +34b5479,30 +34b547a,c +34b547b,d5 +34b547c,4c +34b547d,c0 +34b547e,4f +34b547f,60 +34b5480,7 +34b5481,e0 +34b5482,6f +34b5483,ff +34b5484,ff +34b5485,f3 +34b5486,4f +34b5487,50 +34b548a,c +34b548b,c5 +34b548c,38 +34b548d,c0 +34b548e,3 +34b548f,be +34b5490,ec +34b5491,60 +34b549f,5 +34b54a0,de +34b54a1,d0 +34b54a3,c +34b54a4,b2 +34b54a7,d +34b54a8,90 34b54ab,e 34b54ac,80 -34b54af,e -34b54b0,80 +34b54ae,d +34b54af,ff +34b54b0,ff +34b54b1,d0 34b54b3,e 34b54b4,80 34b54b7,e 34b54b8,80 34b54bb,e 34b54bc,80 -34b54da,5 -34b54db,de -34b54dc,dc -34b54dd,c0 -34b54de,d -34b54df,c4 -34b54e0,8e -34b54e1,c0 -34b54e2,5f -34b54e3,60 -34b54e4,c -34b54e5,c0 -34b54e6,7f -34b54e7,30 -34b54e8,b +34b54bf,e +34b54c0,80 +34b54c3,e +34b54c4,80 +34b54c7,e +34b54c8,80 +34b54e6,5 +34b54e7,de +34b54e8,dc 34b54e9,c0 -34b54ea,5f -34b54eb,60 -34b54ec,c +34b54ea,d +34b54eb,c4 +34b54ec,8e 34b54ed,c0 -34b54ee,d -34b54ef,c4 -34b54f0,8e +34b54ee,5f +34b54ef,60 +34b54f0,c 34b54f1,c0 -34b54f2,5 -34b54f3,de -34b54f4,dc -34b54f5,b0 +34b54f2,7f +34b54f3,30 +34b54f4,b +34b54f5,c0 +34b54f6,5f +34b54f7,60 34b54f8,c -34b54f9,a0 -34b54fa,9 -34b54fb,94 -34b54fc,7e -34b54fd,60 -34b54fe,4 -34b54ff,ce -34b5500,e9 -34b5502,d -34b5503,a0 -34b5506,d -34b5507,a0 -34b550a,d -34b550b,a0 +34b54f9,c0 +34b54fa,d +34b54fb,c4 +34b54fc,8e +34b54fd,c0 +34b54fe,5 +34b54ff,de +34b5500,dc +34b5501,b0 +34b5504,c +34b5505,a0 +34b5506,9 +34b5507,94 +34b5508,7e +34b5509,60 +34b550a,4 +34b550b,ce +34b550c,e9 34b550e,d 34b550f,a0 34b5512,d -34b5513,bd -34b5514,ed -34b5515,40 +34b5513,a0 34b5516,d -34b5517,e6 -34b5518,5d -34b5519,a0 +34b5517,a0 34b551a,d -34b551b,b0 -34b551c,b -34b551d,c0 +34b551b,a0 34b551e,d -34b551f,a0 -34b5520,b -34b5521,c0 +34b551f,bd +34b5520,ed +34b5521,40 34b5522,d -34b5523,a0 -34b5524,b -34b5525,c0 +34b5523,e6 +34b5524,5d +34b5525,a0 34b5526,d -34b5527,a0 +34b5527,b0 34b5528,b 34b5529,c0 34b552a,d 34b552b,a0 34b552c,b 34b552d,c0 -34b553b,b -34b553c,c0 -34b554a,9 -34b554b,ff -34b554c,c0 -34b554f,b -34b5550,c0 -34b5553,b -34b5554,c0 -34b5557,b +34b552e,d +34b552f,a0 +34b5530,b +34b5531,c0 +34b5532,d +34b5533,a0 +34b5534,b +34b5535,c0 +34b5536,d +34b5537,a0 +34b5538,b +34b5539,c0 +34b5547,b +34b5548,c0 +34b5556,9 +34b5557,ff 34b5558,c0 34b555b,b 34b555c,c0 34b555f,b 34b5560,c0 -34b5562,e -34b5563,ff -34b5564,ff -34b5565,e0 -34b5573,7 -34b5574,e0 -34b5582,7 -34b5583,ff -34b5584,e0 -34b5587,7 -34b5588,e0 -34b558b,7 -34b558c,e0 -34b558f,7 +34b5563,b +34b5564,c0 +34b5567,b +34b5568,c0 +34b556b,b +34b556c,c0 +34b556e,e +34b556f,ff +34b5570,ff +34b5571,e0 +34b557f,7 +34b5580,e0 +34b558e,7 +34b558f,ff 34b5590,e0 34b5593,7 34b5594,e0 @@ -11375,52 +11384,52 @@ ec9ce7,7a 34b559c,e0 34b559f,7 34b55a0,e0 -34b55a3,1b -34b55a4,d0 -34b55a6,d -34b55a7,fe -34b55a8,70 -34b55aa,b -34b55ab,c0 -34b55ae,b -34b55af,c0 -34b55b2,b -34b55b3,c0 +34b55a3,7 +34b55a4,e0 +34b55a7,7 +34b55a8,e0 +34b55ab,7 +34b55ac,e0 +34b55af,1b +34b55b0,d0 +34b55b2,d +34b55b3,fe +34b55b4,70 34b55b6,b 34b55b7,c0 34b55ba,b 34b55bb,c0 -34b55bc,3d -34b55bd,c2 34b55be,b -34b55bf,c3 -34b55c0,db +34b55bf,c0 34b55c2,b -34b55c3,dd -34b55c4,c0 +34b55c3,c0 34b55c6,b -34b55c7,fc -34b55c8,e5 +34b55c7,c0 +34b55c8,3d +34b55c9,c2 34b55ca,b -34b55cb,d0 -34b55cc,cd -34b55cd,10 +34b55cb,c3 +34b55cc,db 34b55ce,b -34b55cf,c0 -34b55d0,3d -34b55d1,b0 +34b55cf,dd +34b55d0,c0 34b55d2,b -34b55d3,c0 -34b55d4,7 -34b55d5,e8 -34b55e2,e -34b55e3,ff -34b55e4,40 -34b55e7,5f -34b55e8,40 -34b55eb,5f -34b55ec,40 -34b55ef,5f +34b55d3,fc +34b55d4,e5 +34b55d6,b +34b55d7,d0 +34b55d8,cd +34b55d9,10 +34b55da,b +34b55db,c0 +34b55dc,3d +34b55dd,b0 +34b55de,b +34b55df,c0 +34b55e0,7 +34b55e1,e8 +34b55ee,e +34b55ef,ff 34b55f0,40 34b55f3,5f 34b55f4,40 @@ -11430,226 +11439,220 @@ ec9ce7,7a 34b55fc,40 34b55ff,5f 34b5600,40 -34b5603,4f -34b5604,50 -34b5607,e -34b5608,a0 -34b560b,8 -34b560c,ef -34b560d,b0 -34b562a,8d -34b562b,dd -34b562c,ae -34b562d,c0 -34b562e,8e -34b562f,4d -34b5630,c5 -34b5631,e4 -34b5632,8d -34b5633,c -34b5634,b0 -34b5635,e6 +34b5603,5f +34b5604,40 +34b5607,5f +34b5608,40 +34b560b,5f +34b560c,40 +34b560f,4f +34b5610,50 +34b5613,e +34b5614,a0 +34b5617,8 +34b5618,ef +34b5619,b0 34b5636,8d -34b5637,b -34b5638,a0 -34b5639,e7 -34b563a,8d -34b563b,b -34b563c,a0 -34b563d,e7 +34b5637,dd +34b5638,ae +34b5639,c0 +34b563a,8e +34b563b,4d +34b563c,c5 +34b563d,e4 34b563e,8d -34b563f,b -34b5640,a0 -34b5641,e7 +34b563f,c +34b5640,b0 +34b5641,e6 34b5642,8d 34b5643,b 34b5644,a0 34b5645,e7 -34b5662,d -34b5663,bd -34b5664,ed -34b5665,40 -34b5666,d -34b5667,e6 -34b5668,5d -34b5669,a0 -34b566a,d -34b566b,b0 -34b566c,b -34b566d,c0 +34b5646,8d +34b5647,b +34b5648,a0 +34b5649,e7 +34b564a,8d +34b564b,b +34b564c,a0 +34b564d,e7 +34b564e,8d +34b564f,b +34b5650,a0 +34b5651,e7 34b566e,d -34b566f,a0 -34b5670,b -34b5671,c0 +34b566f,bd +34b5670,ed +34b5671,40 34b5672,d -34b5673,a0 -34b5674,b -34b5675,c0 +34b5673,e6 +34b5674,5d +34b5675,a0 34b5676,d -34b5677,a0 +34b5677,b0 34b5678,b 34b5679,c0 34b567a,d 34b567b,a0 34b567c,b 34b567d,c0 -34b569a,4 -34b569b,ce -34b569c,eb -34b569d,20 -34b569e,c -34b569f,d5 -34b56a0,6d -34b56a1,a0 -34b56a2,1e -34b56a3,70 -34b56a4,a -34b56a5,d0 -34b56a6,5f -34b56a7,60 -34b56a8,8 -34b56a9,e0 -34b56aa,1e -34b56ab,70 -34b56ac,a -34b56ad,d0 -34b56ae,c -34b56af,d4 -34b56b0,6d -34b56b1,b0 -34b56b2,4 -34b56b3,ce -34b56b4,eb -34b56b5,20 -34b56d2,d -34b56d3,bd -34b56d4,ec -34b56d5,30 -34b56d6,d -34b56d7,e6 -34b56d8,5d -34b56d9,b0 -34b56da,d -34b56db,b0 -34b56dc,9 -34b56dd,e0 +34b567e,d +34b567f,a0 +34b5680,b +34b5681,c0 +34b5682,d +34b5683,a0 +34b5684,b +34b5685,c0 +34b5686,d +34b5687,a0 +34b5688,b +34b5689,c0 +34b56a6,4 +34b56a7,ce +34b56a8,eb +34b56a9,20 +34b56aa,c +34b56ab,d5 +34b56ac,6d +34b56ad,a0 +34b56ae,1e +34b56af,70 +34b56b0,a +34b56b1,d0 +34b56b2,5f +34b56b3,60 +34b56b4,8 +34b56b5,e0 +34b56b6,1e +34b56b7,70 +34b56b8,a +34b56b9,d0 +34b56ba,c +34b56bb,d4 +34b56bc,6d +34b56bd,b0 +34b56be,4 +34b56bf,ce +34b56c0,eb +34b56c1,20 34b56de,d -34b56df,a0 -34b56e0,7 -34b56e1,e0 +34b56df,bd +34b56e0,ec +34b56e1,30 34b56e2,d -34b56e3,b0 -34b56e4,8 -34b56e5,e0 +34b56e3,e6 +34b56e4,5d +34b56e5,b0 34b56e6,d -34b56e7,e6 -34b56e8,5d -34b56e9,b0 +34b56e7,b0 +34b56e8,9 +34b56e9,e0 34b56ea,d -34b56eb,be -34b56ec,ec -34b56ed,40 +34b56eb,a0 +34b56ec,7 +34b56ed,e0 34b56ee,d -34b56ef,90 +34b56ef,b0 +34b56f0,8 +34b56f1,e0 34b56f2,d -34b56f3,90 +34b56f3,e6 +34b56f4,5d +34b56f5,b0 34b56f6,d -34b56f7,90 -34b570a,4 -34b570b,ce -34b570c,dc -34b570d,c0 -34b570e,c -34b570f,c4 -34b5710,7e -34b5711,c0 -34b5712,1e -34b5713,70 -34b5714,c -34b5715,c0 -34b5716,5f -34b5717,60 -34b5718,b +34b56f7,be +34b56f8,ec +34b56f9,40 +34b56fa,d +34b56fb,90 +34b56fe,d +34b56ff,90 +34b5702,d +34b5703,90 +34b5716,4 +34b5717,ce +34b5718,dc 34b5719,c0 -34b571a,2e -34b571b,70 -34b571c,c +34b571a,c +34b571b,c4 +34b571c,7e 34b571d,c0 -34b571e,c -34b571f,c4 -34b5720,7e +34b571e,1e +34b571f,70 +34b5720,c 34b5721,c0 -34b5722,5 -34b5723,ce -34b5724,db +34b5722,5f +34b5723,60 +34b5724,b 34b5725,c0 -34b5728,a +34b5726,2e +34b5727,70 +34b5728,c 34b5729,c0 -34b572c,a +34b572a,c +34b572b,c4 +34b572c,7e 34b572d,c0 -34b5730,a +34b572e,5 +34b572f,ce +34b5730,db 34b5731,c0 -34b5743,cc -34b5744,de -34b5745,f9 -34b5747,ce -34b5748,83 -34b574b,cb -34b574f,ca -34b5753,ca -34b5757,ca +34b5734,a +34b5735,c0 +34b5738,a +34b5739,c0 +34b573c,a +34b573d,c0 +34b574f,cc +34b5750,de +34b5751,f9 +34b5753,ce +34b5754,83 +34b5757,cb 34b575b,ca -34b577a,4 -34b577b,ce -34b577c,ea -34b577d,10 -34b577e,b -34b577f,d4 -34b5780,5b -34b5781,60 -34b5782,b -34b5783,d4 -34b5786,3 -34b5787,bd -34b5788,db -34b5789,20 -34b578c,4d -34b578d,a0 +34b575f,ca +34b5763,ca +34b5767,ca +34b5786,4 +34b5787,ce +34b5788,ea +34b5789,10 +34b578a,b +34b578b,d4 +34b578c,5b +34b578d,60 34b578e,b -34b578f,94 -34b5790,5e -34b5791,a0 -34b5792,5 -34b5793,ce -34b5794,eb +34b578f,d4 +34b5792,3 +34b5793,bd +34b5794,db 34b5795,20 -34b57ab,8e -34b57af,8e -34b57b2,6f -34b57b3,ff -34b57b4,ff -34b57b5,b0 +34b5798,4d +34b5799,a0 +34b579a,b +34b579b,94 +34b579c,5e +34b579d,a0 +34b579e,5 +34b579f,ce +34b57a0,eb +34b57a1,20 34b57b7,8e 34b57bb,8e -34b57bf,8e +34b57be,6f +34b57bf,ff +34b57c0,ff +34b57c1,b0 34b57c3,8e -34b57c7,6e -34b57c8,70 -34b57cb,b -34b57cc,ef -34b57cd,b0 -34b57ea,d -34b57eb,a0 -34b57ec,b -34b57ed,c0 -34b57ee,d -34b57ef,a0 -34b57f0,b -34b57f1,c0 -34b57f2,d -34b57f3,a0 -34b57f4,b -34b57f5,c0 +34b57c7,8e +34b57cb,8e +34b57cf,8e +34b57d3,6e +34b57d4,70 +34b57d7,b +34b57d8,ef +34b57d9,b0 34b57f6,d 34b57f7,a0 34b57f8,b @@ -11658,161 +11661,167 @@ ec9ce7,7a 34b57fb,a0 34b57fc,b 34b57fd,c0 -34b57fe,b -34b57ff,d4 -34b5800,7e +34b57fe,d +34b57ff,a0 +34b5800,b 34b5801,c0 -34b5802,5 -34b5803,de -34b5804,db +34b5802,d +34b5803,a0 +34b5804,b 34b5805,c0 -34b5822,6e -34b5823,30 -34b5824,7 -34b5825,e3 -34b5826,d -34b5827,90 -34b5828,b -34b5829,c0 -34b582a,a -34b582b,d0 -34b582c,1e -34b582d,80 -34b582e,5 -34b582f,e4 -34b5830,8e -34b5831,20 -34b5833,da -34b5834,cb -34b5837,9d -34b5838,e7 -34b583b,3e -34b583c,e0 -34b585a,e8 -34b585d,ac -34b585e,ca -34b5861,ca -34b5862,ac -34b5863,d -34b5864,b0 -34b5865,e7 -34b5866,6e -34b5867,3d -34b5868,d5 -34b5869,e2 -34b586a,e -34b586b,ab -34b586c,ca -34b586d,d0 -34b586e,c -34b586f,e7 -34b5870,9e -34b5871,b0 -34b5872,a -34b5873,e1 -34b5874,5f -34b5875,80 -34b5892,3d -34b5893,a0 -34b5894,b -34b5895,c0 -34b5896,6 -34b5897,e6 -34b5898,9e -34b5899,40 -34b589b,9e -34b589c,e7 -34b589f,2e -34b58a0,d0 -34b58a3,cc -34b58a4,da -34b58a6,9 -34b58a7,e4 -34b58a8,6e -34b58a9,70 -34b58aa,6e -34b58ab,70 -34b58ac,9 -34b58ad,e4 -34b58ca,6e -34b58cb,50 -34b58cc,5 -34b58cd,e5 -34b58ce,d -34b58cf,a0 -34b58d0,b -34b58d1,d0 -34b58d2,9 -34b58d3,e0 -34b58d4,e -34b58d5,90 -34b58d6,3 -34b58d7,e7 -34b58d8,8e -34b58d9,30 -34b58db,cc -34b58dc,cc -34b58df,7e -34b58e0,e7 -34b58e3,d -34b58e4,e0 -34b58e7,d -34b58e8,a0 -34b58eb,8e -34b58ec,50 -34b58ee,d -34b58ef,ea -34b5902,b -34b5903,ff -34b5904,ff -34b5905,c0 -34b5908,5e -34b5909,70 -34b590b,3 -34b590c,d9 -34b590f,c -34b5910,b0 -34b5913,bd -34b5914,20 -34b5916,9 -34b5917,e4 -34b591a,d -34b591b,ff -34b591c,ff -34b591d,c0 -34b592b,6 -34b592c,de -34b592d,a0 -34b592f,b -34b5930,d3 -34b5933,c -34b5934,b0 -34b5937,c -34b5938,b0 -34b593b,5e -34b593c,a0 -34b593e,b -34b593f,fd -34b5940,20 -34b5943,7e -34b5944,90 -34b5947,d -34b5948,b0 -34b594b,c -34b594c,b0 -34b594f,c -34b5950,b0 -34b5953,b -34b5954,d4 -34b5957,5 -34b5958,de -34b5959,a0 -34b5963,c -34b5964,a0 -34b5967,c -34b5968,a0 -34b596b,c -34b596c,a0 +34b5806,d +34b5807,a0 +34b5808,b +34b5809,c0 +34b580a,b +34b580b,d4 +34b580c,7e +34b580d,c0 +34b580e,5 +34b580f,de +34b5810,db +34b5811,c0 +34b582e,6e +34b582f,30 +34b5830,7 +34b5831,e3 +34b5832,d +34b5833,90 +34b5834,b +34b5835,c0 +34b5836,a +34b5837,d0 +34b5838,1e +34b5839,80 +34b583a,5 +34b583b,e4 +34b583c,8e +34b583d,20 +34b583f,da +34b5840,cb +34b5843,9d +34b5844,e7 +34b5847,3e +34b5848,e0 +34b5866,e8 +34b5869,ac +34b586a,ca +34b586d,ca +34b586e,ac +34b586f,d +34b5870,b0 +34b5871,e7 +34b5872,6e +34b5873,3d +34b5874,d5 +34b5875,e2 +34b5876,e +34b5877,ab +34b5878,ca +34b5879,d0 +34b587a,c +34b587b,e7 +34b587c,9e +34b587d,b0 +34b587e,a +34b587f,e1 +34b5880,5f +34b5881,80 +34b589e,3d +34b589f,a0 +34b58a0,b +34b58a1,c0 +34b58a2,6 +34b58a3,e6 +34b58a4,9e +34b58a5,40 +34b58a7,9e +34b58a8,e7 +34b58ab,2e +34b58ac,d0 +34b58af,cc +34b58b0,da +34b58b2,9 +34b58b3,e4 +34b58b4,6e +34b58b5,70 +34b58b6,6e +34b58b7,70 +34b58b8,9 +34b58b9,e4 +34b58d6,6e +34b58d7,50 +34b58d8,5 +34b58d9,e5 +34b58da,d +34b58db,a0 +34b58dc,b +34b58dd,d0 +34b58de,9 +34b58df,e0 +34b58e0,e +34b58e1,90 +34b58e2,3 +34b58e3,e7 +34b58e4,8e +34b58e5,30 +34b58e7,cc +34b58e8,cc +34b58eb,7e +34b58ec,e7 +34b58ef,d +34b58f0,e0 +34b58f3,d +34b58f4,a0 +34b58f7,8e +34b58f8,50 +34b58fa,d +34b58fb,ea +34b590e,b +34b590f,ff +34b5910,ff +34b5911,c0 +34b5914,5e +34b5915,70 +34b5917,3 +34b5918,d9 +34b591b,c +34b591c,b0 +34b591f,bd +34b5920,20 +34b5922,9 +34b5923,e4 +34b5926,d +34b5927,ff +34b5928,ff +34b5929,c0 +34b5937,6 +34b5938,de +34b5939,a0 +34b593b,b +34b593c,d3 +34b593f,c +34b5940,b0 +34b5943,c +34b5944,b0 +34b5947,5e +34b5948,a0 +34b594a,b +34b594b,fd +34b594c,20 +34b594f,7e +34b5950,90 +34b5953,d +34b5954,b0 +34b5957,c +34b5958,b0 +34b595b,c +34b595c,b0 +34b595f,b +34b5960,d4 +34b5963,5 +34b5964,de +34b5965,a0 34b596f,c 34b5970,a0 34b5973,c @@ -11833,38 +11842,44 @@ ec9ce7,7a 34b5990,a0 34b5993,c 34b5994,a0 -34b599a,b -34b599b,ed -34b599c,30 -34b599f,4e -34b59a0,90 -34b59a3,d -34b59a4,a0 -34b59a7,c -34b59a8,a0 -34b59ab,b -34b59ac,c4 -34b59af,5 -34b59b0,ef -34b59b1,a0 -34b59b3,b -34b59b4,d5 -34b59b7,c -34b59b8,b0 -34b59bb,d -34b59bc,a0 -34b59bf,d -34b59c0,a0 -34b59c3,5e -34b59c4,80 -34b59c6,b -34b59c7,ec -34b59c8,20 -34b59ea,5d -34b59eb,ed -34b59ec,83 -34b59ed,a7 -34b59ee,98 -34b59ef,38 -34b59f0,de -34b59f1,c3 +34b5997,c +34b5998,a0 +34b599b,c +34b599c,a0 +34b599f,c +34b59a0,a0 +34b59a6,b +34b59a7,ed +34b59a8,30 +34b59ab,4e +34b59ac,90 +34b59af,d +34b59b0,a0 +34b59b3,c +34b59b4,a0 +34b59b7,b +34b59b8,c4 +34b59bb,5 +34b59bc,ef +34b59bd,a0 +34b59bf,b +34b59c0,d5 +34b59c3,c +34b59c4,b0 +34b59c7,d +34b59c8,a0 +34b59cb,d +34b59cc,a0 +34b59cf,5e +34b59d0,80 +34b59d2,b +34b59d3,ec +34b59d4,20 +34b59f6,5d +34b59f7,ed +34b59f8,83 +34b59f9,a7 +34b59fa,98 +34b59fb,38 +34b59fc,de +34b59fd,c3 diff --git a/data/symbols.json b/data/symbols.json index d4309144c..02b869100 100644 --- a/data/symbols.json +++ b/data/symbols.json @@ -4,7 +4,7 @@ "EXTENDED_ITEM_DATA": "03482008", "FAIRY_ITEMS": "03481C03", "FAIRY_OCARINA_ITEM": "03481C02", - "FONT_TEXTURE": "034B4542", + "FONT_TEXTURE": "034B454E", "INITIAL_SAVE_DATA": "03481800", "ITEM_OVERRIDES": "03481000", "ITEM_TABLE": "03482050", @@ -14,20 +14,20 @@ "PLAYER_ID": "03481C00", "PLAYER_OVERRIDE_DATA": "03482000", "TIME_TRAVEL_SAVED_EQUIPS": "0348201C", - "cfg_dungeon_info_enable": "034B4500", - "cfg_dungeon_info_mq_enable": "034B4518", - "cfg_dungeon_info_mq_need_map": "034B4514", - "cfg_dungeon_info_reward_need_altar": "034B450C", - "cfg_dungeon_info_reward_need_compass": "034B4510", - "cfg_dungeon_is_mq": "034B4534", - "cfg_dungeon_rewards": "034B4440", - "dungeon_count": "034B4504", - "dungeons": "034B4464", - "font_sprite": "034B4400", - "heap_next": "034B4508", - "medal_colors": "034B4450", - "medals_sprite": "034B4420", - "quest_items_sprite": "034B4410", - "setup_db": "034B4524", - "stones_sprite": "034B4430" + "cfg_dungeon_info_enable": "034B450C", + "cfg_dungeon_info_mq_enable": "034B4524", + "cfg_dungeon_info_mq_need_map": "034B4520", + "cfg_dungeon_info_reward_need_altar": "034B4518", + "cfg_dungeon_info_reward_need_compass": "034B451C", + "cfg_dungeon_is_mq": "034B4540", + "cfg_dungeon_rewards": "034B444C", + "dungeon_count": "034B4510", + "dungeons": "034B4470", + "font_sprite": "034B440C", + "heap_next": "034B4514", + "medal_colors": "034B445C", + "medals_sprite": "034B442C", + "quest_items_sprite": "034B441C", + "setup_db": "034B4530", + "stones_sprite": "034B443C" } \ No newline at end of file From 0d7df310905861ca7a3f32c77a2eef2c49baf383 Mon Sep 17 00:00:00 2001 From: Nick Langille Date: Sun, 23 Sep 2018 06:26:00 -0400 Subject: [PATCH 582/755] Make medallions brighter on dungeon info display --- ASM/build/bundle.o | Bin 10168 -> 10168 bytes ASM/c/dungeon_info.c | 12 ++++++------ data/rom_patch.txt | 30 ++++++++++++------------------ 3 files changed, 18 insertions(+), 24 deletions(-) diff --git a/ASM/build/bundle.o b/ASM/build/bundle.o index 4c6e78a27f5fa2fe4ca4cb61abc4531a1f0b95de..4a4167c9ddeeced5a576368dbdc476484cbbdf5a 100644 GIT binary patch delta 31 pcmV+)0O0?)PqGXKcP0JGK<;u7a<4&eX* delta 31 pcmV+)0O0?)Pq Date: Sun, 23 Sep 2018 06:10:42 -0500 Subject: [PATCH 583/755] Big Poe free bottles in logic Also add the Big Poe item to the hints, fix a minor typo. --- BaseClasses.py | 1 + HintList.py | 5 +++-- ItemList.py | 2 ++ Patches.py | 2 -- Rules.py | 2 +- 5 files changed, 7 insertions(+), 5 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 8a4c83ad4..3c1f0f1a2 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -67,6 +67,7 @@ def copy(self): ret = World(self.settings) ret.skipped_trials = copy.copy(self.skipped_trials) ret.dungeon_mq = copy.copy(self.dungeon_mq) + ret.big_poe_count = copy.copy(self.big_poe_count) ret.can_take_damage = self.can_take_damage ret.shop_prices = copy.copy(self.shop_prices) ret.id = self.id diff --git a/HintList.py b/HintList.py index d239a461e..36d47a9f9 100644 --- a/HintList.py +++ b/HintList.py @@ -95,12 +95,13 @@ def getHintGroup(group, world): 'Bottle with Milk': (["cow juice", "a white liquid"], "a Milk Bottle", 'item'), 'Bottle with Red Potion': (["a vitality vial", "a red liquid"], "a Red Bottle", 'item'), 'Bottle with Green Potion': (["a magic mixture", "a green liquid"], "a Green Bottle", 'item'), - 'Bottle with Blue Potion': (["a cure-all antidote", "a blue liquid"], "a Blue Bottle", 'item'), + 'Bottle with Blue Potion': (["an all-cure antidote", "a blue liquid"], "a Blue Bottle", 'item'), 'Bottle with Fairy': (["an imprisoned fairy", "an extra life"], "a Fairy Bottle", 'item'), 'Bottle with Fish': (["an aquarium", "a contained sea beast"], "a Fish Bottle", 'item'), 'Bottle with Blue Fire': (["a conflagration canteen", "an icemelt jar"], "a Fire Bottle", 'item'), 'Bottle with Bugs': (["an insectarium", "skultula finders", "a Bug Bottle"], "bugs", 'item'), 'Bottle with Poe': (["a spooky ghost", "a face in the jar"], "a Poe Bottle", 'item'), + 'Bottle with Big Poe': (["the spookiest ghost", "a sidequest spirit"], "a Big Poe Bottle", 'item'), 'Stone of Agony': (["a vibrating rock", "a clue finder"], "the Stone of Agony", 'item'), 'Gerudo Membership Card': (["a GT subscription", "a desert tribe's pass"], "the Gerudo Card", 'item'), 'Progressive Wallet': (["a mo' money holder", "a gem purse", "financial capacity"], "a Wallet", 'item'), @@ -129,7 +130,7 @@ def getHintGroup(group, world): 'Prescription': (["a pill pamphlet", "a Doctor's slip"], "the Prescription", 'item'), 'Eyeball Frog': (["a perceiving polliwog"], "the Eyeball Frog", 'item'), 'Eyedrops': (["a vision vial"], "the Eyedrops", 'item'), - 'Claim Check': (["a three day wait"], "the Claim check", 'item'), + 'Claim Check': (["a three day wait"], "the Claim Check", 'item'), 'Map': (["a dungeon atlas", "blueprints"], "a Map", 'item'), 'Compass': (["a treasure tracker", "a magnetic needle"], "a Compass", 'item'), 'BossKey': (["a master of unlocking", "a dungeon's final pass"], "a Boss Key", 'item'), diff --git a/ItemList.py b/ItemList.py index 11e65b6f8..1a05242d1 100644 --- a/ItemList.py +++ b/ItemList.py @@ -758,6 +758,8 @@ def get_pool_core(world): for _ in range(normal_bottle_count): bottle = random.choice(normal_bottles) pool.append(bottle) + if world.big_poe_count_random: + world.big_poe_count = random.randint(1, 10) tradeitem = random.choice(tradeitems) pool.append(tradeitem) pool.extend(songlist) diff --git a/Patches.py b/Patches.py index 0eb684ad6..b96bdbff0 100644 --- a/Patches.py +++ b/Patches.py @@ -1097,8 +1097,6 @@ def write_save_table(rom): remove_unused_messages(messages) # Set Big Poe count to get reward from buyer - if world.big_poe_count_random: - world.big_poe_count = random.randint(1, 10) poe_points = world.big_poe_count * 100 rom.write_int16(0xEE69CE, poe_points) # update dialogue diff --git a/Rules.py b/Rules.py index 35ce4e119..ec418dfa9 100644 --- a/Rules.py +++ b/Rules.py @@ -165,7 +165,7 @@ def global_rules(world): set_rule(world.get_location('Bombchu Bowling Bomb Bag'), lambda state: state.has_bombchus()) set_rule(world.get_location('Bombchu Bowling Piece of Heart'), lambda state: state.has_bombchus()) set_rule(world.get_location('Adult Shooting Gallery'), lambda state: state.can_use('Bow')) - set_rule(world.get_location('10 Big Poes'), lambda state: (not world.logic_no_big_poes) and (state.can_use('Bow') and state.has('Epona') and state.has_bottle() and state.guarantee_hint())) + set_rule(world.get_location('10 Big Poes'), lambda state: (not world.logic_no_big_poes) and state.is_adult() and ((state.can_use('Bow') and state.has('Epona') and state.has_bottle() and state.guarantee_hint()) or state.has('Bottle with Big Poe', world.big_poe_count))) set_rule(world.get_location('Treasure Chest Game'), lambda state: state.can_use('Lens of Truth')) set_rule(world.get_entrance('Lost Woods Dive Warp'), lambda state: state.can_dive() and state.can_leave_forest()) set_rule(world.get_entrance('Zora River Dive Warp'), lambda state: state.can_dive()) From 9ceec34642b6da764000c2bfd0a66ab3ba054aae Mon Sep 17 00:00:00 2001 From: AmazingAmpharos Date: Sun, 23 Sep 2018 06:15:20 -0500 Subject: [PATCH 584/755] Latest updates from mzx Some various refactors and optimizations. --- MQ.py | 66 +++------------------------------------- Main.py | 16 +++++----- Rom.py | 94 +++++++++++++++++++++++++++++++++++++++++++++------------ 3 files changed, 89 insertions(+), 87 deletions(-) diff --git a/MQ.py b/MQ.py index 6d64a1693..cdfc28382 100644 --- a/MQ.py +++ b/MQ.py @@ -48,7 +48,6 @@ import json from struct import pack, unpack -DMA_TABLE = 0x7430 SCENE_TABLE = 0xB71440 @@ -105,6 +104,7 @@ def __init__(self, delta): self.polytypes = delta['PolyTypes'] self.cams = delta['Cams'] + class Icon(object): def __init__(self, data): self.icon = data["Icon"]; @@ -128,6 +128,7 @@ def write_to_floormap(self, rom:LocalRom, addr): p.write_to_floormap(rom, addr + cur) cur += 0x0C + class IconPoint(object): def __init__(self, point): self.flag = point["Flag"] @@ -355,6 +356,7 @@ def append_path_data(self, rom:LocalRom): self.file.end = cur return records_offset + class Room(object): def __init__(self, room): self.file = File(room['File']) @@ -416,7 +418,6 @@ def patch_files(rom:LocalRom, mq_scenes:list): patch_ice_cavern_scene_header(rom) scene.write_data(rom) - verify_dma(rom) def get_json(): @@ -440,6 +441,7 @@ def patch_ice_cavern_scene_header(rom): rom.buffer[0x2BEB000:0x2BEB038] = rom.buffer[0x2BEB008:0x2BEB040] rom.write_int32s(0x2BEB038, [0x0D000000, 0x02000000]) + def patch_spirit_temple_mq_room_6(rom:LocalRom, room_addr): cur = room_addr @@ -483,8 +485,6 @@ def patch_spirit_temple_mq_room_6(rom:LocalRom, room_addr): # make the child header skip the first actor, # which avoids the spawning of the block while in the hole - - cmd_addr = room_addr + cmd_actors_offset actor_list_addr += 0x10 actors = rom.read_byte(cmd_addr + 1) @@ -499,15 +499,6 @@ def patch_spirit_temple_mq_room_6(rom:LocalRom, room_addr): rom.write_int32s(room_addr, [0x18000000, seg]) - - -def get_dma_record(rom:LocalRom, cur): - start = rom.read_int32(cur) - end = rom.read_int32(cur+0x04) - size = end-start - return start, end, size - - def verify_remap(scenes): def test_remap(file:File): if file.remap is not None: @@ -527,56 +518,9 @@ def test_remap(file:File): print("{0} - {1}".format(result, file)) -def verify_dma(rom:LocalRom): - cur = DMA_TABLE - overlapping_records = [] - dma_data = [] - - while True: - this_start, this_end, this_size = get_dma_record(rom, cur) - - if this_start == 0 and this_end == 0: - break - - dma_data.append((this_start, this_end, this_size)) - cur += 0x10 - - dma_data.sort(key=lambda v: v[0]) - - for i in range(0, len(dma_data) - 1): - this_start, this_end, this_size = dma_data[i] - next_start, next_end, next_size = dma_data[i + 1] - - if this_end > next_start: - overlapping_records.append( - '0x%08X - 0x%08X (Size: 0x%04X)\n0x%08X - 0x%08X (Size: 0x%04X)' % \ - (this_start, this_end, this_size, next_start, next_end, next_size) - ) - - if len(overlapping_records) > 0: - raise Exception("Overlapping DMA Data Records!\n%s" % \ - '\n-------------------------------------\n'.join(overlapping_records)) - - def update_dmadata(rom:LocalRom, file:File): - cur = DMA_TABLE - key, start, end = file.dma_key, file.start, file.end - - dma_start, dma_end, dma_size = get_dma_record(rom, cur) - while dma_start != key: - if dma_start == 0 and dma_end == 0: - break - - cur += 0x10 - dma_start, dma_end, dma_size = get_dma_record(rom, cur) - - if dma_start == 0: - raise Exception('dmadata update failed: key {0:x} not found in dmadata'.format(key)) - - else: - rom.write_int32s(cur, [start, end, start, 0]) - + rom.update_dmadata_record(key, start, end) def update_scene_table(rom:LocalRom, sceneId, start, end): cur = sceneId * 0x14 + SCENE_TABLE diff --git a/Main.py b/Main.py index 7d57033fa..1f43a8e6e 100644 --- a/Main.py +++ b/Main.py @@ -137,20 +137,22 @@ def main(settings, window=dummy_window()): if settings.compress_rom == 'True': window.update_status('Compressing ROM') logger.info('Compressing ROM.') + + compressor_path = "" if platform.system() == 'Windows': if 8 * struct.calcsize("P") == 64: - run_process(window, logger, ["Compress\\Compress.exe", rom_path, os.path.join(output_dir, '%s-comp.z64' % outfilebase)]) + compressor_path = "Compress\\Compress.exe" else: - run_process(window, logger, ["Compress\\Compress32.exe", rom_path, os.path.join(output_dir, '%s-comp.z64' % outfilebase)]) - os.remove(rom_path) + compressor_path = "Compress\\Compress32.exe" elif platform.system() == 'Linux': - run_process(window, logger, ["Compress/Compress", rom_path, os.path.join(output_dir, '%s-comp.z64' % outfilebase)]) - os.remove(rom_path) + compressor_path = "Compress/Compress" elif platform.system() == 'Darwin': - run_process(window, logger, ["Compress/Compress.out", rom_path, os.path.join(output_dir, '%s-comp.z64' % outfilebase)]) - os.remove(rom_path) + compressor_path = "Compress/Compress.out" else: logger.info('OS not supported for compression') + + run_process(window, logger, [compressor_path, rom_path, os.path.join(output_dir, '%s-comp.z64' % outfilebase)]) + os.remove(rom_path) window.update_progress(95) diff --git a/Rom.py b/Rom.py index 872e50479..7a068dffb 100644 --- a/Rom.py +++ b/Rom.py @@ -10,6 +10,8 @@ from Utils import local_path, default_output_path +DMADATA_START = 0x7430 + class LocalRom(object): def __init__(self, settings, patch=True): self.last_address = None @@ -26,14 +28,12 @@ def __init__(self, settings, patch=True): try: # Read decompressed file if it exists - with open(decomp_file, 'rb') as stream: - self.buffer = read_rom(stream) + self.read_rom(decomp_file) # This is mainly for validation testing, but just in case... self.decompress_rom_file(decomp_file, decomp_file) except Exception as ex: # No decompressed file, instead read Input ROM - with open(file, 'rb') as stream: - self.buffer = read_rom(stream) + self.read_rom(file) self.decompress_rom_file(file, decomp_file) # Add file to maximum size @@ -57,23 +57,22 @@ def decompress_rom_file(self, file, decomp_file): raise RuntimeError('ROM file %s is not a valid OoT 1.0 US ROM.' % file) elif len(self.buffer) == 0x2000000: # If Input ROM is compressed, then Decompress it + subcall = [] + if platform.system() == 'Windows': if 8 * struct.calcsize("P") == 64: - subprocess.call(["Decompress\\Decompress.exe", file, decomp_file]) + subcall = ["Decompress\\Decompress.exe", file, decomp_file] else: - subprocess.call(["Decompress\\Decompress32.exe", file, decomp_file]) - with open(decomp_file, 'rb') as stream: - self.buffer = read_rom(stream) + subcall = ["Decompress\\Decompress32.exe", file, decomp_file] elif platform.system() == 'Linux': - subprocess.call(["Decompress/Decompress", file]) - with open(("ZOOTDEC.z64"), 'rb') as stream: - self.buffer = read_rom(stream) + subcall = ["Decompress/Decompress", file] elif platform.system() == 'Darwin': - subprocess.call(["Decompress/Decompress.out", file]) - with open(("ZOOTDEC.z64"), 'rb') as stream: - self.buffer = read_rom(stream) + subcall = ["Decompress/Decompress.out", file] else: raise RuntimeError('Unsupported operating system for decompression. Please supply an already decompressed ROM.') + + subprocess.call(subcall) + self.read_rom(decomp_file) else: # ROM file is a valid and already uncompressed pass @@ -157,6 +156,7 @@ def write_int32s(self, startaddress, values): self.write_int32(startaddress + (i * 4), value) def write_to_file(self, file): + self.verify_dmadata() self.update_crc() with open(file, 'wb') as outfile: outfile.write(self.buffer) @@ -196,10 +196,66 @@ def update_crc(self): self.write_int32s(0x10, [crc0, crc1]) -def read_rom(stream): - "Reads rom into bytearray" - buffer = bytearray(stream.read()) - return buffer + def read_rom(self, file): + # "Reads rom into bytearray" + with open(file, 'rb') as stream: + self.buffer = bytearray(stream.read()) + + # dmadata/file management helper functions + + def _get_dmadata_record(rom, cur): + start = rom.read_int32(cur) + end = rom.read_int32(cur+0x04) + size = end-start + return start, end, size + + + def verify_dmadata(rom): + cur = DMADATA_START + overlapping_records = [] + dma_data = [] + + while True: + this_start, this_end, this_size = rom._get_dmadata_record(cur) + + if this_start == 0 and this_end == 0: + break + + dma_data.append((this_start, this_end, this_size)) + cur += 0x10 + + dma_data.sort(key=lambda v: v[0]) + + for i in range(0, len(dma_data) - 1): + this_start, this_end, this_size = dma_data[i] + next_start, next_end, next_size = dma_data[i + 1] + + if this_end > next_start: + overlapping_records.append( + '0x%08X - 0x%08X (Size: 0x%04X)\n0x%08X - 0x%08X (Size: 0x%04X)' % \ + (this_start, this_end, this_size, next_start, next_end, next_size) + ) + + if len(overlapping_records) > 0: + raise Exception("Overlapping DMA Data Records!\n%s" % \ + '\n-------------------------------------\n'.join(overlapping_records)) + + + def update_dmadata_record(rom, key, start, end): + cur = DMADATA_START + dma_start, dma_end, dma_size = rom._get_dmadata_record(cur) + while dma_start != key: + if dma_start == 0 and dma_end == 0: + break + + cur += 0x10 + dma_start, dma_end, dma_size = rom._get_dmadata_record(cur) + + if dma_start == 0: + raise Exception('dmadata update failed: key {0:x} not found in dmadata'.format(key)) + + else: + rom.write_int32s(cur, [start, end, start, 0]) def int16_as_bytes(value): @@ -207,7 +263,7 @@ def int16_as_bytes(value): return [(value >> 8) & 0xFF, value & 0xFF] def int24_as_bytes(value): - value = value & 0xFFFFFFFF + value = value & 0xFFFFFF return [(value >> 16) & 0xFF, (value >> 8) & 0xFF, value & 0xFF] def int32_as_bytes(value): From 094be11e0c8a6f123f6e59cdcabaee3b8e04f657 Mon Sep 17 00:00:00 2001 From: mzxrules Date: Sun, 23 Sep 2018 12:36:51 -0400 Subject: [PATCH 585/755] removed instant dialog En_Wonder_Talk2 spawns --- data/mqu.json | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/data/mqu.json b/data/mqu.json index 040183fd9..053f7c107 100644 --- a/data/mqu.json +++ b/data/mqu.json @@ -25570,12 +25570,6 @@ "011D FD1D FFC1 003C 0000 8000 0000 03FC", "011D FA26 FFC1 003C 0000 8000 0000 03FD", "011D FCB0 FFC1 003C 0000 8000 0000 03FE", - "0185 FBCE FFDA FF47 0000 4000 0001 4226", - "0185 FB07 FFDA FF47 0000 4000 0001 42A8", - "0185 FDC7 FFDA 005E 0000 8000 0001 42A9", - "0185 FC10 FFDA 005F 0000 8000 0001 426A", - "0185 FCE6 FFDA FE2F 0000 0000 0001 422B", - "0185 FDFE FFDA FF47 0000 4000 0001 42AC", "012A F9ED 0005 005F 0000 8000 0000 0712", "011C F911 0005 005F 0000 8000 0000 0000", "011C FAC9 0005 005F 0000 8000 0000 0000", @@ -25633,8 +25627,6 @@ "01B4 0420 FFC1 0037 0000 4000 0000 0501", "005E 0565 004B FFBF 0AAB C000 0000 1085", "005E 0565 004B 00AF 0AAB C000 0000 1085", - "0185 02E2 FFDA 0036 0000 0000 0001 493C", - "0185 0130 FFFE 0126 0000 C000 0015 4F3D", "00AE 0146 FFC1 FF47 0000 4000 0000 0004", "00AE 0146 FFC1 0127 0000 4000 0000 0004", "00AE 0D1E FDE1 0037 0000 C000 0000 0006", @@ -37013,8 +37005,7 @@ "Actors": [ "0113 F9A3 FFA6 FFED 0000 4E39 0000 FF03", "000A F976 0078 FE12 0000 8000 001F 89A0", - "0187 F9BA FFA6 FF85 0000 0000 0000 7C3C", - "0185 FA8D FFAE FF17 0000 0000 0045 4C9F" + "0187 F9BA FFA6 FF85 0000 0000 0000 7C3C" ] }, { @@ -37061,7 +37052,6 @@ "012D F9D4 0166 FC12 4000 0000 0000 FFC2", "0011 F9D5 00C1 F9F5 0000 4000 0000 1102", "0187 F9F2 FFB0 FCAF 0000 0000 0000 705A", - "0185 F9EB FFD8 FB0C 0000 0000 0045 4E5C", "0117 F9D4 FFB0 FCDC 0000 8000 0000 015C", "0117 FB23 00A0 F7C0 0000 0000 0000 1FDC", "0117 F9FA 0035 FA45 0000 0000 0000 1FDC", @@ -37101,7 +37091,6 @@ "0037 FB31 01C1 F54F 0000 C000 0000 0001", "0037 F9E6 01C1 F551 0000 0D83 0000 0001", "0187 FA03 0117 F5F4 0000 0000 0000 0C3C", - "0185 F9D8 00E7 F6FD 0000 0000 000B 4C83", "0139 F9D7 FFD7 F347 0000 0000 0000 000B", "00FF F9D7 FFD7 F347 0000 0000 0000 0BC7", "00FF F9D7 009F F40F 0000 0000 0000 0BC3", @@ -37137,7 +37126,6 @@ "0062 FF79 0028 F55C F555 D05B 0000 0015", "0062 FFCA FFF0 F57C FC72 105B 0000 0015", "0061 FFB3 FF5F F545 0000 0000 0000 0015", - "0185 009F FFBE F546 0000 0000 0045 4D95", "0049 FFC7 FF69 F48E 0000 0000 0000 3FFE", "0049 FF3C FF69 F4BE 0000 0000 0000 3FFE", "0049 003D FF69 F4C6 0000 0000 0000 3FFE", @@ -37173,7 +37161,6 @@ "0049 05A6 FFBF F546 0000 0000 0000 2FD0", "000A 05A1 FFAF F427 0000 8000 0000 7952", "0187 05A8 FFBF F542 0000 0000 0000 643C", - "0185 05A7 FFBF F548 0000 0000 0045 4C99", "012A 05A3 006E F6B4 C000 0000 0000 3803" ] }, @@ -37213,7 +37200,6 @@ "012D 0536 FE7B F8B8 0000 0000 0000 0CC1", "012D 04D1 FE7B F98B 0000 0000 0000 0CC1", "012D 0641 FE7A F99C 0000 0000 0000 0CC1", - "0185 05CB FF2A FCF0 0000 0000 000B 4D16", "005E 071D FF10 FA19 0000 0000 0000 107F", "0049 0619 FF11 F8BE 0000 0000 0000 207F", "0049 046F FF11 F8CE 0000 0000 0000 207F", @@ -37248,7 +37234,6 @@ "0054 04A7 FFEC 0061 0000 6000 0000 FFFF", "000A 05C9 0078 FF45 0000 8000 001E 8841", "0187 0611 FFC5 FF55 0000 0000 0000 783C", - "0185 04E3 FFC6 FE8A 0000 0000 0045 4C9E", "0112 05C9 0070 FDD0 0000 0000 0001 1AE7" ] }, @@ -37322,7 +37307,6 @@ "012D 0811 FD61 FA48 0000 4000 0000 FFC2", "012D 0903 FD61 FB38 0000 8000 0000 FFC2", "000A 0887 FF94 F9D0 0000 C000 001B 884D", - "0185 0894 FF4D FA46 0000 0000 0045 4CDB", "0117 083D FF66 F9E8 0000 0000 0000 00DB", "0117 0995 FC86 F9B4 0000 0000 0000 1FDB", "0117 08FE FCE3 FA48 0000 0000 0000 1FDB", From 2fe29d9d2a5647ea4b547ef78d641cae8f639d6c Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 23 Sep 2018 13:33:38 -0400 Subject: [PATCH 586/755] Remove accidental settings commit --- settings.sav | 1 - version.py | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) delete mode 100644 settings.sav diff --git a/settings.sav b/settings.sav deleted file mode 100644 index f5c32ebc9..000000000 --- a/settings.sav +++ /dev/null @@ -1 +0,0 @@ -{"checked_version": "", "rom": "ZOOTDEC.z64", "output_dir": "", "seed": "TX8YWK77VZ", "count": null, "world_count": 1, "player_num": 1, "create_spoiler": true, "compress_rom": "None", "open_forest": true, "open_kakariko": false, "open_door_of_time": false, "gerudo_fortress": "normal", "bridge": "vanilla", "all_reachable": true, "bombchus_in_logic": false, "one_item_per_dungeon": false, "trials_random": false, "trials": 6, "no_escape_sequence": false, "no_guard_stealth": false, "no_epona_race": false, "fast_chests": true, "big_poe_count_random": true, "big_poe_count": 10, "free_scarecrow": false, "scarecrow_song": "DAAAAAAA", "shuffle_kokiri_sword": true, "shuffle_weird_egg": true, "shuffle_ocarinas": true, "shuffle_song_items": true, "shuffle_gerudo_card": false, "shuffle_scrubs": true, "shopsanity": "off", "shuffle_mapcompass": "dungeon", "shuffle_smallkeys": "dungeon", "shuffle_bosskeys": "dungeon", "enhance_map_compass": true, "unlocked_ganondorf": false, "tokensanity": "off", "quest": "vanilla", "logic_skulltulas": 50, "logic_no_night_tokens_without_suns_song": false, "logic_no_big_poes": false, "logic_no_child_fishing": false, "logic_no_adult_fishing": false, "logic_no_trade_skull_mask": false, "logic_no_trade_mask_of_truth": false, "logic_no_trade_biggoron": false, "logic_no_1500_archery": false, "logic_no_memory_game": false, "logic_no_second_dampe_race": false, "logic_tricks": false, "logic_man_on_roof": false, "logic_child_deadhand": false, "logic_dc_jump": false, "logic_windmill_hp": false, "logic_crater_bean_hp_with_hovers": false, "logic_zora_with_cucco": false, "logic_zora_with_hovers": false, "logic_fewer_tunic_requirements": false, "logic_lens": "all", "ocarina_songs": false, "check_version": null, "correct_chest_sizes": false, "clearer_hints": false, "hints": "always", "text_shuffle": "none", "difficulty": "normal", "default_targeting": "hold", "background_music": "normal", "kokiricolor": "Kokiri Green", "goroncolor": "Vivid Cyan", "zoracolor": "Zora Blue", "navicolordefault": "0000ff", "navicolorenemy": "Yellow", "navicolornpc": "Light Blue", "navicolorprop": "Green", "navisfxoverworld": "Default", "navisfxenemytarget": "Default", "healthSFX": "Default", "settings_string": "DL22KRTLBLAAAS2A", "numeric_seed": 43933394379593103891213531552701838283288406519527673404262633559115845440186} \ No newline at end of file diff --git a/version.py b/version.py index 6a5a2ba89..c796afc81 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.19.17 f.LUM' +__version__ = '2.19.18 f.LUM' From ab05dde7d3e9251cc321a775f4ce92dada265097 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 23 Sep 2018 15:49:38 -0400 Subject: [PATCH 587/755] Added bottled big poes to items --- Items.py | 1 + version.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Items.py b/Items.py index fce350f33..a7523e765 100644 --- a/Items.py +++ b/Items.py @@ -56,6 +56,7 @@ def __init__(self, model, gid, price): 'Bottle with Fish': (True, False, None, None, 0x8D, 0x00C6, 0x01), 'Bottle with Blue Fire': (True, False, None, None, 0x8E, 0x00C6, 0x01), 'Bottle with Bugs': (True, False, None, None, 0x8F, 0x00C6, 0x01), + 'Bottle with Big Poe': (True, False, None, None, 0x90, 0x00C6, 0x01), 'Bottle with Poe': (True, False, None, None, 0x91, 0x00C6, 0x01), 'Weird Egg': (True, False, None, 0x08E0, 0x47, 0x00DA, 0x29), 'Pocket Egg': (True, False, None, 0x03A0, 0x1D, 0x00DA, 0x29), diff --git a/version.py b/version.py index c796afc81..f427f1c25 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.19.18 f.LUM' +__version__ = '2.19.19 f.LUM' From c0066bd076e4003e5a93951755c4cf2ce3d976df Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 23 Sep 2018 16:07:49 -0400 Subject: [PATCH 588/755] Fix tycoon wallet and enhanced map/compass in coop (Issue #163 --- Patches.py | 21 +++++++++++++++++---- version.py | 2 +- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/Patches.py b/Patches.py index ff505cf27..0a182c382 100644 --- a/Patches.py +++ b/Patches.py @@ -1402,16 +1402,26 @@ def write_save_table(rom): pass elif dungeon in ['BW', 'IC']: dungeon_name, boss_name, compass_id, map_id = dungeon_list[dungeon] - map_message = "\x13\x76\x08You found the \x05\x41Dungeon Map\x05\x40\x01for %s\x05\x40!\x01It\'s %s!\x09" % (dungeon_name, "masterful" if world.dungeon_mq[dungeon] else "ordinary") + if world.world_count > 1: + map_message = "\x13\x76\x08\x05\x42Player \x18\x05\x40 found the \x05\x41Dungeon Map\x05\x40\x01for %s\x05\x40!\x09" % (dungeon_name) + else: + map_message = "\x13\x76\x08You found the \x05\x41Dungeon Map\x05\x40\x01for %s\x05\x40!\x01It\'s %s!\x09" % (dungeon_name, "masterful" if world.dungeon_mq[dungeon] else "ordinary") + if world.quest == 'mixed': update_message_by_id(messages, map_id, map_message) else: dungeon_name, boss_name, compass_id, map_id = dungeon_list[dungeon] dungeon_reward = reward_list[world.get_location(boss_name).item.name] - compass_message = "\x13\x75\x08You found the \x05\x41Compass\x05\x40\x01for %s\x05\x40!\x01It holds the %s!\x09" % (dungeon_name, dungeon_reward) + if world.world_count > 1: + compass_message = "\x13\x75\x08\x05\x42Player \x18\x05\x40 found the \x05\x41Compass\x05\x40\x01for %s\x05\x40!\x09" % (dungeon_name) + else: + compass_message = "\x13\x75\x08You found the \x05\x41Compass\x05\x40\x01for %s\x05\x40!\x01It holds the %s!\x09" % (dungeon_name, dungeon_reward) update_message_by_id(messages, compass_id, compass_message) if world.quest == 'mixed': - map_message = "\x13\x76\x08You found the \x05\x41Dungeon Map\x05\x40\x01for %s\x05\x40!\x01It\'s %s!\x09" % (dungeon_name, "masterful" if world.dungeon_mq[dungeon] else "ordinary") + if world.world_count > 1: + map_message = "\x13\x76\x08\x05\x42Player \x18\x05\x40 found the \x05\x41Dungeon Map\x05\x40\x01for %s\x05\x40!\x09" % (dungeon_name) + else: + map_message = "\x13\x76\x08You found the \x05\x41Dungeon Map\x05\x40\x01for %s\x05\x40!\x01It\'s %s!\x09" % (dungeon_name, "masterful" if world.dungeon_mq[dungeon] else "ordinary") update_message_by_id(messages, map_id, map_message) else: @@ -1432,7 +1442,10 @@ def write_save_table(rom): # Add 3rd Wallet Upgrade rom.write_int16(0xB6D57E, 0x0003) rom.write_int16(0xB6EC52, 999) - update_message_by_id(messages, 0x00F8, "\x08\x13\x57You got a \x05\x43Tycoon's Wallet\x05\x40!\x01Now you can hold\x01up to \x05\x46999\x05\x40 \x05\x46Rupees\x05\x40.", 0x23) + tycoon_message = "\x08\x13\x57You got a \x05\x43Tycoon's Wallet\x05\x40!\x01Now you can hold\x01up to \x05\x46999\x05\x40 \x05\x46Rupees\x05\x40." + if world.world_count > 1: + tycoon_message = make_player_message(tycoon_message) + update_message_by_id(messages, 0x00F8, tycoon_message, 0x23) repack_messages(rom, messages) write_shop_items(rom, shop_item_file.start + 0x1DEC, shop_items) diff --git a/version.py b/version.py index f427f1c25..441312307 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.19.19 f.LUM' +__version__ = '2.19.20 f.LUM' From 4f6f2995a2d01cf79fc9e10a805818193a5cff5c Mon Sep 17 00:00:00 2001 From: mzxrules Date: Sun, 23 Sep 2018 23:31:44 -0400 Subject: [PATCH 589/755] Fixed issue with Scarecrow Song starting with a rest note --- ASM/build/asm_symbols.txt | 12 +-- ASM/src/build.asm | 1 + ASM/src/hacks.asm | 7 ++ ASM/src/scarecrow.asm | 27 +++++++ data/rom_patch.txt | 163 +++++++++++++++++++++++++------------- data/symbols.json | 58 +++++++------- 6 files changed, 181 insertions(+), 87 deletions(-) create mode 100644 ASM/src/scarecrow.asm diff --git a/ASM/build/asm_symbols.txt b/ASM/build/asm_symbols.txt index b06f09465..e02008245 100644 --- a/ASM/build/asm_symbols.txt +++ b/ASM/build/asm_symbols.txt @@ -982,11 +982,13 @@ 804036AC @@return 804036B4 Check_Has_Epona_Song 80403700 @@return -80403708 write_initial_save -80403714 @@save_data_loop -80403744 @@overwrite_type -8040374C @@return -80403754 .byt:08FC +80403708 save_scarecrow_song +8040374C @@copy_song +80403754 write_initial_save +80403760 @@save_data_loop +80403790 @@overwrite_type +80403798 @@return +804037A0 .byt:08B0 80405000 disp_buf_init,00000018 80405018 sprite_bytes_per_tile,00000028 80405040 sprite_bytes,00000030 diff --git a/ASM/src/build.asm b/ASM/src/build.asm index e8ec9502e..6bf50b6c0 100755 --- a/ASM/src/build.asm +++ b/ASM/src/build.asm @@ -47,6 +47,7 @@ DebugOutput: .include "menu.asm" .include "time_travel.asm" .include "song_fix.asm" +.include "scarecrow.asm" .include "initial_save.asm" .endarea diff --git a/ASM/src/hacks.asm b/ASM/src/hacks.asm index eecf09a4a..3859eff38 100755 --- a/ASM/src/hacks.asm +++ b/ASM/src/hacks.asm @@ -483,4 +483,11 @@ jal set_dungeon_knowledge +;================================================================================================== +; V1.0 Scarecrow Song Bug +;================================================================================================== +; Replaces: +; jal 0x80057030 ; copies Scarecrow Song from active space to save context +.org 0xB55A64 ; In memory 800DFB04 + jal save_scarecrow_song \ No newline at end of file diff --git a/ASM/src/scarecrow.asm b/ASM/src/scarecrow.asm new file mode 100644 index 000000000..5c6206691 --- /dev/null +++ b/ASM/src/scarecrow.asm @@ -0,0 +1,27 @@ +save_scarecrow_song: +; 80057030 +; A0 = Scarecrow Song save address (copy to) +; A1 = Scarecrow Song live location (copy from) +; A2 = 0x80 + lb t0, 0x0000(a1) + addiu t1, t0, 1 + bne t1, zero, @@copy_song ; if scarecrow song doesn't begin with a rest, copy it to the save data + nop + + addiu sp, sp, -0x18 + sw ra, 0x0014(sp) + sw a0, 0x0018(sp) + sw a1, 0x001C(sp) + + or a0, zero, a1 + addiu a1, a1, 8 + jal 0x57030 ; shift scarecrow song over by 1 note + addiu a2, a2, -8 + lw a0, 0x0018(sp) + lw a1, 0x001C(sp) + li a2, 0x80 + lw ra, 0x0014(sp) + addiu sp, sp, 0x18 +@@copy_song: + j 0x57030 + nop \ No newline at end of file diff --git a/data/rom_patch.txt b/data/rom_patch.txt index 4a3bb4144..1818a45e6 100644 --- a/data/rom_patch.txt +++ b/data/rom_patch.txt @@ -463,7 +463,7 @@ b0640f,2 b06c2c,c b06c2d,10 b06c2e,d -b06c2f,c2 +b06c2f,d5 b06c31,28 b06c33,20 b17129,10 @@ -508,6 +508,9 @@ b54e5c,c b54e5d,10 b54e5e,d b54e5f,79 +b55a65,10 +b55a66,d +b55a67,c2 baed6c,0 baed6d,0 baed6f,0 @@ -5376,58 +5379,112 @@ ec9ce7,7a 3483700,3 3483701,e0 3483703,8 -3483708,a2 -3483709,25 -348370b,21 -348370c,3c -348370d,10 -348370e,80 -348370f,40 -3483710,26 -3483711,10 -3483712,17 -3483713,fc -3483714,26 -3483715,10 -3483717,4 -3483718,8e -3483719,a -348371c,11 -348371d,40 -348371f,b -3483725,a -3483726,7c -3483727,2 -3483728,1 -3483729,f1 -348372a,78 -348372b,20 -348372c,31 -348372d,58 -348372e,ff -3483731,18 -3483732,c2 -3483733,2 -3483734,17 -3483737,3 -3483738,31 -3483739,59 -348373b,ff -348373c,81 -348373d,ea -3483740,3 -3483741,2a -3483742,c8 -3483743,25 -3483744,8 -3483745,10 -3483746,d -3483747,c5 -3483748,a1 -3483749,f9 -348374c,3 -348374d,e0 -348374f,8 +3483708,80 +3483709,a8 +348370c,25 +348370d,9 +348370f,1 +3483710,15 +3483711,20 +3483713,e +3483718,27 +3483719,bd +348371a,ff +348371b,e8 +348371c,af +348371d,bf +348371f,14 +3483720,af +3483721,a4 +3483723,18 +3483724,af +3483725,a5 +3483727,1c +3483729,5 +348372a,20 +348372b,25 +348372c,24 +348372d,a5 +348372f,8 +3483730,c +3483731,1 +3483732,5c +3483733,c +3483734,24 +3483735,c6 +3483736,ff +3483737,f8 +3483738,8f +3483739,a4 +348373b,18 +348373c,8f +348373d,a5 +348373f,1c +3483740,34 +3483741,6 +3483743,80 +3483744,8f +3483745,bf +3483747,14 +3483748,27 +3483749,bd +348374b,18 +348374c,8 +348374d,1 +348374e,5c +348374f,c +3483754,a2 +3483755,25 +3483757,21 +3483758,3c +3483759,10 +348375a,80 +348375b,40 +348375c,26 +348375d,10 +348375e,17 +348375f,fc +3483760,26 +3483761,10 +3483763,4 +3483764,8e +3483765,a +3483768,11 +3483769,40 +348376b,b +3483771,a +3483772,7c +3483773,2 +3483774,1 +3483775,f1 +3483776,78 +3483777,20 +3483778,31 +3483779,58 +348377a,ff +348377d,18 +348377e,c2 +348377f,2 +3483780,17 +3483783,3 +3483784,31 +3483785,59 +3483787,ff +3483788,81 +3483789,ea +348378c,3 +348378d,2a +348378e,c8 +348378f,25 +3483790,8 +3483791,10 +3483792,d +3483793,d8 +3483794,a1 +3483795,f9 +3483798,3 +3483799,e0 +348379b,8 34b3000,ac 34b3001,86 34b3004,ac diff --git a/data/symbols.json b/data/symbols.json index 4d9b61bcb..5d6ff9612 100644 --- a/data/symbols.json +++ b/data/symbols.json @@ -1,32 +1,32 @@ { - "ADULT_INIT_ITEMS": "034835C0", - "ADULT_VALID_ITEMS": "034835CC", - "EXTENDED_ITEM_DATA": "03482008", - "FAIRY_ITEMS": "03481C03", - "FAIRY_OCARINA_ITEM": "03481C02", - "FONT_TEXTURE": "034B4506", - "INITIAL_SAVE_DATA": "03481800", - "ITEM_OVERRIDES": "03481000", - "ITEM_TABLE": "03482050", - "LIGHT_ARROW_ITEM": "03481C01", - "PENDING_SPECIAL_ITEM": "03482018", - "PENDING_SPECIAL_ITEM_END": "0348201B", - "PLAYER_ID": "03481C00", - "PLAYER_OVERRIDE_DATA": "03482000", - "TIME_TRAVEL_SAVED_EQUIPS": "0348201C", - "cfg_dungeon_info_enable": "034B44C8", - "cfg_dungeon_info_mq_enable": "034B44DC", - "cfg_dungeon_info_mq_need_map": "034B44D8", - "cfg_dungeon_info_reward_need_compass": "034B44D4", - "cfg_dungeon_is_mq": "034B44F8", - "cfg_dungeon_rewards": "034B4408", - "dungeon_count": "034B44CC", - "dungeons": "034B442C", - "font_sprite": "034B43C8", - "heap_next": "034B44D0", - "medal_colors": "034B4418", - "medals_sprite": "034B43E8", - "quest_items_sprite": "034B43D8", - "setup_db": "034B44E8", + "ADULT_INIT_ITEMS": "034835C0", + "ADULT_VALID_ITEMS": "034835CC", + "EXTENDED_ITEM_DATA": "03482008", + "FAIRY_ITEMS": "03481C03", + "FAIRY_OCARINA_ITEM": "03481C02", + "FONT_TEXTURE": "034B4506", + "INITIAL_SAVE_DATA": "03481800", + "ITEM_OVERRIDES": "03481000", + "ITEM_TABLE": "03482050", + "LIGHT_ARROW_ITEM": "03481C01", + "PENDING_SPECIAL_ITEM": "03482018", + "PENDING_SPECIAL_ITEM_END": "0348201B", + "PLAYER_ID": "03481C00", + "PLAYER_OVERRIDE_DATA": "03482000", + "TIME_TRAVEL_SAVED_EQUIPS": "0348201C", + "cfg_dungeon_info_enable": "034B44C8", + "cfg_dungeon_info_mq_enable": "034B44DC", + "cfg_dungeon_info_mq_need_map": "034B44D8", + "cfg_dungeon_info_reward_need_compass": "034B44D4", + "cfg_dungeon_is_mq": "034B44F8", + "cfg_dungeon_rewards": "034B4408", + "dungeon_count": "034B44CC", + "dungeons": "034B442C", + "font_sprite": "034B43C8", + "heap_next": "034B44D0", + "medal_colors": "034B4418", + "medals_sprite": "034B43E8", + "quest_items_sprite": "034B43D8", + "setup_db": "034B44E8", "stones_sprite": "034B43F8" } \ No newline at end of file From 8b9d895b7112d1e7882f33f9c72d24ba7bace60e Mon Sep 17 00:00:00 2001 From: AmazingAmpharos Date: Mon, 24 Sep 2018 02:41:30 -0500 Subject: [PATCH 590/755] Fix a few things that didn't merge correctly --- Rules.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/Rules.py b/Rules.py index 33da2173f..4adde6e7e 100644 --- a/Rules.py +++ b/Rules.py @@ -256,7 +256,6 @@ def global_rules(world): set_rule(world.get_entrance('Lost Woods Generic Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Lost Woods Sales Grotto'), lambda state: state.has_explosives() or (state.can_use('Hammer') and (state.can_play('Minuet of Forest') or state.can_play('Sarias Song')))) set_rule(world.get_entrance('Front of Meadow Grotto'), lambda state: state.has_explosives() or (state.can_use('Hammer') and (state.can_play('Minuet of Forest') or state.can_play('Sarias Song')))) - set_rule(world.get_entrance('Meadow Gate'), lambda state: state.has_slingshot() or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword') or state.can_use('Dins Fire')) set_rule(world.get_entrance('Remote Southern Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Field Near Lake Inside Fence Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Field Valley Grotto'), lambda state: state.can_blast_or_smash()) @@ -434,7 +433,7 @@ def dung_rules_dtmq(world): def dung_rules_dc0(world): set_rule(world.get_entrance('Dodongos Cavern Lobby'), lambda state: state.can_blast_or_smash() or state.has('Progressive Strength Upgrade')) set_rule(world.get_entrance('Dodongos Cavern Left Door'), lambda state: (state.is_adult() or ((state.has_sticks() or state.can_use('Dins Fire')) and (state.has_slingshot() or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword')))) and (state.has_explosives() or state.has('Progressive Strength Upgrade') or state.can_use('Dins Fire') or (world.logic_tricks and state.can_use('Bow')))) - set_rule(world.get_location('Dodongos Cavern Compass Chest'), lambda state: state.is_adult() or ((state.has_sticks() or state.can_use('Dins Fire')) and (state.has_slingshot() or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword')))) + set_rule(world.get_location('Dodongos Cavern Compass Chest'), lambda state: state.is_adult() or state.has_sticks() or (state.can_use('Dins Fire') and (state.has_slingshot() or state.has_explosives() or state.has('Kokiri Sword')))) set_rule(world.get_location('DC Deku Scrub Deku Sticks'), lambda state: state.is_adult() or state.has_slingshot() or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword')) set_rule(world.get_entrance('Dodongos Cavern Slingshot Target'), lambda state: (state.has_slingshot() and (state.has_explosives() or state.has('Progressive Strength Upgrade'))) or ((state.has_bow() or state.has('Hover Boots') or state.has('Progressive Hookshot', 2) or world.logic_dc_jump) and state.is_adult())) set_rule(world.get_location('DC Deku Scrub Deku Nuts'), lambda state: state.can_blast_or_smash()) @@ -676,6 +675,8 @@ def dung_rules_spt0(world): set_rule(world.get_location('Spirit Temple Hallway Right Invisible Chest'), lambda state: state.can_see_with_lens() and state.has_explosives()) set_rule(world.get_location('Spirit Temple Boss Key Chest'), lambda state: state.can_play('Zeldas Lullaby') and state.has_bow() and state.has('Progressive Hookshot') and state.can_blast_or_smash()) set_rule(world.get_location('Spirit Temple Topmost Chest'), lambda state: state.has('Mirror Shield')) + + # Boss set_rule(world.get_location('Twinrova'), lambda state: state.has('Mirror Shield') and state.has_explosives() and state.has('Progressive Hookshot') and state.has('Boss Key (Spirit Temple)')) set_rule(world.get_location('Twinrova Heart'), lambda state: state.has('Mirror Shield') and state.has_explosives() and state.has('Progressive Hookshot') and state.has('Boss Key (Spirit Temple)')) @@ -735,14 +736,14 @@ def dung_rules_sht0(world): set_rule(world.get_location('Shadow Temple Freestanding Key'), lambda state: state.has('Small Key (Shadow Temple)', 2) and state.has('Progressive Hookshot') and (state.has_bombs() or state.has('Progressive Strength Upgrade'))) # Boss - set_rule(world.get_location('Bongo Bongo'), lambda state: state.has('Small Key (Shadow Temple)', 5) and (state.has_bow() or state.has('Progressive Hookshot', 2)) and state.has('Boss Key (Shadow Temple)')) - set_rule(world.get_location('Bongo Bongo Heart'), lambda state: state.has('Small Key (Shadow Temple)', 5) and (state.has_bow() or state.has('Progressive Hookshot', 2)) and state.has('Boss Key (Shadow Temple)')) + set_rule(world.get_location('Bongo Bongo'), lambda state: state.has('Small Key (Shadow Temple)', 5) and (state.has('Bow') or state.can_use('Distant Scarecrow')) and state.has('Boss Key (Shadow Temple)')) + set_rule(world.get_location('Bongo Bongo Heart'), lambda state: state.has('Small Key (Shadow Temple)', 5) and (state.has('Bow') or state.can_use('Distant Scarecrow')) and state.has('Boss Key (Shadow Temple)')) # GS set_rule(world.get_location('GS Shadow Temple Like Like Room'), lambda state: state.has('Progressive Hookshot')) set_rule(world.get_location('GS Shadow Temple Crusher Room'), lambda state: state.has('Progressive Hookshot')) set_rule(world.get_location('GS Shadow Temple Single Giant Pot'), lambda state: state.has('Small Key (Shadow Temple)', 2) and state.has('Progressive Hookshot')) - set_rule(world.get_location('GS Shadow Temple Near Ship'), lambda state: state.has('Progressive Hookshot', 2) and state.has('Small Key (Shadow Temple)', 4)) + set_rule(world.get_location('GS Shadow Temple Near Ship'), lambda state: state.can_use('Longshot') and state.has('Small Key (Shadow Temple)', 4)) # Shadow Temple MQ def dung_rules_shtmq(world): From f909c276838d013d926a2edf2f8b9d8ca8daac77 Mon Sep 17 00:00:00 2001 From: AmazingAmpharos Date: Mon, 24 Sep 2018 03:17:36 -0500 Subject: [PATCH 591/755] This vine move works in MQ too --- Rules.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Rules.py b/Rules.py index 4adde6e7e..ff7369858 100644 --- a/Rules.py +++ b/Rules.py @@ -529,7 +529,7 @@ def dung_rules_fotmq(world): set_rule(world.get_entrance('Forest Temple Twisted Hall'), lambda state: state.has('Small Key (Forest Temple)', 4)) set_rule(world.get_entrance('Forest Temple Well Connection'), lambda state: state.can_use('Iron Boots') or state.can_use('Longshot') or state.has('Progressive Scale', 2)) set_rule(world.get_entrance('Forest Temple Webs'), lambda state: state.can_use('Fire Arrows')) - set_rule(world.get_entrance('Forest Temple Climb to Top Ledges'), lambda state: state.can_use('Longshot') or state.can_use('Hover Boots') or state.can_play('Song of Time')) + set_rule(world.get_entrance('Forest Temple Climb to Top Ledges'), lambda state: state.can_use('Longshot') or state.can_use('Hover Boots') or state.can_play('Song of Time') or (world.logic_tricks and state.can_use('Hookshot'))) set_rule(world.get_entrance('Forest Temple Longshot to NE Outdoors Ledge'), lambda state: state.can_use('Longshot')) set_rule(world.get_entrance('Forest Temple Song of Time Block Climb'), lambda state: state.can_play('Song of Time')) set_rule(world.get_entrance('Forest Temple Drop to Falling Room'), lambda state: state.has('Small Key (Forest Temple)', 5) and (state.can_use('Bow') or state.can_use('Dins Fire'))) # Only 5 keys because the door you could 'waste' your key on is the door you're trying to use keys to get to. From 4f6f9f9e4945b5f8aece4e08877781dd13cf7bdc Mon Sep 17 00:00:00 2001 From: AmazingAmpharos Date: Mon, 24 Sep 2018 04:28:03 -0500 Subject: [PATCH 592/755] Fix Deku Scrub Salesman in Deku Tree MQ You can't actually get his item from below. Fixed. --- Regions.py | 4 ++-- Rules.py | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/Regions.py b/Regions.py index 3b907bb51..7816795bb 100644 --- a/Regions.py +++ b/Regions.py @@ -337,7 +337,7 @@ def create_regions(world): create_dungeon_region( 'Deku Tree Lobby', ['Deku Tree MQ Lobby Chest', 'Deku Tree MQ Slingshot Chest', 'Deku Tree MQ Slingshot Room Back Chest', - 'Deku Tree MQ Basement Chest', 'GS Deku Tree MQ Lobby', 'DT MQ Deku Scrub Deku Shield'], + 'Deku Tree MQ Basement Chest', 'GS Deku Tree MQ Lobby'], ['Deku Tree Exit', 'Deku Tree Compass Passage', 'Deku Tree Basement Path']), create_dungeon_region( 'Deku Tree Compass Room', @@ -347,7 +347,7 @@ def create_regions(world): 'Deku Tree Boss Room', ['Deku Tree MQ Before Spinning Log Chest', 'Deku Tree MQ After Spinning Log Chest', 'GS Deku Tree MQ Basement Ceiling', 'GS Deku Tree MQ Basement Back Room', - 'Queen Gohma Heart', 'Queen Gohma'], + 'DT MQ Deku Scrub Deku Shield', 'Queen Gohma Heart', 'Queen Gohma'], ['Deku Tree Basement Vines']) ]) else: diff --git a/Rules.py b/Rules.py index ff7369858..86980e610 100644 --- a/Rules.py +++ b/Rules.py @@ -417,7 +417,6 @@ def dung_rules_dtmq(world): set_rule(world.get_location('Deku Tree MQ Slingshot Room Back Chest'), lambda state: state.has_sticks() or state.can_use('Dins Fire')) set_rule(world.get_location('Deku Tree MQ Basement Chest'), lambda state: state.has_sticks() or state.can_use('Dins Fire')) set_rule(world.get_location('Deku Tree MQ After Spinning Log Chest'), lambda state: state.can_play('Song of Time')) - set_rule(world.get_location('DT MQ Deku Scrub Deku Shield'), lambda state: state.has_slingshot() or state.has_nuts() or state.has('Boomerang') or state.can_use('Dins Fire') or state.has_bombchus()) # Boss set_rule(world.get_location('Queen Gohma Heart'), lambda state: state.has('Buy Deku Shield') and (state.has('Kokiri Sword') or state.has_sticks())) From 68dc67d151437ed7a0b5b4a5647408cb9be3e821 Mon Sep 17 00:00:00 2001 From: Tyrus <42982810+Tyrusss@users.noreply.github.com> Date: Mon, 24 Sep 2018 15:33:53 +0100 Subject: [PATCH 593/755] Added Deku seeds (30) hints --- HintList.py | 1 + 1 file changed, 1 insertion(+) diff --git a/HintList.py b/HintList.py index 2fa745f20..b7dc29715 100644 --- a/HintList.py +++ b/HintList.py @@ -151,6 +151,7 @@ def getHintGroup(group, world): 'Bombchus (20)': (["plenty of mice bombs", "plenty of remote mines", "plenty of proximity mice", "plenty of wall crawlers", "plenty of trail blazers"], "Bombchus", 'item'), 'Deku Nuts (5)': (["some nuts", "some flashbangs", "some Sheik's ammo"], "some Deku Nuts", 'item'), 'Deku Nuts (10)': (["lots-o-nuts", "plenty of flashbangs", "plenty of Sheik's ammo"], "plenty of Deku Nuts", 'item'), + 'Deku Seeds (30)': (["catapult ammo", "lots-o-seeds"], "plenty of deku seeds", 'item'), 'Gold Skulltulla Token': (["proof of destruction", "an arachnid chip", "spider remains"], "a Golden Token", 'item'), '10 Big Poes': (["#Big Poes# leads to", "#ghost hunters# will be rewarded with"], None, 'alwaysLocation'), From c7f871bf211a0faa661e2f68d808c22756771e31 Mon Sep 17 00:00:00 2001 From: AmazingAmpharos Date: Mon, 24 Sep 2018 18:12:40 -0500 Subject: [PATCH 594/755] Wulfy's latest update I hope I'm not nuking any other changes; we'll see. --- ASM/build/asm_symbols.txt | 511 +- ASM/build/bundle.o | Bin 10028 -> 10168 bytes ASM/build/c_symbols.txt | 37 +- ASM/c/Makefile | 2 +- ASM/c/dungeon_info.c | 166 +- ASM/c/main.c | 5 +- ASM/scripts/sym2pj64.py | 28 + ASM/src/every_frame.asm | 35 +- ASM/src/hacks.asm | 32 +- Patches.py | 1 + data/base2current.json | 1 + data/rom_patch.txt | 23761 ++++++++++++++++++------------------ data/symbols.json | 63 +- 13 files changed, 12340 insertions(+), 12302 deletions(-) create mode 100644 ASM/scripts/sym2pj64.py create mode 100644 data/base2current.json diff --git a/ASM/build/asm_symbols.txt b/ASM/build/asm_symbols.txt index 1d05637ff..c8e7ed0bb 100644 --- a/ASM/build/asm_symbols.txt +++ b/ASM/build/asm_symbols.txt @@ -788,274 +788,257 @@ 80402547 .byt:0001 80402548 .dbl:0004 8040254C .dbl:0004 -80402550 .byt:0001 -80402551 .byt:0001 -80402552 .byt:0001 -80402553 .byt:0001 -80402554 .wrd:0002 -80402556 .byt:0001 -80402557 .byt:0001 -80402558 .dbl:0004 -8040255C .dbl:0004 -80402560 .byt:0001 -80402561 .byt:0001 -80402562 .byt:0001 -80402563 .byt:0001 -80402564 .wrd:0002 -80402566 .byt:0001 -80402567 .byt:0001 -80402568 .dbl:0004 -8040256C .dbl:0004 -80402570 no_upgrade -80402578 hookshot_upgrade -8040258C @@return -80402594 strength_upgrade -804025B4 @@return -804025BC bomb_bag_upgrade -804025DC @@return -804025E4 bow_upgrade -80402604 @@return -8040260C slingshot_upgrade -8040262C @@return -80402634 wallet_upgrade -80402654 @@return -8040265C tycoon_wallet -80402670 scale_upgrade -80402684 @@return -8040268C nut_upgrade -804026A0 @@return -804026A8 stick_upgrade -804026BC @@return -804026C4 magic_upgrade -804026D4 @@return -804026DC arrows_to_rupee -804026F0 @@return -804026F8 bombs_to_rupee -8040270C @@return -80402714 seeds_to_rupee -80402728 @@return -80402730 no_effect -80402738 give_biggoron_sword -80402748 give_bottle -80402750 @@loop -8040277C @@return -80402784 give_dungeon_item -804027A0 give_small_key -804027B8 @not_negative -804027C8 give_defense -804027E8 give_magic -80402808 double_magic -80402830 bombchu_upgrade -80402854 @@return -8040285C ocarina_upgrade -80402870 @@return -80402878 give_fairy_ocarina -80402888 give_song -804028A4 inventory_check -80402910 @@return -80402918 override_skulltula_token -80402938 @@in_table -80402968 @@extended_effect -80402994 @@no_extended_effect -804029A0 @@not_extended -804029D8 @@item_effect -804029E4 @@display_message -804029F0 @@return -80402A04 override_object_npc -80402A14 override_object_chest -80402A24 override_object -80402A3C @@return -80402A80 @@no_count_inc -80402A84 @@no_pending_clear -80402A8C override_graphic -80402AA4 @@return -80402ABC override_text -80402AD8 @@return -80402AE0 override_action -80402B08 @@no_player_override -80402B64 @@return -80402B6C store_item_data_hook -80402BA0 store_item_data -80402C34 @@update_base_game -80402C64 @@not_chest -80402C74 @@not_negative -80402C78 @@return -80402C88 lookup_override -80402CB0 @@return -80402CC0 get_override_search_key -80402D00 @@not_skulltula -80402D38 @@valid_chest -80402D40 @@not_chest -80402D70 @@valid_collectable -80402D78 @@not_collectable -80402DA0 @@not_grotto_deku_scrub -80402DB0 @@return -80402DB8 scan_override_table -80402DDC @@lookup_loop -80402E44 @@return -80402E4C resolve_extended_item -80402E60 @@loop -80402EB4 @@not_extended -80402EB8 @@return -80402ED0 override_great_fairy_cutscene -80402F28 @@item_fairy -80402F48 @@give_item -80402F74 @@return -80402F7C override_light_arrow_cutscene -80402F90 override_fairy_ocarina_cutscene -80402FA4 override_ocarina_songs -80402FB8 override_requiem_song -80402FC4 override_epona_song -80402FE4 override_suns_song -80403004 override_song_of_time -80403014 store_pending_special_item -80403024 @@find_duplicate_loop -80403040 @@find_empty_loop -80403058 @@return -80403060 override_saria_song_check -8040307C @@get_item -80403084 set_saria_song_flag -804030A4 set_dungeon_knowledge -804030D0 @@set_flag -804030E8 Shop_Check_Sold_Out -80403134 @@return -8040313C Shop_Set_Sold_Out -80403174 @@return -8040317C Shop_Keeper_Init_ID -80403198 @@return -804031A8 Deku_Check_Sold_Out -804031CC @@continue -804031FC Deku_Set_Sold_Out -80403220 @@continue -80403254 every_frame -804032A8 @@loop -80403300 @@no_pending_item -80403328 item_menu_description_id_periodic -8040333C @@item_menu_description_id_return_00000000 -80403344 item_menu_description_id_immediate_1 -80403358 @@item_menu_description_id_return_00000001 -80403360 item_menu_description_id_immediate_2 -80403374 @@item_menu_description_id_return_00000002 -8040337C item_menu_description_id_immediate_3 -80403390 @@item_menu_description_id_return_00000003 -80403398 before_time_travel -804033C8 after_time_travel -80403404 @@going_back -8040340C @@done -8040343C update_c_button -80403468 @@return -80403470 after_going_forward -804034AC @@no_init -804034BC after_going_back -804034EC @@not_swordless -804034F4 initialize_adult -8040351C @@no_mirror_shield -8040355C init_adult_button -80403588 @@empty -80403590 @@loop -804035E8 @@set_empty -804035F4 @@return -804035FC .byt:0001 -804035FC ADULT_INIT_ITEMS -804035FD .byt:0001 -804035FE .byt:0001 -804035FF .byt:0001 -80403600 .byt:0001 -80403601 .byt:0001 -80403602 .byt:0001 -80403603 .byt:0001 -80403604 .byt:0001 -80403608 .byt:0001 -80403608 ADULT_VALID_ITEMS -80403609 .byt:0001 -8040360A .byt:0001 -8040360B .byt:0001 -8040360C .byt:0001 -8040360D .byt:0001 -8040360E .byt:0001 -8040360F .byt:0001 -80403610 .byt:0001 -80403611 .byt:0001 -80403612 .byt:0001 -80403613 .byt:0001 -80403614 .byt:0001 -80403615 .byt:0001 -80403616 .byt:0001 -80403617 .byt:0001 -80403618 .byt:0001 -80403619 .byt:0001 -8040361A .byt:0001 -8040361B .byt:0001 -8040361C .byt:0001 -8040361D .byt:0001 -8040361E .byt:0001 -8040361F .byt:0001 -80403620 suns_song_fix_event -80403654 @@child +80402550 no_upgrade +80402558 hookshot_upgrade +8040256C @@return +80402574 strength_upgrade +80402594 @@return +8040259C bomb_bag_upgrade +804025BC @@return +804025C4 bow_upgrade +804025E4 @@return +804025EC slingshot_upgrade +8040260C @@return +80402614 wallet_upgrade +80402634 @@return +8040263C tycoon_wallet +80402650 scale_upgrade +80402664 @@return +8040266C nut_upgrade +80402680 @@return +80402688 stick_upgrade +8040269C @@return +804026A4 magic_upgrade +804026B4 @@return +804026BC arrows_to_rupee +804026D0 @@return +804026D8 bombs_to_rupee +804026EC @@return +804026F4 no_effect +804026FC give_biggoron_sword +8040270C give_bottle +80402714 @@loop +80402740 @@return +80402748 give_dungeon_item +80402764 give_small_key +8040277C @not_negative +8040278C give_defense +804027AC give_magic +804027CC double_magic +804027F4 bombchu_upgrade +80402818 @@return +80402820 ocarina_upgrade +80402834 @@return +8040283C give_fairy_ocarina +8040284C give_song +80402868 inventory_check +804028D4 @@return +804028DC override_skulltula_token +804028FC @@in_table +8040292C @@extended_effect +80402958 @@no_extended_effect +80402964 @@not_extended +8040299C @@item_effect +804029A8 @@display_message +804029B4 @@return +804029C8 override_object_npc +804029D8 override_object_chest +804029E8 override_object +80402A00 @@return +80402A44 @@no_count_inc +80402A48 @@no_pending_clear +80402A50 override_graphic +80402A68 @@return +80402A80 override_text +80402A9C @@return +80402AA4 override_action +80402ACC @@no_player_override +80402B28 @@return +80402B30 store_item_data_hook +80402B64 store_item_data +80402BF8 @@update_base_game +80402C28 @@not_chest +80402C38 @@not_negative +80402C3C @@return +80402C4C lookup_override +80402C74 @@return +80402C84 get_override_search_key +80402CC4 @@not_skulltula +80402CFC @@valid_chest +80402D04 @@not_chest +80402D34 @@valid_collectable +80402D3C @@not_collectable +80402D64 @@not_grotto_deku_scrub +80402D74 @@return +80402D7C scan_override_table +80402DA0 @@lookup_loop +80402E08 @@return +80402E10 resolve_extended_item +80402E24 @@loop +80402E78 @@not_extended +80402E7C @@return +80402E94 override_great_fairy_cutscene +80402EEC @@item_fairy +80402F0C @@give_item +80402F38 @@return +80402F40 override_light_arrow_cutscene +80402F54 override_fairy_ocarina_cutscene +80402F68 override_ocarina_songs +80402F7C override_requiem_song +80402F88 override_epona_song +80402FA8 override_suns_song +80402FC8 override_song_of_time +80402FD8 store_pending_special_item +80402FE8 @@find_duplicate_loop +80403004 @@find_empty_loop +8040301C @@return +80403024 override_saria_song_check +80403040 @@get_item +80403048 set_saria_song_flag +80403068 set_dungeon_knowledge +80403094 @@set_flag +804030AC Shop_Check_Sold_Out +804030F8 @@return +80403100 Shop_Set_Sold_Out +80403138 @@return +80403140 Shop_Keeper_Init_ID +8040315C @@return +8040316C Deku_Check_Sold_Out +80403190 @@continue +804031C0 Deku_Set_Sold_Out +804031E4 @@continue +80403218 before_game_state_update +80403258 @@loop +804032B0 @@no_pending_item +804032C4 after_game_state_update +804032E8 item_menu_description_id_periodic +804032FC @@item_menu_description_id_return_00000000 +80403304 item_menu_description_id_immediate_1 +80403318 @@item_menu_description_id_return_00000001 +80403320 item_menu_description_id_immediate_2 +80403334 @@item_menu_description_id_return_00000002 +8040333C item_menu_description_id_immediate_3 +80403350 @@item_menu_description_id_return_00000003 +80403358 before_time_travel +80403388 after_time_travel +804033C4 @@going_back +804033CC @@done +804033FC update_c_button +80403428 @@return +80403430 after_going_forward +8040346C @@no_init +8040347C after_going_back +804034AC @@not_swordless +804034B4 initialize_adult +804034DC @@no_mirror_shield +8040351C init_adult_button +80403548 @@empty +80403550 @@loop +804035A8 @@set_empty +804035B4 @@return +804035BC .byt:0001 +804035BC ADULT_INIT_ITEMS +804035BD .byt:0001 +804035BE .byt:0001 +804035BF .byt:0001 +804035C0 .byt:0001 +804035C1 .byt:0001 +804035C2 .byt:0001 +804035C3 .byt:0001 +804035C4 .byt:0001 +804035C8 .byt:0001 +804035C8 ADULT_VALID_ITEMS +804035C9 .byt:0001 +804035CA .byt:0001 +804035CB .byt:0001 +804035CC .byt:0001 +804035CD .byt:0001 +804035CE .byt:0001 +804035CF .byt:0001 +804035D0 .byt:0001 +804035D1 .byt:0001 +804035D2 .byt:0001 +804035D3 .byt:0001 +804035D4 .byt:0001 +804035D5 .byt:0001 +804035D6 .byt:0001 +804035D7 .byt:0001 +804035D8 .byt:0001 +804035D9 .byt:0001 +804035DA .byt:0001 +804035DB .byt:0001 +804035DC .byt:0001 +804035DD .byt:0001 +804035DE .byt:0001 +804035DF .byt:0001 +804035E0 suns_song_fix_event +80403614 @@child +80403624 @@return +8040362C suns_song_fix +80403640 @@check_suns_status +8040365C @@disable_suns 80403664 @@return -8040366C suns_song_fix -80403680 @@check_suns_status -8040369C @@disable_suns -804036A4 @@return -804036AC warp_song_fix -804036D8 @@child -804036E8 @@return -804036F0 Check_Has_Epona_Song -8040373C @@return -80403744 write_initial_save -80403750 @@save_data_loop -80403780 @@overwrite_type -80403788 @@return -80403790 .byt:08C0 +8040366C warp_song_fix +80403698 @@child +804036A8 @@return +804036B0 Check_Has_Epona_Song +804036FC @@return +80403704 write_initial_save +80403710 @@save_data_loop +80403740 @@overwrite_type +80403748 @@return +80403750 .byt:0900 80405000 disp_buf_init,00000018 80405018 sprite_bytes_per_tile,00000028 80405040 sprite_bytes,00000030 -80405070 sprite_load,0000024C -804052BC sprite_draw,000000E8 -804053A4 draw_setup,000001DC -80405580 gfx_init,00000148 -804056C8 heap_init,00000014 -804056DC heap_alloc,00000034 -80405710 file_init,00000044 -80405754 c_init,0000002C -80405780 overlay_swap,000000B4 -80405834 draw_dungeon_info,0000096C -804061A0 text_init,0000002C -804061CC text_print,000000A8 -80406274 text_flush,00000148 -804063C8 .byt:0010 -804063C8 font_sprite -804063D8 .byt:0010 -804063D8 quest_items_sprite -804063E8 .byt:0010 -804063E8 medals_sprite -804063F8 .byt:0010 -804063F8 stones_sprite -80406408 .byt:000E -80406408 cfg_dungeon_rewards -80406418 .byt:0012 -80406418 medal_colors -8040642C .byt:009C -8040642C dungeons -804064C8 .byt:0004 -804064C8 cfg_dungeon_info_enable -804064CC .byt:0004 -804064CC dungeon_count -804064D0 .byt:0004 -804064D0 heap_next -804064D4 .byt:0004 -804064D4 cfg_dungeon_info_reward_need_compass -804064D8 .byt:0004 -804064D8 cfg_dungeon_info_mq_need_map -804064DC .byt:0004 -804064DC cfg_dungeon_info_mq_enable -804064E8 .byt:0010 -804064E8 setup_db -804064F8 .byt:000E -804064F8 cfg_dungeon_is_mq -80406506 .byt:14C8 -80406506 FONT_TEXTURE -804079CE .byt:8632 +80405070 sprite_load,00000254 +804052C4 sprite_draw,000000F0 +804053B4 draw_setup,000001DC +80405590 gfx_init,00000148 +804056D8 heap_init,00000014 +804056EC heap_alloc,00000034 +80405720 file_init,00000044 +80405764 c_init,0000002C +80405790 c_after_game_state_update,00000088 +80405818 draw_dungeon_info,000009CC +804061E4 text_init,0000002C +80406210 text_print,000000A8 +804062B8 text_flush,00000148 +8040640C .byt:0010 +8040640C font_sprite +8040641C .byt:0010 +8040641C quest_items_sprite +8040642C .byt:0010 +8040642C medals_sprite +8040643C .byt:0010 +8040643C stones_sprite +8040644C .byt:000E +8040644C cfg_dungeon_rewards +8040645C .byt:0012 +8040645C medal_colors +80406470 .byt:009C +80406470 dungeons +8040650C .byt:0004 +8040650C cfg_dungeon_info_enable +80406510 .byt:0004 +80406510 dungeon_count +80406514 .byt:0004 +80406514 heap_next +80406518 .byt:0004 +80406518 cfg_dungeon_info_reward_need_altar +8040651C .byt:0004 +8040651C cfg_dungeon_info_reward_need_compass +80406520 .byt:0004 +80406520 cfg_dungeon_info_mq_need_map +80406524 .byt:0004 +80406524 cfg_dungeon_info_mq_enable +80406530 .byt:0010 +80406530 setup_db +80406540 .byt:000E +80406540 cfg_dungeon_is_mq +8040654E .byt:14C8 +8040654E FONT_TEXTURE +80407A16 .byt:85EA 80480000 DUMMY_ACTOR 80500000 C_HEAP  \ No newline at end of file diff --git a/ASM/build/bundle.o b/ASM/build/bundle.o index 053402c31668fa0e2aaa43c54852ecd9e4e3e53d..4a4167c9ddeeced5a576368dbdc476484cbbdf5a 100644 GIT binary patch delta 4379 zcmb_eZ){sv6+iFUj_vr_etvn4-6n0E_+Pf9ZQ5q71&`|02~fc(X&YFDDw?F}8cl&k zYk+*}LMN^R~WI+Q#isp`V&<`66Q9%(ZC?6^mM8`^nP(DggJJPHEh%B~|W7~=om6wUYH8e9qG;`AV zVdK`Fo!KL#Fs85S?WNBVbuN=<(54R7r+-`f7d0eodOp!!hCdo{{@(b-qlUgjNAz}5 zbsOHjh@_W)O8N2}*<5**k{Moo=^n-f{b|##{SGX(ODYA@eH3`rLjlY49xe2Nou^ha zO0?H0g>uCod@Lt$woK$SyOD=wZ7aq0{bg>IbL9xSO#$ZbS=QU93p5W_g`NT_$kW`& zZBXRajohG*xVfpMgLwk4Np42P|Co~XL`usWDgBjGa+_NqLW%V3E;20xWRH-F#`}ma zXPBf~>dC0d&W!8FMrqEF0vqiT`x5MvbE#npe1p;|nwxi@W5y^Y|C|*zAv+Oj7`!bS2?kXjD#%;*Gjcndw2HE}2%i)es zA(`zT?L<0GVRfjIk-I6+iOrlO8u$)&iH8~m3Fi;t_$fHYH|c&O{M~X-WIv)D7~lLy z>i%TeJxlovQBMZDDgR$e|919_^My#RxS!JQ&X-?-)r>-+AlY}tu6d#`M_ncgm?W_S zHZhaE%X6zZ2(ID~u)#D9{r|+!S&D`?!Ox}h8)dx5F;PY%n(6AQH;p-R?W{QXp~oMt zp{(22qwyd!x;M9q@ABnn{JBr2Qtxn^v-@dp+Ko_@!}`Q%&5>a zANquL*Ll^qId`*urdgZN+1H7j`}*eKNPXKokywil2vyq=YdZjL^|K87j!c_WwUW$~ zuTq{rL*7r>3>|bo0RH6A4ZaHGDRl??>Qd}8d&bMS3d*<&%D4*3xC+X+3d*<&%D4*3 zxC+X+3go>qq0{?w*%yu_M|C!rZMKCPI}w9$v(+s2DZ z!s&1N9>yz8DXaqzoQ9_Ju<4>fHL6)eqqW+3TG?G&S)s)l^R(*xskzNb#G9N@b9gZy zUsQ?-WaCxHz18+(jDvCmf1W7zH{fm@NT5K6aZKDGQVvRd9J(Z49T!RiwEu@Y`+@yGsYql)*&_@TzT3IKoB_rP4iVq<2N^3nFvm|q+M~p7 zh7l1^IRre4_X;p7qCAK30A534%o#fHyj=ex;`@1lEV1%!jQOb(C}C{l3j(N! zT5tj_V~gKy$t&AVo)~_9^3+QwP7i4Alhmc6n_ZW15F{A{38eqGHF}kvaG4^K~x(0Ag zF-{V-FwRSC6K!Sten_4_CiTcS1%0t$LMkrHg%zT9UVy#V&I=Z#1knz545E8@{w^fX zuM=&D^kZ&2^nN&I%w2GCtDNr<{{7?FU9j~};?(eBzxmG*HM8O|Q7a^W0Q=x5fQ9?u zD3BI}0$|RB08B(Jgero7 zhTu#fbVc~pK&Z%>YRHr`*U}=8)*}LG$dohJK(Gr7HDu`8fuOr?T$ENrVBUNhi16mr zK!7)=HZ2m-F3WWsnDz70{{s5Y0m9ufz>+WwTf#7mp0mR+060im)C8*kPC} z!uXsZ97d(wb&^O#6Pbr+#kxpBtc&!Z|7;jRrW_!W7XczN(@4KG925Z}AjE_tAmXkY zmFreTfQTd(xg*y-l6H@UU6h3XXh0B&7Qu`&h?*im6wEk4v{NjMcFToVMSv)Xa^}%% za@{Ry2LhZx^tKGZ1laDbv|E?{?@Rwo2=hf9jCi4bRs_%`GyQ^Cs9zS2^eYmB2$x!) z7moBBI4c>y0m*)ra7i-03CVZ`M?7N?H5gwf$}nDoY(W2YFm@e25DsGp#a@UV6M%hJZ#&T zxGb0Ob}hb@>QYn_e*x1eAE-6xj+sd*V@^JkQzo4u_jf9j^PM9scdldZoU;b)xtVNE wS#vt^d)pas$7k`o?o_fl-#Y$jl$=}Hln>QZzvev5b~L94;Q__jc$hH#8=G&CZU6uP delta 4442 zcmbtWZ)_Y#6@R;Tw)cGh_SWn8aO~vHw|D0{ZsMeFFs%!lvjHPQ>m~+Ssu7pqfI*RJ zXdpp~az~O%{$O%e#zOwk4<^{is1}!E7b20;$SG9>s4^(3Dr8zyMIwTHFep+G3Yg#9 znRDv2lt`?!`{p24os)MF+mdjg$~PSy5ds;4Ux?;poBl`*^ zx^<%Q9FghjUjR8m5K{!! z{KQ8_x9^`c4_c0IeO+7(W($)a7T`u;+lsM|zCF8K3D9)OVB)@|_XTC&A5=SnLa-4p zD4k5Oj^nk-i>C0P;l$hQ{Q93b9Hhj|JV$nS46Cr4bjK!C8_E{h*NdpMysETBA`N{F zIw3D5IWHx5uyPg$J&6>O_+!Y>4^D|chcf#bim}Q{OPgb9-JMJCy@SB9>LBc@^cU&# zSTU@kzlRzs0qgIIC&N9vl=timC3wVJfTfKEd568D_$;ReYg|ncu@;IK23^|09ToRn zXu3O%Vgn^rWE|cm3Md*Bl!jt*k>4%sZ12+SG8bK?*i@lKc?>)JzT9u5e#b^B5p|?} zSMKdpp7@?}TFo2~=OWp{DRR8MV99;aT@RYbQ07g!H#X5cut75cn)M#d3$x4Enlsqr zE~q-_|6de0F>KfGr+9iJ!SAy33<#(&( zU~WC)qCHw)zd4ofaA9Oli8eD`IQ)U@{{Qi-95N4(SkV@3c7- z+9YCYZ0F~4n~O7hb)yKmKsk{gb|O}i8RY6XpA+AYZErq8eT*u*m5*|DsI8z1e;<3| zi^C<{3nknOCEN=o+zTb#3nknOxLf*gxAfv}an;>2V$#3o_|#wwZhW`g#NA@^!Rh$@ z#P`koVVo*bn&POnJ#429If9$T6jRpYnklYZJ^04!p4DtIR(A&Nkev$HoFE*mrs%TA zt=Q7T*Lzxwfj55lt;Qce_LrF#lM8R!U)Aey5v{MU-(~;mNr?W2?b^t~Xv3>o0oMxo zHC+6VAIEFH2Y(uye;T+Qr3{MnG?8_TNb6I0h^VHB{zZkqhIRt4iBqx~@;F{UzrdhD z&*NqLmGLQ}LiGwdI+cMRf=4G&;HbhcW6XPa7M>-n$7RTyYWxkfN71)m;XeR(;H@~g zi8eos1CW1195V=DMd{zAf;V27fL|ga7jK7D(0HG6A4dSG?IEfv-phdYIL7#iEB()) z&0HhWq4o^g!+2i+Mn*Jl_v5t`{s#QVev6JdW#A+-H2|zquAM=fp9+ERq3z;j2W;>M z5Z8chHUCAlD=BBf%fMW2mHB@~+k2QL#*=@?H;%Ve8qhJRhR1ppw#3lZkKJv|@ zhraWr=Z+s5UAVgSW14^D$e~g3-R6{dqWKx|i{_@nJkg`@T!m;nxk{A89a(h)5=^UZ z5q*U58YJV}L|Yl(g#@m~+%#VP3B?^n)gaNtxK-f}qHWNxMtyAK@jlfLt`7PO)p^x1 zrY24hweSQ~Sqo2iK}irzv0)H>gvXa5dHgM+oh(6YC;GWyJ$y~!ki<0!X}@L&Wdb`j z!`Rq<6jIGmqAlpa_N8W)HnPeRjQ7Hz(FF+yhAW8~$0Q+RoM;b^gYX_62T_j5n3e$< ziwa+oH~^xY$-s)tWZ(vNogal1xJA^+18a~l6u3*&23(6s+JI{j!7j!oBx4ZV!8i`d z`u~uIYn!CuT7zgekGDdyJ{)aFK(&taQ>*+0p`YZx?;ujcYaMK7Mv#b{2?e_(p;_l0fjNvb(D6f_Q-=4RXXF5JF__AP_>xTKCq~aoz376vlZfE#`;@LQo(YR!mz?43WK0G0gk!)t!0^diwUqHc8LDE zewkWJ5vm(f{U@bf9WvwTomF@YvVe*FwBnzHe*!vLx;WEW=F!En2*WI=aRjrxf}@k= zDvnY}4b3K&3EUwpU809s=5a@{EaGHkIgOK+KaT;;;lT)oBjjU4wVf6 diff --git a/ASM/build/c_symbols.txt b/ASM/build/c_symbols.txt index 9ee4df20e..12d48c149 100644 --- a/ASM/build/c_symbols.txt +++ b/ASM/build/c_symbols.txt @@ -21,40 +21,41 @@ SYMBOL TABLE: 00000000 l .rodata.str1.4 00000000 $LC0 00000004 l .rodata.str1.4 00000000 $LC1 00000000 l df *ABS* 00000000 text.c -00000014 l O .sbss 00000004 text_buf -00000010 l O .sbss 00000004 text_end -000011a0 g F .text 0000002c text_init -00001274 g F .text 00000148 text_flush -00000780 g F .text 000000b4 overlay_swap +00000018 l O .sbss 00000004 text_buf +00000014 l O .sbss 00000004 text_end +000011e4 g F .text 0000002c text_init +000012b8 g F .text 00000148 text_flush 00000020 g O .data 00000010 medals_sprite 00000004 g O .sdata 00000004 dungeon_count 00000010 g O .data 00000010 quest_items_sprite -000006dc g F .text 00000034 heap_alloc -00000834 g F .text 0000096c draw_dungeon_info +000006ec g F .text 00000034 heap_alloc +00000818 g F .text 000009cc draw_dungeon_info 00000000 *UND* 00000000 FONT_TEXTURE -000002bc g F .text 000000e8 sprite_draw -00000070 g F .text 0000024c sprite_load +000002c4 g F .text 000000f0 sprite_draw +00000070 g F .text 00000254 sprite_load 00000030 g O .data 00000010 stones_sprite 00000000 g O .bss 00000010 setup_db -000003a4 g F .text 000001dc draw_setup +000003b4 g F .text 000001dc draw_setup 00000000 g O .data 00000010 font_sprite 00000040 g F .text 00000030 sprite_bytes -00000008 g O .sbss 00000004 cfg_dungeon_info_mq_need_map -00000580 g F .text 00000148 gfx_init +0000000c g O .sbss 00000004 cfg_dungeon_info_mq_need_map +00000590 g F .text 00000148 gfx_init 00000000 g F .text 00000018 disp_buf_init 00000010 g O .bss 0000000e cfg_dungeon_is_mq 00000064 g O .data 0000009c dungeons 00000050 g O .data 00000012 medal_colors -000011cc g F .text 000000a8 text_print -00000754 g F .text 0000002c c_init +00001210 g F .text 000000a8 text_print +00000764 g F .text 0000002c c_init 00000000 g O .sbss 00000004 heap_next 00000040 g O .data 0000000e cfg_dungeon_rewards -000006c8 g F .text 00000014 heap_init -00000004 g O .sbss 00000004 cfg_dungeon_info_reward_need_compass -0000000c g O .sbss 00000004 cfg_dungeon_info_mq_enable +00000790 g F .text 00000088 c_after_game_state_update +000006d8 g F .text 00000014 heap_init +00000008 g O .sbss 00000004 cfg_dungeon_info_reward_need_compass +00000010 g O .sbss 00000004 cfg_dungeon_info_mq_enable 00000000 *UND* 00000000 C_HEAP 00000018 g F .text 00000028 sprite_bytes_per_tile -00000710 g F .text 00000044 file_init +00000720 g F .text 00000044 file_init +00000004 g O .sbss 00000004 cfg_dungeon_info_reward_need_altar 00000000 g O .sdata 00000004 cfg_dungeon_info_enable diff --git a/ASM/c/Makefile b/ASM/c/Makefile index 579b0098f..fd099a29b 100644 --- a/ASM/c/Makefile +++ b/ASM/c/Makefile @@ -2,7 +2,7 @@ CC = mips64-gcc LD = mips64-ld OBJDUMP = mips64-objdump -CFLAGS = -march=vr4300 -mtune=vr4300 -mabi=32 -mno-gpopt \ +CFLAGS = -march=vr4300 -mtune=vr4300 -mabi=32 -mno-gpopt -mdivide-breaks \ -O1 -fno-reorder-blocks \ -DZ64_VERSION=Z64_OOT10 diff --git a/ASM/c/dungeon_info.c b/ASM/c/dungeon_info.c index f69fad99b..2d2c653a4 100644 --- a/ASM/c/dungeon_info.c +++ b/ASM/c/dungeon_info.c @@ -43,18 +43,19 @@ typedef struct { } medal_color_t; medal_color_t medal_colors[] = { - { 0x11, 0xC2, 0x2D }, // Forest - { 0xD4, 0x43, 0x22 }, // Fire - { 0x08, 0x54, 0xCE }, // Water - { 0xD1, 0x75, 0x1A }, // Spirit - { 0xA9, 0x3A, 0xEA }, // Shadow - { 0xA4, 0xAB, 0x21 }, // Light + { 0x00, 0xFF, 0x00 }, // Forest + { 0xFF, 0x3C, 0x00 }, // Fire + { 0x00, 0x64, 0xFF }, // Water + { 0xFF, 0x82, 0x00 }, // Spirit + { 0xC8, 0x32, 0xFF }, // Shadow + { 0xC8, 0xC8, 0x00 }, // Light }; uint32_t cfg_dungeon_info_enable = 1; uint32_t cfg_dungeon_info_mq_enable = 0; uint32_t cfg_dungeon_info_mq_need_map = 0; uint32_t cfg_dungeon_info_reward_need_compass = 0; +uint32_t cfg_dungeon_info_reward_need_altar = 0; int8_t cfg_dungeon_rewards[] = { 0, 1, 2, 3, 4, 5, 6, 7, -1, -1, -1, -1, -1, -1 }; uint8_t cfg_dungeon_is_mq[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; @@ -67,12 +68,19 @@ void draw_dungeon_info(z64_disp_buf_t *db) { // Call setup display list gSPDisplayList(db->p++, setup_db.buf); + uint16_t altar_flags = z64_file.inf_table[27]; + int show_medals = !cfg_dungeon_info_reward_need_altar || (altar_flags & 1); + int show_stones = !cfg_dungeon_info_reward_need_altar || (altar_flags & 2); + int show_keys = 1; + int show_map_compass = 1; + int show_mq = cfg_dungeon_info_mq_enable; + // Set up dimensions int icon_size = 16; int padding = 2; int rows = 13; - int mq_width = cfg_dungeon_info_mq_enable ? + int mq_width = show_mq ? ((6 * font_sprite.tile_w) + padding) : 0; int bg_width = @@ -98,49 +106,53 @@ void draw_dungeon_info(z64_disp_buf_t *db) { 0, 0, 1<<10, 1<<10); - // Draw medals - gDPPipeSync(db->p++); gDPSetCombineMode(db->p++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM); - sprite_load(db, &medals_sprite, 0, medals_sprite.tile_count); + // Draw medals - for (int i = 0; i < dungeon_count; i++) { - dungeon_entry_t *d = &(dungeons[i]); - if (cfg_dungeon_info_reward_need_compass && - !z64_file.dungeon_items[d->index].compass) { - continue; - } - int reward = cfg_dungeon_rewards[d->index]; - if (reward < 3) continue; - reward -= 3; + if (show_medals) { + sprite_load(db, &medals_sprite, 0, medals_sprite.tile_count); - medal_color_t *c = &(medal_colors[reward]); - gDPSetPrimColor(db->p++, 0, 0, c->r, c->g, c->b, 0xFF); + for (int i = 0; i < dungeon_count; i++) { + dungeon_entry_t *d = &(dungeons[i]); + if (cfg_dungeon_info_reward_need_compass && + !z64_file.dungeon_items[d->index].compass) { + continue; + } + int reward = cfg_dungeon_rewards[d->index]; + if (reward < 3) continue; + reward -= 3; - int top = start_top + ((icon_size + padding) * i); - sprite_draw(db, &medals_sprite, reward, - left, top, icon_size, icon_size); - } + medal_color_t *c = &(medal_colors[reward]); + gDPSetPrimColor(db->p++, 0, 0, c->r, c->g, c->b, 0xFF); - // Draw stones + int top = start_top + ((icon_size + padding) * i); + sprite_draw(db, &medals_sprite, reward, + left, top, icon_size, icon_size); + } + } gDPSetPrimColor(db->p++, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF); - sprite_load(db, &stones_sprite, 0, stones_sprite.tile_count); - for (int i = 0; i < dungeon_count; i++) { - dungeon_entry_t *d = &(dungeons[i]); - if (cfg_dungeon_info_reward_need_compass && - !z64_file.dungeon_items[d->index].compass) { - continue; - } - int reward = cfg_dungeon_rewards[d->index]; - if (reward < 0 || reward >= 3) continue; + // Draw stones - int top = start_top + ((icon_size + padding) * i); - sprite_draw(db, &stones_sprite, reward, - left, top, icon_size, icon_size); + if (show_stones) { + sprite_load(db, &stones_sprite, 0, stones_sprite.tile_count); + + for (int i = 0; i < dungeon_count; i++) { + dungeon_entry_t *d = &(dungeons[i]); + if (cfg_dungeon_info_reward_need_compass && + !z64_file.dungeon_items[d->index].compass) { + continue; + } + int reward = cfg_dungeon_rewards[d->index]; + if (reward < 0 || reward >= 3) continue; + int top = start_top + ((icon_size + padding) * i); + sprite_draw(db, &stones_sprite, reward, + left, top, icon_size, icon_size); + } } left += icon_size + padding; @@ -155,58 +167,64 @@ void draw_dungeon_info(z64_disp_buf_t *db) { left += (8 * font_sprite.tile_w) + padding; - // Draw key counts + // Draw keys - sprite_load(db, &quest_items_sprite, 17, 1); + if (show_keys) { + // Draw small key counts - for (int i = 0; i < dungeon_count; i++) { - dungeon_entry_t *d = &(dungeons[i]); - if (!d->has_keys) continue; + sprite_load(db, &quest_items_sprite, 17, 1); + + for (int i = 0; i < dungeon_count; i++) { + dungeon_entry_t *d = &(dungeons[i]); + if (!d->has_keys) continue; - int8_t keys = z64_file.dungeon_keys[d->index]; - if (keys < 0) keys = 0; - if (keys > 9) keys = 9; + int8_t keys = z64_file.dungeon_keys[d->index]; + if (keys < 0) keys = 0; + if (keys > 9) keys = 9; - char count[2] = "0"; - count[0] += keys; - int top = start_top + ((icon_size + padding) * i) + 1; - text_print(count, left, top); - } + char count[2] = "0"; + count[0] += keys; + int top = start_top + ((icon_size + padding) * i) + 1; + text_print(count, left, top); + } - left += icon_size + padding; + left += icon_size + padding; - // Draw boss keys + // Draw boss keys - sprite_load(db, &quest_items_sprite, 14, 1); + sprite_load(db, &quest_items_sprite, 14, 1); - for (int i = 0; i < dungeon_count; i++) { - dungeon_entry_t *d = &(dungeons[i]); - if (d->has_boss_key && z64_file.dungeon_items[d->index].boss_key) { - int top = start_top + ((icon_size + padding) * i); - sprite_draw(db, &quest_items_sprite, 0, - left, top, icon_size, icon_size); + for (int i = 0; i < dungeon_count; i++) { + dungeon_entry_t *d = &(dungeons[i]); + // Replace index 13 (Ganon's Castle) with 10 (Ganon's Tower) + int index = d->index == 13 ? 10 : d->index; + + if (d->has_boss_key && z64_file.dungeon_items[index].boss_key) { + int top = start_top + ((icon_size + padding) * i); + sprite_draw(db, &quest_items_sprite, 0, + left, top, icon_size, icon_size); + } } - } - // Draw gerudo card + // Draw gerudo card - sprite_load(db, &quest_items_sprite, 10, 1); + sprite_load(db, &quest_items_sprite, 10, 1); - for (int i = 0; i < dungeon_count; i++) { - dungeon_entry_t *d = &(dungeons[i]); - if (d->has_card && z64_file.gerudos_card) { - int top = start_top + ((icon_size + padding) * i); - sprite_draw(db, &quest_items_sprite, 0, - left, top, icon_size, icon_size); + for (int i = 0; i < dungeon_count; i++) { + dungeon_entry_t *d = &(dungeons[i]); + if (d->has_card && z64_file.gerudos_card) { + int top = start_top + ((icon_size + padding) * i); + sprite_draw(db, &quest_items_sprite, 0, + left, top, icon_size, icon_size); + } } - } - left += icon_size + padding; + left += icon_size + padding; + } // Draw maps and compasses - int draw_maps_and_compasses = 1; - if (draw_maps_and_compasses) { + if (show_map_compass) { // Draw maps sprite_load(db, &quest_items_sprite, 16, 1); @@ -240,7 +258,7 @@ void draw_dungeon_info(z64_disp_buf_t *db) { // Draw master quest dungeons - if (cfg_dungeon_info_mq_enable) { + if (show_mq) { for (int i = 0; i < dungeon_count; i++) { dungeon_entry_t *d = &(dungeons[i]); if (cfg_dungeon_info_mq_need_map && d->has_map && diff --git a/ASM/c/main.c b/ASM/c/main.c index 07f994df3..469c6f45a 100644 --- a/ASM/c/main.c +++ b/ASM/c/main.c @@ -10,13 +10,12 @@ void c_init() { text_init(); } -void overlay_swap(z64_disp_buf_t *db, Gfx *buf, uint32_t size) { +void c_after_game_state_update() { if (z64_game.pause_state == 6 && z64_game.pause_screen == 0 && !z64_game.pause_screen_changing && z64_ctxt.input[0].raw.a) { + z64_disp_buf_t *db = &(z64_ctxt.gfx->overlay); draw_dungeon_info(db); } - - disp_buf_init(db, buf, size); } diff --git a/ASM/scripts/sym2pj64.py b/ASM/scripts/sym2pj64.py new file mode 100644 index 000000000..aef4eb7b4 --- /dev/null +++ b/ASM/scripts/sym2pj64.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python3 + +import sys + +if len(sys.argv) < 3: + raise RuntimeError("Usage: python3 sym2pj64.py IN_FILE OUT_FILE") + +in_path = sys.argv[1] +out_path = sys.argv[2] + +in_file = open(in_path, 'r') +out_file = open(out_path, 'w') + +for line in in_file: + parts = line.strip().split(' ') + if len(parts) < 2: + continue + address, label = parts + if address[0] != '8': + continue + if label[0] == '.': + continue + label_type = 'data' if label.isupper() else 'code' + out_line = ','.join([address, label_type, label]) + print(out_line, file=out_file) + +in_file.close() +out_file.close() diff --git a/ASM/src/every_frame.asm b/ASM/src/every_frame.asm index 0d89fbf20..8c9bb9cb5 100644 --- a/ASM/src/every_frame.asm +++ b/ASM/src/every_frame.asm @@ -1,11 +1,6 @@ -every_frame: - sw a0, 0x68 (sp) - sw a1, 0x6C (sp) - sw a2, 0x70 (sp) - sw a3, 0x74 (sp) +before_game_state_update: addiu sp, sp, -0x18 - sw v1, 0x10 (sp) - sw ra, 0x14 (sp) + sw ra, 0x10 (sp) ; Don't give pending item during cutscene. This can lead to a crash when giving an item ; during another item cutscene. @@ -58,15 +53,25 @@ every_frame: nop @@no_pending_item: - lw v1, 0x10 (sp) - lw ra, 0x14 (sp) + ; Displaced code + lw t9, 0x04 (s0) + or a0, s0, r0 + + lw ra, 0x10 (sp) + jr ra addiu sp, sp, 0x18 - lw a0, 0x68 (sp) - lw a1, 0x6C (sp) - lw a2, 0x70 (sp) - lw a3, 0x74 (sp) - lh t6, 0x13C4 (v1) ; Displaced code +after_game_state_update: + addiu sp, sp, -0x18 + sw ra, 0x10 (sp) - jr ra + jal c_after_game_state_update nop + + ; Displaced code + lui t6, 0x8012 + lbu t6, 0x1212 (t6) + + lw ra, 0x10 (sp) + jr ra + addiu sp, sp, 0x18 diff --git a/ASM/src/hacks.asm b/ASM/src/hacks.asm index eecf09a4a..1cc5fe99b 100755 --- a/ASM/src/hacks.asm +++ b/ASM/src/hacks.asm @@ -146,17 +146,29 @@ .endarea ;================================================================================================== -; Special item sources +; Every frame hooks ;================================================================================================== -; Runs every frame (part of player actor) +; Runs before the game state updates ; Replaces: -; sw a1, 0x006C (sp) -; lh t6, 0x13C4 (v1) -.org 0xBE5990 ; In memory: 0x803A0980 - jal every_frame +; lw t9, 0x0004 (s0) +; or a0, s0, r0 +.org 0xB16B50 ; In memory: 0x800A0BF0 + jal before_game_state_update nop +; Runs after the game state updates +; Replaces: +; lui t6, 0x8012 +; lbu t6, 0x1212 (t6) +.org 0xB16B60 ; In memory: 0x800A0C00 + jal after_game_state_update + nop + +;================================================================================================== +; Special item sources +;================================================================================================== + ; Override Light Arrow cutscene ; Replaces: ; addiu t8, r0, 0x0053 @@ -471,16 +483,8 @@ ; Dungeon info display ;================================================================================================== -; Replaces: -; jal 0x8009FEC0 ; swap buffers for overlay display list -.org 0xB17128 ; In memory: 0x800A11C8 - jal overlay_swap - ; Talk to Temple of Time Altar injection ; Replaces: ; jal 0xD6218 .org 0xE2B0B4 jal set_dungeon_knowledge - - - diff --git a/Patches.py b/Patches.py index 0a182c382..ae9534bd9 100644 --- a/Patches.py +++ b/Patches.py @@ -2011,5 +2011,6 @@ def configure_dungeon_info(rom, world): rom.write_int32(rom.sym('cfg_dungeon_info_mq_enable'), int(mq_enable)) rom.write_int32(rom.sym('cfg_dungeon_info_mq_need_map'), int(mapcompass_keysanity)) rom.write_int32(rom.sym('cfg_dungeon_info_reward_need_compass'), int(mapcompass_keysanity)) + rom.write_int32(rom.sym('cfg_dungeon_info_reward_need_altar'), int(not mapcompass_keysanity)) rom.write_bytes(rom.sym('cfg_dungeon_rewards'), dungeon_rewards) rom.write_bytes(rom.sym('cfg_dungeon_is_mq'), dungeon_is_mq) diff --git a/data/base2current.json b/data/base2current.json new file mode 100644 index 000000000..64f2aa142 --- /dev/null +++ b/data/base2current.json @@ -0,0 +1 @@ +[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 196]}, {"11135032": [8, 16, 13, 47]}, {"11311804": [12, 16, 11, 205]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 190, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 101]}, {"11427312": [12, 16, 13, 14]}, {"11427320": [12, 16, 11, 200]}, {"11427332": [0, 0]}, {"11427335": [0]}, {"11431496": [12, 16, 11, 195, 1, 15, 192, 33]}, {"11559936": [130]}, {"11559938": [14, 222]}, {"11559948": [49, 248, 0, 2]}, {"11562028": [12, 16, 13, 68]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 30]}, {"11882076": [12, 16, 12, 251]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 68, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 75, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 82, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 61, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 140]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 18]}, {"12427480": [12, 16, 10, 106]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 110]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 12, 8, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 152]}, {"12491480": [12, 16, 10, 161]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 147]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 89]}, {"13709176": [52, 15]}, {"13709179": [0]}, {"14109028": [16, 0]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 128, 73, 14, 222]}, {"14149508": [52]}, {"14149510": [0, 1, 2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 208]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 224]}, {"14624335": [118]}, {"14720872": [128]}, {"14720874": [14, 222]}, {"14720884": [49, 248, 0, 4]}, {"14720944": [12, 16, 11, 216]}, {"14848904": [8, 16, 11, 247]}, {"14852164": [12, 16, 12, 0]}, {"14872723": [52]}, {"15327704": [52, 9, 64, 0]}, {"15327728": [52]}, {"15327730": [91, 8]}, {"15327744": [52]}, {"15327746": [0, 10]}, {"15327757": [169]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 236, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 48, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 76, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 104, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 220, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 108, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 140, 128, 64, 38, 132, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 172, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 39, 212, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 28, 128, 64, 40]}, {"55059600": [83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 3, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 44, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [2, 52, 2]}, {"55060003": [69, 52, 2]}, {"55060007": [70, 3, 224]}, {"55060011": [8]}, {"55060016": [144, 136]}, {"55060019": [162, 49, 8]}, {"55060023": [6, 17]}, {"55060027": [2, 52, 2]}, {"55060031": [55, 52, 2]}, {"55060035": [56, 3, 224]}, {"55060039": [8]}, {"55060044": [144, 136]}, {"55060047": [161, 49, 8]}, {"55060051": [32, 17]}, {"55060055": [2, 52, 2]}, {"55060059": [121, 52, 2]}, {"55060063": [122, 3, 224]}, {"55060067": [8]}, {"55060072": [144, 136]}, {"55060075": [161, 49, 8]}, {"55060079": [4, 17]}, {"55060083": [2, 52, 2]}, {"55060087": [119, 52, 2]}, {"55060091": [120, 3, 224]}, {"55060095": [8]}, {"55060100": [144, 136]}, {"55060103": [50, 17]}, {"55060107": [2, 52, 2]}, {"55060111": [192, 52, 2]}, {"55060115": [193, 3, 224]}, {"55060119": [8]}, {"55060124": [144, 136]}, {"55060127": [163, 49, 8]}, {"55060131": [3, 17]}, {"55060135": [2, 52, 2]}, {"55060139": [77, 52, 162]}, {"55060144": [3, 224]}, {"55060147": [8]}, {"55060152": [144, 136]}, {"55060155": [163, 49, 8]}, {"55060159": [24, 17]}, {"55060163": [2, 52, 2]}, {"55060167": [77, 52, 162]}, {"55060172": [3, 224]}, {"55060175": [8]}, {"55060180": [3, 224]}, {"55060183": [8]}, {"55060188": [52, 8]}, {"55060191": [1, 160, 136]}, {"55060195": [62, 3, 224]}, {"55060199": [8]}, {"55060204": [36, 136]}, {"55060207": [134, 36, 9, 255, 255, 37, 41]}, {"55060215": [1, 52, 1]}, {"55060219": [3]}, {"55060221": [41, 8, 42, 20, 32]}, {"55060227": [7]}, {"55060232": [1, 9, 80, 33, 145, 75]}, {"55060240": [52, 1]}, {"55060243": [255, 21, 97, 255, 247]}, {"55060252": [161, 69]}, {"55060256": [3, 224]}, {"55060259": [8]}, {"55060264": [36, 136]}, {"55060267": [168, 1, 6, 64, 33, 145, 9]}, {"55060276": [1, 37, 72, 37, 161, 9]}, {"55060284": [3, 224]}, {"55060287": [8]}, {"55060292": [36, 136]}, {"55060295": [188, 1, 5, 64, 33, 129, 9]}, {"55060304": [5, 33]}, {"55060307": [2]}, {"55060312": [52, 9]}, {"55060316": [37, 41]}, {"55060319": [1, 161, 9]}, {"55060324": [3, 224]}, {"55060327": [8]}, {"55060332": [52, 8]}, {"55060335": [1, 160, 136]}, {"55060339": [61, 52, 8]}, {"55060343": [20, 160, 136]}, {"55060347": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [50, 160, 136]}, {"55060375": [58, 52, 8]}, {"55060379": [48, 164, 136, 19, 244, 160, 136]}, {"55060387": [51, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [2, 160, 136]}, {"55060403": [50, 52, 8]}, {"55060407": [1, 160, 136]}, {"55060411": [58, 160, 136]}, {"55060415": [60, 52, 8]}, {"55060419": [96, 164, 136, 19, 244, 160, 136]}, {"55060427": [51, 3, 224]}, {"55060431": [8]}, {"55060436": [144, 136]}, {"55060439": [124, 52, 1]}, {"55060443": [255, 17, 1]}, {"55060447": [6, 52, 2]}, {"55060451": [107, 144, 136]}, {"55060455": [148, 45, 8]}, {"55060459": [6, 17]}, {"55060463": [2, 52, 2]}, {"55060467": [106, 52, 2]}, {"55060471": [3, 3, 224]}, {"55060475": [8]}, {"55060480": [144, 136]}, {"55060483": [123, 52, 1]}, {"55060487": [255, 17, 1]}, {"55060491": [2, 52, 162]}, {"55060496": [52, 2]}, {"55060499": [12, 3, 224]}, {"55060503": [8]}, {"55060508": [52, 8]}, {"55060511": [7, 160, 136]}, {"55060515": [123, 3, 224]}, {"55060519": [8]}, {"55060524": [52, 8]}, {"55060527": [1]}, {"55060529": [168, 64, 4, 140, 137]}, {"55060535": [164, 1, 40, 72, 37, 172, 137]}, {"55060543": [164, 3, 224]}, {"55060547": [8]}, {"55060552": [48, 132]}, {"55060555": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060567": [140, 16, 129]}, {"55060571": [22, 145, 2]}, {"55060575": [117, 52, 1]}, {"55060579": [141, 16, 129]}, {"55060583": [19, 145, 2]}, {"55060587": [117, 16, 128]}, {"55060591": [17, 145, 2]}, {"55060595": [116, 52, 1]}, {"55060599": [138, 16, 129]}, {"55060603": [14, 145, 2]}, {"55060607": [116, 52, 1]}, {"55060611": [139, 16, 129]}, {"55060615": [11, 145, 2]}, {"55060619": [116, 52, 1]}, {"55060623": [88, 16, 129]}, {"55060627": [8, 52, 2]}, {"55060632": [52, 1]}, {"55060635": [120, 16, 129]}, {"55060639": [5, 52, 2]}, {"55060644": [52, 1]}, {"55060647": [121, 16, 129]}, {"55060651": [2, 52, 2]}, {"55060656": [52, 2]}, {"55060659": [255, 3, 224]}, {"55060663": [8]}, {"55060668": [39, 189, 255, 224, 175, 191]}, {"55060675": [16, 175, 176]}, {"55060679": [20, 12, 16, 11, 11]}, {"55060688": [4, 65]}, {"55060691": [2]}, {"55060696": [52, 2]}, {"55060699": [91]}, {"55060701": [64, 32, 33, 12, 16, 11, 114]}, {"55060712": [16, 96]}, {"55060715": [22, 175, 163]}, {"55060719": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060728": [133, 9]}, {"55060731": [2, 17, 32]}, {"55060735": [3, 52, 10]}, {"55060739": [1, 16]}, {"55060743": [12, 165, 10]}, {"55060748": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060759": [6, 144, 102]}, {"55060763": [7, 140, 105]}, {"55060767": [8, 1, 32, 248, 9]}, {"55060776": [143, 163]}, {"55060779": [28, 144, 101]}, {"55060783": [1, 12, 1, 191, 115, 2, 32, 32, 33, 143, 163]}, {"55060795": [28, 144, 101]}, {"55060799": [3, 16]}, {"55060803": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060815": [6]}, {"55060817": [74]}, {"55060819": [24]}, {"55060822": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060832": [60, 8, 128, 64, 37, 8, 32]}, {"55060840": [133, 9]}, {"55060843": [2, 17, 32]}, {"55060847": [3, 52, 10]}, {"55060851": [1, 165, 10]}, {"55060856": [52, 5]}, {"55060859": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060871": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060882": [48, 33, 143, 191]}, {"55060887": [16, 143, 176]}, {"55060891": [20, 39, 189]}, {"55060895": [32, 3, 224]}, {"55060899": [8]}, {"55060904": [143, 166]}, {"55060907": [48, 132, 197]}, {"55060911": [4, 8, 16, 10, 114]}, {"55060920": [143, 185]}, {"55060923": [44, 135, 37]}, {"55060927": [4, 8, 16, 10, 114]}, {"55060936": [60, 10, 128, 64, 37, 74, 32, 8, 141, 75]}, {"55060947": [12, 17, 96]}, {"55060951": [2]}, {"55060956": [149, 69]}, {"55060959": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060972": [60, 9, 128, 64, 37, 41, 32, 24, 129, 42]}, {"55060983": [3, 5, 64]}, {"55060987": [11, 1, 42, 72, 32, 129, 40]}, {"55060996": [52, 10]}, {"55060999": [127, 21, 10]}, {"55061003": [6]}, {"55061008": [60, 10, 128, 18, 37, 74, 165, 208, 133, 72]}, {"55061019": [144, 33, 8]}, {"55061023": [1, 165, 72]}, {"55061027": [144, 161, 32]}, {"55061032": [3, 224]}, {"55061035": [8]}, {"55061040": [60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061051": [12, 17, 32]}, {"55061055": [2]}, {"55061060": [129, 3]}, {"55061063": [2]}, {"55061065": [3, 15, 195]}, {"55061069": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061083": [8]}, {"55061088": [144, 69]}, {"55061091": [3, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061103": [12, 17, 32]}, {"55061107": [2]}, {"55061112": [145, 5]}, {"55061115": [3, 3, 224]}, {"55061119": [8]}, {"55061124": [143, 162]}, {"55061127": [36, 144, 69]}, {"55061132": [60, 8, 128, 64, 37, 8, 32]}, {"55061140": [133, 9]}, {"55061143": [2, 17, 32]}, {"55061147": [4, 52, 10]}, {"55061151": [1, 165, 10]}, {"55061156": [16]}, {"55061159": [24, 52, 5]}, {"55061163": [65, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061175": [12, 17, 32]}, {"55061179": [19]}, {"55061184": [145, 5]}, {"55061187": [1, 175, 164]}, {"55061192": [175, 165]}, {"55061195": [4, 175, 166]}, {"55061199": [8, 39, 189, 255, 232, 175, 191]}, {"55061207": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061219": [6, 145, 6]}, {"55061223": [7, 141, 9]}, {"55061227": [8, 1, 32, 248, 9]}, {"55061236": [143, 191]}, {"55061239": [16, 39, 189]}, {"55061243": [24, 143, 164]}, {"55061248": [143, 165]}, {"55061251": [4, 143, 166]}, {"55061255": [8, 3, 224]}, {"55061259": [8]}, {"55061264": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061275": [16, 175, 163]}, {"55061279": [20, 175, 191]}, {"55061283": [24, 12, 16, 10, 209]}, {"55061292": [143, 162]}, {"55061295": [16, 143, 163]}, {"55061299": [20, 143, 191]}, {"55061303": [24, 39, 189]}, {"55061307": [32, 3, 224]}, {"55061311": [8]}, {"55061316": [39, 189, 255, 232, 175, 191]}, {"55061323": [16, 60, 8, 128, 64, 37, 8, 32, 8, 173]}, {"55061336": [173]}, {"55061339": [4, 173]}, {"55061343": [8, 173]}, {"55061347": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061363": [42]}, {"55061369": [9, 15, 195, 1, 33, 32, 38]}, {"55061377": [129, 32, 35, 141, 5, 4, 40, 12, 16, 11, 11]}, {"55061392": [4, 64]}, {"55061395": [34]}, {"55061400": [52, 68]}, {"55061404": [12, 16, 11, 114]}, {"55061412": [16, 96]}, {"55061415": [12]}, {"55061420": [60, 8, 128, 64, 37, 8, 32, 8, 140, 105]}, {"55061432": [173, 9]}, {"55061436": [140, 105]}, {"55061439": [4, 173, 9]}, {"55061443": [4, 140, 105]}, {"55061447": [8, 173, 9]}, {"55061451": [8, 52, 9]}, {"55061455": [1, 173, 9]}, {"55061459": [12, 144, 98]}, {"55061464": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061480": [52, 1]}, {"55061483": [10, 21, 65]}, {"55061487": [6]}, {"55061492": [149, 42]}, {"55061495": [28, 49, 74, 240, 31]}, {"55061501": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061511": [28, 129, 9, 4, 36, 5, 33]}, {"55061519": [2]}, {"55061525": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061535": [16, 39, 189]}, {"55061539": [24, 3, 224]}, {"55061543": [8]}, {"55061548": [39, 189, 255, 232, 175, 191]}, {"55061555": [16, 12, 16, 11, 25]}, {"55061564": [36, 1, 255, 255, 16, 65]}, {"55061571": [4]}, {"55061576": [52, 68]}, {"55061580": [12, 16, 11, 77]}, {"55061588": [143, 191]}, {"55061591": [16, 39, 189]}, {"55061595": [24, 3, 224]}, {"55061599": [8]}, {"55061604": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061615": [164, 52, 8]}, {"55061620": [52, 137]}, {"55061624": [148, 170]}, {"55061628": [52, 1, 1, 156, 21, 65]}, {"55061635": [8]}, {"55061640": [52, 8]}, {"55061643": [3, 148, 171]}, {"55061647": [28, 49, 105]}, {"55061651": [255, 49, 98, 31]}, {"55061657": [2, 18, 2, 16]}, {"55061663": [31]}, {"55061668": [52, 1]}, {"55061671": [10, 21, 65]}, {"55061675": [14]}, {"55061680": [148, 171]}, {"55061683": [28, 52, 1]}, {"55061687": [16, 20, 65]}, {"55061691": [8]}, {"55061696": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061707": [4]}, {"55061712": [36, 2, 255, 255, 16]}, {"55061719": [21]}, {"55061724": [52, 8]}, {"55061727": [1, 49, 105]}, {"55061731": [31, 52, 1]}, {"55061735": [21, 21, 65]}, {"55061739": [12]}, {"55061744": [52, 1]}, {"55061747": [62, 16, 129]}, {"55061751": [7]}, {"55061756": [52, 1]}, {"55061759": [66, 16, 129]}, {"55061763": [4]}, {"55061768": [36, 2, 255, 255, 16]}, {"55061775": [7]}, {"55061780": [52, 8]}, {"55061783": [2, 144, 169, 1, 65]}, {"55061789": [2, 18]}, {"55061793": [72, 16, 37]}, {"55061797": [2, 18]}, {"55061801": [73, 16, 37, 3, 224]}, {"55061807": [8]}, {"55061812": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061824": [129, 9]}, {"55061828": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061851": [4, 141, 9]}, {"55061856": [17, 32]}, {"55061859": [23]}, {"55061865": [9, 82, 2, 49, 75, 248]}, {"55061873": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061896": [49, 34]}, {"55061899": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061920": [60, 12, 128, 64, 37, 140, 28]}, {"55061928": [129, 140]}, {"55061932": [17, 108]}, {"55061935": [4, 165, 32]}, {"55061939": [2, 161, 43]}, {"55061943": [2, 161, 34]}, {"55061947": [3, 173, 36]}, {"55061951": [4, 3, 224]}, {"55061955": [8]}, {"55061960": [39, 189, 255, 224, 175, 176]}, {"55061967": [16, 175, 177]}, {"55061971": [20, 175, 191]}, {"55061975": [24, 52, 130]}, {"55061980": [52, 80]}, {"55061984": [38, 8, 255, 128, 5]}, {"55061991": [18]}, {"55061996": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55062007": [16, 1, 9]}, {"55062011": [24]}, {"55062014": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55062032": [142, 40]}, {"55062035": [12, 1]}, {"55062038": [248, 9]}, {"55062044": [20, 80, 255, 239]}, {"55062052": [54, 35]}, {"55062056": [16]}, {"55062059": [2]}, {"55062064": [52, 3]}, {"55062068": [143, 176]}, {"55062071": [16, 143, 177]}, {"55062075": [20, 143, 191]}, {"55062079": [24, 39, 189]}, {"55062083": [32, 3, 224]}, {"55062087": [8]}, {"55062092": [140, 136, 29, 44, 52, 9]}, {"55062099": [1]}, {"55062101": [9, 78]}, {"55062104": [1, 9, 16, 36, 16, 64]}, {"55062111": [36]}, {"55062116": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062131": [164, 52, 1]}, {"55062135": [61, 17, 129]}, {"55062139": [10]}, {"55062145": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062155": [25]}, {"55062160": [52, 13]}, {"55062163": [1, 161, 141, 29, 40, 37, 74]}, {"55062171": [3, 16]}, {"55062175": [9]}, {"55062180": [52, 12]}, {"55062183": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062199": [14]}, {"55062204": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062240": [60, 9, 128, 64, 37, 41, 32, 24, 161, 40]}, {"55062252": [52, 2]}, {"55062256": [3, 224]}, {"55062259": [8]}, {"55062264": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062276": [16]}, {"55062279": [34]}, {"55062284": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062296": [16]}, {"55062299": [29]}, {"55062304": [52, 2]}, {"55062307": [255, 32, 232, 255, 166, 33, 8]}, {"55062315": [97, 16]}, {"55062319": [24]}, {"55062324": [52, 8]}, {"55062327": [100, 16]}, {"55062331": [21]}, {"55062336": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062351": [1, 160, 40, 14, 222, 52, 8]}, {"55062359": [104, 16]}, {"55062363": [13]}, {"55062368": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062383": [4, 160, 40, 14, 222, 52, 8]}, {"55062391": [106, 16]}, {"55062395": [5]}, {"55062400": [52, 5]}, {"55062403": [3, 52, 8]}, {"55062407": [107, 16]}, {"55062411": [1]}, {"55062416": [60, 9, 128, 64, 37, 41, 32, 24, 60, 10, 128, 64, 37, 74, 32, 27, 129, 44]}, {"55062436": [17, 136]}, {"55062439": [11, 33, 41]}, {"55062443": [1, 21, 42, 255, 252]}, {"55062452": [60, 9, 128, 64, 37, 41, 32, 23, 33, 41]}, {"55062463": [1, 17, 42]}, {"55062467": [4, 129, 44]}, {"55062472": [21, 128, 255, 252]}, {"55062480": [161, 40]}, {"55062484": [3, 224]}, {"55062487": [8]}, {"55062493": [96, 120, 33, 129, 236, 14, 223, 49, 142]}, {"55062503": [128, 17, 192]}, {"55062507": [3, 52, 3]}, {"55062511": [5, 3, 224]}, {"55062515": [8, 52, 2]}, {"55062519": [2, 3, 224]}, {"55062523": [8]}, {"55062525": [96, 16, 33, 133, 194]}, {"55062531": [164, 60, 8, 128, 18, 37, 8, 165, 208, 129, 9, 14, 223, 53, 41]}, {"55062547": [128, 161, 9, 14, 223, 3, 224]}, {"55062555": [8]}, {"55062560": [175, 164]}, {"55062563": [104, 175, 165]}, {"55062567": [108, 175, 166]}, {"55062571": [112, 175, 167]}, {"55062575": [116, 39, 189, 255, 232, 175, 163]}, {"55062583": [16, 175, 191]}, {"55062587": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062603": [32, 21]}, {"55062607": [31]}, {"55062612": [60, 9, 128, 64, 37, 41, 32, 27, 52, 10]}, {"55062623": [255, 161, 42]}, {"55062628": [60, 9, 128, 64, 37, 41, 32, 24, 36, 10, 255, 255, 52, 12]}, {"55062643": [3, 33, 74]}, {"55062647": [1, 17, 76]}, {"55062651": [20, 1, 42, 88, 32, 129, 104]}, {"55062660": [17]}, {"55062662": [255, 251]}, {"55062668": [60, 9, 128, 64, 37, 41, 32, 27, 161, 42]}, {"55062680": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062691": [1, 165, 42]}, {"55062696": [60, 9, 128, 65, 52, 10]}, {"55062703": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 209]}, {"55062732": [143, 163]}, {"55062735": [16, 143, 191]}, {"55062739": [20, 39, 189]}, {"55062743": [24, 143, 164]}, {"55062747": [104, 143, 165]}, {"55062751": [108, 143, 166]}, {"55062755": [112, 143, 167]}, {"55062759": [116, 132, 110, 19, 196, 3, 224]}, {"55062767": [8]}, {"55062772": [147, 25]}, {"55062775": [116, 52, 1]}, {"55062779": [255, 23, 33]}, {"55062783": [2]}, {"55062788": [52, 25]}, {"55062791": [44, 3, 224]}, {"55062795": [8, 167, 185]}, {"55062799": [154, 147, 44]}, {"55062803": [116, 52, 1]}, {"55062807": [255, 21, 129]}, {"55062811": [2]}, {"55062816": [52, 12]}, {"55062819": [44, 3, 224]}, {"55062823": [8]}, {"55062828": [145, 174]}, {"55062831": [116, 52, 1]}, {"55062835": [255, 21, 193]}, {"55062839": [2]}, {"55062844": [52, 14]}, {"55062847": [44, 3, 224]}, {"55062851": [8, 167, 174]}, {"55062855": [154, 145, 207]}, {"55062859": [116, 52, 1]}, {"55062863": [255, 21, 225]}, {"55062867": [2]}, {"55062872": [52, 15]}, {"55062875": [44, 3, 224]}, {"55062879": [8, 167, 175]}, {"55062883": [154, 60, 8, 128, 64, 37, 8, 32, 28, 142, 9]}, {"55062895": [104, 173, 9]}, {"55062900": [142, 9]}, {"55062903": [108, 173, 9]}, {"55062907": [4, 150, 9]}, {"55062911": [112, 165, 9]}, {"55062915": [8, 150, 9]}, {"55062919": [156, 165, 9]}, {"55062923": [10, 3, 224]}, {"55062927": [8, 142, 14]}, {"55062931": [4, 39, 189, 255, 224, 175, 176]}, {"55062939": [16, 175, 177]}, {"55062943": [20, 175, 191]}, {"55062947": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 28, 142, 8]}, {"55062967": [4, 17]}, {"55062971": [5]}, {"55062976": [12, 16, 12, 143]}, {"55062984": [16]}, {"55062987": [3]}, {"55062992": [12, 16, 12, 162]}, {"55063000": [12, 16, 12, 130, 52, 4]}, {"55063008": [12, 16, 12, 130, 52, 4]}, {"55063015": [1, 12, 16, 12, 130, 52, 4]}, {"55063023": [2, 143, 176]}, {"55063027": [16, 143, 177]}, {"55063031": [20, 143, 191]}, {"55063035": [24, 39, 189]}, {"55063039": [32, 3, 224]}, {"55063043": [8]}, {"55063048": [2, 4, 64, 33, 145, 9]}, {"55063055": [108, 52, 1]}, {"55063059": [255, 17, 33]}, {"55063063": [7]}, {"55063068": [2, 9, 72, 33, 145, 41]}, {"55063075": [116, 52, 1]}, {"55063079": [44, 17, 33]}, {"55063083": [2]}, {"55063088": [161, 9]}, {"55063091": [105, 3, 224]}, {"55063095": [8]}, {"55063100": [39, 189, 255, 232, 175, 191]}, {"55063107": [16, 142, 40]}, {"55063112": [174, 8]}, {"55063115": [64, 142, 40]}, {"55063119": [4, 174, 8]}, {"55063123": [68, 150, 40]}, {"55063127": [8, 166, 8]}, {"55063131": [72, 162]}, {"55063134": [15, 51, 146, 8]}, {"55063139": [74, 52, 1]}, {"55063143": [255, 21, 1]}, {"55063147": [3]}, {"55063152": [12, 16, 12, 176]}, {"55063160": [143, 191]}, {"55063163": [16, 39, 189]}, {"55063167": [24, 3, 224]}, {"55063171": [8]}, {"55063176": [142, 8]}, {"55063179": [64, 174, 8]}, {"55063183": [104, 142, 8]}, {"55063187": [68, 174, 8]}, {"55063191": [108, 150, 8]}, {"55063195": [72, 166, 8]}, {"55063199": [112, 146, 8]}, {"55063203": [104, 52, 1]}, {"55063207": [255, 21, 1]}, {"55063211": [3]}, {"55063216": [52, 8]}, {"55063219": [1, 162, 8, 15, 51, 3, 224]}, {"55063227": [8]}, {"55063232": [39, 189, 255, 232, 175, 191]}, {"55063239": [16, 150, 8]}, {"55063243": [156, 49, 8]}, {"55063247": [64, 17]}, {"55063251": [5]}, {"55063256": [150, 8]}, {"55063259": [112, 49, 8, 255, 15, 53, 8]}, {"55063267": [48, 166, 8]}, {"55063271": [112, 146, 40]}, {"55063275": [1, 162, 8]}, {"55063279": [105, 150, 40]}, {"55063283": [2, 166, 8]}, {"55063287": [106, 142, 40]}, {"55063291": [4, 174, 8]}, {"55063295": [108, 12, 16, 12, 202, 52, 4]}, {"55063304": [12, 16, 12, 202, 52, 4]}, {"55063311": [1, 12, 16, 12, 202, 52, 4]}, {"55063319": [2, 143, 191]}, {"55063323": [16, 39, 189]}, {"55063327": [24, 3, 224]}, {"55063331": [8]}, {"55063336": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 51, 212, 145, 10]}, {"55063351": [108, 52, 1]}, {"55063355": [255, 17, 65]}, {"55063359": [5]}, {"55063364": [1, 42, 72, 33, 145, 41]}, {"55063372": [21, 32]}, {"55063375": [28]}, {"55063380": [60, 9, 128, 64, 37, 41, 51, 199, 37, 41]}, {"55063391": [1, 145, 42]}, {"55063396": [17, 64]}, {"55063399": [19]}, {"55063404": [2, 10, 88, 33, 145, 107]}, {"55063411": [116, 52, 1]}, {"55063415": [255, 17, 97, 255, 248]}, {"55063424": [146, 12]}, {"55063427": [108, 17, 138, 255, 245]}, {"55063436": [146, 12]}, {"55063439": [109, 17, 138, 255, 242]}, {"55063448": [146, 12]}, {"55063451": [110, 17, 138, 255, 239]}, {"55063460": [161, 11]}, {"55063463": [105, 161, 10]}, {"55063467": [108, 16]}, {"55063471": [4]}, {"55063476": [52, 9]}, {"55063479": [255, 161, 9]}, {"55063483": [105, 161, 9]}, {"55063487": [108, 3, 224]}, {"55063491": [8]}, {"55063496": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063509": [1, 1, 1, 1, 1]}, {"55063515": [1, 1, 1, 1, 1]}, {"55063521": [1]}, {"55063523": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063533": [51, 8, 33, 32, 15]}, {"55063539": [71, 21, 234]}, {"55063543": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063555": [164]}, {"55063557": [15, 122, 3, 20, 64]}, {"55063563": [5, 52, 2, 72, 48, 21, 226]}, {"55063571": [7]}, {"55063576": [36, 25]}, {"55063579": [3, 16]}, {"55063583": [4, 52, 2, 99, 17, 21, 226]}, {"55063591": [2]}, {"55063596": [36, 25]}, {"55063599": [3, 3, 224]}, {"55063603": [8]}, {"55063608": [141, 173, 138, 160, 52, 2, 128]}, {"55063616": [16, 77]}, {"55063619": [2]}, {"55063624": [16]}, {"55063627": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063643": [1, 16, 64]}, {"55063647": [2]}, {"55063652": [16]}, {"55063655": [2, 52, 2]}, {"55063659": [1, 161, 226, 28, 191, 3, 224]}, {"55063667": [8]}, {"55063673": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063687": [164]}, {"55063689": [15, 122, 3, 20, 64]}, {"55063695": [5, 52, 2, 72, 48, 21, 226]}, {"55063703": [7]}, {"55063708": [36, 25]}, {"55063711": [3, 16]}, {"55063715": [4, 52, 2, 99, 17, 21, 226]}, {"55063723": [2]}, {"55063728": [36, 25]}, {"55063731": [3, 3, 224]}, {"55063735": [8]}, {"55063740": [52, 1]}, {"55063743": [24, 20, 129]}, {"55063747": [17]}, {"55063752": [20, 64]}, {"55063755": [15]}, {"55063760": [60, 10, 128, 18, 37, 74, 165, 208, 129, 72]}, {"55063771": [166, 49, 8]}, {"55063775": [32, 17]}, {"55063779": [9, 52, 2]}, {"55063784": [52, 2]}, {"55063787": [1, 129, 72]}, {"55063791": [123, 52, 9]}, {"55063795": [7, 17, 9]}, {"55063799": [4, 52, 10]}, {"55063803": [8, 17, 10]}, {"55063807": [2]}, {"55063812": [52, 2]}, {"55063816": [3, 224]}, {"55063819": [8]}, {"55063824": [162, 37]}, {"55063827": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063839": [4, 142, 10]}, {"55063844": [17, 64]}, {"55063847": [11]}, {"55063853": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063865": [24, 194, 2, 23]}, {"55063871": [3, 49, 89]}, {"55063875": [255, 129, 234]}, {"55063880": [3, 42, 200, 37, 8, 16, 13, 71, 161, 249]}, {"55063892": [3, 224]}, {"55063895": [8]}] \ No newline at end of file diff --git a/data/rom_patch.txt b/data/rom_patch.txt index 0a7831e22..80d01e38a 100644 --- a/data/rom_patch.txt +++ b/data/rom_patch.txt @@ -1,11882 +1,11879 @@ -11,45 -12,ae -13,5b -14,97 -15,db -16,41 -17,31 -d261,48 -d262,0 -d265,48 -d266,50 -d267,0 -d269,48 -d26a,0 -d271,4b -d272,30 -d275,4b -d276,e0 -d277,0 -d279,4b -d27a,30 -8a9c51,0 -8a9c52,0 -8a9c53,0 -8a9c55,0 -8a9c56,0 -8a9c57,0 -8a9c58,0 -8a9c59,0 -8a9c5a,0 -8a9c5c,0 -8a9c5d,0 -8a9c5e,0 -8a9c5f,0 -8a9c64,0 -8a9c65,0 -8a9c66,0 -8a9c67,0 -8a9c68,0 -8a9c69,0 -8a9c6a,0 -8a9c6b,0 -8a9c6c,0 -8a9c6d,0 -8a9c6e,0 -8a9c6f,0 -8a9c90,0 -8a9c91,0 -8a9c92,0 -8a9c93,0 -8a9c94,0 -8a9c95,0 -8a9c96,0 -8a9c97,0 -8a9c98,0 -8a9c99,0 -8a9c9a,0 -8a9c9c,0 -8a9c9d,0 -8a9c9e,0 -8a9c9f,0 -8a9ca0,0 -8a9ca3,0 -8a9ca4,0 -8a9ca5,0 -8a9ca6,0 -8a9ca7,0 -8a9ca8,0 -8a9ca9,0 -8a9caa,0 -8a9cab,0 -8a9cac,0 -8a9cad,0 -8a9cae,0 -8a9caf,0 -8a9cb0,0 -8a9cd0,0 -8a9cd1,0 -8a9cd2,0 -8a9cd3,0 -8a9cd4,0 -8a9cd5,0 -8a9cd6,0 -8a9cd7,0 -8a9cd8,0 -8a9cd9,0 -8a9cda,0 -8a9cdc,0 -8a9cdd,0 -8a9cde,0 -8a9cdf,0 -8a9ce0,0 -8a9ce3,0 -8a9ce4,0 -8a9ce5,0 -8a9ce6,0 -8a9ce7,0 -8a9ce8,0 -8a9ce9,0 -8a9cea,0 -8a9ceb,0 -8a9cec,0 -8a9ced,0 -8a9cee,0 -8a9cef,0 -8a9cf0,0 -8a9d10,0 -8a9d11,0 -8a9d12,0 -8a9d13,0 -8a9d14,0 -8a9d15,0 -8a9d16,0 -8a9d17,0 -8a9d18,0 -8a9d19,0 -8a9d1a,0 -8a9d1c,0 -8a9d1d,0 -8a9d1e,0 -8a9d1f,0 -8a9d20,0 -8a9d21,0 -8a9d22,0 -8a9d23,0 -8a9d24,0 -8a9d25,0 -8a9d26,0 -8a9d27,0 -8a9d28,0 -8a9d29,0 -8a9d2a,0 -8a9d2b,0 -8a9d2c,0 -8a9d2d,0 -8a9d2e,0 -8a9d2f,0 -8a9d30,0 -8a9d50,0 -8a9d51,0 -8a9d52,0 -8a9d53,0 -8a9d54,0 -8a9d55,0 -8a9d56,0 -8a9d57,0 -8a9d58,0 -8a9d59,0 -8a9d5a,0 -8a9d5c,0 -8a9d5d,0 -8a9d5e,0 -8a9d5f,0 -8a9d60,0 -8a9d61,0 -8a9d62,0 -8a9d63,0 -8a9d64,0 -8a9d65,0 -8a9d66,0 -8a9d67,0 -8a9d68,0 -8a9d69,0 -8a9d6a,0 -8a9d6b,0 -8a9d6c,0 -8a9d6d,0 -8a9d6e,0 -8a9d6f,0 -8a9d90,0 -8a9d91,0 -8a9d92,0 -8a9d93,0 -8a9d94,0 -8a9d95,0 -8a9d96,0 -8a9d97,0 -8a9d98,0 -8a9d99,0 -8a9d9a,0 -8a9d9c,0 -8a9d9d,0 -8a9d9e,0 -8a9d9f,0 -8a9da0,0 -8a9da1,0 -8a9da2,0 -8a9da3,0 -8a9da4,0 -8a9da6,0 -8a9da7,0 -8a9da8,0 -8a9da9,0 -8a9daa,0 -8a9dab,0 -8a9dac,0 -8a9dad,0 -8a9dae,0 -8a9dd0,0 -8a9dd1,0 -8a9dd2,0 -8a9dd3,0 -8a9dd4,0 -8a9dd5,0 -8a9dd6,0 -8a9dd7,0 -8a9dd8,0 -8a9dd9,0 -8a9dda,0 -8a9ddc,0 -8a9ddd,0 -8a9dde,0 -8a9ddf,0 -8a9de0,0 -8a9de1,0 -8a9de2,0 -8a9de3,0 -8a9de4,0 -8a9de6,0 -8a9de7,0 -8a9de8,0 -8a9de9,0 -8a9dea,0 -8a9deb,0 -8a9dec,0 -8a9ded,0 -8a9dee,0 -8a9e10,0 -8a9e11,0 -8a9e12,0 -8a9e13,0 -8a9e14,0 -8a9e15,0 -8a9e16,0 -8a9e17,0 -8a9e18,0 -8a9e19,0 -8a9e1a,0 -8a9e1c,0 -8a9e1d,0 -8a9e1e,0 -8a9e1f,0 -8a9e20,0 -8a9e21,0 -8a9e22,0 -8a9e23,0 -8a9e24,0 -8a9e26,0 -8a9e27,0 -8a9e28,0 -8a9e29,0 -8a9e2a,0 -8a9e2b,0 -8a9e2c,0 -8a9e2d,0 -8a9e2e,0 -8a9e50,0 -8a9e51,0 -8a9e52,0 -8a9e53,0 -8a9e54,0 -8a9e55,0 -8a9e56,0 -8a9e57,0 -8a9e58,0 -8a9e59,0 -8a9e5a,0 -8a9e5b,0 -8a9e5c,0 -8a9e5d,0 -8a9e5e,0 -8a9e5f,0 -8a9e60,0 -8a9e61,0 -8a9e62,0 -8a9e63,0 -8a9e64,0 -8a9e65,0 -8a9e66,0 -8a9e67,0 -8a9e68,0 -8a9e69,0 -8a9e6a,0 -8a9e6b,0 -8a9e6c,0 -8a9e6d,0 -8a9e6e,0 -8a9e90,0 -8a9e91,0 -8a9e92,0 -8a9e93,0 -8a9e94,0 -8a9e95,0 -8a9e96,0 -8a9e97,0 -8a9e98,0 -8a9e99,0 -8a9e9a,0 -8a9e9b,0 -8a9e9c,0 -8a9e9d,0 -8a9e9e,0 -8a9e9f,0 -8a9ea0,0 -8a9ea1,0 -8a9ea2,0 -8a9ea3,0 -8a9ea4,0 -8a9ea5,0 -8a9ea6,0 -8a9ea7,0 -8a9ea8,0 -8a9ea9,0 -8a9eaa,0 -8a9eab,0 -8a9eac,0 -8a9ead,0 -8a9eae,0 -8a9ed0,0 -8a9ed1,0 -8a9ed2,0 -8a9ed3,0 -8a9ed4,0 -8a9ed5,0 -8a9ed6,0 -8a9ed7,0 -8a9ed8,0 -8a9ed9,0 -8a9eda,0 -8a9edb,0 -8a9edc,0 -8a9edd,0 -8a9ede,0 -8a9edf,0 -8a9ee0,0 -8a9ee3,0 -8a9ee4,0 -8a9ee5,0 -8a9ee6,0 -8a9ee7,0 -8a9ee8,0 -8a9ee9,0 -8a9eea,0 -8a9eeb,0 -8a9eec,0 -8a9eed,0 -8a9eee,0 -8a9f10,0 -8a9f11,0 -8a9f12,0 -8a9f13,0 -8a9f14,0 -8a9f15,0 -8a9f16,0 -8a9f17,0 -8a9f18,0 -8a9f19,0 -8a9f1a,0 -8a9f1b,0 -8a9f1c,0 -8a9f1d,0 -8a9f1e,0 -8a9f1f,0 -8a9f20,0 -8a9f23,0 -8a9f24,0 -8a9f25,0 -8a9f26,0 -8a9f27,0 -8a9f28,0 -8a9f29,0 -8a9f2a,0 -8a9f2b,0 -8a9f2c,0 -8a9f2d,0 -8a9f2e,0 -8a9f50,0 -8a9f51,0 -8a9f52,0 -8a9f53,0 -8a9f55,0 -8a9f56,0 -8a9f57,0 -8a9f58,0 -8a9f59,0 -8a9f5a,0 -8a9f5b,0 -8a9f5c,0 -8a9f5d,0 -8a9f5e,0 -8a9f5f,0 -8a9f64,0 -8a9f65,0 -8a9f66,0 -8a9f67,0 -8a9f68,0 -8a9f69,0 -8a9f6a,0 -8a9f6b,0 -8a9f6c,0 -8a9f6d,0 -8a9f6e,0 -a98c30,c -a98c31,10 -a98c32,a -a98c33,db -a9e838,8 -a9e839,10 -a9e83a,d -a9e83b,bc -ac9abc,c -ac9abd,10 -ac9abe,b -ac9abf,ee -ac9ac1,0 -ac9ac2,0 -ac9ac3,0 -acce88,c -acce89,10 -acce8a,b -acce8b,df -acce8c,0 -acce8d,0 -acce8e,0 -acce8f,0 -acce90,0 -acce91,0 -acce94,0 -acce97,0 -acce98,0 -acce99,0 -acce9b,0 -ae59e0,8 -ae59e1,10 -ae59e2,c -ae59e3,f2 -ae5df0,c -ae5df1,10 -ae5df2,d -ae5df3,9b -ae5df8,c -ae5df9,10 -ae5dfa,b -ae5dfb,e9 -ae5e04,0 -ae5e05,0 -ae5e07,0 -ae6e48,c -ae6e49,10 -ae6e4a,b -ae6e4b,e4 -ae6e4c,1 -ae6e4d,f -ae6e4e,c0 -ae6e4f,21 -b06400,82 -b06402,e -b06403,de -b0640c,31 -b0640d,f8 -b0640e,0 -b0640f,2 -b06c2c,c -b06c2d,10 -b06c2e,d -b06c2f,d1 -b06c31,28 -b06c33,20 -b17129,10 -b1712a,15 -b1712b,e0 -b17bb4,af -b17bb5,bf -b17bb6,0 -b17bb7,1c -b17bb8,af -b17bb9,a4 -b17bba,1 -b17bbb,40 -b17bbc,3c -b17bbd,4 -b17bbe,80 -b17bbf,40 -b17bc0,3c -b17bc1,5 -b17bc2,3 -b17bc3,48 -b17bc4,c -b17bc5,0 -b17bc6,3 -b17bc7,7c -b17bc8,34 -b17bc9,6 -b17bca,50 -b17bcb,0 -b17bcc,c -b17bcd,10 -b17bce,0 -b17bd0,0 -b17bd1,0 -b17bd2,0 -b17bd3,0 -b54b38,c -b54b39,10 -b54b3a,d -b54b3b,ab -b54e5c,c -b54e5d,10 -b54e5e,d -b54e5f,88 -baed6c,0 -baed6d,0 -baed6f,0 -bb77b4,0 -bb77b5,0 -bb77b7,0 -bb7890,c -bb7891,10 -bb7892,c -bb7893,d1 -bb7894,0 -bb7895,0 -bb7897,0 -bb7950,c -bb7951,10 -bb7952,c -bb7953,d8 -bb7954,0 -bb7955,0 -bb7957,0 -bb7ba0,0 -bb7ba1,0 -bb7ba3,0 -bb7bfc,0 -bb7bfd,0 -bb7bff,0 -bb7c3c,c -bb7c3d,10 -bb7c3e,c -bb7c3f,df -bb7c40,0 -bb7c41,0 -bb7c43,0 -bb7c58,c -bb7c59,10 -bb7c5a,c -bb7c5b,ca -bb7c5c,0 -bb7c5d,0 -bb7c5f,0 -bcecbc,8 -bcecbd,10 -bcecbe,a -bcecbf,a3 -bcecc1,0 -bcecc2,0 -bcecc3,0 -bcecc4,0 -bcecc5,0 -bcecc7,0 -bcecc8,0 -bcecc9,0 -bcecca,0 -bceccb,0 -bceccc,0 -bceccd,0 -bcecce,0 -bceccf,0 -bcecd0,0 -bcecd1,0 -bcecd3,0 -bda0a1,10 -bda0a2,a -bda0a3,29 -bda0d8,c -bda0d9,10 -bda0da,a -bda0db,81 -bda0e4,0 -bda0e5,0 -bda0e7,0 -bda264,c -bda265,10 -bda266,a -bda267,85 -bda270,0 -bda271,0 -bda273,0 -be5990,c -be5991,10 -be5992,c -be5993,95 -be5994,0 -be5995,0 -be5996,0 -be5997,0 -be9ac0,c -be9ac1,10 -be9ac2,a -be9ac3,af -be9ad8,c -be9ad9,10 -be9ada,a -be9adb,b8 -be9ae4,0 -be9ae5,0 -be9bde,83 -be9bdf,83 -c004ec,8 -c004ed,10 -c004ee,c -c004ef,3a -c0067f,64 -c018a0,c -c018a1,10 -c018a2,c -c018a3,4f -c6c7a8,c -c6c7a9,10 -c6c7aa,c -c6c7ab,5f -c6c920,c -c6c921,10 -c6c922,c -c6c923,5f -c892dc,34 -c892dd,e -c892de,0 -c892df,1 -c8931c,34 -c8931d,a -c8931e,0 -c8931f,1 -c89745,10 -c89746,b -c89747,b4 -c89868,92 -c89869,e -c8986a,1d -c8986b,28 -c898a4,92 -c898a5,19 -c898a6,1d -c898a7,29 -c898c8,92 -c898c9,a -c898ca,1d -c898cb,2a -cb6860,c -cb6861,10 -cb6862,c -cb6863,e6 -d12f78,34 -d12f79,f -d12f7b,0 -d74964,10 -d74965,0 -d7e140,34 -d7e141,e -d7e142,0 -d7e143,1 -d7e144,80 -d7e146,e -d7e147,de -d7e160,84 -d7e161,88 -d7e163,a4 -d7e164,34 -d7e165,1 -d7e167,63 -d7e168,14 -d7e169,28 -d7e16b,3 -d7e16c,34 -d7e16d,2 -d7e16e,20 -d7e16f,49 -d7e170,10 -d7e171,0 -d7e172,0 -d7e173,6 -d7e174,0 -d7e177,0 -d7e178,94 -d7e179,69 -d7e17a,e -d7e17b,d6 -d7e17c,31 -d7e17d,29 -d7e17e,0 -d7e17f,4 -d7e180,15 -d7e181,20 -d7e183,2 -d7e184,34 -d7e185,2 -d7e186,20 -d7e187,44 -d7e188,34 -d7e189,2 -d7e18a,20 -d7e18b,43 -d7e18c,8f -d7e18d,bf -d7e18f,14 -d7e190,27 -d7e191,bd -d7e192,0 -d7e193,18 -d7e194,3 -d7e195,e0 -d7e197,8 -d7e198,0 -d7e199,0 -d7e19a,0 -d7e19b,0 -d7e398,94 -d7e399,89 -d7e39a,e -d7e39b,d6 -d7e39c,31 -d7e39d,28 -d7e39f,10 -d7e3a0,31 -d7e3a1,29 -d7e3a3,4 -d7e3a4,1 -d7e3a5,9 -d7e3a6,40 -d7e3a7,25 -d7e3a8,34 -d7e3a9,9 -d7e3ab,14 -d7e3ac,34 -d7e3ad,1 -d7e3ae,0 -d7e3af,5f -d7e3b0,14 -d7e3b1,23 -d7e3b3,6 -d7e3b4,0 -d7e3b5,0 -d7e3b7,0 -d7e3b8,11 -d7e3b9,9 -d7e3bb,4 -d7e3bc,0 -d7e3bd,0 -d7e3be,0 -d7e3bf,0 -d7e3c0,34 -d7e3c1,2 -d7e3c2,0 -d7e3c3,1 -d7e3c4,3 -d7e3c5,e0 -d7e3c7,8 -d7e3c8,0 -d7e3c9,0 -d7e3cb,0 -d7e3cc,14 -d7e3cd,c2 -d7e3cf,9 -d7e3d0,34 -d7e3d1,1 -d7e3d3,63 -d7e3d4,14 -d7e3d5,23 -d7e3d7,7 -d7e3d8,8c -d7e3d9,8a -d7e3db,10 -d7e3dc,15 -d7e3dd,40 -d7e3df,5 -d7e3e0,0 -d7e3e1,0 -d7e3e2,0 -d7e3e3,0 -d7e3e4,15 -d7e3e5,9 -d7e3e7,3 -d7e3e8,34 -d7e3e9,2 -d7e3eb,1 -d7e3ec,3 -d7e3ed,e0 -d7e3ef,8 -d7e3f0,0 -d7e3f1,0 -d7e3f2,0 -d7e3f3,0 -d7e3f4,34 -d7e3f5,2 -d7e3f6,0 -d7e3f7,0 -d7e3f8,3 -d7e3f9,e0 -d7e3fa,0 -d7e3fb,8 -d7e3fc,0 -d7e3fd,0 -d7e3ff,0 -d7e76c,8f -d7e76d,b8 -d7e76e,0 -d7e76f,44 -d7e778,87 -d7e779,18 -d7e77b,a4 -d7e77c,80 -d7e77d,49 -d7e77e,e -d7e77f,de -d7e784,34 -d7e786,0 -d7e787,1 -d7e788,2 -d7e789,0 -d7e78a,20 -d7e78b,21 -d7e798,15 -d7e79b,2 -d7e79c,34 -d7e79d,19 -d7e79e,0 -d7e79f,5f -d7e7a0,17 -d7e7a1,38 -d7e7a2,0 -d7e7a3,5 -d7e7a4,ae -d7e7a5,b -d7e7a6,1 -d7e7a7,80 -d7e890,0 -d7e891,0 -d7e893,0 -d7e8a0,10 -d7e8a1,0 -d7e8a3,7 -d7e8a4,31 -d7e8a5,4a -d7e8a7,4 -d7e8b0,0 -d7e8b3,0 -d7e8b4,0 -d7e8b5,0 -d7e8b7,0 -d7e8c0,34 -d7e8c1,b -d7e8c2,0 -d7e8c3,14 -d7e8c8,1 -d7e8c9,4b -d7e8ca,50 -d7e8cb,25 -d7e8cc,15 -d7e8cd,4b -d7e8cf,14 -d7e8d4,34 -d7e8d5,e -d7e8d6,0 -d7e8d7,1 -d7e8d8,80 -d7e8da,e -d7e8db,de -d7e8e0,57 -d7e8e3,f -d7ebbc,c -d7ebbd,10 -d7ebbe,b -d7ebbf,f1 -d7ec1c,0 -d7ec1d,0 -d7ec1f,0 -d7ec20,34 -d7ec23,5 -db13d3,76 -db532c,c -db532d,10 -db532e,c -db532f,1 -df264f,76 -df7cb0,c -df7cb1,10 -df7cb2,c -df7cb3,7f -e09f68,80 -e09f6a,e -e09f6b,de -e09f74,31 -e09f75,f8 -e09f76,0 -e09f77,4 -e09fb0,c -e09fb1,10 -e09fb2,b -e09fb3,f9 -e29388,8 -e29389,10 -e2938a,c -e2938b,18 -e2a044,c -e2a045,10 -e2a046,c -e2a047,21 -e2b0b5,10 -e2b0b6,c -e2b0b7,29 -e2f093,34 -e9e1d8,34 -e9e1d9,9 -e9e1da,40 -e9e1db,0 -e9e1f0,34 -e9e1f2,5b -e9e1f3,8 -e9e200,34 -e9e202,0 -e9e203,a -e9e20d,a9 -ebb85c,c -ebb85d,10 -ebb85e,c -ebb85f,6a -ebb865,40 -ebb867,12 -ebb86c,10 -ebb86d,0 -ebb86e,0 -ebb86f,14 -ec68bc,8f -ec68bd,ad -ec68be,0 -ec68bf,2c -ec68c0,34 -ec68c1,c -ec68c2,0 -ec68c3,a -ec68c4,a5 -ec68c5,ac -ec68c6,1 -ec68c7,10 -ec68c8,c -ec68c9,10 -ec68ca,a -ec68cb,46 -ec68cc,2 -ec68cd,0 -ec68ce,28 -ec68cf,21 -ec68d0,0 -ec68d1,0 -ec68d2,0 -ec68d3,0 -ec68d4,0 -ec68d5,0 -ec68d7,0 -ec68da,0 -ec68db,0 -ec68dc,0 -ec68dd,0 -ec68de,0 -ec68df,0 -ec68e0,0 -ec68e1,0 -ec68e2,0 -ec68e3,0 -ec69ad,ad -ec69af,2c -ec69b0,34 -ec69b1,c -ec69b2,0 -ec69b3,a -ec69b4,a5 -ec69b5,ac -ec69b6,1 -ec69b7,10 -ec69b8,c -ec69b9,10 -ec69ba,a -ec69bb,46 -ec69bc,2 -ec69bd,0 -ec69be,28 -ec69bf,21 -ec69c0,0 -ec69c1,0 -ec69c3,0 -ec69c4,0 -ec69c5,0 -ec69c6,0 -ec69c7,0 -ec69c8,0 -ec69c9,0 -ec69cb,0 -ec69cc,0 -ec69cd,0 -ec69ce,0 -ec69cf,0 -ec69d2,0 -ec69d3,0 -ec9ce7,7a -3480000,27 -3480001,bd -3480002,ff -3480003,e8 -3480004,af -3480005,bf -3480007,10 -3480008,3c -3480009,4 -348000a,80 -348000b,40 -348000c,24 -348000d,84 -348000e,50 -3480010,3c -3480011,5 -3480012,3 -3480013,4b -3480014,24 -3480015,a5 -3480016,30 -3480018,34 -3480019,6 -348001a,b0 -348001c,c -348001e,3 -348001f,7c -3480024,c -3480025,10 -3480026,15 -3480027,d5 -348002c,3c -348002d,2 -348002e,80 -348002f,12 -3480030,24 -3480031,42 -3480032,d2 -3480033,a0 -3480034,24 -3480035,e -3480036,1 -3480037,40 -3480038,3c -3480039,1 -348003a,80 -348003b,10 -348003c,ac -348003d,2e -348003e,e5 -3480040,8f -3480041,bf -3480043,10 -3480044,27 -3480045,bd -3480047,18 -3480048,3 -3480049,e0 -348004b,8 -3481c01,5a -3481c02,3b -3481c03,5d -3481c04,5c -3481c05,5e -3481c06,51 -3481c07,52 -3481c08,53 -3482050,ff -3482051,ff -3482052,ff -3482053,ff -3482054,ff -3482055,ff -3482056,ff -3482057,ff -3482058,80 -3482059,40 -348205a,27 -348205b,30 -348205c,80 -348205d,40 -348205e,25 -348205f,78 -3482060,ff -3482061,ff -3482062,ff -3482063,ff -3482064,ff -3482065,ff -3482066,ff -3482067,ff -3482068,80 -3482069,40 -348206a,27 -348206b,30 -348206c,80 -348206d,40 -348206e,25 -348206f,94 -3482070,ff -3482071,ff -3482072,ff -3482073,ff -3482074,ff -3482075,ff -3482076,ff -3482077,ff -3482078,80 -3482079,40 -348207a,27 -348207b,30 -348207c,80 -348207d,40 -348207e,25 -348207f,bc -3482080,ff -3482081,ff -3482082,ff -3482083,ff -3482084,ff -3482085,ff -3482086,ff -3482087,ff -3482088,80 -3482089,40 -348208a,27 -348208b,30 -348208c,80 -348208d,40 -348208e,25 -348208f,e4 -3482090,ff -3482091,ff -3482092,ff -3482093,ff -3482094,ff -3482095,ff -3482096,ff -3482097,ff -3482098,80 -3482099,40 -348209a,27 -348209b,30 -348209c,80 -348209d,40 -348209e,26 -348209f,c -34820a0,53 -34820a1,41 -34820a2,23 -34820a3,f8 -34820a5,d1 -34820a6,ff -34820a7,ff -34820a8,80 -34820a9,40 -34820aa,26 -34820ab,5c -34820ac,80 -34820ad,40 -34820ae,26 -34820af,34 -34820b0,ff -34820b1,ff -34820b2,ff -34820b3,ff -34820b4,ff -34820b5,ff -34820b6,ff -34820b7,ff -34820b8,80 -34820b9,40 -34820ba,27 -34820bb,30 -34820bc,80 -34820bd,40 -34820be,26 -34820bf,70 -34820c0,ff -34820c1,ff -34820c2,ff -34820c3,ff -34820c4,ff -34820c5,ff -34820c6,ff -34820c7,ff -34820c8,80 -34820c9,40 -34820ca,27 -34820cb,30 -34820cc,80 -34820cd,40 -34820ce,26 -34820cf,8c -34820d0,ff -34820d1,ff -34820d2,ff -34820d3,ff -34820d4,ff -34820d5,ff -34820d6,ff -34820d7,ff -34820d8,80 -34820d9,40 -34820da,27 -34820db,30 -34820dc,80 -34820dd,40 -34820de,26 -34820df,a8 -34820e0,53 -34820e1,41 -34820e2,38 -34820e3,43 -34820e5,eb -34820e6,15 -34820e7,ff -34820e8,80 -34820e9,40 -34820ea,27 -34820eb,48 -34820ec,80 -34820ed,40 -34820ee,25 -34820ef,70 -34820f0,53 -34820f1,41 -34820f2,37 -34820f3,44 -34820f5,eb -34820f6,16 -34820f7,ff -34820f8,80 -34820f9,40 -34820fa,27 -34820fb,48 -34820fc,80 -34820fd,40 -34820fe,25 -34820ff,70 -3482100,53 -3482101,41 -3482102,39 -3482103,45 -3482105,eb -3482106,17 -3482107,ff -3482108,80 -3482109,40 -348210a,27 -348210b,48 -348210c,80 -348210d,40 -348210e,25 -348210f,70 -3482110,53 -3482111,41 -3482112,6b -3482113,46 -3482114,1 -3482115,77 -3482116,18 -3482117,ff -3482118,80 -3482119,40 -348211a,27 -348211b,48 -348211c,80 -348211d,40 -348211e,25 -348211f,70 -3482120,53 -3482121,41 -3482122,3f -3482123,47 -3482125,f4 -3482126,19 -3482127,ff -3482128,80 -3482129,40 -348212a,27 -348212b,48 -348212c,80 -348212d,40 -348212e,25 -348212f,70 -3482130,53 -3482131,41 -3482132,67 -3482133,5d -3482134,1 -3482135,73 -3482136,1c -3482137,ff -3482138,80 -3482139,40 -348213a,27 -348213b,48 -348213c,80 -348213d,40 -348213e,25 -348213f,70 -3482140,53 -3482141,41 -3482142,68 -3482143,7a -3482144,1 -3482145,74 -3482146,1d -3482147,ff -3482148,80 -3482149,40 -348214a,27 -348214b,48 -348214c,80 -348214d,40 -348214e,25 -348214f,70 -3482150,53 -3482151,41 -3482152,70 -3482153,f9 -3482154,1 -3482155,76 -3482156,1e -3482157,ff -3482158,80 -3482159,40 -348215a,27 -348215b,48 -348215c,80 -348215d,40 -348215e,25 -348215f,70 -3482160,53 -3482161,41 -3482162,6a -3482163,97 -3482164,1 -3482165,76 -3482166,20 -3482167,ff -3482168,80 -3482169,40 -348216a,27 -348216b,48 -348216c,80 -348216d,40 -348216e,25 -348216f,70 -3482170,53 -3482171,41 -3482172,a -3482173,6 -3482175,b9 -3482176,1 -3482177,3 -3482178,80 -3482179,40 -348217a,27 -348217b,84 -348217c,80 -348217d,40 -348217e,25 -348217f,70 -3482180,53 -3482181,41 -3482182,a -3482183,1c -3482185,b9 -3482186,1 -3482187,4 -3482188,80 -3482189,40 -348218a,27 -348218b,84 -348218c,80 -348218d,40 -348218e,25 -348218f,70 -3482190,53 -3482191,41 -3482192,a -3482193,1d -3482195,b9 -3482196,1 -3482197,5 -3482198,80 -3482199,40 -348219a,27 -348219b,84 -348219c,80 -348219d,40 -348219e,25 -348219f,70 -34821a0,53 -34821a1,41 -34821a2,a -34821a3,1e -34821a5,b9 -34821a6,1 -34821a7,6 -34821a8,80 -34821a9,40 -34821aa,27 -34821ab,84 -34821ac,80 -34821ad,40 -34821ae,25 -34821af,70 -34821b0,53 -34821b1,41 -34821b2,a -34821b3,2a -34821b5,b9 -34821b6,1 -34821b7,7 -34821b8,80 -34821b9,40 -34821ba,27 -34821bb,84 -34821bc,80 -34821bd,40 -34821be,25 -34821bf,70 -34821c0,53 -34821c1,41 -34821c2,a -34821c3,61 -34821c5,b9 -34821c6,1 -34821c7,a -34821c8,80 -34821c9,40 -34821ca,27 -34821cb,84 -34821cc,80 -34821cd,40 -34821ce,25 -34821cf,70 -34821d0,4d -34821d1,41 -34821d2,f5 -34821d3,62 -34821d5,b8 -34821d6,2 -34821d8,80 -34821d9,40 -34821da,27 -34821db,84 -34821dc,80 -34821dd,40 -34821de,25 -34821df,70 -34821e0,4d -34821e1,41 -34821e2,f5 -34821e3,63 -34821e5,b8 -34821e6,2 -34821e7,1 -34821e8,80 -34821e9,40 -34821ea,27 -34821eb,84 -34821ec,80 -34821ed,40 -34821ee,25 -34821ef,70 -34821f0,4d -34821f1,41 -34821f2,f5 -34821f3,64 -34821f5,b8 -34821f6,2 -34821f7,2 -34821f8,80 -34821f9,40 -34821fa,27 -34821fb,84 -34821fc,80 -34821fd,40 -34821fe,25 -34821ff,70 -3482200,4d -3482201,41 -3482202,f5 -3482203,65 -3482205,b8 -3482206,2 -3482207,3 -3482208,80 -3482209,40 -348220a,27 -348220b,84 -348220c,80 -348220d,40 -348220e,25 -348220f,70 -3482210,4d -3482211,41 -3482212,f5 -3482213,7c -3482215,b8 -3482216,2 -3482217,4 -3482218,80 -3482219,40 -348221a,27 -348221b,84 -348221c,80 -348221d,40 -348221e,25 -348221f,70 -3482220,4d -3482221,41 -3482222,f5 -3482223,7d -3482225,b8 -3482226,2 -3482227,5 -3482228,80 -3482229,40 -348222a,27 -348222b,84 -348222c,80 -348222d,40 -348222e,25 -348222f,70 -3482230,4d -3482231,41 -3482232,f5 -3482233,7e -3482235,b8 -3482236,2 -3482237,6 -3482238,80 -3482239,40 -348223a,27 -348223b,84 -348223c,80 -348223d,40 -348223e,25 -348223f,70 -3482240,4d -3482241,41 -3482242,f5 -3482243,7f -3482245,b8 -3482246,2 -3482247,7 -3482248,80 -3482249,40 -348224a,27 -348224b,84 -348224c,80 -348224d,40 -348224e,25 -348224f,70 -3482250,4d -3482251,41 -3482252,f5 -3482253,a2 -3482255,b8 -3482256,2 -3482257,8 -3482258,80 -3482259,40 -348225a,27 -348225b,84 -348225c,80 -348225d,40 -348225e,25 -348225f,70 -3482260,4d -3482261,41 -3482262,f5 -3482263,87 -3482265,b8 -3482266,2 -3482267,9 -3482268,80 -3482269,40 -348226a,27 -348226b,84 -348226c,80 -348226d,40 -348226e,25 -348226f,70 -3482270,4d -3482271,41 -3482272,e4 -3482273,88 -3482275,c8 -3482276,4 -3482278,80 -3482279,40 -348227a,27 -348227b,84 -348227c,80 -348227d,40 -348227e,25 -348227f,70 -3482280,4d -3482281,41 -3482282,e4 -3482283,89 -3482285,c8 -3482286,4 -3482287,1 -3482288,80 -3482289,40 -348228a,27 -348228b,84 -348228c,80 -348228d,40 -348228e,25 -348228f,70 -3482290,4d -3482291,41 -3482292,e4 -3482293,8a -3482295,c8 -3482296,4 -3482297,2 -3482298,80 -3482299,40 -348229a,27 -348229b,84 -348229c,80 -348229d,40 -348229e,25 -348229f,70 -34822a0,4d -34822a1,41 -34822a2,e4 -34822a3,8b -34822a5,c8 -34822a6,4 -34822a7,3 -34822a8,80 -34822a9,40 -34822aa,27 -34822ab,84 -34822ac,80 -34822ad,40 -34822ae,25 -34822af,70 -34822b0,4d -34822b1,41 -34822b2,e4 -34822b3,8c -34822b5,c8 -34822b6,4 -34822b7,4 -34822b8,80 -34822b9,40 -34822ba,27 -34822bb,84 -34822bc,80 -34822bd,40 -34822be,25 -34822bf,70 -34822c0,4d -34822c1,41 -34822c2,e4 -34822c3,8e -34822c5,c8 -34822c6,4 -34822c7,5 -34822c8,80 -34822c9,40 -34822ca,27 -34822cb,84 -34822cc,80 -34822cd,40 -34822ce,25 -34822cf,70 -34822d0,4d -34822d1,41 -34822d2,e4 -34822d3,8f -34822d5,c8 -34822d6,4 -34822d7,6 -34822d8,80 -34822d9,40 -34822da,27 -34822db,84 -34822dc,80 -34822dd,40 -34822de,25 -34822df,70 -34822e0,4d -34822e1,41 -34822e2,e4 -34822e3,a3 -34822e5,c8 -34822e6,4 -34822e7,7 -34822e8,80 -34822e9,40 -34822ea,27 -34822eb,84 -34822ec,80 -34822ed,40 -34822ee,25 -34822ef,70 -34822f0,4d -34822f1,41 -34822f2,e4 -34822f3,a5 -34822f5,c8 -34822f6,4 -34822f7,8 -34822f8,80 -34822f9,40 -34822fa,27 -34822fb,84 -34822fc,80 -34822fd,40 -34822fe,25 -34822ff,70 -3482300,4d -3482301,41 -3482302,e4 -3482303,92 -3482305,c8 -3482306,4 -3482307,9 -3482308,80 -3482309,40 -348230a,27 -348230b,84 -348230c,80 -348230d,40 -348230e,25 -348230f,70 -3482310,53 -3482311,41 -3482312,2 -3482313,93 -3482315,aa -3482316,3 -3482317,ff -3482318,80 -3482319,40 -348231a,27 -348231b,a0 -348231c,80 -348231d,40 -348231e,25 -348231f,70 -3482320,53 -3482321,41 -3482322,2 -3482323,94 -3482325,aa -3482326,4 -3482327,ff -3482328,80 -3482329,40 -348232a,27 -348232b,a0 -348232c,80 -348232d,40 -348232e,25 -348232f,70 -3482330,53 -3482331,41 -3482332,2 -3482333,95 -3482335,aa -3482336,5 -3482337,ff -3482338,80 -3482339,40 -348233a,27 -348233b,a0 -348233c,80 -348233d,40 -348233e,25 -348233f,70 -3482340,53 -3482341,41 -3482342,2 -3482343,a6 -3482345,aa -3482346,6 -3482347,ff -3482348,80 -3482349,40 -348234a,27 -348234b,a0 -348234c,80 -348234d,40 -348234e,25 -348234f,70 -3482350,53 -3482351,41 -3482352,2 -3482353,a9 -3482355,aa -3482356,7 -3482357,ff -3482358,80 -3482359,40 -348235a,27 -348235b,a0 -348235c,80 -348235d,40 -348235e,25 -348235f,70 -3482360,53 -3482361,41 -3482362,2 -3482363,9b -3482365,aa -3482366,8 -3482367,ff -3482368,80 -3482369,40 -348236a,27 -348236b,a0 -348236c,80 -348236d,40 -348236e,25 -348236f,70 -3482370,53 -3482371,41 -3482372,2 -3482373,9f -3482375,aa -3482376,b -3482377,ff -3482378,80 -3482379,40 -348237a,27 -348237b,a0 -348237c,80 -348237d,40 -348237e,25 -348237f,70 -3482380,53 -3482381,41 -3482382,2 -3482383,a0 -3482385,aa -3482386,c -3482387,ff -3482388,80 -3482389,40 -348238a,27 -348238b,a0 -348238c,80 -348238d,40 -348238e,25 -348238f,70 -3482390,53 -3482391,41 -3482392,2 -3482393,a1 -3482395,aa -3482396,d -3482397,ff -3482398,80 -3482399,40 -348239a,27 -348239b,a0 -348239c,80 -348239d,40 -348239e,25 -348239f,70 -34823a0,53 -34823a1,3d -34823a2,43 -34823a3,c -34823a5,f8 -34823a6,ff -34823a7,ff -34823a8,80 -34823a9,40 -34823aa,27 -34823ab,38 -34823ac,80 -34823ad,40 -34823ae,25 -34823af,70 -34823b0,4d -34823b1,83 -34823b2,f7 -34823b3,55 -34823b5,b7 -34823b6,ff -34823b7,ff -34823b8,80 -34823b9,40 -34823ba,27 -34823bb,30 -34823bc,80 -34823bd,40 -34823be,25 -34823bf,70 -34823c0,4d -34823c1,92 -34823c2,db -34823c3,e6 -34823c5,d8 -34823c6,ff -34823c7,ff -34823c8,80 -34823c9,40 -34823ca,27 -34823cb,30 -34823cc,80 -34823cd,40 -34823ce,26 -34823cf,dc -34823d0,4d -34823d1,93 -34823d2,da -34823d3,e6 -34823d5,d8 -34823d6,ff -34823d7,ff -34823d8,80 -34823d9,40 -34823da,27 -34823db,30 -34823dc,80 -34823dd,40 -34823de,26 -34823df,dc -34823e0,4d -34823e1,94 -34823e2,d9 -34823e3,e6 -34823e5,d8 -34823e6,ff -34823e7,ff -34823e8,80 -34823e9,40 -34823ea,27 -34823eb,30 -34823ec,80 -34823ed,40 -34823ee,26 -34823ef,dc -34823f0,4d -34823f1,8e -34823f2,e0 -34823f3,32 -34823f5,ce -34823f6,ff -34823f7,ff -34823f8,80 -34823f9,40 -34823fa,27 -34823fb,30 -34823fc,80 -34823fd,40 -34823fe,26 -34823ff,f8 -3482400,4d -3482401,8f -3482402,e0 -3482403,32 -3482405,ce -3482406,ff -3482407,ff -3482408,80 -3482409,40 -348240a,27 -348240b,30 -348240c,80 -348240d,40 -348240e,26 -348240f,f8 -3482410,4d -3482411,90 -3482412,e0 -3482413,32 -3482415,ce -3482416,ff -3482417,ff -3482418,80 -3482419,40 -348241a,27 -348241b,30 -348241c,80 -348241d,40 -348241e,26 -348241f,f8 -3482420,4d -3482421,8c -3482422,ee -3482423,34 -3482425,bb -3482426,ff -3482427,ff -3482428,80 -3482429,40 -348242a,27 -348242b,30 -348242c,80 -348242d,40 -348242e,25 -348242f,70 -3482430,4d -3482431,8d -3482432,ee -3482433,34 -3482435,bb -3482436,ff -3482437,ff -3482438,80 -3482439,40 -348243a,27 -348243b,30 -348243c,80 -348243d,40 -348243e,25 -348243f,70 -3482440,4f -3482441,41 -3482442,ed -3482443,e9 -3482445,bd -3482446,ff -3482447,ff -3482448,80 -3482449,40 -348244a,27 -348244b,c8 -348244c,80 -348244d,40 -348244e,25 -348244f,70 -3482450,53 -3482451,41 -3482452,1e -3482453,e4 -3482455,cd -3482456,ff -3482457,ff -3482458,80 -3482459,40 -348245a,27 -348245b,e8 -348245c,80 -348245d,40 -348245e,26 -348245f,c4 -3482460,53 -3482461,41 -3482462,1f -3482463,e8 -3482465,cd -3482466,ff -3482467,ff -3482468,80 -3482469,40 -348246a,28 -348246b,8 -348246c,80 -348246d,40 -348246e,25 -348246f,70 -3482470,ff -3482471,ff -3482472,ff -3482473,ff -3482474,ff -3482475,ff -3482476,ff -3482477,ff -3482478,80 -3482479,40 -348247a,27 -348247b,30 -348247c,80 -348247d,40 -348247e,28 -348247f,30 -3482480,53 -3482481,41 -3482482,46 -3482483,4a -3482484,1 -3482485,e -3482486,ff -3482487,ff -3482488,80 -3482489,40 -348248a,28 -348248b,78 -348248c,80 -348248d,40 -348248e,28 -348248f,5c -3482490,53 -3482491,41 -3482492,3 -3482493,b0 -3482495,b6 -3482496,6 -3482497,ff -3482498,80 -3482499,40 -348249a,28 -348249b,88 -348249c,80 -348249d,40 -348249e,25 -348249f,70 -34824a0,53 -34824a1,41 -34824a2,4 -34824a3,b1 -34824a5,b6 -34824a6,7 -34824a7,ff -34824a8,80 -34824a9,40 -34824aa,28 -34824ab,88 -34824ac,80 -34824ad,40 -34824ae,25 -34824af,70 -34824b0,53 -34824b1,41 -34824b2,5 -34824b3,b2 -34824b5,b6 -34824b6,8 -34824b7,ff -34824b8,80 -34824b9,40 -34824ba,28 -34824bb,88 -34824bc,80 -34824bd,40 -34824be,25 -34824bf,70 -34824c0,53 -34824c1,41 -34824c2,6 -34824c3,b3 -34824c5,b6 -34824c6,9 -34824c7,ff -34824c8,80 -34824c9,40 -34824ca,28 -34824cb,88 -34824cc,80 -34824cd,40 -34824ce,25 -34824cf,70 -34824d0,53 -34824d1,41 -34824d2,7 -34824d3,b6 -34824d5,b6 -34824d6,a -34824d7,ff -34824d8,80 -34824d9,40 -34824da,28 -34824db,88 -34824dc,80 -34824dd,40 -34824de,25 -34824df,70 -34824e0,53 -34824e1,41 -34824e2,8 -34824e3,b7 -34824e5,b6 -34824e6,b -34824e7,ff -34824e8,80 -34824e9,40 -34824ea,28 -34824eb,88 -34824ec,80 -34824ed,40 -34824ee,25 -34824ef,70 -34824f0,53 -34824f1,41 -34824f2,4 -34824f3,b8 -34824f5,b6 -34824f6,c -34824f7,ff -34824f8,80 -34824f9,40 -34824fa,28 -34824fb,88 -34824fc,80 -34824fd,40 -34824fe,25 -34824ff,70 -3482500,53 -3482501,41 -3482502,6 -3482503,b9 -3482505,b6 -3482506,d -3482507,ff -3482508,80 -3482509,40 -348250a,28 -348250b,88 -348250c,80 -348250d,40 -348250e,25 -348250f,70 -3482510,53 -3482511,41 -3482512,3 -3482513,ba -3482515,b6 -3482516,e -3482517,ff -3482518,80 -3482519,40 -348251a,28 -348251b,88 -348251c,80 -348251d,40 -348251e,25 -348251f,70 -3482520,53 -3482521,41 -3482522,8 -3482523,bb -3482525,b6 -3482526,f -3482527,ff -3482528,80 -3482529,40 -348252a,28 -348252b,88 -348252c,80 -348252d,40 -348252e,25 -348252f,70 -3482530,53 -3482531,41 -3482532,5 -3482533,bc -3482535,b6 -3482536,10 -3482537,ff -3482538,80 -3482539,40 -348253a,28 -348253b,88 -348253c,80 -348253d,40 -348253e,25 -348253f,70 -3482540,53 -3482541,41 -3482542,7 -3482543,bd -3482545,b6 -3482546,11 -3482547,ff -3482548,80 -3482549,40 -348254a,28 -348254b,88 -348254c,80 -348254d,40 -348254e,25 -348254f,70 -3482550,4d -3482552,e5 -3482553,37 -3482555,c7 -3482556,ff -3482557,ff -3482558,80 -3482559,40 -348255a,27 -348255b,30 -348255c,80 -348255d,40 -348255e,25 -348255f,70 -3482560,4d -3482561,95 -3482562,b8 -3482563,dc -3482564,1 -3482565,19 -3482566,ff -3482567,ff -3482568,80 -3482569,40 -348256a,27 -348256b,30 -348256c,80 -348256d,40 -348256e,27 -348256f,14 -3482570,3 -3482571,e0 -3482573,8 -3482574,34 -3482575,a2 -3482578,90 -3482579,88 -348257b,7d -348257c,34 -348257d,1 -348257f,ff -3482580,11 -3482581,1 -3482583,2 -3482584,34 -3482585,2 -3482587,8 -3482588,34 -3482589,2 -348258b,9 -348258c,3 -348258d,e0 -348258f,8 -3482594,90 -3482595,88 -3482597,a3 -3482598,31 -3482599,8 -348259b,c0 -348259c,11 -348259f,5 -34825a0,34 -34825a1,2 -34825a3,54 -34825a4,34 -34825a5,1 -34825a7,40 -34825a8,11 -34825a9,1 -34825ab,2 -34825ac,34 -34825ad,2 -34825af,35 -34825b0,34 -34825b1,2 -34825b3,36 -34825b4,3 -34825b5,e0 -34825b7,8 -34825bc,90 -34825bd,88 -34825bf,a3 -34825c0,31 -34825c1,8 -34825c3,18 -34825c4,11 -34825c7,5 -34825c8,34 -34825c9,2 -34825cb,32 -34825cc,34 -34825cd,1 -34825cf,8 -34825d0,11 -34825d1,1 -34825d3,2 -34825d4,34 -34825d5,2 -34825d7,33 -34825d8,34 -34825d9,2 -34825db,34 -34825dc,3 -34825dd,e0 -34825df,8 -34825e4,90 -34825e5,88 -34825e7,a3 -34825e8,31 -34825e9,8 -34825eb,3 -34825ec,11 -34825ef,5 -34825f0,34 -34825f1,2 -34825f3,4 -34825f4,34 -34825f5,1 -34825f7,1 -34825f8,11 -34825f9,1 -34825fb,2 -34825fc,34 -34825fd,2 -34825ff,30 -3482600,34 -3482601,2 -3482603,31 -3482604,3 -3482605,e0 -3482607,8 -348260c,90 -348260d,88 -348260f,a2 -3482610,31 -3482611,8 -3482613,c0 -3482614,11 -3482617,5 -3482618,34 -3482619,2 -348261b,5 -348261c,34 -348261d,1 -348261f,40 -3482620,11 -3482621,1 -3482623,2 -3482624,34 -3482625,2 -3482627,60 -3482628,34 -3482629,2 -348262b,7b -348262c,3 -348262d,e0 -348262f,8 -3482634,90 -3482635,88 -3482637,a2 -3482638,31 -3482639,8 -348263b,30 -348263c,11 -348263f,5 -3482640,34 -3482641,2 -3482643,45 -3482644,34 -3482645,9 -3482647,10 -3482648,11 -3482649,9 -348264b,2 -348264c,34 -348264d,2 -348264f,46 -3482650,34 -3482651,a2 -3482654,3 -3482655,e0 -3482657,8 -348265c,90 -348265d,88 -348265f,a2 -3482660,35 -3482661,8 -3482663,30 -3482664,a0 -3482665,88 -3482667,a2 -3482668,3 -3482669,e0 -348266b,8 -3482670,90 -3482671,88 -3482673,a2 -3482674,31 -3482675,8 -3482677,6 -3482678,11 -348267b,2 -348267c,34 -348267d,2 -348267f,37 -3482680,34 -3482681,2 -3482683,38 -3482684,3 -3482685,e0 -3482687,8 -348268c,90 -348268d,88 -348268f,a1 -3482690,31 -3482691,8 -3482693,20 -3482694,11 -3482697,2 -3482698,34 -3482699,2 -348269b,79 -348269c,34 -348269d,2 -348269f,7a -34826a0,3 -34826a1,e0 -34826a3,8 -34826a8,90 -34826a9,88 -34826ab,a1 -34826ac,31 -34826ad,8 -34826af,4 -34826b0,11 -34826b3,2 -34826b4,34 -34826b5,2 -34826b7,77 -34826b8,34 -34826b9,2 -34826bb,78 -34826bc,3 -34826bd,e0 -34826bf,8 -34826c4,90 -34826c5,88 -34826c7,32 -34826c8,11 -34826cb,2 -34826cc,34 -34826cd,2 -34826cf,c0 -34826d0,34 -34826d1,2 -34826d3,c1 -34826d4,3 -34826d5,e0 -34826d7,8 -34826dc,90 -34826dd,88 -34826df,a3 -34826e0,31 -34826e1,8 -34826e3,3 -34826e4,11 -34826e7,2 -34826e8,34 -34826e9,2 -34826eb,4d -34826ec,34 -34826ed,a2 -34826f0,3 -34826f1,e0 -34826f3,8 -34826f8,90 -34826f9,88 -34826fb,a3 -34826fc,31 -34826fd,8 -34826ff,18 -3482700,11 -3482703,2 -3482704,34 -3482705,2 -3482707,4d -3482708,34 -3482709,a2 -348270c,3 -348270d,e0 -348270f,8 -3482714,90 -3482715,88 -3482717,a2 -3482718,31 -3482719,8 -348271b,c0 -348271c,11 -348271f,2 -3482720,34 -3482721,2 -3482723,4d -3482724,34 -3482725,a2 -3482728,3 -3482729,e0 -348272b,8 -3482730,3 -3482731,e0 -3482733,8 -3482738,34 -3482739,8 -348273b,1 -348273c,a0 -348273d,88 -348273f,3e -3482740,3 -3482741,e0 -3482743,8 -3482748,24 -3482749,88 -348274b,86 -348274c,24 -348274d,9 -348274e,ff -348274f,ff -3482750,25 -3482751,29 -3482753,1 -3482754,34 -3482755,1 -3482757,3 -3482759,29 -348275a,8 -348275b,2a -348275c,14 -348275d,20 -348275f,7 -3482764,1 -3482765,9 -3482766,50 -3482767,21 -3482768,91 -3482769,4b -348276c,34 -348276d,1 -348276f,ff -3482770,15 -3482771,61 -3482772,ff -3482773,f7 -3482778,a1 -3482779,45 -348277c,3 -348277d,e0 -348277f,8 -3482784,24 -3482785,88 -3482787,a8 -3482788,1 -3482789,6 -348278a,40 -348278b,21 -348278c,91 -348278d,9 -3482790,1 -3482791,25 -3482792,48 -3482793,25 -3482794,a1 -3482795,9 -3482798,3 -3482799,e0 -348279b,8 -34827a0,24 -34827a1,88 -34827a3,bc -34827a4,1 -34827a5,5 -34827a6,40 -34827a7,21 -34827a8,81 -34827a9,9 -34827ac,5 -34827ad,21 -34827af,2 -34827b4,34 -34827b5,9 -34827b8,25 -34827b9,29 -34827bb,1 -34827bc,a1 -34827bd,9 -34827c0,3 -34827c1,e0 -34827c3,8 -34827c8,34 -34827c9,8 -34827cb,1 -34827cc,a0 -34827cd,88 -34827cf,3d -34827d0,34 -34827d1,8 -34827d3,14 -34827d4,a0 -34827d5,88 -34827d7,cf -34827d8,34 -34827d9,8 -34827da,1 -34827db,40 -34827dc,a4 -34827dd,88 -34827de,14 -34827df,24 -34827e0,3 -34827e1,e0 -34827e3,8 -34827e8,34 -34827e9,8 -34827eb,1 -34827ec,a0 -34827ed,88 -34827ef,32 -34827f0,a0 -34827f1,88 -34827f3,3a -34827f4,34 -34827f5,8 -34827f7,30 -34827f8,a4 -34827f9,88 -34827fa,13 -34827fb,f4 -34827fc,a0 -34827fd,88 -34827ff,33 -3482800,3 -3482801,e0 -3482803,8 -3482808,34 -3482809,8 -348280b,2 -348280c,a0 -348280d,88 -348280f,32 -3482810,34 -3482811,8 -3482813,1 -3482814,a0 -3482815,88 -3482817,3a -3482818,a0 -3482819,88 -348281b,3c -348281c,34 -348281d,8 -348281f,60 -3482820,a4 -3482821,88 -3482822,13 -3482823,f4 -3482824,a0 -3482825,88 -3482827,33 -3482828,3 -3482829,e0 -348282b,8 -3482830,90 -3482831,88 -3482833,7c -3482834,34 -3482835,1 -3482837,ff -3482838,11 -3482839,1 -348283b,6 -348283c,34 -348283d,2 -348283f,6b -3482840,90 -3482841,88 -3482843,94 -3482844,2d -3482845,8 -3482847,6 -3482848,11 -348284b,2 -348284c,34 -348284d,2 -348284f,6a -3482850,34 -3482851,2 -3482853,3 -3482854,3 -3482855,e0 -3482857,8 -348285c,90 -348285d,88 -348285f,7b -3482860,34 -3482861,1 -3482863,ff -3482864,11 -3482865,1 -3482867,2 -3482868,34 -3482869,a2 -348286c,34 -348286d,2 -348286f,c -3482870,3 -3482871,e0 -3482873,8 -3482878,34 -3482879,8 -348287b,7 -348287c,a0 -348287d,88 -348287f,7b -3482880,3 -3482881,e0 -3482883,8 -3482888,34 -3482889,8 -348288b,1 -348288d,a8 -348288e,40 -348288f,4 -3482890,8c -3482891,89 -3482893,a4 -3482894,1 -3482895,28 -3482896,48 -3482897,25 -3482898,ac -3482899,89 -348289b,a4 -348289c,3 -348289d,e0 -348289f,8 -34828a4,30 -34828a5,84 -34828a7,ff -34828a8,3c -34828a9,8 -34828aa,80 -34828ab,12 -34828ac,25 -34828ad,8 -34828ae,a5 -34828af,d0 -34828b0,34 -34828b1,1 -34828b3,8c -34828b4,10 -34828b5,81 -34828b7,16 -34828b8,91 -34828b9,2 -34828bb,75 -34828bc,34 -34828bd,1 -34828bf,8d -34828c0,10 -34828c1,81 -34828c3,13 -34828c4,91 -34828c5,2 -34828c7,75 -34828c8,10 -34828c9,80 -34828cb,11 -34828cc,91 -34828cd,2 -34828cf,74 -34828d0,34 -34828d1,1 -34828d3,8a -34828d4,10 -34828d5,81 -34828d7,e -34828d8,91 -34828d9,2 -34828db,74 -34828dc,34 -34828dd,1 -34828df,8b -34828e0,10 -34828e1,81 -34828e3,b -34828e4,91 -34828e5,2 -34828e7,74 -34828e8,34 -34828e9,1 -34828eb,58 -34828ec,10 -34828ed,81 -34828ef,8 -34828f0,34 -34828f1,2 -34828f4,34 -34828f5,1 -34828f7,78 -34828f8,10 -34828f9,81 -34828fb,5 -34828fc,34 -34828fd,2 -3482900,34 -3482901,1 -3482903,79 -3482904,10 -3482905,81 -3482907,2 -3482908,34 -3482909,2 -348290c,34 -348290d,2 -348290f,ff -3482910,3 -3482911,e0 -3482913,8 -3482918,27 -3482919,bd -348291a,ff -348291b,e0 -348291c,af -348291d,bf -348291f,10 -3482920,af -3482921,b0 -3482923,14 -3482924,c -3482925,10 -3482926,b -3482927,22 -348292c,4 -348292d,41 -348292f,2 -3482934,34 -3482935,2 -3482937,5b -3482939,40 -348293a,20 -348293b,21 -348293c,c -348293d,10 -348293e,b -348293f,93 -3482944,10 -3482945,60 -3482947,16 -3482948,af -3482949,a3 -348294b,1c -348294c,3c -348294d,8 -348294e,80 -348294f,40 -3482950,25 -3482951,8 -3482952,20 -3482954,85 -3482955,9 -3482957,2 -3482958,11 -3482959,20 -348295b,3 -348295c,34 -348295d,a -348295f,1 -3482960,10 -3482963,c -3482964,a5 -3482965,a -3482968,3c -3482969,4 -348296a,80 -348296b,12 -348296c,24 -348296d,84 -348296e,a5 -348296f,d0 -3482970,90 -3482971,65 -3482973,6 -3482974,90 -3482975,66 -3482977,7 -3482978,8c -3482979,69 -348297b,8 -348297c,1 -348297d,20 -348297e,f8 -348297f,9 -3482984,8f -3482985,a3 -3482987,1c -3482988,90 -3482989,65 -348298b,1 -348298c,c -348298d,1 -348298e,bf -348298f,73 -3482990,2 -3482991,20 -3482992,20 -3482993,21 -3482994,8f -3482995,a3 -3482997,1c -3482998,90 -3482999,65 -348299b,3 -348299c,10 -348299f,11 -34829a0,3c -34829a1,9 -34829a2,80 -34829a3,3b -34829a4,25 -34829a5,29 -34829a6,9e -34829a7,7e -34829a8,34 -34829a9,a -34829ab,6 -34829ad,4a -34829af,18 -34829b2,50 -34829b3,12 -34829b4,1 -34829b5,2a -34829b6,80 -34829b7,21 -34829b8,82 -34829b9,5 -34829bc,3c -34829bd,8 -34829be,80 -34829bf,40 -34829c0,25 -34829c1,8 -34829c2,20 -34829c4,85 -34829c5,9 -34829c7,2 -34829c8,11 -34829c9,20 -34829cb,3 -34829cc,34 -34829cd,a -34829cf,1 -34829d0,a5 -34829d1,a -34829d4,34 -34829d5,5 -34829d7,41 -34829d8,c -34829d9,1 -34829da,bf -34829db,73 -34829dc,2 -34829dd,20 -34829de,20 -34829df,21 -34829e0,92 -34829e1,5 -34829e3,3 -34829e4,2 -34829e5,20 -34829e6,20 -34829e7,21 -34829e8,c -34829e9,3 -34829ea,73 -34829eb,85 -34829ee,30 -34829ef,21 -34829f0,8f -34829f1,bf -34829f3,10 -34829f4,8f -34829f5,b0 -34829f7,14 -34829f8,27 -34829f9,bd -34829fb,20 -34829fc,3 -34829fd,e0 -34829ff,8 -3482a04,8f -3482a05,a6 -3482a07,30 -3482a08,84 -3482a09,c5 -3482a0b,4 -3482a0c,8 -3482a0d,10 -3482a0e,a -3482a0f,89 -3482a14,8f -3482a15,b9 -3482a17,2c -3482a18,87 -3482a19,25 -3482a1b,4 -3482a1c,8 -3482a1d,10 -3482a1e,a -3482a1f,89 -3482a24,3c -3482a25,a -3482a26,80 -3482a27,40 -3482a28,25 -3482a29,4a -3482a2a,20 -3482a2b,8 -3482a2c,8d -3482a2d,4b -3482a2f,c -3482a30,11 -3482a31,60 -3482a33,2 -3482a38,95 -3482a39,45 -3482a3b,4 -3482a3c,3c -3482a3d,a -3482a3e,80 -3482a3f,1e -3482a40,25 -3482a41,4a -3482a42,89 -3482a43,84 -3482a44,a5 -3482a45,40 -3482a48,3c -3482a49,9 -3482a4a,80 -3482a4b,40 -3482a4c,25 -3482a4d,29 -3482a4e,20 -3482a4f,18 -3482a50,81 -3482a51,2a -3482a53,3 -3482a54,5 -3482a55,40 -3482a57,b -3482a58,1 -3482a59,2a -3482a5a,48 -3482a5b,20 -3482a5c,81 -3482a5d,28 -3482a60,34 -3482a61,a -3482a63,7f -3482a64,15 -3482a65,a -3482a67,6 -3482a6c,3c -3482a6d,a -3482a6e,80 -3482a6f,12 -3482a70,25 -3482a71,4a -3482a72,a5 -3482a73,d0 -3482a74,85 -3482a75,48 -3482a77,90 -3482a78,21 -3482a79,8 -3482a7b,1 -3482a7c,a5 -3482a7d,48 -3482a7f,90 -3482a80,a1 -3482a81,20 -3482a84,3 -3482a85,e0 -3482a87,8 -3482a8c,3c -3482a8d,8 -3482a8e,80 -3482a8f,40 -3482a90,25 -3482a91,8 -3482a92,20 -3482a93,8 -3482a94,8d -3482a95,9 -3482a97,c -3482a98,11 -3482a99,20 -3482a9b,2 -3482aa0,81 -3482aa1,3 -3482aa3,2 -3482aa5,3 -3482aa6,f -3482aa7,c3 -3482aa9,61 -3482aaa,40 -3482aab,26 -3482aac,1 -3482aad,1 -3482aae,40 -3482aaf,23 -3482ab0,a0 -3482ab1,88 -3482ab2,8 -3482ab3,52 -3482ab4,3 -3482ab5,e0 -3482ab7,8 -3482abc,90 -3482abd,45 -3482abf,3 -3482ac0,3c -3482ac1,8 -3482ac2,80 -3482ac3,40 -3482ac4,25 -3482ac5,8 -3482ac6,20 -3482ac7,8 -3482ac8,8d -3482ac9,9 -3482acb,c -3482acc,11 -3482acd,20 -3482acf,2 -3482ad4,91 -3482ad5,5 -3482ad7,3 -3482ad8,3 -3482ad9,e0 -3482adb,8 -3482ae0,8f -3482ae1,a2 -3482ae3,24 -3482ae4,90 -3482ae5,45 -3482ae8,3c -3482ae9,8 -3482aea,80 -3482aeb,40 -3482aec,25 -3482aed,8 -3482aee,20 -3482af0,85 -3482af1,9 -3482af3,2 -3482af4,11 -3482af5,20 -3482af7,4 -3482af8,34 -3482af9,a -3482afb,1 -3482afc,a5 -3482afd,a -3482b00,10 -3482b03,18 -3482b04,34 -3482b05,5 -3482b07,41 -3482b08,3c -3482b09,8 -3482b0a,80 -3482b0b,40 -3482b0c,25 -3482b0d,8 -3482b0e,20 -3482b0f,8 -3482b10,8d -3482b11,9 -3482b13,c -3482b14,11 -3482b15,20 -3482b17,13 -3482b1c,91 -3482b1d,5 -3482b1f,1 -3482b20,af -3482b21,a4 -3482b24,af -3482b25,a5 -3482b27,4 -3482b28,af -3482b29,a6 -3482b2b,8 -3482b2c,27 -3482b2d,bd -3482b2e,ff -3482b2f,e8 -3482b30,af -3482b31,bf -3482b33,10 -3482b34,3c -3482b35,4 -3482b36,80 -3482b37,12 -3482b38,24 -3482b39,84 -3482b3a,a5 -3482b3b,d0 -3482b3c,91 -3482b3d,5 -3482b3f,6 -3482b40,91 -3482b41,6 -3482b43,7 -3482b44,8d -3482b45,9 -3482b47,8 -3482b48,1 -3482b49,20 -3482b4a,f8 -3482b4b,9 -3482b50,8f -3482b51,bf -3482b53,10 -3482b54,27 -3482b55,bd -3482b57,18 -3482b58,8f -3482b59,a4 -3482b5c,8f -3482b5d,a5 -3482b5f,4 -3482b60,8f -3482b61,a6 -3482b63,8 -3482b64,3 -3482b65,e0 -3482b67,8 -3482b6c,a0 -3482b6d,e6 -3482b6e,4 -3482b6f,24 -3482b70,27 -3482b71,bd -3482b72,ff -3482b73,e0 -3482b74,af -3482b75,a2 -3482b77,10 -3482b78,af -3482b79,a3 -3482b7b,14 -3482b7c,af -3482b7d,bf -3482b7f,18 -3482b80,c -3482b81,10 -3482b82,a -3482b83,e8 -3482b88,8f -3482b89,a2 -3482b8b,10 -3482b8c,8f -3482b8d,a3 -3482b8f,14 -3482b90,8f -3482b91,bf -3482b93,18 -3482b94,27 -3482b95,bd -3482b97,20 -3482b98,3 -3482b99,e0 -3482b9b,8 -3482ba0,27 -3482ba1,bd -3482ba2,ff -3482ba3,e8 -3482ba4,af -3482ba5,bf -3482ba7,10 -3482ba8,3c -3482ba9,8 -3482baa,80 -3482bab,40 -3482bac,25 -3482bad,8 -3482bae,20 -3482baf,8 -3482bb0,ad -3482bb4,ad -3482bb7,4 -3482bb8,ad -3482bbb,8 -3482bbc,ad -3482bbf,c -3482bc0,3c -3482bc1,8 -3482bc2,80 -3482bc3,1e -3482bc4,25 -3482bc5,8 -3482bc6,aa -3482bc7,30 -3482bc8,81 -3482bc9,9 -3482bca,4 -3482bcb,24 -3482bcc,11 -3482bcd,20 -3482bcf,2a -3482bd5,9 -3482bd6,f -3482bd7,c3 -3482bd8,1 -3482bd9,21 -3482bda,20 -3482bdb,26 -3482bdd,81 -3482bde,20 -3482bdf,23 -3482be0,8d -3482be1,5 -3482be2,4 -3482be3,28 -3482be4,c -3482be5,10 -3482be6,b -3482be7,22 -3482bec,4 -3482bed,40 -3482bef,22 -3482bf4,34 -3482bf5,44 -3482bf8,c -3482bf9,10 -3482bfa,b -3482bfb,93 -3482c00,10 -3482c01,60 -3482c03,c -3482c08,3c -3482c09,8 -3482c0a,80 -3482c0b,40 -3482c0c,25 -3482c0d,8 -3482c0e,20 -3482c0f,8 -3482c10,8c -3482c11,69 -3482c14,ad -3482c15,9 -3482c18,8c -3482c19,69 -3482c1b,4 -3482c1c,ad -3482c1d,9 -3482c1f,4 -3482c20,8c -3482c21,69 -3482c23,8 -3482c24,ad -3482c25,9 -3482c27,8 -3482c28,34 -3482c29,9 -3482c2b,1 -3482c2c,ad -3482c2d,9 -3482c2f,c -3482c30,90 -3482c31,62 -3482c34,3c -3482c35,8 -3482c36,80 -3482c37,1e -3482c38,25 -3482c39,8 -3482c3a,aa -3482c3b,30 -3482c3c,8d -3482c3d,9 -3482c3e,4 -3482c3f,28 -3482c40,95 -3482c41,2a -3482c44,34 -3482c45,1 -3482c47,a -3482c48,15 -3482c49,41 -3482c4b,6 -3482c50,95 -3482c51,2a -3482c53,1c -3482c54,31 -3482c55,4a -3482c56,f0 -3482c57,1f -3482c59,2 -3482c5a,59 -3482c5b,40 -3482c5c,1 -3482c5d,4b -3482c5e,50 -3482c5f,25 -3482c60,a5 -3482c61,2a -3482c63,1c -3482c64,81 -3482c65,9 -3482c66,4 -3482c67,24 -3482c68,5 -3482c69,21 -3482c6b,2 -3482c71,2 -3482c72,10 -3482c73,23 -3482c74,a1 -3482c75,2 -3482c76,4 -3482c77,24 -3482c78,8f -3482c79,bf -3482c7b,10 -3482c7c,27 -3482c7d,bd -3482c7f,18 -3482c80,3 -3482c81,e0 -3482c83,8 -3482c88,27 -3482c89,bd -3482c8a,ff -3482c8b,e8 -3482c8c,af -3482c8d,bf -3482c8f,10 -3482c90,c -3482c91,10 -3482c92,b -3482c93,30 -3482c98,24 -3482c99,1 -3482c9a,ff -3482c9b,ff -3482c9c,10 -3482c9d,41 -3482c9f,4 -3482ca4,34 -3482ca5,44 -3482ca8,c -3482ca9,10 -3482caa,b -3482cab,6e -3482cb0,8f -3482cb1,bf -3482cb3,10 -3482cb4,27 -3482cb5,bd -3482cb7,18 -3482cb8,3 -3482cb9,e0 -3482cbb,8 -3482cc0,3c -3482cc1,2 -3482cc2,80 -3482cc3,1d -3482cc4,24 -3482cc5,42 -3482cc6,84 -3482cc7,a0 -3482cc8,94 -3482cc9,42 -3482ccb,a4 -3482ccc,34 -3482ccd,8 -3482cd0,34 -3482cd1,89 -3482cd4,94 -3482cd5,aa -3482cd8,34 -3482cd9,1 -3482cda,1 -3482cdb,9c -3482cdc,15 -3482cdd,41 -3482cdf,8 -3482ce4,34 -3482ce5,8 -3482ce7,3 -3482ce8,94 -3482ce9,ab -3482ceb,1c -3482cec,31 -3482ced,69 -3482cef,ff -3482cf0,31 -3482cf1,62 -3482cf2,1f -3482cf5,2 -3482cf6,12 -3482cf7,2 -3482cf8,10 -3482cfb,1f -3482d00,34 -3482d01,1 -3482d03,a -3482d04,15 -3482d05,41 -3482d07,e -3482d0c,94 -3482d0d,ab -3482d0f,1c -3482d10,34 -3482d11,1 -3482d13,10 -3482d14,14 -3482d15,41 -3482d17,8 -3482d1c,31 -3482d1d,6c -3482d1e,f -3482d1f,e0 -3482d20,34 -3482d21,1 -3482d22,e -3482d23,a0 -3482d24,15 -3482d25,81 -3482d27,4 -3482d2c,24 -3482d2d,2 -3482d2e,ff -3482d2f,ff -3482d30,10 -3482d33,1f -3482d38,34 -3482d39,8 -3482d3b,1 -3482d3c,31 -3482d3d,69 -3482d3f,1f -3482d40,34 -3482d41,1 -3482d43,15 -3482d44,15 -3482d45,41 -3482d47,c -3482d4c,34 -3482d4d,1 -3482d4f,3e -3482d50,10 -3482d51,81 -3482d53,7 -3482d58,34 -3482d59,1 -3482d5b,42 -3482d5c,10 -3482d5d,81 -3482d5f,4 -3482d64,24 -3482d65,2 -3482d66,ff -3482d67,ff -3482d68,10 -3482d6b,11 -3482d70,34 -3482d71,8 -3482d73,2 -3482d74,90 -3482d75,a9 -3482d76,1 -3482d77,41 -3482d78,34 -3482d79,1 -3482d7a,1 -3482d7b,1a -3482d7c,15 -3482d7d,41 -3482d7f,8 -3482d84,34 -3482d85,1 -3482d87,3e -3482d88,14 -3482d89,41 -3482d8b,5 -3482d90,34 -3482d91,8 -3482d93,4 -3482d94,3c -3482d95,b -3482d96,80 -3482d97,12 -3482d98,25 -3482d99,6b -3482d9a,a5 -3482d9b,d0 -3482d9c,81 -3482d9d,62 -3482d9e,13 -3482d9f,97 -3482da1,2 -3482da2,12 -3482da5,48 -3482da6,10 -3482da7,25 -3482da9,2 -3482daa,12 -3482dad,49 -3482dae,10 -3482daf,25 -3482db0,3 -3482db1,e0 -3482db3,8 -3482db8,24 -3482db9,2 -3482dba,ff -3482dbb,ff -3482dbc,3c -3482dbd,8 -3482dbe,80 -3482dbf,40 -3482dc0,25 -3482dc1,8 -3482dc2,1c -3482dc4,81 -3482dc5,9 -3482dc8,3c -3482dc9,8 -3482dca,80 -3482dcb,12 -3482dcc,25 -3482dcd,8 -3482dce,a5 -3482dcf,d0 -3482dd0,a5 -3482dd1,9 -3482dd2,14 -3482dd3,6 -3482dd4,3c -3482dd5,8 -3482dd6,80 -3482dd7,40 -3482dd8,25 -3482dd9,8 -3482dda,f -3482ddb,fc -3482ddc,25 -3482ddd,8 -3482ddf,4 -3482de0,8d -3482de1,9 -3482de4,11 -3482de5,20 -3482de7,17 -3482ded,9 -3482dee,52 -3482def,2 -3482df0,31 -3482df1,4b -3482df2,f8 -3482df5,b -3482df6,5a -3482df7,c2 -3482df8,3c -3482df9,c -3482dfa,ff -3482dfb,ff -3482dfc,35 -3482dfd,8c -3482dfe,7 -3482dff,ff -3482e00,1 -3482e01,4c -3482e02,50 -3482e03,24 -3482e04,15 -3482e05,44 -3482e06,ff -3482e07,f5 -3482e0c,31 -3482e0d,22 -3482e0f,ff -3482e10,3c -3482e11,8 -3482e12,80 -3482e13,12 -3482e14,25 -3482e15,8 -3482e16,a5 -3482e17,d0 -3482e18,a5 -3482e19,b -3482e1a,14 -3482e1b,6 -3482e1c,3c -3482e1d,9 -3482e1e,80 -3482e1f,40 -3482e20,25 -3482e21,29 -3482e22,20 -3482e24,3c -3482e25,c -3482e26,80 -3482e27,40 -3482e28,25 -3482e29,8c -3482e2a,1c -3482e2c,81 -3482e2d,8c -3482e30,11 -3482e31,6c -3482e33,4 -3482e34,a5 -3482e35,20 -3482e37,2 -3482e38,a1 -3482e39,2b -3482e3b,2 -3482e3c,a1 -3482e3d,22 -3482e3f,3 -3482e40,ad -3482e41,24 -3482e43,4 -3482e44,3 -3482e45,e0 -3482e47,8 -3482e4c,27 -3482e4d,bd -3482e4e,ff -3482e4f,e0 -3482e50,af -3482e51,b0 -3482e53,10 -3482e54,af -3482e55,b1 -3482e57,14 -3482e58,af -3482e59,bf -3482e5b,18 -3482e5c,34 -3482e5d,82 -3482e60,34 -3482e61,50 -3482e64,26 -3482e65,8 -3482e66,ff -3482e67,80 -3482e68,5 -3482e6b,12 -3482e70,3c -3482e71,11 -3482e72,80 -3482e73,40 -3482e74,26 -3482e75,31 -3482e76,20 -3482e77,50 -3482e78,34 -3482e79,9 -3482e7b,10 -3482e7c,1 -3482e7d,9 -3482e7f,18 -3482e82,40 -3482e83,12 -3482e84,2 -3482e85,28 -3482e86,88 -3482e87,21 -3482e88,3c -3482e89,4 -3482e8a,80 -3482e8b,12 -3482e8c,24 -3482e8d,84 -3482e8e,a5 -3482e8f,d0 -3482e90,36 -3482e91,5 -3482e94,8e -3482e95,28 -3482e97,c -3482e98,1 -3482e9a,f8 -3482e9b,9 -3482ea0,14 -3482ea1,50 -3482ea2,ff -3482ea3,ef -3482ea8,36 -3482ea9,23 -3482eac,10 -3482eaf,2 -3482eb4,34 -3482eb5,3 -3482eb8,8f -3482eb9,b0 -3482ebb,10 -3482ebc,8f -3482ebd,b1 -3482ebf,14 -3482ec0,8f -3482ec1,bf -3482ec3,18 -3482ec4,27 -3482ec5,bd -3482ec7,20 -3482ec8,3 -3482ec9,e0 -3482ecb,8 -3482ed0,8c -3482ed1,88 -3482ed2,1d -3482ed3,2c -3482ed4,34 -3482ed5,9 -3482ed7,1 -3482ed9,9 -3482eda,4e -3482edc,1 -3482edd,9 -3482ede,10 -3482edf,24 -3482ee0,10 -3482ee1,40 -3482ee3,24 -3482ee8,94 -3482ee9,ca -3482eea,2 -3482eeb,dc -3482eec,3c -3482eed,b -3482eee,80 -3482eef,12 -3482ef0,25 -3482ef1,6b -3482ef2,a5 -3482ef3,d0 -3482ef4,94 -3482ef5,8c -3482ef7,a4 -3482ef8,34 -3482ef9,1 -3482efb,3d -3482efc,11 -3482efd,81 -3482eff,a -3482f05,8a -3482f06,60 -3482f07,21 -3482f08,91 -3482f09,8d -3482f0a,1d -3482f0b,28 -3482f0c,15 -3482f0d,a0 -3482f0f,19 -3482f14,34 -3482f15,d -3482f17,1 -3482f18,a1 -3482f19,8d -3482f1a,1d -3482f1b,28 -3482f1c,25 -3482f1d,4a -3482f1f,3 -3482f20,10 -3482f23,9 -3482f28,34 -3482f29,c -3482f2b,1 -3482f2c,1 -3482f2d,4c -3482f2e,60 -3482f2f,4 -3482f30,91 -3482f31,6d -3482f32,e -3482f33,f2 -3482f34,1 -3482f35,ac -3482f36,70 -3482f37,24 -3482f38,15 -3482f39,c0 -3482f3b,e -3482f40,1 -3482f41,ac -3482f42,70 -3482f43,25 -3482f44,a1 -3482f45,6e -3482f46,e -3482f47,f2 -3482f48,1 -3482f49,29 -3482f4a,48 -3482f4b,27 -3482f4c,1 -3482f4d,9 -3482f4e,40 -3482f4f,24 -3482f50,ac -3482f51,88 -3482f52,1d -3482f53,2c -3482f54,3c -3482f55,8 -3482f56,80 -3482f57,40 -3482f58,25 -3482f59,8 -3482f5a,1c -3482f5b,3 -3482f5c,1 -3482f5d,a -3482f5e,40 -3482f5f,21 -3482f60,81 -3482f61,8 -3482f64,3c -3482f65,9 -3482f66,80 -3482f67,40 -3482f68,25 -3482f69,29 -3482f6a,20 -3482f6b,18 -3482f6c,a1 -3482f6d,28 -3482f70,34 -3482f71,2 -3482f74,3 -3482f75,e0 -3482f77,8 -3482f7c,3c -3482f7d,8 -3482f7e,80 -3482f7f,40 -3482f80,25 -3482f81,8 -3482f82,1c -3482f83,1 -3482f84,81 -3482f85,8 -3482f88,10 -3482f8b,22 -3482f90,3c -3482f91,8 -3482f92,80 -3482f93,40 -3482f94,25 -3482f95,8 -3482f96,1c -3482f97,2 -3482f98,81 -3482f99,8 -3482f9c,10 -3482f9f,1d -3482fa4,34 -3482fa5,2 -3482fa7,ff -3482fa8,20 -3482fa9,e8 -3482faa,ff -3482fab,a6 -3482fac,21 -3482fad,8 -3482faf,61 -3482fb0,10 -3482fb3,18 -3482fb8,34 -3482fb9,8 -3482fbb,64 -3482fbc,10 -3482fbf,15 -3482fc4,3c -3482fc5,1 -3482fc6,80 -3482fc7,12 -3482fc8,24 -3482fc9,21 -3482fca,a5 -3482fcb,d0 -3482fcc,80 -3482fcd,28 -3482fce,e -3482fcf,de -3482fd0,35 -3482fd1,8 -3482fd3,1 -3482fd4,a0 -3482fd5,28 -3482fd6,e -3482fd7,de -3482fd8,34 -3482fd9,8 -3482fdb,68 -3482fdc,10 -3482fdf,d -3482fe4,3c -3482fe5,1 -3482fe6,80 -3482fe7,12 -3482fe8,24 -3482fe9,21 -3482fea,a5 -3482feb,d0 -3482fec,80 -3482fed,28 -3482fee,e -3482fef,de -3482ff0,35 -3482ff1,8 -3482ff3,4 -3482ff4,a0 -3482ff5,28 -3482ff6,e -3482ff7,de -3482ff8,34 -3482ff9,8 -3482ffb,6a -3482ffc,10 -3482fff,5 -3483004,34 -3483005,5 -3483007,3 -3483008,34 -3483009,8 -348300b,6b -348300c,10 -348300f,1 -3483014,3c -3483015,9 -3483016,80 -3483017,40 -3483018,25 -3483019,29 -348301a,20 -348301b,18 -348301c,3c -348301d,a -348301e,80 -348301f,40 -3483020,25 -3483021,4a -3483022,20 -3483023,1b -3483024,81 -3483025,2c -3483028,11 -3483029,88 -348302b,b -348302c,21 -348302d,29 -348302f,1 -3483030,15 -3483031,2a -3483032,ff -3483033,fc -3483038,3c -3483039,9 -348303a,80 -348303b,40 -348303c,25 -348303d,29 -348303e,20 -348303f,17 -3483040,21 -3483041,29 -3483043,1 -3483044,11 -3483045,2a -3483047,4 -3483048,81 -3483049,2c -348304c,15 -348304d,80 -348304e,ff -348304f,fc -3483054,a1 -3483055,28 -3483058,3 -3483059,e0 -348305b,8 -3483061,60 -3483062,78 -3483063,21 -3483064,81 -3483065,ec -3483066,e -3483067,df -3483068,31 -3483069,8e -348306b,80 -348306c,11 -348306d,c0 -348306f,3 -3483070,34 -3483071,3 -3483073,5 -3483074,3 -3483075,e0 -3483077,8 -3483078,34 -3483079,2 -348307b,2 -348307c,3 -348307d,e0 -348307f,8 -3483081,60 -3483082,10 -3483083,21 -3483084,85 -3483085,c2 -3483087,a4 -3483088,3c -3483089,8 -348308a,80 -348308b,12 -348308c,25 -348308d,8 -348308e,a5 -348308f,d0 -3483090,81 -3483091,9 -3483092,e -3483093,df -3483094,35 -3483095,29 -3483097,80 -3483098,a1 -3483099,9 -348309a,e -348309b,df -348309c,3 -348309d,e0 -348309f,8 -34830a4,27 -34830a5,bd -34830a6,ff -34830a7,f0 -34830a8,af -34830a9,bf -34830ab,4 -34830ac,c -34830ad,3 -34830ae,58 -34830af,86 -34830b4,3c -34830b5,c -34830b6,80 -34830b7,12 -34830b8,25 -34830b9,8c -34830ba,a5 -34830bb,d0 -34830bc,85 -34830bd,8d -34830be,f -34830bf,2e -34830c0,8d -34830c1,98 -34830c3,4 -34830c4,13 -34830c7,2 -34830c8,34 -34830c9,e -34830cb,1 -34830cc,34 -34830cd,e -34830cf,2 -34830d0,1 -34830d1,ae -34830d2,68 -34830d3,25 -34830d4,a5 -34830d5,8d -34830d6,f -34830d7,2e -34830d8,8f -34830d9,bf -34830db,4 -34830dc,27 -34830dd,bd -34830df,10 -34830e0,3 -34830e1,e0 -34830e3,8 -34830e8,84 -34830e9,8e -34830eb,1c -34830ec,21 -34830ed,cd -34830ee,ff -34830ef,ce -34830f0,5 -34830f1,a0 -34830f3,10 -34830f4,34 -34830f5,2 -34830f8,31 -34830f9,a9 -34830fb,7 -34830fc,34 -34830fd,a -34830ff,1 -3483100,1 -3483101,2a -3483102,50 -3483103,4 -3483105,d -3483106,48 -3483107,c2 -3483108,3c -3483109,c -348310a,80 -348310b,12 -348310c,25 -348310d,8c -348310e,a5 -348310f,d0 -3483110,1 -3483111,89 -3483112,60 -3483113,20 -3483114,81 -3483115,8b -3483116,5 -3483117,b4 -3483118,1 -3483119,6a -348311a,58 -348311b,24 -348311c,34 -348311d,2 -3483120,11 -3483121,60 -3483123,4 -3483128,34 -3483129,d -348312b,26 -348312c,a4 -348312d,8d -348312f,1c -3483130,34 -3483131,2 -3483133,1 -3483134,3 -3483135,e0 -3483137,8 -348313c,84 -348313d,ae -348313f,1c -3483140,21 -3483141,cd -3483142,ff -3483143,ce -3483144,5 -3483145,a0 -3483147,b -3483148,34 -3483149,2 -348314c,31 -348314d,a9 -348314f,7 -3483150,34 -3483151,a -3483153,1 -3483154,1 -3483155,2a -3483156,50 -3483157,4 -3483159,d -348315a,48 -348315b,c2 -348315c,3c -348315d,c -348315e,80 -348315f,12 -3483160,25 -3483161,8c -3483162,a5 -3483163,d0 -3483164,1 -3483165,89 -3483166,60 -3483167,20 -3483168,81 -3483169,8b -348316a,5 -348316b,b4 -348316c,1 -348316d,6a -348316e,58 -348316f,25 -3483170,a1 -3483171,8b -3483172,5 -3483173,b4 -3483174,3 -3483175,e0 -3483177,8 -348317c,27 -348317d,bd -348317e,ff -348317f,f0 -3483180,af -3483181,bf -3483183,8 -3483184,28 -3483185,81 -3483187,32 -3483188,10 -3483189,20 -348318b,3 -348318d,80 -348318e,10 -348318f,21 -3483190,3 -3483191,20 -3483192,f8 -3483193,9 -3483198,8f -3483199,bf -348319b,8 -348319c,27 -348319d,bd -348319f,10 -34831a0,3 -34831a1,e0 -34831a3,8 -34831a8,3c -34831a9,8 -34831aa,80 -34831ab,1d -34831ac,25 -34831ad,8 -34831ae,84 -34831af,a0 -34831b0,3c -34831b1,9 -34831b2,80 -34831b3,12 -34831b4,25 -34831b5,29 -34831b6,a5 -34831b7,d0 -34831b8,85 -34831b9,a -34831bb,a4 -34831bc,34 -34831bd,1 -34831bf,3e -34831c0,15 -34831c1,41 -34831c3,2 -34831c4,81 -34831c5,2b -34831c6,13 -34831c7,97 -34831c8,21 -34831c9,6a -34831cb,2d -34831cc,86 -34831cd,b -34831cf,1c -34831d0,21 -34831d1,6b -34831d3,1 -34831d4,34 -34831d5,c -34831d7,1 -34831d8,1 -34831d9,6c -34831da,60 -34831db,4 -34831dc,34 -34831dd,1 -34831df,1c -34831e0,1 -34831e1,41 -34831e3,18 -34831e6,68 -34831e7,12 -34831e8,1 -34831e9,2d -34831ea,70 -34831eb,20 -34831ec,8d -34831ed,cf -34831ef,e4 -34831f0,1 -34831f1,8f -34831f2,10 -34831f3,24 -34831f4,3 -34831f5,e0 -34831f7,8 -34831fc,3c -34831fd,8 -34831fe,80 -34831ff,1d -3483200,25 -3483201,8 -3483202,84 -3483203,a0 -3483204,3c -3483205,9 -3483206,80 -3483207,12 -3483208,25 -3483209,29 -348320a,a5 -348320b,d0 -348320c,85 -348320d,a -348320f,a4 -3483210,34 -3483211,1 -3483213,3e -3483214,15 -3483215,41 -3483217,2 -3483218,81 -3483219,2b -348321a,13 -348321b,97 -348321c,21 -348321d,6a -348321f,2d -3483220,84 -3483221,8b -3483223,1c -3483224,21 -3483225,6b -3483227,1 -3483228,34 -3483229,c -348322b,1 -348322c,1 -348322d,6c -348322e,60 -348322f,4 -3483230,34 -3483231,1 -3483233,1c -3483234,1 -3483235,41 -3483237,18 -348323a,68 -348323b,12 -348323c,1 -348323d,2d -348323e,70 -348323f,20 -3483240,8d -3483241,cf -3483243,e4 -3483244,1 -3483245,8f -3483246,78 -3483247,25 -3483248,ad -3483249,cf -348324b,e4 -348324c,3 -348324d,e0 -348324f,8 -3483254,af -3483255,a4 -3483257,68 -3483258,af -3483259,a5 -348325b,6c -348325c,af -348325d,a6 -348325f,70 -3483260,af -3483261,a7 -3483263,74 -3483264,27 -3483265,bd -3483266,ff -3483267,e8 -3483268,af -3483269,a3 -348326b,10 -348326c,af -348326d,bf -348326f,14 -3483270,3c -3483271,a -3483272,80 -3483273,1e -3483274,25 -3483275,4a -3483276,aa -3483277,30 -3483278,81 -3483279,48 -348327a,6 -348327b,6c -348327c,31 -348327d,8 -348327f,20 -3483280,15 -3483283,1f -3483288,3c -3483289,9 -348328a,80 -348328b,40 -348328c,25 -348328d,29 -348328e,20 -348328f,1b -3483290,34 -3483291,a -3483293,ff -3483294,a1 -3483295,2a -3483298,3c -3483299,9 -348329a,80 -348329b,40 -348329c,25 -348329d,29 -348329e,20 -348329f,18 -34832a0,24 -34832a1,a -34832a2,ff -34832a3,ff -34832a4,34 -34832a5,c -34832a7,3 -34832a8,21 -34832a9,4a -34832ab,1 -34832ac,11 -34832ad,4c -34832af,14 -34832b0,1 -34832b1,2a -34832b2,58 -34832b3,20 -34832b4,81 -34832b5,68 -34832b8,11 -34832ba,ff -34832bb,fb -34832c0,3c -34832c1,9 -34832c2,80 -34832c3,40 -34832c4,25 -34832c5,29 -34832c6,20 -34832c7,1b -34832c8,a1 -34832c9,2a -34832cc,3c -34832cd,9 -34832ce,80 -34832cf,1e -34832d0,25 -34832d1,29 -34832d2,89 -34832d3,84 -34832d4,34 -34832d5,a -34832d7,1 -34832d8,a5 -34832d9,2a -34832dc,3c -34832dd,9 -34832de,80 -34832df,48 -34832e0,34 -34832e1,a -34832e3,1 -34832e4,ad -34832e5,2a -34832e6,1 -34832e7,30 -34832e8,3c -34832e9,a -34832ea,80 -34832eb,1e -34832ec,25 -34832ed,4a -34832ee,aa -34832ef,30 -34832f0,a1 -34832f1,48 -34832f2,4 -34832f3,24 -34832f4,ad -34832f5,49 -34832f6,4 -34832f7,28 -34832f8,c -34832f9,10 -34832fa,a -34832fb,e8 -3483300,8f -3483301,a3 -3483303,10 -3483304,8f -3483305,bf -3483307,14 -3483308,27 -3483309,bd -348330b,18 -348330c,8f -348330d,a4 -348330f,68 -3483310,8f -3483311,a5 -3483313,6c -3483314,8f -3483315,a6 -3483317,70 -3483318,8f -3483319,a7 -348331b,74 -348331c,84 -348331d,6e -348331e,13 -348331f,c4 -3483320,3 -3483321,e0 -3483323,8 -3483328,93 -3483329,19 -348332b,74 -348332c,34 -348332d,1 -348332f,ff -3483330,17 -3483331,21 -3483333,2 -3483338,34 -3483339,19 -348333b,2c -348333c,3 -348333d,e0 -348333f,8 -3483340,a7 -3483341,b9 -3483343,9a -3483344,93 -3483345,2c -3483347,74 -3483348,34 -3483349,1 -348334b,ff -348334c,15 -348334d,81 -348334f,2 -3483354,34 -3483355,c -3483357,2c -3483358,3 -3483359,e0 -348335b,8 -3483360,91 -3483361,ae -3483363,74 -3483364,34 -3483365,1 -3483367,ff -3483368,15 -3483369,c1 -348336b,2 -3483370,34 -3483371,e -3483373,2c -3483374,3 -3483375,e0 -3483377,8 -3483378,a7 -3483379,ae -348337b,9a -348337c,91 -348337d,cf -348337f,74 -3483380,34 -3483381,1 -3483383,ff -3483384,15 -3483385,e1 -3483387,2 -348338c,34 -348338d,f -348338f,2c -3483390,3 -3483391,e0 -3483393,8 -3483394,a7 -3483395,af -3483397,9a -3483398,3c -3483399,8 -348339a,80 -348339b,40 -348339c,25 -348339d,8 -348339e,20 -348339f,1c -34833a0,8e -34833a1,9 -34833a3,68 -34833a4,ad -34833a5,9 -34833a8,8e -34833a9,9 -34833ab,6c -34833ac,ad -34833ad,9 -34833af,4 -34833b0,96 -34833b1,9 -34833b3,70 -34833b4,a5 -34833b5,9 -34833b7,8 -34833b8,96 -34833b9,9 -34833bb,9c -34833bc,a5 -34833bd,9 -34833bf,a -34833c0,3 -34833c1,e0 -34833c3,8 -34833c4,8e -34833c5,e -34833c7,4 -34833c8,27 -34833c9,bd -34833ca,ff -34833cb,e0 -34833cc,af -34833cd,b0 -34833cf,10 -34833d0,af -34833d1,b1 -34833d3,14 -34833d4,af -34833d5,bf -34833d7,18 -34833d8,3c -34833d9,10 -34833da,80 -34833db,12 -34833dc,26 -34833dd,10 -34833de,a5 -34833df,d0 -34833e0,3c -34833e1,11 -34833e2,80 -34833e3,40 -34833e4,26 -34833e5,31 -34833e6,20 -34833e7,1c -34833e8,8e -34833e9,8 -34833eb,4 -34833ec,11 -34833ef,5 -34833f4,c -34833f5,10 -34833f6,d -34833f7,1c -34833fc,10 -34833ff,3 -3483404,c -3483405,10 -3483406,d -3483407,2f -348340c,c -348340d,10 -348340e,d -348340f,f -3483410,34 -3483411,4 -3483414,c -3483415,10 -3483416,d -3483417,f -3483418,34 -3483419,4 -348341b,1 -348341c,c -348341d,10 -348341e,d -348341f,f -3483420,34 -3483421,4 -3483423,2 -3483424,8f -3483425,b0 -3483427,10 -3483428,8f -3483429,b1 -348342b,14 -348342c,8f -348342d,bf -348342f,18 -3483430,27 -3483431,bd -3483433,20 -3483434,3 -3483435,e0 -3483437,8 -348343c,2 -348343d,4 -348343e,40 -348343f,21 -3483440,91 -3483441,9 -3483443,6c -3483444,34 -3483445,1 -3483447,ff -3483448,11 -3483449,21 -348344b,7 -3483450,2 -3483451,9 -3483452,48 -3483453,21 -3483454,91 -3483455,29 -3483457,74 -3483458,34 -3483459,1 -348345b,2c -348345c,11 -348345d,21 -348345f,2 -3483464,a1 -3483465,9 -3483467,69 -3483468,3 -3483469,e0 -348346b,8 -3483470,27 -3483471,bd -3483472,ff -3483473,e8 -3483474,af -3483475,bf -3483477,10 -3483478,8e -3483479,28 -348347c,ae -348347d,8 -348347f,40 -3483480,8e -3483481,28 -3483483,4 -3483484,ae -3483485,8 -3483487,44 -3483488,96 -3483489,28 -348348b,8 -348348c,a6 -348348d,8 -348348f,48 -3483490,a2 -3483492,f -3483493,33 -3483494,92 -3483495,8 -3483497,4a -3483498,34 -3483499,1 -348349b,ff -348349c,15 -348349d,1 -348349f,3 -34834a4,c -34834a5,10 -34834a6,d -34834a7,3d -34834ac,8f -34834ad,bf -34834af,10 -34834b0,27 -34834b1,bd -34834b3,18 -34834b4,3 -34834b5,e0 -34834b7,8 -34834bc,8e -34834bd,8 -34834bf,40 -34834c0,ae -34834c1,8 -34834c3,68 -34834c4,8e -34834c5,8 -34834c7,44 -34834c8,ae -34834c9,8 -34834cb,6c -34834cc,96 -34834cd,8 -34834cf,48 -34834d0,a6 -34834d1,8 -34834d3,70 -34834d4,92 -34834d5,8 -34834d7,68 -34834d8,34 -34834d9,1 -34834db,ff -34834dc,15 -34834dd,1 -34834df,3 -34834e4,34 -34834e5,8 -34834e7,1 -34834e8,a2 -34834e9,8 -34834ea,f -34834eb,33 -34834ec,3 -34834ed,e0 -34834ef,8 -34834f4,27 -34834f5,bd -34834f6,ff -34834f7,e8 -34834f8,af -34834f9,bf -34834fb,10 -34834fc,96 -34834fd,8 -34834ff,9c -3483500,31 -3483501,8 -3483503,40 -3483504,11 -3483507,5 -348350c,96 -348350d,8 -348350f,70 -3483510,31 -3483511,8 -3483512,ff -3483513,f -3483514,35 -3483515,8 -3483517,30 -3483518,a6 -3483519,8 -348351b,70 -348351c,92 -348351d,28 -348351f,1 -3483520,a2 -3483521,8 -3483523,69 -3483524,96 -3483525,28 -3483527,2 -3483528,a6 -3483529,8 -348352b,6a -348352c,8e -348352d,28 -348352f,4 -3483530,ae -3483531,8 -3483533,6c -3483534,c -3483535,10 -3483536,d -3483537,57 -3483538,34 -3483539,4 -348353c,c -348353d,10 -348353e,d -348353f,57 -3483540,34 -3483541,4 -3483543,1 -3483544,c -3483545,10 -3483546,d -3483547,57 -3483548,34 -3483549,4 -348354b,2 -348354c,8f -348354d,bf -348354f,10 -3483550,27 -3483551,bd -3483553,18 -3483554,3 -3483555,e0 -3483557,8 -348355c,2 -348355d,4 -348355e,40 -348355f,21 -3483560,3c -3483561,9 -3483562,80 -3483563,40 -3483564,25 -3483565,29 -3483566,36 -3483567,8 -3483568,91 -3483569,a -348356b,6c -348356c,34 -348356d,1 -348356f,ff -3483570,11 -3483571,41 -3483573,5 -3483578,1 -3483579,2a -348357a,48 -348357b,21 -348357c,91 -348357d,29 -3483580,15 -3483581,20 -3483583,1c -3483588,3c -3483589,9 -348358a,80 -348358b,40 -348358c,25 -348358d,29 -348358e,35 -348358f,fb -3483590,25 -3483591,29 -3483593,1 -3483594,91 -3483595,2a -3483598,11 -3483599,40 -348359b,13 -34835a0,2 -34835a1,a -34835a2,58 -34835a3,21 -34835a4,91 -34835a5,6b -34835a7,74 -34835a8,34 -34835a9,1 -34835ab,ff -34835ac,11 -34835ad,61 -34835ae,ff -34835af,f8 -34835b4,92 -34835b5,c -34835b7,6c -34835b8,11 -34835b9,8a -34835ba,ff -34835bb,f5 -34835c0,92 -34835c1,c -34835c3,6d -34835c4,11 -34835c5,8a -34835c6,ff -34835c7,f2 -34835cc,92 -34835cd,c -34835cf,6e -34835d0,11 -34835d1,8a -34835d2,ff -34835d3,ef -34835d8,a1 -34835d9,b -34835db,69 -34835dc,a1 -34835dd,a -34835df,6c -34835e0,10 -34835e3,4 -34835e8,34 -34835e9,9 -34835eb,ff -34835ec,a1 -34835ed,9 -34835ef,69 -34835f0,a1 -34835f1,9 -34835f3,6c -34835f4,3 -34835f5,e0 -34835f7,8 -34835fc,7 -34835fd,9 -34835fe,f -34835ff,2 -3483600,3 -3483601,1 -3483602,d -3483603,b -3483609,1 -348360a,1 -348360b,1 -348360c,1 -348360d,1 -348360f,1 -3483610,1 -3483611,1 -3483612,1 -3483613,1 -3483615,1 -3483617,1 -3483618,1 -3483619,1 -348361a,1 -348361b,1 -348361c,1 -348361d,1 -348361e,1 -3483621,33 -3483622,8 -3483623,21 -3483624,20 -3483625,f -3483627,47 -3483628,15 -3483629,ea -348362b,e -348362c,3c -348362d,2 -348362e,80 -348362f,12 -3483630,8c -3483631,42 -3483632,a5 -3483633,d4 -3483634,8e -3483635,6f -3483637,a4 -3483639,f -348363a,7a -348363b,3 -348363c,14 -348363d,40 -348363f,5 -3483640,34 -3483641,2 -3483642,48 -3483643,30 -3483644,15 -3483645,e2 -3483647,7 -348364c,24 -348364d,19 -348364f,3 -3483650,10 -3483653,4 -3483654,34 -3483655,2 -3483656,63 -3483657,11 -3483658,15 -3483659,e2 -348365b,2 -3483660,24 -3483661,19 -3483663,3 -3483664,3 -3483665,e0 -3483667,8 -348366c,8d -348366d,ad -348366e,8a -348366f,a0 -3483670,34 -3483671,2 -3483672,80 -3483674,10 -3483675,4d -3483677,2 -348367c,10 -348367f,9 -3483680,3c -3483681,f -3483682,80 -3483683,1e -3483684,25 -3483685,ef -3483686,84 -3483687,a0 -3483688,81 -3483689,e2 -348368a,1c -348368b,bf -348368c,30 -348368d,42 -348368f,1 -3483690,10 -3483691,40 -3483693,2 -3483698,10 -348369b,2 -348369c,34 -348369d,2 -348369f,1 -34836a0,a1 -34836a1,e2 -34836a2,1c -34836a3,bf -34836a4,3 -34836a5,e0 -34836a7,8 -34836ad,33 -34836ae,8 -34836af,21 -34836b0,3c -34836b1,2 -34836b2,80 -34836b3,12 -34836b4,8c -34836b5,42 -34836b6,a5 -34836b7,d4 -34836b8,8e -34836b9,6f -34836bb,a4 -34836bd,f -34836be,7a -34836bf,3 -34836c0,14 -34836c1,40 -34836c3,5 -34836c4,34 -34836c5,2 -34836c6,48 -34836c7,30 -34836c8,15 -34836c9,e2 -34836cb,7 -34836d0,24 -34836d1,19 -34836d3,3 -34836d4,10 -34836d7,4 -34836d8,34 -34836d9,2 -34836da,63 -34836db,11 -34836dc,15 -34836dd,e2 -34836df,2 -34836e4,24 -34836e5,19 -34836e7,3 -34836e8,3 -34836e9,e0 -34836eb,8 -34836f0,34 -34836f1,1 -34836f3,18 -34836f4,14 -34836f5,81 -34836f7,11 -34836fc,14 -34836fd,40 -34836ff,f -3483704,3c -3483705,a -3483706,80 -3483707,12 -3483708,25 -3483709,4a -348370a,a5 -348370b,d0 -348370c,81 -348370d,48 -348370f,a6 -3483710,31 -3483711,8 -3483713,20 -3483714,11 -3483717,9 -3483718,34 -3483719,2 -348371c,34 -348371d,2 -348371f,1 -3483720,81 -3483721,48 -3483723,7b -3483724,34 -3483725,9 -3483727,7 -3483728,11 -3483729,9 -348372b,4 -348372c,34 -348372d,a -348372f,8 -3483730,11 -3483731,a -3483733,2 -3483738,34 -3483739,2 -348373c,3 -348373d,e0 -348373f,8 -3483744,a2 -3483745,25 -3483747,21 -3483748,3c -3483749,10 -348374a,80 -348374b,40 -348374c,26 -348374d,10 -348374e,17 -348374f,fc -3483750,26 -3483751,10 -3483753,4 -3483754,8e -3483755,a -3483758,11 -3483759,40 -348375b,b -3483761,a -3483762,7c -3483763,2 -3483764,1 -3483765,f1 -3483766,78 -3483767,20 -3483768,31 -3483769,58 -348376a,ff -348376d,18 -348376e,c2 -348376f,2 -3483770,17 -3483773,3 -3483774,31 -3483775,59 -3483777,ff -3483778,81 -3483779,ea -348377c,3 -348377d,2a -348377e,c8 -348377f,25 -3483780,8 -3483781,10 -3483782,d -3483783,d4 -3483784,a1 -3483785,f9 -3483788,3 -3483789,e0 -348378b,8 -34b3000,ac -34b3001,86 -34b3004,ac -34b3005,85 -34b3007,4 -34b3008,ac -34b3009,85 -34b300b,8 -34b300d,a6 -34b300e,28 -34b300f,21 -34b3010,3 -34b3011,e0 -34b3013,8 -34b3014,ac -34b3015,85 -34b3017,c -34b3018,94 -34b3019,82 -34b301b,4 -34b301c,94 -34b301d,83 -34b301f,6 -34b3021,43 -34b3023,18 -34b3026,10 -34b3027,12 -34b3028,90 -34b3029,83 -34b302b,c -34b3031,43 -34b3033,18 -34b3036,10 -34b3037,12 -34b3038,3 -34b3039,e0 -34b303b,8 -34b3040,27 -34b3041,bd -34b3042,ff -34b3043,e8 -34b3044,af -34b3045,bf -34b3047,14 -34b3048,af -34b3049,b0 -34b304b,10 -34b304c,c -34b304d,10 -34b304e,14 -34b304f,6 -34b3051,80 -34b3052,80 -34b3053,25 -34b3054,96 -34b3055,3 -34b3057,8 -34b3059,62 -34b305b,18 -34b305e,10 -34b305f,12 -34b3060,8f -34b3061,bf -34b3063,14 -34b3064,8f -34b3065,b0 -34b3067,10 -34b3068,3 -34b3069,e0 -34b306b,8 -34b306c,27 -34b306d,bd -34b306f,18 -34b3070,27 -34b3071,bd -34b3072,ff -34b3073,90 -34b3074,af -34b3075,bf -34b3077,6c -34b3078,af -34b3079,b7 -34b307b,68 -34b307c,af -34b307d,b6 -34b307f,64 -34b3080,af -34b3081,b5 -34b3083,60 -34b3084,af -34b3085,b4 -34b3087,5c -34b3088,af -34b3089,b3 -34b308b,58 -34b308c,af -34b308d,b2 -34b308f,54 -34b3090,af -34b3091,b1 -34b3093,50 -34b3094,af -34b3095,b0 -34b3097,4c -34b3099,80 -34b309a,80 -34b309b,25 -34b309d,a0 -34b309e,a8 -34b309f,25 -34b30a1,c0 -34b30a2,b8 -34b30a3,25 -34b30a5,e0 -34b30a6,b0 -34b30a7,25 -34b30a8,90 -34b30a9,b2 -34b30ab,a -34b30ad,12 -34b30ae,95 -34b30af,40 -34b30b0,3c -34b30b1,2 -34b30b3,e0 -34b30b4,2 -34b30b5,42 -34b30b6,90 -34b30b7,24 -34b30b8,90 -34b30b9,b1 -34b30bb,b -34b30bc,2e -34b30bd,22 -34b30bf,2 -34b30c0,10 -34b30c1,40 -34b30c3,2 -34b30c4,2 -34b30c5,20 -34b30c6,98 -34b30c7,25 -34b30c8,24 -34b30c9,13 -34b30cb,2 -34b30cc,32 -34b30cd,73 -34b30cf,ff -34b30d1,13 -34b30d2,a4 -34b30d3,c0 -34b30d4,3c -34b30d5,2 -34b30d7,18 -34b30d8,2 -34b30d9,82 -34b30da,a0 -34b30db,24 -34b30dc,2 -34b30dd,92 -34b30de,a0 -34b30df,25 -34b30e0,3c -34b30e1,2 -34b30e2,fd -34b30e4,2 -34b30e5,82 -34b30e6,10 -34b30e7,25 -34b30e8,af -34b30e9,a2 -34b30eb,10 -34b30ec,c -34b30ed,10 -34b30ee,14 -34b30ef,6 -34b30f0,2 -34b30f1,a0 -34b30f2,20 -34b30f3,25 -34b30f5,57 -34b30f7,18 -34b30fa,10 -34b30fb,12 -34b30fc,8e -34b30fd,a3 -34b3101,62 -34b3102,18 -34b3103,21 -34b3104,af -34b3105,a3 -34b3107,14 -34b3108,3c -34b3109,2 -34b310a,f5 -34b310c,2 -34b310d,82 -34b310e,a0 -34b310f,25 -34b3110,af -34b3111,b4 -34b3113,18 -34b3114,3c -34b3115,2 -34b3116,7 -34b3118,af -34b3119,a2 -34b311b,1c -34b311c,3c -34b311d,2 -34b311e,e6 -34b3120,af -34b3121,a2 -34b3123,20 -34b3124,af -34b3125,a0 -34b3127,24 -34b3128,3c -34b3129,2 -34b312a,f3 -34b312c,af -34b312d,a2 -34b312f,28 -34b3130,96 -34b3131,a3 -34b3133,4 -34b3134,96 -34b3135,a7 -34b3137,6 -34b3139,f6 -34b313b,18 -34b313e,38 -34b313f,12 -34b3140,24 -34b3141,5 -34b3143,4 -34b3144,2 -34b3145,25 -34b3146,20 -34b3147,4 -34b3149,67 -34b314b,18 -34b314e,10 -34b314f,12 -34b3150,24 -34b3151,42 -34b3153,1 -34b3159,44 -34b315b,18 -34b315e,10 -34b315f,12 -34b3160,24 -34b3161,42 -34b3162,ff -34b3163,ff -34b3164,2 -34b3165,65 -34b3166,98 -34b3167,4 -34b3169,53 -34b316b,1a -34b316c,2 -34b316d,60 -34b316e,1 -34b316f,f4 -34b3172,10 -34b3173,12 -34b3174,24 -34b3175,42 -34b3176,ff -34b3177,ff -34b3179,2 -34b317a,13 -34b317c,3c -34b317d,5 -34b317f,ff -34b3180,34 -34b3181,a5 -34b3182,f0 -34b3185,45 -34b3186,10 -34b3187,24 -34b3189,64 -34b318b,18 -34b318e,40 -34b318f,12 -34b3190,29 -34b3191,5 -34b3193,41 -34b3194,14 -34b3195,a0 -34b3197,a -34b3198,24 -34b3199,6 -34b319a,8 -34b319d,8 -34b319e,2f -34b319f,c3 -34b31a0,30 -34b31a1,a5 -34b31a3,3f -34b31a5,a8 -34b31a6,28 -34b31a7,21 -34b31a9,5 -34b31aa,29 -34b31ab,83 -34b31ac,24 -34b31ad,a6 -34b31ae,7 -34b31af,ff -34b31b1,c5 -34b31b3,1a -34b31b5,a0 -34b31b6,1 -34b31b7,f4 -34b31ba,30 -34b31bb,12 -34b31bc,30 -34b31bd,c6 -34b31be,f -34b31bf,ff -34b31c1,46 -34b31c2,10 -34b31c3,25 -34b31c4,3c -34b31c5,5 -34b31c6,7 -34b31c9,45 -34b31ca,10 -34b31cb,25 -34b31cc,af -34b31cd,a2 -34b31cf,2c -34b31d0,3c -34b31d1,2 -34b31d2,e7 -34b31d4,af -34b31d5,a2 -34b31d7,30 -34b31d8,af -34b31d9,a0 -34b31db,34 -34b31dd,11 -34b31de,14 -34b31df,c0 -34b31e0,3c -34b31e1,5 -34b31e3,18 -34b31e5,45 -34b31e6,10 -34b31e7,24 -34b31e8,2e -34b31e9,31 -34b31eb,2 -34b31ec,16 -34b31ed,20 -34b31ef,2 -34b31f1,52 -34b31f2,10 -34b31f3,25 -34b31f4,24 -34b31f5,4 -34b31f7,10 -34b31f9,64 -34b31fb,18 -34b31fe,20 -34b31ff,12 -34b3200,24 -34b3201,84 -34b3203,3f -34b3205,4 -34b3206,97 -34b3207,c3 -34b3208,32 -34b3209,52 -34b320b,3f -34b320c,2 -34b320d,44 -34b320e,90 -34b320f,21 -34b3211,12 -34b3212,90 -34b3213,c0 -34b3214,3c -34b3215,4 -34b3217,3 -34b3218,34 -34b3219,84 -34b321a,fe -34b321c,2 -34b321d,44 -34b321e,90 -34b321f,24 -34b3220,2 -34b3221,42 -34b3222,90 -34b3223,25 -34b3224,3c -34b3225,2 -34b3226,f5 -34b3228,2 -34b3229,42 -34b322a,90 -34b322b,25 -34b322c,af -34b322d,b2 -34b322f,38 -34b3230,af -34b3231,a0 -34b3233,3c -34b3234,3c -34b3235,2 -34b3236,f2 -34b3238,af -34b3239,a2 -34b323b,40 -34b323c,24 -34b323d,62 -34b323e,3f -34b323f,ff -34b3241,2 -34b3242,13 -34b3243,80 -34b3244,3c -34b3245,3 -34b3247,ff -34b3248,34 -34b3249,63 -34b324a,f0 -34b324d,43 -34b324e,10 -34b324f,24 -34b3250,24 -34b3251,e7 -34b3252,ff -34b3253,ff -34b3255,7 -34b3256,38 -34b3257,80 -34b3258,30 -34b3259,e7 -34b325a,f -34b325b,fc -34b325d,47 -34b325e,10 -34b325f,25 -34b3260,af -34b3261,a2 -34b3263,44 -34b3264,27 -34b3265,a2 -34b3267,10 -34b3268,27 -34b3269,a6 -34b326b,48 -34b326c,8e -34b326d,3 -34b326f,8 -34b3270,24 -34b3271,64 -34b3273,8 -34b3274,ae -34b3275,4 -34b3277,8 -34b3278,8c -34b3279,45 -34b327b,4 -34b327c,8c -34b327d,44 -34b3280,ac -34b3281,65 -34b3283,4 -34b3284,24 -34b3285,42 -34b3287,8 -34b3288,14 -34b3289,46 -34b328a,ff -34b328b,f8 -34b328c,ac -34b328d,64 -34b3290,8f -34b3291,bf -34b3293,6c -34b3294,8f -34b3295,b7 -34b3297,68 -34b3298,8f -34b3299,b6 -34b329b,64 -34b329c,8f -34b329d,b5 -34b329f,60 -34b32a0,8f -34b32a1,b4 -34b32a3,5c -34b32a4,8f -34b32a5,b3 -34b32a7,58 -34b32a8,8f -34b32a9,b2 -34b32ab,54 -34b32ac,8f -34b32ad,b1 -34b32af,50 -34b32b0,8f -34b32b1,b0 -34b32b3,4c -34b32b4,3 -34b32b5,e0 -34b32b7,8 -34b32b8,27 -34b32b9,bd -34b32bb,70 -34b32bc,27 -34b32bd,bd -34b32be,ff -34b32bf,e8 -34b32c0,8f -34b32c1,a8 -34b32c3,28 -34b32c4,8f -34b32c5,a2 -34b32c7,2c -34b32c8,8f -34b32c9,aa -34b32cb,30 -34b32cc,94 -34b32cd,a9 -34b32cf,4 -34b32d1,9 -34b32d2,4a -34b32d3,80 -34b32d4,1 -34b32d5,22 -34b32d7,1a -34b32d9,40 -34b32da,1 -34b32db,f4 -34b32de,48 -34b32df,12 -34b32e0,94 -34b32e1,a3 -34b32e3,6 -34b32e5,47 -34b32e6,10 -34b32e7,21 -34b32e9,2 -34b32ea,13 -34b32eb,80 -34b32ec,3c -34b32ed,b -34b32ef,ff -34b32f0,35 -34b32f1,6b -34b32f2,f0 -34b32f5,4b -34b32f6,10 -34b32f7,24 -34b32f8,1 -34b32f9,48 -34b32fa,28 -34b32fb,21 -34b32fd,5 -34b32fe,28 -34b32ff,80 -34b3300,30 -34b3301,a5 -34b3302,f -34b3303,ff -34b3305,45 -34b3306,10 -34b3307,25 -34b3308,3c -34b3309,5 -34b330a,e4 -34b330d,45 -34b330e,10 -34b330f,25 -34b3310,af -34b3311,a2 -34b3315,7 -34b3316,3b -34b3317,80 -34b3319,eb -34b331a,38 -34b331b,24 -34b331d,8 -34b331e,40 -34b331f,80 -34b3320,31 -34b3321,8 -34b3322,f -34b3323,ff -34b3325,e8 -34b3326,38 -34b3327,25 -34b3328,af -34b3329,a7 -34b332b,4 -34b332c,3c -34b332d,2 -34b332e,e1 -34b3330,af -34b3331,a2 -34b3333,8 -34b3335,66 -34b3337,18 -34b333a,30 -34b333b,12 -34b333d,6 -34b333e,31 -34b333f,40 -34b3340,30 -34b3341,c6 -34b3342,ff -34b3343,ff -34b3344,af -34b3345,a6 -34b3347,c -34b3348,3c -34b3349,2 -34b334a,f1 -34b334c,af -34b334d,a2 -34b334f,10 -34b3351,3 -34b3352,1a -34b3353,80 -34b3355,6a -34b3357,1a -34b3358,1 -34b3359,40 -34b335a,1 -34b335b,f4 -34b335e,18 -34b335f,12 -34b3360,30 -34b3361,63 -34b3362,ff -34b3363,ff -34b3365,9 -34b3366,4c -34b3369,69 -34b336a,18 -34b336b,25 -34b336c,af -34b336d,a3 -34b336f,14 -34b3370,3 -34b3371,a0 -34b3372,10 -34b3373,25 -34b3374,27 -34b3375,a8 -34b3377,18 -34b3378,8c -34b3379,83 -34b337b,8 -34b337c,24 -34b337d,65 -34b337f,8 -34b3380,ac -34b3381,85 -34b3383,8 -34b3384,8c -34b3385,47 -34b3387,4 -34b3388,8c -34b3389,46 -34b338c,ac -34b338d,67 -34b338f,4 -34b3390,24 -34b3391,42 -34b3393,8 -34b3394,14 -34b3395,48 -34b3396,ff -34b3397,f8 -34b3398,ac -34b3399,66 -34b339c,3 -34b339d,e0 -34b339f,8 -34b33a0,27 -34b33a1,bd -34b33a3,18 -34b33a4,8c -34b33a5,82 -34b33a7,8 -34b33a8,24 -34b33a9,43 -34b33ab,8 -34b33ac,ac -34b33ad,83 -34b33af,8 -34b33b0,3c -34b33b1,3 -34b33b2,e7 -34b33b4,ac -34b33b5,43 -34b33b8,ac -34b33b9,40 -34b33bb,4 -34b33bc,8c -34b33bd,82 -34b33bf,8 -34b33c0,24 -34b33c1,43 -34b33c3,8 -34b33c4,ac -34b33c5,83 -34b33c7,8 -34b33c8,3c -34b33c9,3 -34b33ca,d9 -34b33cc,ac -34b33cd,43 -34b33d0,ac -34b33d1,40 -34b33d3,4 -34b33d4,8c -34b33d5,82 -34b33d7,8 -34b33d8,24 -34b33d9,43 -34b33db,8 -34b33dc,ac -34b33dd,83 -34b33df,8 -34b33e0,3c -34b33e1,3 -34b33e2,ed -34b33e4,ac -34b33e5,43 -34b33e8,3c -34b33e9,5 -34b33eb,50 -34b33ec,24 -34b33ed,a3 -34b33ee,3 -34b33ef,c0 -34b33f0,ac -34b33f1,43 -34b33f3,4 -34b33f4,8c -34b33f5,83 -34b33f7,8 -34b33f8,24 -34b33f9,62 -34b33fb,8 -34b33fc,ac -34b33fd,82 -34b33ff,8 -34b3400,3c -34b3401,2 -34b3402,e3 -34b3404,24 -34b3405,46 -34b3406,1a -34b3407,1 -34b3408,ac -34b3409,66 -34b340c,24 -34b340d,6 -34b340f,30 -34b3410,ac -34b3411,66 -34b3413,4 -34b3414,8c -34b3415,83 -34b3417,8 -34b3418,24 -34b3419,66 -34b341b,8 -34b341c,ac -34b341d,86 -34b341f,8 -34b3420,24 -34b3421,46 -34b3422,18 -34b3423,1 -34b3424,ac -34b3425,66 -34b3428,24 -34b3429,6 -34b342b,c0 -34b342c,ac -34b342d,66 -34b342f,4 -34b3430,8c -34b3431,86 -34b3433,8 -34b3434,24 -34b3435,c3 -34b3437,8 -34b3438,ac -34b3439,83 -34b343b,8 -34b343c,3c -34b343d,3 -34b343e,e2 -34b3440,24 -34b3441,67 -34b3442,1e -34b3443,1 -34b3444,ac -34b3445,c7 -34b3448,ac -34b3449,c0 -34b344b,4 -34b344c,8c -34b344d,86 -34b344f,8 -34b3450,24 -34b3451,c7 -34b3453,8 -34b3454,ac -34b3455,87 -34b3457,8 -34b3458,24 -34b3459,67 -34b345a,1d -34b345c,ac -34b345d,c7 -34b3460,24 -34b3461,7 -34b3463,4 -34b3464,ac -34b3465,c7 -34b3467,4 -34b3468,8c -34b3469,86 -34b346b,8 -34b346c,24 -34b346d,c7 -34b346f,8 -34b3470,ac -34b3471,87 -34b3473,8 -34b3474,24 -34b3475,47 -34b3476,17 -34b3478,ac -34b3479,c7 -34b347c,ac -34b347d,c0 -34b347f,4 -34b3480,8c -34b3481,86 -34b3483,8 -34b3484,24 -34b3485,c7 -34b3487,8 -34b3488,ac -34b3489,87 -34b348b,8 -34b348c,24 -34b348d,47 -34b348e,14 -34b348f,2 -34b3490,ac -34b3491,c7 -34b3494,24 -34b3495,7 -34b3496,c -34b3498,ac -34b3499,c7 -34b349b,4 -34b349c,8c -34b349d,86 -34b349f,8 -34b34a0,24 -34b34a1,c7 -34b34a3,8 -34b34a4,ac -34b34a5,87 -34b34a7,8 -34b34a8,24 -34b34a9,47 -34b34aa,d -34b34ab,1 -34b34ac,ac -34b34ad,c7 -34b34b0,ac -34b34b1,c0 -34b34b3,4 -34b34b4,8c -34b34b5,86 -34b34b7,8 -34b34b8,24 -34b34b9,c7 -34b34bb,8 -34b34bc,ac -34b34bd,87 -34b34bf,8 -34b34c0,24 -34b34c1,47 -34b34c2,c -34b34c4,ac -34b34c5,c7 -34b34c8,ac -34b34c9,c0 -34b34cb,4 -34b34cc,8c -34b34cd,86 -34b34cf,8 -34b34d0,24 -34b34d1,c7 -34b34d3,8 -34b34d4,ac -34b34d5,87 -34b34d7,8 -34b34d8,24 -34b34d9,47 -34b34da,f -34b34dc,ac -34b34dd,c7 -34b34e0,ac -34b34e1,c0 -34b34e3,4 -34b34e4,8c -34b34e5,86 -34b34e7,8 -34b34e8,24 -34b34e9,c7 -34b34eb,8 -34b34ec,ac -34b34ed,87 -34b34ef,8 -34b34f0,24 -34b34f1,47 -34b34f2,10 -34b34f3,1 -34b34f4,ac -34b34f5,c7 -34b34f8,ac -34b34f9,c0 -34b34fb,4 -34b34fc,8c -34b34fd,86 -34b34ff,8 -34b3500,24 -34b3501,c7 -34b3503,8 -34b3504,ac -34b3505,87 -34b3507,8 -34b3508,24 -34b3509,47 -34b350a,8 -34b350c,ac -34b350d,c7 -34b3510,ac -34b3511,c0 -34b3513,4 -34b3514,8c -34b3515,86 -34b3517,8 -34b3518,24 -34b3519,c7 -34b351b,8 -34b351c,ac -34b351d,87 -34b351f,8 -34b3520,24 -34b3521,47 -34b3522,a -34b3523,1 -34b3524,ac -34b3525,c7 -34b3528,ac -34b3529,c0 -34b352b,4 -34b352c,8c -34b352d,86 -34b352f,8 -34b3530,24 -34b3531,c7 -34b3533,8 -34b3534,ac -34b3535,87 -34b3537,8 -34b3538,24 -34b3539,63 -34b353b,1c -34b353c,ac -34b353d,c3 -34b3540,24 -34b3541,a5 -34b3542,42 -34b3543,40 -34b3544,ac -34b3545,c5 -34b3547,4 -34b3548,8c -34b3549,83 -34b354b,8 -34b354c,24 -34b354d,65 -34b354f,8 -34b3550,ac -34b3551,85 -34b3553,8 -34b3554,24 -34b3555,42 -34b3556,12 -34b3557,1 -34b3558,ac -34b3559,62 -34b355c,24 -34b355d,2 -34b355e,20 -34b3560,ac -34b3561,62 -34b3563,4 -34b3564,8c -34b3565,82 -34b3567,8 -34b3568,24 -34b3569,43 -34b356b,8 -34b356c,ac -34b356d,83 -34b356f,8 -34b3570,3c -34b3571,3 -34b3572,df -34b3574,ac -34b3575,43 -34b3578,3 -34b3579,e0 -34b357b,8 -34b357c,ac -34b357d,40 -34b357f,4 -34b3580,27 -34b3581,bd -34b3582,ff -34b3583,c8 -34b3584,af -34b3585,bf -34b3587,34 -34b3588,af -34b3589,b1 -34b358b,30 -34b358c,af -34b358d,b0 -34b358f,2c -34b3590,af -34b3591,a0 -34b3593,10 -34b3594,3c -34b3595,2 -34b3596,1 -34b3597,a0 -34b3598,24 -34b3599,42 -34b359a,20 -34b359c,af -34b359d,a2 -34b359f,14 -34b35a0,3c -34b35a1,10 -34b35a3,3 -34b35a4,36 -34b35a5,2 -34b35a6,95 -34b35a7,c0 -34b35a8,af -34b35a9,a2 -34b35ab,18 -34b35ac,c -34b35ad,10 -34b35ae,15 -34b35af,c4 -34b35b0,27 -34b35b1,a4 -34b35b3,10 -34b35b4,af -34b35b5,a0 -34b35b7,1c -34b35b8,3c -34b35b9,2 -34b35bb,84 -34b35bc,24 -34b35bd,42 -34b35be,60 -34b35c0,af -34b35c1,a2 -34b35c3,20 -34b35c4,34 -34b35c5,2 -34b35c6,b4 -34b35c8,af -34b35c9,a2 -34b35cb,24 -34b35cc,c -34b35cd,10 -34b35ce,15 -34b35cf,c4 -34b35d0,27 -34b35d1,a4 -34b35d3,1c -34b35d4,8f -34b35d5,a2 -34b35d7,10 -34b35d8,26 -34b35d9,10 -34b35da,a3 -34b35dd,50 -34b35de,80 -34b35df,21 -34b35e0,3c -34b35e1,3 -34b35e2,80 -34b35e3,40 -34b35e4,ac -34b35e5,70 -34b35e6,63 -34b35e7,f8 -34b35e8,24 -34b35e9,42 -34b35ea,29 -34b35eb,80 -34b35ec,3c -34b35ed,3 -34b35ee,80 -34b35ef,40 -34b35f0,ac -34b35f1,62 -34b35f2,63 -34b35f3,e8 -34b35f4,3c -34b35f5,2 -34b35f6,80 -34b35f7,40 -34b35f8,8f -34b35f9,a3 -34b35fb,1c -34b35fc,ac -34b35fd,43 -34b35fe,63 -34b35ff,d8 -34b3600,3c -34b3601,11 -34b3602,80 -34b3603,40 -34b3604,c -34b3605,10 -34b3606,14 -34b3607,10 -34b3608,26 -34b3609,24 -34b360a,63 -34b360b,c8 -34b360d,40 -34b360e,80 -34b360f,25 -34b3610,c -34b3611,10 -34b3612,15 -34b3613,b7 -34b3615,40 -34b3616,20 -34b3617,25 -34b3619,10 -34b361a,4f -34b361b,c2 -34b361c,1 -34b361d,30 -34b361e,48 -34b361f,21 -34b3620,2a -34b3621,10 -34b3623,2 -34b3624,16 -34b3627,18 -34b3628,ae -34b3629,22 -34b362a,63 -34b362b,c8 -34b362d,9 -34b362e,48 -34b362f,43 -34b3630,3c -34b3631,3 -34b3632,80 -34b3633,40 -34b3634,24 -34b3635,63 -34b3636,65 -34b3637,6 -34b363a,20 -34b363b,25 -34b363e,30 -34b363f,25 -34b3640,2 -34b3641,20 -34b3642,40 -34b3643,25 -34b3644,24 -34b3645,7 -34b3646,ff -34b3647,f0 -34b3648,8d -34b3649,5 -34b364a,63 -34b364b,c8 -34b364d,a4 -34b364e,28 -34b364f,21 -34b3650,90 -34b3651,62 -34b3655,2 -34b3656,11 -34b3657,2 -34b3659,47 -34b365a,10 -34b365b,25 -34b365c,a0 -34b365d,a2 -34b3660,8d -34b3661,2 -34b3662,63 -34b3663,c8 -34b3665,44 -34b3666,10 -34b3667,21 -34b3668,90 -34b3669,65 -34b366d,a7 -34b366e,28 -34b366f,25 -34b3670,a0 -34b3671,45 -34b3673,1 -34b3674,24 -34b3675,c6 -34b3677,1 -34b3678,24 -34b3679,63 -34b367b,1 -34b367d,c9 -34b367e,10 -34b367f,2a -34b3680,14 -34b3681,40 -34b3682,ff -34b3683,f1 -34b3684,24 -34b3685,84 -34b3687,2 -34b3688,c -34b3689,10 -34b368a,15 -34b368b,b7 -34b368c,24 -34b368d,4 -34b368e,1 -34b3690,3c -34b3691,4 -34b3692,80 -34b3693,40 -34b3694,24 -34b3695,3 -34b3696,1 -34b3698,ac -34b3699,83 -34b369a,64 -34b369b,e8 -34b369c,24 -34b369d,84 -34b369e,64 -34b369f,e8 -34b36a0,ac -34b36a1,82 -34b36a3,4 -34b36a4,ac -34b36a5,82 -34b36a7,8 -34b36a8,24 -34b36a9,42 -34b36aa,1 -34b36ac,c -34b36ad,10 -34b36ae,14 -34b36af,e9 -34b36b0,ac -34b36b1,82 -34b36b3,c -34b36b4,8f -34b36b5,bf -34b36b7,34 -34b36b8,8f -34b36b9,b1 -34b36bb,30 -34b36bc,8f -34b36bd,b0 -34b36bf,2c -34b36c0,3 -34b36c1,e0 -34b36c3,8 -34b36c4,27 -34b36c5,bd -34b36c7,38 -34b36c8,3c -34b36c9,3 -34b36ca,80 -34b36cb,40 -34b36cc,3c -34b36cd,2 -34b36ce,80 -34b36cf,50 -34b36d0,24 -34b36d1,42 -34b36d4,3 -34b36d5,e0 -34b36d7,8 -34b36d8,ac -34b36d9,62 -34b36da,64 -34b36db,d0 -34b36dd,4 -34b36de,17 -34b36df,c3 -34b36e1,2 -34b36e2,1f -34b36e3,2 -34b36e5,83 -34b36e6,10 -34b36e7,21 -34b36e8,30 -34b36e9,42 -34b36eb,f -34b36ed,43 -34b36ee,10 -34b36ef,23 -34b36f0,10 -34b36f1,40 -34b36f3,3 -34b36f4,3c -34b36f5,3 -34b36f6,80 -34b36f7,40 -34b36f9,82 -34b36fa,20 -34b36fb,23 -34b36fc,24 -34b36fd,84 -34b36ff,10 -34b3700,8c -34b3701,62 -34b3702,64 -34b3703,d0 -34b3705,44 -34b3706,20 -34b3707,21 -34b3708,3 -34b3709,e0 -34b370b,8 -34b370c,ac -34b370d,64 -34b370e,64 -34b370f,d0 -34b3710,27 -34b3711,bd -34b3712,ff -34b3713,e8 -34b3714,af -34b3715,bf -34b3717,14 -34b3718,af -34b3719,b0 -34b371b,10 -34b371d,80 -34b371e,80 -34b371f,25 -34b3720,c -34b3721,10 -34b3722,15 -34b3723,b7 -34b3724,8c -34b3725,84 -34b3727,8 -34b3728,ae -34b3729,2 -34b372c,8e -34b372d,6 -34b372f,8 -34b3731,40 -34b3732,20 -34b3733,25 -34b3734,3c -34b3735,2 -34b3736,80 -34b3738,24 -34b3739,42 -34b373a,d -34b373b,f0 -34b373d,40 -34b373e,f8 -34b373f,9 -34b3740,8e -34b3741,5 -34b3743,4 -34b3744,8f -34b3745,bf -34b3747,14 -34b3748,8f -34b3749,b0 -34b374b,10 -34b374c,3 -34b374d,e0 -34b374f,8 -34b3750,27 -34b3751,bd -34b3753,18 -34b3754,27 -34b3755,bd -34b3756,ff -34b3757,e8 -34b3758,af -34b3759,bf -34b375b,14 -34b375c,c -34b375d,10 -34b375e,15 -34b375f,b2 -34b3764,c -34b3765,10 -34b3766,15 -34b3767,60 -34b376c,c -34b376d,10 -34b376e,18 -34b376f,68 -34b3774,8f -34b3775,bf -34b3777,14 -34b3778,3 -34b3779,e0 -34b377b,8 -34b377c,27 -34b377d,bd -34b377f,18 -34b3780,27 -34b3781,bd -34b3782,ff -34b3783,e0 -34b3784,af -34b3785,bf -34b3787,1c -34b3788,af -34b3789,b2 -34b378b,18 -34b378c,af -34b378d,b1 -34b378f,14 -34b3790,af -34b3791,b0 -34b3793,10 -34b3795,80 -34b3796,80 -34b3797,25 -34b3799,a0 -34b379a,88 -34b379b,25 -34b379c,3c -34b379d,2 -34b379e,80 -34b379f,1c -34b37a0,34 -34b37a1,42 -34b37a2,84 -34b37a3,a0 -34b37a4,3c -34b37a5,3 -34b37a7,1 -34b37a9,43 -34b37aa,10 -34b37ab,21 -34b37ac,94 -34b37ad,43 -34b37ae,9 -34b37af,34 -34b37b0,24 -34b37b1,2 -34b37b3,6 -34b37b4,14 -34b37b5,62 -34b37b7,15 -34b37b9,c0 -34b37ba,90 -34b37bb,25 -34b37bc,3c -34b37bd,2 -34b37be,80 -34b37bf,1c -34b37c0,34 -34b37c1,42 -34b37c2,84 -34b37c3,a0 -34b37c4,3c -34b37c5,3 -34b37c7,1 -34b37c9,43 -34b37ca,10 -34b37cb,21 -34b37cc,94 -34b37cd,42 -34b37ce,9 -34b37cf,48 -34b37d0,14 -34b37d1,40 -34b37d3,f -34b37d4,2 -34b37d5,40 -34b37d6,30 -34b37d7,25 -34b37d8,3c -34b37d9,2 -34b37da,80 -34b37db,1c -34b37dc,34 -34b37dd,42 -34b37de,84 -34b37df,a0 -34b37e1,43 -34b37e2,10 -34b37e3,21 -34b37e4,94 -34b37e5,42 -34b37e6,9 -34b37e7,44 -34b37e8,14 -34b37e9,40 -34b37eb,a -34b37ec,2 -34b37ed,20 -34b37ee,28 -34b37ef,25 -34b37f0,3c -34b37f1,2 -34b37f2,80 -34b37f3,1c -34b37f4,34 -34b37f5,42 -34b37f6,84 -34b37f7,a0 -34b37f8,84 -34b37f9,42 -34b37fb,14 -34b37fc,4 -34b37fd,41 -34b37ff,5 -34b3804,c -34b3805,10 -34b3806,16 -34b3807,d -34b380c,2 -34b380d,40 -34b380e,30 -34b380f,25 -34b3810,2 -34b3811,20 -34b3812,28 -34b3813,25 -34b3814,c -34b3815,10 -34b3816,14 -34b3818,2 -34b381a,20 -34b381b,25 -34b381c,8f -34b381d,bf -34b381f,1c -34b3820,8f -34b3821,b2 -34b3823,18 -34b3824,8f -34b3825,b1 -34b3827,14 -34b3828,8f -34b3829,b0 -34b382b,10 -34b382c,3 -34b382d,e0 -34b382f,8 -34b3830,27 -34b3831,bd -34b3833,20 -34b3834,3c -34b3835,2 -34b3836,80 -34b3837,40 -34b3838,8c -34b3839,42 -34b383a,64 -34b383b,c8 -34b383c,10 -34b383d,40 -34b383e,2 -34b383f,56 -34b3840,3c -34b3841,3 -34b3842,80 -34b3843,40 -34b3844,27 -34b3845,bd -34b3846,ff -34b3847,98 -34b3848,af -34b3849,bf -34b384b,64 -34b384c,af -34b384d,be -34b384f,60 -34b3850,af -34b3851,b7 -34b3853,5c -34b3854,af -34b3855,b6 -34b3857,58 -34b3858,af -34b3859,b5 -34b385b,54 -34b385c,af -34b385d,b4 -34b385f,50 -34b3860,af -34b3861,b3 -34b3863,4c -34b3864,af -34b3865,b2 -34b3867,48 -34b3868,af -34b3869,b1 -34b386b,44 -34b386c,af -34b386d,b0 -34b386f,40 -34b3870,8c -34b3871,82 -34b3873,4 -34b3874,8c -34b3875,63 -34b3876,64 -34b3877,ec -34b3878,24 -34b3879,45 -34b387b,8 -34b387c,ac -34b387d,85 -34b387f,8 -34b3880,3c -34b3881,5 -34b3882,de -34b3884,ac -34b3885,45 -34b3888,ac -34b3889,43 -34b388b,4 -34b388c,3c -34b388d,2 -34b388e,80 -34b388f,40 -34b3890,8c -34b3891,42 -34b3892,64 -34b3893,dc -34b3894,10 -34b3895,40 -34b3897,7 -34b389a,18 -34b389b,25 -34b389c,3c -34b389d,2 -34b389e,80 -34b389f,40 -34b38a0,94 -34b38a1,43 -34b38a2,63 -34b38a3,cc -34b38a5,3 -34b38a6,10 -34b38a7,40 -34b38a9,43 -34b38aa,10 -34b38ab,21 -34b38ad,2 -34b38ae,10 -34b38af,40 -34b38b0,24 -34b38b1,43 -34b38b3,2 -34b38b4,3c -34b38b5,2 -34b38b6,80 -34b38b7,40 -34b38b8,94 -34b38b9,42 -34b38ba,63 -34b38bb,cc -34b38bd,2 -34b38be,10 -34b38bf,c0 -34b38c0,24 -34b38c1,42 -34b38c3,5e -34b38c5,43 -34b38c6,10 -34b38c7,21 -34b38c8,24 -34b38c9,13 -34b38ca,1 -34b38cb,40 -34b38cc,2 -34b38cd,62 -34b38ce,98 -34b38cf,23 -34b38d1,13 -34b38d2,98 -34b38d3,43 -34b38d4,26 -34b38d5,77 -34b38d7,2 -34b38d8,8c -34b38d9,83 -34b38db,8 -34b38dc,24 -34b38dd,65 -34b38df,8 -34b38e0,ac -34b38e1,85 -34b38e3,8 -34b38e4,3c -34b38e5,5 -34b38e6,fc -34b38e7,ff -34b38e8,34 -34b38e9,a5 -34b38ea,ff -34b38eb,ff -34b38ec,ac -34b38ed,65 -34b38f0,3c -34b38f1,5 -34b38f2,ff -34b38f3,fd -34b38f4,34 -34b38f5,a5 -34b38f6,f6 -34b38f7,fb -34b38f8,ac -34b38f9,65 -34b38fb,4 -34b38fc,8c -34b38fd,83 -34b38ff,8 -34b3900,24 -34b3901,65 -34b3903,8 -34b3904,ac -34b3905,85 -34b3907,8 -34b3908,3c -34b3909,5 -34b390a,fa -34b390c,ac -34b390d,65 -34b3910,24 -34b3911,5 -34b3913,d0 -34b3914,ac -34b3915,65 -34b3917,4 -34b3919,53 -34b391a,10 -34b391b,21 -34b391d,2 -34b391e,13 -34b391f,80 -34b3920,3c -34b3921,3 -34b3923,ff -34b3924,34 -34b3925,63 -34b3926,f0 -34b3929,43 -34b392a,10 -34b392b,24 -34b392c,3c -34b392d,5 -34b392e,e4 -34b3930,24 -34b3931,a5 -34b3932,3 -34b3933,b8 -34b3935,45 -34b3936,10 -34b3937,25 -34b3938,af -34b3939,a2 -34b393b,20 -34b393d,13 -34b393e,13 -34b393f,80 -34b3941,43 -34b3942,10 -34b3943,24 -34b3944,34 -34b3945,42 -34b3947,8 -34b3948,af -34b3949,a2 -34b394b,24 -34b394c,3c -34b394d,2 -34b394e,e1 -34b3950,af -34b3951,a2 -34b3953,28 -34b3954,af -34b3955,a0 -34b3957,2c -34b3958,3c -34b3959,2 -34b395a,f1 -34b395c,af -34b395d,a2 -34b395f,30 -34b3960,3c -34b3961,2 -34b3962,4 -34b3964,24 -34b3965,42 -34b3966,4 -34b3968,af -34b3969,a2 -34b396b,34 -34b396c,27 -34b396d,a2 -34b396f,20 -34b3970,27 -34b3971,a8 -34b3973,38 -34b3974,8c -34b3975,83 -34b3977,8 -34b3978,24 -34b3979,65 -34b397b,8 -34b397c,ac -34b397d,85 -34b397f,8 -34b3980,8c -34b3981,47 -34b3983,4 -34b3984,8c -34b3985,46 -34b3988,ac -34b3989,67 -34b398b,4 -34b398c,24 -34b398d,42 -34b398f,8 -34b3990,15 -34b3991,2 -34b3992,ff -34b3993,f8 -34b3994,ac -34b3995,66 -34b3999,80 -34b399a,80 -34b399b,25 -34b399c,8c -34b399d,82 -34b399f,8 -34b39a0,24 -34b39a1,43 -34b39a3,8 -34b39a4,ac -34b39a5,83 -34b39a7,8 -34b39a8,3c -34b39a9,3 -34b39aa,e7 -34b39ac,ac -34b39ad,43 -34b39b0,ac -34b39b1,40 -34b39b3,4 -34b39b4,8c -34b39b5,82 -34b39b7,8 -34b39b8,24 -34b39b9,43 -34b39bb,8 -34b39bc,ac -34b39bd,83 -34b39bf,8 -34b39c0,3c -34b39c1,3 -34b39c2,fc -34b39c3,11 -34b39c4,34 -34b39c5,63 -34b39c6,96 -34b39c7,23 -34b39c8,ac -34b39c9,43 -34b39cc,3c -34b39cd,3 -34b39ce,ff -34b39cf,2f -34b39d0,34 -34b39d1,63 -34b39d2,ff -34b39d3,ff -34b39d4,ac -34b39d5,43 -34b39d7,4 -34b39d8,3c -34b39d9,5 -34b39da,80 -34b39db,40 -34b39dc,24 -34b39dd,a5 -34b39de,63 -34b39df,e8 -34b39e0,94 -34b39e1,a7 -34b39e3,8 -34b39e4,c -34b39e5,10 -34b39e6,14 -34b39e7,1c -34b39ea,30 -34b39eb,25 -34b39ec,3c -34b39ed,2 -34b39ee,80 -34b39ef,40 -34b39f0,8c -34b39f1,42 -34b39f2,64 -34b39f3,cc -34b39f4,18 -34b39f5,40 -34b39f7,42 -34b39f8,3c -34b39f9,2 -34b39fa,80 -34b39fb,40 -34b39fc,3c -34b39fd,12 -34b39fe,80 -34b39ff,40 -34b3a00,26 -34b3a01,52 -34b3a02,64 -34b3a03,2c -34b3a06,88 -34b3a07,25 -34b3a08,3c -34b3a09,16 -34b3a0a,80 -34b3a0b,40 -34b3a0c,3c -34b3a0d,14 -34b3a0e,80 -34b3a0f,40 -34b3a10,26 -34b3a11,94 -34b3a12,64 -34b3a13,8 -34b3a14,3c -34b3a15,1e -34b3a16,80 -34b3a17,40 -34b3a18,27 -34b3a19,de -34b3a1a,64 -34b3a1b,18 -34b3a1c,24 -34b3a1d,42 -34b3a1e,63 -34b3a1f,e8 -34b3a20,af -34b3a21,a2 -34b3a23,38 -34b3a24,3c -34b3a25,15 -34b3a26,80 -34b3a27,40 -34b3a28,8e -34b3a29,c2 -34b3a2a,64 -34b3a2b,d4 -34b3a2c,50 -34b3a2d,40 -34b3a2f,b -34b3a30,92 -34b3a31,42 -34b3a34,92 -34b3a35,43 -34b3a38,3c -34b3a39,2 -34b3a3a,80 -34b3a3b,11 -34b3a3c,34 -34b3a3d,42 -34b3a3e,a5 -34b3a3f,d0 -34b3a41,43 -34b3a42,10 -34b3a43,21 -34b3a44,90 -34b3a45,42 -34b3a47,a8 -34b3a49,2 -34b3a4a,10 -34b3a4b,42 -34b3a4c,30 -34b3a4d,42 -34b3a4f,1 -34b3a50,50 -34b3a51,40 -34b3a53,27 -34b3a54,26 -34b3a55,31 -34b3a57,1 -34b3a58,92 -34b3a59,42 -34b3a5d,54 -34b3a5e,10 -34b3a5f,21 -34b3a60,80 -34b3a61,46 -34b3a64,28 -34b3a65,c2 -34b3a67,3 -34b3a68,54 -34b3a69,40 -34b3a6b,21 -34b3a6c,26 -34b3a6d,31 -34b3a6f,1 -34b3a70,24 -34b3a71,c6 -34b3a72,ff -34b3a73,fd -34b3a75,6 -34b3a76,18 -34b3a77,40 -34b3a79,66 -34b3a7a,18 -34b3a7b,21 -34b3a7d,7e -34b3a7e,18 -34b3a7f,21 -34b3a80,90 -34b3a81,62 -34b3a85,2 -34b3a86,16 -34b3a88,90 -34b3a89,64 -34b3a8b,2 -34b3a8d,4 -34b3a8e,22 -34b3a91,44 -34b3a92,10 -34b3a93,25 -34b3a94,90 -34b3a95,63 -34b3a97,1 -34b3a99,3 -34b3a9a,1c -34b3a9d,43 -34b3a9e,10 -34b3a9f,25 -34b3aa0,34 -34b3aa1,42 -34b3aa3,ff -34b3aa4,8e -34b3aa5,3 -34b3aa7,8 -34b3aa8,24 -34b3aa9,64 -34b3aab,8 -34b3aac,ae -34b3aad,4 -34b3aaf,8 -34b3ab0,3c -34b3ab1,4 -34b3ab2,fa -34b3ab4,ac -34b3ab5,64 -34b3ab8,ac -34b3ab9,62 -34b3abb,4 -34b3abc,24 -34b3abd,2 -34b3abf,10 -34b3ac0,af -34b3ac1,a2 -34b3ac3,18 -34b3ac4,af -34b3ac5,a2 -34b3ac7,14 -34b3ac9,11 -34b3aca,10 -34b3acb,c0 -34b3acd,51 -34b3ace,10 -34b3acf,21 -34b3ad1,2 -34b3ad2,10 -34b3ad3,40 -34b3ad4,24 -34b3ad5,42 -34b3ad7,4 -34b3ad8,af -34b3ad9,a2 -34b3adb,10 -34b3adc,2 -34b3add,e0 -34b3ade,38 -34b3adf,25 -34b3ae0,8f -34b3ae1,a5 -34b3ae3,38 -34b3ae4,c -34b3ae5,10 -34b3ae6,14 -34b3ae7,af -34b3ae8,2 -34b3aea,20 -34b3aeb,25 -34b3aec,26 -34b3aed,31 -34b3aef,1 -34b3af0,8e -34b3af1,a2 -34b3af2,64 -34b3af3,cc -34b3af4,2 -34b3af5,22 -34b3af6,10 -34b3af7,2a -34b3af8,14 -34b3af9,40 -34b3afa,ff -34b3afb,cb -34b3afc,26 -34b3afd,52 -34b3aff,c -34b3b00,8e -34b3b01,2 -34b3b03,8 -34b3b04,24 -34b3b05,43 -34b3b07,8 -34b3b08,ae -34b3b09,3 -34b3b0b,8 -34b3b0c,3c -34b3b0d,3 -34b3b0e,fa -34b3b10,ac -34b3b11,43 -34b3b14,24 -34b3b15,3 -34b3b16,ff -34b3b17,ff -34b3b18,ac -34b3b19,43 -34b3b1b,4 -34b3b1c,3c -34b3b1d,5 -34b3b1e,80 -34b3b1f,40 -34b3b20,24 -34b3b21,a5 -34b3b22,63 -34b3b23,f8 -34b3b24,94 -34b3b25,a7 -34b3b27,8 -34b3b2a,30 -34b3b2b,25 -34b3b2c,c -34b3b2d,10 -34b3b2e,14 -34b3b2f,1c -34b3b30,2 -34b3b32,20 -34b3b33,25 -34b3b34,3c -34b3b35,2 -34b3b36,80 -34b3b37,40 -34b3b38,8c -34b3b39,42 -34b3b3a,64 -34b3b3b,cc -34b3b3c,18 -34b3b3d,40 -34b3b3e,1 -34b3b3f,94 -34b3b40,3c -34b3b41,2 -34b3b42,80 -34b3b43,40 -34b3b44,3c -34b3b45,12 -34b3b46,80 -34b3b47,40 -34b3b48,26 -34b3b49,52 -34b3b4a,64 -34b3b4b,2c -34b3b4e,88 -34b3b4f,25 -34b3b50,3c -34b3b51,16 -34b3b52,80 -34b3b53,40 -34b3b54,3c -34b3b55,14 -34b3b56,80 -34b3b57,40 -34b3b58,26 -34b3b59,94 -34b3b5a,64 -34b3b5b,8 -34b3b5c,24 -34b3b5d,42 -34b3b5e,63 -34b3b5f,f8 -34b3b60,af -34b3b61,a2 -34b3b63,38 -34b3b64,3c -34b3b65,1e -34b3b66,80 -34b3b67,11 -34b3b68,37 -34b3b69,de -34b3b6a,a5 -34b3b6b,d0 -34b3b6c,3c -34b3b6d,15 -34b3b6e,80 -34b3b6f,40 -34b3b70,8e -34b3b71,c2 -34b3b72,64 -34b3b73,d4 -34b3b74,10 -34b3b75,40 -34b3b77,8 -34b3b78,92 -34b3b79,42 -34b3b7c,3 -34b3b7d,c2 -34b3b7e,10 -34b3b7f,21 -34b3b80,90 -34b3b81,42 -34b3b83,a8 -34b3b85,2 -34b3b86,10 -34b3b87,42 -34b3b88,30 -34b3b89,42 -34b3b8b,1 -34b3b8c,50 -34b3b8d,40 -34b3b8f,14 -34b3b90,26 -34b3b91,31 -34b3b93,1 -34b3b94,92 -34b3b95,42 -34b3b99,54 -34b3b9a,10 -34b3b9b,21 -34b3b9c,80 -34b3b9d,46 -34b3ba0,2c -34b3ba1,c2 -34b3ba3,3 -34b3ba4,50 -34b3ba5,40 -34b3ba7,e -34b3ba8,26 -34b3ba9,31 -34b3bab,1 -34b3bac,24 -34b3bad,2 -34b3baf,10 -34b3bb0,af -34b3bb1,a2 -34b3bb3,18 -34b3bb4,af -34b3bb5,a2 -34b3bb7,14 -34b3bb9,11 -34b3bba,10 -34b3bbb,c0 -34b3bbd,51 -34b3bbe,10 -34b3bbf,21 -34b3bc1,2 -34b3bc2,10 -34b3bc3,40 -34b3bc4,24 -34b3bc5,42 -34b3bc7,4 -34b3bc8,af -34b3bc9,a2 -34b3bcb,10 -34b3bcc,2 -34b3bcd,e0 -34b3bce,38 -34b3bcf,25 -34b3bd0,8f -34b3bd1,a5 -34b3bd3,38 -34b3bd4,c -34b3bd5,10 -34b3bd6,14 -34b3bd7,af -34b3bd8,2 -34b3bda,20 -34b3bdb,25 -34b3bdc,26 -34b3bdd,31 -34b3bdf,1 -34b3be0,8e -34b3be1,a2 -34b3be2,64 -34b3be3,cc -34b3be4,2 -34b3be5,22 -34b3be6,18 -34b3be7,2a -34b3be8,14 -34b3be9,60 -34b3bea,ff -34b3beb,e1 -34b3bec,26 -34b3bed,52 -34b3bef,c -34b3bf0,18 -34b3bf1,40 -34b3bf3,10 -34b3bf4,26 -34b3bf5,73 -34b3bf7,14 -34b3bf8,3c -34b3bf9,11 -34b3bfa,80 -34b3bfb,40 -34b3bfc,26 -34b3bfd,31 -34b3bfe,64 -34b3bff,2e -34b3c00,24 -34b3c01,14 -34b3c03,5 -34b3c06,90 -34b3c07,25 -34b3c08,3c -34b3c09,15 -34b3c0a,80 -34b3c0b,40 -34b3c0c,2 -34b3c0d,80 -34b3c0e,30 -34b3c0f,25 -34b3c10,2 -34b3c11,60 -34b3c12,28 -34b3c13,25 -34b3c14,c -34b3c15,10 -34b3c16,18 -34b3c17,73 -34b3c18,2 -34b3c19,20 -34b3c1a,20 -34b3c1b,25 -34b3c1c,26 -34b3c1d,52 -34b3c1f,1 -34b3c20,26 -34b3c21,31 -34b3c23,c -34b3c24,8e -34b3c25,a2 -34b3c26,64 -34b3c27,cc -34b3c28,2 -34b3c29,42 -34b3c2a,10 -34b3c2b,2a -34b3c2c,14 -34b3c2d,40 -34b3c2e,ff -34b3c2f,f7 -34b3c30,26 -34b3c31,94 -34b3c33,12 -34b3c34,3c -34b3c35,2 -34b3c36,80 -34b3c37,40 -34b3c38,94 -34b3c39,42 -34b3c3a,63 -34b3c3b,cc -34b3c3d,2 -34b3c3e,10 -34b3c3f,c0 -34b3c40,24 -34b3c41,42 -34b3c43,2 -34b3c45,53 -34b3c46,98 -34b3c47,21 -34b3c48,24 -34b3c49,7 -34b3c4b,1 -34b3c4c,24 -34b3c4d,6 -34b3c4f,11 -34b3c50,3c -34b3c51,5 -34b3c52,80 -34b3c53,40 -34b3c54,24 -34b3c55,a5 -34b3c56,63 -34b3c57,d8 -34b3c58,c -34b3c59,10 -34b3c5a,14 -34b3c5b,1c -34b3c5c,2 -34b3c5e,20 -34b3c5f,25 -34b3c60,3c -34b3c61,2 -34b3c62,80 -34b3c63,40 -34b3c64,8c -34b3c65,42 -34b3c66,64 -34b3c67,cc -34b3c68,18 -34b3c69,40 -34b3c6b,2a -34b3c6c,3c -34b3c6d,17 -34b3c6e,80 -34b3c6f,11 -34b3c70,3c -34b3c71,12 -34b3c72,80 -34b3c73,40 -34b3c74,26 -34b3c75,52 -34b3c76,64 -34b3c77,2c -34b3c78,24 -34b3c79,14 -34b3c7b,5 -34b3c7e,88 -34b3c7f,25 -34b3c80,2 -34b3c81,40 -34b3c82,a8 -34b3c83,25 -34b3c84,36 -34b3c85,f7 -34b3c86,a5 -34b3c87,d0 -34b3c88,3c -34b3c89,16 -34b3c8a,80 -34b3c8b,40 -34b3c8d,11 -34b3c8e,10 -34b3c8f,40 -34b3c91,51 -34b3c92,10 -34b3c93,21 -34b3c95,2 -34b3c96,10 -34b3c97,80 -34b3c99,55 -34b3c9a,10 -34b3c9b,21 -34b3c9c,80 -34b3c9d,42 -34b3c9f,1 -34b3ca0,4 -34b3ca1,43 -34b3ca3,17 -34b3ca4,26 -34b3ca5,31 -34b3ca7,1 -34b3ca8,92 -34b3ca9,42 -34b3cac,2 -34b3cad,e2 -34b3cae,10 -34b3caf,21 -34b3cb0,90 -34b3cb1,42 -34b3cb3,bc -34b3cb5,2 -34b3cb6,1e -34b3cb9,3 -34b3cba,1e -34b3cbb,3 -34b3cbc,28 -34b3cbd,63 -34b3cbf,a -34b3cc0,50 -34b3cc1,60 -34b3cc3,1 -34b3cc4,24 -34b3cc5,2 -34b3cc7,9 -34b3cc8,24 -34b3cc9,3 -34b3cca,30 -34b3ccc,a7 -34b3ccd,a3 -34b3ccf,20 -34b3cd1,40 -34b3cd2,18 -34b3cd3,25 -34b3cd5,2 -34b3cd6,16 -34b3cd9,2 -34b3cda,16 -34b3cdb,3 -34b3cdc,4 -34b3cdd,42 -34b3cdf,1 -34b3ce2,18 -34b3ce3,25 -34b3ce4,24 -34b3ce5,63 -34b3ce7,30 -34b3ce8,a3 -34b3ce9,a3 -34b3ceb,20 -34b3cec,2 -34b3ced,80 -34b3cee,30 -34b3cef,25 -34b3cf0,2 -34b3cf1,60 -34b3cf2,28 -34b3cf3,25 -34b3cf4,c -34b3cf5,10 -34b3cf6,18 -34b3cf7,73 -34b3cf8,27 -34b3cf9,a4 -34b3cfb,20 -34b3cfc,26 -34b3cfd,31 -34b3cff,1 -34b3d00,26 -34b3d01,52 -34b3d03,c -34b3d04,8e -34b3d05,c2 -34b3d06,64 -34b3d07,cc -34b3d08,2 -34b3d09,22 -34b3d0a,10 -34b3d0b,2a -34b3d0c,14 -34b3d0d,40 -34b3d0e,ff -34b3d0f,df -34b3d10,26 -34b3d11,94 -34b3d13,12 -34b3d14,26 -34b3d15,77 -34b3d17,12 -34b3d18,24 -34b3d19,7 -34b3d1b,1 -34b3d1c,24 -34b3d1d,6 -34b3d1f,e -34b3d20,3c -34b3d21,5 -34b3d22,80 -34b3d23,40 -34b3d24,24 -34b3d25,a5 -34b3d26,63 -34b3d27,d8 -34b3d28,c -34b3d29,10 -34b3d2a,14 -34b3d2b,1c -34b3d2c,2 -34b3d2e,20 -34b3d2f,25 -34b3d30,3c -34b3d31,2 -34b3d32,80 -34b3d33,40 -34b3d34,8c -34b3d35,42 -34b3d36,64 -34b3d37,cc -34b3d38,58 -34b3d39,40 -34b3d3b,2b -34b3d3c,24 -34b3d3d,7 -34b3d3f,1 -34b3d40,3c -34b3d41,12 -34b3d42,80 -34b3d43,40 -34b3d44,26 -34b3d45,52 -34b3d46,64 -34b3d47,2c -34b3d4a,88 -34b3d4b,25 -34b3d4c,2 -34b3d4d,40 -34b3d4e,a0 -34b3d4f,25 -34b3d50,3c -34b3d51,16 -34b3d52,80 -34b3d53,11 -34b3d54,3c -34b3d55,1e -34b3d56,80 -34b3d57,40 -34b3d58,27 -34b3d59,de -34b3d5a,63 -34b3d5b,d8 -34b3d5c,3c -34b3d5d,15 -34b3d5e,80 -34b3d5f,40 -34b3d61,11 -34b3d62,10 -34b3d63,40 -34b3d65,51 -34b3d66,10 -34b3d67,21 -34b3d69,2 -34b3d6a,10 -34b3d6b,80 -34b3d6d,54 -34b3d6e,10 -34b3d6f,21 -34b3d70,90 -34b3d71,42 -34b3d73,1 -34b3d74,30 -34b3d75,42 -34b3d77,40 -34b3d78,50 -34b3d79,40 -34b3d7b,16 -34b3d7c,26 -34b3d7d,31 -34b3d7f,1 -34b3d80,36 -34b3d81,c2 -34b3d82,a5 -34b3d83,d0 -34b3d84,92 -34b3d85,43 -34b3d89,43 -34b3d8a,10 -34b3d8b,21 -34b3d8c,90 -34b3d8d,42 -34b3d8f,a8 -34b3d90,30 -34b3d91,42 -34b3d93,1 -34b3d94,50 -34b3d95,40 -34b3d97,f -34b3d98,26 -34b3d99,31 -34b3d9b,1 -34b3d9c,24 -34b3d9d,2 -34b3d9f,10 -34b3da0,af -34b3da1,a2 -34b3da3,18 -34b3da4,af -34b3da5,a2 -34b3da7,14 -34b3da9,11 -34b3daa,10 -34b3dab,c0 -34b3dad,51 -34b3dae,10 -34b3daf,21 -34b3db1,2 -34b3db2,10 -34b3db3,40 -34b3db4,24 -34b3db5,42 -34b3db7,4 -34b3db8,af -34b3db9,a2 -34b3dbb,10 -34b3dbc,2 -34b3dbd,e0 -34b3dbe,38 -34b3dbf,25 -34b3dc2,30 -34b3dc3,25 -34b3dc4,3 -34b3dc5,c0 -34b3dc6,28 -34b3dc7,25 -34b3dc8,c -34b3dc9,10 -34b3dca,14 -34b3dcb,af -34b3dcc,2 -34b3dce,20 -34b3dcf,25 -34b3dd0,26 -34b3dd1,31 -34b3dd3,1 -34b3dd4,8e -34b3dd5,a2 -34b3dd6,64 -34b3dd7,cc -34b3dd8,2 -34b3dd9,22 -34b3dda,10 -34b3ddb,2a -34b3ddc,14 -34b3ddd,40 -34b3dde,ff -34b3ddf,e0 -34b3de0,26 -34b3de1,52 -34b3de3,c -34b3de4,24 -34b3de5,7 -34b3de7,1 -34b3de8,24 -34b3de9,6 -34b3deb,a -34b3dec,3c -34b3ded,5 -34b3dee,80 -34b3def,40 -34b3df0,24 -34b3df1,a5 -34b3df2,63 -34b3df3,d8 -34b3df4,c -34b3df5,10 -34b3df6,14 -34b3df7,1c -34b3df8,2 -34b3dfa,20 -34b3dfb,25 -34b3dfc,3c -34b3dfd,2 -34b3dfe,80 -34b3dff,40 -34b3e00,8c -34b3e01,42 -34b3e02,64 -34b3e03,cc -34b3e04,58 -34b3e05,40 -34b3e07,29 -34b3e08,26 -34b3e09,7e -34b3e0b,24 -34b3e0e,88 -34b3e0f,25 -34b3e10,3c -34b3e11,12 -34b3e12,80 -34b3e13,40 -34b3e14,26 -34b3e15,52 -34b3e16,64 -34b3e17,2c -34b3e18,3c -34b3e19,15 -34b3e1a,80 -34b3e1b,11 -34b3e1c,3c -34b3e1d,16 -34b3e1e,80 -34b3e1f,40 -34b3e20,26 -34b3e21,d6 -34b3e22,63 -34b3e23,d8 -34b3e24,3c -34b3e25,14 -34b3e26,80 -34b3e27,40 -34b3e29,11 -34b3e2a,10 -34b3e2b,40 -34b3e2d,51 -34b3e2e,10 -34b3e2f,21 -34b3e31,2 -34b3e32,10 -34b3e33,80 -34b3e35,52 -34b3e36,10 -34b3e37,21 -34b3e38,90 -34b3e39,42 -34b3e3b,1 -34b3e3c,30 -34b3e3d,42 -34b3e3f,20 -34b3e40,50 -34b3e41,40 -34b3e43,15 -34b3e44,26 -34b3e45,31 -34b3e47,1 -34b3e48,36 -34b3e49,a2 -34b3e4a,a5 -34b3e4b,d0 -34b3e4c,8c -34b3e4d,42 -34b3e4f,a4 -34b3e50,3c -34b3e51,3 -34b3e53,40 -34b3e55,43 -34b3e56,10 -34b3e57,24 -34b3e58,50 -34b3e59,40 -34b3e5b,f -34b3e5c,26 -34b3e5d,31 -34b3e5f,1 -34b3e60,24 -34b3e61,2 -34b3e63,10 -34b3e64,af -34b3e65,a2 -34b3e67,18 -34b3e68,af -34b3e69,a2 -34b3e6b,14 -34b3e6d,11 -34b3e6e,10 -34b3e6f,c0 -34b3e71,51 -34b3e72,10 -34b3e73,21 -34b3e75,2 -34b3e76,10 -34b3e77,40 -34b3e78,24 -34b3e79,42 -34b3e7b,4 -34b3e7c,af -34b3e7d,a2 -34b3e7f,10 -34b3e80,2 -34b3e81,e0 -34b3e82,38 -34b3e83,25 -34b3e86,30 -34b3e87,25 -34b3e88,2 -34b3e89,c0 -34b3e8a,28 -34b3e8b,25 -34b3e8c,c -34b3e8d,10 -34b3e8e,14 -34b3e8f,af -34b3e90,2 -34b3e92,20 -34b3e93,25 -34b3e94,26 -34b3e95,31 -34b3e97,1 -34b3e98,8e -34b3e99,82 -34b3e9a,64 -34b3e9b,cc -34b3e9c,2 -34b3e9d,22 -34b3e9e,10 -34b3e9f,2a -34b3ea0,14 -34b3ea1,40 -34b3ea2,ff -34b3ea3,e2 -34b3ea5,11 -34b3ea6,10 -34b3ea7,40 -34b3ea8,26 -34b3ea9,7e -34b3eab,24 -34b3eac,24 -34b3ead,7 -34b3eaf,1 -34b3eb0,24 -34b3eb1,6 -34b3eb3,10 -34b3eb4,3c -34b3eb5,5 -34b3eb6,80 -34b3eb7,40 -34b3eb8,24 -34b3eb9,a5 -34b3eba,63 -34b3ebb,d8 -34b3ebc,c -34b3ebd,10 -34b3ebe,14 -34b3ebf,1c -34b3ec0,2 -34b3ec2,20 -34b3ec3,25 -34b3ec4,3c -34b3ec5,2 -34b3ec6,80 -34b3ec7,40 -34b3ec8,8c -34b3ec9,42 -34b3eca,64 -34b3ecb,cc -34b3ecc,18 -34b3ecd,40 -34b3ecf,2a -34b3ed0,3c -34b3ed1,12 -34b3ed2,80 -34b3ed3,40 -34b3ed4,26 -34b3ed5,52 -34b3ed6,64 -34b3ed7,2c -34b3eda,88 -34b3edb,25 -34b3edc,2 -34b3edd,40 -34b3ede,a0 -34b3edf,25 -34b3ee0,3c -34b3ee1,16 -34b3ee2,80 -34b3ee3,11 -34b3ee4,3c -34b3ee5,17 -34b3ee6,80 -34b3ee7,40 -34b3ee8,26 -34b3ee9,f7 -34b3eea,63 -34b3eeb,d8 -34b3eec,3c -34b3eed,15 -34b3eee,80 -34b3eef,40 -34b3ef1,11 -34b3ef2,10 -34b3ef3,40 -34b3ef5,51 -34b3ef6,10 -34b3ef7,21 -34b3ef9,2 -34b3efa,10 -34b3efb,80 -34b3efd,54 -34b3efe,10 -34b3eff,21 -34b3f00,90 -34b3f01,42 -34b3f03,1 -34b3f04,30 -34b3f05,42 -34b3f07,10 -34b3f08,50 -34b3f09,40 -34b3f0b,17 -34b3f0c,26 -34b3f0d,31 -34b3f0f,1 -34b3f10,36 -34b3f11,c2 -34b3f12,a5 -34b3f13,d0 -34b3f14,92 -34b3f15,43 -34b3f19,43 -34b3f1a,10 -34b3f1b,21 -34b3f1c,90 -34b3f1d,42 -34b3f1f,a8 -34b3f21,2 -34b3f22,10 -34b3f23,82 -34b3f24,30 -34b3f25,42 -34b3f27,1 -34b3f28,50 -34b3f29,40 -34b3f2b,f -34b3f2c,26 -34b3f2d,31 -34b3f2f,1 -34b3f30,24 -34b3f31,2 -34b3f33,10 -34b3f34,af -34b3f35,a2 -34b3f37,18 -34b3f38,af -34b3f39,a2 -34b3f3b,14 -34b3f3d,11 -34b3f3e,10 -34b3f3f,c0 -34b3f41,51 -34b3f42,10 -34b3f43,21 -34b3f45,2 -34b3f46,10 -34b3f47,40 -34b3f48,24 -34b3f49,42 -34b3f4b,4 -34b3f4c,af -34b3f4d,a2 -34b3f4f,10 -34b3f50,3 -34b3f51,c0 -34b3f52,38 -34b3f53,25 -34b3f56,30 -34b3f57,25 -34b3f58,2 -34b3f59,e0 -34b3f5a,28 -34b3f5b,25 -34b3f5c,c -34b3f5d,10 -34b3f5e,14 -34b3f5f,af -34b3f60,2 -34b3f62,20 -34b3f63,25 -34b3f64,26 -34b3f65,31 -34b3f67,1 -34b3f68,8e -34b3f69,a2 -34b3f6a,64 -34b3f6b,cc -34b3f6c,2 -34b3f6d,22 -34b3f6e,10 -34b3f6f,2a -34b3f70,14 -34b3f71,40 -34b3f72,ff -34b3f73,df -34b3f74,26 -34b3f75,52 -34b3f77,c -34b3f78,26 -34b3f79,7e -34b3f7b,36 -34b3f7c,24 -34b3f7d,7 -34b3f7f,1 -34b3f80,24 -34b3f81,6 -34b3f83,f -34b3f84,3c -34b3f85,5 -34b3f86,80 -34b3f87,40 -34b3f88,24 -34b3f89,a5 -34b3f8a,63 -34b3f8b,d8 -34b3f8c,c -34b3f8d,10 -34b3f8e,14 -34b3f8f,1c -34b3f90,2 -34b3f92,20 -34b3f93,25 -34b3f94,3c -34b3f95,2 -34b3f96,80 -34b3f97,40 -34b3f98,8c -34b3f99,42 -34b3f9a,64 -34b3f9b,cc -34b3f9c,18 -34b3f9d,40 -34b3f9f,62 -34b3fa0,3c -34b3fa1,12 -34b3fa2,80 -34b3fa3,40 -34b3fa4,26 -34b3fa5,52 -34b3fa6,64 -34b3fa7,2c -34b3faa,88 -34b3fab,25 -34b3fac,2 -34b3fad,40 -34b3fae,a0 -34b3faf,25 -34b3fb0,3c -34b3fb1,16 -34b3fb2,80 -34b3fb3,11 -34b3fb4,3c -34b3fb5,17 -34b3fb6,80 -34b3fb7,40 -34b3fb8,26 -34b3fb9,f7 -34b3fba,63 -34b3fbb,d8 -34b3fbc,3c -34b3fbd,15 -34b3fbe,80 -34b3fbf,40 -34b3fc1,11 -34b3fc2,10 -34b3fc3,40 -34b3fc5,51 -34b3fc6,10 -34b3fc7,21 -34b3fc9,2 -34b3fca,10 -34b3fcb,80 -34b3fcd,54 -34b3fce,10 -34b3fcf,21 -34b3fd0,90 -34b3fd1,42 -34b3fd3,1 -34b3fd4,30 -34b3fd5,42 -34b3fd7,10 -34b3fd8,50 -34b3fd9,40 -34b3fdb,17 -34b3fdc,26 -34b3fdd,31 -34b3fdf,1 -34b3fe0,36 -34b3fe1,c2 -34b3fe2,a5 -34b3fe3,d0 -34b3fe4,92 -34b3fe5,43 -34b3fe9,43 -34b3fea,10 -34b3feb,21 -34b3fec,90 -34b3fed,42 -34b3fef,a8 -34b3ff1,2 -34b3ff2,10 -34b3ff3,42 -34b3ff4,30 -34b3ff5,42 -34b3ff7,1 -34b3ff8,50 -34b3ff9,40 -34b3ffb,f -34b3ffc,26 -34b3ffd,31 -34b3fff,1 -34b4000,24 -34b4001,2 -34b4003,10 -34b4004,af -34b4005,a2 -34b4007,18 -34b4008,af -34b4009,a2 -34b400b,14 -34b400d,11 -34b400e,10 -34b400f,c0 -34b4011,51 -34b4012,10 -34b4013,21 -34b4015,2 -34b4016,10 -34b4017,40 -34b4018,24 -34b4019,42 -34b401b,4 -34b401c,af -34b401d,a2 -34b401f,10 -34b4020,3 -34b4021,c0 -34b4022,38 -34b4023,25 -34b4026,30 -34b4027,25 -34b4028,2 -34b4029,e0 -34b402a,28 -34b402b,25 -34b402c,c -34b402d,10 -34b402e,14 -34b402f,af -34b4030,2 -34b4032,20 -34b4033,25 -34b4034,26 -34b4035,31 -34b4037,1 -34b4038,8e -34b4039,a2 -34b403a,64 -34b403b,cc -34b403c,2 -34b403d,22 -34b403e,10 -34b403f,2a -34b4040,14 -34b4041,40 -34b4042,ff -34b4043,df -34b4044,26 -34b4045,52 -34b4047,c -34b4048,3c -34b4049,2 -34b404a,80 -34b404b,40 -34b404c,8c -34b404d,42 -34b404e,64 -34b404f,dc -34b4050,10 -34b4051,40 -34b4053,35 -34b4054,3c -34b4055,2 -34b4056,80 -34b4057,40 -34b4058,8c -34b4059,42 -34b405a,64 -34b405b,cc -34b405c,18 -34b405d,40 -34b405f,32 -34b4060,3c -34b4061,12 -34b4062,80 -34b4063,40 -34b4064,26 -34b4065,52 -34b4066,64 -34b4067,2c -34b4068,24 -34b4069,14 -34b406b,5 -34b406e,88 -34b406f,25 -34b4070,3c -34b4071,17 -34b4072,80 -34b4073,40 -34b4074,3c -34b4075,16 -34b4076,80 -34b4077,40 -34b4078,26 -34b4079,d6 -34b407a,64 -34b407b,f8 -34b407c,3c -34b407d,15 -34b407e,80 -34b407f,40 -34b4080,26 -34b4081,b5 -34b4082,63 -34b4083,bc -34b4084,3c -34b4085,2 -34b4086,80 -34b4087,40 -34b4088,24 -34b4089,42 -34b408a,63 -34b408b,c0 -34b408c,af -34b408d,a2 -34b408f,38 -34b4090,3c -34b4091,1e -34b4092,80 -34b4093,40 -34b4094,8e -34b4095,e2 -34b4096,64 -34b4097,d8 -34b4098,50 -34b4099,40 -34b409b,14 -34b409c,92 -34b409d,42 -34b40a1,11 -34b40a2,10 -34b40a3,40 -34b40a5,51 -34b40a6,10 -34b40a7,21 -34b40a9,2 -34b40aa,10 -34b40ab,80 -34b40ac,27 -34b40ad,c3 -34b40ae,64 -34b40af,2c -34b40b1,43 -34b40b2,10 -34b40b3,21 -34b40b4,90 -34b40b5,42 -34b40b7,1 -34b40b8,30 -34b40b9,42 -34b40bb,10 -34b40bc,50 -34b40bd,40 -34b40bf,b -34b40c0,92 -34b40c1,42 -34b40c4,92 -34b40c5,43 -34b40c8,3c -34b40c9,2 -34b40ca,80 -34b40cb,11 -34b40cc,34 -34b40cd,42 -34b40ce,a5 -34b40cf,d0 -34b40d1,43 -34b40d2,10 -34b40d3,21 -34b40d4,90 -34b40d5,42 -34b40d7,a8 -34b40d9,2 -34b40da,10 -34b40db,82 -34b40dc,30 -34b40dd,42 -34b40df,1 -34b40e0,50 -34b40e1,40 -34b40e3,b -34b40e4,26 -34b40e5,31 -34b40e7,1 -34b40e8,92 -34b40e9,42 -34b40ed,56 -34b40ee,10 -34b40ef,21 -34b40f0,90 -34b40f1,42 -34b40f4,14 -34b40f5,40 -34b40f7,2 -34b40f8,2 -34b40f9,a0 -34b40fa,20 -34b40fb,25 -34b40fc,8f -34b40fd,a4 -34b40ff,38 -34b4100,2 -34b4101,80 -34b4102,30 -34b4103,25 -34b4104,c -34b4105,10 -34b4106,18 -34b4107,73 -34b4108,26 -34b4109,65 -34b410b,48 -34b410c,26 -34b410d,31 -34b410f,1 -34b4110,26 -34b4111,94 -34b4113,12 -34b4114,3c -34b4115,2 -34b4116,80 -34b4117,40 -34b4118,8c -34b4119,42 -34b411a,64 -34b411b,cc -34b411c,2 -34b411d,22 -34b411e,10 -34b411f,2a -34b4120,14 -34b4121,40 -34b4122,ff -34b4123,dc -34b4124,26 -34b4125,52 -34b4127,c -34b4128,c -34b4129,10 -34b412a,18 -34b412b,9d -34b412c,2 -34b412e,20 -34b412f,25 -34b4130,8e -34b4131,2 -34b4133,8 -34b4134,24 -34b4135,43 -34b4137,8 -34b4138,ae -34b4139,3 -34b413b,8 -34b413c,3c -34b413d,3 -34b413e,e9 -34b4140,ac -34b4141,43 -34b4144,ac -34b4145,40 -34b4147,4 -34b4148,8e -34b4149,2 -34b414b,8 -34b414c,24 -34b414d,43 -34b414f,8 -34b4150,ae -34b4151,3 -34b4153,8 -34b4154,3c -34b4155,3 -34b4156,df -34b4158,ac -34b4159,43 -34b415c,ac -34b415d,40 -34b415f,4 -34b4160,8f -34b4161,bf -34b4163,64 -34b4164,8f -34b4165,be -34b4167,60 -34b4168,8f -34b4169,b7 -34b416b,5c -34b416c,8f -34b416d,b6 -34b416f,58 -34b4170,8f -34b4171,b5 -34b4173,54 -34b4174,8f -34b4175,b4 -34b4177,50 -34b4178,8f -34b4179,b3 -34b417b,4c -34b417c,8f -34b417d,b2 -34b417f,48 -34b4180,8f -34b4181,b1 -34b4183,44 -34b4184,8f -34b4185,b0 -34b4187,40 -34b4188,3 -34b4189,e0 -34b418b,8 -34b418c,27 -34b418d,bd -34b418f,68 -34b4190,10 -34b4192,fe -34b4193,a8 -34b4194,26 -34b4195,73 -34b4197,14 -34b4198,3 -34b4199,e0 -34b419b,8 -34b41a0,27 -34b41a1,bd -34b41a2,ff -34b41a3,e8 -34b41a4,af -34b41a5,bf -34b41a7,14 -34b41a8,c -34b41a9,10 -34b41aa,15 -34b41ab,b7 -34b41ac,24 -34b41ad,4 -34b41ae,4 -34b41b0,3c -34b41b1,3 -34b41b2,80 -34b41b3,40 -34b41b4,ac -34b41b5,62 -34b41b6,64 -34b41b7,e4 -34b41b8,3c -34b41b9,3 -34b41ba,80 -34b41bb,40 -34b41bc,ac -34b41bd,62 -34b41be,64 -34b41bf,e0 -34b41c0,8f -34b41c1,bf -34b41c3,14 -34b41c4,3 -34b41c5,e0 -34b41c7,8 -34b41c8,27 -34b41c9,bd -34b41cb,18 -34b41cc,80 -34b41cd,82 -34b41d0,10 -34b41d1,40 -34b41d3,26 -34b41d4,24 -34b41d5,87 -34b41d7,1 -34b41d8,3c -34b41d9,3 -34b41da,80 -34b41db,40 -34b41dc,8c -34b41dd,68 -34b41de,64 -34b41df,e4 -34b41e0,25 -34b41e1,8 -34b41e2,4 -34b41e4,3c -34b41e5,3 -34b41e6,80 -34b41e7,40 -34b41e8,8c -34b41e9,63 -34b41ea,64 -34b41eb,e0 -34b41ed,68 -34b41ee,20 -34b41ef,2b -34b41f0,10 -34b41f1,80 -34b41f3,1e -34b41f4,3c -34b41f5,a -34b41f6,ff -34b41f8,25 -34b41f9,4a -34b41fa,f -34b41fb,ff -34b41fc,30 -34b41fd,c6 -34b41fe,f -34b41ff,ff -34b4200,24 -34b4201,b -34b4202,f0 -34b4204,3c -34b4205,9 -34b4206,80 -34b4207,40 -34b4208,10 -34b420b,7 -34b420c,25 -34b420d,29 -34b420e,63 -34b420f,c8 -34b4211,68 -34b4212,20 -34b4213,2b -34b4214,54 -34b4215,80 -34b4217,5 -34b4218,a0 -34b4219,62 -34b421c,3c -34b421d,2 -34b421e,80 -34b421f,40 -34b4220,3 -34b4221,e0 -34b4223,8 -34b4224,ac -34b4225,43 -34b4226,64 -34b4227,e0 -34b4228,a0 -34b4229,62 -34b422c,30 -34b422d,a2 -34b422e,f -34b422f,ff -34b4231,2 -34b4232,23 -34b4234,8c -34b4235,62 -34b4239,4a -34b423a,10 -34b423b,24 -34b423d,44 -34b423e,10 -34b423f,25 -34b4241,4b -34b4242,10 -34b4243,24 -34b4245,46 -34b4246,10 -34b4247,25 -34b4248,ac -34b4249,62 -34b424c,95 -34b424d,22 -34b424f,4 -34b4251,a2 -34b4252,28 -34b4253,21 -34b4254,24 -34b4255,e7 -34b4257,1 -34b4258,80 -34b4259,e2 -34b425a,ff -34b425b,ff -34b425c,14 -34b425d,40 -34b425e,ff -34b425f,ec -34b4260,24 -34b4261,63 -34b4263,4 -34b4264,3c -34b4265,2 -34b4266,80 -34b4267,40 -34b4268,ac -34b4269,43 -34b426a,64 -34b426b,e0 -34b426c,3 -34b426d,e0 -34b426f,8 -34b4274,27 -34b4275,bd -34b4276,ff -34b4277,b0 -34b4278,af -34b4279,bf -34b427b,4c -34b427c,af -34b427d,be -34b427f,48 -34b4280,af -34b4281,b7 -34b4283,44 -34b4284,af -34b4285,b6 -34b4287,40 -34b4288,af -34b4289,b5 -34b428b,3c -34b428c,af -34b428d,b4 -34b428f,38 -34b4290,af -34b4291,b3 -34b4293,34 -34b4294,af -34b4295,b2 -34b4297,30 -34b4298,af -34b4299,b1 -34b429b,2c -34b429c,af -34b429d,b0 -34b429f,28 -34b42a1,80 -34b42a2,a8 -34b42a3,25 -34b42a6,b0 -34b42a7,25 -34b42aa,90 -34b42ab,25 -34b42ac,3c -34b42ad,14 -34b42ae,80 -34b42af,40 -34b42b0,26 -34b42b1,94 -34b42b2,63 -34b42b3,c8 -34b42b4,3c -34b42b5,1e -34b42b6,80 -34b42b7,40 -34b42b8,3c -34b42b9,13 -34b42ba,80 -34b42bb,40 -34b42bc,3c -34b42bd,17 -34b42be,38 -34b42bf,e3 -34b42c0,af -34b42c1,b4 -34b42c3,20 -34b42c4,24 -34b42c5,7 -34b42c7,12 -34b42c8,2 -34b42c9,c0 -34b42ca,30 -34b42cb,25 -34b42cc,2 -34b42cd,80 -34b42ce,28 -34b42cf,25 -34b42d0,c -34b42d1,10 -34b42d2,14 -34b42d3,1c -34b42d4,2 -34b42d5,a0 -34b42d6,20 -34b42d7,25 -34b42d8,8f -34b42d9,c5 -34b42da,64 -34b42db,e4 -34b42dc,10 -34b42df,1f -34b42e0,36 -34b42e1,f1 -34b42e2,8e -34b42e3,39 -34b42e4,24 -34b42e5,42 -34b42e6,ff -34b42e7,e0 -34b42e9,51 -34b42eb,18 -34b42ee,18 -34b42ef,10 -34b42f1,3 -34b42f2,18 -34b42f3,83 -34b42f5,2 -34b42f6,27 -34b42f7,c3 -34b42f9,64 -34b42fa,18 -34b42fb,23 -34b42fc,14 -34b42fd,72 -34b42ff,16 -34b4300,24 -34b4301,b0 -34b4303,4 -34b4304,8c -34b4305,a7 -34b4309,7 -34b430a,3b -34b430b,2 -34b430d,51 -34b430f,18 -34b4312,30 -34b4313,10 -34b4315,6 -34b4316,30 -34b4317,83 -34b4319,c4 -34b431a,30 -34b431b,23 -34b431d,6 -34b431e,18 -34b431f,c0 -34b4321,66 -34b4322,30 -34b4323,21 -34b4325,6 -34b4326,30 -34b4327,40 -34b4328,96 -34b4329,83 -34b432b,6 -34b432c,af -34b432d,a3 -34b432f,18 -34b4330,96 -34b4331,83 -34b4333,4 -34b4334,af -34b4335,a3 -34b4337,14 -34b4338,8c -34b4339,a3 -34b433c,30 -34b433d,63 -34b433e,f -34b433f,ff -34b4340,af -34b4341,a3 -34b4343,10 -34b4344,30 -34b4345,e7 -34b4346,f -34b4347,ff -34b4349,46 -34b434a,30 -34b434b,23 -34b434c,8f -34b434d,a5 -34b434f,20 -34b4350,c -34b4351,10 -34b4352,14 -34b4353,af -34b4354,2 -34b4355,a0 -34b4356,20 -34b4357,25 -34b4358,2 -34b435a,28 -34b435b,25 -34b435c,8e -34b435d,62 -34b435e,64 -34b435f,e0 -34b4361,a2 -34b4362,10 -34b4363,2b -34b4364,54 -34b4365,40 -34b4366,ff -34b4367,df -34b4368,80 -34b4369,a2 -34b436c,26 -34b436d,52 -34b436f,1 -34b4370,24 -34b4371,2 -34b4373,6 -34b4374,16 -34b4375,42 -34b4376,ff -34b4377,d3 -34b4378,26 -34b4379,d6 -34b437b,12 -34b437c,3c -34b437d,2 -34b437e,80 -34b437f,40 -34b4380,8c -34b4381,43 -34b4382,64 -34b4383,e4 -34b4384,3c -34b4385,2 -34b4386,80 -34b4387,40 -34b4388,ac -34b4389,43 -34b438a,64 -34b438b,e0 -34b438c,8f -34b438d,bf -34b438f,4c -34b4390,8f -34b4391,be -34b4393,48 -34b4394,8f -34b4395,b7 -34b4397,44 -34b4398,8f -34b4399,b6 -34b439b,40 -34b439c,8f -34b439d,b5 -34b439f,3c -34b43a0,8f -34b43a1,b4 -34b43a3,38 -34b43a4,8f -34b43a5,b3 -34b43a7,34 -34b43a8,8f -34b43a9,b2 -34b43ab,30 -34b43ac,8f -34b43ad,b1 -34b43af,2c -34b43b0,8f -34b43b1,b0 -34b43b3,28 -34b43b4,3 -34b43b5,e0 -34b43b7,8 -34b43b8,27 -34b43b9,bd -34b43bb,50 -34b43bc,4d -34b43bd,51 -34b43c0,4e -34b43c1,6f -34b43c2,72 -34b43c3,6d -34b43c4,61 -34b43c5,6c -34b43cd,8 -34b43cf,e -34b43d1,5f -34b43d2,3 -34b43d3,1 -34b43d4,1 -34b43dd,18 -34b43df,18 -34b43e1,12 -34b43e3,3 -34b43e4,4 -34b43ed,10 -34b43ef,10 -34b43f1,6 -34b43f2,3 -34b43f3,1 -34b43f4,1 -34b43fd,10 -34b43ff,10 -34b4401,3 -34b4403,3 -34b4404,4 -34b4409,1 -34b440a,2 -34b440b,3 -34b440c,4 -34b440d,5 -34b440e,6 -34b440f,7 -34b4410,ff -34b4411,ff -34b4412,ff -34b4413,ff -34b4414,ff -34b4415,ff -34b4418,11 -34b4419,c2 -34b441a,2d -34b441b,d4 -34b441c,43 -34b441d,22 -34b441e,8 -34b441f,54 -34b4420,ce -34b4421,d1 -34b4422,75 -34b4423,1a -34b4424,a9 -34b4425,3a -34b4426,ea -34b4427,a4 -34b4428,ab -34b4429,21 -34b442d,10 -34b442e,44 -34b442f,65 -34b4430,6b -34b4431,75 -34b4438,1 -34b4439,10 -34b443a,44 -34b443b,6f -34b443c,64 -34b443d,6f -34b443e,6e -34b443f,67 -34b4440,6f -34b4444,2 -34b4445,10 -34b4446,4a -34b4447,61 -34b4448,62 -34b4449,75 -34b4450,3 -34b4451,d0 -34b4452,46 -34b4453,6f -34b4454,72 -34b4455,65 -34b4456,73 -34b4457,74 -34b445c,4 -34b445d,d0 -34b445e,46 -34b445f,69 -34b4460,72 -34b4461,65 -34b4468,5 -34b4469,d0 -34b446a,57 -34b446b,61 -34b446c,74 -34b446d,65 -34b446e,72 -34b4474,7 -34b4475,d0 -34b4476,53 -34b4477,68 -34b4478,61 -34b4479,64 -34b447a,6f -34b447b,77 -34b4480,6 -34b4481,d0 -34b4482,53 -34b4483,70 -34b4484,69 -34b4485,72 -34b4486,69 -34b4487,74 -34b448c,8 -34b448d,90 -34b448e,42 -34b448f,6f -34b4490,74 -34b4491,57 -34b4498,9 -34b4499,10 -34b449a,49 -34b449b,63 -34b449c,65 -34b44a4,c -34b44a5,a0 -34b44a6,47 -34b44a7,65 -34b44a8,72 -34b44a9,75 -34b44aa,64 -34b44ab,6f -34b44b0,b -34b44b1,80 -34b44b2,47 -34b44b3,54 -34b44b4,47 -34b44bc,d -34b44bd,c0 -34b44be,47 -34b44bf,61 -34b44c0,6e -34b44c1,6f -34b44c2,6e -34b44cb,1 -34b44cf,d -34b4547,d -34b4548,b0 -34b454b,d -34b454c,b0 -34b454f,d -34b4550,b0 -34b4553,c -34b4554,b0 -34b4557,c -34b4558,b0 -34b455b,c -34b455c,a0 -34b4563,d -34b4564,b0 -34b4567,d -34b4568,b0 -34b457f,e8 -34b4580,ac -34b4583,e8 -34b4584,ac -34b4587,e8 -34b4588,ac -34b458b,e8 -34b458c,ac -34b45b3,d -34b45b4,77 -34b45b5,d0 -34b45b7,2e -34b45b8,3a -34b45b9,b0 -34b45bb,7d -34b45bc,c -34b45bd,90 -34b45be,8f -34b45bf,ff -34b45c0,ff -34b45c1,fd -34b45c3,c9 -34b45c4,6e -34b45c6,2 -34b45c7,e4 -34b45c8,ac -34b45ca,ef -34b45cb,ff -34b45cc,ff -34b45cd,f4 -34b45ce,a -34b45cf,b0 -34b45d0,e5 -34b45d2,c -34b45d3,95 -34b45d4,e0 -34b45d6,e -34b45d7,59 -34b45d8,c0 -34b45ef,7 -34b45f0,90 -34b45f2,5 -34b45f3,ce -34b45f4,eb -34b45f5,40 -34b45f6,c -34b45f7,c8 -34b45f8,a9 -34b45f9,90 -34b45fa,d -34b45fb,a7 -34b45fc,90 -34b45fe,8 -34b45ff,ec -34b4600,b4 -34b4603,4a -34b4604,dd -34b4605,a0 -34b4607,7 -34b4608,97 -34b4609,e2 -34b460a,c -34b460b,88 -34b460c,aa -34b460d,e0 -34b460e,6 -34b460f,ce -34b4610,ed -34b4611,70 -34b4613,7 -34b4614,90 -34b4617,7 -34b4618,90 -34b4626,6d -34b4627,ea -34b462a,c9 -34b462b,4d -34b462c,60 -34b462e,c9 -34b462f,4d -34b4630,60 -34b4631,33 -34b4632,6d -34b4633,eb -34b4634,6b -34b4635,c6 -34b4637,8c -34b4638,b6 -34b463a,7c -34b463b,a4 -34b463c,ce -34b463d,c4 -34b463e,31 -34b463f,9 -34b4640,c3 -34b4641,bb -34b4643,9 -34b4644,c3 -34b4645,bb -34b4647,2 -34b4648,ce -34b4649,d4 -34b465e,4 -34b465f,ce -34b4660,fb -34b4662,a -34b4663,d5 -34b4666,8 -34b4667,e3 -34b466a,9 -34b466b,ec -34b466e,7e -34b466f,4d -34b4670,b0 -34b4671,ab -34b4672,bb -34b4673,5 -34b4674,e8 -34b4675,aa -34b4676,bc -34b4678,8e -34b4679,d6 -34b467a,7e -34b467b,93 -34b467c,6e -34b467d,d0 -34b467e,8 -34b467f,de -34b4680,d9 -34b4681,ea -34b4697,c -34b4698,a0 -34b469b,c -34b469c,a0 -34b469f,c -34b46a0,a0 -34b46a3,c -34b46a4,a0 -34b46c8,c9 -34b46cb,7 -34b46cc,e2 -34b46cf,c -34b46d0,b0 -34b46d3,e -34b46d4,80 -34b46d7,6f -34b46d8,30 -34b46db,8e -34b46df,8e -34b46e3,6f -34b46e4,40 -34b46e7,e -34b46e8,80 -34b46eb,c -34b46ec,b0 -34b46ef,7 -34b46f0,e2 -34b46f4,c9 -34b46ff,bb -34b4703,5e -34b4704,40 -34b4707,c -34b4708,a0 -34b470b,a -34b470c,d0 -34b470f,7 -34b4710,e1 -34b4713,6 -34b4714,f4 -34b4717,6 -34b4718,f4 -34b471b,7 -34b471c,e1 -34b471f,a -34b4720,d0 -34b4723,c -34b4724,a0 -34b4727,5e -34b4728,40 -34b472b,bb -34b473f,a -34b4740,80 -34b4742,c -34b4743,8a -34b4744,8a -34b4745,b0 -34b4746,3 -34b4747,be -34b4748,da -34b4749,10 -34b474a,3 -34b474b,be -34b474c,da -34b474d,10 -34b474e,c -34b474f,8a -34b4750,8a -34b4751,b0 -34b4753,a -34b4754,80 -34b477b,c -34b477c,a0 -34b477f,c -34b4780,a0 -34b4783,c -34b4784,a0 -34b4786,af -34b4787,ff -34b4788,ff -34b4789,f8 -34b478b,c -34b478c,a0 -34b478f,c -34b4790,a0 -34b4793,c -34b4794,a0 -34b47cb,d -34b47cc,d0 -34b47cf,e -34b47d0,c0 -34b47d3,4f -34b47d4,80 -34b47d7,9d -34b47fb,df -34b47fc,fb -34b483b,e -34b483c,c0 -34b483f,e -34b4840,c0 -34b4858,b -34b4859,c0 -34b485c,4e -34b485d,60 -34b4860,bc -34b4863,3 -34b4864,e8 -34b4867,a -34b4868,d0 -34b486b,1e -34b486c,90 -34b486f,9e -34b4870,20 -34b4873,da -34b4876,7 -34b4877,e3 -34b487a,c -34b487b,b0 -34b487e,6e -34b487f,50 -34b488e,3 -34b488f,ce -34b4890,eb -34b4892,b -34b4893,d5 -34b4894,7e -34b4895,90 -34b4896,e -34b4897,90 -34b4898,b -34b4899,d0 -34b489a,5f -34b489b,70 -34b489c,9 -34b489d,e0 -34b489e,6f -34b489f,6c -34b48a0,b9 -34b48a1,e0 -34b48a2,5f -34b48a3,70 -34b48a4,9 -34b48a5,e0 -34b48a6,e -34b48a7,90 -34b48a8,b -34b48a9,d0 -34b48aa,b -34b48ab,d5 -34b48ac,7e -34b48ad,90 -34b48ae,3 -34b48af,ce -34b48b0,eb -34b48c6,a -34b48c7,ff -34b48c8,e0 -34b48cb,8 -34b48cc,e0 -34b48cf,8 -34b48d0,e0 -34b48d3,8 -34b48d4,e0 -34b48d7,8 -34b48d8,e0 -34b48db,8 -34b48dc,e0 -34b48df,8 -34b48e0,e0 -34b48e3,8 -34b48e4,e0 -34b48e6,8 -34b48e7,ff -34b48e8,ff -34b48e9,e0 -34b48fe,8 -34b48ff,de -34b4900,ea -34b4902,c -34b4903,83 -34b4904,7e -34b4905,90 -34b4908,c -34b4909,c0 -34b490c,2e -34b490d,a0 -34b4910,bd -34b4911,20 -34b4913,b -34b4914,d4 -34b4917,bd -34b4918,40 -34b491a,b -34b491b,d4 -34b491e,2f -34b491f,ff -34b4920,ff -34b4921,d0 -34b4936,7 -34b4937,ce -34b4938,ea -34b493a,c -34b493b,83 -34b493c,7e -34b493d,90 -34b4940,c -34b4941,b0 -34b4943,2 -34b4944,7e -34b4945,90 -34b4947,bf -34b4948,fb -34b494b,2 -34b494c,7d -34b494d,a0 -34b4950,a -34b4951,d0 -34b4952,5c -34b4953,62 -34b4954,7d -34b4955,b0 -34b4956,9 -34b4957,de -34b4958,eb -34b4959,30 -34b496f,2 -34b4970,de -34b4973,b -34b4974,de -34b4977,7d -34b4978,9e -34b497a,2 -34b497b,d7 -34b497c,9e -34b497e,b -34b497f,b0 -34b4980,9e -34b4982,6e -34b4983,40 -34b4984,9e -34b4986,9f -34b4987,ff -34b4988,ff -34b4989,f7 -34b498c,9e -34b4990,9e -34b49a6,c -34b49a7,ff -34b49a8,ff -34b49a9,50 -34b49aa,c -34b49ab,a0 -34b49ae,c -34b49af,a0 -34b49b2,c -34b49b3,ee -34b49b4,ea -34b49b7,3 -34b49b8,8e -34b49b9,90 -34b49bc,b -34b49bd,c0 -34b49c0,b -34b49c1,c0 -34b49c2,5c -34b49c3,63 -34b49c4,8e -34b49c5,90 -34b49c6,9 -34b49c7,de -34b49c8,da -34b49df,ae -34b49e0,ec -34b49e1,30 -34b49e2,a -34b49e3,e8 -34b49e4,39 -34b49e5,80 -34b49e6,e -34b49e7,90 -34b49ea,4f -34b49eb,ae -34b49ec,ec -34b49ed,40 -34b49ee,6f -34b49ef,d5 -34b49f0,5d -34b49f1,c0 -34b49f2,5f -34b49f3,90 -34b49f4,9 -34b49f5,e0 -34b49f6,e -34b49f7,90 -34b49f8,9 -34b49f9,e0 -34b49fa,c -34b49fb,d5 -34b49fc,5d -34b49fd,c0 -34b49fe,3 -34b49ff,ce -34b4a00,ec -34b4a01,40 -34b4a16,5f -34b4a17,ff -34b4a18,ff -34b4a19,d0 -34b4a1c,d -34b4a1d,a0 -34b4a20,7e -34b4a21,40 -34b4a24,cc -34b4a27,4 -34b4a28,e8 -34b4a2b,a -34b4a2c,d0 -34b4a2f,d -34b4a30,a0 -34b4a33,8e -34b4a34,40 -34b4a37,cc -34b4a4e,5 -34b4a4f,ce -34b4a50,ec -34b4a51,30 -34b4a52,d -34b4a53,c4 -34b4a54,5d -34b4a55,b0 -34b4a56,e -34b4a57,90 -34b4a58,b -34b4a59,d0 -34b4a5a,b -34b4a5b,c4 -34b4a5c,5d -34b4a5d,90 -34b4a5e,4 -34b4a5f,df -34b4a60,fc -34b4a61,20 -34b4a62,1d -34b4a63,b4 -34b4a64,5c -34b4a65,c0 -34b4a66,5f -34b4a67,60 -34b4a68,9 -34b4a69,e0 -34b4a6a,2e -34b4a6b,b3 -34b4a6c,5c -34b4a6d,d0 -34b4a6e,7 -34b4a6f,de -34b4a70,ec -34b4a71,50 -34b4a86,6 -34b4a87,de -34b4a88,eb -34b4a8a,d -34b4a8b,b3 -34b4a8c,7e -34b4a8d,90 -34b4a8e,5f -34b4a8f,50 -34b4a90,b -34b4a91,d0 -34b4a92,5f -34b4a93,50 -34b4a94,b -34b4a95,e0 -34b4a96,d -34b4a97,b3 -34b4a98,7e -34b4a99,e0 -34b4a9a,6 -34b4a9b,de -34b4a9c,db -34b4a9d,e0 -34b4aa0,b -34b4aa1,c0 -34b4aa2,9 -34b4aa3,74 -34b4aa4,9e -34b4aa5,70 -34b4aa6,5 -34b4aa7,de -34b4aa8,d8 -34b4ac7,e -34b4ac8,c0 -34b4acb,e -34b4acc,c0 -34b4adb,e -34b4adc,c0 -34b4adf,e -34b4ae0,c0 -34b4aff,e -34b4b00,c0 -34b4b03,e -34b4b04,c0 -34b4b13,d -34b4b14,d0 -34b4b17,e -34b4b18,c0 -34b4b1b,4f -34b4b1c,80 -34b4b1f,9d -34b4b38,29 -34b4b39,c8 -34b4b3b,7b -34b4b3c,ed -34b4b3d,93 -34b4b3e,8d -34b4b3f,da -34b4b40,40 -34b4b42,8d -34b4b43,da -34b4b44,40 -34b4b47,7b -34b4b48,ec -34b4b49,93 -34b4b4c,29 -34b4b4d,c8 -34b4b72,af -34b4b73,ff -34b4b74,ff -34b4b75,f8 -34b4b7e,af -34b4b7f,ff -34b4b80,ff -34b4b81,f8 -34b4ba6,ac -34b4ba7,81 -34b4baa,4a -34b4bab,de -34b4bac,b6 -34b4baf,6 -34b4bb0,ad -34b4bb1,d6 -34b4bb3,6 -34b4bb4,ad -34b4bb5,d6 -34b4bb6,4a -34b4bb7,de -34b4bb8,b6 -34b4bba,ac -34b4bbb,81 -34b4bd6,4 -34b4bd7,be -34b4bd8,ec -34b4bd9,30 -34b4bda,9 -34b4bdb,a4 -34b4bdc,6e -34b4bdd,a0 -34b4be0,1d -34b4be1,a0 -34b4be3,2 -34b4be4,cd -34b4be5,30 -34b4be7,c -34b4be8,c1 -34b4beb,e -34b4bec,90 -34b4bf3,e -34b4bf4,90 -34b4bf7,e -34b4bf8,90 -34b4c0e,1 -34b4c0f,ae -34b4c10,ed -34b4c11,70 -34b4c12,c -34b4c13,d7 -34b4c14,39 -34b4c15,e4 -34b4c16,7e -34b4c17,20 -34b4c19,c9 -34b4c1a,ba -34b4c1b,a -34b4c1c,ee -34b4c1d,ca -34b4c1e,d7 -34b4c1f,6e -34b4c20,64 -34b4c21,da -34b4c22,d6 -34b4c23,9c -34b4c25,aa -34b4c26,d7 -34b4c27,6e -34b4c28,64 -34b4c29,da -34b4c2a,ba -34b4c2b,a -34b4c2c,ee -34b4c2d,ca -34b4c2e,6e -34b4c2f,40 -34b4c32,a -34b4c33,d8 -34b4c34,30 -34b4c37,8d -34b4c38,ee -34b4c39,90 -34b4c47,3e -34b4c48,d0 -34b4c4b,9d -34b4c4c,e6 -34b4c4f,cb -34b4c50,cb -34b4c52,3 -34b4c53,e8 -34b4c54,ad -34b4c56,8 -34b4c57,e2 -34b4c58,6f -34b4c59,60 -34b4c5a,c -34b4c5b,c0 -34b4c5c,e -34b4c5d,a0 -34b4c5e,2e -34b4c5f,ff -34b4c60,ff -34b4c61,d0 -34b4c62,8e -34b4c63,50 -34b4c64,8 -34b4c65,f5 -34b4c66,cd -34b4c68,1 -34b4c69,ea -34b4c7e,e -34b4c7f,ff -34b4c80,ec -34b4c81,40 -34b4c82,e -34b4c83,90 -34b4c84,5d -34b4c85,c0 -34b4c86,e -34b4c87,90 -34b4c88,a -34b4c89,e0 -34b4c8a,e -34b4c8b,90 -34b4c8c,5d -34b4c8d,c0 -34b4c8e,e -34b4c8f,ff -34b4c90,fd -34b4c91,50 -34b4c92,e -34b4c93,90 -34b4c94,4b -34b4c95,d2 -34b4c96,e -34b4c97,90 -34b4c98,5 -34b4c99,f6 -34b4c9a,e -34b4c9b,90 -34b4c9c,4b -34b4c9d,e3 -34b4c9e,e -34b4c9f,ff -34b4ca0,ed -34b4ca1,80 -34b4cb7,9d -34b4cb8,ed -34b4cb9,80 -34b4cba,8 -34b4cbb,e9 -34b4cbc,36 -34b4cbd,b0 -34b4cbe,d -34b4cbf,b0 -34b4cc2,3f -34b4cc3,90 -34b4cc6,5f -34b4cc7,70 -34b4cca,1e -34b4ccb,90 -34b4cce,d -34b4ccf,b0 -34b4cd2,8 -34b4cd3,e9 -34b4cd4,47 -34b4cd5,b0 -34b4cd7,9d -34b4cd8,ed -34b4cd9,80 -34b4cee,5f -34b4cef,fe -34b4cf0,d8 -34b4cf2,5f -34b4cf3,65 -34b4cf4,ae -34b4cf5,80 -34b4cf6,5f -34b4cf7,60 -34b4cf8,c -34b4cf9,d0 -34b4cfa,5f -34b4cfb,60 -34b4cfc,9 -34b4cfd,e0 -34b4cfe,5f -34b4cff,60 -34b4d00,9 -34b4d01,f0 -34b4d02,5f -34b4d03,60 -34b4d04,9 -34b4d05,e0 -34b4d06,5f -34b4d07,60 -34b4d08,c -34b4d09,d0 -34b4d0a,5f -34b4d0b,65 -34b4d0c,ae -34b4d0d,80 -34b4d0e,5f -34b4d0f,fe -34b4d10,d8 -34b4d26,d -34b4d27,ff -34b4d28,ff -34b4d29,e0 -34b4d2a,d -34b4d2b,b0 -34b4d2e,d -34b4d2f,b0 -34b4d32,d -34b4d33,b0 -34b4d36,d -34b4d37,ff -34b4d38,ff -34b4d39,c0 -34b4d3a,d -34b4d3b,b0 -34b4d3e,d -34b4d3f,b0 -34b4d42,d -34b4d43,b0 -34b4d46,d -34b4d47,ff -34b4d48,ff -34b4d49,f0 -34b4d5e,b -34b4d5f,ff -34b4d60,ff -34b4d61,f4 -34b4d62,b -34b4d63,d0 -34b4d66,b -34b4d67,d0 -34b4d6a,b -34b4d6b,d0 -34b4d6e,b -34b4d6f,ff -34b4d70,ff -34b4d71,c0 -34b4d72,b -34b4d73,d0 -34b4d76,b -34b4d77,d0 -34b4d7a,b -34b4d7b,d0 -34b4d7e,b -34b4d7f,d0 -34b4d96,1 -34b4d97,ae -34b4d98,ed -34b4d99,60 -34b4d9a,b -34b4d9b,e7 -34b4d9c,38 -34b4d9d,a0 -34b4d9e,4e -34b4d9f,90 -34b4da2,8f -34b4da3,40 -34b4da6,9f -34b4da7,10 -34b4da8,bf -34b4da9,f2 -34b4daa,7f -34b4dab,40 -34b4dac,7 -34b4dad,f2 -34b4dae,4e -34b4daf,90 -34b4db0,7 -34b4db1,f2 -34b4db2,b -34b4db3,e7 -34b4db4,39 -34b4db5,f2 -34b4db6,1 -34b4db7,be -34b4db8,ed -34b4db9,90 -34b4dce,5f -34b4dcf,60 -34b4dd0,9 -34b4dd1,e0 -34b4dd2,5f -34b4dd3,60 -34b4dd4,9 -34b4dd5,e0 -34b4dd6,5f -34b4dd7,60 -34b4dd8,9 -34b4dd9,e0 -34b4dda,5f -34b4ddb,60 -34b4ddc,9 -34b4ddd,e0 -34b4dde,5f -34b4ddf,ff -34b4de0,ff -34b4de1,e0 -34b4de2,5f -34b4de3,60 -34b4de4,9 -34b4de5,e0 -34b4de6,5f -34b4de7,60 -34b4de8,9 -34b4de9,e0 -34b4dea,5f -34b4deb,60 -34b4dec,9 -34b4ded,e0 -34b4dee,5f -34b4def,60 -34b4df0,9 -34b4df1,e0 -34b4e06,d -34b4e07,ff -34b4e08,ff -34b4e09,b0 -34b4e0b,d -34b4e0c,b0 -34b4e0f,d -34b4e10,b0 -34b4e13,d -34b4e14,b0 -34b4e17,d -34b4e18,b0 -34b4e1b,d -34b4e1c,b0 -34b4e1f,d -34b4e20,b0 -34b4e23,d -34b4e24,b0 -34b4e26,d -34b4e27,ff -34b4e28,ff -34b4e29,b0 -34b4e3f,cf -34b4e40,ff -34b4e41,40 -34b4e44,7f -34b4e45,40 -34b4e48,7f -34b4e49,40 -34b4e4c,7f -34b4e4d,40 -34b4e50,7f -34b4e51,40 -34b4e54,7f -34b4e55,30 -34b4e56,75 -34b4e58,9e -34b4e5a,8d -34b4e5b,64 -34b4e5c,dc -34b4e5e,2b -34b4e5f,ee -34b4e60,c5 -34b4e76,5f -34b4e77,60 -34b4e78,9 -34b4e79,e7 -34b4e7a,5f -34b4e7b,60 -34b4e7c,9e -34b4e7d,70 -34b4e7e,5f -34b4e7f,69 -34b4e80,e7 -34b4e82,5f -34b4e83,be -34b4e84,80 -34b4e86,5f -34b4e87,ed -34b4e88,b0 -34b4e8a,5f -34b4e8b,87 -34b4e8c,e8 -34b4e8e,5f -34b4e8f,60 -34b4e90,ae -34b4e91,40 -34b4e92,5f -34b4e93,60 -34b4e94,1d -34b4e95,c0 -34b4e96,5f -34b4e97,60 -34b4e98,6 -34b4e99,ea -34b4eae,c -34b4eaf,c0 -34b4eb2,c -34b4eb3,c0 -34b4eb6,c -34b4eb7,c0 -34b4eba,c -34b4ebb,c0 -34b4ebe,c -34b4ebf,c0 -34b4ec2,c -34b4ec3,c0 -34b4ec6,c -34b4ec7,c0 -34b4eca,c -34b4ecb,c0 -34b4ece,c -34b4ecf,ff -34b4ed0,ff -34b4ed1,f7 -34b4ee6,af -34b4ee7,a0 -34b4ee8,c -34b4ee9,f8 -34b4eea,ae -34b4eeb,d0 -34b4eec,2e -34b4eed,e8 -34b4eee,ad -34b4eef,d5 -34b4ef0,9b -34b4ef1,e8 -34b4ef2,ad -34b4ef3,aa -34b4ef4,c8 -34b4ef5,e8 -34b4ef6,ad -34b4ef7,5d -34b4ef8,e1 -34b4ef9,e8 -34b4efa,ad -34b4efb,d -34b4efc,b0 -34b4efd,e8 -34b4efe,ad -34b4f01,e8 -34b4f02,ad -34b4f05,e8 -34b4f06,ad -34b4f09,e8 -34b4f1e,5f -34b4f1f,c0 -34b4f20,8 -34b4f21,e0 -34b4f22,5f -34b4f23,e6 -34b4f24,8 -34b4f25,e0 -34b4f26,5f -34b4f27,cb -34b4f28,8 -34b4f29,e0 -34b4f2a,5f -34b4f2b,7e -34b4f2c,48 -34b4f2d,e0 -34b4f2e,5f -34b4f2f,5c -34b4f30,a8 -34b4f31,e0 -34b4f32,5f -34b4f33,57 -34b4f34,e8 -34b4f35,e0 -34b4f36,5f -34b4f37,50 -34b4f38,dc -34b4f39,e0 -34b4f3a,5f -34b4f3b,50 -34b4f3c,9e -34b4f3d,e0 -34b4f3e,5f -34b4f3f,50 -34b4f40,2e -34b4f41,e0 -34b4f56,4 -34b4f57,ce -34b4f58,eb -34b4f59,20 -34b4f5a,c -34b4f5b,d5 -34b4f5c,6e -34b4f5d,a0 -34b4f5e,3e -34b4f5f,80 -34b4f60,a -34b4f61,e0 -34b4f62,7f -34b4f63,50 -34b4f64,8 -34b4f65,f2 -34b4f66,7f -34b4f67,40 -34b4f68,8 -34b4f69,f4 -34b4f6a,7f -34b4f6b,50 -34b4f6c,8 -34b4f6d,f2 -34b4f6e,3e -34b4f6f,80 -34b4f70,a -34b4f71,e0 -34b4f72,c -34b4f73,d5 -34b4f74,6e -34b4f75,b0 -34b4f76,4 -34b4f77,ce -34b4f78,eb -34b4f79,20 -34b4f8e,d -34b4f8f,ff -34b4f90,ed -34b4f91,60 -34b4f92,d -34b4f93,b0 -34b4f94,5c -34b4f95,e2 -34b4f96,d -34b4f97,b0 -34b4f98,6 -34b4f99,f6 -34b4f9a,d -34b4f9b,b0 -34b4f9c,6 -34b4f9d,f6 -34b4f9e,d -34b4f9f,b0 -34b4fa0,5c -34b4fa1,e2 -34b4fa2,d -34b4fa3,ff -34b4fa4,ed -34b4fa5,60 -34b4fa6,d -34b4fa7,b0 -34b4faa,d -34b4fab,b0 -34b4fae,d -34b4faf,b0 -34b4fc6,4 -34b4fc7,ce -34b4fc8,eb -34b4fc9,20 -34b4fca,c -34b4fcb,d5 -34b4fcc,6e -34b4fcd,a0 -34b4fce,3e -34b4fcf,80 -34b4fd0,a -34b4fd1,e0 -34b4fd2,7f -34b4fd3,50 -34b4fd4,8 -34b4fd5,f2 -34b4fd6,7f -34b4fd7,40 -34b4fd8,8 -34b4fd9,f4 -34b4fda,7f -34b4fdb,50 -34b4fdc,8 -34b4fdd,f1 -34b4fde,3e -34b4fdf,80 -34b4fe0,a -34b4fe1,d0 -34b4fe2,c -34b4fe3,d5 -34b4fe4,6e -34b4fe5,a0 -34b4fe6,4 -34b4fe7,ce -34b4fe8,fc -34b4fe9,20 -34b4fec,ae -34b4fed,50 -34b4ff0,c -34b4ff1,80 -34b4ffe,5f -34b4fff,fe -34b5000,eb -34b5001,20 -34b5002,5f -34b5003,71 -34b5004,7e -34b5005,b0 -34b5006,5f -34b5007,70 -34b5008,c -34b5009,d0 -34b500a,5f -34b500b,71 -34b500c,6e -34b500d,a0 -34b500e,5f -34b500f,ff -34b5010,ea -34b5012,5f -34b5013,72 -34b5014,ae -34b5015,40 -34b5016,5f -34b5017,70 -34b5018,d -34b5019,b0 -34b501a,5f -34b501b,70 -34b501c,8 -34b501d,e5 -34b501e,5f -34b501f,70 -34b5021,db -34b5036,6 -34b5037,ce -34b5038,eb -34b5039,30 -34b503a,d -34b503b,c4 -34b503c,5a -34b503d,90 -34b503e,4f -34b503f,60 -34b5042,e -34b5043,c6 -34b5046,5 -34b5047,ce -34b5048,eb -34b5049,40 -34b504c,6c -34b504d,c0 -34b5050,8 -34b5051,e0 -34b5052,c -34b5053,73 -34b5054,5c -34b5055,d0 -34b5056,8 -34b5057,de -34b5058,ec -34b5059,50 -34b506e,cf -34b506f,ff -34b5070,ff -34b5071,fb -34b5073,d -34b5074,b0 -34b5077,d -34b5078,b0 -34b507b,d -34b507c,b0 -34b507f,d -34b5080,b0 -34b5083,d -34b5084,b0 -34b5087,d -34b5088,b0 -34b508b,d -34b508c,b0 -34b508f,d -34b5090,b0 -34b50a6,4f -34b50a7,70 -34b50a8,9 -34b50a9,e0 -34b50aa,4f -34b50ab,70 -34b50ac,9 -34b50ad,e0 -34b50ae,4f -34b50af,70 -34b50b0,9 -34b50b1,e0 -34b50b2,4f -34b50b3,70 -34b50b4,9 -34b50b5,e0 -34b50b6,4f -34b50b7,70 -34b50b8,9 -34b50b9,e0 -34b50ba,3f -34b50bb,70 -34b50bc,9 -34b50bd,e0 -34b50be,2e -34b50bf,70 -34b50c0,a -34b50c1,d0 -34b50c2,d -34b50c3,c4 -34b50c4,5d -34b50c5,c0 -34b50c6,5 -34b50c7,ce -34b50c8,ec -34b50c9,40 -34b50de,ad -34b50e0,3 -34b50e1,e8 -34b50e2,6f -34b50e3,50 -34b50e4,8 -34b50e5,e3 -34b50e6,e -34b50e7,90 -34b50e8,b -34b50e9,c0 -34b50ea,b -34b50eb,c0 -34b50ec,d -34b50ed,90 -34b50ee,8 -34b50ef,e1 -34b50f0,5e -34b50f1,40 -34b50f2,2 -34b50f3,e7 -34b50f4,ad -34b50f7,cb -34b50f8,ca -34b50fb,9d -34b50fc,e6 -34b50ff,3e -34b5100,d0 -34b5116,e8 -34b5119,ad -34b511a,da -34b511d,cb -34b511e,cb -34b5121,da -34b5122,ac -34b5123,e -34b5124,c0 -34b5125,e8 -34b5126,8d -34b5127,6d -34b5128,e1 -34b5129,e5 -34b512a,6e -34b512b,9b -34b512c,d8 -34b512d,e0 -34b512e,1e -34b512f,c8 -34b5130,ac -34b5131,d0 -34b5132,d -34b5133,e3 -34b5134,7e -34b5135,c0 -34b5136,c -34b5137,d0 -34b5138,e -34b5139,a0 -34b514e,6e -34b514f,70 -34b5150,7 -34b5151,e7 -34b5152,a -34b5153,d2 -34b5154,1d -34b5155,b0 -34b5156,2 -34b5157,da -34b5158,ad -34b5159,20 -34b515b,7e -34b515c,e7 -34b515f,3e -34b5160,e2 -34b5163,bd -34b5164,da -34b5166,7 -34b5167,e6 -34b5168,7e -34b5169,60 -34b516a,3e -34b516b,a0 -34b516c,b -34b516d,d0 -34b516e,bd -34b516f,20 -34b5170,4 -34b5171,e9 -34b5186,ae -34b5187,20 -34b5188,5 -34b5189,e8 -34b518a,2d -34b518b,a0 -34b518c,c -34b518d,c0 -34b518e,7 -34b518f,e5 -34b5190,7e -34b5191,50 -34b5193,cc -34b5194,da -34b5197,4e -34b5198,d2 -34b519b,d -34b519c,b0 -34b519f,d -34b51a0,b0 -34b51a3,d -34b51a4,b0 -34b51a7,d -34b51a8,b0 -34b51be,e -34b51bf,ff -34b51c0,ff -34b51c1,f8 -34b51c4,b -34b51c5,d3 -34b51c8,7e -34b51c9,70 -34b51cb,3 -34b51cc,ea -34b51cf,b -34b51d0,d1 -34b51d3,8e -34b51d4,50 -34b51d6,4 -34b51d7,e9 -34b51da,c -34b51db,c0 -34b51de,1f -34b51df,ff -34b51e0,ff -34b51e1,fa -34b51ef,4f -34b51f0,fc -34b51f3,4f -34b51f4,50 -34b51f7,4f -34b51f8,50 -34b51fb,4f -34b51fc,50 -34b51ff,4f -34b5200,50 -34b5203,4f -34b5204,50 -34b5207,4f -34b5208,50 -34b520b,4f -34b520c,50 -34b520f,4f -34b5210,50 -34b5213,4f -34b5214,50 -34b5217,4f -34b5218,50 -34b521b,4f -34b521c,fc -34b522e,6e -34b522f,50 -34b5232,c -34b5233,b0 -34b5236,7 -34b5237,e3 -34b523b,da -34b523f,9e -34b5240,20 -34b5243,1e -34b5244,90 -34b5247,a -34b5248,d0 -34b524b,3 -34b524c,e8 -34b5250,bc -34b5254,4e -34b5255,60 -34b5258,b -34b5259,c0 -34b525f,df -34b5260,e0 -34b5263,8 -34b5264,e0 -34b5267,8 -34b5268,e0 -34b526b,8 -34b526c,e0 -34b526f,8 -34b5270,e0 -34b5273,8 -34b5274,e0 -34b5277,8 -34b5278,e0 -34b527b,8 -34b527c,e0 -34b527f,8 -34b5280,e0 -34b5283,8 -34b5284,e0 -34b5287,8 -34b5288,e0 -34b528b,df -34b528c,e0 -34b529f,5e -34b52a0,d2 -34b52a3,dc -34b52a4,db -34b52a6,a -34b52a7,d2 -34b52a8,5e -34b52a9,80 -34b52aa,7e -34b52ab,50 -34b52ac,7 -34b52ad,e5 -34b5302,ff -34b5303,ff -34b5304,ff -34b5305,fd -34b530a,2 -34b530b,ca -34b530f,2c -34b5310,90 -34b534e,5 -34b534f,ce -34b5350,eb -34b5351,10 -34b5352,b -34b5353,93 -34b5354,6d -34b5355,a0 -34b5358,b -34b5359,c0 -34b535a,8 -34b535b,de -34b535c,ff -34b535d,c0 -34b535e,3e -34b535f,93 -34b5360,b -34b5361,d0 -34b5362,4f -34b5363,82 -34b5364,7e -34b5365,d0 -34b5366,a -34b5367,ee -34b5368,db -34b5369,d0 -34b5376,d -34b5377,90 -34b537a,d -34b537b,90 -34b537e,d -34b537f,90 -34b5382,d -34b5383,90 -34b5386,d -34b5387,bd -34b5388,ec -34b5389,40 -34b538a,d -34b538b,e6 -34b538c,5d -34b538d,c0 -34b538e,d -34b538f,b0 -34b5390,8 -34b5391,e0 -34b5392,d -34b5393,a0 -34b5394,7 -34b5395,f2 -34b5396,d -34b5397,b0 -34b5398,8 -34b5399,e0 -34b539a,d -34b539b,e6 -34b539c,4d -34b539d,b0 -34b539e,d -34b539f,bd -34b53a0,ec -34b53a1,40 -34b53bf,8d -34b53c0,ed -34b53c1,70 -34b53c2,7 -34b53c3,e9 -34b53c4,36 -34b53c5,a0 -34b53c6,c -34b53c7,c0 -34b53ca,d -34b53cb,b0 -34b53ce,c -34b53cf,c0 -34b53d2,7 -34b53d3,e9 -34b53d4,36 -34b53d5,a0 -34b53d7,8d -34b53d8,ed -34b53d9,70 -34b53e8,b -34b53e9,c0 -34b53ec,b -34b53ed,c0 -34b53f0,b -34b53f1,c0 -34b53f4,b -34b53f5,c0 -34b53f6,5 -34b53f7,de -34b53f8,dc -34b53f9,c0 -34b53fa,d -34b53fb,c4 -34b53fc,8e -34b53fd,c0 -34b53fe,5f -34b53ff,60 -34b5400,c -34b5401,c0 -34b5402,7f -34b5403,30 -34b5404,b -34b5405,c0 -34b5406,5f -34b5407,60 -34b5408,c -34b5409,c0 -34b540a,d -34b540b,c4 -34b540c,8e -34b540d,c0 -34b540e,5 -34b540f,de -34b5410,dc -34b5411,c0 -34b542e,3 -34b542f,be -34b5430,ec -34b5431,30 -34b5432,c -34b5433,d5 -34b5434,4c -34b5435,c0 -34b5436,4f -34b5437,60 -34b5438,7 -34b5439,e0 -34b543a,6f -34b543b,ff -34b543c,ff -34b543d,f3 -34b543e,4f -34b543f,50 -34b5442,c -34b5443,c5 -34b5444,38 -34b5445,c0 -34b5446,3 -34b5447,be -34b5448,ec -34b5449,60 -34b5457,5 -34b5458,de -34b5459,d0 -34b545b,c -34b545c,b2 -34b545f,d -34b5460,90 -34b5463,e -34b5464,80 -34b5466,d -34b5467,ff -34b5468,ff -34b5469,d0 -34b546b,e -34b546c,80 -34b546f,e -34b5470,80 -34b5473,e -34b5474,80 -34b5477,e -34b5478,80 -34b547b,e -34b547c,80 -34b547f,e -34b5480,80 -34b549e,5 -34b549f,de -34b54a0,dc -34b54a1,c0 -34b54a2,d -34b54a3,c4 -34b54a4,8e -34b54a5,c0 -34b54a6,5f -34b54a7,60 -34b54a8,c -34b54a9,c0 -34b54aa,7f -34b54ab,30 -34b54ac,b -34b54ad,c0 -34b54ae,5f -34b54af,60 -34b54b0,c -34b54b1,c0 -34b54b2,d -34b54b3,c4 -34b54b4,8e -34b54b5,c0 -34b54b6,5 -34b54b7,de -34b54b8,dc -34b54b9,b0 -34b54bc,c -34b54bd,a0 -34b54be,9 -34b54bf,94 -34b54c0,7e -34b54c1,60 -34b54c2,4 -34b54c3,ce -34b54c4,e9 -34b54c6,d -34b54c7,a0 -34b54ca,d -34b54cb,a0 -34b54ce,d -34b54cf,a0 -34b54d2,d -34b54d3,a0 -34b54d6,d -34b54d7,bd -34b54d8,ed -34b54d9,40 -34b54da,d -34b54db,e6 -34b54dc,5d -34b54dd,a0 -34b54de,d -34b54df,b0 -34b54e0,b -34b54e1,c0 -34b54e2,d -34b54e3,a0 -34b54e4,b -34b54e5,c0 -34b54e6,d -34b54e7,a0 -34b54e8,b -34b54e9,c0 -34b54ea,d -34b54eb,a0 -34b54ec,b -34b54ed,c0 -34b54ee,d -34b54ef,a0 -34b54f0,b -34b54f1,c0 -34b54ff,b -34b5500,c0 -34b550e,9 -34b550f,ff -34b5510,c0 -34b5513,b -34b5514,c0 -34b5517,b -34b5518,c0 -34b551b,b -34b551c,c0 -34b551f,b -34b5520,c0 -34b5523,b -34b5524,c0 -34b5526,e -34b5527,ff -34b5528,ff -34b5529,e0 -34b5537,7 -34b5538,e0 -34b5546,7 -34b5547,ff -34b5548,e0 -34b554b,7 -34b554c,e0 -34b554f,7 -34b5550,e0 -34b5553,7 -34b5554,e0 -34b5557,7 -34b5558,e0 -34b555b,7 -34b555c,e0 -34b555f,7 -34b5560,e0 -34b5563,7 -34b5564,e0 -34b5567,1b -34b5568,d0 -34b556a,d -34b556b,fe -34b556c,70 -34b556e,b -34b556f,c0 -34b5572,b -34b5573,c0 -34b5576,b -34b5577,c0 -34b557a,b -34b557b,c0 -34b557e,b -34b557f,c0 -34b5580,3d -34b5581,c2 -34b5582,b -34b5583,c3 -34b5584,db -34b5586,b -34b5587,dd -34b5588,c0 -34b558a,b -34b558b,fc -34b558c,e5 -34b558e,b -34b558f,d0 -34b5590,cd -34b5591,10 -34b5592,b -34b5593,c0 -34b5594,3d -34b5595,b0 -34b5596,b -34b5597,c0 -34b5598,7 -34b5599,e8 -34b55a6,e -34b55a7,ff -34b55a8,40 -34b55ab,5f -34b55ac,40 -34b55af,5f -34b55b0,40 -34b55b3,5f -34b55b4,40 -34b55b7,5f -34b55b8,40 -34b55bb,5f -34b55bc,40 -34b55bf,5f -34b55c0,40 -34b55c3,5f -34b55c4,40 -34b55c7,4f -34b55c8,50 -34b55cb,e -34b55cc,a0 -34b55cf,8 -34b55d0,ef -34b55d1,b0 -34b55ee,8d -34b55ef,dd -34b55f0,ae -34b55f1,c0 -34b55f2,8e -34b55f3,4d -34b55f4,c5 -34b55f5,e4 -34b55f6,8d -34b55f7,c -34b55f8,b0 -34b55f9,e6 -34b55fa,8d -34b55fb,b -34b55fc,a0 -34b55fd,e7 -34b55fe,8d -34b55ff,b -34b5600,a0 -34b5601,e7 -34b5602,8d -34b5603,b -34b5604,a0 -34b5605,e7 -34b5606,8d -34b5607,b -34b5608,a0 -34b5609,e7 -34b5626,d -34b5627,bd -34b5628,ed -34b5629,40 -34b562a,d -34b562b,e6 -34b562c,5d -34b562d,a0 -34b562e,d -34b562f,b0 -34b5630,b -34b5631,c0 -34b5632,d -34b5633,a0 -34b5634,b -34b5635,c0 -34b5636,d -34b5637,a0 -34b5638,b -34b5639,c0 -34b563a,d -34b563b,a0 -34b563c,b -34b563d,c0 -34b563e,d -34b563f,a0 -34b5640,b -34b5641,c0 -34b565e,4 -34b565f,ce -34b5660,eb -34b5661,20 -34b5662,c -34b5663,d5 -34b5664,6d -34b5665,a0 -34b5666,1e -34b5667,70 -34b5668,a -34b5669,d0 -34b566a,5f -34b566b,60 -34b566c,8 -34b566d,e0 -34b566e,1e -34b566f,70 -34b5670,a -34b5671,d0 -34b5672,c -34b5673,d4 -34b5674,6d -34b5675,b0 -34b5676,4 -34b5677,ce -34b5678,eb -34b5679,20 -34b5696,d -34b5697,bd -34b5698,ec -34b5699,30 -34b569a,d -34b569b,e6 -34b569c,5d -34b569d,b0 -34b569e,d -34b569f,b0 -34b56a0,9 -34b56a1,e0 -34b56a2,d -34b56a3,a0 -34b56a4,7 -34b56a5,e0 -34b56a6,d -34b56a7,b0 -34b56a8,8 -34b56a9,e0 -34b56aa,d -34b56ab,e6 -34b56ac,5d -34b56ad,b0 -34b56ae,d -34b56af,be -34b56b0,ec -34b56b1,40 -34b56b2,d -34b56b3,90 -34b56b6,d -34b56b7,90 -34b56ba,d -34b56bb,90 -34b56ce,4 -34b56cf,ce -34b56d0,dc -34b56d1,c0 -34b56d2,c -34b56d3,c4 -34b56d4,7e -34b56d5,c0 -34b56d6,1e -34b56d7,70 -34b56d8,c -34b56d9,c0 -34b56da,5f -34b56db,60 -34b56dc,b -34b56dd,c0 -34b56de,2e -34b56df,70 -34b56e0,c -34b56e1,c0 -34b56e2,c -34b56e3,c4 -34b56e4,7e -34b56e5,c0 -34b56e6,5 -34b56e7,ce -34b56e8,db -34b56e9,c0 -34b56ec,a -34b56ed,c0 -34b56f0,a -34b56f1,c0 -34b56f4,a -34b56f5,c0 -34b5707,cc -34b5708,de -34b5709,f9 -34b570b,ce -34b570c,83 -34b570f,cb -34b5713,ca -34b5717,ca -34b571b,ca -34b571f,ca -34b573e,4 -34b573f,ce -34b5740,ea -34b5741,10 -34b5742,b -34b5743,d4 -34b5744,5b -34b5745,60 -34b5746,b -34b5747,d4 -34b574a,3 -34b574b,bd -34b574c,db -34b574d,20 -34b5750,4d -34b5751,a0 -34b5752,b -34b5753,94 -34b5754,5e -34b5755,a0 -34b5756,5 -34b5757,ce -34b5758,eb -34b5759,20 -34b576f,8e -34b5773,8e -34b5776,6f -34b5777,ff -34b5778,ff -34b5779,b0 -34b577b,8e -34b577f,8e -34b5783,8e -34b5787,8e -34b578b,6e -34b578c,70 -34b578f,b -34b5790,ef -34b5791,b0 -34b57ae,d -34b57af,a0 -34b57b0,b -34b57b1,c0 -34b57b2,d -34b57b3,a0 -34b57b4,b -34b57b5,c0 -34b57b6,d -34b57b7,a0 -34b57b8,b -34b57b9,c0 -34b57ba,d -34b57bb,a0 -34b57bc,b -34b57bd,c0 -34b57be,d -34b57bf,a0 -34b57c0,b -34b57c1,c0 -34b57c2,b -34b57c3,d4 -34b57c4,7e -34b57c5,c0 -34b57c6,5 -34b57c7,de -34b57c8,db -34b57c9,c0 -34b57e6,6e -34b57e7,30 -34b57e8,7 -34b57e9,e3 -34b57ea,d -34b57eb,90 -34b57ec,b -34b57ed,c0 -34b57ee,a -34b57ef,d0 -34b57f0,1e -34b57f1,80 -34b57f2,5 -34b57f3,e4 -34b57f4,8e -34b57f5,20 -34b57f7,da -34b57f8,cb -34b57fb,9d -34b57fc,e7 -34b57ff,3e -34b5800,e0 -34b581e,e8 -34b5821,ac -34b5822,ca -34b5825,ca -34b5826,ac -34b5827,d -34b5828,b0 -34b5829,e7 -34b582a,6e -34b582b,3d -34b582c,d5 -34b582d,e2 -34b582e,e -34b582f,ab -34b5830,ca -34b5831,d0 -34b5832,c -34b5833,e7 -34b5834,9e -34b5835,b0 -34b5836,a -34b5837,e1 -34b5838,5f -34b5839,80 -34b5856,3d -34b5857,a0 -34b5858,b -34b5859,c0 -34b585a,6 -34b585b,e6 -34b585c,9e -34b585d,40 -34b585f,9e -34b5860,e7 -34b5863,2e -34b5864,d0 -34b5867,cc -34b5868,da -34b586a,9 -34b586b,e4 -34b586c,6e -34b586d,70 -34b586e,6e -34b586f,70 -34b5870,9 -34b5871,e4 -34b588e,6e -34b588f,50 -34b5890,5 -34b5891,e5 -34b5892,d -34b5893,a0 -34b5894,b -34b5895,d0 -34b5896,9 -34b5897,e0 -34b5898,e -34b5899,90 -34b589a,3 -34b589b,e7 -34b589c,8e -34b589d,30 -34b589f,cc -34b58a0,cc -34b58a3,7e -34b58a4,e7 -34b58a7,d -34b58a8,e0 -34b58ab,d -34b58ac,a0 -34b58af,8e -34b58b0,50 -34b58b2,d -34b58b3,ea -34b58c6,b -34b58c7,ff -34b58c8,ff -34b58c9,c0 -34b58cc,5e -34b58cd,70 -34b58cf,3 -34b58d0,d9 -34b58d3,c -34b58d4,b0 -34b58d7,bd -34b58d8,20 -34b58da,9 -34b58db,e4 -34b58de,d -34b58df,ff -34b58e0,ff -34b58e1,c0 -34b58ef,6 -34b58f0,de -34b58f1,a0 -34b58f3,b -34b58f4,d3 -34b58f7,c -34b58f8,b0 -34b58fb,c -34b58fc,b0 -34b58ff,5e -34b5900,a0 -34b5902,b -34b5903,fd -34b5904,20 -34b5907,7e -34b5908,90 -34b590b,d -34b590c,b0 -34b590f,c -34b5910,b0 -34b5913,c -34b5914,b0 -34b5917,b -34b5918,d4 -34b591b,5 -34b591c,de -34b591d,a0 -34b5927,c -34b5928,a0 -34b592b,c -34b592c,a0 -34b592f,c -34b5930,a0 -34b5933,c -34b5934,a0 -34b5937,c -34b5938,a0 -34b593b,c -34b593c,a0 -34b593f,c -34b5940,a0 -34b5943,c -34b5944,a0 -34b5947,c -34b5948,a0 -34b594b,c -34b594c,a0 -34b594f,c -34b5950,a0 -34b5953,c -34b5954,a0 -34b5957,c -34b5958,a0 -34b595e,b -34b595f,ed -34b5960,30 -34b5963,4e -34b5964,90 -34b5967,d -34b5968,a0 -34b596b,c -34b596c,a0 -34b596f,b -34b5970,c4 -34b5973,5 -34b5974,ef -34b5975,a0 -34b5977,b -34b5978,d5 -34b597b,c -34b597c,b0 -34b597f,d -34b5980,a0 -34b5983,d -34b5984,a0 -34b5987,5e -34b5988,80 -34b598a,b -34b598b,ec -34b598c,20 -34b59ae,5d -34b59af,ed -34b59b0,83 -34b59b1,a7 -34b59b2,98 -34b59b3,38 -34b59b4,de -34b59b5,c3 +11,45 +12,ae +13,5b +14,97 +15,db +16,41 +17,31 +d261,48 +d262,0 +d265,48 +d266,50 +d267,0 +d269,48 +d26a,0 +d271,4b +d272,30 +d275,4b +d276,e0 +d277,0 +d279,4b +d27a,30 +8a9c51,0 +8a9c52,0 +8a9c53,0 +8a9c55,0 +8a9c56,0 +8a9c57,0 +8a9c58,0 +8a9c59,0 +8a9c5a,0 +8a9c5c,0 +8a9c5d,0 +8a9c5e,0 +8a9c5f,0 +8a9c64,0 +8a9c65,0 +8a9c66,0 +8a9c67,0 +8a9c68,0 +8a9c69,0 +8a9c6a,0 +8a9c6b,0 +8a9c6c,0 +8a9c6d,0 +8a9c6e,0 +8a9c6f,0 +8a9c90,0 +8a9c91,0 +8a9c92,0 +8a9c93,0 +8a9c94,0 +8a9c95,0 +8a9c96,0 +8a9c97,0 +8a9c98,0 +8a9c99,0 +8a9c9a,0 +8a9c9c,0 +8a9c9d,0 +8a9c9e,0 +8a9c9f,0 +8a9ca0,0 +8a9ca3,0 +8a9ca4,0 +8a9ca5,0 +8a9ca6,0 +8a9ca7,0 +8a9ca8,0 +8a9ca9,0 +8a9caa,0 +8a9cab,0 +8a9cac,0 +8a9cad,0 +8a9cae,0 +8a9caf,0 +8a9cb0,0 +8a9cd0,0 +8a9cd1,0 +8a9cd2,0 +8a9cd3,0 +8a9cd4,0 +8a9cd5,0 +8a9cd6,0 +8a9cd7,0 +8a9cd8,0 +8a9cd9,0 +8a9cda,0 +8a9cdc,0 +8a9cdd,0 +8a9cde,0 +8a9cdf,0 +8a9ce0,0 +8a9ce3,0 +8a9ce4,0 +8a9ce5,0 +8a9ce6,0 +8a9ce7,0 +8a9ce8,0 +8a9ce9,0 +8a9cea,0 +8a9ceb,0 +8a9cec,0 +8a9ced,0 +8a9cee,0 +8a9cef,0 +8a9cf0,0 +8a9d10,0 +8a9d11,0 +8a9d12,0 +8a9d13,0 +8a9d14,0 +8a9d15,0 +8a9d16,0 +8a9d17,0 +8a9d18,0 +8a9d19,0 +8a9d1a,0 +8a9d1c,0 +8a9d1d,0 +8a9d1e,0 +8a9d1f,0 +8a9d20,0 +8a9d21,0 +8a9d22,0 +8a9d23,0 +8a9d24,0 +8a9d25,0 +8a9d26,0 +8a9d27,0 +8a9d28,0 +8a9d29,0 +8a9d2a,0 +8a9d2b,0 +8a9d2c,0 +8a9d2d,0 +8a9d2e,0 +8a9d2f,0 +8a9d30,0 +8a9d50,0 +8a9d51,0 +8a9d52,0 +8a9d53,0 +8a9d54,0 +8a9d55,0 +8a9d56,0 +8a9d57,0 +8a9d58,0 +8a9d59,0 +8a9d5a,0 +8a9d5c,0 +8a9d5d,0 +8a9d5e,0 +8a9d5f,0 +8a9d60,0 +8a9d61,0 +8a9d62,0 +8a9d63,0 +8a9d64,0 +8a9d65,0 +8a9d66,0 +8a9d67,0 +8a9d68,0 +8a9d69,0 +8a9d6a,0 +8a9d6b,0 +8a9d6c,0 +8a9d6d,0 +8a9d6e,0 +8a9d6f,0 +8a9d90,0 +8a9d91,0 +8a9d92,0 +8a9d93,0 +8a9d94,0 +8a9d95,0 +8a9d96,0 +8a9d97,0 +8a9d98,0 +8a9d99,0 +8a9d9a,0 +8a9d9c,0 +8a9d9d,0 +8a9d9e,0 +8a9d9f,0 +8a9da0,0 +8a9da1,0 +8a9da2,0 +8a9da3,0 +8a9da4,0 +8a9da6,0 +8a9da7,0 +8a9da8,0 +8a9da9,0 +8a9daa,0 +8a9dab,0 +8a9dac,0 +8a9dad,0 +8a9dae,0 +8a9dd0,0 +8a9dd1,0 +8a9dd2,0 +8a9dd3,0 +8a9dd4,0 +8a9dd5,0 +8a9dd6,0 +8a9dd7,0 +8a9dd8,0 +8a9dd9,0 +8a9dda,0 +8a9ddc,0 +8a9ddd,0 +8a9dde,0 +8a9ddf,0 +8a9de0,0 +8a9de1,0 +8a9de2,0 +8a9de3,0 +8a9de4,0 +8a9de6,0 +8a9de7,0 +8a9de8,0 +8a9de9,0 +8a9dea,0 +8a9deb,0 +8a9dec,0 +8a9ded,0 +8a9dee,0 +8a9e10,0 +8a9e11,0 +8a9e12,0 +8a9e13,0 +8a9e14,0 +8a9e15,0 +8a9e16,0 +8a9e17,0 +8a9e18,0 +8a9e19,0 +8a9e1a,0 +8a9e1c,0 +8a9e1d,0 +8a9e1e,0 +8a9e1f,0 +8a9e20,0 +8a9e21,0 +8a9e22,0 +8a9e23,0 +8a9e24,0 +8a9e26,0 +8a9e27,0 +8a9e28,0 +8a9e29,0 +8a9e2a,0 +8a9e2b,0 +8a9e2c,0 +8a9e2d,0 +8a9e2e,0 +8a9e50,0 +8a9e51,0 +8a9e52,0 +8a9e53,0 +8a9e54,0 +8a9e55,0 +8a9e56,0 +8a9e57,0 +8a9e58,0 +8a9e59,0 +8a9e5a,0 +8a9e5b,0 +8a9e5c,0 +8a9e5d,0 +8a9e5e,0 +8a9e5f,0 +8a9e60,0 +8a9e61,0 +8a9e62,0 +8a9e63,0 +8a9e64,0 +8a9e65,0 +8a9e66,0 +8a9e67,0 +8a9e68,0 +8a9e69,0 +8a9e6a,0 +8a9e6b,0 +8a9e6c,0 +8a9e6d,0 +8a9e6e,0 +8a9e90,0 +8a9e91,0 +8a9e92,0 +8a9e93,0 +8a9e94,0 +8a9e95,0 +8a9e96,0 +8a9e97,0 +8a9e98,0 +8a9e99,0 +8a9e9a,0 +8a9e9b,0 +8a9e9c,0 +8a9e9d,0 +8a9e9e,0 +8a9e9f,0 +8a9ea0,0 +8a9ea1,0 +8a9ea2,0 +8a9ea3,0 +8a9ea4,0 +8a9ea5,0 +8a9ea6,0 +8a9ea7,0 +8a9ea8,0 +8a9ea9,0 +8a9eaa,0 +8a9eab,0 +8a9eac,0 +8a9ead,0 +8a9eae,0 +8a9ed0,0 +8a9ed1,0 +8a9ed2,0 +8a9ed3,0 +8a9ed4,0 +8a9ed5,0 +8a9ed6,0 +8a9ed7,0 +8a9ed8,0 +8a9ed9,0 +8a9eda,0 +8a9edb,0 +8a9edc,0 +8a9edd,0 +8a9ede,0 +8a9edf,0 +8a9ee0,0 +8a9ee3,0 +8a9ee4,0 +8a9ee5,0 +8a9ee6,0 +8a9ee7,0 +8a9ee8,0 +8a9ee9,0 +8a9eea,0 +8a9eeb,0 +8a9eec,0 +8a9eed,0 +8a9eee,0 +8a9f10,0 +8a9f11,0 +8a9f12,0 +8a9f13,0 +8a9f14,0 +8a9f15,0 +8a9f16,0 +8a9f17,0 +8a9f18,0 +8a9f19,0 +8a9f1a,0 +8a9f1b,0 +8a9f1c,0 +8a9f1d,0 +8a9f1e,0 +8a9f1f,0 +8a9f20,0 +8a9f23,0 +8a9f24,0 +8a9f25,0 +8a9f26,0 +8a9f27,0 +8a9f28,0 +8a9f29,0 +8a9f2a,0 +8a9f2b,0 +8a9f2c,0 +8a9f2d,0 +8a9f2e,0 +8a9f50,0 +8a9f51,0 +8a9f52,0 +8a9f53,0 +8a9f55,0 +8a9f56,0 +8a9f57,0 +8a9f58,0 +8a9f59,0 +8a9f5a,0 +8a9f5b,0 +8a9f5c,0 +8a9f5d,0 +8a9f5e,0 +8a9f5f,0 +8a9f64,0 +8a9f65,0 +8a9f66,0 +8a9f67,0 +8a9f68,0 +8a9f69,0 +8a9f6a,0 +8a9f6b,0 +8a9f6c,0 +8a9f6d,0 +8a9f6e,0 +a98c30,c +a98c31,10 +a98c32,a +a98c33,cc +a9e838,8 +a9e839,10 +a9e83a,d +a9e83b,ac +ac9abc,c +ac9abd,10 +ac9abe,b +ac9abf,df +ac9ac1,0 +ac9ac2,0 +ac9ac3,0 +acce88,c +acce89,10 +acce8a,b +acce8b,d0 +acce8c,0 +acce8d,0 +acce8e,0 +acce8f,0 +acce90,0 +acce91,0 +acce94,0 +acce97,0 +acce98,0 +acce99,0 +acce9b,0 +ae59e0,8 +ae59e1,10 +ae59e2,c +ae59e3,e2 +ae5df0,c +ae5df1,10 +ae5df2,d +ae5df3,8b +ae5df8,c +ae5df9,10 +ae5dfa,b +ae5dfb,da +ae5e04,0 +ae5e05,0 +ae5e07,0 +ae6e48,c +ae6e49,10 +ae6e4a,b +ae6e4b,d5 +ae6e4c,1 +ae6e4d,f +ae6e4e,c0 +ae6e4f,21 +b06400,82 +b06402,e +b06403,de +b0640c,31 +b0640d,f8 +b0640e,0 +b0640f,2 +b06c2c,c +b06c2d,10 +b06c2e,d +b06c2f,c1 +b06c31,28 +b06c33,20 +b16b50,c +b16b51,10 +b16b52,c +b16b53,86 +b16b54,0 +b16b56,0 +b16b57,0 +b16b60,c +b16b61,10 +b16b62,c +b16b63,b1 +b16b64,0 +b16b65,0 +b16b66,0 +b16b67,0 +b17bb4,af +b17bb5,bf +b17bb6,0 +b17bb7,1c +b17bb8,af +b17bb9,a4 +b17bba,1 +b17bbb,40 +b17bbc,3c +b17bbd,4 +b17bbe,80 +b17bbf,40 +b17bc0,3c +b17bc1,5 +b17bc2,3 +b17bc3,48 +b17bc4,c +b17bc5,0 +b17bc6,3 +b17bc7,7c +b17bc8,34 +b17bc9,6 +b17bca,50 +b17bcb,0 +b17bcc,c +b17bcd,10 +b17bce,0 +b17bd0,0 +b17bd1,0 +b17bd2,0 +b17bd3,0 +b54b38,c +b54b39,10 +b54b3a,d +b54b3b,9b +b54e5c,c +b54e5d,10 +b54e5e,d +b54e5f,78 +baed6c,0 +baed6d,0 +baed6f,0 +bb77b4,0 +bb77b5,0 +bb77b7,0 +bb7890,c +bb7891,10 +bb7892,c +bb7893,c1 +bb7894,0 +bb7895,0 +bb7897,0 +bb7950,c +bb7951,10 +bb7952,c +bb7953,c8 +bb7954,0 +bb7955,0 +bb7957,0 +bb7ba0,0 +bb7ba1,0 +bb7ba3,0 +bb7bfc,0 +bb7bfd,0 +bb7bff,0 +bb7c3c,c +bb7c3d,10 +bb7c3e,c +bb7c3f,cf +bb7c40,0 +bb7c41,0 +bb7c43,0 +bb7c58,c +bb7c59,10 +bb7c5a,c +bb7c5b,ba +bb7c5c,0 +bb7c5d,0 +bb7c5f,0 +bcecbc,8 +bcecbd,10 +bcecbe,a +bcecbf,94 +bcecc1,0 +bcecc2,0 +bcecc3,0 +bcecc4,0 +bcecc5,0 +bcecc7,0 +bcecc8,0 +bcecc9,0 +bcecca,0 +bceccb,0 +bceccc,0 +bceccd,0 +bcecce,0 +bceccf,0 +bcecd0,0 +bcecd1,0 +bcecd3,0 +bda0a1,10 +bda0a2,a +bda0a3,1a +bda0d8,c +bda0d9,10 +bda0da,a +bda0db,72 +bda0e4,0 +bda0e5,0 +bda0e7,0 +bda264,c +bda265,10 +bda266,a +bda267,76 +bda270,0 +bda271,0 +bda273,0 +be9ac0,c +be9ac1,10 +be9ac2,a +be9ac3,a0 +be9ad8,c +be9ad9,10 +be9ada,a +be9adb,a9 +be9ae4,0 +be9ae5,0 +be9bde,83 +be9bdf,83 +c004ec,8 +c004ed,10 +c004ee,c +c004ef,2b +c0067f,64 +c018a0,c +c018a1,10 +c018a2,c +c018a3,40 +c6c7a8,c +c6c7a9,10 +c6c7aa,c +c6c7ab,50 +c6c920,c +c6c921,10 +c6c922,c +c6c923,50 +c892dc,34 +c892dd,e +c892de,0 +c892df,1 +c8931c,34 +c8931d,a +c8931e,0 +c8931f,1 +c89745,10 +c89746,b +c89747,a5 +c89868,92 +c89869,e +c8986a,1d +c8986b,28 +c898a4,92 +c898a5,19 +c898a6,1d +c898a7,29 +c898c8,92 +c898c9,a +c898ca,1d +c898cb,2a +cb6860,c +cb6861,10 +cb6862,c +cb6863,d6 +d12f78,34 +d12f79,f +d12f7b,0 +d74964,10 +d74965,0 +d7e140,34 +d7e141,e +d7e142,0 +d7e143,1 +d7e144,80 +d7e146,e +d7e147,de +d7e160,84 +d7e161,88 +d7e163,a4 +d7e164,34 +d7e165,1 +d7e167,63 +d7e168,14 +d7e169,28 +d7e16b,3 +d7e16c,34 +d7e16d,2 +d7e16e,20 +d7e16f,49 +d7e170,10 +d7e171,0 +d7e172,0 +d7e173,6 +d7e174,0 +d7e177,0 +d7e178,94 +d7e179,69 +d7e17a,e +d7e17b,d6 +d7e17c,31 +d7e17d,29 +d7e17e,0 +d7e17f,4 +d7e180,15 +d7e181,20 +d7e183,2 +d7e184,34 +d7e185,2 +d7e186,20 +d7e187,44 +d7e188,34 +d7e189,2 +d7e18a,20 +d7e18b,43 +d7e18c,8f +d7e18d,bf +d7e18f,14 +d7e190,27 +d7e191,bd +d7e192,0 +d7e193,18 +d7e194,3 +d7e195,e0 +d7e197,8 +d7e198,0 +d7e199,0 +d7e19a,0 +d7e19b,0 +d7e398,94 +d7e399,89 +d7e39a,e +d7e39b,d6 +d7e39c,31 +d7e39d,28 +d7e39f,10 +d7e3a0,31 +d7e3a1,29 +d7e3a3,4 +d7e3a4,1 +d7e3a5,9 +d7e3a6,40 +d7e3a7,25 +d7e3a8,34 +d7e3a9,9 +d7e3ab,14 +d7e3ac,34 +d7e3ad,1 +d7e3ae,0 +d7e3af,5f +d7e3b0,14 +d7e3b1,23 +d7e3b3,6 +d7e3b4,0 +d7e3b5,0 +d7e3b7,0 +d7e3b8,11 +d7e3b9,9 +d7e3bb,4 +d7e3bc,0 +d7e3bd,0 +d7e3be,0 +d7e3bf,0 +d7e3c0,34 +d7e3c1,2 +d7e3c2,0 +d7e3c3,1 +d7e3c4,3 +d7e3c5,e0 +d7e3c7,8 +d7e3c8,0 +d7e3c9,0 +d7e3cb,0 +d7e3cc,14 +d7e3cd,c2 +d7e3cf,9 +d7e3d0,34 +d7e3d1,1 +d7e3d3,63 +d7e3d4,14 +d7e3d5,23 +d7e3d7,7 +d7e3d8,8c +d7e3d9,8a +d7e3db,10 +d7e3dc,15 +d7e3dd,40 +d7e3df,5 +d7e3e0,0 +d7e3e1,0 +d7e3e2,0 +d7e3e3,0 +d7e3e4,15 +d7e3e5,9 +d7e3e7,3 +d7e3e8,34 +d7e3e9,2 +d7e3eb,1 +d7e3ec,3 +d7e3ed,e0 +d7e3ef,8 +d7e3f0,0 +d7e3f1,0 +d7e3f2,0 +d7e3f3,0 +d7e3f4,34 +d7e3f5,2 +d7e3f6,0 +d7e3f7,0 +d7e3f8,3 +d7e3f9,e0 +d7e3fa,0 +d7e3fb,8 +d7e3fc,0 +d7e3fd,0 +d7e3ff,0 +d7e76c,8f +d7e76d,b8 +d7e76e,0 +d7e76f,44 +d7e778,87 +d7e779,18 +d7e77b,a4 +d7e77c,80 +d7e77d,49 +d7e77e,e +d7e77f,de +d7e784,34 +d7e786,0 +d7e787,1 +d7e788,2 +d7e789,0 +d7e78a,20 +d7e78b,21 +d7e798,15 +d7e79b,2 +d7e79c,34 +d7e79d,19 +d7e79e,0 +d7e79f,5f +d7e7a0,17 +d7e7a1,38 +d7e7a2,0 +d7e7a3,5 +d7e7a4,ae +d7e7a5,b +d7e7a6,1 +d7e7a7,80 +d7e890,0 +d7e891,0 +d7e893,0 +d7e8a0,10 +d7e8a1,0 +d7e8a3,7 +d7e8a4,31 +d7e8a5,4a +d7e8a7,4 +d7e8b0,0 +d7e8b3,0 +d7e8b4,0 +d7e8b5,0 +d7e8b7,0 +d7e8c0,34 +d7e8c1,b +d7e8c2,0 +d7e8c3,14 +d7e8c8,1 +d7e8c9,4b +d7e8ca,50 +d7e8cb,25 +d7e8cc,15 +d7e8cd,4b +d7e8cf,14 +d7e8d4,34 +d7e8d5,e +d7e8d6,0 +d7e8d7,1 +d7e8d8,80 +d7e8da,e +d7e8db,de +d7e8e0,57 +d7e8e3,f +d7ebbc,c +d7ebbd,10 +d7ebbe,b +d7ebbf,e2 +d7ec1c,0 +d7ec1d,0 +d7ec1f,0 +d7ec20,34 +d7ec23,5 +db13d3,76 +db532c,c +db532d,10 +db532e,b +db532f,f2 +df264f,76 +df7cb0,c +df7cb1,10 +df7cb2,c +df7cb3,70 +e09f68,80 +e09f6a,e +e09f6b,de +e09f74,31 +e09f75,f8 +e09f76,0 +e09f77,4 +e09fb0,c +e09fb1,10 +e09fb2,b +e09fb3,ea +e29388,8 +e29389,10 +e2938a,c +e2938b,9 +e2a044,c +e2a045,10 +e2a046,c +e2a047,12 +e2b0b5,10 +e2b0b6,c +e2b0b7,1a +e2f093,34 +e9e1d8,34 +e9e1d9,9 +e9e1da,40 +e9e1db,0 +e9e1f0,34 +e9e1f2,5b +e9e1f3,8 +e9e200,34 +e9e202,0 +e9e203,a +e9e20d,a9 +ebb85c,c +ebb85d,10 +ebb85e,c +ebb85f,5b +ebb865,40 +ebb867,12 +ebb86c,10 +ebb86d,0 +ebb86e,0 +ebb86f,14 +ec68bc,8f +ec68bd,ad +ec68be,0 +ec68bf,2c +ec68c0,34 +ec68c1,c +ec68c2,0 +ec68c3,a +ec68c4,a5 +ec68c5,ac +ec68c6,1 +ec68c7,10 +ec68c8,c +ec68c9,10 +ec68ca,a +ec68cb,37 +ec68cc,2 +ec68cd,0 +ec68ce,28 +ec68cf,21 +ec68d0,0 +ec68d1,0 +ec68d2,0 +ec68d3,0 +ec68d4,0 +ec68d5,0 +ec68d7,0 +ec68da,0 +ec68db,0 +ec68dc,0 +ec68dd,0 +ec68de,0 +ec68df,0 +ec68e0,0 +ec68e1,0 +ec68e2,0 +ec68e3,0 +ec69ad,ad +ec69af,2c +ec69b0,34 +ec69b1,c +ec69b2,0 +ec69b3,a +ec69b4,a5 +ec69b5,ac +ec69b6,1 +ec69b7,10 +ec69b8,c +ec69b9,10 +ec69ba,a +ec69bb,37 +ec69bc,2 +ec69bd,0 +ec69be,28 +ec69bf,21 +ec69c0,0 +ec69c1,0 +ec69c3,0 +ec69c4,0 +ec69c5,0 +ec69c6,0 +ec69c7,0 +ec69c8,0 +ec69c9,0 +ec69cb,0 +ec69cc,0 +ec69cd,0 +ec69ce,0 +ec69cf,0 +ec69d2,0 +ec69d3,0 +ec9ce7,7a +3480000,27 +3480001,bd +3480002,ff +3480003,e8 +3480004,af +3480005,bf +3480007,10 +3480008,3c +3480009,4 +348000a,80 +348000b,40 +348000c,24 +348000d,84 +348000e,50 +3480010,3c +3480011,5 +3480012,3 +3480013,4b +3480014,24 +3480015,a5 +3480016,30 +3480018,34 +3480019,6 +348001a,b0 +348001c,c +348001e,3 +348001f,7c +3480024,c +3480025,10 +3480026,15 +3480027,d9 +348002c,3c +348002d,2 +348002e,80 +348002f,12 +3480030,24 +3480031,42 +3480032,d2 +3480033,a0 +3480034,24 +3480035,e +3480036,1 +3480037,40 +3480038,3c +3480039,1 +348003a,80 +348003b,10 +348003c,ac +348003d,2e +348003e,e5 +3480040,8f +3480041,bf +3480043,10 +3480044,27 +3480045,bd +3480047,18 +3480048,3 +3480049,e0 +348004b,8 +3481c01,5a +3481c02,3b +3481c03,5d +3481c04,5c +3481c05,5e +3481c06,51 +3481c07,52 +3481c08,53 +3482050,ff +3482051,ff +3482052,ff +3482053,ff +3482054,ff +3482055,ff +3482056,ff +3482057,ff +3482058,80 +3482059,40 +348205a,26 +348205b,f4 +348205c,80 +348205d,40 +348205e,25 +348205f,58 +3482060,ff +3482061,ff +3482062,ff +3482063,ff +3482064,ff +3482065,ff +3482066,ff +3482067,ff +3482068,80 +3482069,40 +348206a,26 +348206b,f4 +348206c,80 +348206d,40 +348206e,25 +348206f,74 +3482070,ff +3482071,ff +3482072,ff +3482073,ff +3482074,ff +3482075,ff +3482076,ff +3482077,ff +3482078,80 +3482079,40 +348207a,26 +348207b,f4 +348207c,80 +348207d,40 +348207e,25 +348207f,9c +3482080,ff +3482081,ff +3482082,ff +3482083,ff +3482084,ff +3482085,ff +3482086,ff +3482087,ff +3482088,80 +3482089,40 +348208a,26 +348208b,f4 +348208c,80 +348208d,40 +348208e,25 +348208f,c4 +3482090,ff +3482091,ff +3482092,ff +3482093,ff +3482094,ff +3482095,ff +3482096,ff +3482097,ff +3482098,80 +3482099,40 +348209a,26 +348209b,f4 +348209c,80 +348209d,40 +348209e,25 +348209f,ec +34820a0,53 +34820a1,41 +34820a2,23 +34820a3,f8 +34820a5,d1 +34820a6,ff +34820a7,ff +34820a8,80 +34820a9,40 +34820aa,26 +34820ab,3c +34820ac,80 +34820ad,40 +34820ae,26 +34820af,14 +34820b0,ff +34820b1,ff +34820b2,ff +34820b3,ff +34820b4,ff +34820b5,ff +34820b6,ff +34820b7,ff +34820b8,80 +34820b9,40 +34820ba,26 +34820bb,f4 +34820bc,80 +34820bd,40 +34820be,26 +34820bf,50 +34820c0,ff +34820c1,ff +34820c2,ff +34820c3,ff +34820c4,ff +34820c5,ff +34820c6,ff +34820c7,ff +34820c8,80 +34820c9,40 +34820ca,26 +34820cb,f4 +34820cc,80 +34820cd,40 +34820ce,26 +34820cf,6c +34820d0,ff +34820d1,ff +34820d2,ff +34820d3,ff +34820d4,ff +34820d5,ff +34820d6,ff +34820d7,ff +34820d8,80 +34820d9,40 +34820da,26 +34820db,f4 +34820dc,80 +34820dd,40 +34820de,26 +34820df,88 +34820e0,53 +34820e1,41 +34820e2,38 +34820e3,43 +34820e5,eb +34820e6,15 +34820e7,ff +34820e8,80 +34820e9,40 +34820ea,27 +34820eb,c +34820ec,80 +34820ed,40 +34820ee,25 +34820ef,50 +34820f0,53 +34820f1,41 +34820f2,37 +34820f3,44 +34820f5,eb +34820f6,16 +34820f7,ff +34820f8,80 +34820f9,40 +34820fa,27 +34820fb,c +34820fc,80 +34820fd,40 +34820fe,25 +34820ff,50 +3482100,53 +3482101,41 +3482102,39 +3482103,45 +3482105,eb +3482106,17 +3482107,ff +3482108,80 +3482109,40 +348210a,27 +348210b,c +348210c,80 +348210d,40 +348210e,25 +348210f,50 +3482110,53 +3482111,41 +3482112,6b +3482113,46 +3482114,1 +3482115,77 +3482116,18 +3482117,ff +3482118,80 +3482119,40 +348211a,27 +348211b,c +348211c,80 +348211d,40 +348211e,25 +348211f,50 +3482120,53 +3482121,41 +3482122,3f +3482123,47 +3482125,f4 +3482126,19 +3482127,ff +3482128,80 +3482129,40 +348212a,27 +348212b,c +348212c,80 +348212d,40 +348212e,25 +348212f,50 +3482130,53 +3482131,41 +3482132,67 +3482133,5d +3482134,1 +3482135,73 +3482136,1c +3482137,ff +3482138,80 +3482139,40 +348213a,27 +348213b,c +348213c,80 +348213d,40 +348213e,25 +348213f,50 +3482140,53 +3482141,41 +3482142,68 +3482143,7a +3482144,1 +3482145,74 +3482146,1d +3482147,ff +3482148,80 +3482149,40 +348214a,27 +348214b,c +348214c,80 +348214d,40 +348214e,25 +348214f,50 +3482150,53 +3482151,41 +3482152,70 +3482153,f9 +3482154,1 +3482155,76 +3482156,1e +3482157,ff +3482158,80 +3482159,40 +348215a,27 +348215b,c +348215c,80 +348215d,40 +348215e,25 +348215f,50 +3482160,53 +3482161,41 +3482162,6a +3482163,97 +3482164,1 +3482165,76 +3482166,20 +3482167,ff +3482168,80 +3482169,40 +348216a,27 +348216b,c +348216c,80 +348216d,40 +348216e,25 +348216f,50 +3482170,53 +3482171,41 +3482172,a +3482173,6 +3482175,b9 +3482176,1 +3482177,3 +3482178,80 +3482179,40 +348217a,27 +348217b,48 +348217c,80 +348217d,40 +348217e,25 +348217f,50 +3482180,53 +3482181,41 +3482182,a +3482183,1c +3482185,b9 +3482186,1 +3482187,4 +3482188,80 +3482189,40 +348218a,27 +348218b,48 +348218c,80 +348218d,40 +348218e,25 +348218f,50 +3482190,53 +3482191,41 +3482192,a +3482193,1d +3482195,b9 +3482196,1 +3482197,5 +3482198,80 +3482199,40 +348219a,27 +348219b,48 +348219c,80 +348219d,40 +348219e,25 +348219f,50 +34821a0,53 +34821a1,41 +34821a2,a +34821a3,1e +34821a5,b9 +34821a6,1 +34821a7,6 +34821a8,80 +34821a9,40 +34821aa,27 +34821ab,48 +34821ac,80 +34821ad,40 +34821ae,25 +34821af,50 +34821b0,53 +34821b1,41 +34821b2,a +34821b3,2a +34821b5,b9 +34821b6,1 +34821b7,7 +34821b8,80 +34821b9,40 +34821ba,27 +34821bb,48 +34821bc,80 +34821bd,40 +34821be,25 +34821bf,50 +34821c0,53 +34821c1,41 +34821c2,a +34821c3,61 +34821c5,b9 +34821c6,1 +34821c7,a +34821c8,80 +34821c9,40 +34821ca,27 +34821cb,48 +34821cc,80 +34821cd,40 +34821ce,25 +34821cf,50 +34821d0,4d +34821d1,41 +34821d2,f5 +34821d3,62 +34821d5,b8 +34821d6,2 +34821d8,80 +34821d9,40 +34821da,27 +34821db,48 +34821dc,80 +34821dd,40 +34821de,25 +34821df,50 +34821e0,4d +34821e1,41 +34821e2,f5 +34821e3,63 +34821e5,b8 +34821e6,2 +34821e7,1 +34821e8,80 +34821e9,40 +34821ea,27 +34821eb,48 +34821ec,80 +34821ed,40 +34821ee,25 +34821ef,50 +34821f0,4d +34821f1,41 +34821f2,f5 +34821f3,64 +34821f5,b8 +34821f6,2 +34821f7,2 +34821f8,80 +34821f9,40 +34821fa,27 +34821fb,48 +34821fc,80 +34821fd,40 +34821fe,25 +34821ff,50 +3482200,4d +3482201,41 +3482202,f5 +3482203,65 +3482205,b8 +3482206,2 +3482207,3 +3482208,80 +3482209,40 +348220a,27 +348220b,48 +348220c,80 +348220d,40 +348220e,25 +348220f,50 +3482210,4d +3482211,41 +3482212,f5 +3482213,7c +3482215,b8 +3482216,2 +3482217,4 +3482218,80 +3482219,40 +348221a,27 +348221b,48 +348221c,80 +348221d,40 +348221e,25 +348221f,50 +3482220,4d +3482221,41 +3482222,f5 +3482223,7d +3482225,b8 +3482226,2 +3482227,5 +3482228,80 +3482229,40 +348222a,27 +348222b,48 +348222c,80 +348222d,40 +348222e,25 +348222f,50 +3482230,4d +3482231,41 +3482232,f5 +3482233,7e +3482235,b8 +3482236,2 +3482237,6 +3482238,80 +3482239,40 +348223a,27 +348223b,48 +348223c,80 +348223d,40 +348223e,25 +348223f,50 +3482240,4d +3482241,41 +3482242,f5 +3482243,7f +3482245,b8 +3482246,2 +3482247,7 +3482248,80 +3482249,40 +348224a,27 +348224b,48 +348224c,80 +348224d,40 +348224e,25 +348224f,50 +3482250,4d +3482251,41 +3482252,f5 +3482253,a2 +3482255,b8 +3482256,2 +3482257,8 +3482258,80 +3482259,40 +348225a,27 +348225b,48 +348225c,80 +348225d,40 +348225e,25 +348225f,50 +3482260,4d +3482261,41 +3482262,f5 +3482263,87 +3482265,b8 +3482266,2 +3482267,9 +3482268,80 +3482269,40 +348226a,27 +348226b,48 +348226c,80 +348226d,40 +348226e,25 +348226f,50 +3482270,4d +3482271,41 +3482272,e4 +3482273,88 +3482275,c8 +3482276,4 +3482278,80 +3482279,40 +348227a,27 +348227b,48 +348227c,80 +348227d,40 +348227e,25 +348227f,50 +3482280,4d +3482281,41 +3482282,e4 +3482283,89 +3482285,c8 +3482286,4 +3482287,1 +3482288,80 +3482289,40 +348228a,27 +348228b,48 +348228c,80 +348228d,40 +348228e,25 +348228f,50 +3482290,4d +3482291,41 +3482292,e4 +3482293,8a +3482295,c8 +3482296,4 +3482297,2 +3482298,80 +3482299,40 +348229a,27 +348229b,48 +348229c,80 +348229d,40 +348229e,25 +348229f,50 +34822a0,4d +34822a1,41 +34822a2,e4 +34822a3,8b +34822a5,c8 +34822a6,4 +34822a7,3 +34822a8,80 +34822a9,40 +34822aa,27 +34822ab,48 +34822ac,80 +34822ad,40 +34822ae,25 +34822af,50 +34822b0,4d +34822b1,41 +34822b2,e4 +34822b3,8c +34822b5,c8 +34822b6,4 +34822b7,4 +34822b8,80 +34822b9,40 +34822ba,27 +34822bb,48 +34822bc,80 +34822bd,40 +34822be,25 +34822bf,50 +34822c0,4d +34822c1,41 +34822c2,e4 +34822c3,8e +34822c5,c8 +34822c6,4 +34822c7,5 +34822c8,80 +34822c9,40 +34822ca,27 +34822cb,48 +34822cc,80 +34822cd,40 +34822ce,25 +34822cf,50 +34822d0,4d +34822d1,41 +34822d2,e4 +34822d3,8f +34822d5,c8 +34822d6,4 +34822d7,6 +34822d8,80 +34822d9,40 +34822da,27 +34822db,48 +34822dc,80 +34822dd,40 +34822de,25 +34822df,50 +34822e0,4d +34822e1,41 +34822e2,e4 +34822e3,a3 +34822e5,c8 +34822e6,4 +34822e7,7 +34822e8,80 +34822e9,40 +34822ea,27 +34822eb,48 +34822ec,80 +34822ed,40 +34822ee,25 +34822ef,50 +34822f0,4d +34822f1,41 +34822f2,e4 +34822f3,a5 +34822f5,c8 +34822f6,4 +34822f7,8 +34822f8,80 +34822f9,40 +34822fa,27 +34822fb,48 +34822fc,80 +34822fd,40 +34822fe,25 +34822ff,50 +3482300,4d +3482301,41 +3482302,e4 +3482303,92 +3482305,c8 +3482306,4 +3482307,9 +3482308,80 +3482309,40 +348230a,27 +348230b,48 +348230c,80 +348230d,40 +348230e,25 +348230f,50 +3482310,53 +3482311,41 +3482312,2 +3482313,93 +3482315,aa +3482316,3 +3482317,ff +3482318,80 +3482319,40 +348231a,27 +348231b,64 +348231c,80 +348231d,40 +348231e,25 +348231f,50 +3482320,53 +3482321,41 +3482322,2 +3482323,94 +3482325,aa +3482326,4 +3482327,ff +3482328,80 +3482329,40 +348232a,27 +348232b,64 +348232c,80 +348232d,40 +348232e,25 +348232f,50 +3482330,53 +3482331,41 +3482332,2 +3482333,95 +3482335,aa +3482336,5 +3482337,ff +3482338,80 +3482339,40 +348233a,27 +348233b,64 +348233c,80 +348233d,40 +348233e,25 +348233f,50 +3482340,53 +3482341,41 +3482342,2 +3482343,a6 +3482345,aa +3482346,6 +3482347,ff +3482348,80 +3482349,40 +348234a,27 +348234b,64 +348234c,80 +348234d,40 +348234e,25 +348234f,50 +3482350,53 +3482351,41 +3482352,2 +3482353,a9 +3482355,aa +3482356,7 +3482357,ff +3482358,80 +3482359,40 +348235a,27 +348235b,64 +348235c,80 +348235d,40 +348235e,25 +348235f,50 +3482360,53 +3482361,41 +3482362,2 +3482363,9b +3482365,aa +3482366,8 +3482367,ff +3482368,80 +3482369,40 +348236a,27 +348236b,64 +348236c,80 +348236d,40 +348236e,25 +348236f,50 +3482370,53 +3482371,41 +3482372,2 +3482373,9f +3482375,aa +3482376,b +3482377,ff +3482378,80 +3482379,40 +348237a,27 +348237b,64 +348237c,80 +348237d,40 +348237e,25 +348237f,50 +3482380,53 +3482381,41 +3482382,2 +3482383,a0 +3482385,aa +3482386,c +3482387,ff +3482388,80 +3482389,40 +348238a,27 +348238b,64 +348238c,80 +348238d,40 +348238e,25 +348238f,50 +3482390,53 +3482391,41 +3482392,2 +3482393,a1 +3482395,aa +3482396,d +3482397,ff +3482398,80 +3482399,40 +348239a,27 +348239b,64 +348239c,80 +348239d,40 +348239e,25 +348239f,50 +34823a0,53 +34823a1,3d +34823a2,43 +34823a3,c +34823a5,f8 +34823a6,ff +34823a7,ff +34823a8,80 +34823a9,40 +34823aa,26 +34823ab,fc +34823ac,80 +34823ad,40 +34823ae,25 +34823af,50 +34823b0,4d +34823b1,83 +34823b2,f7 +34823b3,55 +34823b5,b7 +34823b6,ff +34823b7,ff +34823b8,80 +34823b9,40 +34823ba,26 +34823bb,f4 +34823bc,80 +34823bd,40 +34823be,25 +34823bf,50 +34823c0,4d +34823c1,92 +34823c2,db +34823c3,e6 +34823c5,d8 +34823c6,ff +34823c7,ff +34823c8,80 +34823c9,40 +34823ca,26 +34823cb,f4 +34823cc,80 +34823cd,40 +34823ce,26 +34823cf,bc +34823d0,4d +34823d1,93 +34823d2,da +34823d3,e6 +34823d5,d8 +34823d6,ff +34823d7,ff +34823d8,80 +34823d9,40 +34823da,26 +34823db,f4 +34823dc,80 +34823dd,40 +34823de,26 +34823df,bc +34823e0,4d +34823e1,94 +34823e2,d9 +34823e3,e6 +34823e5,d8 +34823e6,ff +34823e7,ff +34823e8,80 +34823e9,40 +34823ea,26 +34823eb,f4 +34823ec,80 +34823ed,40 +34823ee,26 +34823ef,bc +34823f0,4d +34823f1,8e +34823f2,e0 +34823f3,32 +34823f5,ce +34823f6,ff +34823f7,ff +34823f8,80 +34823f9,40 +34823fa,26 +34823fb,f4 +34823fc,80 +34823fd,40 +34823fe,26 +34823ff,d8 +3482400,4d +3482401,8f +3482402,e0 +3482403,32 +3482405,ce +3482406,ff +3482407,ff +3482408,80 +3482409,40 +348240a,26 +348240b,f4 +348240c,80 +348240d,40 +348240e,26 +348240f,d8 +3482410,4d +3482411,90 +3482412,e0 +3482413,32 +3482415,ce +3482416,ff +3482417,ff +3482418,80 +3482419,40 +348241a,26 +348241b,f4 +348241c,80 +348241d,40 +348241e,26 +348241f,d8 +3482420,4d +3482421,8c +3482422,ee +3482423,34 +3482425,bb +3482426,ff +3482427,ff +3482428,80 +3482429,40 +348242a,26 +348242b,f4 +348242c,80 +348242d,40 +348242e,25 +348242f,50 +3482430,4d +3482431,8d +3482432,ee +3482433,34 +3482435,bb +3482436,ff +3482437,ff +3482438,80 +3482439,40 +348243a,26 +348243b,f4 +348243c,80 +348243d,40 +348243e,25 +348243f,50 +3482440,4f +3482441,41 +3482442,ed +3482443,e9 +3482445,bd +3482446,ff +3482447,ff +3482448,80 +3482449,40 +348244a,27 +348244b,8c +348244c,80 +348244d,40 +348244e,25 +348244f,50 +3482450,53 +3482451,41 +3482452,1e +3482453,e4 +3482455,cd +3482456,ff +3482457,ff +3482458,80 +3482459,40 +348245a,27 +348245b,ac +348245c,80 +348245d,40 +348245e,26 +348245f,a4 +3482460,53 +3482461,41 +3482462,1f +3482463,e8 +3482465,cd +3482466,ff +3482467,ff +3482468,80 +3482469,40 +348246a,27 +348246b,cc +348246c,80 +348246d,40 +348246e,25 +348246f,50 +3482470,ff +3482471,ff +3482472,ff +3482473,ff +3482474,ff +3482475,ff +3482476,ff +3482477,ff +3482478,80 +3482479,40 +348247a,26 +348247b,f4 +348247c,80 +348247d,40 +348247e,27 +348247f,f4 +3482480,53 +3482481,41 +3482482,46 +3482483,4a +3482484,1 +3482485,e +3482486,ff +3482487,ff +3482488,80 +3482489,40 +348248a,28 +348248b,3c +348248c,80 +348248d,40 +348248e,28 +348248f,20 +3482490,53 +3482491,41 +3482492,3 +3482493,b0 +3482495,b6 +3482496,6 +3482497,ff +3482498,80 +3482499,40 +348249a,28 +348249b,4c +348249c,80 +348249d,40 +348249e,25 +348249f,50 +34824a0,53 +34824a1,41 +34824a2,4 +34824a3,b1 +34824a5,b6 +34824a6,7 +34824a7,ff +34824a8,80 +34824a9,40 +34824aa,28 +34824ab,4c +34824ac,80 +34824ad,40 +34824ae,25 +34824af,50 +34824b0,53 +34824b1,41 +34824b2,5 +34824b3,b2 +34824b5,b6 +34824b6,8 +34824b7,ff +34824b8,80 +34824b9,40 +34824ba,28 +34824bb,4c +34824bc,80 +34824bd,40 +34824be,25 +34824bf,50 +34824c0,53 +34824c1,41 +34824c2,6 +34824c3,b3 +34824c5,b6 +34824c6,9 +34824c7,ff +34824c8,80 +34824c9,40 +34824ca,28 +34824cb,4c +34824cc,80 +34824cd,40 +34824ce,25 +34824cf,50 +34824d0,53 +34824d1,41 +34824d2,7 +34824d3,b6 +34824d5,b6 +34824d6,a +34824d7,ff +34824d8,80 +34824d9,40 +34824da,28 +34824db,4c +34824dc,80 +34824dd,40 +34824de,25 +34824df,50 +34824e0,53 +34824e1,41 +34824e2,8 +34824e3,b7 +34824e5,b6 +34824e6,b +34824e7,ff +34824e8,80 +34824e9,40 +34824ea,28 +34824eb,4c +34824ec,80 +34824ed,40 +34824ee,25 +34824ef,50 +34824f0,53 +34824f1,41 +34824f2,4 +34824f3,b8 +34824f5,b6 +34824f6,c +34824f7,ff +34824f8,80 +34824f9,40 +34824fa,28 +34824fb,4c +34824fc,80 +34824fd,40 +34824fe,25 +34824ff,50 +3482500,53 +3482501,41 +3482502,6 +3482503,b9 +3482505,b6 +3482506,d +3482507,ff +3482508,80 +3482509,40 +348250a,28 +348250b,4c +348250c,80 +348250d,40 +348250e,25 +348250f,50 +3482510,53 +3482511,41 +3482512,3 +3482513,ba +3482515,b6 +3482516,e +3482517,ff +3482518,80 +3482519,40 +348251a,28 +348251b,4c +348251c,80 +348251d,40 +348251e,25 +348251f,50 +3482520,53 +3482521,41 +3482522,8 +3482523,bb +3482525,b6 +3482526,f +3482527,ff +3482528,80 +3482529,40 +348252a,28 +348252b,4c +348252c,80 +348252d,40 +348252e,25 +348252f,50 +3482530,53 +3482531,41 +3482532,5 +3482533,bc +3482535,b6 +3482536,10 +3482537,ff +3482538,80 +3482539,40 +348253a,28 +348253b,4c +348253c,80 +348253d,40 +348253e,25 +348253f,50 +3482540,53 +3482541,41 +3482542,7 +3482543,bd +3482545,b6 +3482546,11 +3482547,ff +3482548,80 +3482549,40 +348254a,28 +348254b,4c +348254c,80 +348254d,40 +348254e,25 +348254f,50 +3482550,3 +3482551,e0 +3482553,8 +3482554,34 +3482555,a2 +3482558,90 +3482559,88 +348255b,7d +348255c,34 +348255d,1 +348255f,ff +3482560,11 +3482561,1 +3482563,2 +3482564,34 +3482565,2 +3482567,8 +3482568,34 +3482569,2 +348256b,9 +348256c,3 +348256d,e0 +348256f,8 +3482574,90 +3482575,88 +3482577,a3 +3482578,31 +3482579,8 +348257b,c0 +348257c,11 +348257f,5 +3482580,34 +3482581,2 +3482583,54 +3482584,34 +3482585,1 +3482587,40 +3482588,11 +3482589,1 +348258b,2 +348258c,34 +348258d,2 +348258f,35 +3482590,34 +3482591,2 +3482593,36 +3482594,3 +3482595,e0 +3482597,8 +348259c,90 +348259d,88 +348259f,a3 +34825a0,31 +34825a1,8 +34825a3,18 +34825a4,11 +34825a7,5 +34825a8,34 +34825a9,2 +34825ab,32 +34825ac,34 +34825ad,1 +34825af,8 +34825b0,11 +34825b1,1 +34825b3,2 +34825b4,34 +34825b5,2 +34825b7,33 +34825b8,34 +34825b9,2 +34825bb,34 +34825bc,3 +34825bd,e0 +34825bf,8 +34825c4,90 +34825c5,88 +34825c7,a3 +34825c8,31 +34825c9,8 +34825cb,3 +34825cc,11 +34825cf,5 +34825d0,34 +34825d1,2 +34825d3,4 +34825d4,34 +34825d5,1 +34825d7,1 +34825d8,11 +34825d9,1 +34825db,2 +34825dc,34 +34825dd,2 +34825df,30 +34825e0,34 +34825e1,2 +34825e3,31 +34825e4,3 +34825e5,e0 +34825e7,8 +34825ec,90 +34825ed,88 +34825ef,a2 +34825f0,31 +34825f1,8 +34825f3,c0 +34825f4,11 +34825f7,5 +34825f8,34 +34825f9,2 +34825fb,5 +34825fc,34 +34825fd,1 +34825ff,40 +3482600,11 +3482601,1 +3482603,2 +3482604,34 +3482605,2 +3482607,60 +3482608,34 +3482609,2 +348260b,7b +348260c,3 +348260d,e0 +348260f,8 +3482614,90 +3482615,88 +3482617,a2 +3482618,31 +3482619,8 +348261b,30 +348261c,11 +348261f,5 +3482620,34 +3482621,2 +3482623,45 +3482624,34 +3482625,9 +3482627,10 +3482628,11 +3482629,9 +348262b,2 +348262c,34 +348262d,2 +348262f,46 +3482630,34 +3482631,a2 +3482634,3 +3482635,e0 +3482637,8 +348263c,90 +348263d,88 +348263f,a2 +3482640,35 +3482641,8 +3482643,30 +3482644,a0 +3482645,88 +3482647,a2 +3482648,3 +3482649,e0 +348264b,8 +3482650,90 +3482651,88 +3482653,a2 +3482654,31 +3482655,8 +3482657,6 +3482658,11 +348265b,2 +348265c,34 +348265d,2 +348265f,37 +3482660,34 +3482661,2 +3482663,38 +3482664,3 +3482665,e0 +3482667,8 +348266c,90 +348266d,88 +348266f,a1 +3482670,31 +3482671,8 +3482673,20 +3482674,11 +3482677,2 +3482678,34 +3482679,2 +348267b,79 +348267c,34 +348267d,2 +348267f,7a +3482680,3 +3482681,e0 +3482683,8 +3482688,90 +3482689,88 +348268b,a1 +348268c,31 +348268d,8 +348268f,4 +3482690,11 +3482693,2 +3482694,34 +3482695,2 +3482697,77 +3482698,34 +3482699,2 +348269b,78 +348269c,3 +348269d,e0 +348269f,8 +34826a4,90 +34826a5,88 +34826a7,32 +34826a8,11 +34826ab,2 +34826ac,34 +34826ad,2 +34826af,c0 +34826b0,34 +34826b1,2 +34826b3,c1 +34826b4,3 +34826b5,e0 +34826b7,8 +34826bc,90 +34826bd,88 +34826bf,a3 +34826c0,31 +34826c1,8 +34826c3,3 +34826c4,11 +34826c7,2 +34826c8,34 +34826c9,2 +34826cb,4d +34826cc,34 +34826cd,a2 +34826d0,3 +34826d1,e0 +34826d3,8 +34826d8,90 +34826d9,88 +34826db,a3 +34826dc,31 +34826dd,8 +34826df,18 +34826e0,11 +34826e3,2 +34826e4,34 +34826e5,2 +34826e7,4d +34826e8,34 +34826e9,a2 +34826ec,3 +34826ed,e0 +34826ef,8 +34826f4,3 +34826f5,e0 +34826f7,8 +34826fc,34 +34826fd,8 +34826ff,1 +3482700,a0 +3482701,88 +3482703,3e +3482704,3 +3482705,e0 +3482707,8 +348270c,24 +348270d,88 +348270f,86 +3482710,24 +3482711,9 +3482712,ff +3482713,ff +3482714,25 +3482715,29 +3482717,1 +3482718,34 +3482719,1 +348271b,3 +348271d,29 +348271e,8 +348271f,2a +3482720,14 +3482721,20 +3482723,7 +3482728,1 +3482729,9 +348272a,50 +348272b,21 +348272c,91 +348272d,4b +3482730,34 +3482731,1 +3482733,ff +3482734,15 +3482735,61 +3482736,ff +3482737,f7 +348273c,a1 +348273d,45 +3482740,3 +3482741,e0 +3482743,8 +3482748,24 +3482749,88 +348274b,a8 +348274c,1 +348274d,6 +348274e,40 +348274f,21 +3482750,91 +3482751,9 +3482754,1 +3482755,25 +3482756,48 +3482757,25 +3482758,a1 +3482759,9 +348275c,3 +348275d,e0 +348275f,8 +3482764,24 +3482765,88 +3482767,bc +3482768,1 +3482769,5 +348276a,40 +348276b,21 +348276c,81 +348276d,9 +3482770,5 +3482771,21 +3482773,2 +3482778,34 +3482779,9 +348277c,25 +348277d,29 +348277f,1 +3482780,a1 +3482781,9 +3482784,3 +3482785,e0 +3482787,8 +348278c,34 +348278d,8 +348278f,1 +3482790,a0 +3482791,88 +3482793,3d +3482794,34 +3482795,8 +3482797,14 +3482798,a0 +3482799,88 +348279b,cf +348279c,34 +348279d,8 +348279e,1 +348279f,40 +34827a0,a4 +34827a1,88 +34827a2,14 +34827a3,24 +34827a4,3 +34827a5,e0 +34827a7,8 +34827ac,34 +34827ad,8 +34827af,1 +34827b0,a0 +34827b1,88 +34827b3,32 +34827b4,a0 +34827b5,88 +34827b7,3a +34827b8,34 +34827b9,8 +34827bb,30 +34827bc,a4 +34827bd,88 +34827be,13 +34827bf,f4 +34827c0,a0 +34827c1,88 +34827c3,33 +34827c4,3 +34827c5,e0 +34827c7,8 +34827cc,34 +34827cd,8 +34827cf,2 +34827d0,a0 +34827d1,88 +34827d3,32 +34827d4,34 +34827d5,8 +34827d7,1 +34827d8,a0 +34827d9,88 +34827db,3a +34827dc,a0 +34827dd,88 +34827df,3c +34827e0,34 +34827e1,8 +34827e3,60 +34827e4,a4 +34827e5,88 +34827e6,13 +34827e7,f4 +34827e8,a0 +34827e9,88 +34827eb,33 +34827ec,3 +34827ed,e0 +34827ef,8 +34827f4,90 +34827f5,88 +34827f7,7c +34827f8,34 +34827f9,1 +34827fb,ff +34827fc,11 +34827fd,1 +34827ff,6 +3482800,34 +3482801,2 +3482803,6b +3482804,90 +3482805,88 +3482807,94 +3482808,2d +3482809,8 +348280b,6 +348280c,11 +348280f,2 +3482810,34 +3482811,2 +3482813,6a +3482814,34 +3482815,2 +3482817,3 +3482818,3 +3482819,e0 +348281b,8 +3482820,90 +3482821,88 +3482823,7b +3482824,34 +3482825,1 +3482827,ff +3482828,11 +3482829,1 +348282b,2 +348282c,34 +348282d,a2 +3482830,34 +3482831,2 +3482833,c +3482834,3 +3482835,e0 +3482837,8 +348283c,34 +348283d,8 +348283f,7 +3482840,a0 +3482841,88 +3482843,7b +3482844,3 +3482845,e0 +3482847,8 +348284c,34 +348284d,8 +348284f,1 +3482851,a8 +3482852,40 +3482853,4 +3482854,8c +3482855,89 +3482857,a4 +3482858,1 +3482859,28 +348285a,48 +348285b,25 +348285c,ac +348285d,89 +348285f,a4 +3482860,3 +3482861,e0 +3482863,8 +3482868,30 +3482869,84 +348286b,ff +348286c,3c +348286d,8 +348286e,80 +348286f,12 +3482870,25 +3482871,8 +3482872,a5 +3482873,d0 +3482874,34 +3482875,1 +3482877,8c +3482878,10 +3482879,81 +348287b,16 +348287c,91 +348287d,2 +348287f,75 +3482880,34 +3482881,1 +3482883,8d +3482884,10 +3482885,81 +3482887,13 +3482888,91 +3482889,2 +348288b,75 +348288c,10 +348288d,80 +348288f,11 +3482890,91 +3482891,2 +3482893,74 +3482894,34 +3482895,1 +3482897,8a +3482898,10 +3482899,81 +348289b,e +348289c,91 +348289d,2 +348289f,74 +34828a0,34 +34828a1,1 +34828a3,8b +34828a4,10 +34828a5,81 +34828a7,b +34828a8,91 +34828a9,2 +34828ab,74 +34828ac,34 +34828ad,1 +34828af,58 +34828b0,10 +34828b1,81 +34828b3,8 +34828b4,34 +34828b5,2 +34828b8,34 +34828b9,1 +34828bb,78 +34828bc,10 +34828bd,81 +34828bf,5 +34828c0,34 +34828c1,2 +34828c4,34 +34828c5,1 +34828c7,79 +34828c8,10 +34828c9,81 +34828cb,2 +34828cc,34 +34828cd,2 +34828d0,34 +34828d1,2 +34828d3,ff +34828d4,3 +34828d5,e0 +34828d7,8 +34828dc,27 +34828dd,bd +34828de,ff +34828df,e0 +34828e0,af +34828e1,bf +34828e3,10 +34828e4,af +34828e5,b0 +34828e7,14 +34828e8,c +34828e9,10 +34828ea,b +34828eb,13 +34828f0,4 +34828f1,41 +34828f3,2 +34828f8,34 +34828f9,2 +34828fb,5b +34828fd,40 +34828fe,20 +34828ff,21 +3482900,c +3482901,10 +3482902,b +3482903,84 +3482908,10 +3482909,60 +348290b,16 +348290c,af +348290d,a3 +348290f,1c +3482910,3c +3482911,8 +3482912,80 +3482913,40 +3482914,25 +3482915,8 +3482916,20 +3482918,85 +3482919,9 +348291b,2 +348291c,11 +348291d,20 +348291f,3 +3482920,34 +3482921,a +3482923,1 +3482924,10 +3482927,c +3482928,a5 +3482929,a +348292c,3c +348292d,4 +348292e,80 +348292f,12 +3482930,24 +3482931,84 +3482932,a5 +3482933,d0 +3482934,90 +3482935,65 +3482937,6 +3482938,90 +3482939,66 +348293b,7 +348293c,8c +348293d,69 +348293f,8 +3482940,1 +3482941,20 +3482942,f8 +3482943,9 +3482948,8f +3482949,a3 +348294b,1c +348294c,90 +348294d,65 +348294f,1 +3482950,c +3482951,1 +3482952,bf +3482953,73 +3482954,2 +3482955,20 +3482956,20 +3482957,21 +3482958,8f +3482959,a3 +348295b,1c +348295c,90 +348295d,65 +348295f,3 +3482960,10 +3482963,11 +3482964,3c +3482965,9 +3482966,80 +3482967,3b +3482968,25 +3482969,29 +348296a,9e +348296b,7e +348296c,34 +348296d,a +348296f,6 +3482971,4a +3482973,18 +3482976,50 +3482977,12 +3482978,1 +3482979,2a +348297a,80 +348297b,21 +348297c,82 +348297d,5 +3482980,3c +3482981,8 +3482982,80 +3482983,40 +3482984,25 +3482985,8 +3482986,20 +3482988,85 +3482989,9 +348298b,2 +348298c,11 +348298d,20 +348298f,3 +3482990,34 +3482991,a +3482993,1 +3482994,a5 +3482995,a +3482998,34 +3482999,5 +348299b,41 +348299c,c +348299d,1 +348299e,bf +348299f,73 +34829a0,2 +34829a1,20 +34829a2,20 +34829a3,21 +34829a4,92 +34829a5,5 +34829a7,3 +34829a8,2 +34829a9,20 +34829aa,20 +34829ab,21 +34829ac,c +34829ad,3 +34829ae,73 +34829af,85 +34829b2,30 +34829b3,21 +34829b4,8f +34829b5,bf +34829b7,10 +34829b8,8f +34829b9,b0 +34829bb,14 +34829bc,27 +34829bd,bd +34829bf,20 +34829c0,3 +34829c1,e0 +34829c3,8 +34829c8,8f +34829c9,a6 +34829cb,30 +34829cc,84 +34829cd,c5 +34829cf,4 +34829d0,8 +34829d1,10 +34829d2,a +34829d3,7a +34829d8,8f +34829d9,b9 +34829db,2c +34829dc,87 +34829dd,25 +34829df,4 +34829e0,8 +34829e1,10 +34829e2,a +34829e3,7a +34829e8,3c +34829e9,a +34829ea,80 +34829eb,40 +34829ec,25 +34829ed,4a +34829ee,20 +34829ef,8 +34829f0,8d +34829f1,4b +34829f3,c +34829f4,11 +34829f5,60 +34829f7,2 +34829fc,95 +34829fd,45 +34829ff,4 +3482a00,3c +3482a01,a +3482a02,80 +3482a03,1e +3482a04,25 +3482a05,4a +3482a06,89 +3482a07,84 +3482a08,a5 +3482a09,40 +3482a0c,3c +3482a0d,9 +3482a0e,80 +3482a0f,40 +3482a10,25 +3482a11,29 +3482a12,20 +3482a13,18 +3482a14,81 +3482a15,2a +3482a17,3 +3482a18,5 +3482a19,40 +3482a1b,b +3482a1c,1 +3482a1d,2a +3482a1e,48 +3482a1f,20 +3482a20,81 +3482a21,28 +3482a24,34 +3482a25,a +3482a27,7f +3482a28,15 +3482a29,a +3482a2b,6 +3482a30,3c +3482a31,a +3482a32,80 +3482a33,12 +3482a34,25 +3482a35,4a +3482a36,a5 +3482a37,d0 +3482a38,85 +3482a39,48 +3482a3b,90 +3482a3c,21 +3482a3d,8 +3482a3f,1 +3482a40,a5 +3482a41,48 +3482a43,90 +3482a44,a1 +3482a45,20 +3482a48,3 +3482a49,e0 +3482a4b,8 +3482a50,3c +3482a51,8 +3482a52,80 +3482a53,40 +3482a54,25 +3482a55,8 +3482a56,20 +3482a57,8 +3482a58,8d +3482a59,9 +3482a5b,c +3482a5c,11 +3482a5d,20 +3482a5f,2 +3482a64,81 +3482a65,3 +3482a67,2 +3482a69,3 +3482a6a,f +3482a6b,c3 +3482a6d,61 +3482a6e,40 +3482a6f,26 +3482a70,1 +3482a71,1 +3482a72,40 +3482a73,23 +3482a74,a0 +3482a75,88 +3482a76,8 +3482a77,52 +3482a78,3 +3482a79,e0 +3482a7b,8 +3482a80,90 +3482a81,45 +3482a83,3 +3482a84,3c +3482a85,8 +3482a86,80 +3482a87,40 +3482a88,25 +3482a89,8 +3482a8a,20 +3482a8b,8 +3482a8c,8d +3482a8d,9 +3482a8f,c +3482a90,11 +3482a91,20 +3482a93,2 +3482a98,91 +3482a99,5 +3482a9b,3 +3482a9c,3 +3482a9d,e0 +3482a9f,8 +3482aa4,8f +3482aa5,a2 +3482aa7,24 +3482aa8,90 +3482aa9,45 +3482aac,3c +3482aad,8 +3482aae,80 +3482aaf,40 +3482ab0,25 +3482ab1,8 +3482ab2,20 +3482ab4,85 +3482ab5,9 +3482ab7,2 +3482ab8,11 +3482ab9,20 +3482abb,4 +3482abc,34 +3482abd,a +3482abf,1 +3482ac0,a5 +3482ac1,a +3482ac4,10 +3482ac7,18 +3482ac8,34 +3482ac9,5 +3482acb,41 +3482acc,3c +3482acd,8 +3482ace,80 +3482acf,40 +3482ad0,25 +3482ad1,8 +3482ad2,20 +3482ad3,8 +3482ad4,8d +3482ad5,9 +3482ad7,c +3482ad8,11 +3482ad9,20 +3482adb,13 +3482ae0,91 +3482ae1,5 +3482ae3,1 +3482ae4,af +3482ae5,a4 +3482ae8,af +3482ae9,a5 +3482aeb,4 +3482aec,af +3482aed,a6 +3482aef,8 +3482af0,27 +3482af1,bd +3482af2,ff +3482af3,e8 +3482af4,af +3482af5,bf +3482af7,10 +3482af8,3c +3482af9,4 +3482afa,80 +3482afb,12 +3482afc,24 +3482afd,84 +3482afe,a5 +3482aff,d0 +3482b00,91 +3482b01,5 +3482b03,6 +3482b04,91 +3482b05,6 +3482b07,7 +3482b08,8d +3482b09,9 +3482b0b,8 +3482b0c,1 +3482b0d,20 +3482b0e,f8 +3482b0f,9 +3482b14,8f +3482b15,bf +3482b17,10 +3482b18,27 +3482b19,bd +3482b1b,18 +3482b1c,8f +3482b1d,a4 +3482b20,8f +3482b21,a5 +3482b23,4 +3482b24,8f +3482b25,a6 +3482b27,8 +3482b28,3 +3482b29,e0 +3482b2b,8 +3482b30,a0 +3482b31,e6 +3482b32,4 +3482b33,24 +3482b34,27 +3482b35,bd +3482b36,ff +3482b37,e0 +3482b38,af +3482b39,a2 +3482b3b,10 +3482b3c,af +3482b3d,a3 +3482b3f,14 +3482b40,af +3482b41,bf +3482b43,18 +3482b44,c +3482b45,10 +3482b46,a +3482b47,d9 +3482b4c,8f +3482b4d,a2 +3482b4f,10 +3482b50,8f +3482b51,a3 +3482b53,14 +3482b54,8f +3482b55,bf +3482b57,18 +3482b58,27 +3482b59,bd +3482b5b,20 +3482b5c,3 +3482b5d,e0 +3482b5f,8 +3482b64,27 +3482b65,bd +3482b66,ff +3482b67,e8 +3482b68,af +3482b69,bf +3482b6b,10 +3482b6c,3c +3482b6d,8 +3482b6e,80 +3482b6f,40 +3482b70,25 +3482b71,8 +3482b72,20 +3482b73,8 +3482b74,ad +3482b78,ad +3482b7b,4 +3482b7c,ad +3482b7f,8 +3482b80,ad +3482b83,c +3482b84,3c +3482b85,8 +3482b86,80 +3482b87,1e +3482b88,25 +3482b89,8 +3482b8a,aa +3482b8b,30 +3482b8c,81 +3482b8d,9 +3482b8e,4 +3482b8f,24 +3482b90,11 +3482b91,20 +3482b93,2a +3482b99,9 +3482b9a,f +3482b9b,c3 +3482b9c,1 +3482b9d,21 +3482b9e,20 +3482b9f,26 +3482ba1,81 +3482ba2,20 +3482ba3,23 +3482ba4,8d +3482ba5,5 +3482ba6,4 +3482ba7,28 +3482ba8,c +3482ba9,10 +3482baa,b +3482bab,13 +3482bb0,4 +3482bb1,40 +3482bb3,22 +3482bb8,34 +3482bb9,44 +3482bbc,c +3482bbd,10 +3482bbe,b +3482bbf,84 +3482bc4,10 +3482bc5,60 +3482bc7,c +3482bcc,3c +3482bcd,8 +3482bce,80 +3482bcf,40 +3482bd0,25 +3482bd1,8 +3482bd2,20 +3482bd3,8 +3482bd4,8c +3482bd5,69 +3482bd8,ad +3482bd9,9 +3482bdc,8c +3482bdd,69 +3482bdf,4 +3482be0,ad +3482be1,9 +3482be3,4 +3482be4,8c +3482be5,69 +3482be7,8 +3482be8,ad +3482be9,9 +3482beb,8 +3482bec,34 +3482bed,9 +3482bef,1 +3482bf0,ad +3482bf1,9 +3482bf3,c +3482bf4,90 +3482bf5,62 +3482bf8,3c +3482bf9,8 +3482bfa,80 +3482bfb,1e +3482bfc,25 +3482bfd,8 +3482bfe,aa +3482bff,30 +3482c00,8d +3482c01,9 +3482c02,4 +3482c03,28 +3482c04,95 +3482c05,2a +3482c08,34 +3482c09,1 +3482c0b,a +3482c0c,15 +3482c0d,41 +3482c0f,6 +3482c14,95 +3482c15,2a +3482c17,1c +3482c18,31 +3482c19,4a +3482c1a,f0 +3482c1b,1f +3482c1d,2 +3482c1e,59 +3482c1f,40 +3482c20,1 +3482c21,4b +3482c22,50 +3482c23,25 +3482c24,a5 +3482c25,2a +3482c27,1c +3482c28,81 +3482c29,9 +3482c2a,4 +3482c2b,24 +3482c2c,5 +3482c2d,21 +3482c2f,2 +3482c35,2 +3482c36,10 +3482c37,23 +3482c38,a1 +3482c39,2 +3482c3a,4 +3482c3b,24 +3482c3c,8f +3482c3d,bf +3482c3f,10 +3482c40,27 +3482c41,bd +3482c43,18 +3482c44,3 +3482c45,e0 +3482c47,8 +3482c4c,27 +3482c4d,bd +3482c4e,ff +3482c4f,e8 +3482c50,af +3482c51,bf +3482c53,10 +3482c54,c +3482c55,10 +3482c56,b +3482c57,21 +3482c5c,24 +3482c5d,1 +3482c5e,ff +3482c5f,ff +3482c60,10 +3482c61,41 +3482c63,4 +3482c68,34 +3482c69,44 +3482c6c,c +3482c6d,10 +3482c6e,b +3482c6f,5f +3482c74,8f +3482c75,bf +3482c77,10 +3482c78,27 +3482c79,bd +3482c7b,18 +3482c7c,3 +3482c7d,e0 +3482c7f,8 +3482c84,3c +3482c85,2 +3482c86,80 +3482c87,1d +3482c88,24 +3482c89,42 +3482c8a,84 +3482c8b,a0 +3482c8c,94 +3482c8d,42 +3482c8f,a4 +3482c90,34 +3482c91,8 +3482c94,34 +3482c95,89 +3482c98,94 +3482c99,aa +3482c9c,34 +3482c9d,1 +3482c9e,1 +3482c9f,9c +3482ca0,15 +3482ca1,41 +3482ca3,8 +3482ca8,34 +3482ca9,8 +3482cab,3 +3482cac,94 +3482cad,ab +3482caf,1c +3482cb0,31 +3482cb1,69 +3482cb3,ff +3482cb4,31 +3482cb5,62 +3482cb6,1f +3482cb9,2 +3482cba,12 +3482cbb,2 +3482cbc,10 +3482cbf,1f +3482cc4,34 +3482cc5,1 +3482cc7,a +3482cc8,15 +3482cc9,41 +3482ccb,e +3482cd0,94 +3482cd1,ab +3482cd3,1c +3482cd4,34 +3482cd5,1 +3482cd7,10 +3482cd8,14 +3482cd9,41 +3482cdb,8 +3482ce0,31 +3482ce1,6c +3482ce2,f +3482ce3,e0 +3482ce4,34 +3482ce5,1 +3482ce6,e +3482ce7,a0 +3482ce8,15 +3482ce9,81 +3482ceb,4 +3482cf0,24 +3482cf1,2 +3482cf2,ff +3482cf3,ff +3482cf4,10 +3482cf7,1f +3482cfc,34 +3482cfd,8 +3482cff,1 +3482d00,31 +3482d01,69 +3482d03,1f +3482d04,34 +3482d05,1 +3482d07,15 +3482d08,15 +3482d09,41 +3482d0b,c +3482d10,34 +3482d11,1 +3482d13,3e +3482d14,10 +3482d15,81 +3482d17,7 +3482d1c,34 +3482d1d,1 +3482d1f,42 +3482d20,10 +3482d21,81 +3482d23,4 +3482d28,24 +3482d29,2 +3482d2a,ff +3482d2b,ff +3482d2c,10 +3482d2f,11 +3482d34,34 +3482d35,8 +3482d37,2 +3482d38,90 +3482d39,a9 +3482d3a,1 +3482d3b,41 +3482d3c,34 +3482d3d,1 +3482d3e,1 +3482d3f,1a +3482d40,15 +3482d41,41 +3482d43,8 +3482d48,34 +3482d49,1 +3482d4b,3e +3482d4c,14 +3482d4d,41 +3482d4f,5 +3482d54,34 +3482d55,8 +3482d57,4 +3482d58,3c +3482d59,b +3482d5a,80 +3482d5b,12 +3482d5c,25 +3482d5d,6b +3482d5e,a5 +3482d5f,d0 +3482d60,81 +3482d61,62 +3482d62,13 +3482d63,97 +3482d65,2 +3482d66,12 +3482d69,48 +3482d6a,10 +3482d6b,25 +3482d6d,2 +3482d6e,12 +3482d71,49 +3482d72,10 +3482d73,25 +3482d74,3 +3482d75,e0 +3482d77,8 +3482d7c,24 +3482d7d,2 +3482d7e,ff +3482d7f,ff +3482d80,3c +3482d81,8 +3482d82,80 +3482d83,40 +3482d84,25 +3482d85,8 +3482d86,1c +3482d88,81 +3482d89,9 +3482d8c,3c +3482d8d,8 +3482d8e,80 +3482d8f,12 +3482d90,25 +3482d91,8 +3482d92,a5 +3482d93,d0 +3482d94,a5 +3482d95,9 +3482d96,14 +3482d97,6 +3482d98,3c +3482d99,8 +3482d9a,80 +3482d9b,40 +3482d9c,25 +3482d9d,8 +3482d9e,f +3482d9f,fc +3482da0,25 +3482da1,8 +3482da3,4 +3482da4,8d +3482da5,9 +3482da8,11 +3482da9,20 +3482dab,17 +3482db1,9 +3482db2,52 +3482db3,2 +3482db4,31 +3482db5,4b +3482db6,f8 +3482db9,b +3482dba,5a +3482dbb,c2 +3482dbc,3c +3482dbd,c +3482dbe,ff +3482dbf,ff +3482dc0,35 +3482dc1,8c +3482dc2,7 +3482dc3,ff +3482dc4,1 +3482dc5,4c +3482dc6,50 +3482dc7,24 +3482dc8,15 +3482dc9,44 +3482dca,ff +3482dcb,f5 +3482dd0,31 +3482dd1,22 +3482dd3,ff +3482dd4,3c +3482dd5,8 +3482dd6,80 +3482dd7,12 +3482dd8,25 +3482dd9,8 +3482dda,a5 +3482ddb,d0 +3482ddc,a5 +3482ddd,b +3482dde,14 +3482ddf,6 +3482de0,3c +3482de1,9 +3482de2,80 +3482de3,40 +3482de4,25 +3482de5,29 +3482de6,20 +3482de8,3c +3482de9,c +3482dea,80 +3482deb,40 +3482dec,25 +3482ded,8c +3482dee,1c +3482df0,81 +3482df1,8c +3482df4,11 +3482df5,6c +3482df7,4 +3482df8,a5 +3482df9,20 +3482dfb,2 +3482dfc,a1 +3482dfd,2b +3482dff,2 +3482e00,a1 +3482e01,22 +3482e03,3 +3482e04,ad +3482e05,24 +3482e07,4 +3482e08,3 +3482e09,e0 +3482e0b,8 +3482e10,27 +3482e11,bd +3482e12,ff +3482e13,e0 +3482e14,af +3482e15,b0 +3482e17,10 +3482e18,af +3482e19,b1 +3482e1b,14 +3482e1c,af +3482e1d,bf +3482e1f,18 +3482e20,34 +3482e21,82 +3482e24,34 +3482e25,50 +3482e28,26 +3482e29,8 +3482e2a,ff +3482e2b,80 +3482e2c,5 +3482e2f,12 +3482e34,3c +3482e35,11 +3482e36,80 +3482e37,40 +3482e38,26 +3482e39,31 +3482e3a,20 +3482e3b,50 +3482e3c,34 +3482e3d,9 +3482e3f,10 +3482e40,1 +3482e41,9 +3482e43,18 +3482e46,40 +3482e47,12 +3482e48,2 +3482e49,28 +3482e4a,88 +3482e4b,21 +3482e4c,3c +3482e4d,4 +3482e4e,80 +3482e4f,12 +3482e50,24 +3482e51,84 +3482e52,a5 +3482e53,d0 +3482e54,36 +3482e55,5 +3482e58,8e +3482e59,28 +3482e5b,c +3482e5c,1 +3482e5e,f8 +3482e5f,9 +3482e64,14 +3482e65,50 +3482e66,ff +3482e67,ef +3482e6c,36 +3482e6d,23 +3482e70,10 +3482e73,2 +3482e78,34 +3482e79,3 +3482e7c,8f +3482e7d,b0 +3482e7f,10 +3482e80,8f +3482e81,b1 +3482e83,14 +3482e84,8f +3482e85,bf +3482e87,18 +3482e88,27 +3482e89,bd +3482e8b,20 +3482e8c,3 +3482e8d,e0 +3482e8f,8 +3482e94,8c +3482e95,88 +3482e96,1d +3482e97,2c +3482e98,34 +3482e99,9 +3482e9b,1 +3482e9d,9 +3482e9e,4e +3482ea0,1 +3482ea1,9 +3482ea2,10 +3482ea3,24 +3482ea4,10 +3482ea5,40 +3482ea7,24 +3482eac,94 +3482ead,ca +3482eae,2 +3482eaf,dc +3482eb0,3c +3482eb1,b +3482eb2,80 +3482eb3,12 +3482eb4,25 +3482eb5,6b +3482eb6,a5 +3482eb7,d0 +3482eb8,94 +3482eb9,8c +3482ebb,a4 +3482ebc,34 +3482ebd,1 +3482ebf,3d +3482ec0,11 +3482ec1,81 +3482ec3,a +3482ec9,8a +3482eca,60 +3482ecb,21 +3482ecc,91 +3482ecd,8d +3482ece,1d +3482ecf,28 +3482ed0,15 +3482ed1,a0 +3482ed3,19 +3482ed8,34 +3482ed9,d +3482edb,1 +3482edc,a1 +3482edd,8d +3482ede,1d +3482edf,28 +3482ee0,25 +3482ee1,4a +3482ee3,3 +3482ee4,10 +3482ee7,9 +3482eec,34 +3482eed,c +3482eef,1 +3482ef0,1 +3482ef1,4c +3482ef2,60 +3482ef3,4 +3482ef4,91 +3482ef5,6d +3482ef6,e +3482ef7,f2 +3482ef8,1 +3482ef9,ac +3482efa,70 +3482efb,24 +3482efc,15 +3482efd,c0 +3482eff,e +3482f04,1 +3482f05,ac +3482f06,70 +3482f07,25 +3482f08,a1 +3482f09,6e +3482f0a,e +3482f0b,f2 +3482f0c,1 +3482f0d,29 +3482f0e,48 +3482f0f,27 +3482f10,1 +3482f11,9 +3482f12,40 +3482f13,24 +3482f14,ac +3482f15,88 +3482f16,1d +3482f17,2c +3482f18,3c +3482f19,8 +3482f1a,80 +3482f1b,40 +3482f1c,25 +3482f1d,8 +3482f1e,1c +3482f1f,3 +3482f20,1 +3482f21,a +3482f22,40 +3482f23,21 +3482f24,81 +3482f25,8 +3482f28,3c +3482f29,9 +3482f2a,80 +3482f2b,40 +3482f2c,25 +3482f2d,29 +3482f2e,20 +3482f2f,18 +3482f30,a1 +3482f31,28 +3482f34,34 +3482f35,2 +3482f38,3 +3482f39,e0 +3482f3b,8 +3482f40,3c +3482f41,8 +3482f42,80 +3482f43,40 +3482f44,25 +3482f45,8 +3482f46,1c +3482f47,1 +3482f48,81 +3482f49,8 +3482f4c,10 +3482f4f,22 +3482f54,3c +3482f55,8 +3482f56,80 +3482f57,40 +3482f58,25 +3482f59,8 +3482f5a,1c +3482f5b,2 +3482f5c,81 +3482f5d,8 +3482f60,10 +3482f63,1d +3482f68,34 +3482f69,2 +3482f6b,ff +3482f6c,20 +3482f6d,e8 +3482f6e,ff +3482f6f,a6 +3482f70,21 +3482f71,8 +3482f73,61 +3482f74,10 +3482f77,18 +3482f7c,34 +3482f7d,8 +3482f7f,64 +3482f80,10 +3482f83,15 +3482f88,3c +3482f89,1 +3482f8a,80 +3482f8b,12 +3482f8c,24 +3482f8d,21 +3482f8e,a5 +3482f8f,d0 +3482f90,80 +3482f91,28 +3482f92,e +3482f93,de +3482f94,35 +3482f95,8 +3482f97,1 +3482f98,a0 +3482f99,28 +3482f9a,e +3482f9b,de +3482f9c,34 +3482f9d,8 +3482f9f,68 +3482fa0,10 +3482fa3,d +3482fa8,3c +3482fa9,1 +3482faa,80 +3482fab,12 +3482fac,24 +3482fad,21 +3482fae,a5 +3482faf,d0 +3482fb0,80 +3482fb1,28 +3482fb2,e +3482fb3,de +3482fb4,35 +3482fb5,8 +3482fb7,4 +3482fb8,a0 +3482fb9,28 +3482fba,e +3482fbb,de +3482fbc,34 +3482fbd,8 +3482fbf,6a +3482fc0,10 +3482fc3,5 +3482fc8,34 +3482fc9,5 +3482fcb,3 +3482fcc,34 +3482fcd,8 +3482fcf,6b +3482fd0,10 +3482fd3,1 +3482fd8,3c +3482fd9,9 +3482fda,80 +3482fdb,40 +3482fdc,25 +3482fdd,29 +3482fde,20 +3482fdf,18 +3482fe0,3c +3482fe1,a +3482fe2,80 +3482fe3,40 +3482fe4,25 +3482fe5,4a +3482fe6,20 +3482fe7,1b +3482fe8,81 +3482fe9,2c +3482fec,11 +3482fed,88 +3482fef,b +3482ff0,21 +3482ff1,29 +3482ff3,1 +3482ff4,15 +3482ff5,2a +3482ff6,ff +3482ff7,fc +3482ffc,3c +3482ffd,9 +3482ffe,80 +3482fff,40 +3483000,25 +3483001,29 +3483002,20 +3483003,17 +3483004,21 +3483005,29 +3483007,1 +3483008,11 +3483009,2a +348300b,4 +348300c,81 +348300d,2c +3483010,15 +3483011,80 +3483012,ff +3483013,fc +3483018,a1 +3483019,28 +348301c,3 +348301d,e0 +348301f,8 +3483025,60 +3483026,78 +3483027,21 +3483028,81 +3483029,ec +348302a,e +348302b,df +348302c,31 +348302d,8e +348302f,80 +3483030,11 +3483031,c0 +3483033,3 +3483034,34 +3483035,3 +3483037,5 +3483038,3 +3483039,e0 +348303b,8 +348303c,34 +348303d,2 +348303f,2 +3483040,3 +3483041,e0 +3483043,8 +3483045,60 +3483046,10 +3483047,21 +3483048,85 +3483049,c2 +348304b,a4 +348304c,3c +348304d,8 +348304e,80 +348304f,12 +3483050,25 +3483051,8 +3483052,a5 +3483053,d0 +3483054,81 +3483055,9 +3483056,e +3483057,df +3483058,35 +3483059,29 +348305b,80 +348305c,a1 +348305d,9 +348305e,e +348305f,df +3483060,3 +3483061,e0 +3483063,8 +3483068,27 +3483069,bd +348306a,ff +348306b,f0 +348306c,af +348306d,bf +348306f,4 +3483070,c +3483071,3 +3483072,58 +3483073,86 +3483078,3c +3483079,c +348307a,80 +348307b,12 +348307c,25 +348307d,8c +348307e,a5 +348307f,d0 +3483080,85 +3483081,8d +3483082,f +3483083,2e +3483084,8d +3483085,98 +3483087,4 +3483088,13 +348308b,2 +348308c,34 +348308d,e +348308f,1 +3483090,34 +3483091,e +3483093,2 +3483094,1 +3483095,ae +3483096,68 +3483097,25 +3483098,a5 +3483099,8d +348309a,f +348309b,2e +348309c,8f +348309d,bf +348309f,4 +34830a0,27 +34830a1,bd +34830a3,10 +34830a4,3 +34830a5,e0 +34830a7,8 +34830ac,84 +34830ad,8e +34830af,1c +34830b0,21 +34830b1,cd +34830b2,ff +34830b3,ce +34830b4,5 +34830b5,a0 +34830b7,10 +34830b8,34 +34830b9,2 +34830bc,31 +34830bd,a9 +34830bf,7 +34830c0,34 +34830c1,a +34830c3,1 +34830c4,1 +34830c5,2a +34830c6,50 +34830c7,4 +34830c9,d +34830ca,48 +34830cb,c2 +34830cc,3c +34830cd,c +34830ce,80 +34830cf,12 +34830d0,25 +34830d1,8c +34830d2,a5 +34830d3,d0 +34830d4,1 +34830d5,89 +34830d6,60 +34830d7,20 +34830d8,81 +34830d9,8b +34830da,5 +34830db,b4 +34830dc,1 +34830dd,6a +34830de,58 +34830df,24 +34830e0,34 +34830e1,2 +34830e4,11 +34830e5,60 +34830e7,4 +34830ec,34 +34830ed,d +34830ef,26 +34830f0,a4 +34830f1,8d +34830f3,1c +34830f4,34 +34830f5,2 +34830f7,1 +34830f8,3 +34830f9,e0 +34830fb,8 +3483100,84 +3483101,ae +3483103,1c +3483104,21 +3483105,cd +3483106,ff +3483107,ce +3483108,5 +3483109,a0 +348310b,b +348310c,34 +348310d,2 +3483110,31 +3483111,a9 +3483113,7 +3483114,34 +3483115,a +3483117,1 +3483118,1 +3483119,2a +348311a,50 +348311b,4 +348311d,d +348311e,48 +348311f,c2 +3483120,3c +3483121,c +3483122,80 +3483123,12 +3483124,25 +3483125,8c +3483126,a5 +3483127,d0 +3483128,1 +3483129,89 +348312a,60 +348312b,20 +348312c,81 +348312d,8b +348312e,5 +348312f,b4 +3483130,1 +3483131,6a +3483132,58 +3483133,25 +3483134,a1 +3483135,8b +3483136,5 +3483137,b4 +3483138,3 +3483139,e0 +348313b,8 +3483140,27 +3483141,bd +3483142,ff +3483143,f0 +3483144,af +3483145,bf +3483147,8 +3483148,28 +3483149,81 +348314b,32 +348314c,10 +348314d,20 +348314f,3 +3483151,80 +3483152,10 +3483153,21 +3483154,3 +3483155,20 +3483156,f8 +3483157,9 +348315c,8f +348315d,bf +348315f,8 +3483160,27 +3483161,bd +3483163,10 +3483164,3 +3483165,e0 +3483167,8 +348316c,3c +348316d,8 +348316e,80 +348316f,1d +3483170,25 +3483171,8 +3483172,84 +3483173,a0 +3483174,3c +3483175,9 +3483176,80 +3483177,12 +3483178,25 +3483179,29 +348317a,a5 +348317b,d0 +348317c,85 +348317d,a +348317f,a4 +3483180,34 +3483181,1 +3483183,3e +3483184,15 +3483185,41 +3483187,2 +3483188,81 +3483189,2b +348318a,13 +348318b,97 +348318c,21 +348318d,6a +348318f,2d +3483190,86 +3483191,b +3483193,1c +3483194,21 +3483195,6b +3483197,1 +3483198,34 +3483199,c +348319b,1 +348319c,1 +348319d,6c +348319e,60 +348319f,4 +34831a0,34 +34831a1,1 +34831a3,1c +34831a4,1 +34831a5,41 +34831a7,18 +34831aa,68 +34831ab,12 +34831ac,1 +34831ad,2d +34831ae,70 +34831af,20 +34831b0,8d +34831b1,cf +34831b3,e4 +34831b4,1 +34831b5,8f +34831b6,10 +34831b7,24 +34831b8,3 +34831b9,e0 +34831bb,8 +34831c0,3c +34831c1,8 +34831c2,80 +34831c3,1d +34831c4,25 +34831c5,8 +34831c6,84 +34831c7,a0 +34831c8,3c +34831c9,9 +34831ca,80 +34831cb,12 +34831cc,25 +34831cd,29 +34831ce,a5 +34831cf,d0 +34831d0,85 +34831d1,a +34831d3,a4 +34831d4,34 +34831d5,1 +34831d7,3e +34831d8,15 +34831d9,41 +34831db,2 +34831dc,81 +34831dd,2b +34831de,13 +34831df,97 +34831e0,21 +34831e1,6a +34831e3,2d +34831e4,84 +34831e5,8b +34831e7,1c +34831e8,21 +34831e9,6b +34831eb,1 +34831ec,34 +34831ed,c +34831ef,1 +34831f0,1 +34831f1,6c +34831f2,60 +34831f3,4 +34831f4,34 +34831f5,1 +34831f7,1c +34831f8,1 +34831f9,41 +34831fb,18 +34831fe,68 +34831ff,12 +3483200,1 +3483201,2d +3483202,70 +3483203,20 +3483204,8d +3483205,cf +3483207,e4 +3483208,1 +3483209,8f +348320a,78 +348320b,25 +348320c,ad +348320d,cf +348320f,e4 +3483210,3 +3483211,e0 +3483213,8 +3483218,27 +3483219,bd +348321a,ff +348321b,e8 +348321c,af +348321d,bf +348321f,10 +3483220,3c +3483221,a +3483222,80 +3483223,1e +3483224,25 +3483225,4a +3483226,aa +3483227,30 +3483228,81 +3483229,48 +348322a,6 +348322b,6c +348322c,31 +348322d,8 +348322f,20 +3483230,15 +3483233,1f +3483238,3c +3483239,9 +348323a,80 +348323b,40 +348323c,25 +348323d,29 +348323e,20 +348323f,1b +3483240,34 +3483241,a +3483243,ff +3483244,a1 +3483245,2a +3483248,3c +3483249,9 +348324a,80 +348324b,40 +348324c,25 +348324d,29 +348324e,20 +348324f,18 +3483250,24 +3483251,a +3483252,ff +3483253,ff +3483254,34 +3483255,c +3483257,3 +3483258,21 +3483259,4a +348325b,1 +348325c,11 +348325d,4c +348325f,14 +3483260,1 +3483261,2a +3483262,58 +3483263,20 +3483264,81 +3483265,68 +3483268,11 +348326a,ff +348326b,fb +3483270,3c +3483271,9 +3483272,80 +3483273,40 +3483274,25 +3483275,29 +3483276,20 +3483277,1b +3483278,a1 +3483279,2a +348327c,3c +348327d,9 +348327e,80 +348327f,1e +3483280,25 +3483281,29 +3483282,89 +3483283,84 +3483284,34 +3483285,a +3483287,1 +3483288,a5 +3483289,2a +348328c,3c +348328d,9 +348328e,80 +348328f,48 +3483290,34 +3483291,a +3483293,1 +3483294,ad +3483295,2a +3483296,1 +3483297,30 +3483298,3c +3483299,a +348329a,80 +348329b,1e +348329c,25 +348329d,4a +348329e,aa +348329f,30 +34832a0,a1 +34832a1,48 +34832a2,4 +34832a3,24 +34832a4,ad +34832a5,49 +34832a6,4 +34832a7,28 +34832a8,c +34832a9,10 +34832aa,a +34832ab,d9 +34832b0,8e +34832b1,19 +34832b3,4 +34832b4,2 +34832b6,20 +34832b7,25 +34832b8,8f +34832b9,bf +34832bb,10 +34832bc,3 +34832bd,e0 +34832bf,8 +34832c0,27 +34832c1,bd +34832c3,18 +34832c4,27 +34832c5,bd +34832c6,ff +34832c7,e8 +34832c8,af +34832c9,bf +34832cb,10 +34832cc,c +34832cd,10 +34832ce,15 +34832cf,e4 +34832d4,3c +34832d5,e +34832d6,80 +34832d7,12 +34832d8,91 +34832d9,ce +34832da,12 +34832db,12 +34832dc,8f +34832dd,bf +34832df,10 +34832e0,3 +34832e1,e0 +34832e3,8 +34832e4,27 +34832e5,bd +34832e7,18 +34832e8,93 +34832e9,19 +34832eb,74 +34832ec,34 +34832ed,1 +34832ef,ff +34832f0,17 +34832f1,21 +34832f3,2 +34832f8,34 +34832f9,19 +34832fb,2c +34832fc,3 +34832fd,e0 +34832ff,8 +3483300,a7 +3483301,b9 +3483303,9a +3483304,93 +3483305,2c +3483307,74 +3483308,34 +3483309,1 +348330b,ff +348330c,15 +348330d,81 +348330f,2 +3483314,34 +3483315,c +3483317,2c +3483318,3 +3483319,e0 +348331b,8 +3483320,91 +3483321,ae +3483323,74 +3483324,34 +3483325,1 +3483327,ff +3483328,15 +3483329,c1 +348332b,2 +3483330,34 +3483331,e +3483333,2c +3483334,3 +3483335,e0 +3483337,8 +3483338,a7 +3483339,ae +348333b,9a +348333c,91 +348333d,cf +348333f,74 +3483340,34 +3483341,1 +3483343,ff +3483344,15 +3483345,e1 +3483347,2 +348334c,34 +348334d,f +348334f,2c +3483350,3 +3483351,e0 +3483353,8 +3483354,a7 +3483355,af +3483357,9a +3483358,3c +3483359,8 +348335a,80 +348335b,40 +348335c,25 +348335d,8 +348335e,20 +348335f,1c +3483360,8e +3483361,9 +3483363,68 +3483364,ad +3483365,9 +3483368,8e +3483369,9 +348336b,6c +348336c,ad +348336d,9 +348336f,4 +3483370,96 +3483371,9 +3483373,70 +3483374,a5 +3483375,9 +3483377,8 +3483378,96 +3483379,9 +348337b,9c +348337c,a5 +348337d,9 +348337f,a +3483380,3 +3483381,e0 +3483383,8 +3483384,8e +3483385,e +3483387,4 +3483388,27 +3483389,bd +348338a,ff +348338b,e0 +348338c,af +348338d,b0 +348338f,10 +3483390,af +3483391,b1 +3483393,14 +3483394,af +3483395,bf +3483397,18 +3483398,3c +3483399,10 +348339a,80 +348339b,12 +348339c,26 +348339d,10 +348339e,a5 +348339f,d0 +34833a0,3c +34833a1,11 +34833a2,80 +34833a3,40 +34833a4,26 +34833a5,31 +34833a6,20 +34833a7,1c +34833a8,8e +34833a9,8 +34833ab,4 +34833ac,11 +34833af,5 +34833b4,c +34833b5,10 +34833b6,d +34833b7,c +34833bc,10 +34833bf,3 +34833c4,c +34833c5,10 +34833c6,d +34833c7,1f +34833cc,c +34833cd,10 +34833ce,c +34833cf,ff +34833d0,34 +34833d1,4 +34833d4,c +34833d5,10 +34833d6,c +34833d7,ff +34833d8,34 +34833d9,4 +34833db,1 +34833dc,c +34833dd,10 +34833de,c +34833df,ff +34833e0,34 +34833e1,4 +34833e3,2 +34833e4,8f +34833e5,b0 +34833e7,10 +34833e8,8f +34833e9,b1 +34833eb,14 +34833ec,8f +34833ed,bf +34833ef,18 +34833f0,27 +34833f1,bd +34833f3,20 +34833f4,3 +34833f5,e0 +34833f7,8 +34833fc,2 +34833fd,4 +34833fe,40 +34833ff,21 +3483400,91 +3483401,9 +3483403,6c +3483404,34 +3483405,1 +3483407,ff +3483408,11 +3483409,21 +348340b,7 +3483410,2 +3483411,9 +3483412,48 +3483413,21 +3483414,91 +3483415,29 +3483417,74 +3483418,34 +3483419,1 +348341b,2c +348341c,11 +348341d,21 +348341f,2 +3483424,a1 +3483425,9 +3483427,69 +3483428,3 +3483429,e0 +348342b,8 +3483430,27 +3483431,bd +3483432,ff +3483433,e8 +3483434,af +3483435,bf +3483437,10 +3483438,8e +3483439,28 +348343c,ae +348343d,8 +348343f,40 +3483440,8e +3483441,28 +3483443,4 +3483444,ae +3483445,8 +3483447,44 +3483448,96 +3483449,28 +348344b,8 +348344c,a6 +348344d,8 +348344f,48 +3483450,a2 +3483452,f +3483453,33 +3483454,92 +3483455,8 +3483457,4a +3483458,34 +3483459,1 +348345b,ff +348345c,15 +348345d,1 +348345f,3 +3483464,c +3483465,10 +3483466,d +3483467,2d +348346c,8f +348346d,bf +348346f,10 +3483470,27 +3483471,bd +3483473,18 +3483474,3 +3483475,e0 +3483477,8 +348347c,8e +348347d,8 +348347f,40 +3483480,ae +3483481,8 +3483483,68 +3483484,8e +3483485,8 +3483487,44 +3483488,ae +3483489,8 +348348b,6c +348348c,96 +348348d,8 +348348f,48 +3483490,a6 +3483491,8 +3483493,70 +3483494,92 +3483495,8 +3483497,68 +3483498,34 +3483499,1 +348349b,ff +348349c,15 +348349d,1 +348349f,3 +34834a4,34 +34834a5,8 +34834a7,1 +34834a8,a2 +34834a9,8 +34834aa,f +34834ab,33 +34834ac,3 +34834ad,e0 +34834af,8 +34834b4,27 +34834b5,bd +34834b6,ff +34834b7,e8 +34834b8,af +34834b9,bf +34834bb,10 +34834bc,96 +34834bd,8 +34834bf,9c +34834c0,31 +34834c1,8 +34834c3,40 +34834c4,11 +34834c7,5 +34834cc,96 +34834cd,8 +34834cf,70 +34834d0,31 +34834d1,8 +34834d2,ff +34834d3,f +34834d4,35 +34834d5,8 +34834d7,30 +34834d8,a6 +34834d9,8 +34834db,70 +34834dc,92 +34834dd,28 +34834df,1 +34834e0,a2 +34834e1,8 +34834e3,69 +34834e4,96 +34834e5,28 +34834e7,2 +34834e8,a6 +34834e9,8 +34834eb,6a +34834ec,8e +34834ed,28 +34834ef,4 +34834f0,ae +34834f1,8 +34834f3,6c +34834f4,c +34834f5,10 +34834f6,d +34834f7,47 +34834f8,34 +34834f9,4 +34834fc,c +34834fd,10 +34834fe,d +34834ff,47 +3483500,34 +3483501,4 +3483503,1 +3483504,c +3483505,10 +3483506,d +3483507,47 +3483508,34 +3483509,4 +348350b,2 +348350c,8f +348350d,bf +348350f,10 +3483510,27 +3483511,bd +3483513,18 +3483514,3 +3483515,e0 +3483517,8 +348351c,2 +348351d,4 +348351e,40 +348351f,21 +3483520,3c +3483521,9 +3483522,80 +3483523,40 +3483524,25 +3483525,29 +3483526,35 +3483527,c8 +3483528,91 +3483529,a +348352b,6c +348352c,34 +348352d,1 +348352f,ff +3483530,11 +3483531,41 +3483533,5 +3483538,1 +3483539,2a +348353a,48 +348353b,21 +348353c,91 +348353d,29 +3483540,15 +3483541,20 +3483543,1c +3483548,3c +3483549,9 +348354a,80 +348354b,40 +348354c,25 +348354d,29 +348354e,35 +348354f,bb +3483550,25 +3483551,29 +3483553,1 +3483554,91 +3483555,2a +3483558,11 +3483559,40 +348355b,13 +3483560,2 +3483561,a +3483562,58 +3483563,21 +3483564,91 +3483565,6b +3483567,74 +3483568,34 +3483569,1 +348356b,ff +348356c,11 +348356d,61 +348356e,ff +348356f,f8 +3483574,92 +3483575,c +3483577,6c +3483578,11 +3483579,8a +348357a,ff +348357b,f5 +3483580,92 +3483581,c +3483583,6d +3483584,11 +3483585,8a +3483586,ff +3483587,f2 +348358c,92 +348358d,c +348358f,6e +3483590,11 +3483591,8a +3483592,ff +3483593,ef +3483598,a1 +3483599,b +348359b,69 +348359c,a1 +348359d,a +348359f,6c +34835a0,10 +34835a3,4 +34835a8,34 +34835a9,9 +34835ab,ff +34835ac,a1 +34835ad,9 +34835af,69 +34835b0,a1 +34835b1,9 +34835b3,6c +34835b4,3 +34835b5,e0 +34835b7,8 +34835bc,7 +34835bd,9 +34835be,f +34835bf,2 +34835c0,3 +34835c1,1 +34835c2,d +34835c3,b +34835c9,1 +34835ca,1 +34835cb,1 +34835cc,1 +34835cd,1 +34835cf,1 +34835d0,1 +34835d1,1 +34835d2,1 +34835d3,1 +34835d5,1 +34835d7,1 +34835d8,1 +34835d9,1 +34835da,1 +34835db,1 +34835dc,1 +34835dd,1 +34835de,1 +34835e1,33 +34835e2,8 +34835e3,21 +34835e4,20 +34835e5,f +34835e7,47 +34835e8,15 +34835e9,ea +34835eb,e +34835ec,3c +34835ed,2 +34835ee,80 +34835ef,12 +34835f0,8c +34835f1,42 +34835f2,a5 +34835f3,d4 +34835f4,8e +34835f5,6f +34835f7,a4 +34835f9,f +34835fa,7a +34835fb,3 +34835fc,14 +34835fd,40 +34835ff,5 +3483600,34 +3483601,2 +3483602,48 +3483603,30 +3483604,15 +3483605,e2 +3483607,7 +348360c,24 +348360d,19 +348360f,3 +3483610,10 +3483613,4 +3483614,34 +3483615,2 +3483616,63 +3483617,11 +3483618,15 +3483619,e2 +348361b,2 +3483620,24 +3483621,19 +3483623,3 +3483624,3 +3483625,e0 +3483627,8 +348362c,8d +348362d,ad +348362e,8a +348362f,a0 +3483630,34 +3483631,2 +3483632,80 +3483634,10 +3483635,4d +3483637,2 +348363c,10 +348363f,9 +3483640,3c +3483641,f +3483642,80 +3483643,1e +3483644,25 +3483645,ef +3483646,84 +3483647,a0 +3483648,81 +3483649,e2 +348364a,1c +348364b,bf +348364c,30 +348364d,42 +348364f,1 +3483650,10 +3483651,40 +3483653,2 +3483658,10 +348365b,2 +348365c,34 +348365d,2 +348365f,1 +3483660,a1 +3483661,e2 +3483662,1c +3483663,bf +3483664,3 +3483665,e0 +3483667,8 +348366d,33 +348366e,8 +348366f,21 +3483670,3c +3483671,2 +3483672,80 +3483673,12 +3483674,8c +3483675,42 +3483676,a5 +3483677,d4 +3483678,8e +3483679,6f +348367b,a4 +348367d,f +348367e,7a +348367f,3 +3483680,14 +3483681,40 +3483683,5 +3483684,34 +3483685,2 +3483686,48 +3483687,30 +3483688,15 +3483689,e2 +348368b,7 +3483690,24 +3483691,19 +3483693,3 +3483694,10 +3483697,4 +3483698,34 +3483699,2 +348369a,63 +348369b,11 +348369c,15 +348369d,e2 +348369f,2 +34836a4,24 +34836a5,19 +34836a7,3 +34836a8,3 +34836a9,e0 +34836ab,8 +34836b0,34 +34836b1,1 +34836b3,18 +34836b4,14 +34836b5,81 +34836b7,11 +34836bc,14 +34836bd,40 +34836bf,f +34836c4,3c +34836c5,a +34836c6,80 +34836c7,12 +34836c8,25 +34836c9,4a +34836ca,a5 +34836cb,d0 +34836cc,81 +34836cd,48 +34836cf,a6 +34836d0,31 +34836d1,8 +34836d3,20 +34836d4,11 +34836d7,9 +34836d8,34 +34836d9,2 +34836dc,34 +34836dd,2 +34836df,1 +34836e0,81 +34836e1,48 +34836e3,7b +34836e4,34 +34836e5,9 +34836e7,7 +34836e8,11 +34836e9,9 +34836eb,4 +34836ec,34 +34836ed,a +34836ef,8 +34836f0,11 +34836f1,a +34836f3,2 +34836f8,34 +34836f9,2 +34836fc,3 +34836fd,e0 +34836ff,8 +3483704,a2 +3483705,25 +3483707,21 +3483708,3c +3483709,10 +348370a,80 +348370b,40 +348370c,26 +348370d,10 +348370e,17 +348370f,fc +3483710,26 +3483711,10 +3483713,4 +3483714,8e +3483715,a +3483718,11 +3483719,40 +348371b,b +3483721,a +3483722,7c +3483723,2 +3483724,1 +3483725,f1 +3483726,78 +3483727,20 +3483728,31 +3483729,58 +348372a,ff +348372d,18 +348372e,c2 +348372f,2 +3483730,17 +3483733,3 +3483734,31 +3483735,59 +3483737,ff +3483738,81 +3483739,ea +348373c,3 +348373d,2a +348373e,c8 +348373f,25 +3483740,8 +3483741,10 +3483742,d +3483743,c4 +3483744,a1 +3483745,f9 +3483748,3 +3483749,e0 +348374b,8 +34b3000,ac +34b3001,86 +34b3004,ac +34b3005,85 +34b3007,4 +34b3008,ac +34b3009,85 +34b300b,8 +34b300d,a6 +34b300e,28 +34b300f,21 +34b3010,3 +34b3011,e0 +34b3013,8 +34b3014,ac +34b3015,85 +34b3017,c +34b3018,94 +34b3019,82 +34b301b,4 +34b301c,94 +34b301d,83 +34b301f,6 +34b3021,43 +34b3023,18 +34b3026,10 +34b3027,12 +34b3028,90 +34b3029,83 +34b302b,c +34b3031,43 +34b3033,18 +34b3036,10 +34b3037,12 +34b3038,3 +34b3039,e0 +34b303b,8 +34b3040,27 +34b3041,bd +34b3042,ff +34b3043,e8 +34b3044,af +34b3045,bf +34b3047,14 +34b3048,af +34b3049,b0 +34b304b,10 +34b304c,c +34b304d,10 +34b304e,14 +34b304f,6 +34b3051,80 +34b3052,80 +34b3053,25 +34b3054,96 +34b3055,3 +34b3057,8 +34b3059,62 +34b305b,18 +34b305e,10 +34b305f,12 +34b3060,8f +34b3061,bf +34b3063,14 +34b3064,8f +34b3065,b0 +34b3067,10 +34b3068,3 +34b3069,e0 +34b306b,8 +34b306c,27 +34b306d,bd +34b306f,18 +34b3070,27 +34b3071,bd +34b3072,ff +34b3073,90 +34b3074,af +34b3075,bf +34b3077,6c +34b3078,af +34b3079,b7 +34b307b,68 +34b307c,af +34b307d,b6 +34b307f,64 +34b3080,af +34b3081,b5 +34b3083,60 +34b3084,af +34b3085,b4 +34b3087,5c +34b3088,af +34b3089,b3 +34b308b,58 +34b308c,af +34b308d,b2 +34b308f,54 +34b3090,af +34b3091,b1 +34b3093,50 +34b3094,af +34b3095,b0 +34b3097,4c +34b3099,80 +34b309a,80 +34b309b,25 +34b309d,a0 +34b309e,a8 +34b309f,25 +34b30a1,c0 +34b30a2,b8 +34b30a3,25 +34b30a5,e0 +34b30a6,b0 +34b30a7,25 +34b30a8,90 +34b30a9,b2 +34b30ab,a +34b30ad,12 +34b30ae,95 +34b30af,40 +34b30b0,3c +34b30b1,2 +34b30b3,e0 +34b30b4,2 +34b30b5,42 +34b30b6,90 +34b30b7,24 +34b30b8,90 +34b30b9,b1 +34b30bb,b +34b30bc,2e +34b30bd,22 +34b30bf,2 +34b30c0,10 +34b30c1,40 +34b30c3,2 +34b30c4,2 +34b30c5,20 +34b30c6,98 +34b30c7,25 +34b30c8,24 +34b30c9,13 +34b30cb,2 +34b30cc,32 +34b30cd,73 +34b30cf,ff +34b30d1,13 +34b30d2,a4 +34b30d3,c0 +34b30d4,3c +34b30d5,2 +34b30d7,18 +34b30d8,2 +34b30d9,82 +34b30da,a0 +34b30db,24 +34b30dc,2 +34b30dd,92 +34b30de,a0 +34b30df,25 +34b30e0,3c +34b30e1,2 +34b30e2,fd +34b30e4,2 +34b30e5,82 +34b30e6,10 +34b30e7,25 +34b30e8,af +34b30e9,a2 +34b30eb,10 +34b30ec,c +34b30ed,10 +34b30ee,14 +34b30ef,6 +34b30f0,2 +34b30f1,a0 +34b30f2,20 +34b30f3,25 +34b30f5,57 +34b30f7,18 +34b30fa,10 +34b30fb,12 +34b30fc,8e +34b30fd,a3 +34b3101,62 +34b3102,18 +34b3103,21 +34b3104,af +34b3105,a3 +34b3107,14 +34b3108,3c +34b3109,2 +34b310a,f5 +34b310c,2 +34b310d,82 +34b310e,a0 +34b310f,25 +34b3110,af +34b3111,b4 +34b3113,18 +34b3114,3c +34b3115,2 +34b3116,7 +34b3118,af +34b3119,a2 +34b311b,1c +34b311c,3c +34b311d,2 +34b311e,e6 +34b3120,af +34b3121,a2 +34b3123,20 +34b3124,af +34b3125,a0 +34b3127,24 +34b3128,3c +34b3129,2 +34b312a,f3 +34b312c,af +34b312d,a2 +34b312f,28 +34b3130,96 +34b3131,a3 +34b3133,4 +34b3134,96 +34b3135,a7 +34b3137,6 +34b3139,f6 +34b313b,18 +34b313e,38 +34b313f,12 +34b3140,24 +34b3141,5 +34b3143,4 +34b3144,2 +34b3145,25 +34b3146,20 +34b3147,4 +34b3149,67 +34b314b,18 +34b314e,10 +34b314f,12 +34b3150,24 +34b3151,42 +34b3153,1 +34b3159,44 +34b315b,18 +34b315e,10 +34b315f,12 +34b3160,24 +34b3161,42 +34b3162,ff +34b3163,ff +34b3164,2 +34b3165,65 +34b3166,98 +34b3167,4 +34b3168,16 +34b3169,60 +34b316b,2 +34b316d,53 +34b316f,1a +34b3171,7 +34b3173,d +34b3176,10 +34b3177,12 +34b3178,24 +34b3179,42 +34b317a,ff +34b317b,ff +34b317d,2 +34b317e,13 +34b3180,3c +34b3181,5 +34b3183,ff +34b3184,34 +34b3185,a5 +34b3186,f0 +34b3189,45 +34b318a,10 +34b318b,24 +34b318d,64 +34b318f,18 +34b3192,40 +34b3193,12 +34b3194,29 +34b3195,5 +34b3197,41 +34b3198,14 +34b3199,a0 +34b319b,b +34b319c,24 +34b319d,6 +34b319e,8 +34b31a1,8 +34b31a2,2f +34b31a3,c3 +34b31a4,30 +34b31a5,a5 +34b31a7,3f +34b31a9,a8 +34b31aa,28 +34b31ab,21 +34b31ad,5 +34b31ae,29 +34b31af,83 +34b31b0,24 +34b31b1,a6 +34b31b2,7 +34b31b3,ff +34b31b4,14 +34b31b5,a0 +34b31b7,2 +34b31b9,c5 +34b31bb,1a +34b31bd,7 +34b31bf,d +34b31c2,30 +34b31c3,12 +34b31c4,30 +34b31c5,c6 +34b31c6,f +34b31c7,ff +34b31c9,46 +34b31ca,10 +34b31cb,25 +34b31cc,3c +34b31cd,5 +34b31ce,7 +34b31d1,45 +34b31d2,10 +34b31d3,25 +34b31d4,af +34b31d5,a2 +34b31d7,2c +34b31d8,3c +34b31d9,2 +34b31da,e7 +34b31dc,af +34b31dd,a2 +34b31df,30 +34b31e0,af +34b31e1,a0 +34b31e3,34 +34b31e5,11 +34b31e6,14 +34b31e7,c0 +34b31e8,3c +34b31e9,5 +34b31eb,18 +34b31ed,45 +34b31ee,10 +34b31ef,24 +34b31f0,2e +34b31f1,31 +34b31f3,2 +34b31f4,16 +34b31f5,20 +34b31f7,2 +34b31f9,52 +34b31fa,10 +34b31fb,25 +34b31fc,24 +34b31fd,4 +34b31ff,10 +34b3201,64 +34b3203,18 +34b3206,20 +34b3207,12 +34b3208,24 +34b3209,84 +34b320b,3f +34b320d,4 +34b320e,97 +34b320f,c3 +34b3210,32 +34b3211,52 +34b3213,3f +34b3214,2 +34b3215,44 +34b3216,90 +34b3217,21 +34b3219,12 +34b321a,90 +34b321b,c0 +34b321c,3c +34b321d,4 +34b321f,3 +34b3220,34 +34b3221,84 +34b3222,fe +34b3224,2 +34b3225,44 +34b3226,90 +34b3227,24 +34b3228,2 +34b3229,42 +34b322a,90 +34b322b,25 +34b322c,3c +34b322d,2 +34b322e,f5 +34b3230,2 +34b3231,42 +34b3232,90 +34b3233,25 +34b3234,af +34b3235,b2 +34b3237,38 +34b3238,af +34b3239,a0 +34b323b,3c +34b323c,3c +34b323d,2 +34b323e,f2 +34b3240,af +34b3241,a2 +34b3243,40 +34b3244,24 +34b3245,62 +34b3246,3f +34b3247,ff +34b3249,2 +34b324a,13 +34b324b,80 +34b324c,3c +34b324d,3 +34b324f,ff +34b3250,34 +34b3251,63 +34b3252,f0 +34b3255,43 +34b3256,10 +34b3257,24 +34b3258,24 +34b3259,e7 +34b325a,ff +34b325b,ff +34b325d,7 +34b325e,38 +34b325f,80 +34b3260,30 +34b3261,e7 +34b3262,f +34b3263,fc +34b3265,47 +34b3266,10 +34b3267,25 +34b3268,af +34b3269,a2 +34b326b,44 +34b326c,27 +34b326d,a2 +34b326f,10 +34b3270,27 +34b3271,a6 +34b3273,48 +34b3274,8e +34b3275,3 +34b3277,8 +34b3278,24 +34b3279,64 +34b327b,8 +34b327c,ae +34b327d,4 +34b327f,8 +34b3280,8c +34b3281,45 +34b3283,4 +34b3284,8c +34b3285,44 +34b3288,ac +34b3289,65 +34b328b,4 +34b328c,24 +34b328d,42 +34b328f,8 +34b3290,14 +34b3291,46 +34b3292,ff +34b3293,f8 +34b3294,ac +34b3295,64 +34b3298,8f +34b3299,bf +34b329b,6c +34b329c,8f +34b329d,b7 +34b329f,68 +34b32a0,8f +34b32a1,b6 +34b32a3,64 +34b32a4,8f +34b32a5,b5 +34b32a7,60 +34b32a8,8f +34b32a9,b4 +34b32ab,5c +34b32ac,8f +34b32ad,b3 +34b32af,58 +34b32b0,8f +34b32b1,b2 +34b32b3,54 +34b32b4,8f +34b32b5,b1 +34b32b7,50 +34b32b8,8f +34b32b9,b0 +34b32bb,4c +34b32bc,3 +34b32bd,e0 +34b32bf,8 +34b32c0,27 +34b32c1,bd +34b32c3,70 +34b32c4,27 +34b32c5,bd +34b32c6,ff +34b32c7,e8 +34b32c8,8f +34b32c9,a8 +34b32cb,28 +34b32cc,8f +34b32cd,a2 +34b32cf,2c +34b32d0,8f +34b32d1,aa +34b32d3,30 +34b32d4,94 +34b32d5,a9 +34b32d7,4 +34b32d9,9 +34b32da,4a +34b32db,80 +34b32dc,14 +34b32dd,40 +34b32df,2 +34b32e0,1 +34b32e1,22 +34b32e3,1a +34b32e5,7 +34b32e7,d +34b32ea,48 +34b32eb,12 +34b32ec,94 +34b32ed,a3 +34b32ef,6 +34b32f1,47 +34b32f2,10 +34b32f3,21 +34b32f5,2 +34b32f6,13 +34b32f7,80 +34b32f8,3c +34b32f9,b +34b32fb,ff +34b32fc,35 +34b32fd,6b +34b32fe,f0 +34b3301,4b +34b3302,10 +34b3303,24 +34b3304,1 +34b3305,48 +34b3306,28 +34b3307,21 +34b3309,5 +34b330a,28 +34b330b,80 +34b330c,30 +34b330d,a5 +34b330e,f +34b330f,ff +34b3311,45 +34b3312,10 +34b3313,25 +34b3314,3c +34b3315,5 +34b3316,e4 +34b3319,45 +34b331a,10 +34b331b,25 +34b331c,af +34b331d,a2 +34b3321,7 +34b3322,3b +34b3323,80 +34b3325,eb +34b3326,38 +34b3327,24 +34b3329,8 +34b332a,40 +34b332b,80 +34b332c,31 +34b332d,8 +34b332e,f +34b332f,ff +34b3331,e8 +34b3332,38 +34b3333,25 +34b3334,af +34b3335,a7 +34b3337,4 +34b3338,3c +34b3339,2 +34b333a,e1 +34b333c,af +34b333d,a2 +34b333f,8 +34b3341,66 +34b3343,18 +34b3346,30 +34b3347,12 +34b3349,6 +34b334a,31 +34b334b,40 +34b334c,30 +34b334d,c6 +34b334e,ff +34b334f,ff +34b3350,af +34b3351,a6 +34b3353,c +34b3354,3c +34b3355,2 +34b3356,f1 +34b3358,af +34b3359,a2 +34b335b,10 +34b335d,3 +34b335e,1a +34b335f,80 +34b3360,15 +34b3361,40 +34b3363,2 +34b3365,6a +34b3367,1a +34b3369,7 +34b336b,d +34b336e,18 +34b336f,12 +34b3370,30 +34b3371,63 +34b3372,ff +34b3373,ff +34b3375,9 +34b3376,4c +34b3379,69 +34b337a,18 +34b337b,25 +34b337c,af +34b337d,a3 +34b337f,14 +34b3380,3 +34b3381,a0 +34b3382,10 +34b3383,25 +34b3384,27 +34b3385,a8 +34b3387,18 +34b3388,8c +34b3389,83 +34b338b,8 +34b338c,24 +34b338d,65 +34b338f,8 +34b3390,ac +34b3391,85 +34b3393,8 +34b3394,8c +34b3395,47 +34b3397,4 +34b3398,8c +34b3399,46 +34b339c,ac +34b339d,67 +34b339f,4 +34b33a0,24 +34b33a1,42 +34b33a3,8 +34b33a4,14 +34b33a5,48 +34b33a6,ff +34b33a7,f8 +34b33a8,ac +34b33a9,66 +34b33ac,3 +34b33ad,e0 +34b33af,8 +34b33b0,27 +34b33b1,bd +34b33b3,18 +34b33b4,8c +34b33b5,82 +34b33b7,8 +34b33b8,24 +34b33b9,43 +34b33bb,8 +34b33bc,ac +34b33bd,83 +34b33bf,8 +34b33c0,3c +34b33c1,3 +34b33c2,e7 +34b33c4,ac +34b33c5,43 +34b33c8,ac +34b33c9,40 +34b33cb,4 +34b33cc,8c +34b33cd,82 +34b33cf,8 +34b33d0,24 +34b33d1,43 +34b33d3,8 +34b33d4,ac +34b33d5,83 +34b33d7,8 +34b33d8,3c +34b33d9,3 +34b33da,d9 +34b33dc,ac +34b33dd,43 +34b33e0,ac +34b33e1,40 +34b33e3,4 +34b33e4,8c +34b33e5,82 +34b33e7,8 +34b33e8,24 +34b33e9,43 +34b33eb,8 +34b33ec,ac +34b33ed,83 +34b33ef,8 +34b33f0,3c +34b33f1,3 +34b33f2,ed +34b33f4,ac +34b33f5,43 +34b33f8,3c +34b33f9,5 +34b33fb,50 +34b33fc,24 +34b33fd,a3 +34b33fe,3 +34b33ff,c0 +34b3400,ac +34b3401,43 +34b3403,4 +34b3404,8c +34b3405,83 +34b3407,8 +34b3408,24 +34b3409,62 +34b340b,8 +34b340c,ac +34b340d,82 +34b340f,8 +34b3410,3c +34b3411,2 +34b3412,e3 +34b3414,24 +34b3415,46 +34b3416,1a +34b3417,1 +34b3418,ac +34b3419,66 +34b341c,24 +34b341d,6 +34b341f,30 +34b3420,ac +34b3421,66 +34b3423,4 +34b3424,8c +34b3425,83 +34b3427,8 +34b3428,24 +34b3429,66 +34b342b,8 +34b342c,ac +34b342d,86 +34b342f,8 +34b3430,24 +34b3431,46 +34b3432,18 +34b3433,1 +34b3434,ac +34b3435,66 +34b3438,24 +34b3439,6 +34b343b,c0 +34b343c,ac +34b343d,66 +34b343f,4 +34b3440,8c +34b3441,86 +34b3443,8 +34b3444,24 +34b3445,c3 +34b3447,8 +34b3448,ac +34b3449,83 +34b344b,8 +34b344c,3c +34b344d,3 +34b344e,e2 +34b3450,24 +34b3451,67 +34b3452,1e +34b3453,1 +34b3454,ac +34b3455,c7 +34b3458,ac +34b3459,c0 +34b345b,4 +34b345c,8c +34b345d,86 +34b345f,8 +34b3460,24 +34b3461,c7 +34b3463,8 +34b3464,ac +34b3465,87 +34b3467,8 +34b3468,24 +34b3469,67 +34b346a,1d +34b346c,ac +34b346d,c7 +34b3470,24 +34b3471,7 +34b3473,4 +34b3474,ac +34b3475,c7 +34b3477,4 +34b3478,8c +34b3479,86 +34b347b,8 +34b347c,24 +34b347d,c7 +34b347f,8 +34b3480,ac +34b3481,87 +34b3483,8 +34b3484,24 +34b3485,47 +34b3486,17 +34b3488,ac +34b3489,c7 +34b348c,ac +34b348d,c0 +34b348f,4 +34b3490,8c +34b3491,86 +34b3493,8 +34b3494,24 +34b3495,c7 +34b3497,8 +34b3498,ac +34b3499,87 +34b349b,8 +34b349c,24 +34b349d,47 +34b349e,14 +34b349f,2 +34b34a0,ac +34b34a1,c7 +34b34a4,24 +34b34a5,7 +34b34a6,c +34b34a8,ac +34b34a9,c7 +34b34ab,4 +34b34ac,8c +34b34ad,86 +34b34af,8 +34b34b0,24 +34b34b1,c7 +34b34b3,8 +34b34b4,ac +34b34b5,87 +34b34b7,8 +34b34b8,24 +34b34b9,47 +34b34ba,d +34b34bb,1 +34b34bc,ac +34b34bd,c7 +34b34c0,ac +34b34c1,c0 +34b34c3,4 +34b34c4,8c +34b34c5,86 +34b34c7,8 +34b34c8,24 +34b34c9,c7 +34b34cb,8 +34b34cc,ac +34b34cd,87 +34b34cf,8 +34b34d0,24 +34b34d1,47 +34b34d2,c +34b34d4,ac +34b34d5,c7 +34b34d8,ac +34b34d9,c0 +34b34db,4 +34b34dc,8c +34b34dd,86 +34b34df,8 +34b34e0,24 +34b34e1,c7 +34b34e3,8 +34b34e4,ac +34b34e5,87 +34b34e7,8 +34b34e8,24 +34b34e9,47 +34b34ea,f +34b34ec,ac +34b34ed,c7 +34b34f0,ac +34b34f1,c0 +34b34f3,4 +34b34f4,8c +34b34f5,86 +34b34f7,8 +34b34f8,24 +34b34f9,c7 +34b34fb,8 +34b34fc,ac +34b34fd,87 +34b34ff,8 +34b3500,24 +34b3501,47 +34b3502,10 +34b3503,1 +34b3504,ac +34b3505,c7 +34b3508,ac +34b3509,c0 +34b350b,4 +34b350c,8c +34b350d,86 +34b350f,8 +34b3510,24 +34b3511,c7 +34b3513,8 +34b3514,ac +34b3515,87 +34b3517,8 +34b3518,24 +34b3519,47 +34b351a,8 +34b351c,ac +34b351d,c7 +34b3520,ac +34b3521,c0 +34b3523,4 +34b3524,8c +34b3525,86 +34b3527,8 +34b3528,24 +34b3529,c7 +34b352b,8 +34b352c,ac +34b352d,87 +34b352f,8 +34b3530,24 +34b3531,47 +34b3532,a +34b3533,1 +34b3534,ac +34b3535,c7 +34b3538,ac +34b3539,c0 +34b353b,4 +34b353c,8c +34b353d,86 +34b353f,8 +34b3540,24 +34b3541,c7 +34b3543,8 +34b3544,ac +34b3545,87 +34b3547,8 +34b3548,24 +34b3549,63 +34b354b,1c +34b354c,ac +34b354d,c3 +34b3550,24 +34b3551,a5 +34b3552,42 +34b3553,40 +34b3554,ac +34b3555,c5 +34b3557,4 +34b3558,8c +34b3559,83 +34b355b,8 +34b355c,24 +34b355d,65 +34b355f,8 +34b3560,ac +34b3561,85 +34b3563,8 +34b3564,24 +34b3565,42 +34b3566,12 +34b3567,1 +34b3568,ac +34b3569,62 +34b356c,24 +34b356d,2 +34b356e,20 +34b3570,ac +34b3571,62 +34b3573,4 +34b3574,8c +34b3575,82 +34b3577,8 +34b3578,24 +34b3579,43 +34b357b,8 +34b357c,ac +34b357d,83 +34b357f,8 +34b3580,3c +34b3581,3 +34b3582,df +34b3584,ac +34b3585,43 +34b3588,3 +34b3589,e0 +34b358b,8 +34b358c,ac +34b358d,40 +34b358f,4 +34b3590,27 +34b3591,bd +34b3592,ff +34b3593,c8 +34b3594,af +34b3595,bf +34b3597,34 +34b3598,af +34b3599,b1 +34b359b,30 +34b359c,af +34b359d,b0 +34b359f,2c +34b35a0,af +34b35a1,a0 +34b35a3,10 +34b35a4,3c +34b35a5,2 +34b35a6,1 +34b35a7,a0 +34b35a8,24 +34b35a9,42 +34b35aa,20 +34b35ac,af +34b35ad,a2 +34b35af,14 +34b35b0,3c +34b35b1,10 +34b35b3,3 +34b35b4,36 +34b35b5,2 +34b35b6,95 +34b35b7,c0 +34b35b8,af +34b35b9,a2 +34b35bb,18 +34b35bc,c +34b35bd,10 +34b35be,15 +34b35bf,c8 +34b35c0,27 +34b35c1,a4 +34b35c3,10 +34b35c4,af +34b35c5,a0 +34b35c7,1c +34b35c8,3c +34b35c9,2 +34b35cb,84 +34b35cc,24 +34b35cd,42 +34b35ce,60 +34b35d0,af +34b35d1,a2 +34b35d3,20 +34b35d4,34 +34b35d5,2 +34b35d6,b4 +34b35d8,af +34b35d9,a2 +34b35db,24 +34b35dc,c +34b35dd,10 +34b35de,15 +34b35df,c8 +34b35e0,27 +34b35e1,a4 +34b35e3,1c +34b35e4,8f +34b35e5,a2 +34b35e7,10 +34b35e8,26 +34b35e9,10 +34b35ea,a3 +34b35ed,50 +34b35ee,80 +34b35ef,21 +34b35f0,3c +34b35f1,3 +34b35f2,80 +34b35f3,40 +34b35f4,ac +34b35f5,70 +34b35f6,64 +34b35f7,3c +34b35f8,24 +34b35f9,42 +34b35fa,29 +34b35fb,80 +34b35fc,3c +34b35fd,3 +34b35fe,80 +34b35ff,40 +34b3600,ac +34b3601,62 +34b3602,64 +34b3603,2c +34b3604,3c +34b3605,2 +34b3606,80 +34b3607,40 +34b3608,8f +34b3609,a3 +34b360b,1c +34b360c,ac +34b360d,43 +34b360e,64 +34b360f,1c +34b3610,3c +34b3611,11 +34b3612,80 +34b3613,40 +34b3614,c +34b3615,10 +34b3616,14 +34b3617,10 +34b3618,26 +34b3619,24 +34b361a,64 +34b361b,c +34b361d,40 +34b361e,80 +34b361f,25 +34b3620,c +34b3621,10 +34b3622,15 +34b3623,bb +34b3625,40 +34b3626,20 +34b3627,25 +34b3629,10 +34b362a,4f +34b362b,c2 +34b362c,1 +34b362d,30 +34b362e,48 +34b362f,21 +34b3630,2a +34b3631,10 +34b3633,2 +34b3634,16 +34b3637,18 +34b3638,ae +34b3639,22 +34b363a,64 +34b363b,c +34b363d,9 +34b363e,48 +34b363f,43 +34b3640,3c +34b3641,3 +34b3642,80 +34b3643,40 +34b3644,24 +34b3645,63 +34b3646,65 +34b3647,4e +34b364a,20 +34b364b,25 +34b364e,30 +34b364f,25 +34b3650,2 +34b3651,20 +34b3652,40 +34b3653,25 +34b3654,24 +34b3655,7 +34b3656,ff +34b3657,f0 +34b3658,8d +34b3659,5 +34b365a,64 +34b365b,c +34b365d,a4 +34b365e,28 +34b365f,21 +34b3660,90 +34b3661,62 +34b3665,2 +34b3666,11 +34b3667,2 +34b3669,47 +34b366a,10 +34b366b,25 +34b366c,a0 +34b366d,a2 +34b3670,8d +34b3671,2 +34b3672,64 +34b3673,c +34b3675,44 +34b3676,10 +34b3677,21 +34b3678,90 +34b3679,65 +34b367d,a7 +34b367e,28 +34b367f,25 +34b3680,a0 +34b3681,45 +34b3683,1 +34b3684,24 +34b3685,c6 +34b3687,1 +34b3688,24 +34b3689,63 +34b368b,1 +34b368d,c9 +34b368e,10 +34b368f,2a +34b3690,14 +34b3691,40 +34b3692,ff +34b3693,f1 +34b3694,24 +34b3695,84 +34b3697,2 +34b3698,c +34b3699,10 +34b369a,15 +34b369b,bb +34b369c,24 +34b369d,4 +34b369e,1 +34b36a0,3c +34b36a1,4 +34b36a2,80 +34b36a3,40 +34b36a4,24 +34b36a5,3 +34b36a6,1 +34b36a8,ac +34b36a9,83 +34b36aa,65 +34b36ab,30 +34b36ac,24 +34b36ad,84 +34b36ae,65 +34b36af,30 +34b36b0,ac +34b36b1,82 +34b36b3,4 +34b36b4,ac +34b36b5,82 +34b36b7,8 +34b36b8,24 +34b36b9,42 +34b36ba,1 +34b36bc,c +34b36bd,10 +34b36be,14 +34b36bf,ed +34b36c0,ac +34b36c1,82 +34b36c3,c +34b36c4,8f +34b36c5,bf +34b36c7,34 +34b36c8,8f +34b36c9,b1 +34b36cb,30 +34b36cc,8f +34b36cd,b0 +34b36cf,2c +34b36d0,3 +34b36d1,e0 +34b36d3,8 +34b36d4,27 +34b36d5,bd +34b36d7,38 +34b36d8,3c +34b36d9,3 +34b36da,80 +34b36db,40 +34b36dc,3c +34b36dd,2 +34b36de,80 +34b36df,50 +34b36e0,24 +34b36e1,42 +34b36e4,3 +34b36e5,e0 +34b36e7,8 +34b36e8,ac +34b36e9,62 +34b36ea,65 +34b36eb,14 +34b36ed,4 +34b36ee,17 +34b36ef,c3 +34b36f1,2 +34b36f2,1f +34b36f3,2 +34b36f5,83 +34b36f6,10 +34b36f7,21 +34b36f8,30 +34b36f9,42 +34b36fb,f +34b36fd,43 +34b36fe,10 +34b36ff,23 +34b3700,10 +34b3701,40 +34b3703,3 +34b3704,3c +34b3705,3 +34b3706,80 +34b3707,40 +34b3709,82 +34b370a,20 +34b370b,23 +34b370c,24 +34b370d,84 +34b370f,10 +34b3710,8c +34b3711,62 +34b3712,65 +34b3713,14 +34b3715,44 +34b3716,20 +34b3717,21 +34b3718,3 +34b3719,e0 +34b371b,8 +34b371c,ac +34b371d,64 +34b371e,65 +34b371f,14 +34b3720,27 +34b3721,bd +34b3722,ff +34b3723,e8 +34b3724,af +34b3725,bf +34b3727,14 +34b3728,af +34b3729,b0 +34b372b,10 +34b372d,80 +34b372e,80 +34b372f,25 +34b3730,c +34b3731,10 +34b3732,15 +34b3733,bb +34b3734,8c +34b3735,84 +34b3737,8 +34b3738,ae +34b3739,2 +34b373c,8e +34b373d,6 +34b373f,8 +34b3741,40 +34b3742,20 +34b3743,25 +34b3744,3c +34b3745,2 +34b3746,80 +34b3748,24 +34b3749,42 +34b374a,d +34b374b,f0 +34b374d,40 +34b374e,f8 +34b374f,9 +34b3750,8e +34b3751,5 +34b3753,4 +34b3754,8f +34b3755,bf +34b3757,14 +34b3758,8f +34b3759,b0 +34b375b,10 +34b375c,3 +34b375d,e0 +34b375f,8 +34b3760,27 +34b3761,bd +34b3763,18 +34b3764,27 +34b3765,bd +34b3766,ff +34b3767,e8 +34b3768,af +34b3769,bf +34b376b,14 +34b376c,c +34b376d,10 +34b376e,15 +34b376f,b6 +34b3774,c +34b3775,10 +34b3776,15 +34b3777,64 +34b377c,c +34b377d,10 +34b377e,18 +34b377f,79 +34b3784,8f +34b3785,bf +34b3787,14 +34b3788,3 +34b3789,e0 +34b378b,8 +34b378c,27 +34b378d,bd +34b378f,18 +34b3790,3c +34b3791,2 +34b3792,80 +34b3793,1c +34b3794,34 +34b3795,42 +34b3796,84 +34b3797,a0 +34b3798,3c +34b3799,3 +34b379b,1 +34b379d,43 +34b379e,10 +34b379f,21 +34b37a0,94 +34b37a1,43 +34b37a2,9 +34b37a3,34 +34b37a4,24 +34b37a5,2 +34b37a7,6 +34b37a8,14 +34b37a9,62 +34b37ab,19 +34b37ac,3c +34b37ad,2 +34b37ae,80 +34b37af,1c +34b37b0,34 +34b37b1,42 +34b37b2,84 +34b37b3,a0 +34b37b4,3c +34b37b5,3 +34b37b7,1 +34b37b9,43 +34b37ba,10 +34b37bb,21 +34b37bc,94 +34b37bd,42 +34b37be,9 +34b37bf,48 +34b37c0,14 +34b37c1,40 +34b37c3,13 +34b37c4,3c +34b37c5,2 +34b37c6,80 +34b37c7,1c +34b37c8,34 +34b37c9,42 +34b37ca,84 +34b37cb,a0 +34b37cd,43 +34b37ce,10 +34b37cf,21 +34b37d0,94 +34b37d1,42 +34b37d2,9 +34b37d3,44 +34b37d4,14 +34b37d5,40 +34b37d7,e +34b37d8,3c +34b37d9,2 +34b37da,80 +34b37db,1c +34b37dc,34 +34b37dd,42 +34b37de,84 +34b37df,a0 +34b37e0,84 +34b37e1,42 +34b37e3,14 +34b37e4,4 +34b37e5,41 +34b37e7,a +34b37e8,3c +34b37e9,2 +34b37ea,80 +34b37eb,1c +34b37ec,27 +34b37ed,bd +34b37ee,ff +34b37ef,e8 +34b37f0,af +34b37f1,bf +34b37f3,14 +34b37f4,34 +34b37f5,42 +34b37f6,84 +34b37f7,a0 +34b37f8,8c +34b37f9,44 +34b37fc,c +34b37fd,10 +34b37fe,16 +34b37ff,6 +34b3800,24 +34b3801,84 +34b3802,2 +34b3803,a8 +34b3804,8f +34b3805,bf +34b3807,14 +34b3808,3 +34b3809,e0 +34b380b,8 +34b380c,27 +34b380d,bd +34b380f,18 +34b3810,3 +34b3811,e0 +34b3813,8 +34b3818,3c +34b3819,2 +34b381a,80 +34b381b,40 +34b381c,8c +34b381d,42 +34b381e,65 +34b381f,c +34b3820,10 +34b3821,40 +34b3822,2 +34b3823,6e +34b3824,3c +34b3825,3 +34b3826,80 +34b3827,40 +34b3828,27 +34b3829,bd +34b382a,ff +34b382b,90 +34b382c,af +34b382d,bf +34b382f,6c +34b3830,af +34b3831,be +34b3833,68 +34b3834,af +34b3835,b7 +34b3837,64 +34b3838,af +34b3839,b6 +34b383b,60 +34b383c,af +34b383d,b5 +34b383f,5c +34b3840,af +34b3841,b4 +34b3843,58 +34b3844,af +34b3845,b3 +34b3847,54 +34b3848,af +34b3849,b2 +34b384b,50 +34b384c,af +34b384d,b1 +34b384f,4c +34b3850,af +34b3851,b0 +34b3853,48 +34b3854,8c +34b3855,82 +34b3857,4 +34b3858,8c +34b3859,63 +34b385a,65 +34b385b,34 +34b385c,24 +34b385d,45 +34b385f,8 +34b3860,ac +34b3861,85 +34b3863,8 +34b3864,3c +34b3865,5 +34b3866,de +34b3868,ac +34b3869,45 +34b386c,ac +34b386d,43 +34b386f,4 +34b3870,3c +34b3871,2 +34b3872,80 +34b3873,11 +34b3874,34 +34b3875,42 +34b3876,a5 +34b3877,d0 +34b3878,94 +34b3879,54 +34b387a,f +34b387b,2e +34b387c,3c +34b387d,2 +34b387e,80 +34b387f,40 +34b3880,8c +34b3881,42 +34b3882,65 +34b3883,18 +34b3884,50 +34b3885,40 +34b3887,5 +34b3888,24 +34b3889,8 +34b388b,1 +34b388c,32 +34b388d,88 +34b388f,1 +34b3891,14 +34b3892,a0 +34b3893,42 +34b3894,10 +34b3897,2 +34b3898,32 +34b3899,94 +34b389b,1 +34b389c,24 +34b389d,14 +34b389f,1 +34b38a0,3c +34b38a1,2 +34b38a2,80 +34b38a3,40 +34b38a4,8c +34b38a5,55 +34b38a6,65 +34b38a7,24 +34b38a8,12 +34b38a9,a0 +34b38ab,7 +34b38ac,2 +34b38ad,a0 +34b38ae,18 +34b38af,25 +34b38b0,3c +34b38b1,2 +34b38b2,80 +34b38b3,40 +34b38b4,94 +34b38b5,43 +34b38b6,64 +34b38b7,10 +34b38b9,3 +34b38ba,10 +34b38bb,40 +34b38bd,43 +34b38be,10 +34b38bf,21 +34b38c1,2 +34b38c2,10 +34b38c3,40 +34b38c4,24 +34b38c5,43 +34b38c7,2 +34b38c8,3c +34b38c9,2 +34b38ca,80 +34b38cb,40 +34b38cc,94 +34b38cd,42 +34b38ce,64 +34b38cf,10 +34b38d1,2 +34b38d2,10 +34b38d3,c0 +34b38d4,24 +34b38d5,42 +34b38d7,5e +34b38d9,43 +34b38da,10 +34b38db,21 +34b38dc,24 +34b38dd,3 +34b38de,1 +34b38df,40 +34b38e1,62 +34b38e2,18 +34b38e3,23 +34b38e5,3 +34b38e6,8f +34b38e7,c2 +34b38e8,2 +34b38e9,23 +34b38ea,88 +34b38eb,21 +34b38ed,11 +34b38ee,88 +34b38ef,43 +34b38f0,26 +34b38f1,23 +34b38f3,2 +34b38f4,af +34b38f5,a3 +34b38f7,38 +34b38f8,8c +34b38f9,83 +34b38fb,8 +34b38fc,24 +34b38fd,65 +34b38ff,8 +34b3900,ac +34b3901,85 +34b3903,8 +34b3904,3c +34b3905,5 +34b3906,fc +34b3907,ff +34b3908,34 +34b3909,a5 +34b390a,ff +34b390b,ff +34b390c,ac +34b390d,65 +34b3910,3c +34b3911,5 +34b3912,ff +34b3913,fd +34b3914,34 +34b3915,a5 +34b3916,f6 +34b3917,fb +34b3918,ac +34b3919,65 +34b391b,4 +34b391c,8c +34b391d,83 +34b391f,8 +34b3920,24 +34b3921,65 +34b3923,8 +34b3924,ac +34b3925,85 +34b3927,8 +34b3928,3c +34b3929,5 +34b392a,fa +34b392c,ac +34b392d,65 +34b3930,24 +34b3931,5 +34b3933,d0 +34b3934,ac +34b3935,65 +34b3937,4 +34b3939,51 +34b393a,10 +34b393b,21 +34b393d,2 +34b393e,13 +34b393f,80 +34b3940,3c +34b3941,3 +34b3943,ff +34b3944,34 +34b3945,63 +34b3946,f0 +34b3949,43 +34b394a,10 +34b394b,24 +34b394c,3c +34b394d,5 +34b394e,e4 +34b3950,24 +34b3951,a5 +34b3952,3 +34b3953,b8 +34b3955,45 +34b3956,10 +34b3957,25 +34b3958,af +34b3959,a2 +34b395b,20 +34b395d,11 +34b395e,13 +34b395f,80 +34b3961,43 +34b3962,10 +34b3963,24 +34b3964,34 +34b3965,42 +34b3967,8 +34b3968,af +34b3969,a2 +34b396b,24 +34b396c,3c +34b396d,2 +34b396e,e1 +34b3970,af +34b3971,a2 +34b3973,28 +34b3974,af +34b3975,a0 +34b3977,2c +34b3978,3c +34b3979,2 +34b397a,f1 +34b397c,af +34b397d,a2 +34b397f,30 +34b3980,3c +34b3981,2 +34b3982,4 +34b3984,24 +34b3985,42 +34b3986,4 +34b3988,af +34b3989,a2 +34b398b,34 +34b398c,27 +34b398d,a2 +34b398f,20 +34b3990,27 +34b3991,a9 +34b3993,38 +34b3994,8c +34b3995,83 +34b3997,8 +34b3998,24 +34b3999,65 +34b399b,8 +34b399c,ac +34b399d,85 +34b399f,8 +34b39a0,8c +34b39a1,47 +34b39a3,4 +34b39a4,8c +34b39a5,46 +34b39a8,ac +34b39a9,67 +34b39ab,4 +34b39ac,24 +34b39ad,42 +34b39af,8 +34b39b0,15 +34b39b1,22 +34b39b2,ff +34b39b3,f8 +34b39b4,ac +34b39b5,66 +34b39b9,80 +34b39ba,80 +34b39bb,25 +34b39bc,8c +34b39bd,82 +34b39bf,8 +34b39c0,24 +34b39c1,43 +34b39c3,8 +34b39c4,ac +34b39c5,83 +34b39c7,8 +34b39c8,3c +34b39c9,3 +34b39ca,e7 +34b39cc,ac +34b39cd,43 +34b39d0,ac +34b39d1,40 +34b39d3,4 +34b39d4,8c +34b39d5,82 +34b39d7,8 +34b39d8,24 +34b39d9,43 +34b39db,8 +34b39dc,ac +34b39dd,83 +34b39df,8 +34b39e0,3c +34b39e1,3 +34b39e2,fc +34b39e3,11 +34b39e4,34 +34b39e5,63 +34b39e6,96 +34b39e7,23 +34b39e8,ac +34b39e9,43 +34b39ec,3c +34b39ed,3 +34b39ee,ff +34b39ef,2f +34b39f0,34 +34b39f1,63 +34b39f2,ff +34b39f3,ff +34b39f4,11 +34b39f7,4d +34b39f8,ac +34b39f9,43 +34b39fb,4 +34b39fc,3c +34b39fd,5 +34b39fe,80 +34b39ff,40 +34b3a00,24 +34b3a01,a5 +34b3a02,64 +34b3a03,2c +34b3a04,94 +34b3a05,a7 +34b3a07,8 +34b3a08,c +34b3a09,10 +34b3a0a,14 +34b3a0b,1c +34b3a0e,30 +34b3a0f,25 +34b3a10,3c +34b3a11,2 +34b3a12,80 +34b3a13,40 +34b3a14,8c +34b3a15,42 +34b3a16,65 +34b3a17,10 +34b3a18,18 +34b3a19,40 +34b3a1b,44 +34b3a1c,3c +34b3a1d,2 +34b3a1e,80 +34b3a1f,40 +34b3a20,3c +34b3a21,13 +34b3a22,80 +34b3a23,40 +34b3a24,26 +34b3a25,73 +34b3a26,64 +34b3a27,70 +34b3a2a,90 +34b3a2b,25 +34b3a2c,3c +34b3a2d,1e +34b3a2e,80 +34b3a2f,40 +34b3a30,3c +34b3a31,16 +34b3a32,80 +34b3a33,40 +34b3a34,26 +34b3a35,d6 +34b3a36,64 +34b3a37,4c +34b3a38,24 +34b3a39,42 +34b3a3a,64 +34b3a3b,5c +34b3a3c,af +34b3a3d,a2 +34b3a3f,3c +34b3a40,3c +34b3a41,2 +34b3a42,80 +34b3a43,40 +34b3a44,24 +34b3a45,42 +34b3a46,64 +34b3a47,2c +34b3a48,af +34b3a49,a2 +34b3a4b,40 +34b3a4c,3c +34b3a4d,17 +34b3a4e,80 +34b3a4f,40 +34b3a50,8f +34b3a51,c2 +34b3a52,65 +34b3a53,1c +34b3a54,50 +34b3a55,40 +34b3a57,b +34b3a58,92 +34b3a59,62 +34b3a5c,92 +34b3a5d,63 +34b3a60,3c +34b3a61,2 +34b3a62,80 +34b3a63,11 +34b3a64,34 +34b3a65,42 +34b3a66,a5 +34b3a67,d0 +34b3a69,43 +34b3a6a,10 +34b3a6b,21 +34b3a6c,90 +34b3a6d,42 +34b3a6f,a8 +34b3a71,2 +34b3a72,10 +34b3a73,42 +34b3a74,30 +34b3a75,42 +34b3a77,1 +34b3a78,50 +34b3a79,40 +34b3a7b,28 +34b3a7c,26 +34b3a7d,52 +34b3a7f,1 +34b3a80,92 +34b3a81,62 +34b3a85,56 +34b3a86,10 +34b3a87,21 +34b3a88,80 +34b3a89,46 +34b3a8c,28 +34b3a8d,c2 +34b3a8f,3 +34b3a90,54 +34b3a91,40 +34b3a93,22 +34b3a94,26 +34b3a95,52 +34b3a97,1 +34b3a98,24 +34b3a99,c6 +34b3a9a,ff +34b3a9b,fd +34b3a9d,6 +34b3a9e,18 +34b3a9f,40 +34b3aa1,66 +34b3aa2,18 +34b3aa3,21 +34b3aa4,8f +34b3aa5,a2 +34b3aa7,3c +34b3aa9,62 +34b3aaa,18 +34b3aab,21 +34b3aac,90 +34b3aad,62 +34b3ab1,2 +34b3ab2,16 +34b3ab4,90 +34b3ab5,64 +34b3ab7,2 +34b3ab9,4 +34b3aba,22 +34b3abd,44 +34b3abe,10 +34b3abf,25 +34b3ac0,90 +34b3ac1,63 +34b3ac3,1 +34b3ac5,3 +34b3ac6,1c +34b3ac9,43 +34b3aca,10 +34b3acb,25 +34b3acc,34 +34b3acd,42 +34b3acf,ff +34b3ad0,8e +34b3ad1,3 +34b3ad3,8 +34b3ad4,24 +34b3ad5,64 +34b3ad7,8 +34b3ad8,ae +34b3ad9,4 +34b3adb,8 +34b3adc,3c +34b3add,4 +34b3ade,fa +34b3ae0,ac +34b3ae1,64 +34b3ae4,ac +34b3ae5,62 +34b3ae7,4 +34b3ae8,24 +34b3ae9,2 +34b3aeb,10 +34b3aec,af +34b3aed,a2 +34b3aef,18 +34b3af0,af +34b3af1,a2 +34b3af3,14 +34b3af5,12 +34b3af6,10 +34b3af7,c0 +34b3af9,52 +34b3afa,10 +34b3afb,21 +34b3afd,2 +34b3afe,10 +34b3aff,40 +34b3b00,24 +34b3b01,42 +34b3b03,4 +34b3b04,af +34b3b05,a2 +34b3b07,10 +34b3b08,8f +34b3b09,a7 +34b3b0b,38 +34b3b0c,8f +34b3b0d,a5 +34b3b0f,40 +34b3b10,c +34b3b11,10 +34b3b12,14 +34b3b13,b1 +34b3b14,2 +34b3b16,20 +34b3b17,25 +34b3b18,26 +34b3b19,52 +34b3b1b,1 +34b3b1c,8e +34b3b1d,e2 +34b3b1e,65 +34b3b1f,10 +34b3b20,2 +34b3b21,42 +34b3b22,10 +34b3b23,2a +34b3b24,14 +34b3b25,40 +34b3b26,ff +34b3b27,ca +34b3b28,26 +34b3b29,73 +34b3b2b,c +34b3b2c,8e +34b3b2d,2 +34b3b2f,8 +34b3b30,24 +34b3b31,43 +34b3b33,8 +34b3b34,ae +34b3b35,3 +34b3b37,8 +34b3b38,3c +34b3b39,3 +34b3b3a,fa +34b3b3c,ac +34b3b3d,43 +34b3b40,24 +34b3b41,3 +34b3b42,ff +34b3b43,ff +34b3b44,12 +34b3b45,80 +34b3b47,36 +34b3b48,ac +34b3b49,43 +34b3b4b,4 +34b3b4c,3c +34b3b4d,5 +34b3b4e,80 +34b3b4f,40 +34b3b50,24 +34b3b51,a5 +34b3b52,64 +34b3b53,3c +34b3b54,94 +34b3b55,a7 +34b3b57,8 +34b3b5a,30 +34b3b5b,25 +34b3b5c,c +34b3b5d,10 +34b3b5e,14 +34b3b5f,1c +34b3b60,2 +34b3b62,20 +34b3b63,25 +34b3b64,3c +34b3b65,2 +34b3b66,80 +34b3b67,40 +34b3b68,8c +34b3b69,42 +34b3b6a,65 +34b3b6b,10 +34b3b6c,18 +34b3b6d,40 +34b3b6e,1 +34b3b6f,99 +34b3b70,3c +34b3b71,2 +34b3b72,80 +34b3b73,40 +34b3b74,3c +34b3b75,13 +34b3b76,80 +34b3b77,40 +34b3b78,26 +34b3b79,73 +34b3b7a,64 +34b3b7b,70 +34b3b7e,90 +34b3b7f,25 +34b3b80,3c +34b3b81,17 +34b3b82,80 +34b3b83,40 +34b3b84,3c +34b3b85,14 +34b3b86,80 +34b3b87,40 +34b3b88,26 +34b3b89,94 +34b3b8a,64 +34b3b8b,4c +34b3b8c,24 +34b3b8d,42 +34b3b8e,64 +34b3b8f,3c +34b3b90,af +34b3b91,a2 +34b3b93,3c +34b3b94,3c +34b3b95,1e +34b3b96,80 +34b3b97,11 +34b3b98,37 +34b3b99,de +34b3b9a,a5 +34b3b9b,d0 +34b3b9c,3c +34b3b9d,16 +34b3b9e,80 +34b3b9f,40 +34b3ba0,8e +34b3ba1,e2 +34b3ba2,65 +34b3ba3,1c +34b3ba4,10 +34b3ba5,40 +34b3ba7,8 +34b3ba8,92 +34b3ba9,62 +34b3bac,3 +34b3bad,c2 +34b3bae,10 +34b3baf,21 +34b3bb0,90 +34b3bb1,42 +34b3bb3,a8 +34b3bb5,2 +34b3bb6,10 +34b3bb7,42 +34b3bb8,30 +34b3bb9,42 +34b3bbb,1 +34b3bbc,50 +34b3bbd,40 +34b3bbf,14 +34b3bc0,26 +34b3bc1,52 +34b3bc3,1 +34b3bc4,92 +34b3bc5,62 +34b3bc9,54 +34b3bca,10 +34b3bcb,21 +34b3bcc,80 +34b3bcd,46 +34b3bd0,2c +34b3bd1,c2 +34b3bd3,3 +34b3bd4,50 +34b3bd5,40 +34b3bd7,e +34b3bd8,26 +34b3bd9,52 +34b3bdb,1 +34b3bdc,24 +34b3bdd,2 +34b3bdf,10 +34b3be0,af +34b3be1,a2 +34b3be3,18 +34b3be4,af +34b3be5,a2 +34b3be7,14 +34b3be9,12 +34b3bea,10 +34b3beb,c0 +34b3bed,52 +34b3bee,10 +34b3bef,21 +34b3bf1,2 +34b3bf2,10 +34b3bf3,40 +34b3bf4,24 +34b3bf5,42 +34b3bf7,4 +34b3bf8,af +34b3bf9,a2 +34b3bfb,10 +34b3bfc,8f +34b3bfd,a7 +34b3bff,38 +34b3c00,8f +34b3c01,a5 +34b3c03,3c +34b3c04,c +34b3c05,10 +34b3c06,14 +34b3c07,b1 +34b3c08,2 +34b3c0a,20 +34b3c0b,25 +34b3c0c,26 +34b3c0d,52 +34b3c0f,1 +34b3c10,8e +34b3c11,c2 +34b3c12,65 +34b3c13,10 +34b3c14,2 +34b3c15,42 +34b3c16,10 +34b3c17,2a +34b3c18,14 +34b3c19,40 +34b3c1a,ff +34b3c1b,e1 +34b3c1c,26 +34b3c1d,73 +34b3c1f,c +34b3c20,3c +34b3c21,2 +34b3c22,80 +34b3c23,40 +34b3c24,8c +34b3c25,42 +34b3c26,65 +34b3c27,10 +34b3c28,18 +34b3c29,40 +34b3c2b,10 +34b3c2c,26 +34b3c2d,31 +34b3c2f,14 +34b3c30,3c +34b3c31,12 +34b3c32,80 +34b3c33,40 +34b3c34,26 +34b3c35,52 +34b3c36,64 +34b3c37,72 +34b3c38,24 +34b3c39,14 +34b3c3b,5 +34b3c3e,98 +34b3c3f,25 +34b3c40,3c +34b3c41,16 +34b3c42,80 +34b3c43,40 +34b3c44,2 +34b3c45,80 +34b3c46,30 +34b3c47,25 +34b3c48,2 +34b3c49,20 +34b3c4a,28 +34b3c4b,25 +34b3c4c,c +34b3c4d,10 +34b3c4e,18 +34b3c4f,84 +34b3c50,2 +34b3c51,40 +34b3c52,20 +34b3c53,25 +34b3c54,26 +34b3c55,73 +34b3c57,1 +34b3c58,26 +34b3c59,52 +34b3c5b,c +34b3c5c,8e +34b3c5d,c2 +34b3c5e,65 +34b3c5f,10 +34b3c60,2 +34b3c61,62 +34b3c62,10 +34b3c63,2a +34b3c64,14 +34b3c65,40 +34b3c66,ff +34b3c67,f7 +34b3c68,26 +34b3c69,94 +34b3c6b,12 +34b3c6c,3c +34b3c6d,2 +34b3c6e,80 +34b3c6f,40 +34b3c70,94 +34b3c71,42 +34b3c72,64 +34b3c73,10 +34b3c75,2 +34b3c76,10 +34b3c77,c0 +34b3c78,24 +34b3c79,42 +34b3c7b,2 +34b3c7d,51 +34b3c7e,88 +34b3c7f,21 +34b3c80,24 +34b3c81,7 +34b3c83,1 +34b3c84,24 +34b3c85,6 +34b3c87,11 +34b3c88,3c +34b3c89,5 +34b3c8a,80 +34b3c8b,40 +34b3c8c,24 +34b3c8d,a5 +34b3c8e,64 +34b3c8f,1c +34b3c90,c +34b3c91,10 +34b3c92,14 +34b3c93,1c +34b3c94,2 +34b3c96,20 +34b3c97,25 +34b3c98,3c +34b3c99,2 +34b3c9a,80 +34b3c9b,40 +34b3c9c,8c +34b3c9d,42 +34b3c9e,65 +34b3c9f,10 +34b3ca0,18 +34b3ca1,40 +34b3ca3,2a +34b3ca4,3c +34b3ca5,1e +34b3ca6,80 +34b3ca7,11 +34b3ca8,3c +34b3ca9,13 +34b3caa,80 +34b3cab,40 +34b3cac,26 +34b3cad,73 +34b3cae,64 +34b3caf,70 +34b3cb0,24 +34b3cb1,14 +34b3cb3,5 +34b3cb6,90 +34b3cb7,25 +34b3cb8,2 +34b3cb9,60 +34b3cba,b0 +34b3cbb,25 +34b3cbc,37 +34b3cbd,de +34b3cbe,a5 +34b3cbf,d0 +34b3cc0,3c +34b3cc1,17 +34b3cc2,80 +34b3cc3,40 +34b3cc5,12 +34b3cc6,10 +34b3cc7,40 +34b3cc9,52 +34b3cca,10 +34b3ccb,21 +34b3ccd,2 +34b3cce,10 +34b3ccf,80 +34b3cd1,56 +34b3cd2,10 +34b3cd3,21 +34b3cd4,80 +34b3cd5,42 +34b3cd7,1 +34b3cd8,4 +34b3cd9,43 +34b3cdb,17 +34b3cdc,26 +34b3cdd,52 +34b3cdf,1 +34b3ce0,92 +34b3ce1,62 +34b3ce4,3 +34b3ce5,c2 +34b3ce6,10 +34b3ce7,21 +34b3ce8,90 +34b3ce9,42 +34b3ceb,bc +34b3ced,2 +34b3cee,1e +34b3cf1,3 +34b3cf2,1e +34b3cf3,3 +34b3cf4,28 +34b3cf5,63 +34b3cf7,a +34b3cf8,50 +34b3cf9,60 +34b3cfb,1 +34b3cfc,24 +34b3cfd,2 +34b3cff,9 +34b3d00,24 +34b3d01,3 +34b3d02,30 +34b3d04,a7 +34b3d05,a3 +34b3d07,20 +34b3d09,40 +34b3d0a,18 +34b3d0b,25 +34b3d0d,2 +34b3d0e,16 +34b3d11,2 +34b3d12,16 +34b3d13,3 +34b3d14,4 +34b3d15,42 +34b3d17,1 +34b3d1a,18 +34b3d1b,25 +34b3d1c,24 +34b3d1d,63 +34b3d1f,30 +34b3d20,a3 +34b3d21,a3 +34b3d23,20 +34b3d24,2 +34b3d25,80 +34b3d26,30 +34b3d27,25 +34b3d28,2 +34b3d29,20 +34b3d2a,28 +34b3d2b,25 +34b3d2c,c +34b3d2d,10 +34b3d2e,18 +34b3d2f,84 +34b3d30,27 +34b3d31,a4 +34b3d33,20 +34b3d34,26 +34b3d35,52 +34b3d37,1 +34b3d38,26 +34b3d39,73 +34b3d3b,c +34b3d3c,8e +34b3d3d,e2 +34b3d3e,65 +34b3d3f,10 +34b3d40,2 +34b3d41,42 +34b3d42,10 +34b3d43,2a +34b3d44,14 +34b3d45,40 +34b3d46,ff +34b3d47,df +34b3d48,26 +34b3d49,94 +34b3d4b,12 +34b3d4c,26 +34b3d4d,3e +34b3d4f,12 +34b3d50,24 +34b3d51,7 +34b3d53,1 +34b3d54,24 +34b3d55,6 +34b3d57,e +34b3d58,3c +34b3d59,5 +34b3d5a,80 +34b3d5b,40 +34b3d5c,24 +34b3d5d,a5 +34b3d5e,64 +34b3d5f,1c +34b3d60,c +34b3d61,10 +34b3d62,14 +34b3d63,1c +34b3d64,2 +34b3d66,20 +34b3d67,25 +34b3d68,3c +34b3d69,2 +34b3d6a,80 +34b3d6b,40 +34b3d6c,8c +34b3d6d,42 +34b3d6e,65 +34b3d6f,10 +34b3d70,18 +34b3d71,40 +34b3d73,2d +34b3d74,3c +34b3d75,2 +34b3d76,80 +34b3d77,40 +34b3d78,3c +34b3d79,13 +34b3d7a,80 +34b3d7b,40 +34b3d7c,26 +34b3d7d,73 +34b3d7e,64 +34b3d7f,70 +34b3d82,90 +34b3d83,25 +34b3d84,24 +34b3d85,17 +34b3d87,d +34b3d88,2 +34b3d89,60 +34b3d8a,a0 +34b3d8b,25 +34b3d8c,24 +34b3d8d,42 +34b3d8e,64 +34b3d8f,1c +34b3d90,af +34b3d91,a2 +34b3d93,38 +34b3d94,3c +34b3d95,16 +34b3d96,80 +34b3d97,40 +34b3d98,92 +34b3d99,63 +34b3d9c,50 +34b3d9d,77 +34b3d9f,1 +34b3da0,24 +34b3da1,3 +34b3da3,a +34b3da5,12 +34b3da6,10 +34b3da7,40 +34b3da9,52 +34b3daa,10 +34b3dab,21 +34b3dad,2 +34b3dae,10 +34b3daf,80 +34b3db1,54 +34b3db2,10 +34b3db3,21 +34b3db4,90 +34b3db5,42 +34b3db7,1 +34b3db8,30 +34b3db9,42 +34b3dbb,40 +34b3dbc,50 +34b3dbd,40 +34b3dbf,16 +34b3dc0,26 +34b3dc1,52 +34b3dc3,1 +34b3dc4,3c +34b3dc5,2 +34b3dc6,80 +34b3dc7,11 +34b3dc8,34 +34b3dc9,42 +34b3dca,a5 +34b3dcb,d0 +34b3dcd,43 +34b3dce,10 +34b3dcf,21 +34b3dd0,90 +34b3dd1,42 +34b3dd3,a8 +34b3dd4,30 +34b3dd5,42 +34b3dd7,1 +34b3dd8,50 +34b3dd9,40 +34b3ddb,f +34b3ddc,26 +34b3ddd,52 +34b3ddf,1 +34b3de0,24 +34b3de1,2 +34b3de3,10 +34b3de4,af +34b3de5,a2 +34b3de7,18 +34b3de8,af +34b3de9,a2 +34b3deb,14 +34b3ded,12 +34b3dee,10 +34b3def,c0 +34b3df1,52 +34b3df2,10 +34b3df3,21 +34b3df5,2 +34b3df6,10 +34b3df7,40 +34b3df8,24 +34b3df9,42 +34b3dfb,4 +34b3dfc,af +34b3dfd,a2 +34b3dff,10 +34b3e00,3 +34b3e01,c0 +34b3e02,38 +34b3e03,25 +34b3e06,30 +34b3e07,25 +34b3e08,8f +34b3e09,a5 +34b3e0b,38 +34b3e0c,c +34b3e0d,10 +34b3e0e,14 +34b3e0f,b1 +34b3e10,2 +34b3e12,20 +34b3e13,25 +34b3e14,26 +34b3e15,52 +34b3e17,1 +34b3e18,8e +34b3e19,c2 +34b3e1a,65 +34b3e1b,10 +34b3e1c,2 +34b3e1d,42 +34b3e1e,10 +34b3e1f,2a +34b3e20,14 +34b3e21,40 +34b3e22,ff +34b3e23,dd +34b3e24,26 +34b3e25,73 +34b3e27,c +34b3e28,24 +34b3e29,7 +34b3e2b,1 +34b3e2c,24 +34b3e2d,6 +34b3e2f,a +34b3e30,3c +34b3e31,5 +34b3e32,80 +34b3e33,40 +34b3e34,24 +34b3e35,a5 +34b3e36,64 +34b3e37,1c +34b3e38,c +34b3e39,10 +34b3e3a,14 +34b3e3b,1c +34b3e3c,2 +34b3e3e,20 +34b3e3f,25 +34b3e40,3c +34b3e41,2 +34b3e42,80 +34b3e43,40 +34b3e44,8c +34b3e45,42 +34b3e46,65 +34b3e47,10 +34b3e48,58 +34b3e49,40 +34b3e4b,29 +34b3e4c,26 +34b3e4d,3e +34b3e4f,24 +34b3e52,90 +34b3e53,25 +34b3e54,3c +34b3e55,13 +34b3e56,80 +34b3e57,40 +34b3e58,26 +34b3e59,73 +34b3e5a,64 +34b3e5b,70 +34b3e5c,3c +34b3e5d,16 +34b3e5e,80 +34b3e5f,11 +34b3e60,3c +34b3e61,17 +34b3e62,80 +34b3e63,40 +34b3e64,26 +34b3e65,f7 +34b3e66,64 +34b3e67,1c +34b3e68,3c +34b3e69,14 +34b3e6a,80 +34b3e6b,40 +34b3e6d,12 +34b3e6e,10 +34b3e6f,40 +34b3e71,52 +34b3e72,10 +34b3e73,21 +34b3e75,2 +34b3e76,10 +34b3e77,80 +34b3e79,53 +34b3e7a,10 +34b3e7b,21 +34b3e7c,90 +34b3e7d,42 +34b3e7f,1 +34b3e80,30 +34b3e81,42 +34b3e83,20 +34b3e84,50 +34b3e85,40 +34b3e87,15 +34b3e88,26 +34b3e89,52 +34b3e8b,1 +34b3e8c,36 +34b3e8d,c2 +34b3e8e,a5 +34b3e8f,d0 +34b3e90,8c +34b3e91,42 +34b3e93,a4 +34b3e94,3c +34b3e95,3 +34b3e97,40 +34b3e99,43 +34b3e9a,10 +34b3e9b,24 +34b3e9c,50 +34b3e9d,40 +34b3e9f,f +34b3ea0,26 +34b3ea1,52 +34b3ea3,1 +34b3ea4,24 +34b3ea5,2 +34b3ea7,10 +34b3ea8,af +34b3ea9,a2 +34b3eab,18 +34b3eac,af +34b3ead,a2 +34b3eaf,14 +34b3eb1,12 +34b3eb2,10 +34b3eb3,c0 +34b3eb5,52 +34b3eb6,10 +34b3eb7,21 +34b3eb9,2 +34b3eba,10 +34b3ebb,40 +34b3ebc,24 +34b3ebd,42 +34b3ebf,4 +34b3ec0,af +34b3ec1,a2 +34b3ec3,10 +34b3ec4,3 +34b3ec5,c0 +34b3ec6,38 +34b3ec7,25 +34b3eca,30 +34b3ecb,25 +34b3ecc,2 +34b3ecd,e0 +34b3ece,28 +34b3ecf,25 +34b3ed0,c +34b3ed1,10 +34b3ed2,14 +34b3ed3,b1 +34b3ed4,2 +34b3ed6,20 +34b3ed7,25 +34b3ed8,26 +34b3ed9,52 +34b3edb,1 +34b3edc,8e +34b3edd,82 +34b3ede,65 +34b3edf,10 +34b3ee0,2 +34b3ee1,42 +34b3ee2,10 +34b3ee3,2a +34b3ee4,14 +34b3ee5,40 +34b3ee6,ff +34b3ee7,e2 +34b3ee9,12 +34b3eea,10 +34b3eeb,40 +34b3eec,26 +34b3eed,3e +34b3eef,24 +34b3ef0,24 +34b3ef1,7 +34b3ef3,1 +34b3ef4,24 +34b3ef5,6 +34b3ef7,10 +34b3ef8,3c +34b3ef9,5 +34b3efa,80 +34b3efb,40 +34b3efc,24 +34b3efd,a5 +34b3efe,64 +34b3eff,1c +34b3f00,c +34b3f01,10 +34b3f02,14 +34b3f03,1c +34b3f04,2 +34b3f06,20 +34b3f07,25 +34b3f08,3c +34b3f09,2 +34b3f0a,80 +34b3f0b,40 +34b3f0c,8c +34b3f0d,42 +34b3f0e,65 +34b3f0f,10 +34b3f10,18 +34b3f11,40 +34b3f13,2b +34b3f14,3c +34b3f15,13 +34b3f16,80 +34b3f17,40 +34b3f18,26 +34b3f19,73 +34b3f1a,64 +34b3f1b,70 +34b3f1e,90 +34b3f1f,25 +34b3f20,2 +34b3f21,60 +34b3f22,a0 +34b3f23,25 +34b3f24,3c +34b3f25,17 +34b3f26,80 +34b3f27,11 +34b3f28,3c +34b3f29,2 +34b3f2a,80 +34b3f2b,40 +34b3f2c,24 +34b3f2d,42 +34b3f2e,64 +34b3f2f,1c +34b3f30,af +34b3f31,a2 +34b3f33,38 +34b3f34,3c +34b3f35,16 +34b3f36,80 +34b3f37,40 +34b3f39,12 +34b3f3a,10 +34b3f3b,40 +34b3f3d,52 +34b3f3e,10 +34b3f3f,21 +34b3f41,2 +34b3f42,10 +34b3f43,80 +34b3f45,54 +34b3f46,10 +34b3f47,21 +34b3f48,90 +34b3f49,42 +34b3f4b,1 +34b3f4c,30 +34b3f4d,42 +34b3f4f,10 +34b3f50,50 +34b3f51,40 +34b3f53,17 +34b3f54,26 +34b3f55,52 +34b3f57,1 +34b3f58,36 +34b3f59,e2 +34b3f5a,a5 +34b3f5b,d0 +34b3f5c,92 +34b3f5d,63 +34b3f61,43 +34b3f62,10 +34b3f63,21 +34b3f64,90 +34b3f65,42 +34b3f67,a8 +34b3f69,2 +34b3f6a,10 +34b3f6b,82 +34b3f6c,30 +34b3f6d,42 +34b3f6f,1 +34b3f70,50 +34b3f71,40 +34b3f73,f +34b3f74,26 +34b3f75,52 +34b3f77,1 +34b3f78,24 +34b3f79,2 +34b3f7b,10 +34b3f7c,af +34b3f7d,a2 +34b3f7f,18 +34b3f80,af +34b3f81,a2 +34b3f83,14 +34b3f85,12 +34b3f86,10 +34b3f87,c0 +34b3f89,52 +34b3f8a,10 +34b3f8b,21 +34b3f8d,2 +34b3f8e,10 +34b3f8f,40 +34b3f90,24 +34b3f91,42 +34b3f93,4 +34b3f94,af +34b3f95,a2 +34b3f97,10 +34b3f98,3 +34b3f99,c0 +34b3f9a,38 +34b3f9b,25 +34b3f9e,30 +34b3f9f,25 +34b3fa0,8f +34b3fa1,a5 +34b3fa3,38 +34b3fa4,c +34b3fa5,10 +34b3fa6,14 +34b3fa7,b1 +34b3fa8,2 +34b3faa,20 +34b3fab,25 +34b3fac,26 +34b3fad,52 +34b3faf,1 +34b3fb0,8e +34b3fb1,c2 +34b3fb2,65 +34b3fb3,10 +34b3fb4,2 +34b3fb5,42 +34b3fb6,10 +34b3fb7,2a +34b3fb8,14 +34b3fb9,40 +34b3fba,ff +34b3fbb,df +34b3fbc,26 +34b3fbd,73 +34b3fbf,c +34b3fc0,26 +34b3fc1,3e +34b3fc3,36 +34b3fc4,24 +34b3fc5,7 +34b3fc7,1 +34b3fc8,24 +34b3fc9,6 +34b3fcb,f +34b3fcc,3c +34b3fcd,5 +34b3fce,80 +34b3fcf,40 +34b3fd0,24 +34b3fd1,a5 +34b3fd2,64 +34b3fd3,1c +34b3fd4,c +34b3fd5,10 +34b3fd6,14 +34b3fd7,1c +34b3fd8,2 +34b3fda,20 +34b3fdb,25 +34b3fdc,3c +34b3fdd,2 +34b3fde,80 +34b3fdf,40 +34b3fe0,8c +34b3fe1,42 +34b3fe2,65 +34b3fe3,10 +34b3fe4,18 +34b3fe5,40 +34b3fe7,61 +34b3fe8,3c +34b3fe9,13 +34b3fea,80 +34b3feb,40 +34b3fec,26 +34b3fed,73 +34b3fee,64 +34b3fef,70 +34b3ff2,90 +34b3ff3,25 +34b3ff4,2 +34b3ff5,60 +34b3ff6,a0 +34b3ff7,25 +34b3ff8,3c +34b3ff9,17 +34b3ffa,80 +34b3ffb,11 +34b3ffc,3c +34b3ffd,2 +34b3ffe,80 +34b3fff,40 +34b4000,24 +34b4001,42 +34b4002,64 +34b4003,1c +34b4004,af +34b4005,a2 +34b4007,38 +34b4008,3c +34b4009,16 +34b400a,80 +34b400b,40 +34b400d,12 +34b400e,10 +34b400f,40 +34b4011,52 +34b4012,10 +34b4013,21 +34b4015,2 +34b4016,10 +34b4017,80 +34b4019,54 +34b401a,10 +34b401b,21 +34b401c,90 +34b401d,42 +34b401f,1 +34b4020,30 +34b4021,42 +34b4023,10 +34b4024,50 +34b4025,40 +34b4027,17 +34b4028,26 +34b4029,52 +34b402b,1 +34b402c,36 +34b402d,e2 +34b402e,a5 +34b402f,d0 +34b4030,92 +34b4031,63 +34b4035,43 +34b4036,10 +34b4037,21 +34b4038,90 +34b4039,42 +34b403b,a8 +34b403d,2 +34b403e,10 +34b403f,42 +34b4040,30 +34b4041,42 +34b4043,1 +34b4044,50 +34b4045,40 +34b4047,f +34b4048,26 +34b4049,52 +34b404b,1 +34b404c,24 +34b404d,2 +34b404f,10 +34b4050,af +34b4051,a2 +34b4053,18 +34b4054,af +34b4055,a2 +34b4057,14 +34b4059,12 +34b405a,10 +34b405b,c0 +34b405d,52 +34b405e,10 +34b405f,21 +34b4061,2 +34b4062,10 +34b4063,40 +34b4064,24 +34b4065,42 +34b4067,4 +34b4068,af +34b4069,a2 +34b406b,10 +34b406c,3 +34b406d,c0 +34b406e,38 +34b406f,25 +34b4072,30 +34b4073,25 +34b4074,8f +34b4075,a5 +34b4077,38 +34b4078,c +34b4079,10 +34b407a,14 +34b407b,b1 +34b407c,2 +34b407e,20 +34b407f,25 +34b4080,26 +34b4081,52 +34b4083,1 +34b4084,8e +34b4085,c2 +34b4086,65 +34b4087,10 +34b4088,2 +34b4089,42 +34b408a,10 +34b408b,2a +34b408c,14 +34b408d,40 +34b408e,ff +34b408f,df +34b4090,26 +34b4091,73 +34b4093,c +34b4094,12 +34b4095,a0 +34b4097,35 +34b4098,3c +34b4099,2 +34b409a,80 +34b409b,40 +34b409c,8c +34b409d,42 +34b409e,65 +34b409f,10 +34b40a0,18 +34b40a1,40 +34b40a3,32 +34b40a4,3c +34b40a5,13 +34b40a6,80 +34b40a7,40 +34b40a8,26 +34b40a9,73 +34b40aa,64 +34b40ab,70 +34b40ac,24 +34b40ad,14 +34b40af,5 +34b40b2,90 +34b40b3,25 +34b40b4,3c +34b40b5,17 +34b40b6,80 +34b40b7,40 +34b40b8,3c +34b40b9,16 +34b40ba,80 +34b40bb,40 +34b40bc,26 +34b40bd,d6 +34b40be,65 +34b40bf,40 +34b40c0,3c +34b40c1,15 +34b40c2,80 +34b40c3,40 +34b40c4,26 +34b40c5,b5 +34b40c6,64 +34b40c8,3c +34b40c9,2 +34b40ca,80 +34b40cb,40 +34b40cc,24 +34b40cd,42 +34b40ce,64 +34b40cf,4 +34b40d0,af +34b40d1,a2 +34b40d3,38 +34b40d4,3c +34b40d5,1e +34b40d6,80 +34b40d7,40 +34b40d8,8e +34b40d9,e2 +34b40da,65 +34b40db,20 +34b40dc,50 +34b40dd,40 +34b40df,14 +34b40e0,92 +34b40e1,62 +34b40e5,12 +34b40e6,10 +34b40e7,40 +34b40e9,52 +34b40ea,10 +34b40eb,21 +34b40ed,2 +34b40ee,10 +34b40ef,80 +34b40f0,27 +34b40f1,c3 +34b40f2,64 +34b40f3,70 +34b40f5,43 +34b40f6,10 +34b40f7,21 +34b40f8,90 +34b40f9,42 +34b40fb,1 +34b40fc,30 +34b40fd,42 +34b40ff,10 +34b4100,50 +34b4101,40 +34b4103,b +34b4104,92 +34b4105,62 +34b4108,92 +34b4109,63 +34b410c,3c +34b410d,2 +34b410e,80 +34b410f,11 +34b4110,34 +34b4111,42 +34b4112,a5 +34b4113,d0 +34b4115,43 +34b4116,10 +34b4117,21 +34b4118,90 +34b4119,42 +34b411b,a8 +34b411d,2 +34b411e,10 +34b411f,82 +34b4120,30 +34b4121,42 +34b4123,1 +34b4124,50 +34b4125,40 +34b4127,b +34b4128,26 +34b4129,52 +34b412b,1 +34b412c,92 +34b412d,62 +34b4131,56 +34b4132,10 +34b4133,21 +34b4134,90 +34b4135,42 +34b4138,14 +34b4139,40 +34b413b,2 +34b413c,2 +34b413d,a0 +34b413e,20 +34b413f,25 +34b4140,8f +34b4141,a4 +34b4143,38 +34b4144,2 +34b4145,80 +34b4146,30 +34b4147,25 +34b4148,c +34b4149,10 +34b414a,18 +34b414b,84 +34b414c,26 +34b414d,25 +34b414f,48 +34b4150,26 +34b4151,52 +34b4153,1 +34b4154,26 +34b4155,94 +34b4157,12 +34b4158,3c +34b4159,2 +34b415a,80 +34b415b,40 +34b415c,8c +34b415d,42 +34b415e,65 +34b415f,10 +34b4160,2 +34b4161,42 +34b4162,10 +34b4163,2a +34b4164,14 +34b4165,40 +34b4166,ff +34b4167,dc +34b4168,26 +34b4169,73 +34b416b,c +34b416c,c +34b416d,10 +34b416e,18 +34b416f,ae +34b4170,2 +34b4172,20 +34b4173,25 +34b4174,8e +34b4175,2 +34b4177,8 +34b4178,24 +34b4179,43 +34b417b,8 +34b417c,ae +34b417d,3 +34b417f,8 +34b4180,3c +34b4181,3 +34b4182,e9 +34b4184,ac +34b4185,43 +34b4188,ac +34b4189,40 +34b418b,4 +34b418c,8e +34b418d,2 +34b418f,8 +34b4190,24 +34b4191,43 +34b4193,8 +34b4194,ae +34b4195,3 +34b4197,8 +34b4198,3c +34b4199,3 +34b419a,df +34b419c,ac +34b419d,43 +34b41a0,ac +34b41a1,40 +34b41a3,4 +34b41a4,8f +34b41a5,bf +34b41a7,6c +34b41a8,8f +34b41a9,be +34b41ab,68 +34b41ac,8f +34b41ad,b7 +34b41af,64 +34b41b0,8f +34b41b1,b6 +34b41b3,60 +34b41b4,8f +34b41b5,b5 +34b41b7,5c +34b41b8,8f +34b41b9,b4 +34b41bb,58 +34b41bc,8f +34b41bd,b3 +34b41bf,54 +34b41c0,8f +34b41c1,b2 +34b41c3,50 +34b41c4,8f +34b41c5,b1 +34b41c7,4c +34b41c8,8f +34b41c9,b0 +34b41cb,48 +34b41cc,3 +34b41cd,e0 +34b41cf,8 +34b41d0,27 +34b41d1,bd +34b41d3,70 +34b41d4,10 +34b41d6,fe +34b41d7,a5 +34b41d8,26 +34b41d9,31 +34b41db,14 +34b41dc,3 +34b41dd,e0 +34b41df,8 +34b41e4,27 +34b41e5,bd +34b41e6,ff +34b41e7,e8 +34b41e8,af +34b41e9,bf +34b41eb,14 +34b41ec,c +34b41ed,10 +34b41ee,15 +34b41ef,bb +34b41f0,24 +34b41f1,4 +34b41f2,4 +34b41f4,3c +34b41f5,3 +34b41f6,80 +34b41f7,40 +34b41f8,ac +34b41f9,62 +34b41fa,65 +34b41fb,2c +34b41fc,3c +34b41fd,3 +34b41fe,80 +34b41ff,40 +34b4200,ac +34b4201,62 +34b4202,65 +34b4203,28 +34b4204,8f +34b4205,bf +34b4207,14 +34b4208,3 +34b4209,e0 +34b420b,8 +34b420c,27 +34b420d,bd +34b420f,18 +34b4210,80 +34b4211,82 +34b4214,10 +34b4215,40 +34b4217,26 +34b4218,24 +34b4219,87 +34b421b,1 +34b421c,3c +34b421d,3 +34b421e,80 +34b421f,40 +34b4220,8c +34b4221,68 +34b4222,65 +34b4223,2c +34b4224,25 +34b4225,8 +34b4226,4 +34b4228,3c +34b4229,3 +34b422a,80 +34b422b,40 +34b422c,8c +34b422d,63 +34b422e,65 +34b422f,28 +34b4231,68 +34b4232,20 +34b4233,2b +34b4234,10 +34b4235,80 +34b4237,1e +34b4238,3c +34b4239,a +34b423a,ff +34b423c,25 +34b423d,4a +34b423e,f +34b423f,ff +34b4240,30 +34b4241,c6 +34b4242,f +34b4243,ff +34b4244,24 +34b4245,b +34b4246,f0 +34b4248,3c +34b4249,9 +34b424a,80 +34b424b,40 +34b424c,10 +34b424f,7 +34b4250,25 +34b4251,29 +34b4252,64 +34b4253,c +34b4255,68 +34b4256,20 +34b4257,2b +34b4258,54 +34b4259,80 +34b425b,5 +34b425c,a0 +34b425d,62 +34b4260,3c +34b4261,2 +34b4262,80 +34b4263,40 +34b4264,3 +34b4265,e0 +34b4267,8 +34b4268,ac +34b4269,43 +34b426a,65 +34b426b,28 +34b426c,a0 +34b426d,62 +34b4270,30 +34b4271,a2 +34b4272,f +34b4273,ff +34b4275,2 +34b4276,23 +34b4278,8c +34b4279,62 +34b427d,4a +34b427e,10 +34b427f,24 +34b4281,44 +34b4282,10 +34b4283,25 +34b4285,4b +34b4286,10 +34b4287,24 +34b4289,46 +34b428a,10 +34b428b,25 +34b428c,ac +34b428d,62 +34b4290,95 +34b4291,22 +34b4293,4 +34b4295,a2 +34b4296,28 +34b4297,21 +34b4298,24 +34b4299,e7 +34b429b,1 +34b429c,80 +34b429d,e2 +34b429e,ff +34b429f,ff +34b42a0,14 +34b42a1,40 +34b42a2,ff +34b42a3,ec +34b42a4,24 +34b42a5,63 +34b42a7,4 +34b42a8,3c +34b42a9,2 +34b42aa,80 +34b42ab,40 +34b42ac,ac +34b42ad,43 +34b42ae,65 +34b42af,28 +34b42b0,3 +34b42b1,e0 +34b42b3,8 +34b42b8,27 +34b42b9,bd +34b42ba,ff +34b42bb,b0 +34b42bc,af +34b42bd,bf +34b42bf,4c +34b42c0,af +34b42c1,be +34b42c3,48 +34b42c4,af +34b42c5,b7 +34b42c7,44 +34b42c8,af +34b42c9,b6 +34b42cb,40 +34b42cc,af +34b42cd,b5 +34b42cf,3c +34b42d0,af +34b42d1,b4 +34b42d3,38 +34b42d4,af +34b42d5,b3 +34b42d7,34 +34b42d8,af +34b42d9,b2 +34b42db,30 +34b42dc,af +34b42dd,b1 +34b42df,2c +34b42e0,af +34b42e1,b0 +34b42e3,28 +34b42e5,80 +34b42e6,a8 +34b42e7,25 +34b42ea,b0 +34b42eb,25 +34b42ee,90 +34b42ef,25 +34b42f0,3c +34b42f1,14 +34b42f2,80 +34b42f3,40 +34b42f4,26 +34b42f5,94 +34b42f6,64 +34b42f7,c +34b42f8,3c +34b42f9,1e +34b42fa,80 +34b42fb,40 +34b42fc,3c +34b42fd,13 +34b42fe,80 +34b42ff,40 +34b4300,3c +34b4301,17 +34b4302,38 +34b4303,e3 +34b4304,af +34b4305,b4 +34b4307,20 +34b4308,24 +34b4309,7 +34b430b,12 +34b430c,2 +34b430d,c0 +34b430e,30 +34b430f,25 +34b4310,2 +34b4311,80 +34b4312,28 +34b4313,25 +34b4314,c +34b4315,10 +34b4316,14 +34b4317,1c +34b4318,2 +34b4319,a0 +34b431a,20 +34b431b,25 +34b431c,8f +34b431d,c5 +34b431e,65 +34b431f,2c +34b4320,10 +34b4323,1f +34b4324,36 +34b4325,f1 +34b4326,8e +34b4327,39 +34b4328,24 +34b4329,42 +34b432a,ff +34b432b,e0 +34b432d,51 +34b432f,18 +34b4332,18 +34b4333,10 +34b4335,3 +34b4336,18 +34b4337,83 +34b4339,2 +34b433a,27 +34b433b,c3 +34b433d,64 +34b433e,18 +34b433f,23 +34b4340,14 +34b4341,72 +34b4343,16 +34b4344,24 +34b4345,b0 +34b4347,4 +34b4348,8c +34b4349,a7 +34b434d,7 +34b434e,3b +34b434f,2 +34b4351,51 +34b4353,18 +34b4356,30 +34b4357,10 +34b4359,6 +34b435a,30 +34b435b,83 +34b435d,c4 +34b435e,30 +34b435f,23 +34b4361,6 +34b4362,18 +34b4363,c0 +34b4365,66 +34b4366,30 +34b4367,21 +34b4369,6 +34b436a,30 +34b436b,40 +34b436c,96 +34b436d,83 +34b436f,6 +34b4370,af +34b4371,a3 +34b4373,18 +34b4374,96 +34b4375,83 +34b4377,4 +34b4378,af +34b4379,a3 +34b437b,14 +34b437c,8c +34b437d,a3 +34b4380,30 +34b4381,63 +34b4382,f +34b4383,ff +34b4384,af +34b4385,a3 +34b4387,10 +34b4388,30 +34b4389,e7 +34b438a,f +34b438b,ff +34b438d,46 +34b438e,30 +34b438f,23 +34b4390,8f +34b4391,a5 +34b4393,20 +34b4394,c +34b4395,10 +34b4396,14 +34b4397,b1 +34b4398,2 +34b4399,a0 +34b439a,20 +34b439b,25 +34b439c,2 +34b439e,28 +34b439f,25 +34b43a0,8e +34b43a1,62 +34b43a2,65 +34b43a3,28 +34b43a5,a2 +34b43a6,10 +34b43a7,2b +34b43a8,54 +34b43a9,40 +34b43aa,ff +34b43ab,df +34b43ac,80 +34b43ad,a2 +34b43b0,26 +34b43b1,52 +34b43b3,1 +34b43b4,24 +34b43b5,2 +34b43b7,6 +34b43b8,16 +34b43b9,42 +34b43ba,ff +34b43bb,d3 +34b43bc,26 +34b43bd,d6 +34b43bf,12 +34b43c0,3c +34b43c1,2 +34b43c2,80 +34b43c3,40 +34b43c4,8c +34b43c5,43 +34b43c6,65 +34b43c7,2c +34b43c8,3c +34b43c9,2 +34b43ca,80 +34b43cb,40 +34b43cc,ac +34b43cd,43 +34b43ce,65 +34b43cf,28 +34b43d0,8f +34b43d1,bf +34b43d3,4c +34b43d4,8f +34b43d5,be +34b43d7,48 +34b43d8,8f +34b43d9,b7 +34b43db,44 +34b43dc,8f +34b43dd,b6 +34b43df,40 +34b43e0,8f +34b43e1,b5 +34b43e3,3c +34b43e4,8f +34b43e5,b4 +34b43e7,38 +34b43e8,8f +34b43e9,b3 +34b43eb,34 +34b43ec,8f +34b43ed,b2 +34b43ef,30 +34b43f0,8f +34b43f1,b1 +34b43f3,2c +34b43f4,8f +34b43f5,b0 +34b43f7,28 +34b43f8,3 +34b43f9,e0 +34b43fb,8 +34b43fc,27 +34b43fd,bd +34b43ff,50 +34b4400,4d +34b4401,51 +34b4404,4e +34b4405,6f +34b4406,72 +34b4407,6d +34b4408,61 +34b4409,6c +34b4411,8 +34b4413,e +34b4415,5f +34b4416,3 +34b4417,1 +34b4418,1 +34b4421,18 +34b4423,18 +34b4425,12 +34b4427,3 +34b4428,4 +34b4431,10 +34b4433,10 +34b4435,6 +34b4436,3 +34b4437,1 +34b4438,1 +34b4441,10 +34b4443,10 +34b4445,3 +34b4447,3 +34b4448,4 +34b444d,1 +34b444e,2 +34b444f,3 +34b4450,4 +34b4451,5 +34b4452,6 +34b4453,7 +34b4454,ff +34b4455,ff +34b4456,ff +34b4457,ff +34b4458,ff +34b4459,ff +34b445d,ff +34b445f,ff +34b4460,3c +34b4463,64 +34b4464,ff +34b4465,ff +34b4466,82 +34b4468,c8 +34b4469,32 +34b446a,ff +34b446b,c8 +34b446c,c8 +34b4471,10 +34b4472,44 +34b4473,65 +34b4474,6b +34b4475,75 +34b447c,1 +34b447d,10 +34b447e,44 +34b447f,6f +34b4480,64 +34b4481,6f +34b4482,6e +34b4483,67 +34b4484,6f +34b4488,2 +34b4489,10 +34b448a,4a +34b448b,61 +34b448c,62 +34b448d,75 +34b4494,3 +34b4495,d0 +34b4496,46 +34b4497,6f +34b4498,72 +34b4499,65 +34b449a,73 +34b449b,74 +34b44a0,4 +34b44a1,d0 +34b44a2,46 +34b44a3,69 +34b44a4,72 +34b44a5,65 +34b44ac,5 +34b44ad,d0 +34b44ae,57 +34b44af,61 +34b44b0,74 +34b44b1,65 +34b44b2,72 +34b44b8,7 +34b44b9,d0 +34b44ba,53 +34b44bb,68 +34b44bc,61 +34b44bd,64 +34b44be,6f +34b44bf,77 +34b44c4,6 +34b44c5,d0 +34b44c6,53 +34b44c7,70 +34b44c8,69 +34b44c9,72 +34b44ca,69 +34b44cb,74 +34b44d0,8 +34b44d1,90 +34b44d2,42 +34b44d3,6f +34b44d4,74 +34b44d5,57 +34b44dc,9 +34b44dd,10 +34b44de,49 +34b44df,63 +34b44e0,65 +34b44e8,c +34b44e9,a0 +34b44ea,47 +34b44eb,65 +34b44ec,72 +34b44ed,75 +34b44ee,64 +34b44ef,6f +34b44f4,b +34b44f5,80 +34b44f6,47 +34b44f7,54 +34b44f8,47 +34b4500,d +34b4501,c0 +34b4502,47 +34b4503,61 +34b4504,6e +34b4505,6f +34b4506,6e +34b450f,1 +34b4513,d +34b458f,d +34b4590,b0 +34b4593,d +34b4594,b0 +34b4597,d +34b4598,b0 +34b459b,c +34b459c,b0 +34b459f,c +34b45a0,b0 +34b45a3,c +34b45a4,a0 +34b45ab,d +34b45ac,b0 +34b45af,d +34b45b0,b0 +34b45c7,e8 +34b45c8,ac +34b45cb,e8 +34b45cc,ac +34b45cf,e8 +34b45d0,ac +34b45d3,e8 +34b45d4,ac +34b45fb,d +34b45fc,77 +34b45fd,d0 +34b45ff,2e +34b4600,3a +34b4601,b0 +34b4603,7d +34b4604,c +34b4605,90 +34b4606,8f +34b4607,ff +34b4608,ff +34b4609,fd +34b460b,c9 +34b460c,6e +34b460e,2 +34b460f,e4 +34b4610,ac +34b4612,ef +34b4613,ff +34b4614,ff +34b4615,f4 +34b4616,a +34b4617,b0 +34b4618,e5 +34b461a,c +34b461b,95 +34b461c,e0 +34b461e,e +34b461f,59 +34b4620,c0 +34b4637,7 +34b4638,90 +34b463a,5 +34b463b,ce +34b463c,eb +34b463d,40 +34b463e,c +34b463f,c8 +34b4640,a9 +34b4641,90 +34b4642,d +34b4643,a7 +34b4644,90 +34b4646,8 +34b4647,ec +34b4648,b4 +34b464b,4a +34b464c,dd +34b464d,a0 +34b464f,7 +34b4650,97 +34b4651,e2 +34b4652,c +34b4653,88 +34b4654,aa +34b4655,e0 +34b4656,6 +34b4657,ce +34b4658,ed +34b4659,70 +34b465b,7 +34b465c,90 +34b465f,7 +34b4660,90 +34b466e,6d +34b466f,ea +34b4672,c9 +34b4673,4d +34b4674,60 +34b4676,c9 +34b4677,4d +34b4678,60 +34b4679,33 +34b467a,6d +34b467b,eb +34b467c,6b +34b467d,c6 +34b467f,8c +34b4680,b6 +34b4682,7c +34b4683,a4 +34b4684,ce +34b4685,c4 +34b4686,31 +34b4687,9 +34b4688,c3 +34b4689,bb +34b468b,9 +34b468c,c3 +34b468d,bb +34b468f,2 +34b4690,ce +34b4691,d4 +34b46a6,4 +34b46a7,ce +34b46a8,fb +34b46aa,a +34b46ab,d5 +34b46ae,8 +34b46af,e3 +34b46b2,9 +34b46b3,ec +34b46b6,7e +34b46b7,4d +34b46b8,b0 +34b46b9,ab +34b46ba,bb +34b46bb,5 +34b46bc,e8 +34b46bd,aa +34b46be,bc +34b46c0,8e +34b46c1,d6 +34b46c2,7e +34b46c3,93 +34b46c4,6e +34b46c5,d0 +34b46c6,8 +34b46c7,de +34b46c8,d9 +34b46c9,ea +34b46df,c +34b46e0,a0 +34b46e3,c +34b46e4,a0 +34b46e7,c +34b46e8,a0 +34b46eb,c +34b46ec,a0 +34b4710,c9 +34b4713,7 +34b4714,e2 +34b4717,c +34b4718,b0 +34b471b,e +34b471c,80 +34b471f,6f +34b4720,30 +34b4723,8e +34b4727,8e +34b472b,6f +34b472c,40 +34b472f,e +34b4730,80 +34b4733,c +34b4734,b0 +34b4737,7 +34b4738,e2 +34b473c,c9 +34b4747,bb +34b474b,5e +34b474c,40 +34b474f,c +34b4750,a0 +34b4753,a +34b4754,d0 +34b4757,7 +34b4758,e1 +34b475b,6 +34b475c,f4 +34b475f,6 +34b4760,f4 +34b4763,7 +34b4764,e1 +34b4767,a +34b4768,d0 +34b476b,c +34b476c,a0 +34b476f,5e +34b4770,40 +34b4773,bb +34b4787,a +34b4788,80 +34b478a,c +34b478b,8a +34b478c,8a +34b478d,b0 +34b478e,3 +34b478f,be +34b4790,da +34b4791,10 +34b4792,3 +34b4793,be +34b4794,da +34b4795,10 +34b4796,c +34b4797,8a +34b4798,8a +34b4799,b0 +34b479b,a +34b479c,80 +34b47c3,c +34b47c4,a0 +34b47c7,c +34b47c8,a0 +34b47cb,c +34b47cc,a0 +34b47ce,af +34b47cf,ff +34b47d0,ff +34b47d1,f8 +34b47d3,c +34b47d4,a0 +34b47d7,c +34b47d8,a0 +34b47db,c +34b47dc,a0 +34b4813,d +34b4814,d0 +34b4817,e +34b4818,c0 +34b481b,4f +34b481c,80 +34b481f,9d +34b4843,df +34b4844,fb +34b4883,e +34b4884,c0 +34b4887,e +34b4888,c0 +34b48a0,b +34b48a1,c0 +34b48a4,4e +34b48a5,60 +34b48a8,bc +34b48ab,3 +34b48ac,e8 +34b48af,a +34b48b0,d0 +34b48b3,1e +34b48b4,90 +34b48b7,9e +34b48b8,20 +34b48bb,da +34b48be,7 +34b48bf,e3 +34b48c2,c +34b48c3,b0 +34b48c6,6e +34b48c7,50 +34b48d6,3 +34b48d7,ce +34b48d8,eb +34b48da,b +34b48db,d5 +34b48dc,7e +34b48dd,90 +34b48de,e +34b48df,90 +34b48e0,b +34b48e1,d0 +34b48e2,5f +34b48e3,70 +34b48e4,9 +34b48e5,e0 +34b48e6,6f +34b48e7,6c +34b48e8,b9 +34b48e9,e0 +34b48ea,5f +34b48eb,70 +34b48ec,9 +34b48ed,e0 +34b48ee,e +34b48ef,90 +34b48f0,b +34b48f1,d0 +34b48f2,b +34b48f3,d5 +34b48f4,7e +34b48f5,90 +34b48f6,3 +34b48f7,ce +34b48f8,eb +34b490e,a +34b490f,ff +34b4910,e0 +34b4913,8 +34b4914,e0 +34b4917,8 +34b4918,e0 +34b491b,8 +34b491c,e0 +34b491f,8 +34b4920,e0 +34b4923,8 +34b4924,e0 +34b4927,8 +34b4928,e0 +34b492b,8 +34b492c,e0 +34b492e,8 +34b492f,ff +34b4930,ff +34b4931,e0 +34b4946,8 +34b4947,de +34b4948,ea +34b494a,c +34b494b,83 +34b494c,7e +34b494d,90 +34b4950,c +34b4951,c0 +34b4954,2e +34b4955,a0 +34b4958,bd +34b4959,20 +34b495b,b +34b495c,d4 +34b495f,bd +34b4960,40 +34b4962,b +34b4963,d4 +34b4966,2f +34b4967,ff +34b4968,ff +34b4969,d0 +34b497e,7 +34b497f,ce +34b4980,ea +34b4982,c +34b4983,83 +34b4984,7e +34b4985,90 +34b4988,c +34b4989,b0 +34b498b,2 +34b498c,7e +34b498d,90 +34b498f,bf +34b4990,fb +34b4993,2 +34b4994,7d +34b4995,a0 +34b4998,a +34b4999,d0 +34b499a,5c +34b499b,62 +34b499c,7d +34b499d,b0 +34b499e,9 +34b499f,de +34b49a0,eb +34b49a1,30 +34b49b7,2 +34b49b8,de +34b49bb,b +34b49bc,de +34b49bf,7d +34b49c0,9e +34b49c2,2 +34b49c3,d7 +34b49c4,9e +34b49c6,b +34b49c7,b0 +34b49c8,9e +34b49ca,6e +34b49cb,40 +34b49cc,9e +34b49ce,9f +34b49cf,ff +34b49d0,ff +34b49d1,f7 +34b49d4,9e +34b49d8,9e +34b49ee,c +34b49ef,ff +34b49f0,ff +34b49f1,50 +34b49f2,c +34b49f3,a0 +34b49f6,c +34b49f7,a0 +34b49fa,c +34b49fb,ee +34b49fc,ea +34b49ff,3 +34b4a00,8e +34b4a01,90 +34b4a04,b +34b4a05,c0 +34b4a08,b +34b4a09,c0 +34b4a0a,5c +34b4a0b,63 +34b4a0c,8e +34b4a0d,90 +34b4a0e,9 +34b4a0f,de +34b4a10,da +34b4a27,ae +34b4a28,ec +34b4a29,30 +34b4a2a,a +34b4a2b,e8 +34b4a2c,39 +34b4a2d,80 +34b4a2e,e +34b4a2f,90 +34b4a32,4f +34b4a33,ae +34b4a34,ec +34b4a35,40 +34b4a36,6f +34b4a37,d5 +34b4a38,5d +34b4a39,c0 +34b4a3a,5f +34b4a3b,90 +34b4a3c,9 +34b4a3d,e0 +34b4a3e,e +34b4a3f,90 +34b4a40,9 +34b4a41,e0 +34b4a42,c +34b4a43,d5 +34b4a44,5d +34b4a45,c0 +34b4a46,3 +34b4a47,ce +34b4a48,ec +34b4a49,40 +34b4a5e,5f +34b4a5f,ff +34b4a60,ff +34b4a61,d0 +34b4a64,d +34b4a65,a0 +34b4a68,7e +34b4a69,40 +34b4a6c,cc +34b4a6f,4 +34b4a70,e8 +34b4a73,a +34b4a74,d0 +34b4a77,d +34b4a78,a0 +34b4a7b,8e +34b4a7c,40 +34b4a7f,cc +34b4a96,5 +34b4a97,ce +34b4a98,ec +34b4a99,30 +34b4a9a,d +34b4a9b,c4 +34b4a9c,5d +34b4a9d,b0 +34b4a9e,e +34b4a9f,90 +34b4aa0,b +34b4aa1,d0 +34b4aa2,b +34b4aa3,c4 +34b4aa4,5d +34b4aa5,90 +34b4aa6,4 +34b4aa7,df +34b4aa8,fc +34b4aa9,20 +34b4aaa,1d +34b4aab,b4 +34b4aac,5c +34b4aad,c0 +34b4aae,5f +34b4aaf,60 +34b4ab0,9 +34b4ab1,e0 +34b4ab2,2e +34b4ab3,b3 +34b4ab4,5c +34b4ab5,d0 +34b4ab6,7 +34b4ab7,de +34b4ab8,ec +34b4ab9,50 +34b4ace,6 +34b4acf,de +34b4ad0,eb +34b4ad2,d +34b4ad3,b3 +34b4ad4,7e +34b4ad5,90 +34b4ad6,5f +34b4ad7,50 +34b4ad8,b +34b4ad9,d0 +34b4ada,5f +34b4adb,50 +34b4adc,b +34b4add,e0 +34b4ade,d +34b4adf,b3 +34b4ae0,7e +34b4ae1,e0 +34b4ae2,6 +34b4ae3,de +34b4ae4,db +34b4ae5,e0 +34b4ae8,b +34b4ae9,c0 +34b4aea,9 +34b4aeb,74 +34b4aec,9e +34b4aed,70 +34b4aee,5 +34b4aef,de +34b4af0,d8 +34b4b0f,e +34b4b10,c0 +34b4b13,e +34b4b14,c0 +34b4b23,e +34b4b24,c0 +34b4b27,e +34b4b28,c0 +34b4b47,e +34b4b48,c0 +34b4b4b,e +34b4b4c,c0 +34b4b5b,d +34b4b5c,d0 +34b4b5f,e +34b4b60,c0 +34b4b63,4f +34b4b64,80 +34b4b67,9d +34b4b80,29 +34b4b81,c8 +34b4b83,7b +34b4b84,ed +34b4b85,93 +34b4b86,8d +34b4b87,da +34b4b88,40 +34b4b8a,8d +34b4b8b,da +34b4b8c,40 +34b4b8f,7b +34b4b90,ec +34b4b91,93 +34b4b94,29 +34b4b95,c8 +34b4bba,af +34b4bbb,ff +34b4bbc,ff +34b4bbd,f8 +34b4bc6,af +34b4bc7,ff +34b4bc8,ff +34b4bc9,f8 +34b4bee,ac +34b4bef,81 +34b4bf2,4a +34b4bf3,de +34b4bf4,b6 +34b4bf7,6 +34b4bf8,ad +34b4bf9,d6 +34b4bfb,6 +34b4bfc,ad +34b4bfd,d6 +34b4bfe,4a +34b4bff,de +34b4c00,b6 +34b4c02,ac +34b4c03,81 +34b4c1e,4 +34b4c1f,be +34b4c20,ec +34b4c21,30 +34b4c22,9 +34b4c23,a4 +34b4c24,6e +34b4c25,a0 +34b4c28,1d +34b4c29,a0 +34b4c2b,2 +34b4c2c,cd +34b4c2d,30 +34b4c2f,c +34b4c30,c1 +34b4c33,e +34b4c34,90 +34b4c3b,e +34b4c3c,90 +34b4c3f,e +34b4c40,90 +34b4c56,1 +34b4c57,ae +34b4c58,ed +34b4c59,70 +34b4c5a,c +34b4c5b,d7 +34b4c5c,39 +34b4c5d,e4 +34b4c5e,7e +34b4c5f,20 +34b4c61,c9 +34b4c62,ba +34b4c63,a +34b4c64,ee +34b4c65,ca +34b4c66,d7 +34b4c67,6e +34b4c68,64 +34b4c69,da +34b4c6a,d6 +34b4c6b,9c +34b4c6d,aa +34b4c6e,d7 +34b4c6f,6e +34b4c70,64 +34b4c71,da +34b4c72,ba +34b4c73,a +34b4c74,ee +34b4c75,ca +34b4c76,6e +34b4c77,40 +34b4c7a,a +34b4c7b,d8 +34b4c7c,30 +34b4c7f,8d +34b4c80,ee +34b4c81,90 +34b4c8f,3e +34b4c90,d0 +34b4c93,9d +34b4c94,e6 +34b4c97,cb +34b4c98,cb +34b4c9a,3 +34b4c9b,e8 +34b4c9c,ad +34b4c9e,8 +34b4c9f,e2 +34b4ca0,6f +34b4ca1,60 +34b4ca2,c +34b4ca3,c0 +34b4ca4,e +34b4ca5,a0 +34b4ca6,2e +34b4ca7,ff +34b4ca8,ff +34b4ca9,d0 +34b4caa,8e +34b4cab,50 +34b4cac,8 +34b4cad,f5 +34b4cae,cd +34b4cb0,1 +34b4cb1,ea +34b4cc6,e +34b4cc7,ff +34b4cc8,ec +34b4cc9,40 +34b4cca,e +34b4ccb,90 +34b4ccc,5d +34b4ccd,c0 +34b4cce,e +34b4ccf,90 +34b4cd0,a +34b4cd1,e0 +34b4cd2,e +34b4cd3,90 +34b4cd4,5d +34b4cd5,c0 +34b4cd6,e +34b4cd7,ff +34b4cd8,fd +34b4cd9,50 +34b4cda,e +34b4cdb,90 +34b4cdc,4b +34b4cdd,d2 +34b4cde,e +34b4cdf,90 +34b4ce0,5 +34b4ce1,f6 +34b4ce2,e +34b4ce3,90 +34b4ce4,4b +34b4ce5,e3 +34b4ce6,e +34b4ce7,ff +34b4ce8,ed +34b4ce9,80 +34b4cff,9d +34b4d00,ed +34b4d01,80 +34b4d02,8 +34b4d03,e9 +34b4d04,36 +34b4d05,b0 +34b4d06,d +34b4d07,b0 +34b4d0a,3f +34b4d0b,90 +34b4d0e,5f +34b4d0f,70 +34b4d12,1e +34b4d13,90 +34b4d16,d +34b4d17,b0 +34b4d1a,8 +34b4d1b,e9 +34b4d1c,47 +34b4d1d,b0 +34b4d1f,9d +34b4d20,ed +34b4d21,80 +34b4d36,5f +34b4d37,fe +34b4d38,d8 +34b4d3a,5f +34b4d3b,65 +34b4d3c,ae +34b4d3d,80 +34b4d3e,5f +34b4d3f,60 +34b4d40,c +34b4d41,d0 +34b4d42,5f +34b4d43,60 +34b4d44,9 +34b4d45,e0 +34b4d46,5f +34b4d47,60 +34b4d48,9 +34b4d49,f0 +34b4d4a,5f +34b4d4b,60 +34b4d4c,9 +34b4d4d,e0 +34b4d4e,5f +34b4d4f,60 +34b4d50,c +34b4d51,d0 +34b4d52,5f +34b4d53,65 +34b4d54,ae +34b4d55,80 +34b4d56,5f +34b4d57,fe +34b4d58,d8 +34b4d6e,d +34b4d6f,ff +34b4d70,ff +34b4d71,e0 +34b4d72,d +34b4d73,b0 +34b4d76,d +34b4d77,b0 +34b4d7a,d +34b4d7b,b0 +34b4d7e,d +34b4d7f,ff +34b4d80,ff +34b4d81,c0 +34b4d82,d +34b4d83,b0 +34b4d86,d +34b4d87,b0 +34b4d8a,d +34b4d8b,b0 +34b4d8e,d +34b4d8f,ff +34b4d90,ff +34b4d91,f0 +34b4da6,b +34b4da7,ff +34b4da8,ff +34b4da9,f4 +34b4daa,b +34b4dab,d0 +34b4dae,b +34b4daf,d0 +34b4db2,b +34b4db3,d0 +34b4db6,b +34b4db7,ff +34b4db8,ff +34b4db9,c0 +34b4dba,b +34b4dbb,d0 +34b4dbe,b +34b4dbf,d0 +34b4dc2,b +34b4dc3,d0 +34b4dc6,b +34b4dc7,d0 +34b4dde,1 +34b4ddf,ae +34b4de0,ed +34b4de1,60 +34b4de2,b +34b4de3,e7 +34b4de4,38 +34b4de5,a0 +34b4de6,4e +34b4de7,90 +34b4dea,8f +34b4deb,40 +34b4dee,9f +34b4def,10 +34b4df0,bf +34b4df1,f2 +34b4df2,7f +34b4df3,40 +34b4df4,7 +34b4df5,f2 +34b4df6,4e +34b4df7,90 +34b4df8,7 +34b4df9,f2 +34b4dfa,b +34b4dfb,e7 +34b4dfc,39 +34b4dfd,f2 +34b4dfe,1 +34b4dff,be +34b4e00,ed +34b4e01,90 +34b4e16,5f +34b4e17,60 +34b4e18,9 +34b4e19,e0 +34b4e1a,5f +34b4e1b,60 +34b4e1c,9 +34b4e1d,e0 +34b4e1e,5f +34b4e1f,60 +34b4e20,9 +34b4e21,e0 +34b4e22,5f +34b4e23,60 +34b4e24,9 +34b4e25,e0 +34b4e26,5f +34b4e27,ff +34b4e28,ff +34b4e29,e0 +34b4e2a,5f +34b4e2b,60 +34b4e2c,9 +34b4e2d,e0 +34b4e2e,5f +34b4e2f,60 +34b4e30,9 +34b4e31,e0 +34b4e32,5f +34b4e33,60 +34b4e34,9 +34b4e35,e0 +34b4e36,5f +34b4e37,60 +34b4e38,9 +34b4e39,e0 +34b4e4e,d +34b4e4f,ff +34b4e50,ff +34b4e51,b0 +34b4e53,d +34b4e54,b0 +34b4e57,d +34b4e58,b0 +34b4e5b,d +34b4e5c,b0 +34b4e5f,d +34b4e60,b0 +34b4e63,d +34b4e64,b0 +34b4e67,d +34b4e68,b0 +34b4e6b,d +34b4e6c,b0 +34b4e6e,d +34b4e6f,ff +34b4e70,ff +34b4e71,b0 +34b4e87,cf +34b4e88,ff +34b4e89,40 +34b4e8c,7f +34b4e8d,40 +34b4e90,7f +34b4e91,40 +34b4e94,7f +34b4e95,40 +34b4e98,7f +34b4e99,40 +34b4e9c,7f +34b4e9d,30 +34b4e9e,75 +34b4ea0,9e +34b4ea2,8d +34b4ea3,64 +34b4ea4,dc +34b4ea6,2b +34b4ea7,ee +34b4ea8,c5 +34b4ebe,5f +34b4ebf,60 +34b4ec0,9 +34b4ec1,e7 +34b4ec2,5f +34b4ec3,60 +34b4ec4,9e +34b4ec5,70 +34b4ec6,5f +34b4ec7,69 +34b4ec8,e7 +34b4eca,5f +34b4ecb,be +34b4ecc,80 +34b4ece,5f +34b4ecf,ed +34b4ed0,b0 +34b4ed2,5f +34b4ed3,87 +34b4ed4,e8 +34b4ed6,5f +34b4ed7,60 +34b4ed8,ae +34b4ed9,40 +34b4eda,5f +34b4edb,60 +34b4edc,1d +34b4edd,c0 +34b4ede,5f +34b4edf,60 +34b4ee0,6 +34b4ee1,ea +34b4ef6,c +34b4ef7,c0 +34b4efa,c +34b4efb,c0 +34b4efe,c +34b4eff,c0 +34b4f02,c +34b4f03,c0 +34b4f06,c +34b4f07,c0 +34b4f0a,c +34b4f0b,c0 +34b4f0e,c +34b4f0f,c0 +34b4f12,c +34b4f13,c0 +34b4f16,c +34b4f17,ff +34b4f18,ff +34b4f19,f7 +34b4f2e,af +34b4f2f,a0 +34b4f30,c +34b4f31,f8 +34b4f32,ae +34b4f33,d0 +34b4f34,2e +34b4f35,e8 +34b4f36,ad +34b4f37,d5 +34b4f38,9b +34b4f39,e8 +34b4f3a,ad +34b4f3b,aa +34b4f3c,c8 +34b4f3d,e8 +34b4f3e,ad +34b4f3f,5d +34b4f40,e1 +34b4f41,e8 +34b4f42,ad +34b4f43,d +34b4f44,b0 +34b4f45,e8 +34b4f46,ad +34b4f49,e8 +34b4f4a,ad +34b4f4d,e8 +34b4f4e,ad +34b4f51,e8 +34b4f66,5f +34b4f67,c0 +34b4f68,8 +34b4f69,e0 +34b4f6a,5f +34b4f6b,e6 +34b4f6c,8 +34b4f6d,e0 +34b4f6e,5f +34b4f6f,cb +34b4f70,8 +34b4f71,e0 +34b4f72,5f +34b4f73,7e +34b4f74,48 +34b4f75,e0 +34b4f76,5f +34b4f77,5c +34b4f78,a8 +34b4f79,e0 +34b4f7a,5f +34b4f7b,57 +34b4f7c,e8 +34b4f7d,e0 +34b4f7e,5f +34b4f7f,50 +34b4f80,dc +34b4f81,e0 +34b4f82,5f +34b4f83,50 +34b4f84,9e +34b4f85,e0 +34b4f86,5f +34b4f87,50 +34b4f88,2e +34b4f89,e0 +34b4f9e,4 +34b4f9f,ce +34b4fa0,eb +34b4fa1,20 +34b4fa2,c +34b4fa3,d5 +34b4fa4,6e +34b4fa5,a0 +34b4fa6,3e +34b4fa7,80 +34b4fa8,a +34b4fa9,e0 +34b4faa,7f +34b4fab,50 +34b4fac,8 +34b4fad,f2 +34b4fae,7f +34b4faf,40 +34b4fb0,8 +34b4fb1,f4 +34b4fb2,7f +34b4fb3,50 +34b4fb4,8 +34b4fb5,f2 +34b4fb6,3e +34b4fb7,80 +34b4fb8,a +34b4fb9,e0 +34b4fba,c +34b4fbb,d5 +34b4fbc,6e +34b4fbd,b0 +34b4fbe,4 +34b4fbf,ce +34b4fc0,eb +34b4fc1,20 +34b4fd6,d +34b4fd7,ff +34b4fd8,ed +34b4fd9,60 +34b4fda,d +34b4fdb,b0 +34b4fdc,5c +34b4fdd,e2 +34b4fde,d +34b4fdf,b0 +34b4fe0,6 +34b4fe1,f6 +34b4fe2,d +34b4fe3,b0 +34b4fe4,6 +34b4fe5,f6 +34b4fe6,d +34b4fe7,b0 +34b4fe8,5c +34b4fe9,e2 +34b4fea,d +34b4feb,ff +34b4fec,ed +34b4fed,60 +34b4fee,d +34b4fef,b0 +34b4ff2,d +34b4ff3,b0 +34b4ff6,d +34b4ff7,b0 +34b500e,4 +34b500f,ce +34b5010,eb +34b5011,20 +34b5012,c +34b5013,d5 +34b5014,6e +34b5015,a0 +34b5016,3e +34b5017,80 +34b5018,a +34b5019,e0 +34b501a,7f +34b501b,50 +34b501c,8 +34b501d,f2 +34b501e,7f +34b501f,40 +34b5020,8 +34b5021,f4 +34b5022,7f +34b5023,50 +34b5024,8 +34b5025,f1 +34b5026,3e +34b5027,80 +34b5028,a +34b5029,d0 +34b502a,c +34b502b,d5 +34b502c,6e +34b502d,a0 +34b502e,4 +34b502f,ce +34b5030,fc +34b5031,20 +34b5034,ae +34b5035,50 +34b5038,c +34b5039,80 +34b5046,5f +34b5047,fe +34b5048,eb +34b5049,20 +34b504a,5f +34b504b,71 +34b504c,7e +34b504d,b0 +34b504e,5f +34b504f,70 +34b5050,c +34b5051,d0 +34b5052,5f +34b5053,71 +34b5054,6e +34b5055,a0 +34b5056,5f +34b5057,ff +34b5058,ea +34b505a,5f +34b505b,72 +34b505c,ae +34b505d,40 +34b505e,5f +34b505f,70 +34b5060,d +34b5061,b0 +34b5062,5f +34b5063,70 +34b5064,8 +34b5065,e5 +34b5066,5f +34b5067,70 +34b5069,db +34b507e,6 +34b507f,ce +34b5080,eb +34b5081,30 +34b5082,d +34b5083,c4 +34b5084,5a +34b5085,90 +34b5086,4f +34b5087,60 +34b508a,e +34b508b,c6 +34b508e,5 +34b508f,ce +34b5090,eb +34b5091,40 +34b5094,6c +34b5095,c0 +34b5098,8 +34b5099,e0 +34b509a,c +34b509b,73 +34b509c,5c +34b509d,d0 +34b509e,8 +34b509f,de +34b50a0,ec +34b50a1,50 +34b50b6,cf +34b50b7,ff +34b50b8,ff +34b50b9,fb +34b50bb,d +34b50bc,b0 +34b50bf,d +34b50c0,b0 +34b50c3,d +34b50c4,b0 +34b50c7,d +34b50c8,b0 +34b50cb,d +34b50cc,b0 +34b50cf,d +34b50d0,b0 +34b50d3,d +34b50d4,b0 +34b50d7,d +34b50d8,b0 +34b50ee,4f +34b50ef,70 +34b50f0,9 +34b50f1,e0 +34b50f2,4f +34b50f3,70 +34b50f4,9 +34b50f5,e0 +34b50f6,4f +34b50f7,70 +34b50f8,9 +34b50f9,e0 +34b50fa,4f +34b50fb,70 +34b50fc,9 +34b50fd,e0 +34b50fe,4f +34b50ff,70 +34b5100,9 +34b5101,e0 +34b5102,3f +34b5103,70 +34b5104,9 +34b5105,e0 +34b5106,2e +34b5107,70 +34b5108,a +34b5109,d0 +34b510a,d +34b510b,c4 +34b510c,5d +34b510d,c0 +34b510e,5 +34b510f,ce +34b5110,ec +34b5111,40 +34b5126,ad +34b5128,3 +34b5129,e8 +34b512a,6f +34b512b,50 +34b512c,8 +34b512d,e3 +34b512e,e +34b512f,90 +34b5130,b +34b5131,c0 +34b5132,b +34b5133,c0 +34b5134,d +34b5135,90 +34b5136,8 +34b5137,e1 +34b5138,5e +34b5139,40 +34b513a,2 +34b513b,e7 +34b513c,ad +34b513f,cb +34b5140,ca +34b5143,9d +34b5144,e6 +34b5147,3e +34b5148,d0 +34b515e,e8 +34b5161,ad +34b5162,da +34b5165,cb +34b5166,cb +34b5169,da +34b516a,ac +34b516b,e +34b516c,c0 +34b516d,e8 +34b516e,8d +34b516f,6d +34b5170,e1 +34b5171,e5 +34b5172,6e +34b5173,9b +34b5174,d8 +34b5175,e0 +34b5176,1e +34b5177,c8 +34b5178,ac +34b5179,d0 +34b517a,d +34b517b,e3 +34b517c,7e +34b517d,c0 +34b517e,c +34b517f,d0 +34b5180,e +34b5181,a0 +34b5196,6e +34b5197,70 +34b5198,7 +34b5199,e7 +34b519a,a +34b519b,d2 +34b519c,1d +34b519d,b0 +34b519e,2 +34b519f,da +34b51a0,ad +34b51a1,20 +34b51a3,7e +34b51a4,e7 +34b51a7,3e +34b51a8,e2 +34b51ab,bd +34b51ac,da +34b51ae,7 +34b51af,e6 +34b51b0,7e +34b51b1,60 +34b51b2,3e +34b51b3,a0 +34b51b4,b +34b51b5,d0 +34b51b6,bd +34b51b7,20 +34b51b8,4 +34b51b9,e9 +34b51ce,ae +34b51cf,20 +34b51d0,5 +34b51d1,e8 +34b51d2,2d +34b51d3,a0 +34b51d4,c +34b51d5,c0 +34b51d6,7 +34b51d7,e5 +34b51d8,7e +34b51d9,50 +34b51db,cc +34b51dc,da +34b51df,4e +34b51e0,d2 +34b51e3,d +34b51e4,b0 +34b51e7,d +34b51e8,b0 +34b51eb,d +34b51ec,b0 +34b51ef,d +34b51f0,b0 +34b5206,e +34b5207,ff +34b5208,ff +34b5209,f8 +34b520c,b +34b520d,d3 +34b5210,7e +34b5211,70 +34b5213,3 +34b5214,ea +34b5217,b +34b5218,d1 +34b521b,8e +34b521c,50 +34b521e,4 +34b521f,e9 +34b5222,c +34b5223,c0 +34b5226,1f +34b5227,ff +34b5228,ff +34b5229,fa +34b5237,4f +34b5238,fc +34b523b,4f +34b523c,50 +34b523f,4f +34b5240,50 +34b5243,4f +34b5244,50 +34b5247,4f +34b5248,50 +34b524b,4f +34b524c,50 +34b524f,4f +34b5250,50 +34b5253,4f +34b5254,50 +34b5257,4f +34b5258,50 +34b525b,4f +34b525c,50 +34b525f,4f +34b5260,50 +34b5263,4f +34b5264,fc +34b5276,6e +34b5277,50 +34b527a,c +34b527b,b0 +34b527e,7 +34b527f,e3 +34b5283,da +34b5287,9e +34b5288,20 +34b528b,1e +34b528c,90 +34b528f,a +34b5290,d0 +34b5293,3 +34b5294,e8 +34b5298,bc +34b529c,4e +34b529d,60 +34b52a0,b +34b52a1,c0 +34b52a7,df +34b52a8,e0 +34b52ab,8 +34b52ac,e0 +34b52af,8 +34b52b0,e0 +34b52b3,8 +34b52b4,e0 +34b52b7,8 +34b52b8,e0 +34b52bb,8 +34b52bc,e0 +34b52bf,8 +34b52c0,e0 +34b52c3,8 +34b52c4,e0 +34b52c7,8 +34b52c8,e0 +34b52cb,8 +34b52cc,e0 +34b52cf,8 +34b52d0,e0 +34b52d3,df +34b52d4,e0 +34b52e7,5e +34b52e8,d2 +34b52eb,dc +34b52ec,db +34b52ee,a +34b52ef,d2 +34b52f0,5e +34b52f1,80 +34b52f2,7e +34b52f3,50 +34b52f4,7 +34b52f5,e5 +34b534a,ff +34b534b,ff +34b534c,ff +34b534d,fd +34b5352,2 +34b5353,ca +34b5357,2c +34b5358,90 +34b5396,5 +34b5397,ce +34b5398,eb +34b5399,10 +34b539a,b +34b539b,93 +34b539c,6d +34b539d,a0 +34b53a0,b +34b53a1,c0 +34b53a2,8 +34b53a3,de +34b53a4,ff +34b53a5,c0 +34b53a6,3e +34b53a7,93 +34b53a8,b +34b53a9,d0 +34b53aa,4f +34b53ab,82 +34b53ac,7e +34b53ad,d0 +34b53ae,a +34b53af,ee +34b53b0,db +34b53b1,d0 +34b53be,d +34b53bf,90 +34b53c2,d +34b53c3,90 +34b53c6,d +34b53c7,90 +34b53ca,d +34b53cb,90 +34b53ce,d +34b53cf,bd +34b53d0,ec +34b53d1,40 +34b53d2,d +34b53d3,e6 +34b53d4,5d +34b53d5,c0 +34b53d6,d +34b53d7,b0 +34b53d8,8 +34b53d9,e0 +34b53da,d +34b53db,a0 +34b53dc,7 +34b53dd,f2 +34b53de,d +34b53df,b0 +34b53e0,8 +34b53e1,e0 +34b53e2,d +34b53e3,e6 +34b53e4,4d +34b53e5,b0 +34b53e6,d +34b53e7,bd +34b53e8,ec +34b53e9,40 +34b5407,8d +34b5408,ed +34b5409,70 +34b540a,7 +34b540b,e9 +34b540c,36 +34b540d,a0 +34b540e,c +34b540f,c0 +34b5412,d +34b5413,b0 +34b5416,c +34b5417,c0 +34b541a,7 +34b541b,e9 +34b541c,36 +34b541d,a0 +34b541f,8d +34b5420,ed +34b5421,70 +34b5430,b +34b5431,c0 +34b5434,b +34b5435,c0 +34b5438,b +34b5439,c0 +34b543c,b +34b543d,c0 +34b543e,5 +34b543f,de +34b5440,dc +34b5441,c0 +34b5442,d +34b5443,c4 +34b5444,8e +34b5445,c0 +34b5446,5f +34b5447,60 +34b5448,c +34b5449,c0 +34b544a,7f +34b544b,30 +34b544c,b +34b544d,c0 +34b544e,5f +34b544f,60 +34b5450,c +34b5451,c0 +34b5452,d +34b5453,c4 +34b5454,8e +34b5455,c0 +34b5456,5 +34b5457,de +34b5458,dc +34b5459,c0 +34b5476,3 +34b5477,be +34b5478,ec +34b5479,30 +34b547a,c +34b547b,d5 +34b547c,4c +34b547d,c0 +34b547e,4f +34b547f,60 +34b5480,7 +34b5481,e0 +34b5482,6f +34b5483,ff +34b5484,ff +34b5485,f3 +34b5486,4f +34b5487,50 +34b548a,c +34b548b,c5 +34b548c,38 +34b548d,c0 +34b548e,3 +34b548f,be +34b5490,ec +34b5491,60 +34b549f,5 +34b54a0,de +34b54a1,d0 +34b54a3,c +34b54a4,b2 +34b54a7,d +34b54a8,90 +34b54ab,e +34b54ac,80 +34b54ae,d +34b54af,ff +34b54b0,ff +34b54b1,d0 +34b54b3,e +34b54b4,80 +34b54b7,e +34b54b8,80 +34b54bb,e +34b54bc,80 +34b54bf,e +34b54c0,80 +34b54c3,e +34b54c4,80 +34b54c7,e +34b54c8,80 +34b54e6,5 +34b54e7,de +34b54e8,dc +34b54e9,c0 +34b54ea,d +34b54eb,c4 +34b54ec,8e +34b54ed,c0 +34b54ee,5f +34b54ef,60 +34b54f0,c +34b54f1,c0 +34b54f2,7f +34b54f3,30 +34b54f4,b +34b54f5,c0 +34b54f6,5f +34b54f7,60 +34b54f8,c +34b54f9,c0 +34b54fa,d +34b54fb,c4 +34b54fc,8e +34b54fd,c0 +34b54fe,5 +34b54ff,de +34b5500,dc +34b5501,b0 +34b5504,c +34b5505,a0 +34b5506,9 +34b5507,94 +34b5508,7e +34b5509,60 +34b550a,4 +34b550b,ce +34b550c,e9 +34b550e,d +34b550f,a0 +34b5512,d +34b5513,a0 +34b5516,d +34b5517,a0 +34b551a,d +34b551b,a0 +34b551e,d +34b551f,bd +34b5520,ed +34b5521,40 +34b5522,d +34b5523,e6 +34b5524,5d +34b5525,a0 +34b5526,d +34b5527,b0 +34b5528,b +34b5529,c0 +34b552a,d +34b552b,a0 +34b552c,b +34b552d,c0 +34b552e,d +34b552f,a0 +34b5530,b +34b5531,c0 +34b5532,d +34b5533,a0 +34b5534,b +34b5535,c0 +34b5536,d +34b5537,a0 +34b5538,b +34b5539,c0 +34b5547,b +34b5548,c0 +34b5556,9 +34b5557,ff +34b5558,c0 +34b555b,b +34b555c,c0 +34b555f,b +34b5560,c0 +34b5563,b +34b5564,c0 +34b5567,b +34b5568,c0 +34b556b,b +34b556c,c0 +34b556e,e +34b556f,ff +34b5570,ff +34b5571,e0 +34b557f,7 +34b5580,e0 +34b558e,7 +34b558f,ff +34b5590,e0 +34b5593,7 +34b5594,e0 +34b5597,7 +34b5598,e0 +34b559b,7 +34b559c,e0 +34b559f,7 +34b55a0,e0 +34b55a3,7 +34b55a4,e0 +34b55a7,7 +34b55a8,e0 +34b55ab,7 +34b55ac,e0 +34b55af,1b +34b55b0,d0 +34b55b2,d +34b55b3,fe +34b55b4,70 +34b55b6,b +34b55b7,c0 +34b55ba,b +34b55bb,c0 +34b55be,b +34b55bf,c0 +34b55c2,b +34b55c3,c0 +34b55c6,b +34b55c7,c0 +34b55c8,3d +34b55c9,c2 +34b55ca,b +34b55cb,c3 +34b55cc,db +34b55ce,b +34b55cf,dd +34b55d0,c0 +34b55d2,b +34b55d3,fc +34b55d4,e5 +34b55d6,b +34b55d7,d0 +34b55d8,cd +34b55d9,10 +34b55da,b +34b55db,c0 +34b55dc,3d +34b55dd,b0 +34b55de,b +34b55df,c0 +34b55e0,7 +34b55e1,e8 +34b55ee,e +34b55ef,ff +34b55f0,40 +34b55f3,5f +34b55f4,40 +34b55f7,5f +34b55f8,40 +34b55fb,5f +34b55fc,40 +34b55ff,5f +34b5600,40 +34b5603,5f +34b5604,40 +34b5607,5f +34b5608,40 +34b560b,5f +34b560c,40 +34b560f,4f +34b5610,50 +34b5613,e +34b5614,a0 +34b5617,8 +34b5618,ef +34b5619,b0 +34b5636,8d +34b5637,dd +34b5638,ae +34b5639,c0 +34b563a,8e +34b563b,4d +34b563c,c5 +34b563d,e4 +34b563e,8d +34b563f,c +34b5640,b0 +34b5641,e6 +34b5642,8d +34b5643,b +34b5644,a0 +34b5645,e7 +34b5646,8d +34b5647,b +34b5648,a0 +34b5649,e7 +34b564a,8d +34b564b,b +34b564c,a0 +34b564d,e7 +34b564e,8d +34b564f,b +34b5650,a0 +34b5651,e7 +34b566e,d +34b566f,bd +34b5670,ed +34b5671,40 +34b5672,d +34b5673,e6 +34b5674,5d +34b5675,a0 +34b5676,d +34b5677,b0 +34b5678,b +34b5679,c0 +34b567a,d +34b567b,a0 +34b567c,b +34b567d,c0 +34b567e,d +34b567f,a0 +34b5680,b +34b5681,c0 +34b5682,d +34b5683,a0 +34b5684,b +34b5685,c0 +34b5686,d +34b5687,a0 +34b5688,b +34b5689,c0 +34b56a6,4 +34b56a7,ce +34b56a8,eb +34b56a9,20 +34b56aa,c +34b56ab,d5 +34b56ac,6d +34b56ad,a0 +34b56ae,1e +34b56af,70 +34b56b0,a +34b56b1,d0 +34b56b2,5f +34b56b3,60 +34b56b4,8 +34b56b5,e0 +34b56b6,1e +34b56b7,70 +34b56b8,a +34b56b9,d0 +34b56ba,c +34b56bb,d4 +34b56bc,6d +34b56bd,b0 +34b56be,4 +34b56bf,ce +34b56c0,eb +34b56c1,20 +34b56de,d +34b56df,bd +34b56e0,ec +34b56e1,30 +34b56e2,d +34b56e3,e6 +34b56e4,5d +34b56e5,b0 +34b56e6,d +34b56e7,b0 +34b56e8,9 +34b56e9,e0 +34b56ea,d +34b56eb,a0 +34b56ec,7 +34b56ed,e0 +34b56ee,d +34b56ef,b0 +34b56f0,8 +34b56f1,e0 +34b56f2,d +34b56f3,e6 +34b56f4,5d +34b56f5,b0 +34b56f6,d +34b56f7,be +34b56f8,ec +34b56f9,40 +34b56fa,d +34b56fb,90 +34b56fe,d +34b56ff,90 +34b5702,d +34b5703,90 +34b5716,4 +34b5717,ce +34b5718,dc +34b5719,c0 +34b571a,c +34b571b,c4 +34b571c,7e +34b571d,c0 +34b571e,1e +34b571f,70 +34b5720,c +34b5721,c0 +34b5722,5f +34b5723,60 +34b5724,b +34b5725,c0 +34b5726,2e +34b5727,70 +34b5728,c +34b5729,c0 +34b572a,c +34b572b,c4 +34b572c,7e +34b572d,c0 +34b572e,5 +34b572f,ce +34b5730,db +34b5731,c0 +34b5734,a +34b5735,c0 +34b5738,a +34b5739,c0 +34b573c,a +34b573d,c0 +34b574f,cc +34b5750,de +34b5751,f9 +34b5753,ce +34b5754,83 +34b5757,cb +34b575b,ca +34b575f,ca +34b5763,ca +34b5767,ca +34b5786,4 +34b5787,ce +34b5788,ea +34b5789,10 +34b578a,b +34b578b,d4 +34b578c,5b +34b578d,60 +34b578e,b +34b578f,d4 +34b5792,3 +34b5793,bd +34b5794,db +34b5795,20 +34b5798,4d +34b5799,a0 +34b579a,b +34b579b,94 +34b579c,5e +34b579d,a0 +34b579e,5 +34b579f,ce +34b57a0,eb +34b57a1,20 +34b57b7,8e +34b57bb,8e +34b57be,6f +34b57bf,ff +34b57c0,ff +34b57c1,b0 +34b57c3,8e +34b57c7,8e +34b57cb,8e +34b57cf,8e +34b57d3,6e +34b57d4,70 +34b57d7,b +34b57d8,ef +34b57d9,b0 +34b57f6,d +34b57f7,a0 +34b57f8,b +34b57f9,c0 +34b57fa,d +34b57fb,a0 +34b57fc,b +34b57fd,c0 +34b57fe,d +34b57ff,a0 +34b5800,b +34b5801,c0 +34b5802,d +34b5803,a0 +34b5804,b +34b5805,c0 +34b5806,d +34b5807,a0 +34b5808,b +34b5809,c0 +34b580a,b +34b580b,d4 +34b580c,7e +34b580d,c0 +34b580e,5 +34b580f,de +34b5810,db +34b5811,c0 +34b582e,6e +34b582f,30 +34b5830,7 +34b5831,e3 +34b5832,d +34b5833,90 +34b5834,b +34b5835,c0 +34b5836,a +34b5837,d0 +34b5838,1e +34b5839,80 +34b583a,5 +34b583b,e4 +34b583c,8e +34b583d,20 +34b583f,da +34b5840,cb +34b5843,9d +34b5844,e7 +34b5847,3e +34b5848,e0 +34b5866,e8 +34b5869,ac +34b586a,ca +34b586d,ca +34b586e,ac +34b586f,d +34b5870,b0 +34b5871,e7 +34b5872,6e +34b5873,3d +34b5874,d5 +34b5875,e2 +34b5876,e +34b5877,ab +34b5878,ca +34b5879,d0 +34b587a,c +34b587b,e7 +34b587c,9e +34b587d,b0 +34b587e,a +34b587f,e1 +34b5880,5f +34b5881,80 +34b589e,3d +34b589f,a0 +34b58a0,b +34b58a1,c0 +34b58a2,6 +34b58a3,e6 +34b58a4,9e +34b58a5,40 +34b58a7,9e +34b58a8,e7 +34b58ab,2e +34b58ac,d0 +34b58af,cc +34b58b0,da +34b58b2,9 +34b58b3,e4 +34b58b4,6e +34b58b5,70 +34b58b6,6e +34b58b7,70 +34b58b8,9 +34b58b9,e4 +34b58d6,6e +34b58d7,50 +34b58d8,5 +34b58d9,e5 +34b58da,d +34b58db,a0 +34b58dc,b +34b58dd,d0 +34b58de,9 +34b58df,e0 +34b58e0,e +34b58e1,90 +34b58e2,3 +34b58e3,e7 +34b58e4,8e +34b58e5,30 +34b58e7,cc +34b58e8,cc +34b58eb,7e +34b58ec,e7 +34b58ef,d +34b58f0,e0 +34b58f3,d +34b58f4,a0 +34b58f7,8e +34b58f8,50 +34b58fa,d +34b58fb,ea +34b590e,b +34b590f,ff +34b5910,ff +34b5911,c0 +34b5914,5e +34b5915,70 +34b5917,3 +34b5918,d9 +34b591b,c +34b591c,b0 +34b591f,bd +34b5920,20 +34b5922,9 +34b5923,e4 +34b5926,d +34b5927,ff +34b5928,ff +34b5929,c0 +34b5937,6 +34b5938,de +34b5939,a0 +34b593b,b +34b593c,d3 +34b593f,c +34b5940,b0 +34b5943,c +34b5944,b0 +34b5947,5e +34b5948,a0 +34b594a,b +34b594b,fd +34b594c,20 +34b594f,7e +34b5950,90 +34b5953,d +34b5954,b0 +34b5957,c +34b5958,b0 +34b595b,c +34b595c,b0 +34b595f,b +34b5960,d4 +34b5963,5 +34b5964,de +34b5965,a0 +34b596f,c +34b5970,a0 +34b5973,c +34b5974,a0 +34b5977,c +34b5978,a0 +34b597b,c +34b597c,a0 +34b597f,c +34b5980,a0 +34b5983,c +34b5984,a0 +34b5987,c +34b5988,a0 +34b598b,c +34b598c,a0 +34b598f,c +34b5990,a0 +34b5993,c +34b5994,a0 +34b5997,c +34b5998,a0 +34b599b,c +34b599c,a0 +34b599f,c +34b59a0,a0 +34b59a6,b +34b59a7,ed +34b59a8,30 +34b59ab,4e +34b59ac,90 +34b59af,d +34b59b0,a0 +34b59b3,c +34b59b4,a0 +34b59b7,b +34b59b8,c4 +34b59bb,5 +34b59bc,ef +34b59bd,a0 +34b59bf,b +34b59c0,d5 +34b59c3,c +34b59c4,b0 +34b59c7,d +34b59c8,a0 +34b59cb,d +34b59cc,a0 +34b59cf,5e +34b59d0,80 +34b59d2,b +34b59d3,ec +34b59d4,20 +34b59f6,5d +34b59f7,ed +34b59f8,83 +34b59f9,a7 +34b59fa,98 +34b59fb,38 +34b59fc,de +34b59fd,c3 diff --git a/data/symbols.json b/data/symbols.json index 82a46efd5..02b869100 100644 --- a/data/symbols.json +++ b/data/symbols.json @@ -1,32 +1,33 @@ -{ - "ADULT_INIT_ITEMS": "034835FC", - "ADULT_VALID_ITEMS": "03483608", - "EXTENDED_ITEM_DATA": "03482008", - "FAIRY_ITEMS": "03481C03", - "FAIRY_OCARINA_ITEM": "03481C02", - "FONT_TEXTURE": "034B4506", - "INITIAL_SAVE_DATA": "03481800", - "ITEM_OVERRIDES": "03481000", - "ITEM_TABLE": "03482050", - "LIGHT_ARROW_ITEM": "03481C01", - "PENDING_SPECIAL_ITEM": "03482018", - "PENDING_SPECIAL_ITEM_END": "0348201B", - "PLAYER_ID": "03481C00", - "PLAYER_OVERRIDE_DATA": "03482000", - "TIME_TRAVEL_SAVED_EQUIPS": "0348201C", - "cfg_dungeon_info_enable": "034B44C8", - "cfg_dungeon_info_mq_enable": "034B44DC", - "cfg_dungeon_info_mq_need_map": "034B44D8", - "cfg_dungeon_info_reward_need_compass": "034B44D4", - "cfg_dungeon_is_mq": "034B44F8", - "cfg_dungeon_rewards": "034B4408", - "dungeon_count": "034B44CC", - "dungeons": "034B442C", - "font_sprite": "034B43C8", - "heap_next": "034B44D0", - "medal_colors": "034B4418", - "medals_sprite": "034B43E8", - "quest_items_sprite": "034B43D8", - "setup_db": "034B44E8", - "stones_sprite": "034B43F8" +{ + "ADULT_INIT_ITEMS": "034835BC", + "ADULT_VALID_ITEMS": "034835C8", + "EXTENDED_ITEM_DATA": "03482008", + "FAIRY_ITEMS": "03481C03", + "FAIRY_OCARINA_ITEM": "03481C02", + "FONT_TEXTURE": "034B454E", + "INITIAL_SAVE_DATA": "03481800", + "ITEM_OVERRIDES": "03481000", + "ITEM_TABLE": "03482050", + "LIGHT_ARROW_ITEM": "03481C01", + "PENDING_SPECIAL_ITEM": "03482018", + "PENDING_SPECIAL_ITEM_END": "0348201B", + "PLAYER_ID": "03481C00", + "PLAYER_OVERRIDE_DATA": "03482000", + "TIME_TRAVEL_SAVED_EQUIPS": "0348201C", + "cfg_dungeon_info_enable": "034B450C", + "cfg_dungeon_info_mq_enable": "034B4524", + "cfg_dungeon_info_mq_need_map": "034B4520", + "cfg_dungeon_info_reward_need_altar": "034B4518", + "cfg_dungeon_info_reward_need_compass": "034B451C", + "cfg_dungeon_is_mq": "034B4540", + "cfg_dungeon_rewards": "034B444C", + "dungeon_count": "034B4510", + "dungeons": "034B4470", + "font_sprite": "034B440C", + "heap_next": "034B4514", + "medal_colors": "034B445C", + "medals_sprite": "034B442C", + "quest_items_sprite": "034B441C", + "setup_db": "034B4530", + "stones_sprite": "034B443C" } \ No newline at end of file From e67edd9cc5cad8a8f4964c4d0937079b28086f42 Mon Sep 17 00:00:00 2001 From: Nick Langille Date: Mon, 24 Sep 2018 20:30:29 -0400 Subject: [PATCH 595/755] Remove obsolete script --- ASM/scripts/sym2pj64.py | 28 ---------------------------- 1 file changed, 28 deletions(-) delete mode 100644 ASM/scripts/sym2pj64.py diff --git a/ASM/scripts/sym2pj64.py b/ASM/scripts/sym2pj64.py deleted file mode 100644 index aef4eb7b4..000000000 --- a/ASM/scripts/sym2pj64.py +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env python3 - -import sys - -if len(sys.argv) < 3: - raise RuntimeError("Usage: python3 sym2pj64.py IN_FILE OUT_FILE") - -in_path = sys.argv[1] -out_path = sys.argv[2] - -in_file = open(in_path, 'r') -out_file = open(out_path, 'w') - -for line in in_file: - parts = line.strip().split(' ') - if len(parts) < 2: - continue - address, label = parts - if address[0] != '8': - continue - if label[0] == '.': - continue - label_type = 'data' if label.isupper() else 'code' - out_line = ','.join([address, label_type, label]) - print(out_line, file=out_file) - -in_file.close() -out_file.close() From f334be1da6b8a1e7e942e042ba29cc06324db52c Mon Sep 17 00:00:00 2001 From: Nick Langille Date: Mon, 24 Sep 2018 20:42:26 -0400 Subject: [PATCH 596/755] Remove obsolete file --- data/base2current.json | 1 - 1 file changed, 1 deletion(-) delete mode 100644 data/base2current.json diff --git a/data/base2current.json b/data/base2current.json deleted file mode 100644 index 64f2aa142..000000000 --- a/data/base2current.json +++ /dev/null @@ -1 +0,0 @@ -[{"9083985": [0, 0, 0]}, {"9083989": [0, 0, 0, 0, 0, 0]}, {"9083996": [0, 0, 0, 0]}, {"9084004": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084048": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084060": [0, 0, 0, 0, 0]}, {"9084067": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084112": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084124": [0, 0, 0, 0, 0]}, {"9084131": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084176": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084188": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084240": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084252": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084304": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084316": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084326": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084368": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084380": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084390": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084432": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084444": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084454": [0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084496": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084560": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084624": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084643": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084688": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084707": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084752": [0, 0, 0, 0]}, {"9084757": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"9084772": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"11111472": [12, 16, 10, 196]}, {"11135032": [8, 16, 13, 47]}, {"11311804": [12, 16, 11, 205]}, {"11311809": [0, 0, 0]}, {"11325064": [12, 16, 11, 190, 0, 0, 0, 0, 0, 0]}, {"11325076": [0]}, {"11325079": [0, 0, 0]}, {"11325083": [0]}, {"11426272": [8, 16, 12, 101]}, {"11427312": [12, 16, 13, 14]}, {"11427320": [12, 16, 11, 200]}, {"11427332": [0, 0]}, {"11427335": [0]}, {"11431496": [12, 16, 11, 195, 1, 15, 192, 33]}, {"11559936": [130]}, {"11559938": [14, 222]}, {"11559948": [49, 248, 0, 2]}, {"11562028": [12, 16, 13, 68]}, {"11562033": [40]}, {"11562035": [32]}, {"11881272": [12, 16, 13, 30]}, {"11882076": [12, 16, 12, 251]}, {"12250476": [0, 0]}, {"12250479": [0]}, {"12285876": [0, 0]}, {"12285879": [0]}, {"12286096": [12, 16, 12, 68, 0, 0]}, {"12286103": [0]}, {"12286288": [12, 16, 12, 75, 0, 0]}, {"12286295": [0]}, {"12286880": [0, 0]}, {"12286883": [0]}, {"12286972": [0, 0]}, {"12286975": [0]}, {"12287036": [12, 16, 12, 82, 0, 0]}, {"12287043": [0]}, {"12287064": [12, 16, 12, 61, 0, 0]}, {"12287071": [0]}, {"12381372": [8, 16, 10, 140]}, {"12381377": [0, 0, 0, 0, 0]}, {"12381383": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"12381395": [0]}, {"12427425": [16, 10, 18]}, {"12427480": [12, 16, 10, 106]}, {"12427492": [0, 0]}, {"12427495": [0]}, {"12427876": [12, 16, 10, 110]}, {"12427888": [0, 0]}, {"12427891": [0]}, {"12474768": [12, 16, 12, 8, 0, 0, 0, 0]}, {"12491456": [12, 16, 10, 152]}, {"12491480": [12, 16, 10, 161]}, {"12491492": [0, 0]}, {"12491742": [131, 131]}, {"13144796": [52, 14, 0, 1]}, {"13144860": [52, 10, 0, 1]}, {"13145925": [16, 11, 147]}, {"13146216": [146, 14, 29, 40]}, {"13146276": [146, 25, 29, 41]}, {"13146312": [146, 10, 29, 42]}, {"13330528": [12, 16, 12, 89]}, {"13709176": [52, 15]}, {"13709179": [0]}, {"14109028": [16, 0]}, {"14147904": [52, 14, 0, 1, 128]}, {"14147910": [14, 222]}, {"14147936": [132, 136]}, {"14147939": [164, 52, 1]}, {"14147943": [99, 20, 40]}, {"14147947": [3, 52, 2, 32, 73, 16, 0, 0, 6, 0]}, {"14147959": [0, 148, 105, 14, 214, 49, 41, 0, 4, 21, 32]}, {"14147971": [2, 52, 2, 32, 68, 52, 2, 32, 67, 143, 191]}, {"14147983": [20, 39, 189, 0, 24, 3, 224]}, {"14147991": [8, 0, 0, 0, 0]}, {"14148504": [148, 137, 14, 214, 49, 40]}, {"14148511": [16, 49, 41]}, {"14148515": [4, 1, 9, 64, 37, 52, 9]}, {"14148523": [20, 52, 1, 0, 95, 20, 35]}, {"14148531": [6, 0, 0]}, {"14148535": [0, 17, 9]}, {"14148539": [4, 0, 0, 0, 0, 52, 2, 0, 1, 3, 224]}, {"14148551": [8, 0, 0]}, {"14148555": [0, 20, 194]}, {"14148559": [9, 52, 1]}, {"14148563": [99, 20, 35]}, {"14148567": [7, 140, 138]}, {"14148571": [16, 21, 64]}, {"14148575": [5, 0, 0, 0, 0, 21, 9]}, {"14148583": [3, 52, 2]}, {"14148587": [1, 3, 224]}, {"14148591": [8, 0, 0, 0, 0, 52, 2, 0, 0, 3, 224, 0, 8, 0, 0]}, {"14148607": [0]}, {"14149484": [143, 184, 0, 68]}, {"14149496": [135, 24]}, {"14149499": [164, 128, 73, 14, 222]}, {"14149508": [52]}, {"14149510": [0, 1, 2, 0, 32, 33]}, {"14149528": [21]}, {"14149531": [2, 52, 25, 0, 95, 23, 56, 0, 5, 174, 11, 1, 128]}, {"14149776": [0, 0]}, {"14149779": [0]}, {"14149792": [16, 0]}, {"14149795": [7, 49, 74]}, {"14149799": [4]}, {"14149808": [0]}, {"14149811": [0, 0, 0]}, {"14149815": [0]}, {"14149824": [52, 11, 0, 20]}, {"14149832": [1, 75, 80, 37, 21, 75]}, {"14149839": [20]}, {"14149844": [52, 14, 0, 1, 128]}, {"14149850": [14, 222]}, {"14149856": [87]}, {"14149859": [15]}, {"14150588": [12, 16, 11, 208]}, {"14150684": [0, 0]}, {"14150687": [0, 52]}, {"14150691": [5]}, {"14357459": [118]}, {"14373676": [12, 16, 11, 224]}, {"14624335": [118]}, {"14720872": [128]}, {"14720874": [14, 222]}, {"14720884": [49, 248, 0, 4]}, {"14720944": [12, 16, 11, 216]}, {"14848904": [8, 16, 11, 247]}, {"14852164": [12, 16, 12, 0]}, {"14872723": [52]}, {"15327704": [52, 9, 64, 0]}, {"15327728": [52]}, {"15327730": [91, 8]}, {"15327744": [52]}, {"15327746": [0, 10]}, {"15327757": [169]}, {"15493308": [143, 173, 0, 44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0, 0, 0, 0, 0]}, {"15493335": [0]}, {"15493338": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, {"15493549": [173]}, {"15493551": [44, 52, 12, 0, 10, 165, 172, 1, 16, 12, 16, 10, 47, 2, 0, 40, 33, 0, 0]}, {"15493571": [0, 0, 0, 0, 0, 0, 0]}, {"15493579": [0, 0, 0, 0, 0]}, {"15493586": [0, 0]}, {"15506663": [122]}, {"55057409": [90, 59, 93, 92, 94, 81, 82, 83]}, {"55058512": [255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 88, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 116, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 156, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 196, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 37, 236, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 20, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 48, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 76, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 38, 104, 83, 65, 56, 67]}, {"55058661": [235, 21, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 55, 68]}, {"55058677": [235, 22, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 57, 69]}, {"55058693": [235, 23, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 107, 70, 1, 119, 24, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 63, 71]}, {"55058725": [244, 25, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 103, 93, 1, 115, 28, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 104, 122, 1, 116, 29, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 112, 249, 1, 118, 30, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 106, 151, 1, 118, 32, 255, 128, 64, 38, 236, 128, 64, 37, 80, 83, 65, 10, 6]}, {"55058805": [185, 1, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 28]}, {"55058821": [185, 1, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 29]}, {"55058837": [185, 1, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 30]}, {"55058853": [185, 1, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 42]}, {"55058869": [185, 1, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 10, 97]}, {"55058885": [185, 1, 10, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 98]}, {"55058901": [184, 2]}, {"55058904": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 99]}, {"55058917": [184, 2, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 100]}, {"55058933": [184, 2, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 101]}, {"55058949": [184, 2, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 124]}, {"55058965": [184, 2, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 125]}, {"55058981": [184, 2, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 126]}, {"55058997": [184, 2, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 127]}, {"55059013": [184, 2, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 162]}, {"55059029": [184, 2, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 11, 135]}, {"55059045": [184, 2, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 136]}, {"55059061": [200, 4]}, {"55059064": [128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 137]}, {"55059077": [200, 4, 1, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 138]}, {"55059093": [200, 4, 2, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 139]}, {"55059109": [200, 4, 3, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 140]}, {"55059125": [200, 4, 4, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 142]}, {"55059141": [200, 4, 5, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 143]}, {"55059157": [200, 4, 6, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 163]}, {"55059173": [200, 4, 7, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 165]}, {"55059189": [200, 4, 8, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 28, 146]}, {"55059205": [200, 4, 9, 128, 64, 39, 40, 128, 64, 37, 80, 83, 65, 2, 147]}, {"55059221": [170, 3, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 148]}, {"55059237": [170, 4, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 149]}, {"55059253": [170, 5, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 166]}, {"55059269": [170, 6, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 169]}, {"55059285": [170, 7, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 155]}, {"55059301": [170, 8, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 159]}, {"55059317": [170, 11, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 160]}, {"55059333": [170, 12, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 65, 2, 161]}, {"55059349": [170, 13, 255, 128, 64, 39, 68, 128, 64, 37, 80, 83, 61, 67, 12]}, {"55059365": [248, 255, 255, 128, 64, 38, 220, 128, 64, 37, 80, 77, 131, 247, 85]}, {"55059381": [183, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 146, 219, 230]}, {"55059397": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 147, 218, 230]}, {"55059413": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 148, 217, 230]}, {"55059429": [216, 255, 255, 128, 64, 38, 212, 128, 64, 38, 156, 77, 142, 224, 50]}, {"55059445": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 143, 224, 50]}, {"55059461": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 144, 224, 50]}, {"55059477": [206, 255, 255, 128, 64, 38, 212, 128, 64, 38, 184, 77, 140, 238, 52]}, {"55059493": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 77, 141, 238, 52]}, {"55059509": [187, 255, 255, 128, 64, 38, 212, 128, 64, 37, 80, 79, 65, 19, 233]}, {"55059525": [189, 255, 255, 128, 64, 39, 108, 128, 64, 37, 80, 79, 65, 30, 228]}, {"55059541": [205, 255, 255, 128, 64, 39, 140, 128, 64, 38, 132, 79, 65, 31, 232]}, {"55059557": [205, 255, 255, 128, 64, 39, 172, 128, 64, 37, 80, 255, 255, 255, 255, 255, 255, 255, 255, 128, 64, 38, 212, 128, 64, 39, 212, 83, 65, 70, 74, 1, 14, 255, 255, 128, 64, 40, 28, 128, 64, 40]}, {"55059600": [83, 65, 3, 176]}, {"55059605": [182, 6, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 177]}, {"55059621": [182, 7, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 178]}, {"55059637": [182, 8, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 179]}, {"55059653": [182, 9, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 182]}, {"55059669": [182, 10, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 183]}, {"55059685": [182, 11, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 4, 184]}, {"55059701": [182, 12, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 6, 185]}, {"55059717": [182, 13, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 3, 186]}, {"55059733": [182, 14, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 8, 187]}, {"55059749": [182, 15, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 5, 188]}, {"55059765": [182, 16, 255, 128, 64, 40, 44, 128, 64, 37, 80, 83, 65, 7, 189]}, {"55059781": [182, 17, 255, 128, 64, 40, 44, 128, 64, 37, 80, 3, 224]}, {"55059795": [8, 52, 162]}, {"55059800": [144, 136]}, {"55059803": [125, 52, 1]}, {"55059807": [255, 17, 1]}, {"55059811": [2, 52, 2]}, {"55059815": [8, 52, 2]}, {"55059819": [9, 3, 224]}, {"55059823": [8]}, {"55059828": [144, 136]}, {"55059831": [163, 49, 8]}, {"55059835": [192, 17]}, {"55059839": [5, 52, 2]}, {"55059843": [84, 52, 1]}, {"55059847": [64, 17, 1]}, {"55059851": [2, 52, 2]}, {"55059855": [53, 52, 2]}, {"55059859": [54, 3, 224]}, {"55059863": [8]}, {"55059868": [144, 136]}, {"55059871": [163, 49, 8]}, {"55059875": [24, 17]}, {"55059879": [5, 52, 2]}, {"55059883": [50, 52, 1]}, {"55059887": [8, 17, 1]}, {"55059891": [2, 52, 2]}, {"55059895": [51, 52, 2]}, {"55059899": [52, 3, 224]}, {"55059903": [8]}, {"55059908": [144, 136]}, {"55059911": [163, 49, 8]}, {"55059915": [3, 17]}, {"55059919": [5, 52, 2]}, {"55059923": [4, 52, 1]}, {"55059927": [1, 17, 1]}, {"55059931": [2, 52, 2]}, {"55059935": [48, 52, 2]}, {"55059939": [49, 3, 224]}, {"55059943": [8]}, {"55059948": [144, 136]}, {"55059951": [162, 49, 8]}, {"55059955": [192, 17]}, {"55059959": [5, 52, 2]}, {"55059963": [5, 52, 1]}, {"55059967": [64, 17, 1]}, {"55059971": [2, 52, 2]}, {"55059975": [96, 52, 2]}, {"55059979": [123, 3, 224]}, {"55059983": [8]}, {"55059988": [144, 136]}, {"55059991": [162, 49, 8]}, {"55059995": [48, 17]}, {"55059999": [2, 52, 2]}, {"55060003": [69, 52, 2]}, {"55060007": [70, 3, 224]}, {"55060011": [8]}, {"55060016": [144, 136]}, {"55060019": [162, 49, 8]}, {"55060023": [6, 17]}, {"55060027": [2, 52, 2]}, {"55060031": [55, 52, 2]}, {"55060035": [56, 3, 224]}, {"55060039": [8]}, {"55060044": [144, 136]}, {"55060047": [161, 49, 8]}, {"55060051": [32, 17]}, {"55060055": [2, 52, 2]}, {"55060059": [121, 52, 2]}, {"55060063": [122, 3, 224]}, {"55060067": [8]}, {"55060072": [144, 136]}, {"55060075": [161, 49, 8]}, {"55060079": [4, 17]}, {"55060083": [2, 52, 2]}, {"55060087": [119, 52, 2]}, {"55060091": [120, 3, 224]}, {"55060095": [8]}, {"55060100": [144, 136]}, {"55060103": [50, 17]}, {"55060107": [2, 52, 2]}, {"55060111": [192, 52, 2]}, {"55060115": [193, 3, 224]}, {"55060119": [8]}, {"55060124": [144, 136]}, {"55060127": [163, 49, 8]}, {"55060131": [3, 17]}, {"55060135": [2, 52, 2]}, {"55060139": [77, 52, 162]}, {"55060144": [3, 224]}, {"55060147": [8]}, {"55060152": [144, 136]}, {"55060155": [163, 49, 8]}, {"55060159": [24, 17]}, {"55060163": [2, 52, 2]}, {"55060167": [77, 52, 162]}, {"55060172": [3, 224]}, {"55060175": [8]}, {"55060180": [3, 224]}, {"55060183": [8]}, {"55060188": [52, 8]}, {"55060191": [1, 160, 136]}, {"55060195": [62, 3, 224]}, {"55060199": [8]}, {"55060204": [36, 136]}, {"55060207": [134, 36, 9, 255, 255, 37, 41]}, {"55060215": [1, 52, 1]}, {"55060219": [3]}, {"55060221": [41, 8, 42, 20, 32]}, {"55060227": [7]}, {"55060232": [1, 9, 80, 33, 145, 75]}, {"55060240": [52, 1]}, {"55060243": [255, 21, 97, 255, 247]}, {"55060252": [161, 69]}, {"55060256": [3, 224]}, {"55060259": [8]}, {"55060264": [36, 136]}, {"55060267": [168, 1, 6, 64, 33, 145, 9]}, {"55060276": [1, 37, 72, 37, 161, 9]}, {"55060284": [3, 224]}, {"55060287": [8]}, {"55060292": [36, 136]}, {"55060295": [188, 1, 5, 64, 33, 129, 9]}, {"55060304": [5, 33]}, {"55060307": [2]}, {"55060312": [52, 9]}, {"55060316": [37, 41]}, {"55060319": [1, 161, 9]}, {"55060324": [3, 224]}, {"55060327": [8]}, {"55060332": [52, 8]}, {"55060335": [1, 160, 136]}, {"55060339": [61, 52, 8]}, {"55060343": [20, 160, 136]}, {"55060347": [207, 52, 8, 1, 64, 164, 136, 20, 36, 3, 224]}, {"55060359": [8]}, {"55060364": [52, 8]}, {"55060367": [1, 160, 136]}, {"55060371": [50, 160, 136]}, {"55060375": [58, 52, 8]}, {"55060379": [48, 164, 136, 19, 244, 160, 136]}, {"55060387": [51, 3, 224]}, {"55060391": [8]}, {"55060396": [52, 8]}, {"55060399": [2, 160, 136]}, {"55060403": [50, 52, 8]}, {"55060407": [1, 160, 136]}, {"55060411": [58, 160, 136]}, {"55060415": [60, 52, 8]}, {"55060419": [96, 164, 136, 19, 244, 160, 136]}, {"55060427": [51, 3, 224]}, {"55060431": [8]}, {"55060436": [144, 136]}, {"55060439": [124, 52, 1]}, {"55060443": [255, 17, 1]}, {"55060447": [6, 52, 2]}, {"55060451": [107, 144, 136]}, {"55060455": [148, 45, 8]}, {"55060459": [6, 17]}, {"55060463": [2, 52, 2]}, {"55060467": [106, 52, 2]}, {"55060471": [3, 3, 224]}, {"55060475": [8]}, {"55060480": [144, 136]}, {"55060483": [123, 52, 1]}, {"55060487": [255, 17, 1]}, {"55060491": [2, 52, 162]}, {"55060496": [52, 2]}, {"55060499": [12, 3, 224]}, {"55060503": [8]}, {"55060508": [52, 8]}, {"55060511": [7, 160, 136]}, {"55060515": [123, 3, 224]}, {"55060519": [8]}, {"55060524": [52, 8]}, {"55060527": [1]}, {"55060529": [168, 64, 4, 140, 137]}, {"55060535": [164, 1, 40, 72, 37, 172, 137]}, {"55060543": [164, 3, 224]}, {"55060547": [8]}, {"55060552": [48, 132]}, {"55060555": [255, 60, 8, 128, 18, 37, 8, 165, 208, 52, 1]}, {"55060567": [140, 16, 129]}, {"55060571": [22, 145, 2]}, {"55060575": [117, 52, 1]}, {"55060579": [141, 16, 129]}, {"55060583": [19, 145, 2]}, {"55060587": [117, 16, 128]}, {"55060591": [17, 145, 2]}, {"55060595": [116, 52, 1]}, {"55060599": [138, 16, 129]}, {"55060603": [14, 145, 2]}, {"55060607": [116, 52, 1]}, {"55060611": [139, 16, 129]}, {"55060615": [11, 145, 2]}, {"55060619": [116, 52, 1]}, {"55060623": [88, 16, 129]}, {"55060627": [8, 52, 2]}, {"55060632": [52, 1]}, {"55060635": [120, 16, 129]}, {"55060639": [5, 52, 2]}, {"55060644": [52, 1]}, {"55060647": [121, 16, 129]}, {"55060651": [2, 52, 2]}, {"55060656": [52, 2]}, {"55060659": [255, 3, 224]}, {"55060663": [8]}, {"55060668": [39, 189, 255, 224, 175, 191]}, {"55060675": [16, 175, 176]}, {"55060679": [20, 12, 16, 11, 11]}, {"55060688": [4, 65]}, {"55060691": [2]}, {"55060696": [52, 2]}, {"55060699": [91]}, {"55060701": [64, 32, 33, 12, 16, 11, 114]}, {"55060712": [16, 96]}, {"55060715": [22, 175, 163]}, {"55060719": [28, 60, 8, 128, 64, 37, 8, 32]}, {"55060728": [133, 9]}, {"55060731": [2, 17, 32]}, {"55060735": [3, 52, 10]}, {"55060739": [1, 16]}, {"55060743": [12, 165, 10]}, {"55060748": [60, 4, 128, 18, 36, 132, 165, 208, 144, 101]}, {"55060759": [6, 144, 102]}, {"55060763": [7, 140, 105]}, {"55060767": [8, 1, 32, 248, 9]}, {"55060776": [143, 163]}, {"55060779": [28, 144, 101]}, {"55060783": [1, 12, 1, 191, 115, 2, 32, 32, 33, 143, 163]}, {"55060795": [28, 144, 101]}, {"55060799": [3, 16]}, {"55060803": [17, 60, 9, 128, 59, 37, 41, 158, 126, 52, 10]}, {"55060815": [6]}, {"55060817": [74]}, {"55060819": [24]}, {"55060822": [80, 18, 1, 42, 128, 33, 130, 5]}, {"55060832": [60, 8, 128, 64, 37, 8, 32]}, {"55060840": [133, 9]}, {"55060843": [2, 17, 32]}, {"55060847": [3, 52, 10]}, {"55060851": [1, 165, 10]}, {"55060856": [52, 5]}, {"55060859": [65, 12, 1, 191, 115, 2, 32, 32, 33, 146, 5]}, {"55060871": [3, 2, 32, 32, 33, 12, 3, 115, 133]}, {"55060882": [48, 33, 143, 191]}, {"55060887": [16, 143, 176]}, {"55060891": [20, 39, 189]}, {"55060895": [32, 3, 224]}, {"55060899": [8]}, {"55060904": [143, 166]}, {"55060907": [48, 132, 197]}, {"55060911": [4, 8, 16, 10, 114]}, {"55060920": [143, 185]}, {"55060923": [44, 135, 37]}, {"55060927": [4, 8, 16, 10, 114]}, {"55060936": [60, 10, 128, 64, 37, 74, 32, 8, 141, 75]}, {"55060947": [12, 17, 96]}, {"55060951": [2]}, {"55060956": [149, 69]}, {"55060959": [4, 60, 10, 128, 30, 37, 74, 137, 132, 165, 64]}, {"55060972": [60, 9, 128, 64, 37, 41, 32, 24, 129, 42]}, {"55060983": [3, 5, 64]}, {"55060987": [11, 1, 42, 72, 32, 129, 40]}, {"55060996": [52, 10]}, {"55060999": [127, 21, 10]}, {"55061003": [6]}, {"55061008": [60, 10, 128, 18, 37, 74, 165, 208, 133, 72]}, {"55061019": [144, 33, 8]}, {"55061023": [1, 165, 72]}, {"55061027": [144, 161, 32]}, {"55061032": [3, 224]}, {"55061035": [8]}, {"55061040": [60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061051": [12, 17, 32]}, {"55061055": [2]}, {"55061060": [129, 3]}, {"55061063": [2]}, {"55061065": [3, 15, 195]}, {"55061069": [97, 64, 38, 1, 1, 64, 35, 160, 136, 8, 82, 3, 224]}, {"55061083": [8]}, {"55061088": [144, 69]}, {"55061091": [3, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061103": [12, 17, 32]}, {"55061107": [2]}, {"55061112": [145, 5]}, {"55061115": [3, 3, 224]}, {"55061119": [8]}, {"55061124": [143, 162]}, {"55061127": [36, 144, 69]}, {"55061132": [60, 8, 128, 64, 37, 8, 32]}, {"55061140": [133, 9]}, {"55061143": [2, 17, 32]}, {"55061147": [4, 52, 10]}, {"55061151": [1, 165, 10]}, {"55061156": [16]}, {"55061159": [24, 52, 5]}, {"55061163": [65, 60, 8, 128, 64, 37, 8, 32, 8, 141, 9]}, {"55061175": [12, 17, 32]}, {"55061179": [19]}, {"55061184": [145, 5]}, {"55061187": [1, 175, 164]}, {"55061192": [175, 165]}, {"55061195": [4, 175, 166]}, {"55061199": [8, 39, 189, 255, 232, 175, 191]}, {"55061207": [16, 60, 4, 128, 18, 36, 132, 165, 208, 145, 5]}, {"55061219": [6, 145, 6]}, {"55061223": [7, 141, 9]}, {"55061227": [8, 1, 32, 248, 9]}, {"55061236": [143, 191]}, {"55061239": [16, 39, 189]}, {"55061243": [24, 143, 164]}, {"55061248": [143, 165]}, {"55061251": [4, 143, 166]}, {"55061255": [8, 3, 224]}, {"55061259": [8]}, {"55061264": [160, 230, 4, 36, 39, 189, 255, 224, 175, 162]}, {"55061275": [16, 175, 163]}, {"55061279": [20, 175, 191]}, {"55061283": [24, 12, 16, 10, 209]}, {"55061292": [143, 162]}, {"55061295": [16, 143, 163]}, {"55061299": [20, 143, 191]}, {"55061303": [24, 39, 189]}, {"55061307": [32, 3, 224]}, {"55061311": [8]}, {"55061316": [39, 189, 255, 232, 175, 191]}, {"55061323": [16, 60, 8, 128, 64, 37, 8, 32, 8, 173]}, {"55061336": [173]}, {"55061339": [4, 173]}, {"55061343": [8, 173]}, {"55061347": [12, 60, 8, 128, 30, 37, 8, 170, 48, 129, 9, 4, 36, 17, 32]}, {"55061363": [42]}, {"55061369": [9, 15, 195, 1, 33, 32, 38]}, {"55061377": [129, 32, 35, 141, 5, 4, 40, 12, 16, 11, 11]}, {"55061392": [4, 64]}, {"55061395": [34]}, {"55061400": [52, 68]}, {"55061404": [12, 16, 11, 114]}, {"55061412": [16, 96]}, {"55061415": [12]}, {"55061420": [60, 8, 128, 64, 37, 8, 32, 8, 140, 105]}, {"55061432": [173, 9]}, {"55061436": [140, 105]}, {"55061439": [4, 173, 9]}, {"55061443": [4, 140, 105]}, {"55061447": [8, 173, 9]}, {"55061451": [8, 52, 9]}, {"55061455": [1, 173, 9]}, {"55061459": [12, 144, 98]}, {"55061464": [60, 8, 128, 30, 37, 8, 170, 48, 141, 9, 4, 40, 149, 42]}, {"55061480": [52, 1]}, {"55061483": [10, 21, 65]}, {"55061487": [6]}, {"55061492": [149, 42]}, {"55061495": [28, 49, 74, 240, 31]}, {"55061501": [2, 89, 64, 1, 75, 80, 37, 165, 42]}, {"55061511": [28, 129, 9, 4, 36, 5, 33]}, {"55061519": [2]}, {"55061525": [2, 16, 35, 161, 2, 4, 36, 143, 191]}, {"55061535": [16, 39, 189]}, {"55061539": [24, 3, 224]}, {"55061543": [8]}, {"55061548": [39, 189, 255, 232, 175, 191]}, {"55061555": [16, 12, 16, 11, 25]}, {"55061564": [36, 1, 255, 255, 16, 65]}, {"55061571": [4]}, {"55061576": [52, 68]}, {"55061580": [12, 16, 11, 77]}, {"55061588": [143, 191]}, {"55061591": [16, 39, 189]}, {"55061595": [24, 3, 224]}, {"55061599": [8]}, {"55061604": [60, 2, 128, 29, 36, 66, 132, 160, 148, 66]}, {"55061615": [164, 52, 8]}, {"55061620": [52, 137]}, {"55061624": [148, 170]}, {"55061628": [52, 1, 1, 156, 21, 65]}, {"55061635": [8]}, {"55061640": [52, 8]}, {"55061643": [3, 148, 171]}, {"55061647": [28, 49, 105]}, {"55061651": [255, 49, 98, 31]}, {"55061657": [2, 18, 2, 16]}, {"55061663": [31]}, {"55061668": [52, 1]}, {"55061671": [10, 21, 65]}, {"55061675": [14]}, {"55061680": [148, 171]}, {"55061683": [28, 52, 1]}, {"55061687": [16, 20, 65]}, {"55061691": [8]}, {"55061696": [49, 108, 15, 224, 52, 1, 14, 160, 21, 129]}, {"55061707": [4]}, {"55061712": [36, 2, 255, 255, 16]}, {"55061719": [21]}, {"55061724": [52, 8]}, {"55061727": [1, 49, 105]}, {"55061731": [31, 52, 1]}, {"55061735": [21, 21, 65]}, {"55061739": [12]}, {"55061744": [52, 1]}, {"55061747": [62, 16, 129]}, {"55061751": [7]}, {"55061756": [52, 1]}, {"55061759": [66, 16, 129]}, {"55061763": [4]}, {"55061768": [36, 2, 255, 255, 16]}, {"55061775": [7]}, {"55061780": [52, 8]}, {"55061783": [2, 144, 169, 1, 65]}, {"55061789": [2, 18]}, {"55061793": [72, 16, 37]}, {"55061797": [2, 18]}, {"55061801": [73, 16, 37, 3, 224]}, {"55061807": [8]}, {"55061812": [36, 2, 255, 255, 60, 8, 128, 64, 37, 8, 28]}, {"55061824": [129, 9]}, {"55061828": [60, 8, 128, 18, 37, 8, 165, 208, 165, 9, 20, 6, 60, 8, 128, 64, 37, 8, 15, 252, 37, 8]}, {"55061851": [4, 141, 9]}, {"55061856": [17, 32]}, {"55061859": [23]}, {"55061865": [9, 82, 2, 49, 75, 248]}, {"55061873": [11, 90, 194, 60, 12, 255, 255, 53, 140, 3, 255, 1, 76, 80, 36, 21, 68, 255, 245]}, {"55061896": [49, 34]}, {"55061899": [255, 60, 8, 128, 18, 37, 8, 165, 208, 165, 11, 20, 6, 60, 9, 128, 64, 37, 41, 32]}, {"55061920": [60, 12, 128, 64, 37, 140, 28]}, {"55061928": [129, 140]}, {"55061932": [17, 108]}, {"55061935": [4, 165, 32]}, {"55061939": [2, 161, 43]}, {"55061943": [2, 161, 34]}, {"55061947": [3, 173, 36]}, {"55061951": [4, 3, 224]}, {"55061955": [8]}, {"55061960": [39, 189, 255, 224, 175, 176]}, {"55061967": [16, 175, 177]}, {"55061971": [20, 175, 191]}, {"55061975": [24, 52, 130]}, {"55061980": [52, 80]}, {"55061984": [38, 8, 255, 128, 5]}, {"55061991": [18]}, {"55061996": [60, 17, 128, 64, 38, 49, 32, 80, 52, 9]}, {"55062007": [16, 1, 9]}, {"55062011": [24]}, {"55062014": [64, 18, 2, 40, 136, 33, 60, 4, 128, 18, 36, 132, 165, 208, 54, 5]}, {"55062032": [142, 40]}, {"55062035": [12, 1]}, {"55062038": [248, 9]}, {"55062044": [20, 80, 255, 239]}, {"55062052": [54, 35]}, {"55062056": [16]}, {"55062059": [2]}, {"55062064": [52, 3]}, {"55062068": [143, 176]}, {"55062071": [16, 143, 177]}, {"55062075": [20, 143, 191]}, {"55062079": [24, 39, 189]}, {"55062083": [32, 3, 224]}, {"55062087": [8]}, {"55062092": [140, 136, 29, 44, 52, 9]}, {"55062099": [1]}, {"55062101": [9, 78]}, {"55062104": [1, 9, 16, 36, 16, 64]}, {"55062111": [36]}, {"55062116": [148, 202, 2, 220, 60, 11, 128, 18, 37, 107, 165, 208, 148, 140]}, {"55062131": [164, 52, 1]}, {"55062135": [61, 17, 129]}, {"55062139": [10]}, {"55062145": [138, 96, 33, 145, 141, 29, 40, 21, 160]}, {"55062155": [25]}, {"55062160": [52, 13]}, {"55062163": [1, 161, 141, 29, 40, 37, 74]}, {"55062171": [3, 16]}, {"55062175": [9]}, {"55062180": [52, 12]}, {"55062183": [1, 1, 76, 96, 4, 145, 109, 14, 242, 1, 172, 112, 36, 21, 192]}, {"55062199": [14]}, {"55062204": [1, 172, 112, 37, 161, 110, 14, 242, 1, 41, 72, 39, 1, 9, 64, 36, 172, 136, 29, 44, 60, 8, 128, 64, 37, 8, 28, 3, 1, 10, 64, 33, 129, 8]}, {"55062240": [60, 9, 128, 64, 37, 41, 32, 24, 161, 40]}, {"55062252": [52, 2]}, {"55062256": [3, 224]}, {"55062259": [8]}, {"55062264": [60, 8, 128, 64, 37, 8, 28, 1, 129, 8]}, {"55062276": [16]}, {"55062279": [34]}, {"55062284": [60, 8, 128, 64, 37, 8, 28, 2, 129, 8]}, {"55062296": [16]}, {"55062299": [29]}, {"55062304": [52, 2]}, {"55062307": [255, 32, 232, 255, 166, 33, 8]}, {"55062315": [97, 16]}, {"55062319": [24]}, {"55062324": [52, 8]}, {"55062327": [100, 16]}, {"55062331": [21]}, {"55062336": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062351": [1, 160, 40, 14, 222, 52, 8]}, {"55062359": [104, 16]}, {"55062363": [13]}, {"55062368": [60, 1, 128, 18, 36, 33, 165, 208, 128, 40, 14, 222, 53, 8]}, {"55062383": [4, 160, 40, 14, 222, 52, 8]}, {"55062391": [106, 16]}, {"55062395": [5]}, {"55062400": [52, 5]}, {"55062403": [3, 52, 8]}, {"55062407": [107, 16]}, {"55062411": [1]}, {"55062416": [60, 9, 128, 64, 37, 41, 32, 24, 60, 10, 128, 64, 37, 74, 32, 27, 129, 44]}, {"55062436": [17, 136]}, {"55062439": [11, 33, 41]}, {"55062443": [1, 21, 42, 255, 252]}, {"55062452": [60, 9, 128, 64, 37, 41, 32, 23, 33, 41]}, {"55062463": [1, 17, 42]}, {"55062467": [4, 129, 44]}, {"55062472": [21, 128, 255, 252]}, {"55062480": [161, 40]}, {"55062484": [3, 224]}, {"55062487": [8]}, {"55062493": [96, 120, 33, 129, 236, 14, 223, 49, 142]}, {"55062503": [128, 17, 192]}, {"55062507": [3, 52, 3]}, {"55062511": [5, 3, 224]}, {"55062515": [8, 52, 2]}, {"55062519": [2, 3, 224]}, {"55062523": [8]}, {"55062525": [96, 16, 33, 133, 194]}, {"55062531": [164, 60, 8, 128, 18, 37, 8, 165, 208, 129, 9, 14, 223, 53, 41]}, {"55062547": [128, 161, 9, 14, 223, 3, 224]}, {"55062555": [8]}, {"55062560": [175, 164]}, {"55062563": [104, 175, 165]}, {"55062567": [108, 175, 166]}, {"55062571": [112, 175, 167]}, {"55062575": [116, 39, 189, 255, 232, 175, 163]}, {"55062583": [16, 175, 191]}, {"55062587": [20, 60, 10, 128, 30, 37, 74, 170, 48, 129, 72, 6, 108, 49, 8]}, {"55062603": [32, 21]}, {"55062607": [31]}, {"55062612": [60, 9, 128, 64, 37, 41, 32, 27, 52, 10]}, {"55062623": [255, 161, 42]}, {"55062628": [60, 9, 128, 64, 37, 41, 32, 24, 36, 10, 255, 255, 52, 12]}, {"55062643": [3, 33, 74]}, {"55062647": [1, 17, 76]}, {"55062651": [20, 1, 42, 88, 32, 129, 104]}, {"55062660": [17]}, {"55062662": [255, 251]}, {"55062668": [60, 9, 128, 64, 37, 41, 32, 27, 161, 42]}, {"55062680": [60, 9, 128, 30, 37, 41, 137, 132, 52, 10]}, {"55062691": [1, 165, 42]}, {"55062696": [60, 9, 128, 65, 52, 10]}, {"55062703": [1, 173, 42, 1, 48, 60, 10, 128, 30, 37, 74, 170, 48, 161, 72, 4, 36, 173, 73, 4, 40, 12, 16, 10, 209]}, {"55062732": [143, 163]}, {"55062735": [16, 143, 191]}, {"55062739": [20, 39, 189]}, {"55062743": [24, 143, 164]}, {"55062747": [104, 143, 165]}, {"55062751": [108, 143, 166]}, {"55062755": [112, 143, 167]}, {"55062759": [116, 132, 110, 19, 196, 3, 224]}, {"55062767": [8]}, {"55062772": [147, 25]}, {"55062775": [116, 52, 1]}, {"55062779": [255, 23, 33]}, {"55062783": [2]}, {"55062788": [52, 25]}, {"55062791": [44, 3, 224]}, {"55062795": [8, 167, 185]}, {"55062799": [154, 147, 44]}, {"55062803": [116, 52, 1]}, {"55062807": [255, 21, 129]}, {"55062811": [2]}, {"55062816": [52, 12]}, {"55062819": [44, 3, 224]}, {"55062823": [8]}, {"55062828": [145, 174]}, {"55062831": [116, 52, 1]}, {"55062835": [255, 21, 193]}, {"55062839": [2]}, {"55062844": [52, 14]}, {"55062847": [44, 3, 224]}, {"55062851": [8, 167, 174]}, {"55062855": [154, 145, 207]}, {"55062859": [116, 52, 1]}, {"55062863": [255, 21, 225]}, {"55062867": [2]}, {"55062872": [52, 15]}, {"55062875": [44, 3, 224]}, {"55062879": [8, 167, 175]}, {"55062883": [154, 60, 8, 128, 64, 37, 8, 32, 28, 142, 9]}, {"55062895": [104, 173, 9]}, {"55062900": [142, 9]}, {"55062903": [108, 173, 9]}, {"55062907": [4, 150, 9]}, {"55062911": [112, 165, 9]}, {"55062915": [8, 150, 9]}, {"55062919": [156, 165, 9]}, {"55062923": [10, 3, 224]}, {"55062927": [8, 142, 14]}, {"55062931": [4, 39, 189, 255, 224, 175, 176]}, {"55062939": [16, 175, 177]}, {"55062943": [20, 175, 191]}, {"55062947": [24, 60, 16, 128, 18, 38, 16, 165, 208, 60, 17, 128, 64, 38, 49, 32, 28, 142, 8]}, {"55062967": [4, 17]}, {"55062971": [5]}, {"55062976": [12, 16, 12, 143]}, {"55062984": [16]}, {"55062987": [3]}, {"55062992": [12, 16, 12, 162]}, {"55063000": [12, 16, 12, 130, 52, 4]}, {"55063008": [12, 16, 12, 130, 52, 4]}, {"55063015": [1, 12, 16, 12, 130, 52, 4]}, {"55063023": [2, 143, 176]}, {"55063027": [16, 143, 177]}, {"55063031": [20, 143, 191]}, {"55063035": [24, 39, 189]}, {"55063039": [32, 3, 224]}, {"55063043": [8]}, {"55063048": [2, 4, 64, 33, 145, 9]}, {"55063055": [108, 52, 1]}, {"55063059": [255, 17, 33]}, {"55063063": [7]}, {"55063068": [2, 9, 72, 33, 145, 41]}, {"55063075": [116, 52, 1]}, {"55063079": [44, 17, 33]}, {"55063083": [2]}, {"55063088": [161, 9]}, {"55063091": [105, 3, 224]}, {"55063095": [8]}, {"55063100": [39, 189, 255, 232, 175, 191]}, {"55063107": [16, 142, 40]}, {"55063112": [174, 8]}, {"55063115": [64, 142, 40]}, {"55063119": [4, 174, 8]}, {"55063123": [68, 150, 40]}, {"55063127": [8, 166, 8]}, {"55063131": [72, 162]}, {"55063134": [15, 51, 146, 8]}, {"55063139": [74, 52, 1]}, {"55063143": [255, 21, 1]}, {"55063147": [3]}, {"55063152": [12, 16, 12, 176]}, {"55063160": [143, 191]}, {"55063163": [16, 39, 189]}, {"55063167": [24, 3, 224]}, {"55063171": [8]}, {"55063176": [142, 8]}, {"55063179": [64, 174, 8]}, {"55063183": [104, 142, 8]}, {"55063187": [68, 174, 8]}, {"55063191": [108, 150, 8]}, {"55063195": [72, 166, 8]}, {"55063199": [112, 146, 8]}, {"55063203": [104, 52, 1]}, {"55063207": [255, 21, 1]}, {"55063211": [3]}, {"55063216": [52, 8]}, {"55063219": [1, 162, 8, 15, 51, 3, 224]}, {"55063227": [8]}, {"55063232": [39, 189, 255, 232, 175, 191]}, {"55063239": [16, 150, 8]}, {"55063243": [156, 49, 8]}, {"55063247": [64, 17]}, {"55063251": [5]}, {"55063256": [150, 8]}, {"55063259": [112, 49, 8, 255, 15, 53, 8]}, {"55063267": [48, 166, 8]}, {"55063271": [112, 146, 40]}, {"55063275": [1, 162, 8]}, {"55063279": [105, 150, 40]}, {"55063283": [2, 166, 8]}, {"55063287": [106, 142, 40]}, {"55063291": [4, 174, 8]}, {"55063295": [108, 12, 16, 12, 202, 52, 4]}, {"55063304": [12, 16, 12, 202, 52, 4]}, {"55063311": [1, 12, 16, 12, 202, 52, 4]}, {"55063319": [2, 143, 191]}, {"55063323": [16, 39, 189]}, {"55063327": [24, 3, 224]}, {"55063331": [8]}, {"55063336": [2, 4, 64, 33, 60, 9, 128, 64, 37, 41, 51, 212, 145, 10]}, {"55063351": [108, 52, 1]}, {"55063355": [255, 17, 65]}, {"55063359": [5]}, {"55063364": [1, 42, 72, 33, 145, 41]}, {"55063372": [21, 32]}, {"55063375": [28]}, {"55063380": [60, 9, 128, 64, 37, 41, 51, 199, 37, 41]}, {"55063391": [1, 145, 42]}, {"55063396": [17, 64]}, {"55063399": [19]}, {"55063404": [2, 10, 88, 33, 145, 107]}, {"55063411": [116, 52, 1]}, {"55063415": [255, 17, 97, 255, 248]}, {"55063424": [146, 12]}, {"55063427": [108, 17, 138, 255, 245]}, {"55063436": [146, 12]}, {"55063439": [109, 17, 138, 255, 242]}, {"55063448": [146, 12]}, {"55063451": [110, 17, 138, 255, 239]}, {"55063460": [161, 11]}, {"55063463": [105, 161, 10]}, {"55063467": [108, 16]}, {"55063471": [4]}, {"55063476": [52, 9]}, {"55063479": [255, 161, 9]}, {"55063483": [105, 161, 9]}, {"55063487": [108, 3, 224]}, {"55063491": [8]}, {"55063496": [7, 9, 15, 2, 3, 1, 13, 11]}, {"55063509": [1, 1, 1, 1, 1]}, {"55063515": [1, 1, 1, 1, 1]}, {"55063521": [1]}, {"55063523": [1, 1, 1, 1, 1, 1, 1, 1]}, {"55063533": [51, 8, 33, 32, 15]}, {"55063539": [71, 21, 234]}, {"55063543": [14, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063555": [164]}, {"55063557": [15, 122, 3, 20, 64]}, {"55063563": [5, 52, 2, 72, 48, 21, 226]}, {"55063571": [7]}, {"55063576": [36, 25]}, {"55063579": [3, 16]}, {"55063583": [4, 52, 2, 99, 17, 21, 226]}, {"55063591": [2]}, {"55063596": [36, 25]}, {"55063599": [3, 3, 224]}, {"55063603": [8]}, {"55063608": [141, 173, 138, 160, 52, 2, 128]}, {"55063616": [16, 77]}, {"55063619": [2]}, {"55063624": [16]}, {"55063627": [9, 60, 15, 128, 30, 37, 239, 132, 160, 129, 226, 28, 191, 48, 66]}, {"55063643": [1, 16, 64]}, {"55063647": [2]}, {"55063652": [16]}, {"55063655": [2, 52, 2]}, {"55063659": [1, 161, 226, 28, 191, 3, 224]}, {"55063667": [8]}, {"55063673": [51, 8, 33, 60, 2, 128, 18, 140, 66, 165, 212, 142, 111]}, {"55063687": [164]}, {"55063689": [15, 122, 3, 20, 64]}, {"55063695": [5, 52, 2, 72, 48, 21, 226]}, {"55063703": [7]}, {"55063708": [36, 25]}, {"55063711": [3, 16]}, {"55063715": [4, 52, 2, 99, 17, 21, 226]}, {"55063723": [2]}, {"55063728": [36, 25]}, {"55063731": [3, 3, 224]}, {"55063735": [8]}, {"55063740": [52, 1]}, {"55063743": [24, 20, 129]}, {"55063747": [17]}, {"55063752": [20, 64]}, {"55063755": [15]}, {"55063760": [60, 10, 128, 18, 37, 74, 165, 208, 129, 72]}, {"55063771": [166, 49, 8]}, {"55063775": [32, 17]}, {"55063779": [9, 52, 2]}, {"55063784": [52, 2]}, {"55063787": [1, 129, 72]}, {"55063791": [123, 52, 9]}, {"55063795": [7, 17, 9]}, {"55063799": [4, 52, 10]}, {"55063803": [8, 17, 10]}, {"55063807": [2]}, {"55063812": [52, 2]}, {"55063816": [3, 224]}, {"55063819": [8]}, {"55063824": [162, 37]}, {"55063827": [33, 60, 16, 128, 64, 38, 16, 23, 252, 38, 16]}, {"55063839": [4, 142, 10]}, {"55063844": [17, 64]}, {"55063847": [11]}, {"55063853": [10, 124, 2, 1, 241, 120, 32, 49, 88, 255]}, {"55063865": [24, 194, 2, 23]}, {"55063871": [3, 49, 89]}, {"55063875": [255, 129, 234]}, {"55063880": [3, 42, 200, 37, 8, 16, 13, 71, 161, 249]}, {"55063892": [3, 224]}, {"55063895": [8]}] \ No newline at end of file From a965bab6b0315715e199da20a9d9e8c21a7be60c Mon Sep 17 00:00:00 2001 From: Nick Langille Date: Mon, 24 Sep 2018 21:03:12 -0400 Subject: [PATCH 597/755] Remove calls to python3 --- ASM/scripts/build.py | 4 +--- ASM/scripts/rom_diff.py | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/ASM/scripts/build.py b/ASM/scripts/build.py index a49b46799..02ccb2a7d 100644 --- a/ASM/scripts/build.py +++ b/ASM/scripts/build.py @@ -1,5 +1,3 @@ -#!/usr/bin/env python3 - import argparse import json import os @@ -98,5 +96,5 @@ # Diff ROMs -call(['python3', 'scripts/rom_diff.py', +call(['python', 'scripts/rom_diff.py', 'roms/base.z64', 'roms/patched.z64', '../data/rom_patch.txt']) diff --git a/ASM/scripts/rom_diff.py b/ASM/scripts/rom_diff.py index 2b37d51e0..d3ede3ce8 100644 --- a/ASM/scripts/rom_diff.py +++ b/ASM/scripts/rom_diff.py @@ -1,10 +1,8 @@ -#!/usr/bin/env python3 - import json import sys if len(sys.argv) < 4: - raise RuntimeError("Usage: python3 rom_diff.py BASE_FILE COMPARISON_FILE OUTPUT_FILE") + raise RuntimeError("Usage: python rom_diff.py BASE_FILE COMPARISON_FILE OUTPUT_FILE") base_path = sys.argv[1] compare_path = sys.argv[2] From 29f23e152d4924ad8b00ee1c1bc9759da9278e5b Mon Sep 17 00:00:00 2001 From: Nick Langille Date: Tue, 25 Sep 2018 00:52:07 -0400 Subject: [PATCH 598/755] Speed up update_crc --- Rom.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Rom.py b/Rom.py index 7a068dffb..f3571119b 100644 --- a/Rom.py +++ b/Rom.py @@ -165,9 +165,11 @@ def update_crc(self): t1 = t2 = t3 = t4 = t5 = t6 = 0xDF26F436 u32 = 0xFFFFFFFF - cur = 0x1000 - while cur < 0x00101000: - d = self.read_int32(cur) + words = [t[0] for t in struct.iter_unpack('>I', self.buffer[0x1000:0x101000])] + words2 = [t[0] for t in struct.iter_unpack('>I', self.buffer[0x750:0x850])] + + for cur in range(len(words)): + d = words[cur] if ((t6 + d) & u32) < t6: t4 += 1 @@ -183,12 +185,10 @@ def update_crc(self): else: t2 ^= t6 ^ d - data2 = self.read_int32(0x750 + (cur & 0xFF)) + data2 = words2[cur & 0x3F] t1 += data2 ^ d t1 &= u32 - cur += 4 - crc0 = t6 ^ t4 ^ t3 crc1 = t5 ^ t2 ^ t1 From b97828335cc147b574f5359b9d0a4c34403386ab Mon Sep 17 00:00:00 2001 From: Chris Date: Tue, 25 Sep 2018 16:45:47 -0400 Subject: [PATCH 599/755] Updated Mac/Linux Decompressors (added output arg) --- Decompress/Decompress | Bin 17648 -> 10352 bytes Decompress/Decompress.out | Bin 13944 -> 13944 bytes Decompress/Decompress32.exe | Bin Rom.py | 4 ++-- 4 files changed, 2 insertions(+), 2 deletions(-) mode change 100644 => 100755 Decompress/Decompress32.exe diff --git a/Decompress/Decompress b/Decompress/Decompress index 84f51cd5e7049293f4bbd3bedb519cd016c8617b..8c0741a91dba2eb14fe693be73497997af161dd9 100755 GIT binary patch literal 10352 zcmeHNe{d94o_{@=kRgQWK|v#kw0B__T!yQ5@_xMw}<#$0760Sl5l5wXjk) zmHF5lHk(ZWl8eX3TZo!9LC;#I1$9|+IiOBFr4AD)b@+Hi(CbZ@2`VBaO8&-+&#Ibq z<7|@^lre<^q(`xOZs06vEw2c=#fl?MLcA#aO)x=@NhtL}f-IDq5h{tMNZTXulFQZof z1hrUpb5rB`Ww+kkRKK{Xu{pMJ@y60+iC6nL}O@h}K39^zW)ghbB>3t{ z@H>FdV1;a_Qi~d6VqGxIn>v~%%UEb*qt3#SmQXWm2}PrkC=2VMrY5!_w4pVGmex?{ z5f*NV>2(CvwQOSHx~52Lh;0ZqHAU)Jt6mQ^7Je++sE1fM8Vc4!Jlfc-hgnSx`Kf8u zgHgR^L$I-#+C!|ex~gJ%&5~m8tz*?C#Y-Xm(1u8}B~2scnD9q)^{bc!o~EQ&N6$X< z6HL<__PB+`W;aeHI|g_vqw{JxrMYZhr)O_7G|)wc+-C)@Q@Xw|CAuYbo)iot*zQ z@iav;ZJd9JcuIMuh4cSJJf%8Q%lV%YPg5teit|4ro>HFiasDadDb<-0&Ob>!r8uK- zelziu+KdOhde5t@lirAcQYcn91iR7D;%dJ}4qW=#JZw1azX;i28+*`Ex_ ze!1$z!d|1tdq$H6)YJv1->5HgrMoU=v)&%a`ilzU7jKuJJ_d!~(N3)Hr38;W8196E zR(G&kdOzI@>FUIqB9E4sb@*C^8R4*wcR8z*k6_xAzsT9T0xhxh=TtS|F5#R_4if&^ zPI*u@22gQPr4N+?zj0n3TzGP8kCB!;XuOaVzi~{HzR-;R^b^P*4>_ZuNuGyIy*h!+ z@BO!He5@+*xFe)R$MLA9n&p4SG8%=>Ybao|DC_)v=PkYM`eDzO{jrhm!%1 z3u|E3u2~BEoX6J}E|%wYkS3M~;_dFlLet9WtzX?uFfFU8uM&_Q4tK&2q{fx@a{2a8 zI7wZ~(Tq_omA+k*`n3a>^ciCo@+=Dz^*@tuINw(ON5sQoSFhEK6Y0%JU4QNyK%@uy zF7rq7BTtR{56h9o?;`D>ONT+bhY{%R;i6hX=D%;Y%>9Vd(+9(yK;OdiT3EjHi5Bni zgyo}ehUMsx6qX;|ANI?U9<-iC<#ZpK&V^O^*dUNpSRNSwMg8bLi1tF~fJE|WiJY_K zdGlFIXXN*$-v7it*(N6w>>uT}DMG~Y|G_?`Mn3%|l7@hfA%P<)d7*DqE9;fFMls#{ zI=7yA{Cmk2SuI(eCv{`wv1;0A))~D^^0fGXB=71;opjwYb1RLjF{G89iyi-B2xDVS zT5k_#lx;q0$$Na=?b}ziIkir~bo7zuEmB zZtU&nw=H_*IlZ#|eEzz@Uv?h>M5~p_fnIV+>*F0RHtf!wrYr5||M7*EVD}-rm=%Bb zVSs(%PW2uwdAAu+b#fa;B(`SL-X!r=l@0OuQanDnV;>GE`R~f{E+^M=M?I>0xZ^*p z+<&&4&ad`!6pg&K0E}uJP>qAC@wRFV8E`hey_?u>Q{|J0eROMHGWA_jel3;N3!bM z{Q>WQ>U|?1{VCw>SH17}%TfVjG$1b@Xun9=jXepY!{mNt^5vpcI1^XMyI%N)RoSvE zM@=0s3{1TMbjvacZ+#j3{-;MxedGchnEJWj`@vY`TUTJVv|pt0&>Pw>(pc$F1iVKA z-a&6qzEQm^Z!&2jpKJf^+#-DYQZcjb9C54^4~RG-R23 zVGi?SE#I-QN)Gb#I)17U%X@Jyk^{PQx=H8HGU?p8pym$z^*)Au_%F3jPPUJg(?KI| zjbJGEcH)3dm!F|Cyboul-0>+^)~mG0(s>+xjiX-x)r|LcQ^Q_bwwiG|{pg>eW-iFB zFLLY?Ex83(rafO~vp9ce)4d=_Lh*ftP%x)-=4K!XT&8eK!W9MADrX|#F%HPD8wEx3 zAhwWARmSm^$)+NwD)0IpE^F^s#rH|+QmCygI}tmX2+V{S4Cp`e9^5+7 z51DFcy1t@$>2pgn^9U9n$-N1Ldhh~hCIHZzO|OG4>|xJA=Z>YX1Dk2JRI{|s(q<4yKr-a3S?^GTi0m6gPg}WOja#8_Hokr8)&dT`sncLvlzAAbHE~y zRnrx7NYXDN%2#P{(mPO#_d7@STk)!E_I5#qZq{F>??fXXRN6#w*)?9IS3t?^-!HlPvGlWJ$WKulzh6}+ayP+W(zyrbsb^}!*@n5+pRAOuYHzaAp`|`l zEH;&_%+aPECeGL|4{E7lMVs1-dm#>LAEkLJV)0uBjZuDYZwLJ8GzxK4O}0q5LDB~d z=f9%oM**uz&0!1?^0bCKKw?(E3FZjFr(oN>#BMz(cYKUU)wKcd!RlnhKs*Us2#u>kHTFuV<13phlTG=0CC+V}a?f8UTAI$># z%x!(jrteYgCA$7wEI?ldeMeayi8a+Xe^Xb&jm`Cn9$eoP%4gB_?6LKfL6TXd%x_g1 zTb1UBuILRRr7jYUhU#>swQ+OEW|S5pdC9@!obXVa{ZZoGAKM>kPR@7fyH;!n_!1|Z zO%nnA1q_aU3JPAqjQ@3fhM4yPEK`*=!F{Y|0lvS7Dc$2|GS~ zF!O_Ug03UGpiM-v&7B3M&xt+?9%ZIUn6!B{lQw#!IR$yHPALzE0ps75`w-K&ESW3I znth=!PyLWZ7`znWU4qARI-4CO#O+z(F8sbc?J-vyyM6X|Z@Q)EuLveT>+lRhm+t@; z)�!b6O5ch2+}sbOC!Blu8SpXYnjTUT#3YScTj3_m0)>!l!d8+)C0};a;#KS9O){S(o9t|ST zjvUpkY;(eVJlF5`X8##==6J&G3AtU1P`w}ct>?4Z zj|fL-I~+*YHnJIaI-baP7p~yp2Bx8za2>^#{q2TYUZblq6_-iyi?LY>t#&$x zsEGDIU&=;^f6n0}!thlkFD*_Vr&COp^*DUIme1deybcTgw3+3Al5O8L%Wtk zbRS*JyvQf65}coD zwOi_cF(Q7)p6GCyHNGn>dbdTx7JbyB+bsGMi@s>lT^8-P=wXX~WYIGgo#OJ1xvpHk z{5#45{35(iDJ}LEdzB?6-qMn9dzUB+R)^{pEvTFL;-w22D{gIQ)uXr-vSR$=7mBv9 zVq615#cD;>Vm1?Xp-8ZNwYb(?+yK>VtZa6^9yX!qMP{P)$QUbOmQ>)C8l^ z;3iW;)L}Tdp|K8LBd~>6F?V1ZTi@Esit8d9HiVk>u{8a!DzrXm?umI{>hOUZ|33_| z9yy4Yn5Tlj8WmatLVu0J2X6fT92CxtzntS$Ub_)*yT0!5aa^|y7IAL;HBtXoG~p^2 z5&p$K@!SOcT+4)5pTgp8s89}seviWkj$uFHgmqaRrhSI0LSL-s6~Jf@5&B|ZYOw-+ z0d4j&F@HZmBkch~U#$C?R=}eFB7Pw!=zY+qJw@&kvJ}KVO6)awChF7gbi~kD}|1Y#-T$R^otnB4QFn0Z}Ykj=A z%S!y92+UFv<7cs~3l&O{I7h`fFaCdMqP*Y*eFeI*O<&vt3a$UI5^@mXMeu?S0;Rbl z{EPET{D0OEbq+<$FQF&$cmQoABJ{=oWsJ@vt;@$-=nHxnGIo7&k6;REGq&9%V{f4+ zDE(w@*Wa$xa@p+)Cwy(0HSZyJ)v!a-Z2j)P2?7@zgI#3TB)d>R4mKvnVf)>A zGpo0Yl(aqVIX$Nu&eNUy&AoT-+?h9T-s~H`=Bum8v)PzTcJ^t;xdIcZ6a_CgF1=mINh&=gO7#twmQFQGBxTIa z0n#I1wOO16b@Pm*y~2;uF=n~cBbfA72)z|TPtpP5n543O)Hb^6h2320MHwYYNtV*m zvw9=t`)}p!4RossGfAc1=b=Y_{%4a*2rd)#4HuVP!hcCcbJ^_XrqyNhW;Zv^YHn(c zuAjAjLD{Ubc_r=Pk~zHHWS?XgE?&-SqW%`9c=;sogi-nGb>G|e6Ysk3_vx-TlT*5{ zY`O2gDI_}?m+Uv55he&P|80*P8sKhB-v>1DMwlG~<{koH4{Rv;$A-c08U~*?48CL- zJT?qY!+0ovE&zAq%1spIq2wEe!5wH5*7+OO zuJeZiP0g$&*wP+^XnQcY4yB>CNK>mGqH-2$i|P#|(9pJlg&LZ}?LpQOXl@QSuy(x> zR$1uDNRu99p-3>$2<3+L0e`5eHPGC&F$k8tq3R;Kza`MrN@78_u&%bM+CQgcZppk% z-ZPjT%*`p8&-}IZi~Oi5xTdLH4@T-2RX2xQgY|*c&18Q~OSo0o_nV?a3Ys@g9_~Op zF7qGFPcl!GW>unQvZ2(5tehwGTbstx%=?_czWvQ-G2J-Wi-Moj)HH$a=skjuP9ga` zb^tsjInQSL3DT67iuqLH@d6Xi&*@jmpPcRH0yNi2UkT{9;L;Z1Nee!X0FeeP_{|ao zy=uW}j*>}^Gl~+;KQgTn^7PoCc*(TZg3~-FQ=0{sb2pW(x8T<2+a?Qco!`4Hc;=A> zJKHTdIv|sFSa7;$W%_{y7oq1x&s%WORUCiOf;*)V&|MZ>vEXqFF2@oT_ge6qEb@I8 z+&T|w9si!M^^BT-kDF;-aXl~Hr*-Vl-^bGPpSj!3(#2cxSD99c9Pw+(VyZulRQxpY z)HSI-&Tk~1hE6KZ`3UjUMX47#|3%`dYf?Yp{A%KkC3rdDyjig@aZ)KbphPdp99R3+!<5Kmo_D&_pW#8X$K+?>CYc6cM{Js z`l0RMc~ZZiKJ+qj4t2R&zx+YXxJ;2t1|iB}%^0=eUN=kD1JHWDoDV)g{3O)qi6<-I zh}KiF7?9R8VF{5Pnk}K(u4=}FQeur!W8pxL>Q;Jxr#O^e)!2_rK4lWf6nKqyl-?QVy5g#FNa=b7HjGPN z<5yb4am{wL&UP^QFg$?SWyNl0B*_lOk&l>}g|>se6Mkp7Zqq7 z`&@P9=asGig)BDTgV<}aidi7Z5^lO;8hLCaC>oxR3-iX@rx0J5$!mCsnTB1zb1V@?YLalM^am{!~>v(ry zX?Hs8)`FaaO+-bv;8YZp{fR z)BS_}xf0E&WP?2P|C|J4^S{N-%(xDHEpgqh83S4(`5Dc2P&;;AFNDF*3xfq@P>zpW zdz&f(5M$BVT1Uk_lv_^z6d>UDf=j;jaXOvU(1e4d%E8-6eG{6^F7Ja$#FxZZrb3V~ zd99d8D z)31cQN;r;^tH@kJrB56I`n!;-oaqIc2r1_efg*o;KXi`SNFHeTcM#nxba?Sqp>zJI zsRz@%j{mlO;m=-F&25vH@Z+S#Io|Ge+w;WJ{dOS9ZqdPTH)MUpM-q$q)O? z`_B^x%^JU7sMKOVr*#pA@*S|r&1J@?k(iUGb?mhzQrup_*R}H3j9#)=@w4VV+l{^Y z15e(*`J;a4sPVgA{{&U5-1r+wEqU{JCQfit(Q9mpZp#Q*HS% zIQARin9_L!&q(F#_v3E`d8c%4q%8TihkV=p=At84m98>?s&Py;j;qG2s?leh*hTf8 zzg^Vh^&H0Vci4WZRWO%}DV;PaDmx2CdzGEdqiu<|3)RF~mv?N6^LClZ1DX%Uc0@If zs>-(xs>TVQvh#}CaowgGzfwC+rPWst`aFkxw)cFVgR19s)$}5Ho3By4 zqEEwUKUKdd_76o%$1ql-?0oKSk$I}jt|s0s^o{)(=u>4j{ME})?{8dc;@A0rePiGE zdfv`>-c^HPviTbCqz5-&<9)Ef=Q-u`^m^hx&k3*Rz@uJcwh?v=PT3XIce-9dy|#xm zc5e)vn}*n8Og_2`p<{!xKF>LB%4<8|v%UH#?0Ai7gT;HO;@uCg>HcAAE3|#e3nx&m z@)udCu4a#Tsk$Eq7-u_>jSO4I=*JsXqc&vs; zVLkEe2UuHl#jy-gI;$}3UZ#67xk{o3l+L+8HRFxlRPYiFOwG8IJo-M=%=@EZ(1jhj!$rH;K0ZSzN1hA{ohJ&tcGy%mkk!Hv=1^mxCC#cV~Sy)qCz1qKV+Vl*jT zfj^DW-q^-`t>I8z%+UoN3*gO=U4@Y8Gh)jMXl-lsX&;`fjX5@9c@F*>yyz3O z4xZ|k11?3+hP>p%kbtDtGxZG0l8+GEGyhfOH+}j({SN9P=U(GV_@h>mehW zamrl3DL<#jZ{C*vkWqDAD?b*!c>X15&%c%0J$Vb9#i-}4#@o&duw=Hoi~DdU*^)up zkwaYZ22zfi5ld7r?^ zi{&jkqLSXK4i{okE({t2N^h0n*bMmZ0YgfSwb`%`rq?USPZ5Xj09IpKp3z6hHtP4D z$y-d&E(M=~ZF4;Tjl*iJDy=5o&X1=YzSycfb@ST{TL3Da@iTfm4@c|pq%F8djjgq-9f^rP<6nHS znKpICe(sNvz%$$7RAU8>j=0TRp7eG*oY9oecEof@c{+kIY~H4{5>s{__8MosvD&=z zKf@Y+JH79!Mw%XLb+O_nCh=F3SwtVKHLlbeC+cRL%r_IB`M0Y0LWw;CJMI`H@GVA5;*mc2r*>1BxuoW^i+xA~fr%w_^7)WUVbUzHc zG1Q+2UWz-okc{CuF%xttXeDSrXg#RwYC8QUXd9jeh0v?StX4`C?})2Fw}a}S1EAfY z{g@+NaGLf#R*>^Za!<{+aT&9%ciC<$7?Z!3eaVgj_xWB2hdZ!{tKTd(kFJgtg&%1#ze* z0EsZVv*;N@loHV$M1kFdcCsp`>l=Bfew)44>5e&Sozu6DQk|t+M%OqObd0gDw2gC? zE_6<>a=NRWg%GZC=BwjZ0<6gemkcHO2*5?TlBjk8E;oFic_p3xJjEBLV|l1zt6g=v zw>VVi^o~)QbE*A$-Z5nO?YHHib>}=$e)CK9myjRMvL7^7$++@V*2_DuvNe=61JFp z^<{jmCSUX7<19{k$JaUY_Z@uYmm0+L5$B={>GX_DywT2W_JtJhs!Y69iuXcirTuw? zd_lFd6d|xiy=FX(1^O+n7k==2jQ1V4<;&R8sP8ngwa8f+aV|h#<{08_{4VSazz(@I zl13sh5`mEjj6`500wWO^iNHt%Mj|j0fsqJ|L|`NWBN6z25CQr^2T6XvhOG{sBrOp9 z^I{W9h_iXOngxPnzLTTPc}jB6YKqBbzL(>BUzYL@uBXE!vO{b}j1uyF4l^Ua9gB-{ z`7PWn!a>^0p;Ty+tZ&>165Dr7o9*Tja?gW*Sp`Jy)6vE-CH(rxQ>6eT&cB>OiEP(N zAx9rbQIhrFVX_%HY_st8!CkJ3twqikiiTl}QI>N}{PMy1UyDFsn~U?Z9m4$o7?IzD z=Nf!XH1yYkUJ-P(Xz(q9-YsaEpf!R%Bxp#`Cj{Lh=(B?UwV*o%&GqAt@$&o1h1J#f zyQeQ-9c|U4?)ysSl$6d|5arz5k~uR>qsr;)*HFe{VtdbHLqJ z10r7x2i!x9w>8|(jSBRU6ZzkdE~8X!61EAr3wB&Nur$8WrU z|7sXJ32BE8Tp;n^U_cK8r}(Ur{)p%Lt3uu-#+&>t>#bqzzc&o-K-{d~Tl32C=PuwB zhur&@e)r@3F8YOj6QguLaPH?kH|OQ_S2c|N<-kozE}r?*NOtl*!Q^vE7JO+KJDnsC zPvv|l!o&WQv zBA)J?`GhqF8^SGZkzjj!I8xHU8X|hT9u0+%9Xw>?*IWEJ>(d%+#}S*xuzyW+cy*xJ z->8Qp?fyV?JtGs%K|R=5a$ngz&(K1245-N;h(rP#{J~Z|g7ZU>Kugfy7;S0U02K@8 zhoqh*>i5?yQy2OCzQtZY4)$aV;GB{7;l=8r+Uo2Qe$EIG&eZvRny{dGmofjsx+PU= zoqtJ9&4a#rf4y2&=Oe4lbULY_J<45W^vQyGu82-4RaVMlN^}Y-9M#RD#bxuV1I-Q9 z%TV_pIGMzcLuH$2h&0Td!~DUsj>yu1gQ>Rs}9eyPiPIw&122sK;yC{i_mcm ze*S$0TN7**IrAXbpfq{TPjF>JHyq2#EhZPuQ&kM@T^Q7>5$dK^5ga;1maCC{4$I%z z9`>&dwBk!IadvD_9tXYrwM$^Vv8mM`Z4Wk5Y^gz(?x5iyj+qTAQe&E0Ns=E_%P#Qy zSGTtdm-#_68s?2Sme#c1k4Txv;IdV42KguG(<^U;(TwAlw zN_a<=AX~B~3|0@W$6vbdAr$5Vy(G9+-05o@VMKDKs(H(s8ZwU>0xeAq@QLn|5_Bso z!F1DtDP)N0@4pPux)@6UtWnJ*-_s`a_ysj128{Nd36TNa_+iZ7Wcmq`usj zcnBCCEg60JzA35PPk{(eWW$;s2Sa-mvVQqqD(OriEd7^qlCDEJ?R`jIzQ0PkROsjW zFJQJ28H%aYm-{i2o)m(z{@nI=3jHb}C*Ox9mHR=YPfOTb{cXS~CgdL_`Q9w4ScaH| z_)ET8lL5x6FW;{v%^k4xenm;rZzG?jFW$H1`?&O%E8&miCH-EGzFe0{x>~G;GwvzT78}bZd@&ZvAwKkm4unm-`8l z_R9icN5)N>J&X)i%lsZ9Oum20|9>D?Uh zq`rJFmjAzl{C^ze_>}f!9CtvM+AsCxeyBDZAkr?AWd2HhNzb9gs-JnUDm7JPJ<@>G zll%ZOgvt8l`qm}%SLAeA##mX?#oHxuWEh%rMci_s3;OGj`o(I7}G8u*eg#e^u_$SdUW z?t*ZkeB7h?l61+of~GE6f7zWZMl6VW@h|@rR9$MOPfADAS*NvfRJp4l&Gu?AW5dOVP9nN@Q1|X~i zwrl`|u=zhrb=df3haEsTx`^bv7ULNUfN|YKMfnh#){(+FkP>)AEriV>`4j~`NEt7v zR@d>t4eHTKUHUV@&wr!$Lb9k=4Gv*ZU+$tut5dGHBS)2d7*8&Q@l+vC^#h#( z#d8EIGlv0R_P8>hF;WY@z14!uM*(k&U7+;JfI?_dBtvy#vC%VBgn(}F*(&4jq!@Wm{uY#mk y=rWAJD7*r%Mpt5^YQE3IyilL^ePupt58Y0dDQd<3BBNgOR#e?&(*_1E_51@_rr>!1 delta 612 zcmXAmUr19?9LLYS-i<9+Mh}IUZKj@)*>kMW>IgoVq5DWrel7x`P%I(49 z^*r6EJ^J8-NYUuhk^*%)(Ec(du<#*@up1^l&I~;LuKnQ0kKgxv`29N@y&JtbuPk*M zb@IjPu>e96LZ}DawlVXT{8X;`VMUTRQPw^lWwBh8#V3s=@9ETc z96(xTrN5Fbidk*=n46d`J|JnCb+$-`J?=ZlasIW+FUw32_JO2VF)6ING@L&h*4$;n z@9r0cpUQ22x*)F|!hw6x5vlAO5yc@-)mkeKs0gKJD^#e4^B#A)P(#>~dRVk9C7N&` z6S8^4{d))x?#6k)cgWu?X2Wm#ei7-T%9b^>PPX1^;Ue3_gE1k*+CCWAn5he Date: Wed, 26 Sep 2018 11:28:07 -0400 Subject: [PATCH 600/755] Generating seeds with missing items throws an error faster This was a problem for placing songs in coop --- Fill.py | 8 +------- version.py | 2 +- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/Fill.py b/Fill.py index a6e108d71..0397a03cb 100644 --- a/Fill.py +++ b/Fill.py @@ -285,13 +285,7 @@ def fill_restrictive(window, worlds, base_state_list, locations, itempool): # if we failed to find a suitable location, then stop placing items if spot_to_fill is None: - # Maybe the game can be beaten anyway? - if not CollectionState.can_beat_game(maximum_exploration_state_list): - raise FillError('Game unbeatable: No more spots to place %s [World %d]' % (item_to_place, item_to_place.world.id)) - - if not worlds[0].check_beatable_only: - logging.getLogger('').debug('Not all items placed. Game beatable anyway.') - break + raise FillError('Game unbeatable: No more spots to place %s [World %d]' % (item_to_place, item_to_place.world.id)) # Place the item in the world and continue spot_to_fill.world.push_item(spot_to_fill, item_to_place) diff --git a/version.py b/version.py index 7831fcbc6..a3d93e42a 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.19.22 f.LUM' +__version__ = '2.19.23 f.LUM' From fe6210973d0b855e0a8b642d812723e913e97baf Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 26 Sep 2018 11:28:32 -0400 Subject: [PATCH 601/755] Fix capitalization of hints python is stupid as usual --- Hints.py | 3 ++- version.py | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Hints.py b/Hints.py index aabb5dbd9..a97aae9fd 100644 --- a/Hints.py +++ b/Hints.py @@ -16,7 +16,8 @@ def buildHintString(hintString): hintString = "They say that " + hintString elif len(hintString) < 82: hintString = "They say " + hintString - hintString = hintString.capitalize() + # captitalize the sentance + hintString = hintString[:1].upper() + hintString[1:] return hintString diff --git a/version.py b/version.py index a3d93e42a..b79f29b0c 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.19.23 f.LUM' +__version__ = '2.19.24 f.LUM' From 7c6bb3ed790d5e636cf4e6bd8432aefb1e6bcc0a Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 26 Sep 2018 11:44:20 -0400 Subject: [PATCH 602/755] Banned adult tunics from appearing in child only shops It was intentional that they could show up there, but it caused a lot of confusion so I've reverted this back --- Rules.py | 6 ++++-- version.py | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Rules.py b/Rules.py index 86980e610..028d177b9 100644 --- a/Rules.py +++ b/Rules.py @@ -347,6 +347,10 @@ def global_rules(world): if location.type == 'Shop': forbid_item(location, 'Biggoron Sword') + if location.parent_region.name in ['Castle Town Bombchu Shop', 'Castle Town Potion Shop', 'Castle Town Bazaar']: + forbid_item(location, 'Buy Goron Tunic') + forbid_item(location, 'Buy Zora Tunic') + if location.name in world.shop_prices: location.price = world.shop_prices[location.name] if location.price > 200: @@ -382,8 +386,6 @@ def set_shop_rules(world): add_rule(location, lambda state: state.is_adult() and (state.has_explosives() or state.has('Progressive Strength Upgrade') or state.has_bow())) elif location.parent_region.name == 'Zora Shop': add_rule(location, lambda state: state.can_reach('Zora Shop Adult Access', 'Entrance')) - elif location.parent_region.name in ['Castle Town Bombchu Shop', 'Castle Town Potion Shop', 'Castle Town Bazaar']: - set_rule(location, lambda state: False) else: add_rule(location, lambda state: state.is_adult()) diff --git a/version.py b/version.py index b79f29b0c..1e5518a5a 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.19.24 f.LUM' +__version__ = '2.19.25 f.LUM' From 00209ad21f65f2bead289e5a1a94f65710bf7dce Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 26 Sep 2018 12:01:51 -0400 Subject: [PATCH 603/755] In shop texts, put the dungeon name in a new line so they fit in box --- BaseClasses.py | 5 +++++ Patches.py | 18 ++++++++++++++---- version.py | 2 +- 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 3c1f0f1a2..5c82a2685 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -846,6 +846,11 @@ def map(self): def compass(self): return self.type == 'Compass' + @property + def dungeonitem(self): + return self.type == 'SmallKey' or self.type == 'BossKey' or self.type == 'Map' or self.type == 'Compass' + + def __str__(self): return str(self.__unicode__()) diff --git a/Patches.py b/Patches.py index 00b9ba2f1..ab36b18a9 100644 --- a/Patches.py +++ b/Patches.py @@ -1910,11 +1910,21 @@ def place_shop_items(rom, world, shop_items, messages, locations, init_shop_id=F message_id = (shop_id - 0x32) * 2 shop_item.description_message = 0x8100 + message_id shop_item.purchase_message = 0x8100 + message_id + 1 - if world.world_count > 1: - update_message_by_id(messages, shop_item.description_message, '\x08\x05\x41%s %d Rupees\x01\x05\x42Player %d\x05\x40\x01Special deal! ONE LEFT!\x09\x0A\x02' % (location.item.name, location.price, location.item.world.id + 1), 0x03) + + if location.item.dungeonitem: + split_item_name = location.item.name.split('(') + split_item_name[1] = '(' + split_item_name[1] + if world.world_count > 1: + shop_text = '\x08\x05\x41%s %d Rupees\x01%s\x01\x05\x42Player %d\x05\x40\x01Special deal! ONE LEFT!\x09\x0A\x02' % (split_item_name[0], location.price, split_item_name[1], location.item.world.id + 1) + else: + shop_text = '\x08\x05\x41%s %d Rupees\x01%s\x01\x05\x40Special deal! ONE LEFT!\x01Get it while it lasts!\x09\x0A\x02' % (split_item_name[0], location.price, split_item_name[1]) else: - update_message_by_id(messages, shop_item.description_message, '\x08\x05\x41%s %d Rupees\x01\x05\x40Special deal! ONE LEFT!\x01Get it while it lasts!\x09\x0A\x02' % (location.item.name, location.price), 0x03) - update_message_by_id(messages, shop_item.purchase_message, '\x08%s %d Rupees\x09\x01\x01\x1B\x05\x42Buy\x01Don\'t buy\x05\x40\x02' % (location.item.name, location.price), 0x03) + if world.world_count > 1: + shop_text = '\x08\x05\x41%s %d Rupees\x01\x05\x42Player %d\x05\x40\x01Special deal! ONE LEFT!\x09\x0A\x02' % (location.item.name, location.price, location.item.world.id + 1) + else: + shop_text = '\x08\x05\x41%s %d Rupees\x01\x05\x40Special deal! ONE LEFT!\x01Get it while it lasts!\x09\x0A\x02' % (location.item.name, location.price) + + update_message_by_id(messages, shop_item.description_message, shop_text, 0x03) place_shop_items.shop_id += 1 diff --git a/version.py b/version.py index 1e5518a5a..dcde3e080 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.19.25 f.LUM' +__version__ = '2.19.26 f.LUM' From 0692a2f241469d5f7fcdc6304cb689581a59a14c Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 26 Sep 2018 21:51:50 -0400 Subject: [PATCH 604/755] Fix missing buy text for shop items --- Patches.py | 13 ++++++++----- version.py | 2 +- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/Patches.py b/Patches.py index ab36b18a9..f88b9941b 100644 --- a/Patches.py +++ b/Patches.py @@ -1915,16 +1915,19 @@ def place_shop_items(rom, world, shop_items, messages, locations, init_shop_id=F split_item_name = location.item.name.split('(') split_item_name[1] = '(' + split_item_name[1] if world.world_count > 1: - shop_text = '\x08\x05\x41%s %d Rupees\x01%s\x01\x05\x42Player %d\x05\x40\x01Special deal! ONE LEFT!\x09\x0A\x02' % (split_item_name[0], location.price, split_item_name[1], location.item.world.id + 1) + description_text = '\x08\x05\x41%s %d Rupees\x01%s\x01\x05\x42Player %d\x05\x40\x01Special deal! ONE LEFT!\x09\x0A\x02' % (split_item_name[0], location.price, split_item_name[1], location.item.world.id + 1) else: - shop_text = '\x08\x05\x41%s %d Rupees\x01%s\x01\x05\x40Special deal! ONE LEFT!\x01Get it while it lasts!\x09\x0A\x02' % (split_item_name[0], location.price, split_item_name[1]) + description_text = '\x08\x05\x41%s %d Rupees\x01%s\x01\x05\x40Special deal! ONE LEFT!\x01Get it while it lasts!\x09\x0A\x02' % (split_item_name[0], location.price, split_item_name[1]) + purchase_text = '\x08%s %d Rupees\x09\x01%s\x01\x1B\x05\x42Buy\x01Don\'t buy\x05\x40\x02' % (split_item_name[0], location.price, split_item_name[1]) else: if world.world_count > 1: - shop_text = '\x08\x05\x41%s %d Rupees\x01\x05\x42Player %d\x05\x40\x01Special deal! ONE LEFT!\x09\x0A\x02' % (location.item.name, location.price, location.item.world.id + 1) + description_text = '\x08\x05\x41%s %d Rupees\x01\x05\x42Player %d\x05\x40\x01Special deal! ONE LEFT!\x09\x0A\x02' % (location.item.name, location.price, location.item.world.id + 1) else: - shop_text = '\x08\x05\x41%s %d Rupees\x01\x05\x40Special deal! ONE LEFT!\x01Get it while it lasts!\x09\x0A\x02' % (location.item.name, location.price) + description_text = '\x08\x05\x41%s %d Rupees\x01\x05\x40Special deal! ONE LEFT!\x01Get it while it lasts!\x09\x0A\x02' % (location.item.name, location.price) + purchase_text = '\x08%s %d Rupees\x09\x01\x01\x1B\x05\x42Buy\x01Don\'t buy\x05\x40\x02' % (location.item.name, location.price) - update_message_by_id(messages, shop_item.description_message, shop_text, 0x03) + update_message_by_id(messages, shop_item.description_message, description_text, 0x03) + update_message_by_id(messages, shop_item.purchase_message, purchase_text, 0x03) place_shop_items.shop_id += 1 diff --git a/version.py b/version.py index dcde3e080..e3ea1e7fb 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.19.26 f.LUM' +__version__ = '2.19.27 f.LUM' From 960fabfa0e7c9388d5656d18cec540dc5b399286 Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 26 Sep 2018 22:16:52 -0400 Subject: [PATCH 605/755] Allow tunics in child shop if beatable only --- Rules.py | 7 +++++-- version.py | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Rules.py b/Rules.py index 028d177b9..2724ce35c 100644 --- a/Rules.py +++ b/Rules.py @@ -348,8 +348,9 @@ def global_rules(world): forbid_item(location, 'Biggoron Sword') if location.parent_region.name in ['Castle Town Bombchu Shop', 'Castle Town Potion Shop', 'Castle Town Bazaar']: - forbid_item(location, 'Buy Goron Tunic') - forbid_item(location, 'Buy Zora Tunic') + if not world.check_beatable_only: + forbid_item(location, 'Buy Goron Tunic') + forbid_item(location, 'Buy Zora Tunic') if location.name in world.shop_prices: location.price = world.shop_prices[location.name] @@ -386,6 +387,8 @@ def set_shop_rules(world): add_rule(location, lambda state: state.is_adult() and (state.has_explosives() or state.has('Progressive Strength Upgrade') or state.has_bow())) elif location.parent_region.name == 'Zora Shop': add_rule(location, lambda state: state.can_reach('Zora Shop Adult Access', 'Entrance')) + elif location.parent_region.name in ['Castle Town Bombchu Shop', 'Castle Town Potion Shop', 'Castle Town Bazaar']: + set_rule(location, lambda state: False) else: add_rule(location, lambda state: state.is_adult()) diff --git a/version.py b/version.py index e3ea1e7fb..a7b72de30 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.19.27 f.LUM' +__version__ = '2.19.28 f.LUM' From 9256636aa44c8e2964836877d51a493bf615e76b Mon Sep 17 00:00:00 2001 From: Nick Langille Date: Thu, 27 Sep 2018 00:28:58 -0400 Subject: [PATCH 606/755] Speed up read_int32 / read_int16 --- Rom.py | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/Rom.py b/Rom.py index 47e8fbc71..0f41c5583 100644 --- a/Rom.py +++ b/Rom.py @@ -92,13 +92,15 @@ def read_bytes(self, address, len): return self.buffer[address : address + len] def read_int16(self, address): - return bytes_as_int16(self.read_bytes(address, 2)) + self.last_address += 2 + return int16.unpack_from(self.buffer, address)[0] def read_int24(self, address): return bytes_as_int24(self.read_bytes(address, 3)) def read_int32(self, address): - return bytes_as_int32(self.read_bytes(address, 4)) + self.last_address += 4 + return int32.unpack_from(self.buffer, address)[0] def write_byte(self, address, value): if address == None: @@ -165,8 +167,8 @@ def update_crc(self): t1 = t2 = t3 = t4 = t5 = t6 = 0xDF26F436 u32 = 0xFFFFFFFF - words = [t[0] for t in struct.iter_unpack('>I', self.buffer[0x1000:0x101000])] - words2 = [t[0] for t in struct.iter_unpack('>I', self.buffer[0x750:0x850])] + words = [t[0] for t in int32.iter_unpack(self.buffer[0x1000:0x101000])] + words2 = [t[0] for t in int32.iter_unpack(self.buffer[0x750:0x850])] for cur in range(len(words)): d = words[cur] @@ -257,6 +259,8 @@ def update_dmadata_record(rom, key, start, end): else: rom.write_int32s(cur, [start, end, start, 0]) +int16 = struct.Struct('>H') +int32 = struct.Struct('>I') def int16_as_bytes(value): value = value & 0xFFFF @@ -270,11 +274,5 @@ def int32_as_bytes(value): value = value & 0xFFFFFFFF return [(value >> 24) & 0xFF, (value >> 16) & 0xFF, (value >> 8) & 0xFF, value & 0xFF] -def bytes_as_int16(values): - return (values[0] << 8) | values[1] - def bytes_as_int24(values): return (values[0] << 16) | (values[1] << 8) | values[2] - -def bytes_as_int32(values): - return (values[0] << 24) | (values[1] << 16) | (values[2] << 8) | values[3] From 8c503f541eae069e14f95d2d5582d6a489c6f430 Mon Sep 17 00:00:00 2001 From: phixtyseven <43648224+phixtyseven@users.noreply.github.com> Date: Thu, 27 Sep 2018 10:15:55 -0700 Subject: [PATCH 607/755] Add random_choices shim It seems capable of replacing random.choices throughout the project, at least in my testing. --- Utils.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/Utils.py b/Utils.py index 5dc4cc224..5b66f3ee7 100644 --- a/Utils.py +++ b/Utils.py @@ -5,6 +5,7 @@ from urllib.error import URLError, HTTPError import re from version import __version__ +from random import choice as random_choice def is_bundled(): return getattr(sys, 'frozen', False) @@ -77,3 +78,24 @@ def check_version(checked_version): if compare_version(version, __version__) > 0 and compare_version(checked_version, __version__) < 0: raise VersionError("You do not seem to be on the latest version!\nYou are on version " + __version__ + ", and the latest is version " + version + ".") + +# Shim for the sole purpose of maintaining compatibility with older versions of +# Python 3. Note: cum weights, as well as fractional weights are unimplemented, +# as neither were used elsewhere at the time of writing. +def random_choices(population, weights=None, k=1): + pop_size = len(population) + if (weights is None): + weights = [1] * pop_size + else: + assert (pop_size == len(weights)), "population and weights mismatch" + + weighted_pop = [] + for i in range(pop_size): + for each in range(weights[i]): + weighted_pop.append(population[i]) + + result = [] + for i in range(k): + result.append(choice(weighted_pop)) + + return result From a2a260a34803fb73b6331865a5af4cfbfb978fc2 Mon Sep 17 00:00:00 2001 From: phixtyseven <43648224+phixtyseven@users.noreply.github.com> Date: Thu, 27 Sep 2018 10:31:01 -0700 Subject: [PATCH 608/755] Swap out random.choices in OcarinaSongs.py --- OcarinaSongs.py | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/OcarinaSongs.py b/OcarinaSongs.py index f0c2b921f..927ef16c9 100644 --- a/OcarinaSongs.py +++ b/OcarinaSongs.py @@ -13,6 +13,7 @@ } import random +from Utils import random_choices # checks if one list is a sublist of the other (in either direction) # python is magic..... @@ -64,7 +65,7 @@ def identity(x): return x def random_piece(count, allowed=range(0,5)): - return random.choices(allowed, k=count) + return random_choices(allowed, k=count) def invert_piece(piece): return [4 - note for note in piece] @@ -197,7 +198,7 @@ def __init__(self, rand_song=True, piece_size=3, extra_position='none', starting if rand_song: self.length = random.randint(4, 8) - self.activation = random.choices(range(0,5), k=self.length) + self.activation = random_choices(range(0,5), k=self.length) self.playback = random_playback(self.activation) else: if extra_position != 'none': @@ -214,28 +215,28 @@ def __init__(self, rand_song=True, piece_size=3, extra_position='none', starting # randomly choose song parameters def get_random_song(): - rand_song = random.choices([True, False], [1, 9])[0] - piece_size = random.choices([3, 4], [5, 2])[0] - extra_position = random.choices(['none', 'start', 'middle', 'end'], [12, 1, 1, 1])[0] + rand_song = random_choices([True, False], [1, 9])[0] + piece_size = random_choices([3, 4], [5, 2])[0] + extra_position = random_choices(['none', 'start', 'middle', 'end'], [12, 1, 1, 1])[0] activation_transform = identity playback_transform = identity weight_damage = 0 - should_transpose = random.choices([True, False], [1, 4])[0] + should_transpose = random_choices([True, False], [1, 4])[0] starting_range=range(0,5) if should_transpose: weight_damage = 2 - direction = random.choices(['up', 'down'], [1, 1])[0] + direction = random_choices(['up', 'down'], [1, 1])[0] if direction == 'up': starting_range=range(0,4) activation_transform = transpose_piece(1) elif direction == 'down': starting_range=range(1,5) activation_transform = transpose_piece(-1) - should_invert = random.choices([True, False], [3 - weight_damage, 6])[0] + should_invert = random_choices([True, False], [3 - weight_damage, 6])[0] if should_invert: weight_damage += 1 activation_transform = compose(invert_piece, activation_transform) - should_reflect = random.choices([True, False], [5 - weight_damage, 4])[0] + should_reflect = random_choices([True, False], [5 - weight_damage, 4])[0] if should_reflect: activation_transform = compose(reverse_piece, activation_transform) playback_transform = reverse_piece @@ -375,4 +376,4 @@ def str_to_song(song:str): raise Exception('Invalid note %s. Valid notes are A, D, R, L, U' % c) notes.append(note_map[c]) - return Song(activation=notes) \ No newline at end of file + return Song(activation=notes) From da7f75452b5c3dc4ae0c8911854b0cd85d0a2985 Mon Sep 17 00:00:00 2001 From: phixtyseven <43648224+phixtyseven@users.noreply.github.com> Date: Thu, 27 Sep 2018 10:33:28 -0700 Subject: [PATCH 609/755] Swap out random.choices in Patches.py --- Patches.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Patches.py b/Patches.py index 00b9ba2f1..7fac76c34 100644 --- a/Patches.py +++ b/Patches.py @@ -9,7 +9,7 @@ import copy from Hints import writeGossipStoneHintsHints, buildBossRewardHints, buildGanonText -from Utils import local_path, default_output_path +from Utils import local_path, default_output_path, random_choices from Items import ItemFactory, item_data from Messages import * from OcarinaSongs import Song, str_to_song, replace_songs @@ -1504,7 +1504,7 @@ def write_save_table(rom): Tunics.append(0x00B6DA3B) # Goron Tunic Tunics.append(0x00B6DA3E) # Zora Tunic colorList = get_tunic_colors() - randomColors = random.choices(colorList, k=3) + randomColors = random_choices(colorList, k=3) for i in range(len(Tunics)): # get the color option @@ -1532,7 +1532,7 @@ def write_save_table(rom): Navi.append([0x00B5E194]) # NPC Navi.append([0x00B5E174, 0x00B5E17C, 0x00B5E18C, 0x00B5E1A4, 0x00B5E1AC, 0x00B5E1B4, 0x00B5E1C4, 0x00B5E1CC, 0x00B5E1D4]) # Everything else naviList = get_navi_colors() - randomColors = random.choices(naviList, k=4) + randomColors = random_choices(naviList, k=4) for i in range(len(Navi)): # do everything in the inner loop so that "true random" changes even for subcategories @@ -1562,7 +1562,7 @@ def write_save_table(rom): NaviHint.append([0xAE7EF2, 0xC26C7E]) #Overworld Hint NaviHint.append([0xAE7EC6]) #Enemy Target Hint naviHintSFXList = ['Default', 'Notification', 'Rupee', 'Timer', 'Tamborine', 'Recovery Heart', 'Carrot Refill', 'Navi - Hey!', 'Navi - Random', 'Zelda - Gasp', 'Cluck', 'Mweep!', 'None'] - randomNaviHintSFX = random.choices(naviHintSFXList, k=2) + randomNaviHintSFX = random_choices(naviHintSFXList, k=2) for i in range(len(NaviHint)): for j in range(len(NaviHint[i])): From b2b52adcc9ec79e3d1023c0f5cde35bf269c08fd Mon Sep 17 00:00:00 2001 From: phixtyseven <43648224+phixtyseven@users.noreply.github.com> Date: Thu, 27 Sep 2018 10:36:44 -0700 Subject: [PATCH 610/755] Swap out random.choices in Settings.py --- Settings.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Settings.py b/Settings.py index de95a90bd..f7e437f0c 100644 --- a/Settings.py +++ b/Settings.py @@ -7,6 +7,7 @@ from Patches import get_tunic_color_options, get_navi_color_options from version import __version__ +from Utils import random_choices class ArgumentDefaultsHelpFormatter(argparse.RawTextHelpFormatter): @@ -151,7 +152,7 @@ def __init__(self, settings_dict): self.settings_string = self.get_settings_string() if(self.seed is None): # https://stackoverflow.com/questions/2257441/random-string-generation-with-upper-case-letters-and-digits-in-python - self.seed = ''.join(random.choices(string.ascii_uppercase + string.digits, k=10)) + self.seed = ''.join(random_choices(string.ascii_uppercase + string.digits, k=10)) self.sanatize_seed() self.numeric_seed = self.get_numeric_seed() From dfc8f6ab4fc0b4a70ed8fd537cab369e9f2cbdee Mon Sep 17 00:00:00 2001 From: phixtyseven <43648224+phixtyseven@users.noreply.github.com> Date: Thu, 27 Sep 2018 10:43:27 -0700 Subject: [PATCH 611/755] Fix goof I spoke too soon. This is what I meant to commit earlier. --- Utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Utils.py b/Utils.py index 5b66f3ee7..55efe0d15 100644 --- a/Utils.py +++ b/Utils.py @@ -96,6 +96,6 @@ def random_choices(population, weights=None, k=1): result = [] for i in range(k): - result.append(choice(weighted_pop)) + result.append(random_choice(weighted_pop)) return result From b3cf0b23234c068a86943b1f95fd4d52b1ef193e Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 27 Sep 2018 16:49:57 -0400 Subject: [PATCH 612/755] Co-op: Don't give item if link doesn't have the camera This avoids causing the Walking While Talking glitch from occurring if obtaining an item while coming out of a crawlspace and a few other situations --- ASM/build/asm_symbols.txt | 130 +-- ASM/src/every_frame.asm | 7 + data/rom_patch.txt | 1770 +++++++++++++++++++------------------ data/symbols.json | 4 +- version.py | 2 +- 5 files changed, 967 insertions(+), 946 deletions(-) diff --git a/ASM/build/asm_symbols.txt b/ASM/build/asm_symbols.txt index 65e47ca59..dba03abb5 100644 --- a/ASM/build/asm_symbols.txt +++ b/ASM/build/asm_symbols.txt @@ -928,50 +928,36 @@ 804031FC Deku_Set_Sold_Out 80403220 @@continue 80403254 before_game_state_update -80403294 @@loop -804032EC @@no_pending_item -80403300 after_game_state_update -80403324 item_menu_description_id_periodic -80403338 @@item_menu_description_id_return_00000000 -80403340 item_menu_description_id_immediate_1 -80403354 @@item_menu_description_id_return_00000001 -8040335C item_menu_description_id_immediate_2 -80403370 @@item_menu_description_id_return_00000002 -80403378 item_menu_description_id_immediate_3 -8040338C @@item_menu_description_id_return_00000003 -80403394 before_time_travel -804033C4 after_time_travel -80403400 @@going_back -80403408 @@done -80403438 update_c_button -80403464 @@return -8040346C after_going_forward -804034A8 @@no_init -804034B8 after_going_back -804034E8 @@not_swordless -804034F0 initialize_adult -80403518 @@no_mirror_shield -80403558 init_adult_button -80403584 @@empty -8040358C @@loop -804035E4 @@set_empty -804035F0 @@return -804035F8 .byt:0001 -804035F8 ADULT_INIT_ITEMS -804035F9 .byt:0001 -804035FA .byt:0001 -804035FB .byt:0001 -804035FC .byt:0001 -804035FD .byt:0001 -804035FE .byt:0001 -804035FF .byt:0001 -80403600 .byt:0001 -80403604 .byt:0001 -80403604 ADULT_VALID_ITEMS -80403605 .byt:0001 -80403606 .byt:0001 -80403607 .byt:0001 +804032A4 @@loop +804032FC @@no_pending_item +80403310 after_game_state_update +80403334 item_menu_description_id_periodic +80403348 @@item_menu_description_id_return_00000000 +80403350 item_menu_description_id_immediate_1 +80403364 @@item_menu_description_id_return_00000001 +8040336C item_menu_description_id_immediate_2 +80403380 @@item_menu_description_id_return_00000002 +80403388 item_menu_description_id_immediate_3 +8040339C @@item_menu_description_id_return_00000003 +804033A4 before_time_travel +804033D4 after_time_travel +80403410 @@going_back +80403418 @@done +80403448 update_c_button +80403474 @@return +8040347C after_going_forward +804034B8 @@no_init +804034C8 after_going_back +804034F8 @@not_swordless +80403500 initialize_adult +80403528 @@no_mirror_shield +80403568 init_adult_button +80403594 @@empty +8040359C @@loop +804035F4 @@set_empty +80403600 @@return 80403608 .byt:0001 +80403608 ADULT_INIT_ITEMS 80403609 .byt:0001 8040360A .byt:0001 8040360B .byt:0001 @@ -980,10 +966,8 @@ 8040360E .byt:0001 8040360F .byt:0001 80403610 .byt:0001 -80403611 .byt:0001 -80403612 .byt:0001 -80403613 .byt:0001 80403614 .byt:0001 +80403614 ADULT_VALID_ITEMS 80403615 .byt:0001 80403616 .byt:0001 80403617 .byt:0001 @@ -991,25 +975,41 @@ 80403619 .byt:0001 8040361A .byt:0001 8040361B .byt:0001 -8040361C suns_song_fix_event -80403650 @@child -80403660 @@return -80403668 suns_song_fix -8040367C @@check_suns_status -80403698 @@disable_suns -804036A0 @@return -804036A8 warp_song_fix -804036D4 @@child -804036E4 @@return -804036EC Check_Has_Epona_Song -80403738 @@return -80403740 save_scarecrow_song -80403784 @@copy_song -8040378C write_initial_save -80403798 @@save_data_loop -804037C8 @@overwrite_type -804037D0 @@return -804037D8 .byt:0878 +8040361C .byt:0001 +8040361D .byt:0001 +8040361E .byt:0001 +8040361F .byt:0001 +80403620 .byt:0001 +80403621 .byt:0001 +80403622 .byt:0001 +80403623 .byt:0001 +80403624 .byt:0001 +80403625 .byt:0001 +80403626 .byt:0001 +80403627 .byt:0001 +80403628 .byt:0001 +80403629 .byt:0001 +8040362A .byt:0001 +8040362B .byt:0001 +8040362C suns_song_fix_event +80403660 @@child +80403670 @@return +80403678 suns_song_fix +8040368C @@check_suns_status +804036A8 @@disable_suns +804036B0 @@return +804036B8 warp_song_fix +804036E4 @@child +804036F4 @@return +804036FC Check_Has_Epona_Song +80403748 @@return +80403750 save_scarecrow_song +80403794 @@copy_song +8040379C write_initial_save +804037A8 @@save_data_loop +804037D8 @@overwrite_type +804037E0 @@return +804037E8 .byt:0868 80405000 disp_buf_init,00000018 80405018 sprite_bytes_per_tile,00000028 80405040 sprite_bytes,00000030 diff --git a/ASM/src/every_frame.asm b/ASM/src/every_frame.asm index 8c9bb9cb5..5dd600695 100644 --- a/ASM/src/every_frame.asm +++ b/ASM/src/every_frame.asm @@ -10,6 +10,13 @@ before_game_state_update: bnez t0, @@no_pending_item nop + ; Don't give an item if link's camera is not being used + ; If an item is given in this state then it will cause the + ; Walking-While-Talking glitch. + li t2, GLOBAL_CONTEXT + lw t0, 0x0794 (t2) ; Camera 2 + bnez t0, @@no_pending_item + ; clear pending item index li t1, PENDING_SPECIAL_ITEM_END li t2, 0xFF diff --git a/data/rom_patch.txt b/data/rom_patch.txt index 487a53e70..74f2a6850 100644 --- a/data/rom_patch.txt +++ b/data/rom_patch.txt @@ -407,7 +407,7 @@ a98c33,db a9e838,8 a9e839,10 a9e83a,d -a9e83b,bb +a9e83b,bf ac9abc,c ac9abd,10 ac9abe,b @@ -433,11 +433,11 @@ acce9b,0 ae59e0,8 ae59e1,10 ae59e2,c -ae59e3,f1 +ae59e3,f5 ae5df0,c ae5df1,10 ae5df2,d -ae5df3,9a +ae5df3,9e ae5df8,c ae5df9,10 ae5dfa,b @@ -463,7 +463,7 @@ b0640f,2 b06c2c,c b06c2d,10 b06c2e,d -b06c2f,e3 +b06c2f,e7 b06c31,28 b06c33,20 b16b50,c @@ -476,7 +476,7 @@ b16b57,0 b16b60,c b16b61,10 b16b62,c -b16b63,c0 +b16b63,c4 b16b64,0 b16b65,0 b16b66,0 @@ -515,14 +515,14 @@ b17bd3,0 b54b38,c b54b39,10 b54b3a,d -b54b3b,aa +b54b3b,ae b54e5c,c b54e5d,10 b54e5e,d -b54e5f,87 +b54e5f,8b b55a65,10 b55a66,d -b55a67,d0 +b55a67,d4 baed6c,0 baed6d,0 baed6f,0 @@ -532,14 +532,14 @@ bb77b7,0 bb7890,c bb7891,10 bb7892,c -bb7893,d0 +bb7893,d4 bb7894,0 bb7895,0 bb7897,0 bb7950,c bb7951,10 bb7952,c -bb7953,d7 +bb7953,db bb7954,0 bb7955,0 bb7957,0 @@ -552,14 +552,14 @@ bb7bff,0 bb7c3c,c bb7c3d,10 bb7c3e,c -bb7c3f,de +bb7c3f,e2 bb7c40,0 bb7c41,0 bb7c43,0 bb7c58,c bb7c59,10 bb7c5a,c -bb7c5b,c9 +bb7c5b,cd bb7c5c,0 bb7c5d,0 bb7c5f,0 @@ -656,7 +656,7 @@ c898cb,2a cb6860,c cb6861,10 cb6862,c -cb6863,e5 +cb6863,e9 d12f78,34 d12f79,f d12f7b,0 @@ -4597,20 +4597,21 @@ ec9ce7,7a 3483269,8 348326b,20 348326c,15 -348326f,1f +348326f,23 3483274,3c -3483275,9 +3483275,a 3483276,80 -3483277,40 +3483277,1d 3483278,25 -3483279,29 -348327a,20 -348327b,1b -348327c,34 -348327d,a -348327f,ff -3483280,a1 -3483281,2a +3483279,4a +348327a,84 +348327b,a0 +348327c,8d +348327d,48 +348327e,7 +348327f,94 +3483280,15 +3483283,1e 3483284,3c 3483285,9 3483286,80 @@ -4618,926 +4619,939 @@ ec9ce7,7a 3483288,25 3483289,29 348328a,20 -348328b,18 -348328c,24 +348328b,1b +348328c,34 348328d,a -348328e,ff 348328f,ff -3483290,34 -3483291,c -3483293,3 -3483294,21 -3483295,4a -3483297,1 -3483298,11 -3483299,4c -348329b,14 -348329c,1 -348329d,2a -348329e,58 -348329f,20 -34832a0,81 -34832a1,68 -34832a4,11 -34832a6,ff -34832a7,fb -34832ac,3c -34832ad,9 -34832ae,80 -34832af,40 -34832b0,25 -34832b1,29 -34832b2,20 -34832b3,1b -34832b4,a1 -34832b5,2a -34832b8,3c -34832b9,9 -34832ba,80 -34832bb,1e -34832bc,25 -34832bd,29 -34832be,89 -34832bf,84 -34832c0,34 -34832c1,a -34832c3,1 -34832c4,a5 +3483290,a1 +3483291,2a +3483294,3c +3483295,9 +3483296,80 +3483297,40 +3483298,25 +3483299,29 +348329a,20 +348329b,18 +348329c,24 +348329d,a +348329e,ff +348329f,ff +34832a0,34 +34832a1,c +34832a3,3 +34832a4,21 +34832a5,4a +34832a7,1 +34832a8,11 +34832a9,4c +34832ab,14 +34832ac,1 +34832ad,2a +34832ae,58 +34832af,20 +34832b0,81 +34832b1,68 +34832b4,11 +34832b6,ff +34832b7,fb +34832bc,3c +34832bd,9 +34832be,80 +34832bf,40 +34832c0,25 +34832c1,29 +34832c2,20 +34832c3,1b +34832c4,a1 34832c5,2a 34832c8,3c 34832c9,9 34832ca,80 -34832cb,48 -34832cc,34 -34832cd,a -34832cf,1 -34832d0,ad -34832d1,2a -34832d2,1 -34832d3,30 -34832d4,3c -34832d5,a -34832d6,80 -34832d7,1e -34832d8,25 -34832d9,4a -34832da,aa -34832db,30 -34832dc,a1 -34832dd,48 -34832de,4 -34832df,24 +34832cb,1e +34832cc,25 +34832cd,29 +34832ce,89 +34832cf,84 +34832d0,34 +34832d1,a +34832d3,1 +34832d4,a5 +34832d5,2a +34832d8,3c +34832d9,9 +34832da,80 +34832db,48 +34832dc,34 +34832dd,a +34832df,1 34832e0,ad -34832e1,49 -34832e2,4 -34832e3,28 -34832e4,c -34832e5,10 -34832e6,a -34832e7,e8 -34832ec,8e -34832ed,19 -34832ef,4 -34832f0,2 -34832f2,20 -34832f3,25 -34832f4,8f -34832f5,bf -34832f7,10 -34832f8,3 -34832f9,e0 -34832fb,8 -34832fc,27 -34832fd,bd -34832ff,18 -3483300,27 -3483301,bd -3483302,ff -3483303,e8 -3483304,af +34832e1,2a +34832e2,1 +34832e3,30 +34832e4,3c +34832e5,a +34832e6,80 +34832e7,1e +34832e8,25 +34832e9,4a +34832ea,aa +34832eb,30 +34832ec,a1 +34832ed,48 +34832ee,4 +34832ef,24 +34832f0,ad +34832f1,49 +34832f2,4 +34832f3,28 +34832f4,c +34832f5,10 +34832f6,a +34832f7,e8 +34832fc,8e +34832fd,19 +34832ff,4 +3483300,2 +3483302,20 +3483303,25 +3483304,8f 3483305,bf 3483307,10 -3483308,c -3483309,10 -348330a,15 -348330b,e4 -3483310,3c -3483311,e -3483312,80 -3483313,12 -3483314,91 -3483315,ce -3483316,12 -3483317,12 -3483318,8f -3483319,bf -348331b,10 -348331c,3 -348331d,e0 -348331f,8 -3483320,27 -3483321,bd -3483323,18 -3483324,93 -3483325,19 -3483327,74 -3483328,34 -3483329,1 -348332b,ff -348332c,17 -348332d,21 -348332f,2 -3483334,34 +3483308,3 +3483309,e0 +348330b,8 +348330c,27 +348330d,bd +348330f,18 +3483310,27 +3483311,bd +3483312,ff +3483313,e8 +3483314,af +3483315,bf +3483317,10 +3483318,c +3483319,10 +348331a,15 +348331b,e4 +3483320,3c +3483321,e +3483322,80 +3483323,12 +3483324,91 +3483325,ce +3483326,12 +3483327,12 +3483328,8f +3483329,bf +348332b,10 +348332c,3 +348332d,e0 +348332f,8 +3483330,27 +3483331,bd +3483333,18 +3483334,93 3483335,19 -3483337,2c -3483338,3 -3483339,e0 -348333b,8 -348333c,a7 -348333d,b9 -348333f,9a -3483340,93 -3483341,2c -3483343,74 +3483337,74 +3483338,34 +3483339,1 +348333b,ff +348333c,17 +348333d,21 +348333f,2 3483344,34 -3483345,1 -3483347,ff -3483348,15 -3483349,81 -348334b,2 -3483350,34 -3483351,c -3483353,2c -3483354,3 -3483355,e0 -3483357,8 -348335c,91 -348335d,ae -348335f,74 +3483345,19 +3483347,2c +3483348,3 +3483349,e0 +348334b,8 +348334c,a7 +348334d,b9 +348334f,9a +3483350,93 +3483351,2c +3483353,74 +3483354,34 +3483355,1 +3483357,ff +3483358,15 +3483359,81 +348335b,2 3483360,34 -3483361,1 -3483363,ff -3483364,15 -3483365,c1 -3483367,2 -348336c,34 -348336d,e -348336f,2c -3483370,3 -3483371,e0 -3483373,8 -3483374,a7 -3483375,ae -3483377,9a -3483378,91 -3483379,cf -348337b,74 +3483361,c +3483363,2c +3483364,3 +3483365,e0 +3483367,8 +348336c,91 +348336d,ae +348336f,74 +3483370,34 +3483371,1 +3483373,ff +3483374,15 +3483375,c1 +3483377,2 348337c,34 -348337d,1 -348337f,ff -3483380,15 -3483381,e1 -3483383,2 -3483388,34 -3483389,f -348338b,2c -348338c,3 -348338d,e0 -348338f,8 -3483390,a7 -3483391,af -3483393,9a -3483394,3c -3483395,8 -3483396,80 -3483397,40 -3483398,25 -3483399,8 -348339a,20 -348339b,1c -348339c,8e -348339d,9 -348339f,68 -34833a0,ad -34833a1,9 -34833a4,8e -34833a5,9 -34833a7,6c -34833a8,ad -34833a9,9 -34833ab,4 -34833ac,96 +348337d,e +348337f,2c +3483380,3 +3483381,e0 +3483383,8 +3483384,a7 +3483385,ae +3483387,9a +3483388,91 +3483389,cf +348338b,74 +348338c,34 +348338d,1 +348338f,ff +3483390,15 +3483391,e1 +3483393,2 +3483398,34 +3483399,f +348339b,2c +348339c,3 +348339d,e0 +348339f,8 +34833a0,a7 +34833a1,af +34833a3,9a +34833a4,3c +34833a5,8 +34833a6,80 +34833a7,40 +34833a8,25 +34833a9,8 +34833aa,20 +34833ab,1c +34833ac,8e 34833ad,9 -34833af,70 -34833b0,a5 +34833af,68 +34833b0,ad 34833b1,9 -34833b3,8 -34833b4,96 +34833b4,8e 34833b5,9 -34833b7,9c -34833b8,a5 +34833b7,6c +34833b8,ad 34833b9,9 -34833bb,a -34833bc,3 -34833bd,e0 -34833bf,8 -34833c0,8e -34833c1,e -34833c3,4 -34833c4,27 -34833c5,bd -34833c6,ff -34833c7,e0 -34833c8,af -34833c9,b0 -34833cb,10 -34833cc,af -34833cd,b1 -34833cf,14 -34833d0,af -34833d1,bf -34833d3,18 -34833d4,3c -34833d5,10 -34833d6,80 -34833d7,12 -34833d8,26 -34833d9,10 -34833da,a5 -34833db,d0 -34833dc,3c -34833dd,11 -34833de,80 -34833df,40 -34833e0,26 -34833e1,31 -34833e2,20 -34833e3,1c -34833e4,8e -34833e5,8 -34833e7,4 -34833e8,11 -34833eb,5 -34833f0,c -34833f1,10 -34833f2,d -34833f3,1b -34833f8,10 -34833fb,3 +34833bb,4 +34833bc,96 +34833bd,9 +34833bf,70 +34833c0,a5 +34833c1,9 +34833c3,8 +34833c4,96 +34833c5,9 +34833c7,9c +34833c8,a5 +34833c9,9 +34833cb,a +34833cc,3 +34833cd,e0 +34833cf,8 +34833d0,8e +34833d1,e +34833d3,4 +34833d4,27 +34833d5,bd +34833d6,ff +34833d7,e0 +34833d8,af +34833d9,b0 +34833db,10 +34833dc,af +34833dd,b1 +34833df,14 +34833e0,af +34833e1,bf +34833e3,18 +34833e4,3c +34833e5,10 +34833e6,80 +34833e7,12 +34833e8,26 +34833e9,10 +34833ea,a5 +34833eb,d0 +34833ec,3c +34833ed,11 +34833ee,80 +34833ef,40 +34833f0,26 +34833f1,31 +34833f2,20 +34833f3,1c +34833f4,8e +34833f5,8 +34833f7,4 +34833f8,11 +34833fb,5 3483400,c 3483401,10 3483402,d -3483403,2e -3483408,c -3483409,10 -348340a,d -348340b,e -348340c,34 -348340d,4 +3483403,1f +3483408,10 +348340b,3 3483410,c 3483411,10 3483412,d -3483413,e -3483414,34 -3483415,4 -3483417,1 +3483413,32 3483418,c 3483419,10 348341a,d -348341b,e +348341b,12 348341c,34 348341d,4 -348341f,2 -3483420,8f -3483421,b0 -3483423,10 -3483424,8f -3483425,b1 -3483427,14 -3483428,8f -3483429,bf -348342b,18 -348342c,27 -348342d,bd -348342f,20 -3483430,3 -3483431,e0 -3483433,8 -3483438,2 -3483439,4 -348343a,40 -348343b,21 -348343c,91 -348343d,9 -348343f,6c -3483440,34 -3483441,1 -3483443,ff -3483444,11 -3483445,21 -3483447,7 -348344c,2 +3483420,c +3483421,10 +3483422,d +3483423,12 +3483424,34 +3483425,4 +3483427,1 +3483428,c +3483429,10 +348342a,d +348342b,12 +348342c,34 +348342d,4 +348342f,2 +3483430,8f +3483431,b0 +3483433,10 +3483434,8f +3483435,b1 +3483437,14 +3483438,8f +3483439,bf +348343b,18 +348343c,27 +348343d,bd +348343f,20 +3483440,3 +3483441,e0 +3483443,8 +3483448,2 +3483449,4 +348344a,40 +348344b,21 +348344c,91 348344d,9 -348344e,48 -348344f,21 -3483450,91 -3483451,29 -3483453,74 -3483454,34 -3483455,1 -3483457,2c -3483458,11 -3483459,21 -348345b,2 -3483460,a1 -3483461,9 -3483463,69 -3483464,3 -3483465,e0 -3483467,8 -348346c,27 -348346d,bd -348346e,ff -348346f,e8 -3483470,af -3483471,bf -3483473,10 -3483474,8e -3483475,28 -3483478,ae -3483479,8 -348347b,40 -348347c,8e -348347d,28 -348347f,4 -3483480,ae -3483481,8 -3483483,44 -3483484,96 +348344f,6c +3483450,34 +3483451,1 +3483453,ff +3483454,11 +3483455,21 +3483457,7 +348345c,2 +348345d,9 +348345e,48 +348345f,21 +3483460,91 +3483461,29 +3483463,74 +3483464,34 +3483465,1 +3483467,2c +3483468,11 +3483469,21 +348346b,2 +3483470,a1 +3483471,9 +3483473,69 +3483474,3 +3483475,e0 +3483477,8 +348347c,27 +348347d,bd +348347e,ff +348347f,e8 +3483480,af +3483481,bf +3483483,10 +3483484,8e 3483485,28 -3483487,8 -3483488,a6 +3483488,ae 3483489,8 -348348b,48 -348348c,a2 -348348e,f -348348f,33 -3483490,92 +348348b,40 +348348c,8e +348348d,28 +348348f,4 +3483490,ae 3483491,8 -3483493,4a -3483494,34 -3483495,1 -3483497,ff -3483498,15 -3483499,1 -348349b,3 -34834a0,c -34834a1,10 -34834a2,d -34834a3,3c -34834a8,8f -34834a9,bf -34834ab,10 -34834ac,27 -34834ad,bd -34834af,18 -34834b0,3 -34834b1,e0 -34834b3,8 -34834b8,8e -34834b9,8 -34834bb,40 -34834bc,ae -34834bd,8 -34834bf,68 -34834c0,8e -34834c1,8 -34834c3,44 -34834c4,ae -34834c5,8 -34834c7,6c -34834c8,96 +3483493,44 +3483494,96 +3483495,28 +3483497,8 +3483498,a6 +3483499,8 +348349b,48 +348349c,a2 +348349e,f +348349f,33 +34834a0,92 +34834a1,8 +34834a3,4a +34834a4,34 +34834a5,1 +34834a7,ff +34834a8,15 +34834a9,1 +34834ab,3 +34834b0,c +34834b1,10 +34834b2,d +34834b3,40 +34834b8,8f +34834b9,bf +34834bb,10 +34834bc,27 +34834bd,bd +34834bf,18 +34834c0,3 +34834c1,e0 +34834c3,8 +34834c8,8e 34834c9,8 -34834cb,48 -34834cc,a6 +34834cb,40 +34834cc,ae 34834cd,8 -34834cf,70 -34834d0,92 +34834cf,68 +34834d0,8e 34834d1,8 -34834d3,68 -34834d4,34 -34834d5,1 -34834d7,ff -34834d8,15 -34834d9,1 -34834db,3 -34834e0,34 +34834d3,44 +34834d4,ae +34834d5,8 +34834d7,6c +34834d8,96 +34834d9,8 +34834db,48 +34834dc,a6 +34834dd,8 +34834df,70 +34834e0,92 34834e1,8 -34834e3,1 -34834e4,a2 -34834e5,8 -34834e6,f -34834e7,33 -34834e8,3 -34834e9,e0 -34834eb,8 -34834f0,27 -34834f1,bd -34834f2,ff -34834f3,e8 -34834f4,af -34834f5,bf -34834f7,10 -34834f8,96 -34834f9,8 -34834fb,9c -34834fc,31 -34834fd,8 -34834ff,40 -3483500,11 -3483503,5 +34834e3,68 +34834e4,34 +34834e5,1 +34834e7,ff +34834e8,15 +34834e9,1 +34834eb,3 +34834f0,34 +34834f1,8 +34834f3,1 +34834f4,a2 +34834f5,8 +34834f6,f +34834f7,33 +34834f8,3 +34834f9,e0 +34834fb,8 +3483500,27 +3483501,bd +3483502,ff +3483503,e8 +3483504,af +3483505,bf +3483507,10 3483508,96 3483509,8 -348350b,70 +348350b,9c 348350c,31 348350d,8 -348350e,ff -348350f,f -3483510,35 -3483511,8 -3483513,30 -3483514,a6 -3483515,8 -3483517,70 -3483518,92 -3483519,28 -348351b,1 -348351c,a2 +348350f,40 +3483510,11 +3483513,5 +3483518,96 +3483519,8 +348351b,70 +348351c,31 348351d,8 -348351f,69 -3483520,96 -3483521,28 -3483523,2 +348351e,ff +348351f,f +3483520,35 +3483521,8 +3483523,30 3483524,a6 3483525,8 -3483527,6a -3483528,8e +3483527,70 +3483528,92 3483529,28 -348352b,4 -348352c,ae +348352b,1 +348352c,a2 348352d,8 -348352f,6c -3483530,c -3483531,10 -3483532,d -3483533,56 -3483534,34 -3483535,4 -3483538,c -3483539,10 -348353a,d -348353b,56 -348353c,34 -348353d,4 -348353f,1 +348352f,69 +3483530,96 +3483531,28 +3483533,2 +3483534,a6 +3483535,8 +3483537,6a +3483538,8e +3483539,28 +348353b,4 +348353c,ae +348353d,8 +348353f,6c 3483540,c 3483541,10 3483542,d -3483543,56 +3483543,5a 3483544,34 3483545,4 -3483547,2 -3483548,8f -3483549,bf -348354b,10 -348354c,27 -348354d,bd -348354f,18 -3483550,3 -3483551,e0 -3483553,8 -3483558,2 -3483559,4 -348355a,40 -348355b,21 -348355c,3c -348355d,9 -348355e,80 -348355f,40 -3483560,25 -3483561,29 -3483562,36 -3483563,4 -3483564,91 -3483565,a -3483567,6c -3483568,34 -3483569,1 -348356b,ff -348356c,11 -348356d,41 -348356f,5 -3483574,1 -3483575,2a -3483576,48 -3483577,21 -3483578,91 -3483579,29 -348357c,15 -348357d,20 -348357f,1c -3483584,3c -3483585,9 -3483586,80 -3483587,40 -3483588,25 +3483548,c +3483549,10 +348354a,d +348354b,5a +348354c,34 +348354d,4 +348354f,1 +3483550,c +3483551,10 +3483552,d +3483553,5a +3483554,34 +3483555,4 +3483557,2 +3483558,8f +3483559,bf +348355b,10 +348355c,27 +348355d,bd +348355f,18 +3483560,3 +3483561,e0 +3483563,8 +3483568,2 +3483569,4 +348356a,40 +348356b,21 +348356c,3c +348356d,9 +348356e,80 +348356f,40 +3483570,25 +3483571,29 +3483572,36 +3483573,14 +3483574,91 +3483575,a +3483577,6c +3483578,34 +3483579,1 +348357b,ff +348357c,11 +348357d,41 +348357f,5 +3483584,1 +3483585,2a +3483586,48 +3483587,21 +3483588,91 3483589,29 -348358a,35 -348358b,f7 -348358c,25 -348358d,29 -348358f,1 -3483590,91 -3483591,2a -3483594,11 -3483595,40 -3483597,13 -348359c,2 -348359d,a -348359e,58 -348359f,21 +348358c,15 +348358d,20 +348358f,1c +3483594,3c +3483595,9 +3483596,80 +3483597,40 +3483598,25 +3483599,29 +348359a,36 +348359b,7 +348359c,25 +348359d,29 +348359f,1 34835a0,91 -34835a1,6b -34835a3,74 -34835a4,34 -34835a5,1 -34835a7,ff -34835a8,11 -34835a9,61 -34835aa,ff -34835ab,f8 -34835b0,92 -34835b1,c -34835b3,6c -34835b4,11 -34835b5,8a -34835b6,ff -34835b7,f5 -34835bc,92 -34835bd,c -34835bf,6d -34835c0,11 -34835c1,8a -34835c2,ff -34835c3,f2 -34835c8,92 -34835c9,c -34835cb,6e -34835cc,11 -34835cd,8a -34835ce,ff -34835cf,ef -34835d4,a1 -34835d5,b -34835d7,69 -34835d8,a1 -34835d9,a -34835db,6c -34835dc,10 -34835df,4 -34835e4,34 -34835e5,9 -34835e7,ff +34835a1,2a +34835a4,11 +34835a5,40 +34835a7,13 +34835ac,2 +34835ad,a +34835ae,58 +34835af,21 +34835b0,91 +34835b1,6b +34835b3,74 +34835b4,34 +34835b5,1 +34835b7,ff +34835b8,11 +34835b9,61 +34835ba,ff +34835bb,f8 +34835c0,92 +34835c1,c +34835c3,6c +34835c4,11 +34835c5,8a +34835c6,ff +34835c7,f5 +34835cc,92 +34835cd,c +34835cf,6d +34835d0,11 +34835d1,8a +34835d2,ff +34835d3,f2 +34835d8,92 +34835d9,c +34835db,6e +34835dc,11 +34835dd,8a +34835de,ff +34835df,ef +34835e4,a1 +34835e5,b +34835e7,69 34835e8,a1 -34835e9,9 -34835eb,69 -34835ec,a1 -34835ed,9 -34835ef,6c -34835f0,3 -34835f1,e0 -34835f3,8 -34835f8,7 +34835e9,a +34835eb,6c +34835ec,10 +34835ef,4 +34835f4,34 +34835f5,9 +34835f7,ff +34835f8,a1 34835f9,9 -34835fa,f -34835fb,2 -34835fc,3 -34835fd,1 -34835fe,d -34835ff,b -3483605,1 -3483606,1 -3483607,1 -3483608,1 -3483609,1 -348360b,1 -348360c,1 +34835fb,69 +34835fc,a1 +34835fd,9 +34835ff,6c +3483600,3 +3483601,e0 +3483603,8 +3483608,7 +3483609,9 +348360a,f +348360b,2 +348360c,3 348360d,1 -348360e,1 -348360f,1 -3483611,1 -3483613,1 -3483614,1 +348360e,d +348360f,b 3483615,1 3483616,1 3483617,1 3483618,1 3483619,1 -348361a,1 -348361d,33 -348361e,8 -348361f,21 -3483620,20 -3483621,f -3483623,47 -3483624,15 -3483625,ea -3483627,e -3483628,3c -3483629,2 -348362a,80 -348362b,12 -348362c,8c -348362d,42 -348362e,a5 -348362f,d4 -3483630,8e -3483631,6f -3483633,a4 -3483635,f -3483636,7a -3483637,3 -3483638,14 -3483639,40 -348363b,5 -348363c,34 -348363d,2 -348363e,48 -348363f,30 -3483640,15 -3483641,e2 -3483643,7 -3483648,24 -3483649,19 -348364b,3 -348364c,10 -348364f,4 -3483650,34 -3483651,2 -3483652,63 -3483653,11 -3483654,15 -3483655,e2 -3483657,2 -348365c,24 -348365d,19 -348365f,3 -3483660,3 -3483661,e0 -3483663,8 -3483668,8d -3483669,ad -348366a,8a -348366b,a0 -348366c,34 -348366d,2 -348366e,80 -3483670,10 -3483671,4d -3483673,2 -3483678,10 -348367b,9 -348367c,3c -348367d,f +348361b,1 +348361c,1 +348361d,1 +348361e,1 +348361f,1 +3483621,1 +3483623,1 +3483624,1 +3483625,1 +3483626,1 +3483627,1 +3483628,1 +3483629,1 +348362a,1 +348362d,33 +348362e,8 +348362f,21 +3483630,20 +3483631,f +3483633,47 +3483634,15 +3483635,ea +3483637,e +3483638,3c +3483639,2 +348363a,80 +348363b,12 +348363c,8c +348363d,42 +348363e,a5 +348363f,d4 +3483640,8e +3483641,6f +3483643,a4 +3483645,f +3483646,7a +3483647,3 +3483648,14 +3483649,40 +348364b,5 +348364c,34 +348364d,2 +348364e,48 +348364f,30 +3483650,15 +3483651,e2 +3483653,7 +3483658,24 +3483659,19 +348365b,3 +348365c,10 +348365f,4 +3483660,34 +3483661,2 +3483662,63 +3483663,11 +3483664,15 +3483665,e2 +3483667,2 +348366c,24 +348366d,19 +348366f,3 +3483670,3 +3483671,e0 +3483673,8 +3483678,8d +3483679,ad +348367a,8a +348367b,a0 +348367c,34 +348367d,2 348367e,80 -348367f,1e -3483680,25 -3483681,ef -3483682,84 -3483683,a0 -3483684,81 -3483685,e2 -3483686,1c -3483687,bf -3483688,30 -3483689,42 -348368b,1 -348368c,10 -348368d,40 -348368f,2 -3483694,10 -3483697,2 -3483698,34 -3483699,2 +3483680,10 +3483681,4d +3483683,2 +3483688,10 +348368b,9 +348368c,3c +348368d,f +348368e,80 +348368f,1e +3483690,25 +3483691,ef +3483692,84 +3483693,a0 +3483694,81 +3483695,e2 +3483696,1c +3483697,bf +3483698,30 +3483699,42 348369b,1 -348369c,a1 -348369d,e2 -348369e,1c -348369f,bf -34836a0,3 -34836a1,e0 -34836a3,8 -34836a9,33 -34836aa,8 -34836ab,21 -34836ac,3c -34836ad,2 -34836ae,80 -34836af,12 -34836b0,8c -34836b1,42 -34836b2,a5 -34836b3,d4 -34836b4,8e -34836b5,6f -34836b7,a4 -34836b9,f -34836ba,7a -34836bb,3 -34836bc,14 -34836bd,40 -34836bf,5 -34836c0,34 -34836c1,2 -34836c2,48 -34836c3,30 -34836c4,15 -34836c5,e2 -34836c7,7 -34836cc,24 -34836cd,19 -34836cf,3 -34836d0,10 -34836d3,4 -34836d4,34 -34836d5,2 -34836d6,63 -34836d7,11 -34836d8,15 -34836d9,e2 -34836db,2 -34836e0,24 -34836e1,19 -34836e3,3 -34836e4,3 -34836e5,e0 -34836e7,8 -34836ec,34 -34836ed,1 -34836ef,18 -34836f0,14 -34836f1,81 -34836f3,11 -34836f8,14 -34836f9,40 -34836fb,f -3483700,3c -3483701,a -3483702,80 -3483703,12 -3483704,25 -3483705,4a -3483706,a5 -3483707,d0 -3483708,81 -3483709,48 -348370b,a6 -348370c,31 -348370d,8 -348370f,20 -3483710,11 -3483713,9 -3483714,34 -3483715,2 -3483718,34 -3483719,2 -348371b,1 -348371c,81 -348371d,48 -348371f,7b -3483720,34 -3483721,9 -3483723,7 -3483724,11 -3483725,9 -3483727,4 +348369c,10 +348369d,40 +348369f,2 +34836a4,10 +34836a7,2 +34836a8,34 +34836a9,2 +34836ab,1 +34836ac,a1 +34836ad,e2 +34836ae,1c +34836af,bf +34836b0,3 +34836b1,e0 +34836b3,8 +34836b9,33 +34836ba,8 +34836bb,21 +34836bc,3c +34836bd,2 +34836be,80 +34836bf,12 +34836c0,8c +34836c1,42 +34836c2,a5 +34836c3,d4 +34836c4,8e +34836c5,6f +34836c7,a4 +34836c9,f +34836ca,7a +34836cb,3 +34836cc,14 +34836cd,40 +34836cf,5 +34836d0,34 +34836d1,2 +34836d2,48 +34836d3,30 +34836d4,15 +34836d5,e2 +34836d7,7 +34836dc,24 +34836dd,19 +34836df,3 +34836e0,10 +34836e3,4 +34836e4,34 +34836e5,2 +34836e6,63 +34836e7,11 +34836e8,15 +34836e9,e2 +34836eb,2 +34836f0,24 +34836f1,19 +34836f3,3 +34836f4,3 +34836f5,e0 +34836f7,8 +34836fc,34 +34836fd,1 +34836ff,18 +3483700,14 +3483701,81 +3483703,11 +3483708,14 +3483709,40 +348370b,f +3483710,3c +3483711,a +3483712,80 +3483713,12 +3483714,25 +3483715,4a +3483716,a5 +3483717,d0 +3483718,81 +3483719,48 +348371b,a6 +348371c,31 +348371d,8 +348371f,20 +3483720,11 +3483723,9 +3483724,34 +3483725,2 3483728,34 -3483729,a -348372b,8 -348372c,11 -348372d,a -348372f,2 -3483734,34 -3483735,2 -3483738,3 -3483739,e0 +3483729,2 +348372b,1 +348372c,81 +348372d,48 +348372f,7b +3483730,34 +3483731,9 +3483733,7 +3483734,11 +3483735,9 +3483737,4 +3483738,34 +3483739,a 348373b,8 -3483740,80 -3483741,a8 -3483744,25 -3483745,9 -3483747,1 -3483748,15 -3483749,20 -348374b,e -3483750,27 -3483751,bd -3483752,ff -3483753,e8 -3483754,af -3483755,bf -3483757,14 -3483758,af -3483759,a4 -348375b,18 -348375c,af -348375d,a5 -348375f,1c -3483761,5 -3483762,20 -3483763,25 -3483764,24 -3483765,a5 -3483767,8 -3483768,c -3483769,1 -348376a,5c -348376b,c -348376c,24 -348376d,c6 -348376e,ff -348376f,f8 -3483770,8f -3483771,a4 -3483773,18 -3483774,8f +348373c,11 +348373d,a +348373f,2 +3483744,34 +3483745,2 +3483748,3 +3483749,e0 +348374b,8 +3483750,80 +3483751,a8 +3483754,25 +3483755,9 +3483757,1 +3483758,15 +3483759,20 +348375b,e +3483760,27 +3483761,bd +3483762,ff +3483763,e8 +3483764,af +3483765,bf +3483767,14 +3483768,af +3483769,a4 +348376b,18 +348376c,af +348376d,a5 +348376f,1c +3483771,5 +3483772,20 +3483773,25 +3483774,24 3483775,a5 -3483777,1c -3483778,34 -3483779,6 -348377b,80 -348377c,8f -348377d,bf -348377f,14 -3483780,27 -3483781,bd +3483777,8 +3483778,c +3483779,1 +348377a,5c +348377b,c +348377c,24 +348377d,c6 +348377e,ff +348377f,f8 +3483780,8f +3483781,a4 3483783,18 -3483784,8 -3483785,1 -3483786,5c -3483787,c -348378c,a2 -348378d,25 -348378f,21 -3483790,3c -3483791,10 -3483792,80 -3483793,40 -3483794,26 -3483795,10 -3483796,17 -3483797,fc -3483798,26 -3483799,10 -348379b,4 -348379c,8e -348379d,a -34837a0,11 -34837a1,40 -34837a3,b -34837a9,a -34837aa,7c -34837ab,2 -34837ac,1 -34837ad,f1 -34837ae,78 -34837af,20 -34837b0,31 -34837b1,58 -34837b2,ff -34837b5,18 -34837b6,c2 -34837b7,2 -34837b8,17 -34837bb,3 -34837bc,31 -34837bd,59 -34837bf,ff -34837c0,81 -34837c1,ea -34837c4,3 -34837c5,2a -34837c6,c8 -34837c7,25 -34837c8,8 -34837c9,10 -34837ca,d -34837cb,e6 -34837cc,a1 -34837cd,f9 -34837d0,3 -34837d1,e0 -34837d3,8 +3483784,8f +3483785,a5 +3483787,1c +3483788,34 +3483789,6 +348378b,80 +348378c,8f +348378d,bf +348378f,14 +3483790,27 +3483791,bd +3483793,18 +3483794,8 +3483795,1 +3483796,5c +3483797,c +348379c,a2 +348379d,25 +348379f,21 +34837a0,3c +34837a1,10 +34837a2,80 +34837a3,40 +34837a4,26 +34837a5,10 +34837a6,17 +34837a7,fc +34837a8,26 +34837a9,10 +34837ab,4 +34837ac,8e +34837ad,a +34837b0,11 +34837b1,40 +34837b3,b +34837b9,a +34837ba,7c +34837bb,2 +34837bc,1 +34837bd,f1 +34837be,78 +34837bf,20 +34837c0,31 +34837c1,58 +34837c2,ff +34837c5,18 +34837c6,c2 +34837c7,2 +34837c8,17 +34837cb,3 +34837cc,31 +34837cd,59 +34837cf,ff +34837d0,81 +34837d1,ea +34837d4,3 +34837d5,2a +34837d6,c8 +34837d7,25 +34837d8,8 +34837d9,10 +34837da,d +34837db,ea +34837dc,a1 +34837dd,f9 +34837e0,3 +34837e1,e0 +34837e3,8 34b3000,ac 34b3001,86 34b3004,ac diff --git a/data/symbols.json b/data/symbols.json index ab800e4df..a2e70f1f3 100644 --- a/data/symbols.json +++ b/data/symbols.json @@ -1,6 +1,6 @@ { - "ADULT_INIT_ITEMS": "034835F8", - "ADULT_VALID_ITEMS": "03483604", + "ADULT_INIT_ITEMS": "03483608", + "ADULT_VALID_ITEMS": "03483614", "EXTENDED_ITEM_DATA": "03482008", "FAIRY_ITEMS": "03481C03", "FAIRY_OCARINA_ITEM": "03481C02", diff --git a/version.py b/version.py index a7b72de30..aa8146f59 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.19.28 f.LUM' +__version__ = '2.19.29 f.LUM' From 1efeb972494af4a1bbd0d7112d80e49a2932a328 Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 27 Sep 2018 17:09:42 -0400 Subject: [PATCH 613/755] Updated readme --- README.md | 14 ++++++++++++++ version.py | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e3e52afb8..c4c501e8e 100644 --- a/README.md +++ b/README.md @@ -121,6 +121,20 @@ This option will shuffle all the Deku Salesscrubs to give random items. There is When this option is off, only the three unique Deku Salescrubs (Heart Piece, Stick Upgrade, and Nut Upgrade) will be randomized to a new item. Their prices and all other scrubs are unaffected. +## Master Quest + +It is now possible to change the dungeons into Master Quest variants. +- `vanilla`: Dungeons are vanilla Ocarina of Time Dungeons +- `master`: Dungeons are the variants from Master Quest +- `mixed`: Dungeons can be from either versions + +## Enhanced Map and Compass + +The map and compass can be made to give additional info. The option only applies if map and compasses can be shuffled to any location. +- The Compass will tell the dungeon's Medallion/Stone reward. The Temple of Time Altar will no longer give any info. +- The Map will tell whether the dungeon is vanilla or Master Quest. +The keysanity display will show the info once the map/compass has been found or the altar has been read, depending on the mode. + ## Changed hint system The hint system has been changed to include different kinds of hints (such as saying a location has something good, but not saying what item it is, or saying a specific item is somewhere in a dungeon, instead of giving the specific location, and so on.) An option has been added to allow talking to gossip stones from the start. Yes, this makes the Stone of Agony completely useless. diff --git a/version.py b/version.py index aa8146f59..7543f31ac 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.19.29 f.LUM' +__version__ = '2.20.1 f.LUM' From d5a2cbf88d0e53971ad5295fb363df83c5b9812b Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 27 Sep 2018 17:55:16 -0400 Subject: [PATCH 614/755] Merge #152 back into MQ --- ItemList.py | 27 +++++++++-- Settings.py | 133 +++++++++++++++++++++++++++++++++++++++++++++------- version.py | 2 +- 3 files changed, 142 insertions(+), 20 deletions(-) diff --git a/ItemList.py b/ItemList.py index 1a05242d1..8d22b05b4 100644 --- a/ItemList.py +++ b/ItemList.py @@ -337,7 +337,7 @@ 'GS Desert Colossus Tree', 'GS Desert Colossus Hill']) -tradeitems = [ +tradeitems = ( 'Pocket Egg', 'Pocket Cucco', 'Cojiro', @@ -347,7 +347,19 @@ 'Prescription', 'Eyeball Frog', 'Eyedrops', - 'Claim Check'] + 'Claim Check') + +tradeitemoptions = ( + 'pocket_egg', + 'pocket_cucco', + 'cojiro', + 'odd_mushroom', + 'poachers_saw', + 'broken_sword', + 'prescription', + 'eyeball_frog', + 'eyedrops', + 'claim_check') eventlocations = { @@ -755,13 +767,22 @@ def get_pool_core(world): pool.extend(GC_MQ) else: pool.extend(GC_vanilla) + for _ in range(normal_bottle_count): bottle = random.choice(normal_bottles) pool.append(bottle) - if world.big_poe_count_random: + + if world.big_poe_count_random: world.big_poe_count = random.randint(1, 10) + tradeitem = random.choice(tradeitems) + earliest_trade = tradeitemoptions.index(world.logic_earliest_adult_trade) + latest_trade = tradeitemoptions.index(world.logic_latest_adult_trade) + if earliest_trade > latest_trade: + earliest_trade, latest_trade = latest_trade, earliest_trade + tradeitem = random.choice(tradeitems[earliest_trade:latest_trade+1]) pool.append(tradeitem) + pool.extend(songlist) if world.shuffle_mapcompass == 'remove': diff --git a/Settings.py b/Settings.py index de95a90bd..78016bf63 100644 --- a/Settings.py +++ b/Settings.py @@ -1208,22 +1208,6 @@ def parse_custom_navi_color(s): Spiritual Stones. ''' }), - Setting_Info('logic_no_trade_biggoron', bool, 1, True, - { - 'help': '''\ - You will not be expected to trade for biggoron's reward. - ''', - 'action': 'store_true' - }, - { - 'text': 'No Biggoron reward', - 'group': 'rewards', - 'widget': 'Checkbutton', - 'default': 'unchecked', - 'tooltip':'''\ - Adult trade sequence is time consuming. - ''' - }), Setting_Info('logic_no_1500_archery', bool, 1, True, { 'help': '''\ @@ -1290,6 +1274,123 @@ def parse_custom_navi_color(s): Still does not require glitches. ''' }), + Setting_Info('logic_no_trade_biggoron', bool, 1, True, + { + 'help': '''\ + You will not be expected to trade for biggoron's reward. + ''', + 'action': 'store_true' + }, + { + 'text': 'No Biggoron reward', + 'group': 'rewards', + 'widget': 'Checkbutton', + 'default': 'unchecked', + 'tooltip':'''\ + Adult trade sequence is time consuming. + ''' + }), + Setting_Info('logic_earliest_adult_trade', str, 4, True, + { + 'default': 'pocket_egg', + 'const': 'always', + 'nargs': '?', + 'choices': [ + 'pocket_egg', + 'pocket_cucco', + 'cojiro', + 'odd_mushroom', + 'poachers_saw', + 'broken_sword', + 'prescription', + 'eyeball_frog', + 'eyedrops', + 'claim_check'], + 'help': '''\ + Select the earliest item that will appear in the adult trade sequence: + 'pocket_egg' + 'pocket_cucco' + 'cojiro' + 'odd_mushroom' + 'poachers_saw' + 'broken_sword' + 'prescription' + 'eyeball_frog' + 'eyedrops' + 'claim_check' + ''' + }, + { + 'text': 'Adult Trade Sequence', + 'group': 'rewards', + 'widget': 'Combobox', + 'dependency': lambda guivar: not guivar['logic_no_trade_biggoron'].get(), + 'default': 'Earliest: Pocket Egg', + 'options': { + 'Earliest: Pocket Egg': 'pocket_egg', + 'Earliest: Pocket Cucco': 'pocket_cucco', + 'Earliest: Cojiro': 'cojiro', + 'Earliest: Odd Mushroom': 'odd_mushroom', + 'Earliest: Poachers Saw': 'poachers_saw', + 'Earliest: Broken Sword': 'broken_sword', + 'Earliest: Prescription': 'prescription', + 'Earliest: Eyeball Frog': 'eyeball_frog', + 'Earliest: Eyedrops': 'eyedrops', + 'Earliest: Claim Check': 'claim_check'}, + 'tooltip':'''\ + Select the earliest item that will appear in the adult trade sequence. + ''' + }), + Setting_Info('logic_latest_adult_trade', str, 4, True, + { + 'default': 'claim_check', + 'const': 'always', + 'nargs': '?', + 'choices': [ + 'pocket_egg', + 'pocket_cucco', + 'cojiro', + 'odd_mushroom', + 'poachers_saw', + 'broken_sword', + 'prescription', + 'eyeball_frog', + 'eyedrops', + 'claim_check'], + 'help': '''\ + Select the latest item that will appear in the adult trade sequence: + 'pocket_egg' + 'pocket_cucco' + 'cojiro' + 'odd_mushroom' + 'poachers_saw' + 'broken_sword' + 'prescription' + 'eyeball_frog' + 'eyedrops' + 'claim_check' + ''' + }, + { + 'group': 'rewards', + 'widget': 'Combobox', + 'dependency': lambda guivar: not guivar['logic_no_trade_biggoron'].get(), + 'default': 'Latest: Claim Check', + 'options': { + 'Latest: Pocket Egg': 'pocket_egg', + 'Latest: Pocket Cucco': 'pocket_cucco', + 'Latest: Cojiro': 'cojiro', + 'Latest: Odd Mushroom': 'odd_mushroom', + 'Latest: Poachers Saw': 'poachers_saw', + 'Latest: Broken Sword': 'broken_sword', + 'Latest: Prescription': 'prescription', + 'Latest: Eyeball Frog': 'eyeball_frog', + 'Latest: Eyedrops': 'eyedrops', + 'Latest: Claim Check': 'claim_check'}, + 'tooltip':'''\ + Select the latest item that will appear in the adult trade sequence. + ''' + }), Setting_Info('logic_man_on_roof', bool, 1, True, { 'help': '''\ diff --git a/version.py b/version.py index 7543f31ac..41cca5405 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.20.1 f.LUM' +__version__ = '2.20.2 f.LUM' From 9ca67c21324e5ec50e7b5d54a97e1557ada741be Mon Sep 17 00:00:00 2001 From: AmazingAmpharos Date: Sat, 29 Sep 2018 15:56:43 -0500 Subject: [PATCH 615/755] Typo fixes Fix a few minor errors in the logic that were typographical in nature. --- Rules.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Rules.py b/Rules.py index 2724ce35c..890375359 100644 --- a/Rules.py +++ b/Rules.py @@ -460,7 +460,7 @@ def dung_rules_dcmq(world): set_rule(world.get_entrance('Dodongos Cavern Bomb Drop'), lambda state: state.has_explosives()) set_rule(world.get_location('Dodongos Cavern MQ Compass Chest'), lambda state: state.is_adult() or state.can_child_attack() or state.has_nuts()) set_rule(world.get_location('Dodongos Cavern MQ Torch Puzzle Room Chest'), lambda state: state.can_blast_or_smash() or state.has_sticks() or state.can_use('Dins Fire') or (state.is_adult() and (world.logic_dc_jump or state.has('Hover Boots') or state.has('Progressive Hookshot')))) - set_rule(world.get_location('Dodongos Cavern MQ Larva Room Chest'), lambda state: (state.has_sticks() and (state.has_explosives or state.has('Progressive Strength Upgrade'))) or state.has_fire_source()) + set_rule(world.get_location('Dodongos Cavern MQ Larva Room Chest'), lambda state: (state.has_sticks() and (state.has_explosives() or state.has('Progressive Strength Upgrade'))) or state.has_fire_source()) set_rule(world.get_location('Dodongos Cavern MQ Bomb Bag Chest'), lambda state: state.is_adult() or (state.has_slingshot() and (state.has_sticks() or state.can_use('Dins Fire') or state.has_explosives()))) set_rule(world.get_location('DC MQ Deku Scrub Deku Sticks'), lambda state: state.can_stun_deku()) set_rule(world.get_location('DC MQ Deku Scrub Deku Seeds'), lambda state: state.can_stun_deku()) @@ -528,7 +528,6 @@ def dung_rules_fotmq(world): set_rule(world.get_entrance('Forest Temple Lobby Locked Door'), lambda state: state.has('Small Key (Forest Temple)', 1)) set_rule(world.get_entrance('Forest Temple West Eye Switch'), lambda state: state.can_use('Bow')) set_rule(world.get_entrance('Forest Temple East Eye Switch'), lambda state: state.can_use('Bow')) - set_rule(world.get_entrance('Forest Temple Block Puzzle Solve'), lambda state: (state.has_bombchus() and world.logic_tricks) or state.has('Progressive Strength Upgrade')) set_rule(world.get_entrance('Forest Temple Block Puzzle Solve'), lambda state: (state.has_bombchus() and world.logic_tricks) or state.has('Progressive Strength Upgrade') or state.can_use('Hover Boots')) set_rule(world.get_entrance('Forest Temple Twisted Hall'), lambda state: state.has('Small Key (Forest Temple)', 4)) set_rule(world.get_entrance('Forest Temple Well Connection'), lambda state: state.can_use('Iron Boots') or state.can_use('Longshot') or state.has('Progressive Scale', 2)) From 411761b6ec70c9215d630cf45792b31fd7a8efbd Mon Sep 17 00:00:00 2001 From: AmazingAmpharos Date: Sat, 29 Sep 2018 16:57:29 -0500 Subject: [PATCH 616/755] Remove misc wonder text, adjust chest size flag This will remove the miscellaneous Wonder Text actor from Gerudo Training Grounds vanilla. In general, I cleaned up the Wonder Text removal code and removed a ton of needless stuff I was doing from back when I was handling that in a worse way. A chest in Ganon's Castle vanilla was moved by a small amount to make it possible to open if it was upsized by a randomizer flag. I made a subtle change to only reposition the chest if that flag is in use. The check was already present anyway so this is slightly more efficient and it keeps the dungeon slightly more "pure" for the vast majority of the time that flag is not in use. Todo: look into the need to reposition that chest in Ganon's Castle MQ. I also removed some commented out bit flag setting and improved the comments on the flags that remain. Different code that reworks how Navi prompts work (they're always c-up options, never forced interrupts) made those bit flags needless, and those bit flags caused problems with MQ. --- Patches.py | 79 +++++++++++------------------------------------------- 1 file changed, 15 insertions(+), 64 deletions(-) diff --git a/Patches.py b/Patches.py index f88b9941b..9ac06e098 100644 --- a/Patches.py +++ b/Patches.py @@ -748,41 +748,10 @@ def patch_rom(world, rom): for address in Suns_scenes: rom.write_byte(address,0x01) - # Remove forcible text triggers - Wonder_text = [0x27C00C6, 0x27C00D6, 0x27C00E6, 0x27C00F6, 0x27C0106, 0x27C0116, 0x27C0126, 0x27C0136] - for address in Wonder_text: - rom.write_byte(address, 0x02) - rom.write_byte(0x27CE08A, 0x09) - rom.write_byte(0x27CE09A, 0x0F) - Wonder_text = [0x288707A, 0x288708A, 0x288709A, 0x289707A, 0x28C713E, 0x28D91C6] - for address in Wonder_text: - rom.write_byte(address, 0x0C) - Wonder_text = [0x28A60FE, 0x28AE08E, 0x28B917E, 0x28BF172, 0x28BF182, 0x28BF192] - for address in Wonder_text: - rom.write_byte(address, 0x0D) - rom.write_byte(0x28A114E, 0x0E) - rom.write_byte(0x28A610E, 0x0E) - Wonder_text = [0x9367F6, 0x93673D, 0x93679D] - for address in Wonder_text: - rom.write_byte(address, 0x08) - Wonder_text = [0x289707B, 0x28AE08F, 0x28C713F] - for address in Wonder_text: - rom.write_byte(address, 0xAF) - rom.write_byte(0x28A114F, 0x6F) - rom.write_byte(0x28B917F, 0x6F) - rom.write_byte(0x28A60FF, 0xEF) - rom.write_byte(0x28D91C7, 0xEF) - Wonder_text = [0x28A610F, 0x28BF173, 0x28BF183, 0x28BF193] - for address in Wonder_text: - rom.write_byte(address, 0x2F) - Wonder_text = [0x27CE08B, 0x27C00C7, 0x27C00D7, 0x27C0117, 0x27C0127] - for address in Wonder_text: - rom.write_byte(address, 0x3D) - rom.write_byte(0x27C00E7, 0x7D) - rom.write_byte(0x27C00F7, 0x7D) - rom.write_byte(0x27C0107, 0xBD) - rom.write_byte(0x27C0137, 0xBD) - Wonder_text = [0x27C00BC, 0x27C00CC, 0x27C00DC, 0x27C00EC, 0x27C00FC, 0x27C010C, 0x27C011C, 0x27C012C, 0x27CE080, 0x27CE090, 0x2887070, 0x2887080, 0x2887090, 0x2897070, 0x28C7134, 0x28D91BC, 0x28A60F4, 0x28AE084, 0x28B9174, 0x28BF168, 0x28BF178, 0x28BF188, 0x28A1144, 0x28A6104] + # Remove disruptive text from Gerudo Training Grounds and early Shadow Temple (vanilla) + Wonder_text = [0x27C00BC, 0x27C00CC, 0x27C00DC, 0x27C00EC, 0x27C00FC, 0x27C010C, 0x27C011C, 0x27C012C, 0x27CE080, + 0x27CE090, 0x2887070, 0x2887080, 0x2887090, 0x2897070, 0x28C7134, 0x28D91BC, 0x28A60F4, 0x28AE084, + 0x28B9174, 0x28BF168, 0x28BF178, 0x28BF188, 0x28A1144, 0x28A6104, 0x28D0094] for address in Wonder_text: rom.write_byte(address, 0xFE) @@ -854,32 +823,15 @@ def write_save_table(rom): # Initial Save Data write_bits_to_save(0x003F, 0x02) # Some Biggoron's Sword flag? - #write_bits_to_save(0x00D4 + 0x00 * 0x1C + 0x04 + 0x0, 0x80) # Deku tree switch flag (navi text?) - #write_bits_to_save(0x00D4 + 0x00 * 0x1C + 0x04 + 0x1, 0x02) # Deku tree switch flag (navi text?) - #write_bits_to_save(0x00D4 + 0x00 * 0x1C + 0x04 + 0x2, 0x80) # Deku tree switch flag (navi text?) - #write_bits_to_save(0x00D4 + 0x00 * 0x1C + 0x04 + 0x2, 0x04) # Deku tree switch flag (navi text?) - #write_bits_to_save(0x00D4 + 0x01 * 0x1C + 0x04 + 0x2, 0x40) # Dodongo's Cavern switch flag (navi text?) - #write_bits_to_save(0x00D4 + 0x01 * 0x1C + 0x04 + 0x2, 0x08) # Dodongo's Cavern switch flag (navi text?) - #write_bits_to_save(0x00D4 + 0x01 * 0x1C + 0x04 + 0x2, 0x01) # Dodongo's Cavern switch flag (navi text?) - #write_bits_to_save(0x00D4 + 0x02 * 0x1C + 0x04 + 0x0, 0x08) # Inside Jabu-Jabu's Belly switch flag (ruto?) - #write_bits_to_save(0x00D4 + 0x02 * 0x1C + 0x04 + 0x0, 0x04) # Inside Jabu-Jabu's Belly switch flag (ruto?) - #write_bits_to_save(0x00D4 + 0x02 * 0x1C + 0x04 + 0x0, 0x02) # Inside Jabu-Jabu's Belly switch flag (ruto?) - #write_bits_to_save(0x00D4 + 0x02 * 0x1C + 0x04 + 0x0, 0x01) # Inside Jabu-Jabu's Belly switch flag (ruto?) - #write_bits_to_save(0x00D4 + 0x02 * 0x1C + 0x04 + 0x1, 0x01) # Inside Jabu-Jabu's Belly switch flag (ruto?) - write_bits_to_save(0x00D4 + 0x03 * 0x1C + 0x04 + 0x0, 0x08) # Forest Temple switch flag (poes?) - #write_bits_to_save(0x00D4 + 0x03 * 0x1C + 0x04 + 0x0, 0x01) # Forest Temple switch flag (Poe Sisters cutscene) - #write_bits_to_save(0x00D4 + 0x03 * 0x1C + 0x04 + 0x2, 0x02) # Forest Temple switch flag (poes?) - #write_bits_to_save(0x00D4 + 0x03 * 0x1C + 0x04 + 0x2, 0x01) # Forest Temple switch flag (poes?) - #write_bits_to_save(0x00D4 + 0x04 * 0x1C + 0x04 + 0x1, 0x08) # Fire Temple switch flag (First locked door?) - write_bits_to_save(0x00D4 + 0x05 * 0x1C + 0x04 + 0x1, 0x01) # Water temple switch flag (navi text?) - #write_bits_to_save(0x00D4 + 0x0B * 0x1C + 0x04 + 0x2, 0x01) # Gerudo Training Ground switch flag (command text?) - write_bits_to_save(0x00D4 + 0x51 * 0x1C + 0x04 + 0x2, 0x08) # Hyrule Field switch flag (???) - write_bits_to_save(0x00D4 + 0x55 * 0x1C + 0x04 + 0x0, 0x80) # Kokiri Forest switch flag (???) - write_bits_to_save(0x00D4 + 0x56 * 0x1C + 0x04 + 0x2, 0x40) # Sacred Forest Meadow switch flag (???) - write_bits_to_save(0x00D4 + 0x5B * 0x1C + 0x04 + 0x2, 0x01) # Lost Woods switch flag (???) - write_bits_to_save(0x00D4 + 0x5B * 0x1C + 0x04 + 0x3, 0x80) # Lost Woods switch flag (???) - write_bits_to_save(0x00D4 + 0x5C * 0x1C + 0x04 + 0x0, 0x80) # Desert Colossus switch flag (???) - write_bits_to_save(0x00D4 + 0x5F * 0x1C + 0x04 + 0x3, 0x20) # Hyrule Castle switch flag (???) + write_bits_to_save(0x00D4 + 0x03 * 0x1C + 0x04 + 0x0, 0x08) # Forest Temple switch flag (Poe Sisters cutscene) + write_bits_to_save(0x00D4 + 0x05 * 0x1C + 0x04 + 0x1, 0x01) # Water temple switch flag (Ruto) + write_bits_to_save(0x00D4 + 0x51 * 0x1C + 0x04 + 0x2, 0x08) # Hyrule Field switch flag (Owl) + write_bits_to_save(0x00D4 + 0x55 * 0x1C + 0x04 + 0x0, 0x80) # Kokiri Forest switch flag (Owl) + write_bits_to_save(0x00D4 + 0x56 * 0x1C + 0x04 + 0x2, 0x40) # Sacred Forest Meadow switch flag (Owl) + write_bits_to_save(0x00D4 + 0x5B * 0x1C + 0x04 + 0x2, 0x01) # Lost Woods switch flag (Owl) + write_bits_to_save(0x00D4 + 0x5B * 0x1C + 0x04 + 0x3, 0x80) # Lost Woods switch flag (Owl) + write_bits_to_save(0x00D4 + 0x5C * 0x1C + 0x04 + 0x0, 0x80) # Desert Colossus switch flag (Owl) + write_bits_to_save(0x00D4 + 0x5F * 0x1C + 0x04 + 0x3, 0x20) # Hyrule Castle switch flag (Owl) write_bits_to_save(0x0ED4, 0x10) # "Met Deku Tree" write_bits_to_save(0x0ED5, 0x20) # "Deku Tree Opened Mouth" @@ -1378,9 +1330,8 @@ def write_save_table(rom): # Update chest type sizes if world.correct_chest_sizes: update_chest_sizes(rom, override_table) - - # Move Ganon's Castle's Zelda's Lullaby Chest back so is reachable if large - rom.write_int16(0x321B176, 0xFC40) # original 0xFC48 + # Move Ganon's Castle's Zelda's Lullaby Chest back so is reachable if large + rom.write_int16(0x321B176, 0xFC40) # original 0xFC48 # give dungeon items the correct messages message_patch_for_dungeon_items(messages, shop_items, world) From d01d2a6310bcee4a920087e9e3b7769f350918ee Mon Sep 17 00:00:00 2001 From: AmazingAmpharos Date: Sat, 29 Sep 2018 18:36:55 -0500 Subject: [PATCH 617/755] Don't make grave chest in DC MQ big A minor fix that avoids a really graphically awkward situation. --- Patches.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Patches.py b/Patches.py index 9ac06e098..5c380f76c 100644 --- a/Patches.py +++ b/Patches.py @@ -1766,6 +1766,9 @@ def get_chest(rom, actor_id, actor, scene): if None in [actor, scene, flags, item_id]: continue + # Do not change the size of the chest under the grave in Dodongo's Cavern MQ. + if scene == 1 and flags == 1: + continue itemType = 0 # Item animation From 0859ea1640561c9c2a92d5a9370ab0623ec9f38b Mon Sep 17 00:00:00 2001 From: Raizuto Date: Sun, 30 Sep 2018 16:56:34 -0500 Subject: [PATCH 618/755] Hint-Grammar-Fix --- HintList.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HintList.py b/HintList.py index b7dc29715..17af2819f 100644 --- a/HintList.py +++ b/HintList.py @@ -173,7 +173,7 @@ def getHintGroup(group, world): 'Heart Piece Grave Chest': ("in a grave playing #Sun's Song# spawns", None, 'location'), 'Goron City Leftmost Maze Chest': ("in #Goron City# the hammer unlocks", None, 'location'), 'GS Hyrule Castle Grotto': ("a #storm near the castle# reveals", None, 'location'), - 'GS Hyrule Field Near Gerudo Valley': ("buried near near #the valley# a spider holds", None, 'location'), + 'GS Hyrule Field Near Gerudo Valley': ("buried near #the valley# a spider holds", None, 'location'), 'GS Zora\'s Fountain Hidden Cave': ("a spider high above the #icy waters# holds", None, 'location'), 'Forest Temple Floormaster Chest': ("deep in #the forest#, shadows guard a chest containing", "a Floormaster in #Forest Temple# guards", 'location'), 'Fire Temple Scarecrow Chest': ("high in the #Fire Temple#, Pierre hid", None, 'location'), From 7b0819034f09b3913a99788a79c07987d33d1105 Mon Sep 17 00:00:00 2001 From: Nick Langille Date: Mon, 1 Oct 2018 00:07:42 -0400 Subject: [PATCH 619/755] Reduce padding in dungeon display --- ASM/build/asm_symbols.txt | 74 +- ASM/build/bundle.o | Bin 10168 -> 10148 bytes ASM/build/c_symbols.txt | 8 +- ASM/c/dungeon_info.c | 2 +- data/rom_patch.txt | 23939 ++++++++++++++++++------------------ data/symbols.json | 64 +- 6 files changed, 12031 insertions(+), 12056 deletions(-) diff --git a/ASM/build/asm_symbols.txt b/ASM/build/asm_symbols.txt index 65e47ca59..56e963714 100644 --- a/ASM/build/asm_symbols.txt +++ b/ASM/build/asm_symbols.txt @@ -1022,45 +1022,45 @@ 80405720 file_init,00000044 80405764 c_init,0000002C 80405790 c_after_game_state_update,00000088 -80405818 draw_dungeon_info,000009CC -804061E4 text_init,0000002C -80406210 text_print,000000A8 -804062B8 text_flush,00000148 -8040640C .byt:0010 -8040640C font_sprite -8040641C .byt:0010 -8040641C quest_items_sprite -8040642C .byt:0010 -8040642C medals_sprite -8040643C .byt:0010 -8040643C stones_sprite -8040644C .byt:000E -8040644C cfg_dungeon_rewards -8040645C .byt:0012 -8040645C medal_colors -80406470 .byt:009C -80406470 dungeons +80405818 draw_dungeon_info,000009B8 +804061D0 text_init,0000002C +804061FC text_print,000000A8 +804062A4 text_flush,00000148 +804063F8 .byt:0010 +804063F8 font_sprite +80406408 .byt:0010 +80406408 quest_items_sprite +80406418 .byt:0010 +80406418 medals_sprite +80406428 .byt:0010 +80406428 stones_sprite +80406438 .byt:000E +80406438 cfg_dungeon_rewards +80406448 .byt:0012 +80406448 medal_colors +8040645C .byt:009C +8040645C dungeons +804064F8 .byt:0004 +804064F8 cfg_dungeon_info_enable +804064FC .byt:0004 +804064FC dungeon_count +80406500 .byt:0004 +80406500 heap_next +80406504 .byt:0004 +80406504 cfg_dungeon_info_reward_need_altar +80406508 .byt:0004 +80406508 cfg_dungeon_info_reward_need_compass 8040650C .byt:0004 -8040650C cfg_dungeon_info_enable +8040650C cfg_dungeon_info_mq_need_map 80406510 .byt:0004 -80406510 dungeon_count -80406514 .byt:0004 -80406514 heap_next -80406518 .byt:0004 -80406518 cfg_dungeon_info_reward_need_altar -8040651C .byt:0004 -8040651C cfg_dungeon_info_reward_need_compass -80406520 .byt:0004 -80406520 cfg_dungeon_info_mq_need_map -80406524 .byt:0004 -80406524 cfg_dungeon_info_mq_enable -80406530 .byt:0010 -80406530 setup_db -80406540 .byt:000E -80406540 cfg_dungeon_is_mq -8040654E .byt:14C8 -8040654E FONT_TEXTURE -80407A16 .byt:85EA +80406510 cfg_dungeon_info_mq_enable +8040651C .byt:0010 +8040651C setup_db +8040652C .byt:000E +8040652C cfg_dungeon_is_mq +8040653A .byt:14C8 +8040653A FONT_TEXTURE +80407A02 .byt:85FE 80480000 DUMMY_ACTOR 80500000 C_HEAP  \ No newline at end of file diff --git a/ASM/build/bundle.o b/ASM/build/bundle.o index 4a4167c9ddeeced5a576368dbdc476484cbbdf5a..9ef076e59f6b057bdc6dcd2e52c26dee9b0d696f 100644 GIT binary patch delta 1864 zcma)6O=w(I6h3!4X(sdDym#N5iJ3`SGvoZcQ3p*h)e1u#CQ%9olh#4AD0C&W+HVk*@6w4zjdJQZ zemU+DU645xj;pIyUVN{*)}%P2wyZ#WrtVvdXOd6S8#=v$^radlc)t)K2?J?-Q{?}p zR@2Vs9+o~Jo9%b%MClsI(lq&1p9qE~^_^ElN*y_4r~f^#>;~RX9*pHV?+PLWY#1763`66LZ|FwsZkX31d)*}7G6FpaqIxr9tr?h~> z22jwc8s35yaF(=y!-n`AhQho(Jz2+GnKLkXhlY2A*kUKY8i8Xi;F2b~F)iTQTEIP} z6Wy#9a4|W4J1z{fF&7i$&fRYfZ`bf(gx`+)gW(w??tR=pkI3CO0>+uk&QM6M7=gz+ zQLbtMxn?j%$%3-0jY=5eM<{#vhl#p!6Or*9B9HMFBI6zWF);2^i+tXI^CEBTAu@(@ zHYSZRZ$`fbZ(a*~=d`egk&i`D6rD_PJRllIp7#h5b-bSqMq`Zqn8vU&34Ypa zK!{(jU)8VIUohtlbG~lyO@m=DxgJt5RJ3;SV5o{ac*r1322(s}@ZceBn$W?N4jDRR2(;gM_qK!##e?qA zckemh_nmXEv^Kpx-3*MwA2Xl#8(+vq|975QGKp3y6d_Y|G8Ot%mZK*OQ_e@P9p9$+ zMfQhpDMenqPM1Vxyh8o58~w`oP%aDv#$~xYa4lKLT_xk*bt3vir0bJJg&pddEz>Fa zV&J+XI&@W}L0$%VL{?*g@w05iMvV!%8Os}A%l+8&g~Wdpvx=e!ikUJwyq_^iz{C(f z3G!dzo3n!SliV$`xQ#}IXsApgca9Pzp9s}vCPBS&)q2zOUuo2okF3lj($ADm*1b|3 z>9>eDov4{L7uwnLzpi&ngXqf_W!*$Q?6E>db?W2A|j)=hcOxM@N5$n@oz2Bm@U%K44UcM>b%=Tr#Wv4k@J>`-e7zek?~E<)6hJ1qH}!S zLd1E^0x27attw&*hS-3W(m12>m=dzam5>F4XHjRBbsh|cbvK9t2v`sfmqELN*LApUo3td`I(P zQf$Q5MjVS9uVG_F6*@zz&_So1=%7;;aNbb@j_%aCtn+4-fCEE3dIv_rx|dAl6Xmk`i$Hl@S-txC1w#1Y8(n0k@zE-J%k3*OY(@qujaM)^&S24+gja zcVF|f0nYnP=N;nyc|`7?T7Vq^3mD=;v7`iqHYS!;p}4Pz#Hz+H!aQO_@rZ5w2Qz+v z$UGe)kMTo9#=H12Fy5mY`MmKHQI Date: Mon, 1 Oct 2018 00:09:24 -0400 Subject: [PATCH 620/755] Rebuild ASM --- ASM/build/asm_symbols.txt | 130 +-- data/rom_patch.txt | 1770 +++++++++++++++++++------------------ data/symbols.json | 4 +- 3 files changed, 959 insertions(+), 945 deletions(-) diff --git a/ASM/build/asm_symbols.txt b/ASM/build/asm_symbols.txt index 56e963714..cd7321d9e 100644 --- a/ASM/build/asm_symbols.txt +++ b/ASM/build/asm_symbols.txt @@ -928,50 +928,36 @@ 804031FC Deku_Set_Sold_Out 80403220 @@continue 80403254 before_game_state_update -80403294 @@loop -804032EC @@no_pending_item -80403300 after_game_state_update -80403324 item_menu_description_id_periodic -80403338 @@item_menu_description_id_return_00000000 -80403340 item_menu_description_id_immediate_1 -80403354 @@item_menu_description_id_return_00000001 -8040335C item_menu_description_id_immediate_2 -80403370 @@item_menu_description_id_return_00000002 -80403378 item_menu_description_id_immediate_3 -8040338C @@item_menu_description_id_return_00000003 -80403394 before_time_travel -804033C4 after_time_travel -80403400 @@going_back -80403408 @@done -80403438 update_c_button -80403464 @@return -8040346C after_going_forward -804034A8 @@no_init -804034B8 after_going_back -804034E8 @@not_swordless -804034F0 initialize_adult -80403518 @@no_mirror_shield -80403558 init_adult_button -80403584 @@empty -8040358C @@loop -804035E4 @@set_empty -804035F0 @@return -804035F8 .byt:0001 -804035F8 ADULT_INIT_ITEMS -804035F9 .byt:0001 -804035FA .byt:0001 -804035FB .byt:0001 -804035FC .byt:0001 -804035FD .byt:0001 -804035FE .byt:0001 -804035FF .byt:0001 -80403600 .byt:0001 -80403604 .byt:0001 -80403604 ADULT_VALID_ITEMS -80403605 .byt:0001 -80403606 .byt:0001 -80403607 .byt:0001 +804032A4 @@loop +804032FC @@no_pending_item +80403310 after_game_state_update +80403334 item_menu_description_id_periodic +80403348 @@item_menu_description_id_return_00000000 +80403350 item_menu_description_id_immediate_1 +80403364 @@item_menu_description_id_return_00000001 +8040336C item_menu_description_id_immediate_2 +80403380 @@item_menu_description_id_return_00000002 +80403388 item_menu_description_id_immediate_3 +8040339C @@item_menu_description_id_return_00000003 +804033A4 before_time_travel +804033D4 after_time_travel +80403410 @@going_back +80403418 @@done +80403448 update_c_button +80403474 @@return +8040347C after_going_forward +804034B8 @@no_init +804034C8 after_going_back +804034F8 @@not_swordless +80403500 initialize_adult +80403528 @@no_mirror_shield +80403568 init_adult_button +80403594 @@empty +8040359C @@loop +804035F4 @@set_empty +80403600 @@return 80403608 .byt:0001 +80403608 ADULT_INIT_ITEMS 80403609 .byt:0001 8040360A .byt:0001 8040360B .byt:0001 @@ -980,10 +966,8 @@ 8040360E .byt:0001 8040360F .byt:0001 80403610 .byt:0001 -80403611 .byt:0001 -80403612 .byt:0001 -80403613 .byt:0001 80403614 .byt:0001 +80403614 ADULT_VALID_ITEMS 80403615 .byt:0001 80403616 .byt:0001 80403617 .byt:0001 @@ -991,25 +975,41 @@ 80403619 .byt:0001 8040361A .byt:0001 8040361B .byt:0001 -8040361C suns_song_fix_event -80403650 @@child -80403660 @@return -80403668 suns_song_fix -8040367C @@check_suns_status -80403698 @@disable_suns -804036A0 @@return -804036A8 warp_song_fix -804036D4 @@child -804036E4 @@return -804036EC Check_Has_Epona_Song -80403738 @@return -80403740 save_scarecrow_song -80403784 @@copy_song -8040378C write_initial_save -80403798 @@save_data_loop -804037C8 @@overwrite_type -804037D0 @@return -804037D8 .byt:0878 +8040361C .byt:0001 +8040361D .byt:0001 +8040361E .byt:0001 +8040361F .byt:0001 +80403620 .byt:0001 +80403621 .byt:0001 +80403622 .byt:0001 +80403623 .byt:0001 +80403624 .byt:0001 +80403625 .byt:0001 +80403626 .byt:0001 +80403627 .byt:0001 +80403628 .byt:0001 +80403629 .byt:0001 +8040362A .byt:0001 +8040362B .byt:0001 +8040362C suns_song_fix_event +80403660 @@child +80403670 @@return +80403678 suns_song_fix +8040368C @@check_suns_status +804036A8 @@disable_suns +804036B0 @@return +804036B8 warp_song_fix +804036E4 @@child +804036F4 @@return +804036FC Check_Has_Epona_Song +80403748 @@return +80403750 save_scarecrow_song +80403794 @@copy_song +8040379C write_initial_save +804037A8 @@save_data_loop +804037D8 @@overwrite_type +804037E0 @@return +804037E8 .byt:0868 80405000 disp_buf_init,00000018 80405018 sprite_bytes_per_tile,00000028 80405040 sprite_bytes,00000030 diff --git a/data/rom_patch.txt b/data/rom_patch.txt index 0abcef0f3..56a7dd2e8 100644 --- a/data/rom_patch.txt +++ b/data/rom_patch.txt @@ -407,7 +407,7 @@ a98c33,db a9e838,8 a9e839,10 a9e83a,d -a9e83b,bb +a9e83b,bf ac9abc,c ac9abd,10 ac9abe,b @@ -433,11 +433,11 @@ acce9b,0 ae59e0,8 ae59e1,10 ae59e2,c -ae59e3,f1 +ae59e3,f5 ae5df0,c ae5df1,10 ae5df2,d -ae5df3,9a +ae5df3,9e ae5df8,c ae5df9,10 ae5dfa,b @@ -463,7 +463,7 @@ b0640f,2 b06c2c,c b06c2d,10 b06c2e,d -b06c2f,e3 +b06c2f,e7 b06c31,28 b06c33,20 b16b50,c @@ -476,7 +476,7 @@ b16b57,0 b16b60,c b16b61,10 b16b62,c -b16b63,c0 +b16b63,c4 b16b64,0 b16b65,0 b16b66,0 @@ -515,14 +515,14 @@ b17bd3,0 b54b38,c b54b39,10 b54b3a,d -b54b3b,aa +b54b3b,ae b54e5c,c b54e5d,10 b54e5e,d -b54e5f,87 +b54e5f,8b b55a65,10 b55a66,d -b55a67,d0 +b55a67,d4 baed6c,0 baed6d,0 baed6f,0 @@ -532,14 +532,14 @@ bb77b7,0 bb7890,c bb7891,10 bb7892,c -bb7893,d0 +bb7893,d4 bb7894,0 bb7895,0 bb7897,0 bb7950,c bb7951,10 bb7952,c -bb7953,d7 +bb7953,db bb7954,0 bb7955,0 bb7957,0 @@ -552,14 +552,14 @@ bb7bff,0 bb7c3c,c bb7c3d,10 bb7c3e,c -bb7c3f,de +bb7c3f,e2 bb7c40,0 bb7c41,0 bb7c43,0 bb7c58,c bb7c59,10 bb7c5a,c -bb7c5b,c9 +bb7c5b,cd bb7c5c,0 bb7c5d,0 bb7c5f,0 @@ -656,7 +656,7 @@ c898cb,2a cb6860,c cb6861,10 cb6862,c -cb6863,e5 +cb6863,e9 d12f78,34 d12f79,f d12f7b,0 @@ -4597,20 +4597,21 @@ ec9ce7,7a 3483269,8 348326b,20 348326c,15 -348326f,1f +348326f,23 3483274,3c -3483275,9 +3483275,a 3483276,80 -3483277,40 +3483277,1d 3483278,25 -3483279,29 -348327a,20 -348327b,1b -348327c,34 -348327d,a -348327f,ff -3483280,a1 -3483281,2a +3483279,4a +348327a,84 +348327b,a0 +348327c,8d +348327d,48 +348327e,7 +348327f,94 +3483280,15 +3483283,1e 3483284,3c 3483285,9 3483286,80 @@ -4618,926 +4619,939 @@ ec9ce7,7a 3483288,25 3483289,29 348328a,20 -348328b,18 -348328c,24 +348328b,1b +348328c,34 348328d,a -348328e,ff 348328f,ff -3483290,34 -3483291,c -3483293,3 -3483294,21 -3483295,4a -3483297,1 -3483298,11 -3483299,4c -348329b,14 -348329c,1 -348329d,2a -348329e,58 -348329f,20 -34832a0,81 -34832a1,68 -34832a4,11 -34832a6,ff -34832a7,fb -34832ac,3c -34832ad,9 -34832ae,80 -34832af,40 -34832b0,25 -34832b1,29 -34832b2,20 -34832b3,1b -34832b4,a1 -34832b5,2a -34832b8,3c -34832b9,9 -34832ba,80 -34832bb,1e -34832bc,25 -34832bd,29 -34832be,89 -34832bf,84 -34832c0,34 -34832c1,a -34832c3,1 -34832c4,a5 +3483290,a1 +3483291,2a +3483294,3c +3483295,9 +3483296,80 +3483297,40 +3483298,25 +3483299,29 +348329a,20 +348329b,18 +348329c,24 +348329d,a +348329e,ff +348329f,ff +34832a0,34 +34832a1,c +34832a3,3 +34832a4,21 +34832a5,4a +34832a7,1 +34832a8,11 +34832a9,4c +34832ab,14 +34832ac,1 +34832ad,2a +34832ae,58 +34832af,20 +34832b0,81 +34832b1,68 +34832b4,11 +34832b6,ff +34832b7,fb +34832bc,3c +34832bd,9 +34832be,80 +34832bf,40 +34832c0,25 +34832c1,29 +34832c2,20 +34832c3,1b +34832c4,a1 34832c5,2a 34832c8,3c 34832c9,9 34832ca,80 -34832cb,48 -34832cc,34 -34832cd,a -34832cf,1 -34832d0,ad -34832d1,2a -34832d2,1 -34832d3,30 -34832d4,3c -34832d5,a -34832d6,80 -34832d7,1e -34832d8,25 -34832d9,4a -34832da,aa -34832db,30 -34832dc,a1 -34832dd,48 -34832de,4 -34832df,24 +34832cb,1e +34832cc,25 +34832cd,29 +34832ce,89 +34832cf,84 +34832d0,34 +34832d1,a +34832d3,1 +34832d4,a5 +34832d5,2a +34832d8,3c +34832d9,9 +34832da,80 +34832db,48 +34832dc,34 +34832dd,a +34832df,1 34832e0,ad -34832e1,49 -34832e2,4 -34832e3,28 -34832e4,c -34832e5,10 -34832e6,a -34832e7,e8 -34832ec,8e -34832ed,19 -34832ef,4 -34832f0,2 -34832f2,20 -34832f3,25 -34832f4,8f -34832f5,bf -34832f7,10 -34832f8,3 -34832f9,e0 -34832fb,8 -34832fc,27 -34832fd,bd -34832ff,18 -3483300,27 -3483301,bd -3483302,ff -3483303,e8 -3483304,af +34832e1,2a +34832e2,1 +34832e3,30 +34832e4,3c +34832e5,a +34832e6,80 +34832e7,1e +34832e8,25 +34832e9,4a +34832ea,aa +34832eb,30 +34832ec,a1 +34832ed,48 +34832ee,4 +34832ef,24 +34832f0,ad +34832f1,49 +34832f2,4 +34832f3,28 +34832f4,c +34832f5,10 +34832f6,a +34832f7,e8 +34832fc,8e +34832fd,19 +34832ff,4 +3483300,2 +3483302,20 +3483303,25 +3483304,8f 3483305,bf 3483307,10 -3483308,c -3483309,10 -348330a,15 -348330b,e4 -3483310,3c -3483311,e -3483312,80 -3483313,12 -3483314,91 -3483315,ce -3483316,12 -3483317,12 -3483318,8f -3483319,bf -348331b,10 -348331c,3 -348331d,e0 -348331f,8 -3483320,27 -3483321,bd -3483323,18 -3483324,93 -3483325,19 -3483327,74 -3483328,34 -3483329,1 -348332b,ff -348332c,17 -348332d,21 -348332f,2 -3483334,34 +3483308,3 +3483309,e0 +348330b,8 +348330c,27 +348330d,bd +348330f,18 +3483310,27 +3483311,bd +3483312,ff +3483313,e8 +3483314,af +3483315,bf +3483317,10 +3483318,c +3483319,10 +348331a,15 +348331b,e4 +3483320,3c +3483321,e +3483322,80 +3483323,12 +3483324,91 +3483325,ce +3483326,12 +3483327,12 +3483328,8f +3483329,bf +348332b,10 +348332c,3 +348332d,e0 +348332f,8 +3483330,27 +3483331,bd +3483333,18 +3483334,93 3483335,19 -3483337,2c -3483338,3 -3483339,e0 -348333b,8 -348333c,a7 -348333d,b9 -348333f,9a -3483340,93 -3483341,2c -3483343,74 +3483337,74 +3483338,34 +3483339,1 +348333b,ff +348333c,17 +348333d,21 +348333f,2 3483344,34 -3483345,1 -3483347,ff -3483348,15 -3483349,81 -348334b,2 -3483350,34 -3483351,c -3483353,2c -3483354,3 -3483355,e0 -3483357,8 -348335c,91 -348335d,ae -348335f,74 +3483345,19 +3483347,2c +3483348,3 +3483349,e0 +348334b,8 +348334c,a7 +348334d,b9 +348334f,9a +3483350,93 +3483351,2c +3483353,74 +3483354,34 +3483355,1 +3483357,ff +3483358,15 +3483359,81 +348335b,2 3483360,34 -3483361,1 -3483363,ff -3483364,15 -3483365,c1 -3483367,2 -348336c,34 -348336d,e -348336f,2c -3483370,3 -3483371,e0 -3483373,8 -3483374,a7 -3483375,ae -3483377,9a -3483378,91 -3483379,cf -348337b,74 +3483361,c +3483363,2c +3483364,3 +3483365,e0 +3483367,8 +348336c,91 +348336d,ae +348336f,74 +3483370,34 +3483371,1 +3483373,ff +3483374,15 +3483375,c1 +3483377,2 348337c,34 -348337d,1 -348337f,ff -3483380,15 -3483381,e1 -3483383,2 -3483388,34 -3483389,f -348338b,2c -348338c,3 -348338d,e0 -348338f,8 -3483390,a7 -3483391,af -3483393,9a -3483394,3c -3483395,8 -3483396,80 -3483397,40 -3483398,25 -3483399,8 -348339a,20 -348339b,1c -348339c,8e -348339d,9 -348339f,68 -34833a0,ad -34833a1,9 -34833a4,8e -34833a5,9 -34833a7,6c -34833a8,ad -34833a9,9 -34833ab,4 -34833ac,96 +348337d,e +348337f,2c +3483380,3 +3483381,e0 +3483383,8 +3483384,a7 +3483385,ae +3483387,9a +3483388,91 +3483389,cf +348338b,74 +348338c,34 +348338d,1 +348338f,ff +3483390,15 +3483391,e1 +3483393,2 +3483398,34 +3483399,f +348339b,2c +348339c,3 +348339d,e0 +348339f,8 +34833a0,a7 +34833a1,af +34833a3,9a +34833a4,3c +34833a5,8 +34833a6,80 +34833a7,40 +34833a8,25 +34833a9,8 +34833aa,20 +34833ab,1c +34833ac,8e 34833ad,9 -34833af,70 -34833b0,a5 +34833af,68 +34833b0,ad 34833b1,9 -34833b3,8 -34833b4,96 +34833b4,8e 34833b5,9 -34833b7,9c -34833b8,a5 +34833b7,6c +34833b8,ad 34833b9,9 -34833bb,a -34833bc,3 -34833bd,e0 -34833bf,8 -34833c0,8e -34833c1,e -34833c3,4 -34833c4,27 -34833c5,bd -34833c6,ff -34833c7,e0 -34833c8,af -34833c9,b0 -34833cb,10 -34833cc,af -34833cd,b1 -34833cf,14 -34833d0,af -34833d1,bf -34833d3,18 -34833d4,3c -34833d5,10 -34833d6,80 -34833d7,12 -34833d8,26 -34833d9,10 -34833da,a5 -34833db,d0 -34833dc,3c -34833dd,11 -34833de,80 -34833df,40 -34833e0,26 -34833e1,31 -34833e2,20 -34833e3,1c -34833e4,8e -34833e5,8 -34833e7,4 -34833e8,11 -34833eb,5 -34833f0,c -34833f1,10 -34833f2,d -34833f3,1b -34833f8,10 -34833fb,3 +34833bb,4 +34833bc,96 +34833bd,9 +34833bf,70 +34833c0,a5 +34833c1,9 +34833c3,8 +34833c4,96 +34833c5,9 +34833c7,9c +34833c8,a5 +34833c9,9 +34833cb,a +34833cc,3 +34833cd,e0 +34833cf,8 +34833d0,8e +34833d1,e +34833d3,4 +34833d4,27 +34833d5,bd +34833d6,ff +34833d7,e0 +34833d8,af +34833d9,b0 +34833db,10 +34833dc,af +34833dd,b1 +34833df,14 +34833e0,af +34833e1,bf +34833e3,18 +34833e4,3c +34833e5,10 +34833e6,80 +34833e7,12 +34833e8,26 +34833e9,10 +34833ea,a5 +34833eb,d0 +34833ec,3c +34833ed,11 +34833ee,80 +34833ef,40 +34833f0,26 +34833f1,31 +34833f2,20 +34833f3,1c +34833f4,8e +34833f5,8 +34833f7,4 +34833f8,11 +34833fb,5 3483400,c 3483401,10 3483402,d -3483403,2e -3483408,c -3483409,10 -348340a,d -348340b,e -348340c,34 -348340d,4 +3483403,1f +3483408,10 +348340b,3 3483410,c 3483411,10 3483412,d -3483413,e -3483414,34 -3483415,4 -3483417,1 +3483413,32 3483418,c 3483419,10 348341a,d -348341b,e +348341b,12 348341c,34 348341d,4 -348341f,2 -3483420,8f -3483421,b0 -3483423,10 -3483424,8f -3483425,b1 -3483427,14 -3483428,8f -3483429,bf -348342b,18 -348342c,27 -348342d,bd -348342f,20 -3483430,3 -3483431,e0 -3483433,8 -3483438,2 -3483439,4 -348343a,40 -348343b,21 -348343c,91 -348343d,9 -348343f,6c -3483440,34 -3483441,1 -3483443,ff -3483444,11 -3483445,21 -3483447,7 -348344c,2 +3483420,c +3483421,10 +3483422,d +3483423,12 +3483424,34 +3483425,4 +3483427,1 +3483428,c +3483429,10 +348342a,d +348342b,12 +348342c,34 +348342d,4 +348342f,2 +3483430,8f +3483431,b0 +3483433,10 +3483434,8f +3483435,b1 +3483437,14 +3483438,8f +3483439,bf +348343b,18 +348343c,27 +348343d,bd +348343f,20 +3483440,3 +3483441,e0 +3483443,8 +3483448,2 +3483449,4 +348344a,40 +348344b,21 +348344c,91 348344d,9 -348344e,48 -348344f,21 -3483450,91 -3483451,29 -3483453,74 -3483454,34 -3483455,1 -3483457,2c -3483458,11 -3483459,21 -348345b,2 -3483460,a1 -3483461,9 -3483463,69 -3483464,3 -3483465,e0 -3483467,8 -348346c,27 -348346d,bd -348346e,ff -348346f,e8 -3483470,af -3483471,bf -3483473,10 -3483474,8e -3483475,28 -3483478,ae -3483479,8 -348347b,40 -348347c,8e -348347d,28 -348347f,4 -3483480,ae -3483481,8 -3483483,44 -3483484,96 +348344f,6c +3483450,34 +3483451,1 +3483453,ff +3483454,11 +3483455,21 +3483457,7 +348345c,2 +348345d,9 +348345e,48 +348345f,21 +3483460,91 +3483461,29 +3483463,74 +3483464,34 +3483465,1 +3483467,2c +3483468,11 +3483469,21 +348346b,2 +3483470,a1 +3483471,9 +3483473,69 +3483474,3 +3483475,e0 +3483477,8 +348347c,27 +348347d,bd +348347e,ff +348347f,e8 +3483480,af +3483481,bf +3483483,10 +3483484,8e 3483485,28 -3483487,8 -3483488,a6 +3483488,ae 3483489,8 -348348b,48 -348348c,a2 -348348e,f -348348f,33 -3483490,92 +348348b,40 +348348c,8e +348348d,28 +348348f,4 +3483490,ae 3483491,8 -3483493,4a -3483494,34 -3483495,1 -3483497,ff -3483498,15 -3483499,1 -348349b,3 -34834a0,c -34834a1,10 -34834a2,d -34834a3,3c -34834a8,8f -34834a9,bf -34834ab,10 -34834ac,27 -34834ad,bd -34834af,18 -34834b0,3 -34834b1,e0 -34834b3,8 -34834b8,8e -34834b9,8 -34834bb,40 -34834bc,ae -34834bd,8 -34834bf,68 -34834c0,8e -34834c1,8 -34834c3,44 -34834c4,ae -34834c5,8 -34834c7,6c -34834c8,96 +3483493,44 +3483494,96 +3483495,28 +3483497,8 +3483498,a6 +3483499,8 +348349b,48 +348349c,a2 +348349e,f +348349f,33 +34834a0,92 +34834a1,8 +34834a3,4a +34834a4,34 +34834a5,1 +34834a7,ff +34834a8,15 +34834a9,1 +34834ab,3 +34834b0,c +34834b1,10 +34834b2,d +34834b3,40 +34834b8,8f +34834b9,bf +34834bb,10 +34834bc,27 +34834bd,bd +34834bf,18 +34834c0,3 +34834c1,e0 +34834c3,8 +34834c8,8e 34834c9,8 -34834cb,48 -34834cc,a6 +34834cb,40 +34834cc,ae 34834cd,8 -34834cf,70 -34834d0,92 +34834cf,68 +34834d0,8e 34834d1,8 -34834d3,68 -34834d4,34 -34834d5,1 -34834d7,ff -34834d8,15 -34834d9,1 -34834db,3 -34834e0,34 +34834d3,44 +34834d4,ae +34834d5,8 +34834d7,6c +34834d8,96 +34834d9,8 +34834db,48 +34834dc,a6 +34834dd,8 +34834df,70 +34834e0,92 34834e1,8 -34834e3,1 -34834e4,a2 -34834e5,8 -34834e6,f -34834e7,33 -34834e8,3 -34834e9,e0 -34834eb,8 -34834f0,27 -34834f1,bd -34834f2,ff -34834f3,e8 -34834f4,af -34834f5,bf -34834f7,10 -34834f8,96 -34834f9,8 -34834fb,9c -34834fc,31 -34834fd,8 -34834ff,40 -3483500,11 -3483503,5 +34834e3,68 +34834e4,34 +34834e5,1 +34834e7,ff +34834e8,15 +34834e9,1 +34834eb,3 +34834f0,34 +34834f1,8 +34834f3,1 +34834f4,a2 +34834f5,8 +34834f6,f +34834f7,33 +34834f8,3 +34834f9,e0 +34834fb,8 +3483500,27 +3483501,bd +3483502,ff +3483503,e8 +3483504,af +3483505,bf +3483507,10 3483508,96 3483509,8 -348350b,70 +348350b,9c 348350c,31 348350d,8 -348350e,ff -348350f,f -3483510,35 -3483511,8 -3483513,30 -3483514,a6 -3483515,8 -3483517,70 -3483518,92 -3483519,28 -348351b,1 -348351c,a2 +348350f,40 +3483510,11 +3483513,5 +3483518,96 +3483519,8 +348351b,70 +348351c,31 348351d,8 -348351f,69 -3483520,96 -3483521,28 -3483523,2 +348351e,ff +348351f,f +3483520,35 +3483521,8 +3483523,30 3483524,a6 3483525,8 -3483527,6a -3483528,8e +3483527,70 +3483528,92 3483529,28 -348352b,4 -348352c,ae +348352b,1 +348352c,a2 348352d,8 -348352f,6c -3483530,c -3483531,10 -3483532,d -3483533,56 -3483534,34 -3483535,4 -3483538,c -3483539,10 -348353a,d -348353b,56 -348353c,34 -348353d,4 -348353f,1 +348352f,69 +3483530,96 +3483531,28 +3483533,2 +3483534,a6 +3483535,8 +3483537,6a +3483538,8e +3483539,28 +348353b,4 +348353c,ae +348353d,8 +348353f,6c 3483540,c 3483541,10 3483542,d -3483543,56 +3483543,5a 3483544,34 3483545,4 -3483547,2 -3483548,8f -3483549,bf -348354b,10 -348354c,27 -348354d,bd -348354f,18 -3483550,3 -3483551,e0 -3483553,8 -3483558,2 -3483559,4 -348355a,40 -348355b,21 -348355c,3c -348355d,9 -348355e,80 -348355f,40 -3483560,25 -3483561,29 -3483562,36 -3483563,4 -3483564,91 -3483565,a -3483567,6c -3483568,34 -3483569,1 -348356b,ff -348356c,11 -348356d,41 -348356f,5 -3483574,1 -3483575,2a -3483576,48 -3483577,21 -3483578,91 -3483579,29 -348357c,15 -348357d,20 -348357f,1c -3483584,3c -3483585,9 -3483586,80 -3483587,40 -3483588,25 +3483548,c +3483549,10 +348354a,d +348354b,5a +348354c,34 +348354d,4 +348354f,1 +3483550,c +3483551,10 +3483552,d +3483553,5a +3483554,34 +3483555,4 +3483557,2 +3483558,8f +3483559,bf +348355b,10 +348355c,27 +348355d,bd +348355f,18 +3483560,3 +3483561,e0 +3483563,8 +3483568,2 +3483569,4 +348356a,40 +348356b,21 +348356c,3c +348356d,9 +348356e,80 +348356f,40 +3483570,25 +3483571,29 +3483572,36 +3483573,14 +3483574,91 +3483575,a +3483577,6c +3483578,34 +3483579,1 +348357b,ff +348357c,11 +348357d,41 +348357f,5 +3483584,1 +3483585,2a +3483586,48 +3483587,21 +3483588,91 3483589,29 -348358a,35 -348358b,f7 -348358c,25 -348358d,29 -348358f,1 -3483590,91 -3483591,2a -3483594,11 -3483595,40 -3483597,13 -348359c,2 -348359d,a -348359e,58 -348359f,21 +348358c,15 +348358d,20 +348358f,1c +3483594,3c +3483595,9 +3483596,80 +3483597,40 +3483598,25 +3483599,29 +348359a,36 +348359b,7 +348359c,25 +348359d,29 +348359f,1 34835a0,91 -34835a1,6b -34835a3,74 -34835a4,34 -34835a5,1 -34835a7,ff -34835a8,11 -34835a9,61 -34835aa,ff -34835ab,f8 -34835b0,92 -34835b1,c -34835b3,6c -34835b4,11 -34835b5,8a -34835b6,ff -34835b7,f5 -34835bc,92 -34835bd,c -34835bf,6d -34835c0,11 -34835c1,8a -34835c2,ff -34835c3,f2 -34835c8,92 -34835c9,c -34835cb,6e -34835cc,11 -34835cd,8a -34835ce,ff -34835cf,ef -34835d4,a1 -34835d5,b -34835d7,69 -34835d8,a1 -34835d9,a -34835db,6c -34835dc,10 -34835df,4 -34835e4,34 -34835e5,9 -34835e7,ff +34835a1,2a +34835a4,11 +34835a5,40 +34835a7,13 +34835ac,2 +34835ad,a +34835ae,58 +34835af,21 +34835b0,91 +34835b1,6b +34835b3,74 +34835b4,34 +34835b5,1 +34835b7,ff +34835b8,11 +34835b9,61 +34835ba,ff +34835bb,f8 +34835c0,92 +34835c1,c +34835c3,6c +34835c4,11 +34835c5,8a +34835c6,ff +34835c7,f5 +34835cc,92 +34835cd,c +34835cf,6d +34835d0,11 +34835d1,8a +34835d2,ff +34835d3,f2 +34835d8,92 +34835d9,c +34835db,6e +34835dc,11 +34835dd,8a +34835de,ff +34835df,ef +34835e4,a1 +34835e5,b +34835e7,69 34835e8,a1 -34835e9,9 -34835eb,69 -34835ec,a1 -34835ed,9 -34835ef,6c -34835f0,3 -34835f1,e0 -34835f3,8 -34835f8,7 +34835e9,a +34835eb,6c +34835ec,10 +34835ef,4 +34835f4,34 +34835f5,9 +34835f7,ff +34835f8,a1 34835f9,9 -34835fa,f -34835fb,2 -34835fc,3 -34835fd,1 -34835fe,d -34835ff,b -3483605,1 -3483606,1 -3483607,1 -3483608,1 -3483609,1 -348360b,1 -348360c,1 +34835fb,69 +34835fc,a1 +34835fd,9 +34835ff,6c +3483600,3 +3483601,e0 +3483603,8 +3483608,7 +3483609,9 +348360a,f +348360b,2 +348360c,3 348360d,1 -348360e,1 -348360f,1 -3483611,1 -3483613,1 -3483614,1 +348360e,d +348360f,b 3483615,1 3483616,1 3483617,1 3483618,1 3483619,1 -348361a,1 -348361d,33 -348361e,8 -348361f,21 -3483620,20 -3483621,f -3483623,47 -3483624,15 -3483625,ea -3483627,e -3483628,3c -3483629,2 -348362a,80 -348362b,12 -348362c,8c -348362d,42 -348362e,a5 -348362f,d4 -3483630,8e -3483631,6f -3483633,a4 -3483635,f -3483636,7a -3483637,3 -3483638,14 -3483639,40 -348363b,5 -348363c,34 -348363d,2 -348363e,48 -348363f,30 -3483640,15 -3483641,e2 -3483643,7 -3483648,24 -3483649,19 -348364b,3 -348364c,10 -348364f,4 -3483650,34 -3483651,2 -3483652,63 -3483653,11 -3483654,15 -3483655,e2 -3483657,2 -348365c,24 -348365d,19 -348365f,3 -3483660,3 -3483661,e0 -3483663,8 -3483668,8d -3483669,ad -348366a,8a -348366b,a0 -348366c,34 -348366d,2 -348366e,80 -3483670,10 -3483671,4d -3483673,2 -3483678,10 -348367b,9 -348367c,3c -348367d,f +348361b,1 +348361c,1 +348361d,1 +348361e,1 +348361f,1 +3483621,1 +3483623,1 +3483624,1 +3483625,1 +3483626,1 +3483627,1 +3483628,1 +3483629,1 +348362a,1 +348362d,33 +348362e,8 +348362f,21 +3483630,20 +3483631,f +3483633,47 +3483634,15 +3483635,ea +3483637,e +3483638,3c +3483639,2 +348363a,80 +348363b,12 +348363c,8c +348363d,42 +348363e,a5 +348363f,d4 +3483640,8e +3483641,6f +3483643,a4 +3483645,f +3483646,7a +3483647,3 +3483648,14 +3483649,40 +348364b,5 +348364c,34 +348364d,2 +348364e,48 +348364f,30 +3483650,15 +3483651,e2 +3483653,7 +3483658,24 +3483659,19 +348365b,3 +348365c,10 +348365f,4 +3483660,34 +3483661,2 +3483662,63 +3483663,11 +3483664,15 +3483665,e2 +3483667,2 +348366c,24 +348366d,19 +348366f,3 +3483670,3 +3483671,e0 +3483673,8 +3483678,8d +3483679,ad +348367a,8a +348367b,a0 +348367c,34 +348367d,2 348367e,80 -348367f,1e -3483680,25 -3483681,ef -3483682,84 -3483683,a0 -3483684,81 -3483685,e2 -3483686,1c -3483687,bf -3483688,30 -3483689,42 -348368b,1 -348368c,10 -348368d,40 -348368f,2 -3483694,10 -3483697,2 -3483698,34 -3483699,2 +3483680,10 +3483681,4d +3483683,2 +3483688,10 +348368b,9 +348368c,3c +348368d,f +348368e,80 +348368f,1e +3483690,25 +3483691,ef +3483692,84 +3483693,a0 +3483694,81 +3483695,e2 +3483696,1c +3483697,bf +3483698,30 +3483699,42 348369b,1 -348369c,a1 -348369d,e2 -348369e,1c -348369f,bf -34836a0,3 -34836a1,e0 -34836a3,8 -34836a9,33 -34836aa,8 -34836ab,21 -34836ac,3c -34836ad,2 -34836ae,80 -34836af,12 -34836b0,8c -34836b1,42 -34836b2,a5 -34836b3,d4 -34836b4,8e -34836b5,6f -34836b7,a4 -34836b9,f -34836ba,7a -34836bb,3 -34836bc,14 -34836bd,40 -34836bf,5 -34836c0,34 -34836c1,2 -34836c2,48 -34836c3,30 -34836c4,15 -34836c5,e2 -34836c7,7 -34836cc,24 -34836cd,19 -34836cf,3 -34836d0,10 -34836d3,4 -34836d4,34 -34836d5,2 -34836d6,63 -34836d7,11 -34836d8,15 -34836d9,e2 -34836db,2 -34836e0,24 -34836e1,19 -34836e3,3 -34836e4,3 -34836e5,e0 -34836e7,8 -34836ec,34 -34836ed,1 -34836ef,18 -34836f0,14 -34836f1,81 -34836f3,11 -34836f8,14 -34836f9,40 -34836fb,f -3483700,3c -3483701,a -3483702,80 -3483703,12 -3483704,25 -3483705,4a -3483706,a5 -3483707,d0 -3483708,81 -3483709,48 -348370b,a6 -348370c,31 -348370d,8 -348370f,20 -3483710,11 -3483713,9 -3483714,34 -3483715,2 -3483718,34 -3483719,2 -348371b,1 -348371c,81 -348371d,48 -348371f,7b -3483720,34 -3483721,9 -3483723,7 -3483724,11 -3483725,9 -3483727,4 +348369c,10 +348369d,40 +348369f,2 +34836a4,10 +34836a7,2 +34836a8,34 +34836a9,2 +34836ab,1 +34836ac,a1 +34836ad,e2 +34836ae,1c +34836af,bf +34836b0,3 +34836b1,e0 +34836b3,8 +34836b9,33 +34836ba,8 +34836bb,21 +34836bc,3c +34836bd,2 +34836be,80 +34836bf,12 +34836c0,8c +34836c1,42 +34836c2,a5 +34836c3,d4 +34836c4,8e +34836c5,6f +34836c7,a4 +34836c9,f +34836ca,7a +34836cb,3 +34836cc,14 +34836cd,40 +34836cf,5 +34836d0,34 +34836d1,2 +34836d2,48 +34836d3,30 +34836d4,15 +34836d5,e2 +34836d7,7 +34836dc,24 +34836dd,19 +34836df,3 +34836e0,10 +34836e3,4 +34836e4,34 +34836e5,2 +34836e6,63 +34836e7,11 +34836e8,15 +34836e9,e2 +34836eb,2 +34836f0,24 +34836f1,19 +34836f3,3 +34836f4,3 +34836f5,e0 +34836f7,8 +34836fc,34 +34836fd,1 +34836ff,18 +3483700,14 +3483701,81 +3483703,11 +3483708,14 +3483709,40 +348370b,f +3483710,3c +3483711,a +3483712,80 +3483713,12 +3483714,25 +3483715,4a +3483716,a5 +3483717,d0 +3483718,81 +3483719,48 +348371b,a6 +348371c,31 +348371d,8 +348371f,20 +3483720,11 +3483723,9 +3483724,34 +3483725,2 3483728,34 -3483729,a -348372b,8 -348372c,11 -348372d,a -348372f,2 -3483734,34 -3483735,2 -3483738,3 -3483739,e0 +3483729,2 +348372b,1 +348372c,81 +348372d,48 +348372f,7b +3483730,34 +3483731,9 +3483733,7 +3483734,11 +3483735,9 +3483737,4 +3483738,34 +3483739,a 348373b,8 -3483740,80 -3483741,a8 -3483744,25 -3483745,9 -3483747,1 -3483748,15 -3483749,20 -348374b,e -3483750,27 -3483751,bd -3483752,ff -3483753,e8 -3483754,af -3483755,bf -3483757,14 -3483758,af -3483759,a4 -348375b,18 -348375c,af -348375d,a5 -348375f,1c -3483761,5 -3483762,20 -3483763,25 -3483764,24 -3483765,a5 -3483767,8 -3483768,c -3483769,1 -348376a,5c -348376b,c -348376c,24 -348376d,c6 -348376e,ff -348376f,f8 -3483770,8f -3483771,a4 -3483773,18 -3483774,8f +348373c,11 +348373d,a +348373f,2 +3483744,34 +3483745,2 +3483748,3 +3483749,e0 +348374b,8 +3483750,80 +3483751,a8 +3483754,25 +3483755,9 +3483757,1 +3483758,15 +3483759,20 +348375b,e +3483760,27 +3483761,bd +3483762,ff +3483763,e8 +3483764,af +3483765,bf +3483767,14 +3483768,af +3483769,a4 +348376b,18 +348376c,af +348376d,a5 +348376f,1c +3483771,5 +3483772,20 +3483773,25 +3483774,24 3483775,a5 -3483777,1c -3483778,34 -3483779,6 -348377b,80 -348377c,8f -348377d,bf -348377f,14 -3483780,27 -3483781,bd +3483777,8 +3483778,c +3483779,1 +348377a,5c +348377b,c +348377c,24 +348377d,c6 +348377e,ff +348377f,f8 +3483780,8f +3483781,a4 3483783,18 -3483784,8 -3483785,1 -3483786,5c -3483787,c -348378c,a2 -348378d,25 -348378f,21 -3483790,3c -3483791,10 -3483792,80 -3483793,40 -3483794,26 -3483795,10 -3483796,17 -3483797,fc -3483798,26 -3483799,10 -348379b,4 -348379c,8e -348379d,a -34837a0,11 -34837a1,40 -34837a3,b -34837a9,a -34837aa,7c -34837ab,2 -34837ac,1 -34837ad,f1 -34837ae,78 -34837af,20 -34837b0,31 -34837b1,58 -34837b2,ff -34837b5,18 -34837b6,c2 -34837b7,2 -34837b8,17 -34837bb,3 -34837bc,31 -34837bd,59 -34837bf,ff -34837c0,81 -34837c1,ea -34837c4,3 -34837c5,2a -34837c6,c8 -34837c7,25 -34837c8,8 -34837c9,10 -34837ca,d -34837cb,e6 -34837cc,a1 -34837cd,f9 -34837d0,3 -34837d1,e0 -34837d3,8 +3483784,8f +3483785,a5 +3483787,1c +3483788,34 +3483789,6 +348378b,80 +348378c,8f +348378d,bf +348378f,14 +3483790,27 +3483791,bd +3483793,18 +3483794,8 +3483795,1 +3483796,5c +3483797,c +348379c,a2 +348379d,25 +348379f,21 +34837a0,3c +34837a1,10 +34837a2,80 +34837a3,40 +34837a4,26 +34837a5,10 +34837a6,17 +34837a7,fc +34837a8,26 +34837a9,10 +34837ab,4 +34837ac,8e +34837ad,a +34837b0,11 +34837b1,40 +34837b3,b +34837b9,a +34837ba,7c +34837bb,2 +34837bc,1 +34837bd,f1 +34837be,78 +34837bf,20 +34837c0,31 +34837c1,58 +34837c2,ff +34837c5,18 +34837c6,c2 +34837c7,2 +34837c8,17 +34837cb,3 +34837cc,31 +34837cd,59 +34837cf,ff +34837d0,81 +34837d1,ea +34837d4,3 +34837d5,2a +34837d6,c8 +34837d7,25 +34837d8,8 +34837d9,10 +34837da,d +34837db,ea +34837dc,a1 +34837dd,f9 +34837e0,3 +34837e1,e0 +34837e3,8 34b3000,ac 34b3001,86 34b3004,ac diff --git a/data/symbols.json b/data/symbols.json index 4fa9a917c..16a6c5a99 100644 --- a/data/symbols.json +++ b/data/symbols.json @@ -1,6 +1,6 @@ { - "ADULT_INIT_ITEMS": "034835F8", - "ADULT_VALID_ITEMS": "03483604", + "ADULT_INIT_ITEMS": "03483608", + "ADULT_VALID_ITEMS": "03483614", "EXTENDED_ITEM_DATA": "03482008", "FAIRY_ITEMS": "03481C03", "FAIRY_OCARINA_ITEM": "03481C02", From 11bd769db472375a7dea8561b76e831f106384ae Mon Sep 17 00:00:00 2001 From: AmazingAmpharos Date: Mon, 1 Oct 2018 05:23:44 -0500 Subject: [PATCH 621/755] Various small updates This makes Double Defense fully a progression item (for interaction with a few flags), cleans up some language in the tooltips and such, makes shopsanity only change the item pool if items from the pool can be bought from shops, and fixes a bug in the logic for Forest Temple MQ. --- Gui.py | 14 +-- ItemList.py | 7 +- Items.py | 2 +- Patches.py | 9 +- Rules.py | 3 +- Settings.py | 289 +++++++++++++++++++++++++--------------------------- 6 files changed, 159 insertions(+), 165 deletions(-) diff --git a/Gui.py b/Gui.py index a1fdb8c12..33af7b3f7 100755 --- a/Gui.py +++ b/Gui.py @@ -139,7 +139,7 @@ def guiMain(settings=None): # shared settingsFrame = Frame(mainWindow) settings_string_var = StringVar() - settingsEntry = Entry(settingsFrame, textvariable=settings_string_var) + settingsEntry = Entry(settingsFrame, textvariable=settings_string_var, width=25) def show_settings(event=None): settings = guivars_to_settings(guivars) @@ -218,17 +218,17 @@ def import_settings(event=None): fileDialogFrame = Frame(frames['rom_tab']) romDialogFrame = Frame(fileDialogFrame) - baseRomLabel = Label(romDialogFrame, text='Base Rom') + baseRomLabel = Label(romDialogFrame, text='Base ROM') guivars['rom'] = StringVar(value='ZOOTDEC.z64') romEntry = Entry(romDialogFrame, textvariable=guivars['rom'], width=40) def RomSelect(): - rom = filedialog.askopenfilename(filetypes=[("Rom Files", (".z64", ".n64")), ("All Files", "*")]) + rom = filedialog.askopenfilename(filetypes=[("ROM Files", (".z64", ".n64")), ("All Files", "*")]) if rom != '': guivars['rom'].set(rom) - romSelectButton = Button(romDialogFrame, text='Select Rom', command=RomSelect, width=10) + romSelectButton = Button(romDialogFrame, text='Select ROM', command=RomSelect, width=10) - baseRomLabel.pack(side=LEFT, padx=(40,0)) + baseRomLabel.pack(side=LEFT, padx=(38,0)) romEntry.pack(side=LEFT, padx=3) romSelectButton.pack(side=LEFT) @@ -451,8 +451,8 @@ def generateRom(): seedLabel = Label(generateSeedFrame, text='Seed') guivars['seed'] = StringVar() - seedEntry = Entry(generateSeedFrame, textvariable=guivars['seed']) - seedLabel.pack(side=LEFT) + seedEntry = Entry(generateSeedFrame, textvariable=guivars['seed'], width=25) + seedLabel.pack(side=LEFT, padx=(55, 5)) seedEntry.pack(side=LEFT) generateButton.pack(side=LEFT, padx=(5, 0)) diff --git a/ItemList.py b/ItemList.py index 8d22b05b4..a1c99b4cb 100644 --- a/ItemList.py +++ b/ItemList.py @@ -429,7 +429,7 @@ def get_pool_core(world): if world.shuffle_kokiri_sword: pool.append('Kokiri Sword') else: - placed_items['Kokiri Sword Chest'] = 'Kokiri Sword' + placed_items['Kokiri Sword Chest'] = 'Kokiri Sword' if world.shuffle_weird_egg: pool.append('Weird Egg') @@ -680,7 +680,10 @@ def get_pool_core(world): pool.extend(random.sample(remain_shop_items, shop_item_count)) pool.extend(get_junk_item(shop_nonitem_count)) - pool.extend(shopsanity_rupees) + if world.shopsanity == '0': + pool.extend(normal_rupees) + else: + pool.extend(shopsanity_rupees) if world.shuffle_scrubs: arrows_or_seeds = 0 diff --git a/Items.py b/Items.py index a7523e765..dfceabb8c 100644 --- a/Items.py +++ b/Items.py @@ -86,7 +86,7 @@ def __init__(self, model, gid, price): 'Deku Stick Capacity': (False, False, None, None, 0x88, 0x00C7, 0x1B), 'Deku Nut Capacity': (False, False, None, None, 0x87, 0x00BB, 0x12), 'Magic Meter': (True, False, None, None, 0xC0, 0x00CD, 0x1E), - 'Double Defense': (False, False, None, None, 0xBF, 0x00BD, 0x13), + 'Double Defense': (True, False, None, None, 0xBF, 0x00BD, 0x13), 'Stone of Agony': (True, False, None, 0x0720, 0x39, 0x00C8, 0x21), 'Piece of Heart': (False, False, None, 0x07C0, 0x3E, 0x00BD, 0x14), 'Heart Container': (False, False, None, 0x07A0, 0x3D, 0x00BD, 0x13), diff --git a/Patches.py b/Patches.py index ad306b134..acf99ff09 100644 --- a/Patches.py +++ b/Patches.py @@ -9,7 +9,7 @@ import copy from Hints import writeGossipStoneHintsHints, buildBossRewardHints, buildGanonText -from Utils import local_path, default_output_path, random_choices +from Utils import local_path, default_output_path from Items import ItemFactory, item_data from Messages import * from OcarinaSongs import Song, str_to_song, replace_songs @@ -1455,7 +1455,7 @@ def write_save_table(rom): Tunics.append(0x00B6DA3B) # Goron Tunic Tunics.append(0x00B6DA3E) # Zora Tunic colorList = get_tunic_colors() - randomColors = random_choices(colorList, k=3) + randomColors = random.choices(colorList, k=3) for i in range(len(Tunics)): # get the color option @@ -1483,7 +1483,7 @@ def write_save_table(rom): Navi.append([0x00B5E194]) # NPC Navi.append([0x00B5E174, 0x00B5E17C, 0x00B5E18C, 0x00B5E1A4, 0x00B5E1AC, 0x00B5E1B4, 0x00B5E1C4, 0x00B5E1CC, 0x00B5E1D4]) # Everything else naviList = get_navi_colors() - randomColors = random_choices(naviList, k=4) + randomColors = random.choices(naviList, k=4) for i in range(len(Navi)): # do everything in the inner loop so that "true random" changes even for subcategories @@ -1513,7 +1513,7 @@ def write_save_table(rom): NaviHint.append([0xAE7EF2, 0xC26C7E]) #Overworld Hint NaviHint.append([0xAE7EC6]) #Enemy Target Hint naviHintSFXList = ['Default', 'Notification', 'Rupee', 'Timer', 'Tamborine', 'Recovery Heart', 'Carrot Refill', 'Navi - Hey!', 'Navi - Random', 'Zelda - Gasp', 'Cluck', 'Mweep!', 'None'] - randomNaviHintSFX = random_choices(naviHintSFXList, k=2) + randomNaviHintSFX = random.choices(naviHintSFXList, k=2) for i in range(len(NaviHint)): for j in range(len(NaviHint[i])): @@ -1670,7 +1670,6 @@ def get_override_entry(location): 0xBC, # Bombs (20) 0xBD, # Deku Nuts (5) 0xBE, # Deku Nuts (10) - 0xBF, # Double Defense 0xD0, # Deku Stick (1) 0xD1, # Deky Seeds (30) ] diff --git a/Rules.py b/Rules.py index 890375359..247e31163 100644 --- a/Rules.py +++ b/Rules.py @@ -528,7 +528,8 @@ def dung_rules_fotmq(world): set_rule(world.get_entrance('Forest Temple Lobby Locked Door'), lambda state: state.has('Small Key (Forest Temple)', 1)) set_rule(world.get_entrance('Forest Temple West Eye Switch'), lambda state: state.can_use('Bow')) set_rule(world.get_entrance('Forest Temple East Eye Switch'), lambda state: state.can_use('Bow')) - set_rule(world.get_entrance('Forest Temple Block Puzzle Solve'), lambda state: (state.has_bombchus() and world.logic_tricks) or state.has('Progressive Strength Upgrade') or state.can_use('Hover Boots')) + set_rule(world.get_entrance('Forest Temple Crystal Switch Jump'), lambda state: (state.has_bombchus() and world.logic_tricks) or state.has('Progressive Strength Upgrade') or state.can_use('Hover Boots')) + set_rule(world.get_entrance('Forest Temple Block Puzzle Solve'), lambda state: (state.has_bombchus() and world.logic_tricks) or state.has('Progressive Strength Upgrade')) set_rule(world.get_entrance('Forest Temple Twisted Hall'), lambda state: state.has('Small Key (Forest Temple)', 4)) set_rule(world.get_entrance('Forest Temple Well Connection'), lambda state: state.can_use('Iron Boots') or state.can_use('Longshot') or state.has('Progressive Scale', 2)) set_rule(world.get_entrance('Forest Temple Webs'), lambda state: state.can_use('Fire Arrows')) diff --git a/Settings.py b/Settings.py index 5ae4e5632..2cadb0d1e 100644 --- a/Settings.py +++ b/Settings.py @@ -7,7 +7,6 @@ from Patches import get_tunic_color_options, get_navi_color_options from version import __version__ -from Utils import random_choices class ArgumentDefaultsHelpFormatter(argparse.RawTextHelpFormatter): @@ -152,7 +151,7 @@ def __init__(self, settings_dict): self.settings_string = self.get_settings_string() if(self.seed is None): # https://stackoverflow.com/questions/2257441/random-string-generation-with-upper-case-letters-and-digits-in-python - self.seed = ''.join(random_choices(string.ascii_uppercase + string.digits, k=10)) + self.seed = ''.join(random.choices(string.ascii_uppercase + string.digits, k=10)) self.sanatize_seed() self.numeric_seed = self.get_numeric_seed() @@ -255,7 +254,7 @@ def parse_custom_navi_color(s): The first time compressed generation will take a while but subsequent generations will be quick. It is highly recommended to compress or the game will crash - frequently. + frequently except on real N64 hardware. ''' }), Setting_Info('open_forest', bool, 1, True, @@ -295,8 +294,6 @@ def parse_custom_navi_color(s): The gate in Kakariko Village to Death Mountain Trail is always open, instead of needing Zelda's Letter. - Recommend if Weird Egg is not shuffled. - Either way, the gate is always open as adult. ''' }), @@ -342,11 +339,12 @@ def parse_custom_navi_color(s): 'Start with Gerudo Card': 'open', }, 'tooltip':'''\ - 'Rescue one carpenter': The carpenter rescue sequence - is much faster and doesn't affect logic much. + 'Rescue one carpenter': Only the bottom left + carpenter must be rescued. - 'Start with Gerudo Card': skips the rescue entirely, - so Epona and Longshot are not required to enter GTG. + 'Start with Gerudo Card': The carpenters are rescued from + the start of the game, and the player starts with the Gerudo + Card in the inventory allowing access to Gerudo Training Grounds. ''' }), Setting_Info('bridge', str, 2, True, @@ -377,12 +375,12 @@ def parse_custom_navi_color(s): 'tooltip':'''\ 'All dungeons': All Medallions and Stones - 'All medallions': Medallions but no Stones + 'All medallions': All 6 Medallions only 'Vanilla requirements': Spirit and Shadow - Medallion and the Light Arrows + Medallions and the Light Arrows - 'Always open': Nothing + 'Always open': Rainbow Bridge is always present ''' }), Setting_Info('all_reachable', bool, 1, True, @@ -390,8 +388,6 @@ def parse_custom_navi_color(s): 'help': '''\ When disabled, only check if the game is beatable with placement. Do not ensure all locations are reachable. - This only has an effect on the restrictive algorithm - currently. ''', 'action': 'store_true' }, @@ -408,9 +404,8 @@ def parse_custom_navi_color(s): When disabled, only required items and locations to beat the game will be guaranteed reachable. - Even when enabled, some chests may still be able to - hold the keys needed to reach them (Or gold - skulltulas in tokensanity). + Even when enabled, some locations may still be able + to hold the keys needed to reach them. ''' }), Setting_Info('bombchus_in_logic', bool, 1, True, @@ -431,14 +426,14 @@ def parse_custom_navi_color(s): 'tooltip':'''\ Bombchus are properly considered in logic. - The first bombchu pack will always be 20. + The first Bombchu pack will always be 20. Subsequent packs will be 5 or 10 based on how many you have. Bombchus can be purchased for 60/99/180 rupees once they are been found. - Bombchu Bowling opens with bombchus. + Bombchu Bowling opens with Bombchus. Bombchus are available at Kokiri Shop and the Bazaar. Bombchu refills cannot be bought until Bombchus have been @@ -449,7 +444,7 @@ def parse_custom_navi_color(s): { 'help': '''\ Each dungeon will have exactly one major item. - Does not include dungeon items or skulltulas. + Does not include dungeon items or GS Tokens. ''', 'action': 'store_true' }, @@ -460,11 +455,11 @@ def parse_custom_navi_color(s): 'default': 'unchecked', 'tooltip':'''\ Dungeons have exactly one major - item. Makes dungeon value more - even. Also allows skipping items - once the major item is found. + item. This naturally makes each + dungeon similar in value instaed + of valued based on chest count. - Dungeon items and skulltulas do + Dungeon items and GS Tokens do not count as major items. ''', }), @@ -549,7 +544,7 @@ def parse_custom_navi_color(s): Setting_Info('no_epona_race', bool, 1, True, { 'help': '''\ - Having Epona's song will allow you to summon epona without racing Ingo. + Having Epona's Song will allow you to summon Epona without racing Ingo. ''', 'action': 'store_true' }, @@ -696,7 +691,7 @@ def parse_custom_navi_color(s): 'default': 'checked', 'tooltip':'''\ You need to find the egg before going Zelda. - This means the Weird Egg locks the items from + This means the Weird Egg locks the rewards from Impa, Saria, Malon, and Talon. ''' }), @@ -704,7 +699,7 @@ def parse_custom_navi_color(s): { 'help': '''\ Shuffles the Fairy Ocarina and the Ocarina of Time into the pool. - This means that you need to find the ocarina before playing songs. + This means that you need to find an ocarina before playing songs. ''', 'action': 'store_true' }, @@ -717,10 +712,6 @@ def parse_custom_navi_color(s): The Fairy Ocarina and Ocarina of Time are randomized. One will be required before songs can be played. - - This is good in combination with Closed - Door of Time for a more interesting child - section. ''' }), Setting_Info('shuffle_song_items', bool, 1, True, @@ -738,10 +729,8 @@ def parse_custom_navi_color(s): 'widget': 'Checkbutton', 'default': 'checked', 'tooltip':'''\ - Songs can appear anywhere, not just Vanilla - song locations. This significantly reduces - song placement bias and makes the songs more - evenly distributed. + Songs can appear anywhere as normal items, + not just at vanilla song locations. ''' }), Setting_Info('shuffle_gerudo_card', bool, 1, True, @@ -749,8 +738,8 @@ def parse_custom_navi_color(s): 'help': '''\ Shuffles the Gerudo Card into the item pool. The Gerudo Card does not stop guards from throwing you in jail. - It only grants access to Training Grounds, AFTER all carpenters have been rescued. - This option does nothing if "gerudo_fortress" is "open". + It only grants access to Gerudo Training Grounds after all carpenters + have been rescued. This option does nothing if "gerudo_fortress" is "open". ''', 'action': 'store_true' }, @@ -764,14 +753,12 @@ def parse_custom_navi_color(s): Gerudo Membership Card is required to enter Gerudo Training Grounds. It is effectively the Boss Key of Gerudo Fortress. - - Plays spiritually best with Keysanity. ''' }), Setting_Info('shuffle_scrubs', bool, 1, True, { 'help': '''\ - All Deku Salesmen will give a random item. + All Deku Scrub Salesmen will give a random item. ''', 'action': 'store_true' }, @@ -781,9 +768,9 @@ def parse_custom_navi_color(s): 'widget': 'Checkbutton', 'default': 'unchecked', 'tooltip':'''\ - Every Deku Salescrub will give - a random item. This adds 33 new - item locations. The Scrubs' prices + Each Deku Scrub Salesman will give + a random item. Vanilla OoT has 36 + Deku Scrub Salesmen. The prices are all reduced to 10 Rupees. ''' }), @@ -794,9 +781,10 @@ def parse_custom_navi_color(s): 'nargs': '?', 'choices': ['off', '0', '1', '2', '3', '4', 'random'], 'help': '''\ - Shop contents are randomized. There are Two items - in every shop that are one time buy and are not - refill items. + Shop contents are randomized. Non-shop items + are one time purchases. This setting also + changes the item pool to introduce a new Wallet + upgrade and more money. off: Normal Shops* 0-4: Shop contents are shuffled and N non-shop items are added to every shop. So more @@ -852,7 +840,7 @@ def parse_custom_navi_color(s): 'help': '''\ Sets the Map and Compass placement rules remove: Maps and Compasses are removed from the world - dungeon: Maps and Compasses are put in their Dungeon + dungeon: Maps and Compasses are put in their dungeon keysanity: Maps and Compasses can appear anywhere ''' }, @@ -879,8 +867,8 @@ def parse_custom_navi_color(s): Setting 'Remove' or 'Anywhere' will add 2 more possible locations to each Dungeons. - This helps make some dungeons more profitable, - such as Ice Cavern and Jabu Jabu's Belly. + This makes dungeons more profitable, especially + Ice Cavern, Water Temple, and Jabu Jabu's Belly. ''' }), Setting_Info('shuffle_smallkeys', str, 2, True, @@ -912,7 +900,7 @@ def parse_custom_navi_color(s): 'Dungeon': Small Keys can only appear in their respective dungeon. If Fire Temple is not a - Master Quest dungeon, the door to the boss key + Master Quest dungeon, the door to the Boss Key chest will be unlocked 'Anywhere': Small Keys can appear @@ -1019,8 +1007,8 @@ def parse_custom_navi_color(s): Gold Skulltula Tokens will be shuffled into the pool, and Gold Skulltula locations can have any item. off: Don't use this feature - dungeons: Only dungeon skulltulas will be shuffled - all: All skulltulas will be shuffled + dungeons: Only dungeon Skulltulas will be shuffled + all: All Gold Skulltulas will be shuffled ''' }, { @@ -1037,12 +1025,11 @@ def parse_custom_navi_color(s): Token reward from Gold Skulltulas are shuffled into the pool. - 'Dungeon Only': This helps make some - dungeons more profitable, such as - Ice Cavern and Jabu Jabu's Belly. - Some GS locations in dungeons have - interesting requirements to reach. - This is a recommended option. + 'Dungeon Only': This only shuffles + the GS locations that are within + dungeons, increasing the value of + most dungeons and making internal + dungeon exploration more diverse. 'All Tokens': Effectively adds 100 new locations for items to appear. @@ -1089,12 +1076,12 @@ def parse_custom_navi_color(s): 'nargs': '?', 'choices': [0, 10, 20, 30, 40, 50], 'help': '''\ - Choose the maximum number of gold skulltula tokens you will be expected to collect. + Choose the maximum number of Gold Skulltula Tokens you will be expected to collect. ''', 'type': int }, { - 'text': 'Maximum expected skulltula tokens', + 'text': 'Maximum expected Skulltula tokens', 'group': 'rewards', 'widget': 'Scale', 'default': 50, @@ -1102,7 +1089,8 @@ def parse_custom_navi_color(s): 'max': 50, 'step': 10, 'tooltip':'''\ - Skulltula Token rewards are time consuming. + Choose the maximum number of Gold Skulltula + Tokens you will be expected to collect. ''' }), Setting_Info('logic_no_night_tokens_without_suns_song', bool, 1, True, @@ -1119,7 +1107,7 @@ def parse_custom_navi_color(s): 'widget': 'Checkbutton', 'default': 'unchecked', 'tooltip':'''\ - Skulltula Tokens that can only be obtained + GS Tokens that can only be obtained during the night expect you to have Sun's Song to collect them. This prevents needing to wait until night for some locations. @@ -1138,7 +1126,8 @@ def parse_custom_navi_color(s): 'widget': 'Checkbutton', 'default': 'unchecked', 'tooltip':'''\ - Hunting Big Poes is time consuming + The Big Poe vendor will not have a + required item. ''' }), Setting_Info('logic_no_child_fishing', bool, 1, True, @@ -1155,7 +1144,7 @@ def parse_custom_navi_color(s): 'default': 'unchecked', 'tooltip':'''\ Fishing does not work correctly on - some emulators. + Bizhawk. ''' }), Setting_Info('logic_no_adult_fishing', bool, 1, True, @@ -1172,13 +1161,13 @@ def parse_custom_navi_color(s): 'default': 'unchecked', 'tooltip':'''\ Fishing does not work correctly on - some emulators. + Bizhawk. ''' }), Setting_Info('logic_no_trade_skull_mask', bool, 1, True, { 'help': '''\ - You will not be expected to show the skull mask at the forest stage. + You will not be expected to show the Skull Mask at the forest stage. ''', 'action': 'store_true' }, @@ -1188,13 +1177,14 @@ def parse_custom_navi_color(s): 'widget': 'Checkbutton', 'default': 'unchecked', 'tooltip':'''\ - Mask trade quest is time consuming. + Showing off the Skull Mask will + not yield a required item. ''' }), Setting_Info('logic_no_trade_mask_of_truth', bool, 1, True, { 'help': '''\ - You will not be expected to show the mask of truth at the forest stage. + You will not be expected to show the Mask of Truth at the forest stage. ''', 'action': 'store_true' }, @@ -1204,9 +1194,8 @@ def parse_custom_navi_color(s): 'widget': 'Checkbutton', 'default': 'unchecked', 'tooltip':'''\ - Completing mask trade quest is very - time consuming and requires all 3 - Spiritual Stones. + Showing off the Mask of Truth + will not yield a required item. ''' }), Setting_Info('logic_no_1500_archery', bool, 1, True, @@ -1222,14 +1211,14 @@ def parse_custom_navi_color(s): 'widget': 'Checkbutton', 'default': 'unchecked', 'tooltip':'''\ - Some find this too difficult on emulator. - Also it is doing the same thing twice. + Scoring 1500 points at horseback + archery will not yield a required item. ''' }), Setting_Info('logic_no_memory_game', bool, 1, True, { 'help': '''\ - You will not be expected to play the memory game in lost woods with the skull kids. + You will not be expected to play the ocarina memory game in Lost Woods. ''', 'action': 'store_true' }, @@ -1239,7 +1228,8 @@ def parse_custom_navi_color(s): 'widget': 'Checkbutton', 'default': 'unchecked', 'tooltip':'''\ - Memory game is time consuming. + Playing the ocarina memory game + will not yield a required item. ''' }), Setting_Info('logic_no_second_dampe_race', bool, 1, True, @@ -1255,30 +1245,14 @@ def parse_custom_navi_color(s): 'widget': 'Checkbutton', 'default': 'unchecked', 'tooltip':'''\ - Racing twice is repetitive. - ''' - }), - Setting_Info('logic_tricks', bool, 1, True, - { - 'help': '''\ - Enable various tricks. - ''', - 'action': 'store_true' - }, - { - 'text': 'Require minor tricks', - 'group': 'tricks', - 'widget': 'SpecialCheckbutton', - 'default': 'unchecked', - 'tooltip':'''\ - Enables a large number of tricks. - Still does not require glitches. + The second Dampe race will + not yield a required item. ''' }), Setting_Info('logic_no_trade_biggoron', bool, 1, True, { 'help': '''\ - You will not be expected to trade for biggoron's reward. + You will not be expected to show the Claim Check to Biggoron. ''', 'action': 'store_true' }, @@ -1288,7 +1262,8 @@ def parse_custom_navi_color(s): 'widget': 'Checkbutton', 'default': 'unchecked', 'tooltip':'''\ - Adult trade sequence is time consuming. + Showing the Claim Check to Biggoron + will not yield a required item. ''' }), Setting_Info('logic_earliest_adult_trade', str, 4, True, @@ -1308,7 +1283,7 @@ def parse_custom_navi_color(s): 'eyedrops', 'claim_check'], 'help': '''\ - Select the earliest item that will appear in the adult trade sequence: + Select the earliest item that can appear in the adult trade sequence: 'pocket_egg' 'pocket_cucco' 'cojiro' @@ -1339,7 +1314,7 @@ def parse_custom_navi_color(s): 'Earliest: Eyedrops': 'eyedrops', 'Earliest: Claim Check': 'claim_check'}, 'tooltip':'''\ - Select the earliest item that will appear in the adult trade sequence. + Select the earliest item that can appear in the adult trade sequence. ''' }), Setting_Info('logic_latest_adult_trade', str, 4, True, @@ -1359,7 +1334,7 @@ def parse_custom_navi_color(s): 'eyedrops', 'claim_check'], 'help': '''\ - Select the latest item that will appear in the adult trade sequence: + Select the latest item that can appear in the adult trade sequence: 'pocket_egg' 'pocket_cucco' 'cojiro' @@ -1389,13 +1364,30 @@ def parse_custom_navi_color(s): 'Latest: Eyedrops': 'eyedrops', 'Latest: Claim Check': 'claim_check'}, 'tooltip':'''\ - Select the latest item that will appear in the adult trade sequence. + Select the latest item that can appear in the adult trade sequence. + ''' + }), + Setting_Info('logic_tricks', bool, 1, True, + { + 'help': '''\ + Enable various tricks. + ''', + 'action': 'store_true' + }, + { + 'text': 'Require minor tricks', + 'group': 'tricks', + 'widget': 'SpecialCheckbutton', + 'default': 'unchecked', + 'tooltip':'''\ + Enables a large number of tricks. + Still does not require glitches. ''' }), Setting_Info('logic_man_on_roof', bool, 1, True, { 'help': '''\ - The man on the roof will not require the hookshot in logic. + The man on the roof will not require the Hookshot in logic. ''', 'action': 'store_true' }, @@ -1405,7 +1397,7 @@ def parse_custom_navi_color(s): 'widget': 'Checkbutton', 'default': 'unchecked', 'tooltip':'''\ - Can be reached by side-hopping off of + Can be reached by side-hopping off the watchtower. ''' }), @@ -1428,8 +1420,8 @@ def parse_custom_navi_color(s): Setting_Info('logic_dc_jump', bool, 1, True, { 'help': '''\ - Jumping towards the bomb bag chest in Dodongo's Cavern as an adult - will not require hover boots in logic. + Jumping towards the Bomb Bag chest in Dodongo's Cavern as an adult + will not require Hover Boots in logic. ''', 'action': 'store_true' }, @@ -1442,15 +1434,15 @@ def parse_custom_navi_color(s): Jump is adult only. ''' }), - Setting_Info('logic_windmill_hp', bool, 1, True, + Setting_Info('logic_windmill_poh', bool, 1, True, { 'help': '''\ - Getting the heart piece in the windmill as an adult will require nothing in logic. + Getting the Piece of Heart in the windmill as an adult will require nothing in logic. ''', 'action': 'store_true' }, { - 'text': 'Windmill HP as adult with nothing', + 'text': 'Windmill PoH as adult with nothing', 'group': 'tricks', 'widget': 'Checkbutton', 'default': 'unchecked', @@ -1459,16 +1451,16 @@ def parse_custom_navi_color(s): below as adult. ''' }), - Setting_Info('logic_crater_bean_hp_with_hovers', bool, 1, True, + Setting_Info('logic_crater_bean_poh_with_hovers', bool, 1, True, { 'help': '''\ - The Heart Piece in Death Mountain Crater than normally requires the bean to reach - will optionally require the Hover Boots in logic. + The Piece of Heart in Death Mountain Crater that normally requires the bean to + reach will optionally require the Hover Boots in logic. ''', 'action': 'store_true' }, { - 'text': "Crater's bean HP with Hover Boots", + 'text': "Crater's bean PoH with Hover Boots", 'group': 'tricks', 'widget': 'Checkbutton', 'default': 'unchecked', @@ -1535,7 +1527,7 @@ def parse_custom_navi_color(s): - Zoras Fountain Bottom Freestanding PoH. Might not have enough health to resurface. - Gerudo Training Grounds Underwater - Silver Rupee Chest. Will need to make multiple + Silver Rupee Chest. May need to make multiple trips. ''' }), @@ -1567,10 +1559,10 @@ def parse_custom_navi_color(s): fake object will expect you to have the Lens of Truth and Magic. The exception is passing through the first wall in Bottom of - the Well, since that is required in Vanilla. + the Well, since that is required in vanilla. 'Wasteland': The lens is needed to follow - the ghost guide across the Desert Wasteland. + the ghost guide across the Haunted Wasteland. ''' }), Setting_Info('ocarina_songs', bool, 1, True, @@ -1603,14 +1595,13 @@ def parse_custom_navi_color(s): { 'help': '''\ Updates the chest sizes to match their contents. - Small Chest = Useless Item + Small Chest = Non-required Item Big Chest = Progression Item - Boss Chest = Dungeon Item ''', 'action': 'store_true' }, { - 'text': 'Chests size matches contents', + 'text': 'Chest size matches contents', 'group': 'other', 'widget': 'Checkbutton', 'default': 'unchecked', @@ -1626,7 +1617,7 @@ def parse_custom_navi_color(s): { 'help': '''\ The hints provided by Gossip Stones are - easier to understand. + very direct. ''', 'action': 'store_true' }, @@ -1637,7 +1628,7 @@ def parse_custom_navi_color(s): 'default': 'unchecked', 'tooltip':'''\ The hints provided by Gossip Stones will - not be as cryptic if this option is enabled. + be very direct if this option is enabled. ''' }), Setting_Info('hints', str, 2, True, @@ -1649,7 +1640,7 @@ def parse_custom_navi_color(s): 'help': '''\ Choose how Gossip Stones behave none: Default behavior - mask: Have useful hints that are read with the Mask of Truth (untested) + mask: Have useful hints that are read with the Mask of Truth agony: Have useful hints that are read with Stone of Agony always: Have useful hints which can always be read ''' @@ -1658,7 +1649,7 @@ def parse_custom_navi_color(s): 'text': 'Gossip Stones', 'group': 'other', 'widget': 'Combobox', - 'default': 'Hints; Need Nothing', + 'default': 'Hints; Need Stone of Agony', 'options': { 'No Hints': 'none', 'Hints; Need Mask of Truth': 'mask', @@ -1666,20 +1657,19 @@ def parse_custom_navi_color(s): 'Hints; Need Nothing': 'always', }, 'tooltip':'''\ - Hints allow for more dynamic routing. - Spending time to gain knowledge of the - world can give better routing plans - and potentially save time. + Gossip Stones can be made to give hints + about where items can be found. + + Different settings can be chosen to + decide which item is needed to + speak to Gossip Stones. Choosing to + stick with the Mask of Truth will + make the hints very difficult to + obtain. Hints for 'on the way of the hero' are locations that contain items that are required to beat the game. - - It is recommended to play with - 'Hints; Need Nothing'. Requiring the - Stone of Agony generally requires - backtracking to locations for the hints, - which make them often not worthwhile. ''' }), Setting_Info('text_shuffle', str, 2, True, @@ -1691,7 +1681,7 @@ def parse_custom_navi_color(s): 'help': '''\ Choose how to shuffle the game's messages. none: Default behavior - except_hints: All text except Gossip Stone hints and Dungeon reward hints is shuffled. + except_hints: All text except Gossip Stone hints and dungeon reward hints is shuffled. complete: All text is shuffled ''' }, @@ -1721,7 +1711,7 @@ def parse_custom_navi_color(s): 'nargs': '?', 'choices': ['normal', 'hard', 'very_hard', 'ohko'], 'help': '''\ - Choose how hard the game will be. + Change the item pool for an added challenge. normal: Default items hard: Double defense, double magic, and all 8 heart containers are removed very_hard: Double defense, double magic, Nayru's Love, and all health upgrades are removed @@ -1759,7 +1749,7 @@ def parse_custom_navi_color(s): 'nargs': '?', 'choices': ['hold', 'switch'], 'help': '''\ - Choose what the default targeting is. + Choose what the default Z-targeting is. ''' }, { @@ -1796,9 +1786,8 @@ def parse_custom_navi_color(s): 'Random': 'random', }, 'tooltip': '''\ - 'No Music': No background is played. - Useful for playing your own music - over the game. + 'No Music': No background music. + is played. 'Random': Area background music is randomized. @@ -1813,7 +1802,9 @@ def parse_custom_navi_color(s): 'type': parse_custom_tunic_color, 'help': '''\ Choose the color for Link's Kokiri Tunic. (default: %(default)s) - + Color: Make the Kokiri Tunic this color. + Random Choice: Choose a random color from this list of colors. + Completely Random: Choose a random color from any color the N64 can draw. ''' }, { @@ -1825,7 +1816,7 @@ def parse_custom_navi_color(s): 'tooltip':'''\ 'Random Choice': Choose a random color from this list of colors. - 'Comepletely Random': Choose a random + 'Completely Random': Choose a random color from any color the N64 can draw. ''' }), @@ -1839,7 +1830,7 @@ def parse_custom_navi_color(s): Choose the color for Link's Goron Tunic. (default: %(default)s) Color: Make the Goron Tunic this color. Random Choice: Choose a random color from this list of colors. - Comepletely Random: Choose a random color from any color the N64 can draw. + Completely Random: Choose a random color from any color the N64 can draw. ''' }, { @@ -1851,7 +1842,7 @@ def parse_custom_navi_color(s): 'tooltip':'''\ 'Random Choice': Choose a random color from this list of colors. - 'Comepletely Random': Choose a random + 'Completely Random': Choose a random color from any color the N64 can draw. ''' }), @@ -1865,7 +1856,7 @@ def parse_custom_navi_color(s): Choose the color for Link's Zora Tunic. (default: %(default)s) Color: Make the Zora Tunic this color. Random Choice: Choose a random color from this list of colors. - Comepletely Random: Choose a random color from any color the N64 can draw. + Completely Random: Choose a random color from any color the N64 can draw. ''' }, { @@ -1877,7 +1868,7 @@ def parse_custom_navi_color(s): 'tooltip':'''\ 'Random Choice': Choose a random color from this list of colors. - 'Comepletely Random': Choose a random + 'Completely Random': Choose a random color from any color the N64 can draw. ''' }), @@ -1890,7 +1881,7 @@ def parse_custom_navi_color(s): 'help': '''\ Choose the color for Navi when she is idle. (default: %(default)s) Color: Make the Navi this color. - Random Chocie: Choose a random color from this list of colors. + Random Choice: Choose a random color from this list of colors. Completely Random: Choose a random color from any color the N64 can draw. ''' }, @@ -1916,7 +1907,7 @@ def parse_custom_navi_color(s): 'help': '''\ Choose the color for Navi when she is targeting an enemy. (default: %(default)s) Color: Make the Navi this color. - Random Chocie: Choose a random color from this list of colors. + Random Choice: Choose a random color from this list of colors. Completely Random: Choose a random color from any color the N64 can draw. ''' }, @@ -1942,7 +1933,7 @@ def parse_custom_navi_color(s): 'help': '''\ Choose the color for Navi when she is targeting an NPC. (default: %(default)s) Color: Make the Navi this color. - Random Chocie: Choose a random color from this list of colors. + Random Choice: Choose a random color from this list of colors. Completely Random: Choose a random color from any color the N64 can draw. ''' }, @@ -1994,7 +1985,7 @@ def parse_custom_navi_color(s): 'help': '''\ Select the sound effect that plays when Navi has a hint. (default: %(default)s) Sound: Replace the sound effect with the chosen sound. - Random Chocie: Replace the sound effect with a random sound from this list. + Random Choice: Replace the sound effect with a random sound from this list. None: Eliminate Navi hint sounds. ''' }, @@ -2029,7 +2020,7 @@ def parse_custom_navi_color(s): 'help': '''\ Select the sound effect that plays when targeting an enemy. (default: %(default)s) Sound: Replace the sound effect with the chosen sound. - Random Chocie: Replace the sound effect with a random sound from this list. + Random Choice: Replace the sound effect with a random sound from this list. None: Eliminate Navi hint sounds. ''' }, @@ -2064,7 +2055,7 @@ def parse_custom_navi_color(s): 'help': '''\ Select the sound effect that loops at low health. (default: %(default)s) Sound: Replace the sound effect with the chosen sound. - Random Chocie: Replace the sound effect with a random sound from this list. + Random Choice: Replace the sound effect with a random sound from this list. None: Eliminate heart beeps. ''' }, @@ -2090,7 +2081,7 @@ def parse_custom_navi_color(s): ], 'tooltip':'''\ 'Random Choice': Choose a random - sound from this list of colors. + sound from this list. 'Default': Beep. Beep. Beep. ''' }), From 02f381351167136fb0b64bca1956ed1b8ce6507d Mon Sep 17 00:00:00 2001 From: AmazingAmpharos Date: Mon, 1 Oct 2018 05:25:18 -0500 Subject: [PATCH 622/755] Incomplete new readme Needs proofreading and command line information updated. It's still much closer to where it needs to be than it was before. --- README.md | 888 +++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 781 insertions(+), 107 deletions(-) diff --git a/README.md b/README.md index c4c501e8e..ae0bbe4f2 100644 --- a/README.md +++ b/README.md @@ -1,178 +1,852 @@ # OoTRandomizer -Documentation for the core features of the randomizer from which this was forked can be found here: +This is a randomizer for _The Legend of Zelda: Ocarina of Time_ for the Nintendo 64. + +# Installation + +It is strongly suggested users get the latest release from here: https://github.com/AmazingAmpharos/OoT-Randomizer/releases . +Simply download the .msi installer and run it if you have a Windows machine. + +If you do not have Windows or you simply wish to run the script raw, clone this repository and either run '''Gui.py''' for a +graphical interface or '''OoTRandomizer.py''' for the command line version. Both require Python 3.5+. + +This randomizer requires The Legend of Zelda: Ocarina of Time version 1.0 NTSC-US version. This randomizer includes an in-built decompressor, but if +the user wishes a pre-decompressed ROM may be supplied as input. Please be sure your input ROM filename is either a .n64 or .z64 file. For users +playing via any means other than on real N64 hardware, the use of the "Compress patched ROM" flag is strongly encouraged as uncompressed ROMs are +impossible to inject for the Virtual Console and have random crashing problems on all emulators. + +For general use, the recommended emulator is RetroArch; it has been shown to work with minimal issues. Bizhawk and Mupen64plus are generally good choices +too. If you want to play on Project 64 for whatever reason, you can but you will need to set the rando to use 8 MB of RAM and will want to play with the +cheat code 8109C58A 0000 to partially fix Project 64's tragically poor handling of OoT's pause menu. Project 64 also has one particular crash that only +happens for some unknown settings configurations; we cannot support this. I cannot emphasize enough that it is a discouraged emulator to use. + +# General Description + +This program takes _The Legend of Zelda: Ocarina of Time_ and randomizes the locations of the items for a more dynamic play experience. +Proper logic is used to ensure every seed is possible to complete without the use of glitches and will be safe from the possibility of softlocks +with any possible usage of keys in dungeons. + +The items that randomize currently are all items within chests including those in grottos, items given as rewards by NPCs including from minigames and +Deku Scrub Salesmen, the items given by freestanding Pieces of Heart, Heart Containers, and Keys, and the items obtained when getting the Bottle and the +Fire Arrows at Lake Hylia or the Ocarina of Time from the Castle Town moat. All dungeons will always have the same number of Maps, Compasses, Small Keys, +and Boss Keys they had in the original game, but which chests within those dungeons have those things is random. The item pool will contain a Biggoron Sword +that will not interfere with Medigoron's sale of the Giant's Knife (which is always vanilla), and a randomly selected adult trading quest item other than the +Odd Potion will be somewhere in the item pool. + +Certain types of items are now "progressive", meaning that no matter what order the player encounters these items they will function as a series of upgrades. +The following item types will be progressive chains: + +-Hookshot to Longshot +-Bomb Bag to Big Bomb Bag to Biggest Bomb Bag +-Goron Bracelet to Silver Gauntlets to Gold Gauntlets +-Slingshot to Big Bullet Bag to Biggest Bullet Bag +-Bow to Big Quiver to Biggest Quiver +-Silver Scale to Gold Scale +-Adult Wallet to Giant's Wallet +-Deku Stick Capacity Upgrades +-Deku Nut Capacity Upgrades +-Magic Meter to Double Magic + +To be more clear about which NPC items are shuffled, it's only the one time permanent item rewards for the most part like NPCs who originally gave Pieces of Heart +or inventory items. The only exception is that even though in vanilla the reward for 40 Gold Skulltulla Tokens was just 10 Bombchus that is still a randomized reward +in randomizer (but the 200 rupees for all 100 Gold Skulltulla Tokens is not randomized so the most tokens that could be required to complete a seed is 50). As a mercy +to the player, the Ocarina Memory Game in the Lost Woods will start on the final round as that minigame was very long originally, the three day wait on the Claim Check +is removed, Bombchu Bowling will have a fixed sequence of prizes that is of maximum convenience to the player, Dampe's Gravedigging Tour will always be won on the first +dig, and the fishing minigame is made much simpler (8 lb fish for child now, 10 lb for adult). Additionally, any NPC who gives a trading quest item either for the child +or for the adult other than Anju's initial gift as an adult does not have a randomized reward. + +A special note is needed for the six Great Fairy Fountains scattered across Hyrule. All six of these fountains now give random item rewards, and the magic and life +upgrades can now be found as normal items scattered around the world. Happy hunting! + +The Ocarina songs are shuffled in a pool amongst themselves, and each learn spot will still have the original conditions it has always had. These conditions may not +have all been obvious, but here are some high points. Saria will teach her song after completing the events in the Castle Courtyard. The warp songs can mostly only +be learned by an adult, but the location for Requiem of Spirit is available for even a child if the Desert Colossus can be reached. The location for the Prelude of +Light requires the Forest Medallion, and the location for the Nocturne of Shadow requires the Forest Medallion, Fire Medallion, and Water Medallions. This can be +changed with a setting. + +Speaking of Medallions, each boss in the eight main dungeons will drop a random Spiritual Stone or Medallion, and instead of the Light Medallion being granted by the +now removed "becoming an adult" cutscene, the player will start every seed with a random Spiritual Stone or Medallion. The pedestal in which the Spiritual Stones +rest in the Temple of Time has hint text pointing to the locations of the Spiritual Stones and Medallions. A child will be able to read hints for the Spiritual +Stones while an adult will be able to read hints for the Medallions. This information and some other relevant dungeon based info can be seen in the pause menu by +holding the "A" button on the c-item menu. + +To be very clear on this point, while the rewards for up to 50 Gold Skulltulla Tokens are randomized, the tokens themselves are not. + +As a service to the player in this very long game, many cutscenes have been greatly shortened or removed and text is as often as possible either omitted or sped up. +We have been as thorough as our exploration of the game and various technical limitations will allow to make the parts of the game where you're watching and reading +as short as possible to make as much of your time with this randomizer as possible actual gameplay. I'm sure someone somewhere will miss the owl's interjections; to +that person, I'm sorry I guess? + +A few bugs or other undesirable behaviors in the original game have been fixed. Of note, obtaining the Poacher's Saw will no longer prevent the player from obtaining +the reward in the Deku Theater for showing the Mask of Truth, and becoming an adult will not automatically equip the child with the Kokiri Sword. Sheik will no longer +prevent the player from returning to childhood before obtaining the Forest Medallion. Princess Ruto will never disappear from Jabu Jabu's Belly, and the condition for +the Castle Courtyard being sealed off is now completing the events within as opposed to seeing the Ocarina of Time be thrown into the moat. + +One small detail that is important to know is that the locked door in the Fire Temple leading to the section with the Boss Key Chest is removed. This was necessary +due to the original design of the Fire Temple assuming that the player could not possibly have the Hammer before unlocking the doors leading into the depths of the +dungeon. This is obviously not true in randomizer, and of all possible solutions to this problem, this seemed the least disruptive. A full clear of the Fire Temple will +simply result in the player having one extra Small Key. Certain settings configurations will disable this behavior. + +To be clear about the logic rules of what can be where, the randomizer will ensure a glitchless path through the seed will exist, but the randomizer will not prevent +the use of glitches for those players who enjoy that sort of thing though we offer no guarantees that all glitches will have identical behavior to the original game. +Glitchless can still mean that clever or unintuitive strategies may be required involving the use of things like Hover Boots, the Hookshot, or Scarecrow's Song that +may not have been important options in the original game. The Lens of Truth is guaranteed available and useable before completion of the Treasure Chest Game is required +or before walking through any invisible objects or opening any invisible chests is required with the exception of the one invisible wall that is required to enter +the Bottom of the Well as the original game required passing that invisible wall to reach the Lens of Truth. + +One last detail is that the menu is now more like the Majora's Mask menu in that the player can move the cursor through empty spaces. This fixes a major problem from +the original game in that certain combinations of items would create menu shapes that would be impossible to fully menu through. Unfortunately, as of this 3.0 release, +this functionality does not apply to the "equipment" screen which can rarely create some tricky situations. Usually these can be solved by purchasing a Deku Shield and +a Hylian Shield. + +# Quirks to Know + +While all the details of gameplay can't be detailed here, I want to inform you of a few non-obvious game sequences that are likely to get you stuck and one little +glitch we can do nothing about. + +-The condition to open the Door of Time is merely playing the Song of Time; the Spiritual Stones are not required. If you enter the Temple of Time via the Prelude +of Light, playing the Song of Time will create a glitchy cutscene and will not open the door (but you're safe to exit and re-enter and open it properly). +-The condition to spawn the Ocarina of Time and learn that song is the three Spiritual Stones. The condition to learn a song from Sheik in the Temple of Time is +possessing the Forest Medallion. The condition to learn a song from Sheik in Kakariko is possessing Forest, Fire, and Water Medallions. +-The running man in Hyrule Field only spawns if you have all three Spiritual Stones. +-Skull Kid will only buy the Skull Mask if you have played Saria's Song for him. +-The center of Death Mountain Crater as an adult can be reached from the summit as an adult by going around to the left with Hover Boots or by jumping down to the right +and using a combination of the Longshot and Scarecrow's Song. This allows access to Sheik and the Fire Temple without a Bomb Bag. +-A sword must be equipped to play the fishing minigame. A Slingshot is not required for child target shooting, but the adult does need the Bow. +-Other than those minigames, the child can do anything that would seem to require the sword with Deku Sticks. You can buy as many as you want in the Kokiri Forest shop. +-In the randomizer, possessing the Bomb Bag is the requirement to get bomb drops, buy bombs or Bombchus, or play Bombchu Bowling. +-Only the Hookshot, not the Longshot, is needed to do everything on the rooftops of Kakariko. +-Grottos can be opened with either Bombs or the Hammer. +-The boulder maze in Goron City can be solved with the Hammer or partially with Bombs as is obvious, but less obvious is that it can be fully solved with Silver Gauntlets. +-The large colored blocks only encountered by the adult require Goron Bracelet to push. +-In a few places, out of sight Song of Time blocks can be summoned. The lava room in Gerudo Training Grounds, the beginning of Ganon's Castle Shadow Trial, and the last +hallway with a caged Goron in Fire Temple are the main cases. +-Adult Link can fully clear Dodongo's Cavern. He can even skip the first section by virtue of being tall. +-In the Forest Temple, you can reach the room with the Floormaster (vanilla) or Redead (MQ) early by using Hover Boots in the block push room. +-In the Fire Temple, you can reach the Boss Key door from the beginning with Hover Boots. +-In the Water Temple, you can from the start with the water down jump to the middle platform level, very carefully aim the Hookshot to the target above, and pull yourself +to the highest level of the central platform. Then a very well spaced rolling jump can reach the water changing station to raise the water to the highest level. If you +make poor key choices in Water Temple, this may be what you need to do to untangle the situation. +-In the Water Temple, Hover Boots can be used to reach the vanilla Boss Key chest without going through the room that requires Bombs and block pushing. Hover Boots can +also be used in this temple to avoid the Longshot requirement for the middle level chest that requires the Bow. +-In the Shadow Temple, you can avoid the need for the Longshot in the room with the invisible spikes by backflipping onto the chest for extra height. +-In the Shadow Temple, you can Hookshot the ladder to avoid pushing the block to get on the boat. +-In the Shadow Temple, a combination of the scarecrow and the Longshot can be used to reach Bongo Bongo without needing the Bow. +-In the Spirit Temple, the child can obtain the vanilla Map chest with Deku Sticks. No fire magic is needed. +-In the Spirit Temple, you can collect the silver rupees without Hover Boots by jumping directly onto the rolling boulder or with a jump slash. +-In the Spirit Temple, you can use the Longshot to cross from the hand with the Mirror Shield in vanilla to the other hand. +-In Ganon's Castle Spirit Trial, the web can be burned with a precise shot through the torch by a normal arrow. Fire Arrows are not required. +-While we guarantee tunics for Fire Temple and Water Temple, you can possibly force yourself to do without if you seriously let a Like Like eat the tunic and +then do not recover the tunic. It is almost always possible to do without, but it can make things really difficult on you. +-Several Gold Skulltulla Tokens can be reached by clever/precise uses of jump slashes and spin attacks (possibly magic spin attacks). -# Notable Changes on this fork +# Known issues -The following were added or majorly changed on this fork: +Sadly for this 3.0 release a few known issues exist. These will hopefully be addressed in future versions. -## GUI changes +-The fishing minigame sometimes refuses to allow you to catch fish when playing specifically on Bizhawk. Save and quit (NOT savestate) and return to fix the issue. +-Draining the Bottom of the Well with Song of Storms sometimes crashes on specific configurations of Project 64. We aren't sure of the exact story, but this bug is +easily avoided by playing on a different emulator and probably also avoidable by changing your settings and maybe graphics plug-in. +-Executing the collection delay glitch on various NPCs may have unpredictable and undesirable consequences. In particular this can be devastating with Biggoron; +it is strongly suggested the player save before turning in the Claim Check. +-Saving and quitting on the very first frame after becomming an adult when you would trigger the Light Arrow cutscene can have undesired consequences. Just don't +do that. +-The equipment screen still cannot be easily navigated with all item configurations which can be especially problematic if the Biggoron Sword is found very early +or if shields cannot be easily purchased thanks to shopsanity. Getting the Master Sword and buying as many shields as you can is a good way to mitigate these issues. -- Seeds can be text instead of just numbers -- Can get, share, and import a settings string to quickly set seed-changing options -- Options are saved when closing the GUI and loaded when opening it -- Can set Output directory +# Settings -## Notable Logic changes +The OoT Randomizer has many different settings users can choose to customize their play experience. Here's a fully detailed list! -- The Heart Piece at the cow in Impa's house can be reached using only a chicken -- Giant stairs in Dodongo's Cavern can be lowered with the Bow as an adult (quickly shoot a bomb flower on both side of the stairs) -- The start of child-side Spirit Temple can be done with bombchus (aim the bombchu directly away from the bridge so that it crawls up the wall, across the ceiling, down the raised bridge, and explodes in front of the switch) -- The skulltula token in the central room of the Water Temple can be obtained without longshot by setting Farore's Wind in the room and using it to return to the room when the water level is back at its highest level -- In order to fix a potential softlock, Like-Likes do not steal tunics, but can still steal shields. +# ROM Options -## Optional Logic changes +## Base Rom -A bunch of optional logic changes can be applied from the "Detailed Logic" tab: +Specify the input ROM that will be used by the randomizer. Please be sure it is OoT US v1.0. -- Number of maximum expected gold skulltula tokens can be set -- Some particularly annoying locations can be removed from logic. This only makes it so that getting the item at the location is never required, it does not mean the location's vanilla item is not shuffled into the pool. For example, checking "No Biggoron Reward" just means that you cannot be expected to complete the adult trade sequence, it does not mean that the Biggoron Sword cannot be found somewhere in the world. -- A handful of easy tricks (that require some knowledge) can be marked to be usable -- Lens of Truth requirements and expectations can be set +## Output Directory -## Fast Ganon broken into components +Specify where the output ROM will be written on your computer. -What was once called `fast_ganon` is now broken into 3 separate options: +## Create Spoiler Log -- `trials`: specify the number of trials you need to do to dispel the barrier on Ganon's Tower (0-6). The trials you need to complete will be selected randomly. -- `unlocked_ganondorf`: the boss key door in Ganon's Tower will be unlocked from the start. -- `no_escape_sequence`: the tower collapse escape sequence between the Ganondorf and Ganon fights will be skipped . +Decide whether to output a text file detailing where every item can be found and the sequence of play that will lead to seed completion. Selecting this option will +create a different item configuration than using otherwise identical settings without printing a log; this is intended to prevent cheating in race environments. -## Gerudo Fortress options +## Compress Rom -Options for speeding up carpenter rescue portion of Gerudo Fortress +Decide the format of the output ROM. Compressed is generally recommended for most users; this is necessary for injection into a .wad for use on the Virtual Console, +and all known N64 emulators have significant crashing problems with uncompressed ROMs. Real N64 hardware doesn't care so generation time can be improved by using +the uncompressed option if you are playing on a real N64 with a flash cart. You can also choose not to output a ROM at all; this is useful if you just want to look +at spoiler logs. -- fast: Only the carpenter nearest to the prison Link is tossed into needs to be freed to obtain the Gerudo Card; the other three carpenters are freed from the start -- open: All carpenters are freed from the start, and you start with the Gerudo Card (and thus the bridge across the valley is always built) +## Default Targeting Option -There is also an option to shuffle the Gerudo Card into the item pool; this will only work if fortress is not open. A few notes on the behavior of Gerudo Fortress: +This option specifies whether Z-targeting will default to "Switch" or "Hold" style. Either way, this can still be changed in-game as per usual. -- In order to not be caught by guards, you must have rescued all carpenters. The Gerudo Card itself will not protect you. -- In order to enter Gerudo Training Grounds, you must rescue all carpenters AND have the Gerudo Card. This is the Gerudo Card's only purpose. -- Horseback Archery only requires rescuing all carpenters. -- In keysanity, the keys dropped by the guards at each carpenter's cell will be random items, and the fortress keys will be somewhere in the world. However, a key is not sufficient to open a cell: in order to unlock a cell, you must first defeat the guard in the room and collect the item they drop. +## Multi-World Generation -## Other Conveniences +This option allows for multiple worlds to be generated to be used in co-op play. Each player will get a different ROM designed to work in conjunction with another +to allow two players to work together to complete the game. Synchronization can be achieved on Bizhawk via the following script: -Options to skip some sequences that only pad the time of completing the game without ever really changing between seeds have been added: +https://github.com/TestRunnerSRL/bizhawk-co-op -- `no_guard_stealth`: the stealth sequence between the crawlspace into Hyrule Castle and Zelda's courtyard will be skipped. -- `no_epona_race`: you can summon Epona with her song without racing Ingo. -- `only_one_big_poe`: the poe buyer will give the reward after selling 1 Big Poe instead of 10. -- `default_targeting`: set the default targeting mode to be either `switch` or `hold`. -- `progressive_bombchus`: first bombchu pack is always 20. subsequent ones will give 10 if low, and 5 otherwise. -- `free_scarecrow`: Start with the Scarecrow Song. You do not need go to the scarecrow patch as adult or child to use the song. -- `scarecrow_song`: The song for the Scarecrow Song if `free_scarecrow` is True. Song notes can be any of AUDLR. +### Player Count -## Bombchus +Use this to specify how many players will be participating in this co-op playthrough. -Bombchus can be added to logic with `bombchus_in_logic`. That is, once you've found bombchus, you can be expected to use them as explosives, hit switches, etc. to make progress in the seed. In order to have this make sense, the following changes were made: +### Player ID -- The back alley bombchu shop will now stock bombchus once you have bombchus in your inventory (even if you have 0). All options in this shop no longer sell out, and the right shelf's bottom-left pack is a sale of 5 bombchus for 60 rupees. Thus, once you have found bombchus, you can always buy more. -- Bomchu Bowling is now playable only once you have bombchus in your inventory. This gives bombchus some unique power beyond the spirit trial, and also keeps them better self-contained (since you win bombchus from this mini-game). +Use this to specify which player number you are in particular. Each participant in the co-op should choose a different number starting with 1. -As a note, if you have access to the Wasteland carpet salesman and have a wallet upgrade, you can buy bombchus from him to get your first pack. +## Setting String -## Malon Egg +This is an 18 character string that specifies the totality of other gameplay relevant (non-cosmetic) settings used throughout the randomizer. This string can be shared +between players and then the "Import Settings String" button can be pressed to automatically change all settings to match another player. -The Weird Egg can be shuffled into the item pool with `shuffle_weird_egg`. This means that Malon will give a random item and that you must find the Weird Egg (and hatch it) before being able to visit Zelda. +## Seed -Regardless of whether of not you use this option, Malon has been sped up in the following ways: -- Malon will never appear in the Castle Market, instead she will be waiting by the vines from the start of the game -- You do not need to talk to Malon twice to get her item. She will give it by talking only once -- The condition for Malon to move to Lon Lon Ranch is now obtaining her item and Talon fleeing the castle (instead of just Talon fleeing the castle) -- At Lon Lon Ranch, you no longer need to speak to Malon multiple times before she will teach you her song. You can simply walk up to her and pull out your Ocarina. +This is a string representing the particular configuration of items that will occur in your seed; the purpose is to combine a seed string with an identical settings +string such that the randomizer will be able to generate the same game for multiple players. If this field is left blank, a random seed will be chosen. -## Fairy Ocarina and Ocarina of Time +# Main Rules -The Fairy Ocarina and Ocarina of Time can be shuffled into the item pool with `shuffle_ocarinas`. This means that Saria and the Ocarin of Time will give a random item and that you must find the Ocarina before being able to play any songs. +## Open Forest -## Shuffle Songs into the Pool +Mido does not need to see a sword and shield to reach the Deku Tree and the Kokiri boy blocking the exit to the forest is gone. If this flag is not set, it is +guaranteed that the Deku Tree can be completed without leaving the forest. This means that within the forest or the Deku Tree itself it will be possible to find +the Kokiri Sword, Deku Shield for sale, and the Slingshot. -Enabling `shuffle_song_items` will make learning songs into items and shuffle the songs into the item pool. Song can appear at any location, and any item can appear at the original song locations. +## Open Kakariko Gate + +The gate leading up Death Mountain from Kakariko Village is open from the beginning of the game. Normally this requires Zelda's Letter to open. This allows more +diverse routing early in the game and prevents very long walks in seeds with the Weird Egg shuffled. Two things are important to note. Showing Zelda's Letter to +the guard is still required to begin the Happy Mask sidequest and to receive a discount on purchasing Hylian Shields. The gate is simply gone for an adult no +matter what. + +## Open Door of Time + +The Door of Time is open from the beginning of the game. The Song of Time is still potentially useful to move Song of Time blocks, play songs for the frogs on Zora +River, or for other such uses. If this flag is not used, the Door of Time must be opened to become an adult as in the original game, but all that is needed to open +the Door of Time is the Song of Time and any ocarina. The Ocarina of Time in particular and the Spiritual Stones have nothing to do with this. + +## Gerudo Fortress + +### Default Behavior + +Gerudo Fortress will work the same way it did in the original game. All four carpenters must be rescued in order for the Gerudo woman who gives the Gerudo Card to +appear and for the Gerudo to stop being hostile. Rescuing a carpenter requires having a Gerudo Fortress Small Key and defeating the corresponding guard. + +### Rescue One Carpenter + +Only the bottom left carpenter must be rescued to complete Gerudo Fortress. Only one Gerudo Fortress Small Key will exist because of this. + +### Start with Gerudo Card + +The player will start with the Gerudo Card from the beginning of the game. The carpenters will be pre-rescued, and the bridge to Gerudo Fortress as an adult will +be repaired from the beginning. The Gerudo Card is the requirement in the randomizer to enter Gerudo Training Grounds so it will be an accessible area from the +moment adulthood is available. + +## Rainbow Bridge Requirement + +This determines the condition under which the rainbow bridge to Ganon's Castle will spawn. + +### All Dungeons + +The rainbow bridge spawn requires all medallions and spiritual stones to be in the player's possession. + +### All Medallions + +All six of the medallions are required to open Ganon's Castle. + +### Vanilla + +The rainbow bridge spawns under the same conditions it did in the original game, possession of the Light Arrows and having viewed the Zelda cutscene. This +cutscene in the Temple of Time is triggered by possessing the Shadow and Spirit Medallions. + +### Open + +The rainbow bridge is always present. + +## Random Number of Ganon's Trials + +A random number of trials within Ganon's Castle from 0 to 6 will be chosen, and individual trials will be randomly disabled as necessary to match this number. +Alternatively, a specific number of trials can be specified with the slider below. If a number of trials other than 0 or 6 is chosen and hints are enabled, +hints will be added to the hint pool informing the player which trials are present (if 1 to 3 trials) or which are missing (if 4 or 5 trials). + +## All Locations Reachable + +This option will set the logic to try to ensure Link can reach every item location in the game with the exception of "key for key" item locations (a single +item spot behind a locked door containing the key to open the door). If this option is not used, the logic will allow some items to be in impossible locations +so long as the set of reachable items is sufficient to complete the game. + +## Bombchus are considered in logic + +This option fundamentally changes how the Bombchu items found around the world function. With this option on, Bombchus are a progression item and operate as +a form of progressive item. The first Bombchu pack found will be worth 20 Bombchus and subsequent packs will be worth 10 or 5 Bombchus. Finding Bombchus will +be considered as logical progression, and having found any Bombchus will be the condition to play Bombchu Bowling or buy Bombchu items from shops. This flag +will also add Bombchu (5) buyable items to the shops in Kokiri Forest, Castle Town Bazaar, and Kakariko Bazaar. With this option off, randomly found Bombchu +items are not considered as logical progression, randomly found Bombchus will have specific denominations based on the values from the original game, and +finding a Bomb Bag is what enables playing Bombchu Bowling and buying Bombchus from shops which will not have their inventories edited. + +## Dungeons have one major item + +This option places one "major item" and one only in each of the dungeons. For the purpose of the randomizer, the dungeons are defined as the eight dungeons that +contain either Medallions or Spiritual Stones as well as Bottom of the Well, Ice Cavern, Gerudo Training Grounds, and Ganon's Castle. The major items are any +item usable with a c-button that is not simply a form of ammo (Bombchus are major only if "Bombchus are considered in logic" is on), songs, Mirror Shield, swords, +tunics, boots, Double Defense, Magic Meter/Double Magic, Bullet Bags, Quivers, Bomb Bags, Strength Upgrades, Scales, Wallets, and the Stone of Agony. To be +clear, this means that rupees, ammo, Deku Stick and Deku Nut ammo expansions, Pieces of Heart, Heart Containers, Gold Skulltulla Tokens, Maps, Compasses, +Small Keys, Boss Keys, Deku Shields, Hylian Shields, and Ice Traps are not considered major items. + +## Dungeon Quest + +This option specifies the form dungeons will take. The item pool will be updated to reflect the items originally found in the dungeons used. + +### Vanilla + +Dungeons will have the same internal layout as they did in the original The Legend of Zelda: Ocarina of Time. + +### Master Quest + +Dungeons will have the internal layouts found in The Legend of Zelda: Ocarina of Time Master Quest. + +### Mixed + +Dungeons will each have a random internal layout chosen between the vanilla and Master Quest forms. + +## Shuffle Kokiri Sword + +This flag adds the Kokiri Sword to the shuffle. With it off, the Kokiri Sword will always be found in its original chest in the Kokiri Forest. + +## Shuffle Weird Egg + +This flag adds the Weird Egg given by child Malon to the shuffle. With this flag on, child Malon will give a random item and the Weird Egg must be located +to do the events at Hyrule Castle with Zelda and Impa. These events block interacting with Talon and Malon at Lon Lon Ranch as a child as well as Saria in +Sacred Forest Meadow. + +## Shuffle Ocarinas + +This flag adds both the Fairy Ocarina and the Ocarina of Time to the shuffle. The ocarinas are a progressive item; the first found will always be the Fairy +Ocarina with the second being the Ocarina of Time even though the two are functionally identical. Without this flag on, leaving the Kokiri Forest to the +Lost Woods bridge as a child will always grant one Ocarina and the other is always available at the gate of Castle Town as a child when all three Spiritual +Stones are in the player's possession. + +## Shuffle Songs with Items + +This flag adds the 12 standard ocarina songs to the shuffle as normal items. With this flag on, the spots that contained songs in the original game will +simply give Link a random item, and the songs can be found as items freely. Without this flag on, songs are still randomized but only between each other. +In either case, the Scarecrow's Song is not affected; it is still obtained by interacting with Bonooru at Lake Hylia first as a kid and then as an adult. + +## Shuffle Gerudo Card + +This flag shuffles the Gerudo Card into the general item pool. In the randomizer, this is required to gain access to Gerudo Training Grounds, but it does +not have any impact on the hostility of the Gerudo in Gerudo Fortress who still check for the carpenter rescue events. Without this flag, the Gerudo +Card is always given by the Gerudo woman who spawns after the final carpenter is rescued. If Gerudo Fortress is cleared from the beginning of the game, +the player starts the game with the Gerudo Card and this setting is voided. + +## Shuffle Deku Salescrubs + +This flag makes every Deku Scrub Salesman in the world sell a random item instead of only the three that sold permanent upgrades in the original game. +Using this flag adds the various low tier items the other scrubs sold to the item pool for the most part; the potion refills are replaced with Recovery +Hearts for Red Potions and blue rupees for Green Potions. For each Deku Scrub that sold arrows/seeds depending on age, there will be a 75% chance of +adding a 30 arrow item and a 25% chance of adding a 30 seed item to the pool. While the text will not update, if this flag is used the price of every +Deku Scrub Salesman's item will be reduced to 10 rupees, and once the purchase is made that particular Deku Scrub Salesman will disappear forever. + +## Shopsanity + +This setting randomizes the items sold in shops. When it is used, all shop items are randomly re-arranged among all 8 of the original game's shops. +This setting causes the Bombchu Shop to be open from the very beginning of the game, and this setting considers the two shops in adult Kakariko +Village to be distinct shops from the two similar shops in child Castle Town; however, the shops in Kokiri Forest, Goron City, and Zora Domain are +the same shops as both ages. This setting overrides the "Bombchus considered in logic" editing of the shop item pool. + +### Off + +This disables the Shopsanity feature. + +### Shuffled Shops (0 Items) + +This causes all of the Shopsanity features described above. + +### Shuffled Shops (1-4 Items) + +This not only causes all of the Shopsanity features described above, but it also adds 1-4 (depending on the exact setting) items from the general +item pool into shops to buy for randomly chosen amounts of money. Lower value shop items are removed to make room for this, and low value junk items +are added to the item pool to fill the extra empty chests this will implicitly create. Using this feature will also replace several of the rupee +items found throughout the seed with higher value rupees and will add a third Wallet upgrade, the "Tycoon's Wallet", to the item pool which can hold +up to 999 rupees. The items from the general item pool added to shops will always be on the far left of the shop inventories, and these items can +always be bought if the player has enough rupees even if they are explosives without an appropriate container or a tunic as a child. + +### Shuffled Shops (Random Items) + +This is similar to the 1-4 items variant but gives each shop a random number of new items from 0-4. Each shop can have a different amount of unique +items with this setting. ## Shuffle Dungeon Items -The shuffling rules can be set separately for Maps/Compasses, Small Keys, and Boss Keys using `shuffle_mapcompass`, `shuffle_smallkeys`, and `shuffle_bosskeys` respectively. They can use one of the following rules: +This setting allows the player to decide the natural distribution of dungeon items. Dungeon items can be found confined to their original dungeons, +spread freely throughout the world, or prevented from existing completely. Items that are prevented from existing completely will be replaced in the +item pool with an assortment of various low tier junk items. This feature can be specified for Maps/Compasses, Small Keys, and Boss Keys independently. +If Small Keys or Boss Keys are prevented from existing, this will also remove all locks those keys would be used for from existing as well. If Small Keys +are left in their original dungeons and the Fire Temple is not in the form of Master Quest, the locked door in the first room that leads to the normal +location of the Boss Key will be removed. + +## Maps and Compasses give information + +This setting, only available if Maps and Compasses are spread across the world, disables the pedestal in the Temple of Time from giving information about +the location of the Medallions and Spiritual Stones. Instead, the Compass from each of the eight eligible dungeons will tell the player which dungeon has +which reward. If the dungeon quest is set to mixed, each of the ten Maps will tell the player whether any given dungeon is in the vanilla or Master Quest +form. The Compasses from Bottom of the Well and Ice Cavern do not give any information. -- `remove`: The dungeon item type is removed from the game. If it is a key, then the associated doors will be unlocked. -- `dungeon`: The dungeon item type will always appear in their own dungeon. -- `keysanity`: The dungeon item type are shuffles into the pool and can appear anywhere. +## Remove Ganon's Door Boss locked -Keysanity also adds a menu to view your current dungeon items. While in the item select screen, hold A and it will show current key counts along with maps and compasses. If the compass has been obtained then it will show the medallion/stone reward for the dungeon. If the map has been obatained it will indicate if the dungeon is a Master Quest dungeon or a vanilla Ocarina of Time dungeon. +This setting removes the Boss Key lock from Ganon's Tower. This removes the need to locate the Ganon's Tower Boss Key to finish the game. ## Tokensanity -Gold Skulltula Token are added to the item pool, and Gold Skulltula locations give random items. There are two levels for this option: complete shuffle of all 100 tokens, or shuffling only the tokens inside dungeons (there are 44.) The later option can add variance to small key layout in dungeons when keysanity is turned off. +This setting shuffles the Gold Skulltulla item drops into the general pool of locations. The player can choose only to include Gold Skulltullas +found in dungeons for a more mild version of this setting. -In addition there is an option for the logic to expect Sun's Song to obtain any night-only skulltula token. +# Detailed Logic -## Shopsanity +## Maximum expected Skulltulla tokens + +This setting can be used to reduce the number of Gold Skulltulla Tokens that may be required to finish the game. + +## No Nighttime Skulltullas without Sun's Song + +This setting causes the logic to expect the player to have an ocarina and the Sun's Song to get Gold Skulltulla locations that are only found at +nighttime. + +## No Big Poes + +This setting will guarantee that the Big Poe vendor will not have an important item. + +## No Child Fishing + +This setting will guarantee that the reward from child fishing is not an important item. This is mostly recommended if the player simply must play +on Bizhawk. + +## No Adult Fishing + +This setting will guarantee that the reward from adult fishing is not an important item. This is mostly recommended if the player simply must play +on Bizhawk. + +## No Skull Mask reward + +This setting will guarantee that the item obtained from showing the Skull Mask in the Deku Theater is not an important item. + +## No Mask of Truth reward + +This setting will guarantee that the item obtained from showing the Mask of Truth in the Deku Theater is not an important item. + +## No 1500 Horseback Archery + +This setting will guarantee that the item obtained from scoring 1500 points at the horseback archery challenge at Gerudo Fortress is not an +important item. + +## No Lost Woods Memory Game + +This setting will guarantee that the item obtained from winning the ocarina memory game in the Lost Woods is not an important item. + +## No Racing Dampe a second time + +This setting will guarantee that the item obtained from finishing with a sub-minute time in the second Dampe race is not an important item. + +## No Biggoron reward + +This setting will guarantee that the item obtained from showing the Claim Check to Biggoron is not an important item. + +## Adult Trade sequence + +This pair of settings can be used to specify the earliest and latest items that can be allowed to randomly show up in the general item pool. +Only one item will be in the item pool regardless of this setting; this can merely be used to limit the range of possibilities. + +## Require minor tricks + +This setting allows a huge number of minor tricks to be allowed by the logic. Here is a complete list: + +-A precise jumpslash with either a Deku Stick or the Kokiri Sword can be used to reach a Gold Skulltulla on some vines in standad Deku Tree. +-The Bow can be used to knock down the stairs in Dodongo's Cavern with two well timed shots. +-The vines in Forest Temple leading to where the well drain switch is in the standard form can be barely reached with the standard Hookshot. +-A Bombchu from the ground level can be used to hit the switch to bypass the block pushing puzzle in Forest Temple MQ. +-A rusted switch under a Song of Time block in the standard Fire Temple can be hit by using Hammer into the block. +-The location with the Boss Key chest in Fire Temple MQ can be reached without the Bow with very particular use of Din's Fire. +-The upper levels of the old boulder maze in Fire Temple MQ can be reached without explosives by using the Hammer through a wall. +-In the standard Spirit Temple, the bridge on child side can be lowered with a carefully timed Bombchu. +-The frozen switch in Spirit Temple MQ can be hit without a fire source by using the Bow and Song of Time very cleverly. +-The chest in the basement of the standard Bottom of the Well can be reached with no additional items by using a jump slash with a lit +Deku Stick. +-The first room of the Spirit Trail in Ganon's Castle MQ can be cleared without the Bow by using a Hammer jump slash to hit the rusted switch +through the thrones. +-The Gold Skulltulla in adult Kokiri Forest can be reached without the Hookshot by using Hover Boots off one of the roots. +-The child can reach the chest on Death Mountain trail with just the Goron Bracelet by backwalking with the Bomb Flower intended to open +Dodongo's Cavern and throwing the Bomb Flower at the wall very quickly. +-Gerudo Fortress can be cleared without any items other than those needed for access. The logic normally guarantees one of the Bow, Hookshot, or +Hover Boots to help navigate the "kitchen". + +Using this setting will also pre-set all of the lower logic flags to a reasonable configuration to match the trick level. These can then be +edited as the player desires if the given configuration isn't desired. + +## Man on Roof without Hookshot + +This allows the logic to consider a trick in which the player does a sidehop off the tall tower in Kakariko Village to reach the man on the +rooftop with no items. + +## Child Deadhand without Kokiri Sword + +This allows the logic to consider defeating the Deadhand in Bottom of the Well with Deku Sticks. This is not hard with use of the power crouch +stab glitch, but consistently landing actual jump slashes on his unusual hitbox is pretty difficult and using normal slashes consumes 9 Deku Sticks. + +## Dodongo's Cavern spike trap room jump without Hover Boots + +This allows the logic to consider that the adult can make a particularly useful jump in Dodongo's Cavern to reach the area with the Bomb Bag chest early. +Due to the precision of the jump, normally the logic expects Hover Boots to complete this path. + +## Windmill PoH as adult with nothing + +This allows the logic to consider a jump the adult can make in the windmill to reach the Piece of Heart within with no items. The jump requires leaping +from an object on which it is not obvious Link is allowed to stand and has counterintuitive timing so it is not in standard logic. + +## Crater's bean PoH with Hover Boots + +This allows the logic to consider using Hover Boots to reach the Piece of Heart atop the volcano in Death Mountain Crater. The path involves walking up a +very steep slope that is not visibly walkable so it is not in normal logic. + +## Zora's Domain entry with Cucco + +This allows the logic to consider using a Cucco on Zora River to enter Zora's Domain as a child without playing Zelda's Lullaby. It requires slipping behind +the waterfall trickily from the left side. + +## Zora's Domain entry with Hover Boots -Shop items are shuffled within the world's shops. The logic ensures that ammo is always available from a shop in order to use the associated item. The Kakariko and Market Bazaar are seperate shops, meaning that there is a total of 8 shops in the game. +This allows the logic to consider this similar trick to the above except as an adult with Hover Boots. This is actually a lot more difficult even though it can +be done from either side of the waterfall. -There is also an option to replace some number of shop items in each shop with a non-shop item. These items can only be purchased once, and may require having 1 or 2 wallet upgrades but never more than 300 rupees. You can choose to have up to 4 non-shop items per shop, making a total of 32 new item locations. The random option will have each shop have a different number of these items (0 to 4). These items will always be on the left side of the shop. +## Fewer Tunic Requirements -Since a lot more money is excepted to be needed to buy items, more money is added to the pool as well as a 3rd Wallet upgrade. The highest tier can hold 999 rupees. This will make it easier to obtain wallets earlier to help hold the added money. +This relaxes the tunic requirements by the logic somewhat. Normally the logic expects a Goron Tunic to enter Fire Temple or complete the Fire Trial in Ganon's Castle +and a Zora Tunic to enter Water Temple, collect the underwater silver rupees in Gerudo Training Grounds, or obtain the Piece of Heart at the bottom of the frozen Zora's +Fountain. With this flag set, the Goron Tunic will not be required to actually enter Fire Temple, only to fight Volvagia or to reach the upper floors. The Zora Tunic +requirements are removed completely except to reach the chest at the bottom of the central pillar in Water Temple. -## Shuffle Deku Scrubs +## Lens of Truth -This option will shuffle all the Deku Salesscrubs to give random items. There is a total of 36 total scrubs that sell items. You can only buy from each scrubs once. Because of the large amount of money normally required to purchase from all the scrubs (well over 1000 rupees) the cost of all scrubs is reduced to 10 rupees. For a reference, here is a list of all the locations: . +This setting alters the expectations about interacting with invisible objects without the Lens of Truth. -When this option is off, only the three unique Deku Salescrubs (Heart Piece, Stick Upgrade, and Nut Upgrade) will be randomized to a new item. Their prices and all other scrubs are unaffected. +### Required everywhere -## Master Quest +This setting requires the Lens of Truth to interact with any invisible object except for whatever was required in the original game to obtain the Lens of Truth. -It is now possible to change the dungeons into Master Quest variants. -- `vanilla`: Dungeons are vanilla Ocarina of Time Dungeons -- `master`: Dungeons are the variants from Master Quest -- `mixed`: Dungeons can be from either versions +### Wasteland and Chest Minigame -## Enhanced Map and Compass +This setting expects the Lens of Truth to be used only to cross the Haunted Wasteland and to win the Treasure Chest Minigame in Castle Town at night. -The map and compass can be made to give additional info. The option only applies if map and compasses can be shuffled to any location. -- The Compass will tell the dungeon's Medallion/Stone reward. The Temple of Time Altar will no longer give any info. -- The Map will tell whether the dungeon is vanilla or Master Quest. -The keysanity display will show the info once the map/compass has been found or the altar has been read, depending on the mode. +### Only Chest Minigame -## Changed hint system +This setting expects the Lens of Truth to be used only to win the Treasure Chest Minigame in Castle Town at night. -The hint system has been changed to include different kinds of hints (such as saying a location has something good, but not saying what item it is, or saying a specific item is somewhere in a dungeon, instead of giving the specific location, and so on.) An option has been added to allow talking to gossip stones from the start. Yes, this makes the Stone of Agony completely useless. +# Other -- `clearer_hints`: hints will be more obvious what item and locations they are referring to. +## Skip Tower Collapse Sequence -## Text shuffle +This setting causes defeating Ganondorf to skip directly to the Ganon fight without the need to do the collapsing Ganon's Tower sequence. -You can shuffle most of the text in the game. This is hilarious, but can get really confusing when buying from shops and such, so make sure you really know what people are actually asking for. +## Skip Interior Castle Guard Stealth Sequence -## Ocarina song randomization +This setting causes entering the crawlspace at Hyrule Castle to deposit the player directly into the Castle Courtyard, bypassing the guard +evasion sequence. -You can randomize the note pattern that is required to activate each song. The new songs will be properly taught to you when you learn them, and can always be checked on the quest status screen like normal. +## Skip Epona Race -## Navi color options +This setting causes Epona to be stolen from Ingo from the start of the game, only requiring Epona's Song and an ocarina as an adult to summon. -Similar to the tunic color options, you can change Navi's color for each of her different kinds of targets. +## Fast Chest Cutscenes -## Navi sound options +This setting causes all chests to open with a quick animation. If this setting is off, certain important items will trigger the slow opening animation. -Similar to the low health sound option, you can change the sound Navi makes while targeting or when she has a hint for you. +## Random Big Poe Target Count + +This setting causes the number of Big Poes that must be turned into the vendor to obtain his item to be random from 1-10. Alternatively, the number +of Big Poes requires can be selected manually with the slider below. Note that Big Poes can be found as pre-stocked Bottle contents, and the logic +can expect using them if the required number is sufficiently low. + +## Start with Scarecrow's Song + +This flag causes Pierre the Scarecrow to be available to summon for the adult from the beginning of the game. The box below can be used to +specify the particular desired Scarecrow's Song. This song must be exactly eight notes long and must contain at least two different notes. + +## Randomize ocarina song notes + +This flag randomizes the particular notes in the 12 standard ocarina songs. This can predictably be pretty obnoxious. In general, the patterns chosen +for the top row songs will be simpler than the patterns chosen for warp songs. ## Chest size matches contents -`correct_chest_sizes`: Major items will appear in a large chest and other items in small chests. There are a few places that cannot be correctly updated: -- Chests in Generic Grottos -- Chests summoned by Zelda's Lullaby -- Chests summoned by Sun's Song Triggered -- Chests summoned by a switch that do not fall +This flag causes keys, Ice Traps, and items flagged as progression items to appear in large treasure chests while other items will be in small treasure chests. +This means that players can choose to skip small treasure chests since they will only contain handy, not essential, items. + +## Clearer hints + +This flag changes the text of Gossip Stone hints to be overwhelmingly explicit. This is helpful for players who do not have English as their first language, +but the hints will be less "fun" and less like the sorts of things that would be said in the original game. + +## Gossip Stones + +This flag changes the behavior of Gossip Stones to give hints to players. The hints will be distributed as such: + +-If the required number of trials is 1-3, a hint will be added for each trial that must be done. If the required number of trials is 4 or 5, a hint will be added +for each trial that can be skipped. +-Hints will be added for every one of the "always" locations that is allowed to have a random possibly valuable item under the current settings. These hints +will tell the player what item is at each of these locations. These locations are the rewards for 30, 40, and 50 Gold Skulltulla Tokens, the item obtained from +Biggoron by showing the Claim Check, the item obtained from the Big Poe vendor, both the song and the item slots at the Ocarina of Time, and the item obtained +from showing the Mask of Truth at the Deku Theater. +-Some hints will be given for items at a randomly selected number of other locations that are generally somewhat inconvenient to check. The total number of these +hints will be either 11 or 12 minus the number of always hints placed. +-3 or 4 hints will be given naming a specific non-dungeon specific item that can be found in a randomly chosen dungeon. +-1 to 4 hints will be given naming a specific item found in a specific overworld region. Which part of this range is used is determined in part by how many +trial hints are given. +-4 to 6 hints will be given naming what region specific progression items other than Gold Skulltulla Tokens can be found. +-3 or 4 hints will be given naming specific regions that are "on the way of the hero" and thus contain at least one required progression item. +-All remaining hints (33 total unique Gossip Stones exist) will be filled with non-information junk hints. + +This setting allows the player to specify which item is required to interact with the Gossip Stones. The Stone of Agony is the default option as it gives a +fairly purposeless vanilla item a use and allows both kid and adult to interact with the Gossip Stones. The default Mask of Truth can be used, but this has +the downside that the Mask of Truth can only be obtained with all Spiritual Stones which tends to make the hints not useful, and using the Mask of Truth +requires being a child which is another big downside. There is also an option for the information to just be free for those wanting an easier mode. + +## Text Shuffle + +This setting allows all the text in the game to be shuffled. This is mostly for comedy and is not intended to be a serious gameplay option. + +### No text shuffled + +Leave the text alone. + +### Shuffled except Hints and Keys + +Shuffle all text other than the useful text giving the player information. + +### All text shuffled + +Shuffle all text even to the player's mechanical disadvantage. + +## Difficulty + +This setting allows the player to tweak the item pool to make a somewhat harder experience. + +### Normal + +Leave the item pool alone. + +### Hard + +Heart Containers, Double Defense, and the second Magic Upgrade are replaced with junk items. + +### Very Hard + +In addition to the items from Hard, Pieces of Heart and Nayru's Love are also replaced with junk items. + +### OHKO + +In addition to the item changes from Very Hard, Link dies in one hit. Ice Traps are replaced with Recovery Hearts. + +# Cosmetics + +## Background Music + +### Normal + +Do not alter the background music. + +### No Music + +Disable background music. Sound effects will still play. This may be desired by players who like to listen to their own music. + +### Random + +Background music is shuffled so that different tracks may play in different areas. This may be silly. + +## Kokiri Tunic Color + +This determines the color of Link's default Kokiri Tunic. This only affects the color when he's wearing it, not the color of the icon in the menu. + +### Most Colors + +Simply get the particular color selected. Available colors are Kokiri Green, Goron Red, Zora Blue, Black, White, Purple, Yellow, Orange, Pink, Gray, +Brown, Gold, Silver, Beige, Teal, Royal Blue, Sonic Blue, Blood Red, Blood Orange, NES Green, Dark Green, and Lumen. + +### Random Choice + +Choose a random color from the set of pre-made colors. + +### Completely Random + +Generate a random color with numerically random RGB values. + +### Custom Color + +A special interface will pop up that will allow the user to choose any color from a diverse color wheel or input a desired RGB value. + +## Goron Tunic Color + +This determines the color of Link's Goron Tunic. This only affects the color when he's wearing it, not the color of the icon in the menu or when +holding it up after acquiring it. The options are identical to those for the Kokiri Tunic. + +## Zora Tunic Color + +This determines the color of Link's Zora Tunic. This only affects the color when he's wearing it, not the color of the icon in the menu or when +holding it up after acquiring it. The options are identical to those for the Kokiri Tunic. + +## Low Health SFX + +This determines which sound effect to play repeatedly when Link is very low on health. Several of these options are designed to be potentially +more pleasant to listen to while a few are designed to be more amusing. + +### Particular Sounds + +Set this particular sound for the heart beep. Available choices are Default, Softer Beep, Rupee, Timer, Tamborine, Recovery Heart, Carrot Refill, +Navi - Hey!, Zelda - Gasp, Cluck, and Mweep!. The last of these is indeed the sound a king might make when moving... very slowly. + +### Random Choice + +Play a random SFX from the list of choices. + +### None + +Disable low health heart beeps altogether. + +## Navi Color + +These options can be used to set Navi's color in a variety of contexts. The lists of pre-set colors here is different, but the same types of options +exist as for choosing tunic colors. + +## Navi Hint + +This option sets the SFX that will play when Navi is ready to give a hint. The options are very similar to the Low Health SFX. + +## Navi Enemy Target + +This option sets the SFX that will play when Navi targets an enemy. The options are very similar to the Low Health SFX. + +# Command Line Options + +``` +-h, --help +``` + +Show the help message and exit. + +``` +--create_spoiler +``` + +Output a Spoiler File (default: False) + +``` +--bridge [{medallions,vanilla,dungeons,open}] +``` + +Select the condition to spawn the Rainbow Bridge to Ganon's Castle. (default: medallions) + +``` +--kokiricolor [{'Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Purple', 'Yellow', 'Orange', 'Pink', 'Gray', 'Brown', 'Gold', 'Silver', 'Beige', 'Teal', 'Royal Blue', 'Sonic Blue', 'Blood Red', 'Blood Orange', 'NES Green', 'Dark Green', 'Random', 'True Random'}] +``` + +Select the color of Link's Kokiri Tunic. (default: Kokiri Green) + +``` +--goroncolor [{'Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Purple', 'Yellow', 'Orange', 'Pink', 'Gray', 'Brown', 'Gold', 'Silver', 'Beige', 'Teal', 'Royal Blue', 'Sonic Blue', 'Blood Red', 'Blood Orange', 'NES Green', 'Dark Green', 'Random', 'True Random'}] +``` + +Select the color of Link's Goron Tunic. (default: Goron Red) + +``` +--zoracolor [{'Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Purple', 'Yellow', 'Orange', 'Pink', 'Gray', 'Brown', 'Gold', 'Silver', 'Beige', 'Teal', 'Royal Blue', 'Sonic Blue', 'Blood Red', 'Blood Orange', 'NES Green', 'Dark Green', 'Random', 'True Random'}] +``` + +Select the color of Link's Zora Tunic. (default: Zora Blue) + +``` +--healthSFX [{'Default', 'Softer Beep', 'Rupee', 'Timer', 'Tamborine', 'Recovery Heart', 'Carrot Refill', 'Navi - Hey!', 'Zelda - Gasp', 'Cluck', 'Mweep!', 'Random', 'None'}] +``` + +Select the sound effect that loops at low health. (default: Default) + +``` +--rom ROM +``` + +Path to a The Legend of Zelda: Ocarina of Time NTSC-US v1.0 ROM. (default: ZELOOTROMDEC.z64) + +``` +--loglevel [{error,info,warning,debug}] +``` + +Select level of logging for output. (default: info) + +``` +--seed SEED +``` + +Define seed number to generate. (default: None) + +``` +--count COUNT +``` + +Set the count option (default: None) + +``` +--open_forest +``` + +Set whether Kokiri children obstruct your path at the beginning of the game. (default: False) + +``` +--open_door_of_time +``` + +Set whether the Door of Time is open from the beginning of the game. (default: False) + +``` +--fast_ganon +``` + +Set whether most of Ganon's Castle can be skipped. (default: False) + +``` +--nodungeonitems +``` + +If set, Compasses and Maps are removed from the dungeon item pools and replaced by five rupee chests that may end up anywhere in the world. +This may lead to different amount of itempool items being placed in a dungeon than you are used to. (default: False) + +``` +--beatableonly +``` + +Enables the "Only Ensure Seed Beatable" option (default: False) + +``` +--hints +``` + +Gossip Stones provide helpful hints about which items are in inconvenient locations if the Stone of Agony is in the player's inventory. (default: False) + +``` +--suppress_rom +``` + +Enables the "Do not Create Patched Rom" option. (default: False) -## Difficulty options +``` +--compress_rom +``` -If you seek an additional challenge in regards to combat during the randomizer, you can increase the difficulty with the following settings: +Create a compressed version of the output ROM file. (default: False) -- `normal`: no changes to the item pool -- `hard`: double defense, double magic, and all 8 heart containers are removed -- `very_hard`: Double defense, double magic, Nayru's Love, and all health upgrades are removed -- `ohko`: Link die in one hit... +``` +--gui +``` -The `hard` difficulty still leaves the heart pieces in the pool, so you can gain up to 12 hearts total, likely a few less though. It also doesn't remove NL, but still takes away double magic so it can't be spammed for multiple minutes of invulnerability. -The `very_hard` difficulty just takes it all away, meaning the player will stay at 3 hearts without double defense or Nayru's Love. +Open the graphical user interface. Preloads selections with set command line parameters. From 3a40f692a94d8677e8e2d3af2232f6965fe2e653 Mon Sep 17 00:00:00 2001 From: AmazingAmpharos Date: Mon, 1 Oct 2018 14:59:52 -0500 Subject: [PATCH 623/755] Fix a rename of some flags I changed HP to PoH for consistency but missed actually updating the rules file. This is a fix for that. I also fixed a line in the readme to be more accurate. --- README.md | 4 ++-- Rules.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index ae0bbe4f2..de17365d2 100644 --- a/README.md +++ b/README.md @@ -474,8 +474,8 @@ This setting allows a huge number of minor tricks to be allowed by the logic. He -The upper levels of the old boulder maze in Fire Temple MQ can be reached without explosives by using the Hammer through a wall. -In the standard Spirit Temple, the bridge on child side can be lowered with a carefully timed Bombchu. -The frozen switch in Spirit Temple MQ can be hit without a fire source by using the Bow and Song of Time very cleverly. --The chest in the basement of the standard Bottom of the Well can be reached with no additional items by using a jump slash with a lit -Deku Stick. +-The chest in the basement of the standard Bottom of the Well can be reached with only a Strength Upgrade by using a jump slash with a lit +Deku Stick to access the bomb flowers in the basement. -The first room of the Spirit Trail in Ganon's Castle MQ can be cleared without the Bow by using a Hammer jump slash to hit the rusted switch through the thrones. -The Gold Skulltulla in adult Kokiri Forest can be reached without the Hookshot by using Hover Boots off one of the roots. diff --git a/Rules.py b/Rules.py index 247e31163..dfacb7d04 100644 --- a/Rules.py +++ b/Rules.py @@ -202,7 +202,7 @@ def global_rules(world): set_rule(world.get_location('Dampe Race Freestanding PoH'), lambda state: not world.logic_no_second_dampe_race) set_rule(world.get_location('Graveyard Freestanding PoH'), lambda state: state.can_use('Magic Bean') or state.can_use('Longshot')) set_rule(world.get_location('Song at Windmill'), lambda state: state.is_adult() and state.has_ocarina()) - set_rule(world.get_location('Windmill Freestanding PoH'), lambda state: (state.is_adult() and (world.logic_windmill_hp or state.can_play('Song of Time'))) or state.has('Boomerang')) + set_rule(world.get_location('Windmill Freestanding PoH'), lambda state: (state.is_adult() and (world.logic_windmill_poh or state.can_play('Song of Time'))) or state.has('Boomerang')) set_rule(world.get_entrance('Temple Warp Pad'), lambda state: state.can_play('Prelude of Light') and state.can_leave_forest()) set_rule(world.get_location('Sheik at Temple'), lambda state: state.has('Forest Medallion') and state.is_adult()) set_rule(world.get_location('Diving in the Lab'), lambda state: state.has('Progressive Scale', 2)) @@ -217,7 +217,7 @@ def global_rules(world): set_rule(world.get_entrance('Crater Bridge Reverse'), lambda state: state.can_use('Hover Boots') or state.can_use('Hookshot') or state.can_use('Magic Bean')) set_rule(world.get_entrance('Crater Warp Pad'), lambda state: state.can_play('Bolero of Fire') and state.can_leave_forest()) set_rule(world.get_entrance('Crater Fairy'), lambda state: state.can_use('Hammer')) - set_rule(world.get_location('DM Crater Volcano Freestanding PoH'), lambda state: (state.can_use('Magic Bean') and state.can_play('Bolero of Fire')) or (world.logic_crater_bean_hp_with_hovers and state.can_use('Hover Boots'))) + set_rule(world.get_location('DM Crater Volcano Freestanding PoH'), lambda state: (state.can_use('Magic Bean') and state.can_play('Bolero of Fire')) or (world.logic_crater_bean_poh_with_hovers and state.can_use('Hover Boots'))) set_rule(world.get_entrance('Fire Temple Entrance'), lambda state: state.is_adult() and (world.logic_fewer_tunic_requirements or state.has_GoronTunic())) set_rule(world.get_location('Sheik in Crater'), lambda state: state.is_adult()) set_rule(world.get_location('Link the Goron'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade') or state.has_explosives() or state.has_bow())) From 55175b89020002ceda8049c6774224ed9cc912f2 Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 3 Oct 2018 05:02:16 -0400 Subject: [PATCH 624/755] Fixing some missing random_choices for the python 3.5 compatibility --- ASM/build/asm_symbols.txt | 2130 ++-- ASM/build/bundle.o | Bin 10168 -> 10168 bytes ASM/build/c_symbols.txt | 122 +- ASM/scripts/build.py | 2 +- Patches.py | 8 +- Settings.py | 3 +- data/rom_patch.txt | 23991 ++++++++++++++++++------------------ data/symbols.json | 64 +- version.py | 2 +- 9 files changed, 13161 insertions(+), 13161 deletions(-) diff --git a/ASM/build/asm_symbols.txt b/ASM/build/asm_symbols.txt index dba03abb5..36e4c728f 100644 --- a/ASM/build/asm_symbols.txt +++ b/ASM/build/asm_symbols.txt @@ -1,1066 +1,1066 @@ -00000000 0 -00000000 .byt:4000000 -00000010 .dbl:0008 -00000010 ITEM_TABLE_ROW_SIZE -000005B4 Shop_Item_Save_Offset -0000D260 .dbl:0010 -0000D270 .dbl:0010 -008A9C00 .byt:0400 -00D74990 skip_steal_tunic -00D7E178 @@not_in_ranch -00D7E18C @@return -00D7E18C return_from_the_other_function -00D7E3AC @@hyrule_check -00D7E3CC @@lon_lon_check -00D7E3F4 @@return_false -00D7E7A4 @@set_ev0 -00D7E7B8 set_ev1 -00D7E8A8 @@unsafe -00D7E8C0 @@safe -00D7E8D4 @@not_hyrule -00D7E920 ev0_return -00DB13D3 .byt:0001 -00DF264F .byt:0001 -00E2F093 .byt:0001 -00EBB8B0 @Deku_Check_True -00EBB8C0 @Deku_Check_False -00EC68D0 .byt:0014 -00EC69C0 .byt:0014 -00EC9CE7 .byt:0001 -8011A5D0 SAVE_CONTEXT -801C84A0 GLOBAL_CONTEXT -801DAA30 PLAYER_ACTOR -803A9E7E GET_ITEMTABLE -80400000 init -80400050 DebugOutput -80401000 .byt:0800 -80401000 ITEM_OVERRIDES -80401800 .byt:0400 -80401800 INITIAL_SAVE_DATA -80401C00 .byt:0001 -80401C00 PLAYER_ID -80401C01 .byt:0001 -80401C01 LIGHT_ARROW_ITEM -80401C02 .byt:0001 -80401C02 FAIRY_OCARINA_ITEM -80401C03 .byt:0001 -80401C03 FAIRY_ITEMS -80401C04 .byt:0001 -80401C05 .byt:0001 -80401C06 .byt:0001 -80401C07 .byt:0001 -80401C08 .byt:0001 -80401C0C .byt:03F4 -80402000 .dbl:0008 -80402000 PLAYER_OVERRIDE_DATA -80402008 .dbl:0010 -80402008 EXTENDED_ITEM_DATA -80402018 .byt:0001 -80402018 PENDING_SPECIAL_ITEM -80402019 .byt:0001 -8040201A .byt:0001 -8040201B .byt:0001 -8040201B PENDING_SPECIAL_ITEM_END -8040201C .dbl:0004 -8040201C TIME_TRAVEL_SAVED_EQUIPS -80402020 .dbl:0004 -80402024 .wrd:0002 -80402026 .wrd:0002 -80402028 .byt:0028 -80402050 .byt:0001 -80402050 ITEM_TABLE -80402051 .byt:0001 -80402052 .byt:0001 -80402053 .byt:0001 -80402054 .wrd:0002 -80402056 .byt:0001 -80402057 .byt:0001 -80402058 .dbl:0004 -8040205C .dbl:0004 -80402060 .byt:0001 -80402061 .byt:0001 -80402062 .byt:0001 -80402063 .byt:0001 -80402064 .wrd:0002 -80402066 .byt:0001 -80402067 .byt:0001 -80402068 .dbl:0004 -8040206C .dbl:0004 -80402070 .byt:0001 -80402071 .byt:0001 -80402072 .byt:0001 -80402073 .byt:0001 -80402074 .wrd:0002 -80402076 .byt:0001 -80402077 .byt:0001 -80402078 .dbl:0004 -8040207C .dbl:0004 -80402080 .byt:0001 -80402081 .byt:0001 -80402082 .byt:0001 -80402083 .byt:0001 -80402084 .wrd:0002 -80402086 .byt:0001 -80402087 .byt:0001 -80402088 .dbl:0004 -8040208C .dbl:0004 -80402090 .byt:0001 -80402091 .byt:0001 -80402092 .byt:0001 -80402093 .byt:0001 -80402094 .wrd:0002 -80402096 .byt:0001 -80402097 .byt:0001 -80402098 .dbl:0004 -8040209C .dbl:0004 -804020A0 .byt:0001 -804020A1 .byt:0001 -804020A2 .byt:0001 -804020A3 .byt:0001 -804020A4 .wrd:0002 -804020A6 .byt:0001 -804020A7 .byt:0001 -804020A8 .dbl:0004 -804020AC .dbl:0004 -804020B0 .byt:0001 -804020B1 .byt:0001 -804020B2 .byt:0001 -804020B3 .byt:0001 -804020B4 .wrd:0002 -804020B6 .byt:0001 -804020B7 .byt:0001 -804020B8 .dbl:0004 -804020BC .dbl:0004 -804020C0 .byt:0001 -804020C1 .byt:0001 -804020C2 .byt:0001 -804020C3 .byt:0001 -804020C4 .wrd:0002 -804020C6 .byt:0001 -804020C7 .byt:0001 -804020C8 .dbl:0004 -804020CC .dbl:0004 -804020D0 .byt:0001 -804020D1 .byt:0001 -804020D2 .byt:0001 -804020D3 .byt:0001 -804020D4 .wrd:0002 -804020D6 .byt:0001 -804020D7 .byt:0001 -804020D8 .dbl:0004 -804020DC .dbl:0004 -804020E0 .byt:0001 -804020E1 .byt:0001 -804020E2 .byt:0001 -804020E3 .byt:0001 -804020E4 .wrd:0002 -804020E6 .byt:0001 -804020E7 .byt:0001 -804020E8 .dbl:0004 -804020EC .dbl:0004 -804020F0 .byt:0001 -804020F1 .byt:0001 -804020F2 .byt:0001 -804020F3 .byt:0001 -804020F4 .wrd:0002 -804020F6 .byt:0001 -804020F7 .byt:0001 -804020F8 .dbl:0004 -804020FC .dbl:0004 -80402100 .byt:0001 -80402101 .byt:0001 -80402102 .byt:0001 -80402103 .byt:0001 -80402104 .wrd:0002 -80402106 .byt:0001 -80402107 .byt:0001 -80402108 .dbl:0004 -8040210C .dbl:0004 -80402110 .byt:0001 -80402111 .byt:0001 -80402112 .byt:0001 -80402113 .byt:0001 -80402114 .wrd:0002 -80402116 .byt:0001 -80402117 .byt:0001 -80402118 .dbl:0004 -8040211C .dbl:0004 -80402120 .byt:0001 -80402121 .byt:0001 -80402122 .byt:0001 -80402123 .byt:0001 -80402124 .wrd:0002 -80402126 .byt:0001 -80402127 .byt:0001 -80402128 .dbl:0004 -8040212C .dbl:0004 -80402130 .byt:0001 -80402131 .byt:0001 -80402132 .byt:0001 -80402133 .byt:0001 -80402134 .wrd:0002 -80402136 .byt:0001 -80402137 .byt:0001 -80402138 .dbl:0004 -8040213C .dbl:0004 -80402140 .byt:0001 -80402141 .byt:0001 -80402142 .byt:0001 -80402143 .byt:0001 -80402144 .wrd:0002 -80402146 .byt:0001 -80402147 .byt:0001 -80402148 .dbl:0004 -8040214C .dbl:0004 -80402150 .byt:0001 -80402151 .byt:0001 -80402152 .byt:0001 -80402153 .byt:0001 -80402154 .wrd:0002 -80402156 .byt:0001 -80402157 .byt:0001 -80402158 .dbl:0004 -8040215C .dbl:0004 -80402160 .byt:0001 -80402161 .byt:0001 -80402162 .byt:0001 -80402163 .byt:0001 -80402164 .wrd:0002 -80402166 .byt:0001 -80402167 .byt:0001 -80402168 .dbl:0004 -8040216C .dbl:0004 -80402170 .byt:0001 -80402171 .byt:0001 -80402172 .byt:0001 -80402173 .byt:0001 -80402174 .wrd:0002 -80402176 .byt:0001 -80402177 .byt:0001 -80402178 .dbl:0004 -8040217C .dbl:0004 -80402180 .byt:0001 -80402181 .byt:0001 -80402182 .byt:0001 -80402183 .byt:0001 -80402184 .wrd:0002 -80402186 .byt:0001 -80402187 .byt:0001 -80402188 .dbl:0004 -8040218C .dbl:0004 -80402190 .byt:0001 -80402191 .byt:0001 -80402192 .byt:0001 -80402193 .byt:0001 -80402194 .wrd:0002 -80402196 .byt:0001 -80402197 .byt:0001 -80402198 .dbl:0004 -8040219C .dbl:0004 -804021A0 .byt:0001 -804021A1 .byt:0001 -804021A2 .byt:0001 -804021A3 .byt:0001 -804021A4 .wrd:0002 -804021A6 .byt:0001 -804021A7 .byt:0001 -804021A8 .dbl:0004 -804021AC .dbl:0004 -804021B0 .byt:0001 -804021B1 .byt:0001 -804021B2 .byt:0001 -804021B3 .byt:0001 -804021B4 .wrd:0002 -804021B6 .byt:0001 -804021B7 .byt:0001 -804021B8 .dbl:0004 -804021BC .dbl:0004 -804021C0 .byt:0001 -804021C1 .byt:0001 -804021C2 .byt:0001 -804021C3 .byt:0001 -804021C4 .wrd:0002 -804021C6 .byt:0001 -804021C7 .byt:0001 -804021C8 .dbl:0004 -804021CC .dbl:0004 -804021D0 .byt:0001 -804021D1 .byt:0001 -804021D2 .byt:0001 -804021D3 .byt:0001 -804021D4 .wrd:0002 -804021D6 .byt:0001 -804021D7 .byt:0001 -804021D8 .dbl:0004 -804021DC .dbl:0004 -804021E0 .byt:0001 -804021E1 .byt:0001 -804021E2 .byt:0001 -804021E3 .byt:0001 -804021E4 .wrd:0002 -804021E6 .byt:0001 -804021E7 .byt:0001 -804021E8 .dbl:0004 -804021EC .dbl:0004 -804021F0 .byt:0001 -804021F1 .byt:0001 -804021F2 .byt:0001 -804021F3 .byt:0001 -804021F4 .wrd:0002 -804021F6 .byt:0001 -804021F7 .byt:0001 -804021F8 .dbl:0004 -804021FC .dbl:0004 -80402200 .byt:0001 -80402201 .byt:0001 -80402202 .byt:0001 -80402203 .byt:0001 -80402204 .wrd:0002 -80402206 .byt:0001 -80402207 .byt:0001 -80402208 .dbl:0004 -8040220C .dbl:0004 -80402210 .byt:0001 -80402211 .byt:0001 -80402212 .byt:0001 -80402213 .byt:0001 -80402214 .wrd:0002 -80402216 .byt:0001 -80402217 .byt:0001 -80402218 .dbl:0004 -8040221C .dbl:0004 -80402220 .byt:0001 -80402221 .byt:0001 -80402222 .byt:0001 -80402223 .byt:0001 -80402224 .wrd:0002 -80402226 .byt:0001 -80402227 .byt:0001 -80402228 .dbl:0004 -8040222C .dbl:0004 -80402230 .byt:0001 -80402231 .byt:0001 -80402232 .byt:0001 -80402233 .byt:0001 -80402234 .wrd:0002 -80402236 .byt:0001 -80402237 .byt:0001 -80402238 .dbl:0004 -8040223C .dbl:0004 -80402240 .byt:0001 -80402241 .byt:0001 -80402242 .byt:0001 -80402243 .byt:0001 -80402244 .wrd:0002 -80402246 .byt:0001 -80402247 .byt:0001 -80402248 .dbl:0004 -8040224C .dbl:0004 -80402250 .byt:0001 -80402251 .byt:0001 -80402252 .byt:0001 -80402253 .byt:0001 -80402254 .wrd:0002 -80402256 .byt:0001 -80402257 .byt:0001 -80402258 .dbl:0004 -8040225C .dbl:0004 -80402260 .byt:0001 -80402261 .byt:0001 -80402262 .byt:0001 -80402263 .byt:0001 -80402264 .wrd:0002 -80402266 .byt:0001 -80402267 .byt:0001 -80402268 .dbl:0004 -8040226C .dbl:0004 -80402270 .byt:0001 -80402271 .byt:0001 -80402272 .byt:0001 -80402273 .byt:0001 -80402274 .wrd:0002 -80402276 .byt:0001 -80402277 .byt:0001 -80402278 .dbl:0004 -8040227C .dbl:0004 -80402280 .byt:0001 -80402281 .byt:0001 -80402282 .byt:0001 -80402283 .byt:0001 -80402284 .wrd:0002 -80402286 .byt:0001 -80402287 .byt:0001 -80402288 .dbl:0004 -8040228C .dbl:0004 -80402290 .byt:0001 -80402291 .byt:0001 -80402292 .byt:0001 -80402293 .byt:0001 -80402294 .wrd:0002 -80402296 .byt:0001 -80402297 .byt:0001 -80402298 .dbl:0004 -8040229C .dbl:0004 -804022A0 .byt:0001 -804022A1 .byt:0001 -804022A2 .byt:0001 -804022A3 .byt:0001 -804022A4 .wrd:0002 -804022A6 .byt:0001 -804022A7 .byt:0001 -804022A8 .dbl:0004 -804022AC .dbl:0004 -804022B0 .byt:0001 -804022B1 .byt:0001 -804022B2 .byt:0001 -804022B3 .byt:0001 -804022B4 .wrd:0002 -804022B6 .byt:0001 -804022B7 .byt:0001 -804022B8 .dbl:0004 -804022BC .dbl:0004 -804022C0 .byt:0001 -804022C1 .byt:0001 -804022C2 .byt:0001 -804022C3 .byt:0001 -804022C4 .wrd:0002 -804022C6 .byt:0001 -804022C7 .byt:0001 -804022C8 .dbl:0004 -804022CC .dbl:0004 -804022D0 .byt:0001 -804022D1 .byt:0001 -804022D2 .byt:0001 -804022D3 .byt:0001 -804022D4 .wrd:0002 -804022D6 .byt:0001 -804022D7 .byt:0001 -804022D8 .dbl:0004 -804022DC .dbl:0004 -804022E0 .byt:0001 -804022E1 .byt:0001 -804022E2 .byt:0001 -804022E3 .byt:0001 -804022E4 .wrd:0002 -804022E6 .byt:0001 -804022E7 .byt:0001 -804022E8 .dbl:0004 -804022EC .dbl:0004 -804022F0 .byt:0001 -804022F1 .byt:0001 -804022F2 .byt:0001 -804022F3 .byt:0001 -804022F4 .wrd:0002 -804022F6 .byt:0001 -804022F7 .byt:0001 -804022F8 .dbl:0004 -804022FC .dbl:0004 -80402300 .byt:0001 -80402301 .byt:0001 -80402302 .byt:0001 -80402303 .byt:0001 -80402304 .wrd:0002 -80402306 .byt:0001 -80402307 .byt:0001 -80402308 .dbl:0004 -8040230C .dbl:0004 -80402310 .byt:0001 -80402311 .byt:0001 -80402312 .byt:0001 -80402313 .byt:0001 -80402314 .wrd:0002 -80402316 .byt:0001 -80402317 .byt:0001 -80402318 .dbl:0004 -8040231C .dbl:0004 -80402320 .byt:0001 -80402321 .byt:0001 -80402322 .byt:0001 -80402323 .byt:0001 -80402324 .wrd:0002 -80402326 .byt:0001 -80402327 .byt:0001 -80402328 .dbl:0004 -8040232C .dbl:0004 -80402330 .byt:0001 -80402331 .byt:0001 -80402332 .byt:0001 -80402333 .byt:0001 -80402334 .wrd:0002 -80402336 .byt:0001 -80402337 .byt:0001 -80402338 .dbl:0004 -8040233C .dbl:0004 -80402340 .byt:0001 -80402341 .byt:0001 -80402342 .byt:0001 -80402343 .byt:0001 -80402344 .wrd:0002 -80402346 .byt:0001 -80402347 .byt:0001 -80402348 .dbl:0004 -8040234C .dbl:0004 -80402350 .byt:0001 -80402351 .byt:0001 -80402352 .byt:0001 -80402353 .byt:0001 -80402354 .wrd:0002 -80402356 .byt:0001 -80402357 .byt:0001 -80402358 .dbl:0004 -8040235C .dbl:0004 -80402360 .byt:0001 -80402361 .byt:0001 -80402362 .byt:0001 -80402363 .byt:0001 -80402364 .wrd:0002 -80402366 .byt:0001 -80402367 .byt:0001 -80402368 .dbl:0004 -8040236C .dbl:0004 -80402370 .byt:0001 -80402371 .byt:0001 -80402372 .byt:0001 -80402373 .byt:0001 -80402374 .wrd:0002 -80402376 .byt:0001 -80402377 .byt:0001 -80402378 .dbl:0004 -8040237C .dbl:0004 -80402380 .byt:0001 -80402381 .byt:0001 -80402382 .byt:0001 -80402383 .byt:0001 -80402384 .wrd:0002 -80402386 .byt:0001 -80402387 .byt:0001 -80402388 .dbl:0004 -8040238C .dbl:0004 -80402390 .byt:0001 -80402391 .byt:0001 -80402392 .byt:0001 -80402393 .byt:0001 -80402394 .wrd:0002 -80402396 .byt:0001 -80402397 .byt:0001 -80402398 .dbl:0004 -8040239C .dbl:0004 -804023A0 .byt:0001 -804023A1 .byt:0001 -804023A2 .byt:0001 -804023A3 .byt:0001 -804023A4 .wrd:0002 -804023A6 .byt:0001 -804023A7 .byt:0001 -804023A8 .dbl:0004 -804023AC .dbl:0004 -804023B0 .byt:0001 -804023B1 .byt:0001 -804023B2 .byt:0001 -804023B3 .byt:0001 -804023B4 .wrd:0002 -804023B6 .byt:0001 -804023B7 .byt:0001 -804023B8 .dbl:0004 -804023BC .dbl:0004 -804023C0 .byt:0001 -804023C1 .byt:0001 -804023C2 .byt:0001 -804023C3 .byt:0001 -804023C4 .wrd:0002 -804023C6 .byt:0001 -804023C7 .byt:0001 -804023C8 .dbl:0004 -804023CC .dbl:0004 -804023D0 .byt:0001 -804023D1 .byt:0001 -804023D2 .byt:0001 -804023D3 .byt:0001 -804023D4 .wrd:0002 -804023D6 .byt:0001 -804023D7 .byt:0001 -804023D8 .dbl:0004 -804023DC .dbl:0004 -804023E0 .byt:0001 -804023E1 .byt:0001 -804023E2 .byt:0001 -804023E3 .byt:0001 -804023E4 .wrd:0002 -804023E6 .byt:0001 -804023E7 .byt:0001 -804023E8 .dbl:0004 -804023EC .dbl:0004 -804023F0 .byt:0001 -804023F1 .byt:0001 -804023F2 .byt:0001 -804023F3 .byt:0001 -804023F4 .wrd:0002 -804023F6 .byt:0001 -804023F7 .byt:0001 -804023F8 .dbl:0004 -804023FC .dbl:0004 -80402400 .byt:0001 -80402401 .byt:0001 -80402402 .byt:0001 -80402403 .byt:0001 -80402404 .wrd:0002 -80402406 .byt:0001 -80402407 .byt:0001 -80402408 .dbl:0004 -8040240C .dbl:0004 -80402410 .byt:0001 -80402411 .byt:0001 -80402412 .byt:0001 -80402413 .byt:0001 -80402414 .wrd:0002 -80402416 .byt:0001 -80402417 .byt:0001 -80402418 .dbl:0004 -8040241C .dbl:0004 -80402420 .byt:0001 -80402421 .byt:0001 -80402422 .byt:0001 -80402423 .byt:0001 -80402424 .wrd:0002 -80402426 .byt:0001 -80402427 .byt:0001 -80402428 .dbl:0004 -8040242C .dbl:0004 -80402430 .byt:0001 -80402431 .byt:0001 -80402432 .byt:0001 -80402433 .byt:0001 -80402434 .wrd:0002 -80402436 .byt:0001 -80402437 .byt:0001 -80402438 .dbl:0004 -8040243C .dbl:0004 -80402440 .byt:0001 -80402441 .byt:0001 -80402442 .byt:0001 -80402443 .byt:0001 -80402444 .wrd:0002 -80402446 .byt:0001 -80402447 .byt:0001 -80402448 .dbl:0004 -8040244C .dbl:0004 -80402450 .byt:0001 -80402451 .byt:0001 -80402452 .byt:0001 -80402453 .byt:0001 -80402454 .wrd:0002 -80402456 .byt:0001 -80402457 .byt:0001 -80402458 .dbl:0004 -8040245C .dbl:0004 -80402460 .byt:0001 -80402461 .byt:0001 -80402462 .byt:0001 -80402463 .byt:0001 -80402464 .wrd:0002 -80402466 .byt:0001 -80402467 .byt:0001 -80402468 .dbl:0004 -8040246C .dbl:0004 -80402470 .byt:0001 -80402471 .byt:0001 -80402472 .byt:0001 -80402473 .byt:0001 -80402474 .wrd:0002 -80402476 .byt:0001 -80402477 .byt:0001 -80402478 .dbl:0004 -8040247C .dbl:0004 -80402480 .byt:0001 -80402481 .byt:0001 -80402482 .byt:0001 -80402483 .byt:0001 -80402484 .wrd:0002 -80402486 .byt:0001 -80402487 .byt:0001 -80402488 .dbl:0004 -8040248C .dbl:0004 -80402490 .byt:0001 -80402491 .byt:0001 -80402492 .byt:0001 -80402493 .byt:0001 -80402494 .wrd:0002 -80402496 .byt:0001 -80402497 .byt:0001 -80402498 .dbl:0004 -8040249C .dbl:0004 -804024A0 .byt:0001 -804024A1 .byt:0001 -804024A2 .byt:0001 -804024A3 .byt:0001 -804024A4 .wrd:0002 -804024A6 .byt:0001 -804024A7 .byt:0001 -804024A8 .dbl:0004 -804024AC .dbl:0004 -804024B0 .byt:0001 -804024B1 .byt:0001 -804024B2 .byt:0001 -804024B3 .byt:0001 -804024B4 .wrd:0002 -804024B6 .byt:0001 -804024B7 .byt:0001 -804024B8 .dbl:0004 -804024BC .dbl:0004 -804024C0 .byt:0001 -804024C1 .byt:0001 -804024C2 .byt:0001 -804024C3 .byt:0001 -804024C4 .wrd:0002 -804024C6 .byt:0001 -804024C7 .byt:0001 -804024C8 .dbl:0004 -804024CC .dbl:0004 -804024D0 .byt:0001 -804024D1 .byt:0001 -804024D2 .byt:0001 -804024D3 .byt:0001 -804024D4 .wrd:0002 -804024D6 .byt:0001 -804024D7 .byt:0001 -804024D8 .dbl:0004 -804024DC .dbl:0004 -804024E0 .byt:0001 -804024E1 .byt:0001 -804024E2 .byt:0001 -804024E3 .byt:0001 -804024E4 .wrd:0002 -804024E6 .byt:0001 -804024E7 .byt:0001 -804024E8 .dbl:0004 -804024EC .dbl:0004 -804024F0 .byt:0001 -804024F1 .byt:0001 -804024F2 .byt:0001 -804024F3 .byt:0001 -804024F4 .wrd:0002 -804024F6 .byt:0001 -804024F7 .byt:0001 -804024F8 .dbl:0004 -804024FC .dbl:0004 -80402500 .byt:0001 -80402501 .byt:0001 -80402502 .byt:0001 -80402503 .byt:0001 -80402504 .wrd:0002 -80402506 .byt:0001 -80402507 .byt:0001 -80402508 .dbl:0004 -8040250C .dbl:0004 -80402510 .byt:0001 -80402511 .byt:0001 -80402512 .byt:0001 -80402513 .byt:0001 -80402514 .wrd:0002 -80402516 .byt:0001 -80402517 .byt:0001 -80402518 .dbl:0004 -8040251C .dbl:0004 -80402520 .byt:0001 -80402521 .byt:0001 -80402522 .byt:0001 -80402523 .byt:0001 -80402524 .wrd:0002 -80402526 .byt:0001 -80402527 .byt:0001 -80402528 .dbl:0004 -8040252C .dbl:0004 -80402530 .byt:0001 -80402531 .byt:0001 -80402532 .byt:0001 -80402533 .byt:0001 -80402534 .wrd:0002 -80402536 .byt:0001 -80402537 .byt:0001 -80402538 .dbl:0004 -8040253C .dbl:0004 -80402540 .byt:0001 -80402541 .byt:0001 -80402542 .byt:0001 -80402543 .byt:0001 -80402544 .wrd:0002 -80402546 .byt:0001 -80402547 .byt:0001 -80402548 .dbl:0004 -8040254C .dbl:0004 -80402550 .byt:0001 -80402551 .byt:0001 -80402552 .byt:0001 -80402553 .byt:0001 -80402554 .wrd:0002 -80402556 .byt:0001 -80402557 .byt:0001 -80402558 .dbl:0004 -8040255C .dbl:0004 -80402560 .byt:0001 -80402561 .byt:0001 -80402562 .byt:0001 -80402563 .byt:0001 -80402564 .wrd:0002 -80402566 .byt:0001 -80402567 .byt:0001 -80402568 .dbl:0004 -8040256C .dbl:0004 -80402570 no_upgrade -80402578 hookshot_upgrade -8040258C @@return -80402594 strength_upgrade -804025B4 @@return -804025BC bomb_bag_upgrade -804025DC @@return -804025E4 bow_upgrade -80402604 @@return -8040260C slingshot_upgrade -8040262C @@return -80402634 wallet_upgrade -80402654 @@return -8040265C tycoon_wallet -80402670 scale_upgrade -80402684 @@return -8040268C nut_upgrade -804026A0 @@return -804026A8 stick_upgrade -804026BC @@return -804026C4 magic_upgrade -804026D4 @@return -804026DC arrows_to_rupee -804026F0 @@return -804026F8 bombs_to_rupee -8040270C @@return -80402714 seeds_to_rupee -80402728 @@return -80402730 no_effect -80402738 give_biggoron_sword -80402748 give_bottle -80402750 @@loop -8040277C @@return -80402784 give_dungeon_item -804027A0 give_small_key -804027B8 @not_negative -804027C8 give_defense -804027E8 give_magic -80402808 double_magic -80402830 bombchu_upgrade -80402854 @@return -8040285C ocarina_upgrade -80402870 @@return -80402878 give_fairy_ocarina -80402888 give_song -804028A4 inventory_check -80402910 @@return -80402918 override_skulltula_token -80402938 @@in_table -80402968 @@extended_effect -80402994 @@no_extended_effect -804029A0 @@not_extended -804029D8 @@item_effect -804029E4 @@display_message -804029F0 @@return -80402A04 override_object_npc -80402A14 override_object_chest -80402A24 override_object -80402A3C @@return -80402A80 @@no_count_inc -80402A84 @@no_pending_clear -80402A8C override_graphic -80402AA4 @@return -80402ABC override_text -80402AD8 @@return -80402AE0 override_action -80402B08 @@no_player_override -80402B64 @@return -80402B6C store_item_data_hook -80402BA0 store_item_data -80402C34 @@update_base_game -80402C64 @@not_chest -80402C74 @@not_negative -80402C78 @@return -80402C88 lookup_override -80402CB0 @@return -80402CC0 get_override_search_key -80402D00 @@not_skulltula -80402D38 @@valid_chest -80402D40 @@not_chest -80402D70 @@valid_collectable -80402D78 @@not_collectable -80402DA0 @@not_grotto_deku_scrub -80402DB0 @@return -80402DB8 scan_override_table -80402DDC @@lookup_loop -80402E44 @@return -80402E4C resolve_extended_item -80402E60 @@loop -80402EB4 @@not_extended -80402EB8 @@return -80402ED0 override_great_fairy_cutscene -80402F28 @@item_fairy -80402F48 @@give_item -80402F74 @@return -80402F7C override_light_arrow_cutscene -80402F90 override_fairy_ocarina_cutscene -80402FA4 override_ocarina_songs -80402FB8 override_requiem_song -80402FC4 override_epona_song -80402FE4 override_suns_song -80403004 override_song_of_time -80403014 store_pending_special_item -80403024 @@find_duplicate_loop -80403040 @@find_empty_loop -80403058 @@return -80403060 override_saria_song_check -8040307C @@get_item -80403084 set_saria_song_flag -804030A4 set_dungeon_knowledge -804030D0 @@set_flag -804030E8 Shop_Check_Sold_Out -80403134 @@return -8040313C Shop_Set_Sold_Out -80403174 @@return -8040317C Shop_Keeper_Init_ID -80403198 @@return -804031A8 Deku_Check_Sold_Out -804031CC @@continue -804031FC Deku_Set_Sold_Out -80403220 @@continue -80403254 before_game_state_update -804032A4 @@loop -804032FC @@no_pending_item -80403310 after_game_state_update -80403334 item_menu_description_id_periodic -80403348 @@item_menu_description_id_return_00000000 -80403350 item_menu_description_id_immediate_1 -80403364 @@item_menu_description_id_return_00000001 -8040336C item_menu_description_id_immediate_2 -80403380 @@item_menu_description_id_return_00000002 -80403388 item_menu_description_id_immediate_3 -8040339C @@item_menu_description_id_return_00000003 -804033A4 before_time_travel -804033D4 after_time_travel -80403410 @@going_back -80403418 @@done -80403448 update_c_button -80403474 @@return -8040347C after_going_forward -804034B8 @@no_init -804034C8 after_going_back -804034F8 @@not_swordless -80403500 initialize_adult -80403528 @@no_mirror_shield -80403568 init_adult_button -80403594 @@empty -8040359C @@loop -804035F4 @@set_empty -80403600 @@return -80403608 .byt:0001 -80403608 ADULT_INIT_ITEMS -80403609 .byt:0001 -8040360A .byt:0001 -8040360B .byt:0001 -8040360C .byt:0001 -8040360D .byt:0001 -8040360E .byt:0001 -8040360F .byt:0001 -80403610 .byt:0001 -80403614 .byt:0001 -80403614 ADULT_VALID_ITEMS -80403615 .byt:0001 -80403616 .byt:0001 -80403617 .byt:0001 -80403618 .byt:0001 -80403619 .byt:0001 -8040361A .byt:0001 -8040361B .byt:0001 -8040361C .byt:0001 -8040361D .byt:0001 -8040361E .byt:0001 -8040361F .byt:0001 -80403620 .byt:0001 -80403621 .byt:0001 -80403622 .byt:0001 -80403623 .byt:0001 -80403624 .byt:0001 -80403625 .byt:0001 -80403626 .byt:0001 -80403627 .byt:0001 -80403628 .byt:0001 -80403629 .byt:0001 -8040362A .byt:0001 -8040362B .byt:0001 -8040362C suns_song_fix_event -80403660 @@child -80403670 @@return -80403678 suns_song_fix -8040368C @@check_suns_status -804036A8 @@disable_suns -804036B0 @@return -804036B8 warp_song_fix -804036E4 @@child -804036F4 @@return -804036FC Check_Has_Epona_Song -80403748 @@return -80403750 save_scarecrow_song -80403794 @@copy_song -8040379C write_initial_save -804037A8 @@save_data_loop -804037D8 @@overwrite_type -804037E0 @@return -804037E8 .byt:0868 -80405000 disp_buf_init,00000018 -80405018 sprite_bytes_per_tile,00000028 -80405040 sprite_bytes,00000030 -80405070 sprite_load,00000254 -804052C4 sprite_draw,000000F0 -804053B4 draw_setup,000001DC -80405590 gfx_init,00000148 -804056D8 heap_init,00000014 -804056EC heap_alloc,00000034 -80405720 file_init,00000044 -80405764 c_init,0000002C -80405790 c_after_game_state_update,00000088 -80405818 draw_dungeon_info,000009CC -804061E4 text_init,0000002C -80406210 text_print,000000A8 -804062B8 text_flush,00000148 -8040640C .byt:0010 -8040640C font_sprite -8040641C .byt:0010 -8040641C quest_items_sprite -8040642C .byt:0010 -8040642C medals_sprite -8040643C .byt:0010 -8040643C stones_sprite -8040644C .byt:000E -8040644C cfg_dungeon_rewards -8040645C .byt:0012 -8040645C medal_colors -80406470 .byt:009C -80406470 dungeons -8040650C .byt:0004 -8040650C cfg_dungeon_info_enable -80406510 .byt:0004 -80406510 dungeon_count -80406514 .byt:0004 -80406514 heap_next -80406518 .byt:0004 -80406518 cfg_dungeon_info_reward_need_altar -8040651C .byt:0004 -8040651C cfg_dungeon_info_reward_need_compass -80406520 .byt:0004 -80406520 cfg_dungeon_info_mq_need_map -80406524 .byt:0004 -80406524 cfg_dungeon_info_mq_enable -80406530 .byt:0010 -80406530 setup_db -80406540 .byt:000E -80406540 cfg_dungeon_is_mq -8040654E .byt:14C8 -8040654E FONT_TEXTURE -80407A16 .byt:85EA -80480000 DUMMY_ACTOR -80500000 C_HEAP +00000000 0 +00000000 .byt:4000000 +00000010 .dbl:0008 +00000010 ITEM_TABLE_ROW_SIZE +000005B4 Shop_Item_Save_Offset +0000D260 .dbl:0010 +0000D270 .dbl:0010 +008A9C00 .byt:0400 +00D74990 skip_steal_tunic +00D7E178 @@not_in_ranch +00D7E18C @@return +00D7E18C return_from_the_other_function +00D7E3AC @@hyrule_check +00D7E3CC @@lon_lon_check +00D7E3F4 @@return_false +00D7E7A4 @@set_ev0 +00D7E7B8 set_ev1 +00D7E8A8 @@unsafe +00D7E8C0 @@safe +00D7E8D4 @@not_hyrule +00D7E920 ev0_return +00DB13D3 .byt:0001 +00DF264F .byt:0001 +00E2F093 .byt:0001 +00EBB8B0 @Deku_Check_True +00EBB8C0 @Deku_Check_False +00EC68D0 .byt:0014 +00EC69C0 .byt:0014 +00EC9CE7 .byt:0001 +8011A5D0 SAVE_CONTEXT +801C84A0 GLOBAL_CONTEXT +801DAA30 PLAYER_ACTOR +803A9E7E GET_ITEMTABLE +80400000 init +80400050 DebugOutput +80401000 .byt:0800 +80401000 ITEM_OVERRIDES +80401800 .byt:0400 +80401800 INITIAL_SAVE_DATA +80401C00 .byt:0001 +80401C00 PLAYER_ID +80401C01 .byt:0001 +80401C01 LIGHT_ARROW_ITEM +80401C02 .byt:0001 +80401C02 FAIRY_OCARINA_ITEM +80401C03 .byt:0001 +80401C03 FAIRY_ITEMS +80401C04 .byt:0001 +80401C05 .byt:0001 +80401C06 .byt:0001 +80401C07 .byt:0001 +80401C08 .byt:0001 +80401C0C .byt:03F4 +80402000 .dbl:0008 +80402000 PLAYER_OVERRIDE_DATA +80402008 .dbl:0010 +80402008 EXTENDED_ITEM_DATA +80402018 .byt:0001 +80402018 PENDING_SPECIAL_ITEM +80402019 .byt:0001 +8040201A .byt:0001 +8040201B .byt:0001 +8040201B PENDING_SPECIAL_ITEM_END +8040201C .dbl:0004 +8040201C TIME_TRAVEL_SAVED_EQUIPS +80402020 .dbl:0004 +80402024 .wrd:0002 +80402026 .wrd:0002 +80402028 .byt:0028 +80402050 .byt:0001 +80402050 ITEM_TABLE +80402051 .byt:0001 +80402052 .byt:0001 +80402053 .byt:0001 +80402054 .wrd:0002 +80402056 .byt:0001 +80402057 .byt:0001 +80402058 .dbl:0004 +8040205C .dbl:0004 +80402060 .byt:0001 +80402061 .byt:0001 +80402062 .byt:0001 +80402063 .byt:0001 +80402064 .wrd:0002 +80402066 .byt:0001 +80402067 .byt:0001 +80402068 .dbl:0004 +8040206C .dbl:0004 +80402070 .byt:0001 +80402071 .byt:0001 +80402072 .byt:0001 +80402073 .byt:0001 +80402074 .wrd:0002 +80402076 .byt:0001 +80402077 .byt:0001 +80402078 .dbl:0004 +8040207C .dbl:0004 +80402080 .byt:0001 +80402081 .byt:0001 +80402082 .byt:0001 +80402083 .byt:0001 +80402084 .wrd:0002 +80402086 .byt:0001 +80402087 .byt:0001 +80402088 .dbl:0004 +8040208C .dbl:0004 +80402090 .byt:0001 +80402091 .byt:0001 +80402092 .byt:0001 +80402093 .byt:0001 +80402094 .wrd:0002 +80402096 .byt:0001 +80402097 .byt:0001 +80402098 .dbl:0004 +8040209C .dbl:0004 +804020A0 .byt:0001 +804020A1 .byt:0001 +804020A2 .byt:0001 +804020A3 .byt:0001 +804020A4 .wrd:0002 +804020A6 .byt:0001 +804020A7 .byt:0001 +804020A8 .dbl:0004 +804020AC .dbl:0004 +804020B0 .byt:0001 +804020B1 .byt:0001 +804020B2 .byt:0001 +804020B3 .byt:0001 +804020B4 .wrd:0002 +804020B6 .byt:0001 +804020B7 .byt:0001 +804020B8 .dbl:0004 +804020BC .dbl:0004 +804020C0 .byt:0001 +804020C1 .byt:0001 +804020C2 .byt:0001 +804020C3 .byt:0001 +804020C4 .wrd:0002 +804020C6 .byt:0001 +804020C7 .byt:0001 +804020C8 .dbl:0004 +804020CC .dbl:0004 +804020D0 .byt:0001 +804020D1 .byt:0001 +804020D2 .byt:0001 +804020D3 .byt:0001 +804020D4 .wrd:0002 +804020D6 .byt:0001 +804020D7 .byt:0001 +804020D8 .dbl:0004 +804020DC .dbl:0004 +804020E0 .byt:0001 +804020E1 .byt:0001 +804020E2 .byt:0001 +804020E3 .byt:0001 +804020E4 .wrd:0002 +804020E6 .byt:0001 +804020E7 .byt:0001 +804020E8 .dbl:0004 +804020EC .dbl:0004 +804020F0 .byt:0001 +804020F1 .byt:0001 +804020F2 .byt:0001 +804020F3 .byt:0001 +804020F4 .wrd:0002 +804020F6 .byt:0001 +804020F7 .byt:0001 +804020F8 .dbl:0004 +804020FC .dbl:0004 +80402100 .byt:0001 +80402101 .byt:0001 +80402102 .byt:0001 +80402103 .byt:0001 +80402104 .wrd:0002 +80402106 .byt:0001 +80402107 .byt:0001 +80402108 .dbl:0004 +8040210C .dbl:0004 +80402110 .byt:0001 +80402111 .byt:0001 +80402112 .byt:0001 +80402113 .byt:0001 +80402114 .wrd:0002 +80402116 .byt:0001 +80402117 .byt:0001 +80402118 .dbl:0004 +8040211C .dbl:0004 +80402120 .byt:0001 +80402121 .byt:0001 +80402122 .byt:0001 +80402123 .byt:0001 +80402124 .wrd:0002 +80402126 .byt:0001 +80402127 .byt:0001 +80402128 .dbl:0004 +8040212C .dbl:0004 +80402130 .byt:0001 +80402131 .byt:0001 +80402132 .byt:0001 +80402133 .byt:0001 +80402134 .wrd:0002 +80402136 .byt:0001 +80402137 .byt:0001 +80402138 .dbl:0004 +8040213C .dbl:0004 +80402140 .byt:0001 +80402141 .byt:0001 +80402142 .byt:0001 +80402143 .byt:0001 +80402144 .wrd:0002 +80402146 .byt:0001 +80402147 .byt:0001 +80402148 .dbl:0004 +8040214C .dbl:0004 +80402150 .byt:0001 +80402151 .byt:0001 +80402152 .byt:0001 +80402153 .byt:0001 +80402154 .wrd:0002 +80402156 .byt:0001 +80402157 .byt:0001 +80402158 .dbl:0004 +8040215C .dbl:0004 +80402160 .byt:0001 +80402161 .byt:0001 +80402162 .byt:0001 +80402163 .byt:0001 +80402164 .wrd:0002 +80402166 .byt:0001 +80402167 .byt:0001 +80402168 .dbl:0004 +8040216C .dbl:0004 +80402170 .byt:0001 +80402171 .byt:0001 +80402172 .byt:0001 +80402173 .byt:0001 +80402174 .wrd:0002 +80402176 .byt:0001 +80402177 .byt:0001 +80402178 .dbl:0004 +8040217C .dbl:0004 +80402180 .byt:0001 +80402181 .byt:0001 +80402182 .byt:0001 +80402183 .byt:0001 +80402184 .wrd:0002 +80402186 .byt:0001 +80402187 .byt:0001 +80402188 .dbl:0004 +8040218C .dbl:0004 +80402190 .byt:0001 +80402191 .byt:0001 +80402192 .byt:0001 +80402193 .byt:0001 +80402194 .wrd:0002 +80402196 .byt:0001 +80402197 .byt:0001 +80402198 .dbl:0004 +8040219C .dbl:0004 +804021A0 .byt:0001 +804021A1 .byt:0001 +804021A2 .byt:0001 +804021A3 .byt:0001 +804021A4 .wrd:0002 +804021A6 .byt:0001 +804021A7 .byt:0001 +804021A8 .dbl:0004 +804021AC .dbl:0004 +804021B0 .byt:0001 +804021B1 .byt:0001 +804021B2 .byt:0001 +804021B3 .byt:0001 +804021B4 .wrd:0002 +804021B6 .byt:0001 +804021B7 .byt:0001 +804021B8 .dbl:0004 +804021BC .dbl:0004 +804021C0 .byt:0001 +804021C1 .byt:0001 +804021C2 .byt:0001 +804021C3 .byt:0001 +804021C4 .wrd:0002 +804021C6 .byt:0001 +804021C7 .byt:0001 +804021C8 .dbl:0004 +804021CC .dbl:0004 +804021D0 .byt:0001 +804021D1 .byt:0001 +804021D2 .byt:0001 +804021D3 .byt:0001 +804021D4 .wrd:0002 +804021D6 .byt:0001 +804021D7 .byt:0001 +804021D8 .dbl:0004 +804021DC .dbl:0004 +804021E0 .byt:0001 +804021E1 .byt:0001 +804021E2 .byt:0001 +804021E3 .byt:0001 +804021E4 .wrd:0002 +804021E6 .byt:0001 +804021E7 .byt:0001 +804021E8 .dbl:0004 +804021EC .dbl:0004 +804021F0 .byt:0001 +804021F1 .byt:0001 +804021F2 .byt:0001 +804021F3 .byt:0001 +804021F4 .wrd:0002 +804021F6 .byt:0001 +804021F7 .byt:0001 +804021F8 .dbl:0004 +804021FC .dbl:0004 +80402200 .byt:0001 +80402201 .byt:0001 +80402202 .byt:0001 +80402203 .byt:0001 +80402204 .wrd:0002 +80402206 .byt:0001 +80402207 .byt:0001 +80402208 .dbl:0004 +8040220C .dbl:0004 +80402210 .byt:0001 +80402211 .byt:0001 +80402212 .byt:0001 +80402213 .byt:0001 +80402214 .wrd:0002 +80402216 .byt:0001 +80402217 .byt:0001 +80402218 .dbl:0004 +8040221C .dbl:0004 +80402220 .byt:0001 +80402221 .byt:0001 +80402222 .byt:0001 +80402223 .byt:0001 +80402224 .wrd:0002 +80402226 .byt:0001 +80402227 .byt:0001 +80402228 .dbl:0004 +8040222C .dbl:0004 +80402230 .byt:0001 +80402231 .byt:0001 +80402232 .byt:0001 +80402233 .byt:0001 +80402234 .wrd:0002 +80402236 .byt:0001 +80402237 .byt:0001 +80402238 .dbl:0004 +8040223C .dbl:0004 +80402240 .byt:0001 +80402241 .byt:0001 +80402242 .byt:0001 +80402243 .byt:0001 +80402244 .wrd:0002 +80402246 .byt:0001 +80402247 .byt:0001 +80402248 .dbl:0004 +8040224C .dbl:0004 +80402250 .byt:0001 +80402251 .byt:0001 +80402252 .byt:0001 +80402253 .byt:0001 +80402254 .wrd:0002 +80402256 .byt:0001 +80402257 .byt:0001 +80402258 .dbl:0004 +8040225C .dbl:0004 +80402260 .byt:0001 +80402261 .byt:0001 +80402262 .byt:0001 +80402263 .byt:0001 +80402264 .wrd:0002 +80402266 .byt:0001 +80402267 .byt:0001 +80402268 .dbl:0004 +8040226C .dbl:0004 +80402270 .byt:0001 +80402271 .byt:0001 +80402272 .byt:0001 +80402273 .byt:0001 +80402274 .wrd:0002 +80402276 .byt:0001 +80402277 .byt:0001 +80402278 .dbl:0004 +8040227C .dbl:0004 +80402280 .byt:0001 +80402281 .byt:0001 +80402282 .byt:0001 +80402283 .byt:0001 +80402284 .wrd:0002 +80402286 .byt:0001 +80402287 .byt:0001 +80402288 .dbl:0004 +8040228C .dbl:0004 +80402290 .byt:0001 +80402291 .byt:0001 +80402292 .byt:0001 +80402293 .byt:0001 +80402294 .wrd:0002 +80402296 .byt:0001 +80402297 .byt:0001 +80402298 .dbl:0004 +8040229C .dbl:0004 +804022A0 .byt:0001 +804022A1 .byt:0001 +804022A2 .byt:0001 +804022A3 .byt:0001 +804022A4 .wrd:0002 +804022A6 .byt:0001 +804022A7 .byt:0001 +804022A8 .dbl:0004 +804022AC .dbl:0004 +804022B0 .byt:0001 +804022B1 .byt:0001 +804022B2 .byt:0001 +804022B3 .byt:0001 +804022B4 .wrd:0002 +804022B6 .byt:0001 +804022B7 .byt:0001 +804022B8 .dbl:0004 +804022BC .dbl:0004 +804022C0 .byt:0001 +804022C1 .byt:0001 +804022C2 .byt:0001 +804022C3 .byt:0001 +804022C4 .wrd:0002 +804022C6 .byt:0001 +804022C7 .byt:0001 +804022C8 .dbl:0004 +804022CC .dbl:0004 +804022D0 .byt:0001 +804022D1 .byt:0001 +804022D2 .byt:0001 +804022D3 .byt:0001 +804022D4 .wrd:0002 +804022D6 .byt:0001 +804022D7 .byt:0001 +804022D8 .dbl:0004 +804022DC .dbl:0004 +804022E0 .byt:0001 +804022E1 .byt:0001 +804022E2 .byt:0001 +804022E3 .byt:0001 +804022E4 .wrd:0002 +804022E6 .byt:0001 +804022E7 .byt:0001 +804022E8 .dbl:0004 +804022EC .dbl:0004 +804022F0 .byt:0001 +804022F1 .byt:0001 +804022F2 .byt:0001 +804022F3 .byt:0001 +804022F4 .wrd:0002 +804022F6 .byt:0001 +804022F7 .byt:0001 +804022F8 .dbl:0004 +804022FC .dbl:0004 +80402300 .byt:0001 +80402301 .byt:0001 +80402302 .byt:0001 +80402303 .byt:0001 +80402304 .wrd:0002 +80402306 .byt:0001 +80402307 .byt:0001 +80402308 .dbl:0004 +8040230C .dbl:0004 +80402310 .byt:0001 +80402311 .byt:0001 +80402312 .byt:0001 +80402313 .byt:0001 +80402314 .wrd:0002 +80402316 .byt:0001 +80402317 .byt:0001 +80402318 .dbl:0004 +8040231C .dbl:0004 +80402320 .byt:0001 +80402321 .byt:0001 +80402322 .byt:0001 +80402323 .byt:0001 +80402324 .wrd:0002 +80402326 .byt:0001 +80402327 .byt:0001 +80402328 .dbl:0004 +8040232C .dbl:0004 +80402330 .byt:0001 +80402331 .byt:0001 +80402332 .byt:0001 +80402333 .byt:0001 +80402334 .wrd:0002 +80402336 .byt:0001 +80402337 .byt:0001 +80402338 .dbl:0004 +8040233C .dbl:0004 +80402340 .byt:0001 +80402341 .byt:0001 +80402342 .byt:0001 +80402343 .byt:0001 +80402344 .wrd:0002 +80402346 .byt:0001 +80402347 .byt:0001 +80402348 .dbl:0004 +8040234C .dbl:0004 +80402350 .byt:0001 +80402351 .byt:0001 +80402352 .byt:0001 +80402353 .byt:0001 +80402354 .wrd:0002 +80402356 .byt:0001 +80402357 .byt:0001 +80402358 .dbl:0004 +8040235C .dbl:0004 +80402360 .byt:0001 +80402361 .byt:0001 +80402362 .byt:0001 +80402363 .byt:0001 +80402364 .wrd:0002 +80402366 .byt:0001 +80402367 .byt:0001 +80402368 .dbl:0004 +8040236C .dbl:0004 +80402370 .byt:0001 +80402371 .byt:0001 +80402372 .byt:0001 +80402373 .byt:0001 +80402374 .wrd:0002 +80402376 .byt:0001 +80402377 .byt:0001 +80402378 .dbl:0004 +8040237C .dbl:0004 +80402380 .byt:0001 +80402381 .byt:0001 +80402382 .byt:0001 +80402383 .byt:0001 +80402384 .wrd:0002 +80402386 .byt:0001 +80402387 .byt:0001 +80402388 .dbl:0004 +8040238C .dbl:0004 +80402390 .byt:0001 +80402391 .byt:0001 +80402392 .byt:0001 +80402393 .byt:0001 +80402394 .wrd:0002 +80402396 .byt:0001 +80402397 .byt:0001 +80402398 .dbl:0004 +8040239C .dbl:0004 +804023A0 .byt:0001 +804023A1 .byt:0001 +804023A2 .byt:0001 +804023A3 .byt:0001 +804023A4 .wrd:0002 +804023A6 .byt:0001 +804023A7 .byt:0001 +804023A8 .dbl:0004 +804023AC .dbl:0004 +804023B0 .byt:0001 +804023B1 .byt:0001 +804023B2 .byt:0001 +804023B3 .byt:0001 +804023B4 .wrd:0002 +804023B6 .byt:0001 +804023B7 .byt:0001 +804023B8 .dbl:0004 +804023BC .dbl:0004 +804023C0 .byt:0001 +804023C1 .byt:0001 +804023C2 .byt:0001 +804023C3 .byt:0001 +804023C4 .wrd:0002 +804023C6 .byt:0001 +804023C7 .byt:0001 +804023C8 .dbl:0004 +804023CC .dbl:0004 +804023D0 .byt:0001 +804023D1 .byt:0001 +804023D2 .byt:0001 +804023D3 .byt:0001 +804023D4 .wrd:0002 +804023D6 .byt:0001 +804023D7 .byt:0001 +804023D8 .dbl:0004 +804023DC .dbl:0004 +804023E0 .byt:0001 +804023E1 .byt:0001 +804023E2 .byt:0001 +804023E3 .byt:0001 +804023E4 .wrd:0002 +804023E6 .byt:0001 +804023E7 .byt:0001 +804023E8 .dbl:0004 +804023EC .dbl:0004 +804023F0 .byt:0001 +804023F1 .byt:0001 +804023F2 .byt:0001 +804023F3 .byt:0001 +804023F4 .wrd:0002 +804023F6 .byt:0001 +804023F7 .byt:0001 +804023F8 .dbl:0004 +804023FC .dbl:0004 +80402400 .byt:0001 +80402401 .byt:0001 +80402402 .byt:0001 +80402403 .byt:0001 +80402404 .wrd:0002 +80402406 .byt:0001 +80402407 .byt:0001 +80402408 .dbl:0004 +8040240C .dbl:0004 +80402410 .byt:0001 +80402411 .byt:0001 +80402412 .byt:0001 +80402413 .byt:0001 +80402414 .wrd:0002 +80402416 .byt:0001 +80402417 .byt:0001 +80402418 .dbl:0004 +8040241C .dbl:0004 +80402420 .byt:0001 +80402421 .byt:0001 +80402422 .byt:0001 +80402423 .byt:0001 +80402424 .wrd:0002 +80402426 .byt:0001 +80402427 .byt:0001 +80402428 .dbl:0004 +8040242C .dbl:0004 +80402430 .byt:0001 +80402431 .byt:0001 +80402432 .byt:0001 +80402433 .byt:0001 +80402434 .wrd:0002 +80402436 .byt:0001 +80402437 .byt:0001 +80402438 .dbl:0004 +8040243C .dbl:0004 +80402440 .byt:0001 +80402441 .byt:0001 +80402442 .byt:0001 +80402443 .byt:0001 +80402444 .wrd:0002 +80402446 .byt:0001 +80402447 .byt:0001 +80402448 .dbl:0004 +8040244C .dbl:0004 +80402450 .byt:0001 +80402451 .byt:0001 +80402452 .byt:0001 +80402453 .byt:0001 +80402454 .wrd:0002 +80402456 .byt:0001 +80402457 .byt:0001 +80402458 .dbl:0004 +8040245C .dbl:0004 +80402460 .byt:0001 +80402461 .byt:0001 +80402462 .byt:0001 +80402463 .byt:0001 +80402464 .wrd:0002 +80402466 .byt:0001 +80402467 .byt:0001 +80402468 .dbl:0004 +8040246C .dbl:0004 +80402470 .byt:0001 +80402471 .byt:0001 +80402472 .byt:0001 +80402473 .byt:0001 +80402474 .wrd:0002 +80402476 .byt:0001 +80402477 .byt:0001 +80402478 .dbl:0004 +8040247C .dbl:0004 +80402480 .byt:0001 +80402481 .byt:0001 +80402482 .byt:0001 +80402483 .byt:0001 +80402484 .wrd:0002 +80402486 .byt:0001 +80402487 .byt:0001 +80402488 .dbl:0004 +8040248C .dbl:0004 +80402490 .byt:0001 +80402491 .byt:0001 +80402492 .byt:0001 +80402493 .byt:0001 +80402494 .wrd:0002 +80402496 .byt:0001 +80402497 .byt:0001 +80402498 .dbl:0004 +8040249C .dbl:0004 +804024A0 .byt:0001 +804024A1 .byt:0001 +804024A2 .byt:0001 +804024A3 .byt:0001 +804024A4 .wrd:0002 +804024A6 .byt:0001 +804024A7 .byt:0001 +804024A8 .dbl:0004 +804024AC .dbl:0004 +804024B0 .byt:0001 +804024B1 .byt:0001 +804024B2 .byt:0001 +804024B3 .byt:0001 +804024B4 .wrd:0002 +804024B6 .byt:0001 +804024B7 .byt:0001 +804024B8 .dbl:0004 +804024BC .dbl:0004 +804024C0 .byt:0001 +804024C1 .byt:0001 +804024C2 .byt:0001 +804024C3 .byt:0001 +804024C4 .wrd:0002 +804024C6 .byt:0001 +804024C7 .byt:0001 +804024C8 .dbl:0004 +804024CC .dbl:0004 +804024D0 .byt:0001 +804024D1 .byt:0001 +804024D2 .byt:0001 +804024D3 .byt:0001 +804024D4 .wrd:0002 +804024D6 .byt:0001 +804024D7 .byt:0001 +804024D8 .dbl:0004 +804024DC .dbl:0004 +804024E0 .byt:0001 +804024E1 .byt:0001 +804024E2 .byt:0001 +804024E3 .byt:0001 +804024E4 .wrd:0002 +804024E6 .byt:0001 +804024E7 .byt:0001 +804024E8 .dbl:0004 +804024EC .dbl:0004 +804024F0 .byt:0001 +804024F1 .byt:0001 +804024F2 .byt:0001 +804024F3 .byt:0001 +804024F4 .wrd:0002 +804024F6 .byt:0001 +804024F7 .byt:0001 +804024F8 .dbl:0004 +804024FC .dbl:0004 +80402500 .byt:0001 +80402501 .byt:0001 +80402502 .byt:0001 +80402503 .byt:0001 +80402504 .wrd:0002 +80402506 .byt:0001 +80402507 .byt:0001 +80402508 .dbl:0004 +8040250C .dbl:0004 +80402510 .byt:0001 +80402511 .byt:0001 +80402512 .byt:0001 +80402513 .byt:0001 +80402514 .wrd:0002 +80402516 .byt:0001 +80402517 .byt:0001 +80402518 .dbl:0004 +8040251C .dbl:0004 +80402520 .byt:0001 +80402521 .byt:0001 +80402522 .byt:0001 +80402523 .byt:0001 +80402524 .wrd:0002 +80402526 .byt:0001 +80402527 .byt:0001 +80402528 .dbl:0004 +8040252C .dbl:0004 +80402530 .byt:0001 +80402531 .byt:0001 +80402532 .byt:0001 +80402533 .byt:0001 +80402534 .wrd:0002 +80402536 .byt:0001 +80402537 .byt:0001 +80402538 .dbl:0004 +8040253C .dbl:0004 +80402540 .byt:0001 +80402541 .byt:0001 +80402542 .byt:0001 +80402543 .byt:0001 +80402544 .wrd:0002 +80402546 .byt:0001 +80402547 .byt:0001 +80402548 .dbl:0004 +8040254C .dbl:0004 +80402550 .byt:0001 +80402551 .byt:0001 +80402552 .byt:0001 +80402553 .byt:0001 +80402554 .wrd:0002 +80402556 .byt:0001 +80402557 .byt:0001 +80402558 .dbl:0004 +8040255C .dbl:0004 +80402560 .byt:0001 +80402561 .byt:0001 +80402562 .byt:0001 +80402563 .byt:0001 +80402564 .wrd:0002 +80402566 .byt:0001 +80402567 .byt:0001 +80402568 .dbl:0004 +8040256C .dbl:0004 +80402570 no_upgrade +80402578 hookshot_upgrade +8040258C @@return +80402594 strength_upgrade +804025B4 @@return +804025BC bomb_bag_upgrade +804025DC @@return +804025E4 bow_upgrade +80402604 @@return +8040260C slingshot_upgrade +8040262C @@return +80402634 wallet_upgrade +80402654 @@return +8040265C tycoon_wallet +80402670 scale_upgrade +80402684 @@return +8040268C nut_upgrade +804026A0 @@return +804026A8 stick_upgrade +804026BC @@return +804026C4 magic_upgrade +804026D4 @@return +804026DC arrows_to_rupee +804026F0 @@return +804026F8 bombs_to_rupee +8040270C @@return +80402714 seeds_to_rupee +80402728 @@return +80402730 no_effect +80402738 give_biggoron_sword +80402748 give_bottle +80402750 @@loop +8040277C @@return +80402784 give_dungeon_item +804027A0 give_small_key +804027B8 @not_negative +804027C8 give_defense +804027E8 give_magic +80402808 double_magic +80402830 bombchu_upgrade +80402854 @@return +8040285C ocarina_upgrade +80402870 @@return +80402878 give_fairy_ocarina +80402888 give_song +804028A4 inventory_check +80402910 @@return +80402918 override_skulltula_token +80402938 @@in_table +80402968 @@extended_effect +80402994 @@no_extended_effect +804029A0 @@not_extended +804029D8 @@item_effect +804029E4 @@display_message +804029F0 @@return +80402A04 override_object_npc +80402A14 override_object_chest +80402A24 override_object +80402A3C @@return +80402A80 @@no_count_inc +80402A84 @@no_pending_clear +80402A8C override_graphic +80402AA4 @@return +80402ABC override_text +80402AD8 @@return +80402AE0 override_action +80402B08 @@no_player_override +80402B64 @@return +80402B6C store_item_data_hook +80402BA0 store_item_data +80402C34 @@update_base_game +80402C64 @@not_chest +80402C74 @@not_negative +80402C78 @@return +80402C88 lookup_override +80402CB0 @@return +80402CC0 get_override_search_key +80402D00 @@not_skulltula +80402D38 @@valid_chest +80402D40 @@not_chest +80402D70 @@valid_collectable +80402D78 @@not_collectable +80402DA0 @@not_grotto_deku_scrub +80402DB0 @@return +80402DB8 scan_override_table +80402DDC @@lookup_loop +80402E44 @@return +80402E4C resolve_extended_item +80402E60 @@loop +80402EB4 @@not_extended +80402EB8 @@return +80402ED0 override_great_fairy_cutscene +80402F28 @@item_fairy +80402F48 @@give_item +80402F74 @@return +80402F7C override_light_arrow_cutscene +80402F90 override_fairy_ocarina_cutscene +80402FA4 override_ocarina_songs +80402FB8 override_requiem_song +80402FC4 override_epona_song +80402FE4 override_suns_song +80403004 override_song_of_time +80403014 store_pending_special_item +80403024 @@find_duplicate_loop +80403040 @@find_empty_loop +80403058 @@return +80403060 override_saria_song_check +8040307C @@get_item +80403084 set_saria_song_flag +804030A4 set_dungeon_knowledge +804030D0 @@set_flag +804030E8 Shop_Check_Sold_Out +80403134 @@return +8040313C Shop_Set_Sold_Out +80403174 @@return +8040317C Shop_Keeper_Init_ID +80403198 @@return +804031A8 Deku_Check_Sold_Out +804031CC @@continue +804031FC Deku_Set_Sold_Out +80403220 @@continue +80403254 before_game_state_update +804032A4 @@loop +804032FC @@no_pending_item +80403310 after_game_state_update +80403334 item_menu_description_id_periodic +80403348 @@item_menu_description_id_return_00000000 +80403350 item_menu_description_id_immediate_1 +80403364 @@item_menu_description_id_return_00000001 +8040336C item_menu_description_id_immediate_2 +80403380 @@item_menu_description_id_return_00000002 +80403388 item_menu_description_id_immediate_3 +8040339C @@item_menu_description_id_return_00000003 +804033A4 before_time_travel +804033D4 after_time_travel +80403410 @@going_back +80403418 @@done +80403448 update_c_button +80403474 @@return +8040347C after_going_forward +804034B8 @@no_init +804034C8 after_going_back +804034F8 @@not_swordless +80403500 initialize_adult +80403528 @@no_mirror_shield +80403568 init_adult_button +80403594 @@empty +8040359C @@loop +804035F4 @@set_empty +80403600 @@return +80403608 .byt:0001 +80403608 ADULT_INIT_ITEMS +80403609 .byt:0001 +8040360A .byt:0001 +8040360B .byt:0001 +8040360C .byt:0001 +8040360D .byt:0001 +8040360E .byt:0001 +8040360F .byt:0001 +80403610 .byt:0001 +80403614 .byt:0001 +80403614 ADULT_VALID_ITEMS +80403615 .byt:0001 +80403616 .byt:0001 +80403617 .byt:0001 +80403618 .byt:0001 +80403619 .byt:0001 +8040361A .byt:0001 +8040361B .byt:0001 +8040361C .byt:0001 +8040361D .byt:0001 +8040361E .byt:0001 +8040361F .byt:0001 +80403620 .byt:0001 +80403621 .byt:0001 +80403622 .byt:0001 +80403623 .byt:0001 +80403624 .byt:0001 +80403625 .byt:0001 +80403626 .byt:0001 +80403627 .byt:0001 +80403628 .byt:0001 +80403629 .byt:0001 +8040362A .byt:0001 +8040362B .byt:0001 +8040362C suns_song_fix_event +80403660 @@child +80403670 @@return +80403678 suns_song_fix +8040368C @@check_suns_status +804036A8 @@disable_suns +804036B0 @@return +804036B8 warp_song_fix +804036E4 @@child +804036F4 @@return +804036FC Check_Has_Epona_Song +80403748 @@return +80403750 save_scarecrow_song +80403794 @@copy_song +8040379C write_initial_save +804037A8 @@save_data_loop +804037D8 @@overwrite_type +804037E0 @@return +804037E8 .byt:0868 +80405000 text_init,0000002C +8040502C text_print,000000A8 +804050D4 text_flush,00000148 +8040521C draw_dungeon_info,000009CC +80405BE8 c_init,0000002C +80405C14 c_after_game_state_update,00000088 +80405C9C heap_init,00000014 +80405CB0 heap_alloc,00000034 +80405CE4 file_init,00000044 +80405D28 disp_buf_init,00000018 +80405D40 sprite_bytes_per_tile,00000028 +80405D68 sprite_bytes,00000030 +80405D98 sprite_load,00000254 +80405FEC sprite_draw,000000F0 +804060DC draw_setup,000001DC +804062B8 gfx_init,00000148 +8040640C .byt:000E +8040640C cfg_dungeon_rewards +8040641C .byt:0012 +8040641C medal_colors +80406430 .byt:009C +80406430 dungeons +804064CC .byt:0010 +804064CC font_sprite +804064DC .byt:0010 +804064DC quest_items_sprite +804064EC .byt:0010 +804064EC medals_sprite +804064FC .byt:0010 +804064FC stones_sprite +8040650C .byt:0004 +8040650C cfg_dungeon_info_enable +80406510 .byt:0004 +80406510 dungeon_count +8040651C .byt:0004 +8040651C cfg_dungeon_info_reward_need_altar +80406520 .byt:0004 +80406520 cfg_dungeon_info_reward_need_compass +80406524 .byt:0004 +80406524 cfg_dungeon_info_mq_need_map +80406528 .byt:0004 +80406528 cfg_dungeon_info_mq_enable +8040652C .byt:0004 +8040652C heap_next +80406530 .byt:000E +80406530 cfg_dungeon_is_mq +80406540 .byt:0010 +80406540 setup_db +80406550 .byt:14C8 +80406550 FONT_TEXTURE +80407A18 .byt:85E8 +80480000 DUMMY_ACTOR +80500000 C_HEAP  \ No newline at end of file diff --git a/ASM/build/bundle.o b/ASM/build/bundle.o index 4a4167c9ddeeced5a576368dbdc476484cbbdf5a..09c19507d5f0fc27b7d45d4dde2561c5bbf17e05 100644 GIT binary patch delta 2505 zcmZ8jO-Ni<6h3eIX5O10Q#)_eQKxZC)R@*-+nQEdTP8%Pi#9Pd&@6;%G>HKdrD!Wu zn1Q+wl10i3#f1wOE-XlDYZfjnwO}EO6kNCvYGD>GvIsP#T@)Hfzi-Zw(muHJ-S6J> z^PO|w&upCEIDcorDSvsPE`Q?tXOF)5K{6>3X>ncYeNJTcvbcs4j;EWd+*V(AZjXqB z3+cBV33tM9<{agRzXa39EzkT)Fsp{X81R-zY7N+JR$qxka^YJ2(c<%uvHZlAe-x=&z}7|MKXVV`Fw8HU z8;=7IK=+Y+-|T zI3S^O4)Yd_MXk&E2y+HZ8z05I17pSfCq$BuxMuuQ%(EDW0!n=#yqExrox5mM27KNe z?tw3YXN*Iv@a8-W@GJMi>c*qTstTC4t68K5R%nj&8E?Ye4+k3Svr|`QraDK2@bTs8 zt2()Ib2OZ7YzS@)U%!dX>8b1EfNNK0I!D&;HP%OX+cmm~fm%J@HjwDC!KkIebH;m& zqi>aclvmmBH$EzIoc`lL`p??_ob7KLf1un!skARTNK6N(OQgvKQUEp_Cgl2>$WgAF zAZOFo_sy4G`^!8nj{N*yh|htdlwb402c++a~*=~x!!_jl^g<2l6T`-B}ajsu_7i=_!1X- zfi&o|!2K2&oq3h}7lGK1A^|(%4rrn%{Fx{Uo`+o&c6st46%-vaI~+~LZbk(~XMsf; z&a0y6Z7KqvvOsq%(3}d0E~|i;uL7b=8aM_)3><4Q-fp~G6U9&|E000o%Pz3b>>#jM zah%lF#*mozLJUG0P)Q5|8p!WzC9y?wWMZzbT7orA;B{GoZME|XYUkn18P7vP#`8us zo;Qy3=UI6Wziu12Hj+x`GCh&Py3|KbDr)tMnBNN13O%PA1T^zz#Ks>7n;t<9J@ecFrGQSm# zABRxJj~DNoc0g(J5-o@k)nkL^6X(itWl0z^9CjQiT$@leMNDgY^ zi`+m<`AQ6S4G%<)ArY@y{LPU( zT1hORb;Kcbh*-kskGLfA3ULc9C6t5mc z6ArAxIFAw3HS#Wtg06L_)yt055<&YV|#$r@i$|b2;z~%ZIxB6!Qs@K)>>z!Mia|!u*aoKjhUw z2syKfm%n>z|1WqEqucCTtjNX)!XI<1P0CU=f2!U(X-8Te3NU6Jj!9@;$9x!L z+0@tgmc*HQ{IAk&?{v#wV&Ue?i!M*$$Mjf`?v2s=o<3A z&NikeN2VvSLip^?)LkmPusdGl zvs_;VGT@pbgq~wy2z`h92SDyW7r6ioWA6gi!-z}HUi-XB_q+Z0WeJbr7Qr|?Dbh}S zC{j;67HI-T(ju1;C<4dJ2o%X1K@kY2pa|^W<^Bwi9D*;BuK>x{O<|EuQ&?n2`7U`G z*By!2(i$->t-<|mLE;)H&u|?r%^*-s4*%rj5OAIx6?BpJ0LdZn4f0+fc~Rr`Y1~ec zx4B;eVn2%b&1ELKW)ejafQh2uJo6|FdFIgpBPcqocB5*Cj!{r_+6an1GJ>MBMo@G@ zGlE;r*(blC*9p@;%(RLaWjyz*|7$VR2C+=jq6;b)^l-wpzOzcJHV z8;N=OYzX1yv>||()1Ehl*h}iSj90>UT-5|?CPA!I6Kos9SivNS;mjE@hJ*|l8#Do9 z>C;ehfeu^D#WqTdK3^_#QD?FNgGE8mD12brA*-Tngotk>h!5yze(Ug z5If>Pi0?P7e!rLmjtX=3)$d5{j*VR$`Tfflj~F3wC}Rcjlt~bWFeZq17{_?0I>LdjqPAwC1ebIC>se)=Ny1or8(-5uk4R?U#yM_xs zuj5yZic!1V!e4I}Otmci;_LB8Kkn91j diff --git a/ASM/build/c_symbols.txt b/ASM/build/c_symbols.txt index 12d48c149..6f5a16f5a 100644 --- a/ASM/build/c_symbols.txt +++ b/ASM/build/c_symbols.txt @@ -1,61 +1,61 @@ - -../build/bundle.o: file format elf32-bigmips - -SYMBOL TABLE: -00000000 l d .MIPS.abiflags 00000000 .MIPS.abiflags -00000000 l d .reginfo 00000000 .reginfo -00000000 l d .text 00000000 .text -00000000 l d .rodata.str1.4 00000000 .rodata.str1.4 -00000000 l d .data 00000000 .data -00000000 l d .sdata 00000000 .sdata -00000000 l d .sbss 00000000 .sbss -00000000 l d .bss 00000000 .bss -00000000 l d .comment 00000000 .comment -00000000 l d .pdr 00000000 .pdr -00000000 l d .gnu.attributes 00000000 .gnu.attributes -00000000 l d .mdebug.abi32 00000000 .mdebug.abi32 -00000000 l df *ABS* 00000000 gfx.c -00000000 l df *ABS* 00000000 util.c -00000000 l df *ABS* 00000000 main.c -00000000 l df *ABS* 00000000 dungeon_info.c -00000000 l .rodata.str1.4 00000000 $LC0 -00000004 l .rodata.str1.4 00000000 $LC1 -00000000 l df *ABS* 00000000 text.c -00000018 l O .sbss 00000004 text_buf -00000014 l O .sbss 00000004 text_end -000011e4 g F .text 0000002c text_init -000012b8 g F .text 00000148 text_flush -00000020 g O .data 00000010 medals_sprite -00000004 g O .sdata 00000004 dungeon_count -00000010 g O .data 00000010 quest_items_sprite -000006ec g F .text 00000034 heap_alloc -00000818 g F .text 000009cc draw_dungeon_info -00000000 *UND* 00000000 FONT_TEXTURE -000002c4 g F .text 000000f0 sprite_draw -00000070 g F .text 00000254 sprite_load -00000030 g O .data 00000010 stones_sprite -00000000 g O .bss 00000010 setup_db -000003b4 g F .text 000001dc draw_setup -00000000 g O .data 00000010 font_sprite -00000040 g F .text 00000030 sprite_bytes -0000000c g O .sbss 00000004 cfg_dungeon_info_mq_need_map -00000590 g F .text 00000148 gfx_init -00000000 g F .text 00000018 disp_buf_init -00000010 g O .bss 0000000e cfg_dungeon_is_mq -00000064 g O .data 0000009c dungeons -00000050 g O .data 00000012 medal_colors -00001210 g F .text 000000a8 text_print -00000764 g F .text 0000002c c_init -00000000 g O .sbss 00000004 heap_next -00000040 g O .data 0000000e cfg_dungeon_rewards -00000790 g F .text 00000088 c_after_game_state_update -000006d8 g F .text 00000014 heap_init -00000008 g O .sbss 00000004 cfg_dungeon_info_reward_need_compass -00000010 g O .sbss 00000004 cfg_dungeon_info_mq_enable -00000000 *UND* 00000000 C_HEAP -00000018 g F .text 00000028 sprite_bytes_per_tile -00000720 g F .text 00000044 file_init -00000004 g O .sbss 00000004 cfg_dungeon_info_reward_need_altar -00000000 g O .sdata 00000004 cfg_dungeon_info_enable - - + +../build/bundle.o: file format elf32-bigmips + +SYMBOL TABLE: +00000000 l d .MIPS.abiflags 00000000 .MIPS.abiflags +00000000 l d .reginfo 00000000 .reginfo +00000000 l d .text 00000000 .text +00000000 l d .rodata.str1.4 00000000 .rodata.str1.4 +00000000 l d .data 00000000 .data +00000000 l d .sdata 00000000 .sdata +00000000 l d .sbss 00000000 .sbss +00000000 l d .bss 00000000 .bss +00000000 l d .comment 00000000 .comment +00000000 l d .pdr 00000000 .pdr +00000000 l d .gnu.attributes 00000000 .gnu.attributes +00000000 l d .mdebug.abi32 00000000 .mdebug.abi32 +00000000 l df *ABS* 00000000 text.c +00000004 l O .sbss 00000004 text_buf +00000000 l O .sbss 00000004 text_end +00000000 l df *ABS* 00000000 dungeon_info.c +00000000 l .rodata.str1.4 00000000 $LC0 +00000004 l .rodata.str1.4 00000000 $LC1 +00000000 l df *ABS* 00000000 main.c +00000000 l df *ABS* 00000000 util.c +00000000 l df *ABS* 00000000 gfx.c +00000000 g F .text 0000002c text_init +000000d4 g F .text 00000148 text_flush +000000e0 g O .data 00000010 medals_sprite +00000004 g O .sdata 00000004 dungeon_count +000000d0 g O .data 00000010 quest_items_sprite +00000cb0 g F .text 00000034 heap_alloc +0000021c g F .text 000009cc draw_dungeon_info +00000000 *UND* 00000000 FONT_TEXTURE +00000fec g F .text 000000f0 sprite_draw +00000d98 g F .text 00000254 sprite_load +000000f0 g O .data 00000010 stones_sprite +00000010 g O .bss 00000010 setup_db +000010dc g F .text 000001dc draw_setup +000000c0 g O .data 00000010 font_sprite +00000d68 g F .text 00000030 sprite_bytes +00000010 g O .sbss 00000004 cfg_dungeon_info_mq_need_map +000012b8 g F .text 00000148 gfx_init +00000d28 g F .text 00000018 disp_buf_init +00000000 g O .bss 0000000e cfg_dungeon_is_mq +00000024 g O .data 0000009c dungeons +00000010 g O .data 00000012 medal_colors +0000002c g F .text 000000a8 text_print +00000be8 g F .text 0000002c c_init +00000018 g O .sbss 00000004 heap_next +00000000 g O .data 0000000e cfg_dungeon_rewards +00000c14 g F .text 00000088 c_after_game_state_update +00000c9c g F .text 00000014 heap_init +0000000c g O .sbss 00000004 cfg_dungeon_info_reward_need_compass +00000014 g O .sbss 00000004 cfg_dungeon_info_mq_enable +00000000 *UND* 00000000 C_HEAP +00000d40 g F .text 00000028 sprite_bytes_per_tile +00000ce4 g F .text 00000044 file_init +00000008 g O .sbss 00000004 cfg_dungeon_info_reward_need_altar +00000000 g O .sdata 00000004 cfg_dungeon_info_enable + + diff --git a/ASM/scripts/build.py b/ASM/scripts/build.py index 02ccb2a7d..d7a95f5e3 100644 --- a/ASM/scripts/build.py +++ b/ASM/scripts/build.py @@ -96,5 +96,5 @@ # Diff ROMs -call(['python', 'scripts/rom_diff.py', +call(['python3', 'scripts/rom_diff.py', 'roms/base.z64', 'roms/patched.z64', '../data/rom_patch.txt']) diff --git a/Patches.py b/Patches.py index acf99ff09..eb1384b0a 100644 --- a/Patches.py +++ b/Patches.py @@ -9,7 +9,7 @@ import copy from Hints import writeGossipStoneHintsHints, buildBossRewardHints, buildGanonText -from Utils import local_path, default_output_path +from Utils import local_path, default_output_path, random_choices from Items import ItemFactory, item_data from Messages import * from OcarinaSongs import Song, str_to_song, replace_songs @@ -1455,7 +1455,7 @@ def write_save_table(rom): Tunics.append(0x00B6DA3B) # Goron Tunic Tunics.append(0x00B6DA3E) # Zora Tunic colorList = get_tunic_colors() - randomColors = random.choices(colorList, k=3) + randomColors = random_choices(colorList, k=3) for i in range(len(Tunics)): # get the color option @@ -1483,7 +1483,7 @@ def write_save_table(rom): Navi.append([0x00B5E194]) # NPC Navi.append([0x00B5E174, 0x00B5E17C, 0x00B5E18C, 0x00B5E1A4, 0x00B5E1AC, 0x00B5E1B4, 0x00B5E1C4, 0x00B5E1CC, 0x00B5E1D4]) # Everything else naviList = get_navi_colors() - randomColors = random.choices(naviList, k=4) + randomColors = random_choices(naviList, k=4) for i in range(len(Navi)): # do everything in the inner loop so that "true random" changes even for subcategories @@ -1513,7 +1513,7 @@ def write_save_table(rom): NaviHint.append([0xAE7EF2, 0xC26C7E]) #Overworld Hint NaviHint.append([0xAE7EC6]) #Enemy Target Hint naviHintSFXList = ['Default', 'Notification', 'Rupee', 'Timer', 'Tamborine', 'Recovery Heart', 'Carrot Refill', 'Navi - Hey!', 'Navi - Random', 'Zelda - Gasp', 'Cluck', 'Mweep!', 'None'] - randomNaviHintSFX = random.choices(naviHintSFXList, k=2) + randomNaviHintSFX = random_choices(naviHintSFXList, k=2) for i in range(len(NaviHint)): for j in range(len(NaviHint[i])): diff --git a/Settings.py b/Settings.py index 2cadb0d1e..2851ecda0 100644 --- a/Settings.py +++ b/Settings.py @@ -7,6 +7,7 @@ from Patches import get_tunic_color_options, get_navi_color_options from version import __version__ +from Utils import random_choices class ArgumentDefaultsHelpFormatter(argparse.RawTextHelpFormatter): @@ -151,7 +152,7 @@ def __init__(self, settings_dict): self.settings_string = self.get_settings_string() if(self.seed is None): # https://stackoverflow.com/questions/2257441/random-string-generation-with-upper-case-letters-and-digits-in-python - self.seed = ''.join(random.choices(string.ascii_uppercase + string.digits, k=10)) + self.seed = ''.join(random_choices(string.ascii_uppercase + string.digits, k=10)) self.sanatize_seed() self.numeric_seed = self.get_numeric_seed() diff --git a/data/rom_patch.txt b/data/rom_patch.txt index 74f2a6850..d344d7142 100644 --- a/data/rom_patch.txt +++ b/data/rom_patch.txt @@ -1,11996 +1,11995 @@ -11,45 -12,ae -13,5b -14,97 -15,db -16,41 -17,31 -d261,48 -d262,0 -d265,48 -d266,50 -d267,0 -d269,48 -d26a,0 -d271,4b -d272,30 -d275,4b -d276,e0 -d277,0 -d279,4b -d27a,30 -8a9c51,0 -8a9c52,0 -8a9c53,0 -8a9c55,0 -8a9c56,0 -8a9c57,0 -8a9c58,0 -8a9c59,0 -8a9c5a,0 -8a9c5c,0 -8a9c5d,0 -8a9c5e,0 -8a9c5f,0 -8a9c64,0 -8a9c65,0 -8a9c66,0 -8a9c67,0 -8a9c68,0 -8a9c69,0 -8a9c6a,0 -8a9c6b,0 -8a9c6c,0 -8a9c6d,0 -8a9c6e,0 -8a9c6f,0 -8a9c90,0 -8a9c91,0 -8a9c92,0 -8a9c93,0 -8a9c94,0 -8a9c95,0 -8a9c96,0 -8a9c97,0 -8a9c98,0 -8a9c99,0 -8a9c9a,0 -8a9c9c,0 -8a9c9d,0 -8a9c9e,0 -8a9c9f,0 -8a9ca0,0 -8a9ca3,0 -8a9ca4,0 -8a9ca5,0 -8a9ca6,0 -8a9ca7,0 -8a9ca8,0 -8a9ca9,0 -8a9caa,0 -8a9cab,0 -8a9cac,0 -8a9cad,0 -8a9cae,0 -8a9caf,0 -8a9cb0,0 -8a9cd0,0 -8a9cd1,0 -8a9cd2,0 -8a9cd3,0 -8a9cd4,0 -8a9cd5,0 -8a9cd6,0 -8a9cd7,0 -8a9cd8,0 -8a9cd9,0 -8a9cda,0 -8a9cdc,0 -8a9cdd,0 -8a9cde,0 -8a9cdf,0 -8a9ce0,0 -8a9ce3,0 -8a9ce4,0 -8a9ce5,0 -8a9ce6,0 -8a9ce7,0 -8a9ce8,0 -8a9ce9,0 -8a9cea,0 -8a9ceb,0 -8a9cec,0 -8a9ced,0 -8a9cee,0 -8a9cef,0 -8a9cf0,0 -8a9d10,0 -8a9d11,0 -8a9d12,0 -8a9d13,0 -8a9d14,0 -8a9d15,0 -8a9d16,0 -8a9d17,0 -8a9d18,0 -8a9d19,0 -8a9d1a,0 -8a9d1c,0 -8a9d1d,0 -8a9d1e,0 -8a9d1f,0 -8a9d20,0 -8a9d21,0 -8a9d22,0 -8a9d23,0 -8a9d24,0 -8a9d25,0 -8a9d26,0 -8a9d27,0 -8a9d28,0 -8a9d29,0 -8a9d2a,0 -8a9d2b,0 -8a9d2c,0 -8a9d2d,0 -8a9d2e,0 -8a9d2f,0 -8a9d30,0 -8a9d50,0 -8a9d51,0 -8a9d52,0 -8a9d53,0 -8a9d54,0 -8a9d55,0 -8a9d56,0 -8a9d57,0 -8a9d58,0 -8a9d59,0 -8a9d5a,0 -8a9d5c,0 -8a9d5d,0 -8a9d5e,0 -8a9d5f,0 -8a9d60,0 -8a9d61,0 -8a9d62,0 -8a9d63,0 -8a9d64,0 -8a9d65,0 -8a9d66,0 -8a9d67,0 -8a9d68,0 -8a9d69,0 -8a9d6a,0 -8a9d6b,0 -8a9d6c,0 -8a9d6d,0 -8a9d6e,0 -8a9d6f,0 -8a9d90,0 -8a9d91,0 -8a9d92,0 -8a9d93,0 -8a9d94,0 -8a9d95,0 -8a9d96,0 -8a9d97,0 -8a9d98,0 -8a9d99,0 -8a9d9a,0 -8a9d9c,0 -8a9d9d,0 -8a9d9e,0 -8a9d9f,0 -8a9da0,0 -8a9da1,0 -8a9da2,0 -8a9da3,0 -8a9da4,0 -8a9da6,0 -8a9da7,0 -8a9da8,0 -8a9da9,0 -8a9daa,0 -8a9dab,0 -8a9dac,0 -8a9dad,0 -8a9dae,0 -8a9dd0,0 -8a9dd1,0 -8a9dd2,0 -8a9dd3,0 -8a9dd4,0 -8a9dd5,0 -8a9dd6,0 -8a9dd7,0 -8a9dd8,0 -8a9dd9,0 -8a9dda,0 -8a9ddc,0 -8a9ddd,0 -8a9dde,0 -8a9ddf,0 -8a9de0,0 -8a9de1,0 -8a9de2,0 -8a9de3,0 -8a9de4,0 -8a9de6,0 -8a9de7,0 -8a9de8,0 -8a9de9,0 -8a9dea,0 -8a9deb,0 -8a9dec,0 -8a9ded,0 -8a9dee,0 -8a9e10,0 -8a9e11,0 -8a9e12,0 -8a9e13,0 -8a9e14,0 -8a9e15,0 -8a9e16,0 -8a9e17,0 -8a9e18,0 -8a9e19,0 -8a9e1a,0 -8a9e1c,0 -8a9e1d,0 -8a9e1e,0 -8a9e1f,0 -8a9e20,0 -8a9e21,0 -8a9e22,0 -8a9e23,0 -8a9e24,0 -8a9e26,0 -8a9e27,0 -8a9e28,0 -8a9e29,0 -8a9e2a,0 -8a9e2b,0 -8a9e2c,0 -8a9e2d,0 -8a9e2e,0 -8a9e50,0 -8a9e51,0 -8a9e52,0 -8a9e53,0 -8a9e54,0 -8a9e55,0 -8a9e56,0 -8a9e57,0 -8a9e58,0 -8a9e59,0 -8a9e5a,0 -8a9e5b,0 -8a9e5c,0 -8a9e5d,0 -8a9e5e,0 -8a9e5f,0 -8a9e60,0 -8a9e61,0 -8a9e62,0 -8a9e63,0 -8a9e64,0 -8a9e65,0 -8a9e66,0 -8a9e67,0 -8a9e68,0 -8a9e69,0 -8a9e6a,0 -8a9e6b,0 -8a9e6c,0 -8a9e6d,0 -8a9e6e,0 -8a9e90,0 -8a9e91,0 -8a9e92,0 -8a9e93,0 -8a9e94,0 -8a9e95,0 -8a9e96,0 -8a9e97,0 -8a9e98,0 -8a9e99,0 -8a9e9a,0 -8a9e9b,0 -8a9e9c,0 -8a9e9d,0 -8a9e9e,0 -8a9e9f,0 -8a9ea0,0 -8a9ea1,0 -8a9ea2,0 -8a9ea3,0 -8a9ea4,0 -8a9ea5,0 -8a9ea6,0 -8a9ea7,0 -8a9ea8,0 -8a9ea9,0 -8a9eaa,0 -8a9eab,0 -8a9eac,0 -8a9ead,0 -8a9eae,0 -8a9ed0,0 -8a9ed1,0 -8a9ed2,0 -8a9ed3,0 -8a9ed4,0 -8a9ed5,0 -8a9ed6,0 -8a9ed7,0 -8a9ed8,0 -8a9ed9,0 -8a9eda,0 -8a9edb,0 -8a9edc,0 -8a9edd,0 -8a9ede,0 -8a9edf,0 -8a9ee0,0 -8a9ee3,0 -8a9ee4,0 -8a9ee5,0 -8a9ee6,0 -8a9ee7,0 -8a9ee8,0 -8a9ee9,0 -8a9eea,0 -8a9eeb,0 -8a9eec,0 -8a9eed,0 -8a9eee,0 -8a9f10,0 -8a9f11,0 -8a9f12,0 -8a9f13,0 -8a9f14,0 -8a9f15,0 -8a9f16,0 -8a9f17,0 -8a9f18,0 -8a9f19,0 -8a9f1a,0 -8a9f1b,0 -8a9f1c,0 -8a9f1d,0 -8a9f1e,0 -8a9f1f,0 -8a9f20,0 -8a9f23,0 -8a9f24,0 -8a9f25,0 -8a9f26,0 -8a9f27,0 -8a9f28,0 -8a9f29,0 -8a9f2a,0 -8a9f2b,0 -8a9f2c,0 -8a9f2d,0 -8a9f2e,0 -8a9f50,0 -8a9f51,0 -8a9f52,0 -8a9f53,0 -8a9f55,0 -8a9f56,0 -8a9f57,0 -8a9f58,0 -8a9f59,0 -8a9f5a,0 -8a9f5b,0 -8a9f5c,0 -8a9f5d,0 -8a9f5e,0 -8a9f5f,0 -8a9f64,0 -8a9f65,0 -8a9f66,0 -8a9f67,0 -8a9f68,0 -8a9f69,0 -8a9f6a,0 -8a9f6b,0 -8a9f6c,0 -8a9f6d,0 -8a9f6e,0 -a98c30,c -a98c31,10 -a98c32,a -a98c33,db -a9e838,8 -a9e839,10 -a9e83a,d -a9e83b,bf -ac9abc,c -ac9abd,10 -ac9abe,b -ac9abf,ee -ac9ac1,0 -ac9ac2,0 -ac9ac3,0 -acce88,c -acce89,10 -acce8a,b -acce8b,df -acce8c,0 -acce8d,0 -acce8e,0 -acce8f,0 -acce90,0 -acce91,0 -acce94,0 -acce97,0 -acce98,0 -acce99,0 -acce9b,0 -ae59e0,8 -ae59e1,10 -ae59e2,c -ae59e3,f5 -ae5df0,c -ae5df1,10 -ae5df2,d -ae5df3,9e -ae5df8,c -ae5df9,10 -ae5dfa,b -ae5dfb,e9 -ae5e04,0 -ae5e05,0 -ae5e07,0 -ae6e48,c -ae6e49,10 -ae6e4a,b -ae6e4b,e4 -ae6e4c,1 -ae6e4d,f -ae6e4e,c0 -ae6e4f,21 -b06400,82 -b06402,e -b06403,de -b0640c,31 -b0640d,f8 -b0640e,0 -b0640f,2 -b06c2c,c -b06c2d,10 -b06c2e,d -b06c2f,e7 -b06c31,28 -b06c33,20 -b16b50,c -b16b51,10 -b16b52,c -b16b53,95 -b16b54,0 -b16b56,0 -b16b57,0 -b16b60,c -b16b61,10 -b16b62,c -b16b63,c4 -b16b64,0 -b16b65,0 -b16b66,0 -b16b67,0 -b17bb4,af -b17bb5,bf -b17bb6,0 -b17bb7,1c -b17bb8,af -b17bb9,a4 -b17bba,1 -b17bbb,40 -b17bbc,3c -b17bbd,4 -b17bbe,80 -b17bbf,40 -b17bc0,3c -b17bc1,5 -b17bc2,3 -b17bc3,48 -b17bc4,c -b17bc5,0 -b17bc6,3 -b17bc7,7c -b17bc8,34 -b17bc9,6 -b17bca,50 -b17bcb,0 -b17bcc,c -b17bcd,10 -b17bce,0 -b17bd0,0 -b17bd1,0 -b17bd2,0 -b17bd3,0 -b54b38,c -b54b39,10 -b54b3a,d -b54b3b,ae -b54e5c,c -b54e5d,10 -b54e5e,d -b54e5f,8b -b55a65,10 -b55a66,d -b55a67,d4 -baed6c,0 -baed6d,0 -baed6f,0 -bb77b4,0 -bb77b5,0 -bb77b7,0 -bb7890,c -bb7891,10 -bb7892,c -bb7893,d4 -bb7894,0 -bb7895,0 -bb7897,0 -bb7950,c -bb7951,10 -bb7952,c -bb7953,db -bb7954,0 -bb7955,0 -bb7957,0 -bb7ba0,0 -bb7ba1,0 -bb7ba3,0 -bb7bfc,0 -bb7bfd,0 -bb7bff,0 -bb7c3c,c -bb7c3d,10 -bb7c3e,c -bb7c3f,e2 -bb7c40,0 -bb7c41,0 -bb7c43,0 -bb7c58,c -bb7c59,10 -bb7c5a,c -bb7c5b,cd -bb7c5c,0 -bb7c5d,0 -bb7c5f,0 -bcecbc,8 -bcecbd,10 -bcecbe,a -bcecbf,a3 -bcecc1,0 -bcecc2,0 -bcecc3,0 -bcecc4,0 -bcecc5,0 -bcecc7,0 -bcecc8,0 -bcecc9,0 -bcecca,0 -bceccb,0 -bceccc,0 -bceccd,0 -bcecce,0 -bceccf,0 -bcecd0,0 -bcecd1,0 -bcecd3,0 -bda0a1,10 -bda0a2,a -bda0a3,29 -bda0d8,c -bda0d9,10 -bda0da,a -bda0db,81 -bda0e4,0 -bda0e5,0 -bda0e7,0 -bda264,c -bda265,10 -bda266,a -bda267,85 -bda270,0 -bda271,0 -bda273,0 -be9ac0,c -be9ac1,10 -be9ac2,a -be9ac3,af -be9ad8,c -be9ad9,10 -be9ada,a -be9adb,b8 -be9ae4,0 -be9ae5,0 -be9bde,83 -be9bdf,83 -c004ec,8 -c004ed,10 -c004ee,c -c004ef,3a -c0067f,64 -c018a0,c -c018a1,10 -c018a2,c -c018a3,4f -c6c7a8,c -c6c7a9,10 -c6c7aa,c -c6c7ab,5f -c6c920,c -c6c921,10 -c6c922,c -c6c923,5f -c892dc,34 -c892dd,e -c892de,0 -c892df,1 -c8931c,34 -c8931d,a -c8931e,0 -c8931f,1 -c89745,10 -c89746,b -c89747,b4 -c89868,92 -c89869,e -c8986a,1d -c8986b,28 -c898a4,92 -c898a5,19 -c898a6,1d -c898a7,29 -c898c8,92 -c898c9,a -c898ca,1d -c898cb,2a -cb6860,c -cb6861,10 -cb6862,c -cb6863,e9 -d12f78,34 -d12f79,f -d12f7b,0 -d74964,10 -d74965,0 -d7e140,34 -d7e141,e -d7e142,0 -d7e143,1 -d7e144,80 -d7e146,e -d7e147,de -d7e160,84 -d7e161,88 -d7e163,a4 -d7e164,34 -d7e165,1 -d7e167,63 -d7e168,14 -d7e169,28 -d7e16b,3 -d7e16c,34 -d7e16d,2 -d7e16e,20 -d7e16f,49 -d7e170,10 -d7e171,0 -d7e172,0 -d7e173,6 -d7e174,0 -d7e177,0 -d7e178,94 -d7e179,69 -d7e17a,e -d7e17b,d6 -d7e17c,31 -d7e17d,29 -d7e17e,0 -d7e17f,4 -d7e180,15 -d7e181,20 -d7e183,2 -d7e184,34 -d7e185,2 -d7e186,20 -d7e187,44 -d7e188,34 -d7e189,2 -d7e18a,20 -d7e18b,43 -d7e18c,8f -d7e18d,bf -d7e18f,14 -d7e190,27 -d7e191,bd -d7e192,0 -d7e193,18 -d7e194,3 -d7e195,e0 -d7e197,8 -d7e198,0 -d7e199,0 -d7e19a,0 -d7e19b,0 -d7e398,94 -d7e399,89 -d7e39a,e -d7e39b,d6 -d7e39c,31 -d7e39d,28 -d7e39f,10 -d7e3a0,31 -d7e3a1,29 -d7e3a3,4 -d7e3a4,1 -d7e3a5,9 -d7e3a6,40 -d7e3a7,25 -d7e3a8,34 -d7e3a9,9 -d7e3ab,14 -d7e3ac,34 -d7e3ad,1 -d7e3ae,0 -d7e3af,5f -d7e3b0,14 -d7e3b1,23 -d7e3b3,6 -d7e3b4,0 -d7e3b5,0 -d7e3b7,0 -d7e3b8,11 -d7e3b9,9 -d7e3bb,4 -d7e3bc,0 -d7e3bd,0 -d7e3be,0 -d7e3bf,0 -d7e3c0,34 -d7e3c1,2 -d7e3c2,0 -d7e3c3,1 -d7e3c4,3 -d7e3c5,e0 -d7e3c7,8 -d7e3c8,0 -d7e3c9,0 -d7e3cb,0 -d7e3cc,14 -d7e3cd,c2 -d7e3cf,9 -d7e3d0,34 -d7e3d1,1 -d7e3d3,63 -d7e3d4,14 -d7e3d5,23 -d7e3d7,7 -d7e3d8,8c -d7e3d9,8a -d7e3db,10 -d7e3dc,15 -d7e3dd,40 -d7e3df,5 -d7e3e0,0 -d7e3e1,0 -d7e3e2,0 -d7e3e3,0 -d7e3e4,15 -d7e3e5,9 -d7e3e7,3 -d7e3e8,34 -d7e3e9,2 -d7e3eb,1 -d7e3ec,3 -d7e3ed,e0 -d7e3ef,8 -d7e3f0,0 -d7e3f1,0 -d7e3f2,0 -d7e3f3,0 -d7e3f4,34 -d7e3f5,2 -d7e3f6,0 -d7e3f7,0 -d7e3f8,3 -d7e3f9,e0 -d7e3fa,0 -d7e3fb,8 -d7e3fc,0 -d7e3fd,0 -d7e3ff,0 -d7e76c,8f -d7e76d,b8 -d7e76e,0 -d7e76f,44 -d7e778,87 -d7e779,18 -d7e77b,a4 -d7e77c,80 -d7e77d,49 -d7e77e,e -d7e77f,de -d7e784,34 -d7e786,0 -d7e787,1 -d7e788,2 -d7e789,0 -d7e78a,20 -d7e78b,21 -d7e798,15 -d7e79b,2 -d7e79c,34 -d7e79d,19 -d7e79e,0 -d7e79f,5f -d7e7a0,17 -d7e7a1,38 -d7e7a2,0 -d7e7a3,5 -d7e7a4,ae -d7e7a5,b -d7e7a6,1 -d7e7a7,80 -d7e890,0 -d7e891,0 -d7e893,0 -d7e8a0,10 -d7e8a1,0 -d7e8a3,7 -d7e8a4,31 -d7e8a5,4a -d7e8a7,4 -d7e8b0,0 -d7e8b3,0 -d7e8b4,0 -d7e8b5,0 -d7e8b7,0 -d7e8c0,34 -d7e8c1,b -d7e8c2,0 -d7e8c3,14 -d7e8c8,1 -d7e8c9,4b -d7e8ca,50 -d7e8cb,25 -d7e8cc,15 -d7e8cd,4b -d7e8cf,14 -d7e8d4,34 -d7e8d5,e -d7e8d6,0 -d7e8d7,1 -d7e8d8,80 -d7e8da,e -d7e8db,de -d7e8e0,57 -d7e8e3,f -d7ebbc,c -d7ebbd,10 -d7ebbe,b -d7ebbf,f1 -d7ec1c,0 -d7ec1d,0 -d7ec1f,0 -d7ec20,34 -d7ec23,5 -db13d3,76 -db532c,c -db532d,10 -db532e,c -db532f,1 -df264f,76 -df7cb0,c -df7cb1,10 -df7cb2,c -df7cb3,7f -e09f68,80 -e09f6a,e -e09f6b,de -e09f74,31 -e09f75,f8 -e09f76,0 -e09f77,4 -e09fb0,c -e09fb1,10 -e09fb2,b -e09fb3,f9 -e29388,8 -e29389,10 -e2938a,c -e2938b,18 -e2a044,c -e2a045,10 -e2a046,c -e2a047,21 -e2b0b5,10 -e2b0b6,c -e2b0b7,29 -e2f093,34 -e9e1d8,34 -e9e1d9,9 -e9e1da,40 -e9e1db,0 -e9e1f0,34 -e9e1f2,5b -e9e1f3,8 -e9e200,34 -e9e202,0 -e9e203,a -e9e20d,a9 -ebb85c,c -ebb85d,10 -ebb85e,c -ebb85f,6a -ebb865,40 -ebb867,12 -ebb86c,10 -ebb86d,0 -ebb86e,0 -ebb86f,14 -ec68bc,8f -ec68bd,ad -ec68be,0 -ec68bf,2c -ec68c0,34 -ec68c1,c -ec68c2,0 -ec68c3,a -ec68c4,a5 -ec68c5,ac -ec68c6,1 -ec68c7,10 -ec68c8,c -ec68c9,10 -ec68ca,a -ec68cb,46 -ec68cc,2 -ec68cd,0 -ec68ce,28 -ec68cf,21 -ec68d0,0 -ec68d1,0 -ec68d2,0 -ec68d3,0 -ec68d4,0 -ec68d5,0 -ec68d7,0 -ec68da,0 -ec68db,0 -ec68dc,0 -ec68dd,0 -ec68de,0 -ec68df,0 -ec68e0,0 -ec68e1,0 -ec68e2,0 -ec68e3,0 -ec69ad,ad -ec69af,2c -ec69b0,34 -ec69b1,c -ec69b2,0 -ec69b3,a -ec69b4,a5 -ec69b5,ac -ec69b6,1 -ec69b7,10 -ec69b8,c -ec69b9,10 -ec69ba,a -ec69bb,46 -ec69bc,2 -ec69bd,0 -ec69be,28 -ec69bf,21 -ec69c0,0 -ec69c1,0 -ec69c3,0 -ec69c4,0 -ec69c5,0 -ec69c6,0 -ec69c7,0 -ec69c8,0 -ec69c9,0 -ec69cb,0 -ec69cc,0 -ec69cd,0 -ec69ce,0 -ec69cf,0 -ec69d2,0 -ec69d3,0 -ec9ce7,7a -3480000,27 -3480001,bd -3480002,ff -3480003,e8 -3480004,af -3480005,bf -3480007,10 -3480008,3c -3480009,4 -348000a,80 -348000b,40 -348000c,24 -348000d,84 -348000e,50 -3480010,3c -3480011,5 -3480012,3 -3480013,4b -3480014,24 -3480015,a5 -3480016,30 -3480018,34 -3480019,6 -348001a,b0 -348001c,c -348001e,3 -348001f,7c -3480024,c -3480025,10 -3480026,15 -3480027,d9 -348002c,3c -348002d,2 -348002e,80 -348002f,12 -3480030,24 -3480031,42 -3480032,d2 -3480033,a0 -3480034,24 -3480035,e -3480036,1 -3480037,40 -3480038,3c -3480039,1 -348003a,80 -348003b,10 -348003c,ac -348003d,2e -348003e,e5 -3480040,8f -3480041,bf -3480043,10 -3480044,27 -3480045,bd -3480047,18 -3480048,3 -3480049,e0 -348004b,8 -3481c01,5a -3481c02,3b -3481c03,5d -3481c04,5c -3481c05,5e -3481c06,51 -3481c07,52 -3481c08,53 -3482050,ff -3482051,ff -3482052,ff -3482053,ff -3482054,ff -3482055,ff -3482056,ff -3482057,ff -3482058,80 -3482059,40 -348205a,27 -348205b,30 -348205c,80 -348205d,40 -348205e,25 -348205f,78 -3482060,ff -3482061,ff -3482062,ff -3482063,ff -3482064,ff -3482065,ff -3482066,ff -3482067,ff -3482068,80 -3482069,40 -348206a,27 -348206b,30 -348206c,80 -348206d,40 -348206e,25 -348206f,94 -3482070,ff -3482071,ff -3482072,ff -3482073,ff -3482074,ff -3482075,ff -3482076,ff -3482077,ff -3482078,80 -3482079,40 -348207a,27 -348207b,30 -348207c,80 -348207d,40 -348207e,25 -348207f,bc -3482080,ff -3482081,ff -3482082,ff -3482083,ff -3482084,ff -3482085,ff -3482086,ff -3482087,ff -3482088,80 -3482089,40 -348208a,27 -348208b,30 -348208c,80 -348208d,40 -348208e,25 -348208f,e4 -3482090,ff -3482091,ff -3482092,ff -3482093,ff -3482094,ff -3482095,ff -3482096,ff -3482097,ff -3482098,80 -3482099,40 -348209a,27 -348209b,30 -348209c,80 -348209d,40 -348209e,26 -348209f,c -34820a0,53 -34820a1,41 -34820a2,23 -34820a3,f8 -34820a5,d1 -34820a6,ff -34820a7,ff -34820a8,80 -34820a9,40 -34820aa,26 -34820ab,5c -34820ac,80 -34820ad,40 -34820ae,26 -34820af,34 -34820b0,ff -34820b1,ff -34820b2,ff -34820b3,ff -34820b4,ff -34820b5,ff -34820b6,ff -34820b7,ff -34820b8,80 -34820b9,40 -34820ba,27 -34820bb,30 -34820bc,80 -34820bd,40 -34820be,26 -34820bf,70 -34820c0,ff -34820c1,ff -34820c2,ff -34820c3,ff -34820c4,ff -34820c5,ff -34820c6,ff -34820c7,ff -34820c8,80 -34820c9,40 -34820ca,27 -34820cb,30 -34820cc,80 -34820cd,40 -34820ce,26 -34820cf,8c -34820d0,ff -34820d1,ff -34820d2,ff -34820d3,ff -34820d4,ff -34820d5,ff -34820d6,ff -34820d7,ff -34820d8,80 -34820d9,40 -34820da,27 -34820db,30 -34820dc,80 -34820dd,40 -34820de,26 -34820df,a8 -34820e0,53 -34820e1,41 -34820e2,38 -34820e3,43 -34820e5,eb -34820e6,15 -34820e7,ff -34820e8,80 -34820e9,40 -34820ea,27 -34820eb,48 -34820ec,80 -34820ed,40 -34820ee,25 -34820ef,70 -34820f0,53 -34820f1,41 -34820f2,37 -34820f3,44 -34820f5,eb -34820f6,16 -34820f7,ff -34820f8,80 -34820f9,40 -34820fa,27 -34820fb,48 -34820fc,80 -34820fd,40 -34820fe,25 -34820ff,70 -3482100,53 -3482101,41 -3482102,39 -3482103,45 -3482105,eb -3482106,17 -3482107,ff -3482108,80 -3482109,40 -348210a,27 -348210b,48 -348210c,80 -348210d,40 -348210e,25 -348210f,70 -3482110,53 -3482111,41 -3482112,6b -3482113,46 -3482114,1 -3482115,77 -3482116,18 -3482117,ff -3482118,80 -3482119,40 -348211a,27 -348211b,48 -348211c,80 -348211d,40 -348211e,25 -348211f,70 -3482120,53 -3482121,41 -3482122,3f -3482123,47 -3482125,f4 -3482126,19 -3482127,ff -3482128,80 -3482129,40 -348212a,27 -348212b,48 -348212c,80 -348212d,40 -348212e,25 -348212f,70 -3482130,53 -3482131,41 -3482132,67 -3482133,5d -3482134,1 -3482135,73 -3482136,1c -3482137,ff -3482138,80 -3482139,40 -348213a,27 -348213b,48 -348213c,80 -348213d,40 -348213e,25 -348213f,70 -3482140,53 -3482141,41 -3482142,68 -3482143,7a -3482144,1 -3482145,74 -3482146,1d -3482147,ff -3482148,80 -3482149,40 -348214a,27 -348214b,48 -348214c,80 -348214d,40 -348214e,25 -348214f,70 -3482150,53 -3482151,41 -3482152,70 -3482153,f9 -3482154,1 -3482155,76 -3482156,1e -3482157,ff -3482158,80 -3482159,40 -348215a,27 -348215b,48 -348215c,80 -348215d,40 -348215e,25 -348215f,70 -3482160,53 -3482161,41 -3482162,6a -3482163,97 -3482164,1 -3482165,76 -3482166,20 -3482167,ff -3482168,80 -3482169,40 -348216a,27 -348216b,48 -348216c,80 -348216d,40 -348216e,25 -348216f,70 -3482170,53 -3482171,41 -3482172,a -3482173,6 -3482175,b9 -3482176,1 -3482177,3 -3482178,80 -3482179,40 -348217a,27 -348217b,84 -348217c,80 -348217d,40 -348217e,25 -348217f,70 -3482180,53 -3482181,41 -3482182,a -3482183,1c -3482185,b9 -3482186,1 -3482187,4 -3482188,80 -3482189,40 -348218a,27 -348218b,84 -348218c,80 -348218d,40 -348218e,25 -348218f,70 -3482190,53 -3482191,41 -3482192,a -3482193,1d -3482195,b9 -3482196,1 -3482197,5 -3482198,80 -3482199,40 -348219a,27 -348219b,84 -348219c,80 -348219d,40 -348219e,25 -348219f,70 -34821a0,53 -34821a1,41 -34821a2,a -34821a3,1e -34821a5,b9 -34821a6,1 -34821a7,6 -34821a8,80 -34821a9,40 -34821aa,27 -34821ab,84 -34821ac,80 -34821ad,40 -34821ae,25 -34821af,70 -34821b0,53 -34821b1,41 -34821b2,a -34821b3,2a -34821b5,b9 -34821b6,1 -34821b7,7 -34821b8,80 -34821b9,40 -34821ba,27 -34821bb,84 -34821bc,80 -34821bd,40 -34821be,25 -34821bf,70 -34821c0,53 -34821c1,41 -34821c2,a -34821c3,61 -34821c5,b9 -34821c6,1 -34821c7,a -34821c8,80 -34821c9,40 -34821ca,27 -34821cb,84 -34821cc,80 -34821cd,40 -34821ce,25 -34821cf,70 -34821d0,4d -34821d1,41 -34821d2,f5 -34821d3,62 -34821d5,b8 -34821d6,2 -34821d8,80 -34821d9,40 -34821da,27 -34821db,84 -34821dc,80 -34821dd,40 -34821de,25 -34821df,70 -34821e0,4d -34821e1,41 -34821e2,f5 -34821e3,63 -34821e5,b8 -34821e6,2 -34821e7,1 -34821e8,80 -34821e9,40 -34821ea,27 -34821eb,84 -34821ec,80 -34821ed,40 -34821ee,25 -34821ef,70 -34821f0,4d -34821f1,41 -34821f2,f5 -34821f3,64 -34821f5,b8 -34821f6,2 -34821f7,2 -34821f8,80 -34821f9,40 -34821fa,27 -34821fb,84 -34821fc,80 -34821fd,40 -34821fe,25 -34821ff,70 -3482200,4d -3482201,41 -3482202,f5 -3482203,65 -3482205,b8 -3482206,2 -3482207,3 -3482208,80 -3482209,40 -348220a,27 -348220b,84 -348220c,80 -348220d,40 -348220e,25 -348220f,70 -3482210,4d -3482211,41 -3482212,f5 -3482213,7c -3482215,b8 -3482216,2 -3482217,4 -3482218,80 -3482219,40 -348221a,27 -348221b,84 -348221c,80 -348221d,40 -348221e,25 -348221f,70 -3482220,4d -3482221,41 -3482222,f5 -3482223,7d -3482225,b8 -3482226,2 -3482227,5 -3482228,80 -3482229,40 -348222a,27 -348222b,84 -348222c,80 -348222d,40 -348222e,25 -348222f,70 -3482230,4d -3482231,41 -3482232,f5 -3482233,7e -3482235,b8 -3482236,2 -3482237,6 -3482238,80 -3482239,40 -348223a,27 -348223b,84 -348223c,80 -348223d,40 -348223e,25 -348223f,70 -3482240,4d -3482241,41 -3482242,f5 -3482243,7f -3482245,b8 -3482246,2 -3482247,7 -3482248,80 -3482249,40 -348224a,27 -348224b,84 -348224c,80 -348224d,40 -348224e,25 -348224f,70 -3482250,4d -3482251,41 -3482252,f5 -3482253,a2 -3482255,b8 -3482256,2 -3482257,8 -3482258,80 -3482259,40 -348225a,27 -348225b,84 -348225c,80 -348225d,40 -348225e,25 -348225f,70 -3482260,4d -3482261,41 -3482262,f5 -3482263,87 -3482265,b8 -3482266,2 -3482267,9 -3482268,80 -3482269,40 -348226a,27 -348226b,84 -348226c,80 -348226d,40 -348226e,25 -348226f,70 -3482270,4d -3482271,41 -3482272,e4 -3482273,88 -3482275,c8 -3482276,4 -3482278,80 -3482279,40 -348227a,27 -348227b,84 -348227c,80 -348227d,40 -348227e,25 -348227f,70 -3482280,4d -3482281,41 -3482282,e4 -3482283,89 -3482285,c8 -3482286,4 -3482287,1 -3482288,80 -3482289,40 -348228a,27 -348228b,84 -348228c,80 -348228d,40 -348228e,25 -348228f,70 -3482290,4d -3482291,41 -3482292,e4 -3482293,8a -3482295,c8 -3482296,4 -3482297,2 -3482298,80 -3482299,40 -348229a,27 -348229b,84 -348229c,80 -348229d,40 -348229e,25 -348229f,70 -34822a0,4d -34822a1,41 -34822a2,e4 -34822a3,8b -34822a5,c8 -34822a6,4 -34822a7,3 -34822a8,80 -34822a9,40 -34822aa,27 -34822ab,84 -34822ac,80 -34822ad,40 -34822ae,25 -34822af,70 -34822b0,4d -34822b1,41 -34822b2,e4 -34822b3,8c -34822b5,c8 -34822b6,4 -34822b7,4 -34822b8,80 -34822b9,40 -34822ba,27 -34822bb,84 -34822bc,80 -34822bd,40 -34822be,25 -34822bf,70 -34822c0,4d -34822c1,41 -34822c2,e4 -34822c3,8e -34822c5,c8 -34822c6,4 -34822c7,5 -34822c8,80 -34822c9,40 -34822ca,27 -34822cb,84 -34822cc,80 -34822cd,40 -34822ce,25 -34822cf,70 -34822d0,4d -34822d1,41 -34822d2,e4 -34822d3,8f -34822d5,c8 -34822d6,4 -34822d7,6 -34822d8,80 -34822d9,40 -34822da,27 -34822db,84 -34822dc,80 -34822dd,40 -34822de,25 -34822df,70 -34822e0,4d -34822e1,41 -34822e2,e4 -34822e3,a3 -34822e5,c8 -34822e6,4 -34822e7,7 -34822e8,80 -34822e9,40 -34822ea,27 -34822eb,84 -34822ec,80 -34822ed,40 -34822ee,25 -34822ef,70 -34822f0,4d -34822f1,41 -34822f2,e4 -34822f3,a5 -34822f5,c8 -34822f6,4 -34822f7,8 -34822f8,80 -34822f9,40 -34822fa,27 -34822fb,84 -34822fc,80 -34822fd,40 -34822fe,25 -34822ff,70 -3482300,4d -3482301,41 -3482302,e4 -3482303,92 -3482305,c8 -3482306,4 -3482307,9 -3482308,80 -3482309,40 -348230a,27 -348230b,84 -348230c,80 -348230d,40 -348230e,25 -348230f,70 -3482310,53 -3482311,41 -3482312,2 -3482313,93 -3482315,aa -3482316,3 -3482317,ff -3482318,80 -3482319,40 -348231a,27 -348231b,a0 -348231c,80 -348231d,40 -348231e,25 -348231f,70 -3482320,53 -3482321,41 -3482322,2 -3482323,94 -3482325,aa -3482326,4 -3482327,ff -3482328,80 -3482329,40 -348232a,27 -348232b,a0 -348232c,80 -348232d,40 -348232e,25 -348232f,70 -3482330,53 -3482331,41 -3482332,2 -3482333,95 -3482335,aa -3482336,5 -3482337,ff -3482338,80 -3482339,40 -348233a,27 -348233b,a0 -348233c,80 -348233d,40 -348233e,25 -348233f,70 -3482340,53 -3482341,41 -3482342,2 -3482343,a6 -3482345,aa -3482346,6 -3482347,ff -3482348,80 -3482349,40 -348234a,27 -348234b,a0 -348234c,80 -348234d,40 -348234e,25 -348234f,70 -3482350,53 -3482351,41 -3482352,2 -3482353,a9 -3482355,aa -3482356,7 -3482357,ff -3482358,80 -3482359,40 -348235a,27 -348235b,a0 -348235c,80 -348235d,40 -348235e,25 -348235f,70 -3482360,53 -3482361,41 -3482362,2 -3482363,9b -3482365,aa -3482366,8 -3482367,ff -3482368,80 -3482369,40 -348236a,27 -348236b,a0 -348236c,80 -348236d,40 -348236e,25 -348236f,70 -3482370,53 -3482371,41 -3482372,2 -3482373,9f -3482375,aa -3482376,b -3482377,ff -3482378,80 -3482379,40 -348237a,27 -348237b,a0 -348237c,80 -348237d,40 -348237e,25 -348237f,70 -3482380,53 -3482381,41 -3482382,2 -3482383,a0 -3482385,aa -3482386,c -3482387,ff -3482388,80 -3482389,40 -348238a,27 -348238b,a0 -348238c,80 -348238d,40 -348238e,25 -348238f,70 -3482390,53 -3482391,41 -3482392,2 -3482393,a1 -3482395,aa -3482396,d -3482397,ff -3482398,80 -3482399,40 -348239a,27 -348239b,a0 -348239c,80 -348239d,40 -348239e,25 -348239f,70 -34823a0,53 -34823a1,3d -34823a2,43 -34823a3,c -34823a5,f8 -34823a6,ff -34823a7,ff -34823a8,80 -34823a9,40 -34823aa,27 -34823ab,38 -34823ac,80 -34823ad,40 -34823ae,25 -34823af,70 -34823b0,4d -34823b1,83 -34823b2,f7 -34823b3,55 -34823b5,b7 -34823b6,ff -34823b7,ff -34823b8,80 -34823b9,40 -34823ba,27 -34823bb,30 -34823bc,80 -34823bd,40 -34823be,25 -34823bf,70 -34823c0,4d -34823c1,92 -34823c2,db -34823c3,e6 -34823c5,d8 -34823c6,ff -34823c7,ff -34823c8,80 -34823c9,40 -34823ca,27 -34823cb,30 -34823cc,80 -34823cd,40 -34823ce,26 -34823cf,dc -34823d0,4d -34823d1,93 -34823d2,da -34823d3,e6 -34823d5,d8 -34823d6,ff -34823d7,ff -34823d8,80 -34823d9,40 -34823da,27 -34823db,30 -34823dc,80 -34823dd,40 -34823de,26 -34823df,dc -34823e0,4d -34823e1,94 -34823e2,d9 -34823e3,e6 -34823e5,d8 -34823e6,ff -34823e7,ff -34823e8,80 -34823e9,40 -34823ea,27 -34823eb,30 -34823ec,80 -34823ed,40 -34823ee,26 -34823ef,dc -34823f0,4d -34823f1,8e -34823f2,e0 -34823f3,32 -34823f5,ce -34823f6,ff -34823f7,ff -34823f8,80 -34823f9,40 -34823fa,27 -34823fb,30 -34823fc,80 -34823fd,40 -34823fe,26 -34823ff,f8 -3482400,4d -3482401,8f -3482402,e0 -3482403,32 -3482405,ce -3482406,ff -3482407,ff -3482408,80 -3482409,40 -348240a,27 -348240b,30 -348240c,80 -348240d,40 -348240e,26 -348240f,f8 -3482410,4d -3482411,90 -3482412,e0 -3482413,32 -3482415,ce -3482416,ff -3482417,ff -3482418,80 -3482419,40 -348241a,27 -348241b,30 -348241c,80 -348241d,40 -348241e,26 -348241f,f8 -3482420,4d -3482421,8c -3482422,ee -3482423,34 -3482425,bb -3482426,ff -3482427,ff -3482428,80 -3482429,40 -348242a,27 -348242b,30 -348242c,80 -348242d,40 -348242e,25 -348242f,70 -3482430,4d -3482431,8d -3482432,ee -3482433,34 -3482435,bb -3482436,ff -3482437,ff -3482438,80 -3482439,40 -348243a,27 -348243b,30 -348243c,80 -348243d,40 -348243e,25 -348243f,70 -3482440,4f -3482441,41 -3482442,ed -3482443,e9 -3482445,bd -3482446,ff -3482447,ff -3482448,80 -3482449,40 -348244a,27 -348244b,c8 -348244c,80 -348244d,40 -348244e,25 -348244f,70 -3482450,53 -3482451,41 -3482452,1e -3482453,e4 -3482455,cd -3482456,ff -3482457,ff -3482458,80 -3482459,40 -348245a,27 -348245b,e8 -348245c,80 -348245d,40 -348245e,26 -348245f,c4 -3482460,53 -3482461,41 -3482462,1f -3482463,e8 -3482465,cd -3482466,ff -3482467,ff -3482468,80 -3482469,40 -348246a,28 -348246b,8 -348246c,80 -348246d,40 -348246e,25 -348246f,70 -3482470,ff -3482471,ff -3482472,ff -3482473,ff -3482474,ff -3482475,ff -3482476,ff -3482477,ff -3482478,80 -3482479,40 -348247a,27 -348247b,30 -348247c,80 -348247d,40 -348247e,28 -348247f,30 -3482480,53 -3482481,41 -3482482,46 -3482483,4a -3482484,1 -3482485,e -3482486,ff -3482487,ff -3482488,80 -3482489,40 -348248a,28 -348248b,78 -348248c,80 -348248d,40 -348248e,28 -348248f,5c -3482490,53 -3482491,41 -3482492,3 -3482493,b0 -3482495,b6 -3482496,6 -3482497,ff -3482498,80 -3482499,40 -348249a,28 -348249b,88 -348249c,80 -348249d,40 -348249e,25 -348249f,70 -34824a0,53 -34824a1,41 -34824a2,4 -34824a3,b1 -34824a5,b6 -34824a6,7 -34824a7,ff -34824a8,80 -34824a9,40 -34824aa,28 -34824ab,88 -34824ac,80 -34824ad,40 -34824ae,25 -34824af,70 -34824b0,53 -34824b1,41 -34824b2,5 -34824b3,b2 -34824b5,b6 -34824b6,8 -34824b7,ff -34824b8,80 -34824b9,40 -34824ba,28 -34824bb,88 -34824bc,80 -34824bd,40 -34824be,25 -34824bf,70 -34824c0,53 -34824c1,41 -34824c2,6 -34824c3,b3 -34824c5,b6 -34824c6,9 -34824c7,ff -34824c8,80 -34824c9,40 -34824ca,28 -34824cb,88 -34824cc,80 -34824cd,40 -34824ce,25 -34824cf,70 -34824d0,53 -34824d1,41 -34824d2,7 -34824d3,b6 -34824d5,b6 -34824d6,a -34824d7,ff -34824d8,80 -34824d9,40 -34824da,28 -34824db,88 -34824dc,80 -34824dd,40 -34824de,25 -34824df,70 -34824e0,53 -34824e1,41 -34824e2,8 -34824e3,b7 -34824e5,b6 -34824e6,b -34824e7,ff -34824e8,80 -34824e9,40 -34824ea,28 -34824eb,88 -34824ec,80 -34824ed,40 -34824ee,25 -34824ef,70 -34824f0,53 -34824f1,41 -34824f2,4 -34824f3,b8 -34824f5,b6 -34824f6,c -34824f7,ff -34824f8,80 -34824f9,40 -34824fa,28 -34824fb,88 -34824fc,80 -34824fd,40 -34824fe,25 -34824ff,70 -3482500,53 -3482501,41 -3482502,6 -3482503,b9 -3482505,b6 -3482506,d -3482507,ff -3482508,80 -3482509,40 -348250a,28 -348250b,88 -348250c,80 -348250d,40 -348250e,25 -348250f,70 -3482510,53 -3482511,41 -3482512,3 -3482513,ba -3482515,b6 -3482516,e -3482517,ff -3482518,80 -3482519,40 -348251a,28 -348251b,88 -348251c,80 -348251d,40 -348251e,25 -348251f,70 -3482520,53 -3482521,41 -3482522,8 -3482523,bb -3482525,b6 -3482526,f -3482527,ff -3482528,80 -3482529,40 -348252a,28 -348252b,88 -348252c,80 -348252d,40 -348252e,25 -348252f,70 -3482530,53 -3482531,41 -3482532,5 -3482533,bc -3482535,b6 -3482536,10 -3482537,ff -3482538,80 -3482539,40 -348253a,28 -348253b,88 -348253c,80 -348253d,40 -348253e,25 -348253f,70 -3482540,53 -3482541,41 -3482542,7 -3482543,bd -3482545,b6 -3482546,11 -3482547,ff -3482548,80 -3482549,40 -348254a,28 -348254b,88 -348254c,80 -348254d,40 -348254e,25 -348254f,70 -3482550,4d -3482552,e5 -3482553,37 -3482555,c7 -3482556,ff -3482557,ff -3482558,80 -3482559,40 -348255a,27 -348255b,30 -348255c,80 -348255d,40 -348255e,25 -348255f,70 -3482560,4d -3482561,95 -3482562,b8 -3482563,dc -3482564,1 -3482565,19 -3482566,ff -3482567,ff -3482568,80 -3482569,40 -348256a,27 -348256b,30 -348256c,80 -348256d,40 -348256e,27 -348256f,14 -3482570,3 -3482571,e0 -3482573,8 -3482574,34 -3482575,a2 -3482578,90 -3482579,88 -348257b,7d -348257c,34 -348257d,1 -348257f,ff -3482580,11 -3482581,1 -3482583,2 -3482584,34 -3482585,2 -3482587,8 -3482588,34 -3482589,2 -348258b,9 -348258c,3 -348258d,e0 -348258f,8 -3482594,90 -3482595,88 -3482597,a3 -3482598,31 -3482599,8 -348259b,c0 -348259c,11 -348259f,5 -34825a0,34 -34825a1,2 -34825a3,54 -34825a4,34 -34825a5,1 -34825a7,40 -34825a8,11 -34825a9,1 -34825ab,2 -34825ac,34 -34825ad,2 -34825af,35 -34825b0,34 -34825b1,2 -34825b3,36 -34825b4,3 -34825b5,e0 -34825b7,8 -34825bc,90 -34825bd,88 -34825bf,a3 -34825c0,31 -34825c1,8 -34825c3,18 -34825c4,11 -34825c7,5 -34825c8,34 -34825c9,2 -34825cb,32 -34825cc,34 -34825cd,1 -34825cf,8 -34825d0,11 -34825d1,1 -34825d3,2 -34825d4,34 -34825d5,2 -34825d7,33 -34825d8,34 -34825d9,2 -34825db,34 -34825dc,3 -34825dd,e0 -34825df,8 -34825e4,90 -34825e5,88 -34825e7,a3 -34825e8,31 -34825e9,8 -34825eb,3 -34825ec,11 -34825ef,5 -34825f0,34 -34825f1,2 -34825f3,4 -34825f4,34 -34825f5,1 -34825f7,1 -34825f8,11 -34825f9,1 -34825fb,2 -34825fc,34 -34825fd,2 -34825ff,30 -3482600,34 -3482601,2 -3482603,31 -3482604,3 -3482605,e0 -3482607,8 -348260c,90 -348260d,88 -348260f,a2 -3482610,31 -3482611,8 -3482613,c0 -3482614,11 -3482617,5 -3482618,34 -3482619,2 -348261b,5 -348261c,34 -348261d,1 -348261f,40 -3482620,11 -3482621,1 -3482623,2 -3482624,34 -3482625,2 -3482627,60 -3482628,34 -3482629,2 -348262b,7b -348262c,3 -348262d,e0 -348262f,8 -3482634,90 -3482635,88 -3482637,a2 -3482638,31 -3482639,8 -348263b,30 -348263c,11 -348263f,5 -3482640,34 -3482641,2 -3482643,45 -3482644,34 -3482645,9 -3482647,10 -3482648,11 -3482649,9 -348264b,2 -348264c,34 -348264d,2 -348264f,46 -3482650,34 -3482651,a2 -3482654,3 -3482655,e0 -3482657,8 -348265c,90 -348265d,88 -348265f,a2 -3482660,35 -3482661,8 -3482663,30 -3482664,a0 -3482665,88 -3482667,a2 -3482668,3 -3482669,e0 -348266b,8 -3482670,90 -3482671,88 -3482673,a2 -3482674,31 -3482675,8 -3482677,6 -3482678,11 -348267b,2 -348267c,34 -348267d,2 -348267f,37 -3482680,34 -3482681,2 -3482683,38 -3482684,3 -3482685,e0 -3482687,8 -348268c,90 -348268d,88 -348268f,a1 -3482690,31 -3482691,8 -3482693,20 -3482694,11 -3482697,2 -3482698,34 -3482699,2 -348269b,79 -348269c,34 -348269d,2 -348269f,7a -34826a0,3 -34826a1,e0 -34826a3,8 -34826a8,90 -34826a9,88 -34826ab,a1 -34826ac,31 -34826ad,8 -34826af,4 -34826b0,11 -34826b3,2 -34826b4,34 -34826b5,2 -34826b7,77 -34826b8,34 -34826b9,2 -34826bb,78 -34826bc,3 -34826bd,e0 -34826bf,8 -34826c4,90 -34826c5,88 -34826c7,32 -34826c8,11 -34826cb,2 -34826cc,34 -34826cd,2 -34826cf,c0 -34826d0,34 -34826d1,2 -34826d3,c1 -34826d4,3 -34826d5,e0 -34826d7,8 -34826dc,90 -34826dd,88 -34826df,a3 -34826e0,31 -34826e1,8 -34826e3,3 -34826e4,11 -34826e7,2 -34826e8,34 -34826e9,2 -34826eb,4d -34826ec,34 -34826ed,a2 -34826f0,3 -34826f1,e0 -34826f3,8 -34826f8,90 -34826f9,88 -34826fb,a3 -34826fc,31 -34826fd,8 -34826ff,18 -3482700,11 -3482703,2 -3482704,34 -3482705,2 -3482707,4d -3482708,34 -3482709,a2 -348270c,3 -348270d,e0 -348270f,8 -3482714,90 -3482715,88 -3482717,a2 -3482718,31 -3482719,8 -348271b,c0 -348271c,11 -348271f,2 -3482720,34 -3482721,2 -3482723,4d -3482724,34 -3482725,a2 -3482728,3 -3482729,e0 -348272b,8 -3482730,3 -3482731,e0 -3482733,8 -3482738,34 -3482739,8 -348273b,1 -348273c,a0 -348273d,88 -348273f,3e -3482740,3 -3482741,e0 -3482743,8 -3482748,24 -3482749,88 -348274b,86 -348274c,24 -348274d,9 -348274e,ff -348274f,ff -3482750,25 -3482751,29 -3482753,1 -3482754,34 -3482755,1 -3482757,3 -3482759,29 -348275a,8 -348275b,2a -348275c,14 -348275d,20 -348275f,7 -3482764,1 -3482765,9 -3482766,50 -3482767,21 -3482768,91 -3482769,4b -348276c,34 -348276d,1 -348276f,ff -3482770,15 -3482771,61 -3482772,ff -3482773,f7 -3482778,a1 -3482779,45 -348277c,3 -348277d,e0 -348277f,8 -3482784,24 -3482785,88 -3482787,a8 -3482788,1 -3482789,6 -348278a,40 -348278b,21 -348278c,91 -348278d,9 -3482790,1 -3482791,25 -3482792,48 -3482793,25 -3482794,a1 -3482795,9 -3482798,3 -3482799,e0 -348279b,8 -34827a0,24 -34827a1,88 -34827a3,bc -34827a4,1 -34827a5,5 -34827a6,40 -34827a7,21 -34827a8,81 -34827a9,9 -34827ac,5 -34827ad,21 -34827af,2 -34827b4,34 -34827b5,9 -34827b8,25 -34827b9,29 -34827bb,1 -34827bc,a1 -34827bd,9 -34827c0,3 -34827c1,e0 -34827c3,8 -34827c8,34 -34827c9,8 -34827cb,1 -34827cc,a0 -34827cd,88 -34827cf,3d -34827d0,34 -34827d1,8 -34827d3,14 -34827d4,a0 -34827d5,88 -34827d7,cf -34827d8,34 -34827d9,8 -34827da,1 -34827db,40 -34827dc,a4 -34827dd,88 -34827de,14 -34827df,24 -34827e0,3 -34827e1,e0 -34827e3,8 -34827e8,34 -34827e9,8 -34827eb,1 -34827ec,a0 -34827ed,88 -34827ef,32 -34827f0,a0 -34827f1,88 -34827f3,3a -34827f4,34 -34827f5,8 -34827f7,30 -34827f8,a4 -34827f9,88 -34827fa,13 -34827fb,f4 -34827fc,a0 -34827fd,88 -34827ff,33 -3482800,3 -3482801,e0 -3482803,8 -3482808,34 -3482809,8 -348280b,2 -348280c,a0 -348280d,88 -348280f,32 -3482810,34 -3482811,8 -3482813,1 -3482814,a0 -3482815,88 -3482817,3a -3482818,a0 -3482819,88 -348281b,3c -348281c,34 -348281d,8 -348281f,60 -3482820,a4 -3482821,88 -3482822,13 -3482823,f4 -3482824,a0 -3482825,88 -3482827,33 -3482828,3 -3482829,e0 -348282b,8 -3482830,90 -3482831,88 -3482833,7c -3482834,34 -3482835,1 -3482837,ff -3482838,11 -3482839,1 -348283b,6 -348283c,34 -348283d,2 -348283f,6b -3482840,90 -3482841,88 -3482843,94 -3482844,2d -3482845,8 -3482847,6 -3482848,11 -348284b,2 -348284c,34 -348284d,2 -348284f,6a -3482850,34 -3482851,2 -3482853,3 -3482854,3 -3482855,e0 -3482857,8 -348285c,90 -348285d,88 -348285f,7b -3482860,34 -3482861,1 -3482863,ff -3482864,11 -3482865,1 -3482867,2 -3482868,34 -3482869,a2 -348286c,34 -348286d,2 -348286f,c -3482870,3 -3482871,e0 -3482873,8 -3482878,34 -3482879,8 -348287b,7 -348287c,a0 -348287d,88 -348287f,7b -3482880,3 -3482881,e0 -3482883,8 -3482888,34 -3482889,8 -348288b,1 -348288d,a8 -348288e,40 -348288f,4 -3482890,8c -3482891,89 -3482893,a4 -3482894,1 -3482895,28 -3482896,48 -3482897,25 -3482898,ac -3482899,89 -348289b,a4 -348289c,3 -348289d,e0 -348289f,8 -34828a4,30 -34828a5,84 -34828a7,ff -34828a8,3c -34828a9,8 -34828aa,80 -34828ab,12 -34828ac,25 -34828ad,8 -34828ae,a5 -34828af,d0 -34828b0,34 -34828b1,1 -34828b3,8c -34828b4,10 -34828b5,81 -34828b7,16 -34828b8,91 -34828b9,2 -34828bb,75 -34828bc,34 -34828bd,1 -34828bf,8d -34828c0,10 -34828c1,81 -34828c3,13 -34828c4,91 -34828c5,2 -34828c7,75 -34828c8,10 -34828c9,80 -34828cb,11 -34828cc,91 -34828cd,2 -34828cf,74 -34828d0,34 -34828d1,1 -34828d3,8a -34828d4,10 -34828d5,81 -34828d7,e -34828d8,91 -34828d9,2 -34828db,74 -34828dc,34 -34828dd,1 -34828df,8b -34828e0,10 -34828e1,81 -34828e3,b -34828e4,91 -34828e5,2 -34828e7,74 -34828e8,34 -34828e9,1 -34828eb,58 -34828ec,10 -34828ed,81 -34828ef,8 -34828f0,34 -34828f1,2 -34828f4,34 -34828f5,1 -34828f7,78 -34828f8,10 -34828f9,81 -34828fb,5 -34828fc,34 -34828fd,2 -3482900,34 -3482901,1 -3482903,79 -3482904,10 -3482905,81 -3482907,2 -3482908,34 -3482909,2 -348290c,34 -348290d,2 -348290f,ff -3482910,3 -3482911,e0 -3482913,8 -3482918,27 -3482919,bd -348291a,ff -348291b,e0 -348291c,af -348291d,bf -348291f,10 -3482920,af -3482921,b0 -3482923,14 -3482924,c -3482925,10 -3482926,b -3482927,22 -348292c,4 -348292d,41 -348292f,2 -3482934,34 -3482935,2 -3482937,5b -3482939,40 -348293a,20 -348293b,21 -348293c,c -348293d,10 -348293e,b -348293f,93 -3482944,10 -3482945,60 -3482947,16 -3482948,af -3482949,a3 -348294b,1c -348294c,3c -348294d,8 -348294e,80 -348294f,40 -3482950,25 -3482951,8 -3482952,20 -3482954,85 -3482955,9 -3482957,2 -3482958,11 -3482959,20 -348295b,3 -348295c,34 -348295d,a -348295f,1 -3482960,10 -3482963,c -3482964,a5 -3482965,a -3482968,3c -3482969,4 -348296a,80 -348296b,12 -348296c,24 -348296d,84 -348296e,a5 -348296f,d0 -3482970,90 -3482971,65 -3482973,6 -3482974,90 -3482975,66 -3482977,7 -3482978,8c -3482979,69 -348297b,8 -348297c,1 -348297d,20 -348297e,f8 -348297f,9 -3482984,8f -3482985,a3 -3482987,1c -3482988,90 -3482989,65 -348298b,1 -348298c,c -348298d,1 -348298e,bf -348298f,73 -3482990,2 -3482991,20 -3482992,20 -3482993,21 -3482994,8f -3482995,a3 -3482997,1c -3482998,90 -3482999,65 -348299b,3 -348299c,10 -348299f,11 -34829a0,3c -34829a1,9 -34829a2,80 -34829a3,3b -34829a4,25 -34829a5,29 -34829a6,9e -34829a7,7e -34829a8,34 -34829a9,a -34829ab,6 -34829ad,4a -34829af,18 -34829b2,50 -34829b3,12 -34829b4,1 -34829b5,2a -34829b6,80 -34829b7,21 -34829b8,82 -34829b9,5 -34829bc,3c -34829bd,8 -34829be,80 -34829bf,40 -34829c0,25 -34829c1,8 -34829c2,20 -34829c4,85 -34829c5,9 -34829c7,2 -34829c8,11 -34829c9,20 -34829cb,3 -34829cc,34 -34829cd,a -34829cf,1 -34829d0,a5 -34829d1,a -34829d4,34 -34829d5,5 -34829d7,41 -34829d8,c -34829d9,1 -34829da,bf -34829db,73 -34829dc,2 -34829dd,20 -34829de,20 -34829df,21 -34829e0,92 -34829e1,5 -34829e3,3 -34829e4,2 -34829e5,20 -34829e6,20 -34829e7,21 -34829e8,c -34829e9,3 -34829ea,73 -34829eb,85 -34829ee,30 -34829ef,21 -34829f0,8f -34829f1,bf -34829f3,10 -34829f4,8f -34829f5,b0 -34829f7,14 -34829f8,27 -34829f9,bd -34829fb,20 -34829fc,3 -34829fd,e0 -34829ff,8 -3482a04,8f -3482a05,a6 -3482a07,30 -3482a08,84 -3482a09,c5 -3482a0b,4 -3482a0c,8 -3482a0d,10 -3482a0e,a -3482a0f,89 -3482a14,8f -3482a15,b9 -3482a17,2c -3482a18,87 -3482a19,25 -3482a1b,4 -3482a1c,8 -3482a1d,10 -3482a1e,a -3482a1f,89 -3482a24,3c -3482a25,a -3482a26,80 -3482a27,40 -3482a28,25 -3482a29,4a -3482a2a,20 -3482a2b,8 -3482a2c,8d -3482a2d,4b -3482a2f,c -3482a30,11 -3482a31,60 -3482a33,2 -3482a38,95 -3482a39,45 -3482a3b,4 -3482a3c,3c -3482a3d,a -3482a3e,80 -3482a3f,1e -3482a40,25 -3482a41,4a -3482a42,89 -3482a43,84 -3482a44,a5 -3482a45,40 -3482a48,3c -3482a49,9 -3482a4a,80 -3482a4b,40 -3482a4c,25 -3482a4d,29 -3482a4e,20 -3482a4f,18 -3482a50,81 -3482a51,2a -3482a53,3 -3482a54,5 -3482a55,40 -3482a57,b -3482a58,1 -3482a59,2a -3482a5a,48 -3482a5b,20 -3482a5c,81 -3482a5d,28 -3482a60,34 -3482a61,a -3482a63,7f -3482a64,15 -3482a65,a -3482a67,6 -3482a6c,3c -3482a6d,a -3482a6e,80 -3482a6f,12 -3482a70,25 -3482a71,4a -3482a72,a5 -3482a73,d0 -3482a74,85 -3482a75,48 -3482a77,90 -3482a78,21 -3482a79,8 -3482a7b,1 -3482a7c,a5 -3482a7d,48 -3482a7f,90 -3482a80,a1 -3482a81,20 -3482a84,3 -3482a85,e0 -3482a87,8 -3482a8c,3c -3482a8d,8 -3482a8e,80 -3482a8f,40 -3482a90,25 -3482a91,8 -3482a92,20 -3482a93,8 -3482a94,8d -3482a95,9 -3482a97,c -3482a98,11 -3482a99,20 -3482a9b,2 -3482aa0,81 -3482aa1,3 -3482aa3,2 -3482aa5,3 -3482aa6,f -3482aa7,c3 -3482aa9,61 -3482aaa,40 -3482aab,26 -3482aac,1 -3482aad,1 -3482aae,40 -3482aaf,23 -3482ab0,a0 -3482ab1,88 -3482ab2,8 -3482ab3,52 -3482ab4,3 -3482ab5,e0 -3482ab7,8 -3482abc,90 -3482abd,45 -3482abf,3 -3482ac0,3c -3482ac1,8 -3482ac2,80 -3482ac3,40 -3482ac4,25 -3482ac5,8 -3482ac6,20 -3482ac7,8 -3482ac8,8d -3482ac9,9 -3482acb,c -3482acc,11 -3482acd,20 -3482acf,2 -3482ad4,91 -3482ad5,5 -3482ad7,3 -3482ad8,3 -3482ad9,e0 -3482adb,8 -3482ae0,8f -3482ae1,a2 -3482ae3,24 -3482ae4,90 -3482ae5,45 -3482ae8,3c -3482ae9,8 -3482aea,80 -3482aeb,40 -3482aec,25 -3482aed,8 -3482aee,20 -3482af0,85 -3482af1,9 -3482af3,2 -3482af4,11 -3482af5,20 -3482af7,4 -3482af8,34 -3482af9,a -3482afb,1 -3482afc,a5 -3482afd,a -3482b00,10 -3482b03,18 -3482b04,34 -3482b05,5 -3482b07,41 -3482b08,3c -3482b09,8 -3482b0a,80 -3482b0b,40 -3482b0c,25 -3482b0d,8 -3482b0e,20 -3482b0f,8 -3482b10,8d -3482b11,9 -3482b13,c -3482b14,11 -3482b15,20 -3482b17,13 -3482b1c,91 -3482b1d,5 -3482b1f,1 -3482b20,af -3482b21,a4 -3482b24,af -3482b25,a5 -3482b27,4 -3482b28,af -3482b29,a6 -3482b2b,8 -3482b2c,27 -3482b2d,bd -3482b2e,ff -3482b2f,e8 -3482b30,af -3482b31,bf -3482b33,10 -3482b34,3c -3482b35,4 -3482b36,80 -3482b37,12 -3482b38,24 -3482b39,84 -3482b3a,a5 -3482b3b,d0 -3482b3c,91 -3482b3d,5 -3482b3f,6 -3482b40,91 -3482b41,6 -3482b43,7 -3482b44,8d -3482b45,9 -3482b47,8 -3482b48,1 -3482b49,20 -3482b4a,f8 -3482b4b,9 -3482b50,8f -3482b51,bf -3482b53,10 -3482b54,27 -3482b55,bd -3482b57,18 -3482b58,8f -3482b59,a4 -3482b5c,8f -3482b5d,a5 -3482b5f,4 -3482b60,8f -3482b61,a6 -3482b63,8 -3482b64,3 -3482b65,e0 -3482b67,8 -3482b6c,a0 -3482b6d,e6 -3482b6e,4 -3482b6f,24 -3482b70,27 -3482b71,bd -3482b72,ff -3482b73,e0 -3482b74,af -3482b75,a2 -3482b77,10 -3482b78,af -3482b79,a3 -3482b7b,14 -3482b7c,af -3482b7d,bf -3482b7f,18 -3482b80,c -3482b81,10 -3482b82,a -3482b83,e8 -3482b88,8f -3482b89,a2 -3482b8b,10 -3482b8c,8f -3482b8d,a3 -3482b8f,14 -3482b90,8f -3482b91,bf -3482b93,18 -3482b94,27 -3482b95,bd -3482b97,20 -3482b98,3 -3482b99,e0 -3482b9b,8 -3482ba0,27 -3482ba1,bd -3482ba2,ff -3482ba3,e8 -3482ba4,af -3482ba5,bf -3482ba7,10 -3482ba8,3c -3482ba9,8 -3482baa,80 -3482bab,40 -3482bac,25 -3482bad,8 -3482bae,20 -3482baf,8 -3482bb0,ad -3482bb4,ad -3482bb7,4 -3482bb8,ad -3482bbb,8 -3482bbc,ad -3482bbf,c -3482bc0,3c -3482bc1,8 -3482bc2,80 -3482bc3,1e -3482bc4,25 -3482bc5,8 -3482bc6,aa -3482bc7,30 -3482bc8,81 -3482bc9,9 -3482bca,4 -3482bcb,24 -3482bcc,11 -3482bcd,20 -3482bcf,2a -3482bd5,9 -3482bd6,f -3482bd7,c3 -3482bd8,1 -3482bd9,21 -3482bda,20 -3482bdb,26 -3482bdd,81 -3482bde,20 -3482bdf,23 -3482be0,8d -3482be1,5 -3482be2,4 -3482be3,28 -3482be4,c -3482be5,10 -3482be6,b -3482be7,22 -3482bec,4 -3482bed,40 -3482bef,22 -3482bf4,34 -3482bf5,44 -3482bf8,c -3482bf9,10 -3482bfa,b -3482bfb,93 -3482c00,10 -3482c01,60 -3482c03,c -3482c08,3c -3482c09,8 -3482c0a,80 -3482c0b,40 -3482c0c,25 -3482c0d,8 -3482c0e,20 -3482c0f,8 -3482c10,8c -3482c11,69 -3482c14,ad -3482c15,9 -3482c18,8c -3482c19,69 -3482c1b,4 -3482c1c,ad -3482c1d,9 -3482c1f,4 -3482c20,8c -3482c21,69 -3482c23,8 -3482c24,ad -3482c25,9 -3482c27,8 -3482c28,34 -3482c29,9 -3482c2b,1 -3482c2c,ad -3482c2d,9 -3482c2f,c -3482c30,90 -3482c31,62 -3482c34,3c -3482c35,8 -3482c36,80 -3482c37,1e -3482c38,25 -3482c39,8 -3482c3a,aa -3482c3b,30 -3482c3c,8d -3482c3d,9 -3482c3e,4 -3482c3f,28 -3482c40,95 -3482c41,2a -3482c44,34 -3482c45,1 -3482c47,a -3482c48,15 -3482c49,41 -3482c4b,6 -3482c50,95 -3482c51,2a -3482c53,1c -3482c54,31 -3482c55,4a -3482c56,f0 -3482c57,1f -3482c59,2 -3482c5a,59 -3482c5b,40 -3482c5c,1 -3482c5d,4b -3482c5e,50 -3482c5f,25 -3482c60,a5 -3482c61,2a -3482c63,1c -3482c64,81 -3482c65,9 -3482c66,4 -3482c67,24 -3482c68,5 -3482c69,21 -3482c6b,2 -3482c71,2 -3482c72,10 -3482c73,23 -3482c74,a1 -3482c75,2 -3482c76,4 -3482c77,24 -3482c78,8f -3482c79,bf -3482c7b,10 -3482c7c,27 -3482c7d,bd -3482c7f,18 -3482c80,3 -3482c81,e0 -3482c83,8 -3482c88,27 -3482c89,bd -3482c8a,ff -3482c8b,e8 -3482c8c,af -3482c8d,bf -3482c8f,10 -3482c90,c -3482c91,10 -3482c92,b -3482c93,30 -3482c98,24 -3482c99,1 -3482c9a,ff -3482c9b,ff -3482c9c,10 -3482c9d,41 -3482c9f,4 -3482ca4,34 -3482ca5,44 -3482ca8,c -3482ca9,10 -3482caa,b -3482cab,6e -3482cb0,8f -3482cb1,bf -3482cb3,10 -3482cb4,27 -3482cb5,bd -3482cb7,18 -3482cb8,3 -3482cb9,e0 -3482cbb,8 -3482cc0,3c -3482cc1,2 -3482cc2,80 -3482cc3,1d -3482cc4,24 -3482cc5,42 -3482cc6,84 -3482cc7,a0 -3482cc8,94 -3482cc9,42 -3482ccb,a4 -3482ccc,34 -3482ccd,8 -3482cd0,34 -3482cd1,89 -3482cd4,94 -3482cd5,aa -3482cd8,34 -3482cd9,1 -3482cda,1 -3482cdb,9c -3482cdc,15 -3482cdd,41 -3482cdf,8 -3482ce4,34 -3482ce5,8 -3482ce7,3 -3482ce8,94 -3482ce9,ab -3482ceb,1c -3482cec,31 -3482ced,69 -3482cef,ff -3482cf0,31 -3482cf1,62 -3482cf2,1f -3482cf5,2 -3482cf6,12 -3482cf7,2 -3482cf8,10 -3482cfb,1f -3482d00,34 -3482d01,1 -3482d03,a -3482d04,15 -3482d05,41 -3482d07,e -3482d0c,94 -3482d0d,ab -3482d0f,1c -3482d10,34 -3482d11,1 -3482d13,10 -3482d14,14 -3482d15,41 -3482d17,8 -3482d1c,31 -3482d1d,6c -3482d1e,f -3482d1f,e0 -3482d20,34 -3482d21,1 -3482d22,e -3482d23,a0 -3482d24,15 -3482d25,81 -3482d27,4 -3482d2c,24 -3482d2d,2 -3482d2e,ff -3482d2f,ff -3482d30,10 -3482d33,1f -3482d38,34 -3482d39,8 -3482d3b,1 -3482d3c,31 -3482d3d,69 -3482d3f,1f -3482d40,34 -3482d41,1 -3482d43,15 -3482d44,15 -3482d45,41 -3482d47,c -3482d4c,34 -3482d4d,1 -3482d4f,3e -3482d50,10 -3482d51,81 -3482d53,7 -3482d58,34 -3482d59,1 -3482d5b,42 -3482d5c,10 -3482d5d,81 -3482d5f,4 -3482d64,24 -3482d65,2 -3482d66,ff -3482d67,ff -3482d68,10 -3482d6b,11 -3482d70,34 -3482d71,8 -3482d73,2 -3482d74,90 -3482d75,a9 -3482d76,1 -3482d77,41 -3482d78,34 -3482d79,1 -3482d7a,1 -3482d7b,1a -3482d7c,15 -3482d7d,41 -3482d7f,8 -3482d84,34 -3482d85,1 -3482d87,3e -3482d88,14 -3482d89,41 -3482d8b,5 -3482d90,34 -3482d91,8 -3482d93,4 -3482d94,3c -3482d95,b -3482d96,80 -3482d97,12 -3482d98,25 -3482d99,6b -3482d9a,a5 -3482d9b,d0 -3482d9c,81 -3482d9d,62 -3482d9e,13 -3482d9f,97 -3482da1,2 -3482da2,12 -3482da5,48 -3482da6,10 -3482da7,25 -3482da9,2 -3482daa,12 -3482dad,49 -3482dae,10 -3482daf,25 -3482db0,3 -3482db1,e0 -3482db3,8 -3482db8,24 -3482db9,2 -3482dba,ff -3482dbb,ff -3482dbc,3c -3482dbd,8 -3482dbe,80 -3482dbf,40 -3482dc0,25 -3482dc1,8 -3482dc2,1c -3482dc4,81 -3482dc5,9 -3482dc8,3c -3482dc9,8 -3482dca,80 -3482dcb,12 -3482dcc,25 -3482dcd,8 -3482dce,a5 -3482dcf,d0 -3482dd0,a5 -3482dd1,9 -3482dd2,14 -3482dd3,6 -3482dd4,3c -3482dd5,8 -3482dd6,80 -3482dd7,40 -3482dd8,25 -3482dd9,8 -3482dda,f -3482ddb,fc -3482ddc,25 -3482ddd,8 -3482ddf,4 -3482de0,8d -3482de1,9 -3482de4,11 -3482de5,20 -3482de7,17 -3482ded,9 -3482dee,52 -3482def,2 -3482df0,31 -3482df1,4b -3482df2,f8 -3482df5,b -3482df6,5a -3482df7,c2 -3482df8,3c -3482df9,c -3482dfa,ff -3482dfb,ff -3482dfc,35 -3482dfd,8c -3482dfe,7 -3482dff,ff -3482e00,1 -3482e01,4c -3482e02,50 -3482e03,24 -3482e04,15 -3482e05,44 -3482e06,ff -3482e07,f5 -3482e0c,31 -3482e0d,22 -3482e0f,ff -3482e10,3c -3482e11,8 -3482e12,80 -3482e13,12 -3482e14,25 -3482e15,8 -3482e16,a5 -3482e17,d0 -3482e18,a5 -3482e19,b -3482e1a,14 -3482e1b,6 -3482e1c,3c -3482e1d,9 -3482e1e,80 -3482e1f,40 -3482e20,25 -3482e21,29 -3482e22,20 -3482e24,3c -3482e25,c -3482e26,80 -3482e27,40 -3482e28,25 -3482e29,8c -3482e2a,1c -3482e2c,81 -3482e2d,8c -3482e30,11 -3482e31,6c -3482e33,4 -3482e34,a5 -3482e35,20 -3482e37,2 -3482e38,a1 -3482e39,2b -3482e3b,2 -3482e3c,a1 -3482e3d,22 -3482e3f,3 -3482e40,ad -3482e41,24 -3482e43,4 -3482e44,3 -3482e45,e0 -3482e47,8 -3482e4c,27 -3482e4d,bd -3482e4e,ff -3482e4f,e0 -3482e50,af -3482e51,b0 -3482e53,10 -3482e54,af -3482e55,b1 -3482e57,14 -3482e58,af -3482e59,bf -3482e5b,18 -3482e5c,34 -3482e5d,82 -3482e60,34 -3482e61,50 -3482e64,26 -3482e65,8 -3482e66,ff -3482e67,80 -3482e68,5 -3482e6b,12 -3482e70,3c -3482e71,11 -3482e72,80 -3482e73,40 -3482e74,26 -3482e75,31 -3482e76,20 -3482e77,50 -3482e78,34 -3482e79,9 -3482e7b,10 -3482e7c,1 -3482e7d,9 -3482e7f,18 -3482e82,40 -3482e83,12 -3482e84,2 -3482e85,28 -3482e86,88 -3482e87,21 -3482e88,3c -3482e89,4 -3482e8a,80 -3482e8b,12 -3482e8c,24 -3482e8d,84 -3482e8e,a5 -3482e8f,d0 -3482e90,36 -3482e91,5 -3482e94,8e -3482e95,28 -3482e97,c -3482e98,1 -3482e9a,f8 -3482e9b,9 -3482ea0,14 -3482ea1,50 -3482ea2,ff -3482ea3,ef -3482ea8,36 -3482ea9,23 -3482eac,10 -3482eaf,2 -3482eb4,34 -3482eb5,3 -3482eb8,8f -3482eb9,b0 -3482ebb,10 -3482ebc,8f -3482ebd,b1 -3482ebf,14 -3482ec0,8f -3482ec1,bf -3482ec3,18 -3482ec4,27 -3482ec5,bd -3482ec7,20 -3482ec8,3 -3482ec9,e0 -3482ecb,8 -3482ed0,8c -3482ed1,88 -3482ed2,1d -3482ed3,2c -3482ed4,34 -3482ed5,9 -3482ed7,1 -3482ed9,9 -3482eda,4e -3482edc,1 -3482edd,9 -3482ede,10 -3482edf,24 -3482ee0,10 -3482ee1,40 -3482ee3,24 -3482ee8,94 -3482ee9,ca -3482eea,2 -3482eeb,dc -3482eec,3c -3482eed,b -3482eee,80 -3482eef,12 -3482ef0,25 -3482ef1,6b -3482ef2,a5 -3482ef3,d0 -3482ef4,94 -3482ef5,8c -3482ef7,a4 -3482ef8,34 -3482ef9,1 -3482efb,3d -3482efc,11 -3482efd,81 -3482eff,a -3482f05,8a -3482f06,60 -3482f07,21 -3482f08,91 -3482f09,8d -3482f0a,1d -3482f0b,28 -3482f0c,15 -3482f0d,a0 -3482f0f,19 -3482f14,34 -3482f15,d -3482f17,1 -3482f18,a1 -3482f19,8d -3482f1a,1d -3482f1b,28 -3482f1c,25 -3482f1d,4a -3482f1f,3 -3482f20,10 -3482f23,9 -3482f28,34 -3482f29,c -3482f2b,1 -3482f2c,1 -3482f2d,4c -3482f2e,60 -3482f2f,4 -3482f30,91 -3482f31,6d -3482f32,e -3482f33,f2 -3482f34,1 -3482f35,ac -3482f36,70 -3482f37,24 -3482f38,15 -3482f39,c0 -3482f3b,e -3482f40,1 -3482f41,ac -3482f42,70 -3482f43,25 -3482f44,a1 -3482f45,6e -3482f46,e -3482f47,f2 -3482f48,1 -3482f49,29 -3482f4a,48 -3482f4b,27 -3482f4c,1 -3482f4d,9 -3482f4e,40 -3482f4f,24 -3482f50,ac -3482f51,88 -3482f52,1d -3482f53,2c -3482f54,3c -3482f55,8 -3482f56,80 -3482f57,40 -3482f58,25 -3482f59,8 -3482f5a,1c -3482f5b,3 -3482f5c,1 -3482f5d,a -3482f5e,40 -3482f5f,21 -3482f60,81 -3482f61,8 -3482f64,3c -3482f65,9 -3482f66,80 -3482f67,40 -3482f68,25 -3482f69,29 -3482f6a,20 -3482f6b,18 -3482f6c,a1 -3482f6d,28 -3482f70,34 -3482f71,2 -3482f74,3 -3482f75,e0 -3482f77,8 -3482f7c,3c -3482f7d,8 -3482f7e,80 -3482f7f,40 -3482f80,25 -3482f81,8 -3482f82,1c -3482f83,1 -3482f84,81 -3482f85,8 -3482f88,10 -3482f8b,22 -3482f90,3c -3482f91,8 -3482f92,80 -3482f93,40 -3482f94,25 -3482f95,8 -3482f96,1c -3482f97,2 -3482f98,81 -3482f99,8 -3482f9c,10 -3482f9f,1d -3482fa4,34 -3482fa5,2 -3482fa7,ff -3482fa8,20 -3482fa9,e8 -3482faa,ff -3482fab,a6 -3482fac,21 -3482fad,8 -3482faf,61 -3482fb0,10 -3482fb3,18 -3482fb8,34 -3482fb9,8 -3482fbb,64 -3482fbc,10 -3482fbf,15 -3482fc4,3c -3482fc5,1 -3482fc6,80 -3482fc7,12 -3482fc8,24 -3482fc9,21 -3482fca,a5 -3482fcb,d0 -3482fcc,80 -3482fcd,28 -3482fce,e -3482fcf,de -3482fd0,35 -3482fd1,8 -3482fd3,1 -3482fd4,a0 -3482fd5,28 -3482fd6,e -3482fd7,de -3482fd8,34 -3482fd9,8 -3482fdb,68 -3482fdc,10 -3482fdf,d -3482fe4,3c -3482fe5,1 -3482fe6,80 -3482fe7,12 -3482fe8,24 -3482fe9,21 -3482fea,a5 -3482feb,d0 -3482fec,80 -3482fed,28 -3482fee,e -3482fef,de -3482ff0,35 -3482ff1,8 -3482ff3,4 -3482ff4,a0 -3482ff5,28 -3482ff6,e -3482ff7,de -3482ff8,34 -3482ff9,8 -3482ffb,6a -3482ffc,10 -3482fff,5 -3483004,34 -3483005,5 -3483007,3 -3483008,34 -3483009,8 -348300b,6b -348300c,10 -348300f,1 -3483014,3c -3483015,9 -3483016,80 -3483017,40 -3483018,25 -3483019,29 -348301a,20 -348301b,18 -348301c,3c -348301d,a -348301e,80 -348301f,40 -3483020,25 -3483021,4a -3483022,20 -3483023,1b -3483024,81 -3483025,2c -3483028,11 -3483029,88 -348302b,b -348302c,21 -348302d,29 -348302f,1 -3483030,15 -3483031,2a -3483032,ff -3483033,fc -3483038,3c -3483039,9 -348303a,80 -348303b,40 -348303c,25 -348303d,29 -348303e,20 -348303f,17 -3483040,21 -3483041,29 -3483043,1 -3483044,11 -3483045,2a -3483047,4 -3483048,81 -3483049,2c -348304c,15 -348304d,80 -348304e,ff -348304f,fc -3483054,a1 -3483055,28 -3483058,3 -3483059,e0 -348305b,8 -3483061,60 -3483062,78 -3483063,21 -3483064,81 -3483065,ec -3483066,e -3483067,df -3483068,31 -3483069,8e -348306b,80 -348306c,11 -348306d,c0 -348306f,3 -3483070,34 -3483071,3 -3483073,5 -3483074,3 -3483075,e0 -3483077,8 -3483078,34 -3483079,2 -348307b,2 -348307c,3 -348307d,e0 -348307f,8 -3483081,60 -3483082,10 -3483083,21 -3483084,85 -3483085,c2 -3483087,a4 -3483088,3c -3483089,8 -348308a,80 -348308b,12 -348308c,25 -348308d,8 -348308e,a5 -348308f,d0 -3483090,81 -3483091,9 -3483092,e -3483093,df -3483094,35 -3483095,29 -3483097,80 -3483098,a1 -3483099,9 -348309a,e -348309b,df -348309c,3 -348309d,e0 -348309f,8 -34830a4,27 -34830a5,bd -34830a6,ff -34830a7,f0 -34830a8,af -34830a9,bf -34830ab,4 -34830ac,c -34830ad,3 -34830ae,58 -34830af,86 -34830b4,3c -34830b5,c -34830b6,80 -34830b7,12 -34830b8,25 -34830b9,8c -34830ba,a5 -34830bb,d0 -34830bc,85 -34830bd,8d -34830be,f -34830bf,2e -34830c0,8d -34830c1,98 -34830c3,4 -34830c4,13 -34830c7,2 -34830c8,34 -34830c9,e -34830cb,1 -34830cc,34 -34830cd,e -34830cf,2 -34830d0,1 -34830d1,ae -34830d2,68 -34830d3,25 -34830d4,a5 -34830d5,8d -34830d6,f -34830d7,2e -34830d8,8f -34830d9,bf -34830db,4 -34830dc,27 -34830dd,bd -34830df,10 -34830e0,3 -34830e1,e0 -34830e3,8 -34830e8,84 -34830e9,8e -34830eb,1c -34830ec,21 -34830ed,cd -34830ee,ff -34830ef,ce -34830f0,5 -34830f1,a0 -34830f3,10 -34830f4,34 -34830f5,2 -34830f8,31 -34830f9,a9 -34830fb,7 -34830fc,34 -34830fd,a -34830ff,1 -3483100,1 -3483101,2a -3483102,50 -3483103,4 -3483105,d -3483106,48 -3483107,c2 -3483108,3c -3483109,c -348310a,80 -348310b,12 -348310c,25 -348310d,8c -348310e,a5 -348310f,d0 -3483110,1 -3483111,89 -3483112,60 -3483113,20 -3483114,81 -3483115,8b -3483116,5 -3483117,b4 -3483118,1 -3483119,6a -348311a,58 -348311b,24 -348311c,34 -348311d,2 -3483120,11 -3483121,60 -3483123,4 -3483128,34 -3483129,d -348312b,26 -348312c,a4 -348312d,8d -348312f,1c -3483130,34 -3483131,2 -3483133,1 -3483134,3 -3483135,e0 -3483137,8 -348313c,84 -348313d,ae -348313f,1c -3483140,21 -3483141,cd -3483142,ff -3483143,ce -3483144,5 -3483145,a0 -3483147,b -3483148,34 -3483149,2 -348314c,31 -348314d,a9 -348314f,7 -3483150,34 -3483151,a -3483153,1 -3483154,1 -3483155,2a -3483156,50 -3483157,4 -3483159,d -348315a,48 -348315b,c2 -348315c,3c -348315d,c -348315e,80 -348315f,12 -3483160,25 -3483161,8c -3483162,a5 -3483163,d0 -3483164,1 -3483165,89 -3483166,60 -3483167,20 -3483168,81 -3483169,8b -348316a,5 -348316b,b4 -348316c,1 -348316d,6a -348316e,58 -348316f,25 -3483170,a1 -3483171,8b -3483172,5 -3483173,b4 -3483174,3 -3483175,e0 -3483177,8 -348317c,27 -348317d,bd -348317e,ff -348317f,f0 -3483180,af -3483181,bf -3483183,8 -3483184,28 -3483185,81 -3483187,32 -3483188,10 -3483189,20 -348318b,3 -348318d,80 -348318e,10 -348318f,21 -3483190,3 -3483191,20 -3483192,f8 -3483193,9 -3483198,8f -3483199,bf -348319b,8 -348319c,27 -348319d,bd -348319f,10 -34831a0,3 -34831a1,e0 -34831a3,8 -34831a8,3c -34831a9,8 -34831aa,80 -34831ab,1d -34831ac,25 -34831ad,8 -34831ae,84 -34831af,a0 -34831b0,3c -34831b1,9 -34831b2,80 -34831b3,12 -34831b4,25 -34831b5,29 -34831b6,a5 -34831b7,d0 -34831b8,85 -34831b9,a -34831bb,a4 -34831bc,34 -34831bd,1 -34831bf,3e -34831c0,15 -34831c1,41 -34831c3,2 -34831c4,81 -34831c5,2b -34831c6,13 -34831c7,97 -34831c8,21 -34831c9,6a -34831cb,2d -34831cc,86 -34831cd,b -34831cf,1c -34831d0,21 -34831d1,6b -34831d3,1 -34831d4,34 -34831d5,c -34831d7,1 -34831d8,1 -34831d9,6c -34831da,60 -34831db,4 -34831dc,34 -34831dd,1 -34831df,1c -34831e0,1 -34831e1,41 -34831e3,18 -34831e6,68 -34831e7,12 -34831e8,1 -34831e9,2d -34831ea,70 -34831eb,20 -34831ec,8d -34831ed,cf -34831ef,e4 -34831f0,1 -34831f1,8f -34831f2,10 -34831f3,24 -34831f4,3 -34831f5,e0 -34831f7,8 -34831fc,3c -34831fd,8 -34831fe,80 -34831ff,1d -3483200,25 -3483201,8 -3483202,84 -3483203,a0 -3483204,3c -3483205,9 -3483206,80 -3483207,12 -3483208,25 -3483209,29 -348320a,a5 -348320b,d0 -348320c,85 -348320d,a -348320f,a4 -3483210,34 -3483211,1 -3483213,3e -3483214,15 -3483215,41 -3483217,2 -3483218,81 -3483219,2b -348321a,13 -348321b,97 -348321c,21 -348321d,6a -348321f,2d -3483220,84 -3483221,8b -3483223,1c -3483224,21 -3483225,6b -3483227,1 -3483228,34 -3483229,c -348322b,1 -348322c,1 -348322d,6c -348322e,60 -348322f,4 -3483230,34 -3483231,1 -3483233,1c -3483234,1 -3483235,41 -3483237,18 -348323a,68 -348323b,12 -348323c,1 -348323d,2d -348323e,70 -348323f,20 -3483240,8d -3483241,cf -3483243,e4 -3483244,1 -3483245,8f -3483246,78 -3483247,25 -3483248,ad -3483249,cf -348324b,e4 -348324c,3 -348324d,e0 -348324f,8 -3483254,27 -3483255,bd -3483256,ff -3483257,e8 -3483258,af -3483259,bf -348325b,10 -348325c,3c -348325d,a -348325e,80 -348325f,1e -3483260,25 -3483261,4a -3483262,aa -3483263,30 -3483264,81 -3483265,48 -3483266,6 -3483267,6c -3483268,31 -3483269,8 -348326b,20 -348326c,15 -348326f,23 -3483274,3c -3483275,a -3483276,80 -3483277,1d -3483278,25 -3483279,4a -348327a,84 -348327b,a0 -348327c,8d -348327d,48 -348327e,7 -348327f,94 -3483280,15 -3483283,1e -3483284,3c -3483285,9 -3483286,80 -3483287,40 -3483288,25 -3483289,29 -348328a,20 -348328b,1b -348328c,34 -348328d,a -348328f,ff -3483290,a1 -3483291,2a -3483294,3c -3483295,9 -3483296,80 -3483297,40 -3483298,25 -3483299,29 -348329a,20 -348329b,18 -348329c,24 -348329d,a -348329e,ff -348329f,ff -34832a0,34 -34832a1,c -34832a3,3 -34832a4,21 -34832a5,4a -34832a7,1 -34832a8,11 -34832a9,4c -34832ab,14 -34832ac,1 -34832ad,2a -34832ae,58 -34832af,20 -34832b0,81 -34832b1,68 -34832b4,11 -34832b6,ff -34832b7,fb -34832bc,3c -34832bd,9 -34832be,80 -34832bf,40 -34832c0,25 -34832c1,29 -34832c2,20 -34832c3,1b -34832c4,a1 -34832c5,2a -34832c8,3c -34832c9,9 -34832ca,80 -34832cb,1e -34832cc,25 -34832cd,29 -34832ce,89 -34832cf,84 -34832d0,34 -34832d1,a -34832d3,1 -34832d4,a5 -34832d5,2a -34832d8,3c -34832d9,9 -34832da,80 -34832db,48 -34832dc,34 -34832dd,a -34832df,1 -34832e0,ad -34832e1,2a -34832e2,1 -34832e3,30 -34832e4,3c -34832e5,a -34832e6,80 -34832e7,1e -34832e8,25 -34832e9,4a -34832ea,aa -34832eb,30 -34832ec,a1 -34832ed,48 -34832ee,4 -34832ef,24 -34832f0,ad -34832f1,49 -34832f2,4 -34832f3,28 -34832f4,c -34832f5,10 -34832f6,a -34832f7,e8 -34832fc,8e -34832fd,19 -34832ff,4 -3483300,2 -3483302,20 -3483303,25 -3483304,8f -3483305,bf -3483307,10 -3483308,3 -3483309,e0 -348330b,8 -348330c,27 -348330d,bd -348330f,18 -3483310,27 -3483311,bd -3483312,ff -3483313,e8 -3483314,af -3483315,bf -3483317,10 -3483318,c -3483319,10 -348331a,15 -348331b,e4 -3483320,3c -3483321,e -3483322,80 -3483323,12 -3483324,91 -3483325,ce -3483326,12 -3483327,12 -3483328,8f -3483329,bf -348332b,10 -348332c,3 -348332d,e0 -348332f,8 -3483330,27 -3483331,bd -3483333,18 -3483334,93 -3483335,19 -3483337,74 -3483338,34 -3483339,1 -348333b,ff -348333c,17 -348333d,21 -348333f,2 -3483344,34 -3483345,19 -3483347,2c -3483348,3 -3483349,e0 -348334b,8 -348334c,a7 -348334d,b9 -348334f,9a -3483350,93 -3483351,2c -3483353,74 -3483354,34 -3483355,1 -3483357,ff -3483358,15 -3483359,81 -348335b,2 -3483360,34 -3483361,c -3483363,2c -3483364,3 -3483365,e0 -3483367,8 -348336c,91 -348336d,ae -348336f,74 -3483370,34 -3483371,1 -3483373,ff -3483374,15 -3483375,c1 -3483377,2 -348337c,34 -348337d,e -348337f,2c -3483380,3 -3483381,e0 -3483383,8 -3483384,a7 -3483385,ae -3483387,9a -3483388,91 -3483389,cf -348338b,74 -348338c,34 -348338d,1 -348338f,ff -3483390,15 -3483391,e1 -3483393,2 -3483398,34 -3483399,f -348339b,2c -348339c,3 -348339d,e0 -348339f,8 -34833a0,a7 -34833a1,af -34833a3,9a -34833a4,3c -34833a5,8 -34833a6,80 -34833a7,40 -34833a8,25 -34833a9,8 -34833aa,20 -34833ab,1c -34833ac,8e -34833ad,9 -34833af,68 -34833b0,ad -34833b1,9 -34833b4,8e -34833b5,9 -34833b7,6c -34833b8,ad -34833b9,9 -34833bb,4 -34833bc,96 -34833bd,9 -34833bf,70 -34833c0,a5 -34833c1,9 -34833c3,8 -34833c4,96 -34833c5,9 -34833c7,9c -34833c8,a5 -34833c9,9 -34833cb,a -34833cc,3 -34833cd,e0 -34833cf,8 -34833d0,8e -34833d1,e -34833d3,4 -34833d4,27 -34833d5,bd -34833d6,ff -34833d7,e0 -34833d8,af -34833d9,b0 -34833db,10 -34833dc,af -34833dd,b1 -34833df,14 -34833e0,af -34833e1,bf -34833e3,18 -34833e4,3c -34833e5,10 -34833e6,80 -34833e7,12 -34833e8,26 -34833e9,10 -34833ea,a5 -34833eb,d0 -34833ec,3c -34833ed,11 -34833ee,80 -34833ef,40 -34833f0,26 -34833f1,31 -34833f2,20 -34833f3,1c -34833f4,8e -34833f5,8 -34833f7,4 -34833f8,11 -34833fb,5 -3483400,c -3483401,10 -3483402,d -3483403,1f -3483408,10 -348340b,3 -3483410,c -3483411,10 -3483412,d -3483413,32 -3483418,c -3483419,10 -348341a,d -348341b,12 -348341c,34 -348341d,4 -3483420,c -3483421,10 -3483422,d -3483423,12 -3483424,34 -3483425,4 -3483427,1 -3483428,c -3483429,10 -348342a,d -348342b,12 -348342c,34 -348342d,4 -348342f,2 -3483430,8f -3483431,b0 -3483433,10 -3483434,8f -3483435,b1 -3483437,14 -3483438,8f -3483439,bf -348343b,18 -348343c,27 -348343d,bd -348343f,20 -3483440,3 -3483441,e0 -3483443,8 -3483448,2 -3483449,4 -348344a,40 -348344b,21 -348344c,91 -348344d,9 -348344f,6c -3483450,34 -3483451,1 -3483453,ff -3483454,11 -3483455,21 -3483457,7 -348345c,2 -348345d,9 -348345e,48 -348345f,21 -3483460,91 -3483461,29 -3483463,74 -3483464,34 -3483465,1 -3483467,2c -3483468,11 -3483469,21 -348346b,2 -3483470,a1 -3483471,9 -3483473,69 -3483474,3 -3483475,e0 -3483477,8 -348347c,27 -348347d,bd -348347e,ff -348347f,e8 -3483480,af -3483481,bf -3483483,10 -3483484,8e -3483485,28 -3483488,ae -3483489,8 -348348b,40 -348348c,8e -348348d,28 -348348f,4 -3483490,ae -3483491,8 -3483493,44 -3483494,96 -3483495,28 -3483497,8 -3483498,a6 -3483499,8 -348349b,48 -348349c,a2 -348349e,f -348349f,33 -34834a0,92 -34834a1,8 -34834a3,4a -34834a4,34 -34834a5,1 -34834a7,ff -34834a8,15 -34834a9,1 -34834ab,3 -34834b0,c -34834b1,10 -34834b2,d -34834b3,40 -34834b8,8f -34834b9,bf -34834bb,10 -34834bc,27 -34834bd,bd -34834bf,18 -34834c0,3 -34834c1,e0 -34834c3,8 -34834c8,8e -34834c9,8 -34834cb,40 -34834cc,ae -34834cd,8 -34834cf,68 -34834d0,8e -34834d1,8 -34834d3,44 -34834d4,ae -34834d5,8 -34834d7,6c -34834d8,96 -34834d9,8 -34834db,48 -34834dc,a6 -34834dd,8 -34834df,70 -34834e0,92 -34834e1,8 -34834e3,68 -34834e4,34 -34834e5,1 -34834e7,ff -34834e8,15 -34834e9,1 -34834eb,3 -34834f0,34 -34834f1,8 -34834f3,1 -34834f4,a2 -34834f5,8 -34834f6,f -34834f7,33 -34834f8,3 -34834f9,e0 -34834fb,8 -3483500,27 -3483501,bd -3483502,ff -3483503,e8 -3483504,af -3483505,bf -3483507,10 -3483508,96 -3483509,8 -348350b,9c -348350c,31 -348350d,8 -348350f,40 -3483510,11 -3483513,5 -3483518,96 -3483519,8 -348351b,70 -348351c,31 -348351d,8 -348351e,ff -348351f,f -3483520,35 -3483521,8 -3483523,30 -3483524,a6 -3483525,8 -3483527,70 -3483528,92 -3483529,28 -348352b,1 -348352c,a2 -348352d,8 -348352f,69 -3483530,96 -3483531,28 -3483533,2 -3483534,a6 -3483535,8 -3483537,6a -3483538,8e -3483539,28 -348353b,4 -348353c,ae -348353d,8 -348353f,6c -3483540,c -3483541,10 -3483542,d -3483543,5a -3483544,34 -3483545,4 -3483548,c -3483549,10 -348354a,d -348354b,5a -348354c,34 -348354d,4 -348354f,1 -3483550,c -3483551,10 -3483552,d -3483553,5a -3483554,34 -3483555,4 -3483557,2 -3483558,8f -3483559,bf -348355b,10 -348355c,27 -348355d,bd -348355f,18 -3483560,3 -3483561,e0 -3483563,8 -3483568,2 -3483569,4 -348356a,40 -348356b,21 -348356c,3c -348356d,9 -348356e,80 -348356f,40 -3483570,25 -3483571,29 -3483572,36 -3483573,14 -3483574,91 -3483575,a -3483577,6c -3483578,34 -3483579,1 -348357b,ff -348357c,11 -348357d,41 -348357f,5 -3483584,1 -3483585,2a -3483586,48 -3483587,21 -3483588,91 -3483589,29 -348358c,15 -348358d,20 -348358f,1c -3483594,3c -3483595,9 -3483596,80 -3483597,40 -3483598,25 -3483599,29 -348359a,36 -348359b,7 -348359c,25 -348359d,29 -348359f,1 -34835a0,91 -34835a1,2a -34835a4,11 -34835a5,40 -34835a7,13 -34835ac,2 -34835ad,a -34835ae,58 -34835af,21 -34835b0,91 -34835b1,6b -34835b3,74 -34835b4,34 -34835b5,1 -34835b7,ff -34835b8,11 -34835b9,61 -34835ba,ff -34835bb,f8 -34835c0,92 -34835c1,c -34835c3,6c -34835c4,11 -34835c5,8a -34835c6,ff -34835c7,f5 -34835cc,92 -34835cd,c -34835cf,6d -34835d0,11 -34835d1,8a -34835d2,ff -34835d3,f2 -34835d8,92 -34835d9,c -34835db,6e -34835dc,11 -34835dd,8a -34835de,ff -34835df,ef -34835e4,a1 -34835e5,b -34835e7,69 -34835e8,a1 -34835e9,a -34835eb,6c -34835ec,10 -34835ef,4 -34835f4,34 -34835f5,9 -34835f7,ff -34835f8,a1 -34835f9,9 -34835fb,69 -34835fc,a1 -34835fd,9 -34835ff,6c -3483600,3 -3483601,e0 -3483603,8 -3483608,7 -3483609,9 -348360a,f -348360b,2 -348360c,3 -348360d,1 -348360e,d -348360f,b -3483615,1 -3483616,1 -3483617,1 -3483618,1 -3483619,1 -348361b,1 -348361c,1 -348361d,1 -348361e,1 -348361f,1 -3483621,1 -3483623,1 -3483624,1 -3483625,1 -3483626,1 -3483627,1 -3483628,1 -3483629,1 -348362a,1 -348362d,33 -348362e,8 -348362f,21 -3483630,20 -3483631,f -3483633,47 -3483634,15 -3483635,ea -3483637,e -3483638,3c -3483639,2 -348363a,80 -348363b,12 -348363c,8c -348363d,42 -348363e,a5 -348363f,d4 -3483640,8e -3483641,6f -3483643,a4 -3483645,f -3483646,7a -3483647,3 -3483648,14 -3483649,40 -348364b,5 -348364c,34 -348364d,2 -348364e,48 -348364f,30 -3483650,15 -3483651,e2 -3483653,7 -3483658,24 -3483659,19 -348365b,3 -348365c,10 -348365f,4 -3483660,34 -3483661,2 -3483662,63 -3483663,11 -3483664,15 -3483665,e2 -3483667,2 -348366c,24 -348366d,19 -348366f,3 -3483670,3 -3483671,e0 -3483673,8 -3483678,8d -3483679,ad -348367a,8a -348367b,a0 -348367c,34 -348367d,2 -348367e,80 -3483680,10 -3483681,4d -3483683,2 -3483688,10 -348368b,9 -348368c,3c -348368d,f -348368e,80 -348368f,1e -3483690,25 -3483691,ef -3483692,84 -3483693,a0 -3483694,81 -3483695,e2 -3483696,1c -3483697,bf -3483698,30 -3483699,42 -348369b,1 -348369c,10 -348369d,40 -348369f,2 -34836a4,10 -34836a7,2 -34836a8,34 -34836a9,2 -34836ab,1 -34836ac,a1 -34836ad,e2 -34836ae,1c -34836af,bf -34836b0,3 -34836b1,e0 -34836b3,8 -34836b9,33 -34836ba,8 -34836bb,21 -34836bc,3c -34836bd,2 -34836be,80 -34836bf,12 -34836c0,8c -34836c1,42 -34836c2,a5 -34836c3,d4 -34836c4,8e -34836c5,6f -34836c7,a4 -34836c9,f -34836ca,7a -34836cb,3 -34836cc,14 -34836cd,40 -34836cf,5 -34836d0,34 -34836d1,2 -34836d2,48 -34836d3,30 -34836d4,15 -34836d5,e2 -34836d7,7 -34836dc,24 -34836dd,19 -34836df,3 -34836e0,10 -34836e3,4 -34836e4,34 -34836e5,2 -34836e6,63 -34836e7,11 -34836e8,15 -34836e9,e2 -34836eb,2 -34836f0,24 -34836f1,19 -34836f3,3 -34836f4,3 -34836f5,e0 -34836f7,8 -34836fc,34 -34836fd,1 -34836ff,18 -3483700,14 -3483701,81 -3483703,11 -3483708,14 -3483709,40 -348370b,f -3483710,3c -3483711,a -3483712,80 -3483713,12 -3483714,25 -3483715,4a -3483716,a5 -3483717,d0 -3483718,81 -3483719,48 -348371b,a6 -348371c,31 -348371d,8 -348371f,20 -3483720,11 -3483723,9 -3483724,34 -3483725,2 -3483728,34 -3483729,2 -348372b,1 -348372c,81 -348372d,48 -348372f,7b -3483730,34 -3483731,9 -3483733,7 -3483734,11 -3483735,9 -3483737,4 -3483738,34 -3483739,a -348373b,8 -348373c,11 -348373d,a -348373f,2 -3483744,34 -3483745,2 -3483748,3 -3483749,e0 -348374b,8 -3483750,80 -3483751,a8 -3483754,25 -3483755,9 -3483757,1 -3483758,15 -3483759,20 -348375b,e -3483760,27 -3483761,bd -3483762,ff -3483763,e8 -3483764,af -3483765,bf -3483767,14 -3483768,af -3483769,a4 -348376b,18 -348376c,af -348376d,a5 -348376f,1c -3483771,5 -3483772,20 -3483773,25 -3483774,24 -3483775,a5 -3483777,8 -3483778,c -3483779,1 -348377a,5c -348377b,c -348377c,24 -348377d,c6 -348377e,ff -348377f,f8 -3483780,8f -3483781,a4 -3483783,18 -3483784,8f -3483785,a5 -3483787,1c -3483788,34 -3483789,6 -348378b,80 -348378c,8f -348378d,bf -348378f,14 -3483790,27 -3483791,bd -3483793,18 -3483794,8 -3483795,1 -3483796,5c -3483797,c -348379c,a2 -348379d,25 -348379f,21 -34837a0,3c -34837a1,10 -34837a2,80 -34837a3,40 -34837a4,26 -34837a5,10 -34837a6,17 -34837a7,fc -34837a8,26 -34837a9,10 -34837ab,4 -34837ac,8e -34837ad,a -34837b0,11 -34837b1,40 -34837b3,b -34837b9,a -34837ba,7c -34837bb,2 -34837bc,1 -34837bd,f1 -34837be,78 -34837bf,20 -34837c0,31 -34837c1,58 -34837c2,ff -34837c5,18 -34837c6,c2 -34837c7,2 -34837c8,17 -34837cb,3 -34837cc,31 -34837cd,59 -34837cf,ff -34837d0,81 -34837d1,ea -34837d4,3 -34837d5,2a -34837d6,c8 -34837d7,25 -34837d8,8 -34837d9,10 -34837da,d -34837db,ea -34837dc,a1 -34837dd,f9 -34837e0,3 -34837e1,e0 -34837e3,8 -34b3000,ac -34b3001,86 -34b3004,ac -34b3005,85 -34b3007,4 -34b3008,ac -34b3009,85 -34b300b,8 -34b300d,a6 -34b300e,28 -34b300f,21 -34b3010,3 -34b3011,e0 -34b3013,8 -34b3014,ac -34b3015,85 -34b3017,c -34b3018,94 -34b3019,82 -34b301b,4 -34b301c,94 -34b301d,83 -34b301f,6 -34b3021,43 -34b3023,18 -34b3026,10 -34b3027,12 -34b3028,90 -34b3029,83 -34b302b,c -34b3031,43 -34b3033,18 -34b3036,10 -34b3037,12 -34b3038,3 -34b3039,e0 -34b303b,8 -34b3040,27 -34b3041,bd -34b3042,ff -34b3043,e8 -34b3044,af -34b3045,bf -34b3047,14 -34b3048,af -34b3049,b0 -34b304b,10 -34b304c,c -34b304d,10 -34b304e,14 -34b304f,6 -34b3051,80 -34b3052,80 -34b3053,25 -34b3054,96 -34b3055,3 -34b3057,8 -34b3059,62 -34b305b,18 -34b305e,10 -34b305f,12 -34b3060,8f -34b3061,bf -34b3063,14 -34b3064,8f -34b3065,b0 -34b3067,10 -34b3068,3 -34b3069,e0 -34b306b,8 -34b306c,27 -34b306d,bd -34b306f,18 -34b3070,27 -34b3071,bd -34b3072,ff -34b3073,90 -34b3074,af -34b3075,bf -34b3077,6c -34b3078,af -34b3079,b7 -34b307b,68 -34b307c,af -34b307d,b6 -34b307f,64 -34b3080,af -34b3081,b5 -34b3083,60 -34b3084,af -34b3085,b4 -34b3087,5c -34b3088,af -34b3089,b3 -34b308b,58 -34b308c,af -34b308d,b2 -34b308f,54 -34b3090,af -34b3091,b1 -34b3093,50 -34b3094,af -34b3095,b0 -34b3097,4c -34b3099,80 -34b309a,80 -34b309b,25 -34b309d,a0 -34b309e,a8 -34b309f,25 -34b30a1,c0 -34b30a2,b8 -34b30a3,25 -34b30a5,e0 -34b30a6,b0 -34b30a7,25 -34b30a8,90 -34b30a9,b2 -34b30ab,a -34b30ad,12 -34b30ae,95 -34b30af,40 -34b30b0,3c -34b30b1,2 -34b30b3,e0 -34b30b4,2 -34b30b5,42 -34b30b6,90 -34b30b7,24 -34b30b8,90 -34b30b9,b1 -34b30bb,b -34b30bc,2e -34b30bd,22 -34b30bf,2 -34b30c0,10 -34b30c1,40 -34b30c3,2 -34b30c4,2 -34b30c5,20 -34b30c6,98 -34b30c7,25 -34b30c8,24 -34b30c9,13 -34b30cb,2 -34b30cc,32 -34b30cd,73 -34b30cf,ff -34b30d1,13 -34b30d2,a4 -34b30d3,c0 -34b30d4,3c -34b30d5,2 -34b30d7,18 -34b30d8,2 -34b30d9,82 -34b30da,a0 -34b30db,24 -34b30dc,2 -34b30dd,92 -34b30de,a0 -34b30df,25 -34b30e0,3c -34b30e1,2 -34b30e2,fd -34b30e4,2 -34b30e5,82 -34b30e6,10 -34b30e7,25 -34b30e8,af -34b30e9,a2 -34b30eb,10 -34b30ec,c -34b30ed,10 -34b30ee,14 -34b30ef,6 -34b30f0,2 -34b30f1,a0 -34b30f2,20 -34b30f3,25 -34b30f5,57 -34b30f7,18 -34b30fa,10 -34b30fb,12 -34b30fc,8e -34b30fd,a3 -34b3101,62 -34b3102,18 -34b3103,21 -34b3104,af -34b3105,a3 -34b3107,14 -34b3108,3c -34b3109,2 -34b310a,f5 -34b310c,2 -34b310d,82 -34b310e,a0 -34b310f,25 -34b3110,af -34b3111,b4 -34b3113,18 -34b3114,3c -34b3115,2 -34b3116,7 -34b3118,af -34b3119,a2 -34b311b,1c -34b311c,3c -34b311d,2 -34b311e,e6 -34b3120,af -34b3121,a2 -34b3123,20 -34b3124,af -34b3125,a0 -34b3127,24 -34b3128,3c -34b3129,2 -34b312a,f3 -34b312c,af -34b312d,a2 -34b312f,28 -34b3130,96 -34b3131,a3 -34b3133,4 -34b3134,96 -34b3135,a7 -34b3137,6 -34b3139,f6 -34b313b,18 -34b313e,38 -34b313f,12 -34b3140,24 -34b3141,5 -34b3143,4 -34b3144,2 -34b3145,25 -34b3146,20 -34b3147,4 -34b3149,67 -34b314b,18 -34b314e,10 -34b314f,12 -34b3150,24 -34b3151,42 -34b3153,1 -34b3159,44 -34b315b,18 -34b315e,10 -34b315f,12 -34b3160,24 -34b3161,42 -34b3162,ff -34b3163,ff -34b3164,2 -34b3165,65 -34b3166,98 -34b3167,4 -34b3168,16 -34b3169,60 -34b316b,2 -34b316d,53 -34b316f,1a -34b3171,7 -34b3173,d -34b3176,10 -34b3177,12 -34b3178,24 -34b3179,42 -34b317a,ff -34b317b,ff -34b317d,2 -34b317e,13 -34b3180,3c -34b3181,5 -34b3183,ff -34b3184,34 -34b3185,a5 -34b3186,f0 -34b3189,45 -34b318a,10 -34b318b,24 -34b318d,64 -34b318f,18 -34b3192,40 -34b3193,12 -34b3194,29 -34b3195,5 -34b3197,41 -34b3198,14 -34b3199,a0 -34b319b,b -34b319c,24 -34b319d,6 -34b319e,8 -34b31a1,8 -34b31a2,2f -34b31a3,c3 -34b31a4,30 -34b31a5,a5 -34b31a7,3f -34b31a9,a8 -34b31aa,28 -34b31ab,21 -34b31ad,5 -34b31ae,29 -34b31af,83 -34b31b0,24 -34b31b1,a6 -34b31b2,7 -34b31b3,ff -34b31b4,14 -34b31b5,a0 -34b31b7,2 -34b31b9,c5 -34b31bb,1a -34b31bd,7 -34b31bf,d -34b31c2,30 -34b31c3,12 -34b31c4,30 -34b31c5,c6 -34b31c6,f -34b31c7,ff -34b31c9,46 -34b31ca,10 -34b31cb,25 -34b31cc,3c -34b31cd,5 -34b31ce,7 -34b31d1,45 -34b31d2,10 -34b31d3,25 -34b31d4,af -34b31d5,a2 -34b31d7,2c -34b31d8,3c -34b31d9,2 -34b31da,e7 -34b31dc,af -34b31dd,a2 -34b31df,30 -34b31e0,af -34b31e1,a0 -34b31e3,34 -34b31e5,11 -34b31e6,14 -34b31e7,c0 -34b31e8,3c -34b31e9,5 -34b31eb,18 -34b31ed,45 -34b31ee,10 -34b31ef,24 -34b31f0,2e -34b31f1,31 -34b31f3,2 -34b31f4,16 -34b31f5,20 -34b31f7,2 -34b31f9,52 -34b31fa,10 -34b31fb,25 -34b31fc,24 -34b31fd,4 -34b31ff,10 -34b3201,64 -34b3203,18 -34b3206,20 -34b3207,12 -34b3208,24 -34b3209,84 -34b320b,3f -34b320d,4 -34b320e,97 -34b320f,c3 -34b3210,32 -34b3211,52 -34b3213,3f -34b3214,2 -34b3215,44 -34b3216,90 -34b3217,21 -34b3219,12 -34b321a,90 -34b321b,c0 -34b321c,3c -34b321d,4 -34b321f,3 -34b3220,34 -34b3221,84 -34b3222,fe -34b3224,2 -34b3225,44 -34b3226,90 -34b3227,24 -34b3228,2 -34b3229,42 -34b322a,90 -34b322b,25 -34b322c,3c -34b322d,2 -34b322e,f5 -34b3230,2 -34b3231,42 -34b3232,90 -34b3233,25 -34b3234,af -34b3235,b2 -34b3237,38 -34b3238,af -34b3239,a0 -34b323b,3c -34b323c,3c -34b323d,2 -34b323e,f2 -34b3240,af -34b3241,a2 -34b3243,40 -34b3244,24 -34b3245,62 -34b3246,3f -34b3247,ff -34b3249,2 -34b324a,13 -34b324b,80 -34b324c,3c -34b324d,3 -34b324f,ff -34b3250,34 -34b3251,63 -34b3252,f0 -34b3255,43 -34b3256,10 -34b3257,24 -34b3258,24 -34b3259,e7 -34b325a,ff -34b325b,ff -34b325d,7 -34b325e,38 -34b325f,80 -34b3260,30 -34b3261,e7 -34b3262,f -34b3263,fc -34b3265,47 -34b3266,10 -34b3267,25 -34b3268,af -34b3269,a2 -34b326b,44 -34b326c,27 -34b326d,a2 -34b326f,10 -34b3270,27 -34b3271,a6 -34b3273,48 -34b3274,8e -34b3275,3 -34b3277,8 -34b3278,24 -34b3279,64 -34b327b,8 -34b327c,ae -34b327d,4 -34b327f,8 -34b3280,8c -34b3281,45 -34b3283,4 -34b3284,8c -34b3285,44 -34b3288,ac -34b3289,65 -34b328b,4 -34b328c,24 -34b328d,42 -34b328f,8 -34b3290,14 -34b3291,46 -34b3292,ff -34b3293,f8 -34b3294,ac -34b3295,64 -34b3298,8f -34b3299,bf -34b329b,6c -34b329c,8f -34b329d,b7 -34b329f,68 -34b32a0,8f -34b32a1,b6 -34b32a3,64 -34b32a4,8f -34b32a5,b5 -34b32a7,60 -34b32a8,8f -34b32a9,b4 -34b32ab,5c -34b32ac,8f -34b32ad,b3 -34b32af,58 -34b32b0,8f -34b32b1,b2 -34b32b3,54 -34b32b4,8f -34b32b5,b1 -34b32b7,50 -34b32b8,8f -34b32b9,b0 -34b32bb,4c -34b32bc,3 -34b32bd,e0 -34b32bf,8 -34b32c0,27 -34b32c1,bd -34b32c3,70 -34b32c4,27 -34b32c5,bd -34b32c6,ff -34b32c7,e8 -34b32c8,8f -34b32c9,a8 -34b32cb,28 -34b32cc,8f -34b32cd,a2 -34b32cf,2c -34b32d0,8f -34b32d1,aa -34b32d3,30 -34b32d4,94 -34b32d5,a9 -34b32d7,4 -34b32d9,9 -34b32da,4a -34b32db,80 -34b32dc,14 -34b32dd,40 -34b32df,2 -34b32e0,1 -34b32e1,22 -34b32e3,1a -34b32e5,7 -34b32e7,d -34b32ea,48 -34b32eb,12 -34b32ec,94 -34b32ed,a3 -34b32ef,6 -34b32f1,47 -34b32f2,10 -34b32f3,21 -34b32f5,2 -34b32f6,13 -34b32f7,80 -34b32f8,3c -34b32f9,b -34b32fb,ff -34b32fc,35 -34b32fd,6b -34b32fe,f0 -34b3301,4b -34b3302,10 -34b3303,24 -34b3304,1 -34b3305,48 -34b3306,28 -34b3307,21 -34b3309,5 -34b330a,28 -34b330b,80 -34b330c,30 -34b330d,a5 -34b330e,f -34b330f,ff -34b3311,45 -34b3312,10 -34b3313,25 -34b3314,3c -34b3315,5 -34b3316,e4 -34b3319,45 -34b331a,10 -34b331b,25 -34b331c,af -34b331d,a2 -34b3321,7 -34b3322,3b -34b3323,80 -34b3325,eb -34b3326,38 -34b3327,24 -34b3329,8 -34b332a,40 -34b332b,80 -34b332c,31 -34b332d,8 -34b332e,f -34b332f,ff -34b3331,e8 -34b3332,38 -34b3333,25 -34b3334,af -34b3335,a7 -34b3337,4 -34b3338,3c -34b3339,2 -34b333a,e1 -34b333c,af -34b333d,a2 -34b333f,8 -34b3341,66 -34b3343,18 -34b3346,30 -34b3347,12 -34b3349,6 -34b334a,31 -34b334b,40 -34b334c,30 -34b334d,c6 -34b334e,ff -34b334f,ff -34b3350,af -34b3351,a6 -34b3353,c -34b3354,3c -34b3355,2 -34b3356,f1 -34b3358,af -34b3359,a2 -34b335b,10 -34b335d,3 -34b335e,1a -34b335f,80 -34b3360,15 -34b3361,40 -34b3363,2 -34b3365,6a -34b3367,1a -34b3369,7 -34b336b,d -34b336e,18 -34b336f,12 -34b3370,30 -34b3371,63 -34b3372,ff -34b3373,ff -34b3375,9 -34b3376,4c -34b3379,69 -34b337a,18 -34b337b,25 -34b337c,af -34b337d,a3 -34b337f,14 -34b3380,3 -34b3381,a0 -34b3382,10 -34b3383,25 -34b3384,27 -34b3385,a8 -34b3387,18 -34b3388,8c -34b3389,83 -34b338b,8 -34b338c,24 -34b338d,65 -34b338f,8 -34b3390,ac -34b3391,85 -34b3393,8 -34b3394,8c -34b3395,47 -34b3397,4 -34b3398,8c -34b3399,46 -34b339c,ac -34b339d,67 -34b339f,4 -34b33a0,24 -34b33a1,42 -34b33a3,8 -34b33a4,14 -34b33a5,48 -34b33a6,ff -34b33a7,f8 -34b33a8,ac -34b33a9,66 -34b33ac,3 -34b33ad,e0 -34b33af,8 -34b33b0,27 -34b33b1,bd -34b33b3,18 -34b33b4,8c -34b33b5,82 -34b33b7,8 -34b33b8,24 -34b33b9,43 -34b33bb,8 -34b33bc,ac -34b33bd,83 -34b33bf,8 -34b33c0,3c -34b33c1,3 -34b33c2,e7 -34b33c4,ac -34b33c5,43 -34b33c8,ac -34b33c9,40 -34b33cb,4 -34b33cc,8c -34b33cd,82 -34b33cf,8 -34b33d0,24 -34b33d1,43 -34b33d3,8 -34b33d4,ac -34b33d5,83 -34b33d7,8 -34b33d8,3c -34b33d9,3 -34b33da,d9 -34b33dc,ac -34b33dd,43 -34b33e0,ac -34b33e1,40 -34b33e3,4 -34b33e4,8c -34b33e5,82 -34b33e7,8 -34b33e8,24 -34b33e9,43 -34b33eb,8 -34b33ec,ac -34b33ed,83 -34b33ef,8 -34b33f0,3c -34b33f1,3 -34b33f2,ed -34b33f4,ac -34b33f5,43 -34b33f8,3c -34b33f9,5 -34b33fb,50 -34b33fc,24 -34b33fd,a3 -34b33fe,3 -34b33ff,c0 -34b3400,ac -34b3401,43 -34b3403,4 -34b3404,8c -34b3405,83 -34b3407,8 -34b3408,24 -34b3409,62 -34b340b,8 -34b340c,ac -34b340d,82 -34b340f,8 -34b3410,3c -34b3411,2 -34b3412,e3 -34b3414,24 -34b3415,46 -34b3416,1a -34b3417,1 -34b3418,ac -34b3419,66 -34b341c,24 -34b341d,6 -34b341f,30 -34b3420,ac -34b3421,66 -34b3423,4 -34b3424,8c -34b3425,83 -34b3427,8 -34b3428,24 -34b3429,66 -34b342b,8 -34b342c,ac -34b342d,86 -34b342f,8 -34b3430,24 -34b3431,46 -34b3432,18 -34b3433,1 -34b3434,ac -34b3435,66 -34b3438,24 -34b3439,6 -34b343b,c0 -34b343c,ac -34b343d,66 -34b343f,4 -34b3440,8c -34b3441,86 -34b3443,8 -34b3444,24 -34b3445,c3 -34b3447,8 -34b3448,ac -34b3449,83 -34b344b,8 -34b344c,3c -34b344d,3 -34b344e,e2 -34b3450,24 -34b3451,67 -34b3452,1e -34b3453,1 -34b3454,ac -34b3455,c7 -34b3458,ac -34b3459,c0 -34b345b,4 -34b345c,8c -34b345d,86 -34b345f,8 -34b3460,24 -34b3461,c7 -34b3463,8 -34b3464,ac -34b3465,87 -34b3467,8 -34b3468,24 -34b3469,67 -34b346a,1d -34b346c,ac -34b346d,c7 -34b3470,24 -34b3471,7 -34b3473,4 -34b3474,ac -34b3475,c7 -34b3477,4 -34b3478,8c -34b3479,86 -34b347b,8 -34b347c,24 -34b347d,c7 -34b347f,8 -34b3480,ac -34b3481,87 -34b3483,8 -34b3484,24 -34b3485,47 -34b3486,17 -34b3488,ac -34b3489,c7 -34b348c,ac -34b348d,c0 -34b348f,4 -34b3490,8c -34b3491,86 -34b3493,8 -34b3494,24 -34b3495,c7 -34b3497,8 -34b3498,ac -34b3499,87 -34b349b,8 -34b349c,24 -34b349d,47 -34b349e,14 -34b349f,2 -34b34a0,ac -34b34a1,c7 -34b34a4,24 -34b34a5,7 -34b34a6,c -34b34a8,ac -34b34a9,c7 -34b34ab,4 -34b34ac,8c -34b34ad,86 -34b34af,8 -34b34b0,24 -34b34b1,c7 -34b34b3,8 -34b34b4,ac -34b34b5,87 -34b34b7,8 -34b34b8,24 -34b34b9,47 -34b34ba,d -34b34bb,1 -34b34bc,ac -34b34bd,c7 -34b34c0,ac -34b34c1,c0 -34b34c3,4 -34b34c4,8c -34b34c5,86 -34b34c7,8 -34b34c8,24 -34b34c9,c7 -34b34cb,8 -34b34cc,ac -34b34cd,87 -34b34cf,8 -34b34d0,24 -34b34d1,47 -34b34d2,c -34b34d4,ac -34b34d5,c7 -34b34d8,ac -34b34d9,c0 -34b34db,4 -34b34dc,8c -34b34dd,86 -34b34df,8 -34b34e0,24 -34b34e1,c7 -34b34e3,8 -34b34e4,ac -34b34e5,87 -34b34e7,8 -34b34e8,24 -34b34e9,47 -34b34ea,f -34b34ec,ac -34b34ed,c7 -34b34f0,ac -34b34f1,c0 -34b34f3,4 -34b34f4,8c -34b34f5,86 -34b34f7,8 -34b34f8,24 -34b34f9,c7 -34b34fb,8 -34b34fc,ac -34b34fd,87 -34b34ff,8 -34b3500,24 -34b3501,47 -34b3502,10 -34b3503,1 -34b3504,ac -34b3505,c7 -34b3508,ac -34b3509,c0 -34b350b,4 -34b350c,8c -34b350d,86 -34b350f,8 -34b3510,24 -34b3511,c7 -34b3513,8 -34b3514,ac -34b3515,87 -34b3517,8 -34b3518,24 -34b3519,47 -34b351a,8 -34b351c,ac -34b351d,c7 -34b3520,ac -34b3521,c0 -34b3523,4 -34b3524,8c -34b3525,86 -34b3527,8 -34b3528,24 -34b3529,c7 -34b352b,8 -34b352c,ac -34b352d,87 -34b352f,8 -34b3530,24 -34b3531,47 -34b3532,a -34b3533,1 -34b3534,ac -34b3535,c7 -34b3538,ac -34b3539,c0 -34b353b,4 -34b353c,8c -34b353d,86 -34b353f,8 -34b3540,24 -34b3541,c7 -34b3543,8 -34b3544,ac -34b3545,87 -34b3547,8 -34b3548,24 -34b3549,63 -34b354b,1c -34b354c,ac -34b354d,c3 -34b3550,24 -34b3551,a5 -34b3552,42 -34b3553,40 -34b3554,ac -34b3555,c5 -34b3557,4 -34b3558,8c -34b3559,83 -34b355b,8 -34b355c,24 -34b355d,65 -34b355f,8 -34b3560,ac -34b3561,85 -34b3563,8 -34b3564,24 -34b3565,42 -34b3566,12 -34b3567,1 -34b3568,ac -34b3569,62 -34b356c,24 -34b356d,2 -34b356e,20 -34b3570,ac -34b3571,62 -34b3573,4 -34b3574,8c -34b3575,82 -34b3577,8 -34b3578,24 -34b3579,43 -34b357b,8 -34b357c,ac -34b357d,83 -34b357f,8 -34b3580,3c -34b3581,3 -34b3582,df -34b3584,ac -34b3585,43 -34b3588,3 -34b3589,e0 -34b358b,8 -34b358c,ac -34b358d,40 -34b358f,4 -34b3590,27 -34b3591,bd -34b3592,ff -34b3593,c8 -34b3594,af -34b3595,bf -34b3597,34 -34b3598,af -34b3599,b1 -34b359b,30 -34b359c,af -34b359d,b0 -34b359f,2c -34b35a0,af -34b35a1,a0 -34b35a3,10 -34b35a4,3c -34b35a5,2 -34b35a6,1 -34b35a7,a0 -34b35a8,24 -34b35a9,42 -34b35aa,20 -34b35ac,af -34b35ad,a2 -34b35af,14 -34b35b0,3c -34b35b1,10 -34b35b3,3 -34b35b4,36 -34b35b5,2 -34b35b6,95 -34b35b7,c0 -34b35b8,af -34b35b9,a2 -34b35bb,18 -34b35bc,c -34b35bd,10 -34b35be,15 -34b35bf,c8 -34b35c0,27 -34b35c1,a4 -34b35c3,10 -34b35c4,af -34b35c5,a0 -34b35c7,1c -34b35c8,3c -34b35c9,2 -34b35cb,84 -34b35cc,24 -34b35cd,42 -34b35ce,60 -34b35d0,af -34b35d1,a2 -34b35d3,20 -34b35d4,34 -34b35d5,2 -34b35d6,b4 -34b35d8,af -34b35d9,a2 -34b35db,24 -34b35dc,c -34b35dd,10 -34b35de,15 -34b35df,c8 -34b35e0,27 -34b35e1,a4 -34b35e3,1c -34b35e4,8f -34b35e5,a2 -34b35e7,10 -34b35e8,26 -34b35e9,10 -34b35ea,a3 -34b35ed,50 -34b35ee,80 -34b35ef,21 -34b35f0,3c -34b35f1,3 -34b35f2,80 -34b35f3,40 -34b35f4,ac -34b35f5,70 -34b35f6,64 -34b35f7,3c -34b35f8,24 -34b35f9,42 -34b35fa,29 -34b35fb,80 -34b35fc,3c -34b35fd,3 -34b35fe,80 -34b35ff,40 -34b3600,ac -34b3601,62 -34b3602,64 -34b3603,2c -34b3604,3c -34b3605,2 -34b3606,80 -34b3607,40 -34b3608,8f -34b3609,a3 -34b360b,1c -34b360c,ac -34b360d,43 -34b360e,64 -34b360f,1c -34b3610,3c -34b3611,11 -34b3612,80 -34b3613,40 -34b3614,c -34b3615,10 -34b3616,14 -34b3617,10 -34b3618,26 -34b3619,24 -34b361a,64 -34b361b,c -34b361d,40 -34b361e,80 -34b361f,25 -34b3620,c -34b3621,10 -34b3622,15 -34b3623,bb -34b3625,40 -34b3626,20 -34b3627,25 -34b3629,10 -34b362a,4f -34b362b,c2 -34b362c,1 -34b362d,30 -34b362e,48 -34b362f,21 -34b3630,2a -34b3631,10 -34b3633,2 -34b3634,16 -34b3637,18 -34b3638,ae -34b3639,22 -34b363a,64 -34b363b,c -34b363d,9 -34b363e,48 -34b363f,43 -34b3640,3c -34b3641,3 -34b3642,80 -34b3643,40 -34b3644,24 -34b3645,63 -34b3646,65 -34b3647,4e -34b364a,20 -34b364b,25 -34b364e,30 -34b364f,25 -34b3650,2 -34b3651,20 -34b3652,40 -34b3653,25 -34b3654,24 -34b3655,7 -34b3656,ff -34b3657,f0 -34b3658,8d -34b3659,5 -34b365a,64 -34b365b,c -34b365d,a4 -34b365e,28 -34b365f,21 -34b3660,90 -34b3661,62 -34b3665,2 -34b3666,11 -34b3667,2 -34b3669,47 -34b366a,10 -34b366b,25 -34b366c,a0 -34b366d,a2 -34b3670,8d -34b3671,2 -34b3672,64 -34b3673,c -34b3675,44 -34b3676,10 -34b3677,21 -34b3678,90 -34b3679,65 -34b367d,a7 -34b367e,28 -34b367f,25 -34b3680,a0 -34b3681,45 -34b3683,1 -34b3684,24 -34b3685,c6 -34b3687,1 -34b3688,24 -34b3689,63 -34b368b,1 -34b368d,c9 -34b368e,10 -34b368f,2a -34b3690,14 -34b3691,40 -34b3692,ff -34b3693,f1 -34b3694,24 -34b3695,84 -34b3697,2 -34b3698,c -34b3699,10 -34b369a,15 -34b369b,bb -34b369c,24 -34b369d,4 -34b369e,1 -34b36a0,3c -34b36a1,4 -34b36a2,80 -34b36a3,40 -34b36a4,24 -34b36a5,3 -34b36a6,1 -34b36a8,ac -34b36a9,83 -34b36aa,65 -34b36ab,30 -34b36ac,24 -34b36ad,84 -34b36ae,65 -34b36af,30 -34b36b0,ac -34b36b1,82 -34b36b3,4 -34b36b4,ac -34b36b5,82 -34b36b7,8 -34b36b8,24 -34b36b9,42 -34b36ba,1 -34b36bc,c -34b36bd,10 -34b36be,14 -34b36bf,ed -34b36c0,ac -34b36c1,82 -34b36c3,c -34b36c4,8f -34b36c5,bf -34b36c7,34 -34b36c8,8f -34b36c9,b1 -34b36cb,30 -34b36cc,8f -34b36cd,b0 -34b36cf,2c -34b36d0,3 -34b36d1,e0 -34b36d3,8 -34b36d4,27 -34b36d5,bd -34b36d7,38 -34b36d8,3c -34b36d9,3 -34b36da,80 -34b36db,40 -34b36dc,3c -34b36dd,2 -34b36de,80 -34b36df,50 -34b36e0,24 -34b36e1,42 -34b36e4,3 -34b36e5,e0 -34b36e7,8 -34b36e8,ac -34b36e9,62 -34b36ea,65 -34b36eb,14 -34b36ed,4 -34b36ee,17 -34b36ef,c3 -34b36f1,2 -34b36f2,1f -34b36f3,2 -34b36f5,83 -34b36f6,10 -34b36f7,21 -34b36f8,30 -34b36f9,42 -34b36fb,f -34b36fd,43 -34b36fe,10 -34b36ff,23 -34b3700,10 -34b3701,40 -34b3703,3 -34b3704,3c -34b3705,3 -34b3706,80 -34b3707,40 -34b3709,82 -34b370a,20 -34b370b,23 -34b370c,24 -34b370d,84 -34b370f,10 -34b3710,8c -34b3711,62 -34b3712,65 -34b3713,14 -34b3715,44 -34b3716,20 -34b3717,21 -34b3718,3 -34b3719,e0 -34b371b,8 -34b371c,ac -34b371d,64 -34b371e,65 -34b371f,14 -34b3720,27 -34b3721,bd -34b3722,ff -34b3723,e8 -34b3724,af -34b3725,bf -34b3727,14 -34b3728,af -34b3729,b0 -34b372b,10 -34b372d,80 -34b372e,80 -34b372f,25 -34b3730,c -34b3731,10 -34b3732,15 -34b3733,bb -34b3734,8c -34b3735,84 -34b3737,8 -34b3738,ae -34b3739,2 -34b373c,8e -34b373d,6 -34b373f,8 -34b3741,40 -34b3742,20 -34b3743,25 -34b3744,3c -34b3745,2 -34b3746,80 -34b3748,24 -34b3749,42 -34b374a,d -34b374b,f0 -34b374d,40 -34b374e,f8 -34b374f,9 -34b3750,8e -34b3751,5 -34b3753,4 -34b3754,8f -34b3755,bf -34b3757,14 -34b3758,8f -34b3759,b0 -34b375b,10 -34b375c,3 -34b375d,e0 -34b375f,8 -34b3760,27 -34b3761,bd -34b3763,18 -34b3764,27 -34b3765,bd -34b3766,ff -34b3767,e8 -34b3768,af -34b3769,bf -34b376b,14 -34b376c,c -34b376d,10 -34b376e,15 -34b376f,b6 -34b3774,c -34b3775,10 -34b3776,15 -34b3777,64 -34b377c,c -34b377d,10 -34b377e,18 -34b377f,79 -34b3784,8f -34b3785,bf -34b3787,14 -34b3788,3 -34b3789,e0 -34b378b,8 -34b378c,27 -34b378d,bd -34b378f,18 -34b3790,3c -34b3791,2 -34b3792,80 -34b3793,1c -34b3794,34 -34b3795,42 -34b3796,84 -34b3797,a0 -34b3798,3c -34b3799,3 -34b379b,1 -34b379d,43 -34b379e,10 -34b379f,21 -34b37a0,94 -34b37a1,43 -34b37a2,9 -34b37a3,34 -34b37a4,24 -34b37a5,2 -34b37a7,6 -34b37a8,14 -34b37a9,62 -34b37ab,19 -34b37ac,3c -34b37ad,2 -34b37ae,80 -34b37af,1c -34b37b0,34 -34b37b1,42 -34b37b2,84 -34b37b3,a0 -34b37b4,3c -34b37b5,3 -34b37b7,1 -34b37b9,43 -34b37ba,10 -34b37bb,21 -34b37bc,94 -34b37bd,42 -34b37be,9 -34b37bf,48 -34b37c0,14 -34b37c1,40 -34b37c3,13 -34b37c4,3c -34b37c5,2 -34b37c6,80 -34b37c7,1c -34b37c8,34 -34b37c9,42 -34b37ca,84 -34b37cb,a0 -34b37cd,43 -34b37ce,10 -34b37cf,21 -34b37d0,94 -34b37d1,42 -34b37d2,9 -34b37d3,44 -34b37d4,14 -34b37d5,40 -34b37d7,e -34b37d8,3c -34b37d9,2 -34b37da,80 -34b37db,1c -34b37dc,34 -34b37dd,42 -34b37de,84 -34b37df,a0 -34b37e0,84 -34b37e1,42 -34b37e3,14 -34b37e4,4 -34b37e5,41 -34b37e7,a -34b37e8,3c -34b37e9,2 -34b37ea,80 -34b37eb,1c -34b37ec,27 -34b37ed,bd -34b37ee,ff -34b37ef,e8 -34b37f0,af -34b37f1,bf -34b37f3,14 -34b37f4,34 -34b37f5,42 -34b37f6,84 -34b37f7,a0 -34b37f8,8c -34b37f9,44 -34b37fc,c -34b37fd,10 -34b37fe,16 -34b37ff,6 -34b3800,24 -34b3801,84 -34b3802,2 -34b3803,a8 -34b3804,8f -34b3805,bf -34b3807,14 -34b3808,3 -34b3809,e0 -34b380b,8 -34b380c,27 -34b380d,bd -34b380f,18 -34b3810,3 -34b3811,e0 -34b3813,8 -34b3818,3c -34b3819,2 -34b381a,80 -34b381b,40 -34b381c,8c -34b381d,42 -34b381e,65 -34b381f,c -34b3820,10 -34b3821,40 -34b3822,2 -34b3823,6e -34b3824,3c -34b3825,3 -34b3826,80 -34b3827,40 -34b3828,27 -34b3829,bd -34b382a,ff -34b382b,90 -34b382c,af -34b382d,bf -34b382f,6c -34b3830,af -34b3831,be -34b3833,68 -34b3834,af -34b3835,b7 -34b3837,64 -34b3838,af -34b3839,b6 -34b383b,60 -34b383c,af -34b383d,b5 -34b383f,5c -34b3840,af -34b3841,b4 -34b3843,58 -34b3844,af -34b3845,b3 -34b3847,54 -34b3848,af -34b3849,b2 -34b384b,50 -34b384c,af -34b384d,b1 -34b384f,4c -34b3850,af -34b3851,b0 -34b3853,48 -34b3854,8c -34b3855,82 -34b3857,4 -34b3858,8c -34b3859,63 -34b385a,65 -34b385b,34 -34b385c,24 -34b385d,45 -34b385f,8 -34b3860,ac -34b3861,85 -34b3863,8 -34b3864,3c -34b3865,5 -34b3866,de -34b3868,ac -34b3869,45 -34b386c,ac -34b386d,43 -34b386f,4 -34b3870,3c -34b3871,2 -34b3872,80 -34b3873,11 -34b3874,34 -34b3875,42 -34b3876,a5 -34b3877,d0 -34b3878,94 -34b3879,54 -34b387a,f -34b387b,2e -34b387c,3c -34b387d,2 -34b387e,80 -34b387f,40 -34b3880,8c -34b3881,42 -34b3882,65 -34b3883,18 -34b3884,50 -34b3885,40 -34b3887,5 -34b3888,24 -34b3889,8 -34b388b,1 -34b388c,32 -34b388d,88 -34b388f,1 -34b3891,14 -34b3892,a0 -34b3893,42 -34b3894,10 -34b3897,2 -34b3898,32 -34b3899,94 -34b389b,1 -34b389c,24 -34b389d,14 -34b389f,1 -34b38a0,3c -34b38a1,2 -34b38a2,80 -34b38a3,40 -34b38a4,8c -34b38a5,55 -34b38a6,65 -34b38a7,24 -34b38a8,12 -34b38a9,a0 -34b38ab,7 -34b38ac,2 -34b38ad,a0 -34b38ae,18 -34b38af,25 -34b38b0,3c -34b38b1,2 -34b38b2,80 -34b38b3,40 -34b38b4,94 -34b38b5,43 -34b38b6,64 -34b38b7,10 -34b38b9,3 -34b38ba,10 -34b38bb,40 -34b38bd,43 -34b38be,10 -34b38bf,21 -34b38c1,2 -34b38c2,10 -34b38c3,40 -34b38c4,24 -34b38c5,43 -34b38c7,2 -34b38c8,3c -34b38c9,2 -34b38ca,80 -34b38cb,40 -34b38cc,94 -34b38cd,42 -34b38ce,64 -34b38cf,10 -34b38d1,2 -34b38d2,10 -34b38d3,c0 -34b38d4,24 -34b38d5,42 -34b38d7,5e -34b38d9,43 -34b38da,10 -34b38db,21 -34b38dc,24 -34b38dd,3 -34b38de,1 -34b38df,40 -34b38e1,62 -34b38e2,18 -34b38e3,23 -34b38e5,3 -34b38e6,8f -34b38e7,c2 -34b38e8,2 -34b38e9,23 -34b38ea,88 -34b38eb,21 -34b38ed,11 -34b38ee,88 -34b38ef,43 -34b38f0,26 -34b38f1,23 -34b38f3,2 -34b38f4,af -34b38f5,a3 -34b38f7,38 -34b38f8,8c -34b38f9,83 -34b38fb,8 -34b38fc,24 -34b38fd,65 -34b38ff,8 -34b3900,ac -34b3901,85 -34b3903,8 -34b3904,3c -34b3905,5 -34b3906,fc -34b3907,ff -34b3908,34 -34b3909,a5 -34b390a,ff -34b390b,ff -34b390c,ac -34b390d,65 -34b3910,3c -34b3911,5 -34b3912,ff -34b3913,fd -34b3914,34 -34b3915,a5 -34b3916,f6 -34b3917,fb -34b3918,ac -34b3919,65 -34b391b,4 -34b391c,8c -34b391d,83 -34b391f,8 -34b3920,24 -34b3921,65 -34b3923,8 -34b3924,ac -34b3925,85 -34b3927,8 -34b3928,3c -34b3929,5 -34b392a,fa -34b392c,ac -34b392d,65 -34b3930,24 -34b3931,5 -34b3933,d0 -34b3934,ac -34b3935,65 -34b3937,4 -34b3939,51 -34b393a,10 -34b393b,21 -34b393d,2 -34b393e,13 -34b393f,80 -34b3940,3c -34b3941,3 -34b3943,ff -34b3944,34 -34b3945,63 -34b3946,f0 -34b3949,43 -34b394a,10 -34b394b,24 -34b394c,3c -34b394d,5 -34b394e,e4 -34b3950,24 -34b3951,a5 -34b3952,3 -34b3953,b8 -34b3955,45 -34b3956,10 -34b3957,25 -34b3958,af -34b3959,a2 -34b395b,20 -34b395d,11 -34b395e,13 -34b395f,80 -34b3961,43 -34b3962,10 -34b3963,24 -34b3964,34 -34b3965,42 -34b3967,8 -34b3968,af -34b3969,a2 -34b396b,24 -34b396c,3c -34b396d,2 -34b396e,e1 -34b3970,af -34b3971,a2 -34b3973,28 -34b3974,af -34b3975,a0 -34b3977,2c -34b3978,3c -34b3979,2 -34b397a,f1 -34b397c,af -34b397d,a2 -34b397f,30 -34b3980,3c -34b3981,2 -34b3982,4 -34b3984,24 -34b3985,42 -34b3986,4 -34b3988,af -34b3989,a2 -34b398b,34 -34b398c,27 -34b398d,a2 -34b398f,20 -34b3990,27 -34b3991,a9 -34b3993,38 -34b3994,8c -34b3995,83 -34b3997,8 -34b3998,24 -34b3999,65 -34b399b,8 -34b399c,ac -34b399d,85 -34b399f,8 -34b39a0,8c -34b39a1,47 -34b39a3,4 -34b39a4,8c -34b39a5,46 -34b39a8,ac -34b39a9,67 -34b39ab,4 -34b39ac,24 -34b39ad,42 -34b39af,8 -34b39b0,15 -34b39b1,22 -34b39b2,ff -34b39b3,f8 -34b39b4,ac -34b39b5,66 -34b39b9,80 -34b39ba,80 -34b39bb,25 -34b39bc,8c -34b39bd,82 -34b39bf,8 -34b39c0,24 -34b39c1,43 -34b39c3,8 -34b39c4,ac -34b39c5,83 -34b39c7,8 -34b39c8,3c -34b39c9,3 -34b39ca,e7 -34b39cc,ac -34b39cd,43 -34b39d0,ac -34b39d1,40 -34b39d3,4 -34b39d4,8c -34b39d5,82 -34b39d7,8 -34b39d8,24 -34b39d9,43 -34b39db,8 -34b39dc,ac -34b39dd,83 -34b39df,8 -34b39e0,3c -34b39e1,3 -34b39e2,fc -34b39e3,11 -34b39e4,34 -34b39e5,63 -34b39e6,96 -34b39e7,23 -34b39e8,ac -34b39e9,43 -34b39ec,3c -34b39ed,3 -34b39ee,ff -34b39ef,2f -34b39f0,34 -34b39f1,63 -34b39f2,ff -34b39f3,ff -34b39f4,11 -34b39f7,4d -34b39f8,ac -34b39f9,43 -34b39fb,4 -34b39fc,3c -34b39fd,5 -34b39fe,80 -34b39ff,40 -34b3a00,24 -34b3a01,a5 -34b3a02,64 -34b3a03,2c -34b3a04,94 -34b3a05,a7 -34b3a07,8 -34b3a08,c -34b3a09,10 -34b3a0a,14 -34b3a0b,1c -34b3a0e,30 -34b3a0f,25 -34b3a10,3c -34b3a11,2 -34b3a12,80 -34b3a13,40 -34b3a14,8c -34b3a15,42 -34b3a16,65 -34b3a17,10 -34b3a18,18 -34b3a19,40 -34b3a1b,44 -34b3a1c,3c -34b3a1d,2 -34b3a1e,80 -34b3a1f,40 -34b3a20,3c -34b3a21,13 -34b3a22,80 -34b3a23,40 -34b3a24,26 -34b3a25,73 -34b3a26,64 -34b3a27,70 -34b3a2a,90 -34b3a2b,25 -34b3a2c,3c -34b3a2d,1e -34b3a2e,80 -34b3a2f,40 -34b3a30,3c -34b3a31,16 -34b3a32,80 -34b3a33,40 -34b3a34,26 -34b3a35,d6 -34b3a36,64 -34b3a37,4c -34b3a38,24 -34b3a39,42 -34b3a3a,64 -34b3a3b,5c -34b3a3c,af -34b3a3d,a2 -34b3a3f,3c -34b3a40,3c -34b3a41,2 -34b3a42,80 -34b3a43,40 -34b3a44,24 -34b3a45,42 -34b3a46,64 -34b3a47,2c -34b3a48,af -34b3a49,a2 -34b3a4b,40 -34b3a4c,3c -34b3a4d,17 -34b3a4e,80 -34b3a4f,40 -34b3a50,8f -34b3a51,c2 -34b3a52,65 -34b3a53,1c -34b3a54,50 -34b3a55,40 -34b3a57,b -34b3a58,92 -34b3a59,62 -34b3a5c,92 -34b3a5d,63 -34b3a60,3c -34b3a61,2 -34b3a62,80 -34b3a63,11 -34b3a64,34 -34b3a65,42 -34b3a66,a5 -34b3a67,d0 -34b3a69,43 -34b3a6a,10 -34b3a6b,21 -34b3a6c,90 -34b3a6d,42 -34b3a6f,a8 -34b3a71,2 -34b3a72,10 -34b3a73,42 -34b3a74,30 -34b3a75,42 -34b3a77,1 -34b3a78,50 -34b3a79,40 -34b3a7b,28 -34b3a7c,26 -34b3a7d,52 -34b3a7f,1 -34b3a80,92 -34b3a81,62 -34b3a85,56 -34b3a86,10 -34b3a87,21 -34b3a88,80 -34b3a89,46 -34b3a8c,28 -34b3a8d,c2 -34b3a8f,3 -34b3a90,54 -34b3a91,40 -34b3a93,22 -34b3a94,26 -34b3a95,52 -34b3a97,1 -34b3a98,24 -34b3a99,c6 -34b3a9a,ff -34b3a9b,fd -34b3a9d,6 -34b3a9e,18 -34b3a9f,40 -34b3aa1,66 -34b3aa2,18 -34b3aa3,21 -34b3aa4,8f -34b3aa5,a2 -34b3aa7,3c -34b3aa9,62 -34b3aaa,18 -34b3aab,21 -34b3aac,90 -34b3aad,62 -34b3ab1,2 -34b3ab2,16 -34b3ab4,90 -34b3ab5,64 -34b3ab7,2 -34b3ab9,4 -34b3aba,22 -34b3abd,44 -34b3abe,10 -34b3abf,25 -34b3ac0,90 -34b3ac1,63 -34b3ac3,1 -34b3ac5,3 -34b3ac6,1c -34b3ac9,43 -34b3aca,10 -34b3acb,25 -34b3acc,34 -34b3acd,42 -34b3acf,ff -34b3ad0,8e -34b3ad1,3 -34b3ad3,8 -34b3ad4,24 -34b3ad5,64 -34b3ad7,8 -34b3ad8,ae -34b3ad9,4 -34b3adb,8 -34b3adc,3c -34b3add,4 -34b3ade,fa -34b3ae0,ac -34b3ae1,64 -34b3ae4,ac -34b3ae5,62 -34b3ae7,4 -34b3ae8,24 -34b3ae9,2 -34b3aeb,10 -34b3aec,af -34b3aed,a2 -34b3aef,18 -34b3af0,af -34b3af1,a2 -34b3af3,14 -34b3af5,12 -34b3af6,10 -34b3af7,c0 -34b3af9,52 -34b3afa,10 -34b3afb,21 -34b3afd,2 -34b3afe,10 -34b3aff,40 -34b3b00,24 -34b3b01,42 -34b3b03,4 -34b3b04,af -34b3b05,a2 -34b3b07,10 -34b3b08,8f -34b3b09,a7 -34b3b0b,38 -34b3b0c,8f -34b3b0d,a5 -34b3b0f,40 -34b3b10,c -34b3b11,10 -34b3b12,14 -34b3b13,b1 -34b3b14,2 -34b3b16,20 -34b3b17,25 -34b3b18,26 -34b3b19,52 -34b3b1b,1 -34b3b1c,8e -34b3b1d,e2 -34b3b1e,65 -34b3b1f,10 -34b3b20,2 -34b3b21,42 -34b3b22,10 -34b3b23,2a -34b3b24,14 -34b3b25,40 -34b3b26,ff -34b3b27,ca -34b3b28,26 -34b3b29,73 -34b3b2b,c -34b3b2c,8e -34b3b2d,2 -34b3b2f,8 -34b3b30,24 -34b3b31,43 -34b3b33,8 -34b3b34,ae -34b3b35,3 -34b3b37,8 -34b3b38,3c -34b3b39,3 -34b3b3a,fa -34b3b3c,ac -34b3b3d,43 -34b3b40,24 -34b3b41,3 -34b3b42,ff -34b3b43,ff -34b3b44,12 -34b3b45,80 -34b3b47,36 -34b3b48,ac -34b3b49,43 -34b3b4b,4 -34b3b4c,3c -34b3b4d,5 -34b3b4e,80 -34b3b4f,40 -34b3b50,24 -34b3b51,a5 -34b3b52,64 -34b3b53,3c -34b3b54,94 -34b3b55,a7 -34b3b57,8 -34b3b5a,30 -34b3b5b,25 -34b3b5c,c -34b3b5d,10 -34b3b5e,14 -34b3b5f,1c -34b3b60,2 -34b3b62,20 -34b3b63,25 -34b3b64,3c -34b3b65,2 -34b3b66,80 -34b3b67,40 -34b3b68,8c -34b3b69,42 -34b3b6a,65 -34b3b6b,10 -34b3b6c,18 -34b3b6d,40 -34b3b6e,1 -34b3b6f,99 -34b3b70,3c -34b3b71,2 -34b3b72,80 -34b3b73,40 -34b3b74,3c -34b3b75,13 -34b3b76,80 -34b3b77,40 -34b3b78,26 -34b3b79,73 -34b3b7a,64 -34b3b7b,70 -34b3b7e,90 -34b3b7f,25 -34b3b80,3c -34b3b81,17 -34b3b82,80 -34b3b83,40 -34b3b84,3c -34b3b85,14 -34b3b86,80 -34b3b87,40 -34b3b88,26 -34b3b89,94 -34b3b8a,64 -34b3b8b,4c -34b3b8c,24 -34b3b8d,42 -34b3b8e,64 -34b3b8f,3c -34b3b90,af -34b3b91,a2 -34b3b93,3c -34b3b94,3c -34b3b95,1e -34b3b96,80 -34b3b97,11 -34b3b98,37 -34b3b99,de -34b3b9a,a5 -34b3b9b,d0 -34b3b9c,3c -34b3b9d,16 -34b3b9e,80 -34b3b9f,40 -34b3ba0,8e -34b3ba1,e2 -34b3ba2,65 -34b3ba3,1c -34b3ba4,10 -34b3ba5,40 -34b3ba7,8 -34b3ba8,92 -34b3ba9,62 -34b3bac,3 -34b3bad,c2 -34b3bae,10 -34b3baf,21 -34b3bb0,90 -34b3bb1,42 -34b3bb3,a8 -34b3bb5,2 -34b3bb6,10 -34b3bb7,42 -34b3bb8,30 -34b3bb9,42 -34b3bbb,1 -34b3bbc,50 -34b3bbd,40 -34b3bbf,14 -34b3bc0,26 -34b3bc1,52 -34b3bc3,1 -34b3bc4,92 -34b3bc5,62 -34b3bc9,54 -34b3bca,10 -34b3bcb,21 -34b3bcc,80 -34b3bcd,46 -34b3bd0,2c -34b3bd1,c2 -34b3bd3,3 -34b3bd4,50 -34b3bd5,40 -34b3bd7,e -34b3bd8,26 -34b3bd9,52 -34b3bdb,1 -34b3bdc,24 -34b3bdd,2 -34b3bdf,10 -34b3be0,af -34b3be1,a2 -34b3be3,18 -34b3be4,af -34b3be5,a2 -34b3be7,14 -34b3be9,12 -34b3bea,10 -34b3beb,c0 -34b3bed,52 -34b3bee,10 -34b3bef,21 -34b3bf1,2 -34b3bf2,10 -34b3bf3,40 -34b3bf4,24 -34b3bf5,42 -34b3bf7,4 -34b3bf8,af -34b3bf9,a2 -34b3bfb,10 -34b3bfc,8f -34b3bfd,a7 -34b3bff,38 -34b3c00,8f -34b3c01,a5 -34b3c03,3c -34b3c04,c -34b3c05,10 -34b3c06,14 -34b3c07,b1 -34b3c08,2 -34b3c0a,20 -34b3c0b,25 -34b3c0c,26 -34b3c0d,52 -34b3c0f,1 -34b3c10,8e -34b3c11,c2 -34b3c12,65 -34b3c13,10 -34b3c14,2 -34b3c15,42 -34b3c16,10 -34b3c17,2a -34b3c18,14 -34b3c19,40 -34b3c1a,ff -34b3c1b,e1 -34b3c1c,26 -34b3c1d,73 -34b3c1f,c -34b3c20,3c -34b3c21,2 -34b3c22,80 -34b3c23,40 -34b3c24,8c -34b3c25,42 -34b3c26,65 -34b3c27,10 -34b3c28,18 -34b3c29,40 -34b3c2b,10 -34b3c2c,26 -34b3c2d,31 -34b3c2f,14 -34b3c30,3c -34b3c31,12 -34b3c32,80 -34b3c33,40 -34b3c34,26 -34b3c35,52 -34b3c36,64 -34b3c37,72 -34b3c38,24 -34b3c39,14 -34b3c3b,5 -34b3c3e,98 -34b3c3f,25 -34b3c40,3c -34b3c41,16 -34b3c42,80 -34b3c43,40 -34b3c44,2 -34b3c45,80 -34b3c46,30 -34b3c47,25 -34b3c48,2 -34b3c49,20 -34b3c4a,28 -34b3c4b,25 -34b3c4c,c -34b3c4d,10 -34b3c4e,18 -34b3c4f,84 -34b3c50,2 -34b3c51,40 -34b3c52,20 -34b3c53,25 -34b3c54,26 -34b3c55,73 -34b3c57,1 -34b3c58,26 -34b3c59,52 -34b3c5b,c -34b3c5c,8e -34b3c5d,c2 -34b3c5e,65 -34b3c5f,10 -34b3c60,2 -34b3c61,62 -34b3c62,10 -34b3c63,2a -34b3c64,14 -34b3c65,40 -34b3c66,ff -34b3c67,f7 -34b3c68,26 -34b3c69,94 -34b3c6b,12 -34b3c6c,3c -34b3c6d,2 -34b3c6e,80 -34b3c6f,40 -34b3c70,94 -34b3c71,42 -34b3c72,64 -34b3c73,10 -34b3c75,2 -34b3c76,10 -34b3c77,c0 -34b3c78,24 -34b3c79,42 -34b3c7b,2 -34b3c7d,51 -34b3c7e,88 -34b3c7f,21 -34b3c80,24 -34b3c81,7 -34b3c83,1 -34b3c84,24 -34b3c85,6 -34b3c87,11 -34b3c88,3c -34b3c89,5 -34b3c8a,80 -34b3c8b,40 -34b3c8c,24 -34b3c8d,a5 -34b3c8e,64 -34b3c8f,1c -34b3c90,c -34b3c91,10 -34b3c92,14 -34b3c93,1c -34b3c94,2 -34b3c96,20 -34b3c97,25 -34b3c98,3c -34b3c99,2 -34b3c9a,80 -34b3c9b,40 -34b3c9c,8c -34b3c9d,42 -34b3c9e,65 -34b3c9f,10 -34b3ca0,18 -34b3ca1,40 -34b3ca3,2a -34b3ca4,3c -34b3ca5,1e -34b3ca6,80 -34b3ca7,11 -34b3ca8,3c -34b3ca9,13 -34b3caa,80 -34b3cab,40 -34b3cac,26 -34b3cad,73 -34b3cae,64 -34b3caf,70 -34b3cb0,24 -34b3cb1,14 -34b3cb3,5 -34b3cb6,90 -34b3cb7,25 -34b3cb8,2 -34b3cb9,60 -34b3cba,b0 -34b3cbb,25 -34b3cbc,37 -34b3cbd,de -34b3cbe,a5 -34b3cbf,d0 -34b3cc0,3c -34b3cc1,17 -34b3cc2,80 -34b3cc3,40 -34b3cc5,12 -34b3cc6,10 -34b3cc7,40 -34b3cc9,52 -34b3cca,10 -34b3ccb,21 -34b3ccd,2 -34b3cce,10 -34b3ccf,80 -34b3cd1,56 -34b3cd2,10 -34b3cd3,21 -34b3cd4,80 -34b3cd5,42 -34b3cd7,1 -34b3cd8,4 -34b3cd9,43 -34b3cdb,17 -34b3cdc,26 -34b3cdd,52 -34b3cdf,1 -34b3ce0,92 -34b3ce1,62 -34b3ce4,3 -34b3ce5,c2 -34b3ce6,10 -34b3ce7,21 -34b3ce8,90 -34b3ce9,42 -34b3ceb,bc -34b3ced,2 -34b3cee,1e -34b3cf1,3 -34b3cf2,1e -34b3cf3,3 -34b3cf4,28 -34b3cf5,63 -34b3cf7,a -34b3cf8,50 -34b3cf9,60 -34b3cfb,1 -34b3cfc,24 -34b3cfd,2 -34b3cff,9 -34b3d00,24 -34b3d01,3 -34b3d02,30 -34b3d04,a7 -34b3d05,a3 -34b3d07,20 -34b3d09,40 -34b3d0a,18 -34b3d0b,25 -34b3d0d,2 -34b3d0e,16 -34b3d11,2 -34b3d12,16 -34b3d13,3 -34b3d14,4 -34b3d15,42 -34b3d17,1 -34b3d1a,18 -34b3d1b,25 -34b3d1c,24 -34b3d1d,63 -34b3d1f,30 -34b3d20,a3 -34b3d21,a3 -34b3d23,20 -34b3d24,2 -34b3d25,80 -34b3d26,30 -34b3d27,25 -34b3d28,2 -34b3d29,20 -34b3d2a,28 -34b3d2b,25 -34b3d2c,c -34b3d2d,10 -34b3d2e,18 -34b3d2f,84 -34b3d30,27 -34b3d31,a4 -34b3d33,20 -34b3d34,26 -34b3d35,52 -34b3d37,1 -34b3d38,26 -34b3d39,73 -34b3d3b,c -34b3d3c,8e -34b3d3d,e2 -34b3d3e,65 -34b3d3f,10 -34b3d40,2 -34b3d41,42 -34b3d42,10 -34b3d43,2a -34b3d44,14 -34b3d45,40 -34b3d46,ff -34b3d47,df -34b3d48,26 -34b3d49,94 -34b3d4b,12 -34b3d4c,26 -34b3d4d,3e -34b3d4f,12 -34b3d50,24 -34b3d51,7 -34b3d53,1 -34b3d54,24 -34b3d55,6 -34b3d57,e -34b3d58,3c -34b3d59,5 -34b3d5a,80 -34b3d5b,40 -34b3d5c,24 -34b3d5d,a5 -34b3d5e,64 -34b3d5f,1c -34b3d60,c -34b3d61,10 -34b3d62,14 -34b3d63,1c -34b3d64,2 -34b3d66,20 -34b3d67,25 -34b3d68,3c -34b3d69,2 -34b3d6a,80 -34b3d6b,40 -34b3d6c,8c -34b3d6d,42 -34b3d6e,65 -34b3d6f,10 -34b3d70,18 -34b3d71,40 -34b3d73,2d -34b3d74,3c -34b3d75,2 -34b3d76,80 -34b3d77,40 -34b3d78,3c -34b3d79,13 -34b3d7a,80 -34b3d7b,40 -34b3d7c,26 -34b3d7d,73 -34b3d7e,64 -34b3d7f,70 -34b3d82,90 -34b3d83,25 -34b3d84,24 -34b3d85,17 -34b3d87,d -34b3d88,2 -34b3d89,60 -34b3d8a,a0 -34b3d8b,25 -34b3d8c,24 -34b3d8d,42 -34b3d8e,64 -34b3d8f,1c -34b3d90,af -34b3d91,a2 -34b3d93,38 -34b3d94,3c -34b3d95,16 -34b3d96,80 -34b3d97,40 -34b3d98,92 -34b3d99,63 -34b3d9c,50 -34b3d9d,77 -34b3d9f,1 -34b3da0,24 -34b3da1,3 -34b3da3,a -34b3da5,12 -34b3da6,10 -34b3da7,40 -34b3da9,52 -34b3daa,10 -34b3dab,21 -34b3dad,2 -34b3dae,10 -34b3daf,80 -34b3db1,54 -34b3db2,10 -34b3db3,21 -34b3db4,90 -34b3db5,42 -34b3db7,1 -34b3db8,30 -34b3db9,42 -34b3dbb,40 -34b3dbc,50 -34b3dbd,40 -34b3dbf,16 -34b3dc0,26 -34b3dc1,52 -34b3dc3,1 -34b3dc4,3c -34b3dc5,2 -34b3dc6,80 -34b3dc7,11 -34b3dc8,34 -34b3dc9,42 -34b3dca,a5 -34b3dcb,d0 -34b3dcd,43 -34b3dce,10 -34b3dcf,21 -34b3dd0,90 -34b3dd1,42 -34b3dd3,a8 -34b3dd4,30 -34b3dd5,42 -34b3dd7,1 -34b3dd8,50 -34b3dd9,40 -34b3ddb,f -34b3ddc,26 -34b3ddd,52 -34b3ddf,1 -34b3de0,24 -34b3de1,2 -34b3de3,10 -34b3de4,af -34b3de5,a2 -34b3de7,18 -34b3de8,af -34b3de9,a2 -34b3deb,14 -34b3ded,12 -34b3dee,10 -34b3def,c0 -34b3df1,52 -34b3df2,10 -34b3df3,21 -34b3df5,2 -34b3df6,10 -34b3df7,40 -34b3df8,24 -34b3df9,42 -34b3dfb,4 -34b3dfc,af -34b3dfd,a2 -34b3dff,10 -34b3e00,3 -34b3e01,c0 -34b3e02,38 -34b3e03,25 -34b3e06,30 -34b3e07,25 -34b3e08,8f -34b3e09,a5 -34b3e0b,38 -34b3e0c,c -34b3e0d,10 -34b3e0e,14 -34b3e0f,b1 -34b3e10,2 -34b3e12,20 -34b3e13,25 -34b3e14,26 -34b3e15,52 -34b3e17,1 -34b3e18,8e -34b3e19,c2 -34b3e1a,65 -34b3e1b,10 -34b3e1c,2 -34b3e1d,42 -34b3e1e,10 -34b3e1f,2a -34b3e20,14 -34b3e21,40 -34b3e22,ff -34b3e23,dd -34b3e24,26 -34b3e25,73 -34b3e27,c -34b3e28,24 -34b3e29,7 -34b3e2b,1 -34b3e2c,24 -34b3e2d,6 -34b3e2f,a -34b3e30,3c -34b3e31,5 -34b3e32,80 -34b3e33,40 -34b3e34,24 -34b3e35,a5 -34b3e36,64 -34b3e37,1c -34b3e38,c -34b3e39,10 -34b3e3a,14 -34b3e3b,1c -34b3e3c,2 -34b3e3e,20 -34b3e3f,25 -34b3e40,3c -34b3e41,2 -34b3e42,80 -34b3e43,40 -34b3e44,8c -34b3e45,42 -34b3e46,65 -34b3e47,10 -34b3e48,58 -34b3e49,40 -34b3e4b,29 -34b3e4c,26 -34b3e4d,3e -34b3e4f,24 -34b3e52,90 -34b3e53,25 -34b3e54,3c -34b3e55,13 -34b3e56,80 -34b3e57,40 -34b3e58,26 -34b3e59,73 -34b3e5a,64 -34b3e5b,70 -34b3e5c,3c -34b3e5d,16 -34b3e5e,80 -34b3e5f,11 -34b3e60,3c -34b3e61,17 -34b3e62,80 -34b3e63,40 -34b3e64,26 -34b3e65,f7 -34b3e66,64 -34b3e67,1c -34b3e68,3c -34b3e69,14 -34b3e6a,80 -34b3e6b,40 -34b3e6d,12 -34b3e6e,10 -34b3e6f,40 -34b3e71,52 -34b3e72,10 -34b3e73,21 -34b3e75,2 -34b3e76,10 -34b3e77,80 -34b3e79,53 -34b3e7a,10 -34b3e7b,21 -34b3e7c,90 -34b3e7d,42 -34b3e7f,1 -34b3e80,30 -34b3e81,42 -34b3e83,20 -34b3e84,50 -34b3e85,40 -34b3e87,15 -34b3e88,26 -34b3e89,52 -34b3e8b,1 -34b3e8c,36 -34b3e8d,c2 -34b3e8e,a5 -34b3e8f,d0 -34b3e90,8c -34b3e91,42 -34b3e93,a4 -34b3e94,3c -34b3e95,3 -34b3e97,40 -34b3e99,43 -34b3e9a,10 -34b3e9b,24 -34b3e9c,50 -34b3e9d,40 -34b3e9f,f -34b3ea0,26 -34b3ea1,52 -34b3ea3,1 -34b3ea4,24 -34b3ea5,2 -34b3ea7,10 -34b3ea8,af -34b3ea9,a2 -34b3eab,18 -34b3eac,af -34b3ead,a2 -34b3eaf,14 -34b3eb1,12 -34b3eb2,10 -34b3eb3,c0 -34b3eb5,52 -34b3eb6,10 -34b3eb7,21 -34b3eb9,2 -34b3eba,10 -34b3ebb,40 -34b3ebc,24 -34b3ebd,42 -34b3ebf,4 -34b3ec0,af -34b3ec1,a2 -34b3ec3,10 -34b3ec4,3 -34b3ec5,c0 -34b3ec6,38 -34b3ec7,25 -34b3eca,30 -34b3ecb,25 -34b3ecc,2 -34b3ecd,e0 -34b3ece,28 -34b3ecf,25 -34b3ed0,c -34b3ed1,10 -34b3ed2,14 -34b3ed3,b1 -34b3ed4,2 -34b3ed6,20 -34b3ed7,25 -34b3ed8,26 -34b3ed9,52 -34b3edb,1 -34b3edc,8e -34b3edd,82 -34b3ede,65 -34b3edf,10 -34b3ee0,2 -34b3ee1,42 -34b3ee2,10 -34b3ee3,2a -34b3ee4,14 -34b3ee5,40 -34b3ee6,ff -34b3ee7,e2 -34b3ee9,12 -34b3eea,10 -34b3eeb,40 -34b3eec,26 -34b3eed,3e -34b3eef,24 -34b3ef0,24 -34b3ef1,7 -34b3ef3,1 -34b3ef4,24 -34b3ef5,6 -34b3ef7,10 -34b3ef8,3c -34b3ef9,5 -34b3efa,80 -34b3efb,40 -34b3efc,24 -34b3efd,a5 -34b3efe,64 -34b3eff,1c -34b3f00,c -34b3f01,10 -34b3f02,14 -34b3f03,1c -34b3f04,2 -34b3f06,20 -34b3f07,25 -34b3f08,3c -34b3f09,2 -34b3f0a,80 -34b3f0b,40 -34b3f0c,8c -34b3f0d,42 -34b3f0e,65 -34b3f0f,10 -34b3f10,18 -34b3f11,40 -34b3f13,2b -34b3f14,3c -34b3f15,13 -34b3f16,80 -34b3f17,40 -34b3f18,26 -34b3f19,73 -34b3f1a,64 -34b3f1b,70 -34b3f1e,90 -34b3f1f,25 -34b3f20,2 -34b3f21,60 -34b3f22,a0 -34b3f23,25 -34b3f24,3c -34b3f25,17 -34b3f26,80 -34b3f27,11 -34b3f28,3c -34b3f29,2 -34b3f2a,80 -34b3f2b,40 -34b3f2c,24 -34b3f2d,42 -34b3f2e,64 -34b3f2f,1c -34b3f30,af -34b3f31,a2 -34b3f33,38 -34b3f34,3c -34b3f35,16 -34b3f36,80 -34b3f37,40 -34b3f39,12 -34b3f3a,10 -34b3f3b,40 -34b3f3d,52 -34b3f3e,10 -34b3f3f,21 -34b3f41,2 -34b3f42,10 -34b3f43,80 -34b3f45,54 -34b3f46,10 -34b3f47,21 -34b3f48,90 -34b3f49,42 -34b3f4b,1 -34b3f4c,30 -34b3f4d,42 -34b3f4f,10 -34b3f50,50 -34b3f51,40 -34b3f53,17 -34b3f54,26 -34b3f55,52 -34b3f57,1 -34b3f58,36 -34b3f59,e2 -34b3f5a,a5 -34b3f5b,d0 -34b3f5c,92 -34b3f5d,63 -34b3f61,43 -34b3f62,10 -34b3f63,21 -34b3f64,90 -34b3f65,42 -34b3f67,a8 -34b3f69,2 -34b3f6a,10 -34b3f6b,82 -34b3f6c,30 -34b3f6d,42 -34b3f6f,1 -34b3f70,50 -34b3f71,40 -34b3f73,f -34b3f74,26 -34b3f75,52 -34b3f77,1 -34b3f78,24 -34b3f79,2 -34b3f7b,10 -34b3f7c,af -34b3f7d,a2 -34b3f7f,18 -34b3f80,af -34b3f81,a2 -34b3f83,14 -34b3f85,12 -34b3f86,10 -34b3f87,c0 -34b3f89,52 -34b3f8a,10 -34b3f8b,21 -34b3f8d,2 -34b3f8e,10 -34b3f8f,40 -34b3f90,24 -34b3f91,42 -34b3f93,4 -34b3f94,af -34b3f95,a2 -34b3f97,10 -34b3f98,3 -34b3f99,c0 -34b3f9a,38 -34b3f9b,25 -34b3f9e,30 -34b3f9f,25 -34b3fa0,8f -34b3fa1,a5 -34b3fa3,38 -34b3fa4,c -34b3fa5,10 -34b3fa6,14 -34b3fa7,b1 -34b3fa8,2 -34b3faa,20 -34b3fab,25 -34b3fac,26 -34b3fad,52 -34b3faf,1 -34b3fb0,8e -34b3fb1,c2 -34b3fb2,65 -34b3fb3,10 -34b3fb4,2 -34b3fb5,42 -34b3fb6,10 -34b3fb7,2a -34b3fb8,14 -34b3fb9,40 -34b3fba,ff -34b3fbb,df -34b3fbc,26 -34b3fbd,73 -34b3fbf,c -34b3fc0,26 -34b3fc1,3e -34b3fc3,36 -34b3fc4,24 -34b3fc5,7 -34b3fc7,1 -34b3fc8,24 -34b3fc9,6 -34b3fcb,f -34b3fcc,3c -34b3fcd,5 -34b3fce,80 -34b3fcf,40 -34b3fd0,24 -34b3fd1,a5 -34b3fd2,64 -34b3fd3,1c -34b3fd4,c -34b3fd5,10 -34b3fd6,14 -34b3fd7,1c -34b3fd8,2 -34b3fda,20 -34b3fdb,25 -34b3fdc,3c -34b3fdd,2 -34b3fde,80 -34b3fdf,40 -34b3fe0,8c -34b3fe1,42 -34b3fe2,65 -34b3fe3,10 -34b3fe4,18 -34b3fe5,40 -34b3fe7,61 -34b3fe8,3c -34b3fe9,13 -34b3fea,80 -34b3feb,40 -34b3fec,26 -34b3fed,73 -34b3fee,64 -34b3fef,70 -34b3ff2,90 -34b3ff3,25 -34b3ff4,2 -34b3ff5,60 -34b3ff6,a0 -34b3ff7,25 -34b3ff8,3c -34b3ff9,17 -34b3ffa,80 -34b3ffb,11 -34b3ffc,3c -34b3ffd,2 -34b3ffe,80 -34b3fff,40 -34b4000,24 -34b4001,42 -34b4002,64 -34b4003,1c -34b4004,af -34b4005,a2 -34b4007,38 -34b4008,3c -34b4009,16 -34b400a,80 -34b400b,40 -34b400d,12 -34b400e,10 -34b400f,40 -34b4011,52 -34b4012,10 -34b4013,21 -34b4015,2 -34b4016,10 -34b4017,80 -34b4019,54 -34b401a,10 -34b401b,21 -34b401c,90 -34b401d,42 -34b401f,1 -34b4020,30 -34b4021,42 -34b4023,10 -34b4024,50 -34b4025,40 -34b4027,17 -34b4028,26 -34b4029,52 -34b402b,1 -34b402c,36 -34b402d,e2 -34b402e,a5 -34b402f,d0 -34b4030,92 -34b4031,63 -34b4035,43 -34b4036,10 -34b4037,21 -34b4038,90 -34b4039,42 -34b403b,a8 -34b403d,2 -34b403e,10 -34b403f,42 -34b4040,30 -34b4041,42 -34b4043,1 -34b4044,50 -34b4045,40 -34b4047,f -34b4048,26 -34b4049,52 -34b404b,1 -34b404c,24 -34b404d,2 -34b404f,10 -34b4050,af -34b4051,a2 -34b4053,18 -34b4054,af -34b4055,a2 -34b4057,14 -34b4059,12 -34b405a,10 -34b405b,c0 -34b405d,52 -34b405e,10 -34b405f,21 -34b4061,2 -34b4062,10 -34b4063,40 -34b4064,24 -34b4065,42 -34b4067,4 -34b4068,af -34b4069,a2 -34b406b,10 -34b406c,3 -34b406d,c0 -34b406e,38 -34b406f,25 -34b4072,30 -34b4073,25 -34b4074,8f -34b4075,a5 -34b4077,38 -34b4078,c -34b4079,10 -34b407a,14 -34b407b,b1 -34b407c,2 -34b407e,20 -34b407f,25 -34b4080,26 -34b4081,52 -34b4083,1 -34b4084,8e -34b4085,c2 -34b4086,65 -34b4087,10 -34b4088,2 -34b4089,42 -34b408a,10 -34b408b,2a -34b408c,14 -34b408d,40 -34b408e,ff -34b408f,df -34b4090,26 -34b4091,73 -34b4093,c -34b4094,12 -34b4095,a0 -34b4097,35 -34b4098,3c -34b4099,2 -34b409a,80 -34b409b,40 -34b409c,8c -34b409d,42 -34b409e,65 -34b409f,10 -34b40a0,18 -34b40a1,40 -34b40a3,32 -34b40a4,3c -34b40a5,13 -34b40a6,80 -34b40a7,40 -34b40a8,26 -34b40a9,73 -34b40aa,64 -34b40ab,70 -34b40ac,24 -34b40ad,14 -34b40af,5 -34b40b2,90 -34b40b3,25 -34b40b4,3c -34b40b5,17 -34b40b6,80 -34b40b7,40 -34b40b8,3c -34b40b9,16 -34b40ba,80 -34b40bb,40 -34b40bc,26 -34b40bd,d6 -34b40be,65 -34b40bf,40 -34b40c0,3c -34b40c1,15 -34b40c2,80 -34b40c3,40 -34b40c4,26 -34b40c5,b5 -34b40c6,64 -34b40c8,3c -34b40c9,2 -34b40ca,80 -34b40cb,40 -34b40cc,24 -34b40cd,42 -34b40ce,64 -34b40cf,4 -34b40d0,af -34b40d1,a2 -34b40d3,38 -34b40d4,3c -34b40d5,1e -34b40d6,80 -34b40d7,40 -34b40d8,8e -34b40d9,e2 -34b40da,65 -34b40db,20 -34b40dc,50 -34b40dd,40 -34b40df,14 -34b40e0,92 -34b40e1,62 -34b40e5,12 -34b40e6,10 -34b40e7,40 -34b40e9,52 -34b40ea,10 -34b40eb,21 -34b40ed,2 -34b40ee,10 -34b40ef,80 -34b40f0,27 -34b40f1,c3 -34b40f2,64 -34b40f3,70 -34b40f5,43 -34b40f6,10 -34b40f7,21 -34b40f8,90 -34b40f9,42 -34b40fb,1 -34b40fc,30 -34b40fd,42 -34b40ff,10 -34b4100,50 -34b4101,40 -34b4103,b -34b4104,92 -34b4105,62 -34b4108,92 -34b4109,63 -34b410c,3c -34b410d,2 -34b410e,80 -34b410f,11 -34b4110,34 -34b4111,42 -34b4112,a5 -34b4113,d0 -34b4115,43 -34b4116,10 -34b4117,21 -34b4118,90 -34b4119,42 -34b411b,a8 -34b411d,2 -34b411e,10 -34b411f,82 -34b4120,30 -34b4121,42 -34b4123,1 -34b4124,50 -34b4125,40 -34b4127,b -34b4128,26 -34b4129,52 -34b412b,1 -34b412c,92 -34b412d,62 -34b4131,56 -34b4132,10 -34b4133,21 -34b4134,90 -34b4135,42 -34b4138,14 -34b4139,40 -34b413b,2 -34b413c,2 -34b413d,a0 -34b413e,20 -34b413f,25 -34b4140,8f -34b4141,a4 -34b4143,38 -34b4144,2 -34b4145,80 -34b4146,30 -34b4147,25 -34b4148,c -34b4149,10 -34b414a,18 -34b414b,84 -34b414c,26 -34b414d,25 -34b414f,48 -34b4150,26 -34b4151,52 -34b4153,1 -34b4154,26 -34b4155,94 -34b4157,12 -34b4158,3c -34b4159,2 -34b415a,80 -34b415b,40 -34b415c,8c -34b415d,42 -34b415e,65 -34b415f,10 -34b4160,2 -34b4161,42 -34b4162,10 -34b4163,2a -34b4164,14 -34b4165,40 -34b4166,ff -34b4167,dc -34b4168,26 -34b4169,73 -34b416b,c -34b416c,c -34b416d,10 -34b416e,18 -34b416f,ae -34b4170,2 -34b4172,20 -34b4173,25 -34b4174,8e -34b4175,2 -34b4177,8 -34b4178,24 -34b4179,43 -34b417b,8 -34b417c,ae -34b417d,3 -34b417f,8 -34b4180,3c -34b4181,3 -34b4182,e9 -34b4184,ac -34b4185,43 -34b4188,ac -34b4189,40 -34b418b,4 -34b418c,8e -34b418d,2 -34b418f,8 -34b4190,24 -34b4191,43 -34b4193,8 -34b4194,ae -34b4195,3 -34b4197,8 -34b4198,3c -34b4199,3 -34b419a,df -34b419c,ac -34b419d,43 -34b41a0,ac -34b41a1,40 -34b41a3,4 -34b41a4,8f -34b41a5,bf -34b41a7,6c -34b41a8,8f -34b41a9,be -34b41ab,68 -34b41ac,8f -34b41ad,b7 -34b41af,64 -34b41b0,8f -34b41b1,b6 -34b41b3,60 -34b41b4,8f -34b41b5,b5 -34b41b7,5c -34b41b8,8f -34b41b9,b4 -34b41bb,58 -34b41bc,8f -34b41bd,b3 -34b41bf,54 -34b41c0,8f -34b41c1,b2 -34b41c3,50 -34b41c4,8f -34b41c5,b1 -34b41c7,4c -34b41c8,8f -34b41c9,b0 -34b41cb,48 -34b41cc,3 -34b41cd,e0 -34b41cf,8 -34b41d0,27 -34b41d1,bd -34b41d3,70 -34b41d4,10 -34b41d6,fe -34b41d7,a5 -34b41d8,26 -34b41d9,31 -34b41db,14 -34b41dc,3 -34b41dd,e0 -34b41df,8 -34b41e4,27 -34b41e5,bd -34b41e6,ff -34b41e7,e8 -34b41e8,af -34b41e9,bf -34b41eb,14 -34b41ec,c -34b41ed,10 -34b41ee,15 -34b41ef,bb -34b41f0,24 -34b41f1,4 -34b41f2,4 -34b41f4,3c -34b41f5,3 -34b41f6,80 -34b41f7,40 -34b41f8,ac -34b41f9,62 -34b41fa,65 -34b41fb,2c -34b41fc,3c -34b41fd,3 -34b41fe,80 -34b41ff,40 -34b4200,ac -34b4201,62 -34b4202,65 -34b4203,28 -34b4204,8f -34b4205,bf -34b4207,14 -34b4208,3 -34b4209,e0 -34b420b,8 -34b420c,27 -34b420d,bd -34b420f,18 -34b4210,80 -34b4211,82 -34b4214,10 -34b4215,40 -34b4217,26 -34b4218,24 -34b4219,87 -34b421b,1 -34b421c,3c -34b421d,3 -34b421e,80 -34b421f,40 -34b4220,8c -34b4221,68 -34b4222,65 -34b4223,2c -34b4224,25 -34b4225,8 -34b4226,4 -34b4228,3c -34b4229,3 -34b422a,80 -34b422b,40 -34b422c,8c -34b422d,63 -34b422e,65 -34b422f,28 -34b4231,68 -34b4232,20 -34b4233,2b -34b4234,10 -34b4235,80 -34b4237,1e -34b4238,3c -34b4239,a -34b423a,ff -34b423c,25 -34b423d,4a -34b423e,f -34b423f,ff -34b4240,30 -34b4241,c6 -34b4242,f -34b4243,ff -34b4244,24 -34b4245,b -34b4246,f0 -34b4248,3c -34b4249,9 -34b424a,80 -34b424b,40 -34b424c,10 -34b424f,7 -34b4250,25 -34b4251,29 -34b4252,64 -34b4253,c -34b4255,68 -34b4256,20 -34b4257,2b -34b4258,54 -34b4259,80 -34b425b,5 -34b425c,a0 -34b425d,62 -34b4260,3c -34b4261,2 -34b4262,80 -34b4263,40 -34b4264,3 -34b4265,e0 -34b4267,8 -34b4268,ac -34b4269,43 -34b426a,65 -34b426b,28 -34b426c,a0 -34b426d,62 -34b4270,30 -34b4271,a2 -34b4272,f -34b4273,ff -34b4275,2 -34b4276,23 -34b4278,8c -34b4279,62 -34b427d,4a -34b427e,10 -34b427f,24 -34b4281,44 -34b4282,10 -34b4283,25 -34b4285,4b -34b4286,10 -34b4287,24 -34b4289,46 -34b428a,10 -34b428b,25 -34b428c,ac -34b428d,62 -34b4290,95 -34b4291,22 -34b4293,4 -34b4295,a2 -34b4296,28 -34b4297,21 -34b4298,24 -34b4299,e7 -34b429b,1 -34b429c,80 -34b429d,e2 -34b429e,ff -34b429f,ff -34b42a0,14 -34b42a1,40 -34b42a2,ff -34b42a3,ec -34b42a4,24 -34b42a5,63 -34b42a7,4 -34b42a8,3c -34b42a9,2 -34b42aa,80 -34b42ab,40 -34b42ac,ac -34b42ad,43 -34b42ae,65 -34b42af,28 -34b42b0,3 -34b42b1,e0 -34b42b3,8 -34b42b8,27 -34b42b9,bd -34b42ba,ff -34b42bb,b0 -34b42bc,af -34b42bd,bf -34b42bf,4c -34b42c0,af -34b42c1,be -34b42c3,48 -34b42c4,af -34b42c5,b7 -34b42c7,44 -34b42c8,af -34b42c9,b6 -34b42cb,40 -34b42cc,af -34b42cd,b5 -34b42cf,3c -34b42d0,af -34b42d1,b4 -34b42d3,38 -34b42d4,af -34b42d5,b3 -34b42d7,34 -34b42d8,af -34b42d9,b2 -34b42db,30 -34b42dc,af -34b42dd,b1 -34b42df,2c -34b42e0,af -34b42e1,b0 -34b42e3,28 -34b42e5,80 -34b42e6,a8 -34b42e7,25 -34b42ea,b0 -34b42eb,25 -34b42ee,90 -34b42ef,25 -34b42f0,3c -34b42f1,14 -34b42f2,80 -34b42f3,40 -34b42f4,26 -34b42f5,94 -34b42f6,64 -34b42f7,c -34b42f8,3c -34b42f9,1e -34b42fa,80 -34b42fb,40 -34b42fc,3c -34b42fd,13 -34b42fe,80 -34b42ff,40 -34b4300,3c -34b4301,17 -34b4302,38 -34b4303,e3 -34b4304,af -34b4305,b4 -34b4307,20 -34b4308,24 -34b4309,7 -34b430b,12 -34b430c,2 -34b430d,c0 -34b430e,30 -34b430f,25 -34b4310,2 -34b4311,80 -34b4312,28 -34b4313,25 -34b4314,c -34b4315,10 -34b4316,14 -34b4317,1c -34b4318,2 -34b4319,a0 -34b431a,20 -34b431b,25 -34b431c,8f -34b431d,c5 -34b431e,65 -34b431f,2c -34b4320,10 -34b4323,1f -34b4324,36 -34b4325,f1 -34b4326,8e -34b4327,39 -34b4328,24 -34b4329,42 -34b432a,ff -34b432b,e0 -34b432d,51 -34b432f,18 -34b4332,18 -34b4333,10 -34b4335,3 -34b4336,18 -34b4337,83 -34b4339,2 -34b433a,27 -34b433b,c3 -34b433d,64 -34b433e,18 -34b433f,23 -34b4340,14 -34b4341,72 -34b4343,16 -34b4344,24 -34b4345,b0 -34b4347,4 -34b4348,8c -34b4349,a7 -34b434d,7 -34b434e,3b -34b434f,2 -34b4351,51 -34b4353,18 -34b4356,30 -34b4357,10 -34b4359,6 -34b435a,30 -34b435b,83 -34b435d,c4 -34b435e,30 -34b435f,23 -34b4361,6 -34b4362,18 -34b4363,c0 -34b4365,66 -34b4366,30 -34b4367,21 -34b4369,6 -34b436a,30 -34b436b,40 -34b436c,96 -34b436d,83 -34b436f,6 -34b4370,af -34b4371,a3 -34b4373,18 -34b4374,96 -34b4375,83 -34b4377,4 -34b4378,af -34b4379,a3 -34b437b,14 -34b437c,8c -34b437d,a3 -34b4380,30 -34b4381,63 -34b4382,f -34b4383,ff -34b4384,af -34b4385,a3 -34b4387,10 -34b4388,30 -34b4389,e7 -34b438a,f -34b438b,ff -34b438d,46 -34b438e,30 -34b438f,23 -34b4390,8f -34b4391,a5 -34b4393,20 -34b4394,c -34b4395,10 -34b4396,14 -34b4397,b1 -34b4398,2 -34b4399,a0 -34b439a,20 -34b439b,25 -34b439c,2 -34b439e,28 -34b439f,25 -34b43a0,8e -34b43a1,62 -34b43a2,65 -34b43a3,28 -34b43a5,a2 -34b43a6,10 -34b43a7,2b -34b43a8,54 -34b43a9,40 -34b43aa,ff -34b43ab,df -34b43ac,80 -34b43ad,a2 -34b43b0,26 -34b43b1,52 -34b43b3,1 -34b43b4,24 -34b43b5,2 -34b43b7,6 -34b43b8,16 -34b43b9,42 -34b43ba,ff -34b43bb,d3 -34b43bc,26 -34b43bd,d6 -34b43bf,12 -34b43c0,3c -34b43c1,2 -34b43c2,80 -34b43c3,40 -34b43c4,8c -34b43c5,43 -34b43c6,65 -34b43c7,2c -34b43c8,3c -34b43c9,2 -34b43ca,80 -34b43cb,40 -34b43cc,ac -34b43cd,43 -34b43ce,65 -34b43cf,28 -34b43d0,8f -34b43d1,bf -34b43d3,4c -34b43d4,8f -34b43d5,be -34b43d7,48 -34b43d8,8f -34b43d9,b7 -34b43db,44 -34b43dc,8f -34b43dd,b6 -34b43df,40 -34b43e0,8f -34b43e1,b5 -34b43e3,3c -34b43e4,8f -34b43e5,b4 -34b43e7,38 -34b43e8,8f -34b43e9,b3 -34b43eb,34 -34b43ec,8f -34b43ed,b2 -34b43ef,30 -34b43f0,8f -34b43f1,b1 -34b43f3,2c -34b43f4,8f -34b43f5,b0 -34b43f7,28 -34b43f8,3 -34b43f9,e0 -34b43fb,8 -34b43fc,27 -34b43fd,bd -34b43ff,50 -34b4400,4d -34b4401,51 -34b4404,4e -34b4405,6f -34b4406,72 -34b4407,6d -34b4408,61 -34b4409,6c -34b4411,8 -34b4413,e -34b4415,5f -34b4416,3 -34b4417,1 -34b4418,1 -34b4421,18 -34b4423,18 -34b4425,12 -34b4427,3 -34b4428,4 -34b4431,10 -34b4433,10 -34b4435,6 -34b4436,3 -34b4437,1 -34b4438,1 -34b4441,10 -34b4443,10 -34b4445,3 -34b4447,3 -34b4448,4 -34b444d,1 -34b444e,2 -34b444f,3 -34b4450,4 -34b4451,5 -34b4452,6 -34b4453,7 -34b4454,ff -34b4455,ff -34b4456,ff -34b4457,ff -34b4458,ff -34b4459,ff -34b445d,ff -34b445f,ff -34b4460,3c -34b4463,64 -34b4464,ff -34b4465,ff -34b4466,82 -34b4468,c8 -34b4469,32 -34b446a,ff -34b446b,c8 -34b446c,c8 -34b4471,10 -34b4472,44 -34b4473,65 -34b4474,6b -34b4475,75 -34b447c,1 -34b447d,10 -34b447e,44 -34b447f,6f -34b4480,64 -34b4481,6f -34b4482,6e -34b4483,67 -34b4484,6f -34b4488,2 -34b4489,10 -34b448a,4a -34b448b,61 -34b448c,62 -34b448d,75 -34b4494,3 -34b4495,d0 -34b4496,46 -34b4497,6f -34b4498,72 -34b4499,65 -34b449a,73 -34b449b,74 -34b44a0,4 -34b44a1,d0 -34b44a2,46 -34b44a3,69 -34b44a4,72 -34b44a5,65 -34b44ac,5 -34b44ad,d0 -34b44ae,57 -34b44af,61 -34b44b0,74 -34b44b1,65 -34b44b2,72 -34b44b8,7 -34b44b9,d0 -34b44ba,53 -34b44bb,68 -34b44bc,61 -34b44bd,64 -34b44be,6f -34b44bf,77 -34b44c4,6 -34b44c5,d0 -34b44c6,53 -34b44c7,70 -34b44c8,69 -34b44c9,72 -34b44ca,69 -34b44cb,74 -34b44d0,8 -34b44d1,90 -34b44d2,42 -34b44d3,6f -34b44d4,74 -34b44d5,57 -34b44dc,9 -34b44dd,10 -34b44de,49 -34b44df,63 -34b44e0,65 -34b44e8,c -34b44e9,a0 -34b44ea,47 -34b44eb,65 -34b44ec,72 -34b44ed,75 -34b44ee,64 -34b44ef,6f -34b44f4,b -34b44f5,80 -34b44f6,47 -34b44f7,54 -34b44f8,47 -34b4500,d -34b4501,c0 -34b4502,47 -34b4503,61 -34b4504,6e -34b4505,6f -34b4506,6e -34b450f,1 -34b4513,d -34b458f,d -34b4590,b0 -34b4593,d -34b4594,b0 -34b4597,d -34b4598,b0 -34b459b,c -34b459c,b0 -34b459f,c -34b45a0,b0 -34b45a3,c -34b45a4,a0 -34b45ab,d -34b45ac,b0 -34b45af,d -34b45b0,b0 -34b45c7,e8 -34b45c8,ac -34b45cb,e8 -34b45cc,ac -34b45cf,e8 -34b45d0,ac -34b45d3,e8 -34b45d4,ac -34b45fb,d -34b45fc,77 -34b45fd,d0 -34b45ff,2e -34b4600,3a -34b4601,b0 -34b4603,7d -34b4604,c -34b4605,90 -34b4606,8f -34b4607,ff -34b4608,ff -34b4609,fd -34b460b,c9 -34b460c,6e -34b460e,2 -34b460f,e4 -34b4610,ac -34b4612,ef -34b4613,ff -34b4614,ff -34b4615,f4 -34b4616,a -34b4617,b0 -34b4618,e5 -34b461a,c -34b461b,95 -34b461c,e0 -34b461e,e -34b461f,59 -34b4620,c0 -34b4637,7 -34b4638,90 -34b463a,5 -34b463b,ce -34b463c,eb -34b463d,40 -34b463e,c -34b463f,c8 -34b4640,a9 -34b4641,90 -34b4642,d -34b4643,a7 -34b4644,90 -34b4646,8 -34b4647,ec -34b4648,b4 -34b464b,4a -34b464c,dd -34b464d,a0 -34b464f,7 -34b4650,97 -34b4651,e2 -34b4652,c -34b4653,88 -34b4654,aa -34b4655,e0 -34b4656,6 -34b4657,ce -34b4658,ed -34b4659,70 -34b465b,7 -34b465c,90 -34b465f,7 -34b4660,90 -34b466e,6d -34b466f,ea -34b4672,c9 -34b4673,4d -34b4674,60 -34b4676,c9 -34b4677,4d -34b4678,60 -34b4679,33 -34b467a,6d -34b467b,eb -34b467c,6b -34b467d,c6 -34b467f,8c -34b4680,b6 -34b4682,7c -34b4683,a4 -34b4684,ce -34b4685,c4 -34b4686,31 -34b4687,9 -34b4688,c3 -34b4689,bb -34b468b,9 -34b468c,c3 -34b468d,bb -34b468f,2 -34b4690,ce -34b4691,d4 -34b46a6,4 -34b46a7,ce -34b46a8,fb -34b46aa,a -34b46ab,d5 -34b46ae,8 -34b46af,e3 -34b46b2,9 -34b46b3,ec -34b46b6,7e -34b46b7,4d -34b46b8,b0 -34b46b9,ab -34b46ba,bb -34b46bb,5 -34b46bc,e8 -34b46bd,aa -34b46be,bc -34b46c0,8e -34b46c1,d6 -34b46c2,7e -34b46c3,93 -34b46c4,6e -34b46c5,d0 -34b46c6,8 -34b46c7,de -34b46c8,d9 -34b46c9,ea -34b46df,c -34b46e0,a0 -34b46e3,c -34b46e4,a0 -34b46e7,c -34b46e8,a0 -34b46eb,c -34b46ec,a0 -34b4710,c9 -34b4713,7 -34b4714,e2 -34b4717,c -34b4718,b0 -34b471b,e -34b471c,80 -34b471f,6f -34b4720,30 -34b4723,8e -34b4727,8e -34b472b,6f -34b472c,40 -34b472f,e -34b4730,80 -34b4733,c -34b4734,b0 -34b4737,7 -34b4738,e2 -34b473c,c9 -34b4747,bb -34b474b,5e -34b474c,40 -34b474f,c -34b4750,a0 -34b4753,a -34b4754,d0 -34b4757,7 -34b4758,e1 -34b475b,6 -34b475c,f4 -34b475f,6 -34b4760,f4 -34b4763,7 -34b4764,e1 -34b4767,a -34b4768,d0 -34b476b,c -34b476c,a0 -34b476f,5e -34b4770,40 -34b4773,bb -34b4787,a -34b4788,80 -34b478a,c -34b478b,8a -34b478c,8a -34b478d,b0 -34b478e,3 -34b478f,be -34b4790,da -34b4791,10 -34b4792,3 -34b4793,be -34b4794,da -34b4795,10 -34b4796,c -34b4797,8a -34b4798,8a -34b4799,b0 -34b479b,a -34b479c,80 -34b47c3,c -34b47c4,a0 -34b47c7,c -34b47c8,a0 -34b47cb,c -34b47cc,a0 -34b47ce,af -34b47cf,ff -34b47d0,ff -34b47d1,f8 -34b47d3,c -34b47d4,a0 -34b47d7,c -34b47d8,a0 -34b47db,c -34b47dc,a0 -34b4813,d -34b4814,d0 -34b4817,e -34b4818,c0 -34b481b,4f -34b481c,80 -34b481f,9d -34b4843,df -34b4844,fb -34b4883,e -34b4884,c0 -34b4887,e -34b4888,c0 -34b48a0,b -34b48a1,c0 -34b48a4,4e -34b48a5,60 -34b48a8,bc -34b48ab,3 -34b48ac,e8 -34b48af,a -34b48b0,d0 -34b48b3,1e -34b48b4,90 -34b48b7,9e -34b48b8,20 -34b48bb,da -34b48be,7 -34b48bf,e3 -34b48c2,c -34b48c3,b0 -34b48c6,6e -34b48c7,50 -34b48d6,3 -34b48d7,ce -34b48d8,eb -34b48da,b -34b48db,d5 -34b48dc,7e -34b48dd,90 -34b48de,e -34b48df,90 -34b48e0,b -34b48e1,d0 -34b48e2,5f -34b48e3,70 -34b48e4,9 -34b48e5,e0 -34b48e6,6f -34b48e7,6c -34b48e8,b9 -34b48e9,e0 -34b48ea,5f -34b48eb,70 -34b48ec,9 -34b48ed,e0 -34b48ee,e -34b48ef,90 -34b48f0,b -34b48f1,d0 -34b48f2,b -34b48f3,d5 -34b48f4,7e -34b48f5,90 -34b48f6,3 -34b48f7,ce -34b48f8,eb -34b490e,a -34b490f,ff -34b4910,e0 -34b4913,8 -34b4914,e0 -34b4917,8 -34b4918,e0 -34b491b,8 -34b491c,e0 -34b491f,8 -34b4920,e0 -34b4923,8 -34b4924,e0 -34b4927,8 -34b4928,e0 -34b492b,8 -34b492c,e0 -34b492e,8 -34b492f,ff -34b4930,ff -34b4931,e0 -34b4946,8 -34b4947,de -34b4948,ea -34b494a,c -34b494b,83 -34b494c,7e -34b494d,90 -34b4950,c -34b4951,c0 -34b4954,2e -34b4955,a0 -34b4958,bd -34b4959,20 -34b495b,b -34b495c,d4 -34b495f,bd -34b4960,40 -34b4962,b -34b4963,d4 -34b4966,2f -34b4967,ff -34b4968,ff -34b4969,d0 -34b497e,7 -34b497f,ce -34b4980,ea -34b4982,c -34b4983,83 -34b4984,7e -34b4985,90 -34b4988,c -34b4989,b0 -34b498b,2 -34b498c,7e -34b498d,90 -34b498f,bf -34b4990,fb -34b4993,2 -34b4994,7d -34b4995,a0 -34b4998,a -34b4999,d0 -34b499a,5c -34b499b,62 -34b499c,7d -34b499d,b0 -34b499e,9 -34b499f,de -34b49a0,eb -34b49a1,30 -34b49b7,2 -34b49b8,de -34b49bb,b -34b49bc,de -34b49bf,7d -34b49c0,9e -34b49c2,2 -34b49c3,d7 -34b49c4,9e -34b49c6,b -34b49c7,b0 -34b49c8,9e -34b49ca,6e -34b49cb,40 -34b49cc,9e -34b49ce,9f -34b49cf,ff -34b49d0,ff -34b49d1,f7 -34b49d4,9e -34b49d8,9e -34b49ee,c -34b49ef,ff -34b49f0,ff -34b49f1,50 -34b49f2,c -34b49f3,a0 -34b49f6,c -34b49f7,a0 -34b49fa,c -34b49fb,ee -34b49fc,ea -34b49ff,3 -34b4a00,8e -34b4a01,90 -34b4a04,b -34b4a05,c0 -34b4a08,b -34b4a09,c0 -34b4a0a,5c -34b4a0b,63 -34b4a0c,8e -34b4a0d,90 -34b4a0e,9 -34b4a0f,de -34b4a10,da -34b4a27,ae -34b4a28,ec -34b4a29,30 -34b4a2a,a -34b4a2b,e8 -34b4a2c,39 -34b4a2d,80 -34b4a2e,e -34b4a2f,90 -34b4a32,4f -34b4a33,ae -34b4a34,ec -34b4a35,40 -34b4a36,6f -34b4a37,d5 -34b4a38,5d -34b4a39,c0 -34b4a3a,5f -34b4a3b,90 -34b4a3c,9 -34b4a3d,e0 -34b4a3e,e -34b4a3f,90 -34b4a40,9 -34b4a41,e0 -34b4a42,c -34b4a43,d5 -34b4a44,5d -34b4a45,c0 -34b4a46,3 -34b4a47,ce -34b4a48,ec -34b4a49,40 -34b4a5e,5f -34b4a5f,ff -34b4a60,ff -34b4a61,d0 -34b4a64,d -34b4a65,a0 -34b4a68,7e -34b4a69,40 -34b4a6c,cc -34b4a6f,4 -34b4a70,e8 -34b4a73,a -34b4a74,d0 -34b4a77,d -34b4a78,a0 -34b4a7b,8e -34b4a7c,40 -34b4a7f,cc -34b4a96,5 -34b4a97,ce -34b4a98,ec -34b4a99,30 -34b4a9a,d -34b4a9b,c4 -34b4a9c,5d -34b4a9d,b0 -34b4a9e,e -34b4a9f,90 -34b4aa0,b -34b4aa1,d0 -34b4aa2,b -34b4aa3,c4 -34b4aa4,5d -34b4aa5,90 -34b4aa6,4 -34b4aa7,df -34b4aa8,fc -34b4aa9,20 -34b4aaa,1d -34b4aab,b4 -34b4aac,5c -34b4aad,c0 -34b4aae,5f -34b4aaf,60 -34b4ab0,9 -34b4ab1,e0 -34b4ab2,2e -34b4ab3,b3 -34b4ab4,5c -34b4ab5,d0 -34b4ab6,7 -34b4ab7,de -34b4ab8,ec -34b4ab9,50 -34b4ace,6 -34b4acf,de -34b4ad0,eb -34b4ad2,d -34b4ad3,b3 -34b4ad4,7e -34b4ad5,90 -34b4ad6,5f -34b4ad7,50 -34b4ad8,b -34b4ad9,d0 -34b4ada,5f -34b4adb,50 -34b4adc,b -34b4add,e0 -34b4ade,d -34b4adf,b3 -34b4ae0,7e -34b4ae1,e0 -34b4ae2,6 -34b4ae3,de -34b4ae4,db -34b4ae5,e0 -34b4ae8,b -34b4ae9,c0 -34b4aea,9 -34b4aeb,74 -34b4aec,9e -34b4aed,70 -34b4aee,5 -34b4aef,de -34b4af0,d8 -34b4b0f,e -34b4b10,c0 -34b4b13,e -34b4b14,c0 -34b4b23,e -34b4b24,c0 -34b4b27,e -34b4b28,c0 -34b4b47,e -34b4b48,c0 -34b4b4b,e -34b4b4c,c0 -34b4b5b,d -34b4b5c,d0 -34b4b5f,e -34b4b60,c0 -34b4b63,4f -34b4b64,80 -34b4b67,9d -34b4b80,29 -34b4b81,c8 -34b4b83,7b -34b4b84,ed -34b4b85,93 -34b4b86,8d -34b4b87,da -34b4b88,40 -34b4b8a,8d -34b4b8b,da -34b4b8c,40 -34b4b8f,7b -34b4b90,ec -34b4b91,93 -34b4b94,29 -34b4b95,c8 -34b4bba,af -34b4bbb,ff -34b4bbc,ff -34b4bbd,f8 -34b4bc6,af -34b4bc7,ff -34b4bc8,ff -34b4bc9,f8 -34b4bee,ac -34b4bef,81 -34b4bf2,4a -34b4bf3,de -34b4bf4,b6 -34b4bf7,6 -34b4bf8,ad -34b4bf9,d6 -34b4bfb,6 -34b4bfc,ad -34b4bfd,d6 -34b4bfe,4a -34b4bff,de -34b4c00,b6 -34b4c02,ac -34b4c03,81 -34b4c1e,4 -34b4c1f,be -34b4c20,ec -34b4c21,30 -34b4c22,9 -34b4c23,a4 -34b4c24,6e -34b4c25,a0 -34b4c28,1d -34b4c29,a0 -34b4c2b,2 -34b4c2c,cd -34b4c2d,30 -34b4c2f,c -34b4c30,c1 -34b4c33,e -34b4c34,90 -34b4c3b,e -34b4c3c,90 -34b4c3f,e -34b4c40,90 -34b4c56,1 -34b4c57,ae -34b4c58,ed -34b4c59,70 -34b4c5a,c -34b4c5b,d7 -34b4c5c,39 -34b4c5d,e4 -34b4c5e,7e -34b4c5f,20 -34b4c61,c9 -34b4c62,ba -34b4c63,a -34b4c64,ee -34b4c65,ca -34b4c66,d7 -34b4c67,6e -34b4c68,64 -34b4c69,da -34b4c6a,d6 -34b4c6b,9c -34b4c6d,aa -34b4c6e,d7 -34b4c6f,6e -34b4c70,64 -34b4c71,da -34b4c72,ba -34b4c73,a -34b4c74,ee -34b4c75,ca -34b4c76,6e -34b4c77,40 -34b4c7a,a -34b4c7b,d8 -34b4c7c,30 -34b4c7f,8d -34b4c80,ee -34b4c81,90 -34b4c8f,3e -34b4c90,d0 -34b4c93,9d -34b4c94,e6 -34b4c97,cb -34b4c98,cb -34b4c9a,3 -34b4c9b,e8 -34b4c9c,ad -34b4c9e,8 -34b4c9f,e2 -34b4ca0,6f -34b4ca1,60 -34b4ca2,c -34b4ca3,c0 -34b4ca4,e -34b4ca5,a0 -34b4ca6,2e -34b4ca7,ff -34b4ca8,ff -34b4ca9,d0 -34b4caa,8e -34b4cab,50 -34b4cac,8 -34b4cad,f5 -34b4cae,cd -34b4cb0,1 -34b4cb1,ea -34b4cc6,e -34b4cc7,ff -34b4cc8,ec -34b4cc9,40 -34b4cca,e -34b4ccb,90 -34b4ccc,5d -34b4ccd,c0 -34b4cce,e -34b4ccf,90 -34b4cd0,a -34b4cd1,e0 -34b4cd2,e -34b4cd3,90 -34b4cd4,5d -34b4cd5,c0 -34b4cd6,e -34b4cd7,ff -34b4cd8,fd -34b4cd9,50 -34b4cda,e -34b4cdb,90 -34b4cdc,4b -34b4cdd,d2 -34b4cde,e -34b4cdf,90 -34b4ce0,5 -34b4ce1,f6 -34b4ce2,e -34b4ce3,90 -34b4ce4,4b -34b4ce5,e3 -34b4ce6,e -34b4ce7,ff -34b4ce8,ed -34b4ce9,80 -34b4cff,9d -34b4d00,ed -34b4d01,80 -34b4d02,8 -34b4d03,e9 -34b4d04,36 -34b4d05,b0 -34b4d06,d -34b4d07,b0 -34b4d0a,3f -34b4d0b,90 -34b4d0e,5f -34b4d0f,70 -34b4d12,1e -34b4d13,90 -34b4d16,d -34b4d17,b0 -34b4d1a,8 -34b4d1b,e9 -34b4d1c,47 -34b4d1d,b0 -34b4d1f,9d -34b4d20,ed -34b4d21,80 -34b4d36,5f -34b4d37,fe -34b4d38,d8 -34b4d3a,5f -34b4d3b,65 -34b4d3c,ae -34b4d3d,80 -34b4d3e,5f -34b4d3f,60 -34b4d40,c -34b4d41,d0 -34b4d42,5f -34b4d43,60 -34b4d44,9 -34b4d45,e0 -34b4d46,5f -34b4d47,60 -34b4d48,9 -34b4d49,f0 -34b4d4a,5f -34b4d4b,60 -34b4d4c,9 -34b4d4d,e0 -34b4d4e,5f -34b4d4f,60 -34b4d50,c -34b4d51,d0 -34b4d52,5f -34b4d53,65 -34b4d54,ae -34b4d55,80 -34b4d56,5f -34b4d57,fe -34b4d58,d8 -34b4d6e,d -34b4d6f,ff -34b4d70,ff -34b4d71,e0 -34b4d72,d -34b4d73,b0 -34b4d76,d -34b4d77,b0 -34b4d7a,d -34b4d7b,b0 -34b4d7e,d -34b4d7f,ff -34b4d80,ff -34b4d81,c0 -34b4d82,d -34b4d83,b0 -34b4d86,d -34b4d87,b0 -34b4d8a,d -34b4d8b,b0 -34b4d8e,d -34b4d8f,ff -34b4d90,ff -34b4d91,f0 -34b4da6,b -34b4da7,ff -34b4da8,ff -34b4da9,f4 -34b4daa,b -34b4dab,d0 -34b4dae,b -34b4daf,d0 -34b4db2,b -34b4db3,d0 -34b4db6,b -34b4db7,ff -34b4db8,ff -34b4db9,c0 -34b4dba,b -34b4dbb,d0 -34b4dbe,b -34b4dbf,d0 -34b4dc2,b -34b4dc3,d0 -34b4dc6,b -34b4dc7,d0 -34b4dde,1 -34b4ddf,ae -34b4de0,ed -34b4de1,60 -34b4de2,b -34b4de3,e7 -34b4de4,38 -34b4de5,a0 -34b4de6,4e -34b4de7,90 -34b4dea,8f -34b4deb,40 -34b4dee,9f -34b4def,10 -34b4df0,bf -34b4df1,f2 -34b4df2,7f -34b4df3,40 -34b4df4,7 -34b4df5,f2 -34b4df6,4e -34b4df7,90 -34b4df8,7 -34b4df9,f2 -34b4dfa,b -34b4dfb,e7 -34b4dfc,39 -34b4dfd,f2 -34b4dfe,1 -34b4dff,be -34b4e00,ed -34b4e01,90 -34b4e16,5f -34b4e17,60 -34b4e18,9 -34b4e19,e0 -34b4e1a,5f -34b4e1b,60 -34b4e1c,9 -34b4e1d,e0 -34b4e1e,5f -34b4e1f,60 -34b4e20,9 -34b4e21,e0 -34b4e22,5f -34b4e23,60 -34b4e24,9 -34b4e25,e0 -34b4e26,5f -34b4e27,ff -34b4e28,ff -34b4e29,e0 -34b4e2a,5f -34b4e2b,60 -34b4e2c,9 -34b4e2d,e0 -34b4e2e,5f -34b4e2f,60 -34b4e30,9 -34b4e31,e0 -34b4e32,5f -34b4e33,60 -34b4e34,9 -34b4e35,e0 -34b4e36,5f -34b4e37,60 -34b4e38,9 -34b4e39,e0 -34b4e4e,d -34b4e4f,ff -34b4e50,ff -34b4e51,b0 -34b4e53,d -34b4e54,b0 -34b4e57,d -34b4e58,b0 -34b4e5b,d -34b4e5c,b0 -34b4e5f,d -34b4e60,b0 -34b4e63,d -34b4e64,b0 -34b4e67,d -34b4e68,b0 -34b4e6b,d -34b4e6c,b0 -34b4e6e,d -34b4e6f,ff -34b4e70,ff -34b4e71,b0 -34b4e87,cf -34b4e88,ff -34b4e89,40 -34b4e8c,7f -34b4e8d,40 -34b4e90,7f -34b4e91,40 -34b4e94,7f -34b4e95,40 -34b4e98,7f -34b4e99,40 -34b4e9c,7f -34b4e9d,30 -34b4e9e,75 -34b4ea0,9e -34b4ea2,8d -34b4ea3,64 -34b4ea4,dc -34b4ea6,2b -34b4ea7,ee -34b4ea8,c5 -34b4ebe,5f -34b4ebf,60 -34b4ec0,9 -34b4ec1,e7 -34b4ec2,5f -34b4ec3,60 -34b4ec4,9e -34b4ec5,70 -34b4ec6,5f -34b4ec7,69 -34b4ec8,e7 -34b4eca,5f -34b4ecb,be -34b4ecc,80 -34b4ece,5f -34b4ecf,ed -34b4ed0,b0 -34b4ed2,5f -34b4ed3,87 -34b4ed4,e8 -34b4ed6,5f -34b4ed7,60 -34b4ed8,ae -34b4ed9,40 -34b4eda,5f -34b4edb,60 -34b4edc,1d -34b4edd,c0 -34b4ede,5f -34b4edf,60 -34b4ee0,6 -34b4ee1,ea -34b4ef6,c -34b4ef7,c0 -34b4efa,c -34b4efb,c0 -34b4efe,c -34b4eff,c0 -34b4f02,c -34b4f03,c0 -34b4f06,c -34b4f07,c0 -34b4f0a,c -34b4f0b,c0 -34b4f0e,c -34b4f0f,c0 -34b4f12,c -34b4f13,c0 -34b4f16,c -34b4f17,ff -34b4f18,ff -34b4f19,f7 -34b4f2e,af -34b4f2f,a0 -34b4f30,c -34b4f31,f8 -34b4f32,ae -34b4f33,d0 -34b4f34,2e -34b4f35,e8 -34b4f36,ad -34b4f37,d5 -34b4f38,9b -34b4f39,e8 -34b4f3a,ad -34b4f3b,aa -34b4f3c,c8 -34b4f3d,e8 -34b4f3e,ad -34b4f3f,5d -34b4f40,e1 -34b4f41,e8 -34b4f42,ad -34b4f43,d -34b4f44,b0 -34b4f45,e8 -34b4f46,ad -34b4f49,e8 -34b4f4a,ad -34b4f4d,e8 -34b4f4e,ad -34b4f51,e8 -34b4f66,5f -34b4f67,c0 -34b4f68,8 -34b4f69,e0 -34b4f6a,5f -34b4f6b,e6 -34b4f6c,8 -34b4f6d,e0 -34b4f6e,5f -34b4f6f,cb -34b4f70,8 -34b4f71,e0 -34b4f72,5f -34b4f73,7e -34b4f74,48 -34b4f75,e0 -34b4f76,5f -34b4f77,5c -34b4f78,a8 -34b4f79,e0 -34b4f7a,5f -34b4f7b,57 -34b4f7c,e8 -34b4f7d,e0 -34b4f7e,5f -34b4f7f,50 -34b4f80,dc -34b4f81,e0 -34b4f82,5f -34b4f83,50 -34b4f84,9e -34b4f85,e0 -34b4f86,5f -34b4f87,50 -34b4f88,2e -34b4f89,e0 -34b4f9e,4 -34b4f9f,ce -34b4fa0,eb -34b4fa1,20 -34b4fa2,c -34b4fa3,d5 -34b4fa4,6e -34b4fa5,a0 -34b4fa6,3e -34b4fa7,80 -34b4fa8,a -34b4fa9,e0 -34b4faa,7f -34b4fab,50 -34b4fac,8 -34b4fad,f2 -34b4fae,7f -34b4faf,40 -34b4fb0,8 -34b4fb1,f4 -34b4fb2,7f -34b4fb3,50 -34b4fb4,8 -34b4fb5,f2 -34b4fb6,3e -34b4fb7,80 -34b4fb8,a -34b4fb9,e0 -34b4fba,c -34b4fbb,d5 -34b4fbc,6e -34b4fbd,b0 -34b4fbe,4 -34b4fbf,ce -34b4fc0,eb -34b4fc1,20 -34b4fd6,d -34b4fd7,ff -34b4fd8,ed -34b4fd9,60 -34b4fda,d -34b4fdb,b0 -34b4fdc,5c -34b4fdd,e2 -34b4fde,d -34b4fdf,b0 -34b4fe0,6 -34b4fe1,f6 -34b4fe2,d -34b4fe3,b0 -34b4fe4,6 -34b4fe5,f6 -34b4fe6,d -34b4fe7,b0 -34b4fe8,5c -34b4fe9,e2 -34b4fea,d -34b4feb,ff -34b4fec,ed -34b4fed,60 -34b4fee,d -34b4fef,b0 -34b4ff2,d -34b4ff3,b0 -34b4ff6,d -34b4ff7,b0 -34b500e,4 -34b500f,ce -34b5010,eb -34b5011,20 -34b5012,c -34b5013,d5 -34b5014,6e -34b5015,a0 -34b5016,3e -34b5017,80 -34b5018,a -34b5019,e0 -34b501a,7f -34b501b,50 -34b501c,8 -34b501d,f2 -34b501e,7f -34b501f,40 -34b5020,8 -34b5021,f4 -34b5022,7f -34b5023,50 -34b5024,8 -34b5025,f1 -34b5026,3e -34b5027,80 -34b5028,a -34b5029,d0 -34b502a,c -34b502b,d5 -34b502c,6e -34b502d,a0 -34b502e,4 -34b502f,ce -34b5030,fc -34b5031,20 -34b5034,ae -34b5035,50 -34b5038,c -34b5039,80 -34b5046,5f -34b5047,fe -34b5048,eb -34b5049,20 -34b504a,5f -34b504b,71 -34b504c,7e -34b504d,b0 -34b504e,5f -34b504f,70 -34b5050,c -34b5051,d0 -34b5052,5f -34b5053,71 -34b5054,6e -34b5055,a0 -34b5056,5f -34b5057,ff -34b5058,ea -34b505a,5f -34b505b,72 -34b505c,ae -34b505d,40 -34b505e,5f -34b505f,70 -34b5060,d -34b5061,b0 -34b5062,5f -34b5063,70 -34b5064,8 -34b5065,e5 -34b5066,5f -34b5067,70 -34b5069,db -34b507e,6 -34b507f,ce -34b5080,eb -34b5081,30 -34b5082,d -34b5083,c4 -34b5084,5a -34b5085,90 -34b5086,4f -34b5087,60 -34b508a,e -34b508b,c6 -34b508e,5 -34b508f,ce -34b5090,eb -34b5091,40 -34b5094,6c -34b5095,c0 -34b5098,8 -34b5099,e0 -34b509a,c -34b509b,73 -34b509c,5c -34b509d,d0 -34b509e,8 -34b509f,de -34b50a0,ec -34b50a1,50 -34b50b6,cf -34b50b7,ff -34b50b8,ff -34b50b9,fb -34b50bb,d -34b50bc,b0 -34b50bf,d -34b50c0,b0 -34b50c3,d -34b50c4,b0 -34b50c7,d -34b50c8,b0 -34b50cb,d -34b50cc,b0 -34b50cf,d -34b50d0,b0 -34b50d3,d -34b50d4,b0 -34b50d7,d -34b50d8,b0 -34b50ee,4f -34b50ef,70 -34b50f0,9 -34b50f1,e0 -34b50f2,4f -34b50f3,70 -34b50f4,9 -34b50f5,e0 -34b50f6,4f -34b50f7,70 -34b50f8,9 -34b50f9,e0 -34b50fa,4f -34b50fb,70 -34b50fc,9 -34b50fd,e0 -34b50fe,4f -34b50ff,70 -34b5100,9 -34b5101,e0 -34b5102,3f -34b5103,70 -34b5104,9 -34b5105,e0 -34b5106,2e -34b5107,70 -34b5108,a -34b5109,d0 -34b510a,d -34b510b,c4 -34b510c,5d -34b510d,c0 -34b510e,5 -34b510f,ce -34b5110,ec -34b5111,40 -34b5126,ad -34b5128,3 -34b5129,e8 -34b512a,6f -34b512b,50 -34b512c,8 -34b512d,e3 -34b512e,e -34b512f,90 -34b5130,b -34b5131,c0 -34b5132,b -34b5133,c0 -34b5134,d -34b5135,90 -34b5136,8 -34b5137,e1 -34b5138,5e -34b5139,40 -34b513a,2 -34b513b,e7 -34b513c,ad -34b513f,cb -34b5140,ca -34b5143,9d -34b5144,e6 -34b5147,3e -34b5148,d0 -34b515e,e8 -34b5161,ad -34b5162,da -34b5165,cb -34b5166,cb -34b5169,da -34b516a,ac -34b516b,e -34b516c,c0 -34b516d,e8 -34b516e,8d -34b516f,6d -34b5170,e1 -34b5171,e5 -34b5172,6e -34b5173,9b -34b5174,d8 -34b5175,e0 -34b5176,1e -34b5177,c8 -34b5178,ac -34b5179,d0 -34b517a,d -34b517b,e3 -34b517c,7e -34b517d,c0 -34b517e,c -34b517f,d0 -34b5180,e -34b5181,a0 -34b5196,6e -34b5197,70 -34b5198,7 -34b5199,e7 -34b519a,a -34b519b,d2 -34b519c,1d -34b519d,b0 -34b519e,2 -34b519f,da -34b51a0,ad -34b51a1,20 -34b51a3,7e -34b51a4,e7 -34b51a7,3e -34b51a8,e2 -34b51ab,bd -34b51ac,da -34b51ae,7 -34b51af,e6 -34b51b0,7e -34b51b1,60 -34b51b2,3e -34b51b3,a0 -34b51b4,b -34b51b5,d0 -34b51b6,bd -34b51b7,20 -34b51b8,4 -34b51b9,e9 -34b51ce,ae -34b51cf,20 -34b51d0,5 -34b51d1,e8 -34b51d2,2d -34b51d3,a0 -34b51d4,c -34b51d5,c0 -34b51d6,7 -34b51d7,e5 -34b51d8,7e -34b51d9,50 -34b51db,cc -34b51dc,da -34b51df,4e -34b51e0,d2 -34b51e3,d -34b51e4,b0 -34b51e7,d -34b51e8,b0 -34b51eb,d -34b51ec,b0 -34b51ef,d -34b51f0,b0 -34b5206,e -34b5207,ff -34b5208,ff -34b5209,f8 -34b520c,b -34b520d,d3 -34b5210,7e -34b5211,70 -34b5213,3 -34b5214,ea -34b5217,b -34b5218,d1 -34b521b,8e -34b521c,50 -34b521e,4 -34b521f,e9 -34b5222,c -34b5223,c0 -34b5226,1f -34b5227,ff -34b5228,ff -34b5229,fa -34b5237,4f -34b5238,fc -34b523b,4f -34b523c,50 -34b523f,4f -34b5240,50 -34b5243,4f -34b5244,50 -34b5247,4f -34b5248,50 -34b524b,4f -34b524c,50 -34b524f,4f -34b5250,50 -34b5253,4f -34b5254,50 -34b5257,4f -34b5258,50 -34b525b,4f -34b525c,50 -34b525f,4f -34b5260,50 -34b5263,4f -34b5264,fc -34b5276,6e -34b5277,50 -34b527a,c -34b527b,b0 -34b527e,7 -34b527f,e3 -34b5283,da -34b5287,9e -34b5288,20 -34b528b,1e -34b528c,90 -34b528f,a -34b5290,d0 -34b5293,3 -34b5294,e8 -34b5298,bc -34b529c,4e -34b529d,60 -34b52a0,b -34b52a1,c0 -34b52a7,df -34b52a8,e0 -34b52ab,8 -34b52ac,e0 -34b52af,8 -34b52b0,e0 -34b52b3,8 -34b52b4,e0 -34b52b7,8 -34b52b8,e0 -34b52bb,8 -34b52bc,e0 -34b52bf,8 -34b52c0,e0 -34b52c3,8 -34b52c4,e0 -34b52c7,8 -34b52c8,e0 -34b52cb,8 -34b52cc,e0 -34b52cf,8 -34b52d0,e0 -34b52d3,df -34b52d4,e0 -34b52e7,5e -34b52e8,d2 -34b52eb,dc -34b52ec,db -34b52ee,a -34b52ef,d2 -34b52f0,5e -34b52f1,80 -34b52f2,7e -34b52f3,50 -34b52f4,7 -34b52f5,e5 -34b534a,ff -34b534b,ff -34b534c,ff -34b534d,fd -34b5352,2 -34b5353,ca -34b5357,2c -34b5358,90 -34b5396,5 -34b5397,ce -34b5398,eb -34b5399,10 -34b539a,b -34b539b,93 -34b539c,6d -34b539d,a0 -34b53a0,b -34b53a1,c0 -34b53a2,8 -34b53a3,de -34b53a4,ff -34b53a5,c0 -34b53a6,3e -34b53a7,93 -34b53a8,b -34b53a9,d0 -34b53aa,4f -34b53ab,82 -34b53ac,7e -34b53ad,d0 -34b53ae,a -34b53af,ee -34b53b0,db -34b53b1,d0 -34b53be,d -34b53bf,90 -34b53c2,d -34b53c3,90 -34b53c6,d -34b53c7,90 -34b53ca,d -34b53cb,90 -34b53ce,d -34b53cf,bd -34b53d0,ec -34b53d1,40 -34b53d2,d -34b53d3,e6 -34b53d4,5d -34b53d5,c0 -34b53d6,d -34b53d7,b0 -34b53d8,8 -34b53d9,e0 -34b53da,d -34b53db,a0 -34b53dc,7 -34b53dd,f2 -34b53de,d -34b53df,b0 -34b53e0,8 -34b53e1,e0 -34b53e2,d -34b53e3,e6 -34b53e4,4d -34b53e5,b0 -34b53e6,d -34b53e7,bd -34b53e8,ec -34b53e9,40 -34b5407,8d -34b5408,ed -34b5409,70 -34b540a,7 -34b540b,e9 -34b540c,36 -34b540d,a0 -34b540e,c -34b540f,c0 -34b5412,d -34b5413,b0 -34b5416,c -34b5417,c0 -34b541a,7 -34b541b,e9 -34b541c,36 -34b541d,a0 -34b541f,8d -34b5420,ed -34b5421,70 -34b5430,b -34b5431,c0 -34b5434,b -34b5435,c0 -34b5438,b -34b5439,c0 -34b543c,b -34b543d,c0 -34b543e,5 -34b543f,de -34b5440,dc -34b5441,c0 -34b5442,d -34b5443,c4 -34b5444,8e -34b5445,c0 -34b5446,5f -34b5447,60 -34b5448,c -34b5449,c0 -34b544a,7f -34b544b,30 -34b544c,b -34b544d,c0 -34b544e,5f -34b544f,60 -34b5450,c -34b5451,c0 -34b5452,d -34b5453,c4 -34b5454,8e -34b5455,c0 -34b5456,5 -34b5457,de -34b5458,dc -34b5459,c0 -34b5476,3 -34b5477,be -34b5478,ec -34b5479,30 -34b547a,c -34b547b,d5 -34b547c,4c -34b547d,c0 -34b547e,4f -34b547f,60 -34b5480,7 -34b5481,e0 -34b5482,6f -34b5483,ff -34b5484,ff -34b5485,f3 -34b5486,4f -34b5487,50 -34b548a,c -34b548b,c5 -34b548c,38 -34b548d,c0 -34b548e,3 -34b548f,be -34b5490,ec -34b5491,60 -34b549f,5 -34b54a0,de -34b54a1,d0 -34b54a3,c -34b54a4,b2 -34b54a7,d -34b54a8,90 -34b54ab,e -34b54ac,80 -34b54ae,d -34b54af,ff -34b54b0,ff -34b54b1,d0 -34b54b3,e -34b54b4,80 -34b54b7,e -34b54b8,80 -34b54bb,e -34b54bc,80 -34b54bf,e -34b54c0,80 -34b54c3,e -34b54c4,80 -34b54c7,e -34b54c8,80 -34b54e6,5 -34b54e7,de -34b54e8,dc -34b54e9,c0 -34b54ea,d -34b54eb,c4 -34b54ec,8e -34b54ed,c0 -34b54ee,5f -34b54ef,60 -34b54f0,c -34b54f1,c0 -34b54f2,7f -34b54f3,30 -34b54f4,b -34b54f5,c0 -34b54f6,5f -34b54f7,60 -34b54f8,c -34b54f9,c0 -34b54fa,d -34b54fb,c4 -34b54fc,8e -34b54fd,c0 -34b54fe,5 -34b54ff,de -34b5500,dc -34b5501,b0 -34b5504,c -34b5505,a0 -34b5506,9 -34b5507,94 -34b5508,7e -34b5509,60 -34b550a,4 -34b550b,ce -34b550c,e9 -34b550e,d -34b550f,a0 -34b5512,d -34b5513,a0 -34b5516,d -34b5517,a0 -34b551a,d -34b551b,a0 -34b551e,d -34b551f,bd -34b5520,ed -34b5521,40 -34b5522,d -34b5523,e6 -34b5524,5d -34b5525,a0 -34b5526,d -34b5527,b0 -34b5528,b -34b5529,c0 -34b552a,d -34b552b,a0 -34b552c,b -34b552d,c0 -34b552e,d -34b552f,a0 -34b5530,b -34b5531,c0 -34b5532,d -34b5533,a0 -34b5534,b -34b5535,c0 -34b5536,d -34b5537,a0 -34b5538,b -34b5539,c0 -34b5547,b -34b5548,c0 -34b5556,9 -34b5557,ff -34b5558,c0 -34b555b,b -34b555c,c0 -34b555f,b -34b5560,c0 -34b5563,b -34b5564,c0 -34b5567,b -34b5568,c0 -34b556b,b -34b556c,c0 -34b556e,e -34b556f,ff -34b5570,ff -34b5571,e0 -34b557f,7 -34b5580,e0 -34b558e,7 -34b558f,ff -34b5590,e0 -34b5593,7 -34b5594,e0 -34b5597,7 -34b5598,e0 -34b559b,7 -34b559c,e0 -34b559f,7 -34b55a0,e0 -34b55a3,7 -34b55a4,e0 -34b55a7,7 -34b55a8,e0 -34b55ab,7 -34b55ac,e0 -34b55af,1b -34b55b0,d0 -34b55b2,d -34b55b3,fe -34b55b4,70 -34b55b6,b -34b55b7,c0 -34b55ba,b -34b55bb,c0 -34b55be,b -34b55bf,c0 -34b55c2,b -34b55c3,c0 -34b55c6,b -34b55c7,c0 -34b55c8,3d -34b55c9,c2 -34b55ca,b -34b55cb,c3 -34b55cc,db -34b55ce,b -34b55cf,dd -34b55d0,c0 -34b55d2,b -34b55d3,fc -34b55d4,e5 -34b55d6,b -34b55d7,d0 -34b55d8,cd -34b55d9,10 -34b55da,b -34b55db,c0 -34b55dc,3d -34b55dd,b0 -34b55de,b -34b55df,c0 -34b55e0,7 -34b55e1,e8 -34b55ee,e -34b55ef,ff -34b55f0,40 -34b55f3,5f -34b55f4,40 -34b55f7,5f -34b55f8,40 -34b55fb,5f -34b55fc,40 -34b55ff,5f -34b5600,40 -34b5603,5f -34b5604,40 -34b5607,5f -34b5608,40 -34b560b,5f -34b560c,40 -34b560f,4f -34b5610,50 -34b5613,e -34b5614,a0 -34b5617,8 -34b5618,ef -34b5619,b0 -34b5636,8d -34b5637,dd -34b5638,ae -34b5639,c0 -34b563a,8e -34b563b,4d -34b563c,c5 -34b563d,e4 -34b563e,8d -34b563f,c -34b5640,b0 -34b5641,e6 -34b5642,8d -34b5643,b -34b5644,a0 -34b5645,e7 -34b5646,8d -34b5647,b -34b5648,a0 -34b5649,e7 -34b564a,8d -34b564b,b -34b564c,a0 -34b564d,e7 -34b564e,8d -34b564f,b -34b5650,a0 -34b5651,e7 -34b566e,d -34b566f,bd -34b5670,ed -34b5671,40 -34b5672,d -34b5673,e6 -34b5674,5d -34b5675,a0 -34b5676,d -34b5677,b0 -34b5678,b -34b5679,c0 -34b567a,d -34b567b,a0 -34b567c,b -34b567d,c0 -34b567e,d -34b567f,a0 -34b5680,b -34b5681,c0 -34b5682,d -34b5683,a0 -34b5684,b -34b5685,c0 -34b5686,d -34b5687,a0 -34b5688,b -34b5689,c0 -34b56a6,4 -34b56a7,ce -34b56a8,eb -34b56a9,20 -34b56aa,c -34b56ab,d5 -34b56ac,6d -34b56ad,a0 -34b56ae,1e -34b56af,70 -34b56b0,a -34b56b1,d0 -34b56b2,5f -34b56b3,60 -34b56b4,8 -34b56b5,e0 -34b56b6,1e -34b56b7,70 -34b56b8,a -34b56b9,d0 -34b56ba,c -34b56bb,d4 -34b56bc,6d -34b56bd,b0 -34b56be,4 -34b56bf,ce -34b56c0,eb -34b56c1,20 -34b56de,d -34b56df,bd -34b56e0,ec -34b56e1,30 -34b56e2,d -34b56e3,e6 -34b56e4,5d -34b56e5,b0 -34b56e6,d -34b56e7,b0 -34b56e8,9 -34b56e9,e0 -34b56ea,d -34b56eb,a0 -34b56ec,7 -34b56ed,e0 -34b56ee,d -34b56ef,b0 -34b56f0,8 -34b56f1,e0 -34b56f2,d -34b56f3,e6 -34b56f4,5d -34b56f5,b0 -34b56f6,d -34b56f7,be -34b56f8,ec -34b56f9,40 -34b56fa,d -34b56fb,90 -34b56fe,d -34b56ff,90 -34b5702,d -34b5703,90 -34b5716,4 -34b5717,ce -34b5718,dc -34b5719,c0 -34b571a,c -34b571b,c4 -34b571c,7e -34b571d,c0 -34b571e,1e -34b571f,70 -34b5720,c -34b5721,c0 -34b5722,5f -34b5723,60 -34b5724,b -34b5725,c0 -34b5726,2e -34b5727,70 -34b5728,c -34b5729,c0 -34b572a,c -34b572b,c4 -34b572c,7e -34b572d,c0 -34b572e,5 -34b572f,ce -34b5730,db -34b5731,c0 -34b5734,a -34b5735,c0 -34b5738,a -34b5739,c0 -34b573c,a -34b573d,c0 -34b574f,cc -34b5750,de -34b5751,f9 -34b5753,ce -34b5754,83 -34b5757,cb -34b575b,ca -34b575f,ca -34b5763,ca -34b5767,ca -34b5786,4 -34b5787,ce -34b5788,ea -34b5789,10 -34b578a,b -34b578b,d4 -34b578c,5b -34b578d,60 -34b578e,b -34b578f,d4 -34b5792,3 -34b5793,bd -34b5794,db -34b5795,20 -34b5798,4d -34b5799,a0 -34b579a,b -34b579b,94 -34b579c,5e -34b579d,a0 -34b579e,5 -34b579f,ce -34b57a0,eb -34b57a1,20 -34b57b7,8e -34b57bb,8e -34b57be,6f -34b57bf,ff -34b57c0,ff -34b57c1,b0 -34b57c3,8e -34b57c7,8e -34b57cb,8e -34b57cf,8e -34b57d3,6e -34b57d4,70 -34b57d7,b -34b57d8,ef -34b57d9,b0 -34b57f6,d -34b57f7,a0 -34b57f8,b -34b57f9,c0 -34b57fa,d -34b57fb,a0 -34b57fc,b -34b57fd,c0 -34b57fe,d -34b57ff,a0 -34b5800,b -34b5801,c0 -34b5802,d -34b5803,a0 -34b5804,b -34b5805,c0 -34b5806,d -34b5807,a0 -34b5808,b -34b5809,c0 -34b580a,b -34b580b,d4 -34b580c,7e -34b580d,c0 -34b580e,5 -34b580f,de -34b5810,db -34b5811,c0 -34b582e,6e -34b582f,30 -34b5830,7 -34b5831,e3 -34b5832,d -34b5833,90 -34b5834,b -34b5835,c0 -34b5836,a -34b5837,d0 -34b5838,1e -34b5839,80 -34b583a,5 -34b583b,e4 -34b583c,8e -34b583d,20 -34b583f,da -34b5840,cb -34b5843,9d -34b5844,e7 -34b5847,3e -34b5848,e0 -34b5866,e8 -34b5869,ac -34b586a,ca -34b586d,ca -34b586e,ac -34b586f,d -34b5870,b0 -34b5871,e7 -34b5872,6e -34b5873,3d -34b5874,d5 -34b5875,e2 -34b5876,e -34b5877,ab -34b5878,ca -34b5879,d0 -34b587a,c -34b587b,e7 -34b587c,9e -34b587d,b0 -34b587e,a -34b587f,e1 -34b5880,5f -34b5881,80 -34b589e,3d -34b589f,a0 -34b58a0,b -34b58a1,c0 -34b58a2,6 -34b58a3,e6 -34b58a4,9e -34b58a5,40 -34b58a7,9e -34b58a8,e7 -34b58ab,2e -34b58ac,d0 -34b58af,cc -34b58b0,da -34b58b2,9 -34b58b3,e4 -34b58b4,6e -34b58b5,70 -34b58b6,6e -34b58b7,70 -34b58b8,9 -34b58b9,e4 -34b58d6,6e -34b58d7,50 -34b58d8,5 -34b58d9,e5 -34b58da,d -34b58db,a0 -34b58dc,b -34b58dd,d0 -34b58de,9 -34b58df,e0 -34b58e0,e -34b58e1,90 -34b58e2,3 -34b58e3,e7 -34b58e4,8e -34b58e5,30 -34b58e7,cc -34b58e8,cc -34b58eb,7e -34b58ec,e7 -34b58ef,d -34b58f0,e0 -34b58f3,d -34b58f4,a0 -34b58f7,8e -34b58f8,50 -34b58fa,d -34b58fb,ea -34b590e,b -34b590f,ff -34b5910,ff -34b5911,c0 -34b5914,5e -34b5915,70 -34b5917,3 -34b5918,d9 -34b591b,c -34b591c,b0 -34b591f,bd -34b5920,20 -34b5922,9 -34b5923,e4 -34b5926,d -34b5927,ff -34b5928,ff -34b5929,c0 -34b5937,6 -34b5938,de -34b5939,a0 -34b593b,b -34b593c,d3 -34b593f,c -34b5940,b0 -34b5943,c -34b5944,b0 -34b5947,5e -34b5948,a0 -34b594a,b -34b594b,fd -34b594c,20 -34b594f,7e -34b5950,90 -34b5953,d -34b5954,b0 -34b5957,c -34b5958,b0 -34b595b,c -34b595c,b0 -34b595f,b -34b5960,d4 -34b5963,5 -34b5964,de -34b5965,a0 -34b596f,c -34b5970,a0 -34b5973,c -34b5974,a0 -34b5977,c -34b5978,a0 -34b597b,c -34b597c,a0 -34b597f,c -34b5980,a0 -34b5983,c -34b5984,a0 -34b5987,c -34b5988,a0 -34b598b,c -34b598c,a0 -34b598f,c -34b5990,a0 -34b5993,c -34b5994,a0 -34b5997,c -34b5998,a0 -34b599b,c -34b599c,a0 -34b599f,c -34b59a0,a0 -34b59a6,b -34b59a7,ed -34b59a8,30 -34b59ab,4e -34b59ac,90 -34b59af,d -34b59b0,a0 -34b59b3,c -34b59b4,a0 -34b59b7,b -34b59b8,c4 -34b59bb,5 -34b59bc,ef -34b59bd,a0 -34b59bf,b -34b59c0,d5 -34b59c3,c -34b59c4,b0 -34b59c7,d -34b59c8,a0 -34b59cb,d -34b59cc,a0 -34b59cf,5e -34b59d0,80 -34b59d2,b -34b59d3,ec -34b59d4,20 -34b59f6,5d -34b59f7,ed -34b59f8,83 -34b59f9,a7 -34b59fa,98 -34b59fb,38 -34b59fc,de -34b59fd,c3 +11,45 +12,ae +13,5b +14,97 +15,db +16,41 +17,31 +d261,48 +d262,0 +d265,48 +d266,50 +d267,0 +d269,48 +d26a,0 +d271,4b +d272,30 +d275,4b +d276,e0 +d277,0 +d279,4b +d27a,30 +8a9c51,0 +8a9c52,0 +8a9c53,0 +8a9c55,0 +8a9c56,0 +8a9c57,0 +8a9c58,0 +8a9c59,0 +8a9c5a,0 +8a9c5c,0 +8a9c5d,0 +8a9c5e,0 +8a9c5f,0 +8a9c64,0 +8a9c65,0 +8a9c66,0 +8a9c67,0 +8a9c68,0 +8a9c69,0 +8a9c6a,0 +8a9c6b,0 +8a9c6c,0 +8a9c6d,0 +8a9c6e,0 +8a9c6f,0 +8a9c90,0 +8a9c91,0 +8a9c92,0 +8a9c93,0 +8a9c94,0 +8a9c95,0 +8a9c96,0 +8a9c97,0 +8a9c98,0 +8a9c99,0 +8a9c9a,0 +8a9c9c,0 +8a9c9d,0 +8a9c9e,0 +8a9c9f,0 +8a9ca0,0 +8a9ca3,0 +8a9ca4,0 +8a9ca5,0 +8a9ca6,0 +8a9ca7,0 +8a9ca8,0 +8a9ca9,0 +8a9caa,0 +8a9cab,0 +8a9cac,0 +8a9cad,0 +8a9cae,0 +8a9caf,0 +8a9cb0,0 +8a9cd0,0 +8a9cd1,0 +8a9cd2,0 +8a9cd3,0 +8a9cd4,0 +8a9cd5,0 +8a9cd6,0 +8a9cd7,0 +8a9cd8,0 +8a9cd9,0 +8a9cda,0 +8a9cdc,0 +8a9cdd,0 +8a9cde,0 +8a9cdf,0 +8a9ce0,0 +8a9ce3,0 +8a9ce4,0 +8a9ce5,0 +8a9ce6,0 +8a9ce7,0 +8a9ce8,0 +8a9ce9,0 +8a9cea,0 +8a9ceb,0 +8a9cec,0 +8a9ced,0 +8a9cee,0 +8a9cef,0 +8a9cf0,0 +8a9d10,0 +8a9d11,0 +8a9d12,0 +8a9d13,0 +8a9d14,0 +8a9d15,0 +8a9d16,0 +8a9d17,0 +8a9d18,0 +8a9d19,0 +8a9d1a,0 +8a9d1c,0 +8a9d1d,0 +8a9d1e,0 +8a9d1f,0 +8a9d20,0 +8a9d21,0 +8a9d22,0 +8a9d23,0 +8a9d24,0 +8a9d25,0 +8a9d26,0 +8a9d27,0 +8a9d28,0 +8a9d29,0 +8a9d2a,0 +8a9d2b,0 +8a9d2c,0 +8a9d2d,0 +8a9d2e,0 +8a9d2f,0 +8a9d30,0 +8a9d50,0 +8a9d51,0 +8a9d52,0 +8a9d53,0 +8a9d54,0 +8a9d55,0 +8a9d56,0 +8a9d57,0 +8a9d58,0 +8a9d59,0 +8a9d5a,0 +8a9d5c,0 +8a9d5d,0 +8a9d5e,0 +8a9d5f,0 +8a9d60,0 +8a9d61,0 +8a9d62,0 +8a9d63,0 +8a9d64,0 +8a9d65,0 +8a9d66,0 +8a9d67,0 +8a9d68,0 +8a9d69,0 +8a9d6a,0 +8a9d6b,0 +8a9d6c,0 +8a9d6d,0 +8a9d6e,0 +8a9d6f,0 +8a9d90,0 +8a9d91,0 +8a9d92,0 +8a9d93,0 +8a9d94,0 +8a9d95,0 +8a9d96,0 +8a9d97,0 +8a9d98,0 +8a9d99,0 +8a9d9a,0 +8a9d9c,0 +8a9d9d,0 +8a9d9e,0 +8a9d9f,0 +8a9da0,0 +8a9da1,0 +8a9da2,0 +8a9da3,0 +8a9da4,0 +8a9da6,0 +8a9da7,0 +8a9da8,0 +8a9da9,0 +8a9daa,0 +8a9dab,0 +8a9dac,0 +8a9dad,0 +8a9dae,0 +8a9dd0,0 +8a9dd1,0 +8a9dd2,0 +8a9dd3,0 +8a9dd4,0 +8a9dd5,0 +8a9dd6,0 +8a9dd7,0 +8a9dd8,0 +8a9dd9,0 +8a9dda,0 +8a9ddc,0 +8a9ddd,0 +8a9dde,0 +8a9ddf,0 +8a9de0,0 +8a9de1,0 +8a9de2,0 +8a9de3,0 +8a9de4,0 +8a9de6,0 +8a9de7,0 +8a9de8,0 +8a9de9,0 +8a9dea,0 +8a9deb,0 +8a9dec,0 +8a9ded,0 +8a9dee,0 +8a9e10,0 +8a9e11,0 +8a9e12,0 +8a9e13,0 +8a9e14,0 +8a9e15,0 +8a9e16,0 +8a9e17,0 +8a9e18,0 +8a9e19,0 +8a9e1a,0 +8a9e1c,0 +8a9e1d,0 +8a9e1e,0 +8a9e1f,0 +8a9e20,0 +8a9e21,0 +8a9e22,0 +8a9e23,0 +8a9e24,0 +8a9e26,0 +8a9e27,0 +8a9e28,0 +8a9e29,0 +8a9e2a,0 +8a9e2b,0 +8a9e2c,0 +8a9e2d,0 +8a9e2e,0 +8a9e50,0 +8a9e51,0 +8a9e52,0 +8a9e53,0 +8a9e54,0 +8a9e55,0 +8a9e56,0 +8a9e57,0 +8a9e58,0 +8a9e59,0 +8a9e5a,0 +8a9e5b,0 +8a9e5c,0 +8a9e5d,0 +8a9e5e,0 +8a9e5f,0 +8a9e60,0 +8a9e61,0 +8a9e62,0 +8a9e63,0 +8a9e64,0 +8a9e65,0 +8a9e66,0 +8a9e67,0 +8a9e68,0 +8a9e69,0 +8a9e6a,0 +8a9e6b,0 +8a9e6c,0 +8a9e6d,0 +8a9e6e,0 +8a9e90,0 +8a9e91,0 +8a9e92,0 +8a9e93,0 +8a9e94,0 +8a9e95,0 +8a9e96,0 +8a9e97,0 +8a9e98,0 +8a9e99,0 +8a9e9a,0 +8a9e9b,0 +8a9e9c,0 +8a9e9d,0 +8a9e9e,0 +8a9e9f,0 +8a9ea0,0 +8a9ea1,0 +8a9ea2,0 +8a9ea3,0 +8a9ea4,0 +8a9ea5,0 +8a9ea6,0 +8a9ea7,0 +8a9ea8,0 +8a9ea9,0 +8a9eaa,0 +8a9eab,0 +8a9eac,0 +8a9ead,0 +8a9eae,0 +8a9ed0,0 +8a9ed1,0 +8a9ed2,0 +8a9ed3,0 +8a9ed4,0 +8a9ed5,0 +8a9ed6,0 +8a9ed7,0 +8a9ed8,0 +8a9ed9,0 +8a9eda,0 +8a9edb,0 +8a9edc,0 +8a9edd,0 +8a9ede,0 +8a9edf,0 +8a9ee0,0 +8a9ee3,0 +8a9ee4,0 +8a9ee5,0 +8a9ee6,0 +8a9ee7,0 +8a9ee8,0 +8a9ee9,0 +8a9eea,0 +8a9eeb,0 +8a9eec,0 +8a9eed,0 +8a9eee,0 +8a9f10,0 +8a9f11,0 +8a9f12,0 +8a9f13,0 +8a9f14,0 +8a9f15,0 +8a9f16,0 +8a9f17,0 +8a9f18,0 +8a9f19,0 +8a9f1a,0 +8a9f1b,0 +8a9f1c,0 +8a9f1d,0 +8a9f1e,0 +8a9f1f,0 +8a9f20,0 +8a9f23,0 +8a9f24,0 +8a9f25,0 +8a9f26,0 +8a9f27,0 +8a9f28,0 +8a9f29,0 +8a9f2a,0 +8a9f2b,0 +8a9f2c,0 +8a9f2d,0 +8a9f2e,0 +8a9f50,0 +8a9f51,0 +8a9f52,0 +8a9f53,0 +8a9f55,0 +8a9f56,0 +8a9f57,0 +8a9f58,0 +8a9f59,0 +8a9f5a,0 +8a9f5b,0 +8a9f5c,0 +8a9f5d,0 +8a9f5e,0 +8a9f5f,0 +8a9f64,0 +8a9f65,0 +8a9f66,0 +8a9f67,0 +8a9f68,0 +8a9f69,0 +8a9f6a,0 +8a9f6b,0 +8a9f6c,0 +8a9f6d,0 +8a9f6e,0 +a98c30,c +a98c31,10 +a98c32,a +a98c33,db +a9e838,8 +a9e839,10 +a9e83a,d +a9e83b,bf +ac9abc,c +ac9abd,10 +ac9abe,b +ac9abf,ee +ac9ac1,0 +ac9ac2,0 +ac9ac3,0 +acce88,c +acce89,10 +acce8a,b +acce8b,df +acce8c,0 +acce8d,0 +acce8e,0 +acce8f,0 +acce90,0 +acce91,0 +acce94,0 +acce97,0 +acce98,0 +acce99,0 +acce9b,0 +ae59e0,8 +ae59e1,10 +ae59e2,c +ae59e3,f5 +ae5df0,c +ae5df1,10 +ae5df2,d +ae5df3,9e +ae5df8,c +ae5df9,10 +ae5dfa,b +ae5dfb,e9 +ae5e04,0 +ae5e05,0 +ae5e07,0 +ae6e48,c +ae6e49,10 +ae6e4a,b +ae6e4b,e4 +ae6e4c,1 +ae6e4d,f +ae6e4e,c0 +ae6e4f,21 +b06400,82 +b06402,e +b06403,de +b0640c,31 +b0640d,f8 +b0640e,0 +b0640f,2 +b06c2c,c +b06c2d,10 +b06c2e,d +b06c2f,e7 +b06c31,28 +b06c33,20 +b16b50,c +b16b51,10 +b16b52,c +b16b53,95 +b16b54,0 +b16b56,0 +b16b57,0 +b16b60,c +b16b61,10 +b16b62,c +b16b63,c4 +b16b64,0 +b16b65,0 +b16b66,0 +b16b67,0 +b17bb4,af +b17bb5,bf +b17bb6,0 +b17bb7,1c +b17bb8,af +b17bb9,a4 +b17bba,1 +b17bbb,40 +b17bbc,3c +b17bbd,4 +b17bbe,80 +b17bbf,40 +b17bc0,3c +b17bc1,5 +b17bc2,3 +b17bc3,48 +b17bc4,c +b17bc5,0 +b17bc6,3 +b17bc7,7c +b17bc8,34 +b17bc9,6 +b17bca,50 +b17bcb,0 +b17bcc,c +b17bcd,10 +b17bce,0 +b17bd0,0 +b17bd1,0 +b17bd2,0 +b17bd3,0 +b54b38,c +b54b39,10 +b54b3a,d +b54b3b,ae +b54e5c,c +b54e5d,10 +b54e5e,d +b54e5f,8b +b55a65,10 +b55a66,d +b55a67,d4 +baed6c,0 +baed6d,0 +baed6f,0 +bb77b4,0 +bb77b5,0 +bb77b7,0 +bb7890,c +bb7891,10 +bb7892,c +bb7893,d4 +bb7894,0 +bb7895,0 +bb7897,0 +bb7950,c +bb7951,10 +bb7952,c +bb7953,db +bb7954,0 +bb7955,0 +bb7957,0 +bb7ba0,0 +bb7ba1,0 +bb7ba3,0 +bb7bfc,0 +bb7bfd,0 +bb7bff,0 +bb7c3c,c +bb7c3d,10 +bb7c3e,c +bb7c3f,e2 +bb7c40,0 +bb7c41,0 +bb7c43,0 +bb7c58,c +bb7c59,10 +bb7c5a,c +bb7c5b,cd +bb7c5c,0 +bb7c5d,0 +bb7c5f,0 +bcecbc,8 +bcecbd,10 +bcecbe,a +bcecbf,a3 +bcecc1,0 +bcecc2,0 +bcecc3,0 +bcecc4,0 +bcecc5,0 +bcecc7,0 +bcecc8,0 +bcecc9,0 +bcecca,0 +bceccb,0 +bceccc,0 +bceccd,0 +bcecce,0 +bceccf,0 +bcecd0,0 +bcecd1,0 +bcecd3,0 +bda0a1,10 +bda0a2,a +bda0a3,29 +bda0d8,c +bda0d9,10 +bda0da,a +bda0db,81 +bda0e4,0 +bda0e5,0 +bda0e7,0 +bda264,c +bda265,10 +bda266,a +bda267,85 +bda270,0 +bda271,0 +bda273,0 +be9ac0,c +be9ac1,10 +be9ac2,a +be9ac3,af +be9ad8,c +be9ad9,10 +be9ada,a +be9adb,b8 +be9ae4,0 +be9ae5,0 +be9bde,83 +be9bdf,83 +c004ec,8 +c004ed,10 +c004ee,c +c004ef,3a +c0067f,64 +c018a0,c +c018a1,10 +c018a2,c +c018a3,4f +c6c7a8,c +c6c7a9,10 +c6c7aa,c +c6c7ab,5f +c6c920,c +c6c921,10 +c6c922,c +c6c923,5f +c892dc,34 +c892dd,e +c892de,0 +c892df,1 +c8931c,34 +c8931d,a +c8931e,0 +c8931f,1 +c89745,10 +c89746,b +c89747,b4 +c89868,92 +c89869,e +c8986a,1d +c8986b,28 +c898a4,92 +c898a5,19 +c898a6,1d +c898a7,29 +c898c8,92 +c898c9,a +c898ca,1d +c898cb,2a +cb6860,c +cb6861,10 +cb6862,c +cb6863,e9 +d12f78,34 +d12f79,f +d12f7b,0 +d74964,10 +d74965,0 +d7e140,34 +d7e141,e +d7e142,0 +d7e143,1 +d7e144,80 +d7e146,e +d7e147,de +d7e160,84 +d7e161,88 +d7e163,a4 +d7e164,34 +d7e165,1 +d7e167,63 +d7e168,14 +d7e169,28 +d7e16b,3 +d7e16c,34 +d7e16d,2 +d7e16e,20 +d7e16f,49 +d7e170,10 +d7e171,0 +d7e172,0 +d7e173,6 +d7e174,0 +d7e177,0 +d7e178,94 +d7e179,69 +d7e17a,e +d7e17b,d6 +d7e17c,31 +d7e17d,29 +d7e17e,0 +d7e17f,4 +d7e180,15 +d7e181,20 +d7e183,2 +d7e184,34 +d7e185,2 +d7e186,20 +d7e187,44 +d7e188,34 +d7e189,2 +d7e18a,20 +d7e18b,43 +d7e18c,8f +d7e18d,bf +d7e18f,14 +d7e190,27 +d7e191,bd +d7e192,0 +d7e193,18 +d7e194,3 +d7e195,e0 +d7e197,8 +d7e198,0 +d7e199,0 +d7e19a,0 +d7e19b,0 +d7e398,94 +d7e399,89 +d7e39a,e +d7e39b,d6 +d7e39c,31 +d7e39d,28 +d7e39f,10 +d7e3a0,31 +d7e3a1,29 +d7e3a3,4 +d7e3a4,1 +d7e3a5,9 +d7e3a6,40 +d7e3a7,25 +d7e3a8,34 +d7e3a9,9 +d7e3ab,14 +d7e3ac,34 +d7e3ad,1 +d7e3ae,0 +d7e3af,5f +d7e3b0,14 +d7e3b1,23 +d7e3b3,6 +d7e3b4,0 +d7e3b5,0 +d7e3b7,0 +d7e3b8,11 +d7e3b9,9 +d7e3bb,4 +d7e3bc,0 +d7e3bd,0 +d7e3be,0 +d7e3bf,0 +d7e3c0,34 +d7e3c1,2 +d7e3c2,0 +d7e3c3,1 +d7e3c4,3 +d7e3c5,e0 +d7e3c7,8 +d7e3c8,0 +d7e3c9,0 +d7e3cb,0 +d7e3cc,14 +d7e3cd,c2 +d7e3cf,9 +d7e3d0,34 +d7e3d1,1 +d7e3d3,63 +d7e3d4,14 +d7e3d5,23 +d7e3d7,7 +d7e3d8,8c +d7e3d9,8a +d7e3db,10 +d7e3dc,15 +d7e3dd,40 +d7e3df,5 +d7e3e0,0 +d7e3e1,0 +d7e3e2,0 +d7e3e3,0 +d7e3e4,15 +d7e3e5,9 +d7e3e7,3 +d7e3e8,34 +d7e3e9,2 +d7e3eb,1 +d7e3ec,3 +d7e3ed,e0 +d7e3ef,8 +d7e3f0,0 +d7e3f1,0 +d7e3f2,0 +d7e3f3,0 +d7e3f4,34 +d7e3f5,2 +d7e3f6,0 +d7e3f7,0 +d7e3f8,3 +d7e3f9,e0 +d7e3fa,0 +d7e3fb,8 +d7e3fc,0 +d7e3fd,0 +d7e3ff,0 +d7e76c,8f +d7e76d,b8 +d7e76e,0 +d7e76f,44 +d7e778,87 +d7e779,18 +d7e77b,a4 +d7e77c,80 +d7e77d,49 +d7e77e,e +d7e77f,de +d7e784,34 +d7e786,0 +d7e787,1 +d7e788,2 +d7e789,0 +d7e78a,20 +d7e78b,21 +d7e798,15 +d7e79b,2 +d7e79c,34 +d7e79d,19 +d7e79e,0 +d7e79f,5f +d7e7a0,17 +d7e7a1,38 +d7e7a2,0 +d7e7a3,5 +d7e7a4,ae +d7e7a5,b +d7e7a6,1 +d7e7a7,80 +d7e890,0 +d7e891,0 +d7e893,0 +d7e8a0,10 +d7e8a1,0 +d7e8a3,7 +d7e8a4,31 +d7e8a5,4a +d7e8a7,4 +d7e8b0,0 +d7e8b3,0 +d7e8b4,0 +d7e8b5,0 +d7e8b7,0 +d7e8c0,34 +d7e8c1,b +d7e8c2,0 +d7e8c3,14 +d7e8c8,1 +d7e8c9,4b +d7e8ca,50 +d7e8cb,25 +d7e8cc,15 +d7e8cd,4b +d7e8cf,14 +d7e8d4,34 +d7e8d5,e +d7e8d6,0 +d7e8d7,1 +d7e8d8,80 +d7e8da,e +d7e8db,de +d7e8e0,57 +d7e8e3,f +d7ebbc,c +d7ebbd,10 +d7ebbe,b +d7ebbf,f1 +d7ec1c,0 +d7ec1d,0 +d7ec1f,0 +d7ec20,34 +d7ec23,5 +db13d3,76 +db532c,c +db532d,10 +db532e,c +db532f,1 +df264f,76 +df7cb0,c +df7cb1,10 +df7cb2,c +df7cb3,7f +e09f68,80 +e09f6a,e +e09f6b,de +e09f74,31 +e09f75,f8 +e09f76,0 +e09f77,4 +e09fb0,c +e09fb1,10 +e09fb2,b +e09fb3,f9 +e29388,8 +e29389,10 +e2938a,c +e2938b,18 +e2a044,c +e2a045,10 +e2a046,c +e2a047,21 +e2b0b5,10 +e2b0b6,c +e2b0b7,29 +e2f093,34 +e9e1d8,34 +e9e1d9,9 +e9e1da,40 +e9e1db,0 +e9e1f0,34 +e9e1f2,5b +e9e1f3,8 +e9e200,34 +e9e202,0 +e9e203,a +e9e20d,a9 +ebb85c,c +ebb85d,10 +ebb85e,c +ebb85f,6a +ebb865,40 +ebb867,12 +ebb86c,10 +ebb86d,0 +ebb86e,0 +ebb86f,14 +ec68bc,8f +ec68bd,ad +ec68be,0 +ec68bf,2c +ec68c0,34 +ec68c1,c +ec68c2,0 +ec68c3,a +ec68c4,a5 +ec68c5,ac +ec68c6,1 +ec68c7,10 +ec68c8,c +ec68c9,10 +ec68ca,a +ec68cb,46 +ec68cc,2 +ec68cd,0 +ec68ce,28 +ec68cf,21 +ec68d0,0 +ec68d1,0 +ec68d2,0 +ec68d3,0 +ec68d4,0 +ec68d5,0 +ec68d7,0 +ec68da,0 +ec68db,0 +ec68dc,0 +ec68dd,0 +ec68de,0 +ec68df,0 +ec68e0,0 +ec68e1,0 +ec68e2,0 +ec68e3,0 +ec69ad,ad +ec69af,2c +ec69b0,34 +ec69b1,c +ec69b2,0 +ec69b3,a +ec69b4,a5 +ec69b5,ac +ec69b6,1 +ec69b7,10 +ec69b8,c +ec69b9,10 +ec69ba,a +ec69bb,46 +ec69bc,2 +ec69bd,0 +ec69be,28 +ec69bf,21 +ec69c0,0 +ec69c1,0 +ec69c3,0 +ec69c4,0 +ec69c5,0 +ec69c6,0 +ec69c7,0 +ec69c8,0 +ec69c9,0 +ec69cb,0 +ec69cc,0 +ec69cd,0 +ec69ce,0 +ec69cf,0 +ec69d2,0 +ec69d3,0 +ec9ce7,7a +3480000,27 +3480001,bd +3480002,ff +3480003,e8 +3480004,af +3480005,bf +3480007,10 +3480008,3c +3480009,4 +348000a,80 +348000b,40 +348000c,24 +348000d,84 +348000e,50 +3480010,3c +3480011,5 +3480012,3 +3480013,4b +3480014,24 +3480015,a5 +3480016,30 +3480018,34 +3480019,6 +348001a,b0 +348001c,c +348001e,3 +348001f,7c +3480024,c +3480025,10 +3480026,16 +3480027,fa +348002c,3c +348002d,2 +348002e,80 +348002f,12 +3480030,24 +3480031,42 +3480032,d2 +3480033,a0 +3480034,24 +3480035,e +3480036,1 +3480037,40 +3480038,3c +3480039,1 +348003a,80 +348003b,10 +348003c,ac +348003d,2e +348003e,e5 +3480040,8f +3480041,bf +3480043,10 +3480044,27 +3480045,bd +3480047,18 +3480048,3 +3480049,e0 +348004b,8 +3481c01,5a +3481c02,3b +3481c03,5d +3481c04,5c +3481c05,5e +3481c06,51 +3481c07,52 +3481c08,53 +3482050,ff +3482051,ff +3482052,ff +3482053,ff +3482054,ff +3482055,ff +3482056,ff +3482057,ff +3482058,80 +3482059,40 +348205a,27 +348205b,30 +348205c,80 +348205d,40 +348205e,25 +348205f,78 +3482060,ff +3482061,ff +3482062,ff +3482063,ff +3482064,ff +3482065,ff +3482066,ff +3482067,ff +3482068,80 +3482069,40 +348206a,27 +348206b,30 +348206c,80 +348206d,40 +348206e,25 +348206f,94 +3482070,ff +3482071,ff +3482072,ff +3482073,ff +3482074,ff +3482075,ff +3482076,ff +3482077,ff +3482078,80 +3482079,40 +348207a,27 +348207b,30 +348207c,80 +348207d,40 +348207e,25 +348207f,bc +3482080,ff +3482081,ff +3482082,ff +3482083,ff +3482084,ff +3482085,ff +3482086,ff +3482087,ff +3482088,80 +3482089,40 +348208a,27 +348208b,30 +348208c,80 +348208d,40 +348208e,25 +348208f,e4 +3482090,ff +3482091,ff +3482092,ff +3482093,ff +3482094,ff +3482095,ff +3482096,ff +3482097,ff +3482098,80 +3482099,40 +348209a,27 +348209b,30 +348209c,80 +348209d,40 +348209e,26 +348209f,c +34820a0,53 +34820a1,41 +34820a2,23 +34820a3,f8 +34820a5,d1 +34820a6,ff +34820a7,ff +34820a8,80 +34820a9,40 +34820aa,26 +34820ab,5c +34820ac,80 +34820ad,40 +34820ae,26 +34820af,34 +34820b0,ff +34820b1,ff +34820b2,ff +34820b3,ff +34820b4,ff +34820b5,ff +34820b6,ff +34820b7,ff +34820b8,80 +34820b9,40 +34820ba,27 +34820bb,30 +34820bc,80 +34820bd,40 +34820be,26 +34820bf,70 +34820c0,ff +34820c1,ff +34820c2,ff +34820c3,ff +34820c4,ff +34820c5,ff +34820c6,ff +34820c7,ff +34820c8,80 +34820c9,40 +34820ca,27 +34820cb,30 +34820cc,80 +34820cd,40 +34820ce,26 +34820cf,8c +34820d0,ff +34820d1,ff +34820d2,ff +34820d3,ff +34820d4,ff +34820d5,ff +34820d6,ff +34820d7,ff +34820d8,80 +34820d9,40 +34820da,27 +34820db,30 +34820dc,80 +34820dd,40 +34820de,26 +34820df,a8 +34820e0,53 +34820e1,41 +34820e2,38 +34820e3,43 +34820e5,eb +34820e6,15 +34820e7,ff +34820e8,80 +34820e9,40 +34820ea,27 +34820eb,48 +34820ec,80 +34820ed,40 +34820ee,25 +34820ef,70 +34820f0,53 +34820f1,41 +34820f2,37 +34820f3,44 +34820f5,eb +34820f6,16 +34820f7,ff +34820f8,80 +34820f9,40 +34820fa,27 +34820fb,48 +34820fc,80 +34820fd,40 +34820fe,25 +34820ff,70 +3482100,53 +3482101,41 +3482102,39 +3482103,45 +3482105,eb +3482106,17 +3482107,ff +3482108,80 +3482109,40 +348210a,27 +348210b,48 +348210c,80 +348210d,40 +348210e,25 +348210f,70 +3482110,53 +3482111,41 +3482112,6b +3482113,46 +3482114,1 +3482115,77 +3482116,18 +3482117,ff +3482118,80 +3482119,40 +348211a,27 +348211b,48 +348211c,80 +348211d,40 +348211e,25 +348211f,70 +3482120,53 +3482121,41 +3482122,3f +3482123,47 +3482125,f4 +3482126,19 +3482127,ff +3482128,80 +3482129,40 +348212a,27 +348212b,48 +348212c,80 +348212d,40 +348212e,25 +348212f,70 +3482130,53 +3482131,41 +3482132,67 +3482133,5d +3482134,1 +3482135,73 +3482136,1c +3482137,ff +3482138,80 +3482139,40 +348213a,27 +348213b,48 +348213c,80 +348213d,40 +348213e,25 +348213f,70 +3482140,53 +3482141,41 +3482142,68 +3482143,7a +3482144,1 +3482145,74 +3482146,1d +3482147,ff +3482148,80 +3482149,40 +348214a,27 +348214b,48 +348214c,80 +348214d,40 +348214e,25 +348214f,70 +3482150,53 +3482151,41 +3482152,70 +3482153,f9 +3482154,1 +3482155,76 +3482156,1e +3482157,ff +3482158,80 +3482159,40 +348215a,27 +348215b,48 +348215c,80 +348215d,40 +348215e,25 +348215f,70 +3482160,53 +3482161,41 +3482162,6a +3482163,97 +3482164,1 +3482165,76 +3482166,20 +3482167,ff +3482168,80 +3482169,40 +348216a,27 +348216b,48 +348216c,80 +348216d,40 +348216e,25 +348216f,70 +3482170,53 +3482171,41 +3482172,a +3482173,6 +3482175,b9 +3482176,1 +3482177,3 +3482178,80 +3482179,40 +348217a,27 +348217b,84 +348217c,80 +348217d,40 +348217e,25 +348217f,70 +3482180,53 +3482181,41 +3482182,a +3482183,1c +3482185,b9 +3482186,1 +3482187,4 +3482188,80 +3482189,40 +348218a,27 +348218b,84 +348218c,80 +348218d,40 +348218e,25 +348218f,70 +3482190,53 +3482191,41 +3482192,a +3482193,1d +3482195,b9 +3482196,1 +3482197,5 +3482198,80 +3482199,40 +348219a,27 +348219b,84 +348219c,80 +348219d,40 +348219e,25 +348219f,70 +34821a0,53 +34821a1,41 +34821a2,a +34821a3,1e +34821a5,b9 +34821a6,1 +34821a7,6 +34821a8,80 +34821a9,40 +34821aa,27 +34821ab,84 +34821ac,80 +34821ad,40 +34821ae,25 +34821af,70 +34821b0,53 +34821b1,41 +34821b2,a +34821b3,2a +34821b5,b9 +34821b6,1 +34821b7,7 +34821b8,80 +34821b9,40 +34821ba,27 +34821bb,84 +34821bc,80 +34821bd,40 +34821be,25 +34821bf,70 +34821c0,53 +34821c1,41 +34821c2,a +34821c3,61 +34821c5,b9 +34821c6,1 +34821c7,a +34821c8,80 +34821c9,40 +34821ca,27 +34821cb,84 +34821cc,80 +34821cd,40 +34821ce,25 +34821cf,70 +34821d0,4d +34821d1,41 +34821d2,f5 +34821d3,62 +34821d5,b8 +34821d6,2 +34821d8,80 +34821d9,40 +34821da,27 +34821db,84 +34821dc,80 +34821dd,40 +34821de,25 +34821df,70 +34821e0,4d +34821e1,41 +34821e2,f5 +34821e3,63 +34821e5,b8 +34821e6,2 +34821e7,1 +34821e8,80 +34821e9,40 +34821ea,27 +34821eb,84 +34821ec,80 +34821ed,40 +34821ee,25 +34821ef,70 +34821f0,4d +34821f1,41 +34821f2,f5 +34821f3,64 +34821f5,b8 +34821f6,2 +34821f7,2 +34821f8,80 +34821f9,40 +34821fa,27 +34821fb,84 +34821fc,80 +34821fd,40 +34821fe,25 +34821ff,70 +3482200,4d +3482201,41 +3482202,f5 +3482203,65 +3482205,b8 +3482206,2 +3482207,3 +3482208,80 +3482209,40 +348220a,27 +348220b,84 +348220c,80 +348220d,40 +348220e,25 +348220f,70 +3482210,4d +3482211,41 +3482212,f5 +3482213,7c +3482215,b8 +3482216,2 +3482217,4 +3482218,80 +3482219,40 +348221a,27 +348221b,84 +348221c,80 +348221d,40 +348221e,25 +348221f,70 +3482220,4d +3482221,41 +3482222,f5 +3482223,7d +3482225,b8 +3482226,2 +3482227,5 +3482228,80 +3482229,40 +348222a,27 +348222b,84 +348222c,80 +348222d,40 +348222e,25 +348222f,70 +3482230,4d +3482231,41 +3482232,f5 +3482233,7e +3482235,b8 +3482236,2 +3482237,6 +3482238,80 +3482239,40 +348223a,27 +348223b,84 +348223c,80 +348223d,40 +348223e,25 +348223f,70 +3482240,4d +3482241,41 +3482242,f5 +3482243,7f +3482245,b8 +3482246,2 +3482247,7 +3482248,80 +3482249,40 +348224a,27 +348224b,84 +348224c,80 +348224d,40 +348224e,25 +348224f,70 +3482250,4d +3482251,41 +3482252,f5 +3482253,a2 +3482255,b8 +3482256,2 +3482257,8 +3482258,80 +3482259,40 +348225a,27 +348225b,84 +348225c,80 +348225d,40 +348225e,25 +348225f,70 +3482260,4d +3482261,41 +3482262,f5 +3482263,87 +3482265,b8 +3482266,2 +3482267,9 +3482268,80 +3482269,40 +348226a,27 +348226b,84 +348226c,80 +348226d,40 +348226e,25 +348226f,70 +3482270,4d +3482271,41 +3482272,e4 +3482273,88 +3482275,c8 +3482276,4 +3482278,80 +3482279,40 +348227a,27 +348227b,84 +348227c,80 +348227d,40 +348227e,25 +348227f,70 +3482280,4d +3482281,41 +3482282,e4 +3482283,89 +3482285,c8 +3482286,4 +3482287,1 +3482288,80 +3482289,40 +348228a,27 +348228b,84 +348228c,80 +348228d,40 +348228e,25 +348228f,70 +3482290,4d +3482291,41 +3482292,e4 +3482293,8a +3482295,c8 +3482296,4 +3482297,2 +3482298,80 +3482299,40 +348229a,27 +348229b,84 +348229c,80 +348229d,40 +348229e,25 +348229f,70 +34822a0,4d +34822a1,41 +34822a2,e4 +34822a3,8b +34822a5,c8 +34822a6,4 +34822a7,3 +34822a8,80 +34822a9,40 +34822aa,27 +34822ab,84 +34822ac,80 +34822ad,40 +34822ae,25 +34822af,70 +34822b0,4d +34822b1,41 +34822b2,e4 +34822b3,8c +34822b5,c8 +34822b6,4 +34822b7,4 +34822b8,80 +34822b9,40 +34822ba,27 +34822bb,84 +34822bc,80 +34822bd,40 +34822be,25 +34822bf,70 +34822c0,4d +34822c1,41 +34822c2,e4 +34822c3,8e +34822c5,c8 +34822c6,4 +34822c7,5 +34822c8,80 +34822c9,40 +34822ca,27 +34822cb,84 +34822cc,80 +34822cd,40 +34822ce,25 +34822cf,70 +34822d0,4d +34822d1,41 +34822d2,e4 +34822d3,8f +34822d5,c8 +34822d6,4 +34822d7,6 +34822d8,80 +34822d9,40 +34822da,27 +34822db,84 +34822dc,80 +34822dd,40 +34822de,25 +34822df,70 +34822e0,4d +34822e1,41 +34822e2,e4 +34822e3,a3 +34822e5,c8 +34822e6,4 +34822e7,7 +34822e8,80 +34822e9,40 +34822ea,27 +34822eb,84 +34822ec,80 +34822ed,40 +34822ee,25 +34822ef,70 +34822f0,4d +34822f1,41 +34822f2,e4 +34822f3,a5 +34822f5,c8 +34822f6,4 +34822f7,8 +34822f8,80 +34822f9,40 +34822fa,27 +34822fb,84 +34822fc,80 +34822fd,40 +34822fe,25 +34822ff,70 +3482300,4d +3482301,41 +3482302,e4 +3482303,92 +3482305,c8 +3482306,4 +3482307,9 +3482308,80 +3482309,40 +348230a,27 +348230b,84 +348230c,80 +348230d,40 +348230e,25 +348230f,70 +3482310,53 +3482311,41 +3482312,2 +3482313,93 +3482315,aa +3482316,3 +3482317,ff +3482318,80 +3482319,40 +348231a,27 +348231b,a0 +348231c,80 +348231d,40 +348231e,25 +348231f,70 +3482320,53 +3482321,41 +3482322,2 +3482323,94 +3482325,aa +3482326,4 +3482327,ff +3482328,80 +3482329,40 +348232a,27 +348232b,a0 +348232c,80 +348232d,40 +348232e,25 +348232f,70 +3482330,53 +3482331,41 +3482332,2 +3482333,95 +3482335,aa +3482336,5 +3482337,ff +3482338,80 +3482339,40 +348233a,27 +348233b,a0 +348233c,80 +348233d,40 +348233e,25 +348233f,70 +3482340,53 +3482341,41 +3482342,2 +3482343,a6 +3482345,aa +3482346,6 +3482347,ff +3482348,80 +3482349,40 +348234a,27 +348234b,a0 +348234c,80 +348234d,40 +348234e,25 +348234f,70 +3482350,53 +3482351,41 +3482352,2 +3482353,a9 +3482355,aa +3482356,7 +3482357,ff +3482358,80 +3482359,40 +348235a,27 +348235b,a0 +348235c,80 +348235d,40 +348235e,25 +348235f,70 +3482360,53 +3482361,41 +3482362,2 +3482363,9b +3482365,aa +3482366,8 +3482367,ff +3482368,80 +3482369,40 +348236a,27 +348236b,a0 +348236c,80 +348236d,40 +348236e,25 +348236f,70 +3482370,53 +3482371,41 +3482372,2 +3482373,9f +3482375,aa +3482376,b +3482377,ff +3482378,80 +3482379,40 +348237a,27 +348237b,a0 +348237c,80 +348237d,40 +348237e,25 +348237f,70 +3482380,53 +3482381,41 +3482382,2 +3482383,a0 +3482385,aa +3482386,c +3482387,ff +3482388,80 +3482389,40 +348238a,27 +348238b,a0 +348238c,80 +348238d,40 +348238e,25 +348238f,70 +3482390,53 +3482391,41 +3482392,2 +3482393,a1 +3482395,aa +3482396,d +3482397,ff +3482398,80 +3482399,40 +348239a,27 +348239b,a0 +348239c,80 +348239d,40 +348239e,25 +348239f,70 +34823a0,53 +34823a1,3d +34823a2,43 +34823a3,c +34823a5,f8 +34823a6,ff +34823a7,ff +34823a8,80 +34823a9,40 +34823aa,27 +34823ab,38 +34823ac,80 +34823ad,40 +34823ae,25 +34823af,70 +34823b0,4d +34823b1,83 +34823b2,f7 +34823b3,55 +34823b5,b7 +34823b6,ff +34823b7,ff +34823b8,80 +34823b9,40 +34823ba,27 +34823bb,30 +34823bc,80 +34823bd,40 +34823be,25 +34823bf,70 +34823c0,4d +34823c1,92 +34823c2,db +34823c3,e6 +34823c5,d8 +34823c6,ff +34823c7,ff +34823c8,80 +34823c9,40 +34823ca,27 +34823cb,30 +34823cc,80 +34823cd,40 +34823ce,26 +34823cf,dc +34823d0,4d +34823d1,93 +34823d2,da +34823d3,e6 +34823d5,d8 +34823d6,ff +34823d7,ff +34823d8,80 +34823d9,40 +34823da,27 +34823db,30 +34823dc,80 +34823dd,40 +34823de,26 +34823df,dc +34823e0,4d +34823e1,94 +34823e2,d9 +34823e3,e6 +34823e5,d8 +34823e6,ff +34823e7,ff +34823e8,80 +34823e9,40 +34823ea,27 +34823eb,30 +34823ec,80 +34823ed,40 +34823ee,26 +34823ef,dc +34823f0,4d +34823f1,8e +34823f2,e0 +34823f3,32 +34823f5,ce +34823f6,ff +34823f7,ff +34823f8,80 +34823f9,40 +34823fa,27 +34823fb,30 +34823fc,80 +34823fd,40 +34823fe,26 +34823ff,f8 +3482400,4d +3482401,8f +3482402,e0 +3482403,32 +3482405,ce +3482406,ff +3482407,ff +3482408,80 +3482409,40 +348240a,27 +348240b,30 +348240c,80 +348240d,40 +348240e,26 +348240f,f8 +3482410,4d +3482411,90 +3482412,e0 +3482413,32 +3482415,ce +3482416,ff +3482417,ff +3482418,80 +3482419,40 +348241a,27 +348241b,30 +348241c,80 +348241d,40 +348241e,26 +348241f,f8 +3482420,4d +3482421,8c +3482422,ee +3482423,34 +3482425,bb +3482426,ff +3482427,ff +3482428,80 +3482429,40 +348242a,27 +348242b,30 +348242c,80 +348242d,40 +348242e,25 +348242f,70 +3482430,4d +3482431,8d +3482432,ee +3482433,34 +3482435,bb +3482436,ff +3482437,ff +3482438,80 +3482439,40 +348243a,27 +348243b,30 +348243c,80 +348243d,40 +348243e,25 +348243f,70 +3482440,4f +3482441,41 +3482442,ed +3482443,e9 +3482445,bd +3482446,ff +3482447,ff +3482448,80 +3482449,40 +348244a,27 +348244b,c8 +348244c,80 +348244d,40 +348244e,25 +348244f,70 +3482450,53 +3482451,41 +3482452,1e +3482453,e4 +3482455,cd +3482456,ff +3482457,ff +3482458,80 +3482459,40 +348245a,27 +348245b,e8 +348245c,80 +348245d,40 +348245e,26 +348245f,c4 +3482460,53 +3482461,41 +3482462,1f +3482463,e8 +3482465,cd +3482466,ff +3482467,ff +3482468,80 +3482469,40 +348246a,28 +348246b,8 +348246c,80 +348246d,40 +348246e,25 +348246f,70 +3482470,ff +3482471,ff +3482472,ff +3482473,ff +3482474,ff +3482475,ff +3482476,ff +3482477,ff +3482478,80 +3482479,40 +348247a,27 +348247b,30 +348247c,80 +348247d,40 +348247e,28 +348247f,30 +3482480,53 +3482481,41 +3482482,46 +3482483,4a +3482484,1 +3482485,e +3482486,ff +3482487,ff +3482488,80 +3482489,40 +348248a,28 +348248b,78 +348248c,80 +348248d,40 +348248e,28 +348248f,5c +3482490,53 +3482491,41 +3482492,3 +3482493,b0 +3482495,b6 +3482496,6 +3482497,ff +3482498,80 +3482499,40 +348249a,28 +348249b,88 +348249c,80 +348249d,40 +348249e,25 +348249f,70 +34824a0,53 +34824a1,41 +34824a2,4 +34824a3,b1 +34824a5,b6 +34824a6,7 +34824a7,ff +34824a8,80 +34824a9,40 +34824aa,28 +34824ab,88 +34824ac,80 +34824ad,40 +34824ae,25 +34824af,70 +34824b0,53 +34824b1,41 +34824b2,5 +34824b3,b2 +34824b5,b6 +34824b6,8 +34824b7,ff +34824b8,80 +34824b9,40 +34824ba,28 +34824bb,88 +34824bc,80 +34824bd,40 +34824be,25 +34824bf,70 +34824c0,53 +34824c1,41 +34824c2,6 +34824c3,b3 +34824c5,b6 +34824c6,9 +34824c7,ff +34824c8,80 +34824c9,40 +34824ca,28 +34824cb,88 +34824cc,80 +34824cd,40 +34824ce,25 +34824cf,70 +34824d0,53 +34824d1,41 +34824d2,7 +34824d3,b6 +34824d5,b6 +34824d6,a +34824d7,ff +34824d8,80 +34824d9,40 +34824da,28 +34824db,88 +34824dc,80 +34824dd,40 +34824de,25 +34824df,70 +34824e0,53 +34824e1,41 +34824e2,8 +34824e3,b7 +34824e5,b6 +34824e6,b +34824e7,ff +34824e8,80 +34824e9,40 +34824ea,28 +34824eb,88 +34824ec,80 +34824ed,40 +34824ee,25 +34824ef,70 +34824f0,53 +34824f1,41 +34824f2,4 +34824f3,b8 +34824f5,b6 +34824f6,c +34824f7,ff +34824f8,80 +34824f9,40 +34824fa,28 +34824fb,88 +34824fc,80 +34824fd,40 +34824fe,25 +34824ff,70 +3482500,53 +3482501,41 +3482502,6 +3482503,b9 +3482505,b6 +3482506,d +3482507,ff +3482508,80 +3482509,40 +348250a,28 +348250b,88 +348250c,80 +348250d,40 +348250e,25 +348250f,70 +3482510,53 +3482511,41 +3482512,3 +3482513,ba +3482515,b6 +3482516,e +3482517,ff +3482518,80 +3482519,40 +348251a,28 +348251b,88 +348251c,80 +348251d,40 +348251e,25 +348251f,70 +3482520,53 +3482521,41 +3482522,8 +3482523,bb +3482525,b6 +3482526,f +3482527,ff +3482528,80 +3482529,40 +348252a,28 +348252b,88 +348252c,80 +348252d,40 +348252e,25 +348252f,70 +3482530,53 +3482531,41 +3482532,5 +3482533,bc +3482535,b6 +3482536,10 +3482537,ff +3482538,80 +3482539,40 +348253a,28 +348253b,88 +348253c,80 +348253d,40 +348253e,25 +348253f,70 +3482540,53 +3482541,41 +3482542,7 +3482543,bd +3482545,b6 +3482546,11 +3482547,ff +3482548,80 +3482549,40 +348254a,28 +348254b,88 +348254c,80 +348254d,40 +348254e,25 +348254f,70 +3482550,4d +3482552,e5 +3482553,37 +3482555,c7 +3482556,ff +3482557,ff +3482558,80 +3482559,40 +348255a,27 +348255b,30 +348255c,80 +348255d,40 +348255e,25 +348255f,70 +3482560,4d +3482561,95 +3482562,b8 +3482563,dc +3482564,1 +3482565,19 +3482566,ff +3482567,ff +3482568,80 +3482569,40 +348256a,27 +348256b,30 +348256c,80 +348256d,40 +348256e,27 +348256f,14 +3482570,3 +3482571,e0 +3482573,8 +3482574,34 +3482575,a2 +3482578,90 +3482579,88 +348257b,7d +348257c,34 +348257d,1 +348257f,ff +3482580,11 +3482581,1 +3482583,2 +3482584,34 +3482585,2 +3482587,8 +3482588,34 +3482589,2 +348258b,9 +348258c,3 +348258d,e0 +348258f,8 +3482594,90 +3482595,88 +3482597,a3 +3482598,31 +3482599,8 +348259b,c0 +348259c,11 +348259f,5 +34825a0,34 +34825a1,2 +34825a3,54 +34825a4,34 +34825a5,1 +34825a7,40 +34825a8,11 +34825a9,1 +34825ab,2 +34825ac,34 +34825ad,2 +34825af,35 +34825b0,34 +34825b1,2 +34825b3,36 +34825b4,3 +34825b5,e0 +34825b7,8 +34825bc,90 +34825bd,88 +34825bf,a3 +34825c0,31 +34825c1,8 +34825c3,18 +34825c4,11 +34825c7,5 +34825c8,34 +34825c9,2 +34825cb,32 +34825cc,34 +34825cd,1 +34825cf,8 +34825d0,11 +34825d1,1 +34825d3,2 +34825d4,34 +34825d5,2 +34825d7,33 +34825d8,34 +34825d9,2 +34825db,34 +34825dc,3 +34825dd,e0 +34825df,8 +34825e4,90 +34825e5,88 +34825e7,a3 +34825e8,31 +34825e9,8 +34825eb,3 +34825ec,11 +34825ef,5 +34825f0,34 +34825f1,2 +34825f3,4 +34825f4,34 +34825f5,1 +34825f7,1 +34825f8,11 +34825f9,1 +34825fb,2 +34825fc,34 +34825fd,2 +34825ff,30 +3482600,34 +3482601,2 +3482603,31 +3482604,3 +3482605,e0 +3482607,8 +348260c,90 +348260d,88 +348260f,a2 +3482610,31 +3482611,8 +3482613,c0 +3482614,11 +3482617,5 +3482618,34 +3482619,2 +348261b,5 +348261c,34 +348261d,1 +348261f,40 +3482620,11 +3482621,1 +3482623,2 +3482624,34 +3482625,2 +3482627,60 +3482628,34 +3482629,2 +348262b,7b +348262c,3 +348262d,e0 +348262f,8 +3482634,90 +3482635,88 +3482637,a2 +3482638,31 +3482639,8 +348263b,30 +348263c,11 +348263f,5 +3482640,34 +3482641,2 +3482643,45 +3482644,34 +3482645,9 +3482647,10 +3482648,11 +3482649,9 +348264b,2 +348264c,34 +348264d,2 +348264f,46 +3482650,34 +3482651,a2 +3482654,3 +3482655,e0 +3482657,8 +348265c,90 +348265d,88 +348265f,a2 +3482660,35 +3482661,8 +3482663,30 +3482664,a0 +3482665,88 +3482667,a2 +3482668,3 +3482669,e0 +348266b,8 +3482670,90 +3482671,88 +3482673,a2 +3482674,31 +3482675,8 +3482677,6 +3482678,11 +348267b,2 +348267c,34 +348267d,2 +348267f,37 +3482680,34 +3482681,2 +3482683,38 +3482684,3 +3482685,e0 +3482687,8 +348268c,90 +348268d,88 +348268f,a1 +3482690,31 +3482691,8 +3482693,20 +3482694,11 +3482697,2 +3482698,34 +3482699,2 +348269b,79 +348269c,34 +348269d,2 +348269f,7a +34826a0,3 +34826a1,e0 +34826a3,8 +34826a8,90 +34826a9,88 +34826ab,a1 +34826ac,31 +34826ad,8 +34826af,4 +34826b0,11 +34826b3,2 +34826b4,34 +34826b5,2 +34826b7,77 +34826b8,34 +34826b9,2 +34826bb,78 +34826bc,3 +34826bd,e0 +34826bf,8 +34826c4,90 +34826c5,88 +34826c7,32 +34826c8,11 +34826cb,2 +34826cc,34 +34826cd,2 +34826cf,c0 +34826d0,34 +34826d1,2 +34826d3,c1 +34826d4,3 +34826d5,e0 +34826d7,8 +34826dc,90 +34826dd,88 +34826df,a3 +34826e0,31 +34826e1,8 +34826e3,3 +34826e4,11 +34826e7,2 +34826e8,34 +34826e9,2 +34826eb,4d +34826ec,34 +34826ed,a2 +34826f0,3 +34826f1,e0 +34826f3,8 +34826f8,90 +34826f9,88 +34826fb,a3 +34826fc,31 +34826fd,8 +34826ff,18 +3482700,11 +3482703,2 +3482704,34 +3482705,2 +3482707,4d +3482708,34 +3482709,a2 +348270c,3 +348270d,e0 +348270f,8 +3482714,90 +3482715,88 +3482717,a2 +3482718,31 +3482719,8 +348271b,c0 +348271c,11 +348271f,2 +3482720,34 +3482721,2 +3482723,4d +3482724,34 +3482725,a2 +3482728,3 +3482729,e0 +348272b,8 +3482730,3 +3482731,e0 +3482733,8 +3482738,34 +3482739,8 +348273b,1 +348273c,a0 +348273d,88 +348273f,3e +3482740,3 +3482741,e0 +3482743,8 +3482748,24 +3482749,88 +348274b,86 +348274c,24 +348274d,9 +348274e,ff +348274f,ff +3482750,25 +3482751,29 +3482753,1 +3482754,34 +3482755,1 +3482757,3 +3482759,29 +348275a,8 +348275b,2a +348275c,14 +348275d,20 +348275f,7 +3482764,1 +3482765,9 +3482766,50 +3482767,21 +3482768,91 +3482769,4b +348276c,34 +348276d,1 +348276f,ff +3482770,15 +3482771,61 +3482772,ff +3482773,f7 +3482778,a1 +3482779,45 +348277c,3 +348277d,e0 +348277f,8 +3482784,24 +3482785,88 +3482787,a8 +3482788,1 +3482789,6 +348278a,40 +348278b,21 +348278c,91 +348278d,9 +3482790,1 +3482791,25 +3482792,48 +3482793,25 +3482794,a1 +3482795,9 +3482798,3 +3482799,e0 +348279b,8 +34827a0,24 +34827a1,88 +34827a3,bc +34827a4,1 +34827a5,5 +34827a6,40 +34827a7,21 +34827a8,81 +34827a9,9 +34827ac,5 +34827ad,21 +34827af,2 +34827b4,34 +34827b5,9 +34827b8,25 +34827b9,29 +34827bb,1 +34827bc,a1 +34827bd,9 +34827c0,3 +34827c1,e0 +34827c3,8 +34827c8,34 +34827c9,8 +34827cb,1 +34827cc,a0 +34827cd,88 +34827cf,3d +34827d0,34 +34827d1,8 +34827d3,14 +34827d4,a0 +34827d5,88 +34827d7,cf +34827d8,34 +34827d9,8 +34827da,1 +34827db,40 +34827dc,a4 +34827dd,88 +34827de,14 +34827df,24 +34827e0,3 +34827e1,e0 +34827e3,8 +34827e8,34 +34827e9,8 +34827eb,1 +34827ec,a0 +34827ed,88 +34827ef,32 +34827f0,a0 +34827f1,88 +34827f3,3a +34827f4,34 +34827f5,8 +34827f7,30 +34827f8,a4 +34827f9,88 +34827fa,13 +34827fb,f4 +34827fc,a0 +34827fd,88 +34827ff,33 +3482800,3 +3482801,e0 +3482803,8 +3482808,34 +3482809,8 +348280b,2 +348280c,a0 +348280d,88 +348280f,32 +3482810,34 +3482811,8 +3482813,1 +3482814,a0 +3482815,88 +3482817,3a +3482818,a0 +3482819,88 +348281b,3c +348281c,34 +348281d,8 +348281f,60 +3482820,a4 +3482821,88 +3482822,13 +3482823,f4 +3482824,a0 +3482825,88 +3482827,33 +3482828,3 +3482829,e0 +348282b,8 +3482830,90 +3482831,88 +3482833,7c +3482834,34 +3482835,1 +3482837,ff +3482838,11 +3482839,1 +348283b,6 +348283c,34 +348283d,2 +348283f,6b +3482840,90 +3482841,88 +3482843,94 +3482844,2d +3482845,8 +3482847,6 +3482848,11 +348284b,2 +348284c,34 +348284d,2 +348284f,6a +3482850,34 +3482851,2 +3482853,3 +3482854,3 +3482855,e0 +3482857,8 +348285c,90 +348285d,88 +348285f,7b +3482860,34 +3482861,1 +3482863,ff +3482864,11 +3482865,1 +3482867,2 +3482868,34 +3482869,a2 +348286c,34 +348286d,2 +348286f,c +3482870,3 +3482871,e0 +3482873,8 +3482878,34 +3482879,8 +348287b,7 +348287c,a0 +348287d,88 +348287f,7b +3482880,3 +3482881,e0 +3482883,8 +3482888,34 +3482889,8 +348288b,1 +348288d,a8 +348288e,40 +348288f,4 +3482890,8c +3482891,89 +3482893,a4 +3482894,1 +3482895,28 +3482896,48 +3482897,25 +3482898,ac +3482899,89 +348289b,a4 +348289c,3 +348289d,e0 +348289f,8 +34828a4,30 +34828a5,84 +34828a7,ff +34828a8,3c +34828a9,8 +34828aa,80 +34828ab,12 +34828ac,25 +34828ad,8 +34828ae,a5 +34828af,d0 +34828b0,34 +34828b1,1 +34828b3,8c +34828b4,10 +34828b5,81 +34828b7,16 +34828b8,91 +34828b9,2 +34828bb,75 +34828bc,34 +34828bd,1 +34828bf,8d +34828c0,10 +34828c1,81 +34828c3,13 +34828c4,91 +34828c5,2 +34828c7,75 +34828c8,10 +34828c9,80 +34828cb,11 +34828cc,91 +34828cd,2 +34828cf,74 +34828d0,34 +34828d1,1 +34828d3,8a +34828d4,10 +34828d5,81 +34828d7,e +34828d8,91 +34828d9,2 +34828db,74 +34828dc,34 +34828dd,1 +34828df,8b +34828e0,10 +34828e1,81 +34828e3,b +34828e4,91 +34828e5,2 +34828e7,74 +34828e8,34 +34828e9,1 +34828eb,58 +34828ec,10 +34828ed,81 +34828ef,8 +34828f0,34 +34828f1,2 +34828f4,34 +34828f5,1 +34828f7,78 +34828f8,10 +34828f9,81 +34828fb,5 +34828fc,34 +34828fd,2 +3482900,34 +3482901,1 +3482903,79 +3482904,10 +3482905,81 +3482907,2 +3482908,34 +3482909,2 +348290c,34 +348290d,2 +348290f,ff +3482910,3 +3482911,e0 +3482913,8 +3482918,27 +3482919,bd +348291a,ff +348291b,e0 +348291c,af +348291d,bf +348291f,10 +3482920,af +3482921,b0 +3482923,14 +3482924,c +3482925,10 +3482926,b +3482927,22 +348292c,4 +348292d,41 +348292f,2 +3482934,34 +3482935,2 +3482937,5b +3482939,40 +348293a,20 +348293b,21 +348293c,c +348293d,10 +348293e,b +348293f,93 +3482944,10 +3482945,60 +3482947,16 +3482948,af +3482949,a3 +348294b,1c +348294c,3c +348294d,8 +348294e,80 +348294f,40 +3482950,25 +3482951,8 +3482952,20 +3482954,85 +3482955,9 +3482957,2 +3482958,11 +3482959,20 +348295b,3 +348295c,34 +348295d,a +348295f,1 +3482960,10 +3482963,c +3482964,a5 +3482965,a +3482968,3c +3482969,4 +348296a,80 +348296b,12 +348296c,24 +348296d,84 +348296e,a5 +348296f,d0 +3482970,90 +3482971,65 +3482973,6 +3482974,90 +3482975,66 +3482977,7 +3482978,8c +3482979,69 +348297b,8 +348297c,1 +348297d,20 +348297e,f8 +348297f,9 +3482984,8f +3482985,a3 +3482987,1c +3482988,90 +3482989,65 +348298b,1 +348298c,c +348298d,1 +348298e,bf +348298f,73 +3482990,2 +3482991,20 +3482992,20 +3482993,21 +3482994,8f +3482995,a3 +3482997,1c +3482998,90 +3482999,65 +348299b,3 +348299c,10 +348299f,11 +34829a0,3c +34829a1,9 +34829a2,80 +34829a3,3b +34829a4,25 +34829a5,29 +34829a6,9e +34829a7,7e +34829a8,34 +34829a9,a +34829ab,6 +34829ad,4a +34829af,18 +34829b2,50 +34829b3,12 +34829b4,1 +34829b5,2a +34829b6,80 +34829b7,21 +34829b8,82 +34829b9,5 +34829bc,3c +34829bd,8 +34829be,80 +34829bf,40 +34829c0,25 +34829c1,8 +34829c2,20 +34829c4,85 +34829c5,9 +34829c7,2 +34829c8,11 +34829c9,20 +34829cb,3 +34829cc,34 +34829cd,a +34829cf,1 +34829d0,a5 +34829d1,a +34829d4,34 +34829d5,5 +34829d7,41 +34829d8,c +34829d9,1 +34829da,bf +34829db,73 +34829dc,2 +34829dd,20 +34829de,20 +34829df,21 +34829e0,92 +34829e1,5 +34829e3,3 +34829e4,2 +34829e5,20 +34829e6,20 +34829e7,21 +34829e8,c +34829e9,3 +34829ea,73 +34829eb,85 +34829ee,30 +34829ef,21 +34829f0,8f +34829f1,bf +34829f3,10 +34829f4,8f +34829f5,b0 +34829f7,14 +34829f8,27 +34829f9,bd +34829fb,20 +34829fc,3 +34829fd,e0 +34829ff,8 +3482a04,8f +3482a05,a6 +3482a07,30 +3482a08,84 +3482a09,c5 +3482a0b,4 +3482a0c,8 +3482a0d,10 +3482a0e,a +3482a0f,89 +3482a14,8f +3482a15,b9 +3482a17,2c +3482a18,87 +3482a19,25 +3482a1b,4 +3482a1c,8 +3482a1d,10 +3482a1e,a +3482a1f,89 +3482a24,3c +3482a25,a +3482a26,80 +3482a27,40 +3482a28,25 +3482a29,4a +3482a2a,20 +3482a2b,8 +3482a2c,8d +3482a2d,4b +3482a2f,c +3482a30,11 +3482a31,60 +3482a33,2 +3482a38,95 +3482a39,45 +3482a3b,4 +3482a3c,3c +3482a3d,a +3482a3e,80 +3482a3f,1e +3482a40,25 +3482a41,4a +3482a42,89 +3482a43,84 +3482a44,a5 +3482a45,40 +3482a48,3c +3482a49,9 +3482a4a,80 +3482a4b,40 +3482a4c,25 +3482a4d,29 +3482a4e,20 +3482a4f,18 +3482a50,81 +3482a51,2a +3482a53,3 +3482a54,5 +3482a55,40 +3482a57,b +3482a58,1 +3482a59,2a +3482a5a,48 +3482a5b,20 +3482a5c,81 +3482a5d,28 +3482a60,34 +3482a61,a +3482a63,7f +3482a64,15 +3482a65,a +3482a67,6 +3482a6c,3c +3482a6d,a +3482a6e,80 +3482a6f,12 +3482a70,25 +3482a71,4a +3482a72,a5 +3482a73,d0 +3482a74,85 +3482a75,48 +3482a77,90 +3482a78,21 +3482a79,8 +3482a7b,1 +3482a7c,a5 +3482a7d,48 +3482a7f,90 +3482a80,a1 +3482a81,20 +3482a84,3 +3482a85,e0 +3482a87,8 +3482a8c,3c +3482a8d,8 +3482a8e,80 +3482a8f,40 +3482a90,25 +3482a91,8 +3482a92,20 +3482a93,8 +3482a94,8d +3482a95,9 +3482a97,c +3482a98,11 +3482a99,20 +3482a9b,2 +3482aa0,81 +3482aa1,3 +3482aa3,2 +3482aa5,3 +3482aa6,f +3482aa7,c3 +3482aa9,61 +3482aaa,40 +3482aab,26 +3482aac,1 +3482aad,1 +3482aae,40 +3482aaf,23 +3482ab0,a0 +3482ab1,88 +3482ab2,8 +3482ab3,52 +3482ab4,3 +3482ab5,e0 +3482ab7,8 +3482abc,90 +3482abd,45 +3482abf,3 +3482ac0,3c +3482ac1,8 +3482ac2,80 +3482ac3,40 +3482ac4,25 +3482ac5,8 +3482ac6,20 +3482ac7,8 +3482ac8,8d +3482ac9,9 +3482acb,c +3482acc,11 +3482acd,20 +3482acf,2 +3482ad4,91 +3482ad5,5 +3482ad7,3 +3482ad8,3 +3482ad9,e0 +3482adb,8 +3482ae0,8f +3482ae1,a2 +3482ae3,24 +3482ae4,90 +3482ae5,45 +3482ae8,3c +3482ae9,8 +3482aea,80 +3482aeb,40 +3482aec,25 +3482aed,8 +3482aee,20 +3482af0,85 +3482af1,9 +3482af3,2 +3482af4,11 +3482af5,20 +3482af7,4 +3482af8,34 +3482af9,a +3482afb,1 +3482afc,a5 +3482afd,a +3482b00,10 +3482b03,18 +3482b04,34 +3482b05,5 +3482b07,41 +3482b08,3c +3482b09,8 +3482b0a,80 +3482b0b,40 +3482b0c,25 +3482b0d,8 +3482b0e,20 +3482b0f,8 +3482b10,8d +3482b11,9 +3482b13,c +3482b14,11 +3482b15,20 +3482b17,13 +3482b1c,91 +3482b1d,5 +3482b1f,1 +3482b20,af +3482b21,a4 +3482b24,af +3482b25,a5 +3482b27,4 +3482b28,af +3482b29,a6 +3482b2b,8 +3482b2c,27 +3482b2d,bd +3482b2e,ff +3482b2f,e8 +3482b30,af +3482b31,bf +3482b33,10 +3482b34,3c +3482b35,4 +3482b36,80 +3482b37,12 +3482b38,24 +3482b39,84 +3482b3a,a5 +3482b3b,d0 +3482b3c,91 +3482b3d,5 +3482b3f,6 +3482b40,91 +3482b41,6 +3482b43,7 +3482b44,8d +3482b45,9 +3482b47,8 +3482b48,1 +3482b49,20 +3482b4a,f8 +3482b4b,9 +3482b50,8f +3482b51,bf +3482b53,10 +3482b54,27 +3482b55,bd +3482b57,18 +3482b58,8f +3482b59,a4 +3482b5c,8f +3482b5d,a5 +3482b5f,4 +3482b60,8f +3482b61,a6 +3482b63,8 +3482b64,3 +3482b65,e0 +3482b67,8 +3482b6c,a0 +3482b6d,e6 +3482b6e,4 +3482b6f,24 +3482b70,27 +3482b71,bd +3482b72,ff +3482b73,e0 +3482b74,af +3482b75,a2 +3482b77,10 +3482b78,af +3482b79,a3 +3482b7b,14 +3482b7c,af +3482b7d,bf +3482b7f,18 +3482b80,c +3482b81,10 +3482b82,a +3482b83,e8 +3482b88,8f +3482b89,a2 +3482b8b,10 +3482b8c,8f +3482b8d,a3 +3482b8f,14 +3482b90,8f +3482b91,bf +3482b93,18 +3482b94,27 +3482b95,bd +3482b97,20 +3482b98,3 +3482b99,e0 +3482b9b,8 +3482ba0,27 +3482ba1,bd +3482ba2,ff +3482ba3,e8 +3482ba4,af +3482ba5,bf +3482ba7,10 +3482ba8,3c +3482ba9,8 +3482baa,80 +3482bab,40 +3482bac,25 +3482bad,8 +3482bae,20 +3482baf,8 +3482bb0,ad +3482bb4,ad +3482bb7,4 +3482bb8,ad +3482bbb,8 +3482bbc,ad +3482bbf,c +3482bc0,3c +3482bc1,8 +3482bc2,80 +3482bc3,1e +3482bc4,25 +3482bc5,8 +3482bc6,aa +3482bc7,30 +3482bc8,81 +3482bc9,9 +3482bca,4 +3482bcb,24 +3482bcc,11 +3482bcd,20 +3482bcf,2a +3482bd5,9 +3482bd6,f +3482bd7,c3 +3482bd8,1 +3482bd9,21 +3482bda,20 +3482bdb,26 +3482bdd,81 +3482bde,20 +3482bdf,23 +3482be0,8d +3482be1,5 +3482be2,4 +3482be3,28 +3482be4,c +3482be5,10 +3482be6,b +3482be7,22 +3482bec,4 +3482bed,40 +3482bef,22 +3482bf4,34 +3482bf5,44 +3482bf8,c +3482bf9,10 +3482bfa,b +3482bfb,93 +3482c00,10 +3482c01,60 +3482c03,c +3482c08,3c +3482c09,8 +3482c0a,80 +3482c0b,40 +3482c0c,25 +3482c0d,8 +3482c0e,20 +3482c0f,8 +3482c10,8c +3482c11,69 +3482c14,ad +3482c15,9 +3482c18,8c +3482c19,69 +3482c1b,4 +3482c1c,ad +3482c1d,9 +3482c1f,4 +3482c20,8c +3482c21,69 +3482c23,8 +3482c24,ad +3482c25,9 +3482c27,8 +3482c28,34 +3482c29,9 +3482c2b,1 +3482c2c,ad +3482c2d,9 +3482c2f,c +3482c30,90 +3482c31,62 +3482c34,3c +3482c35,8 +3482c36,80 +3482c37,1e +3482c38,25 +3482c39,8 +3482c3a,aa +3482c3b,30 +3482c3c,8d +3482c3d,9 +3482c3e,4 +3482c3f,28 +3482c40,95 +3482c41,2a +3482c44,34 +3482c45,1 +3482c47,a +3482c48,15 +3482c49,41 +3482c4b,6 +3482c50,95 +3482c51,2a +3482c53,1c +3482c54,31 +3482c55,4a +3482c56,f0 +3482c57,1f +3482c59,2 +3482c5a,59 +3482c5b,40 +3482c5c,1 +3482c5d,4b +3482c5e,50 +3482c5f,25 +3482c60,a5 +3482c61,2a +3482c63,1c +3482c64,81 +3482c65,9 +3482c66,4 +3482c67,24 +3482c68,5 +3482c69,21 +3482c6b,2 +3482c71,2 +3482c72,10 +3482c73,23 +3482c74,a1 +3482c75,2 +3482c76,4 +3482c77,24 +3482c78,8f +3482c79,bf +3482c7b,10 +3482c7c,27 +3482c7d,bd +3482c7f,18 +3482c80,3 +3482c81,e0 +3482c83,8 +3482c88,27 +3482c89,bd +3482c8a,ff +3482c8b,e8 +3482c8c,af +3482c8d,bf +3482c8f,10 +3482c90,c +3482c91,10 +3482c92,b +3482c93,30 +3482c98,24 +3482c99,1 +3482c9a,ff +3482c9b,ff +3482c9c,10 +3482c9d,41 +3482c9f,4 +3482ca4,34 +3482ca5,44 +3482ca8,c +3482ca9,10 +3482caa,b +3482cab,6e +3482cb0,8f +3482cb1,bf +3482cb3,10 +3482cb4,27 +3482cb5,bd +3482cb7,18 +3482cb8,3 +3482cb9,e0 +3482cbb,8 +3482cc0,3c +3482cc1,2 +3482cc2,80 +3482cc3,1d +3482cc4,24 +3482cc5,42 +3482cc6,84 +3482cc7,a0 +3482cc8,94 +3482cc9,42 +3482ccb,a4 +3482ccc,34 +3482ccd,8 +3482cd0,34 +3482cd1,89 +3482cd4,94 +3482cd5,aa +3482cd8,34 +3482cd9,1 +3482cda,1 +3482cdb,9c +3482cdc,15 +3482cdd,41 +3482cdf,8 +3482ce4,34 +3482ce5,8 +3482ce7,3 +3482ce8,94 +3482ce9,ab +3482ceb,1c +3482cec,31 +3482ced,69 +3482cef,ff +3482cf0,31 +3482cf1,62 +3482cf2,1f +3482cf5,2 +3482cf6,12 +3482cf7,2 +3482cf8,10 +3482cfb,1f +3482d00,34 +3482d01,1 +3482d03,a +3482d04,15 +3482d05,41 +3482d07,e +3482d0c,94 +3482d0d,ab +3482d0f,1c +3482d10,34 +3482d11,1 +3482d13,10 +3482d14,14 +3482d15,41 +3482d17,8 +3482d1c,31 +3482d1d,6c +3482d1e,f +3482d1f,e0 +3482d20,34 +3482d21,1 +3482d22,e +3482d23,a0 +3482d24,15 +3482d25,81 +3482d27,4 +3482d2c,24 +3482d2d,2 +3482d2e,ff +3482d2f,ff +3482d30,10 +3482d33,1f +3482d38,34 +3482d39,8 +3482d3b,1 +3482d3c,31 +3482d3d,69 +3482d3f,1f +3482d40,34 +3482d41,1 +3482d43,15 +3482d44,15 +3482d45,41 +3482d47,c +3482d4c,34 +3482d4d,1 +3482d4f,3e +3482d50,10 +3482d51,81 +3482d53,7 +3482d58,34 +3482d59,1 +3482d5b,42 +3482d5c,10 +3482d5d,81 +3482d5f,4 +3482d64,24 +3482d65,2 +3482d66,ff +3482d67,ff +3482d68,10 +3482d6b,11 +3482d70,34 +3482d71,8 +3482d73,2 +3482d74,90 +3482d75,a9 +3482d76,1 +3482d77,41 +3482d78,34 +3482d79,1 +3482d7a,1 +3482d7b,1a +3482d7c,15 +3482d7d,41 +3482d7f,8 +3482d84,34 +3482d85,1 +3482d87,3e +3482d88,14 +3482d89,41 +3482d8b,5 +3482d90,34 +3482d91,8 +3482d93,4 +3482d94,3c +3482d95,b +3482d96,80 +3482d97,12 +3482d98,25 +3482d99,6b +3482d9a,a5 +3482d9b,d0 +3482d9c,81 +3482d9d,62 +3482d9e,13 +3482d9f,97 +3482da1,2 +3482da2,12 +3482da5,48 +3482da6,10 +3482da7,25 +3482da9,2 +3482daa,12 +3482dad,49 +3482dae,10 +3482daf,25 +3482db0,3 +3482db1,e0 +3482db3,8 +3482db8,24 +3482db9,2 +3482dba,ff +3482dbb,ff +3482dbc,3c +3482dbd,8 +3482dbe,80 +3482dbf,40 +3482dc0,25 +3482dc1,8 +3482dc2,1c +3482dc4,81 +3482dc5,9 +3482dc8,3c +3482dc9,8 +3482dca,80 +3482dcb,12 +3482dcc,25 +3482dcd,8 +3482dce,a5 +3482dcf,d0 +3482dd0,a5 +3482dd1,9 +3482dd2,14 +3482dd3,6 +3482dd4,3c +3482dd5,8 +3482dd6,80 +3482dd7,40 +3482dd8,25 +3482dd9,8 +3482dda,f +3482ddb,fc +3482ddc,25 +3482ddd,8 +3482ddf,4 +3482de0,8d +3482de1,9 +3482de4,11 +3482de5,20 +3482de7,17 +3482ded,9 +3482dee,52 +3482def,2 +3482df0,31 +3482df1,4b +3482df2,f8 +3482df5,b +3482df6,5a +3482df7,c2 +3482df8,3c +3482df9,c +3482dfa,ff +3482dfb,ff +3482dfc,35 +3482dfd,8c +3482dfe,7 +3482dff,ff +3482e00,1 +3482e01,4c +3482e02,50 +3482e03,24 +3482e04,15 +3482e05,44 +3482e06,ff +3482e07,f5 +3482e0c,31 +3482e0d,22 +3482e0f,ff +3482e10,3c +3482e11,8 +3482e12,80 +3482e13,12 +3482e14,25 +3482e15,8 +3482e16,a5 +3482e17,d0 +3482e18,a5 +3482e19,b +3482e1a,14 +3482e1b,6 +3482e1c,3c +3482e1d,9 +3482e1e,80 +3482e1f,40 +3482e20,25 +3482e21,29 +3482e22,20 +3482e24,3c +3482e25,c +3482e26,80 +3482e27,40 +3482e28,25 +3482e29,8c +3482e2a,1c +3482e2c,81 +3482e2d,8c +3482e30,11 +3482e31,6c +3482e33,4 +3482e34,a5 +3482e35,20 +3482e37,2 +3482e38,a1 +3482e39,2b +3482e3b,2 +3482e3c,a1 +3482e3d,22 +3482e3f,3 +3482e40,ad +3482e41,24 +3482e43,4 +3482e44,3 +3482e45,e0 +3482e47,8 +3482e4c,27 +3482e4d,bd +3482e4e,ff +3482e4f,e0 +3482e50,af +3482e51,b0 +3482e53,10 +3482e54,af +3482e55,b1 +3482e57,14 +3482e58,af +3482e59,bf +3482e5b,18 +3482e5c,34 +3482e5d,82 +3482e60,34 +3482e61,50 +3482e64,26 +3482e65,8 +3482e66,ff +3482e67,80 +3482e68,5 +3482e6b,12 +3482e70,3c +3482e71,11 +3482e72,80 +3482e73,40 +3482e74,26 +3482e75,31 +3482e76,20 +3482e77,50 +3482e78,34 +3482e79,9 +3482e7b,10 +3482e7c,1 +3482e7d,9 +3482e7f,18 +3482e82,40 +3482e83,12 +3482e84,2 +3482e85,28 +3482e86,88 +3482e87,21 +3482e88,3c +3482e89,4 +3482e8a,80 +3482e8b,12 +3482e8c,24 +3482e8d,84 +3482e8e,a5 +3482e8f,d0 +3482e90,36 +3482e91,5 +3482e94,8e +3482e95,28 +3482e97,c +3482e98,1 +3482e9a,f8 +3482e9b,9 +3482ea0,14 +3482ea1,50 +3482ea2,ff +3482ea3,ef +3482ea8,36 +3482ea9,23 +3482eac,10 +3482eaf,2 +3482eb4,34 +3482eb5,3 +3482eb8,8f +3482eb9,b0 +3482ebb,10 +3482ebc,8f +3482ebd,b1 +3482ebf,14 +3482ec0,8f +3482ec1,bf +3482ec3,18 +3482ec4,27 +3482ec5,bd +3482ec7,20 +3482ec8,3 +3482ec9,e0 +3482ecb,8 +3482ed0,8c +3482ed1,88 +3482ed2,1d +3482ed3,2c +3482ed4,34 +3482ed5,9 +3482ed7,1 +3482ed9,9 +3482eda,4e +3482edc,1 +3482edd,9 +3482ede,10 +3482edf,24 +3482ee0,10 +3482ee1,40 +3482ee3,24 +3482ee8,94 +3482ee9,ca +3482eea,2 +3482eeb,dc +3482eec,3c +3482eed,b +3482eee,80 +3482eef,12 +3482ef0,25 +3482ef1,6b +3482ef2,a5 +3482ef3,d0 +3482ef4,94 +3482ef5,8c +3482ef7,a4 +3482ef8,34 +3482ef9,1 +3482efb,3d +3482efc,11 +3482efd,81 +3482eff,a +3482f05,8a +3482f06,60 +3482f07,21 +3482f08,91 +3482f09,8d +3482f0a,1d +3482f0b,28 +3482f0c,15 +3482f0d,a0 +3482f0f,19 +3482f14,34 +3482f15,d +3482f17,1 +3482f18,a1 +3482f19,8d +3482f1a,1d +3482f1b,28 +3482f1c,25 +3482f1d,4a +3482f1f,3 +3482f20,10 +3482f23,9 +3482f28,34 +3482f29,c +3482f2b,1 +3482f2c,1 +3482f2d,4c +3482f2e,60 +3482f2f,4 +3482f30,91 +3482f31,6d +3482f32,e +3482f33,f2 +3482f34,1 +3482f35,ac +3482f36,70 +3482f37,24 +3482f38,15 +3482f39,c0 +3482f3b,e +3482f40,1 +3482f41,ac +3482f42,70 +3482f43,25 +3482f44,a1 +3482f45,6e +3482f46,e +3482f47,f2 +3482f48,1 +3482f49,29 +3482f4a,48 +3482f4b,27 +3482f4c,1 +3482f4d,9 +3482f4e,40 +3482f4f,24 +3482f50,ac +3482f51,88 +3482f52,1d +3482f53,2c +3482f54,3c +3482f55,8 +3482f56,80 +3482f57,40 +3482f58,25 +3482f59,8 +3482f5a,1c +3482f5b,3 +3482f5c,1 +3482f5d,a +3482f5e,40 +3482f5f,21 +3482f60,81 +3482f61,8 +3482f64,3c +3482f65,9 +3482f66,80 +3482f67,40 +3482f68,25 +3482f69,29 +3482f6a,20 +3482f6b,18 +3482f6c,a1 +3482f6d,28 +3482f70,34 +3482f71,2 +3482f74,3 +3482f75,e0 +3482f77,8 +3482f7c,3c +3482f7d,8 +3482f7e,80 +3482f7f,40 +3482f80,25 +3482f81,8 +3482f82,1c +3482f83,1 +3482f84,81 +3482f85,8 +3482f88,10 +3482f8b,22 +3482f90,3c +3482f91,8 +3482f92,80 +3482f93,40 +3482f94,25 +3482f95,8 +3482f96,1c +3482f97,2 +3482f98,81 +3482f99,8 +3482f9c,10 +3482f9f,1d +3482fa4,34 +3482fa5,2 +3482fa7,ff +3482fa8,20 +3482fa9,e8 +3482faa,ff +3482fab,a6 +3482fac,21 +3482fad,8 +3482faf,61 +3482fb0,10 +3482fb3,18 +3482fb8,34 +3482fb9,8 +3482fbb,64 +3482fbc,10 +3482fbf,15 +3482fc4,3c +3482fc5,1 +3482fc6,80 +3482fc7,12 +3482fc8,24 +3482fc9,21 +3482fca,a5 +3482fcb,d0 +3482fcc,80 +3482fcd,28 +3482fce,e +3482fcf,de +3482fd0,35 +3482fd1,8 +3482fd3,1 +3482fd4,a0 +3482fd5,28 +3482fd6,e +3482fd7,de +3482fd8,34 +3482fd9,8 +3482fdb,68 +3482fdc,10 +3482fdf,d +3482fe4,3c +3482fe5,1 +3482fe6,80 +3482fe7,12 +3482fe8,24 +3482fe9,21 +3482fea,a5 +3482feb,d0 +3482fec,80 +3482fed,28 +3482fee,e +3482fef,de +3482ff0,35 +3482ff1,8 +3482ff3,4 +3482ff4,a0 +3482ff5,28 +3482ff6,e +3482ff7,de +3482ff8,34 +3482ff9,8 +3482ffb,6a +3482ffc,10 +3482fff,5 +3483004,34 +3483005,5 +3483007,3 +3483008,34 +3483009,8 +348300b,6b +348300c,10 +348300f,1 +3483014,3c +3483015,9 +3483016,80 +3483017,40 +3483018,25 +3483019,29 +348301a,20 +348301b,18 +348301c,3c +348301d,a +348301e,80 +348301f,40 +3483020,25 +3483021,4a +3483022,20 +3483023,1b +3483024,81 +3483025,2c +3483028,11 +3483029,88 +348302b,b +348302c,21 +348302d,29 +348302f,1 +3483030,15 +3483031,2a +3483032,ff +3483033,fc +3483038,3c +3483039,9 +348303a,80 +348303b,40 +348303c,25 +348303d,29 +348303e,20 +348303f,17 +3483040,21 +3483041,29 +3483043,1 +3483044,11 +3483045,2a +3483047,4 +3483048,81 +3483049,2c +348304c,15 +348304d,80 +348304e,ff +348304f,fc +3483054,a1 +3483055,28 +3483058,3 +3483059,e0 +348305b,8 +3483061,60 +3483062,78 +3483063,21 +3483064,81 +3483065,ec +3483066,e +3483067,df +3483068,31 +3483069,8e +348306b,80 +348306c,11 +348306d,c0 +348306f,3 +3483070,34 +3483071,3 +3483073,5 +3483074,3 +3483075,e0 +3483077,8 +3483078,34 +3483079,2 +348307b,2 +348307c,3 +348307d,e0 +348307f,8 +3483081,60 +3483082,10 +3483083,21 +3483084,85 +3483085,c2 +3483087,a4 +3483088,3c +3483089,8 +348308a,80 +348308b,12 +348308c,25 +348308d,8 +348308e,a5 +348308f,d0 +3483090,81 +3483091,9 +3483092,e +3483093,df +3483094,35 +3483095,29 +3483097,80 +3483098,a1 +3483099,9 +348309a,e +348309b,df +348309c,3 +348309d,e0 +348309f,8 +34830a4,27 +34830a5,bd +34830a6,ff +34830a7,f0 +34830a8,af +34830a9,bf +34830ab,4 +34830ac,c +34830ad,3 +34830ae,58 +34830af,86 +34830b4,3c +34830b5,c +34830b6,80 +34830b7,12 +34830b8,25 +34830b9,8c +34830ba,a5 +34830bb,d0 +34830bc,85 +34830bd,8d +34830be,f +34830bf,2e +34830c0,8d +34830c1,98 +34830c3,4 +34830c4,13 +34830c7,2 +34830c8,34 +34830c9,e +34830cb,1 +34830cc,34 +34830cd,e +34830cf,2 +34830d0,1 +34830d1,ae +34830d2,68 +34830d3,25 +34830d4,a5 +34830d5,8d +34830d6,f +34830d7,2e +34830d8,8f +34830d9,bf +34830db,4 +34830dc,27 +34830dd,bd +34830df,10 +34830e0,3 +34830e1,e0 +34830e3,8 +34830e8,84 +34830e9,8e +34830eb,1c +34830ec,21 +34830ed,cd +34830ee,ff +34830ef,ce +34830f0,5 +34830f1,a0 +34830f3,10 +34830f4,34 +34830f5,2 +34830f8,31 +34830f9,a9 +34830fb,7 +34830fc,34 +34830fd,a +34830ff,1 +3483100,1 +3483101,2a +3483102,50 +3483103,4 +3483105,d +3483106,48 +3483107,c2 +3483108,3c +3483109,c +348310a,80 +348310b,12 +348310c,25 +348310d,8c +348310e,a5 +348310f,d0 +3483110,1 +3483111,89 +3483112,60 +3483113,20 +3483114,81 +3483115,8b +3483116,5 +3483117,b4 +3483118,1 +3483119,6a +348311a,58 +348311b,24 +348311c,34 +348311d,2 +3483120,11 +3483121,60 +3483123,4 +3483128,34 +3483129,d +348312b,26 +348312c,a4 +348312d,8d +348312f,1c +3483130,34 +3483131,2 +3483133,1 +3483134,3 +3483135,e0 +3483137,8 +348313c,84 +348313d,ae +348313f,1c +3483140,21 +3483141,cd +3483142,ff +3483143,ce +3483144,5 +3483145,a0 +3483147,b +3483148,34 +3483149,2 +348314c,31 +348314d,a9 +348314f,7 +3483150,34 +3483151,a +3483153,1 +3483154,1 +3483155,2a +3483156,50 +3483157,4 +3483159,d +348315a,48 +348315b,c2 +348315c,3c +348315d,c +348315e,80 +348315f,12 +3483160,25 +3483161,8c +3483162,a5 +3483163,d0 +3483164,1 +3483165,89 +3483166,60 +3483167,20 +3483168,81 +3483169,8b +348316a,5 +348316b,b4 +348316c,1 +348316d,6a +348316e,58 +348316f,25 +3483170,a1 +3483171,8b +3483172,5 +3483173,b4 +3483174,3 +3483175,e0 +3483177,8 +348317c,27 +348317d,bd +348317e,ff +348317f,f0 +3483180,af +3483181,bf +3483183,8 +3483184,28 +3483185,81 +3483187,32 +3483188,10 +3483189,20 +348318b,3 +348318d,80 +348318e,10 +348318f,21 +3483190,3 +3483191,20 +3483192,f8 +3483193,9 +3483198,8f +3483199,bf +348319b,8 +348319c,27 +348319d,bd +348319f,10 +34831a0,3 +34831a1,e0 +34831a3,8 +34831a8,3c +34831a9,8 +34831aa,80 +34831ab,1d +34831ac,25 +34831ad,8 +34831ae,84 +34831af,a0 +34831b0,3c +34831b1,9 +34831b2,80 +34831b3,12 +34831b4,25 +34831b5,29 +34831b6,a5 +34831b7,d0 +34831b8,85 +34831b9,a +34831bb,a4 +34831bc,34 +34831bd,1 +34831bf,3e +34831c0,15 +34831c1,41 +34831c3,2 +34831c4,81 +34831c5,2b +34831c6,13 +34831c7,97 +34831c8,21 +34831c9,6a +34831cb,2d +34831cc,86 +34831cd,b +34831cf,1c +34831d0,21 +34831d1,6b +34831d3,1 +34831d4,34 +34831d5,c +34831d7,1 +34831d8,1 +34831d9,6c +34831da,60 +34831db,4 +34831dc,34 +34831dd,1 +34831df,1c +34831e0,1 +34831e1,41 +34831e3,18 +34831e6,68 +34831e7,12 +34831e8,1 +34831e9,2d +34831ea,70 +34831eb,20 +34831ec,8d +34831ed,cf +34831ef,e4 +34831f0,1 +34831f1,8f +34831f2,10 +34831f3,24 +34831f4,3 +34831f5,e0 +34831f7,8 +34831fc,3c +34831fd,8 +34831fe,80 +34831ff,1d +3483200,25 +3483201,8 +3483202,84 +3483203,a0 +3483204,3c +3483205,9 +3483206,80 +3483207,12 +3483208,25 +3483209,29 +348320a,a5 +348320b,d0 +348320c,85 +348320d,a +348320f,a4 +3483210,34 +3483211,1 +3483213,3e +3483214,15 +3483215,41 +3483217,2 +3483218,81 +3483219,2b +348321a,13 +348321b,97 +348321c,21 +348321d,6a +348321f,2d +3483220,84 +3483221,8b +3483223,1c +3483224,21 +3483225,6b +3483227,1 +3483228,34 +3483229,c +348322b,1 +348322c,1 +348322d,6c +348322e,60 +348322f,4 +3483230,34 +3483231,1 +3483233,1c +3483234,1 +3483235,41 +3483237,18 +348323a,68 +348323b,12 +348323c,1 +348323d,2d +348323e,70 +348323f,20 +3483240,8d +3483241,cf +3483243,e4 +3483244,1 +3483245,8f +3483246,78 +3483247,25 +3483248,ad +3483249,cf +348324b,e4 +348324c,3 +348324d,e0 +348324f,8 +3483254,27 +3483255,bd +3483256,ff +3483257,e8 +3483258,af +3483259,bf +348325b,10 +348325c,3c +348325d,a +348325e,80 +348325f,1e +3483260,25 +3483261,4a +3483262,aa +3483263,30 +3483264,81 +3483265,48 +3483266,6 +3483267,6c +3483268,31 +3483269,8 +348326b,20 +348326c,15 +348326f,23 +3483274,3c +3483275,a +3483276,80 +3483277,1d +3483278,25 +3483279,4a +348327a,84 +348327b,a0 +348327c,8d +348327d,48 +348327e,7 +348327f,94 +3483280,15 +3483283,1e +3483284,3c +3483285,9 +3483286,80 +3483287,40 +3483288,25 +3483289,29 +348328a,20 +348328b,1b +348328c,34 +348328d,a +348328f,ff +3483290,a1 +3483291,2a +3483294,3c +3483295,9 +3483296,80 +3483297,40 +3483298,25 +3483299,29 +348329a,20 +348329b,18 +348329c,24 +348329d,a +348329e,ff +348329f,ff +34832a0,34 +34832a1,c +34832a3,3 +34832a4,21 +34832a5,4a +34832a7,1 +34832a8,11 +34832a9,4c +34832ab,14 +34832ac,1 +34832ad,2a +34832ae,58 +34832af,20 +34832b0,81 +34832b1,68 +34832b4,11 +34832b6,ff +34832b7,fb +34832bc,3c +34832bd,9 +34832be,80 +34832bf,40 +34832c0,25 +34832c1,29 +34832c2,20 +34832c3,1b +34832c4,a1 +34832c5,2a +34832c8,3c +34832c9,9 +34832ca,80 +34832cb,1e +34832cc,25 +34832cd,29 +34832ce,89 +34832cf,84 +34832d0,34 +34832d1,a +34832d3,1 +34832d4,a5 +34832d5,2a +34832d8,3c +34832d9,9 +34832da,80 +34832db,48 +34832dc,34 +34832dd,a +34832df,1 +34832e0,ad +34832e1,2a +34832e2,1 +34832e3,30 +34832e4,3c +34832e5,a +34832e6,80 +34832e7,1e +34832e8,25 +34832e9,4a +34832ea,aa +34832eb,30 +34832ec,a1 +34832ed,48 +34832ee,4 +34832ef,24 +34832f0,ad +34832f1,49 +34832f2,4 +34832f3,28 +34832f4,c +34832f5,10 +34832f6,a +34832f7,e8 +34832fc,8e +34832fd,19 +34832ff,4 +3483300,2 +3483302,20 +3483303,25 +3483304,8f +3483305,bf +3483307,10 +3483308,3 +3483309,e0 +348330b,8 +348330c,27 +348330d,bd +348330f,18 +3483310,27 +3483311,bd +3483312,ff +3483313,e8 +3483314,af +3483315,bf +3483317,10 +3483318,c +3483319,10 +348331a,17 +348331b,5 +3483320,3c +3483321,e +3483322,80 +3483323,12 +3483324,91 +3483325,ce +3483326,12 +3483327,12 +3483328,8f +3483329,bf +348332b,10 +348332c,3 +348332d,e0 +348332f,8 +3483330,27 +3483331,bd +3483333,18 +3483334,93 +3483335,19 +3483337,74 +3483338,34 +3483339,1 +348333b,ff +348333c,17 +348333d,21 +348333f,2 +3483344,34 +3483345,19 +3483347,2c +3483348,3 +3483349,e0 +348334b,8 +348334c,a7 +348334d,b9 +348334f,9a +3483350,93 +3483351,2c +3483353,74 +3483354,34 +3483355,1 +3483357,ff +3483358,15 +3483359,81 +348335b,2 +3483360,34 +3483361,c +3483363,2c +3483364,3 +3483365,e0 +3483367,8 +348336c,91 +348336d,ae +348336f,74 +3483370,34 +3483371,1 +3483373,ff +3483374,15 +3483375,c1 +3483377,2 +348337c,34 +348337d,e +348337f,2c +3483380,3 +3483381,e0 +3483383,8 +3483384,a7 +3483385,ae +3483387,9a +3483388,91 +3483389,cf +348338b,74 +348338c,34 +348338d,1 +348338f,ff +3483390,15 +3483391,e1 +3483393,2 +3483398,34 +3483399,f +348339b,2c +348339c,3 +348339d,e0 +348339f,8 +34833a0,a7 +34833a1,af +34833a3,9a +34833a4,3c +34833a5,8 +34833a6,80 +34833a7,40 +34833a8,25 +34833a9,8 +34833aa,20 +34833ab,1c +34833ac,8e +34833ad,9 +34833af,68 +34833b0,ad +34833b1,9 +34833b4,8e +34833b5,9 +34833b7,6c +34833b8,ad +34833b9,9 +34833bb,4 +34833bc,96 +34833bd,9 +34833bf,70 +34833c0,a5 +34833c1,9 +34833c3,8 +34833c4,96 +34833c5,9 +34833c7,9c +34833c8,a5 +34833c9,9 +34833cb,a +34833cc,3 +34833cd,e0 +34833cf,8 +34833d0,8e +34833d1,e +34833d3,4 +34833d4,27 +34833d5,bd +34833d6,ff +34833d7,e0 +34833d8,af +34833d9,b0 +34833db,10 +34833dc,af +34833dd,b1 +34833df,14 +34833e0,af +34833e1,bf +34833e3,18 +34833e4,3c +34833e5,10 +34833e6,80 +34833e7,12 +34833e8,26 +34833e9,10 +34833ea,a5 +34833eb,d0 +34833ec,3c +34833ed,11 +34833ee,80 +34833ef,40 +34833f0,26 +34833f1,31 +34833f2,20 +34833f3,1c +34833f4,8e +34833f5,8 +34833f7,4 +34833f8,11 +34833fb,5 +3483400,c +3483401,10 +3483402,d +3483403,1f +3483408,10 +348340b,3 +3483410,c +3483411,10 +3483412,d +3483413,32 +3483418,c +3483419,10 +348341a,d +348341b,12 +348341c,34 +348341d,4 +3483420,c +3483421,10 +3483422,d +3483423,12 +3483424,34 +3483425,4 +3483427,1 +3483428,c +3483429,10 +348342a,d +348342b,12 +348342c,34 +348342d,4 +348342f,2 +3483430,8f +3483431,b0 +3483433,10 +3483434,8f +3483435,b1 +3483437,14 +3483438,8f +3483439,bf +348343b,18 +348343c,27 +348343d,bd +348343f,20 +3483440,3 +3483441,e0 +3483443,8 +3483448,2 +3483449,4 +348344a,40 +348344b,21 +348344c,91 +348344d,9 +348344f,6c +3483450,34 +3483451,1 +3483453,ff +3483454,11 +3483455,21 +3483457,7 +348345c,2 +348345d,9 +348345e,48 +348345f,21 +3483460,91 +3483461,29 +3483463,74 +3483464,34 +3483465,1 +3483467,2c +3483468,11 +3483469,21 +348346b,2 +3483470,a1 +3483471,9 +3483473,69 +3483474,3 +3483475,e0 +3483477,8 +348347c,27 +348347d,bd +348347e,ff +348347f,e8 +3483480,af +3483481,bf +3483483,10 +3483484,8e +3483485,28 +3483488,ae +3483489,8 +348348b,40 +348348c,8e +348348d,28 +348348f,4 +3483490,ae +3483491,8 +3483493,44 +3483494,96 +3483495,28 +3483497,8 +3483498,a6 +3483499,8 +348349b,48 +348349c,a2 +348349e,f +348349f,33 +34834a0,92 +34834a1,8 +34834a3,4a +34834a4,34 +34834a5,1 +34834a7,ff +34834a8,15 +34834a9,1 +34834ab,3 +34834b0,c +34834b1,10 +34834b2,d +34834b3,40 +34834b8,8f +34834b9,bf +34834bb,10 +34834bc,27 +34834bd,bd +34834bf,18 +34834c0,3 +34834c1,e0 +34834c3,8 +34834c8,8e +34834c9,8 +34834cb,40 +34834cc,ae +34834cd,8 +34834cf,68 +34834d0,8e +34834d1,8 +34834d3,44 +34834d4,ae +34834d5,8 +34834d7,6c +34834d8,96 +34834d9,8 +34834db,48 +34834dc,a6 +34834dd,8 +34834df,70 +34834e0,92 +34834e1,8 +34834e3,68 +34834e4,34 +34834e5,1 +34834e7,ff +34834e8,15 +34834e9,1 +34834eb,3 +34834f0,34 +34834f1,8 +34834f3,1 +34834f4,a2 +34834f5,8 +34834f6,f +34834f7,33 +34834f8,3 +34834f9,e0 +34834fb,8 +3483500,27 +3483501,bd +3483502,ff +3483503,e8 +3483504,af +3483505,bf +3483507,10 +3483508,96 +3483509,8 +348350b,9c +348350c,31 +348350d,8 +348350f,40 +3483510,11 +3483513,5 +3483518,96 +3483519,8 +348351b,70 +348351c,31 +348351d,8 +348351e,ff +348351f,f +3483520,35 +3483521,8 +3483523,30 +3483524,a6 +3483525,8 +3483527,70 +3483528,92 +3483529,28 +348352b,1 +348352c,a2 +348352d,8 +348352f,69 +3483530,96 +3483531,28 +3483533,2 +3483534,a6 +3483535,8 +3483537,6a +3483538,8e +3483539,28 +348353b,4 +348353c,ae +348353d,8 +348353f,6c +3483540,c +3483541,10 +3483542,d +3483543,5a +3483544,34 +3483545,4 +3483548,c +3483549,10 +348354a,d +348354b,5a +348354c,34 +348354d,4 +348354f,1 +3483550,c +3483551,10 +3483552,d +3483553,5a +3483554,34 +3483555,4 +3483557,2 +3483558,8f +3483559,bf +348355b,10 +348355c,27 +348355d,bd +348355f,18 +3483560,3 +3483561,e0 +3483563,8 +3483568,2 +3483569,4 +348356a,40 +348356b,21 +348356c,3c +348356d,9 +348356e,80 +348356f,40 +3483570,25 +3483571,29 +3483572,36 +3483573,14 +3483574,91 +3483575,a +3483577,6c +3483578,34 +3483579,1 +348357b,ff +348357c,11 +348357d,41 +348357f,5 +3483584,1 +3483585,2a +3483586,48 +3483587,21 +3483588,91 +3483589,29 +348358c,15 +348358d,20 +348358f,1c +3483594,3c +3483595,9 +3483596,80 +3483597,40 +3483598,25 +3483599,29 +348359a,36 +348359b,7 +348359c,25 +348359d,29 +348359f,1 +34835a0,91 +34835a1,2a +34835a4,11 +34835a5,40 +34835a7,13 +34835ac,2 +34835ad,a +34835ae,58 +34835af,21 +34835b0,91 +34835b1,6b +34835b3,74 +34835b4,34 +34835b5,1 +34835b7,ff +34835b8,11 +34835b9,61 +34835ba,ff +34835bb,f8 +34835c0,92 +34835c1,c +34835c3,6c +34835c4,11 +34835c5,8a +34835c6,ff +34835c7,f5 +34835cc,92 +34835cd,c +34835cf,6d +34835d0,11 +34835d1,8a +34835d2,ff +34835d3,f2 +34835d8,92 +34835d9,c +34835db,6e +34835dc,11 +34835dd,8a +34835de,ff +34835df,ef +34835e4,a1 +34835e5,b +34835e7,69 +34835e8,a1 +34835e9,a +34835eb,6c +34835ec,10 +34835ef,4 +34835f4,34 +34835f5,9 +34835f7,ff +34835f8,a1 +34835f9,9 +34835fb,69 +34835fc,a1 +34835fd,9 +34835ff,6c +3483600,3 +3483601,e0 +3483603,8 +3483608,7 +3483609,9 +348360a,f +348360b,2 +348360c,3 +348360d,1 +348360e,d +348360f,b +3483615,1 +3483616,1 +3483617,1 +3483618,1 +3483619,1 +348361b,1 +348361c,1 +348361d,1 +348361e,1 +348361f,1 +3483621,1 +3483623,1 +3483624,1 +3483625,1 +3483626,1 +3483627,1 +3483628,1 +3483629,1 +348362a,1 +348362d,33 +348362e,8 +348362f,21 +3483630,20 +3483631,f +3483633,47 +3483634,15 +3483635,ea +3483637,e +3483638,3c +3483639,2 +348363a,80 +348363b,12 +348363c,8c +348363d,42 +348363e,a5 +348363f,d4 +3483640,8e +3483641,6f +3483643,a4 +3483645,f +3483646,7a +3483647,3 +3483648,14 +3483649,40 +348364b,5 +348364c,34 +348364d,2 +348364e,48 +348364f,30 +3483650,15 +3483651,e2 +3483653,7 +3483658,24 +3483659,19 +348365b,3 +348365c,10 +348365f,4 +3483660,34 +3483661,2 +3483662,63 +3483663,11 +3483664,15 +3483665,e2 +3483667,2 +348366c,24 +348366d,19 +348366f,3 +3483670,3 +3483671,e0 +3483673,8 +3483678,8d +3483679,ad +348367a,8a +348367b,a0 +348367c,34 +348367d,2 +348367e,80 +3483680,10 +3483681,4d +3483683,2 +3483688,10 +348368b,9 +348368c,3c +348368d,f +348368e,80 +348368f,1e +3483690,25 +3483691,ef +3483692,84 +3483693,a0 +3483694,81 +3483695,e2 +3483696,1c +3483697,bf +3483698,30 +3483699,42 +348369b,1 +348369c,10 +348369d,40 +348369f,2 +34836a4,10 +34836a7,2 +34836a8,34 +34836a9,2 +34836ab,1 +34836ac,a1 +34836ad,e2 +34836ae,1c +34836af,bf +34836b0,3 +34836b1,e0 +34836b3,8 +34836b9,33 +34836ba,8 +34836bb,21 +34836bc,3c +34836bd,2 +34836be,80 +34836bf,12 +34836c0,8c +34836c1,42 +34836c2,a5 +34836c3,d4 +34836c4,8e +34836c5,6f +34836c7,a4 +34836c9,f +34836ca,7a +34836cb,3 +34836cc,14 +34836cd,40 +34836cf,5 +34836d0,34 +34836d1,2 +34836d2,48 +34836d3,30 +34836d4,15 +34836d5,e2 +34836d7,7 +34836dc,24 +34836dd,19 +34836df,3 +34836e0,10 +34836e3,4 +34836e4,34 +34836e5,2 +34836e6,63 +34836e7,11 +34836e8,15 +34836e9,e2 +34836eb,2 +34836f0,24 +34836f1,19 +34836f3,3 +34836f4,3 +34836f5,e0 +34836f7,8 +34836fc,34 +34836fd,1 +34836ff,18 +3483700,14 +3483701,81 +3483703,11 +3483708,14 +3483709,40 +348370b,f +3483710,3c +3483711,a +3483712,80 +3483713,12 +3483714,25 +3483715,4a +3483716,a5 +3483717,d0 +3483718,81 +3483719,48 +348371b,a6 +348371c,31 +348371d,8 +348371f,20 +3483720,11 +3483723,9 +3483724,34 +3483725,2 +3483728,34 +3483729,2 +348372b,1 +348372c,81 +348372d,48 +348372f,7b +3483730,34 +3483731,9 +3483733,7 +3483734,11 +3483735,9 +3483737,4 +3483738,34 +3483739,a +348373b,8 +348373c,11 +348373d,a +348373f,2 +3483744,34 +3483745,2 +3483748,3 +3483749,e0 +348374b,8 +3483750,80 +3483751,a8 +3483754,25 +3483755,9 +3483757,1 +3483758,15 +3483759,20 +348375b,e +3483760,27 +3483761,bd +3483762,ff +3483763,e8 +3483764,af +3483765,bf +3483767,14 +3483768,af +3483769,a4 +348376b,18 +348376c,af +348376d,a5 +348376f,1c +3483771,5 +3483772,20 +3483773,25 +3483774,24 +3483775,a5 +3483777,8 +3483778,c +3483779,1 +348377a,5c +348377b,c +348377c,24 +348377d,c6 +348377e,ff +348377f,f8 +3483780,8f +3483781,a4 +3483783,18 +3483784,8f +3483785,a5 +3483787,1c +3483788,34 +3483789,6 +348378b,80 +348378c,8f +348378d,bf +348378f,14 +3483790,27 +3483791,bd +3483793,18 +3483794,8 +3483795,1 +3483796,5c +3483797,c +348379c,a2 +348379d,25 +348379f,21 +34837a0,3c +34837a1,10 +34837a2,80 +34837a3,40 +34837a4,26 +34837a5,10 +34837a6,17 +34837a7,fc +34837a8,26 +34837a9,10 +34837ab,4 +34837ac,8e +34837ad,a +34837b0,11 +34837b1,40 +34837b3,b +34837b9,a +34837ba,7c +34837bb,2 +34837bc,1 +34837bd,f1 +34837be,78 +34837bf,20 +34837c0,31 +34837c1,58 +34837c2,ff +34837c5,18 +34837c6,c2 +34837c7,2 +34837c8,17 +34837cb,3 +34837cc,31 +34837cd,59 +34837cf,ff +34837d0,81 +34837d1,ea +34837d4,3 +34837d5,2a +34837d6,c8 +34837d7,25 +34837d8,8 +34837d9,10 +34837da,d +34837db,ea +34837dc,a1 +34837dd,f9 +34837e0,3 +34837e1,e0 +34837e3,8 +34b3000,27 +34b3001,bd +34b3002,ff +34b3003,e8 +34b3004,af +34b3005,bf +34b3007,14 +34b3008,c +34b3009,10 +34b300a,17 +34b300b,2c +34b300c,24 +34b300d,4 +34b300e,4 +34b3010,3c +34b3011,3 +34b3012,80 +34b3013,40 +34b3014,ac +34b3015,62 +34b3016,65 +34b3017,18 +34b3018,3c +34b3019,3 +34b301a,80 +34b301b,40 +34b301c,ac +34b301d,62 +34b301e,65 +34b301f,14 +34b3020,8f +34b3021,bf +34b3023,14 +34b3024,3 +34b3025,e0 +34b3027,8 +34b3028,27 +34b3029,bd +34b302b,18 +34b302c,80 +34b302d,82 +34b3030,10 +34b3031,40 +34b3033,26 +34b3034,24 +34b3035,87 +34b3037,1 +34b3038,3c +34b3039,3 +34b303a,80 +34b303b,40 +34b303c,8c +34b303d,68 +34b303e,65 +34b303f,18 +34b3040,25 +34b3041,8 +34b3042,4 +34b3044,3c +34b3045,3 +34b3046,80 +34b3047,40 +34b3048,8c +34b3049,63 +34b304a,65 +34b304b,14 +34b304d,68 +34b304e,20 +34b304f,2b +34b3050,10 +34b3051,80 +34b3053,1e +34b3054,3c +34b3055,a +34b3056,ff +34b3058,25 +34b3059,4a +34b305a,f +34b305b,ff +34b305c,30 +34b305d,c6 +34b305e,f +34b305f,ff +34b3060,24 +34b3061,b +34b3062,f0 +34b3064,3c +34b3065,9 +34b3066,80 +34b3067,40 +34b3068,10 +34b306b,7 +34b306c,25 +34b306d,29 +34b306e,64 +34b306f,cc +34b3071,68 +34b3072,20 +34b3073,2b +34b3074,54 +34b3075,80 +34b3077,5 +34b3078,a0 +34b3079,62 +34b307c,3c +34b307d,2 +34b307e,80 +34b307f,40 +34b3080,3 +34b3081,e0 +34b3083,8 +34b3084,ac +34b3085,43 +34b3086,65 +34b3087,14 +34b3088,a0 +34b3089,62 +34b308c,30 +34b308d,a2 +34b308e,f +34b308f,ff +34b3091,2 +34b3092,23 +34b3094,8c +34b3095,62 +34b3099,4a +34b309a,10 +34b309b,24 +34b309d,44 +34b309e,10 +34b309f,25 +34b30a1,4b +34b30a2,10 +34b30a3,24 +34b30a5,46 +34b30a6,10 +34b30a7,25 +34b30a8,ac +34b30a9,62 +34b30ac,95 +34b30ad,22 +34b30af,4 +34b30b1,a2 +34b30b2,28 +34b30b3,21 +34b30b4,24 +34b30b5,e7 +34b30b7,1 +34b30b8,80 +34b30b9,e2 +34b30ba,ff +34b30bb,ff +34b30bc,14 +34b30bd,40 +34b30be,ff +34b30bf,ec +34b30c0,24 +34b30c1,63 +34b30c3,4 +34b30c4,3c +34b30c5,2 +34b30c6,80 +34b30c7,40 +34b30c8,ac +34b30c9,43 +34b30ca,65 +34b30cb,14 +34b30cc,3 +34b30cd,e0 +34b30cf,8 +34b30d4,27 +34b30d5,bd +34b30d6,ff +34b30d7,b0 +34b30d8,af +34b30d9,bf +34b30db,4c +34b30dc,af +34b30dd,be +34b30df,48 +34b30e0,af +34b30e1,b7 +34b30e3,44 +34b30e4,af +34b30e5,b6 +34b30e7,40 +34b30e8,af +34b30e9,b5 +34b30eb,3c +34b30ec,af +34b30ed,b4 +34b30ef,38 +34b30f0,af +34b30f1,b3 +34b30f3,34 +34b30f4,af +34b30f5,b2 +34b30f7,30 +34b30f8,af +34b30f9,b1 +34b30fb,2c +34b30fc,af +34b30fd,b0 +34b30ff,28 +34b3101,80 +34b3102,a8 +34b3103,25 +34b3106,b0 +34b3107,25 +34b310a,90 +34b310b,25 +34b310c,3c +34b310d,14 +34b310e,80 +34b310f,40 +34b3110,26 +34b3111,94 +34b3112,64 +34b3113,cc +34b3114,3c +34b3115,1e +34b3116,80 +34b3117,40 +34b3118,3c +34b3119,13 +34b311a,80 +34b311b,40 +34b311c,3c +34b311d,17 +34b311e,38 +34b311f,e3 +34b3120,af +34b3121,b4 +34b3123,20 +34b3124,24 +34b3125,7 +34b3127,12 +34b3128,2 +34b3129,c0 +34b312a,30 +34b312b,25 +34b312c,2 +34b312d,80 +34b312e,28 +34b312f,25 +34b3130,c +34b3131,10 +34b3132,17 +34b3133,66 +34b3134,2 +34b3135,a0 +34b3136,20 +34b3137,25 +34b3138,8f +34b3139,c5 +34b313a,65 +34b313b,18 +34b313c,10 +34b313f,1f +34b3140,36 +34b3141,f1 +34b3142,8e +34b3143,39 +34b3144,24 +34b3145,42 +34b3146,ff +34b3147,e0 +34b3149,51 +34b314b,18 +34b314e,18 +34b314f,10 +34b3151,3 +34b3152,18 +34b3153,83 +34b3155,2 +34b3156,27 +34b3157,c3 +34b3159,64 +34b315a,18 +34b315b,23 +34b315c,14 +34b315d,72 +34b315f,16 +34b3160,24 +34b3161,b0 +34b3163,4 +34b3164,8c +34b3165,a7 +34b3169,7 +34b316a,3b +34b316b,2 +34b316d,51 +34b316f,18 +34b3172,30 +34b3173,10 +34b3175,6 +34b3176,30 +34b3177,83 +34b3179,c4 +34b317a,30 +34b317b,23 +34b317d,6 +34b317e,18 +34b317f,c0 +34b3181,66 +34b3182,30 +34b3183,21 +34b3185,6 +34b3186,30 +34b3187,40 +34b3188,96 +34b3189,83 +34b318b,6 +34b318c,af +34b318d,a3 +34b318f,18 +34b3190,96 +34b3191,83 +34b3193,4 +34b3194,af +34b3195,a3 +34b3197,14 +34b3198,8c +34b3199,a3 +34b319c,30 +34b319d,63 +34b319e,f +34b319f,ff +34b31a0,af +34b31a1,a3 +34b31a3,10 +34b31a4,30 +34b31a5,e7 +34b31a6,f +34b31a7,ff +34b31a9,46 +34b31aa,30 +34b31ab,23 +34b31ac,8f +34b31ad,a5 +34b31af,20 +34b31b0,c +34b31b1,10 +34b31b2,17 +34b31b3,fb +34b31b4,2 +34b31b5,a0 +34b31b6,20 +34b31b7,25 +34b31b8,2 +34b31ba,28 +34b31bb,25 +34b31bc,8e +34b31bd,62 +34b31be,65 +34b31bf,14 +34b31c1,a2 +34b31c2,10 +34b31c3,2b +34b31c4,54 +34b31c5,40 +34b31c6,ff +34b31c7,df +34b31c8,80 +34b31c9,a2 +34b31cc,26 +34b31cd,52 +34b31cf,1 +34b31d0,24 +34b31d1,2 +34b31d3,6 +34b31d4,16 +34b31d5,42 +34b31d6,ff +34b31d7,d3 +34b31d8,26 +34b31d9,d6 +34b31db,12 +34b31dc,3c +34b31dd,2 +34b31de,80 +34b31df,40 +34b31e0,8c +34b31e1,43 +34b31e2,65 +34b31e3,18 +34b31e4,3c +34b31e5,2 +34b31e6,80 +34b31e7,40 +34b31e8,ac +34b31e9,43 +34b31ea,65 +34b31eb,14 +34b31ec,8f +34b31ed,bf +34b31ef,4c +34b31f0,8f +34b31f1,be +34b31f3,48 +34b31f4,8f +34b31f5,b7 +34b31f7,44 +34b31f8,8f +34b31f9,b6 +34b31fb,40 +34b31fc,8f +34b31fd,b5 +34b31ff,3c +34b3200,8f +34b3201,b4 +34b3203,38 +34b3204,8f +34b3205,b3 +34b3207,34 +34b3208,8f +34b3209,b2 +34b320b,30 +34b320c,8f +34b320d,b1 +34b320f,2c +34b3210,8f +34b3211,b0 +34b3213,28 +34b3214,3 +34b3215,e0 +34b3217,8 +34b3218,27 +34b3219,bd +34b321b,50 +34b321c,3c +34b321d,2 +34b321e,80 +34b321f,40 +34b3220,8c +34b3221,42 +34b3222,65 +34b3223,c +34b3224,10 +34b3225,40 +34b3226,2 +34b3227,6e +34b3228,3c +34b3229,3 +34b322a,80 +34b322b,40 +34b322c,27 +34b322d,bd +34b322e,ff +34b322f,90 +34b3230,af +34b3231,bf +34b3233,6c +34b3234,af +34b3235,be +34b3237,68 +34b3238,af +34b3239,b7 +34b323b,64 +34b323c,af +34b323d,b6 +34b323f,60 +34b3240,af +34b3241,b5 +34b3243,5c +34b3244,af +34b3245,b4 +34b3247,58 +34b3248,af +34b3249,b3 +34b324b,54 +34b324c,af +34b324d,b2 +34b324f,50 +34b3250,af +34b3251,b1 +34b3253,4c +34b3254,af +34b3255,b0 +34b3257,48 +34b3258,8c +34b3259,82 +34b325b,4 +34b325c,8c +34b325d,63 +34b325e,65 +34b325f,44 +34b3260,24 +34b3261,45 +34b3263,8 +34b3264,ac +34b3265,85 +34b3267,8 +34b3268,3c +34b3269,5 +34b326a,de +34b326c,ac +34b326d,45 +34b3270,ac +34b3271,43 +34b3273,4 +34b3274,3c +34b3275,2 +34b3276,80 +34b3277,11 +34b3278,34 +34b3279,42 +34b327a,a5 +34b327b,d0 +34b327c,94 +34b327d,54 +34b327e,f +34b327f,2e +34b3280,3c +34b3281,2 +34b3282,80 +34b3283,40 +34b3284,8c +34b3285,42 +34b3286,65 +34b3287,1c +34b3288,50 +34b3289,40 +34b328b,5 +34b328c,24 +34b328d,8 +34b328f,1 +34b3290,32 +34b3291,88 +34b3293,1 +34b3295,14 +34b3296,a0 +34b3297,42 +34b3298,10 +34b329b,2 +34b329c,32 +34b329d,94 +34b329f,1 +34b32a0,24 +34b32a1,14 +34b32a3,1 +34b32a4,3c +34b32a5,2 +34b32a6,80 +34b32a7,40 +34b32a8,8c +34b32a9,55 +34b32aa,65 +34b32ab,28 +34b32ac,12 +34b32ad,a0 +34b32af,7 +34b32b0,2 +34b32b1,a0 +34b32b2,18 +34b32b3,25 +34b32b4,3c +34b32b5,2 +34b32b6,80 +34b32b7,40 +34b32b8,94 +34b32b9,43 +34b32ba,64 +34b32bb,d0 +34b32bd,3 +34b32be,10 +34b32bf,40 +34b32c1,43 +34b32c2,10 +34b32c3,21 +34b32c5,2 +34b32c6,10 +34b32c7,40 +34b32c8,24 +34b32c9,43 +34b32cb,2 +34b32cc,3c +34b32cd,2 +34b32ce,80 +34b32cf,40 +34b32d0,94 +34b32d1,42 +34b32d2,64 +34b32d3,d0 +34b32d5,2 +34b32d6,10 +34b32d7,c0 +34b32d8,24 +34b32d9,42 +34b32db,5e +34b32dd,43 +34b32de,10 +34b32df,21 +34b32e0,24 +34b32e1,3 +34b32e2,1 +34b32e3,40 +34b32e5,62 +34b32e6,18 +34b32e7,23 +34b32e9,3 +34b32ea,8f +34b32eb,c2 +34b32ec,2 +34b32ed,23 +34b32ee,88 +34b32ef,21 +34b32f1,11 +34b32f2,88 +34b32f3,43 +34b32f4,26 +34b32f5,23 +34b32f7,2 +34b32f8,af +34b32f9,a3 +34b32fb,38 +34b32fc,8c +34b32fd,83 +34b32ff,8 +34b3300,24 +34b3301,65 +34b3303,8 +34b3304,ac +34b3305,85 +34b3307,8 +34b3308,3c +34b3309,5 +34b330a,fc +34b330b,ff +34b330c,34 +34b330d,a5 +34b330e,ff +34b330f,ff +34b3310,ac +34b3311,65 +34b3314,3c +34b3315,5 +34b3316,ff +34b3317,fd +34b3318,34 +34b3319,a5 +34b331a,f6 +34b331b,fb +34b331c,ac +34b331d,65 +34b331f,4 +34b3320,8c +34b3321,83 +34b3323,8 +34b3324,24 +34b3325,65 +34b3327,8 +34b3328,ac +34b3329,85 +34b332b,8 +34b332c,3c +34b332d,5 +34b332e,fa +34b3330,ac +34b3331,65 +34b3334,24 +34b3335,5 +34b3337,d0 +34b3338,ac +34b3339,65 +34b333b,4 +34b333d,51 +34b333e,10 +34b333f,21 +34b3341,2 +34b3342,13 +34b3343,80 +34b3344,3c +34b3345,3 +34b3347,ff +34b3348,34 +34b3349,63 +34b334a,f0 +34b334d,43 +34b334e,10 +34b334f,24 +34b3350,3c +34b3351,5 +34b3352,e4 +34b3354,24 +34b3355,a5 +34b3356,3 +34b3357,b8 +34b3359,45 +34b335a,10 +34b335b,25 +34b335c,af +34b335d,a2 +34b335f,20 +34b3361,11 +34b3362,13 +34b3363,80 +34b3365,43 +34b3366,10 +34b3367,24 +34b3368,34 +34b3369,42 +34b336b,8 +34b336c,af +34b336d,a2 +34b336f,24 +34b3370,3c +34b3371,2 +34b3372,e1 +34b3374,af +34b3375,a2 +34b3377,28 +34b3378,af +34b3379,a0 +34b337b,2c +34b337c,3c +34b337d,2 +34b337e,f1 +34b3380,af +34b3381,a2 +34b3383,30 +34b3384,3c +34b3385,2 +34b3386,4 +34b3388,24 +34b3389,42 +34b338a,4 +34b338c,af +34b338d,a2 +34b338f,34 +34b3390,27 +34b3391,a2 +34b3393,20 +34b3394,27 +34b3395,a9 +34b3397,38 +34b3398,8c +34b3399,83 +34b339b,8 +34b339c,24 +34b339d,65 +34b339f,8 +34b33a0,ac +34b33a1,85 +34b33a3,8 +34b33a4,8c +34b33a5,47 +34b33a7,4 +34b33a8,8c +34b33a9,46 +34b33ac,ac +34b33ad,67 +34b33af,4 +34b33b0,24 +34b33b1,42 +34b33b3,8 +34b33b4,15 +34b33b5,22 +34b33b6,ff +34b33b7,f8 +34b33b8,ac +34b33b9,66 +34b33bd,80 +34b33be,80 +34b33bf,25 +34b33c0,8c +34b33c1,82 +34b33c3,8 +34b33c4,24 +34b33c5,43 +34b33c7,8 +34b33c8,ac +34b33c9,83 +34b33cb,8 +34b33cc,3c +34b33cd,3 +34b33ce,e7 +34b33d0,ac +34b33d1,43 +34b33d4,ac +34b33d5,40 +34b33d7,4 +34b33d8,8c +34b33d9,82 +34b33db,8 +34b33dc,24 +34b33dd,43 +34b33df,8 +34b33e0,ac +34b33e1,83 +34b33e3,8 +34b33e4,3c +34b33e5,3 +34b33e6,fc +34b33e7,11 +34b33e8,34 +34b33e9,63 +34b33ea,96 +34b33eb,23 +34b33ec,ac +34b33ed,43 +34b33f0,3c +34b33f1,3 +34b33f2,ff +34b33f3,2f +34b33f4,34 +34b33f5,63 +34b33f6,ff +34b33f7,ff +34b33f8,11 +34b33fb,4d +34b33fc,ac +34b33fd,43 +34b33ff,4 +34b3400,3c +34b3401,5 +34b3402,80 +34b3403,40 +34b3404,24 +34b3405,a5 +34b3406,64 +34b3407,ec +34b3408,94 +34b3409,a7 +34b340b,8 +34b340c,c +34b340d,10 +34b340e,17 +34b340f,66 +34b3412,30 +34b3413,25 +34b3414,3c +34b3415,2 +34b3416,80 +34b3417,40 +34b3418,8c +34b3419,42 +34b341a,65 +34b341b,10 +34b341c,18 +34b341d,40 +34b341f,44 +34b3420,3c +34b3421,2 +34b3422,80 +34b3423,40 +34b3424,3c +34b3425,13 +34b3426,80 +34b3427,40 +34b3428,26 +34b3429,73 +34b342a,64 +34b342b,30 +34b342e,90 +34b342f,25 +34b3430,3c +34b3431,1e +34b3432,80 +34b3433,40 +34b3434,3c +34b3435,16 +34b3436,80 +34b3437,40 +34b3438,26 +34b3439,d6 +34b343a,64 +34b343b,c +34b343c,24 +34b343d,42 +34b343e,64 +34b343f,1c +34b3440,af +34b3441,a2 +34b3443,3c +34b3444,3c +34b3445,2 +34b3446,80 +34b3447,40 +34b3448,24 +34b3449,42 +34b344a,64 +34b344b,ec +34b344c,af +34b344d,a2 +34b344f,40 +34b3450,3c +34b3451,17 +34b3452,80 +34b3453,40 +34b3454,8f +34b3455,c2 +34b3456,65 +34b3457,20 +34b3458,50 +34b3459,40 +34b345b,b +34b345c,92 +34b345d,62 +34b3460,92 +34b3461,63 +34b3464,3c +34b3465,2 +34b3466,80 +34b3467,11 +34b3468,34 +34b3469,42 +34b346a,a5 +34b346b,d0 +34b346d,43 +34b346e,10 +34b346f,21 +34b3470,90 +34b3471,42 +34b3473,a8 +34b3475,2 +34b3476,10 +34b3477,42 +34b3478,30 +34b3479,42 +34b347b,1 +34b347c,50 +34b347d,40 +34b347f,28 +34b3480,26 +34b3481,52 +34b3483,1 +34b3484,92 +34b3485,62 +34b3489,56 +34b348a,10 +34b348b,21 +34b348c,80 +34b348d,46 +34b3490,28 +34b3491,c2 +34b3493,3 +34b3494,54 +34b3495,40 +34b3497,22 +34b3498,26 +34b3499,52 +34b349b,1 +34b349c,24 +34b349d,c6 +34b349e,ff +34b349f,fd +34b34a1,6 +34b34a2,18 +34b34a3,40 +34b34a5,66 +34b34a6,18 +34b34a7,21 +34b34a8,8f +34b34a9,a2 +34b34ab,3c +34b34ad,62 +34b34ae,18 +34b34af,21 +34b34b0,90 +34b34b1,62 +34b34b5,2 +34b34b6,16 +34b34b8,90 +34b34b9,64 +34b34bb,2 +34b34bd,4 +34b34be,22 +34b34c1,44 +34b34c2,10 +34b34c3,25 +34b34c4,90 +34b34c5,63 +34b34c7,1 +34b34c9,3 +34b34ca,1c +34b34cd,43 +34b34ce,10 +34b34cf,25 +34b34d0,34 +34b34d1,42 +34b34d3,ff +34b34d4,8e +34b34d5,3 +34b34d7,8 +34b34d8,24 +34b34d9,64 +34b34db,8 +34b34dc,ae +34b34dd,4 +34b34df,8 +34b34e0,3c +34b34e1,4 +34b34e2,fa +34b34e4,ac +34b34e5,64 +34b34e8,ac +34b34e9,62 +34b34eb,4 +34b34ec,24 +34b34ed,2 +34b34ef,10 +34b34f0,af +34b34f1,a2 +34b34f3,18 +34b34f4,af +34b34f5,a2 +34b34f7,14 +34b34f9,12 +34b34fa,10 +34b34fb,c0 +34b34fd,52 +34b34fe,10 +34b34ff,21 +34b3501,2 +34b3502,10 +34b3503,40 +34b3504,24 +34b3505,42 +34b3507,4 +34b3508,af +34b3509,a2 +34b350b,10 +34b350c,8f +34b350d,a7 +34b350f,38 +34b3510,8f +34b3511,a5 +34b3513,40 +34b3514,c +34b3515,10 +34b3516,17 +34b3517,fb +34b3518,2 +34b351a,20 +34b351b,25 +34b351c,26 +34b351d,52 +34b351f,1 +34b3520,8e +34b3521,e2 +34b3522,65 +34b3523,10 +34b3524,2 +34b3525,42 +34b3526,10 +34b3527,2a +34b3528,14 +34b3529,40 +34b352a,ff +34b352b,ca +34b352c,26 +34b352d,73 +34b352f,c +34b3530,8e +34b3531,2 +34b3533,8 +34b3534,24 +34b3535,43 +34b3537,8 +34b3538,ae +34b3539,3 +34b353b,8 +34b353c,3c +34b353d,3 +34b353e,fa +34b3540,ac +34b3541,43 +34b3544,24 +34b3545,3 +34b3546,ff +34b3547,ff +34b3548,12 +34b3549,80 +34b354b,36 +34b354c,ac +34b354d,43 +34b354f,4 +34b3550,3c +34b3551,5 +34b3552,80 +34b3553,40 +34b3554,24 +34b3555,a5 +34b3556,64 +34b3557,fc +34b3558,94 +34b3559,a7 +34b355b,8 +34b355e,30 +34b355f,25 +34b3560,c +34b3561,10 +34b3562,17 +34b3563,66 +34b3564,2 +34b3566,20 +34b3567,25 +34b3568,3c +34b3569,2 +34b356a,80 +34b356b,40 +34b356c,8c +34b356d,42 +34b356e,65 +34b356f,10 +34b3570,18 +34b3571,40 +34b3572,1 +34b3573,99 +34b3574,3c +34b3575,2 +34b3576,80 +34b3577,40 +34b3578,3c +34b3579,13 +34b357a,80 +34b357b,40 +34b357c,26 +34b357d,73 +34b357e,64 +34b357f,30 +34b3582,90 +34b3583,25 +34b3584,3c +34b3585,17 +34b3586,80 +34b3587,40 +34b3588,3c +34b3589,14 +34b358a,80 +34b358b,40 +34b358c,26 +34b358d,94 +34b358e,64 +34b358f,c +34b3590,24 +34b3591,42 +34b3592,64 +34b3593,fc +34b3594,af +34b3595,a2 +34b3597,3c +34b3598,3c +34b3599,1e +34b359a,80 +34b359b,11 +34b359c,37 +34b359d,de +34b359e,a5 +34b359f,d0 +34b35a0,3c +34b35a1,16 +34b35a2,80 +34b35a3,40 +34b35a4,8e +34b35a5,e2 +34b35a6,65 +34b35a7,20 +34b35a8,10 +34b35a9,40 +34b35ab,8 +34b35ac,92 +34b35ad,62 +34b35b0,3 +34b35b1,c2 +34b35b2,10 +34b35b3,21 +34b35b4,90 +34b35b5,42 +34b35b7,a8 +34b35b9,2 +34b35ba,10 +34b35bb,42 +34b35bc,30 +34b35bd,42 +34b35bf,1 +34b35c0,50 +34b35c1,40 +34b35c3,14 +34b35c4,26 +34b35c5,52 +34b35c7,1 +34b35c8,92 +34b35c9,62 +34b35cd,54 +34b35ce,10 +34b35cf,21 +34b35d0,80 +34b35d1,46 +34b35d4,2c +34b35d5,c2 +34b35d7,3 +34b35d8,50 +34b35d9,40 +34b35db,e +34b35dc,26 +34b35dd,52 +34b35df,1 +34b35e0,24 +34b35e1,2 +34b35e3,10 +34b35e4,af +34b35e5,a2 +34b35e7,18 +34b35e8,af +34b35e9,a2 +34b35eb,14 +34b35ed,12 +34b35ee,10 +34b35ef,c0 +34b35f1,52 +34b35f2,10 +34b35f3,21 +34b35f5,2 +34b35f6,10 +34b35f7,40 +34b35f8,24 +34b35f9,42 +34b35fb,4 +34b35fc,af +34b35fd,a2 +34b35ff,10 +34b3600,8f +34b3601,a7 +34b3603,38 +34b3604,8f +34b3605,a5 +34b3607,3c +34b3608,c +34b3609,10 +34b360a,17 +34b360b,fb +34b360c,2 +34b360e,20 +34b360f,25 +34b3610,26 +34b3611,52 +34b3613,1 +34b3614,8e +34b3615,c2 +34b3616,65 +34b3617,10 +34b3618,2 +34b3619,42 +34b361a,10 +34b361b,2a +34b361c,14 +34b361d,40 +34b361e,ff +34b361f,e1 +34b3620,26 +34b3621,73 +34b3623,c +34b3624,3c +34b3625,2 +34b3626,80 +34b3627,40 +34b3628,8c +34b3629,42 +34b362a,65 +34b362b,10 +34b362c,18 +34b362d,40 +34b362f,10 +34b3630,26 +34b3631,31 +34b3633,14 +34b3634,3c +34b3635,12 +34b3636,80 +34b3637,40 +34b3638,26 +34b3639,52 +34b363a,64 +34b363b,32 +34b363c,24 +34b363d,14 +34b363f,5 +34b3642,98 +34b3643,25 +34b3644,3c +34b3645,16 +34b3646,80 +34b3647,40 +34b3648,2 +34b3649,80 +34b364a,30 +34b364b,25 +34b364c,2 +34b364d,20 +34b364e,28 +34b364f,25 +34b3650,c +34b3651,10 +34b3652,14 +34b3653,b +34b3654,2 +34b3655,40 +34b3656,20 +34b3657,25 +34b3658,26 +34b3659,73 +34b365b,1 +34b365c,26 +34b365d,52 +34b365f,c +34b3660,8e +34b3661,c2 +34b3662,65 +34b3663,10 +34b3664,2 +34b3665,62 +34b3666,10 +34b3667,2a +34b3668,14 +34b3669,40 +34b366a,ff +34b366b,f7 +34b366c,26 +34b366d,94 +34b366f,12 +34b3670,3c +34b3671,2 +34b3672,80 +34b3673,40 +34b3674,94 +34b3675,42 +34b3676,64 +34b3677,d0 +34b3679,2 +34b367a,10 +34b367b,c0 +34b367c,24 +34b367d,42 +34b367f,2 +34b3681,51 +34b3682,88 +34b3683,21 +34b3684,24 +34b3685,7 +34b3687,1 +34b3688,24 +34b3689,6 +34b368b,11 +34b368c,3c +34b368d,5 +34b368e,80 +34b368f,40 +34b3690,24 +34b3691,a5 +34b3692,64 +34b3693,dc +34b3694,c +34b3695,10 +34b3696,17 +34b3697,66 +34b3698,2 +34b369a,20 +34b369b,25 +34b369c,3c +34b369d,2 +34b369e,80 +34b369f,40 +34b36a0,8c +34b36a1,42 +34b36a2,65 +34b36a3,10 +34b36a4,18 +34b36a5,40 +34b36a7,2a +34b36a8,3c +34b36a9,1e +34b36aa,80 +34b36ab,11 +34b36ac,3c +34b36ad,13 +34b36ae,80 +34b36af,40 +34b36b0,26 +34b36b1,73 +34b36b2,64 +34b36b3,30 +34b36b4,24 +34b36b5,14 +34b36b7,5 +34b36ba,90 +34b36bb,25 +34b36bc,2 +34b36bd,60 +34b36be,b0 +34b36bf,25 +34b36c0,37 +34b36c1,de +34b36c2,a5 +34b36c3,d0 +34b36c4,3c +34b36c5,17 +34b36c6,80 +34b36c7,40 +34b36c9,12 +34b36ca,10 +34b36cb,40 +34b36cd,52 +34b36ce,10 +34b36cf,21 +34b36d1,2 +34b36d2,10 +34b36d3,80 +34b36d5,56 +34b36d6,10 +34b36d7,21 +34b36d8,80 +34b36d9,42 +34b36db,1 +34b36dc,4 +34b36dd,43 +34b36df,17 +34b36e0,26 +34b36e1,52 +34b36e3,1 +34b36e4,92 +34b36e5,62 +34b36e8,3 +34b36e9,c2 +34b36ea,10 +34b36eb,21 +34b36ec,90 +34b36ed,42 +34b36ef,bc +34b36f1,2 +34b36f2,1e +34b36f5,3 +34b36f6,1e +34b36f7,3 +34b36f8,28 +34b36f9,63 +34b36fb,a +34b36fc,50 +34b36fd,60 +34b36ff,1 +34b3700,24 +34b3701,2 +34b3703,9 +34b3704,24 +34b3705,3 +34b3706,30 +34b3708,a7 +34b3709,a3 +34b370b,20 +34b370d,40 +34b370e,18 +34b370f,25 +34b3711,2 +34b3712,16 +34b3715,2 +34b3716,16 +34b3717,3 +34b3718,4 +34b3719,42 +34b371b,1 +34b371e,18 +34b371f,25 +34b3720,24 +34b3721,63 +34b3723,30 +34b3724,a3 +34b3725,a3 +34b3727,20 +34b3728,2 +34b3729,80 +34b372a,30 +34b372b,25 +34b372c,2 +34b372d,20 +34b372e,28 +34b372f,25 +34b3730,c +34b3731,10 +34b3732,14 +34b3733,b +34b3734,27 +34b3735,a4 +34b3737,20 +34b3738,26 +34b3739,52 +34b373b,1 +34b373c,26 +34b373d,73 +34b373f,c +34b3740,8e +34b3741,e2 +34b3742,65 +34b3743,10 +34b3744,2 +34b3745,42 +34b3746,10 +34b3747,2a +34b3748,14 +34b3749,40 +34b374a,ff +34b374b,df +34b374c,26 +34b374d,94 +34b374f,12 +34b3750,26 +34b3751,3e +34b3753,12 +34b3754,24 +34b3755,7 +34b3757,1 +34b3758,24 +34b3759,6 +34b375b,e +34b375c,3c +34b375d,5 +34b375e,80 +34b375f,40 +34b3760,24 +34b3761,a5 +34b3762,64 +34b3763,dc +34b3764,c +34b3765,10 +34b3766,17 +34b3767,66 +34b3768,2 +34b376a,20 +34b376b,25 +34b376c,3c +34b376d,2 +34b376e,80 +34b376f,40 +34b3770,8c +34b3771,42 +34b3772,65 +34b3773,10 +34b3774,18 +34b3775,40 +34b3777,2d +34b3778,3c +34b3779,2 +34b377a,80 +34b377b,40 +34b377c,3c +34b377d,13 +34b377e,80 +34b377f,40 +34b3780,26 +34b3781,73 +34b3782,64 +34b3783,30 +34b3786,90 +34b3787,25 +34b3788,24 +34b3789,17 +34b378b,d +34b378c,2 +34b378d,60 +34b378e,a0 +34b378f,25 +34b3790,24 +34b3791,42 +34b3792,64 +34b3793,dc +34b3794,af +34b3795,a2 +34b3797,38 +34b3798,3c +34b3799,16 +34b379a,80 +34b379b,40 +34b379c,92 +34b379d,63 +34b37a0,50 +34b37a1,77 +34b37a3,1 +34b37a4,24 +34b37a5,3 +34b37a7,a +34b37a9,12 +34b37aa,10 +34b37ab,40 +34b37ad,52 +34b37ae,10 +34b37af,21 +34b37b1,2 +34b37b2,10 +34b37b3,80 +34b37b5,54 +34b37b6,10 +34b37b7,21 +34b37b8,90 +34b37b9,42 +34b37bb,1 +34b37bc,30 +34b37bd,42 +34b37bf,40 +34b37c0,50 +34b37c1,40 +34b37c3,16 +34b37c4,26 +34b37c5,52 +34b37c7,1 +34b37c8,3c +34b37c9,2 +34b37ca,80 +34b37cb,11 +34b37cc,34 +34b37cd,42 +34b37ce,a5 +34b37cf,d0 +34b37d1,43 +34b37d2,10 +34b37d3,21 +34b37d4,90 +34b37d5,42 +34b37d7,a8 +34b37d8,30 +34b37d9,42 +34b37db,1 +34b37dc,50 +34b37dd,40 +34b37df,f +34b37e0,26 +34b37e1,52 +34b37e3,1 +34b37e4,24 +34b37e5,2 +34b37e7,10 +34b37e8,af +34b37e9,a2 +34b37eb,18 +34b37ec,af +34b37ed,a2 +34b37ef,14 +34b37f1,12 +34b37f2,10 +34b37f3,c0 +34b37f5,52 +34b37f6,10 +34b37f7,21 +34b37f9,2 +34b37fa,10 +34b37fb,40 +34b37fc,24 +34b37fd,42 +34b37ff,4 +34b3800,af +34b3801,a2 +34b3803,10 +34b3804,3 +34b3805,c0 +34b3806,38 +34b3807,25 +34b380a,30 +34b380b,25 +34b380c,8f +34b380d,a5 +34b380f,38 +34b3810,c +34b3811,10 +34b3812,17 +34b3813,fb +34b3814,2 +34b3816,20 +34b3817,25 +34b3818,26 +34b3819,52 +34b381b,1 +34b381c,8e +34b381d,c2 +34b381e,65 +34b381f,10 +34b3820,2 +34b3821,42 +34b3822,10 +34b3823,2a +34b3824,14 +34b3825,40 +34b3826,ff +34b3827,dd +34b3828,26 +34b3829,73 +34b382b,c +34b382c,24 +34b382d,7 +34b382f,1 +34b3830,24 +34b3831,6 +34b3833,a +34b3834,3c +34b3835,5 +34b3836,80 +34b3837,40 +34b3838,24 +34b3839,a5 +34b383a,64 +34b383b,dc +34b383c,c +34b383d,10 +34b383e,17 +34b383f,66 +34b3840,2 +34b3842,20 +34b3843,25 +34b3844,3c +34b3845,2 +34b3846,80 +34b3847,40 +34b3848,8c +34b3849,42 +34b384a,65 +34b384b,10 +34b384c,58 +34b384d,40 +34b384f,29 +34b3850,26 +34b3851,3e +34b3853,24 +34b3856,90 +34b3857,25 +34b3858,3c +34b3859,13 +34b385a,80 +34b385b,40 +34b385c,26 +34b385d,73 +34b385e,64 +34b385f,30 +34b3860,3c +34b3861,16 +34b3862,80 +34b3863,11 +34b3864,3c +34b3865,17 +34b3866,80 +34b3867,40 +34b3868,26 +34b3869,f7 +34b386a,64 +34b386b,dc +34b386c,3c +34b386d,14 +34b386e,80 +34b386f,40 +34b3871,12 +34b3872,10 +34b3873,40 +34b3875,52 +34b3876,10 +34b3877,21 +34b3879,2 +34b387a,10 +34b387b,80 +34b387d,53 +34b387e,10 +34b387f,21 +34b3880,90 +34b3881,42 +34b3883,1 +34b3884,30 +34b3885,42 +34b3887,20 +34b3888,50 +34b3889,40 +34b388b,15 +34b388c,26 +34b388d,52 +34b388f,1 +34b3890,36 +34b3891,c2 +34b3892,a5 +34b3893,d0 +34b3894,8c +34b3895,42 +34b3897,a4 +34b3898,3c +34b3899,3 +34b389b,40 +34b389d,43 +34b389e,10 +34b389f,24 +34b38a0,50 +34b38a1,40 +34b38a3,f +34b38a4,26 +34b38a5,52 +34b38a7,1 +34b38a8,24 +34b38a9,2 +34b38ab,10 +34b38ac,af +34b38ad,a2 +34b38af,18 +34b38b0,af +34b38b1,a2 +34b38b3,14 +34b38b5,12 +34b38b6,10 +34b38b7,c0 +34b38b9,52 +34b38ba,10 +34b38bb,21 +34b38bd,2 +34b38be,10 +34b38bf,40 +34b38c0,24 +34b38c1,42 +34b38c3,4 +34b38c4,af +34b38c5,a2 +34b38c7,10 +34b38c8,3 +34b38c9,c0 +34b38ca,38 +34b38cb,25 +34b38ce,30 +34b38cf,25 +34b38d0,2 +34b38d1,e0 +34b38d2,28 +34b38d3,25 +34b38d4,c +34b38d5,10 +34b38d6,17 +34b38d7,fb +34b38d8,2 +34b38da,20 +34b38db,25 +34b38dc,26 +34b38dd,52 +34b38df,1 +34b38e0,8e +34b38e1,82 +34b38e2,65 +34b38e3,10 +34b38e4,2 +34b38e5,42 +34b38e6,10 +34b38e7,2a +34b38e8,14 +34b38e9,40 +34b38ea,ff +34b38eb,e2 +34b38ed,12 +34b38ee,10 +34b38ef,40 +34b38f0,26 +34b38f1,3e +34b38f3,24 +34b38f4,24 +34b38f5,7 +34b38f7,1 +34b38f8,24 +34b38f9,6 +34b38fb,10 +34b38fc,3c +34b38fd,5 +34b38fe,80 +34b38ff,40 +34b3900,24 +34b3901,a5 +34b3902,64 +34b3903,dc +34b3904,c +34b3905,10 +34b3906,17 +34b3907,66 +34b3908,2 +34b390a,20 +34b390b,25 +34b390c,3c +34b390d,2 +34b390e,80 +34b390f,40 +34b3910,8c +34b3911,42 +34b3912,65 +34b3913,10 +34b3914,18 +34b3915,40 +34b3917,2b +34b3918,3c +34b3919,13 +34b391a,80 +34b391b,40 +34b391c,26 +34b391d,73 +34b391e,64 +34b391f,30 +34b3922,90 +34b3923,25 +34b3924,2 +34b3925,60 +34b3926,a0 +34b3927,25 +34b3928,3c +34b3929,17 +34b392a,80 +34b392b,11 +34b392c,3c +34b392d,2 +34b392e,80 +34b392f,40 +34b3930,24 +34b3931,42 +34b3932,64 +34b3933,dc +34b3934,af +34b3935,a2 +34b3937,38 +34b3938,3c +34b3939,16 +34b393a,80 +34b393b,40 +34b393d,12 +34b393e,10 +34b393f,40 +34b3941,52 +34b3942,10 +34b3943,21 +34b3945,2 +34b3946,10 +34b3947,80 +34b3949,54 +34b394a,10 +34b394b,21 +34b394c,90 +34b394d,42 +34b394f,1 +34b3950,30 +34b3951,42 +34b3953,10 +34b3954,50 +34b3955,40 +34b3957,17 +34b3958,26 +34b3959,52 +34b395b,1 +34b395c,36 +34b395d,e2 +34b395e,a5 +34b395f,d0 +34b3960,92 +34b3961,63 +34b3965,43 +34b3966,10 +34b3967,21 +34b3968,90 +34b3969,42 +34b396b,a8 +34b396d,2 +34b396e,10 +34b396f,82 +34b3970,30 +34b3971,42 +34b3973,1 +34b3974,50 +34b3975,40 +34b3977,f +34b3978,26 +34b3979,52 +34b397b,1 +34b397c,24 +34b397d,2 +34b397f,10 +34b3980,af +34b3981,a2 +34b3983,18 +34b3984,af +34b3985,a2 +34b3987,14 +34b3989,12 +34b398a,10 +34b398b,c0 +34b398d,52 +34b398e,10 +34b398f,21 +34b3991,2 +34b3992,10 +34b3993,40 +34b3994,24 +34b3995,42 +34b3997,4 +34b3998,af +34b3999,a2 +34b399b,10 +34b399c,3 +34b399d,c0 +34b399e,38 +34b399f,25 +34b39a2,30 +34b39a3,25 +34b39a4,8f +34b39a5,a5 +34b39a7,38 +34b39a8,c +34b39a9,10 +34b39aa,17 +34b39ab,fb +34b39ac,2 +34b39ae,20 +34b39af,25 +34b39b0,26 +34b39b1,52 +34b39b3,1 +34b39b4,8e +34b39b5,c2 +34b39b6,65 +34b39b7,10 +34b39b8,2 +34b39b9,42 +34b39ba,10 +34b39bb,2a +34b39bc,14 +34b39bd,40 +34b39be,ff +34b39bf,df +34b39c0,26 +34b39c1,73 +34b39c3,c +34b39c4,26 +34b39c5,3e +34b39c7,36 +34b39c8,24 +34b39c9,7 +34b39cb,1 +34b39cc,24 +34b39cd,6 +34b39cf,f +34b39d0,3c +34b39d1,5 +34b39d2,80 +34b39d3,40 +34b39d4,24 +34b39d5,a5 +34b39d6,64 +34b39d7,dc +34b39d8,c +34b39d9,10 +34b39da,17 +34b39db,66 +34b39dc,2 +34b39de,20 +34b39df,25 +34b39e0,3c +34b39e1,2 +34b39e2,80 +34b39e3,40 +34b39e4,8c +34b39e5,42 +34b39e6,65 +34b39e7,10 +34b39e8,18 +34b39e9,40 +34b39eb,61 +34b39ec,3c +34b39ed,13 +34b39ee,80 +34b39ef,40 +34b39f0,26 +34b39f1,73 +34b39f2,64 +34b39f3,30 +34b39f6,90 +34b39f7,25 +34b39f8,2 +34b39f9,60 +34b39fa,a0 +34b39fb,25 +34b39fc,3c +34b39fd,17 +34b39fe,80 +34b39ff,11 +34b3a00,3c +34b3a01,2 +34b3a02,80 +34b3a03,40 +34b3a04,24 +34b3a05,42 +34b3a06,64 +34b3a07,dc +34b3a08,af +34b3a09,a2 +34b3a0b,38 +34b3a0c,3c +34b3a0d,16 +34b3a0e,80 +34b3a0f,40 +34b3a11,12 +34b3a12,10 +34b3a13,40 +34b3a15,52 +34b3a16,10 +34b3a17,21 +34b3a19,2 +34b3a1a,10 +34b3a1b,80 +34b3a1d,54 +34b3a1e,10 +34b3a1f,21 +34b3a20,90 +34b3a21,42 +34b3a23,1 +34b3a24,30 +34b3a25,42 +34b3a27,10 +34b3a28,50 +34b3a29,40 +34b3a2b,17 +34b3a2c,26 +34b3a2d,52 +34b3a2f,1 +34b3a30,36 +34b3a31,e2 +34b3a32,a5 +34b3a33,d0 +34b3a34,92 +34b3a35,63 +34b3a39,43 +34b3a3a,10 +34b3a3b,21 +34b3a3c,90 +34b3a3d,42 +34b3a3f,a8 +34b3a41,2 +34b3a42,10 +34b3a43,42 +34b3a44,30 +34b3a45,42 +34b3a47,1 +34b3a48,50 +34b3a49,40 +34b3a4b,f +34b3a4c,26 +34b3a4d,52 +34b3a4f,1 +34b3a50,24 +34b3a51,2 +34b3a53,10 +34b3a54,af +34b3a55,a2 +34b3a57,18 +34b3a58,af +34b3a59,a2 +34b3a5b,14 +34b3a5d,12 +34b3a5e,10 +34b3a5f,c0 +34b3a61,52 +34b3a62,10 +34b3a63,21 +34b3a65,2 +34b3a66,10 +34b3a67,40 +34b3a68,24 +34b3a69,42 +34b3a6b,4 +34b3a6c,af +34b3a6d,a2 +34b3a6f,10 +34b3a70,3 +34b3a71,c0 +34b3a72,38 +34b3a73,25 +34b3a76,30 +34b3a77,25 +34b3a78,8f +34b3a79,a5 +34b3a7b,38 +34b3a7c,c +34b3a7d,10 +34b3a7e,17 +34b3a7f,fb +34b3a80,2 +34b3a82,20 +34b3a83,25 +34b3a84,26 +34b3a85,52 +34b3a87,1 +34b3a88,8e +34b3a89,c2 +34b3a8a,65 +34b3a8b,10 +34b3a8c,2 +34b3a8d,42 +34b3a8e,10 +34b3a8f,2a +34b3a90,14 +34b3a91,40 +34b3a92,ff +34b3a93,df +34b3a94,26 +34b3a95,73 +34b3a97,c +34b3a98,12 +34b3a99,a0 +34b3a9b,35 +34b3a9c,3c +34b3a9d,2 +34b3a9e,80 +34b3a9f,40 +34b3aa0,8c +34b3aa1,42 +34b3aa2,65 +34b3aa3,10 +34b3aa4,18 +34b3aa5,40 +34b3aa7,32 +34b3aa8,3c +34b3aa9,13 +34b3aaa,80 +34b3aab,40 +34b3aac,26 +34b3aad,73 +34b3aae,64 +34b3aaf,30 +34b3ab0,24 +34b3ab1,14 +34b3ab3,5 +34b3ab6,90 +34b3ab7,25 +34b3ab8,3c +34b3ab9,17 +34b3aba,80 +34b3abb,40 +34b3abc,3c +34b3abd,16 +34b3abe,80 +34b3abf,40 +34b3ac0,26 +34b3ac1,d6 +34b3ac2,65 +34b3ac3,30 +34b3ac4,3c +34b3ac5,15 +34b3ac6,80 +34b3ac7,40 +34b3ac8,26 +34b3ac9,b5 +34b3aca,64 +34b3acc,3c +34b3acd,2 +34b3ace,80 +34b3acf,40 +34b3ad0,24 +34b3ad1,42 +34b3ad2,64 +34b3ad3,4 +34b3ad4,af +34b3ad5,a2 +34b3ad7,38 +34b3ad8,3c +34b3ad9,1e +34b3ada,80 +34b3adb,40 +34b3adc,8e +34b3add,e2 +34b3ade,65 +34b3adf,24 +34b3ae0,50 +34b3ae1,40 +34b3ae3,14 +34b3ae4,92 +34b3ae5,62 +34b3ae9,12 +34b3aea,10 +34b3aeb,40 +34b3aed,52 +34b3aee,10 +34b3aef,21 +34b3af1,2 +34b3af2,10 +34b3af3,80 +34b3af4,27 +34b3af5,c3 +34b3af6,64 +34b3af7,30 +34b3af9,43 +34b3afa,10 +34b3afb,21 +34b3afc,90 +34b3afd,42 +34b3aff,1 +34b3b00,30 +34b3b01,42 +34b3b03,10 +34b3b04,50 +34b3b05,40 +34b3b07,b +34b3b08,92 +34b3b09,62 +34b3b0c,92 +34b3b0d,63 +34b3b10,3c +34b3b11,2 +34b3b12,80 +34b3b13,11 +34b3b14,34 +34b3b15,42 +34b3b16,a5 +34b3b17,d0 +34b3b19,43 +34b3b1a,10 +34b3b1b,21 +34b3b1c,90 +34b3b1d,42 +34b3b1f,a8 +34b3b21,2 +34b3b22,10 +34b3b23,82 +34b3b24,30 +34b3b25,42 +34b3b27,1 +34b3b28,50 +34b3b29,40 +34b3b2b,b +34b3b2c,26 +34b3b2d,52 +34b3b2f,1 +34b3b30,92 +34b3b31,62 +34b3b35,56 +34b3b36,10 +34b3b37,21 +34b3b38,90 +34b3b39,42 +34b3b3c,14 +34b3b3d,40 +34b3b3f,2 +34b3b40,2 +34b3b41,a0 +34b3b42,20 +34b3b43,25 +34b3b44,8f +34b3b45,a4 +34b3b47,38 +34b3b48,2 +34b3b49,80 +34b3b4a,30 +34b3b4b,25 +34b3b4c,c +34b3b4d,10 +34b3b4e,14 +34b3b4f,b +34b3b50,26 +34b3b51,25 +34b3b53,48 +34b3b54,26 +34b3b55,52 +34b3b57,1 +34b3b58,26 +34b3b59,94 +34b3b5b,12 +34b3b5c,3c +34b3b5d,2 +34b3b5e,80 +34b3b5f,40 +34b3b60,8c +34b3b61,42 +34b3b62,65 +34b3b63,10 +34b3b64,2 +34b3b65,42 +34b3b66,10 +34b3b67,2a +34b3b68,14 +34b3b69,40 +34b3b6a,ff +34b3b6b,dc +34b3b6c,26 +34b3b6d,73 +34b3b6f,c +34b3b70,c +34b3b71,10 +34b3b72,14 +34b3b73,35 +34b3b74,2 +34b3b76,20 +34b3b77,25 +34b3b78,8e +34b3b79,2 +34b3b7b,8 +34b3b7c,24 +34b3b7d,43 +34b3b7f,8 +34b3b80,ae +34b3b81,3 +34b3b83,8 +34b3b84,3c +34b3b85,3 +34b3b86,e9 +34b3b88,ac +34b3b89,43 +34b3b8c,ac +34b3b8d,40 +34b3b8f,4 +34b3b90,8e +34b3b91,2 +34b3b93,8 +34b3b94,24 +34b3b95,43 +34b3b97,8 +34b3b98,ae +34b3b99,3 +34b3b9b,8 +34b3b9c,3c +34b3b9d,3 +34b3b9e,df +34b3ba0,ac +34b3ba1,43 +34b3ba4,ac +34b3ba5,40 +34b3ba7,4 +34b3ba8,8f +34b3ba9,bf +34b3bab,6c +34b3bac,8f +34b3bad,be +34b3baf,68 +34b3bb0,8f +34b3bb1,b7 +34b3bb3,64 +34b3bb4,8f +34b3bb5,b6 +34b3bb7,60 +34b3bb8,8f +34b3bb9,b5 +34b3bbb,5c +34b3bbc,8f +34b3bbd,b4 +34b3bbf,58 +34b3bc0,8f +34b3bc1,b3 +34b3bc3,54 +34b3bc4,8f +34b3bc5,b2 +34b3bc7,50 +34b3bc8,8f +34b3bc9,b1 +34b3bcb,4c +34b3bcc,8f +34b3bcd,b0 +34b3bcf,48 +34b3bd0,3 +34b3bd1,e0 +34b3bd3,8 +34b3bd4,27 +34b3bd5,bd +34b3bd7,70 +34b3bd8,10 +34b3bda,fe +34b3bdb,a5 +34b3bdc,26 +34b3bdd,31 +34b3bdf,14 +34b3be0,3 +34b3be1,e0 +34b3be3,8 +34b3be8,27 +34b3be9,bd +34b3bea,ff +34b3beb,e8 +34b3bec,af +34b3bed,bf +34b3bef,14 +34b3bf0,c +34b3bf1,10 +34b3bf2,17 +34b3bf3,27 +34b3bf8,c +34b3bf9,10 +34b3bfa,18 +34b3bfb,ae +34b3c00,c +34b3c01,10 +34b3c02,14 +34b3c08,8f +34b3c09,bf +34b3c0b,14 +34b3c0c,3 +34b3c0d,e0 +34b3c0f,8 +34b3c10,27 +34b3c11,bd +34b3c13,18 +34b3c14,3c +34b3c15,2 +34b3c16,80 +34b3c17,1c +34b3c18,34 +34b3c19,42 +34b3c1a,84 +34b3c1b,a0 +34b3c1c,3c +34b3c1d,3 +34b3c1f,1 +34b3c21,43 +34b3c22,10 +34b3c23,21 +34b3c24,94 +34b3c25,43 +34b3c26,9 +34b3c27,34 +34b3c28,24 +34b3c29,2 +34b3c2b,6 +34b3c2c,14 +34b3c2d,62 +34b3c2f,19 +34b3c30,3c +34b3c31,2 +34b3c32,80 +34b3c33,1c +34b3c34,34 +34b3c35,42 +34b3c36,84 +34b3c37,a0 +34b3c38,3c +34b3c39,3 +34b3c3b,1 +34b3c3d,43 +34b3c3e,10 +34b3c3f,21 +34b3c40,94 +34b3c41,42 +34b3c42,9 +34b3c43,48 +34b3c44,14 +34b3c45,40 +34b3c47,13 +34b3c48,3c +34b3c49,2 +34b3c4a,80 +34b3c4b,1c +34b3c4c,34 +34b3c4d,42 +34b3c4e,84 +34b3c4f,a0 +34b3c51,43 +34b3c52,10 +34b3c53,21 +34b3c54,94 +34b3c55,42 +34b3c56,9 +34b3c57,44 +34b3c58,14 +34b3c59,40 +34b3c5b,e +34b3c5c,3c +34b3c5d,2 +34b3c5e,80 +34b3c5f,1c +34b3c60,34 +34b3c61,42 +34b3c62,84 +34b3c63,a0 +34b3c64,84 +34b3c65,42 +34b3c67,14 +34b3c68,4 +34b3c69,41 +34b3c6b,a +34b3c6c,3c +34b3c6d,2 +34b3c6e,80 +34b3c6f,1c +34b3c70,27 +34b3c71,bd +34b3c72,ff +34b3c73,e8 +34b3c74,af +34b3c75,bf +34b3c77,14 +34b3c78,34 +34b3c79,42 +34b3c7a,84 +34b3c7b,a0 +34b3c7c,8c +34b3c7d,44 +34b3c80,c +34b3c81,10 +34b3c82,14 +34b3c83,87 +34b3c84,24 +34b3c85,84 +34b3c86,2 +34b3c87,a8 +34b3c88,8f +34b3c89,bf +34b3c8b,14 +34b3c8c,3 +34b3c8d,e0 +34b3c8f,8 +34b3c90,27 +34b3c91,bd +34b3c93,18 +34b3c94,3 +34b3c95,e0 +34b3c97,8 +34b3c9c,3c +34b3c9d,3 +34b3c9e,80 +34b3c9f,40 +34b3ca0,3c +34b3ca1,2 +34b3ca2,80 +34b3ca3,50 +34b3ca4,24 +34b3ca5,42 +34b3ca8,3 +34b3ca9,e0 +34b3cab,8 +34b3cac,ac +34b3cad,62 +34b3cae,65 +34b3caf,2c +34b3cb1,4 +34b3cb2,17 +34b3cb3,c3 +34b3cb5,2 +34b3cb6,1f +34b3cb7,2 +34b3cb9,83 +34b3cba,10 +34b3cbb,21 +34b3cbc,30 +34b3cbd,42 +34b3cbf,f +34b3cc1,43 +34b3cc2,10 +34b3cc3,23 +34b3cc4,10 +34b3cc5,40 +34b3cc7,3 +34b3cc8,3c +34b3cc9,3 +34b3cca,80 +34b3ccb,40 +34b3ccd,82 +34b3cce,20 +34b3ccf,23 +34b3cd0,24 +34b3cd1,84 +34b3cd3,10 +34b3cd4,8c +34b3cd5,62 +34b3cd6,65 +34b3cd7,2c +34b3cd9,44 +34b3cda,20 +34b3cdb,21 +34b3cdc,3 +34b3cdd,e0 +34b3cdf,8 +34b3ce0,ac +34b3ce1,64 +34b3ce2,65 +34b3ce3,2c +34b3ce4,27 +34b3ce5,bd +34b3ce6,ff +34b3ce7,e8 +34b3ce8,af +34b3ce9,bf +34b3ceb,14 +34b3cec,af +34b3ced,b0 +34b3cef,10 +34b3cf1,80 +34b3cf2,80 +34b3cf3,25 +34b3cf4,c +34b3cf5,10 +34b3cf6,17 +34b3cf7,2c +34b3cf8,8c +34b3cf9,84 +34b3cfb,8 +34b3cfc,ae +34b3cfd,2 +34b3d00,8e +34b3d01,6 +34b3d03,8 +34b3d05,40 +34b3d06,20 +34b3d07,25 +34b3d08,3c +34b3d09,2 +34b3d0a,80 +34b3d0c,24 +34b3d0d,42 +34b3d0e,d +34b3d0f,f0 +34b3d11,40 +34b3d12,f8 +34b3d13,9 +34b3d14,8e +34b3d15,5 +34b3d17,4 +34b3d18,8f +34b3d19,bf +34b3d1b,14 +34b3d1c,8f +34b3d1d,b0 +34b3d1f,10 +34b3d20,3 +34b3d21,e0 +34b3d23,8 +34b3d24,27 +34b3d25,bd +34b3d27,18 +34b3d28,ac +34b3d29,86 +34b3d2c,ac +34b3d2d,85 +34b3d2f,4 +34b3d30,ac +34b3d31,85 +34b3d33,8 +34b3d35,a6 +34b3d36,28 +34b3d37,21 +34b3d38,3 +34b3d39,e0 +34b3d3b,8 +34b3d3c,ac +34b3d3d,85 +34b3d3f,c +34b3d40,94 +34b3d41,82 +34b3d43,4 +34b3d44,94 +34b3d45,83 +34b3d47,6 +34b3d49,43 +34b3d4b,18 +34b3d4e,10 +34b3d4f,12 +34b3d50,90 +34b3d51,83 +34b3d53,c +34b3d59,43 +34b3d5b,18 +34b3d5e,10 +34b3d5f,12 +34b3d60,3 +34b3d61,e0 +34b3d63,8 +34b3d68,27 +34b3d69,bd +34b3d6a,ff +34b3d6b,e8 +34b3d6c,af +34b3d6d,bf +34b3d6f,14 +34b3d70,af +34b3d71,b0 +34b3d73,10 +34b3d74,c +34b3d75,10 +34b3d76,17 +34b3d77,50 +34b3d79,80 +34b3d7a,80 +34b3d7b,25 +34b3d7c,96 +34b3d7d,3 +34b3d7f,8 +34b3d81,62 +34b3d83,18 +34b3d86,10 +34b3d87,12 +34b3d88,8f +34b3d89,bf +34b3d8b,14 +34b3d8c,8f +34b3d8d,b0 +34b3d8f,10 +34b3d90,3 +34b3d91,e0 +34b3d93,8 +34b3d94,27 +34b3d95,bd +34b3d97,18 +34b3d98,27 +34b3d99,bd +34b3d9a,ff +34b3d9b,90 +34b3d9c,af +34b3d9d,bf +34b3d9f,6c +34b3da0,af +34b3da1,b7 +34b3da3,68 +34b3da4,af +34b3da5,b6 +34b3da7,64 +34b3da8,af +34b3da9,b5 +34b3dab,60 +34b3dac,af +34b3dad,b4 +34b3daf,5c +34b3db0,af +34b3db1,b3 +34b3db3,58 +34b3db4,af +34b3db5,b2 +34b3db7,54 +34b3db8,af +34b3db9,b1 +34b3dbb,50 +34b3dbc,af +34b3dbd,b0 +34b3dbf,4c +34b3dc1,80 +34b3dc2,80 +34b3dc3,25 +34b3dc5,a0 +34b3dc6,a8 +34b3dc7,25 +34b3dc9,c0 +34b3dca,b8 +34b3dcb,25 +34b3dcd,e0 +34b3dce,b0 +34b3dcf,25 +34b3dd0,90 +34b3dd1,b2 +34b3dd3,a +34b3dd5,12 +34b3dd6,95 +34b3dd7,40 +34b3dd8,3c +34b3dd9,2 +34b3ddb,e0 +34b3ddc,2 +34b3ddd,42 +34b3dde,90 +34b3ddf,24 +34b3de0,90 +34b3de1,b1 +34b3de3,b +34b3de4,2e +34b3de5,22 +34b3de7,2 +34b3de8,10 +34b3de9,40 +34b3deb,2 +34b3dec,2 +34b3ded,20 +34b3dee,98 +34b3def,25 +34b3df0,24 +34b3df1,13 +34b3df3,2 +34b3df4,32 +34b3df5,73 +34b3df7,ff +34b3df9,13 +34b3dfa,a4 +34b3dfb,c0 +34b3dfc,3c +34b3dfd,2 +34b3dff,18 +34b3e00,2 +34b3e01,82 +34b3e02,a0 +34b3e03,24 +34b3e04,2 +34b3e05,92 +34b3e06,a0 +34b3e07,25 +34b3e08,3c +34b3e09,2 +34b3e0a,fd +34b3e0c,2 +34b3e0d,82 +34b3e0e,10 +34b3e0f,25 +34b3e10,af +34b3e11,a2 +34b3e13,10 +34b3e14,c +34b3e15,10 +34b3e16,17 +34b3e17,50 +34b3e18,2 +34b3e19,a0 +34b3e1a,20 +34b3e1b,25 +34b3e1d,57 +34b3e1f,18 +34b3e22,10 +34b3e23,12 +34b3e24,8e +34b3e25,a3 +34b3e29,62 +34b3e2a,18 +34b3e2b,21 +34b3e2c,af +34b3e2d,a3 +34b3e2f,14 +34b3e30,3c +34b3e31,2 +34b3e32,f5 +34b3e34,2 +34b3e35,82 +34b3e36,a0 +34b3e37,25 +34b3e38,af +34b3e39,b4 +34b3e3b,18 +34b3e3c,3c +34b3e3d,2 +34b3e3e,7 +34b3e40,af +34b3e41,a2 +34b3e43,1c +34b3e44,3c +34b3e45,2 +34b3e46,e6 +34b3e48,af +34b3e49,a2 +34b3e4b,20 +34b3e4c,af +34b3e4d,a0 +34b3e4f,24 +34b3e50,3c +34b3e51,2 +34b3e52,f3 +34b3e54,af +34b3e55,a2 +34b3e57,28 +34b3e58,96 +34b3e59,a3 +34b3e5b,4 +34b3e5c,96 +34b3e5d,a7 +34b3e5f,6 +34b3e61,f6 +34b3e63,18 +34b3e66,38 +34b3e67,12 +34b3e68,24 +34b3e69,5 +34b3e6b,4 +34b3e6c,2 +34b3e6d,25 +34b3e6e,20 +34b3e6f,4 +34b3e71,67 +34b3e73,18 +34b3e76,10 +34b3e77,12 +34b3e78,24 +34b3e79,42 +34b3e7b,1 +34b3e81,44 +34b3e83,18 +34b3e86,10 +34b3e87,12 +34b3e88,24 +34b3e89,42 +34b3e8a,ff +34b3e8b,ff +34b3e8c,2 +34b3e8d,65 +34b3e8e,98 +34b3e8f,4 +34b3e90,16 +34b3e91,60 +34b3e93,2 +34b3e95,53 +34b3e97,1a +34b3e99,7 +34b3e9b,d +34b3e9e,10 +34b3e9f,12 +34b3ea0,24 +34b3ea1,42 +34b3ea2,ff +34b3ea3,ff +34b3ea5,2 +34b3ea6,13 +34b3ea8,3c +34b3ea9,5 +34b3eab,ff +34b3eac,34 +34b3ead,a5 +34b3eae,f0 +34b3eb1,45 +34b3eb2,10 +34b3eb3,24 +34b3eb5,64 +34b3eb7,18 +34b3eba,40 +34b3ebb,12 +34b3ebc,29 +34b3ebd,5 +34b3ebf,41 +34b3ec0,14 +34b3ec1,a0 +34b3ec3,b +34b3ec4,24 +34b3ec5,6 +34b3ec6,8 +34b3ec9,8 +34b3eca,2f +34b3ecb,c3 +34b3ecc,30 +34b3ecd,a5 +34b3ecf,3f +34b3ed1,a8 +34b3ed2,28 +34b3ed3,21 +34b3ed5,5 +34b3ed6,29 +34b3ed7,83 +34b3ed8,24 +34b3ed9,a6 +34b3eda,7 +34b3edb,ff +34b3edc,14 +34b3edd,a0 +34b3edf,2 +34b3ee1,c5 +34b3ee3,1a +34b3ee5,7 +34b3ee7,d +34b3eea,30 +34b3eeb,12 +34b3eec,30 +34b3eed,c6 +34b3eee,f +34b3eef,ff +34b3ef1,46 +34b3ef2,10 +34b3ef3,25 +34b3ef4,3c +34b3ef5,5 +34b3ef6,7 +34b3ef9,45 +34b3efa,10 +34b3efb,25 +34b3efc,af +34b3efd,a2 +34b3eff,2c +34b3f00,3c +34b3f01,2 +34b3f02,e7 +34b3f04,af +34b3f05,a2 +34b3f07,30 +34b3f08,af +34b3f09,a0 +34b3f0b,34 +34b3f0d,11 +34b3f0e,14 +34b3f0f,c0 +34b3f10,3c +34b3f11,5 +34b3f13,18 +34b3f15,45 +34b3f16,10 +34b3f17,24 +34b3f18,2e +34b3f19,31 +34b3f1b,2 +34b3f1c,16 +34b3f1d,20 +34b3f1f,2 +34b3f21,52 +34b3f22,10 +34b3f23,25 +34b3f24,24 +34b3f25,4 +34b3f27,10 +34b3f29,64 +34b3f2b,18 +34b3f2e,20 +34b3f2f,12 +34b3f30,24 +34b3f31,84 +34b3f33,3f +34b3f35,4 +34b3f36,97 +34b3f37,c3 +34b3f38,32 +34b3f39,52 +34b3f3b,3f +34b3f3c,2 +34b3f3d,44 +34b3f3e,90 +34b3f3f,21 +34b3f41,12 +34b3f42,90 +34b3f43,c0 +34b3f44,3c +34b3f45,4 +34b3f47,3 +34b3f48,34 +34b3f49,84 +34b3f4a,fe +34b3f4c,2 +34b3f4d,44 +34b3f4e,90 +34b3f4f,24 +34b3f50,2 +34b3f51,42 +34b3f52,90 +34b3f53,25 +34b3f54,3c +34b3f55,2 +34b3f56,f5 +34b3f58,2 +34b3f59,42 +34b3f5a,90 +34b3f5b,25 +34b3f5c,af +34b3f5d,b2 +34b3f5f,38 +34b3f60,af +34b3f61,a0 +34b3f63,3c +34b3f64,3c +34b3f65,2 +34b3f66,f2 +34b3f68,af +34b3f69,a2 +34b3f6b,40 +34b3f6c,24 +34b3f6d,62 +34b3f6e,3f +34b3f6f,ff +34b3f71,2 +34b3f72,13 +34b3f73,80 +34b3f74,3c +34b3f75,3 +34b3f77,ff +34b3f78,34 +34b3f79,63 +34b3f7a,f0 +34b3f7d,43 +34b3f7e,10 +34b3f7f,24 +34b3f80,24 +34b3f81,e7 +34b3f82,ff +34b3f83,ff +34b3f85,7 +34b3f86,38 +34b3f87,80 +34b3f88,30 +34b3f89,e7 +34b3f8a,f +34b3f8b,fc +34b3f8d,47 +34b3f8e,10 +34b3f8f,25 +34b3f90,af +34b3f91,a2 +34b3f93,44 +34b3f94,27 +34b3f95,a2 +34b3f97,10 +34b3f98,27 +34b3f99,a6 +34b3f9b,48 +34b3f9c,8e +34b3f9d,3 +34b3f9f,8 +34b3fa0,24 +34b3fa1,64 +34b3fa3,8 +34b3fa4,ae +34b3fa5,4 +34b3fa7,8 +34b3fa8,8c +34b3fa9,45 +34b3fab,4 +34b3fac,8c +34b3fad,44 +34b3fb0,ac +34b3fb1,65 +34b3fb3,4 +34b3fb4,24 +34b3fb5,42 +34b3fb7,8 +34b3fb8,14 +34b3fb9,46 +34b3fba,ff +34b3fbb,f8 +34b3fbc,ac +34b3fbd,64 +34b3fc0,8f +34b3fc1,bf +34b3fc3,6c +34b3fc4,8f +34b3fc5,b7 +34b3fc7,68 +34b3fc8,8f +34b3fc9,b6 +34b3fcb,64 +34b3fcc,8f +34b3fcd,b5 +34b3fcf,60 +34b3fd0,8f +34b3fd1,b4 +34b3fd3,5c +34b3fd4,8f +34b3fd5,b3 +34b3fd7,58 +34b3fd8,8f +34b3fd9,b2 +34b3fdb,54 +34b3fdc,8f +34b3fdd,b1 +34b3fdf,50 +34b3fe0,8f +34b3fe1,b0 +34b3fe3,4c +34b3fe4,3 +34b3fe5,e0 +34b3fe7,8 +34b3fe8,27 +34b3fe9,bd +34b3feb,70 +34b3fec,27 +34b3fed,bd +34b3fee,ff +34b3fef,e8 +34b3ff0,8f +34b3ff1,a8 +34b3ff3,28 +34b3ff4,8f +34b3ff5,a2 +34b3ff7,2c +34b3ff8,8f +34b3ff9,aa +34b3ffb,30 +34b3ffc,94 +34b3ffd,a9 +34b3fff,4 +34b4001,9 +34b4002,4a +34b4003,80 +34b4004,14 +34b4005,40 +34b4007,2 +34b4008,1 +34b4009,22 +34b400b,1a +34b400d,7 +34b400f,d +34b4012,48 +34b4013,12 +34b4014,94 +34b4015,a3 +34b4017,6 +34b4019,47 +34b401a,10 +34b401b,21 +34b401d,2 +34b401e,13 +34b401f,80 +34b4020,3c +34b4021,b +34b4023,ff +34b4024,35 +34b4025,6b +34b4026,f0 +34b4029,4b +34b402a,10 +34b402b,24 +34b402c,1 +34b402d,48 +34b402e,28 +34b402f,21 +34b4031,5 +34b4032,28 +34b4033,80 +34b4034,30 +34b4035,a5 +34b4036,f +34b4037,ff +34b4039,45 +34b403a,10 +34b403b,25 +34b403c,3c +34b403d,5 +34b403e,e4 +34b4041,45 +34b4042,10 +34b4043,25 +34b4044,af +34b4045,a2 +34b4049,7 +34b404a,3b +34b404b,80 +34b404d,eb +34b404e,38 +34b404f,24 +34b4051,8 +34b4052,40 +34b4053,80 +34b4054,31 +34b4055,8 +34b4056,f +34b4057,ff +34b4059,e8 +34b405a,38 +34b405b,25 +34b405c,af +34b405d,a7 +34b405f,4 +34b4060,3c +34b4061,2 +34b4062,e1 +34b4064,af +34b4065,a2 +34b4067,8 +34b4069,66 +34b406b,18 +34b406e,30 +34b406f,12 +34b4071,6 +34b4072,31 +34b4073,40 +34b4074,30 +34b4075,c6 +34b4076,ff +34b4077,ff +34b4078,af +34b4079,a6 +34b407b,c +34b407c,3c +34b407d,2 +34b407e,f1 +34b4080,af +34b4081,a2 +34b4083,10 +34b4085,3 +34b4086,1a +34b4087,80 +34b4088,15 +34b4089,40 +34b408b,2 +34b408d,6a +34b408f,1a +34b4091,7 +34b4093,d +34b4096,18 +34b4097,12 +34b4098,30 +34b4099,63 +34b409a,ff +34b409b,ff +34b409d,9 +34b409e,4c +34b40a1,69 +34b40a2,18 +34b40a3,25 +34b40a4,af +34b40a5,a3 +34b40a7,14 +34b40a8,3 +34b40a9,a0 +34b40aa,10 +34b40ab,25 +34b40ac,27 +34b40ad,a8 +34b40af,18 +34b40b0,8c +34b40b1,83 +34b40b3,8 +34b40b4,24 +34b40b5,65 +34b40b7,8 +34b40b8,ac +34b40b9,85 +34b40bb,8 +34b40bc,8c +34b40bd,47 +34b40bf,4 +34b40c0,8c +34b40c1,46 +34b40c4,ac +34b40c5,67 +34b40c7,4 +34b40c8,24 +34b40c9,42 +34b40cb,8 +34b40cc,14 +34b40cd,48 +34b40ce,ff +34b40cf,f8 +34b40d0,ac +34b40d1,66 +34b40d4,3 +34b40d5,e0 +34b40d7,8 +34b40d8,27 +34b40d9,bd +34b40db,18 +34b40dc,8c +34b40dd,82 +34b40df,8 +34b40e0,24 +34b40e1,43 +34b40e3,8 +34b40e4,ac +34b40e5,83 +34b40e7,8 +34b40e8,3c +34b40e9,3 +34b40ea,e7 +34b40ec,ac +34b40ed,43 +34b40f0,ac +34b40f1,40 +34b40f3,4 +34b40f4,8c +34b40f5,82 +34b40f7,8 +34b40f8,24 +34b40f9,43 +34b40fb,8 +34b40fc,ac +34b40fd,83 +34b40ff,8 +34b4100,3c +34b4101,3 +34b4102,d9 +34b4104,ac +34b4105,43 +34b4108,ac +34b4109,40 +34b410b,4 +34b410c,8c +34b410d,82 +34b410f,8 +34b4110,24 +34b4111,43 +34b4113,8 +34b4114,ac +34b4115,83 +34b4117,8 +34b4118,3c +34b4119,3 +34b411a,ed +34b411c,ac +34b411d,43 +34b4120,3c +34b4121,5 +34b4123,50 +34b4124,24 +34b4125,a3 +34b4126,3 +34b4127,c0 +34b4128,ac +34b4129,43 +34b412b,4 +34b412c,8c +34b412d,83 +34b412f,8 +34b4130,24 +34b4131,62 +34b4133,8 +34b4134,ac +34b4135,82 +34b4137,8 +34b4138,3c +34b4139,2 +34b413a,e3 +34b413c,24 +34b413d,46 +34b413e,1a +34b413f,1 +34b4140,ac +34b4141,66 +34b4144,24 +34b4145,6 +34b4147,30 +34b4148,ac +34b4149,66 +34b414b,4 +34b414c,8c +34b414d,83 +34b414f,8 +34b4150,24 +34b4151,66 +34b4153,8 +34b4154,ac +34b4155,86 +34b4157,8 +34b4158,24 +34b4159,46 +34b415a,18 +34b415b,1 +34b415c,ac +34b415d,66 +34b4160,24 +34b4161,6 +34b4163,c0 +34b4164,ac +34b4165,66 +34b4167,4 +34b4168,8c +34b4169,86 +34b416b,8 +34b416c,24 +34b416d,c3 +34b416f,8 +34b4170,ac +34b4171,83 +34b4173,8 +34b4174,3c +34b4175,3 +34b4176,e2 +34b4178,24 +34b4179,67 +34b417a,1e +34b417b,1 +34b417c,ac +34b417d,c7 +34b4180,ac +34b4181,c0 +34b4183,4 +34b4184,8c +34b4185,86 +34b4187,8 +34b4188,24 +34b4189,c7 +34b418b,8 +34b418c,ac +34b418d,87 +34b418f,8 +34b4190,24 +34b4191,67 +34b4192,1d +34b4194,ac +34b4195,c7 +34b4198,24 +34b4199,7 +34b419b,4 +34b419c,ac +34b419d,c7 +34b419f,4 +34b41a0,8c +34b41a1,86 +34b41a3,8 +34b41a4,24 +34b41a5,c7 +34b41a7,8 +34b41a8,ac +34b41a9,87 +34b41ab,8 +34b41ac,24 +34b41ad,47 +34b41ae,17 +34b41b0,ac +34b41b1,c7 +34b41b4,ac +34b41b5,c0 +34b41b7,4 +34b41b8,8c +34b41b9,86 +34b41bb,8 +34b41bc,24 +34b41bd,c7 +34b41bf,8 +34b41c0,ac +34b41c1,87 +34b41c3,8 +34b41c4,24 +34b41c5,47 +34b41c6,14 +34b41c7,2 +34b41c8,ac +34b41c9,c7 +34b41cc,24 +34b41cd,7 +34b41ce,c +34b41d0,ac +34b41d1,c7 +34b41d3,4 +34b41d4,8c +34b41d5,86 +34b41d7,8 +34b41d8,24 +34b41d9,c7 +34b41db,8 +34b41dc,ac +34b41dd,87 +34b41df,8 +34b41e0,24 +34b41e1,47 +34b41e2,d +34b41e3,1 +34b41e4,ac +34b41e5,c7 +34b41e8,ac +34b41e9,c0 +34b41eb,4 +34b41ec,8c +34b41ed,86 +34b41ef,8 +34b41f0,24 +34b41f1,c7 +34b41f3,8 +34b41f4,ac +34b41f5,87 +34b41f7,8 +34b41f8,24 +34b41f9,47 +34b41fa,c +34b41fc,ac +34b41fd,c7 +34b4200,ac +34b4201,c0 +34b4203,4 +34b4204,8c +34b4205,86 +34b4207,8 +34b4208,24 +34b4209,c7 +34b420b,8 +34b420c,ac +34b420d,87 +34b420f,8 +34b4210,24 +34b4211,47 +34b4212,f +34b4214,ac +34b4215,c7 +34b4218,ac +34b4219,c0 +34b421b,4 +34b421c,8c +34b421d,86 +34b421f,8 +34b4220,24 +34b4221,c7 +34b4223,8 +34b4224,ac +34b4225,87 +34b4227,8 +34b4228,24 +34b4229,47 +34b422a,10 +34b422b,1 +34b422c,ac +34b422d,c7 +34b4230,ac +34b4231,c0 +34b4233,4 +34b4234,8c +34b4235,86 +34b4237,8 +34b4238,24 +34b4239,c7 +34b423b,8 +34b423c,ac +34b423d,87 +34b423f,8 +34b4240,24 +34b4241,47 +34b4242,8 +34b4244,ac +34b4245,c7 +34b4248,ac +34b4249,c0 +34b424b,4 +34b424c,8c +34b424d,86 +34b424f,8 +34b4250,24 +34b4251,c7 +34b4253,8 +34b4254,ac +34b4255,87 +34b4257,8 +34b4258,24 +34b4259,47 +34b425a,a +34b425b,1 +34b425c,ac +34b425d,c7 +34b4260,ac +34b4261,c0 +34b4263,4 +34b4264,8c +34b4265,86 +34b4267,8 +34b4268,24 +34b4269,c7 +34b426b,8 +34b426c,ac +34b426d,87 +34b426f,8 +34b4270,24 +34b4271,63 +34b4273,1c +34b4274,ac +34b4275,c3 +34b4278,24 +34b4279,a5 +34b427a,42 +34b427b,40 +34b427c,ac +34b427d,c5 +34b427f,4 +34b4280,8c +34b4281,83 +34b4283,8 +34b4284,24 +34b4285,65 +34b4287,8 +34b4288,ac +34b4289,85 +34b428b,8 +34b428c,24 +34b428d,42 +34b428e,12 +34b428f,1 +34b4290,ac +34b4291,62 +34b4294,24 +34b4295,2 +34b4296,20 +34b4298,ac +34b4299,62 +34b429b,4 +34b429c,8c +34b429d,82 +34b429f,8 +34b42a0,24 +34b42a1,43 +34b42a3,8 +34b42a4,ac +34b42a5,83 +34b42a7,8 +34b42a8,3c +34b42a9,3 +34b42aa,df +34b42ac,ac +34b42ad,43 +34b42b0,3 +34b42b1,e0 +34b42b3,8 +34b42b4,ac +34b42b5,40 +34b42b7,4 +34b42b8,27 +34b42b9,bd +34b42ba,ff +34b42bb,c8 +34b42bc,af +34b42bd,bf +34b42bf,34 +34b42c0,af +34b42c1,b1 +34b42c3,30 +34b42c4,af +34b42c5,b0 +34b42c7,2c +34b42c8,af +34b42c9,a0 +34b42cb,10 +34b42cc,3c +34b42cd,2 +34b42ce,1 +34b42cf,a0 +34b42d0,24 +34b42d1,42 +34b42d2,20 +34b42d4,af +34b42d5,a2 +34b42d7,14 +34b42d8,3c +34b42d9,10 +34b42db,3 +34b42dc,36 +34b42dd,2 +34b42de,95 +34b42df,c0 +34b42e0,af +34b42e1,a2 +34b42e3,18 +34b42e4,c +34b42e5,10 +34b42e6,17 +34b42e7,39 +34b42e8,27 +34b42e9,a4 +34b42eb,10 +34b42ec,af +34b42ed,a0 +34b42ef,1c +34b42f0,3c +34b42f1,2 +34b42f3,84 +34b42f4,24 +34b42f5,42 +34b42f6,60 +34b42f8,af +34b42f9,a2 +34b42fb,20 +34b42fc,34 +34b42fd,2 +34b42fe,b4 +34b4300,af +34b4301,a2 +34b4303,24 +34b4304,c +34b4305,10 +34b4306,17 +34b4307,39 +34b4308,27 +34b4309,a4 +34b430b,1c +34b430c,8f +34b430d,a2 +34b430f,10 +34b4310,26 +34b4311,10 +34b4312,a3 +34b4315,50 +34b4316,80 +34b4317,21 +34b4318,3c +34b4319,3 +34b431a,80 +34b431b,40 +34b431c,ac +34b431d,70 +34b431e,64 +34b431f,fc +34b4320,24 +34b4321,42 +34b4322,29 +34b4323,80 +34b4324,3c +34b4325,3 +34b4326,80 +34b4327,40 +34b4328,ac +34b4329,62 +34b432a,64 +34b432b,ec +34b432c,3c +34b432d,2 +34b432e,80 +34b432f,40 +34b4330,8f +34b4331,a3 +34b4333,1c +34b4334,ac +34b4335,43 +34b4336,64 +34b4337,dc +34b4338,3c +34b4339,11 +34b433a,80 +34b433b,40 +34b433c,c +34b433d,10 +34b433e,17 +34b433f,5a +34b4340,26 +34b4341,24 +34b4342,64 +34b4343,cc +34b4345,40 +34b4346,80 +34b4347,25 +34b4348,c +34b4349,10 +34b434a,17 +34b434b,2c +34b434d,40 +34b434e,20 +34b434f,25 +34b4351,10 +34b4352,4f +34b4353,c2 +34b4354,1 +34b4355,30 +34b4356,48 +34b4357,21 +34b4358,2a +34b4359,10 +34b435b,2 +34b435c,16 +34b435f,18 +34b4360,ae +34b4361,22 +34b4362,64 +34b4363,cc +34b4365,9 +34b4366,48 +34b4367,43 +34b4368,3c +34b4369,3 +34b436a,80 +34b436b,40 +34b436c,24 +34b436d,63 +34b436e,65 +34b436f,50 +34b4372,20 +34b4373,25 +34b4376,30 +34b4377,25 +34b4378,2 +34b4379,20 +34b437a,40 +34b437b,25 +34b437c,24 +34b437d,7 +34b437e,ff +34b437f,f0 +34b4380,8d +34b4381,5 +34b4382,64 +34b4383,cc +34b4385,a4 +34b4386,28 +34b4387,21 +34b4388,90 +34b4389,62 +34b438d,2 +34b438e,11 +34b438f,2 +34b4391,47 +34b4392,10 +34b4393,25 +34b4394,a0 +34b4395,a2 +34b4398,8d +34b4399,2 +34b439a,64 +34b439b,cc +34b439d,44 +34b439e,10 +34b439f,21 +34b43a0,90 +34b43a1,65 +34b43a5,a7 +34b43a6,28 +34b43a7,25 +34b43a8,a0 +34b43a9,45 +34b43ab,1 +34b43ac,24 +34b43ad,c6 +34b43af,1 +34b43b0,24 +34b43b1,63 +34b43b3,1 +34b43b5,c9 +34b43b6,10 +34b43b7,2a +34b43b8,14 +34b43b9,40 +34b43ba,ff +34b43bb,f1 +34b43bc,24 +34b43bd,84 +34b43bf,2 +34b43c0,c +34b43c1,10 +34b43c2,17 +34b43c3,2c +34b43c4,24 +34b43c5,4 +34b43c6,1 +34b43c8,3c +34b43c9,4 +34b43ca,80 +34b43cb,40 +34b43cc,24 +34b43cd,3 +34b43ce,1 +34b43d0,ac +34b43d1,83 +34b43d2,65 +34b43d3,40 +34b43d4,24 +34b43d5,84 +34b43d6,65 +34b43d7,40 +34b43d8,ac +34b43d9,82 +34b43db,4 +34b43dc,ac +34b43dd,82 +34b43df,8 +34b43e0,24 +34b43e1,42 +34b43e2,1 +34b43e4,c +34b43e5,10 +34b43e6,18 +34b43e7,37 +34b43e8,ac +34b43e9,82 +34b43eb,c +34b43ec,8f +34b43ed,bf +34b43ef,34 +34b43f0,8f +34b43f1,b1 +34b43f3,30 +34b43f4,8f +34b43f5,b0 +34b43f7,2c +34b43f8,3 +34b43f9,e0 +34b43fb,8 +34b43fc,27 +34b43fd,bd +34b43ff,38 +34b4400,4d +34b4401,51 +34b4404,4e +34b4405,6f +34b4406,72 +34b4407,6d +34b4408,61 +34b4409,6c +34b440d,1 +34b440e,2 +34b440f,3 +34b4410,4 +34b4411,5 +34b4412,6 +34b4413,7 +34b4414,ff +34b4415,ff +34b4416,ff +34b4417,ff +34b4418,ff +34b4419,ff +34b441d,ff +34b441f,ff +34b4420,3c +34b4423,64 +34b4424,ff +34b4425,ff +34b4426,82 +34b4428,c8 +34b4429,32 +34b442a,ff +34b442b,c8 +34b442c,c8 +34b4431,10 +34b4432,44 +34b4433,65 +34b4434,6b +34b4435,75 +34b443c,1 +34b443d,10 +34b443e,44 +34b443f,6f +34b4440,64 +34b4441,6f +34b4442,6e +34b4443,67 +34b4444,6f +34b4448,2 +34b4449,10 +34b444a,4a +34b444b,61 +34b444c,62 +34b444d,75 +34b4454,3 +34b4455,d0 +34b4456,46 +34b4457,6f +34b4458,72 +34b4459,65 +34b445a,73 +34b445b,74 +34b4460,4 +34b4461,d0 +34b4462,46 +34b4463,69 +34b4464,72 +34b4465,65 +34b446c,5 +34b446d,d0 +34b446e,57 +34b446f,61 +34b4470,74 +34b4471,65 +34b4472,72 +34b4478,7 +34b4479,d0 +34b447a,53 +34b447b,68 +34b447c,61 +34b447d,64 +34b447e,6f +34b447f,77 +34b4484,6 +34b4485,d0 +34b4486,53 +34b4487,70 +34b4488,69 +34b4489,72 +34b448a,69 +34b448b,74 +34b4490,8 +34b4491,90 +34b4492,42 +34b4493,6f +34b4494,74 +34b4495,57 +34b449c,9 +34b449d,10 +34b449e,49 +34b449f,63 +34b44a0,65 +34b44a8,c +34b44a9,a0 +34b44aa,47 +34b44ab,65 +34b44ac,72 +34b44ad,75 +34b44ae,64 +34b44af,6f +34b44b4,b +34b44b5,80 +34b44b6,47 +34b44b7,54 +34b44b8,47 +34b44c0,d +34b44c1,c0 +34b44c2,47 +34b44c3,61 +34b44c4,6e +34b44c5,6f +34b44c6,6e +34b44d1,8 +34b44d3,e +34b44d5,5f +34b44d6,3 +34b44d7,1 +34b44d8,1 +34b44e1,18 +34b44e3,18 +34b44e5,12 +34b44e7,3 +34b44e8,4 +34b44f1,10 +34b44f3,10 +34b44f5,6 +34b44f6,3 +34b44f7,1 +34b44f8,1 +34b4501,10 +34b4503,10 +34b4505,3 +34b4507,3 +34b4508,4 +34b450f,1 +34b4513,d +34b4591,d +34b4592,b0 +34b4595,d +34b4596,b0 +34b4599,d +34b459a,b0 +34b459d,c +34b459e,b0 +34b45a1,c +34b45a2,b0 +34b45a5,c +34b45a6,a0 +34b45ad,d +34b45ae,b0 +34b45b1,d +34b45b2,b0 +34b45c9,e8 +34b45ca,ac +34b45cd,e8 +34b45ce,ac +34b45d1,e8 +34b45d2,ac +34b45d5,e8 +34b45d6,ac +34b45fd,d +34b45fe,77 +34b45ff,d0 +34b4601,2e +34b4602,3a +34b4603,b0 +34b4605,7d +34b4606,c +34b4607,90 +34b4608,8f +34b4609,ff +34b460a,ff +34b460b,fd +34b460d,c9 +34b460e,6e +34b4610,2 +34b4611,e4 +34b4612,ac +34b4614,ef +34b4615,ff +34b4616,ff +34b4617,f4 +34b4618,a +34b4619,b0 +34b461a,e5 +34b461c,c +34b461d,95 +34b461e,e0 +34b4620,e +34b4621,59 +34b4622,c0 +34b4639,7 +34b463a,90 +34b463c,5 +34b463d,ce +34b463e,eb +34b463f,40 +34b4640,c +34b4641,c8 +34b4642,a9 +34b4643,90 +34b4644,d +34b4645,a7 +34b4646,90 +34b4648,8 +34b4649,ec +34b464a,b4 +34b464d,4a +34b464e,dd +34b464f,a0 +34b4651,7 +34b4652,97 +34b4653,e2 +34b4654,c +34b4655,88 +34b4656,aa +34b4657,e0 +34b4658,6 +34b4659,ce +34b465a,ed +34b465b,70 +34b465d,7 +34b465e,90 +34b4661,7 +34b4662,90 +34b4670,6d +34b4671,ea +34b4674,c9 +34b4675,4d +34b4676,60 +34b4678,c9 +34b4679,4d +34b467a,60 +34b467b,33 +34b467c,6d +34b467d,eb +34b467e,6b +34b467f,c6 +34b4681,8c +34b4682,b6 +34b4684,7c +34b4685,a4 +34b4686,ce +34b4687,c4 +34b4688,31 +34b4689,9 +34b468a,c3 +34b468b,bb +34b468d,9 +34b468e,c3 +34b468f,bb +34b4691,2 +34b4692,ce +34b4693,d4 +34b46a8,4 +34b46a9,ce +34b46aa,fb +34b46ac,a +34b46ad,d5 +34b46b0,8 +34b46b1,e3 +34b46b4,9 +34b46b5,ec +34b46b8,7e +34b46b9,4d +34b46ba,b0 +34b46bb,ab +34b46bc,bb +34b46bd,5 +34b46be,e8 +34b46bf,aa +34b46c0,bc +34b46c2,8e +34b46c3,d6 +34b46c4,7e +34b46c5,93 +34b46c6,6e +34b46c7,d0 +34b46c8,8 +34b46c9,de +34b46ca,d9 +34b46cb,ea +34b46e1,c +34b46e2,a0 +34b46e5,c +34b46e6,a0 +34b46e9,c +34b46ea,a0 +34b46ed,c +34b46ee,a0 +34b4712,c9 +34b4715,7 +34b4716,e2 +34b4719,c +34b471a,b0 +34b471d,e +34b471e,80 +34b4721,6f +34b4722,30 +34b4725,8e +34b4729,8e +34b472d,6f +34b472e,40 +34b4731,e +34b4732,80 +34b4735,c +34b4736,b0 +34b4739,7 +34b473a,e2 +34b473e,c9 +34b4749,bb +34b474d,5e +34b474e,40 +34b4751,c +34b4752,a0 +34b4755,a +34b4756,d0 +34b4759,7 +34b475a,e1 +34b475d,6 +34b475e,f4 +34b4761,6 +34b4762,f4 +34b4765,7 +34b4766,e1 +34b4769,a +34b476a,d0 +34b476d,c +34b476e,a0 +34b4771,5e +34b4772,40 +34b4775,bb +34b4789,a +34b478a,80 +34b478c,c +34b478d,8a +34b478e,8a +34b478f,b0 +34b4790,3 +34b4791,be +34b4792,da +34b4793,10 +34b4794,3 +34b4795,be +34b4796,da +34b4797,10 +34b4798,c +34b4799,8a +34b479a,8a +34b479b,b0 +34b479d,a +34b479e,80 +34b47c5,c +34b47c6,a0 +34b47c9,c +34b47ca,a0 +34b47cd,c +34b47ce,a0 +34b47d0,af +34b47d1,ff +34b47d2,ff +34b47d3,f8 +34b47d5,c +34b47d6,a0 +34b47d9,c +34b47da,a0 +34b47dd,c +34b47de,a0 +34b4815,d +34b4816,d0 +34b4819,e +34b481a,c0 +34b481d,4f +34b481e,80 +34b4821,9d +34b4845,df +34b4846,fb +34b4885,e +34b4886,c0 +34b4889,e +34b488a,c0 +34b48a2,b +34b48a3,c0 +34b48a6,4e +34b48a7,60 +34b48aa,bc +34b48ad,3 +34b48ae,e8 +34b48b1,a +34b48b2,d0 +34b48b5,1e +34b48b6,90 +34b48b9,9e +34b48ba,20 +34b48bd,da +34b48c0,7 +34b48c1,e3 +34b48c4,c +34b48c5,b0 +34b48c8,6e +34b48c9,50 +34b48d8,3 +34b48d9,ce +34b48da,eb +34b48dc,b +34b48dd,d5 +34b48de,7e +34b48df,90 +34b48e0,e +34b48e1,90 +34b48e2,b +34b48e3,d0 +34b48e4,5f +34b48e5,70 +34b48e6,9 +34b48e7,e0 +34b48e8,6f +34b48e9,6c +34b48ea,b9 +34b48eb,e0 +34b48ec,5f +34b48ed,70 +34b48ee,9 +34b48ef,e0 +34b48f0,e +34b48f1,90 +34b48f2,b +34b48f3,d0 +34b48f4,b +34b48f5,d5 +34b48f6,7e +34b48f7,90 +34b48f8,3 +34b48f9,ce +34b48fa,eb +34b4910,a +34b4911,ff +34b4912,e0 +34b4915,8 +34b4916,e0 +34b4919,8 +34b491a,e0 +34b491d,8 +34b491e,e0 +34b4921,8 +34b4922,e0 +34b4925,8 +34b4926,e0 +34b4929,8 +34b492a,e0 +34b492d,8 +34b492e,e0 +34b4930,8 +34b4931,ff +34b4932,ff +34b4933,e0 +34b4948,8 +34b4949,de +34b494a,ea +34b494c,c +34b494d,83 +34b494e,7e +34b494f,90 +34b4952,c +34b4953,c0 +34b4956,2e +34b4957,a0 +34b495a,bd +34b495b,20 +34b495d,b +34b495e,d4 +34b4961,bd +34b4962,40 +34b4964,b +34b4965,d4 +34b4968,2f +34b4969,ff +34b496a,ff +34b496b,d0 +34b4980,7 +34b4981,ce +34b4982,ea +34b4984,c +34b4985,83 +34b4986,7e +34b4987,90 +34b498a,c +34b498b,b0 +34b498d,2 +34b498e,7e +34b498f,90 +34b4991,bf +34b4992,fb +34b4995,2 +34b4996,7d +34b4997,a0 +34b499a,a +34b499b,d0 +34b499c,5c +34b499d,62 +34b499e,7d +34b499f,b0 +34b49a0,9 +34b49a1,de +34b49a2,eb +34b49a3,30 +34b49b9,2 +34b49ba,de +34b49bd,b +34b49be,de +34b49c1,7d +34b49c2,9e +34b49c4,2 +34b49c5,d7 +34b49c6,9e +34b49c8,b +34b49c9,b0 +34b49ca,9e +34b49cc,6e +34b49cd,40 +34b49ce,9e +34b49d0,9f +34b49d1,ff +34b49d2,ff +34b49d3,f7 +34b49d6,9e +34b49da,9e +34b49f0,c +34b49f1,ff +34b49f2,ff +34b49f3,50 +34b49f4,c +34b49f5,a0 +34b49f8,c +34b49f9,a0 +34b49fc,c +34b49fd,ee +34b49fe,ea +34b4a01,3 +34b4a02,8e +34b4a03,90 +34b4a06,b +34b4a07,c0 +34b4a0a,b +34b4a0b,c0 +34b4a0c,5c +34b4a0d,63 +34b4a0e,8e +34b4a0f,90 +34b4a10,9 +34b4a11,de +34b4a12,da +34b4a29,ae +34b4a2a,ec +34b4a2b,30 +34b4a2c,a +34b4a2d,e8 +34b4a2e,39 +34b4a2f,80 +34b4a30,e +34b4a31,90 +34b4a34,4f +34b4a35,ae +34b4a36,ec +34b4a37,40 +34b4a38,6f +34b4a39,d5 +34b4a3a,5d +34b4a3b,c0 +34b4a3c,5f +34b4a3d,90 +34b4a3e,9 +34b4a3f,e0 +34b4a40,e +34b4a41,90 +34b4a42,9 +34b4a43,e0 +34b4a44,c +34b4a45,d5 +34b4a46,5d +34b4a47,c0 +34b4a48,3 +34b4a49,ce +34b4a4a,ec +34b4a4b,40 +34b4a60,5f +34b4a61,ff +34b4a62,ff +34b4a63,d0 +34b4a66,d +34b4a67,a0 +34b4a6a,7e +34b4a6b,40 +34b4a6e,cc +34b4a71,4 +34b4a72,e8 +34b4a75,a +34b4a76,d0 +34b4a79,d +34b4a7a,a0 +34b4a7d,8e +34b4a7e,40 +34b4a81,cc +34b4a98,5 +34b4a99,ce +34b4a9a,ec +34b4a9b,30 +34b4a9c,d +34b4a9d,c4 +34b4a9e,5d +34b4a9f,b0 +34b4aa0,e +34b4aa1,90 +34b4aa2,b +34b4aa3,d0 +34b4aa4,b +34b4aa5,c4 +34b4aa6,5d +34b4aa7,90 +34b4aa8,4 +34b4aa9,df +34b4aaa,fc +34b4aab,20 +34b4aac,1d +34b4aad,b4 +34b4aae,5c +34b4aaf,c0 +34b4ab0,5f +34b4ab1,60 +34b4ab2,9 +34b4ab3,e0 +34b4ab4,2e +34b4ab5,b3 +34b4ab6,5c +34b4ab7,d0 +34b4ab8,7 +34b4ab9,de +34b4aba,ec +34b4abb,50 +34b4ad0,6 +34b4ad1,de +34b4ad2,eb +34b4ad4,d +34b4ad5,b3 +34b4ad6,7e +34b4ad7,90 +34b4ad8,5f +34b4ad9,50 +34b4ada,b +34b4adb,d0 +34b4adc,5f +34b4add,50 +34b4ade,b +34b4adf,e0 +34b4ae0,d +34b4ae1,b3 +34b4ae2,7e +34b4ae3,e0 +34b4ae4,6 +34b4ae5,de +34b4ae6,db +34b4ae7,e0 +34b4aea,b +34b4aeb,c0 +34b4aec,9 +34b4aed,74 +34b4aee,9e +34b4aef,70 +34b4af0,5 +34b4af1,de +34b4af2,d8 +34b4b11,e +34b4b12,c0 +34b4b15,e +34b4b16,c0 +34b4b25,e +34b4b26,c0 +34b4b29,e +34b4b2a,c0 +34b4b49,e +34b4b4a,c0 +34b4b4d,e +34b4b4e,c0 +34b4b5d,d +34b4b5e,d0 +34b4b61,e +34b4b62,c0 +34b4b65,4f +34b4b66,80 +34b4b69,9d +34b4b82,29 +34b4b83,c8 +34b4b85,7b +34b4b86,ed +34b4b87,93 +34b4b88,8d +34b4b89,da +34b4b8a,40 +34b4b8c,8d +34b4b8d,da +34b4b8e,40 +34b4b91,7b +34b4b92,ec +34b4b93,93 +34b4b96,29 +34b4b97,c8 +34b4bbc,af +34b4bbd,ff +34b4bbe,ff +34b4bbf,f8 +34b4bc8,af +34b4bc9,ff +34b4bca,ff +34b4bcb,f8 +34b4bf0,ac +34b4bf1,81 +34b4bf4,4a +34b4bf5,de +34b4bf6,b6 +34b4bf9,6 +34b4bfa,ad +34b4bfb,d6 +34b4bfd,6 +34b4bfe,ad +34b4bff,d6 +34b4c00,4a +34b4c01,de +34b4c02,b6 +34b4c04,ac +34b4c05,81 +34b4c20,4 +34b4c21,be +34b4c22,ec +34b4c23,30 +34b4c24,9 +34b4c25,a4 +34b4c26,6e +34b4c27,a0 +34b4c2a,1d +34b4c2b,a0 +34b4c2d,2 +34b4c2e,cd +34b4c2f,30 +34b4c31,c +34b4c32,c1 +34b4c35,e +34b4c36,90 +34b4c3d,e +34b4c3e,90 +34b4c41,e +34b4c42,90 +34b4c58,1 +34b4c59,ae +34b4c5a,ed +34b4c5b,70 +34b4c5c,c +34b4c5d,d7 +34b4c5e,39 +34b4c5f,e4 +34b4c60,7e +34b4c61,20 +34b4c63,c9 +34b4c64,ba +34b4c65,a +34b4c66,ee +34b4c67,ca +34b4c68,d7 +34b4c69,6e +34b4c6a,64 +34b4c6b,da +34b4c6c,d6 +34b4c6d,9c +34b4c6f,aa +34b4c70,d7 +34b4c71,6e +34b4c72,64 +34b4c73,da +34b4c74,ba +34b4c75,a +34b4c76,ee +34b4c77,ca +34b4c78,6e +34b4c79,40 +34b4c7c,a +34b4c7d,d8 +34b4c7e,30 +34b4c81,8d +34b4c82,ee +34b4c83,90 +34b4c91,3e +34b4c92,d0 +34b4c95,9d +34b4c96,e6 +34b4c99,cb +34b4c9a,cb +34b4c9c,3 +34b4c9d,e8 +34b4c9e,ad +34b4ca0,8 +34b4ca1,e2 +34b4ca2,6f +34b4ca3,60 +34b4ca4,c +34b4ca5,c0 +34b4ca6,e +34b4ca7,a0 +34b4ca8,2e +34b4ca9,ff +34b4caa,ff +34b4cab,d0 +34b4cac,8e +34b4cad,50 +34b4cae,8 +34b4caf,f5 +34b4cb0,cd +34b4cb2,1 +34b4cb3,ea +34b4cc8,e +34b4cc9,ff +34b4cca,ec +34b4ccb,40 +34b4ccc,e +34b4ccd,90 +34b4cce,5d +34b4ccf,c0 +34b4cd0,e +34b4cd1,90 +34b4cd2,a +34b4cd3,e0 +34b4cd4,e +34b4cd5,90 +34b4cd6,5d +34b4cd7,c0 +34b4cd8,e +34b4cd9,ff +34b4cda,fd +34b4cdb,50 +34b4cdc,e +34b4cdd,90 +34b4cde,4b +34b4cdf,d2 +34b4ce0,e +34b4ce1,90 +34b4ce2,5 +34b4ce3,f6 +34b4ce4,e +34b4ce5,90 +34b4ce6,4b +34b4ce7,e3 +34b4ce8,e +34b4ce9,ff +34b4cea,ed +34b4ceb,80 +34b4d01,9d +34b4d02,ed +34b4d03,80 +34b4d04,8 +34b4d05,e9 +34b4d06,36 +34b4d07,b0 +34b4d08,d +34b4d09,b0 +34b4d0c,3f +34b4d0d,90 +34b4d10,5f +34b4d11,70 +34b4d14,1e +34b4d15,90 +34b4d18,d +34b4d19,b0 +34b4d1c,8 +34b4d1d,e9 +34b4d1e,47 +34b4d1f,b0 +34b4d21,9d +34b4d22,ed +34b4d23,80 +34b4d38,5f +34b4d39,fe +34b4d3a,d8 +34b4d3c,5f +34b4d3d,65 +34b4d3e,ae +34b4d3f,80 +34b4d40,5f +34b4d41,60 +34b4d42,c +34b4d43,d0 +34b4d44,5f +34b4d45,60 +34b4d46,9 +34b4d47,e0 +34b4d48,5f +34b4d49,60 +34b4d4a,9 +34b4d4b,f0 +34b4d4c,5f +34b4d4d,60 +34b4d4e,9 +34b4d4f,e0 +34b4d50,5f +34b4d51,60 +34b4d52,c +34b4d53,d0 +34b4d54,5f +34b4d55,65 +34b4d56,ae +34b4d57,80 +34b4d58,5f +34b4d59,fe +34b4d5a,d8 +34b4d70,d +34b4d71,ff +34b4d72,ff +34b4d73,e0 +34b4d74,d +34b4d75,b0 +34b4d78,d +34b4d79,b0 +34b4d7c,d +34b4d7d,b0 +34b4d80,d +34b4d81,ff +34b4d82,ff +34b4d83,c0 +34b4d84,d +34b4d85,b0 +34b4d88,d +34b4d89,b0 +34b4d8c,d +34b4d8d,b0 +34b4d90,d +34b4d91,ff +34b4d92,ff +34b4d93,f0 +34b4da8,b +34b4da9,ff +34b4daa,ff +34b4dab,f4 +34b4dac,b +34b4dad,d0 +34b4db0,b +34b4db1,d0 +34b4db4,b +34b4db5,d0 +34b4db8,b +34b4db9,ff +34b4dba,ff +34b4dbb,c0 +34b4dbc,b +34b4dbd,d0 +34b4dc0,b +34b4dc1,d0 +34b4dc4,b +34b4dc5,d0 +34b4dc8,b +34b4dc9,d0 +34b4de0,1 +34b4de1,ae +34b4de2,ed +34b4de3,60 +34b4de4,b +34b4de5,e7 +34b4de6,38 +34b4de7,a0 +34b4de8,4e +34b4de9,90 +34b4dec,8f +34b4ded,40 +34b4df0,9f +34b4df1,10 +34b4df2,bf +34b4df3,f2 +34b4df4,7f +34b4df5,40 +34b4df6,7 +34b4df7,f2 +34b4df8,4e +34b4df9,90 +34b4dfa,7 +34b4dfb,f2 +34b4dfc,b +34b4dfd,e7 +34b4dfe,39 +34b4dff,f2 +34b4e00,1 +34b4e01,be +34b4e02,ed +34b4e03,90 +34b4e18,5f +34b4e19,60 +34b4e1a,9 +34b4e1b,e0 +34b4e1c,5f +34b4e1d,60 +34b4e1e,9 +34b4e1f,e0 +34b4e20,5f +34b4e21,60 +34b4e22,9 +34b4e23,e0 +34b4e24,5f +34b4e25,60 +34b4e26,9 +34b4e27,e0 +34b4e28,5f +34b4e29,ff +34b4e2a,ff +34b4e2b,e0 +34b4e2c,5f +34b4e2d,60 +34b4e2e,9 +34b4e2f,e0 +34b4e30,5f +34b4e31,60 +34b4e32,9 +34b4e33,e0 +34b4e34,5f +34b4e35,60 +34b4e36,9 +34b4e37,e0 +34b4e38,5f +34b4e39,60 +34b4e3a,9 +34b4e3b,e0 +34b4e50,d +34b4e51,ff +34b4e52,ff +34b4e53,b0 +34b4e55,d +34b4e56,b0 +34b4e59,d +34b4e5a,b0 +34b4e5d,d +34b4e5e,b0 +34b4e61,d +34b4e62,b0 +34b4e65,d +34b4e66,b0 +34b4e69,d +34b4e6a,b0 +34b4e6d,d +34b4e6e,b0 +34b4e70,d +34b4e71,ff +34b4e72,ff +34b4e73,b0 +34b4e89,cf +34b4e8a,ff +34b4e8b,40 +34b4e8e,7f +34b4e8f,40 +34b4e92,7f +34b4e93,40 +34b4e96,7f +34b4e97,40 +34b4e9a,7f +34b4e9b,40 +34b4e9e,7f +34b4e9f,30 +34b4ea0,75 +34b4ea2,9e +34b4ea4,8d +34b4ea5,64 +34b4ea6,dc +34b4ea8,2b +34b4ea9,ee +34b4eaa,c5 +34b4ec0,5f +34b4ec1,60 +34b4ec2,9 +34b4ec3,e7 +34b4ec4,5f +34b4ec5,60 +34b4ec6,9e +34b4ec7,70 +34b4ec8,5f +34b4ec9,69 +34b4eca,e7 +34b4ecc,5f +34b4ecd,be +34b4ece,80 +34b4ed0,5f +34b4ed1,ed +34b4ed2,b0 +34b4ed4,5f +34b4ed5,87 +34b4ed6,e8 +34b4ed8,5f +34b4ed9,60 +34b4eda,ae +34b4edb,40 +34b4edc,5f +34b4edd,60 +34b4ede,1d +34b4edf,c0 +34b4ee0,5f +34b4ee1,60 +34b4ee2,6 +34b4ee3,ea +34b4ef8,c +34b4ef9,c0 +34b4efc,c +34b4efd,c0 +34b4f00,c +34b4f01,c0 +34b4f04,c +34b4f05,c0 +34b4f08,c +34b4f09,c0 +34b4f0c,c +34b4f0d,c0 +34b4f10,c +34b4f11,c0 +34b4f14,c +34b4f15,c0 +34b4f18,c +34b4f19,ff +34b4f1a,ff +34b4f1b,f7 +34b4f30,af +34b4f31,a0 +34b4f32,c +34b4f33,f8 +34b4f34,ae +34b4f35,d0 +34b4f36,2e +34b4f37,e8 +34b4f38,ad +34b4f39,d5 +34b4f3a,9b +34b4f3b,e8 +34b4f3c,ad +34b4f3d,aa +34b4f3e,c8 +34b4f3f,e8 +34b4f40,ad +34b4f41,5d +34b4f42,e1 +34b4f43,e8 +34b4f44,ad +34b4f45,d +34b4f46,b0 +34b4f47,e8 +34b4f48,ad +34b4f4b,e8 +34b4f4c,ad +34b4f4f,e8 +34b4f50,ad +34b4f53,e8 +34b4f68,5f +34b4f69,c0 +34b4f6a,8 +34b4f6b,e0 +34b4f6c,5f +34b4f6d,e6 +34b4f6e,8 +34b4f6f,e0 +34b4f70,5f +34b4f71,cb +34b4f72,8 +34b4f73,e0 +34b4f74,5f +34b4f75,7e +34b4f76,48 +34b4f77,e0 +34b4f78,5f +34b4f79,5c +34b4f7a,a8 +34b4f7b,e0 +34b4f7c,5f +34b4f7d,57 +34b4f7e,e8 +34b4f7f,e0 +34b4f80,5f +34b4f81,50 +34b4f82,dc +34b4f83,e0 +34b4f84,5f +34b4f85,50 +34b4f86,9e +34b4f87,e0 +34b4f88,5f +34b4f89,50 +34b4f8a,2e +34b4f8b,e0 +34b4fa0,4 +34b4fa1,ce +34b4fa2,eb +34b4fa3,20 +34b4fa4,c +34b4fa5,d5 +34b4fa6,6e +34b4fa7,a0 +34b4fa8,3e +34b4fa9,80 +34b4faa,a +34b4fab,e0 +34b4fac,7f +34b4fad,50 +34b4fae,8 +34b4faf,f2 +34b4fb0,7f +34b4fb1,40 +34b4fb2,8 +34b4fb3,f4 +34b4fb4,7f +34b4fb5,50 +34b4fb6,8 +34b4fb7,f2 +34b4fb8,3e +34b4fb9,80 +34b4fba,a +34b4fbb,e0 +34b4fbc,c +34b4fbd,d5 +34b4fbe,6e +34b4fbf,b0 +34b4fc0,4 +34b4fc1,ce +34b4fc2,eb +34b4fc3,20 +34b4fd8,d +34b4fd9,ff +34b4fda,ed +34b4fdb,60 +34b4fdc,d +34b4fdd,b0 +34b4fde,5c +34b4fdf,e2 +34b4fe0,d +34b4fe1,b0 +34b4fe2,6 +34b4fe3,f6 +34b4fe4,d +34b4fe5,b0 +34b4fe6,6 +34b4fe7,f6 +34b4fe8,d +34b4fe9,b0 +34b4fea,5c +34b4feb,e2 +34b4fec,d +34b4fed,ff +34b4fee,ed +34b4fef,60 +34b4ff0,d +34b4ff1,b0 +34b4ff4,d +34b4ff5,b0 +34b4ff8,d +34b4ff9,b0 +34b5010,4 +34b5011,ce +34b5012,eb +34b5013,20 +34b5014,c +34b5015,d5 +34b5016,6e +34b5017,a0 +34b5018,3e +34b5019,80 +34b501a,a +34b501b,e0 +34b501c,7f +34b501d,50 +34b501e,8 +34b501f,f2 +34b5020,7f +34b5021,40 +34b5022,8 +34b5023,f4 +34b5024,7f +34b5025,50 +34b5026,8 +34b5027,f1 +34b5028,3e +34b5029,80 +34b502a,a +34b502b,d0 +34b502c,c +34b502d,d5 +34b502e,6e +34b502f,a0 +34b5030,4 +34b5031,ce +34b5032,fc +34b5033,20 +34b5036,ae +34b5037,50 +34b503a,c +34b503b,80 +34b5048,5f +34b5049,fe +34b504a,eb +34b504b,20 +34b504c,5f +34b504d,71 +34b504e,7e +34b504f,b0 +34b5050,5f +34b5051,70 +34b5052,c +34b5053,d0 +34b5054,5f +34b5055,71 +34b5056,6e +34b5057,a0 +34b5058,5f +34b5059,ff +34b505a,ea +34b505c,5f +34b505d,72 +34b505e,ae +34b505f,40 +34b5060,5f +34b5061,70 +34b5062,d +34b5063,b0 +34b5064,5f +34b5065,70 +34b5066,8 +34b5067,e5 +34b5068,5f +34b5069,70 +34b506b,db +34b5080,6 +34b5081,ce +34b5082,eb +34b5083,30 +34b5084,d +34b5085,c4 +34b5086,5a +34b5087,90 +34b5088,4f +34b5089,60 +34b508c,e +34b508d,c6 +34b5090,5 +34b5091,ce +34b5092,eb +34b5093,40 +34b5096,6c +34b5097,c0 +34b509a,8 +34b509b,e0 +34b509c,c +34b509d,73 +34b509e,5c +34b509f,d0 +34b50a0,8 +34b50a1,de +34b50a2,ec +34b50a3,50 +34b50b8,cf +34b50b9,ff +34b50ba,ff +34b50bb,fb +34b50bd,d +34b50be,b0 +34b50c1,d +34b50c2,b0 +34b50c5,d +34b50c6,b0 +34b50c9,d +34b50ca,b0 +34b50cd,d +34b50ce,b0 +34b50d1,d +34b50d2,b0 +34b50d5,d +34b50d6,b0 +34b50d9,d +34b50da,b0 +34b50f0,4f +34b50f1,70 +34b50f2,9 +34b50f3,e0 +34b50f4,4f +34b50f5,70 +34b50f6,9 +34b50f7,e0 +34b50f8,4f +34b50f9,70 +34b50fa,9 +34b50fb,e0 +34b50fc,4f +34b50fd,70 +34b50fe,9 +34b50ff,e0 +34b5100,4f +34b5101,70 +34b5102,9 +34b5103,e0 +34b5104,3f +34b5105,70 +34b5106,9 +34b5107,e0 +34b5108,2e +34b5109,70 +34b510a,a +34b510b,d0 +34b510c,d +34b510d,c4 +34b510e,5d +34b510f,c0 +34b5110,5 +34b5111,ce +34b5112,ec +34b5113,40 +34b5128,ad +34b512a,3 +34b512b,e8 +34b512c,6f +34b512d,50 +34b512e,8 +34b512f,e3 +34b5130,e +34b5131,90 +34b5132,b +34b5133,c0 +34b5134,b +34b5135,c0 +34b5136,d +34b5137,90 +34b5138,8 +34b5139,e1 +34b513a,5e +34b513b,40 +34b513c,2 +34b513d,e7 +34b513e,ad +34b5141,cb +34b5142,ca +34b5145,9d +34b5146,e6 +34b5149,3e +34b514a,d0 +34b5160,e8 +34b5163,ad +34b5164,da +34b5167,cb +34b5168,cb +34b516b,da +34b516c,ac +34b516d,e +34b516e,c0 +34b516f,e8 +34b5170,8d +34b5171,6d +34b5172,e1 +34b5173,e5 +34b5174,6e +34b5175,9b +34b5176,d8 +34b5177,e0 +34b5178,1e +34b5179,c8 +34b517a,ac +34b517b,d0 +34b517c,d +34b517d,e3 +34b517e,7e +34b517f,c0 +34b5180,c +34b5181,d0 +34b5182,e +34b5183,a0 +34b5198,6e +34b5199,70 +34b519a,7 +34b519b,e7 +34b519c,a +34b519d,d2 +34b519e,1d +34b519f,b0 +34b51a0,2 +34b51a1,da +34b51a2,ad +34b51a3,20 +34b51a5,7e +34b51a6,e7 +34b51a9,3e +34b51aa,e2 +34b51ad,bd +34b51ae,da +34b51b0,7 +34b51b1,e6 +34b51b2,7e +34b51b3,60 +34b51b4,3e +34b51b5,a0 +34b51b6,b +34b51b7,d0 +34b51b8,bd +34b51b9,20 +34b51ba,4 +34b51bb,e9 +34b51d0,ae +34b51d1,20 +34b51d2,5 +34b51d3,e8 +34b51d4,2d +34b51d5,a0 +34b51d6,c +34b51d7,c0 +34b51d8,7 +34b51d9,e5 +34b51da,7e +34b51db,50 +34b51dd,cc +34b51de,da +34b51e1,4e +34b51e2,d2 +34b51e5,d +34b51e6,b0 +34b51e9,d +34b51ea,b0 +34b51ed,d +34b51ee,b0 +34b51f1,d +34b51f2,b0 +34b5208,e +34b5209,ff +34b520a,ff +34b520b,f8 +34b520e,b +34b520f,d3 +34b5212,7e +34b5213,70 +34b5215,3 +34b5216,ea +34b5219,b +34b521a,d1 +34b521d,8e +34b521e,50 +34b5220,4 +34b5221,e9 +34b5224,c +34b5225,c0 +34b5228,1f +34b5229,ff +34b522a,ff +34b522b,fa +34b5239,4f +34b523a,fc +34b523d,4f +34b523e,50 +34b5241,4f +34b5242,50 +34b5245,4f +34b5246,50 +34b5249,4f +34b524a,50 +34b524d,4f +34b524e,50 +34b5251,4f +34b5252,50 +34b5255,4f +34b5256,50 +34b5259,4f +34b525a,50 +34b525d,4f +34b525e,50 +34b5261,4f +34b5262,50 +34b5265,4f +34b5266,fc +34b5278,6e +34b5279,50 +34b527c,c +34b527d,b0 +34b5280,7 +34b5281,e3 +34b5285,da +34b5289,9e +34b528a,20 +34b528d,1e +34b528e,90 +34b5291,a +34b5292,d0 +34b5295,3 +34b5296,e8 +34b529a,bc +34b529e,4e +34b529f,60 +34b52a2,b +34b52a3,c0 +34b52a9,df +34b52aa,e0 +34b52ad,8 +34b52ae,e0 +34b52b1,8 +34b52b2,e0 +34b52b5,8 +34b52b6,e0 +34b52b9,8 +34b52ba,e0 +34b52bd,8 +34b52be,e0 +34b52c1,8 +34b52c2,e0 +34b52c5,8 +34b52c6,e0 +34b52c9,8 +34b52ca,e0 +34b52cd,8 +34b52ce,e0 +34b52d1,8 +34b52d2,e0 +34b52d5,df +34b52d6,e0 +34b52e9,5e +34b52ea,d2 +34b52ed,dc +34b52ee,db +34b52f0,a +34b52f1,d2 +34b52f2,5e +34b52f3,80 +34b52f4,7e +34b52f5,50 +34b52f6,7 +34b52f7,e5 +34b534c,ff +34b534d,ff +34b534e,ff +34b534f,fd +34b5354,2 +34b5355,ca +34b5359,2c +34b535a,90 +34b5398,5 +34b5399,ce +34b539a,eb +34b539b,10 +34b539c,b +34b539d,93 +34b539e,6d +34b539f,a0 +34b53a2,b +34b53a3,c0 +34b53a4,8 +34b53a5,de +34b53a6,ff +34b53a7,c0 +34b53a8,3e +34b53a9,93 +34b53aa,b +34b53ab,d0 +34b53ac,4f +34b53ad,82 +34b53ae,7e +34b53af,d0 +34b53b0,a +34b53b1,ee +34b53b2,db +34b53b3,d0 +34b53c0,d +34b53c1,90 +34b53c4,d +34b53c5,90 +34b53c8,d +34b53c9,90 +34b53cc,d +34b53cd,90 +34b53d0,d +34b53d1,bd +34b53d2,ec +34b53d3,40 +34b53d4,d +34b53d5,e6 +34b53d6,5d +34b53d7,c0 +34b53d8,d +34b53d9,b0 +34b53da,8 +34b53db,e0 +34b53dc,d +34b53dd,a0 +34b53de,7 +34b53df,f2 +34b53e0,d +34b53e1,b0 +34b53e2,8 +34b53e3,e0 +34b53e4,d +34b53e5,e6 +34b53e6,4d +34b53e7,b0 +34b53e8,d +34b53e9,bd +34b53ea,ec +34b53eb,40 +34b5409,8d +34b540a,ed +34b540b,70 +34b540c,7 +34b540d,e9 +34b540e,36 +34b540f,a0 +34b5410,c +34b5411,c0 +34b5414,d +34b5415,b0 +34b5418,c +34b5419,c0 +34b541c,7 +34b541d,e9 +34b541e,36 +34b541f,a0 +34b5421,8d +34b5422,ed +34b5423,70 +34b5432,b +34b5433,c0 +34b5436,b +34b5437,c0 +34b543a,b +34b543b,c0 +34b543e,b +34b543f,c0 +34b5440,5 +34b5441,de +34b5442,dc +34b5443,c0 +34b5444,d +34b5445,c4 +34b5446,8e +34b5447,c0 +34b5448,5f +34b5449,60 +34b544a,c +34b544b,c0 +34b544c,7f +34b544d,30 +34b544e,b +34b544f,c0 +34b5450,5f +34b5451,60 +34b5452,c +34b5453,c0 +34b5454,d +34b5455,c4 +34b5456,8e +34b5457,c0 +34b5458,5 +34b5459,de +34b545a,dc +34b545b,c0 +34b5478,3 +34b5479,be +34b547a,ec +34b547b,30 +34b547c,c +34b547d,d5 +34b547e,4c +34b547f,c0 +34b5480,4f +34b5481,60 +34b5482,7 +34b5483,e0 +34b5484,6f +34b5485,ff +34b5486,ff +34b5487,f3 +34b5488,4f +34b5489,50 +34b548c,c +34b548d,c5 +34b548e,38 +34b548f,c0 +34b5490,3 +34b5491,be +34b5492,ec +34b5493,60 +34b54a1,5 +34b54a2,de +34b54a3,d0 +34b54a5,c +34b54a6,b2 +34b54a9,d +34b54aa,90 +34b54ad,e +34b54ae,80 +34b54b0,d +34b54b1,ff +34b54b2,ff +34b54b3,d0 +34b54b5,e +34b54b6,80 +34b54b9,e +34b54ba,80 +34b54bd,e +34b54be,80 +34b54c1,e +34b54c2,80 +34b54c5,e +34b54c6,80 +34b54c9,e +34b54ca,80 +34b54e8,5 +34b54e9,de +34b54ea,dc +34b54eb,c0 +34b54ec,d +34b54ed,c4 +34b54ee,8e +34b54ef,c0 +34b54f0,5f +34b54f1,60 +34b54f2,c +34b54f3,c0 +34b54f4,7f +34b54f5,30 +34b54f6,b +34b54f7,c0 +34b54f8,5f +34b54f9,60 +34b54fa,c +34b54fb,c0 +34b54fc,d +34b54fd,c4 +34b54fe,8e +34b54ff,c0 +34b5500,5 +34b5501,de +34b5502,dc +34b5503,b0 +34b5506,c +34b5507,a0 +34b5508,9 +34b5509,94 +34b550a,7e +34b550b,60 +34b550c,4 +34b550d,ce +34b550e,e9 +34b5510,d +34b5511,a0 +34b5514,d +34b5515,a0 +34b5518,d +34b5519,a0 +34b551c,d +34b551d,a0 +34b5520,d +34b5521,bd +34b5522,ed +34b5523,40 +34b5524,d +34b5525,e6 +34b5526,5d +34b5527,a0 +34b5528,d +34b5529,b0 +34b552a,b +34b552b,c0 +34b552c,d +34b552d,a0 +34b552e,b +34b552f,c0 +34b5530,d +34b5531,a0 +34b5532,b +34b5533,c0 +34b5534,d +34b5535,a0 +34b5536,b +34b5537,c0 +34b5538,d +34b5539,a0 +34b553a,b +34b553b,c0 +34b5549,b +34b554a,c0 +34b5558,9 +34b5559,ff +34b555a,c0 +34b555d,b +34b555e,c0 +34b5561,b +34b5562,c0 +34b5565,b +34b5566,c0 +34b5569,b +34b556a,c0 +34b556d,b +34b556e,c0 +34b5570,e +34b5571,ff +34b5572,ff +34b5573,e0 +34b5581,7 +34b5582,e0 +34b5590,7 +34b5591,ff +34b5592,e0 +34b5595,7 +34b5596,e0 +34b5599,7 +34b559a,e0 +34b559d,7 +34b559e,e0 +34b55a1,7 +34b55a2,e0 +34b55a5,7 +34b55a6,e0 +34b55a9,7 +34b55aa,e0 +34b55ad,7 +34b55ae,e0 +34b55b1,1b +34b55b2,d0 +34b55b4,d +34b55b5,fe +34b55b6,70 +34b55b8,b +34b55b9,c0 +34b55bc,b +34b55bd,c0 +34b55c0,b +34b55c1,c0 +34b55c4,b +34b55c5,c0 +34b55c8,b +34b55c9,c0 +34b55ca,3d +34b55cb,c2 +34b55cc,b +34b55cd,c3 +34b55ce,db +34b55d0,b +34b55d1,dd +34b55d2,c0 +34b55d4,b +34b55d5,fc +34b55d6,e5 +34b55d8,b +34b55d9,d0 +34b55da,cd +34b55db,10 +34b55dc,b +34b55dd,c0 +34b55de,3d +34b55df,b0 +34b55e0,b +34b55e1,c0 +34b55e2,7 +34b55e3,e8 +34b55f0,e +34b55f1,ff +34b55f2,40 +34b55f5,5f +34b55f6,40 +34b55f9,5f +34b55fa,40 +34b55fd,5f +34b55fe,40 +34b5601,5f +34b5602,40 +34b5605,5f +34b5606,40 +34b5609,5f +34b560a,40 +34b560d,5f +34b560e,40 +34b5611,4f +34b5612,50 +34b5615,e +34b5616,a0 +34b5619,8 +34b561a,ef +34b561b,b0 +34b5638,8d +34b5639,dd +34b563a,ae +34b563b,c0 +34b563c,8e +34b563d,4d +34b563e,c5 +34b563f,e4 +34b5640,8d +34b5641,c +34b5642,b0 +34b5643,e6 +34b5644,8d +34b5645,b +34b5646,a0 +34b5647,e7 +34b5648,8d +34b5649,b +34b564a,a0 +34b564b,e7 +34b564c,8d +34b564d,b +34b564e,a0 +34b564f,e7 +34b5650,8d +34b5651,b +34b5652,a0 +34b5653,e7 +34b5670,d +34b5671,bd +34b5672,ed +34b5673,40 +34b5674,d +34b5675,e6 +34b5676,5d +34b5677,a0 +34b5678,d +34b5679,b0 +34b567a,b +34b567b,c0 +34b567c,d +34b567d,a0 +34b567e,b +34b567f,c0 +34b5680,d +34b5681,a0 +34b5682,b +34b5683,c0 +34b5684,d +34b5685,a0 +34b5686,b +34b5687,c0 +34b5688,d +34b5689,a0 +34b568a,b +34b568b,c0 +34b56a8,4 +34b56a9,ce +34b56aa,eb +34b56ab,20 +34b56ac,c +34b56ad,d5 +34b56ae,6d +34b56af,a0 +34b56b0,1e +34b56b1,70 +34b56b2,a +34b56b3,d0 +34b56b4,5f +34b56b5,60 +34b56b6,8 +34b56b7,e0 +34b56b8,1e +34b56b9,70 +34b56ba,a +34b56bb,d0 +34b56bc,c +34b56bd,d4 +34b56be,6d +34b56bf,b0 +34b56c0,4 +34b56c1,ce +34b56c2,eb +34b56c3,20 +34b56e0,d +34b56e1,bd +34b56e2,ec +34b56e3,30 +34b56e4,d +34b56e5,e6 +34b56e6,5d +34b56e7,b0 +34b56e8,d +34b56e9,b0 +34b56ea,9 +34b56eb,e0 +34b56ec,d +34b56ed,a0 +34b56ee,7 +34b56ef,e0 +34b56f0,d +34b56f1,b0 +34b56f2,8 +34b56f3,e0 +34b56f4,d +34b56f5,e6 +34b56f6,5d +34b56f7,b0 +34b56f8,d +34b56f9,be +34b56fa,ec +34b56fb,40 +34b56fc,d +34b56fd,90 +34b5700,d +34b5701,90 +34b5704,d +34b5705,90 +34b5718,4 +34b5719,ce +34b571a,dc +34b571b,c0 +34b571c,c +34b571d,c4 +34b571e,7e +34b571f,c0 +34b5720,1e +34b5721,70 +34b5722,c +34b5723,c0 +34b5724,5f +34b5725,60 +34b5726,b +34b5727,c0 +34b5728,2e +34b5729,70 +34b572a,c +34b572b,c0 +34b572c,c +34b572d,c4 +34b572e,7e +34b572f,c0 +34b5730,5 +34b5731,ce +34b5732,db +34b5733,c0 +34b5736,a +34b5737,c0 +34b573a,a +34b573b,c0 +34b573e,a +34b573f,c0 +34b5751,cc +34b5752,de +34b5753,f9 +34b5755,ce +34b5756,83 +34b5759,cb +34b575d,ca +34b5761,ca +34b5765,ca +34b5769,ca +34b5788,4 +34b5789,ce +34b578a,ea +34b578b,10 +34b578c,b +34b578d,d4 +34b578e,5b +34b578f,60 +34b5790,b +34b5791,d4 +34b5794,3 +34b5795,bd +34b5796,db +34b5797,20 +34b579a,4d +34b579b,a0 +34b579c,b +34b579d,94 +34b579e,5e +34b579f,a0 +34b57a0,5 +34b57a1,ce +34b57a2,eb +34b57a3,20 +34b57b9,8e +34b57bd,8e +34b57c0,6f +34b57c1,ff +34b57c2,ff +34b57c3,b0 +34b57c5,8e +34b57c9,8e +34b57cd,8e +34b57d1,8e +34b57d5,6e +34b57d6,70 +34b57d9,b +34b57da,ef +34b57db,b0 +34b57f8,d +34b57f9,a0 +34b57fa,b +34b57fb,c0 +34b57fc,d +34b57fd,a0 +34b57fe,b +34b57ff,c0 +34b5800,d +34b5801,a0 +34b5802,b +34b5803,c0 +34b5804,d +34b5805,a0 +34b5806,b +34b5807,c0 +34b5808,d +34b5809,a0 +34b580a,b +34b580b,c0 +34b580c,b +34b580d,d4 +34b580e,7e +34b580f,c0 +34b5810,5 +34b5811,de +34b5812,db +34b5813,c0 +34b5830,6e +34b5831,30 +34b5832,7 +34b5833,e3 +34b5834,d +34b5835,90 +34b5836,b +34b5837,c0 +34b5838,a +34b5839,d0 +34b583a,1e +34b583b,80 +34b583c,5 +34b583d,e4 +34b583e,8e +34b583f,20 +34b5841,da +34b5842,cb +34b5845,9d +34b5846,e7 +34b5849,3e +34b584a,e0 +34b5868,e8 +34b586b,ac +34b586c,ca +34b586f,ca +34b5870,ac +34b5871,d +34b5872,b0 +34b5873,e7 +34b5874,6e +34b5875,3d +34b5876,d5 +34b5877,e2 +34b5878,e +34b5879,ab +34b587a,ca +34b587b,d0 +34b587c,c +34b587d,e7 +34b587e,9e +34b587f,b0 +34b5880,a +34b5881,e1 +34b5882,5f +34b5883,80 +34b58a0,3d +34b58a1,a0 +34b58a2,b +34b58a3,c0 +34b58a4,6 +34b58a5,e6 +34b58a6,9e +34b58a7,40 +34b58a9,9e +34b58aa,e7 +34b58ad,2e +34b58ae,d0 +34b58b1,cc +34b58b2,da +34b58b4,9 +34b58b5,e4 +34b58b6,6e +34b58b7,70 +34b58b8,6e +34b58b9,70 +34b58ba,9 +34b58bb,e4 +34b58d8,6e +34b58d9,50 +34b58da,5 +34b58db,e5 +34b58dc,d +34b58dd,a0 +34b58de,b +34b58df,d0 +34b58e0,9 +34b58e1,e0 +34b58e2,e +34b58e3,90 +34b58e4,3 +34b58e5,e7 +34b58e6,8e +34b58e7,30 +34b58e9,cc +34b58ea,cc +34b58ed,7e +34b58ee,e7 +34b58f1,d +34b58f2,e0 +34b58f5,d +34b58f6,a0 +34b58f9,8e +34b58fa,50 +34b58fc,d +34b58fd,ea +34b5910,b +34b5911,ff +34b5912,ff +34b5913,c0 +34b5916,5e +34b5917,70 +34b5919,3 +34b591a,d9 +34b591d,c +34b591e,b0 +34b5921,bd +34b5922,20 +34b5924,9 +34b5925,e4 +34b5928,d +34b5929,ff +34b592a,ff +34b592b,c0 +34b5939,6 +34b593a,de +34b593b,a0 +34b593d,b +34b593e,d3 +34b5941,c +34b5942,b0 +34b5945,c +34b5946,b0 +34b5949,5e +34b594a,a0 +34b594c,b +34b594d,fd +34b594e,20 +34b5951,7e +34b5952,90 +34b5955,d +34b5956,b0 +34b5959,c +34b595a,b0 +34b595d,c +34b595e,b0 +34b5961,b +34b5962,d4 +34b5965,5 +34b5966,de +34b5967,a0 +34b5971,c +34b5972,a0 +34b5975,c +34b5976,a0 +34b5979,c +34b597a,a0 +34b597d,c +34b597e,a0 +34b5981,c +34b5982,a0 +34b5985,c +34b5986,a0 +34b5989,c +34b598a,a0 +34b598d,c +34b598e,a0 +34b5991,c +34b5992,a0 +34b5995,c +34b5996,a0 +34b5999,c +34b599a,a0 +34b599d,c +34b599e,a0 +34b59a1,c +34b59a2,a0 +34b59a8,b +34b59a9,ed +34b59aa,30 +34b59ad,4e +34b59ae,90 +34b59b1,d +34b59b2,a0 +34b59b5,c +34b59b6,a0 +34b59b9,b +34b59ba,c4 +34b59bd,5 +34b59be,ef +34b59bf,a0 +34b59c1,b +34b59c2,d5 +34b59c5,c +34b59c6,b0 +34b59c9,d +34b59ca,a0 +34b59cd,d +34b59ce,a0 +34b59d1,5e +34b59d2,80 +34b59d4,b +34b59d5,ec +34b59d6,20 +34b59f8,5d +34b59f9,ed +34b59fa,83 +34b59fb,a7 +34b59fc,98 +34b59fd,38 +34b59fe,de +34b59ff,c3 diff --git a/data/symbols.json b/data/symbols.json index a2e70f1f3..264a05622 100644 --- a/data/symbols.json +++ b/data/symbols.json @@ -1,33 +1,33 @@ -{ - "ADULT_INIT_ITEMS": "03483608", - "ADULT_VALID_ITEMS": "03483614", - "EXTENDED_ITEM_DATA": "03482008", - "FAIRY_ITEMS": "03481C03", - "FAIRY_OCARINA_ITEM": "03481C02", - "FONT_TEXTURE": "034B454E", - "INITIAL_SAVE_DATA": "03481800", - "ITEM_OVERRIDES": "03481000", - "ITEM_TABLE": "03482050", - "LIGHT_ARROW_ITEM": "03481C01", - "PENDING_SPECIAL_ITEM": "03482018", - "PENDING_SPECIAL_ITEM_END": "0348201B", - "PLAYER_ID": "03481C00", - "PLAYER_OVERRIDE_DATA": "03482000", - "TIME_TRAVEL_SAVED_EQUIPS": "0348201C", - "cfg_dungeon_info_enable": "034B450C", - "cfg_dungeon_info_mq_enable": "034B4524", - "cfg_dungeon_info_mq_need_map": "034B4520", - "cfg_dungeon_info_reward_need_altar": "034B4518", - "cfg_dungeon_info_reward_need_compass": "034B451C", - "cfg_dungeon_is_mq": "034B4540", - "cfg_dungeon_rewards": "034B444C", - "dungeon_count": "034B4510", - "dungeons": "034B4470", - "font_sprite": "034B440C", - "heap_next": "034B4514", - "medal_colors": "034B445C", - "medals_sprite": "034B442C", - "quest_items_sprite": "034B441C", - "setup_db": "034B4530", - "stones_sprite": "034B443C" +{ + "ADULT_INIT_ITEMS": "03483608", + "ADULT_VALID_ITEMS": "03483614", + "EXTENDED_ITEM_DATA": "03482008", + "FAIRY_ITEMS": "03481C03", + "FAIRY_OCARINA_ITEM": "03481C02", + "FONT_TEXTURE": "034B4550", + "INITIAL_SAVE_DATA": "03481800", + "ITEM_OVERRIDES": "03481000", + "ITEM_TABLE": "03482050", + "LIGHT_ARROW_ITEM": "03481C01", + "PENDING_SPECIAL_ITEM": "03482018", + "PENDING_SPECIAL_ITEM_END": "0348201B", + "PLAYER_ID": "03481C00", + "PLAYER_OVERRIDE_DATA": "03482000", + "TIME_TRAVEL_SAVED_EQUIPS": "0348201C", + "cfg_dungeon_info_enable": "034B450C", + "cfg_dungeon_info_mq_enable": "034B4528", + "cfg_dungeon_info_mq_need_map": "034B4524", + "cfg_dungeon_info_reward_need_altar": "034B451C", + "cfg_dungeon_info_reward_need_compass": "034B4520", + "cfg_dungeon_is_mq": "034B4530", + "cfg_dungeon_rewards": "034B440C", + "dungeon_count": "034B4510", + "dungeons": "034B4430", + "font_sprite": "034B44CC", + "heap_next": "034B452C", + "medal_colors": "034B441C", + "medals_sprite": "034B44EC", + "quest_items_sprite": "034B44DC", + "setup_db": "034B4540", + "stones_sprite": "034B44FC" } \ No newline at end of file diff --git a/version.py b/version.py index 41cca5405..b8035bcd8 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.20.2 f.LUM' +__version__ = '2.20.3 f.LUM' From a6b1dea1e6e86204108c3cabac21abf44bcaecf6 Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 3 Oct 2018 05:04:28 -0400 Subject: [PATCH 625/755] Make Double Defense a slow chest animation to match the large chest size --- ASM/src/extended_items.asm | 2 +- data/rom_patch.txt | 4 ++-- version.py | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ASM/src/extended_items.asm b/ASM/src/extended_items.asm index 6b9be8c63..dd24a88bf 100755 --- a/ASM/src/extended_items.asm +++ b/ASM/src/extended_items.asm @@ -120,7 +120,7 @@ Item_Row 0x4D, 0x90, 0xE0, 0x32, 0x00CE, bombs_to_rupee, no_effect, -1, -1 ; 0x Item_Row 0x4D, 0x8C, 0xEE, 0x34, 0x00BB, no_upgrade, no_effect, -1, -1 ; 0xBD = Deku Nuts (5) Item_Row 0x4D, 0x8D, 0xEE, 0x34, 0x00BB, no_upgrade, no_effect, -1, -1 ; 0xBE = Deku Nuts (10) -Item_Row 0x4F, 0x41, 0xED, 0xE9, 0x00BD, no_upgrade, give_defense, -1, -1 ; 0xBF = Double Defense +Item_Row 0x53, 0x41, 0x13, 0xE9, 0x00BD, no_upgrade, give_defense, -1, -1 ; 0xBF = Double Defense Item_Row 0x53, 0x41, 0x1E, 0xE4, 0x00CD, magic_upgrade, give_magic, -1, -1 ; 0xC0 = Progressive Magic Meter Item_Row 0x53, 0x41, 0x1F, 0xE8, 0x00CD, no_upgrade, double_magic, -1, -1 ; 0xC1 = Double Magic diff --git a/data/rom_patch.txt b/data/rom_patch.txt index d344d7142..db16f1cd8 100644 --- a/data/rom_patch.txt +++ b/data/rom_patch.txt @@ -2032,9 +2032,9 @@ ec9ce7,7a 348243d,40 348243e,25 348243f,70 -3482440,4f +3482440,53 3482441,41 -3482442,ed +3482442,13 3482443,e9 3482445,bd 3482446,ff diff --git a/version.py b/version.py index b8035bcd8..62e13795f 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.20.3 f.LUM' +__version__ = '2.20.4 f.LUM' From d18594da9d328f0bf73d791eacc973edf5e3e094 Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 3 Oct 2018 06:06:48 -0400 Subject: [PATCH 626/755] Don't shuffle shop text for non-shop items and GS text in some settings The non-shop items texts are not shuffled if text shuffle is excepting hints. This is so that the prices can be known. (Issue #189) The GS Token message is from a softlock that can occur when playing with full text shuffle + shopsanity + tokensanity. When those combinations of options are set, the GS Token message won't be shuffled (Issue #111) --- Messages.py | 8 +++++--- Patches.py | 11 +++++++++-- Settings.py | 4 +++- version.py | 2 +- 4 files changed, 18 insertions(+), 7 deletions(-) diff --git a/Messages.py b/Messages.py index 07665fa80..7ee5f9ccd 100644 --- a/Messages.py +++ b/Messages.py @@ -61,6 +61,7 @@ GOSSIP_STONE_MESSAGES += [0x2053, 0x2054] # shared initial stone messages TEMPLE_HINTS_MESSAGES = [0x7057, 0x707A] # dungeon reward hints from the temple of time pedestal LIGHT_ARROW_HINT = [0x70CC] # ganondorf's light arrow hint line +GS_TOKEN_MESSAGES = [0x00B4, 0x00B5] # Get Gold Skulltula Token messages # messages for shorter item messages ITEM_MESSAGES = { @@ -755,7 +756,7 @@ def repack_messages(rom, messages, permutation=None, always_allow_skip=True, spe rom.write_bytes(entry_offset, [0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]) # shuffles the messages in the game, making sure to keep various message types in their own group -def shuffle_messages(rom, except_hints=True, always_allow_skip=True): +def shuffle_messages(rom, except_hints=True, always_allow_skip=True, except_gs_token=True): messages = read_messages(rom) @@ -763,8 +764,9 @@ def shuffle_messages(rom, except_hints=True, always_allow_skip=True): def is_not_exempt(m): exempt_as_id = m.is_id_message() - exempt_as_hint = ( except_hints and m.id in (GOSSIP_STONE_MESSAGES + TEMPLE_HINTS_MESSAGES + LIGHT_ARROW_HINT + list(KEYSANITY_MESSAGES.keys()) ) ) - return not ( exempt_as_id or exempt_as_hint ) + exempt_as_hint = ( except_hints and m.id in (GOSSIP_STONE_MESSAGES + TEMPLE_HINTS_MESSAGES + LIGHT_ARROW_HINT + list(KEYSANITY_MESSAGES.keys()) + shuffle_messages.shop_item_messages ) ) + exempt_gs_token = ( except_gs_token and m.id in GS_TOKEN_MESSAGES ) + return not ( exempt_as_id or exempt_as_hint or exempt_gs_token ) have_goto = list( filter( lambda m: is_not_exempt(m) and m.has_goto, messages) ) have_keep_open = list( filter( lambda m: is_not_exempt(m) and m.has_keep_open, messages) ) diff --git a/Patches.py b/Patches.py index eb1384b0a..d202f137c 100644 --- a/Patches.py +++ b/Patches.py @@ -1214,6 +1214,8 @@ def write_save_table(rom): update_message_by_id(messages, shop_items[0x001C].description_message, "\x08\x05\x41Bombchu (10 pieces) 99 Rupees\x01\x05\x40This looks like a toy mouse, but\x01it's actually a self-propelled time\x01bomb!\x09\x0A") update_message_by_id(messages, shop_items[0x001C].purchase_message, "\x08Bombchu 10 pieces 100 Rupees\x09\x01\x01\x1B\x05\x42Buy\x01Don't buy\x05\x40") + shuffle_messages.shop_item_messages = [] + # kokiri shop shop_objs = place_shop_items(rom, world, shop_items, messages, world.get_region('Kokiri Shop').locations, True) @@ -1412,9 +1414,11 @@ def write_save_table(rom): # text shuffle if world.text_shuffle == 'except_hints': - shuffle_messages(rom, True) + shuffle_messages(rom, except_hints=True, except_gs_token=False) elif world.text_shuffle == 'complete': - shuffle_messages(rom, False) + # Don't change GS token text if they can appear in shop; can cause a soft-lock + except_gs_token_message = world.shopsanity in ['1', '2', '3', '4', 'random'] and world.tokensanity != 'off' + shuffle_messages(rom, except_hints=False, except_gs_token=except_gs_token_message) # output a text dump, for testing... #with open('keysanity_' + str(world.seed) + '_dump.txt', 'w', encoding='utf-16') as f: @@ -1864,6 +1868,9 @@ def place_shop_items(rom, world, shop_items, messages, locations, init_shop_id=F shop_item.description_message = 0x8100 + message_id shop_item.purchase_message = 0x8100 + message_id + 1 + shuffle_messages.shop_item_messages.extend( + [shop_item.description_message, shop_item.purchase_message]) + if location.item.dungeonitem: split_item_name = location.item.name.split('(') split_item_name[1] = '(' + split_item_name[1] diff --git a/Settings.py b/Settings.py index 2851ecda0..f2d4faa12 100644 --- a/Settings.py +++ b/Settings.py @@ -1702,7 +1702,9 @@ def parse_custom_navi_color(s): 'Shuffled except Hints and Keys': Key texts not shuffled because in keysanity it is impossible to tell what dungeon it is for - without the correct text. + without the correct text. Similarly, non-shop + items sold in shops will also not be shuffled + so that the price of the item can be known. ''' }), Setting_Info('difficulty', str, 2, True, diff --git a/version.py b/version.py index 62e13795f..f326f1a0b 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.20.4 f.LUM' +__version__ = '2.20.5 f.LUM' From 14201fa6dc4f1deb92261db7c5d288b60085eeae Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 3 Oct 2018 06:22:22 -0400 Subject: [PATCH 627/755] Forbid GS from appearing in Shops (Issue #111) Also reverted the change with not shuffling the GS. I misunderstood the problem and it did not fix the issue. This fix is somewhat of a hot fix since I'm not sure what's causing the softlock but it seems to only happen to GS Tokens in Shops. Unsure how to fix, probably related to BGS softlock --- Messages.py | 5 ++--- Patches.py | 6 ++---- Rules.py | 1 + version.py | 2 +- 4 files changed, 6 insertions(+), 8 deletions(-) diff --git a/Messages.py b/Messages.py index 7ee5f9ccd..32015a8e0 100644 --- a/Messages.py +++ b/Messages.py @@ -756,7 +756,7 @@ def repack_messages(rom, messages, permutation=None, always_allow_skip=True, spe rom.write_bytes(entry_offset, [0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]) # shuffles the messages in the game, making sure to keep various message types in their own group -def shuffle_messages(rom, except_hints=True, always_allow_skip=True, except_gs_token=True): +def shuffle_messages(rom, except_hints=True, always_allow_skip=True): messages = read_messages(rom) @@ -765,8 +765,7 @@ def shuffle_messages(rom, except_hints=True, always_allow_skip=True, except_gs_t def is_not_exempt(m): exempt_as_id = m.is_id_message() exempt_as_hint = ( except_hints and m.id in (GOSSIP_STONE_MESSAGES + TEMPLE_HINTS_MESSAGES + LIGHT_ARROW_HINT + list(KEYSANITY_MESSAGES.keys()) + shuffle_messages.shop_item_messages ) ) - exempt_gs_token = ( except_gs_token and m.id in GS_TOKEN_MESSAGES ) - return not ( exempt_as_id or exempt_as_hint or exempt_gs_token ) + return not ( exempt_as_id or exempt_as_hint ) have_goto = list( filter( lambda m: is_not_exempt(m) and m.has_goto, messages) ) have_keep_open = list( filter( lambda m: is_not_exempt(m) and m.has_keep_open, messages) ) diff --git a/Patches.py b/Patches.py index d202f137c..f638cfa34 100644 --- a/Patches.py +++ b/Patches.py @@ -1414,11 +1414,9 @@ def write_save_table(rom): # text shuffle if world.text_shuffle == 'except_hints': - shuffle_messages(rom, except_hints=True, except_gs_token=False) + shuffle_messages(rom, except_hints=True) elif world.text_shuffle == 'complete': - # Don't change GS token text if they can appear in shop; can cause a soft-lock - except_gs_token_message = world.shopsanity in ['1', '2', '3', '4', 'random'] and world.tokensanity != 'off' - shuffle_messages(rom, except_hints=False, except_gs_token=except_gs_token_message) + shuffle_messages(rom, except_hints=False) # output a text dump, for testing... #with open('keysanity_' + str(world.seed) + '_dump.txt', 'w', encoding='utf-16') as f: diff --git a/Rules.py b/Rules.py index dfacb7d04..13c409a67 100644 --- a/Rules.py +++ b/Rules.py @@ -346,6 +346,7 @@ def global_rules(world): add_item_rule(location, lambda i: not (i.type == 'Shop' and i.world.id != location.world.id)) if location.type == 'Shop': forbid_item(location, 'Biggoron Sword') + forbid_item(location, 'Gold Skulltulla Token') if location.parent_region.name in ['Castle Town Bombchu Shop', 'Castle Town Potion Shop', 'Castle Town Bazaar']: if not world.check_beatable_only: diff --git a/version.py b/version.py index f326f1a0b..f5a1588f3 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.20.5 f.LUM' +__version__ = '2.20.6 f.LUM' From 2be0487797c3501a2ed7aa4d85c1cbd4de45f258 Mon Sep 17 00:00:00 2001 From: AmazingAmpharos Date: Wed, 3 Oct 2018 05:22:44 -0500 Subject: [PATCH 628/755] Update readme The changes to the settings file are mostly trivial re-arrangements. The readme now lists command line options. The readme still needs proofreading and minor polish, but the actual content is present. That was not the most fun part of this project. --- README.md | 475 ++++++++++++++++++++++++++++++++++++++++++++++++---- Settings.py | 17 +- 2 files changed, 452 insertions(+), 40 deletions(-) diff --git a/README.md b/README.md index de17365d2..f9f9473e9 100644 --- a/README.md +++ b/README.md @@ -737,64 +737,68 @@ This option sets the SFX that will play when Navi targets an enemy. The options Show the help message and exit. ``` ---create_spoiler +--check_version ``` -Output a Spoiler File (default: False) +Check for the latest version number online (default: False) ``` ---bridge [{medallions,vanilla,dungeons,open}] +--checked_version CHECKED_VERSION ``` -Select the condition to spawn the Rainbow Bridge to Ganon's Castle. (default: medallions) +Check for the specified version number instead of a number from online. ``` ---kokiricolor [{'Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Purple', 'Yellow', 'Orange', 'Pink', 'Gray', 'Brown', 'Gold', 'Silver', 'Beige', 'Teal', 'Royal Blue', 'Sonic Blue', 'Blood Red', 'Blood Orange', 'NES Green', 'Dark Green', 'Random', 'True Random'}] +--rom ROM ``` -Select the color of Link's Kokiri Tunic. (default: Kokiri Green) +Path to a The Legend of Zelda: Ocarina of Time NTSC-US v1.0 ROM. (default: ZOOTDEC.z64) ``` ---goroncolor [{'Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Purple', 'Yellow', 'Orange', 'Pink', 'Gray', 'Brown', 'Gold', 'Silver', 'Beige', 'Teal', 'Royal Blue', 'Sonic Blue', 'Blood Red', 'Blood Orange', 'NES Green', 'Dark Green', 'Random', 'True Random'}] +--output_dir OUTPUT_DIR ``` -Select the color of Link's Goron Tunic. (default: Goron Red) +Path to output directory for rom generation. ``` ---zoracolor [{'Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Purple', 'Yellow', 'Orange', 'Pink', 'Gray', 'Brown', 'Gold', 'Silver', 'Beige', 'Teal', 'Royal Blue', 'Sonic Blue', 'Blood Red', 'Blood Orange', 'NES Green', 'Dark Green', 'Random', 'True Random'}] +--seed SEED ``` -Select the color of Link's Zora Tunic. (default: Zora Blue) +Define seed number to generate. (default: None) ``` ---healthSFX [{'Default', 'Softer Beep', 'Rupee', 'Timer', 'Tamborine', 'Recovery Heart', 'Carrot Refill', 'Navi - Hey!', 'Zelda - Gasp', 'Cluck', 'Mweep!', 'Random', 'None'}] +--count COUNT ``` -Select the sound effect that loops at low health. (default: Default) +Set the count option (default: None) ``` ---rom ROM +--world_count WORLD_COUNT ``` -Path to a The Legend of Zelda: Ocarina of Time NTSC-US v1.0 ROM. (default: ZELOOTROMDEC.z64) +Use to create a multi-world generation for co-op seeds. World count is the number of players. +Warning: Increasing the world count will drastically increase generation time. (default: 1) ``` ---loglevel [{error,info,warning,debug}] +--player_num PLAYER_NUM ``` -Select level of logging for output. (default: info) +Use to select world to generate when there are multiple worlds. (default: 1) ``` ---seed SEED +--create_spoiler ``` -Define seed number to generate. (default: None) +Output a Spoiler File (default: False) ``` ---count COUNT +--compress_rom [{True,False,None}] ``` -Set the count option (default: None) +Create a compressed version of the output rom file. +True: Compresses. Improves stability. Will take longer to generate +False: Uncompressed. Unstable on emulator. Faster generation +None: No ROM Output. Creates spoiler log only (default: True) ``` --open_forest @@ -802,6 +806,12 @@ Set the count option (default: None) Set whether Kokiri children obstruct your path at the beginning of the game. (default: False) +``` +--open_kakariko +``` + +The gate in Kakariko Village to Death Mountain Trail is always open, instead of needing Zelda's Letter. (default: False) + ``` --open_door_of_time ``` @@ -809,44 +819,445 @@ Set whether Kokiri children obstruct your path at the beginning of the game. (de Set whether the Door of Time is open from the beginning of the game. (default: False) ``` ---fast_ganon +--gerudo_fortress [{normal,fast,open}] ``` -Set whether most of Ganon's Castle can be skipped. (default: False) +Select how much of Gerudo Fortress is required. (default: normal) ``` ---nodungeonitems +--bridge [{medallions,vanilla,dungeons,open}] ``` -If set, Compasses and Maps are removed from the dungeon item pools and replaced by five rupee chests that may end up anywhere in the world. -This may lead to different amount of itempool items being placed in a dungeon than you are used to. (default: False) +Select the condition to spawn the Rainbow Bridge to Ganon's Castle. (default: medallions) ``` ---beatableonly +--all_reachable ``` Enables the "Only Ensure Seed Beatable" option (default: False) ``` ---hints +--all_reachable ``` -Gossip Stones provide helpful hints about which items are in inconvenient locations if the Stone of Agony is in the player's inventory. (default: False) +Enables the "Only Ensure Seed Beatable" option (default: False) ``` ---suppress_rom +--bombchus_in_logic ``` -Enables the "Do not Create Patched Rom" option. (default: False) +Changes how the logic considers Bombchus and other Bombchu related mechanics (default: False) ``` ---compress_rom +--one_item_per_dungeon ``` -Create a compressed version of the output ROM file. (default: False) +Each dungeon will have exactly one major item. (default: False) + +``` +--trials_random +``` + +Sets the number of trials that must be cleared in Ganon's Castle to a random value (default: False) + +``` +--trials [{0,1,2,3,4,5,6}] +``` + +Sets the number of trials that must be cleared in Ganon's Castle (default: 6) + +``` +--no_escape_sequence +``` + +Removes the tower collapse sequence after defeating Ganondorf (default: False) + +``` +--no_guard_stealth +``` + +Removes the guard evasion sequence in Hyrule Castle (default: False) + +``` +--no_epona_race +``` + +Removes the need to race Ingo to acquire Epona (default: False) + +``` +--fast_chests +``` + +Causes all chests to open with a fast animation (default: False) + +``` +--big_poe_count_random +``` + +Sets the number of Big Poes that must be sold to the vendor for an item to a random value (default: False) + +``` +--big_poe_count [{1,2,3,4,5,6,7,8,9,10}] +``` + +Sets the number of Big Poes that must be sold to the vendor for an item (default: 10) + +``` +--free_scarecrow +``` + +Start the game with the Scarecrow's Song activated and Pierre possible for the adult to summon (default: False) + +``` +--scarecrow_song [SCARECROW_SONG] +``` + +Set Scarecrow's Song if --free_scarecrow is used. Valid notes: A, U, L, R, D (default: DAAAAAAA) + +``` +--shuffle_kokiri_sword +``` + +Include the Kokiri Sword as a randomized item (default: False) + +``` +--shuffle_weird_egg +``` + +Include the Weird Egg as a randomized item (default: False) + +``` +--shuffle_ocarinas +``` + +Include the two ocarinas as randomized items (default: False) + +``` +--shuffle_song_items +``` + +Treat the ocarina songs as normal items and shuffle them into the general item pool (default: False) + +``` +--shuffle_gerudo_card +``` + +Include the Gerudo Card to access Gerudo Training Grounds as a randomized item (default: False) + +``` +--shuffle_scrubs +``` + +Include all Deku Scrub Salesmen as randomized item locations (default: False) + +``` +--shopsanity [{off,0,1,2,3,4,random}] +``` + +Randomize shop items and add the chosen number of items from the general item pool to shop inventories (default: off) + +``` +--shuffle_mapcompass [{remove,dungeon,keysanity}] +``` + +Choose the locations Maps and Compasses can be found (default: dungeon) + +``` +--shuffle_smallkeys [{remove,dungeon,keysanity}] +``` + +Choose the locations Small Keys can be found (default: dungeon) + +``` +--shuffle_bosskeys [{remove,dungeon,keysanity}] +``` + +Choose the locations Boss Keys can be found (default: dungeon) + +``` +--enhance_map_compass +``` + +Change the functionality of the Map and Compass to give information about their dungeons. Requires --shuffle_mappcompass keysanity (default: False) + +``` +--unlocked_ganondorf +``` + +Remove the Boss Key door leading to Ganondorf (default: False) + +``` +--tokensanity [{off,dungeons,all}] +``` + +Include the chosen Gold Skulltulla Token locations in the item shuffle (default: off) + +``` +--quest [{vanilla,master,mixed}] +``` + +Choose the internal layout of the dungeons (default: vanilla) + +``` +--logic_skulltulas [{0,10,20,30,40,50}] +``` + +Choose the maximum number of Gold Skulltulla Tokens that could be required (default: 50) + +``` +--logic_no_night_tokens_without_suns_song +``` + +Change logic to expect Sun's Song to defeat nighttime Gold Skulltullas (default: False) + +``` +--logic_no_big_poes +``` + +Prevent the Big Poe vendor from having a required item (default: False) + +``` +--logic_no_child_fishing +``` + +Prevent the prize from fishing as a child from being a required item (default: False) + +``` +--logic_no_adult_fishing +``` + +Prevent the prize from fishing as an adult from being a required item (default: False) + +``` +--logic_no_trade_skull_mask +``` + +Prevent the item obtained by showing the Skull Mask at the Deku Theater from being a required item (default: False) + +``` +--logic_no_trade_mask_of_truth +``` + +Prevent the item obtained by showing the Mask of Truth at the Deku Theater from being a required item (default: False) + +``` +--logic_no_1500_archery +``` + +Prevent the item obtained by scoring 1500 points at horseback archery from being a required item (default: False) + +``` +--logic_no_memory_game +``` + +Prevent the item obtained by completing the ocarina memory game in the Lost Woods from being a required item (default: False) + +``` +--logic_no_second_dampe_race +``` + +Prevent the prize won by finishing the second Dampe race in under 1 minute from being a required item (default: False) + +``` +--logic_no_trade_biggoron +``` + +Prevent the item obtained by showing the Claim Check to Biggoron from being a required item (default: False) + +``` +--logic_earliest_adult_trade [{pocket_egg,pocket_cucco,cojiro,odd_mushroom,poachers_saw,broken_sword,prescription,eyeball_frog,eyedrops,claim_check}] +``` + +Set the earliest item in the adult trade sequence that can be found in the item pool (default: pocket_egg) + +``` +--logic_latest_adult_trade [{pocket_egg,pocket_cucco,cojiro,odd_mushroom,poachers_saw,broken_sword,prescription,eyeball_frog,eyedrops,claim_check}] +``` + +Set the latest item in the adult trade sequence that can be found in the item pool (default: claim_check) + +``` +--logic_tricks +``` + +Enable the logic to consider a large number of minor tricks (default: False) + +``` +--logic_man_on_roof +``` + +Enable the logic to consider the trick to reach the man on the roof in Kakariko Village with a sidehop from the tower (default: False) + +``` +--logic_child_deadhand +``` + +Enable the logic to consider the child defeating Deadhand with only Deku Sticks (default: False) + +``` +--logic_dc_jump +``` + +Enable the logic to consider the trick to bypass the second Lizalfos fight room in Dodongo's Cavern as an adult with a simple jump (default: False) + +``` +--logic_windmill_poh +``` + +Enable the logic to consider the trick to reach the Piece of Heart in the windmill as an adult with nothing (default: False) + +``` +--logic_crater_bean_poh_with_hovers +``` + +Enable the logic to consider the trick to reach the Piece of Heart on the volcano in Death Mountain Crater with Hover Boots (default: False) + +``` +--logic_zora_with_cucco +``` + +Enable the logic to consider the trick to enter Zora's Domain as a child using a Cucco instead of playing Zelda's Lullaby (default: False) + +``` +--logic_zora_with_hovers +``` + +Enable the logic to consider the trick to enter Zora's Domain as an adult using Hover Boots instead of playing Zelda's Lullaby (default: False) + +``` +--logic_fewer_tunic_requirements +``` + +Reduce the number of locations for which the logic expects a tunic upgrade (default: False) + +``` +--logic_lens [{chest,chest-wasteland,all}] +``` + +Set which hidden objects the logic expects the Lens of Truth to be used on (default: all) + +``` +--ocarina_songs +``` + +Randomize the particular notes that must be played for each of the 12 standard ocarina songs (default: False) + +``` +--correct_chest_sizes +``` + +Set chest sizes based on contents (default: False) + +``` +--clearer_hints +``` + +Reword hints to be incredibly direct (default: False) + +``` +--hints [{none,mask,agony,always}] +``` + +Enable hints from Gossip Stones and select the condition to read them (default: agony) + +``` +--text_shuffle [{none,except_hints,complete}] +``` + +Shuffle the chosen text randomly (default: none) + +``` +--difficulty [{normal,hard,very_hard,ohko}] +``` + +Alter the item pool to increase difficulty. The ohko option also causes Link to die in one hit. (default: normal) + +``` +--default_targeting [{hold,switch}] +``` + +Set the default Z-targeting setting. It can still be changed in the game's options menu. (default: hold) + +``` +--background_music [{normal,off,random}] +``` + +Choose whether the game's background music will be left alone, disabled, or shuffled randomly. (default: normal) + +``` +--kokiricolor [{'Random Choice', 'Completely Random', 'Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Purple', 'Yellow', 'Orange', 'Pink', 'Gray', 'Brown', 'Gold', 'Silver', 'Beige', 'Teal', 'Royal Blue', 'Sonic Blue', 'Blood Red', 'Blood Orange', 'NES Green', 'Dark Green', 'Lumen'}] +``` + +Select the color of Link's Kokiri Tunic. (default: Kokiri Green) + +``` +--goroncolor [{'Random Choice', 'Completely Random', 'Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Purple', 'Yellow', 'Orange', 'Pink', 'Gray', 'Brown', 'Gold', 'Silver', 'Beige', 'Teal', 'Royal Blue', 'Sonic Blue', 'Blood Red', 'Blood Orange', 'NES Green', 'Dark Green', 'Lumen'}] +``` + +Select the color of Link's Goron Tunic. (default: Goron Red) + +``` +--zoracolor [{'Random Choice', 'Completely Random', 'Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Purple', 'Yellow', 'Orange', 'Pink', 'Gray', 'Brown', 'Gold', 'Silver', 'Beige', 'Teal', 'Royal Blue', 'Sonic Blue', 'Blood Red', 'Blood Orange', 'NES Green', 'Dark Green', 'Lumen'}] +``` + +Select the color of Link's Zora Tunic. (default: Zora Blue) + +``` +--navicolordefault [{'Random Choice', 'Completely Random', 'Gold', 'White', 'Green', 'Light Blue', 'Yellow', 'Red', 'Magenta', 'Black', 'Tatl', 'Tael', 'Fi', 'Ciela', 'Epona', 'Ezlo', 'King of Red Lions', 'Linebeck', 'Loftwing', 'Midna', 'Phantom Zelda'}] +``` + +Select the color of Navi in idle. (default: White) + +``` +--navicolorenemy [{'Random Choice', 'Completely Random', 'Gold', 'White', 'Green', 'Light Blue', 'Yellow', 'Red', 'Magenta', 'Black', 'Tatl', 'Tael', 'Fi', 'Ciela', 'Epona', 'Ezlo', 'King of Red Lions', 'Linebeck', 'Loftwing', 'Midna', 'Phantom Zelda'}] +``` + +Select the color of Navi when she is targeting an enemy. (default: Yellow) + +``` +--navicolornpc [{'Random Choice', 'Completely Random', 'Gold', 'White', 'Green', 'Light Blue', 'Yellow', 'Red', 'Magenta', 'Black', 'Tatl', 'Tael', 'Fi', 'Ciela', 'Epona', 'Ezlo', 'King of Red Lions', 'Linebeck', 'Loftwing', 'Midna', 'Phantom Zelda'}] +``` + +Select the color of Navi when she is targeting an NPC. (default: Light Blue) + +``` +--navicolorprop [{'Random Choice', 'Completely Random', 'Gold', 'White', 'Green', 'Light Blue', 'Yellow', 'Red', 'Magenta', 'Black', 'Tatl', 'Tael', 'Fi', 'Ciela', 'Epona', 'Ezlo', 'King of Red Lions', 'Linebeck', 'Loftwing', 'Midna', 'Phantom Zelda'}] +``` + +Select the color of Navi when she is targeting a prop. (default: Green) + +``` +--navisfxoverworld [{Default,Notification,Rupee,Timer,Tamborine,Recovery Heart,Carrot Refill,Navi - Hey!,Navi - Random,Zelda - Gasp,Cluck,Mweep!,Random,None}] +``` + +Select the sound effect that plays when Navi wishes to speak with the player. (default: Default) + +``` +--navisfxenemytarget [{Default,Notification,Rupee,Timer,Tamborine,Recovery Heart,Carrot Refill,Navi - Hey!,Navi - Random,Zelda - Gasp,Cluck,Mweep!,Random,None}] +``` + +Select the sound effect that plays when Navi targets an enemy. (default: Default) + +``` +--healthSFX [{'Default', 'Softer Beep', 'Rupee', 'Timer', 'Tamborine', 'Recovery Heart', 'Carrot Refill', 'Navi - Hey!', 'Zelda - Gasp', 'Cluck', 'Mweep!', 'Random', 'None'}] +``` + +Select the sound effect that loops at low health. (default: Default) ``` --gui ``` Open the graphical user interface. Preloads selections with set command line parameters. + +``` +--loglevel [{error,info,warning,debug}] +``` + +Select level of logging for output. (default: info) + +``` +--settings_string SETTINGS_STRING +``` + +Enter a settings string that will encode and override most individual settings. diff --git a/Settings.py b/Settings.py index 2cadb0d1e..bde943cc0 100644 --- a/Settings.py +++ b/Settings.py @@ -177,6 +177,13 @@ def parse_custom_navi_color(s): # a list of the possible settings setting_infos = [ + Setting_Info('check_version', bool, 0, False, + { + 'help': '''\ + Checks if you are on the latest version + ''', + 'action': 'store_true' + }), Setting_Info('checked_version', str, 0, False, { 'default': '', 'help': 'Supress version warnings if checked_version is less than __version__.'}), @@ -641,6 +648,7 @@ def parse_custom_navi_color(s): 'nargs': '?', 'help': '''\ The song started with if 'free_scarecrow' is True + Valid notes: A, U, L, R, D ''', }, { @@ -1584,13 +1592,6 @@ def parse_custom_navi_color(s): typically more difficult. ''' }), - Setting_Info('check_version', bool, 0, False, - { - 'help': '''\ - Checks if you are on the latest version - ''', - 'action': 'store_true' - }), Setting_Info('correct_chest_sizes', bool, 1, True, { 'help': '''\ @@ -1634,7 +1635,7 @@ def parse_custom_navi_color(s): Setting_Info('hints', str, 2, True, { 'default': 'none', - 'const': 'always', + 'const': 'agony', 'nargs': '?', 'choices': ['none', 'mask', 'agony', 'always'], 'help': '''\ From 742e3b88c151439828bbe1365351a2d63baf55fc Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 3 Oct 2018 06:36:22 -0400 Subject: [PATCH 629/755] Networking errors are suppressed when doing version check (Issue #192) --- OoTRandomizer.py | 3 --- Utils.py | 15 +++++++++------ version.py | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/OoTRandomizer.py b/OoTRandomizer.py index 84b21748c..0339c7fd6 100644 --- a/OoTRandomizer.py +++ b/OoTRandomizer.py @@ -5,7 +5,6 @@ import random import textwrap import sys -from urllib.error import HTTPError, URLError from Gui import guiMain from Main import main @@ -48,8 +47,6 @@ def start(): version_error = check_version(settings.checked_version) except VersionError as e: logger.warning(str(e)) - except (URLError, HTTPError) as e: - logger.warning("Could not fetch latest version: " + str(e)) if gui: guiMain(settings) diff --git a/Utils.py b/Utils.py index 55efe0d15..97478b7da 100644 --- a/Utils.py +++ b/Utils.py @@ -72,12 +72,15 @@ class VersionError(Exception): pass def check_version(checked_version): - with urllib.request.urlopen('http://raw.githubusercontent.com/TestRunnerSRL/OoT-Randomizer/Dev/version.py') as versionurl: - version = versionurl.read() - version = re.search(".__version__ = '(.+)'", str(version)).group(1) - - if compare_version(version, __version__) > 0 and compare_version(checked_version, __version__) < 0: - raise VersionError("You do not seem to be on the latest version!\nYou are on version " + __version__ + ", and the latest is version " + version + ".") + try: + with urllib.request.urlopen('http://raw.githubusercontent.com/TestRunnerSRL/OoT-Randomizer/Dev/version.py') as versionurl: + version = versionurl.read() + version = re.search(".__version__ = '(.+)'", str(version)).group(1) + + if compare_version(version, __version__) > 0 and compare_version(checked_version, __version__) < 0: + raise VersionError("You do not seem to be on the latest version!\nYou are on version " + __version__ + ", and the latest is version " + version + ".") + except (URLError, HTTPError) as e: + logger.warning("Could not fetch latest version: " + str(e)) # Shim for the sole purpose of maintaining compatibility with older versions of # Python 3. Note: cum weights, as well as fractional weights are unimplemented, diff --git a/version.py b/version.py index f5a1588f3..1de051005 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.20.6 f.LUM' +__version__ = '2.20.7 f.LUM' From 8c1a2bb18a3e1de41669cb36e7e7346817ac8b5f Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 3 Oct 2018 16:37:33 -0400 Subject: [PATCH 630/755] Fix renaming of poh option names (Issue #193) --- Gui.py | 8 ++++---- version.py | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Gui.py b/Gui.py index 33af7b3f7..1a6a46bb1 100755 --- a/Gui.py +++ b/Gui.py @@ -180,16 +180,16 @@ def show_settings_special(event=None): widgets['logic_man_on_roof'].select() widgets['logic_child_deadhand'].select() widgets['logic_dc_jump'].select() - widgets['logic_windmill_hp'].select() - widgets['logic_crater_bean_hp_with_hovers'].select() + widgets['logic_windmill_poh'].select() + widgets['logic_crater_bean_poh_with_hovers'].select() widgets['logic_zora_with_cucco'].select() widgets['logic_fewer_tunic_requirements'].select() else: widgets['logic_man_on_roof'].deselect() widgets['logic_child_deadhand'].deselect() widgets['logic_dc_jump'].deselect() - widgets['logic_windmill_hp'].deselect() - widgets['logic_crater_bean_hp_with_hovers'].deselect() + widgets['logic_windmill_poh'].deselect() + widgets['logic_crater_bean_poh_with_hovers'].deselect() widgets['logic_zora_with_cucco'].deselect() widgets['logic_fewer_tunic_requirements'].deselect() settings = guivars_to_settings(guivars) diff --git a/version.py b/version.py index 1de051005..f913f015b 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.20.7 f.LUM' +__version__ = '2.20.8 f.LUM' From 8b863c2418738c7cf7dba89a39967120c13a7532 Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 3 Oct 2018 16:38:30 -0400 Subject: [PATCH 631/755] Preplaced items correctly add the world reference This should only affect the logging --- ItemList.py | 10 ++++------ Items.py | 7 +++++-- version.py | 2 +- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/ItemList.py b/ItemList.py index a1c99b4cb..394aa15a9 100644 --- a/ItemList.py +++ b/ItemList.py @@ -404,16 +404,14 @@ def get_junk_item(count=1): def generate_itempool(world): for location, item in eventlocations.items(): - world.push_item(location, ItemFactory(item)) + world.push_item(location, ItemFactory(item, world)) world.get_location(location).event = True # set up item pool (pool, placed_items) = get_pool_core(world) - world.itempool = ItemFactory(pool) + world.itempool = ItemFactory(pool, world) for (location, item) in placed_items.items(): - new_item = ItemFactory(item) - new_item.world = world - world.push_item(location, new_item) + world.push_item(location, ItemFactory(item, world)) world.get_location(location).event = True choose_trials(world) @@ -816,7 +814,7 @@ def choose_trials(world): world.skipped_trials[trial] = True def fill_bosses(world, bossCount=9): - boss_rewards = ItemFactory(rewardlist) + boss_rewards = ItemFactory(rewardlist, world) boss_locations = [ world.get_location('Queen Gohma'), world.get_location('King Dodongo'), diff --git a/Items.py b/Items.py index dfceabb8c..5b0bc48f5 100644 --- a/Items.py +++ b/Items.py @@ -3,7 +3,7 @@ from BaseClasses import Item -def ItemFactory(items): +def ItemFactory(items, world=None): ret = [] singleton = False if isinstance(items, str): @@ -12,7 +12,10 @@ def ItemFactory(items): for item in items: if item in item_table: advancement, priority, type, code, index, object, model = item_table[item] - ret.append(Item(item, advancement, priority, type, code, index, object, model)) + new_item = Item(item, advancement, priority, type, code, index, object, model) + if world: + new_item.world = world + ret.append(new_item) else: raise KeyError('Unknown Item: %s', item) diff --git a/version.py b/version.py index f913f015b..1ae0e022b 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.20.8 f.LUM' +__version__ = '2.20.9 f.LUM' From 2183c138060e2c1ab64fd09830d9d2d5f3103dff Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Wed, 3 Oct 2018 20:14:48 -0300 Subject: [PATCH 632/755] Logic fix for DC in OHKO So originally I was thinking you would survive the jump down by shield-dropping the bomb flower at the last moment, then rolling out, then picking it back up, and then just barely throwing it in time to blow up the wall. It was pretty hard but at least it saved me from having to account for OHKO in DC. Then come shopsanity, and now I've have to check for Buy Deku Shield, as well as bottle or Nayru's. And for the one that you could do as adult, Buy Hylian Shield (which would need to be made progressive) and Mirror Shield as well. So I decided using a shield was dumb and hard, and we'll just require bottle (or Nayru's if the minds on excluding that from OHKO ever change). The adult routes which carry the flower down, there's an alternative where you can backwalk with a bombflower out through the one-sided collision of the bombable wall and blow it up that way. I decided that, though that wasn't hard, it was too glitch-like to required in this case. This includes TR's change to ban tokens from shops, but does not include my logic_tricks additions, which would have to be merged separately. --- Rules.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Rules.py b/Rules.py index dfacb7d04..a3577a4e6 100644 --- a/Rules.py +++ b/Rules.py @@ -346,6 +346,7 @@ def global_rules(world): add_item_rule(location, lambda i: not (i.type == 'Shop' and i.world.id != location.world.id)) if location.type == 'Shop': forbid_item(location, 'Biggoron Sword') + forbid_item(location, 'Gold Skulltulla Token') if location.parent_region.name in ['Castle Town Bombchu Shop', 'Castle Town Potion Shop', 'Castle Town Bazaar']: if not world.check_beatable_only: @@ -461,11 +462,11 @@ def dung_rules_dcmq(world): set_rule(world.get_location('Dodongos Cavern MQ Compass Chest'), lambda state: state.is_adult() or state.can_child_attack() or state.has_nuts()) set_rule(world.get_location('Dodongos Cavern MQ Torch Puzzle Room Chest'), lambda state: state.can_blast_or_smash() or state.has_sticks() or state.can_use('Dins Fire') or (state.is_adult() and (world.logic_dc_jump or state.has('Hover Boots') or state.has('Progressive Hookshot')))) set_rule(world.get_location('Dodongos Cavern MQ Larva Room Chest'), lambda state: (state.has_sticks() and (state.has_explosives() or state.has('Progressive Strength Upgrade'))) or state.has_fire_source()) - set_rule(world.get_location('Dodongos Cavern MQ Bomb Bag Chest'), lambda state: state.is_adult() or (state.has_slingshot() and (state.has_sticks() or state.can_use('Dins Fire') or state.has_explosives()))) + set_rule(world.get_location('Dodongos Cavern MQ Bomb Bag Chest'), lambda state: state.is_adult() or (state.has_slingshot() and (state.has_explosives() or ((state.has_sticks() or state.can_use('Dins Fire')) and (world.difficulty != 'ohko' or state.has_bottle() or state.can_use('Nayrus Love')))))) set_rule(world.get_location('DC MQ Deku Scrub Deku Sticks'), lambda state: state.can_stun_deku()) set_rule(world.get_location('DC MQ Deku Scrub Deku Seeds'), lambda state: state.can_stun_deku()) set_rule(world.get_location('DC MQ Deku Scrub Deku Shield'), lambda state: state.can_stun_deku()) - set_rule(world.get_location('DC MQ Deku Scrub Red Potion'), lambda state: state.is_adult() or state.has_sticks() or state.can_use('Dins Fire') or state.has_explosives()) + set_rule(world.get_location('DC MQ Deku Scrub Red Potion'), lambda state: state.is_adult() or state.has_explosives() or ((state.has_sticks() or state.can_use('Dins Fire')) and (world.difficulty != 'ohko' or state.has_bottle() or state.can_use('Nayrus Love')))) # Boss set_rule(world.get_location('King Dodongo'), lambda state: (state.has_bombs() or state.has('Progressive Strength Upgrade')) and (state.is_adult() or state.has_sticks() or state.has('Kokiri Sword'))) @@ -475,7 +476,7 @@ def dung_rules_dcmq(world): set_rule(world.get_location('GS Dodongo\'s Cavern MQ Song of Time Block Room'), lambda state: state.can_play('Song of Time') and (state.can_child_attack() or state.is_adult())) set_rule(world.get_location('GS Dodongo\'s Cavern MQ Larva Room'), lambda state: (state.has_sticks() and (state.has_explosives or state.has('Progressive Strength Upgrade'))) or state.has_fire_source()) set_rule(world.get_location('GS Dodongo\'s Cavern MQ Lizalfos Room'), lambda state: state.can_blast_or_smash()) - set_rule(world.get_location('GS Dodongo\'s Cavern MQ Scrub Room'), lambda state: (state.has('Boomerang') and (state.has_slingshot() or (state.is_adult() and state.has_explosives())) and (state.has_explosives() or (state.has('Progressive Strength Upgrade') and (state.has_sticks() or state.can_use('Dins Fire') or (state.is_adult() and (world.logic_dc_jump or state.has('Hover Boots') or state.has('Hammer'))))))) or (state.can_use('Hookshot') and (state.has_explosives() or state.has('Progressive Strength Upgrade') or state.has_bow() or state.can_use('Dins Fire')))) + set_rule(world.get_location('GS Dodongo\'s Cavern MQ Scrub Room'), lambda state: (state.has('Boomerang') and (state.has_slingshot() or (state.is_adult() and state.has_explosives())) and (state.has_explosives() or (state.has('Progressive Strength Upgrade') and (state.can_use('Hammer') or ((state.has_sticks() or state.can_use('Dins Fire') or (state.is_adult() and (world.logic_dc_jump or state.has('Hover Boots')))) and (world.difficulty != 'ohko' or state.has_bottle() or state.can_use('Nayrus Love'))))))) or (state.can_use('Hookshot') and (state.has_explosives() or state.has('Progressive Strength Upgrade') or state.has_bow() or state.can_use('Dins Fire')))) # Jabu Jabu's Belly Vanilla def dung_rules_jb0(world): From 4e5c6492fdd96fe4b71da2268d7980b6e39fd663 Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 3 Oct 2018 21:37:35 -0400 Subject: [PATCH 633/755] Coop item (0x7F) uses special override address instead of override table --- ASM/build/asm_symbols.txt | 248 +-- ASM/src/config.asm | 2 + ASM/src/item_overrides.asm | 19 +- data/rom_patch.txt | 3563 ++++++++++++++++++------------------ data/symbols.json | 11 +- version.py | 2 +- 6 files changed, 1945 insertions(+), 1900 deletions(-) diff --git a/ASM/build/asm_symbols.txt b/ASM/build/asm_symbols.txt index 36e4c728f..711be45c1 100644 --- a/ASM/build/asm_symbols.txt +++ b/ASM/build/asm_symbols.txt @@ -40,16 +40,18 @@ 80401C00 .byt:0001 80401C00 PLAYER_ID 80401C01 .byt:0001 -80401C01 LIGHT_ARROW_ITEM +80401C01 COOP_GET_ITEM 80401C02 .byt:0001 -80401C02 FAIRY_OCARINA_ITEM +80401C02 LIGHT_ARROW_ITEM 80401C03 .byt:0001 -80401C03 FAIRY_ITEMS +80401C03 FAIRY_OCARINA_ITEM 80401C04 .byt:0001 +80401C04 FAIRY_ITEMS 80401C05 .byt:0001 80401C06 .byt:0001 80401C07 .byt:0001 80401C08 .byt:0001 +80401C09 .byt:0001 80401C0C .byt:03F4 80402000 .dbl:0008 80402000 PLAYER_OVERRIDE_DATA @@ -891,125 +893,127 @@ 80402DA0 @@not_grotto_deku_scrub 80402DB0 @@return 80402DB8 scan_override_table -80402DDC @@lookup_loop -80402E44 @@return -80402E4C resolve_extended_item -80402E60 @@loop -80402EB4 @@not_extended -80402EB8 @@return -80402ED0 override_great_fairy_cutscene -80402F28 @@item_fairy -80402F48 @@give_item -80402F74 @@return -80402F7C override_light_arrow_cutscene -80402F90 override_fairy_ocarina_cutscene -80402FA4 override_ocarina_songs -80402FB8 override_requiem_song -80402FC4 override_epona_song -80402FE4 override_suns_song -80403004 override_song_of_time -80403014 store_pending_special_item -80403024 @@find_duplicate_loop -80403040 @@find_empty_loop -80403058 @@return -80403060 override_saria_song_check -8040307C @@get_item -80403084 set_saria_song_flag -804030A4 set_dungeon_knowledge -804030D0 @@set_flag -804030E8 Shop_Check_Sold_Out -80403134 @@return -8040313C Shop_Set_Sold_Out -80403174 @@return -8040317C Shop_Keeper_Init_ID -80403198 @@return -804031A8 Deku_Check_Sold_Out -804031CC @@continue -804031FC Deku_Set_Sold_Out -80403220 @@continue -80403254 before_game_state_update -804032A4 @@loop -804032FC @@no_pending_item -80403310 after_game_state_update -80403334 item_menu_description_id_periodic -80403348 @@item_menu_description_id_return_00000000 -80403350 item_menu_description_id_immediate_1 -80403364 @@item_menu_description_id_return_00000001 -8040336C item_menu_description_id_immediate_2 -80403380 @@item_menu_description_id_return_00000002 -80403388 item_menu_description_id_immediate_3 -8040339C @@item_menu_description_id_return_00000003 -804033A4 before_time_travel -804033D4 after_time_travel -80403410 @@going_back -80403418 @@done -80403448 update_c_button -80403474 @@return -8040347C after_going_forward -804034B8 @@no_init -804034C8 after_going_back -804034F8 @@not_swordless -80403500 initialize_adult -80403528 @@no_mirror_shield -80403568 init_adult_button -80403594 @@empty -8040359C @@loop -804035F4 @@set_empty -80403600 @@return -80403608 .byt:0001 -80403608 ADULT_INIT_ITEMS -80403609 .byt:0001 -8040360A .byt:0001 -8040360B .byt:0001 -8040360C .byt:0001 -8040360D .byt:0001 -8040360E .byt:0001 -8040360F .byt:0001 -80403610 .byt:0001 -80403614 .byt:0001 -80403614 ADULT_VALID_ITEMS -80403615 .byt:0001 -80403616 .byt:0001 -80403617 .byt:0001 -80403618 .byt:0001 -80403619 .byt:0001 -8040361A .byt:0001 -8040361B .byt:0001 -8040361C .byt:0001 -8040361D .byt:0001 -8040361E .byt:0001 -8040361F .byt:0001 -80403620 .byt:0001 -80403621 .byt:0001 -80403622 .byt:0001 -80403623 .byt:0001 -80403624 .byt:0001 -80403625 .byt:0001 -80403626 .byt:0001 -80403627 .byt:0001 -80403628 .byt:0001 -80403629 .byt:0001 -8040362A .byt:0001 -8040362B .byt:0001 -8040362C suns_song_fix_event -80403660 @@child -80403670 @@return -80403678 suns_song_fix -8040368C @@check_suns_status -804036A8 @@disable_suns -804036B0 @@return -804036B8 warp_song_fix -804036E4 @@child -804036F4 @@return -804036FC Check_Has_Epona_Song -80403748 @@return -80403750 save_scarecrow_song -80403794 @@copy_song -8040379C write_initial_save -804037A8 @@save_data_loop -804037D8 @@overwrite_type -804037E0 @@return -804037E8 .byt:0868 +80402DFC @@not_coop_item +80402E04 @@lookup_loop +80402E38 @@lookup_item_found +80402E6C @@return +80402E74 resolve_extended_item +80402E88 @@loop +80402EDC @@not_extended +80402EE0 @@return +80402EF8 override_great_fairy_cutscene +80402F50 @@item_fairy +80402F70 @@give_item +80402F9C @@return +80402FA4 override_light_arrow_cutscene +80402FB8 override_fairy_ocarina_cutscene +80402FCC override_ocarina_songs +80402FE0 override_requiem_song +80402FEC override_epona_song +8040300C override_suns_song +8040302C override_song_of_time +8040303C store_pending_special_item +8040304C @@find_duplicate_loop +80403068 @@find_empty_loop +80403080 @@return +80403088 override_saria_song_check +804030A4 @@get_item +804030AC set_saria_song_flag +804030CC set_dungeon_knowledge +804030F8 @@set_flag +80403110 Shop_Check_Sold_Out +8040315C @@return +80403164 Shop_Set_Sold_Out +8040319C @@return +804031A4 Shop_Keeper_Init_ID +804031C0 @@return +804031D0 Deku_Check_Sold_Out +804031F4 @@continue +80403224 Deku_Set_Sold_Out +80403248 @@continue +8040327C before_game_state_update +804032CC @@loop +80403324 @@no_pending_item +80403338 after_game_state_update +8040335C item_menu_description_id_periodic +80403370 @@item_menu_description_id_return_00000000 +80403378 item_menu_description_id_immediate_1 +8040338C @@item_menu_description_id_return_00000001 +80403394 item_menu_description_id_immediate_2 +804033A8 @@item_menu_description_id_return_00000002 +804033B0 item_menu_description_id_immediate_3 +804033C4 @@item_menu_description_id_return_00000003 +804033CC before_time_travel +804033FC after_time_travel +80403438 @@going_back +80403440 @@done +80403470 update_c_button +8040349C @@return +804034A4 after_going_forward +804034E0 @@no_init +804034F0 after_going_back +80403520 @@not_swordless +80403528 initialize_adult +80403550 @@no_mirror_shield +80403590 init_adult_button +804035BC @@empty +804035C4 @@loop +8040361C @@set_empty +80403628 @@return +80403630 .byt:0001 +80403630 ADULT_INIT_ITEMS +80403631 .byt:0001 +80403632 .byt:0001 +80403633 .byt:0001 +80403634 .byt:0001 +80403635 .byt:0001 +80403636 .byt:0001 +80403637 .byt:0001 +80403638 .byt:0001 +8040363C .byt:0001 +8040363C ADULT_VALID_ITEMS +8040363D .byt:0001 +8040363E .byt:0001 +8040363F .byt:0001 +80403640 .byt:0001 +80403641 .byt:0001 +80403642 .byt:0001 +80403643 .byt:0001 +80403644 .byt:0001 +80403645 .byt:0001 +80403646 .byt:0001 +80403647 .byt:0001 +80403648 .byt:0001 +80403649 .byt:0001 +8040364A .byt:0001 +8040364B .byt:0001 +8040364C .byt:0001 +8040364D .byt:0001 +8040364E .byt:0001 +8040364F .byt:0001 +80403650 .byt:0001 +80403651 .byt:0001 +80403652 .byt:0001 +80403653 .byt:0001 +80403654 suns_song_fix_event +80403688 @@child +80403698 @@return +804036A0 suns_song_fix +804036B4 @@check_suns_status +804036D0 @@disable_suns +804036D8 @@return +804036E0 warp_song_fix +8040370C @@child +8040371C @@return +80403724 Check_Has_Epona_Song +80403770 @@return +80403778 save_scarecrow_song +804037BC @@copy_song +804037C4 write_initial_save +804037D0 @@save_data_loop +80403800 @@overwrite_type +80403808 @@return +80403810 .byt:0840 80405000 text_init,0000002C 8040502C text_print,000000A8 804050D4 text_flush,00000148 diff --git a/ASM/src/config.asm b/ASM/src/config.asm index ff9c00223..35d2bde41 100755 --- a/ASM/src/config.asm +++ b/ASM/src/config.asm @@ -35,6 +35,8 @@ INITIAL_SAVE_DATA: PLAYER_ID: .byte 0x00 +COOP_GET_ITEM: +.byte 0x00 ; 0x03481C00: Special items diff --git a/ASM/src/item_overrides.asm b/ASM/src/item_overrides.asm index 25dd00cef..3d999fdd7 100755 --- a/ASM/src/item_overrides.asm +++ b/ASM/src/item_overrides.asm @@ -465,10 +465,24 @@ scan_override_table: li v0, -1 li t0, PLAYER_ID - lb t1, 0x00(t0) + lbu t1, 0x00(t0) li t0, SAVE_CONTEXT sh t1, 0x1406(t0) ; set points to current player: default + ; Check if the item source ID is 0x7F which is used for Co-op items + andi t1, a0, 0x00FF ; t1 = item source ID + li at, 0x7F + bne t1, at, @@not_coop_item + nop + + ; Give co-op item override instead of from the look up table + li t0, PLAYER_ID + lbu t3, 0x00 (t0) ; t3 = player id + lbu v0, 0x01 (t0) ; v0 = override item ID + b @@lookup_item_found + nop + +@@not_coop_item: ; Look up override li t0, (ITEM_OVERRIDES - 0x04) @@lookup_loop: @@ -489,13 +503,14 @@ scan_override_table: andi v0, t1, 0xFF ; v0 = found item ID +@@lookup_item_found: li t0, SAVE_CONTEXT sh t3, 0x1406(t0) ; set the point value to the player number li t1, PLAYER_OVERRIDE_DATA li t4, PLAYER_ID - lb t4, 0x00(t4) + lbu t4, 0x00(t4) beq t3, t4, @@return ; correct player for the item sh zero, 0x02(t1) ; store no player override diff --git a/data/rom_patch.txt b/data/rom_patch.txt index db16f1cd8..dd27dd8f4 100644 --- a/data/rom_patch.txt +++ b/data/rom_patch.txt @@ -407,18 +407,18 @@ a98c33,db a9e838,8 a9e839,10 a9e83a,d -a9e83b,bf +a9e83b,c9 ac9abc,c ac9abd,10 ac9abe,b -ac9abf,ee +ac9abf,f8 ac9ac1,0 ac9ac2,0 ac9ac3,0 acce88,c acce89,10 acce8a,b -acce8b,df +acce8b,e9 acce8c,0 acce8d,0 acce8e,0 @@ -433,22 +433,22 @@ acce9b,0 ae59e0,8 ae59e1,10 ae59e2,c -ae59e3,f5 +ae59e3,ff ae5df0,c ae5df1,10 ae5df2,d -ae5df3,9e +ae5df3,a8 ae5df8,c ae5df9,10 ae5dfa,b -ae5dfb,e9 +ae5dfb,f3 ae5e04,0 ae5e05,0 ae5e07,0 ae6e48,c ae6e49,10 ae6e4a,b -ae6e4b,e4 +ae6e4b,ee ae6e4c,1 ae6e4d,f ae6e4e,c0 @@ -463,20 +463,20 @@ b0640f,2 b06c2c,c b06c2d,10 b06c2e,d -b06c2f,e7 +b06c2f,f1 b06c31,28 b06c33,20 b16b50,c b16b51,10 b16b52,c -b16b53,95 +b16b53,9f b16b54,0 b16b56,0 b16b57,0 b16b60,c b16b61,10 b16b62,c -b16b63,c4 +b16b63,ce b16b64,0 b16b65,0 b16b66,0 @@ -515,14 +515,14 @@ b17bd3,0 b54b38,c b54b39,10 b54b3a,d -b54b3b,ae +b54b3b,b8 b54e5c,c b54e5d,10 b54e5e,d -b54e5f,8b +b54e5f,95 b55a65,10 b55a66,d -b55a67,d4 +b55a67,de baed6c,0 baed6d,0 baed6f,0 @@ -532,14 +532,14 @@ bb77b7,0 bb7890,c bb7891,10 bb7892,c -bb7893,d4 +bb7893,de bb7894,0 bb7895,0 bb7897,0 bb7950,c bb7951,10 bb7952,c -bb7953,db +bb7953,e5 bb7954,0 bb7955,0 bb7957,0 @@ -552,14 +552,14 @@ bb7bff,0 bb7c3c,c bb7c3d,10 bb7c3e,c -bb7c3f,e2 +bb7c3f,ec bb7c40,0 bb7c41,0 bb7c43,0 bb7c58,c bb7c59,10 bb7c5a,c -bb7c5b,cd +bb7c5b,d7 bb7c5c,0 bb7c5d,0 bb7c5f,0 @@ -616,20 +616,20 @@ be9bdf,83 c004ec,8 c004ed,10 c004ee,c -c004ef,3a +c004ef,44 c0067f,64 c018a0,c c018a1,10 c018a2,c -c018a3,4f +c018a3,59 c6c7a8,c c6c7a9,10 c6c7aa,c -c6c7ab,5f +c6c7ab,69 c6c920,c c6c921,10 c6c922,c -c6c923,5f +c6c923,69 c892dc,34 c892dd,e c892de,0 @@ -640,7 +640,7 @@ c8931e,0 c8931f,1 c89745,10 c89746,b -c89747,b4 +c89747,be c89868,92 c89869,e c8986a,1d @@ -656,7 +656,7 @@ c898cb,2a cb6860,c cb6861,10 cb6862,c -cb6863,e9 +cb6863,f3 d12f78,34 d12f79,f d12f7b,0 @@ -877,7 +877,7 @@ d7e8e3,f d7ebbc,c d7ebbd,10 d7ebbe,b -d7ebbf,f1 +d7ebbf,fb d7ec1c,0 d7ec1d,0 d7ec1f,0 @@ -887,12 +887,12 @@ db13d3,76 db532c,c db532d,10 db532e,c -db532f,1 +db532f,b df264f,76 df7cb0,c df7cb1,10 df7cb2,c -df7cb3,7f +df7cb3,89 e09f68,80 e09f6a,e e09f6b,de @@ -902,19 +902,19 @@ e09f76,0 e09f77,4 e09fb0,c e09fb1,10 -e09fb2,b -e09fb3,f9 +e09fb2,c +e09fb3,3 e29388,8 e29389,10 e2938a,c -e2938b,18 +e2938b,22 e2a044,c e2a045,10 e2a046,c -e2a047,21 +e2a047,2b e2b0b5,10 e2b0b6,c -e2b0b7,29 +e2b0b7,33 e2f093,34 e9e1d8,34 e9e1d9,9 @@ -930,7 +930,7 @@ e9e20d,a9 ebb85c,c ebb85d,10 ebb85e,c -ebb85f,6a +ebb85f,74 ebb865,40 ebb867,12 ebb86c,10 @@ -1068,14 +1068,14 @@ ec9ce7,7a 3480048,3 3480049,e0 348004b,8 -3481c01,5a -3481c02,3b -3481c03,5d -3481c04,5c -3481c05,5e -3481c06,51 -3481c07,52 -3481c08,53 +3481c02,5a +3481c03,3b +3481c04,5d +3481c05,5c +3481c06,5e +3481c07,51 +3481c08,52 +3481c09,53 3482050,ff 3482051,ff 3482052,ff @@ -2941,7 +2941,7 @@ ec9ce7,7a 348293c,c 348293d,10 348293e,b -348293f,93 +348293f,9d 3482944,10 3482945,60 3482947,16 @@ -3435,7 +3435,7 @@ ec9ce7,7a 3482bf8,c 3482bf9,10 3482bfa,b -3482bfb,93 +3482bfb,9d 3482c00,10 3482c01,60 3482c03,c @@ -3726,7 +3726,7 @@ ec9ce7,7a 3482dc0,25 3482dc1,8 3482dc2,1c -3482dc4,81 +3482dc4,91 3482dc5,9 3482dc8,3c 3482dc9,8 @@ -3740,306 +3740,300 @@ ec9ce7,7a 3482dd1,9 3482dd2,14 3482dd3,6 -3482dd4,3c -3482dd5,8 -3482dd6,80 -3482dd7,40 -3482dd8,25 -3482dd9,8 -3482dda,f -3482ddb,fc -3482ddc,25 -3482ddd,8 -3482ddf,4 -3482de0,8d -3482de1,9 -3482de4,11 -3482de5,20 -3482de7,17 -3482ded,9 -3482dee,52 -3482def,2 -3482df0,31 -3482df1,4b -3482df2,f8 -3482df5,b -3482df6,5a -3482df7,c2 -3482df8,3c -3482df9,c -3482dfa,ff -3482dfb,ff -3482dfc,35 -3482dfd,8c -3482dfe,7 -3482dff,ff -3482e00,1 -3482e01,4c -3482e02,50 -3482e03,24 -3482e04,15 -3482e05,44 -3482e06,ff -3482e07,f5 -3482e0c,31 -3482e0d,22 -3482e0f,ff -3482e10,3c -3482e11,8 -3482e12,80 -3482e13,12 -3482e14,25 -3482e15,8 -3482e16,a5 -3482e17,d0 -3482e18,a5 -3482e19,b -3482e1a,14 -3482e1b,6 -3482e1c,3c -3482e1d,9 -3482e1e,80 -3482e1f,40 -3482e20,25 -3482e21,29 -3482e22,20 -3482e24,3c -3482e25,c -3482e26,80 -3482e27,40 -3482e28,25 -3482e29,8c -3482e2a,1c -3482e2c,81 -3482e2d,8c -3482e30,11 -3482e31,6c -3482e33,4 -3482e34,a5 -3482e35,20 -3482e37,2 -3482e38,a1 -3482e39,2b -3482e3b,2 -3482e3c,a1 -3482e3d,22 -3482e3f,3 -3482e40,ad -3482e41,24 -3482e43,4 -3482e44,3 -3482e45,e0 -3482e47,8 -3482e4c,27 -3482e4d,bd -3482e4e,ff -3482e4f,e0 -3482e50,af -3482e51,b0 -3482e53,10 -3482e54,af -3482e55,b1 -3482e57,14 -3482e58,af -3482e59,bf -3482e5b,18 -3482e5c,34 -3482e5d,82 -3482e60,34 -3482e61,50 -3482e64,26 -3482e65,8 -3482e66,ff -3482e67,80 -3482e68,5 -3482e6b,12 -3482e70,3c -3482e71,11 -3482e72,80 -3482e73,40 -3482e74,26 -3482e75,31 -3482e76,20 -3482e77,50 -3482e78,34 -3482e79,9 +3482dd4,30 +3482dd5,89 +3482dd7,ff +3482dd8,34 +3482dd9,1 +3482ddb,7f +3482ddc,15 +3482ddd,21 +3482ddf,7 +3482de4,3c +3482de5,8 +3482de6,80 +3482de7,40 +3482de8,25 +3482de9,8 +3482dea,1c +3482dec,91 +3482ded,b +3482df0,91 +3482df1,2 +3482df3,1 +3482df4,10 +3482df7,10 +3482dfc,3c +3482dfd,8 +3482dfe,80 +3482dff,40 +3482e00,25 +3482e01,8 +3482e02,f +3482e03,fc +3482e04,25 +3482e05,8 +3482e07,4 +3482e08,8d +3482e09,9 +3482e0c,11 +3482e0d,20 +3482e0f,17 +3482e15,9 +3482e16,52 +3482e17,2 +3482e18,31 +3482e19,4b +3482e1a,f8 +3482e1d,b +3482e1e,5a +3482e1f,c2 +3482e20,3c +3482e21,c +3482e22,ff +3482e23,ff +3482e24,35 +3482e25,8c +3482e26,7 +3482e27,ff +3482e28,1 +3482e29,4c +3482e2a,50 +3482e2b,24 +3482e2c,15 +3482e2d,44 +3482e2e,ff +3482e2f,f5 +3482e34,31 +3482e35,22 +3482e37,ff +3482e38,3c +3482e39,8 +3482e3a,80 +3482e3b,12 +3482e3c,25 +3482e3d,8 +3482e3e,a5 +3482e3f,d0 +3482e40,a5 +3482e41,b +3482e42,14 +3482e43,6 +3482e44,3c +3482e45,9 +3482e46,80 +3482e47,40 +3482e48,25 +3482e49,29 +3482e4a,20 +3482e4c,3c +3482e4d,c +3482e4e,80 +3482e4f,40 +3482e50,25 +3482e51,8c +3482e52,1c +3482e54,91 +3482e55,8c +3482e58,11 +3482e59,6c +3482e5b,4 +3482e5c,a5 +3482e5d,20 +3482e5f,2 +3482e60,a1 +3482e61,2b +3482e63,2 +3482e64,a1 +3482e65,22 +3482e67,3 +3482e68,ad +3482e69,24 +3482e6b,4 +3482e6c,3 +3482e6d,e0 +3482e6f,8 +3482e74,27 +3482e75,bd +3482e76,ff +3482e77,e0 +3482e78,af +3482e79,b0 3482e7b,10 -3482e7c,1 -3482e7d,9 -3482e7f,18 -3482e82,40 -3482e83,12 -3482e84,2 -3482e85,28 -3482e86,88 -3482e87,21 -3482e88,3c -3482e89,4 -3482e8a,80 -3482e8b,12 -3482e8c,24 -3482e8d,84 -3482e8e,a5 -3482e8f,d0 -3482e90,36 -3482e91,5 -3482e94,8e -3482e95,28 -3482e97,c -3482e98,1 -3482e9a,f8 -3482e9b,9 -3482ea0,14 -3482ea1,50 -3482ea2,ff -3482ea3,ef -3482ea8,36 -3482ea9,23 -3482eac,10 -3482eaf,2 -3482eb4,34 -3482eb5,3 -3482eb8,8f -3482eb9,b0 -3482ebb,10 -3482ebc,8f -3482ebd,b1 -3482ebf,14 -3482ec0,8f -3482ec1,bf -3482ec3,18 -3482ec4,27 -3482ec5,bd -3482ec7,20 -3482ec8,3 -3482ec9,e0 -3482ecb,8 -3482ed0,8c -3482ed1,88 -3482ed2,1d -3482ed3,2c -3482ed4,34 -3482ed5,9 -3482ed7,1 -3482ed9,9 -3482eda,4e -3482edc,1 -3482edd,9 -3482ede,10 -3482edf,24 -3482ee0,10 -3482ee1,40 -3482ee3,24 -3482ee8,94 -3482ee9,ca -3482eea,2 -3482eeb,dc -3482eec,3c -3482eed,b -3482eee,80 -3482eef,12 -3482ef0,25 -3482ef1,6b -3482ef2,a5 -3482ef3,d0 -3482ef4,94 -3482ef5,8c -3482ef7,a4 -3482ef8,34 -3482ef9,1 -3482efb,3d -3482efc,11 -3482efd,81 -3482eff,a -3482f05,8a -3482f06,60 -3482f07,21 -3482f08,91 -3482f09,8d -3482f0a,1d -3482f0b,28 -3482f0c,15 -3482f0d,a0 -3482f0f,19 -3482f14,34 -3482f15,d -3482f17,1 -3482f18,a1 -3482f19,8d -3482f1a,1d -3482f1b,28 -3482f1c,25 -3482f1d,4a -3482f1f,3 -3482f20,10 -3482f23,9 -3482f28,34 -3482f29,c -3482f2b,1 -3482f2c,1 -3482f2d,4c +3482e7c,af +3482e7d,b1 +3482e7f,14 +3482e80,af +3482e81,bf +3482e83,18 +3482e84,34 +3482e85,82 +3482e88,34 +3482e89,50 +3482e8c,26 +3482e8d,8 +3482e8e,ff +3482e8f,80 +3482e90,5 +3482e93,12 +3482e98,3c +3482e99,11 +3482e9a,80 +3482e9b,40 +3482e9c,26 +3482e9d,31 +3482e9e,20 +3482e9f,50 +3482ea0,34 +3482ea1,9 +3482ea3,10 +3482ea4,1 +3482ea5,9 +3482ea7,18 +3482eaa,40 +3482eab,12 +3482eac,2 +3482ead,28 +3482eae,88 +3482eaf,21 +3482eb0,3c +3482eb1,4 +3482eb2,80 +3482eb3,12 +3482eb4,24 +3482eb5,84 +3482eb6,a5 +3482eb7,d0 +3482eb8,36 +3482eb9,5 +3482ebc,8e +3482ebd,28 +3482ebf,c +3482ec0,1 +3482ec2,f8 +3482ec3,9 +3482ec8,14 +3482ec9,50 +3482eca,ff +3482ecb,ef +3482ed0,36 +3482ed1,23 +3482ed4,10 +3482ed7,2 +3482edc,34 +3482edd,3 +3482ee0,8f +3482ee1,b0 +3482ee3,10 +3482ee4,8f +3482ee5,b1 +3482ee7,14 +3482ee8,8f +3482ee9,bf +3482eeb,18 +3482eec,27 +3482eed,bd +3482eef,20 +3482ef0,3 +3482ef1,e0 +3482ef3,8 +3482ef8,8c +3482ef9,88 +3482efa,1d +3482efb,2c +3482efc,34 +3482efd,9 +3482eff,1 +3482f01,9 +3482f02,4e +3482f04,1 +3482f05,9 +3482f06,10 +3482f07,24 +3482f08,10 +3482f09,40 +3482f0b,24 +3482f10,94 +3482f11,ca +3482f12,2 +3482f13,dc +3482f14,3c +3482f15,b +3482f16,80 +3482f17,12 +3482f18,25 +3482f19,6b +3482f1a,a5 +3482f1b,d0 +3482f1c,94 +3482f1d,8c +3482f1f,a4 +3482f20,34 +3482f21,1 +3482f23,3d +3482f24,11 +3482f25,81 +3482f27,a +3482f2d,8a 3482f2e,60 -3482f2f,4 +3482f2f,21 3482f30,91 -3482f31,6d -3482f32,e -3482f33,f2 -3482f34,1 -3482f35,ac -3482f36,70 -3482f37,24 -3482f38,15 -3482f39,c0 -3482f3b,e -3482f40,1 -3482f41,ac -3482f42,70 -3482f43,25 -3482f44,a1 -3482f45,6e -3482f46,e -3482f47,f2 -3482f48,1 -3482f49,29 -3482f4a,48 -3482f4b,27 -3482f4c,1 -3482f4d,9 -3482f4e,40 -3482f4f,24 -3482f50,ac -3482f51,88 -3482f52,1d -3482f53,2c -3482f54,3c -3482f55,8 -3482f56,80 -3482f57,40 -3482f58,25 -3482f59,8 -3482f5a,1c -3482f5b,3 +3482f31,8d +3482f32,1d +3482f33,28 +3482f34,15 +3482f35,a0 +3482f37,19 +3482f3c,34 +3482f3d,d +3482f3f,1 +3482f40,a1 +3482f41,8d +3482f42,1d +3482f43,28 +3482f44,25 +3482f45,4a +3482f47,3 +3482f48,10 +3482f4b,9 +3482f50,34 +3482f51,c +3482f53,1 +3482f54,1 +3482f55,4c +3482f56,60 +3482f57,4 +3482f58,91 +3482f59,6d +3482f5a,e +3482f5b,f2 3482f5c,1 -3482f5d,a -3482f5e,40 -3482f5f,21 -3482f60,81 -3482f61,8 -3482f64,3c -3482f65,9 -3482f66,80 -3482f67,40 -3482f68,25 -3482f69,29 -3482f6a,20 -3482f6b,18 +3482f5d,ac +3482f5e,70 +3482f5f,24 +3482f60,15 +3482f61,c0 +3482f63,e +3482f68,1 +3482f69,ac +3482f6a,70 +3482f6b,25 3482f6c,a1 -3482f6d,28 -3482f70,34 -3482f71,2 -3482f74,3 -3482f75,e0 -3482f77,8 +3482f6d,6e +3482f6e,e +3482f6f,f2 +3482f70,1 +3482f71,29 +3482f72,48 +3482f73,27 +3482f74,1 +3482f75,9 +3482f76,40 +3482f77,24 +3482f78,ac +3482f79,88 +3482f7a,1d +3482f7b,2c 3482f7c,3c 3482f7d,8 3482f7e,80 @@ -4047,614 +4041,613 @@ ec9ce7,7a 3482f80,25 3482f81,8 3482f82,1c -3482f83,1 -3482f84,81 -3482f85,8 -3482f88,10 -3482f8b,22 -3482f90,3c -3482f91,8 -3482f92,80 -3482f93,40 -3482f94,25 -3482f95,8 -3482f96,1c -3482f97,2 -3482f98,81 -3482f99,8 -3482f9c,10 -3482f9f,1d -3482fa4,34 -3482fa5,2 -3482fa7,ff -3482fa8,20 -3482fa9,e8 -3482faa,ff -3482fab,a6 -3482fac,21 +3482f83,4 +3482f84,1 +3482f85,a +3482f86,40 +3482f87,21 +3482f88,81 +3482f89,8 +3482f8c,3c +3482f8d,9 +3482f8e,80 +3482f8f,40 +3482f90,25 +3482f91,29 +3482f92,20 +3482f93,18 +3482f94,a1 +3482f95,28 +3482f98,34 +3482f99,2 +3482f9c,3 +3482f9d,e0 +3482f9f,8 +3482fa4,3c +3482fa5,8 +3482fa6,80 +3482fa7,40 +3482fa8,25 +3482fa9,8 +3482faa,1c +3482fab,2 +3482fac,81 3482fad,8 -3482faf,61 3482fb0,10 -3482fb3,18 -3482fb8,34 +3482fb3,22 +3482fb8,3c 3482fb9,8 -3482fbb,64 -3482fbc,10 -3482fbf,15 -3482fc4,3c -3482fc5,1 -3482fc6,80 -3482fc7,12 -3482fc8,24 -3482fc9,21 -3482fca,a5 -3482fcb,d0 -3482fcc,80 -3482fcd,28 -3482fce,e -3482fcf,de -3482fd0,35 -3482fd1,8 -3482fd3,1 -3482fd4,a0 -3482fd5,28 -3482fd6,e -3482fd7,de -3482fd8,34 -3482fd9,8 -3482fdb,68 -3482fdc,10 -3482fdf,d -3482fe4,3c -3482fe5,1 -3482fe6,80 -3482fe7,12 -3482fe8,24 -3482fe9,21 -3482fea,a5 -3482feb,d0 -3482fec,80 -3482fed,28 -3482fee,e -3482fef,de -3482ff0,35 -3482ff1,8 -3482ff3,4 -3482ff4,a0 +3482fba,80 +3482fbb,40 +3482fbc,25 +3482fbd,8 +3482fbe,1c +3482fbf,3 +3482fc0,81 +3482fc1,8 +3482fc4,10 +3482fc7,1d +3482fcc,34 +3482fcd,2 +3482fcf,ff +3482fd0,20 +3482fd1,e8 +3482fd2,ff +3482fd3,a6 +3482fd4,21 +3482fd5,8 +3482fd7,61 +3482fd8,10 +3482fdb,18 +3482fe0,34 +3482fe1,8 +3482fe3,64 +3482fe4,10 +3482fe7,15 +3482fec,3c +3482fed,1 +3482fee,80 +3482fef,12 +3482ff0,24 +3482ff1,21 +3482ff2,a5 +3482ff3,d0 +3482ff4,80 3482ff5,28 3482ff6,e 3482ff7,de -3482ff8,34 +3482ff8,35 3482ff9,8 -3482ffb,6a -3482ffc,10 -3482fff,5 -3483004,34 -3483005,5 -3483007,3 -3483008,34 -3483009,8 -348300b,6b -348300c,10 -348300f,1 -3483014,3c -3483015,9 -3483016,80 -3483017,40 -3483018,25 -3483019,29 -348301a,20 -348301b,18 -348301c,3c -348301d,a -348301e,80 -348301f,40 -3483020,25 -3483021,4a -3483022,20 -3483023,1b -3483024,81 -3483025,2c -3483028,11 -3483029,88 -348302b,b -348302c,21 -348302d,29 -348302f,1 -3483030,15 -3483031,2a -3483032,ff -3483033,fc -3483038,3c -3483039,9 -348303a,80 -348303b,40 -348303c,25 -348303d,29 -348303e,20 -348303f,17 -3483040,21 +3482ffb,1 +3482ffc,a0 +3482ffd,28 +3482ffe,e +3482fff,de +3483000,34 +3483001,8 +3483003,68 +3483004,10 +3483007,d +348300c,3c +348300d,1 +348300e,80 +348300f,12 +3483010,24 +3483011,21 +3483012,a5 +3483013,d0 +3483014,80 +3483015,28 +3483016,e +3483017,de +3483018,35 +3483019,8 +348301b,4 +348301c,a0 +348301d,28 +348301e,e +348301f,de +3483020,34 +3483021,8 +3483023,6a +3483024,10 +3483027,5 +348302c,34 +348302d,5 +348302f,3 +3483030,34 +3483031,8 +3483033,6b +3483034,10 +3483037,1 +348303c,3c +348303d,9 +348303e,80 +348303f,40 +3483040,25 3483041,29 -3483043,1 -3483044,11 -3483045,2a -3483047,4 -3483048,81 -3483049,2c -348304c,15 -348304d,80 -348304e,ff -348304f,fc -3483054,a1 -3483055,28 -3483058,3 -3483059,e0 -348305b,8 -3483061,60 -3483062,78 -3483063,21 -3483064,81 -3483065,ec -3483066,e -3483067,df -3483068,31 -3483069,8e -348306b,80 +3483042,20 +3483043,18 +3483044,3c +3483045,a +3483046,80 +3483047,40 +3483048,25 +3483049,4a +348304a,20 +348304b,1b +348304c,81 +348304d,2c +3483050,11 +3483051,88 +3483053,b +3483054,21 +3483055,29 +3483057,1 +3483058,15 +3483059,2a +348305a,ff +348305b,fc +3483060,3c +3483061,9 +3483062,80 +3483063,40 +3483064,25 +3483065,29 +3483066,20 +3483067,17 +3483068,21 +3483069,29 +348306b,1 348306c,11 -348306d,c0 -348306f,3 -3483070,34 -3483071,3 -3483073,5 -3483074,3 -3483075,e0 -3483077,8 -3483078,34 -3483079,2 -348307b,2 -348307c,3 -348307d,e0 -348307f,8 -3483081,60 -3483082,10 -3483083,21 -3483084,85 -3483085,c2 -3483087,a4 -3483088,3c -3483089,8 -348308a,80 -348308b,12 -348308c,25 -348308d,8 -348308e,a5 -348308f,d0 -3483090,81 -3483091,9 -3483092,e -3483093,df -3483094,35 -3483095,29 -3483097,80 -3483098,a1 -3483099,9 -348309a,e -348309b,df +348306d,2a +348306f,4 +3483070,81 +3483071,2c +3483074,15 +3483075,80 +3483076,ff +3483077,fc +348307c,a1 +348307d,28 +3483080,3 +3483081,e0 +3483083,8 +3483089,60 +348308a,78 +348308b,21 +348308c,81 +348308d,ec +348308e,e +348308f,df +3483090,31 +3483091,8e +3483093,80 +3483094,11 +3483095,c0 +3483097,3 +3483098,34 +3483099,3 +348309b,5 348309c,3 348309d,e0 348309f,8 -34830a4,27 -34830a5,bd -34830a6,ff -34830a7,f0 -34830a8,af -34830a9,bf -34830ab,4 -34830ac,c -34830ad,3 -34830ae,58 -34830af,86 -34830b4,3c -34830b5,c -34830b6,80 -34830b7,12 -34830b8,25 -34830b9,8c -34830ba,a5 -34830bb,d0 -34830bc,85 -34830bd,8d -34830be,f -34830bf,2e -34830c0,8d -34830c1,98 -34830c3,4 -34830c4,13 -34830c7,2 -34830c8,34 -34830c9,e -34830cb,1 -34830cc,34 -34830cd,e -34830cf,2 -34830d0,1 -34830d1,ae -34830d2,68 -34830d3,25 -34830d4,a5 -34830d5,8d -34830d6,f -34830d7,2e -34830d8,8f -34830d9,bf -34830db,4 -34830dc,27 -34830dd,bd -34830df,10 -34830e0,3 -34830e1,e0 -34830e3,8 -34830e8,84 -34830e9,8e -34830eb,1c -34830ec,21 -34830ed,cd -34830ee,ff -34830ef,ce -34830f0,5 -34830f1,a0 -34830f3,10 +34830a0,34 +34830a1,2 +34830a3,2 +34830a4,3 +34830a5,e0 +34830a7,8 +34830a9,60 +34830aa,10 +34830ab,21 +34830ac,85 +34830ad,c2 +34830af,a4 +34830b0,3c +34830b1,8 +34830b2,80 +34830b3,12 +34830b4,25 +34830b5,8 +34830b6,a5 +34830b7,d0 +34830b8,81 +34830b9,9 +34830ba,e +34830bb,df +34830bc,35 +34830bd,29 +34830bf,80 +34830c0,a1 +34830c1,9 +34830c2,e +34830c3,df +34830c4,3 +34830c5,e0 +34830c7,8 +34830cc,27 +34830cd,bd +34830ce,ff +34830cf,f0 +34830d0,af +34830d1,bf +34830d3,4 +34830d4,c +34830d5,3 +34830d6,58 +34830d7,86 +34830dc,3c +34830dd,c +34830de,80 +34830df,12 +34830e0,25 +34830e1,8c +34830e2,a5 +34830e3,d0 +34830e4,85 +34830e5,8d +34830e6,f +34830e7,2e +34830e8,8d +34830e9,98 +34830eb,4 +34830ec,13 +34830ef,2 +34830f0,34 +34830f1,e +34830f3,1 34830f4,34 -34830f5,2 -34830f8,31 -34830f9,a9 -34830fb,7 -34830fc,34 -34830fd,a -34830ff,1 -3483100,1 -3483101,2a -3483102,50 +34830f5,e +34830f7,2 +34830f8,1 +34830f9,ae +34830fa,68 +34830fb,25 +34830fc,a5 +34830fd,8d +34830fe,f +34830ff,2e +3483100,8f +3483101,bf 3483103,4 -3483105,d -3483106,48 -3483107,c2 -3483108,3c -3483109,c -348310a,80 -348310b,12 -348310c,25 -348310d,8c -348310e,a5 -348310f,d0 -3483110,1 -3483111,89 -3483112,60 -3483113,20 -3483114,81 -3483115,8b -3483116,5 -3483117,b4 -3483118,1 -3483119,6a -348311a,58 -348311b,24 +3483104,27 +3483105,bd +3483107,10 +3483108,3 +3483109,e0 +348310b,8 +3483110,84 +3483111,8e +3483113,1c +3483114,21 +3483115,cd +3483116,ff +3483117,ce +3483118,5 +3483119,a0 +348311b,10 348311c,34 348311d,2 -3483120,11 -3483121,60 -3483123,4 -3483128,34 -3483129,d -348312b,26 -348312c,a4 -348312d,8d -348312f,1c -3483130,34 -3483131,2 -3483133,1 -3483134,3 -3483135,e0 -3483137,8 -348313c,84 -348313d,ae -348313f,1c -3483140,21 -3483141,cd -3483142,ff -3483143,ce -3483144,5 -3483145,a0 -3483147,b -3483148,34 -3483149,2 -348314c,31 -348314d,a9 -348314f,7 +3483120,31 +3483121,a9 +3483123,7 +3483124,34 +3483125,a +3483127,1 +3483128,1 +3483129,2a +348312a,50 +348312b,4 +348312d,d +348312e,48 +348312f,c2 +3483130,3c +3483131,c +3483132,80 +3483133,12 +3483134,25 +3483135,8c +3483136,a5 +3483137,d0 +3483138,1 +3483139,89 +348313a,60 +348313b,20 +348313c,81 +348313d,8b +348313e,5 +348313f,b4 +3483140,1 +3483141,6a +3483142,58 +3483143,24 +3483144,34 +3483145,2 +3483148,11 +3483149,60 +348314b,4 3483150,34 -3483151,a -3483153,1 -3483154,1 -3483155,2a -3483156,50 -3483157,4 -3483159,d -348315a,48 -348315b,c2 -348315c,3c -348315d,c -348315e,80 -348315f,12 -3483160,25 -3483161,8c -3483162,a5 -3483163,d0 -3483164,1 -3483165,89 -3483166,60 -3483167,20 -3483168,81 -3483169,8b -348316a,5 -348316b,b4 -348316c,1 -348316d,6a -348316e,58 -348316f,25 -3483170,a1 -3483171,8b -3483172,5 -3483173,b4 -3483174,3 -3483175,e0 -3483177,8 -348317c,27 -348317d,bd -348317e,ff -348317f,f0 -3483180,af -3483181,bf -3483183,8 -3483184,28 -3483185,81 -3483187,32 -3483188,10 -3483189,20 -348318b,3 -348318d,80 -348318e,10 -348318f,21 -3483190,3 -3483191,20 -3483192,f8 -3483193,9 -3483198,8f -3483199,bf -348319b,8 -348319c,27 -348319d,bd -348319f,10 -34831a0,3 -34831a1,e0 -34831a3,8 -34831a8,3c -34831a9,8 -34831aa,80 -34831ab,1d -34831ac,25 -34831ad,8 -34831ae,84 -34831af,a0 -34831b0,3c -34831b1,9 -34831b2,80 -34831b3,12 -34831b4,25 -34831b5,29 -34831b6,a5 -34831b7,d0 -34831b8,85 -34831b9,a -34831bb,a4 -34831bc,34 -34831bd,1 -34831bf,3e -34831c0,15 -34831c1,41 -34831c3,2 -34831c4,81 -34831c5,2b -34831c6,13 -34831c7,97 -34831c8,21 -34831c9,6a -34831cb,2d -34831cc,86 -34831cd,b -34831cf,1c -34831d0,21 -34831d1,6b -34831d3,1 -34831d4,34 -34831d5,c -34831d7,1 -34831d8,1 -34831d9,6c -34831da,60 -34831db,4 -34831dc,34 -34831dd,1 -34831df,1c -34831e0,1 -34831e1,41 -34831e3,18 -34831e6,68 -34831e7,12 -34831e8,1 -34831e9,2d -34831ea,70 -34831eb,20 -34831ec,8d -34831ed,cf -34831ef,e4 -34831f0,1 -34831f1,8f -34831f2,10 -34831f3,24 -34831f4,3 -34831f5,e0 -34831f7,8 -34831fc,3c -34831fd,8 -34831fe,80 -34831ff,1d -3483200,25 -3483201,8 -3483202,84 -3483203,a0 -3483204,3c -3483205,9 -3483206,80 -3483207,12 -3483208,25 -3483209,29 -348320a,a5 -348320b,d0 -348320c,85 -348320d,a -348320f,a4 -3483210,34 -3483211,1 -3483213,3e -3483214,15 -3483215,41 -3483217,2 -3483218,81 -3483219,2b -348321a,13 -348321b,97 -348321c,21 -348321d,6a -348321f,2d -3483220,84 -3483221,8b -3483223,1c -3483224,21 -3483225,6b -3483227,1 -3483228,34 -3483229,c -348322b,1 -348322c,1 -348322d,6c -348322e,60 -348322f,4 -3483230,34 -3483231,1 -3483233,1c -3483234,1 -3483235,41 -3483237,18 -348323a,68 -348323b,12 -348323c,1 -348323d,2d -348323e,70 -348323f,20 -3483240,8d -3483241,cf -3483243,e4 -3483244,1 -3483245,8f -3483246,78 -3483247,25 -3483248,ad -3483249,cf -348324b,e4 -348324c,3 -348324d,e0 -348324f,8 -3483254,27 -3483255,bd -3483256,ff -3483257,e8 -3483258,af -3483259,bf -348325b,10 -348325c,3c -348325d,a -348325e,80 -348325f,1e -3483260,25 -3483261,4a -3483262,aa -3483263,30 -3483264,81 -3483265,48 -3483266,6 -3483267,6c -3483268,31 -3483269,8 -348326b,20 -348326c,15 -348326f,23 -3483274,3c -3483275,a -3483276,80 -3483277,1d -3483278,25 -3483279,4a -348327a,84 -348327b,a0 -348327c,8d -348327d,48 -348327e,7 -348327f,94 -3483280,15 -3483283,1e +3483151,d +3483153,26 +3483154,a4 +3483155,8d +3483157,1c +3483158,34 +3483159,2 +348315b,1 +348315c,3 +348315d,e0 +348315f,8 +3483164,84 +3483165,ae +3483167,1c +3483168,21 +3483169,cd +348316a,ff +348316b,ce +348316c,5 +348316d,a0 +348316f,b +3483170,34 +3483171,2 +3483174,31 +3483175,a9 +3483177,7 +3483178,34 +3483179,a +348317b,1 +348317c,1 +348317d,2a +348317e,50 +348317f,4 +3483181,d +3483182,48 +3483183,c2 +3483184,3c +3483185,c +3483186,80 +3483187,12 +3483188,25 +3483189,8c +348318a,a5 +348318b,d0 +348318c,1 +348318d,89 +348318e,60 +348318f,20 +3483190,81 +3483191,8b +3483192,5 +3483193,b4 +3483194,1 +3483195,6a +3483196,58 +3483197,25 +3483198,a1 +3483199,8b +348319a,5 +348319b,b4 +348319c,3 +348319d,e0 +348319f,8 +34831a4,27 +34831a5,bd +34831a6,ff +34831a7,f0 +34831a8,af +34831a9,bf +34831ab,8 +34831ac,28 +34831ad,81 +34831af,32 +34831b0,10 +34831b1,20 +34831b3,3 +34831b5,80 +34831b6,10 +34831b7,21 +34831b8,3 +34831b9,20 +34831ba,f8 +34831bb,9 +34831c0,8f +34831c1,bf +34831c3,8 +34831c4,27 +34831c5,bd +34831c7,10 +34831c8,3 +34831c9,e0 +34831cb,8 +34831d0,3c +34831d1,8 +34831d2,80 +34831d3,1d +34831d4,25 +34831d5,8 +34831d6,84 +34831d7,a0 +34831d8,3c +34831d9,9 +34831da,80 +34831db,12 +34831dc,25 +34831dd,29 +34831de,a5 +34831df,d0 +34831e0,85 +34831e1,a +34831e3,a4 +34831e4,34 +34831e5,1 +34831e7,3e +34831e8,15 +34831e9,41 +34831eb,2 +34831ec,81 +34831ed,2b +34831ee,13 +34831ef,97 +34831f0,21 +34831f1,6a +34831f3,2d +34831f4,86 +34831f5,b +34831f7,1c +34831f8,21 +34831f9,6b +34831fb,1 +34831fc,34 +34831fd,c +34831ff,1 +3483200,1 +3483201,6c +3483202,60 +3483203,4 +3483204,34 +3483205,1 +3483207,1c +3483208,1 +3483209,41 +348320b,18 +348320e,68 +348320f,12 +3483210,1 +3483211,2d +3483212,70 +3483213,20 +3483214,8d +3483215,cf +3483217,e4 +3483218,1 +3483219,8f +348321a,10 +348321b,24 +348321c,3 +348321d,e0 +348321f,8 +3483224,3c +3483225,8 +3483226,80 +3483227,1d +3483228,25 +3483229,8 +348322a,84 +348322b,a0 +348322c,3c +348322d,9 +348322e,80 +348322f,12 +3483230,25 +3483231,29 +3483232,a5 +3483233,d0 +3483234,85 +3483235,a +3483237,a4 +3483238,34 +3483239,1 +348323b,3e +348323c,15 +348323d,41 +348323f,2 +3483240,81 +3483241,2b +3483242,13 +3483243,97 +3483244,21 +3483245,6a +3483247,2d +3483248,84 +3483249,8b +348324b,1c +348324c,21 +348324d,6b +348324f,1 +3483250,34 +3483251,c +3483253,1 +3483254,1 +3483255,6c +3483256,60 +3483257,4 +3483258,34 +3483259,1 +348325b,1c +348325c,1 +348325d,41 +348325f,18 +3483262,68 +3483263,12 +3483264,1 +3483265,2d +3483266,70 +3483267,20 +3483268,8d +3483269,cf +348326b,e4 +348326c,1 +348326d,8f +348326e,78 +348326f,25 +3483270,ad +3483271,cf +3483273,e4 +3483274,3 +3483275,e0 +3483277,8 +348327c,27 +348327d,bd +348327e,ff +348327f,e8 +3483280,af +3483281,bf +3483283,10 3483284,3c -3483285,9 +3483285,a 3483286,80 -3483287,40 +3483287,1e 3483288,25 -3483289,29 -348328a,20 -348328b,1b -348328c,34 -348328d,a -348328f,ff -3483290,a1 -3483291,2a -3483294,3c -3483295,9 -3483296,80 -3483297,40 -3483298,25 -3483299,29 -348329a,20 -348329b,18 -348329c,24 +3483289,4a +348328a,aa +348328b,30 +348328c,81 +348328d,48 +348328e,6 +348328f,6c +3483290,31 +3483291,8 +3483293,20 +3483294,15 +3483297,23 +348329c,3c 348329d,a -348329e,ff -348329f,ff -34832a0,34 -34832a1,c -34832a3,3 -34832a4,21 -34832a5,4a -34832a7,1 -34832a8,11 -34832a9,4c -34832ab,14 -34832ac,1 -34832ad,2a -34832ae,58 -34832af,20 -34832b0,81 -34832b1,68 -34832b4,11 -34832b6,ff -34832b7,fb +348329e,80 +348329f,1d +34832a0,25 +34832a1,4a +34832a2,84 +34832a3,a0 +34832a4,8d +34832a5,48 +34832a6,7 +34832a7,94 +34832a8,15 +34832ab,1e +34832ac,3c +34832ad,9 +34832ae,80 +34832af,40 +34832b0,25 +34832b1,29 +34832b2,20 +34832b3,1b +34832b4,34 +34832b5,a +34832b7,ff +34832b8,a1 +34832b9,2a 34832bc,3c 34832bd,9 34832be,80 @@ -4662,504 +4655,508 @@ ec9ce7,7a 34832c0,25 34832c1,29 34832c2,20 -34832c3,1b -34832c4,a1 -34832c5,2a -34832c8,3c -34832c9,9 -34832ca,80 -34832cb,1e -34832cc,25 -34832cd,29 -34832ce,89 -34832cf,84 -34832d0,34 -34832d1,a -34832d3,1 -34832d4,a5 +34832c3,18 +34832c4,24 +34832c5,a +34832c6,ff +34832c7,ff +34832c8,34 +34832c9,c +34832cb,3 +34832cc,21 +34832cd,4a +34832cf,1 +34832d0,11 +34832d1,4c +34832d3,14 +34832d4,1 34832d5,2a -34832d8,3c -34832d9,9 -34832da,80 -34832db,48 -34832dc,34 -34832dd,a -34832df,1 -34832e0,ad -34832e1,2a -34832e2,1 -34832e3,30 +34832d6,58 +34832d7,20 +34832d8,81 +34832d9,68 +34832dc,11 +34832de,ff +34832df,fb 34832e4,3c -34832e5,a +34832e5,9 34832e6,80 -34832e7,1e +34832e7,40 34832e8,25 -34832e9,4a -34832ea,aa -34832eb,30 +34832e9,29 +34832ea,20 +34832eb,1b 34832ec,a1 -34832ed,48 -34832ee,4 -34832ef,24 -34832f0,ad -34832f1,49 -34832f2,4 -34832f3,28 -34832f4,c -34832f5,10 -34832f6,a -34832f7,e8 -34832fc,8e -34832fd,19 -34832ff,4 -3483300,2 -3483302,20 -3483303,25 -3483304,8f -3483305,bf -3483307,10 -3483308,3 -3483309,e0 -348330b,8 -348330c,27 -348330d,bd -348330f,18 -3483310,27 -3483311,bd -3483312,ff -3483313,e8 -3483314,af -3483315,bf -3483317,10 -3483318,c -3483319,10 -348331a,17 -348331b,5 -3483320,3c -3483321,e -3483322,80 -3483323,12 -3483324,91 -3483325,ce -3483326,12 -3483327,12 -3483328,8f -3483329,bf -348332b,10 -348332c,3 -348332d,e0 -348332f,8 -3483330,27 -3483331,bd -3483333,18 -3483334,93 -3483335,19 -3483337,74 -3483338,34 -3483339,1 -348333b,ff -348333c,17 -348333d,21 -348333f,2 -3483344,34 -3483345,19 -3483347,2c -3483348,3 -3483349,e0 -348334b,8 -348334c,a7 -348334d,b9 -348334f,9a -3483350,93 -3483351,2c -3483353,74 -3483354,34 -3483355,1 -3483357,ff -3483358,15 -3483359,81 -348335b,2 +34832ed,2a +34832f0,3c +34832f1,9 +34832f2,80 +34832f3,1e +34832f4,25 +34832f5,29 +34832f6,89 +34832f7,84 +34832f8,34 +34832f9,a +34832fb,1 +34832fc,a5 +34832fd,2a +3483300,3c +3483301,9 +3483302,80 +3483303,48 +3483304,34 +3483305,a +3483307,1 +3483308,ad +3483309,2a +348330a,1 +348330b,30 +348330c,3c +348330d,a +348330e,80 +348330f,1e +3483310,25 +3483311,4a +3483312,aa +3483313,30 +3483314,a1 +3483315,48 +3483316,4 +3483317,24 +3483318,ad +3483319,49 +348331a,4 +348331b,28 +348331c,c +348331d,10 +348331e,a +348331f,e8 +3483324,8e +3483325,19 +3483327,4 +3483328,2 +348332a,20 +348332b,25 +348332c,8f +348332d,bf +348332f,10 +3483330,3 +3483331,e0 +3483333,8 +3483334,27 +3483335,bd +3483337,18 +3483338,27 +3483339,bd +348333a,ff +348333b,e8 +348333c,af +348333d,bf +348333f,10 +3483340,c +3483341,10 +3483342,17 +3483343,5 +3483348,3c +3483349,e +348334a,80 +348334b,12 +348334c,91 +348334d,ce +348334e,12 +348334f,12 +3483350,8f +3483351,bf +3483353,10 +3483354,3 +3483355,e0 +3483357,8 +3483358,27 +3483359,bd +348335b,18 +348335c,93 +348335d,19 +348335f,74 3483360,34 -3483361,c -3483363,2c -3483364,3 -3483365,e0 -3483367,8 -348336c,91 -348336d,ae -348336f,74 -3483370,34 -3483371,1 -3483373,ff -3483374,15 -3483375,c1 -3483377,2 +3483361,1 +3483363,ff +3483364,17 +3483365,21 +3483367,2 +348336c,34 +348336d,19 +348336f,2c +3483370,3 +3483371,e0 +3483373,8 +3483374,a7 +3483375,b9 +3483377,9a +3483378,93 +3483379,2c +348337b,74 348337c,34 -348337d,e -348337f,2c -3483380,3 -3483381,e0 -3483383,8 -3483384,a7 -3483385,ae -3483387,9a -3483388,91 -3483389,cf -348338b,74 -348338c,34 -348338d,1 -348338f,ff -3483390,15 -3483391,e1 -3483393,2 +348337d,1 +348337f,ff +3483380,15 +3483381,81 +3483383,2 +3483388,34 +3483389,c +348338b,2c +348338c,3 +348338d,e0 +348338f,8 +3483394,91 +3483395,ae +3483397,74 3483398,34 -3483399,f -348339b,2c -348339c,3 -348339d,e0 -348339f,8 -34833a0,a7 -34833a1,af -34833a3,9a -34833a4,3c -34833a5,8 -34833a6,80 -34833a7,40 -34833a8,25 -34833a9,8 -34833aa,20 -34833ab,1c -34833ac,8e -34833ad,9 -34833af,68 -34833b0,ad -34833b1,9 -34833b4,8e -34833b5,9 -34833b7,6c -34833b8,ad -34833b9,9 -34833bb,4 -34833bc,96 -34833bd,9 -34833bf,70 -34833c0,a5 -34833c1,9 -34833c3,8 -34833c4,96 -34833c5,9 -34833c7,9c -34833c8,a5 -34833c9,9 -34833cb,a -34833cc,3 -34833cd,e0 -34833cf,8 -34833d0,8e -34833d1,e -34833d3,4 -34833d4,27 -34833d5,bd -34833d6,ff -34833d7,e0 -34833d8,af -34833d9,b0 -34833db,10 -34833dc,af -34833dd,b1 -34833df,14 -34833e0,af -34833e1,bf -34833e3,18 -34833e4,3c -34833e5,10 -34833e6,80 -34833e7,12 -34833e8,26 -34833e9,10 -34833ea,a5 -34833eb,d0 -34833ec,3c -34833ed,11 -34833ee,80 -34833ef,40 -34833f0,26 -34833f1,31 -34833f2,20 -34833f3,1c -34833f4,8e -34833f5,8 -34833f7,4 -34833f8,11 -34833fb,5 -3483400,c -3483401,10 -3483402,d -3483403,1f -3483408,10 -348340b,3 -3483410,c +3483399,1 +348339b,ff +348339c,15 +348339d,c1 +348339f,2 +34833a4,34 +34833a5,e +34833a7,2c +34833a8,3 +34833a9,e0 +34833ab,8 +34833ac,a7 +34833ad,ae +34833af,9a +34833b0,91 +34833b1,cf +34833b3,74 +34833b4,34 +34833b5,1 +34833b7,ff +34833b8,15 +34833b9,e1 +34833bb,2 +34833c0,34 +34833c1,f +34833c3,2c +34833c4,3 +34833c5,e0 +34833c7,8 +34833c8,a7 +34833c9,af +34833cb,9a +34833cc,3c +34833cd,8 +34833ce,80 +34833cf,40 +34833d0,25 +34833d1,8 +34833d2,20 +34833d3,1c +34833d4,8e +34833d5,9 +34833d7,68 +34833d8,ad +34833d9,9 +34833dc,8e +34833dd,9 +34833df,6c +34833e0,ad +34833e1,9 +34833e3,4 +34833e4,96 +34833e5,9 +34833e7,70 +34833e8,a5 +34833e9,9 +34833eb,8 +34833ec,96 +34833ed,9 +34833ef,9c +34833f0,a5 +34833f1,9 +34833f3,a +34833f4,3 +34833f5,e0 +34833f7,8 +34833f8,8e +34833f9,e +34833fb,4 +34833fc,27 +34833fd,bd +34833fe,ff +34833ff,e0 +3483400,af +3483401,b0 +3483403,10 +3483404,af +3483405,b1 +3483407,14 +3483408,af +3483409,bf +348340b,18 +348340c,3c +348340d,10 +348340e,80 +348340f,12 +3483410,26 3483411,10 -3483412,d -3483413,32 -3483418,c -3483419,10 -348341a,d -348341b,12 -348341c,34 -348341d,4 -3483420,c -3483421,10 -3483422,d -3483423,12 -3483424,34 -3483425,4 -3483427,1 +3483412,a5 +3483413,d0 +3483414,3c +3483415,11 +3483416,80 +3483417,40 +3483418,26 +3483419,31 +348341a,20 +348341b,1c +348341c,8e +348341d,8 +348341f,4 +3483420,11 +3483423,5 3483428,c 3483429,10 348342a,d -348342b,12 -348342c,34 -348342d,4 -348342f,2 -3483430,8f -3483431,b0 -3483433,10 -3483434,8f -3483435,b1 -3483437,14 -3483438,8f -3483439,bf -348343b,18 -348343c,27 -348343d,bd -348343f,20 -3483440,3 -3483441,e0 -3483443,8 -3483448,2 -3483449,4 -348344a,40 -348344b,21 -348344c,91 -348344d,9 -348344f,6c -3483450,34 -3483451,1 -3483453,ff -3483454,11 -3483455,21 -3483457,7 -348345c,2 -348345d,9 -348345e,48 -348345f,21 -3483460,91 -3483461,29 -3483463,74 -3483464,34 -3483465,1 -3483467,2c -3483468,11 -3483469,21 -348346b,2 -3483470,a1 -3483471,9 -3483473,69 -3483474,3 -3483475,e0 -3483477,8 -348347c,27 -348347d,bd -348347e,ff -348347f,e8 -3483480,af -3483481,bf -3483483,10 -3483484,8e -3483485,28 -3483488,ae -3483489,8 -348348b,40 -348348c,8e -348348d,28 -348348f,4 -3483490,ae -3483491,8 -3483493,44 -3483494,96 -3483495,28 -3483497,8 -3483498,a6 -3483499,8 -348349b,48 -348349c,a2 -348349e,f -348349f,33 -34834a0,92 -34834a1,8 -34834a3,4a -34834a4,34 -34834a5,1 -34834a7,ff -34834a8,15 -34834a9,1 -34834ab,3 -34834b0,c -34834b1,10 -34834b2,d +348342b,29 +3483430,10 +3483433,3 +3483438,c +3483439,10 +348343a,d +348343b,3c +3483440,c +3483441,10 +3483442,d +3483443,1c +3483444,34 +3483445,4 +3483448,c +3483449,10 +348344a,d +348344b,1c +348344c,34 +348344d,4 +348344f,1 +3483450,c +3483451,10 +3483452,d +3483453,1c +3483454,34 +3483455,4 +3483457,2 +3483458,8f +3483459,b0 +348345b,10 +348345c,8f +348345d,b1 +348345f,14 +3483460,8f +3483461,bf +3483463,18 +3483464,27 +3483465,bd +3483467,20 +3483468,3 +3483469,e0 +348346b,8 +3483470,2 +3483471,4 +3483472,40 +3483473,21 +3483474,91 +3483475,9 +3483477,6c +3483478,34 +3483479,1 +348347b,ff +348347c,11 +348347d,21 +348347f,7 +3483484,2 +3483485,9 +3483486,48 +3483487,21 +3483488,91 +3483489,29 +348348b,74 +348348c,34 +348348d,1 +348348f,2c +3483490,11 +3483491,21 +3483493,2 +3483498,a1 +3483499,9 +348349b,69 +348349c,3 +348349d,e0 +348349f,8 +34834a4,27 +34834a5,bd +34834a6,ff +34834a7,e8 +34834a8,af +34834a9,bf +34834ab,10 +34834ac,8e +34834ad,28 +34834b0,ae +34834b1,8 34834b3,40 -34834b8,8f -34834b9,bf -34834bb,10 -34834bc,27 -34834bd,bd -34834bf,18 -34834c0,3 -34834c1,e0 -34834c3,8 -34834c8,8e +34834b4,8e +34834b5,28 +34834b7,4 +34834b8,ae +34834b9,8 +34834bb,44 +34834bc,96 +34834bd,28 +34834bf,8 +34834c0,a6 +34834c1,8 +34834c3,48 +34834c4,a2 +34834c6,f +34834c7,33 +34834c8,92 34834c9,8 -34834cb,40 -34834cc,ae -34834cd,8 -34834cf,68 -34834d0,8e -34834d1,8 -34834d3,44 -34834d4,ae -34834d5,8 -34834d7,6c -34834d8,96 -34834d9,8 -34834db,48 -34834dc,a6 -34834dd,8 -34834df,70 -34834e0,92 -34834e1,8 -34834e3,68 -34834e4,34 -34834e5,1 -34834e7,ff -34834e8,15 -34834e9,1 -34834eb,3 -34834f0,34 +34834cb,4a +34834cc,34 +34834cd,1 +34834cf,ff +34834d0,15 +34834d1,1 +34834d3,3 +34834d8,c +34834d9,10 +34834da,d +34834db,4a +34834e0,8f +34834e1,bf +34834e3,10 +34834e4,27 +34834e5,bd +34834e7,18 +34834e8,3 +34834e9,e0 +34834eb,8 +34834f0,8e 34834f1,8 -34834f3,1 -34834f4,a2 +34834f3,40 +34834f4,ae 34834f5,8 -34834f6,f -34834f7,33 -34834f8,3 -34834f9,e0 -34834fb,8 -3483500,27 -3483501,bd -3483502,ff -3483503,e8 -3483504,af -3483505,bf -3483507,10 -3483508,96 +34834f7,68 +34834f8,8e +34834f9,8 +34834fb,44 +34834fc,ae +34834fd,8 +34834ff,6c +3483500,96 +3483501,8 +3483503,48 +3483504,a6 +3483505,8 +3483507,70 +3483508,92 3483509,8 -348350b,9c -348350c,31 -348350d,8 -348350f,40 -3483510,11 -3483513,5 -3483518,96 +348350b,68 +348350c,34 +348350d,1 +348350f,ff +3483510,15 +3483511,1 +3483513,3 +3483518,34 3483519,8 -348351b,70 -348351c,31 +348351b,1 +348351c,a2 348351d,8 -348351e,ff -348351f,f -3483520,35 -3483521,8 -3483523,30 -3483524,a6 -3483525,8 -3483527,70 -3483528,92 -3483529,28 -348352b,1 -348352c,a2 -348352d,8 -348352f,69 +348351e,f +348351f,33 +3483520,3 +3483521,e0 +3483523,8 +3483528,27 +3483529,bd +348352a,ff +348352b,e8 +348352c,af +348352d,bf +348352f,10 3483530,96 -3483531,28 -3483533,2 -3483534,a6 +3483531,8 +3483533,9c +3483534,31 3483535,8 -3483537,6a -3483538,8e -3483539,28 -348353b,4 -348353c,ae -348353d,8 -348353f,6c -3483540,c -3483541,10 -3483542,d -3483543,5a -3483544,34 -3483545,4 -3483548,c -3483549,10 -348354a,d -348354b,5a -348354c,34 -348354d,4 -348354f,1 -3483550,c -3483551,10 -3483552,d -3483553,5a -3483554,34 -3483555,4 -3483557,2 -3483558,8f -3483559,bf -348355b,10 -348355c,27 -348355d,bd -348355f,18 -3483560,3 -3483561,e0 -3483563,8 -3483568,2 -3483569,4 -348356a,40 -348356b,21 -348356c,3c -348356d,9 -348356e,80 -348356f,40 -3483570,25 -3483571,29 -3483572,36 -3483573,14 -3483574,91 -3483575,a -3483577,6c -3483578,34 -3483579,1 -348357b,ff -348357c,11 -348357d,41 -348357f,5 -3483584,1 -3483585,2a -3483586,48 -3483587,21 -3483588,91 -3483589,29 -348358c,15 -348358d,20 -348358f,1c +3483537,40 +3483538,11 +348353b,5 +3483540,96 +3483541,8 +3483543,70 +3483544,31 +3483545,8 +3483546,ff +3483547,f +3483548,35 +3483549,8 +348354b,30 +348354c,a6 +348354d,8 +348354f,70 +3483550,92 +3483551,28 +3483553,1 +3483554,a2 +3483555,8 +3483557,69 +3483558,96 +3483559,28 +348355b,2 +348355c,a6 +348355d,8 +348355f,6a +3483560,8e +3483561,28 +3483563,4 +3483564,ae +3483565,8 +3483567,6c +3483568,c +3483569,10 +348356a,d +348356b,64 +348356c,34 +348356d,4 +3483570,c +3483571,10 +3483572,d +3483573,64 +3483574,34 +3483575,4 +3483577,1 +3483578,c +3483579,10 +348357a,d +348357b,64 +348357c,34 +348357d,4 +348357f,2 +3483580,8f +3483581,bf +3483583,10 +3483584,27 +3483585,bd +3483587,18 +3483588,3 +3483589,e0 +348358b,8 +3483590,2 +3483591,4 +3483592,40 +3483593,21 3483594,3c 3483595,9 3483596,80 @@ -5167,391 +5164,417 @@ ec9ce7,7a 3483598,25 3483599,29 348359a,36 -348359b,7 -348359c,25 -348359d,29 -348359f,1 -34835a0,91 -34835a1,2a +348359b,3c +348359c,91 +348359d,a +348359f,6c +34835a0,34 +34835a1,1 +34835a3,ff 34835a4,11 -34835a5,40 -34835a7,13 -34835ac,2 -34835ad,a -34835ae,58 +34835a5,41 +34835a7,5 +34835ac,1 +34835ad,2a +34835ae,48 34835af,21 34835b0,91 -34835b1,6b -34835b3,74 -34835b4,34 -34835b5,1 -34835b7,ff -34835b8,11 -34835b9,61 -34835ba,ff -34835bb,f8 -34835c0,92 -34835c1,c -34835c3,6c -34835c4,11 -34835c5,8a -34835c6,ff -34835c7,f5 -34835cc,92 -34835cd,c -34835cf,6d -34835d0,11 -34835d1,8a -34835d2,ff -34835d3,f2 -34835d8,92 -34835d9,c -34835db,6e -34835dc,11 -34835dd,8a -34835de,ff -34835df,ef -34835e4,a1 -34835e5,b -34835e7,69 -34835e8,a1 -34835e9,a +34835b1,29 +34835b4,15 +34835b5,20 +34835b7,1c +34835bc,3c +34835bd,9 +34835be,80 +34835bf,40 +34835c0,25 +34835c1,29 +34835c2,36 +34835c3,2f +34835c4,25 +34835c5,29 +34835c7,1 +34835c8,91 +34835c9,2a +34835cc,11 +34835cd,40 +34835cf,13 +34835d4,2 +34835d5,a +34835d6,58 +34835d7,21 +34835d8,91 +34835d9,6b +34835db,74 +34835dc,34 +34835dd,1 +34835df,ff +34835e0,11 +34835e1,61 +34835e2,ff +34835e3,f8 +34835e8,92 +34835e9,c 34835eb,6c -34835ec,10 -34835ef,4 -34835f4,34 -34835f5,9 -34835f7,ff -34835f8,a1 -34835f9,9 -34835fb,69 -34835fc,a1 -34835fd,9 -34835ff,6c -3483600,3 -3483601,e0 -3483603,8 -3483608,7 -3483609,9 -348360a,f -348360b,2 -348360c,3 -348360d,1 -348360e,d -348360f,b -3483615,1 -3483616,1 -3483617,1 -3483618,1 -3483619,1 -348361b,1 -348361c,1 -348361d,1 -348361e,1 -348361f,1 -3483621,1 -3483623,1 -3483624,1 -3483625,1 -3483626,1 -3483627,1 -3483628,1 -3483629,1 -348362a,1 -348362d,33 -348362e,8 -348362f,21 -3483630,20 -3483631,f -3483633,47 -3483634,15 -3483635,ea -3483637,e -3483638,3c -3483639,2 -348363a,80 -348363b,12 -348363c,8c -348363d,42 -348363e,a5 -348363f,d4 -3483640,8e -3483641,6f -3483643,a4 -3483645,f -3483646,7a -3483647,3 -3483648,14 -3483649,40 -348364b,5 -348364c,34 -348364d,2 -348364e,48 -348364f,30 -3483650,15 -3483651,e2 -3483653,7 -3483658,24 -3483659,19 -348365b,3 -348365c,10 -348365f,4 -3483660,34 +34835ec,11 +34835ed,8a +34835ee,ff +34835ef,f5 +34835f4,92 +34835f5,c +34835f7,6d +34835f8,11 +34835f9,8a +34835fa,ff +34835fb,f2 +3483600,92 +3483601,c +3483603,6e +3483604,11 +3483605,8a +3483606,ff +3483607,ef +348360c,a1 +348360d,b +348360f,69 +3483610,a1 +3483611,a +3483613,6c +3483614,10 +3483617,4 +348361c,34 +348361d,9 +348361f,ff +3483620,a1 +3483621,9 +3483623,69 +3483624,a1 +3483625,9 +3483627,6c +3483628,3 +3483629,e0 +348362b,8 +3483630,7 +3483631,9 +3483632,f +3483633,2 +3483634,3 +3483635,1 +3483636,d +3483637,b +348363d,1 +348363e,1 +348363f,1 +3483640,1 +3483641,1 +3483643,1 +3483644,1 +3483645,1 +3483646,1 +3483647,1 +3483649,1 +348364b,1 +348364c,1 +348364d,1 +348364e,1 +348364f,1 +3483650,1 +3483651,1 +3483652,1 +3483655,33 +3483656,8 +3483657,21 +3483658,20 +3483659,f +348365b,47 +348365c,15 +348365d,ea +348365f,e +3483660,3c 3483661,2 -3483662,63 -3483663,11 -3483664,15 -3483665,e2 -3483667,2 -348366c,24 -348366d,19 +3483662,80 +3483663,12 +3483664,8c +3483665,42 +3483666,a5 +3483667,d4 +3483668,8e +3483669,6f +348366b,a4 +348366d,f +348366e,7a 348366f,3 -3483670,3 -3483671,e0 -3483673,8 -3483678,8d -3483679,ad -348367a,8a -348367b,a0 -348367c,34 -348367d,2 -348367e,80 -3483680,10 -3483681,4d -3483683,2 -3483688,10 -348368b,9 -348368c,3c -348368d,f -348368e,80 -348368f,1e -3483690,25 -3483691,ef -3483692,84 -3483693,a0 -3483694,81 -3483695,e2 -3483696,1c -3483697,bf -3483698,30 -3483699,42 -348369b,1 -348369c,10 -348369d,40 -348369f,2 -34836a4,10 -34836a7,2 -34836a8,34 -34836a9,2 -34836ab,1 -34836ac,a1 -34836ad,e2 -34836ae,1c -34836af,bf -34836b0,3 -34836b1,e0 -34836b3,8 -34836b9,33 -34836ba,8 -34836bb,21 -34836bc,3c -34836bd,2 -34836be,80 -34836bf,12 -34836c0,8c +3483670,14 +3483671,40 +3483673,5 +3483674,34 +3483675,2 +3483676,48 +3483677,30 +3483678,15 +3483679,e2 +348367b,7 +3483680,24 +3483681,19 +3483683,3 +3483684,10 +3483687,4 +3483688,34 +3483689,2 +348368a,63 +348368b,11 +348368c,15 +348368d,e2 +348368f,2 +3483694,24 +3483695,19 +3483697,3 +3483698,3 +3483699,e0 +348369b,8 +34836a0,8d +34836a1,ad +34836a2,8a +34836a3,a0 +34836a4,34 +34836a5,2 +34836a6,80 +34836a8,10 +34836a9,4d +34836ab,2 +34836b0,10 +34836b3,9 +34836b4,3c +34836b5,f +34836b6,80 +34836b7,1e +34836b8,25 +34836b9,ef +34836ba,84 +34836bb,a0 +34836bc,81 +34836bd,e2 +34836be,1c +34836bf,bf +34836c0,30 34836c1,42 -34836c2,a5 -34836c3,d4 -34836c4,8e -34836c5,6f -34836c7,a4 -34836c9,f -34836ca,7a -34836cb,3 -34836cc,14 -34836cd,40 -34836cf,5 +34836c3,1 +34836c4,10 +34836c5,40 +34836c7,2 +34836cc,10 +34836cf,2 34836d0,34 34836d1,2 -34836d2,48 -34836d3,30 -34836d4,15 +34836d3,1 +34836d4,a1 34836d5,e2 -34836d7,7 -34836dc,24 -34836dd,19 -34836df,3 -34836e0,10 -34836e3,4 -34836e4,34 +34836d6,1c +34836d7,bf +34836d8,3 +34836d9,e0 +34836db,8 +34836e1,33 +34836e2,8 +34836e3,21 +34836e4,3c 34836e5,2 -34836e6,63 -34836e7,11 -34836e8,15 -34836e9,e2 -34836eb,2 -34836f0,24 -34836f1,19 +34836e6,80 +34836e7,12 +34836e8,8c +34836e9,42 +34836ea,a5 +34836eb,d4 +34836ec,8e +34836ed,6f +34836ef,a4 +34836f1,f +34836f2,7a 34836f3,3 -34836f4,3 -34836f5,e0 -34836f7,8 -34836fc,34 -34836fd,1 -34836ff,18 -3483700,14 -3483701,81 -3483703,11 -3483708,14 -3483709,40 -348370b,f -3483710,3c -3483711,a -3483712,80 -3483713,12 -3483714,25 -3483715,4a -3483716,a5 -3483717,d0 -3483718,81 -3483719,48 -348371b,a6 -348371c,31 -348371d,8 -348371f,20 -3483720,11 -3483723,9 +34836f4,14 +34836f5,40 +34836f7,5 +34836f8,34 +34836f9,2 +34836fa,48 +34836fb,30 +34836fc,15 +34836fd,e2 +34836ff,7 +3483704,24 +3483705,19 +3483707,3 +3483708,10 +348370b,4 +348370c,34 +348370d,2 +348370e,63 +348370f,11 +3483710,15 +3483711,e2 +3483713,2 +3483718,24 +3483719,19 +348371b,3 +348371c,3 +348371d,e0 +348371f,8 3483724,34 -3483725,2 -3483728,34 -3483729,2 -348372b,1 -348372c,81 -348372d,48 -348372f,7b -3483730,34 -3483731,9 -3483733,7 -3483734,11 -3483735,9 -3483737,4 -3483738,34 +3483725,1 +3483727,18 +3483728,14 +3483729,81 +348372b,11 +3483730,14 +3483731,40 +3483733,f +3483738,3c 3483739,a -348373b,8 -348373c,11 -348373d,a -348373f,2 -3483744,34 -3483745,2 -3483748,3 -3483749,e0 -348374b,8 -3483750,80 -3483751,a8 -3483754,25 -3483755,9 -3483757,1 -3483758,15 -3483759,20 -348375b,e -3483760,27 -3483761,bd -3483762,ff -3483763,e8 -3483764,af -3483765,bf -3483767,14 -3483768,af -3483769,a4 -348376b,18 -348376c,af -348376d,a5 -348376f,1c -3483771,5 -3483772,20 -3483773,25 -3483774,24 -3483775,a5 -3483777,8 -3483778,c -3483779,1 -348377a,5c -348377b,c -348377c,24 -348377d,c6 -348377e,ff -348377f,f8 -3483780,8f -3483781,a4 -3483783,18 -3483784,8f -3483785,a5 -3483787,1c -3483788,34 -3483789,6 -348378b,80 -348378c,8f +348373a,80 +348373b,12 +348373c,25 +348373d,4a +348373e,a5 +348373f,d0 +3483740,81 +3483741,48 +3483743,a6 +3483744,31 +3483745,8 +3483747,20 +3483748,11 +348374b,9 +348374c,34 +348374d,2 +3483750,34 +3483751,2 +3483753,1 +3483754,81 +3483755,48 +3483757,7b +3483758,34 +3483759,9 +348375b,7 +348375c,11 +348375d,9 +348375f,4 +3483760,34 +3483761,a +3483763,8 +3483764,11 +3483765,a +3483767,2 +348376c,34 +348376d,2 +3483770,3 +3483771,e0 +3483773,8 +3483778,80 +3483779,a8 +348377c,25 +348377d,9 +348377f,1 +3483780,15 +3483781,20 +3483783,e +3483788,27 +3483789,bd +348378a,ff +348378b,e8 +348378c,af 348378d,bf 348378f,14 -3483790,27 -3483791,bd +3483790,af +3483791,a4 3483793,18 -3483794,8 -3483795,1 -3483796,5c -3483797,c -348379c,a2 -348379d,25 -348379f,21 -34837a0,3c -34837a1,10 -34837a2,80 -34837a3,40 -34837a4,26 -34837a5,10 -34837a6,17 -34837a7,fc -34837a8,26 -34837a9,10 -34837ab,4 -34837ac,8e -34837ad,a -34837b0,11 -34837b1,40 -34837b3,b -34837b9,a -34837ba,7c -34837bb,2 -34837bc,1 -34837bd,f1 -34837be,78 -34837bf,20 -34837c0,31 -34837c1,58 -34837c2,ff -34837c5,18 -34837c6,c2 -34837c7,2 -34837c8,17 -34837cb,3 -34837cc,31 -34837cd,59 -34837cf,ff -34837d0,81 -34837d1,ea -34837d4,3 -34837d5,2a -34837d6,c8 -34837d7,25 -34837d8,8 -34837d9,10 -34837da,d -34837db,ea -34837dc,a1 -34837dd,f9 -34837e0,3 -34837e1,e0 -34837e3,8 +3483794,af +3483795,a5 +3483797,1c +3483799,5 +348379a,20 +348379b,25 +348379c,24 +348379d,a5 +348379f,8 +34837a0,c +34837a1,1 +34837a2,5c +34837a3,c +34837a4,24 +34837a5,c6 +34837a6,ff +34837a7,f8 +34837a8,8f +34837a9,a4 +34837ab,18 +34837ac,8f +34837ad,a5 +34837af,1c +34837b0,34 +34837b1,6 +34837b3,80 +34837b4,8f +34837b5,bf +34837b7,14 +34837b8,27 +34837b9,bd +34837bb,18 +34837bc,8 +34837bd,1 +34837be,5c +34837bf,c +34837c4,a2 +34837c5,25 +34837c7,21 +34837c8,3c +34837c9,10 +34837ca,80 +34837cb,40 +34837cc,26 +34837cd,10 +34837ce,17 +34837cf,fc +34837d0,26 +34837d1,10 +34837d3,4 +34837d4,8e +34837d5,a +34837d8,11 +34837d9,40 +34837db,b +34837e1,a +34837e2,7c +34837e3,2 +34837e4,1 +34837e5,f1 +34837e6,78 +34837e7,20 +34837e8,31 +34837e9,58 +34837ea,ff +34837ed,18 +34837ee,c2 +34837ef,2 +34837f0,17 +34837f3,3 +34837f4,31 +34837f5,59 +34837f7,ff +34837f8,81 +34837f9,ea +34837fc,3 +34837fd,2a +34837fe,c8 +34837ff,25 +3483800,8 +3483801,10 +3483802,d +3483803,f4 +3483804,a1 +3483805,f9 +3483808,3 +3483809,e0 +348380b,8 34b3000,27 34b3001,bd 34b3002,ff diff --git a/data/symbols.json b/data/symbols.json index 264a05622..623eae656 100644 --- a/data/symbols.json +++ b/data/symbols.json @@ -1,14 +1,15 @@ { - "ADULT_INIT_ITEMS": "03483608", - "ADULT_VALID_ITEMS": "03483614", + "ADULT_INIT_ITEMS": "03483630", + "ADULT_VALID_ITEMS": "0348363C", + "COOP_GET_ITEM": "03481C01", "EXTENDED_ITEM_DATA": "03482008", - "FAIRY_ITEMS": "03481C03", - "FAIRY_OCARINA_ITEM": "03481C02", + "FAIRY_ITEMS": "03481C04", + "FAIRY_OCARINA_ITEM": "03481C03", "FONT_TEXTURE": "034B4550", "INITIAL_SAVE_DATA": "03481800", "ITEM_OVERRIDES": "03481000", "ITEM_TABLE": "03482050", - "LIGHT_ARROW_ITEM": "03481C01", + "LIGHT_ARROW_ITEM": "03481C02", "PENDING_SPECIAL_ITEM": "03482018", "PENDING_SPECIAL_ITEM_END": "0348201B", "PLAYER_ID": "03481C00", diff --git a/version.py b/version.py index 1ae0e022b..0c32adffa 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.20.9 f.LUM' +__version__ = '2.20.10 f.LUM' From 7a72db51caefc6462f1cf20747a9f382f8a7e455 Mon Sep 17 00:00:00 2001 From: mzxrules Date: Thu, 4 Oct 2018 10:48:37 -0400 Subject: [PATCH 634/755] build.py no longer uses a subprocess to call rom_diff.py --- ASM/scripts/build.py | 5 ++--- ASM/scripts/rom_diff.py | 36 +++++++++++++++++++++--------------- 2 files changed, 23 insertions(+), 18 deletions(-) diff --git a/ASM/scripts/build.py b/ASM/scripts/build.py index a49b46799..132c95fef 100644 --- a/ASM/scripts/build.py +++ b/ASM/scripts/build.py @@ -5,6 +5,7 @@ import os import re from subprocess import check_call as call +from rom_diff import create_diff parser = argparse.ArgumentParser() parser.add_argument('--pj64sym', help="Output path for PJ64 debugging symbols") @@ -97,6 +98,4 @@ f.write('{0},{1},{2}\n'.format(sym['address'], sym['type'], sym_name)) # Diff ROMs - -call(['python3', 'scripts/rom_diff.py', - 'roms/base.z64', 'roms/patched.z64', '../data/rom_patch.txt']) +create_diff('roms/base.z64', 'roms/patched.z64', '../data/rom_patch.txt') diff --git a/ASM/scripts/rom_diff.py b/ASM/scripts/rom_diff.py index 2b37d51e0..ecb6f4e2f 100644 --- a/ASM/scripts/rom_diff.py +++ b/ASM/scripts/rom_diff.py @@ -3,13 +3,15 @@ import json import sys -if len(sys.argv) < 4: - raise RuntimeError("Usage: python3 rom_diff.py BASE_FILE COMPARISON_FILE OUTPUT_FILE") - -base_path = sys.argv[1] -compare_path = sys.argv[2] -output_path = sys.argv[3] +def main(): + if len(sys.argv) < 4: + raise RuntimeError("Usage: python3 rom_diff.py BASE_FILE COMPARISON_FILE OUTPUT_FILE") + base_path = sys.argv[1] + compare_path = sys.argv[2] + output_path = sys.argv[3] + create_diff(base_path, compare_path, output_path) + def unequal_chunks(file1, file2): chunk_size = 2048 i = 0 @@ -22,13 +24,17 @@ def unequal_chunks(file1, file2): yield (i * chunk_size, chunk1, chunk2) i += 1 -diffs = [] -with open(base_path, 'rb') as base_f, open(compare_path, 'rb') as comp_f: - for (i, base_c, comp_c) in unequal_chunks(base_f, comp_f): - for j in range(len(base_c)): - if comp_c[j] != base_c[j]: - diffs.append((i + j, comp_c[j])) +def create_diff(base_path, compare_path, output_path): + diffs = [] + with open(base_path, 'rb') as base_f, open(compare_path, 'rb') as comp_f: + for (i, base_c, comp_c) in unequal_chunks(base_f, comp_f): + for j in range(len(base_c)): + if comp_c[j] != base_c[j]: + diffs.append((i + j, comp_c[j])) + + with open(output_path, 'w') as out_f: + for (i, b) in diffs: + out_f.write('{0:x},{1:x}\n'.format(i, b)) -with open(output_path, 'w') as out_f: - for (i, b) in diffs: - out_f.write('{0:x},{1:x}\n'.format(i, b)) +if __name__ == '__main__': + main() \ No newline at end of file From 1d2a4ad904991011eb6389c26ad68191af7ac461 Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 4 Oct 2018 22:24:25 -0400 Subject: [PATCH 635/755] coop Textboxes display names instead of player number This also frees up the point value, making minigames behave correctly again --- ASM/build/asm_symbols.txt | 32 +-- ASM/src/build.asm | 1 + ASM/src/config.asm | 6 + ASM/src/hacks.asm | 31 ++- ASM/src/item_overrides.asm | 9 +- ASM/src/textbox.asm | 35 ++++ Messages.py | 4 +- Patches.py | 6 +- data/rom_patch.txt | 399 ++++++++++++++++++++++++++++++++++--- data/symbols.json | 8 +- version.py | 2 +- 11 files changed, 481 insertions(+), 52 deletions(-) create mode 100644 ASM/src/textbox.asm diff --git a/ASM/build/asm_symbols.txt b/ASM/build/asm_symbols.txt index 711be45c1..9cfcd7e1a 100644 --- a/ASM/build/asm_symbols.txt +++ b/ASM/build/asm_symbols.txt @@ -42,17 +42,21 @@ 80401C01 .byt:0001 80401C01 COOP_GET_ITEM 80401C02 .byt:0001 -80401C02 LIGHT_ARROW_ITEM -80401C03 .byt:0001 -80401C03 FAIRY_OCARINA_ITEM -80401C04 .byt:0001 -80401C04 FAIRY_ITEMS -80401C05 .byt:0001 -80401C06 .byt:0001 -80401C07 .byt:0001 -80401C08 .byt:0001 -80401C09 .byt:0001 -80401C0C .byt:03F4 +80401C02 PLAYER_NAME_ID +80401C03 .byt:0100 +80401C03 PLAYER_NAMES +80401D03 .byt:0001 +80401D03 LIGHT_ARROW_ITEM +80401D04 .byt:0001 +80401D04 FAIRY_OCARINA_ITEM +80401D05 .byt:0001 +80401D05 FAIRY_ITEMS +80401D06 .byt:0001 +80401D07 .byt:0001 +80401D08 .byt:0001 +80401D09 .byt:0001 +80401D0A .byt:0001 +80401D0C .byt:02F4 80402000 .dbl:0008 80402000 PLAYER_OVERRIDE_DATA 80402008 .dbl:0010 @@ -1013,7 +1017,11 @@ 804037D0 @@save_data_loop 80403800 @@overwrite_type 80403808 @@return -80403810 .byt:0840 +80403810 get_name_char +80403838 @@coop_player_name +80403850 @@return +80403858 reset_player_name_id +80403874 .byt:07DC 80405000 text_init,0000002C 8040502C text_print,000000A8 804050D4 text_flush,00000148 diff --git a/ASM/src/build.asm b/ASM/src/build.asm index 6bf50b6c0..318e14ce7 100755 --- a/ASM/src/build.asm +++ b/ASM/src/build.asm @@ -49,6 +49,7 @@ DebugOutput: .include "song_fix.asm" .include "scarecrow.asm" .include "initial_save.asm" +.include "textbox.asm" .endarea .headersize (0x80405000 - 0x034B3000) diff --git a/ASM/src/config.asm b/ASM/src/config.asm index 35d2bde41..5e6109f45 100755 --- a/ASM/src/config.asm +++ b/ASM/src/config.asm @@ -37,6 +37,12 @@ PLAYER_ID: .byte 0x00 COOP_GET_ITEM: .byte 0x00 +PLAYER_NAME_ID: +.byte 0x00 + +.area 8*32, 0xDF +PLAYER_NAMES: +.endarea ; 0x03481C00: Special items diff --git a/ASM/src/hacks.asm b/ASM/src/hacks.asm index 78eb2b878..53917bd04 100755 --- a/ASM/src/hacks.asm +++ b/ASM/src/hacks.asm @@ -497,4 +497,33 @@ ; Replaces: ; jal 0x80057030 ; copies Scarecrow Song from active space to save context .org 0xB55A64 ; In memory 800DFB04 - jal save_scarecrow_song \ No newline at end of file + jal save_scarecrow_song + +;================================================================================================== +; Override Player Name Text +;================================================================================================== + +; Replaces +; lui t2,0x8012 +; addu t2,t2,s3 +; lbu t2,-23053(t2) +.org 0xB51690 + jal get_name_char + addi a0, s3, -1 + ori t2, v0, 0 + +; Replaces +; lui s0,0x8012 +; addu s0,s0,s2 +; lbu s0,-23052(s0) +.org 0xB516C0 + jal get_name_char + ori a0, s2, 0 + ori s0, v0, 0 + +; Replaces +; addiu s5,s5,-1 +; sll s5,s5,0x10 +.org 0xB517C0 + jal reset_player_name_id + nop diff --git a/ASM/src/item_overrides.asm b/ASM/src/item_overrides.asm index 3d999fdd7..f28f74e5a 100755 --- a/ASM/src/item_overrides.asm +++ b/ASM/src/item_overrides.asm @@ -466,8 +466,9 @@ scan_override_table: li t0, PLAYER_ID lbu t1, 0x00(t0) - li t0, SAVE_CONTEXT - sh t1, 0x1406(t0) ; set points to current player: default + + li t0, PLAYER_NAME_ID + sb t1, 0x00 (t0) ; Check if the item source ID is 0x7F which is used for Co-op items andi t1, a0, 0x00FF ; t1 = item source ID @@ -504,8 +505,8 @@ scan_override_table: andi v0, t1, 0xFF ; v0 = found item ID @@lookup_item_found: - li t0, SAVE_CONTEXT - sh t3, 0x1406(t0) ; set the point value to the player number + li t0, PLAYER_NAME_ID + sb t3, 0x00 (t0) li t1, PLAYER_OVERRIDE_DATA diff --git a/ASM/src/textbox.asm b/ASM/src/textbox.asm new file mode 100644 index 000000000..647804c53 --- /dev/null +++ b/ASM/src/textbox.asm @@ -0,0 +1,35 @@ +; a0 = char index into name +get_name_char: + li t0, PLAYER_NAME_ID + lbu t0, 0x00 (t0) + + bnez t0, @@coop_player_name + nop + + li t0, SAVE_CONTEXT + lbu v0, 0x24 (t0) + b @@return + nop + +@@coop_player_name: + sll t0, t0, 3 + li v0, PLAYER_NAMES + add t0, t0, v0 + add t0, t0, a0 + lbu v0, 0x00 (t0) + +@@return: + jr ra + nop + + +reset_player_name_id: + ; displaced code + addiu s5, s5, -1 + sll s5, s5, 0x10 + + li t0, PLAYER_NAME_ID + sb zero, 0x00 (t0) + + jr ra + nop \ No newline at end of file diff --git a/Messages.py b/Messages.py index 32015a8e0..31b16ec49 100644 --- a/Messages.py +++ b/Messages.py @@ -636,8 +636,8 @@ def is_in_item_range(id): shop.purchase_message |= 0x8000 def make_player_message(text): - player_text_U = '\x05\x42Player \x18\x05\x40' - player_text_L = '\x05\x42player \x18\x05\x40' + player_text_U = '\x05\x42\x0F\x05\x40' + player_text_L = '\x05\x42\x0F\x05\x40' pronoun_mapping = { 'You have ': player_text_U + ' ', 'You\'ve ': player_text_U + ' ', diff --git a/Patches.py b/Patches.py index f638cfa34..8f270f4f8 100644 --- a/Patches.py +++ b/Patches.py @@ -1365,7 +1365,7 @@ def write_save_table(rom): elif dungeon in ['BW', 'IC']: dungeon_name, boss_name, compass_id, map_id = dungeon_list[dungeon] if world.world_count > 1: - map_message = "\x13\x76\x08\x05\x42Player \x18\x05\x40 found the \x05\x41Dungeon Map\x05\x40\x01for %s\x05\x40!\x09" % (dungeon_name) + map_message = "\x13\x76\x08\x05\x42\x0F\x05\x40 found the \x05\x41Dungeon Map\x05\x40\x01for %s\x05\x40!\x09" % (dungeon_name) else: map_message = "\x13\x76\x08You found the \x05\x41Dungeon Map\x05\x40\x01for %s\x05\x40!\x01It\'s %s!\x09" % (dungeon_name, "masterful" if world.dungeon_mq[dungeon] else "ordinary") @@ -1375,13 +1375,13 @@ def write_save_table(rom): dungeon_name, boss_name, compass_id, map_id = dungeon_list[dungeon] dungeon_reward = reward_list[world.get_location(boss_name).item.name] if world.world_count > 1: - compass_message = "\x13\x75\x08\x05\x42Player \x18\x05\x40 found the \x05\x41Compass\x05\x40\x01for %s\x05\x40!\x09" % (dungeon_name) + compass_message = "\x13\x75\x08\x05\x42\x0F\x05\x40 found the \x05\x41Compass\x05\x40\x01for %s\x05\x40!\x09" % (dungeon_name) else: compass_message = "\x13\x75\x08You found the \x05\x41Compass\x05\x40\x01for %s\x05\x40!\x01It holds the %s!\x09" % (dungeon_name, dungeon_reward) update_message_by_id(messages, compass_id, compass_message) if world.quest == 'mixed': if world.world_count > 1: - map_message = "\x13\x76\x08\x05\x42Player \x18\x05\x40 found the \x05\x41Dungeon Map\x05\x40\x01for %s\x05\x40!\x09" % (dungeon_name) + map_message = "\x13\x76\x08\x05\x42\x0F\x05\x40 found the \x05\x41Dungeon Map\x05\x40\x01for %s\x05\x40!\x09" % (dungeon_name) else: map_message = "\x13\x76\x08You found the \x05\x41Dungeon Map\x05\x40\x01for %s\x05\x40!\x01It\'s %s!\x09" % (dungeon_name, "masterful" if world.dungeon_mq[dungeon] else "ordinary") update_message_by_id(messages, map_id, map_message) diff --git a/data/rom_patch.txt b/data/rom_patch.txt index dd27dd8f4..e702cc574 100644 --- a/data/rom_patch.txt +++ b/data/rom_patch.txt @@ -512,6 +512,34 @@ b17bd0,0 b17bd1,0 b17bd2,0 b17bd3,0 +b51690,c +b51691,10 +b51692,e +b51693,4 +b51694,22 +b51695,64 +b51696,ff +b51697,ff +b51698,34 +b5169a,0 +b5169b,0 +b516c0,c +b516c2,e +b516c3,4 +b516c4,36 +b516c5,44 +b516c6,0 +b516c7,0 +b516c8,34 +b516c9,50 +b516ca,0 +b516cb,0 +b517c0,c +b517c1,10 +b517c2,e +b517c3,16 +b517c5,0 +b517c6,0 b54b38,c b54b39,10 b54b3a,d @@ -1068,14 +1096,270 @@ ec9ce7,7a 3480048,3 3480049,e0 348004b,8 -3481c02,5a -3481c03,3b -3481c04,5d -3481c05,5c -3481c06,5e -3481c07,51 -3481c08,52 -3481c09,53 +3481c03,df +3481c04,df +3481c05,df +3481c06,df +3481c07,df +3481c08,df +3481c09,df +3481c0a,df +3481c0b,df +3481c0c,df +3481c0d,df +3481c0e,df +3481c0f,df +3481c10,df +3481c11,df +3481c12,df +3481c13,df +3481c14,df +3481c15,df +3481c16,df +3481c17,df +3481c18,df +3481c19,df +3481c1a,df +3481c1b,df +3481c1c,df +3481c1d,df +3481c1e,df +3481c1f,df +3481c20,df +3481c21,df +3481c22,df +3481c23,df +3481c24,df +3481c25,df +3481c26,df +3481c27,df +3481c28,df +3481c29,df +3481c2a,df +3481c2b,df +3481c2c,df +3481c2d,df +3481c2e,df +3481c2f,df +3481c30,df +3481c31,df +3481c32,df +3481c33,df +3481c34,df +3481c35,df +3481c36,df +3481c37,df +3481c38,df +3481c39,df +3481c3a,df +3481c3b,df +3481c3c,df +3481c3d,df +3481c3e,df +3481c3f,df +3481c40,df +3481c41,df +3481c42,df +3481c43,df +3481c44,df +3481c45,df +3481c46,df +3481c47,df +3481c48,df +3481c49,df +3481c4a,df +3481c4b,df +3481c4c,df +3481c4d,df +3481c4e,df +3481c4f,df +3481c50,df +3481c51,df +3481c52,df +3481c53,df +3481c54,df +3481c55,df +3481c56,df +3481c57,df +3481c58,df +3481c59,df +3481c5a,df +3481c5b,df +3481c5c,df +3481c5d,df +3481c5e,df +3481c5f,df +3481c60,df +3481c61,df +3481c62,df +3481c63,df +3481c64,df +3481c65,df +3481c66,df +3481c67,df +3481c68,df +3481c69,df +3481c6a,df +3481c6b,df +3481c6c,df +3481c6d,df +3481c6e,df +3481c6f,df +3481c70,df +3481c71,df +3481c72,df +3481c73,df +3481c74,df +3481c75,df +3481c76,df +3481c77,df +3481c78,df +3481c79,df +3481c7a,df +3481c7b,df +3481c7c,df +3481c7d,df +3481c7e,df +3481c7f,df +3481c80,df +3481c81,df +3481c82,df +3481c83,df +3481c84,df +3481c85,df +3481c86,df +3481c87,df +3481c88,df +3481c89,df +3481c8a,df +3481c8b,df +3481c8c,df +3481c8d,df +3481c8e,df +3481c8f,df +3481c90,df +3481c91,df +3481c92,df +3481c93,df +3481c94,df +3481c95,df +3481c96,df +3481c97,df +3481c98,df +3481c99,df +3481c9a,df +3481c9b,df +3481c9c,df +3481c9d,df +3481c9e,df +3481c9f,df +3481ca0,df +3481ca1,df +3481ca2,df +3481ca3,df +3481ca4,df +3481ca5,df +3481ca6,df +3481ca7,df +3481ca8,df +3481ca9,df +3481caa,df +3481cab,df +3481cac,df +3481cad,df +3481cae,df +3481caf,df +3481cb0,df +3481cb1,df +3481cb2,df +3481cb3,df +3481cb4,df +3481cb5,df +3481cb6,df +3481cb7,df +3481cb8,df +3481cb9,df +3481cba,df +3481cbb,df +3481cbc,df +3481cbd,df +3481cbe,df +3481cbf,df +3481cc0,df +3481cc1,df +3481cc2,df +3481cc3,df +3481cc4,df +3481cc5,df +3481cc6,df +3481cc7,df +3481cc8,df +3481cc9,df +3481cca,df +3481ccb,df +3481ccc,df +3481ccd,df +3481cce,df +3481ccf,df +3481cd0,df +3481cd1,df +3481cd2,df +3481cd3,df +3481cd4,df +3481cd5,df +3481cd6,df +3481cd7,df +3481cd8,df +3481cd9,df +3481cda,df +3481cdb,df +3481cdc,df +3481cdd,df +3481cde,df +3481cdf,df +3481ce0,df +3481ce1,df +3481ce2,df +3481ce3,df +3481ce4,df +3481ce5,df +3481ce6,df +3481ce7,df +3481ce8,df +3481ce9,df +3481cea,df +3481ceb,df +3481cec,df +3481ced,df +3481cee,df +3481cef,df +3481cf0,df +3481cf1,df +3481cf2,df +3481cf3,df +3481cf4,df +3481cf5,df +3481cf6,df +3481cf7,df +3481cf8,df +3481cf9,df +3481cfa,df +3481cfb,df +3481cfc,df +3481cfd,df +3481cfe,df +3481cff,df +3481d00,df +3481d01,df +3481d02,df +3481d03,5a +3481d04,3b +3481d05,5d +3481d06,5c +3481d07,5e +3481d08,51 +3481d09,52 +3481d0a,53 3482050,ff 3482051,ff 3482052,ff @@ -3731,15 +4015,13 @@ ec9ce7,7a 3482dc8,3c 3482dc9,8 3482dca,80 -3482dcb,12 +3482dcb,40 3482dcc,25 3482dcd,8 -3482dce,a5 -3482dcf,d0 -3482dd0,a5 +3482dce,1c +3482dcf,2 +3482dd0,a1 3482dd1,9 -3482dd2,14 -3482dd3,6 3482dd4,30 3482dd5,89 3482dd7,ff @@ -3810,15 +4092,13 @@ ec9ce7,7a 3482e38,3c 3482e39,8 3482e3a,80 -3482e3b,12 +3482e3b,40 3482e3c,25 3482e3d,8 -3482e3e,a5 -3482e3f,d0 -3482e40,a5 +3482e3e,1c +3482e3f,2 +3482e40,a1 3482e41,b -3482e42,14 -3482e43,6 3482e44,3c 3482e45,9 3482e46,80 @@ -4040,8 +4320,8 @@ ec9ce7,7a 3482f7f,40 3482f80,25 3482f81,8 -3482f82,1c -3482f83,4 +3482f82,1d +3482f83,5 3482f84,1 3482f85,a 3482f86,40 @@ -4069,8 +4349,8 @@ ec9ce7,7a 3482fa7,40 3482fa8,25 3482fa9,8 -3482faa,1c -3482fab,2 +3482faa,1d +3482fab,3 3482fac,81 3482fad,8 3482fb0,10 @@ -4081,8 +4361,8 @@ ec9ce7,7a 3482fbb,40 3482fbc,25 3482fbd,8 -3482fbe,1c -3482fbf,3 +3482fbe,1d +3482fbf,4 3482fc0,81 3482fc1,8 3482fc4,10 @@ -5575,6 +5855,73 @@ ec9ce7,7a 3483808,3 3483809,e0 348380b,8 +3483810,3c +3483811,8 +3483812,80 +3483813,40 +3483814,25 +3483815,8 +3483816,1c +3483817,2 +3483818,91 +3483819,8 +348381c,15 +348381f,6 +3483824,3c +3483825,8 +3483826,80 +3483827,12 +3483828,25 +3483829,8 +348382a,a5 +348382b,d0 +348382c,91 +348382d,2 +348382f,24 +3483830,10 +3483833,7 +3483839,8 +348383a,40 +348383b,c0 +348383c,3c +348383d,2 +348383e,80 +348383f,40 +3483840,24 +3483841,42 +3483842,1c +3483843,3 +3483844,1 +3483845,2 +3483846,40 +3483847,20 +3483848,1 +3483849,4 +348384a,40 +348384b,20 +348384c,91 +348384d,2 +3483850,3 +3483851,e0 +3483853,8 +3483858,26 +3483859,b5 +348385a,ff +348385b,ff +348385d,15 +348385e,ac +3483860,3c +3483861,8 +3483862,80 +3483863,40 +3483864,25 +3483865,8 +3483866,1c +3483867,2 +3483868,a1 +348386c,3 +348386d,e0 +348386f,8 34b3000,27 34b3001,bd 34b3002,ff diff --git a/data/symbols.json b/data/symbols.json index 623eae656..964b9ab7e 100644 --- a/data/symbols.json +++ b/data/symbols.json @@ -3,16 +3,18 @@ "ADULT_VALID_ITEMS": "0348363C", "COOP_GET_ITEM": "03481C01", "EXTENDED_ITEM_DATA": "03482008", - "FAIRY_ITEMS": "03481C04", - "FAIRY_OCARINA_ITEM": "03481C03", + "FAIRY_ITEMS": "03481D05", + "FAIRY_OCARINA_ITEM": "03481D04", "FONT_TEXTURE": "034B4550", "INITIAL_SAVE_DATA": "03481800", "ITEM_OVERRIDES": "03481000", "ITEM_TABLE": "03482050", - "LIGHT_ARROW_ITEM": "03481C02", + "LIGHT_ARROW_ITEM": "03481D03", "PENDING_SPECIAL_ITEM": "03482018", "PENDING_SPECIAL_ITEM_END": "0348201B", "PLAYER_ID": "03481C00", + "PLAYER_NAMES": "03481C03", + "PLAYER_NAME_ID": "03481C02", "PLAYER_OVERRIDE_DATA": "03482000", "TIME_TRAVEL_SAVED_EQUIPS": "0348201C", "cfg_dungeon_info_enable": "034B450C", diff --git a/version.py b/version.py index 0c32adffa..cd3060df7 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.20.10 f.LUM' +__version__ = '2.20.11 f.LUM' From afddb7b055c1078391e202b2e7cd5e9d116d26da Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 4 Oct 2018 23:29:06 -0400 Subject: [PATCH 636/755] Fix HP counts from GS not being displayed correctly This fix is done by displaying the text before giving the item so that it can correctly display the message for the number of pieces you are getting --- ASM/build/asm_symbols.txt | 294 +- ASM/src/item_overrides.asm | 32 +- data/rom_patch.txt | 5215 ++++++++++++++++++------------------ data/symbols.json | 4 +- version.py | 2 +- 5 files changed, 2782 insertions(+), 2765 deletions(-) diff --git a/ASM/build/asm_symbols.txt b/ASM/build/asm_symbols.txt index 9cfcd7e1a..cfcbb0ab8 100644 --- a/ASM/build/asm_symbols.txt +++ b/ASM/build/asm_symbols.txt @@ -861,129 +861,109 @@ 80402910 @@return 80402918 override_skulltula_token 80402938 @@in_table -80402968 @@extended_effect -80402994 @@no_extended_effect -804029A0 @@not_extended -804029D8 @@item_effect -804029E4 @@display_message -804029F0 @@return -80402A04 override_object_npc -80402A14 override_object_chest -80402A24 override_object -80402A3C @@return -80402A80 @@no_count_inc -80402A84 @@no_pending_clear -80402A8C override_graphic -80402AA4 @@return -80402ABC override_text -80402AD8 @@return -80402AE0 override_action -80402B08 @@no_player_override -80402B64 @@return -80402B6C store_item_data_hook -80402BA0 store_item_data -80402C34 @@update_base_game -80402C64 @@not_chest -80402C74 @@not_negative -80402C78 @@return -80402C88 lookup_override -80402CB0 @@return -80402CC0 get_override_search_key -80402D00 @@not_skulltula -80402D38 @@valid_chest -80402D40 @@not_chest -80402D70 @@valid_collectable -80402D78 @@not_collectable -80402DA0 @@not_grotto_deku_scrub -80402DB0 @@return -80402DB8 scan_override_table -80402DFC @@not_coop_item -80402E04 @@lookup_loop -80402E38 @@lookup_item_found -80402E6C @@return -80402E74 resolve_extended_item -80402E88 @@loop -80402EDC @@not_extended -80402EE0 @@return -80402EF8 override_great_fairy_cutscene -80402F50 @@item_fairy -80402F70 @@give_item -80402F9C @@return -80402FA4 override_light_arrow_cutscene -80402FB8 override_fairy_ocarina_cutscene -80402FCC override_ocarina_songs -80402FE0 override_requiem_song -80402FEC override_epona_song -8040300C override_suns_song -8040302C override_song_of_time -8040303C store_pending_special_item -8040304C @@find_duplicate_loop -80403068 @@find_empty_loop -80403080 @@return -80403088 override_saria_song_check -804030A4 @@get_item -804030AC set_saria_song_flag -804030CC set_dungeon_knowledge -804030F8 @@set_flag -80403110 Shop_Check_Sold_Out -8040315C @@return -80403164 Shop_Set_Sold_Out -8040319C @@return -804031A4 Shop_Keeper_Init_ID -804031C0 @@return -804031D0 Deku_Check_Sold_Out -804031F4 @@continue -80403224 Deku_Set_Sold_Out -80403248 @@continue -8040327C before_game_state_update -804032CC @@loop -80403324 @@no_pending_item -80403338 after_game_state_update -8040335C item_menu_description_id_periodic -80403370 @@item_menu_description_id_return_00000000 -80403378 item_menu_description_id_immediate_1 -8040338C @@item_menu_description_id_return_00000001 -80403394 item_menu_description_id_immediate_2 -804033A8 @@item_menu_description_id_return_00000002 -804033B0 item_menu_description_id_immediate_3 -804033C4 @@item_menu_description_id_return_00000003 -804033CC before_time_travel -804033FC after_time_travel -80403438 @@going_back -80403440 @@done -80403470 update_c_button -8040349C @@return -804034A4 after_going_forward -804034E0 @@no_init -804034F0 after_going_back -80403520 @@not_swordless -80403528 initialize_adult -80403550 @@no_mirror_shield -80403590 init_adult_button -804035BC @@empty -804035C4 @@loop -8040361C @@set_empty -80403628 @@return -80403630 .byt:0001 -80403630 ADULT_INIT_ITEMS -80403631 .byt:0001 -80403632 .byt:0001 -80403633 .byt:0001 -80403634 .byt:0001 -80403635 .byt:0001 -80403636 .byt:0001 -80403637 .byt:0001 -80403638 .byt:0001 -8040363C .byt:0001 -8040363C ADULT_VALID_ITEMS -8040363D .byt:0001 -8040363E .byt:0001 -8040363F .byt:0001 -80403640 .byt:0001 -80403641 .byt:0001 -80403642 .byt:0001 -80403643 .byt:0001 +8040297C @@extended_effect +804029B0 @@not_extended +804029F8 @@item_effect +80402A04 @@return +80402A18 override_object_npc +80402A28 override_object_chest +80402A38 override_object +80402A50 @@return +80402A94 @@no_count_inc +80402A98 @@no_pending_clear +80402AA0 override_graphic +80402AB8 @@return +80402AD0 override_text +80402AEC @@return +80402AF4 override_action +80402B1C @@no_player_override +80402B78 @@return +80402B80 store_item_data_hook +80402BB4 store_item_data +80402C48 @@update_base_game +80402C78 @@not_chest +80402C88 @@not_negative +80402C8C @@return +80402C9C lookup_override +80402CC4 @@return +80402CD4 get_override_search_key +80402D14 @@not_skulltula +80402D4C @@valid_chest +80402D54 @@not_chest +80402D84 @@valid_collectable +80402D8C @@not_collectable +80402DB4 @@not_grotto_deku_scrub +80402DC4 @@return +80402DCC scan_override_table +80402E10 @@not_coop_item +80402E18 @@lookup_loop +80402E4C @@lookup_item_found +80402E80 @@return +80402E88 resolve_extended_item +80402E9C @@loop +80402EF0 @@not_extended +80402EF4 @@return +80402F0C override_great_fairy_cutscene +80402F64 @@item_fairy +80402F84 @@give_item +80402FB0 @@return +80402FB8 override_light_arrow_cutscene +80402FCC override_fairy_ocarina_cutscene +80402FE0 override_ocarina_songs +80402FF4 override_requiem_song +80403000 override_epona_song +80403020 override_suns_song +80403040 override_song_of_time +80403050 store_pending_special_item +80403060 @@find_duplicate_loop +8040307C @@find_empty_loop +80403094 @@return +8040309C override_saria_song_check +804030B8 @@get_item +804030C0 set_saria_song_flag +804030E0 set_dungeon_knowledge +8040310C @@set_flag +80403124 Shop_Check_Sold_Out +80403170 @@return +80403178 Shop_Set_Sold_Out +804031B0 @@return +804031B8 Shop_Keeper_Init_ID +804031D4 @@return +804031E4 Deku_Check_Sold_Out +80403208 @@continue +80403238 Deku_Set_Sold_Out +8040325C @@continue +80403290 before_game_state_update +804032E0 @@loop +80403338 @@no_pending_item +8040334C after_game_state_update +80403370 item_menu_description_id_periodic +80403384 @@item_menu_description_id_return_00000000 +8040338C item_menu_description_id_immediate_1 +804033A0 @@item_menu_description_id_return_00000001 +804033A8 item_menu_description_id_immediate_2 +804033BC @@item_menu_description_id_return_00000002 +804033C4 item_menu_description_id_immediate_3 +804033D8 @@item_menu_description_id_return_00000003 +804033E0 before_time_travel +80403410 after_time_travel +8040344C @@going_back +80403454 @@done +80403484 update_c_button +804034B0 @@return +804034B8 after_going_forward +804034F4 @@no_init +80403504 after_going_back +80403534 @@not_swordless +8040353C initialize_adult +80403564 @@no_mirror_shield +804035A4 init_adult_button +804035D0 @@empty +804035D8 @@loop +80403630 @@set_empty +8040363C @@return 80403644 .byt:0001 +80403644 ADULT_INIT_ITEMS 80403645 .byt:0001 80403646 .byt:0001 80403647 .byt:0001 @@ -992,36 +972,54 @@ 8040364A .byt:0001 8040364B .byt:0001 8040364C .byt:0001 -8040364D .byt:0001 -8040364E .byt:0001 -8040364F .byt:0001 80403650 .byt:0001 +80403650 ADULT_VALID_ITEMS 80403651 .byt:0001 80403652 .byt:0001 80403653 .byt:0001 -80403654 suns_song_fix_event -80403688 @@child -80403698 @@return -804036A0 suns_song_fix -804036B4 @@check_suns_status -804036D0 @@disable_suns -804036D8 @@return -804036E0 warp_song_fix -8040370C @@child -8040371C @@return -80403724 Check_Has_Epona_Song -80403770 @@return -80403778 save_scarecrow_song -804037BC @@copy_song -804037C4 write_initial_save -804037D0 @@save_data_loop -80403800 @@overwrite_type -80403808 @@return -80403810 get_name_char -80403838 @@coop_player_name -80403850 @@return -80403858 reset_player_name_id -80403874 .byt:07DC +80403654 .byt:0001 +80403655 .byt:0001 +80403656 .byt:0001 +80403657 .byt:0001 +80403658 .byt:0001 +80403659 .byt:0001 +8040365A .byt:0001 +8040365B .byt:0001 +8040365C .byt:0001 +8040365D .byt:0001 +8040365E .byt:0001 +8040365F .byt:0001 +80403660 .byt:0001 +80403661 .byt:0001 +80403662 .byt:0001 +80403663 .byt:0001 +80403664 .byt:0001 +80403665 .byt:0001 +80403666 .byt:0001 +80403667 .byt:0001 +80403668 suns_song_fix_event +8040369C @@child +804036AC @@return +804036B4 suns_song_fix +804036C8 @@check_suns_status +804036E4 @@disable_suns +804036EC @@return +804036F4 warp_song_fix +80403720 @@child +80403730 @@return +80403738 Check_Has_Epona_Song +80403784 @@return +8040378C save_scarecrow_song +804037D0 @@copy_song +804037D8 write_initial_save +804037E4 @@save_data_loop +80403814 @@overwrite_type +8040381C @@return +80403824 get_name_char +8040384C @@coop_player_name +80403864 @@return +8040386C reset_player_name_id +80403888 .byt:07C8 80405000 text_init,0000002C 8040502C text_print,000000A8 804050D4 text_flush,00000148 diff --git a/ASM/src/item_overrides.asm b/ASM/src/item_overrides.asm index f28f74e5a..0798cdf97 100755 --- a/ASM/src/item_overrides.asm +++ b/ASM/src/item_overrides.asm @@ -56,12 +56,20 @@ override_skulltula_token: beqz v1, @@not_extended sw v1, 0x1C (sp) + ; display message + ; message id is in the extended item table + lbu a1, ITEM_ROW_TEXT_ID (v1) + move a0,s1 + jal 0x000dce14 ; call ex_0dce14(ctx, text_id, 0) + move a2,zero + lw v1, 0x1C (sp) + ; check if item is for this player li t0, PLAYER_OVERRIDE_DATA lh t1, 0x02(t0) beqz t1, @@extended_effect ; if item is pending player override li t2, 0x01 - b @@no_extended_effect + b @@return sh t2, 0x00(t0) ; set override collected flag @@extended_effect: @@ -79,12 +87,8 @@ override_skulltula_token: jal 0x0006fdcc ; call ex_06fdcc(ctx, item) ; this gives link the item move a0,s1 ; a0 = ctx -@@no_extended_effect: - ; message id is in the extended item table - lw v1, 0x1C (sp) - lbu a1, ITEM_ROW_TEXT_ID (v1) - - b @@display_message + b @@return + nop @@not_extended: ; get the table entry in the get item table for this item @@ -93,8 +97,15 @@ override_skulltula_token: mult v0, t2 ; mflo t2 ; t2 = offset into get item table addu s0, t1, t2 ; s0 = pointer to table entry - lb a1, 0x0 (s0) ; a1 = item id + ; display message + ; message id is in the get item table + move a0,s1 + lbu a1, 0x3 (s0) ; a1 = text id + jal 0x000dce14 ; call ex_0dce14(ctx, text_id, 0) + move a2,zero + + lb a1, 0x0 (s0) ; a1 = item id ; check if item is for this player li t0, PLAYER_OVERRIDE_DATA lh t1, 0x02(t0) @@ -111,11 +122,6 @@ override_skulltula_token: ; message id is in the get item table lbu a1, 0x3 (s0) ; a1 = text id -@@display_message: - move a0,s1 - jal 0x000dce14 ; call ex_0dce14(ctx, text_id, 0) - move a2,zero - @@return: lw ra, 0x10 (sp) lw s0, 0x14 (sp) diff --git a/data/rom_patch.txt b/data/rom_patch.txt index e702cc574..0b90bc3fe 100644 --- a/data/rom_patch.txt +++ b/data/rom_patch.txt @@ -403,22 +403,22 @@ d27a,30 a98c30,c a98c31,10 a98c32,a -a98c33,db +a98c33,e0 a9e838,8 a9e839,10 a9e83a,d -a9e83b,c9 +a9e83b,ce ac9abc,c ac9abd,10 ac9abe,b -ac9abf,f8 +ac9abf,fd ac9ac1,0 ac9ac2,0 ac9ac3,0 acce88,c acce89,10 acce8a,b -acce8b,e9 +acce8b,ee acce8c,0 acce8d,0 acce8e,0 @@ -432,23 +432,23 @@ acce99,0 acce9b,0 ae59e0,8 ae59e1,10 -ae59e2,c -ae59e3,ff +ae59e2,d +ae59e3,4 ae5df0,c ae5df1,10 ae5df2,d -ae5df3,a8 +ae5df3,ad ae5df8,c ae5df9,10 ae5dfa,b -ae5dfb,f3 +ae5dfb,f8 ae5e04,0 ae5e05,0 ae5e07,0 ae6e48,c ae6e49,10 ae6e4a,b -ae6e4b,ee +ae6e4b,f3 ae6e4c,1 ae6e4d,f ae6e4e,c0 @@ -463,20 +463,20 @@ b0640f,2 b06c2c,c b06c2d,10 b06c2e,d -b06c2f,f1 +b06c2f,f6 b06c31,28 b06c33,20 b16b50,c b16b51,10 b16b52,c -b16b53,9f +b16b53,a4 b16b54,0 b16b56,0 b16b57,0 b16b60,c b16b61,10 b16b62,c -b16b63,ce +b16b63,d3 b16b64,0 b16b65,0 b16b66,0 @@ -515,7 +515,7 @@ b17bd3,0 b51690,c b51691,10 b51692,e -b51693,4 +b51693,9 b51694,22 b51695,64 b51696,ff @@ -525,7 +525,7 @@ b5169a,0 b5169b,0 b516c0,c b516c2,e -b516c3,4 +b516c3,9 b516c4,36 b516c5,44 b516c6,0 @@ -537,20 +537,20 @@ b516cb,0 b517c0,c b517c1,10 b517c2,e -b517c3,16 +b517c3,1b b517c5,0 b517c6,0 b54b38,c b54b39,10 b54b3a,d -b54b3b,b8 +b54b3b,bd b54e5c,c b54e5d,10 b54e5e,d -b54e5f,95 +b54e5f,9a b55a65,10 b55a66,d -b55a67,de +b55a67,e3 baed6c,0 baed6d,0 baed6f,0 @@ -560,14 +560,14 @@ bb77b7,0 bb7890,c bb7891,10 bb7892,c -bb7893,de +bb7893,e3 bb7894,0 bb7895,0 bb7897,0 bb7950,c bb7951,10 bb7952,c -bb7953,e5 +bb7953,ea bb7954,0 bb7955,0 bb7957,0 @@ -580,21 +580,21 @@ bb7bff,0 bb7c3c,c bb7c3d,10 bb7c3e,c -bb7c3f,ec +bb7c3f,f1 bb7c40,0 bb7c41,0 bb7c43,0 bb7c58,c bb7c59,10 bb7c5a,c -bb7c5b,d7 +bb7c5b,dc bb7c5c,0 bb7c5d,0 bb7c5f,0 bcecbc,8 bcecbd,10 bcecbe,a -bcecbf,a3 +bcecbf,a8 bcecc1,0 bcecc2,0 bcecc3,0 @@ -618,25 +618,25 @@ bda0a3,29 bda0d8,c bda0d9,10 bda0da,a -bda0db,81 +bda0db,86 bda0e4,0 bda0e5,0 bda0e7,0 bda264,c bda265,10 bda266,a -bda267,85 +bda267,8a bda270,0 bda271,0 bda273,0 be9ac0,c be9ac1,10 be9ac2,a -be9ac3,af +be9ac3,b4 be9ad8,c be9ad9,10 be9ada,a -be9adb,b8 +be9adb,bd be9ae4,0 be9ae5,0 be9bde,83 @@ -644,20 +644,20 @@ be9bdf,83 c004ec,8 c004ed,10 c004ee,c -c004ef,44 +c004ef,49 c0067f,64 c018a0,c c018a1,10 c018a2,c -c018a3,59 +c018a3,5e c6c7a8,c c6c7a9,10 c6c7aa,c -c6c7ab,69 +c6c7ab,6e c6c920,c c6c921,10 c6c922,c -c6c923,69 +c6c923,6e c892dc,34 c892dd,e c892de,0 @@ -668,7 +668,7 @@ c8931e,0 c8931f,1 c89745,10 c89746,b -c89747,be +c89747,c3 c89868,92 c89869,e c8986a,1d @@ -684,7 +684,7 @@ c898cb,2a cb6860,c cb6861,10 cb6862,c -cb6863,f3 +cb6863,f8 d12f78,34 d12f79,f d12f7b,0 @@ -904,8 +904,8 @@ d7e8e0,57 d7e8e3,f d7ebbc,c d7ebbd,10 -d7ebbe,b -d7ebbf,fb +d7ebbe,c +d7ebbf,0 d7ec1c,0 d7ec1d,0 d7ec1f,0 @@ -915,12 +915,12 @@ db13d3,76 db532c,c db532d,10 db532e,c -db532f,b +db532f,10 df264f,76 df7cb0,c df7cb1,10 df7cb2,c -df7cb3,89 +df7cb3,8e e09f68,80 e09f6a,e e09f6b,de @@ -931,18 +931,18 @@ e09f77,4 e09fb0,c e09fb1,10 e09fb2,c -e09fb3,3 +e09fb3,8 e29388,8 e29389,10 e2938a,c -e2938b,22 +e2938b,27 e2a044,c e2a045,10 e2a046,c -e2a047,2b +e2a047,30 e2b0b5,10 e2b0b6,c -e2b0b7,33 +e2b0b7,38 e2f093,34 e9e1d8,34 e9e1d9,9 @@ -958,7 +958,7 @@ e9e20d,a9 ebb85c,c ebb85d,10 ebb85e,c -ebb85f,74 +ebb85f,79 ebb865,40 ebb867,12 ebb86c,10 @@ -3212,7 +3212,7 @@ ec9ce7,7a 3482924,c 3482925,10 3482926,b -3482927,22 +3482927,27 348292c,4 348292d,41 348292f,2 @@ -3225,1136 +3225,1137 @@ ec9ce7,7a 348293c,c 348293d,10 348293e,b -348293f,9d +348293f,a2 3482944,10 3482945,60 -3482947,16 +3482947,1a 3482948,af 3482949,a3 348294b,1c -348294c,3c -348294d,8 -348294e,80 -348294f,40 -3482950,25 -3482951,8 +348294c,90 +348294d,65 +348294f,3 +3482950,2 +3482951,20 3482952,20 -3482954,85 -3482955,9 -3482957,2 -3482958,11 -3482959,20 -348295b,3 -348295c,34 -348295d,a -348295f,1 -3482960,10 -3482963,c -3482964,a5 -3482965,a -3482968,3c -3482969,4 -348296a,80 -348296b,12 -348296c,24 -348296d,84 -348296e,a5 -348296f,d0 -3482970,90 -3482971,65 -3482973,6 -3482974,90 -3482975,66 -3482977,7 -3482978,8c -3482979,69 -348297b,8 -348297c,1 -348297d,20 -348297e,f8 -348297f,9 -3482984,8f -3482985,a3 -3482987,1c +3482953,21 +3482954,c +3482955,3 +3482956,73 +3482957,85 +348295a,30 +348295b,21 +348295c,8f +348295d,a3 +348295f,1c +3482960,3c +3482961,8 +3482962,80 +3482963,40 +3482964,25 +3482965,8 +3482966,20 +3482968,85 +3482969,9 +348296b,2 +348296c,11 +348296d,20 +348296f,3 +3482970,34 +3482971,a +3482973,1 +3482974,10 +3482977,23 +3482978,a5 +3482979,a +348297c,3c +348297d,4 +348297e,80 +348297f,12 +3482980,24 +3482981,84 +3482982,a5 +3482983,d0 +3482984,90 +3482985,65 +3482987,6 3482988,90 -3482989,65 -348298b,1 -348298c,c -348298d,1 -348298e,bf -348298f,73 -3482990,2 +3482989,66 +348298b,7 +348298c,8c +348298d,69 +348298f,8 +3482990,1 3482991,20 -3482992,20 -3482993,21 -3482994,8f -3482995,a3 -3482997,1c -3482998,90 -3482999,65 -348299b,3 -348299c,10 -348299f,11 -34829a0,3c -34829a1,9 -34829a2,80 -34829a3,3b -34829a4,25 -34829a5,29 -34829a6,9e -34829a7,7e -34829a8,34 -34829a9,a -34829ab,6 -34829ad,4a -34829af,18 -34829b2,50 -34829b3,12 -34829b4,1 -34829b5,2a -34829b6,80 -34829b7,21 -34829b8,82 -34829b9,5 -34829bc,3c -34829bd,8 -34829be,80 -34829bf,40 -34829c0,25 -34829c1,8 -34829c2,20 -34829c4,85 -34829c5,9 -34829c7,2 -34829c8,11 +3482992,f8 +3482993,9 +3482998,8f +3482999,a3 +348299b,1c +348299c,90 +348299d,65 +348299f,1 +34829a0,c +34829a1,1 +34829a2,bf +34829a3,73 +34829a4,2 +34829a5,20 +34829a6,20 +34829a7,21 +34829a8,10 +34829ab,16 +34829b0,3c +34829b1,9 +34829b2,80 +34829b3,3b +34829b4,25 +34829b5,29 +34829b6,9e +34829b7,7e +34829b8,34 +34829b9,a +34829bb,6 +34829bd,4a +34829bf,18 +34829c2,50 +34829c3,12 +34829c4,1 +34829c5,2a +34829c6,80 +34829c7,21 +34829c8,2 34829c9,20 -34829cb,3 -34829cc,34 -34829cd,a -34829cf,1 -34829d0,a5 -34829d1,a -34829d4,34 -34829d5,5 -34829d7,41 -34829d8,c -34829d9,1 -34829da,bf -34829db,73 -34829dc,2 -34829dd,20 -34829de,20 -34829df,21 -34829e0,92 -34829e1,5 -34829e3,3 -34829e4,2 -34829e5,20 -34829e6,20 -34829e7,21 -34829e8,c -34829e9,3 -34829ea,73 -34829eb,85 -34829ee,30 -34829ef,21 -34829f0,8f -34829f1,bf -34829f3,10 -34829f4,8f -34829f5,b0 -34829f7,14 -34829f8,27 -34829f9,bd -34829fb,20 -34829fc,3 -34829fd,e0 -34829ff,8 +34829ca,20 +34829cb,21 +34829cc,92 +34829cd,5 +34829cf,3 +34829d0,c +34829d1,3 +34829d2,73 +34829d3,85 +34829d6,30 +34829d7,21 +34829d8,82 +34829d9,5 +34829dc,3c +34829dd,8 +34829de,80 +34829df,40 +34829e0,25 +34829e1,8 +34829e2,20 +34829e4,85 +34829e5,9 +34829e7,2 +34829e8,11 +34829e9,20 +34829eb,3 +34829ec,34 +34829ed,a +34829ef,1 +34829f0,a5 +34829f1,a +34829f4,34 +34829f5,5 +34829f7,41 +34829f8,c +34829f9,1 +34829fa,bf +34829fb,73 +34829fc,2 +34829fd,20 +34829fe,20 +34829ff,21 +3482a00,92 +3482a01,5 +3482a03,3 3482a04,8f -3482a05,a6 -3482a07,30 -3482a08,84 -3482a09,c5 -3482a0b,4 -3482a0c,8 -3482a0d,10 -3482a0e,a -3482a0f,89 -3482a14,8f -3482a15,b9 -3482a17,2c -3482a18,87 -3482a19,25 -3482a1b,4 -3482a1c,8 -3482a1d,10 -3482a1e,a -3482a1f,89 -3482a24,3c -3482a25,a -3482a26,80 -3482a27,40 -3482a28,25 -3482a29,4a -3482a2a,20 -3482a2b,8 -3482a2c,8d -3482a2d,4b -3482a2f,c -3482a30,11 -3482a31,60 -3482a33,2 -3482a38,95 -3482a39,45 -3482a3b,4 -3482a3c,3c -3482a3d,a -3482a3e,80 -3482a3f,1e -3482a40,25 -3482a41,4a -3482a42,89 -3482a43,84 -3482a44,a5 -3482a45,40 -3482a48,3c -3482a49,9 -3482a4a,80 -3482a4b,40 -3482a4c,25 -3482a4d,29 -3482a4e,20 -3482a4f,18 -3482a50,81 -3482a51,2a -3482a53,3 -3482a54,5 -3482a55,40 -3482a57,b -3482a58,1 -3482a59,2a -3482a5a,48 -3482a5b,20 -3482a5c,81 -3482a5d,28 -3482a60,34 -3482a61,a -3482a63,7f -3482a64,15 -3482a65,a -3482a67,6 -3482a6c,3c -3482a6d,a -3482a6e,80 -3482a6f,12 -3482a70,25 -3482a71,4a -3482a72,a5 -3482a73,d0 -3482a74,85 -3482a75,48 -3482a77,90 -3482a78,21 -3482a79,8 -3482a7b,1 -3482a7c,a5 -3482a7d,48 -3482a7f,90 -3482a80,a1 -3482a81,20 -3482a84,3 -3482a85,e0 -3482a87,8 -3482a8c,3c +3482a05,bf +3482a07,10 +3482a08,8f +3482a09,b0 +3482a0b,14 +3482a0c,27 +3482a0d,bd +3482a0f,20 +3482a10,3 +3482a11,e0 +3482a13,8 +3482a18,8f +3482a19,a6 +3482a1b,30 +3482a1c,84 +3482a1d,c5 +3482a1f,4 +3482a20,8 +3482a21,10 +3482a22,a +3482a23,8e +3482a28,8f +3482a29,b9 +3482a2b,2c +3482a2c,87 +3482a2d,25 +3482a2f,4 +3482a30,8 +3482a31,10 +3482a32,a +3482a33,8e +3482a38,3c +3482a39,a +3482a3a,80 +3482a3b,40 +3482a3c,25 +3482a3d,4a +3482a3e,20 +3482a3f,8 +3482a40,8d +3482a41,4b +3482a43,c +3482a44,11 +3482a45,60 +3482a47,2 +3482a4c,95 +3482a4d,45 +3482a4f,4 +3482a50,3c +3482a51,a +3482a52,80 +3482a53,1e +3482a54,25 +3482a55,4a +3482a56,89 +3482a57,84 +3482a58,a5 +3482a59,40 +3482a5c,3c +3482a5d,9 +3482a5e,80 +3482a5f,40 +3482a60,25 +3482a61,29 +3482a62,20 +3482a63,18 +3482a64,81 +3482a65,2a +3482a67,3 +3482a68,5 +3482a69,40 +3482a6b,b +3482a6c,1 +3482a6d,2a +3482a6e,48 +3482a6f,20 +3482a70,81 +3482a71,28 +3482a74,34 +3482a75,a +3482a77,7f +3482a78,15 +3482a79,a +3482a7b,6 +3482a80,3c +3482a81,a +3482a82,80 +3482a83,12 +3482a84,25 +3482a85,4a +3482a86,a5 +3482a87,d0 +3482a88,85 +3482a89,48 +3482a8b,90 +3482a8c,21 3482a8d,8 -3482a8e,80 -3482a8f,40 -3482a90,25 -3482a91,8 -3482a92,20 -3482a93,8 -3482a94,8d -3482a95,9 -3482a97,c -3482a98,11 -3482a99,20 -3482a9b,2 -3482aa0,81 -3482aa1,3 -3482aa3,2 -3482aa5,3 -3482aa6,f -3482aa7,c3 -3482aa9,61 -3482aaa,40 -3482aab,26 -3482aac,1 -3482aad,1 -3482aae,40 -3482aaf,23 -3482ab0,a0 -3482ab1,88 -3482ab2,8 -3482ab3,52 -3482ab4,3 -3482ab5,e0 -3482ab7,8 -3482abc,90 -3482abd,45 -3482abf,3 -3482ac0,3c -3482ac1,8 -3482ac2,80 -3482ac3,40 -3482ac4,25 -3482ac5,8 -3482ac6,20 -3482ac7,8 -3482ac8,8d -3482ac9,9 -3482acb,c -3482acc,11 -3482acd,20 -3482acf,2 -3482ad4,91 -3482ad5,5 -3482ad7,3 -3482ad8,3 -3482ad9,e0 +3482a8f,1 +3482a90,a5 +3482a91,48 +3482a93,90 +3482a94,a1 +3482a95,20 +3482a98,3 +3482a99,e0 +3482a9b,8 +3482aa0,3c +3482aa1,8 +3482aa2,80 +3482aa3,40 +3482aa4,25 +3482aa5,8 +3482aa6,20 +3482aa7,8 +3482aa8,8d +3482aa9,9 +3482aab,c +3482aac,11 +3482aad,20 +3482aaf,2 +3482ab4,81 +3482ab5,3 +3482ab7,2 +3482ab9,3 +3482aba,f +3482abb,c3 +3482abd,61 +3482abe,40 +3482abf,26 +3482ac0,1 +3482ac1,1 +3482ac2,40 +3482ac3,23 +3482ac4,a0 +3482ac5,88 +3482ac6,8 +3482ac7,52 +3482ac8,3 +3482ac9,e0 +3482acb,8 +3482ad0,90 +3482ad1,45 +3482ad3,3 +3482ad4,3c +3482ad5,8 +3482ad6,80 +3482ad7,40 +3482ad8,25 +3482ad9,8 +3482ada,20 3482adb,8 -3482ae0,8f -3482ae1,a2 -3482ae3,24 -3482ae4,90 -3482ae5,45 -3482ae8,3c -3482ae9,8 -3482aea,80 -3482aeb,40 -3482aec,25 -3482aed,8 -3482aee,20 -3482af0,85 -3482af1,9 -3482af3,2 -3482af4,11 -3482af5,20 -3482af7,4 -3482af8,34 -3482af9,a -3482afb,1 -3482afc,a5 -3482afd,a -3482b00,10 -3482b03,18 -3482b04,34 -3482b05,5 -3482b07,41 -3482b08,3c -3482b09,8 -3482b0a,80 -3482b0b,40 -3482b0c,25 -3482b0d,8 -3482b0e,20 -3482b0f,8 -3482b10,8d -3482b11,9 -3482b13,c -3482b14,11 -3482b15,20 -3482b17,13 -3482b1c,91 -3482b1d,5 -3482b1f,1 -3482b20,af -3482b21,a4 -3482b24,af -3482b25,a5 -3482b27,4 -3482b28,af -3482b29,a6 -3482b2b,8 -3482b2c,27 -3482b2d,bd -3482b2e,ff -3482b2f,e8 -3482b30,af -3482b31,bf -3482b33,10 -3482b34,3c -3482b35,4 -3482b36,80 -3482b37,12 -3482b38,24 -3482b39,84 -3482b3a,a5 -3482b3b,d0 -3482b3c,91 -3482b3d,5 -3482b3f,6 -3482b40,91 -3482b41,6 -3482b43,7 -3482b44,8d -3482b45,9 -3482b47,8 -3482b48,1 -3482b49,20 -3482b4a,f8 -3482b4b,9 -3482b50,8f -3482b51,bf -3482b53,10 -3482b54,27 -3482b55,bd -3482b57,18 -3482b58,8f -3482b59,a4 -3482b5c,8f -3482b5d,a5 -3482b5f,4 -3482b60,8f -3482b61,a6 -3482b63,8 -3482b64,3 -3482b65,e0 -3482b67,8 -3482b6c,a0 -3482b6d,e6 -3482b6e,4 -3482b6f,24 -3482b70,27 -3482b71,bd -3482b72,ff -3482b73,e0 -3482b74,af -3482b75,a2 -3482b77,10 -3482b78,af -3482b79,a3 -3482b7b,14 -3482b7c,af -3482b7d,bf -3482b7f,18 -3482b80,c -3482b81,10 -3482b82,a -3482b83,e8 -3482b88,8f +3482adc,8d +3482add,9 +3482adf,c +3482ae0,11 +3482ae1,20 +3482ae3,2 +3482ae8,91 +3482ae9,5 +3482aeb,3 +3482aec,3 +3482aed,e0 +3482aef,8 +3482af4,8f +3482af5,a2 +3482af7,24 +3482af8,90 +3482af9,45 +3482afc,3c +3482afd,8 +3482afe,80 +3482aff,40 +3482b00,25 +3482b01,8 +3482b02,20 +3482b04,85 +3482b05,9 +3482b07,2 +3482b08,11 +3482b09,20 +3482b0b,4 +3482b0c,34 +3482b0d,a +3482b0f,1 +3482b10,a5 +3482b11,a +3482b14,10 +3482b17,18 +3482b18,34 +3482b19,5 +3482b1b,41 +3482b1c,3c +3482b1d,8 +3482b1e,80 +3482b1f,40 +3482b20,25 +3482b21,8 +3482b22,20 +3482b23,8 +3482b24,8d +3482b25,9 +3482b27,c +3482b28,11 +3482b29,20 +3482b2b,13 +3482b30,91 +3482b31,5 +3482b33,1 +3482b34,af +3482b35,a4 +3482b38,af +3482b39,a5 +3482b3b,4 +3482b3c,af +3482b3d,a6 +3482b3f,8 +3482b40,27 +3482b41,bd +3482b42,ff +3482b43,e8 +3482b44,af +3482b45,bf +3482b47,10 +3482b48,3c +3482b49,4 +3482b4a,80 +3482b4b,12 +3482b4c,24 +3482b4d,84 +3482b4e,a5 +3482b4f,d0 +3482b50,91 +3482b51,5 +3482b53,6 +3482b54,91 +3482b55,6 +3482b57,7 +3482b58,8d +3482b59,9 +3482b5b,8 +3482b5c,1 +3482b5d,20 +3482b5e,f8 +3482b5f,9 +3482b64,8f +3482b65,bf +3482b67,10 +3482b68,27 +3482b69,bd +3482b6b,18 +3482b6c,8f +3482b6d,a4 +3482b70,8f +3482b71,a5 +3482b73,4 +3482b74,8f +3482b75,a6 +3482b77,8 +3482b78,3 +3482b79,e0 +3482b7b,8 +3482b80,a0 +3482b81,e6 +3482b82,4 +3482b83,24 +3482b84,27 +3482b85,bd +3482b86,ff +3482b87,e0 +3482b88,af 3482b89,a2 3482b8b,10 -3482b8c,8f +3482b8c,af 3482b8d,a3 3482b8f,14 -3482b90,8f +3482b90,af 3482b91,bf 3482b93,18 -3482b94,27 -3482b95,bd -3482b97,20 -3482b98,3 -3482b99,e0 -3482b9b,8 -3482ba0,27 -3482ba1,bd -3482ba2,ff -3482ba3,e8 -3482ba4,af +3482b94,c +3482b95,10 +3482b96,a +3482b97,ed +3482b9c,8f +3482b9d,a2 +3482b9f,10 +3482ba0,8f +3482ba1,a3 +3482ba3,14 +3482ba4,8f 3482ba5,bf -3482ba7,10 -3482ba8,3c -3482ba9,8 -3482baa,80 -3482bab,40 -3482bac,25 -3482bad,8 -3482bae,20 +3482ba7,18 +3482ba8,27 +3482ba9,bd +3482bab,20 +3482bac,3 +3482bad,e0 3482baf,8 -3482bb0,ad -3482bb4,ad -3482bb7,4 -3482bb8,ad -3482bbb,8 -3482bbc,ad -3482bbf,c -3482bc0,3c +3482bb4,27 +3482bb5,bd +3482bb6,ff +3482bb7,e8 +3482bb8,af +3482bb9,bf +3482bbb,10 +3482bbc,3c +3482bbd,8 +3482bbe,80 +3482bbf,40 +3482bc0,25 3482bc1,8 -3482bc2,80 -3482bc3,1e -3482bc4,25 -3482bc5,8 -3482bc6,aa -3482bc7,30 -3482bc8,81 -3482bc9,9 -3482bca,4 -3482bcb,24 -3482bcc,11 -3482bcd,20 -3482bcf,2a -3482bd5,9 -3482bd6,f -3482bd7,c3 -3482bd8,1 -3482bd9,21 -3482bda,20 -3482bdb,26 -3482bdd,81 -3482bde,20 -3482bdf,23 -3482be0,8d -3482be1,5 -3482be2,4 -3482be3,28 -3482be4,c -3482be5,10 -3482be6,b -3482be7,22 -3482bec,4 -3482bed,40 -3482bef,22 -3482bf4,34 -3482bf5,44 +3482bc2,20 +3482bc3,8 +3482bc4,ad +3482bc8,ad +3482bcb,4 +3482bcc,ad +3482bcf,8 +3482bd0,ad +3482bd3,c +3482bd4,3c +3482bd5,8 +3482bd6,80 +3482bd7,1e +3482bd8,25 +3482bd9,8 +3482bda,aa +3482bdb,30 +3482bdc,81 +3482bdd,9 +3482bde,4 +3482bdf,24 +3482be0,11 +3482be1,20 +3482be3,2a +3482be9,9 +3482bea,f +3482beb,c3 +3482bec,1 +3482bed,21 +3482bee,20 +3482bef,26 +3482bf1,81 +3482bf2,20 +3482bf3,23 +3482bf4,8d +3482bf5,5 +3482bf6,4 +3482bf7,28 3482bf8,c 3482bf9,10 3482bfa,b -3482bfb,9d -3482c00,10 -3482c01,60 -3482c03,c -3482c08,3c -3482c09,8 -3482c0a,80 -3482c0b,40 -3482c0c,25 -3482c0d,8 -3482c0e,20 -3482c0f,8 -3482c10,8c -3482c11,69 -3482c14,ad -3482c15,9 -3482c18,8c -3482c19,69 -3482c1b,4 -3482c1c,ad -3482c1d,9 -3482c1f,4 -3482c20,8c -3482c21,69 +3482bfb,27 +3482c00,4 +3482c01,40 +3482c03,22 +3482c08,34 +3482c09,44 +3482c0c,c +3482c0d,10 +3482c0e,b +3482c0f,a2 +3482c14,10 +3482c15,60 +3482c17,c +3482c1c,3c +3482c1d,8 +3482c1e,80 +3482c1f,40 +3482c20,25 +3482c21,8 +3482c22,20 3482c23,8 -3482c24,ad -3482c25,9 -3482c27,8 -3482c28,34 +3482c24,8c +3482c25,69 +3482c28,ad 3482c29,9 -3482c2b,1 -3482c2c,ad -3482c2d,9 -3482c2f,c -3482c30,90 -3482c31,62 -3482c34,3c -3482c35,8 -3482c36,80 -3482c37,1e -3482c38,25 -3482c39,8 -3482c3a,aa -3482c3b,30 -3482c3c,8d +3482c2c,8c +3482c2d,69 +3482c2f,4 +3482c30,ad +3482c31,9 +3482c33,4 +3482c34,8c +3482c35,69 +3482c37,8 +3482c38,ad +3482c39,9 +3482c3b,8 +3482c3c,34 3482c3d,9 -3482c3e,4 -3482c3f,28 -3482c40,95 -3482c41,2a -3482c44,34 -3482c45,1 -3482c47,a -3482c48,15 -3482c49,41 -3482c4b,6 -3482c50,95 -3482c51,2a -3482c53,1c -3482c54,31 -3482c55,4a -3482c56,f0 -3482c57,1f -3482c59,2 -3482c5a,59 -3482c5b,40 -3482c5c,1 -3482c5d,4b -3482c5e,50 -3482c5f,25 -3482c60,a5 -3482c61,2a -3482c63,1c -3482c64,81 -3482c65,9 -3482c66,4 -3482c67,24 -3482c68,5 -3482c69,21 -3482c6b,2 -3482c71,2 -3482c72,10 -3482c73,23 -3482c74,a1 -3482c75,2 -3482c76,4 -3482c77,24 -3482c78,8f -3482c79,bf -3482c7b,10 -3482c7c,27 -3482c7d,bd -3482c7f,18 -3482c80,3 -3482c81,e0 -3482c83,8 -3482c88,27 -3482c89,bd -3482c8a,ff -3482c8b,e8 -3482c8c,af +3482c3f,1 +3482c40,ad +3482c41,9 +3482c43,c +3482c44,90 +3482c45,62 +3482c48,3c +3482c49,8 +3482c4a,80 +3482c4b,1e +3482c4c,25 +3482c4d,8 +3482c4e,aa +3482c4f,30 +3482c50,8d +3482c51,9 +3482c52,4 +3482c53,28 +3482c54,95 +3482c55,2a +3482c58,34 +3482c59,1 +3482c5b,a +3482c5c,15 +3482c5d,41 +3482c5f,6 +3482c64,95 +3482c65,2a +3482c67,1c +3482c68,31 +3482c69,4a +3482c6a,f0 +3482c6b,1f +3482c6d,2 +3482c6e,59 +3482c6f,40 +3482c70,1 +3482c71,4b +3482c72,50 +3482c73,25 +3482c74,a5 +3482c75,2a +3482c77,1c +3482c78,81 +3482c79,9 +3482c7a,4 +3482c7b,24 +3482c7c,5 +3482c7d,21 +3482c7f,2 +3482c85,2 +3482c86,10 +3482c87,23 +3482c88,a1 +3482c89,2 +3482c8a,4 +3482c8b,24 +3482c8c,8f 3482c8d,bf 3482c8f,10 -3482c90,c -3482c91,10 -3482c92,b -3482c93,30 -3482c98,24 -3482c99,1 -3482c9a,ff -3482c9b,ff -3482c9c,10 -3482c9d,41 -3482c9f,4 -3482ca4,34 -3482ca5,44 -3482ca8,c -3482ca9,10 -3482caa,b -3482cab,6e -3482cb0,8f -3482cb1,bf -3482cb3,10 -3482cb4,27 -3482cb5,bd -3482cb7,18 -3482cb8,3 -3482cb9,e0 -3482cbb,8 -3482cc0,3c -3482cc1,2 -3482cc2,80 -3482cc3,1d -3482cc4,24 -3482cc5,42 -3482cc6,84 -3482cc7,a0 -3482cc8,94 -3482cc9,42 -3482ccb,a4 -3482ccc,34 -3482ccd,8 -3482cd0,34 -3482cd1,89 -3482cd4,94 -3482cd5,aa -3482cd8,34 -3482cd9,1 -3482cda,1 -3482cdb,9c -3482cdc,15 -3482cdd,41 -3482cdf,8 +3482c90,27 +3482c91,bd +3482c93,18 +3482c94,3 +3482c95,e0 +3482c97,8 +3482c9c,27 +3482c9d,bd +3482c9e,ff +3482c9f,e8 +3482ca0,af +3482ca1,bf +3482ca3,10 +3482ca4,c +3482ca5,10 +3482ca6,b +3482ca7,35 +3482cac,24 +3482cad,1 +3482cae,ff +3482caf,ff +3482cb0,10 +3482cb1,41 +3482cb3,4 +3482cb8,34 +3482cb9,44 +3482cbc,c +3482cbd,10 +3482cbe,b +3482cbf,73 +3482cc4,8f +3482cc5,bf +3482cc7,10 +3482cc8,27 +3482cc9,bd +3482ccb,18 +3482ccc,3 +3482ccd,e0 +3482ccf,8 +3482cd4,3c +3482cd5,2 +3482cd6,80 +3482cd7,1d +3482cd8,24 +3482cd9,42 +3482cda,84 +3482cdb,a0 +3482cdc,94 +3482cdd,42 +3482cdf,a4 +3482ce0,34 +3482ce1,8 3482ce4,34 -3482ce5,8 -3482ce7,3 +3482ce5,89 3482ce8,94 -3482ce9,ab -3482ceb,1c -3482cec,31 -3482ced,69 -3482cef,ff -3482cf0,31 -3482cf1,62 -3482cf2,1f -3482cf5,2 -3482cf6,12 -3482cf7,2 -3482cf8,10 -3482cfb,1f -3482d00,34 -3482d01,1 -3482d03,a -3482d04,15 -3482d05,41 -3482d07,e -3482d0c,94 -3482d0d,ab -3482d0f,1c -3482d10,34 -3482d11,1 -3482d13,10 -3482d14,14 -3482d15,41 -3482d17,8 -3482d1c,31 -3482d1d,6c -3482d1e,f -3482d1f,e0 -3482d20,34 -3482d21,1 -3482d22,e -3482d23,a0 -3482d24,15 -3482d25,81 -3482d27,4 -3482d2c,24 -3482d2d,2 -3482d2e,ff -3482d2f,ff -3482d30,10 -3482d33,1f -3482d38,34 -3482d39,8 -3482d3b,1 -3482d3c,31 -3482d3d,69 -3482d3f,1f -3482d40,34 -3482d41,1 -3482d43,15 -3482d44,15 -3482d45,41 -3482d47,c +3482ce9,aa +3482cec,34 +3482ced,1 +3482cee,1 +3482cef,9c +3482cf0,15 +3482cf1,41 +3482cf3,8 +3482cf8,34 +3482cf9,8 +3482cfb,3 +3482cfc,94 +3482cfd,ab +3482cff,1c +3482d00,31 +3482d01,69 +3482d03,ff +3482d04,31 +3482d05,62 +3482d06,1f +3482d09,2 +3482d0a,12 +3482d0b,2 +3482d0c,10 +3482d0f,1f +3482d14,34 +3482d15,1 +3482d17,a +3482d18,15 +3482d19,41 +3482d1b,e +3482d20,94 +3482d21,ab +3482d23,1c +3482d24,34 +3482d25,1 +3482d27,10 +3482d28,14 +3482d29,41 +3482d2b,8 +3482d30,31 +3482d31,6c +3482d32,f +3482d33,e0 +3482d34,34 +3482d35,1 +3482d36,e +3482d37,a0 +3482d38,15 +3482d39,81 +3482d3b,4 +3482d40,24 +3482d41,2 +3482d42,ff +3482d43,ff +3482d44,10 +3482d47,1f 3482d4c,34 -3482d4d,1 -3482d4f,3e -3482d50,10 -3482d51,81 -3482d53,7 -3482d58,34 -3482d59,1 -3482d5b,42 -3482d5c,10 -3482d5d,81 -3482d5f,4 -3482d64,24 -3482d65,2 -3482d66,ff -3482d67,ff -3482d68,10 -3482d6b,11 -3482d70,34 -3482d71,8 -3482d73,2 -3482d74,90 -3482d75,a9 -3482d76,1 -3482d77,41 -3482d78,34 -3482d79,1 -3482d7a,1 -3482d7b,1a -3482d7c,15 -3482d7d,41 -3482d7f,8 +3482d4d,8 +3482d4f,1 +3482d50,31 +3482d51,69 +3482d53,1f +3482d54,34 +3482d55,1 +3482d57,15 +3482d58,15 +3482d59,41 +3482d5b,c +3482d60,34 +3482d61,1 +3482d63,3e +3482d64,10 +3482d65,81 +3482d67,7 +3482d6c,34 +3482d6d,1 +3482d6f,42 +3482d70,10 +3482d71,81 +3482d73,4 +3482d78,24 +3482d79,2 +3482d7a,ff +3482d7b,ff +3482d7c,10 +3482d7f,11 3482d84,34 -3482d85,1 -3482d87,3e -3482d88,14 -3482d89,41 -3482d8b,5 -3482d90,34 -3482d91,8 -3482d93,4 -3482d94,3c -3482d95,b -3482d96,80 -3482d97,12 -3482d98,25 -3482d99,6b -3482d9a,a5 -3482d9b,d0 -3482d9c,81 -3482d9d,62 -3482d9e,13 -3482d9f,97 -3482da1,2 -3482da2,12 -3482da5,48 -3482da6,10 -3482da7,25 -3482da9,2 -3482daa,12 -3482dad,49 -3482dae,10 -3482daf,25 -3482db0,3 -3482db1,e0 -3482db3,8 -3482db8,24 -3482db9,2 -3482dba,ff -3482dbb,ff -3482dbc,3c -3482dbd,8 -3482dbe,80 -3482dbf,40 -3482dc0,25 -3482dc1,8 -3482dc2,1c -3482dc4,91 -3482dc5,9 -3482dc8,3c -3482dc9,8 -3482dca,80 -3482dcb,40 -3482dcc,25 -3482dcd,8 -3482dce,1c -3482dcf,2 -3482dd0,a1 -3482dd1,9 -3482dd4,30 -3482dd5,89 -3482dd7,ff -3482dd8,34 -3482dd9,1 -3482ddb,7f -3482ddc,15 -3482ddd,21 -3482ddf,7 -3482de4,3c -3482de5,8 -3482de6,80 -3482de7,40 -3482de8,25 -3482de9,8 -3482dea,1c -3482dec,91 -3482ded,b -3482df0,91 -3482df1,2 -3482df3,1 -3482df4,10 -3482df7,10 -3482dfc,3c +3482d85,8 +3482d87,2 +3482d88,90 +3482d89,a9 +3482d8a,1 +3482d8b,41 +3482d8c,34 +3482d8d,1 +3482d8e,1 +3482d8f,1a +3482d90,15 +3482d91,41 +3482d93,8 +3482d98,34 +3482d99,1 +3482d9b,3e +3482d9c,14 +3482d9d,41 +3482d9f,5 +3482da4,34 +3482da5,8 +3482da7,4 +3482da8,3c +3482da9,b +3482daa,80 +3482dab,12 +3482dac,25 +3482dad,6b +3482dae,a5 +3482daf,d0 +3482db0,81 +3482db1,62 +3482db2,13 +3482db3,97 +3482db5,2 +3482db6,12 +3482db9,48 +3482dba,10 +3482dbb,25 +3482dbd,2 +3482dbe,12 +3482dc1,49 +3482dc2,10 +3482dc3,25 +3482dc4,3 +3482dc5,e0 +3482dc7,8 +3482dcc,24 +3482dcd,2 +3482dce,ff +3482dcf,ff +3482dd0,3c +3482dd1,8 +3482dd2,80 +3482dd3,40 +3482dd4,25 +3482dd5,8 +3482dd6,1c +3482dd8,91 +3482dd9,9 +3482ddc,3c +3482ddd,8 +3482dde,80 +3482ddf,40 +3482de0,25 +3482de1,8 +3482de2,1c +3482de3,2 +3482de4,a1 +3482de5,9 +3482de8,30 +3482de9,89 +3482deb,ff +3482dec,34 +3482ded,1 +3482def,7f +3482df0,15 +3482df1,21 +3482df3,7 +3482df8,3c +3482df9,8 +3482dfa,80 +3482dfb,40 +3482dfc,25 3482dfd,8 -3482dfe,80 -3482dff,40 -3482e00,25 -3482e01,8 -3482e02,f -3482e03,fc -3482e04,25 -3482e05,8 -3482e07,4 -3482e08,8d -3482e09,9 -3482e0c,11 -3482e0d,20 -3482e0f,17 -3482e15,9 -3482e16,52 -3482e17,2 -3482e18,31 -3482e19,4b -3482e1a,f8 -3482e1d,b -3482e1e,5a -3482e1f,c2 -3482e20,3c -3482e21,c -3482e22,ff -3482e23,ff -3482e24,35 -3482e25,8c -3482e26,7 -3482e27,ff -3482e28,1 -3482e29,4c -3482e2a,50 -3482e2b,24 -3482e2c,15 -3482e2d,44 -3482e2e,ff -3482e2f,f5 -3482e34,31 -3482e35,22 +3482dfe,1c +3482e00,91 +3482e01,b +3482e04,91 +3482e05,2 +3482e07,1 +3482e08,10 +3482e0b,10 +3482e10,3c +3482e11,8 +3482e12,80 +3482e13,40 +3482e14,25 +3482e15,8 +3482e16,f +3482e17,fc +3482e18,25 +3482e19,8 +3482e1b,4 +3482e1c,8d +3482e1d,9 +3482e20,11 +3482e21,20 +3482e23,17 +3482e29,9 +3482e2a,52 +3482e2b,2 +3482e2c,31 +3482e2d,4b +3482e2e,f8 +3482e31,b +3482e32,5a +3482e33,c2 +3482e34,3c +3482e35,c +3482e36,ff 3482e37,ff -3482e38,3c -3482e39,8 -3482e3a,80 -3482e3b,40 -3482e3c,25 -3482e3d,8 -3482e3e,1c -3482e3f,2 -3482e40,a1 -3482e41,b -3482e44,3c -3482e45,9 -3482e46,80 -3482e47,40 -3482e48,25 -3482e49,29 -3482e4a,20 +3482e38,35 +3482e39,8c +3482e3a,7 +3482e3b,ff +3482e3c,1 +3482e3d,4c +3482e3e,50 +3482e3f,24 +3482e40,15 +3482e41,44 +3482e42,ff +3482e43,f5 +3482e48,31 +3482e49,22 +3482e4b,ff 3482e4c,3c -3482e4d,c +3482e4d,8 3482e4e,80 3482e4f,40 3482e50,25 -3482e51,8c +3482e51,8 3482e52,1c -3482e54,91 -3482e55,8c -3482e58,11 -3482e59,6c -3482e5b,4 -3482e5c,a5 -3482e5d,20 -3482e5f,2 -3482e60,a1 -3482e61,2b -3482e63,2 -3482e64,a1 -3482e65,22 -3482e67,3 -3482e68,ad -3482e69,24 -3482e6b,4 -3482e6c,3 -3482e6d,e0 -3482e6f,8 -3482e74,27 -3482e75,bd -3482e76,ff -3482e77,e0 -3482e78,af -3482e79,b0 -3482e7b,10 -3482e7c,af -3482e7d,b1 -3482e7f,14 -3482e80,af -3482e81,bf -3482e83,18 -3482e84,34 -3482e85,82 -3482e88,34 -3482e89,50 -3482e8c,26 -3482e8d,8 -3482e8e,ff -3482e8f,80 -3482e90,5 -3482e93,12 -3482e98,3c -3482e99,11 -3482e9a,80 -3482e9b,40 -3482e9c,26 -3482e9d,31 -3482e9e,20 -3482e9f,50 -3482ea0,34 -3482ea1,9 -3482ea3,10 -3482ea4,1 -3482ea5,9 -3482ea7,18 -3482eaa,40 -3482eab,12 -3482eac,2 -3482ead,28 -3482eae,88 -3482eaf,21 -3482eb0,3c -3482eb1,4 -3482eb2,80 -3482eb3,12 -3482eb4,24 -3482eb5,84 -3482eb6,a5 -3482eb7,d0 -3482eb8,36 -3482eb9,5 -3482ebc,8e -3482ebd,28 -3482ebf,c -3482ec0,1 -3482ec2,f8 -3482ec3,9 -3482ec8,14 -3482ec9,50 -3482eca,ff -3482ecb,ef -3482ed0,36 -3482ed1,23 -3482ed4,10 -3482ed7,2 -3482edc,34 -3482edd,3 -3482ee0,8f -3482ee1,b0 -3482ee3,10 -3482ee4,8f -3482ee5,b1 -3482ee7,14 -3482ee8,8f -3482ee9,bf -3482eeb,18 -3482eec,27 -3482eed,bd -3482eef,20 -3482ef0,3 -3482ef1,e0 -3482ef3,8 -3482ef8,8c -3482ef9,88 -3482efa,1d -3482efb,2c -3482efc,34 -3482efd,9 -3482eff,1 -3482f01,9 -3482f02,4e -3482f04,1 -3482f05,9 -3482f06,10 -3482f07,24 -3482f08,10 -3482f09,40 -3482f0b,24 -3482f10,94 -3482f11,ca -3482f12,2 -3482f13,dc -3482f14,3c -3482f15,b -3482f16,80 -3482f17,12 -3482f18,25 -3482f19,6b -3482f1a,a5 -3482f1b,d0 -3482f1c,94 -3482f1d,8c -3482f1f,a4 -3482f20,34 -3482f21,1 -3482f23,3d -3482f24,11 -3482f25,81 -3482f27,a -3482f2d,8a -3482f2e,60 -3482f2f,21 -3482f30,91 -3482f31,8d -3482f32,1d -3482f33,28 -3482f34,15 -3482f35,a0 -3482f37,19 -3482f3c,34 -3482f3d,d -3482f3f,1 -3482f40,a1 -3482f41,8d -3482f42,1d -3482f43,28 -3482f44,25 -3482f45,4a -3482f47,3 -3482f48,10 -3482f4b,9 +3482e53,2 +3482e54,a1 +3482e55,b +3482e58,3c +3482e59,9 +3482e5a,80 +3482e5b,40 +3482e5c,25 +3482e5d,29 +3482e5e,20 +3482e60,3c +3482e61,c +3482e62,80 +3482e63,40 +3482e64,25 +3482e65,8c +3482e66,1c +3482e68,91 +3482e69,8c +3482e6c,11 +3482e6d,6c +3482e6f,4 +3482e70,a5 +3482e71,20 +3482e73,2 +3482e74,a1 +3482e75,2b +3482e77,2 +3482e78,a1 +3482e79,22 +3482e7b,3 +3482e7c,ad +3482e7d,24 +3482e7f,4 +3482e80,3 +3482e81,e0 +3482e83,8 +3482e88,27 +3482e89,bd +3482e8a,ff +3482e8b,e0 +3482e8c,af +3482e8d,b0 +3482e8f,10 +3482e90,af +3482e91,b1 +3482e93,14 +3482e94,af +3482e95,bf +3482e97,18 +3482e98,34 +3482e99,82 +3482e9c,34 +3482e9d,50 +3482ea0,26 +3482ea1,8 +3482ea2,ff +3482ea3,80 +3482ea4,5 +3482ea7,12 +3482eac,3c +3482ead,11 +3482eae,80 +3482eaf,40 +3482eb0,26 +3482eb1,31 +3482eb2,20 +3482eb3,50 +3482eb4,34 +3482eb5,9 +3482eb7,10 +3482eb8,1 +3482eb9,9 +3482ebb,18 +3482ebe,40 +3482ebf,12 +3482ec0,2 +3482ec1,28 +3482ec2,88 +3482ec3,21 +3482ec4,3c +3482ec5,4 +3482ec6,80 +3482ec7,12 +3482ec8,24 +3482ec9,84 +3482eca,a5 +3482ecb,d0 +3482ecc,36 +3482ecd,5 +3482ed0,8e +3482ed1,28 +3482ed3,c +3482ed4,1 +3482ed6,f8 +3482ed7,9 +3482edc,14 +3482edd,50 +3482ede,ff +3482edf,ef +3482ee4,36 +3482ee5,23 +3482ee8,10 +3482eeb,2 +3482ef0,34 +3482ef1,3 +3482ef4,8f +3482ef5,b0 +3482ef7,10 +3482ef8,8f +3482ef9,b1 +3482efb,14 +3482efc,8f +3482efd,bf +3482eff,18 +3482f00,27 +3482f01,bd +3482f03,20 +3482f04,3 +3482f05,e0 +3482f07,8 +3482f0c,8c +3482f0d,88 +3482f0e,1d +3482f0f,2c +3482f10,34 +3482f11,9 +3482f13,1 +3482f15,9 +3482f16,4e +3482f18,1 +3482f19,9 +3482f1a,10 +3482f1b,24 +3482f1c,10 +3482f1d,40 +3482f1f,24 +3482f24,94 +3482f25,ca +3482f26,2 +3482f27,dc +3482f28,3c +3482f29,b +3482f2a,80 +3482f2b,12 +3482f2c,25 +3482f2d,6b +3482f2e,a5 +3482f2f,d0 +3482f30,94 +3482f31,8c +3482f33,a4 +3482f34,34 +3482f35,1 +3482f37,3d +3482f38,11 +3482f39,81 +3482f3b,a +3482f41,8a +3482f42,60 +3482f43,21 +3482f44,91 +3482f45,8d +3482f46,1d +3482f47,28 +3482f48,15 +3482f49,a0 +3482f4b,19 3482f50,34 -3482f51,c +3482f51,d 3482f53,1 -3482f54,1 -3482f55,4c -3482f56,60 -3482f57,4 -3482f58,91 -3482f59,6d -3482f5a,e -3482f5b,f2 -3482f5c,1 -3482f5d,ac -3482f5e,70 -3482f5f,24 -3482f60,15 -3482f61,c0 -3482f63,e +3482f54,a1 +3482f55,8d +3482f56,1d +3482f57,28 +3482f58,25 +3482f59,4a +3482f5b,3 +3482f5c,10 +3482f5f,9 +3482f64,34 +3482f65,c +3482f67,1 3482f68,1 -3482f69,ac -3482f6a,70 -3482f6b,25 -3482f6c,a1 -3482f6d,6e +3482f69,4c +3482f6a,60 +3482f6b,4 +3482f6c,91 +3482f6d,6d 3482f6e,e 3482f6f,f2 3482f70,1 -3482f71,29 -3482f72,48 -3482f73,27 -3482f74,1 -3482f75,9 -3482f76,40 -3482f77,24 -3482f78,ac -3482f79,88 -3482f7a,1d -3482f7b,2c -3482f7c,3c -3482f7d,8 -3482f7e,80 -3482f7f,40 -3482f80,25 -3482f81,8 -3482f82,1d -3482f83,5 +3482f71,ac +3482f72,70 +3482f73,24 +3482f74,15 +3482f75,c0 +3482f77,e +3482f7c,1 +3482f7d,ac +3482f7e,70 +3482f7f,25 +3482f80,a1 +3482f81,6e +3482f82,e +3482f83,f2 3482f84,1 -3482f85,a -3482f86,40 -3482f87,21 -3482f88,81 -3482f89,8 -3482f8c,3c -3482f8d,9 -3482f8e,80 -3482f8f,40 -3482f90,25 -3482f91,29 -3482f92,20 -3482f93,18 -3482f94,a1 -3482f95,28 -3482f98,34 -3482f99,2 -3482f9c,3 -3482f9d,e0 -3482f9f,8 -3482fa4,3c -3482fa5,8 -3482fa6,80 -3482fa7,40 -3482fa8,25 -3482fa9,8 -3482faa,1d -3482fab,3 -3482fac,81 -3482fad,8 -3482fb0,10 -3482fb3,22 +3482f85,29 +3482f86,48 +3482f87,27 +3482f88,1 +3482f89,9 +3482f8a,40 +3482f8b,24 +3482f8c,ac +3482f8d,88 +3482f8e,1d +3482f8f,2c +3482f90,3c +3482f91,8 +3482f92,80 +3482f93,40 +3482f94,25 +3482f95,8 +3482f96,1d +3482f97,5 +3482f98,1 +3482f99,a +3482f9a,40 +3482f9b,21 +3482f9c,81 +3482f9d,8 +3482fa0,3c +3482fa1,9 +3482fa2,80 +3482fa3,40 +3482fa4,25 +3482fa5,29 +3482fa6,20 +3482fa7,18 +3482fa8,a1 +3482fa9,28 +3482fac,34 +3482fad,2 +3482fb0,3 +3482fb1,e0 +3482fb3,8 3482fb8,3c 3482fb9,8 3482fba,80 @@ -4362,1566 +4363,1578 @@ ec9ce7,7a 3482fbc,25 3482fbd,8 3482fbe,1d -3482fbf,4 +3482fbf,3 3482fc0,81 3482fc1,8 3482fc4,10 -3482fc7,1d -3482fcc,34 -3482fcd,2 -3482fcf,ff -3482fd0,20 -3482fd1,e8 -3482fd2,ff -3482fd3,a6 -3482fd4,21 +3482fc7,22 +3482fcc,3c +3482fcd,8 +3482fce,80 +3482fcf,40 +3482fd0,25 +3482fd1,8 +3482fd2,1d +3482fd3,4 +3482fd4,81 3482fd5,8 -3482fd7,61 3482fd8,10 -3482fdb,18 +3482fdb,1d 3482fe0,34 -3482fe1,8 -3482fe3,64 -3482fe4,10 -3482fe7,15 -3482fec,3c -3482fed,1 -3482fee,80 -3482fef,12 -3482ff0,24 -3482ff1,21 -3482ff2,a5 -3482ff3,d0 -3482ff4,80 -3482ff5,28 -3482ff6,e -3482ff7,de -3482ff8,35 -3482ff9,8 -3482ffb,1 -3482ffc,a0 -3482ffd,28 -3482ffe,e -3482fff,de -3483000,34 -3483001,8 -3483003,68 -3483004,10 -3483007,d -348300c,3c -348300d,1 -348300e,80 -348300f,12 -3483010,24 -3483011,21 -3483012,a5 -3483013,d0 -3483014,80 -3483015,28 -3483016,e -3483017,de -3483018,35 -3483019,8 -348301b,4 -348301c,a0 -348301d,28 -348301e,e -348301f,de -3483020,34 -3483021,8 -3483023,6a -3483024,10 -3483027,5 -348302c,34 -348302d,5 -348302f,3 -3483030,34 -3483031,8 -3483033,6b -3483034,10 -3483037,1 -348303c,3c -348303d,9 -348303e,80 -348303f,40 -3483040,25 -3483041,29 -3483042,20 -3483043,18 -3483044,3c -3483045,a -3483046,80 -3483047,40 -3483048,25 -3483049,4a -348304a,20 -348304b,1b -348304c,81 -348304d,2c -3483050,11 -3483051,88 -3483053,b -3483054,21 +3482fe1,2 +3482fe3,ff +3482fe4,20 +3482fe5,e8 +3482fe6,ff +3482fe7,a6 +3482fe8,21 +3482fe9,8 +3482feb,61 +3482fec,10 +3482fef,18 +3482ff4,34 +3482ff5,8 +3482ff7,64 +3482ff8,10 +3482ffb,15 +3483000,3c +3483001,1 +3483002,80 +3483003,12 +3483004,24 +3483005,21 +3483006,a5 +3483007,d0 +3483008,80 +3483009,28 +348300a,e +348300b,de +348300c,35 +348300d,8 +348300f,1 +3483010,a0 +3483011,28 +3483012,e +3483013,de +3483014,34 +3483015,8 +3483017,68 +3483018,10 +348301b,d +3483020,3c +3483021,1 +3483022,80 +3483023,12 +3483024,24 +3483025,21 +3483026,a5 +3483027,d0 +3483028,80 +3483029,28 +348302a,e +348302b,de +348302c,35 +348302d,8 +348302f,4 +3483030,a0 +3483031,28 +3483032,e +3483033,de +3483034,34 +3483035,8 +3483037,6a +3483038,10 +348303b,5 +3483040,34 +3483041,5 +3483043,3 +3483044,34 +3483045,8 +3483047,6b +3483048,10 +348304b,1 +3483050,3c +3483051,9 +3483052,80 +3483053,40 +3483054,25 3483055,29 -3483057,1 -3483058,15 -3483059,2a -348305a,ff -348305b,fc -3483060,3c -3483061,9 -3483062,80 -3483063,40 -3483064,25 -3483065,29 -3483066,20 -3483067,17 +3483056,20 +3483057,18 +3483058,3c +3483059,a +348305a,80 +348305b,40 +348305c,25 +348305d,4a +348305e,20 +348305f,1b +3483060,81 +3483061,2c +3483064,11 +3483065,88 +3483067,b 3483068,21 3483069,29 348306b,1 -348306c,11 +348306c,15 348306d,2a -348306f,4 -3483070,81 -3483071,2c -3483074,15 -3483075,80 -3483076,ff -3483077,fc -348307c,a1 -348307d,28 -3483080,3 -3483081,e0 -3483083,8 -3483089,60 -348308a,78 -348308b,21 -348308c,81 -348308d,ec -348308e,e -348308f,df -3483090,31 -3483091,8e -3483093,80 -3483094,11 -3483095,c0 -3483097,3 -3483098,34 -3483099,3 -348309b,5 -348309c,3 -348309d,e0 -348309f,8 -34830a0,34 -34830a1,2 -34830a3,2 -34830a4,3 -34830a5,e0 -34830a7,8 -34830a9,60 -34830aa,10 -34830ab,21 -34830ac,85 -34830ad,c2 -34830af,a4 -34830b0,3c -34830b1,8 -34830b2,80 -34830b3,12 -34830b4,25 -34830b5,8 -34830b6,a5 -34830b7,d0 -34830b8,81 -34830b9,9 -34830ba,e -34830bb,df -34830bc,35 -34830bd,29 -34830bf,80 -34830c0,a1 -34830c1,9 -34830c2,e -34830c3,df -34830c4,3 -34830c5,e0 -34830c7,8 -34830cc,27 -34830cd,bd -34830ce,ff -34830cf,f0 -34830d0,af -34830d1,bf -34830d3,4 -34830d4,c -34830d5,3 -34830d6,58 -34830d7,86 -34830dc,3c -34830dd,c -34830de,80 -34830df,12 -34830e0,25 -34830e1,8c -34830e2,a5 -34830e3,d0 -34830e4,85 -34830e5,8d -34830e6,f -34830e7,2e -34830e8,8d -34830e9,98 -34830eb,4 -34830ec,13 -34830ef,2 -34830f0,34 -34830f1,e -34830f3,1 -34830f4,34 -34830f5,e -34830f7,2 -34830f8,1 -34830f9,ae -34830fa,68 -34830fb,25 -34830fc,a5 -34830fd,8d -34830fe,f -34830ff,2e -3483100,8f -3483101,bf -3483103,4 -3483104,27 -3483105,bd -3483107,10 -3483108,3 -3483109,e0 -348310b,8 -3483110,84 -3483111,8e -3483113,1c -3483114,21 -3483115,cd -3483116,ff -3483117,ce -3483118,5 -3483119,a0 +348306e,ff +348306f,fc +3483074,3c +3483075,9 +3483076,80 +3483077,40 +3483078,25 +3483079,29 +348307a,20 +348307b,17 +348307c,21 +348307d,29 +348307f,1 +3483080,11 +3483081,2a +3483083,4 +3483084,81 +3483085,2c +3483088,15 +3483089,80 +348308a,ff +348308b,fc +3483090,a1 +3483091,28 +3483094,3 +3483095,e0 +3483097,8 +348309d,60 +348309e,78 +348309f,21 +34830a0,81 +34830a1,ec +34830a2,e +34830a3,df +34830a4,31 +34830a5,8e +34830a7,80 +34830a8,11 +34830a9,c0 +34830ab,3 +34830ac,34 +34830ad,3 +34830af,5 +34830b0,3 +34830b1,e0 +34830b3,8 +34830b4,34 +34830b5,2 +34830b7,2 +34830b8,3 +34830b9,e0 +34830bb,8 +34830bd,60 +34830be,10 +34830bf,21 +34830c0,85 +34830c1,c2 +34830c3,a4 +34830c4,3c +34830c5,8 +34830c6,80 +34830c7,12 +34830c8,25 +34830c9,8 +34830ca,a5 +34830cb,d0 +34830cc,81 +34830cd,9 +34830ce,e +34830cf,df +34830d0,35 +34830d1,29 +34830d3,80 +34830d4,a1 +34830d5,9 +34830d6,e +34830d7,df +34830d8,3 +34830d9,e0 +34830db,8 +34830e0,27 +34830e1,bd +34830e2,ff +34830e3,f0 +34830e4,af +34830e5,bf +34830e7,4 +34830e8,c +34830e9,3 +34830ea,58 +34830eb,86 +34830f0,3c +34830f1,c +34830f2,80 +34830f3,12 +34830f4,25 +34830f5,8c +34830f6,a5 +34830f7,d0 +34830f8,85 +34830f9,8d +34830fa,f +34830fb,2e +34830fc,8d +34830fd,98 +34830ff,4 +3483100,13 +3483103,2 +3483104,34 +3483105,e +3483107,1 +3483108,34 +3483109,e +348310b,2 +348310c,1 +348310d,ae +348310e,68 +348310f,25 +3483110,a5 +3483111,8d +3483112,f +3483113,2e +3483114,8f +3483115,bf +3483117,4 +3483118,27 +3483119,bd 348311b,10 -348311c,34 -348311d,2 -3483120,31 -3483121,a9 -3483123,7 -3483124,34 -3483125,a -3483127,1 -3483128,1 -3483129,2a -348312a,50 -348312b,4 -348312d,d -348312e,48 -348312f,c2 -3483130,3c -3483131,c -3483132,80 -3483133,12 -3483134,25 -3483135,8c -3483136,a5 -3483137,d0 -3483138,1 -3483139,89 -348313a,60 -348313b,20 -348313c,81 -348313d,8b -348313e,5 -348313f,b4 -3483140,1 -3483141,6a -3483142,58 -3483143,24 -3483144,34 -3483145,2 -3483148,11 -3483149,60 -348314b,4 -3483150,34 -3483151,d -3483153,26 -3483154,a4 -3483155,8d -3483157,1c +348311c,3 +348311d,e0 +348311f,8 +3483124,84 +3483125,8e +3483127,1c +3483128,21 +3483129,cd +348312a,ff +348312b,ce +348312c,5 +348312d,a0 +348312f,10 +3483130,34 +3483131,2 +3483134,31 +3483135,a9 +3483137,7 +3483138,34 +3483139,a +348313b,1 +348313c,1 +348313d,2a +348313e,50 +348313f,4 +3483141,d +3483142,48 +3483143,c2 +3483144,3c +3483145,c +3483146,80 +3483147,12 +3483148,25 +3483149,8c +348314a,a5 +348314b,d0 +348314c,1 +348314d,89 +348314e,60 +348314f,20 +3483150,81 +3483151,8b +3483152,5 +3483153,b4 +3483154,1 +3483155,6a +3483156,58 +3483157,24 3483158,34 3483159,2 -348315b,1 -348315c,3 -348315d,e0 -348315f,8 -3483164,84 -3483165,ae -3483167,1c -3483168,21 -3483169,cd -348316a,ff -348316b,ce -348316c,5 -348316d,a0 -348316f,b -3483170,34 -3483171,2 -3483174,31 -3483175,a9 -3483177,7 -3483178,34 -3483179,a -348317b,1 -348317c,1 -348317d,2a -348317e,50 -348317f,4 -3483181,d -3483182,48 -3483183,c2 -3483184,3c -3483185,c -3483186,80 -3483187,12 -3483188,25 -3483189,8c -348318a,a5 -348318b,d0 -348318c,1 -348318d,89 -348318e,60 -348318f,20 -3483190,81 -3483191,8b -3483192,5 -3483193,b4 -3483194,1 -3483195,6a -3483196,58 -3483197,25 -3483198,a1 -3483199,8b -348319a,5 -348319b,b4 -348319c,3 -348319d,e0 -348319f,8 -34831a4,27 -34831a5,bd -34831a6,ff -34831a7,f0 -34831a8,af -34831a9,bf -34831ab,8 -34831ac,28 -34831ad,81 -34831af,32 -34831b0,10 -34831b1,20 -34831b3,3 -34831b5,80 -34831b6,10 -34831b7,21 -34831b8,3 -34831b9,20 -34831ba,f8 -34831bb,9 -34831c0,8f -34831c1,bf -34831c3,8 -34831c4,27 -34831c5,bd -34831c7,10 -34831c8,3 -34831c9,e0 -34831cb,8 -34831d0,3c -34831d1,8 -34831d2,80 -34831d3,1d -34831d4,25 -34831d5,8 -34831d6,84 -34831d7,a0 -34831d8,3c -34831d9,9 -34831da,80 -34831db,12 -34831dc,25 -34831dd,29 -34831de,a5 -34831df,d0 -34831e0,85 -34831e1,a -34831e3,a4 -34831e4,34 -34831e5,1 -34831e7,3e -34831e8,15 -34831e9,41 -34831eb,2 -34831ec,81 -34831ed,2b -34831ee,13 -34831ef,97 -34831f0,21 -34831f1,6a -34831f3,2d -34831f4,86 -34831f5,b -34831f7,1c -34831f8,21 -34831f9,6b -34831fb,1 -34831fc,34 -34831fd,c -34831ff,1 -3483200,1 -3483201,6c -3483202,60 -3483203,4 -3483204,34 -3483205,1 -3483207,1c -3483208,1 -3483209,41 -348320b,18 -348320e,68 -348320f,12 -3483210,1 -3483211,2d -3483212,70 -3483213,20 -3483214,8d -3483215,cf -3483217,e4 -3483218,1 -3483219,8f -348321a,10 -348321b,24 -348321c,3 -348321d,e0 -348321f,8 -3483224,3c -3483225,8 -3483226,80 -3483227,1d -3483228,25 -3483229,8 -348322a,84 -348322b,a0 -348322c,3c -348322d,9 -348322e,80 -348322f,12 -3483230,25 -3483231,29 -3483232,a5 -3483233,d0 -3483234,85 -3483235,a -3483237,a4 -3483238,34 -3483239,1 -348323b,3e -348323c,15 -348323d,41 -348323f,2 -3483240,81 -3483241,2b -3483242,13 -3483243,97 -3483244,21 -3483245,6a -3483247,2d -3483248,84 -3483249,8b -348324b,1c -348324c,21 -348324d,6b -348324f,1 -3483250,34 -3483251,c -3483253,1 -3483254,1 -3483255,6c -3483256,60 -3483257,4 -3483258,34 -3483259,1 -348325b,1c -348325c,1 -348325d,41 -348325f,18 -3483262,68 -3483263,12 -3483264,1 -3483265,2d -3483266,70 -3483267,20 -3483268,8d -3483269,cf -348326b,e4 -348326c,1 -348326d,8f -348326e,78 -348326f,25 -3483270,ad -3483271,cf -3483273,e4 -3483274,3 -3483275,e0 -3483277,8 -348327c,27 -348327d,bd -348327e,ff -348327f,e8 -3483280,af -3483281,bf -3483283,10 -3483284,3c -3483285,a -3483286,80 -3483287,1e -3483288,25 -3483289,4a -348328a,aa -348328b,30 -348328c,81 -348328d,48 -348328e,6 -348328f,6c -3483290,31 -3483291,8 -3483293,20 -3483294,15 -3483297,23 -348329c,3c -348329d,a -348329e,80 -348329f,1d -34832a0,25 -34832a1,4a -34832a2,84 -34832a3,a0 -34832a4,8d -34832a5,48 -34832a6,7 -34832a7,94 +348315c,11 +348315d,60 +348315f,4 +3483164,34 +3483165,d +3483167,26 +3483168,a4 +3483169,8d +348316b,1c +348316c,34 +348316d,2 +348316f,1 +3483170,3 +3483171,e0 +3483173,8 +3483178,84 +3483179,ae +348317b,1c +348317c,21 +348317d,cd +348317e,ff +348317f,ce +3483180,5 +3483181,a0 +3483183,b +3483184,34 +3483185,2 +3483188,31 +3483189,a9 +348318b,7 +348318c,34 +348318d,a +348318f,1 +3483190,1 +3483191,2a +3483192,50 +3483193,4 +3483195,d +3483196,48 +3483197,c2 +3483198,3c +3483199,c +348319a,80 +348319b,12 +348319c,25 +348319d,8c +348319e,a5 +348319f,d0 +34831a0,1 +34831a1,89 +34831a2,60 +34831a3,20 +34831a4,81 +34831a5,8b +34831a6,5 +34831a7,b4 +34831a8,1 +34831a9,6a +34831aa,58 +34831ab,25 +34831ac,a1 +34831ad,8b +34831ae,5 +34831af,b4 +34831b0,3 +34831b1,e0 +34831b3,8 +34831b8,27 +34831b9,bd +34831ba,ff +34831bb,f0 +34831bc,af +34831bd,bf +34831bf,8 +34831c0,28 +34831c1,81 +34831c3,32 +34831c4,10 +34831c5,20 +34831c7,3 +34831c9,80 +34831ca,10 +34831cb,21 +34831cc,3 +34831cd,20 +34831ce,f8 +34831cf,9 +34831d4,8f +34831d5,bf +34831d7,8 +34831d8,27 +34831d9,bd +34831db,10 +34831dc,3 +34831dd,e0 +34831df,8 +34831e4,3c +34831e5,8 +34831e6,80 +34831e7,1d +34831e8,25 +34831e9,8 +34831ea,84 +34831eb,a0 +34831ec,3c +34831ed,9 +34831ee,80 +34831ef,12 +34831f0,25 +34831f1,29 +34831f2,a5 +34831f3,d0 +34831f4,85 +34831f5,a +34831f7,a4 +34831f8,34 +34831f9,1 +34831fb,3e +34831fc,15 +34831fd,41 +34831ff,2 +3483200,81 +3483201,2b +3483202,13 +3483203,97 +3483204,21 +3483205,6a +3483207,2d +3483208,86 +3483209,b +348320b,1c +348320c,21 +348320d,6b +348320f,1 +3483210,34 +3483211,c +3483213,1 +3483214,1 +3483215,6c +3483216,60 +3483217,4 +3483218,34 +3483219,1 +348321b,1c +348321c,1 +348321d,41 +348321f,18 +3483222,68 +3483223,12 +3483224,1 +3483225,2d +3483226,70 +3483227,20 +3483228,8d +3483229,cf +348322b,e4 +348322c,1 +348322d,8f +348322e,10 +348322f,24 +3483230,3 +3483231,e0 +3483233,8 +3483238,3c +3483239,8 +348323a,80 +348323b,1d +348323c,25 +348323d,8 +348323e,84 +348323f,a0 +3483240,3c +3483241,9 +3483242,80 +3483243,12 +3483244,25 +3483245,29 +3483246,a5 +3483247,d0 +3483248,85 +3483249,a +348324b,a4 +348324c,34 +348324d,1 +348324f,3e +3483250,15 +3483251,41 +3483253,2 +3483254,81 +3483255,2b +3483256,13 +3483257,97 +3483258,21 +3483259,6a +348325b,2d +348325c,84 +348325d,8b +348325f,1c +3483260,21 +3483261,6b +3483263,1 +3483264,34 +3483265,c +3483267,1 +3483268,1 +3483269,6c +348326a,60 +348326b,4 +348326c,34 +348326d,1 +348326f,1c +3483270,1 +3483271,41 +3483273,18 +3483276,68 +3483277,12 +3483278,1 +3483279,2d +348327a,70 +348327b,20 +348327c,8d +348327d,cf +348327f,e4 +3483280,1 +3483281,8f +3483282,78 +3483283,25 +3483284,ad +3483285,cf +3483287,e4 +3483288,3 +3483289,e0 +348328b,8 +3483290,27 +3483291,bd +3483292,ff +3483293,e8 +3483294,af +3483295,bf +3483297,10 +3483298,3c +3483299,a +348329a,80 +348329b,1e +348329c,25 +348329d,4a +348329e,aa +348329f,30 +34832a0,81 +34832a1,48 +34832a2,6 +34832a3,6c +34832a4,31 +34832a5,8 +34832a7,20 34832a8,15 -34832ab,1e -34832ac,3c -34832ad,9 -34832ae,80 -34832af,40 -34832b0,25 -34832b1,29 -34832b2,20 -34832b3,1b -34832b4,34 -34832b5,a -34832b7,ff -34832b8,a1 -34832b9,2a -34832bc,3c -34832bd,9 -34832be,80 -34832bf,40 -34832c0,25 -34832c1,29 -34832c2,20 -34832c3,18 -34832c4,24 -34832c5,a -34832c6,ff -34832c7,ff +34832ab,23 +34832b0,3c +34832b1,a +34832b2,80 +34832b3,1d +34832b4,25 +34832b5,4a +34832b6,84 +34832b7,a0 +34832b8,8d +34832b9,48 +34832ba,7 +34832bb,94 +34832bc,15 +34832bf,1e +34832c0,3c +34832c1,9 +34832c2,80 +34832c3,40 +34832c4,25 +34832c5,29 +34832c6,20 +34832c7,1b 34832c8,34 -34832c9,c -34832cb,3 -34832cc,21 -34832cd,4a -34832cf,1 -34832d0,11 -34832d1,4c -34832d3,14 -34832d4,1 -34832d5,2a -34832d6,58 -34832d7,20 -34832d8,81 -34832d9,68 -34832dc,11 -34832de,ff -34832df,fb -34832e4,3c -34832e5,9 -34832e6,80 -34832e7,40 -34832e8,25 -34832e9,29 -34832ea,20 -34832eb,1b -34832ec,a1 -34832ed,2a -34832f0,3c -34832f1,9 -34832f2,80 -34832f3,1e -34832f4,25 -34832f5,29 -34832f6,89 -34832f7,84 -34832f8,34 -34832f9,a -34832fb,1 -34832fc,a5 -34832fd,2a -3483300,3c -3483301,9 -3483302,80 -3483303,48 -3483304,34 -3483305,a -3483307,1 -3483308,ad -3483309,2a -348330a,1 -348330b,30 -348330c,3c +34832c9,a +34832cb,ff +34832cc,a1 +34832cd,2a +34832d0,3c +34832d1,9 +34832d2,80 +34832d3,40 +34832d4,25 +34832d5,29 +34832d6,20 +34832d7,18 +34832d8,24 +34832d9,a +34832da,ff +34832db,ff +34832dc,34 +34832dd,c +34832df,3 +34832e0,21 +34832e1,4a +34832e3,1 +34832e4,11 +34832e5,4c +34832e7,14 +34832e8,1 +34832e9,2a +34832ea,58 +34832eb,20 +34832ec,81 +34832ed,68 +34832f0,11 +34832f2,ff +34832f3,fb +34832f8,3c +34832f9,9 +34832fa,80 +34832fb,40 +34832fc,25 +34832fd,29 +34832fe,20 +34832ff,1b +3483300,a1 +3483301,2a +3483304,3c +3483305,9 +3483306,80 +3483307,1e +3483308,25 +3483309,29 +348330a,89 +348330b,84 +348330c,34 348330d,a -348330e,80 -348330f,1e -3483310,25 -3483311,4a -3483312,aa -3483313,30 -3483314,a1 -3483315,48 -3483316,4 -3483317,24 -3483318,ad -3483319,49 -348331a,4 -348331b,28 -348331c,c -348331d,10 -348331e,a -348331f,e8 -3483324,8e -3483325,19 -3483327,4 -3483328,2 -348332a,20 -348332b,25 -348332c,8f -348332d,bf -348332f,10 -3483330,3 -3483331,e0 -3483333,8 -3483334,27 -3483335,bd -3483337,18 -3483338,27 -3483339,bd -348333a,ff -348333b,e8 -348333c,af -348333d,bf -348333f,10 -3483340,c -3483341,10 -3483342,17 -3483343,5 -3483348,3c -3483349,e -348334a,80 -348334b,12 -348334c,91 -348334d,ce -348334e,12 -348334f,12 -3483350,8f +348330f,1 +3483310,a5 +3483311,2a +3483314,3c +3483315,9 +3483316,80 +3483317,48 +3483318,34 +3483319,a +348331b,1 +348331c,ad +348331d,2a +348331e,1 +348331f,30 +3483320,3c +3483321,a +3483322,80 +3483323,1e +3483324,25 +3483325,4a +3483326,aa +3483327,30 +3483328,a1 +3483329,48 +348332a,4 +348332b,24 +348332c,ad +348332d,49 +348332e,4 +348332f,28 +3483330,c +3483331,10 +3483332,a +3483333,ed +3483338,8e +3483339,19 +348333b,4 +348333c,2 +348333e,20 +348333f,25 +3483340,8f +3483341,bf +3483343,10 +3483344,3 +3483345,e0 +3483347,8 +3483348,27 +3483349,bd +348334b,18 +348334c,27 +348334d,bd +348334e,ff +348334f,e8 +3483350,af 3483351,bf 3483353,10 -3483354,3 -3483355,e0 -3483357,8 -3483358,27 -3483359,bd -348335b,18 -348335c,93 -348335d,19 -348335f,74 -3483360,34 -3483361,1 -3483363,ff -3483364,17 -3483365,21 -3483367,2 -348336c,34 -348336d,19 -348336f,2c -3483370,3 -3483371,e0 -3483373,8 -3483374,a7 -3483375,b9 -3483377,9a -3483378,93 -3483379,2c -348337b,74 -348337c,34 -348337d,1 -348337f,ff -3483380,15 -3483381,81 -3483383,2 -3483388,34 -3483389,c -348338b,2c -348338c,3 -348338d,e0 -348338f,8 -3483394,91 -3483395,ae -3483397,74 -3483398,34 -3483399,1 -348339b,ff -348339c,15 -348339d,c1 -348339f,2 -34833a4,34 -34833a5,e -34833a7,2c -34833a8,3 -34833a9,e0 -34833ab,8 -34833ac,a7 -34833ad,ae -34833af,9a -34833b0,91 -34833b1,cf -34833b3,74 -34833b4,34 -34833b5,1 -34833b7,ff -34833b8,15 -34833b9,e1 -34833bb,2 -34833c0,34 -34833c1,f -34833c3,2c -34833c4,3 -34833c5,e0 -34833c7,8 -34833c8,a7 -34833c9,af -34833cb,9a -34833cc,3c -34833cd,8 -34833ce,80 -34833cf,40 -34833d0,25 -34833d1,8 -34833d2,20 -34833d3,1c -34833d4,8e -34833d5,9 -34833d7,68 -34833d8,ad -34833d9,9 -34833dc,8e -34833dd,9 -34833df,6c -34833e0,ad -34833e1,9 -34833e3,4 -34833e4,96 -34833e5,9 -34833e7,70 -34833e8,a5 +3483354,c +3483355,10 +3483356,17 +3483357,5 +348335c,3c +348335d,e +348335e,80 +348335f,12 +3483360,91 +3483361,ce +3483362,12 +3483363,12 +3483364,8f +3483365,bf +3483367,10 +3483368,3 +3483369,e0 +348336b,8 +348336c,27 +348336d,bd +348336f,18 +3483370,93 +3483371,19 +3483373,74 +3483374,34 +3483375,1 +3483377,ff +3483378,17 +3483379,21 +348337b,2 +3483380,34 +3483381,19 +3483383,2c +3483384,3 +3483385,e0 +3483387,8 +3483388,a7 +3483389,b9 +348338b,9a +348338c,93 +348338d,2c +348338f,74 +3483390,34 +3483391,1 +3483393,ff +3483394,15 +3483395,81 +3483397,2 +348339c,34 +348339d,c +348339f,2c +34833a0,3 +34833a1,e0 +34833a3,8 +34833a8,91 +34833a9,ae +34833ab,74 +34833ac,34 +34833ad,1 +34833af,ff +34833b0,15 +34833b1,c1 +34833b3,2 +34833b8,34 +34833b9,e +34833bb,2c +34833bc,3 +34833bd,e0 +34833bf,8 +34833c0,a7 +34833c1,ae +34833c3,9a +34833c4,91 +34833c5,cf +34833c7,74 +34833c8,34 +34833c9,1 +34833cb,ff +34833cc,15 +34833cd,e1 +34833cf,2 +34833d4,34 +34833d5,f +34833d7,2c +34833d8,3 +34833d9,e0 +34833db,8 +34833dc,a7 +34833dd,af +34833df,9a +34833e0,3c +34833e1,8 +34833e2,80 +34833e3,40 +34833e4,25 +34833e5,8 +34833e6,20 +34833e7,1c +34833e8,8e 34833e9,9 -34833eb,8 -34833ec,96 +34833eb,68 +34833ec,ad 34833ed,9 -34833ef,9c -34833f0,a5 +34833f0,8e 34833f1,9 -34833f3,a -34833f4,3 -34833f5,e0 -34833f7,8 -34833f8,8e -34833f9,e -34833fb,4 -34833fc,27 -34833fd,bd -34833fe,ff -34833ff,e0 -3483400,af -3483401,b0 -3483403,10 -3483404,af -3483405,b1 -3483407,14 -3483408,af -3483409,bf -348340b,18 -348340c,3c -348340d,10 -348340e,80 -348340f,12 -3483410,26 -3483411,10 -3483412,a5 -3483413,d0 -3483414,3c -3483415,11 -3483416,80 -3483417,40 -3483418,26 -3483419,31 -348341a,20 -348341b,1c -348341c,8e -348341d,8 -348341f,4 -3483420,11 -3483423,5 -3483428,c -3483429,10 -348342a,d -348342b,29 -3483430,10 -3483433,3 -3483438,c -3483439,10 -348343a,d -348343b,3c -3483440,c -3483441,10 -3483442,d -3483443,1c -3483444,34 -3483445,4 -3483448,c -3483449,10 -348344a,d -348344b,1c -348344c,34 -348344d,4 -348344f,1 -3483450,c -3483451,10 -3483452,d -3483453,1c -3483454,34 -3483455,4 -3483457,2 -3483458,8f -3483459,b0 -348345b,10 -348345c,8f -348345d,b1 -348345f,14 -3483460,8f -3483461,bf -3483463,18 -3483464,27 -3483465,bd -3483467,20 -3483468,3 -3483469,e0 -348346b,8 -3483470,2 -3483471,4 -3483472,40 -3483473,21 -3483474,91 -3483475,9 -3483477,6c -3483478,34 -3483479,1 -348347b,ff -348347c,11 -348347d,21 -348347f,7 +34833f3,6c +34833f4,ad +34833f5,9 +34833f7,4 +34833f8,96 +34833f9,9 +34833fb,70 +34833fc,a5 +34833fd,9 +34833ff,8 +3483400,96 +3483401,9 +3483403,9c +3483404,a5 +3483405,9 +3483407,a +3483408,3 +3483409,e0 +348340b,8 +348340c,8e +348340d,e +348340f,4 +3483410,27 +3483411,bd +3483412,ff +3483413,e0 +3483414,af +3483415,b0 +3483417,10 +3483418,af +3483419,b1 +348341b,14 +348341c,af +348341d,bf +348341f,18 +3483420,3c +3483421,10 +3483422,80 +3483423,12 +3483424,26 +3483425,10 +3483426,a5 +3483427,d0 +3483428,3c +3483429,11 +348342a,80 +348342b,40 +348342c,26 +348342d,31 +348342e,20 +348342f,1c +3483430,8e +3483431,8 +3483433,4 +3483434,11 +3483437,5 +348343c,c +348343d,10 +348343e,d +348343f,2e +3483444,10 +3483447,3 +348344c,c +348344d,10 +348344e,d +348344f,41 +3483454,c +3483455,10 +3483456,d +3483457,21 +3483458,34 +3483459,4 +348345c,c +348345d,10 +348345e,d +348345f,21 +3483460,34 +3483461,4 +3483463,1 +3483464,c +3483465,10 +3483466,d +3483467,21 +3483468,34 +3483469,4 +348346b,2 +348346c,8f +348346d,b0 +348346f,10 +3483470,8f +3483471,b1 +3483473,14 +3483474,8f +3483475,bf +3483477,18 +3483478,27 +3483479,bd +348347b,20 +348347c,3 +348347d,e0 +348347f,8 3483484,2 -3483485,9 -3483486,48 +3483485,4 +3483486,40 3483487,21 3483488,91 -3483489,29 -348348b,74 +3483489,9 +348348b,6c 348348c,34 348348d,1 -348348f,2c +348348f,ff 3483490,11 3483491,21 -3483493,2 -3483498,a1 +3483493,7 +3483498,2 3483499,9 -348349b,69 -348349c,3 -348349d,e0 -348349f,8 -34834a4,27 -34834a5,bd -34834a6,ff -34834a7,e8 -34834a8,af -34834a9,bf -34834ab,10 -34834ac,8e -34834ad,28 -34834b0,ae -34834b1,8 -34834b3,40 -34834b4,8e -34834b5,28 -34834b7,4 -34834b8,ae -34834b9,8 -34834bb,44 -34834bc,96 -34834bd,28 -34834bf,8 -34834c0,a6 -34834c1,8 -34834c3,48 -34834c4,a2 -34834c6,f -34834c7,33 -34834c8,92 -34834c9,8 -34834cb,4a -34834cc,34 -34834cd,1 -34834cf,ff -34834d0,15 -34834d1,1 -34834d3,3 -34834d8,c -34834d9,10 -34834da,d -34834db,4a -34834e0,8f -34834e1,bf -34834e3,10 -34834e4,27 -34834e5,bd -34834e7,18 -34834e8,3 -34834e9,e0 -34834eb,8 -34834f0,8e -34834f1,8 -34834f3,40 -34834f4,ae -34834f5,8 -34834f7,68 -34834f8,8e -34834f9,8 -34834fb,44 -34834fc,ae -34834fd,8 -34834ff,6c -3483500,96 -3483501,8 -3483503,48 -3483504,a6 +348349a,48 +348349b,21 +348349c,91 +348349d,29 +348349f,74 +34834a0,34 +34834a1,1 +34834a3,2c +34834a4,11 +34834a5,21 +34834a7,2 +34834ac,a1 +34834ad,9 +34834af,69 +34834b0,3 +34834b1,e0 +34834b3,8 +34834b8,27 +34834b9,bd +34834ba,ff +34834bb,e8 +34834bc,af +34834bd,bf +34834bf,10 +34834c0,8e +34834c1,28 +34834c4,ae +34834c5,8 +34834c7,40 +34834c8,8e +34834c9,28 +34834cb,4 +34834cc,ae +34834cd,8 +34834cf,44 +34834d0,96 +34834d1,28 +34834d3,8 +34834d4,a6 +34834d5,8 +34834d7,48 +34834d8,a2 +34834da,f +34834db,33 +34834dc,92 +34834dd,8 +34834df,4a +34834e0,34 +34834e1,1 +34834e3,ff +34834e4,15 +34834e5,1 +34834e7,3 +34834ec,c +34834ed,10 +34834ee,d +34834ef,4f +34834f4,8f +34834f5,bf +34834f7,10 +34834f8,27 +34834f9,bd +34834fb,18 +34834fc,3 +34834fd,e0 +34834ff,8 +3483504,8e 3483505,8 -3483507,70 -3483508,92 +3483507,40 +3483508,ae 3483509,8 348350b,68 -348350c,34 -348350d,1 -348350f,ff -3483510,15 -3483511,1 -3483513,3 -3483518,34 +348350c,8e +348350d,8 +348350f,44 +3483510,ae +3483511,8 +3483513,6c +3483514,96 +3483515,8 +3483517,48 +3483518,a6 3483519,8 -348351b,1 -348351c,a2 +348351b,70 +348351c,92 348351d,8 -348351e,f -348351f,33 -3483520,3 -3483521,e0 -3483523,8 -3483528,27 -3483529,bd -348352a,ff -348352b,e8 -348352c,af -348352d,bf -348352f,10 -3483530,96 +348351f,68 +3483520,34 +3483521,1 +3483523,ff +3483524,15 +3483525,1 +3483527,3 +348352c,34 +348352d,8 +348352f,1 +3483530,a2 3483531,8 -3483533,9c -3483534,31 -3483535,8 -3483537,40 -3483538,11 -348353b,5 -3483540,96 -3483541,8 -3483543,70 -3483544,31 +3483532,f +3483533,33 +3483534,3 +3483535,e0 +3483537,8 +348353c,27 +348353d,bd +348353e,ff +348353f,e8 +3483540,af +3483541,bf +3483543,10 +3483544,96 3483545,8 -3483546,ff -3483547,f -3483548,35 +3483547,9c +3483548,31 3483549,8 -348354b,30 -348354c,a6 -348354d,8 -348354f,70 -3483550,92 -3483551,28 -3483553,1 -3483554,a2 +348354b,40 +348354c,11 +348354f,5 +3483554,96 3483555,8 -3483557,69 -3483558,96 -3483559,28 -348355b,2 -348355c,a6 +3483557,70 +3483558,31 +3483559,8 +348355a,ff +348355b,f +348355c,35 348355d,8 -348355f,6a -3483560,8e -3483561,28 -3483563,4 -3483564,ae -3483565,8 -3483567,6c -3483568,c -3483569,10 -348356a,d -348356b,64 -348356c,34 -348356d,4 -3483570,c -3483571,10 -3483572,d -3483573,64 -3483574,34 -3483575,4 -3483577,1 -3483578,c -3483579,10 -348357a,d -348357b,64 -348357c,34 -348357d,4 -348357f,2 -3483580,8f -3483581,bf -3483583,10 -3483584,27 -3483585,bd -3483587,18 -3483588,3 -3483589,e0 -348358b,8 -3483590,2 +348355f,30 +3483560,a6 +3483561,8 +3483563,70 +3483564,92 +3483565,28 +3483567,1 +3483568,a2 +3483569,8 +348356b,69 +348356c,96 +348356d,28 +348356f,2 +3483570,a6 +3483571,8 +3483573,6a +3483574,8e +3483575,28 +3483577,4 +3483578,ae +3483579,8 +348357b,6c +348357c,c +348357d,10 +348357e,d +348357f,69 +3483580,34 +3483581,4 +3483584,c +3483585,10 +3483586,d +3483587,69 +3483588,34 +3483589,4 +348358b,1 +348358c,c +348358d,10 +348358e,d +348358f,69 +3483590,34 3483591,4 -3483592,40 -3483593,21 -3483594,3c -3483595,9 -3483596,80 -3483597,40 -3483598,25 -3483599,29 -348359a,36 -348359b,3c -348359c,91 -348359d,a -348359f,6c -34835a0,34 -34835a1,1 -34835a3,ff -34835a4,11 -34835a5,41 -34835a7,5 -34835ac,1 -34835ad,2a -34835ae,48 -34835af,21 +3483593,2 +3483594,8f +3483595,bf +3483597,10 +3483598,27 +3483599,bd +348359b,18 +348359c,3 +348359d,e0 +348359f,8 +34835a4,2 +34835a5,4 +34835a6,40 +34835a7,21 +34835a8,3c +34835a9,9 +34835aa,80 +34835ab,40 +34835ac,25 +34835ad,29 +34835ae,36 +34835af,50 34835b0,91 -34835b1,29 -34835b4,15 -34835b5,20 -34835b7,1c -34835bc,3c -34835bd,9 -34835be,80 -34835bf,40 -34835c0,25 -34835c1,29 -34835c2,36 -34835c3,2f -34835c4,25 +34835b1,a +34835b3,6c +34835b4,34 +34835b5,1 +34835b7,ff +34835b8,11 +34835b9,41 +34835bb,5 +34835c0,1 +34835c1,2a +34835c2,48 +34835c3,21 +34835c4,91 34835c5,29 -34835c7,1 -34835c8,91 -34835c9,2a -34835cc,11 -34835cd,40 -34835cf,13 -34835d4,2 -34835d5,a -34835d6,58 -34835d7,21 -34835d8,91 -34835d9,6b -34835db,74 -34835dc,34 -34835dd,1 -34835df,ff +34835c8,15 +34835c9,20 +34835cb,1c +34835d0,3c +34835d1,9 +34835d2,80 +34835d3,40 +34835d4,25 +34835d5,29 +34835d6,36 +34835d7,43 +34835d8,25 +34835d9,29 +34835db,1 +34835dc,91 +34835dd,2a 34835e0,11 -34835e1,61 -34835e2,ff -34835e3,f8 -34835e8,92 -34835e9,c -34835eb,6c -34835ec,11 -34835ed,8a -34835ee,ff -34835ef,f5 -34835f4,92 -34835f5,c -34835f7,6d -34835f8,11 -34835f9,8a -34835fa,ff -34835fb,f2 -3483600,92 -3483601,c -3483603,6e -3483604,11 -3483605,8a -3483606,ff -3483607,ef -348360c,a1 -348360d,b -348360f,69 -3483610,a1 -3483611,a -3483613,6c -3483614,10 -3483617,4 -348361c,34 -348361d,9 -348361f,ff +34835e1,40 +34835e3,13 +34835e8,2 +34835e9,a +34835ea,58 +34835eb,21 +34835ec,91 +34835ed,6b +34835ef,74 +34835f0,34 +34835f1,1 +34835f3,ff +34835f4,11 +34835f5,61 +34835f6,ff +34835f7,f8 +34835fc,92 +34835fd,c +34835ff,6c +3483600,11 +3483601,8a +3483602,ff +3483603,f5 +3483608,92 +3483609,c +348360b,6d +348360c,11 +348360d,8a +348360e,ff +348360f,f2 +3483614,92 +3483615,c +3483617,6e +3483618,11 +3483619,8a +348361a,ff +348361b,ef 3483620,a1 -3483621,9 +3483621,b 3483623,69 3483624,a1 -3483625,9 +3483625,a 3483627,6c -3483628,3 -3483629,e0 -348362b,8 -3483630,7 +3483628,10 +348362b,4 +3483630,34 3483631,9 -3483632,f -3483633,2 -3483634,3 -3483635,1 -3483636,d -3483637,b -348363d,1 -348363e,1 -348363f,1 -3483640,1 -3483641,1 -3483643,1 -3483644,1 -3483645,1 -3483646,1 -3483647,1 +3483633,ff +3483634,a1 +3483635,9 +3483637,69 +3483638,a1 +3483639,9 +348363b,6c +348363c,3 +348363d,e0 +348363f,8 +3483644,7 +3483645,9 +3483646,f +3483647,2 +3483648,3 3483649,1 -348364b,1 -348364c,1 -348364d,1 -348364e,1 -348364f,1 -3483650,1 +348364a,d +348364b,b 3483651,1 3483652,1 -3483655,33 -3483656,8 -3483657,21 -3483658,20 -3483659,f -348365b,47 -348365c,15 -348365d,ea -348365f,e -3483660,3c -3483661,2 -3483662,80 -3483663,12 -3483664,8c -3483665,42 -3483666,a5 -3483667,d4 -3483668,8e -3483669,6f -348366b,a4 +3483653,1 +3483654,1 +3483655,1 +3483657,1 +3483658,1 +3483659,1 +348365a,1 +348365b,1 +348365d,1 +348365f,1 +3483660,1 +3483661,1 +3483662,1 +3483663,1 +3483664,1 +3483665,1 +3483666,1 +3483669,33 +348366a,8 +348366b,21 +348366c,20 348366d,f -348366e,7a -348366f,3 -3483670,14 -3483671,40 -3483673,5 -3483674,34 +348366f,47 +3483670,15 +3483671,ea +3483673,e +3483674,3c 3483675,2 -3483676,48 -3483677,30 -3483678,15 -3483679,e2 -348367b,7 -3483680,24 -3483681,19 +3483676,80 +3483677,12 +3483678,8c +3483679,42 +348367a,a5 +348367b,d4 +348367c,8e +348367d,6f +348367f,a4 +3483681,f +3483682,7a 3483683,3 -3483684,10 -3483687,4 +3483684,14 +3483685,40 +3483687,5 3483688,34 3483689,2 -348368a,63 -348368b,11 +348368a,48 +348368b,30 348368c,15 348368d,e2 -348368f,2 +348368f,7 3483694,24 3483695,19 3483697,3 -3483698,3 -3483699,e0 -348369b,8 -34836a0,8d -34836a1,ad -34836a2,8a -34836a3,a0 -34836a4,34 -34836a5,2 -34836a6,80 -34836a8,10 -34836a9,4d -34836ab,2 -34836b0,10 -34836b3,9 -34836b4,3c -34836b5,f -34836b6,80 -34836b7,1e -34836b8,25 -34836b9,ef -34836ba,84 -34836bb,a0 -34836bc,81 -34836bd,e2 -34836be,1c -34836bf,bf -34836c0,30 -34836c1,42 -34836c3,1 +3483698,10 +348369b,4 +348369c,34 +348369d,2 +348369e,63 +348369f,11 +34836a0,15 +34836a1,e2 +34836a3,2 +34836a8,24 +34836a9,19 +34836ab,3 +34836ac,3 +34836ad,e0 +34836af,8 +34836b4,8d +34836b5,ad +34836b6,8a +34836b7,a0 +34836b8,34 +34836b9,2 +34836ba,80 +34836bc,10 +34836bd,4d +34836bf,2 34836c4,10 -34836c5,40 -34836c7,2 -34836cc,10 -34836cf,2 -34836d0,34 -34836d1,2 -34836d3,1 -34836d4,a1 -34836d5,e2 -34836d6,1c -34836d7,bf -34836d8,3 -34836d9,e0 -34836db,8 -34836e1,33 -34836e2,8 -34836e3,21 -34836e4,3c +34836c7,9 +34836c8,3c +34836c9,f +34836ca,80 +34836cb,1e +34836cc,25 +34836cd,ef +34836ce,84 +34836cf,a0 +34836d0,81 +34836d1,e2 +34836d2,1c +34836d3,bf +34836d4,30 +34836d5,42 +34836d7,1 +34836d8,10 +34836d9,40 +34836db,2 +34836e0,10 +34836e3,2 +34836e4,34 34836e5,2 -34836e6,80 -34836e7,12 -34836e8,8c -34836e9,42 -34836ea,a5 -34836eb,d4 -34836ec,8e -34836ed,6f -34836ef,a4 -34836f1,f -34836f2,7a -34836f3,3 -34836f4,14 -34836f5,40 -34836f7,5 -34836f8,34 +34836e7,1 +34836e8,a1 +34836e9,e2 +34836ea,1c +34836eb,bf +34836ec,3 +34836ed,e0 +34836ef,8 +34836f5,33 +34836f6,8 +34836f7,21 +34836f8,3c 34836f9,2 -34836fa,48 -34836fb,30 -34836fc,15 -34836fd,e2 -34836ff,7 -3483704,24 -3483705,19 +34836fa,80 +34836fb,12 +34836fc,8c +34836fd,42 +34836fe,a5 +34836ff,d4 +3483700,8e +3483701,6f +3483703,a4 +3483705,f +3483706,7a 3483707,3 -3483708,10 -348370b,4 +3483708,14 +3483709,40 +348370b,5 348370c,34 348370d,2 -348370e,63 -348370f,11 +348370e,48 +348370f,30 3483710,15 3483711,e2 -3483713,2 +3483713,7 3483718,24 3483719,19 348371b,3 -348371c,3 -348371d,e0 -348371f,8 -3483724,34 -3483725,1 -3483727,18 -3483728,14 -3483729,81 -348372b,11 -3483730,14 -3483731,40 -3483733,f -3483738,3c -3483739,a -348373a,80 -348373b,12 -348373c,25 -348373d,4a -348373e,a5 -348373f,d0 -3483740,81 -3483741,48 -3483743,a6 -3483744,31 -3483745,8 -3483747,20 -3483748,11 -348374b,9 -348374c,34 -348374d,2 -3483750,34 -3483751,2 -3483753,1 +348371c,10 +348371f,4 +3483720,34 +3483721,2 +3483722,63 +3483723,11 +3483724,15 +3483725,e2 +3483727,2 +348372c,24 +348372d,19 +348372f,3 +3483730,3 +3483731,e0 +3483733,8 +3483738,34 +3483739,1 +348373b,18 +348373c,14 +348373d,81 +348373f,11 +3483744,14 +3483745,40 +3483747,f +348374c,3c +348374d,a +348374e,80 +348374f,12 +3483750,25 +3483751,4a +3483752,a5 +3483753,d0 3483754,81 3483755,48 -3483757,7b -3483758,34 -3483759,9 -348375b,7 +3483757,a6 +3483758,31 +3483759,8 +348375b,20 348375c,11 -348375d,9 -348375f,4 +348375f,9 3483760,34 -3483761,a -3483763,8 -3483764,11 -3483765,a -3483767,2 +3483761,2 +3483764,34 +3483765,2 +3483767,1 +3483768,81 +3483769,48 +348376b,7b 348376c,34 -348376d,2 -3483770,3 -3483771,e0 -3483773,8 -3483778,80 -3483779,a8 -348377c,25 -348377d,9 -348377f,1 -3483780,15 -3483781,20 -3483783,e -3483788,27 -3483789,bd -348378a,ff -348378b,e8 -348378c,af -348378d,bf -348378f,14 -3483790,af -3483791,a4 -3483793,18 -3483794,af -3483795,a5 -3483797,1c -3483799,5 -348379a,20 -348379b,25 -348379c,24 -348379d,a5 -348379f,8 -34837a0,c -34837a1,1 -34837a2,5c -34837a3,c -34837a4,24 -34837a5,c6 -34837a6,ff -34837a7,f8 -34837a8,8f -34837a9,a4 -34837ab,18 -34837ac,8f -34837ad,a5 -34837af,1c -34837b0,34 -34837b1,6 -34837b3,80 -34837b4,8f -34837b5,bf -34837b7,14 -34837b8,27 -34837b9,bd -34837bb,18 -34837bc,8 -34837bd,1 -34837be,5c -34837bf,c -34837c4,a2 -34837c5,25 -34837c7,21 -34837c8,3c -34837c9,10 -34837ca,80 -34837cb,40 -34837cc,26 -34837cd,10 -34837ce,17 -34837cf,fc -34837d0,26 -34837d1,10 -34837d3,4 -34837d4,8e -34837d5,a -34837d8,11 -34837d9,40 -34837db,b -34837e1,a -34837e2,7c -34837e3,2 -34837e4,1 -34837e5,f1 -34837e6,78 -34837e7,20 -34837e8,31 -34837e9,58 -34837ea,ff -34837ed,18 -34837ee,c2 -34837ef,2 -34837f0,17 -34837f3,3 -34837f4,31 -34837f5,59 -34837f7,ff -34837f8,81 -34837f9,ea -34837fc,3 -34837fd,2a -34837fe,c8 -34837ff,25 -3483800,8 -3483801,10 -3483802,d -3483803,f4 -3483804,a1 -3483805,f9 -3483808,3 -3483809,e0 -348380b,8 -3483810,3c -3483811,8 -3483812,80 -3483813,40 -3483814,25 -3483815,8 -3483816,1c -3483817,2 -3483818,91 -3483819,8 -348381c,15 -348381f,6 +348376d,9 +348376f,7 +3483770,11 +3483771,9 +3483773,4 +3483774,34 +3483775,a +3483777,8 +3483778,11 +3483779,a +348377b,2 +3483780,34 +3483781,2 +3483784,3 +3483785,e0 +3483787,8 +348378c,80 +348378d,a8 +3483790,25 +3483791,9 +3483793,1 +3483794,15 +3483795,20 +3483797,e +348379c,27 +348379d,bd +348379e,ff +348379f,e8 +34837a0,af +34837a1,bf +34837a3,14 +34837a4,af +34837a5,a4 +34837a7,18 +34837a8,af +34837a9,a5 +34837ab,1c +34837ad,5 +34837ae,20 +34837af,25 +34837b0,24 +34837b1,a5 +34837b3,8 +34837b4,c +34837b5,1 +34837b6,5c +34837b7,c +34837b8,24 +34837b9,c6 +34837ba,ff +34837bb,f8 +34837bc,8f +34837bd,a4 +34837bf,18 +34837c0,8f +34837c1,a5 +34837c3,1c +34837c4,34 +34837c5,6 +34837c7,80 +34837c8,8f +34837c9,bf +34837cb,14 +34837cc,27 +34837cd,bd +34837cf,18 +34837d0,8 +34837d1,1 +34837d2,5c +34837d3,c +34837d8,a2 +34837d9,25 +34837db,21 +34837dc,3c +34837dd,10 +34837de,80 +34837df,40 +34837e0,26 +34837e1,10 +34837e2,17 +34837e3,fc +34837e4,26 +34837e5,10 +34837e7,4 +34837e8,8e +34837e9,a +34837ec,11 +34837ed,40 +34837ef,b +34837f5,a +34837f6,7c +34837f7,2 +34837f8,1 +34837f9,f1 +34837fa,78 +34837fb,20 +34837fc,31 +34837fd,58 +34837fe,ff +3483801,18 +3483802,c2 +3483803,2 +3483804,17 +3483807,3 +3483808,31 +3483809,59 +348380b,ff +348380c,81 +348380d,ea +3483810,3 +3483811,2a +3483812,c8 +3483813,25 +3483814,8 +3483815,10 +3483816,d +3483817,f9 +3483818,a1 +3483819,f9 +348381c,3 +348381d,e0 +348381f,8 3483824,3c 3483825,8 3483826,80 -3483827,12 +3483827,40 3483828,25 3483829,8 -348382a,a5 -348382b,d0 +348382a,1c +348382b,2 348382c,91 -348382d,2 -348382f,24 -3483830,10 -3483833,7 +348382d,8 +3483830,15 +3483833,6 +3483838,3c 3483839,8 -348383a,40 -348383b,c0 -348383c,3c -348383d,2 -348383e,80 -348383f,40 -3483840,24 -3483841,42 -3483842,1c -3483843,3 -3483844,1 -3483845,2 -3483846,40 -3483847,20 -3483848,1 -3483849,4 -348384a,40 -348384b,20 -348384c,91 -348384d,2 -3483850,3 -3483851,e0 -3483853,8 -3483858,26 -3483859,b5 -348385a,ff -348385b,ff -348385d,15 -348385e,ac -3483860,3c -3483861,8 -3483862,80 -3483863,40 -3483864,25 -3483865,8 -3483866,1c -3483867,2 -3483868,a1 -348386c,3 -348386d,e0 -348386f,8 +348383a,80 +348383b,12 +348383c,25 +348383d,8 +348383e,a5 +348383f,d0 +3483840,91 +3483841,2 +3483843,24 +3483844,10 +3483847,7 +348384d,8 +348384e,40 +348384f,c0 +3483850,3c +3483851,2 +3483852,80 +3483853,40 +3483854,24 +3483855,42 +3483856,1c +3483857,3 +3483858,1 +3483859,2 +348385a,40 +348385b,20 +348385c,1 +348385d,4 +348385e,40 +348385f,20 +3483860,91 +3483861,2 +3483864,3 +3483865,e0 +3483867,8 +348386c,26 +348386d,b5 +348386e,ff +348386f,ff +3483871,15 +3483872,ac +3483874,3c +3483875,8 +3483876,80 +3483877,40 +3483878,25 +3483879,8 +348387a,1c +348387b,2 +348387c,a1 +3483880,3 +3483881,e0 +3483883,8 34b3000,27 34b3001,bd 34b3002,ff diff --git a/data/symbols.json b/data/symbols.json index 964b9ab7e..2636a400d 100644 --- a/data/symbols.json +++ b/data/symbols.json @@ -1,6 +1,6 @@ { - "ADULT_INIT_ITEMS": "03483630", - "ADULT_VALID_ITEMS": "0348363C", + "ADULT_INIT_ITEMS": "03483644", + "ADULT_VALID_ITEMS": "03483650", "COOP_GET_ITEM": "03481C01", "EXTENDED_ITEM_DATA": "03482008", "FAIRY_ITEMS": "03481D05", diff --git a/version.py b/version.py index cd3060df7..63680f27e 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.20.11 f.LUM' +__version__ = '2.20.12 f.LUM' From d86c4890db788c1dc645a027ed8e10fcd4bb33ee Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 5 Oct 2018 00:13:08 -0400 Subject: [PATCH 637/755] Shop items use the clear hint text instead of the item name (Issue #196) --- HintList.py | 12 ++++----- Hints.py | 73 ++++++++++++++++++++++++++++++----------------------- Patches.py | 10 +++++--- version.py | 2 +- 4 files changed, 55 insertions(+), 42 deletions(-) diff --git a/HintList.py b/HintList.py index 17af2819f..8e6d60bdd 100644 --- a/HintList.py +++ b/HintList.py @@ -18,13 +18,13 @@ def __init__(self, name, text, type, choice=None): self.text = text[choice] -def getHint(name, world): +def getHint(name, clearer_hint=False): hint = name if name not in hintTable: hint = 'KeyError' textOptions, clearText, type = hintTable[hint] - if world.clearer_hints == True: + if clearer_hint: if clearText == None: return Hint(name, textOptions, type, 0) return Hint(name, clearText, type) @@ -35,7 +35,7 @@ def getHint(name, world): def getHintGroup(group, world): ret = [] for name in hintTable: - hint = getHint(name, world) + hint = getHint(name, world.clearer_hints) if hint.type == group and not (name in hintExclusions(world)): ret.append(hint) return ret @@ -79,7 +79,7 @@ def getHintGroup(group, world): 'Zora Tunic': (["a sapphire suit", "a fishy outfit", "lake clothing"], "a Zora Tunic", 'item'), 'Epona': (["a horse", "a four legged friend"], "Epona", 'item'), 'Zeldas Lullaby': (["a song of royal slumber", "a triforce tune"], "Zelda's Lullaby", 'item'), - 'Eponas Song': (["an equestrian etude", "a ranch song"], "Epona's song", 'item'), + 'Eponas Song': (["an equestrian etude", "a ranch song"], "Epona's Song", 'item'), 'Sarias Song': (["a song of dancing Gorons", "a green girl's tune", "child's forest melody"], "Sarias Song", 'item'), 'Suns Song': (["Sunny Day", "a time advancer", "a day/night melody", "the gibdo's bane"], "the Sun's Song", 'item'), 'Song of Time': (["a song 7 years long", "a tune to move blocks"], "the Song of Time", 'item'), @@ -108,8 +108,8 @@ def getHintGroup(group, world): 'Deku Stick Capacity': (["a lumber rack", "more flammable twigs"], "a Stick Capacity Upgrade", 'item'), 'Deku Nut Capacity': (["more nuts", "flashbang storage"], "a Nut Capacity Upgrade", 'item'), 'Heart Container': (["a lot of love", "a Valentine's gift", "a boss's organ"], "a Heart Container", 'item'), - 'Piece of Heart': (["love", "a partial Valentine"], "a Heart Piece", 'item'), - 'Piece of Heart (Treasure Chest Game)': (["love", "a partial Valentine"], "a Heart Piece", 'item'), + 'Piece of Heart': (["love", "a partial Valentine"], "a Piece of Heart", 'item'), + 'Piece of Heart (Treasure Chest Game)': (["love", "a partial Valentine"], "a Piece of Heart", 'item'), 'Recovery Heart': (["a free heal", "disappointing love"], "a Recovery Heart", 'item'), 'Rupee (Treasure Chest Game)': ("the dollar of defeat", 'a Green Rupee', 'item'), 'Deku Stick (1)': ("a breakable branch", 'a Deku Stick', 'item'), diff --git a/Hints.py b/Hints.py index a97aae9fd..89bce3c0c 100644 --- a/Hints.py +++ b/Hints.py @@ -47,6 +47,27 @@ def filterTrailingSpace(text): else: return text +hintPrefixes = [ + 'a few ', + 'some ', + 'plenty of ', + 'a ', + 'an ', + 'the ', + '', +] + +def getSimpleHintNoPrefix(item): + hint = getHint(item.name, True).text + + for prefix in hintPrefixes: + if hint.startswith(prefix): + # return without the prefix + return hint[len(prefix):] + + # no prefex + return hint + def colorText(text, color): colorMap = { 'White': '\x40', @@ -59,16 +80,6 @@ def colorText(text, color): 'Black': '\x47', } - ignoredStarts = [ - 'a few ', - 'some ', - 'plenty of ', - 'a ', - 'an ', - 'the ', - '', - ] - colorTags = False while True: splitText = text.split('#', 2) @@ -81,9 +92,9 @@ def colorText(text, color): break if not colorTags: - for ignoredStart in ignoredStarts: - if text.startswith(ignoredStart): - text = text[:len(ignoredStart)] + '\x05' + colorMap[color] + text[len(ignoredStart):] + '\x05\x40' + for prefix in hintPrefixes: + if text.startswith(prefix): + text = text[:len(prefix)] + '\x05' + colorMap[color] + text[len(prefix):] + '\x05\x40' break return text @@ -116,7 +127,7 @@ def buildGossipHints(world): requiredSample = random.sample(requiredSample, random.randint(3,4)) for location in requiredSample: if location.parent_region.dungeon: - add_hint(world, stoneIDs.pop(0), buildHintString(colorText(getHint(location.parent_region.dungeon.name, world).text, 'Light Blue') + \ + add_hint(world, stoneIDs.pop(0), buildHintString(colorText(getHint(location.parent_region.dungeon.name, world.clearer_hints).text, 'Light Blue') + \ " is on the way of the hero.")) else: add_hint(world, stoneIDs.pop(0), buildHintString(colorText(location.hint, 'Light Blue') + " is on the way of the hero.")) @@ -130,8 +141,8 @@ def buildGossipHints(world): for locationWorld in world.get_locations(): if hint.name == locationWorld.name: checkedLocations.append(hint.name) - add_hint(world, stoneIDs.pop(0), buildHintString(colorText(getHint(locationWorld.name, world).text, 'Green') + " " + \ - colorText(getHint(getItemGenericName(locationWorld.item), world).text, 'Red') + ".")) + add_hint(world, stoneIDs.pop(0), buildHintString(colorText(getHint(locationWorld.name, world.clearer_hints).text, 'Green') + " " + \ + colorText(getHint(getItemGenericName(locationWorld.item), world.clearer_hints).text, 'Red') + ".")) # Add good location hints @@ -146,8 +157,8 @@ def buildGossipHints(world): for locationWorld in world.get_locations(): if hint.name == locationWorld.name: checkedLocations.append(locationWorld.name) - add_hint(world, stoneIDs.pop(0), buildHintString(colorText(getHint(locationWorld.name, world).text, 'Green') + " " + \ - colorText(getHint(getItemGenericName(locationWorld.item), world).text, 'Red') + ".")) + add_hint(world, stoneIDs.pop(0), buildHintString(colorText(getHint(locationWorld.name, world.clearer_hints).text, 'Green') + " " + \ + colorText(getHint(getItemGenericName(locationWorld.item), world.clearer_hints).text, 'Red') + ".")) # add bad dungeon locations hints for dungeon in random.sample(world.dungeons, random.randint(3,4)): @@ -161,8 +172,8 @@ def buildGossipHints(world): location.item.type != 'Song']) checkedLocations.append(locationWorld.name) - add_hint(world, stoneIDs.pop(0), buildHintString(colorText(getHint(dungeon.name, world).text, 'Green') + \ - " hoards " + colorText(getHint(getItemGenericName(locationWorld.item), world).text, 'Red') + ".")) + add_hint(world, stoneIDs.pop(0), buildHintString(colorText(getHint(dungeon.name, world.clearer_hints).text, 'Green') + \ + " hoards " + colorText(getHint(getItemGenericName(locationWorld.item), world.clearer_hints).text, 'Red') + ".")) # add bad overworld locations hints # only choose location if it is new and a proper item from the overworld @@ -188,7 +199,7 @@ def buildGossipHints(world): overworldSample = random.sample(overworldlocations, random.randint(2,4)) for locationWorld in overworldSample: checkedLocations.append(locationWorld.name) - add_hint(world, stoneIDs.pop(0), buildHintString(colorText(getHint(getItemGenericName(locationWorld.item), world).text, 'Red') + \ + add_hint(world, stoneIDs.pop(0), buildHintString(colorText(getHint(getItemGenericName(locationWorld.item), world.clearer_hints).text, 'Red') + \ " can be found at " + colorText(locationWorld.hint, 'Green') + ".")) # add good item hints @@ -207,10 +218,10 @@ def buildGossipHints(world): for locationWorld in gooditemSample: checkedLocations.append(locationWorld.name) if locationWorld.parent_region.dungeon: - add_hint(world, stoneIDs.pop(0), buildHintString(colorText(getHint(locationWorld.parent_region.dungeon.name, world).text, 'Green') + \ - " hoards " + colorText(getHint(getItemGenericName(locationWorld.item), world).text, 'Red') + ".")) + add_hint(world, stoneIDs.pop(0), buildHintString(colorText(getHint(locationWorld.parent_region.dungeon.name, world.clearer_hints).text, 'Green') + \ + " hoards " + colorText(getHint(getItemGenericName(locationWorld.item), world.clearer_hints).text, 'Red') + ".")) else: - add_hint(world, stoneIDs.pop(0), buildHintString(colorText(getHint(getItemGenericName(locationWorld.item), world).text, 'Red') + \ + add_hint(world, stoneIDs.pop(0), buildHintString(colorText(getHint(getItemGenericName(locationWorld.item), world.clearer_hints).text, 'Red') + \ " can be found at " + colorText(locationWorld.hint, 'Green') + ".")) # fill the remaining hints with junk @@ -226,12 +237,12 @@ def buildBossRewardHints(world, messages): # text that appears at altar as a child. text = '\x08' - text += get_raw_text(getHint('Spiritual Stone Text Start', world).text) + text += get_raw_text(getHint('Spiritual Stone Text Start', world.clearer_hints).text) for reward in bossRewardsSpiritualStones: text += buildBossString(reward, world) text = setRewardColor(text) - text += get_raw_text(getHint('Spiritual Stone Text End', world).text) + text += get_raw_text(getHint('Spiritual Stone Text End', world.clearer_hints).text) text += '\x0B' update_message_by_id(messages, 0x707a, text, 0x20) @@ -244,7 +255,7 @@ def buildBossRewardHints(world, messages): text += buildBossString(reward, world) text = setRewardColor(text) - text += get_raw_text(getHint('Medallion Text End', world).text) + text += get_raw_text(getHint('Medallion Text End', world.clearer_hints).text) text += '\x0B' update_message_by_id(messages, 0x7057, start + text, 0x20) @@ -254,7 +265,7 @@ def buildBossString(reward, world): text = '' for location in world.get_locations(): if location.item.name == reward: - text += '\x08' + get_raw_text(getHint(location.name, world).text) + text += '\x08' + get_raw_text(getHint(location.name, world.clearer_hints).text) return text # alternates through color set commands in child and adult boss reward hint strings setting the colors at the start of the string to correspond with the reward found at the location. @@ -291,16 +302,16 @@ def buildGanonText(world, messages): if world.trials == 0: for location in world.get_locations(): if location.item.name == 'Light Arrows': - text = get_raw_text(getHint('Light Arrow Location', world).text) + text = get_raw_text(getHint('Light Arrow Location', world.clearer_hints).text) location_hint = location.hint.replace('Ganon\'s Castle', 'my castle') text += get_raw_text(location_hint) text += '!' break else: - text = get_raw_text(getHint('Validation Line', world).text) + text = get_raw_text(getHint('Validation Line', world.clearer_hints).text) for location in world.get_locations(): if location.name == 'Ganons Tower Boss Key Chest': - text += get_raw_text(getHint(getItemGenericName(location.item), world).text) + text += get_raw_text(getHint(getItemGenericName(location.item), world.clearer_hints).text) update_message_by_id(messages, 0x70CC, text) diff --git a/Patches.py b/Patches.py index 8f270f4f8..d08982668 100644 --- a/Patches.py +++ b/Patches.py @@ -8,7 +8,7 @@ import random import copy -from Hints import writeGossipStoneHintsHints, buildBossRewardHints, buildGanonText +from Hints import writeGossipStoneHintsHints, buildBossRewardHints, buildGanonText, getSimpleHintNoPrefix from Utils import local_path, default_output_path, random_choices from Items import ItemFactory, item_data from Messages import * @@ -1878,11 +1878,13 @@ def place_shop_items(rom, world, shop_items, messages, locations, init_shop_id=F description_text = '\x08\x05\x41%s %d Rupees\x01%s\x01\x05\x40Special deal! ONE LEFT!\x01Get it while it lasts!\x09\x0A\x02' % (split_item_name[0], location.price, split_item_name[1]) purchase_text = '\x08%s %d Rupees\x09\x01%s\x01\x1B\x05\x42Buy\x01Don\'t buy\x05\x40\x02' % (split_item_name[0], location.price, split_item_name[1]) else: + shop_item_name = getSimpleHintNoPrefix(location.item) + if world.world_count > 1: - description_text = '\x08\x05\x41%s %d Rupees\x01\x05\x42Player %d\x05\x40\x01Special deal! ONE LEFT!\x09\x0A\x02' % (location.item.name, location.price, location.item.world.id + 1) + description_text = '\x08\x05\x41%s %d Rupees\x01\x05\x42Player %d\x05\x40\x01Special deal! ONE LEFT!\x09\x0A\x02' % (shop_item_name, location.price, location.item.world.id + 1) else: - description_text = '\x08\x05\x41%s %d Rupees\x01\x05\x40Special deal! ONE LEFT!\x01Get it while it lasts!\x09\x0A\x02' % (location.item.name, location.price) - purchase_text = '\x08%s %d Rupees\x09\x01\x01\x1B\x05\x42Buy\x01Don\'t buy\x05\x40\x02' % (location.item.name, location.price) + description_text = '\x08\x05\x41%s %d Rupees\x01\x05\x40Special deal! ONE LEFT!\x01Get it while it lasts!\x09\x0A\x02' % (shop_item_name, location.price) + purchase_text = '\x08%s %d Rupees\x09\x01\x01\x1B\x05\x42Buy\x01Don\'t buy\x05\x40\x02' % (shop_item_name, location.price) update_message_by_id(messages, shop_item.description_message, description_text, 0x03) update_message_by_id(messages, shop_item.purchase_message, purchase_text, 0x03) diff --git a/version.py b/version.py index 63680f27e..c44b4b255 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.20.12 f.LUM' +__version__ = '2.20.13 f.LUM' From 29d5a5e916c99be5f4454637b824633024380553 Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 5 Oct 2018 03:29:27 -0400 Subject: [PATCH 638/755] Fix textbox's showing the correct player name for non-coop --- ASM/build/asm_symbols.txt | 8 +-- ASM/src/hacks.asm | 8 ++- ASM/src/textbox.asm | 6 +- data/rom_patch.txt | 112 +++++++++++++++++++++----------------- version.py | 2 +- 5 files changed, 75 insertions(+), 61 deletions(-) diff --git a/ASM/build/asm_symbols.txt b/ASM/build/asm_symbols.txt index cfcbb0ab8..898b8a053 100644 --- a/ASM/build/asm_symbols.txt +++ b/ASM/build/asm_symbols.txt @@ -1016,10 +1016,10 @@ 80403814 @@overwrite_type 8040381C @@return 80403824 get_name_char -8040384C @@coop_player_name -80403864 @@return -8040386C reset_player_name_id -80403888 .byt:07C8 +80403850 @@coop_player_name +80403868 @@return +80403870 reset_player_name_id +80403890 .byt:07C0 80405000 text_init,0000002C 8040502C text_print,000000A8 804050D4 text_flush,00000148 diff --git a/ASM/src/hacks.asm b/ASM/src/hacks.asm index 53917bd04..5f4151391 100755 --- a/ASM/src/hacks.asm +++ b/ASM/src/hacks.asm @@ -522,8 +522,10 @@ ori s0, v0, 0 ; Replaces -; addiu s5,s5,-1 -; sll s5,s5,0x10 -.org 0xB517C0 +; lw s6,48(sp) +; lw s7,52(sp) +; lw s8,56(sp) +.org 0xB52784 jal reset_player_name_id nop + lw ra, 0x3C (sp) diff --git a/ASM/src/textbox.asm b/ASM/src/textbox.asm index 647804c53..b5d97861f 100644 --- a/ASM/src/textbox.asm +++ b/ASM/src/textbox.asm @@ -7,6 +7,7 @@ get_name_char: nop li t0, SAVE_CONTEXT + add t0, t0, a0 lbu v0, 0x24 (t0) b @@return nop @@ -25,8 +26,9 @@ get_name_char: reset_player_name_id: ; displaced code - addiu s5, s5, -1 - sll s5, s5, 0x10 + lw s6,48(sp) + lw s7,52(sp) + lw s8,56(sp) li t0, PLAYER_NAME_ID sb zero, 0x00 (t0) diff --git a/data/rom_patch.txt b/data/rom_patch.txt index 0b90bc3fe..248bc0b6e 100644 --- a/data/rom_patch.txt +++ b/data/rom_patch.txt @@ -534,12 +534,15 @@ b516c8,34 b516c9,50 b516ca,0 b516cb,0 -b517c0,c -b517c1,10 -b517c2,e -b517c3,1b -b517c5,0 -b517c6,0 +b52784,c +b52785,10 +b52786,e +b52787,1c +b52788,0 +b52789,0 +b5278b,0 +b5278d,bf +b5278f,3c b54b38,c b54b39,10 b54b3a,d @@ -5879,7 +5882,7 @@ ec9ce7,7a 348382c,91 348382d,8 3483830,15 -3483833,6 +3483833,7 3483838,3c 3483839,8 348383a,80 @@ -5888,53 +5891,60 @@ ec9ce7,7a 348383d,8 348383e,a5 348383f,d0 -3483840,91 -3483841,2 -3483843,24 -3483844,10 -3483847,7 -348384d,8 -348384e,40 -348384f,c0 -3483850,3c -3483851,2 -3483852,80 -3483853,40 -3483854,24 -3483855,42 -3483856,1c -3483857,3 -3483858,1 -3483859,2 -348385a,40 -348385b,20 +3483840,1 +3483841,4 +3483842,40 +3483843,20 +3483844,91 +3483845,2 +3483847,24 +3483848,10 +348384b,7 +3483851,8 +3483852,40 +3483853,c0 +3483854,3c +3483855,2 +3483856,80 +3483857,40 +3483858,24 +3483859,42 +348385a,1c +348385b,3 348385c,1 -348385d,4 +348385d,2 348385e,40 348385f,20 -3483860,91 -3483861,2 -3483864,3 -3483865,e0 -3483867,8 -348386c,26 -348386d,b5 -348386e,ff -348386f,ff -3483871,15 -3483872,ac -3483874,3c -3483875,8 -3483876,80 -3483877,40 -3483878,25 -3483879,8 -348387a,1c -348387b,2 -348387c,a1 -3483880,3 -3483881,e0 -3483883,8 +3483860,1 +3483861,4 +3483862,40 +3483863,20 +3483864,91 +3483865,2 +3483868,3 +3483869,e0 +348386b,8 +3483870,8f +3483871,b6 +3483873,30 +3483874,8f +3483875,b7 +3483877,34 +3483878,8f +3483879,be +348387b,38 +348387c,3c +348387d,8 +348387e,80 +348387f,40 +3483880,25 +3483881,8 +3483882,1c +3483883,2 +3483884,a1 +3483888,3 +3483889,e0 +348388b,8 34b3000,27 34b3001,bd 34b3002,ff diff --git a/version.py b/version.py index c44b4b255..6faa30f72 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.20.13 f.LUM' +__version__ = '2.20.14 f.LUM' From 97a4416b1911d8b11020349196be783f4a9094af Mon Sep 17 00:00:00 2001 From: AmazingAmpharos Date: Fri, 5 Oct 2018 13:52:21 -0500 Subject: [PATCH 639/755] Fix for Boss Key placement in key for key spots If the logic doesn't make sense reading it, remember De Morgan's laws. In this case not (A or B) = (not A and not B). I used that to make the code shorter. The point here is that the key for key previously had two triggers: the spot contains a small key or keys not yet placed. The second condition was not a good assumption if the Boss Key landed there and a critical Small Key was blocked by the Boss Key. This adjusts the keys not placed check to fail if Boss Key is already in such a location. --- Rules.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Rules.py b/Rules.py index a3577a4e6..049f93cff 100644 --- a/Rules.py +++ b/Rules.py @@ -603,7 +603,7 @@ def dung_rules_fitmq(world): set_rule(world.get_location('GS Fire Temple MQ East Tower Top'), lambda state: state.can_play('Song of Time') or state.can_use('Longshot')) set_rule(world.get_location('GS Fire Temple MQ Fire Wall Maze Side Room'), lambda state: state.can_play('Song of Time') or state.has('Hover Boots')) set_rule(world.get_location('GS Fire Temple MQ Fire Wall Maze Center'), lambda state: state.has_explosives()) - set_rule(world.get_location('GS Fire Temple MQ Above Fire Wall Maze'), lambda state: state.has('Small Key (Fire Temple)', 5) or ((item_name(state, 'GS Fire Temple MQ Above Fire Wall Maze') == 'Small Key (Fire Temple)' or not world.keys_placed) and state.has('Small Key (Fire Temple)', 4))) + set_rule(world.get_location('GS Fire Temple MQ Above Fire Wall Maze'), lambda state: state.has('Small Key (Fire Temple)', 5) or ((item_name(state, 'GS Fire Temple MQ Above Fire Wall Maze') == 'Small Key (Fire Temple)' or not (world.keys_placed or item_name(state, 'GS Fire Temple MQ Above Fire Wall Maze') == 'Boss Key (Fire Temple)')) and state.has('Small Key (Fire Temple)', 4))) # Water Temple Vanilla def dung_rules_wt0(world): @@ -614,7 +614,7 @@ def dung_rules_wt0(world): set_rule(world.get_location('Water Temple Torches Chest'), lambda state: (state.has_bow() or state.can_use('Dins Fire')) and state.can_play('Zeldas Lullaby') and state.has('Iron Boots')) set_rule(world.get_location('Water Temple Dragon Chest'), lambda state: state.has('Iron Boots') and ((state.has('Progressive Strength Upgrade') and state.can_play('Zeldas Lullaby')) or (state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity) and state.can_play('Song of Time') and state.has_bow()))) set_rule(world.get_location('Water Temple Central Bow Target Chest'), lambda state: state.has_bow() and state.has('Iron Boots') and state.has('Progressive Strength Upgrade') and state.can_play('Zeldas Lullaby') and (state.has('Hover Boots') or state.can_use('Longshot'))) - set_rule(world.get_location('Water Temple Boss Key Chest'), lambda state: (state.has('Small Key (Water Temple)', 6) and state.has('Iron Boots') and (state.can_play('Zeldas Lullaby') or world.keysanity) and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and state.can_use('Longshot')) or (state.has('Small Key (Water Temple)', 5) and (item_name(state, 'Water Temple Boss Key Chest') == 'Small Key (Water Temple)' or not world.keys_placed))) #If key for key, this lets the logic reduce the small key reqs for every other locked door. + set_rule(world.get_location('Water Temple Boss Key Chest'), lambda state: (state.has('Small Key (Water Temple)', 6) and state.has('Iron Boots') and (state.can_play('Zeldas Lullaby') or world.keysanity) and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and state.can_use('Longshot')) or (state.has('Small Key (Water Temple)', 5) and (item_name(state, 'Water Temple Boss Key Chest') == 'Small Key (Water Temple)' or not (world.keys_placed or item_name(state, 'Water Temple Boss Key Chest') == 'Boss Key (Water Temple)')))) #If key for key, this lets the logic reduce the small key reqs for every other locked door. set_rule(world.get_location('Water Temple Cracked Wall Chest'), lambda state: state.has_explosives()) set_rule(world.get_location('Water Temple Dark Link Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity)) set_rule(world.get_location('Water Temple River Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and state.can_play('Song of Time') and state.has_bow() and (state.can_play('Zeldas Lullaby') or world.keysanity)) @@ -649,7 +649,7 @@ def dung_rules_wtmq(world): set_rule(world.get_location('GS Water Temple MQ Lizalfos Hallway'), lambda state: state.can_use('Dins Fire')) set_rule(world.get_location('GS Water Temple MQ Before Upper Water Switch'), lambda state: state.can_use('Longshot')) set_rule(world.get_location('GS Water Temple MQ South Basement'), lambda state: state.can_use('Fire Arrows')) - set_rule(world.get_location('GS Water Temple MQ North Basement'), lambda state: state.has('Small Key (Water Temple)', 2) or ((item_name(state, 'GS Water Temple MQ North Basement') == 'Small Key (Water Temple)' or not world.keys_placed) and state.has('Small Key (Water Temple)'))) + set_rule(world.get_location('GS Water Temple MQ North Basement'), lambda state: state.has('Small Key (Water Temple)', 2) or ((item_name(state, 'GS Water Temple MQ North Basement') == 'Small Key (Water Temple)' or not (world.keys_placed or item_name(state, 'GS Water Temple MQ North Basement') == 'Boss Key (Water Temple)')) and state.has('Small Key (Water Temple)'))) # Spirit Temple Vanilla def dung_rules_spt0(world): From c460b329b9a87541f895f626fe64be0337e209ec Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 5 Oct 2018 16:18:26 -0400 Subject: [PATCH 640/755] Fix player name text support for RA --- ASM/build/asm_symbols.txt | 12 ++- ASM/src/hacks.asm | 16 +-- ASM/src/textbox.asm | 24 +++++ data/rom_patch.txt | 222 +++++++++++++++++++++----------------- version.py | 2 +- 5 files changed, 166 insertions(+), 110 deletions(-) diff --git a/ASM/build/asm_symbols.txt b/ASM/build/asm_symbols.txt index 898b8a053..26634c51f 100644 --- a/ASM/build/asm_symbols.txt +++ b/ASM/build/asm_symbols.txt @@ -1015,11 +1015,13 @@ 804037E4 @@save_data_loop 80403814 @@overwrite_type 8040381C @@return -80403824 get_name_char -80403850 @@coop_player_name -80403868 @@return -80403870 reset_player_name_id -80403890 .byt:07C0 +80403824 get_name_char_1 +80403840 get_name_char_2 +8040385C get_name_char +80403888 @@coop_player_name +804038A0 @@return +804038A8 reset_player_name_id +804038C8 .byt:0788 80405000 text_init,0000002C 8040502C text_print,000000A8 804050D4 text_flush,00000148 diff --git a/ASM/src/hacks.asm b/ASM/src/hacks.asm index 5f4151391..da6f6a0bf 100755 --- a/ASM/src/hacks.asm +++ b/ASM/src/hacks.asm @@ -507,19 +507,19 @@ ; lui t2,0x8012 ; addu t2,t2,s3 ; lbu t2,-23053(t2) -.org 0xB51690 - jal get_name_char - addi a0, s3, -1 - ori t2, v0, 0 +.org 0xB51694 + jal get_name_char_1 + ;addi a0, s3, -1 + ;ori t2, v0, 0 ; Replaces ; lui s0,0x8012 ; addu s0,s0,s2 ; lbu s0,-23052(s0) -.org 0xB516C0 - jal get_name_char - ori a0, s2, 0 - ori s0, v0, 0 +.org 0xB516C4 + jal get_name_char_2 + ;ori a0, s2, 0 + ;ori s0, v0, 0 ; Replaces ; lw s6,48(sp) diff --git a/ASM/src/textbox.asm b/ASM/src/textbox.asm index b5d97861f..6c79163e4 100644 --- a/ASM/src/textbox.asm +++ b/ASM/src/textbox.asm @@ -1,3 +1,27 @@ +get_name_char_1: + addiu sp, sp, -0x10 + sw ra, 0x08 (sp) + + jal get_name_char + addi a0, s3, -1 + + ori t2, v0, 0 + lw ra, 0x08 (sp) + addiu sp, sp, 0x10 + + +get_name_char_2: + addiu sp, sp, -0x10 + sw ra, 0x08 (sp) + + jal get_name_char + ori a0, s2, 0 + + ori s0, v0, 0 + lw ra, 0x08 (sp) + addiu sp, sp, 0x10 + + ; a0 = char index into name get_name_char: li t0, PLAYER_NAME_ID diff --git a/data/rom_patch.txt b/data/rom_patch.txt index 248bc0b6e..527171e4b 100644 --- a/data/rom_patch.txt +++ b/data/rom_patch.txt @@ -512,32 +512,18 @@ b17bd0,0 b17bd1,0 b17bd2,0 b17bd3,0 -b51690,c -b51691,10 -b51692,e -b51693,9 -b51694,22 -b51695,64 -b51696,ff -b51697,ff -b51698,34 -b5169a,0 -b5169b,0 -b516c0,c -b516c2,e -b516c3,9 -b516c4,36 -b516c5,44 -b516c6,0 -b516c7,0 -b516c8,34 -b516c9,50 -b516ca,0 -b516cb,0 +b51694,c +b51695,10 +b51696,e +b51697,9 +b516c4,c +b516c5,10 +b516c6,e +b516c7,10 b52784,c b52785,10 b52786,e -b52787,1c +b52787,2a b52788,0 b52789,0 b5278b,0 @@ -5871,80 +5857,124 @@ ec9ce7,7a 348381c,3 348381d,e0 348381f,8 -3483824,3c -3483825,8 -3483826,80 -3483827,40 -3483828,25 -3483829,8 -348382a,1c -348382b,2 -348382c,91 -348382d,8 -3483830,15 -3483833,7 -3483838,3c -3483839,8 -348383a,80 -348383b,12 -348383c,25 -348383d,8 -348383e,a5 -348383f,d0 -3483840,1 -3483841,4 -3483842,40 -3483843,20 -3483844,91 -3483845,2 -3483847,24 -3483848,10 -348384b,7 -3483851,8 -3483852,40 -3483853,c0 -3483854,3c -3483855,2 -3483856,80 -3483857,40 -3483858,24 -3483859,42 -348385a,1c -348385b,3 -348385c,1 -348385d,2 -348385e,40 -348385f,20 -3483860,1 -3483861,4 -3483862,40 -3483863,20 +3483824,27 +3483825,bd +3483826,ff +3483827,f0 +3483828,af +3483829,bf +348382b,8 +348382c,c +348382d,10 +348382e,e +348382f,17 +3483830,22 +3483831,64 +3483832,ff +3483833,ff +3483834,34 +3483835,4a +3483838,8f +3483839,bf +348383b,8 +348383c,27 +348383d,bd +348383f,10 +3483840,27 +3483841,bd +3483842,ff +3483843,f0 +3483844,af +3483845,bf +3483847,8 +3483848,c +3483849,10 +348384a,e +348384b,17 +348384c,36 +348384d,44 +3483850,34 +3483851,50 +3483854,8f +3483855,bf +3483857,8 +3483858,27 +3483859,bd +348385b,10 +348385c,3c +348385d,8 +348385e,80 +348385f,40 +3483860,25 +3483861,8 +3483862,1c +3483863,2 3483864,91 -3483865,2 -3483868,3 -3483869,e0 -348386b,8 -3483870,8f -3483871,b6 -3483873,30 -3483874,8f -3483875,b7 -3483877,34 -3483878,8f -3483879,be -348387b,38 -348387c,3c -348387d,8 -348387e,80 -348387f,40 -3483880,25 -3483881,8 -3483882,1c -3483883,2 -3483884,a1 -3483888,3 -3483889,e0 -348388b,8 +3483865,8 +3483868,15 +348386b,7 +3483870,3c +3483871,8 +3483872,80 +3483873,12 +3483874,25 +3483875,8 +3483876,a5 +3483877,d0 +3483878,1 +3483879,4 +348387a,40 +348387b,20 +348387c,91 +348387d,2 +348387f,24 +3483880,10 +3483883,7 +3483889,8 +348388a,40 +348388b,c0 +348388c,3c +348388d,2 +348388e,80 +348388f,40 +3483890,24 +3483891,42 +3483892,1c +3483893,3 +3483894,1 +3483895,2 +3483896,40 +3483897,20 +3483898,1 +3483899,4 +348389a,40 +348389b,20 +348389c,91 +348389d,2 +34838a0,3 +34838a1,e0 +34838a3,8 +34838a8,8f +34838a9,b6 +34838ab,30 +34838ac,8f +34838ad,b7 +34838af,34 +34838b0,8f +34838b1,be +34838b3,38 +34838b4,3c +34838b5,8 +34838b6,80 +34838b7,40 +34838b8,25 +34838b9,8 +34838ba,1c +34838bb,2 +34838bc,a1 +34838c0,3 +34838c1,e0 +34838c3,8 34b3000,27 34b3001,bd 34b3002,ff diff --git a/version.py b/version.py index 6faa30f72..9fe466582 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.20.14 f.LUM' +__version__ = '2.20.15 f.LUM' From 9cd3e33ded45a16b6e6b3f7f40f73f3b4587d3e8 Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 5 Oct 2018 16:52:48 -0400 Subject: [PATCH 641/755] Colossus hands can't contain dungeon items, spirit has 2 unique items --- Dungeons.py | 5 ++--- Fill.py | 15 +++++++++++++-- Settings.py | 5 +++++ version.py | 2 +- 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/Dungeons.py b/Dungeons.py index 697a9b8e5..5c388ffb3 100644 --- a/Dungeons.py +++ b/Dungeons.py @@ -167,7 +167,7 @@ def make_dungeon(name, dungeon_regions_names, boss_key, small_keys, dungeon_item SpT = make_dungeon( 'Spirit Temple', ['Spirit Temple Lobby', 'Child Spirit Temple', 'Adult Spirit Temple', 'Spirit Temple Shared', - 'Lower Adult Spirit Temple', 'Spirit Temple Boss Area', 'Mirror Shield Hand', 'Silver Gauntlets Hand'], + 'Lower Adult Spirit Temple', 'Spirit Temple Boss Area'], ItemFactory('Boss Key (Spirit Temple)'), ItemFactory(['Small Key (Spirit Temple)'] * 7), ItemFactory(['Map (Spirit Temple)', 'Compass (Spirit Temple)'])) @@ -175,8 +175,7 @@ def make_dungeon(name, dungeon_regions_names, boss_key, small_keys, dungeon_item SpT = make_dungeon( 'Spirit Temple', ['Spirit Temple Lobby', 'Child Spirit Temple', 'Child Spirit Temple Climb', 'Early Adult Spirit Temple', - 'Spirit Temple Central Chamber', 'Spirit Temple Beyond Central Locked Door', 'Spirit Temple Beyond Final Locked Door', - 'Spirit Temple Outdoor Hands'], + 'Spirit Temple Central Chamber', 'Spirit Temple Beyond Central Locked Door', 'Spirit Temple Beyond Final Locked Door'], ItemFactory('Boss Key (Spirit Temple)'), ItemFactory(['Small Key (Spirit Temple)'] * 5), ItemFactory(['Map (Spirit Temple)', 'Compass (Spirit Temple)'])) diff --git a/Fill.py b/Fill.py index 0397a03cb..82c23c28d 100644 --- a/Fill.py +++ b/Fill.py @@ -2,6 +2,7 @@ import logging from BaseClasses import CollectionState from Rules import set_shop_rules +from Utils import random_choices class FillError(RuntimeError): pass @@ -152,8 +153,18 @@ def fill_dungeon_unique_item(window, worlds, fill_locations, itempool, attempts= try: # choose a random set of items and locations dungeon_locations = [] - for dungeon in [dungeon for world in worlds for dungeon in world.dungeons]: - dungeon_locations.append(random.choice([location for region in dungeon.regions for location in region.locations if location in fill_locations])) + for world in worlds: + for dungeon in world.dungeons: + dungeon_all_location = [location for region in dungeon.regions for location in region.locations if location in fill_locations] + if dungeon.name == 'Spirit Temple': + if world.dungeon_mq['SpT']: + dungeon_all_location.extend([location for region in ['Mirror Shield Hand', 'Silver Gauntlets Hand'] for location in world.get_region(region).locations]) + else: + dungeon_all_location.extend([location for region in ['Spirit Temple Outdoor Hands'] for location in world.get_region(region).locations]) + + dungeon_locations.extend(random_choices(dungeon_all_location, k=2)) + else: + dungeon_locations.append(random.choice(dungeon_all_location)) dungeon_items = random.sample(major_items, len(dungeon_locations)) new_dungeon_locations = list(dungeon_locations) diff --git a/Settings.py b/Settings.py index bbaa8835e..bcf2a0240 100644 --- a/Settings.py +++ b/Settings.py @@ -467,6 +467,11 @@ def parse_custom_navi_color(s): dungeon similar in value instaed of valued based on chest count. + Spirit Temple Colossus hands count + as part of the dungeon. Spirit + Temple has TWO items to match + vanilla distribution. + Dungeon items and GS Tokens do not count as major items. ''', diff --git a/version.py b/version.py index 9fe466582..d7415e18f 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.20.15 f.LUM' +__version__ = '2.20.16 f.LUM' From 11772b0f00ab05fcd6b91f15d34ccbece83c44d6 Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 5 Oct 2018 17:44:43 -0400 Subject: [PATCH 642/755] fix gerudo fortress key text in shops --- Patches.py | 2 +- version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Patches.py b/Patches.py index d08982668..a8a9b923b 100644 --- a/Patches.py +++ b/Patches.py @@ -1869,7 +1869,7 @@ def place_shop_items(rom, world, shop_items, messages, locations, init_shop_id=F shuffle_messages.shop_item_messages.extend( [shop_item.description_message, shop_item.purchase_message]) - if location.item.dungeonitem: + if location.item.dungeonitem or location.item.type == 'FortressSmallKey': split_item_name = location.item.name.split('(') split_item_name[1] = '(' + split_item_name[1] if world.world_count > 1: diff --git a/version.py b/version.py index d7415e18f..352d710cc 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.20.16 f.LUM' +__version__ = '2.20.17 f.LUM' From 7e88fb28c3a8410ad57cb9be92c264c4fabefce9 Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 5 Oct 2018 17:59:23 -0400 Subject: [PATCH 643/755] Fix one item per dungeon considering keysanity --- BaseClasses.py | 25 +++++++++++++++++++++---- Fill.py | 6 +++--- version.py | 2 +- 3 files changed, 25 insertions(+), 8 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 5c82a2685..c9e062d9b 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -217,7 +217,7 @@ def push_item(self, location, item): location.item = item item.location = location - if item.type != 'Token' and item.type != 'Event' and item.type != 'Shop' and not (item.key or item.map or item.compass) and item.advancement and location.parent_region.dungeon: + if item.majoritem and location.parent_region.dungeon: location.parent_region.dungeon.major_items += 1 logging.getLogger('').debug('Placed %s [World %d] at %s [World %d]', item, item.world.id if hasattr(item, 'world') else -1, location, location.world.id if hasattr(location, 'world') else -1) @@ -676,6 +676,9 @@ def can_reach(self, state): return False def can_fill(self, item): + if item.majoritem and self.world.one_item_per_dungeon and self.dungeon: + return self.dungeon.major_items == 0 + is_dungeon_restricted = False if item.map or item.compass: is_dungeon_restricted = self.world.shuffle_mapcompass == 'dungeon' @@ -683,8 +686,6 @@ def can_fill(self, item): is_dungeon_restricted = self.world.shuffle_smallkeys == 'dungeon' elif item.bosskey: is_dungeon_restricted = self.world.shuffle_bosskeys == 'dungeon' - elif item.type != 'Token' and item.type != 'Event' and item.type != 'Shop' and item.advancement and self.world.one_item_per_dungeon and self.dungeon: - return self.dungeon.major_items == 0 if is_dungeon_restricted: return self.dungeon and self.dungeon.is_dungeon_item(item) and item.world.id == self.world.id @@ -849,7 +850,23 @@ def compass(self): @property def dungeonitem(self): return self.type == 'SmallKey' or self.type == 'BossKey' or self.type == 'Map' or self.type == 'Compass' - + + @property + def majoritem(self): + if self.type == 'Token' or self.type == 'Event' or self.type == 'Shop' or not self.advancement: + return False + + if self.name.startswith('Bombchus') and not self.world.bombchus_in_logic: + return False + + if self.map or self.compass: + return False + if self.smallkey and self.world.shuffle_smallkeys == 'dungeon': + return False + if self.bosskey and self.world.shuffle_bosskeys == 'dungeon': + return False + + return True def __str__(self): return str(self.__unicode__()) diff --git a/Fill.py b/Fill.py index 82c23c28d..6bc5190f1 100644 --- a/Fill.py +++ b/Fill.py @@ -145,8 +145,8 @@ def fill_dungeon_unique_item(window, worlds, fill_locations, itempool, attempts= # token items, or dungeon items as a major item. itempool at this # point should only be able to have tokens of those restrictions # since the rest are already placed. - major_items = [item for item in itempool if item.type != 'Token'] - token_items = [item for item in itempool if item.type == 'Token'] + major_items = [item for item in itempool if item.majoritem] + minor_items = [item for item in itempool if not item.majoritem] while attempts: attempts -= 1 @@ -170,7 +170,7 @@ def fill_dungeon_unique_item(window, worlds, fill_locations, itempool, attempts= new_dungeon_locations = list(dungeon_locations) new_dungeon_items = list(dungeon_items) non_dungeon_items = [item for item in major_items if item not in dungeon_items] - all_other_item_state = CollectionState.get_states_with_items([world.state for world in worlds], token_items + non_dungeon_items) + all_other_item_state = CollectionState.get_states_with_items([world.state for world in worlds], minor_items + non_dungeon_items) # attempt to place the items into the locations random.shuffle(new_dungeon_locations) diff --git a/version.py b/version.py index 352d710cc..bc7b93a52 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.20.17 f.LUM' +__version__ = '2.20.18 f.LUM' From 15919f8fb2e9faa86b01e27e4f692a65e016a4b7 Mon Sep 17 00:00:00 2001 From: Nick Langille Date: Fri, 5 Oct 2018 19:45:56 -0400 Subject: [PATCH 644/755] Fix dungeon info rendering issues --- ASM/build/asm_symbols.txt | 96 +- ASM/build/bundle.o | Bin 10148 -> 9968 bytes ASM/build/c_symbols.txt | 26 +- ASM/c/gfx.c | 8 +- data/rom_patch.txt | 12010 ++++++++++++++++++------------------ data/symbols.json | 34 +- 6 files changed, 6025 insertions(+), 6149 deletions(-) diff --git a/ASM/build/asm_symbols.txt b/ASM/build/asm_symbols.txt index cd7321d9e..2f9bbd7c5 100644 --- a/ASM/build/asm_symbols.txt +++ b/ASM/build/asm_symbols.txt @@ -1013,54 +1013,54 @@ 80405000 disp_buf_init,00000018 80405018 sprite_bytes_per_tile,00000028 80405040 sprite_bytes,00000030 -80405070 sprite_load,00000254 -804052C4 sprite_draw,000000F0 -804053B4 draw_setup,000001DC -80405590 gfx_init,00000148 -804056D8 heap_init,00000014 -804056EC heap_alloc,00000034 -80405720 file_init,00000044 -80405764 c_init,0000002C -80405790 c_after_game_state_update,00000088 -80405818 draw_dungeon_info,000009B8 -804061D0 text_init,0000002C -804061FC text_print,000000A8 -804062A4 text_flush,00000148 -804063F8 .byt:0010 -804063F8 font_sprite -80406408 .byt:0010 -80406408 quest_items_sprite -80406418 .byt:0010 -80406418 medals_sprite -80406428 .byt:0010 -80406428 stones_sprite -80406438 .byt:000E -80406438 cfg_dungeon_rewards -80406448 .byt:0012 -80406448 medal_colors -8040645C .byt:009C -8040645C dungeons -804064F8 .byt:0004 -804064F8 cfg_dungeon_info_enable -804064FC .byt:0004 -804064FC dungeon_count -80406500 .byt:0004 -80406500 heap_next -80406504 .byt:0004 -80406504 cfg_dungeon_info_reward_need_altar -80406508 .byt:0004 -80406508 cfg_dungeon_info_reward_need_compass -8040650C .byt:0004 -8040650C cfg_dungeon_info_mq_need_map -80406510 .byt:0004 -80406510 cfg_dungeon_info_mq_enable -8040651C .byt:0010 -8040651C setup_db -8040652C .byt:000E -8040652C cfg_dungeon_is_mq -8040653A .byt:14C8 -8040653A FONT_TEXTURE -80407A02 .byt:85FE +80405070 sprite_load,000001A0 +80405210 sprite_draw,000000F0 +80405300 draw_setup,000001DC +804054DC gfx_init,00000148 +80405624 heap_init,00000014 +80405638 heap_alloc,00000034 +8040566C file_init,00000044 +804056B0 c_init,0000002C +804056DC c_after_game_state_update,00000088 +80405764 draw_dungeon_info,000009B8 +8040611C text_init,0000002C +80406148 text_print,000000A8 +804061F0 text_flush,00000148 +80406344 .byt:0010 +80406344 font_sprite +80406354 .byt:0010 +80406354 quest_items_sprite +80406364 .byt:0010 +80406364 medals_sprite +80406374 .byt:0010 +80406374 stones_sprite +80406384 .byt:000E +80406384 cfg_dungeon_rewards +80406394 .byt:0012 +80406394 medal_colors +804063A8 .byt:009C +804063A8 dungeons +80406444 .byt:0004 +80406444 cfg_dungeon_info_enable +80406448 .byt:0004 +80406448 dungeon_count +8040644C .byt:0004 +8040644C heap_next +80406450 .byt:0004 +80406450 cfg_dungeon_info_reward_need_altar +80406454 .byt:0004 +80406454 cfg_dungeon_info_reward_need_compass +80406458 .byt:0004 +80406458 cfg_dungeon_info_mq_need_map +8040645C .byt:0004 +8040645C cfg_dungeon_info_mq_enable +80406468 .byt:0010 +80406468 setup_db +80406478 .byt:000E +80406478 cfg_dungeon_is_mq +80406486 .byt:14C8 +80406486 FONT_TEXTURE +8040794E .byt:86B2 80480000 DUMMY_ACTOR 80500000 C_HEAP  \ No newline at end of file diff --git a/ASM/build/bundle.o b/ASM/build/bundle.o index 9ef076e59f6b057bdc6dcd2e52c26dee9b0d696f..d5f9850c05530447629fc7f026548f6ce269f422 100644 GIT binary patch delta 2142 zcmXX{J#15F6g_@+?BqS$@A)Nw^HT`qJtveT3N(cbPbDgq%8-^{RT&r}@Q@)={}>pM z9JLIogeub)wHczyB9@vVs?#O|L!^S*fguB`Ixu8lKy3#GtD+J^sC%yOXDRQzbH97f zJ>UJl*!2s|52{0n!F$12qH^!@SIL#eFY))ChbvfI3{hJT@o+O-{t2n&pOLoSM-iy{ z)onP{`>k>(!qQNyHF3jj;qzh`S+9ZX#jvpkFAIKZ zgCRZ=EzkdYjr@A?DA#(%zl7z@AsJYxczmR+FT4~kX<~2=XOTSg>%_anbKX&=O2g#j zjsHN-rd}8&|CRT!aUaDfl|iG9fhhSWC_dPzA&8PM<$XlVA=$qe70^0;vI%@z3`&<7 z^Q()eF1!2qY@`^XJQz}7G)ny?LK762r0^6mimZRY_vyx3{JV8BPWnM&erq)O+V8Fa ztyXJac4RNyGreaEQ)H7S`Yn(t$E&?Z4tR_dU~8@CBe>_#MOV0&hrul_=|V z6Te1eywb5_0?$q13*e{}yd+A&E5$U89;0xYM&IIkdX&iZ^dvAQNMmCXr*NAGhR+** zTlLcqfCiFd$e4&QK`B!ZQ@kaN1%hQ&%Gy=ARb6OO$mQJ|(x6Esv&ZnF@-Fs~iFVD%M0r2Dt^!BcxQotvWnqp;p{@nsxNsUcE}T0U7rsao zPJ?d>ze5y$*9cejsJdo9U79$>ClKw*4Z<4&rID5qu=ED%TBUvBn`6s z6C+t^Bylzp!E9Xxv+F9DW#e`p8@KahB9ix;8qRW3?K&C|Be{#Z^Q>F> z%+WwQ@wPU|i2;c(nZy-skXzLTIWZ*bG$eI-PaEVmv@SoOb@?gH%SR?}TJ`hiO-IrjmXH|qUO2Ah#RQBJEHooF;;Pn zGnXTk2JU;NaK|)wVmL?HZn$TJXh@FEZ2}{lg!_^x{1v}Uh3^x|=?6YJe>vdGI*o_I zxe%s#{_+zfXXhDb-lEk1P@3Ku2~=g!*vs^PPS z&lz4eoPCBmc>aYYy}gAMlTb4W&kTRA+^0dg?LHgJSFJyzqxQvs#HFFccXg7!G2}lr z@mD5~laah`2xnn;YHMfcheTp3E{Dggf&F+XELq*PcvD~_eoE-s_@>0?c08hRQQ=l; jIN`-LKC|)T_Is1h!MHdq&*|Zk)mMw>2}5_|>Tu8hz=0s1 delta 2390 zcmX|DJ#1TL6g~dpKjLTm`Q-;E4b*Aga}t^cw*;EuiI@_gL!hNZqCQW0n5=z+iP{QI)Ru9)b{pfhTR2)< z!Wd>|JX9AwtgU+3Sn?{j(G2He(O1||hbnI677~MdpzI=)%FTOj3)F#6P)Ezc8gsJh zY}Hj?Ry|)mg*t0{wX3i#0IFKbd3YaLz;?d4#*>rT?%Fl9`sz<6Ry~@@`YHw%bouHx ziMd)8uCM-(=e|qV5WaK+QT!zw!;Tw4Sb4cHKGK}-A%w^ZjQ)q~b@kzVxP1Z&@1YZ= z7?L9H9;(-&THr@eAG*E`ykWbTl%k^3AHi#_RV3VK9EiVow{RUJSnTUYr2jMbt5}_P z3O|vo!BubyKd0+>)AsyGOn9W*0be~9!v&fjLZ)?%I$6;u4ep0(&ynDm?YUvtS~Tal zvlIzmzI)&pM$~Af8%|}-52I;l_8$1Cd82vg=%g_z7c_k)&B-J|fGHD04dn^EK=g+zN2~h;rjSf^)zw z!NUd@f#)QDlu_=Fn{%6y=cOo{X%x0_}3J19UOQv%o-% zIS247gk~D(7t9U@1rIR_rok5k4>Jlb8sbqQCLRFx%l%PC;)De}FFIpdC&5NLN^)^n z?>xZ^*?EGUilM}WNu1P%64TmHf};~di5YDuF{=$FrVP)V;o+pjK;nuqz|O@$VqWuF zaqeF_wZsV%Eq2tveOkyG&_dQIu$P6_u*n-Yd6Rmy)+s$&i-zRov}X0oY0c?Itct0- zVCt%de}Vg#PLdRA2(0SFqzK75g@iD9ToWcwXu>3g#c-0sjXar%;4|8Al9OuG(SUqQ zQZz4}CykMmt?N>K+`lBIXrPf;&;ltjAm_eG9Mb}+qgo&(hUA`x8g=VhAZ1pTx^L>X zOy0K1dt&%^G=G}U5%^md+S6LVo;8@G6hXV9iEJ8@)!7R`A17fiG77#4WCSlU z3SQxltKd~e!8Gm(UT2JQ|2Cb=?rh^MGo;^z%%~R59M-}aj{Mm$N!f|~!euu2o58xw zuZ$$lY#PkY1Uqq!9n0WWgR=%xrzgVsJHCEufgZIZ z26)~gf^t5iC+QeNE$7VnO_RsTH1bviOX2Eryyr$Jv=uD5d(?AF!2>t1TE~MO2@`?q zn^J_sfopXc&-bMBHgl~|Nk2Q GUi=GtrdhNA diff --git a/ASM/build/c_symbols.txt b/ASM/build/c_symbols.txt index 3a9627d88..bf18303d4 100644 --- a/ASM/build/c_symbols.txt +++ b/ASM/build/c_symbols.txt @@ -23,38 +23,38 @@ SYMBOL TABLE: 00000000 l df *ABS* 00000000 text.c 00000018 l O .sbss 00000004 text_buf 00000014 l O .sbss 00000004 text_end -000011d0 g F .text 0000002c text_init -000012a4 g F .text 00000148 text_flush +0000111c g F .text 0000002c text_init +000011f0 g F .text 00000148 text_flush 00000020 g O .data 00000010 medals_sprite 00000004 g O .sdata 00000004 dungeon_count 00000010 g O .data 00000010 quest_items_sprite -000006ec g F .text 00000034 heap_alloc -00000818 g F .text 000009b8 draw_dungeon_info +00000638 g F .text 00000034 heap_alloc +00000764 g F .text 000009b8 draw_dungeon_info 00000000 *UND* 00000000 FONT_TEXTURE -000002c4 g F .text 000000f0 sprite_draw -00000070 g F .text 00000254 sprite_load +00000210 g F .text 000000f0 sprite_draw +00000070 g F .text 000001a0 sprite_load 00000030 g O .data 00000010 stones_sprite 00000000 g O .bss 00000010 setup_db -000003b4 g F .text 000001dc draw_setup +00000300 g F .text 000001dc draw_setup 00000000 g O .data 00000010 font_sprite 00000040 g F .text 00000030 sprite_bytes 0000000c g O .sbss 00000004 cfg_dungeon_info_mq_need_map -00000590 g F .text 00000148 gfx_init +000004dc g F .text 00000148 gfx_init 00000000 g F .text 00000018 disp_buf_init 00000010 g O .bss 0000000e cfg_dungeon_is_mq 00000064 g O .data 0000009c dungeons 00000050 g O .data 00000012 medal_colors -000011fc g F .text 000000a8 text_print -00000764 g F .text 0000002c c_init +00001148 g F .text 000000a8 text_print +000006b0 g F .text 0000002c c_init 00000000 g O .sbss 00000004 heap_next 00000040 g O .data 0000000e cfg_dungeon_rewards -00000790 g F .text 00000088 c_after_game_state_update -000006d8 g F .text 00000014 heap_init +000006dc g F .text 00000088 c_after_game_state_update +00000624 g F .text 00000014 heap_init 00000008 g O .sbss 00000004 cfg_dungeon_info_reward_need_compass 00000010 g O .sbss 00000004 cfg_dungeon_info_mq_enable 00000000 *UND* 00000000 C_HEAP 00000018 g F .text 00000028 sprite_bytes_per_tile -00000720 g F .text 00000044 file_init +0000066c g F .text 00000044 file_init 00000004 g O .sbss 00000004 cfg_dungeon_info_reward_need_altar 00000000 g O .sdata 00000004 cfg_dungeon_info_enable diff --git a/ASM/c/gfx.c b/ASM/c/gfx.c index 37b800b0e..ab7ed7b78 100644 --- a/ASM/c/gfx.c +++ b/ASM/c/gfx.c @@ -40,10 +40,14 @@ int sprite_bytes(sprite_t *sprite) { void sprite_load(z64_disp_buf_t *db, sprite_t *sprite, int start_tile, int tile_count) { - gDPLoadTextureBlock(db->p++, + int width = sprite->tile_w; + int height = sprite->tile_h * tile_count; + gDPLoadTextureTile(db->p++, sprite->buf + (start_tile * sprite_bytes_per_tile(sprite)), sprite->im_fmt, sprite->im_siz, - sprite->tile_w, tile_count * sprite->tile_h, + width, height, + 0, 0, + width - 1, height - 1, 0, G_TX_WRAP, G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, diff --git a/data/rom_patch.txt b/data/rom_patch.txt index 56a7dd2e8..4ab583af6 100644 --- a/data/rom_patch.txt +++ b/data/rom_patch.txt @@ -1039,7 +1039,7 @@ ec9ce7,7a 3480024,c 3480025,10 3480026,15 -3480027,d9 +3480027,ac 348002c,3c 348002d,2 348002e,80 @@ -4734,7 +4734,7 @@ ec9ce7,7a 3483318,c 3483319,10 348331a,15 -348331b,e4 +348331b,b7 3483320,3c 3483321,e 3483322,80 @@ -5628,111 +5628,107 @@ ec9ce7,7a 34b3070,27 34b3071,bd 34b3072,ff -34b3073,90 +34b3073,98 34b3074,af 34b3075,bf -34b3077,6c +34b3077,64 34b3078,af -34b3079,b7 -34b307b,68 +34b3079,b6 +34b307b,60 34b307c,af -34b307d,b6 -34b307f,64 +34b307d,b5 +34b307f,5c 34b3080,af -34b3081,b5 -34b3083,60 +34b3081,b4 +34b3083,58 34b3084,af -34b3085,b4 -34b3087,5c +34b3085,b3 +34b3087,54 34b3088,af -34b3089,b3 -34b308b,58 +34b3089,b2 +34b308b,50 34b308c,af -34b308d,b2 -34b308f,54 +34b308d,b1 +34b308f,4c 34b3090,af -34b3091,b1 -34b3093,50 -34b3094,af -34b3095,b0 -34b3097,4c -34b3099,80 -34b309a,80 +34b3091,b0 +34b3093,48 +34b3095,80 +34b3096,80 +34b3097,25 +34b3099,a0 +34b309a,a8 34b309b,25 -34b309d,a0 -34b309e,a8 +34b309d,c0 +34b309e,b0 34b309f,25 -34b30a1,c0 -34b30a2,b8 -34b30a3,25 -34b30a5,e0 -34b30a6,b0 -34b30a7,25 -34b30a8,90 -34b30a9,b2 -34b30ab,a -34b30ad,12 -34b30ae,95 -34b30af,40 -34b30b0,3c -34b30b1,2 -34b30b3,e0 -34b30b4,2 -34b30b5,42 -34b30b6,90 -34b30b7,24 -34b30b8,90 -34b30b9,b1 -34b30bb,b -34b30bc,2e -34b30bd,22 -34b30bf,2 -34b30c0,10 -34b30c1,40 -34b30c3,2 -34b30c4,2 -34b30c5,20 -34b30c6,98 -34b30c7,25 -34b30c8,24 -34b30c9,13 -34b30cb,2 -34b30cc,32 -34b30cd,73 -34b30cf,ff -34b30d1,13 -34b30d2,a4 -34b30d3,c0 -34b30d4,3c -34b30d5,2 -34b30d7,18 -34b30d8,2 -34b30d9,82 -34b30da,a0 -34b30db,24 -34b30dc,2 -34b30dd,92 -34b30de,a0 +34b30a0,94 +34b30a1,b1 +34b30a3,4 +34b30a4,94 +34b30a5,b2 +34b30a7,6 +34b30a8,2 +34b30a9,47 +34b30ab,18 +34b30ae,90 +34b30af,12 +34b30b0,90 +34b30b1,b4 +34b30b3,b +34b30b4,90 +34b30b5,a2 +34b30b7,a +34b30b9,2 +34b30ba,15 +34b30bb,40 +34b30bc,3c +34b30bd,13 +34b30bf,e0 +34b30c1,53 +34b30c2,10 +34b30c3,24 +34b30c5,14 +34b30c6,9c +34b30c7,c0 +34b30c8,3c +34b30c9,3 +34b30cb,18 +34b30cc,2 +34b30cd,63 +34b30ce,98 +34b30cf,24 +34b30d1,53 +34b30d2,98 +34b30d3,25 +34b30d4,26 +34b30d5,23 +34b30d6,ff +34b30d7,ff +34b30d8,30 +34b30d9,63 +34b30da,f +34b30db,ff +34b30dd,73 +34b30de,18 34b30df,25 34b30e0,3c 34b30e1,2 34b30e2,fd -34b30e4,2 -34b30e5,82 -34b30e6,10 +34b30e5,62 +34b30e6,18 34b30e7,25 34b30e8,af -34b30e9,a2 +34b30e9,a3 34b30eb,10 34b30ec,c 34b30ed,10 34b30ee,14 34b30ef,6 -34b30f0,2 34b30f1,a0 34b30f2,20 34b30f3,25 -34b30f5,57 +34b30f5,56 34b30f7,18 34b30fa,10 34b30fb,12 @@ -5744,6228 +5740,6104 @@ ec9ce7,7a 34b3104,af 34b3105,a3 34b3107,14 -34b3108,3c -34b3109,2 -34b310a,f5 -34b310c,2 -34b310d,82 -34b310e,a0 -34b310f,25 -34b3110,af -34b3111,b4 -34b3113,18 -34b3114,3c +34b3108,2e +34b3109,83 +34b310b,2 +34b310c,10 +34b310d,60 +34b310f,3 +34b3110,24 +34b3111,2 +34b3113,10 +34b3114,24 34b3115,2 -34b3116,7 -34b3118,af -34b3119,a2 -34b311b,1c -34b311c,3c -34b311d,2 -34b311e,e6 -34b3120,af -34b3121,a2 -34b3123,20 -34b3124,af -34b3125,a0 -34b3127,24 -34b3128,3c -34b3129,2 -34b312a,f3 -34b312c,af -34b312d,a2 -34b312f,28 -34b3130,96 -34b3131,a3 -34b3133,4 -34b3134,96 -34b3135,a7 -34b3137,6 -34b3139,f6 -34b313b,18 -34b313e,38 -34b313f,12 -34b3140,24 -34b3141,5 -34b3143,4 -34b3144,2 -34b3145,25 -34b3146,20 -34b3147,4 -34b3149,67 -34b314b,18 +34b3117,4 +34b3118,2 +34b3119,82 +34b311a,10 +34b311b,4 +34b311d,51 +34b311f,18 +34b3122,10 +34b3123,12 +34b3124,24 +34b3125,43 +34b3127,3f +34b3129,3 +34b312a,17 +34b312b,c3 +34b312c,30 +34b312d,42 +34b312f,3f +34b3131,43 +34b3132,10 +34b3133,21 +34b3135,2 +34b3136,10 +34b3137,c0 +34b3138,3c +34b3139,3 +34b313b,3 +34b313c,34 +34b313d,63 +34b313e,fe +34b3141,43 +34b3142,10 +34b3143,24 +34b3145,53 +34b3146,10 +34b3147,25 +34b3148,3c +34b3149,3 +34b314a,f5 +34b314d,43 34b314e,10 -34b314f,12 -34b3150,24 -34b3151,42 -34b3153,1 -34b3159,44 -34b315b,18 -34b315e,10 -34b315f,12 -34b3160,24 -34b3161,42 -34b3162,ff -34b3163,ff -34b3164,2 -34b3165,65 -34b3166,98 -34b3167,4 -34b3168,16 -34b3169,60 -34b316b,2 -34b316d,53 -34b316f,1a -34b3171,7 -34b3173,d -34b3176,10 -34b3177,12 -34b3178,24 -34b3179,42 -34b317a,ff +34b314f,25 +34b3150,af +34b3151,a2 +34b3153,18 +34b3154,3c +34b3155,4 +34b3156,7 +34b3158,af +34b3159,a4 +34b315b,1c +34b315c,3c +34b315d,3 +34b315e,e6 +34b3160,af +34b3161,a3 +34b3163,20 +34b3164,af +34b3165,a0 +34b3167,24 +34b3168,3c +34b3169,3 +34b316a,f4 +34b316c,af +34b316d,a3 +34b316f,28 +34b3170,26 +34b3171,23 +34b3172,ff +34b3173,ff +34b3175,3 +34b3176,1b +34b3177,80 +34b3178,3c +34b3179,11 34b317b,ff -34b317d,2 -34b317e,13 -34b3180,3c -34b3181,5 -34b3183,ff -34b3184,34 -34b3185,a5 -34b3186,f0 -34b3189,45 -34b318a,10 -34b318b,24 -34b318d,64 -34b318f,18 -34b3192,40 -34b3193,12 -34b3194,29 -34b3195,5 -34b3197,41 -34b3198,14 -34b3199,a0 -34b319b,b -34b319c,24 -34b319d,6 -34b319e,8 -34b31a1,8 -34b31a2,2f -34b31a3,c3 -34b31a4,30 -34b31a5,a5 -34b31a7,3f -34b31a9,a8 -34b31aa,28 -34b31ab,21 -34b31ad,5 -34b31ae,29 -34b31af,83 -34b31b0,24 -34b31b1,a6 -34b31b2,7 -34b31b3,ff -34b31b4,14 -34b31b5,a0 -34b31b7,2 -34b31b9,c5 -34b31bb,1a -34b31bd,7 -34b31bf,d -34b31c2,30 -34b31c3,12 -34b31c4,30 -34b31c5,c6 -34b31c6,f -34b31c7,ff -34b31c9,46 -34b31ca,10 -34b31cb,25 -34b31cc,3c -34b31cd,5 -34b31ce,7 +34b317c,36 +34b317d,31 +34b317e,f0 +34b3181,71 +34b3182,18 +34b3183,24 +34b3184,26 +34b3185,52 +34b3186,ff +34b3187,ff +34b3189,12 +34b318a,90 +34b318b,80 +34b318c,32 +34b318d,52 +34b318e,f +34b318f,fc +34b3191,72 +34b3192,18 +34b3193,25 +34b3195,64 +34b3196,20 +34b3197,25 +34b3198,af +34b3199,a4 +34b319b,2c +34b319c,3c +34b319d,4 +34b319e,e7 +34b31a0,af +34b31a1,a4 +34b31a3,30 +34b31a4,af +34b31a5,a0 +34b31a7,34 +34b31a8,af +34b31a9,a2 +34b31ab,38 +34b31ac,af +34b31ad,a0 +34b31af,3c +34b31b0,3c +34b31b1,2 +34b31b2,f2 +34b31b4,af +34b31b5,a2 +34b31b7,40 +34b31b8,af +34b31b9,a3 +34b31bb,44 +34b31bc,27 +34b31bd,a2 +34b31bf,10 +34b31c0,27 +34b31c1,a6 +34b31c3,48 +34b31c4,8e +34b31c5,3 +34b31c7,8 +34b31c8,24 +34b31c9,64 +34b31cb,8 +34b31cc,ae +34b31cd,4 +34b31cf,8 +34b31d0,8c 34b31d1,45 -34b31d2,10 -34b31d3,25 -34b31d4,af -34b31d5,a2 -34b31d7,2c -34b31d8,3c -34b31d9,2 -34b31da,e7 -34b31dc,af -34b31dd,a2 -34b31df,30 -34b31e0,af -34b31e1,a0 -34b31e3,34 -34b31e5,11 -34b31e6,14 -34b31e7,c0 -34b31e8,3c -34b31e9,5 -34b31eb,18 -34b31ed,45 -34b31ee,10 -34b31ef,24 -34b31f0,2e -34b31f1,31 -34b31f3,2 -34b31f4,16 -34b31f5,20 -34b31f7,2 -34b31f9,52 -34b31fa,10 -34b31fb,25 -34b31fc,24 -34b31fd,4 -34b31ff,10 -34b3201,64 -34b3203,18 -34b3206,20 -34b3207,12 -34b3208,24 -34b3209,84 -34b320b,3f -34b320d,4 -34b320e,97 -34b320f,c3 -34b3210,32 -34b3211,52 -34b3213,3f -34b3214,2 -34b3215,44 -34b3216,90 -34b3217,21 -34b3219,12 -34b321a,90 -34b321b,c0 -34b321c,3c -34b321d,4 -34b321f,3 -34b3220,34 -34b3221,84 -34b3222,fe -34b3224,2 -34b3225,44 -34b3226,90 -34b3227,24 -34b3228,2 -34b3229,42 -34b322a,90 -34b322b,25 -34b322c,3c -34b322d,2 -34b322e,f5 -34b3230,2 -34b3231,42 -34b3232,90 -34b3233,25 -34b3234,af -34b3235,b2 -34b3237,38 -34b3238,af -34b3239,a0 -34b323b,3c -34b323c,3c -34b323d,2 -34b323e,f2 -34b3240,af -34b3241,a2 -34b3243,40 -34b3244,24 -34b3245,62 -34b3246,3f +34b31d3,4 +34b31d4,8c +34b31d5,44 +34b31d8,ac +34b31d9,65 +34b31db,4 +34b31dc,24 +34b31dd,42 +34b31df,8 +34b31e0,14 +34b31e1,46 +34b31e2,ff +34b31e3,f8 +34b31e4,ac +34b31e5,64 +34b31e8,8f +34b31e9,bf +34b31eb,64 +34b31ec,8f +34b31ed,b6 +34b31ef,60 +34b31f0,8f +34b31f1,b5 +34b31f3,5c +34b31f4,8f +34b31f5,b4 +34b31f7,58 +34b31f8,8f +34b31f9,b3 +34b31fb,54 +34b31fc,8f +34b31fd,b2 +34b31ff,50 +34b3200,8f +34b3201,b1 +34b3203,4c +34b3204,8f +34b3205,b0 +34b3207,48 +34b3208,3 +34b3209,e0 +34b320b,8 +34b320c,27 +34b320d,bd +34b320f,68 +34b3210,27 +34b3211,bd +34b3212,ff +34b3213,e8 +34b3214,8f +34b3215,a8 +34b3217,28 +34b3218,8f +34b3219,a2 +34b321b,2c +34b321c,8f +34b321d,aa +34b321f,30 +34b3220,94 +34b3221,a9 +34b3223,4 +34b3225,9 +34b3226,4a +34b3227,80 +34b3228,14 +34b3229,40 +34b322b,2 +34b322c,1 +34b322d,22 +34b322f,1a +34b3231,7 +34b3233,d +34b3236,48 +34b3237,12 +34b3238,94 +34b3239,a3 +34b323b,6 +34b323d,47 +34b323e,10 +34b323f,21 +34b3241,2 +34b3242,13 +34b3243,80 +34b3244,3c +34b3245,b 34b3247,ff -34b3249,2 -34b324a,13 -34b324b,80 -34b324c,3c -34b324d,3 -34b324f,ff -34b3250,34 -34b3251,63 -34b3252,f0 -34b3255,43 -34b3256,10 -34b3257,24 -34b3258,24 -34b3259,e7 -34b325a,ff +34b3248,35 +34b3249,6b +34b324a,f0 +34b324d,4b +34b324e,10 +34b324f,24 +34b3250,1 +34b3251,48 +34b3252,28 +34b3253,21 +34b3255,5 +34b3256,28 +34b3257,80 +34b3258,30 +34b3259,a5 +34b325a,f 34b325b,ff -34b325d,7 -34b325e,38 -34b325f,80 -34b3260,30 -34b3261,e7 -34b3262,f -34b3263,fc -34b3265,47 +34b325d,45 +34b325e,10 +34b325f,25 +34b3260,3c +34b3261,5 +34b3262,e4 +34b3265,45 34b3266,10 34b3267,25 34b3268,af 34b3269,a2 -34b326b,44 -34b326c,27 -34b326d,a2 -34b326f,10 -34b3270,27 -34b3271,a6 -34b3273,48 -34b3274,8e -34b3275,3 -34b3277,8 -34b3278,24 -34b3279,64 -34b327b,8 -34b327c,ae -34b327d,4 -34b327f,8 -34b3280,8c -34b3281,45 +34b326d,7 +34b326e,3b +34b326f,80 +34b3271,eb +34b3272,38 +34b3273,24 +34b3275,8 +34b3276,40 +34b3277,80 +34b3278,31 +34b3279,8 +34b327a,f +34b327b,ff +34b327d,e8 +34b327e,38 +34b327f,25 +34b3280,af +34b3281,a7 34b3283,4 -34b3284,8c -34b3285,44 -34b3288,ac -34b3289,65 -34b328b,4 -34b328c,24 -34b328d,42 -34b328f,8 -34b3290,14 -34b3291,46 -34b3292,ff -34b3293,f8 -34b3294,ac -34b3295,64 -34b3298,8f -34b3299,bf -34b329b,6c -34b329c,8f -34b329d,b7 -34b329f,68 -34b32a0,8f -34b32a1,b6 -34b32a3,64 -34b32a4,8f -34b32a5,b5 -34b32a7,60 -34b32a8,8f -34b32a9,b4 -34b32ab,5c -34b32ac,8f -34b32ad,b3 -34b32af,58 -34b32b0,8f -34b32b1,b2 -34b32b3,54 -34b32b4,8f -34b32b5,b1 -34b32b7,50 -34b32b8,8f -34b32b9,b0 -34b32bb,4c -34b32bc,3 -34b32bd,e0 -34b32bf,8 -34b32c0,27 -34b32c1,bd -34b32c3,70 -34b32c4,27 -34b32c5,bd -34b32c6,ff -34b32c7,e8 -34b32c8,8f -34b32c9,a8 -34b32cb,28 -34b32cc,8f -34b32cd,a2 -34b32cf,2c -34b32d0,8f -34b32d1,aa -34b32d3,30 -34b32d4,94 -34b32d5,a9 -34b32d7,4 -34b32d9,9 -34b32da,4a -34b32db,80 -34b32dc,14 -34b32dd,40 -34b32df,2 -34b32e0,1 -34b32e1,22 -34b32e3,1a -34b32e5,7 -34b32e7,d -34b32ea,48 -34b32eb,12 -34b32ec,94 -34b32ed,a3 -34b32ef,6 -34b32f1,47 -34b32f2,10 -34b32f3,21 -34b32f5,2 -34b32f6,13 -34b32f7,80 -34b32f8,3c -34b32f9,b -34b32fb,ff -34b32fc,35 -34b32fd,6b -34b32fe,f0 -34b3301,4b -34b3302,10 -34b3303,24 -34b3304,1 -34b3305,48 -34b3306,28 -34b3307,21 -34b3309,5 -34b330a,28 -34b330b,80 -34b330c,30 -34b330d,a5 -34b330e,f -34b330f,ff -34b3311,45 -34b3312,10 -34b3313,25 -34b3314,3c -34b3315,5 -34b3316,e4 -34b3319,45 -34b331a,10 -34b331b,25 -34b331c,af -34b331d,a2 -34b3321,7 -34b3322,3b -34b3323,80 -34b3325,eb -34b3326,38 -34b3327,24 -34b3329,8 -34b332a,40 -34b332b,80 -34b332c,31 -34b332d,8 -34b332e,f -34b332f,ff -34b3331,e8 -34b3332,38 -34b3333,25 -34b3334,af -34b3335,a7 -34b3337,4 -34b3338,3c -34b3339,2 -34b333a,e1 -34b333c,af -34b333d,a2 -34b333f,8 -34b3341,66 -34b3343,18 -34b3346,30 -34b3347,12 -34b3349,6 -34b334a,31 -34b334b,40 -34b334c,30 -34b334d,c6 -34b334e,ff -34b334f,ff -34b3350,af -34b3351,a6 -34b3353,c -34b3354,3c -34b3355,2 -34b3356,f1 -34b3358,af -34b3359,a2 -34b335b,10 -34b335d,3 -34b335e,1a -34b335f,80 -34b3360,15 -34b3361,40 -34b3363,2 -34b3365,6a -34b3367,1a -34b3369,7 -34b336b,d -34b336e,18 -34b336f,12 -34b3370,30 -34b3371,63 -34b3372,ff -34b3373,ff -34b3375,9 -34b3376,4c -34b3379,69 -34b337a,18 -34b337b,25 -34b337c,af -34b337d,a3 -34b337f,14 -34b3380,3 -34b3381,a0 -34b3382,10 -34b3383,25 -34b3384,27 -34b3385,a8 -34b3387,18 -34b3388,8c -34b3389,83 -34b338b,8 -34b338c,24 -34b338d,65 +34b3284,3c +34b3285,2 +34b3286,e1 +34b3288,af +34b3289,a2 +34b328b,8 +34b328d,66 +34b328f,18 +34b3292,30 +34b3293,12 +34b3295,6 +34b3296,31 +34b3297,40 +34b3298,30 +34b3299,c6 +34b329a,ff +34b329b,ff +34b329c,af +34b329d,a6 +34b329f,c +34b32a0,3c +34b32a1,2 +34b32a2,f1 +34b32a4,af +34b32a5,a2 +34b32a7,10 +34b32a9,3 +34b32aa,1a +34b32ab,80 +34b32ac,15 +34b32ad,40 +34b32af,2 +34b32b1,6a +34b32b3,1a +34b32b5,7 +34b32b7,d +34b32ba,18 +34b32bb,12 +34b32bc,30 +34b32bd,63 +34b32be,ff +34b32bf,ff +34b32c1,9 +34b32c2,4c +34b32c5,69 +34b32c6,18 +34b32c7,25 +34b32c8,af +34b32c9,a3 +34b32cb,14 +34b32cc,3 +34b32cd,a0 +34b32ce,10 +34b32cf,25 +34b32d0,27 +34b32d1,a8 +34b32d3,18 +34b32d4,8c +34b32d5,83 +34b32d7,8 +34b32d8,24 +34b32d9,65 +34b32db,8 +34b32dc,ac +34b32dd,85 +34b32df,8 +34b32e0,8c +34b32e1,47 +34b32e3,4 +34b32e4,8c +34b32e5,46 +34b32e8,ac +34b32e9,67 +34b32eb,4 +34b32ec,24 +34b32ed,42 +34b32ef,8 +34b32f0,14 +34b32f1,48 +34b32f2,ff +34b32f3,f8 +34b32f4,ac +34b32f5,66 +34b32f8,3 +34b32f9,e0 +34b32fb,8 +34b32fc,27 +34b32fd,bd +34b32ff,18 +34b3300,8c +34b3301,82 +34b3303,8 +34b3304,24 +34b3305,43 +34b3307,8 +34b3308,ac +34b3309,83 +34b330b,8 +34b330c,3c +34b330d,3 +34b330e,e7 +34b3310,ac +34b3311,43 +34b3314,ac +34b3315,40 +34b3317,4 +34b3318,8c +34b3319,82 +34b331b,8 +34b331c,24 +34b331d,43 +34b331f,8 +34b3320,ac +34b3321,83 +34b3323,8 +34b3324,3c +34b3325,3 +34b3326,d9 +34b3328,ac +34b3329,43 +34b332c,ac +34b332d,40 +34b332f,4 +34b3330,8c +34b3331,82 +34b3333,8 +34b3334,24 +34b3335,43 +34b3337,8 +34b3338,ac +34b3339,83 +34b333b,8 +34b333c,3c +34b333d,3 +34b333e,ed +34b3340,ac +34b3341,43 +34b3344,3c +34b3345,5 +34b3347,50 +34b3348,24 +34b3349,a3 +34b334a,3 +34b334b,c0 +34b334c,ac +34b334d,43 +34b334f,4 +34b3350,8c +34b3351,83 +34b3353,8 +34b3354,24 +34b3355,62 +34b3357,8 +34b3358,ac +34b3359,82 +34b335b,8 +34b335c,3c +34b335d,2 +34b335e,e3 +34b3360,24 +34b3361,46 +34b3362,1a +34b3363,1 +34b3364,ac +34b3365,66 +34b3368,24 +34b3369,6 +34b336b,30 +34b336c,ac +34b336d,66 +34b336f,4 +34b3370,8c +34b3371,83 +34b3373,8 +34b3374,24 +34b3375,66 +34b3377,8 +34b3378,ac +34b3379,86 +34b337b,8 +34b337c,24 +34b337d,46 +34b337e,18 +34b337f,1 +34b3380,ac +34b3381,66 +34b3384,24 +34b3385,6 +34b3387,c0 +34b3388,ac +34b3389,66 +34b338b,4 +34b338c,8c +34b338d,86 34b338f,8 -34b3390,ac -34b3391,85 +34b3390,24 +34b3391,c3 34b3393,8 -34b3394,8c -34b3395,47 -34b3397,4 -34b3398,8c -34b3399,46 -34b339c,ac +34b3394,ac +34b3395,83 +34b3397,8 +34b3398,3c +34b3399,3 +34b339a,e2 +34b339c,24 34b339d,67 -34b339f,4 -34b33a0,24 -34b33a1,42 -34b33a3,8 -34b33a4,14 -34b33a5,48 -34b33a6,ff -34b33a7,f8 -34b33a8,ac -34b33a9,66 -34b33ac,3 -34b33ad,e0 +34b339e,1e +34b339f,1 +34b33a0,ac +34b33a1,c7 +34b33a4,ac +34b33a5,c0 +34b33a7,4 +34b33a8,8c +34b33a9,86 +34b33ab,8 +34b33ac,24 +34b33ad,c7 34b33af,8 -34b33b0,27 -34b33b1,bd -34b33b3,18 -34b33b4,8c -34b33b5,82 -34b33b7,8 -34b33b8,24 -34b33b9,43 -34b33bb,8 -34b33bc,ac -34b33bd,83 -34b33bf,8 -34b33c0,3c -34b33c1,3 -34b33c2,e7 -34b33c4,ac -34b33c5,43 -34b33c8,ac -34b33c9,40 -34b33cb,4 -34b33cc,8c -34b33cd,82 +34b33b0,ac +34b33b1,87 +34b33b3,8 +34b33b4,24 +34b33b5,67 +34b33b6,1d +34b33b8,ac +34b33b9,c7 +34b33bc,24 +34b33bd,7 +34b33bf,4 +34b33c0,ac +34b33c1,c7 +34b33c3,4 +34b33c4,8c +34b33c5,86 +34b33c7,8 +34b33c8,24 +34b33c9,c7 +34b33cb,8 +34b33cc,ac +34b33cd,87 34b33cf,8 34b33d0,24 -34b33d1,43 -34b33d3,8 +34b33d1,47 +34b33d2,17 34b33d4,ac -34b33d5,83 -34b33d7,8 -34b33d8,3c -34b33d9,3 -34b33da,d9 -34b33dc,ac -34b33dd,43 -34b33e0,ac -34b33e1,40 -34b33e3,4 -34b33e4,8c -34b33e5,82 +34b33d5,c7 +34b33d8,ac +34b33d9,c0 +34b33db,4 +34b33dc,8c +34b33dd,86 +34b33df,8 +34b33e0,24 +34b33e1,c7 +34b33e3,8 +34b33e4,ac +34b33e5,87 34b33e7,8 34b33e8,24 -34b33e9,43 -34b33eb,8 +34b33e9,47 +34b33ea,14 +34b33eb,2 34b33ec,ac -34b33ed,83 -34b33ef,8 -34b33f0,3c -34b33f1,3 -34b33f2,ed +34b33ed,c7 +34b33f0,24 +34b33f1,7 +34b33f2,c 34b33f4,ac -34b33f5,43 -34b33f8,3c -34b33f9,5 -34b33fb,50 +34b33f5,c7 +34b33f7,4 +34b33f8,8c +34b33f9,86 +34b33fb,8 34b33fc,24 -34b33fd,a3 -34b33fe,3 -34b33ff,c0 +34b33fd,c7 +34b33ff,8 34b3400,ac -34b3401,43 -34b3403,4 -34b3404,8c -34b3405,83 -34b3407,8 -34b3408,24 -34b3409,62 -34b340b,8 +34b3401,87 +34b3403,8 +34b3404,24 +34b3405,47 +34b3406,d +34b3407,1 +34b3408,ac +34b3409,c7 34b340c,ac -34b340d,82 -34b340f,8 -34b3410,3c -34b3411,2 -34b3412,e3 +34b340d,c0 +34b340f,4 +34b3410,8c +34b3411,86 +34b3413,8 34b3414,24 -34b3415,46 -34b3416,1a -34b3417,1 +34b3415,c7 +34b3417,8 34b3418,ac -34b3419,66 +34b3419,87 +34b341b,8 34b341c,24 -34b341d,6 -34b341f,30 +34b341d,47 +34b341e,c 34b3420,ac -34b3421,66 -34b3423,4 -34b3424,8c -34b3425,83 -34b3427,8 -34b3428,24 -34b3429,66 +34b3421,c7 +34b3424,ac +34b3425,c0 +34b3427,4 +34b3428,8c +34b3429,86 34b342b,8 -34b342c,ac -34b342d,86 +34b342c,24 +34b342d,c7 34b342f,8 -34b3430,24 -34b3431,46 -34b3432,18 -34b3433,1 -34b3434,ac -34b3435,66 -34b3438,24 -34b3439,6 -34b343b,c0 +34b3430,ac +34b3431,87 +34b3433,8 +34b3434,24 +34b3435,47 +34b3436,f +34b3438,ac +34b3439,c7 34b343c,ac -34b343d,66 +34b343d,c0 34b343f,4 34b3440,8c 34b3441,86 34b3443,8 34b3444,24 -34b3445,c3 +34b3445,c7 34b3447,8 34b3448,ac -34b3449,83 +34b3449,87 34b344b,8 -34b344c,3c -34b344d,3 -34b344e,e2 -34b3450,24 -34b3451,67 -34b3452,1e -34b3453,1 +34b344c,24 +34b344d,47 +34b344e,10 +34b344f,1 +34b3450,ac +34b3451,c7 34b3454,ac -34b3455,c7 -34b3458,ac -34b3459,c0 -34b345b,4 -34b345c,8c -34b345d,86 +34b3455,c0 +34b3457,4 +34b3458,8c +34b3459,86 +34b345b,8 +34b345c,24 +34b345d,c7 34b345f,8 -34b3460,24 -34b3461,c7 +34b3460,ac +34b3461,87 34b3463,8 -34b3464,ac -34b3465,87 -34b3467,8 -34b3468,24 -34b3469,67 -34b346a,1d +34b3464,24 +34b3465,47 +34b3466,8 +34b3468,ac +34b3469,c7 34b346c,ac -34b346d,c7 -34b3470,24 -34b3471,7 -34b3473,4 -34b3474,ac +34b346d,c0 +34b346f,4 +34b3470,8c +34b3471,86 +34b3473,8 +34b3474,24 34b3475,c7 -34b3477,4 -34b3478,8c -34b3479,86 +34b3477,8 +34b3478,ac +34b3479,87 34b347b,8 34b347c,24 -34b347d,c7 -34b347f,8 +34b347d,47 +34b347e,a +34b347f,1 34b3480,ac -34b3481,87 -34b3483,8 -34b3484,24 -34b3485,47 -34b3486,17 -34b3488,ac -34b3489,c7 -34b348c,ac -34b348d,c0 -34b348f,4 -34b3490,8c -34b3491,86 +34b3481,c7 +34b3484,ac +34b3485,c0 +34b3487,4 +34b3488,8c +34b3489,86 +34b348b,8 +34b348c,24 +34b348d,c7 +34b348f,8 +34b3490,ac +34b3491,87 34b3493,8 34b3494,24 -34b3495,c7 -34b3497,8 +34b3495,63 +34b3497,1c 34b3498,ac -34b3499,87 -34b349b,8 +34b3499,c3 34b349c,24 -34b349d,47 -34b349e,14 -34b349f,2 +34b349d,a5 +34b349e,42 +34b349f,40 34b34a0,ac -34b34a1,c7 -34b34a4,24 -34b34a5,7 -34b34a6,c -34b34a8,ac -34b34a9,c7 -34b34ab,4 -34b34ac,8c -34b34ad,86 +34b34a1,c5 +34b34a3,4 +34b34a4,8c +34b34a5,83 +34b34a7,8 +34b34a8,24 +34b34a9,65 +34b34ab,8 +34b34ac,ac +34b34ad,85 34b34af,8 34b34b0,24 -34b34b1,c7 -34b34b3,8 +34b34b1,42 +34b34b2,12 +34b34b3,1 34b34b4,ac -34b34b5,87 -34b34b7,8 +34b34b5,62 34b34b8,24 -34b34b9,47 -34b34ba,d -34b34bb,1 +34b34b9,2 +34b34ba,20 34b34bc,ac -34b34bd,c7 -34b34c0,ac -34b34c1,c0 -34b34c3,4 -34b34c4,8c -34b34c5,86 +34b34bd,62 +34b34bf,4 +34b34c0,8c +34b34c1,82 +34b34c3,8 +34b34c4,24 +34b34c5,43 34b34c7,8 -34b34c8,24 -34b34c9,c7 +34b34c8,ac +34b34c9,83 34b34cb,8 -34b34cc,ac -34b34cd,87 -34b34cf,8 -34b34d0,24 -34b34d1,47 -34b34d2,c -34b34d4,ac -34b34d5,c7 +34b34cc,3c +34b34cd,3 +34b34ce,df +34b34d0,ac +34b34d1,43 +34b34d4,3 +34b34d5,e0 +34b34d7,8 34b34d8,ac -34b34d9,c0 +34b34d9,40 34b34db,4 -34b34dc,8c -34b34dd,86 -34b34df,8 -34b34e0,24 -34b34e1,c7 -34b34e3,8 -34b34e4,ac -34b34e5,87 -34b34e7,8 -34b34e8,24 -34b34e9,47 -34b34ea,f -34b34ec,ac -34b34ed,c7 -34b34f0,ac -34b34f1,c0 -34b34f3,4 -34b34f4,8c -34b34f5,86 -34b34f7,8 -34b34f8,24 -34b34f9,c7 -34b34fb,8 -34b34fc,ac -34b34fd,87 -34b34ff,8 -34b3500,24 -34b3501,47 -34b3502,10 -34b3503,1 -34b3504,ac -34b3505,c7 -34b3508,ac -34b3509,c0 -34b350b,4 -34b350c,8c -34b350d,86 -34b350f,8 -34b3510,24 -34b3511,c7 -34b3513,8 -34b3514,ac -34b3515,87 -34b3517,8 +34b34dc,27 +34b34dd,bd +34b34de,ff +34b34df,c8 +34b34e0,af +34b34e1,bf +34b34e3,34 +34b34e4,af +34b34e5,b1 +34b34e7,30 +34b34e8,af +34b34e9,b0 +34b34eb,2c +34b34ec,af +34b34ed,a0 +34b34ef,10 +34b34f0,3c +34b34f1,2 +34b34f2,1 +34b34f3,a0 +34b34f4,24 +34b34f5,42 +34b34f6,20 +34b34f8,af +34b34f9,a2 +34b34fb,14 +34b34fc,3c +34b34fd,10 +34b34ff,3 +34b3500,36 +34b3501,2 +34b3502,95 +34b3503,c0 +34b3504,af +34b3505,a2 +34b3507,18 +34b3508,c +34b3509,10 +34b350a,15 +34b350b,9b +34b350c,27 +34b350d,a4 +34b350f,10 +34b3510,af +34b3511,a0 +34b3513,1c +34b3514,3c +34b3515,2 +34b3517,84 34b3518,24 -34b3519,47 -34b351a,8 -34b351c,ac -34b351d,c7 -34b3520,ac -34b3521,c0 -34b3523,4 -34b3524,8c -34b3525,86 -34b3527,8 -34b3528,24 -34b3529,c7 -34b352b,8 -34b352c,ac -34b352d,87 -34b352f,8 -34b3530,24 -34b3531,47 -34b3532,a -34b3533,1 -34b3534,ac -34b3535,c7 -34b3538,ac -34b3539,c0 -34b353b,4 -34b353c,8c -34b353d,86 -34b353f,8 -34b3540,24 -34b3541,c7 -34b3543,8 -34b3544,ac -34b3545,87 -34b3547,8 -34b3548,24 -34b3549,63 -34b354b,1c +34b3519,42 +34b351a,60 +34b351c,af +34b351d,a2 +34b351f,20 +34b3520,34 +34b3521,2 +34b3522,b4 +34b3524,af +34b3525,a2 +34b3527,24 +34b3528,c +34b3529,10 +34b352a,15 +34b352b,9b +34b352c,27 +34b352d,a4 +34b352f,1c +34b3530,8f +34b3531,a2 +34b3533,10 +34b3534,26 +34b3535,10 +34b3536,a3 +34b3539,50 +34b353a,80 +34b353b,21 +34b353c,3c +34b353d,3 +34b353e,80 +34b353f,40 +34b3540,ac +34b3541,70 +34b3542,63 +34b3543,74 +34b3544,24 +34b3545,42 +34b3546,29 +34b3547,80 +34b3548,3c +34b3549,3 +34b354a,80 +34b354b,40 34b354c,ac -34b354d,c3 -34b3550,24 -34b3551,a5 -34b3552,42 +34b354d,62 +34b354e,63 +34b354f,64 +34b3550,3c +34b3551,2 +34b3552,80 34b3553,40 -34b3554,ac -34b3555,c5 -34b3557,4 -34b3558,8c -34b3559,83 -34b355b,8 -34b355c,24 -34b355d,65 -34b355f,8 -34b3560,ac -34b3561,85 -34b3563,8 -34b3564,24 -34b3565,42 -34b3566,12 -34b3567,1 -34b3568,ac -34b3569,62 -34b356c,24 -34b356d,2 -34b356e,20 -34b3570,ac -34b3571,62 -34b3573,4 -34b3574,8c -34b3575,82 -34b3577,8 -34b3578,24 -34b3579,43 -34b357b,8 -34b357c,ac -34b357d,83 -34b357f,8 -34b3580,3c -34b3581,3 -34b3582,df -34b3584,ac -34b3585,43 -34b3588,3 -34b3589,e0 -34b358b,8 -34b358c,ac -34b358d,40 -34b358f,4 -34b3590,27 -34b3591,bd -34b3592,ff -34b3593,c8 -34b3594,af -34b3595,bf -34b3597,34 -34b3598,af -34b3599,b1 -34b359b,30 -34b359c,af -34b359d,b0 -34b359f,2c -34b35a0,af -34b35a1,a0 -34b35a3,10 -34b35a4,3c -34b35a5,2 -34b35a6,1 -34b35a7,a0 -34b35a8,24 -34b35a9,42 -34b35aa,20 -34b35ac,af -34b35ad,a2 -34b35af,14 -34b35b0,3c -34b35b1,10 -34b35b3,3 -34b35b4,36 -34b35b5,2 -34b35b6,95 -34b35b7,c0 -34b35b8,af +34b3554,8f +34b3555,a3 +34b3557,1c +34b3558,ac +34b3559,43 +34b355a,63 +34b355b,54 +34b355c,3c +34b355d,11 +34b355e,80 +34b355f,40 +34b3560,c +34b3561,10 +34b3562,14 +34b3563,10 +34b3564,26 +34b3565,24 +34b3566,63 +34b3567,44 +34b3569,40 +34b356a,80 +34b356b,25 +34b356c,c +34b356d,10 +34b356e,15 +34b356f,8e +34b3571,40 +34b3572,20 +34b3573,25 +34b3575,10 +34b3576,4f +34b3577,c2 +34b3578,1 +34b3579,30 +34b357a,48 +34b357b,21 +34b357c,2a +34b357d,10 +34b357f,2 +34b3580,16 +34b3583,18 +34b3584,ae +34b3585,22 +34b3586,63 +34b3587,44 +34b3589,9 +34b358a,48 +34b358b,43 +34b358c,3c +34b358d,3 +34b358e,80 +34b358f,40 +34b3590,24 +34b3591,63 +34b3592,64 +34b3593,86 +34b3596,20 +34b3597,25 +34b359a,30 +34b359b,25 +34b359c,2 +34b359d,20 +34b359e,40 +34b359f,25 +34b35a0,24 +34b35a1,7 +34b35a2,ff +34b35a3,f0 +34b35a4,8d +34b35a5,5 +34b35a6,63 +34b35a7,44 +34b35a9,a4 +34b35aa,28 +34b35ab,21 +34b35ac,90 +34b35ad,62 +34b35b1,2 +34b35b2,11 +34b35b3,2 +34b35b5,47 +34b35b6,10 +34b35b7,25 +34b35b8,a0 34b35b9,a2 -34b35bb,18 -34b35bc,c -34b35bd,10 -34b35be,15 -34b35bf,c8 -34b35c0,27 -34b35c1,a4 -34b35c3,10 -34b35c4,af -34b35c5,a0 -34b35c7,1c -34b35c8,3c -34b35c9,2 -34b35cb,84 -34b35cc,24 -34b35cd,42 -34b35ce,60 -34b35d0,af -34b35d1,a2 -34b35d3,20 -34b35d4,34 -34b35d5,2 -34b35d6,b4 -34b35d8,af -34b35d9,a2 -34b35db,24 -34b35dc,c -34b35dd,10 -34b35de,15 -34b35df,c8 -34b35e0,27 -34b35e1,a4 -34b35e3,1c -34b35e4,8f -34b35e5,a2 -34b35e7,10 -34b35e8,26 -34b35e9,10 -34b35ea,a3 -34b35ed,50 +34b35bc,8d +34b35bd,2 +34b35be,63 +34b35bf,44 +34b35c1,44 +34b35c2,10 +34b35c3,21 +34b35c4,90 +34b35c5,65 +34b35c9,a7 +34b35ca,28 +34b35cb,25 +34b35cc,a0 +34b35cd,45 +34b35cf,1 +34b35d0,24 +34b35d1,c6 +34b35d3,1 +34b35d4,24 +34b35d5,63 +34b35d7,1 +34b35d9,c9 +34b35da,10 +34b35db,2a +34b35dc,14 +34b35dd,40 +34b35de,ff +34b35df,f1 +34b35e0,24 +34b35e1,84 +34b35e3,2 +34b35e4,c +34b35e5,10 +34b35e6,15 +34b35e7,8e +34b35e8,24 +34b35e9,4 +34b35ea,1 +34b35ec,3c +34b35ed,4 34b35ee,80 -34b35ef,21 -34b35f0,3c +34b35ef,40 +34b35f0,24 34b35f1,3 -34b35f2,80 -34b35f3,40 +34b35f2,1 34b35f4,ac -34b35f5,70 +34b35f5,83 34b35f6,64 -34b35f7,28 +34b35f7,68 34b35f8,24 -34b35f9,42 -34b35fa,29 -34b35fb,80 -34b35fc,3c -34b35fd,3 -34b35fe,80 -34b35ff,40 +34b35f9,84 +34b35fa,64 +34b35fb,68 +34b35fc,ac +34b35fd,82 +34b35ff,4 34b3600,ac -34b3601,62 -34b3602,64 -34b3603,18 -34b3604,3c -34b3605,2 -34b3606,80 -34b3607,40 -34b3608,8f -34b3609,a3 -34b360b,1c +34b3601,82 +34b3603,8 +34b3604,24 +34b3605,42 +34b3606,1 +34b3608,c +34b3609,10 +34b360a,14 +34b360b,c0 34b360c,ac -34b360d,43 -34b360e,64 -34b360f,8 -34b3610,3c -34b3611,11 -34b3612,80 -34b3613,40 -34b3614,c -34b3615,10 -34b3616,14 -34b3617,10 -34b3618,26 -34b3619,24 -34b361a,63 -34b361b,f8 -34b361d,40 -34b361e,80 -34b361f,25 -34b3620,c -34b3621,10 -34b3622,15 -34b3623,bb -34b3625,40 -34b3626,20 -34b3627,25 -34b3629,10 -34b362a,4f -34b362b,c2 -34b362c,1 -34b362d,30 -34b362e,48 -34b362f,21 -34b3630,2a -34b3631,10 -34b3633,2 -34b3634,16 -34b3637,18 -34b3638,ae -34b3639,22 -34b363a,63 -34b363b,f8 -34b363d,9 -34b363e,48 -34b363f,43 -34b3640,3c -34b3641,3 -34b3642,80 -34b3643,40 -34b3644,24 -34b3645,63 -34b3646,65 -34b3647,3a -34b364a,20 -34b364b,25 -34b364e,30 -34b364f,25 -34b3650,2 -34b3651,20 -34b3652,40 -34b3653,25 -34b3654,24 -34b3655,7 -34b3656,ff -34b3657,f0 -34b3658,8d -34b3659,5 -34b365a,63 -34b365b,f8 -34b365d,a4 -34b365e,28 -34b365f,21 -34b3660,90 -34b3661,62 -34b3665,2 -34b3666,11 -34b3667,2 -34b3669,47 -34b366a,10 -34b366b,25 -34b366c,a0 -34b366d,a2 -34b3670,8d -34b3671,2 -34b3672,63 -34b3673,f8 -34b3675,44 -34b3676,10 -34b3677,21 -34b3678,90 -34b3679,65 -34b367d,a7 -34b367e,28 -34b367f,25 -34b3680,a0 -34b3681,45 -34b3683,1 -34b3684,24 -34b3685,c6 -34b3687,1 -34b3688,24 -34b3689,63 -34b368b,1 -34b368d,c9 -34b368e,10 -34b368f,2a -34b3690,14 -34b3691,40 -34b3692,ff -34b3693,f1 +34b360d,82 +34b360f,c +34b3610,8f +34b3611,bf +34b3613,34 +34b3614,8f +34b3615,b1 +34b3617,30 +34b3618,8f +34b3619,b0 +34b361b,2c +34b361c,3 +34b361d,e0 +34b361f,8 +34b3620,27 +34b3621,bd +34b3623,38 +34b3624,3c +34b3625,3 +34b3626,80 +34b3627,40 +34b3628,3c +34b3629,2 +34b362a,80 +34b362b,50 +34b362c,24 +34b362d,42 +34b3630,3 +34b3631,e0 +34b3633,8 +34b3634,ac +34b3635,62 +34b3636,64 +34b3637,4c +34b3639,4 +34b363a,17 +34b363b,c3 +34b363d,2 +34b363e,1f +34b363f,2 +34b3641,83 +34b3642,10 +34b3643,21 +34b3644,30 +34b3645,42 +34b3647,f +34b3649,43 +34b364a,10 +34b364b,23 +34b364c,10 +34b364d,40 +34b364f,3 +34b3650,3c +34b3651,3 +34b3652,80 +34b3653,40 +34b3655,82 +34b3656,20 +34b3657,23 +34b3658,24 +34b3659,84 +34b365b,10 +34b365c,8c +34b365d,62 +34b365e,64 +34b365f,4c +34b3661,44 +34b3662,20 +34b3663,21 +34b3664,3 +34b3665,e0 +34b3667,8 +34b3668,ac +34b3669,64 +34b366a,64 +34b366b,4c +34b366c,27 +34b366d,bd +34b366e,ff +34b366f,e8 +34b3670,af +34b3671,bf +34b3673,14 +34b3674,af +34b3675,b0 +34b3677,10 +34b3679,80 +34b367a,80 +34b367b,25 +34b367c,c +34b367d,10 +34b367e,15 +34b367f,8e +34b3680,8c +34b3681,84 +34b3683,8 +34b3684,ae +34b3685,2 +34b3688,8e +34b3689,6 +34b368b,8 +34b368d,40 +34b368e,20 +34b368f,25 +34b3690,3c +34b3691,2 +34b3692,80 34b3694,24 -34b3695,84 -34b3697,2 -34b3698,c -34b3699,10 -34b369a,15 -34b369b,bb -34b369c,24 -34b369d,4 -34b369e,1 -34b36a0,3c -34b36a1,4 -34b36a2,80 -34b36a3,40 -34b36a4,24 -34b36a5,3 -34b36a6,1 -34b36a8,ac -34b36a9,83 -34b36aa,65 -34b36ab,1c -34b36ac,24 -34b36ad,84 -34b36ae,65 -34b36af,1c -34b36b0,ac -34b36b1,82 -34b36b3,4 -34b36b4,ac -34b36b5,82 -34b36b7,8 -34b36b8,24 -34b36b9,42 -34b36ba,1 -34b36bc,c -34b36bd,10 -34b36be,14 -34b36bf,ed -34b36c0,ac -34b36c1,82 -34b36c3,c -34b36c4,8f -34b36c5,bf -34b36c7,34 -34b36c8,8f -34b36c9,b1 -34b36cb,30 -34b36cc,8f -34b36cd,b0 -34b36cf,2c -34b36d0,3 -34b36d1,e0 -34b36d3,8 -34b36d4,27 -34b36d5,bd -34b36d7,38 -34b36d8,3c -34b36d9,3 -34b36da,80 -34b36db,40 +34b3695,42 +34b3696,d +34b3697,f0 +34b3699,40 +34b369a,f8 +34b369b,9 +34b369c,8e +34b369d,5 +34b369f,4 +34b36a0,8f +34b36a1,bf +34b36a3,14 +34b36a4,8f +34b36a5,b0 +34b36a7,10 +34b36a8,3 +34b36a9,e0 +34b36ab,8 +34b36ac,27 +34b36ad,bd +34b36af,18 +34b36b0,27 +34b36b1,bd +34b36b2,ff +34b36b3,e8 +34b36b4,af +34b36b5,bf +34b36b7,14 +34b36b8,c +34b36b9,10 +34b36ba,15 +34b36bb,89 +34b36c0,c +34b36c1,10 +34b36c2,15 +34b36c3,37 +34b36c8,c +34b36c9,10 +34b36ca,18 +34b36cb,47 +34b36d0,8f +34b36d1,bf +34b36d3,14 +34b36d4,3 +34b36d5,e0 +34b36d7,8 +34b36d8,27 +34b36d9,bd +34b36db,18 34b36dc,3c 34b36dd,2 34b36de,80 -34b36df,50 -34b36e0,24 +34b36df,1c +34b36e0,34 34b36e1,42 -34b36e4,3 -34b36e5,e0 -34b36e7,8 -34b36e8,ac -34b36e9,62 -34b36ea,65 -34b36ed,4 -34b36ee,17 -34b36ef,c3 +34b36e2,84 +34b36e3,a0 +34b36e4,3c +34b36e5,3 +34b36e7,1 +34b36e9,43 +34b36ea,10 +34b36eb,21 +34b36ec,94 +34b36ed,43 +34b36ee,9 +34b36ef,34 +34b36f0,24 34b36f1,2 -34b36f2,1f -34b36f3,2 -34b36f5,83 -34b36f6,10 -34b36f7,21 -34b36f8,30 -34b36f9,42 -34b36fb,f -34b36fd,43 -34b36fe,10 -34b36ff,23 -34b3700,10 -34b3701,40 -34b3703,3 -34b3704,3c -34b3705,3 -34b3706,80 -34b3707,40 -34b3709,82 -34b370a,20 -34b370b,23 -34b370c,24 -34b370d,84 -34b370f,10 -34b3710,8c -34b3711,62 -34b3712,65 -34b3715,44 -34b3716,20 -34b3717,21 -34b3718,3 -34b3719,e0 -34b371b,8 -34b371c,ac -34b371d,64 -34b371e,65 -34b3720,27 -34b3721,bd -34b3722,ff -34b3723,e8 -34b3724,af -34b3725,bf -34b3727,14 -34b3728,af -34b3729,b0 -34b372b,10 -34b372d,80 -34b372e,80 -34b372f,25 -34b3730,c -34b3731,10 -34b3732,15 -34b3733,bb -34b3734,8c -34b3735,84 -34b3737,8 -34b3738,ae -34b3739,2 -34b373c,8e -34b373d,6 -34b373f,8 -34b3741,40 -34b3742,20 -34b3743,25 -34b3744,3c -34b3745,2 -34b3746,80 -34b3748,24 -34b3749,42 -34b374a,d -34b374b,f0 -34b374d,40 -34b374e,f8 -34b374f,9 -34b3750,8e -34b3751,5 -34b3753,4 -34b3754,8f -34b3755,bf -34b3757,14 -34b3758,8f -34b3759,b0 -34b375b,10 +34b36f3,6 +34b36f4,14 +34b36f5,62 +34b36f7,19 +34b36f8,3c +34b36f9,2 +34b36fa,80 +34b36fb,1c +34b36fc,34 +34b36fd,42 +34b36fe,84 +34b36ff,a0 +34b3700,3c +34b3701,3 +34b3703,1 +34b3705,43 +34b3706,10 +34b3707,21 +34b3708,94 +34b3709,42 +34b370a,9 +34b370b,48 +34b370c,14 +34b370d,40 +34b370f,13 +34b3710,3c +34b3711,2 +34b3712,80 +34b3713,1c +34b3714,34 +34b3715,42 +34b3716,84 +34b3717,a0 +34b3719,43 +34b371a,10 +34b371b,21 +34b371c,94 +34b371d,42 +34b371e,9 +34b371f,44 +34b3720,14 +34b3721,40 +34b3723,e +34b3724,3c +34b3725,2 +34b3726,80 +34b3727,1c +34b3728,34 +34b3729,42 +34b372a,84 +34b372b,a0 +34b372c,84 +34b372d,42 +34b372f,14 +34b3730,4 +34b3731,41 +34b3733,a +34b3734,3c +34b3735,2 +34b3736,80 +34b3737,1c +34b3738,27 +34b3739,bd +34b373a,ff +34b373b,e8 +34b373c,af +34b373d,bf +34b373f,14 +34b3740,34 +34b3741,42 +34b3742,84 +34b3743,a0 +34b3744,8c +34b3745,44 +34b3748,c +34b3749,10 +34b374a,15 +34b374b,d9 +34b374c,24 +34b374d,84 +34b374e,2 +34b374f,a8 +34b3750,8f +34b3751,bf +34b3753,14 +34b3754,3 +34b3755,e0 +34b3757,8 +34b3758,27 +34b3759,bd +34b375b,18 34b375c,3 34b375d,e0 34b375f,8 -34b3760,27 -34b3761,bd -34b3763,18 -34b3764,27 -34b3765,bd -34b3766,ff -34b3767,e8 -34b3768,af -34b3769,bf -34b376b,14 -34b376c,c -34b376d,10 -34b376e,15 -34b376f,b6 -34b3774,c -34b3775,10 -34b3776,15 -34b3777,64 -34b377c,c -34b377d,10 -34b377e,18 -34b377f,74 -34b3784,8f -34b3785,bf -34b3787,14 -34b3788,3 -34b3789,e0 -34b378b,8 -34b378c,27 -34b378d,bd -34b378f,18 -34b3790,3c -34b3791,2 -34b3792,80 -34b3793,1c -34b3794,34 -34b3795,42 -34b3796,84 -34b3797,a0 -34b3798,3c -34b3799,3 -34b379b,1 -34b379d,43 -34b379e,10 -34b379f,21 -34b37a0,94 -34b37a1,43 -34b37a2,9 -34b37a3,34 -34b37a4,24 -34b37a5,2 -34b37a7,6 -34b37a8,14 -34b37a9,62 -34b37ab,19 -34b37ac,3c -34b37ad,2 -34b37ae,80 -34b37af,1c -34b37b0,34 -34b37b1,42 -34b37b2,84 -34b37b3,a0 -34b37b4,3c -34b37b5,3 -34b37b7,1 +34b3764,3c +34b3765,2 +34b3766,80 +34b3767,40 +34b3768,8c +34b3769,42 +34b376a,64 +34b376b,44 +34b376c,10 +34b376d,40 +34b376e,2 +34b376f,69 +34b3770,3c +34b3771,3 +34b3772,80 +34b3773,40 +34b3774,27 +34b3775,bd +34b3776,ff +34b3777,90 +34b3778,af +34b3779,bf +34b377b,6c +34b377c,af +34b377d,be +34b377f,68 +34b3780,af +34b3781,b7 +34b3783,64 +34b3784,af +34b3785,b6 +34b3787,60 +34b3788,af +34b3789,b5 +34b378b,5c +34b378c,af +34b378d,b4 +34b378f,58 +34b3790,af +34b3791,b3 +34b3793,54 +34b3794,af +34b3795,b2 +34b3797,50 +34b3798,af +34b3799,b1 +34b379b,4c +34b379c,af +34b379d,b0 +34b379f,48 +34b37a0,8c +34b37a1,82 +34b37a3,4 +34b37a4,8c +34b37a5,63 +34b37a6,64 +34b37a7,6c +34b37a8,24 +34b37a9,45 +34b37ab,8 +34b37ac,ac +34b37ad,85 +34b37af,8 +34b37b0,3c +34b37b1,5 +34b37b2,de +34b37b4,ac +34b37b5,45 +34b37b8,ac 34b37b9,43 -34b37ba,10 -34b37bb,21 -34b37bc,94 -34b37bd,42 -34b37be,9 -34b37bf,48 -34b37c0,14 -34b37c1,40 -34b37c3,13 -34b37c4,3c -34b37c5,2 -34b37c6,80 -34b37c7,1c -34b37c8,34 -34b37c9,42 -34b37ca,84 -34b37cb,a0 -34b37cd,43 -34b37ce,10 -34b37cf,21 -34b37d0,94 -34b37d1,42 -34b37d2,9 -34b37d3,44 -34b37d4,14 -34b37d5,40 -34b37d7,e -34b37d8,3c -34b37d9,2 -34b37da,80 -34b37db,1c -34b37dc,34 -34b37dd,42 -34b37de,84 -34b37df,a0 -34b37e0,84 -34b37e1,42 -34b37e3,14 -34b37e4,4 -34b37e5,41 -34b37e7,a -34b37e8,3c -34b37e9,2 -34b37ea,80 -34b37eb,1c -34b37ec,27 -34b37ed,bd -34b37ee,ff -34b37ef,e8 -34b37f0,af -34b37f1,bf -34b37f3,14 -34b37f4,34 -34b37f5,42 -34b37f6,84 -34b37f7,a0 -34b37f8,8c -34b37f9,44 -34b37fc,c -34b37fd,10 -34b37fe,16 -34b37ff,6 -34b3800,24 -34b3801,84 -34b3802,2 -34b3803,a8 -34b3804,8f -34b3805,bf -34b3807,14 -34b3808,3 -34b3809,e0 -34b380b,8 -34b380c,27 -34b380d,bd -34b380f,18 -34b3810,3 -34b3811,e0 -34b3813,8 -34b3818,3c -34b3819,2 -34b381a,80 -34b381b,40 -34b381c,8c -34b381d,42 -34b381e,64 -34b381f,f8 -34b3820,10 -34b3821,40 -34b3822,2 -34b3823,69 -34b3824,3c -34b3825,3 -34b3826,80 -34b3827,40 -34b3828,27 -34b3829,bd -34b382a,ff -34b382b,90 -34b382c,af -34b382d,bf -34b382f,6c -34b3830,af -34b3831,be -34b3833,68 -34b3834,af -34b3835,b7 -34b3837,64 -34b3838,af -34b3839,b6 -34b383b,60 -34b383c,af -34b383d,b5 -34b383f,5c +34b37bb,4 +34b37bc,3c +34b37bd,2 +34b37be,80 +34b37bf,11 +34b37c0,34 +34b37c1,42 +34b37c2,a5 +34b37c3,d0 +34b37c4,94 +34b37c5,54 +34b37c6,f +34b37c7,2e +34b37c8,3c +34b37c9,2 +34b37ca,80 +34b37cb,40 +34b37cc,8c +34b37cd,42 +34b37ce,64 +34b37cf,50 +34b37d0,50 +34b37d1,40 +34b37d3,5 +34b37d4,24 +34b37d5,8 +34b37d7,1 +34b37d8,32 +34b37d9,88 +34b37db,1 +34b37dd,14 +34b37de,a0 +34b37df,42 +34b37e0,10 +34b37e3,2 +34b37e4,32 +34b37e5,94 +34b37e7,1 +34b37e8,24 +34b37e9,14 +34b37eb,1 +34b37ec,3c +34b37ed,2 +34b37ee,80 +34b37ef,40 +34b37f0,8c +34b37f1,55 +34b37f2,64 +34b37f3,5c +34b37f4,12 +34b37f5,a0 +34b37f7,7 +34b37f8,2 +34b37f9,a0 +34b37fa,18 +34b37fb,25 +34b37fc,3c +34b37fd,2 +34b37fe,80 +34b37ff,40 +34b3800,94 +34b3801,43 +34b3802,63 +34b3803,48 +34b3805,3 +34b3806,10 +34b3807,40 +34b3809,43 +34b380a,10 +34b380b,21 +34b380d,2 +34b380e,10 +34b380f,40 +34b3810,24 +34b3811,43 +34b3813,1 +34b3814,3c +34b3815,2 +34b3816,80 +34b3817,40 +34b3818,94 +34b3819,42 +34b381a,63 +34b381b,48 +34b381d,2 +34b381e,10 +34b381f,c0 +34b3820,24 +34b3821,42 +34b3823,57 +34b3825,43 +34b3826,10 +34b3827,21 +34b3828,24 +34b3829,3 +34b382a,1 +34b382b,40 +34b382d,62 +34b382e,18 +34b382f,23 +34b3831,3 +34b3832,8f +34b3833,c2 +34b3834,2 +34b3835,23 +34b3836,88 +34b3837,21 +34b3839,11 +34b383a,88 +34b383b,43 +34b383c,26 +34b383d,23 +34b383f,1 34b3840,af -34b3841,b4 -34b3843,58 -34b3844,af -34b3845,b3 -34b3847,54 -34b3848,af -34b3849,b2 -34b384b,50 -34b384c,af -34b384d,b1 -34b384f,4c -34b3850,af -34b3851,b0 -34b3853,48 -34b3854,8c -34b3855,82 -34b3857,4 -34b3858,8c -34b3859,63 -34b385a,65 -34b385b,20 -34b385c,24 -34b385d,45 -34b385f,8 -34b3860,ac -34b3861,85 -34b3863,8 -34b3864,3c -34b3865,5 -34b3866,de -34b3868,ac -34b3869,45 -34b386c,ac -34b386d,43 -34b386f,4 -34b3870,3c -34b3871,2 -34b3872,80 -34b3873,11 -34b3874,34 -34b3875,42 -34b3876,a5 -34b3877,d0 -34b3878,94 -34b3879,54 -34b387a,f -34b387b,2e -34b387c,3c -34b387d,2 -34b387e,80 -34b387f,40 -34b3880,8c -34b3881,42 -34b3882,65 +34b3841,a3 +34b3843,38 +34b3844,8c +34b3845,83 +34b3847,8 +34b3848,24 +34b3849,65 +34b384b,8 +34b384c,ac +34b384d,85 +34b384f,8 +34b3850,3c +34b3851,5 +34b3852,fc +34b3853,ff +34b3854,34 +34b3855,a5 +34b3856,ff +34b3857,ff +34b3858,ac +34b3859,65 +34b385c,3c +34b385d,5 +34b385e,ff +34b385f,fd +34b3860,34 +34b3861,a5 +34b3862,f6 +34b3863,fb +34b3864,ac +34b3865,65 +34b3867,4 +34b3868,8c +34b3869,83 +34b386b,8 +34b386c,24 +34b386d,65 +34b386f,8 +34b3870,ac +34b3871,85 +34b3873,8 +34b3874,3c +34b3875,5 +34b3876,fa +34b3878,ac +34b3879,65 +34b387c,24 +34b387d,5 +34b387f,d0 +34b3880,ac +34b3881,65 34b3883,4 -34b3884,50 -34b3885,40 -34b3887,5 -34b3888,24 -34b3889,8 -34b388b,1 -34b388c,32 -34b388d,88 -34b388f,1 -34b3891,14 -34b3892,a0 -34b3893,42 -34b3894,10 -34b3897,2 -34b3898,32 -34b3899,94 -34b389b,1 +34b3885,51 +34b3886,10 +34b3887,21 +34b3889,2 +34b388a,13 +34b388b,80 +34b388c,3c +34b388d,3 +34b388f,ff +34b3890,34 +34b3891,63 +34b3892,f0 +34b3895,43 +34b3896,10 +34b3897,24 +34b3898,3c +34b3899,5 +34b389a,e4 34b389c,24 -34b389d,14 -34b389f,1 -34b38a0,3c -34b38a1,2 -34b38a2,80 -34b38a3,40 -34b38a4,8c -34b38a5,55 -34b38a6,65 -34b38a7,10 -34b38a8,12 -34b38a9,a0 -34b38ab,7 -34b38ac,2 -34b38ad,a0 -34b38ae,18 -34b38af,25 -34b38b0,3c -34b38b1,2 -34b38b2,80 -34b38b3,40 -34b38b4,94 -34b38b5,43 -34b38b6,63 -34b38b7,fc -34b38b9,3 -34b38ba,10 -34b38bb,40 -34b38bd,43 -34b38be,10 -34b38bf,21 -34b38c1,2 -34b38c2,10 -34b38c3,40 -34b38c4,24 -34b38c5,43 -34b38c7,1 -34b38c8,3c -34b38c9,2 -34b38ca,80 -34b38cb,40 -34b38cc,94 -34b38cd,42 -34b38ce,63 -34b38cf,fc -34b38d1,2 -34b38d2,10 -34b38d3,c0 -34b38d4,24 -34b38d5,42 -34b38d7,57 -34b38d9,43 -34b38da,10 -34b38db,21 -34b38dc,24 -34b38dd,3 -34b38de,1 -34b38df,40 -34b38e1,62 -34b38e2,18 -34b38e3,23 -34b38e5,3 -34b38e6,8f -34b38e7,c2 -34b38e8,2 -34b38e9,23 -34b38ea,88 -34b38eb,21 -34b38ed,11 -34b38ee,88 -34b38ef,43 -34b38f0,26 -34b38f1,23 -34b38f3,1 -34b38f4,af -34b38f5,a3 -34b38f7,38 -34b38f8,8c -34b38f9,83 +34b389d,a5 +34b389e,3 +34b389f,9c +34b38a1,45 +34b38a2,10 +34b38a3,25 +34b38a4,af +34b38a5,a2 +34b38a7,20 +34b38a9,11 +34b38aa,13 +34b38ab,80 +34b38ad,43 +34b38ae,10 +34b38af,24 +34b38b0,34 +34b38b1,42 +34b38b3,24 +34b38b4,af +34b38b5,a2 +34b38b7,24 +34b38b8,3c +34b38b9,2 +34b38ba,e1 +34b38bc,af +34b38bd,a2 +34b38bf,28 +34b38c0,af +34b38c1,a0 +34b38c3,2c +34b38c4,3c +34b38c5,2 +34b38c6,f1 +34b38c8,af +34b38c9,a2 +34b38cb,30 +34b38cc,3c +34b38cd,2 +34b38ce,4 +34b38d0,24 +34b38d1,42 +34b38d2,4 +34b38d4,af +34b38d5,a2 +34b38d7,34 +34b38d8,27 +34b38d9,a2 +34b38db,20 +34b38dc,27 +34b38dd,a9 +34b38df,38 +34b38e0,8c +34b38e1,83 +34b38e3,8 +34b38e4,24 +34b38e5,65 +34b38e7,8 +34b38e8,ac +34b38e9,85 +34b38eb,8 +34b38ec,8c +34b38ed,47 +34b38ef,4 +34b38f0,8c +34b38f1,46 +34b38f4,ac +34b38f5,67 +34b38f7,4 +34b38f8,24 +34b38f9,42 34b38fb,8 -34b38fc,24 -34b38fd,65 -34b38ff,8 +34b38fc,15 +34b38fd,22 +34b38fe,ff +34b38ff,f8 34b3900,ac -34b3901,85 -34b3903,8 -34b3904,3c -34b3905,5 -34b3906,fc -34b3907,ff -34b3908,34 -34b3909,a5 -34b390a,ff -34b390b,ff -34b390c,ac -34b390d,65 -34b3910,3c -34b3911,5 -34b3912,ff -34b3913,fd -34b3914,34 -34b3915,a5 -34b3916,f6 -34b3917,fb +34b3901,66 +34b3905,80 +34b3906,80 +34b3907,25 +34b3908,8c +34b3909,82 +34b390b,8 +34b390c,24 +34b390d,43 +34b390f,8 +34b3910,ac +34b3911,83 +34b3913,8 +34b3914,3c +34b3915,3 +34b3916,e7 34b3918,ac -34b3919,65 -34b391b,4 -34b391c,8c -34b391d,83 -34b391f,8 -34b3920,24 -34b3921,65 +34b3919,43 +34b391c,ac +34b391d,40 +34b391f,4 +34b3920,8c +34b3921,82 34b3923,8 -34b3924,ac -34b3925,85 +34b3924,24 +34b3925,43 34b3927,8 -34b3928,3c -34b3929,5 -34b392a,fa -34b392c,ac -34b392d,65 -34b3930,24 -34b3931,5 -34b3933,d0 +34b3928,ac +34b3929,83 +34b392b,8 +34b392c,3c +34b392d,3 +34b392e,fc +34b392f,11 +34b3930,34 +34b3931,63 +34b3932,96 +34b3933,23 34b3934,ac -34b3935,65 -34b3937,4 -34b3939,51 -34b393a,10 -34b393b,21 -34b393d,2 -34b393e,13 -34b393f,80 -34b3940,3c -34b3941,3 -34b3943,ff -34b3944,34 -34b3945,63 -34b3946,f0 -34b3949,43 -34b394a,10 -34b394b,24 -34b394c,3c -34b394d,5 -34b394e,e4 -34b3950,24 -34b3951,a5 -34b3952,3 -34b3953,9c -34b3955,45 -34b3956,10 -34b3957,25 -34b3958,af -34b3959,a2 -34b395b,20 -34b395d,11 -34b395e,13 -34b395f,80 -34b3961,43 -34b3962,10 -34b3963,24 -34b3964,34 -34b3965,42 -34b3967,24 -34b3968,af -34b3969,a2 -34b396b,24 +34b3935,43 +34b3938,3c +34b3939,3 +34b393a,ff +34b393b,2f +34b393c,34 +34b393d,63 +34b393e,ff +34b393f,ff +34b3940,11 +34b3943,4c +34b3944,ac +34b3945,43 +34b3947,4 +34b3948,3c +34b3949,5 +34b394a,80 +34b394b,40 +34b394c,24 +34b394d,a5 +34b394e,63 +34b394f,64 +34b3950,94 +34b3951,a7 +34b3953,8 +34b3954,c +34b3955,10 +34b3956,14 +34b3957,1c +34b395a,30 +34b395b,25 +34b395c,3c +34b395d,2 +34b395e,80 +34b395f,40 +34b3960,8c +34b3961,42 +34b3962,64 +34b3963,48 +34b3964,18 +34b3965,40 +34b3967,43 +34b3968,3c +34b3969,2 +34b396a,80 +34b396b,40 34b396c,3c -34b396d,2 -34b396e,e1 -34b3970,af -34b3971,a2 -34b3973,28 -34b3974,af -34b3975,a0 -34b3977,2c +34b396d,13 +34b396e,80 +34b396f,40 +34b3970,26 +34b3971,73 +34b3972,63 +34b3973,a8 +34b3976,90 +34b3977,25 34b3978,3c -34b3979,2 -34b397a,f1 -34b397c,af -34b397d,a2 -34b397f,30 -34b3980,3c -34b3981,2 -34b3982,4 +34b3979,1e +34b397a,80 +34b397b,40 +34b397c,3c +34b397d,16 +34b397e,80 +34b397f,40 +34b3980,26 +34b3981,d6 +34b3982,63 +34b3983,84 34b3984,24 34b3985,42 -34b3986,4 +34b3986,63 +34b3987,94 34b3988,af 34b3989,a2 -34b398b,34 -34b398c,27 -34b398d,a2 -34b398f,20 -34b3990,27 -34b3991,a9 -34b3993,38 -34b3994,8c -34b3995,83 -34b3997,8 -34b3998,24 -34b3999,65 -34b399b,8 -34b399c,ac -34b399d,85 -34b399f,8 -34b39a0,8c -34b39a1,47 -34b39a3,4 -34b39a4,8c -34b39a5,46 -34b39a8,ac -34b39a9,67 -34b39ab,4 -34b39ac,24 -34b39ad,42 -34b39af,8 -34b39b0,15 -34b39b1,22 -34b39b2,ff -34b39b3,f8 -34b39b4,ac -34b39b5,66 -34b39b9,80 -34b39ba,80 -34b39bb,25 -34b39bc,8c -34b39bd,82 -34b39bf,8 -34b39c0,24 -34b39c1,43 -34b39c3,8 -34b39c4,ac -34b39c5,83 -34b39c7,8 -34b39c8,3c -34b39c9,3 -34b39ca,e7 -34b39cc,ac -34b39cd,43 -34b39d0,ac -34b39d1,40 -34b39d3,4 -34b39d4,8c -34b39d5,82 -34b39d7,8 -34b39d8,24 -34b39d9,43 -34b39db,8 -34b39dc,ac -34b39dd,83 -34b39df,8 -34b39e0,3c -34b39e1,3 -34b39e2,fc -34b39e3,11 -34b39e4,34 -34b39e5,63 -34b39e6,96 -34b39e7,23 -34b39e8,ac -34b39e9,43 -34b39ec,3c -34b39ed,3 -34b39ee,ff -34b39ef,2f -34b39f0,34 -34b39f1,63 -34b39f2,ff -34b39f3,ff -34b39f4,11 -34b39f7,4c -34b39f8,ac -34b39f9,43 -34b39fb,4 -34b39fc,3c -34b39fd,5 -34b39fe,80 -34b39ff,40 -34b3a00,24 -34b3a01,a5 -34b3a02,64 -34b3a03,18 -34b3a04,94 -34b3a05,a7 -34b3a07,8 -34b3a08,c -34b3a09,10 -34b3a0a,14 -34b3a0b,1c -34b3a0e,30 -34b3a0f,25 -34b3a10,3c -34b3a11,2 -34b3a12,80 -34b3a13,40 -34b3a14,8c -34b3a15,42 -34b3a16,64 -34b3a17,fc -34b3a18,18 -34b3a19,40 -34b3a1b,43 -34b3a1c,3c -34b3a1d,2 -34b3a1e,80 -34b3a1f,40 -34b3a20,3c -34b3a21,13 -34b3a22,80 -34b3a23,40 -34b3a24,26 -34b3a25,73 -34b3a26,64 -34b3a27,5c -34b3a2a,90 -34b3a2b,25 -34b3a2c,3c -34b3a2d,1e -34b3a2e,80 -34b3a2f,40 -34b3a30,3c -34b3a31,16 -34b3a32,80 -34b3a33,40 -34b3a34,26 -34b3a35,d6 -34b3a36,64 -34b3a37,38 -34b3a38,24 -34b3a39,42 -34b3a3a,64 -34b3a3b,48 +34b398b,3c +34b398c,3c +34b398d,2 +34b398e,80 +34b398f,40 +34b3990,24 +34b3991,42 +34b3992,63 +34b3993,64 +34b3994,af +34b3995,a2 +34b3997,40 +34b3998,3c +34b3999,17 +34b399a,80 +34b399b,40 +34b399c,8f +34b399d,c2 +34b399e,64 +34b399f,54 +34b39a0,50 +34b39a1,40 +34b39a3,b +34b39a4,92 +34b39a5,62 +34b39a8,92 +34b39a9,63 +34b39ac,3c +34b39ad,2 +34b39ae,80 +34b39af,11 +34b39b0,34 +34b39b1,42 +34b39b2,a5 +34b39b3,d0 +34b39b5,43 +34b39b6,10 +34b39b7,21 +34b39b8,90 +34b39b9,42 +34b39bb,a8 +34b39bd,2 +34b39be,10 +34b39bf,42 +34b39c0,30 +34b39c1,42 +34b39c3,1 +34b39c4,50 +34b39c5,40 +34b39c7,27 +34b39c8,26 +34b39c9,52 +34b39cb,1 +34b39cc,92 +34b39cd,62 +34b39d1,56 +34b39d2,10 +34b39d3,21 +34b39d4,80 +34b39d5,46 +34b39d8,28 +34b39d9,c2 +34b39db,3 +34b39dc,54 +34b39dd,40 +34b39df,21 +34b39e0,26 +34b39e1,52 +34b39e3,1 +34b39e4,24 +34b39e5,c6 +34b39e6,ff +34b39e7,fd +34b39e9,6 +34b39ea,18 +34b39eb,40 +34b39ed,66 +34b39ee,18 +34b39ef,21 +34b39f0,8f +34b39f1,a2 +34b39f3,3c +34b39f5,62 +34b39f6,18 +34b39f7,21 +34b39f8,90 +34b39f9,62 +34b39fd,2 +34b39fe,16 +34b3a00,90 +34b3a01,64 +34b3a03,2 +34b3a05,4 +34b3a06,22 +34b3a09,44 +34b3a0a,10 +34b3a0b,25 +34b3a0c,90 +34b3a0d,63 +34b3a0f,1 +34b3a11,3 +34b3a12,1c +34b3a15,43 +34b3a16,10 +34b3a17,25 +34b3a18,34 +34b3a19,42 +34b3a1b,ff +34b3a1c,8e +34b3a1d,3 +34b3a1f,8 +34b3a20,24 +34b3a21,64 +34b3a23,8 +34b3a24,ae +34b3a25,4 +34b3a27,8 +34b3a28,3c +34b3a29,4 +34b3a2a,fa +34b3a2c,ac +34b3a2d,64 +34b3a30,ac +34b3a31,62 +34b3a33,4 +34b3a34,24 +34b3a35,2 +34b3a37,10 +34b3a38,af +34b3a39,a2 +34b3a3b,18 34b3a3c,af 34b3a3d,a2 -34b3a3f,3c -34b3a40,3c -34b3a41,2 -34b3a42,80 -34b3a43,40 -34b3a44,24 -34b3a45,42 -34b3a46,64 -34b3a47,18 -34b3a48,af -34b3a49,a2 -34b3a4b,40 -34b3a4c,3c -34b3a4d,17 -34b3a4e,80 -34b3a4f,40 +34b3a3f,14 +34b3a41,12 +34b3a42,11 +34b3a45,52 +34b3a46,10 +34b3a47,21 +34b3a48,24 +34b3a49,42 +34b3a4b,a +34b3a4c,af +34b3a4d,a2 +34b3a4f,10 34b3a50,8f -34b3a51,c2 -34b3a52,65 -34b3a53,8 -34b3a54,50 -34b3a55,40 -34b3a57,b -34b3a58,92 -34b3a59,62 -34b3a5c,92 -34b3a5d,63 -34b3a60,3c -34b3a61,2 -34b3a62,80 -34b3a63,11 -34b3a64,34 -34b3a65,42 -34b3a66,a5 -34b3a67,d0 -34b3a69,43 +34b3a51,a7 +34b3a53,38 +34b3a54,8f +34b3a55,a5 +34b3a57,40 +34b3a58,c +34b3a59,10 +34b3a5a,14 +34b3a5b,84 +34b3a5c,2 +34b3a5e,20 +34b3a5f,25 +34b3a60,26 +34b3a61,52 +34b3a63,1 +34b3a64,8e +34b3a65,e2 +34b3a66,64 +34b3a67,48 +34b3a68,2 +34b3a69,42 34b3a6a,10 -34b3a6b,21 -34b3a6c,90 -34b3a6d,42 -34b3a6f,a8 -34b3a71,2 -34b3a72,10 -34b3a73,42 -34b3a74,30 -34b3a75,42 -34b3a77,1 -34b3a78,50 -34b3a79,40 -34b3a7b,27 -34b3a7c,26 -34b3a7d,52 -34b3a7f,1 -34b3a80,92 -34b3a81,62 -34b3a85,56 -34b3a86,10 -34b3a87,21 -34b3a88,80 -34b3a89,46 -34b3a8c,28 -34b3a8d,c2 -34b3a8f,3 -34b3a90,54 -34b3a91,40 -34b3a93,21 -34b3a94,26 -34b3a95,52 -34b3a97,1 +34b3a6b,2a +34b3a6c,14 +34b3a6d,40 +34b3a6e,ff +34b3a6f,cb +34b3a70,26 +34b3a71,73 +34b3a73,c +34b3a74,8e +34b3a75,2 +34b3a77,8 +34b3a78,24 +34b3a79,43 +34b3a7b,8 +34b3a7c,ae +34b3a7d,3 +34b3a7f,8 +34b3a80,3c +34b3a81,3 +34b3a82,fa +34b3a84,ac +34b3a85,43 +34b3a88,24 +34b3a89,3 +34b3a8a,ff +34b3a8b,ff +34b3a8c,12 +34b3a8d,80 +34b3a8f,35 +34b3a90,ac +34b3a91,43 +34b3a93,4 +34b3a94,3c +34b3a95,5 +34b3a96,80 +34b3a97,40 34b3a98,24 -34b3a99,c6 -34b3a9a,ff -34b3a9b,fd -34b3a9d,6 -34b3a9e,18 -34b3a9f,40 -34b3aa1,66 -34b3aa2,18 -34b3aa3,21 -34b3aa4,8f -34b3aa5,a2 -34b3aa7,3c -34b3aa9,62 -34b3aaa,18 -34b3aab,21 -34b3aac,90 -34b3aad,62 -34b3ab1,2 -34b3ab2,16 -34b3ab4,90 -34b3ab5,64 -34b3ab7,2 -34b3ab9,4 -34b3aba,22 -34b3abd,44 -34b3abe,10 -34b3abf,25 -34b3ac0,90 -34b3ac1,63 -34b3ac3,1 -34b3ac5,3 -34b3ac6,1c -34b3ac9,43 -34b3aca,10 -34b3acb,25 -34b3acc,34 -34b3acd,42 -34b3acf,ff -34b3ad0,8e -34b3ad1,3 -34b3ad3,8 +34b3a99,a5 +34b3a9a,63 +34b3a9b,74 +34b3a9c,94 +34b3a9d,a7 +34b3a9f,8 +34b3aa2,30 +34b3aa3,25 +34b3aa4,c +34b3aa5,10 +34b3aa6,14 +34b3aa7,1c +34b3aa8,2 +34b3aaa,20 +34b3aab,25 +34b3aac,3c +34b3aad,2 +34b3aae,80 +34b3aaf,40 +34b3ab0,8c +34b3ab1,42 +34b3ab2,64 +34b3ab3,48 +34b3ab4,18 +34b3ab5,40 +34b3ab6,1 +34b3ab7,95 +34b3ab8,3c +34b3ab9,2 +34b3aba,80 +34b3abb,40 +34b3abc,3c +34b3abd,13 +34b3abe,80 +34b3abf,40 +34b3ac0,26 +34b3ac1,73 +34b3ac2,63 +34b3ac3,a8 +34b3ac6,90 +34b3ac7,25 +34b3ac8,3c +34b3ac9,17 +34b3aca,80 +34b3acb,40 +34b3acc,3c +34b3acd,14 +34b3ace,80 +34b3acf,40 +34b3ad0,26 +34b3ad1,94 +34b3ad2,63 +34b3ad3,84 34b3ad4,24 -34b3ad5,64 -34b3ad7,8 -34b3ad8,ae -34b3ad9,4 -34b3adb,8 +34b3ad5,42 +34b3ad6,63 +34b3ad7,74 +34b3ad8,af +34b3ad9,a2 +34b3adb,3c 34b3adc,3c -34b3add,4 -34b3ade,fa -34b3ae0,ac -34b3ae1,64 -34b3ae4,ac -34b3ae5,62 -34b3ae7,4 -34b3ae8,24 -34b3ae9,2 -34b3aeb,10 -34b3aec,af -34b3aed,a2 -34b3aef,18 -34b3af0,af -34b3af1,a2 -34b3af3,14 -34b3af5,12 -34b3af6,11 -34b3af9,52 -34b3afa,10 -34b3afb,21 -34b3afc,24 -34b3afd,42 -34b3aff,a -34b3b00,af -34b3b01,a2 -34b3b03,10 -34b3b04,8f -34b3b05,a7 -34b3b07,38 -34b3b08,8f -34b3b09,a5 -34b3b0b,40 -34b3b0c,c -34b3b0d,10 -34b3b0e,14 -34b3b0f,b1 -34b3b10,2 -34b3b12,20 -34b3b13,25 -34b3b14,26 -34b3b15,52 -34b3b17,1 -34b3b18,8e -34b3b19,e2 -34b3b1a,64 -34b3b1b,fc -34b3b1c,2 -34b3b1d,42 -34b3b1e,10 -34b3b1f,2a -34b3b20,14 -34b3b21,40 -34b3b22,ff -34b3b23,cb -34b3b24,26 -34b3b25,73 -34b3b27,c -34b3b28,8e -34b3b29,2 -34b3b2b,8 -34b3b2c,24 -34b3b2d,43 -34b3b2f,8 -34b3b30,ae -34b3b31,3 -34b3b33,8 -34b3b34,3c -34b3b35,3 -34b3b36,fa -34b3b38,ac -34b3b39,43 -34b3b3c,24 -34b3b3d,3 -34b3b3e,ff -34b3b3f,ff -34b3b40,12 -34b3b41,80 -34b3b43,35 -34b3b44,ac -34b3b45,43 -34b3b47,4 -34b3b48,3c -34b3b49,5 -34b3b4a,80 -34b3b4b,40 -34b3b4c,24 -34b3b4d,a5 -34b3b4e,64 -34b3b4f,28 -34b3b50,94 -34b3b51,a7 -34b3b53,8 -34b3b56,30 -34b3b57,25 -34b3b58,c -34b3b59,10 -34b3b5a,14 -34b3b5b,1c -34b3b5c,2 -34b3b5e,20 -34b3b5f,25 -34b3b60,3c -34b3b61,2 -34b3b62,80 -34b3b63,40 -34b3b64,8c -34b3b65,42 -34b3b66,64 -34b3b67,fc -34b3b68,18 -34b3b69,40 -34b3b6a,1 -34b3b6b,95 -34b3b6c,3c -34b3b6d,2 -34b3b6e,80 -34b3b6f,40 -34b3b70,3c -34b3b71,13 -34b3b72,80 -34b3b73,40 -34b3b74,26 -34b3b75,73 -34b3b76,64 -34b3b77,5c -34b3b7a,90 -34b3b7b,25 -34b3b7c,3c -34b3b7d,17 -34b3b7e,80 -34b3b7f,40 -34b3b80,3c -34b3b81,14 -34b3b82,80 -34b3b83,40 -34b3b84,26 -34b3b85,94 -34b3b86,64 -34b3b87,38 -34b3b88,24 -34b3b89,42 -34b3b8a,64 -34b3b8b,28 -34b3b8c,af -34b3b8d,a2 -34b3b8f,3c -34b3b90,3c -34b3b91,1e -34b3b92,80 -34b3b93,11 -34b3b94,37 -34b3b95,de -34b3b96,a5 -34b3b97,d0 -34b3b98,3c -34b3b99,16 -34b3b9a,80 -34b3b9b,40 -34b3b9c,8e -34b3b9d,e2 -34b3b9e,65 -34b3b9f,8 -34b3ba0,10 -34b3ba1,40 -34b3ba3,8 -34b3ba4,92 +34b3add,1e +34b3ade,80 +34b3adf,11 +34b3ae0,37 +34b3ae1,de +34b3ae2,a5 +34b3ae3,d0 +34b3ae4,3c +34b3ae5,16 +34b3ae6,80 +34b3ae7,40 +34b3ae8,8e +34b3ae9,e2 +34b3aea,64 +34b3aeb,54 +34b3aec,10 +34b3aed,40 +34b3aef,8 +34b3af0,92 +34b3af1,62 +34b3af4,3 +34b3af5,c2 +34b3af6,10 +34b3af7,21 +34b3af8,90 +34b3af9,42 +34b3afb,a8 +34b3afd,2 +34b3afe,10 +34b3aff,42 +34b3b00,30 +34b3b01,42 +34b3b03,1 +34b3b04,50 +34b3b05,40 +34b3b07,13 +34b3b08,26 +34b3b09,52 +34b3b0b,1 +34b3b0c,92 +34b3b0d,62 +34b3b11,54 +34b3b12,10 +34b3b13,21 +34b3b14,80 +34b3b15,46 +34b3b18,2c +34b3b19,c2 +34b3b1b,3 +34b3b1c,50 +34b3b1d,40 +34b3b1f,d +34b3b20,26 +34b3b21,52 +34b3b23,1 +34b3b24,24 +34b3b25,2 +34b3b27,10 +34b3b28,af +34b3b29,a2 +34b3b2b,18 +34b3b2c,af +34b3b2d,a2 +34b3b2f,14 +34b3b31,12 +34b3b32,11 +34b3b35,52 +34b3b36,10 +34b3b37,21 +34b3b38,24 +34b3b39,42 +34b3b3b,a +34b3b3c,af +34b3b3d,a2 +34b3b3f,10 +34b3b40,8f +34b3b41,a7 +34b3b43,38 +34b3b44,8f +34b3b45,a5 +34b3b47,3c +34b3b48,c +34b3b49,10 +34b3b4a,14 +34b3b4b,84 +34b3b4c,2 +34b3b4e,20 +34b3b4f,25 +34b3b50,26 +34b3b51,52 +34b3b53,1 +34b3b54,8e +34b3b55,c2 +34b3b56,64 +34b3b57,48 +34b3b58,2 +34b3b59,42 +34b3b5a,10 +34b3b5b,2a +34b3b5c,14 +34b3b5d,40 +34b3b5e,ff +34b3b5f,e2 +34b3b60,26 +34b3b61,73 +34b3b63,c +34b3b64,3c +34b3b65,2 +34b3b66,80 +34b3b67,40 +34b3b68,8c +34b3b69,42 +34b3b6a,64 +34b3b6b,48 +34b3b6c,18 +34b3b6d,40 +34b3b6f,10 +34b3b70,26 +34b3b71,31 +34b3b73,12 +34b3b74,3c +34b3b75,12 +34b3b76,80 +34b3b77,40 +34b3b78,26 +34b3b79,52 +34b3b7a,63 +34b3b7b,aa +34b3b7c,24 +34b3b7d,14 +34b3b7f,b +34b3b82,98 +34b3b83,25 +34b3b84,3c +34b3b85,16 +34b3b86,80 +34b3b87,40 +34b3b88,2 +34b3b89,80 +34b3b8a,30 +34b3b8b,25 +34b3b8c,2 +34b3b8d,20 +34b3b8e,28 +34b3b8f,25 +34b3b90,c +34b3b91,10 +34b3b92,18 +34b3b93,52 +34b3b94,2 +34b3b95,40 +34b3b96,20 +34b3b97,25 +34b3b98,26 +34b3b99,73 +34b3b9b,1 +34b3b9c,26 +34b3b9d,52 +34b3b9f,c +34b3ba0,8e +34b3ba1,c2 +34b3ba2,64 +34b3ba3,48 +34b3ba4,2 34b3ba5,62 -34b3ba8,3 -34b3ba9,c2 -34b3baa,10 -34b3bab,21 -34b3bac,90 -34b3bad,42 -34b3baf,a8 +34b3ba6,10 +34b3ba7,2a +34b3ba8,14 +34b3ba9,40 +34b3baa,ff +34b3bab,f7 +34b3bac,26 +34b3bad,94 +34b3baf,11 +34b3bb0,3c 34b3bb1,2 -34b3bb2,10 -34b3bb3,42 -34b3bb4,30 +34b3bb2,80 +34b3bb3,40 +34b3bb4,94 34b3bb5,42 -34b3bb7,1 -34b3bb8,50 -34b3bb9,40 -34b3bbb,13 -34b3bbc,26 -34b3bbd,52 +34b3bb6,63 +34b3bb7,48 +34b3bb9,2 +34b3bba,10 +34b3bbb,c0 +34b3bbc,24 +34b3bbd,42 34b3bbf,1 -34b3bc0,92 -34b3bc1,62 -34b3bc5,54 -34b3bc6,10 -34b3bc7,21 -34b3bc8,80 -34b3bc9,46 -34b3bcc,2c -34b3bcd,c2 -34b3bcf,3 -34b3bd0,50 -34b3bd1,40 -34b3bd3,d -34b3bd4,26 -34b3bd5,52 -34b3bd7,1 -34b3bd8,24 -34b3bd9,2 -34b3bdb,10 -34b3bdc,af -34b3bdd,a2 -34b3bdf,18 -34b3be0,af -34b3be1,a2 -34b3be3,14 -34b3be5,12 -34b3be6,11 -34b3be9,52 -34b3bea,10 -34b3beb,21 -34b3bec,24 -34b3bed,42 -34b3bef,a -34b3bf0,af -34b3bf1,a2 -34b3bf3,10 -34b3bf4,8f -34b3bf5,a7 -34b3bf7,38 -34b3bf8,8f -34b3bf9,a5 -34b3bfb,3c -34b3bfc,c -34b3bfd,10 -34b3bfe,14 -34b3bff,b1 -34b3c00,2 -34b3c02,20 -34b3c03,25 -34b3c04,26 -34b3c05,52 -34b3c07,1 -34b3c08,8e -34b3c09,c2 -34b3c0a,64 -34b3c0b,fc -34b3c0c,2 -34b3c0d,42 +34b3bc1,51 +34b3bc2,88 +34b3bc3,21 +34b3bc4,24 +34b3bc5,7 +34b3bc7,1 +34b3bc8,24 +34b3bc9,6 +34b3bcb,11 +34b3bcc,3c +34b3bcd,5 +34b3bce,80 +34b3bcf,40 +34b3bd0,24 +34b3bd1,a5 +34b3bd2,63 +34b3bd3,54 +34b3bd4,c +34b3bd5,10 +34b3bd6,14 +34b3bd7,1c +34b3bd8,2 +34b3bda,20 +34b3bdb,25 +34b3bdc,3c +34b3bdd,2 +34b3bde,80 +34b3bdf,40 +34b3be0,8c +34b3be1,42 +34b3be2,64 +34b3be3,48 +34b3be4,58 +34b3be5,40 +34b3be7,2c +34b3be8,26 +34b3be9,3e +34b3beb,11 +34b3bec,3c +34b3bed,13 +34b3bee,80 +34b3bef,40 +34b3bf0,26 +34b3bf1,73 +34b3bf2,63 +34b3bf3,a8 +34b3bf6,90 +34b3bf7,25 +34b3bf8,2 +34b3bf9,60 +34b3bfa,a0 +34b3bfb,25 +34b3bfc,3c +34b3bfd,17 +34b3bfe,80 +34b3bff,11 +34b3c00,36 +34b3c01,f7 +34b3c02,a5 +34b3c03,d0 +34b3c04,3c +34b3c05,16 +34b3c06,80 +34b3c07,40 +34b3c09,12 +34b3c0a,10 +34b3c0b,40 +34b3c0d,52 34b3c0e,10 -34b3c0f,2a -34b3c10,14 -34b3c11,40 -34b3c12,ff -34b3c13,e2 -34b3c14,26 -34b3c15,73 -34b3c17,c -34b3c18,3c -34b3c19,2 -34b3c1a,80 -34b3c1b,40 -34b3c1c,8c -34b3c1d,42 -34b3c1e,64 -34b3c1f,fc -34b3c20,18 -34b3c21,40 -34b3c23,10 -34b3c24,26 -34b3c25,31 -34b3c27,12 -34b3c28,3c -34b3c29,12 -34b3c2a,80 -34b3c2b,40 -34b3c2c,26 -34b3c2d,52 -34b3c2e,64 -34b3c2f,5e -34b3c30,24 -34b3c31,14 -34b3c33,b -34b3c36,98 -34b3c37,25 -34b3c38,3c -34b3c39,16 -34b3c3a,80 -34b3c3b,40 -34b3c3c,2 -34b3c3d,80 -34b3c3e,30 -34b3c3f,25 -34b3c40,2 -34b3c41,20 -34b3c42,28 -34b3c43,25 -34b3c44,c -34b3c45,10 -34b3c46,18 -34b3c47,7f -34b3c48,2 -34b3c49,40 -34b3c4a,20 -34b3c4b,25 -34b3c4c,26 -34b3c4d,73 -34b3c4f,1 -34b3c50,26 -34b3c51,52 -34b3c53,c -34b3c54,8e -34b3c55,c2 -34b3c56,64 -34b3c57,fc -34b3c58,2 -34b3c59,62 -34b3c5a,10 -34b3c5b,2a -34b3c5c,14 -34b3c5d,40 -34b3c5e,ff -34b3c5f,f7 -34b3c60,26 -34b3c61,94 -34b3c63,11 -34b3c64,3c -34b3c65,2 -34b3c66,80 -34b3c67,40 -34b3c68,94 -34b3c69,42 -34b3c6a,63 -34b3c6b,fc -34b3c6d,2 -34b3c6e,10 -34b3c6f,c0 +34b3c0f,21 +34b3c11,2 +34b3c12,10 +34b3c13,80 +34b3c15,54 +34b3c16,10 +34b3c17,21 +34b3c18,80 +34b3c19,42 +34b3c1b,1 +34b3c1c,4 +34b3c1d,43 +34b3c1f,19 +34b3c20,26 +34b3c21,52 +34b3c23,1 +34b3c24,92 +34b3c25,62 +34b3c28,2 +34b3c29,e2 +34b3c2a,10 +34b3c2b,21 +34b3c2c,90 +34b3c2d,42 +34b3c2f,bc +34b3c31,2 +34b3c32,1e +34b3c35,3 +34b3c36,1e +34b3c37,3 +34b3c38,28 +34b3c39,63 +34b3c3b,a +34b3c3c,50 +34b3c3d,60 +34b3c3f,1 +34b3c40,24 +34b3c41,2 +34b3c43,9 +34b3c44,24 +34b3c45,3 +34b3c46,30 +34b3c48,a7 +34b3c49,a3 +34b3c4b,20 +34b3c4d,40 +34b3c4e,18 +34b3c4f,25 +34b3c51,2 +34b3c52,16 +34b3c55,2 +34b3c56,16 +34b3c57,3 +34b3c58,4 +34b3c59,42 +34b3c5b,1 +34b3c5e,18 +34b3c5f,25 +34b3c60,24 +34b3c61,63 +34b3c63,30 +34b3c64,a3 +34b3c65,a3 +34b3c67,20 +34b3c69,12 +34b3c6a,31 +34b3c6d,d2 +34b3c6e,30 +34b3c6f,21 34b3c70,24 -34b3c71,42 -34b3c73,1 -34b3c75,51 -34b3c76,88 -34b3c77,21 -34b3c78,24 -34b3c79,7 -34b3c7b,1 -34b3c7c,24 -34b3c7d,6 -34b3c7f,11 -34b3c80,3c -34b3c81,5 -34b3c82,80 -34b3c83,40 -34b3c84,24 -34b3c85,a5 +34b3c71,c6 +34b3c73,b +34b3c74,2 +34b3c75,20 +34b3c76,28 +34b3c77,25 +34b3c78,c +34b3c79,10 +34b3c7a,18 +34b3c7b,52 +34b3c7c,27 +34b3c7d,a4 +34b3c7f,20 +34b3c80,26 +34b3c81,52 +34b3c83,1 +34b3c84,8e +34b3c85,c2 34b3c86,64 -34b3c87,8 -34b3c88,c -34b3c89,10 -34b3c8a,14 -34b3c8b,1c -34b3c8c,2 -34b3c8e,20 -34b3c8f,25 -34b3c90,3c -34b3c91,2 -34b3c92,80 -34b3c93,40 -34b3c94,8c -34b3c95,42 -34b3c96,64 -34b3c97,fc -34b3c98,58 -34b3c99,40 -34b3c9b,2c -34b3c9c,26 -34b3c9d,3e -34b3c9f,11 +34b3c87,48 +34b3c88,2 +34b3c89,42 +34b3c8a,10 +34b3c8b,2a +34b3c8c,14 +34b3c8d,40 +34b3c8e,ff +34b3c8f,de +34b3c90,26 +34b3c91,73 +34b3c93,c +34b3c94,26 +34b3c95,3e +34b3c97,11 +34b3c98,24 +34b3c99,7 +34b3c9b,1 +34b3c9c,24 +34b3c9d,6 +34b3c9f,e 34b3ca0,3c -34b3ca1,13 +34b3ca1,5 34b3ca2,80 34b3ca3,40 -34b3ca4,26 -34b3ca5,73 -34b3ca6,64 -34b3ca7,5c -34b3caa,90 -34b3cab,25 +34b3ca4,24 +34b3ca5,a5 +34b3ca6,63 +34b3ca7,54 +34b3ca8,c +34b3ca9,10 +34b3caa,14 +34b3cab,1c 34b3cac,2 -34b3cad,60 -34b3cae,a0 +34b3cae,20 34b3caf,25 34b3cb0,3c -34b3cb1,17 +34b3cb1,2 34b3cb2,80 -34b3cb3,11 -34b3cb4,36 -34b3cb5,f7 -34b3cb6,a5 -34b3cb7,d0 -34b3cb8,3c -34b3cb9,16 -34b3cba,80 -34b3cbb,40 -34b3cbd,12 -34b3cbe,10 +34b3cb3,40 +34b3cb4,8c +34b3cb5,42 +34b3cb6,64 +34b3cb7,48 +34b3cb8,18 +34b3cb9,40 +34b3cbb,2c +34b3cbc,3c +34b3cbd,2 +34b3cbe,80 34b3cbf,40 -34b3cc1,52 -34b3cc2,10 -34b3cc3,21 -34b3cc5,2 -34b3cc6,10 -34b3cc7,80 -34b3cc9,54 -34b3cca,10 -34b3ccb,21 -34b3ccc,80 -34b3ccd,42 -34b3ccf,1 -34b3cd0,4 -34b3cd1,43 -34b3cd3,19 -34b3cd4,26 -34b3cd5,52 -34b3cd7,1 -34b3cd8,92 -34b3cd9,62 -34b3cdc,2 -34b3cdd,e2 -34b3cde,10 -34b3cdf,21 -34b3ce0,90 -34b3ce1,42 -34b3ce3,bc -34b3ce5,2 -34b3ce6,1e +34b3cc0,3c +34b3cc1,13 +34b3cc2,80 +34b3cc3,40 +34b3cc4,26 +34b3cc5,73 +34b3cc6,63 +34b3cc7,a8 +34b3cca,90 +34b3ccb,25 +34b3ccc,24 +34b3ccd,17 +34b3ccf,d +34b3cd0,2 +34b3cd1,60 +34b3cd2,a0 +34b3cd3,25 +34b3cd4,24 +34b3cd5,42 +34b3cd6,63 +34b3cd7,54 +34b3cd8,af +34b3cd9,a2 +34b3cdb,38 +34b3cdc,3c +34b3cdd,16 +34b3cde,80 +34b3cdf,40 +34b3ce0,92 +34b3ce1,63 +34b3ce4,50 +34b3ce5,77 +34b3ce7,1 +34b3ce8,24 34b3ce9,3 -34b3cea,1e -34b3ceb,3 -34b3cec,28 -34b3ced,63 -34b3cef,a -34b3cf0,50 -34b3cf1,60 -34b3cf3,1 -34b3cf4,24 +34b3ceb,a +34b3ced,12 +34b3cee,10 +34b3cef,40 +34b3cf1,52 +34b3cf2,10 +34b3cf3,21 34b3cf5,2 -34b3cf7,9 -34b3cf8,24 -34b3cf9,3 -34b3cfa,30 -34b3cfc,a7 -34b3cfd,a3 -34b3cff,20 -34b3d01,40 -34b3d02,18 -34b3d03,25 -34b3d05,2 -34b3d06,16 -34b3d09,2 -34b3d0a,16 -34b3d0b,3 -34b3d0c,4 -34b3d0d,42 -34b3d0f,1 -34b3d12,18 -34b3d13,25 -34b3d14,24 -34b3d15,63 -34b3d17,30 -34b3d18,a3 -34b3d19,a3 -34b3d1b,20 -34b3d1d,12 -34b3d1e,31 -34b3d21,d2 -34b3d22,30 -34b3d23,21 -34b3d24,24 -34b3d25,c6 -34b3d27,b -34b3d28,2 -34b3d29,20 -34b3d2a,28 -34b3d2b,25 -34b3d2c,c -34b3d2d,10 -34b3d2e,18 -34b3d2f,7f -34b3d30,27 -34b3d31,a4 -34b3d33,20 -34b3d34,26 -34b3d35,52 -34b3d37,1 -34b3d38,8e -34b3d39,c2 -34b3d3a,64 -34b3d3b,fc -34b3d3c,2 +34b3cf6,10 +34b3cf7,80 +34b3cf9,54 +34b3cfa,10 +34b3cfb,21 +34b3cfc,90 +34b3cfd,42 +34b3cff,1 +34b3d00,30 +34b3d01,42 +34b3d03,40 +34b3d04,50 +34b3d05,40 +34b3d07,15 +34b3d08,26 +34b3d09,52 +34b3d0b,1 +34b3d0c,3c +34b3d0d,2 +34b3d0e,80 +34b3d0f,11 +34b3d10,34 +34b3d11,42 +34b3d12,a5 +34b3d13,d0 +34b3d15,43 +34b3d16,10 +34b3d17,21 +34b3d18,90 +34b3d19,42 +34b3d1b,a8 +34b3d1c,30 +34b3d1d,42 +34b3d1f,1 +34b3d20,50 +34b3d21,40 +34b3d23,e +34b3d24,26 +34b3d25,52 +34b3d27,1 +34b3d28,24 +34b3d29,2 +34b3d2b,10 +34b3d2c,af +34b3d2d,a2 +34b3d2f,18 +34b3d30,af +34b3d31,a2 +34b3d33,14 +34b3d35,12 +34b3d36,11 +34b3d39,52 +34b3d3a,10 +34b3d3b,21 +34b3d3c,24 34b3d3d,42 -34b3d3e,10 -34b3d3f,2a -34b3d40,14 -34b3d41,40 -34b3d42,ff -34b3d43,de -34b3d44,26 -34b3d45,73 -34b3d47,c -34b3d48,26 -34b3d49,3e -34b3d4b,11 -34b3d4c,24 -34b3d4d,7 -34b3d4f,1 -34b3d50,24 -34b3d51,6 -34b3d53,e -34b3d54,3c -34b3d55,5 -34b3d56,80 -34b3d57,40 -34b3d58,24 -34b3d59,a5 -34b3d5a,64 -34b3d5b,8 -34b3d5c,c -34b3d5d,10 -34b3d5e,14 -34b3d5f,1c +34b3d3f,a +34b3d40,af +34b3d41,a2 +34b3d43,10 +34b3d44,3 +34b3d45,c0 +34b3d46,38 +34b3d47,25 +34b3d4a,30 +34b3d4b,25 +34b3d4c,8f +34b3d4d,a5 +34b3d4f,38 +34b3d50,c +34b3d51,10 +34b3d52,14 +34b3d53,84 +34b3d54,2 +34b3d56,20 +34b3d57,25 +34b3d58,26 +34b3d59,52 +34b3d5b,1 +34b3d5c,8e +34b3d5d,c2 +34b3d5e,64 +34b3d5f,48 34b3d60,2 -34b3d62,20 -34b3d63,25 -34b3d64,3c -34b3d65,2 -34b3d66,80 -34b3d67,40 -34b3d68,8c -34b3d69,42 -34b3d6a,64 -34b3d6b,fc -34b3d6c,18 -34b3d6d,40 -34b3d6f,2c -34b3d70,3c -34b3d71,2 -34b3d72,80 -34b3d73,40 +34b3d61,42 +34b3d62,10 +34b3d63,2a +34b3d64,14 +34b3d65,40 +34b3d66,ff +34b3d67,de +34b3d68,26 +34b3d69,73 +34b3d6b,c +34b3d6c,24 +34b3d6d,7 +34b3d6f,1 +34b3d70,24 +34b3d71,6 +34b3d73,a 34b3d74,3c -34b3d75,13 +34b3d75,5 34b3d76,80 34b3d77,40 -34b3d78,26 -34b3d79,73 -34b3d7a,64 -34b3d7b,5c -34b3d7e,90 -34b3d7f,25 -34b3d80,24 -34b3d81,17 -34b3d83,d -34b3d84,2 -34b3d85,60 -34b3d86,a0 -34b3d87,25 -34b3d88,24 +34b3d78,24 +34b3d79,a5 +34b3d7a,63 +34b3d7b,54 +34b3d7c,c +34b3d7d,10 +34b3d7e,14 +34b3d7f,1c +34b3d80,2 +34b3d82,20 +34b3d83,25 +34b3d84,3c +34b3d85,2 +34b3d86,80 +34b3d87,40 +34b3d88,8c 34b3d89,42 34b3d8a,64 -34b3d8b,8 -34b3d8c,af -34b3d8d,a2 -34b3d8f,38 -34b3d90,3c -34b3d91,16 -34b3d92,80 -34b3d93,40 -34b3d94,92 -34b3d95,63 -34b3d98,50 -34b3d99,77 -34b3d9b,1 -34b3d9c,24 -34b3d9d,3 -34b3d9f,a -34b3da1,12 -34b3da2,10 -34b3da3,40 -34b3da5,52 -34b3da6,10 -34b3da7,21 -34b3da9,2 -34b3daa,10 -34b3dab,80 -34b3dad,54 -34b3dae,10 -34b3daf,21 -34b3db0,90 -34b3db1,42 -34b3db3,1 -34b3db4,30 -34b3db5,42 -34b3db7,40 -34b3db8,50 -34b3db9,40 -34b3dbb,15 -34b3dbc,26 -34b3dbd,52 -34b3dbf,1 -34b3dc0,3c -34b3dc1,2 -34b3dc2,80 -34b3dc3,11 -34b3dc4,34 +34b3d8b,48 +34b3d8c,58 +34b3d8d,40 +34b3d8f,28 +34b3d90,26 +34b3d91,3e +34b3d93,22 +34b3d96,90 +34b3d97,25 +34b3d98,3c +34b3d99,13 +34b3d9a,80 +34b3d9b,40 +34b3d9c,26 +34b3d9d,73 +34b3d9e,63 +34b3d9f,a8 +34b3da0,3c +34b3da1,16 +34b3da2,80 +34b3da3,11 +34b3da4,3c +34b3da5,17 +34b3da6,80 +34b3da7,40 +34b3da8,26 +34b3da9,f7 +34b3daa,63 +34b3dab,54 +34b3dac,3c +34b3dad,14 +34b3dae,80 +34b3daf,40 +34b3db1,12 +34b3db2,10 +34b3db3,40 +34b3db5,52 +34b3db6,10 +34b3db7,21 +34b3db9,2 +34b3dba,10 +34b3dbb,80 +34b3dbd,53 +34b3dbe,10 +34b3dbf,21 +34b3dc0,90 +34b3dc1,42 +34b3dc3,1 +34b3dc4,30 34b3dc5,42 -34b3dc6,a5 -34b3dc7,d0 -34b3dc9,43 -34b3dca,10 -34b3dcb,21 -34b3dcc,90 -34b3dcd,42 -34b3dcf,a8 -34b3dd0,30 -34b3dd1,42 -34b3dd3,1 -34b3dd4,50 -34b3dd5,40 -34b3dd7,e -34b3dd8,26 -34b3dd9,52 -34b3ddb,1 -34b3ddc,24 -34b3ddd,2 -34b3ddf,10 -34b3de0,af -34b3de1,a2 -34b3de3,18 -34b3de4,af -34b3de5,a2 -34b3de7,14 -34b3de9,12 -34b3dea,11 -34b3ded,52 -34b3dee,10 -34b3def,21 -34b3df0,24 -34b3df1,42 -34b3df3,a -34b3df4,af -34b3df5,a2 -34b3df7,10 -34b3df8,3 -34b3df9,c0 -34b3dfa,38 -34b3dfb,25 -34b3dfe,30 -34b3dff,25 -34b3e00,8f -34b3e01,a5 -34b3e03,38 -34b3e04,c -34b3e05,10 -34b3e06,14 -34b3e07,b1 -34b3e08,2 -34b3e0a,20 +34b3dc7,20 +34b3dc8,50 +34b3dc9,40 +34b3dcb,14 +34b3dcc,26 +34b3dcd,52 +34b3dcf,1 +34b3dd0,36 +34b3dd1,c2 +34b3dd2,a5 +34b3dd3,d0 +34b3dd4,8c +34b3dd5,42 +34b3dd7,a4 +34b3dd8,3c +34b3dd9,3 +34b3ddb,40 +34b3ddd,43 +34b3dde,10 +34b3ddf,24 +34b3de0,50 +34b3de1,40 +34b3de3,e +34b3de4,26 +34b3de5,52 +34b3de7,1 +34b3de8,24 +34b3de9,2 +34b3deb,10 +34b3dec,af +34b3ded,a2 +34b3def,18 +34b3df0,af +34b3df1,a2 +34b3df3,14 +34b3df5,12 +34b3df6,11 +34b3df9,52 +34b3dfa,10 +34b3dfb,21 +34b3dfc,24 +34b3dfd,42 +34b3dff,a +34b3e00,af +34b3e01,a2 +34b3e03,10 +34b3e04,3 +34b3e05,c0 +34b3e06,38 +34b3e07,25 +34b3e0a,30 34b3e0b,25 -34b3e0c,26 -34b3e0d,52 -34b3e0f,1 -34b3e10,8e -34b3e11,c2 -34b3e12,64 -34b3e13,fc +34b3e0c,2 +34b3e0d,e0 +34b3e0e,28 +34b3e0f,25 +34b3e10,c +34b3e11,10 +34b3e12,14 +34b3e13,84 34b3e14,2 -34b3e15,42 -34b3e16,10 -34b3e17,2a -34b3e18,14 -34b3e19,40 -34b3e1a,ff -34b3e1b,de -34b3e1c,26 -34b3e1d,73 -34b3e1f,c -34b3e20,24 -34b3e21,7 -34b3e23,1 -34b3e24,24 -34b3e25,6 -34b3e27,a -34b3e28,3c -34b3e29,5 -34b3e2a,80 +34b3e16,20 +34b3e17,25 +34b3e18,26 +34b3e19,52 +34b3e1b,1 +34b3e1c,8e +34b3e1d,82 +34b3e1e,64 +34b3e1f,48 +34b3e20,2 +34b3e21,42 +34b3e22,10 +34b3e23,2a +34b3e24,14 +34b3e25,40 +34b3e26,ff +34b3e27,e3 +34b3e29,12 +34b3e2a,10 34b3e2b,40 -34b3e2c,24 -34b3e2d,a5 -34b3e2e,64 -34b3e2f,8 -34b3e30,c -34b3e31,10 -34b3e32,14 -34b3e33,1c -34b3e34,2 -34b3e36,20 -34b3e37,25 +34b3e2c,26 +34b3e2d,3e +34b3e2f,22 +34b3e30,24 +34b3e31,7 +34b3e33,1 +34b3e34,24 +34b3e35,6 +34b3e37,10 34b3e38,3c -34b3e39,2 +34b3e39,5 34b3e3a,80 34b3e3b,40 -34b3e3c,8c -34b3e3d,42 -34b3e3e,64 -34b3e3f,fc -34b3e40,58 -34b3e41,40 -34b3e43,28 -34b3e44,26 -34b3e45,3e -34b3e47,22 -34b3e4a,90 -34b3e4b,25 -34b3e4c,3c -34b3e4d,13 -34b3e4e,80 -34b3e4f,40 -34b3e50,26 -34b3e51,73 -34b3e52,64 -34b3e53,5c +34b3e3c,24 +34b3e3d,a5 +34b3e3e,63 +34b3e3f,54 +34b3e40,c +34b3e41,10 +34b3e42,14 +34b3e43,1c +34b3e44,2 +34b3e46,20 +34b3e47,25 +34b3e48,3c +34b3e49,2 +34b3e4a,80 +34b3e4b,40 +34b3e4c,8c +34b3e4d,42 +34b3e4e,64 +34b3e4f,48 +34b3e50,18 +34b3e51,40 +34b3e53,2a 34b3e54,3c -34b3e55,16 +34b3e55,13 34b3e56,80 -34b3e57,11 -34b3e58,3c -34b3e59,17 -34b3e5a,80 -34b3e5b,40 -34b3e5c,26 -34b3e5d,f7 -34b3e5e,64 -34b3e5f,8 -34b3e60,3c -34b3e61,14 -34b3e62,80 -34b3e63,40 -34b3e65,12 -34b3e66,10 -34b3e67,40 -34b3e69,52 -34b3e6a,10 -34b3e6b,21 -34b3e6d,2 -34b3e6e,10 -34b3e6f,80 -34b3e71,53 -34b3e72,10 -34b3e73,21 -34b3e74,90 -34b3e75,42 -34b3e77,1 -34b3e78,30 -34b3e79,42 -34b3e7b,20 -34b3e7c,50 -34b3e7d,40 -34b3e7f,14 -34b3e80,26 -34b3e81,52 -34b3e83,1 -34b3e84,36 -34b3e85,c2 -34b3e86,a5 -34b3e87,d0 -34b3e88,8c +34b3e57,40 +34b3e58,26 +34b3e59,73 +34b3e5a,63 +34b3e5b,a8 +34b3e5e,90 +34b3e5f,25 +34b3e60,2 +34b3e61,60 +34b3e62,a0 +34b3e63,25 +34b3e64,3c +34b3e65,17 +34b3e66,80 +34b3e67,11 +34b3e68,3c +34b3e69,2 +34b3e6a,80 +34b3e6b,40 +34b3e6c,24 +34b3e6d,42 +34b3e6e,63 +34b3e6f,54 +34b3e70,af +34b3e71,a2 +34b3e73,38 +34b3e74,3c +34b3e75,16 +34b3e76,80 +34b3e77,40 +34b3e79,12 +34b3e7a,10 +34b3e7b,40 +34b3e7d,52 +34b3e7e,10 +34b3e7f,21 +34b3e81,2 +34b3e82,10 +34b3e83,80 +34b3e85,54 +34b3e86,10 +34b3e87,21 +34b3e88,90 34b3e89,42 -34b3e8b,a4 -34b3e8c,3c -34b3e8d,3 -34b3e8f,40 -34b3e91,43 -34b3e92,10 -34b3e93,24 -34b3e94,50 -34b3e95,40 -34b3e97,e -34b3e98,26 -34b3e99,52 -34b3e9b,1 -34b3e9c,24 -34b3e9d,2 -34b3e9f,10 -34b3ea0,af -34b3ea1,a2 -34b3ea3,18 -34b3ea4,af -34b3ea5,a2 -34b3ea7,14 -34b3ea9,12 -34b3eaa,11 -34b3ead,52 -34b3eae,10 -34b3eaf,21 -34b3eb0,24 -34b3eb1,42 -34b3eb3,a -34b3eb4,af -34b3eb5,a2 -34b3eb7,10 -34b3eb8,3 -34b3eb9,c0 -34b3eba,38 -34b3ebb,25 -34b3ebe,30 -34b3ebf,25 -34b3ec0,2 -34b3ec1,e0 -34b3ec2,28 -34b3ec3,25 -34b3ec4,c -34b3ec5,10 -34b3ec6,14 -34b3ec7,b1 -34b3ec8,2 -34b3eca,20 -34b3ecb,25 -34b3ecc,26 -34b3ecd,52 -34b3ecf,1 -34b3ed0,8e -34b3ed1,82 -34b3ed2,64 -34b3ed3,fc -34b3ed4,2 -34b3ed5,42 -34b3ed6,10 -34b3ed7,2a -34b3ed8,14 -34b3ed9,40 -34b3eda,ff -34b3edb,e3 -34b3edd,12 -34b3ede,10 -34b3edf,40 -34b3ee0,26 -34b3ee1,3e -34b3ee3,22 -34b3ee4,24 -34b3ee5,7 -34b3ee7,1 -34b3ee8,24 -34b3ee9,6 -34b3eeb,10 -34b3eec,3c -34b3eed,5 -34b3eee,80 -34b3eef,40 -34b3ef0,24 -34b3ef1,a5 -34b3ef2,64 -34b3ef3,8 -34b3ef4,c -34b3ef5,10 -34b3ef6,14 -34b3ef7,1c -34b3ef8,2 -34b3efa,20 -34b3efb,25 -34b3efc,3c -34b3efd,2 -34b3efe,80 -34b3eff,40 -34b3f00,8c -34b3f01,42 -34b3f02,64 -34b3f03,fc -34b3f04,18 -34b3f05,40 -34b3f07,2a +34b3e8b,1 +34b3e8c,30 +34b3e8d,42 +34b3e8f,10 +34b3e90,50 +34b3e91,40 +34b3e93,16 +34b3e94,26 +34b3e95,52 +34b3e97,1 +34b3e98,36 +34b3e99,e2 +34b3e9a,a5 +34b3e9b,d0 +34b3e9c,92 +34b3e9d,63 +34b3ea1,43 +34b3ea2,10 +34b3ea3,21 +34b3ea4,90 +34b3ea5,42 +34b3ea7,a8 +34b3ea9,2 +34b3eaa,10 +34b3eab,82 +34b3eac,30 +34b3ead,42 +34b3eaf,1 +34b3eb0,50 +34b3eb1,40 +34b3eb3,e +34b3eb4,26 +34b3eb5,52 +34b3eb7,1 +34b3eb8,24 +34b3eb9,2 +34b3ebb,10 +34b3ebc,af +34b3ebd,a2 +34b3ebf,18 +34b3ec0,af +34b3ec1,a2 +34b3ec3,14 +34b3ec5,12 +34b3ec6,11 +34b3ec9,52 +34b3eca,10 +34b3ecb,21 +34b3ecc,24 +34b3ecd,42 +34b3ecf,a +34b3ed0,af +34b3ed1,a2 +34b3ed3,10 +34b3ed4,3 +34b3ed5,c0 +34b3ed6,38 +34b3ed7,25 +34b3eda,30 +34b3edb,25 +34b3edc,8f +34b3edd,a5 +34b3edf,38 +34b3ee0,c +34b3ee1,10 +34b3ee2,14 +34b3ee3,84 +34b3ee4,2 +34b3ee6,20 +34b3ee7,25 +34b3ee8,26 +34b3ee9,52 +34b3eeb,1 +34b3eec,8e +34b3eed,c2 +34b3eee,64 +34b3eef,48 +34b3ef0,2 +34b3ef1,42 +34b3ef2,10 +34b3ef3,2a +34b3ef4,14 +34b3ef5,40 +34b3ef6,ff +34b3ef7,e0 +34b3ef8,26 +34b3ef9,73 +34b3efb,c +34b3efc,26 +34b3efd,3e +34b3eff,33 +34b3f00,24 +34b3f01,7 +34b3f03,1 +34b3f04,24 +34b3f05,6 +34b3f07,f 34b3f08,3c -34b3f09,13 +34b3f09,5 34b3f0a,80 34b3f0b,40 -34b3f0c,26 -34b3f0d,73 -34b3f0e,64 -34b3f0f,5c -34b3f12,90 -34b3f13,25 +34b3f0c,24 +34b3f0d,a5 +34b3f0e,63 +34b3f0f,54 +34b3f10,c +34b3f11,10 +34b3f12,14 +34b3f13,1c 34b3f14,2 -34b3f15,60 -34b3f16,a0 +34b3f16,20 34b3f17,25 34b3f18,3c -34b3f19,17 +34b3f19,2 34b3f1a,80 -34b3f1b,11 -34b3f1c,3c -34b3f1d,2 -34b3f1e,80 -34b3f1f,40 -34b3f20,24 -34b3f21,42 -34b3f22,64 -34b3f23,8 -34b3f24,af -34b3f25,a2 -34b3f27,38 -34b3f28,3c -34b3f29,16 -34b3f2a,80 -34b3f2b,40 -34b3f2d,12 -34b3f2e,10 -34b3f2f,40 -34b3f31,52 -34b3f32,10 -34b3f33,21 -34b3f35,2 -34b3f36,10 -34b3f37,80 -34b3f39,54 -34b3f3a,10 -34b3f3b,21 -34b3f3c,90 +34b3f1b,40 +34b3f1c,8c +34b3f1d,42 +34b3f1e,64 +34b3f1f,48 +34b3f20,18 +34b3f21,40 +34b3f23,60 +34b3f24,3c +34b3f25,13 +34b3f26,80 +34b3f27,40 +34b3f28,26 +34b3f29,73 +34b3f2a,63 +34b3f2b,a8 +34b3f2e,90 +34b3f2f,25 +34b3f30,2 +34b3f31,60 +34b3f32,a0 +34b3f33,25 +34b3f34,3c +34b3f35,17 +34b3f36,80 +34b3f37,11 +34b3f38,3c +34b3f39,2 +34b3f3a,80 +34b3f3b,40 +34b3f3c,24 34b3f3d,42 -34b3f3f,1 -34b3f40,30 -34b3f41,42 -34b3f43,10 -34b3f44,50 -34b3f45,40 -34b3f47,16 -34b3f48,26 -34b3f49,52 -34b3f4b,1 -34b3f4c,36 -34b3f4d,e2 -34b3f4e,a5 -34b3f4f,d0 -34b3f50,92 -34b3f51,63 -34b3f55,43 +34b3f3e,63 +34b3f3f,54 +34b3f40,af +34b3f41,a2 +34b3f43,38 +34b3f44,3c +34b3f45,16 +34b3f46,80 +34b3f47,40 +34b3f49,12 +34b3f4a,10 +34b3f4b,40 +34b3f4d,52 +34b3f4e,10 +34b3f4f,21 +34b3f51,2 +34b3f52,10 +34b3f53,80 +34b3f55,54 34b3f56,10 34b3f57,21 34b3f58,90 34b3f59,42 -34b3f5b,a8 -34b3f5d,2 -34b3f5e,10 -34b3f5f,82 -34b3f60,30 -34b3f61,42 -34b3f63,1 -34b3f64,50 -34b3f65,40 -34b3f67,e -34b3f68,26 -34b3f69,52 -34b3f6b,1 -34b3f6c,24 -34b3f6d,2 -34b3f6f,10 -34b3f70,af -34b3f71,a2 -34b3f73,18 -34b3f74,af -34b3f75,a2 -34b3f77,14 -34b3f79,12 -34b3f7a,11 -34b3f7d,52 -34b3f7e,10 -34b3f7f,21 -34b3f80,24 -34b3f81,42 -34b3f83,a -34b3f84,af -34b3f85,a2 -34b3f87,10 -34b3f88,3 -34b3f89,c0 -34b3f8a,38 -34b3f8b,25 -34b3f8e,30 -34b3f8f,25 -34b3f90,8f -34b3f91,a5 -34b3f93,38 -34b3f94,c -34b3f95,10 -34b3f96,14 -34b3f97,b1 -34b3f98,2 -34b3f9a,20 -34b3f9b,25 -34b3f9c,26 -34b3f9d,52 -34b3f9f,1 -34b3fa0,8e -34b3fa1,c2 -34b3fa2,64 -34b3fa3,fc -34b3fa4,2 -34b3fa5,42 -34b3fa6,10 -34b3fa7,2a -34b3fa8,14 -34b3fa9,40 -34b3faa,ff -34b3fab,e0 -34b3fac,26 -34b3fad,73 -34b3faf,c -34b3fb0,26 -34b3fb1,3e -34b3fb3,33 -34b3fb4,24 -34b3fb5,7 -34b3fb7,1 -34b3fb8,24 -34b3fb9,6 -34b3fbb,f -34b3fbc,3c -34b3fbd,5 -34b3fbe,80 -34b3fbf,40 -34b3fc0,24 -34b3fc1,a5 -34b3fc2,64 -34b3fc3,8 -34b3fc4,c -34b3fc5,10 -34b3fc6,14 -34b3fc7,1c -34b3fc8,2 -34b3fca,20 -34b3fcb,25 -34b3fcc,3c -34b3fcd,2 -34b3fce,80 -34b3fcf,40 -34b3fd0,8c -34b3fd1,42 -34b3fd2,64 -34b3fd3,fc -34b3fd4,18 -34b3fd5,40 -34b3fd7,60 -34b3fd8,3c -34b3fd9,13 -34b3fda,80 -34b3fdb,40 -34b3fdc,26 -34b3fdd,73 -34b3fde,64 -34b3fdf,5c -34b3fe2,90 -34b3fe3,25 -34b3fe4,2 -34b3fe5,60 -34b3fe6,a0 -34b3fe7,25 -34b3fe8,3c -34b3fe9,17 -34b3fea,80 -34b3feb,11 +34b3f5b,1 +34b3f5c,30 +34b3f5d,42 +34b3f5f,10 +34b3f60,50 +34b3f61,40 +34b3f63,16 +34b3f64,26 +34b3f65,52 +34b3f67,1 +34b3f68,36 +34b3f69,e2 +34b3f6a,a5 +34b3f6b,d0 +34b3f6c,92 +34b3f6d,63 +34b3f71,43 +34b3f72,10 +34b3f73,21 +34b3f74,90 +34b3f75,42 +34b3f77,a8 +34b3f79,2 +34b3f7a,10 +34b3f7b,42 +34b3f7c,30 +34b3f7d,42 +34b3f7f,1 +34b3f80,50 +34b3f81,40 +34b3f83,e +34b3f84,26 +34b3f85,52 +34b3f87,1 +34b3f88,24 +34b3f89,2 +34b3f8b,10 +34b3f8c,af +34b3f8d,a2 +34b3f8f,18 +34b3f90,af +34b3f91,a2 +34b3f93,14 +34b3f95,12 +34b3f96,11 +34b3f99,52 +34b3f9a,10 +34b3f9b,21 +34b3f9c,24 +34b3f9d,42 +34b3f9f,a +34b3fa0,af +34b3fa1,a2 +34b3fa3,10 +34b3fa4,3 +34b3fa5,c0 +34b3fa6,38 +34b3fa7,25 +34b3faa,30 +34b3fab,25 +34b3fac,8f +34b3fad,a5 +34b3faf,38 +34b3fb0,c +34b3fb1,10 +34b3fb2,14 +34b3fb3,84 +34b3fb4,2 +34b3fb6,20 +34b3fb7,25 +34b3fb8,26 +34b3fb9,52 +34b3fbb,1 +34b3fbc,8e +34b3fbd,c2 +34b3fbe,64 +34b3fbf,48 +34b3fc0,2 +34b3fc1,42 +34b3fc2,10 +34b3fc3,2a +34b3fc4,14 +34b3fc5,40 +34b3fc6,ff +34b3fc7,e0 +34b3fc8,26 +34b3fc9,73 +34b3fcb,c +34b3fcc,12 +34b3fcd,a0 +34b3fcf,35 +34b3fd0,3c +34b3fd1,2 +34b3fd2,80 +34b3fd3,40 +34b3fd4,8c +34b3fd5,42 +34b3fd6,64 +34b3fd7,48 +34b3fd8,18 +34b3fd9,40 +34b3fdb,32 +34b3fdc,3c +34b3fdd,13 +34b3fde,80 +34b3fdf,40 +34b3fe0,26 +34b3fe1,73 +34b3fe2,63 +34b3fe3,a8 +34b3fe4,24 +34b3fe5,14 +34b3fe7,b +34b3fea,90 +34b3feb,25 34b3fec,3c -34b3fed,2 +34b3fed,17 34b3fee,80 34b3fef,40 -34b3ff0,24 -34b3ff1,42 -34b3ff2,64 -34b3ff3,8 -34b3ff4,af -34b3ff5,a2 -34b3ff7,38 +34b3ff0,3c +34b3ff1,16 +34b3ff2,80 +34b3ff3,40 +34b3ff4,26 +34b3ff5,d6 +34b3ff6,64 +34b3ff7,78 34b3ff8,3c -34b3ff9,16 +34b3ff9,15 34b3ffa,80 34b3ffb,40 -34b3ffd,12 -34b3ffe,10 -34b3fff,40 -34b4001,52 -34b4002,10 -34b4003,21 -34b4005,2 -34b4006,10 -34b4007,80 -34b4009,54 -34b400a,10 -34b400b,21 -34b400c,90 -34b400d,42 -34b400f,1 -34b4010,30 -34b4011,42 -34b4013,10 +34b3ffc,26 +34b3ffd,b5 +34b3ffe,63 +34b3fff,38 +34b4000,3c +34b4001,2 +34b4002,80 +34b4003,40 +34b4004,24 +34b4005,42 +34b4006,63 +34b4007,3c +34b4008,af +34b4009,a2 +34b400b,38 +34b400c,3c +34b400d,1e +34b400e,80 +34b400f,40 +34b4010,8e +34b4011,e2 +34b4012,64 +34b4013,58 34b4014,50 34b4015,40 -34b4017,16 -34b4018,26 -34b4019,52 -34b401b,1 -34b401c,36 -34b401d,e2 -34b401e,a5 -34b401f,d0 -34b4020,92 -34b4021,63 -34b4025,43 +34b4017,14 +34b4018,92 +34b4019,62 +34b401d,12 +34b401e,10 +34b401f,40 +34b4021,52 +34b4022,10 +34b4023,21 +34b4025,2 34b4026,10 -34b4027,21 -34b4028,90 -34b4029,42 +34b4027,80 +34b4028,27 +34b4029,c3 +34b402a,63 34b402b,a8 -34b402d,2 +34b402d,43 34b402e,10 -34b402f,42 -34b4030,30 +34b402f,21 +34b4030,90 34b4031,42 34b4033,1 -34b4034,50 -34b4035,40 -34b4037,e -34b4038,26 -34b4039,52 -34b403b,1 -34b403c,24 -34b403d,2 -34b403f,10 -34b4040,af -34b4041,a2 -34b4043,18 -34b4044,af -34b4045,a2 -34b4047,14 -34b4049,12 -34b404a,11 -34b404d,52 +34b4034,30 +34b4035,42 +34b4037,10 +34b4038,50 +34b4039,40 +34b403b,b +34b403c,92 +34b403d,62 +34b4040,92 +34b4041,63 +34b4044,3c +34b4045,2 +34b4046,80 +34b4047,11 +34b4048,34 +34b4049,42 +34b404a,a5 +34b404b,d0 +34b404d,43 34b404e,10 34b404f,21 -34b4050,24 +34b4050,90 34b4051,42 -34b4053,a -34b4054,af -34b4055,a2 -34b4057,10 -34b4058,3 -34b4059,c0 -34b405a,38 -34b405b,25 -34b405e,30 -34b405f,25 -34b4060,8f -34b4061,a5 -34b4063,38 -34b4064,c -34b4065,10 -34b4066,14 -34b4067,b1 -34b4068,2 -34b406a,20 -34b406b,25 -34b406c,26 -34b406d,52 -34b406f,1 -34b4070,8e -34b4071,c2 -34b4072,64 -34b4073,fc +34b4053,a8 +34b4055,2 +34b4056,10 +34b4057,82 +34b4058,30 +34b4059,42 +34b405b,1 +34b405c,50 +34b405d,40 +34b405f,b +34b4060,26 +34b4061,52 +34b4063,1 +34b4064,92 +34b4065,62 +34b4069,56 +34b406a,10 +34b406b,21 +34b406c,90 +34b406d,42 +34b4070,14 +34b4071,40 +34b4073,2 34b4074,2 -34b4075,42 -34b4076,10 -34b4077,2a -34b4078,14 -34b4079,40 -34b407a,ff -34b407b,e0 -34b407c,26 -34b407d,73 -34b407f,c -34b4080,12 -34b4081,a0 -34b4083,35 -34b4084,3c -34b4085,2 -34b4086,80 -34b4087,40 -34b4088,8c -34b4089,42 -34b408a,64 -34b408b,fc -34b408c,18 -34b408d,40 -34b408f,32 +34b4075,a0 +34b4076,20 +34b4077,25 +34b4078,8f +34b4079,a4 +34b407b,38 +34b407c,2 +34b407d,80 +34b407e,30 +34b407f,25 +34b4080,c +34b4081,10 +34b4082,18 +34b4083,52 +34b4084,26 +34b4085,25 +34b4087,44 +34b4088,26 +34b4089,52 +34b408b,1 +34b408c,26 +34b408d,94 +34b408f,11 34b4090,3c -34b4091,13 +34b4091,2 34b4092,80 34b4093,40 -34b4094,26 -34b4095,73 +34b4094,8c +34b4095,42 34b4096,64 -34b4097,5c -34b4098,24 -34b4099,14 -34b409b,b -34b409e,90 -34b409f,25 -34b40a0,3c -34b40a1,17 -34b40a2,80 -34b40a3,40 -34b40a4,3c -34b40a5,16 -34b40a6,80 -34b40a7,40 -34b40a8,26 -34b40a9,d6 -34b40aa,65 -34b40ab,2c -34b40ac,3c -34b40ad,15 -34b40ae,80 -34b40af,40 -34b40b0,26 -34b40b1,b5 -34b40b2,63 -34b40b3,ec -34b40b4,3c -34b40b5,2 -34b40b6,80 -34b40b7,40 -34b40b8,24 -34b40b9,42 -34b40ba,63 -34b40bb,f0 -34b40bc,af -34b40bd,a2 -34b40bf,38 -34b40c0,3c -34b40c1,1e -34b40c2,80 -34b40c3,40 +34b4097,48 +34b4098,2 +34b4099,42 +34b409a,10 +34b409b,2a +34b409c,14 +34b409d,40 +34b409e,ff +34b409f,dc +34b40a0,26 +34b40a1,73 +34b40a3,c +34b40a4,c +34b40a5,10 +34b40a6,18 +34b40a7,7c +34b40a8,2 +34b40aa,20 +34b40ab,25 +34b40ac,8e +34b40ad,2 +34b40af,8 +34b40b0,24 +34b40b1,43 +34b40b3,8 +34b40b4,ae +34b40b5,3 +34b40b7,8 +34b40b8,3c +34b40b9,3 +34b40ba,e9 +34b40bc,ac +34b40bd,43 +34b40c0,ac +34b40c1,40 +34b40c3,4 34b40c4,8e -34b40c5,e2 -34b40c6,65 -34b40c7,c -34b40c8,50 -34b40c9,40 -34b40cb,14 -34b40cc,92 -34b40cd,62 -34b40d1,12 -34b40d2,10 -34b40d3,40 -34b40d5,52 -34b40d6,10 -34b40d7,21 -34b40d9,2 -34b40da,10 -34b40db,80 -34b40dc,27 -34b40dd,c3 -34b40de,64 -34b40df,5c -34b40e1,43 -34b40e2,10 -34b40e3,21 -34b40e4,90 -34b40e5,42 -34b40e7,1 -34b40e8,30 -34b40e9,42 -34b40eb,10 -34b40ec,50 -34b40ed,40 -34b40ef,b -34b40f0,92 -34b40f1,62 -34b40f4,92 -34b40f5,63 -34b40f8,3c -34b40f9,2 -34b40fa,80 -34b40fb,11 -34b40fc,34 -34b40fd,42 -34b40fe,a5 -34b40ff,d0 -34b4101,43 -34b4102,10 -34b4103,21 -34b4104,90 -34b4105,42 -34b4107,a8 -34b4109,2 -34b410a,10 -34b410b,82 -34b410c,30 -34b410d,42 -34b410f,1 -34b4110,50 -34b4111,40 -34b4113,b -34b4114,26 -34b4115,52 -34b4117,1 -34b4118,92 -34b4119,62 -34b411d,56 -34b411e,10 -34b411f,21 -34b4120,90 -34b4121,42 -34b4124,14 -34b4125,40 -34b4127,2 -34b4128,2 -34b4129,a0 -34b412a,20 -34b412b,25 -34b412c,8f -34b412d,a4 -34b412f,38 -34b4130,2 -34b4131,80 -34b4132,30 -34b4133,25 -34b4134,c -34b4135,10 -34b4136,18 -34b4137,7f -34b4138,26 -34b4139,25 -34b413b,44 -34b413c,26 -34b413d,52 -34b413f,1 -34b4140,26 -34b4141,94 -34b4143,11 -34b4144,3c -34b4145,2 -34b4146,80 -34b4147,40 -34b4148,8c -34b4149,42 -34b414a,64 -34b414b,fc -34b414c,2 -34b414d,42 -34b414e,10 -34b414f,2a -34b4150,14 -34b4151,40 -34b4152,ff -34b4153,dc -34b4154,26 -34b4155,73 -34b4157,c -34b4158,c -34b4159,10 -34b415a,18 -34b415b,a9 -34b415c,2 -34b415e,20 -34b415f,25 -34b4160,8e -34b4161,2 -34b4163,8 -34b4164,24 -34b4165,43 -34b4167,8 -34b4168,ae -34b4169,3 -34b416b,8 -34b416c,3c -34b416d,3 -34b416e,e9 -34b4170,ac -34b4171,43 -34b4174,ac -34b4175,40 -34b4177,4 -34b4178,8e -34b4179,2 -34b417b,8 +34b40c5,2 +34b40c7,8 +34b40c8,24 +34b40c9,43 +34b40cb,8 +34b40cc,ae +34b40cd,3 +34b40cf,8 +34b40d0,3c +34b40d1,3 +34b40d2,df +34b40d4,ac +34b40d5,43 +34b40d8,ac +34b40d9,40 +34b40db,4 +34b40dc,8f +34b40dd,bf +34b40df,6c +34b40e0,8f +34b40e1,be +34b40e3,68 +34b40e4,8f +34b40e5,b7 +34b40e7,64 +34b40e8,8f +34b40e9,b6 +34b40eb,60 +34b40ec,8f +34b40ed,b5 +34b40ef,5c +34b40f0,8f +34b40f1,b4 +34b40f3,58 +34b40f4,8f +34b40f5,b3 +34b40f7,54 +34b40f8,8f +34b40f9,b2 +34b40fb,50 +34b40fc,8f +34b40fd,b1 +34b40ff,4c +34b4100,8f +34b4101,b0 +34b4103,48 +34b4104,3 +34b4105,e0 +34b4107,8 +34b4108,27 +34b4109,bd +34b410b,70 +34b410c,10 +34b410e,fe +34b410f,a8 +34b4110,26 +34b4111,31 +34b4113,12 +34b4114,3 +34b4115,e0 +34b4117,8 +34b411c,27 +34b411d,bd +34b411e,ff +34b411f,e8 +34b4120,af +34b4121,bf +34b4123,14 +34b4124,c +34b4125,10 +34b4126,15 +34b4127,8e +34b4128,24 +34b4129,4 +34b412a,4 +34b412c,3c +34b412d,3 +34b412e,80 +34b412f,40 +34b4130,ac +34b4131,62 +34b4132,64 +34b4133,64 +34b4134,3c +34b4135,3 +34b4136,80 +34b4137,40 +34b4138,ac +34b4139,62 +34b413a,64 +34b413b,60 +34b413c,8f +34b413d,bf +34b413f,14 +34b4140,3 +34b4141,e0 +34b4143,8 +34b4144,27 +34b4145,bd +34b4147,18 +34b4148,80 +34b4149,82 +34b414c,10 +34b414d,40 +34b414f,26 +34b4150,24 +34b4151,87 +34b4153,1 +34b4154,3c +34b4155,3 +34b4156,80 +34b4157,40 +34b4158,8c +34b4159,68 +34b415a,64 +34b415b,64 +34b415c,25 +34b415d,8 +34b415e,4 +34b4160,3c +34b4161,3 +34b4162,80 +34b4163,40 +34b4164,8c +34b4165,63 +34b4166,64 +34b4167,60 +34b4169,68 +34b416a,20 +34b416b,2b +34b416c,10 +34b416d,80 +34b416f,1e +34b4170,3c +34b4171,a +34b4172,ff +34b4174,25 +34b4175,4a +34b4176,f +34b4177,ff +34b4178,30 +34b4179,c6 +34b417a,f +34b417b,ff 34b417c,24 -34b417d,43 -34b417f,8 -34b4180,ae -34b4181,3 -34b4183,8 -34b4184,3c -34b4185,3 -34b4186,df -34b4188,ac -34b4189,43 -34b418c,ac -34b418d,40 -34b418f,4 -34b4190,8f -34b4191,bf -34b4193,6c -34b4194,8f -34b4195,be -34b4197,68 -34b4198,8f -34b4199,b7 -34b419b,64 -34b419c,8f -34b419d,b6 -34b419f,60 -34b41a0,8f -34b41a1,b5 -34b41a3,5c -34b41a4,8f -34b41a5,b4 -34b41a7,58 -34b41a8,8f -34b41a9,b3 -34b41ab,54 -34b41ac,8f -34b41ad,b2 -34b41af,50 -34b41b0,8f -34b41b1,b1 -34b41b3,4c -34b41b4,8f -34b41b5,b0 -34b41b7,48 -34b41b8,3 -34b41b9,e0 -34b41bb,8 -34b41bc,27 -34b41bd,bd -34b41bf,70 -34b41c0,10 -34b41c2,fe -34b41c3,a8 -34b41c4,26 -34b41c5,31 -34b41c7,12 -34b41c8,3 -34b41c9,e0 -34b41cb,8 -34b41d0,27 -34b41d1,bd -34b41d2,ff -34b41d3,e8 -34b41d4,af -34b41d5,bf -34b41d7,14 -34b41d8,c -34b41d9,10 -34b41da,15 -34b41db,bb +34b417d,b +34b417e,f0 +34b4180,3c +34b4181,9 +34b4182,80 +34b4183,40 +34b4184,10 +34b4187,7 +34b4188,25 +34b4189,29 +34b418a,63 +34b418b,44 +34b418d,68 +34b418e,20 +34b418f,2b +34b4190,54 +34b4191,80 +34b4193,5 +34b4194,a0 +34b4195,62 +34b4198,3c +34b4199,2 +34b419a,80 +34b419b,40 +34b419c,3 +34b419d,e0 +34b419f,8 +34b41a0,ac +34b41a1,43 +34b41a2,64 +34b41a3,60 +34b41a4,a0 +34b41a5,62 +34b41a8,30 +34b41a9,a2 +34b41aa,f +34b41ab,ff +34b41ad,2 +34b41ae,23 +34b41b0,8c +34b41b1,62 +34b41b5,4a +34b41b6,10 +34b41b7,24 +34b41b9,44 +34b41ba,10 +34b41bb,25 +34b41bd,4b +34b41be,10 +34b41bf,24 +34b41c1,46 +34b41c2,10 +34b41c3,25 +34b41c4,ac +34b41c5,62 +34b41c8,95 +34b41c9,22 +34b41cb,4 +34b41cd,a2 +34b41ce,28 +34b41cf,21 +34b41d0,24 +34b41d1,e7 +34b41d3,1 +34b41d4,80 +34b41d5,e2 +34b41d6,ff +34b41d7,ff +34b41d8,14 +34b41d9,40 +34b41da,ff +34b41db,ec 34b41dc,24 -34b41dd,4 -34b41de,4 +34b41dd,63 +34b41df,4 34b41e0,3c -34b41e1,3 +34b41e1,2 34b41e2,80 34b41e3,40 34b41e4,ac -34b41e5,62 -34b41e6,65 -34b41e7,18 -34b41e8,3c -34b41e9,3 -34b41ea,80 -34b41eb,40 -34b41ec,ac -34b41ed,62 -34b41ee,65 -34b41ef,14 -34b41f0,8f -34b41f1,bf -34b41f3,14 -34b41f4,3 -34b41f5,e0 -34b41f7,8 -34b41f8,27 -34b41f9,bd -34b41fb,18 -34b41fc,80 -34b41fd,82 -34b4200,10 -34b4201,40 -34b4203,26 -34b4204,24 -34b4205,87 -34b4207,1 -34b4208,3c -34b4209,3 -34b420a,80 -34b420b,40 -34b420c,8c -34b420d,68 -34b420e,65 -34b420f,18 -34b4210,25 -34b4211,8 -34b4212,4 -34b4214,3c -34b4215,3 -34b4216,80 -34b4217,40 -34b4218,8c -34b4219,63 -34b421a,65 -34b421b,14 -34b421d,68 -34b421e,20 -34b421f,2b -34b4220,10 -34b4221,80 -34b4223,1e -34b4224,3c -34b4225,a -34b4226,ff -34b4228,25 -34b4229,4a -34b422a,f -34b422b,ff -34b422c,30 -34b422d,c6 -34b422e,f -34b422f,ff -34b4230,24 -34b4231,b -34b4232,f0 +34b41e5,43 +34b41e6,64 +34b41e7,60 +34b41e8,3 +34b41e9,e0 +34b41eb,8 +34b41f0,27 +34b41f1,bd +34b41f2,ff +34b41f3,b0 +34b41f4,af +34b41f5,bf +34b41f7,4c +34b41f8,af +34b41f9,be +34b41fb,48 +34b41fc,af +34b41fd,b7 +34b41ff,44 +34b4200,af +34b4201,b6 +34b4203,40 +34b4204,af +34b4205,b5 +34b4207,3c +34b4208,af +34b4209,b4 +34b420b,38 +34b420c,af +34b420d,b3 +34b420f,34 +34b4210,af +34b4211,b2 +34b4213,30 +34b4214,af +34b4215,b1 +34b4217,2c +34b4218,af +34b4219,b0 +34b421b,28 +34b421d,80 +34b421e,a8 +34b421f,25 +34b4222,b0 +34b4223,25 +34b4226,90 +34b4227,25 +34b4228,3c +34b4229,14 +34b422a,80 +34b422b,40 +34b422c,26 +34b422d,94 +34b422e,63 +34b422f,44 +34b4230,3c +34b4231,1e +34b4232,80 +34b4233,40 34b4234,3c -34b4235,9 +34b4235,13 34b4236,80 34b4237,40 -34b4238,10 -34b423b,7 -34b423c,25 -34b423d,29 -34b423e,63 -34b423f,f8 -34b4241,68 -34b4242,20 -34b4243,2b -34b4244,54 -34b4245,80 -34b4247,5 -34b4248,a0 -34b4249,62 -34b424c,3c -34b424d,2 -34b424e,80 -34b424f,40 -34b4250,3 -34b4251,e0 -34b4253,8 -34b4254,ac -34b4255,43 -34b4256,65 -34b4257,14 -34b4258,a0 -34b4259,62 -34b425c,30 -34b425d,a2 -34b425e,f -34b425f,ff -34b4261,2 -34b4262,23 -34b4264,8c -34b4265,62 -34b4269,4a -34b426a,10 -34b426b,24 -34b426d,44 -34b426e,10 -34b426f,25 -34b4271,4b -34b4272,10 -34b4273,24 -34b4275,46 -34b4276,10 -34b4277,25 -34b4278,ac -34b4279,62 -34b427c,95 -34b427d,22 +34b4238,3c +34b4239,17 +34b423a,38 +34b423b,e3 +34b423c,af +34b423d,b4 +34b423f,20 +34b4240,24 +34b4241,7 +34b4243,12 +34b4244,2 +34b4245,c0 +34b4246,30 +34b4247,25 +34b4248,2 +34b4249,80 +34b424a,28 +34b424b,25 +34b424c,c +34b424d,10 +34b424e,14 +34b424f,1c +34b4250,2 +34b4251,a0 +34b4252,20 +34b4253,25 +34b4254,8f +34b4255,c5 +34b4256,64 +34b4257,64 +34b4258,10 +34b425b,1f +34b425c,36 +34b425d,f1 +34b425e,8e +34b425f,39 +34b4260,24 +34b4261,42 +34b4262,ff +34b4263,e0 +34b4265,51 +34b4267,18 +34b426a,18 +34b426b,10 +34b426d,3 +34b426e,18 +34b426f,83 +34b4271,2 +34b4272,27 +34b4273,c3 +34b4275,64 +34b4276,18 +34b4277,23 +34b4278,14 +34b4279,72 +34b427b,16 +34b427c,24 +34b427d,b0 34b427f,4 -34b4281,a2 -34b4282,28 -34b4283,21 -34b4284,24 -34b4285,e7 -34b4287,1 -34b4288,80 -34b4289,e2 -34b428a,ff -34b428b,ff -34b428c,14 -34b428d,40 -34b428e,ff -34b428f,ec -34b4290,24 -34b4291,63 -34b4293,4 -34b4294,3c -34b4295,2 -34b4296,80 -34b4297,40 -34b4298,ac -34b4299,43 -34b429a,65 -34b429b,14 -34b429c,3 -34b429d,e0 -34b429f,8 -34b42a4,27 -34b42a5,bd -34b42a6,ff -34b42a7,b0 +34b4280,8c +34b4281,a7 +34b4285,7 +34b4286,3b +34b4287,2 +34b4289,51 +34b428b,18 +34b428e,30 +34b428f,10 +34b4291,6 +34b4292,30 +34b4293,83 +34b4295,c4 +34b4296,30 +34b4297,23 +34b4299,6 +34b429a,18 +34b429b,c0 +34b429d,66 +34b429e,30 +34b429f,21 +34b42a1,6 +34b42a2,30 +34b42a3,40 +34b42a4,96 +34b42a5,83 +34b42a7,6 34b42a8,af -34b42a9,bf -34b42ab,4c -34b42ac,af -34b42ad,be -34b42af,48 +34b42a9,a3 +34b42ab,18 +34b42ac,96 +34b42ad,83 +34b42af,4 34b42b0,af -34b42b1,b7 -34b42b3,44 -34b42b4,af -34b42b5,b6 -34b42b7,40 -34b42b8,af -34b42b9,b5 -34b42bb,3c +34b42b1,a3 +34b42b3,14 +34b42b4,8c +34b42b5,a3 +34b42b8,30 +34b42b9,63 +34b42ba,f +34b42bb,ff 34b42bc,af -34b42bd,b4 -34b42bf,38 -34b42c0,af -34b42c1,b3 -34b42c3,34 -34b42c4,af -34b42c5,b2 -34b42c7,30 -34b42c8,af -34b42c9,b1 -34b42cb,2c -34b42cc,af -34b42cd,b0 -34b42cf,28 -34b42d1,80 -34b42d2,a8 +34b42bd,a3 +34b42bf,10 +34b42c0,30 +34b42c1,e7 +34b42c2,f +34b42c3,ff +34b42c5,46 +34b42c6,30 +34b42c7,23 +34b42c8,8f +34b42c9,a5 +34b42cb,20 +34b42cc,c +34b42cd,10 +34b42ce,14 +34b42cf,84 +34b42d0,2 +34b42d1,a0 +34b42d2,20 34b42d3,25 -34b42d6,b0 +34b42d4,2 +34b42d6,28 34b42d7,25 -34b42da,90 -34b42db,25 -34b42dc,3c -34b42dd,14 -34b42de,80 -34b42df,40 -34b42e0,26 -34b42e1,94 -34b42e2,63 -34b42e3,f8 -34b42e4,3c -34b42e5,1e -34b42e6,80 -34b42e7,40 -34b42e8,3c -34b42e9,13 -34b42ea,80 -34b42eb,40 -34b42ec,3c -34b42ed,17 -34b42ee,38 -34b42ef,e3 -34b42f0,af -34b42f1,b4 -34b42f3,20 -34b42f4,24 -34b42f5,7 +34b42d8,8e +34b42d9,62 +34b42da,64 +34b42db,60 +34b42dd,a2 +34b42de,10 +34b42df,2b +34b42e0,54 +34b42e1,40 +34b42e2,ff +34b42e3,df +34b42e4,80 +34b42e5,a2 +34b42e8,26 +34b42e9,52 +34b42eb,1 +34b42ec,24 +34b42ed,2 +34b42ef,6 +34b42f0,16 +34b42f1,42 +34b42f2,ff +34b42f3,d3 +34b42f4,26 +34b42f5,d6 34b42f7,12 -34b42f8,2 -34b42f9,c0 -34b42fa,30 -34b42fb,25 -34b42fc,2 -34b42fd,80 -34b42fe,28 -34b42ff,25 -34b4300,c -34b4301,10 -34b4302,14 -34b4303,1c -34b4304,2 -34b4305,a0 -34b4306,20 -34b4307,25 +34b42f8,3c +34b42f9,2 +34b42fa,80 +34b42fb,40 +34b42fc,8c +34b42fd,43 +34b42fe,64 +34b42ff,64 +34b4300,3c +34b4301,2 +34b4302,80 +34b4303,40 +34b4304,ac +34b4305,43 +34b4306,64 +34b4307,60 34b4308,8f -34b4309,c5 -34b430a,65 -34b430b,18 -34b430c,10 -34b430f,1f -34b4310,36 -34b4311,f1 -34b4312,8e -34b4313,39 -34b4314,24 -34b4315,42 -34b4316,ff -34b4317,e0 -34b4319,51 -34b431b,18 -34b431e,18 -34b431f,10 -34b4321,3 -34b4322,18 -34b4323,83 -34b4325,2 -34b4326,27 -34b4327,c3 -34b4329,64 -34b432a,18 -34b432b,23 -34b432c,14 -34b432d,72 -34b432f,16 -34b4330,24 -34b4331,b0 -34b4333,4 -34b4334,8c -34b4335,a7 -34b4339,7 -34b433a,3b -34b433b,2 -34b433d,51 -34b433f,18 -34b4342,30 -34b4343,10 -34b4345,6 -34b4346,30 -34b4347,83 -34b4349,c4 -34b434a,30 -34b434b,23 -34b434d,6 -34b434e,18 -34b434f,c0 -34b4351,66 -34b4352,30 -34b4353,21 -34b4355,6 -34b4356,30 -34b4357,40 -34b4358,96 -34b4359,83 -34b435b,6 -34b435c,af -34b435d,a3 -34b435f,18 -34b4360,96 -34b4361,83 -34b4363,4 -34b4364,af -34b4365,a3 -34b4367,14 -34b4368,8c -34b4369,a3 -34b436c,30 -34b436d,63 -34b436e,f -34b436f,ff -34b4370,af -34b4371,a3 -34b4373,10 -34b4374,30 -34b4375,e7 -34b4376,f -34b4377,ff -34b4379,46 -34b437a,30 -34b437b,23 -34b437c,8f -34b437d,a5 -34b437f,20 -34b4380,c -34b4381,10 -34b4382,14 -34b4383,b1 -34b4384,2 -34b4385,a0 -34b4386,20 -34b4387,25 -34b4388,2 -34b438a,28 -34b438b,25 -34b438c,8e -34b438d,62 -34b438e,65 -34b438f,14 -34b4391,a2 -34b4392,10 -34b4393,2b -34b4394,54 -34b4395,40 -34b4396,ff -34b4397,df -34b4398,80 -34b4399,a2 -34b439c,26 -34b439d,52 -34b439f,1 -34b43a0,24 -34b43a1,2 -34b43a3,6 -34b43a4,16 -34b43a5,42 -34b43a6,ff -34b43a7,d3 -34b43a8,26 -34b43a9,d6 -34b43ab,12 -34b43ac,3c -34b43ad,2 -34b43ae,80 -34b43af,40 -34b43b0,8c -34b43b1,43 -34b43b2,65 -34b43b3,18 -34b43b4,3c -34b43b5,2 -34b43b6,80 -34b43b7,40 -34b43b8,ac -34b43b9,43 -34b43ba,65 -34b43bb,14 -34b43bc,8f -34b43bd,bf -34b43bf,4c -34b43c0,8f -34b43c1,be -34b43c3,48 -34b43c4,8f -34b43c5,b7 -34b43c7,44 -34b43c8,8f -34b43c9,b6 -34b43cb,40 -34b43cc,8f -34b43cd,b5 -34b43cf,3c -34b43d0,8f -34b43d1,b4 -34b43d3,38 -34b43d4,8f -34b43d5,b3 -34b43d7,34 -34b43d8,8f -34b43d9,b2 -34b43db,30 -34b43dc,8f -34b43dd,b1 -34b43df,2c -34b43e0,8f -34b43e1,b0 -34b43e3,28 -34b43e4,3 -34b43e5,e0 -34b43e7,8 -34b43e8,27 -34b43e9,bd -34b43eb,50 -34b43ec,4d -34b43ed,51 -34b43f0,4e -34b43f1,6f -34b43f2,72 -34b43f3,6d +34b4309,bf +34b430b,4c +34b430c,8f +34b430d,be +34b430f,48 +34b4310,8f +34b4311,b7 +34b4313,44 +34b4314,8f +34b4315,b6 +34b4317,40 +34b4318,8f +34b4319,b5 +34b431b,3c +34b431c,8f +34b431d,b4 +34b431f,38 +34b4320,8f +34b4321,b3 +34b4323,34 +34b4324,8f +34b4325,b2 +34b4327,30 +34b4328,8f +34b4329,b1 +34b432b,2c +34b432c,8f +34b432d,b0 +34b432f,28 +34b4330,3 +34b4331,e0 +34b4333,8 +34b4334,27 +34b4335,bd +34b4337,50 +34b4338,4d +34b4339,51 +34b433c,4e +34b433d,6f +34b433e,72 +34b433f,6d +34b4340,61 +34b4341,6c +34b4349,8 +34b434b,e +34b434d,5f +34b434e,3 +34b434f,1 +34b4350,1 +34b4359,18 +34b435b,18 +34b435d,12 +34b435f,3 +34b4360,4 +34b4369,10 +34b436b,10 +34b436d,6 +34b436e,3 +34b436f,1 +34b4370,1 +34b4379,10 +34b437b,10 +34b437d,3 +34b437f,3 +34b4380,4 +34b4385,1 +34b4386,2 +34b4387,3 +34b4388,4 +34b4389,5 +34b438a,6 +34b438b,7 +34b438c,ff +34b438d,ff +34b438e,ff +34b438f,ff +34b4390,ff +34b4391,ff +34b4395,ff +34b4397,ff +34b4398,3c +34b439b,64 +34b439c,ff +34b439d,ff +34b439e,82 +34b43a0,c8 +34b43a1,32 +34b43a2,ff +34b43a3,c8 +34b43a4,c8 +34b43a9,10 +34b43aa,44 +34b43ab,65 +34b43ac,6b +34b43ad,75 +34b43b4,1 +34b43b5,10 +34b43b6,44 +34b43b7,6f +34b43b8,64 +34b43b9,6f +34b43ba,6e +34b43bb,67 +34b43bc,6f +34b43c0,2 +34b43c1,10 +34b43c2,4a +34b43c3,61 +34b43c4,62 +34b43c5,75 +34b43cc,3 +34b43cd,d0 +34b43ce,46 +34b43cf,6f +34b43d0,72 +34b43d1,65 +34b43d2,73 +34b43d3,74 +34b43d8,4 +34b43d9,d0 +34b43da,46 +34b43db,69 +34b43dc,72 +34b43dd,65 +34b43e4,5 +34b43e5,d0 +34b43e6,57 +34b43e7,61 +34b43e8,74 +34b43e9,65 +34b43ea,72 +34b43f0,7 +34b43f1,d0 +34b43f2,53 +34b43f3,68 34b43f4,61 -34b43f5,6c -34b43fd,8 -34b43ff,e -34b4401,5f -34b4402,3 -34b4403,1 -34b4404,1 -34b440d,18 -34b440f,18 -34b4411,12 -34b4413,3 -34b4414,4 -34b441d,10 -34b441f,10 -34b4421,6 -34b4422,3 -34b4423,1 -34b4424,1 -34b442d,10 -34b442f,10 -34b4431,3 -34b4433,3 -34b4434,4 -34b4439,1 -34b443a,2 -34b443b,3 -34b443c,4 -34b443d,5 -34b443e,6 -34b443f,7 -34b4440,ff -34b4441,ff -34b4442,ff -34b4443,ff -34b4444,ff -34b4445,ff -34b4449,ff -34b444b,ff -34b444c,3c -34b444f,64 -34b4450,ff -34b4451,ff -34b4452,82 -34b4454,c8 -34b4455,32 -34b4456,ff -34b4457,c8 -34b4458,c8 -34b445d,10 -34b445e,44 -34b445f,65 -34b4460,6b -34b4461,75 -34b4468,1 -34b4469,10 -34b446a,44 -34b446b,6f -34b446c,64 -34b446d,6f -34b446e,6e -34b446f,67 -34b4470,6f -34b4474,2 -34b4475,10 -34b4476,4a -34b4477,61 -34b4478,62 -34b4479,75 -34b4480,3 -34b4481,d0 -34b4482,46 -34b4483,6f -34b4484,72 -34b4485,65 -34b4486,73 -34b4487,74 -34b448c,4 -34b448d,d0 -34b448e,46 -34b448f,69 -34b4490,72 -34b4491,65 -34b4498,5 -34b4499,d0 -34b449a,57 -34b449b,61 -34b449c,74 -34b449d,65 -34b449e,72 -34b44a4,7 -34b44a5,d0 -34b44a6,53 -34b44a7,68 -34b44a8,61 -34b44a9,64 -34b44aa,6f -34b44ab,77 -34b44b0,6 -34b44b1,d0 -34b44b2,53 -34b44b3,70 -34b44b4,69 -34b44b5,72 -34b44b6,69 -34b44b7,74 -34b44bc,8 -34b44bd,90 -34b44be,42 -34b44bf,6f -34b44c0,74 -34b44c1,57 -34b44c8,9 -34b44c9,10 -34b44ca,49 -34b44cb,63 -34b44cc,65 -34b44d4,c -34b44d5,a0 -34b44d6,47 -34b44d7,65 -34b44d8,72 -34b44d9,75 -34b44da,64 -34b44db,6f -34b44e0,b -34b44e1,80 -34b44e2,47 -34b44e3,54 -34b44e4,47 -34b44ec,d -34b44ed,c0 -34b44ee,47 -34b44ef,61 -34b44f0,6e -34b44f1,6f -34b44f2,6e -34b44fb,1 -34b44ff,d -34b457b,d -34b457c,b0 -34b457f,d -34b4580,b0 -34b4583,d -34b4584,b0 -34b4587,c -34b4588,b0 -34b458b,c -34b458c,b0 -34b458f,c -34b4590,a0 -34b4597,d -34b4598,b0 -34b459b,d -34b459c,b0 -34b45b3,e8 -34b45b4,ac -34b45b7,e8 -34b45b8,ac -34b45bb,e8 -34b45bc,ac -34b45bf,e8 -34b45c0,ac -34b45e7,d -34b45e8,77 -34b45e9,d0 -34b45eb,2e -34b45ec,3a -34b45ed,b0 -34b45ef,7d -34b45f0,c -34b45f1,90 -34b45f2,8f -34b45f3,ff -34b45f4,ff -34b45f5,fd -34b45f7,c9 -34b45f8,6e -34b45fa,2 -34b45fb,e4 -34b45fc,ac -34b45fe,ef -34b45ff,ff -34b4600,ff -34b4601,f4 -34b4602,a -34b4603,b0 -34b4604,e5 -34b4606,c -34b4607,95 -34b4608,e0 -34b460a,e -34b460b,59 -34b460c,c0 -34b4623,7 -34b4624,90 -34b4626,5 -34b4627,ce -34b4628,eb -34b4629,40 -34b462a,c -34b462b,c8 -34b462c,a9 -34b462d,90 -34b462e,d -34b462f,a7 -34b4630,90 -34b4632,8 -34b4633,ec -34b4634,b4 -34b4637,4a -34b4638,dd -34b4639,a0 -34b463b,7 -34b463c,97 -34b463d,e2 -34b463e,c -34b463f,88 -34b4640,aa -34b4641,e0 -34b4642,6 -34b4643,ce -34b4644,ed -34b4645,70 -34b4647,7 -34b4648,90 +34b43f5,64 +34b43f6,6f +34b43f7,77 +34b43fc,6 +34b43fd,d0 +34b43fe,53 +34b43ff,70 +34b4400,69 +34b4401,72 +34b4402,69 +34b4403,74 +34b4408,8 +34b4409,90 +34b440a,42 +34b440b,6f +34b440c,74 +34b440d,57 +34b4414,9 +34b4415,10 +34b4416,49 +34b4417,63 +34b4418,65 +34b4420,c +34b4421,a0 +34b4422,47 +34b4423,65 +34b4424,72 +34b4425,75 +34b4426,64 +34b4427,6f +34b442c,b +34b442d,80 +34b442e,47 +34b442f,54 +34b4430,47 +34b4438,d +34b4439,c0 +34b443a,47 +34b443b,61 +34b443c,6e +34b443d,6f +34b443e,6e +34b4447,1 +34b444b,d +34b44c7,d +34b44c8,b0 +34b44cb,d +34b44cc,b0 +34b44cf,d +34b44d0,b0 +34b44d3,c +34b44d4,b0 +34b44d7,c +34b44d8,b0 +34b44db,c +34b44dc,a0 +34b44e3,d +34b44e4,b0 +34b44e7,d +34b44e8,b0 +34b44ff,e8 +34b4500,ac +34b4503,e8 +34b4504,ac +34b4507,e8 +34b4508,ac +34b450b,e8 +34b450c,ac +34b4533,d +34b4534,77 +34b4535,d0 +34b4537,2e +34b4538,3a +34b4539,b0 +34b453b,7d +34b453c,c +34b453d,90 +34b453e,8f +34b453f,ff +34b4540,ff +34b4541,fd +34b4543,c9 +34b4544,6e +34b4546,2 +34b4547,e4 +34b4548,ac +34b454a,ef +34b454b,ff +34b454c,ff +34b454d,f4 +34b454e,a +34b454f,b0 +34b4550,e5 +34b4552,c +34b4553,95 +34b4554,e0 +34b4556,e +34b4557,59 +34b4558,c0 +34b456f,7 +34b4570,90 +34b4572,5 +34b4573,ce +34b4574,eb +34b4575,40 +34b4576,c +34b4577,c8 +34b4578,a9 +34b4579,90 +34b457a,d +34b457b,a7 +34b457c,90 +34b457e,8 +34b457f,ec +34b4580,b4 +34b4583,4a +34b4584,dd +34b4585,a0 +34b4587,7 +34b4588,97 +34b4589,e2 +34b458a,c +34b458b,88 +34b458c,aa +34b458d,e0 +34b458e,6 +34b458f,ce +34b4590,ed +34b4591,70 +34b4593,7 +34b4594,90 +34b4597,7 +34b4598,90 +34b45a6,6d +34b45a7,ea +34b45aa,c9 +34b45ab,4d +34b45ac,60 +34b45ae,c9 +34b45af,4d +34b45b0,60 +34b45b1,33 +34b45b2,6d +34b45b3,eb +34b45b4,6b +34b45b5,c6 +34b45b7,8c +34b45b8,b6 +34b45ba,7c +34b45bb,a4 +34b45bc,ce +34b45bd,c4 +34b45be,31 +34b45bf,9 +34b45c0,c3 +34b45c1,bb +34b45c3,9 +34b45c4,c3 +34b45c5,bb +34b45c7,2 +34b45c8,ce +34b45c9,d4 +34b45de,4 +34b45df,ce +34b45e0,fb +34b45e2,a +34b45e3,d5 +34b45e6,8 +34b45e7,e3 +34b45ea,9 +34b45eb,ec +34b45ee,7e +34b45ef,4d +34b45f0,b0 +34b45f1,ab +34b45f2,bb +34b45f3,5 +34b45f4,e8 +34b45f5,aa +34b45f6,bc +34b45f8,8e +34b45f9,d6 +34b45fa,7e +34b45fb,93 +34b45fc,6e +34b45fd,d0 +34b45fe,8 +34b45ff,de +34b4600,d9 +34b4601,ea +34b4617,c +34b4618,a0 +34b461b,c +34b461c,a0 +34b461f,c +34b4620,a0 +34b4623,c +34b4624,a0 +34b4648,c9 34b464b,7 -34b464c,90 -34b465a,6d -34b465b,ea -34b465e,c9 -34b465f,4d -34b4660,60 -34b4662,c9 -34b4663,4d -34b4664,60 -34b4665,33 -34b4666,6d -34b4667,eb -34b4668,6b -34b4669,c6 -34b466b,8c -34b466c,b6 -34b466e,7c -34b466f,a4 -34b4670,ce -34b4671,c4 -34b4672,31 -34b4673,9 -34b4674,c3 -34b4675,bb -34b4677,9 -34b4678,c3 -34b4679,bb -34b467b,2 -34b467c,ce -34b467d,d4 -34b4692,4 -34b4693,ce -34b4694,fb -34b4696,a -34b4697,d5 -34b469a,8 -34b469b,e3 -34b469e,9 -34b469f,ec -34b46a2,7e -34b46a3,4d -34b46a4,b0 -34b46a5,ab -34b46a6,bb -34b46a7,5 -34b46a8,e8 -34b46a9,aa -34b46aa,bc -34b46ac,8e -34b46ad,d6 -34b46ae,7e -34b46af,93 -34b46b0,6e -34b46b1,d0 -34b46b2,8 -34b46b3,de -34b46b4,d9 -34b46b5,ea -34b46cb,c -34b46cc,a0 -34b46cf,c -34b46d0,a0 -34b46d3,c -34b46d4,a0 -34b46d7,c -34b46d8,a0 -34b46fc,c9 -34b46ff,7 -34b4700,e2 +34b464c,e2 +34b464f,c +34b4650,b0 +34b4653,e +34b4654,80 +34b4657,6f +34b4658,30 +34b465b,8e +34b465f,8e +34b4663,6f +34b4664,40 +34b4667,e +34b4668,80 +34b466b,c +34b466c,b0 +34b466f,7 +34b4670,e2 +34b4674,c9 +34b467f,bb +34b4683,5e +34b4684,40 +34b4687,c +34b4688,a0 +34b468b,a +34b468c,d0 +34b468f,7 +34b4690,e1 +34b4693,6 +34b4694,f4 +34b4697,6 +34b4698,f4 +34b469b,7 +34b469c,e1 +34b469f,a +34b46a0,d0 +34b46a3,c +34b46a4,a0 +34b46a7,5e +34b46a8,40 +34b46ab,bb +34b46bf,a +34b46c0,80 +34b46c2,c +34b46c3,8a +34b46c4,8a +34b46c5,b0 +34b46c6,3 +34b46c7,be +34b46c8,da +34b46c9,10 +34b46ca,3 +34b46cb,be +34b46cc,da +34b46cd,10 +34b46ce,c +34b46cf,8a +34b46d0,8a +34b46d1,b0 +34b46d3,a +34b46d4,80 +34b46fb,c +34b46fc,a0 +34b46ff,c +34b4700,a0 34b4703,c -34b4704,b0 -34b4707,e -34b4708,80 -34b470b,6f -34b470c,30 -34b470f,8e -34b4713,8e -34b4717,6f -34b4718,40 -34b471b,e -34b471c,80 -34b471f,c -34b4720,b0 -34b4723,7 -34b4724,e2 -34b4728,c9 -34b4733,bb -34b4737,5e -34b4738,40 -34b473b,c -34b473c,a0 -34b473f,a -34b4740,d0 -34b4743,7 -34b4744,e1 -34b4747,6 -34b4748,f4 -34b474b,6 -34b474c,f4 -34b474f,7 -34b4750,e1 -34b4753,a -34b4754,d0 -34b4757,c -34b4758,a0 -34b475b,5e -34b475c,40 -34b475f,bb -34b4773,a -34b4774,80 -34b4776,c -34b4777,8a -34b4778,8a -34b4779,b0 -34b477a,3 -34b477b,be -34b477c,da -34b477d,10 -34b477e,3 -34b477f,be -34b4780,da -34b4781,10 -34b4782,c -34b4783,8a -34b4784,8a -34b4785,b0 -34b4787,a -34b4788,80 -34b47af,c -34b47b0,a0 -34b47b3,c -34b47b4,a0 -34b47b7,c -34b47b8,a0 -34b47ba,af -34b47bb,ff -34b47bc,ff -34b47bd,f8 -34b47bf,c -34b47c0,a0 -34b47c3,c -34b47c4,a0 -34b47c7,c -34b47c8,a0 -34b47ff,d -34b4800,d0 -34b4803,e -34b4804,c0 -34b4807,4f -34b4808,80 -34b480b,9d -34b482f,df -34b4830,fb -34b486f,e -34b4870,c0 -34b4873,e -34b4874,c0 -34b488c,b -34b488d,c0 -34b4890,4e -34b4891,60 -34b4894,bc -34b4897,3 -34b4898,e8 -34b489b,a -34b489c,d0 -34b489f,1e -34b48a0,90 -34b48a3,9e -34b48a4,20 -34b48a7,da -34b48aa,7 -34b48ab,e3 -34b48ae,c -34b48af,b0 -34b48b2,6e -34b48b3,50 -34b48c2,3 -34b48c3,ce -34b48c4,eb -34b48c6,b -34b48c7,d5 -34b48c8,7e -34b48c9,90 -34b48ca,e -34b48cb,90 -34b48cc,b -34b48cd,d0 -34b48ce,5f -34b48cf,70 -34b48d0,9 -34b48d1,e0 -34b48d2,6f -34b48d3,6c -34b48d4,b9 -34b48d5,e0 -34b48d6,5f -34b48d7,70 -34b48d8,9 -34b48d9,e0 -34b48da,e -34b48db,90 -34b48dc,b -34b48dd,d0 -34b48de,b -34b48df,d5 -34b48e0,7e -34b48e1,90 -34b48e2,3 -34b48e3,ce -34b48e4,eb -34b48fa,a -34b48fb,ff -34b48fc,e0 -34b48ff,8 -34b4900,e0 -34b4903,8 -34b4904,e0 -34b4907,8 -34b4908,e0 -34b490b,8 -34b490c,e0 -34b490f,8 -34b4910,e0 -34b4913,8 -34b4914,e0 -34b4917,8 -34b4918,e0 -34b491a,8 -34b491b,ff -34b491c,ff -34b491d,e0 -34b4932,8 -34b4933,de +34b4704,a0 +34b4706,af +34b4707,ff +34b4708,ff +34b4709,f8 +34b470b,c +34b470c,a0 +34b470f,c +34b4710,a0 +34b4713,c +34b4714,a0 +34b474b,d +34b474c,d0 +34b474f,e +34b4750,c0 +34b4753,4f +34b4754,80 +34b4757,9d +34b477b,df +34b477c,fb +34b47bb,e +34b47bc,c0 +34b47bf,e +34b47c0,c0 +34b47d8,b +34b47d9,c0 +34b47dc,4e +34b47dd,60 +34b47e0,bc +34b47e3,3 +34b47e4,e8 +34b47e7,a +34b47e8,d0 +34b47eb,1e +34b47ec,90 +34b47ef,9e +34b47f0,20 +34b47f3,da +34b47f6,7 +34b47f7,e3 +34b47fa,c +34b47fb,b0 +34b47fe,6e +34b47ff,50 +34b480e,3 +34b480f,ce +34b4810,eb +34b4812,b +34b4813,d5 +34b4814,7e +34b4815,90 +34b4816,e +34b4817,90 +34b4818,b +34b4819,d0 +34b481a,5f +34b481b,70 +34b481c,9 +34b481d,e0 +34b481e,6f +34b481f,6c +34b4820,b9 +34b4821,e0 +34b4822,5f +34b4823,70 +34b4824,9 +34b4825,e0 +34b4826,e +34b4827,90 +34b4828,b +34b4829,d0 +34b482a,b +34b482b,d5 +34b482c,7e +34b482d,90 +34b482e,3 +34b482f,ce +34b4830,eb +34b4846,a +34b4847,ff +34b4848,e0 +34b484b,8 +34b484c,e0 +34b484f,8 +34b4850,e0 +34b4853,8 +34b4854,e0 +34b4857,8 +34b4858,e0 +34b485b,8 +34b485c,e0 +34b485f,8 +34b4860,e0 +34b4863,8 +34b4864,e0 +34b4866,8 +34b4867,ff +34b4868,ff +34b4869,e0 +34b487e,8 +34b487f,de +34b4880,ea +34b4882,c +34b4883,83 +34b4884,7e +34b4885,90 +34b4888,c +34b4889,c0 +34b488c,2e +34b488d,a0 +34b4890,bd +34b4891,20 +34b4893,b +34b4894,d4 +34b4897,bd +34b4898,40 +34b489a,b +34b489b,d4 +34b489e,2f +34b489f,ff +34b48a0,ff +34b48a1,d0 +34b48b6,7 +34b48b7,ce +34b48b8,ea +34b48ba,c +34b48bb,83 +34b48bc,7e +34b48bd,90 +34b48c0,c +34b48c1,b0 +34b48c3,2 +34b48c4,7e +34b48c5,90 +34b48c7,bf +34b48c8,fb +34b48cb,2 +34b48cc,7d +34b48cd,a0 +34b48d0,a +34b48d1,d0 +34b48d2,5c +34b48d3,62 +34b48d4,7d +34b48d5,b0 +34b48d6,9 +34b48d7,de +34b48d8,eb +34b48d9,30 +34b48ef,2 +34b48f0,de +34b48f3,b +34b48f4,de +34b48f7,7d +34b48f8,9e +34b48fa,2 +34b48fb,d7 +34b48fc,9e +34b48fe,b +34b48ff,b0 +34b4900,9e +34b4902,6e +34b4903,40 +34b4904,9e +34b4906,9f +34b4907,ff +34b4908,ff +34b4909,f7 +34b490c,9e +34b4910,9e +34b4926,c +34b4927,ff +34b4928,ff +34b4929,50 +34b492a,c +34b492b,a0 +34b492e,c +34b492f,a0 +34b4932,c +34b4933,ee 34b4934,ea -34b4936,c -34b4937,83 -34b4938,7e +34b4937,3 +34b4938,8e 34b4939,90 -34b493c,c +34b493c,b 34b493d,c0 -34b4940,2e -34b4941,a0 -34b4944,bd -34b4945,20 -34b4947,b -34b4948,d4 -34b494b,bd -34b494c,40 -34b494e,b -34b494f,d4 -34b4952,2f -34b4953,ff -34b4954,ff -34b4955,d0 -34b496a,7 -34b496b,ce -34b496c,ea -34b496e,c -34b496f,83 -34b4970,7e -34b4971,90 -34b4974,c -34b4975,b0 -34b4977,2 -34b4978,7e -34b4979,90 -34b497b,bf -34b497c,fb -34b497f,2 -34b4980,7d -34b4981,a0 -34b4984,a -34b4985,d0 -34b4986,5c -34b4987,62 -34b4988,7d -34b4989,b0 -34b498a,9 -34b498b,de -34b498c,eb -34b498d,30 -34b49a3,2 -34b49a4,de -34b49a7,b -34b49a8,de -34b49ab,7d -34b49ac,9e -34b49ae,2 -34b49af,d7 -34b49b0,9e -34b49b2,b -34b49b3,b0 -34b49b4,9e -34b49b6,6e -34b49b7,40 -34b49b8,9e -34b49ba,9f -34b49bb,ff -34b49bc,ff -34b49bd,f7 -34b49c0,9e -34b49c4,9e -34b49da,c -34b49db,ff -34b49dc,ff -34b49dd,50 -34b49de,c -34b49df,a0 -34b49e2,c -34b49e3,a0 -34b49e6,c -34b49e7,ee -34b49e8,ea -34b49eb,3 -34b49ec,8e -34b49ed,90 -34b49f0,b -34b49f1,c0 -34b49f4,b -34b49f5,c0 -34b49f6,5c -34b49f7,63 -34b49f8,8e -34b49f9,90 -34b49fa,9 -34b49fb,de -34b49fc,da -34b4a13,ae -34b4a14,ec -34b4a15,30 -34b4a16,a -34b4a17,e8 -34b4a18,39 -34b4a19,80 -34b4a1a,e -34b4a1b,90 -34b4a1e,4f -34b4a1f,ae -34b4a20,ec -34b4a21,40 -34b4a22,6f -34b4a23,d5 -34b4a24,5d -34b4a25,c0 -34b4a26,5f -34b4a27,90 -34b4a28,9 -34b4a29,e0 -34b4a2a,e -34b4a2b,90 -34b4a2c,9 -34b4a2d,e0 -34b4a2e,c -34b4a2f,d5 -34b4a30,5d -34b4a31,c0 -34b4a32,3 -34b4a33,ce -34b4a34,ec -34b4a35,40 -34b4a4a,5f -34b4a4b,ff -34b4a4c,ff -34b4a4d,d0 -34b4a50,d -34b4a51,a0 -34b4a54,7e -34b4a55,40 -34b4a58,cc -34b4a5b,4 -34b4a5c,e8 -34b4a5f,a -34b4a60,d0 -34b4a63,d -34b4a64,a0 -34b4a67,8e -34b4a68,40 -34b4a6b,cc -34b4a82,5 -34b4a83,ce -34b4a84,ec -34b4a85,30 -34b4a86,d -34b4a87,c4 -34b4a88,5d -34b4a89,b0 -34b4a8a,e -34b4a8b,90 -34b4a8c,b -34b4a8d,d0 -34b4a8e,b -34b4a8f,c4 -34b4a90,5d -34b4a91,90 -34b4a92,4 -34b4a93,df -34b4a94,fc -34b4a95,20 -34b4a96,1d -34b4a97,b4 -34b4a98,5c -34b4a99,c0 -34b4a9a,5f -34b4a9b,60 -34b4a9c,9 -34b4a9d,e0 -34b4a9e,2e -34b4a9f,b3 -34b4aa0,5c -34b4aa1,d0 -34b4aa2,7 -34b4aa3,de -34b4aa4,ec -34b4aa5,50 -34b4aba,6 -34b4abb,de -34b4abc,eb -34b4abe,d -34b4abf,b3 -34b4ac0,7e -34b4ac1,90 -34b4ac2,5f -34b4ac3,50 -34b4ac4,b -34b4ac5,d0 -34b4ac6,5f -34b4ac7,50 -34b4ac8,b -34b4ac9,e0 -34b4aca,d -34b4acb,b3 -34b4acc,7e -34b4acd,e0 -34b4ace,6 -34b4acf,de -34b4ad0,db -34b4ad1,e0 -34b4ad4,b -34b4ad5,c0 -34b4ad6,9 -34b4ad7,74 -34b4ad8,9e -34b4ad9,70 -34b4ada,5 -34b4adb,de -34b4adc,d8 -34b4afb,e -34b4afc,c0 -34b4aff,e -34b4b00,c0 -34b4b0f,e -34b4b10,c0 -34b4b13,e -34b4b14,c0 -34b4b33,e -34b4b34,c0 -34b4b37,e -34b4b38,c0 -34b4b47,d -34b4b48,d0 -34b4b4b,e -34b4b4c,c0 -34b4b4f,4f -34b4b50,80 -34b4b53,9d -34b4b6c,29 -34b4b6d,c8 -34b4b6f,7b -34b4b70,ed -34b4b71,93 -34b4b72,8d -34b4b73,da -34b4b74,40 -34b4b76,8d -34b4b77,da -34b4b78,40 -34b4b7b,7b -34b4b7c,ec -34b4b7d,93 -34b4b80,29 -34b4b81,c8 -34b4ba6,af -34b4ba7,ff -34b4ba8,ff -34b4ba9,f8 -34b4bb2,af -34b4bb3,ff -34b4bb4,ff -34b4bb5,f8 -34b4bda,ac -34b4bdb,81 -34b4bde,4a -34b4bdf,de -34b4be0,b6 -34b4be3,6 -34b4be4,ad -34b4be5,d6 -34b4be7,6 -34b4be8,ad -34b4be9,d6 -34b4bea,4a -34b4beb,de -34b4bec,b6 -34b4bee,ac -34b4bef,81 -34b4c0a,4 -34b4c0b,be -34b4c0c,ec -34b4c0d,30 -34b4c0e,9 -34b4c0f,a4 -34b4c10,6e -34b4c11,a0 -34b4c14,1d -34b4c15,a0 -34b4c17,2 -34b4c18,cd -34b4c19,30 -34b4c1b,c -34b4c1c,c1 -34b4c1f,e -34b4c20,90 -34b4c27,e -34b4c28,90 -34b4c2b,e -34b4c2c,90 -34b4c42,1 -34b4c43,ae -34b4c44,ed -34b4c45,70 -34b4c46,c -34b4c47,d7 -34b4c48,39 -34b4c49,e4 -34b4c4a,7e -34b4c4b,20 -34b4c4d,c9 -34b4c4e,ba -34b4c4f,a -34b4c50,ee -34b4c51,ca -34b4c52,d7 -34b4c53,6e -34b4c54,64 -34b4c55,da -34b4c56,d6 -34b4c57,9c -34b4c59,aa -34b4c5a,d7 -34b4c5b,6e -34b4c5c,64 -34b4c5d,da -34b4c5e,ba -34b4c5f,a -34b4c60,ee -34b4c61,ca -34b4c62,6e -34b4c63,40 -34b4c66,a -34b4c67,d8 -34b4c68,30 -34b4c6b,8d -34b4c6c,ee -34b4c6d,90 -34b4c7b,3e -34b4c7c,d0 -34b4c7f,9d -34b4c80,e6 -34b4c83,cb -34b4c84,cb -34b4c86,3 -34b4c87,e8 -34b4c88,ad -34b4c8a,8 -34b4c8b,e2 -34b4c8c,6f -34b4c8d,60 -34b4c8e,c -34b4c8f,c0 -34b4c90,e -34b4c91,a0 -34b4c92,2e -34b4c93,ff -34b4c94,ff -34b4c95,d0 -34b4c96,8e -34b4c97,50 -34b4c98,8 -34b4c99,f5 -34b4c9a,cd -34b4c9c,1 -34b4c9d,ea -34b4cb2,e -34b4cb3,ff -34b4cb4,ec -34b4cb5,40 -34b4cb6,e -34b4cb7,90 -34b4cb8,5d +34b4940,b +34b4941,c0 +34b4942,5c +34b4943,63 +34b4944,8e +34b4945,90 +34b4946,9 +34b4947,de +34b4948,da +34b495f,ae +34b4960,ec +34b4961,30 +34b4962,a +34b4963,e8 +34b4964,39 +34b4965,80 +34b4966,e +34b4967,90 +34b496a,4f +34b496b,ae +34b496c,ec +34b496d,40 +34b496e,6f +34b496f,d5 +34b4970,5d +34b4971,c0 +34b4972,5f +34b4973,90 +34b4974,9 +34b4975,e0 +34b4976,e +34b4977,90 +34b4978,9 +34b4979,e0 +34b497a,c +34b497b,d5 +34b497c,5d +34b497d,c0 +34b497e,3 +34b497f,ce +34b4980,ec +34b4981,40 +34b4996,5f +34b4997,ff +34b4998,ff +34b4999,d0 +34b499c,d +34b499d,a0 +34b49a0,7e +34b49a1,40 +34b49a4,cc +34b49a7,4 +34b49a8,e8 +34b49ab,a +34b49ac,d0 +34b49af,d +34b49b0,a0 +34b49b3,8e +34b49b4,40 +34b49b7,cc +34b49ce,5 +34b49cf,ce +34b49d0,ec +34b49d1,30 +34b49d2,d +34b49d3,c4 +34b49d4,5d +34b49d5,b0 +34b49d6,e +34b49d7,90 +34b49d8,b +34b49d9,d0 +34b49da,b +34b49db,c4 +34b49dc,5d +34b49dd,90 +34b49de,4 +34b49df,df +34b49e0,fc +34b49e1,20 +34b49e2,1d +34b49e3,b4 +34b49e4,5c +34b49e5,c0 +34b49e6,5f +34b49e7,60 +34b49e8,9 +34b49e9,e0 +34b49ea,2e +34b49eb,b3 +34b49ec,5c +34b49ed,d0 +34b49ee,7 +34b49ef,de +34b49f0,ec +34b49f1,50 +34b4a06,6 +34b4a07,de +34b4a08,eb +34b4a0a,d +34b4a0b,b3 +34b4a0c,7e +34b4a0d,90 +34b4a0e,5f +34b4a0f,50 +34b4a10,b +34b4a11,d0 +34b4a12,5f +34b4a13,50 +34b4a14,b +34b4a15,e0 +34b4a16,d +34b4a17,b3 +34b4a18,7e +34b4a19,e0 +34b4a1a,6 +34b4a1b,de +34b4a1c,db +34b4a1d,e0 +34b4a20,b +34b4a21,c0 +34b4a22,9 +34b4a23,74 +34b4a24,9e +34b4a25,70 +34b4a26,5 +34b4a27,de +34b4a28,d8 +34b4a47,e +34b4a48,c0 +34b4a4b,e +34b4a4c,c0 +34b4a5b,e +34b4a5c,c0 +34b4a5f,e +34b4a60,c0 +34b4a7f,e +34b4a80,c0 +34b4a83,e +34b4a84,c0 +34b4a93,d +34b4a94,d0 +34b4a97,e +34b4a98,c0 +34b4a9b,4f +34b4a9c,80 +34b4a9f,9d +34b4ab8,29 +34b4ab9,c8 +34b4abb,7b +34b4abc,ed +34b4abd,93 +34b4abe,8d +34b4abf,da +34b4ac0,40 +34b4ac2,8d +34b4ac3,da +34b4ac4,40 +34b4ac7,7b +34b4ac8,ec +34b4ac9,93 +34b4acc,29 +34b4acd,c8 +34b4af2,af +34b4af3,ff +34b4af4,ff +34b4af5,f8 +34b4afe,af +34b4aff,ff +34b4b00,ff +34b4b01,f8 +34b4b26,ac +34b4b27,81 +34b4b2a,4a +34b4b2b,de +34b4b2c,b6 +34b4b2f,6 +34b4b30,ad +34b4b31,d6 +34b4b33,6 +34b4b34,ad +34b4b35,d6 +34b4b36,4a +34b4b37,de +34b4b38,b6 +34b4b3a,ac +34b4b3b,81 +34b4b56,4 +34b4b57,be +34b4b58,ec +34b4b59,30 +34b4b5a,9 +34b4b5b,a4 +34b4b5c,6e +34b4b5d,a0 +34b4b60,1d +34b4b61,a0 +34b4b63,2 +34b4b64,cd +34b4b65,30 +34b4b67,c +34b4b68,c1 +34b4b6b,e +34b4b6c,90 +34b4b73,e +34b4b74,90 +34b4b77,e +34b4b78,90 +34b4b8e,1 +34b4b8f,ae +34b4b90,ed +34b4b91,70 +34b4b92,c +34b4b93,d7 +34b4b94,39 +34b4b95,e4 +34b4b96,7e +34b4b97,20 +34b4b99,c9 +34b4b9a,ba +34b4b9b,a +34b4b9c,ee +34b4b9d,ca +34b4b9e,d7 +34b4b9f,6e +34b4ba0,64 +34b4ba1,da +34b4ba2,d6 +34b4ba3,9c +34b4ba5,aa +34b4ba6,d7 +34b4ba7,6e +34b4ba8,64 +34b4ba9,da +34b4baa,ba +34b4bab,a +34b4bac,ee +34b4bad,ca +34b4bae,6e +34b4baf,40 +34b4bb2,a +34b4bb3,d8 +34b4bb4,30 +34b4bb7,8d +34b4bb8,ee +34b4bb9,90 +34b4bc7,3e +34b4bc8,d0 +34b4bcb,9d +34b4bcc,e6 +34b4bcf,cb +34b4bd0,cb +34b4bd2,3 +34b4bd3,e8 +34b4bd4,ad +34b4bd6,8 +34b4bd7,e2 +34b4bd8,6f +34b4bd9,60 +34b4bda,c +34b4bdb,c0 +34b4bdc,e +34b4bdd,a0 +34b4bde,2e +34b4bdf,ff +34b4be0,ff +34b4be1,d0 +34b4be2,8e +34b4be3,50 +34b4be4,8 +34b4be5,f5 +34b4be6,cd +34b4be8,1 +34b4be9,ea +34b4bfe,e +34b4bff,ff +34b4c00,ec +34b4c01,40 +34b4c02,e +34b4c03,90 +34b4c04,5d +34b4c05,c0 +34b4c06,e +34b4c07,90 +34b4c08,a +34b4c09,e0 +34b4c0a,e +34b4c0b,90 +34b4c0c,5d +34b4c0d,c0 +34b4c0e,e +34b4c0f,ff +34b4c10,fd +34b4c11,50 +34b4c12,e +34b4c13,90 +34b4c14,4b +34b4c15,d2 +34b4c16,e +34b4c17,90 +34b4c18,5 +34b4c19,f6 +34b4c1a,e +34b4c1b,90 +34b4c1c,4b +34b4c1d,e3 +34b4c1e,e +34b4c1f,ff +34b4c20,ed +34b4c21,80 +34b4c37,9d +34b4c38,ed +34b4c39,80 +34b4c3a,8 +34b4c3b,e9 +34b4c3c,36 +34b4c3d,b0 +34b4c3e,d +34b4c3f,b0 +34b4c42,3f +34b4c43,90 +34b4c46,5f +34b4c47,70 +34b4c4a,1e +34b4c4b,90 +34b4c4e,d +34b4c4f,b0 +34b4c52,8 +34b4c53,e9 +34b4c54,47 +34b4c55,b0 +34b4c57,9d +34b4c58,ed +34b4c59,80 +34b4c6e,5f +34b4c6f,fe +34b4c70,d8 +34b4c72,5f +34b4c73,65 +34b4c74,ae +34b4c75,80 +34b4c76,5f +34b4c77,60 +34b4c78,c +34b4c79,d0 +34b4c7a,5f +34b4c7b,60 +34b4c7c,9 +34b4c7d,e0 +34b4c7e,5f +34b4c7f,60 +34b4c80,9 +34b4c81,f0 +34b4c82,5f +34b4c83,60 +34b4c84,9 +34b4c85,e0 +34b4c86,5f +34b4c87,60 +34b4c88,c +34b4c89,d0 +34b4c8a,5f +34b4c8b,65 +34b4c8c,ae +34b4c8d,80 +34b4c8e,5f +34b4c8f,fe +34b4c90,d8 +34b4ca6,d +34b4ca7,ff +34b4ca8,ff +34b4ca9,e0 +34b4caa,d +34b4cab,b0 +34b4cae,d +34b4caf,b0 +34b4cb2,d +34b4cb3,b0 +34b4cb6,d +34b4cb7,ff +34b4cb8,ff 34b4cb9,c0 -34b4cba,e -34b4cbb,90 -34b4cbc,a -34b4cbd,e0 -34b4cbe,e -34b4cbf,90 -34b4cc0,5d -34b4cc1,c0 -34b4cc2,e -34b4cc3,ff -34b4cc4,fd -34b4cc5,50 -34b4cc6,e -34b4cc7,90 -34b4cc8,4b -34b4cc9,d2 -34b4cca,e -34b4ccb,90 -34b4ccc,5 -34b4ccd,f6 -34b4cce,e -34b4ccf,90 -34b4cd0,4b -34b4cd1,e3 -34b4cd2,e -34b4cd3,ff -34b4cd4,ed -34b4cd5,80 -34b4ceb,9d -34b4cec,ed -34b4ced,80 -34b4cee,8 -34b4cef,e9 -34b4cf0,36 -34b4cf1,b0 -34b4cf2,d -34b4cf3,b0 -34b4cf6,3f -34b4cf7,90 -34b4cfa,5f -34b4cfb,70 -34b4cfe,1e -34b4cff,90 -34b4d02,d -34b4d03,b0 -34b4d06,8 -34b4d07,e9 -34b4d08,47 -34b4d09,b0 -34b4d0b,9d -34b4d0c,ed -34b4d0d,80 -34b4d22,5f -34b4d23,fe -34b4d24,d8 -34b4d26,5f -34b4d27,65 -34b4d28,ae -34b4d29,80 -34b4d2a,5f -34b4d2b,60 -34b4d2c,c -34b4d2d,d0 -34b4d2e,5f -34b4d2f,60 -34b4d30,9 -34b4d31,e0 -34b4d32,5f -34b4d33,60 -34b4d34,9 -34b4d35,f0 -34b4d36,5f -34b4d37,60 -34b4d38,9 -34b4d39,e0 -34b4d3a,5f -34b4d3b,60 -34b4d3c,c -34b4d3d,d0 -34b4d3e,5f -34b4d3f,65 -34b4d40,ae -34b4d41,80 -34b4d42,5f -34b4d43,fe -34b4d44,d8 -34b4d5a,d -34b4d5b,ff -34b4d5c,ff +34b4cba,d +34b4cbb,b0 +34b4cbe,d +34b4cbf,b0 +34b4cc2,d +34b4cc3,b0 +34b4cc6,d +34b4cc7,ff +34b4cc8,ff +34b4cc9,f0 +34b4cde,b +34b4cdf,ff +34b4ce0,ff +34b4ce1,f4 +34b4ce2,b +34b4ce3,d0 +34b4ce6,b +34b4ce7,d0 +34b4cea,b +34b4ceb,d0 +34b4cee,b +34b4cef,ff +34b4cf0,ff +34b4cf1,c0 +34b4cf2,b +34b4cf3,d0 +34b4cf6,b +34b4cf7,d0 +34b4cfa,b +34b4cfb,d0 +34b4cfe,b +34b4cff,d0 +34b4d16,1 +34b4d17,ae +34b4d18,ed +34b4d19,60 +34b4d1a,b +34b4d1b,e7 +34b4d1c,38 +34b4d1d,a0 +34b4d1e,4e +34b4d1f,90 +34b4d22,8f +34b4d23,40 +34b4d26,9f +34b4d27,10 +34b4d28,bf +34b4d29,f2 +34b4d2a,7f +34b4d2b,40 +34b4d2c,7 +34b4d2d,f2 +34b4d2e,4e +34b4d2f,90 +34b4d30,7 +34b4d31,f2 +34b4d32,b +34b4d33,e7 +34b4d34,39 +34b4d35,f2 +34b4d36,1 +34b4d37,be +34b4d38,ed +34b4d39,90 +34b4d4e,5f +34b4d4f,60 +34b4d50,9 +34b4d51,e0 +34b4d52,5f +34b4d53,60 +34b4d54,9 +34b4d55,e0 +34b4d56,5f +34b4d57,60 +34b4d58,9 +34b4d59,e0 +34b4d5a,5f +34b4d5b,60 +34b4d5c,9 34b4d5d,e0 -34b4d5e,d -34b4d5f,b0 -34b4d62,d -34b4d63,b0 -34b4d66,d -34b4d67,b0 -34b4d6a,d -34b4d6b,ff -34b4d6c,ff -34b4d6d,c0 -34b4d6e,d -34b4d6f,b0 -34b4d72,d -34b4d73,b0 -34b4d76,d -34b4d77,b0 -34b4d7a,d -34b4d7b,ff -34b4d7c,ff -34b4d7d,f0 -34b4d92,b -34b4d93,ff -34b4d94,ff -34b4d95,f4 -34b4d96,b -34b4d97,d0 -34b4d9a,b -34b4d9b,d0 -34b4d9e,b -34b4d9f,d0 -34b4da2,b -34b4da3,ff -34b4da4,ff -34b4da5,c0 -34b4da6,b -34b4da7,d0 -34b4daa,b -34b4dab,d0 -34b4dae,b -34b4daf,d0 -34b4db2,b -34b4db3,d0 -34b4dca,1 -34b4dcb,ae -34b4dcc,ed -34b4dcd,60 -34b4dce,b -34b4dcf,e7 -34b4dd0,38 -34b4dd1,a0 -34b4dd2,4e -34b4dd3,90 -34b4dd6,8f -34b4dd7,40 -34b4dda,9f -34b4ddb,10 -34b4ddc,bf -34b4ddd,f2 -34b4dde,7f -34b4ddf,40 -34b4de0,7 -34b4de1,f2 -34b4de2,4e -34b4de3,90 -34b4de4,7 -34b4de5,f2 -34b4de6,b -34b4de7,e7 -34b4de8,39 -34b4de9,f2 -34b4dea,1 -34b4deb,be -34b4dec,ed -34b4ded,90 +34b4d5e,5f +34b4d5f,ff +34b4d60,ff +34b4d61,e0 +34b4d62,5f +34b4d63,60 +34b4d64,9 +34b4d65,e0 +34b4d66,5f +34b4d67,60 +34b4d68,9 +34b4d69,e0 +34b4d6a,5f +34b4d6b,60 +34b4d6c,9 +34b4d6d,e0 +34b4d6e,5f +34b4d6f,60 +34b4d70,9 +34b4d71,e0 +34b4d86,d +34b4d87,ff +34b4d88,ff +34b4d89,b0 +34b4d8b,d +34b4d8c,b0 +34b4d8f,d +34b4d90,b0 +34b4d93,d +34b4d94,b0 +34b4d97,d +34b4d98,b0 +34b4d9b,d +34b4d9c,b0 +34b4d9f,d +34b4da0,b0 +34b4da3,d +34b4da4,b0 +34b4da6,d +34b4da7,ff +34b4da8,ff +34b4da9,b0 +34b4dbf,cf +34b4dc0,ff +34b4dc1,40 +34b4dc4,7f +34b4dc5,40 +34b4dc8,7f +34b4dc9,40 +34b4dcc,7f +34b4dcd,40 +34b4dd0,7f +34b4dd1,40 +34b4dd4,7f +34b4dd5,30 +34b4dd6,75 +34b4dd8,9e +34b4dda,8d +34b4ddb,64 +34b4ddc,dc +34b4dde,2b +34b4ddf,ee +34b4de0,c5 +34b4df6,5f +34b4df7,60 +34b4df8,9 +34b4df9,e7 +34b4dfa,5f +34b4dfb,60 +34b4dfc,9e +34b4dfd,70 +34b4dfe,5f +34b4dff,69 +34b4e00,e7 34b4e02,5f -34b4e03,60 -34b4e04,9 -34b4e05,e0 +34b4e03,be +34b4e04,80 34b4e06,5f -34b4e07,60 -34b4e08,9 -34b4e09,e0 +34b4e07,ed +34b4e08,b0 34b4e0a,5f -34b4e0b,60 -34b4e0c,9 -34b4e0d,e0 +34b4e0b,87 +34b4e0c,e8 34b4e0e,5f 34b4e0f,60 -34b4e10,9 -34b4e11,e0 +34b4e10,ae +34b4e11,40 34b4e12,5f -34b4e13,ff -34b4e14,ff -34b4e15,e0 +34b4e13,60 +34b4e14,1d +34b4e15,c0 34b4e16,5f 34b4e17,60 -34b4e18,9 -34b4e19,e0 -34b4e1a,5f -34b4e1b,60 -34b4e1c,9 -34b4e1d,e0 -34b4e1e,5f -34b4e1f,60 -34b4e20,9 -34b4e21,e0 -34b4e22,5f -34b4e23,60 -34b4e24,9 -34b4e25,e0 -34b4e3a,d -34b4e3b,ff -34b4e3c,ff -34b4e3d,b0 -34b4e3f,d -34b4e40,b0 -34b4e43,d -34b4e44,b0 -34b4e47,d -34b4e48,b0 -34b4e4b,d -34b4e4c,b0 -34b4e4f,d -34b4e50,b0 -34b4e53,d -34b4e54,b0 -34b4e57,d -34b4e58,b0 -34b4e5a,d -34b4e5b,ff -34b4e5c,ff -34b4e5d,b0 -34b4e73,cf -34b4e74,ff -34b4e75,40 -34b4e78,7f -34b4e79,40 -34b4e7c,7f -34b4e7d,40 -34b4e80,7f -34b4e81,40 -34b4e84,7f -34b4e85,40 -34b4e88,7f -34b4e89,30 -34b4e8a,75 -34b4e8c,9e -34b4e8e,8d -34b4e8f,64 -34b4e90,dc -34b4e92,2b -34b4e93,ee -34b4e94,c5 +34b4e18,6 +34b4e19,ea +34b4e2e,c +34b4e2f,c0 +34b4e32,c +34b4e33,c0 +34b4e36,c +34b4e37,c0 +34b4e3a,c +34b4e3b,c0 +34b4e3e,c +34b4e3f,c0 +34b4e42,c +34b4e43,c0 +34b4e46,c +34b4e47,c0 +34b4e4a,c +34b4e4b,c0 +34b4e4e,c +34b4e4f,ff +34b4e50,ff +34b4e51,f7 +34b4e66,af +34b4e67,a0 +34b4e68,c +34b4e69,f8 +34b4e6a,ae +34b4e6b,d0 +34b4e6c,2e +34b4e6d,e8 +34b4e6e,ad +34b4e6f,d5 +34b4e70,9b +34b4e71,e8 +34b4e72,ad +34b4e73,aa +34b4e74,c8 +34b4e75,e8 +34b4e76,ad +34b4e77,5d +34b4e78,e1 +34b4e79,e8 +34b4e7a,ad +34b4e7b,d +34b4e7c,b0 +34b4e7d,e8 +34b4e7e,ad +34b4e81,e8 +34b4e82,ad +34b4e85,e8 +34b4e86,ad +34b4e89,e8 +34b4e9e,5f +34b4e9f,c0 +34b4ea0,8 +34b4ea1,e0 +34b4ea2,5f +34b4ea3,e6 +34b4ea4,8 +34b4ea5,e0 +34b4ea6,5f +34b4ea7,cb +34b4ea8,8 +34b4ea9,e0 34b4eaa,5f -34b4eab,60 -34b4eac,9 -34b4ead,e7 +34b4eab,7e +34b4eac,48 +34b4ead,e0 34b4eae,5f -34b4eaf,60 -34b4eb0,9e -34b4eb1,70 +34b4eaf,5c +34b4eb0,a8 +34b4eb1,e0 34b4eb2,5f -34b4eb3,69 -34b4eb4,e7 +34b4eb3,57 +34b4eb4,e8 +34b4eb5,e0 34b4eb6,5f -34b4eb7,be -34b4eb8,80 +34b4eb7,50 +34b4eb8,dc +34b4eb9,e0 34b4eba,5f -34b4ebb,ed -34b4ebc,b0 +34b4ebb,50 +34b4ebc,9e +34b4ebd,e0 34b4ebe,5f -34b4ebf,87 -34b4ec0,e8 -34b4ec2,5f -34b4ec3,60 -34b4ec4,ae -34b4ec5,40 -34b4ec6,5f -34b4ec7,60 -34b4ec8,1d -34b4ec9,c0 -34b4eca,5f -34b4ecb,60 -34b4ecc,6 -34b4ecd,ea -34b4ee2,c -34b4ee3,c0 -34b4ee6,c -34b4ee7,c0 -34b4eea,c -34b4eeb,c0 -34b4eee,c -34b4eef,c0 +34b4ebf,50 +34b4ec0,2e +34b4ec1,e0 +34b4ed6,4 +34b4ed7,ce +34b4ed8,eb +34b4ed9,20 +34b4eda,c +34b4edb,d5 +34b4edc,6e +34b4edd,a0 +34b4ede,3e +34b4edf,80 +34b4ee0,a +34b4ee1,e0 +34b4ee2,7f +34b4ee3,50 +34b4ee4,8 +34b4ee5,f2 +34b4ee6,7f +34b4ee7,40 +34b4ee8,8 +34b4ee9,f4 +34b4eea,7f +34b4eeb,50 +34b4eec,8 +34b4eed,f2 +34b4eee,3e +34b4eef,80 +34b4ef0,a +34b4ef1,e0 34b4ef2,c -34b4ef3,c0 -34b4ef6,c -34b4ef7,c0 -34b4efa,c -34b4efb,c0 -34b4efe,c -34b4eff,c0 -34b4f02,c -34b4f03,ff -34b4f04,ff -34b4f05,f7 -34b4f1a,af -34b4f1b,a0 -34b4f1c,c -34b4f1d,f8 -34b4f1e,ae -34b4f1f,d0 -34b4f20,2e -34b4f21,e8 -34b4f22,ad -34b4f23,d5 -34b4f24,9b -34b4f25,e8 -34b4f26,ad -34b4f27,aa -34b4f28,c8 -34b4f29,e8 -34b4f2a,ad -34b4f2b,5d -34b4f2c,e1 -34b4f2d,e8 -34b4f2e,ad -34b4f2f,d -34b4f30,b0 -34b4f31,e8 -34b4f32,ad -34b4f35,e8 -34b4f36,ad -34b4f39,e8 -34b4f3a,ad -34b4f3d,e8 -34b4f52,5f -34b4f53,c0 +34b4ef3,d5 +34b4ef4,6e +34b4ef5,b0 +34b4ef6,4 +34b4ef7,ce +34b4ef8,eb +34b4ef9,20 +34b4f0e,d +34b4f0f,ff +34b4f10,ed +34b4f11,60 +34b4f12,d +34b4f13,b0 +34b4f14,5c +34b4f15,e2 +34b4f16,d +34b4f17,b0 +34b4f18,6 +34b4f19,f6 +34b4f1a,d +34b4f1b,b0 +34b4f1c,6 +34b4f1d,f6 +34b4f1e,d +34b4f1f,b0 +34b4f20,5c +34b4f21,e2 +34b4f22,d +34b4f23,ff +34b4f24,ed +34b4f25,60 +34b4f26,d +34b4f27,b0 +34b4f2a,d +34b4f2b,b0 +34b4f2e,d +34b4f2f,b0 +34b4f46,4 +34b4f47,ce +34b4f48,eb +34b4f49,20 +34b4f4a,c +34b4f4b,d5 +34b4f4c,6e +34b4f4d,a0 +34b4f4e,3e +34b4f4f,80 +34b4f50,a +34b4f51,e0 +34b4f52,7f +34b4f53,50 34b4f54,8 -34b4f55,e0 -34b4f56,5f -34b4f57,e6 +34b4f55,f2 +34b4f56,7f +34b4f57,40 34b4f58,8 -34b4f59,e0 -34b4f5a,5f -34b4f5b,cb +34b4f59,f4 +34b4f5a,7f +34b4f5b,50 34b4f5c,8 -34b4f5d,e0 -34b4f5e,5f -34b4f5f,7e -34b4f60,48 -34b4f61,e0 -34b4f62,5f -34b4f63,5c -34b4f64,a8 -34b4f65,e0 -34b4f66,5f -34b4f67,57 -34b4f68,e8 -34b4f69,e0 -34b4f6a,5f -34b4f6b,50 -34b4f6c,dc -34b4f6d,e0 -34b4f6e,5f -34b4f6f,50 -34b4f70,9e -34b4f71,e0 -34b4f72,5f -34b4f73,50 -34b4f74,2e -34b4f75,e0 -34b4f8a,4 -34b4f8b,ce -34b4f8c,eb -34b4f8d,20 -34b4f8e,c -34b4f8f,d5 -34b4f90,6e -34b4f91,a0 -34b4f92,3e -34b4f93,80 -34b4f94,a -34b4f95,e0 -34b4f96,7f -34b4f97,50 -34b4f98,8 -34b4f99,f2 -34b4f9a,7f -34b4f9b,40 +34b4f5d,f1 +34b4f5e,3e +34b4f5f,80 +34b4f60,a +34b4f61,d0 +34b4f62,c +34b4f63,d5 +34b4f64,6e +34b4f65,a0 +34b4f66,4 +34b4f67,ce +34b4f68,fc +34b4f69,20 +34b4f6c,ae +34b4f6d,50 +34b4f70,c +34b4f71,80 +34b4f7e,5f +34b4f7f,fe +34b4f80,eb +34b4f81,20 +34b4f82,5f +34b4f83,71 +34b4f84,7e +34b4f85,b0 +34b4f86,5f +34b4f87,70 +34b4f88,c +34b4f89,d0 +34b4f8a,5f +34b4f8b,71 +34b4f8c,6e +34b4f8d,a0 +34b4f8e,5f +34b4f8f,ff +34b4f90,ea +34b4f92,5f +34b4f93,72 +34b4f94,ae +34b4f95,40 +34b4f96,5f +34b4f97,70 +34b4f98,d +34b4f99,b0 +34b4f9a,5f +34b4f9b,70 34b4f9c,8 -34b4f9d,f4 -34b4f9e,7f -34b4f9f,50 -34b4fa0,8 -34b4fa1,f2 -34b4fa2,3e -34b4fa3,80 -34b4fa4,a -34b4fa5,e0 -34b4fa6,c -34b4fa7,d5 -34b4fa8,6e -34b4fa9,b0 -34b4faa,4 -34b4fab,ce -34b4fac,eb -34b4fad,20 -34b4fc2,d -34b4fc3,ff -34b4fc4,ed -34b4fc5,60 -34b4fc6,d -34b4fc7,b0 -34b4fc8,5c -34b4fc9,e2 -34b4fca,d -34b4fcb,b0 -34b4fcc,6 -34b4fcd,f6 -34b4fce,d -34b4fcf,b0 -34b4fd0,6 -34b4fd1,f6 -34b4fd2,d -34b4fd3,b0 +34b4f9d,e5 +34b4f9e,5f +34b4f9f,70 +34b4fa1,db +34b4fb6,6 +34b4fb7,ce +34b4fb8,eb +34b4fb9,30 +34b4fba,d +34b4fbb,c4 +34b4fbc,5a +34b4fbd,90 +34b4fbe,4f +34b4fbf,60 +34b4fc2,e +34b4fc3,c6 +34b4fc6,5 +34b4fc7,ce +34b4fc8,eb +34b4fc9,40 +34b4fcc,6c +34b4fcd,c0 +34b4fd0,8 +34b4fd1,e0 +34b4fd2,c +34b4fd3,73 34b4fd4,5c -34b4fd5,e2 -34b4fd6,d -34b4fd7,ff -34b4fd8,ed -34b4fd9,60 -34b4fda,d -34b4fdb,b0 -34b4fde,d -34b4fdf,b0 -34b4fe2,d -34b4fe3,b0 -34b4ffa,4 -34b4ffb,ce -34b4ffc,eb -34b4ffd,20 -34b4ffe,c -34b4fff,d5 -34b5000,6e -34b5001,a0 -34b5002,3e -34b5003,80 -34b5004,a -34b5005,e0 -34b5006,7f -34b5007,50 -34b5008,8 -34b5009,f2 -34b500a,7f -34b500b,40 -34b500c,8 -34b500d,f4 -34b500e,7f -34b500f,50 -34b5010,8 -34b5011,f1 -34b5012,3e -34b5013,80 -34b5014,a -34b5015,d0 -34b5016,c -34b5017,d5 -34b5018,6e -34b5019,a0 -34b501a,4 -34b501b,ce -34b501c,fc -34b501d,20 -34b5020,ae -34b5021,50 -34b5024,c -34b5025,80 -34b5032,5f -34b5033,fe -34b5034,eb -34b5035,20 -34b5036,5f -34b5037,71 -34b5038,7e -34b5039,b0 -34b503a,5f +34b4fd5,d0 +34b4fd6,8 +34b4fd7,de +34b4fd8,ec +34b4fd9,50 +34b4fee,cf +34b4fef,ff +34b4ff0,ff +34b4ff1,fb +34b4ff3,d +34b4ff4,b0 +34b4ff7,d +34b4ff8,b0 +34b4ffb,d +34b4ffc,b0 +34b4fff,d +34b5000,b0 +34b5003,d +34b5004,b0 +34b5007,d +34b5008,b0 +34b500b,d +34b500c,b0 +34b500f,d +34b5010,b0 +34b5026,4f +34b5027,70 +34b5028,9 +34b5029,e0 +34b502a,4f +34b502b,70 +34b502c,9 +34b502d,e0 +34b502e,4f +34b502f,70 +34b5030,9 +34b5031,e0 +34b5032,4f +34b5033,70 +34b5034,9 +34b5035,e0 +34b5036,4f +34b5037,70 +34b5038,9 +34b5039,e0 +34b503a,3f 34b503b,70 -34b503c,c -34b503d,d0 -34b503e,5f -34b503f,71 -34b5040,6e -34b5041,a0 -34b5042,5f -34b5043,ff -34b5044,ea -34b5046,5f -34b5047,72 -34b5048,ae +34b503c,9 +34b503d,e0 +34b503e,2e +34b503f,70 +34b5040,a +34b5041,d0 +34b5042,d +34b5043,c4 +34b5044,5d +34b5045,c0 +34b5046,5 +34b5047,ce +34b5048,ec 34b5049,40 -34b504a,5f -34b504b,70 -34b504c,d -34b504d,b0 -34b504e,5f -34b504f,70 -34b5050,8 -34b5051,e5 -34b5052,5f -34b5053,70 -34b5055,db -34b506a,6 -34b506b,ce -34b506c,eb -34b506d,30 -34b506e,d -34b506f,c4 -34b5070,5a -34b5071,90 -34b5072,4f -34b5073,60 -34b5076,e -34b5077,c6 -34b507a,5 -34b507b,ce -34b507c,eb -34b507d,40 -34b5080,6c -34b5081,c0 -34b5084,8 -34b5085,e0 -34b5086,c -34b5087,73 -34b5088,5c -34b5089,d0 -34b508a,8 -34b508b,de -34b508c,ec -34b508d,50 -34b50a2,cf -34b50a3,ff -34b50a4,ff -34b50a5,fb -34b50a7,d -34b50a8,b0 -34b50ab,d -34b50ac,b0 -34b50af,d -34b50b0,b0 -34b50b3,d -34b50b4,b0 -34b50b7,d -34b50b8,b0 -34b50bb,d -34b50bc,b0 -34b50bf,d -34b50c0,b0 -34b50c3,d -34b50c4,b0 -34b50da,4f -34b50db,70 -34b50dc,9 -34b50dd,e0 -34b50de,4f -34b50df,70 -34b50e0,9 -34b50e1,e0 -34b50e2,4f -34b50e3,70 -34b50e4,9 -34b50e5,e0 -34b50e6,4f -34b50e7,70 -34b50e8,9 -34b50e9,e0 -34b50ea,4f -34b50eb,70 -34b50ec,9 -34b50ed,e0 -34b50ee,3f -34b50ef,70 -34b50f0,9 -34b50f1,e0 -34b50f2,2e -34b50f3,70 -34b50f4,a -34b50f5,d0 -34b50f6,d -34b50f7,c4 -34b50f8,5d -34b50f9,c0 -34b50fa,5 -34b50fb,ce -34b50fc,ec -34b50fd,40 -34b5112,ad -34b5114,3 -34b5115,e8 -34b5116,6f -34b5117,50 -34b5118,8 -34b5119,e3 -34b511a,e -34b511b,90 -34b511c,b -34b511d,c0 -34b511e,b -34b511f,c0 -34b5120,d -34b5121,90 -34b5122,8 -34b5123,e1 -34b5124,5e -34b5125,40 -34b5126,2 -34b5127,e7 -34b5128,ad -34b512b,cb -34b512c,ca -34b512f,9d -34b5130,e6 -34b5133,3e -34b5134,d0 -34b514a,e8 -34b514d,ad -34b514e,da -34b5151,cb -34b5152,cb -34b5155,da -34b5156,ac -34b5157,e -34b5158,c0 -34b5159,e8 -34b515a,8d -34b515b,6d -34b515c,e1 -34b515d,e5 -34b515e,6e -34b515f,9b -34b5160,d8 -34b5161,e0 -34b5162,1e -34b5163,c8 -34b5164,ac -34b5165,d0 -34b5166,d -34b5167,e3 -34b5168,7e -34b5169,c0 -34b516a,c -34b516b,d0 -34b516c,e -34b516d,a0 -34b5182,6e -34b5183,70 -34b5184,7 -34b5185,e7 -34b5186,a -34b5187,d2 -34b5188,1d -34b5189,b0 -34b518a,2 -34b518b,da -34b518c,ad -34b518d,20 -34b518f,7e -34b5190,e7 -34b5193,3e -34b5194,e2 -34b5197,bd -34b5198,da -34b519a,7 -34b519b,e6 -34b519c,7e -34b519d,60 -34b519e,3e -34b519f,a0 -34b51a0,b -34b51a1,d0 -34b51a2,bd -34b51a3,20 -34b51a4,4 -34b51a5,e9 -34b51ba,ae -34b51bb,20 -34b51bc,5 -34b51bd,e8 -34b51be,2d -34b51bf,a0 -34b51c0,c -34b51c1,c0 -34b51c2,7 -34b51c3,e5 -34b51c4,7e -34b51c5,50 -34b51c7,cc -34b51c8,da -34b51cb,4e -34b51cc,d2 -34b51cf,d -34b51d0,b0 -34b51d3,d -34b51d4,b0 -34b51d7,d -34b51d8,b0 -34b51db,d -34b51dc,b0 -34b51f2,e -34b51f3,ff -34b51f4,ff -34b51f5,f8 -34b51f8,b -34b51f9,d3 -34b51fc,7e -34b51fd,70 -34b51ff,3 -34b5200,ea -34b5203,b -34b5204,d1 -34b5207,8e -34b5208,50 -34b520a,4 -34b520b,e9 -34b520e,c -34b520f,c0 -34b5212,1f -34b5213,ff -34b5214,ff -34b5215,fa -34b5223,4f -34b5224,fc -34b5227,4f -34b5228,50 -34b522b,4f -34b522c,50 -34b522f,4f -34b5230,50 -34b5233,4f -34b5234,50 -34b5237,4f -34b5238,50 -34b523b,4f -34b523c,50 -34b523f,4f -34b5240,50 -34b5243,4f -34b5244,50 -34b5247,4f -34b5248,50 -34b524b,4f -34b524c,50 -34b524f,4f -34b5250,fc -34b5262,6e -34b5263,50 -34b5266,c -34b5267,b0 -34b526a,7 -34b526b,e3 -34b526f,da -34b5273,9e -34b5274,20 -34b5277,1e -34b5278,90 -34b527b,a -34b527c,d0 -34b527f,3 -34b5280,e8 -34b5284,bc -34b5288,4e -34b5289,60 -34b528c,b -34b528d,c0 -34b5293,df -34b5294,e0 -34b5297,8 -34b5298,e0 -34b529b,8 -34b529c,e0 -34b529f,8 -34b52a0,e0 -34b52a3,8 -34b52a4,e0 -34b52a7,8 -34b52a8,e0 -34b52ab,8 -34b52ac,e0 -34b52af,8 -34b52b0,e0 -34b52b3,8 -34b52b4,e0 -34b52b7,8 -34b52b8,e0 -34b52bb,8 -34b52bc,e0 -34b52bf,df -34b52c0,e0 -34b52d3,5e -34b52d4,d2 -34b52d7,dc -34b52d8,db -34b52da,a -34b52db,d2 -34b52dc,5e -34b52dd,80 -34b52de,7e -34b52df,50 -34b52e0,7 -34b52e1,e5 -34b5336,ff -34b5337,ff -34b5338,ff -34b5339,fd -34b533e,2 -34b533f,ca -34b5343,2c -34b5344,90 -34b5382,5 -34b5383,ce -34b5384,eb -34b5385,10 -34b5386,b -34b5387,93 -34b5388,6d -34b5389,a0 -34b538c,b +34b505e,ad +34b5060,3 +34b5061,e8 +34b5062,6f +34b5063,50 +34b5064,8 +34b5065,e3 +34b5066,e +34b5067,90 +34b5068,b +34b5069,c0 +34b506a,b +34b506b,c0 +34b506c,d +34b506d,90 +34b506e,8 +34b506f,e1 +34b5070,5e +34b5071,40 +34b5072,2 +34b5073,e7 +34b5074,ad +34b5077,cb +34b5078,ca +34b507b,9d +34b507c,e6 +34b507f,3e +34b5080,d0 +34b5096,e8 +34b5099,ad +34b509a,da +34b509d,cb +34b509e,cb +34b50a1,da +34b50a2,ac +34b50a3,e +34b50a4,c0 +34b50a5,e8 +34b50a6,8d +34b50a7,6d +34b50a8,e1 +34b50a9,e5 +34b50aa,6e +34b50ab,9b +34b50ac,d8 +34b50ad,e0 +34b50ae,1e +34b50af,c8 +34b50b0,ac +34b50b1,d0 +34b50b2,d +34b50b3,e3 +34b50b4,7e +34b50b5,c0 +34b50b6,c +34b50b7,d0 +34b50b8,e +34b50b9,a0 +34b50ce,6e +34b50cf,70 +34b50d0,7 +34b50d1,e7 +34b50d2,a +34b50d3,d2 +34b50d4,1d +34b50d5,b0 +34b50d6,2 +34b50d7,da +34b50d8,ad +34b50d9,20 +34b50db,7e +34b50dc,e7 +34b50df,3e +34b50e0,e2 +34b50e3,bd +34b50e4,da +34b50e6,7 +34b50e7,e6 +34b50e8,7e +34b50e9,60 +34b50ea,3e +34b50eb,a0 +34b50ec,b +34b50ed,d0 +34b50ee,bd +34b50ef,20 +34b50f0,4 +34b50f1,e9 +34b5106,ae +34b5107,20 +34b5108,5 +34b5109,e8 +34b510a,2d +34b510b,a0 +34b510c,c +34b510d,c0 +34b510e,7 +34b510f,e5 +34b5110,7e +34b5111,50 +34b5113,cc +34b5114,da +34b5117,4e +34b5118,d2 +34b511b,d +34b511c,b0 +34b511f,d +34b5120,b0 +34b5123,d +34b5124,b0 +34b5127,d +34b5128,b0 +34b513e,e +34b513f,ff +34b5140,ff +34b5141,f8 +34b5144,b +34b5145,d3 +34b5148,7e +34b5149,70 +34b514b,3 +34b514c,ea +34b514f,b +34b5150,d1 +34b5153,8e +34b5154,50 +34b5156,4 +34b5157,e9 +34b515a,c +34b515b,c0 +34b515e,1f +34b515f,ff +34b5160,ff +34b5161,fa +34b516f,4f +34b5170,fc +34b5173,4f +34b5174,50 +34b5177,4f +34b5178,50 +34b517b,4f +34b517c,50 +34b517f,4f +34b5180,50 +34b5183,4f +34b5184,50 +34b5187,4f +34b5188,50 +34b518b,4f +34b518c,50 +34b518f,4f +34b5190,50 +34b5193,4f +34b5194,50 +34b5197,4f +34b5198,50 +34b519b,4f +34b519c,fc +34b51ae,6e +34b51af,50 +34b51b2,c +34b51b3,b0 +34b51b6,7 +34b51b7,e3 +34b51bb,da +34b51bf,9e +34b51c0,20 +34b51c3,1e +34b51c4,90 +34b51c7,a +34b51c8,d0 +34b51cb,3 +34b51cc,e8 +34b51d0,bc +34b51d4,4e +34b51d5,60 +34b51d8,b +34b51d9,c0 +34b51df,df +34b51e0,e0 +34b51e3,8 +34b51e4,e0 +34b51e7,8 +34b51e8,e0 +34b51eb,8 +34b51ec,e0 +34b51ef,8 +34b51f0,e0 +34b51f3,8 +34b51f4,e0 +34b51f7,8 +34b51f8,e0 +34b51fb,8 +34b51fc,e0 +34b51ff,8 +34b5200,e0 +34b5203,8 +34b5204,e0 +34b5207,8 +34b5208,e0 +34b520b,df +34b520c,e0 +34b521f,5e +34b5220,d2 +34b5223,dc +34b5224,db +34b5226,a +34b5227,d2 +34b5228,5e +34b5229,80 +34b522a,7e +34b522b,50 +34b522c,7 +34b522d,e5 +34b5282,ff +34b5283,ff +34b5284,ff +34b5285,fd +34b528a,2 +34b528b,ca +34b528f,2c +34b5290,90 +34b52ce,5 +34b52cf,ce +34b52d0,eb +34b52d1,10 +34b52d2,b +34b52d3,93 +34b52d4,6d +34b52d5,a0 +34b52d8,b +34b52d9,c0 +34b52da,8 +34b52db,de +34b52dc,ff +34b52dd,c0 +34b52de,3e +34b52df,93 +34b52e0,b +34b52e1,d0 +34b52e2,4f +34b52e3,82 +34b52e4,7e +34b52e5,d0 +34b52e6,a +34b52e7,ee +34b52e8,db +34b52e9,d0 +34b52f6,d +34b52f7,90 +34b52fa,d +34b52fb,90 +34b52fe,d +34b52ff,90 +34b5302,d +34b5303,90 +34b5306,d +34b5307,bd +34b5308,ec +34b5309,40 +34b530a,d +34b530b,e6 +34b530c,5d +34b530d,c0 +34b530e,d +34b530f,b0 +34b5310,8 +34b5311,e0 +34b5312,d +34b5313,a0 +34b5314,7 +34b5315,f2 +34b5316,d +34b5317,b0 +34b5318,8 +34b5319,e0 +34b531a,d +34b531b,e6 +34b531c,4d +34b531d,b0 +34b531e,d +34b531f,bd +34b5320,ec +34b5321,40 +34b533f,8d +34b5340,ed +34b5341,70 +34b5342,7 +34b5343,e9 +34b5344,36 +34b5345,a0 +34b5346,c +34b5347,c0 +34b534a,d +34b534b,b0 +34b534e,c +34b534f,c0 +34b5352,7 +34b5353,e9 +34b5354,36 +34b5355,a0 +34b5357,8d +34b5358,ed +34b5359,70 +34b5368,b +34b5369,c0 +34b536c,b +34b536d,c0 +34b5370,b +34b5371,c0 +34b5374,b +34b5375,c0 +34b5376,5 +34b5377,de +34b5378,dc +34b5379,c0 +34b537a,d +34b537b,c4 +34b537c,8e +34b537d,c0 +34b537e,5f +34b537f,60 +34b5380,c +34b5381,c0 +34b5382,7f +34b5383,30 +34b5384,b +34b5385,c0 +34b5386,5f +34b5387,60 +34b5388,c +34b5389,c0 +34b538a,d +34b538b,c4 +34b538c,8e 34b538d,c0 -34b538e,8 +34b538e,5 34b538f,de -34b5390,ff +34b5390,dc 34b5391,c0 -34b5392,3e -34b5393,93 -34b5394,b -34b5395,d0 -34b5396,4f -34b5397,82 -34b5398,7e -34b5399,d0 -34b539a,a -34b539b,ee -34b539c,db -34b539d,d0 -34b53aa,d -34b53ab,90 -34b53ae,d -34b53af,90 -34b53b2,d -34b53b3,90 -34b53b6,d -34b53b7,90 -34b53ba,d -34b53bb,bd -34b53bc,ec -34b53bd,40 -34b53be,d -34b53bf,e6 -34b53c0,5d -34b53c1,c0 -34b53c2,d -34b53c3,b0 -34b53c4,8 -34b53c5,e0 -34b53c6,d -34b53c7,a0 -34b53c8,7 -34b53c9,f2 -34b53ca,d -34b53cb,b0 -34b53cc,8 -34b53cd,e0 -34b53ce,d -34b53cf,e6 -34b53d0,4d -34b53d1,b0 -34b53d2,d -34b53d3,bd -34b53d4,ec -34b53d5,40 -34b53f3,8d -34b53f4,ed -34b53f5,70 -34b53f6,7 -34b53f7,e9 -34b53f8,36 -34b53f9,a0 -34b53fa,c -34b53fb,c0 -34b53fe,d -34b53ff,b0 -34b5402,c -34b5403,c0 -34b5406,7 -34b5407,e9 -34b5408,36 -34b5409,a0 -34b540b,8d -34b540c,ed -34b540d,70 -34b541c,b -34b541d,c0 -34b5420,b +34b53ae,3 +34b53af,be +34b53b0,ec +34b53b1,30 +34b53b2,c +34b53b3,d5 +34b53b4,4c +34b53b5,c0 +34b53b6,4f +34b53b7,60 +34b53b8,7 +34b53b9,e0 +34b53ba,6f +34b53bb,ff +34b53bc,ff +34b53bd,f3 +34b53be,4f +34b53bf,50 +34b53c2,c +34b53c3,c5 +34b53c4,38 +34b53c5,c0 +34b53c6,3 +34b53c7,be +34b53c8,ec +34b53c9,60 +34b53d7,5 +34b53d8,de +34b53d9,d0 +34b53db,c +34b53dc,b2 +34b53df,d +34b53e0,90 +34b53e3,e +34b53e4,80 +34b53e6,d +34b53e7,ff +34b53e8,ff +34b53e9,d0 +34b53eb,e +34b53ec,80 +34b53ef,e +34b53f0,80 +34b53f3,e +34b53f4,80 +34b53f7,e +34b53f8,80 +34b53fb,e +34b53fc,80 +34b53ff,e +34b5400,80 +34b541e,5 +34b541f,de +34b5420,dc 34b5421,c0 -34b5424,b +34b5422,d +34b5423,c4 +34b5424,8e 34b5425,c0 -34b5428,b +34b5426,5f +34b5427,60 +34b5428,c 34b5429,c0 -34b542a,5 -34b542b,de -34b542c,dc +34b542a,7f +34b542b,30 +34b542c,b 34b542d,c0 -34b542e,d -34b542f,c4 -34b5430,8e +34b542e,5f +34b542f,60 +34b5430,c 34b5431,c0 -34b5432,5f -34b5433,60 -34b5434,c +34b5432,d +34b5433,c4 +34b5434,8e 34b5435,c0 -34b5436,7f -34b5437,30 -34b5438,b -34b5439,c0 -34b543a,5f -34b543b,60 +34b5436,5 +34b5437,de +34b5438,dc +34b5439,b0 34b543c,c -34b543d,c0 -34b543e,d -34b543f,c4 -34b5440,8e -34b5441,c0 -34b5442,5 -34b5443,de -34b5444,dc -34b5445,c0 -34b5462,3 -34b5463,be -34b5464,ec -34b5465,30 -34b5466,c -34b5467,d5 -34b5468,4c +34b543d,a0 +34b543e,9 +34b543f,94 +34b5440,7e +34b5441,60 +34b5442,4 +34b5443,ce +34b5444,e9 +34b5446,d +34b5447,a0 +34b544a,d +34b544b,a0 +34b544e,d +34b544f,a0 +34b5452,d +34b5453,a0 +34b5456,d +34b5457,bd +34b5458,ed +34b5459,40 +34b545a,d +34b545b,e6 +34b545c,5d +34b545d,a0 +34b545e,d +34b545f,b0 +34b5460,b +34b5461,c0 +34b5462,d +34b5463,a0 +34b5464,b +34b5465,c0 +34b5466,d +34b5467,a0 +34b5468,b 34b5469,c0 -34b546a,4f -34b546b,60 -34b546c,7 -34b546d,e0 -34b546e,6f -34b546f,ff -34b5470,ff -34b5471,f3 -34b5472,4f -34b5473,50 -34b5476,c -34b5477,c5 -34b5478,38 -34b5479,c0 -34b547a,3 -34b547b,be -34b547c,ec -34b547d,60 -34b548b,5 -34b548c,de -34b548d,d0 -34b548f,c -34b5490,b2 -34b5493,d -34b5494,90 -34b5497,e -34b5498,80 -34b549a,d -34b549b,ff -34b549c,ff -34b549d,d0 -34b549f,e -34b54a0,80 -34b54a3,e -34b54a4,80 -34b54a7,e -34b54a8,80 -34b54ab,e -34b54ac,80 -34b54af,e -34b54b0,80 -34b54b3,e -34b54b4,80 -34b54d2,5 -34b54d3,de -34b54d4,dc -34b54d5,c0 -34b54d6,d -34b54d7,c4 -34b54d8,8e -34b54d9,c0 -34b54da,5f -34b54db,60 -34b54dc,c -34b54dd,c0 -34b54de,7f -34b54df,30 -34b54e0,b -34b54e1,c0 -34b54e2,5f -34b54e3,60 -34b54e4,c -34b54e5,c0 -34b54e6,d -34b54e7,c4 -34b54e8,8e -34b54e9,c0 -34b54ea,5 -34b54eb,de -34b54ec,dc -34b54ed,b0 -34b54f0,c -34b54f1,a0 -34b54f2,9 -34b54f3,94 -34b54f4,7e -34b54f5,60 -34b54f6,4 -34b54f7,ce -34b54f8,e9 -34b54fa,d -34b54fb,a0 -34b54fe,d -34b54ff,a0 -34b5502,d -34b5503,a0 -34b5506,d -34b5507,a0 -34b550a,d -34b550b,bd -34b550c,ed -34b550d,40 -34b550e,d -34b550f,e6 -34b5510,5d -34b5511,a0 -34b5512,d -34b5513,b0 -34b5514,b -34b5515,c0 -34b5516,d -34b5517,a0 -34b5518,b -34b5519,c0 -34b551a,d -34b551b,a0 -34b551c,b -34b551d,c0 -34b551e,d -34b551f,a0 -34b5520,b -34b5521,c0 -34b5522,d -34b5523,a0 -34b5524,b -34b5525,c0 -34b5533,b -34b5534,c0 -34b5542,9 -34b5543,ff -34b5544,c0 -34b5547,b -34b5548,c0 -34b554b,b -34b554c,c0 -34b554f,b -34b5550,c0 -34b5553,b -34b5554,c0 -34b5557,b -34b5558,c0 -34b555a,e -34b555b,ff -34b555c,ff -34b555d,e0 -34b556b,7 -34b556c,e0 -34b557a,7 -34b557b,ff -34b557c,e0 -34b557f,7 -34b5580,e0 -34b5583,7 -34b5584,e0 -34b5587,7 -34b5588,e0 -34b558b,7 -34b558c,e0 -34b558f,7 -34b5590,e0 -34b5593,7 -34b5594,e0 -34b5597,7 -34b5598,e0 -34b559b,1b -34b559c,d0 -34b559e,d -34b559f,fe -34b55a0,70 -34b55a2,b -34b55a3,c0 -34b55a6,b -34b55a7,c0 -34b55aa,b -34b55ab,c0 -34b55ae,b -34b55af,c0 -34b55b2,b -34b55b3,c0 -34b55b4,3d -34b55b5,c2 -34b55b6,b -34b55b7,c3 -34b55b8,db -34b55ba,b -34b55bb,dd -34b55bc,c0 -34b55be,b -34b55bf,fc -34b55c0,e5 -34b55c2,b -34b55c3,d0 -34b55c4,cd -34b55c5,10 -34b55c6,b -34b55c7,c0 -34b55c8,3d -34b55c9,b0 -34b55ca,b -34b55cb,c0 -34b55cc,7 -34b55cd,e8 -34b55da,e -34b55db,ff -34b55dc,40 -34b55df,5f -34b55e0,40 -34b55e3,5f -34b55e4,40 -34b55e7,5f -34b55e8,40 -34b55eb,5f -34b55ec,40 -34b55ef,5f -34b55f0,40 -34b55f3,5f -34b55f4,40 -34b55f7,5f -34b55f8,40 -34b55fb,4f -34b55fc,50 -34b55ff,e -34b5600,a0 -34b5603,8 -34b5604,ef -34b5605,b0 -34b5622,8d -34b5623,dd -34b5624,ae -34b5625,c0 -34b5626,8e -34b5627,4d -34b5628,c5 -34b5629,e4 -34b562a,8d -34b562b,c -34b562c,b0 -34b562d,e6 -34b562e,8d -34b562f,b -34b5630,a0 -34b5631,e7 -34b5632,8d -34b5633,b -34b5634,a0 -34b5635,e7 -34b5636,8d -34b5637,b -34b5638,a0 -34b5639,e7 -34b563a,8d -34b563b,b -34b563c,a0 -34b563d,e7 -34b565a,d -34b565b,bd -34b565c,ed -34b565d,40 -34b565e,d -34b565f,e6 -34b5660,5d -34b5661,a0 -34b5662,d -34b5663,b0 -34b5664,b +34b546a,d +34b546b,a0 +34b546c,b +34b546d,c0 +34b546e,d +34b546f,a0 +34b5470,b +34b5471,c0 +34b547f,b +34b5480,c0 +34b548e,9 +34b548f,ff +34b5490,c0 +34b5493,b +34b5494,c0 +34b5497,b +34b5498,c0 +34b549b,b +34b549c,c0 +34b549f,b +34b54a0,c0 +34b54a3,b +34b54a4,c0 +34b54a6,e +34b54a7,ff +34b54a8,ff +34b54a9,e0 +34b54b7,7 +34b54b8,e0 +34b54c6,7 +34b54c7,ff +34b54c8,e0 +34b54cb,7 +34b54cc,e0 +34b54cf,7 +34b54d0,e0 +34b54d3,7 +34b54d4,e0 +34b54d7,7 +34b54d8,e0 +34b54db,7 +34b54dc,e0 +34b54df,7 +34b54e0,e0 +34b54e3,7 +34b54e4,e0 +34b54e7,1b +34b54e8,d0 +34b54ea,d +34b54eb,fe +34b54ec,70 +34b54ee,b +34b54ef,c0 +34b54f2,b +34b54f3,c0 +34b54f6,b +34b54f7,c0 +34b54fa,b +34b54fb,c0 +34b54fe,b +34b54ff,c0 +34b5500,3d +34b5501,c2 +34b5502,b +34b5503,c3 +34b5504,db +34b5506,b +34b5507,dd +34b5508,c0 +34b550a,b +34b550b,fc +34b550c,e5 +34b550e,b +34b550f,d0 +34b5510,cd +34b5511,10 +34b5512,b +34b5513,c0 +34b5514,3d +34b5515,b0 +34b5516,b +34b5517,c0 +34b5518,7 +34b5519,e8 +34b5526,e +34b5527,ff +34b5528,40 +34b552b,5f +34b552c,40 +34b552f,5f +34b5530,40 +34b5533,5f +34b5534,40 +34b5537,5f +34b5538,40 +34b553b,5f +34b553c,40 +34b553f,5f +34b5540,40 +34b5543,5f +34b5544,40 +34b5547,4f +34b5548,50 +34b554b,e +34b554c,a0 +34b554f,8 +34b5550,ef +34b5551,b0 +34b556e,8d +34b556f,dd +34b5570,ae +34b5571,c0 +34b5572,8e +34b5573,4d +34b5574,c5 +34b5575,e4 +34b5576,8d +34b5577,c +34b5578,b0 +34b5579,e6 +34b557a,8d +34b557b,b +34b557c,a0 +34b557d,e7 +34b557e,8d +34b557f,b +34b5580,a0 +34b5581,e7 +34b5582,8d +34b5583,b +34b5584,a0 +34b5585,e7 +34b5586,8d +34b5587,b +34b5588,a0 +34b5589,e7 +34b55a6,d +34b55a7,bd +34b55a8,ed +34b55a9,40 +34b55aa,d +34b55ab,e6 +34b55ac,5d +34b55ad,a0 +34b55ae,d +34b55af,b0 +34b55b0,b +34b55b1,c0 +34b55b2,d +34b55b3,a0 +34b55b4,b +34b55b5,c0 +34b55b6,d +34b55b7,a0 +34b55b8,b +34b55b9,c0 +34b55ba,d +34b55bb,a0 +34b55bc,b +34b55bd,c0 +34b55be,d +34b55bf,a0 +34b55c0,b +34b55c1,c0 +34b55de,4 +34b55df,ce +34b55e0,eb +34b55e1,20 +34b55e2,c +34b55e3,d5 +34b55e4,6d +34b55e5,a0 +34b55e6,1e +34b55e7,70 +34b55e8,a +34b55e9,d0 +34b55ea,5f +34b55eb,60 +34b55ec,8 +34b55ed,e0 +34b55ee,1e +34b55ef,70 +34b55f0,a +34b55f1,d0 +34b55f2,c +34b55f3,d4 +34b55f4,6d +34b55f5,b0 +34b55f6,4 +34b55f7,ce +34b55f8,eb +34b55f9,20 +34b5616,d +34b5617,bd +34b5618,ec +34b5619,30 +34b561a,d +34b561b,e6 +34b561c,5d +34b561d,b0 +34b561e,d +34b561f,b0 +34b5620,9 +34b5621,e0 +34b5622,d +34b5623,a0 +34b5624,7 +34b5625,e0 +34b5626,d +34b5627,b0 +34b5628,8 +34b5629,e0 +34b562a,d +34b562b,e6 +34b562c,5d +34b562d,b0 +34b562e,d +34b562f,be +34b5630,ec +34b5631,40 +34b5632,d +34b5633,90 +34b5636,d +34b5637,90 +34b563a,d +34b563b,90 +34b564e,4 +34b564f,ce +34b5650,dc +34b5651,c0 +34b5652,c +34b5653,c4 +34b5654,7e +34b5655,c0 +34b5656,1e +34b5657,70 +34b5658,c +34b5659,c0 +34b565a,5f +34b565b,60 +34b565c,b +34b565d,c0 +34b565e,2e +34b565f,70 +34b5660,c +34b5661,c0 +34b5662,c +34b5663,c4 +34b5664,7e 34b5665,c0 -34b5666,d -34b5667,a0 -34b5668,b +34b5666,5 +34b5667,ce +34b5668,db 34b5669,c0 -34b566a,d -34b566b,a0 -34b566c,b +34b566c,a 34b566d,c0 -34b566e,d -34b566f,a0 -34b5670,b +34b5670,a 34b5671,c0 -34b5672,d -34b5673,a0 -34b5674,b +34b5674,a 34b5675,c0 -34b5692,4 -34b5693,ce -34b5694,eb -34b5695,20 -34b5696,c -34b5697,d5 -34b5698,6d -34b5699,a0 -34b569a,1e -34b569b,70 -34b569c,a -34b569d,d0 -34b569e,5f -34b569f,60 -34b56a0,8 -34b56a1,e0 -34b56a2,1e -34b56a3,70 -34b56a4,a -34b56a5,d0 -34b56a6,c -34b56a7,d4 -34b56a8,6d -34b56a9,b0 -34b56aa,4 -34b56ab,ce -34b56ac,eb -34b56ad,20 -34b56ca,d +34b5687,cc +34b5688,de +34b5689,f9 +34b568b,ce +34b568c,83 +34b568f,cb +34b5693,ca +34b5697,ca +34b569b,ca +34b569f,ca +34b56be,4 +34b56bf,ce +34b56c0,ea +34b56c1,10 +34b56c2,b +34b56c3,d4 +34b56c4,5b +34b56c5,60 +34b56c6,b +34b56c7,d4 +34b56ca,3 34b56cb,bd -34b56cc,ec -34b56cd,30 -34b56ce,d -34b56cf,e6 -34b56d0,5d -34b56d1,b0 -34b56d2,d -34b56d3,b0 -34b56d4,9 -34b56d5,e0 -34b56d6,d -34b56d7,a0 -34b56d8,7 -34b56d9,e0 -34b56da,d -34b56db,b0 -34b56dc,8 -34b56dd,e0 -34b56de,d -34b56df,e6 -34b56e0,5d -34b56e1,b0 -34b56e2,d -34b56e3,be -34b56e4,ec -34b56e5,40 -34b56e6,d -34b56e7,90 -34b56ea,d -34b56eb,90 -34b56ee,d -34b56ef,90 -34b5702,4 -34b5703,ce -34b5704,dc -34b5705,c0 -34b5706,c -34b5707,c4 -34b5708,7e -34b5709,c0 -34b570a,1e -34b570b,70 -34b570c,c -34b570d,c0 -34b570e,5f -34b570f,60 -34b5710,b -34b5711,c0 -34b5712,2e -34b5713,70 -34b5714,c -34b5715,c0 -34b5716,c -34b5717,c4 -34b5718,7e -34b5719,c0 -34b571a,5 -34b571b,ce -34b571c,db -34b571d,c0 -34b5720,a -34b5721,c0 -34b5724,a -34b5725,c0 -34b5728,a -34b5729,c0 -34b573b,cc -34b573c,de -34b573d,f9 -34b573f,ce -34b5740,83 -34b5743,cb -34b5747,ca -34b574b,ca -34b574f,ca -34b5753,ca -34b5772,4 -34b5773,ce -34b5774,ea -34b5775,10 -34b5776,b -34b5777,d4 -34b5778,5b -34b5779,60 -34b577a,b -34b577b,d4 -34b577e,3 -34b577f,bd -34b5780,db -34b5781,20 -34b5784,4d -34b5785,a0 -34b5786,b -34b5787,94 -34b5788,5e -34b5789,a0 -34b578a,5 -34b578b,ce -34b578c,eb -34b578d,20 -34b57a3,8e -34b57a7,8e -34b57aa,6f -34b57ab,ff -34b57ac,ff -34b57ad,b0 -34b57af,8e -34b57b3,8e -34b57b7,8e -34b57bb,8e -34b57bf,6e -34b57c0,70 -34b57c3,b -34b57c4,ef -34b57c5,b0 -34b57e2,d -34b57e3,a0 -34b57e4,b -34b57e5,c0 -34b57e6,d -34b57e7,a0 -34b57e8,b -34b57e9,c0 -34b57ea,d -34b57eb,a0 -34b57ec,b -34b57ed,c0 -34b57ee,d -34b57ef,a0 -34b57f0,b -34b57f1,c0 -34b57f2,d -34b57f3,a0 -34b57f4,b -34b57f5,c0 -34b57f6,b -34b57f7,d4 -34b57f8,7e -34b57f9,c0 -34b57fa,5 -34b57fb,de -34b57fc,db -34b57fd,c0 -34b581a,6e -34b581b,30 -34b581c,7 -34b581d,e3 -34b581e,d -34b581f,90 -34b5820,b -34b5821,c0 -34b5822,a -34b5823,d0 -34b5824,1e -34b5825,80 -34b5826,5 -34b5827,e4 -34b5828,8e -34b5829,20 -34b582b,da -34b582c,cb -34b582f,9d -34b5830,e7 -34b5833,3e -34b5834,e0 -34b5852,e8 -34b5855,ac -34b5856,ca -34b5859,ca -34b585a,ac -34b585b,d -34b585c,b0 -34b585d,e7 -34b585e,6e -34b585f,3d -34b5860,d5 -34b5861,e2 -34b5862,e -34b5863,ab -34b5864,ca -34b5865,d0 -34b5866,c -34b5867,e7 -34b5868,9e -34b5869,b0 -34b586a,a -34b586b,e1 -34b586c,5f -34b586d,80 -34b588a,3d -34b588b,a0 -34b588c,b -34b588d,c0 -34b588e,6 -34b588f,e6 -34b5890,9e -34b5891,40 -34b5893,9e -34b5894,e7 -34b5897,2e -34b5898,d0 -34b589b,cc -34b589c,da -34b589e,9 -34b589f,e4 -34b58a0,6e -34b58a1,70 -34b58a2,6e -34b58a3,70 -34b58a4,9 -34b58a5,e4 -34b58c2,6e -34b58c3,50 -34b58c4,5 -34b58c5,e5 -34b58c6,d -34b58c7,a0 -34b58c8,b -34b58c9,d0 -34b58ca,9 -34b58cb,e0 -34b58cc,e -34b58cd,90 -34b58ce,3 -34b58cf,e7 -34b58d0,8e -34b58d1,30 -34b58d3,cc -34b58d4,cc -34b58d7,7e -34b58d8,e7 -34b58db,d -34b58dc,e0 -34b58df,d -34b58e0,a0 -34b58e3,8e -34b58e4,50 -34b58e6,d -34b58e7,ea -34b58fa,b -34b58fb,ff -34b58fc,ff -34b58fd,c0 -34b5900,5e -34b5901,70 -34b5903,3 -34b5904,d9 -34b5907,c -34b5908,b0 -34b590b,bd +34b56cc,db +34b56cd,20 +34b56d0,4d +34b56d1,a0 +34b56d2,b +34b56d3,94 +34b56d4,5e +34b56d5,a0 +34b56d6,5 +34b56d7,ce +34b56d8,eb +34b56d9,20 +34b56ef,8e +34b56f3,8e +34b56f6,6f +34b56f7,ff +34b56f8,ff +34b56f9,b0 +34b56fb,8e +34b56ff,8e +34b5703,8e +34b5707,8e +34b570b,6e +34b570c,70 +34b570f,b +34b5710,ef +34b5711,b0 +34b572e,d +34b572f,a0 +34b5730,b +34b5731,c0 +34b5732,d +34b5733,a0 +34b5734,b +34b5735,c0 +34b5736,d +34b5737,a0 +34b5738,b +34b5739,c0 +34b573a,d +34b573b,a0 +34b573c,b +34b573d,c0 +34b573e,d +34b573f,a0 +34b5740,b +34b5741,c0 +34b5742,b +34b5743,d4 +34b5744,7e +34b5745,c0 +34b5746,5 +34b5747,de +34b5748,db +34b5749,c0 +34b5766,6e +34b5767,30 +34b5768,7 +34b5769,e3 +34b576a,d +34b576b,90 +34b576c,b +34b576d,c0 +34b576e,a +34b576f,d0 +34b5770,1e +34b5771,80 +34b5772,5 +34b5773,e4 +34b5774,8e +34b5775,20 +34b5777,da +34b5778,cb +34b577b,9d +34b577c,e7 +34b577f,3e +34b5780,e0 +34b579e,e8 +34b57a1,ac +34b57a2,ca +34b57a5,ca +34b57a6,ac +34b57a7,d +34b57a8,b0 +34b57a9,e7 +34b57aa,6e +34b57ab,3d +34b57ac,d5 +34b57ad,e2 +34b57ae,e +34b57af,ab +34b57b0,ca +34b57b1,d0 +34b57b2,c +34b57b3,e7 +34b57b4,9e +34b57b5,b0 +34b57b6,a +34b57b7,e1 +34b57b8,5f +34b57b9,80 +34b57d6,3d +34b57d7,a0 +34b57d8,b +34b57d9,c0 +34b57da,6 +34b57db,e6 +34b57dc,9e +34b57dd,40 +34b57df,9e +34b57e0,e7 +34b57e3,2e +34b57e4,d0 +34b57e7,cc +34b57e8,da +34b57ea,9 +34b57eb,e4 +34b57ec,6e +34b57ed,70 +34b57ee,6e +34b57ef,70 +34b57f0,9 +34b57f1,e4 +34b580e,6e +34b580f,50 +34b5810,5 +34b5811,e5 +34b5812,d +34b5813,a0 +34b5814,b +34b5815,d0 +34b5816,9 +34b5817,e0 +34b5818,e +34b5819,90 +34b581a,3 +34b581b,e7 +34b581c,8e +34b581d,30 +34b581f,cc +34b5820,cc +34b5823,7e +34b5824,e7 +34b5827,d +34b5828,e0 +34b582b,d +34b582c,a0 +34b582f,8e +34b5830,50 +34b5832,d +34b5833,ea +34b5846,b +34b5847,ff +34b5848,ff +34b5849,c0 +34b584c,5e +34b584d,70 +34b584f,3 +34b5850,d9 +34b5853,c +34b5854,b0 +34b5857,bd +34b5858,20 +34b585a,9 +34b585b,e4 +34b585e,d +34b585f,ff +34b5860,ff +34b5861,c0 +34b586f,6 +34b5870,de +34b5871,a0 +34b5873,b +34b5874,d3 +34b5877,c +34b5878,b0 +34b587b,c +34b587c,b0 +34b587f,5e +34b5880,a0 +34b5882,b +34b5883,fd +34b5884,20 +34b5887,7e +34b5888,90 +34b588b,d +34b588c,b0 +34b588f,c +34b5890,b0 +34b5893,c +34b5894,b0 +34b5897,b +34b5898,d4 +34b589b,5 +34b589c,de +34b589d,a0 +34b58a7,c +34b58a8,a0 +34b58ab,c +34b58ac,a0 +34b58af,c +34b58b0,a0 +34b58b3,c +34b58b4,a0 +34b58b7,c +34b58b8,a0 +34b58bb,c +34b58bc,a0 +34b58bf,c +34b58c0,a0 +34b58c3,c +34b58c4,a0 +34b58c7,c +34b58c8,a0 +34b58cb,c +34b58cc,a0 +34b58cf,c +34b58d0,a0 +34b58d3,c +34b58d4,a0 +34b58d7,c +34b58d8,a0 +34b58de,b +34b58df,ed +34b58e0,30 +34b58e3,4e +34b58e4,90 +34b58e7,d +34b58e8,a0 +34b58eb,c +34b58ec,a0 +34b58ef,b +34b58f0,c4 +34b58f3,5 +34b58f4,ef +34b58f5,a0 +34b58f7,b +34b58f8,d5 +34b58fb,c +34b58fc,b0 +34b58ff,d +34b5900,a0 +34b5903,d +34b5904,a0 +34b5907,5e +34b5908,80 +34b590a,b +34b590b,ec 34b590c,20 -34b590e,9 -34b590f,e4 -34b5912,d -34b5913,ff -34b5914,ff -34b5915,c0 -34b5923,6 -34b5924,de -34b5925,a0 -34b5927,b -34b5928,d3 -34b592b,c -34b592c,b0 -34b592f,c -34b5930,b0 -34b5933,5e -34b5934,a0 -34b5936,b -34b5937,fd -34b5938,20 -34b593b,7e -34b593c,90 -34b593f,d -34b5940,b0 -34b5943,c -34b5944,b0 -34b5947,c -34b5948,b0 -34b594b,b -34b594c,d4 -34b594f,5 -34b5950,de -34b5951,a0 -34b595b,c -34b595c,a0 -34b595f,c -34b5960,a0 -34b5963,c -34b5964,a0 -34b5967,c -34b5968,a0 -34b596b,c -34b596c,a0 -34b596f,c -34b5970,a0 -34b5973,c -34b5974,a0 -34b5977,c -34b5978,a0 -34b597b,c -34b597c,a0 -34b597f,c -34b5980,a0 -34b5983,c -34b5984,a0 -34b5987,c -34b5988,a0 -34b598b,c -34b598c,a0 -34b5992,b -34b5993,ed -34b5994,30 -34b5997,4e -34b5998,90 -34b599b,d -34b599c,a0 -34b599f,c -34b59a0,a0 -34b59a3,b -34b59a4,c4 -34b59a7,5 -34b59a8,ef -34b59a9,a0 -34b59ab,b -34b59ac,d5 -34b59af,c -34b59b0,b0 -34b59b3,d -34b59b4,a0 -34b59b7,d -34b59b8,a0 -34b59bb,5e -34b59bc,80 -34b59be,b -34b59bf,ec -34b59c0,20 -34b59e2,5d -34b59e3,ed -34b59e4,83 -34b59e5,a7 -34b59e6,98 -34b59e7,38 -34b59e8,de -34b59e9,c3 +34b592e,5d +34b592f,ed +34b5930,83 +34b5931,a7 +34b5932,98 +34b5933,38 +34b5934,de +34b5935,c3 diff --git a/data/symbols.json b/data/symbols.json index 16a6c5a99..363c66634 100644 --- a/data/symbols.json +++ b/data/symbols.json @@ -4,7 +4,7 @@ "EXTENDED_ITEM_DATA": "03482008", "FAIRY_ITEMS": "03481C03", "FAIRY_OCARINA_ITEM": "03481C02", - "FONT_TEXTURE": "034B453A", + "FONT_TEXTURE": "034B4486", "INITIAL_SAVE_DATA": "03481800", "ITEM_OVERRIDES": "03481000", "ITEM_TABLE": "03482050", @@ -14,20 +14,20 @@ "PLAYER_ID": "03481C00", "PLAYER_OVERRIDE_DATA": "03482000", "TIME_TRAVEL_SAVED_EQUIPS": "0348201C", - "cfg_dungeon_info_enable": "034B44F8", - "cfg_dungeon_info_mq_enable": "034B4510", - "cfg_dungeon_info_mq_need_map": "034B450C", - "cfg_dungeon_info_reward_need_altar": "034B4504", - "cfg_dungeon_info_reward_need_compass": "034B4508", - "cfg_dungeon_is_mq": "034B452C", - "cfg_dungeon_rewards": "034B4438", - "dungeon_count": "034B44FC", - "dungeons": "034B445C", - "font_sprite": "034B43F8", - "heap_next": "034B4500", - "medal_colors": "034B4448", - "medals_sprite": "034B4418", - "quest_items_sprite": "034B4408", - "setup_db": "034B451C", - "stones_sprite": "034B4428" + "cfg_dungeon_info_enable": "034B4444", + "cfg_dungeon_info_mq_enable": "034B445C", + "cfg_dungeon_info_mq_need_map": "034B4458", + "cfg_dungeon_info_reward_need_altar": "034B4450", + "cfg_dungeon_info_reward_need_compass": "034B4454", + "cfg_dungeon_is_mq": "034B4478", + "cfg_dungeon_rewards": "034B4384", + "dungeon_count": "034B4448", + "dungeons": "034B43A8", + "font_sprite": "034B4344", + "heap_next": "034B444C", + "medal_colors": "034B4394", + "medals_sprite": "034B4364", + "quest_items_sprite": "034B4354", + "setup_db": "034B4468", + "stones_sprite": "034B4374" } \ No newline at end of file From 57584bb27c6f3843d018530ec3897f5e7e05a95a Mon Sep 17 00:00:00 2001 From: Unknown Date: Sat, 6 Oct 2018 19:38:47 -0400 Subject: [PATCH 645/755] Fix GS Tokens and BGS in shops and bombchu bowling (Issue #111) --- ASM/build/asm_symbols.txt | 1 + ASM/src/hacks.asm | 12 ++++++++++++ Messages.py | 2 +- Rules.py | 9 --------- data/rom_patch.txt | 3 +++ version.py | 2 +- 6 files changed, 18 insertions(+), 11 deletions(-) diff --git a/ASM/build/asm_symbols.txt b/ASM/build/asm_symbols.txt index 26634c51f..2c6b3495b 100644 --- a/ASM/build/asm_symbols.txt +++ b/ASM/build/asm_symbols.txt @@ -6,6 +6,7 @@ 0000D260 .dbl:0010 0000D270 .dbl:0010 008A9C00 .byt:0400 +00B529A0 skip_GS_BGS_text 00D74990 skip_steal_tunic 00D7E178 @@not_in_ranch 00D7E18C @@return diff --git a/ASM/src/hacks.asm b/ASM/src/hacks.asm index da6f6a0bf..0036db0ea 100755 --- a/ASM/src/hacks.asm +++ b/ASM/src/hacks.asm @@ -529,3 +529,15 @@ jal reset_player_name_id nop lw ra, 0x3C (sp) + +;================================================================================================== +; Text Fixes +;================================================================================================== + +; Skip text overrides for GS Token and Biggoron Sword +; Replaces +; li at, 0x0C +.org 0xB5293C + b skip_GS_BGS_text +.org 0xB529A0 +skip_GS_BGS_text: \ No newline at end of file diff --git a/Messages.py b/Messages.py index 31b16ec49..42856dc62 100644 --- a/Messages.py +++ b/Messages.py @@ -167,7 +167,7 @@ 0x00AE: "\x08\x13\x0DYou got \x05\x42Farore's Wind\x05\x40!\x01This is warp magic you can use!", 0x00AF: "\x08\x13\x13You got \x05\x43Nayru's Love\x05\x40!\x01Cast this to create a powerful\x01protective barrier.", 0x00B4: "\x08You destroyed a \x05\x41Gold Skulltula\x05\x40.\x01You got a token proving you \x01destroyed it!", - 0x00B5: "\x08You destroyed a \x05\x41Gold Skulltula\x05\x40.\x01You got a token proving you \x01destroyed it!", + 0x00B5: "\x08You destroyed a \x05\x41Gold Skulltula\x05\x40.\x01You got a token proving you \x01destroyed it!", #Unused 0x00C2: "\x08\x13\x73You got a \x05\x41Piece of Heart\x05\x40!\x01Collect four pieces total to get\x01another Heart Container.", 0x00C3: "\x08\x13\x73You got a \x05\x41Piece of Heart\x05\x40!\x01So far, you've collected two \x01pieces.", 0x00C4: "\x08\x13\x73You got a \x05\x41Piece of Heart\x05\x40!\x01Now you've collected three \x01pieces!", diff --git a/Rules.py b/Rules.py index 049f93cff..c790d453f 100644 --- a/Rules.py +++ b/Rules.py @@ -345,9 +345,6 @@ def global_rules(world): add_item_rule(location, lambda i: not (i.type == 'Song' and not i.world.shuffle_song_items and i.world.id != location.world.id)) add_item_rule(location, lambda i: not (i.type == 'Shop' and i.world.id != location.world.id)) if location.type == 'Shop': - forbid_item(location, 'Biggoron Sword') - forbid_item(location, 'Gold Skulltulla Token') - if location.parent_region.name in ['Castle Town Bombchu Shop', 'Castle Town Potion Shop', 'Castle Town Bazaar']: if not world.check_beatable_only: forbid_item(location, 'Buy Goron Tunic') @@ -360,12 +357,6 @@ def global_rules(world): elif location.price > 99: set_rule(location, lambda state: state.has('Progressive Wallet')) - # Biggoron Sword at bombchu bowling seems to lead to a soft lock. - # Unsure what causes this, but I'm leaving this to original devs. - # For now just avoiding this combination, since BigSword is not that important. - forbid_item(world.get_location('Bombchu Bowling Bomb Bag'), 'Biggoron Sword') - forbid_item(world.get_location('Bombchu Bowling Piece of Heart'), 'Biggoron Sword') - # This function should be ran once after the shop items are placed in the world. # It should be ran before other items are placed in the world so that logic has diff --git a/data/rom_patch.txt b/data/rom_patch.txt index 527171e4b..450e3bc85 100644 --- a/data/rom_patch.txt +++ b/data/rom_patch.txt @@ -529,6 +529,9 @@ b52789,0 b5278b,0 b5278d,bf b5278f,3c +b5293c,10 +b5293d,0 +b5293f,18 b54b38,c b54b39,10 b54b3a,d diff --git a/version.py b/version.py index bc7b93a52..d60c2ed78 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.20.18 f.LUM' +__version__ = '2.20.19 f.LUM' From b3e09fa99811640d34e77e980b27a2bf042aaff5 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sat, 6 Oct 2018 19:51:51 -0400 Subject: [PATCH 646/755] Goron City boulder maze chests were swapped (Issue #203) --- Regions.py | 4 ++-- version.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Regions.py b/Regions.py index 7816795bb..3faf7b07f 100644 --- a/Regions.py +++ b/Regions.py @@ -994,8 +994,8 @@ def _create_region(name, type, locations=None, exits=None): 'Composer Grave Chest': (0x332D0EA, None, 0x8020, 'Chest', 0x41, 'the Graveyard'), 'Death Mountain Bombable Chest': (0x223C3CA, 0x223C7B2, 0x5AA1, 'Chest', 0x60, 'Death Mountain Trail'), 'Goron City Leftmost Maze Chest': (0x227C23A, 0x227C70A, 0x5AC0, 'Chest', 0x62, 'Goron City'), - 'Goron City Left Maze Chest': (0x227C24A, 0x227C71A, 0x5AA1, 'Chest', 0x62, 'Goron City'), - 'Goron City Right Maze Chest': (0x227C25A, 0x227C72A, 0x5AA2, 'Chest', 0x62, 'Goron City'), + 'Goron City Right Maze Chest': (0x227C24A, 0x227C71A, 0x5AA1, 'Chest', 0x62, 'Goron City'), + 'Goron City Left Maze Chest': (0x227C25A, 0x227C72A, 0x5AA2, 'Chest', 0x62, 'Goron City'), 'Zoras Domain Torch Run': (0x2103166, None, 0xB7C0, 'Chest', 0x58, 'Zora\'s Domain'), 'Hookshot Chest': (0x3063092, None, 0x1100, 'Chest', 0x48, 'the Graveyard'), 'Gerudo Valley Hammer Rocks Chest': (0x213D676, None, 0x5AA0, 'Chest', 0x5A, 'Gerudo Valley'), diff --git a/version.py b/version.py index d60c2ed78..81b450b74 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.20.19 f.LUM' +__version__ = '2.20.20 f.LUM' From cdf4425856408f6e9c2fca703160acf6766cee4e Mon Sep 17 00:00:00 2001 From: Unknown Date: Sat, 6 Oct 2018 19:59:16 -0400 Subject: [PATCH 647/755] GC Deku scrubs require lens (Issue #201) --- EntranceShuffle.py | 1 + Regions.py | 16 +++++++++++----- Rules.py | 2 ++ version.py | 2 +- 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/EntranceShuffle.py b/EntranceShuffle.py index 55ec08d6d..49400e574 100644 --- a/EntranceShuffle.py +++ b/EntranceShuffle.py @@ -207,6 +207,7 @@ def connect_doors(world, doors, targets): ('Zoras Fountain Adult Access', 'Outside Ice Cavern'), ('Lon Lon Rance Entrance', 'Lon Lon Ranch'), ('Lon Lon Exit', 'Hyrule Field'), + ('Ganons Castle Deku Scrubs', 'Ganons Castle Deku Scrubs'), ('Ganons Castle Forest Trial', 'Ganons Castle Forest Trial'), ('Ganons Castle Fire Trial', 'Ganons Castle Fire Trial'), ('Ganons Castle Water Trial', 'Ganons Castle Water Trial'), diff --git a/Regions.py b/Regions.py index 3faf7b07f..278d92037 100644 --- a/Regions.py +++ b/Regions.py @@ -891,11 +891,14 @@ def create_regions(world): world.regions.extend([ create_dungeon_region( 'Ganons Castle Lobby', - ['GC MQ Deku Scrub Bombs', 'GC MQ Deku Scrub Arrows', 'GC MQ Deku Scrub Red Potion', 'GC MQ Deku Scrub Green Potion', - 'GC MQ Deku Scrub Deku Nuts'], + None, ['Ganons Castle Exit', 'Ganons Castle Forest Trial', 'Ganons Castle Fire Trial', 'Ganons Castle Water Trial', 'Ganons Castle Shadow Trial', 'Ganons Castle Spirit Trial', 'Ganons Castle Light Trial', - 'Ganons Castle Tower']), + 'Ganons Castle Tower', 'Ganons Castle Deku Scrubs']), + create_dungeon_region( + 'Ganons Castle Deku Scrubs', + ['GC MQ Deku Scrub Bombs', 'GC MQ Deku Scrub Arrows', 'GC MQ Deku Scrub Red Potion', 'GC MQ Deku Scrub Green Potion', + 'GC MQ Deku Scrub Deku Nuts']), create_dungeon_region( 'Ganons Castle Forest Trial', ['Ganons Castle MQ Forest Trial First Chest', 'Ganons Castle MQ Forest Trial Second Chest', @@ -924,10 +927,13 @@ def create_regions(world): world.regions.extend([ create_dungeon_region( 'Ganons Castle Lobby', - ['GC Deku Scrub Bombs', 'GC Deku Scrub Arrows', 'GC Deku Scrub Red Potion', 'GC Deku Scrub Green Potion'], + None, ['Ganons Castle Exit', 'Ganons Castle Forest Trial', 'Ganons Castle Fire Trial', 'Ganons Castle Water Trial', 'Ganons Castle Shadow Trial', 'Ganons Castle Spirit Trial', 'Ganons Castle Light Trial', - 'Ganons Castle Tower']), + 'Ganons Castle Tower', 'Ganons Castle Deku Scrubs']), + create_dungeon_region( + 'Ganons Castle Deku Scrubs', + ['GC Deku Scrub Bombs', 'GC Deku Scrub Arrows', 'GC Deku Scrub Red Potion', 'GC Deku Scrub Green Potion']), create_dungeon_region( 'Ganons Castle Forest Trial', ['Ganons Castle Forest Trial Chest', 'Ganons Castle Forest Trial Clear']), diff --git a/Rules.py b/Rules.py index c790d453f..b902607ca 100644 --- a/Rules.py +++ b/Rules.py @@ -888,6 +888,7 @@ def dung_rules_gc0(world): set_rule(world.get_location('Ganons Castle Light Trial Clear'), lambda state: state.can_use('Light Arrows') and state.has('Progressive Hookshot') and state.has('Small Key (Ganons Castle)', 2)) set_rule(world.get_location('Ganons Castle Light Trail Invisible Enemies Chest'), lambda state: state.can_see_with_lens()) set_rule(world.get_location('Ganons Castle Light Trial Lullaby Chest'), lambda state: state.can_play('Zeldas Lullaby') and state.has('Small Key (Ganons Castle)', 1)) + set_rule(world.get_entrance('Ganons Castle Deku Scrubs'), lambda state: state.can_see_with_lens()) # Ganon's Castle MQ def dung_rules_gcmq(world): @@ -912,3 +913,4 @@ def dung_rules_gcmq(world): set_rule(world.get_location('Ganons Castle Spirit Trial Clear'), lambda state: state.can_use('Light Arrows') and state.has('Hammer') and state.has_bombchus() and state.has('Fire Arrows') and state.has('Mirror Shield')) set_rule(world.get_location('Ganons Castle MQ Light Trial Lullaby Chest'), lambda state: state.can_play('Zeldas Lullaby')) set_rule(world.get_location('Ganons Castle Light Trial Clear'), lambda state: state.can_use('Light Arrows') and state.has('Progressive Hookshot') and state.has('Small Key (Ganons Castle)', 3)) + set_rule(world.get_entrance('Ganons Castle Deku Scrubs'), lambda state: state.can_see_with_lens()) diff --git a/version.py b/version.py index 81b450b74..45e15bd45 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.20.20 f.LUM' +__version__ = '2.20.21 f.LUM' From d7eaec3d51b9c0ee9753029ef43463b1a86edd70 Mon Sep 17 00:00:00 2001 From: mzxrules Date: Sat, 6 Oct 2018 21:26:59 -0400 Subject: [PATCH 648/755] Simplified code for writing user defined SFX --- Patches.py | 108 +++++++++++++++++++---------------------------------- 1 file changed, 38 insertions(+), 70 deletions(-) diff --git a/Patches.py b/Patches.py index f638cfa34..14b200295 100644 --- a/Patches.py +++ b/Patches.py @@ -1510,80 +1510,48 @@ def write_save_table(rom): color = color + [0xFF] + color + [0x00] rom.write_bytes(Navi[i][j], color) - #Navi hints - NaviHint = [] - NaviHint.append([0xAE7EF2, 0xC26C7E]) #Overworld Hint - NaviHint.append([0xAE7EC6]) #Enemy Target Hint - naviHintSFXList = ['Default', 'Notification', 'Rupee', 'Timer', 'Tamborine', 'Recovery Heart', 'Carrot Refill', 'Navi - Hey!', 'Navi - Random', 'Zelda - Gasp', 'Cluck', 'Mweep!', 'None'] - randomNaviHintSFX = random_choices(naviHintSFXList, k=2) + SFXTable = { + 'None' : 0x0000, + 'Cluck' : 0x2812, + 'Rupee' : 0x4803, + 'Softer Beep' : 0x4804, + 'Recovery Heart': 0x480B, + 'Timer' : 0x481A, + 'Low Health' : 0x481B, + 'Notification' : 0x4820, + 'Tamborine' : 0x4842, + 'Carrot Refill' : 0x4845, + 'Navi - Random' : 0x6843, + 'Navi - Hey!' : 0x685F, + 'Zelda - Gasp' : 0x6879, + 'Mweep!' : 0x687A } + + SFXList = list(SFXTable.keys()) + + #Configurable Sound Effects + NaviHint = [ + [0xAE7EF2, 0xC26C7E], #Navi Overworld Hint (0x685F) + [0xAE7EC6]] #Navi Enemy Target Hint (0x6843) for i in range(len(NaviHint)): + randomSFX = random.choice(SFXList) for j in range(len(NaviHint[i])): - thisNaviHintSFX = world.navi_hint_sounds[i] - if thisNaviHintSFX == 'Random Choice': - thisNaviHintSFX = randomNaviHintSFX[i] - if thisNaviHintSFX == 'Notification': - naviHintSFX = [0x48, 0x20] - elif thisNaviHintSFX == 'Rupee': - naviHintSFX = [0x48, 0x03] - elif thisNaviHintSFX == 'Timer': - naviHintSFX = [0x48, 0x1A] - elif thisNaviHintSFX == 'Tamborine': - naviHintSFX = [0x48, 0x42] - elif thisNaviHintSFX == 'Recovery Heart': - naviHintSFX = [0x48, 0x0B] - elif thisNaviHintSFX == 'Carrot Refill': - naviHintSFX = [0x48, 0x45] - elif thisNaviHintSFX == 'Navi - Hey!': - naviHintSFX = [0x68, 0x5F] - elif thisNaviHintSFX == 'Navi - Random': - naviHintSFX = [0x68, 0x43] - elif thisNaviHintSFX == 'Zelda - Gasp': - naviHintSFX = [0x68, 0x79] - elif thisNaviHintSFX == 'Cluck': - naviHintSFX = [0x28, 0x12] - elif thisNaviHintSFX == 'Mweep!': - naviHintSFX = [0x68, 0x7A] - elif thisNaviHintSFX == 'None': - naviHintSFX = [0x00, 0x00] - if thisNaviHintSFX != 'Default': - rom.write_bytes(NaviHint[i][j], naviHintSFX) - - #Low health beep - healthSFXList = ['Default', 'Softer Beep', 'Rupee', 'Timer', 'Tamborine', 'Recovery Heart', 'Carrot Refill', 'Navi - Hey!', 'Zelda - Gasp', 'Cluck', 'Mweep!', 'None'] - randomSFX = random.choice(healthSFXList) - address = 0xADBA1A + thisSFX = world.navi_hint_sounds[i] + if thisSFX == 'Random Choice': + thisSFX = randomSFX + + if thisSFX != 'Default': + rom.write_int16(NaviHint[i][j], SFXTable[thisSFX]) + + # Low Health Beep (0x481B) + randomSFX = random.choice(SFXList) - if world.healthSFX == 'Random Choice': - thisHealthSFX = randomSFX - else: - thisHealthSFX = world.healthSFX - if thisHealthSFX == 'Default': - healthSFX = [0x48, 0x1B] - elif thisHealthSFX == 'Softer Beep': - healthSFX = [0x48, 0x04] - elif thisHealthSFX == 'Rupee': - healthSFX = [0x48, 0x03] - elif thisHealthSFX == 'Timer': - healthSFX = [0x48, 0x1A] - elif thisHealthSFX == 'Tamborine': - healthSFX = [0x48, 0x42] - elif thisHealthSFX == 'Recovery Heart': - healthSFX = [0x48, 0x0B] - elif thisHealthSFX == 'Carrot Refill': - healthSFX = [0x48, 0x45] - elif thisHealthSFX == 'Navi - Hey!': - healthSFX = [0x68, 0x5F] - elif thisHealthSFX == 'Zelda - Gasp': - healthSFX = [0x68, 0x79] - elif thisHealthSFX == 'Cluck': - healthSFX = [0x28, 0x12] - elif thisHealthSFX == 'Mweep!': - healthSFX = [0x68, 0x7A] - elif thisHealthSFX == 'None': - healthSFX = [0x00, 0x00, 0x00, 0x00] - address = 0xADBA14 - rom.write_bytes(address, healthSFX) + thisSFX = world.healthSFX + if thisSFX == 'Random Choice': + thisSFX = randomSFX + + if thisSFX != 'Default': + rom.write_int16(0xADBA1A, SFXTable[thisSFX]) return rom From 963b63cbe33d4fd63e522852a69fd38ff289994a Mon Sep 17 00:00:00 2001 From: Unknown Date: Sat, 6 Oct 2018 21:48:45 -0400 Subject: [PATCH 649/755] Fix allowing keys at the GC deku scrubs --- Dungeons.py | 6 ++++-- version.py | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Dungeons.py b/Dungeons.py index 5c388ffb3..605d93b0b 100644 --- a/Dungeons.py +++ b/Dungeons.py @@ -184,7 +184,8 @@ def make_dungeon(name, dungeon_regions_names, boss_key, small_keys, dungeon_item GC = make_dungeon( 'Ganons Castle', ['Ganons Castle Lobby', 'Ganons Castle Forest Trial', 'Ganons Castle Fire Trial', 'Ganons Castle Water Trial', - 'Ganons Castle Shadow Trial', 'Ganons Castle Spirit Trial', 'Ganons Castle Light Trial', 'Ganons Castle Tower'], + 'Ganons Castle Shadow Trial', 'Ganons Castle Spirit Trial', 'Ganons Castle Light Trial', 'Ganons Castle Tower', + 'Ganons Castle Deku Scrubs'], ItemFactory('Boss Key (Ganons Castle)'), ItemFactory(['Small Key (Ganons Castle)'] * 3), []) @@ -192,7 +193,8 @@ def make_dungeon(name, dungeon_regions_names, boss_key, small_keys, dungeon_item GC = make_dungeon( 'Ganons Castle', ['Ganons Castle Lobby', 'Ganons Castle Forest Trial', 'Ganons Castle Fire Trial', 'Ganons Castle Water Trial', - 'Ganons Castle Shadow Trial', 'Ganons Castle Spirit Trial', 'Ganons Castle Light Trial', 'Ganons Castle Tower'], + 'Ganons Castle Shadow Trial', 'Ganons Castle Spirit Trial', 'Ganons Castle Light Trial', 'Ganons Castle Tower', + 'Ganons Castle Deku Scrubs'], ItemFactory('Boss Key (Ganons Castle)'), ItemFactory(['Small Key (Ganons Castle)'] * 2), []) diff --git a/version.py b/version.py index 45e15bd45..bf68620aa 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.20.21 f.LUM' +__version__ = '2.20.22 f.LUM' From cd2c12206e3326eecf81428334e0d54af7e5c979 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sat, 6 Oct 2018 22:27:46 -0400 Subject: [PATCH 650/755] Implicit definition of arg_params['choices'] from gui_params['options'] --- Settings.py | 48 ++++++++---------------------------------------- version.py | 2 +- 2 files changed, 9 insertions(+), 41 deletions(-) diff --git a/Settings.py b/Settings.py index bcf2a0240..865478958 100644 --- a/Settings.py +++ b/Settings.py @@ -53,6 +53,14 @@ def __init__(self, name, type, bitwidth=0, shared=False, args_params={}, gui_par self.args_params = args_params # parameters that should be pased to the command line argument parser's add_argument() function self.gui_params = gui_params # parameters that the gui uses to build the widget components + # create the choices parameters from the gui options if applicable + if gui_params and 'options' in gui_params and 'choices' not in args_params: + if isinstance(gui_params['options'], list): + self.args_params['choices'] = list(gui_params['options']) + elif isinstance(gui_params['options'], dict): + self.args_params['choices'] = list(gui_params['options'].values()) + + # holds the particular choices for a run's settings class Settings(): @@ -239,7 +247,6 @@ def parse_custom_navi_color(s): 'default': 'True', 'const': 'True', 'nargs': '?', - 'choices': ['True', 'False', 'None'], 'help': '''\ Create a compressed version of the output rom file. True: Compresses. Improves stability. Will take longer to generate @@ -329,7 +336,6 @@ def parse_custom_navi_color(s): 'default': 'normal', 'const': 'normal', 'nargs': '?', - 'choices': ['normal', 'fast', 'open'], 'help': '''Select how much of Gerudo Fortress is required. (default: %(default)s) Normal: Free all four carpenters to get the Gerudo Card. Fast: Free only the carpenter closest to Link's prison to get the Gerudo Card. @@ -360,7 +366,6 @@ def parse_custom_navi_color(s): 'default': 'medallions', 'const': 'medallions', 'nargs': '?', - 'choices': ['medallions', 'vanilla', 'dungeons', 'open'], 'help': '''\ Select requirement to spawn the Rainbow Bridge to reach Ganon's Castle. (default: %(default)s) Medallions: Collect all six medallions to create the bridge. @@ -793,7 +798,6 @@ def parse_custom_navi_color(s): 'default': 'off', 'const': 'off', 'nargs': '?', - 'choices': ['off', '0', '1', '2', '3', '4', 'random'], 'help': '''\ Shop contents are randomized. Non-shop items are one time purchases. This setting also @@ -850,7 +854,6 @@ def parse_custom_navi_color(s): 'default': 'dungeon', 'const': 'dungeon', 'nargs': '?', - 'choices': ['remove', 'dungeon', 'keysanity'], 'help': '''\ Sets the Map and Compass placement rules remove: Maps and Compasses are removed from the world @@ -890,7 +893,6 @@ def parse_custom_navi_color(s): 'default': 'dungeon', 'const': 'dungeon', 'nargs': '?', - 'choices': ['remove', 'dungeon', 'keysanity'], 'help': '''\ Sets the Small Keys placement rules remove: Small Keys are removed from the world @@ -932,7 +934,6 @@ def parse_custom_navi_color(s): 'default': 'dungeon', 'const': 'dungeon', 'nargs': '?', - 'choices': ['remove', 'dungeon', 'keysanity'], 'help': '''\ Sets the Boss Keys placement rules remove: Boss Keys are removed from the world @@ -1016,7 +1017,6 @@ def parse_custom_navi_color(s): 'default': 'off', 'const': 'off', 'nargs': '?', - 'choices': ['off', 'dungeons', 'all'], 'help': '''\ Gold Skulltula Tokens will be shuffled into the pool, and Gold Skulltula locations can have any item. @@ -1054,7 +1054,6 @@ def parse_custom_navi_color(s): 'default': 'vanilla', 'const': 'vanilla', 'nargs': '?', - 'choices': ['vanilla', 'master', 'mixed'], 'help': '''\ Select requirement to spawn the Rainbow Bridge to reach Ganon's Castle. (default: %(default)s) Vanilla: Dungeons will be the original Ocarina of Time dungeons. @@ -1285,17 +1284,6 @@ def parse_custom_navi_color(s): 'default': 'pocket_egg', 'const': 'always', 'nargs': '?', - 'choices': [ - 'pocket_egg', - 'pocket_cucco', - 'cojiro', - 'odd_mushroom', - 'poachers_saw', - 'broken_sword', - 'prescription', - 'eyeball_frog', - 'eyedrops', - 'claim_check'], 'help': '''\ Select the earliest item that can appear in the adult trade sequence: 'pocket_egg' @@ -1336,17 +1324,6 @@ def parse_custom_navi_color(s): 'default': 'claim_check', 'const': 'always', 'nargs': '?', - 'choices': [ - 'pocket_egg', - 'pocket_cucco', - 'cojiro', - 'odd_mushroom', - 'poachers_saw', - 'broken_sword', - 'prescription', - 'eyeball_frog', - 'eyedrops', - 'claim_check'], 'help': '''\ Select the latest item that can appear in the adult trade sequence: 'pocket_egg' @@ -1550,7 +1527,6 @@ def parse_custom_navi_color(s): 'default': 'all', 'const': 'always', 'nargs': '?', - 'choices': ['chest', 'chest-wasteland', 'all'], 'help': '''\ Choose what expects the Lens of Truth: all: All lens spots expect the lens (except those that did not in the original game) @@ -1643,7 +1619,6 @@ def parse_custom_navi_color(s): 'default': 'none', 'const': 'agony', 'nargs': '?', - 'choices': ['none', 'mask', 'agony', 'always'], 'help': '''\ Choose how Gossip Stones behave none: Default behavior @@ -1684,7 +1659,6 @@ def parse_custom_navi_color(s): 'default': 'none', 'const': 'none', 'nargs': '?', - 'choices': ['none', 'except_hints', 'complete'], 'help': '''\ Choose how to shuffle the game's messages. none: Default behavior @@ -1718,7 +1692,6 @@ def parse_custom_navi_color(s): 'default': 'normal', 'const': 'normal', 'nargs': '?', - 'choices': ['normal', 'hard', 'very_hard', 'ohko'], 'help': '''\ Change the item pool for an added challenge. normal: Default items @@ -1756,7 +1729,6 @@ def parse_custom_navi_color(s): 'default': 'hold', 'const': 'always', 'nargs': '?', - 'choices': ['hold', 'switch'], 'help': '''\ Choose what the default Z-targeting is. ''' @@ -1776,7 +1748,6 @@ def parse_custom_navi_color(s): 'default': 'normal', 'const': 'normal', 'nargs': '?', - 'choices': ['normal', 'off', 'random'], 'help': '''\ Sets the background music behavior normal: Areas play their normal background music @@ -1990,7 +1961,6 @@ def parse_custom_navi_color(s): 'default': 'Default', 'const': 'Default', 'nargs': '?', - 'choices': ['Default', 'Notification', 'Rupee', 'Timer', 'Tamborine', 'Recovery Heart', 'Carrot Refill', 'Navi - Hey!', 'Navi - Random', 'Zelda - Gasp', 'Cluck', 'Mweep!', 'Random', 'None'], 'help': '''\ Select the sound effect that plays when Navi has a hint. (default: %(default)s) Sound: Replace the sound effect with the chosen sound. @@ -2025,7 +1995,6 @@ def parse_custom_navi_color(s): 'default': 'Default', 'const': 'Default', 'nargs': '?', - 'choices': ['Default', 'Notification', 'Rupee', 'Timer', 'Tamborine', 'Recovery Heart', 'Carrot Refill', 'Navi - Hey!', 'Navi - Random', 'Zelda - Gasp', 'Cluck', 'Mweep!', 'Random', 'None'], 'help': '''\ Select the sound effect that plays when targeting an enemy. (default: %(default)s) Sound: Replace the sound effect with the chosen sound. @@ -2060,7 +2029,6 @@ def parse_custom_navi_color(s): 'default': 'Default', 'const': 'Default', 'nargs': '?', - 'choices': ['Default', 'Softer Beep', 'Rupee', 'Timer', 'Tamborine', 'Recovery Heart', 'Carrot Refill', 'Navi - Hey!', 'Zelda - Gasp', 'Cluck', 'Mweep!', 'Random', 'None'], 'help': '''\ Select the sound effect that loops at low health. (default: %(default)s) Sound: Replace the sound effect with the chosen sound. diff --git a/version.py b/version.py index bf68620aa..45dd524de 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.20.22 f.LUM' +__version__ = '2.20.23 f.LUM' From a8716a19cfb43b776f9ad827cd12d1f46d8ba03e Mon Sep 17 00:00:00 2001 From: Unknown Date: Sat, 6 Oct 2018 23:23:39 -0400 Subject: [PATCH 651/755] Fix trying to generate a hint for a dungeon with no items (Issue #205) --- Hints.py | 7 +++++-- version.py | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Hints.py b/Hints.py index 89bce3c0c..d608ebc9f 100644 --- a/Hints.py +++ b/Hints.py @@ -163,13 +163,16 @@ def buildGossipHints(world): # add bad dungeon locations hints for dungeon in random.sample(world.dungeons, random.randint(3,4)): # Choose a randome dungeon location that is a non-dungeon item - locationWorld = random.choice([location for region in dungeon.regions for location in region.locations + dungeon_locations = [location for region in dungeon.regions for location in region.locations if location.item.type != 'Event' and \ location.item.type != 'Shop' and \ not location.event and \ not isDungeonItem(location.item) and \ (world.tokensanity != 'off' or location.item.name != 'Gold Skulltulla Token') and\ - location.item.type != 'Song']) + location.item.type != 'Song'] + if (len(dungeon_locations) == 0): + continue + locationWorld = random.choice(dungeon_locations) checkedLocations.append(locationWorld.name) add_hint(world, stoneIDs.pop(0), buildHintString(colorText(getHint(dungeon.name, world.clearer_hints).text, 'Green') + \ diff --git a/version.py b/version.py index 45dd524de..4a59cdeab 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.20.23 f.LUM' +__version__ = '2.20.24 f.LUM' From 4006d9bb7b40510c45ba13f714ab45813736251f Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 7 Oct 2018 00:38:23 -0400 Subject: [PATCH 652/755] random_choices can support non-integer weights It's not used, but it's good future proofing if it's supposed to be replicating random.choices, which does support it --- Fill.py | 3 +-- Utils.py | 16 +++++++--------- version.py | 2 +- 3 files changed, 9 insertions(+), 12 deletions(-) diff --git a/Fill.py b/Fill.py index 6bc5190f1..e43d4d0ef 100644 --- a/Fill.py +++ b/Fill.py @@ -2,7 +2,6 @@ import logging from BaseClasses import CollectionState from Rules import set_shop_rules -from Utils import random_choices class FillError(RuntimeError): pass @@ -162,7 +161,7 @@ def fill_dungeon_unique_item(window, worlds, fill_locations, itempool, attempts= else: dungeon_all_location.extend([location for region in ['Spirit Temple Outdoor Hands'] for location in world.get_region(region).locations]) - dungeon_locations.extend(random_choices(dungeon_all_location, k=2)) + dungeon_locations.extend(random.sample(dungeon_all_location, 2)) else: dungeon_locations.append(random.choice(dungeon_all_location)) dungeon_items = random.sample(major_items, len(dungeon_locations)) diff --git a/Utils.py b/Utils.py index 97478b7da..1371a5347 100644 --- a/Utils.py +++ b/Utils.py @@ -5,7 +5,9 @@ from urllib.error import URLError, HTTPError import re from version import __version__ -from random import choice as random_choice +import random +import itertools +import bisect def is_bundled(): return getattr(sys, 'frozen', False) @@ -82,9 +84,7 @@ def check_version(checked_version): except (URLError, HTTPError) as e: logger.warning("Could not fetch latest version: " + str(e)) -# Shim for the sole purpose of maintaining compatibility with older versions of -# Python 3. Note: cum weights, as well as fractional weights are unimplemented, -# as neither were used elsewhere at the time of writing. +# Shim for the sole purpose of maintaining compatibility with older versions of Python 3. def random_choices(population, weights=None, k=1): pop_size = len(population) if (weights is None): @@ -92,13 +92,11 @@ def random_choices(population, weights=None, k=1): else: assert (pop_size == len(weights)), "population and weights mismatch" - weighted_pop = [] - for i in range(pop_size): - for each in range(weights[i]): - weighted_pop.append(population[i]) + CDF = list(itertools.accumulate(weights)) result = [] for i in range(k): - result.append(random_choice(weighted_pop)) + x = random.random() * CDF[-1] + result.append(population[bisect.bisect(CDF, x)]) return result diff --git a/version.py b/version.py index 4a59cdeab..cb5f542de 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.20.24 f.LUM' +__version__ = '2.20.25 f.LUM' From e5cd81abe02b7875a9b7452775e4e1fcf8b0f924 Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 8 Oct 2018 16:27:47 -0400 Subject: [PATCH 653/755] simplified SFX code more and made more pythonic --- BaseClasses.py | 1 - Patches.py | 36 ++++++++++++------------------------ version.py | 2 +- 3 files changed, 13 insertions(+), 26 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index c9e062d9b..3eb1c11d6 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -32,7 +32,6 @@ def __init__(self, settings): # group a few others self.tunic_colors = [self.kokiricolor, self.goroncolor, self.zoracolor] self.navi_colors = [self.navicolordefault, self.navicolorenemy, self.navicolornpc, self.navicolorprop] - self.navi_hint_sounds = [self.navisfxoverworld, self.navisfxenemytarget] # trials that can be skipped will be decided later self.skipped_trials = { 'Forest': False, diff --git a/Patches.py b/Patches.py index 5e2426d11..f867eca52 100644 --- a/Patches.py +++ b/Patches.py @@ -1528,30 +1528,18 @@ def write_save_table(rom): SFXList = list(SFXTable.keys()) - #Configurable Sound Effects - NaviHint = [ - [0xAE7EF2, 0xC26C7E], #Navi Overworld Hint (0x685F) - [0xAE7EC6]] #Navi Enemy Target Hint (0x6843) - - for i in range(len(NaviHint)): - randomSFX = random.choice(SFXList) - for j in range(len(NaviHint[i])): - thisSFX = world.navi_hint_sounds[i] - if thisSFX == 'Random Choice': - thisSFX = randomSFX - - if thisSFX != 'Default': - rom.write_int16(NaviHint[i][j], SFXTable[thisSFX]) - - # Low Health Beep (0x481B) - randomSFX = random.choice(SFXList) - - thisSFX = world.healthSFX - if thisSFX == 'Random Choice': - thisSFX = randomSFX - - if thisSFX != 'Default': - rom.write_int16(0xADBA1A, SFXTable[thisSFX]) + # Configurable Sound Effects + sound_addresses = [ + (world.navisfxoverworld, [0xAE7EF2, 0xC26C7E]), # Navi Overworld Hint (0x685F) + (world.navisfxenemytarget, [0xAE7EC6]), # Navi Enemy Target Hint (0x6843) + (world.healthSFX, [0xADBA1A])] # Low Health Beep (0x481B) + + for thisSFX, addresses in sound_addresses: + if thisSFX == 'Random Choice': + thisSFX = random.choice(SFXList) + if thisSFX != 'Default': + for address in addresses: + rom.write_int16(address, SFXTable[thisSFX]) return rom diff --git a/version.py b/version.py index cb5f542de..8769787a7 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.20.25 f.LUM' +__version__ = '2.20.26 f.LUM' From 18a04186cc0a1c8af54ed7d54526e2d80acc95bf Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 8 Oct 2018 16:28:26 -0400 Subject: [PATCH 654/755] Fix typo in bombchu price --- Patches.py | 2 +- version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Patches.py b/Patches.py index f867eca52..481d5984e 100644 --- a/Patches.py +++ b/Patches.py @@ -1212,7 +1212,7 @@ def write_save_table(rom): shop_items[0x0019].price = 99 shop_items[0x001C].price = 99 update_message_by_id(messages, shop_items[0x001C].description_message, "\x08\x05\x41Bombchu (10 pieces) 99 Rupees\x01\x05\x40This looks like a toy mouse, but\x01it's actually a self-propelled time\x01bomb!\x09\x0A") - update_message_by_id(messages, shop_items[0x001C].purchase_message, "\x08Bombchu 10 pieces 100 Rupees\x09\x01\x01\x1B\x05\x42Buy\x01Don't buy\x05\x40") + update_message_by_id(messages, shop_items[0x001C].purchase_message, "\x08Bombchu 10 pieces 99 Rupees\x09\x01\x01\x1B\x05\x42Buy\x01Don't buy\x05\x40") shuffle_messages.shop_item_messages = [] diff --git a/version.py b/version.py index 8769787a7..77191d253 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.20.26 f.LUM' +__version__ = '2.20.27 f.LUM' From ef463fd80254611cc2e6b0ac1e9d52f055f4bb09 Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 8 Oct 2018 16:52:05 -0400 Subject: [PATCH 655/755] Fix casing of Deku Seeds for shops (Issue #210) --- HintList.py | 2 +- version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/HintList.py b/HintList.py index 8e6d60bdd..47628aa83 100644 --- a/HintList.py +++ b/HintList.py @@ -151,7 +151,7 @@ def getHintGroup(group, world): 'Bombchus (20)': (["plenty of mice bombs", "plenty of remote mines", "plenty of proximity mice", "plenty of wall crawlers", "plenty of trail blazers"], "Bombchus", 'item'), 'Deku Nuts (5)': (["some nuts", "some flashbangs", "some Sheik's ammo"], "some Deku Nuts", 'item'), 'Deku Nuts (10)': (["lots-o-nuts", "plenty of flashbangs", "plenty of Sheik's ammo"], "plenty of Deku Nuts", 'item'), - 'Deku Seeds (30)': (["catapult ammo", "lots-o-seeds"], "plenty of deku seeds", 'item'), + 'Deku Seeds (30)': (["catapult ammo", "lots-o-seeds"], "plenty of Deku Seeds", 'item'), 'Gold Skulltulla Token': (["proof of destruction", "an arachnid chip", "spider remains"], "a Golden Token", 'item'), '10 Big Poes': (["#Big Poes# leads to", "#ghost hunters# will be rewarded with"], None, 'alwaysLocation'), diff --git a/version.py b/version.py index 77191d253..f92e84234 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.20.27 f.LUM' +__version__ = '2.20.28 f.LUM' From a047c2d21483dfb064089c388d7a44db00d0022e Mon Sep 17 00:00:00 2001 From: BladefangFT <43603930+BladefangFT@users.noreply.github.com> Date: Tue, 9 Oct 2018 18:20:17 +0200 Subject: [PATCH 656/755] Update Settings.py --- Settings.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/Settings.py b/Settings.py index 865478958..eaf78f7be 100644 --- a/Settings.py +++ b/Settings.py @@ -793,6 +793,26 @@ def parse_custom_navi_color(s): are all reduced to 10 Rupees. ''' }), + Setting_Info('hard_scrubs', bool, 1, True, + { + 'help': '''\ + If this is checked, the deku scrub prices + will be their default amount as shown in + the text box. + ''', + 'action': 'store_true' + } + { + 'text': 'Harder Scrub Shuffle' + 'group' 'logic', + 'widget': 'Checkbutton', + 'default': 'unchecked', + 'tooltip':'''\ + With this option checked, the prices of + deku scrub items will not be lowered, + requiring more rupees to be obtained. + ''' + }), Setting_Info('shopsanity', str, 3, True, { 'default': 'off', From a3172e7d79278f77421f27e3d1527caab498651e Mon Sep 17 00:00:00 2001 From: BladefangFT <43603930+BladefangFT@users.noreply.github.com> Date: Tue, 9 Oct 2018 18:26:01 +0200 Subject: [PATCH 657/755] Update Settings.py --- Settings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Settings.py b/Settings.py index eaf78f7be..9499c442f 100644 --- a/Settings.py +++ b/Settings.py @@ -801,7 +801,7 @@ def parse_custom_navi_color(s): the text box. ''', 'action': 'store_true' - } + }, { 'text': 'Harder Scrub Shuffle' 'group' 'logic', From 49b4a92d4953f9797ddd8e2301bbab5b699e1335 Mon Sep 17 00:00:00 2001 From: BladefangFT <43603930+BladefangFT@users.noreply.github.com> Date: Tue, 9 Oct 2018 18:38:33 +0200 Subject: [PATCH 658/755] Update Settings.py --- Settings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Settings.py b/Settings.py index 9499c442f..85f8d1cf7 100644 --- a/Settings.py +++ b/Settings.py @@ -804,7 +804,7 @@ def parse_custom_navi_color(s): }, { 'text': 'Harder Scrub Shuffle' - 'group' 'logic', + 'group': 'logic', 'widget': 'Checkbutton', 'default': 'unchecked', 'tooltip':'''\ From 63108f8dfda3160e202bc507aa1ef77eaf05652d Mon Sep 17 00:00:00 2001 From: BladefangFT <43603930+BladefangFT@users.noreply.github.com> Date: Tue, 9 Oct 2018 18:40:59 +0200 Subject: [PATCH 659/755] Update Settings.py --- Settings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Settings.py b/Settings.py index 85f8d1cf7..c0d965ad1 100644 --- a/Settings.py +++ b/Settings.py @@ -803,7 +803,7 @@ def parse_custom_navi_color(s): 'action': 'store_true' }, { - 'text': 'Harder Scrub Shuffle' + 'text': 'Harder Scrub Shuffle', 'group': 'logic', 'widget': 'Checkbutton', 'default': 'unchecked', From dbb93657ec44e2813781fc36a0fabcbe93e07580 Mon Sep 17 00:00:00 2001 From: BladefangFT <43603930+BladefangFT@users.noreply.github.com> Date: Tue, 9 Oct 2018 18:44:08 +0200 Subject: [PATCH 660/755] Update Settings.py Added option to leave deku scrub prices alone, added dependency on scrub shuffle --- Settings.py | 1 + 1 file changed, 1 insertion(+) diff --git a/Settings.py b/Settings.py index c0d965ad1..39d785bc1 100644 --- a/Settings.py +++ b/Settings.py @@ -807,6 +807,7 @@ def parse_custom_navi_color(s): 'group': 'logic', 'widget': 'Checkbutton', 'default': 'unchecked', + 'dependency': lambda guivar: guivar['shuffle_scrubs'].get() == 'checked', 'tooltip':'''\ With this option checked, the prices of deku scrub items will not be lowered, From 81fe191648df7209d567c3e603908560225b7a9a Mon Sep 17 00:00:00 2001 From: BladefangFT <43603930+BladefangFT@users.noreply.github.com> Date: Tue, 9 Oct 2018 18:47:20 +0200 Subject: [PATCH 661/755] Update Settings.py --- Settings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Settings.py b/Settings.py index 39d785bc1..c05c189e1 100644 --- a/Settings.py +++ b/Settings.py @@ -807,7 +807,7 @@ def parse_custom_navi_color(s): 'group': 'logic', 'widget': 'Checkbutton', 'default': 'unchecked', - 'dependency': lambda guivar: guivar['shuffle_scrubs'].get() == 'checked', + 'dependency': lambda guivar: guivar['shuffle_scrubs'].get(), 'tooltip':'''\ With this option checked, the prices of deku scrub items will not be lowered, From 07649892c0736e6948cb097a600261e6b722e3c3 Mon Sep 17 00:00:00 2001 From: BladefangFT <43603930+BladefangFT@users.noreply.github.com> Date: Tue, 9 Oct 2018 19:18:52 +0200 Subject: [PATCH 662/755] add check for hard_scrubs --- Patches.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/Patches.py b/Patches.py index 481d5984e..b7d8fd2e5 100644 --- a/Patches.py +++ b/Patches.py @@ -1285,11 +1285,13 @@ def write_save_table(rom): scrub_items = [0x30, 0x31, 0x3E, 0x33, 0x34, 0x37, 0x38, 0x39, 0x3A, 0x77, 0x79] rom.seek_address(0xDF8684) for scrub_item in scrub_items: - rom.write_int16(None, 10) # Price - rom.write_int16(None, 1) # Count - rom.write_int32(None, scrub_item) # Item - rom.write_int32(None, 0x80A74FF8) # Can_Buy_Func - rom.write_int32(None, 0x80A75354) # Buy_Func + if not world.hard_scrubs: + rom.write_int16(None, 10) # Price + else: + rom.write_int16(None, 1) # Count + rom.write_int32(None, scrub_item) # Item + rom.write_int32(None, 0x80A74FF8) # Can_Buy_Func + rom.write_int32(None, 0x80A75354) # Buy_Func # update actor IDs set_deku_salesman_data(rom) From 32fd210ec9dac167506a9d17fffdaa9daacd2853 Mon Sep 17 00:00:00 2001 From: BladefangFT <43603930+BladefangFT@users.noreply.github.com> Date: Tue, 9 Oct 2018 19:23:37 +0200 Subject: [PATCH 663/755] Update Patches.py --- Patches.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/Patches.py b/Patches.py index b7d8fd2e5..a52d1830e 100644 --- a/Patches.py +++ b/Patches.py @@ -1287,11 +1287,10 @@ def write_save_table(rom): for scrub_item in scrub_items: if not world.hard_scrubs: rom.write_int16(None, 10) # Price - else: - rom.write_int16(None, 1) # Count - rom.write_int32(None, scrub_item) # Item - rom.write_int32(None, 0x80A74FF8) # Can_Buy_Func - rom.write_int32(None, 0x80A75354) # Buy_Func + rom.write_int16(None, 1) # Count + rom.write_int32(None, scrub_item) # Item + rom.write_int32(None, 0x80A74FF8) # Can_Buy_Func + rom.write_int32(None, 0x80A75354) # Buy_Func # update actor IDs set_deku_salesman_data(rom) From 3a6db4fd92924c92e82a87c1904a6fde35daf480 Mon Sep 17 00:00:00 2001 From: BladefangFT <43603930+BladefangFT@users.noreply.github.com> Date: Tue, 9 Oct 2018 19:55:45 +0200 Subject: [PATCH 664/755] Update Patches.py --- Patches.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Patches.py b/Patches.py index a52d1830e..f13c3b734 100644 --- a/Patches.py +++ b/Patches.py @@ -1285,8 +1285,10 @@ def write_save_table(rom): scrub_items = [0x30, 0x31, 0x3E, 0x33, 0x34, 0x37, 0x38, 0x39, 0x3A, 0x77, 0x79] rom.seek_address(0xDF8684) for scrub_item in scrub_items: - if not world.hard_scrubs: - rom.write_int16(None, 10) # Price + if world.hard_scrubs: + rom.read_int16(None) # skip Price + else: + rom.write_int16(None, 10) # Price rom.write_int16(None, 1) # Count rom.write_int32(None, scrub_item) # Item rom.write_int32(None, 0x80A74FF8) # Can_Buy_Func From 4ae21e94448a6af51b5bf833f7849d12e77490e3 Mon Sep 17 00:00:00 2001 From: BladefangFT <43603930+BladefangFT@users.noreply.github.com> Date: Tue, 9 Oct 2018 20:02:49 +0200 Subject: [PATCH 665/755] Update Patches.py --- Patches.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Patches.py b/Patches.py index f13c3b734..a04f180de 100644 --- a/Patches.py +++ b/Patches.py @@ -1286,7 +1286,7 @@ def write_save_table(rom): rom.seek_address(0xDF8684) for scrub_item in scrub_items: if world.hard_scrubs: - rom.read_int16(None) # skip Price + rom.read_int16(rom.last_address) # skip Price else: rom.write_int16(None, 10) # Price rom.write_int16(None, 1) # Count From 6b315cbc6cf89d058a38350d4ca5013f24c1179e Mon Sep 17 00:00:00 2001 From: AmazingAmpharos Date: Tue, 9 Oct 2018 19:12:42 -0500 Subject: [PATCH 666/755] Final minor trick additions Just a step on the last bits of polish for 3.0. --- README.md | 3 +++ Rules.py | 8 ++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index f9f9473e9..155f6d0c2 100644 --- a/README.md +++ b/README.md @@ -468,6 +468,8 @@ This setting allows a huge number of minor tricks to be allowed by the logic. He -A precise jumpslash with either a Deku Stick or the Kokiri Sword can be used to reach a Gold Skulltulla on some vines in standad Deku Tree. -The Bow can be used to knock down the stairs in Dodongo's Cavern with two well timed shots. -The vines in Forest Temple leading to where the well drain switch is in the standard form can be barely reached with the standard Hookshot. +-The well in Forest Temple can be crossed with just Hookshot by shooting as low as possible on the vines from the far side and swimming under +the ceiling. This is possible in both versions but can only be required in Forest Temple MQ. -A Bombchu from the ground level can be used to hit the switch to bypass the block pushing puzzle in Forest Temple MQ. -A rusted switch under a Song of Time block in the standard Fire Temple can be hit by using Hammer into the block. -The location with the Boss Key chest in Fire Temple MQ can be reached without the Bow with very particular use of Din's Fire. @@ -476,6 +478,7 @@ This setting allows a huge number of minor tricks to be allowed by the logic. He -The frozen switch in Spirit Temple MQ can be hit without a fire source by using the Bow and Song of Time very cleverly. -The chest in the basement of the standard Bottom of the Well can be reached with only a Strength Upgrade by using a jump slash with a lit Deku Stick to access the bomb flowers in the basement. +-The silver rupees on the left side of Gerudo Training Grounds MQ can be collected with just Hookshot with a somewhat particular jump slash. -The first room of the Spirit Trail in Ganon's Castle MQ can be cleared without the Bow by using a Hammer jump slash to hit the rusted switch through the thrones. -The Gold Skulltulla in adult Kokiri Forest can be reached without the Hookshot by using Hover Boots off one of the roots. diff --git a/Rules.py b/Rules.py index 049f93cff..d1583a49c 100644 --- a/Rules.py +++ b/Rules.py @@ -136,7 +136,7 @@ def global_rules(world): set_rule(world.get_entrance('Composer Grave'), lambda state: state.can_play('Zeldas Lullaby')) set_rule(world.get_location('Song from Composer Grave'), lambda state: state.is_adult() or (state.has_slingshot() or state.has('Boomerang') or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword'))) set_rule(world.get_location('Composer Grave Chest'), lambda state: state.has_fire_source()) - set_rule(world.get_entrance('Bottom of the Well'), lambda state: state.can_play('Song of Storms') and (world.dungeon_mq['BW'] or (state.has_slingshot() or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword') or state.can_use('Dins Fire')))) + set_rule(world.get_entrance('Bottom of the Well'), lambda state: state.can_play('Song of Storms') and (world.dungeon_mq['BW'] or state.can_child_attack() or state.has_nuts())) set_rule(world.get_entrance('Death Mountain Entrance'), lambda state: state.has('Zeldas Letter') or state.is_adult() or world.open_kakariko) set_rule(world.get_entrance('Dodongos Cavern Rocks'), lambda state: state.has_explosives() or state.has('Progressive Strength Upgrade') or state.is_adult()) set_rule(world.get_location('DM Trail Freestanding PoH'), lambda state: world.open_kakariko or (world.difficulty != 'ohko') or state.has('Zeldas Letter') or state.can_blast_or_smash() or state.can_use('Dins Fire') or state.can_use('Nayrus Love') or state.has_bow() or state.has('Progressive Strength Upgrade') or state.has_bottle() or state.has('Hover Boots')) @@ -532,7 +532,7 @@ def dung_rules_fotmq(world): set_rule(world.get_entrance('Forest Temple Crystal Switch Jump'), lambda state: (state.has_bombchus() and world.logic_tricks) or state.has('Progressive Strength Upgrade') or state.can_use('Hover Boots')) set_rule(world.get_entrance('Forest Temple Block Puzzle Solve'), lambda state: (state.has_bombchus() and world.logic_tricks) or state.has('Progressive Strength Upgrade')) set_rule(world.get_entrance('Forest Temple Twisted Hall'), lambda state: state.has('Small Key (Forest Temple)', 4)) - set_rule(world.get_entrance('Forest Temple Well Connection'), lambda state: state.can_use('Iron Boots') or state.can_use('Longshot') or state.has('Progressive Scale', 2)) + set_rule(world.get_entrance('Forest Temple Well Connection'), lambda state: state.can_use('Iron Boots') or state.can_use('Longshot') or state.has('Progressive Scale', 2) or (world.logic_tricks and state.can_use('Hookshot'))) set_rule(world.get_entrance('Forest Temple Webs'), lambda state: state.can_use('Fire Arrows')) set_rule(world.get_entrance('Forest Temple Climb to Top Ledges'), lambda state: state.can_use('Longshot') or state.can_use('Hover Boots') or state.can_play('Song of Time') or (world.logic_tricks and state.can_use('Hookshot'))) set_rule(world.get_entrance('Forest Temple Longshot to NE Outdoors Ledge'), lambda state: state.can_use('Longshot')) @@ -870,12 +870,12 @@ def dung_rules_gtg0(world): def dung_rules_gtgmq(world): set_rule(world.get_entrance('Gerudo Training Grounds Left Door'), lambda state: state.has_fire_source()) set_rule(world.get_entrance('Gerudo Training Grounds Right Door'), lambda state: state.has_bow()) - set_rule(world.get_entrance('Gerudo Training Grounds Longshot Target'), lambda state: state.can_use('Longshot')) + set_rule(world.get_entrance('Gerudo Training Grounds Longshot Target'), lambda state: state.can_use('Longshot') or (world.logic_tricks and state.can_use('Hookshot'))) set_rule(world.get_entrance('Gerudo Training Grounds Song of Time Block'), lambda state: state.can_play('Song of Time') and state.can_see_with_lens() and state.has_bottle()) set_rule(world.get_entrance('Gerudo Training Grounds Rusted Switch'), lambda state: state.has('Hammer')) set_rule(world.get_location('Gerudo Training Grounds MQ Hidden Ceiling Chest'), lambda state: state.can_see_with_lens()) set_rule(world.get_location('Gerudo Training Grounds MQ Maze Path Third Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 1)) - set_rule(world.get_location('Gerudo Training Grounds MQ Underwater Silver Rupee Chest'), lambda state: (state.has('Hover Boots') or state.can_reach('Gerudo Training Grounds Central Maze Right')) and state.has_fire_source() and state.has('Iron Boots') and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic()) and (world.difficulty != 'ohko' or (state.has_bottle() or state.can_use('Nayrus Love')))) + set_rule(world.get_location('Gerudo Training Grounds MQ Underwater Silver Rupee Chest'), lambda state: (state.has('Hover Boots') or (state.can_reach('Gerudo Training Grounds Central Maze Right') and (state.can_use('Longshot') or state.has_bow()))) and state.has_fire_source() and state.has('Iron Boots') and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic()) and (world.difficulty != 'ohko' or (state.has_bottle() or state.can_use('Nayrus Love')))) set_rule(world.get_location('Gerudo Training Grounds MQ Heavy Block Chest'), lambda state: state.can_use('Silver Gauntlets')) set_rule(world.get_location('Gerudo Training Grounds MQ Eye Statue Chest'), lambda state: state.has_bow()) set_rule(world.get_location('Gerudo Training Grounds MQ Ice Arrows Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 3) or (item_name(state, 'Gerudo Training Grounds MQ Ice Arrows Chest') == 'Small Key (Gerudo Training Grounds)' and state.has('Small Key (Gerudo Training Grounds)'))) From a8a1188b5d2e8d8a8b91316980ca824772d53641 Mon Sep 17 00:00:00 2001 From: Dennis Date: Wed, 10 Oct 2018 18:34:25 +0200 Subject: [PATCH 667/755] added random option to scrub shuffle prices converted scrub shuffle into a combo box --- ItemList.py | 3 +-- Patches.py | 31 ++++++++++++---------- README.md | 12 ++++----- Rules.py | 2 +- Settings.py | 76 ++++++++++++++++++++++++++++++----------------------- 5 files changed, 68 insertions(+), 56 deletions(-) diff --git a/ItemList.py b/ItemList.py index 394aa15a9..ccb38c9f7 100644 --- a/ItemList.py +++ b/ItemList.py @@ -683,8 +683,7 @@ def get_pool_core(world): else: pool.extend(shopsanity_rupees) - if world.shuffle_scrubs: - arrows_or_seeds = 0 + if not world.shuffle_scrubs == 'off': if world.dungeon_mq['DT']: pool.append('Deku Shield') if world.dungeon_mq['DC']: diff --git a/Patches.py b/Patches.py index a04f180de..fb7bd1a84 100644 --- a/Patches.py +++ b/Patches.py @@ -1280,15 +1280,28 @@ def write_save_table(rom): rom.write_int32(0x2DD802C, 0x03006A40) rom.write_int16s(0x2DDEA40, list(shop_objs)) - if world.shuffle_scrubs: + if world.shuffle_scrubs == 'off': + # Revert Deku Scrubs changes + rom.write_int32s(0xEBB85C, [ + 0x24010002, # addiu at, zero, 2 + 0x3C038012, # lui v1, 0x8012 + 0x14410004, # bne v0, at, 0xd8 + 0x2463A5D0, # addiu v1, v1, -0x5a30 + 0x94790EF0])# lhu t9, 0xef0(v1) + rom.write_int32(0xDF7CB0, + 0xA44F0EF0) # sh t7, 0xef0(v0) + else: # Rebuild Deku Salescrub Item Table scrub_items = [0x30, 0x31, 0x3E, 0x33, 0x34, 0x37, 0x38, 0x39, 0x3A, 0x77, 0x79] rom.seek_address(0xDF8684) for scrub_item in scrub_items: - if world.hard_scrubs: - rom.read_int16(rom.last_address) # skip Price + # Price + if world.shuffle_scrubs == 'low': + rom.write_int16(None, 10) + elif world.shuffle_scrubs == 'random': + rom.write_int16(None, random.randrange(10, 100)) else: - rom.write_int16(None, 10) # Price + rom.read_int16(rom.last_address) # just read instead of overwriting for regular rom.write_int16(None, 1) # Count rom.write_int32(None, scrub_item) # Item rom.write_int32(None, 0x80A74FF8) # Can_Buy_Func @@ -1296,16 +1309,6 @@ def write_save_table(rom): # update actor IDs set_deku_salesman_data(rom) - else: - # Revert Deku Scrubs changes - rom.write_int32s(0xEBB85C, [ - 0x24010002, # addiu at, zero, 2 - 0x3C038012, # lui v1, 0x8012 - 0x14410004, # bne v0, at, 0xd8 - 0x2463A5D0, # addiu v1, v1, -0x5a30 - 0x94790EF0])# lhu t9, 0xef0(v1) - rom.write_int32(0xDF7CB0, - 0xA44F0EF0) # sh t7, 0xef0(v0) # Update grotto id data set_grotto_id_data(rom) diff --git a/README.md b/README.md index f9f9473e9..eb9c8e7d1 100644 --- a/README.md +++ b/README.md @@ -776,7 +776,7 @@ Set the count option (default: None) --world_count WORLD_COUNT ``` -Use to create a multi-world generation for co-op seeds. World count is the number of players. +Use to create a multi-world generation for co-op seeds. World count is the number of players. Warning: Increasing the world count will drastically increase generation time. (default: 1) ``` @@ -795,9 +795,9 @@ Output a Spoiler File (default: False) --compress_rom [{True,False,None}] ``` -Create a compressed version of the output rom file. -True: Compresses. Improves stability. Will take longer to generate -False: Uncompressed. Unstable on emulator. Faster generation +Create a compressed version of the output rom file. +True: Compresses. Improves stability. Will take longer to generate +False: Uncompressed. Unstable on emulator. Faster generation None: No ROM Output. Creates spoiler log only (default: True) ``` @@ -945,10 +945,10 @@ Treat the ocarina songs as normal items and shuffle them into the general item p Include the Gerudo Card to access Gerudo Training Grounds as a randomized item (default: False) ``` ---shuffle_scrubs +--shuffle_scrubs [{off,low,regular,random}] ``` -Include all Deku Scrub Salesmen as randomized item locations (default: False) +Include all Deku Scrub Salesmen as randomized item and determine their prices (default: off) ``` --shopsanity [{off,0,1,2,3,4,random}] diff --git a/Rules.py b/Rules.py index b902607ca..c64ca2b02 100644 --- a/Rules.py +++ b/Rules.py @@ -275,7 +275,7 @@ def global_rules(world): set_rule(world.get_location('GS Kokiri Bean Patch'), lambda state: state.has_bottle() and state.can_child_attack() and (state.can_leave_forest() or state.has('Kokiri Sword') or state.has_sticks() or state.has('Boomerang') or state.has_explosives() or state.has('Buy Bottle Bug'))) set_rule(world.get_location('GS Kokiri House of Twins'), lambda state: (state.can_use('Hookshot') or (world.logic_tricks and state.can_use('Hover Boots'))) and state.nighttime()) set_rule(world.get_location('GS Lost Woods Bean Patch Near Bridge'), lambda state: state.has_bottle() and state.can_child_attack() and (state.can_leave_forest() or state.has('Kokiri Sword') or state.has_sticks() or state.has('Boomerang') or state.has_explosives() or state.has('Buy Bottle Bug'))) - set_rule(world.get_location('GS Lost Woods Bean Patch Near Stage'), lambda state: state.has_bottle() and (state.can_child_attack() or (not world.shuffle_scrubs and state.has('Buy Deku Shield'))) and (state.can_leave_forest() or state.has('Kokiri Sword') or state.has_sticks() or state.has('Boomerang') or state.has_explosives() or state.has('Buy Bottle Bug'))) + set_rule(world.get_location('GS Lost Woods Bean Patch Near Stage'), lambda state: state.has_bottle() and (state.can_child_attack() or (world.shuffle_scrubs == 'off' and state.has('Buy Deku Shield'))) and (state.can_leave_forest() or state.has('Kokiri Sword') or state.has_sticks() or state.has('Boomerang') or state.has_explosives() or state.has('Buy Bottle Bug'))) set_rule(world.get_location('GS Lost Woods Above Stage'), lambda state: state.can_use('Magic Bean') and state.nighttime()) set_rule(world.get_location('GS Sacred Forest Meadow'), lambda state: state.can_use('Hookshot') and state.nighttime()) set_rule(world.get_location('GS Hyrule Field near Kakariko'), lambda state: (state.has('Boomerang') and state.has_explosives()) or state.can_use('Hookshot')) diff --git a/Settings.py b/Settings.py index c05c189e1..68dc244cb 100644 --- a/Settings.py +++ b/Settings.py @@ -774,46 +774,56 @@ def parse_custom_navi_color(s): effectively the Boss Key of Gerudo Fortress. ''' }), - Setting_Info('shuffle_scrubs', bool, 1, True, - { - 'help': '''\ - All Deku Scrub Salesmen will give a random item. - ''', - 'action': 'store_true' - }, - { - 'text': 'Shuffle Deku Salescrubs', - 'group': 'logic', - 'widget': 'Checkbutton', - 'default': 'unchecked', - 'tooltip':'''\ - Each Deku Scrub Salesman will give - a random item. Vanilla OoT has 36 - Deku Scrub Salesmen. The prices - are all reduced to 10 Rupees. - ''' - }), - Setting_Info('hard_scrubs', bool, 1, True, + Setting_Info('shuffle_scrubs', str, 3, True, { + 'default': 'off', + 'const': 'off', + 'nargs': '?', 'help': '''\ - If this is checked, the deku scrub prices - will be their default amount as shown in - the text box. - ''', - 'action': 'store_true' + Deku Scrub Salesmen are randomized: + off: Only the 3 Scrubs that give actual items in + the vanilla game will have random items. + low: All Scrubs will have random items and their + prices will be reduced to 10 rupees each. + regular: All Scrubs will have random items and each + of them will demand their vanilla prices. + random: All Scrubs will have random items and their + price will also be random between 10-99 rupees. + ''' }, { - 'text': 'Harder Scrub Shuffle', + 'text': 'Scrub Shuffle', 'group': 'logic', - 'widget': 'Checkbutton', - 'default': 'unchecked', - 'dependency': lambda guivar: guivar['shuffle_scrubs'].get(), + 'widget': 'Combobox', + 'default': 'Off', + 'options': { + 'Off': 'off', + 'Low Prices': 'low', + 'Regular Prices': 'regular', + 'Random Prices': 'random', + }, 'tooltip':'''\ - With this option checked, the prices of - deku scrub items will not be lowered, - requiring more rupees to be obtained. + Select how you want Deku Scrub Salesmen + to be shuffled: + + 'Off': Only the 3 Scrubs that give actual + items in the vanilla game (PoH, nut + capacity, and stick capacity) will have + random items. + + 'Low Prices': All Scrubs will have random + items, but their prices will be reduced + to 10 rupees each. + + 'Regular Prices': All Scrubs will have + random items and each of them will demand + their vanilla prices. + + 'Random Prices': All Scrubs will have + random items, and their price will also + be random between 10-99 rupees. ''' - }), + }), Setting_Info('shopsanity', str, 3, True, { 'default': 'off', From b98a0b9d437dd6bf33c0147df07bc1b3c8664bd4 Mon Sep 17 00:00:00 2001 From: Zeimyth Date: Wed, 10 Oct 2018 13:09:46 -0600 Subject: [PATCH 668/755] Break up lengthy rules onto multiple lines --- Rules.py | 2048 +++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 1661 insertions(+), 387 deletions(-) diff --git a/Rules.py b/Rules.py index b902607ca..9c642e3a7 100644 --- a/Rules.py +++ b/Rules.py @@ -7,13 +7,34 @@ def set_rules(world): if world.bridge == 'medallions': # require all medallions to form the bridge - set_rule(world.get_entrance('Rainbow Bridge'), lambda state: state.has('Forest Medallion') and state.has('Fire Medallion') and state.has('Water Medallion') and state.has('Shadow Medallion') and state.has('Spirit Medallion') and state.has('Light Medallion')) + set_rule( + world.get_entrance('Rainbow Bridge'), + lambda state: state.has('Forest Medallion') and + state.has('Fire Medallion') and + state.has('Water Medallion') and + state.has('Shadow Medallion') and + state.has('Spirit Medallion') and + state.has('Light Medallion')) elif world.bridge == 'vanilla': # require only what vanilla did to form the bridge - set_rule(world.get_entrance('Rainbow Bridge'), lambda state: state.has('Light Arrows') and state.has('Shadow Medallion') and state.has('Spirit Medallion')) + set_rule( + world.get_entrance('Rainbow Bridge'), + lambda state: state.has('Light Arrows') and + state.has('Shadow Medallion') and + state.has('Spirit Medallion')) elif world.bridge == 'dungeons': # require all medallions and stones to form the bridge - set_rule(world.get_entrance('Rainbow Bridge'), lambda state: state.has('Forest Medallion') and state.has('Fire Medallion') and state.has('Water Medallion') and state.has('Shadow Medallion') and state.has('Spirit Medallion') and state.has('Light Medallion') and state.has('Kokiri Emerald') and state.has('Goron Ruby') and state.has('Zora Sapphire')) + set_rule( + world.get_entrance('Rainbow Bridge'), + lambda state: state.has('Forest Medallion') and + state.has('Fire Medallion') and + state.has('Water Medallion') and + state.has('Shadow Medallion') and + state.has('Spirit Medallion') and + state.has('Light Medallion') and + state.has('Kokiri Emerald') and + state.has('Goron Ruby') and + state.has('Zora Sapphire')) def set_rule(spot, rule): @@ -116,41 +137,136 @@ def global_rules(world): dung_rules_gc0(world) # overworld requirements - set_rule(world.get_location('Deku Baba Sticks'), lambda state: (state.has('Kokiri Sword') and state.has('Buy Deku Shield')) or (world.open_forest and (state.is_adult() or state.has('Kokiri Sword') or state.has('Boomerang')))) - set_rule(world.get_location('Deku Baba Nuts'), lambda state: (state.has('Kokiri Sword') and state.has('Buy Deku Shield')) or (world.open_forest and (state.is_adult() or state.has_slingshot() or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword') or state.can_use('Dins Fire')))) - set_rule(world.get_entrance('Deku Tree'), lambda state: (state.has('Kokiri Sword') and state.has('Buy Deku Shield')) or world.open_forest) + set_rule( + world.get_location('Deku Baba Sticks'), + lambda state: (state.has('Kokiri Sword') and state.has('Buy Deku Shield')) or + (world.open_forest and (state.is_adult() or state.has('Kokiri Sword') or state.has('Boomerang')))) + set_rule( + world.get_location('Deku Baba Nuts'), + lambda state: (state.has('Kokiri Sword') and state.has('Buy Deku Shield')) or + (world.open_forest and + (state.is_adult() or + state.has_slingshot() or + state.has_sticks() or + state.has_explosives() or + state.has('Kokiri Sword') or + state.can_use('Dins Fire')))) + set_rule( + world.get_entrance('Deku Tree'), + lambda state: (state.has('Kokiri Sword') and state.has('Buy Deku Shield')) or world.open_forest) set_rule(world.get_entrance('Lost Woods Bridge'), lambda state: state.can_leave_forest()) set_rule(world.get_location('Skull Kid'), lambda state: state.can_play('Sarias Song')) - set_rule(world.get_location('Ocarina Memory Game'), lambda state: (not world.logic_no_memory_game) and state.has_ocarina()) + set_rule( + world.get_location('Ocarina Memory Game'), + lambda state: (not world.logic_no_memory_game) and state.has_ocarina()) set_rule(world.get_location('Target in Woods'), lambda state: state.has_slingshot()) - set_rule(world.get_location('Deku Theater Skull Mask'), lambda state: (not world.logic_no_trade_skull_mask) and state.has('Zeldas Letter')) - set_rule(world.get_location('Deku Theater Mask of Truth'), lambda state: (not world.logic_no_trade_mask_of_truth) and (state.has('Zeldas Letter') and state.can_play('Sarias Song') and state.has('Kokiri Emerald') and state.has('Goron Ruby') and state.has('Zora Sapphire') and state.guarantee_hint())) #Must befriend Skull Kid to sell Skull Mask, all stones to spawn running man. + set_rule( + world.get_location('Deku Theater Skull Mask'), + lambda state: (not world.logic_no_trade_skull_mask) and state.has('Zeldas Letter')) + set_rule( + world.get_location('Deku Theater Mask of Truth'), + lambda state: (not world.logic_no_trade_mask_of_truth) and + (state.has('Zeldas Letter') and + state.can_play('Sarias Song') and + state.has('Kokiri Emerald') and + state.has('Goron Ruby') and + state.has('Zora Sapphire') and + state.guarantee_hint())) #Must befriend Skull Kid to sell Skull Mask, all stones to spawn running man. set_rule(world.get_location('Anju as Adult'), lambda state: state.is_adult()) set_rule(world.get_location('Man on Roof'), lambda state: world.logic_man_on_roof or state.can_use('Hookshot')) - set_rule(world.get_location('10 Gold Skulltulla Reward'), lambda state: (expected_skulltulas >= 10) and state.has('Gold Skulltulla Token', 10)) - set_rule(world.get_location('20 Gold Skulltulla Reward'), lambda state: (expected_skulltulas >= 20) and state.has('Gold Skulltulla Token', 20)) - set_rule(world.get_location('30 Gold Skulltulla Reward'), lambda state: (expected_skulltulas >= 30) and state.has('Gold Skulltulla Token', 30) and state.guarantee_hint()) - set_rule(world.get_location('40 Gold Skulltulla Reward'), lambda state: (expected_skulltulas >= 40) and state.has('Gold Skulltulla Token', 40) and state.guarantee_hint()) - set_rule(world.get_location('50 Gold Skulltulla Reward'), lambda state: (expected_skulltulas >= 50) and state.has('Gold Skulltulla Token', 50) and state.guarantee_hint()) + set_rule( + world.get_location('10 Gold Skulltulla Reward'), + lambda state: (expected_skulltulas >= 10) and state.has('Gold Skulltulla Token', 10)) + set_rule( + world.get_location('20 Gold Skulltulla Reward'), + lambda state: (expected_skulltulas >= 20) and state.has('Gold Skulltulla Token', 20)) + set_rule( + world.get_location('30 Gold Skulltulla Reward'), + lambda state: (expected_skulltulas >= 30) and state.has('Gold Skulltulla Token', 30) and state.guarantee_hint()) + set_rule( + world.get_location('40 Gold Skulltulla Reward'), + lambda state: (expected_skulltulas >= 40) and state.has('Gold Skulltulla Token', 40) and state.guarantee_hint()) + set_rule( + world.get_location('50 Gold Skulltulla Reward'), + lambda state: (expected_skulltulas >= 50) and state.has('Gold Skulltulla Token', 50) and state.guarantee_hint()) set_rule(world.get_location('Heart Piece Grave Chest'), lambda state: state.can_play('Suns Song')) set_rule(world.get_entrance('Composer Grave'), lambda state: state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('Song from Composer Grave'), lambda state: state.is_adult() or (state.has_slingshot() or state.has('Boomerang') or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword'))) + set_rule( + world.get_location('Song from Composer Grave'), + lambda state: state.is_adult() or + (state.has_slingshot() or + state.has('Boomerang') or + state.has_sticks() or + state.has_explosives() or + state.has('Kokiri Sword'))) set_rule(world.get_location('Composer Grave Chest'), lambda state: state.has_fire_source()) - set_rule(world.get_entrance('Bottom of the Well'), lambda state: state.can_play('Song of Storms') and (world.dungeon_mq['BW'] or (state.has_slingshot() or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword') or state.can_use('Dins Fire')))) - set_rule(world.get_entrance('Death Mountain Entrance'), lambda state: state.has('Zeldas Letter') or state.is_adult() or world.open_kakariko) - set_rule(world.get_entrance('Dodongos Cavern Rocks'), lambda state: state.has_explosives() or state.has('Progressive Strength Upgrade') or state.is_adult()) - set_rule(world.get_location('DM Trail Freestanding PoH'), lambda state: world.open_kakariko or (world.difficulty != 'ohko') or state.has('Zeldas Letter') or state.can_blast_or_smash() or state.can_use('Dins Fire') or state.can_use('Nayrus Love') or state.has_bow() or state.has('Progressive Strength Upgrade') or state.has_bottle() or state.has('Hover Boots')) - set_rule(world.get_location('Death Mountain Bombable Chest'), lambda state: state.can_blast_or_smash() or (world.logic_tricks and state.has('Progressive Strength Upgrade'))) - set_rule(world.get_location('Biggoron'), lambda state: (not world.logic_no_trade_biggoron) and state.is_adult() and state.can_finish_adult_trades() and state.guarantee_hint()) - set_rule(world.get_location('Goron City Leftmost Maze Chest'), lambda state: state.can_use('Hammer') or state.can_use('Silver Gauntlets')) - set_rule(world.get_location('Goron City Left Maze Chest'), lambda state: state.can_blast_or_smash() or state.can_use('Silver Gauntlets')) - set_rule(world.get_location('Goron City Right Maze Chest'), lambda state: state.can_blast_or_smash() or state.can_use('Silver Gauntlets')) - set_rule(world.get_location('Rolling Goron as Child'), lambda state: state.has('Bomb Bag') and state.has_explosives()) - set_rule(world.get_location('Goron City Pot Freestanding PoH'), lambda state: (state.has_bombs() or state.has('Progressive Strength Upgrade')) and ((state.can_play('Zeldas Lullaby') and state.has_sticks()) or state.can_use('Dins Fire'))) + set_rule( + world.get_entrance('Bottom of the Well'), + lambda state: state.can_play('Song of Storms') and + (world.dungeon_mq['BW'] or + (state.has_slingshot() or + state.has_sticks() or + state.has_explosives() or + state.has('Kokiri Sword') or + state.can_use('Dins Fire')))) + set_rule( + world.get_entrance('Death Mountain Entrance'), + lambda state: state.has('Zeldas Letter') or state.is_adult() or world.open_kakariko) + set_rule( + world.get_entrance('Dodongos Cavern Rocks'), + lambda state: state.has_explosives() or state.has('Progressive Strength Upgrade') or state.is_adult()) + set_rule( + world.get_location('DM Trail Freestanding PoH'), + lambda state: world.open_kakariko or + (world.difficulty != 'ohko') or + state.has('Zeldas Letter') or + state.can_blast_or_smash() or + state.can_use('Dins Fire') or + state.can_use('Nayrus Love') or + state.has_bow() or + state.has('Progressive Strength Upgrade') or + state.has_bottle() or + state.has('Hover Boots')) + set_rule( + world.get_location('Death Mountain Bombable Chest'), + lambda state: state.can_blast_or_smash() or (world.logic_tricks and state.has('Progressive Strength Upgrade'))) + set_rule( + world.get_location('Biggoron'), + lambda state: (not world.logic_no_trade_biggoron) and + state.is_adult() and + state.can_finish_adult_trades() and + state.guarantee_hint()) + set_rule( + world.get_location('Goron City Leftmost Maze Chest'), + lambda state: state.can_use('Hammer') or state.can_use('Silver Gauntlets')) + set_rule( + world.get_location('Goron City Left Maze Chest'), + lambda state: state.can_blast_or_smash() or + state.can_use('Silver Gauntlets')) + set_rule( + world.get_location('Goron City Right Maze Chest'), + lambda state: state.can_blast_or_smash() or state.can_use('Silver Gauntlets')) + set_rule( + world.get_location('Rolling Goron as Child'), + lambda state: state.has('Bomb Bag') and state.has_explosives()) + set_rule( + world.get_location('Goron City Pot Freestanding PoH'), + lambda state: (state.has_bombs() or state.has('Progressive Strength Upgrade')) and + ((state.can_play('Zeldas Lullaby') and state.has_sticks()) or state.can_use('Dins Fire'))) set_rule(world.get_entrance('Darunias Chamber'), lambda state: state.can_play('Zeldas Lullaby')) set_rule(world.get_location('Darunias Joy'), lambda state: state.can_play('Sarias Song')) - set_rule(world.get_location('Goron City Stick Pot'), lambda state: world.open_kakariko or state.has('Zeldas Letter') or state.has_explosives() or state.can_use('Dins Fire')) - set_rule(world.get_entrance('Goron City from Woods'), lambda state: (state.can_blast_or_smash() or state.can_use('Dins Fire') or ((state.has_bow() or state.has('Progressive Strength Upgrade')) and state.is_adult())) and state.can_leave_forest()) + set_rule( + world.get_location('Goron City Stick Pot'), + lambda state: world.open_kakariko or + state.has('Zeldas Letter') or + state.has_explosives() or + state.can_use('Dins Fire')) + set_rule( + world.get_entrance('Goron City from Woods'), + lambda state: (state.can_blast_or_smash() or + state.can_use('Dins Fire') or + ((state.has_bow() or state.has('Progressive Strength Upgrade')) and state.is_adult())) and + state.can_leave_forest()) set_rule(world.get_location('Song from Saria'), lambda state: state.has('Zeldas Letter')) set_rule(world.get_entrance('Mountain Summit Fairy'), lambda state: state.can_blast_or_smash()) set_rule(world.get_location('Crater Fairy Reward'), lambda state: state.can_play('Zeldas Lullaby')) @@ -165,97 +281,242 @@ def global_rules(world): set_rule(world.get_location('Bombchu Bowling Bomb Bag'), lambda state: state.has_bombchus()) set_rule(world.get_location('Bombchu Bowling Piece of Heart'), lambda state: state.has_bombchus()) set_rule(world.get_location('Adult Shooting Gallery'), lambda state: state.has('Bow') and state.is_adult()) - set_rule(world.get_location('10 Big Poes'), lambda state: (not world.logic_no_big_poes) and state.is_adult() and ((state.can_use('Bow') and state.has('Epona') and state.has_bottle() and state.guarantee_hint()) or state.has('Bottle with Big Poe', world.big_poe_count))) + set_rule( + world.get_location('10 Big Poes'), + lambda state: (not world.logic_no_big_poes) and + state.is_adult() and + ((state.can_use('Bow') and + state.has('Epona') and + state.has_bottle() and + state.guarantee_hint()) or + state.has('Bottle with Big Poe', world.big_poe_count))) set_rule(world.get_location('Treasure Chest Game'), lambda state: state.can_use('Lens of Truth')) set_rule(world.get_entrance('Lost Woods Dive Warp'), lambda state: state.can_dive() and state.can_leave_forest()) set_rule(world.get_entrance('Zora River Dive Warp'), lambda state: state.can_dive()) set_rule(world.get_entrance('Lake Hylia Dive Warp'), lambda state: state.can_dive()) set_rule(world.get_entrance('Zoras Domain Dive Warp'), lambda state: state.can_dive()) - set_rule(world.get_entrance('Zora River Waterfall'), lambda state: state.can_play('Zeldas Lullaby') or world.logic_zora_with_cucco) + set_rule( + world.get_entrance('Zora River Waterfall'), + lambda state: state.can_play('Zeldas Lullaby') or world.logic_zora_with_cucco) set_rule(world.get_entrance('Zora River Rocks'), lambda state: state.has_explosives()) - set_rule(world.get_location('Zora River Lower Freestanding PoH'), lambda state: state.has_explosives() or state.can_dive() or state.can_use('Hover Boots')) - set_rule(world.get_location('Zora River Upper Freestanding PoH'), lambda state: state.has_explosives() or state.can_dive() or state.can_use('Hover Boots')) - set_rule(world.get_location('Frog Ocarina Game'), lambda state: state.can_play('Zeldas Lullaby') and state.can_play('Sarias Song') and state.can_play('Suns Song') and state.can_play('Eponas Song') and state.can_play('Song of Time') and state.can_play('Song of Storms')) + set_rule( + world.get_location('Zora River Lower Freestanding PoH'), + lambda state: state.has_explosives() or state.can_dive() or state.can_use('Hover Boots')) + set_rule( + world.get_location('Zora River Upper Freestanding PoH'), + lambda state: state.has_explosives() or state.can_dive() or state.can_use('Hover Boots')) + set_rule( + world.get_location('Frog Ocarina Game'), + lambda state: state.can_play('Zeldas Lullaby') and + state.can_play('Sarias Song') and + state.can_play('Suns Song') and + state.can_play('Eponas Song') and + state.can_play('Song of Time') and + state.can_play('Song of Storms')) set_rule(world.get_location('Frogs in the Rain'), lambda state: state.can_play('Song of Storms')) set_rule(world.get_location('Underwater Bottle'), lambda state: state.can_dive()) set_rule(world.get_location('King Zora Moves'), lambda state: state.has('Bottle with Letter')) set_rule(world.get_entrance('Behind King Zora'), lambda state: state.has('Bottle with Letter')) set_rule(world.get_entrance('Zora River Adult'), lambda state: state.is_adult()) - set_rule(world.get_entrance('Zoras Domain Adult Access'), lambda state: state.can_play('Zeldas Lullaby') or (state.has('Hover Boots') and world.logic_zora_with_hovers)) + set_rule( + world.get_entrance('Zoras Domain Adult Access'), + lambda state: state.can_play('Zeldas Lullaby') or (state.has('Hover Boots') and world.logic_zora_with_hovers)) set_rule(world.get_entrance('Zoras Fountain Adult Access'), lambda state: state.can_reach('Zoras Fountain')) set_rule(world.get_location('Zoras Domain Torch Run'), lambda state: state.has_sticks()) set_rule(world.get_entrance('Jabu Jabus Belly'), lambda state: state.has_bottle()) set_rule(world.get_entrance('Zoras Fountain Fairy'), lambda state: state.has_explosives()) set_rule(world.get_location('Zoras Fountain Fairy Reward'), lambda state: state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('Ocarina of Time'), lambda state: state.has('Kokiri Emerald') and state.has('Goron Ruby') and state.has('Zora Sapphire') and state.guarantee_hint()) - set_rule(world.get_location('Song from Ocarina of Time'), lambda state: state.has('Kokiri Emerald') and state.has('Goron Ruby') and state.has('Zora Sapphire') and state.guarantee_hint()) - set_rule(world.get_entrance('Door of Time'), lambda state: state.can_play('Song of Time') or world.open_door_of_time) + set_rule( + world.get_location('Ocarina of Time'), + lambda state: state.has('Kokiri Emerald') and + state.has('Goron Ruby') and + state.has('Zora Sapphire') and + state.guarantee_hint()) + set_rule( + world.get_location('Song from Ocarina of Time'), + lambda state: state.has('Kokiri Emerald') and + state.has('Goron Ruby') and + state.has('Zora Sapphire') and + state.guarantee_hint()) + set_rule( + world.get_entrance('Door of Time'), + lambda state: state.can_play('Song of Time') or world.open_door_of_time) set_rule(world.get_location('Talons Chickens'), lambda state: state.has('Zeldas Letter')) set_rule(world.get_location('Song from Malon'), lambda state: state.has('Zeldas Letter') and state.has_ocarina()) set_rule(world.get_location('Epona'), lambda state: state.can_play('Eponas Song') and state.is_adult()) - set_rule(world.get_entrance('Adult Forest Warp Pad'), lambda state: state.can_play('Minuet of Forest') and state.is_adult()) + set_rule( + world.get_entrance('Adult Forest Warp Pad'), + lambda state: state.can_play('Minuet of Forest') and state.is_adult()) set_rule(world.get_entrance('Child Forest Warp Pad'), lambda state: state.can_play('Minuet of Forest')) - set_rule(world.get_entrance('Meadow Gate'), lambda state: state.has_slingshot() or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword') or state.can_use('Dins Fire')) - set_rule(world.get_entrance('Adult Meadow Access'), lambda state: state.can_play('Sarias Song') and state.is_adult()) + set_rule( + world.get_entrance('Meadow Gate'), + lambda state: state.has_slingshot() or + state.has_sticks() or + state.has_explosives() or + state.has('Kokiri Sword') or + state.can_use('Dins Fire')) + set_rule( + world.get_entrance('Adult Meadow Access'), + lambda state: state.can_play('Sarias Song') and state.is_adult()) set_rule(world.get_entrance('Forest Temple Entrance'), lambda state: state.can_use('Hookshot')) set_rule(world.get_entrance('Dampes Grave'), lambda state: state.is_adult()) set_rule(world.get_location('Dampe Race Freestanding PoH'), lambda state: not world.logic_no_second_dampe_race) - set_rule(world.get_location('Graveyard Freestanding PoH'), lambda state: state.can_use('Magic Bean') or state.can_use('Longshot')) + set_rule( + world.get_location('Graveyard Freestanding PoH'), + lambda state: state.can_use('Magic Bean') or state.can_use('Longshot')) set_rule(world.get_location('Song at Windmill'), lambda state: state.is_adult() and state.has_ocarina()) - set_rule(world.get_location('Windmill Freestanding PoH'), lambda state: (state.is_adult() and (world.logic_windmill_poh or state.can_play('Song of Time'))) or state.has('Boomerang')) - set_rule(world.get_entrance('Temple Warp Pad'), lambda state: state.can_play('Prelude of Light') and state.can_leave_forest()) + set_rule( + world.get_location('Windmill Freestanding PoH'), + lambda state: (state.is_adult() and (world.logic_windmill_poh or state.can_play('Song of Time'))) or + state.has('Boomerang')) + set_rule( + world.get_entrance('Temple Warp Pad'), + lambda state: state.can_play('Prelude of Light') and state.can_leave_forest()) set_rule(world.get_location('Sheik at Temple'), lambda state: state.has('Forest Medallion') and state.is_adult()) set_rule(world.get_location('Diving in the Lab'), lambda state: state.has('Progressive Scale', 2)) - set_rule(world.get_location('Child Fishing'), lambda state: (not world.logic_no_child_fishing) and state.has('Kokiri Sword')) - set_rule(world.get_location('Adult Fishing'), lambda state: (not world.logic_no_adult_fishing) and (state.can_use('Scarecrow') or state.can_use('Magic Bean') or state.can_reach(world.get_location('Morpha')))) - set_rule(world.get_location('Lake Hylia Freestanding PoH'), lambda state: state.can_use('Scarecrow') or state.can_use('Magic Bean')) - set_rule(world.get_location('Lake Hylia Sun'), lambda state: (state.can_use('Distant Scarecrow') or state.can_reach(world.get_location('Morpha'))) and state.can_use('Bow')) + set_rule( + world.get_location('Child Fishing'), + lambda state: (not world.logic_no_child_fishing) and state.has('Kokiri Sword')) + set_rule( + world.get_location('Adult Fishing'), + lambda state: (not world.logic_no_adult_fishing) and + (state.can_use('Scarecrow') or + state.can_use('Magic Bean') or + state.can_reach(world.get_location('Morpha')))) + set_rule( + world.get_location('Lake Hylia Freestanding PoH'), + lambda state: state.can_use('Scarecrow') or state.can_use('Magic Bean')) + set_rule( + world.get_location('Lake Hylia Sun'), + lambda state: (state.can_use('Distant Scarecrow') or state.can_reach(world.get_location('Morpha'))) and + state.can_use('Bow')) set_rule(world.get_entrance('Crater Hover Boots'), lambda state: state.can_use('Hover Boots')) set_rule(world.get_entrance('Crater Ascent'), lambda state: state.is_adult()) set_rule(world.get_entrance('Crater Scarecrow'), lambda state: state.can_use('Distant Scarecrow')) set_rule(world.get_entrance('Crater Bridge'), lambda state: state.can_use('Hover Boots') or state.can_use('Hookshot')) - set_rule(world.get_entrance('Crater Bridge Reverse'), lambda state: state.can_use('Hover Boots') or state.can_use('Hookshot') or state.can_use('Magic Bean')) - set_rule(world.get_entrance('Crater Warp Pad'), lambda state: state.can_play('Bolero of Fire') and state.can_leave_forest()) + set_rule( + world.get_entrance('Crater Bridge Reverse'), + lambda state: state.can_use('Hover Boots') or state.can_use('Hookshot') or state.can_use('Magic Bean')) + set_rule( + world.get_entrance('Crater Warp Pad'), + lambda state: state.can_play('Bolero of Fire') and state.can_leave_forest()) set_rule(world.get_entrance('Crater Fairy'), lambda state: state.can_use('Hammer')) - set_rule(world.get_location('DM Crater Volcano Freestanding PoH'), lambda state: (state.can_use('Magic Bean') and state.can_play('Bolero of Fire')) or (world.logic_crater_bean_poh_with_hovers and state.can_use('Hover Boots'))) - set_rule(world.get_entrance('Fire Temple Entrance'), lambda state: state.is_adult() and (world.logic_fewer_tunic_requirements or state.has_GoronTunic())) + set_rule( + world.get_location('DM Crater Volcano Freestanding PoH'), + lambda state: (state.can_use('Magic Bean') and state.can_play('Bolero of Fire')) or + (world.logic_crater_bean_poh_with_hovers and state.can_use('Hover Boots'))) + set_rule( + world.get_entrance('Fire Temple Entrance'), + lambda state: state.is_adult() and (world.logic_fewer_tunic_requirements or state.has_GoronTunic())) set_rule(world.get_location('Sheik in Crater'), lambda state: state.is_adult()) - set_rule(world.get_location('Link the Goron'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade') or state.has_explosives() or state.has_bow())) - set_rule(world.get_entrance('Crater Access'), lambda state: state.is_adult() and (state.has('Progressive Strength Upgrade') or state.has_explosives() or state.has_bow())) - set_rule(world.get_entrance('Goron Shop'), lambda state: state.has_explosives() or state.has('Progressive Strength Upgrade') or state.can_use('Bow') or state.can_use('Dins Fire') or ((state.has('Zeldas Letter') or world.open_kakariko or state.can_use('Hammer')) and (state.can_play('Zeldas Lullaby') and state.has_sticks()))) - set_rule(world.get_entrance('Lake Warp Pad'), lambda state: state.can_play('Serenade of Water') and state.can_leave_forest()) + set_rule( + world.get_location('Link the Goron'), + lambda state: state.is_adult() and + (state.has('Progressive Strength Upgrade') or state.has_explosives() or state.has_bow())) + set_rule( + world.get_entrance('Crater Access'), + lambda state: state.is_adult() and + (state.has('Progressive Strength Upgrade') or state.has_explosives() or state.has_bow())) + set_rule( + world.get_entrance('Goron Shop'), + lambda state: state.has_explosives() or + state.has('Progressive Strength Upgrade') or + state.can_use('Bow') or + state.can_use('Dins Fire') or + ((state.has('Zeldas Letter') or world.open_kakariko or state.can_use('Hammer')) and + (state.can_play('Zeldas Lullaby') and state.has_sticks()))) + set_rule( + world.get_entrance('Lake Warp Pad'), + lambda state: state.can_play('Serenade of Water') and state.can_leave_forest()) set_rule(world.get_location('King Zora Thawed'), lambda state: state.has_blue_fire()) set_rule(world.get_entrance('Zora Shop Adult Access'), lambda state: state.has_blue_fire()) - set_rule(world.get_location('Zoras Fountain Bottom Freestanding PoH'), lambda state: state.has('Iron Boots') and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic())) - set_rule(world.get_entrance('Water Temple Entrance'), lambda state: (state.has('Iron Boots') or state.has('Progressive Scale', 2)) and state.can_use('Hookshot') and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic())) - set_rule(world.get_location('Sheik in Kakariko'), lambda state: state.is_adult() and state.has('Forest Medallion') and state.has('Fire Medallion') and state.has('Water Medallion')) + set_rule( + world.get_location('Zoras Fountain Bottom Freestanding PoH'), + lambda state: state.has('Iron Boots') and(world.logic_fewer_tunic_requirements or state.has_ZoraTunic())) + set_rule( + world.get_entrance('Water Temple Entrance'), + lambda state: (state.has('Iron Boots') or state.has('Progressive Scale', 2)) and + state.can_use('Hookshot') and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic())) + set_rule( + world.get_location('Sheik in Kakariko'), + lambda state: state.is_adult() and + state.has('Forest Medallion') and + state.has('Fire Medallion') and + state.has('Water Medallion')) set_rule(world.get_entrance('Kakariko Potion Shop Front'), lambda state: state.is_adult()) set_rule(world.get_entrance('Kakariko Potion Shop Back'), lambda state: state.is_adult()) set_rule(world.get_entrance('Kakariko Bazaar'), lambda state: state.is_adult()) - set_rule(world.get_entrance('Graveyard Warp Pad'), lambda state: state.can_play('Nocturne of Shadow') and state.can_leave_forest()) - set_rule(world.get_entrance('Shadow Temple Entrance'), lambda state: state.can_use('Dins Fire') and state.can_see_with_lens() and (state.can_use('Hover Boots') or state.can_use('Hookshot'))) - set_rule(world.get_entrance('Bridge Crossing'), lambda state: state.has('Epona') or state.can_use('Longshot') or ((world.gerudo_fortress == 'open') and state.is_adult())) + set_rule( + world.get_entrance('Graveyard Warp Pad'), + lambda state: state.can_play('Nocturne of Shadow') and state.can_leave_forest()) + set_rule( + world.get_entrance('Shadow Temple Entrance'), + lambda state: state.can_use('Dins Fire') and + state.can_see_with_lens() and + (state.can_use('Hover Boots') or state.can_use('Hookshot'))) + set_rule( + world.get_entrance('Bridge Crossing'), + lambda state: state.has('Epona') or + state.can_use('Longshot') or + ((world.gerudo_fortress == 'open') and state.is_adult())) set_rule(world.get_location('Gerudo Valley Hammer Rocks Chest'), lambda state: state.can_use('Hammer')) - set_rule(world.get_location('Gerudo Fortress North F2 Carpenter'), lambda state: state.can_use('Bow') or state.can_use('Hookshot') or state.can_use('Hover Boots') or world.logic_tricks) + set_rule( + world.get_location('Gerudo Fortress North F2 Carpenter'), + lambda state: state.can_use('Bow') or + state.can_use('Hookshot') or + state.can_use('Hover Boots') or + world.logic_tricks) set_rule(world.get_location('Gerudo Fortress Carpenter Rescue'), lambda state: state.can_finish_GerudoFortress()) set_rule(world.get_location('Gerudo Fortress Membership Card'), lambda state: state.can_finish_GerudoFortress()) - set_rule(world.get_entrance('Gerudo Training Grounds Entrance'), lambda state: state.has('Carpenter Rescue') and state.has('Gerudo Membership Card') and state.is_adult()) - set_rule(world.get_entrance('Haunted Wasteland Entrance'), lambda state: state.has('Carpenter Rescue') and (state.can_use('Hover Boots') or state.can_use('Longshot'))) - set_rule(world.get_entrance('Haunted Wasteland Crossing'), lambda state: (world.logic_lens == 'chest') or state.can_use('Lens of Truth')) - set_rule(world.get_entrance('Colossus Warp Pad'), lambda state: state.can_play('Requiem of Spirit') and state.can_leave_forest()) + set_rule( + world.get_entrance('Gerudo Training Grounds Entrance'), + lambda state: state.has('Carpenter Rescue') and state.has('Gerudo Membership Card') and state.is_adult()) + set_rule( + world.get_entrance('Haunted Wasteland Entrance'), + lambda state: state.has('Carpenter Rescue') and (state.can_use('Hover Boots') or state.can_use('Longshot'))) + set_rule( + world.get_entrance('Haunted Wasteland Crossing'), + lambda state: (world.logic_lens == 'chest') or state.can_use('Lens of Truth')) + set_rule( + world.get_entrance('Colossus Warp Pad'), + lambda state: state.can_play('Requiem of Spirit') and state.can_leave_forest()) set_rule(world.get_entrance('Colossus Fairy'), lambda state: state.has_explosives()) - set_rule(world.get_location('Colossus Freestanding PoH'), lambda state: state.can_play('Requiem of Spirit') and state.can_use('Magic Bean')) + set_rule( + world.get_location('Colossus Freestanding PoH'), + lambda state: state.can_play('Requiem of Spirit') and state.can_use('Magic Bean')) set_rule(world.get_location('Desert Colossus Fairy Reward'), lambda state: state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('Gerudo Fortress Rooftop Chest'), lambda state: state.can_use('Hover Boots') or state.can_use('Scarecrow') or state.can_use('Longshot')) - set_rule(world.get_location('Horseback Archery 1000 Points'), lambda state: state.has('Carpenter Rescue') and state.has('Epona') and state.can_use('Bow')) - set_rule(world.get_location('Horseback Archery 1500 Points'), lambda state: (not world.logic_no_1500_archery) and state.has('Carpenter Rescue') and state.has('Epona') and state.can_use('Bow')) + set_rule( + world.get_location('Gerudo Fortress Rooftop Chest'), + lambda state: state.can_use('Hover Boots') or state.can_use('Scarecrow') or state.can_use('Longshot')) + set_rule( + world.get_location('Horseback Archery 1000 Points'), + lambda state: state.has('Carpenter Rescue') and state.has('Epona') and state.can_use('Bow')) + set_rule( + world.get_location('Horseback Archery 1500 Points'), + lambda state: (not world.logic_no_1500_archery) and + state.has('Carpenter Rescue') and + state.has('Epona') and + state.can_use('Bow')) set_rule(world.get_location('Haunted Wasteland Structure Chest'), lambda state: state.has_fire_source()) - set_rule(world.get_location('Zelda'), lambda state: state.has('Shadow Medallion') and state.has('Spirit Medallion') and state.is_adult()) - set_rule(world.get_location('Ganon'), lambda state: (state.has('Boss Key (Ganons Castle)') or world.unlocked_ganondorf) and state.can_use('Light Arrows')) + set_rule( + world.get_location('Zelda'), + lambda state: state.has('Shadow Medallion') and state.has('Spirit Medallion') and state.is_adult()) + set_rule( + world.get_location('Ganon'), + lambda state: (state.has('Boss Key (Ganons Castle)') or world.unlocked_ganondorf) and + state.can_use('Light Arrows')) set_rule(world.get_entrance('Kokiri Forest Storms Grotto'), lambda state: state.can_play('Song of Storms')) set_rule(world.get_entrance('Lost Woods Generic Grotto'), lambda state: state.can_blast_or_smash()) - set_rule(world.get_entrance('Lost Woods Sales Grotto'), lambda state: state.has_explosives() or (state.can_use('Hammer') and (state.can_play('Minuet of Forest') or state.can_play('Sarias Song')))) - set_rule(world.get_entrance('Front of Meadow Grotto'), lambda state: state.has_explosives() or (state.can_use('Hammer') and (state.can_play('Minuet of Forest') or state.can_play('Sarias Song')))) + set_rule( + world.get_entrance('Lost Woods Sales Grotto'), + lambda state: state.has_explosives() or + (state.can_use('Hammer') and + (state.can_play('Minuet of Forest') or state.can_play('Sarias Song')))) + set_rule( + world.get_entrance('Front of Meadow Grotto'), + lambda state: state.has_explosives() or + (state.can_use('Hammer') and + (state.can_play('Minuet of Forest') or state.can_play('Sarias Song')))) set_rule(world.get_entrance('Remote Southern Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Field Near Lake Inside Fence Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Field Valley Grotto'), lambda state: state.can_blast_or_smash()) @@ -264,78 +525,211 @@ def global_rules(world): set_rule(world.get_entrance('Field Kakariko Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Field North Lon Lon Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Castle Storms Grotto'), lambda state: state.can_play('Song of Storms')) - set_rule(world.get_entrance('Kakariko Bombable Grotto'), lambda state: state.can_blast_or_smash() and (state.is_adult() or (state.has_sticks() or state.has('Kokiri Sword') or state.can_use('Dins Fire')))) + set_rule( + world.get_entrance('Kakariko Bombable Grotto'), + lambda state: state.can_blast_or_smash() and + (state.is_adult() or + (state.has_sticks() or state.has('Kokiri Sword') or state.can_use('Dins Fire')))) set_rule(world.get_entrance('Mountain Bombable Grotto'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Mountain Storms Grotto'), lambda state: state.can_play('Song of Storms')) set_rule(world.get_entrance('Top of Crater Grotto'), lambda state: state.can_blast_or_smash()) - set_rule(world.get_entrance('Zora River Plateau Open Grotto'), lambda state: state.has_explosives() or state.can_dive() or state.is_adult()) + set_rule( + world.get_entrance('Zora River Plateau Open Grotto'), + lambda state: state.has_explosives() or state.can_dive() or state.is_adult()) set_rule(world.get_entrance('Zora River Plateau Bombable Grotto'), lambda state: state.can_blast_or_smash()) - set_rule(world.get_location('Tektite Grotto Freestanding PoH'), lambda state: state.has('Progressive Scale', 2) or state.can_use('Iron Boots')) - set_rule(world.get_location('GS Kokiri Know It All House'), lambda state: state.nighttime() and (state.can_leave_forest() or state.can_play('Suns Song')) and state.can_child_attack()) - set_rule(world.get_location('GS Kokiri Bean Patch'), lambda state: state.has_bottle() and state.can_child_attack() and (state.can_leave_forest() or state.has('Kokiri Sword') or state.has_sticks() or state.has('Boomerang') or state.has_explosives() or state.has('Buy Bottle Bug'))) - set_rule(world.get_location('GS Kokiri House of Twins'), lambda state: (state.can_use('Hookshot') or (world.logic_tricks and state.can_use('Hover Boots'))) and state.nighttime()) - set_rule(world.get_location('GS Lost Woods Bean Patch Near Bridge'), lambda state: state.has_bottle() and state.can_child_attack() and (state.can_leave_forest() or state.has('Kokiri Sword') or state.has_sticks() or state.has('Boomerang') or state.has_explosives() or state.has('Buy Bottle Bug'))) - set_rule(world.get_location('GS Lost Woods Bean Patch Near Stage'), lambda state: state.has_bottle() and (state.can_child_attack() or (not world.shuffle_scrubs and state.has('Buy Deku Shield'))) and (state.can_leave_forest() or state.has('Kokiri Sword') or state.has_sticks() or state.has('Boomerang') or state.has_explosives() or state.has('Buy Bottle Bug'))) - set_rule(world.get_location('GS Lost Woods Above Stage'), lambda state: state.can_use('Magic Bean') and state.nighttime()) - set_rule(world.get_location('GS Sacred Forest Meadow'), lambda state: state.can_use('Hookshot') and state.nighttime()) - set_rule(world.get_location('GS Hyrule Field near Kakariko'), lambda state: (state.has('Boomerang') and state.has_explosives()) or state.can_use('Hookshot')) - set_rule(world.get_location('GS Hyrule Field Near Gerudo Valley'), lambda state: (state.has('Hammer') and state.has_fire_source() and state.can_use('Hookshot')) or (state.has('Boomerang') and state.has_explosives() and state.can_use('Dins Fire'))) + set_rule( + world.get_location('Tektite Grotto Freestanding PoH'), + lambda state: state.has('Progressive Scale', 2) or state.can_use('Iron Boots')) + set_rule( + world.get_location('GS Kokiri Know It All House'), + lambda state: state.nighttime() and + (state.can_leave_forest() or state.can_play('Suns Song')) and + state.can_child_attack()) + set_rule( + world.get_location('GS Kokiri Bean Patch'), + lambda state: state.has_bottle() and + state.can_child_attack() and + (state.can_leave_forest() or + state.has('Kokiri Sword') or + state.has_sticks() or + state.has('Boomerang') or + state.has_explosives() or + state.has('Buy Bottle Bug'))) + set_rule( + world.get_location('GS Kokiri House of Twins'), + lambda state: (state.can_use('Hookshot') or (world.logic_tricks and state.can_use('Hover Boots'))) and + state.nighttime()) + set_rule( + world.get_location('GS Lost Woods Bean Patch Near Bridge'), + lambda state: state.has_bottle() and + state.can_child_attack() and + (state.can_leave_forest() or + state.has('Kokiri Sword') or + state.has_sticks() or + state.has('Boomerang') or + state.has_explosives() or + state.has('Buy Bottle Bug'))) + set_rule( + world.get_location('GS Lost Woods Bean Patch Near Stage'), + lambda state: state.has_bottle() and + (state.can_child_attack() or (not world.shuffle_scrubs and state.has('Buy Deku Shield'))) and + (state.can_leave_forest() or + state.has('Kokiri Sword') or + state.has_sticks() or + state.has('Boomerang') or + state.has_explosives() or + state.has('Buy Bottle Bug'))) + set_rule( + world.get_location('GS Lost Woods Above Stage'), + lambda state: state.can_use('Magic Bean') and state.nighttime()) + set_rule( + world.get_location('GS Sacred Forest Meadow'), + lambda state: state.can_use('Hookshot') and state.nighttime()) + set_rule( + world.get_location('GS Hyrule Field near Kakariko'), + lambda state: (state.has('Boomerang') and state.has_explosives()) or state.can_use('Hookshot')) + set_rule( + world.get_location('GS Hyrule Field Near Gerudo Valley'), + lambda state: (state.has('Hammer') and state.has_fire_source() and state.can_use('Hookshot')) or + (state.has('Boomerang') and state.has_explosives() and state.can_use('Dins Fire'))) set_rule(world.get_location('GS Hyrule Castle Tree'), lambda state: state.can_child_attack()) - set_rule(world.get_location('GS Hyrule Castle Grotto'), lambda state: state.has('Boomerang') and state.has_explosives()) + set_rule( + world.get_location('GS Hyrule Castle Grotto'), + lambda state: state.has('Boomerang') and state.has_explosives()) set_rule(world.get_location('GS Lon Lon Ranch Rain Shed'), lambda state: state.nighttime()) - set_rule(world.get_location('GS Lon Lon Ranch House Window'), lambda state: state.has('Boomerang') and state.nighttime()) - set_rule(world.get_location('GS Lon Lon Ranch Back Wall'), lambda state: state.has('Boomerang') and state.nighttime()) + set_rule( + world.get_location('GS Lon Lon Ranch House Window'), + lambda state: state.has('Boomerang') and state.nighttime()) + set_rule( + world.get_location('GS Lon Lon Ranch Back Wall'), + lambda state: state.has('Boomerang') and state.nighttime()) set_rule(world.get_location('GS Kakariko House Under Construction'), lambda state: state.nighttime()) set_rule(world.get_location('GS Kakariko Skulltula House'), lambda state: state.nighttime()) set_rule(world.get_location('GS Kakariko Guard\'s House'), lambda state: state.nighttime()) set_rule(world.get_location('GS Kakariko Tree'), lambda state: state.nighttime()) - set_rule(world.get_location('GS Kakariko Watchtower'), lambda state: (state.has_slingshot() or state.has_bombchus()) and state.nighttime()) - set_rule(world.get_location('GS Kakariko Above Impa\'s House'), lambda state: state.can_use('Hookshot') and state.nighttime()) + set_rule( + world.get_location('GS Kakariko Watchtower'), + lambda state: (state.has_slingshot() or state.has_bombchus()) and state.nighttime()) + set_rule( + world.get_location('GS Kakariko Above Impa\'s House'), + lambda state: state.can_use('Hookshot') and state.nighttime()) set_rule(world.get_location('GS Graveyard Wall'), lambda state: state.has('Boomerang') and state.nighttime()) - set_rule(world.get_location('GS Graveyard Bean Patch'), lambda state: state.has_bottle() and state.can_child_attack()) - set_rule(world.get_location('GS Mountain Trail Bean Patch'), lambda state: state.has_bottle() and (state.has_explosives() or state.has('Progressive Strength Upgrade'))) + set_rule( + world.get_location('GS Graveyard Bean Patch'), + lambda state: state.has_bottle() and state.can_child_attack()) + set_rule( + world.get_location('GS Mountain Trail Bean Patch'), + lambda state: state.has_bottle() and (state.has_explosives() or state.has('Progressive Strength Upgrade'))) set_rule(world.get_location('GS Mountain Trail Bomb Alcove'), lambda state: state.can_blast_or_smash()) - set_rule(world.get_location('GS Mountain Trail Path to Crater'), lambda state: state.can_use('Hammer') and state.nighttime()) - set_rule(world.get_location('GS Mountain Trail Above Dodongo\'s Cavern'), lambda state: state.can_use('Hammer') and state.nighttime()) + set_rule( + world.get_location('GS Mountain Trail Path to Crater'), + lambda state: state.can_use('Hammer') and state.nighttime()) + set_rule( + world.get_location('GS Mountain Trail Above Dodongo\'s Cavern'), + lambda state: state.can_use('Hammer') and state.nighttime()) set_rule(world.get_location('GS Goron City Boulder Maze'), lambda state: state.has_explosives()) - set_rule(world.get_location('GS Death Mountain Crater Crate'), lambda state: state.can_blast_or_smash() and state.can_child_attack()) + set_rule( + world.get_location('GS Death Mountain Crater Crate'), + lambda state: state.can_blast_or_smash() and state.can_child_attack()) set_rule(world.get_location('GS Goron City Center Platform'), lambda state: state.is_adult()) - set_rule(world.get_location('GS Mountain Crater Bean Patch'), lambda state: state.can_play('Bolero of Fire') and state.has_bottle() and state.can_child_attack()) + set_rule( + world.get_location('GS Mountain Crater Bean Patch'), + lambda state: state.can_play('Bolero of Fire') and state.has_bottle() and state.can_child_attack()) set_rule(world.get_location('GS Zora River Ladder'), lambda state: state.nighttime() and state.can_child_attack()) - set_rule(world.get_location('GS Zora River Near Raised Grottos'), lambda state: state.can_use('Hookshot') and state.nighttime()) - set_rule(world.get_location('GS Zora River Above Bridge'), lambda state: state.can_use('Hookshot') and state.nighttime()) - set_rule(world.get_location('GS Zora\'s Domain Frozen Waterfall'), lambda state: state.nighttime() and (state.has('Progressive Hookshot') or state.has_bow() or state.has('Magic Meter'))) - set_rule(world.get_location('GS Zora\'s Fountain Above the Log'), lambda state: state.has('Boomerang') and state.nighttime()) - set_rule(world.get_location('GS Zora\'s Fountain Hidden Cave'), lambda state: state.has('Progressive Strength Upgrade', 2) and state.can_blast_or_smash() and state.has('Progressive Hookshot') and state.nighttime()) - set_rule(world.get_location('GS Lake Hylia Bean Patch'), lambda state: state.has_bottle() and state.can_child_attack()) + set_rule( + world.get_location('GS Zora River Near Raised Grottos'), + lambda state: state.can_use('Hookshot') and state.nighttime()) + set_rule( + world.get_location('GS Zora River Above Bridge'), + lambda state: state.can_use('Hookshot') and state.nighttime()) + set_rule( + world.get_location('GS Zora\'s Domain Frozen Waterfall'), + lambda state: state.nighttime() and + (state.has('Progressive Hookshot') or state.has_bow() or state.has('Magic Meter'))) + set_rule( + world.get_location('GS Zora\'s Fountain Above the Log'), + lambda state: state.has('Boomerang') and state.nighttime()) + set_rule( + world.get_location('GS Zora\'s Fountain Hidden Cave'), + lambda state: state.has('Progressive Strength Upgrade', 2) and + state.can_blast_or_smash() and + state.has('Progressive Hookshot') and + state.nighttime()) + set_rule( + world.get_location('GS Lake Hylia Bean Patch'), + lambda state: state.has_bottle() and state.can_child_attack()) set_rule(world.get_location('GS Lake Hylia Lab Wall'), lambda state: state.has('Boomerang') and state.nighttime()) - set_rule(world.get_location('GS Lake Hylia Small Island'), lambda state: state.nighttime() and state.can_child_attack()) + set_rule( + world.get_location('GS Lake Hylia Small Island'), + lambda state: state.nighttime() and state.can_child_attack()) set_rule(world.get_location('GS Lake Hylia Giant Tree'), lambda state: state.can_use('Longshot')) - set_rule(world.get_location('GS Lab Underwater Crate'), lambda state: state.has('Iron Boots') and state.can_use('Hookshot')) - set_rule(world.get_location('GS Gerudo Valley Small Bridge'), lambda state: state.has('Boomerang') and state.nighttime()) - set_rule(world.get_location('GS Gerudo Valley Bean Patch'), lambda state: state.has_bottle() and state.can_child_attack()) - set_rule(world.get_location('GS Gerudo Valley Behind Tent'), lambda state: state.can_use('Hookshot') and state.nighttime()) - set_rule(world.get_location('GS Gerudo Valley Pillar'), lambda state: state.can_use('Hookshot') and state.nighttime()) - set_rule(world.get_location('GS Gerudo Fortress Archery Range'), lambda state: state.can_use('Hookshot') and state.has('Carpenter Rescue') and state.nighttime()) - set_rule(world.get_location('GS Gerudo Fortress Top Floor'), lambda state: state.nighttime() and (state.can_use('Bow') or state.can_use('Hookshot') or state.can_use('Hover Boots') or world.logic_tricks)) + set_rule( + world.get_location('GS Lab Underwater Crate'), + lambda state: state.has('Iron Boots') and state.can_use('Hookshot')) + set_rule( + world.get_location('GS Gerudo Valley Small Bridge'), + lambda state: state.has('Boomerang') and state.nighttime()) + set_rule( + world.get_location('GS Gerudo Valley Bean Patch'), + lambda state: state.has_bottle() and state.can_child_attack()) + set_rule( + world.get_location('GS Gerudo Valley Behind Tent'), + lambda state: state.can_use('Hookshot') and state.nighttime()) + set_rule( + world.get_location('GS Gerudo Valley Pillar'), + lambda state: state.can_use('Hookshot') and state.nighttime()) + set_rule( + world.get_location('GS Gerudo Fortress Archery Range'), + lambda state: state.can_use('Hookshot') and state.has('Carpenter Rescue') and state.nighttime()) + set_rule( + world.get_location('GS Gerudo Fortress Top Floor'), + lambda state: state.nighttime() and + (state.can_use('Bow') or + state.can_use('Hookshot') or + state.can_use('Hover Boots') or + world.logic_tricks)) set_rule(world.get_location('GS Wasteland Ruins'), lambda state: state.can_use('Hookshot')) - set_rule(world.get_location('GS Desert Colossus Bean Patch'), lambda state: state.has_bottle() and state.can_play('Requiem of Spirit') and state.can_child_attack()) - set_rule(world.get_location('GS Desert Colossus Tree'), lambda state: state.can_use('Hookshot') and state.nighttime()) - set_rule(world.get_location('GS Desert Colossus Hill'), lambda state: ((state.can_use('Magic Bean') and state.can_play('Requiem of Spirit')) or state.can_use('Longshot')) and state.nighttime()) + set_rule( + world.get_location('GS Desert Colossus Bean Patch'), + lambda state: state.has_bottle() and state.can_play('Requiem of Spirit') and state.can_child_attack()) + set_rule( + world.get_location('GS Desert Colossus Tree'), + lambda state: state.can_use('Hookshot') and state.nighttime()) + set_rule( + world.get_location('GS Desert Colossus Hill'), + lambda state: ((state.can_use('Magic Bean') and state.can_play('Requiem of Spirit')) or + state.can_use('Longshot')) and + state.nighttime()) set_rule(world.get_location('GS Zora River Tree'), lambda state: state.can_child_attack()) set_rule(world.get_location('HF Grotto Deku Scrub Piece of Heart'), lambda state: state.can_stun_deku()) - set_rule(world.get_entrance('Zora River Storms Grotto'), lambda state: state.can_play('Song of Storms') and state.can_stun_deku()) - set_rule(world.get_entrance('Meadow Storms Grotto Child Access'), lambda state: state.can_play('Song of Storms') and (state.can_child_attack() or state.has_nuts() or state.has('Buy Deku Shield'))) + set_rule( + world.get_entrance('Zora River Storms Grotto'), + lambda state: state.can_play('Song of Storms') and state.can_stun_deku()) + set_rule( + world.get_entrance('Meadow Storms Grotto Child Access'), + lambda state: state.can_play('Song of Storms') and + (state.can_child_attack() or state.has_nuts() or state.has('Buy Deku Shield'))) set_rule(world.get_entrance('Meadow Storms Grotto Adult Access'), lambda state: state.can_play('Song of Storms')) set_rule(world.get_entrance('Lake Hylia Grotto'), lambda state: state.can_stun_deku()) set_rule(world.get_location('LW Deku Scrub Deku Nuts'), lambda state: state.can_stun_deku()) set_rule(world.get_location('LW Deku Scrub Deku Sticks'), lambda state: state.can_stun_deku()) set_rule(world.get_location('LW Deku Scrub Deku Stick Upgrade'), lambda state: state.can_stun_deku()) set_rule(world.get_entrance('Desert Colossus Grotto'), lambda state: state.can_use('Silver Gauntlets')) - set_rule(world.get_location('DMC Deku Scrub Bombs'), lambda state: state.can_blast_or_smash() and (state.can_child_attack() or state.has_nuts() or state.has('Buy Deku Shield'))) + set_rule( + world.get_location('DMC Deku Scrub Bombs'), + lambda state: state.can_blast_or_smash() and + (state.can_child_attack() or state.has_nuts() or state.has('Buy Deku Shield'))) set_rule(world.get_entrance('DMC Hammer Grotto'), lambda state: state.can_use('Hammer')) - set_rule(world.get_entrance('Goron City Grotto'), lambda state: state.is_adult() and ((state.can_play('Song of Time') and (world.difficulty != 'ohko' or state.has_GoronTunic() or state.can_use('Longshot') or state.can_use('Nayrus Love'))) or (world.difficulty != 'ohko' and state.has_GoronTunic() and state.can_use('Hookshot')) or (state.can_use('Nayrus Love') and state.can_use('Hookshot')))) - set_rule(world.get_entrance('Lon Lon Grotto'), lambda state: state.can_child_attack() or state.has_nuts() or state.has('Buy Deku Shield')) + set_rule( + world.get_entrance('Goron City Grotto'), + lambda state: state.is_adult() and + ((state.can_play('Song of Time') and + (world.difficulty != 'ohko' or state.has_GoronTunic() or state.can_use('Longshot') or state.can_use('Nayrus Love'))) or + (world.difficulty != 'ohko' and state.has_GoronTunic() and state.can_use('Hookshot')) or + (state.can_use('Nayrus Love') and state.can_use('Hookshot')))) + set_rule( + world.get_entrance('Lon Lon Grotto'), + lambda state: state.can_child_attack() or state.has_nuts() or state.has('Buy Deku Shield')) set_rule(world.get_entrance('Gerudo Valley Storms Grotto'), lambda state: state.can_play('Song of Storms')) @@ -376,7 +770,12 @@ def set_shop_rules(world): # Add adult only checks if location.item.name in ['Buy Goron Tunic', 'Buy Zora Tunic']: if location.parent_region.name == 'Goron Shop': - add_rule(location, lambda state: state.is_adult() and (state.has_explosives() or state.has('Progressive Strength Upgrade') or state.has_bow())) + add_rule( + location, + lambda state: state.is_adult() and + (state.has_explosives() or + state.has('Progressive Strength Upgrade') or + state.has_bow())) elif location.parent_region.name == 'Zora Shop': add_rule(location, lambda state: state.can_reach('Zora Shop Adult Access', 'Entrance')) elif location.parent_region.name in ['Castle Town Bombchu Shop', 'Castle Town Potion Shop', 'Castle Town Bazaar']: @@ -385,7 +784,16 @@ def set_shop_rules(world): add_rule(location, lambda state: state.is_adult()) # Add item prerequisit checks - if location.item.name in ['Buy Blue Fire', 'Buy Blue Potion', 'Buy Bottle Bug', 'Buy Fish', 'Buy Green Potion', 'Buy Poe', 'Buy Red Potion [30]', 'Buy Red Potion [40]', 'Buy Red Potion [50]', 'Buy Fairy\'s Spirit']: + if location.item.name in ['Buy Blue Fire', + 'Buy Blue Potion', + 'Buy Bottle Bug', + 'Buy Fish', + 'Buy Green Potion', + 'Buy Poe', + 'Buy Red Potion [30]', + 'Buy Red Potion [40]', + 'Buy Red Potion [50]', + 'Buy Fairy\'s Spirit']: add_rule(location, lambda state: state.has_bottle()) if location.item.name in ['Buy Bombchu (10)', 'Buy Bombchu (20)', 'Buy Bombchu (5)']: add_rule(location, lambda state: state.has_bombchus_item()) @@ -393,114 +801,256 @@ def set_shop_rules(world): # Deku Tree Vanilla def dung_rules_dt0(world): - set_rule(world.get_entrance('Deku Tree Basement Path'), lambda state: state.has_slingshot() and (state.has_sticks() or state.can_use('Dins Fire'))) + set_rule( + world.get_entrance('Deku Tree Basement Path'), + lambda state: state.has_slingshot() and (state.has_sticks() or state.can_use('Dins Fire'))) set_rule(world.get_entrance('Deku Tree Slingshot Passage'), lambda state: state.has('Buy Deku Shield')) # Boss - set_rule(world.get_location('Queen Gohma Heart'), lambda state: state.has('Buy Deku Shield') and (state.has('Kokiri Sword') or state.has_sticks())) - set_rule(world.get_location('Queen Gohma'), lambda state: state.has('Buy Deku Shield') and (state.has('Kokiri Sword') or state.has_sticks())) + set_rule( + world.get_location('Queen Gohma Heart'), + lambda state: state.has('Buy Deku Shield') and (state.has('Kokiri Sword') or state.has_sticks())) + set_rule( + world.get_location('Queen Gohma'), + lambda state: state.has('Buy Deku Shield') and (state.has('Kokiri Sword') or state.has_sticks())) # GS set_rule(world.get_location('GS Deku Tree Basement Back Room'), lambda state: state.has('Boomerang') and (state.has_explosives())) set_rule(world.get_location('GS Deku Tree Basement Gate'), lambda state: state.can_child_attack()) - set_rule(world.get_location('GS Deku Tree Basement Vines'), lambda state: state.has_slingshot() or state.has('Boomerang') or state.has_explosives() or state.can_use('Dins Fire') or (world.logic_tricks and (state.has_sticks() or state.has('Kokiri Sword')))) + set_rule( + world.get_location('GS Deku Tree Basement Vines'), + lambda state: state.has_slingshot() or + state.has('Boomerang') or + state.has_explosives() or + state.can_use('Dins Fire') or + (world.logic_tricks and (state.has_sticks() or state.has('Kokiri Sword')))) set_rule(world.get_location('GS Deku Tree Compass Room'), lambda state: state.can_child_attack()) # Deku Tree MQ def dung_rules_dtmq(world): - set_rule(world.get_entrance('Deku Tree Compass Passage'), lambda state: state.has_slingshot() and (state.has_sticks() or state.can_use('Dins Fire'))) - set_rule(world.get_entrance('Deku Tree Basement Path'), lambda state: state.has_slingshot() and (state.has_sticks() or state.can_use('Dins Fire'))) + set_rule( + world.get_entrance('Deku Tree Compass Passage'), + lambda state: state.has_slingshot() and (state.has_sticks() or state.can_use('Dins Fire'))) + set_rule( + world.get_entrance('Deku Tree Basement Path'), + lambda state: state.has_slingshot() and (state.has_sticks() or state.can_use('Dins Fire'))) set_rule(world.get_location('Deku Tree MQ Slingshot Chest'), lambda state: state.can_child_attack()) - set_rule(world.get_location('Deku Tree MQ Slingshot Room Back Chest'), lambda state: state.has_sticks() or state.can_use('Dins Fire')) - set_rule(world.get_location('Deku Tree MQ Basement Chest'), lambda state: state.has_sticks() or state.can_use('Dins Fire')) + set_rule( + world.get_location('Deku Tree MQ Slingshot Room Back Chest'), + lambda state: state.has_sticks() or state.can_use('Dins Fire')) + set_rule( + world.get_location('Deku Tree MQ Basement Chest'), + lambda state: state.has_sticks() or state.can_use('Dins Fire')) set_rule(world.get_location('Deku Tree MQ After Spinning Log Chest'), lambda state: state.can_play('Song of Time')) # Boss - set_rule(world.get_location('Queen Gohma Heart'), lambda state: state.has('Buy Deku Shield') and (state.has('Kokiri Sword') or state.has_sticks())) - set_rule(world.get_location('Queen Gohma'), lambda state: state.has('Buy Deku Shield') and (state.has('Kokiri Sword') or state.has_sticks())) + set_rule( + world.get_location('Queen Gohma Heart'), + lambda state: state.has('Buy Deku Shield') and (state.has('Kokiri Sword') or state.has_sticks())) + set_rule( + world.get_location('Queen Gohma'), + lambda state: state.has('Buy Deku Shield') and (state.has('Kokiri Sword') or state.has_sticks())) # GS set_rule(world.get_location('GS Deku Tree MQ Lobby'), lambda state: state.can_child_attack()) - set_rule(world.get_location('GS Deku Tree MQ Compass Room'), lambda state: state.has('Boomerang') and ((state.has_bombs() and state.can_play('Song of Time')) or state.has_bombchus())) - set_rule(world.get_location('GS Deku Tree MQ Basement Ceiling'), lambda state: state.has('Boomerang') and state.can_play('Song of Time')) + set_rule( + world.get_location('GS Deku Tree MQ Compass Room'), + lambda state: state.has('Boomerang') and + ((state.has_bombs() and state.can_play('Song of Time')) or state.has_bombchus())) + set_rule( + world.get_location('GS Deku Tree MQ Basement Ceiling'), + lambda state: state.has('Boomerang') and state.can_play('Song of Time')) set_rule(world.get_location('GS Deku Tree MQ Basement Back Room'), lambda state: state.has('Boomerang')) # Dodongo's Cavern Vanilla def dung_rules_dc0(world): - set_rule(world.get_entrance('Dodongos Cavern Lobby'), lambda state: state.can_blast_or_smash() or state.has('Progressive Strength Upgrade')) - set_rule(world.get_entrance('Dodongos Cavern Left Door'), lambda state: (state.is_adult() or ((state.has_sticks() or state.can_use('Dins Fire')) and (state.has_slingshot() or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword')))) and (state.has_explosives() or state.has('Progressive Strength Upgrade') or state.can_use('Dins Fire') or (world.logic_tricks and state.can_use('Bow')))) - set_rule(world.get_location('Dodongos Cavern Compass Chest'), lambda state: state.is_adult() or state.has_sticks() or (state.can_use('Dins Fire') and (state.has_slingshot() or state.has_explosives() or state.has('Kokiri Sword')))) - set_rule(world.get_location('DC Deku Scrub Deku Sticks'), lambda state: state.is_adult() or state.has_slingshot() or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword')) - set_rule(world.get_entrance('Dodongos Cavern Slingshot Target'), lambda state: (state.has_slingshot() and (state.has_explosives() or state.has('Progressive Strength Upgrade'))) or ((state.has_bow() or state.has('Hover Boots') or state.has('Progressive Hookshot', 2) or world.logic_dc_jump) and state.is_adult())) + set_rule( + world.get_entrance('Dodongos Cavern Lobby'), + lambda state: state.can_blast_or_smash() or state.has('Progressive Strength Upgrade')) + set_rule( + world.get_entrance('Dodongos Cavern Left Door'), + lambda state: (state.is_adult() or + ((state.has_sticks() or state.can_use('Dins Fire')) and + (state.has_slingshot() or state.has_sticks() or state.has_explosives() or state.has('Kokiri Sword')))) and + (state.has_explosives() or + state.has('Progressive Strength Upgrade') or + state.can_use('Dins Fire') or + (world.logic_tricks and state.can_use('Bow')))) + set_rule( + world.get_location('Dodongos Cavern Compass Chest'), + lambda state: state.is_adult() or + state.has_sticks() or + (state.can_use('Dins Fire') and (state.has_slingshot() or state.has_explosives() or state.has('Kokiri Sword')))) + set_rule( + world.get_location('DC Deku Scrub Deku Sticks'), + lambda state: state.is_adult() or + state.has_slingshot() or + state.has_sticks() or + state.has_explosives() or + state.has('Kokiri Sword')) + set_rule( + world.get_entrance('Dodongos Cavern Slingshot Target'), + lambda state: (state.has_slingshot() and (state.has_explosives() or state.has('Progressive Strength Upgrade'))) or + ((state.has_bow() or state.has('Hover Boots') or state.has('Progressive Hookshot', 2) or world.logic_dc_jump) and + state.is_adult())) set_rule(world.get_location('DC Deku Scrub Deku Nuts'), lambda state: state.can_blast_or_smash()) set_rule(world.get_location('DC Deku Scrub Deku Seeds'), lambda state: state.can_blast_or_smash()) set_rule(world.get_location('Dodongos Cavern End of Bridge Chest'), lambda state: state.can_blast_or_smash()) set_rule(world.get_entrance('Dodongos Cavern Bomb Drop'), lambda state: state.has_explosives()) # Boss - set_rule(world.get_location('King Dodongo'), lambda state: (state.has_bombs() or state.has('Progressive Strength Upgrade')) and (state.is_adult() or state.has_sticks() or state.has('Kokiri Sword'))) - set_rule(world.get_location('King Dodongo Heart'), lambda state: (state.has_bombs() or state.has('Progressive Strength Upgrade')) and (state.is_adult() or state.has_sticks() or state.has('Kokiri Sword'))) + set_rule( + world.get_location('King Dodongo'), + lambda state: (state.has_bombs() or state.has('Progressive Strength Upgrade')) and + (state.is_adult() or state.has_sticks() or state.has('Kokiri Sword'))) + set_rule( + world.get_location('King Dodongo Heart'), + lambda state: (state.has_bombs() or state.has('Progressive Strength Upgrade')) and + (state.is_adult() or state.has_sticks() or state.has('Kokiri Sword'))) # GS - set_rule(world.get_location('GS Dodongo\'s Cavern East Side Room'), lambda state: state.has_explosives() or state.is_adult() or state.has_slingshot() or state.has('Boomerang') or state.has_sticks() or state.has('Kokiri Sword')) - set_rule(world.get_location('GS Dodongo\'s Cavern Alcove Above Stairs'), lambda state: state.can_use('Hookshot') or (state.has('Boomerang') and (state.has_explosives() or state.has('Progressive Strength Upgrade')))) - set_rule(world.get_location('GS Dodongo\'s Cavern Scarecrow'), lambda state: state.can_use('Scarecrow') or state.can_use('Longshot')) + set_rule( + world.get_location('GS Dodongo\'s Cavern East Side Room'), + lambda state: state.has_explosives() or + state.is_adult() or + state.has_slingshot() or + state.has('Boomerang') or + state.has_sticks() or + state.has('Kokiri Sword')) + set_rule( + world.get_location('GS Dodongo\'s Cavern Alcove Above Stairs'), + lambda state: state.can_use('Hookshot') or + (state.has('Boomerang') and (state.has_explosives() or state.has('Progressive Strength Upgrade')))) + set_rule( + world.get_location('GS Dodongo\'s Cavern Scarecrow'), + lambda state: state.can_use('Scarecrow') or state.can_use('Longshot')) # Dodongo's Cavern MQ def dung_rules_dcmq(world): - set_rule(world.get_entrance('Dodongos Cavern Lobby'), lambda state: state.can_blast_or_smash() or state.has('Progressive Strength Upgrade')) + set_rule( + world.get_entrance('Dodongos Cavern Lobby'), + lambda state: state.can_blast_or_smash() or state.has('Progressive Strength Upgrade')) set_rule(world.get_entrance('Dodongos Cavern Bomb Drop'), lambda state: state.has_explosives()) - set_rule(world.get_location('Dodongos Cavern MQ Compass Chest'), lambda state: state.is_adult() or state.can_child_attack() or state.has_nuts()) - set_rule(world.get_location('Dodongos Cavern MQ Torch Puzzle Room Chest'), lambda state: state.can_blast_or_smash() or state.has_sticks() or state.can_use('Dins Fire') or (state.is_adult() and (world.logic_dc_jump or state.has('Hover Boots') or state.has('Progressive Hookshot')))) - set_rule(world.get_location('Dodongos Cavern MQ Larva Room Chest'), lambda state: (state.has_sticks() and (state.has_explosives() or state.has('Progressive Strength Upgrade'))) or state.has_fire_source()) - set_rule(world.get_location('Dodongos Cavern MQ Bomb Bag Chest'), lambda state: state.is_adult() or (state.has_slingshot() and (state.has_explosives() or ((state.has_sticks() or state.can_use('Dins Fire')) and (world.difficulty != 'ohko' or state.has_bottle() or state.can_use('Nayrus Love')))))) + set_rule( + world.get_location('Dodongos Cavern MQ Compass Chest'), + lambda state: state.is_adult() or state.can_child_attack() or state.has_nuts()) + set_rule( + world.get_location('Dodongos Cavern MQ Torch Puzzle Room Chest'), + lambda state: state.can_blast_or_smash() or + state.has_sticks() or + state.can_use('Dins Fire') or + (state.is_adult() and (world.logic_dc_jump or state.has('Hover Boots') or state.has('Progressive Hookshot')))) + set_rule( + world.get_location('Dodongos Cavern MQ Larva Room Chest'), + lambda state: (state.has_sticks() and (state.has_explosives() or state.has('Progressive Strength Upgrade'))) or + state.has_fire_source()) + set_rule( + world.get_location('Dodongos Cavern MQ Bomb Bag Chest'), + lambda state: state.is_adult() or + (state.has_slingshot() and + (state.has_explosives() or + ((state.has_sticks() or state.can_use('Dins Fire')) and + (world.difficulty != 'ohko' or state.has_bottle() or state.can_use('Nayrus Love')))))) set_rule(world.get_location('DC MQ Deku Scrub Deku Sticks'), lambda state: state.can_stun_deku()) set_rule(world.get_location('DC MQ Deku Scrub Deku Seeds'), lambda state: state.can_stun_deku()) set_rule(world.get_location('DC MQ Deku Scrub Deku Shield'), lambda state: state.can_stun_deku()) - set_rule(world.get_location('DC MQ Deku Scrub Red Potion'), lambda state: state.is_adult() or state.has_explosives() or ((state.has_sticks() or state.can_use('Dins Fire')) and (world.difficulty != 'ohko' or state.has_bottle() or state.can_use('Nayrus Love')))) + set_rule( + world.get_location('DC MQ Deku Scrub Red Potion'), + lambda state: state.is_adult() or + state.has_explosives() or + ((state.has_sticks() or state.can_use('Dins Fire')) and + (world.difficulty != 'ohko' or state.has_bottle() or state.can_use('Nayrus Love')))) # Boss - set_rule(world.get_location('King Dodongo'), lambda state: (state.has_bombs() or state.has('Progressive Strength Upgrade')) and (state.is_adult() or state.has_sticks() or state.has('Kokiri Sword'))) - set_rule(world.get_location('King Dodongo Heart'), lambda state: (state.has_bombs() or state.has('Progressive Strength Upgrade')) and (state.is_adult() or state.has_sticks() or state.has('Kokiri Sword'))) + set_rule( + world.get_location('King Dodongo'), + lambda state: (state.has_bombs() or state.has('Progressive Strength Upgrade')) and + (state.is_adult() or state.has_sticks() or state.has('Kokiri Sword'))) + set_rule( + world.get_location('King Dodongo Heart'), + lambda state: (state.has_bombs() or state.has('Progressive Strength Upgrade')) and + (state.is_adult() or state.has_sticks() or state.has('Kokiri Sword'))) # GS - set_rule(world.get_location('GS Dodongo\'s Cavern MQ Song of Time Block Room'), lambda state: state.can_play('Song of Time') and (state.can_child_attack() or state.is_adult())) - set_rule(world.get_location('GS Dodongo\'s Cavern MQ Larva Room'), lambda state: (state.has_sticks() and (state.has_explosives or state.has('Progressive Strength Upgrade'))) or state.has_fire_source()) + set_rule( + world.get_location('GS Dodongo\'s Cavern MQ Song of Time Block Room'), + lambda state: state.can_play('Song of Time') and (state.can_child_attack() or state.is_adult())) + set_rule( + world.get_location('GS Dodongo\'s Cavern MQ Larva Room'), + lambda state: (state.has_sticks() and (state.has_explosives or state.has('Progressive Strength Upgrade'))) or + state.has_fire_source()) set_rule(world.get_location('GS Dodongo\'s Cavern MQ Lizalfos Room'), lambda state: state.can_blast_or_smash()) - set_rule(world.get_location('GS Dodongo\'s Cavern MQ Scrub Room'), lambda state: (state.has('Boomerang') and (state.has_slingshot() or (state.is_adult() and state.has_explosives())) and (state.has_explosives() or (state.has('Progressive Strength Upgrade') and (state.can_use('Hammer') or ((state.has_sticks() or state.can_use('Dins Fire') or (state.is_adult() and (world.logic_dc_jump or state.has('Hover Boots')))) and (world.difficulty != 'ohko' or state.has_bottle() or state.can_use('Nayrus Love'))))))) or (state.can_use('Hookshot') and (state.has_explosives() or state.has('Progressive Strength Upgrade') or state.has_bow() or state.can_use('Dins Fire')))) + set_rule( + world.get_location('GS Dodongo\'s Cavern MQ Scrub Room'), + lambda state: (state.has('Boomerang') and + (state.has_slingshot() or (state.is_adult() and state.has_explosives())) and + (state.has_explosives() or + (state.has('Progressive Strength Upgrade') and + (state.can_use('Hammer') or + ((state.has_sticks() or state.can_use('Dins Fire') or (state.is_adult() and (world.logic_dc_jump or state.has('Hover Boots')))) and + (world.difficulty != 'ohko' or state.has_bottle() or state.can_use('Nayrus Love'))))))) or + (state.can_use('Hookshot') and (state.has_explosives() or state.has('Progressive Strength Upgrade') or state.has_bow() or state.can_use('Dins Fire')))) # Jabu Jabu's Belly Vanilla def dung_rules_jb0(world): - set_rule(world.get_entrance('Jabu Jabus Belly Ceiling Switch'), lambda state: state.has_slingshot() or state.has_explosives() or state.has('Boomerang')) + set_rule( + world.get_entrance('Jabu Jabus Belly Ceiling Switch'), + lambda state: state.has_slingshot() or state.has_explosives() or state.has('Boomerang')) set_rule(world.get_entrance('Jabu Jabus Belly Tentacles'), lambda state: state.has('Boomerang')) - set_rule(world.get_entrance('Jabu Jabus Belly Octopus'), lambda state: state.has_sticks() or state.has('Kokiri Sword')) + set_rule( + world.get_entrance('Jabu Jabus Belly Octopus'), + lambda state: state.has_sticks() or state.has('Kokiri Sword')) # Jabu Jabu's Belly MQ def dung_rules_jbmq(world): set_rule(world.get_entrance('Jabu Jabus Belly Cow Switch'), lambda state: state.has_slingshot()) - set_rule(world.get_entrance('Jabu Jabus Belly Tentacle Access'), lambda state: state.has_explosives() and state.has('Boomerang')) - set_rule(world.get_entrance('Jabu Jabus Belly Octopus'), lambda state: state.has_sticks() or (state.has('Kokiri Sword') and state.can_use('Dins Fire'))) + set_rule( + world.get_entrance('Jabu Jabus Belly Tentacle Access'), + lambda state: state.has_explosives() and state.has('Boomerang')) + set_rule( + world.get_entrance('Jabu Jabus Belly Octopus'), + lambda state: state.has_sticks() or (state.has('Kokiri Sword') and state.can_use('Dins Fire'))) set_rule(world.get_location('Jabu Jabus Belly MQ Map Chest'), lambda state: state.has_explosives()) set_rule(world.get_location('Jabu Jabus Belly MQ Entry Side Chest'), lambda state: state.has_slingshot()) # GS set_rule(world.get_location('GS Jabu Jabu MQ Boomerang Room'), lambda state: state.can_play('Song of Time')) - set_rule(world.get_location('GS Jabu Jabu MQ Tailpasaran Room'), lambda state: state.has_sticks() or state.can_use('Dins Fire')) + set_rule( + world.get_location('GS Jabu Jabu MQ Tailpasaran Room'), + lambda state: state.has_sticks() or state.can_use('Dins Fire')) set_rule(world.get_location('GS Jabu Jabu MQ Invisible Enemies Room'), lambda state: state.can_see_with_lens()) # Forest Temple Vanilla def dung_rules_fot0(world): set_rule(world.get_entrance('Forest Temple Song of Time Block'), lambda state: state.can_play('Song of Time')) set_rule(world.get_entrance('Forest Temple Lobby Eyeball Switch'), lambda state: state.can_use('Bow')) - set_rule(world.get_entrance('Forest Temple Lobby Locked Door'), lambda state: state.has('Small Key (Forest Temple)', 1)) - set_rule(world.get_entrance('Forest Temple Well Connection'), lambda state: state.can_use('Iron Boots') or state.can_use('Longshot') or state.has('Progressive Scale', 2) or (world.logic_tricks and state.can_use('Hookshot'))) #Longshot can grab some very high up vines to drain the well. + set_rule( + world.get_entrance('Forest Temple Lobby Locked Door'), + lambda state: state.has('Small Key (Forest Temple)', 1)) + set_rule( + world.get_entrance('Forest Temple Well Connection'), + lambda state: state.can_use('Iron Boots') or + state.can_use('Longshot') or + state.has('Progressive Scale', 2) or + (world.logic_tricks and state.can_use('Hookshot'))) #Longshot can grab some very high up vines to drain the well. set_rule(world.get_entrance('Forest Temple Scarecrows Song'), lambda state: False) #For some reason you can't actually activate this from below. Cool game. set_rule(world.get_entrance('Forest Temple Elevator'), lambda state: state.can_use('Bow')) set_rule(world.get_entrance('Forest Temple Outside Backdoor'), lambda state: state.can_use('Hover Boots')) - set_rule(world.get_entrance('Forest Temple Twisted Hall'), lambda state: state.has('Progressive Strength Upgrade') and state.has('Small Key (Forest Temple)', 3)) - set_rule(world.get_entrance('Forest Temple Straightened Hall'), lambda state: state.has('Progressive Strength Upgrade') and state.has('Small Key (Forest Temple)', 2) and state.can_use('Bow')) - set_rule(world.get_entrance('Forest Temple Drop to Falling Room'), lambda state: state.has('Small Key (Forest Temple)', 5) and (state.has('Bow') or state.can_use('Dins Fire'))) - set_rule(world.get_location('Forest Temple Block Push Chest'), lambda state: state.has('Progressive Strength Upgrade') and state.can_use('Bow')) + set_rule( + world.get_entrance('Forest Temple Twisted Hall'), + lambda state: state.has('Progressive Strength Upgrade') and state.has('Small Key (Forest Temple)', 3)) + set_rule( + world.get_entrance('Forest Temple Straightened Hall'), + lambda state: state.has('Progressive Strength Upgrade') and + state.has('Small Key (Forest Temple)', 2) and + state.can_use('Bow')) + set_rule( + world.get_entrance('Forest Temple Drop to Falling Room'), + lambda state: state.has('Small Key (Forest Temple)', 5) and + (state.has('Bow') or state.can_use('Dins Fire'))) + set_rule( + world.get_location('Forest Temple Block Push Chest'), + lambda state: state.has('Progressive Strength Upgrade') and state.can_use('Bow')) set_rule(world.get_location('Forest Temple Red Poe Chest'), lambda state: state.can_use('Bow')) set_rule(world.get_location('Forest Temple Blue Poe Chest'), lambda state: state.can_use('Bow')) @@ -509,27 +1059,55 @@ def dung_rules_fot0(world): set_rule(world.get_location('Phantom Ganon Heart'), lambda state: state.has('Boss Key (Forest Temple)')) # GS - set_rule(world.get_location('GS Forest Temple First Room'), lambda state: state.can_use('Hookshot') or state.can_use('Bow') or state.can_use('Dins Fire')) + set_rule( + world.get_location('GS Forest Temple First Room'), + lambda state: state.can_use('Hookshot') or state.can_use('Bow') or state.can_use('Dins Fire')) set_rule(world.get_location('GS Forest Temple Lobby'), lambda state: state.can_use('Hookshot')) set_rule(world.get_location('GS Forest Temple Outdoor East'), lambda state: state.can_use('Hookshot')) - set_rule(world.get_location('GS Forest Temple Outdoor West'), lambda state: state.can_use('Longshot') or (state.can_use('Hookshot') and state.can_reach('Forest Temple Outside Upper Ledge'))) + set_rule( + world.get_location('GS Forest Temple Outdoor West'), + lambda state: state.can_use('Longshot') or + (state.can_use('Hookshot') and state.can_reach('Forest Temple Outside Upper Ledge'))) set_rule(world.get_location('GS Forest Temple Basement'), lambda state: state.can_use('Hookshot')) # Forest Temple MQ def dung_rules_fotmq(world): - set_rule(world.get_entrance('Forest Temple Lobby Locked Door'), lambda state: state.has('Small Key (Forest Temple)', 1)) + set_rule( + world.get_entrance('Forest Temple Lobby Locked Door'), + lambda state: state.has('Small Key (Forest Temple)', 1)) set_rule(world.get_entrance('Forest Temple West Eye Switch'), lambda state: state.can_use('Bow')) set_rule(world.get_entrance('Forest Temple East Eye Switch'), lambda state: state.can_use('Bow')) - set_rule(world.get_entrance('Forest Temple Crystal Switch Jump'), lambda state: (state.has_bombchus() and world.logic_tricks) or state.has('Progressive Strength Upgrade') or state.can_use('Hover Boots')) - set_rule(world.get_entrance('Forest Temple Block Puzzle Solve'), lambda state: (state.has_bombchus() and world.logic_tricks) or state.has('Progressive Strength Upgrade')) + set_rule( + world.get_entrance('Forest Temple Crystal Switch Jump'), + lambda state: (state.has_bombchus() and world.logic_tricks) or + state.has('Progressive Strength Upgrade') or + state.can_use('Hover Boots')) + set_rule( + world.get_entrance('Forest Temple Block Puzzle Solve'), + lambda state: (state.has_bombchus() and world.logic_tricks) or + state.has('Progressive Strength Upgrade')) set_rule(world.get_entrance('Forest Temple Twisted Hall'), lambda state: state.has('Small Key (Forest Temple)', 4)) - set_rule(world.get_entrance('Forest Temple Well Connection'), lambda state: state.can_use('Iron Boots') or state.can_use('Longshot') or state.has('Progressive Scale', 2)) + set_rule( + world.get_entrance('Forest Temple Well Connection'), + lambda state: state.can_use('Iron Boots') or state.can_use('Longshot') or state.has('Progressive Scale', 2)) set_rule(world.get_entrance('Forest Temple Webs'), lambda state: state.can_use('Fire Arrows')) - set_rule(world.get_entrance('Forest Temple Climb to Top Ledges'), lambda state: state.can_use('Longshot') or state.can_use('Hover Boots') or state.can_play('Song of Time') or (world.logic_tricks and state.can_use('Hookshot'))) + set_rule( + world.get_entrance('Forest Temple Climb to Top Ledges'), + lambda state: state.can_use('Longshot') or + state.can_use('Hover Boots') or + state.can_play('Song of Time') or + (world.logic_tricks and state.can_use('Hookshot'))) set_rule(world.get_entrance('Forest Temple Longshot to NE Outdoors Ledge'), lambda state: state.can_use('Longshot')) set_rule(world.get_entrance('Forest Temple Song of Time Block Climb'), lambda state: state.can_play('Song of Time')) - set_rule(world.get_entrance('Forest Temple Drop to Falling Room'), lambda state: state.has('Small Key (Forest Temple)', 5) and (state.can_use('Bow') or state.can_use('Dins Fire'))) # Only 5 keys because the door you could 'waste' your key on is the door you're trying to use keys to get to. - set_rule(world.get_entrance('Forest Temple Elevator'), lambda state: state.can_use('Bow') and state.has('Small Key (Forest Temple)', 6) and state.can_reach('Forest Temple Bow Region')) + set_rule( + world.get_entrance('Forest Temple Drop to Falling Room'), + lambda state: state.has('Small Key (Forest Temple)', 5) and + (state.can_use('Bow') or state.can_use('Dins Fire'))) # Only 5 keys because the door you could 'waste' your key on is the door you're trying to use keys to get to. + set_rule( + world.get_entrance('Forest Temple Elevator'), + lambda state: state.can_use('Bow') and + state.has('Small Key (Forest Temple)', 6) and + state.can_reach('Forest Temple Bow Region')) if not (world.keysanity or world.tokensanity != 'off'): # Normal seeds will fail to generate if the Boss Key is placed at this location, as it must be a key to progress into the temple. This solution not ideal as it does not allow the Boss Key to appear at this location in beatable only seeds. forbid_item(world.get_location('Forest Temple MQ First Chest'), 'Boss Key (Forest Temple)') set_rule(world.get_location('Forest Temple MQ Chest Behind Lobby'), lambda state: state.can_play('Song of Time')) @@ -547,100 +1125,270 @@ def dung_rules_fotmq(world): # Fire Temple Vanilla def dung_rules_fit0(world): - set_rule(world.get_entrance('Fire Temple Early Climb'), lambda state: state.has_GoronTunic() and state.has('Small Key (Fire Temple)', 4) and state.has('Progressive Strength Upgrade') and (state.has_explosives() or ((state.has_bow() or state.has('Progressive Hookshot')) and state.is_adult()))) - set_rule(world.get_entrance('Fire Temple Fire Maze Escape'), lambda state: state.has('Small Key (Fire Temple)', 8) or (state.has('Small Key (Fire Temple)', 7) and state.can_use('Hover Boots') and state.can_use('Hammer'))) - set_rule(world.get_location('Fire Temple Fire Dancer Chest'), lambda state: (state.has('Small Key (Fire Temple)', 8) or not world.keysanity) and state.can_use('Hammer')) - set_rule(world.get_location('Fire Temple Boss Key Chest'), lambda state: (state.has('Small Key (Fire Temple)', 8) or not world.keysanity) and state.can_use('Hammer')) - set_rule(world.get_location('Fire Temple Big Lava Room Bombable Chest'), lambda state: state.has('Small Key (Fire Temple)', 2) and state.has_explosives()) - set_rule(world.get_location('Fire Temple Big Lava Room Open Chest'), lambda state: state.has('Small Key (Fire Temple)', 2)) - set_rule(world.get_location('Fire Temple Map Chest'), lambda state: state.has('Small Key (Fire Temple)', 6) or (state.has('Small Key (Fire Temple)', 5) and state.can_use('Bow'))) - set_rule(world.get_location('Fire Temple Boulder Maze Upper Chest'), lambda state: state.has('Small Key (Fire Temple)', 6)) - set_rule(world.get_location('Fire Temple Boulder Maze Bombable Pit'), lambda state: state.has('Small Key (Fire Temple)', 6) and state.has_explosives()) - set_rule(world.get_location('Fire Temple Scarecrow Chest'), lambda state: state.has('Small Key (Fire Temple)', 6) and state.can_use('Scarecrow')) + set_rule( + world.get_entrance('Fire Temple Early Climb'), + lambda state: state.has_GoronTunic() and + state.has('Small Key (Fire Temple)', 4) and + state.has('Progressive Strength Upgrade') and + (state.has_explosives() or ((state.has_bow() or state.has('Progressive Hookshot')) and state.is_adult()))) + set_rule( + world.get_entrance('Fire Temple Fire Maze Escape'), + lambda state: state.has('Small Key (Fire Temple)', 8) or + (state.has('Small Key (Fire Temple)', 7) and state.can_use('Hover Boots') and state.can_use('Hammer'))) + set_rule( + world.get_location('Fire Temple Fire Dancer Chest'), + lambda state: (state.has('Small Key (Fire Temple)', 8) or not world.keysanity) and + state.can_use('Hammer')) + set_rule( + world.get_location('Fire Temple Boss Key Chest'), + lambda state: (state.has('Small Key (Fire Temple)', 8) or not world.keysanity) and state.can_use('Hammer')) + set_rule( + world.get_location('Fire Temple Big Lava Room Bombable Chest'), + lambda state: state.has('Small Key (Fire Temple)', 2) and state.has_explosives()) + set_rule( + world.get_location('Fire Temple Big Lava Room Open Chest'), + lambda state: state.has('Small Key (Fire Temple)', 2)) + set_rule( + world.get_location('Fire Temple Map Chest'), + lambda state: state.has('Small Key (Fire Temple)', 6) or + (state.has('Small Key (Fire Temple)', 5) and state.can_use('Bow'))) + set_rule( + world.get_location('Fire Temple Boulder Maze Upper Chest'), + lambda state: state.has('Small Key (Fire Temple)', 6)) + set_rule( + world.get_location('Fire Temple Boulder Maze Bombable Pit'), + lambda state: state.has('Small Key (Fire Temple)', 6) and state.has_explosives()) + set_rule( + world.get_location('Fire Temple Scarecrow Chest'), + lambda state: state.has('Small Key (Fire Temple)', 6) and state.can_use('Scarecrow')) set_rule(world.get_location('Fire Temple Compass Chest'), lambda state: state.has('Small Key (Fire Temple)', 7)) - set_rule(world.get_location('Fire Temple Highest Goron Chest'), lambda state: (state.can_play('Song of Time') or world.logic_tricks) and state.can_use('Hammer')) + set_rule( + world.get_location('Fire Temple Highest Goron Chest'), + lambda state: (state.can_play('Song of Time') or world.logic_tricks) and state.can_use('Hammer')) set_rule(world.get_location('Fire Temple Megaton Hammer Chest'), lambda state: state.has_explosives()) # Boss - set_rule(world.get_location('Volvagia'), lambda state: state.has_GoronTunic() and state.can_use('Hammer') and state.has('Boss Key (Fire Temple)') and (state.has('Hover Boots') or (state.can_reach('Fire Temple Upper') and (state.can_play('Song of Time') or state.has_explosives())))) - set_rule(world.get_location('Volvagia Heart'), lambda state: state.has_GoronTunic() and state.can_use('Hammer') and state.has('Boss Key (Fire Temple)') and (state.has('Hover Boots') or (state.can_reach('Fire Temple Upper') and (state.can_play('Song of Time') or state.has_explosives())))) + set_rule( + world.get_location('Volvagia'), + lambda state: state.has_GoronTunic() and + state.can_use('Hammer') and + state.has('Boss Key (Fire Temple)') and + (state.has('Hover Boots') or (state.can_reach('Fire Temple Upper') and (state.can_play('Song of Time') or state.has_explosives())))) + set_rule( + world.get_location('Volvagia Heart'), + lambda state: state.has_GoronTunic() and + state.can_use('Hammer') and + state.has('Boss Key (Fire Temple)') and + (state.has('Hover Boots') or (state.can_reach('Fire Temple Upper') and (state.can_play('Song of Time') or state.has_explosives())))) # GS - set_rule(world.get_location('GS Fire Temple Song of Time Room'), lambda state: state.has('Small Key (Fire Temple)', 2) and state.can_play('Song of Time')) - set_rule(world.get_location('GS Fire Temple Unmarked Bomb Wall'), lambda state: state.has('Small Key (Fire Temple)', 4) and state.has_explosives()) - set_rule(world.get_location('GS Fire Temple East Tower Climb'), lambda state: state.has('Small Key (Fire Temple)', 6) and state.can_use('Scarecrow')) - set_rule(world.get_location('GS Fire Temple East Tower Top'), lambda state: state.has('Small Key (Fire Temple)', 6) and state.can_use('Scarecrow')) - set_rule(world.get_location('GS Fire Temple Basement'), lambda state: (state.has('Small Key (Fire Temple)', 8) or not world.keysanity) and state.can_use('Hammer')) + set_rule( + world.get_location('GS Fire Temple Song of Time Room'), + lambda state: state.has('Small Key (Fire Temple)', 2) and state.can_play('Song of Time')) + set_rule( + world.get_location('GS Fire Temple Unmarked Bomb Wall'), + lambda state: state.has('Small Key (Fire Temple)', 4) and state.has_explosives()) + set_rule( + world.get_location('GS Fire Temple East Tower Climb'), + lambda state: state.has('Small Key (Fire Temple)', 6) and state.can_use('Scarecrow')) + set_rule( + world.get_location('GS Fire Temple East Tower Top'), + lambda state: state.has('Small Key (Fire Temple)', 6) and state.can_use('Scarecrow')) + set_rule( + world.get_location('GS Fire Temple Basement'), + lambda state: (state.has('Small Key (Fire Temple)', 8) or not world.keysanity) and state.can_use('Hammer')) # Fire Temple MQ def dung_rules_fitmq(world): - set_rule(world.get_entrance('Fire Temple Lower Locked Door'), lambda state: state.has('Small Key (Fire Temple)', 5) and (state.has_explosives() or state.has('Hammer') or state.has('Progressive Hookshot'))) + set_rule( + world.get_entrance('Fire Temple Lower Locked Door'), + lambda state: state.has('Small Key (Fire Temple)', 5) and + (state.has_explosives() or state.has('Hammer') or state.has('Progressive Hookshot'))) set_rule(world.get_entrance('Fire Temple Hammer Statue'), lambda state: state.can_use('Hammer')) - set_rule(world.get_entrance('Fire Temple Early Climb'), lambda state: state.has_GoronTunic() and state.has('Small Key (Fire Temple)', 2) and state.has_fire_source()) - set_rule(world.get_entrance('Fire Temple Maze Climb'), lambda state: (state.has_explosives() or world.logic_tricks) and state.can_use('Hookshot')) - set_rule(world.get_entrance('Fire Temple Maze Escape'), lambda state: state.has('Small Key (Fire Temple)', 3) and state.has_bow()) - set_rule(world.get_location('Fire Temple MQ Chest Near Boss'), lambda state: (state.has('Hover Boots') and state.has_fire_source()) or (state.has('Progressive Hookshot') and (state.can_use('Fire Arrows') or (state.can_use('Dins Fire') and (world.difficulty != 'ohko' or state.has_GoronTunic() or state.has_bow() or state.has('Progressive Hookshot', 2)))))) + set_rule( + world.get_entrance('Fire Temple Early Climb'), + lambda state: state.has_GoronTunic() and state.has('Small Key (Fire Temple)', 2) and state.has_fire_source()) + set_rule( + world.get_entrance('Fire Temple Maze Climb'), + lambda state: (state.has_explosives() or world.logic_tricks) and state.can_use('Hookshot')) + set_rule( + world.get_entrance('Fire Temple Maze Escape'), + lambda state: state.has('Small Key (Fire Temple)', 3) and state.has_bow()) + set_rule( + world.get_location('Fire Temple MQ Chest Near Boss'), + lambda state: (state.has('Hover Boots') and state.has_fire_source()) or + (state.has('Progressive Hookshot') and + (state.can_use('Fire Arrows') or + (state.can_use('Dins Fire') and + (world.difficulty != 'ohko' or + state.has_GoronTunic() or + state.has_bow() or + state.has('Progressive Hookshot', 2)))))) set_rule(world.get_location('Fire Temple MQ Map Chest'), lambda state: state.has('Hammer')) - set_rule(world.get_location('Fire Temple MQ Boss Key Chest'), lambda state: state.has_fire_source() and (state.has_bow() or world.logic_tricks) and state.has('Progressive Hookshot')) - set_rule(world.get_location('Fire Temple MQ Big Lava Room Bombable Chest'), lambda state: state.has_fire_source() and state.has('Progressive Hookshot') and state.has_explosives()) + set_rule( + world.get_location('Fire Temple MQ Boss Key Chest'), + lambda state: state.has_fire_source() and + (state.has_bow() or world.logic_tricks) and + state.has('Progressive Hookshot')) + set_rule( + world.get_location('Fire Temple MQ Big Lava Room Bombable Chest'), + lambda state: state.has_fire_source() and state.has('Progressive Hookshot') and state.has_explosives()) set_rule(world.get_location('Fire Temple MQ Maze Side Room'), lambda state: state.has_explosives()) set_rule(world.get_location('Fire Temple MQ Compass Chest'), lambda state: state.has_explosives()) - set_rule(world.get_location('Fire Temple MQ West Tower Top Chest'), lambda state: state.has('Small Key (Fire Temple)', 4)) + set_rule( + world.get_location('Fire Temple MQ West Tower Top Chest'), + lambda state: state.has('Small Key (Fire Temple)', 4)) # Boss - set_rule(world.get_entrance('Fire Temple Boss Door'), lambda state: state.has_fire_source() and state.has_GoronTunic() and state.has('Hammer') and state.has('Boss Key (Fire Temple)') and (state.has('Hover Boots') or state.can_reach('Fire Temple Upper'))) + set_rule( + world.get_entrance('Fire Temple Boss Door'), + lambda state: state.has_fire_source() and + state.has_GoronTunic() and + state.has('Hammer') and + state.has('Boss Key (Fire Temple)') and + (state.has('Hover Boots') or state.can_reach('Fire Temple Upper'))) # GS - set_rule(world.get_location('GS Fire Temple MQ East Tower Top'), lambda state: state.can_play('Song of Time') or state.can_use('Longshot')) - set_rule(world.get_location('GS Fire Temple MQ Fire Wall Maze Side Room'), lambda state: state.can_play('Song of Time') or state.has('Hover Boots')) + set_rule( + world.get_location('GS Fire Temple MQ East Tower Top'), + lambda state: state.can_play('Song of Time') or state.can_use('Longshot')) + set_rule( + world.get_location('GS Fire Temple MQ Fire Wall Maze Side Room'), + lambda state: state.can_play('Song of Time') or state.has('Hover Boots')) set_rule(world.get_location('GS Fire Temple MQ Fire Wall Maze Center'), lambda state: state.has_explosives()) - set_rule(world.get_location('GS Fire Temple MQ Above Fire Wall Maze'), lambda state: state.has('Small Key (Fire Temple)', 5) or ((item_name(state, 'GS Fire Temple MQ Above Fire Wall Maze') == 'Small Key (Fire Temple)' or not (world.keys_placed or item_name(state, 'GS Fire Temple MQ Above Fire Wall Maze') == 'Boss Key (Fire Temple)')) and state.has('Small Key (Fire Temple)', 4))) + set_rule( + world.get_location('GS Fire Temple MQ Above Fire Wall Maze'), + lambda state: state.has('Small Key (Fire Temple)', 5) or + ((item_name(state, 'GS Fire Temple MQ Above Fire Wall Maze') == 'Small Key (Fire Temple)' or + not (world.keys_placed or item_name(state, 'GS Fire Temple MQ Above Fire Wall Maze') == 'Boss Key (Fire Temple)')) and + state.has('Small Key (Fire Temple)', 4))) # Water Temple Vanilla def dung_rules_wt0(world): - set_rule(world.get_entrance('Water Temple Central Pillar'), lambda state: (state.has_bow() or state.can_use('Dins Fire') or state.has('Small Key (Water Temple)', 5)) and state.can_play('Zeldas Lullaby') and state.has('Iron Boots')) - set_rule(world.get_entrance('Water Temple Upper Locked Door'), lambda state: state.has('Small Key (Water Temple)', 5) and state.has('Iron Boots') and (state.can_play('Zeldas Lullaby') or world.keysanity)) + set_rule( + world.get_entrance('Water Temple Central Pillar'), + lambda state: (state.has_bow() or state.can_use('Dins Fire') or state.has('Small Key (Water Temple)', 5)) and + state.can_play('Zeldas Lullaby') and state.has('Iron Boots')) + set_rule( + world.get_entrance('Water Temple Upper Locked Door'), + lambda state: state.has('Small Key (Water Temple)', 5) and + state.has('Iron Boots') and + (state.can_play('Zeldas Lullaby') or world.keysanity)) set_rule(world.get_location('Water Temple Map Chest'), lambda state: state.has('Iron Boots')) set_rule(world.get_location('Water Temple Compass Chest'), lambda state: state.has('Iron Boots')) - set_rule(world.get_location('Water Temple Torches Chest'), lambda state: (state.has_bow() or state.can_use('Dins Fire')) and state.can_play('Zeldas Lullaby') and state.has('Iron Boots')) - set_rule(world.get_location('Water Temple Dragon Chest'), lambda state: state.has('Iron Boots') and ((state.has('Progressive Strength Upgrade') and state.can_play('Zeldas Lullaby')) or (state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity) and state.can_play('Song of Time') and state.has_bow()))) - set_rule(world.get_location('Water Temple Central Bow Target Chest'), lambda state: state.has_bow() and state.has('Iron Boots') and state.has('Progressive Strength Upgrade') and state.can_play('Zeldas Lullaby') and (state.has('Hover Boots') or state.can_use('Longshot'))) - set_rule(world.get_location('Water Temple Boss Key Chest'), lambda state: (state.has('Small Key (Water Temple)', 6) and state.has('Iron Boots') and (state.can_play('Zeldas Lullaby') or world.keysanity) and ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and state.can_use('Longshot')) or (state.has('Small Key (Water Temple)', 5) and (item_name(state, 'Water Temple Boss Key Chest') == 'Small Key (Water Temple)' or not (world.keys_placed or item_name(state, 'Water Temple Boss Key Chest') == 'Boss Key (Water Temple)')))) #If key for key, this lets the logic reduce the small key reqs for every other locked door. + set_rule( + world.get_location('Water Temple Torches Chest'), + lambda state: (state.has_bow() or state.can_use('Dins Fire')) and + state.can_play('Zeldas Lullaby') and + state.has('Iron Boots')) + set_rule( + world.get_location('Water Temple Dragon Chest'), + lambda state: state.has('Iron Boots') and + ((state.has('Progressive Strength Upgrade') and state.can_play('Zeldas Lullaby')) or + (state.has('Small Key (Water Temple)', 6) and + (state.can_play('Zeldas Lullaby') or world.keysanity) and + state.can_play('Song of Time') and + state.has_bow()))) + set_rule( + world.get_location('Water Temple Central Bow Target Chest'), + lambda state: state.has_bow() and + state.has('Iron Boots') and + state.has('Progressive Strength Upgrade') and + state.can_play('Zeldas Lullaby') and + (state.has('Hover Boots') or state.can_use('Longshot'))) + set_rule( + world.get_location('Water Temple Boss Key Chest'), + lambda state: (state.has('Small Key (Water Temple)', 6) and + state.has('Iron Boots') and + (state.can_play('Zeldas Lullaby') or world.keysanity) and + ((state.has_explosives() and state.has('Progressive Strength Upgrade')) or state.has('Hover Boots')) and + state.can_use('Longshot')) or + (state.has('Small Key (Water Temple)', 5) and + (item_name(state, 'Water Temple Boss Key Chest') == 'Small Key (Water Temple)' or + not (world.keys_placed or item_name(state, 'Water Temple Boss Key Chest') == 'Boss Key (Water Temple)')))) #If key for key, this lets the logic reduce the small key reqs for every other locked door. set_rule(world.get_location('Water Temple Cracked Wall Chest'), lambda state: state.has_explosives()) - set_rule(world.get_location('Water Temple Dark Link Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and (state.can_play('Zeldas Lullaby') or world.keysanity)) - set_rule(world.get_location('Water Temple River Chest'), lambda state: state.has('Small Key (Water Temple)', 6) and state.can_play('Song of Time') and state.has_bow() and (state.can_play('Zeldas Lullaby') or world.keysanity)) + set_rule( + world.get_location('Water Temple Dark Link Chest'), + lambda state: state.has('Small Key (Water Temple)', 6) and + (state.can_play('Zeldas Lullaby') or world.keysanity)) + set_rule( + world.get_location('Water Temple River Chest'), + lambda state: state.has('Small Key (Water Temple)', 6) and + state.can_play('Song of Time') and + state.has_bow() and + (state.can_play('Zeldas Lullaby') or world.keysanity)) set_rule(world.get_location('Water Temple Central Pillar Chest'), lambda state: state.has_ZoraTunic()) # Boss - set_rule(world.get_location('Morpha'), lambda state: state.has('Boss Key (Water Temple)') and state.can_use('Longshot')) - set_rule(world.get_location('Morpha Heart'), lambda state: state.has('Boss Key (Water Temple)') and state.can_use('Longshot') and state.has('Iron Boots')) + set_rule( + world.get_location('Morpha'), + lambda state: state.has('Boss Key (Water Temple)') and state.can_use('Longshot')) + set_rule( + world.get_location('Morpha Heart'), + lambda state: state.has('Boss Key (Water Temple)') and + state.can_use('Longshot') and + state.has('Iron Boots')) # GS - set_rule(world.get_location('GS Water Temple South Basement'), lambda state: state.has_explosives() and state.can_play('Zeldas Lullaby') and state.has('Iron Boots')) - set_rule(world.get_location('GS Water Temple Serpent River'), lambda state: state.can_play('Song of Time') and state.has('Small Key (Water Temple)', 6)) + set_rule( + world.get_location('GS Water Temple South Basement'), + lambda state: state.has_explosives() and state.can_play('Zeldas Lullaby') and state.has('Iron Boots')) + set_rule( + world.get_location('GS Water Temple Serpent River'), + lambda state: state.can_play('Song of Time') and state.has('Small Key (Water Temple)', 6)) set_rule(world.get_location('GS Water Temple Falling Platform Room'), lambda state: state.can_use('Longshot')) - set_rule(world.get_location('GS Water Temple Central Room'), lambda state: state.can_use('Longshot') or state.can_use('Farores Wind')) - set_rule(world.get_location('GS Water Temple Near Boss Key Chest'), lambda state: state.can_use('Longshot') and state.has('Iron Boots') and (state.can_play('Zeldas Lullaby') or world.keysanity) and state.has('Small Key (Water Temple)', 5)) # Longshot just reaches without the need to actually go near + set_rule( + world.get_location('GS Water Temple Central Room'), + lambda state: state.can_use('Longshot') or state.can_use('Farores Wind')) + set_rule( + world.get_location('GS Water Temple Near Boss Key Chest'), + lambda state: state.can_use('Longshot') and + state.has('Iron Boots') and + (state.can_play('Zeldas Lullaby') or world.keysanity) and + state.has('Small Key (Water Temple)', 5)) # Longshot just reaches without the need to actually go near # Water Temple MQ def dung_rules_wtmq(world): - set_rule(world.get_entrance('Water Temple Water Level Switch'), lambda state: state.can_play('Zeldas Lullaby') and state.has('Iron Boots')) - set_rule(world.get_entrance('Water Temple Locked Door'), lambda state: state.has('Small Key (Water Temple)') and state.can_use('Longshot') and state.has('Iron Boots')) - set_rule(world.get_entrance('Water Temple Basement Gates Switch'), lambda state: state.can_use('Dins Fire') and (state.has('Hover Boots') or state.has_ocarina())) - set_rule(world.get_location('Water Temple MQ Map Chest'), lambda state: state.has_fire_source() and state.has('Iron Boots')) - set_rule(world.get_location('Water Temple MQ Central Pillar Chest'), lambda state: state.has_ZoraTunic() and state.has('Iron Boots') and (state.can_use('Fire Arrows') or (state.can_use('Dins Fire') and state.can_play('Song of Time')))) - set_rule(world.get_location('Water Temple MQ Compass Chest'), lambda state: state.has_bow() or state.can_use('Dins Fire')) + set_rule( + world.get_entrance('Water Temple Water Level Switch'), + lambda state: state.can_play('Zeldas Lullaby') and state.has('Iron Boots')) + set_rule( + world.get_entrance('Water Temple Locked Door'), + lambda state: state.has('Small Key (Water Temple)') and state.can_use('Longshot') and state.has('Iron Boots')) + set_rule( + world.get_entrance('Water Temple Basement Gates Switch'), + lambda state: state.can_use('Dins Fire') and (state.has('Hover Boots') or state.has_ocarina())) + set_rule( + world.get_location('Water Temple MQ Map Chest'), + lambda state: state.has_fire_source() and state.has('Iron Boots')) + set_rule( + world.get_location('Water Temple MQ Central Pillar Chest'), + lambda state: state.has_ZoraTunic() and + state.has('Iron Boots') and + (state.can_use('Fire Arrows') or (state.can_use('Dins Fire') and state.can_play('Song of Time')))) + set_rule( + world.get_location('Water Temple MQ Compass Chest'), + lambda state: state.has_bow() or state.can_use('Dins Fire')) set_rule(world.get_location('Water Temple MQ Boss Key Chest'), lambda state: state.can_use('Dins Fire')) # Boss - set_rule(world.get_location('Morpha'), lambda state: state.has('Boss Key (Water Temple)') and state.can_use('Longshot')) - set_rule(world.get_location('Morpha Heart'), lambda state: state.has('Boss Key (Water Temple)') and state.can_use('Longshot') and state.has('Iron Boots')) + set_rule( + world.get_location('Morpha'), + lambda state: state.has('Boss Key (Water Temple)') and state.can_use('Longshot')) + set_rule( + world.get_location('Morpha Heart'), + lambda state: state.has('Boss Key (Water Temple)') and state.can_use('Longshot') and state.has('Iron Boots')) # GS set_rule(world.get_location('GS Water Temple MQ Lizalfos Hallway'), lambda state: state.can_use('Dins Fire')) set_rule(world.get_location('GS Water Temple MQ Before Upper Water Switch'), lambda state: state.can_use('Longshot')) set_rule(world.get_location('GS Water Temple MQ South Basement'), lambda state: state.can_use('Fire Arrows')) - set_rule(world.get_location('GS Water Temple MQ North Basement'), lambda state: state.has('Small Key (Water Temple)', 2) or ((item_name(state, 'GS Water Temple MQ North Basement') == 'Small Key (Water Temple)' or not (world.keys_placed or item_name(state, 'GS Water Temple MQ North Basement') == 'Boss Key (Water Temple)')) and state.has('Small Key (Water Temple)'))) + set_rule( + world.get_location('GS Water Temple MQ North Basement'), + lambda state: state.has('Small Key (Water Temple)', 2) or + ((item_name(state, 'GS Water Temple MQ North Basement') == 'Small Key (Water Temple)' or + not (world.keys_placed or item_name(state, 'GS Water Temple MQ North Basement') == 'Boss Key (Water Temple)')) and + state.has('Small Key (Water Temple)'))) # Spirit Temple Vanilla def dung_rules_spt0(world): @@ -648,121 +1396,412 @@ def dung_rules_spt0(world): set_rule(world.get_entrance('Spirit Temple Silver Block'), lambda state: state.can_use('Silver Gauntlets')) set_rule(world.get_entrance('Child Spirit Temple Climb'), lambda state: state.has('Small Key (Spirit Temple)', 1)) set_rule(world.get_entrance('Child Spirit Temple Passthrough'), lambda state: state.has_explosives()) - set_rule(world.get_entrance('Adult Spirit Temple Passthrough'), lambda state: state.has('Small Key (Spirit Temple)', 1)) - set_rule(world.get_entrance('Spirit Temple Central Locked Door'), lambda state: state.has('Small Key (Spirit Temple)', 4) and state.can_use('Silver Gauntlets')) - set_rule(world.get_entrance('Spirit Temple Final Locked Door'), lambda state: state.has('Small Key (Spirit Temple)', 5) and state.has_projectile('adult')) - set_rule(world.get_location('Spirit Temple Child Left Chest'), lambda state: (state.has('Boomerang') or state.has_slingshot() or (state.has_bombchus() and world.logic_tricks)) and (state.has_sticks() or state.has_explosives() or ((state.has_nuts() or state.has('Boomerang')) and (state.has('Kokiri Sword') or state.has_slingshot())))) - set_rule(world.get_location('Spirit Temple Child Right Chest'), lambda state: (state.has('Boomerang') or state.has_slingshot() or (state.has_bombchus() and world.logic_tricks)) and (state.has_sticks() or state.has_explosives() or ((state.has_nuts() or state.has('Boomerang')) and (state.has('Kokiri Sword') or state.has_slingshot()))) and (state.has_sticks() or state.can_use('Dins Fire'))) - set_rule(world.get_location('Spirit Temple Compass Chest'), lambda state: state.has('Progressive Hookshot') and state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('Spirit Temple Early Adult Right Chest'), lambda state: state.has_bow() or state.has('Progressive Hookshot') or state.has_bombchus()) #requires a very specific Bombchu use, Hover Boots can be skipped by jumping on top of the rolling rock. - set_rule(world.get_location('Spirit Temple First Mirror Right Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3)) - set_rule(world.get_location('Spirit Temple First Mirror Left Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3)) - # All of these paths that include a check for bombchus_in_logic need to ensure that you have access to bombchu refills as well. That's currently always true thanks to bombchu bowling. But other the sources require bombchus already to be bought, which is not how we'd need it to work if bombchu refills were suddenly to become more scarce. So for now I opted not to put in the check for bombchu refills. - set_rule(world.get_location('Spirit Temple Map Chest'), lambda state: ((state.has_explosives() or state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and world.bombchus_in_logic)) and state.has('Magic Meter') and (state.has('Dins Fire') or (state.has('Fire Arrows') and state.has_bow() and state.has_sticks()))) or (state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit') and state.has_sticks()) or (state.has('Small Key (Spirit Temple)', 3) and state.can_use('Fire Arrows') and state.can_use('Silver Gauntlets'))) - set_rule(world.get_location('Spirit Temple Child Climb East Chest'), lambda state: state.has_projectile('both') or ((state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and world.bombchus_in_logic)) and state.can_use('Silver Gauntlets') and state.has_projectile('adult')) or (state.has('Small Key (Spirit Temple)', 5) and state.can_play('Requiem of Spirit') and state.has_projectile('child'))) - set_rule(world.get_location('Spirit Temple Child Climb North Chest'), lambda state: state.has_projectile('both') or ((state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and world.bombchus_in_logic)) and state.can_use('Silver Gauntlets') and state.has_projectile('adult')) or (state.has('Small Key (Spirit Temple)', 5) and state.can_play('Requiem of Spirit') and state.has_projectile('child'))) - set_rule(world.get_location('Spirit Temple Sun Block Room Chest'), lambda state: ((state.has_explosives() or state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and world.bombchus_in_logic)) and state.has('Magic Meter') and (state.has('Dins Fire') or (state.has('Fire Arrows') and state.has_bow() and state.has_sticks()))) or (state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit') and state.has_sticks()) or (state.has('Small Key (Spirit Temple)', 3) and state.can_use('Fire Arrows') and state.can_use('Silver Gauntlets'))) - set_rule(world.get_location('Spirit Temple Statue Hand Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3) and state.can_use('Silver Gauntlets') and state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('Spirit Temple NE Main Room Chest'), lambda state: state.has('Small Key (Spirit Temple)', 3) and state.can_use('Silver Gauntlets') and state.can_play('Zeldas Lullaby') and (state.has('Progressive Hookshot') or state.has('Hover Boots'))) - set_rule(world.get_location('Mirror Shield Chest'), lambda state: state.has('Small Key (Spirit Temple)', 4) and state.can_use('Silver Gauntlets') and state.has_explosives()) - set_rule(world.get_location('Silver Gauntlets Chest'), lambda state: (state.has('Small Key (Spirit Temple)', 3) and state.has('Progressive Hookshot', 2) and state.has_explosives()) or state.has('Small Key (Spirit Temple)', 5)) - set_rule(world.get_location('Spirit Temple Near Four Armos Chest'), lambda state: state.has('Mirror Shield') and state.has_explosives()) - set_rule(world.get_location('Spirit Temple Hallway Left Invisible Chest'), lambda state: state.can_see_with_lens() and state.has_explosives()) - set_rule(world.get_location('Spirit Temple Hallway Right Invisible Chest'), lambda state: state.can_see_with_lens() and state.has_explosives()) - set_rule(world.get_location('Spirit Temple Boss Key Chest'), lambda state: state.can_play('Zeldas Lullaby') and state.has_bow() and state.has('Progressive Hookshot') and state.can_blast_or_smash()) + set_rule( + world.get_entrance('Adult Spirit Temple Passthrough'), + lambda state: state.has('Small Key (Spirit Temple)', 1)) + set_rule( + world.get_entrance('Spirit Temple Central Locked Door'), + lambda state: state.has('Small Key (Spirit Temple)', 4) and state.can_use('Silver Gauntlets')) + set_rule( + world.get_entrance('Spirit Temple Final Locked Door'), + lambda state: state.has('Small Key (Spirit Temple)', 5) and state.has_projectile('adult')) + set_rule( + world.get_location('Spirit Temple Child Left Chest'), + lambda state: (state.has('Boomerang') or state.has_slingshot() or (state.has_bombchus() and world.logic_tricks)) and + (state.has_sticks() or + state.has_explosives() or + ((state.has_nuts() or state.has('Boomerang')) and (state.has('Kokiri Sword') or state.has_slingshot())))) + set_rule( + world.get_location('Spirit Temple Child Right Chest'), + lambda state: (state.has('Boomerang') or state.has_slingshot() or (state.has_bombchus() and world.logic_tricks)) and + (state.has_sticks() or + state.has_explosives() or + ((state.has_nuts() or state.has('Boomerang')) and (state.has('Kokiri Sword') or state.has_slingshot()))) and + (state.has_sticks() or state.can_use('Dins Fire'))) + set_rule( + world.get_location('Spirit Temple Compass Chest'), + lambda state: state.has('Progressive Hookshot') and state.can_play('Zeldas Lullaby')) + set_rule( + world.get_location('Spirit Temple Early Adult Right Chest'), + lambda state: state.has_bow() or state.has('Progressive Hookshot') or state.has_bombchus()) #requires a very specific Bombchu use, Hover Boots can be skipped by jumping on top of the rolling rock. + set_rule( + world.get_location('Spirit Temple First Mirror Right Chest'), + lambda state: state.has('Small Key (Spirit Temple)', 3)) + set_rule( + world.get_location('Spirit Temple First Mirror Left Chest'), + lambda state: state.has('Small Key (Spirit Temple)', 3)) + # All of these paths that include a check for bombchus_in_logic need to ensure that you have access to bombchu + # refills as well. That's currently always true thanks to bombchu bowling. But other the sources require bombchus + # already to be bought, which is not how we'd need it to work if bombchu refills were suddenly to become more + # scarce. So for now I opted not to put in the check for bombchu refills. + set_rule( + world.get_location('Spirit Temple Map Chest'), + lambda state: ((state.has_explosives() or state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and world.bombchus_in_logic)) and + state.has('Magic Meter') and + (state.has('Dins Fire') or (state.has('Fire Arrows') and state.has_bow() and state.has_sticks()))) or + (state.has('Small Key (Spirit Temple)', 5) and + state.has_explosives() and + state.can_play('Requiem of Spirit') and + state.has_sticks()) or + (state.has('Small Key (Spirit Temple)', 3) and + state.can_use('Fire Arrows') and + state.can_use('Silver Gauntlets'))) + set_rule( + world.get_location('Spirit Temple Child Climb East Chest'), + lambda state: state.has_projectile('both') or + ((state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and world.bombchus_in_logic)) and + state.can_use('Silver Gauntlets') and + state.has_projectile('adult')) or + (state.has('Small Key (Spirit Temple)', 5) and + state.can_play('Requiem of Spirit') and + state.has_projectile('child'))) + set_rule( + world.get_location('Spirit Temple Child Climb North Chest'), + lambda state: state.has_projectile('both') or + ((state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and world.bombchus_in_logic)) and + state.can_use('Silver Gauntlets') and + state.has_projectile('adult')) or + (state.has('Small Key (Spirit Temple)', 5) and + state.can_play('Requiem of Spirit') and + state.has_projectile('child'))) + set_rule( + world.get_location('Spirit Temple Sun Block Room Chest'), + lambda state: ((state.has_explosives() or state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and world.bombchus_in_logic)) and + state.has('Magic Meter') and + (state.has('Dins Fire') or (state.has('Fire Arrows') and state.has_bow() and state.has_sticks()))) or + (state.has('Small Key (Spirit Temple)', 5) and + state.has_explosives() and + state.can_play('Requiem of Spirit') and + state.has_sticks()) or + (state.has('Small Key (Spirit Temple)', 3) and + state.can_use('Fire Arrows') and + state.can_use('Silver Gauntlets'))) + set_rule( + world.get_location('Spirit Temple Statue Hand Chest'), + lambda state: state.has('Small Key (Spirit Temple)', 3) and + state.can_use('Silver Gauntlets') and + state.can_play('Zeldas Lullaby')) + set_rule( + world.get_location('Spirit Temple NE Main Room Chest'), + lambda state: state.has('Small Key (Spirit Temple)', 3) and + state.can_use('Silver Gauntlets') and + state.can_play('Zeldas Lullaby') and + (state.has('Progressive Hookshot') or state.has('Hover Boots'))) + set_rule( + world.get_location('Mirror Shield Chest'), + lambda state: state.has('Small Key (Spirit Temple)', 4) and + state.can_use('Silver Gauntlets') and + state.has_explosives()) + set_rule( + world.get_location('Silver Gauntlets Chest'), + lambda state: (state.has('Small Key (Spirit Temple)', 3) and + state.has('Progressive Hookshot', 2) and + state.has_explosives()) or + state.has('Small Key (Spirit Temple)', 5)) + set_rule( + world.get_location('Spirit Temple Near Four Armos Chest'), + lambda state: state.has('Mirror Shield') and state.has_explosives()) + set_rule( + world.get_location('Spirit Temple Hallway Left Invisible Chest'), + lambda state: state.can_see_with_lens() and state.has_explosives()) + set_rule( + world.get_location('Spirit Temple Hallway Right Invisible Chest'), + lambda state: state.can_see_with_lens() and state.has_explosives()) + set_rule( + world.get_location('Spirit Temple Boss Key Chest'), + lambda state: state.can_play('Zeldas Lullaby') and + state.has_bow() and + state.has('Progressive Hookshot') and + state.can_blast_or_smash()) set_rule(world.get_location('Spirit Temple Topmost Chest'), lambda state: state.has('Mirror Shield')) # Boss - set_rule(world.get_location('Twinrova'), lambda state: state.has('Mirror Shield') and state.has_explosives() and state.has('Progressive Hookshot') and state.has('Boss Key (Spirit Temple)')) - set_rule(world.get_location('Twinrova Heart'), lambda state: state.has('Mirror Shield') and state.has_explosives() and state.has('Progressive Hookshot') and state.has('Boss Key (Spirit Temple)')) + set_rule( + world.get_location('Twinrova'), + lambda state: state.has('Mirror Shield') and + state.has_explosives() and + state.has('Progressive Hookshot') and + state.has('Boss Key (Spirit Temple)')) + set_rule( + world.get_location('Twinrova Heart'), + lambda state: state.has('Mirror Shield') and + state.has_explosives() and + state.has('Progressive Hookshot') and + state.has('Boss Key (Spirit Temple)')) # GS - set_rule(world.get_location('GS Spirit Temple Metal Fence'), lambda state: (state.has('Boomerang') or state.has_slingshot() or (state.has_bombchus() and world.logic_tricks)) and (state.has_sticks() or state.has_explosives() or ((state.has_nuts() or state.has('Boomerang')) and (state.has('Kokiri Sword') or state.has_slingshot())))) - set_rule(world.get_location('GS Spirit Temple Hall to West Iron Knuckle'), lambda state: (state.has_explosives() and state.has('Boomerang') and state.has('Progressive Hookshot')) or (state.has('Boomerang') and state.has('Small Key (Spirit Temple)', 5) and state.has_explosives() and state.can_play('Requiem of Spirit')) or (state.has('Progressive Hookshot') and state.can_use('Silver Gauntlets') and (state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and state.has('Boomerang') and world.bombchus_in_logic)))) - set_rule(world.get_location('GS Spirit Temple Boulder Room'), lambda state: state.can_play('Song of Time') and (state.has_bow() or state.has('Progressive Hookshot') or state.has_bombchus())) - set_rule(world.get_location('GS Spirit Temple Lobby'), lambda state: state.can_use('Silver Gauntlets') and state.has('Small Key (Spirit Temple)', 3) and (state.can_use('Longshot') or state.can_use('Scarecrow') or state.has('Hover Boots'))) - set_rule(world.get_location('GS Spirit Temple Bomb for Light Room'), lambda state: state.can_child_attack() or ((state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and world.bombchus_in_logic)) and state.can_use('Silver Gauntlets'))) + set_rule( + world.get_location('GS Spirit Temple Metal Fence'), + lambda state: (state.has('Boomerang') or state.has_slingshot() or (state.has_bombchus() and world.logic_tricks)) and + (state.has_sticks() or + state.has_explosives() or + ((state.has_nuts() or state.has('Boomerang')) and (state.has('Kokiri Sword') or state.has_slingshot())))) + set_rule( + world.get_location('GS Spirit Temple Hall to West Iron Knuckle'), + lambda state: (state.has_explosives() and state.has('Boomerang') and state.has('Progressive Hookshot')) or + (state.has('Boomerang') and + state.has('Small Key (Spirit Temple)', 5) and + state.has_explosives() and + state.can_play('Requiem of Spirit')) or + (state.has('Progressive Hookshot') and + state.can_use('Silver Gauntlets') and + (state.has('Small Key (Spirit Temple)', 3) or + (state.has('Small Key (Spirit Temple)', 2) and state.has('Boomerang') and world.bombchus_in_logic)))) + set_rule( + world.get_location('GS Spirit Temple Boulder Room'), + lambda state: state.can_play('Song of Time') and + (state.has_bow() or state.has('Progressive Hookshot') or state.has_bombchus())) + set_rule( + world.get_location('GS Spirit Temple Lobby'), + lambda state: state.can_use('Silver Gauntlets') and + state.has('Small Key (Spirit Temple)', 3) and + (state.can_use('Longshot') or state.can_use('Scarecrow') or state.has('Hover Boots'))) + set_rule( + world.get_location('GS Spirit Temple Bomb for Light Room'), + lambda state: state.can_child_attack() or + ((state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and world.bombchus_in_logic)) and + state.can_use('Silver Gauntlets'))) # Spirit Temple MQ def dung_rules_sptmq(world): set_rule(world.get_entrance('Spirit Temple Crawl Passage'), lambda state: state.can_play('Requiem of Spirit')) - set_rule(world.get_entrance('Spirit Temple Ceiling Passage'), lambda state: state.has_bombchus() and state.can_use('Longshot') and state.can_use('Silver Gauntlets')) - set_rule(world.get_entrance('Child Spirit Temple to Shared'), lambda state: state.has_bombchus() and state.has('Small Key (Spirit Temple)', 2)) - set_rule(world.get_entrance('Adult Spirit Temple Descent'), lambda state: state.can_use('Fire Arrows') and state.has('Mirror Shield')) - set_rule(world.get_entrance('Spirit Temple Climbable Wall'), lambda state: state.has('Small Key (Spirit Temple)', 6) and state.can_play('Zeldas Lullaby') and state.has('Hammer')) - set_rule(world.get_location('Spirit Temple MQ Entrance Back Left Chest'), lambda state: state.can_blast_or_smash() and ((state.can_play('Requiem of Spirit') and state.has_slingshot()) or state.can_use('Bow'))) - set_rule(world.get_location('Spirit Temple MQ Entrance Back Right Chest'), lambda state: state.has_bombchus() or state.can_use('Bow') or state.can_use('Hookshot') or (state.can_play('Requiem of Spirit') and (state.has_slingshot() or state.has('Boomerang')))) - set_rule(world.get_location('Spirit Temple MQ Map Chest'), lambda state: state.has_sticks() or state.has('Kokiri Sword') or state.has_explosives()) - set_rule(world.get_location('Spirit Temple MQ Child Left Chest'), lambda state: (state.has_sticks() or state.has('Kokiri Sword')) and state.has_bombchus() and state.has_slingshot() and state.can_use('Dins Fire')) - set_rule(world.get_location('Spirit Temple MQ Silver Block Hallway Chest'), lambda state: state.has_bombchus() and state.has('Small Key (Spirit Temple)', 7) and state.has_slingshot() and (state.can_use('Dins Fire') or (state.can_use('Longshot') and state.can_use('Silver Gauntlets') and (state.can_use('Fire Arrows') or (world.logic_tricks and state.has_bow() and state.can_play('Song of Time')))))) - set_rule(world.get_location('Spirit Temple MQ Child Center Chest'), lambda state: state.has('Small Key (Spirit Temple)', 7) and state.has('Hammer') and state.can_play('Requiem of Spirit')) - set_rule(world.get_location('Spirit Temple MQ Child Climb South Chest'), lambda state: state.has('Small Key (Spirit Temple)', 7)) - set_rule(world.get_location('Spirit Temple MQ Lower NE Main Room Chest'), lambda state: state.can_play('Zelda Lullaby')) + set_rule( + world.get_entrance('Spirit Temple Ceiling Passage'), + lambda state: state.has_bombchus() and state.can_use('Longshot') and state.can_use('Silver Gauntlets')) + set_rule( + world.get_entrance('Child Spirit Temple to Shared'), + lambda state: state.has_bombchus() and state.has('Small Key (Spirit Temple)', 2)) + set_rule( + world.get_entrance('Adult Spirit Temple Descent'), + lambda state: state.can_use('Fire Arrows') and state.has('Mirror Shield')) + set_rule( + world.get_entrance('Spirit Temple Climbable Wall'), + lambda state: state.has('Small Key (Spirit Temple)', 6) and state.can_play('Zeldas Lullaby') and state.has('Hammer')) + set_rule( + world.get_location('Spirit Temple MQ Entrance Back Left Chest'), + lambda state: state.can_blast_or_smash() and + ((state.can_play('Requiem of Spirit') and state.has_slingshot()) or state.can_use('Bow'))) + set_rule( + world.get_location('Spirit Temple MQ Entrance Back Right Chest'), + lambda state: state.has_bombchus() or + state.can_use('Bow') or + state.can_use('Hookshot') or + (state.can_play('Requiem of Spirit') and (state.has_slingshot() or state.has('Boomerang')))) + set_rule( + world.get_location('Spirit Temple MQ Map Chest'), + lambda state: state.has_sticks() or state.has('Kokiri Sword') or state.has_explosives()) + set_rule( + world.get_location('Spirit Temple MQ Child Left Chest'), + lambda state: (state.has_sticks() or state.has('Kokiri Sword')) and + state.has_bombchus() and + state.has_slingshot() and + state.can_use('Dins Fire')) + set_rule( + world.get_location('Spirit Temple MQ Silver Block Hallway Chest'), + lambda state: state.has_bombchus() and + state.has('Small Key (Spirit Temple)', 7) and + state.has_slingshot() and + (state.can_use('Dins Fire') or + (state.can_use('Longshot') and + state.can_use('Silver Gauntlets') and + (state.can_use('Fire Arrows') or (world.logic_tricks and state.has_bow() and state.can_play('Song of Time')))))) + set_rule( + world.get_location('Spirit Temple MQ Child Center Chest'), + lambda state: state.has('Small Key (Spirit Temple)', 7) and + state.has('Hammer') and + state.can_play('Requiem of Spirit')) + set_rule( + world.get_location('Spirit Temple MQ Child Climb South Chest'), + lambda state: state.has('Small Key (Spirit Temple)', 7)) + set_rule( + world.get_location('Spirit Temple MQ Lower NE Main Room Chest'), + lambda state: state.can_play('Zelda Lullaby')) set_rule(world.get_location('Spirit Temple MQ Upper NE Main Room Chest'), lambda state: state.can_see_with_lens()) - set_rule(world.get_location('Spirit Temple MQ Beamos Room Chest'), lambda state: state.has('Small Key (Spirit Temple)', 5)) - set_rule(world.get_location('Spirit Temple MQ Ice Trap Chest'), lambda state: state.has('Small Key (Spirit Temple)', 5) and state.can_play('Song of Time')) - set_rule(world.get_entrance('Mirror Shield Exit'), lambda state: state.has('Small Key (Spirit Temple)', 5) and state.can_play('Song of Time') and state.can_see_with_lens()) - set_rule(world.get_location('Spirit Temple MQ Boss Key Chest'), lambda state: state.has('Small Key (Spirit Temple)', 5) and state.can_play('Song of Time') and state.has('Mirror Shield')) + set_rule( + world.get_location('Spirit Temple MQ Beamos Room Chest'), + lambda state: state.has('Small Key (Spirit Temple)', 5)) + set_rule( + world.get_location('Spirit Temple MQ Ice Trap Chest'), + lambda state: state.has('Small Key (Spirit Temple)', 5) and state.can_play('Song of Time')) + set_rule( + world.get_entrance('Mirror Shield Exit'), + lambda state: state.has('Small Key (Spirit Temple)', 5) and + state.can_play('Song of Time') and + state.can_see_with_lens()) + set_rule( + world.get_location('Spirit Temple MQ Boss Key Chest'), + lambda state: state.has('Small Key (Spirit Temple)', 5) and + state.can_play('Song of Time') and + state.has('Mirror Shield')) set_rule(world.get_location('Spirit Temple MQ Entrance Front Right Chest'), lambda state: state.has('Hammer')) - set_rule(world.get_location('Spirit Temple MQ Lower Adult Right Chest'), lambda state: state.has('Small Key (Spirit Temple)', 7) and state.has('Hammer') and state.has_ocarina() and state.has('Song of Time') and state.has('Eponas Song') and state.has('Suns Song') and state.has('Song of Storms') and state.has('Zeldas Lullaby')) - set_rule(world.get_location('Spirit Temple MQ Child Climb North Chest'), lambda state: state.has('Small Key (Spirit Temple)', 6)) - set_rule(world.get_location('Spirit Temple MQ Compass Chest'), lambda state: (state.can_play('Requiem of Spirit') and state.has('Small Key (Spirit Temple)', 7) and state.has_slingshot()) or (state.can_use('Longshot') and state.can_use('Silver Gauntlets') and state.has_bow()) or (state.has_slingshot() and state.has_bow())) - set_rule(world.get_location('Spirit Temple MQ Sun Block Room Chest'), lambda state: state.can_play('Song of Time') or (state.can_use('Longshot') and state.can_use('Silver Gauntlets'))) - set_rule(world.get_entrance('Silver Gauntlets Exit'), lambda state: (state.has('Small Key (Spirit Temple)', 7) and (state.can_play('Song of Time') or (state.can_use('Longshot') and state.can_use('Silver Gauntlets')))) or (state.has('Small Key (Spirit Temple)', 4) and state.can_play('Song of Time') and state.can_see_with_lens())) - set_rule(world.get_location('Spirit Temple MQ Mirror Puzzle Invisible Chest'), lambda state: state.can_see_with_lens()) + set_rule( + world.get_location('Spirit Temple MQ Lower Adult Right Chest'), + lambda state: state.has('Small Key (Spirit Temple)', 7) and + state.has('Hammer') and + state.has_ocarina() and + state.has('Song of Time') and + state.has('Eponas Song') and + state.has('Suns Song') and + state.has('Song of Storms') and + state.has('Zeldas Lullaby')) + set_rule( + world.get_location('Spirit Temple MQ Child Climb North Chest'), + lambda state: state.has('Small Key (Spirit Temple)', 6)) + set_rule( + world.get_location('Spirit Temple MQ Compass Chest'), + lambda state: (state.can_play('Requiem of Spirit') and state.has('Small Key (Spirit Temple)', 7) and state.has_slingshot()) or + (state.can_use('Longshot') and state.can_use('Silver Gauntlets') and state.has_bow()) or + (state.has_slingshot() and state.has_bow())) + set_rule( + world.get_location('Spirit Temple MQ Sun Block Room Chest'), + lambda state: state.can_play('Song of Time') or + (state.can_use('Longshot') and state.can_use('Silver Gauntlets'))) + set_rule( + world.get_entrance('Silver Gauntlets Exit'), + lambda state: (state.has('Small Key (Spirit Temple)', 7) and + (state.can_play('Song of Time') or (state.can_use('Longshot') and state.can_use('Silver Gauntlets')))) or + (state.has('Small Key (Spirit Temple)', 4) and state.can_play('Song of Time') and state.can_see_with_lens())) + set_rule( + world.get_location('Spirit Temple MQ Mirror Puzzle Invisible Chest'), + lambda state: state.can_see_with_lens()) # Boss - set_rule(world.get_location('Twinrova'), lambda state: state.has('Mirror Shield') and state.has('Boss Key (Spirit Temple)')) - set_rule(world.get_location('Twinrova Heart'), lambda state: state.has('Mirror Shield') and state.has('Boss Key (Spirit Temple)')) + set_rule( + world.get_location('Twinrova'), + lambda state: state.has('Mirror Shield') and state.has('Boss Key (Spirit Temple)')) + set_rule( + world.get_location('Twinrova Heart'), + lambda state: state.has('Mirror Shield') and state.has('Boss Key (Spirit Temple)')) # GS - set_rule(world.get_location('GS Spirit Temple MQ Lower Adult Right'), lambda state: state.has('Small Key (Spirit Temple)', 7) and state.has('Hammer') and state.has_ocarina() and state.has('Song of Time') and state.has('Eponas Song') and state.has('Suns Song') and state.has('Song of Storms') and state.has('Zeldas Lullaby')) - set_rule(world.get_location('GS Spirit Temple MQ Iron Knuckle West'), lambda state: state.has('Small Key (Spirit Temple)', 7)) - set_rule(world.get_location('GS Spirit Temple MQ Iron Knuckle North'), lambda state: state.has('Small Key (Spirit Temple)', 7)) + set_rule( + world.get_location('GS Spirit Temple MQ Lower Adult Right'), + lambda state: state.has('Small Key (Spirit Temple)', 7) and + state.has('Hammer') and + state.has_ocarina() and + state.has('Song of Time') and + state.has('Eponas Song') and + state.has('Suns Song') and + state.has('Song of Storms') and + state.has('Zeldas Lullaby')) + set_rule( + world.get_location('GS Spirit Temple MQ Iron Knuckle West'), + lambda state: state.has('Small Key (Spirit Temple)', 7)) + set_rule( + world.get_location('GS Spirit Temple MQ Iron Knuckle North'), + lambda state: state.has('Small Key (Spirit Temple)', 7)) # Shadow Temple Vanilla def dung_rules_sht0(world): set_rule(world.get_entrance('Shadow Temple First Pit'), lambda state: state.has('Hover Boots')) - set_rule(world.get_entrance('Shadow Temple Bomb Wall'), lambda state: state.has_explosives() and state.has('Small Key (Shadow Temple)', 1)) - set_rule(world.get_entrance('Shadow Temple Hookshot Target'), lambda state: state.has('Progressive Hookshot') and state.has('Small Key (Shadow Temple)', 3)) - set_rule(world.get_entrance('Shadow Temple Boat'), lambda state: state.can_play('Zeldas Lullaby') and state.has('Small Key (Shadow Temple)', 4)) - set_rule(world.get_location('Shadow Temple Falling Spikes Upper Chest'), lambda state: state.has('Progressive Strength Upgrade')) - set_rule(world.get_location('Shadow Temple Falling Spikes Switch Chest'), lambda state: state.has('Progressive Strength Upgrade')) - set_rule(world.get_location('Shadow Temple Invisible Spikes Chest'), lambda state: state.has('Small Key (Shadow Temple)', 2)) - set_rule(world.get_location('Shadow Temple Freestanding Key'), lambda state: state.has('Small Key (Shadow Temple)', 2) and state.has('Progressive Hookshot') and (state.has_bombs() or state.has('Progressive Strength Upgrade'))) + set_rule( + world.get_entrance('Shadow Temple Bomb Wall'), + lambda state: state.has_explosives() and state.has('Small Key (Shadow Temple)', 1)) + set_rule( + world.get_entrance('Shadow Temple Hookshot Target'), + lambda state: state.has('Progressive Hookshot') and state.has('Small Key (Shadow Temple)', 3)) + set_rule( + world.get_entrance('Shadow Temple Boat'), + lambda state: state.can_play('Zeldas Lullaby') and state.has('Small Key (Shadow Temple)', 4)) + set_rule( + world.get_location('Shadow Temple Falling Spikes Upper Chest'), + lambda state: state.has('Progressive Strength Upgrade')) + set_rule( + world.get_location('Shadow Temple Falling Spikes Switch Chest'), + lambda state: state.has('Progressive Strength Upgrade')) + set_rule( + world.get_location('Shadow Temple Invisible Spikes Chest'), + lambda state: state.has('Small Key (Shadow Temple)', 2)) + set_rule( + world.get_location('Shadow Temple Freestanding Key'), + lambda state: state.has('Small Key (Shadow Temple)', 2) and + state.has('Progressive Hookshot') and + (state.has_bombs() or state.has('Progressive Strength Upgrade'))) # Boss - set_rule(world.get_location('Bongo Bongo'), lambda state: state.has('Small Key (Shadow Temple)', 5) and (state.has('Bow') or state.can_use('Distant Scarecrow')) and state.has('Boss Key (Shadow Temple)')) - set_rule(world.get_location('Bongo Bongo Heart'), lambda state: state.has('Small Key (Shadow Temple)', 5) and (state.has('Bow') or state.can_use('Distant Scarecrow')) and state.has('Boss Key (Shadow Temple)')) + set_rule( + world.get_location('Bongo Bongo'), + lambda state: state.has('Small Key (Shadow Temple)', 5) and + (state.has('Bow') or state.can_use('Distant Scarecrow')) and + state.has('Boss Key (Shadow Temple)')) + set_rule( + world.get_location('Bongo Bongo Heart'), + lambda state: state.has('Small Key (Shadow Temple)', 5) and + (state.has('Bow') or state.can_use('Distant Scarecrow')) and + state.has('Boss Key (Shadow Temple)')) # GS set_rule(world.get_location('GS Shadow Temple Like Like Room'), lambda state: state.has('Progressive Hookshot')) set_rule(world.get_location('GS Shadow Temple Crusher Room'), lambda state: state.has('Progressive Hookshot')) - set_rule(world.get_location('GS Shadow Temple Single Giant Pot'), lambda state: state.has('Small Key (Shadow Temple)', 2) and state.has('Progressive Hookshot')) - set_rule(world.get_location('GS Shadow Temple Near Ship'), lambda state: state.can_use('Longshot') and state.has('Small Key (Shadow Temple)', 4)) + set_rule( + world.get_location('GS Shadow Temple Single Giant Pot'), + lambda state: state.has('Small Key (Shadow Temple)', 2) and state.has('Progressive Hookshot')) + set_rule( + world.get_location('GS Shadow Temple Near Ship'), + lambda state: state.can_use('Longshot') and state.has('Small Key (Shadow Temple)', 4)) # Shadow Temple MQ def dung_rules_shtmq(world): - set_rule(world.get_entrance('Shadow Temple First Pit'), lambda state: state.can_use('Fire Arrows') or state.has('Hover Boots')) - set_rule(world.get_entrance('Shadow Temple Beginning Locked Door'), lambda state: state.has_explosives() and state.has('Small Key (Shadow Temple)', 6)) - set_rule(world.get_entrance('Shadow Temple Bomb Wall'), lambda state: state.has_explosives() and state.has('Small Key (Shadow Temple)', 2)) - set_rule(world.get_entrance('Shadow Temple Hookshot Target'), lambda state: state.has('Hover Boots') and state.has('Progressive Hookshot') and state.has('Small Key (Shadow Temple)', 4)) - set_rule(world.get_entrance('Shadow Temple Boat'), lambda state: state.can_play('Zeldas Lullaby') and state.has('Small Key (Shadow Temple)', 5)) - set_rule(world.get_entrance('Shadow Temple Longshot Target'), lambda state: state.has_bow() and state.can_play('Song of Time') and state.can_use('Longshot')) - set_rule(world.get_location('Shadow Temple MQ Hover Boots Chest'), lambda state: state.can_play('Song of Time') and state.has_bow()) - set_rule(world.get_location('Shadow Temple MQ Invisible Blades Visible Chest'), lambda state: state.can_play('Song of Time')) - set_rule(world.get_location('Shadow Temple MQ Invisible Blades Invisible Chest'), lambda state: state.can_play('Song of Time')) - set_rule(world.get_location('Shadow Temple MQ Beamos Silver Rupees Chest'), lambda state: state.can_use('Longshot')) - set_rule(world.get_location('Shadow Temple MQ Falling Spikes Upper Chest'), lambda state: state.has('Progressive Strength Upgrade')) - set_rule(world.get_location('Shadow Temple MQ Falling Spikes Switch Chest'), lambda state: state.has('Progressive Strength Upgrade')) - set_rule(world.get_location('Shadow Temple MQ Invisible Spikes Chest'), lambda state: state.has('Hover Boots') and state.has('Small Key (Shadow Temple)', 3)) - set_rule(world.get_location('Shadow Temple MQ Stalfos Room Chest'), lambda state: state.has('Hover Boots') and state.has('Small Key (Shadow Temple)', 3) and state.can_use('Longshot')) - set_rule(world.get_location('Shadow Temple MQ Spike Walls Left Chest'), lambda state: state.has('Small Key (Shadow Temple)', 6)) - set_rule(world.get_location('Shadow Temple MQ Boss Key Chest'), lambda state: state.has('Small Key (Shadow Temple)', 6)) + set_rule( + world.get_entrance('Shadow Temple First Pit'), + lambda state: state.can_use('Fire Arrows') or state.has('Hover Boots')) + set_rule( + world.get_entrance('Shadow Temple Beginning Locked Door'), + lambda state: state.has_explosives() and state.has('Small Key (Shadow Temple)', 6)) + set_rule( + world.get_entrance('Shadow Temple Bomb Wall'), + lambda state: state.has_explosives() and state.has('Small Key (Shadow Temple)', 2)) + set_rule( + world.get_entrance('Shadow Temple Hookshot Target'), + lambda state: state.has('Hover Boots') and + state.has('Progressive Hookshot') and + state.has('Small Key (Shadow Temple)', 4)) + set_rule( + world.get_entrance('Shadow Temple Boat'), + lambda state: state.can_play('Zeldas Lullaby') and state.has('Small Key (Shadow Temple)', 5)) + set_rule( + world.get_entrance('Shadow Temple Longshot Target'), + lambda state: state.has_bow() and state.can_play('Song of Time') and state.can_use('Longshot')) + set_rule( + world.get_location('Shadow Temple MQ Hover Boots Chest'), + lambda state: state.can_play('Song of Time') and state.has_bow()) + set_rule( + world.get_location('Shadow Temple MQ Invisible Blades Visible Chest'), + lambda state: state.can_play('Song of Time')) + set_rule( + world.get_location('Shadow Temple MQ Invisible Blades Invisible Chest'), + lambda state: state.can_play('Song of Time')) + set_rule( + world.get_location('Shadow Temple MQ Beamos Silver Rupees Chest'), + lambda state: state.can_use('Longshot')) + set_rule( + world.get_location('Shadow Temple MQ Falling Spikes Upper Chest'), + lambda state: state.has('Progressive Strength Upgrade')) + set_rule( + world.get_location('Shadow Temple MQ Falling Spikes Switch Chest'), + lambda state: state.has('Progressive Strength Upgrade')) + set_rule( + world.get_location('Shadow Temple MQ Invisible Spikes Chest'), + lambda state: state.has('Hover Boots') and state.has('Small Key (Shadow Temple)', 3)) + set_rule( + world.get_location('Shadow Temple MQ Stalfos Room Chest'), + lambda state: state.has('Hover Boots') and + state.has('Small Key (Shadow Temple)', 3) and + state.can_use('Longshot')) + set_rule( + world.get_location('Shadow Temple MQ Spike Walls Left Chest'), + lambda state: state.has('Small Key (Shadow Temple)', 6)) + set_rule( + world.get_location('Shadow Temple MQ Boss Key Chest'), + lambda state: state.has('Small Key (Shadow Temple)', 6)) # Boss - set_rule(world.get_location('Bongo Bongo'), lambda state: state.has_bow() and state.has('Boss Key (Shadow Temple)')) - set_rule(world.get_location('Bongo Bongo Heart'), lambda state: state.has_bow() and state.has('Boss Key (Shadow Temple)')) + set_rule( + world.get_location('Bongo Bongo'), + lambda state: state.has_bow() and state.has('Boss Key (Shadow Temple)')) + set_rule( + world.get_location('Bongo Bongo Heart'), + lambda state: state.has_bow() and state.has('Boss Key (Shadow Temple)')) # GS set_rule(world.get_location('GS Shadow Temple MQ Crusher Room'), lambda state: state.has('Progressive Hookshot')) @@ -777,36 +1816,98 @@ def dung_rules_bw0(world): set_rule(world.get_location('Bottom of the Well Center Large Chest'), lambda state: state.can_see_with_lens()) set_rule(world.get_location('Bottom of the Well Center Small Chest'), lambda state: state.can_see_with_lens()) set_rule(world.get_location('Bottom of the Well Back Left Bombable'), lambda state: state.has_explosives()) - set_rule(world.get_location('Bottom of the Well Defeat Boss'), lambda state: state.can_play('Zeldas Lullaby') and (state.has('Kokiri Sword') or (state.has_sticks() and world.logic_child_deadhand))) #Sword not strictly necessary but frankly being forced to do this with sticks isn't fair - set_rule(world.get_location('Bottom of the Well Invisible Chest'), lambda state: state.can_play('Zeldas Lullaby') and state.can_see_with_lens()) - set_rule(world.get_location('Bottom of the Well Underwater Front Chest'), lambda state: state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('Bottom of the Well Underwater Left Chest'), lambda state: state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('Bottom of the Well Basement Chest'), lambda state: state.has_explosives() or (((state.has('Small Key (Bottom of the Well)', 3) and state.can_see_with_lens()) or state.can_use('Dins Fire') or (world.logic_tricks and state.has_sticks())) and state.has('Progressive Strength Upgrade'))) - set_rule(world.get_location('Bottom of the Well Locked Pits'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.can_see_with_lens()) #These pits are really unfair. - set_rule(world.get_location('Bottom of the Well Behind Right Grate'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.can_see_with_lens()) - set_rule(world.get_location('Bottom of the Well Freestanding Key'), lambda state: state.has_sticks() or state.can_use('Dins Fire')) + set_rule( + world.get_location('Bottom of the Well Defeat Boss'), + lambda state: state.can_play('Zeldas Lullaby') and + (state.has('Kokiri Sword') or (state.has_sticks() and world.logic_child_deadhand))) #Sword not strictly necessary but frankly being forced to do this with sticks isn't fair + set_rule( + world.get_location('Bottom of the Well Invisible Chest'), + lambda state: state.can_play('Zeldas Lullaby') and state.can_see_with_lens()) + set_rule( + world.get_location('Bottom of the Well Underwater Front Chest'), + lambda state: state.can_play('Zeldas Lullaby')) + set_rule( + world.get_location('Bottom of the Well Underwater Left Chest'), + lambda state: state.can_play('Zeldas Lullaby')) + set_rule( + world.get_location('Bottom of the Well Basement Chest'), + lambda state: state.has_explosives() or + (((state.has('Small Key (Bottom of the Well)', 3) and state.can_see_with_lens()) or + state.can_use('Dins Fire') or + (world.logic_tricks and state.has_sticks())) and + state.has('Progressive Strength Upgrade'))) + set_rule( + world.get_location('Bottom of the Well Locked Pits'), + lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.can_see_with_lens()) #These pits are really unfair. + set_rule( + world.get_location('Bottom of the Well Behind Right Grate'), + lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.can_see_with_lens()) + set_rule( + world.get_location('Bottom of the Well Freestanding Key'), + lambda state: state.has_sticks() or state.can_use('Dins Fire')) # GS - set_always_allow(world.get_location('GS Well West Inner Room'), lambda item, state: item.name == 'Small Key (Bottom of the Well)') - set_rule(world.get_location('GS Well West Inner Room'), lambda state: state.has('Boomerang') and state.can_see_with_lens() and (state.has('Small Key (Bottom of the Well)', 3) or item_name(state, 'GS Well West Inner Room') == 'Small Key (Bottom of the Well)')) - set_always_allow(world.get_location('GS Well East Inner Room'), lambda item, state: item.name == 'Small Key (Bottom of the Well)') - set_rule(world.get_location('GS Well East Inner Room'), lambda state: state.has('Boomerang') and state.can_see_with_lens() and (state.has('Small Key (Bottom of the Well)', 3) or item_name(state, 'GS Well East Inner Room') == 'Small Key (Bottom of the Well)')) - set_rule(world.get_location('GS Well Like Like Cage'), lambda state: state.has('Small Key (Bottom of the Well)', 3) and state.has('Boomerang') and state.can_see_with_lens()) + set_always_allow( + world.get_location('GS Well West Inner Room'), + lambda item, state: item.name == 'Small Key (Bottom of the Well)') + set_rule( + world.get_location('GS Well West Inner Room'), + lambda state: state.has('Boomerang') and + state.can_see_with_lens() and + (state.has('Small Key (Bottom of the Well)', 3) or + item_name(state, 'GS Well West Inner Room') == 'Small Key (Bottom of the Well)')) + set_always_allow( + world.get_location('GS Well East Inner Room'), + lambda item, state: item.name == 'Small Key (Bottom of the Well)') + set_rule( + world.get_location('GS Well East Inner Room'), + lambda state: state.has('Boomerang') and + state.can_see_with_lens() and + (state.has('Small Key (Bottom of the Well)', 3) or + item_name(state, 'GS Well East Inner Room') == 'Small Key (Bottom of the Well)')) + set_rule( + world.get_location('GS Well Like Like Cage'), + lambda state: state.has('Small Key (Bottom of the Well)', 3) and + state.has('Boomerang') and + state.can_see_with_lens()) # Bottom of the Well MQ def dung_rules_bwmq(world): - set_rule(world.get_location('Bottom of the Well MQ Compass Chest'), lambda state: state.has('Kokiri Sword') or (state.has_sticks() and world.logic_child_deadhand)) - set_rule(world.get_location('Bottom of the Well MQ Dead Hand Freestanding Key'), lambda state: state.has_explosives()) - set_rule(world.get_location('Bottom of the Well MQ Map Chest'), lambda state: state.can_play('Zeldas Lullaby') or state.has_explosives()) - set_rule(world.get_location('Bottom of the Well MQ East Inner Room Freestanding Key'), lambda state: state.can_play('Zeldas Lullaby') or state.has_explosives()) - set_always_allow(world.get_location('Bottom of the Well MQ Lens Chest'), lambda item, state: item.name == 'Small Key (Bottom of the Well)') - set_rule(world.get_location('Bottom of the Well MQ Lens Chest'), lambda state: state.has_explosives() and (state.has('Small Key (Bottom of the Well)', 2) or item_name(state, 'Bottom of the Well MQ Lens Chest') == 'Small Key (Bottom of the Well)')) + set_rule( + world.get_location('Bottom of the Well MQ Compass Chest'), + lambda state: state.has('Kokiri Sword') or (state.has_sticks() and world.logic_child_deadhand)) + set_rule( + world.get_location('Bottom of the Well MQ Dead Hand Freestanding Key'), + lambda state: state.has_explosives()) + set_rule( + world.get_location('Bottom of the Well MQ Map Chest'), + lambda state: state.can_play('Zeldas Lullaby') or state.has_explosives()) + set_rule( + world.get_location('Bottom of the Well MQ East Inner Room Freestanding Key'), + lambda state: state.can_play('Zeldas Lullaby') or state.has_explosives()) + set_always_allow( + world.get_location('Bottom of the Well MQ Lens Chest'), + lambda item, state: item.name == 'Small Key (Bottom of the Well)') + set_rule( + world.get_location('Bottom of the Well MQ Lens Chest'), + lambda state: state.has_explosives() and + (state.has('Small Key (Bottom of the Well)', 2) or + item_name(state, 'Bottom of the Well MQ Lens Chest') == 'Small Key (Bottom of the Well)')) # GS set_rule(world.get_location('GS Well MQ Basement'), lambda state: state.can_child_attack()) - set_rule(world.get_location('GS Well MQ West Inner Room'), lambda state: state.can_child_attack() and (state.can_play('Zeldas Lullaby') or state.has_explosives()) and state.can_see_with_lens()) - set_always_allow(world.get_location('GS Well MQ Coffin Room'), lambda item, state: item.name == 'Small Key (Bottom of the Well)') - set_rule(world.get_location('GS Well MQ Coffin Room'), lambda state: state.can_child_attack() and (state.has('Small Key (Bottom of the Well)', 2) or item_name(state, 'GS Well MQ Coffin Room') == 'Small Key (Bottom of the Well)')) + set_rule( + world.get_location('GS Well MQ West Inner Room'), + lambda state: state.can_child_attack() and + (state.can_play('Zeldas Lullaby') or state.has_explosives()) and state.can_see_with_lens()) + set_always_allow( + world.get_location('GS Well MQ Coffin Room'), + lambda item, state: item.name == 'Small Key (Bottom of the Well)') + set_rule( + world.get_location('GS Well MQ Coffin Room'), + lambda state: state.can_child_attack() and + (state.has('Small Key (Bottom of the Well)', 2) or + item_name(state, 'GS Well MQ Coffin Room') == 'Small Key (Bottom of the Well)')) # Ice Cavern Vanilla def dung_rules_ic0(world): @@ -818,8 +1919,12 @@ def dung_rules_ic0(world): # GS set_rule(world.get_location('GS Ice Cavern Spinning Scythe Room'), lambda state: state.can_use('Hookshot')) - set_rule(world.get_location('GS Ice Cavern Heart Piece Room'), lambda state: state.can_use('Hookshot') and state.has_bottle()) - set_rule(world.get_location('GS Ice Cavern Push Block Room'), lambda state: state.can_use('Hookshot') and state.has_bottle()) + set_rule( + world.get_location('GS Ice Cavern Heart Piece Room'), + lambda state: state.can_use('Hookshot') and state.has_bottle()) + set_rule( + world.get_location('GS Ice Cavern Push Block Room'), + lambda state: state.can_use('Hookshot') and state.has_bottle()) # Ice Cavern MQ def dung_rules_icmq(world): @@ -828,89 +1933,258 @@ def dung_rules_icmq(world): # GS set_rule(world.get_location('GS Ice Cavern MQ Red Ice'), lambda state: state.can_play('Song of Time')) - set_rule(world.get_location('GS Ice Cavern MQ Scarecrow'), lambda state: state.can_use('Scarecrow') or (state.has('Hover Boots') and state.can_use('Longshot'))) + set_rule( + world.get_location('GS Ice Cavern MQ Scarecrow'), + lambda state: state.can_use('Scarecrow') or (state.has('Hover Boots') and state.can_use('Longshot'))) # Gerudo Training Grounds Vanilla def dung_rules_gtg0(world): set_rule(world.get_entrance('Gerudo Training Ground Left Silver Rupees'), lambda state: state.can_use('Hookshot')) set_rule(world.get_entrance('Gerudo Training Ground Beamos'), lambda state: state.has_explosives()) - set_rule(world.get_entrance('Gerudo Training Grounds Right Locked Doors'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 9)) + set_rule( + world.get_entrance('Gerudo Training Grounds Right Locked Doors'), + lambda state: state.has('Small Key (Gerudo Training Grounds)', 9)) set_rule(world.get_entrance('Gerudo Training Grounds Maze Ledge'), lambda state: state.can_play('Song of Time')) set_rule(world.get_entrance('Gerudo Training Grounds Right Hookshot Target'), lambda state: state.can_use('Hookshot')) - set_rule(world.get_entrance('Gerudo Training Grounds Hammer Target'), lambda state: state.can_use('Hammer') and state.has_bow()) - set_rule(world.get_entrance('Gerudo Training Grounds Hidden Hookshot Target'), lambda state: state.can_use('Hookshot') and state.can_see_with_lens()) + set_rule( + world.get_entrance('Gerudo Training Grounds Hammer Target'), + lambda state: state.can_use('Hammer') and state.has_bow()) + set_rule( + world.get_entrance('Gerudo Training Grounds Hidden Hookshot Target'), + lambda state: state.can_use('Hookshot') and state.can_see_with_lens()) set_rule(world.get_location('Gerudo Training Grounds Lobby Left Chest'), lambda state: state.can_use('Bow')) set_rule(world.get_location('Gerudo Training Grounds Lobby Right Chest'), lambda state: state.can_use('Bow')) set_rule(world.get_location('Gerudo Training Grounds Beamos Chest'), lambda state: state.has_explosives()) - set_rule(world.get_location('Gerudo Training Grounds Hidden Ceiling Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 3) and state.can_see_with_lens()) - set_rule(world.get_location('Gerudo Training Grounds Maze Path First Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 4)) - set_rule(world.get_location('Gerudo Training Grounds Maze Path Second Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 6)) - set_rule(world.get_location('Gerudo Training Grounds Maze Path Third Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 7)) - set_rule(world.get_location('Gerudo Training Grounds Maze Path Final Chest'), lambda state: (state.has('Small Key (Gerudo Training Grounds)', 9)) or (item_name(state, 'Gerudo Training Grounds Maze Path Final Chest') == 'Small Key (Gerudo Training Grounds)' and state.has('Small Key (Gerudo Training Grounds)', 8))) #Allow key for key - set_always_allow(world.get_location('Gerudo Training Grounds Maze Path Final Chest'), lambda item, state: item.name == 'Small Key (Gerudo Training Grounds)') - set_rule(world.get_location('Gerudo Training Grounds Underwater Silver Rupee Chest'), lambda state: state.can_use('Hookshot') and state.can_play('Song of Time') and state.has('Iron Boots') and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic())) + set_rule( + world.get_location('Gerudo Training Grounds Hidden Ceiling Chest'), + lambda state: state.has('Small Key (Gerudo Training Grounds)', 3) and state.can_see_with_lens()) + set_rule( + world.get_location('Gerudo Training Grounds Maze Path First Chest'), + lambda state: state.has('Small Key (Gerudo Training Grounds)', 4)) + set_rule( + world.get_location('Gerudo Training Grounds Maze Path Second Chest'), + lambda state: state.has('Small Key (Gerudo Training Grounds)', 6)) + set_rule( + world.get_location('Gerudo Training Grounds Maze Path Third Chest'), + lambda state: state.has('Small Key (Gerudo Training Grounds)', 7)) + set_rule( + world.get_location('Gerudo Training Grounds Maze Path Final Chest'), + lambda state: (state.has('Small Key (Gerudo Training Grounds)', 9)) or + (item_name(state, 'Gerudo Training Grounds Maze Path Final Chest') == 'Small Key (Gerudo Training Grounds)' and + state.has('Small Key (Gerudo Training Grounds)', 8))) #Allow key for key + set_always_allow( + world.get_location('Gerudo Training Grounds Maze Path Final Chest'), + lambda item, state: item.name == 'Small Key (Gerudo Training Grounds)') + set_rule( + world.get_location('Gerudo Training Grounds Underwater Silver Rupee Chest'), + lambda state: state.can_use('Hookshot') and + state.can_play('Song of Time') and + state.has('Iron Boots') and + (world.logic_fewer_tunic_requirements or state.has_ZoraTunic())) set_rule(world.get_location('Gerudo Training Grounds Hammer Room Switch Chest'), lambda state: state.can_use('Hammer')) set_rule(world.get_location('Gerudo Training Grounds Eye Statue Chest'), lambda state: state.can_use('Bow')) set_rule(world.get_location('Gerudo Training Grounds Near Scarecrow Chest'), lambda state: state.can_use('Bow')) - set_rule(world.get_location('Gerudo Training Grounds Heavy Block First Chest'), lambda state: state.can_use('Silver Gauntlets') and state.can_see_with_lens()) - set_rule(world.get_location('Gerudo Training Grounds Heavy Block Second Chest'), lambda state: state.can_use('Silver Gauntlets') and state.can_see_with_lens()) - set_rule(world.get_location('Gerudo Training Grounds Heavy Block Third Chest'), lambda state: state.can_use('Silver Gauntlets') and state.can_see_with_lens()) - set_rule(world.get_location('Gerudo Training Grounds Heavy Block Fourth Chest'), lambda state: state.can_use('Silver Gauntlets') and state.can_see_with_lens()) + set_rule( + world.get_location('Gerudo Training Grounds Heavy Block First Chest'), + lambda state: state.can_use('Silver Gauntlets') and state.can_see_with_lens()) + set_rule( + world.get_location('Gerudo Training Grounds Heavy Block Second Chest'), + lambda state: state.can_use('Silver Gauntlets') and state.can_see_with_lens()) + set_rule( + world.get_location('Gerudo Training Grounds Heavy Block Third Chest'), + lambda state: state.can_use('Silver Gauntlets') and state.can_see_with_lens()) + set_rule( + world.get_location('Gerudo Training Grounds Heavy Block Fourth Chest'), + lambda state: state.can_use('Silver Gauntlets') and state.can_see_with_lens()) # Gerudo Training Grounds MQ def dung_rules_gtgmq(world): set_rule(world.get_entrance('Gerudo Training Grounds Left Door'), lambda state: state.has_fire_source()) set_rule(world.get_entrance('Gerudo Training Grounds Right Door'), lambda state: state.has_bow()) set_rule(world.get_entrance('Gerudo Training Grounds Longshot Target'), lambda state: state.can_use('Longshot')) - set_rule(world.get_entrance('Gerudo Training Grounds Song of Time Block'), lambda state: state.can_play('Song of Time') and state.can_see_with_lens() and state.has_bottle()) + set_rule( + world.get_entrance('Gerudo Training Grounds Song of Time Block'), + lambda state: state.can_play('Song of Time') and state.can_see_with_lens() and state.has_bottle()) set_rule(world.get_entrance('Gerudo Training Grounds Rusted Switch'), lambda state: state.has('Hammer')) set_rule(world.get_location('Gerudo Training Grounds MQ Hidden Ceiling Chest'), lambda state: state.can_see_with_lens()) - set_rule(world.get_location('Gerudo Training Grounds MQ Maze Path Third Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 1)) - set_rule(world.get_location('Gerudo Training Grounds MQ Underwater Silver Rupee Chest'), lambda state: (state.has('Hover Boots') or state.can_reach('Gerudo Training Grounds Central Maze Right')) and state.has_fire_source() and state.has('Iron Boots') and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic()) and (world.difficulty != 'ohko' or (state.has_bottle() or state.can_use('Nayrus Love')))) - set_rule(world.get_location('Gerudo Training Grounds MQ Heavy Block Chest'), lambda state: state.can_use('Silver Gauntlets')) + set_rule( + world.get_location('Gerudo Training Grounds MQ Maze Path Third Chest'), + lambda state: state.has('Small Key (Gerudo Training Grounds)', 1)) + set_rule( + world.get_location('Gerudo Training Grounds MQ Underwater Silver Rupee Chest'), + lambda state: (state.has('Hover Boots') or state.can_reach('Gerudo Training Grounds Central Maze Right')) and + state.has_fire_source() and + state.has('Iron Boots') and + (world.logic_fewer_tunic_requirements or state.has_ZoraTunic()) and + (world.difficulty != 'ohko' or (state.has_bottle() or state.can_use('Nayrus Love')))) + set_rule( + world.get_location('Gerudo Training Grounds MQ Heavy Block Chest'), + lambda state: state.can_use('Silver Gauntlets')) set_rule(world.get_location('Gerudo Training Grounds MQ Eye Statue Chest'), lambda state: state.has_bow()) - set_rule(world.get_location('Gerudo Training Grounds MQ Ice Arrows Chest'), lambda state: state.has('Small Key (Gerudo Training Grounds)', 3) or (item_name(state, 'Gerudo Training Grounds MQ Ice Arrows Chest') == 'Small Key (Gerudo Training Grounds)' and state.has('Small Key (Gerudo Training Grounds)'))) - set_always_allow(world.get_location('Gerudo Training Grounds MQ Ice Arrows Chest'), lambda item, state: item.name == 'Small Key (Gerudo Training Grounds)') + set_rule( + world.get_location('Gerudo Training Grounds MQ Ice Arrows Chest'), + lambda state: state.has('Small Key (Gerudo Training Grounds)', 3) or + (item_name(state, 'Gerudo Training Grounds MQ Ice Arrows Chest') == 'Small Key (Gerudo Training Grounds)' and + state.has('Small Key (Gerudo Training Grounds)'))) + set_always_allow( + world.get_location('Gerudo Training Grounds MQ Ice Arrows Chest'), + lambda item, state: item.name == 'Small Key (Gerudo Training Grounds)') # Ganon's Castle Vanilla def dung_rules_gc0(world): set_rule(world.get_entrance('Ganons Castle Light Trial'), lambda state: state.can_use('Golden Gauntlets')) - set_rule(world.get_entrance('Ganons Castle Tower'), lambda state: (world.skipped_trials['Forest'] or state.has('Forest Trial Clear')) and (world.skipped_trials['Fire'] or state.has('Fire Trial Clear')) and (world.skipped_trials['Water'] or state.has('Water Trial Clear')) and (world.skipped_trials['Shadow'] or state.has('Shadow Trial Clear')) and (world.skipped_trials['Spirit'] or state.has('Spirit Trial Clear')) and (world.skipped_trials['Light'] or state.has('Light Trial Clear'))) - set_rule(world.get_location('Ganons Castle Forest Trial Clear'), lambda state: state.can_use('Light Arrows') and (state.has('Fire Arrows') or state.has('Dins Fire'))) - set_rule(world.get_location('Ganons Castle Fire Trial Clear'), lambda state: state.has_GoronTunic() and state.can_use('Golden Gauntlets') and state.can_use('Light Arrows') and state.can_use('Longshot')) - set_rule(world.get_location('Ganons Castle Water Trial Clear'), lambda state: state.has_bottle() and state.has('Hammer') and state.can_use('Light Arrows')) - set_rule(world.get_location('Ganons Castle Shadow Trial Clear'), lambda state: state.can_use('Light Arrows') and state.has('Hammer') and ((state.has('Fire Arrows') and (state.has('Hover Boots') or state.can_see_with_lens())) or (state.can_use('Longshot') and (state.has('Hover Boots') or (state.has('Dins Fire') and state.can_see_with_lens()))))) - set_rule(world.get_location('Ganons Castle Shadow Trial First Chest'), lambda state: state.can_use('Fire Arrows') or state.has('Progressive Hookshot') or state.has('Hover Boots') or state.can_play('Song of Time')) - set_rule(world.get_location('Ganons Castle Shadow Trial Second Chest'), lambda state: state.can_use('Fire Arrows') or (state.can_use('Longshot') and (state.has('Hover Boots') or state.can_use('Dins Fire')))) - set_rule(world.get_location('Ganons Castle Spirit Trial Clear'), lambda state: state.can_use('Light Arrows') and state.has('Mirror Shield') and state.has_bombchus() and state.has('Progressive Hookshot')) - set_rule(world.get_location('Ganons Castle Spirit Trial First Chest'), lambda state: state.has('Progressive Hookshot')) - set_rule(world.get_location('Ganons Castle Spirit Trial Second Chest'), lambda state: state.has('Progressive Hookshot') and state.has_bombchus() and state.can_see_with_lens()) - set_rule(world.get_location('Ganons Castle Light Trial Clear'), lambda state: state.can_use('Light Arrows') and state.has('Progressive Hookshot') and state.has('Small Key (Ganons Castle)', 2)) - set_rule(world.get_location('Ganons Castle Light Trail Invisible Enemies Chest'), lambda state: state.can_see_with_lens()) - set_rule(world.get_location('Ganons Castle Light Trial Lullaby Chest'), lambda state: state.can_play('Zeldas Lullaby') and state.has('Small Key (Ganons Castle)', 1)) + set_rule( + world.get_entrance('Ganons Castle Tower'), + lambda state: (world.skipped_trials['Forest'] or state.has('Forest Trial Clear')) and + (world.skipped_trials['Fire'] or state.has('Fire Trial Clear')) and + (world.skipped_trials['Water'] or state.has('Water Trial Clear')) and + (world.skipped_trials['Shadow'] or state.has('Shadow Trial Clear')) and + (world.skipped_trials['Spirit'] or state.has('Spirit Trial Clear')) and + (world.skipped_trials['Light'] or state.has('Light Trial Clear'))) + set_rule( + world.get_location('Ganons Castle Forest Trial Clear'), + lambda state: state.can_use('Light Arrows') and (state.has('Fire Arrows') or state.has('Dins Fire'))) + set_rule( + world.get_location('Ganons Castle Fire Trial Clear'), + lambda state: state.has_GoronTunic() and + state.can_use('Golden Gauntlets') and + state.can_use('Light Arrows') and + state.can_use('Longshot')) + set_rule( + world.get_location('Ganons Castle Water Trial Clear'), + lambda state: state.has_bottle() and state.has('Hammer') and state.can_use('Light Arrows')) + set_rule( + world.get_location('Ganons Castle Shadow Trial Clear'), + lambda state: state.can_use('Light Arrows') and + state.has('Hammer') and + ((state.has('Fire Arrows') and (state.has('Hover Boots') or state.can_see_with_lens())) or + (state.can_use('Longshot') and (state.has('Hover Boots') or (state.has('Dins Fire') and state.can_see_with_lens()))))) + set_rule( + world.get_location('Ganons Castle Shadow Trial First Chest'), + lambda state: state.can_use('Fire Arrows') or + state.has('Progressive Hookshot') or + state.has('Hover Boots') or + state.can_play('Song of Time')) + set_rule( + world.get_location('Ganons Castle Shadow Trial Second Chest'), + lambda state: state.can_use('Fire Arrows') or + (state.can_use('Longshot') and (state.has('Hover Boots') or state.can_use('Dins Fire')))) + set_rule( + world.get_location('Ganons Castle Spirit Trial Clear'), + lambda state: state.can_use('Light Arrows') and + state.has('Mirror Shield') and + state.has_bombchus() and + state.has('Progressive Hookshot')) + set_rule( + world.get_location('Ganons Castle Spirit Trial First Chest'), + lambda state: state.has('Progressive Hookshot')) + set_rule( + world.get_location('Ganons Castle Spirit Trial Second Chest'), + lambda state: state.has('Progressive Hookshot') and state.has_bombchus() and state.can_see_with_lens()) + set_rule( + world.get_location('Ganons Castle Light Trial Clear'), + lambda state: state.can_use('Light Arrows') and + state.has('Progressive Hookshot') and + state.has('Small Key (Ganons Castle)', 2)) + set_rule( + world.get_location('Ganons Castle Light Trail Invisible Enemies Chest'), + lambda state: state.can_see_with_lens()) + set_rule( + world.get_location('Ganons Castle Light Trial Lullaby Chest'), + lambda state: state.can_play('Zeldas Lullaby') and state.has('Small Key (Ganons Castle)', 1)) set_rule(world.get_entrance('Ganons Castle Deku Scrubs'), lambda state: state.can_see_with_lens()) # Ganon's Castle MQ def dung_rules_gcmq(world): set_rule(world.get_entrance('Ganons Castle Light Trial'), lambda state: state.can_use('Golden Gauntlets')) - set_rule(world.get_entrance('Ganons Castle Tower'), lambda state: (world.skipped_trials['Forest'] or state.has('Forest Trial Clear')) and (world.skipped_trials['Fire'] or state.has('Fire Trial Clear')) and (world.skipped_trials['Water'] or state.has('Water Trial Clear')) and (world.skipped_trials['Shadow'] or state.has('Shadow Trial Clear')) and (world.skipped_trials['Spirit'] or state.has('Spirit Trial Clear')) and (world.skipped_trials['Light'] or state.has('Light Trial Clear'))) + set_rule( + world.get_entrance('Ganons Castle Tower'), + lambda state: (world.skipped_trials['Forest'] or state.has('Forest Trial Clear')) and + (world.skipped_trials['Fire'] or state.has('Fire Trial Clear')) and + (world.skipped_trials['Water'] or state.has('Water Trial Clear')) and + (world.skipped_trials['Shadow'] or state.has('Shadow Trial Clear')) and + (world.skipped_trials['Spirit'] or state.has('Spirit Trial Clear')) and + (world.skipped_trials['Light'] or state.has('Light Trial Clear'))) set_rule(world.get_location('Ganons Castle MQ Forest Trial First Chest'), lambda state: state.has_bow()) set_rule(world.get_location('Ganons Castle MQ Forest Trial Second Chest'), lambda state: state.has_fire_source()) - set_rule(world.get_location('Ganons Castle MQ Forest Trial Freestanding Key'), lambda state: state.has('Progressive Hookshot')) - set_rule(world.get_location('Ganons Castle Forest Trial Clear'), lambda state: state.can_use('Light Arrows') and state.can_play('Song of Time')) - set_rule(world.get_location('Ganons Castle Fire Trial Clear'), lambda state: state.has_GoronTunic() and state.can_use('Golden Gauntlets') and state.can_use('Light Arrows') and (state.can_use('Longshot') or state.has('Hover Boots'))) + set_rule( + world.get_location('Ganons Castle MQ Forest Trial Freestanding Key'), + lambda state: state.has('Progressive Hookshot')) + set_rule( + world.get_location('Ganons Castle Forest Trial Clear'), + lambda state: state.can_use('Light Arrows') and state.can_play('Song of Time')) + set_rule( + world.get_location('Ganons Castle Fire Trial Clear'), + lambda state: state.has_GoronTunic() and + state.can_use('Golden Gauntlets') and + state.can_use('Light Arrows') and + (state.can_use('Longshot') or state.has('Hover Boots'))) set_rule(world.get_location('Ganons Castle MQ Water Trial Chest'), lambda state: state.has_bottle()) - set_rule(world.get_location('Ganons Castle Water Trial Clear'), lambda state: state.has_bottle() and state.can_use('Light Arrows') and state.has('Small Key (Ganons Castle)', 3)) - set_rule(world.get_location('Ganons Castle MQ Shadow Trial First Chest'), lambda state: (state.has_bow() and (state.has('Progressive Hookshot') or state.has('Hover Boots'))) or (state.has('Hover Boots') and state.can_see_with_lens() and (state.has_explosives() or state.has('Progressive Strength Upgrade') or state.can_use('Dins Fire')))) - set_rule(world.get_location('Ganons Castle MQ Shadow Trial Second Chest'), lambda state: state.has_bow() and state.can_see_with_lens() and (state.has('Hover Boots') or (state.has('Progressive Hookshot') and state.has_fire_source()))) - set_rule(world.get_location('Ganons Castle Shadow Trial Clear'), lambda state: state.can_use('Light Arrows') and state.can_see_with_lens() and (state.has('Hover Boots') or (state.has('Progressive Hookshot') and state.has_fire_source()))) - set_rule(world.get_location('Ganons Castle MQ Spirit Trial First Chest'), lambda state: (state.has_bow() or world.logic_tricks) and state.has('Hammer')) - set_rule(world.get_location('Ganons Castle MQ Spirit Trial Second Chest'), lambda state: (state.has_bow() or world.logic_tricks) and state.has('Hammer') and state.has_bombchus() and state.can_see_with_lens()) - set_rule(world.get_location('Ganons Castle MQ Spirit Trial Sun Front Left Chest'), lambda state: state.has('Hammer') and state.has_bombchus() and state.can_use('Fire Arrows') and state.has('Mirror Shield')) - set_rule(world.get_location('Ganons Castle MQ Spirit Trial Sun Back Left Chest'), lambda state: state.has('Hammer') and state.has_bombchus() and state.can_use('Fire Arrows') and state.has('Mirror Shield')) - set_rule(world.get_location('Ganons Castle MQ Spirit Trial Golden Gauntlets Chest'), lambda state: state.has('Hammer') and state.has_bombchus() and state.can_use('Fire Arrows') and state.has('Mirror Shield')) - set_rule(world.get_location('Ganons Castle MQ Spirit Trial Sun Back Right Chest'), lambda state: state.has('Hammer') and state.has_bombchus() and state.can_use('Fire Arrows') and state.has('Mirror Shield')) - set_rule(world.get_location('Ganons Castle Spirit Trial Clear'), lambda state: state.can_use('Light Arrows') and state.has('Hammer') and state.has_bombchus() and state.has('Fire Arrows') and state.has('Mirror Shield')) - set_rule(world.get_location('Ganons Castle MQ Light Trial Lullaby Chest'), lambda state: state.can_play('Zeldas Lullaby')) - set_rule(world.get_location('Ganons Castle Light Trial Clear'), lambda state: state.can_use('Light Arrows') and state.has('Progressive Hookshot') and state.has('Small Key (Ganons Castle)', 3)) + set_rule( + world.get_location('Ganons Castle Water Trial Clear'), + lambda state: state.has_bottle() and state.can_use('Light Arrows') and state.has('Small Key (Ganons Castle)', 3)) + set_rule( + world.get_location('Ganons Castle MQ Shadow Trial First Chest'), + lambda state: (state.has_bow() and (state.has('Progressive Hookshot') or state.has('Hover Boots'))) or + (state.has('Hover Boots') and + state.can_see_with_lens() and + (state.has_explosives() or state.has('Progressive Strength Upgrade') or state.can_use('Dins Fire')))) + set_rule( + world.get_location('Ganons Castle MQ Shadow Trial Second Chest'), + lambda state: state.has_bow() and + state.can_see_with_lens() and + (state.has('Hover Boots') or (state.has('Progressive Hookshot') and state.has_fire_source()))) + set_rule( + world.get_location('Ganons Castle Shadow Trial Clear'), + lambda state: state.can_use('Light Arrows') and + state.can_see_with_lens() and + (state.has('Hover Boots') or (state.has('Progressive Hookshot') and state.has_fire_source()))) + set_rule( + world.get_location('Ganons Castle MQ Spirit Trial First Chest'), + lambda state: (state.has_bow() or world.logic_tricks) and state.has('Hammer')) + set_rule( + world.get_location('Ganons Castle MQ Spirit Trial Second Chest'), + lambda state: (state.has_bow() or world.logic_tricks) and + state.has('Hammer') and + state.has_bombchus() and + state.can_see_with_lens()) + set_rule( + world.get_location('Ganons Castle MQ Spirit Trial Sun Front Left Chest'), + lambda state: state.has('Hammer') and + state.has_bombchus() and + state.can_use('Fire Arrows') and + state.has('Mirror Shield')) + set_rule( + world.get_location('Ganons Castle MQ Spirit Trial Sun Back Left Chest'), + lambda state: state.has('Hammer') and + state.has_bombchus() and + state.can_use('Fire Arrows') and + state.has('Mirror Shield')) + set_rule( + world.get_location('Ganons Castle MQ Spirit Trial Golden Gauntlets Chest'), + lambda state: state.has('Hammer') and + state.has_bombchus() and + state.can_use('Fire Arrows') and + state.has('Mirror Shield')) + set_rule( + world.get_location('Ganons Castle MQ Spirit Trial Sun Back Right Chest'), + lambda state: state.has('Hammer') and + state.has_bombchus() and + state.can_use('Fire Arrows') and + state.has('Mirror Shield')) + set_rule( + world.get_location('Ganons Castle Spirit Trial Clear'), + lambda state: state.can_use('Light Arrows') and + state.has('Hammer') and + state.has_bombchus() and + state.has('Fire Arrows') and + state.has('Mirror Shield')) + set_rule( + world.get_location('Ganons Castle MQ Light Trial Lullaby Chest'), + lambda state: state.can_play('Zeldas Lullaby')) + set_rule( + world.get_location('Ganons Castle Light Trial Clear'), + lambda state: state.can_use('Light Arrows') and + state.has('Progressive Hookshot') and + state.has('Small Key (Ganons Castle)', 3)) set_rule(world.get_entrance('Ganons Castle Deku Scrubs'), lambda state: state.can_see_with_lens()) From dad028932efa6a7952014c671fe6e5cf7c5cd40c Mon Sep 17 00:00:00 2001 From: Nick Langille Date: Thu, 11 Oct 2018 00:03:58 -0400 Subject: [PATCH 669/755] Filter out local symbols from PJ64 debug file --- ASM/scripts/build.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ASM/scripts/build.py b/ASM/scripts/build.py index 02ccb2a7d..de43e1dac 100644 --- a/ASM/scripts/build.py +++ b/ASM/scripts/build.py @@ -61,7 +61,7 @@ address, sym_name = parts if address[0] != '8': continue - if sym_name[0] == '.': + if sym_name[0] in ['.', '@']: continue sym_type = c_sym_types.get(sym_name) or ('data' if sym_name.isupper() else 'code') symbols[sym_name] = { From 396616bd4b60d993b1ec244ce44b4bc2bdc79d0b Mon Sep 17 00:00:00 2001 From: Nick Langille Date: Thu, 11 Oct 2018 00:04:50 -0400 Subject: [PATCH 670/755] Add hook to draw file select hash --- ASM/build/asm_symbols.txt | 104 +- ASM/build/bundle.o | Bin 9968 -> 10320 bytes ASM/build/c_symbols.txt | 34 +- ASM/c/file_select.c | 24 + ASM/c/file_select.h | 8 + ASM/c/main.c | 1 + ASM/src/hacks.asm | 15 +- data/rom_patch.txt | 12154 ++++++++++++++++++------------------ data/symbols.json | 34 +- 9 files changed, 6339 insertions(+), 6035 deletions(-) create mode 100644 ASM/c/file_select.c create mode 100644 ASM/c/file_select.h diff --git a/ASM/build/asm_symbols.txt b/ASM/build/asm_symbols.txt index 2f9bbd7c5..c191997d1 100644 --- a/ASM/build/asm_symbols.txt +++ b/ASM/build/asm_symbols.txt @@ -6,6 +6,7 @@ 0000D260 .dbl:0010 0000D270 .dbl:0010 008A9C00 .byt:0400 +00BAF750 .byt:0048 00D74990 skip_steal_tunic 00D7E178 @@not_in_ranch 00D7E18C @@return @@ -1010,57 +1011,58 @@ 804037D8 @@overwrite_type 804037E0 @@return 804037E8 .byt:0868 -80405000 disp_buf_init,00000018 -80405018 sprite_bytes_per_tile,00000028 -80405040 sprite_bytes,00000030 -80405070 sprite_load,000001A0 -80405210 sprite_draw,000000F0 -80405300 draw_setup,000001DC -804054DC gfx_init,00000148 -80405624 heap_init,00000014 -80405638 heap_alloc,00000034 -8040566C file_init,00000044 -804056B0 c_init,0000002C -804056DC c_after_game_state_update,00000088 -80405764 draw_dungeon_info,000009B8 -8040611C text_init,0000002C -80406148 text_print,000000A8 -804061F0 text_flush,00000148 -80406344 .byt:0010 -80406344 font_sprite -80406354 .byt:0010 -80406354 quest_items_sprite -80406364 .byt:0010 -80406364 medals_sprite -80406374 .byt:0010 -80406374 stones_sprite -80406384 .byt:000E -80406384 cfg_dungeon_rewards -80406394 .byt:0012 -80406394 medal_colors -804063A8 .byt:009C -804063A8 dungeons -80406444 .byt:0004 -80406444 cfg_dungeon_info_enable -80406448 .byt:0004 -80406448 dungeon_count -8040644C .byt:0004 -8040644C heap_next -80406450 .byt:0004 -80406450 cfg_dungeon_info_reward_need_altar -80406454 .byt:0004 -80406454 cfg_dungeon_info_reward_need_compass -80406458 .byt:0004 -80406458 cfg_dungeon_info_mq_need_map -8040645C .byt:0004 -8040645C cfg_dungeon_info_mq_enable -80406468 .byt:0010 -80406468 setup_db -80406478 .byt:000E -80406478 cfg_dungeon_is_mq -80406486 .byt:14C8 -80406486 FONT_TEXTURE -8040794E .byt:86B2 +80405000 draw_file_select_hash,000000D4 +804050D4 disp_buf_init,00000018 +804050EC sprite_bytes_per_tile,00000028 +80405114 sprite_bytes,00000030 +80405144 sprite_load,000001A0 +804052E4 sprite_draw,000000F0 +804053D4 draw_setup,000001DC +804055B0 gfx_init,00000148 +804056F8 heap_init,00000014 +8040570C heap_alloc,00000034 +80405740 file_init,00000044 +80405784 c_init,0000002C +804057B0 c_after_game_state_update,00000088 +80405838 draw_dungeon_info,000009B8 +804061F0 text_init,0000002C +8040621C text_print,000000A8 +804062C4 text_flush,00000148 +80406418 .byt:0010 +80406418 font_sprite +80406428 .byt:0010 +80406428 quest_items_sprite +80406438 .byt:0010 +80406438 medals_sprite +80406448 .byt:0010 +80406448 stones_sprite +80406458 .byt:000E +80406458 cfg_dungeon_rewards +80406468 .byt:0012 +80406468 medal_colors +8040647C .byt:009C +8040647C dungeons +80406518 .byt:0004 +80406518 cfg_dungeon_info_enable +8040651C .byt:0004 +8040651C dungeon_count +80406520 .byt:0004 +80406520 heap_next +80406524 .byt:0004 +80406524 cfg_dungeon_info_reward_need_altar +80406528 .byt:0004 +80406528 cfg_dungeon_info_reward_need_compass +8040652C .byt:0004 +8040652C cfg_dungeon_info_mq_need_map +80406530 .byt:0004 +80406530 cfg_dungeon_info_mq_enable +8040653C .byt:0010 +8040653C setup_db +8040654C .byt:000E +8040654C cfg_dungeon_is_mq +8040655A .byt:14C8 +8040655A FONT_TEXTURE +80407A22 .byt:85DE 80480000 DUMMY_ACTOR 80500000 C_HEAP  \ No newline at end of file diff --git a/ASM/build/bundle.o b/ASM/build/bundle.o index d5f9850c05530447629fc7f026548f6ce269f422..7ed655975ba4907656b94524ed38ea22436487b9 100644 GIT binary patch delta 2933 zcmZWrUuauZ9RB4tO|s@DxlI$Bt<`18O(;pr@=&^NPOMO5!X5_gTso@sVQd8l z6Vr!I3+AD6_n@+eAe|O0tga(1FO%j`)2!zv$R5J$&c; zo!_7D{LbyU*?Rll*h0q2&3^9gD~WGgo_k7LJ-6!*3f64*!0=q9d{m@hiIk6tzx9F24bR6!fY1 z-C+qOt@`8TPefWaB-C?TQk*Ye5kE#qzUkcq`}dcxCcGz!UhmuFJ}=kVdGoDg)hflB z9q~*35$4Hfc=t0r`wTzOG zSeFoALW_MKS~LfPw%qp>=6sq07BL^fU;!qq!XJWUUIqLD^JDOY^81)Wcr)I@Q8xr? zKI^}C%4z5lD+`B*7`-Nebp!>5z(J`p zW!DeM;)OFGjz47{pE`4K>gLI=?|daRD$Dm04bO5fX_42F+E+8!3hjr%Tel4c;Gcni z0R9>H2cUf?IpTJbyCPlWIJ7SE0g*i719-)9L-DJ+raU8aIab zJ@h~gIB~Y94Tad!wzO$!Td&9-6mEm^U9_X6yXZG0vX>kJ_L5@*{p2Ts;G|5T zvtSB1i^`Xjub4az1o0(wRz+TcAmL@_WDl&fi%R>7Zd9NCznIA>Ra&LpjgR zQDN;T&AZTEG=K$$M4os^IX2edz2rFmc%K>u)L~FL z3h@SvpEhrAd|KCMbp4j{s&WXVKfkBEM>^7`)g2T-I}6fYF`ew7ApZY%EbGEubwq0# zj%&)-4M$$tjUR*jx$!b_2;T_e1nzj^ED91Ua3R)kB@;JrlLGnKJ3vgML&PDG*A89)l1w!%Ypcl)XmSbS)Y}#y%jeTcxePTdD>fdGge~8+jjF-V%BqW zc`G^VjS}X)83WgH`9N|W38uX}xoqp7$d>lDa+!czgmK^Md;jwyVtrAh#_40-Eqp00000 delta 2593 zcmZWrO-N%`6h1FCiTQm=bkrHsF->CPwCdQ_>9~**%0OM%VnL`3E`&-uEkb8ui;IDm zg$toBEKiCH3t0#wMaqB{T)40>i!Lm}w^0n03tyKY{U83WNHz~XoD+Eo_yKrJ#F;Wa zkF^3uCMyyV@#HfQChWihC9ZIjLk;9B*iC?sTYzt1wkQ%iG`@?y;Gq+qA4Ec&wru}L z%DBW6ppJPB zg9*@LXA=NHvS$9@gO|a(!9ARja|psJ+5vvWoC@3g0`uVEBJ5w_qYq<91BR|3;1c*9 z;{%v?a6ka!hTg%P4|!BR`FLgYBl%+a(lbZT>sQo5m5->6u~}j<>+WLxyNu z0WV~@21HfiDQF;vUmrO-c8z=vNWLIarvIWyi5vp^$ybf9i@Z$x4IuWt@Q!WF1G#Zz z{M;NN>=mv*2QnbKLX1FY5rHER`X=@x!$7W&i;NHHgRTtOX=$q!xRJrh7UAB ziUMf2W_DYeAhoRtQWV5}2%=v)qX|-b>X*)|UwT6A(vxQA)ignR$_%H?a8?tf=QKh3 zo;fa=V^b5PA(+C_=pZY1JJrrjs+|iVY`NQ~cCHC=%NpNvhctm}%3M?CqNQw+d&eA) zEWxR9v@%F|rh!}t;!EhZa6v+l`y5Dqfoq)n5(o}Gk^|2mb}oYRccFZc3)mT?0hIIX zGA1lj*LNYap@}n_nmDr~(u*M3vR+i#VSLx&mmLElPIlZl3JdtG@j2rQ0D3e;YiQUd zK=3Y9Mb4)h!bbtW4a6GmcH#mO5$gy{Y~U&;9^(cjHgTf@@mEFqi3R+Y5Nr7HBrb^D zB-YW%JSPoYxx{0%n%G2Z_kS;!oKV+jP@4r&!dh_ k*h&uu$`9uJSHk~N_FQWq)?L4EsMu3l$J%Cl1ISY4AD)f&Bme*a diff --git a/ASM/build/c_symbols.txt b/ASM/build/c_symbols.txt index bf18303d4..f6610e11e 100644 --- a/ASM/build/c_symbols.txt +++ b/ASM/build/c_symbols.txt @@ -14,6 +14,7 @@ SYMBOL TABLE: 00000000 l d .pdr 00000000 .pdr 00000000 l d .gnu.attributes 00000000 .gnu.attributes 00000000 l d .mdebug.abi32 00000000 .mdebug.abi32 +00000000 l df *ABS* 00000000 file_select.c 00000000 l df *ABS* 00000000 gfx.c 00000000 l df *ABS* 00000000 util.c 00000000 l df *ABS* 00000000 main.c @@ -23,38 +24,39 @@ SYMBOL TABLE: 00000000 l df *ABS* 00000000 text.c 00000018 l O .sbss 00000004 text_buf 00000014 l O .sbss 00000004 text_end -0000111c g F .text 0000002c text_init -000011f0 g F .text 00000148 text_flush +000011f0 g F .text 0000002c text_init +000012c4 g F .text 00000148 text_flush 00000020 g O .data 00000010 medals_sprite 00000004 g O .sdata 00000004 dungeon_count 00000010 g O .data 00000010 quest_items_sprite -00000638 g F .text 00000034 heap_alloc -00000764 g F .text 000009b8 draw_dungeon_info +0000070c g F .text 00000034 heap_alloc +00000838 g F .text 000009b8 draw_dungeon_info 00000000 *UND* 00000000 FONT_TEXTURE -00000210 g F .text 000000f0 sprite_draw -00000070 g F .text 000001a0 sprite_load +00000000 g F .text 000000d4 draw_file_select_hash +000002e4 g F .text 000000f0 sprite_draw +00000144 g F .text 000001a0 sprite_load 00000030 g O .data 00000010 stones_sprite 00000000 g O .bss 00000010 setup_db -00000300 g F .text 000001dc draw_setup +000003d4 g F .text 000001dc draw_setup 00000000 g O .data 00000010 font_sprite -00000040 g F .text 00000030 sprite_bytes +00000114 g F .text 00000030 sprite_bytes 0000000c g O .sbss 00000004 cfg_dungeon_info_mq_need_map -000004dc g F .text 00000148 gfx_init -00000000 g F .text 00000018 disp_buf_init +000005b0 g F .text 00000148 gfx_init +000000d4 g F .text 00000018 disp_buf_init 00000010 g O .bss 0000000e cfg_dungeon_is_mq 00000064 g O .data 0000009c dungeons 00000050 g O .data 00000012 medal_colors -00001148 g F .text 000000a8 text_print -000006b0 g F .text 0000002c c_init +0000121c g F .text 000000a8 text_print +00000784 g F .text 0000002c c_init 00000000 g O .sbss 00000004 heap_next 00000040 g O .data 0000000e cfg_dungeon_rewards -000006dc g F .text 00000088 c_after_game_state_update -00000624 g F .text 00000014 heap_init +000007b0 g F .text 00000088 c_after_game_state_update +000006f8 g F .text 00000014 heap_init 00000008 g O .sbss 00000004 cfg_dungeon_info_reward_need_compass 00000010 g O .sbss 00000004 cfg_dungeon_info_mq_enable 00000000 *UND* 00000000 C_HEAP -00000018 g F .text 00000028 sprite_bytes_per_tile -0000066c g F .text 00000044 file_init +000000ec g F .text 00000028 sprite_bytes_per_tile +00000740 g F .text 00000044 file_init 00000004 g O .sbss 00000004 cfg_dungeon_info_reward_need_altar 00000000 g O .sdata 00000004 cfg_dungeon_info_enable diff --git a/ASM/c/file_select.c b/ASM/c/file_select.c new file mode 100644 index 000000000..c894272ce --- /dev/null +++ b/ASM/c/file_select.c @@ -0,0 +1,24 @@ +#include "file_select.h" + +#include "gfx.h" +#include "text.h" +#include "util.h" +#include "z64.h" + +void draw_file_select_hash(uint32_t fade_out_alpha) { + z64_disp_buf_t *db = &(z64_ctxt.gfx->poly_opa); + + // Call setup display list + gSPDisplayList(db->p++, setup_db.buf); + + // Fade out once a file is selected + + gDPSetCombineMode(db->p++, G_CC_PRIMITIVE, G_CC_PRIMITIVE); + gDPSetPrimColor(db->p++, 0, 0, 0x00, 0x00, 0x00, fade_out_alpha); + gSPTextureRectangle(db->p++, + 0, 0, + Z64_SCREEN_WIDTH<<2, Z64_SCREEN_HEIGHT<<2, + 0, + 0, 0, + 1<<10, 1<<10); +} diff --git a/ASM/c/file_select.h b/ASM/c/file_select.h new file mode 100644 index 000000000..a276aebfe --- /dev/null +++ b/ASM/c/file_select.h @@ -0,0 +1,8 @@ +#ifndef FILE_SELECT_H +#define FILE_SELECT_H + +#include "z64.h" + +void draw_file_select_hash(uint32_t fade_out_alpha); + +#endif diff --git a/ASM/c/main.c b/ASM/c/main.c index 469c6f45a..d28a4947d 100644 --- a/ASM/c/main.c +++ b/ASM/c/main.c @@ -1,4 +1,5 @@ #include "dungeon_info.h" +#include "file_select.h" #include "gfx.h" #include "text.h" #include "util.h" diff --git a/ASM/src/hacks.asm b/ASM/src/hacks.asm index 78eb2b878..09fe60377 100755 --- a/ASM/src/hacks.asm +++ b/ASM/src/hacks.asm @@ -165,6 +165,19 @@ jal after_game_state_update nop +; Runs after the file select menu is rendered +; Replaces: code that draws the fade-out rectangle on file load +.org 0xBAF738 ; In memory: 0x803B3580 +.area 0x60, 0 + jal draw_file_select_hash + andi a0, t8, 0xFF ; a0 = alpha channel of fade-out rectangle + + lw s0, 0x18 (sp) + lw ra, 0x1C (sp) + jr ra + addiu sp, sp, 0x88 +.endarea + ;================================================================================================== ; Special item sources ;================================================================================================== @@ -497,4 +510,4 @@ ; Replaces: ; jal 0x80057030 ; copies Scarecrow Song from active space to save context .org 0xB55A64 ; In memory 800DFB04 - jal save_scarecrow_song \ No newline at end of file + jal save_scarecrow_song diff --git a/data/rom_patch.txt b/data/rom_patch.txt index 4ab583af6..81d205fb1 100644 --- a/data/rom_patch.txt +++ b/data/rom_patch.txt @@ -526,6 +526,87 @@ b55a67,d4 baed6c,0 baed6d,0 baed6f,0 +baf738,c +baf739,10 +baf73a,14 +baf73b,0 +baf73d,4 +baf740,8f +baf741,b0 +baf743,18 +baf744,8f +baf745,bf +baf746,0 +baf747,1c +baf748,3 +baf749,e0 +baf74a,0 +baf74b,8 +baf74c,27 +baf74d,bd +baf74e,0 +baf74f,88 +baf750,0 +baf751,0 +baf753,0 +baf754,0 +baf755,0 +baf756,0 +baf757,0 +baf758,0 +baf759,0 +baf75a,0 +baf75c,0 +baf75d,0 +baf75e,0 +baf75f,0 +baf760,0 +baf761,0 +baf763,0 +baf764,0 +baf765,0 +baf766,0 +baf767,0 +baf768,0 +baf769,0 +baf76a,0 +baf76b,0 +baf76c,0 +baf76d,0 +baf76e,0 +baf76f,0 +baf770,0 +baf771,0 +baf772,0 +baf773,0 +baf775,0 +baf776,0 +baf777,0 +baf778,0 +baf779,0 +baf77a,0 +baf77b,0 +baf77d,0 +baf77e,0 +baf77f,0 +baf780,0 +baf781,0 +baf782,0 +baf783,0 +baf784,0 +baf785,0 +baf788,0 +baf789,0 +baf78b,0 +baf78c,0 +baf78d,0 +baf78f,0 +baf790,0 +baf791,0 +baf793,0 +baf794,0 +baf795,0 +baf797,0 bb77b4,0 bb77b5,0 bb77b7,0 @@ -1039,7 +1120,7 @@ ec9ce7,7a 3480024,c 3480025,10 3480026,15 -3480027,ac +3480027,e1 348002c,3c 348002d,2 348002e,80 @@ -4734,7 +4815,7 @@ ec9ce7,7a 3483318,c 3483319,10 348331a,15 -348331b,b7 +348331b,ec 3483320,3c 3483321,e 3483322,80 @@ -5552,2532 +5633,2535 @@ ec9ce7,7a 34837e0,3 34837e1,e0 34837e3,8 -34b3000,ac -34b3001,86 -34b3004,ac -34b3005,85 -34b3007,4 -34b3008,ac -34b3009,85 -34b300b,8 -34b300d,a6 -34b300e,28 -34b300f,21 -34b3010,3 -34b3011,e0 -34b3013,8 -34b3014,ac -34b3015,85 -34b3017,c -34b3018,94 -34b3019,82 -34b301b,4 -34b301c,94 -34b301d,83 -34b301f,6 -34b3021,43 -34b3023,18 -34b3026,10 -34b3027,12 -34b3028,90 -34b3029,83 -34b302b,c -34b3031,43 -34b3033,18 -34b3036,10 -34b3037,12 -34b3038,3 -34b3039,e0 -34b303b,8 -34b3040,27 -34b3041,bd +34b3000,27 +34b3001,bd +34b3002,ff +34b3003,e8 +34b3004,3c +34b3005,2 +34b3006,80 +34b3007,1c +34b3008,34 +34b3009,42 +34b300a,84 +34b300b,a0 +34b300c,8c +34b300d,43 +34b3010,3c +34b3011,2 +34b3012,80 +34b3013,40 +34b3014,8c +34b3015,45 +34b3016,65 +34b3017,40 +34b3018,8c +34b3019,62 +34b301a,2 +34b301b,c0 +34b301c,24 +34b301d,46 +34b301f,8 +34b3020,ac +34b3021,66 +34b3022,2 +34b3023,c0 +34b3024,3c +34b3025,6 +34b3026,de +34b3028,ac +34b3029,46 +34b302c,ac +34b302d,45 +34b302f,4 +34b3030,8c +34b3031,62 +34b3032,2 +34b3033,c0 +34b3034,24 +34b3035,45 +34b3037,8 +34b3038,ac +34b3039,65 +34b303a,2 +34b303b,c0 +34b303c,3c +34b303d,5 +34b303e,fc +34b303f,ff +34b3040,34 +34b3041,a5 34b3042,ff -34b3043,e8 -34b3044,af -34b3045,bf -34b3047,14 -34b3048,af -34b3049,b0 -34b304b,10 -34b304c,c -34b304d,10 -34b304e,14 -34b304f,6 -34b3051,80 -34b3052,80 -34b3053,25 -34b3054,96 -34b3055,3 -34b3057,8 -34b3059,62 -34b305b,18 -34b305e,10 -34b305f,12 -34b3060,8f -34b3061,bf -34b3063,14 -34b3064,8f -34b3065,b0 -34b3067,10 -34b3068,3 -34b3069,e0 -34b306b,8 -34b306c,27 -34b306d,bd -34b306f,18 -34b3070,27 -34b3071,bd -34b3072,ff -34b3073,98 -34b3074,af -34b3075,bf -34b3077,64 +34b3043,ff +34b3044,ac +34b3045,45 +34b3048,3c +34b3049,5 +34b304a,ff +34b304b,fd +34b304c,34 +34b304d,a5 +34b304e,f6 +34b304f,fb +34b3050,ac +34b3051,45 +34b3053,4 +34b3054,8c +34b3055,62 +34b3056,2 +34b3057,c0 +34b3058,24 +34b3059,45 +34b305b,8 +34b305c,ac +34b305d,65 +34b305e,2 +34b305f,c0 +34b3060,3c +34b3061,5 +34b3062,fa +34b3064,ac +34b3065,45 +34b3068,30 +34b3069,84 +34b306b,ff +34b306c,ac +34b306d,44 +34b306f,4 +34b3070,3c +34b3071,2 +34b3072,e4 +34b3073,50 +34b3074,24 +34b3075,42 +34b3076,3 +34b3077,c0 34b3078,af -34b3079,b6 -34b307b,60 +34b3079,a2 34b307c,af -34b307d,b5 -34b307f,5c -34b3080,af -34b3081,b4 -34b3083,58 +34b307d,a0 +34b307f,4 +34b3080,3c +34b3081,2 +34b3082,e1 34b3084,af -34b3085,b3 -34b3087,54 +34b3085,a2 +34b3087,8 34b3088,af -34b3089,b2 -34b308b,50 -34b308c,af -34b308d,b1 -34b308f,4c +34b3089,a0 +34b308b,c +34b308c,3c +34b308d,2 +34b308e,f1 34b3090,af -34b3091,b0 -34b3093,48 -34b3095,80 -34b3096,80 -34b3097,25 -34b3099,a0 -34b309a,a8 -34b309b,25 -34b309d,c0 -34b309e,b0 -34b309f,25 -34b30a0,94 -34b30a1,b1 -34b30a3,4 -34b30a4,94 -34b30a5,b2 -34b30a7,6 -34b30a8,2 -34b30a9,47 -34b30ab,18 -34b30ae,90 -34b30af,12 -34b30b0,90 -34b30b1,b4 -34b30b3,b -34b30b4,90 -34b30b5,a2 -34b30b7,a -34b30b9,2 -34b30ba,15 -34b30bb,40 -34b30bc,3c -34b30bd,13 -34b30bf,e0 -34b30c1,53 -34b30c2,10 -34b30c3,24 -34b30c5,14 -34b30c6,9c -34b30c7,c0 -34b30c8,3c -34b30c9,3 -34b30cb,18 -34b30cc,2 -34b30cd,63 -34b30ce,98 -34b30cf,24 -34b30d1,53 -34b30d2,98 -34b30d3,25 -34b30d4,26 -34b30d5,23 -34b30d6,ff -34b30d7,ff -34b30d8,30 -34b30d9,63 -34b30da,f -34b30db,ff -34b30dd,73 -34b30de,18 -34b30df,25 -34b30e0,3c -34b30e1,2 -34b30e2,fd -34b30e5,62 -34b30e6,18 -34b30e7,25 -34b30e8,af -34b30e9,a3 -34b30eb,10 -34b30ec,c -34b30ed,10 -34b30ee,14 -34b30ef,6 -34b30f1,a0 -34b30f2,20 -34b30f3,25 -34b30f5,56 +34b3091,a2 +34b3093,10 +34b3094,3c +34b3095,2 +34b3096,4 +34b3098,24 +34b3099,42 +34b309a,4 +34b309c,af +34b309d,a2 +34b309f,14 +34b30a0,3 +34b30a1,a0 +34b30a2,10 +34b30a3,25 +34b30a4,27 +34b30a5,a8 +34b30a7,18 +34b30a8,8c +34b30a9,64 +34b30aa,2 +34b30ab,c0 +34b30ac,24 +34b30ad,85 +34b30af,8 +34b30b0,ac +34b30b1,65 +34b30b2,2 +34b30b3,c0 +34b30b4,8c +34b30b5,47 +34b30b7,4 +34b30b8,8c +34b30b9,46 +34b30bc,ac +34b30bd,87 +34b30bf,4 +34b30c0,24 +34b30c1,42 +34b30c3,8 +34b30c4,15 +34b30c5,2 +34b30c6,ff +34b30c7,f8 +34b30c8,ac +34b30c9,86 +34b30cc,3 +34b30cd,e0 +34b30cf,8 +34b30d0,27 +34b30d1,bd +34b30d3,18 +34b30d4,ac +34b30d5,86 +34b30d8,ac +34b30d9,85 +34b30db,4 +34b30dc,ac +34b30dd,85 +34b30df,8 +34b30e1,a6 +34b30e2,28 +34b30e3,21 +34b30e4,3 +34b30e5,e0 +34b30e7,8 +34b30e8,ac +34b30e9,85 +34b30eb,c +34b30ec,94 +34b30ed,82 +34b30ef,4 +34b30f0,94 +34b30f1,83 +34b30f3,6 +34b30f5,43 34b30f7,18 34b30fa,10 34b30fb,12 -34b30fc,8e -34b30fd,a3 -34b3101,62 -34b3102,18 -34b3103,21 -34b3104,af -34b3105,a3 -34b3107,14 -34b3108,2e -34b3109,83 -34b310b,2 -34b310c,10 -34b310d,60 -34b310f,3 -34b3110,24 -34b3111,2 -34b3113,10 -34b3114,24 -34b3115,2 -34b3117,4 -34b3118,2 -34b3119,82 -34b311a,10 -34b311b,4 -34b311d,51 -34b311f,18 -34b3122,10 -34b3123,12 -34b3124,24 -34b3125,43 -34b3127,3f +34b30fc,90 +34b30fd,83 +34b30ff,c +34b3105,43 +34b3107,18 +34b310a,10 +34b310b,12 +34b310c,3 +34b310d,e0 +34b310f,8 +34b3114,27 +34b3115,bd +34b3116,ff +34b3117,e8 +34b3118,af +34b3119,bf +34b311b,14 +34b311c,af +34b311d,b0 +34b311f,10 +34b3120,c +34b3121,10 +34b3122,14 +34b3123,3b +34b3125,80 +34b3126,80 +34b3127,25 +34b3128,96 34b3129,3 -34b312a,17 -34b312b,c3 -34b312c,30 -34b312d,42 -34b312f,3f -34b3131,43 +34b312b,8 +34b312d,62 +34b312f,18 34b3132,10 -34b3133,21 -34b3135,2 -34b3136,10 -34b3137,c0 -34b3138,3c -34b3139,3 -34b313b,3 -34b313c,34 -34b313d,63 -34b313e,fe -34b3141,43 -34b3142,10 -34b3143,24 -34b3145,53 -34b3146,10 -34b3147,25 -34b3148,3c -34b3149,3 -34b314a,f5 -34b314d,43 -34b314e,10 -34b314f,25 +34b3133,12 +34b3134,8f +34b3135,bf +34b3137,14 +34b3138,8f +34b3139,b0 +34b313b,10 +34b313c,3 +34b313d,e0 +34b313f,8 +34b3140,27 +34b3141,bd +34b3143,18 +34b3144,27 +34b3145,bd +34b3146,ff +34b3147,98 +34b3148,af +34b3149,bf +34b314b,64 +34b314c,af +34b314d,b6 +34b314f,60 34b3150,af -34b3151,a2 -34b3153,18 -34b3154,3c -34b3155,4 -34b3156,7 +34b3151,b5 +34b3153,5c +34b3154,af +34b3155,b4 +34b3157,58 34b3158,af -34b3159,a4 -34b315b,1c -34b315c,3c -34b315d,3 -34b315e,e6 +34b3159,b3 +34b315b,54 +34b315c,af +34b315d,b2 +34b315f,50 34b3160,af -34b3161,a3 -34b3163,20 +34b3161,b1 +34b3163,4c 34b3164,af -34b3165,a0 -34b3167,24 -34b3168,3c -34b3169,3 -34b316a,f4 -34b316c,af -34b316d,a3 -34b316f,28 -34b3170,26 -34b3171,23 -34b3172,ff -34b3173,ff -34b3175,3 -34b3176,1b -34b3177,80 -34b3178,3c -34b3179,11 -34b317b,ff -34b317c,36 -34b317d,31 -34b317e,f0 -34b3181,71 -34b3182,18 -34b3183,24 -34b3184,26 -34b3185,52 -34b3186,ff -34b3187,ff -34b3189,12 -34b318a,90 -34b318b,80 -34b318c,32 -34b318d,52 -34b318e,f -34b318f,fc -34b3191,72 -34b3192,18 -34b3193,25 -34b3195,64 -34b3196,20 -34b3197,25 -34b3198,af -34b3199,a4 -34b319b,2c +34b3165,b0 +34b3167,48 +34b3169,80 +34b316a,80 +34b316b,25 +34b316d,a0 +34b316e,a8 +34b316f,25 +34b3171,c0 +34b3172,b0 +34b3173,25 +34b3174,94 +34b3175,b1 +34b3177,4 +34b3178,94 +34b3179,b2 +34b317b,6 +34b317c,2 +34b317d,47 +34b317f,18 +34b3182,90 +34b3183,12 +34b3184,90 +34b3185,b4 +34b3187,b +34b3188,90 +34b3189,a2 +34b318b,a +34b318d,2 +34b318e,15 +34b318f,40 +34b3190,3c +34b3191,13 +34b3193,e0 +34b3195,53 +34b3196,10 +34b3197,24 +34b3199,14 +34b319a,9c +34b319b,c0 34b319c,3c -34b319d,4 -34b319e,e7 -34b31a0,af -34b31a1,a4 -34b31a3,30 -34b31a4,af -34b31a5,a0 -34b31a7,34 -34b31a8,af -34b31a9,a2 -34b31ab,38 -34b31ac,af -34b31ad,a0 -34b31af,3c -34b31b0,3c -34b31b1,2 -34b31b2,f2 -34b31b4,af -34b31b5,a2 -34b31b7,40 -34b31b8,af -34b31b9,a3 -34b31bb,44 -34b31bc,27 -34b31bd,a2 +34b319d,3 +34b319f,18 +34b31a0,2 +34b31a1,63 +34b31a2,98 +34b31a3,24 +34b31a5,53 +34b31a6,98 +34b31a7,25 +34b31a8,26 +34b31a9,23 +34b31aa,ff +34b31ab,ff +34b31ac,30 +34b31ad,63 +34b31ae,f +34b31af,ff +34b31b1,73 +34b31b2,18 +34b31b3,25 +34b31b4,3c +34b31b5,2 +34b31b6,fd +34b31b9,62 +34b31ba,18 +34b31bb,25 +34b31bc,af +34b31bd,a3 34b31bf,10 -34b31c0,27 -34b31c1,a6 -34b31c3,48 -34b31c4,8e -34b31c5,3 -34b31c7,8 -34b31c8,24 -34b31c9,64 -34b31cb,8 -34b31cc,ae -34b31cd,4 -34b31cf,8 -34b31d0,8c -34b31d1,45 -34b31d3,4 -34b31d4,8c -34b31d5,44 -34b31d8,ac -34b31d9,65 -34b31db,4 -34b31dc,24 -34b31dd,42 -34b31df,8 -34b31e0,14 -34b31e1,46 -34b31e2,ff -34b31e3,f8 -34b31e4,ac -34b31e5,64 -34b31e8,8f -34b31e9,bf -34b31eb,64 -34b31ec,8f -34b31ed,b6 -34b31ef,60 -34b31f0,8f -34b31f1,b5 -34b31f3,5c -34b31f4,8f -34b31f5,b4 -34b31f7,58 -34b31f8,8f -34b31f9,b3 -34b31fb,54 -34b31fc,8f -34b31fd,b2 -34b31ff,50 -34b3200,8f -34b3201,b1 -34b3203,4c -34b3204,8f -34b3205,b0 -34b3207,48 -34b3208,3 -34b3209,e0 -34b320b,8 -34b320c,27 -34b320d,bd -34b320f,68 -34b3210,27 -34b3211,bd -34b3212,ff -34b3213,e8 -34b3214,8f -34b3215,a8 -34b3217,28 -34b3218,8f -34b3219,a2 -34b321b,2c -34b321c,8f -34b321d,aa -34b321f,30 -34b3220,94 -34b3221,a9 -34b3223,4 -34b3225,9 -34b3226,4a -34b3227,80 -34b3228,14 -34b3229,40 -34b322b,2 -34b322c,1 -34b322d,22 -34b322f,1a -34b3231,7 -34b3233,d -34b3236,48 -34b3237,12 -34b3238,94 -34b3239,a3 -34b323b,6 -34b323d,47 -34b323e,10 -34b323f,21 -34b3241,2 -34b3242,13 -34b3243,80 -34b3244,3c -34b3245,b +34b31c0,c +34b31c1,10 +34b31c2,14 +34b31c3,3b +34b31c5,a0 +34b31c6,20 +34b31c7,25 +34b31c9,56 +34b31cb,18 +34b31ce,10 +34b31cf,12 +34b31d0,8e +34b31d1,a3 +34b31d5,62 +34b31d6,18 +34b31d7,21 +34b31d8,af +34b31d9,a3 +34b31db,14 +34b31dc,2e +34b31dd,83 +34b31df,2 +34b31e0,10 +34b31e1,60 +34b31e3,3 +34b31e4,24 +34b31e5,2 +34b31e7,10 +34b31e8,24 +34b31e9,2 +34b31eb,4 +34b31ec,2 +34b31ed,82 +34b31ee,10 +34b31ef,4 +34b31f1,51 +34b31f3,18 +34b31f6,10 +34b31f7,12 +34b31f8,24 +34b31f9,43 +34b31fb,3f +34b31fd,3 +34b31fe,17 +34b31ff,c3 +34b3200,30 +34b3201,42 +34b3203,3f +34b3205,43 +34b3206,10 +34b3207,21 +34b3209,2 +34b320a,10 +34b320b,c0 +34b320c,3c +34b320d,3 +34b320f,3 +34b3210,34 +34b3211,63 +34b3212,fe +34b3215,43 +34b3216,10 +34b3217,24 +34b3219,53 +34b321a,10 +34b321b,25 +34b321c,3c +34b321d,3 +34b321e,f5 +34b3221,43 +34b3222,10 +34b3223,25 +34b3224,af +34b3225,a2 +34b3227,18 +34b3228,3c +34b3229,4 +34b322a,7 +34b322c,af +34b322d,a4 +34b322f,1c +34b3230,3c +34b3231,3 +34b3232,e6 +34b3234,af +34b3235,a3 +34b3237,20 +34b3238,af +34b3239,a0 +34b323b,24 +34b323c,3c +34b323d,3 +34b323e,f4 +34b3240,af +34b3241,a3 +34b3243,28 +34b3244,26 +34b3245,23 +34b3246,ff 34b3247,ff -34b3248,35 -34b3249,6b -34b324a,f0 -34b324d,4b -34b324e,10 -34b324f,24 -34b3250,1 -34b3251,48 -34b3252,28 -34b3253,21 -34b3255,5 -34b3256,28 -34b3257,80 -34b3258,30 -34b3259,a5 -34b325a,f +34b3249,3 +34b324a,1b +34b324b,80 +34b324c,3c +34b324d,11 +34b324f,ff +34b3250,36 +34b3251,31 +34b3252,f0 +34b3255,71 +34b3256,18 +34b3257,24 +34b3258,26 +34b3259,52 +34b325a,ff 34b325b,ff -34b325d,45 -34b325e,10 -34b325f,25 -34b3260,3c -34b3261,5 -34b3262,e4 -34b3265,45 -34b3266,10 +34b325d,12 +34b325e,90 +34b325f,80 +34b3260,32 +34b3261,52 +34b3262,f +34b3263,fc +34b3265,72 +34b3266,18 34b3267,25 -34b3268,af -34b3269,a2 -34b326d,7 -34b326e,3b -34b326f,80 -34b3271,eb -34b3272,38 -34b3273,24 -34b3275,8 -34b3276,40 -34b3277,80 -34b3278,31 -34b3279,8 -34b327a,f -34b327b,ff -34b327d,e8 -34b327e,38 -34b327f,25 +34b3269,64 +34b326a,20 +34b326b,25 +34b326c,af +34b326d,a4 +34b326f,2c +34b3270,3c +34b3271,4 +34b3272,e7 +34b3274,af +34b3275,a4 +34b3277,30 +34b3278,af +34b3279,a0 +34b327b,34 +34b327c,af +34b327d,a2 +34b327f,38 34b3280,af -34b3281,a7 -34b3283,4 +34b3281,a0 +34b3283,3c 34b3284,3c 34b3285,2 -34b3286,e1 +34b3286,f2 34b3288,af 34b3289,a2 -34b328b,8 -34b328d,66 -34b328f,18 -34b3292,30 -34b3293,12 -34b3295,6 -34b3296,31 -34b3297,40 -34b3298,30 -34b3299,c6 -34b329a,ff -34b329b,ff -34b329c,af -34b329d,a6 -34b329f,c -34b32a0,3c -34b32a1,2 -34b32a2,f1 -34b32a4,af -34b32a5,a2 -34b32a7,10 -34b32a9,3 -34b32aa,1a -34b32ab,80 -34b32ac,15 -34b32ad,40 -34b32af,2 -34b32b1,6a -34b32b3,1a -34b32b5,7 -34b32b7,d -34b32ba,18 -34b32bb,12 -34b32bc,30 -34b32bd,63 -34b32be,ff -34b32bf,ff -34b32c1,9 -34b32c2,4c -34b32c5,69 -34b32c6,18 -34b32c7,25 -34b32c8,af -34b32c9,a3 -34b32cb,14 -34b32cc,3 -34b32cd,a0 -34b32ce,10 -34b32cf,25 -34b32d0,27 -34b32d1,a8 -34b32d3,18 -34b32d4,8c -34b32d5,83 -34b32d7,8 -34b32d8,24 -34b32d9,65 -34b32db,8 -34b32dc,ac -34b32dd,85 +34b328b,40 +34b328c,af +34b328d,a3 +34b328f,44 +34b3290,27 +34b3291,a2 +34b3293,10 +34b3294,27 +34b3295,a6 +34b3297,48 +34b3298,8e +34b3299,3 +34b329b,8 +34b329c,24 +34b329d,64 +34b329f,8 +34b32a0,ae +34b32a1,4 +34b32a3,8 +34b32a4,8c +34b32a5,45 +34b32a7,4 +34b32a8,8c +34b32a9,44 +34b32ac,ac +34b32ad,65 +34b32af,4 +34b32b0,24 +34b32b1,42 +34b32b3,8 +34b32b4,14 +34b32b5,46 +34b32b6,ff +34b32b7,f8 +34b32b8,ac +34b32b9,64 +34b32bc,8f +34b32bd,bf +34b32bf,64 +34b32c0,8f +34b32c1,b6 +34b32c3,60 +34b32c4,8f +34b32c5,b5 +34b32c7,5c +34b32c8,8f +34b32c9,b4 +34b32cb,58 +34b32cc,8f +34b32cd,b3 +34b32cf,54 +34b32d0,8f +34b32d1,b2 +34b32d3,50 +34b32d4,8f +34b32d5,b1 +34b32d7,4c +34b32d8,8f +34b32d9,b0 +34b32db,48 +34b32dc,3 +34b32dd,e0 34b32df,8 -34b32e0,8c -34b32e1,47 -34b32e3,4 -34b32e4,8c -34b32e5,46 -34b32e8,ac -34b32e9,67 -34b32eb,4 -34b32ec,24 -34b32ed,42 -34b32ef,8 -34b32f0,14 -34b32f1,48 -34b32f2,ff -34b32f3,f8 -34b32f4,ac -34b32f5,66 -34b32f8,3 -34b32f9,e0 -34b32fb,8 -34b32fc,27 -34b32fd,bd -34b32ff,18 -34b3300,8c -34b3301,82 -34b3303,8 -34b3304,24 -34b3305,43 -34b3307,8 -34b3308,ac -34b3309,83 -34b330b,8 -34b330c,3c -34b330d,3 -34b330e,e7 -34b3310,ac -34b3311,43 -34b3314,ac -34b3315,40 -34b3317,4 -34b3318,8c -34b3319,82 -34b331b,8 -34b331c,24 -34b331d,43 -34b331f,8 -34b3320,ac -34b3321,83 -34b3323,8 -34b3324,3c -34b3325,3 -34b3326,d9 -34b3328,ac -34b3329,43 -34b332c,ac -34b332d,40 -34b332f,4 -34b3330,8c -34b3331,82 -34b3333,8 -34b3334,24 -34b3335,43 -34b3337,8 -34b3338,ac -34b3339,83 -34b333b,8 -34b333c,3c -34b333d,3 -34b333e,ed -34b3340,ac -34b3341,43 -34b3344,3c -34b3345,5 -34b3347,50 -34b3348,24 -34b3349,a3 -34b334a,3 -34b334b,c0 -34b334c,ac -34b334d,43 -34b334f,4 -34b3350,8c -34b3351,83 -34b3353,8 -34b3354,24 -34b3355,62 -34b3357,8 -34b3358,ac -34b3359,82 -34b335b,8 -34b335c,3c -34b335d,2 -34b335e,e3 -34b3360,24 -34b3361,46 -34b3362,1a -34b3363,1 -34b3364,ac -34b3365,66 -34b3368,24 +34b32e0,27 +34b32e1,bd +34b32e3,68 +34b32e4,27 +34b32e5,bd +34b32e6,ff +34b32e7,e8 +34b32e8,8f +34b32e9,a8 +34b32eb,28 +34b32ec,8f +34b32ed,a2 +34b32ef,2c +34b32f0,8f +34b32f1,aa +34b32f3,30 +34b32f4,94 +34b32f5,a9 +34b32f7,4 +34b32f9,9 +34b32fa,4a +34b32fb,80 +34b32fc,14 +34b32fd,40 +34b32ff,2 +34b3300,1 +34b3301,22 +34b3303,1a +34b3305,7 +34b3307,d +34b330a,48 +34b330b,12 +34b330c,94 +34b330d,a3 +34b330f,6 +34b3311,47 +34b3312,10 +34b3313,21 +34b3315,2 +34b3316,13 +34b3317,80 +34b3318,3c +34b3319,b +34b331b,ff +34b331c,35 +34b331d,6b +34b331e,f0 +34b3321,4b +34b3322,10 +34b3323,24 +34b3324,1 +34b3325,48 +34b3326,28 +34b3327,21 +34b3329,5 +34b332a,28 +34b332b,80 +34b332c,30 +34b332d,a5 +34b332e,f +34b332f,ff +34b3331,45 +34b3332,10 +34b3333,25 +34b3334,3c +34b3335,5 +34b3336,e4 +34b3339,45 +34b333a,10 +34b333b,25 +34b333c,af +34b333d,a2 +34b3341,7 +34b3342,3b +34b3343,80 +34b3345,eb +34b3346,38 +34b3347,24 +34b3349,8 +34b334a,40 +34b334b,80 +34b334c,31 +34b334d,8 +34b334e,f +34b334f,ff +34b3351,e8 +34b3352,38 +34b3353,25 +34b3354,af +34b3355,a7 +34b3357,4 +34b3358,3c +34b3359,2 +34b335a,e1 +34b335c,af +34b335d,a2 +34b335f,8 +34b3361,66 +34b3363,18 +34b3366,30 +34b3367,12 34b3369,6 -34b336b,30 -34b336c,ac -34b336d,66 -34b336f,4 -34b3370,8c -34b3371,83 -34b3373,8 -34b3374,24 -34b3375,66 -34b3377,8 -34b3378,ac -34b3379,86 -34b337b,8 -34b337c,24 -34b337d,46 -34b337e,18 -34b337f,1 -34b3380,ac -34b3381,66 -34b3384,24 -34b3385,6 -34b3387,c0 -34b3388,ac -34b3389,66 -34b338b,4 -34b338c,8c -34b338d,86 -34b338f,8 -34b3390,24 -34b3391,c3 -34b3393,8 -34b3394,ac -34b3395,83 -34b3397,8 -34b3398,3c -34b3399,3 -34b339a,e2 -34b339c,24 -34b339d,67 -34b339e,1e -34b339f,1 -34b33a0,ac -34b33a1,c7 -34b33a4,ac -34b33a5,c0 -34b33a7,4 +34b336a,31 +34b336b,40 +34b336c,30 +34b336d,c6 +34b336e,ff +34b336f,ff +34b3370,af +34b3371,a6 +34b3373,c +34b3374,3c +34b3375,2 +34b3376,f1 +34b3378,af +34b3379,a2 +34b337b,10 +34b337d,3 +34b337e,1a +34b337f,80 +34b3380,15 +34b3381,40 +34b3383,2 +34b3385,6a +34b3387,1a +34b3389,7 +34b338b,d +34b338e,18 +34b338f,12 +34b3390,30 +34b3391,63 +34b3392,ff +34b3393,ff +34b3395,9 +34b3396,4c +34b3399,69 +34b339a,18 +34b339b,25 +34b339c,af +34b339d,a3 +34b339f,14 +34b33a0,3 +34b33a1,a0 +34b33a2,10 +34b33a3,25 +34b33a4,27 +34b33a5,a8 +34b33a7,18 34b33a8,8c -34b33a9,86 +34b33a9,83 34b33ab,8 34b33ac,24 -34b33ad,c7 +34b33ad,65 34b33af,8 34b33b0,ac -34b33b1,87 +34b33b1,85 34b33b3,8 -34b33b4,24 -34b33b5,67 -34b33b6,1d -34b33b8,ac -34b33b9,c7 -34b33bc,24 -34b33bd,7 +34b33b4,8c +34b33b5,47 +34b33b7,4 +34b33b8,8c +34b33b9,46 +34b33bc,ac +34b33bd,67 34b33bf,4 -34b33c0,ac -34b33c1,c7 -34b33c3,4 -34b33c4,8c -34b33c5,86 -34b33c7,8 -34b33c8,24 -34b33c9,c7 -34b33cb,8 -34b33cc,ac -34b33cd,87 +34b33c0,24 +34b33c1,42 +34b33c3,8 +34b33c4,14 +34b33c5,48 +34b33c6,ff +34b33c7,f8 +34b33c8,ac +34b33c9,66 +34b33cc,3 +34b33cd,e0 34b33cf,8 -34b33d0,24 -34b33d1,47 -34b33d2,17 -34b33d4,ac -34b33d5,c7 -34b33d8,ac -34b33d9,c0 -34b33db,4 -34b33dc,8c -34b33dd,86 +34b33d0,27 +34b33d1,bd +34b33d3,18 +34b33d4,8c +34b33d5,82 +34b33d7,8 +34b33d8,24 +34b33d9,43 +34b33db,8 +34b33dc,ac +34b33dd,83 34b33df,8 -34b33e0,24 -34b33e1,c7 -34b33e3,8 +34b33e0,3c +34b33e1,3 +34b33e2,e7 34b33e4,ac -34b33e5,87 -34b33e7,8 -34b33e8,24 -34b33e9,47 -34b33ea,14 -34b33eb,2 -34b33ec,ac -34b33ed,c7 +34b33e5,43 +34b33e8,ac +34b33e9,40 +34b33eb,4 +34b33ec,8c +34b33ed,82 +34b33ef,8 34b33f0,24 -34b33f1,7 -34b33f2,c +34b33f1,43 +34b33f3,8 34b33f4,ac -34b33f5,c7 -34b33f7,4 -34b33f8,8c -34b33f9,86 -34b33fb,8 -34b33fc,24 -34b33fd,c7 -34b33ff,8 +34b33f5,83 +34b33f7,8 +34b33f8,3c +34b33f9,3 +34b33fa,d9 +34b33fc,ac +34b33fd,43 34b3400,ac -34b3401,87 -34b3403,8 -34b3404,24 -34b3405,47 -34b3406,d -34b3407,1 -34b3408,ac -34b3409,c7 +34b3401,40 +34b3403,4 +34b3404,8c +34b3405,82 +34b3407,8 +34b3408,24 +34b3409,43 +34b340b,8 34b340c,ac -34b340d,c0 -34b340f,4 -34b3410,8c -34b3411,86 -34b3413,8 -34b3414,24 -34b3415,c7 -34b3417,8 -34b3418,ac -34b3419,87 -34b341b,8 +34b340d,83 +34b340f,8 +34b3410,3c +34b3411,3 +34b3412,ed +34b3414,ac +34b3415,43 +34b3418,3c +34b3419,5 +34b341b,50 34b341c,24 -34b341d,47 -34b341e,c +34b341d,a3 +34b341e,3 +34b341f,c0 34b3420,ac -34b3421,c7 -34b3424,ac -34b3425,c0 -34b3427,4 -34b3428,8c -34b3429,86 +34b3421,43 +34b3423,4 +34b3424,8c +34b3425,83 +34b3427,8 +34b3428,24 +34b3429,62 34b342b,8 -34b342c,24 -34b342d,c7 +34b342c,ac +34b342d,82 34b342f,8 -34b3430,ac -34b3431,87 -34b3433,8 +34b3430,3c +34b3431,2 +34b3432,e3 34b3434,24 -34b3435,47 -34b3436,f +34b3435,46 +34b3436,1a +34b3437,1 34b3438,ac -34b3439,c7 -34b343c,ac -34b343d,c0 -34b343f,4 -34b3440,8c -34b3441,86 -34b3443,8 -34b3444,24 -34b3445,c7 +34b3439,66 +34b343c,24 +34b343d,6 +34b343f,30 +34b3440,ac +34b3441,66 +34b3443,4 +34b3444,8c +34b3445,83 34b3447,8 -34b3448,ac -34b3449,87 +34b3448,24 +34b3449,66 34b344b,8 -34b344c,24 -34b344d,47 -34b344e,10 -34b344f,1 -34b3450,ac -34b3451,c7 +34b344c,ac +34b344d,86 +34b344f,8 +34b3450,24 +34b3451,46 +34b3452,18 +34b3453,1 34b3454,ac -34b3455,c0 -34b3457,4 -34b3458,8c -34b3459,86 -34b345b,8 -34b345c,24 -34b345d,c7 -34b345f,8 -34b3460,ac -34b3461,87 +34b3455,66 +34b3458,24 +34b3459,6 +34b345b,c0 +34b345c,ac +34b345d,66 +34b345f,4 +34b3460,8c +34b3461,86 34b3463,8 34b3464,24 -34b3465,47 -34b3466,8 +34b3465,c3 +34b3467,8 34b3468,ac -34b3469,c7 -34b346c,ac -34b346d,c0 -34b346f,4 -34b3470,8c -34b3471,86 -34b3473,8 -34b3474,24 +34b3469,83 +34b346b,8 +34b346c,3c +34b346d,3 +34b346e,e2 +34b3470,24 +34b3471,67 +34b3472,1e +34b3473,1 +34b3474,ac 34b3475,c7 -34b3477,8 34b3478,ac -34b3479,87 -34b347b,8 -34b347c,24 -34b347d,47 -34b347e,a -34b347f,1 -34b3480,ac +34b3479,c0 +34b347b,4 +34b347c,8c +34b347d,86 +34b347f,8 +34b3480,24 34b3481,c7 +34b3483,8 34b3484,ac -34b3485,c0 -34b3487,4 -34b3488,8c -34b3489,86 -34b348b,8 -34b348c,24 +34b3485,87 +34b3487,8 +34b3488,24 +34b3489,67 +34b348a,1d +34b348c,ac 34b348d,c7 -34b348f,8 -34b3490,ac -34b3491,87 -34b3493,8 -34b3494,24 -34b3495,63 -34b3497,1c -34b3498,ac -34b3499,c3 +34b3490,24 +34b3491,7 +34b3493,4 +34b3494,ac +34b3495,c7 +34b3497,4 +34b3498,8c +34b3499,86 +34b349b,8 34b349c,24 -34b349d,a5 -34b349e,42 -34b349f,40 +34b349d,c7 +34b349f,8 34b34a0,ac -34b34a1,c5 -34b34a3,4 -34b34a4,8c -34b34a5,83 -34b34a7,8 -34b34a8,24 -34b34a9,65 -34b34ab,8 +34b34a1,87 +34b34a3,8 +34b34a4,24 +34b34a5,47 +34b34a6,17 +34b34a8,ac +34b34a9,c7 34b34ac,ac -34b34ad,85 -34b34af,8 -34b34b0,24 -34b34b1,42 -34b34b2,12 -34b34b3,1 -34b34b4,ac -34b34b5,62 -34b34b8,24 -34b34b9,2 -34b34ba,20 -34b34bc,ac -34b34bd,62 -34b34bf,4 -34b34c0,8c -34b34c1,82 -34b34c3,8 +34b34ad,c0 +34b34af,4 +34b34b0,8c +34b34b1,86 +34b34b3,8 +34b34b4,24 +34b34b5,c7 +34b34b7,8 +34b34b8,ac +34b34b9,87 +34b34bb,8 +34b34bc,24 +34b34bd,47 +34b34be,14 +34b34bf,2 +34b34c0,ac +34b34c1,c7 34b34c4,24 -34b34c5,43 -34b34c7,8 +34b34c5,7 +34b34c6,c 34b34c8,ac -34b34c9,83 -34b34cb,8 -34b34cc,3c -34b34cd,3 -34b34ce,df -34b34d0,ac -34b34d1,43 -34b34d4,3 -34b34d5,e0 +34b34c9,c7 +34b34cb,4 +34b34cc,8c +34b34cd,86 +34b34cf,8 +34b34d0,24 +34b34d1,c7 +34b34d3,8 +34b34d4,ac +34b34d5,87 34b34d7,8 -34b34d8,ac -34b34d9,40 -34b34db,4 -34b34dc,27 -34b34dd,bd -34b34de,ff -34b34df,c8 -34b34e0,af -34b34e1,bf -34b34e3,34 -34b34e4,af -34b34e5,b1 -34b34e7,30 -34b34e8,af -34b34e9,b0 -34b34eb,2c -34b34ec,af -34b34ed,a0 -34b34ef,10 -34b34f0,3c -34b34f1,2 -34b34f2,1 -34b34f3,a0 -34b34f4,24 -34b34f5,42 -34b34f6,20 -34b34f8,af -34b34f9,a2 -34b34fb,14 -34b34fc,3c -34b34fd,10 -34b34ff,3 -34b3500,36 -34b3501,2 -34b3502,95 -34b3503,c0 -34b3504,af -34b3505,a2 -34b3507,18 -34b3508,c -34b3509,10 -34b350a,15 -34b350b,9b -34b350c,27 -34b350d,a4 -34b350f,10 -34b3510,af -34b3511,a0 -34b3513,1c -34b3514,3c -34b3515,2 -34b3517,84 +34b34d8,24 +34b34d9,47 +34b34da,d +34b34db,1 +34b34dc,ac +34b34dd,c7 +34b34e0,ac +34b34e1,c0 +34b34e3,4 +34b34e4,8c +34b34e5,86 +34b34e7,8 +34b34e8,24 +34b34e9,c7 +34b34eb,8 +34b34ec,ac +34b34ed,87 +34b34ef,8 +34b34f0,24 +34b34f1,47 +34b34f2,c +34b34f4,ac +34b34f5,c7 +34b34f8,ac +34b34f9,c0 +34b34fb,4 +34b34fc,8c +34b34fd,86 +34b34ff,8 +34b3500,24 +34b3501,c7 +34b3503,8 +34b3504,ac +34b3505,87 +34b3507,8 +34b3508,24 +34b3509,47 +34b350a,f +34b350c,ac +34b350d,c7 +34b3510,ac +34b3511,c0 +34b3513,4 +34b3514,8c +34b3515,86 +34b3517,8 34b3518,24 -34b3519,42 -34b351a,60 -34b351c,af -34b351d,a2 -34b351f,20 -34b3520,34 -34b3521,2 -34b3522,b4 -34b3524,af -34b3525,a2 -34b3527,24 -34b3528,c -34b3529,10 -34b352a,15 -34b352b,9b -34b352c,27 -34b352d,a4 -34b352f,1c -34b3530,8f -34b3531,a2 -34b3533,10 -34b3534,26 -34b3535,10 -34b3536,a3 -34b3539,50 -34b353a,80 -34b353b,21 -34b353c,3c -34b353d,3 -34b353e,80 -34b353f,40 +34b3519,c7 +34b351b,8 +34b351c,ac +34b351d,87 +34b351f,8 +34b3520,24 +34b3521,47 +34b3522,10 +34b3523,1 +34b3524,ac +34b3525,c7 +34b3528,ac +34b3529,c0 +34b352b,4 +34b352c,8c +34b352d,86 +34b352f,8 +34b3530,24 +34b3531,c7 +34b3533,8 +34b3534,ac +34b3535,87 +34b3537,8 +34b3538,24 +34b3539,47 +34b353a,8 +34b353c,ac +34b353d,c7 34b3540,ac -34b3541,70 -34b3542,63 -34b3543,74 -34b3544,24 -34b3545,42 -34b3546,29 -34b3547,80 -34b3548,3c -34b3549,3 -34b354a,80 -34b354b,40 +34b3541,c0 +34b3543,4 +34b3544,8c +34b3545,86 +34b3547,8 +34b3548,24 +34b3549,c7 +34b354b,8 34b354c,ac -34b354d,62 -34b354e,63 -34b354f,64 -34b3550,3c -34b3551,2 -34b3552,80 -34b3553,40 -34b3554,8f -34b3555,a3 -34b3557,1c +34b354d,87 +34b354f,8 +34b3550,24 +34b3551,47 +34b3552,a +34b3553,1 +34b3554,ac +34b3555,c7 34b3558,ac -34b3559,43 -34b355a,63 -34b355b,54 -34b355c,3c -34b355d,11 -34b355e,80 -34b355f,40 -34b3560,c -34b3561,10 -34b3562,14 -34b3563,10 -34b3564,26 -34b3565,24 -34b3566,63 -34b3567,44 -34b3569,40 -34b356a,80 -34b356b,25 -34b356c,c -34b356d,10 -34b356e,15 -34b356f,8e -34b3571,40 -34b3572,20 -34b3573,25 -34b3575,10 -34b3576,4f -34b3577,c2 -34b3578,1 -34b3579,30 -34b357a,48 -34b357b,21 -34b357c,2a -34b357d,10 -34b357f,2 -34b3580,16 -34b3583,18 -34b3584,ae -34b3585,22 -34b3586,63 -34b3587,44 -34b3589,9 -34b358a,48 -34b358b,43 -34b358c,3c -34b358d,3 -34b358e,80 -34b358f,40 -34b3590,24 -34b3591,63 -34b3592,64 -34b3593,86 -34b3596,20 -34b3597,25 -34b359a,30 -34b359b,25 -34b359c,2 -34b359d,20 -34b359e,40 -34b359f,25 -34b35a0,24 -34b35a1,7 -34b35a2,ff -34b35a3,f0 -34b35a4,8d -34b35a5,5 -34b35a6,63 -34b35a7,44 -34b35a9,a4 -34b35aa,28 -34b35ab,21 -34b35ac,90 -34b35ad,62 -34b35b1,2 -34b35b2,11 -34b35b3,2 -34b35b5,47 -34b35b6,10 -34b35b7,25 -34b35b8,a0 -34b35b9,a2 -34b35bc,8d -34b35bd,2 -34b35be,63 -34b35bf,44 -34b35c1,44 -34b35c2,10 -34b35c3,21 -34b35c4,90 -34b35c5,65 -34b35c9,a7 -34b35ca,28 -34b35cb,25 -34b35cc,a0 -34b35cd,45 -34b35cf,1 -34b35d0,24 -34b35d1,c6 -34b35d3,1 -34b35d4,24 -34b35d5,63 -34b35d7,1 -34b35d9,c9 -34b35da,10 -34b35db,2a -34b35dc,14 -34b35dd,40 -34b35de,ff -34b35df,f1 -34b35e0,24 -34b35e1,84 -34b35e3,2 -34b35e4,c -34b35e5,10 -34b35e6,15 -34b35e7,8e -34b35e8,24 -34b35e9,4 -34b35ea,1 -34b35ec,3c -34b35ed,4 -34b35ee,80 -34b35ef,40 -34b35f0,24 -34b35f1,3 -34b35f2,1 -34b35f4,ac -34b35f5,83 -34b35f6,64 -34b35f7,68 -34b35f8,24 -34b35f9,84 -34b35fa,64 -34b35fb,68 -34b35fc,ac -34b35fd,82 -34b35ff,4 -34b3600,ac -34b3601,82 -34b3603,8 -34b3604,24 -34b3605,42 -34b3606,1 -34b3608,c +34b3559,c0 +34b355b,4 +34b355c,8c +34b355d,86 +34b355f,8 +34b3560,24 +34b3561,c7 +34b3563,8 +34b3564,ac +34b3565,87 +34b3567,8 +34b3568,24 +34b3569,63 +34b356b,1c +34b356c,ac +34b356d,c3 +34b3570,24 +34b3571,a5 +34b3572,42 +34b3573,40 +34b3574,ac +34b3575,c5 +34b3577,4 +34b3578,8c +34b3579,83 +34b357b,8 +34b357c,24 +34b357d,65 +34b357f,8 +34b3580,ac +34b3581,85 +34b3583,8 +34b3584,24 +34b3585,42 +34b3586,12 +34b3587,1 +34b3588,ac +34b3589,62 +34b358c,24 +34b358d,2 +34b358e,20 +34b3590,ac +34b3591,62 +34b3593,4 +34b3594,8c +34b3595,82 +34b3597,8 +34b3598,24 +34b3599,43 +34b359b,8 +34b359c,ac +34b359d,83 +34b359f,8 +34b35a0,3c +34b35a1,3 +34b35a2,df +34b35a4,ac +34b35a5,43 +34b35a8,3 +34b35a9,e0 +34b35ab,8 +34b35ac,ac +34b35ad,40 +34b35af,4 +34b35b0,27 +34b35b1,bd +34b35b2,ff +34b35b3,c8 +34b35b4,af +34b35b5,bf +34b35b7,34 +34b35b8,af +34b35b9,b1 +34b35bb,30 +34b35bc,af +34b35bd,b0 +34b35bf,2c +34b35c0,af +34b35c1,a0 +34b35c3,10 +34b35c4,3c +34b35c5,2 +34b35c6,1 +34b35c7,a0 +34b35c8,24 +34b35c9,42 +34b35ca,20 +34b35cc,af +34b35cd,a2 +34b35cf,14 +34b35d0,3c +34b35d1,10 +34b35d3,3 +34b35d4,36 +34b35d5,2 +34b35d6,95 +34b35d7,c0 +34b35d8,af +34b35d9,a2 +34b35db,18 +34b35dc,c +34b35dd,10 +34b35de,15 +34b35df,d0 +34b35e0,27 +34b35e1,a4 +34b35e3,10 +34b35e4,af +34b35e5,a0 +34b35e7,1c +34b35e8,3c +34b35e9,2 +34b35eb,84 +34b35ec,24 +34b35ed,42 +34b35ee,60 +34b35f0,af +34b35f1,a2 +34b35f3,20 +34b35f4,34 +34b35f5,2 +34b35f6,b4 +34b35f8,af +34b35f9,a2 +34b35fb,24 +34b35fc,c +34b35fd,10 +34b35fe,15 +34b35ff,d0 +34b3600,27 +34b3601,a4 +34b3603,1c +34b3604,8f +34b3605,a2 +34b3607,10 +34b3608,26 34b3609,10 -34b360a,14 -34b360b,c0 -34b360c,ac -34b360d,82 -34b360f,c -34b3610,8f -34b3611,bf -34b3613,34 -34b3614,8f -34b3615,b1 -34b3617,30 -34b3618,8f -34b3619,b0 -34b361b,2c -34b361c,3 -34b361d,e0 -34b361f,8 -34b3620,27 -34b3621,bd +34b360a,a3 +34b360d,50 +34b360e,80 +34b360f,21 +34b3610,3c +34b3611,3 +34b3612,80 +34b3613,40 +34b3614,ac +34b3615,70 +34b3616,64 +34b3617,48 +34b3618,24 +34b3619,42 +34b361a,29 +34b361b,80 +34b361c,3c +34b361d,3 +34b361e,80 +34b361f,40 +34b3620,ac +34b3621,62 +34b3622,64 34b3623,38 34b3624,3c -34b3625,3 +34b3625,2 34b3626,80 34b3627,40 -34b3628,3c -34b3629,2 -34b362a,80 -34b362b,50 -34b362c,24 -34b362d,42 -34b3630,3 -34b3631,e0 -34b3633,8 -34b3634,ac -34b3635,62 -34b3636,64 -34b3637,4c -34b3639,4 -34b363a,17 -34b363b,c3 -34b363d,2 -34b363e,1f -34b363f,2 -34b3641,83 -34b3642,10 -34b3643,21 -34b3644,30 -34b3645,42 -34b3647,f -34b3649,43 -34b364a,10 -34b364b,23 -34b364c,10 -34b364d,40 -34b364f,3 -34b3650,3c -34b3651,3 -34b3652,80 -34b3653,40 -34b3655,82 -34b3656,20 -34b3657,23 -34b3658,24 -34b3659,84 -34b365b,10 -34b365c,8c -34b365d,62 -34b365e,64 -34b365f,4c -34b3661,44 -34b3662,20 -34b3663,21 -34b3664,3 -34b3665,e0 -34b3667,8 -34b3668,ac -34b3669,64 -34b366a,64 -34b366b,4c -34b366c,27 -34b366d,bd -34b366e,ff -34b366f,e8 -34b3670,af -34b3671,bf -34b3673,14 -34b3674,af -34b3675,b0 -34b3677,10 -34b3679,80 -34b367a,80 -34b367b,25 -34b367c,c -34b367d,10 -34b367e,15 -34b367f,8e -34b3680,8c -34b3681,84 -34b3683,8 -34b3684,ae +34b3628,8f +34b3629,a3 +34b362b,1c +34b362c,ac +34b362d,43 +34b362e,64 +34b362f,28 +34b3630,3c +34b3631,11 +34b3632,80 +34b3633,40 +34b3634,c +34b3635,10 +34b3636,14 +34b3637,45 +34b3638,26 +34b3639,24 +34b363a,64 +34b363b,18 +34b363d,40 +34b363e,80 +34b363f,25 +34b3640,c +34b3641,10 +34b3642,15 +34b3643,c3 +34b3645,40 +34b3646,20 +34b3647,25 +34b3649,10 +34b364a,4f +34b364b,c2 +34b364c,1 +34b364d,30 +34b364e,48 +34b364f,21 +34b3650,2a +34b3651,10 +34b3653,2 +34b3654,16 +34b3657,18 +34b3658,ae +34b3659,22 +34b365a,64 +34b365b,18 +34b365d,9 +34b365e,48 +34b365f,43 +34b3660,3c +34b3661,3 +34b3662,80 +34b3663,40 +34b3664,24 +34b3665,63 +34b3666,65 +34b3667,5a +34b366a,20 +34b366b,25 +34b366e,30 +34b366f,25 +34b3670,2 +34b3671,20 +34b3672,40 +34b3673,25 +34b3674,24 +34b3675,7 +34b3676,ff +34b3677,f0 +34b3678,8d +34b3679,5 +34b367a,64 +34b367b,18 +34b367d,a4 +34b367e,28 +34b367f,21 +34b3680,90 +34b3681,62 34b3685,2 -34b3688,8e -34b3689,6 -34b368b,8 -34b368d,40 -34b368e,20 -34b368f,25 -34b3690,3c +34b3686,11 +34b3687,2 +34b3689,47 +34b368a,10 +34b368b,25 +34b368c,a0 +34b368d,a2 +34b3690,8d 34b3691,2 -34b3692,80 -34b3694,24 -34b3695,42 -34b3696,d -34b3697,f0 -34b3699,40 -34b369a,f8 -34b369b,9 -34b369c,8e -34b369d,5 -34b369f,4 -34b36a0,8f -34b36a1,bf -34b36a3,14 -34b36a4,8f -34b36a5,b0 -34b36a7,10 -34b36a8,3 -34b36a9,e0 -34b36ab,8 -34b36ac,27 -34b36ad,bd -34b36af,18 -34b36b0,27 -34b36b1,bd +34b3692,64 +34b3693,18 +34b3695,44 +34b3696,10 +34b3697,21 +34b3698,90 +34b3699,65 +34b369d,a7 +34b369e,28 +34b369f,25 +34b36a0,a0 +34b36a1,45 +34b36a3,1 +34b36a4,24 +34b36a5,c6 +34b36a7,1 +34b36a8,24 +34b36a9,63 +34b36ab,1 +34b36ad,c9 +34b36ae,10 +34b36af,2a +34b36b0,14 +34b36b1,40 34b36b2,ff -34b36b3,e8 -34b36b4,af -34b36b5,bf -34b36b7,14 +34b36b3,f1 +34b36b4,24 +34b36b5,84 +34b36b7,2 34b36b8,c 34b36b9,10 34b36ba,15 -34b36bb,89 -34b36c0,c -34b36c1,10 -34b36c2,15 -34b36c3,37 -34b36c8,c -34b36c9,10 -34b36ca,18 -34b36cb,47 -34b36d0,8f -34b36d1,bf -34b36d3,14 -34b36d4,3 -34b36d5,e0 +34b36bb,c3 +34b36bc,24 +34b36bd,4 +34b36be,1 +34b36c0,3c +34b36c1,4 +34b36c2,80 +34b36c3,40 +34b36c4,24 +34b36c5,3 +34b36c6,1 +34b36c8,ac +34b36c9,83 +34b36ca,65 +34b36cb,3c +34b36cc,24 +34b36cd,84 +34b36ce,65 +34b36cf,3c +34b36d0,ac +34b36d1,82 +34b36d3,4 +34b36d4,ac +34b36d5,82 34b36d7,8 -34b36d8,27 -34b36d9,bd -34b36db,18 -34b36dc,3c -34b36dd,2 -34b36de,80 -34b36df,1c -34b36e0,34 -34b36e1,42 -34b36e2,84 -34b36e3,a0 -34b36e4,3c -34b36e5,3 -34b36e7,1 -34b36e9,43 -34b36ea,10 -34b36eb,21 -34b36ec,94 -34b36ed,43 -34b36ee,9 -34b36ef,34 -34b36f0,24 -34b36f1,2 -34b36f3,6 -34b36f4,14 -34b36f5,62 -34b36f7,19 +34b36d8,24 +34b36d9,42 +34b36da,1 +34b36dc,c +34b36dd,10 +34b36de,14 +34b36df,f5 +34b36e0,ac +34b36e1,82 +34b36e3,c +34b36e4,8f +34b36e5,bf +34b36e7,34 +34b36e8,8f +34b36e9,b1 +34b36eb,30 +34b36ec,8f +34b36ed,b0 +34b36ef,2c +34b36f0,3 +34b36f1,e0 +34b36f3,8 +34b36f4,27 +34b36f5,bd +34b36f7,38 34b36f8,3c -34b36f9,2 +34b36f9,3 34b36fa,80 -34b36fb,1c -34b36fc,34 -34b36fd,42 -34b36fe,84 -34b36ff,a0 -34b3700,3c -34b3701,3 -34b3703,1 -34b3705,43 -34b3706,10 -34b3707,21 -34b3708,94 -34b3709,42 -34b370a,9 -34b370b,48 -34b370c,14 -34b370d,40 -34b370f,13 -34b3710,3c +34b36fb,40 +34b36fc,3c +34b36fd,2 +34b36fe,80 +34b36ff,50 +34b3700,24 +34b3701,42 +34b3704,3 +34b3705,e0 +34b3707,8 +34b3708,ac +34b3709,62 +34b370a,65 +34b370b,20 +34b370d,4 +34b370e,17 +34b370f,c3 34b3711,2 -34b3712,80 -34b3713,1c -34b3714,34 -34b3715,42 -34b3716,84 -34b3717,a0 -34b3719,43 -34b371a,10 -34b371b,21 -34b371c,94 -34b371d,42 -34b371e,9 -34b371f,44 -34b3720,14 +34b3712,1f +34b3713,2 +34b3715,83 +34b3716,10 +34b3717,21 +34b3718,30 +34b3719,42 +34b371b,f +34b371d,43 +34b371e,10 +34b371f,23 +34b3720,10 34b3721,40 -34b3723,e +34b3723,3 34b3724,3c -34b3725,2 +34b3725,3 34b3726,80 -34b3727,1c -34b3728,34 -34b3729,42 -34b372a,84 -34b372b,a0 -34b372c,84 -34b372d,42 -34b372f,14 -34b3730,4 -34b3731,41 -34b3733,a -34b3734,3c -34b3735,2 -34b3736,80 -34b3737,1c -34b3738,27 -34b3739,bd -34b373a,ff -34b373b,e8 -34b373c,af -34b373d,bf -34b373f,14 -34b3740,34 -34b3741,42 -34b3742,84 -34b3743,a0 -34b3744,8c -34b3745,44 -34b3748,c -34b3749,10 -34b374a,15 -34b374b,d9 -34b374c,24 -34b374d,84 -34b374e,2 -34b374f,a8 -34b3750,8f -34b3751,bf -34b3753,14 -34b3754,3 -34b3755,e0 +34b3727,40 +34b3729,82 +34b372a,20 +34b372b,23 +34b372c,24 +34b372d,84 +34b372f,10 +34b3730,8c +34b3731,62 +34b3732,65 +34b3733,20 +34b3735,44 +34b3736,20 +34b3737,21 +34b3738,3 +34b3739,e0 +34b373b,8 +34b373c,ac +34b373d,64 +34b373e,65 +34b373f,20 +34b3740,27 +34b3741,bd +34b3742,ff +34b3743,e8 +34b3744,af +34b3745,bf +34b3747,14 +34b3748,af +34b3749,b0 +34b374b,10 +34b374d,80 +34b374e,80 +34b374f,25 +34b3750,c +34b3751,10 +34b3752,15 +34b3753,c3 +34b3754,8c +34b3755,84 34b3757,8 -34b3758,27 -34b3759,bd -34b375b,18 -34b375c,3 -34b375d,e0 +34b3758,ae +34b3759,2 +34b375c,8e +34b375d,6 34b375f,8 +34b3761,40 +34b3762,20 +34b3763,25 34b3764,3c 34b3765,2 34b3766,80 -34b3767,40 -34b3768,8c +34b3768,24 34b3769,42 -34b376a,64 -34b376b,44 -34b376c,10 +34b376a,d +34b376b,f0 34b376d,40 -34b376e,2 -34b376f,69 -34b3770,3c -34b3771,3 -34b3772,80 -34b3773,40 -34b3774,27 -34b3775,bd -34b3776,ff -34b3777,90 -34b3778,af -34b3779,bf -34b377b,6c -34b377c,af -34b377d,be -34b377f,68 -34b3780,af -34b3781,b7 -34b3783,64 -34b3784,af -34b3785,b6 -34b3787,60 +34b376e,f8 +34b376f,9 +34b3770,8e +34b3771,5 +34b3773,4 +34b3774,8f +34b3775,bf +34b3777,14 +34b3778,8f +34b3779,b0 +34b377b,10 +34b377c,3 +34b377d,e0 +34b377f,8 +34b3780,27 +34b3781,bd +34b3783,18 +34b3784,27 +34b3785,bd +34b3786,ff +34b3787,e8 34b3788,af -34b3789,b5 -34b378b,5c -34b378c,af -34b378d,b4 -34b378f,58 -34b3790,af -34b3791,b3 -34b3793,54 -34b3794,af -34b3795,b2 -34b3797,50 -34b3798,af -34b3799,b1 -34b379b,4c -34b379c,af -34b379d,b0 -34b379f,48 -34b37a0,8c -34b37a1,82 -34b37a3,4 -34b37a4,8c -34b37a5,63 -34b37a6,64 -34b37a7,6c -34b37a8,24 -34b37a9,45 +34b3789,bf +34b378b,14 +34b378c,c +34b378d,10 +34b378e,15 +34b378f,be +34b3794,c +34b3795,10 +34b3796,15 +34b3797,6c +34b379c,c +34b379d,10 +34b379e,18 +34b379f,7c +34b37a4,8f +34b37a5,bf +34b37a7,14 +34b37a8,3 +34b37a9,e0 34b37ab,8 -34b37ac,ac -34b37ad,85 -34b37af,8 +34b37ac,27 +34b37ad,bd +34b37af,18 34b37b0,3c -34b37b1,5 -34b37b2,de -34b37b4,ac -34b37b5,45 -34b37b8,ac -34b37b9,43 -34b37bb,4 -34b37bc,3c -34b37bd,2 -34b37be,80 -34b37bf,11 -34b37c0,34 -34b37c1,42 -34b37c2,a5 -34b37c3,d0 -34b37c4,94 -34b37c5,54 -34b37c6,f -34b37c7,2e -34b37c8,3c -34b37c9,2 -34b37ca,80 -34b37cb,40 -34b37cc,8c -34b37cd,42 -34b37ce,64 -34b37cf,50 -34b37d0,50 -34b37d1,40 -34b37d3,5 -34b37d4,24 -34b37d5,8 +34b37b1,2 +34b37b2,80 +34b37b3,1c +34b37b4,34 +34b37b5,42 +34b37b6,84 +34b37b7,a0 +34b37b8,3c +34b37b9,3 +34b37bb,1 +34b37bd,43 +34b37be,10 +34b37bf,21 +34b37c0,94 +34b37c1,43 +34b37c2,9 +34b37c3,34 +34b37c4,24 +34b37c5,2 +34b37c7,6 +34b37c8,14 +34b37c9,62 +34b37cb,19 +34b37cc,3c +34b37cd,2 +34b37ce,80 +34b37cf,1c +34b37d0,34 +34b37d1,42 +34b37d2,84 +34b37d3,a0 +34b37d4,3c +34b37d5,3 34b37d7,1 -34b37d8,32 -34b37d9,88 -34b37db,1 -34b37dd,14 -34b37de,a0 -34b37df,42 -34b37e0,10 -34b37e3,2 -34b37e4,32 -34b37e5,94 -34b37e7,1 -34b37e8,24 -34b37e9,14 -34b37eb,1 -34b37ec,3c -34b37ed,2 -34b37ee,80 -34b37ef,40 -34b37f0,8c -34b37f1,55 -34b37f2,64 -34b37f3,5c -34b37f4,12 -34b37f5,a0 -34b37f7,7 -34b37f8,2 -34b37f9,a0 -34b37fa,18 -34b37fb,25 -34b37fc,3c -34b37fd,2 -34b37fe,80 -34b37ff,40 -34b3800,94 -34b3801,43 -34b3802,63 -34b3803,48 -34b3805,3 -34b3806,10 -34b3807,40 -34b3809,43 -34b380a,10 -34b380b,21 -34b380d,2 -34b380e,10 -34b380f,40 -34b3810,24 -34b3811,43 -34b3813,1 -34b3814,3c -34b3815,2 -34b3816,80 -34b3817,40 -34b3818,94 -34b3819,42 -34b381a,63 -34b381b,48 -34b381d,2 -34b381e,10 -34b381f,c0 +34b37d9,43 +34b37da,10 +34b37db,21 +34b37dc,94 +34b37dd,42 +34b37de,9 +34b37df,48 +34b37e0,14 +34b37e1,40 +34b37e3,13 +34b37e4,3c +34b37e5,2 +34b37e6,80 +34b37e7,1c +34b37e8,34 +34b37e9,42 +34b37ea,84 +34b37eb,a0 +34b37ed,43 +34b37ee,10 +34b37ef,21 +34b37f0,94 +34b37f1,42 +34b37f2,9 +34b37f3,44 +34b37f4,14 +34b37f5,40 +34b37f7,e +34b37f8,3c +34b37f9,2 +34b37fa,80 +34b37fb,1c +34b37fc,34 +34b37fd,42 +34b37fe,84 +34b37ff,a0 +34b3800,84 +34b3801,42 +34b3803,14 +34b3804,4 +34b3805,41 +34b3807,a +34b3808,3c +34b3809,2 +34b380a,80 +34b380b,1c +34b380c,27 +34b380d,bd +34b380e,ff +34b380f,e8 +34b3810,af +34b3811,bf +34b3813,14 +34b3814,34 +34b3815,42 +34b3816,84 +34b3817,a0 +34b3818,8c +34b3819,44 +34b381c,c +34b381d,10 +34b381e,16 +34b381f,e 34b3820,24 -34b3821,42 -34b3823,57 -34b3825,43 -34b3826,10 -34b3827,21 -34b3828,24 -34b3829,3 -34b382a,1 -34b382b,40 -34b382d,62 -34b382e,18 -34b382f,23 -34b3831,3 -34b3832,8f -34b3833,c2 -34b3834,2 -34b3835,23 -34b3836,88 -34b3837,21 -34b3839,11 -34b383a,88 -34b383b,43 -34b383c,26 -34b383d,23 -34b383f,1 -34b3840,af -34b3841,a3 -34b3843,38 -34b3844,8c -34b3845,83 -34b3847,8 -34b3848,24 -34b3849,65 -34b384b,8 -34b384c,ac -34b384d,85 -34b384f,8 -34b3850,3c -34b3851,5 -34b3852,fc -34b3853,ff -34b3854,34 -34b3855,a5 -34b3856,ff -34b3857,ff -34b3858,ac -34b3859,65 -34b385c,3c -34b385d,5 -34b385e,ff -34b385f,fd -34b3860,34 -34b3861,a5 -34b3862,f6 -34b3863,fb -34b3864,ac -34b3865,65 -34b3867,4 -34b3868,8c -34b3869,83 -34b386b,8 -34b386c,24 -34b386d,65 -34b386f,8 -34b3870,ac -34b3871,85 -34b3873,8 -34b3874,3c -34b3875,5 -34b3876,fa -34b3878,ac -34b3879,65 +34b3821,84 +34b3822,2 +34b3823,a8 +34b3824,8f +34b3825,bf +34b3827,14 +34b3828,3 +34b3829,e0 +34b382b,8 +34b382c,27 +34b382d,bd +34b382f,18 +34b3830,3 +34b3831,e0 +34b3833,8 +34b3838,3c +34b3839,2 +34b383a,80 +34b383b,40 +34b383c,8c +34b383d,42 +34b383e,65 +34b383f,18 +34b3840,10 +34b3841,40 +34b3842,2 +34b3843,69 +34b3844,3c +34b3845,3 +34b3846,80 +34b3847,40 +34b3848,27 +34b3849,bd +34b384a,ff +34b384b,90 +34b384c,af +34b384d,bf +34b384f,6c +34b3850,af +34b3851,be +34b3853,68 +34b3854,af +34b3855,b7 +34b3857,64 +34b3858,af +34b3859,b6 +34b385b,60 +34b385c,af +34b385d,b5 +34b385f,5c +34b3860,af +34b3861,b4 +34b3863,58 +34b3864,af +34b3865,b3 +34b3867,54 +34b3868,af +34b3869,b2 +34b386b,50 +34b386c,af +34b386d,b1 +34b386f,4c +34b3870,af +34b3871,b0 +34b3873,48 +34b3874,8c +34b3875,82 +34b3877,4 +34b3878,8c +34b3879,63 +34b387a,65 +34b387b,40 34b387c,24 -34b387d,5 -34b387f,d0 +34b387d,45 +34b387f,8 34b3880,ac -34b3881,65 -34b3883,4 -34b3885,51 -34b3886,10 -34b3887,21 -34b3889,2 -34b388a,13 -34b388b,80 -34b388c,3c -34b388d,3 -34b388f,ff -34b3890,34 -34b3891,63 -34b3892,f0 -34b3895,43 -34b3896,10 -34b3897,24 -34b3898,3c -34b3899,5 -34b389a,e4 -34b389c,24 -34b389d,a5 -34b389e,3 -34b389f,9c -34b38a1,45 -34b38a2,10 -34b38a3,25 -34b38a4,af -34b38a5,a2 -34b38a7,20 -34b38a9,11 -34b38aa,13 -34b38ab,80 -34b38ad,43 -34b38ae,10 -34b38af,24 -34b38b0,34 -34b38b1,42 -34b38b3,24 -34b38b4,af -34b38b5,a2 -34b38b7,24 -34b38b8,3c -34b38b9,2 -34b38ba,e1 -34b38bc,af -34b38bd,a2 -34b38bf,28 -34b38c0,af -34b38c1,a0 -34b38c3,2c -34b38c4,3c -34b38c5,2 -34b38c6,f1 -34b38c8,af -34b38c9,a2 -34b38cb,30 -34b38cc,3c -34b38cd,2 -34b38ce,4 -34b38d0,24 -34b38d1,42 -34b38d2,4 -34b38d4,af -34b38d5,a2 -34b38d7,34 -34b38d8,27 -34b38d9,a2 -34b38db,20 -34b38dc,27 -34b38dd,a9 -34b38df,38 -34b38e0,8c -34b38e1,83 -34b38e3,8 +34b3881,85 +34b3883,8 +34b3884,3c +34b3885,5 +34b3886,de +34b3888,ac +34b3889,45 +34b388c,ac +34b388d,43 +34b388f,4 +34b3890,3c +34b3891,2 +34b3892,80 +34b3893,11 +34b3894,34 +34b3895,42 +34b3896,a5 +34b3897,d0 +34b3898,94 +34b3899,54 +34b389a,f +34b389b,2e +34b389c,3c +34b389d,2 +34b389e,80 +34b389f,40 +34b38a0,8c +34b38a1,42 +34b38a2,65 +34b38a3,24 +34b38a4,50 +34b38a5,40 +34b38a7,5 +34b38a8,24 +34b38a9,8 +34b38ab,1 +34b38ac,32 +34b38ad,88 +34b38af,1 +34b38b1,14 +34b38b2,a0 +34b38b3,42 +34b38b4,10 +34b38b7,2 +34b38b8,32 +34b38b9,94 +34b38bb,1 +34b38bc,24 +34b38bd,14 +34b38bf,1 +34b38c0,3c +34b38c1,2 +34b38c2,80 +34b38c3,40 +34b38c4,8c +34b38c5,55 +34b38c6,65 +34b38c7,30 +34b38c8,12 +34b38c9,a0 +34b38cb,7 +34b38cc,2 +34b38cd,a0 +34b38ce,18 +34b38cf,25 +34b38d0,3c +34b38d1,2 +34b38d2,80 +34b38d3,40 +34b38d4,94 +34b38d5,43 +34b38d6,64 +34b38d7,1c +34b38d9,3 +34b38da,10 +34b38db,40 +34b38dd,43 +34b38de,10 +34b38df,21 +34b38e1,2 +34b38e2,10 +34b38e3,40 34b38e4,24 -34b38e5,65 -34b38e7,8 -34b38e8,ac -34b38e9,85 -34b38eb,8 -34b38ec,8c -34b38ed,47 -34b38ef,4 -34b38f0,8c -34b38f1,46 -34b38f4,ac -34b38f5,67 -34b38f7,4 -34b38f8,24 -34b38f9,42 -34b38fb,8 -34b38fc,15 -34b38fd,22 -34b38fe,ff -34b38ff,f8 -34b3900,ac -34b3901,66 -34b3905,80 -34b3906,80 -34b3907,25 -34b3908,8c -34b3909,82 -34b390b,8 -34b390c,24 -34b390d,43 -34b390f,8 -34b3910,ac -34b3911,83 -34b3913,8 -34b3914,3c -34b3915,3 -34b3916,e7 -34b3918,ac -34b3919,43 -34b391c,ac -34b391d,40 -34b391f,4 -34b3920,8c -34b3921,82 +34b38e5,43 +34b38e7,1 +34b38e8,3c +34b38e9,2 +34b38ea,80 +34b38eb,40 +34b38ec,94 +34b38ed,42 +34b38ee,64 +34b38ef,1c +34b38f1,2 +34b38f2,10 +34b38f3,c0 +34b38f4,24 +34b38f5,42 +34b38f7,57 +34b38f9,43 +34b38fa,10 +34b38fb,21 +34b38fc,24 +34b38fd,3 +34b38fe,1 +34b38ff,40 +34b3901,62 +34b3902,18 +34b3903,23 +34b3905,3 +34b3906,8f +34b3907,c2 +34b3908,2 +34b3909,23 +34b390a,88 +34b390b,21 +34b390d,11 +34b390e,88 +34b390f,43 +34b3910,26 +34b3911,23 +34b3913,1 +34b3914,af +34b3915,a3 +34b3917,38 +34b3918,8c +34b3919,83 +34b391b,8 +34b391c,24 +34b391d,65 +34b391f,8 +34b3920,ac +34b3921,85 34b3923,8 -34b3924,24 -34b3925,43 -34b3927,8 -34b3928,ac -34b3929,83 -34b392b,8 -34b392c,3c -34b392d,3 -34b392e,fc -34b392f,11 -34b3930,34 -34b3931,63 -34b3932,96 -34b3933,23 -34b3934,ac -34b3935,43 -34b3938,3c -34b3939,3 -34b393a,ff -34b393b,2f -34b393c,34 -34b393d,63 -34b393e,ff -34b393f,ff -34b3940,11 -34b3943,4c +34b3924,3c +34b3925,5 +34b3926,fc +34b3927,ff +34b3928,34 +34b3929,a5 +34b392a,ff +34b392b,ff +34b392c,ac +34b392d,65 +34b3930,3c +34b3931,5 +34b3932,ff +34b3933,fd +34b3934,34 +34b3935,a5 +34b3936,f6 +34b3937,fb +34b3938,ac +34b3939,65 +34b393b,4 +34b393c,8c +34b393d,83 +34b393f,8 +34b3940,24 +34b3941,65 +34b3943,8 34b3944,ac -34b3945,43 -34b3947,4 +34b3945,85 +34b3947,8 34b3948,3c 34b3949,5 -34b394a,80 -34b394b,40 -34b394c,24 -34b394d,a5 -34b394e,63 -34b394f,64 -34b3950,94 -34b3951,a7 -34b3953,8 -34b3954,c -34b3955,10 -34b3956,14 -34b3957,1c -34b395a,30 -34b395b,25 -34b395c,3c +34b394a,fa +34b394c,ac +34b394d,65 +34b3950,24 +34b3951,5 +34b3953,d0 +34b3954,ac +34b3955,65 +34b3957,4 +34b3959,51 +34b395a,10 +34b395b,21 34b395d,2 -34b395e,80 -34b395f,40 -34b3960,8c -34b3961,42 -34b3962,64 -34b3963,48 -34b3964,18 -34b3965,40 -34b3967,43 -34b3968,3c -34b3969,2 -34b396a,80 -34b396b,40 +34b395e,13 +34b395f,80 +34b3960,3c +34b3961,3 +34b3963,ff +34b3964,34 +34b3965,63 +34b3966,f0 +34b3969,43 +34b396a,10 +34b396b,24 34b396c,3c -34b396d,13 -34b396e,80 -34b396f,40 -34b3970,26 -34b3971,73 -34b3972,63 -34b3973,a8 -34b3976,90 +34b396d,5 +34b396e,e4 +34b3970,24 +34b3971,a5 +34b3972,3 +34b3973,9c +34b3975,45 +34b3976,10 34b3977,25 -34b3978,3c -34b3979,1e -34b397a,80 -34b397b,40 -34b397c,3c -34b397d,16 -34b397e,80 -34b397f,40 -34b3980,26 -34b3981,d6 -34b3982,63 -34b3983,84 -34b3984,24 +34b3978,af +34b3979,a2 +34b397b,20 +34b397d,11 +34b397e,13 +34b397f,80 +34b3981,43 +34b3982,10 +34b3983,24 +34b3984,34 34b3985,42 -34b3986,63 -34b3987,94 +34b3987,24 34b3988,af 34b3989,a2 -34b398b,3c +34b398b,24 34b398c,3c 34b398d,2 -34b398e,80 -34b398f,40 -34b3990,24 -34b3991,42 -34b3992,63 -34b3993,64 +34b398e,e1 +34b3990,af +34b3991,a2 +34b3993,28 34b3994,af -34b3995,a2 -34b3997,40 +34b3995,a0 +34b3997,2c 34b3998,3c -34b3999,17 -34b399a,80 -34b399b,40 -34b399c,8f -34b399d,c2 -34b399e,64 -34b399f,54 -34b39a0,50 -34b39a1,40 -34b39a3,b -34b39a4,92 -34b39a5,62 -34b39a8,92 -34b39a9,63 -34b39ac,3c -34b39ad,2 -34b39ae,80 -34b39af,11 -34b39b0,34 -34b39b1,42 -34b39b2,a5 -34b39b3,d0 -34b39b5,43 -34b39b6,10 -34b39b7,21 -34b39b8,90 -34b39b9,42 -34b39bb,a8 -34b39bd,2 -34b39be,10 -34b39bf,42 -34b39c0,30 -34b39c1,42 -34b39c3,1 -34b39c4,50 -34b39c5,40 -34b39c7,27 -34b39c8,26 -34b39c9,52 -34b39cb,1 -34b39cc,92 -34b39cd,62 -34b39d1,56 -34b39d2,10 -34b39d3,21 -34b39d4,80 -34b39d5,46 -34b39d8,28 -34b39d9,c2 -34b39db,3 -34b39dc,54 -34b39dd,40 -34b39df,21 -34b39e0,26 -34b39e1,52 -34b39e3,1 -34b39e4,24 -34b39e5,c6 -34b39e6,ff -34b39e7,fd -34b39e9,6 -34b39ea,18 -34b39eb,40 -34b39ed,66 -34b39ee,18 -34b39ef,21 -34b39f0,8f -34b39f1,a2 -34b39f3,3c -34b39f5,62 -34b39f6,18 -34b39f7,21 -34b39f8,90 -34b39f9,62 -34b39fd,2 -34b39fe,16 -34b3a00,90 -34b3a01,64 -34b3a03,2 -34b3a05,4 -34b3a06,22 -34b3a09,44 -34b3a0a,10 -34b3a0b,25 -34b3a0c,90 -34b3a0d,63 -34b3a0f,1 -34b3a11,3 -34b3a12,1c -34b3a15,43 -34b3a16,10 -34b3a17,25 -34b3a18,34 -34b3a19,42 -34b3a1b,ff -34b3a1c,8e -34b3a1d,3 -34b3a1f,8 +34b3999,2 +34b399a,f1 +34b399c,af +34b399d,a2 +34b399f,30 +34b39a0,3c +34b39a1,2 +34b39a2,4 +34b39a4,24 +34b39a5,42 +34b39a6,4 +34b39a8,af +34b39a9,a2 +34b39ab,34 +34b39ac,27 +34b39ad,a2 +34b39af,20 +34b39b0,27 +34b39b1,a9 +34b39b3,38 +34b39b4,8c +34b39b5,83 +34b39b7,8 +34b39b8,24 +34b39b9,65 +34b39bb,8 +34b39bc,ac +34b39bd,85 +34b39bf,8 +34b39c0,8c +34b39c1,47 +34b39c3,4 +34b39c4,8c +34b39c5,46 +34b39c8,ac +34b39c9,67 +34b39cb,4 +34b39cc,24 +34b39cd,42 +34b39cf,8 +34b39d0,15 +34b39d1,22 +34b39d2,ff +34b39d3,f8 +34b39d4,ac +34b39d5,66 +34b39d9,80 +34b39da,80 +34b39db,25 +34b39dc,8c +34b39dd,82 +34b39df,8 +34b39e0,24 +34b39e1,43 +34b39e3,8 +34b39e4,ac +34b39e5,83 +34b39e7,8 +34b39e8,3c +34b39e9,3 +34b39ea,e7 +34b39ec,ac +34b39ed,43 +34b39f0,ac +34b39f1,40 +34b39f3,4 +34b39f4,8c +34b39f5,82 +34b39f7,8 +34b39f8,24 +34b39f9,43 +34b39fb,8 +34b39fc,ac +34b39fd,83 +34b39ff,8 +34b3a00,3c +34b3a01,3 +34b3a02,fc +34b3a03,11 +34b3a04,34 +34b3a05,63 +34b3a06,96 +34b3a07,23 +34b3a08,ac +34b3a09,43 +34b3a0c,3c +34b3a0d,3 +34b3a0e,ff +34b3a0f,2f +34b3a10,34 +34b3a11,63 +34b3a12,ff +34b3a13,ff +34b3a14,11 +34b3a17,4c +34b3a18,ac +34b3a19,43 +34b3a1b,4 +34b3a1c,3c +34b3a1d,5 +34b3a1e,80 +34b3a1f,40 34b3a20,24 -34b3a21,64 -34b3a23,8 -34b3a24,ae -34b3a25,4 +34b3a21,a5 +34b3a22,64 +34b3a23,38 +34b3a24,94 +34b3a25,a7 34b3a27,8 -34b3a28,3c -34b3a29,4 -34b3a2a,fa -34b3a2c,ac -34b3a2d,64 -34b3a30,ac -34b3a31,62 -34b3a33,4 -34b3a34,24 -34b3a35,2 -34b3a37,10 -34b3a38,af -34b3a39,a2 -34b3a3b,18 -34b3a3c,af -34b3a3d,a2 -34b3a3f,14 -34b3a41,12 -34b3a42,11 -34b3a45,52 -34b3a46,10 -34b3a47,21 -34b3a48,24 -34b3a49,42 -34b3a4b,a -34b3a4c,af -34b3a4d,a2 -34b3a4f,10 -34b3a50,8f -34b3a51,a7 -34b3a53,38 -34b3a54,8f -34b3a55,a5 -34b3a57,40 -34b3a58,c -34b3a59,10 -34b3a5a,14 -34b3a5b,84 -34b3a5c,2 -34b3a5e,20 -34b3a5f,25 -34b3a60,26 -34b3a61,52 -34b3a63,1 -34b3a64,8e -34b3a65,e2 +34b3a28,c +34b3a29,10 +34b3a2a,14 +34b3a2b,51 +34b3a2e,30 +34b3a2f,25 +34b3a30,3c +34b3a31,2 +34b3a32,80 +34b3a33,40 +34b3a34,8c +34b3a35,42 +34b3a36,65 +34b3a37,1c +34b3a38,18 +34b3a39,40 +34b3a3b,43 +34b3a3c,3c +34b3a3d,2 +34b3a3e,80 +34b3a3f,40 +34b3a40,3c +34b3a41,13 +34b3a42,80 +34b3a43,40 +34b3a44,26 +34b3a45,73 +34b3a46,64 +34b3a47,7c +34b3a4a,90 +34b3a4b,25 +34b3a4c,3c +34b3a4d,1e +34b3a4e,80 +34b3a4f,40 +34b3a50,3c +34b3a51,16 +34b3a52,80 +34b3a53,40 +34b3a54,26 +34b3a55,d6 +34b3a56,64 +34b3a57,58 +34b3a58,24 +34b3a59,42 +34b3a5a,64 +34b3a5b,68 +34b3a5c,af +34b3a5d,a2 +34b3a5f,3c +34b3a60,3c +34b3a61,2 +34b3a62,80 +34b3a63,40 +34b3a64,24 +34b3a65,42 34b3a66,64 -34b3a67,48 -34b3a68,2 -34b3a69,42 -34b3a6a,10 -34b3a6b,2a -34b3a6c,14 -34b3a6d,40 -34b3a6e,ff -34b3a6f,cb -34b3a70,26 -34b3a71,73 -34b3a73,c -34b3a74,8e -34b3a75,2 -34b3a77,8 -34b3a78,24 -34b3a79,43 -34b3a7b,8 -34b3a7c,ae -34b3a7d,3 -34b3a7f,8 +34b3a67,38 +34b3a68,af +34b3a69,a2 +34b3a6b,40 +34b3a6c,3c +34b3a6d,17 +34b3a6e,80 +34b3a6f,40 +34b3a70,8f +34b3a71,c2 +34b3a72,65 +34b3a73,28 +34b3a74,50 +34b3a75,40 +34b3a77,b +34b3a78,92 +34b3a79,62 +34b3a7c,92 +34b3a7d,63 34b3a80,3c -34b3a81,3 -34b3a82,fa -34b3a84,ac -34b3a85,43 -34b3a88,24 -34b3a89,3 -34b3a8a,ff -34b3a8b,ff -34b3a8c,12 -34b3a8d,80 -34b3a8f,35 -34b3a90,ac -34b3a91,43 -34b3a93,4 -34b3a94,3c -34b3a95,5 -34b3a96,80 -34b3a97,40 -34b3a98,24 -34b3a99,a5 -34b3a9a,63 -34b3a9b,74 -34b3a9c,94 -34b3a9d,a7 -34b3a9f,8 -34b3aa2,30 -34b3aa3,25 -34b3aa4,c -34b3aa5,10 -34b3aa6,14 -34b3aa7,1c -34b3aa8,2 -34b3aaa,20 -34b3aab,25 -34b3aac,3c -34b3aad,2 -34b3aae,80 -34b3aaf,40 -34b3ab0,8c -34b3ab1,42 -34b3ab2,64 -34b3ab3,48 -34b3ab4,18 -34b3ab5,40 -34b3ab6,1 -34b3ab7,95 -34b3ab8,3c -34b3ab9,2 -34b3aba,80 -34b3abb,40 -34b3abc,3c -34b3abd,13 -34b3abe,80 +34b3a81,2 +34b3a82,80 +34b3a83,11 +34b3a84,34 +34b3a85,42 +34b3a86,a5 +34b3a87,d0 +34b3a89,43 +34b3a8a,10 +34b3a8b,21 +34b3a8c,90 +34b3a8d,42 +34b3a8f,a8 +34b3a91,2 +34b3a92,10 +34b3a93,42 +34b3a94,30 +34b3a95,42 +34b3a97,1 +34b3a98,50 +34b3a99,40 +34b3a9b,27 +34b3a9c,26 +34b3a9d,52 +34b3a9f,1 +34b3aa0,92 +34b3aa1,62 +34b3aa5,56 +34b3aa6,10 +34b3aa7,21 +34b3aa8,80 +34b3aa9,46 +34b3aac,28 +34b3aad,c2 +34b3aaf,3 +34b3ab0,54 +34b3ab1,40 +34b3ab3,21 +34b3ab4,26 +34b3ab5,52 +34b3ab7,1 +34b3ab8,24 +34b3ab9,c6 +34b3aba,ff +34b3abb,fd +34b3abd,6 +34b3abe,18 34b3abf,40 -34b3ac0,26 -34b3ac1,73 -34b3ac2,63 -34b3ac3,a8 -34b3ac6,90 -34b3ac7,25 -34b3ac8,3c -34b3ac9,17 -34b3aca,80 -34b3acb,40 -34b3acc,3c -34b3acd,14 -34b3ace,80 -34b3acf,40 -34b3ad0,26 -34b3ad1,94 -34b3ad2,63 -34b3ad3,84 -34b3ad4,24 -34b3ad5,42 -34b3ad6,63 -34b3ad7,74 -34b3ad8,af -34b3ad9,a2 -34b3adb,3c -34b3adc,3c -34b3add,1e -34b3ade,80 -34b3adf,11 -34b3ae0,37 -34b3ae1,de -34b3ae2,a5 -34b3ae3,d0 -34b3ae4,3c -34b3ae5,16 -34b3ae6,80 -34b3ae7,40 -34b3ae8,8e -34b3ae9,e2 -34b3aea,64 -34b3aeb,54 -34b3aec,10 -34b3aed,40 -34b3aef,8 -34b3af0,92 -34b3af1,62 -34b3af4,3 -34b3af5,c2 -34b3af6,10 -34b3af7,21 -34b3af8,90 -34b3af9,42 -34b3afb,a8 -34b3afd,2 -34b3afe,10 -34b3aff,42 -34b3b00,30 -34b3b01,42 -34b3b03,1 -34b3b04,50 -34b3b05,40 -34b3b07,13 -34b3b08,26 -34b3b09,52 -34b3b0b,1 -34b3b0c,92 -34b3b0d,62 -34b3b11,54 -34b3b12,10 -34b3b13,21 -34b3b14,80 -34b3b15,46 -34b3b18,2c -34b3b19,c2 -34b3b1b,3 -34b3b1c,50 -34b3b1d,40 -34b3b1f,d -34b3b20,26 -34b3b21,52 -34b3b23,1 -34b3b24,24 -34b3b25,2 -34b3b27,10 -34b3b28,af -34b3b29,a2 -34b3b2b,18 -34b3b2c,af -34b3b2d,a2 -34b3b2f,14 -34b3b31,12 -34b3b32,11 +34b3ac1,66 +34b3ac2,18 +34b3ac3,21 +34b3ac4,8f +34b3ac5,a2 +34b3ac7,3c +34b3ac9,62 +34b3aca,18 +34b3acb,21 +34b3acc,90 +34b3acd,62 +34b3ad1,2 +34b3ad2,16 +34b3ad4,90 +34b3ad5,64 +34b3ad7,2 +34b3ad9,4 +34b3ada,22 +34b3add,44 +34b3ade,10 +34b3adf,25 +34b3ae0,90 +34b3ae1,63 +34b3ae3,1 +34b3ae5,3 +34b3ae6,1c +34b3ae9,43 +34b3aea,10 +34b3aeb,25 +34b3aec,34 +34b3aed,42 +34b3aef,ff +34b3af0,8e +34b3af1,3 +34b3af3,8 +34b3af4,24 +34b3af5,64 +34b3af7,8 +34b3af8,ae +34b3af9,4 +34b3afb,8 +34b3afc,3c +34b3afd,4 +34b3afe,fa +34b3b00,ac +34b3b01,64 +34b3b04,ac +34b3b05,62 +34b3b07,4 +34b3b08,24 +34b3b09,2 +34b3b0b,10 +34b3b0c,af +34b3b0d,a2 +34b3b0f,18 +34b3b10,af +34b3b11,a2 +34b3b13,14 +34b3b15,12 +34b3b16,11 +34b3b19,52 +34b3b1a,10 +34b3b1b,21 +34b3b1c,24 +34b3b1d,42 +34b3b1f,a +34b3b20,af +34b3b21,a2 +34b3b23,10 +34b3b24,8f +34b3b25,a7 +34b3b27,38 +34b3b28,8f +34b3b29,a5 +34b3b2b,40 +34b3b2c,c +34b3b2d,10 +34b3b2e,14 +34b3b2f,b9 +34b3b30,2 +34b3b32,20 +34b3b33,25 +34b3b34,26 34b3b35,52 -34b3b36,10 -34b3b37,21 -34b3b38,24 -34b3b39,42 -34b3b3b,a -34b3b3c,af -34b3b3d,a2 -34b3b3f,10 -34b3b40,8f -34b3b41,a7 -34b3b43,38 -34b3b44,8f -34b3b45,a5 -34b3b47,3c -34b3b48,c -34b3b49,10 -34b3b4a,14 -34b3b4b,84 -34b3b4c,2 -34b3b4e,20 -34b3b4f,25 -34b3b50,26 -34b3b51,52 -34b3b53,1 -34b3b54,8e -34b3b55,c2 -34b3b56,64 -34b3b57,48 -34b3b58,2 -34b3b59,42 -34b3b5a,10 -34b3b5b,2a -34b3b5c,14 -34b3b5d,40 +34b3b37,1 +34b3b38,8e +34b3b39,e2 +34b3b3a,65 +34b3b3b,1c +34b3b3c,2 +34b3b3d,42 +34b3b3e,10 +34b3b3f,2a +34b3b40,14 +34b3b41,40 +34b3b42,ff +34b3b43,cb +34b3b44,26 +34b3b45,73 +34b3b47,c +34b3b48,8e +34b3b49,2 +34b3b4b,8 +34b3b4c,24 +34b3b4d,43 +34b3b4f,8 +34b3b50,ae +34b3b51,3 +34b3b53,8 +34b3b54,3c +34b3b55,3 +34b3b56,fa +34b3b58,ac +34b3b59,43 +34b3b5c,24 +34b3b5d,3 34b3b5e,ff -34b3b5f,e2 -34b3b60,26 -34b3b61,73 -34b3b63,c -34b3b64,3c -34b3b65,2 -34b3b66,80 -34b3b67,40 -34b3b68,8c -34b3b69,42 -34b3b6a,64 -34b3b6b,48 -34b3b6c,18 -34b3b6d,40 -34b3b6f,10 -34b3b70,26 -34b3b71,31 -34b3b73,12 -34b3b74,3c -34b3b75,12 -34b3b76,80 -34b3b77,40 -34b3b78,26 -34b3b79,52 -34b3b7a,63 -34b3b7b,aa -34b3b7c,24 -34b3b7d,14 -34b3b7f,b -34b3b82,98 -34b3b83,25 -34b3b84,3c -34b3b85,16 -34b3b86,80 -34b3b87,40 -34b3b88,2 -34b3b89,80 -34b3b8a,30 -34b3b8b,25 -34b3b8c,2 -34b3b8d,20 -34b3b8e,28 -34b3b8f,25 -34b3b90,c -34b3b91,10 -34b3b92,18 -34b3b93,52 -34b3b94,2 -34b3b95,40 -34b3b96,20 -34b3b97,25 -34b3b98,26 -34b3b99,73 -34b3b9b,1 -34b3b9c,26 -34b3b9d,52 -34b3b9f,c -34b3ba0,8e -34b3ba1,c2 -34b3ba2,64 -34b3ba3,48 -34b3ba4,2 -34b3ba5,62 -34b3ba6,10 -34b3ba7,2a -34b3ba8,14 -34b3ba9,40 -34b3baa,ff -34b3bab,f7 -34b3bac,26 -34b3bad,94 -34b3baf,11 +34b3b5f,ff +34b3b60,12 +34b3b61,80 +34b3b63,35 +34b3b64,ac +34b3b65,43 +34b3b67,4 +34b3b68,3c +34b3b69,5 +34b3b6a,80 +34b3b6b,40 +34b3b6c,24 +34b3b6d,a5 +34b3b6e,64 +34b3b6f,48 +34b3b70,94 +34b3b71,a7 +34b3b73,8 +34b3b76,30 +34b3b77,25 +34b3b78,c +34b3b79,10 +34b3b7a,14 +34b3b7b,51 +34b3b7c,2 +34b3b7e,20 +34b3b7f,25 +34b3b80,3c +34b3b81,2 +34b3b82,80 +34b3b83,40 +34b3b84,8c +34b3b85,42 +34b3b86,65 +34b3b87,1c +34b3b88,18 +34b3b89,40 +34b3b8a,1 +34b3b8b,95 +34b3b8c,3c +34b3b8d,2 +34b3b8e,80 +34b3b8f,40 +34b3b90,3c +34b3b91,13 +34b3b92,80 +34b3b93,40 +34b3b94,26 +34b3b95,73 +34b3b96,64 +34b3b97,7c +34b3b9a,90 +34b3b9b,25 +34b3b9c,3c +34b3b9d,17 +34b3b9e,80 +34b3b9f,40 +34b3ba0,3c +34b3ba1,14 +34b3ba2,80 +34b3ba3,40 +34b3ba4,26 +34b3ba5,94 +34b3ba6,64 +34b3ba7,58 +34b3ba8,24 +34b3ba9,42 +34b3baa,64 +34b3bab,48 +34b3bac,af +34b3bad,a2 +34b3baf,3c 34b3bb0,3c -34b3bb1,2 +34b3bb1,1e 34b3bb2,80 -34b3bb3,40 -34b3bb4,94 -34b3bb5,42 -34b3bb6,63 -34b3bb7,48 -34b3bb9,2 -34b3bba,10 -34b3bbb,c0 -34b3bbc,24 -34b3bbd,42 -34b3bbf,1 -34b3bc1,51 -34b3bc2,88 -34b3bc3,21 -34b3bc4,24 -34b3bc5,7 -34b3bc7,1 -34b3bc8,24 -34b3bc9,6 -34b3bcb,11 -34b3bcc,3c -34b3bcd,5 -34b3bce,80 -34b3bcf,40 -34b3bd0,24 -34b3bd1,a5 -34b3bd2,63 -34b3bd3,54 -34b3bd4,c -34b3bd5,10 -34b3bd6,14 -34b3bd7,1c -34b3bd8,2 -34b3bda,20 -34b3bdb,25 -34b3bdc,3c -34b3bdd,2 -34b3bde,80 -34b3bdf,40 -34b3be0,8c -34b3be1,42 -34b3be2,64 -34b3be3,48 -34b3be4,58 -34b3be5,40 -34b3be7,2c -34b3be8,26 -34b3be9,3e -34b3beb,11 -34b3bec,3c -34b3bed,13 -34b3bee,80 -34b3bef,40 -34b3bf0,26 -34b3bf1,73 -34b3bf2,63 -34b3bf3,a8 -34b3bf6,90 -34b3bf7,25 -34b3bf8,2 -34b3bf9,60 -34b3bfa,a0 -34b3bfb,25 -34b3bfc,3c -34b3bfd,17 -34b3bfe,80 -34b3bff,11 -34b3c00,36 -34b3c01,f7 -34b3c02,a5 -34b3c03,d0 -34b3c04,3c -34b3c05,16 -34b3c06,80 -34b3c07,40 -34b3c09,12 +34b3bb3,11 +34b3bb4,37 +34b3bb5,de +34b3bb6,a5 +34b3bb7,d0 +34b3bb8,3c +34b3bb9,16 +34b3bba,80 +34b3bbb,40 +34b3bbc,8e +34b3bbd,e2 +34b3bbe,65 +34b3bbf,28 +34b3bc0,10 +34b3bc1,40 +34b3bc3,8 +34b3bc4,92 +34b3bc5,62 +34b3bc8,3 +34b3bc9,c2 +34b3bca,10 +34b3bcb,21 +34b3bcc,90 +34b3bcd,42 +34b3bcf,a8 +34b3bd1,2 +34b3bd2,10 +34b3bd3,42 +34b3bd4,30 +34b3bd5,42 +34b3bd7,1 +34b3bd8,50 +34b3bd9,40 +34b3bdb,13 +34b3bdc,26 +34b3bdd,52 +34b3bdf,1 +34b3be0,92 +34b3be1,62 +34b3be5,54 +34b3be6,10 +34b3be7,21 +34b3be8,80 +34b3be9,46 +34b3bec,2c +34b3bed,c2 +34b3bef,3 +34b3bf0,50 +34b3bf1,40 +34b3bf3,d +34b3bf4,26 +34b3bf5,52 +34b3bf7,1 +34b3bf8,24 +34b3bf9,2 +34b3bfb,10 +34b3bfc,af +34b3bfd,a2 +34b3bff,18 +34b3c00,af +34b3c01,a2 +34b3c03,14 +34b3c05,12 +34b3c06,11 +34b3c09,52 34b3c0a,10 -34b3c0b,40 -34b3c0d,52 -34b3c0e,10 -34b3c0f,21 -34b3c11,2 -34b3c12,10 -34b3c13,80 -34b3c15,54 -34b3c16,10 -34b3c17,21 -34b3c18,80 -34b3c19,42 -34b3c1b,1 -34b3c1c,4 -34b3c1d,43 -34b3c1f,19 -34b3c20,26 -34b3c21,52 -34b3c23,1 -34b3c24,92 -34b3c25,62 -34b3c28,2 -34b3c29,e2 -34b3c2a,10 -34b3c2b,21 -34b3c2c,90 +34b3c0b,21 +34b3c0c,24 +34b3c0d,42 +34b3c0f,a +34b3c10,af +34b3c11,a2 +34b3c13,10 +34b3c14,8f +34b3c15,a7 +34b3c17,38 +34b3c18,8f +34b3c19,a5 +34b3c1b,3c +34b3c1c,c +34b3c1d,10 +34b3c1e,14 +34b3c1f,b9 +34b3c20,2 +34b3c22,20 +34b3c23,25 +34b3c24,26 +34b3c25,52 +34b3c27,1 +34b3c28,8e +34b3c29,c2 +34b3c2a,65 +34b3c2b,1c +34b3c2c,2 34b3c2d,42 -34b3c2f,bc -34b3c31,2 -34b3c32,1e -34b3c35,3 -34b3c36,1e -34b3c37,3 -34b3c38,28 -34b3c39,63 -34b3c3b,a -34b3c3c,50 -34b3c3d,60 -34b3c3f,1 -34b3c40,24 -34b3c41,2 -34b3c43,9 -34b3c44,24 -34b3c45,3 -34b3c46,30 -34b3c48,a7 -34b3c49,a3 -34b3c4b,20 -34b3c4d,40 -34b3c4e,18 -34b3c4f,25 -34b3c51,2 -34b3c52,16 -34b3c55,2 -34b3c56,16 -34b3c57,3 -34b3c58,4 -34b3c59,42 -34b3c5b,1 -34b3c5e,18 +34b3c2e,10 +34b3c2f,2a +34b3c30,14 +34b3c31,40 +34b3c32,ff +34b3c33,e2 +34b3c34,26 +34b3c35,73 +34b3c37,c +34b3c38,3c +34b3c39,2 +34b3c3a,80 +34b3c3b,40 +34b3c3c,8c +34b3c3d,42 +34b3c3e,65 +34b3c3f,1c +34b3c40,18 +34b3c41,40 +34b3c43,10 +34b3c44,26 +34b3c45,31 +34b3c47,12 +34b3c48,3c +34b3c49,12 +34b3c4a,80 +34b3c4b,40 +34b3c4c,26 +34b3c4d,52 +34b3c4e,64 +34b3c4f,7e +34b3c50,24 +34b3c51,14 +34b3c53,b +34b3c56,98 +34b3c57,25 +34b3c58,3c +34b3c59,16 +34b3c5a,80 +34b3c5b,40 +34b3c5c,2 +34b3c5d,80 +34b3c5e,30 34b3c5f,25 -34b3c60,24 -34b3c61,63 -34b3c63,30 -34b3c64,a3 -34b3c65,a3 -34b3c67,20 -34b3c69,12 -34b3c6a,31 -34b3c6d,d2 -34b3c6e,30 -34b3c6f,21 -34b3c70,24 -34b3c71,c6 -34b3c73,b -34b3c74,2 -34b3c75,20 -34b3c76,28 -34b3c77,25 -34b3c78,c -34b3c79,10 -34b3c7a,18 -34b3c7b,52 -34b3c7c,27 -34b3c7d,a4 -34b3c7f,20 +34b3c60,2 +34b3c61,20 +34b3c62,28 +34b3c63,25 +34b3c64,c +34b3c65,10 +34b3c66,18 +34b3c67,87 +34b3c68,2 +34b3c69,40 +34b3c6a,20 +34b3c6b,25 +34b3c6c,26 +34b3c6d,73 +34b3c6f,1 +34b3c70,26 +34b3c71,52 +34b3c73,c +34b3c74,8e +34b3c75,c2 +34b3c76,65 +34b3c77,1c +34b3c78,2 +34b3c79,62 +34b3c7a,10 +34b3c7b,2a +34b3c7c,14 +34b3c7d,40 +34b3c7e,ff +34b3c7f,f7 34b3c80,26 -34b3c81,52 -34b3c83,1 -34b3c84,8e -34b3c85,c2 -34b3c86,64 -34b3c87,48 -34b3c88,2 +34b3c81,94 +34b3c83,11 +34b3c84,3c +34b3c85,2 +34b3c86,80 +34b3c87,40 +34b3c88,94 34b3c89,42 -34b3c8a,10 -34b3c8b,2a -34b3c8c,14 -34b3c8d,40 -34b3c8e,ff -34b3c8f,de -34b3c90,26 -34b3c91,73 -34b3c93,c -34b3c94,26 -34b3c95,3e -34b3c97,11 +34b3c8a,64 +34b3c8b,1c +34b3c8d,2 +34b3c8e,10 +34b3c8f,c0 +34b3c90,24 +34b3c91,42 +34b3c93,1 +34b3c95,51 +34b3c96,88 +34b3c97,21 34b3c98,24 34b3c99,7 34b3c9b,1 34b3c9c,24 34b3c9d,6 -34b3c9f,e +34b3c9f,11 34b3ca0,3c 34b3ca1,5 34b3ca2,80 34b3ca3,40 34b3ca4,24 34b3ca5,a5 -34b3ca6,63 -34b3ca7,54 +34b3ca6,64 +34b3ca7,28 34b3ca8,c 34b3ca9,10 34b3caa,14 -34b3cab,1c +34b3cab,51 34b3cac,2 34b3cae,20 34b3caf,25 @@ -8087,170 +8171,167 @@ ec9ce7,7a 34b3cb3,40 34b3cb4,8c 34b3cb5,42 -34b3cb6,64 -34b3cb7,48 -34b3cb8,18 +34b3cb6,65 +34b3cb7,1c +34b3cb8,58 34b3cb9,40 34b3cbb,2c -34b3cbc,3c -34b3cbd,2 -34b3cbe,80 -34b3cbf,40 +34b3cbc,26 +34b3cbd,3e +34b3cbf,11 34b3cc0,3c 34b3cc1,13 34b3cc2,80 34b3cc3,40 34b3cc4,26 34b3cc5,73 -34b3cc6,63 -34b3cc7,a8 +34b3cc6,64 +34b3cc7,7c 34b3cca,90 34b3ccb,25 -34b3ccc,24 -34b3ccd,17 -34b3ccf,d -34b3cd0,2 -34b3cd1,60 -34b3cd2,a0 -34b3cd3,25 -34b3cd4,24 -34b3cd5,42 -34b3cd6,63 -34b3cd7,54 -34b3cd8,af -34b3cd9,a2 -34b3cdb,38 -34b3cdc,3c -34b3cdd,16 -34b3cde,80 +34b3ccc,2 +34b3ccd,60 +34b3cce,a0 +34b3ccf,25 +34b3cd0,3c +34b3cd1,17 +34b3cd2,80 +34b3cd3,11 +34b3cd4,36 +34b3cd5,f7 +34b3cd6,a5 +34b3cd7,d0 +34b3cd8,3c +34b3cd9,16 +34b3cda,80 +34b3cdb,40 +34b3cdd,12 +34b3cde,10 34b3cdf,40 -34b3ce0,92 -34b3ce1,63 -34b3ce4,50 -34b3ce5,77 -34b3ce7,1 -34b3ce8,24 -34b3ce9,3 -34b3ceb,a -34b3ced,12 -34b3cee,10 -34b3cef,40 -34b3cf1,52 -34b3cf2,10 -34b3cf3,21 -34b3cf5,2 -34b3cf6,10 -34b3cf7,80 -34b3cf9,54 -34b3cfa,10 -34b3cfb,21 -34b3cfc,90 -34b3cfd,42 -34b3cff,1 -34b3d00,30 +34b3ce1,52 +34b3ce2,10 +34b3ce3,21 +34b3ce5,2 +34b3ce6,10 +34b3ce7,80 +34b3ce9,54 +34b3cea,10 +34b3ceb,21 +34b3cec,80 +34b3ced,42 +34b3cef,1 +34b3cf0,4 +34b3cf1,43 +34b3cf3,19 +34b3cf4,26 +34b3cf5,52 +34b3cf7,1 +34b3cf8,92 +34b3cf9,62 +34b3cfc,2 +34b3cfd,e2 +34b3cfe,10 +34b3cff,21 +34b3d00,90 34b3d01,42 -34b3d03,40 -34b3d04,50 -34b3d05,40 -34b3d07,15 -34b3d08,26 -34b3d09,52 -34b3d0b,1 -34b3d0c,3c -34b3d0d,2 -34b3d0e,80 -34b3d0f,11 -34b3d10,34 -34b3d11,42 -34b3d12,a5 -34b3d13,d0 -34b3d15,43 -34b3d16,10 -34b3d17,21 -34b3d18,90 -34b3d19,42 -34b3d1b,a8 -34b3d1c,30 -34b3d1d,42 -34b3d1f,1 -34b3d20,50 +34b3d03,bc +34b3d05,2 +34b3d06,1e +34b3d09,3 +34b3d0a,1e +34b3d0b,3 +34b3d0c,28 +34b3d0d,63 +34b3d0f,a +34b3d10,50 +34b3d11,60 +34b3d13,1 +34b3d14,24 +34b3d15,2 +34b3d17,9 +34b3d18,24 +34b3d19,3 +34b3d1a,30 +34b3d1c,a7 +34b3d1d,a3 +34b3d1f,20 34b3d21,40 -34b3d23,e -34b3d24,26 -34b3d25,52 -34b3d27,1 -34b3d28,24 +34b3d22,18 +34b3d23,25 +34b3d25,2 +34b3d26,16 34b3d29,2 -34b3d2b,10 -34b3d2c,af -34b3d2d,a2 -34b3d2f,18 -34b3d30,af -34b3d31,a2 -34b3d33,14 -34b3d35,12 -34b3d36,11 -34b3d39,52 -34b3d3a,10 -34b3d3b,21 -34b3d3c,24 -34b3d3d,42 -34b3d3f,a -34b3d40,af -34b3d41,a2 -34b3d43,10 -34b3d44,3 -34b3d45,c0 -34b3d46,38 -34b3d47,25 -34b3d4a,30 +34b3d2a,16 +34b3d2b,3 +34b3d2c,4 +34b3d2d,42 +34b3d2f,1 +34b3d32,18 +34b3d33,25 +34b3d34,24 +34b3d35,63 +34b3d37,30 +34b3d38,a3 +34b3d39,a3 +34b3d3b,20 +34b3d3d,12 +34b3d3e,31 +34b3d41,d2 +34b3d42,30 +34b3d43,21 +34b3d44,24 +34b3d45,c6 +34b3d47,b +34b3d48,2 +34b3d49,20 +34b3d4a,28 34b3d4b,25 -34b3d4c,8f -34b3d4d,a5 -34b3d4f,38 -34b3d50,c -34b3d51,10 -34b3d52,14 -34b3d53,84 -34b3d54,2 -34b3d56,20 -34b3d57,25 -34b3d58,26 -34b3d59,52 -34b3d5b,1 -34b3d5c,8e -34b3d5d,c2 -34b3d5e,64 -34b3d5f,48 -34b3d60,2 -34b3d61,42 -34b3d62,10 -34b3d63,2a -34b3d64,14 -34b3d65,40 -34b3d66,ff -34b3d67,de +34b3d4c,c +34b3d4d,10 +34b3d4e,18 +34b3d4f,87 +34b3d50,27 +34b3d51,a4 +34b3d53,20 +34b3d54,26 +34b3d55,52 +34b3d57,1 +34b3d58,8e +34b3d59,c2 +34b3d5a,65 +34b3d5b,1c +34b3d5c,2 +34b3d5d,42 +34b3d5e,10 +34b3d5f,2a +34b3d60,14 +34b3d61,40 +34b3d62,ff +34b3d63,de +34b3d64,26 +34b3d65,73 +34b3d67,c 34b3d68,26 -34b3d69,73 -34b3d6b,c +34b3d69,3e +34b3d6b,11 34b3d6c,24 34b3d6d,7 34b3d6f,1 34b3d70,24 34b3d71,6 -34b3d73,a +34b3d73,e 34b3d74,3c 34b3d75,5 34b3d76,80 34b3d77,40 34b3d78,24 34b3d79,a5 -34b3d7a,63 -34b3d7b,54 +34b3d7a,64 +34b3d7b,28 34b3d7c,c 34b3d7d,10 34b3d7e,14 -34b3d7f,1c +34b3d7f,51 34b3d80,2 34b3d82,20 34b3d83,25 @@ -8260,549 +8341,549 @@ ec9ce7,7a 34b3d87,40 34b3d88,8c 34b3d89,42 -34b3d8a,64 -34b3d8b,48 -34b3d8c,58 +34b3d8a,65 +34b3d8b,1c +34b3d8c,18 34b3d8d,40 -34b3d8f,28 -34b3d90,26 -34b3d91,3e -34b3d93,22 -34b3d96,90 -34b3d97,25 -34b3d98,3c -34b3d99,13 -34b3d9a,80 -34b3d9b,40 -34b3d9c,26 -34b3d9d,73 -34b3d9e,63 -34b3d9f,a8 -34b3da0,3c -34b3da1,16 -34b3da2,80 -34b3da3,11 -34b3da4,3c -34b3da5,17 -34b3da6,80 -34b3da7,40 -34b3da8,26 -34b3da9,f7 -34b3daa,63 -34b3dab,54 -34b3dac,3c -34b3dad,14 -34b3dae,80 -34b3daf,40 -34b3db1,12 -34b3db2,10 +34b3d8f,2c +34b3d90,3c +34b3d91,2 +34b3d92,80 +34b3d93,40 +34b3d94,3c +34b3d95,13 +34b3d96,80 +34b3d97,40 +34b3d98,26 +34b3d99,73 +34b3d9a,64 +34b3d9b,7c +34b3d9e,90 +34b3d9f,25 +34b3da0,24 +34b3da1,17 +34b3da3,d +34b3da4,2 +34b3da5,60 +34b3da6,a0 +34b3da7,25 +34b3da8,24 +34b3da9,42 +34b3daa,64 +34b3dab,28 +34b3dac,af +34b3dad,a2 +34b3daf,38 +34b3db0,3c +34b3db1,16 +34b3db2,80 34b3db3,40 -34b3db5,52 -34b3db6,10 -34b3db7,21 -34b3db9,2 -34b3dba,10 -34b3dbb,80 -34b3dbd,53 -34b3dbe,10 -34b3dbf,21 -34b3dc0,90 -34b3dc1,42 -34b3dc3,1 -34b3dc4,30 -34b3dc5,42 -34b3dc7,20 -34b3dc8,50 -34b3dc9,40 -34b3dcb,14 -34b3dcc,26 -34b3dcd,52 -34b3dcf,1 -34b3dd0,36 -34b3dd1,c2 -34b3dd2,a5 -34b3dd3,d0 -34b3dd4,8c +34b3db4,92 +34b3db5,63 +34b3db8,50 +34b3db9,77 +34b3dbb,1 +34b3dbc,24 +34b3dbd,3 +34b3dbf,a +34b3dc1,12 +34b3dc2,10 +34b3dc3,40 +34b3dc5,52 +34b3dc6,10 +34b3dc7,21 +34b3dc9,2 +34b3dca,10 +34b3dcb,80 +34b3dcd,54 +34b3dce,10 +34b3dcf,21 +34b3dd0,90 +34b3dd1,42 +34b3dd3,1 +34b3dd4,30 34b3dd5,42 -34b3dd7,a4 -34b3dd8,3c -34b3dd9,3 -34b3ddb,40 -34b3ddd,43 -34b3dde,10 -34b3ddf,24 -34b3de0,50 -34b3de1,40 -34b3de3,e -34b3de4,26 -34b3de5,52 -34b3de7,1 -34b3de8,24 -34b3de9,2 -34b3deb,10 -34b3dec,af -34b3ded,a2 -34b3def,18 -34b3df0,af -34b3df1,a2 -34b3df3,14 -34b3df5,12 -34b3df6,11 +34b3dd7,40 +34b3dd8,50 +34b3dd9,40 +34b3ddb,15 +34b3ddc,26 +34b3ddd,52 +34b3ddf,1 +34b3de0,3c +34b3de1,2 +34b3de2,80 +34b3de3,11 +34b3de4,34 +34b3de5,42 +34b3de6,a5 +34b3de7,d0 +34b3de9,43 +34b3dea,10 +34b3deb,21 +34b3dec,90 +34b3ded,42 +34b3def,a8 +34b3df0,30 +34b3df1,42 +34b3df3,1 +34b3df4,50 +34b3df5,40 +34b3df7,e +34b3df8,26 34b3df9,52 -34b3dfa,10 -34b3dfb,21 +34b3dfb,1 34b3dfc,24 -34b3dfd,42 -34b3dff,a +34b3dfd,2 +34b3dff,10 34b3e00,af 34b3e01,a2 -34b3e03,10 -34b3e04,3 -34b3e05,c0 -34b3e06,38 -34b3e07,25 -34b3e0a,30 -34b3e0b,25 -34b3e0c,2 -34b3e0d,e0 -34b3e0e,28 -34b3e0f,25 -34b3e10,c -34b3e11,10 -34b3e12,14 -34b3e13,84 -34b3e14,2 -34b3e16,20 -34b3e17,25 -34b3e18,26 -34b3e19,52 -34b3e1b,1 -34b3e1c,8e -34b3e1d,82 -34b3e1e,64 -34b3e1f,48 -34b3e20,2 -34b3e21,42 -34b3e22,10 -34b3e23,2a -34b3e24,14 -34b3e25,40 -34b3e26,ff -34b3e27,e3 -34b3e29,12 -34b3e2a,10 -34b3e2b,40 +34b3e03,18 +34b3e04,af +34b3e05,a2 +34b3e07,14 +34b3e09,12 +34b3e0a,11 +34b3e0d,52 +34b3e0e,10 +34b3e0f,21 +34b3e10,24 +34b3e11,42 +34b3e13,a +34b3e14,af +34b3e15,a2 +34b3e17,10 +34b3e18,3 +34b3e19,c0 +34b3e1a,38 +34b3e1b,25 +34b3e1e,30 +34b3e1f,25 +34b3e20,8f +34b3e21,a5 +34b3e23,38 +34b3e24,c +34b3e25,10 +34b3e26,14 +34b3e27,b9 +34b3e28,2 +34b3e2a,20 +34b3e2b,25 34b3e2c,26 -34b3e2d,3e -34b3e2f,22 -34b3e30,24 -34b3e31,7 -34b3e33,1 -34b3e34,24 -34b3e35,6 -34b3e37,10 -34b3e38,3c -34b3e39,5 -34b3e3a,80 -34b3e3b,40 -34b3e3c,24 -34b3e3d,a5 -34b3e3e,63 -34b3e3f,54 -34b3e40,c -34b3e41,10 -34b3e42,14 -34b3e43,1c -34b3e44,2 -34b3e46,20 -34b3e47,25 +34b3e2d,52 +34b3e2f,1 +34b3e30,8e +34b3e31,c2 +34b3e32,65 +34b3e33,1c +34b3e34,2 +34b3e35,42 +34b3e36,10 +34b3e37,2a +34b3e38,14 +34b3e39,40 +34b3e3a,ff +34b3e3b,de +34b3e3c,26 +34b3e3d,73 +34b3e3f,c +34b3e40,24 +34b3e41,7 +34b3e43,1 +34b3e44,24 +34b3e45,6 +34b3e47,a 34b3e48,3c -34b3e49,2 +34b3e49,5 34b3e4a,80 34b3e4b,40 -34b3e4c,8c -34b3e4d,42 +34b3e4c,24 +34b3e4d,a5 34b3e4e,64 -34b3e4f,48 -34b3e50,18 -34b3e51,40 -34b3e53,2a -34b3e54,3c -34b3e55,13 -34b3e56,80 -34b3e57,40 -34b3e58,26 -34b3e59,73 -34b3e5a,63 -34b3e5b,a8 -34b3e5e,90 -34b3e5f,25 -34b3e60,2 -34b3e61,60 -34b3e62,a0 -34b3e63,25 -34b3e64,3c -34b3e65,17 -34b3e66,80 -34b3e67,11 -34b3e68,3c -34b3e69,2 -34b3e6a,80 -34b3e6b,40 -34b3e6c,24 -34b3e6d,42 -34b3e6e,63 -34b3e6f,54 -34b3e70,af -34b3e71,a2 -34b3e73,38 +34b3e4f,28 +34b3e50,c +34b3e51,10 +34b3e52,14 +34b3e53,51 +34b3e54,2 +34b3e56,20 +34b3e57,25 +34b3e58,3c +34b3e59,2 +34b3e5a,80 +34b3e5b,40 +34b3e5c,8c +34b3e5d,42 +34b3e5e,65 +34b3e5f,1c +34b3e60,58 +34b3e61,40 +34b3e63,28 +34b3e64,26 +34b3e65,3e +34b3e67,22 +34b3e6a,90 +34b3e6b,25 +34b3e6c,3c +34b3e6d,13 +34b3e6e,80 +34b3e6f,40 +34b3e70,26 +34b3e71,73 +34b3e72,64 +34b3e73,7c 34b3e74,3c 34b3e75,16 34b3e76,80 -34b3e77,40 -34b3e79,12 -34b3e7a,10 +34b3e77,11 +34b3e78,3c +34b3e79,17 +34b3e7a,80 34b3e7b,40 -34b3e7d,52 -34b3e7e,10 -34b3e7f,21 -34b3e81,2 -34b3e82,10 -34b3e83,80 -34b3e85,54 +34b3e7c,26 +34b3e7d,f7 +34b3e7e,64 +34b3e7f,28 +34b3e80,3c +34b3e81,14 +34b3e82,80 +34b3e83,40 +34b3e85,12 34b3e86,10 -34b3e87,21 -34b3e88,90 -34b3e89,42 -34b3e8b,1 -34b3e8c,30 -34b3e8d,42 -34b3e8f,10 -34b3e90,50 -34b3e91,40 -34b3e93,16 -34b3e94,26 -34b3e95,52 +34b3e87,40 +34b3e89,52 +34b3e8a,10 +34b3e8b,21 +34b3e8d,2 +34b3e8e,10 +34b3e8f,80 +34b3e91,53 +34b3e92,10 +34b3e93,21 +34b3e94,90 +34b3e95,42 34b3e97,1 -34b3e98,36 -34b3e99,e2 -34b3e9a,a5 -34b3e9b,d0 -34b3e9c,92 -34b3e9d,63 -34b3ea1,43 -34b3ea2,10 -34b3ea3,21 -34b3ea4,90 -34b3ea5,42 -34b3ea7,a8 -34b3ea9,2 -34b3eaa,10 -34b3eab,82 -34b3eac,30 -34b3ead,42 -34b3eaf,1 -34b3eb0,50 -34b3eb1,40 -34b3eb3,e -34b3eb4,26 -34b3eb5,52 -34b3eb7,1 -34b3eb8,24 -34b3eb9,2 -34b3ebb,10 -34b3ebc,af -34b3ebd,a2 -34b3ebf,18 +34b3e98,30 +34b3e99,42 +34b3e9b,20 +34b3e9c,50 +34b3e9d,40 +34b3e9f,14 +34b3ea0,26 +34b3ea1,52 +34b3ea3,1 +34b3ea4,36 +34b3ea5,c2 +34b3ea6,a5 +34b3ea7,d0 +34b3ea8,8c +34b3ea9,42 +34b3eab,a4 +34b3eac,3c +34b3ead,3 +34b3eaf,40 +34b3eb1,43 +34b3eb2,10 +34b3eb3,24 +34b3eb4,50 +34b3eb5,40 +34b3eb7,e +34b3eb8,26 +34b3eb9,52 +34b3ebb,1 +34b3ebc,24 +34b3ebd,2 +34b3ebf,10 34b3ec0,af 34b3ec1,a2 -34b3ec3,14 -34b3ec5,12 -34b3ec6,11 -34b3ec9,52 -34b3eca,10 -34b3ecb,21 -34b3ecc,24 -34b3ecd,42 -34b3ecf,a -34b3ed0,af -34b3ed1,a2 -34b3ed3,10 -34b3ed4,3 -34b3ed5,c0 -34b3ed6,38 -34b3ed7,25 -34b3eda,30 +34b3ec3,18 +34b3ec4,af +34b3ec5,a2 +34b3ec7,14 +34b3ec9,12 +34b3eca,11 +34b3ecd,52 +34b3ece,10 +34b3ecf,21 +34b3ed0,24 +34b3ed1,42 +34b3ed3,a +34b3ed4,af +34b3ed5,a2 +34b3ed7,10 +34b3ed8,3 +34b3ed9,c0 +34b3eda,38 34b3edb,25 -34b3edc,8f -34b3edd,a5 -34b3edf,38 -34b3ee0,c -34b3ee1,10 -34b3ee2,14 -34b3ee3,84 -34b3ee4,2 -34b3ee6,20 -34b3ee7,25 -34b3ee8,26 -34b3ee9,52 -34b3eeb,1 -34b3eec,8e -34b3eed,c2 -34b3eee,64 -34b3eef,48 -34b3ef0,2 -34b3ef1,42 -34b3ef2,10 -34b3ef3,2a -34b3ef4,14 -34b3ef5,40 -34b3ef6,ff -34b3ef7,e0 -34b3ef8,26 -34b3ef9,73 -34b3efb,c -34b3efc,26 -34b3efd,3e -34b3eff,33 -34b3f00,24 -34b3f01,7 -34b3f03,1 +34b3ede,30 +34b3edf,25 +34b3ee0,2 +34b3ee1,e0 +34b3ee2,28 +34b3ee3,25 +34b3ee4,c +34b3ee5,10 +34b3ee6,14 +34b3ee7,b9 +34b3ee8,2 +34b3eea,20 +34b3eeb,25 +34b3eec,26 +34b3eed,52 +34b3eef,1 +34b3ef0,8e +34b3ef1,82 +34b3ef2,65 +34b3ef3,1c +34b3ef4,2 +34b3ef5,42 +34b3ef6,10 +34b3ef7,2a +34b3ef8,14 +34b3ef9,40 +34b3efa,ff +34b3efb,e3 +34b3efd,12 +34b3efe,10 +34b3eff,40 +34b3f00,26 +34b3f01,3e +34b3f03,22 34b3f04,24 -34b3f05,6 -34b3f07,f -34b3f08,3c -34b3f09,5 -34b3f0a,80 -34b3f0b,40 -34b3f0c,24 -34b3f0d,a5 -34b3f0e,63 -34b3f0f,54 -34b3f10,c -34b3f11,10 -34b3f12,14 -34b3f13,1c -34b3f14,2 -34b3f16,20 -34b3f17,25 -34b3f18,3c -34b3f19,2 -34b3f1a,80 -34b3f1b,40 -34b3f1c,8c -34b3f1d,42 -34b3f1e,64 -34b3f1f,48 -34b3f20,18 -34b3f21,40 -34b3f23,60 -34b3f24,3c -34b3f25,13 -34b3f26,80 -34b3f27,40 -34b3f28,26 -34b3f29,73 -34b3f2a,63 -34b3f2b,a8 -34b3f2e,90 -34b3f2f,25 -34b3f30,2 -34b3f31,60 -34b3f32,a0 +34b3f05,7 +34b3f07,1 +34b3f08,24 +34b3f09,6 +34b3f0b,10 +34b3f0c,3c +34b3f0d,5 +34b3f0e,80 +34b3f0f,40 +34b3f10,24 +34b3f11,a5 +34b3f12,64 +34b3f13,28 +34b3f14,c +34b3f15,10 +34b3f16,14 +34b3f17,51 +34b3f18,2 +34b3f1a,20 +34b3f1b,25 +34b3f1c,3c +34b3f1d,2 +34b3f1e,80 +34b3f1f,40 +34b3f20,8c +34b3f21,42 +34b3f22,65 +34b3f23,1c +34b3f24,18 +34b3f25,40 +34b3f27,2a +34b3f28,3c +34b3f29,13 +34b3f2a,80 +34b3f2b,40 +34b3f2c,26 +34b3f2d,73 +34b3f2e,64 +34b3f2f,7c +34b3f32,90 34b3f33,25 -34b3f34,3c -34b3f35,17 -34b3f36,80 -34b3f37,11 +34b3f34,2 +34b3f35,60 +34b3f36,a0 +34b3f37,25 34b3f38,3c -34b3f39,2 +34b3f39,17 34b3f3a,80 -34b3f3b,40 -34b3f3c,24 -34b3f3d,42 -34b3f3e,63 -34b3f3f,54 -34b3f40,af -34b3f41,a2 -34b3f43,38 -34b3f44,3c -34b3f45,16 -34b3f46,80 -34b3f47,40 -34b3f49,12 -34b3f4a,10 +34b3f3b,11 +34b3f3c,3c +34b3f3d,2 +34b3f3e,80 +34b3f3f,40 +34b3f40,24 +34b3f41,42 +34b3f42,64 +34b3f43,28 +34b3f44,af +34b3f45,a2 +34b3f47,38 +34b3f48,3c +34b3f49,16 +34b3f4a,80 34b3f4b,40 -34b3f4d,52 +34b3f4d,12 34b3f4e,10 -34b3f4f,21 -34b3f51,2 +34b3f4f,40 +34b3f51,52 34b3f52,10 -34b3f53,80 -34b3f55,54 +34b3f53,21 +34b3f55,2 34b3f56,10 -34b3f57,21 -34b3f58,90 -34b3f59,42 -34b3f5b,1 -34b3f5c,30 +34b3f57,80 +34b3f59,54 +34b3f5a,10 +34b3f5b,21 +34b3f5c,90 34b3f5d,42 -34b3f5f,10 -34b3f60,50 -34b3f61,40 -34b3f63,16 -34b3f64,26 -34b3f65,52 -34b3f67,1 -34b3f68,36 -34b3f69,e2 -34b3f6a,a5 -34b3f6b,d0 -34b3f6c,92 -34b3f6d,63 -34b3f71,43 -34b3f72,10 -34b3f73,21 -34b3f74,90 -34b3f75,42 -34b3f77,a8 -34b3f79,2 -34b3f7a,10 -34b3f7b,42 -34b3f7c,30 -34b3f7d,42 -34b3f7f,1 -34b3f80,50 -34b3f81,40 -34b3f83,e -34b3f84,26 -34b3f85,52 -34b3f87,1 -34b3f88,24 -34b3f89,2 -34b3f8b,10 -34b3f8c,af -34b3f8d,a2 -34b3f8f,18 +34b3f5f,1 +34b3f60,30 +34b3f61,42 +34b3f63,10 +34b3f64,50 +34b3f65,40 +34b3f67,16 +34b3f68,26 +34b3f69,52 +34b3f6b,1 +34b3f6c,36 +34b3f6d,e2 +34b3f6e,a5 +34b3f6f,d0 +34b3f70,92 +34b3f71,63 +34b3f75,43 +34b3f76,10 +34b3f77,21 +34b3f78,90 +34b3f79,42 +34b3f7b,a8 +34b3f7d,2 +34b3f7e,10 +34b3f7f,82 +34b3f80,30 +34b3f81,42 +34b3f83,1 +34b3f84,50 +34b3f85,40 +34b3f87,e +34b3f88,26 +34b3f89,52 +34b3f8b,1 +34b3f8c,24 +34b3f8d,2 +34b3f8f,10 34b3f90,af 34b3f91,a2 -34b3f93,14 -34b3f95,12 -34b3f96,11 -34b3f99,52 -34b3f9a,10 -34b3f9b,21 -34b3f9c,24 -34b3f9d,42 -34b3f9f,a -34b3fa0,af -34b3fa1,a2 -34b3fa3,10 -34b3fa4,3 -34b3fa5,c0 -34b3fa6,38 -34b3fa7,25 -34b3faa,30 +34b3f93,18 +34b3f94,af +34b3f95,a2 +34b3f97,14 +34b3f99,12 +34b3f9a,11 +34b3f9d,52 +34b3f9e,10 +34b3f9f,21 +34b3fa0,24 +34b3fa1,42 +34b3fa3,a +34b3fa4,af +34b3fa5,a2 +34b3fa7,10 +34b3fa8,3 +34b3fa9,c0 +34b3faa,38 34b3fab,25 -34b3fac,8f -34b3fad,a5 -34b3faf,38 -34b3fb0,c -34b3fb1,10 -34b3fb2,14 -34b3fb3,84 -34b3fb4,2 -34b3fb6,20 -34b3fb7,25 -34b3fb8,26 -34b3fb9,52 -34b3fbb,1 -34b3fbc,8e -34b3fbd,c2 -34b3fbe,64 -34b3fbf,48 -34b3fc0,2 -34b3fc1,42 -34b3fc2,10 -34b3fc3,2a -34b3fc4,14 -34b3fc5,40 -34b3fc6,ff -34b3fc7,e0 -34b3fc8,26 -34b3fc9,73 -34b3fcb,c -34b3fcc,12 -34b3fcd,a0 -34b3fcf,35 -34b3fd0,3c -34b3fd1,2 -34b3fd2,80 -34b3fd3,40 -34b3fd4,8c -34b3fd5,42 -34b3fd6,64 -34b3fd7,48 -34b3fd8,18 -34b3fd9,40 -34b3fdb,32 +34b3fae,30 +34b3faf,25 +34b3fb0,8f +34b3fb1,a5 +34b3fb3,38 +34b3fb4,c +34b3fb5,10 +34b3fb6,14 +34b3fb7,b9 +34b3fb8,2 +34b3fba,20 +34b3fbb,25 +34b3fbc,26 +34b3fbd,52 +34b3fbf,1 +34b3fc0,8e +34b3fc1,c2 +34b3fc2,65 +34b3fc3,1c +34b3fc4,2 +34b3fc5,42 +34b3fc6,10 +34b3fc7,2a +34b3fc8,14 +34b3fc9,40 +34b3fca,ff +34b3fcb,e0 +34b3fcc,26 +34b3fcd,73 +34b3fcf,c +34b3fd0,26 +34b3fd1,3e +34b3fd3,33 +34b3fd4,24 +34b3fd5,7 +34b3fd7,1 +34b3fd8,24 +34b3fd9,6 +34b3fdb,f 34b3fdc,3c -34b3fdd,13 +34b3fdd,5 34b3fde,80 34b3fdf,40 -34b3fe0,26 -34b3fe1,73 -34b3fe2,63 -34b3fe3,a8 -34b3fe4,24 -34b3fe5,14 -34b3fe7,b -34b3fea,90 +34b3fe0,24 +34b3fe1,a5 +34b3fe2,64 +34b3fe3,28 +34b3fe4,c +34b3fe5,10 +34b3fe6,14 +34b3fe7,51 +34b3fe8,2 +34b3fea,20 34b3feb,25 34b3fec,3c -34b3fed,17 +34b3fed,2 34b3fee,80 34b3fef,40 -34b3ff0,3c -34b3ff1,16 -34b3ff2,80 -34b3ff3,40 -34b3ff4,26 -34b3ff5,d6 -34b3ff6,64 -34b3ff7,78 +34b3ff0,8c +34b3ff1,42 +34b3ff2,65 +34b3ff3,1c +34b3ff4,18 +34b3ff5,40 +34b3ff7,60 34b3ff8,3c -34b3ff9,15 +34b3ff9,13 34b3ffa,80 34b3ffb,40 34b3ffc,26 -34b3ffd,b5 -34b3ffe,63 -34b3fff,38 -34b4000,3c -34b4001,2 -34b4002,80 -34b4003,40 -34b4004,24 -34b4005,42 -34b4006,63 -34b4007,3c -34b4008,af -34b4009,a2 -34b400b,38 +34b3ffd,73 +34b3ffe,64 +34b3fff,7c +34b4002,90 +34b4003,25 +34b4004,2 +34b4005,60 +34b4006,a0 +34b4007,25 +34b4008,3c +34b4009,17 +34b400a,80 +34b400b,11 34b400c,3c -34b400d,1e +34b400d,2 34b400e,80 34b400f,40 -34b4010,8e -34b4011,e2 +34b4010,24 +34b4011,42 34b4012,64 -34b4013,58 -34b4014,50 -34b4015,40 -34b4017,14 -34b4018,92 -34b4019,62 +34b4013,28 +34b4014,af +34b4015,a2 +34b4017,38 +34b4018,3c +34b4019,16 +34b401a,80 +34b401b,40 34b401d,12 34b401e,10 34b401f,40 @@ -8812,1619 +8893,1691 @@ ec9ce7,7a 34b4025,2 34b4026,10 34b4027,80 -34b4028,27 -34b4029,c3 -34b402a,63 -34b402b,a8 -34b402d,43 -34b402e,10 -34b402f,21 -34b4030,90 +34b4029,54 +34b402a,10 +34b402b,21 +34b402c,90 +34b402d,42 +34b402f,1 +34b4030,30 34b4031,42 -34b4033,1 -34b4034,30 -34b4035,42 -34b4037,10 -34b4038,50 -34b4039,40 -34b403b,b -34b403c,92 -34b403d,62 +34b4033,10 +34b4034,50 +34b4035,40 +34b4037,16 +34b4038,26 +34b4039,52 +34b403b,1 +34b403c,36 +34b403d,e2 +34b403e,a5 +34b403f,d0 34b4040,92 34b4041,63 -34b4044,3c -34b4045,2 -34b4046,80 -34b4047,11 -34b4048,34 +34b4045,43 +34b4046,10 +34b4047,21 +34b4048,90 34b4049,42 -34b404a,a5 -34b404b,d0 -34b404d,43 +34b404b,a8 +34b404d,2 34b404e,10 -34b404f,21 -34b4050,90 +34b404f,42 +34b4050,30 34b4051,42 -34b4053,a8 -34b4055,2 -34b4056,10 -34b4057,82 -34b4058,30 -34b4059,42 +34b4053,1 +34b4054,50 +34b4055,40 +34b4057,e +34b4058,26 +34b4059,52 34b405b,1 -34b405c,50 -34b405d,40 -34b405f,b -34b4060,26 -34b4061,52 -34b4063,1 -34b4064,92 -34b4065,62 -34b4069,56 -34b406a,10 -34b406b,21 -34b406c,90 -34b406d,42 -34b4070,14 -34b4071,40 -34b4073,2 -34b4074,2 -34b4075,a0 -34b4076,20 -34b4077,25 -34b4078,8f -34b4079,a4 -34b407b,38 -34b407c,2 -34b407d,80 +34b405c,24 +34b405d,2 +34b405f,10 +34b4060,af +34b4061,a2 +34b4063,18 +34b4064,af +34b4065,a2 +34b4067,14 +34b4069,12 +34b406a,11 +34b406d,52 +34b406e,10 +34b406f,21 +34b4070,24 +34b4071,42 +34b4073,a +34b4074,af +34b4075,a2 +34b4077,10 +34b4078,3 +34b4079,c0 +34b407a,38 +34b407b,25 34b407e,30 34b407f,25 -34b4080,c -34b4081,10 -34b4082,18 -34b4083,52 -34b4084,26 -34b4085,25 -34b4087,44 -34b4088,26 -34b4089,52 -34b408b,1 +34b4080,8f +34b4081,a5 +34b4083,38 +34b4084,c +34b4085,10 +34b4086,14 +34b4087,b9 +34b4088,2 +34b408a,20 +34b408b,25 34b408c,26 -34b408d,94 -34b408f,11 -34b4090,3c -34b4091,2 -34b4092,80 -34b4093,40 -34b4094,8c +34b408d,52 +34b408f,1 +34b4090,8e +34b4091,c2 +34b4092,65 +34b4093,1c +34b4094,2 34b4095,42 -34b4096,64 -34b4097,48 -34b4098,2 -34b4099,42 -34b409a,10 -34b409b,2a -34b409c,14 -34b409d,40 -34b409e,ff -34b409f,dc -34b40a0,26 -34b40a1,73 -34b40a3,c -34b40a4,c -34b40a5,10 -34b40a6,18 -34b40a7,7c -34b40a8,2 -34b40aa,20 -34b40ab,25 -34b40ac,8e -34b40ad,2 -34b40af,8 -34b40b0,24 -34b40b1,43 -34b40b3,8 -34b40b4,ae -34b40b5,3 -34b40b7,8 -34b40b8,3c -34b40b9,3 -34b40ba,e9 -34b40bc,ac -34b40bd,43 -34b40c0,ac -34b40c1,40 -34b40c3,4 -34b40c4,8e -34b40c5,2 -34b40c7,8 -34b40c8,24 -34b40c9,43 -34b40cb,8 -34b40cc,ae -34b40cd,3 -34b40cf,8 -34b40d0,3c -34b40d1,3 -34b40d2,df -34b40d4,ac -34b40d5,43 -34b40d8,ac -34b40d9,40 -34b40db,4 -34b40dc,8f -34b40dd,bf -34b40df,6c -34b40e0,8f -34b40e1,be -34b40e3,68 -34b40e4,8f -34b40e5,b7 -34b40e7,64 -34b40e8,8f -34b40e9,b6 -34b40eb,60 -34b40ec,8f -34b40ed,b5 -34b40ef,5c -34b40f0,8f -34b40f1,b4 -34b40f3,58 -34b40f4,8f -34b40f5,b3 -34b40f7,54 -34b40f8,8f -34b40f9,b2 -34b40fb,50 -34b40fc,8f -34b40fd,b1 -34b40ff,4c -34b4100,8f -34b4101,b0 -34b4103,48 -34b4104,3 -34b4105,e0 -34b4107,8 -34b4108,27 -34b4109,bd -34b410b,70 -34b410c,10 -34b410e,fe -34b410f,a8 -34b4110,26 -34b4111,31 -34b4113,12 -34b4114,3 -34b4115,e0 -34b4117,8 -34b411c,27 -34b411d,bd -34b411e,ff -34b411f,e8 -34b4120,af -34b4121,bf -34b4123,14 -34b4124,c -34b4125,10 -34b4126,15 -34b4127,8e -34b4128,24 -34b4129,4 -34b412a,4 -34b412c,3c -34b412d,3 -34b412e,80 -34b412f,40 -34b4130,ac -34b4131,62 -34b4132,64 -34b4133,64 -34b4134,3c -34b4135,3 -34b4136,80 -34b4137,40 -34b4138,ac +34b4096,10 +34b4097,2a +34b4098,14 +34b4099,40 +34b409a,ff +34b409b,e0 +34b409c,26 +34b409d,73 +34b409f,c +34b40a0,12 +34b40a1,a0 +34b40a3,35 +34b40a4,3c +34b40a5,2 +34b40a6,80 +34b40a7,40 +34b40a8,8c +34b40a9,42 +34b40aa,65 +34b40ab,1c +34b40ac,18 +34b40ad,40 +34b40af,32 +34b40b0,3c +34b40b1,13 +34b40b2,80 +34b40b3,40 +34b40b4,26 +34b40b5,73 +34b40b6,64 +34b40b7,7c +34b40b8,24 +34b40b9,14 +34b40bb,b +34b40be,90 +34b40bf,25 +34b40c0,3c +34b40c1,17 +34b40c2,80 +34b40c3,40 +34b40c4,3c +34b40c5,16 +34b40c6,80 +34b40c7,40 +34b40c8,26 +34b40c9,d6 +34b40ca,65 +34b40cb,4c +34b40cc,3c +34b40cd,15 +34b40ce,80 +34b40cf,40 +34b40d0,26 +34b40d1,b5 +34b40d2,64 +34b40d3,c +34b40d4,3c +34b40d5,2 +34b40d6,80 +34b40d7,40 +34b40d8,24 +34b40d9,42 +34b40da,64 +34b40db,10 +34b40dc,af +34b40dd,a2 +34b40df,38 +34b40e0,3c +34b40e1,1e +34b40e2,80 +34b40e3,40 +34b40e4,8e +34b40e5,e2 +34b40e6,65 +34b40e7,2c +34b40e8,50 +34b40e9,40 +34b40eb,14 +34b40ec,92 +34b40ed,62 +34b40f1,12 +34b40f2,10 +34b40f3,40 +34b40f5,52 +34b40f6,10 +34b40f7,21 +34b40f9,2 +34b40fa,10 +34b40fb,80 +34b40fc,27 +34b40fd,c3 +34b40fe,64 +34b40ff,7c +34b4101,43 +34b4102,10 +34b4103,21 +34b4104,90 +34b4105,42 +34b4107,1 +34b4108,30 +34b4109,42 +34b410b,10 +34b410c,50 +34b410d,40 +34b410f,b +34b4110,92 +34b4111,62 +34b4114,92 +34b4115,63 +34b4118,3c +34b4119,2 +34b411a,80 +34b411b,11 +34b411c,34 +34b411d,42 +34b411e,a5 +34b411f,d0 +34b4121,43 +34b4122,10 +34b4123,21 +34b4124,90 +34b4125,42 +34b4127,a8 +34b4129,2 +34b412a,10 +34b412b,82 +34b412c,30 +34b412d,42 +34b412f,1 +34b4130,50 +34b4131,40 +34b4133,b +34b4134,26 +34b4135,52 +34b4137,1 +34b4138,92 34b4139,62 -34b413a,64 -34b413b,60 -34b413c,8f -34b413d,bf -34b413f,14 -34b4140,3 -34b4141,e0 -34b4143,8 -34b4144,27 -34b4145,bd -34b4147,18 -34b4148,80 -34b4149,82 -34b414c,10 -34b414d,40 -34b414f,26 -34b4150,24 -34b4151,87 -34b4153,1 -34b4154,3c -34b4155,3 -34b4156,80 -34b4157,40 -34b4158,8c -34b4159,68 -34b415a,64 -34b415b,64 -34b415c,25 -34b415d,8 -34b415e,4 -34b4160,3c -34b4161,3 -34b4162,80 -34b4163,40 -34b4164,8c -34b4165,63 -34b4166,64 -34b4167,60 -34b4169,68 -34b416a,20 -34b416b,2b -34b416c,10 -34b416d,80 -34b416f,1e -34b4170,3c -34b4171,a +34b413d,56 +34b413e,10 +34b413f,21 +34b4140,90 +34b4141,42 +34b4144,14 +34b4145,40 +34b4147,2 +34b4148,2 +34b4149,a0 +34b414a,20 +34b414b,25 +34b414c,8f +34b414d,a4 +34b414f,38 +34b4150,2 +34b4151,80 +34b4152,30 +34b4153,25 +34b4154,c +34b4155,10 +34b4156,18 +34b4157,87 +34b4158,26 +34b4159,25 +34b415b,44 +34b415c,26 +34b415d,52 +34b415f,1 +34b4160,26 +34b4161,94 +34b4163,11 +34b4164,3c +34b4165,2 +34b4166,80 +34b4167,40 +34b4168,8c +34b4169,42 +34b416a,65 +34b416b,1c +34b416c,2 +34b416d,42 +34b416e,10 +34b416f,2a +34b4170,14 +34b4171,40 34b4172,ff -34b4174,25 -34b4175,4a -34b4176,f -34b4177,ff -34b4178,30 -34b4179,c6 -34b417a,f -34b417b,ff -34b417c,24 -34b417d,b -34b417e,f0 -34b4180,3c -34b4181,9 -34b4182,80 -34b4183,40 -34b4184,10 -34b4187,7 -34b4188,25 -34b4189,29 -34b418a,63 -34b418b,44 -34b418d,68 -34b418e,20 -34b418f,2b -34b4190,54 -34b4191,80 -34b4193,5 -34b4194,a0 -34b4195,62 -34b4198,3c +34b4173,dc +34b4174,26 +34b4175,73 +34b4177,c +34b4178,c +34b4179,10 +34b417a,18 +34b417b,b1 +34b417c,2 +34b417e,20 +34b417f,25 +34b4180,8e +34b4181,2 +34b4183,8 +34b4184,24 +34b4185,43 +34b4187,8 +34b4188,ae +34b4189,3 +34b418b,8 +34b418c,3c +34b418d,3 +34b418e,e9 +34b4190,ac +34b4191,43 +34b4194,ac +34b4195,40 +34b4197,4 +34b4198,8e 34b4199,2 -34b419a,80 -34b419b,40 -34b419c,3 -34b419d,e0 +34b419b,8 +34b419c,24 +34b419d,43 34b419f,8 -34b41a0,ac -34b41a1,43 -34b41a2,64 -34b41a3,60 -34b41a4,a0 -34b41a5,62 -34b41a8,30 -34b41a9,a2 -34b41aa,f -34b41ab,ff -34b41ad,2 -34b41ae,23 -34b41b0,8c -34b41b1,62 -34b41b5,4a -34b41b6,10 -34b41b7,24 -34b41b9,44 -34b41ba,10 -34b41bb,25 -34b41bd,4b -34b41be,10 -34b41bf,24 -34b41c1,46 -34b41c2,10 -34b41c3,25 -34b41c4,ac -34b41c5,62 -34b41c8,95 -34b41c9,22 -34b41cb,4 -34b41cd,a2 -34b41ce,28 -34b41cf,21 -34b41d0,24 -34b41d1,e7 -34b41d3,1 -34b41d4,80 -34b41d5,e2 -34b41d6,ff -34b41d7,ff -34b41d8,14 -34b41d9,40 -34b41da,ff -34b41db,ec -34b41dc,24 -34b41dd,63 -34b41df,4 -34b41e0,3c -34b41e1,2 -34b41e2,80 -34b41e3,40 -34b41e4,ac -34b41e5,43 -34b41e6,64 -34b41e7,60 +34b41a0,ae +34b41a1,3 +34b41a3,8 +34b41a4,3c +34b41a5,3 +34b41a6,df +34b41a8,ac +34b41a9,43 +34b41ac,ac +34b41ad,40 +34b41af,4 +34b41b0,8f +34b41b1,bf +34b41b3,6c +34b41b4,8f +34b41b5,be +34b41b7,68 +34b41b8,8f +34b41b9,b7 +34b41bb,64 +34b41bc,8f +34b41bd,b6 +34b41bf,60 +34b41c0,8f +34b41c1,b5 +34b41c3,5c +34b41c4,8f +34b41c5,b4 +34b41c7,58 +34b41c8,8f +34b41c9,b3 +34b41cb,54 +34b41cc,8f +34b41cd,b2 +34b41cf,50 +34b41d0,8f +34b41d1,b1 +34b41d3,4c +34b41d4,8f +34b41d5,b0 +34b41d7,48 +34b41d8,3 +34b41d9,e0 +34b41db,8 +34b41dc,27 +34b41dd,bd +34b41df,70 +34b41e0,10 +34b41e2,fe +34b41e3,a8 +34b41e4,26 +34b41e5,31 +34b41e7,12 34b41e8,3 34b41e9,e0 34b41eb,8 34b41f0,27 34b41f1,bd 34b41f2,ff -34b41f3,b0 +34b41f3,e8 34b41f4,af 34b41f5,bf -34b41f7,4c -34b41f8,af -34b41f9,be -34b41fb,48 -34b41fc,af -34b41fd,b7 -34b41ff,44 -34b4200,af -34b4201,b6 +34b41f7,14 +34b41f8,c +34b41f9,10 +34b41fa,15 +34b41fb,c3 +34b41fc,24 +34b41fd,4 +34b41fe,4 +34b4200,3c +34b4201,3 +34b4202,80 34b4203,40 -34b4204,af -34b4205,b5 -34b4207,3c -34b4208,af -34b4209,b4 -34b420b,38 -34b420c,af -34b420d,b3 +34b4204,ac +34b4205,62 +34b4206,65 +34b4207,38 +34b4208,3c +34b4209,3 +34b420a,80 +34b420b,40 +34b420c,ac +34b420d,62 +34b420e,65 34b420f,34 -34b4210,af -34b4211,b2 -34b4213,30 -34b4214,af -34b4215,b1 -34b4217,2c -34b4218,af -34b4219,b0 -34b421b,28 -34b421d,80 -34b421e,a8 -34b421f,25 -34b4222,b0 -34b4223,25 -34b4226,90 -34b4227,25 +34b4210,8f +34b4211,bf +34b4213,14 +34b4214,3 +34b4215,e0 +34b4217,8 +34b4218,27 +34b4219,bd +34b421b,18 +34b421c,80 +34b421d,82 +34b4220,10 +34b4221,40 +34b4223,26 +34b4224,24 +34b4225,87 +34b4227,1 34b4228,3c -34b4229,14 +34b4229,3 34b422a,80 34b422b,40 -34b422c,26 -34b422d,94 -34b422e,63 -34b422f,44 -34b4230,3c -34b4231,1e -34b4232,80 -34b4233,40 +34b422c,8c +34b422d,68 +34b422e,65 +34b422f,38 +34b4230,25 +34b4231,8 +34b4232,4 34b4234,3c -34b4235,13 +34b4235,3 34b4236,80 34b4237,40 -34b4238,3c -34b4239,17 -34b423a,38 -34b423b,e3 -34b423c,af -34b423d,b4 -34b423f,20 -34b4240,24 -34b4241,7 -34b4243,12 -34b4244,2 -34b4245,c0 -34b4246,30 -34b4247,25 -34b4248,2 -34b4249,80 -34b424a,28 -34b424b,25 -34b424c,c -34b424d,10 -34b424e,14 -34b424f,1c -34b4250,2 -34b4251,a0 -34b4252,20 -34b4253,25 -34b4254,8f -34b4255,c5 -34b4256,64 -34b4257,64 +34b4238,8c +34b4239,63 +34b423a,65 +34b423b,34 +34b423d,68 +34b423e,20 +34b423f,2b +34b4240,10 +34b4241,80 +34b4243,1e +34b4244,3c +34b4245,a +34b4246,ff +34b4248,25 +34b4249,4a +34b424a,f +34b424b,ff +34b424c,30 +34b424d,c6 +34b424e,f +34b424f,ff +34b4250,24 +34b4251,b +34b4252,f0 +34b4254,3c +34b4255,9 +34b4256,80 +34b4257,40 34b4258,10 -34b425b,1f -34b425c,36 -34b425d,f1 -34b425e,8e -34b425f,39 -34b4260,24 -34b4261,42 -34b4262,ff -34b4263,e0 -34b4265,51 -34b4267,18 -34b426a,18 -34b426b,10 -34b426d,3 -34b426e,18 -34b426f,83 -34b4271,2 -34b4272,27 -34b4273,c3 -34b4275,64 -34b4276,18 -34b4277,23 -34b4278,14 -34b4279,72 -34b427b,16 -34b427c,24 -34b427d,b0 -34b427f,4 -34b4280,8c -34b4281,a7 -34b4285,7 -34b4286,3b -34b4287,2 -34b4289,51 -34b428b,18 -34b428e,30 -34b428f,10 -34b4291,6 -34b4292,30 -34b4293,83 -34b4295,c4 -34b4296,30 -34b4297,23 -34b4299,6 -34b429a,18 -34b429b,c0 -34b429d,66 -34b429e,30 -34b429f,21 -34b42a1,6 -34b42a2,30 -34b42a3,40 -34b42a4,96 -34b42a5,83 -34b42a7,6 -34b42a8,af -34b42a9,a3 -34b42ab,18 -34b42ac,96 -34b42ad,83 -34b42af,4 -34b42b0,af -34b42b1,a3 -34b42b3,14 -34b42b4,8c -34b42b5,a3 -34b42b8,30 -34b42b9,63 -34b42ba,f -34b42bb,ff -34b42bc,af -34b42bd,a3 -34b42bf,10 -34b42c0,30 -34b42c1,e7 -34b42c2,f -34b42c3,ff -34b42c5,46 -34b42c6,30 -34b42c7,23 -34b42c8,8f -34b42c9,a5 -34b42cb,20 -34b42cc,c -34b42cd,10 -34b42ce,14 -34b42cf,84 -34b42d0,2 -34b42d1,a0 -34b42d2,20 -34b42d3,25 -34b42d4,2 -34b42d6,28 -34b42d7,25 -34b42d8,8e -34b42d9,62 -34b42da,64 -34b42db,60 -34b42dd,a2 -34b42de,10 -34b42df,2b -34b42e0,54 -34b42e1,40 -34b42e2,ff -34b42e3,df -34b42e4,80 -34b42e5,a2 -34b42e8,26 -34b42e9,52 -34b42eb,1 -34b42ec,24 -34b42ed,2 -34b42ef,6 -34b42f0,16 -34b42f1,42 -34b42f2,ff -34b42f3,d3 -34b42f4,26 -34b42f5,d6 -34b42f7,12 -34b42f8,3c -34b42f9,2 -34b42fa,80 -34b42fb,40 -34b42fc,8c -34b42fd,43 -34b42fe,64 -34b42ff,64 -34b4300,3c -34b4301,2 -34b4302,80 -34b4303,40 -34b4304,ac -34b4305,43 -34b4306,64 -34b4307,60 -34b4308,8f -34b4309,bf -34b430b,4c -34b430c,8f -34b430d,be -34b430f,48 -34b4310,8f -34b4311,b7 -34b4313,44 -34b4314,8f -34b4315,b6 -34b4317,40 -34b4318,8f -34b4319,b5 -34b431b,3c -34b431c,8f -34b431d,b4 -34b431f,38 -34b4320,8f -34b4321,b3 -34b4323,34 -34b4324,8f -34b4325,b2 -34b4327,30 +34b425b,7 +34b425c,25 +34b425d,29 +34b425e,64 +34b425f,18 +34b4261,68 +34b4262,20 +34b4263,2b +34b4264,54 +34b4265,80 +34b4267,5 +34b4268,a0 +34b4269,62 +34b426c,3c +34b426d,2 +34b426e,80 +34b426f,40 +34b4270,3 +34b4271,e0 +34b4273,8 +34b4274,ac +34b4275,43 +34b4276,65 +34b4277,34 +34b4278,a0 +34b4279,62 +34b427c,30 +34b427d,a2 +34b427e,f +34b427f,ff +34b4281,2 +34b4282,23 +34b4284,8c +34b4285,62 +34b4289,4a +34b428a,10 +34b428b,24 +34b428d,44 +34b428e,10 +34b428f,25 +34b4291,4b +34b4292,10 +34b4293,24 +34b4295,46 +34b4296,10 +34b4297,25 +34b4298,ac +34b4299,62 +34b429c,95 +34b429d,22 +34b429f,4 +34b42a1,a2 +34b42a2,28 +34b42a3,21 +34b42a4,24 +34b42a5,e7 +34b42a7,1 +34b42a8,80 +34b42a9,e2 +34b42aa,ff +34b42ab,ff +34b42ac,14 +34b42ad,40 +34b42ae,ff +34b42af,ec +34b42b0,24 +34b42b1,63 +34b42b3,4 +34b42b4,3c +34b42b5,2 +34b42b6,80 +34b42b7,40 +34b42b8,ac +34b42b9,43 +34b42ba,65 +34b42bb,34 +34b42bc,3 +34b42bd,e0 +34b42bf,8 +34b42c4,27 +34b42c5,bd +34b42c6,ff +34b42c7,b0 +34b42c8,af +34b42c9,bf +34b42cb,4c +34b42cc,af +34b42cd,be +34b42cf,48 +34b42d0,af +34b42d1,b7 +34b42d3,44 +34b42d4,af +34b42d5,b6 +34b42d7,40 +34b42d8,af +34b42d9,b5 +34b42db,3c +34b42dc,af +34b42dd,b4 +34b42df,38 +34b42e0,af +34b42e1,b3 +34b42e3,34 +34b42e4,af +34b42e5,b2 +34b42e7,30 +34b42e8,af +34b42e9,b1 +34b42eb,2c +34b42ec,af +34b42ed,b0 +34b42ef,28 +34b42f1,80 +34b42f2,a8 +34b42f3,25 +34b42f6,b0 +34b42f7,25 +34b42fa,90 +34b42fb,25 +34b42fc,3c +34b42fd,14 +34b42fe,80 +34b42ff,40 +34b4300,26 +34b4301,94 +34b4302,64 +34b4303,18 +34b4304,3c +34b4305,1e +34b4306,80 +34b4307,40 +34b4308,3c +34b4309,13 +34b430a,80 +34b430b,40 +34b430c,3c +34b430d,17 +34b430e,38 +34b430f,e3 +34b4310,af +34b4311,b4 +34b4313,20 +34b4314,24 +34b4315,7 +34b4317,12 +34b4318,2 +34b4319,c0 +34b431a,30 +34b431b,25 +34b431c,2 +34b431d,80 +34b431e,28 +34b431f,25 +34b4320,c +34b4321,10 +34b4322,14 +34b4323,51 +34b4324,2 +34b4325,a0 +34b4326,20 +34b4327,25 34b4328,8f -34b4329,b1 -34b432b,2c -34b432c,8f -34b432d,b0 -34b432f,28 -34b4330,3 -34b4331,e0 -34b4333,8 -34b4334,27 -34b4335,bd -34b4337,50 -34b4338,4d +34b4329,c5 +34b432a,65 +34b432b,38 +34b432c,10 +34b432f,1f +34b4330,36 +34b4331,f1 +34b4332,8e +34b4333,39 +34b4334,24 +34b4335,42 +34b4336,ff +34b4337,e0 34b4339,51 -34b433c,4e -34b433d,6f -34b433e,72 -34b433f,6d -34b4340,61 -34b4341,6c -34b4349,8 -34b434b,e -34b434d,5f -34b434e,3 -34b434f,1 -34b4350,1 -34b4359,18 -34b435b,18 -34b435d,12 -34b435f,3 -34b4360,4 -34b4369,10 -34b436b,10 +34b433b,18 +34b433e,18 +34b433f,10 +34b4341,3 +34b4342,18 +34b4343,83 +34b4345,2 +34b4346,27 +34b4347,c3 +34b4349,64 +34b434a,18 +34b434b,23 +34b434c,14 +34b434d,72 +34b434f,16 +34b4350,24 +34b4351,b0 +34b4353,4 +34b4354,8c +34b4355,a7 +34b4359,7 +34b435a,3b +34b435b,2 +34b435d,51 +34b435f,18 +34b4362,30 +34b4363,10 +34b4365,6 +34b4366,30 +34b4367,83 +34b4369,c4 +34b436a,30 +34b436b,23 34b436d,6 -34b436e,3 -34b436f,1 -34b4370,1 -34b4379,10 -34b437b,10 -34b437d,3 -34b437f,3 -34b4380,4 -34b4385,1 -34b4386,2 -34b4387,3 -34b4388,4 -34b4389,5 -34b438a,6 -34b438b,7 -34b438c,ff -34b438d,ff -34b438e,ff +34b436e,18 +34b436f,c0 +34b4371,66 +34b4372,30 +34b4373,21 +34b4375,6 +34b4376,30 +34b4377,40 +34b4378,96 +34b4379,83 +34b437b,6 +34b437c,af +34b437d,a3 +34b437f,18 +34b4380,96 +34b4381,83 +34b4383,4 +34b4384,af +34b4385,a3 +34b4387,14 +34b4388,8c +34b4389,a3 +34b438c,30 +34b438d,63 +34b438e,f 34b438f,ff -34b4390,ff -34b4391,ff -34b4395,ff +34b4390,af +34b4391,a3 +34b4393,10 +34b4394,30 +34b4395,e7 +34b4396,f 34b4397,ff -34b4398,3c -34b439b,64 -34b439c,ff -34b439d,ff -34b439e,82 -34b43a0,c8 -34b43a1,32 -34b43a2,ff -34b43a3,c8 -34b43a4,c8 -34b43a9,10 -34b43aa,44 -34b43ab,65 -34b43ac,6b -34b43ad,75 -34b43b4,1 -34b43b5,10 -34b43b6,44 -34b43b7,6f -34b43b8,64 -34b43b9,6f -34b43ba,6e -34b43bb,67 -34b43bc,6f -34b43c0,2 -34b43c1,10 -34b43c2,4a -34b43c3,61 -34b43c4,62 -34b43c5,75 -34b43cc,3 -34b43cd,d0 -34b43ce,46 -34b43cf,6f -34b43d0,72 -34b43d1,65 -34b43d2,73 -34b43d3,74 -34b43d8,4 -34b43d9,d0 -34b43da,46 -34b43db,69 -34b43dc,72 -34b43dd,65 -34b43e4,5 -34b43e5,d0 -34b43e6,57 -34b43e7,61 -34b43e8,74 -34b43e9,65 -34b43ea,72 -34b43f0,7 -34b43f1,d0 -34b43f2,53 -34b43f3,68 -34b43f4,61 -34b43f5,64 -34b43f6,6f -34b43f7,77 -34b43fc,6 -34b43fd,d0 -34b43fe,53 -34b43ff,70 -34b4400,69 -34b4401,72 -34b4402,69 -34b4403,74 -34b4408,8 -34b4409,90 -34b440a,42 -34b440b,6f -34b440c,74 -34b440d,57 -34b4414,9 -34b4415,10 -34b4416,49 -34b4417,63 -34b4418,65 -34b4420,c -34b4421,a0 -34b4422,47 -34b4423,65 -34b4424,72 -34b4425,75 -34b4426,64 -34b4427,6f -34b442c,b -34b442d,80 -34b442e,47 -34b442f,54 -34b4430,47 -34b4438,d -34b4439,c0 -34b443a,47 -34b443b,61 -34b443c,6e -34b443d,6f -34b443e,6e -34b4447,1 -34b444b,d -34b44c7,d -34b44c8,b0 -34b44cb,d -34b44cc,b0 -34b44cf,d -34b44d0,b0 -34b44d3,c -34b44d4,b0 -34b44d7,c -34b44d8,b0 -34b44db,c -34b44dc,a0 -34b44e3,d -34b44e4,b0 -34b44e7,d -34b44e8,b0 -34b44ff,e8 -34b4500,ac -34b4503,e8 -34b4504,ac -34b4507,e8 -34b4508,ac -34b450b,e8 -34b450c,ac -34b4533,d -34b4534,77 -34b4535,d0 -34b4537,2e -34b4538,3a -34b4539,b0 -34b453b,7d -34b453c,c -34b453d,90 -34b453e,8f -34b453f,ff -34b4540,ff -34b4541,fd -34b4543,c9 -34b4544,6e -34b4546,2 -34b4547,e4 -34b4548,ac -34b454a,ef -34b454b,ff -34b454c,ff -34b454d,f4 -34b454e,a -34b454f,b0 -34b4550,e5 -34b4552,c -34b4553,95 -34b4554,e0 -34b4556,e -34b4557,59 -34b4558,c0 -34b456f,7 -34b4570,90 -34b4572,5 -34b4573,ce -34b4574,eb -34b4575,40 -34b4576,c -34b4577,c8 -34b4578,a9 -34b4579,90 -34b457a,d -34b457b,a7 -34b457c,90 -34b457e,8 -34b457f,ec -34b4580,b4 -34b4583,4a -34b4584,dd -34b4585,a0 -34b4587,7 -34b4588,97 -34b4589,e2 -34b458a,c -34b458b,88 -34b458c,aa -34b458d,e0 -34b458e,6 -34b458f,ce -34b4590,ed -34b4591,70 -34b4593,7 -34b4594,90 -34b4597,7 -34b4598,90 -34b45a6,6d -34b45a7,ea -34b45aa,c9 -34b45ab,4d -34b45ac,60 -34b45ae,c9 -34b45af,4d -34b45b0,60 -34b45b1,33 -34b45b2,6d -34b45b3,eb -34b45b4,6b -34b45b5,c6 -34b45b7,8c -34b45b8,b6 -34b45ba,7c -34b45bb,a4 -34b45bc,ce -34b45bd,c4 -34b45be,31 -34b45bf,9 -34b45c0,c3 -34b45c1,bb -34b45c3,9 -34b45c4,c3 -34b45c5,bb -34b45c7,2 -34b45c8,ce -34b45c9,d4 -34b45de,4 -34b45df,ce -34b45e0,fb -34b45e2,a -34b45e3,d5 -34b45e6,8 -34b45e7,e3 -34b45ea,9 -34b45eb,ec -34b45ee,7e -34b45ef,4d -34b45f0,b0 -34b45f1,ab -34b45f2,bb -34b45f3,5 -34b45f4,e8 -34b45f5,aa -34b45f6,bc -34b45f8,8e -34b45f9,d6 -34b45fa,7e -34b45fb,93 -34b45fc,6e -34b45fd,d0 -34b45fe,8 -34b45ff,de -34b4600,d9 -34b4601,ea -34b4617,c -34b4618,a0 -34b461b,c -34b461c,a0 -34b461f,c -34b4620,a0 -34b4623,c -34b4624,a0 -34b4648,c9 -34b464b,7 -34b464c,e2 -34b464f,c -34b4650,b0 -34b4653,e -34b4654,80 -34b4657,6f -34b4658,30 -34b465b,8e -34b465f,8e -34b4663,6f -34b4664,40 -34b4667,e -34b4668,80 -34b466b,c -34b466c,b0 -34b466f,7 -34b4670,e2 -34b4674,c9 -34b467f,bb -34b4683,5e -34b4684,40 -34b4687,c -34b4688,a0 -34b468b,a -34b468c,d0 -34b468f,7 -34b4690,e1 -34b4693,6 -34b4694,f4 -34b4697,6 -34b4698,f4 -34b469b,7 -34b469c,e1 -34b469f,a -34b46a0,d0 -34b46a3,c -34b46a4,a0 -34b46a7,5e -34b46a8,40 -34b46ab,bb -34b46bf,a -34b46c0,80 -34b46c2,c -34b46c3,8a -34b46c4,8a -34b46c5,b0 -34b46c6,3 -34b46c7,be -34b46c8,da -34b46c9,10 -34b46ca,3 -34b46cb,be -34b46cc,da -34b46cd,10 -34b46ce,c -34b46cf,8a -34b46d0,8a -34b46d1,b0 -34b46d3,a -34b46d4,80 -34b46fb,c -34b46fc,a0 -34b46ff,c -34b4700,a0 -34b4703,c -34b4704,a0 -34b4706,af -34b4707,ff -34b4708,ff -34b4709,f8 -34b470b,c -34b470c,a0 -34b470f,c -34b4710,a0 -34b4713,c -34b4714,a0 -34b474b,d -34b474c,d0 -34b474f,e -34b4750,c0 -34b4753,4f -34b4754,80 -34b4757,9d -34b477b,df -34b477c,fb -34b47bb,e -34b47bc,c0 -34b47bf,e -34b47c0,c0 -34b47d8,b -34b47d9,c0 -34b47dc,4e -34b47dd,60 -34b47e0,bc -34b47e3,3 -34b47e4,e8 -34b47e7,a -34b47e8,d0 -34b47eb,1e -34b47ec,90 -34b47ef,9e -34b47f0,20 -34b47f3,da -34b47f6,7 -34b47f7,e3 -34b47fa,c -34b47fb,b0 -34b47fe,6e -34b47ff,50 -34b480e,3 -34b480f,ce -34b4810,eb -34b4812,b -34b4813,d5 -34b4814,7e -34b4815,90 -34b4816,e -34b4817,90 -34b4818,b -34b4819,d0 -34b481a,5f -34b481b,70 -34b481c,9 -34b481d,e0 -34b481e,6f -34b481f,6c -34b4820,b9 -34b4821,e0 -34b4822,5f -34b4823,70 -34b4824,9 -34b4825,e0 -34b4826,e -34b4827,90 -34b4828,b -34b4829,d0 -34b482a,b -34b482b,d5 -34b482c,7e -34b482d,90 -34b482e,3 -34b482f,ce -34b4830,eb -34b4846,a -34b4847,ff -34b4848,e0 -34b484b,8 -34b484c,e0 -34b484f,8 -34b4850,e0 -34b4853,8 -34b4854,e0 -34b4857,8 -34b4858,e0 -34b485b,8 -34b485c,e0 -34b485f,8 -34b4860,e0 -34b4863,8 -34b4864,e0 -34b4866,8 -34b4867,ff -34b4868,ff -34b4869,e0 -34b487e,8 -34b487f,de -34b4880,ea -34b4882,c -34b4883,83 -34b4884,7e -34b4885,90 -34b4888,c -34b4889,c0 -34b488c,2e -34b488d,a0 -34b4890,bd -34b4891,20 -34b4893,b -34b4894,d4 -34b4897,bd -34b4898,40 -34b489a,b -34b489b,d4 -34b489e,2f -34b489f,ff -34b48a0,ff -34b48a1,d0 -34b48b6,7 -34b48b7,ce -34b48b8,ea -34b48ba,c -34b48bb,83 -34b48bc,7e -34b48bd,90 -34b48c0,c -34b48c1,b0 -34b48c3,2 -34b48c4,7e -34b48c5,90 -34b48c7,bf -34b48c8,fb -34b48cb,2 -34b48cc,7d -34b48cd,a0 -34b48d0,a -34b48d1,d0 -34b48d2,5c -34b48d3,62 -34b48d4,7d -34b48d5,b0 -34b48d6,9 -34b48d7,de -34b48d8,eb -34b48d9,30 -34b48ef,2 -34b48f0,de -34b48f3,b -34b48f4,de -34b48f7,7d -34b48f8,9e -34b48fa,2 -34b48fb,d7 -34b48fc,9e +34b4399,46 +34b439a,30 +34b439b,23 +34b439c,8f +34b439d,a5 +34b439f,20 +34b43a0,c +34b43a1,10 +34b43a2,14 +34b43a3,b9 +34b43a4,2 +34b43a5,a0 +34b43a6,20 +34b43a7,25 +34b43a8,2 +34b43aa,28 +34b43ab,25 +34b43ac,8e +34b43ad,62 +34b43ae,65 +34b43af,34 +34b43b1,a2 +34b43b2,10 +34b43b3,2b +34b43b4,54 +34b43b5,40 +34b43b6,ff +34b43b7,df +34b43b8,80 +34b43b9,a2 +34b43bc,26 +34b43bd,52 +34b43bf,1 +34b43c0,24 +34b43c1,2 +34b43c3,6 +34b43c4,16 +34b43c5,42 +34b43c6,ff +34b43c7,d3 +34b43c8,26 +34b43c9,d6 +34b43cb,12 +34b43cc,3c +34b43cd,2 +34b43ce,80 +34b43cf,40 +34b43d0,8c +34b43d1,43 +34b43d2,65 +34b43d3,38 +34b43d4,3c +34b43d5,2 +34b43d6,80 +34b43d7,40 +34b43d8,ac +34b43d9,43 +34b43da,65 +34b43db,34 +34b43dc,8f +34b43dd,bf +34b43df,4c +34b43e0,8f +34b43e1,be +34b43e3,48 +34b43e4,8f +34b43e5,b7 +34b43e7,44 +34b43e8,8f +34b43e9,b6 +34b43eb,40 +34b43ec,8f +34b43ed,b5 +34b43ef,3c +34b43f0,8f +34b43f1,b4 +34b43f3,38 +34b43f4,8f +34b43f5,b3 +34b43f7,34 +34b43f8,8f +34b43f9,b2 +34b43fb,30 +34b43fc,8f +34b43fd,b1 +34b43ff,2c +34b4400,8f +34b4401,b0 +34b4403,28 +34b4404,3 +34b4405,e0 +34b4407,8 +34b4408,27 +34b4409,bd +34b440b,50 +34b440c,4d +34b440d,51 +34b4410,4e +34b4411,6f +34b4412,72 +34b4413,6d +34b4414,61 +34b4415,6c +34b441d,8 +34b441f,e +34b4421,5f +34b4422,3 +34b4423,1 +34b4424,1 +34b442d,18 +34b442f,18 +34b4431,12 +34b4433,3 +34b4434,4 +34b443d,10 +34b443f,10 +34b4441,6 +34b4442,3 +34b4443,1 +34b4444,1 +34b444d,10 +34b444f,10 +34b4451,3 +34b4453,3 +34b4454,4 +34b4459,1 +34b445a,2 +34b445b,3 +34b445c,4 +34b445d,5 +34b445e,6 +34b445f,7 +34b4460,ff +34b4461,ff +34b4462,ff +34b4463,ff +34b4464,ff +34b4465,ff +34b4469,ff +34b446b,ff +34b446c,3c +34b446f,64 +34b4470,ff +34b4471,ff +34b4472,82 +34b4474,c8 +34b4475,32 +34b4476,ff +34b4477,c8 +34b4478,c8 +34b447d,10 +34b447e,44 +34b447f,65 +34b4480,6b +34b4481,75 +34b4488,1 +34b4489,10 +34b448a,44 +34b448b,6f +34b448c,64 +34b448d,6f +34b448e,6e +34b448f,67 +34b4490,6f +34b4494,2 +34b4495,10 +34b4496,4a +34b4497,61 +34b4498,62 +34b4499,75 +34b44a0,3 +34b44a1,d0 +34b44a2,46 +34b44a3,6f +34b44a4,72 +34b44a5,65 +34b44a6,73 +34b44a7,74 +34b44ac,4 +34b44ad,d0 +34b44ae,46 +34b44af,69 +34b44b0,72 +34b44b1,65 +34b44b8,5 +34b44b9,d0 +34b44ba,57 +34b44bb,61 +34b44bc,74 +34b44bd,65 +34b44be,72 +34b44c4,7 +34b44c5,d0 +34b44c6,53 +34b44c7,68 +34b44c8,61 +34b44c9,64 +34b44ca,6f +34b44cb,77 +34b44d0,6 +34b44d1,d0 +34b44d2,53 +34b44d3,70 +34b44d4,69 +34b44d5,72 +34b44d6,69 +34b44d7,74 +34b44dc,8 +34b44dd,90 +34b44de,42 +34b44df,6f +34b44e0,74 +34b44e1,57 +34b44e8,9 +34b44e9,10 +34b44ea,49 +34b44eb,63 +34b44ec,65 +34b44f4,c +34b44f5,a0 +34b44f6,47 +34b44f7,65 +34b44f8,72 +34b44f9,75 +34b44fa,64 +34b44fb,6f +34b4500,b +34b4501,80 +34b4502,47 +34b4503,54 +34b4504,47 +34b450c,d +34b450d,c0 +34b450e,47 +34b450f,61 +34b4510,6e +34b4511,6f +34b4512,6e +34b451b,1 +34b451f,d +34b459b,d +34b459c,b0 +34b459f,d +34b45a0,b0 +34b45a3,d +34b45a4,b0 +34b45a7,c +34b45a8,b0 +34b45ab,c +34b45ac,b0 +34b45af,c +34b45b0,a0 +34b45b7,d +34b45b8,b0 +34b45bb,d +34b45bc,b0 +34b45d3,e8 +34b45d4,ac +34b45d7,e8 +34b45d8,ac +34b45db,e8 +34b45dc,ac +34b45df,e8 +34b45e0,ac +34b4607,d +34b4608,77 +34b4609,d0 +34b460b,2e +34b460c,3a +34b460d,b0 +34b460f,7d +34b4610,c +34b4611,90 +34b4612,8f +34b4613,ff +34b4614,ff +34b4615,fd +34b4617,c9 +34b4618,6e +34b461a,2 +34b461b,e4 +34b461c,ac +34b461e,ef +34b461f,ff +34b4620,ff +34b4621,f4 +34b4622,a +34b4623,b0 +34b4624,e5 +34b4626,c +34b4627,95 +34b4628,e0 +34b462a,e +34b462b,59 +34b462c,c0 +34b4643,7 +34b4644,90 +34b4646,5 +34b4647,ce +34b4648,eb +34b4649,40 +34b464a,c +34b464b,c8 +34b464c,a9 +34b464d,90 +34b464e,d +34b464f,a7 +34b4650,90 +34b4652,8 +34b4653,ec +34b4654,b4 +34b4657,4a +34b4658,dd +34b4659,a0 +34b465b,7 +34b465c,97 +34b465d,e2 +34b465e,c +34b465f,88 +34b4660,aa +34b4661,e0 +34b4662,6 +34b4663,ce +34b4664,ed +34b4665,70 +34b4667,7 +34b4668,90 +34b466b,7 +34b466c,90 +34b467a,6d +34b467b,ea +34b467e,c9 +34b467f,4d +34b4680,60 +34b4682,c9 +34b4683,4d +34b4684,60 +34b4685,33 +34b4686,6d +34b4687,eb +34b4688,6b +34b4689,c6 +34b468b,8c +34b468c,b6 +34b468e,7c +34b468f,a4 +34b4690,ce +34b4691,c4 +34b4692,31 +34b4693,9 +34b4694,c3 +34b4695,bb +34b4697,9 +34b4698,c3 +34b4699,bb +34b469b,2 +34b469c,ce +34b469d,d4 +34b46b2,4 +34b46b3,ce +34b46b4,fb +34b46b6,a +34b46b7,d5 +34b46ba,8 +34b46bb,e3 +34b46be,9 +34b46bf,ec +34b46c2,7e +34b46c3,4d +34b46c4,b0 +34b46c5,ab +34b46c6,bb +34b46c7,5 +34b46c8,e8 +34b46c9,aa +34b46ca,bc +34b46cc,8e +34b46cd,d6 +34b46ce,7e +34b46cf,93 +34b46d0,6e +34b46d1,d0 +34b46d2,8 +34b46d3,de +34b46d4,d9 +34b46d5,ea +34b46eb,c +34b46ec,a0 +34b46ef,c +34b46f0,a0 +34b46f3,c +34b46f4,a0 +34b46f7,c +34b46f8,a0 +34b471c,c9 +34b471f,7 +34b4720,e2 +34b4723,c +34b4724,b0 +34b4727,e +34b4728,80 +34b472b,6f +34b472c,30 +34b472f,8e +34b4733,8e +34b4737,6f +34b4738,40 +34b473b,e +34b473c,80 +34b473f,c +34b4740,b0 +34b4743,7 +34b4744,e2 +34b4748,c9 +34b4753,bb +34b4757,5e +34b4758,40 +34b475b,c +34b475c,a0 +34b475f,a +34b4760,d0 +34b4763,7 +34b4764,e1 +34b4767,6 +34b4768,f4 +34b476b,6 +34b476c,f4 +34b476f,7 +34b4770,e1 +34b4773,a +34b4774,d0 +34b4777,c +34b4778,a0 +34b477b,5e +34b477c,40 +34b477f,bb +34b4793,a +34b4794,80 +34b4796,c +34b4797,8a +34b4798,8a +34b4799,b0 +34b479a,3 +34b479b,be +34b479c,da +34b479d,10 +34b479e,3 +34b479f,be +34b47a0,da +34b47a1,10 +34b47a2,c +34b47a3,8a +34b47a4,8a +34b47a5,b0 +34b47a7,a +34b47a8,80 +34b47cf,c +34b47d0,a0 +34b47d3,c +34b47d4,a0 +34b47d7,c +34b47d8,a0 +34b47da,af +34b47db,ff +34b47dc,ff +34b47dd,f8 +34b47df,c +34b47e0,a0 +34b47e3,c +34b47e4,a0 +34b47e7,c +34b47e8,a0 +34b481f,d +34b4820,d0 +34b4823,e +34b4824,c0 +34b4827,4f +34b4828,80 +34b482b,9d +34b484f,df +34b4850,fb +34b488f,e +34b4890,c0 +34b4893,e +34b4894,c0 +34b48ac,b +34b48ad,c0 +34b48b0,4e +34b48b1,60 +34b48b4,bc +34b48b7,3 +34b48b8,e8 +34b48bb,a +34b48bc,d0 +34b48bf,1e +34b48c0,90 +34b48c3,9e +34b48c4,20 +34b48c7,da +34b48ca,7 +34b48cb,e3 +34b48ce,c +34b48cf,b0 +34b48d2,6e +34b48d3,50 +34b48e2,3 +34b48e3,ce +34b48e4,eb +34b48e6,b +34b48e7,d5 +34b48e8,7e +34b48e9,90 +34b48ea,e +34b48eb,90 +34b48ec,b +34b48ed,d0 +34b48ee,5f +34b48ef,70 +34b48f0,9 +34b48f1,e0 +34b48f2,6f +34b48f3,6c +34b48f4,b9 +34b48f5,e0 +34b48f6,5f +34b48f7,70 +34b48f8,9 +34b48f9,e0 +34b48fa,e +34b48fb,90 +34b48fc,b +34b48fd,d0 34b48fe,b -34b48ff,b0 -34b4900,9e -34b4902,6e -34b4903,40 -34b4904,9e -34b4906,9f -34b4907,ff -34b4908,ff -34b4909,f7 -34b490c,9e -34b4910,9e -34b4926,c -34b4927,ff -34b4928,ff -34b4929,50 -34b492a,c -34b492b,a0 -34b492e,c -34b492f,a0 -34b4932,c -34b4933,ee -34b4934,ea -34b4937,3 -34b4938,8e -34b4939,90 -34b493c,b -34b493d,c0 -34b4940,b -34b4941,c0 -34b4942,5c -34b4943,63 -34b4944,8e -34b4945,90 -34b4946,9 -34b4947,de -34b4948,da -34b495f,ae -34b4960,ec -34b4961,30 -34b4962,a -34b4963,e8 -34b4964,39 -34b4965,80 -34b4966,e -34b4967,90 -34b496a,4f -34b496b,ae -34b496c,ec -34b496d,40 -34b496e,6f -34b496f,d5 -34b4970,5d -34b4971,c0 -34b4972,5f -34b4973,90 -34b4974,9 -34b4975,e0 -34b4976,e -34b4977,90 -34b4978,9 -34b4979,e0 -34b497a,c -34b497b,d5 -34b497c,5d -34b497d,c0 -34b497e,3 -34b497f,ce -34b4980,ec -34b4981,40 -34b4996,5f -34b4997,ff -34b4998,ff -34b4999,d0 -34b499c,d -34b499d,a0 -34b49a0,7e -34b49a1,40 -34b49a4,cc -34b49a7,4 -34b49a8,e8 -34b49ab,a -34b49ac,d0 -34b49af,d -34b49b0,a0 -34b49b3,8e -34b49b4,40 -34b49b7,cc -34b49ce,5 -34b49cf,ce -34b49d0,ec -34b49d1,30 -34b49d2,d -34b49d3,c4 -34b49d4,5d -34b49d5,b0 -34b49d6,e -34b49d7,90 -34b49d8,b -34b49d9,d0 -34b49da,b -34b49db,c4 -34b49dc,5d -34b49dd,90 -34b49de,4 -34b49df,df -34b49e0,fc -34b49e1,20 -34b49e2,1d -34b49e3,b4 -34b49e4,5c -34b49e5,c0 -34b49e6,5f -34b49e7,60 -34b49e8,9 -34b49e9,e0 -34b49ea,2e -34b49eb,b3 -34b49ec,5c -34b49ed,d0 -34b49ee,7 -34b49ef,de -34b49f0,ec -34b49f1,50 -34b4a06,6 -34b4a07,de -34b4a08,eb -34b4a0a,d -34b4a0b,b3 -34b4a0c,7e +34b48ff,d5 +34b4900,7e +34b4901,90 +34b4902,3 +34b4903,ce +34b4904,eb +34b491a,a +34b491b,ff +34b491c,e0 +34b491f,8 +34b4920,e0 +34b4923,8 +34b4924,e0 +34b4927,8 +34b4928,e0 +34b492b,8 +34b492c,e0 +34b492f,8 +34b4930,e0 +34b4933,8 +34b4934,e0 +34b4937,8 +34b4938,e0 +34b493a,8 +34b493b,ff +34b493c,ff +34b493d,e0 +34b4952,8 +34b4953,de +34b4954,ea +34b4956,c +34b4957,83 +34b4958,7e +34b4959,90 +34b495c,c +34b495d,c0 +34b4960,2e +34b4961,a0 +34b4964,bd +34b4965,20 +34b4967,b +34b4968,d4 +34b496b,bd +34b496c,40 +34b496e,b +34b496f,d4 +34b4972,2f +34b4973,ff +34b4974,ff +34b4975,d0 +34b498a,7 +34b498b,ce +34b498c,ea +34b498e,c +34b498f,83 +34b4990,7e +34b4991,90 +34b4994,c +34b4995,b0 +34b4997,2 +34b4998,7e +34b4999,90 +34b499b,bf +34b499c,fb +34b499f,2 +34b49a0,7d +34b49a1,a0 +34b49a4,a +34b49a5,d0 +34b49a6,5c +34b49a7,62 +34b49a8,7d +34b49a9,b0 +34b49aa,9 +34b49ab,de +34b49ac,eb +34b49ad,30 +34b49c3,2 +34b49c4,de +34b49c7,b +34b49c8,de +34b49cb,7d +34b49cc,9e +34b49ce,2 +34b49cf,d7 +34b49d0,9e +34b49d2,b +34b49d3,b0 +34b49d4,9e +34b49d6,6e +34b49d7,40 +34b49d8,9e +34b49da,9f +34b49db,ff +34b49dc,ff +34b49dd,f7 +34b49e0,9e +34b49e4,9e +34b49fa,c +34b49fb,ff +34b49fc,ff +34b49fd,50 +34b49fe,c +34b49ff,a0 +34b4a02,c +34b4a03,a0 +34b4a06,c +34b4a07,ee +34b4a08,ea +34b4a0b,3 +34b4a0c,8e 34b4a0d,90 -34b4a0e,5f -34b4a0f,50 34b4a10,b -34b4a11,d0 -34b4a12,5f -34b4a13,50 +34b4a11,c0 34b4a14,b -34b4a15,e0 -34b4a16,d -34b4a17,b3 -34b4a18,7e -34b4a19,e0 -34b4a1a,6 +34b4a15,c0 +34b4a16,5c +34b4a17,63 +34b4a18,8e +34b4a19,90 +34b4a1a,9 34b4a1b,de -34b4a1c,db -34b4a1d,e0 -34b4a20,b -34b4a21,c0 -34b4a22,9 -34b4a23,74 -34b4a24,9e -34b4a25,70 -34b4a26,5 -34b4a27,de -34b4a28,d8 -34b4a47,e -34b4a48,c0 -34b4a4b,e -34b4a4c,c0 -34b4a5b,e -34b4a5c,c0 -34b4a5f,e -34b4a60,c0 -34b4a7f,e -34b4a80,c0 -34b4a83,e -34b4a84,c0 -34b4a93,d -34b4a94,d0 -34b4a97,e -34b4a98,c0 -34b4a9b,4f -34b4a9c,80 -34b4a9f,9d -34b4ab8,29 -34b4ab9,c8 -34b4abb,7b -34b4abc,ed -34b4abd,93 -34b4abe,8d -34b4abf,da -34b4ac0,40 -34b4ac2,8d -34b4ac3,da -34b4ac4,40 -34b4ac7,7b -34b4ac8,ec -34b4ac9,93 -34b4acc,29 -34b4acd,c8 -34b4af2,af -34b4af3,ff -34b4af4,ff -34b4af5,f8 -34b4afe,af -34b4aff,ff -34b4b00,ff -34b4b01,f8 -34b4b26,ac -34b4b27,81 -34b4b2a,4a -34b4b2b,de -34b4b2c,b6 -34b4b2f,6 -34b4b30,ad -34b4b31,d6 -34b4b33,6 -34b4b34,ad -34b4b35,d6 -34b4b36,4a -34b4b37,de -34b4b38,b6 -34b4b3a,ac -34b4b3b,81 -34b4b56,4 -34b4b57,be -34b4b58,ec -34b4b59,30 -34b4b5a,9 -34b4b5b,a4 -34b4b5c,6e -34b4b5d,a0 -34b4b60,1d -34b4b61,a0 -34b4b63,2 -34b4b64,cd -34b4b65,30 -34b4b67,c -34b4b68,c1 +34b4a1c,da +34b4a33,ae +34b4a34,ec +34b4a35,30 +34b4a36,a +34b4a37,e8 +34b4a38,39 +34b4a39,80 +34b4a3a,e +34b4a3b,90 +34b4a3e,4f +34b4a3f,ae +34b4a40,ec +34b4a41,40 +34b4a42,6f +34b4a43,d5 +34b4a44,5d +34b4a45,c0 +34b4a46,5f +34b4a47,90 +34b4a48,9 +34b4a49,e0 +34b4a4a,e +34b4a4b,90 +34b4a4c,9 +34b4a4d,e0 +34b4a4e,c +34b4a4f,d5 +34b4a50,5d +34b4a51,c0 +34b4a52,3 +34b4a53,ce +34b4a54,ec +34b4a55,40 +34b4a6a,5f +34b4a6b,ff +34b4a6c,ff +34b4a6d,d0 +34b4a70,d +34b4a71,a0 +34b4a74,7e +34b4a75,40 +34b4a78,cc +34b4a7b,4 +34b4a7c,e8 +34b4a7f,a +34b4a80,d0 +34b4a83,d +34b4a84,a0 +34b4a87,8e +34b4a88,40 +34b4a8b,cc +34b4aa2,5 +34b4aa3,ce +34b4aa4,ec +34b4aa5,30 +34b4aa6,d +34b4aa7,c4 +34b4aa8,5d +34b4aa9,b0 +34b4aaa,e +34b4aab,90 +34b4aac,b +34b4aad,d0 +34b4aae,b +34b4aaf,c4 +34b4ab0,5d +34b4ab1,90 +34b4ab2,4 +34b4ab3,df +34b4ab4,fc +34b4ab5,20 +34b4ab6,1d +34b4ab7,b4 +34b4ab8,5c +34b4ab9,c0 +34b4aba,5f +34b4abb,60 +34b4abc,9 +34b4abd,e0 +34b4abe,2e +34b4abf,b3 +34b4ac0,5c +34b4ac1,d0 +34b4ac2,7 +34b4ac3,de +34b4ac4,ec +34b4ac5,50 +34b4ada,6 +34b4adb,de +34b4adc,eb +34b4ade,d +34b4adf,b3 +34b4ae0,7e +34b4ae1,90 +34b4ae2,5f +34b4ae3,50 +34b4ae4,b +34b4ae5,d0 +34b4ae6,5f +34b4ae7,50 +34b4ae8,b +34b4ae9,e0 +34b4aea,d +34b4aeb,b3 +34b4aec,7e +34b4aed,e0 +34b4aee,6 +34b4aef,de +34b4af0,db +34b4af1,e0 +34b4af4,b +34b4af5,c0 +34b4af6,9 +34b4af7,74 +34b4af8,9e +34b4af9,70 +34b4afa,5 +34b4afb,de +34b4afc,d8 +34b4b1b,e +34b4b1c,c0 +34b4b1f,e +34b4b20,c0 +34b4b2f,e +34b4b30,c0 +34b4b33,e +34b4b34,c0 +34b4b53,e +34b4b54,c0 +34b4b57,e +34b4b58,c0 +34b4b67,d +34b4b68,d0 34b4b6b,e -34b4b6c,90 -34b4b73,e -34b4b74,90 -34b4b77,e -34b4b78,90 -34b4b8e,1 -34b4b8f,ae +34b4b6c,c0 +34b4b6f,4f +34b4b70,80 +34b4b73,9d +34b4b8c,29 +34b4b8d,c8 +34b4b8f,7b 34b4b90,ed -34b4b91,70 -34b4b92,c -34b4b93,d7 -34b4b94,39 -34b4b95,e4 -34b4b96,7e -34b4b97,20 -34b4b99,c9 -34b4b9a,ba -34b4b9b,a -34b4b9c,ee -34b4b9d,ca -34b4b9e,d7 -34b4b9f,6e -34b4ba0,64 -34b4ba1,da -34b4ba2,d6 -34b4ba3,9c -34b4ba5,aa -34b4ba6,d7 -34b4ba7,6e -34b4ba8,64 -34b4ba9,da -34b4baa,ba -34b4bab,a -34b4bac,ee -34b4bad,ca -34b4bae,6e -34b4baf,40 -34b4bb2,a -34b4bb3,d8 -34b4bb4,30 -34b4bb7,8d -34b4bb8,ee -34b4bb9,90 -34b4bc7,3e -34b4bc8,d0 -34b4bcb,9d -34b4bcc,e6 -34b4bcf,cb -34b4bd0,cb -34b4bd2,3 -34b4bd3,e8 -34b4bd4,ad -34b4bd6,8 -34b4bd7,e2 -34b4bd8,6f -34b4bd9,60 -34b4bda,c -34b4bdb,c0 -34b4bdc,e -34b4bdd,a0 -34b4bde,2e -34b4bdf,ff -34b4be0,ff -34b4be1,d0 -34b4be2,8e -34b4be3,50 -34b4be4,8 -34b4be5,f5 -34b4be6,cd -34b4be8,1 -34b4be9,ea -34b4bfe,e -34b4bff,ff -34b4c00,ec -34b4c01,40 -34b4c02,e -34b4c03,90 -34b4c04,5d -34b4c05,c0 -34b4c06,e -34b4c07,90 -34b4c08,a -34b4c09,e0 -34b4c0a,e -34b4c0b,90 -34b4c0c,5d -34b4c0d,c0 -34b4c0e,e -34b4c0f,ff -34b4c10,fd -34b4c11,50 -34b4c12,e -34b4c13,90 -34b4c14,4b -34b4c15,d2 -34b4c16,e -34b4c17,90 -34b4c18,5 -34b4c19,f6 -34b4c1a,e -34b4c1b,90 -34b4c1c,4b -34b4c1d,e3 -34b4c1e,e -34b4c1f,ff -34b4c20,ed -34b4c21,80 -34b4c37,9d -34b4c38,ed -34b4c39,80 -34b4c3a,8 -34b4c3b,e9 -34b4c3c,36 -34b4c3d,b0 -34b4c3e,d -34b4c3f,b0 -34b4c42,3f -34b4c43,90 -34b4c46,5f -34b4c47,70 -34b4c4a,1e -34b4c4b,90 -34b4c4e,d -34b4c4f,b0 -34b4c52,8 -34b4c53,e9 -34b4c54,47 -34b4c55,b0 -34b4c57,9d -34b4c58,ed -34b4c59,80 -34b4c6e,5f -34b4c6f,fe -34b4c70,d8 -34b4c72,5f -34b4c73,65 -34b4c74,ae -34b4c75,80 -34b4c76,5f -34b4c77,60 -34b4c78,c -34b4c79,d0 -34b4c7a,5f -34b4c7b,60 -34b4c7c,9 -34b4c7d,e0 -34b4c7e,5f -34b4c7f,60 -34b4c80,9 -34b4c81,f0 -34b4c82,5f -34b4c83,60 -34b4c84,9 -34b4c85,e0 -34b4c86,5f -34b4c87,60 -34b4c88,c -34b4c89,d0 -34b4c8a,5f -34b4c8b,65 -34b4c8c,ae -34b4c8d,80 -34b4c8e,5f -34b4c8f,fe -34b4c90,d8 -34b4ca6,d -34b4ca7,ff -34b4ca8,ff -34b4ca9,e0 -34b4caa,d -34b4cab,b0 -34b4cae,d -34b4caf,b0 -34b4cb2,d -34b4cb3,b0 -34b4cb6,d -34b4cb7,ff -34b4cb8,ff -34b4cb9,c0 -34b4cba,d -34b4cbb,b0 -34b4cbe,d -34b4cbf,b0 -34b4cc2,d -34b4cc3,b0 -34b4cc6,d -34b4cc7,ff -34b4cc8,ff -34b4cc9,f0 -34b4cde,b -34b4cdf,ff -34b4ce0,ff -34b4ce1,f4 -34b4ce2,b -34b4ce3,d0 -34b4ce6,b -34b4ce7,d0 -34b4cea,b -34b4ceb,d0 -34b4cee,b -34b4cef,ff -34b4cf0,ff -34b4cf1,c0 -34b4cf2,b -34b4cf3,d0 -34b4cf6,b -34b4cf7,d0 -34b4cfa,b -34b4cfb,d0 -34b4cfe,b -34b4cff,d0 -34b4d16,1 -34b4d17,ae -34b4d18,ed -34b4d19,60 -34b4d1a,b -34b4d1b,e7 -34b4d1c,38 -34b4d1d,a0 -34b4d1e,4e +34b4b91,93 +34b4b92,8d +34b4b93,da +34b4b94,40 +34b4b96,8d +34b4b97,da +34b4b98,40 +34b4b9b,7b +34b4b9c,ec +34b4b9d,93 +34b4ba0,29 +34b4ba1,c8 +34b4bc6,af +34b4bc7,ff +34b4bc8,ff +34b4bc9,f8 +34b4bd2,af +34b4bd3,ff +34b4bd4,ff +34b4bd5,f8 +34b4bfa,ac +34b4bfb,81 +34b4bfe,4a +34b4bff,de +34b4c00,b6 +34b4c03,6 +34b4c04,ad +34b4c05,d6 +34b4c07,6 +34b4c08,ad +34b4c09,d6 +34b4c0a,4a +34b4c0b,de +34b4c0c,b6 +34b4c0e,ac +34b4c0f,81 +34b4c2a,4 +34b4c2b,be +34b4c2c,ec +34b4c2d,30 +34b4c2e,9 +34b4c2f,a4 +34b4c30,6e +34b4c31,a0 +34b4c34,1d +34b4c35,a0 +34b4c37,2 +34b4c38,cd +34b4c39,30 +34b4c3b,c +34b4c3c,c1 +34b4c3f,e +34b4c40,90 +34b4c47,e +34b4c48,90 +34b4c4b,e +34b4c4c,90 +34b4c62,1 +34b4c63,ae +34b4c64,ed +34b4c65,70 +34b4c66,c +34b4c67,d7 +34b4c68,39 +34b4c69,e4 +34b4c6a,7e +34b4c6b,20 +34b4c6d,c9 +34b4c6e,ba +34b4c6f,a +34b4c70,ee +34b4c71,ca +34b4c72,d7 +34b4c73,6e +34b4c74,64 +34b4c75,da +34b4c76,d6 +34b4c77,9c +34b4c79,aa +34b4c7a,d7 +34b4c7b,6e +34b4c7c,64 +34b4c7d,da +34b4c7e,ba +34b4c7f,a +34b4c80,ee +34b4c81,ca +34b4c82,6e +34b4c83,40 +34b4c86,a +34b4c87,d8 +34b4c88,30 +34b4c8b,8d +34b4c8c,ee +34b4c8d,90 +34b4c9b,3e +34b4c9c,d0 +34b4c9f,9d +34b4ca0,e6 +34b4ca3,cb +34b4ca4,cb +34b4ca6,3 +34b4ca7,e8 +34b4ca8,ad +34b4caa,8 +34b4cab,e2 +34b4cac,6f +34b4cad,60 +34b4cae,c +34b4caf,c0 +34b4cb0,e +34b4cb1,a0 +34b4cb2,2e +34b4cb3,ff +34b4cb4,ff +34b4cb5,d0 +34b4cb6,8e +34b4cb7,50 +34b4cb8,8 +34b4cb9,f5 +34b4cba,cd +34b4cbc,1 +34b4cbd,ea +34b4cd2,e +34b4cd3,ff +34b4cd4,ec +34b4cd5,40 +34b4cd6,e +34b4cd7,90 +34b4cd8,5d +34b4cd9,c0 +34b4cda,e +34b4cdb,90 +34b4cdc,a +34b4cdd,e0 +34b4cde,e +34b4cdf,90 +34b4ce0,5d +34b4ce1,c0 +34b4ce2,e +34b4ce3,ff +34b4ce4,fd +34b4ce5,50 +34b4ce6,e +34b4ce7,90 +34b4ce8,4b +34b4ce9,d2 +34b4cea,e +34b4ceb,90 +34b4cec,5 +34b4ced,f6 +34b4cee,e +34b4cef,90 +34b4cf0,4b +34b4cf1,e3 +34b4cf2,e +34b4cf3,ff +34b4cf4,ed +34b4cf5,80 +34b4d0b,9d +34b4d0c,ed +34b4d0d,80 +34b4d0e,8 +34b4d0f,e9 +34b4d10,36 +34b4d11,b0 +34b4d12,d +34b4d13,b0 +34b4d16,3f +34b4d17,90 +34b4d1a,5f +34b4d1b,70 +34b4d1e,1e 34b4d1f,90 -34b4d22,8f -34b4d23,40 -34b4d26,9f -34b4d27,10 -34b4d28,bf -34b4d29,f2 -34b4d2a,7f -34b4d2b,40 -34b4d2c,7 -34b4d2d,f2 -34b4d2e,4e -34b4d2f,90 -34b4d30,7 -34b4d31,f2 -34b4d32,b -34b4d33,e7 -34b4d34,39 -34b4d35,f2 -34b4d36,1 -34b4d37,be -34b4d38,ed -34b4d39,90 +34b4d22,d +34b4d23,b0 +34b4d26,8 +34b4d27,e9 +34b4d28,47 +34b4d29,b0 +34b4d2b,9d +34b4d2c,ed +34b4d2d,80 +34b4d42,5f +34b4d43,fe +34b4d44,d8 +34b4d46,5f +34b4d47,65 +34b4d48,ae +34b4d49,80 +34b4d4a,5f +34b4d4b,60 +34b4d4c,c +34b4d4d,d0 34b4d4e,5f 34b4d4f,60 34b4d50,9 @@ -10432,1412 +10585,1513 @@ ec9ce7,7a 34b4d52,5f 34b4d53,60 34b4d54,9 -34b4d55,e0 +34b4d55,f0 34b4d56,5f 34b4d57,60 34b4d58,9 34b4d59,e0 34b4d5a,5f 34b4d5b,60 -34b4d5c,9 -34b4d5d,e0 +34b4d5c,c +34b4d5d,d0 34b4d5e,5f -34b4d5f,ff -34b4d60,ff -34b4d61,e0 +34b4d5f,65 +34b4d60,ae +34b4d61,80 34b4d62,5f -34b4d63,60 -34b4d64,9 -34b4d65,e0 -34b4d66,5f -34b4d67,60 -34b4d68,9 -34b4d69,e0 -34b4d6a,5f -34b4d6b,60 -34b4d6c,9 -34b4d6d,e0 -34b4d6e,5f -34b4d6f,60 -34b4d70,9 -34b4d71,e0 +34b4d63,fe +34b4d64,d8 +34b4d7a,d +34b4d7b,ff +34b4d7c,ff +34b4d7d,e0 +34b4d7e,d +34b4d7f,b0 +34b4d82,d +34b4d83,b0 34b4d86,d -34b4d87,ff -34b4d88,ff -34b4d89,b0 -34b4d8b,d -34b4d8c,b0 -34b4d8f,d -34b4d90,b0 -34b4d93,d -34b4d94,b0 -34b4d97,d -34b4d98,b0 -34b4d9b,d -34b4d9c,b0 -34b4d9f,d -34b4da0,b0 -34b4da3,d -34b4da4,b0 -34b4da6,d -34b4da7,ff -34b4da8,ff -34b4da9,b0 -34b4dbf,cf -34b4dc0,ff -34b4dc1,40 -34b4dc4,7f -34b4dc5,40 -34b4dc8,7f -34b4dc9,40 -34b4dcc,7f -34b4dcd,40 -34b4dd0,7f -34b4dd1,40 -34b4dd4,7f -34b4dd5,30 -34b4dd6,75 -34b4dd8,9e -34b4dda,8d -34b4ddb,64 -34b4ddc,dc -34b4dde,2b -34b4ddf,ee -34b4de0,c5 -34b4df6,5f -34b4df7,60 -34b4df8,9 -34b4df9,e7 -34b4dfa,5f -34b4dfb,60 -34b4dfc,9e -34b4dfd,70 -34b4dfe,5f -34b4dff,69 -34b4e00,e7 -34b4e02,5f -34b4e03,be -34b4e04,80 -34b4e06,5f -34b4e07,ed -34b4e08,b0 -34b4e0a,5f -34b4e0b,87 -34b4e0c,e8 -34b4e0e,5f -34b4e0f,60 -34b4e10,ae -34b4e11,40 -34b4e12,5f -34b4e13,60 -34b4e14,1d -34b4e15,c0 -34b4e16,5f -34b4e17,60 -34b4e18,6 -34b4e19,ea -34b4e2e,c -34b4e2f,c0 -34b4e32,c -34b4e33,c0 -34b4e36,c -34b4e37,c0 -34b4e3a,c -34b4e3b,c0 -34b4e3e,c -34b4e3f,c0 -34b4e42,c -34b4e43,c0 -34b4e46,c -34b4e47,c0 -34b4e4a,c -34b4e4b,c0 -34b4e4e,c -34b4e4f,ff -34b4e50,ff -34b4e51,f7 -34b4e66,af -34b4e67,a0 -34b4e68,c -34b4e69,f8 -34b4e6a,ae -34b4e6b,d0 -34b4e6c,2e -34b4e6d,e8 -34b4e6e,ad -34b4e6f,d5 -34b4e70,9b -34b4e71,e8 -34b4e72,ad -34b4e73,aa -34b4e74,c8 -34b4e75,e8 -34b4e76,ad -34b4e77,5d -34b4e78,e1 -34b4e79,e8 -34b4e7a,ad -34b4e7b,d -34b4e7c,b0 -34b4e7d,e8 -34b4e7e,ad -34b4e81,e8 -34b4e82,ad -34b4e85,e8 -34b4e86,ad -34b4e89,e8 -34b4e9e,5f -34b4e9f,c0 -34b4ea0,8 -34b4ea1,e0 -34b4ea2,5f -34b4ea3,e6 -34b4ea4,8 -34b4ea5,e0 -34b4ea6,5f -34b4ea7,cb -34b4ea8,8 -34b4ea9,e0 -34b4eaa,5f -34b4eab,7e -34b4eac,48 -34b4ead,e0 -34b4eae,5f -34b4eaf,5c -34b4eb0,a8 -34b4eb1,e0 -34b4eb2,5f -34b4eb3,57 -34b4eb4,e8 -34b4eb5,e0 -34b4eb6,5f -34b4eb7,50 -34b4eb8,dc -34b4eb9,e0 -34b4eba,5f -34b4ebb,50 -34b4ebc,9e -34b4ebd,e0 -34b4ebe,5f -34b4ebf,50 -34b4ec0,2e -34b4ec1,e0 -34b4ed6,4 -34b4ed7,ce -34b4ed8,eb -34b4ed9,20 -34b4eda,c -34b4edb,d5 -34b4edc,6e -34b4edd,a0 -34b4ede,3e -34b4edf,80 -34b4ee0,a -34b4ee1,e0 -34b4ee2,7f -34b4ee3,50 -34b4ee4,8 -34b4ee5,f2 -34b4ee6,7f -34b4ee7,40 -34b4ee8,8 -34b4ee9,f4 -34b4eea,7f -34b4eeb,50 -34b4eec,8 -34b4eed,f2 -34b4eee,3e -34b4eef,80 -34b4ef0,a -34b4ef1,e0 -34b4ef2,c -34b4ef3,d5 -34b4ef4,6e -34b4ef5,b0 -34b4ef6,4 -34b4ef7,ce -34b4ef8,eb -34b4ef9,20 -34b4f0e,d -34b4f0f,ff -34b4f10,ed -34b4f11,60 -34b4f12,d -34b4f13,b0 -34b4f14,5c -34b4f15,e2 -34b4f16,d -34b4f17,b0 -34b4f18,6 -34b4f19,f6 -34b4f1a,d -34b4f1b,b0 -34b4f1c,6 -34b4f1d,f6 -34b4f1e,d -34b4f1f,b0 -34b4f20,5c -34b4f21,e2 -34b4f22,d +34b4d87,b0 +34b4d8a,d +34b4d8b,ff +34b4d8c,ff +34b4d8d,c0 +34b4d8e,d +34b4d8f,b0 +34b4d92,d +34b4d93,b0 +34b4d96,d +34b4d97,b0 +34b4d9a,d +34b4d9b,ff +34b4d9c,ff +34b4d9d,f0 +34b4db2,b +34b4db3,ff +34b4db4,ff +34b4db5,f4 +34b4db6,b +34b4db7,d0 +34b4dba,b +34b4dbb,d0 +34b4dbe,b +34b4dbf,d0 +34b4dc2,b +34b4dc3,ff +34b4dc4,ff +34b4dc5,c0 +34b4dc6,b +34b4dc7,d0 +34b4dca,b +34b4dcb,d0 +34b4dce,b +34b4dcf,d0 +34b4dd2,b +34b4dd3,d0 +34b4dea,1 +34b4deb,ae +34b4dec,ed +34b4ded,60 +34b4dee,b +34b4def,e7 +34b4df0,38 +34b4df1,a0 +34b4df2,4e +34b4df3,90 +34b4df6,8f +34b4df7,40 +34b4dfa,9f +34b4dfb,10 +34b4dfc,bf +34b4dfd,f2 +34b4dfe,7f +34b4dff,40 +34b4e00,7 +34b4e01,f2 +34b4e02,4e +34b4e03,90 +34b4e04,7 +34b4e05,f2 +34b4e06,b +34b4e07,e7 +34b4e08,39 +34b4e09,f2 +34b4e0a,1 +34b4e0b,be +34b4e0c,ed +34b4e0d,90 +34b4e22,5f +34b4e23,60 +34b4e24,9 +34b4e25,e0 +34b4e26,5f +34b4e27,60 +34b4e28,9 +34b4e29,e0 +34b4e2a,5f +34b4e2b,60 +34b4e2c,9 +34b4e2d,e0 +34b4e2e,5f +34b4e2f,60 +34b4e30,9 +34b4e31,e0 +34b4e32,5f +34b4e33,ff +34b4e34,ff +34b4e35,e0 +34b4e36,5f +34b4e37,60 +34b4e38,9 +34b4e39,e0 +34b4e3a,5f +34b4e3b,60 +34b4e3c,9 +34b4e3d,e0 +34b4e3e,5f +34b4e3f,60 +34b4e40,9 +34b4e41,e0 +34b4e42,5f +34b4e43,60 +34b4e44,9 +34b4e45,e0 +34b4e5a,d +34b4e5b,ff +34b4e5c,ff +34b4e5d,b0 +34b4e5f,d +34b4e60,b0 +34b4e63,d +34b4e64,b0 +34b4e67,d +34b4e68,b0 +34b4e6b,d +34b4e6c,b0 +34b4e6f,d +34b4e70,b0 +34b4e73,d +34b4e74,b0 +34b4e77,d +34b4e78,b0 +34b4e7a,d +34b4e7b,ff +34b4e7c,ff +34b4e7d,b0 +34b4e93,cf +34b4e94,ff +34b4e95,40 +34b4e98,7f +34b4e99,40 +34b4e9c,7f +34b4e9d,40 +34b4ea0,7f +34b4ea1,40 +34b4ea4,7f +34b4ea5,40 +34b4ea8,7f +34b4ea9,30 +34b4eaa,75 +34b4eac,9e +34b4eae,8d +34b4eaf,64 +34b4eb0,dc +34b4eb2,2b +34b4eb3,ee +34b4eb4,c5 +34b4eca,5f +34b4ecb,60 +34b4ecc,9 +34b4ecd,e7 +34b4ece,5f +34b4ecf,60 +34b4ed0,9e +34b4ed1,70 +34b4ed2,5f +34b4ed3,69 +34b4ed4,e7 +34b4ed6,5f +34b4ed7,be +34b4ed8,80 +34b4eda,5f +34b4edb,ed +34b4edc,b0 +34b4ede,5f +34b4edf,87 +34b4ee0,e8 +34b4ee2,5f +34b4ee3,60 +34b4ee4,ae +34b4ee5,40 +34b4ee6,5f +34b4ee7,60 +34b4ee8,1d +34b4ee9,c0 +34b4eea,5f +34b4eeb,60 +34b4eec,6 +34b4eed,ea +34b4f02,c +34b4f03,c0 +34b4f06,c +34b4f07,c0 +34b4f0a,c +34b4f0b,c0 +34b4f0e,c +34b4f0f,c0 +34b4f12,c +34b4f13,c0 +34b4f16,c +34b4f17,c0 +34b4f1a,c +34b4f1b,c0 +34b4f1e,c +34b4f1f,c0 +34b4f22,c 34b4f23,ff -34b4f24,ed -34b4f25,60 -34b4f26,d -34b4f27,b0 -34b4f2a,d -34b4f2b,b0 -34b4f2e,d -34b4f2f,b0 -34b4f46,4 -34b4f47,ce -34b4f48,eb -34b4f49,20 -34b4f4a,c -34b4f4b,d5 -34b4f4c,6e -34b4f4d,a0 -34b4f4e,3e -34b4f4f,80 -34b4f50,a -34b4f51,e0 -34b4f52,7f -34b4f53,50 -34b4f54,8 -34b4f55,f2 -34b4f56,7f -34b4f57,40 -34b4f58,8 -34b4f59,f4 -34b4f5a,7f -34b4f5b,50 -34b4f5c,8 -34b4f5d,f1 -34b4f5e,3e -34b4f5f,80 -34b4f60,a -34b4f61,d0 -34b4f62,c -34b4f63,d5 -34b4f64,6e -34b4f65,a0 -34b4f66,4 -34b4f67,ce -34b4f68,fc -34b4f69,20 -34b4f6c,ae -34b4f6d,50 -34b4f70,c -34b4f71,80 +34b4f24,ff +34b4f25,f7 +34b4f3a,af +34b4f3b,a0 +34b4f3c,c +34b4f3d,f8 +34b4f3e,ae +34b4f3f,d0 +34b4f40,2e +34b4f41,e8 +34b4f42,ad +34b4f43,d5 +34b4f44,9b +34b4f45,e8 +34b4f46,ad +34b4f47,aa +34b4f48,c8 +34b4f49,e8 +34b4f4a,ad +34b4f4b,5d +34b4f4c,e1 +34b4f4d,e8 +34b4f4e,ad +34b4f4f,d +34b4f50,b0 +34b4f51,e8 +34b4f52,ad +34b4f55,e8 +34b4f56,ad +34b4f59,e8 +34b4f5a,ad +34b4f5d,e8 +34b4f72,5f +34b4f73,c0 +34b4f74,8 +34b4f75,e0 +34b4f76,5f +34b4f77,e6 +34b4f78,8 +34b4f79,e0 +34b4f7a,5f +34b4f7b,cb +34b4f7c,8 +34b4f7d,e0 34b4f7e,5f -34b4f7f,fe -34b4f80,eb -34b4f81,20 +34b4f7f,7e +34b4f80,48 +34b4f81,e0 34b4f82,5f -34b4f83,71 -34b4f84,7e -34b4f85,b0 +34b4f83,5c +34b4f84,a8 +34b4f85,e0 34b4f86,5f -34b4f87,70 -34b4f88,c -34b4f89,d0 +34b4f87,57 +34b4f88,e8 +34b4f89,e0 34b4f8a,5f -34b4f8b,71 -34b4f8c,6e -34b4f8d,a0 +34b4f8b,50 +34b4f8c,dc +34b4f8d,e0 34b4f8e,5f -34b4f8f,ff -34b4f90,ea +34b4f8f,50 +34b4f90,9e +34b4f91,e0 34b4f92,5f -34b4f93,72 -34b4f94,ae -34b4f95,40 -34b4f96,5f -34b4f97,70 -34b4f98,d -34b4f99,b0 -34b4f9a,5f -34b4f9b,70 -34b4f9c,8 -34b4f9d,e5 -34b4f9e,5f -34b4f9f,70 -34b4fa1,db -34b4fb6,6 -34b4fb7,ce -34b4fb8,eb -34b4fb9,30 -34b4fba,d -34b4fbb,c4 -34b4fbc,5a -34b4fbd,90 -34b4fbe,4f -34b4fbf,60 -34b4fc2,e -34b4fc3,c6 -34b4fc6,5 -34b4fc7,ce -34b4fc8,eb -34b4fc9,40 -34b4fcc,6c -34b4fcd,c0 -34b4fd0,8 -34b4fd1,e0 -34b4fd2,c -34b4fd3,73 -34b4fd4,5c -34b4fd5,d0 -34b4fd6,8 -34b4fd7,de -34b4fd8,ec -34b4fd9,50 -34b4fee,cf -34b4fef,ff -34b4ff0,ff -34b4ff1,fb -34b4ff3,d -34b4ff4,b0 -34b4ff7,d -34b4ff8,b0 -34b4ffb,d -34b4ffc,b0 -34b4fff,d -34b5000,b0 -34b5003,d -34b5004,b0 -34b5007,d -34b5008,b0 -34b500b,d -34b500c,b0 -34b500f,d -34b5010,b0 -34b5026,4f -34b5027,70 -34b5028,9 -34b5029,e0 -34b502a,4f -34b502b,70 -34b502c,9 -34b502d,e0 -34b502e,4f -34b502f,70 -34b5030,9 -34b5031,e0 -34b5032,4f -34b5033,70 -34b5034,9 -34b5035,e0 -34b5036,4f -34b5037,70 -34b5038,9 -34b5039,e0 -34b503a,3f -34b503b,70 -34b503c,9 -34b503d,e0 -34b503e,2e -34b503f,70 -34b5040,a -34b5041,d0 -34b5042,d -34b5043,c4 -34b5044,5d -34b5045,c0 -34b5046,5 -34b5047,ce -34b5048,ec -34b5049,40 -34b505e,ad -34b5060,3 -34b5061,e8 -34b5062,6f -34b5063,50 -34b5064,8 -34b5065,e3 -34b5066,e -34b5067,90 -34b5068,b -34b5069,c0 -34b506a,b -34b506b,c0 +34b4f93,50 +34b4f94,2e +34b4f95,e0 +34b4faa,4 +34b4fab,ce +34b4fac,eb +34b4fad,20 +34b4fae,c +34b4faf,d5 +34b4fb0,6e +34b4fb1,a0 +34b4fb2,3e +34b4fb3,80 +34b4fb4,a +34b4fb5,e0 +34b4fb6,7f +34b4fb7,50 +34b4fb8,8 +34b4fb9,f2 +34b4fba,7f +34b4fbb,40 +34b4fbc,8 +34b4fbd,f4 +34b4fbe,7f +34b4fbf,50 +34b4fc0,8 +34b4fc1,f2 +34b4fc2,3e +34b4fc3,80 +34b4fc4,a +34b4fc5,e0 +34b4fc6,c +34b4fc7,d5 +34b4fc8,6e +34b4fc9,b0 +34b4fca,4 +34b4fcb,ce +34b4fcc,eb +34b4fcd,20 +34b4fe2,d +34b4fe3,ff +34b4fe4,ed +34b4fe5,60 +34b4fe6,d +34b4fe7,b0 +34b4fe8,5c +34b4fe9,e2 +34b4fea,d +34b4feb,b0 +34b4fec,6 +34b4fed,f6 +34b4fee,d +34b4fef,b0 +34b4ff0,6 +34b4ff1,f6 +34b4ff2,d +34b4ff3,b0 +34b4ff4,5c +34b4ff5,e2 +34b4ff6,d +34b4ff7,ff +34b4ff8,ed +34b4ff9,60 +34b4ffa,d +34b4ffb,b0 +34b4ffe,d +34b4fff,b0 +34b5002,d +34b5003,b0 +34b501a,4 +34b501b,ce +34b501c,eb +34b501d,20 +34b501e,c +34b501f,d5 +34b5020,6e +34b5021,a0 +34b5022,3e +34b5023,80 +34b5024,a +34b5025,e0 +34b5026,7f +34b5027,50 +34b5028,8 +34b5029,f2 +34b502a,7f +34b502b,40 +34b502c,8 +34b502d,f4 +34b502e,7f +34b502f,50 +34b5030,8 +34b5031,f1 +34b5032,3e +34b5033,80 +34b5034,a +34b5035,d0 +34b5036,c +34b5037,d5 +34b5038,6e +34b5039,a0 +34b503a,4 +34b503b,ce +34b503c,fc +34b503d,20 +34b5040,ae +34b5041,50 +34b5044,c +34b5045,80 +34b5052,5f +34b5053,fe +34b5054,eb +34b5055,20 +34b5056,5f +34b5057,71 +34b5058,7e +34b5059,b0 +34b505a,5f +34b505b,70 +34b505c,c +34b505d,d0 +34b505e,5f +34b505f,71 +34b5060,6e +34b5061,a0 +34b5062,5f +34b5063,ff +34b5064,ea +34b5066,5f +34b5067,72 +34b5068,ae +34b5069,40 +34b506a,5f +34b506b,70 34b506c,d -34b506d,90 -34b506e,8 -34b506f,e1 -34b5070,5e -34b5071,40 -34b5072,2 -34b5073,e7 -34b5074,ad -34b5077,cb -34b5078,ca -34b507b,9d -34b507c,e6 -34b507f,3e -34b5080,d0 -34b5096,e8 -34b5099,ad -34b509a,da -34b509d,cb -34b509e,cb -34b50a1,da -34b50a2,ac -34b50a3,e -34b50a4,c0 -34b50a5,e8 -34b50a6,8d -34b50a7,6d -34b50a8,e1 -34b50a9,e5 -34b50aa,6e -34b50ab,9b -34b50ac,d8 -34b50ad,e0 -34b50ae,1e -34b50af,c8 -34b50b0,ac -34b50b1,d0 -34b50b2,d -34b50b3,e3 -34b50b4,7e -34b50b5,c0 -34b50b6,c -34b50b7,d0 -34b50b8,e -34b50b9,a0 -34b50ce,6e -34b50cf,70 -34b50d0,7 -34b50d1,e7 -34b50d2,a -34b50d3,d2 -34b50d4,1d -34b50d5,b0 -34b50d6,2 -34b50d7,da -34b50d8,ad -34b50d9,20 -34b50db,7e -34b50dc,e7 -34b50df,3e -34b50e0,e2 -34b50e3,bd -34b50e4,da -34b50e6,7 -34b50e7,e6 -34b50e8,7e -34b50e9,60 -34b50ea,3e -34b50eb,a0 -34b50ec,b -34b50ed,d0 -34b50ee,bd -34b50ef,20 -34b50f0,4 -34b50f1,e9 -34b5106,ae -34b5107,20 -34b5108,5 -34b5109,e8 -34b510a,2d -34b510b,a0 -34b510c,c -34b510d,c0 -34b510e,7 -34b510f,e5 -34b5110,7e -34b5111,50 -34b5113,cc -34b5114,da -34b5117,4e -34b5118,d2 -34b511b,d -34b511c,b0 -34b511f,d -34b5120,b0 -34b5123,d -34b5124,b0 -34b5127,d -34b5128,b0 -34b513e,e -34b513f,ff -34b5140,ff -34b5141,f8 -34b5144,b -34b5145,d3 -34b5148,7e -34b5149,70 -34b514b,3 -34b514c,ea -34b514f,b -34b5150,d1 -34b5153,8e -34b5154,50 -34b5156,4 -34b5157,e9 -34b515a,c -34b515b,c0 -34b515e,1f -34b515f,ff -34b5160,ff -34b5161,fa -34b516f,4f -34b5170,fc -34b5173,4f -34b5174,50 -34b5177,4f -34b5178,50 -34b517b,4f -34b517c,50 -34b517f,4f -34b5180,50 -34b5183,4f -34b5184,50 -34b5187,4f -34b5188,50 -34b518b,4f -34b518c,50 -34b518f,4f -34b5190,50 -34b5193,4f -34b5194,50 -34b5197,4f -34b5198,50 -34b519b,4f -34b519c,fc -34b51ae,6e -34b51af,50 -34b51b2,c -34b51b3,b0 -34b51b6,7 -34b51b7,e3 -34b51bb,da -34b51bf,9e -34b51c0,20 -34b51c3,1e -34b51c4,90 -34b51c7,a -34b51c8,d0 -34b51cb,3 -34b51cc,e8 -34b51d0,bc -34b51d4,4e -34b51d5,60 -34b51d8,b -34b51d9,c0 -34b51df,df -34b51e0,e0 -34b51e3,8 -34b51e4,e0 -34b51e7,8 -34b51e8,e0 -34b51eb,8 -34b51ec,e0 -34b51ef,8 -34b51f0,e0 -34b51f3,8 -34b51f4,e0 -34b51f7,8 -34b51f8,e0 -34b51fb,8 -34b51fc,e0 -34b51ff,8 -34b5200,e0 -34b5203,8 -34b5204,e0 -34b5207,8 -34b5208,e0 -34b520b,df -34b520c,e0 -34b521f,5e -34b5220,d2 -34b5223,dc -34b5224,db -34b5226,a -34b5227,d2 -34b5228,5e -34b5229,80 -34b522a,7e -34b522b,50 -34b522c,7 -34b522d,e5 -34b5282,ff -34b5283,ff -34b5284,ff -34b5285,fd -34b528a,2 -34b528b,ca -34b528f,2c -34b5290,90 -34b52ce,5 -34b52cf,ce -34b52d0,eb -34b52d1,10 -34b52d2,b -34b52d3,93 -34b52d4,6d -34b52d5,a0 -34b52d8,b -34b52d9,c0 -34b52da,8 -34b52db,de -34b52dc,ff -34b52dd,c0 -34b52de,3e -34b52df,93 -34b52e0,b -34b52e1,d0 -34b52e2,4f -34b52e3,82 -34b52e4,7e -34b52e5,d0 -34b52e6,a -34b52e7,ee -34b52e8,db -34b52e9,d0 -34b52f6,d -34b52f7,90 -34b52fa,d -34b52fb,90 -34b52fe,d -34b52ff,90 -34b5302,d -34b5303,90 -34b5306,d -34b5307,bd -34b5308,ec -34b5309,40 -34b530a,d -34b530b,e6 -34b530c,5d -34b530d,c0 -34b530e,d -34b530f,b0 -34b5310,8 -34b5311,e0 -34b5312,d -34b5313,a0 -34b5314,7 -34b5315,f2 -34b5316,d -34b5317,b0 -34b5318,8 -34b5319,e0 -34b531a,d -34b531b,e6 -34b531c,4d -34b531d,b0 -34b531e,d -34b531f,bd -34b5320,ec -34b5321,40 -34b533f,8d -34b5340,ed -34b5341,70 -34b5342,7 -34b5343,e9 -34b5344,36 -34b5345,a0 -34b5346,c -34b5347,c0 -34b534a,d -34b534b,b0 -34b534e,c -34b534f,c0 -34b5352,7 -34b5353,e9 -34b5354,36 -34b5355,a0 -34b5357,8d -34b5358,ed -34b5359,70 -34b5368,b -34b5369,c0 -34b536c,b -34b536d,c0 -34b5370,b -34b5371,c0 -34b5374,b -34b5375,c0 -34b5376,5 -34b5377,de -34b5378,dc -34b5379,c0 -34b537a,d -34b537b,c4 -34b537c,8e -34b537d,c0 -34b537e,5f -34b537f,60 -34b5380,c -34b5381,c0 -34b5382,7f -34b5383,30 -34b5384,b -34b5385,c0 -34b5386,5f -34b5387,60 -34b5388,c -34b5389,c0 -34b538a,d -34b538b,c4 -34b538c,8e -34b538d,c0 -34b538e,5 -34b538f,de -34b5390,dc -34b5391,c0 -34b53ae,3 -34b53af,be -34b53b0,ec -34b53b1,30 -34b53b2,c -34b53b3,d5 -34b53b4,4c -34b53b5,c0 +34b506d,b0 +34b506e,5f +34b506f,70 +34b5070,8 +34b5071,e5 +34b5072,5f +34b5073,70 +34b5075,db +34b508a,6 +34b508b,ce +34b508c,eb +34b508d,30 +34b508e,d +34b508f,c4 +34b5090,5a +34b5091,90 +34b5092,4f +34b5093,60 +34b5096,e +34b5097,c6 +34b509a,5 +34b509b,ce +34b509c,eb +34b509d,40 +34b50a0,6c +34b50a1,c0 +34b50a4,8 +34b50a5,e0 +34b50a6,c +34b50a7,73 +34b50a8,5c +34b50a9,d0 +34b50aa,8 +34b50ab,de +34b50ac,ec +34b50ad,50 +34b50c2,cf +34b50c3,ff +34b50c4,ff +34b50c5,fb +34b50c7,d +34b50c8,b0 +34b50cb,d +34b50cc,b0 +34b50cf,d +34b50d0,b0 +34b50d3,d +34b50d4,b0 +34b50d7,d +34b50d8,b0 +34b50db,d +34b50dc,b0 +34b50df,d +34b50e0,b0 +34b50e3,d +34b50e4,b0 +34b50fa,4f +34b50fb,70 +34b50fc,9 +34b50fd,e0 +34b50fe,4f +34b50ff,70 +34b5100,9 +34b5101,e0 +34b5102,4f +34b5103,70 +34b5104,9 +34b5105,e0 +34b5106,4f +34b5107,70 +34b5108,9 +34b5109,e0 +34b510a,4f +34b510b,70 +34b510c,9 +34b510d,e0 +34b510e,3f +34b510f,70 +34b5110,9 +34b5111,e0 +34b5112,2e +34b5113,70 +34b5114,a +34b5115,d0 +34b5116,d +34b5117,c4 +34b5118,5d +34b5119,c0 +34b511a,5 +34b511b,ce +34b511c,ec +34b511d,40 +34b5132,ad +34b5134,3 +34b5135,e8 +34b5136,6f +34b5137,50 +34b5138,8 +34b5139,e3 +34b513a,e +34b513b,90 +34b513c,b +34b513d,c0 +34b513e,b +34b513f,c0 +34b5140,d +34b5141,90 +34b5142,8 +34b5143,e1 +34b5144,5e +34b5145,40 +34b5146,2 +34b5147,e7 +34b5148,ad +34b514b,cb +34b514c,ca +34b514f,9d +34b5150,e6 +34b5153,3e +34b5154,d0 +34b516a,e8 +34b516d,ad +34b516e,da +34b5171,cb +34b5172,cb +34b5175,da +34b5176,ac +34b5177,e +34b5178,c0 +34b5179,e8 +34b517a,8d +34b517b,6d +34b517c,e1 +34b517d,e5 +34b517e,6e +34b517f,9b +34b5180,d8 +34b5181,e0 +34b5182,1e +34b5183,c8 +34b5184,ac +34b5185,d0 +34b5186,d +34b5187,e3 +34b5188,7e +34b5189,c0 +34b518a,c +34b518b,d0 +34b518c,e +34b518d,a0 +34b51a2,6e +34b51a3,70 +34b51a4,7 +34b51a5,e7 +34b51a6,a +34b51a7,d2 +34b51a8,1d +34b51a9,b0 +34b51aa,2 +34b51ab,da +34b51ac,ad +34b51ad,20 +34b51af,7e +34b51b0,e7 +34b51b3,3e +34b51b4,e2 +34b51b7,bd +34b51b8,da +34b51ba,7 +34b51bb,e6 +34b51bc,7e +34b51bd,60 +34b51be,3e +34b51bf,a0 +34b51c0,b +34b51c1,d0 +34b51c2,bd +34b51c3,20 +34b51c4,4 +34b51c5,e9 +34b51da,ae +34b51db,20 +34b51dc,5 +34b51dd,e8 +34b51de,2d +34b51df,a0 +34b51e0,c +34b51e1,c0 +34b51e2,7 +34b51e3,e5 +34b51e4,7e +34b51e5,50 +34b51e7,cc +34b51e8,da +34b51eb,4e +34b51ec,d2 +34b51ef,d +34b51f0,b0 +34b51f3,d +34b51f4,b0 +34b51f7,d +34b51f8,b0 +34b51fb,d +34b51fc,b0 +34b5212,e +34b5213,ff +34b5214,ff +34b5215,f8 +34b5218,b +34b5219,d3 +34b521c,7e +34b521d,70 +34b521f,3 +34b5220,ea +34b5223,b +34b5224,d1 +34b5227,8e +34b5228,50 +34b522a,4 +34b522b,e9 +34b522e,c +34b522f,c0 +34b5232,1f +34b5233,ff +34b5234,ff +34b5235,fa +34b5243,4f +34b5244,fc +34b5247,4f +34b5248,50 +34b524b,4f +34b524c,50 +34b524f,4f +34b5250,50 +34b5253,4f +34b5254,50 +34b5257,4f +34b5258,50 +34b525b,4f +34b525c,50 +34b525f,4f +34b5260,50 +34b5263,4f +34b5264,50 +34b5267,4f +34b5268,50 +34b526b,4f +34b526c,50 +34b526f,4f +34b5270,fc +34b5282,6e +34b5283,50 +34b5286,c +34b5287,b0 +34b528a,7 +34b528b,e3 +34b528f,da +34b5293,9e +34b5294,20 +34b5297,1e +34b5298,90 +34b529b,a +34b529c,d0 +34b529f,3 +34b52a0,e8 +34b52a4,bc +34b52a8,4e +34b52a9,60 +34b52ac,b +34b52ad,c0 +34b52b3,df +34b52b4,e0 +34b52b7,8 +34b52b8,e0 +34b52bb,8 +34b52bc,e0 +34b52bf,8 +34b52c0,e0 +34b52c3,8 +34b52c4,e0 +34b52c7,8 +34b52c8,e0 +34b52cb,8 +34b52cc,e0 +34b52cf,8 +34b52d0,e0 +34b52d3,8 +34b52d4,e0 +34b52d7,8 +34b52d8,e0 +34b52db,8 +34b52dc,e0 +34b52df,df +34b52e0,e0 +34b52f3,5e +34b52f4,d2 +34b52f7,dc +34b52f8,db +34b52fa,a +34b52fb,d2 +34b52fc,5e +34b52fd,80 +34b52fe,7e +34b52ff,50 +34b5300,7 +34b5301,e5 +34b5356,ff +34b5357,ff +34b5358,ff +34b5359,fd +34b535e,2 +34b535f,ca +34b5363,2c +34b5364,90 +34b53a2,5 +34b53a3,ce +34b53a4,eb +34b53a5,10 +34b53a6,b +34b53a7,93 +34b53a8,6d +34b53a9,a0 +34b53ac,b +34b53ad,c0 +34b53ae,8 +34b53af,de +34b53b0,ff +34b53b1,c0 +34b53b2,3e +34b53b3,93 +34b53b4,b +34b53b5,d0 34b53b6,4f -34b53b7,60 -34b53b8,7 -34b53b9,e0 -34b53ba,6f -34b53bb,ff -34b53bc,ff -34b53bd,f3 -34b53be,4f -34b53bf,50 -34b53c2,c -34b53c3,c5 -34b53c4,38 -34b53c5,c0 -34b53c6,3 -34b53c7,be -34b53c8,ec -34b53c9,60 -34b53d7,5 -34b53d8,de -34b53d9,d0 -34b53db,c -34b53dc,b2 -34b53df,d -34b53e0,90 -34b53e3,e -34b53e4,80 +34b53b7,82 +34b53b8,7e +34b53b9,d0 +34b53ba,a +34b53bb,ee +34b53bc,db +34b53bd,d0 +34b53ca,d +34b53cb,90 +34b53ce,d +34b53cf,90 +34b53d2,d +34b53d3,90 +34b53d6,d +34b53d7,90 +34b53da,d +34b53db,bd +34b53dc,ec +34b53dd,40 +34b53de,d +34b53df,e6 +34b53e0,5d +34b53e1,c0 +34b53e2,d +34b53e3,b0 +34b53e4,8 +34b53e5,e0 34b53e6,d -34b53e7,ff -34b53e8,ff -34b53e9,d0 -34b53eb,e -34b53ec,80 -34b53ef,e -34b53f0,80 -34b53f3,e -34b53f4,80 -34b53f7,e -34b53f8,80 -34b53fb,e -34b53fc,80 -34b53ff,e -34b5400,80 -34b541e,5 -34b541f,de -34b5420,dc -34b5421,c0 -34b5422,d -34b5423,c4 -34b5424,8e -34b5425,c0 -34b5426,5f -34b5427,60 -34b5428,c -34b5429,c0 -34b542a,7f -34b542b,30 -34b542c,b -34b542d,c0 -34b542e,5f -34b542f,60 -34b5430,c -34b5431,c0 -34b5432,d -34b5433,c4 -34b5434,8e -34b5435,c0 -34b5436,5 -34b5437,de -34b5438,dc -34b5439,b0 -34b543c,c -34b543d,a0 -34b543e,9 -34b543f,94 -34b5440,7e -34b5441,60 -34b5442,4 -34b5443,ce -34b5444,e9 -34b5446,d -34b5447,a0 -34b544a,d -34b544b,a0 +34b53e7,a0 +34b53e8,7 +34b53e9,f2 +34b53ea,d +34b53eb,b0 +34b53ec,8 +34b53ed,e0 +34b53ee,d +34b53ef,e6 +34b53f0,4d +34b53f1,b0 +34b53f2,d +34b53f3,bd +34b53f4,ec +34b53f5,40 +34b5413,8d +34b5414,ed +34b5415,70 +34b5416,7 +34b5417,e9 +34b5418,36 +34b5419,a0 +34b541a,c +34b541b,c0 +34b541e,d +34b541f,b0 +34b5422,c +34b5423,c0 +34b5426,7 +34b5427,e9 +34b5428,36 +34b5429,a0 +34b542b,8d +34b542c,ed +34b542d,70 +34b543c,b +34b543d,c0 +34b5440,b +34b5441,c0 +34b5444,b +34b5445,c0 +34b5448,b +34b5449,c0 +34b544a,5 +34b544b,de +34b544c,dc +34b544d,c0 34b544e,d -34b544f,a0 -34b5452,d -34b5453,a0 -34b5456,d -34b5457,bd -34b5458,ed -34b5459,40 -34b545a,d -34b545b,e6 -34b545c,5d -34b545d,a0 +34b544f,c4 +34b5450,8e +34b5451,c0 +34b5452,5f +34b5453,60 +34b5454,c +34b5455,c0 +34b5456,7f +34b5457,30 +34b5458,b +34b5459,c0 +34b545a,5f +34b545b,60 +34b545c,c +34b545d,c0 34b545e,d -34b545f,b0 -34b5460,b +34b545f,c4 +34b5460,8e 34b5461,c0 -34b5462,d -34b5463,a0 -34b5464,b +34b5462,5 +34b5463,de +34b5464,dc 34b5465,c0 -34b5466,d -34b5467,a0 -34b5468,b -34b5469,c0 -34b546a,d -34b546b,a0 -34b546c,b -34b546d,c0 -34b546e,d -34b546f,a0 -34b5470,b -34b5471,c0 -34b547f,b -34b5480,c0 -34b548e,9 +34b5482,3 +34b5483,be +34b5484,ec +34b5485,30 +34b5486,c +34b5487,d5 +34b5488,4c +34b5489,c0 +34b548a,4f +34b548b,60 +34b548c,7 +34b548d,e0 +34b548e,6f 34b548f,ff -34b5490,c0 -34b5493,b -34b5494,c0 -34b5497,b -34b5498,c0 -34b549b,b -34b549c,c0 -34b549f,b -34b54a0,c0 -34b54a3,b -34b54a4,c0 -34b54a6,e -34b54a7,ff -34b54a8,ff -34b54a9,e0 -34b54b7,7 -34b54b8,e0 -34b54c6,7 -34b54c7,ff -34b54c8,e0 -34b54cb,7 -34b54cc,e0 -34b54cf,7 -34b54d0,e0 -34b54d3,7 -34b54d4,e0 -34b54d7,7 -34b54d8,e0 -34b54db,7 -34b54dc,e0 -34b54df,7 -34b54e0,e0 -34b54e3,7 -34b54e4,e0 -34b54e7,1b -34b54e8,d0 -34b54ea,d -34b54eb,fe -34b54ec,70 -34b54ee,b -34b54ef,c0 -34b54f2,b -34b54f3,c0 -34b54f6,b -34b54f7,c0 -34b54fa,b -34b54fb,c0 -34b54fe,b -34b54ff,c0 -34b5500,3d -34b5501,c2 -34b5502,b -34b5503,c3 -34b5504,db -34b5506,b -34b5507,dd -34b5508,c0 -34b550a,b -34b550b,fc -34b550c,e5 -34b550e,b -34b550f,d0 -34b5510,cd -34b5511,10 -34b5512,b -34b5513,c0 -34b5514,3d -34b5515,b0 -34b5516,b -34b5517,c0 -34b5518,7 -34b5519,e8 -34b5526,e -34b5527,ff -34b5528,40 -34b552b,5f -34b552c,40 -34b552f,5f -34b5530,40 -34b5533,5f -34b5534,40 -34b5537,5f -34b5538,40 -34b553b,5f -34b553c,40 -34b553f,5f -34b5540,40 -34b5543,5f -34b5544,40 -34b5547,4f -34b5548,50 -34b554b,e -34b554c,a0 -34b554f,8 -34b5550,ef -34b5551,b0 -34b556e,8d -34b556f,dd -34b5570,ae -34b5571,c0 -34b5572,8e -34b5573,4d -34b5574,c5 -34b5575,e4 -34b5576,8d -34b5577,c -34b5578,b0 -34b5579,e6 -34b557a,8d -34b557b,b -34b557c,a0 -34b557d,e7 -34b557e,8d -34b557f,b -34b5580,a0 -34b5581,e7 -34b5582,8d -34b5583,b -34b5584,a0 -34b5585,e7 -34b5586,8d -34b5587,b -34b5588,a0 -34b5589,e7 -34b55a6,d -34b55a7,bd -34b55a8,ed -34b55a9,40 -34b55aa,d -34b55ab,e6 -34b55ac,5d -34b55ad,a0 -34b55ae,d -34b55af,b0 -34b55b0,b -34b55b1,c0 -34b55b2,d -34b55b3,a0 -34b55b4,b -34b55b5,c0 -34b55b6,d -34b55b7,a0 -34b55b8,b -34b55b9,c0 -34b55ba,d -34b55bb,a0 -34b55bc,b -34b55bd,c0 +34b5490,ff +34b5491,f3 +34b5492,4f +34b5493,50 +34b5496,c +34b5497,c5 +34b5498,38 +34b5499,c0 +34b549a,3 +34b549b,be +34b549c,ec +34b549d,60 +34b54ab,5 +34b54ac,de +34b54ad,d0 +34b54af,c +34b54b0,b2 +34b54b3,d +34b54b4,90 +34b54b7,e +34b54b8,80 +34b54ba,d +34b54bb,ff +34b54bc,ff +34b54bd,d0 +34b54bf,e +34b54c0,80 +34b54c3,e +34b54c4,80 +34b54c7,e +34b54c8,80 +34b54cb,e +34b54cc,80 +34b54cf,e +34b54d0,80 +34b54d3,e +34b54d4,80 +34b54f2,5 +34b54f3,de +34b54f4,dc +34b54f5,c0 +34b54f6,d +34b54f7,c4 +34b54f8,8e +34b54f9,c0 +34b54fa,5f +34b54fb,60 +34b54fc,c +34b54fd,c0 +34b54fe,7f +34b54ff,30 +34b5500,b +34b5501,c0 +34b5502,5f +34b5503,60 +34b5504,c +34b5505,c0 +34b5506,d +34b5507,c4 +34b5508,8e +34b5509,c0 +34b550a,5 +34b550b,de +34b550c,dc +34b550d,b0 +34b5510,c +34b5511,a0 +34b5512,9 +34b5513,94 +34b5514,7e +34b5515,60 +34b5516,4 +34b5517,ce +34b5518,e9 +34b551a,d +34b551b,a0 +34b551e,d +34b551f,a0 +34b5522,d +34b5523,a0 +34b5526,d +34b5527,a0 +34b552a,d +34b552b,bd +34b552c,ed +34b552d,40 +34b552e,d +34b552f,e6 +34b5530,5d +34b5531,a0 +34b5532,d +34b5533,b0 +34b5534,b +34b5535,c0 +34b5536,d +34b5537,a0 +34b5538,b +34b5539,c0 +34b553a,d +34b553b,a0 +34b553c,b +34b553d,c0 +34b553e,d +34b553f,a0 +34b5540,b +34b5541,c0 +34b5542,d +34b5543,a0 +34b5544,b +34b5545,c0 +34b5553,b +34b5554,c0 +34b5562,9 +34b5563,ff +34b5564,c0 +34b5567,b +34b5568,c0 +34b556b,b +34b556c,c0 +34b556f,b +34b5570,c0 +34b5573,b +34b5574,c0 +34b5577,b +34b5578,c0 +34b557a,e +34b557b,ff +34b557c,ff +34b557d,e0 +34b558b,7 +34b558c,e0 +34b559a,7 +34b559b,ff +34b559c,e0 +34b559f,7 +34b55a0,e0 +34b55a3,7 +34b55a4,e0 +34b55a7,7 +34b55a8,e0 +34b55ab,7 +34b55ac,e0 +34b55af,7 +34b55b0,e0 +34b55b3,7 +34b55b4,e0 +34b55b7,7 +34b55b8,e0 +34b55bb,1b +34b55bc,d0 34b55be,d -34b55bf,a0 -34b55c0,b -34b55c1,c0 -34b55de,4 -34b55df,ce -34b55e0,eb -34b55e1,20 -34b55e2,c -34b55e3,d5 -34b55e4,6d -34b55e5,a0 -34b55e6,1e -34b55e7,70 -34b55e8,a -34b55e9,d0 -34b55ea,5f -34b55eb,60 -34b55ec,8 -34b55ed,e0 -34b55ee,1e -34b55ef,70 -34b55f0,a -34b55f1,d0 -34b55f2,c -34b55f3,d4 -34b55f4,6d -34b55f5,b0 -34b55f6,4 -34b55f7,ce -34b55f8,eb -34b55f9,20 -34b5616,d -34b5617,bd -34b5618,ec -34b5619,30 -34b561a,d -34b561b,e6 -34b561c,5d -34b561d,b0 -34b561e,d -34b561f,b0 -34b5620,9 -34b5621,e0 -34b5622,d -34b5623,a0 -34b5624,7 -34b5625,e0 -34b5626,d -34b5627,b0 -34b5628,8 -34b5629,e0 -34b562a,d -34b562b,e6 -34b562c,5d -34b562d,b0 -34b562e,d -34b562f,be -34b5630,ec -34b5631,40 -34b5632,d -34b5633,90 -34b5636,d -34b5637,90 -34b563a,d -34b563b,90 -34b564e,4 -34b564f,ce -34b5650,dc -34b5651,c0 -34b5652,c -34b5653,c4 -34b5654,7e -34b5655,c0 -34b5656,1e -34b5657,70 -34b5658,c -34b5659,c0 -34b565a,5f -34b565b,60 -34b565c,b -34b565d,c0 -34b565e,2e -34b565f,70 -34b5660,c -34b5661,c0 -34b5662,c -34b5663,c4 -34b5664,7e -34b5665,c0 -34b5666,5 -34b5667,ce -34b5668,db -34b5669,c0 -34b566c,a -34b566d,c0 -34b5670,a -34b5671,c0 -34b5674,a -34b5675,c0 -34b5687,cc -34b5688,de -34b5689,f9 -34b568b,ce -34b568c,83 -34b568f,cb -34b5693,ca -34b5697,ca -34b569b,ca -34b569f,ca -34b56be,4 -34b56bf,ce -34b56c0,ea -34b56c1,10 -34b56c2,b -34b56c3,d4 -34b56c4,5b -34b56c5,60 -34b56c6,b +34b55bf,fe +34b55c0,70 +34b55c2,b +34b55c3,c0 +34b55c6,b +34b55c7,c0 +34b55ca,b +34b55cb,c0 +34b55ce,b +34b55cf,c0 +34b55d2,b +34b55d3,c0 +34b55d4,3d +34b55d5,c2 +34b55d6,b +34b55d7,c3 +34b55d8,db +34b55da,b +34b55db,dd +34b55dc,c0 +34b55de,b +34b55df,fc +34b55e0,e5 +34b55e2,b +34b55e3,d0 +34b55e4,cd +34b55e5,10 +34b55e6,b +34b55e7,c0 +34b55e8,3d +34b55e9,b0 +34b55ea,b +34b55eb,c0 +34b55ec,7 +34b55ed,e8 +34b55fa,e +34b55fb,ff +34b55fc,40 +34b55ff,5f +34b5600,40 +34b5603,5f +34b5604,40 +34b5607,5f +34b5608,40 +34b560b,5f +34b560c,40 +34b560f,5f +34b5610,40 +34b5613,5f +34b5614,40 +34b5617,5f +34b5618,40 +34b561b,4f +34b561c,50 +34b561f,e +34b5620,a0 +34b5623,8 +34b5624,ef +34b5625,b0 +34b5642,8d +34b5643,dd +34b5644,ae +34b5645,c0 +34b5646,8e +34b5647,4d +34b5648,c5 +34b5649,e4 +34b564a,8d +34b564b,c +34b564c,b0 +34b564d,e6 +34b564e,8d +34b564f,b +34b5650,a0 +34b5651,e7 +34b5652,8d +34b5653,b +34b5654,a0 +34b5655,e7 +34b5656,8d +34b5657,b +34b5658,a0 +34b5659,e7 +34b565a,8d +34b565b,b +34b565c,a0 +34b565d,e7 +34b567a,d +34b567b,bd +34b567c,ed +34b567d,40 +34b567e,d +34b567f,e6 +34b5680,5d +34b5681,a0 +34b5682,d +34b5683,b0 +34b5684,b +34b5685,c0 +34b5686,d +34b5687,a0 +34b5688,b +34b5689,c0 +34b568a,d +34b568b,a0 +34b568c,b +34b568d,c0 +34b568e,d +34b568f,a0 +34b5690,b +34b5691,c0 +34b5692,d +34b5693,a0 +34b5694,b +34b5695,c0 +34b56b2,4 +34b56b3,ce +34b56b4,eb +34b56b5,20 +34b56b6,c +34b56b7,d5 +34b56b8,6d +34b56b9,a0 +34b56ba,1e +34b56bb,70 +34b56bc,a +34b56bd,d0 +34b56be,5f +34b56bf,60 +34b56c0,8 +34b56c1,e0 +34b56c2,1e +34b56c3,70 +34b56c4,a +34b56c5,d0 +34b56c6,c 34b56c7,d4 -34b56ca,3 -34b56cb,bd -34b56cc,db +34b56c8,6d +34b56c9,b0 +34b56ca,4 +34b56cb,ce +34b56cc,eb 34b56cd,20 -34b56d0,4d -34b56d1,a0 -34b56d2,b -34b56d3,94 -34b56d4,5e -34b56d5,a0 -34b56d6,5 -34b56d7,ce -34b56d8,eb -34b56d9,20 -34b56ef,8e -34b56f3,8e -34b56f6,6f -34b56f7,ff -34b56f8,ff -34b56f9,b0 -34b56fb,8e -34b56ff,8e -34b5703,8e -34b5707,8e -34b570b,6e -34b570c,70 -34b570f,b -34b5710,ef -34b5711,b0 -34b572e,d -34b572f,a0 +34b56ea,d +34b56eb,bd +34b56ec,ec +34b56ed,30 +34b56ee,d +34b56ef,e6 +34b56f0,5d +34b56f1,b0 +34b56f2,d +34b56f3,b0 +34b56f4,9 +34b56f5,e0 +34b56f6,d +34b56f7,a0 +34b56f8,7 +34b56f9,e0 +34b56fa,d +34b56fb,b0 +34b56fc,8 +34b56fd,e0 +34b56fe,d +34b56ff,e6 +34b5700,5d +34b5701,b0 +34b5702,d +34b5703,be +34b5704,ec +34b5705,40 +34b5706,d +34b5707,90 +34b570a,d +34b570b,90 +34b570e,d +34b570f,90 +34b5722,4 +34b5723,ce +34b5724,dc +34b5725,c0 +34b5726,c +34b5727,c4 +34b5728,7e +34b5729,c0 +34b572a,1e +34b572b,70 +34b572c,c +34b572d,c0 +34b572e,5f +34b572f,60 34b5730,b 34b5731,c0 -34b5732,d -34b5733,a0 -34b5734,b +34b5732,2e +34b5733,70 +34b5734,c 34b5735,c0 -34b5736,d -34b5737,a0 -34b5738,b +34b5736,c +34b5737,c4 +34b5738,7e 34b5739,c0 -34b573a,d -34b573b,a0 -34b573c,b +34b573a,5 +34b573b,ce +34b573c,db 34b573d,c0 -34b573e,d -34b573f,a0 -34b5740,b +34b5740,a 34b5741,c0 -34b5742,b -34b5743,d4 -34b5744,7e +34b5744,a 34b5745,c0 -34b5746,5 -34b5747,de -34b5748,db +34b5748,a 34b5749,c0 -34b5766,6e -34b5767,30 -34b5768,7 -34b5769,e3 -34b576a,d -34b576b,90 -34b576c,b -34b576d,c0 -34b576e,a -34b576f,d0 -34b5770,1e -34b5771,80 -34b5772,5 -34b5773,e4 -34b5774,8e -34b5775,20 -34b5777,da -34b5778,cb -34b577b,9d -34b577c,e7 -34b577f,3e -34b5780,e0 -34b579e,e8 -34b57a1,ac -34b57a2,ca -34b57a5,ca -34b57a6,ac -34b57a7,d -34b57a8,b0 -34b57a9,e7 -34b57aa,6e -34b57ab,3d -34b57ac,d5 -34b57ad,e2 -34b57ae,e -34b57af,ab -34b57b0,ca -34b57b1,d0 -34b57b2,c -34b57b3,e7 -34b57b4,9e -34b57b5,b0 -34b57b6,a -34b57b7,e1 -34b57b8,5f -34b57b9,80 -34b57d6,3d -34b57d7,a0 -34b57d8,b -34b57d9,c0 -34b57da,6 -34b57db,e6 -34b57dc,9e -34b57dd,40 -34b57df,9e -34b57e0,e7 -34b57e3,2e -34b57e4,d0 -34b57e7,cc -34b57e8,da -34b57ea,9 -34b57eb,e4 -34b57ec,6e -34b57ed,70 -34b57ee,6e -34b57ef,70 -34b57f0,9 -34b57f1,e4 -34b580e,6e -34b580f,50 -34b5810,5 -34b5811,e5 +34b575b,cc +34b575c,de +34b575d,f9 +34b575f,ce +34b5760,83 +34b5763,cb +34b5767,ca +34b576b,ca +34b576f,ca +34b5773,ca +34b5792,4 +34b5793,ce +34b5794,ea +34b5795,10 +34b5796,b +34b5797,d4 +34b5798,5b +34b5799,60 +34b579a,b +34b579b,d4 +34b579e,3 +34b579f,bd +34b57a0,db +34b57a1,20 +34b57a4,4d +34b57a5,a0 +34b57a6,b +34b57a7,94 +34b57a8,5e +34b57a9,a0 +34b57aa,5 +34b57ab,ce +34b57ac,eb +34b57ad,20 +34b57c3,8e +34b57c7,8e +34b57ca,6f +34b57cb,ff +34b57cc,ff +34b57cd,b0 +34b57cf,8e +34b57d3,8e +34b57d7,8e +34b57db,8e +34b57df,6e +34b57e0,70 +34b57e3,b +34b57e4,ef +34b57e5,b0 +34b5802,d +34b5803,a0 +34b5804,b +34b5805,c0 +34b5806,d +34b5807,a0 +34b5808,b +34b5809,c0 +34b580a,d +34b580b,a0 +34b580c,b +34b580d,c0 +34b580e,d +34b580f,a0 +34b5810,b +34b5811,c0 34b5812,d 34b5813,a0 34b5814,b -34b5815,d0 -34b5816,9 -34b5817,e0 -34b5818,e -34b5819,90 -34b581a,3 -34b581b,e7 -34b581c,8e -34b581d,30 -34b581f,cc -34b5820,cc -34b5823,7e -34b5824,e7 -34b5827,d -34b5828,e0 -34b582b,d -34b582c,a0 -34b582f,8e -34b5830,50 -34b5832,d -34b5833,ea -34b5846,b -34b5847,ff -34b5848,ff -34b5849,c0 -34b584c,5e -34b584d,70 -34b584f,3 -34b5850,d9 -34b5853,c -34b5854,b0 -34b5857,bd -34b5858,20 -34b585a,9 -34b585b,e4 -34b585e,d -34b585f,ff -34b5860,ff -34b5861,c0 -34b586f,6 -34b5870,de -34b5871,a0 -34b5873,b -34b5874,d3 -34b5877,c -34b5878,b0 -34b587b,c +34b5815,c0 +34b5816,b +34b5817,d4 +34b5818,7e +34b5819,c0 +34b581a,5 +34b581b,de +34b581c,db +34b581d,c0 +34b583a,6e +34b583b,30 +34b583c,7 +34b583d,e3 +34b583e,d +34b583f,90 +34b5840,b +34b5841,c0 +34b5842,a +34b5843,d0 +34b5844,1e +34b5845,80 +34b5846,5 +34b5847,e4 +34b5848,8e +34b5849,20 +34b584b,da +34b584c,cb +34b584f,9d +34b5850,e7 +34b5853,3e +34b5854,e0 +34b5872,e8 +34b5875,ac +34b5876,ca +34b5879,ca +34b587a,ac +34b587b,d 34b587c,b0 -34b587f,5e -34b5880,a0 -34b5882,b -34b5883,fd -34b5884,20 -34b5887,7e -34b5888,90 -34b588b,d -34b588c,b0 -34b588f,c -34b5890,b0 -34b5893,c -34b5894,b0 -34b5897,b -34b5898,d4 -34b589b,5 -34b589c,de -34b589d,a0 -34b58a7,c -34b58a8,a0 -34b58ab,c -34b58ac,a0 -34b58af,c -34b58b0,a0 -34b58b3,c -34b58b4,a0 -34b58b7,c -34b58b8,a0 -34b58bb,c -34b58bc,a0 -34b58bf,c -34b58c0,a0 -34b58c3,c -34b58c4,a0 -34b58c7,c -34b58c8,a0 -34b58cb,c -34b58cc,a0 -34b58cf,c -34b58d0,a0 -34b58d3,c -34b58d4,a0 -34b58d7,c -34b58d8,a0 -34b58de,b -34b58df,ed -34b58e0,30 -34b58e3,4e -34b58e4,90 -34b58e7,d -34b58e8,a0 -34b58eb,c -34b58ec,a0 -34b58ef,b -34b58f0,c4 -34b58f3,5 -34b58f4,ef -34b58f5,a0 -34b58f7,b -34b58f8,d5 -34b58fb,c -34b58fc,b0 +34b587d,e7 +34b587e,6e +34b587f,3d +34b5880,d5 +34b5881,e2 +34b5882,e +34b5883,ab +34b5884,ca +34b5885,d0 +34b5886,c +34b5887,e7 +34b5888,9e +34b5889,b0 +34b588a,a +34b588b,e1 +34b588c,5f +34b588d,80 +34b58aa,3d +34b58ab,a0 +34b58ac,b +34b58ad,c0 +34b58ae,6 +34b58af,e6 +34b58b0,9e +34b58b1,40 +34b58b3,9e +34b58b4,e7 +34b58b7,2e +34b58b8,d0 +34b58bb,cc +34b58bc,da +34b58be,9 +34b58bf,e4 +34b58c0,6e +34b58c1,70 +34b58c2,6e +34b58c3,70 +34b58c4,9 +34b58c5,e4 +34b58e2,6e +34b58e3,50 +34b58e4,5 +34b58e5,e5 +34b58e6,d +34b58e7,a0 +34b58e8,b +34b58e9,d0 +34b58ea,9 +34b58eb,e0 +34b58ec,e +34b58ed,90 +34b58ee,3 +34b58ef,e7 +34b58f0,8e +34b58f1,30 +34b58f3,cc +34b58f4,cc +34b58f7,7e +34b58f8,e7 +34b58fb,d +34b58fc,e0 34b58ff,d 34b5900,a0 -34b5903,d -34b5904,a0 -34b5907,5e -34b5908,80 -34b590a,b -34b590b,ec -34b590c,20 -34b592e,5d -34b592f,ed -34b5930,83 -34b5931,a7 -34b5932,98 -34b5933,38 -34b5934,de -34b5935,c3 +34b5903,8e +34b5904,50 +34b5906,d +34b5907,ea +34b591a,b +34b591b,ff +34b591c,ff +34b591d,c0 +34b5920,5e +34b5921,70 +34b5923,3 +34b5924,d9 +34b5927,c +34b5928,b0 +34b592b,bd +34b592c,20 +34b592e,9 +34b592f,e4 +34b5932,d +34b5933,ff +34b5934,ff +34b5935,c0 +34b5943,6 +34b5944,de +34b5945,a0 +34b5947,b +34b5948,d3 +34b594b,c +34b594c,b0 +34b594f,c +34b5950,b0 +34b5953,5e +34b5954,a0 +34b5956,b +34b5957,fd +34b5958,20 +34b595b,7e +34b595c,90 +34b595f,d +34b5960,b0 +34b5963,c +34b5964,b0 +34b5967,c +34b5968,b0 +34b596b,b +34b596c,d4 +34b596f,5 +34b5970,de +34b5971,a0 +34b597b,c +34b597c,a0 +34b597f,c +34b5980,a0 +34b5983,c +34b5984,a0 +34b5987,c +34b5988,a0 +34b598b,c +34b598c,a0 +34b598f,c +34b5990,a0 +34b5993,c +34b5994,a0 +34b5997,c +34b5998,a0 +34b599b,c +34b599c,a0 +34b599f,c +34b59a0,a0 +34b59a3,c +34b59a4,a0 +34b59a7,c +34b59a8,a0 +34b59ab,c +34b59ac,a0 +34b59b2,b +34b59b3,ed +34b59b4,30 +34b59b7,4e +34b59b8,90 +34b59bb,d +34b59bc,a0 +34b59bf,c +34b59c0,a0 +34b59c3,b +34b59c4,c4 +34b59c7,5 +34b59c8,ef +34b59c9,a0 +34b59cb,b +34b59cc,d5 +34b59cf,c +34b59d0,b0 +34b59d3,d +34b59d4,a0 +34b59d7,d +34b59d8,a0 +34b59db,5e +34b59dc,80 +34b59de,b +34b59df,ec +34b59e0,20 +34b5a02,5d +34b5a03,ed +34b5a04,83 +34b5a05,a7 +34b5a06,98 +34b5a07,38 +34b5a08,de +34b5a09,c3 diff --git a/data/symbols.json b/data/symbols.json index 363c66634..1ee19ac87 100644 --- a/data/symbols.json +++ b/data/symbols.json @@ -4,7 +4,7 @@ "EXTENDED_ITEM_DATA": "03482008", "FAIRY_ITEMS": "03481C03", "FAIRY_OCARINA_ITEM": "03481C02", - "FONT_TEXTURE": "034B4486", + "FONT_TEXTURE": "034B455A", "INITIAL_SAVE_DATA": "03481800", "ITEM_OVERRIDES": "03481000", "ITEM_TABLE": "03482050", @@ -14,20 +14,20 @@ "PLAYER_ID": "03481C00", "PLAYER_OVERRIDE_DATA": "03482000", "TIME_TRAVEL_SAVED_EQUIPS": "0348201C", - "cfg_dungeon_info_enable": "034B4444", - "cfg_dungeon_info_mq_enable": "034B445C", - "cfg_dungeon_info_mq_need_map": "034B4458", - "cfg_dungeon_info_reward_need_altar": "034B4450", - "cfg_dungeon_info_reward_need_compass": "034B4454", - "cfg_dungeon_is_mq": "034B4478", - "cfg_dungeon_rewards": "034B4384", - "dungeon_count": "034B4448", - "dungeons": "034B43A8", - "font_sprite": "034B4344", - "heap_next": "034B444C", - "medal_colors": "034B4394", - "medals_sprite": "034B4364", - "quest_items_sprite": "034B4354", - "setup_db": "034B4468", - "stones_sprite": "034B4374" + "cfg_dungeon_info_enable": "034B4518", + "cfg_dungeon_info_mq_enable": "034B4530", + "cfg_dungeon_info_mq_need_map": "034B452C", + "cfg_dungeon_info_reward_need_altar": "034B4524", + "cfg_dungeon_info_reward_need_compass": "034B4528", + "cfg_dungeon_is_mq": "034B454C", + "cfg_dungeon_rewards": "034B4458", + "dungeon_count": "034B451C", + "dungeons": "034B447C", + "font_sprite": "034B4418", + "heap_next": "034B4520", + "medal_colors": "034B4468", + "medals_sprite": "034B4438", + "quest_items_sprite": "034B4428", + "setup_db": "034B453C", + "stones_sprite": "034B4448" } \ No newline at end of file From a98b22a83a700cd71dcc79a52a4febb1478f5c08 Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 11 Oct 2018 00:57:10 -0400 Subject: [PATCH 671/755] Make random prices more affordable. Change shopsanity option names --- Patches.py | 8 +++++--- Rom.py | 4 ++++ Settings.py | 30 ++++++++++++++---------------- version.py | 2 +- 4 files changed, 24 insertions(+), 20 deletions(-) diff --git a/Patches.py b/Patches.py index fb7bd1a84..f2e5de928 100644 --- a/Patches.py +++ b/Patches.py @@ -1299,9 +1299,11 @@ def write_save_table(rom): if world.shuffle_scrubs == 'low': rom.write_int16(None, 10) elif world.shuffle_scrubs == 'random': - rom.write_int16(None, random.randrange(10, 100)) - else: - rom.read_int16(rom.last_address) # just read instead of overwriting for regular + # this is a random value between 0-99 + # average value is ~33 rupees + rom.write_int16(None, int(random.betavariate(1, 2) * 99)) + else: # leave default price + rom.read_int16(None) rom.write_int16(None, 1) # Count rom.write_int32(None, scrub_item) # Item rom.write_int32(None, 0x80A74FF8) # Can_Buy_Func diff --git a/Rom.py b/Rom.py index 235bbdd0e..4baa24667 100644 --- a/Rom.py +++ b/Rom.py @@ -84,10 +84,14 @@ def seek_address(self, address): self.last_address = address def read_byte(self, address): + if address == None: + address = self.last_address self.last_address = address + 1 return self.buffer[address] def read_bytes(self, address, len): + if address == None: + address = self.last_address self.last_address = address + len return self.buffer[address : address + len] diff --git a/Settings.py b/Settings.py index 68dc244cb..3d33568b3 100644 --- a/Settings.py +++ b/Settings.py @@ -798,30 +798,28 @@ def parse_custom_navi_color(s): 'default': 'Off', 'options': { 'Off': 'off', - 'Low Prices': 'low', - 'Regular Prices': 'regular', - 'Random Prices': 'random', + 'On (Affordable)': 'low', + 'On (Expensive)': 'regular', + 'On (Random Prices)': 'random', }, 'tooltip':'''\ - Select how you want Deku Scrub Salesmen - to be shuffled: - - 'Off': Only the 3 Scrubs that give actual + 'Off': Only the 3 Scrubs that give unique items in the vanilla game (PoH, nut capacity, and stick capacity) will have random items. - 'Low Prices': All Scrubs will have random - items, but their prices will be reduced - to 10 rupees each. + 'Affordable': All Scrub prices will be + reduced to 10 rupees each. + + 'Expensive': All Scrub prices will be + their vanilla prices. This will require + spending over 1000 rupees on Scrubs. - 'Regular Prices': All Scrubs will have - random items and each of them will demand - their vanilla prices. + 'Random Prices': All Scrub prices will be + between 0-99 rupees. This will require + spending over 1000 rupees on Scrubs. - 'Random Prices': All Scrubs will have - random items, and their price will also - be random between 10-99 rupees. + The texts of the Scrubs are not updated. ''' }), Setting_Info('shopsanity', str, 3, True, diff --git a/version.py b/version.py index 819144902..f45d8f86e 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.20.29 f.LUM' +__version__ = '2.20.30 f.LUM' From 5caa434babfd85ac64f900ca36bdafa507d92113 Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 11 Oct 2018 01:04:15 -0400 Subject: [PATCH 672/755] Fix co-op seeds sometimes placing keys in the wrong world (nonkeysanity) --- BaseClasses.py | 3 +-- version.py | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 3eb1c11d6..f22d91e7b 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -788,8 +788,7 @@ def __init__(self, name='', address=None, address2=None, default=None, type='Che self.price = None def can_fill(self, state, item, check_access=True): - return self.always_allow(item, self) or (self.parent_region.can_fill(item) and self.item_rule(item) and (not check_access or self.can_reach(state))) - + return self.parent_region.can_fill(item) and (self.always_allow(item, state) or (self.item_rule(item) and (not check_access or state.can_reach(self)))) def can_fill_fast(self, item): return self.item_rule(item) diff --git a/version.py b/version.py index f45d8f86e..9df202388 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.20.30 f.LUM' +__version__ = '2.21.1 f.LUM' From b49cf6c48eafba0278de0f7706a804ea670ac669 Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 11 Oct 2018 01:30:19 -0400 Subject: [PATCH 673/755] Move the GC MQ ZL Chest back for the same reason as vanilla --- Patches.py | 3 ++- data/mqu.json | 2 +- version.py | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Patches.py b/Patches.py index f2e5de928..e9a72ae3d 100644 --- a/Patches.py +++ b/Patches.py @@ -1341,7 +1341,8 @@ def write_save_table(rom): if world.correct_chest_sizes: update_chest_sizes(rom, override_table) # Move Ganon's Castle's Zelda's Lullaby Chest back so is reachable if large - rom.write_int16(0x321B176, 0xFC40) # original 0xFC48 + if not world.dungeon_mq['GC']: + rom.write_int16(0x321B176, 0xFC40) # original 0xFC48 # give dungeon items the correct messages message_patch_for_dungeon_items(messages, shop_items, world) diff --git a/data/mqu.json b/data/mqu.json index 053f7c107..7e186e154 100644 --- a/data/mqu.json +++ b/data/mqu.json @@ -37987,7 +37987,7 @@ "0038 F90F FF10 FC28 0000 2B61 0000 FFFF", "0038 F9EE FF10 FD66 0000 CFA5 0000 FFFF", "0025 F957 FF10 FD30 0000 4C17 0000 FFFE", - "000A F7D5 FF7E FC43 0000 8000 0011 8904", + "000A F7D5 FF7E FC40 0000 8000 0011 8904", "012E F77D FF14 FCB6 0000 4000 0001 1C91", "0112 F74B FF10 FCBB 0000 0000 0000 3FF6" ] diff --git a/version.py b/version.py index 4a8cc3450..40872cc11 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.21.2 f.LUM' +__version__ = '2.21.3 f.LUM' From 13fd8c92d3abfff73096f620256aaf027d111197 Mon Sep 17 00:00:00 2001 From: Nick Langille Date: Thu, 11 Oct 2018 03:22:22 -0400 Subject: [PATCH 674/755] Draw file select hash --- ASM/build/asm_symbols.txt | 112 +- ASM/build/bundle.o | Bin 10320 -> 11068 bytes ASM/build/c_symbols.txt | 70 +- ASM/c/file_select.c | 84 + ASM/c/gfx.c | 17 +- ASM/c/gfx.h | 1 + ASM/c/z64.h | 2 + data/rom_patch.txt | 12767 +++++++++++++++++++----------------- data/symbols.json | 38 +- 9 files changed, 6788 insertions(+), 6303 deletions(-) diff --git a/ASM/build/asm_symbols.txt b/ASM/build/asm_symbols.txt index c191997d1..d1b6cedf1 100644 --- a/ASM/build/asm_symbols.txt +++ b/ASM/build/asm_symbols.txt @@ -1011,58 +1011,66 @@ 804037D8 @@overwrite_type 804037E0 @@return 804037E8 .byt:0868 -80405000 draw_file_select_hash,000000D4 -804050D4 disp_buf_init,00000018 -804050EC sprite_bytes_per_tile,00000028 -80405114 sprite_bytes,00000030 -80405144 sprite_load,000001A0 -804052E4 sprite_draw,000000F0 -804053D4 draw_setup,000001DC -804055B0 gfx_init,00000148 -804056F8 heap_init,00000014 -8040570C heap_alloc,00000034 -80405740 file_init,00000044 -80405784 c_init,0000002C -804057B0 c_after_game_state_update,00000088 -80405838 draw_dungeon_info,000009B8 -804061F0 text_init,0000002C -8040621C text_print,000000A8 -804062C4 text_flush,00000148 -80406418 .byt:0010 -80406418 font_sprite -80406428 .byt:0010 -80406428 quest_items_sprite -80406438 .byt:0010 -80406438 medals_sprite -80406448 .byt:0010 -80406448 stones_sprite -80406458 .byt:000E -80406458 cfg_dungeon_rewards -80406468 .byt:0012 -80406468 medal_colors -8040647C .byt:009C -8040647C dungeons -80406518 .byt:0004 -80406518 cfg_dungeon_info_enable -8040651C .byt:0004 -8040651C dungeon_count -80406520 .byt:0004 -80406520 heap_next -80406524 .byt:0004 -80406524 cfg_dungeon_info_reward_need_altar -80406528 .byt:0004 -80406528 cfg_dungeon_info_reward_need_compass -8040652C .byt:0004 -8040652C cfg_dungeon_info_mq_need_map -80406530 .byt:0004 -80406530 cfg_dungeon_info_mq_enable -8040653C .byt:0010 -8040653C setup_db -8040654C .byt:000E -8040654C cfg_dungeon_is_mq -8040655A .byt:14C8 -8040655A FONT_TEXTURE -80407A22 .byt:85DE +80405000 draw_file_select_hash,00000234 +80405234 disp_buf_init,00000018 +8040524C sprite_bytes_per_tile,00000028 +80405274 sprite_bytes,00000030 +804052A4 sprite_load,000001A0 +80405444 sprite_draw,000000F0 +80405534 draw_setup,000001DC +80405710 gfx_init,00000178 +80405888 heap_init,00000014 +8040589C heap_alloc,00000034 +804058D0 file_init,00000044 +80405914 c_init,0000002C +80405940 c_after_game_state_update,00000088 +804059C8 draw_dungeon_info,000009B8 +80406380 text_init,0000002C +804063AC text_print,000000A8 +80406454 text_flush,00000148 +804065A8 .byt:0040 +804065A8 hash_symbols +804065E8 .byt:0010 +804065E8 font_sprite +804065F8 .byt:0010 +804065F8 quest_items_sprite +80406608 .byt:0010 +80406608 items_sprite +80406618 .byt:0010 +80406618 medals_sprite +80406628 .byt:0010 +80406628 stones_sprite +80406638 .byt:000E +80406638 cfg_dungeon_rewards +80406648 .byt:0012 +80406648 medal_colors +8040665C .byt:009C +8040665C dungeons +804066F8 .byt:0008 +804066F8 hash_sprites +80406700 .byt:0004 +80406700 cfg_dungeon_info_enable +80406704 .byt:0004 +80406704 dungeon_count +80406708 .byt:0004 +80406708 cfg_file_select_hash +8040670C .byt:0004 +8040670C heap_next +80406710 .byt:0004 +80406710 cfg_dungeon_info_reward_need_altar +80406714 .byt:0004 +80406714 cfg_dungeon_info_reward_need_compass +80406718 .byt:0004 +80406718 cfg_dungeon_info_mq_need_map +8040671C .byt:0004 +8040671C cfg_dungeon_info_mq_enable +80406728 .byt:0010 +80406728 setup_db +80406738 .byt:000E +80406738 cfg_dungeon_is_mq +80406746 .byt:14C8 +80406746 FONT_TEXTURE +80407C0E .byt:83F2 80480000 DUMMY_ACTOR 80500000 C_HEAP  \ No newline at end of file diff --git a/ASM/build/bundle.o b/ASM/build/bundle.o index 7ed655975ba4907656b94524ed38ea22436487b9..4950f23dc3e0c02c1f55e9e0ddfe0d73c86942a3 100644 GIT binary patch delta 3972 zcmZ`*ZD?E98Gi1SW69Rnm2_<@iQ~wQY-_FOD4EiFtFo!KD29dM7B7V2VYjwhm3qXB z9mv`ac^@znOyzO25sC+5GbI$S^5%3k)Y<$aEB=umW|S?Auz8TNZp)7hyiryU?RoDx zat)&g9lhr{@7MFb=jiHg4{e-Z>?o%42}BHJAR~nsqV5VF7zPZr{^Wb7ioH)zZB=~O zeXDxC@@q^~euc5hyBMkb5*I4(V7PJA#18Lw9V-}gVRZ_-n(7DeeMeg;TJFq~~Bq2JNDiSixp*@!3G5J># zikDUO_lJ`Go=qM>qEbdOYyKHrr?~FPn*Wrw<86#&EL4Bn{U-WKJmV72xWqFq@r+A6 z;}Xxf#4|4Oj7vOY&klUuw@_Hi8h@$_uJdZ-dHgvZf7VIW=aY<`V%J~I^lwXi=7BHM zKVRlLEuHILM#`D0@Ajlt2Ar$)zlr1-ImgIZ9eHqV%p3MMv}QfL1J5JwT!|hJws!jJ zXu(@F&Yk7x6Gq(Gi4O2P8M|n-I@e;~iIE^#NB8MmO6rRSg(O~$EfDtmnhGoQ@Is0(LhNrIfYe*o0XPr0fzd5fq zeaqaeI@KgWWfHkFl4CGdjTgjJw6TuJK*!+`;=R<1b2>HT#blnm=wlRQ3jQn9C$o z);Pxen4^JaWVEXQE^egZBfud(x{Q0;;SBY;1NKic;4E=k>%Ss8PTc|HW!6P(T+w>k znv93I#@}In*CE6XNWyExH#wJx*<$0zT$eec8o$LOSs}im1MmsbU=!;jGB&uDn^Ggd zj$x5g;!C_g&^|{zulCh+f4%ub*>E8Hc!JnFq9ye%zQ(8LAzmf#buJjl zTLxMg*t<+A_y$j0@G7O?n?Rdj5^NKE8~BU_Cc%_o5<4#VLyaE-?P9-6Nxjdf_ctlI z?<2ufJ+G2)P&xXBR405FR4067EFJMp@zKY?z6Id(;%yvFR9 zi+5D~hF0J)#%V|bkBaO8T8gq*0TLp&fU^wLK*zHT-0*=S)JWz+q>&C;>KoIPf=Ref z@Gzy|F;!XPgsQahipH-g>}MY7uzyu`*uTz4iJYCE%#VrUHYEf3w}D>4B+x6E6?{(c zeM-S3cvA3(l!71Xz`Hu|J>YTb1E8cnu%YgTe^2EJuu#bp_=xAvOMn0satDH}R0stv zWf-)TVKAWx1(S+UFs%p$Gm22K)xAsz_USl1ia_w3A`o0r1cHM)E-M!T!7ZM@R35ye zH}2|0_jDpwlomp)RO~`ri(`nyieVCP4R>?`As`7JXu~~~fG6VK1xpA~Z;_DrS+gpEMFa7(=9Hhcr0vSuZdt{* zR#`rN)XLx%vMUPqd65QN<#9hhz#v2;n)_6-}=8?-Ad%)knJUU~0%D`rD31H_n9@Llw#ldD`vA0)Mt8F15`;w6R zO=;ChTN7%^>irRA*Tl}ab`u&G}1M2p4jmg;A=5yt3@x0JNg@gx-3G33 W>;b9&%!#Kun!8tsc~|#`o9KTzlk^V& delta 3193 zcmY*bTWC~Q6y0}bGINu8-FZYujmb2bm@&q7s$-3Gz+j@a;74k$SP%?0wbCluVvDrW z2{hGw3@E*Rw8f91L40ZRjifAs6Hz%cipJnEBQuR zin~Uum41x#IgN5WP9|jTEQ8 zlET!q^tfZ80e3mn<#yQD6UB@0UW8WzdS{mHc(^fB@+0R_NxOEsEt=`H142*bHF%2Y z=dHARI^B=YYw1%~#?3WS{uUcg#-S=1h>b|x5UH4!<<+_>8 zZZ#Sor!4uKxk1h=H6XeHiH{@GByT zW#FEq7a&JOlJg?gUd3->EsNpctq8)N#RzZ!hhWhxaX57SGq@wbMU5X9DcjK7IIE7Y zvFJUF!t<>$vY_ifi1?P^TUPuF#0+3m6+ggQ0i#~9rt!p$;9-;g1=zcWZ>6Mc7#d); zVUZmuD4_>)D&~$5Y`rMbFb%66u=ZmO2_>WaAG>jFgj#?fcYRsQt=q- zCtKi{&;%}8GzzROw?4<5PhG$`=6x6}z=X5lLy(MV{P%D_1Wqfyi#d;0<9+?O%%^BMOP1}JRR*VgT-wu8d{C4nzkhF#vachWkBI}5880(0OA{!7N#GBJe z+$YjPe8}K(a7d(;0mHB)oK<20mi|kMXEhMQC^&f22oBy-3!ynChR|(T=PSJp`9j$D zGqgEa`jMBIjR!7EsHB8JQy^3k*@8r&%jhfZ6_M4jb_>3$w7nubkjO^d4kWS%j367r z*+CopUanVRi6OX1JP%8J+ic8U;KuMu+4t0elVppUP>3yU%9@roUeRbt*0i1(NR@sh^%X&gGoql-f@g~ic9?mT{1d5g+}5OzF% z-|))ux{`-lV8s-0RG6c}oKaK2$(TUrk}2SfE1pn1ZSpt}#Fx;S7wLu|=O!%iEnMQn zw_$@ge`i4?MaLaj5}>?`cnOvm%6WE<3QHU???PhO6iysBg%fCbCV(GdY=k!)u3!lv zE{S;vd6KqbY|O)XV*aG`sH3QaUd1TH8!&m;yuHa2x_(C2uPL5Y41wgQP?+~fDr;Ju zq5%3?kp8OaWQv0L{ZCEm!Yw7DH6C$6@g0MaSK9D@4gZbUNZW_s2-+ds@w6i-NLvMk zb`DoE?ILbcSpJ-Cq0OR0w0$DaZs%l3poly_opa); // Call setup display list gSPDisplayList(db->p++, setup_db.buf); + int icon_count = 5; + int icon_size = 24; + int padding = 8; + int width = (icon_count * icon_size) + ((icon_count - 1) * padding); + int left = (Z64_SCREEN_WIDTH - width) / 2; + int top = 12; + + // Draw background + /* + gDPSetCombineMode(db->p++, G_CC_PRIMITIVE, G_CC_PRIMITIVE); + gDPSetPrimColor(db->p++, 0, 0, 0x00, 0x00, 0x00, 0xD0); + gSPTextureRectangle(db->p++, + bg_left<<2, bg_top<<2, + (bg_left + bg_width)<<2, (bg_top + bg_height)<<2, + 0, + 0, 0, + 1<<10, 1<<10); + */ + + gDPPipeSync(db->p++); + gDPSetCombineMode(db->p++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM); + gDPSetPrimColor(db->p++, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF); + + int hash = cfg_file_select_hash; + for (int i = 0; i < icon_count; i++) { + int sym_index = hash & 0x1F; + hash >>= 5; + hash_symbol_t *sym_desc = &(hash_symbols[sym_index]); + sprite_t *sym_sprite = hash_sprites[sym_desc->sprite_index]; + + sprite_load(db, sym_sprite, sym_desc->tile_index, 1); + sprite_draw(db, sym_sprite, 0, left, top, icon_size, icon_size); + + left += icon_size + padding; + } + // Fade out once a file is selected + gDPPipeSync(db->p++); gDPSetCombineMode(db->p++, G_CC_PRIMITIVE, G_CC_PRIMITIVE); gDPSetPrimColor(db->p++, 0, 0, 0x00, 0x00, 0x00, fade_out_alpha); gSPTextureRectangle(db->p++, diff --git a/ASM/c/gfx.c b/ASM/c/gfx.c index ab7ed7b78..3927a06bb 100644 --- a/ASM/c/gfx.c +++ b/ASM/c/gfx.c @@ -20,8 +20,13 @@ sprite_t medals_sprite = { G_IM_FMT_IA, G_IM_SIZ_8b, 1 }; +sprite_t items_sprite = { + NULL, 32, 32, 90, + G_IM_FMT_RGBA, G_IM_SIZ_32b, 4 +}; + sprite_t quest_items_sprite = { - NULL, 24, 24, 18, + NULL, 24, 24, 20, G_IM_FMT_RGBA, G_IM_SIZ_32b, 4 }; @@ -99,17 +104,23 @@ extern char FONT_TEXTURE; void gfx_init() { file_t title_static = { - NULL, 0x01A02000, 0x395C0 + NULL, z64_file_select_static_vaddr, z64_file_select_static_vsize }; file_init(&title_static); file_t icon_item_24_static = { - NULL, 0x00846000, 0xB400 + NULL, z64_icon_item_24_static_vaddr, z64_icon_item_24_static_vsize }; file_init(&icon_item_24_static); + file_t icon_item_static = { + NULL, z64_icon_item_static_vaddr, z64_icon_item_static_vsize + }; + file_init(&icon_item_static); + stones_sprite.buf = title_static.buf + 0x2A300; medals_sprite.buf = title_static.buf + 0x2980; + items_sprite.buf = icon_item_static.buf; quest_items_sprite.buf = icon_item_24_static.buf; int font_bytes = sprite_bytes(&font_sprite); diff --git a/ASM/c/gfx.h b/ASM/c/gfx.h index 282c8340e..8db392278 100644 --- a/ASM/c/gfx.h +++ b/ASM/c/gfx.h @@ -17,6 +17,7 @@ typedef struct { sprite_t stones_sprite; sprite_t medals_sprite; +sprite_t items_sprite; sprite_t quest_items_sprite; sprite_t font_sprite; diff --git a/ASM/c/z64.h b/ASM/c/z64.h index d936964cd..2b0104d02 100644 --- a/ASM/c/z64.h +++ b/ASM/c/z64.h @@ -1092,6 +1092,8 @@ typedef struct #define z64_icon_item_24_static_vsize 0x0000B400 #define z64_nes_font_static_vaddr 0x00928000 #define z64_nes_font_static_vsize 0x00004580 +#define z64_file_select_static_vaddr 0x01A02000 +#define z64_file_select_static_vsize 0x000395C0 #define z64_parameter_static_vaddr 0x01A3C000 #define z64_parameter_static_vsize 0x00003B00 diff --git a/data/rom_patch.txt b/data/rom_patch.txt index 81d205fb1..49563e336 100644 --- a/data/rom_patch.txt +++ b/data/rom_patch.txt @@ -1119,8 +1119,8 @@ ec9ce7,7a 348001f,7c 3480024,c 3480025,10 -3480026,15 -3480027,e1 +3480026,16 +3480027,45 348002c,3c 348002d,2 348002e,80 @@ -4814,8 +4814,8 @@ ec9ce7,7a 3483317,10 3483318,c 3483319,10 -348331a,15 -348331b,ec +348331a,16 +348331b,50 3483320,3c 3483321,e 3483322,80 @@ -5636,3123 +5636,3114 @@ ec9ce7,7a 34b3000,27 34b3001,bd 34b3002,ff -34b3003,e8 -34b3004,3c -34b3005,2 -34b3006,80 -34b3007,1c -34b3008,34 -34b3009,42 -34b300a,84 -34b300b,a0 -34b300c,8c -34b300d,43 -34b3010,3c -34b3011,2 -34b3012,80 -34b3013,40 -34b3014,8c -34b3015,45 -34b3016,65 -34b3017,40 -34b3018,8c -34b3019,62 -34b301a,2 -34b301b,c0 -34b301c,24 -34b301d,46 -34b301f,8 -34b3020,ac -34b3021,66 -34b3022,2 -34b3023,c0 -34b3024,3c -34b3025,6 -34b3026,de -34b3028,ac -34b3029,46 -34b302c,ac -34b302d,45 -34b302f,4 -34b3030,8c -34b3031,62 -34b3032,2 -34b3033,c0 -34b3034,24 -34b3035,45 -34b3037,8 -34b3038,ac -34b3039,65 -34b303a,2 -34b303b,c0 -34b303c,3c -34b303d,5 -34b303e,fc -34b303f,ff -34b3040,34 -34b3041,a5 -34b3042,ff -34b3043,ff -34b3044,ac -34b3045,45 -34b3048,3c -34b3049,5 -34b304a,ff -34b304b,fd -34b304c,34 -34b304d,a5 -34b304e,f6 -34b304f,fb -34b3050,ac -34b3051,45 -34b3053,4 -34b3054,8c -34b3055,62 +34b3003,98 +34b3004,af +34b3005,bf +34b3007,64 +34b3008,af +34b3009,be +34b300b,60 +34b300c,af +34b300d,b7 +34b300f,5c +34b3010,af +34b3011,b6 +34b3013,58 +34b3014,af +34b3015,b5 +34b3017,54 +34b3018,af +34b3019,b4 +34b301b,50 +34b301c,af +34b301d,b3 +34b301f,4c +34b3020,af +34b3021,b2 +34b3023,48 +34b3024,af +34b3025,b1 +34b3027,44 +34b3028,af +34b3029,b0 +34b302b,40 +34b302c,af +34b302d,a4 +34b302f,68 +34b3030,3c +34b3031,2 +34b3032,80 +34b3033,1c +34b3034,34 +34b3035,42 +34b3036,84 +34b3037,a0 +34b3038,8c +34b3039,50 +34b303c,26 +34b303d,2 +34b303e,2 +34b303f,b8 +34b3040,af +34b3041,a2 +34b3043,38 +34b3044,3c +34b3045,2 +34b3046,80 +34b3047,40 +34b3048,8c +34b3049,43 +34b304a,67 +34b304b,2c +34b304c,8e +34b304d,2 +34b304e,2 +34b304f,c0 +34b3050,24 +34b3051,44 +34b3053,8 +34b3054,ae +34b3055,4 34b3056,2 34b3057,c0 -34b3058,24 -34b3059,45 -34b305b,8 +34b3058,3c +34b3059,4 +34b305a,de 34b305c,ac -34b305d,65 -34b305e,2 -34b305f,c0 -34b3060,3c -34b3061,5 -34b3062,fa -34b3064,ac -34b3065,45 -34b3068,30 -34b3069,84 -34b306b,ff -34b306c,ac -34b306d,44 -34b306f,4 +34b305d,44 +34b3060,ac +34b3061,43 +34b3063,4 +34b3064,8e +34b3065,2 +34b3066,2 +34b3067,c0 +34b3068,24 +34b3069,43 +34b306b,8 +34b306c,ae +34b306d,3 +34b306e,2 +34b306f,c0 34b3070,3c -34b3071,2 -34b3072,e4 -34b3073,50 -34b3074,24 -34b3075,42 -34b3076,3 -34b3077,c0 -34b3078,af -34b3079,a2 -34b307c,af -34b307d,a0 -34b307f,4 -34b3080,3c -34b3081,2 -34b3082,e1 -34b3084,af -34b3085,a2 -34b3087,8 -34b3088,af -34b3089,a0 -34b308b,c -34b308c,3c -34b308d,2 -34b308e,f1 -34b3090,af -34b3091,a2 -34b3093,10 +34b3071,3 +34b3072,e7 +34b3074,ac +34b3075,43 +34b3078,ac +34b3079,40 +34b307b,4 +34b307c,8e +34b307d,2 +34b307e,2 +34b307f,c0 +34b3080,24 +34b3081,43 +34b3083,8 +34b3084,ae +34b3085,3 +34b3086,2 +34b3087,c0 +34b3088,3c +34b3089,3 +34b308a,fc +34b308b,11 +34b308c,34 +34b308d,63 +34b308e,96 +34b308f,23 +34b3090,ac +34b3091,43 34b3094,3c -34b3095,2 -34b3096,4 -34b3098,24 -34b3099,42 -34b309a,4 -34b309c,af -34b309d,a2 -34b309f,14 -34b30a0,3 -34b30a1,a0 -34b30a2,10 -34b30a3,25 -34b30a4,27 -34b30a5,a8 -34b30a7,18 -34b30a8,8c -34b30a9,64 +34b3095,3 +34b3096,ff +34b3097,2f +34b3098,34 +34b3099,63 +34b309a,ff +34b309b,ff +34b309c,ac +34b309d,43 +34b309f,4 +34b30a0,8e +34b30a1,2 +34b30a2,2 +34b30a3,c0 +34b30a4,24 +34b30a5,43 +34b30a7,8 +34b30a8,ae +34b30a9,3 34b30aa,2 34b30ab,c0 -34b30ac,24 -34b30ad,85 -34b30af,8 +34b30ac,3c +34b30ad,3 +34b30ae,fa 34b30b0,ac -34b30b1,65 -34b30b2,2 -34b30b3,c0 -34b30b4,8c -34b30b5,47 -34b30b7,4 -34b30b8,8c -34b30b9,46 -34b30bc,ac -34b30bd,87 -34b30bf,4 -34b30c0,24 -34b30c1,42 +34b30b1,43 +34b30b4,24 +34b30b5,3 +34b30b6,ff +34b30b7,ff +34b30b8,ac +34b30b9,43 +34b30bb,4 +34b30bc,3c +34b30bd,2 +34b30be,80 +34b30bf,40 +34b30c0,8c +34b30c1,52 +34b30c2,67 34b30c3,8 -34b30c4,15 -34b30c5,2 -34b30c6,ff -34b30c7,f8 -34b30c8,ac -34b30c9,86 -34b30cc,3 -34b30cd,e0 -34b30cf,8 -34b30d0,27 -34b30d1,bd -34b30d3,18 -34b30d4,ac -34b30d5,86 -34b30d8,ac -34b30d9,85 -34b30db,4 -34b30dc,ac -34b30dd,85 -34b30df,8 -34b30e1,a6 -34b30e2,28 -34b30e3,21 -34b30e4,3 -34b30e5,e0 -34b30e7,8 -34b30e8,ac -34b30e9,85 -34b30eb,c -34b30ec,94 -34b30ed,82 -34b30ef,4 -34b30f0,94 -34b30f1,83 -34b30f3,6 +34b30c4,24 +34b30c5,11 +34b30c7,54 +34b30c8,3c +34b30c9,16 +34b30ca,80 +34b30cb,40 +34b30cc,26 +34b30cd,d6 +34b30ce,65 +34b30cf,a8 +34b30d0,3c +34b30d1,15 +34b30d2,80 +34b30d3,40 +34b30d4,26 +34b30d5,b5 +34b30d6,66 +34b30d7,f8 +34b30d8,24 +34b30d9,14 +34b30db,18 +34b30dc,24 +34b30dd,1e +34b30df,c +34b30e0,24 +34b30e1,17 +34b30e3,f4 +34b30e4,32 +34b30e5,42 +34b30e7,1f +34b30e9,2 +34b30ea,10 +34b30eb,40 +34b30ed,12 +34b30ee,91 +34b30ef,43 +34b30f1,56 +34b30f2,10 +34b30f3,21 +34b30f4,90 34b30f5,43 -34b30f7,18 -34b30fa,10 -34b30fb,12 -34b30fc,90 -34b30fd,83 -34b30ff,c -34b3105,43 -34b3107,18 -34b310a,10 -34b310b,12 -34b310c,3 -34b310d,e0 -34b310f,8 -34b3114,27 -34b3115,bd -34b3116,ff -34b3117,e8 +34b30f9,3 +34b30fa,18 +34b30fb,80 +34b30fd,75 +34b30fe,18 +34b30ff,21 +34b3100,8c +34b3101,73 +34b3104,24 +34b3105,7 +34b3107,1 +34b3108,90 +34b3109,46 +34b310b,1 +34b310c,2 +34b310d,60 +34b310e,28 +34b310f,25 +34b3110,c +34b3111,10 +34b3112,14 +34b3113,a9 +34b3114,8f +34b3115,a4 +34b3117,38 34b3118,af -34b3119,bf -34b311b,14 +34b3119,b4 +34b311b,18 34b311c,af -34b311d,b0 -34b311f,10 -34b3120,c -34b3121,10 -34b3122,14 -34b3123,3b -34b3125,80 -34b3126,80 +34b311d,b4 +34b311f,14 +34b3120,af +34b3121,be +34b3123,10 +34b3124,2 +34b3125,20 +34b3126,38 34b3127,25 -34b3128,96 -34b3129,3 -34b312b,8 -34b312d,62 -34b312f,18 -34b3132,10 -34b3133,12 +34b312a,30 +34b312b,25 +34b312c,2 +34b312d,60 +34b312e,28 +34b312f,25 +34b3130,c +34b3131,10 +34b3132,15 +34b3133,11 34b3134,8f -34b3135,bf -34b3137,14 -34b3138,8f -34b3139,b0 -34b313b,10 -34b313c,3 -34b313d,e0 -34b313f,8 -34b3140,27 -34b3141,bd -34b3143,18 -34b3144,27 -34b3145,bd -34b3146,ff -34b3147,98 -34b3148,af -34b3149,bf -34b314b,64 -34b314c,af -34b314d,b6 -34b314f,60 -34b3150,af -34b3151,b5 -34b3153,5c -34b3154,af -34b3155,b4 -34b3157,58 -34b3158,af -34b3159,b3 -34b315b,54 -34b315c,af -34b315d,b2 -34b315f,50 -34b3160,af -34b3161,b1 -34b3163,4c -34b3164,af -34b3165,b0 -34b3167,48 -34b3169,80 -34b316a,80 -34b316b,25 -34b316d,a0 -34b316e,a8 -34b316f,25 -34b3171,c0 -34b3172,b0 +34b3135,a4 +34b3137,38 +34b3138,26 +34b3139,31 +34b313b,20 +34b313c,56 +34b313d,37 +34b313e,ff +34b313f,ea +34b3140,32 +34b3141,42 +34b3143,1f +34b3144,10 +34b3147,c +34b3148,8e +34b3149,2 +34b314a,2 +34b314b,c0 +34b314c,8e +34b314d,3 +34b314e,2 +34b314f,c0 +34b3150,24 +34b3151,64 +34b3153,8 +34b3154,ae +34b3155,4 +34b3156,2 +34b3157,c0 +34b3158,8c +34b3159,45 +34b315b,4 +34b315c,8c +34b315d,44 +34b3160,ac +34b3161,65 +34b3163,4 +34b3164,24 +34b3165,42 +34b3167,8 +34b3168,14 +34b3169,46 +34b316a,ff +34b316b,f8 +34b316c,ac +34b316d,64 +34b3170,10 34b3173,25 -34b3174,94 -34b3175,b1 -34b3177,4 -34b3178,94 -34b3179,b2 -34b317b,6 -34b317c,2 -34b317d,47 -34b317f,18 -34b3182,90 -34b3183,12 -34b3184,90 -34b3185,b4 -34b3187,b -34b3188,90 -34b3189,a2 -34b318b,a +34b3174,8f +34b3175,bf +34b3177,64 +34b3178,24 +34b3179,43 +34b317b,8 +34b317c,ae +34b317d,3 +34b317e,2 +34b317f,c0 +34b3180,3c +34b3181,3 +34b3182,e7 +34b3184,ac +34b3185,43 +34b3188,ac +34b3189,40 +34b318b,4 +34b318c,8e 34b318d,2 -34b318e,15 -34b318f,40 -34b3190,3c -34b3191,13 -34b3193,e0 -34b3195,53 -34b3196,10 -34b3197,24 -34b3199,14 -34b319a,9c -34b319b,c0 -34b319c,3c -34b319d,3 -34b319f,18 -34b31a0,2 -34b31a1,63 -34b31a2,98 -34b31a3,24 -34b31a5,53 -34b31a6,98 -34b31a7,25 -34b31a8,26 -34b31a9,23 -34b31aa,ff -34b31ab,ff -34b31ac,30 -34b31ad,63 -34b31ae,f -34b31af,ff -34b31b1,73 -34b31b2,18 -34b31b3,25 -34b31b4,3c -34b31b5,2 -34b31b6,fd -34b31b9,62 -34b31ba,18 -34b31bb,25 -34b31bc,af -34b31bd,a3 -34b31bf,10 -34b31c0,c -34b31c1,10 -34b31c2,14 -34b31c3,3b -34b31c5,a0 -34b31c6,20 -34b31c7,25 -34b31c9,56 -34b31cb,18 -34b31ce,10 -34b31cf,12 -34b31d0,8e -34b31d1,a3 -34b31d5,62 -34b31d6,18 -34b31d7,21 +34b318e,2 +34b318f,c0 +34b3190,24 +34b3191,43 +34b3193,8 +34b3194,ae +34b3195,3 +34b3196,2 +34b3197,c0 +34b3198,3c +34b3199,3 +34b319a,fc +34b319b,ff +34b319c,34 +34b319d,63 +34b319e,ff +34b319f,ff +34b31a0,ac +34b31a1,43 +34b31a4,3c +34b31a5,3 +34b31a6,ff +34b31a7,fd +34b31a8,34 +34b31a9,63 +34b31aa,f6 +34b31ab,fb +34b31ac,ac +34b31ad,43 +34b31af,4 +34b31b0,8e +34b31b1,2 +34b31b2,2 +34b31b3,c0 +34b31b4,24 +34b31b5,43 +34b31b7,8 +34b31b8,ae +34b31b9,3 +34b31ba,2 +34b31bb,c0 +34b31bc,3c +34b31bd,3 +34b31be,fa +34b31c0,ac +34b31c1,43 +34b31c4,93 +34b31c5,a3 +34b31c7,6b +34b31c8,ac +34b31c9,43 +34b31cb,4 +34b31cc,3c +34b31cd,2 +34b31ce,e4 +34b31cf,50 +34b31d0,24 +34b31d1,42 +34b31d2,3 +34b31d3,c0 +34b31d4,af +34b31d5,a2 +34b31d7,20 34b31d8,af -34b31d9,a3 -34b31db,14 -34b31dc,2e -34b31dd,83 -34b31df,2 -34b31e0,10 -34b31e1,60 -34b31e3,3 -34b31e4,24 -34b31e5,2 -34b31e7,10 -34b31e8,24 +34b31d9,a0 +34b31db,24 +34b31dc,3c +34b31dd,2 +34b31de,e1 +34b31e0,af +34b31e1,a2 +34b31e3,28 +34b31e4,af +34b31e5,a0 +34b31e7,2c +34b31e8,3c 34b31e9,2 -34b31eb,4 -34b31ec,2 -34b31ed,82 -34b31ee,10 -34b31ef,4 -34b31f1,51 -34b31f3,18 -34b31f6,10 -34b31f7,12 -34b31f8,24 -34b31f9,43 -34b31fb,3f -34b31fd,3 -34b31fe,17 -34b31ff,c3 -34b3200,30 -34b3201,42 -34b3203,3f -34b3205,43 -34b3206,10 -34b3207,21 -34b3209,2 -34b320a,10 -34b320b,c0 -34b320c,3c -34b320d,3 -34b320f,3 -34b3210,34 -34b3211,63 -34b3212,fe -34b3215,43 -34b3216,10 -34b3217,24 -34b3219,53 -34b321a,10 -34b321b,25 -34b321c,3c -34b321d,3 -34b321e,f5 -34b3221,43 -34b3222,10 -34b3223,25 -34b3224,af -34b3225,a2 -34b3227,18 -34b3228,3c -34b3229,4 -34b322a,7 -34b322c,af -34b322d,a4 -34b322f,1c -34b3230,3c -34b3231,3 -34b3232,e6 -34b3234,af -34b3235,a3 -34b3237,20 -34b3238,af -34b3239,a0 -34b323b,24 -34b323c,3c -34b323d,3 -34b323e,f4 -34b3240,af -34b3241,a3 -34b3243,28 -34b3244,26 -34b3245,23 -34b3246,ff -34b3247,ff -34b3249,3 -34b324a,1b -34b324b,80 -34b324c,3c -34b324d,11 -34b324f,ff -34b3250,36 -34b3251,31 -34b3252,f0 -34b3255,71 -34b3256,18 -34b3257,24 -34b3258,26 -34b3259,52 -34b325a,ff -34b325b,ff -34b325d,12 -34b325e,90 -34b325f,80 -34b3260,32 -34b3261,52 -34b3262,f -34b3263,fc -34b3265,72 -34b3266,18 -34b3267,25 -34b3269,64 -34b326a,20 -34b326b,25 -34b326c,af -34b326d,a4 -34b326f,2c -34b3270,3c -34b3271,4 -34b3272,e7 -34b3274,af -34b3275,a4 -34b3277,30 +34b31ea,f1 +34b31ec,af +34b31ed,a2 +34b31ef,30 +34b31f0,3c +34b31f1,2 +34b31f2,4 +34b31f4,24 +34b31f5,42 +34b31f6,4 +34b31f8,af +34b31f9,a2 +34b31fb,34 +34b31fc,27 +34b31fd,a2 +34b31ff,20 +34b3200,10 +34b3202,ff +34b3203,d2 +34b3204,27 +34b3205,a6 +34b3207,38 +34b3208,8f +34b3209,be +34b320b,60 +34b320c,8f +34b320d,b7 +34b320f,5c +34b3210,8f +34b3211,b6 +34b3213,58 +34b3214,8f +34b3215,b5 +34b3217,54 +34b3218,8f +34b3219,b4 +34b321b,50 +34b321c,8f +34b321d,b3 +34b321f,4c +34b3220,8f +34b3221,b2 +34b3223,48 +34b3224,8f +34b3225,b1 +34b3227,44 +34b3228,8f +34b3229,b0 +34b322b,40 +34b322c,3 +34b322d,e0 +34b322f,8 +34b3230,27 +34b3231,bd +34b3233,68 +34b3234,ac +34b3235,86 +34b3238,ac +34b3239,85 +34b323b,4 +34b323c,ac +34b323d,85 +34b323f,8 +34b3241,a6 +34b3242,28 +34b3243,21 +34b3244,3 +34b3245,e0 +34b3247,8 +34b3248,ac +34b3249,85 +34b324b,c +34b324c,94 +34b324d,82 +34b324f,4 +34b3250,94 +34b3251,83 +34b3253,6 +34b3255,43 +34b3257,18 +34b325a,10 +34b325b,12 +34b325c,90 +34b325d,83 +34b325f,c +34b3265,43 +34b3267,18 +34b326a,10 +34b326b,12 +34b326c,3 +34b326d,e0 +34b326f,8 +34b3274,27 +34b3275,bd +34b3276,ff +34b3277,e8 34b3278,af -34b3279,a0 -34b327b,34 +34b3279,bf +34b327b,14 34b327c,af -34b327d,a2 -34b327f,38 -34b3280,af -34b3281,a0 -34b3283,3c -34b3284,3c -34b3285,2 -34b3286,f2 -34b3288,af -34b3289,a2 -34b328b,40 -34b328c,af -34b328d,a3 -34b328f,44 -34b3290,27 -34b3291,a2 -34b3293,10 -34b3294,27 -34b3295,a6 -34b3297,48 -34b3298,8e -34b3299,3 -34b329b,8 -34b329c,24 -34b329d,64 +34b327d,b0 +34b327f,10 +34b3280,c +34b3281,10 +34b3282,14 +34b3283,93 +34b3285,80 +34b3286,80 +34b3287,25 +34b3288,96 +34b3289,3 +34b328b,8 +34b328d,62 +34b328f,18 +34b3292,10 +34b3293,12 +34b3294,8f +34b3295,bf +34b3297,14 +34b3298,8f +34b3299,b0 +34b329b,10 +34b329c,3 +34b329d,e0 34b329f,8 -34b32a0,ae -34b32a1,4 -34b32a3,8 -34b32a4,8c -34b32a5,45 -34b32a7,4 -34b32a8,8c -34b32a9,44 -34b32ac,ac -34b32ad,65 -34b32af,4 -34b32b0,24 -34b32b1,42 -34b32b3,8 -34b32b4,14 -34b32b5,46 -34b32b6,ff -34b32b7,f8 -34b32b8,ac -34b32b9,64 -34b32bc,8f -34b32bd,bf -34b32bf,64 -34b32c0,8f -34b32c1,b6 -34b32c3,60 -34b32c4,8f -34b32c5,b5 -34b32c7,5c -34b32c8,8f -34b32c9,b4 -34b32cb,58 -34b32cc,8f -34b32cd,b3 -34b32cf,54 -34b32d0,8f -34b32d1,b2 -34b32d3,50 -34b32d4,8f +34b32a0,27 +34b32a1,bd +34b32a3,18 +34b32a4,27 +34b32a5,bd +34b32a6,ff +34b32a7,98 +34b32a8,af +34b32a9,bf +34b32ab,64 +34b32ac,af +34b32ad,b6 +34b32af,60 +34b32b0,af +34b32b1,b5 +34b32b3,5c +34b32b4,af +34b32b5,b4 +34b32b7,58 +34b32b8,af +34b32b9,b3 +34b32bb,54 +34b32bc,af +34b32bd,b2 +34b32bf,50 +34b32c0,af +34b32c1,b1 +34b32c3,4c +34b32c4,af +34b32c5,b0 +34b32c7,48 +34b32c9,80 +34b32ca,80 +34b32cb,25 +34b32cd,a0 +34b32ce,a8 +34b32cf,25 +34b32d1,c0 +34b32d2,b0 +34b32d3,25 +34b32d4,94 34b32d5,b1 -34b32d7,4c -34b32d8,8f -34b32d9,b0 -34b32db,48 -34b32dc,3 -34b32dd,e0 -34b32df,8 -34b32e0,27 -34b32e1,bd -34b32e3,68 -34b32e4,27 -34b32e5,bd -34b32e6,ff -34b32e7,e8 -34b32e8,8f -34b32e9,a8 -34b32eb,28 -34b32ec,8f -34b32ed,a2 -34b32ef,2c -34b32f0,8f -34b32f1,aa -34b32f3,30 -34b32f4,94 -34b32f5,a9 -34b32f7,4 -34b32f9,9 -34b32fa,4a -34b32fb,80 -34b32fc,14 -34b32fd,40 -34b32ff,2 -34b3300,1 -34b3301,22 -34b3303,1a -34b3305,7 -34b3307,d -34b330a,48 -34b330b,12 -34b330c,94 -34b330d,a3 -34b330f,6 -34b3311,47 -34b3312,10 -34b3313,21 +34b32d7,4 +34b32d8,94 +34b32d9,b2 +34b32db,6 +34b32dc,2 +34b32dd,47 +34b32df,18 +34b32e2,90 +34b32e3,12 +34b32e4,90 +34b32e5,b4 +34b32e7,b +34b32e8,90 +34b32e9,a2 +34b32eb,a +34b32ed,2 +34b32ee,15 +34b32ef,40 +34b32f0,3c +34b32f1,13 +34b32f3,e0 +34b32f5,53 +34b32f6,10 +34b32f7,24 +34b32f9,14 +34b32fa,9c +34b32fb,c0 +34b32fc,3c +34b32fd,3 +34b32ff,18 +34b3300,2 +34b3301,63 +34b3302,98 +34b3303,24 +34b3305,53 +34b3306,98 +34b3307,25 +34b3308,26 +34b3309,23 +34b330a,ff +34b330b,ff +34b330c,30 +34b330d,63 +34b330e,f +34b330f,ff +34b3311,73 +34b3312,18 +34b3313,25 +34b3314,3c 34b3315,2 -34b3316,13 -34b3317,80 -34b3318,3c -34b3319,b -34b331b,ff -34b331c,35 -34b331d,6b -34b331e,f0 -34b3321,4b -34b3322,10 -34b3323,24 -34b3324,1 -34b3325,48 -34b3326,28 -34b3327,21 -34b3329,5 -34b332a,28 -34b332b,80 -34b332c,30 -34b332d,a5 -34b332e,f -34b332f,ff -34b3331,45 -34b3332,10 -34b3333,25 -34b3334,3c -34b3335,5 -34b3336,e4 -34b3339,45 -34b333a,10 -34b333b,25 -34b333c,af -34b333d,a2 -34b3341,7 -34b3342,3b -34b3343,80 -34b3345,eb -34b3346,38 -34b3347,24 -34b3349,8 -34b334a,40 -34b334b,80 -34b334c,31 -34b334d,8 -34b334e,f -34b334f,ff -34b3351,e8 -34b3352,38 -34b3353,25 -34b3354,af -34b3355,a7 -34b3357,4 -34b3358,3c -34b3359,2 -34b335a,e1 -34b335c,af -34b335d,a2 -34b335f,8 -34b3361,66 -34b3363,18 -34b3366,30 -34b3367,12 -34b3369,6 -34b336a,31 -34b336b,40 -34b336c,30 -34b336d,c6 -34b336e,ff -34b336f,ff -34b3370,af -34b3371,a6 -34b3373,c -34b3374,3c -34b3375,2 -34b3376,f1 -34b3378,af -34b3379,a2 -34b337b,10 +34b3316,fd +34b3319,62 +34b331a,18 +34b331b,25 +34b331c,af +34b331d,a3 +34b331f,10 +34b3320,c +34b3321,10 +34b3322,14 +34b3323,93 +34b3325,a0 +34b3326,20 +34b3327,25 +34b3329,56 +34b332b,18 +34b332e,10 +34b332f,12 +34b3330,8e +34b3331,a3 +34b3335,62 +34b3336,18 +34b3337,21 +34b3338,af +34b3339,a3 +34b333b,14 +34b333c,2e +34b333d,83 +34b333f,2 +34b3340,10 +34b3341,60 +34b3343,3 +34b3344,24 +34b3345,2 +34b3347,10 +34b3348,24 +34b3349,2 +34b334b,4 +34b334c,2 +34b334d,82 +34b334e,10 +34b334f,4 +34b3351,51 +34b3353,18 +34b3356,10 +34b3357,12 +34b3358,24 +34b3359,43 +34b335b,3f +34b335d,3 +34b335e,17 +34b335f,c3 +34b3360,30 +34b3361,42 +34b3363,3f +34b3365,43 +34b3366,10 +34b3367,21 +34b3369,2 +34b336a,10 +34b336b,c0 +34b336c,3c +34b336d,3 +34b336f,3 +34b3370,34 +34b3371,63 +34b3372,fe +34b3375,43 +34b3376,10 +34b3377,24 +34b3379,53 +34b337a,10 +34b337b,25 +34b337c,3c 34b337d,3 -34b337e,1a -34b337f,80 -34b3380,15 -34b3381,40 -34b3383,2 -34b3385,6a -34b3387,1a -34b3389,7 -34b338b,d -34b338e,18 -34b338f,12 -34b3390,30 -34b3391,63 -34b3392,ff -34b3393,ff -34b3395,9 -34b3396,4c -34b3399,69 -34b339a,18 -34b339b,25 -34b339c,af -34b339d,a3 -34b339f,14 -34b33a0,3 -34b33a1,a0 -34b33a2,10 -34b33a3,25 -34b33a4,27 -34b33a5,a8 -34b33a7,18 -34b33a8,8c -34b33a9,83 -34b33ab,8 -34b33ac,24 -34b33ad,65 -34b33af,8 -34b33b0,ac -34b33b1,85 -34b33b3,8 -34b33b4,8c -34b33b5,47 -34b33b7,4 -34b33b8,8c -34b33b9,46 -34b33bc,ac -34b33bd,67 -34b33bf,4 -34b33c0,24 -34b33c1,42 -34b33c3,8 -34b33c4,14 -34b33c5,48 -34b33c6,ff -34b33c7,f8 -34b33c8,ac -34b33c9,66 -34b33cc,3 -34b33cd,e0 -34b33cf,8 -34b33d0,27 -34b33d1,bd -34b33d3,18 -34b33d4,8c -34b33d5,82 -34b33d7,8 -34b33d8,24 -34b33d9,43 -34b33db,8 -34b33dc,ac -34b33dd,83 -34b33df,8 -34b33e0,3c -34b33e1,3 -34b33e2,e7 -34b33e4,ac -34b33e5,43 -34b33e8,ac -34b33e9,40 -34b33eb,4 -34b33ec,8c -34b33ed,82 -34b33ef,8 -34b33f0,24 -34b33f1,43 -34b33f3,8 -34b33f4,ac -34b33f5,83 -34b33f7,8 -34b33f8,3c +34b337e,f5 +34b3381,43 +34b3382,10 +34b3383,25 +34b3384,af +34b3385,a2 +34b3387,18 +34b3388,3c +34b3389,4 +34b338a,7 +34b338c,af +34b338d,a4 +34b338f,1c +34b3390,3c +34b3391,3 +34b3392,e6 +34b3394,af +34b3395,a3 +34b3397,20 +34b3398,af +34b3399,a0 +34b339b,24 +34b339c,3c +34b339d,3 +34b339e,f4 +34b33a0,af +34b33a1,a3 +34b33a3,28 +34b33a4,26 +34b33a5,23 +34b33a6,ff +34b33a7,ff +34b33a9,3 +34b33aa,1b +34b33ab,80 +34b33ac,3c +34b33ad,11 +34b33af,ff +34b33b0,36 +34b33b1,31 +34b33b2,f0 +34b33b5,71 +34b33b6,18 +34b33b7,24 +34b33b8,26 +34b33b9,52 +34b33ba,ff +34b33bb,ff +34b33bd,12 +34b33be,90 +34b33bf,80 +34b33c0,32 +34b33c1,52 +34b33c2,f +34b33c3,fc +34b33c5,72 +34b33c6,18 +34b33c7,25 +34b33c9,64 +34b33ca,20 +34b33cb,25 +34b33cc,af +34b33cd,a4 +34b33cf,2c +34b33d0,3c +34b33d1,4 +34b33d2,e7 +34b33d4,af +34b33d5,a4 +34b33d7,30 +34b33d8,af +34b33d9,a0 +34b33db,34 +34b33dc,af +34b33dd,a2 +34b33df,38 +34b33e0,af +34b33e1,a0 +34b33e3,3c +34b33e4,3c +34b33e5,2 +34b33e6,f2 +34b33e8,af +34b33e9,a2 +34b33eb,40 +34b33ec,af +34b33ed,a3 +34b33ef,44 +34b33f0,27 +34b33f1,a2 +34b33f3,10 +34b33f4,27 +34b33f5,a6 +34b33f7,48 +34b33f8,8e 34b33f9,3 -34b33fa,d9 -34b33fc,ac -34b33fd,43 -34b3400,ac -34b3401,40 -34b3403,4 +34b33fb,8 +34b33fc,24 +34b33fd,64 +34b33ff,8 +34b3400,ae +34b3401,4 +34b3403,8 34b3404,8c -34b3405,82 -34b3407,8 -34b3408,24 -34b3409,43 -34b340b,8 +34b3405,45 +34b3407,4 +34b3408,8c +34b3409,44 34b340c,ac -34b340d,83 -34b340f,8 -34b3410,3c -34b3411,3 -34b3412,ed -34b3414,ac -34b3415,43 -34b3418,3c -34b3419,5 -34b341b,50 -34b341c,24 -34b341d,a3 -34b341e,3 -34b341f,c0 -34b3420,ac -34b3421,43 -34b3423,4 -34b3424,8c -34b3425,83 -34b3427,8 -34b3428,24 -34b3429,62 -34b342b,8 -34b342c,ac -34b342d,82 -34b342f,8 -34b3430,3c -34b3431,2 -34b3432,e3 -34b3434,24 -34b3435,46 -34b3436,1a -34b3437,1 -34b3438,ac -34b3439,66 -34b343c,24 -34b343d,6 -34b343f,30 -34b3440,ac -34b3441,66 -34b3443,4 -34b3444,8c -34b3445,83 -34b3447,8 -34b3448,24 -34b3449,66 -34b344b,8 -34b344c,ac -34b344d,86 -34b344f,8 -34b3450,24 -34b3451,46 -34b3452,18 -34b3453,1 -34b3454,ac -34b3455,66 -34b3458,24 -34b3459,6 -34b345b,c0 -34b345c,ac -34b345d,66 -34b345f,4 -34b3460,8c -34b3461,86 -34b3463,8 -34b3464,24 -34b3465,c3 -34b3467,8 -34b3468,ac -34b3469,83 -34b346b,8 -34b346c,3c -34b346d,3 -34b346e,e2 -34b3470,24 -34b3471,67 -34b3472,1e -34b3473,1 -34b3474,ac -34b3475,c7 -34b3478,ac -34b3479,c0 -34b347b,4 -34b347c,8c -34b347d,86 -34b347f,8 -34b3480,24 -34b3481,c7 -34b3483,8 -34b3484,ac -34b3485,87 -34b3487,8 -34b3488,24 -34b3489,67 -34b348a,1d -34b348c,ac -34b348d,c7 -34b3490,24 -34b3491,7 -34b3493,4 -34b3494,ac -34b3495,c7 -34b3497,4 -34b3498,8c -34b3499,86 -34b349b,8 -34b349c,24 -34b349d,c7 -34b349f,8 -34b34a0,ac -34b34a1,87 -34b34a3,8 -34b34a4,24 -34b34a5,47 -34b34a6,17 -34b34a8,ac -34b34a9,c7 -34b34ac,ac -34b34ad,c0 -34b34af,4 -34b34b0,8c -34b34b1,86 -34b34b3,8 -34b34b4,24 -34b34b5,c7 -34b34b7,8 -34b34b8,ac -34b34b9,87 -34b34bb,8 -34b34bc,24 -34b34bd,47 -34b34be,14 -34b34bf,2 -34b34c0,ac -34b34c1,c7 -34b34c4,24 -34b34c5,7 -34b34c6,c -34b34c8,ac -34b34c9,c7 -34b34cb,4 -34b34cc,8c -34b34cd,86 -34b34cf,8 -34b34d0,24 -34b34d1,c7 -34b34d3,8 -34b34d4,ac -34b34d5,87 -34b34d7,8 -34b34d8,24 -34b34d9,47 -34b34da,d -34b34db,1 -34b34dc,ac -34b34dd,c7 -34b34e0,ac -34b34e1,c0 -34b34e3,4 -34b34e4,8c -34b34e5,86 -34b34e7,8 -34b34e8,24 -34b34e9,c7 -34b34eb,8 -34b34ec,ac -34b34ed,87 -34b34ef,8 -34b34f0,24 -34b34f1,47 -34b34f2,c -34b34f4,ac -34b34f5,c7 -34b34f8,ac -34b34f9,c0 -34b34fb,4 -34b34fc,8c -34b34fd,86 -34b34ff,8 -34b3500,24 -34b3501,c7 -34b3503,8 -34b3504,ac -34b3505,87 -34b3507,8 -34b3508,24 -34b3509,47 -34b350a,f -34b350c,ac -34b350d,c7 +34b340d,65 +34b340f,4 +34b3410,24 +34b3411,42 +34b3413,8 +34b3414,14 +34b3415,46 +34b3416,ff +34b3417,f8 +34b3418,ac +34b3419,64 +34b341c,8f +34b341d,bf +34b341f,64 +34b3420,8f +34b3421,b6 +34b3423,60 +34b3424,8f +34b3425,b5 +34b3427,5c +34b3428,8f +34b3429,b4 +34b342b,58 +34b342c,8f +34b342d,b3 +34b342f,54 +34b3430,8f +34b3431,b2 +34b3433,50 +34b3434,8f +34b3435,b1 +34b3437,4c +34b3438,8f +34b3439,b0 +34b343b,48 +34b343c,3 +34b343d,e0 +34b343f,8 +34b3440,27 +34b3441,bd +34b3443,68 +34b3444,27 +34b3445,bd +34b3446,ff +34b3447,e8 +34b3448,8f +34b3449,a8 +34b344b,28 +34b344c,8f +34b344d,a2 +34b344f,2c +34b3450,8f +34b3451,aa +34b3453,30 +34b3454,94 +34b3455,a9 +34b3457,4 +34b3459,9 +34b345a,4a +34b345b,80 +34b345c,14 +34b345d,40 +34b345f,2 +34b3460,1 +34b3461,22 +34b3463,1a +34b3465,7 +34b3467,d +34b346a,48 +34b346b,12 +34b346c,94 +34b346d,a3 +34b346f,6 +34b3471,47 +34b3472,10 +34b3473,21 +34b3475,2 +34b3476,13 +34b3477,80 +34b3478,3c +34b3479,b +34b347b,ff +34b347c,35 +34b347d,6b +34b347e,f0 +34b3481,4b +34b3482,10 +34b3483,24 +34b3484,1 +34b3485,48 +34b3486,28 +34b3487,21 +34b3489,5 +34b348a,28 +34b348b,80 +34b348c,30 +34b348d,a5 +34b348e,f +34b348f,ff +34b3491,45 +34b3492,10 +34b3493,25 +34b3494,3c +34b3495,5 +34b3496,e4 +34b3499,45 +34b349a,10 +34b349b,25 +34b349c,af +34b349d,a2 +34b34a1,7 +34b34a2,3b +34b34a3,80 +34b34a5,eb +34b34a6,38 +34b34a7,24 +34b34a9,8 +34b34aa,40 +34b34ab,80 +34b34ac,31 +34b34ad,8 +34b34ae,f +34b34af,ff +34b34b1,e8 +34b34b2,38 +34b34b3,25 +34b34b4,af +34b34b5,a7 +34b34b7,4 +34b34b8,3c +34b34b9,2 +34b34ba,e1 +34b34bc,af +34b34bd,a2 +34b34bf,8 +34b34c1,66 +34b34c3,18 +34b34c6,30 +34b34c7,12 +34b34c9,6 +34b34ca,31 +34b34cb,40 +34b34cc,30 +34b34cd,c6 +34b34ce,ff +34b34cf,ff +34b34d0,af +34b34d1,a6 +34b34d3,c +34b34d4,3c +34b34d5,2 +34b34d6,f1 +34b34d8,af +34b34d9,a2 +34b34db,10 +34b34dd,3 +34b34de,1a +34b34df,80 +34b34e0,15 +34b34e1,40 +34b34e3,2 +34b34e5,6a +34b34e7,1a +34b34e9,7 +34b34eb,d +34b34ee,18 +34b34ef,12 +34b34f0,30 +34b34f1,63 +34b34f2,ff +34b34f3,ff +34b34f5,9 +34b34f6,4c +34b34f9,69 +34b34fa,18 +34b34fb,25 +34b34fc,af +34b34fd,a3 +34b34ff,14 +34b3500,3 +34b3501,a0 +34b3502,10 +34b3503,25 +34b3504,27 +34b3505,a8 +34b3507,18 +34b3508,8c +34b3509,83 +34b350b,8 +34b350c,24 +34b350d,65 +34b350f,8 34b3510,ac -34b3511,c0 -34b3513,4 +34b3511,85 +34b3513,8 34b3514,8c -34b3515,86 -34b3517,8 -34b3518,24 -34b3519,c7 -34b351b,8 +34b3515,47 +34b3517,4 +34b3518,8c +34b3519,46 34b351c,ac -34b351d,87 -34b351f,8 +34b351d,67 +34b351f,4 34b3520,24 -34b3521,47 -34b3522,10 -34b3523,1 -34b3524,ac -34b3525,c7 +34b3521,42 +34b3523,8 +34b3524,14 +34b3525,48 +34b3526,ff +34b3527,f8 34b3528,ac -34b3529,c0 -34b352b,4 -34b352c,8c -34b352d,86 +34b3529,66 +34b352c,3 +34b352d,e0 34b352f,8 -34b3530,24 -34b3531,c7 -34b3533,8 -34b3534,ac -34b3535,87 +34b3530,27 +34b3531,bd +34b3533,18 +34b3534,8c +34b3535,82 34b3537,8 34b3538,24 -34b3539,47 -34b353a,8 +34b3539,43 +34b353b,8 34b353c,ac -34b353d,c7 -34b3540,ac -34b3541,c0 -34b3543,4 -34b3544,8c -34b3545,86 -34b3547,8 -34b3548,24 -34b3549,c7 -34b354b,8 -34b354c,ac -34b354d,87 +34b353d,83 +34b353f,8 +34b3540,3c +34b3541,3 +34b3542,e7 +34b3544,ac +34b3545,43 +34b3548,ac +34b3549,40 +34b354b,4 +34b354c,8c +34b354d,82 34b354f,8 34b3550,24 -34b3551,47 -34b3552,a -34b3553,1 +34b3551,43 +34b3553,8 34b3554,ac -34b3555,c7 -34b3558,ac -34b3559,c0 -34b355b,4 -34b355c,8c -34b355d,86 -34b355f,8 -34b3560,24 -34b3561,c7 -34b3563,8 -34b3564,ac -34b3565,87 +34b3555,83 +34b3557,8 +34b3558,3c +34b3559,3 +34b355a,d9 +34b355c,ac +34b355d,43 +34b3560,ac +34b3561,40 +34b3563,4 +34b3564,8c +34b3565,82 34b3567,8 34b3568,24 -34b3569,63 -34b356b,1c +34b3569,43 +34b356b,8 34b356c,ac -34b356d,c3 -34b3570,24 -34b3571,a5 -34b3572,42 -34b3573,40 +34b356d,83 +34b356f,8 +34b3570,3c +34b3571,3 +34b3572,ed 34b3574,ac -34b3575,c5 -34b3577,4 -34b3578,8c -34b3579,83 -34b357b,8 +34b3575,43 +34b3578,3c +34b3579,5 +34b357b,50 34b357c,24 -34b357d,65 -34b357f,8 +34b357d,a3 +34b357e,3 +34b357f,c0 34b3580,ac -34b3581,85 -34b3583,8 -34b3584,24 -34b3585,42 -34b3586,12 -34b3587,1 -34b3588,ac +34b3581,43 +34b3583,4 +34b3584,8c +34b3585,83 +34b3587,8 +34b3588,24 34b3589,62 -34b358c,24 -34b358d,2 -34b358e,20 -34b3590,ac -34b3591,62 -34b3593,4 -34b3594,8c -34b3595,82 -34b3597,8 -34b3598,24 -34b3599,43 -34b359b,8 -34b359c,ac -34b359d,83 -34b359f,8 -34b35a0,3c -34b35a1,3 -34b35a2,df -34b35a4,ac -34b35a5,43 -34b35a8,3 -34b35a9,e0 +34b358b,8 +34b358c,ac +34b358d,82 +34b358f,8 +34b3590,3c +34b3591,2 +34b3592,e3 +34b3594,24 +34b3595,46 +34b3596,1a +34b3597,1 +34b3598,ac +34b3599,66 +34b359c,24 +34b359d,6 +34b359f,30 +34b35a0,ac +34b35a1,66 +34b35a3,4 +34b35a4,8c +34b35a5,83 +34b35a7,8 +34b35a8,24 +34b35a9,66 34b35ab,8 34b35ac,ac -34b35ad,40 -34b35af,4 -34b35b0,27 -34b35b1,bd -34b35b2,ff -34b35b3,c8 -34b35b4,af -34b35b5,bf -34b35b7,34 -34b35b8,af -34b35b9,b1 -34b35bb,30 -34b35bc,af -34b35bd,b0 -34b35bf,2c -34b35c0,af -34b35c1,a0 -34b35c3,10 -34b35c4,3c -34b35c5,2 -34b35c6,1 -34b35c7,a0 -34b35c8,24 -34b35c9,42 -34b35ca,20 -34b35cc,af -34b35cd,a2 -34b35cf,14 -34b35d0,3c -34b35d1,10 -34b35d3,3 -34b35d4,36 -34b35d5,2 -34b35d6,95 -34b35d7,c0 -34b35d8,af -34b35d9,a2 -34b35db,18 -34b35dc,c -34b35dd,10 -34b35de,15 -34b35df,d0 -34b35e0,27 -34b35e1,a4 -34b35e3,10 -34b35e4,af -34b35e5,a0 -34b35e7,1c -34b35e8,3c -34b35e9,2 -34b35eb,84 -34b35ec,24 -34b35ed,42 -34b35ee,60 -34b35f0,af -34b35f1,a2 -34b35f3,20 -34b35f4,34 -34b35f5,2 -34b35f6,b4 -34b35f8,af -34b35f9,a2 -34b35fb,24 -34b35fc,c -34b35fd,10 -34b35fe,15 -34b35ff,d0 -34b3600,27 -34b3601,a4 -34b3603,1c -34b3604,8f -34b3605,a2 -34b3607,10 -34b3608,26 -34b3609,10 -34b360a,a3 -34b360d,50 -34b360e,80 -34b360f,21 -34b3610,3c -34b3611,3 -34b3612,80 -34b3613,40 -34b3614,ac -34b3615,70 -34b3616,64 -34b3617,48 -34b3618,24 -34b3619,42 -34b361a,29 -34b361b,80 -34b361c,3c -34b361d,3 -34b361e,80 -34b361f,40 +34b35ad,86 +34b35af,8 +34b35b0,24 +34b35b1,46 +34b35b2,18 +34b35b3,1 +34b35b4,ac +34b35b5,66 +34b35b8,24 +34b35b9,6 +34b35bb,c0 +34b35bc,ac +34b35bd,66 +34b35bf,4 +34b35c0,8c +34b35c1,86 +34b35c3,8 +34b35c4,24 +34b35c5,c3 +34b35c7,8 +34b35c8,ac +34b35c9,83 +34b35cb,8 +34b35cc,3c +34b35cd,3 +34b35ce,e2 +34b35d0,24 +34b35d1,67 +34b35d2,1e +34b35d3,1 +34b35d4,ac +34b35d5,c7 +34b35d8,ac +34b35d9,c0 +34b35db,4 +34b35dc,8c +34b35dd,86 +34b35df,8 +34b35e0,24 +34b35e1,c7 +34b35e3,8 +34b35e4,ac +34b35e5,87 +34b35e7,8 +34b35e8,24 +34b35e9,67 +34b35ea,1d +34b35ec,ac +34b35ed,c7 +34b35f0,24 +34b35f1,7 +34b35f3,4 +34b35f4,ac +34b35f5,c7 +34b35f7,4 +34b35f8,8c +34b35f9,86 +34b35fb,8 +34b35fc,24 +34b35fd,c7 +34b35ff,8 +34b3600,ac +34b3601,87 +34b3603,8 +34b3604,24 +34b3605,47 +34b3606,17 +34b3608,ac +34b3609,c7 +34b360c,ac +34b360d,c0 +34b360f,4 +34b3610,8c +34b3611,86 +34b3613,8 +34b3614,24 +34b3615,c7 +34b3617,8 +34b3618,ac +34b3619,87 +34b361b,8 +34b361c,24 +34b361d,47 +34b361e,14 +34b361f,2 34b3620,ac -34b3621,62 -34b3622,64 -34b3623,38 -34b3624,3c -34b3625,2 -34b3626,80 -34b3627,40 -34b3628,8f -34b3629,a3 -34b362b,1c -34b362c,ac -34b362d,43 -34b362e,64 -34b362f,28 -34b3630,3c -34b3631,11 -34b3632,80 -34b3633,40 -34b3634,c -34b3635,10 -34b3636,14 -34b3637,45 -34b3638,26 -34b3639,24 -34b363a,64 -34b363b,18 -34b363d,40 -34b363e,80 -34b363f,25 -34b3640,c -34b3641,10 -34b3642,15 -34b3643,c3 -34b3645,40 -34b3646,20 -34b3647,25 -34b3649,10 -34b364a,4f -34b364b,c2 -34b364c,1 -34b364d,30 -34b364e,48 -34b364f,21 -34b3650,2a -34b3651,10 -34b3653,2 -34b3654,16 -34b3657,18 -34b3658,ae -34b3659,22 -34b365a,64 -34b365b,18 -34b365d,9 -34b365e,48 -34b365f,43 -34b3660,3c -34b3661,3 -34b3662,80 -34b3663,40 -34b3664,24 -34b3665,63 -34b3666,65 -34b3667,5a -34b366a,20 -34b366b,25 -34b366e,30 -34b366f,25 -34b3670,2 -34b3671,20 -34b3672,40 -34b3673,25 -34b3674,24 -34b3675,7 -34b3676,ff -34b3677,f0 -34b3678,8d -34b3679,5 -34b367a,64 -34b367b,18 -34b367d,a4 -34b367e,28 -34b367f,21 -34b3680,90 -34b3681,62 -34b3685,2 -34b3686,11 -34b3687,2 -34b3689,47 -34b368a,10 -34b368b,25 -34b368c,a0 -34b368d,a2 -34b3690,8d -34b3691,2 -34b3692,64 -34b3693,18 -34b3695,44 -34b3696,10 -34b3697,21 -34b3698,90 -34b3699,65 -34b369d,a7 -34b369e,28 -34b369f,25 -34b36a0,a0 -34b36a1,45 -34b36a3,1 -34b36a4,24 -34b36a5,c6 -34b36a7,1 +34b3621,c7 +34b3624,24 +34b3625,7 +34b3626,c +34b3628,ac +34b3629,c7 +34b362b,4 +34b362c,8c +34b362d,86 +34b362f,8 +34b3630,24 +34b3631,c7 +34b3633,8 +34b3634,ac +34b3635,87 +34b3637,8 +34b3638,24 +34b3639,47 +34b363a,d +34b363b,1 +34b363c,ac +34b363d,c7 +34b3640,ac +34b3641,c0 +34b3643,4 +34b3644,8c +34b3645,86 +34b3647,8 +34b3648,24 +34b3649,c7 +34b364b,8 +34b364c,ac +34b364d,87 +34b364f,8 +34b3650,24 +34b3651,47 +34b3652,c +34b3654,ac +34b3655,c7 +34b3658,ac +34b3659,c0 +34b365b,4 +34b365c,8c +34b365d,86 +34b365f,8 +34b3660,24 +34b3661,c7 +34b3663,8 +34b3664,ac +34b3665,87 +34b3667,8 +34b3668,24 +34b3669,47 +34b366a,f +34b366c,ac +34b366d,c7 +34b3670,ac +34b3671,c0 +34b3673,4 +34b3674,8c +34b3675,86 +34b3677,8 +34b3678,24 +34b3679,c7 +34b367b,8 +34b367c,ac +34b367d,87 +34b367f,8 +34b3680,24 +34b3681,47 +34b3682,10 +34b3683,1 +34b3684,ac +34b3685,c7 +34b3688,ac +34b3689,c0 +34b368b,4 +34b368c,8c +34b368d,86 +34b368f,8 +34b3690,24 +34b3691,c7 +34b3693,8 +34b3694,ac +34b3695,87 +34b3697,8 +34b3698,24 +34b3699,47 +34b369a,8 +34b369c,ac +34b369d,c7 +34b36a0,ac +34b36a1,c0 +34b36a3,4 +34b36a4,8c +34b36a5,86 +34b36a7,8 34b36a8,24 -34b36a9,63 -34b36ab,1 -34b36ad,c9 -34b36ae,10 -34b36af,2a -34b36b0,14 -34b36b1,40 -34b36b2,ff -34b36b3,f1 -34b36b4,24 -34b36b5,84 -34b36b7,2 -34b36b8,c -34b36b9,10 -34b36ba,15 -34b36bb,c3 -34b36bc,24 -34b36bd,4 -34b36be,1 -34b36c0,3c -34b36c1,4 -34b36c2,80 -34b36c3,40 -34b36c4,24 -34b36c5,3 -34b36c6,1 -34b36c8,ac -34b36c9,83 -34b36ca,65 -34b36cb,3c -34b36cc,24 -34b36cd,84 -34b36ce,65 -34b36cf,3c -34b36d0,ac -34b36d1,82 -34b36d3,4 +34b36a9,c7 +34b36ab,8 +34b36ac,ac +34b36ad,87 +34b36af,8 +34b36b0,24 +34b36b1,47 +34b36b2,a +34b36b3,1 +34b36b4,ac +34b36b5,c7 +34b36b8,ac +34b36b9,c0 +34b36bb,4 +34b36bc,8c +34b36bd,86 +34b36bf,8 +34b36c0,24 +34b36c1,c7 +34b36c3,8 +34b36c4,ac +34b36c5,87 +34b36c7,8 +34b36c8,24 +34b36c9,63 +34b36cb,1c +34b36cc,ac +34b36cd,c3 +34b36d0,24 +34b36d1,a5 +34b36d2,42 +34b36d3,40 34b36d4,ac -34b36d5,82 -34b36d7,8 -34b36d8,24 -34b36d9,42 -34b36da,1 -34b36dc,c -34b36dd,10 -34b36de,14 -34b36df,f5 +34b36d5,c5 +34b36d7,4 +34b36d8,8c +34b36d9,83 +34b36db,8 +34b36dc,24 +34b36dd,65 +34b36df,8 34b36e0,ac -34b36e1,82 -34b36e3,c -34b36e4,8f -34b36e5,bf -34b36e7,34 -34b36e8,8f -34b36e9,b1 -34b36eb,30 -34b36ec,8f -34b36ed,b0 -34b36ef,2c -34b36f0,3 -34b36f1,e0 -34b36f3,8 -34b36f4,27 -34b36f5,bd -34b36f7,38 -34b36f8,3c -34b36f9,3 -34b36fa,80 -34b36fb,40 -34b36fc,3c -34b36fd,2 -34b36fe,80 -34b36ff,50 -34b3700,24 -34b3701,42 -34b3704,3 -34b3705,e0 -34b3707,8 -34b3708,ac -34b3709,62 -34b370a,65 -34b370b,20 -34b370d,4 -34b370e,17 -34b370f,c3 -34b3711,2 -34b3712,1f -34b3713,2 -34b3715,83 -34b3716,10 -34b3717,21 -34b3718,30 -34b3719,42 -34b371b,f -34b371d,43 -34b371e,10 -34b371f,23 -34b3720,10 -34b3721,40 -34b3723,3 +34b36e1,85 +34b36e3,8 +34b36e4,24 +34b36e5,42 +34b36e6,12 +34b36e7,1 +34b36e8,ac +34b36e9,62 +34b36ec,24 +34b36ed,2 +34b36ee,20 +34b36f0,ac +34b36f1,62 +34b36f3,4 +34b36f4,8c +34b36f5,82 +34b36f7,8 +34b36f8,24 +34b36f9,43 +34b36fb,8 +34b36fc,ac +34b36fd,83 +34b36ff,8 +34b3700,3c +34b3701,3 +34b3702,df +34b3704,ac +34b3705,43 +34b3708,3 +34b3709,e0 +34b370b,8 +34b370c,ac +34b370d,40 +34b370f,4 +34b3710,27 +34b3711,bd +34b3712,ff +34b3713,b8 +34b3714,af +34b3715,bf +34b3717,44 +34b3718,af +34b3719,b1 +34b371b,40 +34b371c,af +34b371d,b0 +34b371f,3c +34b3720,af +34b3721,a0 +34b3723,10 34b3724,3c -34b3725,3 -34b3726,80 -34b3727,40 -34b3729,82 +34b3725,2 +34b3726,1 +34b3727,a0 +34b3728,24 +34b3729,42 34b372a,20 -34b372b,23 -34b372c,24 -34b372d,84 -34b372f,10 -34b3730,8c -34b3731,62 -34b3732,65 -34b3733,20 -34b3735,44 -34b3736,20 -34b3737,21 -34b3738,3 -34b3739,e0 -34b373b,8 -34b373c,ac -34b373d,64 -34b373e,65 -34b373f,20 +34b372c,af +34b372d,a2 +34b372f,14 +34b3730,3c +34b3731,10 +34b3733,3 +34b3734,36 +34b3735,2 +34b3736,95 +34b3737,c0 +34b3738,af +34b3739,a2 +34b373b,18 +34b373c,c +34b373d,10 +34b373e,16 +34b373f,34 34b3740,27 -34b3741,bd -34b3742,ff -34b3743,e8 +34b3741,a4 +34b3743,10 34b3744,af -34b3745,bf -34b3747,14 -34b3748,af -34b3749,b0 -34b374b,10 -34b374d,80 -34b374e,80 -34b374f,25 -34b3750,c -34b3751,10 -34b3752,15 -34b3753,c3 -34b3754,8c -34b3755,84 -34b3757,8 -34b3758,ae -34b3759,2 -34b375c,8e -34b375d,6 -34b375f,8 -34b3761,40 -34b3762,20 -34b3763,25 -34b3764,3c -34b3765,2 -34b3766,80 -34b3768,24 -34b3769,42 -34b376a,d -34b376b,f0 -34b376d,40 -34b376e,f8 -34b376f,9 -34b3770,8e -34b3771,5 -34b3773,4 -34b3774,8f -34b3775,bf -34b3777,14 -34b3778,8f -34b3779,b0 -34b377b,10 -34b377c,3 -34b377d,e0 -34b377f,8 -34b3780,27 -34b3781,bd -34b3783,18 +34b3745,a0 +34b3747,1c +34b3748,3c +34b3749,2 +34b374b,84 +34b374c,24 +34b374d,42 +34b374e,60 +34b3750,af +34b3751,a2 +34b3753,20 +34b3754,34 +34b3755,2 +34b3756,b4 +34b3758,af +34b3759,a2 +34b375b,24 +34b375c,c +34b375d,10 +34b375e,16 +34b375f,34 +34b3760,27 +34b3761,a4 +34b3763,1c +34b3764,af +34b3765,a0 +34b3767,28 +34b3768,3c +34b3769,2 +34b376b,7b +34b376c,34 +34b376d,42 +34b376e,d0 +34b3770,af +34b3771,a2 +34b3773,2c +34b3774,3c +34b3775,2 +34b3777,8 +34b3778,34 +34b3779,42 +34b377a,88 +34b377b,a0 +34b377c,af +34b377d,a2 +34b377f,30 +34b3780,c +34b3781,10 +34b3782,16 +34b3783,34 34b3784,27 -34b3785,bd -34b3786,ff -34b3787,e8 -34b3788,af -34b3789,bf -34b378b,14 -34b378c,c +34b3785,a4 +34b3787,28 +34b3788,8f +34b3789,a2 +34b378b,10 +34b378c,26 34b378d,10 -34b378e,15 -34b378f,be -34b3794,c -34b3795,10 -34b3796,15 -34b3797,6c -34b379c,c -34b379d,10 -34b379e,18 -34b379f,7c -34b37a4,8f -34b37a5,bf -34b37a7,14 -34b37a8,3 -34b37a9,e0 -34b37ab,8 -34b37ac,27 -34b37ad,bd -34b37af,18 -34b37b0,3c -34b37b1,2 -34b37b2,80 -34b37b3,1c -34b37b4,34 -34b37b5,42 -34b37b6,84 -34b37b7,a0 -34b37b8,3c -34b37b9,3 -34b37bb,1 +34b378e,a3 +34b3791,50 +34b3792,80 +34b3793,21 +34b3794,3c +34b3795,3 +34b3796,80 +34b3797,40 +34b3798,ac +34b3799,70 +34b379a,66 +34b379b,28 +34b379c,24 +34b379d,42 +34b379e,29 +34b379f,80 +34b37a0,3c +34b37a1,3 +34b37a2,80 +34b37a3,40 +34b37a4,ac +34b37a5,62 +34b37a6,66 +34b37a7,18 +34b37a8,3c +34b37a9,2 +34b37aa,80 +34b37ab,40 +34b37ac,8f +34b37ad,a3 +34b37af,28 +34b37b0,ac +34b37b1,43 +34b37b2,66 +34b37b3,8 +34b37b4,3c +34b37b5,2 +34b37b6,80 +34b37b7,40 +34b37b8,8f +34b37b9,a3 +34b37bb,1c +34b37bc,ac 34b37bd,43 -34b37be,10 -34b37bf,21 -34b37c0,94 -34b37c1,43 -34b37c2,9 -34b37c3,34 -34b37c4,24 -34b37c5,2 -34b37c7,6 -34b37c8,14 -34b37c9,62 -34b37cb,19 -34b37cc,3c -34b37cd,2 +34b37be,65 +34b37bf,f8 +34b37c0,3c +34b37c1,11 +34b37c2,80 +34b37c3,40 +34b37c4,c +34b37c5,10 +34b37c6,14 +34b37c7,9d +34b37c8,26 +34b37c9,24 +34b37ca,65 +34b37cb,e8 +34b37cd,40 34b37ce,80 -34b37cf,1c -34b37d0,34 -34b37d1,42 -34b37d2,84 -34b37d3,a0 -34b37d4,3c -34b37d5,3 -34b37d7,1 -34b37d9,43 -34b37da,10 -34b37db,21 -34b37dc,94 -34b37dd,42 -34b37de,9 -34b37df,48 -34b37e0,14 -34b37e1,40 -34b37e3,13 -34b37e4,3c -34b37e5,2 -34b37e6,80 -34b37e7,1c -34b37e8,34 -34b37e9,42 -34b37ea,84 -34b37eb,a0 -34b37ed,43 -34b37ee,10 -34b37ef,21 -34b37f0,94 -34b37f1,42 -34b37f2,9 -34b37f3,44 -34b37f4,14 -34b37f5,40 -34b37f7,e -34b37f8,3c -34b37f9,2 -34b37fa,80 -34b37fb,1c -34b37fc,34 -34b37fd,42 -34b37fe,84 -34b37ff,a0 -34b3800,84 -34b3801,42 -34b3803,14 -34b3804,4 -34b3805,41 -34b3807,a -34b3808,3c -34b3809,2 -34b380a,80 -34b380b,1c -34b380c,27 -34b380d,bd -34b380e,ff -34b380f,e8 -34b3810,af -34b3811,bf -34b3813,14 -34b3814,34 -34b3815,42 -34b3816,84 -34b3817,a0 -34b3818,8c -34b3819,44 -34b381c,c -34b381d,10 -34b381e,16 -34b381f,e -34b3820,24 -34b3821,84 -34b3822,2 -34b3823,a8 -34b3824,8f -34b3825,bf -34b3827,14 -34b3828,3 -34b3829,e0 -34b382b,8 -34b382c,27 -34b382d,bd -34b382f,18 -34b3830,3 -34b3831,e0 -34b3833,8 -34b3838,3c -34b3839,2 -34b383a,80 -34b383b,40 -34b383c,8c -34b383d,42 -34b383e,65 -34b383f,18 -34b3840,10 +34b37cf,25 +34b37d0,c +34b37d1,10 +34b37d2,16 +34b37d3,27 +34b37d5,40 +34b37d6,20 +34b37d7,25 +34b37d9,10 +34b37da,4f +34b37db,c2 +34b37dc,1 +34b37dd,30 +34b37de,48 +34b37df,21 +34b37e0,2a +34b37e1,10 +34b37e3,2 +34b37e4,16 +34b37e7,18 +34b37e8,ae +34b37e9,22 +34b37ea,65 +34b37eb,e8 +34b37ed,9 +34b37ee,48 +34b37ef,43 +34b37f0,3c +34b37f1,3 +34b37f2,80 +34b37f3,40 +34b37f4,24 +34b37f5,63 +34b37f6,67 +34b37f7,46 +34b37fa,20 +34b37fb,25 +34b37fe,30 +34b37ff,25 +34b3800,2 +34b3801,20 +34b3802,40 +34b3803,25 +34b3804,24 +34b3805,7 +34b3806,ff +34b3807,f0 +34b3808,8d +34b3809,5 +34b380a,65 +34b380b,e8 +34b380d,a4 +34b380e,28 +34b380f,21 +34b3810,90 +34b3811,62 +34b3815,2 +34b3816,11 +34b3817,2 +34b3819,47 +34b381a,10 +34b381b,25 +34b381c,a0 +34b381d,a2 +34b3820,8d +34b3821,2 +34b3822,65 +34b3823,e8 +34b3825,44 +34b3826,10 +34b3827,21 +34b3828,90 +34b3829,65 +34b382d,a7 +34b382e,28 +34b382f,25 +34b3830,a0 +34b3831,45 +34b3833,1 +34b3834,24 +34b3835,c6 +34b3837,1 +34b3838,24 +34b3839,63 +34b383b,1 +34b383d,c9 +34b383e,10 +34b383f,2a +34b3840,14 34b3841,40 -34b3842,2 -34b3843,69 -34b3844,3c -34b3845,3 -34b3846,80 -34b3847,40 -34b3848,27 -34b3849,bd -34b384a,ff -34b384b,90 -34b384c,af -34b384d,bf -34b384f,6c -34b3850,af -34b3851,be -34b3853,68 -34b3854,af -34b3855,b7 -34b3857,64 -34b3858,af -34b3859,b6 -34b385b,60 -34b385c,af -34b385d,b5 -34b385f,5c -34b3860,af -34b3861,b4 -34b3863,58 -34b3864,af -34b3865,b3 -34b3867,54 -34b3868,af -34b3869,b2 -34b386b,50 -34b386c,af -34b386d,b1 -34b386f,4c -34b3870,af -34b3871,b0 -34b3873,48 -34b3874,8c -34b3875,82 -34b3877,4 -34b3878,8c -34b3879,63 -34b387a,65 +34b3842,ff +34b3843,f1 +34b3844,24 +34b3845,84 +34b3847,2 +34b3848,c +34b3849,10 +34b384a,16 +34b384b,27 +34b384c,24 +34b384d,4 +34b384e,1 +34b3850,3c +34b3851,4 +34b3852,80 +34b3853,40 +34b3854,24 +34b3855,3 +34b3856,1 +34b3858,ac +34b3859,83 +34b385a,67 +34b385b,28 +34b385c,24 +34b385d,84 +34b385e,67 +34b385f,28 +34b3860,ac +34b3861,82 +34b3863,4 +34b3864,ac +34b3865,82 +34b3867,8 +34b3868,24 +34b3869,42 +34b386a,1 +34b386c,c +34b386d,10 +34b386e,15 +34b386f,4d +34b3870,ac +34b3871,82 +34b3873,c +34b3874,8f +34b3875,bf +34b3877,44 +34b3878,8f +34b3879,b1 34b387b,40 -34b387c,24 -34b387d,45 -34b387f,8 -34b3880,ac -34b3881,85 +34b387c,8f +34b387d,b0 +34b387f,3c +34b3880,3 +34b3881,e0 34b3883,8 -34b3884,3c -34b3885,5 -34b3886,de -34b3888,ac -34b3889,45 -34b388c,ac -34b388d,43 -34b388f,4 -34b3890,3c -34b3891,2 -34b3892,80 -34b3893,11 -34b3894,34 -34b3895,42 -34b3896,a5 -34b3897,d0 -34b3898,94 -34b3899,54 -34b389a,f -34b389b,2e -34b389c,3c -34b389d,2 -34b389e,80 -34b389f,40 -34b38a0,8c -34b38a1,42 -34b38a2,65 -34b38a3,24 -34b38a4,50 -34b38a5,40 -34b38a7,5 -34b38a8,24 -34b38a9,8 -34b38ab,1 -34b38ac,32 -34b38ad,88 -34b38af,1 -34b38b1,14 -34b38b2,a0 -34b38b3,42 -34b38b4,10 -34b38b7,2 -34b38b8,32 -34b38b9,94 -34b38bb,1 +34b3884,27 +34b3885,bd +34b3887,48 +34b3888,3c +34b3889,3 +34b388a,80 +34b388b,40 +34b388c,3c +34b388d,2 +34b388e,80 +34b388f,50 +34b3890,24 +34b3891,42 +34b3894,3 +34b3895,e0 +34b3897,8 +34b3898,ac +34b3899,62 +34b389a,67 +34b389b,c +34b389d,4 +34b389e,17 +34b389f,c3 +34b38a1,2 +34b38a2,1f +34b38a3,2 +34b38a5,83 +34b38a6,10 +34b38a7,21 +34b38a8,30 +34b38a9,42 +34b38ab,f +34b38ad,43 +34b38ae,10 +34b38af,23 +34b38b0,10 +34b38b1,40 +34b38b3,3 +34b38b4,3c +34b38b5,3 +34b38b6,80 +34b38b7,40 +34b38b9,82 +34b38ba,20 +34b38bb,23 34b38bc,24 -34b38bd,14 -34b38bf,1 -34b38c0,3c -34b38c1,2 -34b38c2,80 -34b38c3,40 -34b38c4,8c -34b38c5,55 -34b38c6,65 -34b38c7,30 -34b38c8,12 -34b38c9,a0 -34b38cb,7 -34b38cc,2 -34b38cd,a0 -34b38ce,18 -34b38cf,25 -34b38d0,3c -34b38d1,2 -34b38d2,80 -34b38d3,40 -34b38d4,94 -34b38d5,43 -34b38d6,64 -34b38d7,1c -34b38d9,3 -34b38da,10 -34b38db,40 -34b38dd,43 -34b38de,10 -34b38df,21 -34b38e1,2 -34b38e2,10 -34b38e3,40 -34b38e4,24 -34b38e5,43 -34b38e7,1 -34b38e8,3c +34b38bd,84 +34b38bf,10 +34b38c0,8c +34b38c1,62 +34b38c2,67 +34b38c3,c +34b38c5,44 +34b38c6,20 +34b38c7,21 +34b38c8,3 +34b38c9,e0 +34b38cb,8 +34b38cc,ac +34b38cd,64 +34b38ce,67 +34b38cf,c +34b38d0,27 +34b38d1,bd +34b38d2,ff +34b38d3,e8 +34b38d4,af +34b38d5,bf +34b38d7,14 +34b38d8,af +34b38d9,b0 +34b38db,10 +34b38dd,80 +34b38de,80 +34b38df,25 +34b38e0,c +34b38e1,10 +34b38e2,16 +34b38e3,27 +34b38e4,8c +34b38e5,84 +34b38e7,8 +34b38e8,ae 34b38e9,2 -34b38ea,80 -34b38eb,40 -34b38ec,94 -34b38ed,42 -34b38ee,64 -34b38ef,1c -34b38f1,2 -34b38f2,10 -34b38f3,c0 -34b38f4,24 -34b38f5,42 -34b38f7,57 -34b38f9,43 -34b38fa,10 -34b38fb,21 -34b38fc,24 -34b38fd,3 -34b38fe,1 -34b38ff,40 -34b3901,62 -34b3902,18 -34b3903,23 -34b3905,3 -34b3906,8f -34b3907,c2 -34b3908,2 -34b3909,23 -34b390a,88 -34b390b,21 -34b390d,11 -34b390e,88 -34b390f,43 -34b3910,26 -34b3911,23 -34b3913,1 -34b3914,af -34b3915,a3 -34b3917,38 -34b3918,8c -34b3919,83 -34b391b,8 -34b391c,24 -34b391d,65 -34b391f,8 -34b3920,ac -34b3921,85 -34b3923,8 -34b3924,3c -34b3925,5 -34b3926,fc -34b3927,ff -34b3928,34 -34b3929,a5 -34b392a,ff -34b392b,ff -34b392c,ac -34b392d,65 -34b3930,3c -34b3931,5 -34b3932,ff -34b3933,fd -34b3934,34 -34b3935,a5 -34b3936,f6 -34b3937,fb -34b3938,ac -34b3939,65 -34b393b,4 -34b393c,8c -34b393d,83 -34b393f,8 -34b3940,24 -34b3941,65 -34b3943,8 -34b3944,ac -34b3945,85 -34b3947,8 +34b38ec,8e +34b38ed,6 +34b38ef,8 +34b38f1,40 +34b38f2,20 +34b38f3,25 +34b38f4,3c +34b38f5,2 +34b38f6,80 +34b38f8,24 +34b38f9,42 +34b38fa,d +34b38fb,f0 +34b38fd,40 +34b38fe,f8 +34b38ff,9 +34b3900,8e +34b3901,5 +34b3903,4 +34b3904,8f +34b3905,bf +34b3907,14 +34b3908,8f +34b3909,b0 +34b390b,10 +34b390c,3 +34b390d,e0 +34b390f,8 +34b3910,27 +34b3911,bd +34b3913,18 +34b3914,27 +34b3915,bd +34b3916,ff +34b3917,e8 +34b3918,af +34b3919,bf +34b391b,14 +34b391c,c +34b391d,10 +34b391e,16 +34b391f,22 +34b3924,c +34b3925,10 +34b3926,15 +34b3927,c4 +34b392c,c +34b392d,10 +34b392e,18 +34b392f,e0 +34b3934,8f +34b3935,bf +34b3937,14 +34b3938,3 +34b3939,e0 +34b393b,8 +34b393c,27 +34b393d,bd +34b393f,18 +34b3940,3c +34b3941,2 +34b3942,80 +34b3943,1c +34b3944,34 +34b3945,42 +34b3946,84 +34b3947,a0 34b3948,3c -34b3949,5 -34b394a,fa -34b394c,ac -34b394d,65 -34b3950,24 -34b3951,5 -34b3953,d0 -34b3954,ac -34b3955,65 -34b3957,4 -34b3959,51 -34b395a,10 -34b395b,21 +34b3949,3 +34b394b,1 +34b394d,43 +34b394e,10 +34b394f,21 +34b3950,94 +34b3951,43 +34b3952,9 +34b3953,34 +34b3954,24 +34b3955,2 +34b3957,6 +34b3958,14 +34b3959,62 +34b395b,19 +34b395c,3c 34b395d,2 -34b395e,13 -34b395f,80 -34b3960,3c -34b3961,3 -34b3963,ff -34b3964,34 -34b3965,63 -34b3966,f0 +34b395e,80 +34b395f,1c +34b3960,34 +34b3961,42 +34b3962,84 +34b3963,a0 +34b3964,3c +34b3965,3 +34b3967,1 34b3969,43 34b396a,10 -34b396b,24 -34b396c,3c -34b396d,5 -34b396e,e4 -34b3970,24 -34b3971,a5 -34b3972,3 -34b3973,9c -34b3975,45 -34b3976,10 -34b3977,25 -34b3978,af -34b3979,a2 -34b397b,20 -34b397d,11 -34b397e,13 -34b397f,80 -34b3981,43 -34b3982,10 -34b3983,24 -34b3984,34 -34b3985,42 -34b3987,24 -34b3988,af -34b3989,a2 -34b398b,24 -34b398c,3c -34b398d,2 -34b398e,e1 -34b3990,af -34b3991,a2 -34b3993,28 -34b3994,af -34b3995,a0 -34b3997,2c +34b396b,21 +34b396c,94 +34b396d,42 +34b396e,9 +34b396f,48 +34b3970,14 +34b3971,40 +34b3973,13 +34b3974,3c +34b3975,2 +34b3976,80 +34b3977,1c +34b3978,34 +34b3979,42 +34b397a,84 +34b397b,a0 +34b397d,43 +34b397e,10 +34b397f,21 +34b3980,94 +34b3981,42 +34b3982,9 +34b3983,44 +34b3984,14 +34b3985,40 +34b3987,e +34b3988,3c +34b3989,2 +34b398a,80 +34b398b,1c +34b398c,34 +34b398d,42 +34b398e,84 +34b398f,a0 +34b3990,84 +34b3991,42 +34b3993,14 +34b3994,4 +34b3995,41 +34b3997,a 34b3998,3c 34b3999,2 -34b399a,f1 -34b399c,af -34b399d,a2 -34b399f,30 -34b39a0,3c -34b39a1,2 -34b39a2,4 -34b39a4,24 +34b399a,80 +34b399b,1c +34b399c,27 +34b399d,bd +34b399e,ff +34b399f,e8 +34b39a0,af +34b39a1,bf +34b39a3,14 +34b39a4,34 34b39a5,42 -34b39a6,4 -34b39a8,af -34b39a9,a2 -34b39ab,34 -34b39ac,27 -34b39ad,a2 -34b39af,20 -34b39b0,27 -34b39b1,a9 -34b39b3,38 -34b39b4,8c -34b39b5,83 -34b39b7,8 -34b39b8,24 -34b39b9,65 +34b39a6,84 +34b39a7,a0 +34b39a8,8c +34b39a9,44 +34b39ac,c +34b39ad,10 +34b39ae,16 +34b39af,72 +34b39b0,24 +34b39b1,84 +34b39b2,2 +34b39b3,a8 +34b39b4,8f +34b39b5,bf +34b39b7,14 +34b39b8,3 +34b39b9,e0 34b39bb,8 -34b39bc,ac -34b39bd,85 -34b39bf,8 -34b39c0,8c -34b39c1,47 -34b39c3,4 -34b39c4,8c -34b39c5,46 -34b39c8,ac -34b39c9,67 -34b39cb,4 -34b39cc,24 +34b39bc,27 +34b39bd,bd +34b39bf,18 +34b39c0,3 +34b39c1,e0 +34b39c3,8 +34b39c8,3c +34b39c9,2 +34b39ca,80 +34b39cb,40 +34b39cc,8c 34b39cd,42 -34b39cf,8 -34b39d0,15 -34b39d1,22 -34b39d2,ff -34b39d3,f8 -34b39d4,ac -34b39d5,66 -34b39d9,80 -34b39da,80 -34b39db,25 -34b39dc,8c -34b39dd,82 -34b39df,8 -34b39e0,24 -34b39e1,43 -34b39e3,8 -34b39e4,ac -34b39e5,83 -34b39e7,8 -34b39e8,3c -34b39e9,3 -34b39ea,e7 -34b39ec,ac -34b39ed,43 -34b39f0,ac -34b39f1,40 -34b39f3,4 -34b39f4,8c -34b39f5,82 -34b39f7,8 -34b39f8,24 -34b39f9,43 -34b39fb,8 -34b39fc,ac -34b39fd,83 -34b39ff,8 -34b3a00,3c -34b3a01,3 -34b3a02,fc -34b3a03,11 -34b3a04,34 -34b3a05,63 -34b3a06,96 -34b3a07,23 -34b3a08,ac -34b3a09,43 -34b3a0c,3c -34b3a0d,3 -34b3a0e,ff -34b3a0f,2f -34b3a10,34 -34b3a11,63 -34b3a12,ff -34b3a13,ff -34b3a14,11 -34b3a17,4c +34b39ce,67 +34b39d0,10 +34b39d1,40 +34b39d2,2 +34b39d3,69 +34b39d4,3c +34b39d5,3 +34b39d6,80 +34b39d7,40 +34b39d8,27 +34b39d9,bd +34b39da,ff +34b39db,90 +34b39dc,af +34b39dd,bf +34b39df,6c +34b39e0,af +34b39e1,be +34b39e3,68 +34b39e4,af +34b39e5,b7 +34b39e7,64 +34b39e8,af +34b39e9,b6 +34b39eb,60 +34b39ec,af +34b39ed,b5 +34b39ef,5c +34b39f0,af +34b39f1,b4 +34b39f3,58 +34b39f4,af +34b39f5,b3 +34b39f7,54 +34b39f8,af +34b39f9,b2 +34b39fb,50 +34b39fc,af +34b39fd,b1 +34b39ff,4c +34b3a00,af +34b3a01,b0 +34b3a03,48 +34b3a04,8c +34b3a05,82 +34b3a07,4 +34b3a08,8c +34b3a09,63 +34b3a0a,67 +34b3a0b,2c +34b3a0c,24 +34b3a0d,45 +34b3a0f,8 +34b3a10,ac +34b3a11,85 +34b3a13,8 +34b3a14,3c +34b3a15,5 +34b3a16,de 34b3a18,ac -34b3a19,43 -34b3a1b,4 -34b3a1c,3c -34b3a1d,5 -34b3a1e,80 -34b3a1f,40 -34b3a20,24 -34b3a21,a5 -34b3a22,64 -34b3a23,38 -34b3a24,94 -34b3a25,a7 -34b3a27,8 -34b3a28,c -34b3a29,10 -34b3a2a,14 -34b3a2b,51 -34b3a2e,30 -34b3a2f,25 -34b3a30,3c -34b3a31,2 -34b3a32,80 -34b3a33,40 -34b3a34,8c -34b3a35,42 -34b3a36,65 -34b3a37,1c -34b3a38,18 -34b3a39,40 -34b3a3b,43 -34b3a3c,3c -34b3a3d,2 -34b3a3e,80 -34b3a3f,40 -34b3a40,3c -34b3a41,13 -34b3a42,80 -34b3a43,40 -34b3a44,26 -34b3a45,73 -34b3a46,64 -34b3a47,7c -34b3a4a,90 -34b3a4b,25 -34b3a4c,3c -34b3a4d,1e -34b3a4e,80 -34b3a4f,40 +34b3a19,45 +34b3a1c,ac +34b3a1d,43 +34b3a1f,4 +34b3a20,3c +34b3a21,2 +34b3a22,80 +34b3a23,11 +34b3a24,34 +34b3a25,42 +34b3a26,a5 +34b3a27,d0 +34b3a28,94 +34b3a29,54 +34b3a2a,f +34b3a2b,2e +34b3a2c,3c +34b3a2d,2 +34b3a2e,80 +34b3a2f,40 +34b3a30,8c +34b3a31,42 +34b3a32,67 +34b3a33,10 +34b3a34,50 +34b3a35,40 +34b3a37,5 +34b3a38,24 +34b3a39,8 +34b3a3b,1 +34b3a3c,32 +34b3a3d,88 +34b3a3f,1 +34b3a41,14 +34b3a42,a0 +34b3a43,42 +34b3a44,10 +34b3a47,2 +34b3a48,32 +34b3a49,94 +34b3a4b,1 +34b3a4c,24 +34b3a4d,14 +34b3a4f,1 34b3a50,3c -34b3a51,16 +34b3a51,2 34b3a52,80 34b3a53,40 -34b3a54,26 -34b3a55,d6 -34b3a56,64 -34b3a57,58 -34b3a58,24 -34b3a59,42 -34b3a5a,64 -34b3a5b,68 -34b3a5c,af -34b3a5d,a2 -34b3a5f,3c +34b3a54,8c +34b3a55,55 +34b3a56,67 +34b3a57,1c +34b3a58,12 +34b3a59,a0 +34b3a5b,7 +34b3a5c,2 +34b3a5d,a0 +34b3a5e,18 +34b3a5f,25 34b3a60,3c 34b3a61,2 34b3a62,80 34b3a63,40 -34b3a64,24 -34b3a65,42 -34b3a66,64 -34b3a67,38 -34b3a68,af -34b3a69,a2 +34b3a64,94 +34b3a65,43 +34b3a66,65 +34b3a67,ec +34b3a69,3 +34b3a6a,10 34b3a6b,40 -34b3a6c,3c -34b3a6d,17 -34b3a6e,80 -34b3a6f,40 -34b3a70,8f -34b3a71,c2 -34b3a72,65 -34b3a73,28 -34b3a74,50 -34b3a75,40 -34b3a77,b -34b3a78,92 -34b3a79,62 -34b3a7c,92 -34b3a7d,63 -34b3a80,3c +34b3a6d,43 +34b3a6e,10 +34b3a6f,21 +34b3a71,2 +34b3a72,10 +34b3a73,40 +34b3a74,24 +34b3a75,43 +34b3a77,1 +34b3a78,3c +34b3a79,2 +34b3a7a,80 +34b3a7b,40 +34b3a7c,94 +34b3a7d,42 +34b3a7e,65 +34b3a7f,ec 34b3a81,2 -34b3a82,80 -34b3a83,11 -34b3a84,34 +34b3a82,10 +34b3a83,c0 +34b3a84,24 34b3a85,42 -34b3a86,a5 -34b3a87,d0 +34b3a87,57 34b3a89,43 34b3a8a,10 34b3a8b,21 -34b3a8c,90 -34b3a8d,42 -34b3a8f,a8 -34b3a91,2 -34b3a92,10 -34b3a93,42 -34b3a94,30 -34b3a95,42 -34b3a97,1 -34b3a98,50 -34b3a99,40 -34b3a9b,27 -34b3a9c,26 -34b3a9d,52 -34b3a9f,1 -34b3aa0,92 -34b3aa1,62 -34b3aa5,56 -34b3aa6,10 -34b3aa7,21 -34b3aa8,80 -34b3aa9,46 -34b3aac,28 -34b3aad,c2 -34b3aaf,3 -34b3ab0,54 -34b3ab1,40 -34b3ab3,21 -34b3ab4,26 -34b3ab5,52 -34b3ab7,1 -34b3ab8,24 -34b3ab9,c6 +34b3a8c,24 +34b3a8d,3 +34b3a8e,1 +34b3a8f,40 +34b3a91,62 +34b3a92,18 +34b3a93,23 +34b3a95,3 +34b3a96,8f +34b3a97,c2 +34b3a98,2 +34b3a99,23 +34b3a9a,88 +34b3a9b,21 +34b3a9d,11 +34b3a9e,88 +34b3a9f,43 +34b3aa0,26 +34b3aa1,23 +34b3aa3,1 +34b3aa4,af +34b3aa5,a3 +34b3aa7,38 +34b3aa8,8c +34b3aa9,83 +34b3aab,8 +34b3aac,24 +34b3aad,65 +34b3aaf,8 +34b3ab0,ac +34b3ab1,85 +34b3ab3,8 +34b3ab4,3c +34b3ab5,5 +34b3ab6,fc +34b3ab7,ff +34b3ab8,34 +34b3ab9,a5 34b3aba,ff -34b3abb,fd -34b3abd,6 -34b3abe,18 -34b3abf,40 -34b3ac1,66 -34b3ac2,18 -34b3ac3,21 -34b3ac4,8f -34b3ac5,a2 -34b3ac7,3c -34b3ac9,62 -34b3aca,18 -34b3acb,21 -34b3acc,90 -34b3acd,62 -34b3ad1,2 -34b3ad2,16 -34b3ad4,90 -34b3ad5,64 -34b3ad7,2 -34b3ad9,4 -34b3ada,22 -34b3add,44 -34b3ade,10 -34b3adf,25 -34b3ae0,90 -34b3ae1,63 -34b3ae3,1 -34b3ae5,3 -34b3ae6,1c -34b3ae9,43 +34b3abb,ff +34b3abc,ac +34b3abd,65 +34b3ac0,3c +34b3ac1,5 +34b3ac2,ff +34b3ac3,fd +34b3ac4,34 +34b3ac5,a5 +34b3ac6,f6 +34b3ac7,fb +34b3ac8,ac +34b3ac9,65 +34b3acb,4 +34b3acc,8c +34b3acd,83 +34b3acf,8 +34b3ad0,24 +34b3ad1,65 +34b3ad3,8 +34b3ad4,ac +34b3ad5,85 +34b3ad7,8 +34b3ad8,3c +34b3ad9,5 +34b3ada,fa +34b3adc,ac +34b3add,65 +34b3ae0,24 +34b3ae1,5 +34b3ae3,d0 +34b3ae4,ac +34b3ae5,65 +34b3ae7,4 +34b3ae9,51 34b3aea,10 -34b3aeb,25 -34b3aec,34 -34b3aed,42 -34b3aef,ff -34b3af0,8e +34b3aeb,21 +34b3aed,2 +34b3aee,13 +34b3aef,80 +34b3af0,3c 34b3af1,3 -34b3af3,8 -34b3af4,24 -34b3af5,64 -34b3af7,8 -34b3af8,ae -34b3af9,4 -34b3afb,8 +34b3af3,ff +34b3af4,34 +34b3af5,63 +34b3af6,f0 +34b3af9,43 +34b3afa,10 +34b3afb,24 34b3afc,3c -34b3afd,4 -34b3afe,fa -34b3b00,ac -34b3b01,64 -34b3b04,ac -34b3b05,62 -34b3b07,4 -34b3b08,24 -34b3b09,2 -34b3b0b,10 -34b3b0c,af -34b3b0d,a2 -34b3b0f,18 -34b3b10,af -34b3b11,a2 -34b3b13,14 -34b3b15,12 -34b3b16,11 -34b3b19,52 -34b3b1a,10 -34b3b1b,21 -34b3b1c,24 -34b3b1d,42 -34b3b1f,a +34b3afd,5 +34b3afe,e4 +34b3b00,24 +34b3b01,a5 +34b3b02,3 +34b3b03,9c +34b3b05,45 +34b3b06,10 +34b3b07,25 +34b3b08,af +34b3b09,a2 +34b3b0b,20 +34b3b0d,11 +34b3b0e,13 +34b3b0f,80 +34b3b11,43 +34b3b12,10 +34b3b13,24 +34b3b14,34 +34b3b15,42 +34b3b17,24 +34b3b18,af +34b3b19,a2 +34b3b1b,24 +34b3b1c,3c +34b3b1d,2 +34b3b1e,e1 34b3b20,af 34b3b21,a2 -34b3b23,10 -34b3b24,8f -34b3b25,a7 -34b3b27,38 -34b3b28,8f -34b3b29,a5 -34b3b2b,40 -34b3b2c,c -34b3b2d,10 -34b3b2e,14 -34b3b2f,b9 -34b3b30,2 -34b3b32,20 -34b3b33,25 -34b3b34,26 -34b3b35,52 -34b3b37,1 -34b3b38,8e -34b3b39,e2 -34b3b3a,65 -34b3b3b,1c -34b3b3c,2 -34b3b3d,42 -34b3b3e,10 -34b3b3f,2a -34b3b40,14 -34b3b41,40 -34b3b42,ff -34b3b43,cb -34b3b44,26 -34b3b45,73 -34b3b47,c -34b3b48,8e -34b3b49,2 +34b3b23,28 +34b3b24,af +34b3b25,a0 +34b3b27,2c +34b3b28,3c +34b3b29,2 +34b3b2a,f1 +34b3b2c,af +34b3b2d,a2 +34b3b2f,30 +34b3b30,3c +34b3b31,2 +34b3b32,4 +34b3b34,24 +34b3b35,42 +34b3b36,4 +34b3b38,af +34b3b39,a2 +34b3b3b,34 +34b3b3c,27 +34b3b3d,a2 +34b3b3f,20 +34b3b40,27 +34b3b41,a9 +34b3b43,38 +34b3b44,8c +34b3b45,83 +34b3b47,8 +34b3b48,24 +34b3b49,65 34b3b4b,8 -34b3b4c,24 -34b3b4d,43 +34b3b4c,ac +34b3b4d,85 34b3b4f,8 -34b3b50,ae -34b3b51,3 -34b3b53,8 -34b3b54,3c -34b3b55,3 -34b3b56,fa +34b3b50,8c +34b3b51,47 +34b3b53,4 +34b3b54,8c +34b3b55,46 34b3b58,ac -34b3b59,43 +34b3b59,67 +34b3b5b,4 34b3b5c,24 -34b3b5d,3 -34b3b5e,ff -34b3b5f,ff -34b3b60,12 -34b3b61,80 -34b3b63,35 +34b3b5d,42 +34b3b5f,8 +34b3b60,15 +34b3b61,22 +34b3b62,ff +34b3b63,f8 34b3b64,ac -34b3b65,43 -34b3b67,4 -34b3b68,3c -34b3b69,5 +34b3b65,66 +34b3b69,80 34b3b6a,80 -34b3b6b,40 -34b3b6c,24 -34b3b6d,a5 -34b3b6e,64 -34b3b6f,48 -34b3b70,94 -34b3b71,a7 +34b3b6b,25 +34b3b6c,8c +34b3b6d,82 +34b3b6f,8 +34b3b70,24 +34b3b71,43 34b3b73,8 -34b3b76,30 -34b3b77,25 -34b3b78,c -34b3b79,10 -34b3b7a,14 -34b3b7b,51 -34b3b7c,2 -34b3b7e,20 -34b3b7f,25 -34b3b80,3c -34b3b81,2 -34b3b82,80 -34b3b83,40 +34b3b74,ac +34b3b75,83 +34b3b77,8 +34b3b78,3c +34b3b79,3 +34b3b7a,e7 +34b3b7c,ac +34b3b7d,43 +34b3b80,ac +34b3b81,40 +34b3b83,4 34b3b84,8c -34b3b85,42 -34b3b86,65 -34b3b87,1c -34b3b88,18 -34b3b89,40 -34b3b8a,1 -34b3b8b,95 -34b3b8c,3c -34b3b8d,2 -34b3b8e,80 -34b3b8f,40 +34b3b85,82 +34b3b87,8 +34b3b88,24 +34b3b89,43 +34b3b8b,8 +34b3b8c,ac +34b3b8d,83 +34b3b8f,8 34b3b90,3c -34b3b91,13 -34b3b92,80 -34b3b93,40 -34b3b94,26 -34b3b95,73 -34b3b96,64 -34b3b97,7c -34b3b9a,90 -34b3b9b,25 +34b3b91,3 +34b3b92,fc +34b3b93,11 +34b3b94,34 +34b3b95,63 +34b3b96,96 +34b3b97,23 +34b3b98,ac +34b3b99,43 34b3b9c,3c -34b3b9d,17 -34b3b9e,80 -34b3b9f,40 -34b3ba0,3c -34b3ba1,14 -34b3ba2,80 -34b3ba3,40 -34b3ba4,26 -34b3ba5,94 -34b3ba6,64 -34b3ba7,58 -34b3ba8,24 -34b3ba9,42 -34b3baa,64 -34b3bab,48 -34b3bac,af -34b3bad,a2 -34b3baf,3c -34b3bb0,3c -34b3bb1,1e -34b3bb2,80 -34b3bb3,11 -34b3bb4,37 -34b3bb5,de -34b3bb6,a5 -34b3bb7,d0 -34b3bb8,3c -34b3bb9,16 -34b3bba,80 -34b3bbb,40 -34b3bbc,8e -34b3bbd,e2 -34b3bbe,65 -34b3bbf,28 -34b3bc0,10 -34b3bc1,40 -34b3bc3,8 -34b3bc4,92 -34b3bc5,62 -34b3bc8,3 -34b3bc9,c2 -34b3bca,10 -34b3bcb,21 -34b3bcc,90 -34b3bcd,42 -34b3bcf,a8 -34b3bd1,2 -34b3bd2,10 -34b3bd3,42 -34b3bd4,30 -34b3bd5,42 -34b3bd7,1 -34b3bd8,50 -34b3bd9,40 -34b3bdb,13 -34b3bdc,26 -34b3bdd,52 -34b3bdf,1 -34b3be0,92 -34b3be1,62 -34b3be5,54 -34b3be6,10 -34b3be7,21 -34b3be8,80 -34b3be9,46 -34b3bec,2c -34b3bed,c2 -34b3bef,3 -34b3bf0,50 -34b3bf1,40 -34b3bf3,d -34b3bf4,26 -34b3bf5,52 -34b3bf7,1 -34b3bf8,24 -34b3bf9,2 -34b3bfb,10 -34b3bfc,af -34b3bfd,a2 -34b3bff,18 -34b3c00,af -34b3c01,a2 +34b3b9d,3 +34b3b9e,ff +34b3b9f,2f +34b3ba0,34 +34b3ba1,63 +34b3ba2,ff +34b3ba3,ff +34b3ba4,11 +34b3ba7,4c +34b3ba8,ac +34b3ba9,43 +34b3bab,4 +34b3bac,3c +34b3bad,5 +34b3bae,80 +34b3baf,40 +34b3bb0,24 +34b3bb1,a5 +34b3bb2,66 +34b3bb3,18 +34b3bb4,94 +34b3bb5,a7 +34b3bb7,8 +34b3bb8,c +34b3bb9,10 +34b3bba,14 +34b3bbb,a9 +34b3bbe,30 +34b3bbf,25 +34b3bc0,3c +34b3bc1,2 +34b3bc2,80 +34b3bc3,40 +34b3bc4,8c +34b3bc5,42 +34b3bc6,67 +34b3bc7,4 +34b3bc8,18 +34b3bc9,40 +34b3bcb,43 +34b3bcc,3c +34b3bcd,2 +34b3bce,80 +34b3bcf,40 +34b3bd0,3c +34b3bd1,13 +34b3bd2,80 +34b3bd3,40 +34b3bd4,26 +34b3bd5,73 +34b3bd6,66 +34b3bd7,5c +34b3bda,90 +34b3bdb,25 +34b3bdc,3c +34b3bdd,1e +34b3bde,80 +34b3bdf,40 +34b3be0,3c +34b3be1,16 +34b3be2,80 +34b3be3,40 +34b3be4,26 +34b3be5,d6 +34b3be6,66 +34b3be7,38 +34b3be8,24 +34b3be9,42 +34b3bea,66 +34b3beb,48 +34b3bec,af +34b3bed,a2 +34b3bef,3c +34b3bf0,3c +34b3bf1,2 +34b3bf2,80 +34b3bf3,40 +34b3bf4,24 +34b3bf5,42 +34b3bf6,66 +34b3bf7,18 +34b3bf8,af +34b3bf9,a2 +34b3bfb,40 +34b3bfc,3c +34b3bfd,17 +34b3bfe,80 +34b3bff,40 +34b3c00,8f +34b3c01,c2 +34b3c02,67 34b3c03,14 -34b3c05,12 -34b3c06,11 -34b3c09,52 -34b3c0a,10 -34b3c0b,21 -34b3c0c,24 -34b3c0d,42 -34b3c0f,a -34b3c10,af -34b3c11,a2 -34b3c13,10 -34b3c14,8f -34b3c15,a7 -34b3c17,38 -34b3c18,8f -34b3c19,a5 -34b3c1b,3c -34b3c1c,c -34b3c1d,10 -34b3c1e,14 -34b3c1f,b9 -34b3c20,2 -34b3c22,20 -34b3c23,25 -34b3c24,26 -34b3c25,52 +34b3c04,50 +34b3c05,40 +34b3c07,b +34b3c08,92 +34b3c09,62 +34b3c0c,92 +34b3c0d,63 +34b3c10,3c +34b3c11,2 +34b3c12,80 +34b3c13,11 +34b3c14,34 +34b3c15,42 +34b3c16,a5 +34b3c17,d0 +34b3c19,43 +34b3c1a,10 +34b3c1b,21 +34b3c1c,90 +34b3c1d,42 +34b3c1f,a8 +34b3c21,2 +34b3c22,10 +34b3c23,42 +34b3c24,30 +34b3c25,42 34b3c27,1 -34b3c28,8e -34b3c29,c2 -34b3c2a,65 -34b3c2b,1c -34b3c2c,2 -34b3c2d,42 -34b3c2e,10 -34b3c2f,2a -34b3c30,14 -34b3c31,40 -34b3c32,ff -34b3c33,e2 -34b3c34,26 -34b3c35,73 -34b3c37,c -34b3c38,3c -34b3c39,2 -34b3c3a,80 -34b3c3b,40 -34b3c3c,8c -34b3c3d,42 -34b3c3e,65 -34b3c3f,1c -34b3c40,18 +34b3c28,50 +34b3c29,40 +34b3c2b,27 +34b3c2c,26 +34b3c2d,52 +34b3c2f,1 +34b3c30,92 +34b3c31,62 +34b3c35,56 +34b3c36,10 +34b3c37,21 +34b3c38,80 +34b3c39,46 +34b3c3c,28 +34b3c3d,c2 +34b3c3f,3 +34b3c40,54 34b3c41,40 -34b3c43,10 +34b3c43,21 34b3c44,26 -34b3c45,31 -34b3c47,12 -34b3c48,3c -34b3c49,12 -34b3c4a,80 -34b3c4b,40 -34b3c4c,26 -34b3c4d,52 -34b3c4e,64 -34b3c4f,7e -34b3c50,24 -34b3c51,14 -34b3c53,b -34b3c56,98 -34b3c57,25 -34b3c58,3c -34b3c59,16 -34b3c5a,80 -34b3c5b,40 -34b3c5c,2 -34b3c5d,80 -34b3c5e,30 -34b3c5f,25 -34b3c60,2 -34b3c61,20 -34b3c62,28 -34b3c63,25 -34b3c64,c -34b3c65,10 -34b3c66,18 -34b3c67,87 -34b3c68,2 -34b3c69,40 -34b3c6a,20 -34b3c6b,25 -34b3c6c,26 -34b3c6d,73 -34b3c6f,1 -34b3c70,26 -34b3c71,52 -34b3c73,c -34b3c74,8e -34b3c75,c2 -34b3c76,65 -34b3c77,1c -34b3c78,2 -34b3c79,62 +34b3c45,52 +34b3c47,1 +34b3c48,24 +34b3c49,c6 +34b3c4a,ff +34b3c4b,fd +34b3c4d,6 +34b3c4e,18 +34b3c4f,40 +34b3c51,66 +34b3c52,18 +34b3c53,21 +34b3c54,8f +34b3c55,a2 +34b3c57,3c +34b3c59,62 +34b3c5a,18 +34b3c5b,21 +34b3c5c,90 +34b3c5d,62 +34b3c61,2 +34b3c62,16 +34b3c64,90 +34b3c65,64 +34b3c67,2 +34b3c69,4 +34b3c6a,22 +34b3c6d,44 +34b3c6e,10 +34b3c6f,25 +34b3c70,90 +34b3c71,63 +34b3c73,1 +34b3c75,3 +34b3c76,1c +34b3c79,43 34b3c7a,10 -34b3c7b,2a -34b3c7c,14 -34b3c7d,40 -34b3c7e,ff -34b3c7f,f7 -34b3c80,26 -34b3c81,94 -34b3c83,11 -34b3c84,3c -34b3c85,2 -34b3c86,80 -34b3c87,40 -34b3c88,94 -34b3c89,42 -34b3c8a,64 -34b3c8b,1c -34b3c8d,2 -34b3c8e,10 -34b3c8f,c0 -34b3c90,24 -34b3c91,42 -34b3c93,1 -34b3c95,51 -34b3c96,88 -34b3c97,21 +34b3c7b,25 +34b3c7c,34 +34b3c7d,42 +34b3c7f,ff +34b3c80,8e +34b3c81,3 +34b3c83,8 +34b3c84,24 +34b3c85,64 +34b3c87,8 +34b3c88,ae +34b3c89,4 +34b3c8b,8 +34b3c8c,3c +34b3c8d,4 +34b3c8e,fa +34b3c90,ac +34b3c91,64 +34b3c94,ac +34b3c95,62 +34b3c97,4 34b3c98,24 -34b3c99,7 -34b3c9b,1 -34b3c9c,24 -34b3c9d,6 -34b3c9f,11 -34b3ca0,3c -34b3ca1,5 -34b3ca2,80 -34b3ca3,40 -34b3ca4,24 -34b3ca5,a5 -34b3ca6,64 -34b3ca7,28 -34b3ca8,c -34b3ca9,10 -34b3caa,14 -34b3cab,51 -34b3cac,2 -34b3cae,20 -34b3caf,25 -34b3cb0,3c -34b3cb1,2 -34b3cb2,80 -34b3cb3,40 -34b3cb4,8c -34b3cb5,42 -34b3cb6,65 -34b3cb7,1c -34b3cb8,58 -34b3cb9,40 -34b3cbb,2c -34b3cbc,26 -34b3cbd,3e +34b3c99,2 +34b3c9b,10 +34b3c9c,af +34b3c9d,a2 +34b3c9f,18 +34b3ca0,af +34b3ca1,a2 +34b3ca3,14 +34b3ca5,12 +34b3ca6,11 +34b3ca9,52 +34b3caa,10 +34b3cab,21 +34b3cac,24 +34b3cad,42 +34b3caf,a +34b3cb0,af +34b3cb1,a2 +34b3cb3,10 +34b3cb4,8f +34b3cb5,a7 +34b3cb7,38 +34b3cb8,8f +34b3cb9,a5 +34b3cbb,40 +34b3cbc,c +34b3cbd,10 +34b3cbe,15 34b3cbf,11 -34b3cc0,3c -34b3cc1,13 -34b3cc2,80 -34b3cc3,40 +34b3cc0,2 +34b3cc2,20 +34b3cc3,25 34b3cc4,26 -34b3cc5,73 -34b3cc6,64 -34b3cc7,7c -34b3cca,90 -34b3ccb,25 +34b3cc5,52 +34b3cc7,1 +34b3cc8,8e +34b3cc9,e2 +34b3cca,67 +34b3ccb,4 34b3ccc,2 -34b3ccd,60 -34b3cce,a0 -34b3ccf,25 -34b3cd0,3c -34b3cd1,17 -34b3cd2,80 -34b3cd3,11 -34b3cd4,36 -34b3cd5,f7 -34b3cd6,a5 -34b3cd7,d0 -34b3cd8,3c -34b3cd9,16 -34b3cda,80 -34b3cdb,40 -34b3cdd,12 -34b3cde,10 -34b3cdf,40 -34b3ce1,52 -34b3ce2,10 -34b3ce3,21 -34b3ce5,2 -34b3ce6,10 -34b3ce7,80 -34b3ce9,54 -34b3cea,10 -34b3ceb,21 -34b3cec,80 -34b3ced,42 -34b3cef,1 -34b3cf0,4 -34b3cf1,43 -34b3cf3,19 -34b3cf4,26 -34b3cf5,52 -34b3cf7,1 -34b3cf8,92 -34b3cf9,62 -34b3cfc,2 -34b3cfd,e2 -34b3cfe,10 -34b3cff,21 -34b3d00,90 -34b3d01,42 -34b3d03,bc -34b3d05,2 -34b3d06,1e -34b3d09,3 -34b3d0a,1e -34b3d0b,3 -34b3d0c,28 -34b3d0d,63 -34b3d0f,a -34b3d10,50 -34b3d11,60 -34b3d13,1 -34b3d14,24 -34b3d15,2 -34b3d17,9 -34b3d18,24 -34b3d19,3 -34b3d1a,30 -34b3d1c,a7 -34b3d1d,a3 -34b3d1f,20 -34b3d21,40 -34b3d22,18 -34b3d23,25 -34b3d25,2 -34b3d26,16 -34b3d29,2 -34b3d2a,16 -34b3d2b,3 -34b3d2c,4 -34b3d2d,42 -34b3d2f,1 -34b3d32,18 -34b3d33,25 -34b3d34,24 -34b3d35,63 -34b3d37,30 -34b3d38,a3 -34b3d39,a3 -34b3d3b,20 -34b3d3d,12 -34b3d3e,31 -34b3d41,d2 -34b3d42,30 -34b3d43,21 -34b3d44,24 -34b3d45,c6 -34b3d47,b -34b3d48,2 -34b3d49,20 -34b3d4a,28 -34b3d4b,25 -34b3d4c,c -34b3d4d,10 -34b3d4e,18 -34b3d4f,87 -34b3d50,27 -34b3d51,a4 -34b3d53,20 -34b3d54,26 -34b3d55,52 -34b3d57,1 -34b3d58,8e +34b3ccd,42 +34b3cce,10 +34b3ccf,2a +34b3cd0,14 +34b3cd1,40 +34b3cd2,ff +34b3cd3,cb +34b3cd4,26 +34b3cd5,73 +34b3cd7,c +34b3cd8,8e +34b3cd9,2 +34b3cdb,8 +34b3cdc,24 +34b3cdd,43 +34b3cdf,8 +34b3ce0,ae +34b3ce1,3 +34b3ce3,8 +34b3ce4,3c +34b3ce5,3 +34b3ce6,fa +34b3ce8,ac +34b3ce9,43 +34b3cec,24 +34b3ced,3 +34b3cee,ff +34b3cef,ff +34b3cf0,12 +34b3cf1,80 +34b3cf3,35 +34b3cf4,ac +34b3cf5,43 +34b3cf7,4 +34b3cf8,3c +34b3cf9,5 +34b3cfa,80 +34b3cfb,40 +34b3cfc,24 +34b3cfd,a5 +34b3cfe,66 +34b3cff,28 +34b3d00,94 +34b3d01,a7 +34b3d03,8 +34b3d06,30 +34b3d07,25 +34b3d08,c +34b3d09,10 +34b3d0a,14 +34b3d0b,a9 +34b3d0c,2 +34b3d0e,20 +34b3d0f,25 +34b3d10,3c +34b3d11,2 +34b3d12,80 +34b3d13,40 +34b3d14,8c +34b3d15,42 +34b3d16,67 +34b3d17,4 +34b3d18,18 +34b3d19,40 +34b3d1a,1 +34b3d1b,95 +34b3d1c,3c +34b3d1d,2 +34b3d1e,80 +34b3d1f,40 +34b3d20,3c +34b3d21,13 +34b3d22,80 +34b3d23,40 +34b3d24,26 +34b3d25,73 +34b3d26,66 +34b3d27,5c +34b3d2a,90 +34b3d2b,25 +34b3d2c,3c +34b3d2d,17 +34b3d2e,80 +34b3d2f,40 +34b3d30,3c +34b3d31,14 +34b3d32,80 +34b3d33,40 +34b3d34,26 +34b3d35,94 +34b3d36,66 +34b3d37,38 +34b3d38,24 +34b3d39,42 +34b3d3a,66 +34b3d3b,28 +34b3d3c,af +34b3d3d,a2 +34b3d3f,3c +34b3d40,3c +34b3d41,1e +34b3d42,80 +34b3d43,11 +34b3d44,37 +34b3d45,de +34b3d46,a5 +34b3d47,d0 +34b3d48,3c +34b3d49,16 +34b3d4a,80 +34b3d4b,40 +34b3d4c,8e +34b3d4d,e2 +34b3d4e,67 +34b3d4f,14 +34b3d50,10 +34b3d51,40 +34b3d53,8 +34b3d54,92 +34b3d55,62 +34b3d58,3 34b3d59,c2 -34b3d5a,65 -34b3d5b,1c -34b3d5c,2 +34b3d5a,10 +34b3d5b,21 +34b3d5c,90 34b3d5d,42 -34b3d5e,10 -34b3d5f,2a -34b3d60,14 -34b3d61,40 -34b3d62,ff -34b3d63,de -34b3d64,26 -34b3d65,73 -34b3d67,c -34b3d68,26 -34b3d69,3e -34b3d6b,11 -34b3d6c,24 -34b3d6d,7 +34b3d5f,a8 +34b3d61,2 +34b3d62,10 +34b3d63,42 +34b3d64,30 +34b3d65,42 +34b3d67,1 +34b3d68,50 +34b3d69,40 +34b3d6b,13 +34b3d6c,26 +34b3d6d,52 34b3d6f,1 -34b3d70,24 -34b3d71,6 -34b3d73,e -34b3d74,3c -34b3d75,5 -34b3d76,80 -34b3d77,40 -34b3d78,24 -34b3d79,a5 -34b3d7a,64 -34b3d7b,28 -34b3d7c,c -34b3d7d,10 -34b3d7e,14 -34b3d7f,51 -34b3d80,2 -34b3d82,20 -34b3d83,25 -34b3d84,3c -34b3d85,2 -34b3d86,80 -34b3d87,40 -34b3d88,8c -34b3d89,42 -34b3d8a,65 -34b3d8b,1c -34b3d8c,18 -34b3d8d,40 -34b3d8f,2c -34b3d90,3c -34b3d91,2 -34b3d92,80 -34b3d93,40 -34b3d94,3c -34b3d95,13 -34b3d96,80 -34b3d97,40 -34b3d98,26 -34b3d99,73 -34b3d9a,64 -34b3d9b,7c -34b3d9e,90 -34b3d9f,25 -34b3da0,24 -34b3da1,17 -34b3da3,d -34b3da4,2 -34b3da5,60 -34b3da6,a0 -34b3da7,25 -34b3da8,24 -34b3da9,42 -34b3daa,64 -34b3dab,28 -34b3dac,af -34b3dad,a2 -34b3daf,38 -34b3db0,3c -34b3db1,16 -34b3db2,80 -34b3db3,40 -34b3db4,92 -34b3db5,63 -34b3db8,50 -34b3db9,77 -34b3dbb,1 -34b3dbc,24 -34b3dbd,3 -34b3dbf,a -34b3dc1,12 -34b3dc2,10 -34b3dc3,40 -34b3dc5,52 -34b3dc6,10 -34b3dc7,21 +34b3d70,92 +34b3d71,62 +34b3d75,54 +34b3d76,10 +34b3d77,21 +34b3d78,80 +34b3d79,46 +34b3d7c,2c +34b3d7d,c2 +34b3d7f,3 +34b3d80,50 +34b3d81,40 +34b3d83,d +34b3d84,26 +34b3d85,52 +34b3d87,1 +34b3d88,24 +34b3d89,2 +34b3d8b,10 +34b3d8c,af +34b3d8d,a2 +34b3d8f,18 +34b3d90,af +34b3d91,a2 +34b3d93,14 +34b3d95,12 +34b3d96,11 +34b3d99,52 +34b3d9a,10 +34b3d9b,21 +34b3d9c,24 +34b3d9d,42 +34b3d9f,a +34b3da0,af +34b3da1,a2 +34b3da3,10 +34b3da4,8f +34b3da5,a7 +34b3da7,38 +34b3da8,8f +34b3da9,a5 +34b3dab,3c +34b3dac,c +34b3dad,10 +34b3dae,15 +34b3daf,11 +34b3db0,2 +34b3db2,20 +34b3db3,25 +34b3db4,26 +34b3db5,52 +34b3db7,1 +34b3db8,8e +34b3db9,c2 +34b3dba,67 +34b3dbb,4 +34b3dbc,2 +34b3dbd,42 +34b3dbe,10 +34b3dbf,2a +34b3dc0,14 +34b3dc1,40 +34b3dc2,ff +34b3dc3,e2 +34b3dc4,26 +34b3dc5,73 +34b3dc7,c +34b3dc8,3c 34b3dc9,2 -34b3dca,10 -34b3dcb,80 -34b3dcd,54 -34b3dce,10 -34b3dcf,21 -34b3dd0,90 -34b3dd1,42 -34b3dd3,1 -34b3dd4,30 -34b3dd5,42 -34b3dd7,40 -34b3dd8,50 -34b3dd9,40 -34b3ddb,15 +34b3dca,80 +34b3dcb,40 +34b3dcc,8c +34b3dcd,42 +34b3dce,67 +34b3dcf,4 +34b3dd0,18 +34b3dd1,40 +34b3dd3,10 +34b3dd4,26 +34b3dd5,31 +34b3dd7,12 +34b3dd8,3c +34b3dd9,12 +34b3dda,80 +34b3ddb,40 34b3ddc,26 34b3ddd,52 -34b3ddf,1 -34b3de0,3c -34b3de1,2 -34b3de2,80 -34b3de3,11 -34b3de4,34 -34b3de5,42 -34b3de6,a5 -34b3de7,d0 -34b3de9,43 -34b3dea,10 -34b3deb,21 -34b3dec,90 -34b3ded,42 -34b3def,a8 -34b3df0,30 -34b3df1,42 -34b3df3,1 -34b3df4,50 -34b3df5,40 -34b3df7,e -34b3df8,26 -34b3df9,52 -34b3dfb,1 -34b3dfc,24 -34b3dfd,2 -34b3dff,10 -34b3e00,af -34b3e01,a2 -34b3e03,18 -34b3e04,af -34b3e05,a2 -34b3e07,14 -34b3e09,12 -34b3e0a,11 -34b3e0d,52 -34b3e0e,10 -34b3e0f,21 -34b3e10,24 -34b3e11,42 -34b3e13,a -34b3e14,af -34b3e15,a2 -34b3e17,10 -34b3e18,3 -34b3e19,c0 -34b3e1a,38 -34b3e1b,25 -34b3e1e,30 -34b3e1f,25 -34b3e20,8f -34b3e21,a5 -34b3e23,38 -34b3e24,c -34b3e25,10 -34b3e26,14 -34b3e27,b9 -34b3e28,2 -34b3e2a,20 -34b3e2b,25 -34b3e2c,26 -34b3e2d,52 -34b3e2f,1 -34b3e30,8e -34b3e31,c2 -34b3e32,65 -34b3e33,1c -34b3e34,2 -34b3e35,42 -34b3e36,10 -34b3e37,2a -34b3e38,14 -34b3e39,40 -34b3e3a,ff -34b3e3b,de -34b3e3c,26 -34b3e3d,73 -34b3e3f,c -34b3e40,24 -34b3e41,7 -34b3e43,1 -34b3e44,24 -34b3e45,6 -34b3e47,a -34b3e48,3c -34b3e49,5 -34b3e4a,80 -34b3e4b,40 -34b3e4c,24 -34b3e4d,a5 -34b3e4e,64 -34b3e4f,28 -34b3e50,c -34b3e51,10 -34b3e52,14 -34b3e53,51 -34b3e54,2 -34b3e56,20 -34b3e57,25 -34b3e58,3c -34b3e59,2 -34b3e5a,80 -34b3e5b,40 -34b3e5c,8c -34b3e5d,42 -34b3e5e,65 -34b3e5f,1c -34b3e60,58 -34b3e61,40 -34b3e63,28 -34b3e64,26 -34b3e65,3e -34b3e67,22 -34b3e6a,90 -34b3e6b,25 -34b3e6c,3c -34b3e6d,13 -34b3e6e,80 +34b3dde,66 +34b3ddf,5e +34b3de0,24 +34b3de1,14 +34b3de3,b +34b3de6,98 +34b3de7,25 +34b3de8,3c +34b3de9,16 +34b3dea,80 +34b3deb,40 +34b3dec,2 +34b3ded,80 +34b3dee,30 +34b3def,25 +34b3df0,2 +34b3df1,20 +34b3df2,28 +34b3df3,25 +34b3df4,c +34b3df5,10 +34b3df6,18 +34b3df7,eb +34b3df8,2 +34b3df9,40 +34b3dfa,20 +34b3dfb,25 +34b3dfc,26 +34b3dfd,73 +34b3dff,1 +34b3e00,26 +34b3e01,52 +34b3e03,c +34b3e04,8e +34b3e05,c2 +34b3e06,67 +34b3e07,4 +34b3e08,2 +34b3e09,62 +34b3e0a,10 +34b3e0b,2a +34b3e0c,14 +34b3e0d,40 +34b3e0e,ff +34b3e0f,f7 +34b3e10,26 +34b3e11,94 +34b3e13,11 +34b3e14,3c +34b3e15,2 +34b3e16,80 +34b3e17,40 +34b3e18,94 +34b3e19,42 +34b3e1a,65 +34b3e1b,ec +34b3e1d,2 +34b3e1e,10 +34b3e1f,c0 +34b3e20,24 +34b3e21,42 +34b3e23,1 +34b3e25,51 +34b3e26,88 +34b3e27,21 +34b3e28,24 +34b3e29,7 +34b3e2b,1 +34b3e2c,24 +34b3e2d,6 +34b3e2f,11 +34b3e30,3c +34b3e31,5 +34b3e32,80 +34b3e33,40 +34b3e34,24 +34b3e35,a5 +34b3e36,65 +34b3e37,f8 +34b3e38,c +34b3e39,10 +34b3e3a,14 +34b3e3b,a9 +34b3e3c,2 +34b3e3e,20 +34b3e3f,25 +34b3e40,3c +34b3e41,2 +34b3e42,80 +34b3e43,40 +34b3e44,8c +34b3e45,42 +34b3e46,67 +34b3e47,4 +34b3e48,58 +34b3e49,40 +34b3e4b,2c +34b3e4c,26 +34b3e4d,3e +34b3e4f,11 +34b3e50,3c +34b3e51,13 +34b3e52,80 +34b3e53,40 +34b3e54,26 +34b3e55,73 +34b3e56,66 +34b3e57,5c +34b3e5a,90 +34b3e5b,25 +34b3e5c,2 +34b3e5d,60 +34b3e5e,a0 +34b3e5f,25 +34b3e60,3c +34b3e61,17 +34b3e62,80 +34b3e63,11 +34b3e64,36 +34b3e65,f7 +34b3e66,a5 +34b3e67,d0 +34b3e68,3c +34b3e69,16 +34b3e6a,80 +34b3e6b,40 +34b3e6d,12 +34b3e6e,10 34b3e6f,40 -34b3e70,26 -34b3e71,73 -34b3e72,64 -34b3e73,7c -34b3e74,3c -34b3e75,16 -34b3e76,80 -34b3e77,11 -34b3e78,3c -34b3e79,17 -34b3e7a,80 -34b3e7b,40 -34b3e7c,26 -34b3e7d,f7 -34b3e7e,64 -34b3e7f,28 -34b3e80,3c -34b3e81,14 -34b3e82,80 -34b3e83,40 -34b3e85,12 -34b3e86,10 -34b3e87,40 -34b3e89,52 -34b3e8a,10 -34b3e8b,21 -34b3e8d,2 +34b3e71,52 +34b3e72,10 +34b3e73,21 +34b3e75,2 +34b3e76,10 +34b3e77,80 +34b3e79,54 +34b3e7a,10 +34b3e7b,21 +34b3e7c,80 +34b3e7d,42 +34b3e7f,1 +34b3e80,4 +34b3e81,43 +34b3e83,19 +34b3e84,26 +34b3e85,52 +34b3e87,1 +34b3e88,92 +34b3e89,62 +34b3e8c,2 +34b3e8d,e2 34b3e8e,10 -34b3e8f,80 -34b3e91,53 -34b3e92,10 -34b3e93,21 -34b3e94,90 -34b3e95,42 -34b3e97,1 -34b3e98,30 -34b3e99,42 -34b3e9b,20 -34b3e9c,50 -34b3e9d,40 -34b3e9f,14 -34b3ea0,26 -34b3ea1,52 +34b3e8f,21 +34b3e90,90 +34b3e91,42 +34b3e93,bc +34b3e95,2 +34b3e96,1e +34b3e99,3 +34b3e9a,1e +34b3e9b,3 +34b3e9c,28 +34b3e9d,63 +34b3e9f,a +34b3ea0,50 +34b3ea1,60 34b3ea3,1 -34b3ea4,36 -34b3ea5,c2 -34b3ea6,a5 -34b3ea7,d0 -34b3ea8,8c -34b3ea9,42 -34b3eab,a4 -34b3eac,3c -34b3ead,3 -34b3eaf,40 -34b3eb1,43 -34b3eb2,10 -34b3eb3,24 -34b3eb4,50 -34b3eb5,40 -34b3eb7,e -34b3eb8,26 -34b3eb9,52 -34b3ebb,1 -34b3ebc,24 -34b3ebd,2 -34b3ebf,10 -34b3ec0,af -34b3ec1,a2 -34b3ec3,18 -34b3ec4,af -34b3ec5,a2 -34b3ec7,14 -34b3ec9,12 -34b3eca,11 -34b3ecd,52 -34b3ece,10 -34b3ecf,21 -34b3ed0,24 -34b3ed1,42 -34b3ed3,a -34b3ed4,af -34b3ed5,a2 -34b3ed7,10 -34b3ed8,3 -34b3ed9,c0 -34b3eda,38 +34b3ea4,24 +34b3ea5,2 +34b3ea7,9 +34b3ea8,24 +34b3ea9,3 +34b3eaa,30 +34b3eac,a7 +34b3ead,a3 +34b3eaf,20 +34b3eb1,40 +34b3eb2,18 +34b3eb3,25 +34b3eb5,2 +34b3eb6,16 +34b3eb9,2 +34b3eba,16 +34b3ebb,3 +34b3ebc,4 +34b3ebd,42 +34b3ebf,1 +34b3ec2,18 +34b3ec3,25 +34b3ec4,24 +34b3ec5,63 +34b3ec7,30 +34b3ec8,a3 +34b3ec9,a3 +34b3ecb,20 +34b3ecd,12 +34b3ece,31 +34b3ed1,d2 +34b3ed2,30 +34b3ed3,21 +34b3ed4,24 +34b3ed5,c6 +34b3ed7,b +34b3ed8,2 +34b3ed9,20 +34b3eda,28 34b3edb,25 -34b3ede,30 -34b3edf,25 -34b3ee0,2 -34b3ee1,e0 -34b3ee2,28 -34b3ee3,25 -34b3ee4,c -34b3ee5,10 -34b3ee6,14 -34b3ee7,b9 -34b3ee8,2 -34b3eea,20 -34b3eeb,25 -34b3eec,26 -34b3eed,52 -34b3eef,1 -34b3ef0,8e -34b3ef1,82 -34b3ef2,65 -34b3ef3,1c -34b3ef4,2 -34b3ef5,42 -34b3ef6,10 -34b3ef7,2a -34b3ef8,14 -34b3ef9,40 -34b3efa,ff -34b3efb,e3 -34b3efd,12 -34b3efe,10 -34b3eff,40 -34b3f00,26 -34b3f01,3e -34b3f03,22 -34b3f04,24 -34b3f05,7 -34b3f07,1 +34b3edc,c +34b3edd,10 +34b3ede,18 +34b3edf,eb +34b3ee0,27 +34b3ee1,a4 +34b3ee3,20 +34b3ee4,26 +34b3ee5,52 +34b3ee7,1 +34b3ee8,8e +34b3ee9,c2 +34b3eea,67 +34b3eeb,4 +34b3eec,2 +34b3eed,42 +34b3eee,10 +34b3eef,2a +34b3ef0,14 +34b3ef1,40 +34b3ef2,ff +34b3ef3,de +34b3ef4,26 +34b3ef5,73 +34b3ef7,c +34b3ef8,26 +34b3ef9,3e +34b3efb,11 +34b3efc,24 +34b3efd,7 +34b3eff,1 +34b3f00,24 +34b3f01,6 +34b3f03,e +34b3f04,3c +34b3f05,5 +34b3f06,80 +34b3f07,40 34b3f08,24 -34b3f09,6 -34b3f0b,10 -34b3f0c,3c -34b3f0d,5 -34b3f0e,80 -34b3f0f,40 -34b3f10,24 -34b3f11,a5 -34b3f12,64 -34b3f13,28 -34b3f14,c -34b3f15,10 -34b3f16,14 -34b3f17,51 -34b3f18,2 -34b3f1a,20 -34b3f1b,25 -34b3f1c,3c -34b3f1d,2 -34b3f1e,80 -34b3f1f,40 -34b3f20,8c -34b3f21,42 -34b3f22,65 -34b3f23,1c -34b3f24,18 -34b3f25,40 -34b3f27,2a -34b3f28,3c -34b3f29,13 -34b3f2a,80 -34b3f2b,40 -34b3f2c,26 -34b3f2d,73 -34b3f2e,64 -34b3f2f,7c -34b3f32,90 -34b3f33,25 +34b3f09,a5 +34b3f0a,65 +34b3f0b,f8 +34b3f0c,c +34b3f0d,10 +34b3f0e,14 +34b3f0f,a9 +34b3f10,2 +34b3f12,20 +34b3f13,25 +34b3f14,3c +34b3f15,2 +34b3f16,80 +34b3f17,40 +34b3f18,8c +34b3f19,42 +34b3f1a,67 +34b3f1b,4 +34b3f1c,18 +34b3f1d,40 +34b3f1f,2c +34b3f20,3c +34b3f21,2 +34b3f22,80 +34b3f23,40 +34b3f24,3c +34b3f25,13 +34b3f26,80 +34b3f27,40 +34b3f28,26 +34b3f29,73 +34b3f2a,66 +34b3f2b,5c +34b3f2e,90 +34b3f2f,25 +34b3f30,24 +34b3f31,17 +34b3f33,d 34b3f34,2 34b3f35,60 34b3f36,a0 34b3f37,25 -34b3f38,3c -34b3f39,17 -34b3f3a,80 -34b3f3b,11 -34b3f3c,3c -34b3f3d,2 -34b3f3e,80 -34b3f3f,40 -34b3f40,24 -34b3f41,42 -34b3f42,64 -34b3f43,28 -34b3f44,af -34b3f45,a2 -34b3f47,38 -34b3f48,3c -34b3f49,16 -34b3f4a,80 -34b3f4b,40 -34b3f4d,12 -34b3f4e,10 -34b3f4f,40 -34b3f51,52 +34b3f38,24 +34b3f39,42 +34b3f3a,65 +34b3f3b,f8 +34b3f3c,af +34b3f3d,a2 +34b3f3f,38 +34b3f40,3c +34b3f41,16 +34b3f42,80 +34b3f43,40 +34b3f44,92 +34b3f45,63 +34b3f48,50 +34b3f49,77 +34b3f4b,1 +34b3f4c,24 +34b3f4d,3 +34b3f4f,a +34b3f51,12 34b3f52,10 -34b3f53,21 -34b3f55,2 +34b3f53,40 +34b3f55,52 34b3f56,10 -34b3f57,80 -34b3f59,54 +34b3f57,21 +34b3f59,2 34b3f5a,10 -34b3f5b,21 -34b3f5c,90 -34b3f5d,42 -34b3f5f,1 -34b3f60,30 +34b3f5b,80 +34b3f5d,54 +34b3f5e,10 +34b3f5f,21 +34b3f60,90 34b3f61,42 -34b3f63,10 -34b3f64,50 -34b3f65,40 -34b3f67,16 -34b3f68,26 -34b3f69,52 -34b3f6b,1 -34b3f6c,36 -34b3f6d,e2 -34b3f6e,a5 -34b3f6f,d0 -34b3f70,92 -34b3f71,63 -34b3f75,43 -34b3f76,10 -34b3f77,21 -34b3f78,90 -34b3f79,42 -34b3f7b,a8 -34b3f7d,2 -34b3f7e,10 -34b3f7f,82 +34b3f63,1 +34b3f64,30 +34b3f65,42 +34b3f67,40 +34b3f68,50 +34b3f69,40 +34b3f6b,15 +34b3f6c,26 +34b3f6d,52 +34b3f6f,1 +34b3f70,3c +34b3f71,2 +34b3f72,80 +34b3f73,11 +34b3f74,34 +34b3f75,42 +34b3f76,a5 +34b3f77,d0 +34b3f79,43 +34b3f7a,10 +34b3f7b,21 +34b3f7c,90 +34b3f7d,42 +34b3f7f,a8 34b3f80,30 34b3f81,42 34b3f83,1 @@ -8793,8 +8784,8 @@ ec9ce7,7a 34b3fb3,38 34b3fb4,c 34b3fb5,10 -34b3fb6,14 -34b3fb7,b9 +34b3fb6,15 +34b3fb7,11 34b3fb8,2 34b3fba,20 34b3fbb,25 @@ -8803,8 +8794,8 @@ ec9ce7,7a 34b3fbf,1 34b3fc0,8e 34b3fc1,c2 -34b3fc2,65 -34b3fc3,1c +34b3fc2,67 +34b3fc3,4 34b3fc4,2 34b3fc5,42 34b3fc6,10 @@ -8812,3286 +8803,3666 @@ ec9ce7,7a 34b3fc8,14 34b3fc9,40 34b3fca,ff -34b3fcb,e0 +34b3fcb,de 34b3fcc,26 34b3fcd,73 34b3fcf,c -34b3fd0,26 -34b3fd1,3e -34b3fd3,33 +34b3fd0,24 +34b3fd1,7 +34b3fd3,1 34b3fd4,24 -34b3fd5,7 -34b3fd7,1 -34b3fd8,24 -34b3fd9,6 -34b3fdb,f -34b3fdc,3c -34b3fdd,5 -34b3fde,80 -34b3fdf,40 -34b3fe0,24 -34b3fe1,a5 -34b3fe2,64 -34b3fe3,28 -34b3fe4,c -34b3fe5,10 -34b3fe6,14 -34b3fe7,51 -34b3fe8,2 -34b3fea,20 -34b3feb,25 -34b3fec,3c -34b3fed,2 -34b3fee,80 -34b3fef,40 -34b3ff0,8c -34b3ff1,42 -34b3ff2,65 -34b3ff3,1c -34b3ff4,18 -34b3ff5,40 -34b3ff7,60 -34b3ff8,3c -34b3ff9,13 -34b3ffa,80 -34b3ffb,40 -34b3ffc,26 -34b3ffd,73 -34b3ffe,64 -34b3fff,7c -34b4002,90 -34b4003,25 -34b4004,2 -34b4005,60 -34b4006,a0 -34b4007,25 +34b3fd5,6 +34b3fd7,a +34b3fd8,3c +34b3fd9,5 +34b3fda,80 +34b3fdb,40 +34b3fdc,24 +34b3fdd,a5 +34b3fde,65 +34b3fdf,f8 +34b3fe0,c +34b3fe1,10 +34b3fe2,14 +34b3fe3,a9 +34b3fe4,2 +34b3fe6,20 +34b3fe7,25 +34b3fe8,3c +34b3fe9,2 +34b3fea,80 +34b3feb,40 +34b3fec,8c +34b3fed,42 +34b3fee,67 +34b3fef,4 +34b3ff0,58 +34b3ff1,40 +34b3ff3,28 +34b3ff4,26 +34b3ff5,3e +34b3ff7,22 +34b3ffa,90 +34b3ffb,25 +34b3ffc,3c +34b3ffd,13 +34b3ffe,80 +34b3fff,40 +34b4000,26 +34b4001,73 +34b4002,66 +34b4003,5c +34b4004,3c +34b4005,16 +34b4006,80 +34b4007,11 34b4008,3c 34b4009,17 34b400a,80 -34b400b,11 -34b400c,3c -34b400d,2 -34b400e,80 -34b400f,40 -34b4010,24 -34b4011,42 -34b4012,64 -34b4013,28 -34b4014,af -34b4015,a2 -34b4017,38 -34b4018,3c -34b4019,16 -34b401a,80 -34b401b,40 -34b401d,12 +34b400b,40 +34b400c,26 +34b400d,f7 +34b400e,65 +34b400f,f8 +34b4010,3c +34b4011,14 +34b4012,80 +34b4013,40 +34b4015,12 +34b4016,10 +34b4017,40 +34b4019,52 +34b401a,10 +34b401b,21 +34b401d,2 34b401e,10 -34b401f,40 -34b4021,52 +34b401f,80 +34b4021,53 34b4022,10 34b4023,21 -34b4025,2 -34b4026,10 -34b4027,80 -34b4029,54 -34b402a,10 -34b402b,21 -34b402c,90 -34b402d,42 -34b402f,1 -34b4030,30 -34b4031,42 -34b4033,10 -34b4034,50 -34b4035,40 -34b4037,16 -34b4038,26 -34b4039,52 -34b403b,1 -34b403c,36 -34b403d,e2 -34b403e,a5 -34b403f,d0 -34b4040,92 -34b4041,63 -34b4045,43 -34b4046,10 -34b4047,21 -34b4048,90 -34b4049,42 -34b404b,a8 +34b4024,90 +34b4025,42 +34b4027,1 +34b4028,30 +34b4029,42 +34b402b,20 +34b402c,50 +34b402d,40 +34b402f,14 +34b4030,26 +34b4031,52 +34b4033,1 +34b4034,36 +34b4035,c2 +34b4036,a5 +34b4037,d0 +34b4038,8c +34b4039,42 +34b403b,a4 +34b403c,3c +34b403d,3 +34b403f,40 +34b4041,43 +34b4042,10 +34b4043,24 +34b4044,50 +34b4045,40 +34b4047,e +34b4048,26 +34b4049,52 +34b404b,1 +34b404c,24 34b404d,2 -34b404e,10 -34b404f,42 -34b4050,30 -34b4051,42 -34b4053,1 -34b4054,50 -34b4055,40 -34b4057,e -34b4058,26 -34b4059,52 -34b405b,1 -34b405c,24 -34b405d,2 -34b405f,10 -34b4060,af -34b4061,a2 -34b4063,18 +34b404f,10 +34b4050,af +34b4051,a2 +34b4053,18 +34b4054,af +34b4055,a2 +34b4057,14 +34b4059,12 +34b405a,11 +34b405d,52 +34b405e,10 +34b405f,21 +34b4060,24 +34b4061,42 +34b4063,a 34b4064,af 34b4065,a2 -34b4067,14 -34b4069,12 -34b406a,11 -34b406d,52 -34b406e,10 -34b406f,21 -34b4070,24 -34b4071,42 -34b4073,a -34b4074,af -34b4075,a2 -34b4077,10 -34b4078,3 -34b4079,c0 -34b407a,38 +34b4067,10 +34b4068,3 +34b4069,c0 +34b406a,38 +34b406b,25 +34b406e,30 +34b406f,25 +34b4070,2 +34b4071,e0 +34b4072,28 +34b4073,25 +34b4074,c +34b4075,10 +34b4076,15 +34b4077,11 +34b4078,2 +34b407a,20 34b407b,25 -34b407e,30 -34b407f,25 -34b4080,8f -34b4081,a5 -34b4083,38 -34b4084,c -34b4085,10 -34b4086,14 -34b4087,b9 -34b4088,2 -34b408a,20 -34b408b,25 -34b408c,26 -34b408d,52 -34b408f,1 -34b4090,8e -34b4091,c2 -34b4092,65 -34b4093,1c -34b4094,2 -34b4095,42 -34b4096,10 -34b4097,2a -34b4098,14 -34b4099,40 -34b409a,ff -34b409b,e0 -34b409c,26 -34b409d,73 -34b409f,c -34b40a0,12 -34b40a1,a0 -34b40a3,35 -34b40a4,3c -34b40a5,2 -34b40a6,80 -34b40a7,40 -34b40a8,8c -34b40a9,42 -34b40aa,65 -34b40ab,1c -34b40ac,18 -34b40ad,40 -34b40af,32 -34b40b0,3c -34b40b1,13 -34b40b2,80 -34b40b3,40 -34b40b4,26 -34b40b5,73 -34b40b6,64 -34b40b7,7c -34b40b8,24 -34b40b9,14 -34b40bb,b -34b40be,90 -34b40bf,25 -34b40c0,3c -34b40c1,17 -34b40c2,80 -34b40c3,40 -34b40c4,3c -34b40c5,16 -34b40c6,80 -34b40c7,40 -34b40c8,26 -34b40c9,d6 -34b40ca,65 -34b40cb,4c +34b407c,26 +34b407d,52 +34b407f,1 +34b4080,8e +34b4081,82 +34b4082,67 +34b4083,4 +34b4084,2 +34b4085,42 +34b4086,10 +34b4087,2a +34b4088,14 +34b4089,40 +34b408a,ff +34b408b,e3 +34b408d,12 +34b408e,10 +34b408f,40 +34b4090,26 +34b4091,3e +34b4093,22 +34b4094,24 +34b4095,7 +34b4097,1 +34b4098,24 +34b4099,6 +34b409b,10 +34b409c,3c +34b409d,5 +34b409e,80 +34b409f,40 +34b40a0,24 +34b40a1,a5 +34b40a2,65 +34b40a3,f8 +34b40a4,c +34b40a5,10 +34b40a6,14 +34b40a7,a9 +34b40a8,2 +34b40aa,20 +34b40ab,25 +34b40ac,3c +34b40ad,2 +34b40ae,80 +34b40af,40 +34b40b0,8c +34b40b1,42 +34b40b2,67 +34b40b3,4 +34b40b4,18 +34b40b5,40 +34b40b7,2a +34b40b8,3c +34b40b9,13 +34b40ba,80 +34b40bb,40 +34b40bc,26 +34b40bd,73 +34b40be,66 +34b40bf,5c +34b40c2,90 +34b40c3,25 +34b40c4,2 +34b40c5,60 +34b40c6,a0 +34b40c7,25 +34b40c8,3c +34b40c9,17 +34b40ca,80 +34b40cb,11 34b40cc,3c -34b40cd,15 +34b40cd,2 34b40ce,80 34b40cf,40 -34b40d0,26 -34b40d1,b5 -34b40d2,64 -34b40d3,c -34b40d4,3c -34b40d5,2 -34b40d6,80 -34b40d7,40 -34b40d8,24 -34b40d9,42 -34b40da,64 -34b40db,10 -34b40dc,af -34b40dd,a2 -34b40df,38 -34b40e0,3c -34b40e1,1e -34b40e2,80 -34b40e3,40 -34b40e4,8e -34b40e5,e2 -34b40e6,65 -34b40e7,2c -34b40e8,50 -34b40e9,40 -34b40eb,14 -34b40ec,92 -34b40ed,62 -34b40f1,12 -34b40f2,10 -34b40f3,40 -34b40f5,52 -34b40f6,10 -34b40f7,21 -34b40f9,2 -34b40fa,10 -34b40fb,80 -34b40fc,27 -34b40fd,c3 -34b40fe,64 -34b40ff,7c -34b4101,43 -34b4102,10 -34b4103,21 -34b4104,90 -34b4105,42 -34b4107,1 -34b4108,30 +34b40d0,24 +34b40d1,42 +34b40d2,65 +34b40d3,f8 +34b40d4,af +34b40d5,a2 +34b40d7,38 +34b40d8,3c +34b40d9,16 +34b40da,80 +34b40db,40 +34b40dd,12 +34b40de,10 +34b40df,40 +34b40e1,52 +34b40e2,10 +34b40e3,21 +34b40e5,2 +34b40e6,10 +34b40e7,80 +34b40e9,54 +34b40ea,10 +34b40eb,21 +34b40ec,90 +34b40ed,42 +34b40ef,1 +34b40f0,30 +34b40f1,42 +34b40f3,10 +34b40f4,50 +34b40f5,40 +34b40f7,16 +34b40f8,26 +34b40f9,52 +34b40fb,1 +34b40fc,36 +34b40fd,e2 +34b40fe,a5 +34b40ff,d0 +34b4100,92 +34b4101,63 +34b4105,43 +34b4106,10 +34b4107,21 +34b4108,90 34b4109,42 -34b410b,10 -34b410c,50 -34b410d,40 -34b410f,b -34b4110,92 -34b4111,62 -34b4114,92 -34b4115,63 -34b4118,3c -34b4119,2 -34b411a,80 -34b411b,11 -34b411c,34 -34b411d,42 -34b411e,a5 -34b411f,d0 -34b4121,43 -34b4122,10 -34b4123,21 -34b4124,90 -34b4125,42 -34b4127,a8 -34b4129,2 -34b412a,10 -34b412b,82 -34b412c,30 -34b412d,42 -34b412f,1 -34b4130,50 -34b4131,40 -34b4133,b -34b4134,26 -34b4135,52 -34b4137,1 -34b4138,92 -34b4139,62 -34b413d,56 -34b413e,10 -34b413f,21 -34b4140,90 -34b4141,42 -34b4144,14 -34b4145,40 -34b4147,2 +34b410b,a8 +34b410d,2 +34b410e,10 +34b410f,82 +34b4110,30 +34b4111,42 +34b4113,1 +34b4114,50 +34b4115,40 +34b4117,e +34b4118,26 +34b4119,52 +34b411b,1 +34b411c,24 +34b411d,2 +34b411f,10 +34b4120,af +34b4121,a2 +34b4123,18 +34b4124,af +34b4125,a2 +34b4127,14 +34b4129,12 +34b412a,11 +34b412d,52 +34b412e,10 +34b412f,21 +34b4130,24 +34b4131,42 +34b4133,a +34b4134,af +34b4135,a2 +34b4137,10 +34b4138,3 +34b4139,c0 +34b413a,38 +34b413b,25 +34b413e,30 +34b413f,25 +34b4140,8f +34b4141,a5 +34b4143,38 +34b4144,c +34b4145,10 +34b4146,15 +34b4147,11 34b4148,2 -34b4149,a0 34b414a,20 34b414b,25 -34b414c,8f -34b414d,a4 -34b414f,38 -34b4150,2 -34b4151,80 -34b4152,30 -34b4153,25 -34b4154,c -34b4155,10 -34b4156,18 -34b4157,87 -34b4158,26 -34b4159,25 -34b415b,44 +34b414c,26 +34b414d,52 +34b414f,1 +34b4150,8e +34b4151,c2 +34b4152,67 +34b4153,4 +34b4154,2 +34b4155,42 +34b4156,10 +34b4157,2a +34b4158,14 +34b4159,40 +34b415a,ff +34b415b,e0 34b415c,26 -34b415d,52 -34b415f,1 +34b415d,73 +34b415f,c 34b4160,26 -34b4161,94 -34b4163,11 -34b4164,3c -34b4165,2 -34b4166,80 -34b4167,40 -34b4168,8c -34b4169,42 -34b416a,65 -34b416b,1c -34b416c,2 -34b416d,42 -34b416e,10 -34b416f,2a -34b4170,14 -34b4171,40 -34b4172,ff -34b4173,dc -34b4174,26 -34b4175,73 -34b4177,c -34b4178,c -34b4179,10 -34b417a,18 -34b417b,b1 -34b417c,2 -34b417e,20 -34b417f,25 -34b4180,8e -34b4181,2 -34b4183,8 -34b4184,24 -34b4185,43 -34b4187,8 -34b4188,ae -34b4189,3 -34b418b,8 -34b418c,3c -34b418d,3 -34b418e,e9 -34b4190,ac -34b4191,43 -34b4194,ac -34b4195,40 -34b4197,4 -34b4198,8e -34b4199,2 -34b419b,8 -34b419c,24 -34b419d,43 -34b419f,8 -34b41a0,ae -34b41a1,3 -34b41a3,8 -34b41a4,3c -34b41a5,3 -34b41a6,df -34b41a8,ac -34b41a9,43 -34b41ac,ac -34b41ad,40 -34b41af,4 -34b41b0,8f -34b41b1,bf -34b41b3,6c -34b41b4,8f -34b41b5,be -34b41b7,68 -34b41b8,8f -34b41b9,b7 -34b41bb,64 -34b41bc,8f -34b41bd,b6 -34b41bf,60 -34b41c0,8f -34b41c1,b5 -34b41c3,5c -34b41c4,8f -34b41c5,b4 -34b41c7,58 -34b41c8,8f -34b41c9,b3 -34b41cb,54 -34b41cc,8f -34b41cd,b2 -34b41cf,50 -34b41d0,8f -34b41d1,b1 -34b41d3,4c -34b41d4,8f -34b41d5,b0 -34b41d7,48 -34b41d8,3 -34b41d9,e0 -34b41db,8 -34b41dc,27 -34b41dd,bd -34b41df,70 -34b41e0,10 -34b41e2,fe -34b41e3,a8 -34b41e4,26 -34b41e5,31 -34b41e7,12 -34b41e8,3 -34b41e9,e0 -34b41eb,8 -34b41f0,27 -34b41f1,bd -34b41f2,ff -34b41f3,e8 +34b4161,3e +34b4163,33 +34b4164,24 +34b4165,7 +34b4167,1 +34b4168,24 +34b4169,6 +34b416b,f +34b416c,3c +34b416d,5 +34b416e,80 +34b416f,40 +34b4170,24 +34b4171,a5 +34b4172,65 +34b4173,f8 +34b4174,c +34b4175,10 +34b4176,14 +34b4177,a9 +34b4178,2 +34b417a,20 +34b417b,25 +34b417c,3c +34b417d,2 +34b417e,80 +34b417f,40 +34b4180,8c +34b4181,42 +34b4182,67 +34b4183,4 +34b4184,18 +34b4185,40 +34b4187,60 +34b4188,3c +34b4189,13 +34b418a,80 +34b418b,40 +34b418c,26 +34b418d,73 +34b418e,66 +34b418f,5c +34b4192,90 +34b4193,25 +34b4194,2 +34b4195,60 +34b4196,a0 +34b4197,25 +34b4198,3c +34b4199,17 +34b419a,80 +34b419b,11 +34b419c,3c +34b419d,2 +34b419e,80 +34b419f,40 +34b41a0,24 +34b41a1,42 +34b41a2,65 +34b41a3,f8 +34b41a4,af +34b41a5,a2 +34b41a7,38 +34b41a8,3c +34b41a9,16 +34b41aa,80 +34b41ab,40 +34b41ad,12 +34b41ae,10 +34b41af,40 +34b41b1,52 +34b41b2,10 +34b41b3,21 +34b41b5,2 +34b41b6,10 +34b41b7,80 +34b41b9,54 +34b41ba,10 +34b41bb,21 +34b41bc,90 +34b41bd,42 +34b41bf,1 +34b41c0,30 +34b41c1,42 +34b41c3,10 +34b41c4,50 +34b41c5,40 +34b41c7,16 +34b41c8,26 +34b41c9,52 +34b41cb,1 +34b41cc,36 +34b41cd,e2 +34b41ce,a5 +34b41cf,d0 +34b41d0,92 +34b41d1,63 +34b41d5,43 +34b41d6,10 +34b41d7,21 +34b41d8,90 +34b41d9,42 +34b41db,a8 +34b41dd,2 +34b41de,10 +34b41df,42 +34b41e0,30 +34b41e1,42 +34b41e3,1 +34b41e4,50 +34b41e5,40 +34b41e7,e +34b41e8,26 +34b41e9,52 +34b41eb,1 +34b41ec,24 +34b41ed,2 +34b41ef,10 +34b41f0,af +34b41f1,a2 +34b41f3,18 34b41f4,af -34b41f5,bf +34b41f5,a2 34b41f7,14 -34b41f8,c -34b41f9,10 -34b41fa,15 -34b41fb,c3 -34b41fc,24 -34b41fd,4 -34b41fe,4 -34b4200,3c -34b4201,3 -34b4202,80 -34b4203,40 -34b4204,ac -34b4205,62 -34b4206,65 -34b4207,38 -34b4208,3c -34b4209,3 -34b420a,80 -34b420b,40 -34b420c,ac -34b420d,62 -34b420e,65 -34b420f,34 +34b41f9,12 +34b41fa,11 +34b41fd,52 +34b41fe,10 +34b41ff,21 +34b4200,24 +34b4201,42 +34b4203,a +34b4204,af +34b4205,a2 +34b4207,10 +34b4208,3 +34b4209,c0 +34b420a,38 +34b420b,25 +34b420e,30 +34b420f,25 34b4210,8f -34b4211,bf -34b4213,14 -34b4214,3 -34b4215,e0 -34b4217,8 -34b4218,27 -34b4219,bd -34b421b,18 -34b421c,80 -34b421d,82 -34b4220,10 -34b4221,40 -34b4223,26 -34b4224,24 -34b4225,87 -34b4227,1 -34b4228,3c -34b4229,3 -34b422a,80 -34b422b,40 -34b422c,8c -34b422d,68 -34b422e,65 -34b422f,38 -34b4230,25 -34b4231,8 -34b4232,4 +34b4211,a5 +34b4213,38 +34b4214,c +34b4215,10 +34b4216,15 +34b4217,11 +34b4218,2 +34b421a,20 +34b421b,25 +34b421c,26 +34b421d,52 +34b421f,1 +34b4220,8e +34b4221,c2 +34b4222,67 +34b4223,4 +34b4224,2 +34b4225,42 +34b4226,10 +34b4227,2a +34b4228,14 +34b4229,40 +34b422a,ff +34b422b,e0 +34b422c,26 +34b422d,73 +34b422f,c +34b4230,12 +34b4231,a0 +34b4233,35 34b4234,3c -34b4235,3 +34b4235,2 34b4236,80 34b4237,40 34b4238,8c -34b4239,63 -34b423a,65 -34b423b,34 -34b423d,68 -34b423e,20 -34b423f,2b -34b4240,10 -34b4241,80 -34b4243,1e -34b4244,3c -34b4245,a -34b4246,ff -34b4248,25 -34b4249,4a -34b424a,f -34b424b,ff -34b424c,30 -34b424d,c6 -34b424e,f -34b424f,ff -34b4250,24 -34b4251,b -34b4252,f0 +34b4239,42 +34b423a,67 +34b423b,4 +34b423c,18 +34b423d,40 +34b423f,32 +34b4240,3c +34b4241,13 +34b4242,80 +34b4243,40 +34b4244,26 +34b4245,73 +34b4246,66 +34b4247,5c +34b4248,24 +34b4249,14 +34b424b,b +34b424e,90 +34b424f,25 +34b4250,3c +34b4251,17 +34b4252,80 +34b4253,40 34b4254,3c -34b4255,9 +34b4255,16 34b4256,80 34b4257,40 -34b4258,10 -34b425b,7 -34b425c,25 -34b425d,29 -34b425e,64 -34b425f,18 -34b4261,68 -34b4262,20 -34b4263,2b -34b4264,54 -34b4265,80 -34b4267,5 -34b4268,a0 -34b4269,62 -34b426c,3c -34b426d,2 -34b426e,80 -34b426f,40 -34b4270,3 -34b4271,e0 -34b4273,8 -34b4274,ac -34b4275,43 -34b4276,65 -34b4277,34 -34b4278,a0 -34b4279,62 -34b427c,30 -34b427d,a2 -34b427e,f -34b427f,ff -34b4281,2 -34b4282,23 -34b4284,8c -34b4285,62 -34b4289,4a +34b4258,26 +34b4259,d6 +34b425a,67 +34b425b,38 +34b425c,3c +34b425d,15 +34b425e,80 +34b425f,40 +34b4260,26 +34b4261,b5 +34b4262,65 +34b4263,9c +34b4264,3c +34b4265,2 +34b4266,80 +34b4267,40 +34b4268,24 +34b4269,42 +34b426a,65 +34b426b,a0 +34b426c,af +34b426d,a2 +34b426f,38 +34b4270,3c +34b4271,1e +34b4272,80 +34b4273,40 +34b4274,8e +34b4275,e2 +34b4276,67 +34b4277,18 +34b4278,50 +34b4279,40 +34b427b,14 +34b427c,92 +34b427d,62 +34b4281,12 +34b4282,10 +34b4283,40 +34b4285,52 +34b4286,10 +34b4287,21 +34b4289,2 34b428a,10 -34b428b,24 -34b428d,44 -34b428e,10 -34b428f,25 -34b4291,4b +34b428b,80 +34b428c,27 +34b428d,c3 +34b428e,66 +34b428f,5c +34b4291,43 34b4292,10 -34b4293,24 -34b4295,46 -34b4296,10 -34b4297,25 -34b4298,ac -34b4299,62 -34b429c,95 -34b429d,22 -34b429f,4 -34b42a1,a2 -34b42a2,28 -34b42a3,21 -34b42a4,24 -34b42a5,e7 -34b42a7,1 -34b42a8,80 -34b42a9,e2 -34b42aa,ff -34b42ab,ff -34b42ac,14 -34b42ad,40 -34b42ae,ff -34b42af,ec -34b42b0,24 -34b42b1,63 -34b42b3,4 -34b42b4,3c -34b42b5,2 -34b42b6,80 -34b42b7,40 -34b42b8,ac -34b42b9,43 -34b42ba,65 -34b42bb,34 -34b42bc,3 -34b42bd,e0 -34b42bf,8 -34b42c4,27 -34b42c5,bd -34b42c6,ff -34b42c7,b0 -34b42c8,af -34b42c9,bf -34b42cb,4c -34b42cc,af -34b42cd,be -34b42cf,48 -34b42d0,af -34b42d1,b7 -34b42d3,44 -34b42d4,af -34b42d5,b6 -34b42d7,40 -34b42d8,af -34b42d9,b5 -34b42db,3c -34b42dc,af -34b42dd,b4 +34b4293,21 +34b4294,90 +34b4295,42 +34b4297,1 +34b4298,30 +34b4299,42 +34b429b,10 +34b429c,50 +34b429d,40 +34b429f,b +34b42a0,92 +34b42a1,62 +34b42a4,92 +34b42a5,63 +34b42a8,3c +34b42a9,2 +34b42aa,80 +34b42ab,11 +34b42ac,34 +34b42ad,42 +34b42ae,a5 +34b42af,d0 +34b42b1,43 +34b42b2,10 +34b42b3,21 +34b42b4,90 +34b42b5,42 +34b42b7,a8 +34b42b9,2 +34b42ba,10 +34b42bb,82 +34b42bc,30 +34b42bd,42 +34b42bf,1 +34b42c0,50 +34b42c1,40 +34b42c3,b +34b42c4,26 +34b42c5,52 +34b42c7,1 +34b42c8,92 +34b42c9,62 +34b42cd,56 +34b42ce,10 +34b42cf,21 +34b42d0,90 +34b42d1,42 +34b42d4,14 +34b42d5,40 +34b42d7,2 +34b42d8,2 +34b42d9,a0 +34b42da,20 +34b42db,25 +34b42dc,8f +34b42dd,a4 34b42df,38 -34b42e0,af -34b42e1,b3 -34b42e3,34 -34b42e4,af -34b42e5,b2 -34b42e7,30 -34b42e8,af -34b42e9,b1 -34b42eb,2c -34b42ec,af -34b42ed,b0 -34b42ef,28 -34b42f1,80 -34b42f2,a8 -34b42f3,25 -34b42f6,b0 -34b42f7,25 -34b42fa,90 -34b42fb,25 -34b42fc,3c -34b42fd,14 -34b42fe,80 -34b42ff,40 -34b4300,26 -34b4301,94 -34b4302,64 -34b4303,18 -34b4304,3c -34b4305,1e -34b4306,80 -34b4307,40 -34b4308,3c -34b4309,13 -34b430a,80 -34b430b,40 -34b430c,3c -34b430d,17 -34b430e,38 -34b430f,e3 -34b4310,af -34b4311,b4 -34b4313,20 +34b42e0,2 +34b42e1,80 +34b42e2,30 +34b42e3,25 +34b42e4,c +34b42e5,10 +34b42e6,18 +34b42e7,eb +34b42e8,26 +34b42e9,25 +34b42eb,44 +34b42ec,26 +34b42ed,52 +34b42ef,1 +34b42f0,26 +34b42f1,94 +34b42f3,11 +34b42f4,3c +34b42f5,2 +34b42f6,80 +34b42f7,40 +34b42f8,8c +34b42f9,42 +34b42fa,67 +34b42fb,4 +34b42fc,2 +34b42fd,42 +34b42fe,10 +34b42ff,2a +34b4300,14 +34b4301,40 +34b4302,ff +34b4303,dc +34b4304,26 +34b4305,73 +34b4307,c +34b4308,c +34b4309,10 +34b430a,19 +34b430b,15 +34b430c,2 +34b430e,20 +34b430f,25 +34b4310,8e +34b4311,2 +34b4313,8 34b4314,24 -34b4315,7 -34b4317,12 -34b4318,2 -34b4319,c0 -34b431a,30 -34b431b,25 -34b431c,2 -34b431d,80 -34b431e,28 -34b431f,25 -34b4320,c -34b4321,10 -34b4322,14 -34b4323,51 -34b4324,2 -34b4325,a0 -34b4326,20 -34b4327,25 -34b4328,8f -34b4329,c5 -34b432a,65 -34b432b,38 -34b432c,10 -34b432f,1f -34b4330,36 -34b4331,f1 -34b4332,8e -34b4333,39 -34b4334,24 -34b4335,42 -34b4336,ff -34b4337,e0 -34b4339,51 -34b433b,18 -34b433e,18 -34b433f,10 -34b4341,3 -34b4342,18 -34b4343,83 -34b4345,2 -34b4346,27 -34b4347,c3 -34b4349,64 -34b434a,18 -34b434b,23 -34b434c,14 -34b434d,72 -34b434f,16 -34b4350,24 -34b4351,b0 -34b4353,4 -34b4354,8c -34b4355,a7 -34b4359,7 -34b435a,3b -34b435b,2 -34b435d,51 -34b435f,18 -34b4362,30 -34b4363,10 -34b4365,6 -34b4366,30 -34b4367,83 -34b4369,c4 -34b436a,30 -34b436b,23 -34b436d,6 -34b436e,18 -34b436f,c0 -34b4371,66 -34b4372,30 -34b4373,21 -34b4375,6 -34b4376,30 -34b4377,40 -34b4378,96 -34b4379,83 -34b437b,6 -34b437c,af -34b437d,a3 -34b437f,18 -34b4380,96 -34b4381,83 -34b4383,4 +34b4315,43 +34b4317,8 +34b4318,ae +34b4319,3 +34b431b,8 +34b431c,3c +34b431d,3 +34b431e,e9 +34b4320,ac +34b4321,43 +34b4324,ac +34b4325,40 +34b4327,4 +34b4328,8e +34b4329,2 +34b432b,8 +34b432c,24 +34b432d,43 +34b432f,8 +34b4330,ae +34b4331,3 +34b4333,8 +34b4334,3c +34b4335,3 +34b4336,df +34b4338,ac +34b4339,43 +34b433c,ac +34b433d,40 +34b433f,4 +34b4340,8f +34b4341,bf +34b4343,6c +34b4344,8f +34b4345,be +34b4347,68 +34b4348,8f +34b4349,b7 +34b434b,64 +34b434c,8f +34b434d,b6 +34b434f,60 +34b4350,8f +34b4351,b5 +34b4353,5c +34b4354,8f +34b4355,b4 +34b4357,58 +34b4358,8f +34b4359,b3 +34b435b,54 +34b435c,8f +34b435d,b2 +34b435f,50 +34b4360,8f +34b4361,b1 +34b4363,4c +34b4364,8f +34b4365,b0 +34b4367,48 +34b4368,3 +34b4369,e0 +34b436b,8 +34b436c,27 +34b436d,bd +34b436f,70 +34b4370,10 +34b4372,fe +34b4373,a8 +34b4374,26 +34b4375,31 +34b4377,12 +34b4378,3 +34b4379,e0 +34b437b,8 +34b4380,27 +34b4381,bd +34b4382,ff +34b4383,e8 34b4384,af -34b4385,a3 +34b4385,bf 34b4387,14 -34b4388,8c -34b4389,a3 -34b438c,30 -34b438d,63 -34b438e,f -34b438f,ff -34b4390,af -34b4391,a3 -34b4393,10 -34b4394,30 -34b4395,e7 -34b4396,f -34b4397,ff -34b4399,46 -34b439a,30 -34b439b,23 -34b439c,8f -34b439d,a5 +34b4388,c +34b4389,10 +34b438a,16 +34b438b,27 +34b438c,24 +34b438d,4 +34b438e,4 +34b4390,3c +34b4391,3 +34b4392,80 +34b4393,40 +34b4394,ac +34b4395,62 +34b4396,67 +34b4397,24 +34b4398,3c +34b4399,3 +34b439a,80 +34b439b,40 +34b439c,ac +34b439d,62 +34b439e,67 34b439f,20 -34b43a0,c -34b43a1,10 -34b43a2,14 -34b43a3,b9 -34b43a4,2 -34b43a5,a0 -34b43a6,20 -34b43a7,25 -34b43a8,2 -34b43aa,28 -34b43ab,25 -34b43ac,8e -34b43ad,62 -34b43ae,65 -34b43af,34 -34b43b1,a2 -34b43b2,10 -34b43b3,2b -34b43b4,54 -34b43b5,40 -34b43b6,ff -34b43b7,df -34b43b8,80 -34b43b9,a2 -34b43bc,26 -34b43bd,52 -34b43bf,1 -34b43c0,24 -34b43c1,2 -34b43c3,6 -34b43c4,16 -34b43c5,42 -34b43c6,ff -34b43c7,d3 -34b43c8,26 -34b43c9,d6 -34b43cb,12 -34b43cc,3c -34b43cd,2 -34b43ce,80 -34b43cf,40 -34b43d0,8c -34b43d1,43 -34b43d2,65 -34b43d3,38 +34b43a0,8f +34b43a1,bf +34b43a3,14 +34b43a4,3 +34b43a5,e0 +34b43a7,8 +34b43a8,27 +34b43a9,bd +34b43ab,18 +34b43ac,80 +34b43ad,82 +34b43b0,10 +34b43b1,40 +34b43b3,26 +34b43b4,24 +34b43b5,87 +34b43b7,1 +34b43b8,3c +34b43b9,3 +34b43ba,80 +34b43bb,40 +34b43bc,8c +34b43bd,68 +34b43be,67 +34b43bf,24 +34b43c0,25 +34b43c1,8 +34b43c2,4 +34b43c4,3c +34b43c5,3 +34b43c6,80 +34b43c7,40 +34b43c8,8c +34b43c9,63 +34b43ca,67 +34b43cb,20 +34b43cd,68 +34b43ce,20 +34b43cf,2b +34b43d0,10 +34b43d1,80 +34b43d3,1e 34b43d4,3c -34b43d5,2 -34b43d6,80 -34b43d7,40 -34b43d8,ac -34b43d9,43 -34b43da,65 -34b43db,34 -34b43dc,8f -34b43dd,bf -34b43df,4c -34b43e0,8f -34b43e1,be -34b43e3,48 -34b43e4,8f -34b43e5,b7 -34b43e7,44 -34b43e8,8f -34b43e9,b6 -34b43eb,40 -34b43ec,8f -34b43ed,b5 -34b43ef,3c -34b43f0,8f -34b43f1,b4 -34b43f3,38 -34b43f4,8f -34b43f5,b3 -34b43f7,34 -34b43f8,8f -34b43f9,b2 -34b43fb,30 -34b43fc,8f -34b43fd,b1 -34b43ff,2c -34b4400,8f -34b4401,b0 -34b4403,28 -34b4404,3 -34b4405,e0 -34b4407,8 -34b4408,27 -34b4409,bd -34b440b,50 -34b440c,4d -34b440d,51 -34b4410,4e -34b4411,6f -34b4412,72 -34b4413,6d -34b4414,61 -34b4415,6c -34b441d,8 -34b441f,e -34b4421,5f -34b4422,3 -34b4423,1 -34b4424,1 -34b442d,18 -34b442f,18 -34b4431,12 -34b4433,3 -34b4434,4 -34b443d,10 -34b443f,10 -34b4441,6 -34b4442,3 -34b4443,1 -34b4444,1 -34b444d,10 -34b444f,10 -34b4451,3 -34b4453,3 -34b4454,4 -34b4459,1 -34b445a,2 -34b445b,3 -34b445c,4 -34b445d,5 -34b445e,6 -34b445f,7 -34b4460,ff -34b4461,ff -34b4462,ff -34b4463,ff -34b4464,ff -34b4465,ff -34b4469,ff -34b446b,ff -34b446c,3c -34b446f,64 -34b4470,ff -34b4471,ff -34b4472,82 -34b4474,c8 -34b4475,32 -34b4476,ff -34b4477,c8 -34b4478,c8 -34b447d,10 -34b447e,44 -34b447f,65 -34b4480,6b -34b4481,75 -34b4488,1 -34b4489,10 -34b448a,44 -34b448b,6f -34b448c,64 -34b448d,6f -34b448e,6e -34b448f,67 -34b4490,6f -34b4494,2 -34b4495,10 -34b4496,4a -34b4497,61 -34b4498,62 -34b4499,75 -34b44a0,3 -34b44a1,d0 -34b44a2,46 -34b44a3,6f -34b44a4,72 -34b44a5,65 -34b44a6,73 -34b44a7,74 -34b44ac,4 -34b44ad,d0 -34b44ae,46 -34b44af,69 -34b44b0,72 -34b44b1,65 -34b44b8,5 -34b44b9,d0 -34b44ba,57 -34b44bb,61 -34b44bc,74 -34b44bd,65 -34b44be,72 -34b44c4,7 -34b44c5,d0 -34b44c6,53 -34b44c7,68 -34b44c8,61 -34b44c9,64 -34b44ca,6f -34b44cb,77 -34b44d0,6 -34b44d1,d0 -34b44d2,53 -34b44d3,70 -34b44d4,69 -34b44d5,72 -34b44d6,69 -34b44d7,74 -34b44dc,8 -34b44dd,90 -34b44de,42 -34b44df,6f -34b44e0,74 -34b44e1,57 -34b44e8,9 -34b44e9,10 -34b44ea,49 -34b44eb,63 -34b44ec,65 -34b44f4,c -34b44f5,a0 -34b44f6,47 -34b44f7,65 -34b44f8,72 -34b44f9,75 -34b44fa,64 -34b44fb,6f -34b4500,b -34b4501,80 -34b4502,47 -34b4503,54 -34b4504,47 -34b450c,d -34b450d,c0 -34b450e,47 -34b450f,61 -34b4510,6e -34b4511,6f -34b4512,6e -34b451b,1 -34b451f,d -34b459b,d -34b459c,b0 -34b459f,d -34b45a0,b0 -34b45a3,d -34b45a4,b0 -34b45a7,c -34b45a8,b0 -34b45ab,c -34b45ac,b0 -34b45af,c -34b45b0,a0 -34b45b7,d -34b45b8,b0 -34b45bb,d -34b45bc,b0 -34b45d3,e8 -34b45d4,ac -34b45d7,e8 -34b45d8,ac -34b45db,e8 -34b45dc,ac -34b45df,e8 -34b45e0,ac -34b4607,d -34b4608,77 -34b4609,d0 -34b460b,2e -34b460c,3a -34b460d,b0 -34b460f,7d -34b4610,c -34b4611,90 -34b4612,8f -34b4613,ff -34b4614,ff -34b4615,fd -34b4617,c9 -34b4618,6e -34b461a,2 -34b461b,e4 -34b461c,ac -34b461e,ef -34b461f,ff -34b4620,ff -34b4621,f4 -34b4622,a -34b4623,b0 -34b4624,e5 -34b4626,c -34b4627,95 -34b4628,e0 -34b462a,e -34b462b,59 -34b462c,c0 -34b4643,7 -34b4644,90 -34b4646,5 -34b4647,ce -34b4648,eb -34b4649,40 -34b464a,c -34b464b,c8 -34b464c,a9 -34b464d,90 -34b464e,d -34b464f,a7 -34b4650,90 -34b4652,8 -34b4653,ec -34b4654,b4 -34b4657,4a -34b4658,dd -34b4659,a0 -34b465b,7 -34b465c,97 -34b465d,e2 -34b465e,c -34b465f,88 -34b4660,aa -34b4661,e0 -34b4662,6 -34b4663,ce -34b4664,ed -34b4665,70 -34b4667,7 -34b4668,90 -34b466b,7 -34b466c,90 -34b467a,6d -34b467b,ea -34b467e,c9 -34b467f,4d -34b4680,60 -34b4682,c9 -34b4683,4d -34b4684,60 -34b4685,33 -34b4686,6d -34b4687,eb -34b4688,6b -34b4689,c6 -34b468b,8c -34b468c,b6 -34b468e,7c -34b468f,a4 -34b4690,ce -34b4691,c4 -34b4692,31 -34b4693,9 -34b4694,c3 -34b4695,bb -34b4697,9 -34b4698,c3 -34b4699,bb -34b469b,2 -34b469c,ce -34b469d,d4 -34b46b2,4 -34b46b3,ce -34b46b4,fb -34b46b6,a -34b46b7,d5 -34b46ba,8 -34b46bb,e3 -34b46be,9 -34b46bf,ec -34b46c2,7e -34b46c3,4d -34b46c4,b0 -34b46c5,ab -34b46c6,bb -34b46c7,5 -34b46c8,e8 -34b46c9,aa -34b46ca,bc -34b46cc,8e -34b46cd,d6 -34b46ce,7e -34b46cf,93 -34b46d0,6e -34b46d1,d0 -34b46d2,8 -34b46d3,de -34b46d4,d9 -34b46d5,ea -34b46eb,c -34b46ec,a0 -34b46ef,c -34b46f0,a0 -34b46f3,c -34b46f4,a0 -34b46f7,c -34b46f8,a0 -34b471c,c9 -34b471f,7 -34b4720,e2 -34b4723,c -34b4724,b0 -34b4727,e -34b4728,80 -34b472b,6f -34b472c,30 -34b472f,8e -34b4733,8e -34b4737,6f -34b4738,40 -34b473b,e -34b473c,80 -34b473f,c -34b4740,b0 -34b4743,7 -34b4744,e2 -34b4748,c9 -34b4753,bb -34b4757,5e -34b4758,40 -34b475b,c -34b475c,a0 -34b475f,a -34b4760,d0 -34b4763,7 -34b4764,e1 -34b4767,6 -34b4768,f4 -34b476b,6 -34b476c,f4 -34b476f,7 -34b4770,e1 -34b4773,a -34b4774,d0 -34b4777,c -34b4778,a0 -34b477b,5e -34b477c,40 -34b477f,bb -34b4793,a -34b4794,80 -34b4796,c -34b4797,8a -34b4798,8a -34b4799,b0 -34b479a,3 -34b479b,be -34b479c,da -34b479d,10 -34b479e,3 -34b479f,be -34b47a0,da -34b47a1,10 -34b47a2,c -34b47a3,8a -34b47a4,8a -34b47a5,b0 -34b47a7,a -34b47a8,80 -34b47cf,c -34b47d0,a0 -34b47d3,c -34b47d4,a0 -34b47d7,c -34b47d8,a0 -34b47da,af -34b47db,ff -34b47dc,ff -34b47dd,f8 -34b47df,c -34b47e0,a0 -34b47e3,c -34b47e4,a0 -34b47e7,c -34b47e8,a0 -34b481f,d -34b4820,d0 -34b4823,e -34b4824,c0 -34b4827,4f -34b4828,80 -34b482b,9d -34b484f,df -34b4850,fb -34b488f,e -34b4890,c0 -34b4893,e -34b4894,c0 -34b48ac,b -34b48ad,c0 -34b48b0,4e -34b48b1,60 -34b48b4,bc -34b48b7,3 -34b48b8,e8 -34b48bb,a -34b48bc,d0 -34b48bf,1e -34b48c0,90 -34b48c3,9e -34b48c4,20 -34b48c7,da -34b48ca,7 -34b48cb,e3 -34b48ce,c -34b48cf,b0 -34b48d2,6e -34b48d3,50 -34b48e2,3 -34b48e3,ce -34b48e4,eb -34b48e6,b -34b48e7,d5 -34b48e8,7e -34b48e9,90 -34b48ea,e -34b48eb,90 -34b48ec,b -34b48ed,d0 -34b48ee,5f -34b48ef,70 -34b48f0,9 -34b48f1,e0 -34b48f2,6f -34b48f3,6c -34b48f4,b9 -34b48f5,e0 -34b48f6,5f -34b48f7,70 -34b48f8,9 -34b48f9,e0 -34b48fa,e -34b48fb,90 -34b48fc,b -34b48fd,d0 -34b48fe,b -34b48ff,d5 -34b4900,7e -34b4901,90 -34b4902,3 -34b4903,ce -34b4904,eb -34b491a,a -34b491b,ff -34b491c,e0 -34b491f,8 -34b4920,e0 -34b4923,8 -34b4924,e0 -34b4927,8 -34b4928,e0 -34b492b,8 -34b492c,e0 -34b492f,8 -34b4930,e0 -34b4933,8 -34b4934,e0 -34b4937,8 -34b4938,e0 -34b493a,8 -34b493b,ff -34b493c,ff -34b493d,e0 -34b4952,8 -34b4953,de -34b4954,ea -34b4956,c -34b4957,83 -34b4958,7e -34b4959,90 -34b495c,c -34b495d,c0 -34b4960,2e -34b4961,a0 -34b4964,bd -34b4965,20 -34b4967,b -34b4968,d4 -34b496b,bd -34b496c,40 -34b496e,b -34b496f,d4 -34b4972,2f -34b4973,ff -34b4974,ff -34b4975,d0 -34b498a,7 -34b498b,ce -34b498c,ea +34b43d5,a +34b43d6,ff +34b43d8,25 +34b43d9,4a +34b43da,f +34b43db,ff +34b43dc,30 +34b43dd,c6 +34b43de,f +34b43df,ff +34b43e0,24 +34b43e1,b +34b43e2,f0 +34b43e4,3c +34b43e5,9 +34b43e6,80 +34b43e7,40 +34b43e8,10 +34b43eb,7 +34b43ec,25 +34b43ed,29 +34b43ee,65 +34b43ef,e8 +34b43f1,68 +34b43f2,20 +34b43f3,2b +34b43f4,54 +34b43f5,80 +34b43f7,5 +34b43f8,a0 +34b43f9,62 +34b43fc,3c +34b43fd,2 +34b43fe,80 +34b43ff,40 +34b4400,3 +34b4401,e0 +34b4403,8 +34b4404,ac +34b4405,43 +34b4406,67 +34b4407,20 +34b4408,a0 +34b4409,62 +34b440c,30 +34b440d,a2 +34b440e,f +34b440f,ff +34b4411,2 +34b4412,23 +34b4414,8c +34b4415,62 +34b4419,4a +34b441a,10 +34b441b,24 +34b441d,44 +34b441e,10 +34b441f,25 +34b4421,4b +34b4422,10 +34b4423,24 +34b4425,46 +34b4426,10 +34b4427,25 +34b4428,ac +34b4429,62 +34b442c,95 +34b442d,22 +34b442f,4 +34b4431,a2 +34b4432,28 +34b4433,21 +34b4434,24 +34b4435,e7 +34b4437,1 +34b4438,80 +34b4439,e2 +34b443a,ff +34b443b,ff +34b443c,14 +34b443d,40 +34b443e,ff +34b443f,ec +34b4440,24 +34b4441,63 +34b4443,4 +34b4444,3c +34b4445,2 +34b4446,80 +34b4447,40 +34b4448,ac +34b4449,43 +34b444a,67 +34b444b,20 +34b444c,3 +34b444d,e0 +34b444f,8 +34b4454,27 +34b4455,bd +34b4456,ff +34b4457,b0 +34b4458,af +34b4459,bf +34b445b,4c +34b445c,af +34b445d,be +34b445f,48 +34b4460,af +34b4461,b7 +34b4463,44 +34b4464,af +34b4465,b6 +34b4467,40 +34b4468,af +34b4469,b5 +34b446b,3c +34b446c,af +34b446d,b4 +34b446f,38 +34b4470,af +34b4471,b3 +34b4473,34 +34b4474,af +34b4475,b2 +34b4477,30 +34b4478,af +34b4479,b1 +34b447b,2c +34b447c,af +34b447d,b0 +34b447f,28 +34b4481,80 +34b4482,a8 +34b4483,25 +34b4486,b0 +34b4487,25 +34b448a,90 +34b448b,25 +34b448c,3c +34b448d,14 +34b448e,80 +34b448f,40 +34b4490,26 +34b4491,94 +34b4492,65 +34b4493,e8 +34b4494,3c +34b4495,1e +34b4496,80 +34b4497,40 +34b4498,3c +34b4499,13 +34b449a,80 +34b449b,40 +34b449c,3c +34b449d,17 +34b449e,38 +34b449f,e3 +34b44a0,af +34b44a1,b4 +34b44a3,20 +34b44a4,24 +34b44a5,7 +34b44a7,12 +34b44a8,2 +34b44a9,c0 +34b44aa,30 +34b44ab,25 +34b44ac,2 +34b44ad,80 +34b44ae,28 +34b44af,25 +34b44b0,c +34b44b1,10 +34b44b2,14 +34b44b3,a9 +34b44b4,2 +34b44b5,a0 +34b44b6,20 +34b44b7,25 +34b44b8,8f +34b44b9,c5 +34b44ba,67 +34b44bb,24 +34b44bc,10 +34b44bf,1f +34b44c0,36 +34b44c1,f1 +34b44c2,8e +34b44c3,39 +34b44c4,24 +34b44c5,42 +34b44c6,ff +34b44c7,e0 +34b44c9,51 +34b44cb,18 +34b44ce,18 +34b44cf,10 +34b44d1,3 +34b44d2,18 +34b44d3,83 +34b44d5,2 +34b44d6,27 +34b44d7,c3 +34b44d9,64 +34b44da,18 +34b44db,23 +34b44dc,14 +34b44dd,72 +34b44df,16 +34b44e0,24 +34b44e1,b0 +34b44e3,4 +34b44e4,8c +34b44e5,a7 +34b44e9,7 +34b44ea,3b +34b44eb,2 +34b44ed,51 +34b44ef,18 +34b44f2,30 +34b44f3,10 +34b44f5,6 +34b44f6,30 +34b44f7,83 +34b44f9,c4 +34b44fa,30 +34b44fb,23 +34b44fd,6 +34b44fe,18 +34b44ff,c0 +34b4501,66 +34b4502,30 +34b4503,21 +34b4505,6 +34b4506,30 +34b4507,40 +34b4508,96 +34b4509,83 +34b450b,6 +34b450c,af +34b450d,a3 +34b450f,18 +34b4510,96 +34b4511,83 +34b4513,4 +34b4514,af +34b4515,a3 +34b4517,14 +34b4518,8c +34b4519,a3 +34b451c,30 +34b451d,63 +34b451e,f +34b451f,ff +34b4520,af +34b4521,a3 +34b4523,10 +34b4524,30 +34b4525,e7 +34b4526,f +34b4527,ff +34b4529,46 +34b452a,30 +34b452b,23 +34b452c,8f +34b452d,a5 +34b452f,20 +34b4530,c +34b4531,10 +34b4532,15 +34b4533,11 +34b4534,2 +34b4535,a0 +34b4536,20 +34b4537,25 +34b4538,2 +34b453a,28 +34b453b,25 +34b453c,8e +34b453d,62 +34b453e,67 +34b453f,20 +34b4541,a2 +34b4542,10 +34b4543,2b +34b4544,54 +34b4545,40 +34b4546,ff +34b4547,df +34b4548,80 +34b4549,a2 +34b454c,26 +34b454d,52 +34b454f,1 +34b4550,24 +34b4551,2 +34b4553,6 +34b4554,16 +34b4555,42 +34b4556,ff +34b4557,d3 +34b4558,26 +34b4559,d6 +34b455b,12 +34b455c,3c +34b455d,2 +34b455e,80 +34b455f,40 +34b4560,8c +34b4561,43 +34b4562,67 +34b4563,24 +34b4564,3c +34b4565,2 +34b4566,80 +34b4567,40 +34b4568,ac +34b4569,43 +34b456a,67 +34b456b,20 +34b456c,8f +34b456d,bf +34b456f,4c +34b4570,8f +34b4571,be +34b4573,48 +34b4574,8f +34b4575,b7 +34b4577,44 +34b4578,8f +34b4579,b6 +34b457b,40 +34b457c,8f +34b457d,b5 +34b457f,3c +34b4580,8f +34b4581,b4 +34b4583,38 +34b4584,8f +34b4585,b3 +34b4587,34 +34b4588,8f +34b4589,b2 +34b458b,30 +34b458c,8f +34b458d,b1 +34b458f,2c +34b4590,8f +34b4591,b0 +34b4593,28 +34b4594,3 +34b4595,e0 +34b4597,8 +34b4598,27 +34b4599,bd +34b459b,50 +34b459c,4d +34b459d,51 +34b45a0,4e +34b45a1,6f +34b45a2,72 +34b45a3,6d +34b45a4,61 +34b45a5,6c +34b45ab,1 +34b45ad,2 +34b45af,3 +34b45b1,6 +34b45b3,7 +34b45b5,b +34b45b7,e +34b45b9,f +34b45bb,10 +34b45bd,11 +34b45bf,19 +34b45c1,1a +34b45c3,2b +34b45c5,2c +34b45c7,2e +34b45c9,30 +34b45cb,32 +34b45cd,35 +34b45cf,3c +34b45d1,40 +34b45d3,41 +34b45d5,46 +34b45d7,51 +34b45d9,54 +34b45da,1 +34b45db,9 +34b45dc,1 +34b45dd,b +34b45de,1 +34b45df,c +34b45e0,1 +34b45e1,e +34b45e2,1 +34b45e3,f +34b45e4,1 +34b45e5,10 +34b45e6,1 +34b45e7,13 +34b45ed,8 +34b45ef,e +34b45f1,5f +34b45f2,3 +34b45f3,1 +34b45f4,1 +34b45fd,18 +34b45ff,18 +34b4601,14 +34b4603,3 +34b4604,4 +34b460d,20 +34b460f,20 +34b4611,5a +34b4613,3 +34b4614,4 +34b461d,10 +34b461f,10 +34b4621,6 +34b4622,3 +34b4623,1 +34b4624,1 +34b462d,10 +34b462f,10 +34b4631,3 +34b4633,3 +34b4634,4 +34b4639,1 +34b463a,2 +34b463b,3 +34b463c,4 +34b463d,5 +34b463e,6 +34b463f,7 +34b4640,ff +34b4641,ff +34b4642,ff +34b4643,ff +34b4644,ff +34b4645,ff +34b4649,ff +34b464b,ff +34b464c,3c +34b464f,64 +34b4650,ff +34b4651,ff +34b4652,82 +34b4654,c8 +34b4655,32 +34b4656,ff +34b4657,c8 +34b4658,c8 +34b465d,10 +34b465e,44 +34b465f,65 +34b4660,6b +34b4661,75 +34b4668,1 +34b4669,10 +34b466a,44 +34b466b,6f +34b466c,64 +34b466d,6f +34b466e,6e +34b466f,67 +34b4670,6f +34b4674,2 +34b4675,10 +34b4676,4a +34b4677,61 +34b4678,62 +34b4679,75 +34b4680,3 +34b4681,d0 +34b4682,46 +34b4683,6f +34b4684,72 +34b4685,65 +34b4686,73 +34b4687,74 +34b468c,4 +34b468d,d0 +34b468e,46 +34b468f,69 +34b4690,72 +34b4691,65 +34b4698,5 +34b4699,d0 +34b469a,57 +34b469b,61 +34b469c,74 +34b469d,65 +34b469e,72 +34b46a4,7 +34b46a5,d0 +34b46a6,53 +34b46a7,68 +34b46a8,61 +34b46a9,64 +34b46aa,6f +34b46ab,77 +34b46b0,6 +34b46b1,d0 +34b46b2,53 +34b46b3,70 +34b46b4,69 +34b46b5,72 +34b46b6,69 +34b46b7,74 +34b46bc,8 +34b46bd,90 +34b46be,42 +34b46bf,6f +34b46c0,74 +34b46c1,57 +34b46c8,9 +34b46c9,10 +34b46ca,49 +34b46cb,63 +34b46cc,65 +34b46d4,c +34b46d5,a0 +34b46d6,47 +34b46d7,65 +34b46d8,72 +34b46d9,75 +34b46da,64 +34b46db,6f +34b46e0,b +34b46e1,80 +34b46e2,47 +34b46e3,54 +34b46e4,47 +34b46ec,d +34b46ed,c0 +34b46ee,47 +34b46ef,61 +34b46f0,6e +34b46f1,6f +34b46f2,6e +34b46f8,80 +34b46f9,40 +34b46fa,66 +34b46fb,8 +34b46fc,80 +34b46fd,40 +34b46fe,65 +34b46ff,f8 +34b4703,1 +34b4707,d +34b4787,d +34b4788,b0 +34b478b,d +34b478c,b0 +34b478f,d +34b4790,b0 +34b4793,c +34b4794,b0 +34b4797,c +34b4798,b0 +34b479b,c +34b479c,a0 +34b47a3,d +34b47a4,b0 +34b47a7,d +34b47a8,b0 +34b47bf,e8 +34b47c0,ac +34b47c3,e8 +34b47c4,ac +34b47c7,e8 +34b47c8,ac +34b47cb,e8 +34b47cc,ac +34b47f3,d +34b47f4,77 +34b47f5,d0 +34b47f7,2e +34b47f8,3a +34b47f9,b0 +34b47fb,7d +34b47fc,c +34b47fd,90 +34b47fe,8f +34b47ff,ff +34b4800,ff +34b4801,fd +34b4803,c9 +34b4804,6e +34b4806,2 +34b4807,e4 +34b4808,ac +34b480a,ef +34b480b,ff +34b480c,ff +34b480d,f4 +34b480e,a +34b480f,b0 +34b4810,e5 +34b4812,c +34b4813,95 +34b4814,e0 +34b4816,e +34b4817,59 +34b4818,c0 +34b482f,7 +34b4830,90 +34b4832,5 +34b4833,ce +34b4834,eb +34b4835,40 +34b4836,c +34b4837,c8 +34b4838,a9 +34b4839,90 +34b483a,d +34b483b,a7 +34b483c,90 +34b483e,8 +34b483f,ec +34b4840,b4 +34b4843,4a +34b4844,dd +34b4845,a0 +34b4847,7 +34b4848,97 +34b4849,e2 +34b484a,c +34b484b,88 +34b484c,aa +34b484d,e0 +34b484e,6 +34b484f,ce +34b4850,ed +34b4851,70 +34b4853,7 +34b4854,90 +34b4857,7 +34b4858,90 +34b4866,6d +34b4867,ea +34b486a,c9 +34b486b,4d +34b486c,60 +34b486e,c9 +34b486f,4d +34b4870,60 +34b4871,33 +34b4872,6d +34b4873,eb +34b4874,6b +34b4875,c6 +34b4877,8c +34b4878,b6 +34b487a,7c +34b487b,a4 +34b487c,ce +34b487d,c4 +34b487e,31 +34b487f,9 +34b4880,c3 +34b4881,bb +34b4883,9 +34b4884,c3 +34b4885,bb +34b4887,2 +34b4888,ce +34b4889,d4 +34b489e,4 +34b489f,ce +34b48a0,fb +34b48a2,a +34b48a3,d5 +34b48a6,8 +34b48a7,e3 +34b48aa,9 +34b48ab,ec +34b48ae,7e +34b48af,4d +34b48b0,b0 +34b48b1,ab +34b48b2,bb +34b48b3,5 +34b48b4,e8 +34b48b5,aa +34b48b6,bc +34b48b8,8e +34b48b9,d6 +34b48ba,7e +34b48bb,93 +34b48bc,6e +34b48bd,d0 +34b48be,8 +34b48bf,de +34b48c0,d9 +34b48c1,ea +34b48d7,c +34b48d8,a0 +34b48db,c +34b48dc,a0 +34b48df,c +34b48e0,a0 +34b48e3,c +34b48e4,a0 +34b4908,c9 +34b490b,7 +34b490c,e2 +34b490f,c +34b4910,b0 +34b4913,e +34b4914,80 +34b4917,6f +34b4918,30 +34b491b,8e +34b491f,8e +34b4923,6f +34b4924,40 +34b4927,e +34b4928,80 +34b492b,c +34b492c,b0 +34b492f,7 +34b4930,e2 +34b4934,c9 +34b493f,bb +34b4943,5e +34b4944,40 +34b4947,c +34b4948,a0 +34b494b,a +34b494c,d0 +34b494f,7 +34b4950,e1 +34b4953,6 +34b4954,f4 +34b4957,6 +34b4958,f4 +34b495b,7 +34b495c,e1 +34b495f,a +34b4960,d0 +34b4963,c +34b4964,a0 +34b4967,5e +34b4968,40 +34b496b,bb +34b497f,a +34b4980,80 +34b4982,c +34b4983,8a +34b4984,8a +34b4985,b0 +34b4986,3 +34b4987,be +34b4988,da +34b4989,10 +34b498a,3 +34b498b,be +34b498c,da +34b498d,10 34b498e,c -34b498f,83 -34b4990,7e -34b4991,90 -34b4994,c -34b4995,b0 -34b4997,2 -34b4998,7e -34b4999,90 -34b499b,bf -34b499c,fb -34b499f,2 -34b49a0,7d -34b49a1,a0 -34b49a4,a -34b49a5,d0 -34b49a6,5c -34b49a7,62 -34b49a8,7d -34b49a9,b0 -34b49aa,9 -34b49ab,de -34b49ac,eb -34b49ad,30 -34b49c3,2 -34b49c4,de -34b49c7,b -34b49c8,de -34b49cb,7d -34b49cc,9e -34b49ce,2 -34b49cf,d7 -34b49d0,9e -34b49d2,b -34b49d3,b0 -34b49d4,9e -34b49d6,6e -34b49d7,40 -34b49d8,9e -34b49da,9f -34b49db,ff -34b49dc,ff -34b49dd,f7 -34b49e0,9e -34b49e4,9e -34b49fa,c -34b49fb,ff -34b49fc,ff -34b49fd,50 -34b49fe,c -34b49ff,a0 -34b4a02,c -34b4a03,a0 -34b4a06,c -34b4a07,ee -34b4a08,ea -34b4a0b,3 -34b4a0c,8e -34b4a0d,90 -34b4a10,b -34b4a11,c0 -34b4a14,b -34b4a15,c0 -34b4a16,5c -34b4a17,63 -34b4a18,8e -34b4a19,90 -34b4a1a,9 -34b4a1b,de -34b4a1c,da -34b4a33,ae -34b4a34,ec -34b4a35,30 -34b4a36,a -34b4a37,e8 -34b4a38,39 -34b4a39,80 -34b4a3a,e -34b4a3b,90 -34b4a3e,4f -34b4a3f,ae -34b4a40,ec -34b4a41,40 -34b4a42,6f -34b4a43,d5 -34b4a44,5d -34b4a45,c0 -34b4a46,5f -34b4a47,90 -34b4a48,9 -34b4a49,e0 -34b4a4a,e -34b4a4b,90 -34b4a4c,9 -34b4a4d,e0 -34b4a4e,c -34b4a4f,d5 -34b4a50,5d -34b4a51,c0 -34b4a52,3 -34b4a53,ce -34b4a54,ec -34b4a55,40 -34b4a6a,5f -34b4a6b,ff -34b4a6c,ff -34b4a6d,d0 -34b4a70,d -34b4a71,a0 -34b4a74,7e -34b4a75,40 -34b4a78,cc -34b4a7b,4 -34b4a7c,e8 -34b4a7f,a -34b4a80,d0 -34b4a83,d -34b4a84,a0 -34b4a87,8e -34b4a88,40 -34b4a8b,cc -34b4aa2,5 -34b4aa3,ce -34b4aa4,ec -34b4aa5,30 -34b4aa6,d -34b4aa7,c4 -34b4aa8,5d -34b4aa9,b0 -34b4aaa,e -34b4aab,90 -34b4aac,b -34b4aad,d0 -34b4aae,b -34b4aaf,c4 -34b4ab0,5d -34b4ab1,90 -34b4ab2,4 -34b4ab3,df -34b4ab4,fc -34b4ab5,20 -34b4ab6,1d -34b4ab7,b4 -34b4ab8,5c -34b4ab9,c0 -34b4aba,5f -34b4abb,60 -34b4abc,9 -34b4abd,e0 -34b4abe,2e -34b4abf,b3 -34b4ac0,5c -34b4ac1,d0 -34b4ac2,7 -34b4ac3,de -34b4ac4,ec -34b4ac5,50 -34b4ada,6 -34b4adb,de -34b4adc,eb -34b4ade,d -34b4adf,b3 -34b4ae0,7e -34b4ae1,90 +34b498f,8a +34b4990,8a +34b4991,b0 +34b4993,a +34b4994,80 +34b49bb,c +34b49bc,a0 +34b49bf,c +34b49c0,a0 +34b49c3,c +34b49c4,a0 +34b49c6,af +34b49c7,ff +34b49c8,ff +34b49c9,f8 +34b49cb,c +34b49cc,a0 +34b49cf,c +34b49d0,a0 +34b49d3,c +34b49d4,a0 +34b4a0b,d +34b4a0c,d0 +34b4a0f,e +34b4a10,c0 +34b4a13,4f +34b4a14,80 +34b4a17,9d +34b4a3b,df +34b4a3c,fb +34b4a7b,e +34b4a7c,c0 +34b4a7f,e +34b4a80,c0 +34b4a98,b +34b4a99,c0 +34b4a9c,4e +34b4a9d,60 +34b4aa0,bc +34b4aa3,3 +34b4aa4,e8 +34b4aa7,a +34b4aa8,d0 +34b4aab,1e +34b4aac,90 +34b4aaf,9e +34b4ab0,20 +34b4ab3,da +34b4ab6,7 +34b4ab7,e3 +34b4aba,c +34b4abb,b0 +34b4abe,6e +34b4abf,50 +34b4ace,3 +34b4acf,ce +34b4ad0,eb +34b4ad2,b +34b4ad3,d5 +34b4ad4,7e +34b4ad5,90 +34b4ad6,e +34b4ad7,90 +34b4ad8,b +34b4ad9,d0 +34b4ada,5f +34b4adb,70 +34b4adc,9 +34b4add,e0 +34b4ade,6f +34b4adf,6c +34b4ae0,b9 +34b4ae1,e0 34b4ae2,5f -34b4ae3,50 -34b4ae4,b -34b4ae5,d0 -34b4ae6,5f -34b4ae7,50 +34b4ae3,70 +34b4ae4,9 +34b4ae5,e0 +34b4ae6,e +34b4ae7,90 34b4ae8,b -34b4ae9,e0 -34b4aea,d -34b4aeb,b3 +34b4ae9,d0 +34b4aea,b +34b4aeb,d5 34b4aec,7e -34b4aed,e0 -34b4aee,6 -34b4aef,de -34b4af0,db -34b4af1,e0 -34b4af4,b -34b4af5,c0 -34b4af6,9 -34b4af7,74 -34b4af8,9e -34b4af9,70 -34b4afa,5 -34b4afb,de -34b4afc,d8 -34b4b1b,e -34b4b1c,c0 -34b4b1f,e -34b4b20,c0 -34b4b2f,e -34b4b30,c0 -34b4b33,e -34b4b34,c0 -34b4b53,e -34b4b54,c0 -34b4b57,e -34b4b58,c0 -34b4b67,d -34b4b68,d0 -34b4b6b,e -34b4b6c,c0 -34b4b6f,4f -34b4b70,80 -34b4b73,9d -34b4b8c,29 -34b4b8d,c8 -34b4b8f,7b -34b4b90,ed -34b4b91,93 -34b4b92,8d -34b4b93,da -34b4b94,40 -34b4b96,8d -34b4b97,da -34b4b98,40 -34b4b9b,7b -34b4b9c,ec -34b4b9d,93 -34b4ba0,29 -34b4ba1,c8 -34b4bc6,af +34b4aed,90 +34b4aee,3 +34b4aef,ce +34b4af0,eb +34b4b06,a +34b4b07,ff +34b4b08,e0 +34b4b0b,8 +34b4b0c,e0 +34b4b0f,8 +34b4b10,e0 +34b4b13,8 +34b4b14,e0 +34b4b17,8 +34b4b18,e0 +34b4b1b,8 +34b4b1c,e0 +34b4b1f,8 +34b4b20,e0 +34b4b23,8 +34b4b24,e0 +34b4b26,8 +34b4b27,ff +34b4b28,ff +34b4b29,e0 +34b4b3e,8 +34b4b3f,de +34b4b40,ea +34b4b42,c +34b4b43,83 +34b4b44,7e +34b4b45,90 +34b4b48,c +34b4b49,c0 +34b4b4c,2e +34b4b4d,a0 +34b4b50,bd +34b4b51,20 +34b4b53,b +34b4b54,d4 +34b4b57,bd +34b4b58,40 +34b4b5a,b +34b4b5b,d4 +34b4b5e,2f +34b4b5f,ff +34b4b60,ff +34b4b61,d0 +34b4b76,7 +34b4b77,ce +34b4b78,ea +34b4b7a,c +34b4b7b,83 +34b4b7c,7e +34b4b7d,90 +34b4b80,c +34b4b81,b0 +34b4b83,2 +34b4b84,7e +34b4b85,90 +34b4b87,bf +34b4b88,fb +34b4b8b,2 +34b4b8c,7d +34b4b8d,a0 +34b4b90,a +34b4b91,d0 +34b4b92,5c +34b4b93,62 +34b4b94,7d +34b4b95,b0 +34b4b96,9 +34b4b97,de +34b4b98,eb +34b4b99,30 +34b4baf,2 +34b4bb0,de +34b4bb3,b +34b4bb4,de +34b4bb7,7d +34b4bb8,9e +34b4bba,2 +34b4bbb,d7 +34b4bbc,9e +34b4bbe,b +34b4bbf,b0 +34b4bc0,9e +34b4bc2,6e +34b4bc3,40 +34b4bc4,9e +34b4bc6,9f 34b4bc7,ff 34b4bc8,ff -34b4bc9,f8 -34b4bd2,af -34b4bd3,ff -34b4bd4,ff -34b4bd5,f8 -34b4bfa,ac -34b4bfb,81 -34b4bfe,4a -34b4bff,de -34b4c00,b6 -34b4c03,6 -34b4c04,ad -34b4c05,d6 -34b4c07,6 -34b4c08,ad -34b4c09,d6 -34b4c0a,4a -34b4c0b,de -34b4c0c,b6 -34b4c0e,ac -34b4c0f,81 -34b4c2a,4 -34b4c2b,be +34b4bc9,f7 +34b4bcc,9e +34b4bd0,9e +34b4be6,c +34b4be7,ff +34b4be8,ff +34b4be9,50 +34b4bea,c +34b4beb,a0 +34b4bee,c +34b4bef,a0 +34b4bf2,c +34b4bf3,ee +34b4bf4,ea +34b4bf7,3 +34b4bf8,8e +34b4bf9,90 +34b4bfc,b +34b4bfd,c0 +34b4c00,b +34b4c01,c0 +34b4c02,5c +34b4c03,63 +34b4c04,8e +34b4c05,90 +34b4c06,9 +34b4c07,de +34b4c08,da +34b4c1f,ae +34b4c20,ec +34b4c21,30 +34b4c22,a +34b4c23,e8 +34b4c24,39 +34b4c25,80 +34b4c26,e +34b4c27,90 +34b4c2a,4f +34b4c2b,ae 34b4c2c,ec -34b4c2d,30 -34b4c2e,9 -34b4c2f,a4 -34b4c30,6e -34b4c31,a0 -34b4c34,1d -34b4c35,a0 -34b4c37,2 -34b4c38,cd -34b4c39,30 -34b4c3b,c -34b4c3c,c1 -34b4c3f,e -34b4c40,90 -34b4c47,e -34b4c48,90 -34b4c4b,e -34b4c4c,90 -34b4c62,1 -34b4c63,ae -34b4c64,ed -34b4c65,70 -34b4c66,c -34b4c67,d7 -34b4c68,39 -34b4c69,e4 -34b4c6a,7e -34b4c6b,20 -34b4c6d,c9 -34b4c6e,ba -34b4c6f,a -34b4c70,ee -34b4c71,ca -34b4c72,d7 -34b4c73,6e -34b4c74,64 -34b4c75,da -34b4c76,d6 -34b4c77,9c -34b4c79,aa -34b4c7a,d7 -34b4c7b,6e -34b4c7c,64 -34b4c7d,da -34b4c7e,ba -34b4c7f,a -34b4c80,ee -34b4c81,ca -34b4c82,6e -34b4c83,40 -34b4c86,a -34b4c87,d8 -34b4c88,30 -34b4c8b,8d -34b4c8c,ee -34b4c8d,90 -34b4c9b,3e -34b4c9c,d0 -34b4c9f,9d -34b4ca0,e6 -34b4ca3,cb -34b4ca4,cb -34b4ca6,3 -34b4ca7,e8 -34b4ca8,ad -34b4caa,8 -34b4cab,e2 -34b4cac,6f -34b4cad,60 -34b4cae,c -34b4caf,c0 -34b4cb0,e -34b4cb1,a0 -34b4cb2,2e -34b4cb3,ff -34b4cb4,ff -34b4cb5,d0 -34b4cb6,8e -34b4cb7,50 -34b4cb8,8 -34b4cb9,f5 -34b4cba,cd -34b4cbc,1 -34b4cbd,ea -34b4cd2,e -34b4cd3,ff -34b4cd4,ec -34b4cd5,40 -34b4cd6,e -34b4cd7,90 -34b4cd8,5d -34b4cd9,c0 -34b4cda,e -34b4cdb,90 -34b4cdc,a +34b4c2d,40 +34b4c2e,6f +34b4c2f,d5 +34b4c30,5d +34b4c31,c0 +34b4c32,5f +34b4c33,90 +34b4c34,9 +34b4c35,e0 +34b4c36,e +34b4c37,90 +34b4c38,9 +34b4c39,e0 +34b4c3a,c +34b4c3b,d5 +34b4c3c,5d +34b4c3d,c0 +34b4c3e,3 +34b4c3f,ce +34b4c40,ec +34b4c41,40 +34b4c56,5f +34b4c57,ff +34b4c58,ff +34b4c59,d0 +34b4c5c,d +34b4c5d,a0 +34b4c60,7e +34b4c61,40 +34b4c64,cc +34b4c67,4 +34b4c68,e8 +34b4c6b,a +34b4c6c,d0 +34b4c6f,d +34b4c70,a0 +34b4c73,8e +34b4c74,40 +34b4c77,cc +34b4c8e,5 +34b4c8f,ce +34b4c90,ec +34b4c91,30 +34b4c92,d +34b4c93,c4 +34b4c94,5d +34b4c95,b0 +34b4c96,e +34b4c97,90 +34b4c98,b +34b4c99,d0 +34b4c9a,b +34b4c9b,c4 +34b4c9c,5d +34b4c9d,90 +34b4c9e,4 +34b4c9f,df +34b4ca0,fc +34b4ca1,20 +34b4ca2,1d +34b4ca3,b4 +34b4ca4,5c +34b4ca5,c0 +34b4ca6,5f +34b4ca7,60 +34b4ca8,9 +34b4ca9,e0 +34b4caa,2e +34b4cab,b3 +34b4cac,5c +34b4cad,d0 +34b4cae,7 +34b4caf,de +34b4cb0,ec +34b4cb1,50 +34b4cc6,6 +34b4cc7,de +34b4cc8,eb +34b4cca,d +34b4ccb,b3 +34b4ccc,7e +34b4ccd,90 +34b4cce,5f +34b4ccf,50 +34b4cd0,b +34b4cd1,d0 +34b4cd2,5f +34b4cd3,50 +34b4cd4,b +34b4cd5,e0 +34b4cd6,d +34b4cd7,b3 +34b4cd8,7e +34b4cd9,e0 +34b4cda,6 +34b4cdb,de +34b4cdc,db 34b4cdd,e0 -34b4cde,e -34b4cdf,90 -34b4ce0,5d +34b4ce0,b 34b4ce1,c0 -34b4ce2,e -34b4ce3,ff -34b4ce4,fd -34b4ce5,50 -34b4ce6,e -34b4ce7,90 -34b4ce8,4b -34b4ce9,d2 -34b4cea,e -34b4ceb,90 -34b4cec,5 -34b4ced,f6 -34b4cee,e -34b4cef,90 -34b4cf0,4b -34b4cf1,e3 -34b4cf2,e -34b4cf3,ff -34b4cf4,ed -34b4cf5,80 -34b4d0b,9d -34b4d0c,ed -34b4d0d,80 -34b4d0e,8 -34b4d0f,e9 -34b4d10,36 -34b4d11,b0 -34b4d12,d -34b4d13,b0 -34b4d16,3f -34b4d17,90 -34b4d1a,5f -34b4d1b,70 -34b4d1e,1e -34b4d1f,90 -34b4d22,d -34b4d23,b0 -34b4d26,8 -34b4d27,e9 -34b4d28,47 -34b4d29,b0 -34b4d2b,9d -34b4d2c,ed -34b4d2d,80 -34b4d42,5f -34b4d43,fe -34b4d44,d8 -34b4d46,5f -34b4d47,65 -34b4d48,ae -34b4d49,80 -34b4d4a,5f -34b4d4b,60 -34b4d4c,c -34b4d4d,d0 -34b4d4e,5f -34b4d4f,60 -34b4d50,9 -34b4d51,e0 -34b4d52,5f -34b4d53,60 -34b4d54,9 -34b4d55,f0 -34b4d56,5f -34b4d57,60 -34b4d58,9 -34b4d59,e0 -34b4d5a,5f -34b4d5b,60 -34b4d5c,c -34b4d5d,d0 -34b4d5e,5f -34b4d5f,65 -34b4d60,ae -34b4d61,80 -34b4d62,5f -34b4d63,fe -34b4d64,d8 -34b4d7a,d -34b4d7b,ff -34b4d7c,ff -34b4d7d,e0 -34b4d7e,d -34b4d7f,b0 -34b4d82,d -34b4d83,b0 -34b4d86,d -34b4d87,b0 -34b4d8a,d -34b4d8b,ff -34b4d8c,ff -34b4d8d,c0 -34b4d8e,d -34b4d8f,b0 -34b4d92,d -34b4d93,b0 -34b4d96,d -34b4d97,b0 -34b4d9a,d -34b4d9b,ff -34b4d9c,ff -34b4d9d,f0 -34b4db2,b +34b4ce2,9 +34b4ce3,74 +34b4ce4,9e +34b4ce5,70 +34b4ce6,5 +34b4ce7,de +34b4ce8,d8 +34b4d07,e +34b4d08,c0 +34b4d0b,e +34b4d0c,c0 +34b4d1b,e +34b4d1c,c0 +34b4d1f,e +34b4d20,c0 +34b4d3f,e +34b4d40,c0 +34b4d43,e +34b4d44,c0 +34b4d53,d +34b4d54,d0 +34b4d57,e +34b4d58,c0 +34b4d5b,4f +34b4d5c,80 +34b4d5f,9d +34b4d78,29 +34b4d79,c8 +34b4d7b,7b +34b4d7c,ed +34b4d7d,93 +34b4d7e,8d +34b4d7f,da +34b4d80,40 +34b4d82,8d +34b4d83,da +34b4d84,40 +34b4d87,7b +34b4d88,ec +34b4d89,93 +34b4d8c,29 +34b4d8d,c8 +34b4db2,af 34b4db3,ff 34b4db4,ff -34b4db5,f4 -34b4db6,b -34b4db7,d0 -34b4dba,b -34b4dbb,d0 -34b4dbe,b -34b4dbf,d0 -34b4dc2,b -34b4dc3,ff -34b4dc4,ff -34b4dc5,c0 -34b4dc6,b -34b4dc7,d0 -34b4dca,b -34b4dcb,d0 -34b4dce,b -34b4dcf,d0 -34b4dd2,b -34b4dd3,d0 -34b4dea,1 -34b4deb,ae -34b4dec,ed -34b4ded,60 -34b4dee,b -34b4def,e7 -34b4df0,38 -34b4df1,a0 -34b4df2,4e -34b4df3,90 -34b4df6,8f -34b4df7,40 -34b4dfa,9f -34b4dfb,10 -34b4dfc,bf -34b4dfd,f2 -34b4dfe,7f -34b4dff,40 -34b4e00,7 -34b4e01,f2 -34b4e02,4e -34b4e03,90 -34b4e04,7 -34b4e05,f2 -34b4e06,b -34b4e07,e7 -34b4e08,39 -34b4e09,f2 -34b4e0a,1 -34b4e0b,be -34b4e0c,ed -34b4e0d,90 -34b4e22,5f -34b4e23,60 -34b4e24,9 -34b4e25,e0 -34b4e26,5f -34b4e27,60 -34b4e28,9 -34b4e29,e0 -34b4e2a,5f -34b4e2b,60 -34b4e2c,9 -34b4e2d,e0 -34b4e2e,5f -34b4e2f,60 -34b4e30,9 -34b4e31,e0 -34b4e32,5f -34b4e33,ff -34b4e34,ff -34b4e35,e0 -34b4e36,5f -34b4e37,60 -34b4e38,9 -34b4e39,e0 -34b4e3a,5f -34b4e3b,60 -34b4e3c,9 -34b4e3d,e0 -34b4e3e,5f -34b4e3f,60 -34b4e40,9 -34b4e41,e0 -34b4e42,5f -34b4e43,60 -34b4e44,9 -34b4e45,e0 -34b4e5a,d -34b4e5b,ff -34b4e5c,ff -34b4e5d,b0 -34b4e5f,d -34b4e60,b0 -34b4e63,d -34b4e64,b0 -34b4e67,d -34b4e68,b0 -34b4e6b,d -34b4e6c,b0 -34b4e6f,d -34b4e70,b0 -34b4e73,d -34b4e74,b0 -34b4e77,d -34b4e78,b0 -34b4e7a,d -34b4e7b,ff -34b4e7c,ff -34b4e7d,b0 -34b4e93,cf -34b4e94,ff -34b4e95,40 -34b4e98,7f -34b4e99,40 -34b4e9c,7f -34b4e9d,40 -34b4ea0,7f -34b4ea1,40 -34b4ea4,7f -34b4ea5,40 -34b4ea8,7f -34b4ea9,30 -34b4eaa,75 -34b4eac,9e -34b4eae,8d -34b4eaf,64 -34b4eb0,dc -34b4eb2,2b -34b4eb3,ee -34b4eb4,c5 -34b4eca,5f -34b4ecb,60 -34b4ecc,9 -34b4ecd,e7 -34b4ece,5f -34b4ecf,60 -34b4ed0,9e -34b4ed1,70 -34b4ed2,5f -34b4ed3,69 -34b4ed4,e7 -34b4ed6,5f -34b4ed7,be -34b4ed8,80 -34b4eda,5f -34b4edb,ed -34b4edc,b0 -34b4ede,5f -34b4edf,87 -34b4ee0,e8 -34b4ee2,5f -34b4ee3,60 -34b4ee4,ae -34b4ee5,40 -34b4ee6,5f -34b4ee7,60 -34b4ee8,1d -34b4ee9,c0 -34b4eea,5f -34b4eeb,60 -34b4eec,6 -34b4eed,ea -34b4f02,c -34b4f03,c0 -34b4f06,c -34b4f07,c0 -34b4f0a,c -34b4f0b,c0 -34b4f0e,c -34b4f0f,c0 -34b4f12,c -34b4f13,c0 -34b4f16,c -34b4f17,c0 -34b4f1a,c -34b4f1b,c0 -34b4f1e,c -34b4f1f,c0 -34b4f22,c -34b4f23,ff -34b4f24,ff -34b4f25,f7 -34b4f3a,af -34b4f3b,a0 -34b4f3c,c -34b4f3d,f8 -34b4f3e,ae -34b4f3f,d0 -34b4f40,2e -34b4f41,e8 -34b4f42,ad -34b4f43,d5 -34b4f44,9b -34b4f45,e8 -34b4f46,ad -34b4f47,aa -34b4f48,c8 -34b4f49,e8 -34b4f4a,ad -34b4f4b,5d -34b4f4c,e1 -34b4f4d,e8 -34b4f4e,ad -34b4f4f,d -34b4f50,b0 -34b4f51,e8 -34b4f52,ad -34b4f55,e8 -34b4f56,ad -34b4f59,e8 -34b4f5a,ad -34b4f5d,e8 -34b4f72,5f -34b4f73,c0 -34b4f74,8 -34b4f75,e0 -34b4f76,5f -34b4f77,e6 -34b4f78,8 -34b4f79,e0 -34b4f7a,5f -34b4f7b,cb -34b4f7c,8 -34b4f7d,e0 -34b4f7e,5f -34b4f7f,7e -34b4f80,48 -34b4f81,e0 -34b4f82,5f -34b4f83,5c -34b4f84,a8 -34b4f85,e0 -34b4f86,5f -34b4f87,57 -34b4f88,e8 -34b4f89,e0 -34b4f8a,5f -34b4f8b,50 -34b4f8c,dc -34b4f8d,e0 -34b4f8e,5f -34b4f8f,50 -34b4f90,9e -34b4f91,e0 -34b4f92,5f -34b4f93,50 -34b4f94,2e -34b4f95,e0 -34b4faa,4 -34b4fab,ce -34b4fac,eb -34b4fad,20 -34b4fae,c -34b4faf,d5 -34b4fb0,6e -34b4fb1,a0 -34b4fb2,3e -34b4fb3,80 -34b4fb4,a -34b4fb5,e0 -34b4fb6,7f -34b4fb7,50 -34b4fb8,8 -34b4fb9,f2 -34b4fba,7f -34b4fbb,40 -34b4fbc,8 -34b4fbd,f4 -34b4fbe,7f -34b4fbf,50 -34b4fc0,8 -34b4fc1,f2 -34b4fc2,3e -34b4fc3,80 -34b4fc4,a -34b4fc5,e0 -34b4fc6,c -34b4fc7,d5 -34b4fc8,6e -34b4fc9,b0 -34b4fca,4 -34b4fcb,ce -34b4fcc,eb -34b4fcd,20 -34b4fe2,d -34b4fe3,ff -34b4fe4,ed -34b4fe5,60 -34b4fe6,d -34b4fe7,b0 -34b4fe8,5c -34b4fe9,e2 -34b4fea,d -34b4feb,b0 -34b4fec,6 -34b4fed,f6 -34b4fee,d -34b4fef,b0 -34b4ff0,6 -34b4ff1,f6 -34b4ff2,d -34b4ff3,b0 -34b4ff4,5c -34b4ff5,e2 -34b4ff6,d -34b4ff7,ff +34b4db5,f8 +34b4dbe,af +34b4dbf,ff +34b4dc0,ff +34b4dc1,f8 +34b4de6,ac +34b4de7,81 +34b4dea,4a +34b4deb,de +34b4dec,b6 +34b4def,6 +34b4df0,ad +34b4df1,d6 +34b4df3,6 +34b4df4,ad +34b4df5,d6 +34b4df6,4a +34b4df7,de +34b4df8,b6 +34b4dfa,ac +34b4dfb,81 +34b4e16,4 +34b4e17,be +34b4e18,ec +34b4e19,30 +34b4e1a,9 +34b4e1b,a4 +34b4e1c,6e +34b4e1d,a0 +34b4e20,1d +34b4e21,a0 +34b4e23,2 +34b4e24,cd +34b4e25,30 +34b4e27,c +34b4e28,c1 +34b4e2b,e +34b4e2c,90 +34b4e33,e +34b4e34,90 +34b4e37,e +34b4e38,90 +34b4e4e,1 +34b4e4f,ae +34b4e50,ed +34b4e51,70 +34b4e52,c +34b4e53,d7 +34b4e54,39 +34b4e55,e4 +34b4e56,7e +34b4e57,20 +34b4e59,c9 +34b4e5a,ba +34b4e5b,a +34b4e5c,ee +34b4e5d,ca +34b4e5e,d7 +34b4e5f,6e +34b4e60,64 +34b4e61,da +34b4e62,d6 +34b4e63,9c +34b4e65,aa +34b4e66,d7 +34b4e67,6e +34b4e68,64 +34b4e69,da +34b4e6a,ba +34b4e6b,a +34b4e6c,ee +34b4e6d,ca +34b4e6e,6e +34b4e6f,40 +34b4e72,a +34b4e73,d8 +34b4e74,30 +34b4e77,8d +34b4e78,ee +34b4e79,90 +34b4e87,3e +34b4e88,d0 +34b4e8b,9d +34b4e8c,e6 +34b4e8f,cb +34b4e90,cb +34b4e92,3 +34b4e93,e8 +34b4e94,ad +34b4e96,8 +34b4e97,e2 +34b4e98,6f +34b4e99,60 +34b4e9a,c +34b4e9b,c0 +34b4e9c,e +34b4e9d,a0 +34b4e9e,2e +34b4e9f,ff +34b4ea0,ff +34b4ea1,d0 +34b4ea2,8e +34b4ea3,50 +34b4ea4,8 +34b4ea5,f5 +34b4ea6,cd +34b4ea8,1 +34b4ea9,ea +34b4ebe,e +34b4ebf,ff +34b4ec0,ec +34b4ec1,40 +34b4ec2,e +34b4ec3,90 +34b4ec4,5d +34b4ec5,c0 +34b4ec6,e +34b4ec7,90 +34b4ec8,a +34b4ec9,e0 +34b4eca,e +34b4ecb,90 +34b4ecc,5d +34b4ecd,c0 +34b4ece,e +34b4ecf,ff +34b4ed0,fd +34b4ed1,50 +34b4ed2,e +34b4ed3,90 +34b4ed4,4b +34b4ed5,d2 +34b4ed6,e +34b4ed7,90 +34b4ed8,5 +34b4ed9,f6 +34b4eda,e +34b4edb,90 +34b4edc,4b +34b4edd,e3 +34b4ede,e +34b4edf,ff +34b4ee0,ed +34b4ee1,80 +34b4ef7,9d +34b4ef8,ed +34b4ef9,80 +34b4efa,8 +34b4efb,e9 +34b4efc,36 +34b4efd,b0 +34b4efe,d +34b4eff,b0 +34b4f02,3f +34b4f03,90 +34b4f06,5f +34b4f07,70 +34b4f0a,1e +34b4f0b,90 +34b4f0e,d +34b4f0f,b0 +34b4f12,8 +34b4f13,e9 +34b4f14,47 +34b4f15,b0 +34b4f17,9d +34b4f18,ed +34b4f19,80 +34b4f2e,5f +34b4f2f,fe +34b4f30,d8 +34b4f32,5f +34b4f33,65 +34b4f34,ae +34b4f35,80 +34b4f36,5f +34b4f37,60 +34b4f38,c +34b4f39,d0 +34b4f3a,5f +34b4f3b,60 +34b4f3c,9 +34b4f3d,e0 +34b4f3e,5f +34b4f3f,60 +34b4f40,9 +34b4f41,f0 +34b4f42,5f +34b4f43,60 +34b4f44,9 +34b4f45,e0 +34b4f46,5f +34b4f47,60 +34b4f48,c +34b4f49,d0 +34b4f4a,5f +34b4f4b,65 +34b4f4c,ae +34b4f4d,80 +34b4f4e,5f +34b4f4f,fe +34b4f50,d8 +34b4f66,d +34b4f67,ff +34b4f68,ff +34b4f69,e0 +34b4f6a,d +34b4f6b,b0 +34b4f6e,d +34b4f6f,b0 +34b4f72,d +34b4f73,b0 +34b4f76,d +34b4f77,ff +34b4f78,ff +34b4f79,c0 +34b4f7a,d +34b4f7b,b0 +34b4f7e,d +34b4f7f,b0 +34b4f82,d +34b4f83,b0 +34b4f86,d +34b4f87,ff +34b4f88,ff +34b4f89,f0 +34b4f9e,b +34b4f9f,ff +34b4fa0,ff +34b4fa1,f4 +34b4fa2,b +34b4fa3,d0 +34b4fa6,b +34b4fa7,d0 +34b4faa,b +34b4fab,d0 +34b4fae,b +34b4faf,ff +34b4fb0,ff +34b4fb1,c0 +34b4fb2,b +34b4fb3,d0 +34b4fb6,b +34b4fb7,d0 +34b4fba,b +34b4fbb,d0 +34b4fbe,b +34b4fbf,d0 +34b4fd6,1 +34b4fd7,ae +34b4fd8,ed +34b4fd9,60 +34b4fda,b +34b4fdb,e7 +34b4fdc,38 +34b4fdd,a0 +34b4fde,4e +34b4fdf,90 +34b4fe2,8f +34b4fe3,40 +34b4fe6,9f +34b4fe7,10 +34b4fe8,bf +34b4fe9,f2 +34b4fea,7f +34b4feb,40 +34b4fec,7 +34b4fed,f2 +34b4fee,4e +34b4fef,90 +34b4ff0,7 +34b4ff1,f2 +34b4ff2,b +34b4ff3,e7 +34b4ff4,39 +34b4ff5,f2 +34b4ff6,1 +34b4ff7,be 34b4ff8,ed -34b4ff9,60 -34b4ffa,d -34b4ffb,b0 -34b4ffe,d -34b4fff,b0 -34b5002,d -34b5003,b0 -34b501a,4 -34b501b,ce -34b501c,eb -34b501d,20 -34b501e,c -34b501f,d5 -34b5020,6e -34b5021,a0 -34b5022,3e -34b5023,80 -34b5024,a +34b4ff9,90 +34b500e,5f +34b500f,60 +34b5010,9 +34b5011,e0 +34b5012,5f +34b5013,60 +34b5014,9 +34b5015,e0 +34b5016,5f +34b5017,60 +34b5018,9 +34b5019,e0 +34b501a,5f +34b501b,60 +34b501c,9 +34b501d,e0 +34b501e,5f +34b501f,ff +34b5020,ff +34b5021,e0 +34b5022,5f +34b5023,60 +34b5024,9 34b5025,e0 -34b5026,7f -34b5027,50 -34b5028,8 -34b5029,f2 -34b502a,7f -34b502b,40 -34b502c,8 -34b502d,f4 -34b502e,7f -34b502f,50 -34b5030,8 -34b5031,f1 -34b5032,3e -34b5033,80 -34b5034,a -34b5035,d0 -34b5036,c -34b5037,d5 -34b5038,6e -34b5039,a0 -34b503a,4 -34b503b,ce -34b503c,fc -34b503d,20 -34b5040,ae -34b5041,50 -34b5044,c -34b5045,80 -34b5052,5f -34b5053,fe -34b5054,eb -34b5055,20 -34b5056,5f -34b5057,71 -34b5058,7e -34b5059,b0 -34b505a,5f -34b505b,70 -34b505c,c -34b505d,d0 -34b505e,5f -34b505f,71 -34b5060,6e -34b5061,a0 -34b5062,5f -34b5063,ff -34b5064,ea -34b5066,5f -34b5067,72 -34b5068,ae -34b5069,40 -34b506a,5f -34b506b,70 -34b506c,d -34b506d,b0 -34b506e,5f -34b506f,70 -34b5070,8 -34b5071,e5 -34b5072,5f -34b5073,70 -34b5075,db -34b508a,6 -34b508b,ce -34b508c,eb -34b508d,30 -34b508e,d -34b508f,c4 -34b5090,5a -34b5091,90 -34b5092,4f -34b5093,60 -34b5096,e -34b5097,c6 -34b509a,5 -34b509b,ce -34b509c,eb -34b509d,40 -34b50a0,6c -34b50a1,c0 -34b50a4,8 -34b50a5,e0 -34b50a6,c -34b50a7,73 -34b50a8,5c -34b50a9,d0 -34b50aa,8 -34b50ab,de -34b50ac,ec -34b50ad,50 -34b50c2,cf -34b50c3,ff -34b50c4,ff -34b50c5,fb -34b50c7,d +34b5026,5f +34b5027,60 +34b5028,9 +34b5029,e0 +34b502a,5f +34b502b,60 +34b502c,9 +34b502d,e0 +34b502e,5f +34b502f,60 +34b5030,9 +34b5031,e0 +34b5046,d +34b5047,ff +34b5048,ff +34b5049,b0 +34b504b,d +34b504c,b0 +34b504f,d +34b5050,b0 +34b5053,d +34b5054,b0 +34b5057,d +34b5058,b0 +34b505b,d +34b505c,b0 +34b505f,d +34b5060,b0 +34b5063,d +34b5064,b0 +34b5066,d +34b5067,ff +34b5068,ff +34b5069,b0 +34b507f,cf +34b5080,ff +34b5081,40 +34b5084,7f +34b5085,40 +34b5088,7f +34b5089,40 +34b508c,7f +34b508d,40 +34b5090,7f +34b5091,40 +34b5094,7f +34b5095,30 +34b5096,75 +34b5098,9e +34b509a,8d +34b509b,64 +34b509c,dc +34b509e,2b +34b509f,ee +34b50a0,c5 +34b50b6,5f +34b50b7,60 +34b50b8,9 +34b50b9,e7 +34b50ba,5f +34b50bb,60 +34b50bc,9e +34b50bd,70 +34b50be,5f +34b50bf,69 +34b50c0,e7 +34b50c2,5f +34b50c3,be +34b50c4,80 +34b50c6,5f +34b50c7,ed 34b50c8,b0 -34b50cb,d -34b50cc,b0 -34b50cf,d -34b50d0,b0 -34b50d3,d -34b50d4,b0 -34b50d7,d -34b50d8,b0 -34b50db,d -34b50dc,b0 -34b50df,d -34b50e0,b0 -34b50e3,d -34b50e4,b0 -34b50fa,4f -34b50fb,70 -34b50fc,9 -34b50fd,e0 -34b50fe,4f -34b50ff,70 -34b5100,9 -34b5101,e0 -34b5102,4f -34b5103,70 -34b5104,9 -34b5105,e0 -34b5106,4f -34b5107,70 -34b5108,9 -34b5109,e0 -34b510a,4f -34b510b,70 -34b510c,9 -34b510d,e0 -34b510e,3f -34b510f,70 -34b5110,9 -34b5111,e0 -34b5112,2e -34b5113,70 -34b5114,a -34b5115,d0 -34b5116,d -34b5117,c4 -34b5118,5d -34b5119,c0 -34b511a,5 -34b511b,ce -34b511c,ec -34b511d,40 +34b50ca,5f +34b50cb,87 +34b50cc,e8 +34b50ce,5f +34b50cf,60 +34b50d0,ae +34b50d1,40 +34b50d2,5f +34b50d3,60 +34b50d4,1d +34b50d5,c0 +34b50d6,5f +34b50d7,60 +34b50d8,6 +34b50d9,ea +34b50ee,c +34b50ef,c0 +34b50f2,c +34b50f3,c0 +34b50f6,c +34b50f7,c0 +34b50fa,c +34b50fb,c0 +34b50fe,c +34b50ff,c0 +34b5102,c +34b5103,c0 +34b5106,c +34b5107,c0 +34b510a,c +34b510b,c0 +34b510e,c +34b510f,ff +34b5110,ff +34b5111,f7 +34b5126,af +34b5127,a0 +34b5128,c +34b5129,f8 +34b512a,ae +34b512b,d0 +34b512c,2e +34b512d,e8 +34b512e,ad +34b512f,d5 +34b5130,9b +34b5131,e8 34b5132,ad -34b5134,3 +34b5133,aa +34b5134,c8 34b5135,e8 -34b5136,6f -34b5137,50 -34b5138,8 -34b5139,e3 -34b513a,e -34b513b,90 -34b513c,b -34b513d,c0 -34b513e,b -34b513f,c0 -34b5140,d -34b5141,90 -34b5142,8 -34b5143,e1 -34b5144,5e -34b5145,40 -34b5146,2 -34b5147,e7 -34b5148,ad -34b514b,cb -34b514c,ca -34b514f,9d -34b5150,e6 -34b5153,3e -34b5154,d0 -34b516a,e8 -34b516d,ad -34b516e,da -34b5171,cb -34b5172,cb -34b5175,da -34b5176,ac -34b5177,e -34b5178,c0 -34b5179,e8 -34b517a,8d -34b517b,6d -34b517c,e1 -34b517d,e5 -34b517e,6e -34b517f,9b -34b5180,d8 +34b5136,ad +34b5137,5d +34b5138,e1 +34b5139,e8 +34b513a,ad +34b513b,d +34b513c,b0 +34b513d,e8 +34b513e,ad +34b5141,e8 +34b5142,ad +34b5145,e8 +34b5146,ad +34b5149,e8 +34b515e,5f +34b515f,c0 +34b5160,8 +34b5161,e0 +34b5162,5f +34b5163,e6 +34b5164,8 +34b5165,e0 +34b5166,5f +34b5167,cb +34b5168,8 +34b5169,e0 +34b516a,5f +34b516b,7e +34b516c,48 +34b516d,e0 +34b516e,5f +34b516f,5c +34b5170,a8 +34b5171,e0 +34b5172,5f +34b5173,57 +34b5174,e8 +34b5175,e0 +34b5176,5f +34b5177,50 +34b5178,dc +34b5179,e0 +34b517a,5f +34b517b,50 +34b517c,9e +34b517d,e0 +34b517e,5f +34b517f,50 +34b5180,2e 34b5181,e0 -34b5182,1e -34b5183,c8 -34b5184,ac -34b5185,d0 -34b5186,d -34b5187,e3 -34b5188,7e -34b5189,c0 -34b518a,c -34b518b,d0 -34b518c,e -34b518d,a0 -34b51a2,6e -34b51a3,70 -34b51a4,7 -34b51a5,e7 -34b51a6,a -34b51a7,d2 -34b51a8,1d -34b51a9,b0 -34b51aa,2 -34b51ab,da -34b51ac,ad -34b51ad,20 -34b51af,7e -34b51b0,e7 -34b51b3,3e -34b51b4,e2 -34b51b7,bd -34b51b8,da -34b51ba,7 -34b51bb,e6 -34b51bc,7e -34b51bd,60 -34b51be,3e -34b51bf,a0 -34b51c0,b -34b51c1,d0 -34b51c2,bd -34b51c3,20 -34b51c4,4 -34b51c5,e9 -34b51da,ae -34b51db,20 -34b51dc,5 -34b51dd,e8 -34b51de,2d -34b51df,a0 -34b51e0,c -34b51e1,c0 -34b51e2,7 -34b51e3,e5 -34b51e4,7e -34b51e5,50 -34b51e7,cc -34b51e8,da -34b51eb,4e -34b51ec,d2 -34b51ef,d -34b51f0,b0 -34b51f3,d -34b51f4,b0 -34b51f7,d -34b51f8,b0 -34b51fb,d -34b51fc,b0 -34b5212,e -34b5213,ff -34b5214,ff -34b5215,f8 -34b5218,b -34b5219,d3 -34b521c,7e -34b521d,70 -34b521f,3 -34b5220,ea -34b5223,b -34b5224,d1 -34b5227,8e -34b5228,50 -34b522a,4 -34b522b,e9 -34b522e,c -34b522f,c0 -34b5232,1f -34b5233,ff -34b5234,ff -34b5235,fa -34b5243,4f -34b5244,fc -34b5247,4f -34b5248,50 -34b524b,4f -34b524c,50 -34b524f,4f -34b5250,50 -34b5253,4f -34b5254,50 -34b5257,4f -34b5258,50 -34b525b,4f -34b525c,50 -34b525f,4f -34b5260,50 -34b5263,4f -34b5264,50 -34b5267,4f -34b5268,50 -34b526b,4f -34b526c,50 -34b526f,4f -34b5270,fc -34b5282,6e -34b5283,50 -34b5286,c -34b5287,b0 -34b528a,7 -34b528b,e3 -34b528f,da -34b5293,9e -34b5294,20 -34b5297,1e -34b5298,90 -34b529b,a -34b529c,d0 -34b529f,3 -34b52a0,e8 -34b52a4,bc -34b52a8,4e -34b52a9,60 -34b52ac,b -34b52ad,c0 -34b52b3,df -34b52b4,e0 -34b52b7,8 -34b52b8,e0 -34b52bb,8 -34b52bc,e0 -34b52bf,8 -34b52c0,e0 -34b52c3,8 -34b52c4,e0 -34b52c7,8 -34b52c8,e0 -34b52cb,8 -34b52cc,e0 -34b52cf,8 -34b52d0,e0 -34b52d3,8 -34b52d4,e0 -34b52d7,8 -34b52d8,e0 -34b52db,8 -34b52dc,e0 -34b52df,df -34b52e0,e0 -34b52f3,5e -34b52f4,d2 -34b52f7,dc -34b52f8,db -34b52fa,a -34b52fb,d2 -34b52fc,5e -34b52fd,80 -34b52fe,7e -34b52ff,50 -34b5300,7 -34b5301,e5 -34b5356,ff -34b5357,ff -34b5358,ff -34b5359,fd -34b535e,2 -34b535f,ca -34b5363,2c -34b5364,90 -34b53a2,5 -34b53a3,ce -34b53a4,eb -34b53a5,10 -34b53a6,b -34b53a7,93 -34b53a8,6d -34b53a9,a0 +34b5196,4 +34b5197,ce +34b5198,eb +34b5199,20 +34b519a,c +34b519b,d5 +34b519c,6e +34b519d,a0 +34b519e,3e +34b519f,80 +34b51a0,a +34b51a1,e0 +34b51a2,7f +34b51a3,50 +34b51a4,8 +34b51a5,f2 +34b51a6,7f +34b51a7,40 +34b51a8,8 +34b51a9,f4 +34b51aa,7f +34b51ab,50 +34b51ac,8 +34b51ad,f2 +34b51ae,3e +34b51af,80 +34b51b0,a +34b51b1,e0 +34b51b2,c +34b51b3,d5 +34b51b4,6e +34b51b5,b0 +34b51b6,4 +34b51b7,ce +34b51b8,eb +34b51b9,20 +34b51ce,d +34b51cf,ff +34b51d0,ed +34b51d1,60 +34b51d2,d +34b51d3,b0 +34b51d4,5c +34b51d5,e2 +34b51d6,d +34b51d7,b0 +34b51d8,6 +34b51d9,f6 +34b51da,d +34b51db,b0 +34b51dc,6 +34b51dd,f6 +34b51de,d +34b51df,b0 +34b51e0,5c +34b51e1,e2 +34b51e2,d +34b51e3,ff +34b51e4,ed +34b51e5,60 +34b51e6,d +34b51e7,b0 +34b51ea,d +34b51eb,b0 +34b51ee,d +34b51ef,b0 +34b5206,4 +34b5207,ce +34b5208,eb +34b5209,20 +34b520a,c +34b520b,d5 +34b520c,6e +34b520d,a0 +34b520e,3e +34b520f,80 +34b5210,a +34b5211,e0 +34b5212,7f +34b5213,50 +34b5214,8 +34b5215,f2 +34b5216,7f +34b5217,40 +34b5218,8 +34b5219,f4 +34b521a,7f +34b521b,50 +34b521c,8 +34b521d,f1 +34b521e,3e +34b521f,80 +34b5220,a +34b5221,d0 +34b5222,c +34b5223,d5 +34b5224,6e +34b5225,a0 +34b5226,4 +34b5227,ce +34b5228,fc +34b5229,20 +34b522c,ae +34b522d,50 +34b5230,c +34b5231,80 +34b523e,5f +34b523f,fe +34b5240,eb +34b5241,20 +34b5242,5f +34b5243,71 +34b5244,7e +34b5245,b0 +34b5246,5f +34b5247,70 +34b5248,c +34b5249,d0 +34b524a,5f +34b524b,71 +34b524c,6e +34b524d,a0 +34b524e,5f +34b524f,ff +34b5250,ea +34b5252,5f +34b5253,72 +34b5254,ae +34b5255,40 +34b5256,5f +34b5257,70 +34b5258,d +34b5259,b0 +34b525a,5f +34b525b,70 +34b525c,8 +34b525d,e5 +34b525e,5f +34b525f,70 +34b5261,db +34b5276,6 +34b5277,ce +34b5278,eb +34b5279,30 +34b527a,d +34b527b,c4 +34b527c,5a +34b527d,90 +34b527e,4f +34b527f,60 +34b5282,e +34b5283,c6 +34b5286,5 +34b5287,ce +34b5288,eb +34b5289,40 +34b528c,6c +34b528d,c0 +34b5290,8 +34b5291,e0 +34b5292,c +34b5293,73 +34b5294,5c +34b5295,d0 +34b5296,8 +34b5297,de +34b5298,ec +34b5299,50 +34b52ae,cf +34b52af,ff +34b52b0,ff +34b52b1,fb +34b52b3,d +34b52b4,b0 +34b52b7,d +34b52b8,b0 +34b52bb,d +34b52bc,b0 +34b52bf,d +34b52c0,b0 +34b52c3,d +34b52c4,b0 +34b52c7,d +34b52c8,b0 +34b52cb,d +34b52cc,b0 +34b52cf,d +34b52d0,b0 +34b52e6,4f +34b52e7,70 +34b52e8,9 +34b52e9,e0 +34b52ea,4f +34b52eb,70 +34b52ec,9 +34b52ed,e0 +34b52ee,4f +34b52ef,70 +34b52f0,9 +34b52f1,e0 +34b52f2,4f +34b52f3,70 +34b52f4,9 +34b52f5,e0 +34b52f6,4f +34b52f7,70 +34b52f8,9 +34b52f9,e0 +34b52fa,3f +34b52fb,70 +34b52fc,9 +34b52fd,e0 +34b52fe,2e +34b52ff,70 +34b5300,a +34b5301,d0 +34b5302,d +34b5303,c4 +34b5304,5d +34b5305,c0 +34b5306,5 +34b5307,ce +34b5308,ec +34b5309,40 +34b531e,ad +34b5320,3 +34b5321,e8 +34b5322,6f +34b5323,50 +34b5324,8 +34b5325,e3 +34b5326,e +34b5327,90 +34b5328,b +34b5329,c0 +34b532a,b +34b532b,c0 +34b532c,d +34b532d,90 +34b532e,8 +34b532f,e1 +34b5330,5e +34b5331,40 +34b5332,2 +34b5333,e7 +34b5334,ad +34b5337,cb +34b5338,ca +34b533b,9d +34b533c,e6 +34b533f,3e +34b5340,d0 +34b5356,e8 +34b5359,ad +34b535a,da +34b535d,cb +34b535e,cb +34b5361,da +34b5362,ac +34b5363,e +34b5364,c0 +34b5365,e8 +34b5366,8d +34b5367,6d +34b5368,e1 +34b5369,e5 +34b536a,6e +34b536b,9b +34b536c,d8 +34b536d,e0 +34b536e,1e +34b536f,c8 +34b5370,ac +34b5371,d0 +34b5372,d +34b5373,e3 +34b5374,7e +34b5375,c0 +34b5376,c +34b5377,d0 +34b5378,e +34b5379,a0 +34b538e,6e +34b538f,70 +34b5390,7 +34b5391,e7 +34b5392,a +34b5393,d2 +34b5394,1d +34b5395,b0 +34b5396,2 +34b5397,da +34b5398,ad +34b5399,20 +34b539b,7e +34b539c,e7 +34b539f,3e +34b53a0,e2 +34b53a3,bd +34b53a4,da +34b53a6,7 +34b53a7,e6 +34b53a8,7e +34b53a9,60 +34b53aa,3e +34b53ab,a0 34b53ac,b -34b53ad,c0 -34b53ae,8 -34b53af,de -34b53b0,ff -34b53b1,c0 -34b53b2,3e -34b53b3,93 -34b53b4,b -34b53b5,d0 -34b53b6,4f -34b53b7,82 -34b53b8,7e -34b53b9,d0 -34b53ba,a -34b53bb,ee -34b53bc,db -34b53bd,d0 -34b53ca,d -34b53cb,90 -34b53ce,d -34b53cf,90 -34b53d2,d -34b53d3,90 -34b53d6,d -34b53d7,90 -34b53da,d -34b53db,bd -34b53dc,ec -34b53dd,40 -34b53de,d -34b53df,e6 -34b53e0,5d -34b53e1,c0 -34b53e2,d -34b53e3,b0 -34b53e4,8 -34b53e5,e0 -34b53e6,d -34b53e7,a0 -34b53e8,7 -34b53e9,f2 -34b53ea,d -34b53eb,b0 -34b53ec,8 -34b53ed,e0 -34b53ee,d -34b53ef,e6 -34b53f0,4d -34b53f1,b0 -34b53f2,d -34b53f3,bd -34b53f4,ec -34b53f5,40 -34b5413,8d -34b5414,ed -34b5415,70 -34b5416,7 +34b53ad,d0 +34b53ae,bd +34b53af,20 +34b53b0,4 +34b53b1,e9 +34b53c6,ae +34b53c7,20 +34b53c8,5 +34b53c9,e8 +34b53ca,2d +34b53cb,a0 +34b53cc,c +34b53cd,c0 +34b53ce,7 +34b53cf,e5 +34b53d0,7e +34b53d1,50 +34b53d3,cc +34b53d4,da +34b53d7,4e +34b53d8,d2 +34b53db,d +34b53dc,b0 +34b53df,d +34b53e0,b0 +34b53e3,d +34b53e4,b0 +34b53e7,d +34b53e8,b0 +34b53fe,e +34b53ff,ff +34b5400,ff +34b5401,f8 +34b5404,b +34b5405,d3 +34b5408,7e +34b5409,70 +34b540b,3 +34b540c,ea +34b540f,b +34b5410,d1 +34b5413,8e +34b5414,50 +34b5416,4 34b5417,e9 -34b5418,36 -34b5419,a0 34b541a,c 34b541b,c0 -34b541e,d -34b541f,b0 -34b5422,c -34b5423,c0 -34b5426,7 -34b5427,e9 -34b5428,36 -34b5429,a0 -34b542b,8d -34b542c,ed -34b542d,70 -34b543c,b -34b543d,c0 -34b5440,b -34b5441,c0 -34b5444,b -34b5445,c0 -34b5448,b -34b5449,c0 -34b544a,5 -34b544b,de -34b544c,dc -34b544d,c0 -34b544e,d -34b544f,c4 -34b5450,8e -34b5451,c0 -34b5452,5f -34b5453,60 -34b5454,c -34b5455,c0 -34b5456,7f -34b5457,30 -34b5458,b -34b5459,c0 -34b545a,5f -34b545b,60 -34b545c,c -34b545d,c0 -34b545e,d -34b545f,c4 -34b5460,8e -34b5461,c0 -34b5462,5 -34b5463,de -34b5464,dc -34b5465,c0 -34b5482,3 -34b5483,be -34b5484,ec -34b5485,30 -34b5486,c -34b5487,d5 -34b5488,4c -34b5489,c0 -34b548a,4f -34b548b,60 -34b548c,7 -34b548d,e0 -34b548e,6f -34b548f,ff -34b5490,ff -34b5491,f3 -34b5492,4f -34b5493,50 -34b5496,c -34b5497,c5 -34b5498,38 +34b541e,1f +34b541f,ff +34b5420,ff +34b5421,fa +34b542f,4f +34b5430,fc +34b5433,4f +34b5434,50 +34b5437,4f +34b5438,50 +34b543b,4f +34b543c,50 +34b543f,4f +34b5440,50 +34b5443,4f +34b5444,50 +34b5447,4f +34b5448,50 +34b544b,4f +34b544c,50 +34b544f,4f +34b5450,50 +34b5453,4f +34b5454,50 +34b5457,4f +34b5458,50 +34b545b,4f +34b545c,fc +34b546e,6e +34b546f,50 +34b5472,c +34b5473,b0 +34b5476,7 +34b5477,e3 +34b547b,da +34b547f,9e +34b5480,20 +34b5483,1e +34b5484,90 +34b5487,a +34b5488,d0 +34b548b,3 +34b548c,e8 +34b5490,bc +34b5494,4e +34b5495,60 +34b5498,b 34b5499,c0 -34b549a,3 -34b549b,be -34b549c,ec -34b549d,60 -34b54ab,5 -34b54ac,de -34b54ad,d0 -34b54af,c -34b54b0,b2 -34b54b3,d -34b54b4,90 -34b54b7,e -34b54b8,80 -34b54ba,d -34b54bb,ff -34b54bc,ff -34b54bd,d0 -34b54bf,e -34b54c0,80 -34b54c3,e -34b54c4,80 -34b54c7,e -34b54c8,80 -34b54cb,e -34b54cc,80 -34b54cf,e -34b54d0,80 -34b54d3,e -34b54d4,80 -34b54f2,5 -34b54f3,de -34b54f4,dc -34b54f5,c0 -34b54f6,d -34b54f7,c4 -34b54f8,8e -34b54f9,c0 -34b54fa,5f -34b54fb,60 -34b54fc,c -34b54fd,c0 -34b54fe,7f -34b54ff,30 -34b5500,b -34b5501,c0 -34b5502,5f -34b5503,60 -34b5504,c -34b5505,c0 -34b5506,d -34b5507,c4 -34b5508,8e -34b5509,c0 -34b550a,5 -34b550b,de -34b550c,dc -34b550d,b0 -34b5510,c -34b5511,a0 -34b5512,9 -34b5513,94 -34b5514,7e -34b5515,60 -34b5516,4 -34b5517,ce -34b5518,e9 -34b551a,d -34b551b,a0 -34b551e,d -34b551f,a0 -34b5522,d -34b5523,a0 -34b5526,d -34b5527,a0 -34b552a,d -34b552b,bd -34b552c,ed -34b552d,40 -34b552e,d -34b552f,e6 -34b5530,5d -34b5531,a0 -34b5532,d -34b5533,b0 -34b5534,b -34b5535,c0 -34b5536,d -34b5537,a0 -34b5538,b -34b5539,c0 -34b553a,d -34b553b,a0 -34b553c,b -34b553d,c0 -34b553e,d -34b553f,a0 -34b5540,b -34b5541,c0 -34b5542,d -34b5543,a0 -34b5544,b -34b5545,c0 -34b5553,b -34b5554,c0 -34b5562,9 -34b5563,ff -34b5564,c0 -34b5567,b -34b5568,c0 -34b556b,b -34b556c,c0 -34b556f,b -34b5570,c0 -34b5573,b -34b5574,c0 -34b5577,b -34b5578,c0 -34b557a,e -34b557b,ff -34b557c,ff -34b557d,e0 -34b558b,7 -34b558c,e0 -34b559a,7 -34b559b,ff -34b559c,e0 -34b559f,7 -34b55a0,e0 -34b55a3,7 -34b55a4,e0 -34b55a7,7 -34b55a8,e0 -34b55ab,7 -34b55ac,e0 -34b55af,7 -34b55b0,e0 -34b55b3,7 -34b55b4,e0 -34b55b7,7 -34b55b8,e0 -34b55bb,1b -34b55bc,d0 +34b549f,df +34b54a0,e0 +34b54a3,8 +34b54a4,e0 +34b54a7,8 +34b54a8,e0 +34b54ab,8 +34b54ac,e0 +34b54af,8 +34b54b0,e0 +34b54b3,8 +34b54b4,e0 +34b54b7,8 +34b54b8,e0 +34b54bb,8 +34b54bc,e0 +34b54bf,8 +34b54c0,e0 +34b54c3,8 +34b54c4,e0 +34b54c7,8 +34b54c8,e0 +34b54cb,df +34b54cc,e0 +34b54df,5e +34b54e0,d2 +34b54e3,dc +34b54e4,db +34b54e6,a +34b54e7,d2 +34b54e8,5e +34b54e9,80 +34b54ea,7e +34b54eb,50 +34b54ec,7 +34b54ed,e5 +34b5542,ff +34b5543,ff +34b5544,ff +34b5545,fd +34b554a,2 +34b554b,ca +34b554f,2c +34b5550,90 +34b558e,5 +34b558f,ce +34b5590,eb +34b5591,10 +34b5592,b +34b5593,93 +34b5594,6d +34b5595,a0 +34b5598,b +34b5599,c0 +34b559a,8 +34b559b,de +34b559c,ff +34b559d,c0 +34b559e,3e +34b559f,93 +34b55a0,b +34b55a1,d0 +34b55a2,4f +34b55a3,82 +34b55a4,7e +34b55a5,d0 +34b55a6,a +34b55a7,ee +34b55a8,db +34b55a9,d0 +34b55b6,d +34b55b7,90 +34b55ba,d +34b55bb,90 34b55be,d -34b55bf,fe -34b55c0,70 -34b55c2,b -34b55c3,c0 -34b55c6,b -34b55c7,c0 -34b55ca,b -34b55cb,c0 -34b55ce,b -34b55cf,c0 -34b55d2,b -34b55d3,c0 -34b55d4,3d -34b55d5,c2 -34b55d6,b -34b55d7,c3 -34b55d8,db -34b55da,b -34b55db,dd -34b55dc,c0 -34b55de,b -34b55df,fc -34b55e0,e5 -34b55e2,b -34b55e3,d0 -34b55e4,cd -34b55e5,10 -34b55e6,b -34b55e7,c0 -34b55e8,3d -34b55e9,b0 -34b55ea,b -34b55eb,c0 -34b55ec,7 -34b55ed,e8 -34b55fa,e -34b55fb,ff -34b55fc,40 -34b55ff,5f -34b5600,40 -34b5603,5f -34b5604,40 -34b5607,5f -34b5608,40 -34b560b,5f -34b560c,40 -34b560f,5f -34b5610,40 -34b5613,5f -34b5614,40 -34b5617,5f -34b5618,40 -34b561b,4f -34b561c,50 -34b561f,e -34b5620,a0 -34b5623,8 -34b5624,ef -34b5625,b0 -34b5642,8d -34b5643,dd -34b5644,ae +34b55bf,90 +34b55c2,d +34b55c3,90 +34b55c6,d +34b55c7,bd +34b55c8,ec +34b55c9,40 +34b55ca,d +34b55cb,e6 +34b55cc,5d +34b55cd,c0 +34b55ce,d +34b55cf,b0 +34b55d0,8 +34b55d1,e0 +34b55d2,d +34b55d3,a0 +34b55d4,7 +34b55d5,f2 +34b55d6,d +34b55d7,b0 +34b55d8,8 +34b55d9,e0 +34b55da,d +34b55db,e6 +34b55dc,4d +34b55dd,b0 +34b55de,d +34b55df,bd +34b55e0,ec +34b55e1,40 +34b55ff,8d +34b5600,ed +34b5601,70 +34b5602,7 +34b5603,e9 +34b5604,36 +34b5605,a0 +34b5606,c +34b5607,c0 +34b560a,d +34b560b,b0 +34b560e,c +34b560f,c0 +34b5612,7 +34b5613,e9 +34b5614,36 +34b5615,a0 +34b5617,8d +34b5618,ed +34b5619,70 +34b5628,b +34b5629,c0 +34b562c,b +34b562d,c0 +34b5630,b +34b5631,c0 +34b5634,b +34b5635,c0 +34b5636,5 +34b5637,de +34b5638,dc +34b5639,c0 +34b563a,d +34b563b,c4 +34b563c,8e +34b563d,c0 +34b563e,5f +34b563f,60 +34b5640,c +34b5641,c0 +34b5642,7f +34b5643,30 +34b5644,b 34b5645,c0 -34b5646,8e -34b5647,4d -34b5648,c5 -34b5649,e4 -34b564a,8d -34b564b,c -34b564c,b0 -34b564d,e6 -34b564e,8d -34b564f,b -34b5650,a0 -34b5651,e7 -34b5652,8d -34b5653,b -34b5654,a0 -34b5655,e7 -34b5656,8d -34b5657,b -34b5658,a0 -34b5659,e7 -34b565a,8d -34b565b,b -34b565c,a0 -34b565d,e7 -34b567a,d -34b567b,bd -34b567c,ed -34b567d,40 -34b567e,d -34b567f,e6 -34b5680,5d -34b5681,a0 -34b5682,d -34b5683,b0 -34b5684,b +34b5646,5f +34b5647,60 +34b5648,c +34b5649,c0 +34b564a,d +34b564b,c4 +34b564c,8e +34b564d,c0 +34b564e,5 +34b564f,de +34b5650,dc +34b5651,c0 +34b566e,3 +34b566f,be +34b5670,ec +34b5671,30 +34b5672,c +34b5673,d5 +34b5674,4c +34b5675,c0 +34b5676,4f +34b5677,60 +34b5678,7 +34b5679,e0 +34b567a,6f +34b567b,ff +34b567c,ff +34b567d,f3 +34b567e,4f +34b567f,50 +34b5682,c +34b5683,c5 +34b5684,38 34b5685,c0 -34b5686,d -34b5687,a0 -34b5688,b -34b5689,c0 -34b568a,d -34b568b,a0 -34b568c,b -34b568d,c0 -34b568e,d -34b568f,a0 -34b5690,b -34b5691,c0 -34b5692,d -34b5693,a0 -34b5694,b -34b5695,c0 -34b56b2,4 -34b56b3,ce -34b56b4,eb -34b56b5,20 -34b56b6,c -34b56b7,d5 -34b56b8,6d -34b56b9,a0 -34b56ba,1e -34b56bb,70 -34b56bc,a -34b56bd,d0 -34b56be,5f -34b56bf,60 -34b56c0,8 -34b56c1,e0 -34b56c2,1e -34b56c3,70 -34b56c4,a -34b56c5,d0 -34b56c6,c -34b56c7,d4 -34b56c8,6d -34b56c9,b0 -34b56ca,4 -34b56cb,ce -34b56cc,eb -34b56cd,20 -34b56ea,d -34b56eb,bd -34b56ec,ec -34b56ed,30 -34b56ee,d -34b56ef,e6 -34b56f0,5d -34b56f1,b0 +34b5686,3 +34b5687,be +34b5688,ec +34b5689,60 +34b5697,5 +34b5698,de +34b5699,d0 +34b569b,c +34b569c,b2 +34b569f,d +34b56a0,90 +34b56a3,e +34b56a4,80 +34b56a6,d +34b56a7,ff +34b56a8,ff +34b56a9,d0 +34b56ab,e +34b56ac,80 +34b56af,e +34b56b0,80 +34b56b3,e +34b56b4,80 +34b56b7,e +34b56b8,80 +34b56bb,e +34b56bc,80 +34b56bf,e +34b56c0,80 +34b56de,5 +34b56df,de +34b56e0,dc +34b56e1,c0 +34b56e2,d +34b56e3,c4 +34b56e4,8e +34b56e5,c0 +34b56e6,5f +34b56e7,60 +34b56e8,c +34b56e9,c0 +34b56ea,7f +34b56eb,30 +34b56ec,b +34b56ed,c0 +34b56ee,5f +34b56ef,60 +34b56f0,c +34b56f1,c0 34b56f2,d -34b56f3,b0 -34b56f4,9 -34b56f5,e0 -34b56f6,d -34b56f7,a0 -34b56f8,7 -34b56f9,e0 -34b56fa,d -34b56fb,b0 -34b56fc,8 -34b56fd,e0 -34b56fe,d -34b56ff,e6 -34b5700,5d -34b5701,b0 -34b5702,d -34b5703,be -34b5704,ec -34b5705,40 +34b56f3,c4 +34b56f4,8e +34b56f5,c0 +34b56f6,5 +34b56f7,de +34b56f8,dc +34b56f9,b0 +34b56fc,c +34b56fd,a0 +34b56fe,9 +34b56ff,94 +34b5700,7e +34b5701,60 +34b5702,4 +34b5703,ce +34b5704,e9 34b5706,d -34b5707,90 +34b5707,a0 34b570a,d -34b570b,90 +34b570b,a0 34b570e,d -34b570f,90 -34b5722,4 -34b5723,ce -34b5724,dc +34b570f,a0 +34b5712,d +34b5713,a0 +34b5716,d +34b5717,bd +34b5718,ed +34b5719,40 +34b571a,d +34b571b,e6 +34b571c,5d +34b571d,a0 +34b571e,d +34b571f,b0 +34b5720,b +34b5721,c0 +34b5722,d +34b5723,a0 +34b5724,b 34b5725,c0 -34b5726,c -34b5727,c4 -34b5728,7e +34b5726,d +34b5727,a0 +34b5728,b 34b5729,c0 -34b572a,1e -34b572b,70 -34b572c,c +34b572a,d +34b572b,a0 +34b572c,b 34b572d,c0 -34b572e,5f -34b572f,60 +34b572e,d +34b572f,a0 34b5730,b 34b5731,c0 -34b5732,2e -34b5733,70 -34b5734,c -34b5735,c0 -34b5736,c -34b5737,c4 -34b5738,7e -34b5739,c0 -34b573a,5 -34b573b,ce -34b573c,db -34b573d,c0 -34b5740,a -34b5741,c0 -34b5744,a -34b5745,c0 -34b5748,a -34b5749,c0 -34b575b,cc -34b575c,de -34b575d,f9 -34b575f,ce -34b5760,83 -34b5763,cb -34b5767,ca -34b576b,ca -34b576f,ca -34b5773,ca -34b5792,4 -34b5793,ce -34b5794,ea -34b5795,10 -34b5796,b -34b5797,d4 -34b5798,5b -34b5799,60 -34b579a,b -34b579b,d4 -34b579e,3 -34b579f,bd -34b57a0,db -34b57a1,20 -34b57a4,4d -34b57a5,a0 -34b57a6,b -34b57a7,94 -34b57a8,5e -34b57a9,a0 -34b57aa,5 -34b57ab,ce -34b57ac,eb -34b57ad,20 -34b57c3,8e -34b57c7,8e -34b57ca,6f -34b57cb,ff -34b57cc,ff -34b57cd,b0 -34b57cf,8e -34b57d3,8e -34b57d7,8e -34b57db,8e -34b57df,6e -34b57e0,70 -34b57e3,b -34b57e4,ef -34b57e5,b0 -34b5802,d -34b5803,a0 -34b5804,b -34b5805,c0 -34b5806,d -34b5807,a0 -34b5808,b -34b5809,c0 -34b580a,d -34b580b,a0 -34b580c,b -34b580d,c0 -34b580e,d -34b580f,a0 -34b5810,b -34b5811,c0 -34b5812,d -34b5813,a0 -34b5814,b -34b5815,c0 -34b5816,b -34b5817,d4 -34b5818,7e -34b5819,c0 -34b581a,5 -34b581b,de -34b581c,db -34b581d,c0 -34b583a,6e -34b583b,30 -34b583c,7 -34b583d,e3 -34b583e,d -34b583f,90 -34b5840,b -34b5841,c0 -34b5842,a -34b5843,d0 -34b5844,1e -34b5845,80 -34b5846,5 -34b5847,e4 -34b5848,8e -34b5849,20 -34b584b,da -34b584c,cb -34b584f,9d -34b5850,e7 -34b5853,3e -34b5854,e0 -34b5872,e8 -34b5875,ac -34b5876,ca -34b5879,ca -34b587a,ac -34b587b,d -34b587c,b0 -34b587d,e7 -34b587e,6e -34b587f,3d -34b5880,d5 -34b5881,e2 -34b5882,e -34b5883,ab -34b5884,ca -34b5885,d0 -34b5886,c -34b5887,e7 -34b5888,9e -34b5889,b0 -34b588a,a -34b588b,e1 -34b588c,5f -34b588d,80 -34b58aa,3d -34b58ab,a0 -34b58ac,b -34b58ad,c0 -34b58ae,6 -34b58af,e6 -34b58b0,9e -34b58b1,40 -34b58b3,9e -34b58b4,e7 -34b58b7,2e -34b58b8,d0 -34b58bb,cc -34b58bc,da -34b58be,9 -34b58bf,e4 -34b58c0,6e -34b58c1,70 -34b58c2,6e -34b58c3,70 -34b58c4,9 -34b58c5,e4 -34b58e2,6e -34b58e3,50 -34b58e4,5 -34b58e5,e5 +34b573f,b +34b5740,c0 +34b574e,9 +34b574f,ff +34b5750,c0 +34b5753,b +34b5754,c0 +34b5757,b +34b5758,c0 +34b575b,b +34b575c,c0 +34b575f,b +34b5760,c0 +34b5763,b +34b5764,c0 +34b5766,e +34b5767,ff +34b5768,ff +34b5769,e0 +34b5777,7 +34b5778,e0 +34b5786,7 +34b5787,ff +34b5788,e0 +34b578b,7 +34b578c,e0 +34b578f,7 +34b5790,e0 +34b5793,7 +34b5794,e0 +34b5797,7 +34b5798,e0 +34b579b,7 +34b579c,e0 +34b579f,7 +34b57a0,e0 +34b57a3,7 +34b57a4,e0 +34b57a7,1b +34b57a8,d0 +34b57aa,d +34b57ab,fe +34b57ac,70 +34b57ae,b +34b57af,c0 +34b57b2,b +34b57b3,c0 +34b57b6,b +34b57b7,c0 +34b57ba,b +34b57bb,c0 +34b57be,b +34b57bf,c0 +34b57c0,3d +34b57c1,c2 +34b57c2,b +34b57c3,c3 +34b57c4,db +34b57c6,b +34b57c7,dd +34b57c8,c0 +34b57ca,b +34b57cb,fc +34b57cc,e5 +34b57ce,b +34b57cf,d0 +34b57d0,cd +34b57d1,10 +34b57d2,b +34b57d3,c0 +34b57d4,3d +34b57d5,b0 +34b57d6,b +34b57d7,c0 +34b57d8,7 +34b57d9,e8 +34b57e6,e +34b57e7,ff +34b57e8,40 +34b57eb,5f +34b57ec,40 +34b57ef,5f +34b57f0,40 +34b57f3,5f +34b57f4,40 +34b57f7,5f +34b57f8,40 +34b57fb,5f +34b57fc,40 +34b57ff,5f +34b5800,40 +34b5803,5f +34b5804,40 +34b5807,4f +34b5808,50 +34b580b,e +34b580c,a0 +34b580f,8 +34b5810,ef +34b5811,b0 +34b582e,8d +34b582f,dd +34b5830,ae +34b5831,c0 +34b5832,8e +34b5833,4d +34b5834,c5 +34b5835,e4 +34b5836,8d +34b5837,c +34b5838,b0 +34b5839,e6 +34b583a,8d +34b583b,b +34b583c,a0 +34b583d,e7 +34b583e,8d +34b583f,b +34b5840,a0 +34b5841,e7 +34b5842,8d +34b5843,b +34b5844,a0 +34b5845,e7 +34b5846,8d +34b5847,b +34b5848,a0 +34b5849,e7 +34b5866,d +34b5867,bd +34b5868,ed +34b5869,40 +34b586a,d +34b586b,e6 +34b586c,5d +34b586d,a0 +34b586e,d +34b586f,b0 +34b5870,b +34b5871,c0 +34b5872,d +34b5873,a0 +34b5874,b +34b5875,c0 +34b5876,d +34b5877,a0 +34b5878,b +34b5879,c0 +34b587a,d +34b587b,a0 +34b587c,b +34b587d,c0 +34b587e,d +34b587f,a0 +34b5880,b +34b5881,c0 +34b589e,4 +34b589f,ce +34b58a0,eb +34b58a1,20 +34b58a2,c +34b58a3,d5 +34b58a4,6d +34b58a5,a0 +34b58a6,1e +34b58a7,70 +34b58a8,a +34b58a9,d0 +34b58aa,5f +34b58ab,60 +34b58ac,8 +34b58ad,e0 +34b58ae,1e +34b58af,70 +34b58b0,a +34b58b1,d0 +34b58b2,c +34b58b3,d4 +34b58b4,6d +34b58b5,b0 +34b58b6,4 +34b58b7,ce +34b58b8,eb +34b58b9,20 +34b58d6,d +34b58d7,bd +34b58d8,ec +34b58d9,30 +34b58da,d +34b58db,e6 +34b58dc,5d +34b58dd,b0 +34b58de,d +34b58df,b0 +34b58e0,9 +34b58e1,e0 +34b58e2,d +34b58e3,a0 +34b58e4,7 +34b58e5,e0 34b58e6,d -34b58e7,a0 -34b58e8,b -34b58e9,d0 -34b58ea,9 -34b58eb,e0 -34b58ec,e -34b58ed,90 -34b58ee,3 -34b58ef,e7 -34b58f0,8e -34b58f1,30 -34b58f3,cc -34b58f4,cc -34b58f7,7e -34b58f8,e7 -34b58fb,d -34b58fc,e0 -34b58ff,d -34b5900,a0 -34b5903,8e -34b5904,50 -34b5906,d -34b5907,ea -34b591a,b -34b591b,ff -34b591c,ff +34b58e7,b0 +34b58e8,8 +34b58e9,e0 +34b58ea,d +34b58eb,e6 +34b58ec,5d +34b58ed,b0 +34b58ee,d +34b58ef,be +34b58f0,ec +34b58f1,40 +34b58f2,d +34b58f3,90 +34b58f6,d +34b58f7,90 +34b58fa,d +34b58fb,90 +34b590e,4 +34b590f,ce +34b5910,dc +34b5911,c0 +34b5912,c +34b5913,c4 +34b5914,7e +34b5915,c0 +34b5916,1e +34b5917,70 +34b5918,c +34b5919,c0 +34b591a,5f +34b591b,60 +34b591c,b 34b591d,c0 -34b5920,5e -34b5921,70 -34b5923,3 -34b5924,d9 -34b5927,c -34b5928,b0 -34b592b,bd -34b592c,20 -34b592e,9 -34b592f,e4 -34b5932,d -34b5933,ff -34b5934,ff +34b591e,2e +34b591f,70 +34b5920,c +34b5921,c0 +34b5922,c +34b5923,c4 +34b5924,7e +34b5925,c0 +34b5926,5 +34b5927,ce +34b5928,db +34b5929,c0 +34b592c,a +34b592d,c0 +34b5930,a +34b5931,c0 +34b5934,a 34b5935,c0 -34b5943,6 -34b5944,de -34b5945,a0 -34b5947,b -34b5948,d3 -34b594b,c -34b594c,b0 -34b594f,c -34b5950,b0 -34b5953,5e -34b5954,a0 -34b5956,b -34b5957,fd -34b5958,20 -34b595b,7e -34b595c,90 -34b595f,d -34b5960,b0 -34b5963,c -34b5964,b0 -34b5967,c -34b5968,b0 -34b596b,b -34b596c,d4 -34b596f,5 -34b5970,de -34b5971,a0 -34b597b,c -34b597c,a0 -34b597f,c -34b5980,a0 -34b5983,c -34b5984,a0 -34b5987,c -34b5988,a0 -34b598b,c -34b598c,a0 -34b598f,c -34b5990,a0 -34b5993,c -34b5994,a0 -34b5997,c -34b5998,a0 -34b599b,c -34b599c,a0 -34b599f,c -34b59a0,a0 -34b59a3,c -34b59a4,a0 -34b59a7,c -34b59a8,a0 -34b59ab,c -34b59ac,a0 -34b59b2,b -34b59b3,ed -34b59b4,30 -34b59b7,4e -34b59b8,90 -34b59bb,d -34b59bc,a0 -34b59bf,c -34b59c0,a0 -34b59c3,b -34b59c4,c4 -34b59c7,5 -34b59c8,ef -34b59c9,a0 -34b59cb,b -34b59cc,d5 -34b59cf,c -34b59d0,b0 -34b59d3,d -34b59d4,a0 -34b59d7,d -34b59d8,a0 -34b59db,5e -34b59dc,80 -34b59de,b -34b59df,ec -34b59e0,20 -34b5a02,5d -34b5a03,ed -34b5a04,83 -34b5a05,a7 -34b5a06,98 -34b5a07,38 -34b5a08,de -34b5a09,c3 +34b5947,cc +34b5948,de +34b5949,f9 +34b594b,ce +34b594c,83 +34b594f,cb +34b5953,ca +34b5957,ca +34b595b,ca +34b595f,ca +34b597e,4 +34b597f,ce +34b5980,ea +34b5981,10 +34b5982,b +34b5983,d4 +34b5984,5b +34b5985,60 +34b5986,b +34b5987,d4 +34b598a,3 +34b598b,bd +34b598c,db +34b598d,20 +34b5990,4d +34b5991,a0 +34b5992,b +34b5993,94 +34b5994,5e +34b5995,a0 +34b5996,5 +34b5997,ce +34b5998,eb +34b5999,20 +34b59af,8e +34b59b3,8e +34b59b6,6f +34b59b7,ff +34b59b8,ff +34b59b9,b0 +34b59bb,8e +34b59bf,8e +34b59c3,8e +34b59c7,8e +34b59cb,6e +34b59cc,70 +34b59cf,b +34b59d0,ef +34b59d1,b0 +34b59ee,d +34b59ef,a0 +34b59f0,b +34b59f1,c0 +34b59f2,d +34b59f3,a0 +34b59f4,b +34b59f5,c0 +34b59f6,d +34b59f7,a0 +34b59f8,b +34b59f9,c0 +34b59fa,d +34b59fb,a0 +34b59fc,b +34b59fd,c0 +34b59fe,d +34b59ff,a0 +34b5a00,b +34b5a01,c0 +34b5a02,b +34b5a03,d4 +34b5a04,7e +34b5a05,c0 +34b5a06,5 +34b5a07,de +34b5a08,db +34b5a09,c0 +34b5a26,6e +34b5a27,30 +34b5a28,7 +34b5a29,e3 +34b5a2a,d +34b5a2b,90 +34b5a2c,b +34b5a2d,c0 +34b5a2e,a +34b5a2f,d0 +34b5a30,1e +34b5a31,80 +34b5a32,5 +34b5a33,e4 +34b5a34,8e +34b5a35,20 +34b5a37,da +34b5a38,cb +34b5a3b,9d +34b5a3c,e7 +34b5a3f,3e +34b5a40,e0 +34b5a5e,e8 +34b5a61,ac +34b5a62,ca +34b5a65,ca +34b5a66,ac +34b5a67,d +34b5a68,b0 +34b5a69,e7 +34b5a6a,6e +34b5a6b,3d +34b5a6c,d5 +34b5a6d,e2 +34b5a6e,e +34b5a6f,ab +34b5a70,ca +34b5a71,d0 +34b5a72,c +34b5a73,e7 +34b5a74,9e +34b5a75,b0 +34b5a76,a +34b5a77,e1 +34b5a78,5f +34b5a79,80 +34b5a96,3d +34b5a97,a0 +34b5a98,b +34b5a99,c0 +34b5a9a,6 +34b5a9b,e6 +34b5a9c,9e +34b5a9d,40 +34b5a9f,9e +34b5aa0,e7 +34b5aa3,2e +34b5aa4,d0 +34b5aa7,cc +34b5aa8,da +34b5aaa,9 +34b5aab,e4 +34b5aac,6e +34b5aad,70 +34b5aae,6e +34b5aaf,70 +34b5ab0,9 +34b5ab1,e4 +34b5ace,6e +34b5acf,50 +34b5ad0,5 +34b5ad1,e5 +34b5ad2,d +34b5ad3,a0 +34b5ad4,b +34b5ad5,d0 +34b5ad6,9 +34b5ad7,e0 +34b5ad8,e +34b5ad9,90 +34b5ada,3 +34b5adb,e7 +34b5adc,8e +34b5add,30 +34b5adf,cc +34b5ae0,cc +34b5ae3,7e +34b5ae4,e7 +34b5ae7,d +34b5ae8,e0 +34b5aeb,d +34b5aec,a0 +34b5aef,8e +34b5af0,50 +34b5af2,d +34b5af3,ea +34b5b06,b +34b5b07,ff +34b5b08,ff +34b5b09,c0 +34b5b0c,5e +34b5b0d,70 +34b5b0f,3 +34b5b10,d9 +34b5b13,c +34b5b14,b0 +34b5b17,bd +34b5b18,20 +34b5b1a,9 +34b5b1b,e4 +34b5b1e,d +34b5b1f,ff +34b5b20,ff +34b5b21,c0 +34b5b2f,6 +34b5b30,de +34b5b31,a0 +34b5b33,b +34b5b34,d3 +34b5b37,c +34b5b38,b0 +34b5b3b,c +34b5b3c,b0 +34b5b3f,5e +34b5b40,a0 +34b5b42,b +34b5b43,fd +34b5b44,20 +34b5b47,7e +34b5b48,90 +34b5b4b,d +34b5b4c,b0 +34b5b4f,c +34b5b50,b0 +34b5b53,c +34b5b54,b0 +34b5b57,b +34b5b58,d4 +34b5b5b,5 +34b5b5c,de +34b5b5d,a0 +34b5b67,c +34b5b68,a0 +34b5b6b,c +34b5b6c,a0 +34b5b6f,c +34b5b70,a0 +34b5b73,c +34b5b74,a0 +34b5b77,c +34b5b78,a0 +34b5b7b,c +34b5b7c,a0 +34b5b7f,c +34b5b80,a0 +34b5b83,c +34b5b84,a0 +34b5b87,c +34b5b88,a0 +34b5b8b,c +34b5b8c,a0 +34b5b8f,c +34b5b90,a0 +34b5b93,c +34b5b94,a0 +34b5b97,c +34b5b98,a0 +34b5b9e,b +34b5b9f,ed +34b5ba0,30 +34b5ba3,4e +34b5ba4,90 +34b5ba7,d +34b5ba8,a0 +34b5bab,c +34b5bac,a0 +34b5baf,b +34b5bb0,c4 +34b5bb3,5 +34b5bb4,ef +34b5bb5,a0 +34b5bb7,b +34b5bb8,d5 +34b5bbb,c +34b5bbc,b0 +34b5bbf,d +34b5bc0,a0 +34b5bc3,d +34b5bc4,a0 +34b5bc7,5e +34b5bc8,80 +34b5bca,b +34b5bcb,ec +34b5bcc,20 +34b5bee,5d +34b5bef,ed +34b5bf0,83 +34b5bf1,a7 +34b5bf2,98 +34b5bf3,38 +34b5bf4,de +34b5bf5,c3 diff --git a/data/symbols.json b/data/symbols.json index 1ee19ac87..7360720ae 100644 --- a/data/symbols.json +++ b/data/symbols.json @@ -4,7 +4,7 @@ "EXTENDED_ITEM_DATA": "03482008", "FAIRY_ITEMS": "03481C03", "FAIRY_OCARINA_ITEM": "03481C02", - "FONT_TEXTURE": "034B455A", + "FONT_TEXTURE": "034B4746", "INITIAL_SAVE_DATA": "03481800", "ITEM_OVERRIDES": "03481000", "ITEM_TABLE": "03482050", @@ -14,20 +14,24 @@ "PLAYER_ID": "03481C00", "PLAYER_OVERRIDE_DATA": "03482000", "TIME_TRAVEL_SAVED_EQUIPS": "0348201C", - "cfg_dungeon_info_enable": "034B4518", - "cfg_dungeon_info_mq_enable": "034B4530", - "cfg_dungeon_info_mq_need_map": "034B452C", - "cfg_dungeon_info_reward_need_altar": "034B4524", - "cfg_dungeon_info_reward_need_compass": "034B4528", - "cfg_dungeon_is_mq": "034B454C", - "cfg_dungeon_rewards": "034B4458", - "dungeon_count": "034B451C", - "dungeons": "034B447C", - "font_sprite": "034B4418", - "heap_next": "034B4520", - "medal_colors": "034B4468", - "medals_sprite": "034B4438", - "quest_items_sprite": "034B4428", - "setup_db": "034B453C", - "stones_sprite": "034B4448" + "cfg_dungeon_info_enable": "034B4700", + "cfg_dungeon_info_mq_enable": "034B471C", + "cfg_dungeon_info_mq_need_map": "034B4718", + "cfg_dungeon_info_reward_need_altar": "034B4710", + "cfg_dungeon_info_reward_need_compass": "034B4714", + "cfg_dungeon_is_mq": "034B4738", + "cfg_dungeon_rewards": "034B4638", + "cfg_file_select_hash": "034B4708", + "dungeon_count": "034B4704", + "dungeons": "034B465C", + "font_sprite": "034B45E8", + "hash_sprites": "034B46F8", + "hash_symbols": "034B45A8", + "heap_next": "034B470C", + "items_sprite": "034B4608", + "medal_colors": "034B4648", + "medals_sprite": "034B4618", + "quest_items_sprite": "034B45F8", + "setup_db": "034B4728", + "stones_sprite": "034B4628" } \ No newline at end of file From b4d54f10890d5a59973971b2f7c7fd7b17de0d10 Mon Sep 17 00:00:00 2001 From: AmazingAmpharos Date: Thu, 11 Oct 2018 04:57:14 -0500 Subject: [PATCH 675/755] Clean up various minor text issues This mostly just improves some text in the GUI, largely in the tooltips. There is more work to be done especially with the actual labels for options and their creative and inconsistent capitalization, but this should be a good start. --- Gui.py | 2 +- Settings.py | 167 +++++++++++++++++++++++++++------------------------- 2 files changed, 89 insertions(+), 80 deletions(-) diff --git a/Gui.py b/Gui.py index 1a6a46bb1..47126ff30 100755 --- a/Gui.py +++ b/Gui.py @@ -447,7 +447,7 @@ def generateRom(): BackgroundTaskProgress(mainWindow, "Generating Seed...", main, settings) generateSeedFrame = Frame(mainWindow) - generateButton = Button(generateSeedFrame, text='Generate Patched Rom', command=generateRom) + generateButton = Button(generateSeedFrame, text='Generate Patched ROM', command=generateRom) seedLabel = Label(generateSeedFrame, text='Seed') guivars['seed'] = StringVar() diff --git a/Settings.py b/Settings.py index 3d33568b3..f19fc401a 100644 --- a/Settings.py +++ b/Settings.py @@ -248,14 +248,14 @@ def parse_custom_navi_color(s): 'const': 'True', 'nargs': '?', 'help': '''\ - Create a compressed version of the output rom file. + Create a compressed version of the output ROM file. True: Compresses. Improves stability. Will take longer to generate False: Uncompressed. Unstable. Faster generation None: No ROM Output. Creates spoiler log only ''', }, { - 'text': 'Compress Rom', + 'text': 'Compress ROM', 'group': 'rom_tab', 'widget': 'Radiobutton', 'default': 'Compressed [Stable]', @@ -266,7 +266,7 @@ def parse_custom_navi_color(s): 'No ROM Output': 'None', }, 'tooltip':'''\ - The first time compressed generation will take a while + The first time compressed generation will take a while, but subsequent generations will be quick. It is highly recommended to compress or the game will crash frequently except on real N64 hardware. @@ -275,7 +275,7 @@ def parse_custom_navi_color(s): Setting_Info('open_forest', bool, 1, True, { 'help': '''\ - Mido no longer blocks the path to the Deku Tree and + Mido no longer blocks the path to the Deku Tree, and the Kokiri boy no longer blocks the path out of the forest. ''', 'action': 'store_true' @@ -286,9 +286,12 @@ def parse_custom_navi_color(s): 'widget': 'Checkbutton', 'default': 'checked', 'tooltip':'''\ - Can leave the Kokiri Forest without beating the - Deku Tree. When this option is off, the Kokiri - Sword and Slingshot are always available somewhere + Mido no longer blocks the path to the Deku Tree, + and the Kokiri boy no longer blocks the path out + of the forest. + + When this option is off, the Kokiri Sword and + Slingshot are always available somewhere in the forest. ''' }), @@ -296,7 +299,7 @@ def parse_custom_navi_color(s): { 'help': '''\ The gate in Kakariko Village to Death Mountain Trail - is always open, instead of needing Zelda's Letter. + is always open instead of needing Zelda's Letter. ''', 'action': 'store_true' }, @@ -307,9 +310,9 @@ def parse_custom_navi_color(s): 'default': 'unchecked', 'tooltip':'''\ The gate in Kakariko Village to Death Mountain Trail - is always open, instead of needing Zelda's Letter. + is always open instead of needing Zelda's Letter. - Either way, the gate is always open as adult. + Either way, the gate is always open as an adult. ''' }), Setting_Info('open_door_of_time', bool, 1, True, @@ -326,9 +329,9 @@ def parse_custom_navi_color(s): 'default': 'unchecked', 'tooltip':'''\ The Door of Time starts opened instead of needing to - play the Song of Time. Setting closed will mean there - is a child section before becoming adult, so there is - more structure. + play the Song of Time. If this is not set, only + an Ocarina and Song of Time must be found to open + the Door of Time. ''' }), Setting_Info('gerudo_fortress', str, 2, True, @@ -339,7 +342,7 @@ def parse_custom_navi_color(s): 'help': '''Select how much of Gerudo Fortress is required. (default: %(default)s) Normal: Free all four carpenters to get the Gerudo Card. Fast: Free only the carpenter closest to Link's prison to get the Gerudo Card. - Open: Start with the Gerudo Card and all it's benefits. + Open: Start with the Gerudo Card and all its benefits. ''' }, { @@ -369,7 +372,7 @@ def parse_custom_navi_color(s): 'help': '''\ Select requirement to spawn the Rainbow Bridge to reach Ganon's Castle. (default: %(default)s) Medallions: Collect all six medallions to create the bridge. - Vanilla: Collect only the Shadow and Spirit Medallions and then view the Light Arrow cutscene. + Vanilla: Collect only the Shadow and Spirit Medallions and possess the Light Arrows. All Dungeons: Collect all spiritual stones and all medallions to create the bridge. Open: The bridge will spawn without an item requirement. ''' @@ -411,7 +414,7 @@ def parse_custom_navi_color(s): 'default': 'checked', 'tooltip':'''\ When this option is enabled, the randomizer will - guarantee that every item is obtainable, and every + guarantee that every item is obtainable and every location is reachable. When disabled, only required items and locations @@ -425,9 +428,9 @@ def parse_custom_navi_color(s): { 'help': '''\ Bombchus will be considered in logic. This has a few effects: - -Back alley shop will open once you've found Bombchus - -It will sell an affordable pack (5 for 60), and never sell out - -Bombchus refills cannot be bought until Bomchus have been obtained. + -Back Alley shop will open once you've found Bombchus. + -It will sell an affordable pack (5 for 60) and never sell out. + -Bombchus refills cannot be bought until Bombchus have been obtained. ''', 'action': 'store_true' }, @@ -579,7 +582,7 @@ def parse_custom_navi_color(s): Setting_Info('fast_chests', bool, 1, True, { 'help': '''\ - Makes all chests open without the large chest opening cutscene + Makes all chests open without the large chest opening cutscene. ''', 'action': 'store_true' }, @@ -636,7 +639,7 @@ def parse_custom_navi_color(s): Setting_Info('free_scarecrow', bool, 1, True, { 'help': '''\ - Start with the scarecrow song. You do not need + Start with Scarecrow's Song. You do not need to play it as child or adult at the scarecrow patch to be able to summon Pierre. ''', @@ -649,7 +652,7 @@ def parse_custom_navi_color(s): 'default': 'unchecked', 'tooltip':'''\ Skips needing to go to Lake Hylia as both - child and adult to learn Scarecrow Song. + child and adult to learn Scarecrow's Song. ''' }), Setting_Info('scarecrow_song', str, 0, False, @@ -668,8 +671,8 @@ def parse_custom_navi_color(s): 'default': 'DAAAAAAA', 'dependency': lambda guivar: guivar['free_scarecrow'].get(), 'tooltip':'''\ - Song must be 8 notes long and have at least - two different notes. + The song must be 8 notes long and have + at least two different notes. Valid notes are: 'A': A Button 'D': C-Down @@ -711,7 +714,8 @@ def parse_custom_navi_color(s): 'tooltip':'''\ You need to find the egg before going Zelda. This means the Weird Egg locks the rewards from - Impa, Saria, Malon, and Talon. + Impa, Saria, Malon, and Talon as well as the + Happy Mask sidequest. ''' }), Setting_Info('shuffle_ocarinas', bool, 1, True, @@ -737,7 +741,7 @@ def parse_custom_navi_color(s): { 'help': '''\ Shuffles the songs with with rest of the item pool so that - song can appear at other locations, and items can appear at + songs can appear at other locations and items can appear at the song locations. ''', 'action': 'store_true' @@ -748,8 +752,11 @@ def parse_custom_navi_color(s): 'widget': 'Checkbutton', 'default': 'checked', 'tooltip':'''\ - Songs can appear anywhere as normal items, - not just at vanilla song locations. + Songs can appear anywhere as normal items. + + If this option is not set, songs will still + be shuffled but will be limited to the + locations that has songs in the original game. ''' }), Setting_Info('shuffle_gerudo_card', bool, 1, True, @@ -769,9 +776,8 @@ def parse_custom_navi_color(s): 'default': 'unchecked', 'dependency': lambda guivar: guivar['gerudo_fortress'].get() != 'Start with Gerudo Card', 'tooltip':'''\ - Gerudo Membership Card is required to - enter Gerudo Training Grounds. It is - effectively the Boss Key of Gerudo Fortress. + Gerudo Card is required to enter + Gerudo Training Grounds. ''' }), Setting_Info('shuffle_scrubs', str, 3, True, @@ -781,8 +787,8 @@ def parse_custom_navi_color(s): 'nargs': '?', 'help': '''\ Deku Scrub Salesmen are randomized: - off: Only the 3 Scrubs that give actual items in - the vanilla game will have random items. + off: Only the 3 Scrubs that give one-time items + in the vanilla game will have random items. low: All Scrubs will have random items and their prices will be reduced to 10 rupees each. regular: All Scrubs will have random items and each @@ -803,10 +809,10 @@ def parse_custom_navi_color(s): 'On (Random Prices)': 'random', }, 'tooltip':'''\ - 'Off': Only the 3 Scrubs that give unique - items in the vanilla game (PoH, nut - capacity, and stick capacity) will have - random items. + 'Off': Only the 3 Scrubs that give one-time + items in the vanilla game (PoH, Deku Nut + capacity, and Deku Stick capacity) will + have random items. 'Affordable': All Scrub prices will be reduced to 10 rupees each. @@ -816,8 +822,8 @@ def parse_custom_navi_color(s): spending over 1000 rupees on Scrubs. 'Random Prices': All Scrub prices will be - between 0-99 rupees. This will require - spending over 1000 rupees on Scrubs. + between 0-99 rupees. This will on average + be very, very expensive overall. The texts of the Scrubs are not updated. ''' @@ -858,12 +864,11 @@ def parse_custom_navi_color(s): Shop contents are randomized. (X Items): Shops have X random non-shop (Special Deal!) items. They will always be on the left - side. This means that every shop will have more - possible item locations. So +2 means 2 items - per shop. + side, and some of the lower value shop items + will be replaced to make room for these. (Random): Each shop will have a random number - of non-shop items, up to a maximum of 4. + of non-shop items up to a maximum of 4. The non-shop items have no requirements except money, while the normal shop items (such as @@ -872,10 +877,10 @@ def parse_custom_navi_color(s): as a child you cannot buy 200/300 rupee tunics, but you can buy non-shop tunics. - Non-shop bombchus will unlock the chu slot - in your inventory, which, if bombchus are in - logic, is needed to buy chu refills. If not in - logic, the bomb bag is required. + Non-shop Bombchus will unlock the chu slot + in your inventory, which, if Bombchus are in + logic, is needed to buy Bombchu refills. + Otherwise, the Bomb Bag is required. ''' }), Setting_Info('shuffle_mapcompass', str, 2, True, @@ -885,9 +890,9 @@ def parse_custom_navi_color(s): 'nargs': '?', 'help': '''\ Sets the Map and Compass placement rules - remove: Maps and Compasses are removed from the world - dungeon: Maps and Compasses are put in their dungeon - keysanity: Maps and Compasses can appear anywhere + remove: Maps and Compasses are removed from the world. + dungeon: Maps and Compasses are put in their dungeon. + keysanity: Maps and Compasses can appear anywhere. ''' }, { @@ -924,9 +929,9 @@ def parse_custom_navi_color(s): 'nargs': '?', 'help': '''\ Sets the Small Keys placement rules - remove: Small Keys are removed from the world - dungeon: Small Keys are put in their Dungeon - keysanity: Small Keys can appear anywhere + remove: Small Keys are removed from the world. + dungeon: Small Keys are put in their dungeon. + keysanity: Small Keys can appear anywhere. ''' }, { @@ -965,9 +970,9 @@ def parse_custom_navi_color(s): 'nargs': '?', 'help': '''\ Sets the Boss Keys placement rules - remove: Boss Keys are removed from the world - dungeon: Boss Keys are put in their Dungeon - keysanity: Boss Keys can appear anywhere + remove: Boss Keys are removed from the world. + dungeon: Boss Keys are put in their dungeon. + keysanity: Boss Keys can appear anywhere. ''' }, { @@ -1035,9 +1040,11 @@ def parse_custom_navi_color(s): 'widget': 'Checkbutton', 'default': 'unchecked', 'tooltip':'''\ - Best when used when reducing the number of - Trials to less than 6 to prevent needing - to do them all anyways looking for the key. + The Boss Key door in Ganon's Tower + will start unlocked. This is intended + to be used with reduced trial + requirements to make it more likely + that skipped trials can be avoided. ''', 'dependency': lambda guivar: guivar['shuffle_bosskeys'].get() != 'Boss Keys: Remove (Keysy)', }), @@ -1068,7 +1075,7 @@ def parse_custom_navi_color(s): Token reward from Gold Skulltulas are shuffled into the pool. - 'Dungeon Only': This only shuffles + 'Dungeons Only': This only shuffles the GS locations that are within dungeons, increasing the value of most dungeons and making internal @@ -1485,7 +1492,9 @@ def parse_custom_navi_color(s): 'widget': 'Checkbutton', 'default': 'unchecked', 'tooltip':'''\ - Hover from the top of the crater. + Hover from the base of the bridge + near Goron City and walk up the + very steep slope. ''' }), Setting_Info('logic_zora_with_cucco', bool, 1, True, @@ -1544,7 +1553,7 @@ def parse_custom_navi_color(s): pillar still requires Zora Tunic. - Enter Fire Temple. Only the first floor is accessible, and not Volvagia. - - Zoras Fountain Bottom Freestanding PoH. + - Zora's Fountain Bottom Freestanding PoH. Might not have enough health to resurface. - Gerudo Training Grounds Underwater Silver Rupee Chest. May need to make multiple @@ -1587,7 +1596,7 @@ def parse_custom_navi_color(s): Setting_Info('ocarina_songs', bool, 1, True, { 'help': '''\ - Randomizes the notes need to play for each ocarina song. + Randomizes the notes needed to play each ocarina song. ''', 'action': 'store_true' }, @@ -1619,7 +1628,7 @@ def parse_custom_navi_color(s): 'default': 'unchecked', 'tooltip':'''\ Chests will be large if they contain a major - item, and small if they don't. Allows skipping + item and small if they don't. This allows skipping chests if they are small. However, skipping small chests will mean having low health, ammo, and rupees, so doing so is a risk. @@ -1651,9 +1660,9 @@ def parse_custom_navi_color(s): 'help': '''\ Choose how Gossip Stones behave none: Default behavior - mask: Have useful hints that are read with the Mask of Truth - agony: Have useful hints that are read with Stone of Agony - always: Have useful hints which can always be read + mask: Have useful hints that are read with the Mask of Truth. + agony: Have useful hints that are read with Stone of Agony. + always: Have useful hints which can always be read. ''' }, { @@ -1691,8 +1700,8 @@ def parse_custom_navi_color(s): 'help': '''\ Choose how to shuffle the game's messages. none: Default behavior - except_hints: All text except Gossip Stone hints and dungeon reward hints is shuffled. - complete: All text is shuffled + except_hints: All non-useful text is shuffled. + complete: All text is shuffled. ''' }, { @@ -1709,11 +1718,11 @@ def parse_custom_navi_color(s): Will make things confusing for comedic value. 'Shuffled except Hints and Keys': Key texts - not shuffled because in keysanity it is - impossible to tell what dungeon it is for + are not shuffled because in keysanity it is + inconvenient to figure out which keys are which without the correct text. Similarly, non-shop - items sold in shops will also not be shuffled - so that the price of the item can be known. + items sold in shops will also retain standard + text for the purpose of accurate price checks. ''' }), Setting_Info('difficulty', str, 2, True, @@ -1746,8 +1755,8 @@ def parse_custom_navi_color(s): 'Hard': Heart Containers, Double Magic, and Double Defense are removed. - 'Very Hard': Heart Containers, Heart, - Pieces, Double Magic, Double Defense, + 'Very Hard': Heart Containers, Pieces of + Heart, Double Magic, Double Defense, and Nayru's Love are removed. 'OHKO': Link dies in one hit. @@ -1903,7 +1912,7 @@ def parse_custom_navi_color(s): 'tooltip':'''\ 'Random Choice': Choose a random color from this list of colors. - 'Comepletely Random': Choose a random + 'Completely Random': Choose a random color from any color the N64 can draw. ''' }), @@ -1929,7 +1938,7 @@ def parse_custom_navi_color(s): 'tooltip':'''\ 'Random Choice': Choose a random color from this list of colors. - 'Comepletely Random': Choose a random + 'Completely Random': Choose a random color from any color the N64 can draw. ''' }), @@ -1955,7 +1964,7 @@ def parse_custom_navi_color(s): 'tooltip':'''\ 'Random Choice': Choose a random color from this list of colors. - 'Comepletely Random': Choose a random + 'Completely Random': Choose a random color from any color the N64 can draw. ''' }), @@ -1981,7 +1990,7 @@ def parse_custom_navi_color(s): 'tooltip':'''\ 'Random Choice': Choose a random color from this list of colors. - 'Comepletely Random': Choose a random + 'Completely Random': Choose a random color from any color the N64 can draw. ''' }), From 3a221e6c895c93e5008534f124409144d9cd0577 Mon Sep 17 00:00:00 2001 From: Nick Langille Date: Thu, 11 Oct 2018 21:24:22 -0400 Subject: [PATCH 676/755] Write numeric seed to ROM --- Patches.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Patches.py b/Patches.py index f88b9941b..d246d37a3 100644 --- a/Patches.py +++ b/Patches.py @@ -811,6 +811,8 @@ def patch_rom(world, rom): configure_dungeon_info(rom, world) + rom.write_int32(rom.sym('cfg_file_select_hash'), world.settings.numeric_seed) + # will be populated with data to be written to initial save # see initial_save.asm and config.asm for more details on specifics # or just use the following functions to add an entry to the table From 91c94d24417ab5d56684c86352ecf292a90e759e Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 12 Oct 2018 00:31:17 -0400 Subject: [PATCH 677/755] Update paths to be compatible with freeze --- .gitignore | 4 ++++ Gui.py | 2 +- Rom.py | 3 +-- Utils.py | 8 ++++---- version.py | 2 +- 5 files changed, 11 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index 27ce2a541..91ea2db35 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,7 @@ ARCHIVE.bin output/* *.z64 *.z64.bak +*.pyo +*.spec +dist/ +build/ diff --git a/Gui.py b/Gui.py index 1a6a46bb1..4582f2c47 100755 --- a/Gui.py +++ b/Gui.py @@ -466,7 +466,7 @@ def generateRom(): else: # try to load saved settings try: - settingsFile = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'settings.sav') + settingsFile = local_path('settings.sav') with open(settingsFile) as f: settings = Settings( json.load(f) ) settings.update_seed("") diff --git a/Rom.py b/Rom.py index 4baa24667..be353fc69 100644 --- a/Rom.py +++ b/Rom.py @@ -19,8 +19,7 @@ def __init__(self, settings, patch=True): file = settings.rom decomp_file = 'ZOOTDEC.z64' - os.chdir(os.path.dirname(os.path.realpath(__file__))) - #os.chdir(output_path(os.path.dirname(os.path.realpath(__file__)))) + os.chdir(local_path()) with open(local_path('data/symbols.json'), 'r') as stream: symbols = json.load(stream) diff --git a/Utils.py b/Utils.py index 1371a5347..9c5543937 100644 --- a/Utils.py +++ b/Utils.py @@ -12,16 +12,16 @@ def is_bundled(): return getattr(sys, 'frozen', False) -def local_path(path): +def local_path(path=''): if local_path.cached_path is not None: return os.path.join(local_path.cached_path, path) if is_bundled(): # we are running in a bundle - local_path.cached_path = sys._MEIPASS # pylint: disable=protected-access,no-member + local_path.cached_path = os.path.dirname(os.path.realpath(sys.executable)) else: # we are running in a normal Python environment - local_path.cached_path = os.path.dirname(os.path.abspath(__file__)) + local_path.cached_path = os.path.dirname(os.path.realpath(__file__)) return os.path.join(local_path.cached_path, path) @@ -29,7 +29,7 @@ def local_path(path): def default_output_path(path): if path == '': - path = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'Output') + path = local_path('Output') if not os.path.exists(path): os.mkdir(path) diff --git a/version.py b/version.py index 40872cc11..da67d959f 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.21.3 f.LUM' +__version__ = '2.21.4 f.LUM' From a74488d99d3a22d23052eb5263c49a7604bf0df8 Mon Sep 17 00:00:00 2001 From: Nick Langille Date: Fri, 12 Oct 2018 00:31:24 -0400 Subject: [PATCH 678/755] Change bomb to bombchu in hash --- ASM/build/bundle.o | Bin 11068 -> 11068 bytes ASM/c/file_select.c | 2 +- data/rom_patch.txt | 8 ++++---- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/ASM/build/bundle.o b/ASM/build/bundle.o index 4950f23dc3e0c02c1f55e9e0ddfe0d73c86942a3..55cef123ced6ede707ac9599d7291bfc7eadfdcc 100644 GIT binary patch delta 20 bcmdlJwkK?Zs2Dpl0~-T71LtNLF$GZoJ2C`1 delta 20 bcmdlJwkK?Zs2DpF12Y2~1N&wfF$GZoI`jlH diff --git a/ASM/c/file_select.c b/ASM/c/file_select.c index 25c61ab40..450319678 100644 --- a/ASM/c/file_select.c +++ b/ASM/c/file_select.c @@ -18,10 +18,10 @@ typedef struct { hash_symbol_t hash_symbols[32] = { { 0, 0 }, // Deku Stick { 0, 1 }, // Deku Nut - { 0, 2 }, // Bomb { 0, 3 }, // Bow { 0, 6 }, // Slingshot { 0, 7 }, // Fairy Ocarina + { 0, 9 }, // Bombchu { 0, 11 }, // Longshot { 0, 14 }, // Boomerang { 0, 15 }, // Lens of Truth diff --git a/data/rom_patch.txt b/data/rom_patch.txt index 49563e336..4a138e734 100644 --- a/data/rom_patch.txt +++ b/data/rom_patch.txt @@ -10010,10 +10010,10 @@ ec9ce7,7a 34b45a4,61 34b45a5,6c 34b45ab,1 -34b45ad,2 -34b45af,3 -34b45b1,6 -34b45b3,7 +34b45ad,3 +34b45af,6 +34b45b1,7 +34b45b3,9 34b45b5,b 34b45b7,e 34b45b9,f From 9a02bcd041aaf2ab955b22765a7aadceb7dbcfad Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 12 Oct 2018 00:34:51 -0400 Subject: [PATCH 679/755] Fix spoiler not using the keys_placed state (Issue #217) --- BaseClasses.py | 1 + version.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/BaseClasses.py b/BaseClasses.py index f22d91e7b..05349ce31 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -69,6 +69,7 @@ def copy(self): ret.big_poe_count = copy.copy(self.big_poe_count) ret.can_take_damage = self.can_take_damage ret.shop_prices = copy.copy(self.shop_prices) + ret.keys_placed = self.keys_placed ret.id = self.id from Regions import create_regions from Dungeons import create_dungeons diff --git a/version.py b/version.py index da67d959f..f9152dab5 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.21.4 f.LUM' +__version__ = '2.21.5 f.LUM' From a9b1c41aa3ba7879234be7202ff147c8ef7b221a Mon Sep 17 00:00:00 2001 From: Nick Langille Date: Fri, 12 Oct 2018 00:34:53 -0400 Subject: [PATCH 680/755] Remove background code --- ASM/c/file_select.c | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/ASM/c/file_select.c b/ASM/c/file_select.c index 450319678..332c979a1 100644 --- a/ASM/c/file_select.c +++ b/ASM/c/file_select.c @@ -65,18 +65,6 @@ void draw_file_select_hash(uint32_t fade_out_alpha) { int left = (Z64_SCREEN_WIDTH - width) / 2; int top = 12; - // Draw background - /* - gDPSetCombineMode(db->p++, G_CC_PRIMITIVE, G_CC_PRIMITIVE); - gDPSetPrimColor(db->p++, 0, 0, 0x00, 0x00, 0x00, 0xD0); - gSPTextureRectangle(db->p++, - bg_left<<2, bg_top<<2, - (bg_left + bg_width)<<2, (bg_top + bg_height)<<2, - 0, - 0, 0, - 1<<10, 1<<10); - */ - gDPPipeSync(db->p++); gDPSetCombineMode(db->p++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM); gDPSetPrimColor(db->p++, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF); From 369d7a8e4234eaa3cab55d55f4a49393cd0ad53f Mon Sep 17 00:00:00 2001 From: mzxrules Date: Fri, 12 Oct 2018 00:39:15 -0400 Subject: [PATCH 681/755] Time Travel when not pulling MS now correctly preserves Child Link equips --- ASM/build/asm_symbols.txt | 2157 ++-- ASM/src/hacks.asm | 14 +- ASM/src/time_travel.asm | 21 +- data/rom_patch.txt | 24875 ++++++++++++++++++------------------ data/symbols.json | 70 +- 5 files changed, 13592 insertions(+), 13545 deletions(-) diff --git a/ASM/build/asm_symbols.txt b/ASM/build/asm_symbols.txt index 2c6b3495b..63fc559d6 100644 --- a/ASM/build/asm_symbols.txt +++ b/ASM/build/asm_symbols.txt @@ -1,1079 +1,1080 @@ -00000000 0 -00000000 .byt:4000000 -00000010 .dbl:0008 -00000010 ITEM_TABLE_ROW_SIZE -000005B4 Shop_Item_Save_Offset -0000D260 .dbl:0010 -0000D270 .dbl:0010 -008A9C00 .byt:0400 -00B529A0 skip_GS_BGS_text -00D74990 skip_steal_tunic -00D7E178 @@not_in_ranch -00D7E18C @@return -00D7E18C return_from_the_other_function -00D7E3AC @@hyrule_check -00D7E3CC @@lon_lon_check -00D7E3F4 @@return_false -00D7E7A4 @@set_ev0 -00D7E7B8 set_ev1 -00D7E8A8 @@unsafe -00D7E8C0 @@safe -00D7E8D4 @@not_hyrule -00D7E920 ev0_return -00DB13D3 .byt:0001 -00DF264F .byt:0001 -00E2F093 .byt:0001 -00EBB8B0 @Deku_Check_True -00EBB8C0 @Deku_Check_False -00EC68D0 .byt:0014 -00EC69C0 .byt:0014 -00EC9CE7 .byt:0001 -8011A5D0 SAVE_CONTEXT -801C84A0 GLOBAL_CONTEXT -801DAA30 PLAYER_ACTOR -803A9E7E GET_ITEMTABLE -80400000 init -80400050 DebugOutput -80401000 .byt:0800 -80401000 ITEM_OVERRIDES -80401800 .byt:0400 -80401800 INITIAL_SAVE_DATA -80401C00 .byt:0001 -80401C00 PLAYER_ID -80401C01 .byt:0001 -80401C01 COOP_GET_ITEM -80401C02 .byt:0001 -80401C02 PLAYER_NAME_ID -80401C03 .byt:0100 -80401C03 PLAYER_NAMES -80401D03 .byt:0001 -80401D03 LIGHT_ARROW_ITEM -80401D04 .byt:0001 -80401D04 FAIRY_OCARINA_ITEM -80401D05 .byt:0001 -80401D05 FAIRY_ITEMS -80401D06 .byt:0001 -80401D07 .byt:0001 -80401D08 .byt:0001 -80401D09 .byt:0001 -80401D0A .byt:0001 -80401D0C .byt:02F4 -80402000 .dbl:0008 -80402000 PLAYER_OVERRIDE_DATA -80402008 .dbl:0010 -80402008 EXTENDED_ITEM_DATA -80402018 .byt:0001 -80402018 PENDING_SPECIAL_ITEM -80402019 .byt:0001 -8040201A .byt:0001 -8040201B .byt:0001 -8040201B PENDING_SPECIAL_ITEM_END -8040201C .dbl:0004 -8040201C TIME_TRAVEL_SAVED_EQUIPS -80402020 .dbl:0004 -80402024 .wrd:0002 -80402026 .wrd:0002 -80402028 .byt:0028 -80402050 .byt:0001 -80402050 ITEM_TABLE -80402051 .byt:0001 -80402052 .byt:0001 -80402053 .byt:0001 -80402054 .wrd:0002 -80402056 .byt:0001 -80402057 .byt:0001 -80402058 .dbl:0004 -8040205C .dbl:0004 -80402060 .byt:0001 -80402061 .byt:0001 -80402062 .byt:0001 -80402063 .byt:0001 -80402064 .wrd:0002 -80402066 .byt:0001 -80402067 .byt:0001 -80402068 .dbl:0004 -8040206C .dbl:0004 -80402070 .byt:0001 -80402071 .byt:0001 -80402072 .byt:0001 -80402073 .byt:0001 -80402074 .wrd:0002 -80402076 .byt:0001 -80402077 .byt:0001 -80402078 .dbl:0004 -8040207C .dbl:0004 -80402080 .byt:0001 -80402081 .byt:0001 -80402082 .byt:0001 -80402083 .byt:0001 -80402084 .wrd:0002 -80402086 .byt:0001 -80402087 .byt:0001 -80402088 .dbl:0004 -8040208C .dbl:0004 -80402090 .byt:0001 -80402091 .byt:0001 -80402092 .byt:0001 -80402093 .byt:0001 -80402094 .wrd:0002 -80402096 .byt:0001 -80402097 .byt:0001 -80402098 .dbl:0004 -8040209C .dbl:0004 -804020A0 .byt:0001 -804020A1 .byt:0001 -804020A2 .byt:0001 -804020A3 .byt:0001 -804020A4 .wrd:0002 -804020A6 .byt:0001 -804020A7 .byt:0001 -804020A8 .dbl:0004 -804020AC .dbl:0004 -804020B0 .byt:0001 -804020B1 .byt:0001 -804020B2 .byt:0001 -804020B3 .byt:0001 -804020B4 .wrd:0002 -804020B6 .byt:0001 -804020B7 .byt:0001 -804020B8 .dbl:0004 -804020BC .dbl:0004 -804020C0 .byt:0001 -804020C1 .byt:0001 -804020C2 .byt:0001 -804020C3 .byt:0001 -804020C4 .wrd:0002 -804020C6 .byt:0001 -804020C7 .byt:0001 -804020C8 .dbl:0004 -804020CC .dbl:0004 -804020D0 .byt:0001 -804020D1 .byt:0001 -804020D2 .byt:0001 -804020D3 .byt:0001 -804020D4 .wrd:0002 -804020D6 .byt:0001 -804020D7 .byt:0001 -804020D8 .dbl:0004 -804020DC .dbl:0004 -804020E0 .byt:0001 -804020E1 .byt:0001 -804020E2 .byt:0001 -804020E3 .byt:0001 -804020E4 .wrd:0002 -804020E6 .byt:0001 -804020E7 .byt:0001 -804020E8 .dbl:0004 -804020EC .dbl:0004 -804020F0 .byt:0001 -804020F1 .byt:0001 -804020F2 .byt:0001 -804020F3 .byt:0001 -804020F4 .wrd:0002 -804020F6 .byt:0001 -804020F7 .byt:0001 -804020F8 .dbl:0004 -804020FC .dbl:0004 -80402100 .byt:0001 -80402101 .byt:0001 -80402102 .byt:0001 -80402103 .byt:0001 -80402104 .wrd:0002 -80402106 .byt:0001 -80402107 .byt:0001 -80402108 .dbl:0004 -8040210C .dbl:0004 -80402110 .byt:0001 -80402111 .byt:0001 -80402112 .byt:0001 -80402113 .byt:0001 -80402114 .wrd:0002 -80402116 .byt:0001 -80402117 .byt:0001 -80402118 .dbl:0004 -8040211C .dbl:0004 -80402120 .byt:0001 -80402121 .byt:0001 -80402122 .byt:0001 -80402123 .byt:0001 -80402124 .wrd:0002 -80402126 .byt:0001 -80402127 .byt:0001 -80402128 .dbl:0004 -8040212C .dbl:0004 -80402130 .byt:0001 -80402131 .byt:0001 -80402132 .byt:0001 -80402133 .byt:0001 -80402134 .wrd:0002 -80402136 .byt:0001 -80402137 .byt:0001 -80402138 .dbl:0004 -8040213C .dbl:0004 -80402140 .byt:0001 -80402141 .byt:0001 -80402142 .byt:0001 -80402143 .byt:0001 -80402144 .wrd:0002 -80402146 .byt:0001 -80402147 .byt:0001 -80402148 .dbl:0004 -8040214C .dbl:0004 -80402150 .byt:0001 -80402151 .byt:0001 -80402152 .byt:0001 -80402153 .byt:0001 -80402154 .wrd:0002 -80402156 .byt:0001 -80402157 .byt:0001 -80402158 .dbl:0004 -8040215C .dbl:0004 -80402160 .byt:0001 -80402161 .byt:0001 -80402162 .byt:0001 -80402163 .byt:0001 -80402164 .wrd:0002 -80402166 .byt:0001 -80402167 .byt:0001 -80402168 .dbl:0004 -8040216C .dbl:0004 -80402170 .byt:0001 -80402171 .byt:0001 -80402172 .byt:0001 -80402173 .byt:0001 -80402174 .wrd:0002 -80402176 .byt:0001 -80402177 .byt:0001 -80402178 .dbl:0004 -8040217C .dbl:0004 -80402180 .byt:0001 -80402181 .byt:0001 -80402182 .byt:0001 -80402183 .byt:0001 -80402184 .wrd:0002 -80402186 .byt:0001 -80402187 .byt:0001 -80402188 .dbl:0004 -8040218C .dbl:0004 -80402190 .byt:0001 -80402191 .byt:0001 -80402192 .byt:0001 -80402193 .byt:0001 -80402194 .wrd:0002 -80402196 .byt:0001 -80402197 .byt:0001 -80402198 .dbl:0004 -8040219C .dbl:0004 -804021A0 .byt:0001 -804021A1 .byt:0001 -804021A2 .byt:0001 -804021A3 .byt:0001 -804021A4 .wrd:0002 -804021A6 .byt:0001 -804021A7 .byt:0001 -804021A8 .dbl:0004 -804021AC .dbl:0004 -804021B0 .byt:0001 -804021B1 .byt:0001 -804021B2 .byt:0001 -804021B3 .byt:0001 -804021B4 .wrd:0002 -804021B6 .byt:0001 -804021B7 .byt:0001 -804021B8 .dbl:0004 -804021BC .dbl:0004 -804021C0 .byt:0001 -804021C1 .byt:0001 -804021C2 .byt:0001 -804021C3 .byt:0001 -804021C4 .wrd:0002 -804021C6 .byt:0001 -804021C7 .byt:0001 -804021C8 .dbl:0004 -804021CC .dbl:0004 -804021D0 .byt:0001 -804021D1 .byt:0001 -804021D2 .byt:0001 -804021D3 .byt:0001 -804021D4 .wrd:0002 -804021D6 .byt:0001 -804021D7 .byt:0001 -804021D8 .dbl:0004 -804021DC .dbl:0004 -804021E0 .byt:0001 -804021E1 .byt:0001 -804021E2 .byt:0001 -804021E3 .byt:0001 -804021E4 .wrd:0002 -804021E6 .byt:0001 -804021E7 .byt:0001 -804021E8 .dbl:0004 -804021EC .dbl:0004 -804021F0 .byt:0001 -804021F1 .byt:0001 -804021F2 .byt:0001 -804021F3 .byt:0001 -804021F4 .wrd:0002 -804021F6 .byt:0001 -804021F7 .byt:0001 -804021F8 .dbl:0004 -804021FC .dbl:0004 -80402200 .byt:0001 -80402201 .byt:0001 -80402202 .byt:0001 -80402203 .byt:0001 -80402204 .wrd:0002 -80402206 .byt:0001 -80402207 .byt:0001 -80402208 .dbl:0004 -8040220C .dbl:0004 -80402210 .byt:0001 -80402211 .byt:0001 -80402212 .byt:0001 -80402213 .byt:0001 -80402214 .wrd:0002 -80402216 .byt:0001 -80402217 .byt:0001 -80402218 .dbl:0004 -8040221C .dbl:0004 -80402220 .byt:0001 -80402221 .byt:0001 -80402222 .byt:0001 -80402223 .byt:0001 -80402224 .wrd:0002 -80402226 .byt:0001 -80402227 .byt:0001 -80402228 .dbl:0004 -8040222C .dbl:0004 -80402230 .byt:0001 -80402231 .byt:0001 -80402232 .byt:0001 -80402233 .byt:0001 -80402234 .wrd:0002 -80402236 .byt:0001 -80402237 .byt:0001 -80402238 .dbl:0004 -8040223C .dbl:0004 -80402240 .byt:0001 -80402241 .byt:0001 -80402242 .byt:0001 -80402243 .byt:0001 -80402244 .wrd:0002 -80402246 .byt:0001 -80402247 .byt:0001 -80402248 .dbl:0004 -8040224C .dbl:0004 -80402250 .byt:0001 -80402251 .byt:0001 -80402252 .byt:0001 -80402253 .byt:0001 -80402254 .wrd:0002 -80402256 .byt:0001 -80402257 .byt:0001 -80402258 .dbl:0004 -8040225C .dbl:0004 -80402260 .byt:0001 -80402261 .byt:0001 -80402262 .byt:0001 -80402263 .byt:0001 -80402264 .wrd:0002 -80402266 .byt:0001 -80402267 .byt:0001 -80402268 .dbl:0004 -8040226C .dbl:0004 -80402270 .byt:0001 -80402271 .byt:0001 -80402272 .byt:0001 -80402273 .byt:0001 -80402274 .wrd:0002 -80402276 .byt:0001 -80402277 .byt:0001 -80402278 .dbl:0004 -8040227C .dbl:0004 -80402280 .byt:0001 -80402281 .byt:0001 -80402282 .byt:0001 -80402283 .byt:0001 -80402284 .wrd:0002 -80402286 .byt:0001 -80402287 .byt:0001 -80402288 .dbl:0004 -8040228C .dbl:0004 -80402290 .byt:0001 -80402291 .byt:0001 -80402292 .byt:0001 -80402293 .byt:0001 -80402294 .wrd:0002 -80402296 .byt:0001 -80402297 .byt:0001 -80402298 .dbl:0004 -8040229C .dbl:0004 -804022A0 .byt:0001 -804022A1 .byt:0001 -804022A2 .byt:0001 -804022A3 .byt:0001 -804022A4 .wrd:0002 -804022A6 .byt:0001 -804022A7 .byt:0001 -804022A8 .dbl:0004 -804022AC .dbl:0004 -804022B0 .byt:0001 -804022B1 .byt:0001 -804022B2 .byt:0001 -804022B3 .byt:0001 -804022B4 .wrd:0002 -804022B6 .byt:0001 -804022B7 .byt:0001 -804022B8 .dbl:0004 -804022BC .dbl:0004 -804022C0 .byt:0001 -804022C1 .byt:0001 -804022C2 .byt:0001 -804022C3 .byt:0001 -804022C4 .wrd:0002 -804022C6 .byt:0001 -804022C7 .byt:0001 -804022C8 .dbl:0004 -804022CC .dbl:0004 -804022D0 .byt:0001 -804022D1 .byt:0001 -804022D2 .byt:0001 -804022D3 .byt:0001 -804022D4 .wrd:0002 -804022D6 .byt:0001 -804022D7 .byt:0001 -804022D8 .dbl:0004 -804022DC .dbl:0004 -804022E0 .byt:0001 -804022E1 .byt:0001 -804022E2 .byt:0001 -804022E3 .byt:0001 -804022E4 .wrd:0002 -804022E6 .byt:0001 -804022E7 .byt:0001 -804022E8 .dbl:0004 -804022EC .dbl:0004 -804022F0 .byt:0001 -804022F1 .byt:0001 -804022F2 .byt:0001 -804022F3 .byt:0001 -804022F4 .wrd:0002 -804022F6 .byt:0001 -804022F7 .byt:0001 -804022F8 .dbl:0004 -804022FC .dbl:0004 -80402300 .byt:0001 -80402301 .byt:0001 -80402302 .byt:0001 -80402303 .byt:0001 -80402304 .wrd:0002 -80402306 .byt:0001 -80402307 .byt:0001 -80402308 .dbl:0004 -8040230C .dbl:0004 -80402310 .byt:0001 -80402311 .byt:0001 -80402312 .byt:0001 -80402313 .byt:0001 -80402314 .wrd:0002 -80402316 .byt:0001 -80402317 .byt:0001 -80402318 .dbl:0004 -8040231C .dbl:0004 -80402320 .byt:0001 -80402321 .byt:0001 -80402322 .byt:0001 -80402323 .byt:0001 -80402324 .wrd:0002 -80402326 .byt:0001 -80402327 .byt:0001 -80402328 .dbl:0004 -8040232C .dbl:0004 -80402330 .byt:0001 -80402331 .byt:0001 -80402332 .byt:0001 -80402333 .byt:0001 -80402334 .wrd:0002 -80402336 .byt:0001 -80402337 .byt:0001 -80402338 .dbl:0004 -8040233C .dbl:0004 -80402340 .byt:0001 -80402341 .byt:0001 -80402342 .byt:0001 -80402343 .byt:0001 -80402344 .wrd:0002 -80402346 .byt:0001 -80402347 .byt:0001 -80402348 .dbl:0004 -8040234C .dbl:0004 -80402350 .byt:0001 -80402351 .byt:0001 -80402352 .byt:0001 -80402353 .byt:0001 -80402354 .wrd:0002 -80402356 .byt:0001 -80402357 .byt:0001 -80402358 .dbl:0004 -8040235C .dbl:0004 -80402360 .byt:0001 -80402361 .byt:0001 -80402362 .byt:0001 -80402363 .byt:0001 -80402364 .wrd:0002 -80402366 .byt:0001 -80402367 .byt:0001 -80402368 .dbl:0004 -8040236C .dbl:0004 -80402370 .byt:0001 -80402371 .byt:0001 -80402372 .byt:0001 -80402373 .byt:0001 -80402374 .wrd:0002 -80402376 .byt:0001 -80402377 .byt:0001 -80402378 .dbl:0004 -8040237C .dbl:0004 -80402380 .byt:0001 -80402381 .byt:0001 -80402382 .byt:0001 -80402383 .byt:0001 -80402384 .wrd:0002 -80402386 .byt:0001 -80402387 .byt:0001 -80402388 .dbl:0004 -8040238C .dbl:0004 -80402390 .byt:0001 -80402391 .byt:0001 -80402392 .byt:0001 -80402393 .byt:0001 -80402394 .wrd:0002 -80402396 .byt:0001 -80402397 .byt:0001 -80402398 .dbl:0004 -8040239C .dbl:0004 -804023A0 .byt:0001 -804023A1 .byt:0001 -804023A2 .byt:0001 -804023A3 .byt:0001 -804023A4 .wrd:0002 -804023A6 .byt:0001 -804023A7 .byt:0001 -804023A8 .dbl:0004 -804023AC .dbl:0004 -804023B0 .byt:0001 -804023B1 .byt:0001 -804023B2 .byt:0001 -804023B3 .byt:0001 -804023B4 .wrd:0002 -804023B6 .byt:0001 -804023B7 .byt:0001 -804023B8 .dbl:0004 -804023BC .dbl:0004 -804023C0 .byt:0001 -804023C1 .byt:0001 -804023C2 .byt:0001 -804023C3 .byt:0001 -804023C4 .wrd:0002 -804023C6 .byt:0001 -804023C7 .byt:0001 -804023C8 .dbl:0004 -804023CC .dbl:0004 -804023D0 .byt:0001 -804023D1 .byt:0001 -804023D2 .byt:0001 -804023D3 .byt:0001 -804023D4 .wrd:0002 -804023D6 .byt:0001 -804023D7 .byt:0001 -804023D8 .dbl:0004 -804023DC .dbl:0004 -804023E0 .byt:0001 -804023E1 .byt:0001 -804023E2 .byt:0001 -804023E3 .byt:0001 -804023E4 .wrd:0002 -804023E6 .byt:0001 -804023E7 .byt:0001 -804023E8 .dbl:0004 -804023EC .dbl:0004 -804023F0 .byt:0001 -804023F1 .byt:0001 -804023F2 .byt:0001 -804023F3 .byt:0001 -804023F4 .wrd:0002 -804023F6 .byt:0001 -804023F7 .byt:0001 -804023F8 .dbl:0004 -804023FC .dbl:0004 -80402400 .byt:0001 -80402401 .byt:0001 -80402402 .byt:0001 -80402403 .byt:0001 -80402404 .wrd:0002 -80402406 .byt:0001 -80402407 .byt:0001 -80402408 .dbl:0004 -8040240C .dbl:0004 -80402410 .byt:0001 -80402411 .byt:0001 -80402412 .byt:0001 -80402413 .byt:0001 -80402414 .wrd:0002 -80402416 .byt:0001 -80402417 .byt:0001 -80402418 .dbl:0004 -8040241C .dbl:0004 -80402420 .byt:0001 -80402421 .byt:0001 -80402422 .byt:0001 -80402423 .byt:0001 -80402424 .wrd:0002 -80402426 .byt:0001 -80402427 .byt:0001 -80402428 .dbl:0004 -8040242C .dbl:0004 -80402430 .byt:0001 -80402431 .byt:0001 -80402432 .byt:0001 -80402433 .byt:0001 -80402434 .wrd:0002 -80402436 .byt:0001 -80402437 .byt:0001 -80402438 .dbl:0004 -8040243C .dbl:0004 -80402440 .byt:0001 -80402441 .byt:0001 -80402442 .byt:0001 -80402443 .byt:0001 -80402444 .wrd:0002 -80402446 .byt:0001 -80402447 .byt:0001 -80402448 .dbl:0004 -8040244C .dbl:0004 -80402450 .byt:0001 -80402451 .byt:0001 -80402452 .byt:0001 -80402453 .byt:0001 -80402454 .wrd:0002 -80402456 .byt:0001 -80402457 .byt:0001 -80402458 .dbl:0004 -8040245C .dbl:0004 -80402460 .byt:0001 -80402461 .byt:0001 -80402462 .byt:0001 -80402463 .byt:0001 -80402464 .wrd:0002 -80402466 .byt:0001 -80402467 .byt:0001 -80402468 .dbl:0004 -8040246C .dbl:0004 -80402470 .byt:0001 -80402471 .byt:0001 -80402472 .byt:0001 -80402473 .byt:0001 -80402474 .wrd:0002 -80402476 .byt:0001 -80402477 .byt:0001 -80402478 .dbl:0004 -8040247C .dbl:0004 -80402480 .byt:0001 -80402481 .byt:0001 -80402482 .byt:0001 -80402483 .byt:0001 -80402484 .wrd:0002 -80402486 .byt:0001 -80402487 .byt:0001 -80402488 .dbl:0004 -8040248C .dbl:0004 -80402490 .byt:0001 -80402491 .byt:0001 -80402492 .byt:0001 -80402493 .byt:0001 -80402494 .wrd:0002 -80402496 .byt:0001 -80402497 .byt:0001 -80402498 .dbl:0004 -8040249C .dbl:0004 -804024A0 .byt:0001 -804024A1 .byt:0001 -804024A2 .byt:0001 -804024A3 .byt:0001 -804024A4 .wrd:0002 -804024A6 .byt:0001 -804024A7 .byt:0001 -804024A8 .dbl:0004 -804024AC .dbl:0004 -804024B0 .byt:0001 -804024B1 .byt:0001 -804024B2 .byt:0001 -804024B3 .byt:0001 -804024B4 .wrd:0002 -804024B6 .byt:0001 -804024B7 .byt:0001 -804024B8 .dbl:0004 -804024BC .dbl:0004 -804024C0 .byt:0001 -804024C1 .byt:0001 -804024C2 .byt:0001 -804024C3 .byt:0001 -804024C4 .wrd:0002 -804024C6 .byt:0001 -804024C7 .byt:0001 -804024C8 .dbl:0004 -804024CC .dbl:0004 -804024D0 .byt:0001 -804024D1 .byt:0001 -804024D2 .byt:0001 -804024D3 .byt:0001 -804024D4 .wrd:0002 -804024D6 .byt:0001 -804024D7 .byt:0001 -804024D8 .dbl:0004 -804024DC .dbl:0004 -804024E0 .byt:0001 -804024E1 .byt:0001 -804024E2 .byt:0001 -804024E3 .byt:0001 -804024E4 .wrd:0002 -804024E6 .byt:0001 -804024E7 .byt:0001 -804024E8 .dbl:0004 -804024EC .dbl:0004 -804024F0 .byt:0001 -804024F1 .byt:0001 -804024F2 .byt:0001 -804024F3 .byt:0001 -804024F4 .wrd:0002 -804024F6 .byt:0001 -804024F7 .byt:0001 -804024F8 .dbl:0004 -804024FC .dbl:0004 -80402500 .byt:0001 -80402501 .byt:0001 -80402502 .byt:0001 -80402503 .byt:0001 -80402504 .wrd:0002 -80402506 .byt:0001 -80402507 .byt:0001 -80402508 .dbl:0004 -8040250C .dbl:0004 -80402510 .byt:0001 -80402511 .byt:0001 -80402512 .byt:0001 -80402513 .byt:0001 -80402514 .wrd:0002 -80402516 .byt:0001 -80402517 .byt:0001 -80402518 .dbl:0004 -8040251C .dbl:0004 -80402520 .byt:0001 -80402521 .byt:0001 -80402522 .byt:0001 -80402523 .byt:0001 -80402524 .wrd:0002 -80402526 .byt:0001 -80402527 .byt:0001 -80402528 .dbl:0004 -8040252C .dbl:0004 -80402530 .byt:0001 -80402531 .byt:0001 -80402532 .byt:0001 -80402533 .byt:0001 -80402534 .wrd:0002 -80402536 .byt:0001 -80402537 .byt:0001 -80402538 .dbl:0004 -8040253C .dbl:0004 -80402540 .byt:0001 -80402541 .byt:0001 -80402542 .byt:0001 -80402543 .byt:0001 -80402544 .wrd:0002 -80402546 .byt:0001 -80402547 .byt:0001 -80402548 .dbl:0004 -8040254C .dbl:0004 -80402550 .byt:0001 -80402551 .byt:0001 -80402552 .byt:0001 -80402553 .byt:0001 -80402554 .wrd:0002 -80402556 .byt:0001 -80402557 .byt:0001 -80402558 .dbl:0004 -8040255C .dbl:0004 -80402560 .byt:0001 -80402561 .byt:0001 -80402562 .byt:0001 -80402563 .byt:0001 -80402564 .wrd:0002 -80402566 .byt:0001 -80402567 .byt:0001 -80402568 .dbl:0004 -8040256C .dbl:0004 -80402570 no_upgrade -80402578 hookshot_upgrade -8040258C @@return -80402594 strength_upgrade -804025B4 @@return -804025BC bomb_bag_upgrade -804025DC @@return -804025E4 bow_upgrade -80402604 @@return -8040260C slingshot_upgrade -8040262C @@return -80402634 wallet_upgrade -80402654 @@return -8040265C tycoon_wallet -80402670 scale_upgrade -80402684 @@return -8040268C nut_upgrade -804026A0 @@return -804026A8 stick_upgrade -804026BC @@return -804026C4 magic_upgrade -804026D4 @@return -804026DC arrows_to_rupee -804026F0 @@return -804026F8 bombs_to_rupee -8040270C @@return -80402714 seeds_to_rupee -80402728 @@return -80402730 no_effect -80402738 give_biggoron_sword -80402748 give_bottle -80402750 @@loop -8040277C @@return -80402784 give_dungeon_item -804027A0 give_small_key -804027B8 @not_negative -804027C8 give_defense -804027E8 give_magic -80402808 double_magic -80402830 bombchu_upgrade -80402854 @@return -8040285C ocarina_upgrade -80402870 @@return -80402878 give_fairy_ocarina -80402888 give_song -804028A4 inventory_check -80402910 @@return -80402918 override_skulltula_token -80402938 @@in_table -8040297C @@extended_effect -804029B0 @@not_extended -804029F8 @@item_effect -80402A04 @@return -80402A18 override_object_npc -80402A28 override_object_chest -80402A38 override_object -80402A50 @@return -80402A94 @@no_count_inc -80402A98 @@no_pending_clear -80402AA0 override_graphic -80402AB8 @@return -80402AD0 override_text -80402AEC @@return -80402AF4 override_action -80402B1C @@no_player_override -80402B78 @@return -80402B80 store_item_data_hook -80402BB4 store_item_data -80402C48 @@update_base_game -80402C78 @@not_chest -80402C88 @@not_negative -80402C8C @@return -80402C9C lookup_override -80402CC4 @@return -80402CD4 get_override_search_key -80402D14 @@not_skulltula -80402D4C @@valid_chest -80402D54 @@not_chest -80402D84 @@valid_collectable -80402D8C @@not_collectable -80402DB4 @@not_grotto_deku_scrub -80402DC4 @@return -80402DCC scan_override_table -80402E10 @@not_coop_item -80402E18 @@lookup_loop -80402E4C @@lookup_item_found -80402E80 @@return -80402E88 resolve_extended_item -80402E9C @@loop -80402EF0 @@not_extended -80402EF4 @@return -80402F0C override_great_fairy_cutscene -80402F64 @@item_fairy -80402F84 @@give_item -80402FB0 @@return -80402FB8 override_light_arrow_cutscene -80402FCC override_fairy_ocarina_cutscene -80402FE0 override_ocarina_songs -80402FF4 override_requiem_song -80403000 override_epona_song -80403020 override_suns_song -80403040 override_song_of_time -80403050 store_pending_special_item -80403060 @@find_duplicate_loop -8040307C @@find_empty_loop -80403094 @@return -8040309C override_saria_song_check -804030B8 @@get_item -804030C0 set_saria_song_flag -804030E0 set_dungeon_knowledge -8040310C @@set_flag -80403124 Shop_Check_Sold_Out -80403170 @@return -80403178 Shop_Set_Sold_Out -804031B0 @@return -804031B8 Shop_Keeper_Init_ID -804031D4 @@return -804031E4 Deku_Check_Sold_Out -80403208 @@continue -80403238 Deku_Set_Sold_Out -8040325C @@continue -80403290 before_game_state_update -804032E0 @@loop -80403338 @@no_pending_item -8040334C after_game_state_update -80403370 item_menu_description_id_periodic -80403384 @@item_menu_description_id_return_00000000 -8040338C item_menu_description_id_immediate_1 -804033A0 @@item_menu_description_id_return_00000001 -804033A8 item_menu_description_id_immediate_2 -804033BC @@item_menu_description_id_return_00000002 -804033C4 item_menu_description_id_immediate_3 -804033D8 @@item_menu_description_id_return_00000003 -804033E0 before_time_travel -80403410 after_time_travel -8040344C @@going_back -80403454 @@done -80403484 update_c_button -804034B0 @@return -804034B8 after_going_forward -804034F4 @@no_init -80403504 after_going_back -80403534 @@not_swordless -8040353C initialize_adult -80403564 @@no_mirror_shield -804035A4 init_adult_button -804035D0 @@empty -804035D8 @@loop -80403630 @@set_empty -8040363C @@return -80403644 .byt:0001 -80403644 ADULT_INIT_ITEMS -80403645 .byt:0001 -80403646 .byt:0001 -80403647 .byt:0001 -80403648 .byt:0001 -80403649 .byt:0001 -8040364A .byt:0001 -8040364B .byt:0001 -8040364C .byt:0001 -80403650 .byt:0001 -80403650 ADULT_VALID_ITEMS -80403651 .byt:0001 -80403652 .byt:0001 -80403653 .byt:0001 -80403654 .byt:0001 -80403655 .byt:0001 -80403656 .byt:0001 -80403657 .byt:0001 -80403658 .byt:0001 -80403659 .byt:0001 -8040365A .byt:0001 -8040365B .byt:0001 -8040365C .byt:0001 -8040365D .byt:0001 -8040365E .byt:0001 -8040365F .byt:0001 -80403660 .byt:0001 -80403661 .byt:0001 -80403662 .byt:0001 -80403663 .byt:0001 -80403664 .byt:0001 -80403665 .byt:0001 -80403666 .byt:0001 -80403667 .byt:0001 -80403668 suns_song_fix_event -8040369C @@child -804036AC @@return -804036B4 suns_song_fix -804036C8 @@check_suns_status -804036E4 @@disable_suns -804036EC @@return -804036F4 warp_song_fix -80403720 @@child -80403730 @@return -80403738 Check_Has_Epona_Song -80403784 @@return -8040378C save_scarecrow_song -804037D0 @@copy_song -804037D8 write_initial_save -804037E4 @@save_data_loop -80403814 @@overwrite_type -8040381C @@return -80403824 get_name_char_1 -80403840 get_name_char_2 -8040385C get_name_char -80403888 @@coop_player_name -804038A0 @@return -804038A8 reset_player_name_id -804038C8 .byt:0788 -80405000 text_init,0000002C -8040502C text_print,000000A8 -804050D4 text_flush,00000148 -8040521C draw_dungeon_info,000009CC -80405BE8 c_init,0000002C -80405C14 c_after_game_state_update,00000088 -80405C9C heap_init,00000014 -80405CB0 heap_alloc,00000034 -80405CE4 file_init,00000044 -80405D28 disp_buf_init,00000018 -80405D40 sprite_bytes_per_tile,00000028 -80405D68 sprite_bytes,00000030 -80405D98 sprite_load,00000254 -80405FEC sprite_draw,000000F0 -804060DC draw_setup,000001DC -804062B8 gfx_init,00000148 -8040640C .byt:000E -8040640C cfg_dungeon_rewards -8040641C .byt:0012 -8040641C medal_colors -80406430 .byt:009C -80406430 dungeons -804064CC .byt:0010 -804064CC font_sprite -804064DC .byt:0010 -804064DC quest_items_sprite -804064EC .byt:0010 -804064EC medals_sprite -804064FC .byt:0010 -804064FC stones_sprite -8040650C .byt:0004 -8040650C cfg_dungeon_info_enable -80406510 .byt:0004 -80406510 dungeon_count -8040651C .byt:0004 -8040651C cfg_dungeon_info_reward_need_altar -80406520 .byt:0004 -80406520 cfg_dungeon_info_reward_need_compass -80406524 .byt:0004 -80406524 cfg_dungeon_info_mq_need_map -80406528 .byt:0004 -80406528 cfg_dungeon_info_mq_enable -8040652C .byt:0004 -8040652C heap_next -80406530 .byt:000E -80406530 cfg_dungeon_is_mq -80406540 .byt:0010 -80406540 setup_db -80406550 .byt:14C8 -80406550 FONT_TEXTURE -80407A18 .byt:85E8 -80480000 DUMMY_ACTOR -80500000 C_HEAP +00000000 0 +00000000 .byt:4000000 +00000010 .dbl:0008 +00000010 ITEM_TABLE_ROW_SIZE +000005B4 Shop_Item_Save_Offset +0000D260 .dbl:0010 +0000D270 .dbl:0010 +008A9C00 .byt:0400 +00B529A0 skip_GS_BGS_text +00D74990 skip_steal_tunic +00D7E178 @@not_in_ranch +00D7E18C @@return +00D7E18C return_from_the_other_function +00D7E3AC @@hyrule_check +00D7E3CC @@lon_lon_check +00D7E3F4 @@return_false +00D7E7A4 @@set_ev0 +00D7E7B8 set_ev1 +00D7E8A8 @@unsafe +00D7E8C0 @@safe +00D7E8D4 @@not_hyrule +00D7E920 ev0_return +00DB13D3 .byt:0001 +00DF264F .byt:0001 +00E2F093 .byt:0001 +00EBB8B0 @Deku_Check_True +00EBB8C0 @Deku_Check_False +00EC68D0 .byt:0014 +00EC69C0 .byt:0014 +00EC9CE7 .byt:0001 +8011A5D0 SAVE_CONTEXT +801C84A0 GLOBAL_CONTEXT +801DAA30 PLAYER_ACTOR +803A9E7E GET_ITEMTABLE +80400000 init +80400050 DebugOutput +80401000 .byt:0800 +80401000 ITEM_OVERRIDES +80401800 .byt:0400 +80401800 INITIAL_SAVE_DATA +80401C00 .byt:0001 +80401C00 PLAYER_ID +80401C01 .byt:0001 +80401C01 COOP_GET_ITEM +80401C02 .byt:0001 +80401C02 PLAYER_NAME_ID +80401C03 .byt:0100 +80401C03 PLAYER_NAMES +80401D03 .byt:0001 +80401D03 LIGHT_ARROW_ITEM +80401D04 .byt:0001 +80401D04 FAIRY_OCARINA_ITEM +80401D05 .byt:0001 +80401D05 FAIRY_ITEMS +80401D06 .byt:0001 +80401D07 .byt:0001 +80401D08 .byt:0001 +80401D09 .byt:0001 +80401D0A .byt:0001 +80401D0C .byt:02F4 +80402000 .dbl:0008 +80402000 PLAYER_OVERRIDE_DATA +80402008 .dbl:0010 +80402008 EXTENDED_ITEM_DATA +80402018 .byt:0001 +80402018 PENDING_SPECIAL_ITEM +80402019 .byt:0001 +8040201A .byt:0001 +8040201B .byt:0001 +8040201B PENDING_SPECIAL_ITEM_END +8040201C .dbl:0004 +8040201C TIME_TRAVEL_SAVED_EQUIPS +80402020 .dbl:0004 +80402024 .wrd:0002 +80402026 .wrd:0002 +80402028 .byt:0028 +80402050 .byt:0001 +80402050 ITEM_TABLE +80402051 .byt:0001 +80402052 .byt:0001 +80402053 .byt:0001 +80402054 .wrd:0002 +80402056 .byt:0001 +80402057 .byt:0001 +80402058 .dbl:0004 +8040205C .dbl:0004 +80402060 .byt:0001 +80402061 .byt:0001 +80402062 .byt:0001 +80402063 .byt:0001 +80402064 .wrd:0002 +80402066 .byt:0001 +80402067 .byt:0001 +80402068 .dbl:0004 +8040206C .dbl:0004 +80402070 .byt:0001 +80402071 .byt:0001 +80402072 .byt:0001 +80402073 .byt:0001 +80402074 .wrd:0002 +80402076 .byt:0001 +80402077 .byt:0001 +80402078 .dbl:0004 +8040207C .dbl:0004 +80402080 .byt:0001 +80402081 .byt:0001 +80402082 .byt:0001 +80402083 .byt:0001 +80402084 .wrd:0002 +80402086 .byt:0001 +80402087 .byt:0001 +80402088 .dbl:0004 +8040208C .dbl:0004 +80402090 .byt:0001 +80402091 .byt:0001 +80402092 .byt:0001 +80402093 .byt:0001 +80402094 .wrd:0002 +80402096 .byt:0001 +80402097 .byt:0001 +80402098 .dbl:0004 +8040209C .dbl:0004 +804020A0 .byt:0001 +804020A1 .byt:0001 +804020A2 .byt:0001 +804020A3 .byt:0001 +804020A4 .wrd:0002 +804020A6 .byt:0001 +804020A7 .byt:0001 +804020A8 .dbl:0004 +804020AC .dbl:0004 +804020B0 .byt:0001 +804020B1 .byt:0001 +804020B2 .byt:0001 +804020B3 .byt:0001 +804020B4 .wrd:0002 +804020B6 .byt:0001 +804020B7 .byt:0001 +804020B8 .dbl:0004 +804020BC .dbl:0004 +804020C0 .byt:0001 +804020C1 .byt:0001 +804020C2 .byt:0001 +804020C3 .byt:0001 +804020C4 .wrd:0002 +804020C6 .byt:0001 +804020C7 .byt:0001 +804020C8 .dbl:0004 +804020CC .dbl:0004 +804020D0 .byt:0001 +804020D1 .byt:0001 +804020D2 .byt:0001 +804020D3 .byt:0001 +804020D4 .wrd:0002 +804020D6 .byt:0001 +804020D7 .byt:0001 +804020D8 .dbl:0004 +804020DC .dbl:0004 +804020E0 .byt:0001 +804020E1 .byt:0001 +804020E2 .byt:0001 +804020E3 .byt:0001 +804020E4 .wrd:0002 +804020E6 .byt:0001 +804020E7 .byt:0001 +804020E8 .dbl:0004 +804020EC .dbl:0004 +804020F0 .byt:0001 +804020F1 .byt:0001 +804020F2 .byt:0001 +804020F3 .byt:0001 +804020F4 .wrd:0002 +804020F6 .byt:0001 +804020F7 .byt:0001 +804020F8 .dbl:0004 +804020FC .dbl:0004 +80402100 .byt:0001 +80402101 .byt:0001 +80402102 .byt:0001 +80402103 .byt:0001 +80402104 .wrd:0002 +80402106 .byt:0001 +80402107 .byt:0001 +80402108 .dbl:0004 +8040210C .dbl:0004 +80402110 .byt:0001 +80402111 .byt:0001 +80402112 .byt:0001 +80402113 .byt:0001 +80402114 .wrd:0002 +80402116 .byt:0001 +80402117 .byt:0001 +80402118 .dbl:0004 +8040211C .dbl:0004 +80402120 .byt:0001 +80402121 .byt:0001 +80402122 .byt:0001 +80402123 .byt:0001 +80402124 .wrd:0002 +80402126 .byt:0001 +80402127 .byt:0001 +80402128 .dbl:0004 +8040212C .dbl:0004 +80402130 .byt:0001 +80402131 .byt:0001 +80402132 .byt:0001 +80402133 .byt:0001 +80402134 .wrd:0002 +80402136 .byt:0001 +80402137 .byt:0001 +80402138 .dbl:0004 +8040213C .dbl:0004 +80402140 .byt:0001 +80402141 .byt:0001 +80402142 .byt:0001 +80402143 .byt:0001 +80402144 .wrd:0002 +80402146 .byt:0001 +80402147 .byt:0001 +80402148 .dbl:0004 +8040214C .dbl:0004 +80402150 .byt:0001 +80402151 .byt:0001 +80402152 .byt:0001 +80402153 .byt:0001 +80402154 .wrd:0002 +80402156 .byt:0001 +80402157 .byt:0001 +80402158 .dbl:0004 +8040215C .dbl:0004 +80402160 .byt:0001 +80402161 .byt:0001 +80402162 .byt:0001 +80402163 .byt:0001 +80402164 .wrd:0002 +80402166 .byt:0001 +80402167 .byt:0001 +80402168 .dbl:0004 +8040216C .dbl:0004 +80402170 .byt:0001 +80402171 .byt:0001 +80402172 .byt:0001 +80402173 .byt:0001 +80402174 .wrd:0002 +80402176 .byt:0001 +80402177 .byt:0001 +80402178 .dbl:0004 +8040217C .dbl:0004 +80402180 .byt:0001 +80402181 .byt:0001 +80402182 .byt:0001 +80402183 .byt:0001 +80402184 .wrd:0002 +80402186 .byt:0001 +80402187 .byt:0001 +80402188 .dbl:0004 +8040218C .dbl:0004 +80402190 .byt:0001 +80402191 .byt:0001 +80402192 .byt:0001 +80402193 .byt:0001 +80402194 .wrd:0002 +80402196 .byt:0001 +80402197 .byt:0001 +80402198 .dbl:0004 +8040219C .dbl:0004 +804021A0 .byt:0001 +804021A1 .byt:0001 +804021A2 .byt:0001 +804021A3 .byt:0001 +804021A4 .wrd:0002 +804021A6 .byt:0001 +804021A7 .byt:0001 +804021A8 .dbl:0004 +804021AC .dbl:0004 +804021B0 .byt:0001 +804021B1 .byt:0001 +804021B2 .byt:0001 +804021B3 .byt:0001 +804021B4 .wrd:0002 +804021B6 .byt:0001 +804021B7 .byt:0001 +804021B8 .dbl:0004 +804021BC .dbl:0004 +804021C0 .byt:0001 +804021C1 .byt:0001 +804021C2 .byt:0001 +804021C3 .byt:0001 +804021C4 .wrd:0002 +804021C6 .byt:0001 +804021C7 .byt:0001 +804021C8 .dbl:0004 +804021CC .dbl:0004 +804021D0 .byt:0001 +804021D1 .byt:0001 +804021D2 .byt:0001 +804021D3 .byt:0001 +804021D4 .wrd:0002 +804021D6 .byt:0001 +804021D7 .byt:0001 +804021D8 .dbl:0004 +804021DC .dbl:0004 +804021E0 .byt:0001 +804021E1 .byt:0001 +804021E2 .byt:0001 +804021E3 .byt:0001 +804021E4 .wrd:0002 +804021E6 .byt:0001 +804021E7 .byt:0001 +804021E8 .dbl:0004 +804021EC .dbl:0004 +804021F0 .byt:0001 +804021F1 .byt:0001 +804021F2 .byt:0001 +804021F3 .byt:0001 +804021F4 .wrd:0002 +804021F6 .byt:0001 +804021F7 .byt:0001 +804021F8 .dbl:0004 +804021FC .dbl:0004 +80402200 .byt:0001 +80402201 .byt:0001 +80402202 .byt:0001 +80402203 .byt:0001 +80402204 .wrd:0002 +80402206 .byt:0001 +80402207 .byt:0001 +80402208 .dbl:0004 +8040220C .dbl:0004 +80402210 .byt:0001 +80402211 .byt:0001 +80402212 .byt:0001 +80402213 .byt:0001 +80402214 .wrd:0002 +80402216 .byt:0001 +80402217 .byt:0001 +80402218 .dbl:0004 +8040221C .dbl:0004 +80402220 .byt:0001 +80402221 .byt:0001 +80402222 .byt:0001 +80402223 .byt:0001 +80402224 .wrd:0002 +80402226 .byt:0001 +80402227 .byt:0001 +80402228 .dbl:0004 +8040222C .dbl:0004 +80402230 .byt:0001 +80402231 .byt:0001 +80402232 .byt:0001 +80402233 .byt:0001 +80402234 .wrd:0002 +80402236 .byt:0001 +80402237 .byt:0001 +80402238 .dbl:0004 +8040223C .dbl:0004 +80402240 .byt:0001 +80402241 .byt:0001 +80402242 .byt:0001 +80402243 .byt:0001 +80402244 .wrd:0002 +80402246 .byt:0001 +80402247 .byt:0001 +80402248 .dbl:0004 +8040224C .dbl:0004 +80402250 .byt:0001 +80402251 .byt:0001 +80402252 .byt:0001 +80402253 .byt:0001 +80402254 .wrd:0002 +80402256 .byt:0001 +80402257 .byt:0001 +80402258 .dbl:0004 +8040225C .dbl:0004 +80402260 .byt:0001 +80402261 .byt:0001 +80402262 .byt:0001 +80402263 .byt:0001 +80402264 .wrd:0002 +80402266 .byt:0001 +80402267 .byt:0001 +80402268 .dbl:0004 +8040226C .dbl:0004 +80402270 .byt:0001 +80402271 .byt:0001 +80402272 .byt:0001 +80402273 .byt:0001 +80402274 .wrd:0002 +80402276 .byt:0001 +80402277 .byt:0001 +80402278 .dbl:0004 +8040227C .dbl:0004 +80402280 .byt:0001 +80402281 .byt:0001 +80402282 .byt:0001 +80402283 .byt:0001 +80402284 .wrd:0002 +80402286 .byt:0001 +80402287 .byt:0001 +80402288 .dbl:0004 +8040228C .dbl:0004 +80402290 .byt:0001 +80402291 .byt:0001 +80402292 .byt:0001 +80402293 .byt:0001 +80402294 .wrd:0002 +80402296 .byt:0001 +80402297 .byt:0001 +80402298 .dbl:0004 +8040229C .dbl:0004 +804022A0 .byt:0001 +804022A1 .byt:0001 +804022A2 .byt:0001 +804022A3 .byt:0001 +804022A4 .wrd:0002 +804022A6 .byt:0001 +804022A7 .byt:0001 +804022A8 .dbl:0004 +804022AC .dbl:0004 +804022B0 .byt:0001 +804022B1 .byt:0001 +804022B2 .byt:0001 +804022B3 .byt:0001 +804022B4 .wrd:0002 +804022B6 .byt:0001 +804022B7 .byt:0001 +804022B8 .dbl:0004 +804022BC .dbl:0004 +804022C0 .byt:0001 +804022C1 .byt:0001 +804022C2 .byt:0001 +804022C3 .byt:0001 +804022C4 .wrd:0002 +804022C6 .byt:0001 +804022C7 .byt:0001 +804022C8 .dbl:0004 +804022CC .dbl:0004 +804022D0 .byt:0001 +804022D1 .byt:0001 +804022D2 .byt:0001 +804022D3 .byt:0001 +804022D4 .wrd:0002 +804022D6 .byt:0001 +804022D7 .byt:0001 +804022D8 .dbl:0004 +804022DC .dbl:0004 +804022E0 .byt:0001 +804022E1 .byt:0001 +804022E2 .byt:0001 +804022E3 .byt:0001 +804022E4 .wrd:0002 +804022E6 .byt:0001 +804022E7 .byt:0001 +804022E8 .dbl:0004 +804022EC .dbl:0004 +804022F0 .byt:0001 +804022F1 .byt:0001 +804022F2 .byt:0001 +804022F3 .byt:0001 +804022F4 .wrd:0002 +804022F6 .byt:0001 +804022F7 .byt:0001 +804022F8 .dbl:0004 +804022FC .dbl:0004 +80402300 .byt:0001 +80402301 .byt:0001 +80402302 .byt:0001 +80402303 .byt:0001 +80402304 .wrd:0002 +80402306 .byt:0001 +80402307 .byt:0001 +80402308 .dbl:0004 +8040230C .dbl:0004 +80402310 .byt:0001 +80402311 .byt:0001 +80402312 .byt:0001 +80402313 .byt:0001 +80402314 .wrd:0002 +80402316 .byt:0001 +80402317 .byt:0001 +80402318 .dbl:0004 +8040231C .dbl:0004 +80402320 .byt:0001 +80402321 .byt:0001 +80402322 .byt:0001 +80402323 .byt:0001 +80402324 .wrd:0002 +80402326 .byt:0001 +80402327 .byt:0001 +80402328 .dbl:0004 +8040232C .dbl:0004 +80402330 .byt:0001 +80402331 .byt:0001 +80402332 .byt:0001 +80402333 .byt:0001 +80402334 .wrd:0002 +80402336 .byt:0001 +80402337 .byt:0001 +80402338 .dbl:0004 +8040233C .dbl:0004 +80402340 .byt:0001 +80402341 .byt:0001 +80402342 .byt:0001 +80402343 .byt:0001 +80402344 .wrd:0002 +80402346 .byt:0001 +80402347 .byt:0001 +80402348 .dbl:0004 +8040234C .dbl:0004 +80402350 .byt:0001 +80402351 .byt:0001 +80402352 .byt:0001 +80402353 .byt:0001 +80402354 .wrd:0002 +80402356 .byt:0001 +80402357 .byt:0001 +80402358 .dbl:0004 +8040235C .dbl:0004 +80402360 .byt:0001 +80402361 .byt:0001 +80402362 .byt:0001 +80402363 .byt:0001 +80402364 .wrd:0002 +80402366 .byt:0001 +80402367 .byt:0001 +80402368 .dbl:0004 +8040236C .dbl:0004 +80402370 .byt:0001 +80402371 .byt:0001 +80402372 .byt:0001 +80402373 .byt:0001 +80402374 .wrd:0002 +80402376 .byt:0001 +80402377 .byt:0001 +80402378 .dbl:0004 +8040237C .dbl:0004 +80402380 .byt:0001 +80402381 .byt:0001 +80402382 .byt:0001 +80402383 .byt:0001 +80402384 .wrd:0002 +80402386 .byt:0001 +80402387 .byt:0001 +80402388 .dbl:0004 +8040238C .dbl:0004 +80402390 .byt:0001 +80402391 .byt:0001 +80402392 .byt:0001 +80402393 .byt:0001 +80402394 .wrd:0002 +80402396 .byt:0001 +80402397 .byt:0001 +80402398 .dbl:0004 +8040239C .dbl:0004 +804023A0 .byt:0001 +804023A1 .byt:0001 +804023A2 .byt:0001 +804023A3 .byt:0001 +804023A4 .wrd:0002 +804023A6 .byt:0001 +804023A7 .byt:0001 +804023A8 .dbl:0004 +804023AC .dbl:0004 +804023B0 .byt:0001 +804023B1 .byt:0001 +804023B2 .byt:0001 +804023B3 .byt:0001 +804023B4 .wrd:0002 +804023B6 .byt:0001 +804023B7 .byt:0001 +804023B8 .dbl:0004 +804023BC .dbl:0004 +804023C0 .byt:0001 +804023C1 .byt:0001 +804023C2 .byt:0001 +804023C3 .byt:0001 +804023C4 .wrd:0002 +804023C6 .byt:0001 +804023C7 .byt:0001 +804023C8 .dbl:0004 +804023CC .dbl:0004 +804023D0 .byt:0001 +804023D1 .byt:0001 +804023D2 .byt:0001 +804023D3 .byt:0001 +804023D4 .wrd:0002 +804023D6 .byt:0001 +804023D7 .byt:0001 +804023D8 .dbl:0004 +804023DC .dbl:0004 +804023E0 .byt:0001 +804023E1 .byt:0001 +804023E2 .byt:0001 +804023E3 .byt:0001 +804023E4 .wrd:0002 +804023E6 .byt:0001 +804023E7 .byt:0001 +804023E8 .dbl:0004 +804023EC .dbl:0004 +804023F0 .byt:0001 +804023F1 .byt:0001 +804023F2 .byt:0001 +804023F3 .byt:0001 +804023F4 .wrd:0002 +804023F6 .byt:0001 +804023F7 .byt:0001 +804023F8 .dbl:0004 +804023FC .dbl:0004 +80402400 .byt:0001 +80402401 .byt:0001 +80402402 .byt:0001 +80402403 .byt:0001 +80402404 .wrd:0002 +80402406 .byt:0001 +80402407 .byt:0001 +80402408 .dbl:0004 +8040240C .dbl:0004 +80402410 .byt:0001 +80402411 .byt:0001 +80402412 .byt:0001 +80402413 .byt:0001 +80402414 .wrd:0002 +80402416 .byt:0001 +80402417 .byt:0001 +80402418 .dbl:0004 +8040241C .dbl:0004 +80402420 .byt:0001 +80402421 .byt:0001 +80402422 .byt:0001 +80402423 .byt:0001 +80402424 .wrd:0002 +80402426 .byt:0001 +80402427 .byt:0001 +80402428 .dbl:0004 +8040242C .dbl:0004 +80402430 .byt:0001 +80402431 .byt:0001 +80402432 .byt:0001 +80402433 .byt:0001 +80402434 .wrd:0002 +80402436 .byt:0001 +80402437 .byt:0001 +80402438 .dbl:0004 +8040243C .dbl:0004 +80402440 .byt:0001 +80402441 .byt:0001 +80402442 .byt:0001 +80402443 .byt:0001 +80402444 .wrd:0002 +80402446 .byt:0001 +80402447 .byt:0001 +80402448 .dbl:0004 +8040244C .dbl:0004 +80402450 .byt:0001 +80402451 .byt:0001 +80402452 .byt:0001 +80402453 .byt:0001 +80402454 .wrd:0002 +80402456 .byt:0001 +80402457 .byt:0001 +80402458 .dbl:0004 +8040245C .dbl:0004 +80402460 .byt:0001 +80402461 .byt:0001 +80402462 .byt:0001 +80402463 .byt:0001 +80402464 .wrd:0002 +80402466 .byt:0001 +80402467 .byt:0001 +80402468 .dbl:0004 +8040246C .dbl:0004 +80402470 .byt:0001 +80402471 .byt:0001 +80402472 .byt:0001 +80402473 .byt:0001 +80402474 .wrd:0002 +80402476 .byt:0001 +80402477 .byt:0001 +80402478 .dbl:0004 +8040247C .dbl:0004 +80402480 .byt:0001 +80402481 .byt:0001 +80402482 .byt:0001 +80402483 .byt:0001 +80402484 .wrd:0002 +80402486 .byt:0001 +80402487 .byt:0001 +80402488 .dbl:0004 +8040248C .dbl:0004 +80402490 .byt:0001 +80402491 .byt:0001 +80402492 .byt:0001 +80402493 .byt:0001 +80402494 .wrd:0002 +80402496 .byt:0001 +80402497 .byt:0001 +80402498 .dbl:0004 +8040249C .dbl:0004 +804024A0 .byt:0001 +804024A1 .byt:0001 +804024A2 .byt:0001 +804024A3 .byt:0001 +804024A4 .wrd:0002 +804024A6 .byt:0001 +804024A7 .byt:0001 +804024A8 .dbl:0004 +804024AC .dbl:0004 +804024B0 .byt:0001 +804024B1 .byt:0001 +804024B2 .byt:0001 +804024B3 .byt:0001 +804024B4 .wrd:0002 +804024B6 .byt:0001 +804024B7 .byt:0001 +804024B8 .dbl:0004 +804024BC .dbl:0004 +804024C0 .byt:0001 +804024C1 .byt:0001 +804024C2 .byt:0001 +804024C3 .byt:0001 +804024C4 .wrd:0002 +804024C6 .byt:0001 +804024C7 .byt:0001 +804024C8 .dbl:0004 +804024CC .dbl:0004 +804024D0 .byt:0001 +804024D1 .byt:0001 +804024D2 .byt:0001 +804024D3 .byt:0001 +804024D4 .wrd:0002 +804024D6 .byt:0001 +804024D7 .byt:0001 +804024D8 .dbl:0004 +804024DC .dbl:0004 +804024E0 .byt:0001 +804024E1 .byt:0001 +804024E2 .byt:0001 +804024E3 .byt:0001 +804024E4 .wrd:0002 +804024E6 .byt:0001 +804024E7 .byt:0001 +804024E8 .dbl:0004 +804024EC .dbl:0004 +804024F0 .byt:0001 +804024F1 .byt:0001 +804024F2 .byt:0001 +804024F3 .byt:0001 +804024F4 .wrd:0002 +804024F6 .byt:0001 +804024F7 .byt:0001 +804024F8 .dbl:0004 +804024FC .dbl:0004 +80402500 .byt:0001 +80402501 .byt:0001 +80402502 .byt:0001 +80402503 .byt:0001 +80402504 .wrd:0002 +80402506 .byt:0001 +80402507 .byt:0001 +80402508 .dbl:0004 +8040250C .dbl:0004 +80402510 .byt:0001 +80402511 .byt:0001 +80402512 .byt:0001 +80402513 .byt:0001 +80402514 .wrd:0002 +80402516 .byt:0001 +80402517 .byt:0001 +80402518 .dbl:0004 +8040251C .dbl:0004 +80402520 .byt:0001 +80402521 .byt:0001 +80402522 .byt:0001 +80402523 .byt:0001 +80402524 .wrd:0002 +80402526 .byt:0001 +80402527 .byt:0001 +80402528 .dbl:0004 +8040252C .dbl:0004 +80402530 .byt:0001 +80402531 .byt:0001 +80402532 .byt:0001 +80402533 .byt:0001 +80402534 .wrd:0002 +80402536 .byt:0001 +80402537 .byt:0001 +80402538 .dbl:0004 +8040253C .dbl:0004 +80402540 .byt:0001 +80402541 .byt:0001 +80402542 .byt:0001 +80402543 .byt:0001 +80402544 .wrd:0002 +80402546 .byt:0001 +80402547 .byt:0001 +80402548 .dbl:0004 +8040254C .dbl:0004 +80402550 .byt:0001 +80402551 .byt:0001 +80402552 .byt:0001 +80402553 .byt:0001 +80402554 .wrd:0002 +80402556 .byt:0001 +80402557 .byt:0001 +80402558 .dbl:0004 +8040255C .dbl:0004 +80402560 .byt:0001 +80402561 .byt:0001 +80402562 .byt:0001 +80402563 .byt:0001 +80402564 .wrd:0002 +80402566 .byt:0001 +80402567 .byt:0001 +80402568 .dbl:0004 +8040256C .dbl:0004 +80402570 no_upgrade +80402578 hookshot_upgrade +8040258C @@return +80402594 strength_upgrade +804025B4 @@return +804025BC bomb_bag_upgrade +804025DC @@return +804025E4 bow_upgrade +80402604 @@return +8040260C slingshot_upgrade +8040262C @@return +80402634 wallet_upgrade +80402654 @@return +8040265C tycoon_wallet +80402670 scale_upgrade +80402684 @@return +8040268C nut_upgrade +804026A0 @@return +804026A8 stick_upgrade +804026BC @@return +804026C4 magic_upgrade +804026D4 @@return +804026DC arrows_to_rupee +804026F0 @@return +804026F8 bombs_to_rupee +8040270C @@return +80402714 seeds_to_rupee +80402728 @@return +80402730 no_effect +80402738 give_biggoron_sword +80402748 give_bottle +80402750 @@loop +8040277C @@return +80402784 give_dungeon_item +804027A0 give_small_key +804027B8 @not_negative +804027C8 give_defense +804027E8 give_magic +80402808 double_magic +80402830 bombchu_upgrade +80402854 @@return +8040285C ocarina_upgrade +80402870 @@return +80402878 give_fairy_ocarina +80402888 give_song +804028A4 inventory_check +80402910 @@return +80402918 override_skulltula_token +80402938 @@in_table +8040297C @@extended_effect +804029B0 @@not_extended +804029F8 @@item_effect +80402A04 @@return +80402A18 override_object_npc +80402A28 override_object_chest +80402A38 override_object +80402A50 @@return +80402A94 @@no_count_inc +80402A98 @@no_pending_clear +80402AA0 override_graphic +80402AB8 @@return +80402AD0 override_text +80402AEC @@return +80402AF4 override_action +80402B1C @@no_player_override +80402B78 @@return +80402B80 store_item_data_hook +80402BB4 store_item_data +80402C48 @@update_base_game +80402C78 @@not_chest +80402C88 @@not_negative +80402C8C @@return +80402C9C lookup_override +80402CC4 @@return +80402CD4 get_override_search_key +80402D14 @@not_skulltula +80402D4C @@valid_chest +80402D54 @@not_chest +80402D84 @@valid_collectable +80402D8C @@not_collectable +80402DB4 @@not_grotto_deku_scrub +80402DC4 @@return +80402DCC scan_override_table +80402E10 @@not_coop_item +80402E18 @@lookup_loop +80402E4C @@lookup_item_found +80402E80 @@return +80402E88 resolve_extended_item +80402E9C @@loop +80402EF0 @@not_extended +80402EF4 @@return +80402F0C override_great_fairy_cutscene +80402F64 @@item_fairy +80402F84 @@give_item +80402FB0 @@return +80402FB8 override_light_arrow_cutscene +80402FCC override_fairy_ocarina_cutscene +80402FE0 override_ocarina_songs +80402FF4 override_requiem_song +80403000 override_epona_song +80403020 override_suns_song +80403040 override_song_of_time +80403050 store_pending_special_item +80403060 @@find_duplicate_loop +8040307C @@find_empty_loop +80403094 @@return +8040309C override_saria_song_check +804030B8 @@get_item +804030C0 set_saria_song_flag +804030E0 set_dungeon_knowledge +8040310C @@set_flag +80403124 Shop_Check_Sold_Out +80403170 @@return +80403178 Shop_Set_Sold_Out +804031B0 @@return +804031B8 Shop_Keeper_Init_ID +804031D4 @@return +804031E4 Deku_Check_Sold_Out +80403208 @@continue +80403238 Deku_Set_Sold_Out +8040325C @@continue +80403290 before_game_state_update +804032E0 @@loop +80403338 @@no_pending_item +8040334C after_game_state_update +80403370 item_menu_description_id_periodic +80403384 @@item_menu_description_id_return_00000000 +8040338C item_menu_description_id_immediate_1 +804033A0 @@item_menu_description_id_return_00000001 +804033A8 item_menu_description_id_immediate_2 +804033BC @@item_menu_description_id_return_00000002 +804033C4 item_menu_description_id_immediate_3 +804033D8 @@item_menu_description_id_return_00000003 +804033E0 give_master_sword +804033F8 before_time_travel +80403430 after_time_travel +8040346C @@going_back +80403474 @@done +804034A4 update_c_button +804034D0 @@return +804034D8 after_going_forward +80403514 @@no_init +80403524 after_going_back +80403554 @@not_swordless +8040355C initialize_adult +80403584 @@no_mirror_shield +804035C4 init_adult_button +804035F0 @@empty +804035F8 @@loop +80403650 @@set_empty +8040365C @@return +80403664 .byt:0001 +80403664 ADULT_INIT_ITEMS +80403665 .byt:0001 +80403666 .byt:0001 +80403667 .byt:0001 +80403668 .byt:0001 +80403669 .byt:0001 +8040366A .byt:0001 +8040366B .byt:0001 +8040366C .byt:0001 +80403670 .byt:0001 +80403670 ADULT_VALID_ITEMS +80403671 .byt:0001 +80403672 .byt:0001 +80403673 .byt:0001 +80403674 .byt:0001 +80403675 .byt:0001 +80403676 .byt:0001 +80403677 .byt:0001 +80403678 .byt:0001 +80403679 .byt:0001 +8040367A .byt:0001 +8040367B .byt:0001 +8040367C .byt:0001 +8040367D .byt:0001 +8040367E .byt:0001 +8040367F .byt:0001 +80403680 .byt:0001 +80403681 .byt:0001 +80403682 .byt:0001 +80403683 .byt:0001 +80403684 .byt:0001 +80403685 .byt:0001 +80403686 .byt:0001 +80403687 .byt:0001 +80403688 suns_song_fix_event +804036BC @@child +804036CC @@return +804036D4 suns_song_fix +804036E8 @@check_suns_status +80403704 @@disable_suns +8040370C @@return +80403714 warp_song_fix +80403740 @@child +80403750 @@return +80403758 Check_Has_Epona_Song +804037A4 @@return +804037AC save_scarecrow_song +804037F0 @@copy_song +804037F8 write_initial_save +80403804 @@save_data_loop +80403834 @@overwrite_type +8040383C @@return +80403844 get_name_char_1 +80403860 get_name_char_2 +8040387C get_name_char +804038A8 @@coop_player_name +804038C0 @@return +804038C8 reset_player_name_id +804038E8 .byt:0768 +80405000 text_init,0000002C +8040502C text_print,000000A8 +804050D4 text_flush,00000148 +8040521C draw_dungeon_info,000009CC +80405BE8 c_init,0000002C +80405C14 c_after_game_state_update,00000088 +80405C9C heap_init,00000014 +80405CB0 heap_alloc,00000034 +80405CE4 file_init,00000044 +80405D28 disp_buf_init,00000018 +80405D40 sprite_bytes_per_tile,00000028 +80405D68 sprite_bytes,00000030 +80405D98 sprite_load,00000254 +80405FEC sprite_draw,000000F0 +804060DC draw_setup,000001DC +804062B8 gfx_init,00000148 +8040640C .byt:000E +8040640C cfg_dungeon_rewards +8040641C .byt:0012 +8040641C medal_colors +80406430 .byt:009C +80406430 dungeons +804064CC .byt:0010 +804064CC font_sprite +804064DC .byt:0010 +804064DC quest_items_sprite +804064EC .byt:0010 +804064EC medals_sprite +804064FC .byt:0010 +804064FC stones_sprite +8040650C .byt:0004 +8040650C cfg_dungeon_info_enable +80406510 .byt:0004 +80406510 dungeon_count +8040651C .byt:0004 +8040651C cfg_dungeon_info_reward_need_altar +80406520 .byt:0004 +80406520 cfg_dungeon_info_reward_need_compass +80406524 .byt:0004 +80406524 cfg_dungeon_info_mq_need_map +80406528 .byt:0004 +80406528 cfg_dungeon_info_mq_enable +8040652C .byt:0004 +8040652C heap_next +80406530 .byt:000E +80406530 cfg_dungeon_is_mq +80406540 .byt:0010 +80406540 setup_db +80406550 .byt:14C8 +80406550 FONT_TEXTURE +80407A18 .byt:85E8 +80480000 DUMMY_ACTOR +80500000 C_HEAP  \ No newline at end of file diff --git a/ASM/src/hacks.asm b/ASM/src/hacks.asm index 0036db0ea..647c75820 100755 --- a/ASM/src/hacks.asm +++ b/ASM/src/hacks.asm @@ -8,11 +8,17 @@ ; Time Travel ;================================================================================================== -; Before time travel + +; Replaces: +; jal 8006FDCC ; Give Item +.org 0xCB6874 ; Bg_Toki_Swd addr 809190F4 in func_8091902C + jal give_master_sword + ; Replaces: -; lw t6, 0x04 (s0) -.org 0xCB6860 ; Bg_Toki_Swd in func_8091902C - jal before_time_travel +; lui/addiu a1, 0x8011A5D0 +.org 0xAE5764 + j before_time_travel + nop ; After time travel ; Replaces: diff --git a/ASM/src/time_travel.asm b/ASM/src/time_travel.asm index 425e65176..2fc9d86ef 100644 --- a/ASM/src/time_travel.asm +++ b/ASM/src/time_travel.asm @@ -1,22 +1,29 @@ +give_master_sword: ; Puts MS in Equipment Only + li t0, SAVE_CONTEXT + lh t1, 0x9C(t0) ; Equipment + ori t2, t1, 2 ; Master Sword flag + jr ra + sh t2, 0x9C(t0) + before_time_travel: - ; s0 = save context + li a1, SAVE_CONTEXT ; required by overwritten code li t0, TIME_TRAVEL_SAVED_EQUIPS ; B and C buttons - lw t1, 0x68 (s0) + lw t1, 0x68 (a1) sw t1, 0x00 (t0) ; C button indexes - lw t1, 0x6C (s0) + lw t1, 0x6C (a1) sw t1, 0x04 (t0) ; Equipment - lhu t1, 0x70 (s0) + lhu t1, 0x70 (a1) sh t1, 0x08 (t0) ; Owned equipment - lhu t1, 0x9C (s0) + lhu t1, 0x9C (a1) sh t1, 0x0A (t0) - jr ra - lw t6, 0x04 (s0) ; Displaced code + j 0x06F80C ; Swap Link Ages + nop ;================================================================================================== diff --git a/data/rom_patch.txt b/data/rom_patch.txt index 450e3bc85..c9936c9e2 100644 --- a/data/rom_patch.txt +++ b/data/rom_patch.txt @@ -1,12421 +1,12454 @@ -11,45 -12,ae -13,5b -14,97 -15,db -16,41 -17,31 -d261,48 -d262,0 -d265,48 -d266,50 -d267,0 -d269,48 -d26a,0 -d271,4b -d272,30 -d275,4b -d276,e0 -d277,0 -d279,4b -d27a,30 -8a9c51,0 -8a9c52,0 -8a9c53,0 -8a9c55,0 -8a9c56,0 -8a9c57,0 -8a9c58,0 -8a9c59,0 -8a9c5a,0 -8a9c5c,0 -8a9c5d,0 -8a9c5e,0 -8a9c5f,0 -8a9c64,0 -8a9c65,0 -8a9c66,0 -8a9c67,0 -8a9c68,0 -8a9c69,0 -8a9c6a,0 -8a9c6b,0 -8a9c6c,0 -8a9c6d,0 -8a9c6e,0 -8a9c6f,0 -8a9c90,0 -8a9c91,0 -8a9c92,0 -8a9c93,0 -8a9c94,0 -8a9c95,0 -8a9c96,0 -8a9c97,0 -8a9c98,0 -8a9c99,0 -8a9c9a,0 -8a9c9c,0 -8a9c9d,0 -8a9c9e,0 -8a9c9f,0 -8a9ca0,0 -8a9ca3,0 -8a9ca4,0 -8a9ca5,0 -8a9ca6,0 -8a9ca7,0 -8a9ca8,0 -8a9ca9,0 -8a9caa,0 -8a9cab,0 -8a9cac,0 -8a9cad,0 -8a9cae,0 -8a9caf,0 -8a9cb0,0 -8a9cd0,0 -8a9cd1,0 -8a9cd2,0 -8a9cd3,0 -8a9cd4,0 -8a9cd5,0 -8a9cd6,0 -8a9cd7,0 -8a9cd8,0 -8a9cd9,0 -8a9cda,0 -8a9cdc,0 -8a9cdd,0 -8a9cde,0 -8a9cdf,0 -8a9ce0,0 -8a9ce3,0 -8a9ce4,0 -8a9ce5,0 -8a9ce6,0 -8a9ce7,0 -8a9ce8,0 -8a9ce9,0 -8a9cea,0 -8a9ceb,0 -8a9cec,0 -8a9ced,0 -8a9cee,0 -8a9cef,0 -8a9cf0,0 -8a9d10,0 -8a9d11,0 -8a9d12,0 -8a9d13,0 -8a9d14,0 -8a9d15,0 -8a9d16,0 -8a9d17,0 -8a9d18,0 -8a9d19,0 -8a9d1a,0 -8a9d1c,0 -8a9d1d,0 -8a9d1e,0 -8a9d1f,0 -8a9d20,0 -8a9d21,0 -8a9d22,0 -8a9d23,0 -8a9d24,0 -8a9d25,0 -8a9d26,0 -8a9d27,0 -8a9d28,0 -8a9d29,0 -8a9d2a,0 -8a9d2b,0 -8a9d2c,0 -8a9d2d,0 -8a9d2e,0 -8a9d2f,0 -8a9d30,0 -8a9d50,0 -8a9d51,0 -8a9d52,0 -8a9d53,0 -8a9d54,0 -8a9d55,0 -8a9d56,0 -8a9d57,0 -8a9d58,0 -8a9d59,0 -8a9d5a,0 -8a9d5c,0 -8a9d5d,0 -8a9d5e,0 -8a9d5f,0 -8a9d60,0 -8a9d61,0 -8a9d62,0 -8a9d63,0 -8a9d64,0 -8a9d65,0 -8a9d66,0 -8a9d67,0 -8a9d68,0 -8a9d69,0 -8a9d6a,0 -8a9d6b,0 -8a9d6c,0 -8a9d6d,0 -8a9d6e,0 -8a9d6f,0 -8a9d90,0 -8a9d91,0 -8a9d92,0 -8a9d93,0 -8a9d94,0 -8a9d95,0 -8a9d96,0 -8a9d97,0 -8a9d98,0 -8a9d99,0 -8a9d9a,0 -8a9d9c,0 -8a9d9d,0 -8a9d9e,0 -8a9d9f,0 -8a9da0,0 -8a9da1,0 -8a9da2,0 -8a9da3,0 -8a9da4,0 -8a9da6,0 -8a9da7,0 -8a9da8,0 -8a9da9,0 -8a9daa,0 -8a9dab,0 -8a9dac,0 -8a9dad,0 -8a9dae,0 -8a9dd0,0 -8a9dd1,0 -8a9dd2,0 -8a9dd3,0 -8a9dd4,0 -8a9dd5,0 -8a9dd6,0 -8a9dd7,0 -8a9dd8,0 -8a9dd9,0 -8a9dda,0 -8a9ddc,0 -8a9ddd,0 -8a9dde,0 -8a9ddf,0 -8a9de0,0 -8a9de1,0 -8a9de2,0 -8a9de3,0 -8a9de4,0 -8a9de6,0 -8a9de7,0 -8a9de8,0 -8a9de9,0 -8a9dea,0 -8a9deb,0 -8a9dec,0 -8a9ded,0 -8a9dee,0 -8a9e10,0 -8a9e11,0 -8a9e12,0 -8a9e13,0 -8a9e14,0 -8a9e15,0 -8a9e16,0 -8a9e17,0 -8a9e18,0 -8a9e19,0 -8a9e1a,0 -8a9e1c,0 -8a9e1d,0 -8a9e1e,0 -8a9e1f,0 -8a9e20,0 -8a9e21,0 -8a9e22,0 -8a9e23,0 -8a9e24,0 -8a9e26,0 -8a9e27,0 -8a9e28,0 -8a9e29,0 -8a9e2a,0 -8a9e2b,0 -8a9e2c,0 -8a9e2d,0 -8a9e2e,0 -8a9e50,0 -8a9e51,0 -8a9e52,0 -8a9e53,0 -8a9e54,0 -8a9e55,0 -8a9e56,0 -8a9e57,0 -8a9e58,0 -8a9e59,0 -8a9e5a,0 -8a9e5b,0 -8a9e5c,0 -8a9e5d,0 -8a9e5e,0 -8a9e5f,0 -8a9e60,0 -8a9e61,0 -8a9e62,0 -8a9e63,0 -8a9e64,0 -8a9e65,0 -8a9e66,0 -8a9e67,0 -8a9e68,0 -8a9e69,0 -8a9e6a,0 -8a9e6b,0 -8a9e6c,0 -8a9e6d,0 -8a9e6e,0 -8a9e90,0 -8a9e91,0 -8a9e92,0 -8a9e93,0 -8a9e94,0 -8a9e95,0 -8a9e96,0 -8a9e97,0 -8a9e98,0 -8a9e99,0 -8a9e9a,0 -8a9e9b,0 -8a9e9c,0 -8a9e9d,0 -8a9e9e,0 -8a9e9f,0 -8a9ea0,0 -8a9ea1,0 -8a9ea2,0 -8a9ea3,0 -8a9ea4,0 -8a9ea5,0 -8a9ea6,0 -8a9ea7,0 -8a9ea8,0 -8a9ea9,0 -8a9eaa,0 -8a9eab,0 -8a9eac,0 -8a9ead,0 -8a9eae,0 -8a9ed0,0 -8a9ed1,0 -8a9ed2,0 -8a9ed3,0 -8a9ed4,0 -8a9ed5,0 -8a9ed6,0 -8a9ed7,0 -8a9ed8,0 -8a9ed9,0 -8a9eda,0 -8a9edb,0 -8a9edc,0 -8a9edd,0 -8a9ede,0 -8a9edf,0 -8a9ee0,0 -8a9ee3,0 -8a9ee4,0 -8a9ee5,0 -8a9ee6,0 -8a9ee7,0 -8a9ee8,0 -8a9ee9,0 -8a9eea,0 -8a9eeb,0 -8a9eec,0 -8a9eed,0 -8a9eee,0 -8a9f10,0 -8a9f11,0 -8a9f12,0 -8a9f13,0 -8a9f14,0 -8a9f15,0 -8a9f16,0 -8a9f17,0 -8a9f18,0 -8a9f19,0 -8a9f1a,0 -8a9f1b,0 -8a9f1c,0 -8a9f1d,0 -8a9f1e,0 -8a9f1f,0 -8a9f20,0 -8a9f23,0 -8a9f24,0 -8a9f25,0 -8a9f26,0 -8a9f27,0 -8a9f28,0 -8a9f29,0 -8a9f2a,0 -8a9f2b,0 -8a9f2c,0 -8a9f2d,0 -8a9f2e,0 -8a9f50,0 -8a9f51,0 -8a9f52,0 -8a9f53,0 -8a9f55,0 -8a9f56,0 -8a9f57,0 -8a9f58,0 -8a9f59,0 -8a9f5a,0 -8a9f5b,0 -8a9f5c,0 -8a9f5d,0 -8a9f5e,0 -8a9f5f,0 -8a9f64,0 -8a9f65,0 -8a9f66,0 -8a9f67,0 -8a9f68,0 -8a9f69,0 -8a9f6a,0 -8a9f6b,0 -8a9f6c,0 -8a9f6d,0 -8a9f6e,0 -a98c30,c -a98c31,10 -a98c32,a -a98c33,e0 -a9e838,8 -a9e839,10 -a9e83a,d -a9e83b,ce -ac9abc,c -ac9abd,10 -ac9abe,b -ac9abf,fd -ac9ac1,0 -ac9ac2,0 -ac9ac3,0 -acce88,c -acce89,10 -acce8a,b -acce8b,ee -acce8c,0 -acce8d,0 -acce8e,0 -acce8f,0 -acce90,0 -acce91,0 -acce94,0 -acce97,0 -acce98,0 -acce99,0 -acce9b,0 -ae59e0,8 -ae59e1,10 -ae59e2,d -ae59e3,4 -ae5df0,c -ae5df1,10 -ae5df2,d -ae5df3,ad -ae5df8,c -ae5df9,10 -ae5dfa,b -ae5dfb,f8 -ae5e04,0 -ae5e05,0 -ae5e07,0 -ae6e48,c -ae6e49,10 -ae6e4a,b -ae6e4b,f3 -ae6e4c,1 -ae6e4d,f -ae6e4e,c0 -ae6e4f,21 -b06400,82 -b06402,e -b06403,de -b0640c,31 -b0640d,f8 -b0640e,0 -b0640f,2 -b06c2c,c -b06c2d,10 -b06c2e,d -b06c2f,f6 -b06c31,28 -b06c33,20 -b16b50,c -b16b51,10 -b16b52,c -b16b53,a4 -b16b54,0 -b16b56,0 -b16b57,0 -b16b60,c -b16b61,10 -b16b62,c -b16b63,d3 -b16b64,0 -b16b65,0 -b16b66,0 -b16b67,0 -b17bb4,af -b17bb5,bf -b17bb6,0 -b17bb7,1c -b17bb8,af -b17bb9,a4 -b17bba,1 -b17bbb,40 -b17bbc,3c -b17bbd,4 -b17bbe,80 -b17bbf,40 -b17bc0,3c -b17bc1,5 -b17bc2,3 -b17bc3,48 -b17bc4,c -b17bc5,0 -b17bc6,3 -b17bc7,7c -b17bc8,34 -b17bc9,6 -b17bca,50 -b17bcb,0 -b17bcc,c -b17bcd,10 -b17bce,0 -b17bd0,0 -b17bd1,0 -b17bd2,0 -b17bd3,0 -b51694,c -b51695,10 -b51696,e -b51697,9 -b516c4,c -b516c5,10 -b516c6,e -b516c7,10 -b52784,c -b52785,10 -b52786,e -b52787,2a -b52788,0 -b52789,0 -b5278b,0 -b5278d,bf -b5278f,3c -b5293c,10 -b5293d,0 -b5293f,18 -b54b38,c -b54b39,10 -b54b3a,d -b54b3b,bd -b54e5c,c -b54e5d,10 -b54e5e,d -b54e5f,9a -b55a65,10 -b55a66,d -b55a67,e3 -baed6c,0 -baed6d,0 -baed6f,0 -bb77b4,0 -bb77b5,0 -bb77b7,0 -bb7890,c -bb7891,10 -bb7892,c -bb7893,e3 -bb7894,0 -bb7895,0 -bb7897,0 -bb7950,c -bb7951,10 -bb7952,c -bb7953,ea -bb7954,0 -bb7955,0 -bb7957,0 -bb7ba0,0 -bb7ba1,0 -bb7ba3,0 -bb7bfc,0 -bb7bfd,0 -bb7bff,0 -bb7c3c,c -bb7c3d,10 -bb7c3e,c -bb7c3f,f1 -bb7c40,0 -bb7c41,0 -bb7c43,0 -bb7c58,c -bb7c59,10 -bb7c5a,c -bb7c5b,dc -bb7c5c,0 -bb7c5d,0 -bb7c5f,0 -bcecbc,8 -bcecbd,10 -bcecbe,a -bcecbf,a8 -bcecc1,0 -bcecc2,0 -bcecc3,0 -bcecc4,0 -bcecc5,0 -bcecc7,0 -bcecc8,0 -bcecc9,0 -bcecca,0 -bceccb,0 -bceccc,0 -bceccd,0 -bcecce,0 -bceccf,0 -bcecd0,0 -bcecd1,0 -bcecd3,0 -bda0a1,10 -bda0a2,a -bda0a3,29 -bda0d8,c -bda0d9,10 -bda0da,a -bda0db,86 -bda0e4,0 -bda0e5,0 -bda0e7,0 -bda264,c -bda265,10 -bda266,a -bda267,8a -bda270,0 -bda271,0 -bda273,0 -be9ac0,c -be9ac1,10 -be9ac2,a -be9ac3,b4 -be9ad8,c -be9ad9,10 -be9ada,a -be9adb,bd -be9ae4,0 -be9ae5,0 -be9bde,83 -be9bdf,83 -c004ec,8 -c004ed,10 -c004ee,c -c004ef,49 -c0067f,64 -c018a0,c -c018a1,10 -c018a2,c -c018a3,5e -c6c7a8,c -c6c7a9,10 -c6c7aa,c -c6c7ab,6e -c6c920,c -c6c921,10 -c6c922,c -c6c923,6e -c892dc,34 -c892dd,e -c892de,0 -c892df,1 -c8931c,34 -c8931d,a -c8931e,0 -c8931f,1 -c89745,10 -c89746,b -c89747,c3 -c89868,92 -c89869,e -c8986a,1d -c8986b,28 -c898a4,92 -c898a5,19 -c898a6,1d -c898a7,29 -c898c8,92 -c898c9,a -c898ca,1d -c898cb,2a -cb6860,c -cb6861,10 -cb6862,c -cb6863,f8 -d12f78,34 -d12f79,f -d12f7b,0 -d74964,10 -d74965,0 -d7e140,34 -d7e141,e -d7e142,0 -d7e143,1 -d7e144,80 -d7e146,e -d7e147,de -d7e160,84 -d7e161,88 -d7e163,a4 -d7e164,34 -d7e165,1 -d7e167,63 -d7e168,14 -d7e169,28 -d7e16b,3 -d7e16c,34 -d7e16d,2 -d7e16e,20 -d7e16f,49 -d7e170,10 -d7e171,0 -d7e172,0 -d7e173,6 -d7e174,0 -d7e177,0 -d7e178,94 -d7e179,69 -d7e17a,e -d7e17b,d6 -d7e17c,31 -d7e17d,29 -d7e17e,0 -d7e17f,4 -d7e180,15 -d7e181,20 -d7e183,2 -d7e184,34 -d7e185,2 -d7e186,20 -d7e187,44 -d7e188,34 -d7e189,2 -d7e18a,20 -d7e18b,43 -d7e18c,8f -d7e18d,bf -d7e18f,14 -d7e190,27 -d7e191,bd -d7e192,0 -d7e193,18 -d7e194,3 -d7e195,e0 -d7e197,8 -d7e198,0 -d7e199,0 -d7e19a,0 -d7e19b,0 -d7e398,94 -d7e399,89 -d7e39a,e -d7e39b,d6 -d7e39c,31 -d7e39d,28 -d7e39f,10 -d7e3a0,31 -d7e3a1,29 -d7e3a3,4 -d7e3a4,1 -d7e3a5,9 -d7e3a6,40 -d7e3a7,25 -d7e3a8,34 -d7e3a9,9 -d7e3ab,14 -d7e3ac,34 -d7e3ad,1 -d7e3ae,0 -d7e3af,5f -d7e3b0,14 -d7e3b1,23 -d7e3b3,6 -d7e3b4,0 -d7e3b5,0 -d7e3b7,0 -d7e3b8,11 -d7e3b9,9 -d7e3bb,4 -d7e3bc,0 -d7e3bd,0 -d7e3be,0 -d7e3bf,0 -d7e3c0,34 -d7e3c1,2 -d7e3c2,0 -d7e3c3,1 -d7e3c4,3 -d7e3c5,e0 -d7e3c7,8 -d7e3c8,0 -d7e3c9,0 -d7e3cb,0 -d7e3cc,14 -d7e3cd,c2 -d7e3cf,9 -d7e3d0,34 -d7e3d1,1 -d7e3d3,63 -d7e3d4,14 -d7e3d5,23 -d7e3d7,7 -d7e3d8,8c -d7e3d9,8a -d7e3db,10 -d7e3dc,15 -d7e3dd,40 -d7e3df,5 -d7e3e0,0 -d7e3e1,0 -d7e3e2,0 -d7e3e3,0 -d7e3e4,15 -d7e3e5,9 -d7e3e7,3 -d7e3e8,34 -d7e3e9,2 -d7e3eb,1 -d7e3ec,3 -d7e3ed,e0 -d7e3ef,8 -d7e3f0,0 -d7e3f1,0 -d7e3f2,0 -d7e3f3,0 -d7e3f4,34 -d7e3f5,2 -d7e3f6,0 -d7e3f7,0 -d7e3f8,3 -d7e3f9,e0 -d7e3fa,0 -d7e3fb,8 -d7e3fc,0 -d7e3fd,0 -d7e3ff,0 -d7e76c,8f -d7e76d,b8 -d7e76e,0 -d7e76f,44 -d7e778,87 -d7e779,18 -d7e77b,a4 -d7e77c,80 -d7e77d,49 -d7e77e,e -d7e77f,de -d7e784,34 -d7e786,0 -d7e787,1 -d7e788,2 -d7e789,0 -d7e78a,20 -d7e78b,21 -d7e798,15 -d7e79b,2 -d7e79c,34 -d7e79d,19 -d7e79e,0 -d7e79f,5f -d7e7a0,17 -d7e7a1,38 -d7e7a2,0 -d7e7a3,5 -d7e7a4,ae -d7e7a5,b -d7e7a6,1 -d7e7a7,80 -d7e890,0 -d7e891,0 -d7e893,0 -d7e8a0,10 -d7e8a1,0 -d7e8a3,7 -d7e8a4,31 -d7e8a5,4a -d7e8a7,4 -d7e8b0,0 -d7e8b3,0 -d7e8b4,0 -d7e8b5,0 -d7e8b7,0 -d7e8c0,34 -d7e8c1,b -d7e8c2,0 -d7e8c3,14 -d7e8c8,1 -d7e8c9,4b -d7e8ca,50 -d7e8cb,25 -d7e8cc,15 -d7e8cd,4b -d7e8cf,14 -d7e8d4,34 -d7e8d5,e -d7e8d6,0 -d7e8d7,1 -d7e8d8,80 -d7e8da,e -d7e8db,de -d7e8e0,57 -d7e8e3,f -d7ebbc,c -d7ebbd,10 -d7ebbe,c -d7ebbf,0 -d7ec1c,0 -d7ec1d,0 -d7ec1f,0 -d7ec20,34 -d7ec23,5 -db13d3,76 -db532c,c -db532d,10 -db532e,c -db532f,10 -df264f,76 -df7cb0,c -df7cb1,10 -df7cb2,c -df7cb3,8e -e09f68,80 -e09f6a,e -e09f6b,de -e09f74,31 -e09f75,f8 -e09f76,0 -e09f77,4 -e09fb0,c -e09fb1,10 -e09fb2,c -e09fb3,8 -e29388,8 -e29389,10 -e2938a,c -e2938b,27 -e2a044,c -e2a045,10 -e2a046,c -e2a047,30 -e2b0b5,10 -e2b0b6,c -e2b0b7,38 -e2f093,34 -e9e1d8,34 -e9e1d9,9 -e9e1da,40 -e9e1db,0 -e9e1f0,34 -e9e1f2,5b -e9e1f3,8 -e9e200,34 -e9e202,0 -e9e203,a -e9e20d,a9 -ebb85c,c -ebb85d,10 -ebb85e,c -ebb85f,79 -ebb865,40 -ebb867,12 -ebb86c,10 -ebb86d,0 -ebb86e,0 -ebb86f,14 -ec68bc,8f -ec68bd,ad -ec68be,0 -ec68bf,2c -ec68c0,34 -ec68c1,c -ec68c2,0 -ec68c3,a -ec68c4,a5 -ec68c5,ac -ec68c6,1 -ec68c7,10 -ec68c8,c -ec68c9,10 -ec68ca,a -ec68cb,46 -ec68cc,2 -ec68cd,0 -ec68ce,28 -ec68cf,21 -ec68d0,0 -ec68d1,0 -ec68d2,0 -ec68d3,0 -ec68d4,0 -ec68d5,0 -ec68d7,0 -ec68da,0 -ec68db,0 -ec68dc,0 -ec68dd,0 -ec68de,0 -ec68df,0 -ec68e0,0 -ec68e1,0 -ec68e2,0 -ec68e3,0 -ec69ad,ad -ec69af,2c -ec69b0,34 -ec69b1,c -ec69b2,0 -ec69b3,a -ec69b4,a5 -ec69b5,ac -ec69b6,1 -ec69b7,10 -ec69b8,c -ec69b9,10 -ec69ba,a -ec69bb,46 -ec69bc,2 -ec69bd,0 -ec69be,28 -ec69bf,21 -ec69c0,0 -ec69c1,0 -ec69c3,0 -ec69c4,0 -ec69c5,0 -ec69c6,0 -ec69c7,0 -ec69c8,0 -ec69c9,0 -ec69cb,0 -ec69cc,0 -ec69cd,0 -ec69ce,0 -ec69cf,0 -ec69d2,0 -ec69d3,0 -ec9ce7,7a -3480000,27 -3480001,bd -3480002,ff -3480003,e8 -3480004,af -3480005,bf -3480007,10 -3480008,3c -3480009,4 -348000a,80 -348000b,40 -348000c,24 -348000d,84 -348000e,50 -3480010,3c -3480011,5 -3480012,3 -3480013,4b -3480014,24 -3480015,a5 -3480016,30 -3480018,34 -3480019,6 -348001a,b0 -348001c,c -348001e,3 -348001f,7c -3480024,c -3480025,10 -3480026,16 -3480027,fa -348002c,3c -348002d,2 -348002e,80 -348002f,12 -3480030,24 -3480031,42 -3480032,d2 -3480033,a0 -3480034,24 -3480035,e -3480036,1 -3480037,40 -3480038,3c -3480039,1 -348003a,80 -348003b,10 -348003c,ac -348003d,2e -348003e,e5 -3480040,8f -3480041,bf -3480043,10 -3480044,27 -3480045,bd -3480047,18 -3480048,3 -3480049,e0 -348004b,8 -3481c03,df -3481c04,df -3481c05,df -3481c06,df -3481c07,df -3481c08,df -3481c09,df -3481c0a,df -3481c0b,df -3481c0c,df -3481c0d,df -3481c0e,df -3481c0f,df -3481c10,df -3481c11,df -3481c12,df -3481c13,df -3481c14,df -3481c15,df -3481c16,df -3481c17,df -3481c18,df -3481c19,df -3481c1a,df -3481c1b,df -3481c1c,df -3481c1d,df -3481c1e,df -3481c1f,df -3481c20,df -3481c21,df -3481c22,df -3481c23,df -3481c24,df -3481c25,df -3481c26,df -3481c27,df -3481c28,df -3481c29,df -3481c2a,df -3481c2b,df -3481c2c,df -3481c2d,df -3481c2e,df -3481c2f,df -3481c30,df -3481c31,df -3481c32,df -3481c33,df -3481c34,df -3481c35,df -3481c36,df -3481c37,df -3481c38,df -3481c39,df -3481c3a,df -3481c3b,df -3481c3c,df -3481c3d,df -3481c3e,df -3481c3f,df -3481c40,df -3481c41,df -3481c42,df -3481c43,df -3481c44,df -3481c45,df -3481c46,df -3481c47,df -3481c48,df -3481c49,df -3481c4a,df -3481c4b,df -3481c4c,df -3481c4d,df -3481c4e,df -3481c4f,df -3481c50,df -3481c51,df -3481c52,df -3481c53,df -3481c54,df -3481c55,df -3481c56,df -3481c57,df -3481c58,df -3481c59,df -3481c5a,df -3481c5b,df -3481c5c,df -3481c5d,df -3481c5e,df -3481c5f,df -3481c60,df -3481c61,df -3481c62,df -3481c63,df -3481c64,df -3481c65,df -3481c66,df -3481c67,df -3481c68,df -3481c69,df -3481c6a,df -3481c6b,df -3481c6c,df -3481c6d,df -3481c6e,df -3481c6f,df -3481c70,df -3481c71,df -3481c72,df -3481c73,df -3481c74,df -3481c75,df -3481c76,df -3481c77,df -3481c78,df -3481c79,df -3481c7a,df -3481c7b,df -3481c7c,df -3481c7d,df -3481c7e,df -3481c7f,df -3481c80,df -3481c81,df -3481c82,df -3481c83,df -3481c84,df -3481c85,df -3481c86,df -3481c87,df -3481c88,df -3481c89,df -3481c8a,df -3481c8b,df -3481c8c,df -3481c8d,df -3481c8e,df -3481c8f,df -3481c90,df -3481c91,df -3481c92,df -3481c93,df -3481c94,df -3481c95,df -3481c96,df -3481c97,df -3481c98,df -3481c99,df -3481c9a,df -3481c9b,df -3481c9c,df -3481c9d,df -3481c9e,df -3481c9f,df -3481ca0,df -3481ca1,df -3481ca2,df -3481ca3,df -3481ca4,df -3481ca5,df -3481ca6,df -3481ca7,df -3481ca8,df -3481ca9,df -3481caa,df -3481cab,df -3481cac,df -3481cad,df -3481cae,df -3481caf,df -3481cb0,df -3481cb1,df -3481cb2,df -3481cb3,df -3481cb4,df -3481cb5,df -3481cb6,df -3481cb7,df -3481cb8,df -3481cb9,df -3481cba,df -3481cbb,df -3481cbc,df -3481cbd,df -3481cbe,df -3481cbf,df -3481cc0,df -3481cc1,df -3481cc2,df -3481cc3,df -3481cc4,df -3481cc5,df -3481cc6,df -3481cc7,df -3481cc8,df -3481cc9,df -3481cca,df -3481ccb,df -3481ccc,df -3481ccd,df -3481cce,df -3481ccf,df -3481cd0,df -3481cd1,df -3481cd2,df -3481cd3,df -3481cd4,df -3481cd5,df -3481cd6,df -3481cd7,df -3481cd8,df -3481cd9,df -3481cda,df -3481cdb,df -3481cdc,df -3481cdd,df -3481cde,df -3481cdf,df -3481ce0,df -3481ce1,df -3481ce2,df -3481ce3,df -3481ce4,df -3481ce5,df -3481ce6,df -3481ce7,df -3481ce8,df -3481ce9,df -3481cea,df -3481ceb,df -3481cec,df -3481ced,df -3481cee,df -3481cef,df -3481cf0,df -3481cf1,df -3481cf2,df -3481cf3,df -3481cf4,df -3481cf5,df -3481cf6,df -3481cf7,df -3481cf8,df -3481cf9,df -3481cfa,df -3481cfb,df -3481cfc,df -3481cfd,df -3481cfe,df -3481cff,df -3481d00,df -3481d01,df -3481d02,df -3481d03,5a -3481d04,3b -3481d05,5d -3481d06,5c -3481d07,5e -3481d08,51 -3481d09,52 -3481d0a,53 -3482050,ff -3482051,ff -3482052,ff -3482053,ff -3482054,ff -3482055,ff -3482056,ff -3482057,ff -3482058,80 -3482059,40 -348205a,27 -348205b,30 -348205c,80 -348205d,40 -348205e,25 -348205f,78 -3482060,ff -3482061,ff -3482062,ff -3482063,ff -3482064,ff -3482065,ff -3482066,ff -3482067,ff -3482068,80 -3482069,40 -348206a,27 -348206b,30 -348206c,80 -348206d,40 -348206e,25 -348206f,94 -3482070,ff -3482071,ff -3482072,ff -3482073,ff -3482074,ff -3482075,ff -3482076,ff -3482077,ff -3482078,80 -3482079,40 -348207a,27 -348207b,30 -348207c,80 -348207d,40 -348207e,25 -348207f,bc -3482080,ff -3482081,ff -3482082,ff -3482083,ff -3482084,ff -3482085,ff -3482086,ff -3482087,ff -3482088,80 -3482089,40 -348208a,27 -348208b,30 -348208c,80 -348208d,40 -348208e,25 -348208f,e4 -3482090,ff -3482091,ff -3482092,ff -3482093,ff -3482094,ff -3482095,ff -3482096,ff -3482097,ff -3482098,80 -3482099,40 -348209a,27 -348209b,30 -348209c,80 -348209d,40 -348209e,26 -348209f,c -34820a0,53 -34820a1,41 -34820a2,23 -34820a3,f8 -34820a5,d1 -34820a6,ff -34820a7,ff -34820a8,80 -34820a9,40 -34820aa,26 -34820ab,5c -34820ac,80 -34820ad,40 -34820ae,26 -34820af,34 -34820b0,ff -34820b1,ff -34820b2,ff -34820b3,ff -34820b4,ff -34820b5,ff -34820b6,ff -34820b7,ff -34820b8,80 -34820b9,40 -34820ba,27 -34820bb,30 -34820bc,80 -34820bd,40 -34820be,26 -34820bf,70 -34820c0,ff -34820c1,ff -34820c2,ff -34820c3,ff -34820c4,ff -34820c5,ff -34820c6,ff -34820c7,ff -34820c8,80 -34820c9,40 -34820ca,27 -34820cb,30 -34820cc,80 -34820cd,40 -34820ce,26 -34820cf,8c -34820d0,ff -34820d1,ff -34820d2,ff -34820d3,ff -34820d4,ff -34820d5,ff -34820d6,ff -34820d7,ff -34820d8,80 -34820d9,40 -34820da,27 -34820db,30 -34820dc,80 -34820dd,40 -34820de,26 -34820df,a8 -34820e0,53 -34820e1,41 -34820e2,38 -34820e3,43 -34820e5,eb -34820e6,15 -34820e7,ff -34820e8,80 -34820e9,40 -34820ea,27 -34820eb,48 -34820ec,80 -34820ed,40 -34820ee,25 -34820ef,70 -34820f0,53 -34820f1,41 -34820f2,37 -34820f3,44 -34820f5,eb -34820f6,16 -34820f7,ff -34820f8,80 -34820f9,40 -34820fa,27 -34820fb,48 -34820fc,80 -34820fd,40 -34820fe,25 -34820ff,70 -3482100,53 -3482101,41 -3482102,39 -3482103,45 -3482105,eb -3482106,17 -3482107,ff -3482108,80 -3482109,40 -348210a,27 -348210b,48 -348210c,80 -348210d,40 -348210e,25 -348210f,70 -3482110,53 -3482111,41 -3482112,6b -3482113,46 -3482114,1 -3482115,77 -3482116,18 -3482117,ff -3482118,80 -3482119,40 -348211a,27 -348211b,48 -348211c,80 -348211d,40 -348211e,25 -348211f,70 -3482120,53 -3482121,41 -3482122,3f -3482123,47 -3482125,f4 -3482126,19 -3482127,ff -3482128,80 -3482129,40 -348212a,27 -348212b,48 -348212c,80 -348212d,40 -348212e,25 -348212f,70 -3482130,53 -3482131,41 -3482132,67 -3482133,5d -3482134,1 -3482135,73 -3482136,1c -3482137,ff -3482138,80 -3482139,40 -348213a,27 -348213b,48 -348213c,80 -348213d,40 -348213e,25 -348213f,70 -3482140,53 -3482141,41 -3482142,68 -3482143,7a -3482144,1 -3482145,74 -3482146,1d -3482147,ff -3482148,80 -3482149,40 -348214a,27 -348214b,48 -348214c,80 -348214d,40 -348214e,25 -348214f,70 -3482150,53 -3482151,41 -3482152,70 -3482153,f9 -3482154,1 -3482155,76 -3482156,1e -3482157,ff -3482158,80 -3482159,40 -348215a,27 -348215b,48 -348215c,80 -348215d,40 -348215e,25 -348215f,70 -3482160,53 -3482161,41 -3482162,6a -3482163,97 -3482164,1 -3482165,76 -3482166,20 -3482167,ff -3482168,80 -3482169,40 -348216a,27 -348216b,48 -348216c,80 -348216d,40 -348216e,25 -348216f,70 -3482170,53 -3482171,41 -3482172,a -3482173,6 -3482175,b9 -3482176,1 -3482177,3 -3482178,80 -3482179,40 -348217a,27 -348217b,84 -348217c,80 -348217d,40 -348217e,25 -348217f,70 -3482180,53 -3482181,41 -3482182,a -3482183,1c -3482185,b9 -3482186,1 -3482187,4 -3482188,80 -3482189,40 -348218a,27 -348218b,84 -348218c,80 -348218d,40 -348218e,25 -348218f,70 -3482190,53 -3482191,41 -3482192,a -3482193,1d -3482195,b9 -3482196,1 -3482197,5 -3482198,80 -3482199,40 -348219a,27 -348219b,84 -348219c,80 -348219d,40 -348219e,25 -348219f,70 -34821a0,53 -34821a1,41 -34821a2,a -34821a3,1e -34821a5,b9 -34821a6,1 -34821a7,6 -34821a8,80 -34821a9,40 -34821aa,27 -34821ab,84 -34821ac,80 -34821ad,40 -34821ae,25 -34821af,70 -34821b0,53 -34821b1,41 -34821b2,a -34821b3,2a -34821b5,b9 -34821b6,1 -34821b7,7 -34821b8,80 -34821b9,40 -34821ba,27 -34821bb,84 -34821bc,80 -34821bd,40 -34821be,25 -34821bf,70 -34821c0,53 -34821c1,41 -34821c2,a -34821c3,61 -34821c5,b9 -34821c6,1 -34821c7,a -34821c8,80 -34821c9,40 -34821ca,27 -34821cb,84 -34821cc,80 -34821cd,40 -34821ce,25 -34821cf,70 -34821d0,4d -34821d1,41 -34821d2,f5 -34821d3,62 -34821d5,b8 -34821d6,2 -34821d8,80 -34821d9,40 -34821da,27 -34821db,84 -34821dc,80 -34821dd,40 -34821de,25 -34821df,70 -34821e0,4d -34821e1,41 -34821e2,f5 -34821e3,63 -34821e5,b8 -34821e6,2 -34821e7,1 -34821e8,80 -34821e9,40 -34821ea,27 -34821eb,84 -34821ec,80 -34821ed,40 -34821ee,25 -34821ef,70 -34821f0,4d -34821f1,41 -34821f2,f5 -34821f3,64 -34821f5,b8 -34821f6,2 -34821f7,2 -34821f8,80 -34821f9,40 -34821fa,27 -34821fb,84 -34821fc,80 -34821fd,40 -34821fe,25 -34821ff,70 -3482200,4d -3482201,41 -3482202,f5 -3482203,65 -3482205,b8 -3482206,2 -3482207,3 -3482208,80 -3482209,40 -348220a,27 -348220b,84 -348220c,80 -348220d,40 -348220e,25 -348220f,70 -3482210,4d -3482211,41 -3482212,f5 -3482213,7c -3482215,b8 -3482216,2 -3482217,4 -3482218,80 -3482219,40 -348221a,27 -348221b,84 -348221c,80 -348221d,40 -348221e,25 -348221f,70 -3482220,4d -3482221,41 -3482222,f5 -3482223,7d -3482225,b8 -3482226,2 -3482227,5 -3482228,80 -3482229,40 -348222a,27 -348222b,84 -348222c,80 -348222d,40 -348222e,25 -348222f,70 -3482230,4d -3482231,41 -3482232,f5 -3482233,7e -3482235,b8 -3482236,2 -3482237,6 -3482238,80 -3482239,40 -348223a,27 -348223b,84 -348223c,80 -348223d,40 -348223e,25 -348223f,70 -3482240,4d -3482241,41 -3482242,f5 -3482243,7f -3482245,b8 -3482246,2 -3482247,7 -3482248,80 -3482249,40 -348224a,27 -348224b,84 -348224c,80 -348224d,40 -348224e,25 -348224f,70 -3482250,4d -3482251,41 -3482252,f5 -3482253,a2 -3482255,b8 -3482256,2 -3482257,8 -3482258,80 -3482259,40 -348225a,27 -348225b,84 -348225c,80 -348225d,40 -348225e,25 -348225f,70 -3482260,4d -3482261,41 -3482262,f5 -3482263,87 -3482265,b8 -3482266,2 -3482267,9 -3482268,80 -3482269,40 -348226a,27 -348226b,84 -348226c,80 -348226d,40 -348226e,25 -348226f,70 -3482270,4d -3482271,41 -3482272,e4 -3482273,88 -3482275,c8 -3482276,4 -3482278,80 -3482279,40 -348227a,27 -348227b,84 -348227c,80 -348227d,40 -348227e,25 -348227f,70 -3482280,4d -3482281,41 -3482282,e4 -3482283,89 -3482285,c8 -3482286,4 -3482287,1 -3482288,80 -3482289,40 -348228a,27 -348228b,84 -348228c,80 -348228d,40 -348228e,25 -348228f,70 -3482290,4d -3482291,41 -3482292,e4 -3482293,8a -3482295,c8 -3482296,4 -3482297,2 -3482298,80 -3482299,40 -348229a,27 -348229b,84 -348229c,80 -348229d,40 -348229e,25 -348229f,70 -34822a0,4d -34822a1,41 -34822a2,e4 -34822a3,8b -34822a5,c8 -34822a6,4 -34822a7,3 -34822a8,80 -34822a9,40 -34822aa,27 -34822ab,84 -34822ac,80 -34822ad,40 -34822ae,25 -34822af,70 -34822b0,4d -34822b1,41 -34822b2,e4 -34822b3,8c -34822b5,c8 -34822b6,4 -34822b7,4 -34822b8,80 -34822b9,40 -34822ba,27 -34822bb,84 -34822bc,80 -34822bd,40 -34822be,25 -34822bf,70 -34822c0,4d -34822c1,41 -34822c2,e4 -34822c3,8e -34822c5,c8 -34822c6,4 -34822c7,5 -34822c8,80 -34822c9,40 -34822ca,27 -34822cb,84 -34822cc,80 -34822cd,40 -34822ce,25 -34822cf,70 -34822d0,4d -34822d1,41 -34822d2,e4 -34822d3,8f -34822d5,c8 -34822d6,4 -34822d7,6 -34822d8,80 -34822d9,40 -34822da,27 -34822db,84 -34822dc,80 -34822dd,40 -34822de,25 -34822df,70 -34822e0,4d -34822e1,41 -34822e2,e4 -34822e3,a3 -34822e5,c8 -34822e6,4 -34822e7,7 -34822e8,80 -34822e9,40 -34822ea,27 -34822eb,84 -34822ec,80 -34822ed,40 -34822ee,25 -34822ef,70 -34822f0,4d -34822f1,41 -34822f2,e4 -34822f3,a5 -34822f5,c8 -34822f6,4 -34822f7,8 -34822f8,80 -34822f9,40 -34822fa,27 -34822fb,84 -34822fc,80 -34822fd,40 -34822fe,25 -34822ff,70 -3482300,4d -3482301,41 -3482302,e4 -3482303,92 -3482305,c8 -3482306,4 -3482307,9 -3482308,80 -3482309,40 -348230a,27 -348230b,84 -348230c,80 -348230d,40 -348230e,25 -348230f,70 -3482310,53 -3482311,41 -3482312,2 -3482313,93 -3482315,aa -3482316,3 -3482317,ff -3482318,80 -3482319,40 -348231a,27 -348231b,a0 -348231c,80 -348231d,40 -348231e,25 -348231f,70 -3482320,53 -3482321,41 -3482322,2 -3482323,94 -3482325,aa -3482326,4 -3482327,ff -3482328,80 -3482329,40 -348232a,27 -348232b,a0 -348232c,80 -348232d,40 -348232e,25 -348232f,70 -3482330,53 -3482331,41 -3482332,2 -3482333,95 -3482335,aa -3482336,5 -3482337,ff -3482338,80 -3482339,40 -348233a,27 -348233b,a0 -348233c,80 -348233d,40 -348233e,25 -348233f,70 -3482340,53 -3482341,41 -3482342,2 -3482343,a6 -3482345,aa -3482346,6 -3482347,ff -3482348,80 -3482349,40 -348234a,27 -348234b,a0 -348234c,80 -348234d,40 -348234e,25 -348234f,70 -3482350,53 -3482351,41 -3482352,2 -3482353,a9 -3482355,aa -3482356,7 -3482357,ff -3482358,80 -3482359,40 -348235a,27 -348235b,a0 -348235c,80 -348235d,40 -348235e,25 -348235f,70 -3482360,53 -3482361,41 -3482362,2 -3482363,9b -3482365,aa -3482366,8 -3482367,ff -3482368,80 -3482369,40 -348236a,27 -348236b,a0 -348236c,80 -348236d,40 -348236e,25 -348236f,70 -3482370,53 -3482371,41 -3482372,2 -3482373,9f -3482375,aa -3482376,b -3482377,ff -3482378,80 -3482379,40 -348237a,27 -348237b,a0 -348237c,80 -348237d,40 -348237e,25 -348237f,70 -3482380,53 -3482381,41 -3482382,2 -3482383,a0 -3482385,aa -3482386,c -3482387,ff -3482388,80 -3482389,40 -348238a,27 -348238b,a0 -348238c,80 -348238d,40 -348238e,25 -348238f,70 -3482390,53 -3482391,41 -3482392,2 -3482393,a1 -3482395,aa -3482396,d -3482397,ff -3482398,80 -3482399,40 -348239a,27 -348239b,a0 -348239c,80 -348239d,40 -348239e,25 -348239f,70 -34823a0,53 -34823a1,3d -34823a2,43 -34823a3,c -34823a5,f8 -34823a6,ff -34823a7,ff -34823a8,80 -34823a9,40 -34823aa,27 -34823ab,38 -34823ac,80 -34823ad,40 -34823ae,25 -34823af,70 -34823b0,4d -34823b1,83 -34823b2,f7 -34823b3,55 -34823b5,b7 -34823b6,ff -34823b7,ff -34823b8,80 -34823b9,40 -34823ba,27 -34823bb,30 -34823bc,80 -34823bd,40 -34823be,25 -34823bf,70 -34823c0,4d -34823c1,92 -34823c2,db -34823c3,e6 -34823c5,d8 -34823c6,ff -34823c7,ff -34823c8,80 -34823c9,40 -34823ca,27 -34823cb,30 -34823cc,80 -34823cd,40 -34823ce,26 -34823cf,dc -34823d0,4d -34823d1,93 -34823d2,da -34823d3,e6 -34823d5,d8 -34823d6,ff -34823d7,ff -34823d8,80 -34823d9,40 -34823da,27 -34823db,30 -34823dc,80 -34823dd,40 -34823de,26 -34823df,dc -34823e0,4d -34823e1,94 -34823e2,d9 -34823e3,e6 -34823e5,d8 -34823e6,ff -34823e7,ff -34823e8,80 -34823e9,40 -34823ea,27 -34823eb,30 -34823ec,80 -34823ed,40 -34823ee,26 -34823ef,dc -34823f0,4d -34823f1,8e -34823f2,e0 -34823f3,32 -34823f5,ce -34823f6,ff -34823f7,ff -34823f8,80 -34823f9,40 -34823fa,27 -34823fb,30 -34823fc,80 -34823fd,40 -34823fe,26 -34823ff,f8 -3482400,4d -3482401,8f -3482402,e0 -3482403,32 -3482405,ce -3482406,ff -3482407,ff -3482408,80 -3482409,40 -348240a,27 -348240b,30 -348240c,80 -348240d,40 -348240e,26 -348240f,f8 -3482410,4d -3482411,90 -3482412,e0 -3482413,32 -3482415,ce -3482416,ff -3482417,ff -3482418,80 -3482419,40 -348241a,27 -348241b,30 -348241c,80 -348241d,40 -348241e,26 -348241f,f8 -3482420,4d -3482421,8c -3482422,ee -3482423,34 -3482425,bb -3482426,ff -3482427,ff -3482428,80 -3482429,40 -348242a,27 -348242b,30 -348242c,80 -348242d,40 -348242e,25 -348242f,70 -3482430,4d -3482431,8d -3482432,ee -3482433,34 -3482435,bb -3482436,ff -3482437,ff -3482438,80 -3482439,40 -348243a,27 -348243b,30 -348243c,80 -348243d,40 -348243e,25 -348243f,70 -3482440,53 -3482441,41 -3482442,13 -3482443,e9 -3482445,bd -3482446,ff -3482447,ff -3482448,80 -3482449,40 -348244a,27 -348244b,c8 -348244c,80 -348244d,40 -348244e,25 -348244f,70 -3482450,53 -3482451,41 -3482452,1e -3482453,e4 -3482455,cd -3482456,ff -3482457,ff -3482458,80 -3482459,40 -348245a,27 -348245b,e8 -348245c,80 -348245d,40 -348245e,26 -348245f,c4 -3482460,53 -3482461,41 -3482462,1f -3482463,e8 -3482465,cd -3482466,ff -3482467,ff -3482468,80 -3482469,40 -348246a,28 -348246b,8 -348246c,80 -348246d,40 -348246e,25 -348246f,70 -3482470,ff -3482471,ff -3482472,ff -3482473,ff -3482474,ff -3482475,ff -3482476,ff -3482477,ff -3482478,80 -3482479,40 -348247a,27 -348247b,30 -348247c,80 -348247d,40 -348247e,28 -348247f,30 -3482480,53 -3482481,41 -3482482,46 -3482483,4a -3482484,1 -3482485,e -3482486,ff -3482487,ff -3482488,80 -3482489,40 -348248a,28 -348248b,78 -348248c,80 -348248d,40 -348248e,28 -348248f,5c -3482490,53 -3482491,41 -3482492,3 -3482493,b0 -3482495,b6 -3482496,6 -3482497,ff -3482498,80 -3482499,40 -348249a,28 -348249b,88 -348249c,80 -348249d,40 -348249e,25 -348249f,70 -34824a0,53 -34824a1,41 -34824a2,4 -34824a3,b1 -34824a5,b6 -34824a6,7 -34824a7,ff -34824a8,80 -34824a9,40 -34824aa,28 -34824ab,88 -34824ac,80 -34824ad,40 -34824ae,25 -34824af,70 -34824b0,53 -34824b1,41 -34824b2,5 -34824b3,b2 -34824b5,b6 -34824b6,8 -34824b7,ff -34824b8,80 -34824b9,40 -34824ba,28 -34824bb,88 -34824bc,80 -34824bd,40 -34824be,25 -34824bf,70 -34824c0,53 -34824c1,41 -34824c2,6 -34824c3,b3 -34824c5,b6 -34824c6,9 -34824c7,ff -34824c8,80 -34824c9,40 -34824ca,28 -34824cb,88 -34824cc,80 -34824cd,40 -34824ce,25 -34824cf,70 -34824d0,53 -34824d1,41 -34824d2,7 -34824d3,b6 -34824d5,b6 -34824d6,a -34824d7,ff -34824d8,80 -34824d9,40 -34824da,28 -34824db,88 -34824dc,80 -34824dd,40 -34824de,25 -34824df,70 -34824e0,53 -34824e1,41 -34824e2,8 -34824e3,b7 -34824e5,b6 -34824e6,b -34824e7,ff -34824e8,80 -34824e9,40 -34824ea,28 -34824eb,88 -34824ec,80 -34824ed,40 -34824ee,25 -34824ef,70 -34824f0,53 -34824f1,41 -34824f2,4 -34824f3,b8 -34824f5,b6 -34824f6,c -34824f7,ff -34824f8,80 -34824f9,40 -34824fa,28 -34824fb,88 -34824fc,80 -34824fd,40 -34824fe,25 -34824ff,70 -3482500,53 -3482501,41 -3482502,6 -3482503,b9 -3482505,b6 -3482506,d -3482507,ff -3482508,80 -3482509,40 -348250a,28 -348250b,88 -348250c,80 -348250d,40 -348250e,25 -348250f,70 -3482510,53 -3482511,41 -3482512,3 -3482513,ba -3482515,b6 -3482516,e -3482517,ff -3482518,80 -3482519,40 -348251a,28 -348251b,88 -348251c,80 -348251d,40 -348251e,25 -348251f,70 -3482520,53 -3482521,41 -3482522,8 -3482523,bb -3482525,b6 -3482526,f -3482527,ff -3482528,80 -3482529,40 -348252a,28 -348252b,88 -348252c,80 -348252d,40 -348252e,25 -348252f,70 -3482530,53 -3482531,41 -3482532,5 -3482533,bc -3482535,b6 -3482536,10 -3482537,ff -3482538,80 -3482539,40 -348253a,28 -348253b,88 -348253c,80 -348253d,40 -348253e,25 -348253f,70 -3482540,53 -3482541,41 -3482542,7 -3482543,bd -3482545,b6 -3482546,11 -3482547,ff -3482548,80 -3482549,40 -348254a,28 -348254b,88 -348254c,80 -348254d,40 -348254e,25 -348254f,70 -3482550,4d -3482552,e5 -3482553,37 -3482555,c7 -3482556,ff -3482557,ff -3482558,80 -3482559,40 -348255a,27 -348255b,30 -348255c,80 -348255d,40 -348255e,25 -348255f,70 -3482560,4d -3482561,95 -3482562,b8 -3482563,dc -3482564,1 -3482565,19 -3482566,ff -3482567,ff -3482568,80 -3482569,40 -348256a,27 -348256b,30 -348256c,80 -348256d,40 -348256e,27 -348256f,14 -3482570,3 -3482571,e0 -3482573,8 -3482574,34 -3482575,a2 -3482578,90 -3482579,88 -348257b,7d -348257c,34 -348257d,1 -348257f,ff -3482580,11 -3482581,1 -3482583,2 -3482584,34 -3482585,2 -3482587,8 -3482588,34 -3482589,2 -348258b,9 -348258c,3 -348258d,e0 -348258f,8 -3482594,90 -3482595,88 -3482597,a3 -3482598,31 -3482599,8 -348259b,c0 -348259c,11 -348259f,5 -34825a0,34 -34825a1,2 -34825a3,54 -34825a4,34 -34825a5,1 -34825a7,40 -34825a8,11 -34825a9,1 -34825ab,2 -34825ac,34 -34825ad,2 -34825af,35 -34825b0,34 -34825b1,2 -34825b3,36 -34825b4,3 -34825b5,e0 -34825b7,8 -34825bc,90 -34825bd,88 -34825bf,a3 -34825c0,31 -34825c1,8 -34825c3,18 -34825c4,11 -34825c7,5 -34825c8,34 -34825c9,2 -34825cb,32 -34825cc,34 -34825cd,1 -34825cf,8 -34825d0,11 -34825d1,1 -34825d3,2 -34825d4,34 -34825d5,2 -34825d7,33 -34825d8,34 -34825d9,2 -34825db,34 -34825dc,3 -34825dd,e0 -34825df,8 -34825e4,90 -34825e5,88 -34825e7,a3 -34825e8,31 -34825e9,8 -34825eb,3 -34825ec,11 -34825ef,5 -34825f0,34 -34825f1,2 -34825f3,4 -34825f4,34 -34825f5,1 -34825f7,1 -34825f8,11 -34825f9,1 -34825fb,2 -34825fc,34 -34825fd,2 -34825ff,30 -3482600,34 -3482601,2 -3482603,31 -3482604,3 -3482605,e0 -3482607,8 -348260c,90 -348260d,88 -348260f,a2 -3482610,31 -3482611,8 -3482613,c0 -3482614,11 -3482617,5 -3482618,34 -3482619,2 -348261b,5 -348261c,34 -348261d,1 -348261f,40 -3482620,11 -3482621,1 -3482623,2 -3482624,34 -3482625,2 -3482627,60 -3482628,34 -3482629,2 -348262b,7b -348262c,3 -348262d,e0 -348262f,8 -3482634,90 -3482635,88 -3482637,a2 -3482638,31 -3482639,8 -348263b,30 -348263c,11 -348263f,5 -3482640,34 -3482641,2 -3482643,45 -3482644,34 -3482645,9 -3482647,10 -3482648,11 -3482649,9 -348264b,2 -348264c,34 -348264d,2 -348264f,46 -3482650,34 -3482651,a2 -3482654,3 -3482655,e0 -3482657,8 -348265c,90 -348265d,88 -348265f,a2 -3482660,35 -3482661,8 -3482663,30 -3482664,a0 -3482665,88 -3482667,a2 -3482668,3 -3482669,e0 -348266b,8 -3482670,90 -3482671,88 -3482673,a2 -3482674,31 -3482675,8 -3482677,6 -3482678,11 -348267b,2 -348267c,34 -348267d,2 -348267f,37 -3482680,34 -3482681,2 -3482683,38 -3482684,3 -3482685,e0 -3482687,8 -348268c,90 -348268d,88 -348268f,a1 -3482690,31 -3482691,8 -3482693,20 -3482694,11 -3482697,2 -3482698,34 -3482699,2 -348269b,79 -348269c,34 -348269d,2 -348269f,7a -34826a0,3 -34826a1,e0 -34826a3,8 -34826a8,90 -34826a9,88 -34826ab,a1 -34826ac,31 -34826ad,8 -34826af,4 -34826b0,11 -34826b3,2 -34826b4,34 -34826b5,2 -34826b7,77 -34826b8,34 -34826b9,2 -34826bb,78 -34826bc,3 -34826bd,e0 -34826bf,8 -34826c4,90 -34826c5,88 -34826c7,32 -34826c8,11 -34826cb,2 -34826cc,34 -34826cd,2 -34826cf,c0 -34826d0,34 -34826d1,2 -34826d3,c1 -34826d4,3 -34826d5,e0 -34826d7,8 -34826dc,90 -34826dd,88 -34826df,a3 -34826e0,31 -34826e1,8 -34826e3,3 -34826e4,11 -34826e7,2 -34826e8,34 -34826e9,2 -34826eb,4d -34826ec,34 -34826ed,a2 -34826f0,3 -34826f1,e0 -34826f3,8 -34826f8,90 -34826f9,88 -34826fb,a3 -34826fc,31 -34826fd,8 -34826ff,18 -3482700,11 -3482703,2 -3482704,34 -3482705,2 -3482707,4d -3482708,34 -3482709,a2 -348270c,3 -348270d,e0 -348270f,8 -3482714,90 -3482715,88 -3482717,a2 -3482718,31 -3482719,8 -348271b,c0 -348271c,11 -348271f,2 -3482720,34 -3482721,2 -3482723,4d -3482724,34 -3482725,a2 -3482728,3 -3482729,e0 -348272b,8 -3482730,3 -3482731,e0 -3482733,8 -3482738,34 -3482739,8 -348273b,1 -348273c,a0 -348273d,88 -348273f,3e -3482740,3 -3482741,e0 -3482743,8 -3482748,24 -3482749,88 -348274b,86 -348274c,24 -348274d,9 -348274e,ff -348274f,ff -3482750,25 -3482751,29 -3482753,1 -3482754,34 -3482755,1 -3482757,3 -3482759,29 -348275a,8 -348275b,2a -348275c,14 -348275d,20 -348275f,7 -3482764,1 -3482765,9 -3482766,50 -3482767,21 -3482768,91 -3482769,4b -348276c,34 -348276d,1 -348276f,ff -3482770,15 -3482771,61 -3482772,ff -3482773,f7 -3482778,a1 -3482779,45 -348277c,3 -348277d,e0 -348277f,8 -3482784,24 -3482785,88 -3482787,a8 -3482788,1 -3482789,6 -348278a,40 -348278b,21 -348278c,91 -348278d,9 -3482790,1 -3482791,25 -3482792,48 -3482793,25 -3482794,a1 -3482795,9 -3482798,3 -3482799,e0 -348279b,8 -34827a0,24 -34827a1,88 -34827a3,bc -34827a4,1 -34827a5,5 -34827a6,40 -34827a7,21 -34827a8,81 -34827a9,9 -34827ac,5 -34827ad,21 -34827af,2 -34827b4,34 -34827b5,9 -34827b8,25 -34827b9,29 -34827bb,1 -34827bc,a1 -34827bd,9 -34827c0,3 -34827c1,e0 -34827c3,8 -34827c8,34 -34827c9,8 -34827cb,1 -34827cc,a0 -34827cd,88 -34827cf,3d -34827d0,34 -34827d1,8 -34827d3,14 -34827d4,a0 -34827d5,88 -34827d7,cf -34827d8,34 -34827d9,8 -34827da,1 -34827db,40 -34827dc,a4 -34827dd,88 -34827de,14 -34827df,24 -34827e0,3 -34827e1,e0 -34827e3,8 -34827e8,34 -34827e9,8 -34827eb,1 -34827ec,a0 -34827ed,88 -34827ef,32 -34827f0,a0 -34827f1,88 -34827f3,3a -34827f4,34 -34827f5,8 -34827f7,30 -34827f8,a4 -34827f9,88 -34827fa,13 -34827fb,f4 -34827fc,a0 -34827fd,88 -34827ff,33 -3482800,3 -3482801,e0 -3482803,8 -3482808,34 -3482809,8 -348280b,2 -348280c,a0 -348280d,88 -348280f,32 -3482810,34 -3482811,8 -3482813,1 -3482814,a0 -3482815,88 -3482817,3a -3482818,a0 -3482819,88 -348281b,3c -348281c,34 -348281d,8 -348281f,60 -3482820,a4 -3482821,88 -3482822,13 -3482823,f4 -3482824,a0 -3482825,88 -3482827,33 -3482828,3 -3482829,e0 -348282b,8 -3482830,90 -3482831,88 -3482833,7c -3482834,34 -3482835,1 -3482837,ff -3482838,11 -3482839,1 -348283b,6 -348283c,34 -348283d,2 -348283f,6b -3482840,90 -3482841,88 -3482843,94 -3482844,2d -3482845,8 -3482847,6 -3482848,11 -348284b,2 -348284c,34 -348284d,2 -348284f,6a -3482850,34 -3482851,2 -3482853,3 -3482854,3 -3482855,e0 -3482857,8 -348285c,90 -348285d,88 -348285f,7b -3482860,34 -3482861,1 -3482863,ff -3482864,11 -3482865,1 -3482867,2 -3482868,34 -3482869,a2 -348286c,34 -348286d,2 -348286f,c -3482870,3 -3482871,e0 -3482873,8 -3482878,34 -3482879,8 -348287b,7 -348287c,a0 -348287d,88 -348287f,7b -3482880,3 -3482881,e0 -3482883,8 -3482888,34 -3482889,8 -348288b,1 -348288d,a8 -348288e,40 -348288f,4 -3482890,8c -3482891,89 -3482893,a4 -3482894,1 -3482895,28 -3482896,48 -3482897,25 -3482898,ac -3482899,89 -348289b,a4 -348289c,3 -348289d,e0 -348289f,8 -34828a4,30 -34828a5,84 -34828a7,ff -34828a8,3c -34828a9,8 -34828aa,80 -34828ab,12 -34828ac,25 -34828ad,8 -34828ae,a5 -34828af,d0 -34828b0,34 -34828b1,1 -34828b3,8c -34828b4,10 -34828b5,81 -34828b7,16 -34828b8,91 -34828b9,2 -34828bb,75 -34828bc,34 -34828bd,1 -34828bf,8d -34828c0,10 -34828c1,81 -34828c3,13 -34828c4,91 -34828c5,2 -34828c7,75 -34828c8,10 -34828c9,80 -34828cb,11 -34828cc,91 -34828cd,2 -34828cf,74 -34828d0,34 -34828d1,1 -34828d3,8a -34828d4,10 -34828d5,81 -34828d7,e -34828d8,91 -34828d9,2 -34828db,74 -34828dc,34 -34828dd,1 -34828df,8b -34828e0,10 -34828e1,81 -34828e3,b -34828e4,91 -34828e5,2 -34828e7,74 -34828e8,34 -34828e9,1 -34828eb,58 -34828ec,10 -34828ed,81 -34828ef,8 -34828f0,34 -34828f1,2 -34828f4,34 -34828f5,1 -34828f7,78 -34828f8,10 -34828f9,81 -34828fb,5 -34828fc,34 -34828fd,2 -3482900,34 -3482901,1 -3482903,79 -3482904,10 -3482905,81 -3482907,2 -3482908,34 -3482909,2 -348290c,34 -348290d,2 -348290f,ff -3482910,3 -3482911,e0 -3482913,8 -3482918,27 -3482919,bd -348291a,ff -348291b,e0 -348291c,af -348291d,bf -348291f,10 -3482920,af -3482921,b0 -3482923,14 -3482924,c -3482925,10 -3482926,b -3482927,27 -348292c,4 -348292d,41 -348292f,2 -3482934,34 -3482935,2 -3482937,5b -3482939,40 -348293a,20 -348293b,21 -348293c,c -348293d,10 -348293e,b -348293f,a2 -3482944,10 -3482945,60 -3482947,1a -3482948,af -3482949,a3 -348294b,1c -348294c,90 -348294d,65 -348294f,3 -3482950,2 -3482951,20 -3482952,20 -3482953,21 -3482954,c -3482955,3 -3482956,73 -3482957,85 -348295a,30 -348295b,21 -348295c,8f -348295d,a3 -348295f,1c -3482960,3c -3482961,8 -3482962,80 -3482963,40 -3482964,25 -3482965,8 -3482966,20 -3482968,85 -3482969,9 -348296b,2 -348296c,11 -348296d,20 -348296f,3 -3482970,34 -3482971,a -3482973,1 -3482974,10 -3482977,23 -3482978,a5 -3482979,a -348297c,3c -348297d,4 -348297e,80 -348297f,12 -3482980,24 -3482981,84 -3482982,a5 -3482983,d0 -3482984,90 -3482985,65 -3482987,6 -3482988,90 -3482989,66 -348298b,7 -348298c,8c -348298d,69 -348298f,8 -3482990,1 -3482991,20 -3482992,f8 -3482993,9 -3482998,8f -3482999,a3 -348299b,1c -348299c,90 -348299d,65 -348299f,1 -34829a0,c -34829a1,1 -34829a2,bf -34829a3,73 -34829a4,2 -34829a5,20 -34829a6,20 -34829a7,21 -34829a8,10 -34829ab,16 -34829b0,3c -34829b1,9 -34829b2,80 -34829b3,3b -34829b4,25 -34829b5,29 -34829b6,9e -34829b7,7e -34829b8,34 -34829b9,a -34829bb,6 -34829bd,4a -34829bf,18 -34829c2,50 -34829c3,12 -34829c4,1 -34829c5,2a -34829c6,80 -34829c7,21 -34829c8,2 -34829c9,20 -34829ca,20 -34829cb,21 -34829cc,92 -34829cd,5 -34829cf,3 -34829d0,c -34829d1,3 -34829d2,73 -34829d3,85 -34829d6,30 -34829d7,21 -34829d8,82 -34829d9,5 -34829dc,3c -34829dd,8 -34829de,80 -34829df,40 -34829e0,25 -34829e1,8 -34829e2,20 -34829e4,85 -34829e5,9 -34829e7,2 -34829e8,11 -34829e9,20 -34829eb,3 -34829ec,34 -34829ed,a -34829ef,1 -34829f0,a5 -34829f1,a -34829f4,34 -34829f5,5 -34829f7,41 -34829f8,c -34829f9,1 -34829fa,bf -34829fb,73 -34829fc,2 -34829fd,20 -34829fe,20 -34829ff,21 -3482a00,92 -3482a01,5 -3482a03,3 -3482a04,8f -3482a05,bf -3482a07,10 -3482a08,8f -3482a09,b0 -3482a0b,14 -3482a0c,27 -3482a0d,bd -3482a0f,20 -3482a10,3 -3482a11,e0 -3482a13,8 -3482a18,8f -3482a19,a6 -3482a1b,30 -3482a1c,84 -3482a1d,c5 -3482a1f,4 -3482a20,8 -3482a21,10 -3482a22,a -3482a23,8e -3482a28,8f -3482a29,b9 -3482a2b,2c -3482a2c,87 -3482a2d,25 -3482a2f,4 -3482a30,8 -3482a31,10 -3482a32,a -3482a33,8e -3482a38,3c -3482a39,a -3482a3a,80 -3482a3b,40 -3482a3c,25 -3482a3d,4a -3482a3e,20 -3482a3f,8 -3482a40,8d -3482a41,4b -3482a43,c -3482a44,11 -3482a45,60 -3482a47,2 -3482a4c,95 -3482a4d,45 -3482a4f,4 -3482a50,3c -3482a51,a -3482a52,80 -3482a53,1e -3482a54,25 -3482a55,4a -3482a56,89 -3482a57,84 -3482a58,a5 -3482a59,40 -3482a5c,3c -3482a5d,9 -3482a5e,80 -3482a5f,40 -3482a60,25 -3482a61,29 -3482a62,20 -3482a63,18 -3482a64,81 -3482a65,2a -3482a67,3 -3482a68,5 -3482a69,40 -3482a6b,b -3482a6c,1 -3482a6d,2a -3482a6e,48 -3482a6f,20 -3482a70,81 -3482a71,28 -3482a74,34 -3482a75,a -3482a77,7f -3482a78,15 -3482a79,a -3482a7b,6 -3482a80,3c -3482a81,a -3482a82,80 -3482a83,12 -3482a84,25 -3482a85,4a -3482a86,a5 -3482a87,d0 -3482a88,85 -3482a89,48 -3482a8b,90 -3482a8c,21 -3482a8d,8 -3482a8f,1 -3482a90,a5 -3482a91,48 -3482a93,90 -3482a94,a1 -3482a95,20 -3482a98,3 -3482a99,e0 -3482a9b,8 -3482aa0,3c -3482aa1,8 -3482aa2,80 -3482aa3,40 -3482aa4,25 -3482aa5,8 -3482aa6,20 -3482aa7,8 -3482aa8,8d -3482aa9,9 -3482aab,c -3482aac,11 -3482aad,20 -3482aaf,2 -3482ab4,81 -3482ab5,3 -3482ab7,2 -3482ab9,3 -3482aba,f -3482abb,c3 -3482abd,61 -3482abe,40 -3482abf,26 -3482ac0,1 -3482ac1,1 -3482ac2,40 -3482ac3,23 -3482ac4,a0 -3482ac5,88 -3482ac6,8 -3482ac7,52 -3482ac8,3 -3482ac9,e0 -3482acb,8 -3482ad0,90 -3482ad1,45 -3482ad3,3 -3482ad4,3c -3482ad5,8 -3482ad6,80 -3482ad7,40 -3482ad8,25 -3482ad9,8 -3482ada,20 -3482adb,8 -3482adc,8d -3482add,9 -3482adf,c -3482ae0,11 -3482ae1,20 -3482ae3,2 -3482ae8,91 -3482ae9,5 -3482aeb,3 -3482aec,3 -3482aed,e0 -3482aef,8 -3482af4,8f -3482af5,a2 -3482af7,24 -3482af8,90 -3482af9,45 -3482afc,3c -3482afd,8 -3482afe,80 -3482aff,40 -3482b00,25 -3482b01,8 -3482b02,20 -3482b04,85 -3482b05,9 -3482b07,2 -3482b08,11 -3482b09,20 -3482b0b,4 -3482b0c,34 -3482b0d,a -3482b0f,1 -3482b10,a5 -3482b11,a -3482b14,10 -3482b17,18 -3482b18,34 -3482b19,5 -3482b1b,41 -3482b1c,3c -3482b1d,8 -3482b1e,80 -3482b1f,40 -3482b20,25 -3482b21,8 -3482b22,20 -3482b23,8 -3482b24,8d -3482b25,9 -3482b27,c -3482b28,11 -3482b29,20 -3482b2b,13 -3482b30,91 -3482b31,5 -3482b33,1 -3482b34,af -3482b35,a4 -3482b38,af -3482b39,a5 -3482b3b,4 -3482b3c,af -3482b3d,a6 -3482b3f,8 -3482b40,27 -3482b41,bd -3482b42,ff -3482b43,e8 -3482b44,af -3482b45,bf -3482b47,10 -3482b48,3c -3482b49,4 -3482b4a,80 -3482b4b,12 -3482b4c,24 -3482b4d,84 -3482b4e,a5 -3482b4f,d0 -3482b50,91 -3482b51,5 -3482b53,6 -3482b54,91 -3482b55,6 -3482b57,7 -3482b58,8d -3482b59,9 -3482b5b,8 -3482b5c,1 -3482b5d,20 -3482b5e,f8 -3482b5f,9 -3482b64,8f -3482b65,bf -3482b67,10 -3482b68,27 -3482b69,bd -3482b6b,18 -3482b6c,8f -3482b6d,a4 -3482b70,8f -3482b71,a5 -3482b73,4 -3482b74,8f -3482b75,a6 -3482b77,8 -3482b78,3 -3482b79,e0 -3482b7b,8 -3482b80,a0 -3482b81,e6 -3482b82,4 -3482b83,24 -3482b84,27 -3482b85,bd -3482b86,ff -3482b87,e0 -3482b88,af -3482b89,a2 -3482b8b,10 -3482b8c,af -3482b8d,a3 -3482b8f,14 -3482b90,af -3482b91,bf -3482b93,18 -3482b94,c -3482b95,10 -3482b96,a -3482b97,ed -3482b9c,8f -3482b9d,a2 -3482b9f,10 -3482ba0,8f -3482ba1,a3 -3482ba3,14 -3482ba4,8f -3482ba5,bf -3482ba7,18 -3482ba8,27 -3482ba9,bd -3482bab,20 -3482bac,3 -3482bad,e0 -3482baf,8 -3482bb4,27 -3482bb5,bd -3482bb6,ff -3482bb7,e8 -3482bb8,af -3482bb9,bf -3482bbb,10 -3482bbc,3c -3482bbd,8 -3482bbe,80 -3482bbf,40 -3482bc0,25 -3482bc1,8 -3482bc2,20 -3482bc3,8 -3482bc4,ad -3482bc8,ad -3482bcb,4 -3482bcc,ad -3482bcf,8 -3482bd0,ad -3482bd3,c -3482bd4,3c -3482bd5,8 -3482bd6,80 -3482bd7,1e -3482bd8,25 -3482bd9,8 -3482bda,aa -3482bdb,30 -3482bdc,81 -3482bdd,9 -3482bde,4 -3482bdf,24 -3482be0,11 -3482be1,20 -3482be3,2a -3482be9,9 -3482bea,f -3482beb,c3 -3482bec,1 -3482bed,21 -3482bee,20 -3482bef,26 -3482bf1,81 -3482bf2,20 -3482bf3,23 -3482bf4,8d -3482bf5,5 -3482bf6,4 -3482bf7,28 -3482bf8,c -3482bf9,10 -3482bfa,b -3482bfb,27 -3482c00,4 -3482c01,40 -3482c03,22 -3482c08,34 -3482c09,44 -3482c0c,c -3482c0d,10 -3482c0e,b -3482c0f,a2 -3482c14,10 -3482c15,60 -3482c17,c -3482c1c,3c -3482c1d,8 -3482c1e,80 -3482c1f,40 -3482c20,25 -3482c21,8 -3482c22,20 -3482c23,8 -3482c24,8c -3482c25,69 -3482c28,ad -3482c29,9 -3482c2c,8c -3482c2d,69 -3482c2f,4 -3482c30,ad -3482c31,9 -3482c33,4 -3482c34,8c -3482c35,69 -3482c37,8 -3482c38,ad -3482c39,9 -3482c3b,8 -3482c3c,34 -3482c3d,9 -3482c3f,1 -3482c40,ad -3482c41,9 -3482c43,c -3482c44,90 -3482c45,62 -3482c48,3c -3482c49,8 -3482c4a,80 -3482c4b,1e -3482c4c,25 -3482c4d,8 -3482c4e,aa -3482c4f,30 -3482c50,8d -3482c51,9 -3482c52,4 -3482c53,28 -3482c54,95 -3482c55,2a -3482c58,34 -3482c59,1 -3482c5b,a -3482c5c,15 -3482c5d,41 -3482c5f,6 -3482c64,95 -3482c65,2a -3482c67,1c -3482c68,31 -3482c69,4a -3482c6a,f0 -3482c6b,1f -3482c6d,2 -3482c6e,59 -3482c6f,40 -3482c70,1 -3482c71,4b -3482c72,50 -3482c73,25 -3482c74,a5 -3482c75,2a -3482c77,1c -3482c78,81 -3482c79,9 -3482c7a,4 -3482c7b,24 -3482c7c,5 -3482c7d,21 -3482c7f,2 -3482c85,2 -3482c86,10 -3482c87,23 -3482c88,a1 -3482c89,2 -3482c8a,4 -3482c8b,24 -3482c8c,8f -3482c8d,bf -3482c8f,10 -3482c90,27 -3482c91,bd -3482c93,18 -3482c94,3 -3482c95,e0 -3482c97,8 -3482c9c,27 -3482c9d,bd -3482c9e,ff -3482c9f,e8 -3482ca0,af -3482ca1,bf -3482ca3,10 -3482ca4,c -3482ca5,10 -3482ca6,b -3482ca7,35 -3482cac,24 -3482cad,1 -3482cae,ff -3482caf,ff -3482cb0,10 -3482cb1,41 -3482cb3,4 -3482cb8,34 -3482cb9,44 -3482cbc,c -3482cbd,10 -3482cbe,b -3482cbf,73 -3482cc4,8f -3482cc5,bf -3482cc7,10 -3482cc8,27 -3482cc9,bd -3482ccb,18 -3482ccc,3 -3482ccd,e0 -3482ccf,8 -3482cd4,3c -3482cd5,2 -3482cd6,80 -3482cd7,1d -3482cd8,24 -3482cd9,42 -3482cda,84 -3482cdb,a0 -3482cdc,94 -3482cdd,42 -3482cdf,a4 -3482ce0,34 -3482ce1,8 -3482ce4,34 -3482ce5,89 -3482ce8,94 -3482ce9,aa -3482cec,34 -3482ced,1 -3482cee,1 -3482cef,9c -3482cf0,15 -3482cf1,41 -3482cf3,8 -3482cf8,34 -3482cf9,8 -3482cfb,3 -3482cfc,94 -3482cfd,ab -3482cff,1c -3482d00,31 -3482d01,69 -3482d03,ff -3482d04,31 -3482d05,62 -3482d06,1f -3482d09,2 -3482d0a,12 -3482d0b,2 -3482d0c,10 -3482d0f,1f -3482d14,34 -3482d15,1 -3482d17,a -3482d18,15 -3482d19,41 -3482d1b,e -3482d20,94 -3482d21,ab -3482d23,1c -3482d24,34 -3482d25,1 -3482d27,10 -3482d28,14 -3482d29,41 -3482d2b,8 -3482d30,31 -3482d31,6c -3482d32,f -3482d33,e0 -3482d34,34 -3482d35,1 -3482d36,e -3482d37,a0 -3482d38,15 -3482d39,81 -3482d3b,4 -3482d40,24 -3482d41,2 -3482d42,ff -3482d43,ff -3482d44,10 -3482d47,1f -3482d4c,34 -3482d4d,8 -3482d4f,1 -3482d50,31 -3482d51,69 -3482d53,1f -3482d54,34 -3482d55,1 -3482d57,15 -3482d58,15 -3482d59,41 -3482d5b,c -3482d60,34 -3482d61,1 -3482d63,3e -3482d64,10 -3482d65,81 -3482d67,7 -3482d6c,34 -3482d6d,1 -3482d6f,42 -3482d70,10 -3482d71,81 -3482d73,4 -3482d78,24 -3482d79,2 -3482d7a,ff -3482d7b,ff -3482d7c,10 -3482d7f,11 -3482d84,34 -3482d85,8 -3482d87,2 -3482d88,90 -3482d89,a9 -3482d8a,1 -3482d8b,41 -3482d8c,34 -3482d8d,1 -3482d8e,1 -3482d8f,1a -3482d90,15 -3482d91,41 -3482d93,8 -3482d98,34 -3482d99,1 -3482d9b,3e -3482d9c,14 -3482d9d,41 -3482d9f,5 -3482da4,34 -3482da5,8 -3482da7,4 -3482da8,3c -3482da9,b -3482daa,80 -3482dab,12 -3482dac,25 -3482dad,6b -3482dae,a5 -3482daf,d0 -3482db0,81 -3482db1,62 -3482db2,13 -3482db3,97 -3482db5,2 -3482db6,12 -3482db9,48 -3482dba,10 -3482dbb,25 -3482dbd,2 -3482dbe,12 -3482dc1,49 -3482dc2,10 -3482dc3,25 -3482dc4,3 -3482dc5,e0 -3482dc7,8 -3482dcc,24 -3482dcd,2 -3482dce,ff -3482dcf,ff -3482dd0,3c -3482dd1,8 -3482dd2,80 -3482dd3,40 -3482dd4,25 -3482dd5,8 -3482dd6,1c -3482dd8,91 -3482dd9,9 -3482ddc,3c -3482ddd,8 -3482dde,80 -3482ddf,40 -3482de0,25 -3482de1,8 -3482de2,1c -3482de3,2 -3482de4,a1 -3482de5,9 -3482de8,30 -3482de9,89 -3482deb,ff -3482dec,34 -3482ded,1 -3482def,7f -3482df0,15 -3482df1,21 -3482df3,7 -3482df8,3c -3482df9,8 -3482dfa,80 -3482dfb,40 -3482dfc,25 -3482dfd,8 -3482dfe,1c -3482e00,91 -3482e01,b -3482e04,91 -3482e05,2 -3482e07,1 -3482e08,10 -3482e0b,10 -3482e10,3c -3482e11,8 -3482e12,80 -3482e13,40 -3482e14,25 -3482e15,8 -3482e16,f -3482e17,fc -3482e18,25 -3482e19,8 -3482e1b,4 -3482e1c,8d -3482e1d,9 -3482e20,11 -3482e21,20 -3482e23,17 -3482e29,9 -3482e2a,52 -3482e2b,2 -3482e2c,31 -3482e2d,4b -3482e2e,f8 -3482e31,b -3482e32,5a -3482e33,c2 -3482e34,3c -3482e35,c -3482e36,ff -3482e37,ff -3482e38,35 -3482e39,8c -3482e3a,7 -3482e3b,ff -3482e3c,1 -3482e3d,4c -3482e3e,50 -3482e3f,24 -3482e40,15 -3482e41,44 -3482e42,ff -3482e43,f5 -3482e48,31 -3482e49,22 -3482e4b,ff -3482e4c,3c -3482e4d,8 -3482e4e,80 -3482e4f,40 -3482e50,25 -3482e51,8 -3482e52,1c -3482e53,2 -3482e54,a1 -3482e55,b -3482e58,3c -3482e59,9 -3482e5a,80 -3482e5b,40 -3482e5c,25 -3482e5d,29 -3482e5e,20 -3482e60,3c -3482e61,c -3482e62,80 -3482e63,40 -3482e64,25 -3482e65,8c -3482e66,1c -3482e68,91 -3482e69,8c -3482e6c,11 -3482e6d,6c -3482e6f,4 -3482e70,a5 -3482e71,20 -3482e73,2 -3482e74,a1 -3482e75,2b -3482e77,2 -3482e78,a1 -3482e79,22 -3482e7b,3 -3482e7c,ad -3482e7d,24 -3482e7f,4 -3482e80,3 -3482e81,e0 -3482e83,8 -3482e88,27 -3482e89,bd -3482e8a,ff -3482e8b,e0 -3482e8c,af -3482e8d,b0 -3482e8f,10 -3482e90,af -3482e91,b1 -3482e93,14 -3482e94,af -3482e95,bf -3482e97,18 -3482e98,34 -3482e99,82 -3482e9c,34 -3482e9d,50 -3482ea0,26 -3482ea1,8 -3482ea2,ff -3482ea3,80 -3482ea4,5 -3482ea7,12 -3482eac,3c -3482ead,11 -3482eae,80 -3482eaf,40 -3482eb0,26 -3482eb1,31 -3482eb2,20 -3482eb3,50 -3482eb4,34 -3482eb5,9 -3482eb7,10 -3482eb8,1 -3482eb9,9 -3482ebb,18 -3482ebe,40 -3482ebf,12 -3482ec0,2 -3482ec1,28 -3482ec2,88 -3482ec3,21 -3482ec4,3c -3482ec5,4 -3482ec6,80 -3482ec7,12 -3482ec8,24 -3482ec9,84 -3482eca,a5 -3482ecb,d0 -3482ecc,36 -3482ecd,5 -3482ed0,8e -3482ed1,28 -3482ed3,c -3482ed4,1 -3482ed6,f8 -3482ed7,9 -3482edc,14 -3482edd,50 -3482ede,ff -3482edf,ef -3482ee4,36 -3482ee5,23 -3482ee8,10 -3482eeb,2 -3482ef0,34 -3482ef1,3 -3482ef4,8f -3482ef5,b0 -3482ef7,10 -3482ef8,8f -3482ef9,b1 -3482efb,14 -3482efc,8f -3482efd,bf -3482eff,18 -3482f00,27 -3482f01,bd -3482f03,20 -3482f04,3 -3482f05,e0 -3482f07,8 -3482f0c,8c -3482f0d,88 -3482f0e,1d -3482f0f,2c -3482f10,34 -3482f11,9 -3482f13,1 -3482f15,9 -3482f16,4e -3482f18,1 -3482f19,9 -3482f1a,10 -3482f1b,24 -3482f1c,10 -3482f1d,40 -3482f1f,24 -3482f24,94 -3482f25,ca -3482f26,2 -3482f27,dc -3482f28,3c -3482f29,b -3482f2a,80 -3482f2b,12 -3482f2c,25 -3482f2d,6b -3482f2e,a5 -3482f2f,d0 -3482f30,94 -3482f31,8c -3482f33,a4 -3482f34,34 -3482f35,1 -3482f37,3d -3482f38,11 -3482f39,81 -3482f3b,a -3482f41,8a -3482f42,60 -3482f43,21 -3482f44,91 -3482f45,8d -3482f46,1d -3482f47,28 -3482f48,15 -3482f49,a0 -3482f4b,19 -3482f50,34 -3482f51,d -3482f53,1 -3482f54,a1 -3482f55,8d -3482f56,1d -3482f57,28 -3482f58,25 -3482f59,4a -3482f5b,3 -3482f5c,10 -3482f5f,9 -3482f64,34 -3482f65,c -3482f67,1 -3482f68,1 -3482f69,4c -3482f6a,60 -3482f6b,4 -3482f6c,91 -3482f6d,6d -3482f6e,e -3482f6f,f2 -3482f70,1 -3482f71,ac -3482f72,70 -3482f73,24 -3482f74,15 -3482f75,c0 -3482f77,e -3482f7c,1 -3482f7d,ac -3482f7e,70 -3482f7f,25 -3482f80,a1 -3482f81,6e -3482f82,e -3482f83,f2 -3482f84,1 -3482f85,29 -3482f86,48 -3482f87,27 -3482f88,1 -3482f89,9 -3482f8a,40 -3482f8b,24 -3482f8c,ac -3482f8d,88 -3482f8e,1d -3482f8f,2c -3482f90,3c -3482f91,8 -3482f92,80 -3482f93,40 -3482f94,25 -3482f95,8 -3482f96,1d -3482f97,5 -3482f98,1 -3482f99,a -3482f9a,40 -3482f9b,21 -3482f9c,81 -3482f9d,8 -3482fa0,3c -3482fa1,9 -3482fa2,80 -3482fa3,40 -3482fa4,25 -3482fa5,29 -3482fa6,20 -3482fa7,18 -3482fa8,a1 -3482fa9,28 -3482fac,34 -3482fad,2 -3482fb0,3 -3482fb1,e0 -3482fb3,8 -3482fb8,3c -3482fb9,8 -3482fba,80 -3482fbb,40 -3482fbc,25 -3482fbd,8 -3482fbe,1d -3482fbf,3 -3482fc0,81 -3482fc1,8 -3482fc4,10 -3482fc7,22 -3482fcc,3c -3482fcd,8 -3482fce,80 -3482fcf,40 -3482fd0,25 -3482fd1,8 -3482fd2,1d -3482fd3,4 -3482fd4,81 -3482fd5,8 -3482fd8,10 -3482fdb,1d -3482fe0,34 -3482fe1,2 -3482fe3,ff -3482fe4,20 -3482fe5,e8 -3482fe6,ff -3482fe7,a6 -3482fe8,21 -3482fe9,8 -3482feb,61 -3482fec,10 -3482fef,18 -3482ff4,34 -3482ff5,8 -3482ff7,64 -3482ff8,10 -3482ffb,15 -3483000,3c -3483001,1 -3483002,80 -3483003,12 -3483004,24 -3483005,21 -3483006,a5 -3483007,d0 -3483008,80 -3483009,28 -348300a,e -348300b,de -348300c,35 -348300d,8 -348300f,1 -3483010,a0 -3483011,28 -3483012,e -3483013,de -3483014,34 -3483015,8 -3483017,68 -3483018,10 -348301b,d -3483020,3c -3483021,1 -3483022,80 -3483023,12 -3483024,24 -3483025,21 -3483026,a5 -3483027,d0 -3483028,80 -3483029,28 -348302a,e -348302b,de -348302c,35 -348302d,8 -348302f,4 -3483030,a0 -3483031,28 -3483032,e -3483033,de -3483034,34 -3483035,8 -3483037,6a -3483038,10 -348303b,5 -3483040,34 -3483041,5 -3483043,3 -3483044,34 -3483045,8 -3483047,6b -3483048,10 -348304b,1 -3483050,3c -3483051,9 -3483052,80 -3483053,40 -3483054,25 -3483055,29 -3483056,20 -3483057,18 -3483058,3c -3483059,a -348305a,80 -348305b,40 -348305c,25 -348305d,4a -348305e,20 -348305f,1b -3483060,81 -3483061,2c -3483064,11 -3483065,88 -3483067,b -3483068,21 -3483069,29 -348306b,1 -348306c,15 -348306d,2a -348306e,ff -348306f,fc -3483074,3c -3483075,9 -3483076,80 -3483077,40 -3483078,25 -3483079,29 -348307a,20 -348307b,17 -348307c,21 -348307d,29 -348307f,1 -3483080,11 -3483081,2a -3483083,4 -3483084,81 -3483085,2c -3483088,15 -3483089,80 -348308a,ff -348308b,fc -3483090,a1 -3483091,28 -3483094,3 -3483095,e0 -3483097,8 -348309d,60 -348309e,78 -348309f,21 -34830a0,81 -34830a1,ec -34830a2,e -34830a3,df -34830a4,31 -34830a5,8e -34830a7,80 -34830a8,11 -34830a9,c0 -34830ab,3 -34830ac,34 -34830ad,3 -34830af,5 -34830b0,3 -34830b1,e0 -34830b3,8 -34830b4,34 -34830b5,2 -34830b7,2 -34830b8,3 -34830b9,e0 -34830bb,8 -34830bd,60 -34830be,10 -34830bf,21 -34830c0,85 -34830c1,c2 -34830c3,a4 -34830c4,3c -34830c5,8 -34830c6,80 -34830c7,12 -34830c8,25 -34830c9,8 -34830ca,a5 -34830cb,d0 -34830cc,81 -34830cd,9 -34830ce,e -34830cf,df -34830d0,35 -34830d1,29 -34830d3,80 -34830d4,a1 -34830d5,9 -34830d6,e -34830d7,df -34830d8,3 -34830d9,e0 -34830db,8 -34830e0,27 -34830e1,bd -34830e2,ff -34830e3,f0 -34830e4,af -34830e5,bf -34830e7,4 -34830e8,c -34830e9,3 -34830ea,58 -34830eb,86 -34830f0,3c -34830f1,c -34830f2,80 -34830f3,12 -34830f4,25 -34830f5,8c -34830f6,a5 -34830f7,d0 -34830f8,85 -34830f9,8d -34830fa,f -34830fb,2e -34830fc,8d -34830fd,98 -34830ff,4 -3483100,13 -3483103,2 -3483104,34 -3483105,e -3483107,1 -3483108,34 -3483109,e -348310b,2 -348310c,1 -348310d,ae -348310e,68 -348310f,25 -3483110,a5 -3483111,8d -3483112,f -3483113,2e -3483114,8f -3483115,bf -3483117,4 -3483118,27 -3483119,bd -348311b,10 -348311c,3 -348311d,e0 -348311f,8 -3483124,84 -3483125,8e -3483127,1c -3483128,21 -3483129,cd -348312a,ff -348312b,ce -348312c,5 -348312d,a0 -348312f,10 -3483130,34 -3483131,2 -3483134,31 -3483135,a9 -3483137,7 -3483138,34 -3483139,a -348313b,1 -348313c,1 -348313d,2a -348313e,50 -348313f,4 -3483141,d -3483142,48 -3483143,c2 -3483144,3c -3483145,c -3483146,80 -3483147,12 -3483148,25 -3483149,8c -348314a,a5 -348314b,d0 -348314c,1 -348314d,89 -348314e,60 -348314f,20 -3483150,81 -3483151,8b -3483152,5 -3483153,b4 -3483154,1 -3483155,6a -3483156,58 -3483157,24 -3483158,34 -3483159,2 -348315c,11 -348315d,60 -348315f,4 -3483164,34 -3483165,d -3483167,26 -3483168,a4 -3483169,8d -348316b,1c -348316c,34 -348316d,2 -348316f,1 -3483170,3 -3483171,e0 -3483173,8 -3483178,84 -3483179,ae -348317b,1c -348317c,21 -348317d,cd -348317e,ff -348317f,ce -3483180,5 -3483181,a0 -3483183,b -3483184,34 -3483185,2 -3483188,31 -3483189,a9 -348318b,7 -348318c,34 -348318d,a -348318f,1 -3483190,1 -3483191,2a -3483192,50 -3483193,4 -3483195,d -3483196,48 -3483197,c2 -3483198,3c -3483199,c -348319a,80 -348319b,12 -348319c,25 -348319d,8c -348319e,a5 -348319f,d0 -34831a0,1 -34831a1,89 -34831a2,60 -34831a3,20 -34831a4,81 -34831a5,8b -34831a6,5 -34831a7,b4 -34831a8,1 -34831a9,6a -34831aa,58 -34831ab,25 -34831ac,a1 -34831ad,8b -34831ae,5 -34831af,b4 -34831b0,3 -34831b1,e0 -34831b3,8 -34831b8,27 -34831b9,bd -34831ba,ff -34831bb,f0 -34831bc,af -34831bd,bf -34831bf,8 -34831c0,28 -34831c1,81 -34831c3,32 -34831c4,10 -34831c5,20 -34831c7,3 -34831c9,80 -34831ca,10 -34831cb,21 -34831cc,3 -34831cd,20 -34831ce,f8 -34831cf,9 -34831d4,8f -34831d5,bf -34831d7,8 -34831d8,27 -34831d9,bd -34831db,10 -34831dc,3 -34831dd,e0 -34831df,8 -34831e4,3c -34831e5,8 -34831e6,80 -34831e7,1d -34831e8,25 -34831e9,8 -34831ea,84 -34831eb,a0 -34831ec,3c -34831ed,9 -34831ee,80 -34831ef,12 -34831f0,25 -34831f1,29 -34831f2,a5 -34831f3,d0 -34831f4,85 -34831f5,a -34831f7,a4 -34831f8,34 -34831f9,1 -34831fb,3e -34831fc,15 -34831fd,41 -34831ff,2 -3483200,81 -3483201,2b -3483202,13 -3483203,97 -3483204,21 -3483205,6a -3483207,2d -3483208,86 -3483209,b -348320b,1c -348320c,21 -348320d,6b -348320f,1 -3483210,34 -3483211,c -3483213,1 -3483214,1 -3483215,6c -3483216,60 -3483217,4 -3483218,34 -3483219,1 -348321b,1c -348321c,1 -348321d,41 -348321f,18 -3483222,68 -3483223,12 -3483224,1 -3483225,2d -3483226,70 -3483227,20 -3483228,8d -3483229,cf -348322b,e4 -348322c,1 -348322d,8f -348322e,10 -348322f,24 -3483230,3 -3483231,e0 -3483233,8 -3483238,3c -3483239,8 -348323a,80 -348323b,1d -348323c,25 -348323d,8 -348323e,84 -348323f,a0 -3483240,3c -3483241,9 -3483242,80 -3483243,12 -3483244,25 -3483245,29 -3483246,a5 -3483247,d0 -3483248,85 -3483249,a -348324b,a4 -348324c,34 -348324d,1 -348324f,3e -3483250,15 -3483251,41 -3483253,2 -3483254,81 -3483255,2b -3483256,13 -3483257,97 -3483258,21 -3483259,6a -348325b,2d -348325c,84 -348325d,8b -348325f,1c -3483260,21 -3483261,6b -3483263,1 -3483264,34 -3483265,c -3483267,1 -3483268,1 -3483269,6c -348326a,60 -348326b,4 -348326c,34 -348326d,1 -348326f,1c -3483270,1 -3483271,41 -3483273,18 -3483276,68 -3483277,12 -3483278,1 -3483279,2d -348327a,70 -348327b,20 -348327c,8d -348327d,cf -348327f,e4 -3483280,1 -3483281,8f -3483282,78 -3483283,25 -3483284,ad -3483285,cf -3483287,e4 -3483288,3 -3483289,e0 -348328b,8 -3483290,27 -3483291,bd -3483292,ff -3483293,e8 -3483294,af -3483295,bf -3483297,10 -3483298,3c -3483299,a -348329a,80 -348329b,1e -348329c,25 -348329d,4a -348329e,aa -348329f,30 -34832a0,81 -34832a1,48 -34832a2,6 -34832a3,6c -34832a4,31 -34832a5,8 -34832a7,20 -34832a8,15 -34832ab,23 -34832b0,3c -34832b1,a -34832b2,80 -34832b3,1d -34832b4,25 -34832b5,4a -34832b6,84 -34832b7,a0 -34832b8,8d -34832b9,48 -34832ba,7 -34832bb,94 -34832bc,15 -34832bf,1e -34832c0,3c -34832c1,9 -34832c2,80 -34832c3,40 -34832c4,25 -34832c5,29 -34832c6,20 -34832c7,1b -34832c8,34 -34832c9,a -34832cb,ff -34832cc,a1 -34832cd,2a -34832d0,3c -34832d1,9 -34832d2,80 -34832d3,40 -34832d4,25 -34832d5,29 -34832d6,20 -34832d7,18 -34832d8,24 -34832d9,a -34832da,ff -34832db,ff -34832dc,34 -34832dd,c -34832df,3 -34832e0,21 -34832e1,4a -34832e3,1 -34832e4,11 -34832e5,4c -34832e7,14 -34832e8,1 -34832e9,2a -34832ea,58 -34832eb,20 -34832ec,81 -34832ed,68 -34832f0,11 -34832f2,ff -34832f3,fb -34832f8,3c -34832f9,9 -34832fa,80 -34832fb,40 -34832fc,25 -34832fd,29 -34832fe,20 -34832ff,1b -3483300,a1 -3483301,2a -3483304,3c -3483305,9 -3483306,80 -3483307,1e -3483308,25 -3483309,29 -348330a,89 -348330b,84 -348330c,34 -348330d,a -348330f,1 -3483310,a5 -3483311,2a -3483314,3c -3483315,9 -3483316,80 -3483317,48 -3483318,34 -3483319,a -348331b,1 -348331c,ad -348331d,2a -348331e,1 -348331f,30 -3483320,3c -3483321,a -3483322,80 -3483323,1e -3483324,25 -3483325,4a -3483326,aa -3483327,30 -3483328,a1 -3483329,48 -348332a,4 -348332b,24 -348332c,ad -348332d,49 -348332e,4 -348332f,28 -3483330,c -3483331,10 -3483332,a -3483333,ed -3483338,8e -3483339,19 -348333b,4 -348333c,2 -348333e,20 -348333f,25 -3483340,8f -3483341,bf -3483343,10 -3483344,3 -3483345,e0 -3483347,8 -3483348,27 -3483349,bd -348334b,18 -348334c,27 -348334d,bd -348334e,ff -348334f,e8 -3483350,af -3483351,bf -3483353,10 -3483354,c -3483355,10 -3483356,17 -3483357,5 -348335c,3c -348335d,e -348335e,80 -348335f,12 -3483360,91 -3483361,ce -3483362,12 -3483363,12 -3483364,8f -3483365,bf -3483367,10 -3483368,3 -3483369,e0 -348336b,8 -348336c,27 -348336d,bd -348336f,18 -3483370,93 -3483371,19 -3483373,74 -3483374,34 -3483375,1 -3483377,ff -3483378,17 -3483379,21 -348337b,2 -3483380,34 -3483381,19 -3483383,2c -3483384,3 -3483385,e0 -3483387,8 -3483388,a7 -3483389,b9 -348338b,9a -348338c,93 -348338d,2c -348338f,74 -3483390,34 -3483391,1 -3483393,ff -3483394,15 -3483395,81 -3483397,2 -348339c,34 -348339d,c -348339f,2c -34833a0,3 -34833a1,e0 -34833a3,8 -34833a8,91 -34833a9,ae -34833ab,74 -34833ac,34 -34833ad,1 -34833af,ff -34833b0,15 -34833b1,c1 -34833b3,2 -34833b8,34 -34833b9,e -34833bb,2c -34833bc,3 -34833bd,e0 -34833bf,8 -34833c0,a7 -34833c1,ae -34833c3,9a -34833c4,91 -34833c5,cf -34833c7,74 -34833c8,34 -34833c9,1 -34833cb,ff -34833cc,15 -34833cd,e1 -34833cf,2 -34833d4,34 -34833d5,f -34833d7,2c -34833d8,3 -34833d9,e0 -34833db,8 -34833dc,a7 -34833dd,af -34833df,9a -34833e0,3c -34833e1,8 -34833e2,80 -34833e3,40 -34833e4,25 -34833e5,8 -34833e6,20 -34833e7,1c -34833e8,8e -34833e9,9 -34833eb,68 -34833ec,ad -34833ed,9 -34833f0,8e -34833f1,9 -34833f3,6c -34833f4,ad -34833f5,9 -34833f7,4 -34833f8,96 -34833f9,9 -34833fb,70 -34833fc,a5 -34833fd,9 -34833ff,8 -3483400,96 -3483401,9 -3483403,9c -3483404,a5 -3483405,9 -3483407,a -3483408,3 -3483409,e0 -348340b,8 -348340c,8e -348340d,e -348340f,4 -3483410,27 -3483411,bd -3483412,ff -3483413,e0 -3483414,af -3483415,b0 -3483417,10 -3483418,af -3483419,b1 -348341b,14 -348341c,af -348341d,bf -348341f,18 -3483420,3c -3483421,10 -3483422,80 -3483423,12 -3483424,26 -3483425,10 -3483426,a5 -3483427,d0 -3483428,3c -3483429,11 -348342a,80 -348342b,40 -348342c,26 -348342d,31 -348342e,20 -348342f,1c -3483430,8e -3483431,8 -3483433,4 -3483434,11 -3483437,5 -348343c,c -348343d,10 -348343e,d -348343f,2e -3483444,10 -3483447,3 -348344c,c -348344d,10 -348344e,d -348344f,41 -3483454,c -3483455,10 -3483456,d -3483457,21 -3483458,34 -3483459,4 -348345c,c -348345d,10 -348345e,d -348345f,21 -3483460,34 -3483461,4 -3483463,1 -3483464,c -3483465,10 -3483466,d -3483467,21 -3483468,34 -3483469,4 -348346b,2 -348346c,8f -348346d,b0 -348346f,10 -3483470,8f -3483471,b1 -3483473,14 -3483474,8f -3483475,bf -3483477,18 -3483478,27 -3483479,bd -348347b,20 -348347c,3 -348347d,e0 -348347f,8 -3483484,2 -3483485,4 -3483486,40 -3483487,21 -3483488,91 -3483489,9 -348348b,6c -348348c,34 -348348d,1 -348348f,ff -3483490,11 -3483491,21 -3483493,7 -3483498,2 -3483499,9 -348349a,48 -348349b,21 -348349c,91 -348349d,29 -348349f,74 -34834a0,34 -34834a1,1 -34834a3,2c -34834a4,11 -34834a5,21 -34834a7,2 -34834ac,a1 -34834ad,9 -34834af,69 -34834b0,3 -34834b1,e0 -34834b3,8 -34834b8,27 -34834b9,bd -34834ba,ff -34834bb,e8 -34834bc,af -34834bd,bf -34834bf,10 -34834c0,8e -34834c1,28 -34834c4,ae -34834c5,8 -34834c7,40 -34834c8,8e -34834c9,28 -34834cb,4 -34834cc,ae -34834cd,8 -34834cf,44 -34834d0,96 -34834d1,28 -34834d3,8 -34834d4,a6 -34834d5,8 -34834d7,48 -34834d8,a2 -34834da,f -34834db,33 -34834dc,92 -34834dd,8 -34834df,4a -34834e0,34 -34834e1,1 -34834e3,ff -34834e4,15 -34834e5,1 -34834e7,3 -34834ec,c -34834ed,10 -34834ee,d -34834ef,4f -34834f4,8f -34834f5,bf -34834f7,10 -34834f8,27 -34834f9,bd -34834fb,18 -34834fc,3 -34834fd,e0 -34834ff,8 -3483504,8e -3483505,8 -3483507,40 -3483508,ae -3483509,8 -348350b,68 -348350c,8e -348350d,8 -348350f,44 -3483510,ae -3483511,8 -3483513,6c -3483514,96 -3483515,8 -3483517,48 -3483518,a6 -3483519,8 -348351b,70 -348351c,92 -348351d,8 -348351f,68 -3483520,34 -3483521,1 -3483523,ff -3483524,15 -3483525,1 -3483527,3 -348352c,34 -348352d,8 -348352f,1 -3483530,a2 -3483531,8 -3483532,f -3483533,33 -3483534,3 -3483535,e0 -3483537,8 -348353c,27 -348353d,bd -348353e,ff -348353f,e8 -3483540,af -3483541,bf -3483543,10 -3483544,96 -3483545,8 -3483547,9c -3483548,31 -3483549,8 -348354b,40 -348354c,11 -348354f,5 -3483554,96 -3483555,8 -3483557,70 -3483558,31 -3483559,8 -348355a,ff -348355b,f -348355c,35 -348355d,8 -348355f,30 -3483560,a6 -3483561,8 -3483563,70 -3483564,92 -3483565,28 -3483567,1 -3483568,a2 -3483569,8 -348356b,69 -348356c,96 -348356d,28 -348356f,2 -3483570,a6 -3483571,8 -3483573,6a -3483574,8e -3483575,28 -3483577,4 -3483578,ae -3483579,8 -348357b,6c -348357c,c -348357d,10 -348357e,d -348357f,69 -3483580,34 -3483581,4 -3483584,c -3483585,10 -3483586,d -3483587,69 -3483588,34 -3483589,4 -348358b,1 -348358c,c -348358d,10 -348358e,d -348358f,69 -3483590,34 -3483591,4 -3483593,2 -3483594,8f -3483595,bf -3483597,10 -3483598,27 -3483599,bd -348359b,18 -348359c,3 -348359d,e0 -348359f,8 -34835a4,2 -34835a5,4 -34835a6,40 -34835a7,21 -34835a8,3c -34835a9,9 -34835aa,80 -34835ab,40 -34835ac,25 -34835ad,29 -34835ae,36 -34835af,50 -34835b0,91 -34835b1,a -34835b3,6c -34835b4,34 -34835b5,1 -34835b7,ff -34835b8,11 -34835b9,41 -34835bb,5 -34835c0,1 -34835c1,2a -34835c2,48 -34835c3,21 -34835c4,91 -34835c5,29 -34835c8,15 -34835c9,20 -34835cb,1c -34835d0,3c -34835d1,9 -34835d2,80 -34835d3,40 -34835d4,25 -34835d5,29 -34835d6,36 -34835d7,43 -34835d8,25 -34835d9,29 -34835db,1 -34835dc,91 -34835dd,2a -34835e0,11 -34835e1,40 -34835e3,13 -34835e8,2 -34835e9,a -34835ea,58 -34835eb,21 -34835ec,91 -34835ed,6b -34835ef,74 -34835f0,34 -34835f1,1 -34835f3,ff -34835f4,11 -34835f5,61 -34835f6,ff -34835f7,f8 -34835fc,92 -34835fd,c -34835ff,6c -3483600,11 -3483601,8a -3483602,ff -3483603,f5 -3483608,92 -3483609,c -348360b,6d -348360c,11 -348360d,8a -348360e,ff -348360f,f2 -3483614,92 -3483615,c -3483617,6e -3483618,11 -3483619,8a -348361a,ff -348361b,ef -3483620,a1 -3483621,b -3483623,69 -3483624,a1 -3483625,a -3483627,6c -3483628,10 -348362b,4 -3483630,34 -3483631,9 -3483633,ff -3483634,a1 -3483635,9 -3483637,69 -3483638,a1 -3483639,9 -348363b,6c -348363c,3 -348363d,e0 -348363f,8 -3483644,7 -3483645,9 -3483646,f -3483647,2 -3483648,3 -3483649,1 -348364a,d -348364b,b -3483651,1 -3483652,1 -3483653,1 -3483654,1 -3483655,1 -3483657,1 -3483658,1 -3483659,1 -348365a,1 -348365b,1 -348365d,1 -348365f,1 -3483660,1 -3483661,1 -3483662,1 -3483663,1 -3483664,1 -3483665,1 -3483666,1 -3483669,33 -348366a,8 -348366b,21 -348366c,20 -348366d,f -348366f,47 -3483670,15 -3483671,ea -3483673,e -3483674,3c -3483675,2 -3483676,80 -3483677,12 -3483678,8c -3483679,42 -348367a,a5 -348367b,d4 -348367c,8e -348367d,6f -348367f,a4 -3483681,f -3483682,7a -3483683,3 -3483684,14 -3483685,40 -3483687,5 -3483688,34 -3483689,2 -348368a,48 -348368b,30 -348368c,15 -348368d,e2 -348368f,7 -3483694,24 -3483695,19 -3483697,3 -3483698,10 -348369b,4 -348369c,34 -348369d,2 -348369e,63 -348369f,11 -34836a0,15 -34836a1,e2 -34836a3,2 -34836a8,24 -34836a9,19 -34836ab,3 -34836ac,3 -34836ad,e0 -34836af,8 -34836b4,8d -34836b5,ad -34836b6,8a -34836b7,a0 -34836b8,34 -34836b9,2 -34836ba,80 -34836bc,10 -34836bd,4d -34836bf,2 -34836c4,10 -34836c7,9 -34836c8,3c -34836c9,f -34836ca,80 -34836cb,1e -34836cc,25 -34836cd,ef -34836ce,84 -34836cf,a0 -34836d0,81 -34836d1,e2 -34836d2,1c -34836d3,bf -34836d4,30 -34836d5,42 -34836d7,1 -34836d8,10 -34836d9,40 -34836db,2 -34836e0,10 -34836e3,2 -34836e4,34 -34836e5,2 -34836e7,1 -34836e8,a1 -34836e9,e2 -34836ea,1c -34836eb,bf -34836ec,3 -34836ed,e0 -34836ef,8 -34836f5,33 -34836f6,8 -34836f7,21 -34836f8,3c -34836f9,2 -34836fa,80 -34836fb,12 -34836fc,8c -34836fd,42 -34836fe,a5 -34836ff,d4 -3483700,8e -3483701,6f -3483703,a4 -3483705,f -3483706,7a -3483707,3 -3483708,14 -3483709,40 -348370b,5 -348370c,34 -348370d,2 -348370e,48 -348370f,30 -3483710,15 -3483711,e2 -3483713,7 -3483718,24 -3483719,19 -348371b,3 -348371c,10 -348371f,4 -3483720,34 -3483721,2 -3483722,63 -3483723,11 -3483724,15 -3483725,e2 -3483727,2 -348372c,24 -348372d,19 -348372f,3 -3483730,3 -3483731,e0 -3483733,8 -3483738,34 -3483739,1 -348373b,18 -348373c,14 -348373d,81 -348373f,11 -3483744,14 -3483745,40 -3483747,f -348374c,3c -348374d,a -348374e,80 -348374f,12 -3483750,25 -3483751,4a -3483752,a5 -3483753,d0 -3483754,81 -3483755,48 -3483757,a6 -3483758,31 -3483759,8 -348375b,20 -348375c,11 -348375f,9 -3483760,34 -3483761,2 -3483764,34 -3483765,2 -3483767,1 -3483768,81 -3483769,48 -348376b,7b -348376c,34 -348376d,9 -348376f,7 -3483770,11 -3483771,9 -3483773,4 -3483774,34 -3483775,a -3483777,8 -3483778,11 -3483779,a -348377b,2 -3483780,34 -3483781,2 -3483784,3 -3483785,e0 -3483787,8 -348378c,80 -348378d,a8 -3483790,25 -3483791,9 -3483793,1 -3483794,15 -3483795,20 -3483797,e -348379c,27 -348379d,bd -348379e,ff -348379f,e8 -34837a0,af -34837a1,bf -34837a3,14 -34837a4,af -34837a5,a4 -34837a7,18 -34837a8,af -34837a9,a5 -34837ab,1c -34837ad,5 -34837ae,20 -34837af,25 -34837b0,24 -34837b1,a5 -34837b3,8 -34837b4,c -34837b5,1 -34837b6,5c -34837b7,c -34837b8,24 -34837b9,c6 -34837ba,ff -34837bb,f8 -34837bc,8f -34837bd,a4 -34837bf,18 -34837c0,8f -34837c1,a5 -34837c3,1c -34837c4,34 -34837c5,6 -34837c7,80 -34837c8,8f -34837c9,bf -34837cb,14 -34837cc,27 -34837cd,bd -34837cf,18 -34837d0,8 -34837d1,1 -34837d2,5c -34837d3,c -34837d8,a2 -34837d9,25 -34837db,21 -34837dc,3c -34837dd,10 -34837de,80 -34837df,40 -34837e0,26 -34837e1,10 -34837e2,17 -34837e3,fc -34837e4,26 -34837e5,10 -34837e7,4 -34837e8,8e -34837e9,a -34837ec,11 -34837ed,40 -34837ef,b -34837f5,a -34837f6,7c -34837f7,2 -34837f8,1 -34837f9,f1 -34837fa,78 -34837fb,20 -34837fc,31 -34837fd,58 -34837fe,ff -3483801,18 -3483802,c2 -3483803,2 -3483804,17 -3483807,3 -3483808,31 -3483809,59 -348380b,ff -348380c,81 -348380d,ea -3483810,3 -3483811,2a -3483812,c8 -3483813,25 -3483814,8 -3483815,10 -3483816,d -3483817,f9 -3483818,a1 -3483819,f9 -348381c,3 -348381d,e0 -348381f,8 -3483824,27 -3483825,bd -3483826,ff -3483827,f0 -3483828,af -3483829,bf -348382b,8 -348382c,c -348382d,10 -348382e,e -348382f,17 -3483830,22 -3483831,64 -3483832,ff -3483833,ff -3483834,34 -3483835,4a -3483838,8f -3483839,bf -348383b,8 -348383c,27 -348383d,bd -348383f,10 -3483840,27 -3483841,bd -3483842,ff -3483843,f0 -3483844,af -3483845,bf -3483847,8 -3483848,c -3483849,10 -348384a,e -348384b,17 -348384c,36 -348384d,44 -3483850,34 -3483851,50 -3483854,8f -3483855,bf -3483857,8 -3483858,27 -3483859,bd -348385b,10 -348385c,3c -348385d,8 -348385e,80 -348385f,40 -3483860,25 -3483861,8 -3483862,1c -3483863,2 -3483864,91 -3483865,8 -3483868,15 -348386b,7 -3483870,3c -3483871,8 -3483872,80 -3483873,12 -3483874,25 -3483875,8 -3483876,a5 -3483877,d0 -3483878,1 -3483879,4 -348387a,40 -348387b,20 -348387c,91 -348387d,2 -348387f,24 -3483880,10 -3483883,7 -3483889,8 -348388a,40 -348388b,c0 -348388c,3c -348388d,2 -348388e,80 -348388f,40 -3483890,24 -3483891,42 -3483892,1c -3483893,3 -3483894,1 -3483895,2 -3483896,40 -3483897,20 -3483898,1 -3483899,4 -348389a,40 -348389b,20 -348389c,91 -348389d,2 -34838a0,3 -34838a1,e0 -34838a3,8 -34838a8,8f -34838a9,b6 -34838ab,30 -34838ac,8f -34838ad,b7 -34838af,34 -34838b0,8f -34838b1,be -34838b3,38 -34838b4,3c -34838b5,8 -34838b6,80 -34838b7,40 -34838b8,25 -34838b9,8 -34838ba,1c -34838bb,2 -34838bc,a1 -34838c0,3 -34838c1,e0 -34838c3,8 -34b3000,27 -34b3001,bd -34b3002,ff -34b3003,e8 -34b3004,af -34b3005,bf -34b3007,14 -34b3008,c -34b3009,10 -34b300a,17 -34b300b,2c -34b300c,24 -34b300d,4 -34b300e,4 -34b3010,3c -34b3011,3 -34b3012,80 -34b3013,40 -34b3014,ac -34b3015,62 -34b3016,65 -34b3017,18 -34b3018,3c -34b3019,3 -34b301a,80 -34b301b,40 -34b301c,ac -34b301d,62 -34b301e,65 -34b301f,14 -34b3020,8f -34b3021,bf -34b3023,14 -34b3024,3 -34b3025,e0 -34b3027,8 -34b3028,27 -34b3029,bd -34b302b,18 -34b302c,80 -34b302d,82 -34b3030,10 -34b3031,40 -34b3033,26 -34b3034,24 -34b3035,87 -34b3037,1 -34b3038,3c -34b3039,3 -34b303a,80 -34b303b,40 -34b303c,8c -34b303d,68 -34b303e,65 -34b303f,18 -34b3040,25 -34b3041,8 -34b3042,4 -34b3044,3c -34b3045,3 -34b3046,80 -34b3047,40 -34b3048,8c -34b3049,63 -34b304a,65 -34b304b,14 -34b304d,68 -34b304e,20 -34b304f,2b -34b3050,10 -34b3051,80 -34b3053,1e -34b3054,3c -34b3055,a -34b3056,ff -34b3058,25 -34b3059,4a -34b305a,f -34b305b,ff -34b305c,30 -34b305d,c6 -34b305e,f -34b305f,ff -34b3060,24 -34b3061,b -34b3062,f0 -34b3064,3c -34b3065,9 -34b3066,80 -34b3067,40 -34b3068,10 -34b306b,7 -34b306c,25 -34b306d,29 -34b306e,64 -34b306f,cc -34b3071,68 -34b3072,20 -34b3073,2b -34b3074,54 -34b3075,80 -34b3077,5 -34b3078,a0 -34b3079,62 -34b307c,3c -34b307d,2 -34b307e,80 -34b307f,40 -34b3080,3 -34b3081,e0 -34b3083,8 -34b3084,ac -34b3085,43 -34b3086,65 -34b3087,14 -34b3088,a0 -34b3089,62 -34b308c,30 -34b308d,a2 -34b308e,f -34b308f,ff -34b3091,2 -34b3092,23 -34b3094,8c -34b3095,62 -34b3099,4a -34b309a,10 -34b309b,24 -34b309d,44 -34b309e,10 -34b309f,25 -34b30a1,4b -34b30a2,10 -34b30a3,24 -34b30a5,46 -34b30a6,10 -34b30a7,25 -34b30a8,ac -34b30a9,62 -34b30ac,95 -34b30ad,22 -34b30af,4 -34b30b1,a2 -34b30b2,28 -34b30b3,21 -34b30b4,24 -34b30b5,e7 -34b30b7,1 -34b30b8,80 -34b30b9,e2 -34b30ba,ff -34b30bb,ff -34b30bc,14 -34b30bd,40 -34b30be,ff -34b30bf,ec -34b30c0,24 -34b30c1,63 -34b30c3,4 -34b30c4,3c -34b30c5,2 -34b30c6,80 -34b30c7,40 -34b30c8,ac -34b30c9,43 -34b30ca,65 -34b30cb,14 -34b30cc,3 -34b30cd,e0 -34b30cf,8 -34b30d4,27 -34b30d5,bd -34b30d6,ff -34b30d7,b0 -34b30d8,af -34b30d9,bf -34b30db,4c -34b30dc,af -34b30dd,be -34b30df,48 -34b30e0,af -34b30e1,b7 -34b30e3,44 -34b30e4,af -34b30e5,b6 -34b30e7,40 -34b30e8,af -34b30e9,b5 -34b30eb,3c -34b30ec,af -34b30ed,b4 -34b30ef,38 -34b30f0,af -34b30f1,b3 -34b30f3,34 -34b30f4,af -34b30f5,b2 -34b30f7,30 -34b30f8,af -34b30f9,b1 -34b30fb,2c -34b30fc,af -34b30fd,b0 -34b30ff,28 -34b3101,80 -34b3102,a8 -34b3103,25 -34b3106,b0 -34b3107,25 -34b310a,90 -34b310b,25 -34b310c,3c -34b310d,14 -34b310e,80 -34b310f,40 -34b3110,26 -34b3111,94 -34b3112,64 -34b3113,cc -34b3114,3c -34b3115,1e -34b3116,80 -34b3117,40 -34b3118,3c -34b3119,13 -34b311a,80 -34b311b,40 -34b311c,3c -34b311d,17 -34b311e,38 -34b311f,e3 -34b3120,af -34b3121,b4 -34b3123,20 -34b3124,24 -34b3125,7 -34b3127,12 -34b3128,2 -34b3129,c0 -34b312a,30 -34b312b,25 -34b312c,2 -34b312d,80 -34b312e,28 -34b312f,25 -34b3130,c -34b3131,10 -34b3132,17 -34b3133,66 -34b3134,2 -34b3135,a0 -34b3136,20 -34b3137,25 -34b3138,8f -34b3139,c5 -34b313a,65 -34b313b,18 -34b313c,10 -34b313f,1f -34b3140,36 -34b3141,f1 -34b3142,8e -34b3143,39 -34b3144,24 -34b3145,42 -34b3146,ff -34b3147,e0 -34b3149,51 -34b314b,18 -34b314e,18 -34b314f,10 -34b3151,3 -34b3152,18 -34b3153,83 -34b3155,2 -34b3156,27 -34b3157,c3 -34b3159,64 -34b315a,18 -34b315b,23 -34b315c,14 -34b315d,72 -34b315f,16 -34b3160,24 -34b3161,b0 -34b3163,4 -34b3164,8c -34b3165,a7 -34b3169,7 -34b316a,3b -34b316b,2 -34b316d,51 -34b316f,18 -34b3172,30 -34b3173,10 -34b3175,6 -34b3176,30 -34b3177,83 -34b3179,c4 -34b317a,30 -34b317b,23 -34b317d,6 -34b317e,18 -34b317f,c0 -34b3181,66 -34b3182,30 -34b3183,21 -34b3185,6 -34b3186,30 -34b3187,40 -34b3188,96 -34b3189,83 -34b318b,6 -34b318c,af -34b318d,a3 -34b318f,18 -34b3190,96 -34b3191,83 -34b3193,4 -34b3194,af -34b3195,a3 -34b3197,14 -34b3198,8c -34b3199,a3 -34b319c,30 -34b319d,63 -34b319e,f -34b319f,ff -34b31a0,af -34b31a1,a3 -34b31a3,10 -34b31a4,30 -34b31a5,e7 -34b31a6,f -34b31a7,ff -34b31a9,46 -34b31aa,30 -34b31ab,23 -34b31ac,8f -34b31ad,a5 -34b31af,20 -34b31b0,c -34b31b1,10 -34b31b2,17 -34b31b3,fb -34b31b4,2 -34b31b5,a0 -34b31b6,20 -34b31b7,25 -34b31b8,2 -34b31ba,28 -34b31bb,25 -34b31bc,8e -34b31bd,62 -34b31be,65 -34b31bf,14 -34b31c1,a2 -34b31c2,10 -34b31c3,2b -34b31c4,54 -34b31c5,40 -34b31c6,ff -34b31c7,df -34b31c8,80 -34b31c9,a2 -34b31cc,26 -34b31cd,52 -34b31cf,1 -34b31d0,24 -34b31d1,2 -34b31d3,6 -34b31d4,16 -34b31d5,42 -34b31d6,ff -34b31d7,d3 -34b31d8,26 -34b31d9,d6 -34b31db,12 -34b31dc,3c -34b31dd,2 -34b31de,80 -34b31df,40 -34b31e0,8c -34b31e1,43 -34b31e2,65 -34b31e3,18 -34b31e4,3c -34b31e5,2 -34b31e6,80 -34b31e7,40 -34b31e8,ac -34b31e9,43 -34b31ea,65 -34b31eb,14 -34b31ec,8f -34b31ed,bf -34b31ef,4c -34b31f0,8f -34b31f1,be -34b31f3,48 -34b31f4,8f -34b31f5,b7 -34b31f7,44 -34b31f8,8f -34b31f9,b6 -34b31fb,40 -34b31fc,8f -34b31fd,b5 -34b31ff,3c -34b3200,8f -34b3201,b4 -34b3203,38 -34b3204,8f -34b3205,b3 -34b3207,34 -34b3208,8f -34b3209,b2 -34b320b,30 -34b320c,8f -34b320d,b1 -34b320f,2c -34b3210,8f -34b3211,b0 -34b3213,28 -34b3214,3 -34b3215,e0 -34b3217,8 -34b3218,27 -34b3219,bd -34b321b,50 -34b321c,3c -34b321d,2 -34b321e,80 -34b321f,40 -34b3220,8c -34b3221,42 -34b3222,65 -34b3223,c -34b3224,10 -34b3225,40 -34b3226,2 -34b3227,6e -34b3228,3c -34b3229,3 -34b322a,80 -34b322b,40 -34b322c,27 -34b322d,bd -34b322e,ff -34b322f,90 -34b3230,af -34b3231,bf -34b3233,6c -34b3234,af -34b3235,be -34b3237,68 -34b3238,af -34b3239,b7 -34b323b,64 -34b323c,af -34b323d,b6 -34b323f,60 -34b3240,af -34b3241,b5 -34b3243,5c -34b3244,af -34b3245,b4 -34b3247,58 -34b3248,af -34b3249,b3 -34b324b,54 -34b324c,af -34b324d,b2 -34b324f,50 -34b3250,af -34b3251,b1 -34b3253,4c -34b3254,af -34b3255,b0 -34b3257,48 -34b3258,8c -34b3259,82 -34b325b,4 -34b325c,8c -34b325d,63 -34b325e,65 -34b325f,44 -34b3260,24 -34b3261,45 -34b3263,8 -34b3264,ac -34b3265,85 -34b3267,8 -34b3268,3c -34b3269,5 -34b326a,de -34b326c,ac -34b326d,45 -34b3270,ac -34b3271,43 -34b3273,4 -34b3274,3c -34b3275,2 -34b3276,80 -34b3277,11 -34b3278,34 -34b3279,42 -34b327a,a5 -34b327b,d0 -34b327c,94 -34b327d,54 -34b327e,f -34b327f,2e -34b3280,3c -34b3281,2 -34b3282,80 -34b3283,40 -34b3284,8c -34b3285,42 -34b3286,65 -34b3287,1c -34b3288,50 -34b3289,40 -34b328b,5 -34b328c,24 -34b328d,8 -34b328f,1 -34b3290,32 -34b3291,88 -34b3293,1 -34b3295,14 -34b3296,a0 -34b3297,42 -34b3298,10 -34b329b,2 -34b329c,32 -34b329d,94 -34b329f,1 -34b32a0,24 -34b32a1,14 -34b32a3,1 -34b32a4,3c -34b32a5,2 -34b32a6,80 -34b32a7,40 -34b32a8,8c -34b32a9,55 -34b32aa,65 -34b32ab,28 -34b32ac,12 -34b32ad,a0 -34b32af,7 -34b32b0,2 -34b32b1,a0 -34b32b2,18 -34b32b3,25 -34b32b4,3c -34b32b5,2 -34b32b6,80 -34b32b7,40 -34b32b8,94 -34b32b9,43 -34b32ba,64 -34b32bb,d0 -34b32bd,3 -34b32be,10 -34b32bf,40 -34b32c1,43 -34b32c2,10 -34b32c3,21 -34b32c5,2 -34b32c6,10 -34b32c7,40 -34b32c8,24 -34b32c9,43 -34b32cb,2 -34b32cc,3c -34b32cd,2 -34b32ce,80 -34b32cf,40 -34b32d0,94 -34b32d1,42 -34b32d2,64 -34b32d3,d0 -34b32d5,2 -34b32d6,10 -34b32d7,c0 -34b32d8,24 -34b32d9,42 -34b32db,5e -34b32dd,43 -34b32de,10 -34b32df,21 -34b32e0,24 -34b32e1,3 -34b32e2,1 -34b32e3,40 -34b32e5,62 -34b32e6,18 -34b32e7,23 -34b32e9,3 -34b32ea,8f -34b32eb,c2 -34b32ec,2 -34b32ed,23 -34b32ee,88 -34b32ef,21 -34b32f1,11 -34b32f2,88 -34b32f3,43 -34b32f4,26 -34b32f5,23 -34b32f7,2 -34b32f8,af -34b32f9,a3 -34b32fb,38 -34b32fc,8c -34b32fd,83 -34b32ff,8 -34b3300,24 -34b3301,65 -34b3303,8 -34b3304,ac -34b3305,85 -34b3307,8 -34b3308,3c -34b3309,5 -34b330a,fc -34b330b,ff -34b330c,34 -34b330d,a5 -34b330e,ff -34b330f,ff -34b3310,ac -34b3311,65 -34b3314,3c -34b3315,5 -34b3316,ff -34b3317,fd -34b3318,34 -34b3319,a5 -34b331a,f6 -34b331b,fb -34b331c,ac -34b331d,65 -34b331f,4 -34b3320,8c -34b3321,83 -34b3323,8 -34b3324,24 -34b3325,65 -34b3327,8 -34b3328,ac -34b3329,85 -34b332b,8 -34b332c,3c -34b332d,5 -34b332e,fa -34b3330,ac -34b3331,65 -34b3334,24 -34b3335,5 -34b3337,d0 -34b3338,ac -34b3339,65 -34b333b,4 -34b333d,51 -34b333e,10 -34b333f,21 -34b3341,2 -34b3342,13 -34b3343,80 -34b3344,3c -34b3345,3 -34b3347,ff -34b3348,34 -34b3349,63 -34b334a,f0 -34b334d,43 -34b334e,10 -34b334f,24 -34b3350,3c -34b3351,5 -34b3352,e4 -34b3354,24 -34b3355,a5 -34b3356,3 -34b3357,b8 -34b3359,45 -34b335a,10 -34b335b,25 -34b335c,af -34b335d,a2 -34b335f,20 -34b3361,11 -34b3362,13 -34b3363,80 -34b3365,43 -34b3366,10 -34b3367,24 -34b3368,34 -34b3369,42 -34b336b,8 -34b336c,af -34b336d,a2 -34b336f,24 -34b3370,3c -34b3371,2 -34b3372,e1 -34b3374,af -34b3375,a2 -34b3377,28 -34b3378,af -34b3379,a0 -34b337b,2c -34b337c,3c -34b337d,2 -34b337e,f1 -34b3380,af -34b3381,a2 -34b3383,30 -34b3384,3c -34b3385,2 -34b3386,4 -34b3388,24 -34b3389,42 -34b338a,4 -34b338c,af -34b338d,a2 -34b338f,34 -34b3390,27 -34b3391,a2 -34b3393,20 -34b3394,27 -34b3395,a9 -34b3397,38 -34b3398,8c -34b3399,83 -34b339b,8 -34b339c,24 -34b339d,65 -34b339f,8 -34b33a0,ac -34b33a1,85 -34b33a3,8 -34b33a4,8c -34b33a5,47 -34b33a7,4 -34b33a8,8c -34b33a9,46 -34b33ac,ac -34b33ad,67 -34b33af,4 -34b33b0,24 -34b33b1,42 -34b33b3,8 -34b33b4,15 -34b33b5,22 -34b33b6,ff -34b33b7,f8 -34b33b8,ac -34b33b9,66 -34b33bd,80 -34b33be,80 -34b33bf,25 -34b33c0,8c -34b33c1,82 -34b33c3,8 -34b33c4,24 -34b33c5,43 -34b33c7,8 -34b33c8,ac -34b33c9,83 -34b33cb,8 -34b33cc,3c -34b33cd,3 -34b33ce,e7 -34b33d0,ac -34b33d1,43 -34b33d4,ac -34b33d5,40 -34b33d7,4 -34b33d8,8c -34b33d9,82 -34b33db,8 -34b33dc,24 -34b33dd,43 -34b33df,8 -34b33e0,ac -34b33e1,83 -34b33e3,8 -34b33e4,3c -34b33e5,3 -34b33e6,fc -34b33e7,11 -34b33e8,34 -34b33e9,63 -34b33ea,96 -34b33eb,23 -34b33ec,ac -34b33ed,43 -34b33f0,3c -34b33f1,3 -34b33f2,ff -34b33f3,2f -34b33f4,34 -34b33f5,63 -34b33f6,ff -34b33f7,ff -34b33f8,11 -34b33fb,4d -34b33fc,ac -34b33fd,43 -34b33ff,4 -34b3400,3c -34b3401,5 -34b3402,80 -34b3403,40 -34b3404,24 -34b3405,a5 -34b3406,64 -34b3407,ec -34b3408,94 -34b3409,a7 -34b340b,8 -34b340c,c -34b340d,10 -34b340e,17 -34b340f,66 -34b3412,30 -34b3413,25 -34b3414,3c -34b3415,2 -34b3416,80 -34b3417,40 -34b3418,8c -34b3419,42 -34b341a,65 -34b341b,10 -34b341c,18 -34b341d,40 -34b341f,44 -34b3420,3c -34b3421,2 -34b3422,80 -34b3423,40 -34b3424,3c -34b3425,13 -34b3426,80 -34b3427,40 -34b3428,26 -34b3429,73 -34b342a,64 -34b342b,30 -34b342e,90 -34b342f,25 -34b3430,3c -34b3431,1e -34b3432,80 -34b3433,40 -34b3434,3c -34b3435,16 -34b3436,80 -34b3437,40 -34b3438,26 -34b3439,d6 -34b343a,64 -34b343b,c -34b343c,24 -34b343d,42 -34b343e,64 -34b343f,1c -34b3440,af -34b3441,a2 -34b3443,3c -34b3444,3c -34b3445,2 -34b3446,80 -34b3447,40 -34b3448,24 -34b3449,42 -34b344a,64 -34b344b,ec -34b344c,af -34b344d,a2 -34b344f,40 -34b3450,3c -34b3451,17 -34b3452,80 -34b3453,40 -34b3454,8f -34b3455,c2 -34b3456,65 -34b3457,20 -34b3458,50 -34b3459,40 -34b345b,b -34b345c,92 -34b345d,62 -34b3460,92 -34b3461,63 -34b3464,3c -34b3465,2 -34b3466,80 -34b3467,11 -34b3468,34 -34b3469,42 -34b346a,a5 -34b346b,d0 -34b346d,43 -34b346e,10 -34b346f,21 -34b3470,90 -34b3471,42 -34b3473,a8 -34b3475,2 -34b3476,10 -34b3477,42 -34b3478,30 -34b3479,42 -34b347b,1 -34b347c,50 -34b347d,40 -34b347f,28 -34b3480,26 -34b3481,52 -34b3483,1 -34b3484,92 -34b3485,62 -34b3489,56 -34b348a,10 -34b348b,21 -34b348c,80 -34b348d,46 -34b3490,28 -34b3491,c2 -34b3493,3 -34b3494,54 -34b3495,40 -34b3497,22 -34b3498,26 -34b3499,52 -34b349b,1 -34b349c,24 -34b349d,c6 -34b349e,ff -34b349f,fd -34b34a1,6 -34b34a2,18 -34b34a3,40 -34b34a5,66 -34b34a6,18 -34b34a7,21 -34b34a8,8f -34b34a9,a2 -34b34ab,3c -34b34ad,62 -34b34ae,18 -34b34af,21 -34b34b0,90 -34b34b1,62 -34b34b5,2 -34b34b6,16 -34b34b8,90 -34b34b9,64 -34b34bb,2 -34b34bd,4 -34b34be,22 -34b34c1,44 -34b34c2,10 -34b34c3,25 -34b34c4,90 -34b34c5,63 -34b34c7,1 -34b34c9,3 -34b34ca,1c -34b34cd,43 -34b34ce,10 -34b34cf,25 -34b34d0,34 -34b34d1,42 -34b34d3,ff -34b34d4,8e -34b34d5,3 -34b34d7,8 -34b34d8,24 -34b34d9,64 -34b34db,8 -34b34dc,ae -34b34dd,4 -34b34df,8 -34b34e0,3c -34b34e1,4 -34b34e2,fa -34b34e4,ac -34b34e5,64 -34b34e8,ac -34b34e9,62 -34b34eb,4 -34b34ec,24 -34b34ed,2 -34b34ef,10 -34b34f0,af -34b34f1,a2 -34b34f3,18 -34b34f4,af -34b34f5,a2 -34b34f7,14 -34b34f9,12 -34b34fa,10 -34b34fb,c0 -34b34fd,52 -34b34fe,10 -34b34ff,21 -34b3501,2 -34b3502,10 -34b3503,40 -34b3504,24 -34b3505,42 -34b3507,4 -34b3508,af -34b3509,a2 -34b350b,10 -34b350c,8f -34b350d,a7 -34b350f,38 -34b3510,8f -34b3511,a5 -34b3513,40 -34b3514,c -34b3515,10 -34b3516,17 -34b3517,fb -34b3518,2 -34b351a,20 -34b351b,25 -34b351c,26 -34b351d,52 -34b351f,1 -34b3520,8e -34b3521,e2 -34b3522,65 -34b3523,10 -34b3524,2 -34b3525,42 -34b3526,10 -34b3527,2a -34b3528,14 -34b3529,40 -34b352a,ff -34b352b,ca -34b352c,26 -34b352d,73 -34b352f,c -34b3530,8e -34b3531,2 -34b3533,8 -34b3534,24 -34b3535,43 -34b3537,8 -34b3538,ae -34b3539,3 -34b353b,8 -34b353c,3c -34b353d,3 -34b353e,fa -34b3540,ac -34b3541,43 -34b3544,24 -34b3545,3 -34b3546,ff -34b3547,ff -34b3548,12 -34b3549,80 -34b354b,36 -34b354c,ac -34b354d,43 -34b354f,4 -34b3550,3c -34b3551,5 -34b3552,80 -34b3553,40 -34b3554,24 -34b3555,a5 -34b3556,64 -34b3557,fc -34b3558,94 -34b3559,a7 -34b355b,8 -34b355e,30 -34b355f,25 -34b3560,c -34b3561,10 -34b3562,17 -34b3563,66 -34b3564,2 -34b3566,20 -34b3567,25 -34b3568,3c -34b3569,2 -34b356a,80 -34b356b,40 -34b356c,8c -34b356d,42 -34b356e,65 -34b356f,10 -34b3570,18 -34b3571,40 -34b3572,1 -34b3573,99 -34b3574,3c -34b3575,2 -34b3576,80 -34b3577,40 -34b3578,3c -34b3579,13 -34b357a,80 -34b357b,40 -34b357c,26 -34b357d,73 -34b357e,64 -34b357f,30 -34b3582,90 -34b3583,25 -34b3584,3c -34b3585,17 -34b3586,80 -34b3587,40 -34b3588,3c -34b3589,14 -34b358a,80 -34b358b,40 -34b358c,26 -34b358d,94 -34b358e,64 -34b358f,c -34b3590,24 -34b3591,42 -34b3592,64 -34b3593,fc -34b3594,af -34b3595,a2 -34b3597,3c -34b3598,3c -34b3599,1e -34b359a,80 -34b359b,11 -34b359c,37 -34b359d,de -34b359e,a5 -34b359f,d0 -34b35a0,3c -34b35a1,16 -34b35a2,80 -34b35a3,40 -34b35a4,8e -34b35a5,e2 -34b35a6,65 -34b35a7,20 -34b35a8,10 -34b35a9,40 -34b35ab,8 -34b35ac,92 -34b35ad,62 -34b35b0,3 -34b35b1,c2 -34b35b2,10 -34b35b3,21 -34b35b4,90 -34b35b5,42 -34b35b7,a8 -34b35b9,2 -34b35ba,10 -34b35bb,42 -34b35bc,30 -34b35bd,42 -34b35bf,1 -34b35c0,50 -34b35c1,40 -34b35c3,14 -34b35c4,26 -34b35c5,52 -34b35c7,1 -34b35c8,92 -34b35c9,62 -34b35cd,54 -34b35ce,10 -34b35cf,21 -34b35d0,80 -34b35d1,46 -34b35d4,2c -34b35d5,c2 -34b35d7,3 -34b35d8,50 -34b35d9,40 -34b35db,e -34b35dc,26 -34b35dd,52 -34b35df,1 -34b35e0,24 -34b35e1,2 -34b35e3,10 -34b35e4,af -34b35e5,a2 -34b35e7,18 -34b35e8,af -34b35e9,a2 -34b35eb,14 -34b35ed,12 -34b35ee,10 -34b35ef,c0 -34b35f1,52 -34b35f2,10 -34b35f3,21 -34b35f5,2 -34b35f6,10 -34b35f7,40 -34b35f8,24 -34b35f9,42 -34b35fb,4 -34b35fc,af -34b35fd,a2 -34b35ff,10 -34b3600,8f -34b3601,a7 -34b3603,38 -34b3604,8f -34b3605,a5 -34b3607,3c -34b3608,c -34b3609,10 -34b360a,17 -34b360b,fb -34b360c,2 -34b360e,20 -34b360f,25 -34b3610,26 -34b3611,52 -34b3613,1 -34b3614,8e -34b3615,c2 -34b3616,65 -34b3617,10 -34b3618,2 -34b3619,42 -34b361a,10 -34b361b,2a -34b361c,14 -34b361d,40 -34b361e,ff -34b361f,e1 -34b3620,26 -34b3621,73 -34b3623,c -34b3624,3c -34b3625,2 -34b3626,80 -34b3627,40 -34b3628,8c -34b3629,42 -34b362a,65 -34b362b,10 -34b362c,18 -34b362d,40 -34b362f,10 -34b3630,26 -34b3631,31 -34b3633,14 -34b3634,3c -34b3635,12 -34b3636,80 -34b3637,40 -34b3638,26 -34b3639,52 -34b363a,64 -34b363b,32 -34b363c,24 -34b363d,14 -34b363f,5 -34b3642,98 -34b3643,25 -34b3644,3c -34b3645,16 -34b3646,80 -34b3647,40 -34b3648,2 -34b3649,80 -34b364a,30 -34b364b,25 -34b364c,2 -34b364d,20 -34b364e,28 -34b364f,25 -34b3650,c -34b3651,10 -34b3652,14 -34b3653,b -34b3654,2 -34b3655,40 -34b3656,20 -34b3657,25 -34b3658,26 -34b3659,73 -34b365b,1 -34b365c,26 -34b365d,52 -34b365f,c -34b3660,8e -34b3661,c2 -34b3662,65 -34b3663,10 -34b3664,2 -34b3665,62 -34b3666,10 -34b3667,2a -34b3668,14 -34b3669,40 -34b366a,ff -34b366b,f7 -34b366c,26 -34b366d,94 -34b366f,12 -34b3670,3c -34b3671,2 -34b3672,80 -34b3673,40 -34b3674,94 -34b3675,42 -34b3676,64 -34b3677,d0 -34b3679,2 -34b367a,10 -34b367b,c0 -34b367c,24 -34b367d,42 -34b367f,2 -34b3681,51 -34b3682,88 -34b3683,21 -34b3684,24 -34b3685,7 -34b3687,1 -34b3688,24 -34b3689,6 -34b368b,11 -34b368c,3c -34b368d,5 -34b368e,80 -34b368f,40 -34b3690,24 -34b3691,a5 -34b3692,64 -34b3693,dc -34b3694,c -34b3695,10 -34b3696,17 -34b3697,66 -34b3698,2 -34b369a,20 -34b369b,25 -34b369c,3c -34b369d,2 -34b369e,80 -34b369f,40 -34b36a0,8c -34b36a1,42 -34b36a2,65 -34b36a3,10 -34b36a4,18 -34b36a5,40 -34b36a7,2a -34b36a8,3c -34b36a9,1e -34b36aa,80 -34b36ab,11 -34b36ac,3c -34b36ad,13 -34b36ae,80 -34b36af,40 -34b36b0,26 -34b36b1,73 -34b36b2,64 -34b36b3,30 -34b36b4,24 -34b36b5,14 -34b36b7,5 -34b36ba,90 -34b36bb,25 -34b36bc,2 -34b36bd,60 -34b36be,b0 -34b36bf,25 -34b36c0,37 -34b36c1,de -34b36c2,a5 -34b36c3,d0 -34b36c4,3c -34b36c5,17 -34b36c6,80 -34b36c7,40 -34b36c9,12 -34b36ca,10 -34b36cb,40 -34b36cd,52 -34b36ce,10 -34b36cf,21 -34b36d1,2 -34b36d2,10 -34b36d3,80 -34b36d5,56 -34b36d6,10 -34b36d7,21 -34b36d8,80 -34b36d9,42 -34b36db,1 -34b36dc,4 -34b36dd,43 -34b36df,17 -34b36e0,26 -34b36e1,52 -34b36e3,1 -34b36e4,92 -34b36e5,62 -34b36e8,3 -34b36e9,c2 -34b36ea,10 -34b36eb,21 -34b36ec,90 -34b36ed,42 -34b36ef,bc -34b36f1,2 -34b36f2,1e -34b36f5,3 -34b36f6,1e -34b36f7,3 -34b36f8,28 -34b36f9,63 -34b36fb,a -34b36fc,50 -34b36fd,60 -34b36ff,1 -34b3700,24 -34b3701,2 -34b3703,9 -34b3704,24 -34b3705,3 -34b3706,30 -34b3708,a7 -34b3709,a3 -34b370b,20 -34b370d,40 -34b370e,18 -34b370f,25 -34b3711,2 -34b3712,16 -34b3715,2 -34b3716,16 -34b3717,3 -34b3718,4 -34b3719,42 -34b371b,1 -34b371e,18 -34b371f,25 -34b3720,24 -34b3721,63 -34b3723,30 -34b3724,a3 -34b3725,a3 -34b3727,20 -34b3728,2 -34b3729,80 -34b372a,30 -34b372b,25 -34b372c,2 -34b372d,20 -34b372e,28 -34b372f,25 -34b3730,c -34b3731,10 -34b3732,14 -34b3733,b -34b3734,27 -34b3735,a4 -34b3737,20 -34b3738,26 -34b3739,52 -34b373b,1 -34b373c,26 -34b373d,73 -34b373f,c -34b3740,8e -34b3741,e2 -34b3742,65 -34b3743,10 -34b3744,2 -34b3745,42 -34b3746,10 -34b3747,2a -34b3748,14 -34b3749,40 -34b374a,ff -34b374b,df -34b374c,26 -34b374d,94 -34b374f,12 -34b3750,26 -34b3751,3e -34b3753,12 -34b3754,24 -34b3755,7 -34b3757,1 -34b3758,24 -34b3759,6 -34b375b,e -34b375c,3c -34b375d,5 -34b375e,80 -34b375f,40 -34b3760,24 -34b3761,a5 -34b3762,64 -34b3763,dc -34b3764,c -34b3765,10 -34b3766,17 -34b3767,66 -34b3768,2 -34b376a,20 -34b376b,25 -34b376c,3c -34b376d,2 -34b376e,80 -34b376f,40 -34b3770,8c -34b3771,42 -34b3772,65 -34b3773,10 -34b3774,18 -34b3775,40 -34b3777,2d -34b3778,3c -34b3779,2 -34b377a,80 -34b377b,40 -34b377c,3c -34b377d,13 -34b377e,80 -34b377f,40 -34b3780,26 -34b3781,73 -34b3782,64 -34b3783,30 -34b3786,90 -34b3787,25 -34b3788,24 -34b3789,17 -34b378b,d -34b378c,2 -34b378d,60 -34b378e,a0 -34b378f,25 -34b3790,24 -34b3791,42 -34b3792,64 -34b3793,dc -34b3794,af -34b3795,a2 -34b3797,38 -34b3798,3c -34b3799,16 -34b379a,80 -34b379b,40 -34b379c,92 -34b379d,63 -34b37a0,50 -34b37a1,77 -34b37a3,1 -34b37a4,24 -34b37a5,3 -34b37a7,a -34b37a9,12 -34b37aa,10 -34b37ab,40 -34b37ad,52 -34b37ae,10 -34b37af,21 -34b37b1,2 -34b37b2,10 -34b37b3,80 -34b37b5,54 -34b37b6,10 -34b37b7,21 -34b37b8,90 -34b37b9,42 -34b37bb,1 -34b37bc,30 -34b37bd,42 -34b37bf,40 -34b37c0,50 -34b37c1,40 -34b37c3,16 -34b37c4,26 -34b37c5,52 -34b37c7,1 -34b37c8,3c -34b37c9,2 -34b37ca,80 -34b37cb,11 -34b37cc,34 -34b37cd,42 -34b37ce,a5 -34b37cf,d0 -34b37d1,43 -34b37d2,10 -34b37d3,21 -34b37d4,90 -34b37d5,42 -34b37d7,a8 -34b37d8,30 -34b37d9,42 -34b37db,1 -34b37dc,50 -34b37dd,40 -34b37df,f -34b37e0,26 -34b37e1,52 -34b37e3,1 -34b37e4,24 -34b37e5,2 -34b37e7,10 -34b37e8,af -34b37e9,a2 -34b37eb,18 -34b37ec,af -34b37ed,a2 -34b37ef,14 -34b37f1,12 -34b37f2,10 -34b37f3,c0 -34b37f5,52 -34b37f6,10 -34b37f7,21 -34b37f9,2 -34b37fa,10 -34b37fb,40 -34b37fc,24 -34b37fd,42 -34b37ff,4 -34b3800,af -34b3801,a2 -34b3803,10 -34b3804,3 -34b3805,c0 -34b3806,38 -34b3807,25 -34b380a,30 -34b380b,25 -34b380c,8f -34b380d,a5 -34b380f,38 -34b3810,c -34b3811,10 -34b3812,17 -34b3813,fb -34b3814,2 -34b3816,20 -34b3817,25 -34b3818,26 -34b3819,52 -34b381b,1 -34b381c,8e -34b381d,c2 -34b381e,65 -34b381f,10 -34b3820,2 -34b3821,42 -34b3822,10 -34b3823,2a -34b3824,14 -34b3825,40 -34b3826,ff -34b3827,dd -34b3828,26 -34b3829,73 -34b382b,c -34b382c,24 -34b382d,7 -34b382f,1 -34b3830,24 -34b3831,6 -34b3833,a -34b3834,3c -34b3835,5 -34b3836,80 -34b3837,40 -34b3838,24 -34b3839,a5 -34b383a,64 -34b383b,dc -34b383c,c -34b383d,10 -34b383e,17 -34b383f,66 -34b3840,2 -34b3842,20 -34b3843,25 -34b3844,3c -34b3845,2 -34b3846,80 -34b3847,40 -34b3848,8c -34b3849,42 -34b384a,65 -34b384b,10 -34b384c,58 -34b384d,40 -34b384f,29 -34b3850,26 -34b3851,3e -34b3853,24 -34b3856,90 -34b3857,25 -34b3858,3c -34b3859,13 -34b385a,80 -34b385b,40 -34b385c,26 -34b385d,73 -34b385e,64 -34b385f,30 -34b3860,3c -34b3861,16 -34b3862,80 -34b3863,11 -34b3864,3c -34b3865,17 -34b3866,80 -34b3867,40 -34b3868,26 -34b3869,f7 -34b386a,64 -34b386b,dc -34b386c,3c -34b386d,14 -34b386e,80 -34b386f,40 -34b3871,12 -34b3872,10 -34b3873,40 -34b3875,52 -34b3876,10 -34b3877,21 -34b3879,2 -34b387a,10 -34b387b,80 -34b387d,53 -34b387e,10 -34b387f,21 -34b3880,90 -34b3881,42 -34b3883,1 -34b3884,30 -34b3885,42 -34b3887,20 -34b3888,50 -34b3889,40 -34b388b,15 -34b388c,26 -34b388d,52 -34b388f,1 -34b3890,36 -34b3891,c2 -34b3892,a5 -34b3893,d0 -34b3894,8c -34b3895,42 -34b3897,a4 -34b3898,3c -34b3899,3 -34b389b,40 -34b389d,43 -34b389e,10 -34b389f,24 -34b38a0,50 -34b38a1,40 -34b38a3,f -34b38a4,26 -34b38a5,52 -34b38a7,1 -34b38a8,24 -34b38a9,2 -34b38ab,10 -34b38ac,af -34b38ad,a2 -34b38af,18 -34b38b0,af -34b38b1,a2 -34b38b3,14 -34b38b5,12 -34b38b6,10 -34b38b7,c0 -34b38b9,52 -34b38ba,10 -34b38bb,21 -34b38bd,2 -34b38be,10 -34b38bf,40 -34b38c0,24 -34b38c1,42 -34b38c3,4 -34b38c4,af -34b38c5,a2 -34b38c7,10 -34b38c8,3 -34b38c9,c0 -34b38ca,38 -34b38cb,25 -34b38ce,30 -34b38cf,25 -34b38d0,2 -34b38d1,e0 -34b38d2,28 -34b38d3,25 -34b38d4,c -34b38d5,10 -34b38d6,17 -34b38d7,fb -34b38d8,2 -34b38da,20 -34b38db,25 -34b38dc,26 -34b38dd,52 -34b38df,1 -34b38e0,8e -34b38e1,82 -34b38e2,65 -34b38e3,10 -34b38e4,2 -34b38e5,42 -34b38e6,10 -34b38e7,2a -34b38e8,14 -34b38e9,40 -34b38ea,ff -34b38eb,e2 -34b38ed,12 -34b38ee,10 -34b38ef,40 -34b38f0,26 -34b38f1,3e -34b38f3,24 -34b38f4,24 -34b38f5,7 -34b38f7,1 -34b38f8,24 -34b38f9,6 -34b38fb,10 -34b38fc,3c -34b38fd,5 -34b38fe,80 -34b38ff,40 -34b3900,24 -34b3901,a5 -34b3902,64 -34b3903,dc -34b3904,c -34b3905,10 -34b3906,17 -34b3907,66 -34b3908,2 -34b390a,20 -34b390b,25 -34b390c,3c -34b390d,2 -34b390e,80 -34b390f,40 -34b3910,8c -34b3911,42 -34b3912,65 -34b3913,10 -34b3914,18 -34b3915,40 -34b3917,2b -34b3918,3c -34b3919,13 -34b391a,80 -34b391b,40 -34b391c,26 -34b391d,73 -34b391e,64 -34b391f,30 -34b3922,90 -34b3923,25 -34b3924,2 -34b3925,60 -34b3926,a0 -34b3927,25 -34b3928,3c -34b3929,17 -34b392a,80 -34b392b,11 -34b392c,3c -34b392d,2 -34b392e,80 -34b392f,40 -34b3930,24 -34b3931,42 -34b3932,64 -34b3933,dc -34b3934,af -34b3935,a2 -34b3937,38 -34b3938,3c -34b3939,16 -34b393a,80 -34b393b,40 -34b393d,12 -34b393e,10 -34b393f,40 -34b3941,52 -34b3942,10 -34b3943,21 -34b3945,2 -34b3946,10 -34b3947,80 -34b3949,54 -34b394a,10 -34b394b,21 -34b394c,90 -34b394d,42 -34b394f,1 -34b3950,30 -34b3951,42 -34b3953,10 -34b3954,50 -34b3955,40 -34b3957,17 -34b3958,26 -34b3959,52 -34b395b,1 -34b395c,36 -34b395d,e2 -34b395e,a5 -34b395f,d0 -34b3960,92 -34b3961,63 -34b3965,43 -34b3966,10 -34b3967,21 -34b3968,90 -34b3969,42 -34b396b,a8 -34b396d,2 -34b396e,10 -34b396f,82 -34b3970,30 -34b3971,42 -34b3973,1 -34b3974,50 -34b3975,40 -34b3977,f -34b3978,26 -34b3979,52 -34b397b,1 -34b397c,24 -34b397d,2 -34b397f,10 -34b3980,af -34b3981,a2 -34b3983,18 -34b3984,af -34b3985,a2 -34b3987,14 -34b3989,12 -34b398a,10 -34b398b,c0 -34b398d,52 -34b398e,10 -34b398f,21 -34b3991,2 -34b3992,10 -34b3993,40 -34b3994,24 -34b3995,42 -34b3997,4 -34b3998,af -34b3999,a2 -34b399b,10 -34b399c,3 -34b399d,c0 -34b399e,38 -34b399f,25 -34b39a2,30 -34b39a3,25 -34b39a4,8f -34b39a5,a5 -34b39a7,38 -34b39a8,c -34b39a9,10 -34b39aa,17 -34b39ab,fb -34b39ac,2 -34b39ae,20 -34b39af,25 -34b39b0,26 -34b39b1,52 -34b39b3,1 -34b39b4,8e -34b39b5,c2 -34b39b6,65 -34b39b7,10 -34b39b8,2 -34b39b9,42 -34b39ba,10 -34b39bb,2a -34b39bc,14 -34b39bd,40 -34b39be,ff -34b39bf,df -34b39c0,26 -34b39c1,73 -34b39c3,c -34b39c4,26 -34b39c5,3e -34b39c7,36 -34b39c8,24 -34b39c9,7 -34b39cb,1 -34b39cc,24 -34b39cd,6 -34b39cf,f -34b39d0,3c -34b39d1,5 -34b39d2,80 -34b39d3,40 -34b39d4,24 -34b39d5,a5 -34b39d6,64 -34b39d7,dc -34b39d8,c -34b39d9,10 -34b39da,17 -34b39db,66 -34b39dc,2 -34b39de,20 -34b39df,25 -34b39e0,3c -34b39e1,2 -34b39e2,80 -34b39e3,40 -34b39e4,8c -34b39e5,42 -34b39e6,65 -34b39e7,10 -34b39e8,18 -34b39e9,40 -34b39eb,61 -34b39ec,3c -34b39ed,13 -34b39ee,80 -34b39ef,40 -34b39f0,26 -34b39f1,73 -34b39f2,64 -34b39f3,30 -34b39f6,90 -34b39f7,25 -34b39f8,2 -34b39f9,60 -34b39fa,a0 -34b39fb,25 -34b39fc,3c -34b39fd,17 -34b39fe,80 -34b39ff,11 -34b3a00,3c -34b3a01,2 -34b3a02,80 -34b3a03,40 -34b3a04,24 -34b3a05,42 -34b3a06,64 -34b3a07,dc -34b3a08,af -34b3a09,a2 -34b3a0b,38 -34b3a0c,3c -34b3a0d,16 -34b3a0e,80 -34b3a0f,40 -34b3a11,12 -34b3a12,10 -34b3a13,40 -34b3a15,52 -34b3a16,10 -34b3a17,21 -34b3a19,2 -34b3a1a,10 -34b3a1b,80 -34b3a1d,54 -34b3a1e,10 -34b3a1f,21 -34b3a20,90 -34b3a21,42 -34b3a23,1 -34b3a24,30 -34b3a25,42 -34b3a27,10 -34b3a28,50 -34b3a29,40 -34b3a2b,17 -34b3a2c,26 -34b3a2d,52 -34b3a2f,1 -34b3a30,36 -34b3a31,e2 -34b3a32,a5 -34b3a33,d0 -34b3a34,92 -34b3a35,63 -34b3a39,43 -34b3a3a,10 -34b3a3b,21 -34b3a3c,90 -34b3a3d,42 -34b3a3f,a8 -34b3a41,2 -34b3a42,10 -34b3a43,42 -34b3a44,30 -34b3a45,42 -34b3a47,1 -34b3a48,50 -34b3a49,40 -34b3a4b,f -34b3a4c,26 -34b3a4d,52 -34b3a4f,1 -34b3a50,24 -34b3a51,2 -34b3a53,10 -34b3a54,af -34b3a55,a2 -34b3a57,18 -34b3a58,af -34b3a59,a2 -34b3a5b,14 -34b3a5d,12 -34b3a5e,10 -34b3a5f,c0 -34b3a61,52 -34b3a62,10 -34b3a63,21 -34b3a65,2 -34b3a66,10 -34b3a67,40 -34b3a68,24 -34b3a69,42 -34b3a6b,4 -34b3a6c,af -34b3a6d,a2 -34b3a6f,10 -34b3a70,3 -34b3a71,c0 -34b3a72,38 -34b3a73,25 -34b3a76,30 -34b3a77,25 -34b3a78,8f -34b3a79,a5 -34b3a7b,38 -34b3a7c,c -34b3a7d,10 -34b3a7e,17 -34b3a7f,fb -34b3a80,2 -34b3a82,20 -34b3a83,25 -34b3a84,26 -34b3a85,52 -34b3a87,1 -34b3a88,8e -34b3a89,c2 -34b3a8a,65 -34b3a8b,10 -34b3a8c,2 -34b3a8d,42 -34b3a8e,10 -34b3a8f,2a -34b3a90,14 -34b3a91,40 -34b3a92,ff -34b3a93,df -34b3a94,26 -34b3a95,73 -34b3a97,c -34b3a98,12 -34b3a99,a0 -34b3a9b,35 -34b3a9c,3c -34b3a9d,2 -34b3a9e,80 -34b3a9f,40 -34b3aa0,8c -34b3aa1,42 -34b3aa2,65 -34b3aa3,10 -34b3aa4,18 -34b3aa5,40 -34b3aa7,32 -34b3aa8,3c -34b3aa9,13 -34b3aaa,80 -34b3aab,40 -34b3aac,26 -34b3aad,73 -34b3aae,64 -34b3aaf,30 -34b3ab0,24 -34b3ab1,14 -34b3ab3,5 -34b3ab6,90 -34b3ab7,25 -34b3ab8,3c -34b3ab9,17 -34b3aba,80 -34b3abb,40 -34b3abc,3c -34b3abd,16 -34b3abe,80 -34b3abf,40 -34b3ac0,26 -34b3ac1,d6 -34b3ac2,65 -34b3ac3,30 -34b3ac4,3c -34b3ac5,15 -34b3ac6,80 -34b3ac7,40 -34b3ac8,26 -34b3ac9,b5 -34b3aca,64 -34b3acc,3c -34b3acd,2 -34b3ace,80 -34b3acf,40 -34b3ad0,24 -34b3ad1,42 -34b3ad2,64 -34b3ad3,4 -34b3ad4,af -34b3ad5,a2 -34b3ad7,38 -34b3ad8,3c -34b3ad9,1e -34b3ada,80 -34b3adb,40 -34b3adc,8e -34b3add,e2 -34b3ade,65 -34b3adf,24 -34b3ae0,50 -34b3ae1,40 -34b3ae3,14 -34b3ae4,92 -34b3ae5,62 -34b3ae9,12 -34b3aea,10 -34b3aeb,40 -34b3aed,52 -34b3aee,10 -34b3aef,21 -34b3af1,2 -34b3af2,10 -34b3af3,80 -34b3af4,27 -34b3af5,c3 -34b3af6,64 -34b3af7,30 -34b3af9,43 -34b3afa,10 -34b3afb,21 -34b3afc,90 -34b3afd,42 -34b3aff,1 -34b3b00,30 -34b3b01,42 -34b3b03,10 -34b3b04,50 -34b3b05,40 -34b3b07,b -34b3b08,92 -34b3b09,62 -34b3b0c,92 -34b3b0d,63 -34b3b10,3c -34b3b11,2 -34b3b12,80 -34b3b13,11 -34b3b14,34 -34b3b15,42 -34b3b16,a5 -34b3b17,d0 -34b3b19,43 -34b3b1a,10 -34b3b1b,21 -34b3b1c,90 -34b3b1d,42 -34b3b1f,a8 -34b3b21,2 -34b3b22,10 -34b3b23,82 -34b3b24,30 -34b3b25,42 -34b3b27,1 -34b3b28,50 -34b3b29,40 -34b3b2b,b -34b3b2c,26 -34b3b2d,52 -34b3b2f,1 -34b3b30,92 -34b3b31,62 -34b3b35,56 -34b3b36,10 -34b3b37,21 -34b3b38,90 -34b3b39,42 -34b3b3c,14 -34b3b3d,40 -34b3b3f,2 -34b3b40,2 -34b3b41,a0 -34b3b42,20 -34b3b43,25 -34b3b44,8f -34b3b45,a4 -34b3b47,38 -34b3b48,2 -34b3b49,80 -34b3b4a,30 -34b3b4b,25 -34b3b4c,c -34b3b4d,10 -34b3b4e,14 -34b3b4f,b -34b3b50,26 -34b3b51,25 -34b3b53,48 -34b3b54,26 -34b3b55,52 -34b3b57,1 -34b3b58,26 -34b3b59,94 -34b3b5b,12 -34b3b5c,3c -34b3b5d,2 -34b3b5e,80 -34b3b5f,40 -34b3b60,8c -34b3b61,42 -34b3b62,65 -34b3b63,10 -34b3b64,2 -34b3b65,42 -34b3b66,10 -34b3b67,2a -34b3b68,14 -34b3b69,40 -34b3b6a,ff -34b3b6b,dc -34b3b6c,26 -34b3b6d,73 -34b3b6f,c -34b3b70,c -34b3b71,10 -34b3b72,14 -34b3b73,35 -34b3b74,2 -34b3b76,20 -34b3b77,25 -34b3b78,8e -34b3b79,2 -34b3b7b,8 -34b3b7c,24 -34b3b7d,43 -34b3b7f,8 -34b3b80,ae -34b3b81,3 -34b3b83,8 -34b3b84,3c -34b3b85,3 -34b3b86,e9 -34b3b88,ac -34b3b89,43 -34b3b8c,ac -34b3b8d,40 -34b3b8f,4 -34b3b90,8e -34b3b91,2 -34b3b93,8 -34b3b94,24 -34b3b95,43 -34b3b97,8 -34b3b98,ae -34b3b99,3 -34b3b9b,8 -34b3b9c,3c -34b3b9d,3 -34b3b9e,df -34b3ba0,ac -34b3ba1,43 -34b3ba4,ac -34b3ba5,40 -34b3ba7,4 -34b3ba8,8f -34b3ba9,bf -34b3bab,6c -34b3bac,8f -34b3bad,be -34b3baf,68 -34b3bb0,8f -34b3bb1,b7 -34b3bb3,64 -34b3bb4,8f -34b3bb5,b6 -34b3bb7,60 -34b3bb8,8f -34b3bb9,b5 -34b3bbb,5c -34b3bbc,8f -34b3bbd,b4 -34b3bbf,58 -34b3bc0,8f -34b3bc1,b3 -34b3bc3,54 -34b3bc4,8f -34b3bc5,b2 -34b3bc7,50 -34b3bc8,8f -34b3bc9,b1 -34b3bcb,4c -34b3bcc,8f -34b3bcd,b0 -34b3bcf,48 -34b3bd0,3 -34b3bd1,e0 -34b3bd3,8 -34b3bd4,27 -34b3bd5,bd -34b3bd7,70 -34b3bd8,10 -34b3bda,fe -34b3bdb,a5 -34b3bdc,26 -34b3bdd,31 -34b3bdf,14 -34b3be0,3 -34b3be1,e0 -34b3be3,8 -34b3be8,27 -34b3be9,bd -34b3bea,ff -34b3beb,e8 -34b3bec,af -34b3bed,bf -34b3bef,14 -34b3bf0,c -34b3bf1,10 -34b3bf2,17 -34b3bf3,27 -34b3bf8,c -34b3bf9,10 -34b3bfa,18 -34b3bfb,ae -34b3c00,c -34b3c01,10 -34b3c02,14 -34b3c08,8f -34b3c09,bf -34b3c0b,14 -34b3c0c,3 -34b3c0d,e0 -34b3c0f,8 -34b3c10,27 -34b3c11,bd -34b3c13,18 -34b3c14,3c -34b3c15,2 -34b3c16,80 -34b3c17,1c -34b3c18,34 -34b3c19,42 -34b3c1a,84 -34b3c1b,a0 -34b3c1c,3c -34b3c1d,3 -34b3c1f,1 -34b3c21,43 -34b3c22,10 -34b3c23,21 -34b3c24,94 -34b3c25,43 -34b3c26,9 -34b3c27,34 -34b3c28,24 -34b3c29,2 -34b3c2b,6 -34b3c2c,14 -34b3c2d,62 -34b3c2f,19 -34b3c30,3c -34b3c31,2 -34b3c32,80 -34b3c33,1c -34b3c34,34 -34b3c35,42 -34b3c36,84 -34b3c37,a0 -34b3c38,3c -34b3c39,3 -34b3c3b,1 -34b3c3d,43 -34b3c3e,10 -34b3c3f,21 -34b3c40,94 -34b3c41,42 -34b3c42,9 -34b3c43,48 -34b3c44,14 -34b3c45,40 -34b3c47,13 -34b3c48,3c -34b3c49,2 -34b3c4a,80 -34b3c4b,1c -34b3c4c,34 -34b3c4d,42 -34b3c4e,84 -34b3c4f,a0 -34b3c51,43 -34b3c52,10 -34b3c53,21 -34b3c54,94 -34b3c55,42 -34b3c56,9 -34b3c57,44 -34b3c58,14 -34b3c59,40 -34b3c5b,e -34b3c5c,3c -34b3c5d,2 -34b3c5e,80 -34b3c5f,1c -34b3c60,34 -34b3c61,42 -34b3c62,84 -34b3c63,a0 -34b3c64,84 -34b3c65,42 -34b3c67,14 -34b3c68,4 -34b3c69,41 -34b3c6b,a -34b3c6c,3c -34b3c6d,2 -34b3c6e,80 -34b3c6f,1c -34b3c70,27 -34b3c71,bd -34b3c72,ff -34b3c73,e8 -34b3c74,af -34b3c75,bf -34b3c77,14 -34b3c78,34 -34b3c79,42 -34b3c7a,84 -34b3c7b,a0 -34b3c7c,8c -34b3c7d,44 -34b3c80,c -34b3c81,10 -34b3c82,14 -34b3c83,87 -34b3c84,24 -34b3c85,84 -34b3c86,2 -34b3c87,a8 -34b3c88,8f -34b3c89,bf -34b3c8b,14 -34b3c8c,3 -34b3c8d,e0 -34b3c8f,8 -34b3c90,27 -34b3c91,bd -34b3c93,18 -34b3c94,3 -34b3c95,e0 -34b3c97,8 -34b3c9c,3c -34b3c9d,3 -34b3c9e,80 -34b3c9f,40 -34b3ca0,3c -34b3ca1,2 -34b3ca2,80 -34b3ca3,50 -34b3ca4,24 -34b3ca5,42 -34b3ca8,3 -34b3ca9,e0 -34b3cab,8 -34b3cac,ac -34b3cad,62 -34b3cae,65 -34b3caf,2c -34b3cb1,4 -34b3cb2,17 -34b3cb3,c3 -34b3cb5,2 -34b3cb6,1f -34b3cb7,2 -34b3cb9,83 -34b3cba,10 -34b3cbb,21 -34b3cbc,30 -34b3cbd,42 -34b3cbf,f -34b3cc1,43 -34b3cc2,10 -34b3cc3,23 -34b3cc4,10 -34b3cc5,40 -34b3cc7,3 -34b3cc8,3c -34b3cc9,3 -34b3cca,80 -34b3ccb,40 -34b3ccd,82 -34b3cce,20 -34b3ccf,23 -34b3cd0,24 -34b3cd1,84 -34b3cd3,10 -34b3cd4,8c -34b3cd5,62 -34b3cd6,65 -34b3cd7,2c -34b3cd9,44 -34b3cda,20 -34b3cdb,21 -34b3cdc,3 -34b3cdd,e0 -34b3cdf,8 -34b3ce0,ac -34b3ce1,64 -34b3ce2,65 -34b3ce3,2c -34b3ce4,27 -34b3ce5,bd -34b3ce6,ff -34b3ce7,e8 -34b3ce8,af -34b3ce9,bf -34b3ceb,14 -34b3cec,af -34b3ced,b0 -34b3cef,10 -34b3cf1,80 -34b3cf2,80 -34b3cf3,25 -34b3cf4,c -34b3cf5,10 -34b3cf6,17 -34b3cf7,2c -34b3cf8,8c -34b3cf9,84 -34b3cfb,8 -34b3cfc,ae -34b3cfd,2 -34b3d00,8e -34b3d01,6 -34b3d03,8 -34b3d05,40 -34b3d06,20 -34b3d07,25 -34b3d08,3c -34b3d09,2 -34b3d0a,80 -34b3d0c,24 -34b3d0d,42 -34b3d0e,d -34b3d0f,f0 -34b3d11,40 -34b3d12,f8 -34b3d13,9 -34b3d14,8e -34b3d15,5 -34b3d17,4 -34b3d18,8f -34b3d19,bf -34b3d1b,14 -34b3d1c,8f -34b3d1d,b0 -34b3d1f,10 -34b3d20,3 -34b3d21,e0 -34b3d23,8 -34b3d24,27 -34b3d25,bd -34b3d27,18 -34b3d28,ac -34b3d29,86 -34b3d2c,ac -34b3d2d,85 -34b3d2f,4 -34b3d30,ac -34b3d31,85 -34b3d33,8 -34b3d35,a6 -34b3d36,28 -34b3d37,21 -34b3d38,3 -34b3d39,e0 -34b3d3b,8 -34b3d3c,ac -34b3d3d,85 -34b3d3f,c -34b3d40,94 -34b3d41,82 -34b3d43,4 -34b3d44,94 -34b3d45,83 -34b3d47,6 -34b3d49,43 -34b3d4b,18 -34b3d4e,10 -34b3d4f,12 -34b3d50,90 -34b3d51,83 -34b3d53,c -34b3d59,43 -34b3d5b,18 -34b3d5e,10 -34b3d5f,12 -34b3d60,3 -34b3d61,e0 -34b3d63,8 -34b3d68,27 -34b3d69,bd -34b3d6a,ff -34b3d6b,e8 -34b3d6c,af -34b3d6d,bf -34b3d6f,14 -34b3d70,af -34b3d71,b0 -34b3d73,10 -34b3d74,c -34b3d75,10 -34b3d76,17 -34b3d77,50 -34b3d79,80 -34b3d7a,80 -34b3d7b,25 -34b3d7c,96 -34b3d7d,3 -34b3d7f,8 -34b3d81,62 -34b3d83,18 -34b3d86,10 -34b3d87,12 -34b3d88,8f -34b3d89,bf -34b3d8b,14 -34b3d8c,8f -34b3d8d,b0 -34b3d8f,10 -34b3d90,3 -34b3d91,e0 -34b3d93,8 -34b3d94,27 -34b3d95,bd -34b3d97,18 -34b3d98,27 -34b3d99,bd -34b3d9a,ff -34b3d9b,90 -34b3d9c,af -34b3d9d,bf -34b3d9f,6c -34b3da0,af -34b3da1,b7 -34b3da3,68 -34b3da4,af -34b3da5,b6 -34b3da7,64 -34b3da8,af -34b3da9,b5 -34b3dab,60 -34b3dac,af -34b3dad,b4 -34b3daf,5c -34b3db0,af -34b3db1,b3 -34b3db3,58 -34b3db4,af -34b3db5,b2 -34b3db7,54 -34b3db8,af -34b3db9,b1 -34b3dbb,50 -34b3dbc,af -34b3dbd,b0 -34b3dbf,4c -34b3dc1,80 -34b3dc2,80 -34b3dc3,25 -34b3dc5,a0 -34b3dc6,a8 -34b3dc7,25 -34b3dc9,c0 -34b3dca,b8 -34b3dcb,25 -34b3dcd,e0 -34b3dce,b0 -34b3dcf,25 -34b3dd0,90 -34b3dd1,b2 -34b3dd3,a -34b3dd5,12 -34b3dd6,95 -34b3dd7,40 -34b3dd8,3c -34b3dd9,2 -34b3ddb,e0 -34b3ddc,2 -34b3ddd,42 -34b3dde,90 -34b3ddf,24 -34b3de0,90 -34b3de1,b1 -34b3de3,b -34b3de4,2e -34b3de5,22 -34b3de7,2 -34b3de8,10 -34b3de9,40 -34b3deb,2 -34b3dec,2 -34b3ded,20 -34b3dee,98 -34b3def,25 -34b3df0,24 -34b3df1,13 -34b3df3,2 -34b3df4,32 -34b3df5,73 -34b3df7,ff -34b3df9,13 -34b3dfa,a4 -34b3dfb,c0 -34b3dfc,3c -34b3dfd,2 -34b3dff,18 -34b3e00,2 -34b3e01,82 -34b3e02,a0 -34b3e03,24 -34b3e04,2 -34b3e05,92 -34b3e06,a0 -34b3e07,25 -34b3e08,3c -34b3e09,2 -34b3e0a,fd -34b3e0c,2 -34b3e0d,82 -34b3e0e,10 -34b3e0f,25 -34b3e10,af -34b3e11,a2 -34b3e13,10 -34b3e14,c -34b3e15,10 -34b3e16,17 -34b3e17,50 -34b3e18,2 -34b3e19,a0 -34b3e1a,20 -34b3e1b,25 -34b3e1d,57 -34b3e1f,18 -34b3e22,10 -34b3e23,12 -34b3e24,8e -34b3e25,a3 -34b3e29,62 -34b3e2a,18 -34b3e2b,21 -34b3e2c,af -34b3e2d,a3 -34b3e2f,14 -34b3e30,3c -34b3e31,2 -34b3e32,f5 -34b3e34,2 -34b3e35,82 -34b3e36,a0 -34b3e37,25 -34b3e38,af -34b3e39,b4 -34b3e3b,18 -34b3e3c,3c -34b3e3d,2 -34b3e3e,7 -34b3e40,af -34b3e41,a2 -34b3e43,1c -34b3e44,3c -34b3e45,2 -34b3e46,e6 -34b3e48,af -34b3e49,a2 -34b3e4b,20 -34b3e4c,af -34b3e4d,a0 -34b3e4f,24 -34b3e50,3c -34b3e51,2 -34b3e52,f3 -34b3e54,af -34b3e55,a2 -34b3e57,28 -34b3e58,96 -34b3e59,a3 -34b3e5b,4 -34b3e5c,96 -34b3e5d,a7 -34b3e5f,6 -34b3e61,f6 -34b3e63,18 -34b3e66,38 -34b3e67,12 -34b3e68,24 -34b3e69,5 -34b3e6b,4 -34b3e6c,2 -34b3e6d,25 -34b3e6e,20 -34b3e6f,4 -34b3e71,67 -34b3e73,18 -34b3e76,10 -34b3e77,12 -34b3e78,24 -34b3e79,42 -34b3e7b,1 -34b3e81,44 -34b3e83,18 -34b3e86,10 -34b3e87,12 -34b3e88,24 -34b3e89,42 -34b3e8a,ff -34b3e8b,ff -34b3e8c,2 -34b3e8d,65 -34b3e8e,98 -34b3e8f,4 -34b3e90,16 -34b3e91,60 -34b3e93,2 -34b3e95,53 -34b3e97,1a -34b3e99,7 -34b3e9b,d -34b3e9e,10 -34b3e9f,12 -34b3ea0,24 -34b3ea1,42 -34b3ea2,ff -34b3ea3,ff -34b3ea5,2 -34b3ea6,13 -34b3ea8,3c -34b3ea9,5 -34b3eab,ff -34b3eac,34 -34b3ead,a5 -34b3eae,f0 -34b3eb1,45 -34b3eb2,10 -34b3eb3,24 -34b3eb5,64 -34b3eb7,18 -34b3eba,40 -34b3ebb,12 -34b3ebc,29 -34b3ebd,5 -34b3ebf,41 -34b3ec0,14 -34b3ec1,a0 -34b3ec3,b -34b3ec4,24 -34b3ec5,6 -34b3ec6,8 -34b3ec9,8 -34b3eca,2f -34b3ecb,c3 -34b3ecc,30 -34b3ecd,a5 -34b3ecf,3f -34b3ed1,a8 -34b3ed2,28 -34b3ed3,21 -34b3ed5,5 -34b3ed6,29 -34b3ed7,83 -34b3ed8,24 -34b3ed9,a6 -34b3eda,7 -34b3edb,ff -34b3edc,14 -34b3edd,a0 -34b3edf,2 -34b3ee1,c5 -34b3ee3,1a -34b3ee5,7 -34b3ee7,d -34b3eea,30 -34b3eeb,12 -34b3eec,30 -34b3eed,c6 -34b3eee,f -34b3eef,ff -34b3ef1,46 -34b3ef2,10 -34b3ef3,25 -34b3ef4,3c -34b3ef5,5 -34b3ef6,7 -34b3ef9,45 -34b3efa,10 -34b3efb,25 -34b3efc,af -34b3efd,a2 -34b3eff,2c -34b3f00,3c -34b3f01,2 -34b3f02,e7 -34b3f04,af -34b3f05,a2 -34b3f07,30 -34b3f08,af -34b3f09,a0 -34b3f0b,34 -34b3f0d,11 -34b3f0e,14 -34b3f0f,c0 -34b3f10,3c -34b3f11,5 -34b3f13,18 -34b3f15,45 -34b3f16,10 -34b3f17,24 -34b3f18,2e -34b3f19,31 -34b3f1b,2 -34b3f1c,16 -34b3f1d,20 -34b3f1f,2 -34b3f21,52 -34b3f22,10 -34b3f23,25 -34b3f24,24 -34b3f25,4 -34b3f27,10 -34b3f29,64 -34b3f2b,18 -34b3f2e,20 -34b3f2f,12 -34b3f30,24 -34b3f31,84 -34b3f33,3f -34b3f35,4 -34b3f36,97 -34b3f37,c3 -34b3f38,32 -34b3f39,52 -34b3f3b,3f -34b3f3c,2 -34b3f3d,44 -34b3f3e,90 -34b3f3f,21 -34b3f41,12 -34b3f42,90 -34b3f43,c0 -34b3f44,3c -34b3f45,4 -34b3f47,3 -34b3f48,34 -34b3f49,84 -34b3f4a,fe -34b3f4c,2 -34b3f4d,44 -34b3f4e,90 -34b3f4f,24 -34b3f50,2 -34b3f51,42 -34b3f52,90 -34b3f53,25 -34b3f54,3c -34b3f55,2 -34b3f56,f5 -34b3f58,2 -34b3f59,42 -34b3f5a,90 -34b3f5b,25 -34b3f5c,af -34b3f5d,b2 -34b3f5f,38 -34b3f60,af -34b3f61,a0 -34b3f63,3c -34b3f64,3c -34b3f65,2 -34b3f66,f2 -34b3f68,af -34b3f69,a2 -34b3f6b,40 -34b3f6c,24 -34b3f6d,62 -34b3f6e,3f -34b3f6f,ff -34b3f71,2 -34b3f72,13 -34b3f73,80 -34b3f74,3c -34b3f75,3 -34b3f77,ff -34b3f78,34 -34b3f79,63 -34b3f7a,f0 -34b3f7d,43 -34b3f7e,10 -34b3f7f,24 -34b3f80,24 -34b3f81,e7 -34b3f82,ff -34b3f83,ff -34b3f85,7 -34b3f86,38 -34b3f87,80 -34b3f88,30 -34b3f89,e7 -34b3f8a,f -34b3f8b,fc -34b3f8d,47 -34b3f8e,10 -34b3f8f,25 -34b3f90,af -34b3f91,a2 -34b3f93,44 -34b3f94,27 -34b3f95,a2 -34b3f97,10 -34b3f98,27 -34b3f99,a6 -34b3f9b,48 -34b3f9c,8e -34b3f9d,3 -34b3f9f,8 -34b3fa0,24 -34b3fa1,64 -34b3fa3,8 -34b3fa4,ae -34b3fa5,4 -34b3fa7,8 -34b3fa8,8c -34b3fa9,45 -34b3fab,4 -34b3fac,8c -34b3fad,44 -34b3fb0,ac -34b3fb1,65 -34b3fb3,4 -34b3fb4,24 -34b3fb5,42 -34b3fb7,8 -34b3fb8,14 -34b3fb9,46 -34b3fba,ff -34b3fbb,f8 -34b3fbc,ac -34b3fbd,64 -34b3fc0,8f -34b3fc1,bf -34b3fc3,6c -34b3fc4,8f -34b3fc5,b7 -34b3fc7,68 -34b3fc8,8f -34b3fc9,b6 -34b3fcb,64 -34b3fcc,8f -34b3fcd,b5 -34b3fcf,60 -34b3fd0,8f -34b3fd1,b4 -34b3fd3,5c -34b3fd4,8f -34b3fd5,b3 -34b3fd7,58 -34b3fd8,8f -34b3fd9,b2 -34b3fdb,54 -34b3fdc,8f -34b3fdd,b1 -34b3fdf,50 -34b3fe0,8f -34b3fe1,b0 -34b3fe3,4c -34b3fe4,3 -34b3fe5,e0 -34b3fe7,8 -34b3fe8,27 -34b3fe9,bd -34b3feb,70 -34b3fec,27 -34b3fed,bd -34b3fee,ff -34b3fef,e8 -34b3ff0,8f -34b3ff1,a8 -34b3ff3,28 -34b3ff4,8f -34b3ff5,a2 -34b3ff7,2c -34b3ff8,8f -34b3ff9,aa -34b3ffb,30 -34b3ffc,94 -34b3ffd,a9 -34b3fff,4 -34b4001,9 -34b4002,4a -34b4003,80 -34b4004,14 -34b4005,40 -34b4007,2 -34b4008,1 -34b4009,22 -34b400b,1a -34b400d,7 -34b400f,d -34b4012,48 -34b4013,12 -34b4014,94 -34b4015,a3 -34b4017,6 -34b4019,47 -34b401a,10 -34b401b,21 -34b401d,2 -34b401e,13 -34b401f,80 -34b4020,3c -34b4021,b -34b4023,ff -34b4024,35 -34b4025,6b -34b4026,f0 -34b4029,4b -34b402a,10 -34b402b,24 -34b402c,1 -34b402d,48 -34b402e,28 -34b402f,21 -34b4031,5 -34b4032,28 -34b4033,80 -34b4034,30 -34b4035,a5 -34b4036,f -34b4037,ff -34b4039,45 -34b403a,10 -34b403b,25 -34b403c,3c -34b403d,5 -34b403e,e4 -34b4041,45 -34b4042,10 -34b4043,25 -34b4044,af -34b4045,a2 -34b4049,7 -34b404a,3b -34b404b,80 -34b404d,eb -34b404e,38 -34b404f,24 -34b4051,8 -34b4052,40 -34b4053,80 -34b4054,31 -34b4055,8 -34b4056,f -34b4057,ff -34b4059,e8 -34b405a,38 -34b405b,25 -34b405c,af -34b405d,a7 -34b405f,4 -34b4060,3c -34b4061,2 -34b4062,e1 -34b4064,af -34b4065,a2 -34b4067,8 -34b4069,66 -34b406b,18 -34b406e,30 -34b406f,12 -34b4071,6 -34b4072,31 -34b4073,40 -34b4074,30 -34b4075,c6 -34b4076,ff -34b4077,ff -34b4078,af -34b4079,a6 -34b407b,c -34b407c,3c -34b407d,2 -34b407e,f1 -34b4080,af -34b4081,a2 -34b4083,10 -34b4085,3 -34b4086,1a -34b4087,80 -34b4088,15 -34b4089,40 -34b408b,2 -34b408d,6a -34b408f,1a -34b4091,7 -34b4093,d -34b4096,18 -34b4097,12 -34b4098,30 -34b4099,63 -34b409a,ff -34b409b,ff -34b409d,9 -34b409e,4c -34b40a1,69 -34b40a2,18 -34b40a3,25 -34b40a4,af -34b40a5,a3 -34b40a7,14 -34b40a8,3 -34b40a9,a0 -34b40aa,10 -34b40ab,25 -34b40ac,27 -34b40ad,a8 -34b40af,18 -34b40b0,8c -34b40b1,83 -34b40b3,8 -34b40b4,24 -34b40b5,65 -34b40b7,8 -34b40b8,ac -34b40b9,85 -34b40bb,8 -34b40bc,8c -34b40bd,47 -34b40bf,4 -34b40c0,8c -34b40c1,46 -34b40c4,ac -34b40c5,67 -34b40c7,4 -34b40c8,24 -34b40c9,42 -34b40cb,8 -34b40cc,14 -34b40cd,48 -34b40ce,ff -34b40cf,f8 -34b40d0,ac -34b40d1,66 -34b40d4,3 -34b40d5,e0 -34b40d7,8 -34b40d8,27 -34b40d9,bd -34b40db,18 -34b40dc,8c -34b40dd,82 -34b40df,8 -34b40e0,24 -34b40e1,43 -34b40e3,8 -34b40e4,ac -34b40e5,83 -34b40e7,8 -34b40e8,3c -34b40e9,3 -34b40ea,e7 -34b40ec,ac -34b40ed,43 -34b40f0,ac -34b40f1,40 -34b40f3,4 -34b40f4,8c -34b40f5,82 -34b40f7,8 -34b40f8,24 -34b40f9,43 -34b40fb,8 -34b40fc,ac -34b40fd,83 -34b40ff,8 -34b4100,3c -34b4101,3 -34b4102,d9 -34b4104,ac -34b4105,43 -34b4108,ac -34b4109,40 -34b410b,4 -34b410c,8c -34b410d,82 -34b410f,8 -34b4110,24 -34b4111,43 -34b4113,8 -34b4114,ac -34b4115,83 -34b4117,8 -34b4118,3c -34b4119,3 -34b411a,ed -34b411c,ac -34b411d,43 -34b4120,3c -34b4121,5 -34b4123,50 -34b4124,24 -34b4125,a3 -34b4126,3 -34b4127,c0 -34b4128,ac -34b4129,43 -34b412b,4 -34b412c,8c -34b412d,83 -34b412f,8 -34b4130,24 -34b4131,62 -34b4133,8 -34b4134,ac -34b4135,82 -34b4137,8 -34b4138,3c -34b4139,2 -34b413a,e3 -34b413c,24 -34b413d,46 -34b413e,1a -34b413f,1 -34b4140,ac -34b4141,66 -34b4144,24 -34b4145,6 -34b4147,30 -34b4148,ac -34b4149,66 -34b414b,4 -34b414c,8c -34b414d,83 -34b414f,8 -34b4150,24 -34b4151,66 -34b4153,8 -34b4154,ac -34b4155,86 -34b4157,8 -34b4158,24 -34b4159,46 -34b415a,18 -34b415b,1 -34b415c,ac -34b415d,66 -34b4160,24 -34b4161,6 -34b4163,c0 -34b4164,ac -34b4165,66 -34b4167,4 -34b4168,8c -34b4169,86 -34b416b,8 -34b416c,24 -34b416d,c3 -34b416f,8 -34b4170,ac -34b4171,83 -34b4173,8 -34b4174,3c -34b4175,3 -34b4176,e2 -34b4178,24 -34b4179,67 -34b417a,1e -34b417b,1 -34b417c,ac -34b417d,c7 -34b4180,ac -34b4181,c0 -34b4183,4 -34b4184,8c -34b4185,86 -34b4187,8 -34b4188,24 -34b4189,c7 -34b418b,8 -34b418c,ac -34b418d,87 -34b418f,8 -34b4190,24 -34b4191,67 -34b4192,1d -34b4194,ac -34b4195,c7 -34b4198,24 -34b4199,7 -34b419b,4 -34b419c,ac -34b419d,c7 -34b419f,4 -34b41a0,8c -34b41a1,86 -34b41a3,8 -34b41a4,24 -34b41a5,c7 -34b41a7,8 -34b41a8,ac -34b41a9,87 -34b41ab,8 -34b41ac,24 -34b41ad,47 -34b41ae,17 -34b41b0,ac -34b41b1,c7 -34b41b4,ac -34b41b5,c0 -34b41b7,4 -34b41b8,8c -34b41b9,86 -34b41bb,8 -34b41bc,24 -34b41bd,c7 -34b41bf,8 -34b41c0,ac -34b41c1,87 -34b41c3,8 -34b41c4,24 -34b41c5,47 -34b41c6,14 -34b41c7,2 -34b41c8,ac -34b41c9,c7 -34b41cc,24 -34b41cd,7 -34b41ce,c -34b41d0,ac -34b41d1,c7 -34b41d3,4 -34b41d4,8c -34b41d5,86 -34b41d7,8 -34b41d8,24 -34b41d9,c7 -34b41db,8 -34b41dc,ac -34b41dd,87 -34b41df,8 -34b41e0,24 -34b41e1,47 -34b41e2,d -34b41e3,1 -34b41e4,ac -34b41e5,c7 -34b41e8,ac -34b41e9,c0 -34b41eb,4 -34b41ec,8c -34b41ed,86 -34b41ef,8 -34b41f0,24 -34b41f1,c7 -34b41f3,8 -34b41f4,ac -34b41f5,87 -34b41f7,8 -34b41f8,24 -34b41f9,47 -34b41fa,c -34b41fc,ac -34b41fd,c7 -34b4200,ac -34b4201,c0 -34b4203,4 -34b4204,8c -34b4205,86 -34b4207,8 -34b4208,24 -34b4209,c7 -34b420b,8 -34b420c,ac -34b420d,87 -34b420f,8 -34b4210,24 -34b4211,47 -34b4212,f -34b4214,ac -34b4215,c7 -34b4218,ac -34b4219,c0 -34b421b,4 -34b421c,8c -34b421d,86 -34b421f,8 -34b4220,24 -34b4221,c7 -34b4223,8 -34b4224,ac -34b4225,87 -34b4227,8 -34b4228,24 -34b4229,47 -34b422a,10 -34b422b,1 -34b422c,ac -34b422d,c7 -34b4230,ac -34b4231,c0 -34b4233,4 -34b4234,8c -34b4235,86 -34b4237,8 -34b4238,24 -34b4239,c7 -34b423b,8 -34b423c,ac -34b423d,87 -34b423f,8 -34b4240,24 -34b4241,47 -34b4242,8 -34b4244,ac -34b4245,c7 -34b4248,ac -34b4249,c0 -34b424b,4 -34b424c,8c -34b424d,86 -34b424f,8 -34b4250,24 -34b4251,c7 -34b4253,8 -34b4254,ac -34b4255,87 -34b4257,8 -34b4258,24 -34b4259,47 -34b425a,a -34b425b,1 -34b425c,ac -34b425d,c7 -34b4260,ac -34b4261,c0 -34b4263,4 -34b4264,8c -34b4265,86 -34b4267,8 -34b4268,24 -34b4269,c7 -34b426b,8 -34b426c,ac -34b426d,87 -34b426f,8 -34b4270,24 -34b4271,63 -34b4273,1c -34b4274,ac -34b4275,c3 -34b4278,24 -34b4279,a5 -34b427a,42 -34b427b,40 -34b427c,ac -34b427d,c5 -34b427f,4 -34b4280,8c -34b4281,83 -34b4283,8 -34b4284,24 -34b4285,65 -34b4287,8 -34b4288,ac -34b4289,85 -34b428b,8 -34b428c,24 -34b428d,42 -34b428e,12 -34b428f,1 -34b4290,ac -34b4291,62 -34b4294,24 -34b4295,2 -34b4296,20 -34b4298,ac -34b4299,62 -34b429b,4 -34b429c,8c -34b429d,82 -34b429f,8 -34b42a0,24 -34b42a1,43 -34b42a3,8 -34b42a4,ac -34b42a5,83 -34b42a7,8 -34b42a8,3c -34b42a9,3 -34b42aa,df -34b42ac,ac -34b42ad,43 -34b42b0,3 -34b42b1,e0 -34b42b3,8 -34b42b4,ac -34b42b5,40 -34b42b7,4 -34b42b8,27 -34b42b9,bd -34b42ba,ff -34b42bb,c8 -34b42bc,af -34b42bd,bf -34b42bf,34 -34b42c0,af -34b42c1,b1 -34b42c3,30 -34b42c4,af -34b42c5,b0 -34b42c7,2c -34b42c8,af -34b42c9,a0 -34b42cb,10 -34b42cc,3c -34b42cd,2 -34b42ce,1 -34b42cf,a0 -34b42d0,24 -34b42d1,42 -34b42d2,20 -34b42d4,af -34b42d5,a2 -34b42d7,14 -34b42d8,3c -34b42d9,10 -34b42db,3 -34b42dc,36 -34b42dd,2 -34b42de,95 -34b42df,c0 -34b42e0,af -34b42e1,a2 -34b42e3,18 -34b42e4,c -34b42e5,10 -34b42e6,17 -34b42e7,39 -34b42e8,27 -34b42e9,a4 -34b42eb,10 -34b42ec,af -34b42ed,a0 -34b42ef,1c -34b42f0,3c -34b42f1,2 -34b42f3,84 -34b42f4,24 -34b42f5,42 -34b42f6,60 -34b42f8,af -34b42f9,a2 -34b42fb,20 -34b42fc,34 -34b42fd,2 -34b42fe,b4 -34b4300,af -34b4301,a2 -34b4303,24 -34b4304,c -34b4305,10 -34b4306,17 -34b4307,39 -34b4308,27 -34b4309,a4 -34b430b,1c -34b430c,8f -34b430d,a2 -34b430f,10 -34b4310,26 -34b4311,10 -34b4312,a3 -34b4315,50 -34b4316,80 -34b4317,21 -34b4318,3c -34b4319,3 -34b431a,80 -34b431b,40 -34b431c,ac -34b431d,70 -34b431e,64 -34b431f,fc -34b4320,24 -34b4321,42 -34b4322,29 -34b4323,80 -34b4324,3c -34b4325,3 -34b4326,80 -34b4327,40 -34b4328,ac -34b4329,62 -34b432a,64 -34b432b,ec -34b432c,3c -34b432d,2 -34b432e,80 -34b432f,40 -34b4330,8f -34b4331,a3 -34b4333,1c -34b4334,ac -34b4335,43 -34b4336,64 -34b4337,dc -34b4338,3c -34b4339,11 -34b433a,80 -34b433b,40 -34b433c,c -34b433d,10 -34b433e,17 -34b433f,5a -34b4340,26 -34b4341,24 -34b4342,64 -34b4343,cc -34b4345,40 -34b4346,80 -34b4347,25 -34b4348,c -34b4349,10 -34b434a,17 -34b434b,2c -34b434d,40 -34b434e,20 -34b434f,25 -34b4351,10 -34b4352,4f -34b4353,c2 -34b4354,1 -34b4355,30 -34b4356,48 -34b4357,21 -34b4358,2a -34b4359,10 -34b435b,2 -34b435c,16 -34b435f,18 -34b4360,ae -34b4361,22 -34b4362,64 -34b4363,cc -34b4365,9 -34b4366,48 -34b4367,43 -34b4368,3c -34b4369,3 -34b436a,80 -34b436b,40 -34b436c,24 -34b436d,63 -34b436e,65 -34b436f,50 -34b4372,20 -34b4373,25 -34b4376,30 -34b4377,25 -34b4378,2 -34b4379,20 -34b437a,40 -34b437b,25 -34b437c,24 -34b437d,7 -34b437e,ff -34b437f,f0 -34b4380,8d -34b4381,5 -34b4382,64 -34b4383,cc -34b4385,a4 -34b4386,28 -34b4387,21 -34b4388,90 -34b4389,62 -34b438d,2 -34b438e,11 -34b438f,2 -34b4391,47 -34b4392,10 -34b4393,25 -34b4394,a0 -34b4395,a2 -34b4398,8d -34b4399,2 -34b439a,64 -34b439b,cc -34b439d,44 -34b439e,10 -34b439f,21 -34b43a0,90 -34b43a1,65 -34b43a5,a7 -34b43a6,28 -34b43a7,25 -34b43a8,a0 -34b43a9,45 -34b43ab,1 -34b43ac,24 -34b43ad,c6 -34b43af,1 -34b43b0,24 -34b43b1,63 -34b43b3,1 -34b43b5,c9 -34b43b6,10 -34b43b7,2a -34b43b8,14 -34b43b9,40 -34b43ba,ff -34b43bb,f1 -34b43bc,24 -34b43bd,84 -34b43bf,2 -34b43c0,c -34b43c1,10 -34b43c2,17 -34b43c3,2c -34b43c4,24 -34b43c5,4 -34b43c6,1 -34b43c8,3c -34b43c9,4 -34b43ca,80 -34b43cb,40 -34b43cc,24 -34b43cd,3 -34b43ce,1 -34b43d0,ac -34b43d1,83 -34b43d2,65 -34b43d3,40 -34b43d4,24 -34b43d5,84 -34b43d6,65 -34b43d7,40 -34b43d8,ac -34b43d9,82 -34b43db,4 -34b43dc,ac -34b43dd,82 -34b43df,8 -34b43e0,24 -34b43e1,42 -34b43e2,1 -34b43e4,c -34b43e5,10 -34b43e6,18 -34b43e7,37 -34b43e8,ac -34b43e9,82 -34b43eb,c -34b43ec,8f -34b43ed,bf -34b43ef,34 -34b43f0,8f -34b43f1,b1 -34b43f3,30 -34b43f4,8f -34b43f5,b0 -34b43f7,2c -34b43f8,3 -34b43f9,e0 -34b43fb,8 -34b43fc,27 -34b43fd,bd -34b43ff,38 -34b4400,4d -34b4401,51 -34b4404,4e -34b4405,6f -34b4406,72 -34b4407,6d -34b4408,61 -34b4409,6c -34b440d,1 -34b440e,2 -34b440f,3 -34b4410,4 -34b4411,5 -34b4412,6 -34b4413,7 -34b4414,ff -34b4415,ff -34b4416,ff -34b4417,ff -34b4418,ff -34b4419,ff -34b441d,ff -34b441f,ff -34b4420,3c -34b4423,64 -34b4424,ff -34b4425,ff -34b4426,82 -34b4428,c8 -34b4429,32 -34b442a,ff -34b442b,c8 -34b442c,c8 -34b4431,10 -34b4432,44 -34b4433,65 -34b4434,6b -34b4435,75 -34b443c,1 -34b443d,10 -34b443e,44 -34b443f,6f -34b4440,64 -34b4441,6f -34b4442,6e -34b4443,67 -34b4444,6f -34b4448,2 -34b4449,10 -34b444a,4a -34b444b,61 -34b444c,62 -34b444d,75 -34b4454,3 -34b4455,d0 -34b4456,46 -34b4457,6f -34b4458,72 -34b4459,65 -34b445a,73 -34b445b,74 -34b4460,4 -34b4461,d0 -34b4462,46 -34b4463,69 -34b4464,72 -34b4465,65 -34b446c,5 -34b446d,d0 -34b446e,57 -34b446f,61 -34b4470,74 -34b4471,65 -34b4472,72 -34b4478,7 -34b4479,d0 -34b447a,53 -34b447b,68 -34b447c,61 -34b447d,64 -34b447e,6f -34b447f,77 -34b4484,6 -34b4485,d0 -34b4486,53 -34b4487,70 -34b4488,69 -34b4489,72 -34b448a,69 -34b448b,74 -34b4490,8 -34b4491,90 -34b4492,42 -34b4493,6f -34b4494,74 -34b4495,57 -34b449c,9 -34b449d,10 -34b449e,49 -34b449f,63 -34b44a0,65 -34b44a8,c -34b44a9,a0 -34b44aa,47 -34b44ab,65 -34b44ac,72 -34b44ad,75 -34b44ae,64 -34b44af,6f -34b44b4,b -34b44b5,80 -34b44b6,47 -34b44b7,54 -34b44b8,47 -34b44c0,d -34b44c1,c0 -34b44c2,47 -34b44c3,61 -34b44c4,6e -34b44c5,6f -34b44c6,6e -34b44d1,8 -34b44d3,e -34b44d5,5f -34b44d6,3 -34b44d7,1 -34b44d8,1 -34b44e1,18 -34b44e3,18 -34b44e5,12 -34b44e7,3 -34b44e8,4 -34b44f1,10 -34b44f3,10 -34b44f5,6 -34b44f6,3 -34b44f7,1 -34b44f8,1 -34b4501,10 -34b4503,10 -34b4505,3 -34b4507,3 -34b4508,4 -34b450f,1 -34b4513,d -34b4591,d -34b4592,b0 -34b4595,d -34b4596,b0 -34b4599,d -34b459a,b0 -34b459d,c -34b459e,b0 -34b45a1,c -34b45a2,b0 -34b45a5,c -34b45a6,a0 -34b45ad,d -34b45ae,b0 -34b45b1,d -34b45b2,b0 -34b45c9,e8 -34b45ca,ac -34b45cd,e8 -34b45ce,ac -34b45d1,e8 -34b45d2,ac -34b45d5,e8 -34b45d6,ac -34b45fd,d -34b45fe,77 -34b45ff,d0 -34b4601,2e -34b4602,3a -34b4603,b0 -34b4605,7d -34b4606,c -34b4607,90 -34b4608,8f -34b4609,ff -34b460a,ff -34b460b,fd -34b460d,c9 -34b460e,6e -34b4610,2 -34b4611,e4 -34b4612,ac -34b4614,ef -34b4615,ff -34b4616,ff -34b4617,f4 -34b4618,a -34b4619,b0 -34b461a,e5 -34b461c,c -34b461d,95 -34b461e,e0 -34b4620,e -34b4621,59 -34b4622,c0 -34b4639,7 -34b463a,90 -34b463c,5 -34b463d,ce -34b463e,eb -34b463f,40 -34b4640,c -34b4641,c8 -34b4642,a9 -34b4643,90 -34b4644,d -34b4645,a7 -34b4646,90 -34b4648,8 -34b4649,ec -34b464a,b4 -34b464d,4a -34b464e,dd -34b464f,a0 -34b4651,7 -34b4652,97 -34b4653,e2 -34b4654,c -34b4655,88 -34b4656,aa -34b4657,e0 -34b4658,6 -34b4659,ce -34b465a,ed -34b465b,70 -34b465d,7 -34b465e,90 -34b4661,7 -34b4662,90 -34b4670,6d -34b4671,ea -34b4674,c9 -34b4675,4d -34b4676,60 -34b4678,c9 -34b4679,4d -34b467a,60 -34b467b,33 -34b467c,6d -34b467d,eb -34b467e,6b -34b467f,c6 -34b4681,8c -34b4682,b6 -34b4684,7c -34b4685,a4 -34b4686,ce -34b4687,c4 -34b4688,31 -34b4689,9 -34b468a,c3 -34b468b,bb -34b468d,9 -34b468e,c3 -34b468f,bb -34b4691,2 -34b4692,ce -34b4693,d4 -34b46a8,4 -34b46a9,ce -34b46aa,fb -34b46ac,a -34b46ad,d5 -34b46b0,8 -34b46b1,e3 -34b46b4,9 -34b46b5,ec -34b46b8,7e -34b46b9,4d -34b46ba,b0 -34b46bb,ab -34b46bc,bb -34b46bd,5 -34b46be,e8 -34b46bf,aa -34b46c0,bc -34b46c2,8e -34b46c3,d6 -34b46c4,7e -34b46c5,93 -34b46c6,6e -34b46c7,d0 -34b46c8,8 -34b46c9,de -34b46ca,d9 -34b46cb,ea -34b46e1,c -34b46e2,a0 -34b46e5,c -34b46e6,a0 -34b46e9,c -34b46ea,a0 -34b46ed,c -34b46ee,a0 -34b4712,c9 -34b4715,7 -34b4716,e2 -34b4719,c -34b471a,b0 -34b471d,e -34b471e,80 -34b4721,6f -34b4722,30 -34b4725,8e -34b4729,8e -34b472d,6f -34b472e,40 -34b4731,e -34b4732,80 -34b4735,c -34b4736,b0 -34b4739,7 -34b473a,e2 -34b473e,c9 -34b4749,bb -34b474d,5e -34b474e,40 -34b4751,c -34b4752,a0 -34b4755,a -34b4756,d0 -34b4759,7 -34b475a,e1 -34b475d,6 -34b475e,f4 -34b4761,6 -34b4762,f4 -34b4765,7 -34b4766,e1 -34b4769,a -34b476a,d0 -34b476d,c -34b476e,a0 -34b4771,5e -34b4772,40 -34b4775,bb -34b4789,a -34b478a,80 -34b478c,c -34b478d,8a -34b478e,8a -34b478f,b0 -34b4790,3 -34b4791,be -34b4792,da -34b4793,10 -34b4794,3 -34b4795,be -34b4796,da -34b4797,10 -34b4798,c -34b4799,8a -34b479a,8a -34b479b,b0 -34b479d,a -34b479e,80 -34b47c5,c -34b47c6,a0 -34b47c9,c -34b47ca,a0 -34b47cd,c -34b47ce,a0 -34b47d0,af -34b47d1,ff -34b47d2,ff -34b47d3,f8 -34b47d5,c -34b47d6,a0 -34b47d9,c -34b47da,a0 -34b47dd,c -34b47de,a0 -34b4815,d -34b4816,d0 -34b4819,e -34b481a,c0 -34b481d,4f -34b481e,80 -34b4821,9d -34b4845,df -34b4846,fb -34b4885,e -34b4886,c0 -34b4889,e -34b488a,c0 -34b48a2,b -34b48a3,c0 -34b48a6,4e -34b48a7,60 -34b48aa,bc -34b48ad,3 -34b48ae,e8 -34b48b1,a -34b48b2,d0 -34b48b5,1e -34b48b6,90 -34b48b9,9e -34b48ba,20 -34b48bd,da -34b48c0,7 -34b48c1,e3 -34b48c4,c -34b48c5,b0 -34b48c8,6e -34b48c9,50 -34b48d8,3 -34b48d9,ce -34b48da,eb -34b48dc,b -34b48dd,d5 -34b48de,7e -34b48df,90 -34b48e0,e -34b48e1,90 -34b48e2,b -34b48e3,d0 -34b48e4,5f -34b48e5,70 -34b48e6,9 -34b48e7,e0 -34b48e8,6f -34b48e9,6c -34b48ea,b9 -34b48eb,e0 -34b48ec,5f -34b48ed,70 -34b48ee,9 -34b48ef,e0 -34b48f0,e -34b48f1,90 -34b48f2,b -34b48f3,d0 -34b48f4,b -34b48f5,d5 -34b48f6,7e -34b48f7,90 -34b48f8,3 -34b48f9,ce -34b48fa,eb -34b4910,a -34b4911,ff -34b4912,e0 -34b4915,8 -34b4916,e0 -34b4919,8 -34b491a,e0 -34b491d,8 -34b491e,e0 -34b4921,8 -34b4922,e0 -34b4925,8 -34b4926,e0 -34b4929,8 -34b492a,e0 -34b492d,8 -34b492e,e0 -34b4930,8 -34b4931,ff -34b4932,ff -34b4933,e0 -34b4948,8 -34b4949,de -34b494a,ea -34b494c,c -34b494d,83 -34b494e,7e -34b494f,90 -34b4952,c -34b4953,c0 -34b4956,2e -34b4957,a0 -34b495a,bd -34b495b,20 -34b495d,b -34b495e,d4 -34b4961,bd -34b4962,40 -34b4964,b -34b4965,d4 -34b4968,2f -34b4969,ff -34b496a,ff -34b496b,d0 -34b4980,7 -34b4981,ce -34b4982,ea -34b4984,c -34b4985,83 -34b4986,7e -34b4987,90 -34b498a,c -34b498b,b0 -34b498d,2 -34b498e,7e -34b498f,90 -34b4991,bf -34b4992,fb -34b4995,2 -34b4996,7d -34b4997,a0 -34b499a,a -34b499b,d0 -34b499c,5c -34b499d,62 -34b499e,7d -34b499f,b0 -34b49a0,9 -34b49a1,de -34b49a2,eb -34b49a3,30 -34b49b9,2 -34b49ba,de -34b49bd,b -34b49be,de -34b49c1,7d -34b49c2,9e -34b49c4,2 -34b49c5,d7 -34b49c6,9e -34b49c8,b -34b49c9,b0 -34b49ca,9e -34b49cc,6e -34b49cd,40 -34b49ce,9e -34b49d0,9f -34b49d1,ff -34b49d2,ff -34b49d3,f7 -34b49d6,9e -34b49da,9e -34b49f0,c -34b49f1,ff -34b49f2,ff -34b49f3,50 -34b49f4,c -34b49f5,a0 -34b49f8,c -34b49f9,a0 -34b49fc,c -34b49fd,ee -34b49fe,ea -34b4a01,3 -34b4a02,8e -34b4a03,90 -34b4a06,b -34b4a07,c0 -34b4a0a,b -34b4a0b,c0 -34b4a0c,5c -34b4a0d,63 -34b4a0e,8e -34b4a0f,90 -34b4a10,9 -34b4a11,de -34b4a12,da -34b4a29,ae -34b4a2a,ec -34b4a2b,30 -34b4a2c,a -34b4a2d,e8 -34b4a2e,39 -34b4a2f,80 -34b4a30,e -34b4a31,90 -34b4a34,4f -34b4a35,ae -34b4a36,ec -34b4a37,40 -34b4a38,6f -34b4a39,d5 -34b4a3a,5d -34b4a3b,c0 -34b4a3c,5f -34b4a3d,90 -34b4a3e,9 -34b4a3f,e0 -34b4a40,e -34b4a41,90 -34b4a42,9 -34b4a43,e0 -34b4a44,c -34b4a45,d5 -34b4a46,5d -34b4a47,c0 -34b4a48,3 -34b4a49,ce -34b4a4a,ec -34b4a4b,40 -34b4a60,5f -34b4a61,ff -34b4a62,ff -34b4a63,d0 -34b4a66,d -34b4a67,a0 -34b4a6a,7e -34b4a6b,40 -34b4a6e,cc -34b4a71,4 -34b4a72,e8 -34b4a75,a -34b4a76,d0 -34b4a79,d -34b4a7a,a0 -34b4a7d,8e -34b4a7e,40 -34b4a81,cc -34b4a98,5 -34b4a99,ce -34b4a9a,ec -34b4a9b,30 -34b4a9c,d -34b4a9d,c4 -34b4a9e,5d -34b4a9f,b0 -34b4aa0,e -34b4aa1,90 -34b4aa2,b -34b4aa3,d0 -34b4aa4,b -34b4aa5,c4 -34b4aa6,5d -34b4aa7,90 -34b4aa8,4 -34b4aa9,df -34b4aaa,fc -34b4aab,20 -34b4aac,1d -34b4aad,b4 -34b4aae,5c -34b4aaf,c0 -34b4ab0,5f -34b4ab1,60 -34b4ab2,9 -34b4ab3,e0 -34b4ab4,2e -34b4ab5,b3 -34b4ab6,5c -34b4ab7,d0 -34b4ab8,7 -34b4ab9,de -34b4aba,ec -34b4abb,50 -34b4ad0,6 -34b4ad1,de -34b4ad2,eb -34b4ad4,d -34b4ad5,b3 -34b4ad6,7e -34b4ad7,90 -34b4ad8,5f -34b4ad9,50 -34b4ada,b -34b4adb,d0 -34b4adc,5f -34b4add,50 -34b4ade,b -34b4adf,e0 -34b4ae0,d -34b4ae1,b3 -34b4ae2,7e -34b4ae3,e0 -34b4ae4,6 -34b4ae5,de -34b4ae6,db -34b4ae7,e0 -34b4aea,b -34b4aeb,c0 -34b4aec,9 -34b4aed,74 -34b4aee,9e -34b4aef,70 -34b4af0,5 -34b4af1,de -34b4af2,d8 -34b4b11,e -34b4b12,c0 -34b4b15,e -34b4b16,c0 -34b4b25,e -34b4b26,c0 -34b4b29,e -34b4b2a,c0 -34b4b49,e -34b4b4a,c0 -34b4b4d,e -34b4b4e,c0 -34b4b5d,d -34b4b5e,d0 -34b4b61,e -34b4b62,c0 -34b4b65,4f -34b4b66,80 -34b4b69,9d -34b4b82,29 -34b4b83,c8 -34b4b85,7b -34b4b86,ed -34b4b87,93 -34b4b88,8d -34b4b89,da -34b4b8a,40 -34b4b8c,8d -34b4b8d,da -34b4b8e,40 -34b4b91,7b -34b4b92,ec -34b4b93,93 -34b4b96,29 -34b4b97,c8 -34b4bbc,af -34b4bbd,ff -34b4bbe,ff -34b4bbf,f8 -34b4bc8,af -34b4bc9,ff -34b4bca,ff -34b4bcb,f8 -34b4bf0,ac -34b4bf1,81 -34b4bf4,4a -34b4bf5,de -34b4bf6,b6 -34b4bf9,6 -34b4bfa,ad -34b4bfb,d6 -34b4bfd,6 -34b4bfe,ad -34b4bff,d6 -34b4c00,4a -34b4c01,de -34b4c02,b6 -34b4c04,ac -34b4c05,81 -34b4c20,4 -34b4c21,be -34b4c22,ec -34b4c23,30 -34b4c24,9 -34b4c25,a4 -34b4c26,6e -34b4c27,a0 -34b4c2a,1d -34b4c2b,a0 -34b4c2d,2 -34b4c2e,cd -34b4c2f,30 -34b4c31,c -34b4c32,c1 -34b4c35,e -34b4c36,90 -34b4c3d,e -34b4c3e,90 -34b4c41,e -34b4c42,90 -34b4c58,1 -34b4c59,ae -34b4c5a,ed -34b4c5b,70 -34b4c5c,c -34b4c5d,d7 -34b4c5e,39 -34b4c5f,e4 -34b4c60,7e -34b4c61,20 -34b4c63,c9 -34b4c64,ba -34b4c65,a -34b4c66,ee -34b4c67,ca -34b4c68,d7 -34b4c69,6e -34b4c6a,64 -34b4c6b,da -34b4c6c,d6 -34b4c6d,9c -34b4c6f,aa -34b4c70,d7 -34b4c71,6e -34b4c72,64 -34b4c73,da -34b4c74,ba -34b4c75,a -34b4c76,ee -34b4c77,ca -34b4c78,6e -34b4c79,40 -34b4c7c,a -34b4c7d,d8 -34b4c7e,30 -34b4c81,8d -34b4c82,ee -34b4c83,90 -34b4c91,3e -34b4c92,d0 -34b4c95,9d -34b4c96,e6 -34b4c99,cb -34b4c9a,cb -34b4c9c,3 -34b4c9d,e8 -34b4c9e,ad -34b4ca0,8 -34b4ca1,e2 -34b4ca2,6f -34b4ca3,60 -34b4ca4,c -34b4ca5,c0 -34b4ca6,e -34b4ca7,a0 -34b4ca8,2e -34b4ca9,ff -34b4caa,ff -34b4cab,d0 -34b4cac,8e -34b4cad,50 -34b4cae,8 -34b4caf,f5 -34b4cb0,cd -34b4cb2,1 -34b4cb3,ea -34b4cc8,e -34b4cc9,ff -34b4cca,ec -34b4ccb,40 -34b4ccc,e -34b4ccd,90 -34b4cce,5d -34b4ccf,c0 -34b4cd0,e -34b4cd1,90 -34b4cd2,a -34b4cd3,e0 -34b4cd4,e -34b4cd5,90 -34b4cd6,5d -34b4cd7,c0 -34b4cd8,e -34b4cd9,ff -34b4cda,fd -34b4cdb,50 -34b4cdc,e -34b4cdd,90 -34b4cde,4b -34b4cdf,d2 -34b4ce0,e -34b4ce1,90 -34b4ce2,5 -34b4ce3,f6 -34b4ce4,e -34b4ce5,90 -34b4ce6,4b -34b4ce7,e3 -34b4ce8,e -34b4ce9,ff -34b4cea,ed -34b4ceb,80 -34b4d01,9d -34b4d02,ed -34b4d03,80 -34b4d04,8 -34b4d05,e9 -34b4d06,36 -34b4d07,b0 -34b4d08,d -34b4d09,b0 -34b4d0c,3f -34b4d0d,90 -34b4d10,5f -34b4d11,70 -34b4d14,1e -34b4d15,90 -34b4d18,d -34b4d19,b0 -34b4d1c,8 -34b4d1d,e9 -34b4d1e,47 -34b4d1f,b0 -34b4d21,9d -34b4d22,ed -34b4d23,80 -34b4d38,5f -34b4d39,fe -34b4d3a,d8 -34b4d3c,5f -34b4d3d,65 -34b4d3e,ae -34b4d3f,80 -34b4d40,5f -34b4d41,60 -34b4d42,c -34b4d43,d0 -34b4d44,5f -34b4d45,60 -34b4d46,9 -34b4d47,e0 -34b4d48,5f -34b4d49,60 -34b4d4a,9 -34b4d4b,f0 -34b4d4c,5f -34b4d4d,60 -34b4d4e,9 -34b4d4f,e0 -34b4d50,5f -34b4d51,60 -34b4d52,c -34b4d53,d0 -34b4d54,5f -34b4d55,65 -34b4d56,ae -34b4d57,80 -34b4d58,5f -34b4d59,fe -34b4d5a,d8 -34b4d70,d -34b4d71,ff -34b4d72,ff -34b4d73,e0 -34b4d74,d -34b4d75,b0 -34b4d78,d -34b4d79,b0 -34b4d7c,d -34b4d7d,b0 -34b4d80,d -34b4d81,ff -34b4d82,ff -34b4d83,c0 -34b4d84,d -34b4d85,b0 -34b4d88,d -34b4d89,b0 -34b4d8c,d -34b4d8d,b0 -34b4d90,d -34b4d91,ff -34b4d92,ff -34b4d93,f0 -34b4da8,b -34b4da9,ff -34b4daa,ff -34b4dab,f4 -34b4dac,b -34b4dad,d0 -34b4db0,b -34b4db1,d0 -34b4db4,b -34b4db5,d0 -34b4db8,b -34b4db9,ff -34b4dba,ff -34b4dbb,c0 -34b4dbc,b -34b4dbd,d0 -34b4dc0,b -34b4dc1,d0 -34b4dc4,b -34b4dc5,d0 -34b4dc8,b -34b4dc9,d0 -34b4de0,1 -34b4de1,ae -34b4de2,ed -34b4de3,60 -34b4de4,b -34b4de5,e7 -34b4de6,38 -34b4de7,a0 -34b4de8,4e -34b4de9,90 -34b4dec,8f -34b4ded,40 -34b4df0,9f -34b4df1,10 -34b4df2,bf -34b4df3,f2 -34b4df4,7f -34b4df5,40 -34b4df6,7 -34b4df7,f2 -34b4df8,4e -34b4df9,90 -34b4dfa,7 -34b4dfb,f2 -34b4dfc,b -34b4dfd,e7 -34b4dfe,39 -34b4dff,f2 -34b4e00,1 -34b4e01,be -34b4e02,ed -34b4e03,90 -34b4e18,5f -34b4e19,60 -34b4e1a,9 -34b4e1b,e0 -34b4e1c,5f -34b4e1d,60 -34b4e1e,9 -34b4e1f,e0 -34b4e20,5f -34b4e21,60 -34b4e22,9 -34b4e23,e0 -34b4e24,5f -34b4e25,60 -34b4e26,9 -34b4e27,e0 -34b4e28,5f -34b4e29,ff -34b4e2a,ff -34b4e2b,e0 -34b4e2c,5f -34b4e2d,60 -34b4e2e,9 -34b4e2f,e0 -34b4e30,5f -34b4e31,60 -34b4e32,9 -34b4e33,e0 -34b4e34,5f -34b4e35,60 -34b4e36,9 -34b4e37,e0 -34b4e38,5f -34b4e39,60 -34b4e3a,9 -34b4e3b,e0 -34b4e50,d -34b4e51,ff -34b4e52,ff -34b4e53,b0 -34b4e55,d -34b4e56,b0 -34b4e59,d -34b4e5a,b0 -34b4e5d,d -34b4e5e,b0 -34b4e61,d -34b4e62,b0 -34b4e65,d -34b4e66,b0 -34b4e69,d -34b4e6a,b0 -34b4e6d,d -34b4e6e,b0 -34b4e70,d -34b4e71,ff -34b4e72,ff -34b4e73,b0 -34b4e89,cf -34b4e8a,ff -34b4e8b,40 -34b4e8e,7f -34b4e8f,40 -34b4e92,7f -34b4e93,40 -34b4e96,7f -34b4e97,40 -34b4e9a,7f -34b4e9b,40 -34b4e9e,7f -34b4e9f,30 -34b4ea0,75 -34b4ea2,9e -34b4ea4,8d -34b4ea5,64 -34b4ea6,dc -34b4ea8,2b -34b4ea9,ee -34b4eaa,c5 -34b4ec0,5f -34b4ec1,60 -34b4ec2,9 -34b4ec3,e7 -34b4ec4,5f -34b4ec5,60 -34b4ec6,9e -34b4ec7,70 -34b4ec8,5f -34b4ec9,69 -34b4eca,e7 -34b4ecc,5f -34b4ecd,be -34b4ece,80 -34b4ed0,5f -34b4ed1,ed -34b4ed2,b0 -34b4ed4,5f -34b4ed5,87 -34b4ed6,e8 -34b4ed8,5f -34b4ed9,60 -34b4eda,ae -34b4edb,40 -34b4edc,5f -34b4edd,60 -34b4ede,1d -34b4edf,c0 -34b4ee0,5f -34b4ee1,60 -34b4ee2,6 -34b4ee3,ea -34b4ef8,c -34b4ef9,c0 -34b4efc,c -34b4efd,c0 -34b4f00,c -34b4f01,c0 -34b4f04,c -34b4f05,c0 -34b4f08,c -34b4f09,c0 -34b4f0c,c -34b4f0d,c0 -34b4f10,c -34b4f11,c0 -34b4f14,c -34b4f15,c0 -34b4f18,c -34b4f19,ff -34b4f1a,ff -34b4f1b,f7 -34b4f30,af -34b4f31,a0 -34b4f32,c -34b4f33,f8 -34b4f34,ae -34b4f35,d0 -34b4f36,2e -34b4f37,e8 -34b4f38,ad -34b4f39,d5 -34b4f3a,9b -34b4f3b,e8 -34b4f3c,ad -34b4f3d,aa -34b4f3e,c8 -34b4f3f,e8 -34b4f40,ad -34b4f41,5d -34b4f42,e1 -34b4f43,e8 -34b4f44,ad -34b4f45,d -34b4f46,b0 -34b4f47,e8 -34b4f48,ad -34b4f4b,e8 -34b4f4c,ad -34b4f4f,e8 -34b4f50,ad -34b4f53,e8 -34b4f68,5f -34b4f69,c0 -34b4f6a,8 -34b4f6b,e0 -34b4f6c,5f -34b4f6d,e6 -34b4f6e,8 -34b4f6f,e0 -34b4f70,5f -34b4f71,cb -34b4f72,8 -34b4f73,e0 -34b4f74,5f -34b4f75,7e -34b4f76,48 -34b4f77,e0 -34b4f78,5f -34b4f79,5c -34b4f7a,a8 -34b4f7b,e0 -34b4f7c,5f -34b4f7d,57 -34b4f7e,e8 -34b4f7f,e0 -34b4f80,5f -34b4f81,50 -34b4f82,dc -34b4f83,e0 -34b4f84,5f -34b4f85,50 -34b4f86,9e -34b4f87,e0 -34b4f88,5f -34b4f89,50 -34b4f8a,2e -34b4f8b,e0 -34b4fa0,4 -34b4fa1,ce -34b4fa2,eb -34b4fa3,20 -34b4fa4,c -34b4fa5,d5 -34b4fa6,6e -34b4fa7,a0 -34b4fa8,3e -34b4fa9,80 -34b4faa,a -34b4fab,e0 -34b4fac,7f -34b4fad,50 -34b4fae,8 -34b4faf,f2 -34b4fb0,7f -34b4fb1,40 -34b4fb2,8 -34b4fb3,f4 -34b4fb4,7f -34b4fb5,50 -34b4fb6,8 -34b4fb7,f2 -34b4fb8,3e -34b4fb9,80 -34b4fba,a -34b4fbb,e0 -34b4fbc,c -34b4fbd,d5 -34b4fbe,6e -34b4fbf,b0 -34b4fc0,4 -34b4fc1,ce -34b4fc2,eb -34b4fc3,20 -34b4fd8,d -34b4fd9,ff -34b4fda,ed -34b4fdb,60 -34b4fdc,d -34b4fdd,b0 -34b4fde,5c -34b4fdf,e2 -34b4fe0,d -34b4fe1,b0 -34b4fe2,6 -34b4fe3,f6 -34b4fe4,d -34b4fe5,b0 -34b4fe6,6 -34b4fe7,f6 -34b4fe8,d -34b4fe9,b0 -34b4fea,5c -34b4feb,e2 -34b4fec,d -34b4fed,ff -34b4fee,ed -34b4fef,60 -34b4ff0,d -34b4ff1,b0 -34b4ff4,d -34b4ff5,b0 -34b4ff8,d -34b4ff9,b0 -34b5010,4 -34b5011,ce -34b5012,eb -34b5013,20 -34b5014,c -34b5015,d5 -34b5016,6e -34b5017,a0 -34b5018,3e -34b5019,80 -34b501a,a -34b501b,e0 -34b501c,7f -34b501d,50 -34b501e,8 -34b501f,f2 -34b5020,7f -34b5021,40 -34b5022,8 -34b5023,f4 -34b5024,7f -34b5025,50 -34b5026,8 -34b5027,f1 -34b5028,3e -34b5029,80 -34b502a,a -34b502b,d0 -34b502c,c -34b502d,d5 -34b502e,6e -34b502f,a0 -34b5030,4 -34b5031,ce -34b5032,fc -34b5033,20 -34b5036,ae -34b5037,50 -34b503a,c -34b503b,80 -34b5048,5f -34b5049,fe -34b504a,eb -34b504b,20 -34b504c,5f -34b504d,71 -34b504e,7e -34b504f,b0 -34b5050,5f -34b5051,70 -34b5052,c -34b5053,d0 -34b5054,5f -34b5055,71 -34b5056,6e -34b5057,a0 -34b5058,5f -34b5059,ff -34b505a,ea -34b505c,5f -34b505d,72 -34b505e,ae -34b505f,40 -34b5060,5f -34b5061,70 -34b5062,d -34b5063,b0 -34b5064,5f -34b5065,70 -34b5066,8 -34b5067,e5 -34b5068,5f -34b5069,70 -34b506b,db -34b5080,6 -34b5081,ce -34b5082,eb -34b5083,30 -34b5084,d -34b5085,c4 -34b5086,5a -34b5087,90 -34b5088,4f -34b5089,60 -34b508c,e -34b508d,c6 -34b5090,5 -34b5091,ce -34b5092,eb -34b5093,40 -34b5096,6c -34b5097,c0 -34b509a,8 -34b509b,e0 -34b509c,c -34b509d,73 -34b509e,5c -34b509f,d0 -34b50a0,8 -34b50a1,de -34b50a2,ec -34b50a3,50 -34b50b8,cf -34b50b9,ff -34b50ba,ff -34b50bb,fb -34b50bd,d -34b50be,b0 -34b50c1,d -34b50c2,b0 -34b50c5,d -34b50c6,b0 -34b50c9,d -34b50ca,b0 -34b50cd,d -34b50ce,b0 -34b50d1,d -34b50d2,b0 -34b50d5,d -34b50d6,b0 -34b50d9,d -34b50da,b0 -34b50f0,4f -34b50f1,70 -34b50f2,9 -34b50f3,e0 -34b50f4,4f -34b50f5,70 -34b50f6,9 -34b50f7,e0 -34b50f8,4f -34b50f9,70 -34b50fa,9 -34b50fb,e0 -34b50fc,4f -34b50fd,70 -34b50fe,9 -34b50ff,e0 -34b5100,4f -34b5101,70 -34b5102,9 -34b5103,e0 -34b5104,3f -34b5105,70 -34b5106,9 -34b5107,e0 -34b5108,2e -34b5109,70 -34b510a,a -34b510b,d0 -34b510c,d -34b510d,c4 -34b510e,5d -34b510f,c0 -34b5110,5 -34b5111,ce -34b5112,ec -34b5113,40 -34b5128,ad -34b512a,3 -34b512b,e8 -34b512c,6f -34b512d,50 -34b512e,8 -34b512f,e3 -34b5130,e -34b5131,90 -34b5132,b -34b5133,c0 -34b5134,b -34b5135,c0 -34b5136,d -34b5137,90 -34b5138,8 -34b5139,e1 -34b513a,5e -34b513b,40 -34b513c,2 -34b513d,e7 -34b513e,ad -34b5141,cb -34b5142,ca -34b5145,9d -34b5146,e6 -34b5149,3e -34b514a,d0 -34b5160,e8 -34b5163,ad -34b5164,da -34b5167,cb -34b5168,cb -34b516b,da -34b516c,ac -34b516d,e -34b516e,c0 -34b516f,e8 -34b5170,8d -34b5171,6d -34b5172,e1 -34b5173,e5 -34b5174,6e -34b5175,9b -34b5176,d8 -34b5177,e0 -34b5178,1e -34b5179,c8 -34b517a,ac -34b517b,d0 -34b517c,d -34b517d,e3 -34b517e,7e -34b517f,c0 -34b5180,c -34b5181,d0 -34b5182,e -34b5183,a0 -34b5198,6e -34b5199,70 -34b519a,7 -34b519b,e7 -34b519c,a -34b519d,d2 -34b519e,1d -34b519f,b0 -34b51a0,2 -34b51a1,da -34b51a2,ad -34b51a3,20 -34b51a5,7e -34b51a6,e7 -34b51a9,3e -34b51aa,e2 -34b51ad,bd -34b51ae,da -34b51b0,7 -34b51b1,e6 -34b51b2,7e -34b51b3,60 -34b51b4,3e -34b51b5,a0 -34b51b6,b -34b51b7,d0 -34b51b8,bd -34b51b9,20 -34b51ba,4 -34b51bb,e9 -34b51d0,ae -34b51d1,20 -34b51d2,5 -34b51d3,e8 -34b51d4,2d -34b51d5,a0 -34b51d6,c -34b51d7,c0 -34b51d8,7 -34b51d9,e5 -34b51da,7e -34b51db,50 -34b51dd,cc -34b51de,da -34b51e1,4e -34b51e2,d2 -34b51e5,d -34b51e6,b0 -34b51e9,d -34b51ea,b0 -34b51ed,d -34b51ee,b0 -34b51f1,d -34b51f2,b0 -34b5208,e -34b5209,ff -34b520a,ff -34b520b,f8 -34b520e,b -34b520f,d3 -34b5212,7e -34b5213,70 -34b5215,3 -34b5216,ea -34b5219,b -34b521a,d1 -34b521d,8e -34b521e,50 -34b5220,4 -34b5221,e9 -34b5224,c -34b5225,c0 -34b5228,1f -34b5229,ff -34b522a,ff -34b522b,fa -34b5239,4f -34b523a,fc -34b523d,4f -34b523e,50 -34b5241,4f -34b5242,50 -34b5245,4f -34b5246,50 -34b5249,4f -34b524a,50 -34b524d,4f -34b524e,50 -34b5251,4f -34b5252,50 -34b5255,4f -34b5256,50 -34b5259,4f -34b525a,50 -34b525d,4f -34b525e,50 -34b5261,4f -34b5262,50 -34b5265,4f -34b5266,fc -34b5278,6e -34b5279,50 -34b527c,c -34b527d,b0 -34b5280,7 -34b5281,e3 -34b5285,da -34b5289,9e -34b528a,20 -34b528d,1e -34b528e,90 -34b5291,a -34b5292,d0 -34b5295,3 -34b5296,e8 -34b529a,bc -34b529e,4e -34b529f,60 -34b52a2,b -34b52a3,c0 -34b52a9,df -34b52aa,e0 -34b52ad,8 -34b52ae,e0 -34b52b1,8 -34b52b2,e0 -34b52b5,8 -34b52b6,e0 -34b52b9,8 -34b52ba,e0 -34b52bd,8 -34b52be,e0 -34b52c1,8 -34b52c2,e0 -34b52c5,8 -34b52c6,e0 -34b52c9,8 -34b52ca,e0 -34b52cd,8 -34b52ce,e0 -34b52d1,8 -34b52d2,e0 -34b52d5,df -34b52d6,e0 -34b52e9,5e -34b52ea,d2 -34b52ed,dc -34b52ee,db -34b52f0,a -34b52f1,d2 -34b52f2,5e -34b52f3,80 -34b52f4,7e -34b52f5,50 -34b52f6,7 -34b52f7,e5 -34b534c,ff -34b534d,ff -34b534e,ff -34b534f,fd -34b5354,2 -34b5355,ca -34b5359,2c -34b535a,90 -34b5398,5 -34b5399,ce -34b539a,eb -34b539b,10 -34b539c,b -34b539d,93 -34b539e,6d -34b539f,a0 -34b53a2,b -34b53a3,c0 -34b53a4,8 -34b53a5,de -34b53a6,ff -34b53a7,c0 -34b53a8,3e -34b53a9,93 -34b53aa,b -34b53ab,d0 -34b53ac,4f -34b53ad,82 -34b53ae,7e -34b53af,d0 -34b53b0,a -34b53b1,ee -34b53b2,db -34b53b3,d0 -34b53c0,d -34b53c1,90 -34b53c4,d -34b53c5,90 -34b53c8,d -34b53c9,90 -34b53cc,d -34b53cd,90 -34b53d0,d -34b53d1,bd -34b53d2,ec -34b53d3,40 -34b53d4,d -34b53d5,e6 -34b53d6,5d -34b53d7,c0 -34b53d8,d -34b53d9,b0 -34b53da,8 -34b53db,e0 -34b53dc,d -34b53dd,a0 -34b53de,7 -34b53df,f2 -34b53e0,d -34b53e1,b0 -34b53e2,8 -34b53e3,e0 -34b53e4,d -34b53e5,e6 -34b53e6,4d -34b53e7,b0 -34b53e8,d -34b53e9,bd -34b53ea,ec -34b53eb,40 -34b5409,8d -34b540a,ed -34b540b,70 -34b540c,7 -34b540d,e9 -34b540e,36 -34b540f,a0 -34b5410,c -34b5411,c0 -34b5414,d -34b5415,b0 -34b5418,c -34b5419,c0 -34b541c,7 -34b541d,e9 -34b541e,36 -34b541f,a0 -34b5421,8d -34b5422,ed -34b5423,70 -34b5432,b -34b5433,c0 -34b5436,b -34b5437,c0 -34b543a,b -34b543b,c0 -34b543e,b -34b543f,c0 -34b5440,5 -34b5441,de -34b5442,dc -34b5443,c0 -34b5444,d -34b5445,c4 -34b5446,8e -34b5447,c0 -34b5448,5f -34b5449,60 -34b544a,c -34b544b,c0 -34b544c,7f -34b544d,30 -34b544e,b -34b544f,c0 -34b5450,5f -34b5451,60 -34b5452,c -34b5453,c0 -34b5454,d -34b5455,c4 -34b5456,8e -34b5457,c0 -34b5458,5 -34b5459,de -34b545a,dc -34b545b,c0 -34b5478,3 -34b5479,be -34b547a,ec -34b547b,30 -34b547c,c -34b547d,d5 -34b547e,4c -34b547f,c0 -34b5480,4f -34b5481,60 -34b5482,7 -34b5483,e0 -34b5484,6f -34b5485,ff -34b5486,ff -34b5487,f3 -34b5488,4f -34b5489,50 -34b548c,c -34b548d,c5 -34b548e,38 -34b548f,c0 -34b5490,3 -34b5491,be -34b5492,ec -34b5493,60 -34b54a1,5 -34b54a2,de -34b54a3,d0 -34b54a5,c -34b54a6,b2 -34b54a9,d -34b54aa,90 -34b54ad,e -34b54ae,80 -34b54b0,d -34b54b1,ff -34b54b2,ff -34b54b3,d0 -34b54b5,e -34b54b6,80 -34b54b9,e -34b54ba,80 -34b54bd,e -34b54be,80 -34b54c1,e -34b54c2,80 -34b54c5,e -34b54c6,80 -34b54c9,e -34b54ca,80 -34b54e8,5 -34b54e9,de -34b54ea,dc -34b54eb,c0 -34b54ec,d -34b54ed,c4 -34b54ee,8e -34b54ef,c0 -34b54f0,5f -34b54f1,60 -34b54f2,c -34b54f3,c0 -34b54f4,7f -34b54f5,30 -34b54f6,b -34b54f7,c0 -34b54f8,5f -34b54f9,60 -34b54fa,c -34b54fb,c0 -34b54fc,d -34b54fd,c4 -34b54fe,8e -34b54ff,c0 -34b5500,5 -34b5501,de -34b5502,dc -34b5503,b0 -34b5506,c -34b5507,a0 -34b5508,9 -34b5509,94 -34b550a,7e -34b550b,60 -34b550c,4 -34b550d,ce -34b550e,e9 -34b5510,d -34b5511,a0 -34b5514,d -34b5515,a0 -34b5518,d -34b5519,a0 -34b551c,d -34b551d,a0 -34b5520,d -34b5521,bd -34b5522,ed -34b5523,40 -34b5524,d -34b5525,e6 -34b5526,5d -34b5527,a0 -34b5528,d -34b5529,b0 -34b552a,b -34b552b,c0 -34b552c,d -34b552d,a0 -34b552e,b -34b552f,c0 -34b5530,d -34b5531,a0 -34b5532,b -34b5533,c0 -34b5534,d -34b5535,a0 -34b5536,b -34b5537,c0 -34b5538,d -34b5539,a0 -34b553a,b -34b553b,c0 -34b5549,b -34b554a,c0 -34b5558,9 -34b5559,ff -34b555a,c0 -34b555d,b -34b555e,c0 -34b5561,b -34b5562,c0 -34b5565,b -34b5566,c0 -34b5569,b -34b556a,c0 -34b556d,b -34b556e,c0 -34b5570,e -34b5571,ff -34b5572,ff -34b5573,e0 -34b5581,7 -34b5582,e0 -34b5590,7 -34b5591,ff -34b5592,e0 -34b5595,7 -34b5596,e0 -34b5599,7 -34b559a,e0 -34b559d,7 -34b559e,e0 -34b55a1,7 -34b55a2,e0 -34b55a5,7 -34b55a6,e0 -34b55a9,7 -34b55aa,e0 -34b55ad,7 -34b55ae,e0 -34b55b1,1b -34b55b2,d0 -34b55b4,d -34b55b5,fe -34b55b6,70 -34b55b8,b -34b55b9,c0 -34b55bc,b -34b55bd,c0 -34b55c0,b -34b55c1,c0 -34b55c4,b -34b55c5,c0 -34b55c8,b -34b55c9,c0 -34b55ca,3d -34b55cb,c2 -34b55cc,b -34b55cd,c3 -34b55ce,db -34b55d0,b -34b55d1,dd -34b55d2,c0 -34b55d4,b -34b55d5,fc -34b55d6,e5 -34b55d8,b -34b55d9,d0 -34b55da,cd -34b55db,10 -34b55dc,b -34b55dd,c0 -34b55de,3d -34b55df,b0 -34b55e0,b -34b55e1,c0 -34b55e2,7 -34b55e3,e8 -34b55f0,e -34b55f1,ff -34b55f2,40 -34b55f5,5f -34b55f6,40 -34b55f9,5f -34b55fa,40 -34b55fd,5f -34b55fe,40 -34b5601,5f -34b5602,40 -34b5605,5f -34b5606,40 -34b5609,5f -34b560a,40 -34b560d,5f -34b560e,40 -34b5611,4f -34b5612,50 -34b5615,e -34b5616,a0 -34b5619,8 -34b561a,ef -34b561b,b0 -34b5638,8d -34b5639,dd -34b563a,ae -34b563b,c0 -34b563c,8e -34b563d,4d -34b563e,c5 -34b563f,e4 -34b5640,8d -34b5641,c -34b5642,b0 -34b5643,e6 -34b5644,8d -34b5645,b -34b5646,a0 -34b5647,e7 -34b5648,8d -34b5649,b -34b564a,a0 -34b564b,e7 -34b564c,8d -34b564d,b -34b564e,a0 -34b564f,e7 -34b5650,8d -34b5651,b -34b5652,a0 -34b5653,e7 -34b5670,d -34b5671,bd -34b5672,ed -34b5673,40 -34b5674,d -34b5675,e6 -34b5676,5d -34b5677,a0 -34b5678,d -34b5679,b0 -34b567a,b -34b567b,c0 -34b567c,d -34b567d,a0 -34b567e,b -34b567f,c0 -34b5680,d -34b5681,a0 -34b5682,b -34b5683,c0 -34b5684,d -34b5685,a0 -34b5686,b -34b5687,c0 -34b5688,d -34b5689,a0 -34b568a,b -34b568b,c0 -34b56a8,4 -34b56a9,ce -34b56aa,eb -34b56ab,20 -34b56ac,c -34b56ad,d5 -34b56ae,6d -34b56af,a0 -34b56b0,1e -34b56b1,70 -34b56b2,a -34b56b3,d0 -34b56b4,5f -34b56b5,60 -34b56b6,8 -34b56b7,e0 -34b56b8,1e -34b56b9,70 -34b56ba,a -34b56bb,d0 -34b56bc,c -34b56bd,d4 -34b56be,6d -34b56bf,b0 -34b56c0,4 -34b56c1,ce -34b56c2,eb -34b56c3,20 -34b56e0,d -34b56e1,bd -34b56e2,ec -34b56e3,30 -34b56e4,d -34b56e5,e6 -34b56e6,5d -34b56e7,b0 -34b56e8,d -34b56e9,b0 -34b56ea,9 -34b56eb,e0 -34b56ec,d -34b56ed,a0 -34b56ee,7 -34b56ef,e0 -34b56f0,d -34b56f1,b0 -34b56f2,8 -34b56f3,e0 -34b56f4,d -34b56f5,e6 -34b56f6,5d -34b56f7,b0 -34b56f8,d -34b56f9,be -34b56fa,ec -34b56fb,40 -34b56fc,d -34b56fd,90 -34b5700,d -34b5701,90 -34b5704,d -34b5705,90 -34b5718,4 -34b5719,ce -34b571a,dc -34b571b,c0 -34b571c,c -34b571d,c4 -34b571e,7e -34b571f,c0 -34b5720,1e -34b5721,70 -34b5722,c -34b5723,c0 -34b5724,5f -34b5725,60 -34b5726,b -34b5727,c0 -34b5728,2e -34b5729,70 -34b572a,c -34b572b,c0 -34b572c,c -34b572d,c4 -34b572e,7e -34b572f,c0 -34b5730,5 -34b5731,ce -34b5732,db -34b5733,c0 -34b5736,a -34b5737,c0 -34b573a,a -34b573b,c0 -34b573e,a -34b573f,c0 -34b5751,cc -34b5752,de -34b5753,f9 -34b5755,ce -34b5756,83 -34b5759,cb -34b575d,ca -34b5761,ca -34b5765,ca -34b5769,ca -34b5788,4 -34b5789,ce -34b578a,ea -34b578b,10 -34b578c,b -34b578d,d4 -34b578e,5b -34b578f,60 -34b5790,b -34b5791,d4 -34b5794,3 -34b5795,bd -34b5796,db -34b5797,20 -34b579a,4d -34b579b,a0 -34b579c,b -34b579d,94 -34b579e,5e -34b579f,a0 -34b57a0,5 -34b57a1,ce -34b57a2,eb -34b57a3,20 -34b57b9,8e -34b57bd,8e -34b57c0,6f -34b57c1,ff -34b57c2,ff -34b57c3,b0 -34b57c5,8e -34b57c9,8e -34b57cd,8e -34b57d1,8e -34b57d5,6e -34b57d6,70 -34b57d9,b -34b57da,ef -34b57db,b0 -34b57f8,d -34b57f9,a0 -34b57fa,b -34b57fb,c0 -34b57fc,d -34b57fd,a0 -34b57fe,b -34b57ff,c0 -34b5800,d -34b5801,a0 -34b5802,b -34b5803,c0 -34b5804,d -34b5805,a0 -34b5806,b -34b5807,c0 -34b5808,d -34b5809,a0 -34b580a,b -34b580b,c0 -34b580c,b -34b580d,d4 -34b580e,7e -34b580f,c0 -34b5810,5 -34b5811,de -34b5812,db -34b5813,c0 -34b5830,6e -34b5831,30 -34b5832,7 -34b5833,e3 -34b5834,d -34b5835,90 -34b5836,b -34b5837,c0 -34b5838,a -34b5839,d0 -34b583a,1e -34b583b,80 -34b583c,5 -34b583d,e4 -34b583e,8e -34b583f,20 -34b5841,da -34b5842,cb -34b5845,9d -34b5846,e7 -34b5849,3e -34b584a,e0 -34b5868,e8 -34b586b,ac -34b586c,ca -34b586f,ca -34b5870,ac -34b5871,d -34b5872,b0 -34b5873,e7 -34b5874,6e -34b5875,3d -34b5876,d5 -34b5877,e2 -34b5878,e -34b5879,ab -34b587a,ca -34b587b,d0 -34b587c,c -34b587d,e7 -34b587e,9e -34b587f,b0 -34b5880,a -34b5881,e1 -34b5882,5f -34b5883,80 -34b58a0,3d -34b58a1,a0 -34b58a2,b -34b58a3,c0 -34b58a4,6 -34b58a5,e6 -34b58a6,9e -34b58a7,40 -34b58a9,9e -34b58aa,e7 -34b58ad,2e -34b58ae,d0 -34b58b1,cc -34b58b2,da -34b58b4,9 -34b58b5,e4 -34b58b6,6e -34b58b7,70 -34b58b8,6e -34b58b9,70 -34b58ba,9 -34b58bb,e4 -34b58d8,6e -34b58d9,50 -34b58da,5 -34b58db,e5 -34b58dc,d -34b58dd,a0 -34b58de,b -34b58df,d0 -34b58e0,9 -34b58e1,e0 -34b58e2,e -34b58e3,90 -34b58e4,3 -34b58e5,e7 -34b58e6,8e -34b58e7,30 -34b58e9,cc -34b58ea,cc -34b58ed,7e -34b58ee,e7 -34b58f1,d -34b58f2,e0 -34b58f5,d -34b58f6,a0 -34b58f9,8e -34b58fa,50 -34b58fc,d -34b58fd,ea -34b5910,b -34b5911,ff -34b5912,ff -34b5913,c0 -34b5916,5e -34b5917,70 -34b5919,3 -34b591a,d9 -34b591d,c -34b591e,b0 -34b5921,bd -34b5922,20 -34b5924,9 -34b5925,e4 -34b5928,d -34b5929,ff -34b592a,ff -34b592b,c0 -34b5939,6 -34b593a,de -34b593b,a0 -34b593d,b -34b593e,d3 -34b5941,c -34b5942,b0 -34b5945,c -34b5946,b0 -34b5949,5e -34b594a,a0 -34b594c,b -34b594d,fd -34b594e,20 -34b5951,7e -34b5952,90 -34b5955,d -34b5956,b0 -34b5959,c -34b595a,b0 -34b595d,c -34b595e,b0 -34b5961,b -34b5962,d4 -34b5965,5 -34b5966,de -34b5967,a0 -34b5971,c -34b5972,a0 -34b5975,c -34b5976,a0 -34b5979,c -34b597a,a0 -34b597d,c -34b597e,a0 -34b5981,c -34b5982,a0 -34b5985,c -34b5986,a0 -34b5989,c -34b598a,a0 -34b598d,c -34b598e,a0 -34b5991,c -34b5992,a0 -34b5995,c -34b5996,a0 -34b5999,c -34b599a,a0 -34b599d,c -34b599e,a0 -34b59a1,c -34b59a2,a0 -34b59a8,b -34b59a9,ed -34b59aa,30 -34b59ad,4e -34b59ae,90 -34b59b1,d -34b59b2,a0 -34b59b5,c -34b59b6,a0 -34b59b9,b -34b59ba,c4 -34b59bd,5 -34b59be,ef -34b59bf,a0 -34b59c1,b -34b59c2,d5 -34b59c5,c -34b59c6,b0 -34b59c9,d -34b59ca,a0 -34b59cd,d -34b59ce,a0 -34b59d1,5e -34b59d2,80 -34b59d4,b -34b59d5,ec -34b59d6,20 -34b59f8,5d -34b59f9,ed -34b59fa,83 -34b59fb,a7 -34b59fc,98 -34b59fd,38 -34b59fe,de -34b59ff,c3 +11,45 +12,ae +13,5b +14,97 +15,db +16,41 +17,31 +d261,48 +d262,0 +d265,48 +d266,50 +d267,0 +d269,48 +d26a,0 +d271,4b +d272,30 +d275,4b +d276,e0 +d277,0 +d279,4b +d27a,30 +8a9c51,0 +8a9c52,0 +8a9c53,0 +8a9c55,0 +8a9c56,0 +8a9c57,0 +8a9c58,0 +8a9c59,0 +8a9c5a,0 +8a9c5c,0 +8a9c5d,0 +8a9c5e,0 +8a9c5f,0 +8a9c64,0 +8a9c65,0 +8a9c66,0 +8a9c67,0 +8a9c68,0 +8a9c69,0 +8a9c6a,0 +8a9c6b,0 +8a9c6c,0 +8a9c6d,0 +8a9c6e,0 +8a9c6f,0 +8a9c90,0 +8a9c91,0 +8a9c92,0 +8a9c93,0 +8a9c94,0 +8a9c95,0 +8a9c96,0 +8a9c97,0 +8a9c98,0 +8a9c99,0 +8a9c9a,0 +8a9c9c,0 +8a9c9d,0 +8a9c9e,0 +8a9c9f,0 +8a9ca0,0 +8a9ca3,0 +8a9ca4,0 +8a9ca5,0 +8a9ca6,0 +8a9ca7,0 +8a9ca8,0 +8a9ca9,0 +8a9caa,0 +8a9cab,0 +8a9cac,0 +8a9cad,0 +8a9cae,0 +8a9caf,0 +8a9cb0,0 +8a9cd0,0 +8a9cd1,0 +8a9cd2,0 +8a9cd3,0 +8a9cd4,0 +8a9cd5,0 +8a9cd6,0 +8a9cd7,0 +8a9cd8,0 +8a9cd9,0 +8a9cda,0 +8a9cdc,0 +8a9cdd,0 +8a9cde,0 +8a9cdf,0 +8a9ce0,0 +8a9ce3,0 +8a9ce4,0 +8a9ce5,0 +8a9ce6,0 +8a9ce7,0 +8a9ce8,0 +8a9ce9,0 +8a9cea,0 +8a9ceb,0 +8a9cec,0 +8a9ced,0 +8a9cee,0 +8a9cef,0 +8a9cf0,0 +8a9d10,0 +8a9d11,0 +8a9d12,0 +8a9d13,0 +8a9d14,0 +8a9d15,0 +8a9d16,0 +8a9d17,0 +8a9d18,0 +8a9d19,0 +8a9d1a,0 +8a9d1c,0 +8a9d1d,0 +8a9d1e,0 +8a9d1f,0 +8a9d20,0 +8a9d21,0 +8a9d22,0 +8a9d23,0 +8a9d24,0 +8a9d25,0 +8a9d26,0 +8a9d27,0 +8a9d28,0 +8a9d29,0 +8a9d2a,0 +8a9d2b,0 +8a9d2c,0 +8a9d2d,0 +8a9d2e,0 +8a9d2f,0 +8a9d30,0 +8a9d50,0 +8a9d51,0 +8a9d52,0 +8a9d53,0 +8a9d54,0 +8a9d55,0 +8a9d56,0 +8a9d57,0 +8a9d58,0 +8a9d59,0 +8a9d5a,0 +8a9d5c,0 +8a9d5d,0 +8a9d5e,0 +8a9d5f,0 +8a9d60,0 +8a9d61,0 +8a9d62,0 +8a9d63,0 +8a9d64,0 +8a9d65,0 +8a9d66,0 +8a9d67,0 +8a9d68,0 +8a9d69,0 +8a9d6a,0 +8a9d6b,0 +8a9d6c,0 +8a9d6d,0 +8a9d6e,0 +8a9d6f,0 +8a9d90,0 +8a9d91,0 +8a9d92,0 +8a9d93,0 +8a9d94,0 +8a9d95,0 +8a9d96,0 +8a9d97,0 +8a9d98,0 +8a9d99,0 +8a9d9a,0 +8a9d9c,0 +8a9d9d,0 +8a9d9e,0 +8a9d9f,0 +8a9da0,0 +8a9da1,0 +8a9da2,0 +8a9da3,0 +8a9da4,0 +8a9da6,0 +8a9da7,0 +8a9da8,0 +8a9da9,0 +8a9daa,0 +8a9dab,0 +8a9dac,0 +8a9dad,0 +8a9dae,0 +8a9dd0,0 +8a9dd1,0 +8a9dd2,0 +8a9dd3,0 +8a9dd4,0 +8a9dd5,0 +8a9dd6,0 +8a9dd7,0 +8a9dd8,0 +8a9dd9,0 +8a9dda,0 +8a9ddc,0 +8a9ddd,0 +8a9dde,0 +8a9ddf,0 +8a9de0,0 +8a9de1,0 +8a9de2,0 +8a9de3,0 +8a9de4,0 +8a9de6,0 +8a9de7,0 +8a9de8,0 +8a9de9,0 +8a9dea,0 +8a9deb,0 +8a9dec,0 +8a9ded,0 +8a9dee,0 +8a9e10,0 +8a9e11,0 +8a9e12,0 +8a9e13,0 +8a9e14,0 +8a9e15,0 +8a9e16,0 +8a9e17,0 +8a9e18,0 +8a9e19,0 +8a9e1a,0 +8a9e1c,0 +8a9e1d,0 +8a9e1e,0 +8a9e1f,0 +8a9e20,0 +8a9e21,0 +8a9e22,0 +8a9e23,0 +8a9e24,0 +8a9e26,0 +8a9e27,0 +8a9e28,0 +8a9e29,0 +8a9e2a,0 +8a9e2b,0 +8a9e2c,0 +8a9e2d,0 +8a9e2e,0 +8a9e50,0 +8a9e51,0 +8a9e52,0 +8a9e53,0 +8a9e54,0 +8a9e55,0 +8a9e56,0 +8a9e57,0 +8a9e58,0 +8a9e59,0 +8a9e5a,0 +8a9e5b,0 +8a9e5c,0 +8a9e5d,0 +8a9e5e,0 +8a9e5f,0 +8a9e60,0 +8a9e61,0 +8a9e62,0 +8a9e63,0 +8a9e64,0 +8a9e65,0 +8a9e66,0 +8a9e67,0 +8a9e68,0 +8a9e69,0 +8a9e6a,0 +8a9e6b,0 +8a9e6c,0 +8a9e6d,0 +8a9e6e,0 +8a9e90,0 +8a9e91,0 +8a9e92,0 +8a9e93,0 +8a9e94,0 +8a9e95,0 +8a9e96,0 +8a9e97,0 +8a9e98,0 +8a9e99,0 +8a9e9a,0 +8a9e9b,0 +8a9e9c,0 +8a9e9d,0 +8a9e9e,0 +8a9e9f,0 +8a9ea0,0 +8a9ea1,0 +8a9ea2,0 +8a9ea3,0 +8a9ea4,0 +8a9ea5,0 +8a9ea6,0 +8a9ea7,0 +8a9ea8,0 +8a9ea9,0 +8a9eaa,0 +8a9eab,0 +8a9eac,0 +8a9ead,0 +8a9eae,0 +8a9ed0,0 +8a9ed1,0 +8a9ed2,0 +8a9ed3,0 +8a9ed4,0 +8a9ed5,0 +8a9ed6,0 +8a9ed7,0 +8a9ed8,0 +8a9ed9,0 +8a9eda,0 +8a9edb,0 +8a9edc,0 +8a9edd,0 +8a9ede,0 +8a9edf,0 +8a9ee0,0 +8a9ee3,0 +8a9ee4,0 +8a9ee5,0 +8a9ee6,0 +8a9ee7,0 +8a9ee8,0 +8a9ee9,0 +8a9eea,0 +8a9eeb,0 +8a9eec,0 +8a9eed,0 +8a9eee,0 +8a9f10,0 +8a9f11,0 +8a9f12,0 +8a9f13,0 +8a9f14,0 +8a9f15,0 +8a9f16,0 +8a9f17,0 +8a9f18,0 +8a9f19,0 +8a9f1a,0 +8a9f1b,0 +8a9f1c,0 +8a9f1d,0 +8a9f1e,0 +8a9f1f,0 +8a9f20,0 +8a9f23,0 +8a9f24,0 +8a9f25,0 +8a9f26,0 +8a9f27,0 +8a9f28,0 +8a9f29,0 +8a9f2a,0 +8a9f2b,0 +8a9f2c,0 +8a9f2d,0 +8a9f2e,0 +8a9f50,0 +8a9f51,0 +8a9f52,0 +8a9f53,0 +8a9f55,0 +8a9f56,0 +8a9f57,0 +8a9f58,0 +8a9f59,0 +8a9f5a,0 +8a9f5b,0 +8a9f5c,0 +8a9f5d,0 +8a9f5e,0 +8a9f5f,0 +8a9f64,0 +8a9f65,0 +8a9f66,0 +8a9f67,0 +8a9f68,0 +8a9f69,0 +8a9f6a,0 +8a9f6b,0 +8a9f6c,0 +8a9f6d,0 +8a9f6e,0 +a98c30,c +a98c31,10 +a98c32,a +a98c33,e0 +a9e838,8 +a9e839,10 +a9e83a,d +a9e83b,d6 +ac9abc,c +ac9abd,10 +ac9abe,b +ac9abf,fd +ac9ac1,0 +ac9ac2,0 +ac9ac3,0 +acce88,c +acce89,10 +acce8a,b +acce8b,ee +acce8c,0 +acce8d,0 +acce8e,0 +acce8f,0 +acce90,0 +acce91,0 +acce94,0 +acce97,0 +acce98,0 +acce99,0 +acce9b,0 +ae5764,8 +ae5765,10 +ae5766,c +ae5767,fe +ae5768,0 +ae5769,0 +ae576a,0 +ae576b,0 +ae59e0,8 +ae59e1,10 +ae59e2,d +ae59e3,c +ae5df0,c +ae5df1,10 +ae5df2,d +ae5df3,b5 +ae5df8,c +ae5df9,10 +ae5dfa,b +ae5dfb,f8 +ae5e04,0 +ae5e05,0 +ae5e07,0 +ae6e48,c +ae6e49,10 +ae6e4a,b +ae6e4b,f3 +ae6e4c,1 +ae6e4d,f +ae6e4e,c0 +ae6e4f,21 +b06400,82 +b06402,e +b06403,de +b0640c,31 +b0640d,f8 +b0640e,0 +b0640f,2 +b06c2c,c +b06c2d,10 +b06c2e,d +b06c2f,fe +b06c31,28 +b06c33,20 +b16b50,c +b16b51,10 +b16b52,c +b16b53,a4 +b16b54,0 +b16b56,0 +b16b57,0 +b16b60,c +b16b61,10 +b16b62,c +b16b63,d3 +b16b64,0 +b16b65,0 +b16b66,0 +b16b67,0 +b17bb4,af +b17bb5,bf +b17bb6,0 +b17bb7,1c +b17bb8,af +b17bb9,a4 +b17bba,1 +b17bbb,40 +b17bbc,3c +b17bbd,4 +b17bbe,80 +b17bbf,40 +b17bc0,3c +b17bc1,5 +b17bc2,3 +b17bc3,48 +b17bc4,c +b17bc5,0 +b17bc6,3 +b17bc7,7c +b17bc8,34 +b17bc9,6 +b17bca,50 +b17bcb,0 +b17bcc,c +b17bcd,10 +b17bce,0 +b17bd0,0 +b17bd1,0 +b17bd2,0 +b17bd3,0 +b51694,c +b51695,10 +b51696,e +b51697,11 +b516c4,c +b516c5,10 +b516c6,e +b516c7,18 +b52784,c +b52785,10 +b52786,e +b52787,32 +b52788,0 +b52789,0 +b5278b,0 +b5278d,bf +b5278f,3c +b5293c,10 +b5293d,0 +b5293f,18 +b54b38,c +b54b39,10 +b54b3a,d +b54b3b,c5 +b54e5c,c +b54e5d,10 +b54e5e,d +b54e5f,a2 +b55a65,10 +b55a66,d +b55a67,eb +baed6c,0 +baed6d,0 +baed6f,0 +bb77b4,0 +bb77b5,0 +bb77b7,0 +bb7890,c +bb7891,10 +bb7892,c +bb7893,e3 +bb7894,0 +bb7895,0 +bb7897,0 +bb7950,c +bb7951,10 +bb7952,c +bb7953,ea +bb7954,0 +bb7955,0 +bb7957,0 +bb7ba0,0 +bb7ba1,0 +bb7ba3,0 +bb7bfc,0 +bb7bfd,0 +bb7bff,0 +bb7c3c,c +bb7c3d,10 +bb7c3e,c +bb7c3f,f1 +bb7c40,0 +bb7c41,0 +bb7c43,0 +bb7c58,c +bb7c59,10 +bb7c5a,c +bb7c5b,dc +bb7c5c,0 +bb7c5d,0 +bb7c5f,0 +bcecbc,8 +bcecbd,10 +bcecbe,a +bcecbf,a8 +bcecc1,0 +bcecc2,0 +bcecc3,0 +bcecc4,0 +bcecc5,0 +bcecc7,0 +bcecc8,0 +bcecc9,0 +bcecca,0 +bceccb,0 +bceccc,0 +bceccd,0 +bcecce,0 +bceccf,0 +bcecd0,0 +bcecd1,0 +bcecd3,0 +bda0a1,10 +bda0a2,a +bda0a3,29 +bda0d8,c +bda0d9,10 +bda0da,a +bda0db,86 +bda0e4,0 +bda0e5,0 +bda0e7,0 +bda264,c +bda265,10 +bda266,a +bda267,8a +bda270,0 +bda271,0 +bda273,0 +be9ac0,c +be9ac1,10 +be9ac2,a +be9ac3,b4 +be9ad8,c +be9ad9,10 +be9ada,a +be9adb,bd +be9ae4,0 +be9ae5,0 +be9bde,83 +be9bdf,83 +c004ec,8 +c004ed,10 +c004ee,c +c004ef,49 +c0067f,64 +c018a0,c +c018a1,10 +c018a2,c +c018a3,5e +c6c7a8,c +c6c7a9,10 +c6c7aa,c +c6c7ab,6e +c6c920,c +c6c921,10 +c6c922,c +c6c923,6e +c892dc,34 +c892dd,e +c892de,0 +c892df,1 +c8931c,34 +c8931d,a +c8931e,0 +c8931f,1 +c89745,10 +c89746,b +c89747,c3 +c89868,92 +c89869,e +c8986a,1d +c8986b,28 +c898a4,92 +c898a5,19 +c898a6,1d +c898a7,29 +c898c8,92 +c898c9,a +c898ca,1d +c898cb,2a +cb6875,10 +cb6876,c +cb6877,f8 +d12f78,34 +d12f79,f +d12f7b,0 +d74964,10 +d74965,0 +d7e140,34 +d7e141,e +d7e142,0 +d7e143,1 +d7e144,80 +d7e146,e +d7e147,de +d7e160,84 +d7e161,88 +d7e163,a4 +d7e164,34 +d7e165,1 +d7e167,63 +d7e168,14 +d7e169,28 +d7e16b,3 +d7e16c,34 +d7e16d,2 +d7e16e,20 +d7e16f,49 +d7e170,10 +d7e171,0 +d7e172,0 +d7e173,6 +d7e174,0 +d7e177,0 +d7e178,94 +d7e179,69 +d7e17a,e +d7e17b,d6 +d7e17c,31 +d7e17d,29 +d7e17e,0 +d7e17f,4 +d7e180,15 +d7e181,20 +d7e183,2 +d7e184,34 +d7e185,2 +d7e186,20 +d7e187,44 +d7e188,34 +d7e189,2 +d7e18a,20 +d7e18b,43 +d7e18c,8f +d7e18d,bf +d7e18f,14 +d7e190,27 +d7e191,bd +d7e192,0 +d7e193,18 +d7e194,3 +d7e195,e0 +d7e197,8 +d7e198,0 +d7e199,0 +d7e19a,0 +d7e19b,0 +d7e398,94 +d7e399,89 +d7e39a,e +d7e39b,d6 +d7e39c,31 +d7e39d,28 +d7e39f,10 +d7e3a0,31 +d7e3a1,29 +d7e3a3,4 +d7e3a4,1 +d7e3a5,9 +d7e3a6,40 +d7e3a7,25 +d7e3a8,34 +d7e3a9,9 +d7e3ab,14 +d7e3ac,34 +d7e3ad,1 +d7e3ae,0 +d7e3af,5f +d7e3b0,14 +d7e3b1,23 +d7e3b3,6 +d7e3b4,0 +d7e3b5,0 +d7e3b7,0 +d7e3b8,11 +d7e3b9,9 +d7e3bb,4 +d7e3bc,0 +d7e3bd,0 +d7e3be,0 +d7e3bf,0 +d7e3c0,34 +d7e3c1,2 +d7e3c2,0 +d7e3c3,1 +d7e3c4,3 +d7e3c5,e0 +d7e3c7,8 +d7e3c8,0 +d7e3c9,0 +d7e3cb,0 +d7e3cc,14 +d7e3cd,c2 +d7e3cf,9 +d7e3d0,34 +d7e3d1,1 +d7e3d3,63 +d7e3d4,14 +d7e3d5,23 +d7e3d7,7 +d7e3d8,8c +d7e3d9,8a +d7e3db,10 +d7e3dc,15 +d7e3dd,40 +d7e3df,5 +d7e3e0,0 +d7e3e1,0 +d7e3e2,0 +d7e3e3,0 +d7e3e4,15 +d7e3e5,9 +d7e3e7,3 +d7e3e8,34 +d7e3e9,2 +d7e3eb,1 +d7e3ec,3 +d7e3ed,e0 +d7e3ef,8 +d7e3f0,0 +d7e3f1,0 +d7e3f2,0 +d7e3f3,0 +d7e3f4,34 +d7e3f5,2 +d7e3f6,0 +d7e3f7,0 +d7e3f8,3 +d7e3f9,e0 +d7e3fa,0 +d7e3fb,8 +d7e3fc,0 +d7e3fd,0 +d7e3ff,0 +d7e76c,8f +d7e76d,b8 +d7e76e,0 +d7e76f,44 +d7e778,87 +d7e779,18 +d7e77b,a4 +d7e77c,80 +d7e77d,49 +d7e77e,e +d7e77f,de +d7e784,34 +d7e786,0 +d7e787,1 +d7e788,2 +d7e789,0 +d7e78a,20 +d7e78b,21 +d7e798,15 +d7e79b,2 +d7e79c,34 +d7e79d,19 +d7e79e,0 +d7e79f,5f +d7e7a0,17 +d7e7a1,38 +d7e7a2,0 +d7e7a3,5 +d7e7a4,ae +d7e7a5,b +d7e7a6,1 +d7e7a7,80 +d7e890,0 +d7e891,0 +d7e893,0 +d7e8a0,10 +d7e8a1,0 +d7e8a3,7 +d7e8a4,31 +d7e8a5,4a +d7e8a7,4 +d7e8b0,0 +d7e8b3,0 +d7e8b4,0 +d7e8b5,0 +d7e8b7,0 +d7e8c0,34 +d7e8c1,b +d7e8c2,0 +d7e8c3,14 +d7e8c8,1 +d7e8c9,4b +d7e8ca,50 +d7e8cb,25 +d7e8cc,15 +d7e8cd,4b +d7e8cf,14 +d7e8d4,34 +d7e8d5,e +d7e8d6,0 +d7e8d7,1 +d7e8d8,80 +d7e8da,e +d7e8db,de +d7e8e0,57 +d7e8e3,f +d7ebbc,c +d7ebbd,10 +d7ebbe,c +d7ebbf,0 +d7ec1c,0 +d7ec1d,0 +d7ec1f,0 +d7ec20,34 +d7ec23,5 +db13d3,76 +db532c,c +db532d,10 +db532e,c +db532f,10 +df264f,76 +df7cb0,c +df7cb1,10 +df7cb2,c +df7cb3,8e +e09f68,80 +e09f6a,e +e09f6b,de +e09f74,31 +e09f75,f8 +e09f76,0 +e09f77,4 +e09fb0,c +e09fb1,10 +e09fb2,c +e09fb3,8 +e29388,8 +e29389,10 +e2938a,c +e2938b,27 +e2a044,c +e2a045,10 +e2a046,c +e2a047,30 +e2b0b5,10 +e2b0b6,c +e2b0b7,38 +e2f093,34 +e9e1d8,34 +e9e1d9,9 +e9e1da,40 +e9e1db,0 +e9e1f0,34 +e9e1f2,5b +e9e1f3,8 +e9e200,34 +e9e202,0 +e9e203,a +e9e20d,a9 +ebb85c,c +ebb85d,10 +ebb85e,c +ebb85f,79 +ebb865,40 +ebb867,12 +ebb86c,10 +ebb86d,0 +ebb86e,0 +ebb86f,14 +ec68bc,8f +ec68bd,ad +ec68be,0 +ec68bf,2c +ec68c0,34 +ec68c1,c +ec68c2,0 +ec68c3,a +ec68c4,a5 +ec68c5,ac +ec68c6,1 +ec68c7,10 +ec68c8,c +ec68c9,10 +ec68ca,a +ec68cb,46 +ec68cc,2 +ec68cd,0 +ec68ce,28 +ec68cf,21 +ec68d0,0 +ec68d1,0 +ec68d2,0 +ec68d3,0 +ec68d4,0 +ec68d5,0 +ec68d7,0 +ec68da,0 +ec68db,0 +ec68dc,0 +ec68dd,0 +ec68de,0 +ec68df,0 +ec68e0,0 +ec68e1,0 +ec68e2,0 +ec68e3,0 +ec69ad,ad +ec69af,2c +ec69b0,34 +ec69b1,c +ec69b2,0 +ec69b3,a +ec69b4,a5 +ec69b5,ac +ec69b6,1 +ec69b7,10 +ec69b8,c +ec69b9,10 +ec69ba,a +ec69bb,46 +ec69bc,2 +ec69bd,0 +ec69be,28 +ec69bf,21 +ec69c0,0 +ec69c1,0 +ec69c3,0 +ec69c4,0 +ec69c5,0 +ec69c6,0 +ec69c7,0 +ec69c8,0 +ec69c9,0 +ec69cb,0 +ec69cc,0 +ec69cd,0 +ec69ce,0 +ec69cf,0 +ec69d2,0 +ec69d3,0 +ec9ce7,7a +3480000,27 +3480001,bd +3480002,ff +3480003,e8 +3480004,af +3480005,bf +3480007,10 +3480008,3c +3480009,4 +348000a,80 +348000b,40 +348000c,24 +348000d,84 +348000e,50 +3480010,3c +3480011,5 +3480012,3 +3480013,4b +3480014,24 +3480015,a5 +3480016,30 +3480018,34 +3480019,6 +348001a,b0 +348001c,c +348001e,3 +348001f,7c +3480024,c +3480025,10 +3480026,16 +3480027,fa +348002c,3c +348002d,2 +348002e,80 +348002f,12 +3480030,24 +3480031,42 +3480032,d2 +3480033,a0 +3480034,24 +3480035,e +3480036,1 +3480037,40 +3480038,3c +3480039,1 +348003a,80 +348003b,10 +348003c,ac +348003d,2e +348003e,e5 +3480040,8f +3480041,bf +3480043,10 +3480044,27 +3480045,bd +3480047,18 +3480048,3 +3480049,e0 +348004b,8 +3481c03,df +3481c04,df +3481c05,df +3481c06,df +3481c07,df +3481c08,df +3481c09,df +3481c0a,df +3481c0b,df +3481c0c,df +3481c0d,df +3481c0e,df +3481c0f,df +3481c10,df +3481c11,df +3481c12,df +3481c13,df +3481c14,df +3481c15,df +3481c16,df +3481c17,df +3481c18,df +3481c19,df +3481c1a,df +3481c1b,df +3481c1c,df +3481c1d,df +3481c1e,df +3481c1f,df +3481c20,df +3481c21,df +3481c22,df +3481c23,df +3481c24,df +3481c25,df +3481c26,df +3481c27,df +3481c28,df +3481c29,df +3481c2a,df +3481c2b,df +3481c2c,df +3481c2d,df +3481c2e,df +3481c2f,df +3481c30,df +3481c31,df +3481c32,df +3481c33,df +3481c34,df +3481c35,df +3481c36,df +3481c37,df +3481c38,df +3481c39,df +3481c3a,df +3481c3b,df +3481c3c,df +3481c3d,df +3481c3e,df +3481c3f,df +3481c40,df +3481c41,df +3481c42,df +3481c43,df +3481c44,df +3481c45,df +3481c46,df +3481c47,df +3481c48,df +3481c49,df +3481c4a,df +3481c4b,df +3481c4c,df +3481c4d,df +3481c4e,df +3481c4f,df +3481c50,df +3481c51,df +3481c52,df +3481c53,df +3481c54,df +3481c55,df +3481c56,df +3481c57,df +3481c58,df +3481c59,df +3481c5a,df +3481c5b,df +3481c5c,df +3481c5d,df +3481c5e,df +3481c5f,df +3481c60,df +3481c61,df +3481c62,df +3481c63,df +3481c64,df +3481c65,df +3481c66,df +3481c67,df +3481c68,df +3481c69,df +3481c6a,df +3481c6b,df +3481c6c,df +3481c6d,df +3481c6e,df +3481c6f,df +3481c70,df +3481c71,df +3481c72,df +3481c73,df +3481c74,df +3481c75,df +3481c76,df +3481c77,df +3481c78,df +3481c79,df +3481c7a,df +3481c7b,df +3481c7c,df +3481c7d,df +3481c7e,df +3481c7f,df +3481c80,df +3481c81,df +3481c82,df +3481c83,df +3481c84,df +3481c85,df +3481c86,df +3481c87,df +3481c88,df +3481c89,df +3481c8a,df +3481c8b,df +3481c8c,df +3481c8d,df +3481c8e,df +3481c8f,df +3481c90,df +3481c91,df +3481c92,df +3481c93,df +3481c94,df +3481c95,df +3481c96,df +3481c97,df +3481c98,df +3481c99,df +3481c9a,df +3481c9b,df +3481c9c,df +3481c9d,df +3481c9e,df +3481c9f,df +3481ca0,df +3481ca1,df +3481ca2,df +3481ca3,df +3481ca4,df +3481ca5,df +3481ca6,df +3481ca7,df +3481ca8,df +3481ca9,df +3481caa,df +3481cab,df +3481cac,df +3481cad,df +3481cae,df +3481caf,df +3481cb0,df +3481cb1,df +3481cb2,df +3481cb3,df +3481cb4,df +3481cb5,df +3481cb6,df +3481cb7,df +3481cb8,df +3481cb9,df +3481cba,df +3481cbb,df +3481cbc,df +3481cbd,df +3481cbe,df +3481cbf,df +3481cc0,df +3481cc1,df +3481cc2,df +3481cc3,df +3481cc4,df +3481cc5,df +3481cc6,df +3481cc7,df +3481cc8,df +3481cc9,df +3481cca,df +3481ccb,df +3481ccc,df +3481ccd,df +3481cce,df +3481ccf,df +3481cd0,df +3481cd1,df +3481cd2,df +3481cd3,df +3481cd4,df +3481cd5,df +3481cd6,df +3481cd7,df +3481cd8,df +3481cd9,df +3481cda,df +3481cdb,df +3481cdc,df +3481cdd,df +3481cde,df +3481cdf,df +3481ce0,df +3481ce1,df +3481ce2,df +3481ce3,df +3481ce4,df +3481ce5,df +3481ce6,df +3481ce7,df +3481ce8,df +3481ce9,df +3481cea,df +3481ceb,df +3481cec,df +3481ced,df +3481cee,df +3481cef,df +3481cf0,df +3481cf1,df +3481cf2,df +3481cf3,df +3481cf4,df +3481cf5,df +3481cf6,df +3481cf7,df +3481cf8,df +3481cf9,df +3481cfa,df +3481cfb,df +3481cfc,df +3481cfd,df +3481cfe,df +3481cff,df +3481d00,df +3481d01,df +3481d02,df +3481d03,5a +3481d04,3b +3481d05,5d +3481d06,5c +3481d07,5e +3481d08,51 +3481d09,52 +3481d0a,53 +3482050,ff +3482051,ff +3482052,ff +3482053,ff +3482054,ff +3482055,ff +3482056,ff +3482057,ff +3482058,80 +3482059,40 +348205a,27 +348205b,30 +348205c,80 +348205d,40 +348205e,25 +348205f,78 +3482060,ff +3482061,ff +3482062,ff +3482063,ff +3482064,ff +3482065,ff +3482066,ff +3482067,ff +3482068,80 +3482069,40 +348206a,27 +348206b,30 +348206c,80 +348206d,40 +348206e,25 +348206f,94 +3482070,ff +3482071,ff +3482072,ff +3482073,ff +3482074,ff +3482075,ff +3482076,ff +3482077,ff +3482078,80 +3482079,40 +348207a,27 +348207b,30 +348207c,80 +348207d,40 +348207e,25 +348207f,bc +3482080,ff +3482081,ff +3482082,ff +3482083,ff +3482084,ff +3482085,ff +3482086,ff +3482087,ff +3482088,80 +3482089,40 +348208a,27 +348208b,30 +348208c,80 +348208d,40 +348208e,25 +348208f,e4 +3482090,ff +3482091,ff +3482092,ff +3482093,ff +3482094,ff +3482095,ff +3482096,ff +3482097,ff +3482098,80 +3482099,40 +348209a,27 +348209b,30 +348209c,80 +348209d,40 +348209e,26 +348209f,c +34820a0,53 +34820a1,41 +34820a2,23 +34820a3,f8 +34820a5,d1 +34820a6,ff +34820a7,ff +34820a8,80 +34820a9,40 +34820aa,26 +34820ab,5c +34820ac,80 +34820ad,40 +34820ae,26 +34820af,34 +34820b0,ff +34820b1,ff +34820b2,ff +34820b3,ff +34820b4,ff +34820b5,ff +34820b6,ff +34820b7,ff +34820b8,80 +34820b9,40 +34820ba,27 +34820bb,30 +34820bc,80 +34820bd,40 +34820be,26 +34820bf,70 +34820c0,ff +34820c1,ff +34820c2,ff +34820c3,ff +34820c4,ff +34820c5,ff +34820c6,ff +34820c7,ff +34820c8,80 +34820c9,40 +34820ca,27 +34820cb,30 +34820cc,80 +34820cd,40 +34820ce,26 +34820cf,8c +34820d0,ff +34820d1,ff +34820d2,ff +34820d3,ff +34820d4,ff +34820d5,ff +34820d6,ff +34820d7,ff +34820d8,80 +34820d9,40 +34820da,27 +34820db,30 +34820dc,80 +34820dd,40 +34820de,26 +34820df,a8 +34820e0,53 +34820e1,41 +34820e2,38 +34820e3,43 +34820e5,eb +34820e6,15 +34820e7,ff +34820e8,80 +34820e9,40 +34820ea,27 +34820eb,48 +34820ec,80 +34820ed,40 +34820ee,25 +34820ef,70 +34820f0,53 +34820f1,41 +34820f2,37 +34820f3,44 +34820f5,eb +34820f6,16 +34820f7,ff +34820f8,80 +34820f9,40 +34820fa,27 +34820fb,48 +34820fc,80 +34820fd,40 +34820fe,25 +34820ff,70 +3482100,53 +3482101,41 +3482102,39 +3482103,45 +3482105,eb +3482106,17 +3482107,ff +3482108,80 +3482109,40 +348210a,27 +348210b,48 +348210c,80 +348210d,40 +348210e,25 +348210f,70 +3482110,53 +3482111,41 +3482112,6b +3482113,46 +3482114,1 +3482115,77 +3482116,18 +3482117,ff +3482118,80 +3482119,40 +348211a,27 +348211b,48 +348211c,80 +348211d,40 +348211e,25 +348211f,70 +3482120,53 +3482121,41 +3482122,3f +3482123,47 +3482125,f4 +3482126,19 +3482127,ff +3482128,80 +3482129,40 +348212a,27 +348212b,48 +348212c,80 +348212d,40 +348212e,25 +348212f,70 +3482130,53 +3482131,41 +3482132,67 +3482133,5d +3482134,1 +3482135,73 +3482136,1c +3482137,ff +3482138,80 +3482139,40 +348213a,27 +348213b,48 +348213c,80 +348213d,40 +348213e,25 +348213f,70 +3482140,53 +3482141,41 +3482142,68 +3482143,7a +3482144,1 +3482145,74 +3482146,1d +3482147,ff +3482148,80 +3482149,40 +348214a,27 +348214b,48 +348214c,80 +348214d,40 +348214e,25 +348214f,70 +3482150,53 +3482151,41 +3482152,70 +3482153,f9 +3482154,1 +3482155,76 +3482156,1e +3482157,ff +3482158,80 +3482159,40 +348215a,27 +348215b,48 +348215c,80 +348215d,40 +348215e,25 +348215f,70 +3482160,53 +3482161,41 +3482162,6a +3482163,97 +3482164,1 +3482165,76 +3482166,20 +3482167,ff +3482168,80 +3482169,40 +348216a,27 +348216b,48 +348216c,80 +348216d,40 +348216e,25 +348216f,70 +3482170,53 +3482171,41 +3482172,a +3482173,6 +3482175,b9 +3482176,1 +3482177,3 +3482178,80 +3482179,40 +348217a,27 +348217b,84 +348217c,80 +348217d,40 +348217e,25 +348217f,70 +3482180,53 +3482181,41 +3482182,a +3482183,1c +3482185,b9 +3482186,1 +3482187,4 +3482188,80 +3482189,40 +348218a,27 +348218b,84 +348218c,80 +348218d,40 +348218e,25 +348218f,70 +3482190,53 +3482191,41 +3482192,a +3482193,1d +3482195,b9 +3482196,1 +3482197,5 +3482198,80 +3482199,40 +348219a,27 +348219b,84 +348219c,80 +348219d,40 +348219e,25 +348219f,70 +34821a0,53 +34821a1,41 +34821a2,a +34821a3,1e +34821a5,b9 +34821a6,1 +34821a7,6 +34821a8,80 +34821a9,40 +34821aa,27 +34821ab,84 +34821ac,80 +34821ad,40 +34821ae,25 +34821af,70 +34821b0,53 +34821b1,41 +34821b2,a +34821b3,2a +34821b5,b9 +34821b6,1 +34821b7,7 +34821b8,80 +34821b9,40 +34821ba,27 +34821bb,84 +34821bc,80 +34821bd,40 +34821be,25 +34821bf,70 +34821c0,53 +34821c1,41 +34821c2,a +34821c3,61 +34821c5,b9 +34821c6,1 +34821c7,a +34821c8,80 +34821c9,40 +34821ca,27 +34821cb,84 +34821cc,80 +34821cd,40 +34821ce,25 +34821cf,70 +34821d0,4d +34821d1,41 +34821d2,f5 +34821d3,62 +34821d5,b8 +34821d6,2 +34821d8,80 +34821d9,40 +34821da,27 +34821db,84 +34821dc,80 +34821dd,40 +34821de,25 +34821df,70 +34821e0,4d +34821e1,41 +34821e2,f5 +34821e3,63 +34821e5,b8 +34821e6,2 +34821e7,1 +34821e8,80 +34821e9,40 +34821ea,27 +34821eb,84 +34821ec,80 +34821ed,40 +34821ee,25 +34821ef,70 +34821f0,4d +34821f1,41 +34821f2,f5 +34821f3,64 +34821f5,b8 +34821f6,2 +34821f7,2 +34821f8,80 +34821f9,40 +34821fa,27 +34821fb,84 +34821fc,80 +34821fd,40 +34821fe,25 +34821ff,70 +3482200,4d +3482201,41 +3482202,f5 +3482203,65 +3482205,b8 +3482206,2 +3482207,3 +3482208,80 +3482209,40 +348220a,27 +348220b,84 +348220c,80 +348220d,40 +348220e,25 +348220f,70 +3482210,4d +3482211,41 +3482212,f5 +3482213,7c +3482215,b8 +3482216,2 +3482217,4 +3482218,80 +3482219,40 +348221a,27 +348221b,84 +348221c,80 +348221d,40 +348221e,25 +348221f,70 +3482220,4d +3482221,41 +3482222,f5 +3482223,7d +3482225,b8 +3482226,2 +3482227,5 +3482228,80 +3482229,40 +348222a,27 +348222b,84 +348222c,80 +348222d,40 +348222e,25 +348222f,70 +3482230,4d +3482231,41 +3482232,f5 +3482233,7e +3482235,b8 +3482236,2 +3482237,6 +3482238,80 +3482239,40 +348223a,27 +348223b,84 +348223c,80 +348223d,40 +348223e,25 +348223f,70 +3482240,4d +3482241,41 +3482242,f5 +3482243,7f +3482245,b8 +3482246,2 +3482247,7 +3482248,80 +3482249,40 +348224a,27 +348224b,84 +348224c,80 +348224d,40 +348224e,25 +348224f,70 +3482250,4d +3482251,41 +3482252,f5 +3482253,a2 +3482255,b8 +3482256,2 +3482257,8 +3482258,80 +3482259,40 +348225a,27 +348225b,84 +348225c,80 +348225d,40 +348225e,25 +348225f,70 +3482260,4d +3482261,41 +3482262,f5 +3482263,87 +3482265,b8 +3482266,2 +3482267,9 +3482268,80 +3482269,40 +348226a,27 +348226b,84 +348226c,80 +348226d,40 +348226e,25 +348226f,70 +3482270,4d +3482271,41 +3482272,e4 +3482273,88 +3482275,c8 +3482276,4 +3482278,80 +3482279,40 +348227a,27 +348227b,84 +348227c,80 +348227d,40 +348227e,25 +348227f,70 +3482280,4d +3482281,41 +3482282,e4 +3482283,89 +3482285,c8 +3482286,4 +3482287,1 +3482288,80 +3482289,40 +348228a,27 +348228b,84 +348228c,80 +348228d,40 +348228e,25 +348228f,70 +3482290,4d +3482291,41 +3482292,e4 +3482293,8a +3482295,c8 +3482296,4 +3482297,2 +3482298,80 +3482299,40 +348229a,27 +348229b,84 +348229c,80 +348229d,40 +348229e,25 +348229f,70 +34822a0,4d +34822a1,41 +34822a2,e4 +34822a3,8b +34822a5,c8 +34822a6,4 +34822a7,3 +34822a8,80 +34822a9,40 +34822aa,27 +34822ab,84 +34822ac,80 +34822ad,40 +34822ae,25 +34822af,70 +34822b0,4d +34822b1,41 +34822b2,e4 +34822b3,8c +34822b5,c8 +34822b6,4 +34822b7,4 +34822b8,80 +34822b9,40 +34822ba,27 +34822bb,84 +34822bc,80 +34822bd,40 +34822be,25 +34822bf,70 +34822c0,4d +34822c1,41 +34822c2,e4 +34822c3,8e +34822c5,c8 +34822c6,4 +34822c7,5 +34822c8,80 +34822c9,40 +34822ca,27 +34822cb,84 +34822cc,80 +34822cd,40 +34822ce,25 +34822cf,70 +34822d0,4d +34822d1,41 +34822d2,e4 +34822d3,8f +34822d5,c8 +34822d6,4 +34822d7,6 +34822d8,80 +34822d9,40 +34822da,27 +34822db,84 +34822dc,80 +34822dd,40 +34822de,25 +34822df,70 +34822e0,4d +34822e1,41 +34822e2,e4 +34822e3,a3 +34822e5,c8 +34822e6,4 +34822e7,7 +34822e8,80 +34822e9,40 +34822ea,27 +34822eb,84 +34822ec,80 +34822ed,40 +34822ee,25 +34822ef,70 +34822f0,4d +34822f1,41 +34822f2,e4 +34822f3,a5 +34822f5,c8 +34822f6,4 +34822f7,8 +34822f8,80 +34822f9,40 +34822fa,27 +34822fb,84 +34822fc,80 +34822fd,40 +34822fe,25 +34822ff,70 +3482300,4d +3482301,41 +3482302,e4 +3482303,92 +3482305,c8 +3482306,4 +3482307,9 +3482308,80 +3482309,40 +348230a,27 +348230b,84 +348230c,80 +348230d,40 +348230e,25 +348230f,70 +3482310,53 +3482311,41 +3482312,2 +3482313,93 +3482315,aa +3482316,3 +3482317,ff +3482318,80 +3482319,40 +348231a,27 +348231b,a0 +348231c,80 +348231d,40 +348231e,25 +348231f,70 +3482320,53 +3482321,41 +3482322,2 +3482323,94 +3482325,aa +3482326,4 +3482327,ff +3482328,80 +3482329,40 +348232a,27 +348232b,a0 +348232c,80 +348232d,40 +348232e,25 +348232f,70 +3482330,53 +3482331,41 +3482332,2 +3482333,95 +3482335,aa +3482336,5 +3482337,ff +3482338,80 +3482339,40 +348233a,27 +348233b,a0 +348233c,80 +348233d,40 +348233e,25 +348233f,70 +3482340,53 +3482341,41 +3482342,2 +3482343,a6 +3482345,aa +3482346,6 +3482347,ff +3482348,80 +3482349,40 +348234a,27 +348234b,a0 +348234c,80 +348234d,40 +348234e,25 +348234f,70 +3482350,53 +3482351,41 +3482352,2 +3482353,a9 +3482355,aa +3482356,7 +3482357,ff +3482358,80 +3482359,40 +348235a,27 +348235b,a0 +348235c,80 +348235d,40 +348235e,25 +348235f,70 +3482360,53 +3482361,41 +3482362,2 +3482363,9b +3482365,aa +3482366,8 +3482367,ff +3482368,80 +3482369,40 +348236a,27 +348236b,a0 +348236c,80 +348236d,40 +348236e,25 +348236f,70 +3482370,53 +3482371,41 +3482372,2 +3482373,9f +3482375,aa +3482376,b +3482377,ff +3482378,80 +3482379,40 +348237a,27 +348237b,a0 +348237c,80 +348237d,40 +348237e,25 +348237f,70 +3482380,53 +3482381,41 +3482382,2 +3482383,a0 +3482385,aa +3482386,c +3482387,ff +3482388,80 +3482389,40 +348238a,27 +348238b,a0 +348238c,80 +348238d,40 +348238e,25 +348238f,70 +3482390,53 +3482391,41 +3482392,2 +3482393,a1 +3482395,aa +3482396,d +3482397,ff +3482398,80 +3482399,40 +348239a,27 +348239b,a0 +348239c,80 +348239d,40 +348239e,25 +348239f,70 +34823a0,53 +34823a1,3d +34823a2,43 +34823a3,c +34823a5,f8 +34823a6,ff +34823a7,ff +34823a8,80 +34823a9,40 +34823aa,27 +34823ab,38 +34823ac,80 +34823ad,40 +34823ae,25 +34823af,70 +34823b0,4d +34823b1,83 +34823b2,f7 +34823b3,55 +34823b5,b7 +34823b6,ff +34823b7,ff +34823b8,80 +34823b9,40 +34823ba,27 +34823bb,30 +34823bc,80 +34823bd,40 +34823be,25 +34823bf,70 +34823c0,4d +34823c1,92 +34823c2,db +34823c3,e6 +34823c5,d8 +34823c6,ff +34823c7,ff +34823c8,80 +34823c9,40 +34823ca,27 +34823cb,30 +34823cc,80 +34823cd,40 +34823ce,26 +34823cf,dc +34823d0,4d +34823d1,93 +34823d2,da +34823d3,e6 +34823d5,d8 +34823d6,ff +34823d7,ff +34823d8,80 +34823d9,40 +34823da,27 +34823db,30 +34823dc,80 +34823dd,40 +34823de,26 +34823df,dc +34823e0,4d +34823e1,94 +34823e2,d9 +34823e3,e6 +34823e5,d8 +34823e6,ff +34823e7,ff +34823e8,80 +34823e9,40 +34823ea,27 +34823eb,30 +34823ec,80 +34823ed,40 +34823ee,26 +34823ef,dc +34823f0,4d +34823f1,8e +34823f2,e0 +34823f3,32 +34823f5,ce +34823f6,ff +34823f7,ff +34823f8,80 +34823f9,40 +34823fa,27 +34823fb,30 +34823fc,80 +34823fd,40 +34823fe,26 +34823ff,f8 +3482400,4d +3482401,8f +3482402,e0 +3482403,32 +3482405,ce +3482406,ff +3482407,ff +3482408,80 +3482409,40 +348240a,27 +348240b,30 +348240c,80 +348240d,40 +348240e,26 +348240f,f8 +3482410,4d +3482411,90 +3482412,e0 +3482413,32 +3482415,ce +3482416,ff +3482417,ff +3482418,80 +3482419,40 +348241a,27 +348241b,30 +348241c,80 +348241d,40 +348241e,26 +348241f,f8 +3482420,4d +3482421,8c +3482422,ee +3482423,34 +3482425,bb +3482426,ff +3482427,ff +3482428,80 +3482429,40 +348242a,27 +348242b,30 +348242c,80 +348242d,40 +348242e,25 +348242f,70 +3482430,4d +3482431,8d +3482432,ee +3482433,34 +3482435,bb +3482436,ff +3482437,ff +3482438,80 +3482439,40 +348243a,27 +348243b,30 +348243c,80 +348243d,40 +348243e,25 +348243f,70 +3482440,53 +3482441,41 +3482442,13 +3482443,e9 +3482445,bd +3482446,ff +3482447,ff +3482448,80 +3482449,40 +348244a,27 +348244b,c8 +348244c,80 +348244d,40 +348244e,25 +348244f,70 +3482450,53 +3482451,41 +3482452,1e +3482453,e4 +3482455,cd +3482456,ff +3482457,ff +3482458,80 +3482459,40 +348245a,27 +348245b,e8 +348245c,80 +348245d,40 +348245e,26 +348245f,c4 +3482460,53 +3482461,41 +3482462,1f +3482463,e8 +3482465,cd +3482466,ff +3482467,ff +3482468,80 +3482469,40 +348246a,28 +348246b,8 +348246c,80 +348246d,40 +348246e,25 +348246f,70 +3482470,ff +3482471,ff +3482472,ff +3482473,ff +3482474,ff +3482475,ff +3482476,ff +3482477,ff +3482478,80 +3482479,40 +348247a,27 +348247b,30 +348247c,80 +348247d,40 +348247e,28 +348247f,30 +3482480,53 +3482481,41 +3482482,46 +3482483,4a +3482484,1 +3482485,e +3482486,ff +3482487,ff +3482488,80 +3482489,40 +348248a,28 +348248b,78 +348248c,80 +348248d,40 +348248e,28 +348248f,5c +3482490,53 +3482491,41 +3482492,3 +3482493,b0 +3482495,b6 +3482496,6 +3482497,ff +3482498,80 +3482499,40 +348249a,28 +348249b,88 +348249c,80 +348249d,40 +348249e,25 +348249f,70 +34824a0,53 +34824a1,41 +34824a2,4 +34824a3,b1 +34824a5,b6 +34824a6,7 +34824a7,ff +34824a8,80 +34824a9,40 +34824aa,28 +34824ab,88 +34824ac,80 +34824ad,40 +34824ae,25 +34824af,70 +34824b0,53 +34824b1,41 +34824b2,5 +34824b3,b2 +34824b5,b6 +34824b6,8 +34824b7,ff +34824b8,80 +34824b9,40 +34824ba,28 +34824bb,88 +34824bc,80 +34824bd,40 +34824be,25 +34824bf,70 +34824c0,53 +34824c1,41 +34824c2,6 +34824c3,b3 +34824c5,b6 +34824c6,9 +34824c7,ff +34824c8,80 +34824c9,40 +34824ca,28 +34824cb,88 +34824cc,80 +34824cd,40 +34824ce,25 +34824cf,70 +34824d0,53 +34824d1,41 +34824d2,7 +34824d3,b6 +34824d5,b6 +34824d6,a +34824d7,ff +34824d8,80 +34824d9,40 +34824da,28 +34824db,88 +34824dc,80 +34824dd,40 +34824de,25 +34824df,70 +34824e0,53 +34824e1,41 +34824e2,8 +34824e3,b7 +34824e5,b6 +34824e6,b +34824e7,ff +34824e8,80 +34824e9,40 +34824ea,28 +34824eb,88 +34824ec,80 +34824ed,40 +34824ee,25 +34824ef,70 +34824f0,53 +34824f1,41 +34824f2,4 +34824f3,b8 +34824f5,b6 +34824f6,c +34824f7,ff +34824f8,80 +34824f9,40 +34824fa,28 +34824fb,88 +34824fc,80 +34824fd,40 +34824fe,25 +34824ff,70 +3482500,53 +3482501,41 +3482502,6 +3482503,b9 +3482505,b6 +3482506,d +3482507,ff +3482508,80 +3482509,40 +348250a,28 +348250b,88 +348250c,80 +348250d,40 +348250e,25 +348250f,70 +3482510,53 +3482511,41 +3482512,3 +3482513,ba +3482515,b6 +3482516,e +3482517,ff +3482518,80 +3482519,40 +348251a,28 +348251b,88 +348251c,80 +348251d,40 +348251e,25 +348251f,70 +3482520,53 +3482521,41 +3482522,8 +3482523,bb +3482525,b6 +3482526,f +3482527,ff +3482528,80 +3482529,40 +348252a,28 +348252b,88 +348252c,80 +348252d,40 +348252e,25 +348252f,70 +3482530,53 +3482531,41 +3482532,5 +3482533,bc +3482535,b6 +3482536,10 +3482537,ff +3482538,80 +3482539,40 +348253a,28 +348253b,88 +348253c,80 +348253d,40 +348253e,25 +348253f,70 +3482540,53 +3482541,41 +3482542,7 +3482543,bd +3482545,b6 +3482546,11 +3482547,ff +3482548,80 +3482549,40 +348254a,28 +348254b,88 +348254c,80 +348254d,40 +348254e,25 +348254f,70 +3482550,4d +3482552,e5 +3482553,37 +3482555,c7 +3482556,ff +3482557,ff +3482558,80 +3482559,40 +348255a,27 +348255b,30 +348255c,80 +348255d,40 +348255e,25 +348255f,70 +3482560,4d +3482561,95 +3482562,b8 +3482563,dc +3482564,1 +3482565,19 +3482566,ff +3482567,ff +3482568,80 +3482569,40 +348256a,27 +348256b,30 +348256c,80 +348256d,40 +348256e,27 +348256f,14 +3482570,3 +3482571,e0 +3482573,8 +3482574,34 +3482575,a2 +3482578,90 +3482579,88 +348257b,7d +348257c,34 +348257d,1 +348257f,ff +3482580,11 +3482581,1 +3482583,2 +3482584,34 +3482585,2 +3482587,8 +3482588,34 +3482589,2 +348258b,9 +348258c,3 +348258d,e0 +348258f,8 +3482594,90 +3482595,88 +3482597,a3 +3482598,31 +3482599,8 +348259b,c0 +348259c,11 +348259f,5 +34825a0,34 +34825a1,2 +34825a3,54 +34825a4,34 +34825a5,1 +34825a7,40 +34825a8,11 +34825a9,1 +34825ab,2 +34825ac,34 +34825ad,2 +34825af,35 +34825b0,34 +34825b1,2 +34825b3,36 +34825b4,3 +34825b5,e0 +34825b7,8 +34825bc,90 +34825bd,88 +34825bf,a3 +34825c0,31 +34825c1,8 +34825c3,18 +34825c4,11 +34825c7,5 +34825c8,34 +34825c9,2 +34825cb,32 +34825cc,34 +34825cd,1 +34825cf,8 +34825d0,11 +34825d1,1 +34825d3,2 +34825d4,34 +34825d5,2 +34825d7,33 +34825d8,34 +34825d9,2 +34825db,34 +34825dc,3 +34825dd,e0 +34825df,8 +34825e4,90 +34825e5,88 +34825e7,a3 +34825e8,31 +34825e9,8 +34825eb,3 +34825ec,11 +34825ef,5 +34825f0,34 +34825f1,2 +34825f3,4 +34825f4,34 +34825f5,1 +34825f7,1 +34825f8,11 +34825f9,1 +34825fb,2 +34825fc,34 +34825fd,2 +34825ff,30 +3482600,34 +3482601,2 +3482603,31 +3482604,3 +3482605,e0 +3482607,8 +348260c,90 +348260d,88 +348260f,a2 +3482610,31 +3482611,8 +3482613,c0 +3482614,11 +3482617,5 +3482618,34 +3482619,2 +348261b,5 +348261c,34 +348261d,1 +348261f,40 +3482620,11 +3482621,1 +3482623,2 +3482624,34 +3482625,2 +3482627,60 +3482628,34 +3482629,2 +348262b,7b +348262c,3 +348262d,e0 +348262f,8 +3482634,90 +3482635,88 +3482637,a2 +3482638,31 +3482639,8 +348263b,30 +348263c,11 +348263f,5 +3482640,34 +3482641,2 +3482643,45 +3482644,34 +3482645,9 +3482647,10 +3482648,11 +3482649,9 +348264b,2 +348264c,34 +348264d,2 +348264f,46 +3482650,34 +3482651,a2 +3482654,3 +3482655,e0 +3482657,8 +348265c,90 +348265d,88 +348265f,a2 +3482660,35 +3482661,8 +3482663,30 +3482664,a0 +3482665,88 +3482667,a2 +3482668,3 +3482669,e0 +348266b,8 +3482670,90 +3482671,88 +3482673,a2 +3482674,31 +3482675,8 +3482677,6 +3482678,11 +348267b,2 +348267c,34 +348267d,2 +348267f,37 +3482680,34 +3482681,2 +3482683,38 +3482684,3 +3482685,e0 +3482687,8 +348268c,90 +348268d,88 +348268f,a1 +3482690,31 +3482691,8 +3482693,20 +3482694,11 +3482697,2 +3482698,34 +3482699,2 +348269b,79 +348269c,34 +348269d,2 +348269f,7a +34826a0,3 +34826a1,e0 +34826a3,8 +34826a8,90 +34826a9,88 +34826ab,a1 +34826ac,31 +34826ad,8 +34826af,4 +34826b0,11 +34826b3,2 +34826b4,34 +34826b5,2 +34826b7,77 +34826b8,34 +34826b9,2 +34826bb,78 +34826bc,3 +34826bd,e0 +34826bf,8 +34826c4,90 +34826c5,88 +34826c7,32 +34826c8,11 +34826cb,2 +34826cc,34 +34826cd,2 +34826cf,c0 +34826d0,34 +34826d1,2 +34826d3,c1 +34826d4,3 +34826d5,e0 +34826d7,8 +34826dc,90 +34826dd,88 +34826df,a3 +34826e0,31 +34826e1,8 +34826e3,3 +34826e4,11 +34826e7,2 +34826e8,34 +34826e9,2 +34826eb,4d +34826ec,34 +34826ed,a2 +34826f0,3 +34826f1,e0 +34826f3,8 +34826f8,90 +34826f9,88 +34826fb,a3 +34826fc,31 +34826fd,8 +34826ff,18 +3482700,11 +3482703,2 +3482704,34 +3482705,2 +3482707,4d +3482708,34 +3482709,a2 +348270c,3 +348270d,e0 +348270f,8 +3482714,90 +3482715,88 +3482717,a2 +3482718,31 +3482719,8 +348271b,c0 +348271c,11 +348271f,2 +3482720,34 +3482721,2 +3482723,4d +3482724,34 +3482725,a2 +3482728,3 +3482729,e0 +348272b,8 +3482730,3 +3482731,e0 +3482733,8 +3482738,34 +3482739,8 +348273b,1 +348273c,a0 +348273d,88 +348273f,3e +3482740,3 +3482741,e0 +3482743,8 +3482748,24 +3482749,88 +348274b,86 +348274c,24 +348274d,9 +348274e,ff +348274f,ff +3482750,25 +3482751,29 +3482753,1 +3482754,34 +3482755,1 +3482757,3 +3482759,29 +348275a,8 +348275b,2a +348275c,14 +348275d,20 +348275f,7 +3482764,1 +3482765,9 +3482766,50 +3482767,21 +3482768,91 +3482769,4b +348276c,34 +348276d,1 +348276f,ff +3482770,15 +3482771,61 +3482772,ff +3482773,f7 +3482778,a1 +3482779,45 +348277c,3 +348277d,e0 +348277f,8 +3482784,24 +3482785,88 +3482787,a8 +3482788,1 +3482789,6 +348278a,40 +348278b,21 +348278c,91 +348278d,9 +3482790,1 +3482791,25 +3482792,48 +3482793,25 +3482794,a1 +3482795,9 +3482798,3 +3482799,e0 +348279b,8 +34827a0,24 +34827a1,88 +34827a3,bc +34827a4,1 +34827a5,5 +34827a6,40 +34827a7,21 +34827a8,81 +34827a9,9 +34827ac,5 +34827ad,21 +34827af,2 +34827b4,34 +34827b5,9 +34827b8,25 +34827b9,29 +34827bb,1 +34827bc,a1 +34827bd,9 +34827c0,3 +34827c1,e0 +34827c3,8 +34827c8,34 +34827c9,8 +34827cb,1 +34827cc,a0 +34827cd,88 +34827cf,3d +34827d0,34 +34827d1,8 +34827d3,14 +34827d4,a0 +34827d5,88 +34827d7,cf +34827d8,34 +34827d9,8 +34827da,1 +34827db,40 +34827dc,a4 +34827dd,88 +34827de,14 +34827df,24 +34827e0,3 +34827e1,e0 +34827e3,8 +34827e8,34 +34827e9,8 +34827eb,1 +34827ec,a0 +34827ed,88 +34827ef,32 +34827f0,a0 +34827f1,88 +34827f3,3a +34827f4,34 +34827f5,8 +34827f7,30 +34827f8,a4 +34827f9,88 +34827fa,13 +34827fb,f4 +34827fc,a0 +34827fd,88 +34827ff,33 +3482800,3 +3482801,e0 +3482803,8 +3482808,34 +3482809,8 +348280b,2 +348280c,a0 +348280d,88 +348280f,32 +3482810,34 +3482811,8 +3482813,1 +3482814,a0 +3482815,88 +3482817,3a +3482818,a0 +3482819,88 +348281b,3c +348281c,34 +348281d,8 +348281f,60 +3482820,a4 +3482821,88 +3482822,13 +3482823,f4 +3482824,a0 +3482825,88 +3482827,33 +3482828,3 +3482829,e0 +348282b,8 +3482830,90 +3482831,88 +3482833,7c +3482834,34 +3482835,1 +3482837,ff +3482838,11 +3482839,1 +348283b,6 +348283c,34 +348283d,2 +348283f,6b +3482840,90 +3482841,88 +3482843,94 +3482844,2d +3482845,8 +3482847,6 +3482848,11 +348284b,2 +348284c,34 +348284d,2 +348284f,6a +3482850,34 +3482851,2 +3482853,3 +3482854,3 +3482855,e0 +3482857,8 +348285c,90 +348285d,88 +348285f,7b +3482860,34 +3482861,1 +3482863,ff +3482864,11 +3482865,1 +3482867,2 +3482868,34 +3482869,a2 +348286c,34 +348286d,2 +348286f,c +3482870,3 +3482871,e0 +3482873,8 +3482878,34 +3482879,8 +348287b,7 +348287c,a0 +348287d,88 +348287f,7b +3482880,3 +3482881,e0 +3482883,8 +3482888,34 +3482889,8 +348288b,1 +348288d,a8 +348288e,40 +348288f,4 +3482890,8c +3482891,89 +3482893,a4 +3482894,1 +3482895,28 +3482896,48 +3482897,25 +3482898,ac +3482899,89 +348289b,a4 +348289c,3 +348289d,e0 +348289f,8 +34828a4,30 +34828a5,84 +34828a7,ff +34828a8,3c +34828a9,8 +34828aa,80 +34828ab,12 +34828ac,25 +34828ad,8 +34828ae,a5 +34828af,d0 +34828b0,34 +34828b1,1 +34828b3,8c +34828b4,10 +34828b5,81 +34828b7,16 +34828b8,91 +34828b9,2 +34828bb,75 +34828bc,34 +34828bd,1 +34828bf,8d +34828c0,10 +34828c1,81 +34828c3,13 +34828c4,91 +34828c5,2 +34828c7,75 +34828c8,10 +34828c9,80 +34828cb,11 +34828cc,91 +34828cd,2 +34828cf,74 +34828d0,34 +34828d1,1 +34828d3,8a +34828d4,10 +34828d5,81 +34828d7,e +34828d8,91 +34828d9,2 +34828db,74 +34828dc,34 +34828dd,1 +34828df,8b +34828e0,10 +34828e1,81 +34828e3,b +34828e4,91 +34828e5,2 +34828e7,74 +34828e8,34 +34828e9,1 +34828eb,58 +34828ec,10 +34828ed,81 +34828ef,8 +34828f0,34 +34828f1,2 +34828f4,34 +34828f5,1 +34828f7,78 +34828f8,10 +34828f9,81 +34828fb,5 +34828fc,34 +34828fd,2 +3482900,34 +3482901,1 +3482903,79 +3482904,10 +3482905,81 +3482907,2 +3482908,34 +3482909,2 +348290c,34 +348290d,2 +348290f,ff +3482910,3 +3482911,e0 +3482913,8 +3482918,27 +3482919,bd +348291a,ff +348291b,e0 +348291c,af +348291d,bf +348291f,10 +3482920,af +3482921,b0 +3482923,14 +3482924,c +3482925,10 +3482926,b +3482927,27 +348292c,4 +348292d,41 +348292f,2 +3482934,34 +3482935,2 +3482937,5b +3482939,40 +348293a,20 +348293b,21 +348293c,c +348293d,10 +348293e,b +348293f,a2 +3482944,10 +3482945,60 +3482947,1a +3482948,af +3482949,a3 +348294b,1c +348294c,90 +348294d,65 +348294f,3 +3482950,2 +3482951,20 +3482952,20 +3482953,21 +3482954,c +3482955,3 +3482956,73 +3482957,85 +348295a,30 +348295b,21 +348295c,8f +348295d,a3 +348295f,1c +3482960,3c +3482961,8 +3482962,80 +3482963,40 +3482964,25 +3482965,8 +3482966,20 +3482968,85 +3482969,9 +348296b,2 +348296c,11 +348296d,20 +348296f,3 +3482970,34 +3482971,a +3482973,1 +3482974,10 +3482977,23 +3482978,a5 +3482979,a +348297c,3c +348297d,4 +348297e,80 +348297f,12 +3482980,24 +3482981,84 +3482982,a5 +3482983,d0 +3482984,90 +3482985,65 +3482987,6 +3482988,90 +3482989,66 +348298b,7 +348298c,8c +348298d,69 +348298f,8 +3482990,1 +3482991,20 +3482992,f8 +3482993,9 +3482998,8f +3482999,a3 +348299b,1c +348299c,90 +348299d,65 +348299f,1 +34829a0,c +34829a1,1 +34829a2,bf +34829a3,73 +34829a4,2 +34829a5,20 +34829a6,20 +34829a7,21 +34829a8,10 +34829ab,16 +34829b0,3c +34829b1,9 +34829b2,80 +34829b3,3b +34829b4,25 +34829b5,29 +34829b6,9e +34829b7,7e +34829b8,34 +34829b9,a +34829bb,6 +34829bd,4a +34829bf,18 +34829c2,50 +34829c3,12 +34829c4,1 +34829c5,2a +34829c6,80 +34829c7,21 +34829c8,2 +34829c9,20 +34829ca,20 +34829cb,21 +34829cc,92 +34829cd,5 +34829cf,3 +34829d0,c +34829d1,3 +34829d2,73 +34829d3,85 +34829d6,30 +34829d7,21 +34829d8,82 +34829d9,5 +34829dc,3c +34829dd,8 +34829de,80 +34829df,40 +34829e0,25 +34829e1,8 +34829e2,20 +34829e4,85 +34829e5,9 +34829e7,2 +34829e8,11 +34829e9,20 +34829eb,3 +34829ec,34 +34829ed,a +34829ef,1 +34829f0,a5 +34829f1,a +34829f4,34 +34829f5,5 +34829f7,41 +34829f8,c +34829f9,1 +34829fa,bf +34829fb,73 +34829fc,2 +34829fd,20 +34829fe,20 +34829ff,21 +3482a00,92 +3482a01,5 +3482a03,3 +3482a04,8f +3482a05,bf +3482a07,10 +3482a08,8f +3482a09,b0 +3482a0b,14 +3482a0c,27 +3482a0d,bd +3482a0f,20 +3482a10,3 +3482a11,e0 +3482a13,8 +3482a18,8f +3482a19,a6 +3482a1b,30 +3482a1c,84 +3482a1d,c5 +3482a1f,4 +3482a20,8 +3482a21,10 +3482a22,a +3482a23,8e +3482a28,8f +3482a29,b9 +3482a2b,2c +3482a2c,87 +3482a2d,25 +3482a2f,4 +3482a30,8 +3482a31,10 +3482a32,a +3482a33,8e +3482a38,3c +3482a39,a +3482a3a,80 +3482a3b,40 +3482a3c,25 +3482a3d,4a +3482a3e,20 +3482a3f,8 +3482a40,8d +3482a41,4b +3482a43,c +3482a44,11 +3482a45,60 +3482a47,2 +3482a4c,95 +3482a4d,45 +3482a4f,4 +3482a50,3c +3482a51,a +3482a52,80 +3482a53,1e +3482a54,25 +3482a55,4a +3482a56,89 +3482a57,84 +3482a58,a5 +3482a59,40 +3482a5c,3c +3482a5d,9 +3482a5e,80 +3482a5f,40 +3482a60,25 +3482a61,29 +3482a62,20 +3482a63,18 +3482a64,81 +3482a65,2a +3482a67,3 +3482a68,5 +3482a69,40 +3482a6b,b +3482a6c,1 +3482a6d,2a +3482a6e,48 +3482a6f,20 +3482a70,81 +3482a71,28 +3482a74,34 +3482a75,a +3482a77,7f +3482a78,15 +3482a79,a +3482a7b,6 +3482a80,3c +3482a81,a +3482a82,80 +3482a83,12 +3482a84,25 +3482a85,4a +3482a86,a5 +3482a87,d0 +3482a88,85 +3482a89,48 +3482a8b,90 +3482a8c,21 +3482a8d,8 +3482a8f,1 +3482a90,a5 +3482a91,48 +3482a93,90 +3482a94,a1 +3482a95,20 +3482a98,3 +3482a99,e0 +3482a9b,8 +3482aa0,3c +3482aa1,8 +3482aa2,80 +3482aa3,40 +3482aa4,25 +3482aa5,8 +3482aa6,20 +3482aa7,8 +3482aa8,8d +3482aa9,9 +3482aab,c +3482aac,11 +3482aad,20 +3482aaf,2 +3482ab4,81 +3482ab5,3 +3482ab7,2 +3482ab9,3 +3482aba,f +3482abb,c3 +3482abd,61 +3482abe,40 +3482abf,26 +3482ac0,1 +3482ac1,1 +3482ac2,40 +3482ac3,23 +3482ac4,a0 +3482ac5,88 +3482ac6,8 +3482ac7,52 +3482ac8,3 +3482ac9,e0 +3482acb,8 +3482ad0,90 +3482ad1,45 +3482ad3,3 +3482ad4,3c +3482ad5,8 +3482ad6,80 +3482ad7,40 +3482ad8,25 +3482ad9,8 +3482ada,20 +3482adb,8 +3482adc,8d +3482add,9 +3482adf,c +3482ae0,11 +3482ae1,20 +3482ae3,2 +3482ae8,91 +3482ae9,5 +3482aeb,3 +3482aec,3 +3482aed,e0 +3482aef,8 +3482af4,8f +3482af5,a2 +3482af7,24 +3482af8,90 +3482af9,45 +3482afc,3c +3482afd,8 +3482afe,80 +3482aff,40 +3482b00,25 +3482b01,8 +3482b02,20 +3482b04,85 +3482b05,9 +3482b07,2 +3482b08,11 +3482b09,20 +3482b0b,4 +3482b0c,34 +3482b0d,a +3482b0f,1 +3482b10,a5 +3482b11,a +3482b14,10 +3482b17,18 +3482b18,34 +3482b19,5 +3482b1b,41 +3482b1c,3c +3482b1d,8 +3482b1e,80 +3482b1f,40 +3482b20,25 +3482b21,8 +3482b22,20 +3482b23,8 +3482b24,8d +3482b25,9 +3482b27,c +3482b28,11 +3482b29,20 +3482b2b,13 +3482b30,91 +3482b31,5 +3482b33,1 +3482b34,af +3482b35,a4 +3482b38,af +3482b39,a5 +3482b3b,4 +3482b3c,af +3482b3d,a6 +3482b3f,8 +3482b40,27 +3482b41,bd +3482b42,ff +3482b43,e8 +3482b44,af +3482b45,bf +3482b47,10 +3482b48,3c +3482b49,4 +3482b4a,80 +3482b4b,12 +3482b4c,24 +3482b4d,84 +3482b4e,a5 +3482b4f,d0 +3482b50,91 +3482b51,5 +3482b53,6 +3482b54,91 +3482b55,6 +3482b57,7 +3482b58,8d +3482b59,9 +3482b5b,8 +3482b5c,1 +3482b5d,20 +3482b5e,f8 +3482b5f,9 +3482b64,8f +3482b65,bf +3482b67,10 +3482b68,27 +3482b69,bd +3482b6b,18 +3482b6c,8f +3482b6d,a4 +3482b70,8f +3482b71,a5 +3482b73,4 +3482b74,8f +3482b75,a6 +3482b77,8 +3482b78,3 +3482b79,e0 +3482b7b,8 +3482b80,a0 +3482b81,e6 +3482b82,4 +3482b83,24 +3482b84,27 +3482b85,bd +3482b86,ff +3482b87,e0 +3482b88,af +3482b89,a2 +3482b8b,10 +3482b8c,af +3482b8d,a3 +3482b8f,14 +3482b90,af +3482b91,bf +3482b93,18 +3482b94,c +3482b95,10 +3482b96,a +3482b97,ed +3482b9c,8f +3482b9d,a2 +3482b9f,10 +3482ba0,8f +3482ba1,a3 +3482ba3,14 +3482ba4,8f +3482ba5,bf +3482ba7,18 +3482ba8,27 +3482ba9,bd +3482bab,20 +3482bac,3 +3482bad,e0 +3482baf,8 +3482bb4,27 +3482bb5,bd +3482bb6,ff +3482bb7,e8 +3482bb8,af +3482bb9,bf +3482bbb,10 +3482bbc,3c +3482bbd,8 +3482bbe,80 +3482bbf,40 +3482bc0,25 +3482bc1,8 +3482bc2,20 +3482bc3,8 +3482bc4,ad +3482bc8,ad +3482bcb,4 +3482bcc,ad +3482bcf,8 +3482bd0,ad +3482bd3,c +3482bd4,3c +3482bd5,8 +3482bd6,80 +3482bd7,1e +3482bd8,25 +3482bd9,8 +3482bda,aa +3482bdb,30 +3482bdc,81 +3482bdd,9 +3482bde,4 +3482bdf,24 +3482be0,11 +3482be1,20 +3482be3,2a +3482be9,9 +3482bea,f +3482beb,c3 +3482bec,1 +3482bed,21 +3482bee,20 +3482bef,26 +3482bf1,81 +3482bf2,20 +3482bf3,23 +3482bf4,8d +3482bf5,5 +3482bf6,4 +3482bf7,28 +3482bf8,c +3482bf9,10 +3482bfa,b +3482bfb,27 +3482c00,4 +3482c01,40 +3482c03,22 +3482c08,34 +3482c09,44 +3482c0c,c +3482c0d,10 +3482c0e,b +3482c0f,a2 +3482c14,10 +3482c15,60 +3482c17,c +3482c1c,3c +3482c1d,8 +3482c1e,80 +3482c1f,40 +3482c20,25 +3482c21,8 +3482c22,20 +3482c23,8 +3482c24,8c +3482c25,69 +3482c28,ad +3482c29,9 +3482c2c,8c +3482c2d,69 +3482c2f,4 +3482c30,ad +3482c31,9 +3482c33,4 +3482c34,8c +3482c35,69 +3482c37,8 +3482c38,ad +3482c39,9 +3482c3b,8 +3482c3c,34 +3482c3d,9 +3482c3f,1 +3482c40,ad +3482c41,9 +3482c43,c +3482c44,90 +3482c45,62 +3482c48,3c +3482c49,8 +3482c4a,80 +3482c4b,1e +3482c4c,25 +3482c4d,8 +3482c4e,aa +3482c4f,30 +3482c50,8d +3482c51,9 +3482c52,4 +3482c53,28 +3482c54,95 +3482c55,2a +3482c58,34 +3482c59,1 +3482c5b,a +3482c5c,15 +3482c5d,41 +3482c5f,6 +3482c64,95 +3482c65,2a +3482c67,1c +3482c68,31 +3482c69,4a +3482c6a,f0 +3482c6b,1f +3482c6d,2 +3482c6e,59 +3482c6f,40 +3482c70,1 +3482c71,4b +3482c72,50 +3482c73,25 +3482c74,a5 +3482c75,2a +3482c77,1c +3482c78,81 +3482c79,9 +3482c7a,4 +3482c7b,24 +3482c7c,5 +3482c7d,21 +3482c7f,2 +3482c85,2 +3482c86,10 +3482c87,23 +3482c88,a1 +3482c89,2 +3482c8a,4 +3482c8b,24 +3482c8c,8f +3482c8d,bf +3482c8f,10 +3482c90,27 +3482c91,bd +3482c93,18 +3482c94,3 +3482c95,e0 +3482c97,8 +3482c9c,27 +3482c9d,bd +3482c9e,ff +3482c9f,e8 +3482ca0,af +3482ca1,bf +3482ca3,10 +3482ca4,c +3482ca5,10 +3482ca6,b +3482ca7,35 +3482cac,24 +3482cad,1 +3482cae,ff +3482caf,ff +3482cb0,10 +3482cb1,41 +3482cb3,4 +3482cb8,34 +3482cb9,44 +3482cbc,c +3482cbd,10 +3482cbe,b +3482cbf,73 +3482cc4,8f +3482cc5,bf +3482cc7,10 +3482cc8,27 +3482cc9,bd +3482ccb,18 +3482ccc,3 +3482ccd,e0 +3482ccf,8 +3482cd4,3c +3482cd5,2 +3482cd6,80 +3482cd7,1d +3482cd8,24 +3482cd9,42 +3482cda,84 +3482cdb,a0 +3482cdc,94 +3482cdd,42 +3482cdf,a4 +3482ce0,34 +3482ce1,8 +3482ce4,34 +3482ce5,89 +3482ce8,94 +3482ce9,aa +3482cec,34 +3482ced,1 +3482cee,1 +3482cef,9c +3482cf0,15 +3482cf1,41 +3482cf3,8 +3482cf8,34 +3482cf9,8 +3482cfb,3 +3482cfc,94 +3482cfd,ab +3482cff,1c +3482d00,31 +3482d01,69 +3482d03,ff +3482d04,31 +3482d05,62 +3482d06,1f +3482d09,2 +3482d0a,12 +3482d0b,2 +3482d0c,10 +3482d0f,1f +3482d14,34 +3482d15,1 +3482d17,a +3482d18,15 +3482d19,41 +3482d1b,e +3482d20,94 +3482d21,ab +3482d23,1c +3482d24,34 +3482d25,1 +3482d27,10 +3482d28,14 +3482d29,41 +3482d2b,8 +3482d30,31 +3482d31,6c +3482d32,f +3482d33,e0 +3482d34,34 +3482d35,1 +3482d36,e +3482d37,a0 +3482d38,15 +3482d39,81 +3482d3b,4 +3482d40,24 +3482d41,2 +3482d42,ff +3482d43,ff +3482d44,10 +3482d47,1f +3482d4c,34 +3482d4d,8 +3482d4f,1 +3482d50,31 +3482d51,69 +3482d53,1f +3482d54,34 +3482d55,1 +3482d57,15 +3482d58,15 +3482d59,41 +3482d5b,c +3482d60,34 +3482d61,1 +3482d63,3e +3482d64,10 +3482d65,81 +3482d67,7 +3482d6c,34 +3482d6d,1 +3482d6f,42 +3482d70,10 +3482d71,81 +3482d73,4 +3482d78,24 +3482d79,2 +3482d7a,ff +3482d7b,ff +3482d7c,10 +3482d7f,11 +3482d84,34 +3482d85,8 +3482d87,2 +3482d88,90 +3482d89,a9 +3482d8a,1 +3482d8b,41 +3482d8c,34 +3482d8d,1 +3482d8e,1 +3482d8f,1a +3482d90,15 +3482d91,41 +3482d93,8 +3482d98,34 +3482d99,1 +3482d9b,3e +3482d9c,14 +3482d9d,41 +3482d9f,5 +3482da4,34 +3482da5,8 +3482da7,4 +3482da8,3c +3482da9,b +3482daa,80 +3482dab,12 +3482dac,25 +3482dad,6b +3482dae,a5 +3482daf,d0 +3482db0,81 +3482db1,62 +3482db2,13 +3482db3,97 +3482db5,2 +3482db6,12 +3482db9,48 +3482dba,10 +3482dbb,25 +3482dbd,2 +3482dbe,12 +3482dc1,49 +3482dc2,10 +3482dc3,25 +3482dc4,3 +3482dc5,e0 +3482dc7,8 +3482dcc,24 +3482dcd,2 +3482dce,ff +3482dcf,ff +3482dd0,3c +3482dd1,8 +3482dd2,80 +3482dd3,40 +3482dd4,25 +3482dd5,8 +3482dd6,1c +3482dd8,91 +3482dd9,9 +3482ddc,3c +3482ddd,8 +3482dde,80 +3482ddf,40 +3482de0,25 +3482de1,8 +3482de2,1c +3482de3,2 +3482de4,a1 +3482de5,9 +3482de8,30 +3482de9,89 +3482deb,ff +3482dec,34 +3482ded,1 +3482def,7f +3482df0,15 +3482df1,21 +3482df3,7 +3482df8,3c +3482df9,8 +3482dfa,80 +3482dfb,40 +3482dfc,25 +3482dfd,8 +3482dfe,1c +3482e00,91 +3482e01,b +3482e04,91 +3482e05,2 +3482e07,1 +3482e08,10 +3482e0b,10 +3482e10,3c +3482e11,8 +3482e12,80 +3482e13,40 +3482e14,25 +3482e15,8 +3482e16,f +3482e17,fc +3482e18,25 +3482e19,8 +3482e1b,4 +3482e1c,8d +3482e1d,9 +3482e20,11 +3482e21,20 +3482e23,17 +3482e29,9 +3482e2a,52 +3482e2b,2 +3482e2c,31 +3482e2d,4b +3482e2e,f8 +3482e31,b +3482e32,5a +3482e33,c2 +3482e34,3c +3482e35,c +3482e36,ff +3482e37,ff +3482e38,35 +3482e39,8c +3482e3a,7 +3482e3b,ff +3482e3c,1 +3482e3d,4c +3482e3e,50 +3482e3f,24 +3482e40,15 +3482e41,44 +3482e42,ff +3482e43,f5 +3482e48,31 +3482e49,22 +3482e4b,ff +3482e4c,3c +3482e4d,8 +3482e4e,80 +3482e4f,40 +3482e50,25 +3482e51,8 +3482e52,1c +3482e53,2 +3482e54,a1 +3482e55,b +3482e58,3c +3482e59,9 +3482e5a,80 +3482e5b,40 +3482e5c,25 +3482e5d,29 +3482e5e,20 +3482e60,3c +3482e61,c +3482e62,80 +3482e63,40 +3482e64,25 +3482e65,8c +3482e66,1c +3482e68,91 +3482e69,8c +3482e6c,11 +3482e6d,6c +3482e6f,4 +3482e70,a5 +3482e71,20 +3482e73,2 +3482e74,a1 +3482e75,2b +3482e77,2 +3482e78,a1 +3482e79,22 +3482e7b,3 +3482e7c,ad +3482e7d,24 +3482e7f,4 +3482e80,3 +3482e81,e0 +3482e83,8 +3482e88,27 +3482e89,bd +3482e8a,ff +3482e8b,e0 +3482e8c,af +3482e8d,b0 +3482e8f,10 +3482e90,af +3482e91,b1 +3482e93,14 +3482e94,af +3482e95,bf +3482e97,18 +3482e98,34 +3482e99,82 +3482e9c,34 +3482e9d,50 +3482ea0,26 +3482ea1,8 +3482ea2,ff +3482ea3,80 +3482ea4,5 +3482ea7,12 +3482eac,3c +3482ead,11 +3482eae,80 +3482eaf,40 +3482eb0,26 +3482eb1,31 +3482eb2,20 +3482eb3,50 +3482eb4,34 +3482eb5,9 +3482eb7,10 +3482eb8,1 +3482eb9,9 +3482ebb,18 +3482ebe,40 +3482ebf,12 +3482ec0,2 +3482ec1,28 +3482ec2,88 +3482ec3,21 +3482ec4,3c +3482ec5,4 +3482ec6,80 +3482ec7,12 +3482ec8,24 +3482ec9,84 +3482eca,a5 +3482ecb,d0 +3482ecc,36 +3482ecd,5 +3482ed0,8e +3482ed1,28 +3482ed3,c +3482ed4,1 +3482ed6,f8 +3482ed7,9 +3482edc,14 +3482edd,50 +3482ede,ff +3482edf,ef +3482ee4,36 +3482ee5,23 +3482ee8,10 +3482eeb,2 +3482ef0,34 +3482ef1,3 +3482ef4,8f +3482ef5,b0 +3482ef7,10 +3482ef8,8f +3482ef9,b1 +3482efb,14 +3482efc,8f +3482efd,bf +3482eff,18 +3482f00,27 +3482f01,bd +3482f03,20 +3482f04,3 +3482f05,e0 +3482f07,8 +3482f0c,8c +3482f0d,88 +3482f0e,1d +3482f0f,2c +3482f10,34 +3482f11,9 +3482f13,1 +3482f15,9 +3482f16,4e +3482f18,1 +3482f19,9 +3482f1a,10 +3482f1b,24 +3482f1c,10 +3482f1d,40 +3482f1f,24 +3482f24,94 +3482f25,ca +3482f26,2 +3482f27,dc +3482f28,3c +3482f29,b +3482f2a,80 +3482f2b,12 +3482f2c,25 +3482f2d,6b +3482f2e,a5 +3482f2f,d0 +3482f30,94 +3482f31,8c +3482f33,a4 +3482f34,34 +3482f35,1 +3482f37,3d +3482f38,11 +3482f39,81 +3482f3b,a +3482f41,8a +3482f42,60 +3482f43,21 +3482f44,91 +3482f45,8d +3482f46,1d +3482f47,28 +3482f48,15 +3482f49,a0 +3482f4b,19 +3482f50,34 +3482f51,d +3482f53,1 +3482f54,a1 +3482f55,8d +3482f56,1d +3482f57,28 +3482f58,25 +3482f59,4a +3482f5b,3 +3482f5c,10 +3482f5f,9 +3482f64,34 +3482f65,c +3482f67,1 +3482f68,1 +3482f69,4c +3482f6a,60 +3482f6b,4 +3482f6c,91 +3482f6d,6d +3482f6e,e +3482f6f,f2 +3482f70,1 +3482f71,ac +3482f72,70 +3482f73,24 +3482f74,15 +3482f75,c0 +3482f77,e +3482f7c,1 +3482f7d,ac +3482f7e,70 +3482f7f,25 +3482f80,a1 +3482f81,6e +3482f82,e +3482f83,f2 +3482f84,1 +3482f85,29 +3482f86,48 +3482f87,27 +3482f88,1 +3482f89,9 +3482f8a,40 +3482f8b,24 +3482f8c,ac +3482f8d,88 +3482f8e,1d +3482f8f,2c +3482f90,3c +3482f91,8 +3482f92,80 +3482f93,40 +3482f94,25 +3482f95,8 +3482f96,1d +3482f97,5 +3482f98,1 +3482f99,a +3482f9a,40 +3482f9b,21 +3482f9c,81 +3482f9d,8 +3482fa0,3c +3482fa1,9 +3482fa2,80 +3482fa3,40 +3482fa4,25 +3482fa5,29 +3482fa6,20 +3482fa7,18 +3482fa8,a1 +3482fa9,28 +3482fac,34 +3482fad,2 +3482fb0,3 +3482fb1,e0 +3482fb3,8 +3482fb8,3c +3482fb9,8 +3482fba,80 +3482fbb,40 +3482fbc,25 +3482fbd,8 +3482fbe,1d +3482fbf,3 +3482fc0,81 +3482fc1,8 +3482fc4,10 +3482fc7,22 +3482fcc,3c +3482fcd,8 +3482fce,80 +3482fcf,40 +3482fd0,25 +3482fd1,8 +3482fd2,1d +3482fd3,4 +3482fd4,81 +3482fd5,8 +3482fd8,10 +3482fdb,1d +3482fe0,34 +3482fe1,2 +3482fe3,ff +3482fe4,20 +3482fe5,e8 +3482fe6,ff +3482fe7,a6 +3482fe8,21 +3482fe9,8 +3482feb,61 +3482fec,10 +3482fef,18 +3482ff4,34 +3482ff5,8 +3482ff7,64 +3482ff8,10 +3482ffb,15 +3483000,3c +3483001,1 +3483002,80 +3483003,12 +3483004,24 +3483005,21 +3483006,a5 +3483007,d0 +3483008,80 +3483009,28 +348300a,e +348300b,de +348300c,35 +348300d,8 +348300f,1 +3483010,a0 +3483011,28 +3483012,e +3483013,de +3483014,34 +3483015,8 +3483017,68 +3483018,10 +348301b,d +3483020,3c +3483021,1 +3483022,80 +3483023,12 +3483024,24 +3483025,21 +3483026,a5 +3483027,d0 +3483028,80 +3483029,28 +348302a,e +348302b,de +348302c,35 +348302d,8 +348302f,4 +3483030,a0 +3483031,28 +3483032,e +3483033,de +3483034,34 +3483035,8 +3483037,6a +3483038,10 +348303b,5 +3483040,34 +3483041,5 +3483043,3 +3483044,34 +3483045,8 +3483047,6b +3483048,10 +348304b,1 +3483050,3c +3483051,9 +3483052,80 +3483053,40 +3483054,25 +3483055,29 +3483056,20 +3483057,18 +3483058,3c +3483059,a +348305a,80 +348305b,40 +348305c,25 +348305d,4a +348305e,20 +348305f,1b +3483060,81 +3483061,2c +3483064,11 +3483065,88 +3483067,b +3483068,21 +3483069,29 +348306b,1 +348306c,15 +348306d,2a +348306e,ff +348306f,fc +3483074,3c +3483075,9 +3483076,80 +3483077,40 +3483078,25 +3483079,29 +348307a,20 +348307b,17 +348307c,21 +348307d,29 +348307f,1 +3483080,11 +3483081,2a +3483083,4 +3483084,81 +3483085,2c +3483088,15 +3483089,80 +348308a,ff +348308b,fc +3483090,a1 +3483091,28 +3483094,3 +3483095,e0 +3483097,8 +348309d,60 +348309e,78 +348309f,21 +34830a0,81 +34830a1,ec +34830a2,e +34830a3,df +34830a4,31 +34830a5,8e +34830a7,80 +34830a8,11 +34830a9,c0 +34830ab,3 +34830ac,34 +34830ad,3 +34830af,5 +34830b0,3 +34830b1,e0 +34830b3,8 +34830b4,34 +34830b5,2 +34830b7,2 +34830b8,3 +34830b9,e0 +34830bb,8 +34830bd,60 +34830be,10 +34830bf,21 +34830c0,85 +34830c1,c2 +34830c3,a4 +34830c4,3c +34830c5,8 +34830c6,80 +34830c7,12 +34830c8,25 +34830c9,8 +34830ca,a5 +34830cb,d0 +34830cc,81 +34830cd,9 +34830ce,e +34830cf,df +34830d0,35 +34830d1,29 +34830d3,80 +34830d4,a1 +34830d5,9 +34830d6,e +34830d7,df +34830d8,3 +34830d9,e0 +34830db,8 +34830e0,27 +34830e1,bd +34830e2,ff +34830e3,f0 +34830e4,af +34830e5,bf +34830e7,4 +34830e8,c +34830e9,3 +34830ea,58 +34830eb,86 +34830f0,3c +34830f1,c +34830f2,80 +34830f3,12 +34830f4,25 +34830f5,8c +34830f6,a5 +34830f7,d0 +34830f8,85 +34830f9,8d +34830fa,f +34830fb,2e +34830fc,8d +34830fd,98 +34830ff,4 +3483100,13 +3483103,2 +3483104,34 +3483105,e +3483107,1 +3483108,34 +3483109,e +348310b,2 +348310c,1 +348310d,ae +348310e,68 +348310f,25 +3483110,a5 +3483111,8d +3483112,f +3483113,2e +3483114,8f +3483115,bf +3483117,4 +3483118,27 +3483119,bd +348311b,10 +348311c,3 +348311d,e0 +348311f,8 +3483124,84 +3483125,8e +3483127,1c +3483128,21 +3483129,cd +348312a,ff +348312b,ce +348312c,5 +348312d,a0 +348312f,10 +3483130,34 +3483131,2 +3483134,31 +3483135,a9 +3483137,7 +3483138,34 +3483139,a +348313b,1 +348313c,1 +348313d,2a +348313e,50 +348313f,4 +3483141,d +3483142,48 +3483143,c2 +3483144,3c +3483145,c +3483146,80 +3483147,12 +3483148,25 +3483149,8c +348314a,a5 +348314b,d0 +348314c,1 +348314d,89 +348314e,60 +348314f,20 +3483150,81 +3483151,8b +3483152,5 +3483153,b4 +3483154,1 +3483155,6a +3483156,58 +3483157,24 +3483158,34 +3483159,2 +348315c,11 +348315d,60 +348315f,4 +3483164,34 +3483165,d +3483167,26 +3483168,a4 +3483169,8d +348316b,1c +348316c,34 +348316d,2 +348316f,1 +3483170,3 +3483171,e0 +3483173,8 +3483178,84 +3483179,ae +348317b,1c +348317c,21 +348317d,cd +348317e,ff +348317f,ce +3483180,5 +3483181,a0 +3483183,b +3483184,34 +3483185,2 +3483188,31 +3483189,a9 +348318b,7 +348318c,34 +348318d,a +348318f,1 +3483190,1 +3483191,2a +3483192,50 +3483193,4 +3483195,d +3483196,48 +3483197,c2 +3483198,3c +3483199,c +348319a,80 +348319b,12 +348319c,25 +348319d,8c +348319e,a5 +348319f,d0 +34831a0,1 +34831a1,89 +34831a2,60 +34831a3,20 +34831a4,81 +34831a5,8b +34831a6,5 +34831a7,b4 +34831a8,1 +34831a9,6a +34831aa,58 +34831ab,25 +34831ac,a1 +34831ad,8b +34831ae,5 +34831af,b4 +34831b0,3 +34831b1,e0 +34831b3,8 +34831b8,27 +34831b9,bd +34831ba,ff +34831bb,f0 +34831bc,af +34831bd,bf +34831bf,8 +34831c0,28 +34831c1,81 +34831c3,32 +34831c4,10 +34831c5,20 +34831c7,3 +34831c9,80 +34831ca,10 +34831cb,21 +34831cc,3 +34831cd,20 +34831ce,f8 +34831cf,9 +34831d4,8f +34831d5,bf +34831d7,8 +34831d8,27 +34831d9,bd +34831db,10 +34831dc,3 +34831dd,e0 +34831df,8 +34831e4,3c +34831e5,8 +34831e6,80 +34831e7,1d +34831e8,25 +34831e9,8 +34831ea,84 +34831eb,a0 +34831ec,3c +34831ed,9 +34831ee,80 +34831ef,12 +34831f0,25 +34831f1,29 +34831f2,a5 +34831f3,d0 +34831f4,85 +34831f5,a +34831f7,a4 +34831f8,34 +34831f9,1 +34831fb,3e +34831fc,15 +34831fd,41 +34831ff,2 +3483200,81 +3483201,2b +3483202,13 +3483203,97 +3483204,21 +3483205,6a +3483207,2d +3483208,86 +3483209,b +348320b,1c +348320c,21 +348320d,6b +348320f,1 +3483210,34 +3483211,c +3483213,1 +3483214,1 +3483215,6c +3483216,60 +3483217,4 +3483218,34 +3483219,1 +348321b,1c +348321c,1 +348321d,41 +348321f,18 +3483222,68 +3483223,12 +3483224,1 +3483225,2d +3483226,70 +3483227,20 +3483228,8d +3483229,cf +348322b,e4 +348322c,1 +348322d,8f +348322e,10 +348322f,24 +3483230,3 +3483231,e0 +3483233,8 +3483238,3c +3483239,8 +348323a,80 +348323b,1d +348323c,25 +348323d,8 +348323e,84 +348323f,a0 +3483240,3c +3483241,9 +3483242,80 +3483243,12 +3483244,25 +3483245,29 +3483246,a5 +3483247,d0 +3483248,85 +3483249,a +348324b,a4 +348324c,34 +348324d,1 +348324f,3e +3483250,15 +3483251,41 +3483253,2 +3483254,81 +3483255,2b +3483256,13 +3483257,97 +3483258,21 +3483259,6a +348325b,2d +348325c,84 +348325d,8b +348325f,1c +3483260,21 +3483261,6b +3483263,1 +3483264,34 +3483265,c +3483267,1 +3483268,1 +3483269,6c +348326a,60 +348326b,4 +348326c,34 +348326d,1 +348326f,1c +3483270,1 +3483271,41 +3483273,18 +3483276,68 +3483277,12 +3483278,1 +3483279,2d +348327a,70 +348327b,20 +348327c,8d +348327d,cf +348327f,e4 +3483280,1 +3483281,8f +3483282,78 +3483283,25 +3483284,ad +3483285,cf +3483287,e4 +3483288,3 +3483289,e0 +348328b,8 +3483290,27 +3483291,bd +3483292,ff +3483293,e8 +3483294,af +3483295,bf +3483297,10 +3483298,3c +3483299,a +348329a,80 +348329b,1e +348329c,25 +348329d,4a +348329e,aa +348329f,30 +34832a0,81 +34832a1,48 +34832a2,6 +34832a3,6c +34832a4,31 +34832a5,8 +34832a7,20 +34832a8,15 +34832ab,23 +34832b0,3c +34832b1,a +34832b2,80 +34832b3,1d +34832b4,25 +34832b5,4a +34832b6,84 +34832b7,a0 +34832b8,8d +34832b9,48 +34832ba,7 +34832bb,94 +34832bc,15 +34832bf,1e +34832c0,3c +34832c1,9 +34832c2,80 +34832c3,40 +34832c4,25 +34832c5,29 +34832c6,20 +34832c7,1b +34832c8,34 +34832c9,a +34832cb,ff +34832cc,a1 +34832cd,2a +34832d0,3c +34832d1,9 +34832d2,80 +34832d3,40 +34832d4,25 +34832d5,29 +34832d6,20 +34832d7,18 +34832d8,24 +34832d9,a +34832da,ff +34832db,ff +34832dc,34 +34832dd,c +34832df,3 +34832e0,21 +34832e1,4a +34832e3,1 +34832e4,11 +34832e5,4c +34832e7,14 +34832e8,1 +34832e9,2a +34832ea,58 +34832eb,20 +34832ec,81 +34832ed,68 +34832f0,11 +34832f2,ff +34832f3,fb +34832f8,3c +34832f9,9 +34832fa,80 +34832fb,40 +34832fc,25 +34832fd,29 +34832fe,20 +34832ff,1b +3483300,a1 +3483301,2a +3483304,3c +3483305,9 +3483306,80 +3483307,1e +3483308,25 +3483309,29 +348330a,89 +348330b,84 +348330c,34 +348330d,a +348330f,1 +3483310,a5 +3483311,2a +3483314,3c +3483315,9 +3483316,80 +3483317,48 +3483318,34 +3483319,a +348331b,1 +348331c,ad +348331d,2a +348331e,1 +348331f,30 +3483320,3c +3483321,a +3483322,80 +3483323,1e +3483324,25 +3483325,4a +3483326,aa +3483327,30 +3483328,a1 +3483329,48 +348332a,4 +348332b,24 +348332c,ad +348332d,49 +348332e,4 +348332f,28 +3483330,c +3483331,10 +3483332,a +3483333,ed +3483338,8e +3483339,19 +348333b,4 +348333c,2 +348333e,20 +348333f,25 +3483340,8f +3483341,bf +3483343,10 +3483344,3 +3483345,e0 +3483347,8 +3483348,27 +3483349,bd +348334b,18 +348334c,27 +348334d,bd +348334e,ff +348334f,e8 +3483350,af +3483351,bf +3483353,10 +3483354,c +3483355,10 +3483356,17 +3483357,5 +348335c,3c +348335d,e +348335e,80 +348335f,12 +3483360,91 +3483361,ce +3483362,12 +3483363,12 +3483364,8f +3483365,bf +3483367,10 +3483368,3 +3483369,e0 +348336b,8 +348336c,27 +348336d,bd +348336f,18 +3483370,93 +3483371,19 +3483373,74 +3483374,34 +3483375,1 +3483377,ff +3483378,17 +3483379,21 +348337b,2 +3483380,34 +3483381,19 +3483383,2c +3483384,3 +3483385,e0 +3483387,8 +3483388,a7 +3483389,b9 +348338b,9a +348338c,93 +348338d,2c +348338f,74 +3483390,34 +3483391,1 +3483393,ff +3483394,15 +3483395,81 +3483397,2 +348339c,34 +348339d,c +348339f,2c +34833a0,3 +34833a1,e0 +34833a3,8 +34833a8,91 +34833a9,ae +34833ab,74 +34833ac,34 +34833ad,1 +34833af,ff +34833b0,15 +34833b1,c1 +34833b3,2 +34833b8,34 +34833b9,e +34833bb,2c +34833bc,3 +34833bd,e0 +34833bf,8 +34833c0,a7 +34833c1,ae +34833c3,9a +34833c4,91 +34833c5,cf +34833c7,74 +34833c8,34 +34833c9,1 +34833cb,ff +34833cc,15 +34833cd,e1 +34833cf,2 +34833d4,34 +34833d5,f +34833d7,2c +34833d8,3 +34833d9,e0 +34833db,8 +34833dc,a7 +34833dd,af +34833df,9a +34833e0,3c +34833e1,8 +34833e2,80 +34833e3,12 +34833e4,25 +34833e5,8 +34833e6,a5 +34833e7,d0 +34833e8,85 +34833e9,9 +34833eb,9c +34833ec,35 +34833ed,2a +34833ef,2 +34833f0,3 +34833f1,e0 +34833f3,8 +34833f4,a5 +34833f5,a +34833f7,9c +34833f8,3c +34833f9,5 +34833fa,80 +34833fb,12 +34833fc,24 +34833fd,a5 +34833fe,a5 +34833ff,d0 +3483400,3c +3483401,8 +3483402,80 +3483403,40 +3483404,25 +3483405,8 +3483406,20 +3483407,1c +3483408,8c +3483409,a9 +348340b,68 +348340c,ad +348340d,9 +3483410,8c +3483411,a9 +3483413,6c +3483414,ad +3483415,9 +3483417,4 +3483418,94 +3483419,a9 +348341b,70 +348341c,a5 +348341d,9 +348341f,8 +3483420,94 +3483421,a9 +3483423,9c +3483424,a5 +3483425,9 +3483427,a +3483428,8 +3483429,1 +348342a,be +348342b,3 +3483430,27 +3483431,bd +3483432,ff +3483433,e0 +3483434,af +3483435,b0 +3483437,10 +3483438,af +3483439,b1 +348343b,14 +348343c,af +348343d,bf +348343f,18 +3483440,3c +3483441,10 +3483442,80 +3483443,12 +3483444,26 +3483445,10 +3483446,a5 +3483447,d0 +3483448,3c +3483449,11 +348344a,80 +348344b,40 +348344c,26 +348344d,31 +348344e,20 +348344f,1c +3483450,8e +3483451,8 +3483453,4 +3483454,11 +3483457,5 +348345c,c +348345d,10 +348345e,d +348345f,36 +3483464,10 +3483467,3 +348346c,c +348346d,10 +348346e,d +348346f,49 +3483474,c +3483475,10 +3483476,d +3483477,29 +3483478,34 +3483479,4 +348347c,c +348347d,10 +348347e,d +348347f,29 +3483480,34 +3483481,4 +3483483,1 +3483484,c +3483485,10 +3483486,d +3483487,29 +3483488,34 +3483489,4 +348348b,2 +348348c,8f +348348d,b0 +348348f,10 +3483490,8f +3483491,b1 +3483493,14 +3483494,8f +3483495,bf +3483497,18 +3483498,27 +3483499,bd +348349b,20 +348349c,3 +348349d,e0 +348349f,8 +34834a4,2 +34834a5,4 +34834a6,40 +34834a7,21 +34834a8,91 +34834a9,9 +34834ab,6c +34834ac,34 +34834ad,1 +34834af,ff +34834b0,11 +34834b1,21 +34834b3,7 +34834b8,2 +34834b9,9 +34834ba,48 +34834bb,21 +34834bc,91 +34834bd,29 +34834bf,74 +34834c0,34 +34834c1,1 +34834c3,2c +34834c4,11 +34834c5,21 +34834c7,2 +34834cc,a1 +34834cd,9 +34834cf,69 +34834d0,3 +34834d1,e0 +34834d3,8 +34834d8,27 +34834d9,bd +34834da,ff +34834db,e8 +34834dc,af +34834dd,bf +34834df,10 +34834e0,8e +34834e1,28 +34834e4,ae +34834e5,8 +34834e7,40 +34834e8,8e +34834e9,28 +34834eb,4 +34834ec,ae +34834ed,8 +34834ef,44 +34834f0,96 +34834f1,28 +34834f3,8 +34834f4,a6 +34834f5,8 +34834f7,48 +34834f8,a2 +34834fa,f +34834fb,33 +34834fc,92 +34834fd,8 +34834ff,4a +3483500,34 +3483501,1 +3483503,ff +3483504,15 +3483505,1 +3483507,3 +348350c,c +348350d,10 +348350e,d +348350f,57 +3483514,8f +3483515,bf +3483517,10 +3483518,27 +3483519,bd +348351b,18 +348351c,3 +348351d,e0 +348351f,8 +3483524,8e +3483525,8 +3483527,40 +3483528,ae +3483529,8 +348352b,68 +348352c,8e +348352d,8 +348352f,44 +3483530,ae +3483531,8 +3483533,6c +3483534,96 +3483535,8 +3483537,48 +3483538,a6 +3483539,8 +348353b,70 +348353c,92 +348353d,8 +348353f,68 +3483540,34 +3483541,1 +3483543,ff +3483544,15 +3483545,1 +3483547,3 +348354c,34 +348354d,8 +348354f,1 +3483550,a2 +3483551,8 +3483552,f +3483553,33 +3483554,3 +3483555,e0 +3483557,8 +348355c,27 +348355d,bd +348355e,ff +348355f,e8 +3483560,af +3483561,bf +3483563,10 +3483564,96 +3483565,8 +3483567,9c +3483568,31 +3483569,8 +348356b,40 +348356c,11 +348356f,5 +3483574,96 +3483575,8 +3483577,70 +3483578,31 +3483579,8 +348357a,ff +348357b,f +348357c,35 +348357d,8 +348357f,30 +3483580,a6 +3483581,8 +3483583,70 +3483584,92 +3483585,28 +3483587,1 +3483588,a2 +3483589,8 +348358b,69 +348358c,96 +348358d,28 +348358f,2 +3483590,a6 +3483591,8 +3483593,6a +3483594,8e +3483595,28 +3483597,4 +3483598,ae +3483599,8 +348359b,6c +348359c,c +348359d,10 +348359e,d +348359f,71 +34835a0,34 +34835a1,4 +34835a4,c +34835a5,10 +34835a6,d +34835a7,71 +34835a8,34 +34835a9,4 +34835ab,1 +34835ac,c +34835ad,10 +34835ae,d +34835af,71 +34835b0,34 +34835b1,4 +34835b3,2 +34835b4,8f +34835b5,bf +34835b7,10 +34835b8,27 +34835b9,bd +34835bb,18 +34835bc,3 +34835bd,e0 +34835bf,8 +34835c4,2 +34835c5,4 +34835c6,40 +34835c7,21 +34835c8,3c +34835c9,9 +34835ca,80 +34835cb,40 +34835cc,25 +34835cd,29 +34835ce,36 +34835cf,70 +34835d0,91 +34835d1,a +34835d3,6c +34835d4,34 +34835d5,1 +34835d7,ff +34835d8,11 +34835d9,41 +34835db,5 +34835e0,1 +34835e1,2a +34835e2,48 +34835e3,21 +34835e4,91 +34835e5,29 +34835e8,15 +34835e9,20 +34835eb,1c +34835f0,3c +34835f1,9 +34835f2,80 +34835f3,40 +34835f4,25 +34835f5,29 +34835f6,36 +34835f7,63 +34835f8,25 +34835f9,29 +34835fb,1 +34835fc,91 +34835fd,2a +3483600,11 +3483601,40 +3483603,13 +3483608,2 +3483609,a +348360a,58 +348360b,21 +348360c,91 +348360d,6b +348360f,74 +3483610,34 +3483611,1 +3483613,ff +3483614,11 +3483615,61 +3483616,ff +3483617,f8 +348361c,92 +348361d,c +348361f,6c +3483620,11 +3483621,8a +3483622,ff +3483623,f5 +3483628,92 +3483629,c +348362b,6d +348362c,11 +348362d,8a +348362e,ff +348362f,f2 +3483634,92 +3483635,c +3483637,6e +3483638,11 +3483639,8a +348363a,ff +348363b,ef +3483640,a1 +3483641,b +3483643,69 +3483644,a1 +3483645,a +3483647,6c +3483648,10 +348364b,4 +3483650,34 +3483651,9 +3483653,ff +3483654,a1 +3483655,9 +3483657,69 +3483658,a1 +3483659,9 +348365b,6c +348365c,3 +348365d,e0 +348365f,8 +3483664,7 +3483665,9 +3483666,f +3483667,2 +3483668,3 +3483669,1 +348366a,d +348366b,b +3483671,1 +3483672,1 +3483673,1 +3483674,1 +3483675,1 +3483677,1 +3483678,1 +3483679,1 +348367a,1 +348367b,1 +348367d,1 +348367f,1 +3483680,1 +3483681,1 +3483682,1 +3483683,1 +3483684,1 +3483685,1 +3483686,1 +3483689,33 +348368a,8 +348368b,21 +348368c,20 +348368d,f +348368f,47 +3483690,15 +3483691,ea +3483693,e +3483694,3c +3483695,2 +3483696,80 +3483697,12 +3483698,8c +3483699,42 +348369a,a5 +348369b,d4 +348369c,8e +348369d,6f +348369f,a4 +34836a1,f +34836a2,7a +34836a3,3 +34836a4,14 +34836a5,40 +34836a7,5 +34836a8,34 +34836a9,2 +34836aa,48 +34836ab,30 +34836ac,15 +34836ad,e2 +34836af,7 +34836b4,24 +34836b5,19 +34836b7,3 +34836b8,10 +34836bb,4 +34836bc,34 +34836bd,2 +34836be,63 +34836bf,11 +34836c0,15 +34836c1,e2 +34836c3,2 +34836c8,24 +34836c9,19 +34836cb,3 +34836cc,3 +34836cd,e0 +34836cf,8 +34836d4,8d +34836d5,ad +34836d6,8a +34836d7,a0 +34836d8,34 +34836d9,2 +34836da,80 +34836dc,10 +34836dd,4d +34836df,2 +34836e4,10 +34836e7,9 +34836e8,3c +34836e9,f +34836ea,80 +34836eb,1e +34836ec,25 +34836ed,ef +34836ee,84 +34836ef,a0 +34836f0,81 +34836f1,e2 +34836f2,1c +34836f3,bf +34836f4,30 +34836f5,42 +34836f7,1 +34836f8,10 +34836f9,40 +34836fb,2 +3483700,10 +3483703,2 +3483704,34 +3483705,2 +3483707,1 +3483708,a1 +3483709,e2 +348370a,1c +348370b,bf +348370c,3 +348370d,e0 +348370f,8 +3483715,33 +3483716,8 +3483717,21 +3483718,3c +3483719,2 +348371a,80 +348371b,12 +348371c,8c +348371d,42 +348371e,a5 +348371f,d4 +3483720,8e +3483721,6f +3483723,a4 +3483725,f +3483726,7a +3483727,3 +3483728,14 +3483729,40 +348372b,5 +348372c,34 +348372d,2 +348372e,48 +348372f,30 +3483730,15 +3483731,e2 +3483733,7 +3483738,24 +3483739,19 +348373b,3 +348373c,10 +348373f,4 +3483740,34 +3483741,2 +3483742,63 +3483743,11 +3483744,15 +3483745,e2 +3483747,2 +348374c,24 +348374d,19 +348374f,3 +3483750,3 +3483751,e0 +3483753,8 +3483758,34 +3483759,1 +348375b,18 +348375c,14 +348375d,81 +348375f,11 +3483764,14 +3483765,40 +3483767,f +348376c,3c +348376d,a +348376e,80 +348376f,12 +3483770,25 +3483771,4a +3483772,a5 +3483773,d0 +3483774,81 +3483775,48 +3483777,a6 +3483778,31 +3483779,8 +348377b,20 +348377c,11 +348377f,9 +3483780,34 +3483781,2 +3483784,34 +3483785,2 +3483787,1 +3483788,81 +3483789,48 +348378b,7b +348378c,34 +348378d,9 +348378f,7 +3483790,11 +3483791,9 +3483793,4 +3483794,34 +3483795,a +3483797,8 +3483798,11 +3483799,a +348379b,2 +34837a0,34 +34837a1,2 +34837a4,3 +34837a5,e0 +34837a7,8 +34837ac,80 +34837ad,a8 +34837b0,25 +34837b1,9 +34837b3,1 +34837b4,15 +34837b5,20 +34837b7,e +34837bc,27 +34837bd,bd +34837be,ff +34837bf,e8 +34837c0,af +34837c1,bf +34837c3,14 +34837c4,af +34837c5,a4 +34837c7,18 +34837c8,af +34837c9,a5 +34837cb,1c +34837cd,5 +34837ce,20 +34837cf,25 +34837d0,24 +34837d1,a5 +34837d3,8 +34837d4,c +34837d5,1 +34837d6,5c +34837d7,c +34837d8,24 +34837d9,c6 +34837da,ff +34837db,f8 +34837dc,8f +34837dd,a4 +34837df,18 +34837e0,8f +34837e1,a5 +34837e3,1c +34837e4,34 +34837e5,6 +34837e7,80 +34837e8,8f +34837e9,bf +34837eb,14 +34837ec,27 +34837ed,bd +34837ef,18 +34837f0,8 +34837f1,1 +34837f2,5c +34837f3,c +34837f8,a2 +34837f9,25 +34837fb,21 +34837fc,3c +34837fd,10 +34837fe,80 +34837ff,40 +3483800,26 +3483801,10 +3483802,17 +3483803,fc +3483804,26 +3483805,10 +3483807,4 +3483808,8e +3483809,a +348380c,11 +348380d,40 +348380f,b +3483815,a +3483816,7c +3483817,2 +3483818,1 +3483819,f1 +348381a,78 +348381b,20 +348381c,31 +348381d,58 +348381e,ff +3483821,18 +3483822,c2 +3483823,2 +3483824,17 +3483827,3 +3483828,31 +3483829,59 +348382b,ff +348382c,81 +348382d,ea +3483830,3 +3483831,2a +3483832,c8 +3483833,25 +3483834,8 +3483835,10 +3483836,e +3483837,1 +3483838,a1 +3483839,f9 +348383c,3 +348383d,e0 +348383f,8 +3483844,27 +3483845,bd +3483846,ff +3483847,f0 +3483848,af +3483849,bf +348384b,8 +348384c,c +348384d,10 +348384e,e +348384f,1f +3483850,22 +3483851,64 +3483852,ff +3483853,ff +3483854,34 +3483855,4a +3483858,8f +3483859,bf +348385b,8 +348385c,27 +348385d,bd +348385f,10 +3483860,27 +3483861,bd +3483862,ff +3483863,f0 +3483864,af +3483865,bf +3483867,8 +3483868,c +3483869,10 +348386a,e +348386b,1f +348386c,36 +348386d,44 +3483870,34 +3483871,50 +3483874,8f +3483875,bf +3483877,8 +3483878,27 +3483879,bd +348387b,10 +348387c,3c +348387d,8 +348387e,80 +348387f,40 +3483880,25 +3483881,8 +3483882,1c +3483883,2 +3483884,91 +3483885,8 +3483888,15 +348388b,7 +3483890,3c +3483891,8 +3483892,80 +3483893,12 +3483894,25 +3483895,8 +3483896,a5 +3483897,d0 +3483898,1 +3483899,4 +348389a,40 +348389b,20 +348389c,91 +348389d,2 +348389f,24 +34838a0,10 +34838a3,7 +34838a9,8 +34838aa,40 +34838ab,c0 +34838ac,3c +34838ad,2 +34838ae,80 +34838af,40 +34838b0,24 +34838b1,42 +34838b2,1c +34838b3,3 +34838b4,1 +34838b5,2 +34838b6,40 +34838b7,20 +34838b8,1 +34838b9,4 +34838ba,40 +34838bb,20 +34838bc,91 +34838bd,2 +34838c0,3 +34838c1,e0 +34838c3,8 +34838c8,8f +34838c9,b6 +34838cb,30 +34838cc,8f +34838cd,b7 +34838cf,34 +34838d0,8f +34838d1,be +34838d3,38 +34838d4,3c +34838d5,8 +34838d6,80 +34838d7,40 +34838d8,25 +34838d9,8 +34838da,1c +34838db,2 +34838dc,a1 +34838e0,3 +34838e1,e0 +34838e3,8 +34b3000,27 +34b3001,bd +34b3002,ff +34b3003,e8 +34b3004,af +34b3005,bf +34b3007,14 +34b3008,c +34b3009,10 +34b300a,17 +34b300b,2c +34b300c,24 +34b300d,4 +34b300e,4 +34b3010,3c +34b3011,3 +34b3012,80 +34b3013,40 +34b3014,ac +34b3015,62 +34b3016,65 +34b3017,18 +34b3018,3c +34b3019,3 +34b301a,80 +34b301b,40 +34b301c,ac +34b301d,62 +34b301e,65 +34b301f,14 +34b3020,8f +34b3021,bf +34b3023,14 +34b3024,3 +34b3025,e0 +34b3027,8 +34b3028,27 +34b3029,bd +34b302b,18 +34b302c,80 +34b302d,82 +34b3030,10 +34b3031,40 +34b3033,26 +34b3034,24 +34b3035,87 +34b3037,1 +34b3038,3c +34b3039,3 +34b303a,80 +34b303b,40 +34b303c,8c +34b303d,68 +34b303e,65 +34b303f,18 +34b3040,25 +34b3041,8 +34b3042,4 +34b3044,3c +34b3045,3 +34b3046,80 +34b3047,40 +34b3048,8c +34b3049,63 +34b304a,65 +34b304b,14 +34b304d,68 +34b304e,20 +34b304f,2b +34b3050,10 +34b3051,80 +34b3053,1e +34b3054,3c +34b3055,a +34b3056,ff +34b3058,25 +34b3059,4a +34b305a,f +34b305b,ff +34b305c,30 +34b305d,c6 +34b305e,f +34b305f,ff +34b3060,24 +34b3061,b +34b3062,f0 +34b3064,3c +34b3065,9 +34b3066,80 +34b3067,40 +34b3068,10 +34b306b,7 +34b306c,25 +34b306d,29 +34b306e,64 +34b306f,cc +34b3071,68 +34b3072,20 +34b3073,2b +34b3074,54 +34b3075,80 +34b3077,5 +34b3078,a0 +34b3079,62 +34b307c,3c +34b307d,2 +34b307e,80 +34b307f,40 +34b3080,3 +34b3081,e0 +34b3083,8 +34b3084,ac +34b3085,43 +34b3086,65 +34b3087,14 +34b3088,a0 +34b3089,62 +34b308c,30 +34b308d,a2 +34b308e,f +34b308f,ff +34b3091,2 +34b3092,23 +34b3094,8c +34b3095,62 +34b3099,4a +34b309a,10 +34b309b,24 +34b309d,44 +34b309e,10 +34b309f,25 +34b30a1,4b +34b30a2,10 +34b30a3,24 +34b30a5,46 +34b30a6,10 +34b30a7,25 +34b30a8,ac +34b30a9,62 +34b30ac,95 +34b30ad,22 +34b30af,4 +34b30b1,a2 +34b30b2,28 +34b30b3,21 +34b30b4,24 +34b30b5,e7 +34b30b7,1 +34b30b8,80 +34b30b9,e2 +34b30ba,ff +34b30bb,ff +34b30bc,14 +34b30bd,40 +34b30be,ff +34b30bf,ec +34b30c0,24 +34b30c1,63 +34b30c3,4 +34b30c4,3c +34b30c5,2 +34b30c6,80 +34b30c7,40 +34b30c8,ac +34b30c9,43 +34b30ca,65 +34b30cb,14 +34b30cc,3 +34b30cd,e0 +34b30cf,8 +34b30d4,27 +34b30d5,bd +34b30d6,ff +34b30d7,b0 +34b30d8,af +34b30d9,bf +34b30db,4c +34b30dc,af +34b30dd,be +34b30df,48 +34b30e0,af +34b30e1,b7 +34b30e3,44 +34b30e4,af +34b30e5,b6 +34b30e7,40 +34b30e8,af +34b30e9,b5 +34b30eb,3c +34b30ec,af +34b30ed,b4 +34b30ef,38 +34b30f0,af +34b30f1,b3 +34b30f3,34 +34b30f4,af +34b30f5,b2 +34b30f7,30 +34b30f8,af +34b30f9,b1 +34b30fb,2c +34b30fc,af +34b30fd,b0 +34b30ff,28 +34b3101,80 +34b3102,a8 +34b3103,25 +34b3106,b0 +34b3107,25 +34b310a,90 +34b310b,25 +34b310c,3c +34b310d,14 +34b310e,80 +34b310f,40 +34b3110,26 +34b3111,94 +34b3112,64 +34b3113,cc +34b3114,3c +34b3115,1e +34b3116,80 +34b3117,40 +34b3118,3c +34b3119,13 +34b311a,80 +34b311b,40 +34b311c,3c +34b311d,17 +34b311e,38 +34b311f,e3 +34b3120,af +34b3121,b4 +34b3123,20 +34b3124,24 +34b3125,7 +34b3127,12 +34b3128,2 +34b3129,c0 +34b312a,30 +34b312b,25 +34b312c,2 +34b312d,80 +34b312e,28 +34b312f,25 +34b3130,c +34b3131,10 +34b3132,17 +34b3133,66 +34b3134,2 +34b3135,a0 +34b3136,20 +34b3137,25 +34b3138,8f +34b3139,c5 +34b313a,65 +34b313b,18 +34b313c,10 +34b313f,1f +34b3140,36 +34b3141,f1 +34b3142,8e +34b3143,39 +34b3144,24 +34b3145,42 +34b3146,ff +34b3147,e0 +34b3149,51 +34b314b,18 +34b314e,18 +34b314f,10 +34b3151,3 +34b3152,18 +34b3153,83 +34b3155,2 +34b3156,27 +34b3157,c3 +34b3159,64 +34b315a,18 +34b315b,23 +34b315c,14 +34b315d,72 +34b315f,16 +34b3160,24 +34b3161,b0 +34b3163,4 +34b3164,8c +34b3165,a7 +34b3169,7 +34b316a,3b +34b316b,2 +34b316d,51 +34b316f,18 +34b3172,30 +34b3173,10 +34b3175,6 +34b3176,30 +34b3177,83 +34b3179,c4 +34b317a,30 +34b317b,23 +34b317d,6 +34b317e,18 +34b317f,c0 +34b3181,66 +34b3182,30 +34b3183,21 +34b3185,6 +34b3186,30 +34b3187,40 +34b3188,96 +34b3189,83 +34b318b,6 +34b318c,af +34b318d,a3 +34b318f,18 +34b3190,96 +34b3191,83 +34b3193,4 +34b3194,af +34b3195,a3 +34b3197,14 +34b3198,8c +34b3199,a3 +34b319c,30 +34b319d,63 +34b319e,f +34b319f,ff +34b31a0,af +34b31a1,a3 +34b31a3,10 +34b31a4,30 +34b31a5,e7 +34b31a6,f +34b31a7,ff +34b31a9,46 +34b31aa,30 +34b31ab,23 +34b31ac,8f +34b31ad,a5 +34b31af,20 +34b31b0,c +34b31b1,10 +34b31b2,17 +34b31b3,fb +34b31b4,2 +34b31b5,a0 +34b31b6,20 +34b31b7,25 +34b31b8,2 +34b31ba,28 +34b31bb,25 +34b31bc,8e +34b31bd,62 +34b31be,65 +34b31bf,14 +34b31c1,a2 +34b31c2,10 +34b31c3,2b +34b31c4,54 +34b31c5,40 +34b31c6,ff +34b31c7,df +34b31c8,80 +34b31c9,a2 +34b31cc,26 +34b31cd,52 +34b31cf,1 +34b31d0,24 +34b31d1,2 +34b31d3,6 +34b31d4,16 +34b31d5,42 +34b31d6,ff +34b31d7,d3 +34b31d8,26 +34b31d9,d6 +34b31db,12 +34b31dc,3c +34b31dd,2 +34b31de,80 +34b31df,40 +34b31e0,8c +34b31e1,43 +34b31e2,65 +34b31e3,18 +34b31e4,3c +34b31e5,2 +34b31e6,80 +34b31e7,40 +34b31e8,ac +34b31e9,43 +34b31ea,65 +34b31eb,14 +34b31ec,8f +34b31ed,bf +34b31ef,4c +34b31f0,8f +34b31f1,be +34b31f3,48 +34b31f4,8f +34b31f5,b7 +34b31f7,44 +34b31f8,8f +34b31f9,b6 +34b31fb,40 +34b31fc,8f +34b31fd,b5 +34b31ff,3c +34b3200,8f +34b3201,b4 +34b3203,38 +34b3204,8f +34b3205,b3 +34b3207,34 +34b3208,8f +34b3209,b2 +34b320b,30 +34b320c,8f +34b320d,b1 +34b320f,2c +34b3210,8f +34b3211,b0 +34b3213,28 +34b3214,3 +34b3215,e0 +34b3217,8 +34b3218,27 +34b3219,bd +34b321b,50 +34b321c,3c +34b321d,2 +34b321e,80 +34b321f,40 +34b3220,8c +34b3221,42 +34b3222,65 +34b3223,c +34b3224,10 +34b3225,40 +34b3226,2 +34b3227,6e +34b3228,3c +34b3229,3 +34b322a,80 +34b322b,40 +34b322c,27 +34b322d,bd +34b322e,ff +34b322f,90 +34b3230,af +34b3231,bf +34b3233,6c +34b3234,af +34b3235,be +34b3237,68 +34b3238,af +34b3239,b7 +34b323b,64 +34b323c,af +34b323d,b6 +34b323f,60 +34b3240,af +34b3241,b5 +34b3243,5c +34b3244,af +34b3245,b4 +34b3247,58 +34b3248,af +34b3249,b3 +34b324b,54 +34b324c,af +34b324d,b2 +34b324f,50 +34b3250,af +34b3251,b1 +34b3253,4c +34b3254,af +34b3255,b0 +34b3257,48 +34b3258,8c +34b3259,82 +34b325b,4 +34b325c,8c +34b325d,63 +34b325e,65 +34b325f,44 +34b3260,24 +34b3261,45 +34b3263,8 +34b3264,ac +34b3265,85 +34b3267,8 +34b3268,3c +34b3269,5 +34b326a,de +34b326c,ac +34b326d,45 +34b3270,ac +34b3271,43 +34b3273,4 +34b3274,3c +34b3275,2 +34b3276,80 +34b3277,11 +34b3278,34 +34b3279,42 +34b327a,a5 +34b327b,d0 +34b327c,94 +34b327d,54 +34b327e,f +34b327f,2e +34b3280,3c +34b3281,2 +34b3282,80 +34b3283,40 +34b3284,8c +34b3285,42 +34b3286,65 +34b3287,1c +34b3288,50 +34b3289,40 +34b328b,5 +34b328c,24 +34b328d,8 +34b328f,1 +34b3290,32 +34b3291,88 +34b3293,1 +34b3295,14 +34b3296,a0 +34b3297,42 +34b3298,10 +34b329b,2 +34b329c,32 +34b329d,94 +34b329f,1 +34b32a0,24 +34b32a1,14 +34b32a3,1 +34b32a4,3c +34b32a5,2 +34b32a6,80 +34b32a7,40 +34b32a8,8c +34b32a9,55 +34b32aa,65 +34b32ab,28 +34b32ac,12 +34b32ad,a0 +34b32af,7 +34b32b0,2 +34b32b1,a0 +34b32b2,18 +34b32b3,25 +34b32b4,3c +34b32b5,2 +34b32b6,80 +34b32b7,40 +34b32b8,94 +34b32b9,43 +34b32ba,64 +34b32bb,d0 +34b32bd,3 +34b32be,10 +34b32bf,40 +34b32c1,43 +34b32c2,10 +34b32c3,21 +34b32c5,2 +34b32c6,10 +34b32c7,40 +34b32c8,24 +34b32c9,43 +34b32cb,2 +34b32cc,3c +34b32cd,2 +34b32ce,80 +34b32cf,40 +34b32d0,94 +34b32d1,42 +34b32d2,64 +34b32d3,d0 +34b32d5,2 +34b32d6,10 +34b32d7,c0 +34b32d8,24 +34b32d9,42 +34b32db,5e +34b32dd,43 +34b32de,10 +34b32df,21 +34b32e0,24 +34b32e1,3 +34b32e2,1 +34b32e3,40 +34b32e5,62 +34b32e6,18 +34b32e7,23 +34b32e9,3 +34b32ea,8f +34b32eb,c2 +34b32ec,2 +34b32ed,23 +34b32ee,88 +34b32ef,21 +34b32f1,11 +34b32f2,88 +34b32f3,43 +34b32f4,26 +34b32f5,23 +34b32f7,2 +34b32f8,af +34b32f9,a3 +34b32fb,38 +34b32fc,8c +34b32fd,83 +34b32ff,8 +34b3300,24 +34b3301,65 +34b3303,8 +34b3304,ac +34b3305,85 +34b3307,8 +34b3308,3c +34b3309,5 +34b330a,fc +34b330b,ff +34b330c,34 +34b330d,a5 +34b330e,ff +34b330f,ff +34b3310,ac +34b3311,65 +34b3314,3c +34b3315,5 +34b3316,ff +34b3317,fd +34b3318,34 +34b3319,a5 +34b331a,f6 +34b331b,fb +34b331c,ac +34b331d,65 +34b331f,4 +34b3320,8c +34b3321,83 +34b3323,8 +34b3324,24 +34b3325,65 +34b3327,8 +34b3328,ac +34b3329,85 +34b332b,8 +34b332c,3c +34b332d,5 +34b332e,fa +34b3330,ac +34b3331,65 +34b3334,24 +34b3335,5 +34b3337,d0 +34b3338,ac +34b3339,65 +34b333b,4 +34b333d,51 +34b333e,10 +34b333f,21 +34b3341,2 +34b3342,13 +34b3343,80 +34b3344,3c +34b3345,3 +34b3347,ff +34b3348,34 +34b3349,63 +34b334a,f0 +34b334d,43 +34b334e,10 +34b334f,24 +34b3350,3c +34b3351,5 +34b3352,e4 +34b3354,24 +34b3355,a5 +34b3356,3 +34b3357,b8 +34b3359,45 +34b335a,10 +34b335b,25 +34b335c,af +34b335d,a2 +34b335f,20 +34b3361,11 +34b3362,13 +34b3363,80 +34b3365,43 +34b3366,10 +34b3367,24 +34b3368,34 +34b3369,42 +34b336b,8 +34b336c,af +34b336d,a2 +34b336f,24 +34b3370,3c +34b3371,2 +34b3372,e1 +34b3374,af +34b3375,a2 +34b3377,28 +34b3378,af +34b3379,a0 +34b337b,2c +34b337c,3c +34b337d,2 +34b337e,f1 +34b3380,af +34b3381,a2 +34b3383,30 +34b3384,3c +34b3385,2 +34b3386,4 +34b3388,24 +34b3389,42 +34b338a,4 +34b338c,af +34b338d,a2 +34b338f,34 +34b3390,27 +34b3391,a2 +34b3393,20 +34b3394,27 +34b3395,a9 +34b3397,38 +34b3398,8c +34b3399,83 +34b339b,8 +34b339c,24 +34b339d,65 +34b339f,8 +34b33a0,ac +34b33a1,85 +34b33a3,8 +34b33a4,8c +34b33a5,47 +34b33a7,4 +34b33a8,8c +34b33a9,46 +34b33ac,ac +34b33ad,67 +34b33af,4 +34b33b0,24 +34b33b1,42 +34b33b3,8 +34b33b4,15 +34b33b5,22 +34b33b6,ff +34b33b7,f8 +34b33b8,ac +34b33b9,66 +34b33bd,80 +34b33be,80 +34b33bf,25 +34b33c0,8c +34b33c1,82 +34b33c3,8 +34b33c4,24 +34b33c5,43 +34b33c7,8 +34b33c8,ac +34b33c9,83 +34b33cb,8 +34b33cc,3c +34b33cd,3 +34b33ce,e7 +34b33d0,ac +34b33d1,43 +34b33d4,ac +34b33d5,40 +34b33d7,4 +34b33d8,8c +34b33d9,82 +34b33db,8 +34b33dc,24 +34b33dd,43 +34b33df,8 +34b33e0,ac +34b33e1,83 +34b33e3,8 +34b33e4,3c +34b33e5,3 +34b33e6,fc +34b33e7,11 +34b33e8,34 +34b33e9,63 +34b33ea,96 +34b33eb,23 +34b33ec,ac +34b33ed,43 +34b33f0,3c +34b33f1,3 +34b33f2,ff +34b33f3,2f +34b33f4,34 +34b33f5,63 +34b33f6,ff +34b33f7,ff +34b33f8,11 +34b33fb,4d +34b33fc,ac +34b33fd,43 +34b33ff,4 +34b3400,3c +34b3401,5 +34b3402,80 +34b3403,40 +34b3404,24 +34b3405,a5 +34b3406,64 +34b3407,ec +34b3408,94 +34b3409,a7 +34b340b,8 +34b340c,c +34b340d,10 +34b340e,17 +34b340f,66 +34b3412,30 +34b3413,25 +34b3414,3c +34b3415,2 +34b3416,80 +34b3417,40 +34b3418,8c +34b3419,42 +34b341a,65 +34b341b,10 +34b341c,18 +34b341d,40 +34b341f,44 +34b3420,3c +34b3421,2 +34b3422,80 +34b3423,40 +34b3424,3c +34b3425,13 +34b3426,80 +34b3427,40 +34b3428,26 +34b3429,73 +34b342a,64 +34b342b,30 +34b342e,90 +34b342f,25 +34b3430,3c +34b3431,1e +34b3432,80 +34b3433,40 +34b3434,3c +34b3435,16 +34b3436,80 +34b3437,40 +34b3438,26 +34b3439,d6 +34b343a,64 +34b343b,c +34b343c,24 +34b343d,42 +34b343e,64 +34b343f,1c +34b3440,af +34b3441,a2 +34b3443,3c +34b3444,3c +34b3445,2 +34b3446,80 +34b3447,40 +34b3448,24 +34b3449,42 +34b344a,64 +34b344b,ec +34b344c,af +34b344d,a2 +34b344f,40 +34b3450,3c +34b3451,17 +34b3452,80 +34b3453,40 +34b3454,8f +34b3455,c2 +34b3456,65 +34b3457,20 +34b3458,50 +34b3459,40 +34b345b,b +34b345c,92 +34b345d,62 +34b3460,92 +34b3461,63 +34b3464,3c +34b3465,2 +34b3466,80 +34b3467,11 +34b3468,34 +34b3469,42 +34b346a,a5 +34b346b,d0 +34b346d,43 +34b346e,10 +34b346f,21 +34b3470,90 +34b3471,42 +34b3473,a8 +34b3475,2 +34b3476,10 +34b3477,42 +34b3478,30 +34b3479,42 +34b347b,1 +34b347c,50 +34b347d,40 +34b347f,28 +34b3480,26 +34b3481,52 +34b3483,1 +34b3484,92 +34b3485,62 +34b3489,56 +34b348a,10 +34b348b,21 +34b348c,80 +34b348d,46 +34b3490,28 +34b3491,c2 +34b3493,3 +34b3494,54 +34b3495,40 +34b3497,22 +34b3498,26 +34b3499,52 +34b349b,1 +34b349c,24 +34b349d,c6 +34b349e,ff +34b349f,fd +34b34a1,6 +34b34a2,18 +34b34a3,40 +34b34a5,66 +34b34a6,18 +34b34a7,21 +34b34a8,8f +34b34a9,a2 +34b34ab,3c +34b34ad,62 +34b34ae,18 +34b34af,21 +34b34b0,90 +34b34b1,62 +34b34b5,2 +34b34b6,16 +34b34b8,90 +34b34b9,64 +34b34bb,2 +34b34bd,4 +34b34be,22 +34b34c1,44 +34b34c2,10 +34b34c3,25 +34b34c4,90 +34b34c5,63 +34b34c7,1 +34b34c9,3 +34b34ca,1c +34b34cd,43 +34b34ce,10 +34b34cf,25 +34b34d0,34 +34b34d1,42 +34b34d3,ff +34b34d4,8e +34b34d5,3 +34b34d7,8 +34b34d8,24 +34b34d9,64 +34b34db,8 +34b34dc,ae +34b34dd,4 +34b34df,8 +34b34e0,3c +34b34e1,4 +34b34e2,fa +34b34e4,ac +34b34e5,64 +34b34e8,ac +34b34e9,62 +34b34eb,4 +34b34ec,24 +34b34ed,2 +34b34ef,10 +34b34f0,af +34b34f1,a2 +34b34f3,18 +34b34f4,af +34b34f5,a2 +34b34f7,14 +34b34f9,12 +34b34fa,10 +34b34fb,c0 +34b34fd,52 +34b34fe,10 +34b34ff,21 +34b3501,2 +34b3502,10 +34b3503,40 +34b3504,24 +34b3505,42 +34b3507,4 +34b3508,af +34b3509,a2 +34b350b,10 +34b350c,8f +34b350d,a7 +34b350f,38 +34b3510,8f +34b3511,a5 +34b3513,40 +34b3514,c +34b3515,10 +34b3516,17 +34b3517,fb +34b3518,2 +34b351a,20 +34b351b,25 +34b351c,26 +34b351d,52 +34b351f,1 +34b3520,8e +34b3521,e2 +34b3522,65 +34b3523,10 +34b3524,2 +34b3525,42 +34b3526,10 +34b3527,2a +34b3528,14 +34b3529,40 +34b352a,ff +34b352b,ca +34b352c,26 +34b352d,73 +34b352f,c +34b3530,8e +34b3531,2 +34b3533,8 +34b3534,24 +34b3535,43 +34b3537,8 +34b3538,ae +34b3539,3 +34b353b,8 +34b353c,3c +34b353d,3 +34b353e,fa +34b3540,ac +34b3541,43 +34b3544,24 +34b3545,3 +34b3546,ff +34b3547,ff +34b3548,12 +34b3549,80 +34b354b,36 +34b354c,ac +34b354d,43 +34b354f,4 +34b3550,3c +34b3551,5 +34b3552,80 +34b3553,40 +34b3554,24 +34b3555,a5 +34b3556,64 +34b3557,fc +34b3558,94 +34b3559,a7 +34b355b,8 +34b355e,30 +34b355f,25 +34b3560,c +34b3561,10 +34b3562,17 +34b3563,66 +34b3564,2 +34b3566,20 +34b3567,25 +34b3568,3c +34b3569,2 +34b356a,80 +34b356b,40 +34b356c,8c +34b356d,42 +34b356e,65 +34b356f,10 +34b3570,18 +34b3571,40 +34b3572,1 +34b3573,99 +34b3574,3c +34b3575,2 +34b3576,80 +34b3577,40 +34b3578,3c +34b3579,13 +34b357a,80 +34b357b,40 +34b357c,26 +34b357d,73 +34b357e,64 +34b357f,30 +34b3582,90 +34b3583,25 +34b3584,3c +34b3585,17 +34b3586,80 +34b3587,40 +34b3588,3c +34b3589,14 +34b358a,80 +34b358b,40 +34b358c,26 +34b358d,94 +34b358e,64 +34b358f,c +34b3590,24 +34b3591,42 +34b3592,64 +34b3593,fc +34b3594,af +34b3595,a2 +34b3597,3c +34b3598,3c +34b3599,1e +34b359a,80 +34b359b,11 +34b359c,37 +34b359d,de +34b359e,a5 +34b359f,d0 +34b35a0,3c +34b35a1,16 +34b35a2,80 +34b35a3,40 +34b35a4,8e +34b35a5,e2 +34b35a6,65 +34b35a7,20 +34b35a8,10 +34b35a9,40 +34b35ab,8 +34b35ac,92 +34b35ad,62 +34b35b0,3 +34b35b1,c2 +34b35b2,10 +34b35b3,21 +34b35b4,90 +34b35b5,42 +34b35b7,a8 +34b35b9,2 +34b35ba,10 +34b35bb,42 +34b35bc,30 +34b35bd,42 +34b35bf,1 +34b35c0,50 +34b35c1,40 +34b35c3,14 +34b35c4,26 +34b35c5,52 +34b35c7,1 +34b35c8,92 +34b35c9,62 +34b35cd,54 +34b35ce,10 +34b35cf,21 +34b35d0,80 +34b35d1,46 +34b35d4,2c +34b35d5,c2 +34b35d7,3 +34b35d8,50 +34b35d9,40 +34b35db,e +34b35dc,26 +34b35dd,52 +34b35df,1 +34b35e0,24 +34b35e1,2 +34b35e3,10 +34b35e4,af +34b35e5,a2 +34b35e7,18 +34b35e8,af +34b35e9,a2 +34b35eb,14 +34b35ed,12 +34b35ee,10 +34b35ef,c0 +34b35f1,52 +34b35f2,10 +34b35f3,21 +34b35f5,2 +34b35f6,10 +34b35f7,40 +34b35f8,24 +34b35f9,42 +34b35fb,4 +34b35fc,af +34b35fd,a2 +34b35ff,10 +34b3600,8f +34b3601,a7 +34b3603,38 +34b3604,8f +34b3605,a5 +34b3607,3c +34b3608,c +34b3609,10 +34b360a,17 +34b360b,fb +34b360c,2 +34b360e,20 +34b360f,25 +34b3610,26 +34b3611,52 +34b3613,1 +34b3614,8e +34b3615,c2 +34b3616,65 +34b3617,10 +34b3618,2 +34b3619,42 +34b361a,10 +34b361b,2a +34b361c,14 +34b361d,40 +34b361e,ff +34b361f,e1 +34b3620,26 +34b3621,73 +34b3623,c +34b3624,3c +34b3625,2 +34b3626,80 +34b3627,40 +34b3628,8c +34b3629,42 +34b362a,65 +34b362b,10 +34b362c,18 +34b362d,40 +34b362f,10 +34b3630,26 +34b3631,31 +34b3633,14 +34b3634,3c +34b3635,12 +34b3636,80 +34b3637,40 +34b3638,26 +34b3639,52 +34b363a,64 +34b363b,32 +34b363c,24 +34b363d,14 +34b363f,5 +34b3642,98 +34b3643,25 +34b3644,3c +34b3645,16 +34b3646,80 +34b3647,40 +34b3648,2 +34b3649,80 +34b364a,30 +34b364b,25 +34b364c,2 +34b364d,20 +34b364e,28 +34b364f,25 +34b3650,c +34b3651,10 +34b3652,14 +34b3653,b +34b3654,2 +34b3655,40 +34b3656,20 +34b3657,25 +34b3658,26 +34b3659,73 +34b365b,1 +34b365c,26 +34b365d,52 +34b365f,c +34b3660,8e +34b3661,c2 +34b3662,65 +34b3663,10 +34b3664,2 +34b3665,62 +34b3666,10 +34b3667,2a +34b3668,14 +34b3669,40 +34b366a,ff +34b366b,f7 +34b366c,26 +34b366d,94 +34b366f,12 +34b3670,3c +34b3671,2 +34b3672,80 +34b3673,40 +34b3674,94 +34b3675,42 +34b3676,64 +34b3677,d0 +34b3679,2 +34b367a,10 +34b367b,c0 +34b367c,24 +34b367d,42 +34b367f,2 +34b3681,51 +34b3682,88 +34b3683,21 +34b3684,24 +34b3685,7 +34b3687,1 +34b3688,24 +34b3689,6 +34b368b,11 +34b368c,3c +34b368d,5 +34b368e,80 +34b368f,40 +34b3690,24 +34b3691,a5 +34b3692,64 +34b3693,dc +34b3694,c +34b3695,10 +34b3696,17 +34b3697,66 +34b3698,2 +34b369a,20 +34b369b,25 +34b369c,3c +34b369d,2 +34b369e,80 +34b369f,40 +34b36a0,8c +34b36a1,42 +34b36a2,65 +34b36a3,10 +34b36a4,18 +34b36a5,40 +34b36a7,2a +34b36a8,3c +34b36a9,1e +34b36aa,80 +34b36ab,11 +34b36ac,3c +34b36ad,13 +34b36ae,80 +34b36af,40 +34b36b0,26 +34b36b1,73 +34b36b2,64 +34b36b3,30 +34b36b4,24 +34b36b5,14 +34b36b7,5 +34b36ba,90 +34b36bb,25 +34b36bc,2 +34b36bd,60 +34b36be,b0 +34b36bf,25 +34b36c0,37 +34b36c1,de +34b36c2,a5 +34b36c3,d0 +34b36c4,3c +34b36c5,17 +34b36c6,80 +34b36c7,40 +34b36c9,12 +34b36ca,10 +34b36cb,40 +34b36cd,52 +34b36ce,10 +34b36cf,21 +34b36d1,2 +34b36d2,10 +34b36d3,80 +34b36d5,56 +34b36d6,10 +34b36d7,21 +34b36d8,80 +34b36d9,42 +34b36db,1 +34b36dc,4 +34b36dd,43 +34b36df,17 +34b36e0,26 +34b36e1,52 +34b36e3,1 +34b36e4,92 +34b36e5,62 +34b36e8,3 +34b36e9,c2 +34b36ea,10 +34b36eb,21 +34b36ec,90 +34b36ed,42 +34b36ef,bc +34b36f1,2 +34b36f2,1e +34b36f5,3 +34b36f6,1e +34b36f7,3 +34b36f8,28 +34b36f9,63 +34b36fb,a +34b36fc,50 +34b36fd,60 +34b36ff,1 +34b3700,24 +34b3701,2 +34b3703,9 +34b3704,24 +34b3705,3 +34b3706,30 +34b3708,a7 +34b3709,a3 +34b370b,20 +34b370d,40 +34b370e,18 +34b370f,25 +34b3711,2 +34b3712,16 +34b3715,2 +34b3716,16 +34b3717,3 +34b3718,4 +34b3719,42 +34b371b,1 +34b371e,18 +34b371f,25 +34b3720,24 +34b3721,63 +34b3723,30 +34b3724,a3 +34b3725,a3 +34b3727,20 +34b3728,2 +34b3729,80 +34b372a,30 +34b372b,25 +34b372c,2 +34b372d,20 +34b372e,28 +34b372f,25 +34b3730,c +34b3731,10 +34b3732,14 +34b3733,b +34b3734,27 +34b3735,a4 +34b3737,20 +34b3738,26 +34b3739,52 +34b373b,1 +34b373c,26 +34b373d,73 +34b373f,c +34b3740,8e +34b3741,e2 +34b3742,65 +34b3743,10 +34b3744,2 +34b3745,42 +34b3746,10 +34b3747,2a +34b3748,14 +34b3749,40 +34b374a,ff +34b374b,df +34b374c,26 +34b374d,94 +34b374f,12 +34b3750,26 +34b3751,3e +34b3753,12 +34b3754,24 +34b3755,7 +34b3757,1 +34b3758,24 +34b3759,6 +34b375b,e +34b375c,3c +34b375d,5 +34b375e,80 +34b375f,40 +34b3760,24 +34b3761,a5 +34b3762,64 +34b3763,dc +34b3764,c +34b3765,10 +34b3766,17 +34b3767,66 +34b3768,2 +34b376a,20 +34b376b,25 +34b376c,3c +34b376d,2 +34b376e,80 +34b376f,40 +34b3770,8c +34b3771,42 +34b3772,65 +34b3773,10 +34b3774,18 +34b3775,40 +34b3777,2d +34b3778,3c +34b3779,2 +34b377a,80 +34b377b,40 +34b377c,3c +34b377d,13 +34b377e,80 +34b377f,40 +34b3780,26 +34b3781,73 +34b3782,64 +34b3783,30 +34b3786,90 +34b3787,25 +34b3788,24 +34b3789,17 +34b378b,d +34b378c,2 +34b378d,60 +34b378e,a0 +34b378f,25 +34b3790,24 +34b3791,42 +34b3792,64 +34b3793,dc +34b3794,af +34b3795,a2 +34b3797,38 +34b3798,3c +34b3799,16 +34b379a,80 +34b379b,40 +34b379c,92 +34b379d,63 +34b37a0,50 +34b37a1,77 +34b37a3,1 +34b37a4,24 +34b37a5,3 +34b37a7,a +34b37a9,12 +34b37aa,10 +34b37ab,40 +34b37ad,52 +34b37ae,10 +34b37af,21 +34b37b1,2 +34b37b2,10 +34b37b3,80 +34b37b5,54 +34b37b6,10 +34b37b7,21 +34b37b8,90 +34b37b9,42 +34b37bb,1 +34b37bc,30 +34b37bd,42 +34b37bf,40 +34b37c0,50 +34b37c1,40 +34b37c3,16 +34b37c4,26 +34b37c5,52 +34b37c7,1 +34b37c8,3c +34b37c9,2 +34b37ca,80 +34b37cb,11 +34b37cc,34 +34b37cd,42 +34b37ce,a5 +34b37cf,d0 +34b37d1,43 +34b37d2,10 +34b37d3,21 +34b37d4,90 +34b37d5,42 +34b37d7,a8 +34b37d8,30 +34b37d9,42 +34b37db,1 +34b37dc,50 +34b37dd,40 +34b37df,f +34b37e0,26 +34b37e1,52 +34b37e3,1 +34b37e4,24 +34b37e5,2 +34b37e7,10 +34b37e8,af +34b37e9,a2 +34b37eb,18 +34b37ec,af +34b37ed,a2 +34b37ef,14 +34b37f1,12 +34b37f2,10 +34b37f3,c0 +34b37f5,52 +34b37f6,10 +34b37f7,21 +34b37f9,2 +34b37fa,10 +34b37fb,40 +34b37fc,24 +34b37fd,42 +34b37ff,4 +34b3800,af +34b3801,a2 +34b3803,10 +34b3804,3 +34b3805,c0 +34b3806,38 +34b3807,25 +34b380a,30 +34b380b,25 +34b380c,8f +34b380d,a5 +34b380f,38 +34b3810,c +34b3811,10 +34b3812,17 +34b3813,fb +34b3814,2 +34b3816,20 +34b3817,25 +34b3818,26 +34b3819,52 +34b381b,1 +34b381c,8e +34b381d,c2 +34b381e,65 +34b381f,10 +34b3820,2 +34b3821,42 +34b3822,10 +34b3823,2a +34b3824,14 +34b3825,40 +34b3826,ff +34b3827,dd +34b3828,26 +34b3829,73 +34b382b,c +34b382c,24 +34b382d,7 +34b382f,1 +34b3830,24 +34b3831,6 +34b3833,a +34b3834,3c +34b3835,5 +34b3836,80 +34b3837,40 +34b3838,24 +34b3839,a5 +34b383a,64 +34b383b,dc +34b383c,c +34b383d,10 +34b383e,17 +34b383f,66 +34b3840,2 +34b3842,20 +34b3843,25 +34b3844,3c +34b3845,2 +34b3846,80 +34b3847,40 +34b3848,8c +34b3849,42 +34b384a,65 +34b384b,10 +34b384c,58 +34b384d,40 +34b384f,29 +34b3850,26 +34b3851,3e +34b3853,24 +34b3856,90 +34b3857,25 +34b3858,3c +34b3859,13 +34b385a,80 +34b385b,40 +34b385c,26 +34b385d,73 +34b385e,64 +34b385f,30 +34b3860,3c +34b3861,16 +34b3862,80 +34b3863,11 +34b3864,3c +34b3865,17 +34b3866,80 +34b3867,40 +34b3868,26 +34b3869,f7 +34b386a,64 +34b386b,dc +34b386c,3c +34b386d,14 +34b386e,80 +34b386f,40 +34b3871,12 +34b3872,10 +34b3873,40 +34b3875,52 +34b3876,10 +34b3877,21 +34b3879,2 +34b387a,10 +34b387b,80 +34b387d,53 +34b387e,10 +34b387f,21 +34b3880,90 +34b3881,42 +34b3883,1 +34b3884,30 +34b3885,42 +34b3887,20 +34b3888,50 +34b3889,40 +34b388b,15 +34b388c,26 +34b388d,52 +34b388f,1 +34b3890,36 +34b3891,c2 +34b3892,a5 +34b3893,d0 +34b3894,8c +34b3895,42 +34b3897,a4 +34b3898,3c +34b3899,3 +34b389b,40 +34b389d,43 +34b389e,10 +34b389f,24 +34b38a0,50 +34b38a1,40 +34b38a3,f +34b38a4,26 +34b38a5,52 +34b38a7,1 +34b38a8,24 +34b38a9,2 +34b38ab,10 +34b38ac,af +34b38ad,a2 +34b38af,18 +34b38b0,af +34b38b1,a2 +34b38b3,14 +34b38b5,12 +34b38b6,10 +34b38b7,c0 +34b38b9,52 +34b38ba,10 +34b38bb,21 +34b38bd,2 +34b38be,10 +34b38bf,40 +34b38c0,24 +34b38c1,42 +34b38c3,4 +34b38c4,af +34b38c5,a2 +34b38c7,10 +34b38c8,3 +34b38c9,c0 +34b38ca,38 +34b38cb,25 +34b38ce,30 +34b38cf,25 +34b38d0,2 +34b38d1,e0 +34b38d2,28 +34b38d3,25 +34b38d4,c +34b38d5,10 +34b38d6,17 +34b38d7,fb +34b38d8,2 +34b38da,20 +34b38db,25 +34b38dc,26 +34b38dd,52 +34b38df,1 +34b38e0,8e +34b38e1,82 +34b38e2,65 +34b38e3,10 +34b38e4,2 +34b38e5,42 +34b38e6,10 +34b38e7,2a +34b38e8,14 +34b38e9,40 +34b38ea,ff +34b38eb,e2 +34b38ed,12 +34b38ee,10 +34b38ef,40 +34b38f0,26 +34b38f1,3e +34b38f3,24 +34b38f4,24 +34b38f5,7 +34b38f7,1 +34b38f8,24 +34b38f9,6 +34b38fb,10 +34b38fc,3c +34b38fd,5 +34b38fe,80 +34b38ff,40 +34b3900,24 +34b3901,a5 +34b3902,64 +34b3903,dc +34b3904,c +34b3905,10 +34b3906,17 +34b3907,66 +34b3908,2 +34b390a,20 +34b390b,25 +34b390c,3c +34b390d,2 +34b390e,80 +34b390f,40 +34b3910,8c +34b3911,42 +34b3912,65 +34b3913,10 +34b3914,18 +34b3915,40 +34b3917,2b +34b3918,3c +34b3919,13 +34b391a,80 +34b391b,40 +34b391c,26 +34b391d,73 +34b391e,64 +34b391f,30 +34b3922,90 +34b3923,25 +34b3924,2 +34b3925,60 +34b3926,a0 +34b3927,25 +34b3928,3c +34b3929,17 +34b392a,80 +34b392b,11 +34b392c,3c +34b392d,2 +34b392e,80 +34b392f,40 +34b3930,24 +34b3931,42 +34b3932,64 +34b3933,dc +34b3934,af +34b3935,a2 +34b3937,38 +34b3938,3c +34b3939,16 +34b393a,80 +34b393b,40 +34b393d,12 +34b393e,10 +34b393f,40 +34b3941,52 +34b3942,10 +34b3943,21 +34b3945,2 +34b3946,10 +34b3947,80 +34b3949,54 +34b394a,10 +34b394b,21 +34b394c,90 +34b394d,42 +34b394f,1 +34b3950,30 +34b3951,42 +34b3953,10 +34b3954,50 +34b3955,40 +34b3957,17 +34b3958,26 +34b3959,52 +34b395b,1 +34b395c,36 +34b395d,e2 +34b395e,a5 +34b395f,d0 +34b3960,92 +34b3961,63 +34b3965,43 +34b3966,10 +34b3967,21 +34b3968,90 +34b3969,42 +34b396b,a8 +34b396d,2 +34b396e,10 +34b396f,82 +34b3970,30 +34b3971,42 +34b3973,1 +34b3974,50 +34b3975,40 +34b3977,f +34b3978,26 +34b3979,52 +34b397b,1 +34b397c,24 +34b397d,2 +34b397f,10 +34b3980,af +34b3981,a2 +34b3983,18 +34b3984,af +34b3985,a2 +34b3987,14 +34b3989,12 +34b398a,10 +34b398b,c0 +34b398d,52 +34b398e,10 +34b398f,21 +34b3991,2 +34b3992,10 +34b3993,40 +34b3994,24 +34b3995,42 +34b3997,4 +34b3998,af +34b3999,a2 +34b399b,10 +34b399c,3 +34b399d,c0 +34b399e,38 +34b399f,25 +34b39a2,30 +34b39a3,25 +34b39a4,8f +34b39a5,a5 +34b39a7,38 +34b39a8,c +34b39a9,10 +34b39aa,17 +34b39ab,fb +34b39ac,2 +34b39ae,20 +34b39af,25 +34b39b0,26 +34b39b1,52 +34b39b3,1 +34b39b4,8e +34b39b5,c2 +34b39b6,65 +34b39b7,10 +34b39b8,2 +34b39b9,42 +34b39ba,10 +34b39bb,2a +34b39bc,14 +34b39bd,40 +34b39be,ff +34b39bf,df +34b39c0,26 +34b39c1,73 +34b39c3,c +34b39c4,26 +34b39c5,3e +34b39c7,36 +34b39c8,24 +34b39c9,7 +34b39cb,1 +34b39cc,24 +34b39cd,6 +34b39cf,f +34b39d0,3c +34b39d1,5 +34b39d2,80 +34b39d3,40 +34b39d4,24 +34b39d5,a5 +34b39d6,64 +34b39d7,dc +34b39d8,c +34b39d9,10 +34b39da,17 +34b39db,66 +34b39dc,2 +34b39de,20 +34b39df,25 +34b39e0,3c +34b39e1,2 +34b39e2,80 +34b39e3,40 +34b39e4,8c +34b39e5,42 +34b39e6,65 +34b39e7,10 +34b39e8,18 +34b39e9,40 +34b39eb,61 +34b39ec,3c +34b39ed,13 +34b39ee,80 +34b39ef,40 +34b39f0,26 +34b39f1,73 +34b39f2,64 +34b39f3,30 +34b39f6,90 +34b39f7,25 +34b39f8,2 +34b39f9,60 +34b39fa,a0 +34b39fb,25 +34b39fc,3c +34b39fd,17 +34b39fe,80 +34b39ff,11 +34b3a00,3c +34b3a01,2 +34b3a02,80 +34b3a03,40 +34b3a04,24 +34b3a05,42 +34b3a06,64 +34b3a07,dc +34b3a08,af +34b3a09,a2 +34b3a0b,38 +34b3a0c,3c +34b3a0d,16 +34b3a0e,80 +34b3a0f,40 +34b3a11,12 +34b3a12,10 +34b3a13,40 +34b3a15,52 +34b3a16,10 +34b3a17,21 +34b3a19,2 +34b3a1a,10 +34b3a1b,80 +34b3a1d,54 +34b3a1e,10 +34b3a1f,21 +34b3a20,90 +34b3a21,42 +34b3a23,1 +34b3a24,30 +34b3a25,42 +34b3a27,10 +34b3a28,50 +34b3a29,40 +34b3a2b,17 +34b3a2c,26 +34b3a2d,52 +34b3a2f,1 +34b3a30,36 +34b3a31,e2 +34b3a32,a5 +34b3a33,d0 +34b3a34,92 +34b3a35,63 +34b3a39,43 +34b3a3a,10 +34b3a3b,21 +34b3a3c,90 +34b3a3d,42 +34b3a3f,a8 +34b3a41,2 +34b3a42,10 +34b3a43,42 +34b3a44,30 +34b3a45,42 +34b3a47,1 +34b3a48,50 +34b3a49,40 +34b3a4b,f +34b3a4c,26 +34b3a4d,52 +34b3a4f,1 +34b3a50,24 +34b3a51,2 +34b3a53,10 +34b3a54,af +34b3a55,a2 +34b3a57,18 +34b3a58,af +34b3a59,a2 +34b3a5b,14 +34b3a5d,12 +34b3a5e,10 +34b3a5f,c0 +34b3a61,52 +34b3a62,10 +34b3a63,21 +34b3a65,2 +34b3a66,10 +34b3a67,40 +34b3a68,24 +34b3a69,42 +34b3a6b,4 +34b3a6c,af +34b3a6d,a2 +34b3a6f,10 +34b3a70,3 +34b3a71,c0 +34b3a72,38 +34b3a73,25 +34b3a76,30 +34b3a77,25 +34b3a78,8f +34b3a79,a5 +34b3a7b,38 +34b3a7c,c +34b3a7d,10 +34b3a7e,17 +34b3a7f,fb +34b3a80,2 +34b3a82,20 +34b3a83,25 +34b3a84,26 +34b3a85,52 +34b3a87,1 +34b3a88,8e +34b3a89,c2 +34b3a8a,65 +34b3a8b,10 +34b3a8c,2 +34b3a8d,42 +34b3a8e,10 +34b3a8f,2a +34b3a90,14 +34b3a91,40 +34b3a92,ff +34b3a93,df +34b3a94,26 +34b3a95,73 +34b3a97,c +34b3a98,12 +34b3a99,a0 +34b3a9b,35 +34b3a9c,3c +34b3a9d,2 +34b3a9e,80 +34b3a9f,40 +34b3aa0,8c +34b3aa1,42 +34b3aa2,65 +34b3aa3,10 +34b3aa4,18 +34b3aa5,40 +34b3aa7,32 +34b3aa8,3c +34b3aa9,13 +34b3aaa,80 +34b3aab,40 +34b3aac,26 +34b3aad,73 +34b3aae,64 +34b3aaf,30 +34b3ab0,24 +34b3ab1,14 +34b3ab3,5 +34b3ab6,90 +34b3ab7,25 +34b3ab8,3c +34b3ab9,17 +34b3aba,80 +34b3abb,40 +34b3abc,3c +34b3abd,16 +34b3abe,80 +34b3abf,40 +34b3ac0,26 +34b3ac1,d6 +34b3ac2,65 +34b3ac3,30 +34b3ac4,3c +34b3ac5,15 +34b3ac6,80 +34b3ac7,40 +34b3ac8,26 +34b3ac9,b5 +34b3aca,64 +34b3acc,3c +34b3acd,2 +34b3ace,80 +34b3acf,40 +34b3ad0,24 +34b3ad1,42 +34b3ad2,64 +34b3ad3,4 +34b3ad4,af +34b3ad5,a2 +34b3ad7,38 +34b3ad8,3c +34b3ad9,1e +34b3ada,80 +34b3adb,40 +34b3adc,8e +34b3add,e2 +34b3ade,65 +34b3adf,24 +34b3ae0,50 +34b3ae1,40 +34b3ae3,14 +34b3ae4,92 +34b3ae5,62 +34b3ae9,12 +34b3aea,10 +34b3aeb,40 +34b3aed,52 +34b3aee,10 +34b3aef,21 +34b3af1,2 +34b3af2,10 +34b3af3,80 +34b3af4,27 +34b3af5,c3 +34b3af6,64 +34b3af7,30 +34b3af9,43 +34b3afa,10 +34b3afb,21 +34b3afc,90 +34b3afd,42 +34b3aff,1 +34b3b00,30 +34b3b01,42 +34b3b03,10 +34b3b04,50 +34b3b05,40 +34b3b07,b +34b3b08,92 +34b3b09,62 +34b3b0c,92 +34b3b0d,63 +34b3b10,3c +34b3b11,2 +34b3b12,80 +34b3b13,11 +34b3b14,34 +34b3b15,42 +34b3b16,a5 +34b3b17,d0 +34b3b19,43 +34b3b1a,10 +34b3b1b,21 +34b3b1c,90 +34b3b1d,42 +34b3b1f,a8 +34b3b21,2 +34b3b22,10 +34b3b23,82 +34b3b24,30 +34b3b25,42 +34b3b27,1 +34b3b28,50 +34b3b29,40 +34b3b2b,b +34b3b2c,26 +34b3b2d,52 +34b3b2f,1 +34b3b30,92 +34b3b31,62 +34b3b35,56 +34b3b36,10 +34b3b37,21 +34b3b38,90 +34b3b39,42 +34b3b3c,14 +34b3b3d,40 +34b3b3f,2 +34b3b40,2 +34b3b41,a0 +34b3b42,20 +34b3b43,25 +34b3b44,8f +34b3b45,a4 +34b3b47,38 +34b3b48,2 +34b3b49,80 +34b3b4a,30 +34b3b4b,25 +34b3b4c,c +34b3b4d,10 +34b3b4e,14 +34b3b4f,b +34b3b50,26 +34b3b51,25 +34b3b53,48 +34b3b54,26 +34b3b55,52 +34b3b57,1 +34b3b58,26 +34b3b59,94 +34b3b5b,12 +34b3b5c,3c +34b3b5d,2 +34b3b5e,80 +34b3b5f,40 +34b3b60,8c +34b3b61,42 +34b3b62,65 +34b3b63,10 +34b3b64,2 +34b3b65,42 +34b3b66,10 +34b3b67,2a +34b3b68,14 +34b3b69,40 +34b3b6a,ff +34b3b6b,dc +34b3b6c,26 +34b3b6d,73 +34b3b6f,c +34b3b70,c +34b3b71,10 +34b3b72,14 +34b3b73,35 +34b3b74,2 +34b3b76,20 +34b3b77,25 +34b3b78,8e +34b3b79,2 +34b3b7b,8 +34b3b7c,24 +34b3b7d,43 +34b3b7f,8 +34b3b80,ae +34b3b81,3 +34b3b83,8 +34b3b84,3c +34b3b85,3 +34b3b86,e9 +34b3b88,ac +34b3b89,43 +34b3b8c,ac +34b3b8d,40 +34b3b8f,4 +34b3b90,8e +34b3b91,2 +34b3b93,8 +34b3b94,24 +34b3b95,43 +34b3b97,8 +34b3b98,ae +34b3b99,3 +34b3b9b,8 +34b3b9c,3c +34b3b9d,3 +34b3b9e,df +34b3ba0,ac +34b3ba1,43 +34b3ba4,ac +34b3ba5,40 +34b3ba7,4 +34b3ba8,8f +34b3ba9,bf +34b3bab,6c +34b3bac,8f +34b3bad,be +34b3baf,68 +34b3bb0,8f +34b3bb1,b7 +34b3bb3,64 +34b3bb4,8f +34b3bb5,b6 +34b3bb7,60 +34b3bb8,8f +34b3bb9,b5 +34b3bbb,5c +34b3bbc,8f +34b3bbd,b4 +34b3bbf,58 +34b3bc0,8f +34b3bc1,b3 +34b3bc3,54 +34b3bc4,8f +34b3bc5,b2 +34b3bc7,50 +34b3bc8,8f +34b3bc9,b1 +34b3bcb,4c +34b3bcc,8f +34b3bcd,b0 +34b3bcf,48 +34b3bd0,3 +34b3bd1,e0 +34b3bd3,8 +34b3bd4,27 +34b3bd5,bd +34b3bd7,70 +34b3bd8,10 +34b3bda,fe +34b3bdb,a5 +34b3bdc,26 +34b3bdd,31 +34b3bdf,14 +34b3be0,3 +34b3be1,e0 +34b3be3,8 +34b3be8,27 +34b3be9,bd +34b3bea,ff +34b3beb,e8 +34b3bec,af +34b3bed,bf +34b3bef,14 +34b3bf0,c +34b3bf1,10 +34b3bf2,17 +34b3bf3,27 +34b3bf8,c +34b3bf9,10 +34b3bfa,18 +34b3bfb,ae +34b3c00,c +34b3c01,10 +34b3c02,14 +34b3c08,8f +34b3c09,bf +34b3c0b,14 +34b3c0c,3 +34b3c0d,e0 +34b3c0f,8 +34b3c10,27 +34b3c11,bd +34b3c13,18 +34b3c14,3c +34b3c15,2 +34b3c16,80 +34b3c17,1c +34b3c18,34 +34b3c19,42 +34b3c1a,84 +34b3c1b,a0 +34b3c1c,3c +34b3c1d,3 +34b3c1f,1 +34b3c21,43 +34b3c22,10 +34b3c23,21 +34b3c24,94 +34b3c25,43 +34b3c26,9 +34b3c27,34 +34b3c28,24 +34b3c29,2 +34b3c2b,6 +34b3c2c,14 +34b3c2d,62 +34b3c2f,19 +34b3c30,3c +34b3c31,2 +34b3c32,80 +34b3c33,1c +34b3c34,34 +34b3c35,42 +34b3c36,84 +34b3c37,a0 +34b3c38,3c +34b3c39,3 +34b3c3b,1 +34b3c3d,43 +34b3c3e,10 +34b3c3f,21 +34b3c40,94 +34b3c41,42 +34b3c42,9 +34b3c43,48 +34b3c44,14 +34b3c45,40 +34b3c47,13 +34b3c48,3c +34b3c49,2 +34b3c4a,80 +34b3c4b,1c +34b3c4c,34 +34b3c4d,42 +34b3c4e,84 +34b3c4f,a0 +34b3c51,43 +34b3c52,10 +34b3c53,21 +34b3c54,94 +34b3c55,42 +34b3c56,9 +34b3c57,44 +34b3c58,14 +34b3c59,40 +34b3c5b,e +34b3c5c,3c +34b3c5d,2 +34b3c5e,80 +34b3c5f,1c +34b3c60,34 +34b3c61,42 +34b3c62,84 +34b3c63,a0 +34b3c64,84 +34b3c65,42 +34b3c67,14 +34b3c68,4 +34b3c69,41 +34b3c6b,a +34b3c6c,3c +34b3c6d,2 +34b3c6e,80 +34b3c6f,1c +34b3c70,27 +34b3c71,bd +34b3c72,ff +34b3c73,e8 +34b3c74,af +34b3c75,bf +34b3c77,14 +34b3c78,34 +34b3c79,42 +34b3c7a,84 +34b3c7b,a0 +34b3c7c,8c +34b3c7d,44 +34b3c80,c +34b3c81,10 +34b3c82,14 +34b3c83,87 +34b3c84,24 +34b3c85,84 +34b3c86,2 +34b3c87,a8 +34b3c88,8f +34b3c89,bf +34b3c8b,14 +34b3c8c,3 +34b3c8d,e0 +34b3c8f,8 +34b3c90,27 +34b3c91,bd +34b3c93,18 +34b3c94,3 +34b3c95,e0 +34b3c97,8 +34b3c9c,3c +34b3c9d,3 +34b3c9e,80 +34b3c9f,40 +34b3ca0,3c +34b3ca1,2 +34b3ca2,80 +34b3ca3,50 +34b3ca4,24 +34b3ca5,42 +34b3ca8,3 +34b3ca9,e0 +34b3cab,8 +34b3cac,ac +34b3cad,62 +34b3cae,65 +34b3caf,2c +34b3cb1,4 +34b3cb2,17 +34b3cb3,c3 +34b3cb5,2 +34b3cb6,1f +34b3cb7,2 +34b3cb9,83 +34b3cba,10 +34b3cbb,21 +34b3cbc,30 +34b3cbd,42 +34b3cbf,f +34b3cc1,43 +34b3cc2,10 +34b3cc3,23 +34b3cc4,10 +34b3cc5,40 +34b3cc7,3 +34b3cc8,3c +34b3cc9,3 +34b3cca,80 +34b3ccb,40 +34b3ccd,82 +34b3cce,20 +34b3ccf,23 +34b3cd0,24 +34b3cd1,84 +34b3cd3,10 +34b3cd4,8c +34b3cd5,62 +34b3cd6,65 +34b3cd7,2c +34b3cd9,44 +34b3cda,20 +34b3cdb,21 +34b3cdc,3 +34b3cdd,e0 +34b3cdf,8 +34b3ce0,ac +34b3ce1,64 +34b3ce2,65 +34b3ce3,2c +34b3ce4,27 +34b3ce5,bd +34b3ce6,ff +34b3ce7,e8 +34b3ce8,af +34b3ce9,bf +34b3ceb,14 +34b3cec,af +34b3ced,b0 +34b3cef,10 +34b3cf1,80 +34b3cf2,80 +34b3cf3,25 +34b3cf4,c +34b3cf5,10 +34b3cf6,17 +34b3cf7,2c +34b3cf8,8c +34b3cf9,84 +34b3cfb,8 +34b3cfc,ae +34b3cfd,2 +34b3d00,8e +34b3d01,6 +34b3d03,8 +34b3d05,40 +34b3d06,20 +34b3d07,25 +34b3d08,3c +34b3d09,2 +34b3d0a,80 +34b3d0c,24 +34b3d0d,42 +34b3d0e,d +34b3d0f,f0 +34b3d11,40 +34b3d12,f8 +34b3d13,9 +34b3d14,8e +34b3d15,5 +34b3d17,4 +34b3d18,8f +34b3d19,bf +34b3d1b,14 +34b3d1c,8f +34b3d1d,b0 +34b3d1f,10 +34b3d20,3 +34b3d21,e0 +34b3d23,8 +34b3d24,27 +34b3d25,bd +34b3d27,18 +34b3d28,ac +34b3d29,86 +34b3d2c,ac +34b3d2d,85 +34b3d2f,4 +34b3d30,ac +34b3d31,85 +34b3d33,8 +34b3d35,a6 +34b3d36,28 +34b3d37,21 +34b3d38,3 +34b3d39,e0 +34b3d3b,8 +34b3d3c,ac +34b3d3d,85 +34b3d3f,c +34b3d40,94 +34b3d41,82 +34b3d43,4 +34b3d44,94 +34b3d45,83 +34b3d47,6 +34b3d49,43 +34b3d4b,18 +34b3d4e,10 +34b3d4f,12 +34b3d50,90 +34b3d51,83 +34b3d53,c +34b3d59,43 +34b3d5b,18 +34b3d5e,10 +34b3d5f,12 +34b3d60,3 +34b3d61,e0 +34b3d63,8 +34b3d68,27 +34b3d69,bd +34b3d6a,ff +34b3d6b,e8 +34b3d6c,af +34b3d6d,bf +34b3d6f,14 +34b3d70,af +34b3d71,b0 +34b3d73,10 +34b3d74,c +34b3d75,10 +34b3d76,17 +34b3d77,50 +34b3d79,80 +34b3d7a,80 +34b3d7b,25 +34b3d7c,96 +34b3d7d,3 +34b3d7f,8 +34b3d81,62 +34b3d83,18 +34b3d86,10 +34b3d87,12 +34b3d88,8f +34b3d89,bf +34b3d8b,14 +34b3d8c,8f +34b3d8d,b0 +34b3d8f,10 +34b3d90,3 +34b3d91,e0 +34b3d93,8 +34b3d94,27 +34b3d95,bd +34b3d97,18 +34b3d98,27 +34b3d99,bd +34b3d9a,ff +34b3d9b,90 +34b3d9c,af +34b3d9d,bf +34b3d9f,6c +34b3da0,af +34b3da1,b7 +34b3da3,68 +34b3da4,af +34b3da5,b6 +34b3da7,64 +34b3da8,af +34b3da9,b5 +34b3dab,60 +34b3dac,af +34b3dad,b4 +34b3daf,5c +34b3db0,af +34b3db1,b3 +34b3db3,58 +34b3db4,af +34b3db5,b2 +34b3db7,54 +34b3db8,af +34b3db9,b1 +34b3dbb,50 +34b3dbc,af +34b3dbd,b0 +34b3dbf,4c +34b3dc1,80 +34b3dc2,80 +34b3dc3,25 +34b3dc5,a0 +34b3dc6,a8 +34b3dc7,25 +34b3dc9,c0 +34b3dca,b8 +34b3dcb,25 +34b3dcd,e0 +34b3dce,b0 +34b3dcf,25 +34b3dd0,90 +34b3dd1,b2 +34b3dd3,a +34b3dd5,12 +34b3dd6,95 +34b3dd7,40 +34b3dd8,3c +34b3dd9,2 +34b3ddb,e0 +34b3ddc,2 +34b3ddd,42 +34b3dde,90 +34b3ddf,24 +34b3de0,90 +34b3de1,b1 +34b3de3,b +34b3de4,2e +34b3de5,22 +34b3de7,2 +34b3de8,10 +34b3de9,40 +34b3deb,2 +34b3dec,2 +34b3ded,20 +34b3dee,98 +34b3def,25 +34b3df0,24 +34b3df1,13 +34b3df3,2 +34b3df4,32 +34b3df5,73 +34b3df7,ff +34b3df9,13 +34b3dfa,a4 +34b3dfb,c0 +34b3dfc,3c +34b3dfd,2 +34b3dff,18 +34b3e00,2 +34b3e01,82 +34b3e02,a0 +34b3e03,24 +34b3e04,2 +34b3e05,92 +34b3e06,a0 +34b3e07,25 +34b3e08,3c +34b3e09,2 +34b3e0a,fd +34b3e0c,2 +34b3e0d,82 +34b3e0e,10 +34b3e0f,25 +34b3e10,af +34b3e11,a2 +34b3e13,10 +34b3e14,c +34b3e15,10 +34b3e16,17 +34b3e17,50 +34b3e18,2 +34b3e19,a0 +34b3e1a,20 +34b3e1b,25 +34b3e1d,57 +34b3e1f,18 +34b3e22,10 +34b3e23,12 +34b3e24,8e +34b3e25,a3 +34b3e29,62 +34b3e2a,18 +34b3e2b,21 +34b3e2c,af +34b3e2d,a3 +34b3e2f,14 +34b3e30,3c +34b3e31,2 +34b3e32,f5 +34b3e34,2 +34b3e35,82 +34b3e36,a0 +34b3e37,25 +34b3e38,af +34b3e39,b4 +34b3e3b,18 +34b3e3c,3c +34b3e3d,2 +34b3e3e,7 +34b3e40,af +34b3e41,a2 +34b3e43,1c +34b3e44,3c +34b3e45,2 +34b3e46,e6 +34b3e48,af +34b3e49,a2 +34b3e4b,20 +34b3e4c,af +34b3e4d,a0 +34b3e4f,24 +34b3e50,3c +34b3e51,2 +34b3e52,f3 +34b3e54,af +34b3e55,a2 +34b3e57,28 +34b3e58,96 +34b3e59,a3 +34b3e5b,4 +34b3e5c,96 +34b3e5d,a7 +34b3e5f,6 +34b3e61,f6 +34b3e63,18 +34b3e66,38 +34b3e67,12 +34b3e68,24 +34b3e69,5 +34b3e6b,4 +34b3e6c,2 +34b3e6d,25 +34b3e6e,20 +34b3e6f,4 +34b3e71,67 +34b3e73,18 +34b3e76,10 +34b3e77,12 +34b3e78,24 +34b3e79,42 +34b3e7b,1 +34b3e81,44 +34b3e83,18 +34b3e86,10 +34b3e87,12 +34b3e88,24 +34b3e89,42 +34b3e8a,ff +34b3e8b,ff +34b3e8c,2 +34b3e8d,65 +34b3e8e,98 +34b3e8f,4 +34b3e90,16 +34b3e91,60 +34b3e93,2 +34b3e95,53 +34b3e97,1a +34b3e99,7 +34b3e9b,d +34b3e9e,10 +34b3e9f,12 +34b3ea0,24 +34b3ea1,42 +34b3ea2,ff +34b3ea3,ff +34b3ea5,2 +34b3ea6,13 +34b3ea8,3c +34b3ea9,5 +34b3eab,ff +34b3eac,34 +34b3ead,a5 +34b3eae,f0 +34b3eb1,45 +34b3eb2,10 +34b3eb3,24 +34b3eb5,64 +34b3eb7,18 +34b3eba,40 +34b3ebb,12 +34b3ebc,29 +34b3ebd,5 +34b3ebf,41 +34b3ec0,14 +34b3ec1,a0 +34b3ec3,b +34b3ec4,24 +34b3ec5,6 +34b3ec6,8 +34b3ec9,8 +34b3eca,2f +34b3ecb,c3 +34b3ecc,30 +34b3ecd,a5 +34b3ecf,3f +34b3ed1,a8 +34b3ed2,28 +34b3ed3,21 +34b3ed5,5 +34b3ed6,29 +34b3ed7,83 +34b3ed8,24 +34b3ed9,a6 +34b3eda,7 +34b3edb,ff +34b3edc,14 +34b3edd,a0 +34b3edf,2 +34b3ee1,c5 +34b3ee3,1a +34b3ee5,7 +34b3ee7,d +34b3eea,30 +34b3eeb,12 +34b3eec,30 +34b3eed,c6 +34b3eee,f +34b3eef,ff +34b3ef1,46 +34b3ef2,10 +34b3ef3,25 +34b3ef4,3c +34b3ef5,5 +34b3ef6,7 +34b3ef9,45 +34b3efa,10 +34b3efb,25 +34b3efc,af +34b3efd,a2 +34b3eff,2c +34b3f00,3c +34b3f01,2 +34b3f02,e7 +34b3f04,af +34b3f05,a2 +34b3f07,30 +34b3f08,af +34b3f09,a0 +34b3f0b,34 +34b3f0d,11 +34b3f0e,14 +34b3f0f,c0 +34b3f10,3c +34b3f11,5 +34b3f13,18 +34b3f15,45 +34b3f16,10 +34b3f17,24 +34b3f18,2e +34b3f19,31 +34b3f1b,2 +34b3f1c,16 +34b3f1d,20 +34b3f1f,2 +34b3f21,52 +34b3f22,10 +34b3f23,25 +34b3f24,24 +34b3f25,4 +34b3f27,10 +34b3f29,64 +34b3f2b,18 +34b3f2e,20 +34b3f2f,12 +34b3f30,24 +34b3f31,84 +34b3f33,3f +34b3f35,4 +34b3f36,97 +34b3f37,c3 +34b3f38,32 +34b3f39,52 +34b3f3b,3f +34b3f3c,2 +34b3f3d,44 +34b3f3e,90 +34b3f3f,21 +34b3f41,12 +34b3f42,90 +34b3f43,c0 +34b3f44,3c +34b3f45,4 +34b3f47,3 +34b3f48,34 +34b3f49,84 +34b3f4a,fe +34b3f4c,2 +34b3f4d,44 +34b3f4e,90 +34b3f4f,24 +34b3f50,2 +34b3f51,42 +34b3f52,90 +34b3f53,25 +34b3f54,3c +34b3f55,2 +34b3f56,f5 +34b3f58,2 +34b3f59,42 +34b3f5a,90 +34b3f5b,25 +34b3f5c,af +34b3f5d,b2 +34b3f5f,38 +34b3f60,af +34b3f61,a0 +34b3f63,3c +34b3f64,3c +34b3f65,2 +34b3f66,f2 +34b3f68,af +34b3f69,a2 +34b3f6b,40 +34b3f6c,24 +34b3f6d,62 +34b3f6e,3f +34b3f6f,ff +34b3f71,2 +34b3f72,13 +34b3f73,80 +34b3f74,3c +34b3f75,3 +34b3f77,ff +34b3f78,34 +34b3f79,63 +34b3f7a,f0 +34b3f7d,43 +34b3f7e,10 +34b3f7f,24 +34b3f80,24 +34b3f81,e7 +34b3f82,ff +34b3f83,ff +34b3f85,7 +34b3f86,38 +34b3f87,80 +34b3f88,30 +34b3f89,e7 +34b3f8a,f +34b3f8b,fc +34b3f8d,47 +34b3f8e,10 +34b3f8f,25 +34b3f90,af +34b3f91,a2 +34b3f93,44 +34b3f94,27 +34b3f95,a2 +34b3f97,10 +34b3f98,27 +34b3f99,a6 +34b3f9b,48 +34b3f9c,8e +34b3f9d,3 +34b3f9f,8 +34b3fa0,24 +34b3fa1,64 +34b3fa3,8 +34b3fa4,ae +34b3fa5,4 +34b3fa7,8 +34b3fa8,8c +34b3fa9,45 +34b3fab,4 +34b3fac,8c +34b3fad,44 +34b3fb0,ac +34b3fb1,65 +34b3fb3,4 +34b3fb4,24 +34b3fb5,42 +34b3fb7,8 +34b3fb8,14 +34b3fb9,46 +34b3fba,ff +34b3fbb,f8 +34b3fbc,ac +34b3fbd,64 +34b3fc0,8f +34b3fc1,bf +34b3fc3,6c +34b3fc4,8f +34b3fc5,b7 +34b3fc7,68 +34b3fc8,8f +34b3fc9,b6 +34b3fcb,64 +34b3fcc,8f +34b3fcd,b5 +34b3fcf,60 +34b3fd0,8f +34b3fd1,b4 +34b3fd3,5c +34b3fd4,8f +34b3fd5,b3 +34b3fd7,58 +34b3fd8,8f +34b3fd9,b2 +34b3fdb,54 +34b3fdc,8f +34b3fdd,b1 +34b3fdf,50 +34b3fe0,8f +34b3fe1,b0 +34b3fe3,4c +34b3fe4,3 +34b3fe5,e0 +34b3fe7,8 +34b3fe8,27 +34b3fe9,bd +34b3feb,70 +34b3fec,27 +34b3fed,bd +34b3fee,ff +34b3fef,e8 +34b3ff0,8f +34b3ff1,a8 +34b3ff3,28 +34b3ff4,8f +34b3ff5,a2 +34b3ff7,2c +34b3ff8,8f +34b3ff9,aa +34b3ffb,30 +34b3ffc,94 +34b3ffd,a9 +34b3fff,4 +34b4001,9 +34b4002,4a +34b4003,80 +34b4004,14 +34b4005,40 +34b4007,2 +34b4008,1 +34b4009,22 +34b400b,1a +34b400d,7 +34b400f,d +34b4012,48 +34b4013,12 +34b4014,94 +34b4015,a3 +34b4017,6 +34b4019,47 +34b401a,10 +34b401b,21 +34b401d,2 +34b401e,13 +34b401f,80 +34b4020,3c +34b4021,b +34b4023,ff +34b4024,35 +34b4025,6b +34b4026,f0 +34b4029,4b +34b402a,10 +34b402b,24 +34b402c,1 +34b402d,48 +34b402e,28 +34b402f,21 +34b4031,5 +34b4032,28 +34b4033,80 +34b4034,30 +34b4035,a5 +34b4036,f +34b4037,ff +34b4039,45 +34b403a,10 +34b403b,25 +34b403c,3c +34b403d,5 +34b403e,e4 +34b4041,45 +34b4042,10 +34b4043,25 +34b4044,af +34b4045,a2 +34b4049,7 +34b404a,3b +34b404b,80 +34b404d,eb +34b404e,38 +34b404f,24 +34b4051,8 +34b4052,40 +34b4053,80 +34b4054,31 +34b4055,8 +34b4056,f +34b4057,ff +34b4059,e8 +34b405a,38 +34b405b,25 +34b405c,af +34b405d,a7 +34b405f,4 +34b4060,3c +34b4061,2 +34b4062,e1 +34b4064,af +34b4065,a2 +34b4067,8 +34b4069,66 +34b406b,18 +34b406e,30 +34b406f,12 +34b4071,6 +34b4072,31 +34b4073,40 +34b4074,30 +34b4075,c6 +34b4076,ff +34b4077,ff +34b4078,af +34b4079,a6 +34b407b,c +34b407c,3c +34b407d,2 +34b407e,f1 +34b4080,af +34b4081,a2 +34b4083,10 +34b4085,3 +34b4086,1a +34b4087,80 +34b4088,15 +34b4089,40 +34b408b,2 +34b408d,6a +34b408f,1a +34b4091,7 +34b4093,d +34b4096,18 +34b4097,12 +34b4098,30 +34b4099,63 +34b409a,ff +34b409b,ff +34b409d,9 +34b409e,4c +34b40a1,69 +34b40a2,18 +34b40a3,25 +34b40a4,af +34b40a5,a3 +34b40a7,14 +34b40a8,3 +34b40a9,a0 +34b40aa,10 +34b40ab,25 +34b40ac,27 +34b40ad,a8 +34b40af,18 +34b40b0,8c +34b40b1,83 +34b40b3,8 +34b40b4,24 +34b40b5,65 +34b40b7,8 +34b40b8,ac +34b40b9,85 +34b40bb,8 +34b40bc,8c +34b40bd,47 +34b40bf,4 +34b40c0,8c +34b40c1,46 +34b40c4,ac +34b40c5,67 +34b40c7,4 +34b40c8,24 +34b40c9,42 +34b40cb,8 +34b40cc,14 +34b40cd,48 +34b40ce,ff +34b40cf,f8 +34b40d0,ac +34b40d1,66 +34b40d4,3 +34b40d5,e0 +34b40d7,8 +34b40d8,27 +34b40d9,bd +34b40db,18 +34b40dc,8c +34b40dd,82 +34b40df,8 +34b40e0,24 +34b40e1,43 +34b40e3,8 +34b40e4,ac +34b40e5,83 +34b40e7,8 +34b40e8,3c +34b40e9,3 +34b40ea,e7 +34b40ec,ac +34b40ed,43 +34b40f0,ac +34b40f1,40 +34b40f3,4 +34b40f4,8c +34b40f5,82 +34b40f7,8 +34b40f8,24 +34b40f9,43 +34b40fb,8 +34b40fc,ac +34b40fd,83 +34b40ff,8 +34b4100,3c +34b4101,3 +34b4102,d9 +34b4104,ac +34b4105,43 +34b4108,ac +34b4109,40 +34b410b,4 +34b410c,8c +34b410d,82 +34b410f,8 +34b4110,24 +34b4111,43 +34b4113,8 +34b4114,ac +34b4115,83 +34b4117,8 +34b4118,3c +34b4119,3 +34b411a,ed +34b411c,ac +34b411d,43 +34b4120,3c +34b4121,5 +34b4123,50 +34b4124,24 +34b4125,a3 +34b4126,3 +34b4127,c0 +34b4128,ac +34b4129,43 +34b412b,4 +34b412c,8c +34b412d,83 +34b412f,8 +34b4130,24 +34b4131,62 +34b4133,8 +34b4134,ac +34b4135,82 +34b4137,8 +34b4138,3c +34b4139,2 +34b413a,e3 +34b413c,24 +34b413d,46 +34b413e,1a +34b413f,1 +34b4140,ac +34b4141,66 +34b4144,24 +34b4145,6 +34b4147,30 +34b4148,ac +34b4149,66 +34b414b,4 +34b414c,8c +34b414d,83 +34b414f,8 +34b4150,24 +34b4151,66 +34b4153,8 +34b4154,ac +34b4155,86 +34b4157,8 +34b4158,24 +34b4159,46 +34b415a,18 +34b415b,1 +34b415c,ac +34b415d,66 +34b4160,24 +34b4161,6 +34b4163,c0 +34b4164,ac +34b4165,66 +34b4167,4 +34b4168,8c +34b4169,86 +34b416b,8 +34b416c,24 +34b416d,c3 +34b416f,8 +34b4170,ac +34b4171,83 +34b4173,8 +34b4174,3c +34b4175,3 +34b4176,e2 +34b4178,24 +34b4179,67 +34b417a,1e +34b417b,1 +34b417c,ac +34b417d,c7 +34b4180,ac +34b4181,c0 +34b4183,4 +34b4184,8c +34b4185,86 +34b4187,8 +34b4188,24 +34b4189,c7 +34b418b,8 +34b418c,ac +34b418d,87 +34b418f,8 +34b4190,24 +34b4191,67 +34b4192,1d +34b4194,ac +34b4195,c7 +34b4198,24 +34b4199,7 +34b419b,4 +34b419c,ac +34b419d,c7 +34b419f,4 +34b41a0,8c +34b41a1,86 +34b41a3,8 +34b41a4,24 +34b41a5,c7 +34b41a7,8 +34b41a8,ac +34b41a9,87 +34b41ab,8 +34b41ac,24 +34b41ad,47 +34b41ae,17 +34b41b0,ac +34b41b1,c7 +34b41b4,ac +34b41b5,c0 +34b41b7,4 +34b41b8,8c +34b41b9,86 +34b41bb,8 +34b41bc,24 +34b41bd,c7 +34b41bf,8 +34b41c0,ac +34b41c1,87 +34b41c3,8 +34b41c4,24 +34b41c5,47 +34b41c6,14 +34b41c7,2 +34b41c8,ac +34b41c9,c7 +34b41cc,24 +34b41cd,7 +34b41ce,c +34b41d0,ac +34b41d1,c7 +34b41d3,4 +34b41d4,8c +34b41d5,86 +34b41d7,8 +34b41d8,24 +34b41d9,c7 +34b41db,8 +34b41dc,ac +34b41dd,87 +34b41df,8 +34b41e0,24 +34b41e1,47 +34b41e2,d +34b41e3,1 +34b41e4,ac +34b41e5,c7 +34b41e8,ac +34b41e9,c0 +34b41eb,4 +34b41ec,8c +34b41ed,86 +34b41ef,8 +34b41f0,24 +34b41f1,c7 +34b41f3,8 +34b41f4,ac +34b41f5,87 +34b41f7,8 +34b41f8,24 +34b41f9,47 +34b41fa,c +34b41fc,ac +34b41fd,c7 +34b4200,ac +34b4201,c0 +34b4203,4 +34b4204,8c +34b4205,86 +34b4207,8 +34b4208,24 +34b4209,c7 +34b420b,8 +34b420c,ac +34b420d,87 +34b420f,8 +34b4210,24 +34b4211,47 +34b4212,f +34b4214,ac +34b4215,c7 +34b4218,ac +34b4219,c0 +34b421b,4 +34b421c,8c +34b421d,86 +34b421f,8 +34b4220,24 +34b4221,c7 +34b4223,8 +34b4224,ac +34b4225,87 +34b4227,8 +34b4228,24 +34b4229,47 +34b422a,10 +34b422b,1 +34b422c,ac +34b422d,c7 +34b4230,ac +34b4231,c0 +34b4233,4 +34b4234,8c +34b4235,86 +34b4237,8 +34b4238,24 +34b4239,c7 +34b423b,8 +34b423c,ac +34b423d,87 +34b423f,8 +34b4240,24 +34b4241,47 +34b4242,8 +34b4244,ac +34b4245,c7 +34b4248,ac +34b4249,c0 +34b424b,4 +34b424c,8c +34b424d,86 +34b424f,8 +34b4250,24 +34b4251,c7 +34b4253,8 +34b4254,ac +34b4255,87 +34b4257,8 +34b4258,24 +34b4259,47 +34b425a,a +34b425b,1 +34b425c,ac +34b425d,c7 +34b4260,ac +34b4261,c0 +34b4263,4 +34b4264,8c +34b4265,86 +34b4267,8 +34b4268,24 +34b4269,c7 +34b426b,8 +34b426c,ac +34b426d,87 +34b426f,8 +34b4270,24 +34b4271,63 +34b4273,1c +34b4274,ac +34b4275,c3 +34b4278,24 +34b4279,a5 +34b427a,42 +34b427b,40 +34b427c,ac +34b427d,c5 +34b427f,4 +34b4280,8c +34b4281,83 +34b4283,8 +34b4284,24 +34b4285,65 +34b4287,8 +34b4288,ac +34b4289,85 +34b428b,8 +34b428c,24 +34b428d,42 +34b428e,12 +34b428f,1 +34b4290,ac +34b4291,62 +34b4294,24 +34b4295,2 +34b4296,20 +34b4298,ac +34b4299,62 +34b429b,4 +34b429c,8c +34b429d,82 +34b429f,8 +34b42a0,24 +34b42a1,43 +34b42a3,8 +34b42a4,ac +34b42a5,83 +34b42a7,8 +34b42a8,3c +34b42a9,3 +34b42aa,df +34b42ac,ac +34b42ad,43 +34b42b0,3 +34b42b1,e0 +34b42b3,8 +34b42b4,ac +34b42b5,40 +34b42b7,4 +34b42b8,27 +34b42b9,bd +34b42ba,ff +34b42bb,c8 +34b42bc,af +34b42bd,bf +34b42bf,34 +34b42c0,af +34b42c1,b1 +34b42c3,30 +34b42c4,af +34b42c5,b0 +34b42c7,2c +34b42c8,af +34b42c9,a0 +34b42cb,10 +34b42cc,3c +34b42cd,2 +34b42ce,1 +34b42cf,a0 +34b42d0,24 +34b42d1,42 +34b42d2,20 +34b42d4,af +34b42d5,a2 +34b42d7,14 +34b42d8,3c +34b42d9,10 +34b42db,3 +34b42dc,36 +34b42dd,2 +34b42de,95 +34b42df,c0 +34b42e0,af +34b42e1,a2 +34b42e3,18 +34b42e4,c +34b42e5,10 +34b42e6,17 +34b42e7,39 +34b42e8,27 +34b42e9,a4 +34b42eb,10 +34b42ec,af +34b42ed,a0 +34b42ef,1c +34b42f0,3c +34b42f1,2 +34b42f3,84 +34b42f4,24 +34b42f5,42 +34b42f6,60 +34b42f8,af +34b42f9,a2 +34b42fb,20 +34b42fc,34 +34b42fd,2 +34b42fe,b4 +34b4300,af +34b4301,a2 +34b4303,24 +34b4304,c +34b4305,10 +34b4306,17 +34b4307,39 +34b4308,27 +34b4309,a4 +34b430b,1c +34b430c,8f +34b430d,a2 +34b430f,10 +34b4310,26 +34b4311,10 +34b4312,a3 +34b4315,50 +34b4316,80 +34b4317,21 +34b4318,3c +34b4319,3 +34b431a,80 +34b431b,40 +34b431c,ac +34b431d,70 +34b431e,64 +34b431f,fc +34b4320,24 +34b4321,42 +34b4322,29 +34b4323,80 +34b4324,3c +34b4325,3 +34b4326,80 +34b4327,40 +34b4328,ac +34b4329,62 +34b432a,64 +34b432b,ec +34b432c,3c +34b432d,2 +34b432e,80 +34b432f,40 +34b4330,8f +34b4331,a3 +34b4333,1c +34b4334,ac +34b4335,43 +34b4336,64 +34b4337,dc +34b4338,3c +34b4339,11 +34b433a,80 +34b433b,40 +34b433c,c +34b433d,10 +34b433e,17 +34b433f,5a +34b4340,26 +34b4341,24 +34b4342,64 +34b4343,cc +34b4345,40 +34b4346,80 +34b4347,25 +34b4348,c +34b4349,10 +34b434a,17 +34b434b,2c +34b434d,40 +34b434e,20 +34b434f,25 +34b4351,10 +34b4352,4f +34b4353,c2 +34b4354,1 +34b4355,30 +34b4356,48 +34b4357,21 +34b4358,2a +34b4359,10 +34b435b,2 +34b435c,16 +34b435f,18 +34b4360,ae +34b4361,22 +34b4362,64 +34b4363,cc +34b4365,9 +34b4366,48 +34b4367,43 +34b4368,3c +34b4369,3 +34b436a,80 +34b436b,40 +34b436c,24 +34b436d,63 +34b436e,65 +34b436f,50 +34b4372,20 +34b4373,25 +34b4376,30 +34b4377,25 +34b4378,2 +34b4379,20 +34b437a,40 +34b437b,25 +34b437c,24 +34b437d,7 +34b437e,ff +34b437f,f0 +34b4380,8d +34b4381,5 +34b4382,64 +34b4383,cc +34b4385,a4 +34b4386,28 +34b4387,21 +34b4388,90 +34b4389,62 +34b438d,2 +34b438e,11 +34b438f,2 +34b4391,47 +34b4392,10 +34b4393,25 +34b4394,a0 +34b4395,a2 +34b4398,8d +34b4399,2 +34b439a,64 +34b439b,cc +34b439d,44 +34b439e,10 +34b439f,21 +34b43a0,90 +34b43a1,65 +34b43a5,a7 +34b43a6,28 +34b43a7,25 +34b43a8,a0 +34b43a9,45 +34b43ab,1 +34b43ac,24 +34b43ad,c6 +34b43af,1 +34b43b0,24 +34b43b1,63 +34b43b3,1 +34b43b5,c9 +34b43b6,10 +34b43b7,2a +34b43b8,14 +34b43b9,40 +34b43ba,ff +34b43bb,f1 +34b43bc,24 +34b43bd,84 +34b43bf,2 +34b43c0,c +34b43c1,10 +34b43c2,17 +34b43c3,2c +34b43c4,24 +34b43c5,4 +34b43c6,1 +34b43c8,3c +34b43c9,4 +34b43ca,80 +34b43cb,40 +34b43cc,24 +34b43cd,3 +34b43ce,1 +34b43d0,ac +34b43d1,83 +34b43d2,65 +34b43d3,40 +34b43d4,24 +34b43d5,84 +34b43d6,65 +34b43d7,40 +34b43d8,ac +34b43d9,82 +34b43db,4 +34b43dc,ac +34b43dd,82 +34b43df,8 +34b43e0,24 +34b43e1,42 +34b43e2,1 +34b43e4,c +34b43e5,10 +34b43e6,18 +34b43e7,37 +34b43e8,ac +34b43e9,82 +34b43eb,c +34b43ec,8f +34b43ed,bf +34b43ef,34 +34b43f0,8f +34b43f1,b1 +34b43f3,30 +34b43f4,8f +34b43f5,b0 +34b43f7,2c +34b43f8,3 +34b43f9,e0 +34b43fb,8 +34b43fc,27 +34b43fd,bd +34b43ff,38 +34b4400,4d +34b4401,51 +34b4404,4e +34b4405,6f +34b4406,72 +34b4407,6d +34b4408,61 +34b4409,6c +34b440d,1 +34b440e,2 +34b440f,3 +34b4410,4 +34b4411,5 +34b4412,6 +34b4413,7 +34b4414,ff +34b4415,ff +34b4416,ff +34b4417,ff +34b4418,ff +34b4419,ff +34b441d,ff +34b441f,ff +34b4420,3c +34b4423,64 +34b4424,ff +34b4425,ff +34b4426,82 +34b4428,c8 +34b4429,32 +34b442a,ff +34b442b,c8 +34b442c,c8 +34b4431,10 +34b4432,44 +34b4433,65 +34b4434,6b +34b4435,75 +34b443c,1 +34b443d,10 +34b443e,44 +34b443f,6f +34b4440,64 +34b4441,6f +34b4442,6e +34b4443,67 +34b4444,6f +34b4448,2 +34b4449,10 +34b444a,4a +34b444b,61 +34b444c,62 +34b444d,75 +34b4454,3 +34b4455,d0 +34b4456,46 +34b4457,6f +34b4458,72 +34b4459,65 +34b445a,73 +34b445b,74 +34b4460,4 +34b4461,d0 +34b4462,46 +34b4463,69 +34b4464,72 +34b4465,65 +34b446c,5 +34b446d,d0 +34b446e,57 +34b446f,61 +34b4470,74 +34b4471,65 +34b4472,72 +34b4478,7 +34b4479,d0 +34b447a,53 +34b447b,68 +34b447c,61 +34b447d,64 +34b447e,6f +34b447f,77 +34b4484,6 +34b4485,d0 +34b4486,53 +34b4487,70 +34b4488,69 +34b4489,72 +34b448a,69 +34b448b,74 +34b4490,8 +34b4491,90 +34b4492,42 +34b4493,6f +34b4494,74 +34b4495,57 +34b449c,9 +34b449d,10 +34b449e,49 +34b449f,63 +34b44a0,65 +34b44a8,c +34b44a9,a0 +34b44aa,47 +34b44ab,65 +34b44ac,72 +34b44ad,75 +34b44ae,64 +34b44af,6f +34b44b4,b +34b44b5,80 +34b44b6,47 +34b44b7,54 +34b44b8,47 +34b44c0,d +34b44c1,c0 +34b44c2,47 +34b44c3,61 +34b44c4,6e +34b44c5,6f +34b44c6,6e +34b44d1,8 +34b44d3,e +34b44d5,5f +34b44d6,3 +34b44d7,1 +34b44d8,1 +34b44e1,18 +34b44e3,18 +34b44e5,12 +34b44e7,3 +34b44e8,4 +34b44f1,10 +34b44f3,10 +34b44f5,6 +34b44f6,3 +34b44f7,1 +34b44f8,1 +34b4501,10 +34b4503,10 +34b4505,3 +34b4507,3 +34b4508,4 +34b450f,1 +34b4513,d +34b4591,d +34b4592,b0 +34b4595,d +34b4596,b0 +34b4599,d +34b459a,b0 +34b459d,c +34b459e,b0 +34b45a1,c +34b45a2,b0 +34b45a5,c +34b45a6,a0 +34b45ad,d +34b45ae,b0 +34b45b1,d +34b45b2,b0 +34b45c9,e8 +34b45ca,ac +34b45cd,e8 +34b45ce,ac +34b45d1,e8 +34b45d2,ac +34b45d5,e8 +34b45d6,ac +34b45fd,d +34b45fe,77 +34b45ff,d0 +34b4601,2e +34b4602,3a +34b4603,b0 +34b4605,7d +34b4606,c +34b4607,90 +34b4608,8f +34b4609,ff +34b460a,ff +34b460b,fd +34b460d,c9 +34b460e,6e +34b4610,2 +34b4611,e4 +34b4612,ac +34b4614,ef +34b4615,ff +34b4616,ff +34b4617,f4 +34b4618,a +34b4619,b0 +34b461a,e5 +34b461c,c +34b461d,95 +34b461e,e0 +34b4620,e +34b4621,59 +34b4622,c0 +34b4639,7 +34b463a,90 +34b463c,5 +34b463d,ce +34b463e,eb +34b463f,40 +34b4640,c +34b4641,c8 +34b4642,a9 +34b4643,90 +34b4644,d +34b4645,a7 +34b4646,90 +34b4648,8 +34b4649,ec +34b464a,b4 +34b464d,4a +34b464e,dd +34b464f,a0 +34b4651,7 +34b4652,97 +34b4653,e2 +34b4654,c +34b4655,88 +34b4656,aa +34b4657,e0 +34b4658,6 +34b4659,ce +34b465a,ed +34b465b,70 +34b465d,7 +34b465e,90 +34b4661,7 +34b4662,90 +34b4670,6d +34b4671,ea +34b4674,c9 +34b4675,4d +34b4676,60 +34b4678,c9 +34b4679,4d +34b467a,60 +34b467b,33 +34b467c,6d +34b467d,eb +34b467e,6b +34b467f,c6 +34b4681,8c +34b4682,b6 +34b4684,7c +34b4685,a4 +34b4686,ce +34b4687,c4 +34b4688,31 +34b4689,9 +34b468a,c3 +34b468b,bb +34b468d,9 +34b468e,c3 +34b468f,bb +34b4691,2 +34b4692,ce +34b4693,d4 +34b46a8,4 +34b46a9,ce +34b46aa,fb +34b46ac,a +34b46ad,d5 +34b46b0,8 +34b46b1,e3 +34b46b4,9 +34b46b5,ec +34b46b8,7e +34b46b9,4d +34b46ba,b0 +34b46bb,ab +34b46bc,bb +34b46bd,5 +34b46be,e8 +34b46bf,aa +34b46c0,bc +34b46c2,8e +34b46c3,d6 +34b46c4,7e +34b46c5,93 +34b46c6,6e +34b46c7,d0 +34b46c8,8 +34b46c9,de +34b46ca,d9 +34b46cb,ea +34b46e1,c +34b46e2,a0 +34b46e5,c +34b46e6,a0 +34b46e9,c +34b46ea,a0 +34b46ed,c +34b46ee,a0 +34b4712,c9 +34b4715,7 +34b4716,e2 +34b4719,c +34b471a,b0 +34b471d,e +34b471e,80 +34b4721,6f +34b4722,30 +34b4725,8e +34b4729,8e +34b472d,6f +34b472e,40 +34b4731,e +34b4732,80 +34b4735,c +34b4736,b0 +34b4739,7 +34b473a,e2 +34b473e,c9 +34b4749,bb +34b474d,5e +34b474e,40 +34b4751,c +34b4752,a0 +34b4755,a +34b4756,d0 +34b4759,7 +34b475a,e1 +34b475d,6 +34b475e,f4 +34b4761,6 +34b4762,f4 +34b4765,7 +34b4766,e1 +34b4769,a +34b476a,d0 +34b476d,c +34b476e,a0 +34b4771,5e +34b4772,40 +34b4775,bb +34b4789,a +34b478a,80 +34b478c,c +34b478d,8a +34b478e,8a +34b478f,b0 +34b4790,3 +34b4791,be +34b4792,da +34b4793,10 +34b4794,3 +34b4795,be +34b4796,da +34b4797,10 +34b4798,c +34b4799,8a +34b479a,8a +34b479b,b0 +34b479d,a +34b479e,80 +34b47c5,c +34b47c6,a0 +34b47c9,c +34b47ca,a0 +34b47cd,c +34b47ce,a0 +34b47d0,af +34b47d1,ff +34b47d2,ff +34b47d3,f8 +34b47d5,c +34b47d6,a0 +34b47d9,c +34b47da,a0 +34b47dd,c +34b47de,a0 +34b4815,d +34b4816,d0 +34b4819,e +34b481a,c0 +34b481d,4f +34b481e,80 +34b4821,9d +34b4845,df +34b4846,fb +34b4885,e +34b4886,c0 +34b4889,e +34b488a,c0 +34b48a2,b +34b48a3,c0 +34b48a6,4e +34b48a7,60 +34b48aa,bc +34b48ad,3 +34b48ae,e8 +34b48b1,a +34b48b2,d0 +34b48b5,1e +34b48b6,90 +34b48b9,9e +34b48ba,20 +34b48bd,da +34b48c0,7 +34b48c1,e3 +34b48c4,c +34b48c5,b0 +34b48c8,6e +34b48c9,50 +34b48d8,3 +34b48d9,ce +34b48da,eb +34b48dc,b +34b48dd,d5 +34b48de,7e +34b48df,90 +34b48e0,e +34b48e1,90 +34b48e2,b +34b48e3,d0 +34b48e4,5f +34b48e5,70 +34b48e6,9 +34b48e7,e0 +34b48e8,6f +34b48e9,6c +34b48ea,b9 +34b48eb,e0 +34b48ec,5f +34b48ed,70 +34b48ee,9 +34b48ef,e0 +34b48f0,e +34b48f1,90 +34b48f2,b +34b48f3,d0 +34b48f4,b +34b48f5,d5 +34b48f6,7e +34b48f7,90 +34b48f8,3 +34b48f9,ce +34b48fa,eb +34b4910,a +34b4911,ff +34b4912,e0 +34b4915,8 +34b4916,e0 +34b4919,8 +34b491a,e0 +34b491d,8 +34b491e,e0 +34b4921,8 +34b4922,e0 +34b4925,8 +34b4926,e0 +34b4929,8 +34b492a,e0 +34b492d,8 +34b492e,e0 +34b4930,8 +34b4931,ff +34b4932,ff +34b4933,e0 +34b4948,8 +34b4949,de +34b494a,ea +34b494c,c +34b494d,83 +34b494e,7e +34b494f,90 +34b4952,c +34b4953,c0 +34b4956,2e +34b4957,a0 +34b495a,bd +34b495b,20 +34b495d,b +34b495e,d4 +34b4961,bd +34b4962,40 +34b4964,b +34b4965,d4 +34b4968,2f +34b4969,ff +34b496a,ff +34b496b,d0 +34b4980,7 +34b4981,ce +34b4982,ea +34b4984,c +34b4985,83 +34b4986,7e +34b4987,90 +34b498a,c +34b498b,b0 +34b498d,2 +34b498e,7e +34b498f,90 +34b4991,bf +34b4992,fb +34b4995,2 +34b4996,7d +34b4997,a0 +34b499a,a +34b499b,d0 +34b499c,5c +34b499d,62 +34b499e,7d +34b499f,b0 +34b49a0,9 +34b49a1,de +34b49a2,eb +34b49a3,30 +34b49b9,2 +34b49ba,de +34b49bd,b +34b49be,de +34b49c1,7d +34b49c2,9e +34b49c4,2 +34b49c5,d7 +34b49c6,9e +34b49c8,b +34b49c9,b0 +34b49ca,9e +34b49cc,6e +34b49cd,40 +34b49ce,9e +34b49d0,9f +34b49d1,ff +34b49d2,ff +34b49d3,f7 +34b49d6,9e +34b49da,9e +34b49f0,c +34b49f1,ff +34b49f2,ff +34b49f3,50 +34b49f4,c +34b49f5,a0 +34b49f8,c +34b49f9,a0 +34b49fc,c +34b49fd,ee +34b49fe,ea +34b4a01,3 +34b4a02,8e +34b4a03,90 +34b4a06,b +34b4a07,c0 +34b4a0a,b +34b4a0b,c0 +34b4a0c,5c +34b4a0d,63 +34b4a0e,8e +34b4a0f,90 +34b4a10,9 +34b4a11,de +34b4a12,da +34b4a29,ae +34b4a2a,ec +34b4a2b,30 +34b4a2c,a +34b4a2d,e8 +34b4a2e,39 +34b4a2f,80 +34b4a30,e +34b4a31,90 +34b4a34,4f +34b4a35,ae +34b4a36,ec +34b4a37,40 +34b4a38,6f +34b4a39,d5 +34b4a3a,5d +34b4a3b,c0 +34b4a3c,5f +34b4a3d,90 +34b4a3e,9 +34b4a3f,e0 +34b4a40,e +34b4a41,90 +34b4a42,9 +34b4a43,e0 +34b4a44,c +34b4a45,d5 +34b4a46,5d +34b4a47,c0 +34b4a48,3 +34b4a49,ce +34b4a4a,ec +34b4a4b,40 +34b4a60,5f +34b4a61,ff +34b4a62,ff +34b4a63,d0 +34b4a66,d +34b4a67,a0 +34b4a6a,7e +34b4a6b,40 +34b4a6e,cc +34b4a71,4 +34b4a72,e8 +34b4a75,a +34b4a76,d0 +34b4a79,d +34b4a7a,a0 +34b4a7d,8e +34b4a7e,40 +34b4a81,cc +34b4a98,5 +34b4a99,ce +34b4a9a,ec +34b4a9b,30 +34b4a9c,d +34b4a9d,c4 +34b4a9e,5d +34b4a9f,b0 +34b4aa0,e +34b4aa1,90 +34b4aa2,b +34b4aa3,d0 +34b4aa4,b +34b4aa5,c4 +34b4aa6,5d +34b4aa7,90 +34b4aa8,4 +34b4aa9,df +34b4aaa,fc +34b4aab,20 +34b4aac,1d +34b4aad,b4 +34b4aae,5c +34b4aaf,c0 +34b4ab0,5f +34b4ab1,60 +34b4ab2,9 +34b4ab3,e0 +34b4ab4,2e +34b4ab5,b3 +34b4ab6,5c +34b4ab7,d0 +34b4ab8,7 +34b4ab9,de +34b4aba,ec +34b4abb,50 +34b4ad0,6 +34b4ad1,de +34b4ad2,eb +34b4ad4,d +34b4ad5,b3 +34b4ad6,7e +34b4ad7,90 +34b4ad8,5f +34b4ad9,50 +34b4ada,b +34b4adb,d0 +34b4adc,5f +34b4add,50 +34b4ade,b +34b4adf,e0 +34b4ae0,d +34b4ae1,b3 +34b4ae2,7e +34b4ae3,e0 +34b4ae4,6 +34b4ae5,de +34b4ae6,db +34b4ae7,e0 +34b4aea,b +34b4aeb,c0 +34b4aec,9 +34b4aed,74 +34b4aee,9e +34b4aef,70 +34b4af0,5 +34b4af1,de +34b4af2,d8 +34b4b11,e +34b4b12,c0 +34b4b15,e +34b4b16,c0 +34b4b25,e +34b4b26,c0 +34b4b29,e +34b4b2a,c0 +34b4b49,e +34b4b4a,c0 +34b4b4d,e +34b4b4e,c0 +34b4b5d,d +34b4b5e,d0 +34b4b61,e +34b4b62,c0 +34b4b65,4f +34b4b66,80 +34b4b69,9d +34b4b82,29 +34b4b83,c8 +34b4b85,7b +34b4b86,ed +34b4b87,93 +34b4b88,8d +34b4b89,da +34b4b8a,40 +34b4b8c,8d +34b4b8d,da +34b4b8e,40 +34b4b91,7b +34b4b92,ec +34b4b93,93 +34b4b96,29 +34b4b97,c8 +34b4bbc,af +34b4bbd,ff +34b4bbe,ff +34b4bbf,f8 +34b4bc8,af +34b4bc9,ff +34b4bca,ff +34b4bcb,f8 +34b4bf0,ac +34b4bf1,81 +34b4bf4,4a +34b4bf5,de +34b4bf6,b6 +34b4bf9,6 +34b4bfa,ad +34b4bfb,d6 +34b4bfd,6 +34b4bfe,ad +34b4bff,d6 +34b4c00,4a +34b4c01,de +34b4c02,b6 +34b4c04,ac +34b4c05,81 +34b4c20,4 +34b4c21,be +34b4c22,ec +34b4c23,30 +34b4c24,9 +34b4c25,a4 +34b4c26,6e +34b4c27,a0 +34b4c2a,1d +34b4c2b,a0 +34b4c2d,2 +34b4c2e,cd +34b4c2f,30 +34b4c31,c +34b4c32,c1 +34b4c35,e +34b4c36,90 +34b4c3d,e +34b4c3e,90 +34b4c41,e +34b4c42,90 +34b4c58,1 +34b4c59,ae +34b4c5a,ed +34b4c5b,70 +34b4c5c,c +34b4c5d,d7 +34b4c5e,39 +34b4c5f,e4 +34b4c60,7e +34b4c61,20 +34b4c63,c9 +34b4c64,ba +34b4c65,a +34b4c66,ee +34b4c67,ca +34b4c68,d7 +34b4c69,6e +34b4c6a,64 +34b4c6b,da +34b4c6c,d6 +34b4c6d,9c +34b4c6f,aa +34b4c70,d7 +34b4c71,6e +34b4c72,64 +34b4c73,da +34b4c74,ba +34b4c75,a +34b4c76,ee +34b4c77,ca +34b4c78,6e +34b4c79,40 +34b4c7c,a +34b4c7d,d8 +34b4c7e,30 +34b4c81,8d +34b4c82,ee +34b4c83,90 +34b4c91,3e +34b4c92,d0 +34b4c95,9d +34b4c96,e6 +34b4c99,cb +34b4c9a,cb +34b4c9c,3 +34b4c9d,e8 +34b4c9e,ad +34b4ca0,8 +34b4ca1,e2 +34b4ca2,6f +34b4ca3,60 +34b4ca4,c +34b4ca5,c0 +34b4ca6,e +34b4ca7,a0 +34b4ca8,2e +34b4ca9,ff +34b4caa,ff +34b4cab,d0 +34b4cac,8e +34b4cad,50 +34b4cae,8 +34b4caf,f5 +34b4cb0,cd +34b4cb2,1 +34b4cb3,ea +34b4cc8,e +34b4cc9,ff +34b4cca,ec +34b4ccb,40 +34b4ccc,e +34b4ccd,90 +34b4cce,5d +34b4ccf,c0 +34b4cd0,e +34b4cd1,90 +34b4cd2,a +34b4cd3,e0 +34b4cd4,e +34b4cd5,90 +34b4cd6,5d +34b4cd7,c0 +34b4cd8,e +34b4cd9,ff +34b4cda,fd +34b4cdb,50 +34b4cdc,e +34b4cdd,90 +34b4cde,4b +34b4cdf,d2 +34b4ce0,e +34b4ce1,90 +34b4ce2,5 +34b4ce3,f6 +34b4ce4,e +34b4ce5,90 +34b4ce6,4b +34b4ce7,e3 +34b4ce8,e +34b4ce9,ff +34b4cea,ed +34b4ceb,80 +34b4d01,9d +34b4d02,ed +34b4d03,80 +34b4d04,8 +34b4d05,e9 +34b4d06,36 +34b4d07,b0 +34b4d08,d +34b4d09,b0 +34b4d0c,3f +34b4d0d,90 +34b4d10,5f +34b4d11,70 +34b4d14,1e +34b4d15,90 +34b4d18,d +34b4d19,b0 +34b4d1c,8 +34b4d1d,e9 +34b4d1e,47 +34b4d1f,b0 +34b4d21,9d +34b4d22,ed +34b4d23,80 +34b4d38,5f +34b4d39,fe +34b4d3a,d8 +34b4d3c,5f +34b4d3d,65 +34b4d3e,ae +34b4d3f,80 +34b4d40,5f +34b4d41,60 +34b4d42,c +34b4d43,d0 +34b4d44,5f +34b4d45,60 +34b4d46,9 +34b4d47,e0 +34b4d48,5f +34b4d49,60 +34b4d4a,9 +34b4d4b,f0 +34b4d4c,5f +34b4d4d,60 +34b4d4e,9 +34b4d4f,e0 +34b4d50,5f +34b4d51,60 +34b4d52,c +34b4d53,d0 +34b4d54,5f +34b4d55,65 +34b4d56,ae +34b4d57,80 +34b4d58,5f +34b4d59,fe +34b4d5a,d8 +34b4d70,d +34b4d71,ff +34b4d72,ff +34b4d73,e0 +34b4d74,d +34b4d75,b0 +34b4d78,d +34b4d79,b0 +34b4d7c,d +34b4d7d,b0 +34b4d80,d +34b4d81,ff +34b4d82,ff +34b4d83,c0 +34b4d84,d +34b4d85,b0 +34b4d88,d +34b4d89,b0 +34b4d8c,d +34b4d8d,b0 +34b4d90,d +34b4d91,ff +34b4d92,ff +34b4d93,f0 +34b4da8,b +34b4da9,ff +34b4daa,ff +34b4dab,f4 +34b4dac,b +34b4dad,d0 +34b4db0,b +34b4db1,d0 +34b4db4,b +34b4db5,d0 +34b4db8,b +34b4db9,ff +34b4dba,ff +34b4dbb,c0 +34b4dbc,b +34b4dbd,d0 +34b4dc0,b +34b4dc1,d0 +34b4dc4,b +34b4dc5,d0 +34b4dc8,b +34b4dc9,d0 +34b4de0,1 +34b4de1,ae +34b4de2,ed +34b4de3,60 +34b4de4,b +34b4de5,e7 +34b4de6,38 +34b4de7,a0 +34b4de8,4e +34b4de9,90 +34b4dec,8f +34b4ded,40 +34b4df0,9f +34b4df1,10 +34b4df2,bf +34b4df3,f2 +34b4df4,7f +34b4df5,40 +34b4df6,7 +34b4df7,f2 +34b4df8,4e +34b4df9,90 +34b4dfa,7 +34b4dfb,f2 +34b4dfc,b +34b4dfd,e7 +34b4dfe,39 +34b4dff,f2 +34b4e00,1 +34b4e01,be +34b4e02,ed +34b4e03,90 +34b4e18,5f +34b4e19,60 +34b4e1a,9 +34b4e1b,e0 +34b4e1c,5f +34b4e1d,60 +34b4e1e,9 +34b4e1f,e0 +34b4e20,5f +34b4e21,60 +34b4e22,9 +34b4e23,e0 +34b4e24,5f +34b4e25,60 +34b4e26,9 +34b4e27,e0 +34b4e28,5f +34b4e29,ff +34b4e2a,ff +34b4e2b,e0 +34b4e2c,5f +34b4e2d,60 +34b4e2e,9 +34b4e2f,e0 +34b4e30,5f +34b4e31,60 +34b4e32,9 +34b4e33,e0 +34b4e34,5f +34b4e35,60 +34b4e36,9 +34b4e37,e0 +34b4e38,5f +34b4e39,60 +34b4e3a,9 +34b4e3b,e0 +34b4e50,d +34b4e51,ff +34b4e52,ff +34b4e53,b0 +34b4e55,d +34b4e56,b0 +34b4e59,d +34b4e5a,b0 +34b4e5d,d +34b4e5e,b0 +34b4e61,d +34b4e62,b0 +34b4e65,d +34b4e66,b0 +34b4e69,d +34b4e6a,b0 +34b4e6d,d +34b4e6e,b0 +34b4e70,d +34b4e71,ff +34b4e72,ff +34b4e73,b0 +34b4e89,cf +34b4e8a,ff +34b4e8b,40 +34b4e8e,7f +34b4e8f,40 +34b4e92,7f +34b4e93,40 +34b4e96,7f +34b4e97,40 +34b4e9a,7f +34b4e9b,40 +34b4e9e,7f +34b4e9f,30 +34b4ea0,75 +34b4ea2,9e +34b4ea4,8d +34b4ea5,64 +34b4ea6,dc +34b4ea8,2b +34b4ea9,ee +34b4eaa,c5 +34b4ec0,5f +34b4ec1,60 +34b4ec2,9 +34b4ec3,e7 +34b4ec4,5f +34b4ec5,60 +34b4ec6,9e +34b4ec7,70 +34b4ec8,5f +34b4ec9,69 +34b4eca,e7 +34b4ecc,5f +34b4ecd,be +34b4ece,80 +34b4ed0,5f +34b4ed1,ed +34b4ed2,b0 +34b4ed4,5f +34b4ed5,87 +34b4ed6,e8 +34b4ed8,5f +34b4ed9,60 +34b4eda,ae +34b4edb,40 +34b4edc,5f +34b4edd,60 +34b4ede,1d +34b4edf,c0 +34b4ee0,5f +34b4ee1,60 +34b4ee2,6 +34b4ee3,ea +34b4ef8,c +34b4ef9,c0 +34b4efc,c +34b4efd,c0 +34b4f00,c +34b4f01,c0 +34b4f04,c +34b4f05,c0 +34b4f08,c +34b4f09,c0 +34b4f0c,c +34b4f0d,c0 +34b4f10,c +34b4f11,c0 +34b4f14,c +34b4f15,c0 +34b4f18,c +34b4f19,ff +34b4f1a,ff +34b4f1b,f7 +34b4f30,af +34b4f31,a0 +34b4f32,c +34b4f33,f8 +34b4f34,ae +34b4f35,d0 +34b4f36,2e +34b4f37,e8 +34b4f38,ad +34b4f39,d5 +34b4f3a,9b +34b4f3b,e8 +34b4f3c,ad +34b4f3d,aa +34b4f3e,c8 +34b4f3f,e8 +34b4f40,ad +34b4f41,5d +34b4f42,e1 +34b4f43,e8 +34b4f44,ad +34b4f45,d +34b4f46,b0 +34b4f47,e8 +34b4f48,ad +34b4f4b,e8 +34b4f4c,ad +34b4f4f,e8 +34b4f50,ad +34b4f53,e8 +34b4f68,5f +34b4f69,c0 +34b4f6a,8 +34b4f6b,e0 +34b4f6c,5f +34b4f6d,e6 +34b4f6e,8 +34b4f6f,e0 +34b4f70,5f +34b4f71,cb +34b4f72,8 +34b4f73,e0 +34b4f74,5f +34b4f75,7e +34b4f76,48 +34b4f77,e0 +34b4f78,5f +34b4f79,5c +34b4f7a,a8 +34b4f7b,e0 +34b4f7c,5f +34b4f7d,57 +34b4f7e,e8 +34b4f7f,e0 +34b4f80,5f +34b4f81,50 +34b4f82,dc +34b4f83,e0 +34b4f84,5f +34b4f85,50 +34b4f86,9e +34b4f87,e0 +34b4f88,5f +34b4f89,50 +34b4f8a,2e +34b4f8b,e0 +34b4fa0,4 +34b4fa1,ce +34b4fa2,eb +34b4fa3,20 +34b4fa4,c +34b4fa5,d5 +34b4fa6,6e +34b4fa7,a0 +34b4fa8,3e +34b4fa9,80 +34b4faa,a +34b4fab,e0 +34b4fac,7f +34b4fad,50 +34b4fae,8 +34b4faf,f2 +34b4fb0,7f +34b4fb1,40 +34b4fb2,8 +34b4fb3,f4 +34b4fb4,7f +34b4fb5,50 +34b4fb6,8 +34b4fb7,f2 +34b4fb8,3e +34b4fb9,80 +34b4fba,a +34b4fbb,e0 +34b4fbc,c +34b4fbd,d5 +34b4fbe,6e +34b4fbf,b0 +34b4fc0,4 +34b4fc1,ce +34b4fc2,eb +34b4fc3,20 +34b4fd8,d +34b4fd9,ff +34b4fda,ed +34b4fdb,60 +34b4fdc,d +34b4fdd,b0 +34b4fde,5c +34b4fdf,e2 +34b4fe0,d +34b4fe1,b0 +34b4fe2,6 +34b4fe3,f6 +34b4fe4,d +34b4fe5,b0 +34b4fe6,6 +34b4fe7,f6 +34b4fe8,d +34b4fe9,b0 +34b4fea,5c +34b4feb,e2 +34b4fec,d +34b4fed,ff +34b4fee,ed +34b4fef,60 +34b4ff0,d +34b4ff1,b0 +34b4ff4,d +34b4ff5,b0 +34b4ff8,d +34b4ff9,b0 +34b5010,4 +34b5011,ce +34b5012,eb +34b5013,20 +34b5014,c +34b5015,d5 +34b5016,6e +34b5017,a0 +34b5018,3e +34b5019,80 +34b501a,a +34b501b,e0 +34b501c,7f +34b501d,50 +34b501e,8 +34b501f,f2 +34b5020,7f +34b5021,40 +34b5022,8 +34b5023,f4 +34b5024,7f +34b5025,50 +34b5026,8 +34b5027,f1 +34b5028,3e +34b5029,80 +34b502a,a +34b502b,d0 +34b502c,c +34b502d,d5 +34b502e,6e +34b502f,a0 +34b5030,4 +34b5031,ce +34b5032,fc +34b5033,20 +34b5036,ae +34b5037,50 +34b503a,c +34b503b,80 +34b5048,5f +34b5049,fe +34b504a,eb +34b504b,20 +34b504c,5f +34b504d,71 +34b504e,7e +34b504f,b0 +34b5050,5f +34b5051,70 +34b5052,c +34b5053,d0 +34b5054,5f +34b5055,71 +34b5056,6e +34b5057,a0 +34b5058,5f +34b5059,ff +34b505a,ea +34b505c,5f +34b505d,72 +34b505e,ae +34b505f,40 +34b5060,5f +34b5061,70 +34b5062,d +34b5063,b0 +34b5064,5f +34b5065,70 +34b5066,8 +34b5067,e5 +34b5068,5f +34b5069,70 +34b506b,db +34b5080,6 +34b5081,ce +34b5082,eb +34b5083,30 +34b5084,d +34b5085,c4 +34b5086,5a +34b5087,90 +34b5088,4f +34b5089,60 +34b508c,e +34b508d,c6 +34b5090,5 +34b5091,ce +34b5092,eb +34b5093,40 +34b5096,6c +34b5097,c0 +34b509a,8 +34b509b,e0 +34b509c,c +34b509d,73 +34b509e,5c +34b509f,d0 +34b50a0,8 +34b50a1,de +34b50a2,ec +34b50a3,50 +34b50b8,cf +34b50b9,ff +34b50ba,ff +34b50bb,fb +34b50bd,d +34b50be,b0 +34b50c1,d +34b50c2,b0 +34b50c5,d +34b50c6,b0 +34b50c9,d +34b50ca,b0 +34b50cd,d +34b50ce,b0 +34b50d1,d +34b50d2,b0 +34b50d5,d +34b50d6,b0 +34b50d9,d +34b50da,b0 +34b50f0,4f +34b50f1,70 +34b50f2,9 +34b50f3,e0 +34b50f4,4f +34b50f5,70 +34b50f6,9 +34b50f7,e0 +34b50f8,4f +34b50f9,70 +34b50fa,9 +34b50fb,e0 +34b50fc,4f +34b50fd,70 +34b50fe,9 +34b50ff,e0 +34b5100,4f +34b5101,70 +34b5102,9 +34b5103,e0 +34b5104,3f +34b5105,70 +34b5106,9 +34b5107,e0 +34b5108,2e +34b5109,70 +34b510a,a +34b510b,d0 +34b510c,d +34b510d,c4 +34b510e,5d +34b510f,c0 +34b5110,5 +34b5111,ce +34b5112,ec +34b5113,40 +34b5128,ad +34b512a,3 +34b512b,e8 +34b512c,6f +34b512d,50 +34b512e,8 +34b512f,e3 +34b5130,e +34b5131,90 +34b5132,b +34b5133,c0 +34b5134,b +34b5135,c0 +34b5136,d +34b5137,90 +34b5138,8 +34b5139,e1 +34b513a,5e +34b513b,40 +34b513c,2 +34b513d,e7 +34b513e,ad +34b5141,cb +34b5142,ca +34b5145,9d +34b5146,e6 +34b5149,3e +34b514a,d0 +34b5160,e8 +34b5163,ad +34b5164,da +34b5167,cb +34b5168,cb +34b516b,da +34b516c,ac +34b516d,e +34b516e,c0 +34b516f,e8 +34b5170,8d +34b5171,6d +34b5172,e1 +34b5173,e5 +34b5174,6e +34b5175,9b +34b5176,d8 +34b5177,e0 +34b5178,1e +34b5179,c8 +34b517a,ac +34b517b,d0 +34b517c,d +34b517d,e3 +34b517e,7e +34b517f,c0 +34b5180,c +34b5181,d0 +34b5182,e +34b5183,a0 +34b5198,6e +34b5199,70 +34b519a,7 +34b519b,e7 +34b519c,a +34b519d,d2 +34b519e,1d +34b519f,b0 +34b51a0,2 +34b51a1,da +34b51a2,ad +34b51a3,20 +34b51a5,7e +34b51a6,e7 +34b51a9,3e +34b51aa,e2 +34b51ad,bd +34b51ae,da +34b51b0,7 +34b51b1,e6 +34b51b2,7e +34b51b3,60 +34b51b4,3e +34b51b5,a0 +34b51b6,b +34b51b7,d0 +34b51b8,bd +34b51b9,20 +34b51ba,4 +34b51bb,e9 +34b51d0,ae +34b51d1,20 +34b51d2,5 +34b51d3,e8 +34b51d4,2d +34b51d5,a0 +34b51d6,c +34b51d7,c0 +34b51d8,7 +34b51d9,e5 +34b51da,7e +34b51db,50 +34b51dd,cc +34b51de,da +34b51e1,4e +34b51e2,d2 +34b51e5,d +34b51e6,b0 +34b51e9,d +34b51ea,b0 +34b51ed,d +34b51ee,b0 +34b51f1,d +34b51f2,b0 +34b5208,e +34b5209,ff +34b520a,ff +34b520b,f8 +34b520e,b +34b520f,d3 +34b5212,7e +34b5213,70 +34b5215,3 +34b5216,ea +34b5219,b +34b521a,d1 +34b521d,8e +34b521e,50 +34b5220,4 +34b5221,e9 +34b5224,c +34b5225,c0 +34b5228,1f +34b5229,ff +34b522a,ff +34b522b,fa +34b5239,4f +34b523a,fc +34b523d,4f +34b523e,50 +34b5241,4f +34b5242,50 +34b5245,4f +34b5246,50 +34b5249,4f +34b524a,50 +34b524d,4f +34b524e,50 +34b5251,4f +34b5252,50 +34b5255,4f +34b5256,50 +34b5259,4f +34b525a,50 +34b525d,4f +34b525e,50 +34b5261,4f +34b5262,50 +34b5265,4f +34b5266,fc +34b5278,6e +34b5279,50 +34b527c,c +34b527d,b0 +34b5280,7 +34b5281,e3 +34b5285,da +34b5289,9e +34b528a,20 +34b528d,1e +34b528e,90 +34b5291,a +34b5292,d0 +34b5295,3 +34b5296,e8 +34b529a,bc +34b529e,4e +34b529f,60 +34b52a2,b +34b52a3,c0 +34b52a9,df +34b52aa,e0 +34b52ad,8 +34b52ae,e0 +34b52b1,8 +34b52b2,e0 +34b52b5,8 +34b52b6,e0 +34b52b9,8 +34b52ba,e0 +34b52bd,8 +34b52be,e0 +34b52c1,8 +34b52c2,e0 +34b52c5,8 +34b52c6,e0 +34b52c9,8 +34b52ca,e0 +34b52cd,8 +34b52ce,e0 +34b52d1,8 +34b52d2,e0 +34b52d5,df +34b52d6,e0 +34b52e9,5e +34b52ea,d2 +34b52ed,dc +34b52ee,db +34b52f0,a +34b52f1,d2 +34b52f2,5e +34b52f3,80 +34b52f4,7e +34b52f5,50 +34b52f6,7 +34b52f7,e5 +34b534c,ff +34b534d,ff +34b534e,ff +34b534f,fd +34b5354,2 +34b5355,ca +34b5359,2c +34b535a,90 +34b5398,5 +34b5399,ce +34b539a,eb +34b539b,10 +34b539c,b +34b539d,93 +34b539e,6d +34b539f,a0 +34b53a2,b +34b53a3,c0 +34b53a4,8 +34b53a5,de +34b53a6,ff +34b53a7,c0 +34b53a8,3e +34b53a9,93 +34b53aa,b +34b53ab,d0 +34b53ac,4f +34b53ad,82 +34b53ae,7e +34b53af,d0 +34b53b0,a +34b53b1,ee +34b53b2,db +34b53b3,d0 +34b53c0,d +34b53c1,90 +34b53c4,d +34b53c5,90 +34b53c8,d +34b53c9,90 +34b53cc,d +34b53cd,90 +34b53d0,d +34b53d1,bd +34b53d2,ec +34b53d3,40 +34b53d4,d +34b53d5,e6 +34b53d6,5d +34b53d7,c0 +34b53d8,d +34b53d9,b0 +34b53da,8 +34b53db,e0 +34b53dc,d +34b53dd,a0 +34b53de,7 +34b53df,f2 +34b53e0,d +34b53e1,b0 +34b53e2,8 +34b53e3,e0 +34b53e4,d +34b53e5,e6 +34b53e6,4d +34b53e7,b0 +34b53e8,d +34b53e9,bd +34b53ea,ec +34b53eb,40 +34b5409,8d +34b540a,ed +34b540b,70 +34b540c,7 +34b540d,e9 +34b540e,36 +34b540f,a0 +34b5410,c +34b5411,c0 +34b5414,d +34b5415,b0 +34b5418,c +34b5419,c0 +34b541c,7 +34b541d,e9 +34b541e,36 +34b541f,a0 +34b5421,8d +34b5422,ed +34b5423,70 +34b5432,b +34b5433,c0 +34b5436,b +34b5437,c0 +34b543a,b +34b543b,c0 +34b543e,b +34b543f,c0 +34b5440,5 +34b5441,de +34b5442,dc +34b5443,c0 +34b5444,d +34b5445,c4 +34b5446,8e +34b5447,c0 +34b5448,5f +34b5449,60 +34b544a,c +34b544b,c0 +34b544c,7f +34b544d,30 +34b544e,b +34b544f,c0 +34b5450,5f +34b5451,60 +34b5452,c +34b5453,c0 +34b5454,d +34b5455,c4 +34b5456,8e +34b5457,c0 +34b5458,5 +34b5459,de +34b545a,dc +34b545b,c0 +34b5478,3 +34b5479,be +34b547a,ec +34b547b,30 +34b547c,c +34b547d,d5 +34b547e,4c +34b547f,c0 +34b5480,4f +34b5481,60 +34b5482,7 +34b5483,e0 +34b5484,6f +34b5485,ff +34b5486,ff +34b5487,f3 +34b5488,4f +34b5489,50 +34b548c,c +34b548d,c5 +34b548e,38 +34b548f,c0 +34b5490,3 +34b5491,be +34b5492,ec +34b5493,60 +34b54a1,5 +34b54a2,de +34b54a3,d0 +34b54a5,c +34b54a6,b2 +34b54a9,d +34b54aa,90 +34b54ad,e +34b54ae,80 +34b54b0,d +34b54b1,ff +34b54b2,ff +34b54b3,d0 +34b54b5,e +34b54b6,80 +34b54b9,e +34b54ba,80 +34b54bd,e +34b54be,80 +34b54c1,e +34b54c2,80 +34b54c5,e +34b54c6,80 +34b54c9,e +34b54ca,80 +34b54e8,5 +34b54e9,de +34b54ea,dc +34b54eb,c0 +34b54ec,d +34b54ed,c4 +34b54ee,8e +34b54ef,c0 +34b54f0,5f +34b54f1,60 +34b54f2,c +34b54f3,c0 +34b54f4,7f +34b54f5,30 +34b54f6,b +34b54f7,c0 +34b54f8,5f +34b54f9,60 +34b54fa,c +34b54fb,c0 +34b54fc,d +34b54fd,c4 +34b54fe,8e +34b54ff,c0 +34b5500,5 +34b5501,de +34b5502,dc +34b5503,b0 +34b5506,c +34b5507,a0 +34b5508,9 +34b5509,94 +34b550a,7e +34b550b,60 +34b550c,4 +34b550d,ce +34b550e,e9 +34b5510,d +34b5511,a0 +34b5514,d +34b5515,a0 +34b5518,d +34b5519,a0 +34b551c,d +34b551d,a0 +34b5520,d +34b5521,bd +34b5522,ed +34b5523,40 +34b5524,d +34b5525,e6 +34b5526,5d +34b5527,a0 +34b5528,d +34b5529,b0 +34b552a,b +34b552b,c0 +34b552c,d +34b552d,a0 +34b552e,b +34b552f,c0 +34b5530,d +34b5531,a0 +34b5532,b +34b5533,c0 +34b5534,d +34b5535,a0 +34b5536,b +34b5537,c0 +34b5538,d +34b5539,a0 +34b553a,b +34b553b,c0 +34b5549,b +34b554a,c0 +34b5558,9 +34b5559,ff +34b555a,c0 +34b555d,b +34b555e,c0 +34b5561,b +34b5562,c0 +34b5565,b +34b5566,c0 +34b5569,b +34b556a,c0 +34b556d,b +34b556e,c0 +34b5570,e +34b5571,ff +34b5572,ff +34b5573,e0 +34b5581,7 +34b5582,e0 +34b5590,7 +34b5591,ff +34b5592,e0 +34b5595,7 +34b5596,e0 +34b5599,7 +34b559a,e0 +34b559d,7 +34b559e,e0 +34b55a1,7 +34b55a2,e0 +34b55a5,7 +34b55a6,e0 +34b55a9,7 +34b55aa,e0 +34b55ad,7 +34b55ae,e0 +34b55b1,1b +34b55b2,d0 +34b55b4,d +34b55b5,fe +34b55b6,70 +34b55b8,b +34b55b9,c0 +34b55bc,b +34b55bd,c0 +34b55c0,b +34b55c1,c0 +34b55c4,b +34b55c5,c0 +34b55c8,b +34b55c9,c0 +34b55ca,3d +34b55cb,c2 +34b55cc,b +34b55cd,c3 +34b55ce,db +34b55d0,b +34b55d1,dd +34b55d2,c0 +34b55d4,b +34b55d5,fc +34b55d6,e5 +34b55d8,b +34b55d9,d0 +34b55da,cd +34b55db,10 +34b55dc,b +34b55dd,c0 +34b55de,3d +34b55df,b0 +34b55e0,b +34b55e1,c0 +34b55e2,7 +34b55e3,e8 +34b55f0,e +34b55f1,ff +34b55f2,40 +34b55f5,5f +34b55f6,40 +34b55f9,5f +34b55fa,40 +34b55fd,5f +34b55fe,40 +34b5601,5f +34b5602,40 +34b5605,5f +34b5606,40 +34b5609,5f +34b560a,40 +34b560d,5f +34b560e,40 +34b5611,4f +34b5612,50 +34b5615,e +34b5616,a0 +34b5619,8 +34b561a,ef +34b561b,b0 +34b5638,8d +34b5639,dd +34b563a,ae +34b563b,c0 +34b563c,8e +34b563d,4d +34b563e,c5 +34b563f,e4 +34b5640,8d +34b5641,c +34b5642,b0 +34b5643,e6 +34b5644,8d +34b5645,b +34b5646,a0 +34b5647,e7 +34b5648,8d +34b5649,b +34b564a,a0 +34b564b,e7 +34b564c,8d +34b564d,b +34b564e,a0 +34b564f,e7 +34b5650,8d +34b5651,b +34b5652,a0 +34b5653,e7 +34b5670,d +34b5671,bd +34b5672,ed +34b5673,40 +34b5674,d +34b5675,e6 +34b5676,5d +34b5677,a0 +34b5678,d +34b5679,b0 +34b567a,b +34b567b,c0 +34b567c,d +34b567d,a0 +34b567e,b +34b567f,c0 +34b5680,d +34b5681,a0 +34b5682,b +34b5683,c0 +34b5684,d +34b5685,a0 +34b5686,b +34b5687,c0 +34b5688,d +34b5689,a0 +34b568a,b +34b568b,c0 +34b56a8,4 +34b56a9,ce +34b56aa,eb +34b56ab,20 +34b56ac,c +34b56ad,d5 +34b56ae,6d +34b56af,a0 +34b56b0,1e +34b56b1,70 +34b56b2,a +34b56b3,d0 +34b56b4,5f +34b56b5,60 +34b56b6,8 +34b56b7,e0 +34b56b8,1e +34b56b9,70 +34b56ba,a +34b56bb,d0 +34b56bc,c +34b56bd,d4 +34b56be,6d +34b56bf,b0 +34b56c0,4 +34b56c1,ce +34b56c2,eb +34b56c3,20 +34b56e0,d +34b56e1,bd +34b56e2,ec +34b56e3,30 +34b56e4,d +34b56e5,e6 +34b56e6,5d +34b56e7,b0 +34b56e8,d +34b56e9,b0 +34b56ea,9 +34b56eb,e0 +34b56ec,d +34b56ed,a0 +34b56ee,7 +34b56ef,e0 +34b56f0,d +34b56f1,b0 +34b56f2,8 +34b56f3,e0 +34b56f4,d +34b56f5,e6 +34b56f6,5d +34b56f7,b0 +34b56f8,d +34b56f9,be +34b56fa,ec +34b56fb,40 +34b56fc,d +34b56fd,90 +34b5700,d +34b5701,90 +34b5704,d +34b5705,90 +34b5718,4 +34b5719,ce +34b571a,dc +34b571b,c0 +34b571c,c +34b571d,c4 +34b571e,7e +34b571f,c0 +34b5720,1e +34b5721,70 +34b5722,c +34b5723,c0 +34b5724,5f +34b5725,60 +34b5726,b +34b5727,c0 +34b5728,2e +34b5729,70 +34b572a,c +34b572b,c0 +34b572c,c +34b572d,c4 +34b572e,7e +34b572f,c0 +34b5730,5 +34b5731,ce +34b5732,db +34b5733,c0 +34b5736,a +34b5737,c0 +34b573a,a +34b573b,c0 +34b573e,a +34b573f,c0 +34b5751,cc +34b5752,de +34b5753,f9 +34b5755,ce +34b5756,83 +34b5759,cb +34b575d,ca +34b5761,ca +34b5765,ca +34b5769,ca +34b5788,4 +34b5789,ce +34b578a,ea +34b578b,10 +34b578c,b +34b578d,d4 +34b578e,5b +34b578f,60 +34b5790,b +34b5791,d4 +34b5794,3 +34b5795,bd +34b5796,db +34b5797,20 +34b579a,4d +34b579b,a0 +34b579c,b +34b579d,94 +34b579e,5e +34b579f,a0 +34b57a0,5 +34b57a1,ce +34b57a2,eb +34b57a3,20 +34b57b9,8e +34b57bd,8e +34b57c0,6f +34b57c1,ff +34b57c2,ff +34b57c3,b0 +34b57c5,8e +34b57c9,8e +34b57cd,8e +34b57d1,8e +34b57d5,6e +34b57d6,70 +34b57d9,b +34b57da,ef +34b57db,b0 +34b57f8,d +34b57f9,a0 +34b57fa,b +34b57fb,c0 +34b57fc,d +34b57fd,a0 +34b57fe,b +34b57ff,c0 +34b5800,d +34b5801,a0 +34b5802,b +34b5803,c0 +34b5804,d +34b5805,a0 +34b5806,b +34b5807,c0 +34b5808,d +34b5809,a0 +34b580a,b +34b580b,c0 +34b580c,b +34b580d,d4 +34b580e,7e +34b580f,c0 +34b5810,5 +34b5811,de +34b5812,db +34b5813,c0 +34b5830,6e +34b5831,30 +34b5832,7 +34b5833,e3 +34b5834,d +34b5835,90 +34b5836,b +34b5837,c0 +34b5838,a +34b5839,d0 +34b583a,1e +34b583b,80 +34b583c,5 +34b583d,e4 +34b583e,8e +34b583f,20 +34b5841,da +34b5842,cb +34b5845,9d +34b5846,e7 +34b5849,3e +34b584a,e0 +34b5868,e8 +34b586b,ac +34b586c,ca +34b586f,ca +34b5870,ac +34b5871,d +34b5872,b0 +34b5873,e7 +34b5874,6e +34b5875,3d +34b5876,d5 +34b5877,e2 +34b5878,e +34b5879,ab +34b587a,ca +34b587b,d0 +34b587c,c +34b587d,e7 +34b587e,9e +34b587f,b0 +34b5880,a +34b5881,e1 +34b5882,5f +34b5883,80 +34b58a0,3d +34b58a1,a0 +34b58a2,b +34b58a3,c0 +34b58a4,6 +34b58a5,e6 +34b58a6,9e +34b58a7,40 +34b58a9,9e +34b58aa,e7 +34b58ad,2e +34b58ae,d0 +34b58b1,cc +34b58b2,da +34b58b4,9 +34b58b5,e4 +34b58b6,6e +34b58b7,70 +34b58b8,6e +34b58b9,70 +34b58ba,9 +34b58bb,e4 +34b58d8,6e +34b58d9,50 +34b58da,5 +34b58db,e5 +34b58dc,d +34b58dd,a0 +34b58de,b +34b58df,d0 +34b58e0,9 +34b58e1,e0 +34b58e2,e +34b58e3,90 +34b58e4,3 +34b58e5,e7 +34b58e6,8e +34b58e7,30 +34b58e9,cc +34b58ea,cc +34b58ed,7e +34b58ee,e7 +34b58f1,d +34b58f2,e0 +34b58f5,d +34b58f6,a0 +34b58f9,8e +34b58fa,50 +34b58fc,d +34b58fd,ea +34b5910,b +34b5911,ff +34b5912,ff +34b5913,c0 +34b5916,5e +34b5917,70 +34b5919,3 +34b591a,d9 +34b591d,c +34b591e,b0 +34b5921,bd +34b5922,20 +34b5924,9 +34b5925,e4 +34b5928,d +34b5929,ff +34b592a,ff +34b592b,c0 +34b5939,6 +34b593a,de +34b593b,a0 +34b593d,b +34b593e,d3 +34b5941,c +34b5942,b0 +34b5945,c +34b5946,b0 +34b5949,5e +34b594a,a0 +34b594c,b +34b594d,fd +34b594e,20 +34b5951,7e +34b5952,90 +34b5955,d +34b5956,b0 +34b5959,c +34b595a,b0 +34b595d,c +34b595e,b0 +34b5961,b +34b5962,d4 +34b5965,5 +34b5966,de +34b5967,a0 +34b5971,c +34b5972,a0 +34b5975,c +34b5976,a0 +34b5979,c +34b597a,a0 +34b597d,c +34b597e,a0 +34b5981,c +34b5982,a0 +34b5985,c +34b5986,a0 +34b5989,c +34b598a,a0 +34b598d,c +34b598e,a0 +34b5991,c +34b5992,a0 +34b5995,c +34b5996,a0 +34b5999,c +34b599a,a0 +34b599d,c +34b599e,a0 +34b59a1,c +34b59a2,a0 +34b59a8,b +34b59a9,ed +34b59aa,30 +34b59ad,4e +34b59ae,90 +34b59b1,d +34b59b2,a0 +34b59b5,c +34b59b6,a0 +34b59b9,b +34b59ba,c4 +34b59bd,5 +34b59be,ef +34b59bf,a0 +34b59c1,b +34b59c2,d5 +34b59c5,c +34b59c6,b0 +34b59c9,d +34b59ca,a0 +34b59cd,d +34b59ce,a0 +34b59d1,5e +34b59d2,80 +34b59d4,b +34b59d5,ec +34b59d6,20 +34b59f8,5d +34b59f9,ed +34b59fa,83 +34b59fb,a7 +34b59fc,98 +34b59fd,38 +34b59fe,de +34b59ff,c3 diff --git a/data/symbols.json b/data/symbols.json index 2636a400d..fab371ca1 100644 --- a/data/symbols.json +++ b/data/symbols.json @@ -1,36 +1,36 @@ -{ - "ADULT_INIT_ITEMS": "03483644", - "ADULT_VALID_ITEMS": "03483650", - "COOP_GET_ITEM": "03481C01", - "EXTENDED_ITEM_DATA": "03482008", - "FAIRY_ITEMS": "03481D05", - "FAIRY_OCARINA_ITEM": "03481D04", - "FONT_TEXTURE": "034B4550", - "INITIAL_SAVE_DATA": "03481800", - "ITEM_OVERRIDES": "03481000", - "ITEM_TABLE": "03482050", - "LIGHT_ARROW_ITEM": "03481D03", - "PENDING_SPECIAL_ITEM": "03482018", - "PENDING_SPECIAL_ITEM_END": "0348201B", - "PLAYER_ID": "03481C00", - "PLAYER_NAMES": "03481C03", - "PLAYER_NAME_ID": "03481C02", - "PLAYER_OVERRIDE_DATA": "03482000", - "TIME_TRAVEL_SAVED_EQUIPS": "0348201C", - "cfg_dungeon_info_enable": "034B450C", - "cfg_dungeon_info_mq_enable": "034B4528", - "cfg_dungeon_info_mq_need_map": "034B4524", - "cfg_dungeon_info_reward_need_altar": "034B451C", - "cfg_dungeon_info_reward_need_compass": "034B4520", - "cfg_dungeon_is_mq": "034B4530", - "cfg_dungeon_rewards": "034B440C", - "dungeon_count": "034B4510", - "dungeons": "034B4430", - "font_sprite": "034B44CC", - "heap_next": "034B452C", - "medal_colors": "034B441C", - "medals_sprite": "034B44EC", - "quest_items_sprite": "034B44DC", - "setup_db": "034B4540", - "stones_sprite": "034B44FC" +{ + "ADULT_INIT_ITEMS": "03483664", + "ADULT_VALID_ITEMS": "03483670", + "COOP_GET_ITEM": "03481C01", + "EXTENDED_ITEM_DATA": "03482008", + "FAIRY_ITEMS": "03481D05", + "FAIRY_OCARINA_ITEM": "03481D04", + "FONT_TEXTURE": "034B4550", + "INITIAL_SAVE_DATA": "03481800", + "ITEM_OVERRIDES": "03481000", + "ITEM_TABLE": "03482050", + "LIGHT_ARROW_ITEM": "03481D03", + "PENDING_SPECIAL_ITEM": "03482018", + "PENDING_SPECIAL_ITEM_END": "0348201B", + "PLAYER_ID": "03481C00", + "PLAYER_NAMES": "03481C03", + "PLAYER_NAME_ID": "03481C02", + "PLAYER_OVERRIDE_DATA": "03482000", + "TIME_TRAVEL_SAVED_EQUIPS": "0348201C", + "cfg_dungeon_info_enable": "034B450C", + "cfg_dungeon_info_mq_enable": "034B4528", + "cfg_dungeon_info_mq_need_map": "034B4524", + "cfg_dungeon_info_reward_need_altar": "034B451C", + "cfg_dungeon_info_reward_need_compass": "034B4520", + "cfg_dungeon_is_mq": "034B4530", + "cfg_dungeon_rewards": "034B440C", + "dungeon_count": "034B4510", + "dungeons": "034B4430", + "font_sprite": "034B44CC", + "heap_next": "034B452C", + "medal_colors": "034B441C", + "medals_sprite": "034B44EC", + "quest_items_sprite": "034B44DC", + "setup_db": "034B4540", + "stones_sprite": "034B44FC" } \ No newline at end of file From f4d2b87b2321a684d6897875207a4eaf1f593785 Mon Sep 17 00:00:00 2001 From: mzxrules Date: Fri, 12 Oct 2018 00:44:46 -0400 Subject: [PATCH 682/755] time_travel.asm tabs --- ASM/src/time_travel.asm | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/ASM/src/time_travel.asm b/ASM/src/time_travel.asm index 2fc9d86ef..11367ad89 100644 --- a/ASM/src/time_travel.asm +++ b/ASM/src/time_travel.asm @@ -1,12 +1,12 @@ -give_master_sword: ; Puts MS in Equipment Only +give_master_sword: ; Puts MS in Equipment Only li t0, SAVE_CONTEXT - lh t1, 0x9C(t0) ; Equipment - ori t2, t1, 2 ; Master Sword flag - jr ra - sh t2, 0x9C(t0) + lh t1, 0x9C(t0) ; Equipment + ori t2, t1, 2 ; Master Sword flag + jr ra + sh t2, 0x9C(t0) before_time_travel: - li a1, SAVE_CONTEXT ; required by overwritten code + li a1, SAVE_CONTEXT ; required by overwritten code li t0, TIME_TRAVEL_SAVED_EQUIPS ; B and C buttons @@ -22,8 +22,8 @@ before_time_travel: lhu t1, 0x9C (a1) sh t1, 0x0A (t0) - j 0x06F80C ; Swap Link Ages - nop + j 0x06F80C ; Swap Link Ages + nop ;================================================================================================== From bbbed6daf9b28c555eb0e1c14f99afde665bf6a8 Mon Sep 17 00:00:00 2001 From: Nick Langille Date: Fri, 12 Oct 2018 00:49:59 -0400 Subject: [PATCH 683/755] Fix indentation inconsistencies --- ASM/src/hacks.asm | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/ASM/src/hacks.asm b/ASM/src/hacks.asm index a9e8c99d8..766b10555 100755 --- a/ASM/src/hacks.asm +++ b/ASM/src/hacks.asm @@ -313,19 +313,19 @@ ;================================================================================================== ; Replaces: -; lw t5, 0x8AA0(t5) +; lw t5, 0x8AA0(t5) .org 0xAE5DF0 ; In memory: 8006FE90 - jal suns_song_fix + jal suns_song_fix ; Replaces: -; addu at, at, s3 +; addu at, at, s3 .org 0xB54E5C ; In memory: 800DEEFC - jal suns_song_fix_event + jal suns_song_fix_event ; Replaces: -; addu at, at, s3 +; addu at, at, s3 .org 0xB54B38 ; In memory: 800DEBD8 - jal warp_song_fix + jal warp_song_fix ;================================================================================================== ; Initial save @@ -508,9 +508,9 @@ ;================================================================================================== ; Replaces: -; jal 0x80057030 ; copies Scarecrow Song from active space to save context +; jal 0x80057030 ; copies Scarecrow Song from active space to save context .org 0xB55A64 ; In memory 800DFB04 - jal save_scarecrow_song + jal save_scarecrow_song ;================================================================================================== ; Override Player Name Text From 3e9c49d3398a611f26058a6127a9787546fe2ec9 Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 12 Oct 2018 01:17:05 -0400 Subject: [PATCH 684/755] Fix read_int16 and read_int32 to use last_address if address is None --- ASM/build/asm_symbols.txt | 2176 +++--- ASM/build/bundle.o | Bin 11068 -> 11068 bytes ASM/build/c_symbols.txt | 134 +- Rom.py | 6 + data/rom_patch.txt | 13264 ++++++++++++++++++------------------ data/symbols.json | 34 +- version.py | 2 +- 7 files changed, 7810 insertions(+), 7806 deletions(-) diff --git a/ASM/build/asm_symbols.txt b/ASM/build/asm_symbols.txt index 4c9c16dd2..eac7db242 100644 --- a/ASM/build/asm_symbols.txt +++ b/ASM/build/asm_symbols.txt @@ -1,1089 +1,1089 @@ -00000000 0 -00000000 .byt:4000000 -00000010 .dbl:0008 -00000010 ITEM_TABLE_ROW_SIZE -000005B4 Shop_Item_Save_Offset -0000D260 .dbl:0010 -0000D270 .dbl:0010 -008A9C00 .byt:0400 -00B529A0 skip_GS_BGS_text -00BAF750 .byt:0048 -00D74990 skip_steal_tunic -00D7E178 @@not_in_ranch -00D7E18C @@return -00D7E18C return_from_the_other_function -00D7E3AC @@hyrule_check -00D7E3CC @@lon_lon_check -00D7E3F4 @@return_false -00D7E7A4 @@set_ev0 -00D7E7B8 set_ev1 -00D7E8A8 @@unsafe -00D7E8C0 @@safe -00D7E8D4 @@not_hyrule -00D7E920 ev0_return -00DB13D3 .byt:0001 -00DF264F .byt:0001 -00E2F093 .byt:0001 -00EBB8B0 @Deku_Check_True -00EBB8C0 @Deku_Check_False -00EC68D0 .byt:0014 -00EC69C0 .byt:0014 -00EC9CE7 .byt:0001 -8011A5D0 SAVE_CONTEXT -801C84A0 GLOBAL_CONTEXT -801DAA30 PLAYER_ACTOR -803A9E7E GET_ITEMTABLE -80400000 init -80400050 DebugOutput -80401000 .byt:0800 -80401000 ITEM_OVERRIDES -80401800 .byt:0400 -80401800 INITIAL_SAVE_DATA -80401C00 .byt:0001 -80401C00 PLAYER_ID -80401C01 .byt:0001 -80401C01 COOP_GET_ITEM -80401C02 .byt:0001 -80401C02 PLAYER_NAME_ID -80401C03 .byt:0100 -80401C03 PLAYER_NAMES -80401D03 .byt:0001 -80401D03 LIGHT_ARROW_ITEM -80401D04 .byt:0001 -80401D04 FAIRY_OCARINA_ITEM -80401D05 .byt:0001 -80401D05 FAIRY_ITEMS -80401D06 .byt:0001 -80401D07 .byt:0001 -80401D08 .byt:0001 -80401D09 .byt:0001 -80401D0A .byt:0001 -80401D0C .byt:02F4 -80402000 .dbl:0008 -80402000 PLAYER_OVERRIDE_DATA -80402008 .dbl:0010 -80402008 EXTENDED_ITEM_DATA -80402018 .byt:0001 -80402018 PENDING_SPECIAL_ITEM -80402019 .byt:0001 -8040201A .byt:0001 -8040201B .byt:0001 -8040201B PENDING_SPECIAL_ITEM_END -8040201C .dbl:0004 -8040201C TIME_TRAVEL_SAVED_EQUIPS -80402020 .dbl:0004 -80402024 .wrd:0002 -80402026 .wrd:0002 -80402028 .byt:0028 -80402050 .byt:0001 -80402050 ITEM_TABLE -80402051 .byt:0001 -80402052 .byt:0001 -80402053 .byt:0001 -80402054 .wrd:0002 -80402056 .byt:0001 -80402057 .byt:0001 -80402058 .dbl:0004 -8040205C .dbl:0004 -80402060 .byt:0001 -80402061 .byt:0001 -80402062 .byt:0001 -80402063 .byt:0001 -80402064 .wrd:0002 -80402066 .byt:0001 -80402067 .byt:0001 -80402068 .dbl:0004 -8040206C .dbl:0004 -80402070 .byt:0001 -80402071 .byt:0001 -80402072 .byt:0001 -80402073 .byt:0001 -80402074 .wrd:0002 -80402076 .byt:0001 -80402077 .byt:0001 -80402078 .dbl:0004 -8040207C .dbl:0004 -80402080 .byt:0001 -80402081 .byt:0001 -80402082 .byt:0001 -80402083 .byt:0001 -80402084 .wrd:0002 -80402086 .byt:0001 -80402087 .byt:0001 -80402088 .dbl:0004 -8040208C .dbl:0004 -80402090 .byt:0001 -80402091 .byt:0001 -80402092 .byt:0001 -80402093 .byt:0001 -80402094 .wrd:0002 -80402096 .byt:0001 -80402097 .byt:0001 -80402098 .dbl:0004 -8040209C .dbl:0004 -804020A0 .byt:0001 -804020A1 .byt:0001 -804020A2 .byt:0001 -804020A3 .byt:0001 -804020A4 .wrd:0002 -804020A6 .byt:0001 -804020A7 .byt:0001 -804020A8 .dbl:0004 -804020AC .dbl:0004 -804020B0 .byt:0001 -804020B1 .byt:0001 -804020B2 .byt:0001 -804020B3 .byt:0001 -804020B4 .wrd:0002 -804020B6 .byt:0001 -804020B7 .byt:0001 -804020B8 .dbl:0004 -804020BC .dbl:0004 -804020C0 .byt:0001 -804020C1 .byt:0001 -804020C2 .byt:0001 -804020C3 .byt:0001 -804020C4 .wrd:0002 -804020C6 .byt:0001 -804020C7 .byt:0001 -804020C8 .dbl:0004 -804020CC .dbl:0004 -804020D0 .byt:0001 -804020D1 .byt:0001 -804020D2 .byt:0001 -804020D3 .byt:0001 -804020D4 .wrd:0002 -804020D6 .byt:0001 -804020D7 .byt:0001 -804020D8 .dbl:0004 -804020DC .dbl:0004 -804020E0 .byt:0001 -804020E1 .byt:0001 -804020E2 .byt:0001 -804020E3 .byt:0001 -804020E4 .wrd:0002 -804020E6 .byt:0001 -804020E7 .byt:0001 -804020E8 .dbl:0004 -804020EC .dbl:0004 -804020F0 .byt:0001 -804020F1 .byt:0001 -804020F2 .byt:0001 -804020F3 .byt:0001 -804020F4 .wrd:0002 -804020F6 .byt:0001 -804020F7 .byt:0001 -804020F8 .dbl:0004 -804020FC .dbl:0004 -80402100 .byt:0001 -80402101 .byt:0001 -80402102 .byt:0001 -80402103 .byt:0001 -80402104 .wrd:0002 -80402106 .byt:0001 -80402107 .byt:0001 -80402108 .dbl:0004 -8040210C .dbl:0004 -80402110 .byt:0001 -80402111 .byt:0001 -80402112 .byt:0001 -80402113 .byt:0001 -80402114 .wrd:0002 -80402116 .byt:0001 -80402117 .byt:0001 -80402118 .dbl:0004 -8040211C .dbl:0004 -80402120 .byt:0001 -80402121 .byt:0001 -80402122 .byt:0001 -80402123 .byt:0001 -80402124 .wrd:0002 -80402126 .byt:0001 -80402127 .byt:0001 -80402128 .dbl:0004 -8040212C .dbl:0004 -80402130 .byt:0001 -80402131 .byt:0001 -80402132 .byt:0001 -80402133 .byt:0001 -80402134 .wrd:0002 -80402136 .byt:0001 -80402137 .byt:0001 -80402138 .dbl:0004 -8040213C .dbl:0004 -80402140 .byt:0001 -80402141 .byt:0001 -80402142 .byt:0001 -80402143 .byt:0001 -80402144 .wrd:0002 -80402146 .byt:0001 -80402147 .byt:0001 -80402148 .dbl:0004 -8040214C .dbl:0004 -80402150 .byt:0001 -80402151 .byt:0001 -80402152 .byt:0001 -80402153 .byt:0001 -80402154 .wrd:0002 -80402156 .byt:0001 -80402157 .byt:0001 -80402158 .dbl:0004 -8040215C .dbl:0004 -80402160 .byt:0001 -80402161 .byt:0001 -80402162 .byt:0001 -80402163 .byt:0001 -80402164 .wrd:0002 -80402166 .byt:0001 -80402167 .byt:0001 -80402168 .dbl:0004 -8040216C .dbl:0004 -80402170 .byt:0001 -80402171 .byt:0001 -80402172 .byt:0001 -80402173 .byt:0001 -80402174 .wrd:0002 -80402176 .byt:0001 -80402177 .byt:0001 -80402178 .dbl:0004 -8040217C .dbl:0004 -80402180 .byt:0001 -80402181 .byt:0001 -80402182 .byt:0001 -80402183 .byt:0001 -80402184 .wrd:0002 -80402186 .byt:0001 -80402187 .byt:0001 -80402188 .dbl:0004 -8040218C .dbl:0004 -80402190 .byt:0001 -80402191 .byt:0001 -80402192 .byt:0001 -80402193 .byt:0001 -80402194 .wrd:0002 -80402196 .byt:0001 -80402197 .byt:0001 -80402198 .dbl:0004 -8040219C .dbl:0004 -804021A0 .byt:0001 -804021A1 .byt:0001 -804021A2 .byt:0001 -804021A3 .byt:0001 -804021A4 .wrd:0002 -804021A6 .byt:0001 -804021A7 .byt:0001 -804021A8 .dbl:0004 -804021AC .dbl:0004 -804021B0 .byt:0001 -804021B1 .byt:0001 -804021B2 .byt:0001 -804021B3 .byt:0001 -804021B4 .wrd:0002 -804021B6 .byt:0001 -804021B7 .byt:0001 -804021B8 .dbl:0004 -804021BC .dbl:0004 -804021C0 .byt:0001 -804021C1 .byt:0001 -804021C2 .byt:0001 -804021C3 .byt:0001 -804021C4 .wrd:0002 -804021C6 .byt:0001 -804021C7 .byt:0001 -804021C8 .dbl:0004 -804021CC .dbl:0004 -804021D0 .byt:0001 -804021D1 .byt:0001 -804021D2 .byt:0001 -804021D3 .byt:0001 -804021D4 .wrd:0002 -804021D6 .byt:0001 -804021D7 .byt:0001 -804021D8 .dbl:0004 -804021DC .dbl:0004 -804021E0 .byt:0001 -804021E1 .byt:0001 -804021E2 .byt:0001 -804021E3 .byt:0001 -804021E4 .wrd:0002 -804021E6 .byt:0001 -804021E7 .byt:0001 -804021E8 .dbl:0004 -804021EC .dbl:0004 -804021F0 .byt:0001 -804021F1 .byt:0001 -804021F2 .byt:0001 -804021F3 .byt:0001 -804021F4 .wrd:0002 -804021F6 .byt:0001 -804021F7 .byt:0001 -804021F8 .dbl:0004 -804021FC .dbl:0004 -80402200 .byt:0001 -80402201 .byt:0001 -80402202 .byt:0001 -80402203 .byt:0001 -80402204 .wrd:0002 -80402206 .byt:0001 -80402207 .byt:0001 -80402208 .dbl:0004 -8040220C .dbl:0004 -80402210 .byt:0001 -80402211 .byt:0001 -80402212 .byt:0001 -80402213 .byt:0001 -80402214 .wrd:0002 -80402216 .byt:0001 -80402217 .byt:0001 -80402218 .dbl:0004 -8040221C .dbl:0004 -80402220 .byt:0001 -80402221 .byt:0001 -80402222 .byt:0001 -80402223 .byt:0001 -80402224 .wrd:0002 -80402226 .byt:0001 -80402227 .byt:0001 -80402228 .dbl:0004 -8040222C .dbl:0004 -80402230 .byt:0001 -80402231 .byt:0001 -80402232 .byt:0001 -80402233 .byt:0001 -80402234 .wrd:0002 -80402236 .byt:0001 -80402237 .byt:0001 -80402238 .dbl:0004 -8040223C .dbl:0004 -80402240 .byt:0001 -80402241 .byt:0001 -80402242 .byt:0001 -80402243 .byt:0001 -80402244 .wrd:0002 -80402246 .byt:0001 -80402247 .byt:0001 -80402248 .dbl:0004 -8040224C .dbl:0004 -80402250 .byt:0001 -80402251 .byt:0001 -80402252 .byt:0001 -80402253 .byt:0001 -80402254 .wrd:0002 -80402256 .byt:0001 -80402257 .byt:0001 -80402258 .dbl:0004 -8040225C .dbl:0004 -80402260 .byt:0001 -80402261 .byt:0001 -80402262 .byt:0001 -80402263 .byt:0001 -80402264 .wrd:0002 -80402266 .byt:0001 -80402267 .byt:0001 -80402268 .dbl:0004 -8040226C .dbl:0004 -80402270 .byt:0001 -80402271 .byt:0001 -80402272 .byt:0001 -80402273 .byt:0001 -80402274 .wrd:0002 -80402276 .byt:0001 -80402277 .byt:0001 -80402278 .dbl:0004 -8040227C .dbl:0004 -80402280 .byt:0001 -80402281 .byt:0001 -80402282 .byt:0001 -80402283 .byt:0001 -80402284 .wrd:0002 -80402286 .byt:0001 -80402287 .byt:0001 -80402288 .dbl:0004 -8040228C .dbl:0004 -80402290 .byt:0001 -80402291 .byt:0001 -80402292 .byt:0001 -80402293 .byt:0001 -80402294 .wrd:0002 -80402296 .byt:0001 -80402297 .byt:0001 -80402298 .dbl:0004 -8040229C .dbl:0004 -804022A0 .byt:0001 -804022A1 .byt:0001 -804022A2 .byt:0001 -804022A3 .byt:0001 -804022A4 .wrd:0002 -804022A6 .byt:0001 -804022A7 .byt:0001 -804022A8 .dbl:0004 -804022AC .dbl:0004 -804022B0 .byt:0001 -804022B1 .byt:0001 -804022B2 .byt:0001 -804022B3 .byt:0001 -804022B4 .wrd:0002 -804022B6 .byt:0001 -804022B7 .byt:0001 -804022B8 .dbl:0004 -804022BC .dbl:0004 -804022C0 .byt:0001 -804022C1 .byt:0001 -804022C2 .byt:0001 -804022C3 .byt:0001 -804022C4 .wrd:0002 -804022C6 .byt:0001 -804022C7 .byt:0001 -804022C8 .dbl:0004 -804022CC .dbl:0004 -804022D0 .byt:0001 -804022D1 .byt:0001 -804022D2 .byt:0001 -804022D3 .byt:0001 -804022D4 .wrd:0002 -804022D6 .byt:0001 -804022D7 .byt:0001 -804022D8 .dbl:0004 -804022DC .dbl:0004 -804022E0 .byt:0001 -804022E1 .byt:0001 -804022E2 .byt:0001 -804022E3 .byt:0001 -804022E4 .wrd:0002 -804022E6 .byt:0001 -804022E7 .byt:0001 -804022E8 .dbl:0004 -804022EC .dbl:0004 -804022F0 .byt:0001 -804022F1 .byt:0001 -804022F2 .byt:0001 -804022F3 .byt:0001 -804022F4 .wrd:0002 -804022F6 .byt:0001 -804022F7 .byt:0001 -804022F8 .dbl:0004 -804022FC .dbl:0004 -80402300 .byt:0001 -80402301 .byt:0001 -80402302 .byt:0001 -80402303 .byt:0001 -80402304 .wrd:0002 -80402306 .byt:0001 -80402307 .byt:0001 -80402308 .dbl:0004 -8040230C .dbl:0004 -80402310 .byt:0001 -80402311 .byt:0001 -80402312 .byt:0001 -80402313 .byt:0001 -80402314 .wrd:0002 -80402316 .byt:0001 -80402317 .byt:0001 -80402318 .dbl:0004 -8040231C .dbl:0004 -80402320 .byt:0001 -80402321 .byt:0001 -80402322 .byt:0001 -80402323 .byt:0001 -80402324 .wrd:0002 -80402326 .byt:0001 -80402327 .byt:0001 -80402328 .dbl:0004 -8040232C .dbl:0004 -80402330 .byt:0001 -80402331 .byt:0001 -80402332 .byt:0001 -80402333 .byt:0001 -80402334 .wrd:0002 -80402336 .byt:0001 -80402337 .byt:0001 -80402338 .dbl:0004 -8040233C .dbl:0004 -80402340 .byt:0001 -80402341 .byt:0001 -80402342 .byt:0001 -80402343 .byt:0001 -80402344 .wrd:0002 -80402346 .byt:0001 -80402347 .byt:0001 -80402348 .dbl:0004 -8040234C .dbl:0004 -80402350 .byt:0001 -80402351 .byt:0001 -80402352 .byt:0001 -80402353 .byt:0001 -80402354 .wrd:0002 -80402356 .byt:0001 -80402357 .byt:0001 -80402358 .dbl:0004 -8040235C .dbl:0004 -80402360 .byt:0001 -80402361 .byt:0001 -80402362 .byt:0001 -80402363 .byt:0001 -80402364 .wrd:0002 -80402366 .byt:0001 -80402367 .byt:0001 -80402368 .dbl:0004 -8040236C .dbl:0004 -80402370 .byt:0001 -80402371 .byt:0001 -80402372 .byt:0001 -80402373 .byt:0001 -80402374 .wrd:0002 -80402376 .byt:0001 -80402377 .byt:0001 -80402378 .dbl:0004 -8040237C .dbl:0004 -80402380 .byt:0001 -80402381 .byt:0001 -80402382 .byt:0001 -80402383 .byt:0001 -80402384 .wrd:0002 -80402386 .byt:0001 -80402387 .byt:0001 -80402388 .dbl:0004 -8040238C .dbl:0004 -80402390 .byt:0001 -80402391 .byt:0001 -80402392 .byt:0001 -80402393 .byt:0001 -80402394 .wrd:0002 -80402396 .byt:0001 -80402397 .byt:0001 -80402398 .dbl:0004 -8040239C .dbl:0004 -804023A0 .byt:0001 -804023A1 .byt:0001 -804023A2 .byt:0001 -804023A3 .byt:0001 -804023A4 .wrd:0002 -804023A6 .byt:0001 -804023A7 .byt:0001 -804023A8 .dbl:0004 -804023AC .dbl:0004 -804023B0 .byt:0001 -804023B1 .byt:0001 -804023B2 .byt:0001 -804023B3 .byt:0001 -804023B4 .wrd:0002 -804023B6 .byt:0001 -804023B7 .byt:0001 -804023B8 .dbl:0004 -804023BC .dbl:0004 -804023C0 .byt:0001 -804023C1 .byt:0001 -804023C2 .byt:0001 -804023C3 .byt:0001 -804023C4 .wrd:0002 -804023C6 .byt:0001 -804023C7 .byt:0001 -804023C8 .dbl:0004 -804023CC .dbl:0004 -804023D0 .byt:0001 -804023D1 .byt:0001 -804023D2 .byt:0001 -804023D3 .byt:0001 -804023D4 .wrd:0002 -804023D6 .byt:0001 -804023D7 .byt:0001 -804023D8 .dbl:0004 -804023DC .dbl:0004 -804023E0 .byt:0001 -804023E1 .byt:0001 -804023E2 .byt:0001 -804023E3 .byt:0001 -804023E4 .wrd:0002 -804023E6 .byt:0001 -804023E7 .byt:0001 -804023E8 .dbl:0004 -804023EC .dbl:0004 -804023F0 .byt:0001 -804023F1 .byt:0001 -804023F2 .byt:0001 -804023F3 .byt:0001 -804023F4 .wrd:0002 -804023F6 .byt:0001 -804023F7 .byt:0001 -804023F8 .dbl:0004 -804023FC .dbl:0004 -80402400 .byt:0001 -80402401 .byt:0001 -80402402 .byt:0001 -80402403 .byt:0001 -80402404 .wrd:0002 -80402406 .byt:0001 -80402407 .byt:0001 -80402408 .dbl:0004 -8040240C .dbl:0004 -80402410 .byt:0001 -80402411 .byt:0001 -80402412 .byt:0001 -80402413 .byt:0001 -80402414 .wrd:0002 -80402416 .byt:0001 -80402417 .byt:0001 -80402418 .dbl:0004 -8040241C .dbl:0004 -80402420 .byt:0001 -80402421 .byt:0001 -80402422 .byt:0001 -80402423 .byt:0001 -80402424 .wrd:0002 -80402426 .byt:0001 -80402427 .byt:0001 -80402428 .dbl:0004 -8040242C .dbl:0004 -80402430 .byt:0001 -80402431 .byt:0001 -80402432 .byt:0001 -80402433 .byt:0001 -80402434 .wrd:0002 -80402436 .byt:0001 -80402437 .byt:0001 -80402438 .dbl:0004 -8040243C .dbl:0004 -80402440 .byt:0001 -80402441 .byt:0001 -80402442 .byt:0001 -80402443 .byt:0001 -80402444 .wrd:0002 -80402446 .byt:0001 -80402447 .byt:0001 -80402448 .dbl:0004 -8040244C .dbl:0004 -80402450 .byt:0001 -80402451 .byt:0001 -80402452 .byt:0001 -80402453 .byt:0001 -80402454 .wrd:0002 -80402456 .byt:0001 -80402457 .byt:0001 -80402458 .dbl:0004 -8040245C .dbl:0004 -80402460 .byt:0001 -80402461 .byt:0001 -80402462 .byt:0001 -80402463 .byt:0001 -80402464 .wrd:0002 -80402466 .byt:0001 -80402467 .byt:0001 -80402468 .dbl:0004 -8040246C .dbl:0004 -80402470 .byt:0001 -80402471 .byt:0001 -80402472 .byt:0001 -80402473 .byt:0001 -80402474 .wrd:0002 -80402476 .byt:0001 -80402477 .byt:0001 -80402478 .dbl:0004 -8040247C .dbl:0004 -80402480 .byt:0001 -80402481 .byt:0001 -80402482 .byt:0001 -80402483 .byt:0001 -80402484 .wrd:0002 -80402486 .byt:0001 -80402487 .byt:0001 -80402488 .dbl:0004 -8040248C .dbl:0004 -80402490 .byt:0001 -80402491 .byt:0001 -80402492 .byt:0001 -80402493 .byt:0001 -80402494 .wrd:0002 -80402496 .byt:0001 -80402497 .byt:0001 -80402498 .dbl:0004 -8040249C .dbl:0004 -804024A0 .byt:0001 -804024A1 .byt:0001 -804024A2 .byt:0001 -804024A3 .byt:0001 -804024A4 .wrd:0002 -804024A6 .byt:0001 -804024A7 .byt:0001 -804024A8 .dbl:0004 -804024AC .dbl:0004 -804024B0 .byt:0001 -804024B1 .byt:0001 -804024B2 .byt:0001 -804024B3 .byt:0001 -804024B4 .wrd:0002 -804024B6 .byt:0001 -804024B7 .byt:0001 -804024B8 .dbl:0004 -804024BC .dbl:0004 -804024C0 .byt:0001 -804024C1 .byt:0001 -804024C2 .byt:0001 -804024C3 .byt:0001 -804024C4 .wrd:0002 -804024C6 .byt:0001 -804024C7 .byt:0001 -804024C8 .dbl:0004 -804024CC .dbl:0004 -804024D0 .byt:0001 -804024D1 .byt:0001 -804024D2 .byt:0001 -804024D3 .byt:0001 -804024D4 .wrd:0002 -804024D6 .byt:0001 -804024D7 .byt:0001 -804024D8 .dbl:0004 -804024DC .dbl:0004 -804024E0 .byt:0001 -804024E1 .byt:0001 -804024E2 .byt:0001 -804024E3 .byt:0001 -804024E4 .wrd:0002 -804024E6 .byt:0001 -804024E7 .byt:0001 -804024E8 .dbl:0004 -804024EC .dbl:0004 -804024F0 .byt:0001 -804024F1 .byt:0001 -804024F2 .byt:0001 -804024F3 .byt:0001 -804024F4 .wrd:0002 -804024F6 .byt:0001 -804024F7 .byt:0001 -804024F8 .dbl:0004 -804024FC .dbl:0004 -80402500 .byt:0001 -80402501 .byt:0001 -80402502 .byt:0001 -80402503 .byt:0001 -80402504 .wrd:0002 -80402506 .byt:0001 -80402507 .byt:0001 -80402508 .dbl:0004 -8040250C .dbl:0004 -80402510 .byt:0001 -80402511 .byt:0001 -80402512 .byt:0001 -80402513 .byt:0001 -80402514 .wrd:0002 -80402516 .byt:0001 -80402517 .byt:0001 -80402518 .dbl:0004 -8040251C .dbl:0004 -80402520 .byt:0001 -80402521 .byt:0001 -80402522 .byt:0001 -80402523 .byt:0001 -80402524 .wrd:0002 -80402526 .byt:0001 -80402527 .byt:0001 -80402528 .dbl:0004 -8040252C .dbl:0004 -80402530 .byt:0001 -80402531 .byt:0001 -80402532 .byt:0001 -80402533 .byt:0001 -80402534 .wrd:0002 -80402536 .byt:0001 -80402537 .byt:0001 -80402538 .dbl:0004 -8040253C .dbl:0004 -80402540 .byt:0001 -80402541 .byt:0001 -80402542 .byt:0001 -80402543 .byt:0001 -80402544 .wrd:0002 -80402546 .byt:0001 -80402547 .byt:0001 -80402548 .dbl:0004 -8040254C .dbl:0004 -80402550 .byt:0001 -80402551 .byt:0001 -80402552 .byt:0001 -80402553 .byt:0001 -80402554 .wrd:0002 -80402556 .byt:0001 -80402557 .byt:0001 -80402558 .dbl:0004 -8040255C .dbl:0004 -80402560 .byt:0001 -80402561 .byt:0001 -80402562 .byt:0001 -80402563 .byt:0001 -80402564 .wrd:0002 -80402566 .byt:0001 -80402567 .byt:0001 -80402568 .dbl:0004 -8040256C .dbl:0004 -80402570 no_upgrade -80402578 hookshot_upgrade -8040258C @@return -80402594 strength_upgrade -804025B4 @@return -804025BC bomb_bag_upgrade -804025DC @@return -804025E4 bow_upgrade -80402604 @@return -8040260C slingshot_upgrade -8040262C @@return -80402634 wallet_upgrade -80402654 @@return -8040265C tycoon_wallet -80402670 scale_upgrade -80402684 @@return -8040268C nut_upgrade -804026A0 @@return -804026A8 stick_upgrade -804026BC @@return -804026C4 magic_upgrade -804026D4 @@return -804026DC arrows_to_rupee -804026F0 @@return -804026F8 bombs_to_rupee -8040270C @@return -80402714 seeds_to_rupee -80402728 @@return -80402730 no_effect -80402738 give_biggoron_sword -80402748 give_bottle -80402750 @@loop -8040277C @@return -80402784 give_dungeon_item -804027A0 give_small_key -804027B8 @not_negative -804027C8 give_defense -804027E8 give_magic -80402808 double_magic -80402830 bombchu_upgrade -80402854 @@return -8040285C ocarina_upgrade -80402870 @@return -80402878 give_fairy_ocarina -80402888 give_song -804028A4 inventory_check -80402910 @@return -80402918 override_skulltula_token -80402938 @@in_table -8040297C @@extended_effect -804029B0 @@not_extended -804029F8 @@item_effect -80402A04 @@return -80402A18 override_object_npc -80402A28 override_object_chest -80402A38 override_object -80402A50 @@return -80402A94 @@no_count_inc -80402A98 @@no_pending_clear -80402AA0 override_graphic -80402AB8 @@return -80402AD0 override_text -80402AEC @@return -80402AF4 override_action -80402B1C @@no_player_override -80402B78 @@return -80402B80 store_item_data_hook -80402BB4 store_item_data -80402C48 @@update_base_game -80402C78 @@not_chest -80402C88 @@not_negative -80402C8C @@return -80402C9C lookup_override -80402CC4 @@return -80402CD4 get_override_search_key -80402D14 @@not_skulltula -80402D4C @@valid_chest -80402D54 @@not_chest -80402D84 @@valid_collectable -80402D8C @@not_collectable -80402DB4 @@not_grotto_deku_scrub -80402DC4 @@return -80402DCC scan_override_table -80402E10 @@not_coop_item -80402E18 @@lookup_loop -80402E4C @@lookup_item_found -80402E80 @@return -80402E88 resolve_extended_item -80402E9C @@loop -80402EF0 @@not_extended -80402EF4 @@return -80402F0C override_great_fairy_cutscene -80402F64 @@item_fairy -80402F84 @@give_item -80402FB0 @@return -80402FB8 override_light_arrow_cutscene -80402FCC override_fairy_ocarina_cutscene -80402FE0 override_ocarina_songs -80402FF4 override_requiem_song -80403000 override_epona_song -80403020 override_suns_song -80403040 override_song_of_time -80403050 store_pending_special_item -80403060 @@find_duplicate_loop -8040307C @@find_empty_loop -80403094 @@return -8040309C override_saria_song_check -804030B8 @@get_item -804030C0 set_saria_song_flag -804030E0 set_dungeon_knowledge -8040310C @@set_flag -80403124 Shop_Check_Sold_Out -80403170 @@return -80403178 Shop_Set_Sold_Out -804031B0 @@return -804031B8 Shop_Keeper_Init_ID -804031D4 @@return -804031E4 Deku_Check_Sold_Out -80403208 @@continue -80403238 Deku_Set_Sold_Out -8040325C @@continue -80403290 before_game_state_update -804032E0 @@loop -80403338 @@no_pending_item -8040334C after_game_state_update -80403370 item_menu_description_id_periodic -80403384 @@item_menu_description_id_return_00000000 -8040338C item_menu_description_id_immediate_1 -804033A0 @@item_menu_description_id_return_00000001 -804033A8 item_menu_description_id_immediate_2 -804033BC @@item_menu_description_id_return_00000002 -804033C4 item_menu_description_id_immediate_3 -804033D8 @@item_menu_description_id_return_00000003 -804033E0 before_time_travel -80403410 after_time_travel -8040344C @@going_back -80403454 @@done -80403484 update_c_button -804034B0 @@return -804034B8 after_going_forward -804034F4 @@no_init -80403504 after_going_back -80403534 @@not_swordless -8040353C initialize_adult -80403564 @@no_mirror_shield -804035A4 init_adult_button -804035D0 @@empty -804035D8 @@loop -80403630 @@set_empty -8040363C @@return -80403644 .byt:0001 -80403644 ADULT_INIT_ITEMS -80403645 .byt:0001 -80403646 .byt:0001 -80403647 .byt:0001 -80403648 .byt:0001 -80403649 .byt:0001 -8040364A .byt:0001 -8040364B .byt:0001 -8040364C .byt:0001 -80403650 .byt:0001 -80403650 ADULT_VALID_ITEMS -80403651 .byt:0001 -80403652 .byt:0001 -80403653 .byt:0001 -80403654 .byt:0001 -80403655 .byt:0001 -80403656 .byt:0001 -80403657 .byt:0001 -80403658 .byt:0001 -80403659 .byt:0001 -8040365A .byt:0001 -8040365B .byt:0001 -8040365C .byt:0001 -8040365D .byt:0001 -8040365E .byt:0001 -8040365F .byt:0001 -80403660 .byt:0001 -80403661 .byt:0001 -80403662 .byt:0001 -80403663 .byt:0001 -80403664 .byt:0001 -80403665 .byt:0001 -80403666 .byt:0001 -80403667 .byt:0001 -80403668 suns_song_fix_event -8040369C @@child -804036AC @@return -804036B4 suns_song_fix -804036C8 @@check_suns_status -804036E4 @@disable_suns -804036EC @@return -804036F4 warp_song_fix -80403720 @@child -80403730 @@return -80403738 Check_Has_Epona_Song -80403784 @@return -8040378C save_scarecrow_song -804037D0 @@copy_song -804037D8 write_initial_save -804037E4 @@save_data_loop -80403814 @@overwrite_type -8040381C @@return -80403824 get_name_char_1 -80403840 get_name_char_2 -8040385C get_name_char -80403888 @@coop_player_name -804038A0 @@return -804038A8 reset_player_name_id -804038C8 .byt:0788 -80405000 draw_file_select_hash,00000234 -80405234 disp_buf_init,00000018 -8040524C sprite_bytes_per_tile,00000028 -80405274 sprite_bytes,00000030 -804052A4 sprite_load,000001A0 -80405444 sprite_draw,000000F0 -80405534 draw_setup,000001DC -80405710 gfx_init,00000178 -80405888 heap_init,00000014 -8040589C heap_alloc,00000034 -804058D0 file_init,00000044 -80405914 c_init,0000002C -80405940 c_after_game_state_update,00000088 -804059C8 draw_dungeon_info,000009B8 -80406380 text_init,0000002C -804063AC text_print,000000A8 -80406454 text_flush,00000148 -804065A8 .byt:0040 -804065A8 hash_symbols -804065E8 .byt:0010 -804065E8 font_sprite -804065F8 .byt:0010 -804065F8 quest_items_sprite -80406608 .byt:0010 -80406608 items_sprite -80406618 .byt:0010 -80406618 medals_sprite -80406628 .byt:0010 -80406628 stones_sprite -80406638 .byt:000E -80406638 cfg_dungeon_rewards -80406648 .byt:0012 -80406648 medal_colors -8040665C .byt:009C -8040665C dungeons -804066F8 .byt:0008 -804066F8 hash_sprites -80406700 .byt:0004 -80406700 cfg_dungeon_info_enable -80406704 .byt:0004 -80406704 dungeon_count -80406708 .byt:0004 -80406708 cfg_file_select_hash -8040670C .byt:0004 -8040670C heap_next -80406710 .byt:0004 -80406710 cfg_dungeon_info_reward_need_altar -80406714 .byt:0004 -80406714 cfg_dungeon_info_reward_need_compass -80406718 .byt:0004 -80406718 cfg_dungeon_info_mq_need_map -8040671C .byt:0004 -8040671C cfg_dungeon_info_mq_enable -80406728 .byt:0010 -80406728 setup_db -80406738 .byt:000E -80406738 cfg_dungeon_is_mq -80406746 .byt:14C8 -80406746 FONT_TEXTURE -80407C0E .byt:83F2 -80480000 DUMMY_ACTOR -80500000 C_HEAP +00000000 0 +00000000 .byt:4000000 +00000010 .dbl:0008 +00000010 ITEM_TABLE_ROW_SIZE +000005B4 Shop_Item_Save_Offset +0000D260 .dbl:0010 +0000D270 .dbl:0010 +008A9C00 .byt:0400 +00B529A0 skip_GS_BGS_text +00BAF750 .byt:0048 +00D74990 skip_steal_tunic +00D7E178 @@not_in_ranch +00D7E18C @@return +00D7E18C return_from_the_other_function +00D7E3AC @@hyrule_check +00D7E3CC @@lon_lon_check +00D7E3F4 @@return_false +00D7E7A4 @@set_ev0 +00D7E7B8 set_ev1 +00D7E8A8 @@unsafe +00D7E8C0 @@safe +00D7E8D4 @@not_hyrule +00D7E920 ev0_return +00DB13D3 .byt:0001 +00DF264F .byt:0001 +00E2F093 .byt:0001 +00EBB8B0 @Deku_Check_True +00EBB8C0 @Deku_Check_False +00EC68D0 .byt:0014 +00EC69C0 .byt:0014 +00EC9CE7 .byt:0001 +8011A5D0 SAVE_CONTEXT +801C84A0 GLOBAL_CONTEXT +801DAA30 PLAYER_ACTOR +803A9E7E GET_ITEMTABLE +80400000 init +80400050 DebugOutput +80401000 .byt:0800 +80401000 ITEM_OVERRIDES +80401800 .byt:0400 +80401800 INITIAL_SAVE_DATA +80401C00 .byt:0001 +80401C00 PLAYER_ID +80401C01 .byt:0001 +80401C01 COOP_GET_ITEM +80401C02 .byt:0001 +80401C02 PLAYER_NAME_ID +80401C03 .byt:0100 +80401C03 PLAYER_NAMES +80401D03 .byt:0001 +80401D03 LIGHT_ARROW_ITEM +80401D04 .byt:0001 +80401D04 FAIRY_OCARINA_ITEM +80401D05 .byt:0001 +80401D05 FAIRY_ITEMS +80401D06 .byt:0001 +80401D07 .byt:0001 +80401D08 .byt:0001 +80401D09 .byt:0001 +80401D0A .byt:0001 +80401D0C .byt:02F4 +80402000 .dbl:0008 +80402000 PLAYER_OVERRIDE_DATA +80402008 .dbl:0010 +80402008 EXTENDED_ITEM_DATA +80402018 .byt:0001 +80402018 PENDING_SPECIAL_ITEM +80402019 .byt:0001 +8040201A .byt:0001 +8040201B .byt:0001 +8040201B PENDING_SPECIAL_ITEM_END +8040201C .dbl:0004 +8040201C TIME_TRAVEL_SAVED_EQUIPS +80402020 .dbl:0004 +80402024 .wrd:0002 +80402026 .wrd:0002 +80402028 .byt:0028 +80402050 .byt:0001 +80402050 ITEM_TABLE +80402051 .byt:0001 +80402052 .byt:0001 +80402053 .byt:0001 +80402054 .wrd:0002 +80402056 .byt:0001 +80402057 .byt:0001 +80402058 .dbl:0004 +8040205C .dbl:0004 +80402060 .byt:0001 +80402061 .byt:0001 +80402062 .byt:0001 +80402063 .byt:0001 +80402064 .wrd:0002 +80402066 .byt:0001 +80402067 .byt:0001 +80402068 .dbl:0004 +8040206C .dbl:0004 +80402070 .byt:0001 +80402071 .byt:0001 +80402072 .byt:0001 +80402073 .byt:0001 +80402074 .wrd:0002 +80402076 .byt:0001 +80402077 .byt:0001 +80402078 .dbl:0004 +8040207C .dbl:0004 +80402080 .byt:0001 +80402081 .byt:0001 +80402082 .byt:0001 +80402083 .byt:0001 +80402084 .wrd:0002 +80402086 .byt:0001 +80402087 .byt:0001 +80402088 .dbl:0004 +8040208C .dbl:0004 +80402090 .byt:0001 +80402091 .byt:0001 +80402092 .byt:0001 +80402093 .byt:0001 +80402094 .wrd:0002 +80402096 .byt:0001 +80402097 .byt:0001 +80402098 .dbl:0004 +8040209C .dbl:0004 +804020A0 .byt:0001 +804020A1 .byt:0001 +804020A2 .byt:0001 +804020A3 .byt:0001 +804020A4 .wrd:0002 +804020A6 .byt:0001 +804020A7 .byt:0001 +804020A8 .dbl:0004 +804020AC .dbl:0004 +804020B0 .byt:0001 +804020B1 .byt:0001 +804020B2 .byt:0001 +804020B3 .byt:0001 +804020B4 .wrd:0002 +804020B6 .byt:0001 +804020B7 .byt:0001 +804020B8 .dbl:0004 +804020BC .dbl:0004 +804020C0 .byt:0001 +804020C1 .byt:0001 +804020C2 .byt:0001 +804020C3 .byt:0001 +804020C4 .wrd:0002 +804020C6 .byt:0001 +804020C7 .byt:0001 +804020C8 .dbl:0004 +804020CC .dbl:0004 +804020D0 .byt:0001 +804020D1 .byt:0001 +804020D2 .byt:0001 +804020D3 .byt:0001 +804020D4 .wrd:0002 +804020D6 .byt:0001 +804020D7 .byt:0001 +804020D8 .dbl:0004 +804020DC .dbl:0004 +804020E0 .byt:0001 +804020E1 .byt:0001 +804020E2 .byt:0001 +804020E3 .byt:0001 +804020E4 .wrd:0002 +804020E6 .byt:0001 +804020E7 .byt:0001 +804020E8 .dbl:0004 +804020EC .dbl:0004 +804020F0 .byt:0001 +804020F1 .byt:0001 +804020F2 .byt:0001 +804020F3 .byt:0001 +804020F4 .wrd:0002 +804020F6 .byt:0001 +804020F7 .byt:0001 +804020F8 .dbl:0004 +804020FC .dbl:0004 +80402100 .byt:0001 +80402101 .byt:0001 +80402102 .byt:0001 +80402103 .byt:0001 +80402104 .wrd:0002 +80402106 .byt:0001 +80402107 .byt:0001 +80402108 .dbl:0004 +8040210C .dbl:0004 +80402110 .byt:0001 +80402111 .byt:0001 +80402112 .byt:0001 +80402113 .byt:0001 +80402114 .wrd:0002 +80402116 .byt:0001 +80402117 .byt:0001 +80402118 .dbl:0004 +8040211C .dbl:0004 +80402120 .byt:0001 +80402121 .byt:0001 +80402122 .byt:0001 +80402123 .byt:0001 +80402124 .wrd:0002 +80402126 .byt:0001 +80402127 .byt:0001 +80402128 .dbl:0004 +8040212C .dbl:0004 +80402130 .byt:0001 +80402131 .byt:0001 +80402132 .byt:0001 +80402133 .byt:0001 +80402134 .wrd:0002 +80402136 .byt:0001 +80402137 .byt:0001 +80402138 .dbl:0004 +8040213C .dbl:0004 +80402140 .byt:0001 +80402141 .byt:0001 +80402142 .byt:0001 +80402143 .byt:0001 +80402144 .wrd:0002 +80402146 .byt:0001 +80402147 .byt:0001 +80402148 .dbl:0004 +8040214C .dbl:0004 +80402150 .byt:0001 +80402151 .byt:0001 +80402152 .byt:0001 +80402153 .byt:0001 +80402154 .wrd:0002 +80402156 .byt:0001 +80402157 .byt:0001 +80402158 .dbl:0004 +8040215C .dbl:0004 +80402160 .byt:0001 +80402161 .byt:0001 +80402162 .byt:0001 +80402163 .byt:0001 +80402164 .wrd:0002 +80402166 .byt:0001 +80402167 .byt:0001 +80402168 .dbl:0004 +8040216C .dbl:0004 +80402170 .byt:0001 +80402171 .byt:0001 +80402172 .byt:0001 +80402173 .byt:0001 +80402174 .wrd:0002 +80402176 .byt:0001 +80402177 .byt:0001 +80402178 .dbl:0004 +8040217C .dbl:0004 +80402180 .byt:0001 +80402181 .byt:0001 +80402182 .byt:0001 +80402183 .byt:0001 +80402184 .wrd:0002 +80402186 .byt:0001 +80402187 .byt:0001 +80402188 .dbl:0004 +8040218C .dbl:0004 +80402190 .byt:0001 +80402191 .byt:0001 +80402192 .byt:0001 +80402193 .byt:0001 +80402194 .wrd:0002 +80402196 .byt:0001 +80402197 .byt:0001 +80402198 .dbl:0004 +8040219C .dbl:0004 +804021A0 .byt:0001 +804021A1 .byt:0001 +804021A2 .byt:0001 +804021A3 .byt:0001 +804021A4 .wrd:0002 +804021A6 .byt:0001 +804021A7 .byt:0001 +804021A8 .dbl:0004 +804021AC .dbl:0004 +804021B0 .byt:0001 +804021B1 .byt:0001 +804021B2 .byt:0001 +804021B3 .byt:0001 +804021B4 .wrd:0002 +804021B6 .byt:0001 +804021B7 .byt:0001 +804021B8 .dbl:0004 +804021BC .dbl:0004 +804021C0 .byt:0001 +804021C1 .byt:0001 +804021C2 .byt:0001 +804021C3 .byt:0001 +804021C4 .wrd:0002 +804021C6 .byt:0001 +804021C7 .byt:0001 +804021C8 .dbl:0004 +804021CC .dbl:0004 +804021D0 .byt:0001 +804021D1 .byt:0001 +804021D2 .byt:0001 +804021D3 .byt:0001 +804021D4 .wrd:0002 +804021D6 .byt:0001 +804021D7 .byt:0001 +804021D8 .dbl:0004 +804021DC .dbl:0004 +804021E0 .byt:0001 +804021E1 .byt:0001 +804021E2 .byt:0001 +804021E3 .byt:0001 +804021E4 .wrd:0002 +804021E6 .byt:0001 +804021E7 .byt:0001 +804021E8 .dbl:0004 +804021EC .dbl:0004 +804021F0 .byt:0001 +804021F1 .byt:0001 +804021F2 .byt:0001 +804021F3 .byt:0001 +804021F4 .wrd:0002 +804021F6 .byt:0001 +804021F7 .byt:0001 +804021F8 .dbl:0004 +804021FC .dbl:0004 +80402200 .byt:0001 +80402201 .byt:0001 +80402202 .byt:0001 +80402203 .byt:0001 +80402204 .wrd:0002 +80402206 .byt:0001 +80402207 .byt:0001 +80402208 .dbl:0004 +8040220C .dbl:0004 +80402210 .byt:0001 +80402211 .byt:0001 +80402212 .byt:0001 +80402213 .byt:0001 +80402214 .wrd:0002 +80402216 .byt:0001 +80402217 .byt:0001 +80402218 .dbl:0004 +8040221C .dbl:0004 +80402220 .byt:0001 +80402221 .byt:0001 +80402222 .byt:0001 +80402223 .byt:0001 +80402224 .wrd:0002 +80402226 .byt:0001 +80402227 .byt:0001 +80402228 .dbl:0004 +8040222C .dbl:0004 +80402230 .byt:0001 +80402231 .byt:0001 +80402232 .byt:0001 +80402233 .byt:0001 +80402234 .wrd:0002 +80402236 .byt:0001 +80402237 .byt:0001 +80402238 .dbl:0004 +8040223C .dbl:0004 +80402240 .byt:0001 +80402241 .byt:0001 +80402242 .byt:0001 +80402243 .byt:0001 +80402244 .wrd:0002 +80402246 .byt:0001 +80402247 .byt:0001 +80402248 .dbl:0004 +8040224C .dbl:0004 +80402250 .byt:0001 +80402251 .byt:0001 +80402252 .byt:0001 +80402253 .byt:0001 +80402254 .wrd:0002 +80402256 .byt:0001 +80402257 .byt:0001 +80402258 .dbl:0004 +8040225C .dbl:0004 +80402260 .byt:0001 +80402261 .byt:0001 +80402262 .byt:0001 +80402263 .byt:0001 +80402264 .wrd:0002 +80402266 .byt:0001 +80402267 .byt:0001 +80402268 .dbl:0004 +8040226C .dbl:0004 +80402270 .byt:0001 +80402271 .byt:0001 +80402272 .byt:0001 +80402273 .byt:0001 +80402274 .wrd:0002 +80402276 .byt:0001 +80402277 .byt:0001 +80402278 .dbl:0004 +8040227C .dbl:0004 +80402280 .byt:0001 +80402281 .byt:0001 +80402282 .byt:0001 +80402283 .byt:0001 +80402284 .wrd:0002 +80402286 .byt:0001 +80402287 .byt:0001 +80402288 .dbl:0004 +8040228C .dbl:0004 +80402290 .byt:0001 +80402291 .byt:0001 +80402292 .byt:0001 +80402293 .byt:0001 +80402294 .wrd:0002 +80402296 .byt:0001 +80402297 .byt:0001 +80402298 .dbl:0004 +8040229C .dbl:0004 +804022A0 .byt:0001 +804022A1 .byt:0001 +804022A2 .byt:0001 +804022A3 .byt:0001 +804022A4 .wrd:0002 +804022A6 .byt:0001 +804022A7 .byt:0001 +804022A8 .dbl:0004 +804022AC .dbl:0004 +804022B0 .byt:0001 +804022B1 .byt:0001 +804022B2 .byt:0001 +804022B3 .byt:0001 +804022B4 .wrd:0002 +804022B6 .byt:0001 +804022B7 .byt:0001 +804022B8 .dbl:0004 +804022BC .dbl:0004 +804022C0 .byt:0001 +804022C1 .byt:0001 +804022C2 .byt:0001 +804022C3 .byt:0001 +804022C4 .wrd:0002 +804022C6 .byt:0001 +804022C7 .byt:0001 +804022C8 .dbl:0004 +804022CC .dbl:0004 +804022D0 .byt:0001 +804022D1 .byt:0001 +804022D2 .byt:0001 +804022D3 .byt:0001 +804022D4 .wrd:0002 +804022D6 .byt:0001 +804022D7 .byt:0001 +804022D8 .dbl:0004 +804022DC .dbl:0004 +804022E0 .byt:0001 +804022E1 .byt:0001 +804022E2 .byt:0001 +804022E3 .byt:0001 +804022E4 .wrd:0002 +804022E6 .byt:0001 +804022E7 .byt:0001 +804022E8 .dbl:0004 +804022EC .dbl:0004 +804022F0 .byt:0001 +804022F1 .byt:0001 +804022F2 .byt:0001 +804022F3 .byt:0001 +804022F4 .wrd:0002 +804022F6 .byt:0001 +804022F7 .byt:0001 +804022F8 .dbl:0004 +804022FC .dbl:0004 +80402300 .byt:0001 +80402301 .byt:0001 +80402302 .byt:0001 +80402303 .byt:0001 +80402304 .wrd:0002 +80402306 .byt:0001 +80402307 .byt:0001 +80402308 .dbl:0004 +8040230C .dbl:0004 +80402310 .byt:0001 +80402311 .byt:0001 +80402312 .byt:0001 +80402313 .byt:0001 +80402314 .wrd:0002 +80402316 .byt:0001 +80402317 .byt:0001 +80402318 .dbl:0004 +8040231C .dbl:0004 +80402320 .byt:0001 +80402321 .byt:0001 +80402322 .byt:0001 +80402323 .byt:0001 +80402324 .wrd:0002 +80402326 .byt:0001 +80402327 .byt:0001 +80402328 .dbl:0004 +8040232C .dbl:0004 +80402330 .byt:0001 +80402331 .byt:0001 +80402332 .byt:0001 +80402333 .byt:0001 +80402334 .wrd:0002 +80402336 .byt:0001 +80402337 .byt:0001 +80402338 .dbl:0004 +8040233C .dbl:0004 +80402340 .byt:0001 +80402341 .byt:0001 +80402342 .byt:0001 +80402343 .byt:0001 +80402344 .wrd:0002 +80402346 .byt:0001 +80402347 .byt:0001 +80402348 .dbl:0004 +8040234C .dbl:0004 +80402350 .byt:0001 +80402351 .byt:0001 +80402352 .byt:0001 +80402353 .byt:0001 +80402354 .wrd:0002 +80402356 .byt:0001 +80402357 .byt:0001 +80402358 .dbl:0004 +8040235C .dbl:0004 +80402360 .byt:0001 +80402361 .byt:0001 +80402362 .byt:0001 +80402363 .byt:0001 +80402364 .wrd:0002 +80402366 .byt:0001 +80402367 .byt:0001 +80402368 .dbl:0004 +8040236C .dbl:0004 +80402370 .byt:0001 +80402371 .byt:0001 +80402372 .byt:0001 +80402373 .byt:0001 +80402374 .wrd:0002 +80402376 .byt:0001 +80402377 .byt:0001 +80402378 .dbl:0004 +8040237C .dbl:0004 +80402380 .byt:0001 +80402381 .byt:0001 +80402382 .byt:0001 +80402383 .byt:0001 +80402384 .wrd:0002 +80402386 .byt:0001 +80402387 .byt:0001 +80402388 .dbl:0004 +8040238C .dbl:0004 +80402390 .byt:0001 +80402391 .byt:0001 +80402392 .byt:0001 +80402393 .byt:0001 +80402394 .wrd:0002 +80402396 .byt:0001 +80402397 .byt:0001 +80402398 .dbl:0004 +8040239C .dbl:0004 +804023A0 .byt:0001 +804023A1 .byt:0001 +804023A2 .byt:0001 +804023A3 .byt:0001 +804023A4 .wrd:0002 +804023A6 .byt:0001 +804023A7 .byt:0001 +804023A8 .dbl:0004 +804023AC .dbl:0004 +804023B0 .byt:0001 +804023B1 .byt:0001 +804023B2 .byt:0001 +804023B3 .byt:0001 +804023B4 .wrd:0002 +804023B6 .byt:0001 +804023B7 .byt:0001 +804023B8 .dbl:0004 +804023BC .dbl:0004 +804023C0 .byt:0001 +804023C1 .byt:0001 +804023C2 .byt:0001 +804023C3 .byt:0001 +804023C4 .wrd:0002 +804023C6 .byt:0001 +804023C7 .byt:0001 +804023C8 .dbl:0004 +804023CC .dbl:0004 +804023D0 .byt:0001 +804023D1 .byt:0001 +804023D2 .byt:0001 +804023D3 .byt:0001 +804023D4 .wrd:0002 +804023D6 .byt:0001 +804023D7 .byt:0001 +804023D8 .dbl:0004 +804023DC .dbl:0004 +804023E0 .byt:0001 +804023E1 .byt:0001 +804023E2 .byt:0001 +804023E3 .byt:0001 +804023E4 .wrd:0002 +804023E6 .byt:0001 +804023E7 .byt:0001 +804023E8 .dbl:0004 +804023EC .dbl:0004 +804023F0 .byt:0001 +804023F1 .byt:0001 +804023F2 .byt:0001 +804023F3 .byt:0001 +804023F4 .wrd:0002 +804023F6 .byt:0001 +804023F7 .byt:0001 +804023F8 .dbl:0004 +804023FC .dbl:0004 +80402400 .byt:0001 +80402401 .byt:0001 +80402402 .byt:0001 +80402403 .byt:0001 +80402404 .wrd:0002 +80402406 .byt:0001 +80402407 .byt:0001 +80402408 .dbl:0004 +8040240C .dbl:0004 +80402410 .byt:0001 +80402411 .byt:0001 +80402412 .byt:0001 +80402413 .byt:0001 +80402414 .wrd:0002 +80402416 .byt:0001 +80402417 .byt:0001 +80402418 .dbl:0004 +8040241C .dbl:0004 +80402420 .byt:0001 +80402421 .byt:0001 +80402422 .byt:0001 +80402423 .byt:0001 +80402424 .wrd:0002 +80402426 .byt:0001 +80402427 .byt:0001 +80402428 .dbl:0004 +8040242C .dbl:0004 +80402430 .byt:0001 +80402431 .byt:0001 +80402432 .byt:0001 +80402433 .byt:0001 +80402434 .wrd:0002 +80402436 .byt:0001 +80402437 .byt:0001 +80402438 .dbl:0004 +8040243C .dbl:0004 +80402440 .byt:0001 +80402441 .byt:0001 +80402442 .byt:0001 +80402443 .byt:0001 +80402444 .wrd:0002 +80402446 .byt:0001 +80402447 .byt:0001 +80402448 .dbl:0004 +8040244C .dbl:0004 +80402450 .byt:0001 +80402451 .byt:0001 +80402452 .byt:0001 +80402453 .byt:0001 +80402454 .wrd:0002 +80402456 .byt:0001 +80402457 .byt:0001 +80402458 .dbl:0004 +8040245C .dbl:0004 +80402460 .byt:0001 +80402461 .byt:0001 +80402462 .byt:0001 +80402463 .byt:0001 +80402464 .wrd:0002 +80402466 .byt:0001 +80402467 .byt:0001 +80402468 .dbl:0004 +8040246C .dbl:0004 +80402470 .byt:0001 +80402471 .byt:0001 +80402472 .byt:0001 +80402473 .byt:0001 +80402474 .wrd:0002 +80402476 .byt:0001 +80402477 .byt:0001 +80402478 .dbl:0004 +8040247C .dbl:0004 +80402480 .byt:0001 +80402481 .byt:0001 +80402482 .byt:0001 +80402483 .byt:0001 +80402484 .wrd:0002 +80402486 .byt:0001 +80402487 .byt:0001 +80402488 .dbl:0004 +8040248C .dbl:0004 +80402490 .byt:0001 +80402491 .byt:0001 +80402492 .byt:0001 +80402493 .byt:0001 +80402494 .wrd:0002 +80402496 .byt:0001 +80402497 .byt:0001 +80402498 .dbl:0004 +8040249C .dbl:0004 +804024A0 .byt:0001 +804024A1 .byt:0001 +804024A2 .byt:0001 +804024A3 .byt:0001 +804024A4 .wrd:0002 +804024A6 .byt:0001 +804024A7 .byt:0001 +804024A8 .dbl:0004 +804024AC .dbl:0004 +804024B0 .byt:0001 +804024B1 .byt:0001 +804024B2 .byt:0001 +804024B3 .byt:0001 +804024B4 .wrd:0002 +804024B6 .byt:0001 +804024B7 .byt:0001 +804024B8 .dbl:0004 +804024BC .dbl:0004 +804024C0 .byt:0001 +804024C1 .byt:0001 +804024C2 .byt:0001 +804024C3 .byt:0001 +804024C4 .wrd:0002 +804024C6 .byt:0001 +804024C7 .byt:0001 +804024C8 .dbl:0004 +804024CC .dbl:0004 +804024D0 .byt:0001 +804024D1 .byt:0001 +804024D2 .byt:0001 +804024D3 .byt:0001 +804024D4 .wrd:0002 +804024D6 .byt:0001 +804024D7 .byt:0001 +804024D8 .dbl:0004 +804024DC .dbl:0004 +804024E0 .byt:0001 +804024E1 .byt:0001 +804024E2 .byt:0001 +804024E3 .byt:0001 +804024E4 .wrd:0002 +804024E6 .byt:0001 +804024E7 .byt:0001 +804024E8 .dbl:0004 +804024EC .dbl:0004 +804024F0 .byt:0001 +804024F1 .byt:0001 +804024F2 .byt:0001 +804024F3 .byt:0001 +804024F4 .wrd:0002 +804024F6 .byt:0001 +804024F7 .byt:0001 +804024F8 .dbl:0004 +804024FC .dbl:0004 +80402500 .byt:0001 +80402501 .byt:0001 +80402502 .byt:0001 +80402503 .byt:0001 +80402504 .wrd:0002 +80402506 .byt:0001 +80402507 .byt:0001 +80402508 .dbl:0004 +8040250C .dbl:0004 +80402510 .byt:0001 +80402511 .byt:0001 +80402512 .byt:0001 +80402513 .byt:0001 +80402514 .wrd:0002 +80402516 .byt:0001 +80402517 .byt:0001 +80402518 .dbl:0004 +8040251C .dbl:0004 +80402520 .byt:0001 +80402521 .byt:0001 +80402522 .byt:0001 +80402523 .byt:0001 +80402524 .wrd:0002 +80402526 .byt:0001 +80402527 .byt:0001 +80402528 .dbl:0004 +8040252C .dbl:0004 +80402530 .byt:0001 +80402531 .byt:0001 +80402532 .byt:0001 +80402533 .byt:0001 +80402534 .wrd:0002 +80402536 .byt:0001 +80402537 .byt:0001 +80402538 .dbl:0004 +8040253C .dbl:0004 +80402540 .byt:0001 +80402541 .byt:0001 +80402542 .byt:0001 +80402543 .byt:0001 +80402544 .wrd:0002 +80402546 .byt:0001 +80402547 .byt:0001 +80402548 .dbl:0004 +8040254C .dbl:0004 +80402550 .byt:0001 +80402551 .byt:0001 +80402552 .byt:0001 +80402553 .byt:0001 +80402554 .wrd:0002 +80402556 .byt:0001 +80402557 .byt:0001 +80402558 .dbl:0004 +8040255C .dbl:0004 +80402560 .byt:0001 +80402561 .byt:0001 +80402562 .byt:0001 +80402563 .byt:0001 +80402564 .wrd:0002 +80402566 .byt:0001 +80402567 .byt:0001 +80402568 .dbl:0004 +8040256C .dbl:0004 +80402570 no_upgrade +80402578 hookshot_upgrade +8040258C @@return +80402594 strength_upgrade +804025B4 @@return +804025BC bomb_bag_upgrade +804025DC @@return +804025E4 bow_upgrade +80402604 @@return +8040260C slingshot_upgrade +8040262C @@return +80402634 wallet_upgrade +80402654 @@return +8040265C tycoon_wallet +80402670 scale_upgrade +80402684 @@return +8040268C nut_upgrade +804026A0 @@return +804026A8 stick_upgrade +804026BC @@return +804026C4 magic_upgrade +804026D4 @@return +804026DC arrows_to_rupee +804026F0 @@return +804026F8 bombs_to_rupee +8040270C @@return +80402714 seeds_to_rupee +80402728 @@return +80402730 no_effect +80402738 give_biggoron_sword +80402748 give_bottle +80402750 @@loop +8040277C @@return +80402784 give_dungeon_item +804027A0 give_small_key +804027B8 @not_negative +804027C8 give_defense +804027E8 give_magic +80402808 double_magic +80402830 bombchu_upgrade +80402854 @@return +8040285C ocarina_upgrade +80402870 @@return +80402878 give_fairy_ocarina +80402888 give_song +804028A4 inventory_check +80402910 @@return +80402918 override_skulltula_token +80402938 @@in_table +8040297C @@extended_effect +804029B0 @@not_extended +804029F8 @@item_effect +80402A04 @@return +80402A18 override_object_npc +80402A28 override_object_chest +80402A38 override_object +80402A50 @@return +80402A94 @@no_count_inc +80402A98 @@no_pending_clear +80402AA0 override_graphic +80402AB8 @@return +80402AD0 override_text +80402AEC @@return +80402AF4 override_action +80402B1C @@no_player_override +80402B78 @@return +80402B80 store_item_data_hook +80402BB4 store_item_data +80402C48 @@update_base_game +80402C78 @@not_chest +80402C88 @@not_negative +80402C8C @@return +80402C9C lookup_override +80402CC4 @@return +80402CD4 get_override_search_key +80402D14 @@not_skulltula +80402D4C @@valid_chest +80402D54 @@not_chest +80402D84 @@valid_collectable +80402D8C @@not_collectable +80402DB4 @@not_grotto_deku_scrub +80402DC4 @@return +80402DCC scan_override_table +80402E10 @@not_coop_item +80402E18 @@lookup_loop +80402E4C @@lookup_item_found +80402E80 @@return +80402E88 resolve_extended_item +80402E9C @@loop +80402EF0 @@not_extended +80402EF4 @@return +80402F0C override_great_fairy_cutscene +80402F64 @@item_fairy +80402F84 @@give_item +80402FB0 @@return +80402FB8 override_light_arrow_cutscene +80402FCC override_fairy_ocarina_cutscene +80402FE0 override_ocarina_songs +80402FF4 override_requiem_song +80403000 override_epona_song +80403020 override_suns_song +80403040 override_song_of_time +80403050 store_pending_special_item +80403060 @@find_duplicate_loop +8040307C @@find_empty_loop +80403094 @@return +8040309C override_saria_song_check +804030B8 @@get_item +804030C0 set_saria_song_flag +804030E0 set_dungeon_knowledge +8040310C @@set_flag +80403124 Shop_Check_Sold_Out +80403170 @@return +80403178 Shop_Set_Sold_Out +804031B0 @@return +804031B8 Shop_Keeper_Init_ID +804031D4 @@return +804031E4 Deku_Check_Sold_Out +80403208 @@continue +80403238 Deku_Set_Sold_Out +8040325C @@continue +80403290 before_game_state_update +804032E0 @@loop +80403338 @@no_pending_item +8040334C after_game_state_update +80403370 item_menu_description_id_periodic +80403384 @@item_menu_description_id_return_00000000 +8040338C item_menu_description_id_immediate_1 +804033A0 @@item_menu_description_id_return_00000001 +804033A8 item_menu_description_id_immediate_2 +804033BC @@item_menu_description_id_return_00000002 +804033C4 item_menu_description_id_immediate_3 +804033D8 @@item_menu_description_id_return_00000003 +804033E0 before_time_travel +80403410 after_time_travel +8040344C @@going_back +80403454 @@done +80403484 update_c_button +804034B0 @@return +804034B8 after_going_forward +804034F4 @@no_init +80403504 after_going_back +80403534 @@not_swordless +8040353C initialize_adult +80403564 @@no_mirror_shield +804035A4 init_adult_button +804035D0 @@empty +804035D8 @@loop +80403630 @@set_empty +8040363C @@return +80403644 .byt:0001 +80403644 ADULT_INIT_ITEMS +80403645 .byt:0001 +80403646 .byt:0001 +80403647 .byt:0001 +80403648 .byt:0001 +80403649 .byt:0001 +8040364A .byt:0001 +8040364B .byt:0001 +8040364C .byt:0001 +80403650 .byt:0001 +80403650 ADULT_VALID_ITEMS +80403651 .byt:0001 +80403652 .byt:0001 +80403653 .byt:0001 +80403654 .byt:0001 +80403655 .byt:0001 +80403656 .byt:0001 +80403657 .byt:0001 +80403658 .byt:0001 +80403659 .byt:0001 +8040365A .byt:0001 +8040365B .byt:0001 +8040365C .byt:0001 +8040365D .byt:0001 +8040365E .byt:0001 +8040365F .byt:0001 +80403660 .byt:0001 +80403661 .byt:0001 +80403662 .byt:0001 +80403663 .byt:0001 +80403664 .byt:0001 +80403665 .byt:0001 +80403666 .byt:0001 +80403667 .byt:0001 +80403668 suns_song_fix_event +8040369C @@child +804036AC @@return +804036B4 suns_song_fix +804036C8 @@check_suns_status +804036E4 @@disable_suns +804036EC @@return +804036F4 warp_song_fix +80403720 @@child +80403730 @@return +80403738 Check_Has_Epona_Song +80403784 @@return +8040378C save_scarecrow_song +804037D0 @@copy_song +804037D8 write_initial_save +804037E4 @@save_data_loop +80403814 @@overwrite_type +8040381C @@return +80403824 get_name_char_1 +80403840 get_name_char_2 +8040385C get_name_char +80403888 @@coop_player_name +804038A0 @@return +804038A8 reset_player_name_id +804038C8 .byt:0788 +80405000 text_init,0000002C +8040502C text_print,000000A8 +804050D4 text_flush,00000148 +8040521C draw_dungeon_info,000009B8 +80405BD4 c_init,0000002C +80405C00 c_after_game_state_update,00000088 +80405C88 heap_init,00000014 +80405C9C heap_alloc,00000034 +80405CD0 file_init,00000044 +80405D14 disp_buf_init,00000018 +80405D2C sprite_bytes_per_tile,00000028 +80405D54 sprite_bytes,00000030 +80405D84 sprite_load,000001A0 +80405F24 sprite_draw,000000F0 +80406014 draw_setup,000001DC +804061F0 gfx_init,00000178 +80406368 draw_file_select_hash,00000234 +804065A8 .byt:000E +804065A8 cfg_dungeon_rewards +804065B8 .byt:0012 +804065B8 medal_colors +804065CC .byt:009C +804065CC dungeons +80406668 .byt:0010 +80406668 font_sprite +80406678 .byt:0010 +80406678 quest_items_sprite +80406688 .byt:0010 +80406688 items_sprite +80406698 .byt:0010 +80406698 medals_sprite +804066A8 .byt:0010 +804066A8 stones_sprite +804066B8 .byt:0040 +804066B8 hash_symbols +804066F8 .byt:0004 +804066F8 cfg_dungeon_info_enable +804066FC .byt:0004 +804066FC dungeon_count +80406700 .byt:0008 +80406700 hash_sprites +80406710 .byt:0004 +80406710 cfg_dungeon_info_reward_need_altar +80406714 .byt:0004 +80406714 cfg_dungeon_info_reward_need_compass +80406718 .byt:0004 +80406718 cfg_dungeon_info_mq_need_map +8040671C .byt:0004 +8040671C cfg_dungeon_info_mq_enable +80406720 .byt:0004 +80406720 heap_next +80406724 .byt:0004 +80406724 cfg_file_select_hash +80406728 .byt:000E +80406728 cfg_dungeon_is_mq +80406738 .byt:0010 +80406738 setup_db +80406748 .byt:14C8 +80406748 FONT_TEXTURE +80407C10 .byt:83F0 +80480000 DUMMY_ACTOR +80500000 C_HEAP  \ No newline at end of file diff --git a/ASM/build/bundle.o b/ASM/build/bundle.o index 55cef123ced6ede707ac9599d7291bfc7eadfdcc..9dec7528b1ffe68144cdb0497bb14222425b45c5 100644 GIT binary patch delta 2837 zcmZWrO-x)>82#S!&CGi9c8y6(d7Ldm2PgYPZ>k?yo4xST$Y-+SpxmJ>A9e1v(WX0PYuZTKID)pAX4E*HP=1(V(v!DIL1xoNvM z`prm(9e?X>krS7$TsTtIKi~{t513Xa}qh zaEj}&8`J$!*dv}~lz)ghuWjf+i3x9kQ1LVtnBX(a8PHdL2lIA}iU#;rB(cmjCv zap)ZU<_eAdHXnxFyf+{&#+w;ki$NcY3ps9skRMT=SKg((TlpZ0pnnla|LeLxq5Joh zKQP=vcW7T?SLk5n_&xzr05&Wp|<#faK#M`G}Onp1_0)Ga^T5Pyv$PGYai_BhY@Re93TVk_Oo09ViX3cTf=va8ST5 zu0!xHt~cS0K@I`?$vg1IAV+}*qj(q`D13zc}AD#T42Keyf3xeyTAb(jP$1t6YVP`i^RzT0c!yL~u+CUBuBbbMeExP$7r ztd8qy_eAafG70$hX95r1VF6y!B=D+D0xxU)ye8x4p>uqiJO~c`N;B%XsD}5|5JK2; zZ%GYRh_|8%RyBbN^Hf-TL=$Wnzxb$$AD>i?PEu(6mWfk}LlGZ~ctzwzR1%*BlHbKE zo%|k$`n@&zC{gzqDV(0$|(&ZCQ~u*4B_FC@B6;zW;0oahsI7KJ5H$YBTPpLitl z0vG-esRbsBB3a^;$g2pLya_~tB!nIyLeK%OqhldQWg&m490K@8tr`$H3fv|J{RWXv za6hkz{Z0qx@1sS0Zv8RyxcTGe`S&Nx^Y0@;hWikbfdC(^<2~a~o1^k)@GlAjSIpDn zqjMDCKTy6TvWND|K>DxgdKp;42ENYWD>&6^98)>-s!XAUd{w5PIK&>276eYs>OK;2 zJ>4Wyk2q=g*OSBl5P1iX9C7N%5vPtEh4S7?-^TOLyOE!`4E_(~C$o`=tCpC>84?RP zGvWZ2h~pwJ6U+FQg}8{bB(9uu delta 2830 zcmZWrO=whC6h7}cIy0Gh^B*(OF~%Bev^E`Ww6>0PBq@ZFN?M}0kQ!^E2_2K55wZwO z+EU0Oi`ZvDiiIq)2yG~VL?3!+`<;7! zzI*PSH(5Ntcz)ueow6zad&(PgtLbKUZp7={;crC8{X+Eq+?Vc8;Y>pyAcburGoMJ# zFnfD!ua`Rz(uMIWlD$2D%E{i|XmPTBvoql2{3+)P%p2YP;atH*aEoO9PB&lm!G|Je z2X0)yT=MH`-t&LmdDc(vT#l$72jKaGHG}?oZO$L5t??7tfL~Mli+`@M2Kc^zIs2|( z%oe}O7W~cHKg;p0eFWs6KQOO;iRWJ8`(NV6wm5J*##t)45cOpmq~isLACdbWc(Wz=8F^PQ7K}f_TIES7{I1|``TvdFt*~vVzXOr( z6a-BgPh)Kqqaq0PoqZsDXs7}|j7~NK*DT;T){3@{4mf9!a0ona>u0%!VI6Qj#m2y$ zVOxi1I!<=gLsi6}fhG7@xO>`bvQ7m;3qw-M9L$^$hf1>g&Hc0NT*rlIO=! z8R{8k%utX2*Pg`OnYxeNG7j)nUf(t#6biPui+l-4jtg;|`~i?0I%~-v0>K^hzX2_A z@*?|z?x@H+z-{%4!Gg#s@Zd#5tXKFQkpsw64&KECiGq{(y1)>e0+LVT9LZ;a}5bEb$uNj#!Th z5bM!Jy&I8DtrNvYStt4&=g&(J#RBhuhn?~=c?os&GV18nt01pI1$lWD#4d+Sy_g()PC z!WF*;O&D*~gmHAL5(fbk5}((d$4y9l$>JWFUl}{CIIdd(3Sfb!=7^)=UBHP{?m~is z$RUVvi6JeJfCJ+aqZ*gEXMU6BH>LR#Gv+s|e&xi16(?KuCGDN8-pyO4Tjg`aETG+MqJ zJ4<6He8Z(D@K!^j^c^4)rSBTY&MJJt_@eP;<15BdhnF|~6j)}0O?Aj1ITK`Bjkg(x zKn7$`n6KK*thPEs0kpFq?A3YgWX1$l7tDT9{i@NKieI Date: Fri, 12 Oct 2018 01:19:37 -0400 Subject: [PATCH 685/755] Update asm build from merge --- ASM/build/asm_symbols.txt | 1229 +++---------------------------------- ItemList.py | 2 +- data/symbols.json | 42 +- version.py | 2 +- 4 files changed, 78 insertions(+), 1197 deletions(-) diff --git a/ASM/build/asm_symbols.txt b/ASM/build/asm_symbols.txt index d4050f12c..e800c8ba1 100644 --- a/ASM/build/asm_symbols.txt +++ b/ASM/build/asm_symbols.txt @@ -1,4 +1,3 @@ -<<<<<<< HEAD 00000000 0 00000000 .byt:4000000 00000010 .dbl:0008 @@ -948,83 +947,84 @@ 804033BC @@item_menu_description_id_return_00000002 804033C4 item_menu_description_id_immediate_3 804033D8 @@item_menu_description_id_return_00000003 -804033E0 before_time_travel -80403410 after_time_travel -8040344C @@going_back -80403454 @@done -80403484 update_c_button -804034B0 @@return -804034B8 after_going_forward -804034F4 @@no_init -80403504 after_going_back -80403534 @@not_swordless -8040353C initialize_adult -80403564 @@no_mirror_shield -804035A4 init_adult_button -804035D0 @@empty -804035D8 @@loop -80403630 @@set_empty -8040363C @@return -80403644 .byt:0001 -80403644 ADULT_INIT_ITEMS -80403645 .byt:0001 -80403646 .byt:0001 -80403647 .byt:0001 -80403648 .byt:0001 -80403649 .byt:0001 -8040364A .byt:0001 -8040364B .byt:0001 -8040364C .byt:0001 -80403650 .byt:0001 -80403650 ADULT_VALID_ITEMS -80403651 .byt:0001 -80403652 .byt:0001 -80403653 .byt:0001 -80403654 .byt:0001 -80403655 .byt:0001 -80403656 .byt:0001 -80403657 .byt:0001 -80403658 .byt:0001 -80403659 .byt:0001 -8040365A .byt:0001 -8040365B .byt:0001 -8040365C .byt:0001 -8040365D .byt:0001 -8040365E .byt:0001 -8040365F .byt:0001 -80403660 .byt:0001 -80403661 .byt:0001 -80403662 .byt:0001 -80403663 .byt:0001 +804033E0 give_master_sword +804033F8 before_time_travel +80403430 after_time_travel +8040346C @@going_back +80403474 @@done +804034A4 update_c_button +804034D0 @@return +804034D8 after_going_forward +80403514 @@no_init +80403524 after_going_back +80403554 @@not_swordless +8040355C initialize_adult +80403584 @@no_mirror_shield +804035C4 init_adult_button +804035F0 @@empty +804035F8 @@loop +80403650 @@set_empty +8040365C @@return 80403664 .byt:0001 +80403664 ADULT_INIT_ITEMS 80403665 .byt:0001 80403666 .byt:0001 80403667 .byt:0001 -80403668 suns_song_fix_event -8040369C @@child -804036AC @@return -804036B4 suns_song_fix -804036C8 @@check_suns_status -804036E4 @@disable_suns -804036EC @@return -804036F4 warp_song_fix -80403720 @@child -80403730 @@return -80403738 Check_Has_Epona_Song -80403784 @@return -8040378C save_scarecrow_song -804037D0 @@copy_song -804037D8 write_initial_save -804037E4 @@save_data_loop -80403814 @@overwrite_type -8040381C @@return -80403824 get_name_char_1 -80403840 get_name_char_2 -8040385C get_name_char -80403888 @@coop_player_name -804038A0 @@return -804038A8 reset_player_name_id -804038C8 .byt:0788 +80403668 .byt:0001 +80403669 .byt:0001 +8040366A .byt:0001 +8040366B .byt:0001 +8040366C .byt:0001 +80403670 .byt:0001 +80403670 ADULT_VALID_ITEMS +80403671 .byt:0001 +80403672 .byt:0001 +80403673 .byt:0001 +80403674 .byt:0001 +80403675 .byt:0001 +80403676 .byt:0001 +80403677 .byt:0001 +80403678 .byt:0001 +80403679 .byt:0001 +8040367A .byt:0001 +8040367B .byt:0001 +8040367C .byt:0001 +8040367D .byt:0001 +8040367E .byt:0001 +8040367F .byt:0001 +80403680 .byt:0001 +80403681 .byt:0001 +80403682 .byt:0001 +80403683 .byt:0001 +80403684 .byt:0001 +80403685 .byt:0001 +80403686 .byt:0001 +80403687 .byt:0001 +80403688 suns_song_fix_event +804036BC @@child +804036CC @@return +804036D4 suns_song_fix +804036E8 @@check_suns_status +80403704 @@disable_suns +8040370C @@return +80403714 warp_song_fix +80403740 @@child +80403750 @@return +80403758 Check_Has_Epona_Song +804037A4 @@return +804037AC save_scarecrow_song +804037F0 @@copy_song +804037F8 write_initial_save +80403804 @@save_data_loop +80403834 @@overwrite_type +8040383C @@return +80403844 get_name_char_1 +80403860 get_name_char_2 +8040387C get_name_char +804038A8 @@coop_player_name +804038C0 @@return +804038C8 reset_player_name_id +804038E8 .byt:0768 80405000 text_init,0000002C 8040502C text_print,000000A8 804050D4 text_flush,00000148 @@ -1087,1085 +1087,4 @@ 80407C10 .byt:83F0 80480000 DUMMY_ACTOR 80500000 C_HEAP -======= -00000000 0 -00000000 .byt:4000000 -00000010 .dbl:0008 -00000010 ITEM_TABLE_ROW_SIZE -000005B4 Shop_Item_Save_Offset -0000D260 .dbl:0010 -0000D270 .dbl:0010 -008A9C00 .byt:0400 -00B529A0 skip_GS_BGS_text -00D74990 skip_steal_tunic -00D7E178 @@not_in_ranch -00D7E18C @@return -00D7E18C return_from_the_other_function -00D7E3AC @@hyrule_check -00D7E3CC @@lon_lon_check -00D7E3F4 @@return_false -00D7E7A4 @@set_ev0 -00D7E7B8 set_ev1 -00D7E8A8 @@unsafe -00D7E8C0 @@safe -00D7E8D4 @@not_hyrule -00D7E920 ev0_return -00DB13D3 .byt:0001 -00DF264F .byt:0001 -00E2F093 .byt:0001 -00EBB8B0 @Deku_Check_True -00EBB8C0 @Deku_Check_False -00EC68D0 .byt:0014 -00EC69C0 .byt:0014 -00EC9CE7 .byt:0001 -8011A5D0 SAVE_CONTEXT -801C84A0 GLOBAL_CONTEXT -801DAA30 PLAYER_ACTOR -803A9E7E GET_ITEMTABLE -80400000 init -80400050 DebugOutput -80401000 .byt:0800 -80401000 ITEM_OVERRIDES -80401800 .byt:0400 -80401800 INITIAL_SAVE_DATA -80401C00 .byt:0001 -80401C00 PLAYER_ID -80401C01 .byt:0001 -80401C01 COOP_GET_ITEM -80401C02 .byt:0001 -80401C02 PLAYER_NAME_ID -80401C03 .byt:0100 -80401C03 PLAYER_NAMES -80401D03 .byt:0001 -80401D03 LIGHT_ARROW_ITEM -80401D04 .byt:0001 -80401D04 FAIRY_OCARINA_ITEM -80401D05 .byt:0001 -80401D05 FAIRY_ITEMS -80401D06 .byt:0001 -80401D07 .byt:0001 -80401D08 .byt:0001 -80401D09 .byt:0001 -80401D0A .byt:0001 -80401D0C .byt:02F4 -80402000 .dbl:0008 -80402000 PLAYER_OVERRIDE_DATA -80402008 .dbl:0010 -80402008 EXTENDED_ITEM_DATA -80402018 .byt:0001 -80402018 PENDING_SPECIAL_ITEM -80402019 .byt:0001 -8040201A .byt:0001 -8040201B .byt:0001 -8040201B PENDING_SPECIAL_ITEM_END -8040201C .dbl:0004 -8040201C TIME_TRAVEL_SAVED_EQUIPS -80402020 .dbl:0004 -80402024 .wrd:0002 -80402026 .wrd:0002 -80402028 .byt:0028 -80402050 .byt:0001 -80402050 ITEM_TABLE -80402051 .byt:0001 -80402052 .byt:0001 -80402053 .byt:0001 -80402054 .wrd:0002 -80402056 .byt:0001 -80402057 .byt:0001 -80402058 .dbl:0004 -8040205C .dbl:0004 -80402060 .byt:0001 -80402061 .byt:0001 -80402062 .byt:0001 -80402063 .byt:0001 -80402064 .wrd:0002 -80402066 .byt:0001 -80402067 .byt:0001 -80402068 .dbl:0004 -8040206C .dbl:0004 -80402070 .byt:0001 -80402071 .byt:0001 -80402072 .byt:0001 -80402073 .byt:0001 -80402074 .wrd:0002 -80402076 .byt:0001 -80402077 .byt:0001 -80402078 .dbl:0004 -8040207C .dbl:0004 -80402080 .byt:0001 -80402081 .byt:0001 -80402082 .byt:0001 -80402083 .byt:0001 -80402084 .wrd:0002 -80402086 .byt:0001 -80402087 .byt:0001 -80402088 .dbl:0004 -8040208C .dbl:0004 -80402090 .byt:0001 -80402091 .byt:0001 -80402092 .byt:0001 -80402093 .byt:0001 -80402094 .wrd:0002 -80402096 .byt:0001 -80402097 .byt:0001 -80402098 .dbl:0004 -8040209C .dbl:0004 -804020A0 .byt:0001 -804020A1 .byt:0001 -804020A2 .byt:0001 -804020A3 .byt:0001 -804020A4 .wrd:0002 -804020A6 .byt:0001 -804020A7 .byt:0001 -804020A8 .dbl:0004 -804020AC .dbl:0004 -804020B0 .byt:0001 -804020B1 .byt:0001 -804020B2 .byt:0001 -804020B3 .byt:0001 -804020B4 .wrd:0002 -804020B6 .byt:0001 -804020B7 .byt:0001 -804020B8 .dbl:0004 -804020BC .dbl:0004 -804020C0 .byt:0001 -804020C1 .byt:0001 -804020C2 .byt:0001 -804020C3 .byt:0001 -804020C4 .wrd:0002 -804020C6 .byt:0001 -804020C7 .byt:0001 -804020C8 .dbl:0004 -804020CC .dbl:0004 -804020D0 .byt:0001 -804020D1 .byt:0001 -804020D2 .byt:0001 -804020D3 .byt:0001 -804020D4 .wrd:0002 -804020D6 .byt:0001 -804020D7 .byt:0001 -804020D8 .dbl:0004 -804020DC .dbl:0004 -804020E0 .byt:0001 -804020E1 .byt:0001 -804020E2 .byt:0001 -804020E3 .byt:0001 -804020E4 .wrd:0002 -804020E6 .byt:0001 -804020E7 .byt:0001 -804020E8 .dbl:0004 -804020EC .dbl:0004 -804020F0 .byt:0001 -804020F1 .byt:0001 -804020F2 .byt:0001 -804020F3 .byt:0001 -804020F4 .wrd:0002 -804020F6 .byt:0001 -804020F7 .byt:0001 -804020F8 .dbl:0004 -804020FC .dbl:0004 -80402100 .byt:0001 -80402101 .byt:0001 -80402102 .byt:0001 -80402103 .byt:0001 -80402104 .wrd:0002 -80402106 .byt:0001 -80402107 .byt:0001 -80402108 .dbl:0004 -8040210C .dbl:0004 -80402110 .byt:0001 -80402111 .byt:0001 -80402112 .byt:0001 -80402113 .byt:0001 -80402114 .wrd:0002 -80402116 .byt:0001 -80402117 .byt:0001 -80402118 .dbl:0004 -8040211C .dbl:0004 -80402120 .byt:0001 -80402121 .byt:0001 -80402122 .byt:0001 -80402123 .byt:0001 -80402124 .wrd:0002 -80402126 .byt:0001 -80402127 .byt:0001 -80402128 .dbl:0004 -8040212C .dbl:0004 -80402130 .byt:0001 -80402131 .byt:0001 -80402132 .byt:0001 -80402133 .byt:0001 -80402134 .wrd:0002 -80402136 .byt:0001 -80402137 .byt:0001 -80402138 .dbl:0004 -8040213C .dbl:0004 -80402140 .byt:0001 -80402141 .byt:0001 -80402142 .byt:0001 -80402143 .byt:0001 -80402144 .wrd:0002 -80402146 .byt:0001 -80402147 .byt:0001 -80402148 .dbl:0004 -8040214C .dbl:0004 -80402150 .byt:0001 -80402151 .byt:0001 -80402152 .byt:0001 -80402153 .byt:0001 -80402154 .wrd:0002 -80402156 .byt:0001 -80402157 .byt:0001 -80402158 .dbl:0004 -8040215C .dbl:0004 -80402160 .byt:0001 -80402161 .byt:0001 -80402162 .byt:0001 -80402163 .byt:0001 -80402164 .wrd:0002 -80402166 .byt:0001 -80402167 .byt:0001 -80402168 .dbl:0004 -8040216C .dbl:0004 -80402170 .byt:0001 -80402171 .byt:0001 -80402172 .byt:0001 -80402173 .byt:0001 -80402174 .wrd:0002 -80402176 .byt:0001 -80402177 .byt:0001 -80402178 .dbl:0004 -8040217C .dbl:0004 -80402180 .byt:0001 -80402181 .byt:0001 -80402182 .byt:0001 -80402183 .byt:0001 -80402184 .wrd:0002 -80402186 .byt:0001 -80402187 .byt:0001 -80402188 .dbl:0004 -8040218C .dbl:0004 -80402190 .byt:0001 -80402191 .byt:0001 -80402192 .byt:0001 -80402193 .byt:0001 -80402194 .wrd:0002 -80402196 .byt:0001 -80402197 .byt:0001 -80402198 .dbl:0004 -8040219C .dbl:0004 -804021A0 .byt:0001 -804021A1 .byt:0001 -804021A2 .byt:0001 -804021A3 .byt:0001 -804021A4 .wrd:0002 -804021A6 .byt:0001 -804021A7 .byt:0001 -804021A8 .dbl:0004 -804021AC .dbl:0004 -804021B0 .byt:0001 -804021B1 .byt:0001 -804021B2 .byt:0001 -804021B3 .byt:0001 -804021B4 .wrd:0002 -804021B6 .byt:0001 -804021B7 .byt:0001 -804021B8 .dbl:0004 -804021BC .dbl:0004 -804021C0 .byt:0001 -804021C1 .byt:0001 -804021C2 .byt:0001 -804021C3 .byt:0001 -804021C4 .wrd:0002 -804021C6 .byt:0001 -804021C7 .byt:0001 -804021C8 .dbl:0004 -804021CC .dbl:0004 -804021D0 .byt:0001 -804021D1 .byt:0001 -804021D2 .byt:0001 -804021D3 .byt:0001 -804021D4 .wrd:0002 -804021D6 .byt:0001 -804021D7 .byt:0001 -804021D8 .dbl:0004 -804021DC .dbl:0004 -804021E0 .byt:0001 -804021E1 .byt:0001 -804021E2 .byt:0001 -804021E3 .byt:0001 -804021E4 .wrd:0002 -804021E6 .byt:0001 -804021E7 .byt:0001 -804021E8 .dbl:0004 -804021EC .dbl:0004 -804021F0 .byt:0001 -804021F1 .byt:0001 -804021F2 .byt:0001 -804021F3 .byt:0001 -804021F4 .wrd:0002 -804021F6 .byt:0001 -804021F7 .byt:0001 -804021F8 .dbl:0004 -804021FC .dbl:0004 -80402200 .byt:0001 -80402201 .byt:0001 -80402202 .byt:0001 -80402203 .byt:0001 -80402204 .wrd:0002 -80402206 .byt:0001 -80402207 .byt:0001 -80402208 .dbl:0004 -8040220C .dbl:0004 -80402210 .byt:0001 -80402211 .byt:0001 -80402212 .byt:0001 -80402213 .byt:0001 -80402214 .wrd:0002 -80402216 .byt:0001 -80402217 .byt:0001 -80402218 .dbl:0004 -8040221C .dbl:0004 -80402220 .byt:0001 -80402221 .byt:0001 -80402222 .byt:0001 -80402223 .byt:0001 -80402224 .wrd:0002 -80402226 .byt:0001 -80402227 .byt:0001 -80402228 .dbl:0004 -8040222C .dbl:0004 -80402230 .byt:0001 -80402231 .byt:0001 -80402232 .byt:0001 -80402233 .byt:0001 -80402234 .wrd:0002 -80402236 .byt:0001 -80402237 .byt:0001 -80402238 .dbl:0004 -8040223C .dbl:0004 -80402240 .byt:0001 -80402241 .byt:0001 -80402242 .byt:0001 -80402243 .byt:0001 -80402244 .wrd:0002 -80402246 .byt:0001 -80402247 .byt:0001 -80402248 .dbl:0004 -8040224C .dbl:0004 -80402250 .byt:0001 -80402251 .byt:0001 -80402252 .byt:0001 -80402253 .byt:0001 -80402254 .wrd:0002 -80402256 .byt:0001 -80402257 .byt:0001 -80402258 .dbl:0004 -8040225C .dbl:0004 -80402260 .byt:0001 -80402261 .byt:0001 -80402262 .byt:0001 -80402263 .byt:0001 -80402264 .wrd:0002 -80402266 .byt:0001 -80402267 .byt:0001 -80402268 .dbl:0004 -8040226C .dbl:0004 -80402270 .byt:0001 -80402271 .byt:0001 -80402272 .byt:0001 -80402273 .byt:0001 -80402274 .wrd:0002 -80402276 .byt:0001 -80402277 .byt:0001 -80402278 .dbl:0004 -8040227C .dbl:0004 -80402280 .byt:0001 -80402281 .byt:0001 -80402282 .byt:0001 -80402283 .byt:0001 -80402284 .wrd:0002 -80402286 .byt:0001 -80402287 .byt:0001 -80402288 .dbl:0004 -8040228C .dbl:0004 -80402290 .byt:0001 -80402291 .byt:0001 -80402292 .byt:0001 -80402293 .byt:0001 -80402294 .wrd:0002 -80402296 .byt:0001 -80402297 .byt:0001 -80402298 .dbl:0004 -8040229C .dbl:0004 -804022A0 .byt:0001 -804022A1 .byt:0001 -804022A2 .byt:0001 -804022A3 .byt:0001 -804022A4 .wrd:0002 -804022A6 .byt:0001 -804022A7 .byt:0001 -804022A8 .dbl:0004 -804022AC .dbl:0004 -804022B0 .byt:0001 -804022B1 .byt:0001 -804022B2 .byt:0001 -804022B3 .byt:0001 -804022B4 .wrd:0002 -804022B6 .byt:0001 -804022B7 .byt:0001 -804022B8 .dbl:0004 -804022BC .dbl:0004 -804022C0 .byt:0001 -804022C1 .byt:0001 -804022C2 .byt:0001 -804022C3 .byt:0001 -804022C4 .wrd:0002 -804022C6 .byt:0001 -804022C7 .byt:0001 -804022C8 .dbl:0004 -804022CC .dbl:0004 -804022D0 .byt:0001 -804022D1 .byt:0001 -804022D2 .byt:0001 -804022D3 .byt:0001 -804022D4 .wrd:0002 -804022D6 .byt:0001 -804022D7 .byt:0001 -804022D8 .dbl:0004 -804022DC .dbl:0004 -804022E0 .byt:0001 -804022E1 .byt:0001 -804022E2 .byt:0001 -804022E3 .byt:0001 -804022E4 .wrd:0002 -804022E6 .byt:0001 -804022E7 .byt:0001 -804022E8 .dbl:0004 -804022EC .dbl:0004 -804022F0 .byt:0001 -804022F1 .byt:0001 -804022F2 .byt:0001 -804022F3 .byt:0001 -804022F4 .wrd:0002 -804022F6 .byt:0001 -804022F7 .byt:0001 -804022F8 .dbl:0004 -804022FC .dbl:0004 -80402300 .byt:0001 -80402301 .byt:0001 -80402302 .byt:0001 -80402303 .byt:0001 -80402304 .wrd:0002 -80402306 .byt:0001 -80402307 .byt:0001 -80402308 .dbl:0004 -8040230C .dbl:0004 -80402310 .byt:0001 -80402311 .byt:0001 -80402312 .byt:0001 -80402313 .byt:0001 -80402314 .wrd:0002 -80402316 .byt:0001 -80402317 .byt:0001 -80402318 .dbl:0004 -8040231C .dbl:0004 -80402320 .byt:0001 -80402321 .byt:0001 -80402322 .byt:0001 -80402323 .byt:0001 -80402324 .wrd:0002 -80402326 .byt:0001 -80402327 .byt:0001 -80402328 .dbl:0004 -8040232C .dbl:0004 -80402330 .byt:0001 -80402331 .byt:0001 -80402332 .byt:0001 -80402333 .byt:0001 -80402334 .wrd:0002 -80402336 .byt:0001 -80402337 .byt:0001 -80402338 .dbl:0004 -8040233C .dbl:0004 -80402340 .byt:0001 -80402341 .byt:0001 -80402342 .byt:0001 -80402343 .byt:0001 -80402344 .wrd:0002 -80402346 .byt:0001 -80402347 .byt:0001 -80402348 .dbl:0004 -8040234C .dbl:0004 -80402350 .byt:0001 -80402351 .byt:0001 -80402352 .byt:0001 -80402353 .byt:0001 -80402354 .wrd:0002 -80402356 .byt:0001 -80402357 .byt:0001 -80402358 .dbl:0004 -8040235C .dbl:0004 -80402360 .byt:0001 -80402361 .byt:0001 -80402362 .byt:0001 -80402363 .byt:0001 -80402364 .wrd:0002 -80402366 .byt:0001 -80402367 .byt:0001 -80402368 .dbl:0004 -8040236C .dbl:0004 -80402370 .byt:0001 -80402371 .byt:0001 -80402372 .byt:0001 -80402373 .byt:0001 -80402374 .wrd:0002 -80402376 .byt:0001 -80402377 .byt:0001 -80402378 .dbl:0004 -8040237C .dbl:0004 -80402380 .byt:0001 -80402381 .byt:0001 -80402382 .byt:0001 -80402383 .byt:0001 -80402384 .wrd:0002 -80402386 .byt:0001 -80402387 .byt:0001 -80402388 .dbl:0004 -8040238C .dbl:0004 -80402390 .byt:0001 -80402391 .byt:0001 -80402392 .byt:0001 -80402393 .byt:0001 -80402394 .wrd:0002 -80402396 .byt:0001 -80402397 .byt:0001 -80402398 .dbl:0004 -8040239C .dbl:0004 -804023A0 .byt:0001 -804023A1 .byt:0001 -804023A2 .byt:0001 -804023A3 .byt:0001 -804023A4 .wrd:0002 -804023A6 .byt:0001 -804023A7 .byt:0001 -804023A8 .dbl:0004 -804023AC .dbl:0004 -804023B0 .byt:0001 -804023B1 .byt:0001 -804023B2 .byt:0001 -804023B3 .byt:0001 -804023B4 .wrd:0002 -804023B6 .byt:0001 -804023B7 .byt:0001 -804023B8 .dbl:0004 -804023BC .dbl:0004 -804023C0 .byt:0001 -804023C1 .byt:0001 -804023C2 .byt:0001 -804023C3 .byt:0001 -804023C4 .wrd:0002 -804023C6 .byt:0001 -804023C7 .byt:0001 -804023C8 .dbl:0004 -804023CC .dbl:0004 -804023D0 .byt:0001 -804023D1 .byt:0001 -804023D2 .byt:0001 -804023D3 .byt:0001 -804023D4 .wrd:0002 -804023D6 .byt:0001 -804023D7 .byt:0001 -804023D8 .dbl:0004 -804023DC .dbl:0004 -804023E0 .byt:0001 -804023E1 .byt:0001 -804023E2 .byt:0001 -804023E3 .byt:0001 -804023E4 .wrd:0002 -804023E6 .byt:0001 -804023E7 .byt:0001 -804023E8 .dbl:0004 -804023EC .dbl:0004 -804023F0 .byt:0001 -804023F1 .byt:0001 -804023F2 .byt:0001 -804023F3 .byt:0001 -804023F4 .wrd:0002 -804023F6 .byt:0001 -804023F7 .byt:0001 -804023F8 .dbl:0004 -804023FC .dbl:0004 -80402400 .byt:0001 -80402401 .byt:0001 -80402402 .byt:0001 -80402403 .byt:0001 -80402404 .wrd:0002 -80402406 .byt:0001 -80402407 .byt:0001 -80402408 .dbl:0004 -8040240C .dbl:0004 -80402410 .byt:0001 -80402411 .byt:0001 -80402412 .byt:0001 -80402413 .byt:0001 -80402414 .wrd:0002 -80402416 .byt:0001 -80402417 .byt:0001 -80402418 .dbl:0004 -8040241C .dbl:0004 -80402420 .byt:0001 -80402421 .byt:0001 -80402422 .byt:0001 -80402423 .byt:0001 -80402424 .wrd:0002 -80402426 .byt:0001 -80402427 .byt:0001 -80402428 .dbl:0004 -8040242C .dbl:0004 -80402430 .byt:0001 -80402431 .byt:0001 -80402432 .byt:0001 -80402433 .byt:0001 -80402434 .wrd:0002 -80402436 .byt:0001 -80402437 .byt:0001 -80402438 .dbl:0004 -8040243C .dbl:0004 -80402440 .byt:0001 -80402441 .byt:0001 -80402442 .byt:0001 -80402443 .byt:0001 -80402444 .wrd:0002 -80402446 .byt:0001 -80402447 .byt:0001 -80402448 .dbl:0004 -8040244C .dbl:0004 -80402450 .byt:0001 -80402451 .byt:0001 -80402452 .byt:0001 -80402453 .byt:0001 -80402454 .wrd:0002 -80402456 .byt:0001 -80402457 .byt:0001 -80402458 .dbl:0004 -8040245C .dbl:0004 -80402460 .byt:0001 -80402461 .byt:0001 -80402462 .byt:0001 -80402463 .byt:0001 -80402464 .wrd:0002 -80402466 .byt:0001 -80402467 .byt:0001 -80402468 .dbl:0004 -8040246C .dbl:0004 -80402470 .byt:0001 -80402471 .byt:0001 -80402472 .byt:0001 -80402473 .byt:0001 -80402474 .wrd:0002 -80402476 .byt:0001 -80402477 .byt:0001 -80402478 .dbl:0004 -8040247C .dbl:0004 -80402480 .byt:0001 -80402481 .byt:0001 -80402482 .byt:0001 -80402483 .byt:0001 -80402484 .wrd:0002 -80402486 .byt:0001 -80402487 .byt:0001 -80402488 .dbl:0004 -8040248C .dbl:0004 -80402490 .byt:0001 -80402491 .byt:0001 -80402492 .byt:0001 -80402493 .byt:0001 -80402494 .wrd:0002 -80402496 .byt:0001 -80402497 .byt:0001 -80402498 .dbl:0004 -8040249C .dbl:0004 -804024A0 .byt:0001 -804024A1 .byt:0001 -804024A2 .byt:0001 -804024A3 .byt:0001 -804024A4 .wrd:0002 -804024A6 .byt:0001 -804024A7 .byt:0001 -804024A8 .dbl:0004 -804024AC .dbl:0004 -804024B0 .byt:0001 -804024B1 .byt:0001 -804024B2 .byt:0001 -804024B3 .byt:0001 -804024B4 .wrd:0002 -804024B6 .byt:0001 -804024B7 .byt:0001 -804024B8 .dbl:0004 -804024BC .dbl:0004 -804024C0 .byt:0001 -804024C1 .byt:0001 -804024C2 .byt:0001 -804024C3 .byt:0001 -804024C4 .wrd:0002 -804024C6 .byt:0001 -804024C7 .byt:0001 -804024C8 .dbl:0004 -804024CC .dbl:0004 -804024D0 .byt:0001 -804024D1 .byt:0001 -804024D2 .byt:0001 -804024D3 .byt:0001 -804024D4 .wrd:0002 -804024D6 .byt:0001 -804024D7 .byt:0001 -804024D8 .dbl:0004 -804024DC .dbl:0004 -804024E0 .byt:0001 -804024E1 .byt:0001 -804024E2 .byt:0001 -804024E3 .byt:0001 -804024E4 .wrd:0002 -804024E6 .byt:0001 -804024E7 .byt:0001 -804024E8 .dbl:0004 -804024EC .dbl:0004 -804024F0 .byt:0001 -804024F1 .byt:0001 -804024F2 .byt:0001 -804024F3 .byt:0001 -804024F4 .wrd:0002 -804024F6 .byt:0001 -804024F7 .byt:0001 -804024F8 .dbl:0004 -804024FC .dbl:0004 -80402500 .byt:0001 -80402501 .byt:0001 -80402502 .byt:0001 -80402503 .byt:0001 -80402504 .wrd:0002 -80402506 .byt:0001 -80402507 .byt:0001 -80402508 .dbl:0004 -8040250C .dbl:0004 -80402510 .byt:0001 -80402511 .byt:0001 -80402512 .byt:0001 -80402513 .byt:0001 -80402514 .wrd:0002 -80402516 .byt:0001 -80402517 .byt:0001 -80402518 .dbl:0004 -8040251C .dbl:0004 -80402520 .byt:0001 -80402521 .byt:0001 -80402522 .byt:0001 -80402523 .byt:0001 -80402524 .wrd:0002 -80402526 .byt:0001 -80402527 .byt:0001 -80402528 .dbl:0004 -8040252C .dbl:0004 -80402530 .byt:0001 -80402531 .byt:0001 -80402532 .byt:0001 -80402533 .byt:0001 -80402534 .wrd:0002 -80402536 .byt:0001 -80402537 .byt:0001 -80402538 .dbl:0004 -8040253C .dbl:0004 -80402540 .byt:0001 -80402541 .byt:0001 -80402542 .byt:0001 -80402543 .byt:0001 -80402544 .wrd:0002 -80402546 .byt:0001 -80402547 .byt:0001 -80402548 .dbl:0004 -8040254C .dbl:0004 -80402550 .byt:0001 -80402551 .byt:0001 -80402552 .byt:0001 -80402553 .byt:0001 -80402554 .wrd:0002 -80402556 .byt:0001 -80402557 .byt:0001 -80402558 .dbl:0004 -8040255C .dbl:0004 -80402560 .byt:0001 -80402561 .byt:0001 -80402562 .byt:0001 -80402563 .byt:0001 -80402564 .wrd:0002 -80402566 .byt:0001 -80402567 .byt:0001 -80402568 .dbl:0004 -8040256C .dbl:0004 -80402570 no_upgrade -80402578 hookshot_upgrade -8040258C @@return -80402594 strength_upgrade -804025B4 @@return -804025BC bomb_bag_upgrade -804025DC @@return -804025E4 bow_upgrade -80402604 @@return -8040260C slingshot_upgrade -8040262C @@return -80402634 wallet_upgrade -80402654 @@return -8040265C tycoon_wallet -80402670 scale_upgrade -80402684 @@return -8040268C nut_upgrade -804026A0 @@return -804026A8 stick_upgrade -804026BC @@return -804026C4 magic_upgrade -804026D4 @@return -804026DC arrows_to_rupee -804026F0 @@return -804026F8 bombs_to_rupee -8040270C @@return -80402714 seeds_to_rupee -80402728 @@return -80402730 no_effect -80402738 give_biggoron_sword -80402748 give_bottle -80402750 @@loop -8040277C @@return -80402784 give_dungeon_item -804027A0 give_small_key -804027B8 @not_negative -804027C8 give_defense -804027E8 give_magic -80402808 double_magic -80402830 bombchu_upgrade -80402854 @@return -8040285C ocarina_upgrade -80402870 @@return -80402878 give_fairy_ocarina -80402888 give_song -804028A4 inventory_check -80402910 @@return -80402918 override_skulltula_token -80402938 @@in_table -8040297C @@extended_effect -804029B0 @@not_extended -804029F8 @@item_effect -80402A04 @@return -80402A18 override_object_npc -80402A28 override_object_chest -80402A38 override_object -80402A50 @@return -80402A94 @@no_count_inc -80402A98 @@no_pending_clear -80402AA0 override_graphic -80402AB8 @@return -80402AD0 override_text -80402AEC @@return -80402AF4 override_action -80402B1C @@no_player_override -80402B78 @@return -80402B80 store_item_data_hook -80402BB4 store_item_data -80402C48 @@update_base_game -80402C78 @@not_chest -80402C88 @@not_negative -80402C8C @@return -80402C9C lookup_override -80402CC4 @@return -80402CD4 get_override_search_key -80402D14 @@not_skulltula -80402D4C @@valid_chest -80402D54 @@not_chest -80402D84 @@valid_collectable -80402D8C @@not_collectable -80402DB4 @@not_grotto_deku_scrub -80402DC4 @@return -80402DCC scan_override_table -80402E10 @@not_coop_item -80402E18 @@lookup_loop -80402E4C @@lookup_item_found -80402E80 @@return -80402E88 resolve_extended_item -80402E9C @@loop -80402EF0 @@not_extended -80402EF4 @@return -80402F0C override_great_fairy_cutscene -80402F64 @@item_fairy -80402F84 @@give_item -80402FB0 @@return -80402FB8 override_light_arrow_cutscene -80402FCC override_fairy_ocarina_cutscene -80402FE0 override_ocarina_songs -80402FF4 override_requiem_song -80403000 override_epona_song -80403020 override_suns_song -80403040 override_song_of_time -80403050 store_pending_special_item -80403060 @@find_duplicate_loop -8040307C @@find_empty_loop -80403094 @@return -8040309C override_saria_song_check -804030B8 @@get_item -804030C0 set_saria_song_flag -804030E0 set_dungeon_knowledge -8040310C @@set_flag -80403124 Shop_Check_Sold_Out -80403170 @@return -80403178 Shop_Set_Sold_Out -804031B0 @@return -804031B8 Shop_Keeper_Init_ID -804031D4 @@return -804031E4 Deku_Check_Sold_Out -80403208 @@continue -80403238 Deku_Set_Sold_Out -8040325C @@continue -80403290 before_game_state_update -804032E0 @@loop -80403338 @@no_pending_item -8040334C after_game_state_update -80403370 item_menu_description_id_periodic -80403384 @@item_menu_description_id_return_00000000 -8040338C item_menu_description_id_immediate_1 -804033A0 @@item_menu_description_id_return_00000001 -804033A8 item_menu_description_id_immediate_2 -804033BC @@item_menu_description_id_return_00000002 -804033C4 item_menu_description_id_immediate_3 -804033D8 @@item_menu_description_id_return_00000003 -804033E0 give_master_sword -804033F8 before_time_travel -80403430 after_time_travel -8040346C @@going_back -80403474 @@done -804034A4 update_c_button -804034D0 @@return -804034D8 after_going_forward -80403514 @@no_init -80403524 after_going_back -80403554 @@not_swordless -8040355C initialize_adult -80403584 @@no_mirror_shield -804035C4 init_adult_button -804035F0 @@empty -804035F8 @@loop -80403650 @@set_empty -8040365C @@return -80403664 .byt:0001 -80403664 ADULT_INIT_ITEMS -80403665 .byt:0001 -80403666 .byt:0001 -80403667 .byt:0001 -80403668 .byt:0001 -80403669 .byt:0001 -8040366A .byt:0001 -8040366B .byt:0001 -8040366C .byt:0001 -80403670 .byt:0001 -80403670 ADULT_VALID_ITEMS -80403671 .byt:0001 -80403672 .byt:0001 -80403673 .byt:0001 -80403674 .byt:0001 -80403675 .byt:0001 -80403676 .byt:0001 -80403677 .byt:0001 -80403678 .byt:0001 -80403679 .byt:0001 -8040367A .byt:0001 -8040367B .byt:0001 -8040367C .byt:0001 -8040367D .byt:0001 -8040367E .byt:0001 -8040367F .byt:0001 -80403680 .byt:0001 -80403681 .byt:0001 -80403682 .byt:0001 -80403683 .byt:0001 -80403684 .byt:0001 -80403685 .byt:0001 -80403686 .byt:0001 -80403687 .byt:0001 -80403688 suns_song_fix_event -804036BC @@child -804036CC @@return -804036D4 suns_song_fix -804036E8 @@check_suns_status -80403704 @@disable_suns -8040370C @@return -80403714 warp_song_fix -80403740 @@child -80403750 @@return -80403758 Check_Has_Epona_Song -804037A4 @@return -804037AC save_scarecrow_song -804037F0 @@copy_song -804037F8 write_initial_save -80403804 @@save_data_loop -80403834 @@overwrite_type -8040383C @@return -80403844 get_name_char_1 -80403860 get_name_char_2 -8040387C get_name_char -804038A8 @@coop_player_name -804038C0 @@return -804038C8 reset_player_name_id -804038E8 .byt:0768 -80405000 text_init,0000002C -8040502C text_print,000000A8 -804050D4 text_flush,00000148 -8040521C draw_dungeon_info,000009CC -80405BE8 c_init,0000002C -80405C14 c_after_game_state_update,00000088 -80405C9C heap_init,00000014 -80405CB0 heap_alloc,00000034 -80405CE4 file_init,00000044 -80405D28 disp_buf_init,00000018 -80405D40 sprite_bytes_per_tile,00000028 -80405D68 sprite_bytes,00000030 -80405D98 sprite_load,00000254 -80405FEC sprite_draw,000000F0 -804060DC draw_setup,000001DC -804062B8 gfx_init,00000148 -8040640C .byt:000E -8040640C cfg_dungeon_rewards -8040641C .byt:0012 -8040641C medal_colors -80406430 .byt:009C -80406430 dungeons -804064CC .byt:0010 -804064CC font_sprite -804064DC .byt:0010 -804064DC quest_items_sprite -804064EC .byt:0010 -804064EC medals_sprite -804064FC .byt:0010 -804064FC stones_sprite -8040650C .byt:0004 -8040650C cfg_dungeon_info_enable -80406510 .byt:0004 -80406510 dungeon_count -8040651C .byt:0004 -8040651C cfg_dungeon_info_reward_need_altar -80406520 .byt:0004 -80406520 cfg_dungeon_info_reward_need_compass -80406524 .byt:0004 -80406524 cfg_dungeon_info_mq_need_map -80406528 .byt:0004 -80406528 cfg_dungeon_info_mq_enable -8040652C .byt:0004 -8040652C heap_next -80406530 .byt:000E -80406530 cfg_dungeon_is_mq -80406540 .byt:0010 -80406540 setup_db -80406550 .byt:14C8 -80406550 FONT_TEXTURE -80407A18 .byt:85E8 -80480000 DUMMY_ACTOR -80500000 C_HEAP ->>>>>>> Dev  \ No newline at end of file diff --git a/ItemList.py b/ItemList.py index ccb38c9f7..fc810e162 100644 --- a/ItemList.py +++ b/ItemList.py @@ -683,7 +683,7 @@ def get_pool_core(world): else: pool.extend(shopsanity_rupees) - if not world.shuffle_scrubs == 'off': + if world.shuffle_scrubs != 'off': if world.dungeon_mq['DT']: pool.append('Deku Shield') if world.dungeon_mq['DC']: diff --git a/data/symbols.json b/data/symbols.json index aaf6888b4..6727946a2 100644 --- a/data/symbols.json +++ b/data/symbols.json @@ -1,7 +1,6 @@ -<<<<<<< HEAD { - "ADULT_INIT_ITEMS": "03483644", - "ADULT_VALID_ITEMS": "03483650", + "ADULT_INIT_ITEMS": "03483664", + "ADULT_VALID_ITEMS": "03483670", "COOP_GET_ITEM": "03481C01", "EXTENDED_ITEM_DATA": "03482008", "FAIRY_ITEMS": "03481D05", @@ -38,41 +37,4 @@ "quest_items_sprite": "034B4678", "setup_db": "034B4738", "stones_sprite": "034B46A8" -======= -{ - "ADULT_INIT_ITEMS": "03483664", - "ADULT_VALID_ITEMS": "03483670", - "COOP_GET_ITEM": "03481C01", - "EXTENDED_ITEM_DATA": "03482008", - "FAIRY_ITEMS": "03481D05", - "FAIRY_OCARINA_ITEM": "03481D04", - "FONT_TEXTURE": "034B4550", - "INITIAL_SAVE_DATA": "03481800", - "ITEM_OVERRIDES": "03481000", - "ITEM_TABLE": "03482050", - "LIGHT_ARROW_ITEM": "03481D03", - "PENDING_SPECIAL_ITEM": "03482018", - "PENDING_SPECIAL_ITEM_END": "0348201B", - "PLAYER_ID": "03481C00", - "PLAYER_NAMES": "03481C03", - "PLAYER_NAME_ID": "03481C02", - "PLAYER_OVERRIDE_DATA": "03482000", - "TIME_TRAVEL_SAVED_EQUIPS": "0348201C", - "cfg_dungeon_info_enable": "034B450C", - "cfg_dungeon_info_mq_enable": "034B4528", - "cfg_dungeon_info_mq_need_map": "034B4524", - "cfg_dungeon_info_reward_need_altar": "034B451C", - "cfg_dungeon_info_reward_need_compass": "034B4520", - "cfg_dungeon_is_mq": "034B4530", - "cfg_dungeon_rewards": "034B440C", - "dungeon_count": "034B4510", - "dungeons": "034B4430", - "font_sprite": "034B44CC", - "heap_next": "034B452C", - "medal_colors": "034B441C", - "medals_sprite": "034B44EC", - "quest_items_sprite": "034B44DC", - "setup_db": "034B4540", - "stones_sprite": "034B44FC" ->>>>>>> Dev } \ No newline at end of file diff --git a/version.py b/version.py index f72333fba..098e6adba 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.21.7 f.LUM' +__version__ = '2.21.8 f.LUM' From 16b3a427e83a9880a168a2796ea3adeef3736b29 Mon Sep 17 00:00:00 2001 From: Nick Langille Date: Fri, 12 Oct 2018 01:29:49 -0400 Subject: [PATCH 686/755] Fix address comment --- ASM/src/hacks.asm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ASM/src/hacks.asm b/ASM/src/hacks.asm index 766b10555..039cb716b 100755 --- a/ASM/src/hacks.asm +++ b/ASM/src/hacks.asm @@ -167,7 +167,7 @@ ; Runs after the file select menu is rendered ; Replaces: code that draws the fade-out rectangle on file load -.org 0xBAF738 ; In memory: 0x803B3580 +.org 0xBAF738 ; In memory: 0x803B3538 .area 0x60, 0 jal draw_file_select_hash andi a0, t8, 0xFF ; a0 = alpha channel of fade-out rectangle From 80906e767f7b6d9b6fa9b03f8013ef1c9eebe0aa Mon Sep 17 00:00:00 2001 From: Nick Langille Date: Fri, 12 Oct 2018 01:38:54 -0400 Subject: [PATCH 687/755] Fix address comment --- ASM/src/hacks.asm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ASM/src/hacks.asm b/ASM/src/hacks.asm index 095aa86c6..2b8a7cc23 100755 --- a/ASM/src/hacks.asm +++ b/ASM/src/hacks.asm @@ -173,7 +173,7 @@ ; Runs after the file select menu is rendered ; Replaces: code that draws the fade-out rectangle on file load -.org 0xBAF738 ; In memory: 0x803B3580 +.org 0xBAF738 ; In memory: 0x803B3538 .area 0x60, 0 jal draw_file_select_hash andi a0, t8, 0xFF ; a0 = alpha channel of fade-out rectangle From c6aa01d962afdcd380414821397389995035d146 Mon Sep 17 00:00:00 2001 From: Nick Langille Date: Fri, 12 Oct 2018 01:39:19 -0400 Subject: [PATCH 688/755] Rebuild ASM --- ASM/build/asm_symbols.txt | 2178 +++--- ASM/build/bundle.o | Bin 11068 -> 11068 bytes ASM/build/c_symbols.txt | 134 +- data/rom_patch.txt | 13264 ++++++++++++++++++------------------ data/symbols.json | 34 +- 5 files changed, 7806 insertions(+), 7804 deletions(-) diff --git a/ASM/build/asm_symbols.txt b/ASM/build/asm_symbols.txt index e800c8ba1..1a60ccbb7 100644 --- a/ASM/build/asm_symbols.txt +++ b/ASM/build/asm_symbols.txt @@ -1,1090 +1,1090 @@ -00000000 0 -00000000 .byt:4000000 -00000010 .dbl:0008 -00000010 ITEM_TABLE_ROW_SIZE -000005B4 Shop_Item_Save_Offset -0000D260 .dbl:0010 -0000D270 .dbl:0010 -008A9C00 .byt:0400 -00B529A0 skip_GS_BGS_text -00BAF750 .byt:0048 -00D74990 skip_steal_tunic -00D7E178 @@not_in_ranch -00D7E18C @@return -00D7E18C return_from_the_other_function -00D7E3AC @@hyrule_check -00D7E3CC @@lon_lon_check -00D7E3F4 @@return_false -00D7E7A4 @@set_ev0 -00D7E7B8 set_ev1 -00D7E8A8 @@unsafe -00D7E8C0 @@safe -00D7E8D4 @@not_hyrule -00D7E920 ev0_return -00DB13D3 .byt:0001 -00DF264F .byt:0001 -00E2F093 .byt:0001 -00EBB8B0 @Deku_Check_True -00EBB8C0 @Deku_Check_False -00EC68D0 .byt:0014 -00EC69C0 .byt:0014 -00EC9CE7 .byt:0001 -8011A5D0 SAVE_CONTEXT -801C84A0 GLOBAL_CONTEXT -801DAA30 PLAYER_ACTOR -803A9E7E GET_ITEMTABLE -80400000 init -80400050 DebugOutput -80401000 .byt:0800 -80401000 ITEM_OVERRIDES -80401800 .byt:0400 -80401800 INITIAL_SAVE_DATA -80401C00 .byt:0001 -80401C00 PLAYER_ID -80401C01 .byt:0001 -80401C01 COOP_GET_ITEM -80401C02 .byt:0001 -80401C02 PLAYER_NAME_ID -80401C03 .byt:0100 -80401C03 PLAYER_NAMES -80401D03 .byt:0001 -80401D03 LIGHT_ARROW_ITEM -80401D04 .byt:0001 -80401D04 FAIRY_OCARINA_ITEM -80401D05 .byt:0001 -80401D05 FAIRY_ITEMS -80401D06 .byt:0001 -80401D07 .byt:0001 -80401D08 .byt:0001 -80401D09 .byt:0001 -80401D0A .byt:0001 -80401D0C .byt:02F4 -80402000 .dbl:0008 -80402000 PLAYER_OVERRIDE_DATA -80402008 .dbl:0010 -80402008 EXTENDED_ITEM_DATA -80402018 .byt:0001 -80402018 PENDING_SPECIAL_ITEM -80402019 .byt:0001 -8040201A .byt:0001 -8040201B .byt:0001 -8040201B PENDING_SPECIAL_ITEM_END -8040201C .dbl:0004 -8040201C TIME_TRAVEL_SAVED_EQUIPS -80402020 .dbl:0004 -80402024 .wrd:0002 -80402026 .wrd:0002 -80402028 .byt:0028 -80402050 .byt:0001 -80402050 ITEM_TABLE -80402051 .byt:0001 -80402052 .byt:0001 -80402053 .byt:0001 -80402054 .wrd:0002 -80402056 .byt:0001 -80402057 .byt:0001 -80402058 .dbl:0004 -8040205C .dbl:0004 -80402060 .byt:0001 -80402061 .byt:0001 -80402062 .byt:0001 -80402063 .byt:0001 -80402064 .wrd:0002 -80402066 .byt:0001 -80402067 .byt:0001 -80402068 .dbl:0004 -8040206C .dbl:0004 -80402070 .byt:0001 -80402071 .byt:0001 -80402072 .byt:0001 -80402073 .byt:0001 -80402074 .wrd:0002 -80402076 .byt:0001 -80402077 .byt:0001 -80402078 .dbl:0004 -8040207C .dbl:0004 -80402080 .byt:0001 -80402081 .byt:0001 -80402082 .byt:0001 -80402083 .byt:0001 -80402084 .wrd:0002 -80402086 .byt:0001 -80402087 .byt:0001 -80402088 .dbl:0004 -8040208C .dbl:0004 -80402090 .byt:0001 -80402091 .byt:0001 -80402092 .byt:0001 -80402093 .byt:0001 -80402094 .wrd:0002 -80402096 .byt:0001 -80402097 .byt:0001 -80402098 .dbl:0004 -8040209C .dbl:0004 -804020A0 .byt:0001 -804020A1 .byt:0001 -804020A2 .byt:0001 -804020A3 .byt:0001 -804020A4 .wrd:0002 -804020A6 .byt:0001 -804020A7 .byt:0001 -804020A8 .dbl:0004 -804020AC .dbl:0004 -804020B0 .byt:0001 -804020B1 .byt:0001 -804020B2 .byt:0001 -804020B3 .byt:0001 -804020B4 .wrd:0002 -804020B6 .byt:0001 -804020B7 .byt:0001 -804020B8 .dbl:0004 -804020BC .dbl:0004 -804020C0 .byt:0001 -804020C1 .byt:0001 -804020C2 .byt:0001 -804020C3 .byt:0001 -804020C4 .wrd:0002 -804020C6 .byt:0001 -804020C7 .byt:0001 -804020C8 .dbl:0004 -804020CC .dbl:0004 -804020D0 .byt:0001 -804020D1 .byt:0001 -804020D2 .byt:0001 -804020D3 .byt:0001 -804020D4 .wrd:0002 -804020D6 .byt:0001 -804020D7 .byt:0001 -804020D8 .dbl:0004 -804020DC .dbl:0004 -804020E0 .byt:0001 -804020E1 .byt:0001 -804020E2 .byt:0001 -804020E3 .byt:0001 -804020E4 .wrd:0002 -804020E6 .byt:0001 -804020E7 .byt:0001 -804020E8 .dbl:0004 -804020EC .dbl:0004 -804020F0 .byt:0001 -804020F1 .byt:0001 -804020F2 .byt:0001 -804020F3 .byt:0001 -804020F4 .wrd:0002 -804020F6 .byt:0001 -804020F7 .byt:0001 -804020F8 .dbl:0004 -804020FC .dbl:0004 -80402100 .byt:0001 -80402101 .byt:0001 -80402102 .byt:0001 -80402103 .byt:0001 -80402104 .wrd:0002 -80402106 .byt:0001 -80402107 .byt:0001 -80402108 .dbl:0004 -8040210C .dbl:0004 -80402110 .byt:0001 -80402111 .byt:0001 -80402112 .byt:0001 -80402113 .byt:0001 -80402114 .wrd:0002 -80402116 .byt:0001 -80402117 .byt:0001 -80402118 .dbl:0004 -8040211C .dbl:0004 -80402120 .byt:0001 -80402121 .byt:0001 -80402122 .byt:0001 -80402123 .byt:0001 -80402124 .wrd:0002 -80402126 .byt:0001 -80402127 .byt:0001 -80402128 .dbl:0004 -8040212C .dbl:0004 -80402130 .byt:0001 -80402131 .byt:0001 -80402132 .byt:0001 -80402133 .byt:0001 -80402134 .wrd:0002 -80402136 .byt:0001 -80402137 .byt:0001 -80402138 .dbl:0004 -8040213C .dbl:0004 -80402140 .byt:0001 -80402141 .byt:0001 -80402142 .byt:0001 -80402143 .byt:0001 -80402144 .wrd:0002 -80402146 .byt:0001 -80402147 .byt:0001 -80402148 .dbl:0004 -8040214C .dbl:0004 -80402150 .byt:0001 -80402151 .byt:0001 -80402152 .byt:0001 -80402153 .byt:0001 -80402154 .wrd:0002 -80402156 .byt:0001 -80402157 .byt:0001 -80402158 .dbl:0004 -8040215C .dbl:0004 -80402160 .byt:0001 -80402161 .byt:0001 -80402162 .byt:0001 -80402163 .byt:0001 -80402164 .wrd:0002 -80402166 .byt:0001 -80402167 .byt:0001 -80402168 .dbl:0004 -8040216C .dbl:0004 -80402170 .byt:0001 -80402171 .byt:0001 -80402172 .byt:0001 -80402173 .byt:0001 -80402174 .wrd:0002 -80402176 .byt:0001 -80402177 .byt:0001 -80402178 .dbl:0004 -8040217C .dbl:0004 -80402180 .byt:0001 -80402181 .byt:0001 -80402182 .byt:0001 -80402183 .byt:0001 -80402184 .wrd:0002 -80402186 .byt:0001 -80402187 .byt:0001 -80402188 .dbl:0004 -8040218C .dbl:0004 -80402190 .byt:0001 -80402191 .byt:0001 -80402192 .byt:0001 -80402193 .byt:0001 -80402194 .wrd:0002 -80402196 .byt:0001 -80402197 .byt:0001 -80402198 .dbl:0004 -8040219C .dbl:0004 -804021A0 .byt:0001 -804021A1 .byt:0001 -804021A2 .byt:0001 -804021A3 .byt:0001 -804021A4 .wrd:0002 -804021A6 .byt:0001 -804021A7 .byt:0001 -804021A8 .dbl:0004 -804021AC .dbl:0004 -804021B0 .byt:0001 -804021B1 .byt:0001 -804021B2 .byt:0001 -804021B3 .byt:0001 -804021B4 .wrd:0002 -804021B6 .byt:0001 -804021B7 .byt:0001 -804021B8 .dbl:0004 -804021BC .dbl:0004 -804021C0 .byt:0001 -804021C1 .byt:0001 -804021C2 .byt:0001 -804021C3 .byt:0001 -804021C4 .wrd:0002 -804021C6 .byt:0001 -804021C7 .byt:0001 -804021C8 .dbl:0004 -804021CC .dbl:0004 -804021D0 .byt:0001 -804021D1 .byt:0001 -804021D2 .byt:0001 -804021D3 .byt:0001 -804021D4 .wrd:0002 -804021D6 .byt:0001 -804021D7 .byt:0001 -804021D8 .dbl:0004 -804021DC .dbl:0004 -804021E0 .byt:0001 -804021E1 .byt:0001 -804021E2 .byt:0001 -804021E3 .byt:0001 -804021E4 .wrd:0002 -804021E6 .byt:0001 -804021E7 .byt:0001 -804021E8 .dbl:0004 -804021EC .dbl:0004 -804021F0 .byt:0001 -804021F1 .byt:0001 -804021F2 .byt:0001 -804021F3 .byt:0001 -804021F4 .wrd:0002 -804021F6 .byt:0001 -804021F7 .byt:0001 -804021F8 .dbl:0004 -804021FC .dbl:0004 -80402200 .byt:0001 -80402201 .byt:0001 -80402202 .byt:0001 -80402203 .byt:0001 -80402204 .wrd:0002 -80402206 .byt:0001 -80402207 .byt:0001 -80402208 .dbl:0004 -8040220C .dbl:0004 -80402210 .byt:0001 -80402211 .byt:0001 -80402212 .byt:0001 -80402213 .byt:0001 -80402214 .wrd:0002 -80402216 .byt:0001 -80402217 .byt:0001 -80402218 .dbl:0004 -8040221C .dbl:0004 -80402220 .byt:0001 -80402221 .byt:0001 -80402222 .byt:0001 -80402223 .byt:0001 -80402224 .wrd:0002 -80402226 .byt:0001 -80402227 .byt:0001 -80402228 .dbl:0004 -8040222C .dbl:0004 -80402230 .byt:0001 -80402231 .byt:0001 -80402232 .byt:0001 -80402233 .byt:0001 -80402234 .wrd:0002 -80402236 .byt:0001 -80402237 .byt:0001 -80402238 .dbl:0004 -8040223C .dbl:0004 -80402240 .byt:0001 -80402241 .byt:0001 -80402242 .byt:0001 -80402243 .byt:0001 -80402244 .wrd:0002 -80402246 .byt:0001 -80402247 .byt:0001 -80402248 .dbl:0004 -8040224C .dbl:0004 -80402250 .byt:0001 -80402251 .byt:0001 -80402252 .byt:0001 -80402253 .byt:0001 -80402254 .wrd:0002 -80402256 .byt:0001 -80402257 .byt:0001 -80402258 .dbl:0004 -8040225C .dbl:0004 -80402260 .byt:0001 -80402261 .byt:0001 -80402262 .byt:0001 -80402263 .byt:0001 -80402264 .wrd:0002 -80402266 .byt:0001 -80402267 .byt:0001 -80402268 .dbl:0004 -8040226C .dbl:0004 -80402270 .byt:0001 -80402271 .byt:0001 -80402272 .byt:0001 -80402273 .byt:0001 -80402274 .wrd:0002 -80402276 .byt:0001 -80402277 .byt:0001 -80402278 .dbl:0004 -8040227C .dbl:0004 -80402280 .byt:0001 -80402281 .byt:0001 -80402282 .byt:0001 -80402283 .byt:0001 -80402284 .wrd:0002 -80402286 .byt:0001 -80402287 .byt:0001 -80402288 .dbl:0004 -8040228C .dbl:0004 -80402290 .byt:0001 -80402291 .byt:0001 -80402292 .byt:0001 -80402293 .byt:0001 -80402294 .wrd:0002 -80402296 .byt:0001 -80402297 .byt:0001 -80402298 .dbl:0004 -8040229C .dbl:0004 -804022A0 .byt:0001 -804022A1 .byt:0001 -804022A2 .byt:0001 -804022A3 .byt:0001 -804022A4 .wrd:0002 -804022A6 .byt:0001 -804022A7 .byt:0001 -804022A8 .dbl:0004 -804022AC .dbl:0004 -804022B0 .byt:0001 -804022B1 .byt:0001 -804022B2 .byt:0001 -804022B3 .byt:0001 -804022B4 .wrd:0002 -804022B6 .byt:0001 -804022B7 .byt:0001 -804022B8 .dbl:0004 -804022BC .dbl:0004 -804022C0 .byt:0001 -804022C1 .byt:0001 -804022C2 .byt:0001 -804022C3 .byt:0001 -804022C4 .wrd:0002 -804022C6 .byt:0001 -804022C7 .byt:0001 -804022C8 .dbl:0004 -804022CC .dbl:0004 -804022D0 .byt:0001 -804022D1 .byt:0001 -804022D2 .byt:0001 -804022D3 .byt:0001 -804022D4 .wrd:0002 -804022D6 .byt:0001 -804022D7 .byt:0001 -804022D8 .dbl:0004 -804022DC .dbl:0004 -804022E0 .byt:0001 -804022E1 .byt:0001 -804022E2 .byt:0001 -804022E3 .byt:0001 -804022E4 .wrd:0002 -804022E6 .byt:0001 -804022E7 .byt:0001 -804022E8 .dbl:0004 -804022EC .dbl:0004 -804022F0 .byt:0001 -804022F1 .byt:0001 -804022F2 .byt:0001 -804022F3 .byt:0001 -804022F4 .wrd:0002 -804022F6 .byt:0001 -804022F7 .byt:0001 -804022F8 .dbl:0004 -804022FC .dbl:0004 -80402300 .byt:0001 -80402301 .byt:0001 -80402302 .byt:0001 -80402303 .byt:0001 -80402304 .wrd:0002 -80402306 .byt:0001 -80402307 .byt:0001 -80402308 .dbl:0004 -8040230C .dbl:0004 -80402310 .byt:0001 -80402311 .byt:0001 -80402312 .byt:0001 -80402313 .byt:0001 -80402314 .wrd:0002 -80402316 .byt:0001 -80402317 .byt:0001 -80402318 .dbl:0004 -8040231C .dbl:0004 -80402320 .byt:0001 -80402321 .byt:0001 -80402322 .byt:0001 -80402323 .byt:0001 -80402324 .wrd:0002 -80402326 .byt:0001 -80402327 .byt:0001 -80402328 .dbl:0004 -8040232C .dbl:0004 -80402330 .byt:0001 -80402331 .byt:0001 -80402332 .byt:0001 -80402333 .byt:0001 -80402334 .wrd:0002 -80402336 .byt:0001 -80402337 .byt:0001 -80402338 .dbl:0004 -8040233C .dbl:0004 -80402340 .byt:0001 -80402341 .byt:0001 -80402342 .byt:0001 -80402343 .byt:0001 -80402344 .wrd:0002 -80402346 .byt:0001 -80402347 .byt:0001 -80402348 .dbl:0004 -8040234C .dbl:0004 -80402350 .byt:0001 -80402351 .byt:0001 -80402352 .byt:0001 -80402353 .byt:0001 -80402354 .wrd:0002 -80402356 .byt:0001 -80402357 .byt:0001 -80402358 .dbl:0004 -8040235C .dbl:0004 -80402360 .byt:0001 -80402361 .byt:0001 -80402362 .byt:0001 -80402363 .byt:0001 -80402364 .wrd:0002 -80402366 .byt:0001 -80402367 .byt:0001 -80402368 .dbl:0004 -8040236C .dbl:0004 -80402370 .byt:0001 -80402371 .byt:0001 -80402372 .byt:0001 -80402373 .byt:0001 -80402374 .wrd:0002 -80402376 .byt:0001 -80402377 .byt:0001 -80402378 .dbl:0004 -8040237C .dbl:0004 -80402380 .byt:0001 -80402381 .byt:0001 -80402382 .byt:0001 -80402383 .byt:0001 -80402384 .wrd:0002 -80402386 .byt:0001 -80402387 .byt:0001 -80402388 .dbl:0004 -8040238C .dbl:0004 -80402390 .byt:0001 -80402391 .byt:0001 -80402392 .byt:0001 -80402393 .byt:0001 -80402394 .wrd:0002 -80402396 .byt:0001 -80402397 .byt:0001 -80402398 .dbl:0004 -8040239C .dbl:0004 -804023A0 .byt:0001 -804023A1 .byt:0001 -804023A2 .byt:0001 -804023A3 .byt:0001 -804023A4 .wrd:0002 -804023A6 .byt:0001 -804023A7 .byt:0001 -804023A8 .dbl:0004 -804023AC .dbl:0004 -804023B0 .byt:0001 -804023B1 .byt:0001 -804023B2 .byt:0001 -804023B3 .byt:0001 -804023B4 .wrd:0002 -804023B6 .byt:0001 -804023B7 .byt:0001 -804023B8 .dbl:0004 -804023BC .dbl:0004 -804023C0 .byt:0001 -804023C1 .byt:0001 -804023C2 .byt:0001 -804023C3 .byt:0001 -804023C4 .wrd:0002 -804023C6 .byt:0001 -804023C7 .byt:0001 -804023C8 .dbl:0004 -804023CC .dbl:0004 -804023D0 .byt:0001 -804023D1 .byt:0001 -804023D2 .byt:0001 -804023D3 .byt:0001 -804023D4 .wrd:0002 -804023D6 .byt:0001 -804023D7 .byt:0001 -804023D8 .dbl:0004 -804023DC .dbl:0004 -804023E0 .byt:0001 -804023E1 .byt:0001 -804023E2 .byt:0001 -804023E3 .byt:0001 -804023E4 .wrd:0002 -804023E6 .byt:0001 -804023E7 .byt:0001 -804023E8 .dbl:0004 -804023EC .dbl:0004 -804023F0 .byt:0001 -804023F1 .byt:0001 -804023F2 .byt:0001 -804023F3 .byt:0001 -804023F4 .wrd:0002 -804023F6 .byt:0001 -804023F7 .byt:0001 -804023F8 .dbl:0004 -804023FC .dbl:0004 -80402400 .byt:0001 -80402401 .byt:0001 -80402402 .byt:0001 -80402403 .byt:0001 -80402404 .wrd:0002 -80402406 .byt:0001 -80402407 .byt:0001 -80402408 .dbl:0004 -8040240C .dbl:0004 -80402410 .byt:0001 -80402411 .byt:0001 -80402412 .byt:0001 -80402413 .byt:0001 -80402414 .wrd:0002 -80402416 .byt:0001 -80402417 .byt:0001 -80402418 .dbl:0004 -8040241C .dbl:0004 -80402420 .byt:0001 -80402421 .byt:0001 -80402422 .byt:0001 -80402423 .byt:0001 -80402424 .wrd:0002 -80402426 .byt:0001 -80402427 .byt:0001 -80402428 .dbl:0004 -8040242C .dbl:0004 -80402430 .byt:0001 -80402431 .byt:0001 -80402432 .byt:0001 -80402433 .byt:0001 -80402434 .wrd:0002 -80402436 .byt:0001 -80402437 .byt:0001 -80402438 .dbl:0004 -8040243C .dbl:0004 -80402440 .byt:0001 -80402441 .byt:0001 -80402442 .byt:0001 -80402443 .byt:0001 -80402444 .wrd:0002 -80402446 .byt:0001 -80402447 .byt:0001 -80402448 .dbl:0004 -8040244C .dbl:0004 -80402450 .byt:0001 -80402451 .byt:0001 -80402452 .byt:0001 -80402453 .byt:0001 -80402454 .wrd:0002 -80402456 .byt:0001 -80402457 .byt:0001 -80402458 .dbl:0004 -8040245C .dbl:0004 -80402460 .byt:0001 -80402461 .byt:0001 -80402462 .byt:0001 -80402463 .byt:0001 -80402464 .wrd:0002 -80402466 .byt:0001 -80402467 .byt:0001 -80402468 .dbl:0004 -8040246C .dbl:0004 -80402470 .byt:0001 -80402471 .byt:0001 -80402472 .byt:0001 -80402473 .byt:0001 -80402474 .wrd:0002 -80402476 .byt:0001 -80402477 .byt:0001 -80402478 .dbl:0004 -8040247C .dbl:0004 -80402480 .byt:0001 -80402481 .byt:0001 -80402482 .byt:0001 -80402483 .byt:0001 -80402484 .wrd:0002 -80402486 .byt:0001 -80402487 .byt:0001 -80402488 .dbl:0004 -8040248C .dbl:0004 -80402490 .byt:0001 -80402491 .byt:0001 -80402492 .byt:0001 -80402493 .byt:0001 -80402494 .wrd:0002 -80402496 .byt:0001 -80402497 .byt:0001 -80402498 .dbl:0004 -8040249C .dbl:0004 -804024A0 .byt:0001 -804024A1 .byt:0001 -804024A2 .byt:0001 -804024A3 .byt:0001 -804024A4 .wrd:0002 -804024A6 .byt:0001 -804024A7 .byt:0001 -804024A8 .dbl:0004 -804024AC .dbl:0004 -804024B0 .byt:0001 -804024B1 .byt:0001 -804024B2 .byt:0001 -804024B3 .byt:0001 -804024B4 .wrd:0002 -804024B6 .byt:0001 -804024B7 .byt:0001 -804024B8 .dbl:0004 -804024BC .dbl:0004 -804024C0 .byt:0001 -804024C1 .byt:0001 -804024C2 .byt:0001 -804024C3 .byt:0001 -804024C4 .wrd:0002 -804024C6 .byt:0001 -804024C7 .byt:0001 -804024C8 .dbl:0004 -804024CC .dbl:0004 -804024D0 .byt:0001 -804024D1 .byt:0001 -804024D2 .byt:0001 -804024D3 .byt:0001 -804024D4 .wrd:0002 -804024D6 .byt:0001 -804024D7 .byt:0001 -804024D8 .dbl:0004 -804024DC .dbl:0004 -804024E0 .byt:0001 -804024E1 .byt:0001 -804024E2 .byt:0001 -804024E3 .byt:0001 -804024E4 .wrd:0002 -804024E6 .byt:0001 -804024E7 .byt:0001 -804024E8 .dbl:0004 -804024EC .dbl:0004 -804024F0 .byt:0001 -804024F1 .byt:0001 -804024F2 .byt:0001 -804024F3 .byt:0001 -804024F4 .wrd:0002 -804024F6 .byt:0001 -804024F7 .byt:0001 -804024F8 .dbl:0004 -804024FC .dbl:0004 -80402500 .byt:0001 -80402501 .byt:0001 -80402502 .byt:0001 -80402503 .byt:0001 -80402504 .wrd:0002 -80402506 .byt:0001 -80402507 .byt:0001 -80402508 .dbl:0004 -8040250C .dbl:0004 -80402510 .byt:0001 -80402511 .byt:0001 -80402512 .byt:0001 -80402513 .byt:0001 -80402514 .wrd:0002 -80402516 .byt:0001 -80402517 .byt:0001 -80402518 .dbl:0004 -8040251C .dbl:0004 -80402520 .byt:0001 -80402521 .byt:0001 -80402522 .byt:0001 -80402523 .byt:0001 -80402524 .wrd:0002 -80402526 .byt:0001 -80402527 .byt:0001 -80402528 .dbl:0004 -8040252C .dbl:0004 -80402530 .byt:0001 -80402531 .byt:0001 -80402532 .byt:0001 -80402533 .byt:0001 -80402534 .wrd:0002 -80402536 .byt:0001 -80402537 .byt:0001 -80402538 .dbl:0004 -8040253C .dbl:0004 -80402540 .byt:0001 -80402541 .byt:0001 -80402542 .byt:0001 -80402543 .byt:0001 -80402544 .wrd:0002 -80402546 .byt:0001 -80402547 .byt:0001 -80402548 .dbl:0004 -8040254C .dbl:0004 -80402550 .byt:0001 -80402551 .byt:0001 -80402552 .byt:0001 -80402553 .byt:0001 -80402554 .wrd:0002 -80402556 .byt:0001 -80402557 .byt:0001 -80402558 .dbl:0004 -8040255C .dbl:0004 -80402560 .byt:0001 -80402561 .byt:0001 -80402562 .byt:0001 -80402563 .byt:0001 -80402564 .wrd:0002 -80402566 .byt:0001 -80402567 .byt:0001 -80402568 .dbl:0004 -8040256C .dbl:0004 -80402570 no_upgrade -80402578 hookshot_upgrade -8040258C @@return -80402594 strength_upgrade -804025B4 @@return -804025BC bomb_bag_upgrade -804025DC @@return -804025E4 bow_upgrade -80402604 @@return -8040260C slingshot_upgrade -8040262C @@return -80402634 wallet_upgrade -80402654 @@return -8040265C tycoon_wallet -80402670 scale_upgrade -80402684 @@return -8040268C nut_upgrade -804026A0 @@return -804026A8 stick_upgrade -804026BC @@return -804026C4 magic_upgrade -804026D4 @@return -804026DC arrows_to_rupee -804026F0 @@return -804026F8 bombs_to_rupee -8040270C @@return -80402714 seeds_to_rupee -80402728 @@return -80402730 no_effect -80402738 give_biggoron_sword -80402748 give_bottle -80402750 @@loop -8040277C @@return -80402784 give_dungeon_item -804027A0 give_small_key -804027B8 @not_negative -804027C8 give_defense -804027E8 give_magic -80402808 double_magic -80402830 bombchu_upgrade -80402854 @@return -8040285C ocarina_upgrade -80402870 @@return -80402878 give_fairy_ocarina -80402888 give_song -804028A4 inventory_check -80402910 @@return -80402918 override_skulltula_token -80402938 @@in_table -8040297C @@extended_effect -804029B0 @@not_extended -804029F8 @@item_effect -80402A04 @@return -80402A18 override_object_npc -80402A28 override_object_chest -80402A38 override_object -80402A50 @@return -80402A94 @@no_count_inc -80402A98 @@no_pending_clear -80402AA0 override_graphic -80402AB8 @@return -80402AD0 override_text -80402AEC @@return -80402AF4 override_action -80402B1C @@no_player_override -80402B78 @@return -80402B80 store_item_data_hook -80402BB4 store_item_data -80402C48 @@update_base_game -80402C78 @@not_chest -80402C88 @@not_negative -80402C8C @@return -80402C9C lookup_override -80402CC4 @@return -80402CD4 get_override_search_key -80402D14 @@not_skulltula -80402D4C @@valid_chest -80402D54 @@not_chest -80402D84 @@valid_collectable -80402D8C @@not_collectable -80402DB4 @@not_grotto_deku_scrub -80402DC4 @@return -80402DCC scan_override_table -80402E10 @@not_coop_item -80402E18 @@lookup_loop -80402E4C @@lookup_item_found -80402E80 @@return -80402E88 resolve_extended_item -80402E9C @@loop -80402EF0 @@not_extended -80402EF4 @@return -80402F0C override_great_fairy_cutscene -80402F64 @@item_fairy -80402F84 @@give_item -80402FB0 @@return -80402FB8 override_light_arrow_cutscene -80402FCC override_fairy_ocarina_cutscene -80402FE0 override_ocarina_songs -80402FF4 override_requiem_song -80403000 override_epona_song -80403020 override_suns_song -80403040 override_song_of_time -80403050 store_pending_special_item -80403060 @@find_duplicate_loop -8040307C @@find_empty_loop -80403094 @@return -8040309C override_saria_song_check -804030B8 @@get_item -804030C0 set_saria_song_flag -804030E0 set_dungeon_knowledge -8040310C @@set_flag -80403124 Shop_Check_Sold_Out -80403170 @@return -80403178 Shop_Set_Sold_Out -804031B0 @@return -804031B8 Shop_Keeper_Init_ID -804031D4 @@return -804031E4 Deku_Check_Sold_Out -80403208 @@continue -80403238 Deku_Set_Sold_Out -8040325C @@continue -80403290 before_game_state_update -804032E0 @@loop -80403338 @@no_pending_item -8040334C after_game_state_update -80403370 item_menu_description_id_periodic -80403384 @@item_menu_description_id_return_00000000 -8040338C item_menu_description_id_immediate_1 -804033A0 @@item_menu_description_id_return_00000001 -804033A8 item_menu_description_id_immediate_2 -804033BC @@item_menu_description_id_return_00000002 -804033C4 item_menu_description_id_immediate_3 -804033D8 @@item_menu_description_id_return_00000003 -804033E0 give_master_sword -804033F8 before_time_travel -80403430 after_time_travel -8040346C @@going_back -80403474 @@done -804034A4 update_c_button -804034D0 @@return -804034D8 after_going_forward -80403514 @@no_init -80403524 after_going_back -80403554 @@not_swordless -8040355C initialize_adult -80403584 @@no_mirror_shield -804035C4 init_adult_button -804035F0 @@empty -804035F8 @@loop -80403650 @@set_empty -8040365C @@return -80403664 .byt:0001 -80403664 ADULT_INIT_ITEMS -80403665 .byt:0001 -80403666 .byt:0001 -80403667 .byt:0001 -80403668 .byt:0001 -80403669 .byt:0001 -8040366A .byt:0001 -8040366B .byt:0001 -8040366C .byt:0001 -80403670 .byt:0001 -80403670 ADULT_VALID_ITEMS -80403671 .byt:0001 -80403672 .byt:0001 -80403673 .byt:0001 -80403674 .byt:0001 -80403675 .byt:0001 -80403676 .byt:0001 -80403677 .byt:0001 -80403678 .byt:0001 -80403679 .byt:0001 -8040367A .byt:0001 -8040367B .byt:0001 -8040367C .byt:0001 -8040367D .byt:0001 -8040367E .byt:0001 -8040367F .byt:0001 -80403680 .byt:0001 -80403681 .byt:0001 -80403682 .byt:0001 -80403683 .byt:0001 -80403684 .byt:0001 -80403685 .byt:0001 -80403686 .byt:0001 -80403687 .byt:0001 -80403688 suns_song_fix_event -804036BC @@child -804036CC @@return -804036D4 suns_song_fix -804036E8 @@check_suns_status -80403704 @@disable_suns -8040370C @@return -80403714 warp_song_fix -80403740 @@child -80403750 @@return -80403758 Check_Has_Epona_Song -804037A4 @@return -804037AC save_scarecrow_song -804037F0 @@copy_song -804037F8 write_initial_save -80403804 @@save_data_loop -80403834 @@overwrite_type -8040383C @@return -80403844 get_name_char_1 -80403860 get_name_char_2 -8040387C get_name_char -804038A8 @@coop_player_name -804038C0 @@return -804038C8 reset_player_name_id -804038E8 .byt:0768 -80405000 text_init,0000002C -8040502C text_print,000000A8 -804050D4 text_flush,00000148 -8040521C draw_dungeon_info,000009B8 -80405BD4 c_init,0000002C -80405C00 c_after_game_state_update,00000088 -80405C88 heap_init,00000014 -80405C9C heap_alloc,00000034 -80405CD0 file_init,00000044 -80405D14 disp_buf_init,00000018 -80405D2C sprite_bytes_per_tile,00000028 -80405D54 sprite_bytes,00000030 -80405D84 sprite_load,000001A0 -80405F24 sprite_draw,000000F0 -80406014 draw_setup,000001DC -804061F0 gfx_init,00000178 -80406368 draw_file_select_hash,00000234 -804065A8 .byt:000E -804065A8 cfg_dungeon_rewards -804065B8 .byt:0012 -804065B8 medal_colors -804065CC .byt:009C -804065CC dungeons -80406668 .byt:0010 -80406668 font_sprite -80406678 .byt:0010 -80406678 quest_items_sprite -80406688 .byt:0010 -80406688 items_sprite -80406698 .byt:0010 -80406698 medals_sprite -804066A8 .byt:0010 -804066A8 stones_sprite -804066B8 .byt:0040 -804066B8 hash_symbols -804066F8 .byt:0004 -804066F8 cfg_dungeon_info_enable -804066FC .byt:0004 -804066FC dungeon_count -80406700 .byt:0008 -80406700 hash_sprites -80406710 .byt:0004 -80406710 cfg_dungeon_info_reward_need_altar -80406714 .byt:0004 -80406714 cfg_dungeon_info_reward_need_compass -80406718 .byt:0004 -80406718 cfg_dungeon_info_mq_need_map -8040671C .byt:0004 -8040671C cfg_dungeon_info_mq_enable -80406720 .byt:0004 -80406720 heap_next -80406724 .byt:0004 -80406724 cfg_file_select_hash -80406728 .byt:000E -80406728 cfg_dungeon_is_mq -80406738 .byt:0010 -80406738 setup_db -80406748 .byt:14C8 -80406748 FONT_TEXTURE -80407C10 .byt:83F0 -80480000 DUMMY_ACTOR -80500000 C_HEAP +00000000 0 +00000000 .byt:4000000 +00000010 .dbl:0008 +00000010 ITEM_TABLE_ROW_SIZE +000005B4 Shop_Item_Save_Offset +0000D260 .dbl:0010 +0000D270 .dbl:0010 +008A9C00 .byt:0400 +00B529A0 skip_GS_BGS_text +00BAF750 .byt:0048 +00D74990 skip_steal_tunic +00D7E178 @@not_in_ranch +00D7E18C @@return +00D7E18C return_from_the_other_function +00D7E3AC @@hyrule_check +00D7E3CC @@lon_lon_check +00D7E3F4 @@return_false +00D7E7A4 @@set_ev0 +00D7E7B8 set_ev1 +00D7E8A8 @@unsafe +00D7E8C0 @@safe +00D7E8D4 @@not_hyrule +00D7E920 ev0_return +00DB13D3 .byt:0001 +00DF264F .byt:0001 +00E2F093 .byt:0001 +00EBB8B0 @Deku_Check_True +00EBB8C0 @Deku_Check_False +00EC68D0 .byt:0014 +00EC69C0 .byt:0014 +00EC9CE7 .byt:0001 +8011A5D0 SAVE_CONTEXT +801C84A0 GLOBAL_CONTEXT +801DAA30 PLAYER_ACTOR +803A9E7E GET_ITEMTABLE +80400000 init +80400050 DebugOutput +80401000 .byt:0800 +80401000 ITEM_OVERRIDES +80401800 .byt:0400 +80401800 INITIAL_SAVE_DATA +80401C00 .byt:0001 +80401C00 PLAYER_ID +80401C01 .byt:0001 +80401C01 COOP_GET_ITEM +80401C02 .byt:0001 +80401C02 PLAYER_NAME_ID +80401C03 .byt:0100 +80401C03 PLAYER_NAMES +80401D03 .byt:0001 +80401D03 LIGHT_ARROW_ITEM +80401D04 .byt:0001 +80401D04 FAIRY_OCARINA_ITEM +80401D05 .byt:0001 +80401D05 FAIRY_ITEMS +80401D06 .byt:0001 +80401D07 .byt:0001 +80401D08 .byt:0001 +80401D09 .byt:0001 +80401D0A .byt:0001 +80401D0C .byt:02F4 +80402000 .dbl:0008 +80402000 PLAYER_OVERRIDE_DATA +80402008 .dbl:0010 +80402008 EXTENDED_ITEM_DATA +80402018 .byt:0001 +80402018 PENDING_SPECIAL_ITEM +80402019 .byt:0001 +8040201A .byt:0001 +8040201B .byt:0001 +8040201B PENDING_SPECIAL_ITEM_END +8040201C .dbl:0004 +8040201C TIME_TRAVEL_SAVED_EQUIPS +80402020 .dbl:0004 +80402024 .wrd:0002 +80402026 .wrd:0002 +80402028 .byt:0028 +80402050 .byt:0001 +80402050 ITEM_TABLE +80402051 .byt:0001 +80402052 .byt:0001 +80402053 .byt:0001 +80402054 .wrd:0002 +80402056 .byt:0001 +80402057 .byt:0001 +80402058 .dbl:0004 +8040205C .dbl:0004 +80402060 .byt:0001 +80402061 .byt:0001 +80402062 .byt:0001 +80402063 .byt:0001 +80402064 .wrd:0002 +80402066 .byt:0001 +80402067 .byt:0001 +80402068 .dbl:0004 +8040206C .dbl:0004 +80402070 .byt:0001 +80402071 .byt:0001 +80402072 .byt:0001 +80402073 .byt:0001 +80402074 .wrd:0002 +80402076 .byt:0001 +80402077 .byt:0001 +80402078 .dbl:0004 +8040207C .dbl:0004 +80402080 .byt:0001 +80402081 .byt:0001 +80402082 .byt:0001 +80402083 .byt:0001 +80402084 .wrd:0002 +80402086 .byt:0001 +80402087 .byt:0001 +80402088 .dbl:0004 +8040208C .dbl:0004 +80402090 .byt:0001 +80402091 .byt:0001 +80402092 .byt:0001 +80402093 .byt:0001 +80402094 .wrd:0002 +80402096 .byt:0001 +80402097 .byt:0001 +80402098 .dbl:0004 +8040209C .dbl:0004 +804020A0 .byt:0001 +804020A1 .byt:0001 +804020A2 .byt:0001 +804020A3 .byt:0001 +804020A4 .wrd:0002 +804020A6 .byt:0001 +804020A7 .byt:0001 +804020A8 .dbl:0004 +804020AC .dbl:0004 +804020B0 .byt:0001 +804020B1 .byt:0001 +804020B2 .byt:0001 +804020B3 .byt:0001 +804020B4 .wrd:0002 +804020B6 .byt:0001 +804020B7 .byt:0001 +804020B8 .dbl:0004 +804020BC .dbl:0004 +804020C0 .byt:0001 +804020C1 .byt:0001 +804020C2 .byt:0001 +804020C3 .byt:0001 +804020C4 .wrd:0002 +804020C6 .byt:0001 +804020C7 .byt:0001 +804020C8 .dbl:0004 +804020CC .dbl:0004 +804020D0 .byt:0001 +804020D1 .byt:0001 +804020D2 .byt:0001 +804020D3 .byt:0001 +804020D4 .wrd:0002 +804020D6 .byt:0001 +804020D7 .byt:0001 +804020D8 .dbl:0004 +804020DC .dbl:0004 +804020E0 .byt:0001 +804020E1 .byt:0001 +804020E2 .byt:0001 +804020E3 .byt:0001 +804020E4 .wrd:0002 +804020E6 .byt:0001 +804020E7 .byt:0001 +804020E8 .dbl:0004 +804020EC .dbl:0004 +804020F0 .byt:0001 +804020F1 .byt:0001 +804020F2 .byt:0001 +804020F3 .byt:0001 +804020F4 .wrd:0002 +804020F6 .byt:0001 +804020F7 .byt:0001 +804020F8 .dbl:0004 +804020FC .dbl:0004 +80402100 .byt:0001 +80402101 .byt:0001 +80402102 .byt:0001 +80402103 .byt:0001 +80402104 .wrd:0002 +80402106 .byt:0001 +80402107 .byt:0001 +80402108 .dbl:0004 +8040210C .dbl:0004 +80402110 .byt:0001 +80402111 .byt:0001 +80402112 .byt:0001 +80402113 .byt:0001 +80402114 .wrd:0002 +80402116 .byt:0001 +80402117 .byt:0001 +80402118 .dbl:0004 +8040211C .dbl:0004 +80402120 .byt:0001 +80402121 .byt:0001 +80402122 .byt:0001 +80402123 .byt:0001 +80402124 .wrd:0002 +80402126 .byt:0001 +80402127 .byt:0001 +80402128 .dbl:0004 +8040212C .dbl:0004 +80402130 .byt:0001 +80402131 .byt:0001 +80402132 .byt:0001 +80402133 .byt:0001 +80402134 .wrd:0002 +80402136 .byt:0001 +80402137 .byt:0001 +80402138 .dbl:0004 +8040213C .dbl:0004 +80402140 .byt:0001 +80402141 .byt:0001 +80402142 .byt:0001 +80402143 .byt:0001 +80402144 .wrd:0002 +80402146 .byt:0001 +80402147 .byt:0001 +80402148 .dbl:0004 +8040214C .dbl:0004 +80402150 .byt:0001 +80402151 .byt:0001 +80402152 .byt:0001 +80402153 .byt:0001 +80402154 .wrd:0002 +80402156 .byt:0001 +80402157 .byt:0001 +80402158 .dbl:0004 +8040215C .dbl:0004 +80402160 .byt:0001 +80402161 .byt:0001 +80402162 .byt:0001 +80402163 .byt:0001 +80402164 .wrd:0002 +80402166 .byt:0001 +80402167 .byt:0001 +80402168 .dbl:0004 +8040216C .dbl:0004 +80402170 .byt:0001 +80402171 .byt:0001 +80402172 .byt:0001 +80402173 .byt:0001 +80402174 .wrd:0002 +80402176 .byt:0001 +80402177 .byt:0001 +80402178 .dbl:0004 +8040217C .dbl:0004 +80402180 .byt:0001 +80402181 .byt:0001 +80402182 .byt:0001 +80402183 .byt:0001 +80402184 .wrd:0002 +80402186 .byt:0001 +80402187 .byt:0001 +80402188 .dbl:0004 +8040218C .dbl:0004 +80402190 .byt:0001 +80402191 .byt:0001 +80402192 .byt:0001 +80402193 .byt:0001 +80402194 .wrd:0002 +80402196 .byt:0001 +80402197 .byt:0001 +80402198 .dbl:0004 +8040219C .dbl:0004 +804021A0 .byt:0001 +804021A1 .byt:0001 +804021A2 .byt:0001 +804021A3 .byt:0001 +804021A4 .wrd:0002 +804021A6 .byt:0001 +804021A7 .byt:0001 +804021A8 .dbl:0004 +804021AC .dbl:0004 +804021B0 .byt:0001 +804021B1 .byt:0001 +804021B2 .byt:0001 +804021B3 .byt:0001 +804021B4 .wrd:0002 +804021B6 .byt:0001 +804021B7 .byt:0001 +804021B8 .dbl:0004 +804021BC .dbl:0004 +804021C0 .byt:0001 +804021C1 .byt:0001 +804021C2 .byt:0001 +804021C3 .byt:0001 +804021C4 .wrd:0002 +804021C6 .byt:0001 +804021C7 .byt:0001 +804021C8 .dbl:0004 +804021CC .dbl:0004 +804021D0 .byt:0001 +804021D1 .byt:0001 +804021D2 .byt:0001 +804021D3 .byt:0001 +804021D4 .wrd:0002 +804021D6 .byt:0001 +804021D7 .byt:0001 +804021D8 .dbl:0004 +804021DC .dbl:0004 +804021E0 .byt:0001 +804021E1 .byt:0001 +804021E2 .byt:0001 +804021E3 .byt:0001 +804021E4 .wrd:0002 +804021E6 .byt:0001 +804021E7 .byt:0001 +804021E8 .dbl:0004 +804021EC .dbl:0004 +804021F0 .byt:0001 +804021F1 .byt:0001 +804021F2 .byt:0001 +804021F3 .byt:0001 +804021F4 .wrd:0002 +804021F6 .byt:0001 +804021F7 .byt:0001 +804021F8 .dbl:0004 +804021FC .dbl:0004 +80402200 .byt:0001 +80402201 .byt:0001 +80402202 .byt:0001 +80402203 .byt:0001 +80402204 .wrd:0002 +80402206 .byt:0001 +80402207 .byt:0001 +80402208 .dbl:0004 +8040220C .dbl:0004 +80402210 .byt:0001 +80402211 .byt:0001 +80402212 .byt:0001 +80402213 .byt:0001 +80402214 .wrd:0002 +80402216 .byt:0001 +80402217 .byt:0001 +80402218 .dbl:0004 +8040221C .dbl:0004 +80402220 .byt:0001 +80402221 .byt:0001 +80402222 .byt:0001 +80402223 .byt:0001 +80402224 .wrd:0002 +80402226 .byt:0001 +80402227 .byt:0001 +80402228 .dbl:0004 +8040222C .dbl:0004 +80402230 .byt:0001 +80402231 .byt:0001 +80402232 .byt:0001 +80402233 .byt:0001 +80402234 .wrd:0002 +80402236 .byt:0001 +80402237 .byt:0001 +80402238 .dbl:0004 +8040223C .dbl:0004 +80402240 .byt:0001 +80402241 .byt:0001 +80402242 .byt:0001 +80402243 .byt:0001 +80402244 .wrd:0002 +80402246 .byt:0001 +80402247 .byt:0001 +80402248 .dbl:0004 +8040224C .dbl:0004 +80402250 .byt:0001 +80402251 .byt:0001 +80402252 .byt:0001 +80402253 .byt:0001 +80402254 .wrd:0002 +80402256 .byt:0001 +80402257 .byt:0001 +80402258 .dbl:0004 +8040225C .dbl:0004 +80402260 .byt:0001 +80402261 .byt:0001 +80402262 .byt:0001 +80402263 .byt:0001 +80402264 .wrd:0002 +80402266 .byt:0001 +80402267 .byt:0001 +80402268 .dbl:0004 +8040226C .dbl:0004 +80402270 .byt:0001 +80402271 .byt:0001 +80402272 .byt:0001 +80402273 .byt:0001 +80402274 .wrd:0002 +80402276 .byt:0001 +80402277 .byt:0001 +80402278 .dbl:0004 +8040227C .dbl:0004 +80402280 .byt:0001 +80402281 .byt:0001 +80402282 .byt:0001 +80402283 .byt:0001 +80402284 .wrd:0002 +80402286 .byt:0001 +80402287 .byt:0001 +80402288 .dbl:0004 +8040228C .dbl:0004 +80402290 .byt:0001 +80402291 .byt:0001 +80402292 .byt:0001 +80402293 .byt:0001 +80402294 .wrd:0002 +80402296 .byt:0001 +80402297 .byt:0001 +80402298 .dbl:0004 +8040229C .dbl:0004 +804022A0 .byt:0001 +804022A1 .byt:0001 +804022A2 .byt:0001 +804022A3 .byt:0001 +804022A4 .wrd:0002 +804022A6 .byt:0001 +804022A7 .byt:0001 +804022A8 .dbl:0004 +804022AC .dbl:0004 +804022B0 .byt:0001 +804022B1 .byt:0001 +804022B2 .byt:0001 +804022B3 .byt:0001 +804022B4 .wrd:0002 +804022B6 .byt:0001 +804022B7 .byt:0001 +804022B8 .dbl:0004 +804022BC .dbl:0004 +804022C0 .byt:0001 +804022C1 .byt:0001 +804022C2 .byt:0001 +804022C3 .byt:0001 +804022C4 .wrd:0002 +804022C6 .byt:0001 +804022C7 .byt:0001 +804022C8 .dbl:0004 +804022CC .dbl:0004 +804022D0 .byt:0001 +804022D1 .byt:0001 +804022D2 .byt:0001 +804022D3 .byt:0001 +804022D4 .wrd:0002 +804022D6 .byt:0001 +804022D7 .byt:0001 +804022D8 .dbl:0004 +804022DC .dbl:0004 +804022E0 .byt:0001 +804022E1 .byt:0001 +804022E2 .byt:0001 +804022E3 .byt:0001 +804022E4 .wrd:0002 +804022E6 .byt:0001 +804022E7 .byt:0001 +804022E8 .dbl:0004 +804022EC .dbl:0004 +804022F0 .byt:0001 +804022F1 .byt:0001 +804022F2 .byt:0001 +804022F3 .byt:0001 +804022F4 .wrd:0002 +804022F6 .byt:0001 +804022F7 .byt:0001 +804022F8 .dbl:0004 +804022FC .dbl:0004 +80402300 .byt:0001 +80402301 .byt:0001 +80402302 .byt:0001 +80402303 .byt:0001 +80402304 .wrd:0002 +80402306 .byt:0001 +80402307 .byt:0001 +80402308 .dbl:0004 +8040230C .dbl:0004 +80402310 .byt:0001 +80402311 .byt:0001 +80402312 .byt:0001 +80402313 .byt:0001 +80402314 .wrd:0002 +80402316 .byt:0001 +80402317 .byt:0001 +80402318 .dbl:0004 +8040231C .dbl:0004 +80402320 .byt:0001 +80402321 .byt:0001 +80402322 .byt:0001 +80402323 .byt:0001 +80402324 .wrd:0002 +80402326 .byt:0001 +80402327 .byt:0001 +80402328 .dbl:0004 +8040232C .dbl:0004 +80402330 .byt:0001 +80402331 .byt:0001 +80402332 .byt:0001 +80402333 .byt:0001 +80402334 .wrd:0002 +80402336 .byt:0001 +80402337 .byt:0001 +80402338 .dbl:0004 +8040233C .dbl:0004 +80402340 .byt:0001 +80402341 .byt:0001 +80402342 .byt:0001 +80402343 .byt:0001 +80402344 .wrd:0002 +80402346 .byt:0001 +80402347 .byt:0001 +80402348 .dbl:0004 +8040234C .dbl:0004 +80402350 .byt:0001 +80402351 .byt:0001 +80402352 .byt:0001 +80402353 .byt:0001 +80402354 .wrd:0002 +80402356 .byt:0001 +80402357 .byt:0001 +80402358 .dbl:0004 +8040235C .dbl:0004 +80402360 .byt:0001 +80402361 .byt:0001 +80402362 .byt:0001 +80402363 .byt:0001 +80402364 .wrd:0002 +80402366 .byt:0001 +80402367 .byt:0001 +80402368 .dbl:0004 +8040236C .dbl:0004 +80402370 .byt:0001 +80402371 .byt:0001 +80402372 .byt:0001 +80402373 .byt:0001 +80402374 .wrd:0002 +80402376 .byt:0001 +80402377 .byt:0001 +80402378 .dbl:0004 +8040237C .dbl:0004 +80402380 .byt:0001 +80402381 .byt:0001 +80402382 .byt:0001 +80402383 .byt:0001 +80402384 .wrd:0002 +80402386 .byt:0001 +80402387 .byt:0001 +80402388 .dbl:0004 +8040238C .dbl:0004 +80402390 .byt:0001 +80402391 .byt:0001 +80402392 .byt:0001 +80402393 .byt:0001 +80402394 .wrd:0002 +80402396 .byt:0001 +80402397 .byt:0001 +80402398 .dbl:0004 +8040239C .dbl:0004 +804023A0 .byt:0001 +804023A1 .byt:0001 +804023A2 .byt:0001 +804023A3 .byt:0001 +804023A4 .wrd:0002 +804023A6 .byt:0001 +804023A7 .byt:0001 +804023A8 .dbl:0004 +804023AC .dbl:0004 +804023B0 .byt:0001 +804023B1 .byt:0001 +804023B2 .byt:0001 +804023B3 .byt:0001 +804023B4 .wrd:0002 +804023B6 .byt:0001 +804023B7 .byt:0001 +804023B8 .dbl:0004 +804023BC .dbl:0004 +804023C0 .byt:0001 +804023C1 .byt:0001 +804023C2 .byt:0001 +804023C3 .byt:0001 +804023C4 .wrd:0002 +804023C6 .byt:0001 +804023C7 .byt:0001 +804023C8 .dbl:0004 +804023CC .dbl:0004 +804023D0 .byt:0001 +804023D1 .byt:0001 +804023D2 .byt:0001 +804023D3 .byt:0001 +804023D4 .wrd:0002 +804023D6 .byt:0001 +804023D7 .byt:0001 +804023D8 .dbl:0004 +804023DC .dbl:0004 +804023E0 .byt:0001 +804023E1 .byt:0001 +804023E2 .byt:0001 +804023E3 .byt:0001 +804023E4 .wrd:0002 +804023E6 .byt:0001 +804023E7 .byt:0001 +804023E8 .dbl:0004 +804023EC .dbl:0004 +804023F0 .byt:0001 +804023F1 .byt:0001 +804023F2 .byt:0001 +804023F3 .byt:0001 +804023F4 .wrd:0002 +804023F6 .byt:0001 +804023F7 .byt:0001 +804023F8 .dbl:0004 +804023FC .dbl:0004 +80402400 .byt:0001 +80402401 .byt:0001 +80402402 .byt:0001 +80402403 .byt:0001 +80402404 .wrd:0002 +80402406 .byt:0001 +80402407 .byt:0001 +80402408 .dbl:0004 +8040240C .dbl:0004 +80402410 .byt:0001 +80402411 .byt:0001 +80402412 .byt:0001 +80402413 .byt:0001 +80402414 .wrd:0002 +80402416 .byt:0001 +80402417 .byt:0001 +80402418 .dbl:0004 +8040241C .dbl:0004 +80402420 .byt:0001 +80402421 .byt:0001 +80402422 .byt:0001 +80402423 .byt:0001 +80402424 .wrd:0002 +80402426 .byt:0001 +80402427 .byt:0001 +80402428 .dbl:0004 +8040242C .dbl:0004 +80402430 .byt:0001 +80402431 .byt:0001 +80402432 .byt:0001 +80402433 .byt:0001 +80402434 .wrd:0002 +80402436 .byt:0001 +80402437 .byt:0001 +80402438 .dbl:0004 +8040243C .dbl:0004 +80402440 .byt:0001 +80402441 .byt:0001 +80402442 .byt:0001 +80402443 .byt:0001 +80402444 .wrd:0002 +80402446 .byt:0001 +80402447 .byt:0001 +80402448 .dbl:0004 +8040244C .dbl:0004 +80402450 .byt:0001 +80402451 .byt:0001 +80402452 .byt:0001 +80402453 .byt:0001 +80402454 .wrd:0002 +80402456 .byt:0001 +80402457 .byt:0001 +80402458 .dbl:0004 +8040245C .dbl:0004 +80402460 .byt:0001 +80402461 .byt:0001 +80402462 .byt:0001 +80402463 .byt:0001 +80402464 .wrd:0002 +80402466 .byt:0001 +80402467 .byt:0001 +80402468 .dbl:0004 +8040246C .dbl:0004 +80402470 .byt:0001 +80402471 .byt:0001 +80402472 .byt:0001 +80402473 .byt:0001 +80402474 .wrd:0002 +80402476 .byt:0001 +80402477 .byt:0001 +80402478 .dbl:0004 +8040247C .dbl:0004 +80402480 .byt:0001 +80402481 .byt:0001 +80402482 .byt:0001 +80402483 .byt:0001 +80402484 .wrd:0002 +80402486 .byt:0001 +80402487 .byt:0001 +80402488 .dbl:0004 +8040248C .dbl:0004 +80402490 .byt:0001 +80402491 .byt:0001 +80402492 .byt:0001 +80402493 .byt:0001 +80402494 .wrd:0002 +80402496 .byt:0001 +80402497 .byt:0001 +80402498 .dbl:0004 +8040249C .dbl:0004 +804024A0 .byt:0001 +804024A1 .byt:0001 +804024A2 .byt:0001 +804024A3 .byt:0001 +804024A4 .wrd:0002 +804024A6 .byt:0001 +804024A7 .byt:0001 +804024A8 .dbl:0004 +804024AC .dbl:0004 +804024B0 .byt:0001 +804024B1 .byt:0001 +804024B2 .byt:0001 +804024B3 .byt:0001 +804024B4 .wrd:0002 +804024B6 .byt:0001 +804024B7 .byt:0001 +804024B8 .dbl:0004 +804024BC .dbl:0004 +804024C0 .byt:0001 +804024C1 .byt:0001 +804024C2 .byt:0001 +804024C3 .byt:0001 +804024C4 .wrd:0002 +804024C6 .byt:0001 +804024C7 .byt:0001 +804024C8 .dbl:0004 +804024CC .dbl:0004 +804024D0 .byt:0001 +804024D1 .byt:0001 +804024D2 .byt:0001 +804024D3 .byt:0001 +804024D4 .wrd:0002 +804024D6 .byt:0001 +804024D7 .byt:0001 +804024D8 .dbl:0004 +804024DC .dbl:0004 +804024E0 .byt:0001 +804024E1 .byt:0001 +804024E2 .byt:0001 +804024E3 .byt:0001 +804024E4 .wrd:0002 +804024E6 .byt:0001 +804024E7 .byt:0001 +804024E8 .dbl:0004 +804024EC .dbl:0004 +804024F0 .byt:0001 +804024F1 .byt:0001 +804024F2 .byt:0001 +804024F3 .byt:0001 +804024F4 .wrd:0002 +804024F6 .byt:0001 +804024F7 .byt:0001 +804024F8 .dbl:0004 +804024FC .dbl:0004 +80402500 .byt:0001 +80402501 .byt:0001 +80402502 .byt:0001 +80402503 .byt:0001 +80402504 .wrd:0002 +80402506 .byt:0001 +80402507 .byt:0001 +80402508 .dbl:0004 +8040250C .dbl:0004 +80402510 .byt:0001 +80402511 .byt:0001 +80402512 .byt:0001 +80402513 .byt:0001 +80402514 .wrd:0002 +80402516 .byt:0001 +80402517 .byt:0001 +80402518 .dbl:0004 +8040251C .dbl:0004 +80402520 .byt:0001 +80402521 .byt:0001 +80402522 .byt:0001 +80402523 .byt:0001 +80402524 .wrd:0002 +80402526 .byt:0001 +80402527 .byt:0001 +80402528 .dbl:0004 +8040252C .dbl:0004 +80402530 .byt:0001 +80402531 .byt:0001 +80402532 .byt:0001 +80402533 .byt:0001 +80402534 .wrd:0002 +80402536 .byt:0001 +80402537 .byt:0001 +80402538 .dbl:0004 +8040253C .dbl:0004 +80402540 .byt:0001 +80402541 .byt:0001 +80402542 .byt:0001 +80402543 .byt:0001 +80402544 .wrd:0002 +80402546 .byt:0001 +80402547 .byt:0001 +80402548 .dbl:0004 +8040254C .dbl:0004 +80402550 .byt:0001 +80402551 .byt:0001 +80402552 .byt:0001 +80402553 .byt:0001 +80402554 .wrd:0002 +80402556 .byt:0001 +80402557 .byt:0001 +80402558 .dbl:0004 +8040255C .dbl:0004 +80402560 .byt:0001 +80402561 .byt:0001 +80402562 .byt:0001 +80402563 .byt:0001 +80402564 .wrd:0002 +80402566 .byt:0001 +80402567 .byt:0001 +80402568 .dbl:0004 +8040256C .dbl:0004 +80402570 no_upgrade +80402578 hookshot_upgrade +8040258C @@return +80402594 strength_upgrade +804025B4 @@return +804025BC bomb_bag_upgrade +804025DC @@return +804025E4 bow_upgrade +80402604 @@return +8040260C slingshot_upgrade +8040262C @@return +80402634 wallet_upgrade +80402654 @@return +8040265C tycoon_wallet +80402670 scale_upgrade +80402684 @@return +8040268C nut_upgrade +804026A0 @@return +804026A8 stick_upgrade +804026BC @@return +804026C4 magic_upgrade +804026D4 @@return +804026DC arrows_to_rupee +804026F0 @@return +804026F8 bombs_to_rupee +8040270C @@return +80402714 seeds_to_rupee +80402728 @@return +80402730 no_effect +80402738 give_biggoron_sword +80402748 give_bottle +80402750 @@loop +8040277C @@return +80402784 give_dungeon_item +804027A0 give_small_key +804027B8 @not_negative +804027C8 give_defense +804027E8 give_magic +80402808 double_magic +80402830 bombchu_upgrade +80402854 @@return +8040285C ocarina_upgrade +80402870 @@return +80402878 give_fairy_ocarina +80402888 give_song +804028A4 inventory_check +80402910 @@return +80402918 override_skulltula_token +80402938 @@in_table +8040297C @@extended_effect +804029B0 @@not_extended +804029F8 @@item_effect +80402A04 @@return +80402A18 override_object_npc +80402A28 override_object_chest +80402A38 override_object +80402A50 @@return +80402A94 @@no_count_inc +80402A98 @@no_pending_clear +80402AA0 override_graphic +80402AB8 @@return +80402AD0 override_text +80402AEC @@return +80402AF4 override_action +80402B1C @@no_player_override +80402B78 @@return +80402B80 store_item_data_hook +80402BB4 store_item_data +80402C48 @@update_base_game +80402C78 @@not_chest +80402C88 @@not_negative +80402C8C @@return +80402C9C lookup_override +80402CC4 @@return +80402CD4 get_override_search_key +80402D14 @@not_skulltula +80402D4C @@valid_chest +80402D54 @@not_chest +80402D84 @@valid_collectable +80402D8C @@not_collectable +80402DB4 @@not_grotto_deku_scrub +80402DC4 @@return +80402DCC scan_override_table +80402E10 @@not_coop_item +80402E18 @@lookup_loop +80402E4C @@lookup_item_found +80402E80 @@return +80402E88 resolve_extended_item +80402E9C @@loop +80402EF0 @@not_extended +80402EF4 @@return +80402F0C override_great_fairy_cutscene +80402F64 @@item_fairy +80402F84 @@give_item +80402FB0 @@return +80402FB8 override_light_arrow_cutscene +80402FCC override_fairy_ocarina_cutscene +80402FE0 override_ocarina_songs +80402FF4 override_requiem_song +80403000 override_epona_song +80403020 override_suns_song +80403040 override_song_of_time +80403050 store_pending_special_item +80403060 @@find_duplicate_loop +8040307C @@find_empty_loop +80403094 @@return +8040309C override_saria_song_check +804030B8 @@get_item +804030C0 set_saria_song_flag +804030E0 set_dungeon_knowledge +8040310C @@set_flag +80403124 Shop_Check_Sold_Out +80403170 @@return +80403178 Shop_Set_Sold_Out +804031B0 @@return +804031B8 Shop_Keeper_Init_ID +804031D4 @@return +804031E4 Deku_Check_Sold_Out +80403208 @@continue +80403238 Deku_Set_Sold_Out +8040325C @@continue +80403290 before_game_state_update +804032E0 @@loop +80403338 @@no_pending_item +8040334C after_game_state_update +80403370 item_menu_description_id_periodic +80403384 @@item_menu_description_id_return_00000000 +8040338C item_menu_description_id_immediate_1 +804033A0 @@item_menu_description_id_return_00000001 +804033A8 item_menu_description_id_immediate_2 +804033BC @@item_menu_description_id_return_00000002 +804033C4 item_menu_description_id_immediate_3 +804033D8 @@item_menu_description_id_return_00000003 +804033E0 give_master_sword +804033F8 before_time_travel +80403430 after_time_travel +8040346C @@going_back +80403474 @@done +804034A4 update_c_button +804034D0 @@return +804034D8 after_going_forward +80403514 @@no_init +80403524 after_going_back +80403554 @@not_swordless +8040355C initialize_adult +80403584 @@no_mirror_shield +804035C4 init_adult_button +804035F0 @@empty +804035F8 @@loop +80403650 @@set_empty +8040365C @@return +80403664 .byt:0001 +80403664 ADULT_INIT_ITEMS +80403665 .byt:0001 +80403666 .byt:0001 +80403667 .byt:0001 +80403668 .byt:0001 +80403669 .byt:0001 +8040366A .byt:0001 +8040366B .byt:0001 +8040366C .byt:0001 +80403670 .byt:0001 +80403670 ADULT_VALID_ITEMS +80403671 .byt:0001 +80403672 .byt:0001 +80403673 .byt:0001 +80403674 .byt:0001 +80403675 .byt:0001 +80403676 .byt:0001 +80403677 .byt:0001 +80403678 .byt:0001 +80403679 .byt:0001 +8040367A .byt:0001 +8040367B .byt:0001 +8040367C .byt:0001 +8040367D .byt:0001 +8040367E .byt:0001 +8040367F .byt:0001 +80403680 .byt:0001 +80403681 .byt:0001 +80403682 .byt:0001 +80403683 .byt:0001 +80403684 .byt:0001 +80403685 .byt:0001 +80403686 .byt:0001 +80403687 .byt:0001 +80403688 suns_song_fix_event +804036BC @@child +804036CC @@return +804036D4 suns_song_fix +804036E8 @@check_suns_status +80403704 @@disable_suns +8040370C @@return +80403714 warp_song_fix +80403740 @@child +80403750 @@return +80403758 Check_Has_Epona_Song +804037A4 @@return +804037AC save_scarecrow_song +804037F0 @@copy_song +804037F8 write_initial_save +80403804 @@save_data_loop +80403834 @@overwrite_type +8040383C @@return +80403844 get_name_char_1 +80403860 get_name_char_2 +8040387C get_name_char +804038A8 @@coop_player_name +804038C0 @@return +804038C8 reset_player_name_id +804038E8 .byt:0768 +80405000 draw_file_select_hash,00000234 +80405234 disp_buf_init,00000018 +8040524C sprite_bytes_per_tile,00000028 +80405274 sprite_bytes,00000030 +804052A4 sprite_load,000001A0 +80405444 sprite_draw,000000F0 +80405534 draw_setup,000001DC +80405710 gfx_init,00000178 +80405888 heap_init,00000014 +8040589C heap_alloc,00000034 +804058D0 file_init,00000044 +80405914 c_init,0000002C +80405940 c_after_game_state_update,00000088 +804059C8 draw_dungeon_info,000009B8 +80406380 text_init,0000002C +804063AC text_print,000000A8 +80406454 text_flush,00000148 +804065A8 .byt:0040 +804065A8 hash_symbols +804065E8 .byt:0010 +804065E8 font_sprite +804065F8 .byt:0010 +804065F8 quest_items_sprite +80406608 .byt:0010 +80406608 items_sprite +80406618 .byt:0010 +80406618 medals_sprite +80406628 .byt:0010 +80406628 stones_sprite +80406638 .byt:000E +80406638 cfg_dungeon_rewards +80406648 .byt:0012 +80406648 medal_colors +8040665C .byt:009C +8040665C dungeons +804066F8 .byt:0008 +804066F8 hash_sprites +80406700 .byt:0004 +80406700 cfg_dungeon_info_enable +80406704 .byt:0004 +80406704 dungeon_count +80406708 .byt:0004 +80406708 cfg_file_select_hash +8040670C .byt:0004 +8040670C heap_next +80406710 .byt:0004 +80406710 cfg_dungeon_info_reward_need_altar +80406714 .byt:0004 +80406714 cfg_dungeon_info_reward_need_compass +80406718 .byt:0004 +80406718 cfg_dungeon_info_mq_need_map +8040671C .byt:0004 +8040671C cfg_dungeon_info_mq_enable +80406728 .byt:0010 +80406728 setup_db +80406738 .byt:000E +80406738 cfg_dungeon_is_mq +80406746 .byt:14C8 +80406746 FONT_TEXTURE +80407C0E .byt:83F2 +80480000 DUMMY_ACTOR +80500000 C_HEAP  \ No newline at end of file diff --git a/ASM/build/bundle.o b/ASM/build/bundle.o index 9dec7528b1ffe68144cdb0497bb14222425b45c5..55cef123ced6ede707ac9599d7291bfc7eadfdcc 100644 GIT binary patch delta 2830 zcmZWrO=whC6h7}cIy0Gh^B*(OF~%Bev^E`Ww6>0PBq@ZFN?M}0kQ!^E2_2K55wZwO z+EU0Oi`ZvDiiIq)2yG~VL?3!+`<;7! zzI*PSH(5Ntcz)ueow6zad&(PgtLbKUZp7={;crC8{X+Eq+?Vc8;Y>pyAcburGoMJ# zFnfD!ua`Rz(uMIWlD$2D%E{i|XmPTBvoql2{3+)P%p2YP;atH*aEoO9PB&lm!G|Je z2X0)yT=MH`-t&LmdDc(vT#l$72jKaGHG}?oZO$L5t??7tfL~Mli+`@M2Kc^zIs2|( z%oe}O7W~cHKg;p0eFWs6KQOO;iRWJ8`(NV6wm5J*##t)45cOpmq~isLACdbWc(Wz=8F^PQ7K}f_TIES7{I1|``TvdFt*~vVzXOr( z6a-BgPh)Kqqaq0PoqZsDXs7}|j7~NK*DT;T){3@{4mf9!a0ona>u0%!VI6Qj#m2y$ zVOxi1I!<=gLsi6}fhG7@xO>`bvQ7m;3qw-M9L$^$hf1>g&Hc0NT*rlIO=! z8R{8k%utX2*Pg`OnYxeNG7j)nUf(t#6biPui+l-4jtg;|`~i?0I%~-v0>K^hzX2_A z@*?|z?x@H+z-{%4!Gg#s@Zd#5tXKFQkpsw64&KECiGq{(y1)>e0+LVT9LZ;a}5bEb$uNj#!Th z5bM!Jy&I8DtrNvYStt4&=g&(J#RBhuhn?~=c?os&GV18nt01pI1$lWD#4d+Sy_g()PC z!WF*;O&D*~gmHAL5(fbk5}((d$4y9l$>JWFUl}{CIIdd(3Sfb!=7^)=UBHP{?m~is z$RUVvi6JeJfCJ+aqZ*gEXMU6BH>LR#Gv+s|e&xi16(?KuCGDN8-pyO4Tjg`aETG+MqJ zJ4<6He8Z(D@K!^j^c^4)rSBTY&MJJt_@eP;<15BdhnF|~6j)}0O?Aj1ITK`Bjkg(x zKn7$`n6KK*thPEs0kpFq?A3YgWX1$l7tDT9{i@NKieI82#S!&CGi9c8y6(d7Ldm2PgYPZ>k?yo4xST$Y-+SpxmJ>A9e1v(WX0PYuZTKID)pAX4E*HP=1(V(v!DIL1xoNvM z`prm(9e?X>krS7$TsTtIKi~{t513Xa}qh zaEj}&8`J$!*dv}~lz)ghuWjf+i3x9kQ1LVtnBX(a8PHdL2lIA}iU#;rB(cmjCv zap)ZU<_eAdHXnxFyf+{&#+w;ki$NcY3ps9skRMT=SKg((TlpZ0pnnla|LeLxq5Joh zKQP=vcW7T?SLk5n_&xzr05&Wp|<#faK#M`G}Onp1_0)Ga^T5Pyv$PGYai_BhY@Re93TVk_Oo09ViX3cTf=va8ST5 zu0!xHt~cS0K@I`?$vg1IAV+}*qj(q`D13zc}AD#T42Keyf3xeyTAb(jP$1t6YVP`i^RzT0c!yL~u+CUBuBbbMeExP$7r ztd8qy_eAafG70$hX95r1VF6y!B=D+D0xxU)ye8x4p>uqiJO~c`N;B%XsD}5|5JK2; zZ%GYRh_|8%RyBbN^Hf-TL=$Wnzxb$$AD>i?PEu(6mWfk}LlGZ~ctzwzR1%*BlHbKE zo%|k$`n@&zC{gzqDV(0$|(&ZCQ~u*4B_FC@B6;zW;0oahsI7KJ5H$YBTPpLitl z0vG-esRbsBB3a^;$g2pLya_~tB!nIyLeK%OqhldQWg&m490K@8tr`$H3fv|J{RWXv za6hkz{Z0qx@1sS0Zv8RyxcTGe`S&Nx^Y0@;hWikbfdC(^<2~a~o1^k)@GlAjSIpDn zqjMDCKTy6TvWND|K>DxgdKp;42ENYWD>&6^98)>-s!XAUd{w5PIK&>276eYs>OK;2 zJ>4Wyk2q=g*OSBl5P1iX9C7N%5vPtEh4S7?-^TOLyOE!`4E_(~C$o`=tCpC>84?RP zGvWZ2h~pwJ6U+FQg}8{bB(9uu diff --git a/ASM/build/c_symbols.txt b/ASM/build/c_symbols.txt index 3bb76f2f5..526688d08 100644 --- a/ASM/build/c_symbols.txt +++ b/ASM/build/c_symbols.txt @@ -1,67 +1,67 @@ - -../build/bundle.o: file format elf32-bigmips - -SYMBOL TABLE: -00000000 l d .MIPS.abiflags 00000000 .MIPS.abiflags -00000000 l d .reginfo 00000000 .reginfo -00000000 l d .text 00000000 .text -00000000 l d .rodata.str1.4 00000000 .rodata.str1.4 -00000000 l d .data 00000000 .data -00000000 l d .sdata 00000000 .sdata -00000000 l d .sbss 00000000 .sbss -00000000 l d .bss 00000000 .bss -00000000 l d .comment 00000000 .comment -00000000 l d .pdr 00000000 .pdr -00000000 l d .gnu.attributes 00000000 .gnu.attributes -00000000 l d .mdebug.abi32 00000000 .mdebug.abi32 -00000000 l df *ABS* 00000000 text.c -00000004 l O .sbss 00000004 text_buf -00000000 l O .sbss 00000004 text_end -00000000 l df *ABS* 00000000 dungeon_info.c -00000000 l .rodata.str1.4 00000000 $LC0 -00000004 l .rodata.str1.4 00000000 $LC1 -00000000 l df *ABS* 00000000 main.c -00000000 l df *ABS* 00000000 util.c -00000000 l df *ABS* 00000000 gfx.c -00000000 l df *ABS* 00000000 file_select.c -00000000 g F .text 0000002c text_init -000000e0 g O .data 00000010 items_sprite -00000008 g O .sdata 00000008 hash_sprites -0000001c g O .sbss 00000004 cfg_file_select_hash -000000d4 g F .text 00000148 text_flush -000000f0 g O .data 00000010 medals_sprite -00000004 g O .sdata 00000004 dungeon_count -000000d0 g O .data 00000010 quest_items_sprite -00000c9c g F .text 00000034 heap_alloc -0000021c g F .text 000009b8 draw_dungeon_info -00000000 *UND* 00000000 FONT_TEXTURE -00001368 g F .text 00000234 draw_file_select_hash -00000f24 g F .text 000000f0 sprite_draw -00000d84 g F .text 000001a0 sprite_load -00000100 g O .data 00000010 stones_sprite -00000010 g O .bss 00000010 setup_db -00001014 g F .text 000001dc draw_setup -000000c0 g O .data 00000010 font_sprite -00000d54 g F .text 00000030 sprite_bytes -00000010 g O .sbss 00000004 cfg_dungeon_info_mq_need_map -000011f0 g F .text 00000178 gfx_init -00000d14 g F .text 00000018 disp_buf_init -00000000 g O .bss 0000000e cfg_dungeon_is_mq -00000024 g O .data 0000009c dungeons -00000010 g O .data 00000012 medal_colors -0000002c g F .text 000000a8 text_print -00000bd4 g F .text 0000002c c_init -00000018 g O .sbss 00000004 heap_next -00000000 g O .data 0000000e cfg_dungeon_rewards -00000c00 g F .text 00000088 c_after_game_state_update -00000110 g O .data 00000040 hash_symbols -00000c88 g F .text 00000014 heap_init -0000000c g O .sbss 00000004 cfg_dungeon_info_reward_need_compass -00000014 g O .sbss 00000004 cfg_dungeon_info_mq_enable -00000000 *UND* 00000000 C_HEAP -00000d2c g F .text 00000028 sprite_bytes_per_tile -00000cd0 g F .text 00000044 file_init -00000008 g O .sbss 00000004 cfg_dungeon_info_reward_need_altar -00000000 g O .sdata 00000004 cfg_dungeon_info_enable - - + +../build/bundle.o: file format elf32-bigmips + +SYMBOL TABLE: +00000000 l d .MIPS.abiflags 00000000 .MIPS.abiflags +00000000 l d .reginfo 00000000 .reginfo +00000000 l d .text 00000000 .text +00000000 l d .rodata.str1.4 00000000 .rodata.str1.4 +00000000 l d .data 00000000 .data +00000000 l d .sdata 00000000 .sdata +00000000 l d .sbss 00000000 .sbss +00000000 l d .bss 00000000 .bss +00000000 l d .comment 00000000 .comment +00000000 l d .pdr 00000000 .pdr +00000000 l d .gnu.attributes 00000000 .gnu.attributes +00000000 l d .mdebug.abi32 00000000 .mdebug.abi32 +00000000 l df *ABS* 00000000 file_select.c +00000000 l df *ABS* 00000000 gfx.c +00000000 l df *ABS* 00000000 util.c +00000000 l df *ABS* 00000000 main.c +00000000 l df *ABS* 00000000 dungeon_info.c +00000000 l .rodata.str1.4 00000000 $LC0 +00000004 l .rodata.str1.4 00000000 $LC1 +00000000 l df *ABS* 00000000 text.c +0000001c l O .sbss 00000004 text_buf +00000018 l O .sbss 00000004 text_end +00001380 g F .text 0000002c text_init +00000060 g O .data 00000010 items_sprite +00000000 g O .sdata 00000008 hash_sprites +00000000 g O .sbss 00000004 cfg_file_select_hash +00001454 g F .text 00000148 text_flush +00000070 g O .data 00000010 medals_sprite +0000000c g O .sdata 00000004 dungeon_count +00000050 g O .data 00000010 quest_items_sprite +0000089c g F .text 00000034 heap_alloc +000009c8 g F .text 000009b8 draw_dungeon_info +00000000 *UND* 00000000 FONT_TEXTURE +00000000 g F .text 00000234 draw_file_select_hash +00000444 g F .text 000000f0 sprite_draw +000002a4 g F .text 000001a0 sprite_load +00000080 g O .data 00000010 stones_sprite +00000000 g O .bss 00000010 setup_db +00000534 g F .text 000001dc draw_setup +00000040 g O .data 00000010 font_sprite +00000274 g F .text 00000030 sprite_bytes +00000010 g O .sbss 00000004 cfg_dungeon_info_mq_need_map +00000710 g F .text 00000178 gfx_init +00000234 g F .text 00000018 disp_buf_init +00000010 g O .bss 0000000e cfg_dungeon_is_mq +000000b4 g O .data 0000009c dungeons +000000a0 g O .data 00000012 medal_colors +000013ac g F .text 000000a8 text_print +00000914 g F .text 0000002c c_init +00000004 g O .sbss 00000004 heap_next +00000090 g O .data 0000000e cfg_dungeon_rewards +00000940 g F .text 00000088 c_after_game_state_update +00000000 g O .data 00000040 hash_symbols +00000888 g F .text 00000014 heap_init +0000000c g O .sbss 00000004 cfg_dungeon_info_reward_need_compass +00000014 g O .sbss 00000004 cfg_dungeon_info_mq_enable +00000000 *UND* 00000000 C_HEAP +0000024c g F .text 00000028 sprite_bytes_per_tile +000008d0 g F .text 00000044 file_init +00000008 g O .sbss 00000004 cfg_dungeon_info_reward_need_altar +00000008 g O .sdata 00000004 cfg_dungeon_info_enable + + diff --git a/data/rom_patch.txt b/data/rom_patch.txt index 721dc9f78..3123ba765 100644 --- a/data/rom_patch.txt +++ b/data/rom_patch.txt @@ -556,8 +556,8 @@ baed6d,0 baed6f,0 baf738,c baf739,10 -baf73a,18 -baf73b,da +baf73a,14 +baf73b,0 baf73d,4 baf740,8f baf741,b0 @@ -1147,7 +1147,7 @@ ec9ce7,7a 3480024,c 3480025,10 3480026,16 -3480027,f5 +3480027,45 348002c,3c 348002d,2 348002e,80 @@ -5129,7 +5129,8 @@ ec9ce7,7a 3483353,10 3483354,c 3483355,10 -3483356,17 +3483356,16 +3483357,50 348335c,3c 348335d,e 348335e,80 @@ -6094,4370 +6095,4371 @@ ec9ce7,7a 34b3000,27 34b3001,bd 34b3002,ff -34b3003,e8 +34b3003,98 34b3004,af 34b3005,bf -34b3007,14 -34b3008,c -34b3009,10 -34b300a,17 -34b300b,27 -34b300c,24 -34b300d,4 -34b300e,4 -34b3010,3c -34b3011,3 -34b3012,80 -34b3013,40 -34b3014,ac -34b3015,62 -34b3016,67 -34b3017,c -34b3018,3c -34b3019,3 -34b301a,80 -34b301b,40 -34b301c,ac -34b301d,62 -34b301e,67 -34b301f,8 -34b3020,8f -34b3021,bf -34b3023,14 -34b3024,3 -34b3025,e0 -34b3027,8 -34b3028,27 -34b3029,bd -34b302b,18 -34b302c,80 -34b302d,82 -34b3030,10 -34b3031,40 -34b3033,26 -34b3034,24 -34b3035,87 -34b3037,1 -34b3038,3c -34b3039,3 -34b303a,80 -34b303b,40 -34b303c,8c -34b303d,68 -34b303e,67 -34b303f,c -34b3040,25 -34b3041,8 -34b3042,4 +34b3007,64 +34b3008,af +34b3009,be +34b300b,60 +34b300c,af +34b300d,b7 +34b300f,5c +34b3010,af +34b3011,b6 +34b3013,58 +34b3014,af +34b3015,b5 +34b3017,54 +34b3018,af +34b3019,b4 +34b301b,50 +34b301c,af +34b301d,b3 +34b301f,4c +34b3020,af +34b3021,b2 +34b3023,48 +34b3024,af +34b3025,b1 +34b3027,44 +34b3028,af +34b3029,b0 +34b302b,40 +34b302c,af +34b302d,a4 +34b302f,68 +34b3030,3c +34b3031,2 +34b3032,80 +34b3033,1c +34b3034,34 +34b3035,42 +34b3036,84 +34b3037,a0 +34b3038,8c +34b3039,50 +34b303c,26 +34b303d,2 +34b303e,2 +34b303f,b8 +34b3040,af +34b3041,a2 +34b3043,38 34b3044,3c -34b3045,3 +34b3045,2 34b3046,80 34b3047,40 34b3048,8c -34b3049,63 +34b3049,43 34b304a,67 -34b304b,8 -34b304d,68 -34b304e,20 -34b304f,2b -34b3050,10 -34b3051,80 -34b3053,1e -34b3054,3c -34b3055,a -34b3056,ff -34b3058,25 -34b3059,4a -34b305a,f -34b305b,ff -34b305c,30 -34b305d,c6 -34b305e,f -34b305f,ff -34b3060,24 -34b3061,b -34b3062,f0 -34b3064,3c -34b3065,9 -34b3066,80 -34b3067,40 -34b3068,10 -34b306b,7 -34b306c,25 -34b306d,29 -34b306e,66 -34b306f,68 -34b3071,68 -34b3072,20 -34b3073,2b -34b3074,54 -34b3075,80 -34b3077,5 -34b3078,a0 -34b3079,62 -34b307c,3c +34b304b,2c +34b304c,8e +34b304d,2 +34b304e,2 +34b304f,c0 +34b3050,24 +34b3051,44 +34b3053,8 +34b3054,ae +34b3055,4 +34b3056,2 +34b3057,c0 +34b3058,3c +34b3059,4 +34b305a,de +34b305c,ac +34b305d,44 +34b3060,ac +34b3061,43 +34b3063,4 +34b3064,8e +34b3065,2 +34b3066,2 +34b3067,c0 +34b3068,24 +34b3069,43 +34b306b,8 +34b306c,ae +34b306d,3 +34b306e,2 +34b306f,c0 +34b3070,3c +34b3071,3 +34b3072,e7 +34b3074,ac +34b3075,43 +34b3078,ac +34b3079,40 +34b307b,4 +34b307c,8e 34b307d,2 -34b307e,80 -34b307f,40 -34b3080,3 -34b3081,e0 +34b307e,2 +34b307f,c0 +34b3080,24 +34b3081,43 34b3083,8 -34b3084,ac -34b3085,43 -34b3086,67 -34b3087,8 -34b3088,a0 -34b3089,62 -34b308c,30 -34b308d,a2 -34b308e,f -34b308f,ff -34b3091,2 -34b3092,23 -34b3094,8c -34b3095,62 -34b3099,4a -34b309a,10 -34b309b,24 -34b309d,44 -34b309e,10 -34b309f,25 -34b30a1,4b -34b30a2,10 -34b30a3,24 -34b30a5,46 -34b30a6,10 -34b30a7,25 -34b30a8,ac -34b30a9,62 -34b30ac,95 -34b30ad,22 -34b30af,4 -34b30b1,a2 -34b30b2,28 -34b30b3,21 +34b3084,ae +34b3085,3 +34b3086,2 +34b3087,c0 +34b3088,3c +34b3089,3 +34b308a,fc +34b308b,11 +34b308c,34 +34b308d,63 +34b308e,96 +34b308f,23 +34b3090,ac +34b3091,43 +34b3094,3c +34b3095,3 +34b3096,ff +34b3097,2f +34b3098,34 +34b3099,63 +34b309a,ff +34b309b,ff +34b309c,ac +34b309d,43 +34b309f,4 +34b30a0,8e +34b30a1,2 +34b30a2,2 +34b30a3,c0 +34b30a4,24 +34b30a5,43 +34b30a7,8 +34b30a8,ae +34b30a9,3 +34b30aa,2 +34b30ab,c0 +34b30ac,3c +34b30ad,3 +34b30ae,fa +34b30b0,ac +34b30b1,43 34b30b4,24 -34b30b5,e7 -34b30b7,1 -34b30b8,80 -34b30b9,e2 -34b30ba,ff -34b30bb,ff -34b30bc,14 -34b30bd,40 -34b30be,ff -34b30bf,ec -34b30c0,24 -34b30c1,63 -34b30c3,4 -34b30c4,3c -34b30c5,2 -34b30c6,80 -34b30c7,40 -34b30c8,ac -34b30c9,43 -34b30ca,67 -34b30cb,8 -34b30cc,3 -34b30cd,e0 -34b30cf,8 -34b30d4,27 -34b30d5,bd -34b30d6,ff -34b30d7,b0 -34b30d8,af -34b30d9,bf -34b30db,4c -34b30dc,af -34b30dd,be -34b30df,48 -34b30e0,af -34b30e1,b7 -34b30e3,44 -34b30e4,af -34b30e5,b6 -34b30e7,40 -34b30e8,af -34b30e9,b5 -34b30eb,3c -34b30ec,af -34b30ed,b4 -34b30ef,38 -34b30f0,af -34b30f1,b3 -34b30f3,34 -34b30f4,af -34b30f5,b2 -34b30f7,30 -34b30f8,af -34b30f9,b1 -34b30fb,2c -34b30fc,af -34b30fd,b0 -34b30ff,28 -34b3101,80 -34b3102,a8 -34b3103,25 -34b3106,b0 -34b3107,25 -34b310a,90 -34b310b,25 -34b310c,3c -34b310d,14 -34b310e,80 -34b310f,40 -34b3110,26 -34b3111,94 -34b3112,66 -34b3113,68 -34b3114,3c -34b3115,1e -34b3116,80 -34b3117,40 -34b3118,3c -34b3119,13 -34b311a,80 -34b311b,40 -34b311c,3c -34b311d,17 -34b311e,38 -34b311f,e3 +34b30b5,3 +34b30b6,ff +34b30b7,ff +34b30b8,ac +34b30b9,43 +34b30bb,4 +34b30bc,3c +34b30bd,2 +34b30be,80 +34b30bf,40 +34b30c0,8c +34b30c1,52 +34b30c2,67 +34b30c3,8 +34b30c4,24 +34b30c5,11 +34b30c7,54 +34b30c8,3c +34b30c9,16 +34b30ca,80 +34b30cb,40 +34b30cc,26 +34b30cd,d6 +34b30ce,65 +34b30cf,a8 +34b30d0,3c +34b30d1,15 +34b30d2,80 +34b30d3,40 +34b30d4,26 +34b30d5,b5 +34b30d6,66 +34b30d7,f8 +34b30d8,24 +34b30d9,14 +34b30db,18 +34b30dc,24 +34b30dd,1e +34b30df,c +34b30e0,24 +34b30e1,17 +34b30e3,f4 +34b30e4,32 +34b30e5,42 +34b30e7,1f +34b30e9,2 +34b30ea,10 +34b30eb,40 +34b30ed,12 +34b30ee,91 +34b30ef,43 +34b30f1,56 +34b30f2,10 +34b30f3,21 +34b30f4,90 +34b30f5,43 +34b30f9,3 +34b30fa,18 +34b30fb,80 +34b30fd,75 +34b30fe,18 +34b30ff,21 +34b3100,8c +34b3101,73 +34b3104,24 +34b3105,7 +34b3107,1 +34b3108,90 +34b3109,46 +34b310b,1 +34b310c,2 +34b310d,60 +34b310e,28 +34b310f,25 +34b3110,c +34b3111,10 +34b3112,14 +34b3113,a9 +34b3114,8f +34b3115,a4 +34b3117,38 +34b3118,af +34b3119,b4 +34b311b,18 +34b311c,af +34b311d,b4 +34b311f,14 34b3120,af -34b3121,b4 -34b3123,20 -34b3124,24 -34b3125,7 -34b3127,12 -34b3128,2 -34b3129,c0 +34b3121,be +34b3123,10 +34b3124,2 +34b3125,20 +34b3126,38 +34b3127,25 34b312a,30 34b312b,25 34b312c,2 -34b312d,80 +34b312d,60 34b312e,28 34b312f,25 34b3130,c 34b3131,10 -34b3132,17 -34b3133,61 -34b3134,2 -34b3135,a0 -34b3136,20 -34b3137,25 -34b3138,8f -34b3139,c5 -34b313a,67 -34b313b,c -34b313c,10 -34b313f,1f -34b3140,36 -34b3141,f1 -34b3142,8e -34b3143,39 -34b3144,24 -34b3145,42 -34b3146,ff -34b3147,e0 -34b3149,51 -34b314b,18 -34b314e,18 -34b314f,10 -34b3151,3 -34b3152,18 -34b3153,83 -34b3155,2 -34b3156,27 -34b3157,c3 -34b3159,64 -34b315a,18 -34b315b,23 -34b315c,14 -34b315d,72 -34b315f,16 -34b3160,24 -34b3161,b0 +34b3132,15 +34b3133,11 +34b3134,8f +34b3135,a4 +34b3137,38 +34b3138,26 +34b3139,31 +34b313b,20 +34b313c,56 +34b313d,37 +34b313e,ff +34b313f,ea +34b3140,32 +34b3141,42 +34b3143,1f +34b3144,10 +34b3147,c +34b3148,8e +34b3149,2 +34b314a,2 +34b314b,c0 +34b314c,8e +34b314d,3 +34b314e,2 +34b314f,c0 +34b3150,24 +34b3151,64 +34b3153,8 +34b3154,ae +34b3155,4 +34b3156,2 +34b3157,c0 +34b3158,8c +34b3159,45 +34b315b,4 +34b315c,8c +34b315d,44 +34b3160,ac +34b3161,65 34b3163,4 -34b3164,8c -34b3165,a7 -34b3169,7 -34b316a,3b -34b316b,2 -34b316d,51 -34b316f,18 -34b3172,30 -34b3173,10 -34b3175,6 -34b3176,30 -34b3177,83 -34b3179,c4 -34b317a,30 -34b317b,23 -34b317d,6 -34b317e,18 +34b3164,24 +34b3165,42 +34b3167,8 +34b3168,14 +34b3169,46 +34b316a,ff +34b316b,f8 +34b316c,ac +34b316d,64 +34b3170,10 +34b3173,25 +34b3174,8f +34b3175,bf +34b3177,64 +34b3178,24 +34b3179,43 +34b317b,8 +34b317c,ae +34b317d,3 +34b317e,2 34b317f,c0 -34b3181,66 -34b3182,30 -34b3183,21 -34b3185,6 -34b3186,30 -34b3187,40 -34b3188,96 -34b3189,83 -34b318b,6 -34b318c,af -34b318d,a3 -34b318f,18 -34b3190,96 -34b3191,83 -34b3193,4 -34b3194,af -34b3195,a3 -34b3197,14 -34b3198,8c -34b3199,a3 -34b319c,30 +34b3180,3c +34b3181,3 +34b3182,e7 +34b3184,ac +34b3185,43 +34b3188,ac +34b3189,40 +34b318b,4 +34b318c,8e +34b318d,2 +34b318e,2 +34b318f,c0 +34b3190,24 +34b3191,43 +34b3193,8 +34b3194,ae +34b3195,3 +34b3196,2 +34b3197,c0 +34b3198,3c +34b3199,3 +34b319a,fc +34b319b,ff +34b319c,34 34b319d,63 -34b319e,f +34b319e,ff 34b319f,ff -34b31a0,af -34b31a1,a3 -34b31a3,10 -34b31a4,30 -34b31a5,e7 -34b31a6,f -34b31a7,ff -34b31a9,46 -34b31aa,30 -34b31ab,23 -34b31ac,8f -34b31ad,a5 -34b31af,20 -34b31b0,c -34b31b1,10 -34b31b2,17 -34b31b3,c9 -34b31b4,2 -34b31b5,a0 -34b31b6,20 -34b31b7,25 -34b31b8,2 -34b31ba,28 -34b31bb,25 -34b31bc,8e -34b31bd,62 -34b31be,67 -34b31bf,8 -34b31c1,a2 -34b31c2,10 -34b31c3,2b -34b31c4,54 -34b31c5,40 -34b31c6,ff -34b31c7,df -34b31c8,80 -34b31c9,a2 -34b31cc,26 -34b31cd,52 -34b31cf,1 +34b31a0,ac +34b31a1,43 +34b31a4,3c +34b31a5,3 +34b31a6,ff +34b31a7,fd +34b31a8,34 +34b31a9,63 +34b31aa,f6 +34b31ab,fb +34b31ac,ac +34b31ad,43 +34b31af,4 +34b31b0,8e +34b31b1,2 +34b31b2,2 +34b31b3,c0 +34b31b4,24 +34b31b5,43 +34b31b7,8 +34b31b8,ae +34b31b9,3 +34b31ba,2 +34b31bb,c0 +34b31bc,3c +34b31bd,3 +34b31be,fa +34b31c0,ac +34b31c1,43 +34b31c4,93 +34b31c5,a3 +34b31c7,6b +34b31c8,ac +34b31c9,43 +34b31cb,4 +34b31cc,3c +34b31cd,2 +34b31ce,e4 +34b31cf,50 34b31d0,24 -34b31d1,2 -34b31d3,6 -34b31d4,16 -34b31d5,42 -34b31d6,ff -34b31d7,d3 -34b31d8,26 -34b31d9,d6 -34b31db,12 +34b31d1,42 +34b31d2,3 +34b31d3,c0 +34b31d4,af +34b31d5,a2 +34b31d7,20 +34b31d8,af +34b31d9,a0 +34b31db,24 34b31dc,3c 34b31dd,2 -34b31de,80 -34b31df,40 -34b31e0,8c -34b31e1,43 -34b31e2,67 -34b31e3,c -34b31e4,3c -34b31e5,2 -34b31e6,80 -34b31e7,40 -34b31e8,ac -34b31e9,43 -34b31ea,67 -34b31eb,8 -34b31ec,8f -34b31ed,bf -34b31ef,4c -34b31f0,8f -34b31f1,be -34b31f3,48 -34b31f4,8f -34b31f5,b7 -34b31f7,44 -34b31f8,8f -34b31f9,b6 -34b31fb,40 -34b31fc,8f -34b31fd,b5 -34b31ff,3c -34b3200,8f -34b3201,b4 -34b3203,38 -34b3204,8f -34b3205,b3 -34b3207,34 +34b31de,e1 +34b31e0,af +34b31e1,a2 +34b31e3,28 +34b31e4,af +34b31e5,a0 +34b31e7,2c +34b31e8,3c +34b31e9,2 +34b31ea,f1 +34b31ec,af +34b31ed,a2 +34b31ef,30 +34b31f0,3c +34b31f1,2 +34b31f2,4 +34b31f4,24 +34b31f5,42 +34b31f6,4 +34b31f8,af +34b31f9,a2 +34b31fb,34 +34b31fc,27 +34b31fd,a2 +34b31ff,20 +34b3200,10 +34b3202,ff +34b3203,d2 +34b3204,27 +34b3205,a6 +34b3207,38 34b3208,8f -34b3209,b2 -34b320b,30 +34b3209,be +34b320b,60 34b320c,8f -34b320d,b1 -34b320f,2c +34b320d,b7 +34b320f,5c 34b3210,8f -34b3211,b0 -34b3213,28 -34b3214,3 -34b3215,e0 -34b3217,8 -34b3218,27 -34b3219,bd +34b3211,b6 +34b3213,58 +34b3214,8f +34b3215,b5 +34b3217,54 +34b3218,8f +34b3219,b4 34b321b,50 -34b321c,3c -34b321d,2 -34b321e,80 -34b321f,40 -34b3220,8c -34b3221,42 -34b3222,66 -34b3223,f8 -34b3224,10 -34b3225,40 -34b3226,2 -34b3227,69 -34b3228,3c -34b3229,3 -34b322a,80 +34b321c,8f +34b321d,b3 +34b321f,4c +34b3220,8f +34b3221,b2 +34b3223,48 +34b3224,8f +34b3225,b1 +34b3227,44 +34b3228,8f +34b3229,b0 34b322b,40 -34b322c,27 -34b322d,bd -34b322e,ff -34b322f,90 -34b3230,af -34b3231,bf -34b3233,6c -34b3234,af -34b3235,be -34b3237,68 -34b3238,af -34b3239,b7 -34b323b,64 -34b323c,af -34b323d,b6 -34b323f,60 -34b3240,af -34b3241,b5 -34b3243,5c -34b3244,af -34b3245,b4 -34b3247,58 -34b3248,af -34b3249,b3 -34b324b,54 -34b324c,af -34b324d,b2 -34b324f,50 -34b3250,af -34b3251,b1 -34b3253,4c -34b3254,af -34b3255,b0 -34b3257,48 -34b3258,8c -34b3259,82 -34b325b,4 -34b325c,8c -34b325d,63 -34b325e,67 -34b325f,3c -34b3260,24 -34b3261,45 -34b3263,8 -34b3264,ac -34b3265,85 -34b3267,8 -34b3268,3c -34b3269,5 -34b326a,de -34b326c,ac -34b326d,45 -34b3270,ac -34b3271,43 -34b3273,4 -34b3274,3c -34b3275,2 -34b3276,80 -34b3277,11 -34b3278,34 -34b3279,42 -34b327a,a5 -34b327b,d0 -34b327c,94 -34b327d,54 -34b327e,f -34b327f,2e -34b3280,3c -34b3281,2 -34b3282,80 -34b3283,40 -34b3284,8c -34b3285,42 -34b3286,67 -34b3287,10 -34b3288,50 -34b3289,40 -34b328b,5 -34b328c,24 -34b328d,8 -34b328f,1 -34b3290,32 -34b3291,88 -34b3293,1 -34b3295,14 -34b3296,a0 -34b3297,42 -34b3298,10 -34b329b,2 -34b329c,32 -34b329d,94 -34b329f,1 -34b32a0,24 -34b32a1,14 -34b32a3,1 -34b32a4,3c -34b32a5,2 -34b32a6,80 -34b32a7,40 -34b32a8,8c -34b32a9,55 -34b32aa,67 -34b32ab,1c -34b32ac,12 -34b32ad,a0 -34b32af,7 -34b32b0,2 -34b32b1,a0 -34b32b2,18 -34b32b3,25 -34b32b4,3c -34b32b5,2 -34b32b6,80 -34b32b7,40 -34b32b8,94 -34b32b9,43 -34b32ba,66 -34b32bb,6c -34b32bd,3 -34b32be,10 -34b32bf,40 -34b32c1,43 -34b32c2,10 -34b32c3,21 -34b32c5,2 -34b32c6,10 -34b32c7,40 -34b32c8,24 -34b32c9,43 -34b32cb,1 -34b32cc,3c -34b32cd,2 -34b32ce,80 -34b32cf,40 -34b32d0,94 -34b32d1,42 -34b32d2,66 -34b32d3,6c -34b32d5,2 -34b32d6,10 -34b32d7,c0 -34b32d8,24 -34b32d9,42 -34b32db,57 -34b32dd,43 -34b32de,10 -34b32df,21 -34b32e0,24 -34b32e1,3 -34b32e2,1 -34b32e3,40 -34b32e5,62 -34b32e6,18 -34b32e7,23 -34b32e9,3 -34b32ea,8f -34b32eb,c2 -34b32ec,2 -34b32ed,23 -34b32ee,88 -34b32ef,21 -34b32f1,11 -34b32f2,88 -34b32f3,43 -34b32f4,26 -34b32f5,23 -34b32f7,1 -34b32f8,af -34b32f9,a3 -34b32fb,38 -34b32fc,8c -34b32fd,83 -34b32ff,8 -34b3300,24 -34b3301,65 -34b3303,8 -34b3304,ac -34b3305,85 -34b3307,8 -34b3308,3c -34b3309,5 -34b330a,fc +34b322c,3 +34b322d,e0 +34b322f,8 +34b3230,27 +34b3231,bd +34b3233,68 +34b3234,ac +34b3235,86 +34b3238,ac +34b3239,85 +34b323b,4 +34b323c,ac +34b323d,85 +34b323f,8 +34b3241,a6 +34b3242,28 +34b3243,21 +34b3244,3 +34b3245,e0 +34b3247,8 +34b3248,ac +34b3249,85 +34b324b,c +34b324c,94 +34b324d,82 +34b324f,4 +34b3250,94 +34b3251,83 +34b3253,6 +34b3255,43 +34b3257,18 +34b325a,10 +34b325b,12 +34b325c,90 +34b325d,83 +34b325f,c +34b3265,43 +34b3267,18 +34b326a,10 +34b326b,12 +34b326c,3 +34b326d,e0 +34b326f,8 +34b3274,27 +34b3275,bd +34b3276,ff +34b3277,e8 +34b3278,af +34b3279,bf +34b327b,14 +34b327c,af +34b327d,b0 +34b327f,10 +34b3280,c +34b3281,10 +34b3282,14 +34b3283,93 +34b3285,80 +34b3286,80 +34b3287,25 +34b3288,96 +34b3289,3 +34b328b,8 +34b328d,62 +34b328f,18 +34b3292,10 +34b3293,12 +34b3294,8f +34b3295,bf +34b3297,14 +34b3298,8f +34b3299,b0 +34b329b,10 +34b329c,3 +34b329d,e0 +34b329f,8 +34b32a0,27 +34b32a1,bd +34b32a3,18 +34b32a4,27 +34b32a5,bd +34b32a6,ff +34b32a7,98 +34b32a8,af +34b32a9,bf +34b32ab,64 +34b32ac,af +34b32ad,b6 +34b32af,60 +34b32b0,af +34b32b1,b5 +34b32b3,5c +34b32b4,af +34b32b5,b4 +34b32b7,58 +34b32b8,af +34b32b9,b3 +34b32bb,54 +34b32bc,af +34b32bd,b2 +34b32bf,50 +34b32c0,af +34b32c1,b1 +34b32c3,4c +34b32c4,af +34b32c5,b0 +34b32c7,48 +34b32c9,80 +34b32ca,80 +34b32cb,25 +34b32cd,a0 +34b32ce,a8 +34b32cf,25 +34b32d1,c0 +34b32d2,b0 +34b32d3,25 +34b32d4,94 +34b32d5,b1 +34b32d7,4 +34b32d8,94 +34b32d9,b2 +34b32db,6 +34b32dc,2 +34b32dd,47 +34b32df,18 +34b32e2,90 +34b32e3,12 +34b32e4,90 +34b32e5,b4 +34b32e7,b +34b32e8,90 +34b32e9,a2 +34b32eb,a +34b32ed,2 +34b32ee,15 +34b32ef,40 +34b32f0,3c +34b32f1,13 +34b32f3,e0 +34b32f5,53 +34b32f6,10 +34b32f7,24 +34b32f9,14 +34b32fa,9c +34b32fb,c0 +34b32fc,3c +34b32fd,3 +34b32ff,18 +34b3300,2 +34b3301,63 +34b3302,98 +34b3303,24 +34b3305,53 +34b3306,98 +34b3307,25 +34b3308,26 +34b3309,23 +34b330a,ff 34b330b,ff -34b330c,34 -34b330d,a5 -34b330e,ff +34b330c,30 +34b330d,63 +34b330e,f 34b330f,ff -34b3310,ac -34b3311,65 +34b3311,73 +34b3312,18 +34b3313,25 34b3314,3c -34b3315,5 -34b3316,ff -34b3317,fd -34b3318,34 -34b3319,a5 -34b331a,f6 -34b331b,fb -34b331c,ac -34b331d,65 -34b331f,4 -34b3320,8c -34b3321,83 -34b3323,8 -34b3324,24 -34b3325,65 -34b3327,8 -34b3328,ac -34b3329,85 -34b332b,8 -34b332c,3c -34b332d,5 -34b332e,fa -34b3330,ac -34b3331,65 -34b3334,24 -34b3335,5 -34b3337,d0 -34b3338,ac -34b3339,65 -34b333b,4 -34b333d,51 -34b333e,10 -34b333f,21 -34b3341,2 -34b3342,13 -34b3343,80 -34b3344,3c -34b3345,3 -34b3347,ff -34b3348,34 -34b3349,63 -34b334a,f0 -34b334d,43 +34b3315,2 +34b3316,fd +34b3319,62 +34b331a,18 +34b331b,25 +34b331c,af +34b331d,a3 +34b331f,10 +34b3320,c +34b3321,10 +34b3322,14 +34b3323,93 +34b3325,a0 +34b3326,20 +34b3327,25 +34b3329,56 +34b332b,18 +34b332e,10 +34b332f,12 +34b3330,8e +34b3331,a3 +34b3335,62 +34b3336,18 +34b3337,21 +34b3338,af +34b3339,a3 +34b333b,14 +34b333c,2e +34b333d,83 +34b333f,2 +34b3340,10 +34b3341,60 +34b3343,3 +34b3344,24 +34b3345,2 +34b3347,10 +34b3348,24 +34b3349,2 +34b334b,4 +34b334c,2 +34b334d,82 34b334e,10 -34b334f,24 -34b3350,3c -34b3351,5 -34b3352,e4 -34b3354,24 -34b3355,a5 -34b3356,3 -34b3357,9c -34b3359,45 -34b335a,10 -34b335b,25 -34b335c,af -34b335d,a2 -34b335f,20 -34b3361,11 -34b3362,13 -34b3363,80 +34b334f,4 +34b3351,51 +34b3353,18 +34b3356,10 +34b3357,12 +34b3358,24 +34b3359,43 +34b335b,3f +34b335d,3 +34b335e,17 +34b335f,c3 +34b3360,30 +34b3361,42 +34b3363,3f 34b3365,43 34b3366,10 -34b3367,24 -34b3368,34 -34b3369,42 -34b336b,24 -34b336c,af -34b336d,a2 -34b336f,24 -34b3370,3c -34b3371,2 -34b3372,e1 -34b3374,af -34b3375,a2 -34b3377,28 -34b3378,af -34b3379,a0 -34b337b,2c +34b3367,21 +34b3369,2 +34b336a,10 +34b336b,c0 +34b336c,3c +34b336d,3 +34b336f,3 +34b3370,34 +34b3371,63 +34b3372,fe +34b3375,43 +34b3376,10 +34b3377,24 +34b3379,53 +34b337a,10 +34b337b,25 34b337c,3c -34b337d,2 -34b337e,f1 -34b3380,af -34b3381,a2 -34b3383,30 -34b3384,3c -34b3385,2 -34b3386,4 -34b3388,24 -34b3389,42 -34b338a,4 +34b337d,3 +34b337e,f5 +34b3381,43 +34b3382,10 +34b3383,25 +34b3384,af +34b3385,a2 +34b3387,18 +34b3388,3c +34b3389,4 +34b338a,7 34b338c,af -34b338d,a2 -34b338f,34 -34b3390,27 -34b3391,a2 -34b3393,20 -34b3394,27 -34b3395,a9 -34b3397,38 -34b3398,8c -34b3399,83 -34b339b,8 -34b339c,24 -34b339d,65 -34b339f,8 -34b33a0,ac -34b33a1,85 -34b33a3,8 -34b33a4,8c -34b33a5,47 -34b33a7,4 -34b33a8,8c -34b33a9,46 -34b33ac,ac -34b33ad,67 -34b33af,4 -34b33b0,24 -34b33b1,42 -34b33b3,8 -34b33b4,15 -34b33b5,22 -34b33b6,ff -34b33b7,f8 -34b33b8,ac -34b33b9,66 -34b33bd,80 -34b33be,80 -34b33bf,25 -34b33c0,8c -34b33c1,82 -34b33c3,8 -34b33c4,24 -34b33c5,43 -34b33c7,8 -34b33c8,ac -34b33c9,83 -34b33cb,8 -34b33cc,3c -34b33cd,3 -34b33ce,e7 -34b33d0,ac -34b33d1,43 -34b33d4,ac -34b33d5,40 -34b33d7,4 -34b33d8,8c -34b33d9,82 -34b33db,8 -34b33dc,24 -34b33dd,43 -34b33df,8 -34b33e0,ac -34b33e1,83 -34b33e3,8 +34b338d,a4 +34b338f,1c +34b3390,3c +34b3391,3 +34b3392,e6 +34b3394,af +34b3395,a3 +34b3397,20 +34b3398,af +34b3399,a0 +34b339b,24 +34b339c,3c +34b339d,3 +34b339e,f4 +34b33a0,af +34b33a1,a3 +34b33a3,28 +34b33a4,26 +34b33a5,23 +34b33a6,ff +34b33a7,ff +34b33a9,3 +34b33aa,1b +34b33ab,80 +34b33ac,3c +34b33ad,11 +34b33af,ff +34b33b0,36 +34b33b1,31 +34b33b2,f0 +34b33b5,71 +34b33b6,18 +34b33b7,24 +34b33b8,26 +34b33b9,52 +34b33ba,ff +34b33bb,ff +34b33bd,12 +34b33be,90 +34b33bf,80 +34b33c0,32 +34b33c1,52 +34b33c2,f +34b33c3,fc +34b33c5,72 +34b33c6,18 +34b33c7,25 +34b33c9,64 +34b33ca,20 +34b33cb,25 +34b33cc,af +34b33cd,a4 +34b33cf,2c +34b33d0,3c +34b33d1,4 +34b33d2,e7 +34b33d4,af +34b33d5,a4 +34b33d7,30 +34b33d8,af +34b33d9,a0 +34b33db,34 +34b33dc,af +34b33dd,a2 +34b33df,38 +34b33e0,af +34b33e1,a0 +34b33e3,3c 34b33e4,3c -34b33e5,3 -34b33e6,fc -34b33e7,11 -34b33e8,34 -34b33e9,63 -34b33ea,96 -34b33eb,23 -34b33ec,ac -34b33ed,43 -34b33f0,3c -34b33f1,3 -34b33f2,ff -34b33f3,2f -34b33f4,34 -34b33f5,63 -34b33f6,ff -34b33f7,ff -34b33f8,11 -34b33fb,4c -34b33fc,ac -34b33fd,43 -34b33ff,4 -34b3400,3c -34b3401,5 -34b3402,80 -34b3403,40 -34b3404,24 -34b3405,a5 -34b3406,66 -34b3407,98 -34b3408,94 -34b3409,a7 -34b340b,8 -34b340c,c -34b340d,10 -34b340e,17 -34b340f,61 -34b3412,30 -34b3413,25 -34b3414,3c -34b3415,2 -34b3416,80 -34b3417,40 -34b3418,8c -34b3419,42 -34b341a,66 -34b341b,fc -34b341c,18 -34b341d,40 -34b341f,43 -34b3420,3c -34b3421,2 -34b3422,80 -34b3423,40 -34b3424,3c -34b3425,13 -34b3426,80 -34b3427,40 -34b3428,26 -34b3429,73 -34b342a,65 -34b342b,cc -34b342e,90 -34b342f,25 -34b3430,3c -34b3431,1e -34b3432,80 -34b3433,40 -34b3434,3c -34b3435,16 -34b3436,80 -34b3437,40 -34b3438,26 -34b3439,d6 -34b343a,65 -34b343b,a8 -34b343c,24 -34b343d,42 -34b343e,65 -34b343f,b8 -34b3440,af -34b3441,a2 -34b3443,3c -34b3444,3c -34b3445,2 -34b3446,80 -34b3447,40 -34b3448,24 -34b3449,42 -34b344a,66 -34b344b,98 -34b344c,af +34b33e5,2 +34b33e6,f2 +34b33e8,af +34b33e9,a2 +34b33eb,40 +34b33ec,af +34b33ed,a3 +34b33ef,44 +34b33f0,27 +34b33f1,a2 +34b33f3,10 +34b33f4,27 +34b33f5,a6 +34b33f7,48 +34b33f8,8e +34b33f9,3 +34b33fb,8 +34b33fc,24 +34b33fd,64 +34b33ff,8 +34b3400,ae +34b3401,4 +34b3403,8 +34b3404,8c +34b3405,45 +34b3407,4 +34b3408,8c +34b3409,44 +34b340c,ac +34b340d,65 +34b340f,4 +34b3410,24 +34b3411,42 +34b3413,8 +34b3414,14 +34b3415,46 +34b3416,ff +34b3417,f8 +34b3418,ac +34b3419,64 +34b341c,8f +34b341d,bf +34b341f,64 +34b3420,8f +34b3421,b6 +34b3423,60 +34b3424,8f +34b3425,b5 +34b3427,5c +34b3428,8f +34b3429,b4 +34b342b,58 +34b342c,8f +34b342d,b3 +34b342f,54 +34b3430,8f +34b3431,b2 +34b3433,50 +34b3434,8f +34b3435,b1 +34b3437,4c +34b3438,8f +34b3439,b0 +34b343b,48 +34b343c,3 +34b343d,e0 +34b343f,8 +34b3440,27 +34b3441,bd +34b3443,68 +34b3444,27 +34b3445,bd +34b3446,ff +34b3447,e8 +34b3448,8f +34b3449,a8 +34b344b,28 +34b344c,8f 34b344d,a2 -34b344f,40 -34b3450,3c -34b3451,17 -34b3452,80 -34b3453,40 -34b3454,8f -34b3455,c2 -34b3456,67 -34b3457,14 -34b3458,50 -34b3459,40 -34b345b,b -34b345c,92 -34b345d,62 -34b3460,92 -34b3461,63 -34b3464,3c -34b3465,2 -34b3466,80 -34b3467,11 -34b3468,34 -34b3469,42 -34b346a,a5 -34b346b,d0 -34b346d,43 -34b346e,10 -34b346f,21 -34b3470,90 -34b3471,42 -34b3473,a8 +34b344f,2c +34b3450,8f +34b3451,aa +34b3453,30 +34b3454,94 +34b3455,a9 +34b3457,4 +34b3459,9 +34b345a,4a +34b345b,80 +34b345c,14 +34b345d,40 +34b345f,2 +34b3460,1 +34b3461,22 +34b3463,1a +34b3465,7 +34b3467,d +34b346a,48 +34b346b,12 +34b346c,94 +34b346d,a3 +34b346f,6 +34b3471,47 +34b3472,10 +34b3473,21 34b3475,2 -34b3476,10 -34b3477,42 -34b3478,30 -34b3479,42 -34b347b,1 -34b347c,50 -34b347d,40 -34b347f,27 -34b3480,26 -34b3481,52 -34b3483,1 -34b3484,92 -34b3485,62 -34b3489,56 -34b348a,10 -34b348b,21 -34b348c,80 -34b348d,46 -34b3490,28 -34b3491,c2 -34b3493,3 -34b3494,54 -34b3495,40 -34b3497,21 -34b3498,26 -34b3499,52 -34b349b,1 -34b349c,24 -34b349d,c6 -34b349e,ff -34b349f,fd -34b34a1,6 -34b34a2,18 -34b34a3,40 -34b34a5,66 -34b34a6,18 -34b34a7,21 -34b34a8,8f -34b34a9,a2 -34b34ab,3c -34b34ad,62 -34b34ae,18 -34b34af,21 -34b34b0,90 -34b34b1,62 -34b34b5,2 -34b34b6,16 -34b34b8,90 -34b34b9,64 -34b34bb,2 -34b34bd,4 -34b34be,22 -34b34c1,44 -34b34c2,10 -34b34c3,25 -34b34c4,90 -34b34c5,63 -34b34c7,1 -34b34c9,3 -34b34ca,1c -34b34cd,43 -34b34ce,10 -34b34cf,25 -34b34d0,34 -34b34d1,42 -34b34d3,ff -34b34d4,8e -34b34d5,3 -34b34d7,8 -34b34d8,24 -34b34d9,64 -34b34db,8 -34b34dc,ae -34b34dd,4 -34b34df,8 -34b34e0,3c -34b34e1,4 -34b34e2,fa -34b34e4,ac -34b34e5,64 -34b34e8,ac -34b34e9,62 -34b34eb,4 -34b34ec,24 -34b34ed,2 -34b34ef,10 -34b34f0,af -34b34f1,a2 -34b34f3,18 -34b34f4,af -34b34f5,a2 -34b34f7,14 -34b34f9,12 -34b34fa,11 -34b34fd,52 -34b34fe,10 -34b34ff,21 -34b3500,24 -34b3501,42 -34b3503,a -34b3504,af -34b3505,a2 -34b3507,10 -34b3508,8f -34b3509,a7 -34b350b,38 -34b350c,8f -34b350d,a5 -34b350f,40 -34b3510,c -34b3511,10 -34b3512,17 -34b3513,c9 -34b3514,2 -34b3516,20 -34b3517,25 -34b3518,26 -34b3519,52 -34b351b,1 -34b351c,8e -34b351d,e2 -34b351e,66 -34b351f,fc -34b3520,2 +34b3476,13 +34b3477,80 +34b3478,3c +34b3479,b +34b347b,ff +34b347c,35 +34b347d,6b +34b347e,f0 +34b3481,4b +34b3482,10 +34b3483,24 +34b3484,1 +34b3485,48 +34b3486,28 +34b3487,21 +34b3489,5 +34b348a,28 +34b348b,80 +34b348c,30 +34b348d,a5 +34b348e,f +34b348f,ff +34b3491,45 +34b3492,10 +34b3493,25 +34b3494,3c +34b3495,5 +34b3496,e4 +34b3499,45 +34b349a,10 +34b349b,25 +34b349c,af +34b349d,a2 +34b34a1,7 +34b34a2,3b +34b34a3,80 +34b34a5,eb +34b34a6,38 +34b34a7,24 +34b34a9,8 +34b34aa,40 +34b34ab,80 +34b34ac,31 +34b34ad,8 +34b34ae,f +34b34af,ff +34b34b1,e8 +34b34b2,38 +34b34b3,25 +34b34b4,af +34b34b5,a7 +34b34b7,4 +34b34b8,3c +34b34b9,2 +34b34ba,e1 +34b34bc,af +34b34bd,a2 +34b34bf,8 +34b34c1,66 +34b34c3,18 +34b34c6,30 +34b34c7,12 +34b34c9,6 +34b34ca,31 +34b34cb,40 +34b34cc,30 +34b34cd,c6 +34b34ce,ff +34b34cf,ff +34b34d0,af +34b34d1,a6 +34b34d3,c +34b34d4,3c +34b34d5,2 +34b34d6,f1 +34b34d8,af +34b34d9,a2 +34b34db,10 +34b34dd,3 +34b34de,1a +34b34df,80 +34b34e0,15 +34b34e1,40 +34b34e3,2 +34b34e5,6a +34b34e7,1a +34b34e9,7 +34b34eb,d +34b34ee,18 +34b34ef,12 +34b34f0,30 +34b34f1,63 +34b34f2,ff +34b34f3,ff +34b34f5,9 +34b34f6,4c +34b34f9,69 +34b34fa,18 +34b34fb,25 +34b34fc,af +34b34fd,a3 +34b34ff,14 +34b3500,3 +34b3501,a0 +34b3502,10 +34b3503,25 +34b3504,27 +34b3505,a8 +34b3507,18 +34b3508,8c +34b3509,83 +34b350b,8 +34b350c,24 +34b350d,65 +34b350f,8 +34b3510,ac +34b3511,85 +34b3513,8 +34b3514,8c +34b3515,47 +34b3517,4 +34b3518,8c +34b3519,46 +34b351c,ac +34b351d,67 +34b351f,4 +34b3520,24 34b3521,42 -34b3522,10 -34b3523,2a +34b3523,8 34b3524,14 -34b3525,40 +34b3525,48 34b3526,ff -34b3527,cb -34b3528,26 -34b3529,73 -34b352b,c -34b352c,8e -34b352d,2 +34b3527,f8 +34b3528,ac +34b3529,66 +34b352c,3 +34b352d,e0 34b352f,8 -34b3530,24 -34b3531,43 -34b3533,8 -34b3534,ae -34b3535,3 +34b3530,27 +34b3531,bd +34b3533,18 +34b3534,8c +34b3535,82 34b3537,8 -34b3538,3c -34b3539,3 -34b353a,fa +34b3538,24 +34b3539,43 +34b353b,8 34b353c,ac -34b353d,43 -34b3540,24 +34b353d,83 +34b353f,8 +34b3540,3c 34b3541,3 -34b3542,ff -34b3543,ff -34b3544,12 -34b3545,80 -34b3547,35 +34b3542,e7 +34b3544,ac +34b3545,43 34b3548,ac -34b3549,43 +34b3549,40 34b354b,4 -34b354c,3c -34b354d,5 -34b354e,80 -34b354f,40 +34b354c,8c +34b354d,82 +34b354f,8 34b3550,24 -34b3551,a5 -34b3552,66 -34b3553,a8 -34b3554,94 -34b3555,a7 +34b3551,43 +34b3553,8 +34b3554,ac +34b3555,83 34b3557,8 -34b355a,30 -34b355b,25 -34b355c,c -34b355d,10 -34b355e,17 -34b355f,61 -34b3560,2 -34b3562,20 -34b3563,25 -34b3564,3c -34b3565,2 -34b3566,80 -34b3567,40 -34b3568,8c -34b3569,42 -34b356a,66 -34b356b,fc -34b356c,18 -34b356d,40 -34b356e,1 -34b356f,95 +34b3558,3c +34b3559,3 +34b355a,d9 +34b355c,ac +34b355d,43 +34b3560,ac +34b3561,40 +34b3563,4 +34b3564,8c +34b3565,82 +34b3567,8 +34b3568,24 +34b3569,43 +34b356b,8 +34b356c,ac +34b356d,83 +34b356f,8 34b3570,3c -34b3571,2 -34b3572,80 -34b3573,40 -34b3574,3c -34b3575,13 -34b3576,80 -34b3577,40 -34b3578,26 -34b3579,73 -34b357a,65 -34b357b,cc -34b357e,90 -34b357f,25 -34b3580,3c -34b3581,17 -34b3582,80 -34b3583,40 -34b3584,3c -34b3585,14 -34b3586,80 -34b3587,40 -34b3588,26 -34b3589,94 -34b358a,65 -34b358b,a8 -34b358c,24 -34b358d,42 -34b358e,66 -34b358f,a8 -34b3590,af -34b3591,a2 -34b3593,3c -34b3594,3c -34b3595,1e -34b3596,80 -34b3597,11 -34b3598,37 -34b3599,de -34b359a,a5 -34b359b,d0 -34b359c,3c -34b359d,16 -34b359e,80 -34b359f,40 -34b35a0,8e -34b35a1,e2 -34b35a2,67 -34b35a3,14 -34b35a4,10 -34b35a5,40 +34b3571,3 +34b3572,ed +34b3574,ac +34b3575,43 +34b3578,3c +34b3579,5 +34b357b,50 +34b357c,24 +34b357d,a3 +34b357e,3 +34b357f,c0 +34b3580,ac +34b3581,43 +34b3583,4 +34b3584,8c +34b3585,83 +34b3587,8 +34b3588,24 +34b3589,62 +34b358b,8 +34b358c,ac +34b358d,82 +34b358f,8 +34b3590,3c +34b3591,2 +34b3592,e3 +34b3594,24 +34b3595,46 +34b3596,1a +34b3597,1 +34b3598,ac +34b3599,66 +34b359c,24 +34b359d,6 +34b359f,30 +34b35a0,ac +34b35a1,66 +34b35a3,4 +34b35a4,8c +34b35a5,83 34b35a7,8 -34b35a8,92 -34b35a9,62 -34b35ac,3 -34b35ad,c2 -34b35ae,10 -34b35af,21 -34b35b0,90 -34b35b1,42 -34b35b3,a8 -34b35b5,2 -34b35b6,10 -34b35b7,42 -34b35b8,30 -34b35b9,42 -34b35bb,1 -34b35bc,50 -34b35bd,40 -34b35bf,13 -34b35c0,26 -34b35c1,52 -34b35c3,1 -34b35c4,92 -34b35c5,62 -34b35c9,54 -34b35ca,10 -34b35cb,21 -34b35cc,80 -34b35cd,46 -34b35d0,2c -34b35d1,c2 -34b35d3,3 -34b35d4,50 -34b35d5,40 -34b35d7,d -34b35d8,26 -34b35d9,52 -34b35db,1 -34b35dc,24 -34b35dd,2 -34b35df,10 -34b35e0,af -34b35e1,a2 -34b35e3,18 -34b35e4,af -34b35e5,a2 -34b35e7,14 -34b35e9,12 -34b35ea,11 -34b35ed,52 -34b35ee,10 -34b35ef,21 +34b35a8,24 +34b35a9,66 +34b35ab,8 +34b35ac,ac +34b35ad,86 +34b35af,8 +34b35b0,24 +34b35b1,46 +34b35b2,18 +34b35b3,1 +34b35b4,ac +34b35b5,66 +34b35b8,24 +34b35b9,6 +34b35bb,c0 +34b35bc,ac +34b35bd,66 +34b35bf,4 +34b35c0,8c +34b35c1,86 +34b35c3,8 +34b35c4,24 +34b35c5,c3 +34b35c7,8 +34b35c8,ac +34b35c9,83 +34b35cb,8 +34b35cc,3c +34b35cd,3 +34b35ce,e2 +34b35d0,24 +34b35d1,67 +34b35d2,1e +34b35d3,1 +34b35d4,ac +34b35d5,c7 +34b35d8,ac +34b35d9,c0 +34b35db,4 +34b35dc,8c +34b35dd,86 +34b35df,8 +34b35e0,24 +34b35e1,c7 +34b35e3,8 +34b35e4,ac +34b35e5,87 +34b35e7,8 +34b35e8,24 +34b35e9,67 +34b35ea,1d +34b35ec,ac +34b35ed,c7 34b35f0,24 -34b35f1,42 -34b35f3,a -34b35f4,af -34b35f5,a2 -34b35f7,10 -34b35f8,8f -34b35f9,a7 -34b35fb,38 -34b35fc,8f -34b35fd,a5 -34b35ff,3c -34b3600,c -34b3601,10 -34b3602,17 -34b3603,c9 -34b3604,2 -34b3606,20 -34b3607,25 -34b3608,26 -34b3609,52 -34b360b,1 -34b360c,8e -34b360d,c2 -34b360e,66 -34b360f,fc -34b3610,2 -34b3611,42 -34b3612,10 -34b3613,2a -34b3614,14 -34b3615,40 -34b3616,ff -34b3617,e2 -34b3618,26 -34b3619,73 -34b361b,c -34b361c,3c -34b361d,2 -34b361e,80 -34b361f,40 -34b3620,8c -34b3621,42 -34b3622,66 -34b3623,fc -34b3624,18 -34b3625,40 -34b3627,10 -34b3628,26 -34b3629,31 -34b362b,12 -34b362c,3c -34b362d,12 -34b362e,80 -34b362f,40 -34b3630,26 -34b3631,52 -34b3632,65 -34b3633,ce -34b3634,24 -34b3635,14 -34b3637,b -34b363a,98 -34b363b,25 -34b363c,3c -34b363d,16 -34b363e,80 -34b363f,40 -34b3640,2 -34b3641,80 -34b3642,30 -34b3643,25 -34b3644,2 -34b3645,20 -34b3646,28 -34b3647,25 -34b3648,c -34b3649,10 -34b364a,14 -34b364b,b -34b364c,2 -34b364d,40 -34b364e,20 -34b364f,25 -34b3650,26 -34b3651,73 -34b3653,1 -34b3654,26 -34b3655,52 -34b3657,c -34b3658,8e -34b3659,c2 -34b365a,66 -34b365b,fc -34b365c,2 -34b365d,62 -34b365e,10 -34b365f,2a -34b3660,14 -34b3661,40 -34b3662,ff -34b3663,f7 -34b3664,26 -34b3665,94 -34b3667,11 -34b3668,3c -34b3669,2 -34b366a,80 -34b366b,40 -34b366c,94 -34b366d,42 -34b366e,66 -34b366f,6c -34b3671,2 -34b3672,10 -34b3673,c0 -34b3674,24 -34b3675,42 -34b3677,1 -34b3679,51 -34b367a,88 -34b367b,21 -34b367c,24 -34b367d,7 -34b367f,1 +34b35f1,7 +34b35f3,4 +34b35f4,ac +34b35f5,c7 +34b35f7,4 +34b35f8,8c +34b35f9,86 +34b35fb,8 +34b35fc,24 +34b35fd,c7 +34b35ff,8 +34b3600,ac +34b3601,87 +34b3603,8 +34b3604,24 +34b3605,47 +34b3606,17 +34b3608,ac +34b3609,c7 +34b360c,ac +34b360d,c0 +34b360f,4 +34b3610,8c +34b3611,86 +34b3613,8 +34b3614,24 +34b3615,c7 +34b3617,8 +34b3618,ac +34b3619,87 +34b361b,8 +34b361c,24 +34b361d,47 +34b361e,14 +34b361f,2 +34b3620,ac +34b3621,c7 +34b3624,24 +34b3625,7 +34b3626,c +34b3628,ac +34b3629,c7 +34b362b,4 +34b362c,8c +34b362d,86 +34b362f,8 +34b3630,24 +34b3631,c7 +34b3633,8 +34b3634,ac +34b3635,87 +34b3637,8 +34b3638,24 +34b3639,47 +34b363a,d +34b363b,1 +34b363c,ac +34b363d,c7 +34b3640,ac +34b3641,c0 +34b3643,4 +34b3644,8c +34b3645,86 +34b3647,8 +34b3648,24 +34b3649,c7 +34b364b,8 +34b364c,ac +34b364d,87 +34b364f,8 +34b3650,24 +34b3651,47 +34b3652,c +34b3654,ac +34b3655,c7 +34b3658,ac +34b3659,c0 +34b365b,4 +34b365c,8c +34b365d,86 +34b365f,8 +34b3660,24 +34b3661,c7 +34b3663,8 +34b3664,ac +34b3665,87 +34b3667,8 +34b3668,24 +34b3669,47 +34b366a,f +34b366c,ac +34b366d,c7 +34b3670,ac +34b3671,c0 +34b3673,4 +34b3674,8c +34b3675,86 +34b3677,8 +34b3678,24 +34b3679,c7 +34b367b,8 +34b367c,ac +34b367d,87 +34b367f,8 34b3680,24 -34b3681,6 -34b3683,11 -34b3684,3c -34b3685,5 -34b3686,80 -34b3687,40 -34b3688,24 -34b3689,a5 -34b368a,66 -34b368b,78 -34b368c,c -34b368d,10 -34b368e,17 -34b368f,61 -34b3690,2 -34b3692,20 -34b3693,25 -34b3694,3c -34b3695,2 -34b3696,80 -34b3697,40 -34b3698,8c -34b3699,42 -34b369a,66 -34b369b,fc -34b369c,58 -34b369d,40 -34b369f,2c -34b36a0,26 -34b36a1,3e -34b36a3,11 -34b36a4,3c -34b36a5,13 -34b36a6,80 -34b36a7,40 -34b36a8,26 -34b36a9,73 -34b36aa,65 -34b36ab,cc -34b36ae,90 -34b36af,25 -34b36b0,2 -34b36b1,60 -34b36b2,a0 -34b36b3,25 -34b36b4,3c -34b36b5,17 -34b36b6,80 -34b36b7,11 -34b36b8,36 -34b36b9,f7 -34b36ba,a5 -34b36bb,d0 -34b36bc,3c -34b36bd,16 -34b36be,80 -34b36bf,40 -34b36c1,12 -34b36c2,10 -34b36c3,40 -34b36c5,52 -34b36c6,10 -34b36c7,21 -34b36c9,2 -34b36ca,10 -34b36cb,80 -34b36cd,54 -34b36ce,10 -34b36cf,21 -34b36d0,80 -34b36d1,42 -34b36d3,1 -34b36d4,4 -34b36d5,43 -34b36d7,19 -34b36d8,26 -34b36d9,52 -34b36db,1 -34b36dc,92 -34b36dd,62 -34b36e0,2 -34b36e1,e2 -34b36e2,10 -34b36e3,21 -34b36e4,90 +34b3681,47 +34b3682,10 +34b3683,1 +34b3684,ac +34b3685,c7 +34b3688,ac +34b3689,c0 +34b368b,4 +34b368c,8c +34b368d,86 +34b368f,8 +34b3690,24 +34b3691,c7 +34b3693,8 +34b3694,ac +34b3695,87 +34b3697,8 +34b3698,24 +34b3699,47 +34b369a,8 +34b369c,ac +34b369d,c7 +34b36a0,ac +34b36a1,c0 +34b36a3,4 +34b36a4,8c +34b36a5,86 +34b36a7,8 +34b36a8,24 +34b36a9,c7 +34b36ab,8 +34b36ac,ac +34b36ad,87 +34b36af,8 +34b36b0,24 +34b36b1,47 +34b36b2,a +34b36b3,1 +34b36b4,ac +34b36b5,c7 +34b36b8,ac +34b36b9,c0 +34b36bb,4 +34b36bc,8c +34b36bd,86 +34b36bf,8 +34b36c0,24 +34b36c1,c7 +34b36c3,8 +34b36c4,ac +34b36c5,87 +34b36c7,8 +34b36c8,24 +34b36c9,63 +34b36cb,1c +34b36cc,ac +34b36cd,c3 +34b36d0,24 +34b36d1,a5 +34b36d2,42 +34b36d3,40 +34b36d4,ac +34b36d5,c5 +34b36d7,4 +34b36d8,8c +34b36d9,83 +34b36db,8 +34b36dc,24 +34b36dd,65 +34b36df,8 +34b36e0,ac +34b36e1,85 +34b36e3,8 +34b36e4,24 34b36e5,42 -34b36e7,bc -34b36e9,2 -34b36ea,1e -34b36ed,3 -34b36ee,1e -34b36ef,3 -34b36f0,28 -34b36f1,63 -34b36f3,a -34b36f4,50 -34b36f5,60 -34b36f7,1 +34b36e6,12 +34b36e7,1 +34b36e8,ac +34b36e9,62 +34b36ec,24 +34b36ed,2 +34b36ee,20 +34b36f0,ac +34b36f1,62 +34b36f3,4 +34b36f4,8c +34b36f5,82 +34b36f7,8 34b36f8,24 -34b36f9,2 -34b36fb,9 -34b36fc,24 -34b36fd,3 -34b36fe,30 -34b3700,a7 -34b3701,a3 -34b3703,20 -34b3705,40 -34b3706,18 -34b3707,25 -34b3709,2 -34b370a,16 -34b370d,2 -34b370e,16 -34b370f,3 -34b3710,4 -34b3711,42 -34b3713,1 -34b3716,18 -34b3717,25 -34b3718,24 -34b3719,63 -34b371b,30 -34b371c,a3 -34b371d,a3 -34b371f,20 -34b3721,12 -34b3722,31 -34b3725,d2 -34b3726,30 -34b3727,21 +34b36f9,43 +34b36fb,8 +34b36fc,ac +34b36fd,83 +34b36ff,8 +34b3700,3c +34b3701,3 +34b3702,df +34b3704,ac +34b3705,43 +34b3708,3 +34b3709,e0 +34b370b,8 +34b370c,ac +34b370d,40 +34b370f,4 +34b3710,27 +34b3711,bd +34b3712,ff +34b3713,b8 +34b3714,af +34b3715,bf +34b3717,44 +34b3718,af +34b3719,b1 +34b371b,40 +34b371c,af +34b371d,b0 +34b371f,3c +34b3720,af +34b3721,a0 +34b3723,10 +34b3724,3c +34b3725,2 +34b3726,1 +34b3727,a0 34b3728,24 -34b3729,c6 -34b372b,b -34b372c,2 -34b372d,20 -34b372e,28 -34b372f,25 -34b3730,c +34b3729,42 +34b372a,20 +34b372c,af +34b372d,a2 +34b372f,14 +34b3730,3c 34b3731,10 -34b3732,14 -34b3733,b -34b3734,27 -34b3735,a4 -34b3737,20 -34b3738,26 -34b3739,52 -34b373b,1 -34b373c,8e -34b373d,c2 -34b373e,66 -34b373f,fc -34b3740,2 -34b3741,42 -34b3742,10 -34b3743,2a -34b3744,14 -34b3745,40 -34b3746,ff -34b3747,de -34b3748,26 -34b3749,73 -34b374b,c -34b374c,26 -34b374d,3e -34b374f,11 -34b3750,24 -34b3751,7 -34b3753,1 -34b3754,24 -34b3755,6 -34b3757,e -34b3758,3c -34b3759,5 -34b375a,80 -34b375b,40 -34b375c,24 -34b375d,a5 -34b375e,66 -34b375f,78 -34b3760,c -34b3761,10 -34b3762,17 -34b3763,61 -34b3764,2 -34b3766,20 -34b3767,25 +34b3733,3 +34b3734,36 +34b3735,2 +34b3736,95 +34b3737,c0 +34b3738,af +34b3739,a2 +34b373b,18 +34b373c,c +34b373d,10 +34b373e,16 +34b373f,34 +34b3740,27 +34b3741,a4 +34b3743,10 +34b3744,af +34b3745,a0 +34b3747,1c +34b3748,3c +34b3749,2 +34b374b,84 +34b374c,24 +34b374d,42 +34b374e,60 +34b3750,af +34b3751,a2 +34b3753,20 +34b3754,34 +34b3755,2 +34b3756,b4 +34b3758,af +34b3759,a2 +34b375b,24 +34b375c,c +34b375d,10 +34b375e,16 +34b375f,34 +34b3760,27 +34b3761,a4 +34b3763,1c +34b3764,af +34b3765,a0 +34b3767,28 34b3768,3c 34b3769,2 -34b376a,80 -34b376b,40 -34b376c,8c +34b376b,7b +34b376c,34 34b376d,42 -34b376e,66 -34b376f,fc -34b3770,18 -34b3771,40 +34b376e,d0 +34b3770,af +34b3771,a2 34b3773,2c 34b3774,3c 34b3775,2 -34b3776,80 -34b3777,40 -34b3778,3c -34b3779,13 -34b377a,80 -34b377b,40 -34b377c,26 -34b377d,73 -34b377e,65 -34b377f,cc -34b3782,90 -34b3783,25 -34b3784,24 -34b3785,17 -34b3787,d -34b3788,2 -34b3789,60 -34b378a,a0 -34b378b,25 -34b378c,24 -34b378d,42 -34b378e,66 -34b378f,78 -34b3790,af -34b3791,a2 -34b3793,38 +34b3777,8 +34b3778,34 +34b3779,42 +34b377a,88 +34b377b,a0 +34b377c,af +34b377d,a2 +34b377f,30 +34b3780,c +34b3781,10 +34b3782,16 +34b3783,34 +34b3784,27 +34b3785,a4 +34b3787,28 +34b3788,8f +34b3789,a2 +34b378b,10 +34b378c,26 +34b378d,10 +34b378e,a3 +34b3791,50 +34b3792,80 +34b3793,21 34b3794,3c -34b3795,16 +34b3795,3 34b3796,80 34b3797,40 -34b3798,92 -34b3799,63 -34b379c,50 -34b379d,77 -34b379f,1 -34b37a0,24 +34b3798,ac +34b3799,70 +34b379a,66 +34b379b,28 +34b379c,24 +34b379d,42 +34b379e,29 +34b379f,80 +34b37a0,3c 34b37a1,3 -34b37a3,a -34b37a5,12 -34b37a6,10 -34b37a7,40 -34b37a9,52 -34b37aa,10 -34b37ab,21 -34b37ad,2 -34b37ae,10 -34b37af,80 -34b37b1,54 -34b37b2,10 -34b37b3,21 -34b37b4,90 -34b37b5,42 -34b37b7,1 -34b37b8,30 -34b37b9,42 -34b37bb,40 -34b37bc,50 -34b37bd,40 -34b37bf,15 -34b37c0,26 -34b37c1,52 -34b37c3,1 -34b37c4,3c -34b37c5,2 -34b37c6,80 -34b37c7,11 -34b37c8,34 -34b37c9,42 -34b37ca,a5 -34b37cb,d0 -34b37cd,43 -34b37ce,10 -34b37cf,21 -34b37d0,90 -34b37d1,42 -34b37d3,a8 -34b37d4,30 -34b37d5,42 -34b37d7,1 -34b37d8,50 -34b37d9,40 -34b37db,e -34b37dc,26 -34b37dd,52 -34b37df,1 -34b37e0,24 -34b37e1,2 -34b37e3,10 -34b37e4,af -34b37e5,a2 +34b37a2,80 +34b37a3,40 +34b37a4,ac +34b37a5,62 +34b37a6,66 +34b37a7,18 +34b37a8,3c +34b37a9,2 +34b37aa,80 +34b37ab,40 +34b37ac,8f +34b37ad,a3 +34b37af,28 +34b37b0,ac +34b37b1,43 +34b37b2,66 +34b37b3,8 +34b37b4,3c +34b37b5,2 +34b37b6,80 +34b37b7,40 +34b37b8,8f +34b37b9,a3 +34b37bb,1c +34b37bc,ac +34b37bd,43 +34b37be,65 +34b37bf,f8 +34b37c0,3c +34b37c1,11 +34b37c2,80 +34b37c3,40 +34b37c4,c +34b37c5,10 +34b37c6,14 +34b37c7,9d +34b37c8,26 +34b37c9,24 +34b37ca,65 +34b37cb,e8 +34b37cd,40 +34b37ce,80 +34b37cf,25 +34b37d0,c +34b37d1,10 +34b37d2,16 +34b37d3,27 +34b37d5,40 +34b37d6,20 +34b37d7,25 +34b37d9,10 +34b37da,4f +34b37db,c2 +34b37dc,1 +34b37dd,30 +34b37de,48 +34b37df,21 +34b37e0,2a +34b37e1,10 +34b37e3,2 +34b37e4,16 34b37e7,18 -34b37e8,af -34b37e9,a2 -34b37eb,14 -34b37ed,12 -34b37ee,11 -34b37f1,52 -34b37f2,10 -34b37f3,21 +34b37e8,ae +34b37e9,22 +34b37ea,65 +34b37eb,e8 +34b37ed,9 +34b37ee,48 +34b37ef,43 +34b37f0,3c +34b37f1,3 +34b37f2,80 +34b37f3,40 34b37f4,24 -34b37f5,42 -34b37f7,a -34b37f8,af -34b37f9,a2 -34b37fb,10 -34b37fc,3 -34b37fd,c0 -34b37fe,38 +34b37f5,63 +34b37f6,67 +34b37f7,46 +34b37fa,20 +34b37fb,25 +34b37fe,30 34b37ff,25 -34b3802,30 +34b3800,2 +34b3801,20 +34b3802,40 34b3803,25 -34b3804,8f -34b3805,a5 -34b3807,38 -34b3808,c -34b3809,10 -34b380a,17 -34b380b,c9 -34b380c,2 -34b380e,20 -34b380f,25 -34b3810,26 -34b3811,52 -34b3813,1 -34b3814,8e -34b3815,c2 -34b3816,66 -34b3817,fc -34b3818,2 -34b3819,42 +34b3804,24 +34b3805,7 +34b3806,ff +34b3807,f0 +34b3808,8d +34b3809,5 +34b380a,65 +34b380b,e8 +34b380d,a4 +34b380e,28 +34b380f,21 +34b3810,90 +34b3811,62 +34b3815,2 +34b3816,11 +34b3817,2 +34b3819,47 34b381a,10 -34b381b,2a -34b381c,14 -34b381d,40 -34b381e,ff -34b381f,de -34b3820,26 -34b3821,73 -34b3823,c -34b3824,24 -34b3825,7 -34b3827,1 -34b3828,24 -34b3829,6 -34b382b,a -34b382c,3c -34b382d,5 -34b382e,80 -34b382f,40 -34b3830,24 -34b3831,a5 -34b3832,66 -34b3833,78 -34b3834,c -34b3835,10 -34b3836,17 -34b3837,61 -34b3838,2 -34b383a,20 -34b383b,25 -34b383c,3c -34b383d,2 -34b383e,80 -34b383f,40 -34b3840,8c -34b3841,42 -34b3842,66 -34b3843,fc -34b3844,58 -34b3845,40 -34b3847,28 -34b3848,26 -34b3849,3e -34b384b,22 -34b384e,90 -34b384f,25 +34b381b,25 +34b381c,a0 +34b381d,a2 +34b3820,8d +34b3821,2 +34b3822,65 +34b3823,e8 +34b3825,44 +34b3826,10 +34b3827,21 +34b3828,90 +34b3829,65 +34b382d,a7 +34b382e,28 +34b382f,25 +34b3830,a0 +34b3831,45 +34b3833,1 +34b3834,24 +34b3835,c6 +34b3837,1 +34b3838,24 +34b3839,63 +34b383b,1 +34b383d,c9 +34b383e,10 +34b383f,2a +34b3840,14 +34b3841,40 +34b3842,ff +34b3843,f1 +34b3844,24 +34b3845,84 +34b3847,2 +34b3848,c +34b3849,10 +34b384a,16 +34b384b,27 +34b384c,24 +34b384d,4 +34b384e,1 34b3850,3c -34b3851,13 +34b3851,4 34b3852,80 34b3853,40 -34b3854,26 -34b3855,73 -34b3856,65 -34b3857,cc -34b3858,3c -34b3859,16 -34b385a,80 -34b385b,11 -34b385c,3c -34b385d,17 -34b385e,80 -34b385f,40 -34b3860,26 -34b3861,f7 -34b3862,66 -34b3863,78 -34b3864,3c -34b3865,14 -34b3866,80 -34b3867,40 -34b3869,12 -34b386a,10 -34b386b,40 -34b386d,52 -34b386e,10 -34b386f,21 -34b3871,2 -34b3872,10 -34b3873,80 -34b3875,53 -34b3876,10 -34b3877,21 -34b3878,90 -34b3879,42 -34b387b,1 -34b387c,30 -34b387d,42 -34b387f,20 -34b3880,50 -34b3881,40 -34b3883,14 -34b3884,26 -34b3885,52 -34b3887,1 -34b3888,36 -34b3889,c2 -34b388a,a5 -34b388b,d0 -34b388c,8c -34b388d,42 -34b388f,a4 -34b3890,3c -34b3891,3 -34b3893,40 -34b3895,43 -34b3896,10 -34b3897,24 -34b3898,50 -34b3899,40 -34b389b,e -34b389c,26 -34b389d,52 -34b389f,1 -34b38a0,24 +34b3854,24 +34b3855,3 +34b3856,1 +34b3858,ac +34b3859,83 +34b385a,67 +34b385b,28 +34b385c,24 +34b385d,84 +34b385e,67 +34b385f,28 +34b3860,ac +34b3861,82 +34b3863,4 +34b3864,ac +34b3865,82 +34b3867,8 +34b3868,24 +34b3869,42 +34b386a,1 +34b386c,c +34b386d,10 +34b386e,15 +34b386f,4d +34b3870,ac +34b3871,82 +34b3873,c +34b3874,8f +34b3875,bf +34b3877,44 +34b3878,8f +34b3879,b1 +34b387b,40 +34b387c,8f +34b387d,b0 +34b387f,3c +34b3880,3 +34b3881,e0 +34b3883,8 +34b3884,27 +34b3885,bd +34b3887,48 +34b3888,3c +34b3889,3 +34b388a,80 +34b388b,40 +34b388c,3c +34b388d,2 +34b388e,80 +34b388f,50 +34b3890,24 +34b3891,42 +34b3894,3 +34b3895,e0 +34b3897,8 +34b3898,ac +34b3899,62 +34b389a,67 +34b389b,c +34b389d,4 +34b389e,17 +34b389f,c3 34b38a1,2 -34b38a3,10 -34b38a4,af -34b38a5,a2 -34b38a7,18 -34b38a8,af -34b38a9,a2 -34b38ab,14 -34b38ad,12 -34b38ae,11 -34b38b1,52 -34b38b2,10 -34b38b3,21 -34b38b4,24 -34b38b5,42 -34b38b7,a -34b38b8,af -34b38b9,a2 -34b38bb,10 -34b38bc,3 -34b38bd,c0 -34b38be,38 -34b38bf,25 -34b38c2,30 -34b38c3,25 -34b38c4,2 -34b38c5,e0 -34b38c6,28 -34b38c7,25 -34b38c8,c -34b38c9,10 -34b38ca,17 -34b38cb,c9 -34b38cc,2 -34b38ce,20 -34b38cf,25 -34b38d0,26 -34b38d1,52 -34b38d3,1 -34b38d4,8e -34b38d5,82 -34b38d6,66 -34b38d7,fc -34b38d8,2 -34b38d9,42 -34b38da,10 -34b38db,2a -34b38dc,14 -34b38dd,40 -34b38de,ff -34b38df,e3 -34b38e1,12 -34b38e2,10 -34b38e3,40 -34b38e4,26 -34b38e5,3e -34b38e7,22 -34b38e8,24 -34b38e9,7 -34b38eb,1 -34b38ec,24 +34b38a2,1f +34b38a3,2 +34b38a5,83 +34b38a6,10 +34b38a7,21 +34b38a8,30 +34b38a9,42 +34b38ab,f +34b38ad,43 +34b38ae,10 +34b38af,23 +34b38b0,10 +34b38b1,40 +34b38b3,3 +34b38b4,3c +34b38b5,3 +34b38b6,80 +34b38b7,40 +34b38b9,82 +34b38ba,20 +34b38bb,23 +34b38bc,24 +34b38bd,84 +34b38bf,10 +34b38c0,8c +34b38c1,62 +34b38c2,67 +34b38c3,c +34b38c5,44 +34b38c6,20 +34b38c7,21 +34b38c8,3 +34b38c9,e0 +34b38cb,8 +34b38cc,ac +34b38cd,64 +34b38ce,67 +34b38cf,c +34b38d0,27 +34b38d1,bd +34b38d2,ff +34b38d3,e8 +34b38d4,af +34b38d5,bf +34b38d7,14 +34b38d8,af +34b38d9,b0 +34b38db,10 +34b38dd,80 +34b38de,80 +34b38df,25 +34b38e0,c +34b38e1,10 +34b38e2,16 +34b38e3,27 +34b38e4,8c +34b38e5,84 +34b38e7,8 +34b38e8,ae +34b38e9,2 +34b38ec,8e 34b38ed,6 -34b38ef,10 -34b38f0,3c -34b38f1,5 -34b38f2,80 -34b38f3,40 -34b38f4,24 -34b38f5,a5 -34b38f6,66 -34b38f7,78 -34b38f8,c -34b38f9,10 -34b38fa,17 -34b38fb,61 -34b38fc,2 -34b38fe,20 -34b38ff,25 -34b3900,3c -34b3901,2 -34b3902,80 -34b3903,40 -34b3904,8c -34b3905,42 -34b3906,66 -34b3907,fc -34b3908,18 -34b3909,40 -34b390b,2a -34b390c,3c -34b390d,13 -34b390e,80 -34b390f,40 -34b3910,26 -34b3911,73 -34b3912,65 -34b3913,cc -34b3916,90 -34b3917,25 -34b3918,2 -34b3919,60 -34b391a,a0 -34b391b,25 -34b391c,3c -34b391d,17 -34b391e,80 -34b391f,11 -34b3920,3c -34b3921,2 -34b3922,80 -34b3923,40 -34b3924,24 -34b3925,42 -34b3926,66 -34b3927,78 -34b3928,af -34b3929,a2 -34b392b,38 -34b392c,3c -34b392d,16 -34b392e,80 -34b392f,40 -34b3931,12 -34b3932,10 -34b3933,40 -34b3935,52 -34b3936,10 -34b3937,21 -34b3939,2 -34b393a,10 -34b393b,80 -34b393d,54 -34b393e,10 -34b393f,21 -34b3940,90 -34b3941,42 -34b3943,1 -34b3944,30 +34b38ef,8 +34b38f1,40 +34b38f2,20 +34b38f3,25 +34b38f4,3c +34b38f5,2 +34b38f6,80 +34b38f8,24 +34b38f9,42 +34b38fa,d +34b38fb,f0 +34b38fd,40 +34b38fe,f8 +34b38ff,9 +34b3900,8e +34b3901,5 +34b3903,4 +34b3904,8f +34b3905,bf +34b3907,14 +34b3908,8f +34b3909,b0 +34b390b,10 +34b390c,3 +34b390d,e0 +34b390f,8 +34b3910,27 +34b3911,bd +34b3913,18 +34b3914,27 +34b3915,bd +34b3916,ff +34b3917,e8 +34b3918,af +34b3919,bf +34b391b,14 +34b391c,c +34b391d,10 +34b391e,16 +34b391f,22 +34b3924,c +34b3925,10 +34b3926,15 +34b3927,c4 +34b392c,c +34b392d,10 +34b392e,18 +34b392f,e0 +34b3934,8f +34b3935,bf +34b3937,14 +34b3938,3 +34b3939,e0 +34b393b,8 +34b393c,27 +34b393d,bd +34b393f,18 +34b3940,3c +34b3941,2 +34b3942,80 +34b3943,1c +34b3944,34 34b3945,42 -34b3947,10 -34b3948,50 -34b3949,40 -34b394b,16 -34b394c,26 -34b394d,52 -34b394f,1 -34b3950,36 -34b3951,e2 -34b3952,a5 -34b3953,d0 -34b3954,92 -34b3955,63 -34b3959,43 -34b395a,10 -34b395b,21 -34b395c,90 -34b395d,42 -34b395f,a8 -34b3961,2 -34b3962,10 -34b3963,82 -34b3964,30 -34b3965,42 +34b3946,84 +34b3947,a0 +34b3948,3c +34b3949,3 +34b394b,1 +34b394d,43 +34b394e,10 +34b394f,21 +34b3950,94 +34b3951,43 +34b3952,9 +34b3953,34 +34b3954,24 +34b3955,2 +34b3957,6 +34b3958,14 +34b3959,62 +34b395b,19 +34b395c,3c +34b395d,2 +34b395e,80 +34b395f,1c +34b3960,34 +34b3961,42 +34b3962,84 +34b3963,a0 +34b3964,3c +34b3965,3 34b3967,1 -34b3968,50 -34b3969,40 -34b396b,e -34b396c,26 -34b396d,52 -34b396f,1 -34b3970,24 -34b3971,2 -34b3973,10 -34b3974,af -34b3975,a2 -34b3977,18 -34b3978,af -34b3979,a2 -34b397b,14 -34b397d,12 -34b397e,11 -34b3981,52 -34b3982,10 -34b3983,21 -34b3984,24 -34b3985,42 -34b3987,a -34b3988,af -34b3989,a2 -34b398b,10 -34b398c,3 -34b398d,c0 -34b398e,38 -34b398f,25 -34b3992,30 -34b3993,25 -34b3994,8f -34b3995,a5 -34b3997,38 -34b3998,c -34b3999,10 -34b399a,17 -34b399b,c9 -34b399c,2 -34b399e,20 -34b399f,25 -34b39a0,26 -34b39a1,52 -34b39a3,1 -34b39a4,8e -34b39a5,c2 -34b39a6,66 -34b39a7,fc -34b39a8,2 -34b39a9,42 -34b39aa,10 -34b39ab,2a -34b39ac,14 -34b39ad,40 -34b39ae,ff -34b39af,e0 -34b39b0,26 -34b39b1,73 -34b39b3,c -34b39b4,26 -34b39b5,3e -34b39b7,33 -34b39b8,24 -34b39b9,7 -34b39bb,1 -34b39bc,24 -34b39bd,6 -34b39bf,f -34b39c0,3c -34b39c1,5 -34b39c2,80 -34b39c3,40 -34b39c4,24 -34b39c5,a5 -34b39c6,66 -34b39c7,78 -34b39c8,c -34b39c9,10 -34b39ca,17 -34b39cb,61 -34b39cc,2 -34b39ce,20 -34b39cf,25 -34b39d0,3c -34b39d1,2 -34b39d2,80 -34b39d3,40 -34b39d4,8c -34b39d5,42 -34b39d6,66 -34b39d7,fc -34b39d8,18 -34b39d9,40 -34b39db,60 -34b39dc,3c -34b39dd,13 -34b39de,80 -34b39df,40 -34b39e0,26 -34b39e1,73 -34b39e2,65 -34b39e3,cc -34b39e6,90 -34b39e7,25 -34b39e8,2 -34b39e9,60 -34b39ea,a0 -34b39eb,25 -34b39ec,3c -34b39ed,17 -34b39ee,80 -34b39ef,11 -34b39f0,3c -34b39f1,2 -34b39f2,80 -34b39f3,40 -34b39f4,24 -34b39f5,42 -34b39f6,66 -34b39f7,78 +34b3969,43 +34b396a,10 +34b396b,21 +34b396c,94 +34b396d,42 +34b396e,9 +34b396f,48 +34b3970,14 +34b3971,40 +34b3973,13 +34b3974,3c +34b3975,2 +34b3976,80 +34b3977,1c +34b3978,34 +34b3979,42 +34b397a,84 +34b397b,a0 +34b397d,43 +34b397e,10 +34b397f,21 +34b3980,94 +34b3981,42 +34b3982,9 +34b3983,44 +34b3984,14 +34b3985,40 +34b3987,e +34b3988,3c +34b3989,2 +34b398a,80 +34b398b,1c +34b398c,34 +34b398d,42 +34b398e,84 +34b398f,a0 +34b3990,84 +34b3991,42 +34b3993,14 +34b3994,4 +34b3995,41 +34b3997,a +34b3998,3c +34b3999,2 +34b399a,80 +34b399b,1c +34b399c,27 +34b399d,bd +34b399e,ff +34b399f,e8 +34b39a0,af +34b39a1,bf +34b39a3,14 +34b39a4,34 +34b39a5,42 +34b39a6,84 +34b39a7,a0 +34b39a8,8c +34b39a9,44 +34b39ac,c +34b39ad,10 +34b39ae,16 +34b39af,72 +34b39b0,24 +34b39b1,84 +34b39b2,2 +34b39b3,a8 +34b39b4,8f +34b39b5,bf +34b39b7,14 +34b39b8,3 +34b39b9,e0 +34b39bb,8 +34b39bc,27 +34b39bd,bd +34b39bf,18 +34b39c0,3 +34b39c1,e0 +34b39c3,8 +34b39c8,3c +34b39c9,2 +34b39ca,80 +34b39cb,40 +34b39cc,8c +34b39cd,42 +34b39ce,67 +34b39d0,10 +34b39d1,40 +34b39d2,2 +34b39d3,69 +34b39d4,3c +34b39d5,3 +34b39d6,80 +34b39d7,40 +34b39d8,27 +34b39d9,bd +34b39da,ff +34b39db,90 +34b39dc,af +34b39dd,bf +34b39df,6c +34b39e0,af +34b39e1,be +34b39e3,68 +34b39e4,af +34b39e5,b7 +34b39e7,64 +34b39e8,af +34b39e9,b6 +34b39eb,60 +34b39ec,af +34b39ed,b5 +34b39ef,5c +34b39f0,af +34b39f1,b4 +34b39f3,58 +34b39f4,af +34b39f5,b3 +34b39f7,54 34b39f8,af -34b39f9,a2 -34b39fb,38 -34b39fc,3c -34b39fd,16 -34b39fe,80 -34b39ff,40 -34b3a01,12 -34b3a02,10 -34b3a03,40 -34b3a05,52 -34b3a06,10 -34b3a07,21 -34b3a09,2 -34b3a0a,10 -34b3a0b,80 -34b3a0d,54 -34b3a0e,10 -34b3a0f,21 -34b3a10,90 -34b3a11,42 -34b3a13,1 -34b3a14,30 -34b3a15,42 -34b3a17,10 -34b3a18,50 -34b3a19,40 -34b3a1b,16 -34b3a1c,26 -34b3a1d,52 -34b3a1f,1 -34b3a20,36 -34b3a21,e2 -34b3a22,a5 -34b3a23,d0 -34b3a24,92 -34b3a25,63 -34b3a29,43 -34b3a2a,10 -34b3a2b,21 -34b3a2c,90 -34b3a2d,42 -34b3a2f,a8 -34b3a31,2 -34b3a32,10 -34b3a33,42 -34b3a34,30 -34b3a35,42 -34b3a37,1 -34b3a38,50 -34b3a39,40 -34b3a3b,e -34b3a3c,26 -34b3a3d,52 +34b39f9,b2 +34b39fb,50 +34b39fc,af +34b39fd,b1 +34b39ff,4c +34b3a00,af +34b3a01,b0 +34b3a03,48 +34b3a04,8c +34b3a05,82 +34b3a07,4 +34b3a08,8c +34b3a09,63 +34b3a0a,67 +34b3a0b,2c +34b3a0c,24 +34b3a0d,45 +34b3a0f,8 +34b3a10,ac +34b3a11,85 +34b3a13,8 +34b3a14,3c +34b3a15,5 +34b3a16,de +34b3a18,ac +34b3a19,45 +34b3a1c,ac +34b3a1d,43 +34b3a1f,4 +34b3a20,3c +34b3a21,2 +34b3a22,80 +34b3a23,11 +34b3a24,34 +34b3a25,42 +34b3a26,a5 +34b3a27,d0 +34b3a28,94 +34b3a29,54 +34b3a2a,f +34b3a2b,2e +34b3a2c,3c +34b3a2d,2 +34b3a2e,80 +34b3a2f,40 +34b3a30,8c +34b3a31,42 +34b3a32,67 +34b3a33,10 +34b3a34,50 +34b3a35,40 +34b3a37,5 +34b3a38,24 +34b3a39,8 +34b3a3b,1 +34b3a3c,32 +34b3a3d,88 34b3a3f,1 -34b3a40,24 -34b3a41,2 -34b3a43,10 -34b3a44,af -34b3a45,a2 -34b3a47,18 -34b3a48,af -34b3a49,a2 -34b3a4b,14 -34b3a4d,12 -34b3a4e,11 -34b3a51,52 -34b3a52,10 -34b3a53,21 -34b3a54,24 -34b3a55,42 -34b3a57,a -34b3a58,af -34b3a59,a2 -34b3a5b,10 -34b3a5c,3 -34b3a5d,c0 -34b3a5e,38 +34b3a41,14 +34b3a42,a0 +34b3a43,42 +34b3a44,10 +34b3a47,2 +34b3a48,32 +34b3a49,94 +34b3a4b,1 +34b3a4c,24 +34b3a4d,14 +34b3a4f,1 +34b3a50,3c +34b3a51,2 +34b3a52,80 +34b3a53,40 +34b3a54,8c +34b3a55,55 +34b3a56,67 +34b3a57,1c +34b3a58,12 +34b3a59,a0 +34b3a5b,7 +34b3a5c,2 +34b3a5d,a0 +34b3a5e,18 34b3a5f,25 -34b3a62,30 -34b3a63,25 -34b3a64,8f -34b3a65,a5 -34b3a67,38 -34b3a68,c -34b3a69,10 -34b3a6a,17 -34b3a6b,c9 -34b3a6c,2 -34b3a6e,20 -34b3a6f,25 -34b3a70,26 -34b3a71,52 -34b3a73,1 -34b3a74,8e -34b3a75,c2 -34b3a76,66 -34b3a77,fc -34b3a78,2 -34b3a79,42 -34b3a7a,10 -34b3a7b,2a -34b3a7c,14 -34b3a7d,40 -34b3a7e,ff -34b3a7f,e0 -34b3a80,26 -34b3a81,73 -34b3a83,c -34b3a84,12 -34b3a85,a0 -34b3a87,35 -34b3a88,3c -34b3a89,2 -34b3a8a,80 -34b3a8b,40 -34b3a8c,8c -34b3a8d,42 -34b3a8e,66 -34b3a8f,fc -34b3a90,18 -34b3a91,40 -34b3a93,32 -34b3a94,3c -34b3a95,13 -34b3a96,80 -34b3a97,40 -34b3a98,26 -34b3a99,73 -34b3a9a,65 -34b3a9b,cc -34b3a9c,24 -34b3a9d,14 -34b3a9f,b -34b3aa2,90 -34b3aa3,25 -34b3aa4,3c -34b3aa5,17 -34b3aa6,80 -34b3aa7,40 -34b3aa8,3c -34b3aa9,16 -34b3aaa,80 -34b3aab,40 -34b3aac,26 -34b3aad,d6 -34b3aae,67 -34b3aaf,28 -34b3ab0,3c -34b3ab1,15 -34b3ab2,80 -34b3ab3,40 -34b3ab4,26 -34b3ab5,b5 -34b3ab6,65 -34b3ab7,9c -34b3ab8,3c -34b3ab9,2 -34b3aba,80 -34b3abb,40 -34b3abc,24 -34b3abd,42 -34b3abe,65 -34b3abf,a0 -34b3ac0,af -34b3ac1,a2 -34b3ac3,38 -34b3ac4,3c -34b3ac5,1e -34b3ac6,80 -34b3ac7,40 -34b3ac8,8e -34b3ac9,e2 -34b3aca,67 -34b3acb,18 -34b3acc,50 -34b3acd,40 -34b3acf,14 -34b3ad0,92 -34b3ad1,62 -34b3ad5,12 -34b3ad6,10 -34b3ad7,40 -34b3ad9,52 -34b3ada,10 -34b3adb,21 -34b3add,2 -34b3ade,10 -34b3adf,80 -34b3ae0,27 -34b3ae1,c3 -34b3ae2,65 -34b3ae3,cc -34b3ae5,43 -34b3ae6,10 -34b3ae7,21 -34b3ae8,90 -34b3ae9,42 -34b3aeb,1 -34b3aec,30 -34b3aed,42 -34b3aef,10 -34b3af0,50 -34b3af1,40 -34b3af3,b -34b3af4,92 -34b3af5,62 -34b3af8,92 -34b3af9,63 +34b3a60,3c +34b3a61,2 +34b3a62,80 +34b3a63,40 +34b3a64,94 +34b3a65,43 +34b3a66,65 +34b3a67,ec +34b3a69,3 +34b3a6a,10 +34b3a6b,40 +34b3a6d,43 +34b3a6e,10 +34b3a6f,21 +34b3a71,2 +34b3a72,10 +34b3a73,40 +34b3a74,24 +34b3a75,43 +34b3a77,1 +34b3a78,3c +34b3a79,2 +34b3a7a,80 +34b3a7b,40 +34b3a7c,94 +34b3a7d,42 +34b3a7e,65 +34b3a7f,ec +34b3a81,2 +34b3a82,10 +34b3a83,c0 +34b3a84,24 +34b3a85,42 +34b3a87,57 +34b3a89,43 +34b3a8a,10 +34b3a8b,21 +34b3a8c,24 +34b3a8d,3 +34b3a8e,1 +34b3a8f,40 +34b3a91,62 +34b3a92,18 +34b3a93,23 +34b3a95,3 +34b3a96,8f +34b3a97,c2 +34b3a98,2 +34b3a99,23 +34b3a9a,88 +34b3a9b,21 +34b3a9d,11 +34b3a9e,88 +34b3a9f,43 +34b3aa0,26 +34b3aa1,23 +34b3aa3,1 +34b3aa4,af +34b3aa5,a3 +34b3aa7,38 +34b3aa8,8c +34b3aa9,83 +34b3aab,8 +34b3aac,24 +34b3aad,65 +34b3aaf,8 +34b3ab0,ac +34b3ab1,85 +34b3ab3,8 +34b3ab4,3c +34b3ab5,5 +34b3ab6,fc +34b3ab7,ff +34b3ab8,34 +34b3ab9,a5 +34b3aba,ff +34b3abb,ff +34b3abc,ac +34b3abd,65 +34b3ac0,3c +34b3ac1,5 +34b3ac2,ff +34b3ac3,fd +34b3ac4,34 +34b3ac5,a5 +34b3ac6,f6 +34b3ac7,fb +34b3ac8,ac +34b3ac9,65 +34b3acb,4 +34b3acc,8c +34b3acd,83 +34b3acf,8 +34b3ad0,24 +34b3ad1,65 +34b3ad3,8 +34b3ad4,ac +34b3ad5,85 +34b3ad7,8 +34b3ad8,3c +34b3ad9,5 +34b3ada,fa +34b3adc,ac +34b3add,65 +34b3ae0,24 +34b3ae1,5 +34b3ae3,d0 +34b3ae4,ac +34b3ae5,65 +34b3ae7,4 +34b3ae9,51 +34b3aea,10 +34b3aeb,21 +34b3aed,2 +34b3aee,13 +34b3aef,80 +34b3af0,3c +34b3af1,3 +34b3af3,ff +34b3af4,34 +34b3af5,63 +34b3af6,f0 +34b3af9,43 +34b3afa,10 +34b3afb,24 34b3afc,3c -34b3afd,2 -34b3afe,80 -34b3aff,11 -34b3b00,34 -34b3b01,42 -34b3b02,a5 -34b3b03,d0 -34b3b05,43 +34b3afd,5 +34b3afe,e4 +34b3b00,24 +34b3b01,a5 +34b3b02,3 +34b3b03,9c +34b3b05,45 34b3b06,10 -34b3b07,21 -34b3b08,90 -34b3b09,42 -34b3b0b,a8 -34b3b0d,2 -34b3b0e,10 -34b3b0f,82 -34b3b10,30 -34b3b11,42 -34b3b13,1 -34b3b14,50 -34b3b15,40 -34b3b17,b -34b3b18,26 -34b3b19,52 -34b3b1b,1 -34b3b1c,92 -34b3b1d,62 -34b3b21,56 -34b3b22,10 -34b3b23,21 -34b3b24,90 -34b3b25,42 -34b3b28,14 -34b3b29,40 -34b3b2b,2 -34b3b2c,2 -34b3b2d,a0 -34b3b2e,20 -34b3b2f,25 -34b3b30,8f -34b3b31,a4 -34b3b33,38 -34b3b34,2 -34b3b35,80 -34b3b36,30 -34b3b37,25 -34b3b38,c -34b3b39,10 -34b3b3a,14 -34b3b3b,b -34b3b3c,26 -34b3b3d,25 -34b3b3f,44 -34b3b40,26 -34b3b41,52 -34b3b43,1 -34b3b44,26 -34b3b45,94 -34b3b47,11 -34b3b48,3c -34b3b49,2 -34b3b4a,80 -34b3b4b,40 -34b3b4c,8c -34b3b4d,42 -34b3b4e,66 -34b3b4f,fc -34b3b50,2 -34b3b51,42 -34b3b52,10 -34b3b53,2a -34b3b54,14 -34b3b55,40 -34b3b56,ff -34b3b57,dc -34b3b58,26 -34b3b59,73 -34b3b5b,c -34b3b5c,c -34b3b5d,10 -34b3b5e,14 -34b3b5f,35 -34b3b60,2 -34b3b62,20 -34b3b63,25 -34b3b64,8e -34b3b65,2 -34b3b67,8 -34b3b68,24 -34b3b69,43 -34b3b6b,8 -34b3b6c,ae -34b3b6d,3 +34b3b07,25 +34b3b08,af +34b3b09,a2 +34b3b0b,20 +34b3b0d,11 +34b3b0e,13 +34b3b0f,80 +34b3b11,43 +34b3b12,10 +34b3b13,24 +34b3b14,34 +34b3b15,42 +34b3b17,24 +34b3b18,af +34b3b19,a2 +34b3b1b,24 +34b3b1c,3c +34b3b1d,2 +34b3b1e,e1 +34b3b20,af +34b3b21,a2 +34b3b23,28 +34b3b24,af +34b3b25,a0 +34b3b27,2c +34b3b28,3c +34b3b29,2 +34b3b2a,f1 +34b3b2c,af +34b3b2d,a2 +34b3b2f,30 +34b3b30,3c +34b3b31,2 +34b3b32,4 +34b3b34,24 +34b3b35,42 +34b3b36,4 +34b3b38,af +34b3b39,a2 +34b3b3b,34 +34b3b3c,27 +34b3b3d,a2 +34b3b3f,20 +34b3b40,27 +34b3b41,a9 +34b3b43,38 +34b3b44,8c +34b3b45,83 +34b3b47,8 +34b3b48,24 +34b3b49,65 +34b3b4b,8 +34b3b4c,ac +34b3b4d,85 +34b3b4f,8 +34b3b50,8c +34b3b51,47 +34b3b53,4 +34b3b54,8c +34b3b55,46 +34b3b58,ac +34b3b59,67 +34b3b5b,4 +34b3b5c,24 +34b3b5d,42 +34b3b5f,8 +34b3b60,15 +34b3b61,22 +34b3b62,ff +34b3b63,f8 +34b3b64,ac +34b3b65,66 +34b3b69,80 +34b3b6a,80 +34b3b6b,25 +34b3b6c,8c +34b3b6d,82 34b3b6f,8 -34b3b70,3c -34b3b71,3 -34b3b72,e9 +34b3b70,24 +34b3b71,43 +34b3b73,8 34b3b74,ac -34b3b75,43 -34b3b78,ac -34b3b79,40 -34b3b7b,4 -34b3b7c,8e -34b3b7d,2 -34b3b7f,8 -34b3b80,24 -34b3b81,43 -34b3b83,8 -34b3b84,ae -34b3b85,3 +34b3b75,83 +34b3b77,8 +34b3b78,3c +34b3b79,3 +34b3b7a,e7 +34b3b7c,ac +34b3b7d,43 +34b3b80,ac +34b3b81,40 +34b3b83,4 +34b3b84,8c +34b3b85,82 34b3b87,8 -34b3b88,3c -34b3b89,3 -34b3b8a,df +34b3b88,24 +34b3b89,43 +34b3b8b,8 34b3b8c,ac -34b3b8d,43 -34b3b90,ac -34b3b91,40 -34b3b93,4 -34b3b94,8f -34b3b95,bf -34b3b97,6c -34b3b98,8f -34b3b99,be -34b3b9b,68 -34b3b9c,8f -34b3b9d,b7 -34b3b9f,64 -34b3ba0,8f -34b3ba1,b6 -34b3ba3,60 -34b3ba4,8f -34b3ba5,b5 -34b3ba7,5c -34b3ba8,8f -34b3ba9,b4 -34b3bab,58 -34b3bac,8f -34b3bad,b3 -34b3baf,54 -34b3bb0,8f -34b3bb1,b2 -34b3bb3,50 -34b3bb4,8f -34b3bb5,b1 -34b3bb7,4c -34b3bb8,8f -34b3bb9,b0 -34b3bbb,48 -34b3bbc,3 -34b3bbd,e0 -34b3bbf,8 -34b3bc0,27 -34b3bc1,bd -34b3bc3,70 -34b3bc4,10 -34b3bc6,fe -34b3bc7,a8 -34b3bc8,26 -34b3bc9,31 -34b3bcb,12 -34b3bcc,3 -34b3bcd,e0 -34b3bcf,8 -34b3bd4,27 -34b3bd5,bd -34b3bd6,ff -34b3bd7,e8 -34b3bd8,af -34b3bd9,bf -34b3bdb,14 -34b3bdc,c -34b3bdd,10 -34b3bde,17 -34b3bdf,22 -34b3be4,c -34b3be5,10 -34b3be6,18 -34b3be7,7c -34b3bec,c -34b3bed,10 -34b3bee,14 -34b3bf4,8f -34b3bf5,bf -34b3bf7,14 -34b3bf8,3 -34b3bf9,e0 -34b3bfb,8 -34b3bfc,27 -34b3bfd,bd -34b3bff,18 -34b3c00,3c -34b3c01,2 -34b3c02,80 -34b3c03,1c -34b3c04,34 -34b3c05,42 -34b3c06,84 -34b3c07,a0 -34b3c08,3c -34b3c09,3 -34b3c0b,1 -34b3c0d,43 -34b3c0e,10 -34b3c0f,21 -34b3c10,94 -34b3c11,43 -34b3c12,9 -34b3c13,34 -34b3c14,24 -34b3c15,2 -34b3c17,6 -34b3c18,14 -34b3c19,62 -34b3c1b,19 -34b3c1c,3c -34b3c1d,2 -34b3c1e,80 -34b3c1f,1c -34b3c20,34 -34b3c21,42 -34b3c22,84 -34b3c23,a0 -34b3c24,3c -34b3c25,3 +34b3b8d,83 +34b3b8f,8 +34b3b90,3c +34b3b91,3 +34b3b92,fc +34b3b93,11 +34b3b94,34 +34b3b95,63 +34b3b96,96 +34b3b97,23 +34b3b98,ac +34b3b99,43 +34b3b9c,3c +34b3b9d,3 +34b3b9e,ff +34b3b9f,2f +34b3ba0,34 +34b3ba1,63 +34b3ba2,ff +34b3ba3,ff +34b3ba4,11 +34b3ba7,4c +34b3ba8,ac +34b3ba9,43 +34b3bab,4 +34b3bac,3c +34b3bad,5 +34b3bae,80 +34b3baf,40 +34b3bb0,24 +34b3bb1,a5 +34b3bb2,66 +34b3bb3,18 +34b3bb4,94 +34b3bb5,a7 +34b3bb7,8 +34b3bb8,c +34b3bb9,10 +34b3bba,14 +34b3bbb,a9 +34b3bbe,30 +34b3bbf,25 +34b3bc0,3c +34b3bc1,2 +34b3bc2,80 +34b3bc3,40 +34b3bc4,8c +34b3bc5,42 +34b3bc6,67 +34b3bc7,4 +34b3bc8,18 +34b3bc9,40 +34b3bcb,43 +34b3bcc,3c +34b3bcd,2 +34b3bce,80 +34b3bcf,40 +34b3bd0,3c +34b3bd1,13 +34b3bd2,80 +34b3bd3,40 +34b3bd4,26 +34b3bd5,73 +34b3bd6,66 +34b3bd7,5c +34b3bda,90 +34b3bdb,25 +34b3bdc,3c +34b3bdd,1e +34b3bde,80 +34b3bdf,40 +34b3be0,3c +34b3be1,16 +34b3be2,80 +34b3be3,40 +34b3be4,26 +34b3be5,d6 +34b3be6,66 +34b3be7,38 +34b3be8,24 +34b3be9,42 +34b3bea,66 +34b3beb,48 +34b3bec,af +34b3bed,a2 +34b3bef,3c +34b3bf0,3c +34b3bf1,2 +34b3bf2,80 +34b3bf3,40 +34b3bf4,24 +34b3bf5,42 +34b3bf6,66 +34b3bf7,18 +34b3bf8,af +34b3bf9,a2 +34b3bfb,40 +34b3bfc,3c +34b3bfd,17 +34b3bfe,80 +34b3bff,40 +34b3c00,8f +34b3c01,c2 +34b3c02,67 +34b3c03,14 +34b3c04,50 +34b3c05,40 +34b3c07,b +34b3c08,92 +34b3c09,62 +34b3c0c,92 +34b3c0d,63 +34b3c10,3c +34b3c11,2 +34b3c12,80 +34b3c13,11 +34b3c14,34 +34b3c15,42 +34b3c16,a5 +34b3c17,d0 +34b3c19,43 +34b3c1a,10 +34b3c1b,21 +34b3c1c,90 +34b3c1d,42 +34b3c1f,a8 +34b3c21,2 +34b3c22,10 +34b3c23,42 +34b3c24,30 +34b3c25,42 34b3c27,1 -34b3c29,43 -34b3c2a,10 -34b3c2b,21 -34b3c2c,94 -34b3c2d,42 -34b3c2e,9 -34b3c2f,48 -34b3c30,14 -34b3c31,40 -34b3c33,13 -34b3c34,3c -34b3c35,2 -34b3c36,80 -34b3c37,1c -34b3c38,34 -34b3c39,42 -34b3c3a,84 -34b3c3b,a0 -34b3c3d,43 -34b3c3e,10 -34b3c3f,21 -34b3c40,94 -34b3c41,42 -34b3c42,9 -34b3c43,44 -34b3c44,14 -34b3c45,40 -34b3c47,e -34b3c48,3c -34b3c49,2 -34b3c4a,80 -34b3c4b,1c -34b3c4c,34 -34b3c4d,42 -34b3c4e,84 -34b3c4f,a0 -34b3c50,84 -34b3c51,42 -34b3c53,14 -34b3c54,4 -34b3c55,41 -34b3c57,a -34b3c58,3c -34b3c59,2 -34b3c5a,80 -34b3c5b,1c -34b3c5c,27 -34b3c5d,bd -34b3c5e,ff -34b3c5f,e8 -34b3c60,af -34b3c61,bf -34b3c63,14 -34b3c64,34 -34b3c65,42 -34b3c66,84 -34b3c67,a0 -34b3c68,8c -34b3c69,44 -34b3c6c,c -34b3c6d,10 -34b3c6e,14 -34b3c6f,87 -34b3c70,24 -34b3c71,84 -34b3c72,2 -34b3c73,a8 -34b3c74,8f -34b3c75,bf -34b3c77,14 -34b3c78,3 -34b3c79,e0 -34b3c7b,8 -34b3c7c,27 -34b3c7d,bd -34b3c7f,18 -34b3c80,3 -34b3c81,e0 +34b3c28,50 +34b3c29,40 +34b3c2b,27 +34b3c2c,26 +34b3c2d,52 +34b3c2f,1 +34b3c30,92 +34b3c31,62 +34b3c35,56 +34b3c36,10 +34b3c37,21 +34b3c38,80 +34b3c39,46 +34b3c3c,28 +34b3c3d,c2 +34b3c3f,3 +34b3c40,54 +34b3c41,40 +34b3c43,21 +34b3c44,26 +34b3c45,52 +34b3c47,1 +34b3c48,24 +34b3c49,c6 +34b3c4a,ff +34b3c4b,fd +34b3c4d,6 +34b3c4e,18 +34b3c4f,40 +34b3c51,66 +34b3c52,18 +34b3c53,21 +34b3c54,8f +34b3c55,a2 +34b3c57,3c +34b3c59,62 +34b3c5a,18 +34b3c5b,21 +34b3c5c,90 +34b3c5d,62 +34b3c61,2 +34b3c62,16 +34b3c64,90 +34b3c65,64 +34b3c67,2 +34b3c69,4 +34b3c6a,22 +34b3c6d,44 +34b3c6e,10 +34b3c6f,25 +34b3c70,90 +34b3c71,63 +34b3c73,1 +34b3c75,3 +34b3c76,1c +34b3c79,43 +34b3c7a,10 +34b3c7b,25 +34b3c7c,34 +34b3c7d,42 +34b3c7f,ff +34b3c80,8e +34b3c81,3 34b3c83,8 -34b3c88,3c -34b3c89,3 -34b3c8a,80 -34b3c8b,40 +34b3c84,24 +34b3c85,64 +34b3c87,8 +34b3c88,ae +34b3c89,4 +34b3c8b,8 34b3c8c,3c -34b3c8d,2 -34b3c8e,80 -34b3c8f,50 -34b3c90,24 -34b3c91,42 -34b3c94,3 -34b3c95,e0 -34b3c97,8 -34b3c98,ac -34b3c99,62 -34b3c9a,67 -34b3c9b,20 -34b3c9d,4 -34b3c9e,17 -34b3c9f,c3 -34b3ca1,2 -34b3ca2,1f -34b3ca3,2 -34b3ca5,83 -34b3ca6,10 -34b3ca7,21 -34b3ca8,30 -34b3ca9,42 -34b3cab,f -34b3cad,43 -34b3cae,10 -34b3caf,23 -34b3cb0,10 -34b3cb1,40 -34b3cb3,3 -34b3cb4,3c -34b3cb5,3 -34b3cb6,80 -34b3cb7,40 -34b3cb9,82 -34b3cba,20 -34b3cbb,23 -34b3cbc,24 -34b3cbd,84 -34b3cbf,10 -34b3cc0,8c -34b3cc1,62 -34b3cc2,67 -34b3cc3,20 -34b3cc5,44 -34b3cc6,20 -34b3cc7,21 -34b3cc8,3 -34b3cc9,e0 -34b3ccb,8 -34b3ccc,ac -34b3ccd,64 -34b3cce,67 -34b3ccf,20 -34b3cd0,27 -34b3cd1,bd +34b3c8d,4 +34b3c8e,fa +34b3c90,ac +34b3c91,64 +34b3c94,ac +34b3c95,62 +34b3c97,4 +34b3c98,24 +34b3c99,2 +34b3c9b,10 +34b3c9c,af +34b3c9d,a2 +34b3c9f,18 +34b3ca0,af +34b3ca1,a2 +34b3ca3,14 +34b3ca5,12 +34b3ca6,11 +34b3ca9,52 +34b3caa,10 +34b3cab,21 +34b3cac,24 +34b3cad,42 +34b3caf,a +34b3cb0,af +34b3cb1,a2 +34b3cb3,10 +34b3cb4,8f +34b3cb5,a7 +34b3cb7,38 +34b3cb8,8f +34b3cb9,a5 +34b3cbb,40 +34b3cbc,c +34b3cbd,10 +34b3cbe,15 +34b3cbf,11 +34b3cc0,2 +34b3cc2,20 +34b3cc3,25 +34b3cc4,26 +34b3cc5,52 +34b3cc7,1 +34b3cc8,8e +34b3cc9,e2 +34b3cca,67 +34b3ccb,4 +34b3ccc,2 +34b3ccd,42 +34b3cce,10 +34b3ccf,2a +34b3cd0,14 +34b3cd1,40 34b3cd2,ff -34b3cd3,e8 -34b3cd4,af -34b3cd5,bf -34b3cd7,14 -34b3cd8,af -34b3cd9,b0 -34b3cdb,10 -34b3cdd,80 -34b3cde,80 -34b3cdf,25 -34b3ce0,c -34b3ce1,10 -34b3ce2,17 -34b3ce3,27 -34b3ce4,8c -34b3ce5,84 -34b3ce7,8 -34b3ce8,ae -34b3ce9,2 -34b3cec,8e -34b3ced,6 -34b3cef,8 -34b3cf1,40 -34b3cf2,20 -34b3cf3,25 -34b3cf4,3c -34b3cf5,2 -34b3cf6,80 -34b3cf8,24 -34b3cf9,42 -34b3cfa,d -34b3cfb,f0 -34b3cfd,40 -34b3cfe,f8 -34b3cff,9 -34b3d00,8e -34b3d01,5 -34b3d03,4 -34b3d04,8f -34b3d05,bf -34b3d07,14 -34b3d08,8f -34b3d09,b0 -34b3d0b,10 -34b3d0c,3 -34b3d0d,e0 -34b3d0f,8 -34b3d10,27 -34b3d11,bd -34b3d13,18 -34b3d14,ac -34b3d15,86 -34b3d18,ac -34b3d19,85 -34b3d1b,4 -34b3d1c,ac -34b3d1d,85 -34b3d1f,8 -34b3d21,a6 -34b3d22,28 -34b3d23,21 -34b3d24,3 -34b3d25,e0 -34b3d27,8 -34b3d28,ac -34b3d29,85 -34b3d2b,c -34b3d2c,94 -34b3d2d,82 -34b3d2f,4 -34b3d30,94 -34b3d31,83 -34b3d33,6 -34b3d35,43 -34b3d37,18 -34b3d3a,10 -34b3d3b,12 -34b3d3c,90 -34b3d3d,83 -34b3d3f,c -34b3d45,43 -34b3d47,18 -34b3d4a,10 -34b3d4b,12 -34b3d4c,3 -34b3d4d,e0 -34b3d4f,8 -34b3d54,27 -34b3d55,bd -34b3d56,ff -34b3d57,e8 -34b3d58,af -34b3d59,bf -34b3d5b,14 -34b3d5c,af -34b3d5d,b0 -34b3d5f,10 -34b3d60,c -34b3d61,10 -34b3d62,17 -34b3d63,4b -34b3d65,80 -34b3d66,80 -34b3d67,25 -34b3d68,96 -34b3d69,3 -34b3d6b,8 -34b3d6d,62 -34b3d6f,18 -34b3d72,10 -34b3d73,12 -34b3d74,8f -34b3d75,bf -34b3d77,14 -34b3d78,8f -34b3d79,b0 -34b3d7b,10 -34b3d7c,3 -34b3d7d,e0 -34b3d7f,8 -34b3d80,27 -34b3d81,bd -34b3d83,18 -34b3d84,27 -34b3d85,bd -34b3d86,ff -34b3d87,98 -34b3d88,af -34b3d89,bf -34b3d8b,64 +34b3cd3,cb +34b3cd4,26 +34b3cd5,73 +34b3cd7,c +34b3cd8,8e +34b3cd9,2 +34b3cdb,8 +34b3cdc,24 +34b3cdd,43 +34b3cdf,8 +34b3ce0,ae +34b3ce1,3 +34b3ce3,8 +34b3ce4,3c +34b3ce5,3 +34b3ce6,fa +34b3ce8,ac +34b3ce9,43 +34b3cec,24 +34b3ced,3 +34b3cee,ff +34b3cef,ff +34b3cf0,12 +34b3cf1,80 +34b3cf3,35 +34b3cf4,ac +34b3cf5,43 +34b3cf7,4 +34b3cf8,3c +34b3cf9,5 +34b3cfa,80 +34b3cfb,40 +34b3cfc,24 +34b3cfd,a5 +34b3cfe,66 +34b3cff,28 +34b3d00,94 +34b3d01,a7 +34b3d03,8 +34b3d06,30 +34b3d07,25 +34b3d08,c +34b3d09,10 +34b3d0a,14 +34b3d0b,a9 +34b3d0c,2 +34b3d0e,20 +34b3d0f,25 +34b3d10,3c +34b3d11,2 +34b3d12,80 +34b3d13,40 +34b3d14,8c +34b3d15,42 +34b3d16,67 +34b3d17,4 +34b3d18,18 +34b3d19,40 +34b3d1a,1 +34b3d1b,95 +34b3d1c,3c +34b3d1d,2 +34b3d1e,80 +34b3d1f,40 +34b3d20,3c +34b3d21,13 +34b3d22,80 +34b3d23,40 +34b3d24,26 +34b3d25,73 +34b3d26,66 +34b3d27,5c +34b3d2a,90 +34b3d2b,25 +34b3d2c,3c +34b3d2d,17 +34b3d2e,80 +34b3d2f,40 +34b3d30,3c +34b3d31,14 +34b3d32,80 +34b3d33,40 +34b3d34,26 +34b3d35,94 +34b3d36,66 +34b3d37,38 +34b3d38,24 +34b3d39,42 +34b3d3a,66 +34b3d3b,28 +34b3d3c,af +34b3d3d,a2 +34b3d3f,3c +34b3d40,3c +34b3d41,1e +34b3d42,80 +34b3d43,11 +34b3d44,37 +34b3d45,de +34b3d46,a5 +34b3d47,d0 +34b3d48,3c +34b3d49,16 +34b3d4a,80 +34b3d4b,40 +34b3d4c,8e +34b3d4d,e2 +34b3d4e,67 +34b3d4f,14 +34b3d50,10 +34b3d51,40 +34b3d53,8 +34b3d54,92 +34b3d55,62 +34b3d58,3 +34b3d59,c2 +34b3d5a,10 +34b3d5b,21 +34b3d5c,90 +34b3d5d,42 +34b3d5f,a8 +34b3d61,2 +34b3d62,10 +34b3d63,42 +34b3d64,30 +34b3d65,42 +34b3d67,1 +34b3d68,50 +34b3d69,40 +34b3d6b,13 +34b3d6c,26 +34b3d6d,52 +34b3d6f,1 +34b3d70,92 +34b3d71,62 +34b3d75,54 +34b3d76,10 +34b3d77,21 +34b3d78,80 +34b3d79,46 +34b3d7c,2c +34b3d7d,c2 +34b3d7f,3 +34b3d80,50 +34b3d81,40 +34b3d83,d +34b3d84,26 +34b3d85,52 +34b3d87,1 +34b3d88,24 +34b3d89,2 +34b3d8b,10 34b3d8c,af -34b3d8d,b6 -34b3d8f,60 +34b3d8d,a2 +34b3d8f,18 34b3d90,af -34b3d91,b5 -34b3d93,5c -34b3d94,af -34b3d95,b4 -34b3d97,58 -34b3d98,af -34b3d99,b3 -34b3d9b,54 -34b3d9c,af -34b3d9d,b2 -34b3d9f,50 +34b3d91,a2 +34b3d93,14 +34b3d95,12 +34b3d96,11 +34b3d99,52 +34b3d9a,10 +34b3d9b,21 +34b3d9c,24 +34b3d9d,42 +34b3d9f,a 34b3da0,af -34b3da1,b1 -34b3da3,4c -34b3da4,af -34b3da5,b0 -34b3da7,48 -34b3da9,80 -34b3daa,80 -34b3dab,25 -34b3dad,a0 -34b3dae,a8 -34b3daf,25 -34b3db1,c0 -34b3db2,b0 +34b3da1,a2 +34b3da3,10 +34b3da4,8f +34b3da5,a7 +34b3da7,38 +34b3da8,8f +34b3da9,a5 +34b3dab,3c +34b3dac,c +34b3dad,10 +34b3dae,15 +34b3daf,11 +34b3db0,2 +34b3db2,20 34b3db3,25 -34b3db4,94 -34b3db5,b1 -34b3db7,4 -34b3db8,94 -34b3db9,b2 -34b3dbb,6 +34b3db4,26 +34b3db5,52 +34b3db7,1 +34b3db8,8e +34b3db9,c2 +34b3dba,67 +34b3dbb,4 34b3dbc,2 -34b3dbd,47 -34b3dbf,18 -34b3dc2,90 -34b3dc3,12 -34b3dc4,90 -34b3dc5,b4 -34b3dc7,b -34b3dc8,90 -34b3dc9,a2 -34b3dcb,a -34b3dcd,2 -34b3dce,15 -34b3dcf,40 -34b3dd0,3c -34b3dd1,13 -34b3dd3,e0 -34b3dd5,53 -34b3dd6,10 -34b3dd7,24 -34b3dd9,14 -34b3dda,9c -34b3ddb,c0 -34b3ddc,3c -34b3ddd,3 -34b3ddf,18 -34b3de0,2 -34b3de1,63 -34b3de2,98 -34b3de3,24 -34b3de5,53 +34b3dbd,42 +34b3dbe,10 +34b3dbf,2a +34b3dc0,14 +34b3dc1,40 +34b3dc2,ff +34b3dc3,e2 +34b3dc4,26 +34b3dc5,73 +34b3dc7,c +34b3dc8,3c +34b3dc9,2 +34b3dca,80 +34b3dcb,40 +34b3dcc,8c +34b3dcd,42 +34b3dce,67 +34b3dcf,4 +34b3dd0,18 +34b3dd1,40 +34b3dd3,10 +34b3dd4,26 +34b3dd5,31 +34b3dd7,12 +34b3dd8,3c +34b3dd9,12 +34b3dda,80 +34b3ddb,40 +34b3ddc,26 +34b3ddd,52 +34b3dde,66 +34b3ddf,5e +34b3de0,24 +34b3de1,14 +34b3de3,b 34b3de6,98 34b3de7,25 -34b3de8,26 -34b3de9,23 -34b3dea,ff -34b3deb,ff -34b3dec,30 -34b3ded,63 -34b3dee,f -34b3def,ff -34b3df1,73 -34b3df2,18 +34b3de8,3c +34b3de9,16 +34b3dea,80 +34b3deb,40 +34b3dec,2 +34b3ded,80 +34b3dee,30 +34b3def,25 +34b3df0,2 +34b3df1,20 +34b3df2,28 34b3df3,25 -34b3df4,3c -34b3df5,2 -34b3df6,fd -34b3df9,62 -34b3dfa,18 +34b3df4,c +34b3df5,10 +34b3df6,18 +34b3df7,eb +34b3df8,2 +34b3df9,40 +34b3dfa,20 34b3dfb,25 -34b3dfc,af -34b3dfd,a3 -34b3dff,10 -34b3e00,c -34b3e01,10 -34b3e02,17 -34b3e03,4b -34b3e05,a0 -34b3e06,20 -34b3e07,25 -34b3e09,56 -34b3e0b,18 -34b3e0e,10 -34b3e0f,12 -34b3e10,8e -34b3e11,a3 -34b3e15,62 -34b3e16,18 -34b3e17,21 -34b3e18,af -34b3e19,a3 -34b3e1b,14 -34b3e1c,2e -34b3e1d,83 -34b3e1f,2 -34b3e20,10 -34b3e21,60 -34b3e23,3 -34b3e24,24 -34b3e25,2 -34b3e27,10 +34b3dfc,26 +34b3dfd,73 +34b3dff,1 +34b3e00,26 +34b3e01,52 +34b3e03,c +34b3e04,8e +34b3e05,c2 +34b3e06,67 +34b3e07,4 +34b3e08,2 +34b3e09,62 +34b3e0a,10 +34b3e0b,2a +34b3e0c,14 +34b3e0d,40 +34b3e0e,ff +34b3e0f,f7 +34b3e10,26 +34b3e11,94 +34b3e13,11 +34b3e14,3c +34b3e15,2 +34b3e16,80 +34b3e17,40 +34b3e18,94 +34b3e19,42 +34b3e1a,65 +34b3e1b,ec +34b3e1d,2 +34b3e1e,10 +34b3e1f,c0 +34b3e20,24 +34b3e21,42 +34b3e23,1 +34b3e25,51 +34b3e26,88 +34b3e27,21 34b3e28,24 -34b3e29,2 -34b3e2b,4 -34b3e2c,2 -34b3e2d,82 -34b3e2e,10 -34b3e2f,4 -34b3e31,51 -34b3e33,18 -34b3e36,10 -34b3e37,12 -34b3e38,24 -34b3e39,43 -34b3e3b,3f -34b3e3d,3 -34b3e3e,17 -34b3e3f,c3 -34b3e40,30 -34b3e41,42 -34b3e43,3f -34b3e45,43 -34b3e46,10 -34b3e47,21 -34b3e49,2 -34b3e4a,10 -34b3e4b,c0 -34b3e4c,3c -34b3e4d,3 -34b3e4f,3 -34b3e50,34 -34b3e51,63 -34b3e52,fe -34b3e55,43 -34b3e56,10 -34b3e57,24 -34b3e59,53 -34b3e5a,10 +34b3e29,7 +34b3e2b,1 +34b3e2c,24 +34b3e2d,6 +34b3e2f,11 +34b3e30,3c +34b3e31,5 +34b3e32,80 +34b3e33,40 +34b3e34,24 +34b3e35,a5 +34b3e36,65 +34b3e37,f8 +34b3e38,c +34b3e39,10 +34b3e3a,14 +34b3e3b,a9 +34b3e3c,2 +34b3e3e,20 +34b3e3f,25 +34b3e40,3c +34b3e41,2 +34b3e42,80 +34b3e43,40 +34b3e44,8c +34b3e45,42 +34b3e46,67 +34b3e47,4 +34b3e48,58 +34b3e49,40 +34b3e4b,2c +34b3e4c,26 +34b3e4d,3e +34b3e4f,11 +34b3e50,3c +34b3e51,13 +34b3e52,80 +34b3e53,40 +34b3e54,26 +34b3e55,73 +34b3e56,66 +34b3e57,5c +34b3e5a,90 34b3e5b,25 -34b3e5c,3c -34b3e5d,3 -34b3e5e,f5 -34b3e61,43 -34b3e62,10 -34b3e63,25 -34b3e64,af -34b3e65,a2 -34b3e67,18 +34b3e5c,2 +34b3e5d,60 +34b3e5e,a0 +34b3e5f,25 +34b3e60,3c +34b3e61,17 +34b3e62,80 +34b3e63,11 +34b3e64,36 +34b3e65,f7 +34b3e66,a5 +34b3e67,d0 34b3e68,3c -34b3e69,4 -34b3e6a,7 -34b3e6c,af -34b3e6d,a4 -34b3e6f,1c -34b3e70,3c -34b3e71,3 -34b3e72,e6 -34b3e74,af -34b3e75,a3 -34b3e77,20 -34b3e78,af -34b3e79,a0 -34b3e7b,24 -34b3e7c,3c -34b3e7d,3 -34b3e7e,f4 -34b3e80,af -34b3e81,a3 -34b3e83,28 +34b3e69,16 +34b3e6a,80 +34b3e6b,40 +34b3e6d,12 +34b3e6e,10 +34b3e6f,40 +34b3e71,52 +34b3e72,10 +34b3e73,21 +34b3e75,2 +34b3e76,10 +34b3e77,80 +34b3e79,54 +34b3e7a,10 +34b3e7b,21 +34b3e7c,80 +34b3e7d,42 +34b3e7f,1 +34b3e80,4 +34b3e81,43 +34b3e83,19 34b3e84,26 -34b3e85,23 -34b3e86,ff -34b3e87,ff -34b3e89,3 -34b3e8a,1b -34b3e8b,80 -34b3e8c,3c -34b3e8d,11 -34b3e8f,ff -34b3e90,36 -34b3e91,31 -34b3e92,f0 -34b3e95,71 -34b3e96,18 -34b3e97,24 -34b3e98,26 -34b3e99,52 -34b3e9a,ff -34b3e9b,ff -34b3e9d,12 -34b3e9e,90 -34b3e9f,80 -34b3ea0,32 -34b3ea1,52 -34b3ea2,f -34b3ea3,fc -34b3ea5,72 -34b3ea6,18 -34b3ea7,25 -34b3ea9,64 -34b3eaa,20 -34b3eab,25 -34b3eac,af -34b3ead,a4 -34b3eaf,2c -34b3eb0,3c -34b3eb1,4 -34b3eb2,e7 -34b3eb4,af -34b3eb5,a4 -34b3eb7,30 -34b3eb8,af -34b3eb9,a0 -34b3ebb,34 -34b3ebc,af -34b3ebd,a2 -34b3ebf,38 -34b3ec0,af -34b3ec1,a0 -34b3ec3,3c -34b3ec4,3c -34b3ec5,2 -34b3ec6,f2 -34b3ec8,af -34b3ec9,a2 -34b3ecb,40 -34b3ecc,af -34b3ecd,a3 -34b3ecf,44 -34b3ed0,27 -34b3ed1,a2 -34b3ed3,10 -34b3ed4,27 -34b3ed5,a6 -34b3ed7,48 -34b3ed8,8e -34b3ed9,3 -34b3edb,8 -34b3edc,24 -34b3edd,64 -34b3edf,8 -34b3ee0,ae -34b3ee1,4 -34b3ee3,8 -34b3ee4,8c -34b3ee5,45 -34b3ee7,4 -34b3ee8,8c -34b3ee9,44 -34b3eec,ac -34b3eed,65 -34b3eef,4 -34b3ef0,24 -34b3ef1,42 -34b3ef3,8 -34b3ef4,14 -34b3ef5,46 -34b3ef6,ff -34b3ef7,f8 -34b3ef8,ac -34b3ef9,64 -34b3efc,8f -34b3efd,bf -34b3eff,64 -34b3f00,8f -34b3f01,b6 -34b3f03,60 -34b3f04,8f -34b3f05,b5 -34b3f07,5c -34b3f08,8f -34b3f09,b4 -34b3f0b,58 -34b3f0c,8f -34b3f0d,b3 -34b3f0f,54 -34b3f10,8f -34b3f11,b2 -34b3f13,50 -34b3f14,8f -34b3f15,b1 -34b3f17,4c -34b3f18,8f -34b3f19,b0 -34b3f1b,48 -34b3f1c,3 -34b3f1d,e0 -34b3f1f,8 -34b3f20,27 -34b3f21,bd -34b3f23,68 -34b3f24,27 -34b3f25,bd -34b3f26,ff -34b3f27,e8 -34b3f28,8f -34b3f29,a8 -34b3f2b,28 -34b3f2c,8f -34b3f2d,a2 -34b3f2f,2c -34b3f30,8f -34b3f31,aa -34b3f33,30 -34b3f34,94 -34b3f35,a9 -34b3f37,4 -34b3f39,9 -34b3f3a,4a -34b3f3b,80 -34b3f3c,14 -34b3f3d,40 -34b3f3f,2 -34b3f40,1 -34b3f41,22 -34b3f43,1a -34b3f45,7 -34b3f47,d -34b3f4a,48 -34b3f4b,12 -34b3f4c,94 -34b3f4d,a3 -34b3f4f,6 -34b3f51,47 +34b3e85,52 +34b3e87,1 +34b3e88,92 +34b3e89,62 +34b3e8c,2 +34b3e8d,e2 +34b3e8e,10 +34b3e8f,21 +34b3e90,90 +34b3e91,42 +34b3e93,bc +34b3e95,2 +34b3e96,1e +34b3e99,3 +34b3e9a,1e +34b3e9b,3 +34b3e9c,28 +34b3e9d,63 +34b3e9f,a +34b3ea0,50 +34b3ea1,60 +34b3ea3,1 +34b3ea4,24 +34b3ea5,2 +34b3ea7,9 +34b3ea8,24 +34b3ea9,3 +34b3eaa,30 +34b3eac,a7 +34b3ead,a3 +34b3eaf,20 +34b3eb1,40 +34b3eb2,18 +34b3eb3,25 +34b3eb5,2 +34b3eb6,16 +34b3eb9,2 +34b3eba,16 +34b3ebb,3 +34b3ebc,4 +34b3ebd,42 +34b3ebf,1 +34b3ec2,18 +34b3ec3,25 +34b3ec4,24 +34b3ec5,63 +34b3ec7,30 +34b3ec8,a3 +34b3ec9,a3 +34b3ecb,20 +34b3ecd,12 +34b3ece,31 +34b3ed1,d2 +34b3ed2,30 +34b3ed3,21 +34b3ed4,24 +34b3ed5,c6 +34b3ed7,b +34b3ed8,2 +34b3ed9,20 +34b3eda,28 +34b3edb,25 +34b3edc,c +34b3edd,10 +34b3ede,18 +34b3edf,eb +34b3ee0,27 +34b3ee1,a4 +34b3ee3,20 +34b3ee4,26 +34b3ee5,52 +34b3ee7,1 +34b3ee8,8e +34b3ee9,c2 +34b3eea,67 +34b3eeb,4 +34b3eec,2 +34b3eed,42 +34b3eee,10 +34b3eef,2a +34b3ef0,14 +34b3ef1,40 +34b3ef2,ff +34b3ef3,de +34b3ef4,26 +34b3ef5,73 +34b3ef7,c +34b3ef8,26 +34b3ef9,3e +34b3efb,11 +34b3efc,24 +34b3efd,7 +34b3eff,1 +34b3f00,24 +34b3f01,6 +34b3f03,e +34b3f04,3c +34b3f05,5 +34b3f06,80 +34b3f07,40 +34b3f08,24 +34b3f09,a5 +34b3f0a,65 +34b3f0b,f8 +34b3f0c,c +34b3f0d,10 +34b3f0e,14 +34b3f0f,a9 +34b3f10,2 +34b3f12,20 +34b3f13,25 +34b3f14,3c +34b3f15,2 +34b3f16,80 +34b3f17,40 +34b3f18,8c +34b3f19,42 +34b3f1a,67 +34b3f1b,4 +34b3f1c,18 +34b3f1d,40 +34b3f1f,2c +34b3f20,3c +34b3f21,2 +34b3f22,80 +34b3f23,40 +34b3f24,3c +34b3f25,13 +34b3f26,80 +34b3f27,40 +34b3f28,26 +34b3f29,73 +34b3f2a,66 +34b3f2b,5c +34b3f2e,90 +34b3f2f,25 +34b3f30,24 +34b3f31,17 +34b3f33,d +34b3f34,2 +34b3f35,60 +34b3f36,a0 +34b3f37,25 +34b3f38,24 +34b3f39,42 +34b3f3a,65 +34b3f3b,f8 +34b3f3c,af +34b3f3d,a2 +34b3f3f,38 +34b3f40,3c +34b3f41,16 +34b3f42,80 +34b3f43,40 +34b3f44,92 +34b3f45,63 +34b3f48,50 +34b3f49,77 +34b3f4b,1 +34b3f4c,24 +34b3f4d,3 +34b3f4f,a +34b3f51,12 34b3f52,10 -34b3f53,21 -34b3f55,2 -34b3f56,13 -34b3f57,80 -34b3f58,3c -34b3f59,b -34b3f5b,ff -34b3f5c,35 -34b3f5d,6b -34b3f5e,f0 -34b3f61,4b -34b3f62,10 -34b3f63,24 -34b3f64,1 -34b3f65,48 -34b3f66,28 -34b3f67,21 -34b3f69,5 -34b3f6a,28 -34b3f6b,80 -34b3f6c,30 -34b3f6d,a5 -34b3f6e,f -34b3f6f,ff -34b3f71,45 -34b3f72,10 -34b3f73,25 -34b3f74,3c -34b3f75,5 -34b3f76,e4 -34b3f79,45 +34b3f53,40 +34b3f55,52 +34b3f56,10 +34b3f57,21 +34b3f59,2 +34b3f5a,10 +34b3f5b,80 +34b3f5d,54 +34b3f5e,10 +34b3f5f,21 +34b3f60,90 +34b3f61,42 +34b3f63,1 +34b3f64,30 +34b3f65,42 +34b3f67,40 +34b3f68,50 +34b3f69,40 +34b3f6b,15 +34b3f6c,26 +34b3f6d,52 +34b3f6f,1 +34b3f70,3c +34b3f71,2 +34b3f72,80 +34b3f73,11 +34b3f74,34 +34b3f75,42 +34b3f76,a5 +34b3f77,d0 +34b3f79,43 34b3f7a,10 -34b3f7b,25 -34b3f7c,af -34b3f7d,a2 -34b3f81,7 -34b3f82,3b -34b3f83,80 -34b3f85,eb -34b3f86,38 -34b3f87,24 -34b3f89,8 -34b3f8a,40 -34b3f8b,80 -34b3f8c,31 -34b3f8d,8 -34b3f8e,f -34b3f8f,ff -34b3f91,e8 -34b3f92,38 -34b3f93,25 +34b3f7b,21 +34b3f7c,90 +34b3f7d,42 +34b3f7f,a8 +34b3f80,30 +34b3f81,42 +34b3f83,1 +34b3f84,50 +34b3f85,40 +34b3f87,e +34b3f88,26 +34b3f89,52 +34b3f8b,1 +34b3f8c,24 +34b3f8d,2 +34b3f8f,10 +34b3f90,af +34b3f91,a2 +34b3f93,18 34b3f94,af -34b3f95,a7 -34b3f97,4 -34b3f98,3c -34b3f99,2 -34b3f9a,e1 -34b3f9c,af -34b3f9d,a2 -34b3f9f,8 -34b3fa1,66 -34b3fa3,18 -34b3fa6,30 -34b3fa7,12 -34b3fa9,6 -34b3faa,31 -34b3fab,40 -34b3fac,30 -34b3fad,c6 -34b3fae,ff -34b3faf,ff -34b3fb0,af -34b3fb1,a6 -34b3fb3,c -34b3fb4,3c -34b3fb5,2 -34b3fb6,f1 -34b3fb8,af -34b3fb9,a2 -34b3fbb,10 -34b3fbd,3 -34b3fbe,1a -34b3fbf,80 -34b3fc0,15 -34b3fc1,40 -34b3fc3,2 -34b3fc5,6a -34b3fc7,1a -34b3fc9,7 -34b3fcb,d -34b3fce,18 -34b3fcf,12 -34b3fd0,30 -34b3fd1,63 -34b3fd2,ff -34b3fd3,ff -34b3fd5,9 -34b3fd6,4c -34b3fd9,69 -34b3fda,18 -34b3fdb,25 -34b3fdc,af -34b3fdd,a3 -34b3fdf,14 -34b3fe0,3 -34b3fe1,a0 -34b3fe2,10 -34b3fe3,25 -34b3fe4,27 -34b3fe5,a8 -34b3fe7,18 -34b3fe8,8c -34b3fe9,83 -34b3feb,8 -34b3fec,24 -34b3fed,65 -34b3fef,8 -34b3ff0,ac -34b3ff1,85 -34b3ff3,8 -34b3ff4,8c -34b3ff5,47 -34b3ff7,4 -34b3ff8,8c -34b3ff9,46 -34b3ffc,ac -34b3ffd,67 -34b3fff,4 -34b4000,24 -34b4001,42 -34b4003,8 -34b4004,14 -34b4005,48 -34b4006,ff -34b4007,f8 -34b4008,ac -34b4009,66 -34b400c,3 -34b400d,e0 -34b400f,8 -34b4010,27 -34b4011,bd -34b4013,18 -34b4014,8c -34b4015,82 -34b4017,8 -34b4018,24 -34b4019,43 -34b401b,8 -34b401c,ac -34b401d,83 -34b401f,8 -34b4020,3c -34b4021,3 -34b4022,e7 -34b4024,ac -34b4025,43 -34b4028,ac -34b4029,40 -34b402b,4 -34b402c,8c -34b402d,82 -34b402f,8 -34b4030,24 -34b4031,43 -34b4033,8 -34b4034,ac -34b4035,83 -34b4037,8 -34b4038,3c -34b4039,3 -34b403a,d9 -34b403c,ac -34b403d,43 -34b4040,ac -34b4041,40 -34b4043,4 -34b4044,8c -34b4045,82 -34b4047,8 -34b4048,24 -34b4049,43 -34b404b,8 -34b404c,ac -34b404d,83 -34b404f,8 -34b4050,3c -34b4051,3 -34b4052,ed -34b4054,ac -34b4055,43 -34b4058,3c -34b4059,5 -34b405b,50 -34b405c,24 -34b405d,a3 -34b405e,3 -34b405f,c0 -34b4060,ac -34b4061,43 -34b4063,4 -34b4064,8c -34b4065,83 -34b4067,8 -34b4068,24 -34b4069,62 -34b406b,8 -34b406c,ac -34b406d,82 -34b406f,8 -34b4070,3c -34b4071,2 -34b4072,e3 -34b4074,24 -34b4075,46 -34b4076,1a -34b4077,1 -34b4078,ac -34b4079,66 -34b407c,24 -34b407d,6 -34b407f,30 -34b4080,ac -34b4081,66 +34b3f95,a2 +34b3f97,14 +34b3f99,12 +34b3f9a,11 +34b3f9d,52 +34b3f9e,10 +34b3f9f,21 +34b3fa0,24 +34b3fa1,42 +34b3fa3,a +34b3fa4,af +34b3fa5,a2 +34b3fa7,10 +34b3fa8,3 +34b3fa9,c0 +34b3faa,38 +34b3fab,25 +34b3fae,30 +34b3faf,25 +34b3fb0,8f +34b3fb1,a5 +34b3fb3,38 +34b3fb4,c +34b3fb5,10 +34b3fb6,15 +34b3fb7,11 +34b3fb8,2 +34b3fba,20 +34b3fbb,25 +34b3fbc,26 +34b3fbd,52 +34b3fbf,1 +34b3fc0,8e +34b3fc1,c2 +34b3fc2,67 +34b3fc3,4 +34b3fc4,2 +34b3fc5,42 +34b3fc6,10 +34b3fc7,2a +34b3fc8,14 +34b3fc9,40 +34b3fca,ff +34b3fcb,de +34b3fcc,26 +34b3fcd,73 +34b3fcf,c +34b3fd0,24 +34b3fd1,7 +34b3fd3,1 +34b3fd4,24 +34b3fd5,6 +34b3fd7,a +34b3fd8,3c +34b3fd9,5 +34b3fda,80 +34b3fdb,40 +34b3fdc,24 +34b3fdd,a5 +34b3fde,65 +34b3fdf,f8 +34b3fe0,c +34b3fe1,10 +34b3fe2,14 +34b3fe3,a9 +34b3fe4,2 +34b3fe6,20 +34b3fe7,25 +34b3fe8,3c +34b3fe9,2 +34b3fea,80 +34b3feb,40 +34b3fec,8c +34b3fed,42 +34b3fee,67 +34b3fef,4 +34b3ff0,58 +34b3ff1,40 +34b3ff3,28 +34b3ff4,26 +34b3ff5,3e +34b3ff7,22 +34b3ffa,90 +34b3ffb,25 +34b3ffc,3c +34b3ffd,13 +34b3ffe,80 +34b3fff,40 +34b4000,26 +34b4001,73 +34b4002,66 +34b4003,5c +34b4004,3c +34b4005,16 +34b4006,80 +34b4007,11 +34b4008,3c +34b4009,17 +34b400a,80 +34b400b,40 +34b400c,26 +34b400d,f7 +34b400e,65 +34b400f,f8 +34b4010,3c +34b4011,14 +34b4012,80 +34b4013,40 +34b4015,12 +34b4016,10 +34b4017,40 +34b4019,52 +34b401a,10 +34b401b,21 +34b401d,2 +34b401e,10 +34b401f,80 +34b4021,53 +34b4022,10 +34b4023,21 +34b4024,90 +34b4025,42 +34b4027,1 +34b4028,30 +34b4029,42 +34b402b,20 +34b402c,50 +34b402d,40 +34b402f,14 +34b4030,26 +34b4031,52 +34b4033,1 +34b4034,36 +34b4035,c2 +34b4036,a5 +34b4037,d0 +34b4038,8c +34b4039,42 +34b403b,a4 +34b403c,3c +34b403d,3 +34b403f,40 +34b4041,43 +34b4042,10 +34b4043,24 +34b4044,50 +34b4045,40 +34b4047,e +34b4048,26 +34b4049,52 +34b404b,1 +34b404c,24 +34b404d,2 +34b404f,10 +34b4050,af +34b4051,a2 +34b4053,18 +34b4054,af +34b4055,a2 +34b4057,14 +34b4059,12 +34b405a,11 +34b405d,52 +34b405e,10 +34b405f,21 +34b4060,24 +34b4061,42 +34b4063,a +34b4064,af +34b4065,a2 +34b4067,10 +34b4068,3 +34b4069,c0 +34b406a,38 +34b406b,25 +34b406e,30 +34b406f,25 +34b4070,2 +34b4071,e0 +34b4072,28 +34b4073,25 +34b4074,c +34b4075,10 +34b4076,15 +34b4077,11 +34b4078,2 +34b407a,20 +34b407b,25 +34b407c,26 +34b407d,52 +34b407f,1 +34b4080,8e +34b4081,82 +34b4082,67 34b4083,4 -34b4084,8c -34b4085,83 -34b4087,8 -34b4088,24 -34b4089,66 -34b408b,8 -34b408c,ac -34b408d,86 -34b408f,8 -34b4090,24 -34b4091,46 -34b4092,18 -34b4093,1 -34b4094,ac -34b4095,66 +34b4084,2 +34b4085,42 +34b4086,10 +34b4087,2a +34b4088,14 +34b4089,40 +34b408a,ff +34b408b,e3 +34b408d,12 +34b408e,10 +34b408f,40 +34b4090,26 +34b4091,3e +34b4093,22 +34b4094,24 +34b4095,7 +34b4097,1 34b4098,24 34b4099,6 -34b409b,c0 -34b409c,ac -34b409d,66 -34b409f,4 -34b40a0,8c -34b40a1,86 -34b40a3,8 -34b40a4,24 -34b40a5,c3 -34b40a7,8 -34b40a8,ac -34b40a9,83 -34b40ab,8 +34b409b,10 +34b409c,3c +34b409d,5 +34b409e,80 +34b409f,40 +34b40a0,24 +34b40a1,a5 +34b40a2,65 +34b40a3,f8 +34b40a4,c +34b40a5,10 +34b40a6,14 +34b40a7,a9 +34b40a8,2 +34b40aa,20 +34b40ab,25 34b40ac,3c -34b40ad,3 -34b40ae,e2 -34b40b0,24 -34b40b1,67 -34b40b2,1e -34b40b3,1 -34b40b4,ac -34b40b5,c7 -34b40b8,ac -34b40b9,c0 -34b40bb,4 -34b40bc,8c -34b40bd,86 -34b40bf,8 -34b40c0,24 -34b40c1,c7 -34b40c3,8 -34b40c4,ac -34b40c5,87 -34b40c7,8 -34b40c8,24 -34b40c9,67 -34b40ca,1d -34b40cc,ac -34b40cd,c7 +34b40ad,2 +34b40ae,80 +34b40af,40 +34b40b0,8c +34b40b1,42 +34b40b2,67 +34b40b3,4 +34b40b4,18 +34b40b5,40 +34b40b7,2a +34b40b8,3c +34b40b9,13 +34b40ba,80 +34b40bb,40 +34b40bc,26 +34b40bd,73 +34b40be,66 +34b40bf,5c +34b40c2,90 +34b40c3,25 +34b40c4,2 +34b40c5,60 +34b40c6,a0 +34b40c7,25 +34b40c8,3c +34b40c9,17 +34b40ca,80 +34b40cb,11 +34b40cc,3c +34b40cd,2 +34b40ce,80 +34b40cf,40 34b40d0,24 -34b40d1,7 -34b40d3,4 -34b40d4,ac -34b40d5,c7 -34b40d7,4 -34b40d8,8c -34b40d9,86 -34b40db,8 -34b40dc,24 -34b40dd,c7 -34b40df,8 -34b40e0,ac -34b40e1,87 -34b40e3,8 -34b40e4,24 -34b40e5,47 -34b40e6,17 -34b40e8,ac -34b40e9,c7 -34b40ec,ac -34b40ed,c0 -34b40ef,4 -34b40f0,8c -34b40f1,86 -34b40f3,8 -34b40f4,24 -34b40f5,c7 -34b40f7,8 -34b40f8,ac -34b40f9,87 -34b40fb,8 -34b40fc,24 -34b40fd,47 -34b40fe,14 -34b40ff,2 -34b4100,ac -34b4101,c7 -34b4104,24 -34b4105,7 -34b4106,c -34b4108,ac -34b4109,c7 -34b410b,4 -34b410c,8c -34b410d,86 -34b410f,8 -34b4110,24 -34b4111,c7 -34b4113,8 -34b4114,ac -34b4115,87 -34b4117,8 -34b4118,24 -34b4119,47 -34b411a,d +34b40d1,42 +34b40d2,65 +34b40d3,f8 +34b40d4,af +34b40d5,a2 +34b40d7,38 +34b40d8,3c +34b40d9,16 +34b40da,80 +34b40db,40 +34b40dd,12 +34b40de,10 +34b40df,40 +34b40e1,52 +34b40e2,10 +34b40e3,21 +34b40e5,2 +34b40e6,10 +34b40e7,80 +34b40e9,54 +34b40ea,10 +34b40eb,21 +34b40ec,90 +34b40ed,42 +34b40ef,1 +34b40f0,30 +34b40f1,42 +34b40f3,10 +34b40f4,50 +34b40f5,40 +34b40f7,16 +34b40f8,26 +34b40f9,52 +34b40fb,1 +34b40fc,36 +34b40fd,e2 +34b40fe,a5 +34b40ff,d0 +34b4100,92 +34b4101,63 +34b4105,43 +34b4106,10 +34b4107,21 +34b4108,90 +34b4109,42 +34b410b,a8 +34b410d,2 +34b410e,10 +34b410f,82 +34b4110,30 +34b4111,42 +34b4113,1 +34b4114,50 +34b4115,40 +34b4117,e +34b4118,26 +34b4119,52 34b411b,1 -34b411c,ac -34b411d,c7 -34b4120,ac -34b4121,c0 -34b4123,4 -34b4124,8c -34b4125,86 -34b4127,8 -34b4128,24 -34b4129,c7 -34b412b,8 -34b412c,ac -34b412d,87 -34b412f,8 +34b411c,24 +34b411d,2 +34b411f,10 +34b4120,af +34b4121,a2 +34b4123,18 +34b4124,af +34b4125,a2 +34b4127,14 +34b4129,12 +34b412a,11 +34b412d,52 +34b412e,10 +34b412f,21 34b4130,24 -34b4131,47 -34b4132,c -34b4134,ac -34b4135,c7 -34b4138,ac +34b4131,42 +34b4133,a +34b4134,af +34b4135,a2 +34b4137,10 +34b4138,3 34b4139,c0 -34b413b,4 -34b413c,8c -34b413d,86 -34b413f,8 -34b4140,24 -34b4141,c7 -34b4143,8 -34b4144,ac -34b4145,87 -34b4147,8 -34b4148,24 -34b4149,47 -34b414a,f -34b414c,ac -34b414d,c7 -34b4150,ac -34b4151,c0 +34b413a,38 +34b413b,25 +34b413e,30 +34b413f,25 +34b4140,8f +34b4141,a5 +34b4143,38 +34b4144,c +34b4145,10 +34b4146,15 +34b4147,11 +34b4148,2 +34b414a,20 +34b414b,25 +34b414c,26 +34b414d,52 +34b414f,1 +34b4150,8e +34b4151,c2 +34b4152,67 34b4153,4 -34b4154,8c -34b4155,86 -34b4157,8 -34b4158,24 -34b4159,c7 -34b415b,8 -34b415c,ac -34b415d,87 -34b415f,8 -34b4160,24 -34b4161,47 -34b4162,10 -34b4163,1 -34b4164,ac -34b4165,c7 -34b4168,ac -34b4169,c0 -34b416b,4 -34b416c,8c -34b416d,86 -34b416f,8 +34b4154,2 +34b4155,42 +34b4156,10 +34b4157,2a +34b4158,14 +34b4159,40 +34b415a,ff +34b415b,e0 +34b415c,26 +34b415d,73 +34b415f,c +34b4160,26 +34b4161,3e +34b4163,33 +34b4164,24 +34b4165,7 +34b4167,1 +34b4168,24 +34b4169,6 +34b416b,f +34b416c,3c +34b416d,5 +34b416e,80 +34b416f,40 34b4170,24 -34b4171,c7 -34b4173,8 -34b4174,ac -34b4175,87 -34b4177,8 -34b4178,24 -34b4179,47 -34b417a,8 -34b417c,ac -34b417d,c7 -34b4180,ac -34b4181,c0 +34b4171,a5 +34b4172,65 +34b4173,f8 +34b4174,c +34b4175,10 +34b4176,14 +34b4177,a9 +34b4178,2 +34b417a,20 +34b417b,25 +34b417c,3c +34b417d,2 +34b417e,80 +34b417f,40 +34b4180,8c +34b4181,42 +34b4182,67 34b4183,4 -34b4184,8c -34b4185,86 -34b4187,8 -34b4188,24 -34b4189,c7 -34b418b,8 -34b418c,ac -34b418d,87 -34b418f,8 -34b4190,24 -34b4191,47 -34b4192,a -34b4193,1 -34b4194,ac -34b4195,c7 -34b4198,ac -34b4199,c0 -34b419b,4 -34b419c,8c -34b419d,86 -34b419f,8 +34b4184,18 +34b4185,40 +34b4187,60 +34b4188,3c +34b4189,13 +34b418a,80 +34b418b,40 +34b418c,26 +34b418d,73 +34b418e,66 +34b418f,5c +34b4192,90 +34b4193,25 +34b4194,2 +34b4195,60 +34b4196,a0 +34b4197,25 +34b4198,3c +34b4199,17 +34b419a,80 +34b419b,11 +34b419c,3c +34b419d,2 +34b419e,80 +34b419f,40 34b41a0,24 -34b41a1,c7 -34b41a3,8 -34b41a4,ac -34b41a5,87 -34b41a7,8 -34b41a8,24 -34b41a9,63 -34b41ab,1c -34b41ac,ac -34b41ad,c3 -34b41b0,24 -34b41b1,a5 -34b41b2,42 -34b41b3,40 -34b41b4,ac -34b41b5,c5 -34b41b7,4 -34b41b8,8c -34b41b9,83 -34b41bb,8 -34b41bc,24 -34b41bd,65 -34b41bf,8 -34b41c0,ac -34b41c1,85 -34b41c3,8 -34b41c4,24 -34b41c5,42 -34b41c6,12 -34b41c7,1 -34b41c8,ac -34b41c9,62 -34b41cc,24 -34b41cd,2 -34b41ce,20 -34b41d0,ac -34b41d1,62 -34b41d3,4 -34b41d4,8c -34b41d5,82 -34b41d7,8 -34b41d8,24 -34b41d9,43 -34b41db,8 -34b41dc,ac -34b41dd,83 -34b41df,8 -34b41e0,3c -34b41e1,3 -34b41e2,df -34b41e4,ac -34b41e5,43 -34b41e8,3 -34b41e9,e0 -34b41eb,8 -34b41ec,ac -34b41ed,40 -34b41ef,4 -34b41f0,27 -34b41f1,bd -34b41f2,ff -34b41f3,b8 +34b41a1,42 +34b41a2,65 +34b41a3,f8 +34b41a4,af +34b41a5,a2 +34b41a7,38 +34b41a8,3c +34b41a9,16 +34b41aa,80 +34b41ab,40 +34b41ad,12 +34b41ae,10 +34b41af,40 +34b41b1,52 +34b41b2,10 +34b41b3,21 +34b41b5,2 +34b41b6,10 +34b41b7,80 +34b41b9,54 +34b41ba,10 +34b41bb,21 +34b41bc,90 +34b41bd,42 +34b41bf,1 +34b41c0,30 +34b41c1,42 +34b41c3,10 +34b41c4,50 +34b41c5,40 +34b41c7,16 +34b41c8,26 +34b41c9,52 +34b41cb,1 +34b41cc,36 +34b41cd,e2 +34b41ce,a5 +34b41cf,d0 +34b41d0,92 +34b41d1,63 +34b41d5,43 +34b41d6,10 +34b41d7,21 +34b41d8,90 +34b41d9,42 +34b41db,a8 +34b41dd,2 +34b41de,10 +34b41df,42 +34b41e0,30 +34b41e1,42 +34b41e3,1 +34b41e4,50 +34b41e5,40 +34b41e7,e +34b41e8,26 +34b41e9,52 +34b41eb,1 +34b41ec,24 +34b41ed,2 +34b41ef,10 +34b41f0,af +34b41f1,a2 +34b41f3,18 34b41f4,af -34b41f5,bf -34b41f7,44 -34b41f8,af -34b41f9,b1 -34b41fb,40 -34b41fc,af -34b41fd,b0 -34b41ff,3c -34b4200,af -34b4201,a0 -34b4203,10 -34b4204,3c -34b4205,2 -34b4206,1 -34b4207,a0 -34b4208,24 -34b4209,42 -34b420a,20 -34b420c,af -34b420d,a2 -34b420f,14 -34b4210,3c -34b4211,10 -34b4213,3 -34b4214,36 -34b4215,2 -34b4216,95 -34b4217,c0 -34b4218,af -34b4219,a2 -34b421b,18 -34b421c,c -34b421d,10 -34b421e,17 -34b421f,34 -34b4220,27 -34b4221,a4 -34b4223,10 -34b4224,af -34b4225,a0 -34b4227,1c -34b4228,3c -34b4229,2 -34b422b,84 -34b422c,24 -34b422d,42 -34b422e,60 -34b4230,af -34b4231,a2 -34b4233,20 -34b4234,34 +34b41f5,a2 +34b41f7,14 +34b41f9,12 +34b41fa,11 +34b41fd,52 +34b41fe,10 +34b41ff,21 +34b4200,24 +34b4201,42 +34b4203,a +34b4204,af +34b4205,a2 +34b4207,10 +34b4208,3 +34b4209,c0 +34b420a,38 +34b420b,25 +34b420e,30 +34b420f,25 +34b4210,8f +34b4211,a5 +34b4213,38 +34b4214,c +34b4215,10 +34b4216,15 +34b4217,11 +34b4218,2 +34b421a,20 +34b421b,25 +34b421c,26 +34b421d,52 +34b421f,1 +34b4220,8e +34b4221,c2 +34b4222,67 +34b4223,4 +34b4224,2 +34b4225,42 +34b4226,10 +34b4227,2a +34b4228,14 +34b4229,40 +34b422a,ff +34b422b,e0 +34b422c,26 +34b422d,73 +34b422f,c +34b4230,12 +34b4231,a0 +34b4233,35 +34b4234,3c 34b4235,2 -34b4236,b4 -34b4238,af -34b4239,a2 -34b423b,24 -34b423c,c -34b423d,10 -34b423e,17 -34b423f,34 -34b4240,27 -34b4241,a4 -34b4243,1c -34b4244,af -34b4245,a0 -34b4247,28 -34b4248,3c -34b4249,2 -34b424b,7b -34b424c,34 -34b424d,42 -34b424e,d0 -34b4250,af -34b4251,a2 -34b4253,2c +34b4236,80 +34b4237,40 +34b4238,8c +34b4239,42 +34b423a,67 +34b423b,4 +34b423c,18 +34b423d,40 +34b423f,32 +34b4240,3c +34b4241,13 +34b4242,80 +34b4243,40 +34b4244,26 +34b4245,73 +34b4246,66 +34b4247,5c +34b4248,24 +34b4249,14 +34b424b,b +34b424e,90 +34b424f,25 +34b4250,3c +34b4251,17 +34b4252,80 +34b4253,40 34b4254,3c -34b4255,2 -34b4257,8 -34b4258,34 -34b4259,42 -34b425a,88 -34b425b,a0 -34b425c,af -34b425d,a2 -34b425f,30 -34b4260,c -34b4261,10 -34b4262,17 -34b4263,34 -34b4264,27 -34b4265,a4 -34b4267,28 -34b4268,8f -34b4269,a2 -34b426b,10 -34b426c,26 -34b426d,10 -34b426e,a3 -34b4271,50 +34b4255,16 +34b4256,80 +34b4257,40 +34b4258,26 +34b4259,d6 +34b425a,67 +34b425b,38 +34b425c,3c +34b425d,15 +34b425e,80 +34b425f,40 +34b4260,26 +34b4261,b5 +34b4262,65 +34b4263,9c +34b4264,3c +34b4265,2 +34b4266,80 +34b4267,40 +34b4268,24 +34b4269,42 +34b426a,65 +34b426b,a0 +34b426c,af +34b426d,a2 +34b426f,38 +34b4270,3c +34b4271,1e 34b4272,80 -34b4273,21 -34b4274,3c -34b4275,3 -34b4276,80 -34b4277,40 -34b4278,ac -34b4279,70 -34b427a,66 -34b427b,a8 -34b427c,24 -34b427d,42 -34b427e,29 -34b427f,80 -34b4280,3c -34b4281,3 -34b4282,80 +34b4273,40 +34b4274,8e +34b4275,e2 +34b4276,67 +34b4277,18 +34b4278,50 +34b4279,40 +34b427b,14 +34b427c,92 +34b427d,62 +34b4281,12 +34b4282,10 34b4283,40 -34b4284,ac -34b4285,62 -34b4286,66 -34b4287,98 -34b4288,3c +34b4285,52 +34b4286,10 +34b4287,21 34b4289,2 -34b428a,80 -34b428b,40 -34b428c,8f -34b428d,a3 -34b428f,28 -34b4290,ac +34b428a,10 +34b428b,80 +34b428c,27 +34b428d,c3 +34b428e,66 +34b428f,5c 34b4291,43 -34b4292,66 -34b4293,88 -34b4294,3c -34b4295,2 -34b4296,80 -34b4297,40 -34b4298,8f -34b4299,a3 -34b429b,1c -34b429c,ac -34b429d,43 -34b429e,66 -34b429f,78 -34b42a0,3c -34b42a1,11 -34b42a2,80 -34b42a3,40 -34b42a4,c -34b42a5,10 -34b42a6,17 -34b42a7,55 -34b42a8,26 -34b42a9,24 -34b42aa,66 -34b42ab,68 -34b42ad,40 -34b42ae,80 -34b42af,25 -34b42b0,c -34b42b1,10 -34b42b2,17 -34b42b3,27 -34b42b5,40 -34b42b6,20 -34b42b7,25 -34b42b9,10 -34b42ba,4f -34b42bb,c2 -34b42bc,1 -34b42bd,30 -34b42be,48 -34b42bf,21 -34b42c0,2a -34b42c1,10 -34b42c3,2 -34b42c4,16 -34b42c7,18 -34b42c8,ae -34b42c9,22 -34b42ca,66 -34b42cb,68 -34b42cd,9 -34b42ce,48 -34b42cf,43 -34b42d0,3c -34b42d1,3 -34b42d2,80 -34b42d3,40 -34b42d4,24 -34b42d5,63 -34b42d6,67 -34b42d7,48 +34b4292,10 +34b4293,21 +34b4294,90 +34b4295,42 +34b4297,1 +34b4298,30 +34b4299,42 +34b429b,10 +34b429c,50 +34b429d,40 +34b429f,b +34b42a0,92 +34b42a1,62 +34b42a4,92 +34b42a5,63 +34b42a8,3c +34b42a9,2 +34b42aa,80 +34b42ab,11 +34b42ac,34 +34b42ad,42 +34b42ae,a5 +34b42af,d0 +34b42b1,43 +34b42b2,10 +34b42b3,21 +34b42b4,90 +34b42b5,42 +34b42b7,a8 +34b42b9,2 +34b42ba,10 +34b42bb,82 +34b42bc,30 +34b42bd,42 +34b42bf,1 +34b42c0,50 +34b42c1,40 +34b42c3,b +34b42c4,26 +34b42c5,52 +34b42c7,1 +34b42c8,92 +34b42c9,62 +34b42cd,56 +34b42ce,10 +34b42cf,21 +34b42d0,90 +34b42d1,42 +34b42d4,14 +34b42d5,40 +34b42d7,2 +34b42d8,2 +34b42d9,a0 34b42da,20 34b42db,25 -34b42de,30 -34b42df,25 +34b42dc,8f +34b42dd,a4 +34b42df,38 34b42e0,2 -34b42e1,20 -34b42e2,40 +34b42e1,80 +34b42e2,30 34b42e3,25 -34b42e4,24 -34b42e5,7 -34b42e6,ff -34b42e7,f0 -34b42e8,8d -34b42e9,5 -34b42ea,66 -34b42eb,68 -34b42ed,a4 -34b42ee,28 -34b42ef,21 -34b42f0,90 -34b42f1,62 +34b42e4,c +34b42e5,10 +34b42e6,18 +34b42e7,eb +34b42e8,26 +34b42e9,25 +34b42eb,44 +34b42ec,26 +34b42ed,52 +34b42ef,1 +34b42f0,26 +34b42f1,94 +34b42f3,11 +34b42f4,3c 34b42f5,2 -34b42f6,11 -34b42f7,2 -34b42f9,47 -34b42fa,10 -34b42fb,25 -34b42fc,a0 -34b42fd,a2 -34b4300,8d -34b4301,2 -34b4302,66 -34b4303,68 -34b4305,44 -34b4306,10 -34b4307,21 -34b4308,90 -34b4309,65 -34b430d,a7 -34b430e,28 +34b42f6,80 +34b42f7,40 +34b42f8,8c +34b42f9,42 +34b42fa,67 +34b42fb,4 +34b42fc,2 +34b42fd,42 +34b42fe,10 +34b42ff,2a +34b4300,14 +34b4301,40 +34b4302,ff +34b4303,dc +34b4304,26 +34b4305,73 +34b4307,c +34b4308,c +34b4309,10 +34b430a,19 +34b430b,15 +34b430c,2 +34b430e,20 34b430f,25 -34b4310,a0 -34b4311,45 -34b4313,1 +34b4310,8e +34b4311,2 +34b4313,8 34b4314,24 -34b4315,c6 -34b4317,1 -34b4318,24 -34b4319,63 -34b431b,1 -34b431d,c9 -34b431e,10 -34b431f,2a -34b4320,14 -34b4321,40 -34b4322,ff -34b4323,f1 -34b4324,24 -34b4325,84 -34b4327,2 -34b4328,c -34b4329,10 -34b432a,17 -34b432b,27 +34b4315,43 +34b4317,8 +34b4318,ae +34b4319,3 +34b431b,8 +34b431c,3c +34b431d,3 +34b431e,e9 +34b4320,ac +34b4321,43 +34b4324,ac +34b4325,40 +34b4327,4 +34b4328,8e +34b4329,2 +34b432b,8 34b432c,24 -34b432d,4 -34b432e,1 -34b4330,3c -34b4331,4 -34b4332,80 -34b4333,40 -34b4334,24 +34b432d,43 +34b432f,8 +34b4330,ae +34b4331,3 +34b4333,8 +34b4334,3c 34b4335,3 -34b4336,1 +34b4336,df 34b4338,ac -34b4339,83 -34b433a,67 -34b433b,38 -34b433c,24 -34b433d,84 -34b433e,67 -34b433f,38 -34b4340,ac -34b4341,82 -34b4343,4 -34b4344,ac -34b4345,82 -34b4347,8 -34b4348,24 -34b4349,42 -34b434a,1 -34b434c,c -34b434d,10 -34b434e,18 -34b434f,5 -34b4350,ac -34b4351,82 -34b4353,c +34b4339,43 +34b433c,ac +34b433d,40 +34b433f,4 +34b4340,8f +34b4341,bf +34b4343,6c +34b4344,8f +34b4345,be +34b4347,68 +34b4348,8f +34b4349,b7 +34b434b,64 +34b434c,8f +34b434d,b6 +34b434f,60 +34b4350,8f +34b4351,b5 +34b4353,5c 34b4354,8f -34b4355,bf -34b4357,44 +34b4355,b4 +34b4357,58 34b4358,8f -34b4359,b1 -34b435b,40 +34b4359,b3 +34b435b,54 34b435c,8f -34b435d,b0 -34b435f,3c -34b4360,3 -34b4361,e0 -34b4363,8 -34b4364,27 -34b4365,bd +34b435d,b2 +34b435f,50 +34b4360,8f +34b4361,b1 +34b4363,4c +34b4364,8f +34b4365,b0 34b4367,48 -34b4368,27 -34b4369,bd -34b436a,ff -34b436b,98 -34b436c,af -34b436d,bf -34b436f,64 -34b4370,af -34b4371,be -34b4373,60 -34b4374,af -34b4375,b7 -34b4377,5c -34b4378,af -34b4379,b6 -34b437b,58 -34b437c,af -34b437d,b5 -34b437f,54 -34b4380,af -34b4381,b4 -34b4383,50 +34b4368,3 +34b4369,e0 +34b436b,8 +34b436c,27 +34b436d,bd +34b436f,70 +34b4370,10 +34b4372,fe +34b4373,a8 +34b4374,26 +34b4375,31 +34b4377,12 +34b4378,3 +34b4379,e0 +34b437b,8 +34b4380,27 +34b4381,bd +34b4382,ff +34b4383,e8 34b4384,af -34b4385,b3 -34b4387,4c -34b4388,af -34b4389,b2 -34b438b,48 -34b438c,af -34b438d,b1 -34b438f,44 -34b4390,af -34b4391,b0 +34b4385,bf +34b4387,14 +34b4388,c +34b4389,10 +34b438a,16 +34b438b,27 +34b438c,24 +34b438d,4 +34b438e,4 +34b4390,3c +34b4391,3 +34b4392,80 34b4393,40 -34b4394,af -34b4395,a4 -34b4397,68 +34b4394,ac +34b4395,62 +34b4396,67 +34b4397,24 34b4398,3c -34b4399,2 +34b4399,3 34b439a,80 -34b439b,1c -34b439c,34 -34b439d,42 -34b439e,84 -34b439f,a0 -34b43a0,8c -34b43a1,50 -34b43a4,26 -34b43a5,2 -34b43a6,2 -34b43a7,b8 -34b43a8,af -34b43a9,a2 -34b43ab,38 -34b43ac,3c -34b43ad,2 -34b43ae,80 -34b43af,40 -34b43b0,8c -34b43b1,43 -34b43b2,67 -34b43b3,3c -34b43b4,8e -34b43b5,2 -34b43b6,2 -34b43b7,c0 -34b43b8,24 -34b43b9,44 -34b43bb,8 -34b43bc,ae -34b43bd,4 -34b43be,2 -34b43bf,c0 -34b43c0,3c -34b43c1,4 -34b43c2,de -34b43c4,ac -34b43c5,44 -34b43c8,ac -34b43c9,43 -34b43cb,4 -34b43cc,8e -34b43cd,2 -34b43ce,2 -34b43cf,c0 -34b43d0,24 -34b43d1,43 -34b43d3,8 -34b43d4,ae -34b43d5,3 -34b43d6,2 -34b43d7,c0 -34b43d8,3c -34b43d9,3 -34b43da,e7 -34b43dc,ac -34b43dd,43 -34b43e0,ac -34b43e1,40 -34b43e3,4 -34b43e4,8e -34b43e5,2 -34b43e6,2 -34b43e7,c0 -34b43e8,24 -34b43e9,43 -34b43eb,8 -34b43ec,ae -34b43ed,3 -34b43ee,2 -34b43ef,c0 -34b43f0,3c -34b43f1,3 -34b43f2,fc -34b43f3,11 -34b43f4,34 -34b43f5,63 -34b43f6,96 -34b43f7,23 -34b43f8,ac -34b43f9,43 +34b439b,40 +34b439c,ac +34b439d,62 +34b439e,67 +34b439f,20 +34b43a0,8f +34b43a1,bf +34b43a3,14 +34b43a4,3 +34b43a5,e0 +34b43a7,8 +34b43a8,27 +34b43a9,bd +34b43ab,18 +34b43ac,80 +34b43ad,82 +34b43b0,10 +34b43b1,40 +34b43b3,26 +34b43b4,24 +34b43b5,87 +34b43b7,1 +34b43b8,3c +34b43b9,3 +34b43ba,80 +34b43bb,40 +34b43bc,8c +34b43bd,68 +34b43be,67 +34b43bf,24 +34b43c0,25 +34b43c1,8 +34b43c2,4 +34b43c4,3c +34b43c5,3 +34b43c6,80 +34b43c7,40 +34b43c8,8c +34b43c9,63 +34b43ca,67 +34b43cb,20 +34b43cd,68 +34b43ce,20 +34b43cf,2b +34b43d0,10 +34b43d1,80 +34b43d3,1e +34b43d4,3c +34b43d5,a +34b43d6,ff +34b43d8,25 +34b43d9,4a +34b43da,f +34b43db,ff +34b43dc,30 +34b43dd,c6 +34b43de,f +34b43df,ff +34b43e0,24 +34b43e1,b +34b43e2,f0 +34b43e4,3c +34b43e5,9 +34b43e6,80 +34b43e7,40 +34b43e8,10 +34b43eb,7 +34b43ec,25 +34b43ed,29 +34b43ee,65 +34b43ef,e8 +34b43f1,68 +34b43f2,20 +34b43f3,2b +34b43f4,54 +34b43f5,80 +34b43f7,5 +34b43f8,a0 +34b43f9,62 34b43fc,3c -34b43fd,3 -34b43fe,ff -34b43ff,2f -34b4400,34 -34b4401,63 -34b4402,ff -34b4403,ff +34b43fd,2 +34b43fe,80 +34b43ff,40 +34b4400,3 +34b4401,e0 +34b4403,8 34b4404,ac 34b4405,43 -34b4407,4 -34b4408,8e -34b4409,2 -34b440a,2 -34b440b,c0 -34b440c,24 -34b440d,43 -34b440f,8 -34b4410,ae -34b4411,3 -34b4412,2 -34b4413,c0 -34b4414,3c -34b4415,3 -34b4416,fa -34b4418,ac -34b4419,43 -34b441c,24 -34b441d,3 -34b441e,ff -34b441f,ff -34b4420,ac -34b4421,43 -34b4423,4 -34b4424,3c -34b4425,2 -34b4426,80 -34b4427,40 -34b4428,8c -34b4429,52 -34b442a,67 -34b442b,24 -34b442c,24 -34b442d,11 -34b442f,54 -34b4430,3c -34b4431,16 -34b4432,80 -34b4433,40 -34b4434,26 -34b4435,d6 -34b4436,66 -34b4437,b8 -34b4438,3c -34b4439,15 -34b443a,80 -34b443b,40 -34b443c,26 -34b443d,b5 -34b443e,67 +34b4406,67 +34b4407,20 +34b4408,a0 +34b4409,62 +34b440c,30 +34b440d,a2 +34b440e,f +34b440f,ff +34b4411,2 +34b4412,23 +34b4414,8c +34b4415,62 +34b4419,4a +34b441a,10 +34b441b,24 +34b441d,44 +34b441e,10 +34b441f,25 +34b4421,4b +34b4422,10 +34b4423,24 +34b4425,46 +34b4426,10 +34b4427,25 +34b4428,ac +34b4429,62 +34b442c,95 +34b442d,22 +34b442f,4 +34b4431,a2 +34b4432,28 +34b4433,21 +34b4434,24 +34b4435,e7 +34b4437,1 +34b4438,80 +34b4439,e2 +34b443a,ff +34b443b,ff +34b443c,14 +34b443d,40 +34b443e,ff +34b443f,ec 34b4440,24 -34b4441,14 -34b4443,18 -34b4444,24 -34b4445,1e -34b4447,c -34b4448,24 -34b4449,17 -34b444b,f4 -34b444c,32 -34b444d,42 -34b444f,1f -34b4451,2 -34b4452,10 -34b4453,40 -34b4455,12 -34b4456,91 -34b4457,43 -34b4459,56 -34b445a,10 -34b445b,21 -34b445c,90 -34b445d,43 -34b4461,3 -34b4462,18 -34b4463,80 -34b4465,75 -34b4466,18 -34b4467,21 -34b4468,8c -34b4469,73 -34b446c,24 -34b446d,7 -34b446f,1 -34b4470,90 -34b4471,46 -34b4473,1 -34b4474,2 -34b4475,60 -34b4476,28 -34b4477,25 -34b4478,c -34b4479,10 -34b447a,17 -34b447b,61 -34b447c,8f -34b447d,a4 -34b447f,38 -34b4480,af -34b4481,b4 -34b4483,18 -34b4484,af -34b4485,b4 -34b4487,14 -34b4488,af -34b4489,be -34b448b,10 -34b448c,2 -34b448d,20 -34b448e,38 -34b448f,25 -34b4492,30 -34b4493,25 -34b4494,2 -34b4495,60 -34b4496,28 -34b4497,25 -34b4498,c -34b4499,10 -34b449a,17 -34b449b,c9 -34b449c,8f -34b449d,a4 -34b449f,38 -34b44a0,26 -34b44a1,31 +34b4441,63 +34b4443,4 +34b4444,3c +34b4445,2 +34b4446,80 +34b4447,40 +34b4448,ac +34b4449,43 +34b444a,67 +34b444b,20 +34b444c,3 +34b444d,e0 +34b444f,8 +34b4454,27 +34b4455,bd +34b4456,ff +34b4457,b0 +34b4458,af +34b4459,bf +34b445b,4c +34b445c,af +34b445d,be +34b445f,48 +34b4460,af +34b4461,b7 +34b4463,44 +34b4464,af +34b4465,b6 +34b4467,40 +34b4468,af +34b4469,b5 +34b446b,3c +34b446c,af +34b446d,b4 +34b446f,38 +34b4470,af +34b4471,b3 +34b4473,34 +34b4474,af +34b4475,b2 +34b4477,30 +34b4478,af +34b4479,b1 +34b447b,2c +34b447c,af +34b447d,b0 +34b447f,28 +34b4481,80 +34b4482,a8 +34b4483,25 +34b4486,b0 +34b4487,25 +34b448a,90 +34b448b,25 +34b448c,3c +34b448d,14 +34b448e,80 +34b448f,40 +34b4490,26 +34b4491,94 +34b4492,65 +34b4493,e8 +34b4494,3c +34b4495,1e +34b4496,80 +34b4497,40 +34b4498,3c +34b4499,13 +34b449a,80 +34b449b,40 +34b449c,3c +34b449d,17 +34b449e,38 +34b449f,e3 +34b44a0,af +34b44a1,b4 34b44a3,20 -34b44a4,56 -34b44a5,37 -34b44a6,ff -34b44a7,ea -34b44a8,32 -34b44a9,42 -34b44ab,1f -34b44ac,10 -34b44af,c -34b44b0,8e -34b44b1,2 -34b44b2,2 -34b44b3,c0 -34b44b4,8e -34b44b5,3 -34b44b6,2 -34b44b7,c0 -34b44b8,24 -34b44b9,64 -34b44bb,8 -34b44bc,ae -34b44bd,4 -34b44be,2 -34b44bf,c0 -34b44c0,8c -34b44c1,45 -34b44c3,4 -34b44c4,8c -34b44c5,44 -34b44c8,ac -34b44c9,65 -34b44cb,4 -34b44cc,24 -34b44cd,42 -34b44cf,8 -34b44d0,14 -34b44d1,46 -34b44d2,ff -34b44d3,f8 -34b44d4,ac -34b44d5,64 -34b44d8,10 -34b44db,25 -34b44dc,8f -34b44dd,bf -34b44df,64 +34b44a4,24 +34b44a5,7 +34b44a7,12 +34b44a8,2 +34b44a9,c0 +34b44aa,30 +34b44ab,25 +34b44ac,2 +34b44ad,80 +34b44ae,28 +34b44af,25 +34b44b0,c +34b44b1,10 +34b44b2,14 +34b44b3,a9 +34b44b4,2 +34b44b5,a0 +34b44b6,20 +34b44b7,25 +34b44b8,8f +34b44b9,c5 +34b44ba,67 +34b44bb,24 +34b44bc,10 +34b44bf,1f +34b44c0,36 +34b44c1,f1 +34b44c2,8e +34b44c3,39 +34b44c4,24 +34b44c5,42 +34b44c6,ff +34b44c7,e0 +34b44c9,51 +34b44cb,18 +34b44ce,18 +34b44cf,10 +34b44d1,3 +34b44d2,18 +34b44d3,83 +34b44d5,2 +34b44d6,27 +34b44d7,c3 +34b44d9,64 +34b44da,18 +34b44db,23 +34b44dc,14 +34b44dd,72 +34b44df,16 34b44e0,24 -34b44e1,43 -34b44e3,8 -34b44e4,ae -34b44e5,3 -34b44e6,2 -34b44e7,c0 -34b44e8,3c -34b44e9,3 -34b44ea,e7 -34b44ec,ac -34b44ed,43 -34b44f0,ac -34b44f1,40 -34b44f3,4 -34b44f4,8e -34b44f5,2 -34b44f6,2 -34b44f7,c0 -34b44f8,24 -34b44f9,43 -34b44fb,8 -34b44fc,ae -34b44fd,3 -34b44fe,2 +34b44e1,b0 +34b44e3,4 +34b44e4,8c +34b44e5,a7 +34b44e9,7 +34b44ea,3b +34b44eb,2 +34b44ed,51 +34b44ef,18 +34b44f2,30 +34b44f3,10 +34b44f5,6 +34b44f6,30 +34b44f7,83 +34b44f9,c4 +34b44fa,30 +34b44fb,23 +34b44fd,6 +34b44fe,18 34b44ff,c0 -34b4500,3c -34b4501,3 -34b4502,fc -34b4503,ff -34b4504,34 -34b4505,63 -34b4506,ff -34b4507,ff -34b4508,ac -34b4509,43 -34b450c,3c -34b450d,3 -34b450e,ff -34b450f,fd -34b4510,34 -34b4511,63 -34b4512,f6 -34b4513,fb -34b4514,ac -34b4515,43 -34b4517,4 -34b4518,8e -34b4519,2 -34b451a,2 -34b451b,c0 -34b451c,24 -34b451d,43 -34b451f,8 -34b4520,ae -34b4521,3 -34b4522,2 -34b4523,c0 -34b4524,3c -34b4525,3 -34b4526,fa -34b4528,ac -34b4529,43 -34b452c,93 -34b452d,a3 -34b452f,6b -34b4530,ac -34b4531,43 -34b4533,4 -34b4534,3c -34b4535,2 -34b4536,e4 -34b4537,50 -34b4538,24 -34b4539,42 -34b453a,3 -34b453b,c0 -34b453c,af -34b453d,a2 +34b4501,66 +34b4502,30 +34b4503,21 +34b4505,6 +34b4506,30 +34b4507,40 +34b4508,96 +34b4509,83 +34b450b,6 +34b450c,af +34b450d,a3 +34b450f,18 +34b4510,96 +34b4511,83 +34b4513,4 +34b4514,af +34b4515,a3 +34b4517,14 +34b4518,8c +34b4519,a3 +34b451c,30 +34b451d,63 +34b451e,f +34b451f,ff +34b4520,af +34b4521,a3 +34b4523,10 +34b4524,30 +34b4525,e7 +34b4526,f +34b4527,ff +34b4529,46 +34b452a,30 +34b452b,23 +34b452c,8f +34b452d,a5 +34b452f,20 +34b4530,c +34b4531,10 +34b4532,15 +34b4533,11 +34b4534,2 +34b4535,a0 +34b4536,20 +34b4537,25 +34b4538,2 +34b453a,28 +34b453b,25 +34b453c,8e +34b453d,62 +34b453e,67 34b453f,20 -34b4540,af -34b4541,a0 -34b4543,24 -34b4544,3c -34b4545,2 -34b4546,e1 -34b4548,af +34b4541,a2 +34b4542,10 +34b4543,2b +34b4544,54 +34b4545,40 +34b4546,ff +34b4547,df +34b4548,80 34b4549,a2 -34b454b,28 -34b454c,af -34b454d,a0 -34b454f,2c -34b4550,3c +34b454c,26 +34b454d,52 +34b454f,1 +34b4550,24 34b4551,2 -34b4552,f1 -34b4554,af -34b4555,a2 -34b4557,30 -34b4558,3c -34b4559,2 -34b455a,4 -34b455c,24 -34b455d,42 -34b455e,4 -34b4560,af -34b4561,a2 -34b4563,34 -34b4564,27 -34b4565,a2 -34b4567,20 -34b4568,10 -34b456a,ff -34b456b,d2 -34b456c,27 -34b456d,a6 -34b456f,38 +34b4553,6 +34b4554,16 +34b4555,42 +34b4556,ff +34b4557,d3 +34b4558,26 +34b4559,d6 +34b455b,12 +34b455c,3c +34b455d,2 +34b455e,80 +34b455f,40 +34b4560,8c +34b4561,43 +34b4562,67 +34b4563,24 +34b4564,3c +34b4565,2 +34b4566,80 +34b4567,40 +34b4568,ac +34b4569,43 +34b456a,67 +34b456b,20 +34b456c,8f +34b456d,bf +34b456f,4c 34b4570,8f 34b4571,be -34b4573,60 +34b4573,48 34b4574,8f 34b4575,b7 -34b4577,5c +34b4577,44 34b4578,8f 34b4579,b6 -34b457b,58 +34b457b,40 34b457c,8f 34b457d,b5 -34b457f,54 +34b457f,3c 34b4580,8f 34b4581,b4 -34b4583,50 +34b4583,38 34b4584,8f 34b4585,b3 -34b4587,4c +34b4587,34 34b4588,8f 34b4589,b2 -34b458b,48 +34b458b,30 34b458c,8f 34b458d,b1 -34b458f,44 +34b458f,2c 34b4590,8f 34b4591,b0 -34b4593,40 +34b4593,28 34b4594,3 34b4595,e0 34b4597,8 34b4598,27 34b4599,bd -34b459b,68 +34b459b,50 34b459c,4d 34b459d,51 34b45a0,4e @@ -10466,2460 +10468,2460 @@ ec9ce7,7a 34b45a3,6d 34b45a4,61 34b45a5,6c -34b45a9,1 -34b45aa,2 -34b45ab,3 -34b45ac,4 -34b45ad,5 -34b45ae,6 -34b45af,7 -34b45b0,ff -34b45b1,ff -34b45b2,ff -34b45b3,ff -34b45b4,ff -34b45b5,ff -34b45b9,ff -34b45bb,ff -34b45bc,3c -34b45bf,64 -34b45c0,ff -34b45c1,ff -34b45c2,82 -34b45c4,c8 -34b45c5,32 -34b45c6,ff -34b45c7,c8 -34b45c8,c8 -34b45cd,10 -34b45ce,44 -34b45cf,65 -34b45d0,6b -34b45d1,75 -34b45d8,1 -34b45d9,10 -34b45da,44 -34b45db,6f -34b45dc,64 -34b45dd,6f -34b45de,6e -34b45df,67 -34b45e0,6f -34b45e4,2 +34b45ab,1 +34b45ad,3 +34b45af,6 +34b45b1,7 +34b45b3,9 +34b45b5,b +34b45b7,e +34b45b9,f +34b45bb,10 +34b45bd,11 +34b45bf,19 +34b45c1,1a +34b45c3,2b +34b45c5,2c +34b45c7,2e +34b45c9,30 +34b45cb,32 +34b45cd,35 +34b45cf,3c +34b45d1,40 +34b45d3,41 +34b45d5,46 +34b45d7,51 +34b45d9,54 +34b45da,1 +34b45db,9 +34b45dc,1 +34b45dd,b +34b45de,1 +34b45df,c +34b45e0,1 +34b45e1,e +34b45e2,1 +34b45e3,f +34b45e4,1 34b45e5,10 -34b45e6,4a -34b45e7,61 -34b45e8,62 -34b45e9,75 -34b45f0,3 -34b45f1,d0 -34b45f2,46 -34b45f3,6f -34b45f4,72 -34b45f5,65 -34b45f6,73 -34b45f7,74 -34b45fc,4 -34b45fd,d0 -34b45fe,46 -34b45ff,69 -34b4600,72 -34b4601,65 -34b4608,5 -34b4609,d0 -34b460a,57 -34b460b,61 -34b460c,74 -34b460d,65 -34b460e,72 -34b4614,7 -34b4615,d0 -34b4616,53 -34b4617,68 -34b4618,61 -34b4619,64 -34b461a,6f -34b461b,77 -34b4620,6 -34b4621,d0 -34b4622,53 -34b4623,70 -34b4624,69 -34b4625,72 -34b4626,69 -34b4627,74 -34b462c,8 -34b462d,90 -34b462e,42 -34b462f,6f -34b4630,74 -34b4631,57 -34b4638,9 -34b4639,10 -34b463a,49 -34b463b,63 -34b463c,65 -34b4644,c -34b4645,a0 -34b4646,47 -34b4647,65 -34b4648,72 -34b4649,75 -34b464a,64 -34b464b,6f -34b4650,b -34b4651,80 -34b4652,47 -34b4653,54 -34b4654,47 -34b465c,d -34b465d,c0 -34b465e,47 -34b465f,61 -34b4660,6e -34b4661,6f -34b4662,6e -34b466d,8 -34b466f,e -34b4671,5f -34b4672,3 -34b4673,1 -34b4674,1 -34b467d,18 -34b467f,18 -34b4681,14 -34b4683,3 -34b4684,4 -34b468d,20 -34b468f,20 -34b4691,5a -34b4693,3 -34b4694,4 -34b469d,10 -34b469f,10 -34b46a1,6 -34b46a2,3 -34b46a3,1 -34b46a4,1 -34b46ad,10 -34b46af,10 -34b46b1,3 -34b46b3,3 -34b46b4,4 -34b46bb,1 -34b46bd,3 -34b46bf,6 -34b46c1,7 -34b46c3,9 -34b46c5,b -34b46c7,e -34b46c9,f -34b46cb,10 -34b46cd,11 -34b46cf,19 -34b46d1,1a -34b46d3,2b -34b46d5,2c -34b46d7,2e -34b46d9,30 -34b46db,32 -34b46dd,35 -34b46df,3c -34b46e1,40 -34b46e3,41 -34b46e5,46 -34b46e7,51 -34b46e9,54 -34b46ea,1 -34b46eb,9 -34b46ec,1 -34b46ed,b -34b46ee,1 -34b46ef,c -34b46f0,1 -34b46f1,e -34b46f2,1 -34b46f3,f -34b46f4,1 -34b46f5,10 -34b46f6,1 -34b46f7,13 -34b46fb,1 -34b46ff,d -34b4700,80 -34b4701,40 -34b4702,66 -34b4703,88 -34b4704,80 -34b4705,40 -34b4706,66 -34b4707,78 -34b4789,d -34b478a,b0 -34b478d,d -34b478e,b0 -34b4791,d -34b4792,b0 -34b4795,c -34b4796,b0 -34b4799,c -34b479a,b0 -34b479d,c -34b479e,a0 -34b47a5,d -34b47a6,b0 -34b47a9,d -34b47aa,b0 -34b47c1,e8 -34b47c2,ac -34b47c5,e8 -34b47c6,ac -34b47c9,e8 -34b47ca,ac -34b47cd,e8 -34b47ce,ac -34b47f5,d -34b47f6,77 -34b47f7,d0 -34b47f9,2e -34b47fa,3a -34b47fb,b0 -34b47fd,7d -34b47fe,c -34b47ff,90 -34b4800,8f -34b4801,ff -34b4802,ff -34b4803,fd -34b4805,c9 -34b4806,6e -34b4808,2 -34b4809,e4 -34b480a,ac -34b480c,ef -34b480d,ff -34b480e,ff -34b480f,f4 -34b4810,a -34b4811,b0 -34b4812,e5 -34b4814,c -34b4815,95 -34b4816,e0 -34b4818,e -34b4819,59 -34b481a,c0 -34b4831,7 -34b4832,90 -34b4834,5 -34b4835,ce -34b4836,eb -34b4837,40 -34b4838,c -34b4839,c8 -34b483a,a9 -34b483b,90 -34b483c,d -34b483d,a7 -34b483e,90 -34b4840,8 -34b4841,ec -34b4842,b4 -34b4845,4a -34b4846,dd -34b4847,a0 -34b4849,7 -34b484a,97 -34b484b,e2 -34b484c,c -34b484d,88 -34b484e,aa -34b484f,e0 -34b4850,6 -34b4851,ce -34b4852,ed -34b4853,70 -34b4855,7 -34b4856,90 -34b4859,7 -34b485a,90 -34b4868,6d -34b4869,ea -34b486c,c9 -34b486d,4d -34b486e,60 -34b4870,c9 -34b4871,4d -34b4872,60 -34b4873,33 -34b4874,6d -34b4875,eb -34b4876,6b -34b4877,c6 -34b4879,8c -34b487a,b6 -34b487c,7c -34b487d,a4 -34b487e,ce -34b487f,c4 -34b4880,31 -34b4881,9 -34b4882,c3 -34b4883,bb -34b4885,9 -34b4886,c3 -34b4887,bb -34b4889,2 -34b488a,ce -34b488b,d4 -34b48a0,4 -34b48a1,ce -34b48a2,fb -34b48a4,a -34b48a5,d5 -34b48a8,8 -34b48a9,e3 -34b48ac,9 -34b48ad,ec -34b48b0,7e -34b48b1,4d -34b48b2,b0 -34b48b3,ab -34b48b4,bb -34b48b5,5 -34b48b6,e8 -34b48b7,aa -34b48b8,bc -34b48ba,8e -34b48bb,d6 -34b48bc,7e -34b48bd,93 -34b48be,6e -34b48bf,d0 -34b48c0,8 -34b48c1,de -34b48c2,d9 -34b48c3,ea -34b48d9,c -34b48da,a0 -34b48dd,c -34b48de,a0 -34b48e1,c -34b48e2,a0 -34b48e5,c -34b48e6,a0 -34b490a,c9 -34b490d,7 -34b490e,e2 -34b4911,c -34b4912,b0 -34b4915,e -34b4916,80 -34b4919,6f -34b491a,30 -34b491d,8e -34b4921,8e -34b4925,6f -34b4926,40 -34b4929,e -34b492a,80 -34b492d,c -34b492e,b0 -34b4931,7 -34b4932,e2 -34b4936,c9 -34b4941,bb -34b4945,5e -34b4946,40 -34b4949,c -34b494a,a0 -34b494d,a -34b494e,d0 -34b4951,7 -34b4952,e1 -34b4955,6 -34b4956,f4 -34b4959,6 -34b495a,f4 -34b495d,7 -34b495e,e1 -34b4961,a -34b4962,d0 -34b4965,c -34b4966,a0 -34b4969,5e -34b496a,40 -34b496d,bb -34b4981,a -34b4982,80 -34b4984,c -34b4985,8a -34b4986,8a -34b4987,b0 -34b4988,3 -34b4989,be -34b498a,da -34b498b,10 -34b498c,3 -34b498d,be -34b498e,da -34b498f,10 -34b4990,c -34b4991,8a -34b4992,8a -34b4993,b0 -34b4995,a -34b4996,80 -34b49bd,c -34b49be,a0 -34b49c1,c -34b49c2,a0 -34b49c5,c -34b49c6,a0 -34b49c8,af -34b49c9,ff -34b49ca,ff -34b49cb,f8 -34b49cd,c -34b49ce,a0 -34b49d1,c -34b49d2,a0 -34b49d5,c -34b49d6,a0 -34b4a0d,d -34b4a0e,d0 -34b4a11,e -34b4a12,c0 -34b4a15,4f -34b4a16,80 -34b4a19,9d -34b4a3d,df -34b4a3e,fb -34b4a7d,e -34b4a7e,c0 -34b4a81,e -34b4a82,c0 -34b4a9a,b -34b4a9b,c0 -34b4a9e,4e -34b4a9f,60 -34b4aa2,bc -34b4aa5,3 -34b4aa6,e8 -34b4aa9,a -34b4aaa,d0 -34b4aad,1e -34b4aae,90 -34b4ab1,9e -34b4ab2,20 -34b4ab5,da -34b4ab8,7 -34b4ab9,e3 -34b4abc,c -34b4abd,b0 -34b4ac0,6e -34b4ac1,50 -34b4ad0,3 -34b4ad1,ce -34b4ad2,eb -34b4ad4,b -34b4ad5,d5 -34b4ad6,7e +34b45e6,1 +34b45e7,13 +34b45ed,8 +34b45ef,e +34b45f1,5f +34b45f2,3 +34b45f3,1 +34b45f4,1 +34b45fd,18 +34b45ff,18 +34b4601,14 +34b4603,3 +34b4604,4 +34b460d,20 +34b460f,20 +34b4611,5a +34b4613,3 +34b4614,4 +34b461d,10 +34b461f,10 +34b4621,6 +34b4622,3 +34b4623,1 +34b4624,1 +34b462d,10 +34b462f,10 +34b4631,3 +34b4633,3 +34b4634,4 +34b4639,1 +34b463a,2 +34b463b,3 +34b463c,4 +34b463d,5 +34b463e,6 +34b463f,7 +34b4640,ff +34b4641,ff +34b4642,ff +34b4643,ff +34b4644,ff +34b4645,ff +34b4649,ff +34b464b,ff +34b464c,3c +34b464f,64 +34b4650,ff +34b4651,ff +34b4652,82 +34b4654,c8 +34b4655,32 +34b4656,ff +34b4657,c8 +34b4658,c8 +34b465d,10 +34b465e,44 +34b465f,65 +34b4660,6b +34b4661,75 +34b4668,1 +34b4669,10 +34b466a,44 +34b466b,6f +34b466c,64 +34b466d,6f +34b466e,6e +34b466f,67 +34b4670,6f +34b4674,2 +34b4675,10 +34b4676,4a +34b4677,61 +34b4678,62 +34b4679,75 +34b4680,3 +34b4681,d0 +34b4682,46 +34b4683,6f +34b4684,72 +34b4685,65 +34b4686,73 +34b4687,74 +34b468c,4 +34b468d,d0 +34b468e,46 +34b468f,69 +34b4690,72 +34b4691,65 +34b4698,5 +34b4699,d0 +34b469a,57 +34b469b,61 +34b469c,74 +34b469d,65 +34b469e,72 +34b46a4,7 +34b46a5,d0 +34b46a6,53 +34b46a7,68 +34b46a8,61 +34b46a9,64 +34b46aa,6f +34b46ab,77 +34b46b0,6 +34b46b1,d0 +34b46b2,53 +34b46b3,70 +34b46b4,69 +34b46b5,72 +34b46b6,69 +34b46b7,74 +34b46bc,8 +34b46bd,90 +34b46be,42 +34b46bf,6f +34b46c0,74 +34b46c1,57 +34b46c8,9 +34b46c9,10 +34b46ca,49 +34b46cb,63 +34b46cc,65 +34b46d4,c +34b46d5,a0 +34b46d6,47 +34b46d7,65 +34b46d8,72 +34b46d9,75 +34b46da,64 +34b46db,6f +34b46e0,b +34b46e1,80 +34b46e2,47 +34b46e3,54 +34b46e4,47 +34b46ec,d +34b46ed,c0 +34b46ee,47 +34b46ef,61 +34b46f0,6e +34b46f1,6f +34b46f2,6e +34b46f8,80 +34b46f9,40 +34b46fa,66 +34b46fb,8 +34b46fc,80 +34b46fd,40 +34b46fe,65 +34b46ff,f8 +34b4703,1 +34b4707,d +34b4787,d +34b4788,b0 +34b478b,d +34b478c,b0 +34b478f,d +34b4790,b0 +34b4793,c +34b4794,b0 +34b4797,c +34b4798,b0 +34b479b,c +34b479c,a0 +34b47a3,d +34b47a4,b0 +34b47a7,d +34b47a8,b0 +34b47bf,e8 +34b47c0,ac +34b47c3,e8 +34b47c4,ac +34b47c7,e8 +34b47c8,ac +34b47cb,e8 +34b47cc,ac +34b47f3,d +34b47f4,77 +34b47f5,d0 +34b47f7,2e +34b47f8,3a +34b47f9,b0 +34b47fb,7d +34b47fc,c +34b47fd,90 +34b47fe,8f +34b47ff,ff +34b4800,ff +34b4801,fd +34b4803,c9 +34b4804,6e +34b4806,2 +34b4807,e4 +34b4808,ac +34b480a,ef +34b480b,ff +34b480c,ff +34b480d,f4 +34b480e,a +34b480f,b0 +34b4810,e5 +34b4812,c +34b4813,95 +34b4814,e0 +34b4816,e +34b4817,59 +34b4818,c0 +34b482f,7 +34b4830,90 +34b4832,5 +34b4833,ce +34b4834,eb +34b4835,40 +34b4836,c +34b4837,c8 +34b4838,a9 +34b4839,90 +34b483a,d +34b483b,a7 +34b483c,90 +34b483e,8 +34b483f,ec +34b4840,b4 +34b4843,4a +34b4844,dd +34b4845,a0 +34b4847,7 +34b4848,97 +34b4849,e2 +34b484a,c +34b484b,88 +34b484c,aa +34b484d,e0 +34b484e,6 +34b484f,ce +34b4850,ed +34b4851,70 +34b4853,7 +34b4854,90 +34b4857,7 +34b4858,90 +34b4866,6d +34b4867,ea +34b486a,c9 +34b486b,4d +34b486c,60 +34b486e,c9 +34b486f,4d +34b4870,60 +34b4871,33 +34b4872,6d +34b4873,eb +34b4874,6b +34b4875,c6 +34b4877,8c +34b4878,b6 +34b487a,7c +34b487b,a4 +34b487c,ce +34b487d,c4 +34b487e,31 +34b487f,9 +34b4880,c3 +34b4881,bb +34b4883,9 +34b4884,c3 +34b4885,bb +34b4887,2 +34b4888,ce +34b4889,d4 +34b489e,4 +34b489f,ce +34b48a0,fb +34b48a2,a +34b48a3,d5 +34b48a6,8 +34b48a7,e3 +34b48aa,9 +34b48ab,ec +34b48ae,7e +34b48af,4d +34b48b0,b0 +34b48b1,ab +34b48b2,bb +34b48b3,5 +34b48b4,e8 +34b48b5,aa +34b48b6,bc +34b48b8,8e +34b48b9,d6 +34b48ba,7e +34b48bb,93 +34b48bc,6e +34b48bd,d0 +34b48be,8 +34b48bf,de +34b48c0,d9 +34b48c1,ea +34b48d7,c +34b48d8,a0 +34b48db,c +34b48dc,a0 +34b48df,c +34b48e0,a0 +34b48e3,c +34b48e4,a0 +34b4908,c9 +34b490b,7 +34b490c,e2 +34b490f,c +34b4910,b0 +34b4913,e +34b4914,80 +34b4917,6f +34b4918,30 +34b491b,8e +34b491f,8e +34b4923,6f +34b4924,40 +34b4927,e +34b4928,80 +34b492b,c +34b492c,b0 +34b492f,7 +34b4930,e2 +34b4934,c9 +34b493f,bb +34b4943,5e +34b4944,40 +34b4947,c +34b4948,a0 +34b494b,a +34b494c,d0 +34b494f,7 +34b4950,e1 +34b4953,6 +34b4954,f4 +34b4957,6 +34b4958,f4 +34b495b,7 +34b495c,e1 +34b495f,a +34b4960,d0 +34b4963,c +34b4964,a0 +34b4967,5e +34b4968,40 +34b496b,bb +34b497f,a +34b4980,80 +34b4982,c +34b4983,8a +34b4984,8a +34b4985,b0 +34b4986,3 +34b4987,be +34b4988,da +34b4989,10 +34b498a,3 +34b498b,be +34b498c,da +34b498d,10 +34b498e,c +34b498f,8a +34b4990,8a +34b4991,b0 +34b4993,a +34b4994,80 +34b49bb,c +34b49bc,a0 +34b49bf,c +34b49c0,a0 +34b49c3,c +34b49c4,a0 +34b49c6,af +34b49c7,ff +34b49c8,ff +34b49c9,f8 +34b49cb,c +34b49cc,a0 +34b49cf,c +34b49d0,a0 +34b49d3,c +34b49d4,a0 +34b4a0b,d +34b4a0c,d0 +34b4a0f,e +34b4a10,c0 +34b4a13,4f +34b4a14,80 +34b4a17,9d +34b4a3b,df +34b4a3c,fb +34b4a7b,e +34b4a7c,c0 +34b4a7f,e +34b4a80,c0 +34b4a98,b +34b4a99,c0 +34b4a9c,4e +34b4a9d,60 +34b4aa0,bc +34b4aa3,3 +34b4aa4,e8 +34b4aa7,a +34b4aa8,d0 +34b4aab,1e +34b4aac,90 +34b4aaf,9e +34b4ab0,20 +34b4ab3,da +34b4ab6,7 +34b4ab7,e3 +34b4aba,c +34b4abb,b0 +34b4abe,6e +34b4abf,50 +34b4ace,3 +34b4acf,ce +34b4ad0,eb +34b4ad2,b +34b4ad3,d5 +34b4ad4,7e +34b4ad5,90 +34b4ad6,e 34b4ad7,90 -34b4ad8,e -34b4ad9,90 -34b4ada,b -34b4adb,d0 -34b4adc,5f -34b4add,70 -34b4ade,9 -34b4adf,e0 -34b4ae0,6f -34b4ae1,6c -34b4ae2,b9 -34b4ae3,e0 -34b4ae4,5f -34b4ae5,70 -34b4ae6,9 -34b4ae7,e0 -34b4ae8,e -34b4ae9,90 +34b4ad8,b +34b4ad9,d0 +34b4ada,5f +34b4adb,70 +34b4adc,9 +34b4add,e0 +34b4ade,6f +34b4adf,6c +34b4ae0,b9 +34b4ae1,e0 +34b4ae2,5f +34b4ae3,70 +34b4ae4,9 +34b4ae5,e0 +34b4ae6,e +34b4ae7,90 +34b4ae8,b +34b4ae9,d0 34b4aea,b -34b4aeb,d0 -34b4aec,b -34b4aed,d5 -34b4aee,7e -34b4aef,90 -34b4af0,3 -34b4af1,ce -34b4af2,eb -34b4b08,a -34b4b09,ff -34b4b0a,e0 -34b4b0d,8 -34b4b0e,e0 -34b4b11,8 -34b4b12,e0 -34b4b15,8 -34b4b16,e0 -34b4b19,8 -34b4b1a,e0 -34b4b1d,8 -34b4b1e,e0 -34b4b21,8 -34b4b22,e0 -34b4b25,8 -34b4b26,e0 -34b4b28,8 -34b4b29,ff -34b4b2a,ff -34b4b2b,e0 -34b4b40,8 -34b4b41,de -34b4b42,ea -34b4b44,c -34b4b45,83 -34b4b46,7e -34b4b47,90 -34b4b4a,c -34b4b4b,c0 -34b4b4e,2e -34b4b4f,a0 -34b4b52,bd -34b4b53,20 -34b4b55,b -34b4b56,d4 -34b4b59,bd -34b4b5a,40 -34b4b5c,b -34b4b5d,d4 -34b4b60,2f -34b4b61,ff -34b4b62,ff -34b4b63,d0 -34b4b78,7 -34b4b79,ce -34b4b7a,ea -34b4b7c,c -34b4b7d,83 -34b4b7e,7e -34b4b7f,90 -34b4b82,c -34b4b83,b0 -34b4b85,2 -34b4b86,7e -34b4b87,90 -34b4b89,bf -34b4b8a,fb -34b4b8d,2 -34b4b8e,7d -34b4b8f,a0 -34b4b92,a -34b4b93,d0 -34b4b94,5c -34b4b95,62 -34b4b96,7d -34b4b97,b0 -34b4b98,9 -34b4b99,de -34b4b9a,eb -34b4b9b,30 -34b4bb1,2 -34b4bb2,de -34b4bb5,b -34b4bb6,de -34b4bb9,7d -34b4bba,9e -34b4bbc,2 -34b4bbd,d7 -34b4bbe,9e -34b4bc0,b -34b4bc1,b0 -34b4bc2,9e -34b4bc4,6e -34b4bc5,40 -34b4bc6,9e -34b4bc8,9f -34b4bc9,ff -34b4bca,ff -34b4bcb,f7 -34b4bce,9e -34b4bd2,9e -34b4be8,c -34b4be9,ff -34b4bea,ff -34b4beb,50 -34b4bec,c -34b4bed,a0 -34b4bf0,c -34b4bf1,a0 -34b4bf4,c -34b4bf5,ee -34b4bf6,ea -34b4bf9,3 -34b4bfa,8e -34b4bfb,90 -34b4bfe,b -34b4bff,c0 -34b4c02,b -34b4c03,c0 -34b4c04,5c -34b4c05,63 -34b4c06,8e -34b4c07,90 -34b4c08,9 -34b4c09,de -34b4c0a,da -34b4c21,ae -34b4c22,ec -34b4c23,30 -34b4c24,a -34b4c25,e8 -34b4c26,39 -34b4c27,80 -34b4c28,e -34b4c29,90 -34b4c2c,4f -34b4c2d,ae -34b4c2e,ec -34b4c2f,40 -34b4c30,6f -34b4c31,d5 -34b4c32,5d -34b4c33,c0 -34b4c34,5f -34b4c35,90 -34b4c36,9 -34b4c37,e0 -34b4c38,e -34b4c39,90 -34b4c3a,9 -34b4c3b,e0 -34b4c3c,c -34b4c3d,d5 -34b4c3e,5d -34b4c3f,c0 -34b4c40,3 -34b4c41,ce -34b4c42,ec -34b4c43,40 -34b4c58,5f -34b4c59,ff -34b4c5a,ff -34b4c5b,d0 -34b4c5e,d -34b4c5f,a0 -34b4c62,7e -34b4c63,40 -34b4c66,cc -34b4c69,4 -34b4c6a,e8 -34b4c6d,a -34b4c6e,d0 -34b4c71,d -34b4c72,a0 -34b4c75,8e -34b4c76,40 -34b4c79,cc -34b4c90,5 -34b4c91,ce -34b4c92,ec -34b4c93,30 -34b4c94,d -34b4c95,c4 -34b4c96,5d -34b4c97,b0 -34b4c98,e -34b4c99,90 +34b4aeb,d5 +34b4aec,7e +34b4aed,90 +34b4aee,3 +34b4aef,ce +34b4af0,eb +34b4b06,a +34b4b07,ff +34b4b08,e0 +34b4b0b,8 +34b4b0c,e0 +34b4b0f,8 +34b4b10,e0 +34b4b13,8 +34b4b14,e0 +34b4b17,8 +34b4b18,e0 +34b4b1b,8 +34b4b1c,e0 +34b4b1f,8 +34b4b20,e0 +34b4b23,8 +34b4b24,e0 +34b4b26,8 +34b4b27,ff +34b4b28,ff +34b4b29,e0 +34b4b3e,8 +34b4b3f,de +34b4b40,ea +34b4b42,c +34b4b43,83 +34b4b44,7e +34b4b45,90 +34b4b48,c +34b4b49,c0 +34b4b4c,2e +34b4b4d,a0 +34b4b50,bd +34b4b51,20 +34b4b53,b +34b4b54,d4 +34b4b57,bd +34b4b58,40 +34b4b5a,b +34b4b5b,d4 +34b4b5e,2f +34b4b5f,ff +34b4b60,ff +34b4b61,d0 +34b4b76,7 +34b4b77,ce +34b4b78,ea +34b4b7a,c +34b4b7b,83 +34b4b7c,7e +34b4b7d,90 +34b4b80,c +34b4b81,b0 +34b4b83,2 +34b4b84,7e +34b4b85,90 +34b4b87,bf +34b4b88,fb +34b4b8b,2 +34b4b8c,7d +34b4b8d,a0 +34b4b90,a +34b4b91,d0 +34b4b92,5c +34b4b93,62 +34b4b94,7d +34b4b95,b0 +34b4b96,9 +34b4b97,de +34b4b98,eb +34b4b99,30 +34b4baf,2 +34b4bb0,de +34b4bb3,b +34b4bb4,de +34b4bb7,7d +34b4bb8,9e +34b4bba,2 +34b4bbb,d7 +34b4bbc,9e +34b4bbe,b +34b4bbf,b0 +34b4bc0,9e +34b4bc2,6e +34b4bc3,40 +34b4bc4,9e +34b4bc6,9f +34b4bc7,ff +34b4bc8,ff +34b4bc9,f7 +34b4bcc,9e +34b4bd0,9e +34b4be6,c +34b4be7,ff +34b4be8,ff +34b4be9,50 +34b4bea,c +34b4beb,a0 +34b4bee,c +34b4bef,a0 +34b4bf2,c +34b4bf3,ee +34b4bf4,ea +34b4bf7,3 +34b4bf8,8e +34b4bf9,90 +34b4bfc,b +34b4bfd,c0 +34b4c00,b +34b4c01,c0 +34b4c02,5c +34b4c03,63 +34b4c04,8e +34b4c05,90 +34b4c06,9 +34b4c07,de +34b4c08,da +34b4c1f,ae +34b4c20,ec +34b4c21,30 +34b4c22,a +34b4c23,e8 +34b4c24,39 +34b4c25,80 +34b4c26,e +34b4c27,90 +34b4c2a,4f +34b4c2b,ae +34b4c2c,ec +34b4c2d,40 +34b4c2e,6f +34b4c2f,d5 +34b4c30,5d +34b4c31,c0 +34b4c32,5f +34b4c33,90 +34b4c34,9 +34b4c35,e0 +34b4c36,e +34b4c37,90 +34b4c38,9 +34b4c39,e0 +34b4c3a,c +34b4c3b,d5 +34b4c3c,5d +34b4c3d,c0 +34b4c3e,3 +34b4c3f,ce +34b4c40,ec +34b4c41,40 +34b4c56,5f +34b4c57,ff +34b4c58,ff +34b4c59,d0 +34b4c5c,d +34b4c5d,a0 +34b4c60,7e +34b4c61,40 +34b4c64,cc +34b4c67,4 +34b4c68,e8 +34b4c6b,a +34b4c6c,d0 +34b4c6f,d +34b4c70,a0 +34b4c73,8e +34b4c74,40 +34b4c77,cc +34b4c8e,5 +34b4c8f,ce +34b4c90,ec +34b4c91,30 +34b4c92,d +34b4c93,c4 +34b4c94,5d +34b4c95,b0 +34b4c96,e +34b4c97,90 +34b4c98,b +34b4c99,d0 34b4c9a,b -34b4c9b,d0 -34b4c9c,b -34b4c9d,c4 -34b4c9e,5d -34b4c9f,90 -34b4ca0,4 -34b4ca1,df -34b4ca2,fc -34b4ca3,20 -34b4ca4,1d -34b4ca5,b4 -34b4ca6,5c -34b4ca7,c0 -34b4ca8,5f -34b4ca9,60 -34b4caa,9 -34b4cab,e0 -34b4cac,2e -34b4cad,b3 -34b4cae,5c -34b4caf,d0 -34b4cb0,7 -34b4cb1,de -34b4cb2,ec -34b4cb3,50 -34b4cc8,6 -34b4cc9,de -34b4cca,eb -34b4ccc,d -34b4ccd,b3 -34b4cce,7e -34b4ccf,90 -34b4cd0,5f -34b4cd1,50 -34b4cd2,b -34b4cd3,d0 -34b4cd4,5f -34b4cd5,50 -34b4cd6,b -34b4cd7,e0 -34b4cd8,d -34b4cd9,b3 -34b4cda,7e -34b4cdb,e0 -34b4cdc,6 -34b4cdd,de -34b4cde,db -34b4cdf,e0 -34b4ce2,b -34b4ce3,c0 -34b4ce4,9 -34b4ce5,74 -34b4ce6,9e -34b4ce7,70 -34b4ce8,5 -34b4ce9,de -34b4cea,d8 -34b4d09,e -34b4d0a,c0 -34b4d0d,e -34b4d0e,c0 -34b4d1d,e -34b4d1e,c0 -34b4d21,e -34b4d22,c0 -34b4d41,e -34b4d42,c0 -34b4d45,e -34b4d46,c0 -34b4d55,d -34b4d56,d0 -34b4d59,e -34b4d5a,c0 -34b4d5d,4f -34b4d5e,80 -34b4d61,9d -34b4d7a,29 -34b4d7b,c8 -34b4d7d,7b -34b4d7e,ed -34b4d7f,93 -34b4d80,8d -34b4d81,da -34b4d82,40 -34b4d84,8d -34b4d85,da -34b4d86,40 -34b4d89,7b -34b4d8a,ec -34b4d8b,93 -34b4d8e,29 -34b4d8f,c8 -34b4db4,af -34b4db5,ff -34b4db6,ff -34b4db7,f8 -34b4dc0,af -34b4dc1,ff -34b4dc2,ff -34b4dc3,f8 -34b4de8,ac -34b4de9,81 -34b4dec,4a -34b4ded,de -34b4dee,b6 -34b4df1,6 -34b4df2,ad -34b4df3,d6 -34b4df5,6 -34b4df6,ad -34b4df7,d6 -34b4df8,4a -34b4df9,de -34b4dfa,b6 -34b4dfc,ac -34b4dfd,81 -34b4e18,4 -34b4e19,be -34b4e1a,ec -34b4e1b,30 -34b4e1c,9 -34b4e1d,a4 -34b4e1e,6e -34b4e1f,a0 -34b4e22,1d -34b4e23,a0 -34b4e25,2 -34b4e26,cd -34b4e27,30 -34b4e29,c -34b4e2a,c1 -34b4e2d,e -34b4e2e,90 -34b4e35,e -34b4e36,90 -34b4e39,e -34b4e3a,90 -34b4e50,1 -34b4e51,ae -34b4e52,ed -34b4e53,70 -34b4e54,c -34b4e55,d7 -34b4e56,39 -34b4e57,e4 -34b4e58,7e -34b4e59,20 -34b4e5b,c9 -34b4e5c,ba -34b4e5d,a -34b4e5e,ee -34b4e5f,ca -34b4e60,d7 -34b4e61,6e -34b4e62,64 -34b4e63,da -34b4e64,d6 -34b4e65,9c -34b4e67,aa -34b4e68,d7 -34b4e69,6e -34b4e6a,64 -34b4e6b,da -34b4e6c,ba -34b4e6d,a -34b4e6e,ee -34b4e6f,ca -34b4e70,6e -34b4e71,40 -34b4e74,a -34b4e75,d8 -34b4e76,30 -34b4e79,8d -34b4e7a,ee -34b4e7b,90 -34b4e89,3e -34b4e8a,d0 -34b4e8d,9d -34b4e8e,e6 -34b4e91,cb -34b4e92,cb -34b4e94,3 -34b4e95,e8 -34b4e96,ad -34b4e98,8 -34b4e99,e2 -34b4e9a,6f -34b4e9b,60 -34b4e9c,c -34b4e9d,c0 -34b4e9e,e -34b4e9f,a0 -34b4ea0,2e -34b4ea1,ff -34b4ea2,ff -34b4ea3,d0 -34b4ea4,8e -34b4ea5,50 -34b4ea6,8 -34b4ea7,f5 -34b4ea8,cd -34b4eaa,1 -34b4eab,ea -34b4ec0,e -34b4ec1,ff -34b4ec2,ec -34b4ec3,40 -34b4ec4,e -34b4ec5,90 -34b4ec6,5d -34b4ec7,c0 -34b4ec8,e -34b4ec9,90 -34b4eca,a -34b4ecb,e0 -34b4ecc,e -34b4ecd,90 -34b4ece,5d -34b4ecf,c0 -34b4ed0,e -34b4ed1,ff -34b4ed2,fd -34b4ed3,50 -34b4ed4,e -34b4ed5,90 -34b4ed6,4b -34b4ed7,d2 -34b4ed8,e -34b4ed9,90 -34b4eda,5 -34b4edb,f6 -34b4edc,e -34b4edd,90 -34b4ede,4b -34b4edf,e3 -34b4ee0,e -34b4ee1,ff -34b4ee2,ed -34b4ee3,80 -34b4ef9,9d -34b4efa,ed -34b4efb,80 -34b4efc,8 -34b4efd,e9 -34b4efe,36 +34b4c9b,c4 +34b4c9c,5d +34b4c9d,90 +34b4c9e,4 +34b4c9f,df +34b4ca0,fc +34b4ca1,20 +34b4ca2,1d +34b4ca3,b4 +34b4ca4,5c +34b4ca5,c0 +34b4ca6,5f +34b4ca7,60 +34b4ca8,9 +34b4ca9,e0 +34b4caa,2e +34b4cab,b3 +34b4cac,5c +34b4cad,d0 +34b4cae,7 +34b4caf,de +34b4cb0,ec +34b4cb1,50 +34b4cc6,6 +34b4cc7,de +34b4cc8,eb +34b4cca,d +34b4ccb,b3 +34b4ccc,7e +34b4ccd,90 +34b4cce,5f +34b4ccf,50 +34b4cd0,b +34b4cd1,d0 +34b4cd2,5f +34b4cd3,50 +34b4cd4,b +34b4cd5,e0 +34b4cd6,d +34b4cd7,b3 +34b4cd8,7e +34b4cd9,e0 +34b4cda,6 +34b4cdb,de +34b4cdc,db +34b4cdd,e0 +34b4ce0,b +34b4ce1,c0 +34b4ce2,9 +34b4ce3,74 +34b4ce4,9e +34b4ce5,70 +34b4ce6,5 +34b4ce7,de +34b4ce8,d8 +34b4d07,e +34b4d08,c0 +34b4d0b,e +34b4d0c,c0 +34b4d1b,e +34b4d1c,c0 +34b4d1f,e +34b4d20,c0 +34b4d3f,e +34b4d40,c0 +34b4d43,e +34b4d44,c0 +34b4d53,d +34b4d54,d0 +34b4d57,e +34b4d58,c0 +34b4d5b,4f +34b4d5c,80 +34b4d5f,9d +34b4d78,29 +34b4d79,c8 +34b4d7b,7b +34b4d7c,ed +34b4d7d,93 +34b4d7e,8d +34b4d7f,da +34b4d80,40 +34b4d82,8d +34b4d83,da +34b4d84,40 +34b4d87,7b +34b4d88,ec +34b4d89,93 +34b4d8c,29 +34b4d8d,c8 +34b4db2,af +34b4db3,ff +34b4db4,ff +34b4db5,f8 +34b4dbe,af +34b4dbf,ff +34b4dc0,ff +34b4dc1,f8 +34b4de6,ac +34b4de7,81 +34b4dea,4a +34b4deb,de +34b4dec,b6 +34b4def,6 +34b4df0,ad +34b4df1,d6 +34b4df3,6 +34b4df4,ad +34b4df5,d6 +34b4df6,4a +34b4df7,de +34b4df8,b6 +34b4dfa,ac +34b4dfb,81 +34b4e16,4 +34b4e17,be +34b4e18,ec +34b4e19,30 +34b4e1a,9 +34b4e1b,a4 +34b4e1c,6e +34b4e1d,a0 +34b4e20,1d +34b4e21,a0 +34b4e23,2 +34b4e24,cd +34b4e25,30 +34b4e27,c +34b4e28,c1 +34b4e2b,e +34b4e2c,90 +34b4e33,e +34b4e34,90 +34b4e37,e +34b4e38,90 +34b4e4e,1 +34b4e4f,ae +34b4e50,ed +34b4e51,70 +34b4e52,c +34b4e53,d7 +34b4e54,39 +34b4e55,e4 +34b4e56,7e +34b4e57,20 +34b4e59,c9 +34b4e5a,ba +34b4e5b,a +34b4e5c,ee +34b4e5d,ca +34b4e5e,d7 +34b4e5f,6e +34b4e60,64 +34b4e61,da +34b4e62,d6 +34b4e63,9c +34b4e65,aa +34b4e66,d7 +34b4e67,6e +34b4e68,64 +34b4e69,da +34b4e6a,ba +34b4e6b,a +34b4e6c,ee +34b4e6d,ca +34b4e6e,6e +34b4e6f,40 +34b4e72,a +34b4e73,d8 +34b4e74,30 +34b4e77,8d +34b4e78,ee +34b4e79,90 +34b4e87,3e +34b4e88,d0 +34b4e8b,9d +34b4e8c,e6 +34b4e8f,cb +34b4e90,cb +34b4e92,3 +34b4e93,e8 +34b4e94,ad +34b4e96,8 +34b4e97,e2 +34b4e98,6f +34b4e99,60 +34b4e9a,c +34b4e9b,c0 +34b4e9c,e +34b4e9d,a0 +34b4e9e,2e +34b4e9f,ff +34b4ea0,ff +34b4ea1,d0 +34b4ea2,8e +34b4ea3,50 +34b4ea4,8 +34b4ea5,f5 +34b4ea6,cd +34b4ea8,1 +34b4ea9,ea +34b4ebe,e +34b4ebf,ff +34b4ec0,ec +34b4ec1,40 +34b4ec2,e +34b4ec3,90 +34b4ec4,5d +34b4ec5,c0 +34b4ec6,e +34b4ec7,90 +34b4ec8,a +34b4ec9,e0 +34b4eca,e +34b4ecb,90 +34b4ecc,5d +34b4ecd,c0 +34b4ece,e +34b4ecf,ff +34b4ed0,fd +34b4ed1,50 +34b4ed2,e +34b4ed3,90 +34b4ed4,4b +34b4ed5,d2 +34b4ed6,e +34b4ed7,90 +34b4ed8,5 +34b4ed9,f6 +34b4eda,e +34b4edb,90 +34b4edc,4b +34b4edd,e3 +34b4ede,e +34b4edf,ff +34b4ee0,ed +34b4ee1,80 +34b4ef7,9d +34b4ef8,ed +34b4ef9,80 +34b4efa,8 +34b4efb,e9 +34b4efc,36 +34b4efd,b0 +34b4efe,d 34b4eff,b0 -34b4f00,d -34b4f01,b0 -34b4f04,3f -34b4f05,90 -34b4f08,5f -34b4f09,70 -34b4f0c,1e -34b4f0d,90 -34b4f10,d -34b4f11,b0 -34b4f14,8 -34b4f15,e9 -34b4f16,47 -34b4f17,b0 -34b4f19,9d -34b4f1a,ed -34b4f1b,80 -34b4f30,5f -34b4f31,fe -34b4f32,d8 -34b4f34,5f -34b4f35,65 -34b4f36,ae -34b4f37,80 -34b4f38,5f -34b4f39,60 -34b4f3a,c -34b4f3b,d0 -34b4f3c,5f -34b4f3d,60 -34b4f3e,9 -34b4f3f,e0 -34b4f40,5f -34b4f41,60 -34b4f42,9 -34b4f43,f0 -34b4f44,5f -34b4f45,60 -34b4f46,9 -34b4f47,e0 -34b4f48,5f -34b4f49,60 -34b4f4a,c -34b4f4b,d0 -34b4f4c,5f -34b4f4d,65 -34b4f4e,ae -34b4f4f,80 -34b4f50,5f -34b4f51,fe -34b4f52,d8 -34b4f68,d -34b4f69,ff -34b4f6a,ff -34b4f6b,e0 -34b4f6c,d -34b4f6d,b0 -34b4f70,d -34b4f71,b0 -34b4f74,d -34b4f75,b0 -34b4f78,d -34b4f79,ff -34b4f7a,ff -34b4f7b,c0 -34b4f7c,d -34b4f7d,b0 -34b4f80,d -34b4f81,b0 -34b4f84,d -34b4f85,b0 -34b4f88,d -34b4f89,ff -34b4f8a,ff -34b4f8b,f0 -34b4fa0,b -34b4fa1,ff -34b4fa2,ff -34b4fa3,f4 -34b4fa4,b -34b4fa5,d0 -34b4fa8,b -34b4fa9,d0 -34b4fac,b -34b4fad,d0 -34b4fb0,b -34b4fb1,ff -34b4fb2,ff -34b4fb3,c0 -34b4fb4,b -34b4fb5,d0 -34b4fb8,b -34b4fb9,d0 -34b4fbc,b -34b4fbd,d0 -34b4fc0,b -34b4fc1,d0 -34b4fd8,1 -34b4fd9,ae -34b4fda,ed -34b4fdb,60 -34b4fdc,b -34b4fdd,e7 -34b4fde,38 -34b4fdf,a0 -34b4fe0,4e -34b4fe1,90 -34b4fe4,8f -34b4fe5,40 -34b4fe8,9f -34b4fe9,10 -34b4fea,bf -34b4feb,f2 -34b4fec,7f -34b4fed,40 -34b4fee,7 -34b4fef,f2 -34b4ff0,4e -34b4ff1,90 -34b4ff2,7 -34b4ff3,f2 -34b4ff4,b -34b4ff5,e7 -34b4ff6,39 -34b4ff7,f2 -34b4ff8,1 -34b4ff9,be -34b4ffa,ed -34b4ffb,90 -34b5010,5f -34b5011,60 -34b5012,9 -34b5013,e0 -34b5014,5f -34b5015,60 -34b5016,9 -34b5017,e0 -34b5018,5f -34b5019,60 -34b501a,9 -34b501b,e0 -34b501c,5f -34b501d,60 -34b501e,9 -34b501f,e0 -34b5020,5f -34b5021,ff -34b5022,ff -34b5023,e0 -34b5024,5f -34b5025,60 -34b5026,9 -34b5027,e0 -34b5028,5f -34b5029,60 -34b502a,9 -34b502b,e0 -34b502c,5f -34b502d,60 -34b502e,9 -34b502f,e0 -34b5030,5f -34b5031,60 -34b5032,9 -34b5033,e0 -34b5048,d -34b5049,ff -34b504a,ff -34b504b,b0 -34b504d,d -34b504e,b0 -34b5051,d -34b5052,b0 -34b5055,d -34b5056,b0 -34b5059,d -34b505a,b0 -34b505d,d -34b505e,b0 -34b5061,d -34b5062,b0 -34b5065,d -34b5066,b0 -34b5068,d -34b5069,ff -34b506a,ff -34b506b,b0 -34b5081,cf -34b5082,ff -34b5083,40 -34b5086,7f -34b5087,40 -34b508a,7f -34b508b,40 -34b508e,7f -34b508f,40 -34b5092,7f -34b5093,40 -34b5096,7f -34b5097,30 -34b5098,75 -34b509a,9e -34b509c,8d -34b509d,64 -34b509e,dc -34b50a0,2b -34b50a1,ee -34b50a2,c5 -34b50b8,5f -34b50b9,60 -34b50ba,9 -34b50bb,e7 -34b50bc,5f -34b50bd,60 -34b50be,9e -34b50bf,70 -34b50c0,5f -34b50c1,69 -34b50c2,e7 -34b50c4,5f -34b50c5,be -34b50c6,80 -34b50c8,5f -34b50c9,ed -34b50ca,b0 -34b50cc,5f -34b50cd,87 -34b50ce,e8 -34b50d0,5f -34b50d1,60 -34b50d2,ae -34b50d3,40 -34b50d4,5f -34b50d5,60 -34b50d6,1d -34b50d7,c0 -34b50d8,5f -34b50d9,60 -34b50da,6 -34b50db,ea -34b50f0,c -34b50f1,c0 -34b50f4,c -34b50f5,c0 -34b50f8,c -34b50f9,c0 -34b50fc,c -34b50fd,c0 -34b5100,c -34b5101,c0 -34b5104,c -34b5105,c0 -34b5108,c -34b5109,c0 -34b510c,c -34b510d,c0 -34b5110,c -34b5111,ff -34b5112,ff -34b5113,f7 -34b5128,af -34b5129,a0 -34b512a,c -34b512b,f8 -34b512c,ae -34b512d,d0 -34b512e,2e -34b512f,e8 -34b5130,ad -34b5131,d5 -34b5132,9b -34b5133,e8 -34b5134,ad -34b5135,aa -34b5136,c8 -34b5137,e8 -34b5138,ad -34b5139,5d -34b513a,e1 -34b513b,e8 -34b513c,ad -34b513d,d -34b513e,b0 -34b513f,e8 -34b5140,ad -34b5143,e8 -34b5144,ad -34b5147,e8 -34b5148,ad -34b514b,e8 -34b5160,5f -34b5161,c0 -34b5162,8 -34b5163,e0 -34b5164,5f -34b5165,e6 -34b5166,8 -34b5167,e0 -34b5168,5f -34b5169,cb -34b516a,8 -34b516b,e0 -34b516c,5f -34b516d,7e -34b516e,48 -34b516f,e0 -34b5170,5f -34b5171,5c -34b5172,a8 -34b5173,e0 -34b5174,5f -34b5175,57 -34b5176,e8 -34b5177,e0 -34b5178,5f -34b5179,50 -34b517a,dc -34b517b,e0 -34b517c,5f -34b517d,50 -34b517e,9e -34b517f,e0 -34b5180,5f -34b5181,50 -34b5182,2e -34b5183,e0 -34b5198,4 -34b5199,ce -34b519a,eb -34b519b,20 -34b519c,c -34b519d,d5 -34b519e,6e -34b519f,a0 -34b51a0,3e -34b51a1,80 -34b51a2,a -34b51a3,e0 -34b51a4,7f -34b51a5,50 -34b51a6,8 -34b51a7,f2 -34b51a8,7f -34b51a9,40 -34b51aa,8 -34b51ab,f4 -34b51ac,7f -34b51ad,50 -34b51ae,8 -34b51af,f2 -34b51b0,3e -34b51b1,80 -34b51b2,a -34b51b3,e0 -34b51b4,c -34b51b5,d5 -34b51b6,6e -34b51b7,b0 -34b51b8,4 -34b51b9,ce -34b51ba,eb -34b51bb,20 -34b51d0,d -34b51d1,ff -34b51d2,ed -34b51d3,60 -34b51d4,d -34b51d5,b0 -34b51d6,5c -34b51d7,e2 -34b51d8,d -34b51d9,b0 -34b51da,6 -34b51db,f6 -34b51dc,d -34b51dd,b0 -34b51de,6 -34b51df,f6 -34b51e0,d -34b51e1,b0 -34b51e2,5c -34b51e3,e2 -34b51e4,d -34b51e5,ff -34b51e6,ed -34b51e7,60 -34b51e8,d -34b51e9,b0 -34b51ec,d -34b51ed,b0 -34b51f0,d -34b51f1,b0 -34b5208,4 -34b5209,ce -34b520a,eb -34b520b,20 -34b520c,c -34b520d,d5 -34b520e,6e -34b520f,a0 -34b5210,3e -34b5211,80 -34b5212,a -34b5213,e0 -34b5214,7f -34b5215,50 -34b5216,8 -34b5217,f2 -34b5218,7f -34b5219,40 -34b521a,8 -34b521b,f4 -34b521c,7f -34b521d,50 -34b521e,8 -34b521f,f1 -34b5220,3e -34b5221,80 -34b5222,a -34b5223,d0 -34b5224,c -34b5225,d5 -34b5226,6e -34b5227,a0 -34b5228,4 -34b5229,ce -34b522a,fc -34b522b,20 -34b522e,ae -34b522f,50 -34b5232,c -34b5233,80 -34b5240,5f -34b5241,fe -34b5242,eb -34b5243,20 -34b5244,5f -34b5245,71 -34b5246,7e -34b5247,b0 -34b5248,5f -34b5249,70 -34b524a,c -34b524b,d0 -34b524c,5f -34b524d,71 -34b524e,6e -34b524f,a0 -34b5250,5f -34b5251,ff -34b5252,ea -34b5254,5f -34b5255,72 -34b5256,ae -34b5257,40 -34b5258,5f -34b5259,70 -34b525a,d -34b525b,b0 -34b525c,5f -34b525d,70 -34b525e,8 -34b525f,e5 -34b5260,5f -34b5261,70 -34b5263,db -34b5278,6 -34b5279,ce -34b527a,eb -34b527b,30 -34b527c,d -34b527d,c4 -34b527e,5a -34b527f,90 -34b5280,4f -34b5281,60 -34b5284,e -34b5285,c6 -34b5288,5 -34b5289,ce -34b528a,eb -34b528b,40 -34b528e,6c -34b528f,c0 -34b5292,8 -34b5293,e0 -34b5294,c -34b5295,73 -34b5296,5c -34b5297,d0 -34b5298,8 -34b5299,de -34b529a,ec -34b529b,50 -34b52b0,cf -34b52b1,ff -34b52b2,ff -34b52b3,fb -34b52b5,d -34b52b6,b0 -34b52b9,d -34b52ba,b0 -34b52bd,d -34b52be,b0 -34b52c1,d -34b52c2,b0 -34b52c5,d -34b52c6,b0 -34b52c9,d -34b52ca,b0 -34b52cd,d -34b52ce,b0 -34b52d1,d -34b52d2,b0 -34b52e8,4f -34b52e9,70 -34b52ea,9 -34b52eb,e0 -34b52ec,4f -34b52ed,70 -34b52ee,9 -34b52ef,e0 -34b52f0,4f -34b52f1,70 -34b52f2,9 -34b52f3,e0 -34b52f4,4f -34b52f5,70 -34b52f6,9 -34b52f7,e0 -34b52f8,4f -34b52f9,70 -34b52fa,9 -34b52fb,e0 -34b52fc,3f -34b52fd,70 -34b52fe,9 -34b52ff,e0 -34b5300,2e -34b5301,70 -34b5302,a -34b5303,d0 -34b5304,d -34b5305,c4 -34b5306,5d -34b5307,c0 -34b5308,5 -34b5309,ce -34b530a,ec -34b530b,40 -34b5320,ad -34b5322,3 -34b5323,e8 -34b5324,6f -34b5325,50 -34b5326,8 -34b5327,e3 -34b5328,e -34b5329,90 +34b4f02,3f +34b4f03,90 +34b4f06,5f +34b4f07,70 +34b4f0a,1e +34b4f0b,90 +34b4f0e,d +34b4f0f,b0 +34b4f12,8 +34b4f13,e9 +34b4f14,47 +34b4f15,b0 +34b4f17,9d +34b4f18,ed +34b4f19,80 +34b4f2e,5f +34b4f2f,fe +34b4f30,d8 +34b4f32,5f +34b4f33,65 +34b4f34,ae +34b4f35,80 +34b4f36,5f +34b4f37,60 +34b4f38,c +34b4f39,d0 +34b4f3a,5f +34b4f3b,60 +34b4f3c,9 +34b4f3d,e0 +34b4f3e,5f +34b4f3f,60 +34b4f40,9 +34b4f41,f0 +34b4f42,5f +34b4f43,60 +34b4f44,9 +34b4f45,e0 +34b4f46,5f +34b4f47,60 +34b4f48,c +34b4f49,d0 +34b4f4a,5f +34b4f4b,65 +34b4f4c,ae +34b4f4d,80 +34b4f4e,5f +34b4f4f,fe +34b4f50,d8 +34b4f66,d +34b4f67,ff +34b4f68,ff +34b4f69,e0 +34b4f6a,d +34b4f6b,b0 +34b4f6e,d +34b4f6f,b0 +34b4f72,d +34b4f73,b0 +34b4f76,d +34b4f77,ff +34b4f78,ff +34b4f79,c0 +34b4f7a,d +34b4f7b,b0 +34b4f7e,d +34b4f7f,b0 +34b4f82,d +34b4f83,b0 +34b4f86,d +34b4f87,ff +34b4f88,ff +34b4f89,f0 +34b4f9e,b +34b4f9f,ff +34b4fa0,ff +34b4fa1,f4 +34b4fa2,b +34b4fa3,d0 +34b4fa6,b +34b4fa7,d0 +34b4faa,b +34b4fab,d0 +34b4fae,b +34b4faf,ff +34b4fb0,ff +34b4fb1,c0 +34b4fb2,b +34b4fb3,d0 +34b4fb6,b +34b4fb7,d0 +34b4fba,b +34b4fbb,d0 +34b4fbe,b +34b4fbf,d0 +34b4fd6,1 +34b4fd7,ae +34b4fd8,ed +34b4fd9,60 +34b4fda,b +34b4fdb,e7 +34b4fdc,38 +34b4fdd,a0 +34b4fde,4e +34b4fdf,90 +34b4fe2,8f +34b4fe3,40 +34b4fe6,9f +34b4fe7,10 +34b4fe8,bf +34b4fe9,f2 +34b4fea,7f +34b4feb,40 +34b4fec,7 +34b4fed,f2 +34b4fee,4e +34b4fef,90 +34b4ff0,7 +34b4ff1,f2 +34b4ff2,b +34b4ff3,e7 +34b4ff4,39 +34b4ff5,f2 +34b4ff6,1 +34b4ff7,be +34b4ff8,ed +34b4ff9,90 +34b500e,5f +34b500f,60 +34b5010,9 +34b5011,e0 +34b5012,5f +34b5013,60 +34b5014,9 +34b5015,e0 +34b5016,5f +34b5017,60 +34b5018,9 +34b5019,e0 +34b501a,5f +34b501b,60 +34b501c,9 +34b501d,e0 +34b501e,5f +34b501f,ff +34b5020,ff +34b5021,e0 +34b5022,5f +34b5023,60 +34b5024,9 +34b5025,e0 +34b5026,5f +34b5027,60 +34b5028,9 +34b5029,e0 +34b502a,5f +34b502b,60 +34b502c,9 +34b502d,e0 +34b502e,5f +34b502f,60 +34b5030,9 +34b5031,e0 +34b5046,d +34b5047,ff +34b5048,ff +34b5049,b0 +34b504b,d +34b504c,b0 +34b504f,d +34b5050,b0 +34b5053,d +34b5054,b0 +34b5057,d +34b5058,b0 +34b505b,d +34b505c,b0 +34b505f,d +34b5060,b0 +34b5063,d +34b5064,b0 +34b5066,d +34b5067,ff +34b5068,ff +34b5069,b0 +34b507f,cf +34b5080,ff +34b5081,40 +34b5084,7f +34b5085,40 +34b5088,7f +34b5089,40 +34b508c,7f +34b508d,40 +34b5090,7f +34b5091,40 +34b5094,7f +34b5095,30 +34b5096,75 +34b5098,9e +34b509a,8d +34b509b,64 +34b509c,dc +34b509e,2b +34b509f,ee +34b50a0,c5 +34b50b6,5f +34b50b7,60 +34b50b8,9 +34b50b9,e7 +34b50ba,5f +34b50bb,60 +34b50bc,9e +34b50bd,70 +34b50be,5f +34b50bf,69 +34b50c0,e7 +34b50c2,5f +34b50c3,be +34b50c4,80 +34b50c6,5f +34b50c7,ed +34b50c8,b0 +34b50ca,5f +34b50cb,87 +34b50cc,e8 +34b50ce,5f +34b50cf,60 +34b50d0,ae +34b50d1,40 +34b50d2,5f +34b50d3,60 +34b50d4,1d +34b50d5,c0 +34b50d6,5f +34b50d7,60 +34b50d8,6 +34b50d9,ea +34b50ee,c +34b50ef,c0 +34b50f2,c +34b50f3,c0 +34b50f6,c +34b50f7,c0 +34b50fa,c +34b50fb,c0 +34b50fe,c +34b50ff,c0 +34b5102,c +34b5103,c0 +34b5106,c +34b5107,c0 +34b510a,c +34b510b,c0 +34b510e,c +34b510f,ff +34b5110,ff +34b5111,f7 +34b5126,af +34b5127,a0 +34b5128,c +34b5129,f8 +34b512a,ae +34b512b,d0 +34b512c,2e +34b512d,e8 +34b512e,ad +34b512f,d5 +34b5130,9b +34b5131,e8 +34b5132,ad +34b5133,aa +34b5134,c8 +34b5135,e8 +34b5136,ad +34b5137,5d +34b5138,e1 +34b5139,e8 +34b513a,ad +34b513b,d +34b513c,b0 +34b513d,e8 +34b513e,ad +34b5141,e8 +34b5142,ad +34b5145,e8 +34b5146,ad +34b5149,e8 +34b515e,5f +34b515f,c0 +34b5160,8 +34b5161,e0 +34b5162,5f +34b5163,e6 +34b5164,8 +34b5165,e0 +34b5166,5f +34b5167,cb +34b5168,8 +34b5169,e0 +34b516a,5f +34b516b,7e +34b516c,48 +34b516d,e0 +34b516e,5f +34b516f,5c +34b5170,a8 +34b5171,e0 +34b5172,5f +34b5173,57 +34b5174,e8 +34b5175,e0 +34b5176,5f +34b5177,50 +34b5178,dc +34b5179,e0 +34b517a,5f +34b517b,50 +34b517c,9e +34b517d,e0 +34b517e,5f +34b517f,50 +34b5180,2e +34b5181,e0 +34b5196,4 +34b5197,ce +34b5198,eb +34b5199,20 +34b519a,c +34b519b,d5 +34b519c,6e +34b519d,a0 +34b519e,3e +34b519f,80 +34b51a0,a +34b51a1,e0 +34b51a2,7f +34b51a3,50 +34b51a4,8 +34b51a5,f2 +34b51a6,7f +34b51a7,40 +34b51a8,8 +34b51a9,f4 +34b51aa,7f +34b51ab,50 +34b51ac,8 +34b51ad,f2 +34b51ae,3e +34b51af,80 +34b51b0,a +34b51b1,e0 +34b51b2,c +34b51b3,d5 +34b51b4,6e +34b51b5,b0 +34b51b6,4 +34b51b7,ce +34b51b8,eb +34b51b9,20 +34b51ce,d +34b51cf,ff +34b51d0,ed +34b51d1,60 +34b51d2,d +34b51d3,b0 +34b51d4,5c +34b51d5,e2 +34b51d6,d +34b51d7,b0 +34b51d8,6 +34b51d9,f6 +34b51da,d +34b51db,b0 +34b51dc,6 +34b51dd,f6 +34b51de,d +34b51df,b0 +34b51e0,5c +34b51e1,e2 +34b51e2,d +34b51e3,ff +34b51e4,ed +34b51e5,60 +34b51e6,d +34b51e7,b0 +34b51ea,d +34b51eb,b0 +34b51ee,d +34b51ef,b0 +34b5206,4 +34b5207,ce +34b5208,eb +34b5209,20 +34b520a,c +34b520b,d5 +34b520c,6e +34b520d,a0 +34b520e,3e +34b520f,80 +34b5210,a +34b5211,e0 +34b5212,7f +34b5213,50 +34b5214,8 +34b5215,f2 +34b5216,7f +34b5217,40 +34b5218,8 +34b5219,f4 +34b521a,7f +34b521b,50 +34b521c,8 +34b521d,f1 +34b521e,3e +34b521f,80 +34b5220,a +34b5221,d0 +34b5222,c +34b5223,d5 +34b5224,6e +34b5225,a0 +34b5226,4 +34b5227,ce +34b5228,fc +34b5229,20 +34b522c,ae +34b522d,50 +34b5230,c +34b5231,80 +34b523e,5f +34b523f,fe +34b5240,eb +34b5241,20 +34b5242,5f +34b5243,71 +34b5244,7e +34b5245,b0 +34b5246,5f +34b5247,70 +34b5248,c +34b5249,d0 +34b524a,5f +34b524b,71 +34b524c,6e +34b524d,a0 +34b524e,5f +34b524f,ff +34b5250,ea +34b5252,5f +34b5253,72 +34b5254,ae +34b5255,40 +34b5256,5f +34b5257,70 +34b5258,d +34b5259,b0 +34b525a,5f +34b525b,70 +34b525c,8 +34b525d,e5 +34b525e,5f +34b525f,70 +34b5261,db +34b5276,6 +34b5277,ce +34b5278,eb +34b5279,30 +34b527a,d +34b527b,c4 +34b527c,5a +34b527d,90 +34b527e,4f +34b527f,60 +34b5282,e +34b5283,c6 +34b5286,5 +34b5287,ce +34b5288,eb +34b5289,40 +34b528c,6c +34b528d,c0 +34b5290,8 +34b5291,e0 +34b5292,c +34b5293,73 +34b5294,5c +34b5295,d0 +34b5296,8 +34b5297,de +34b5298,ec +34b5299,50 +34b52ae,cf +34b52af,ff +34b52b0,ff +34b52b1,fb +34b52b3,d +34b52b4,b0 +34b52b7,d +34b52b8,b0 +34b52bb,d +34b52bc,b0 +34b52bf,d +34b52c0,b0 +34b52c3,d +34b52c4,b0 +34b52c7,d +34b52c8,b0 +34b52cb,d +34b52cc,b0 +34b52cf,d +34b52d0,b0 +34b52e6,4f +34b52e7,70 +34b52e8,9 +34b52e9,e0 +34b52ea,4f +34b52eb,70 +34b52ec,9 +34b52ed,e0 +34b52ee,4f +34b52ef,70 +34b52f0,9 +34b52f1,e0 +34b52f2,4f +34b52f3,70 +34b52f4,9 +34b52f5,e0 +34b52f6,4f +34b52f7,70 +34b52f8,9 +34b52f9,e0 +34b52fa,3f +34b52fb,70 +34b52fc,9 +34b52fd,e0 +34b52fe,2e +34b52ff,70 +34b5300,a +34b5301,d0 +34b5302,d +34b5303,c4 +34b5304,5d +34b5305,c0 +34b5306,5 +34b5307,ce +34b5308,ec +34b5309,40 +34b531e,ad +34b5320,3 +34b5321,e8 +34b5322,6f +34b5323,50 +34b5324,8 +34b5325,e3 +34b5326,e +34b5327,90 +34b5328,b +34b5329,c0 34b532a,b 34b532b,c0 -34b532c,b -34b532d,c0 -34b532e,d -34b532f,90 -34b5330,8 -34b5331,e1 -34b5332,5e -34b5333,40 -34b5334,2 -34b5335,e7 -34b5336,ad -34b5339,cb -34b533a,ca -34b533d,9d -34b533e,e6 -34b5341,3e -34b5342,d0 -34b5358,e8 -34b535b,ad -34b535c,da -34b535f,cb -34b5360,cb -34b5363,da -34b5364,ac -34b5365,e -34b5366,c0 -34b5367,e8 -34b5368,8d -34b5369,6d -34b536a,e1 -34b536b,e5 -34b536c,6e -34b536d,9b -34b536e,d8 -34b536f,e0 -34b5370,1e -34b5371,c8 -34b5372,ac -34b5373,d0 -34b5374,d -34b5375,e3 -34b5376,7e -34b5377,c0 -34b5378,c -34b5379,d0 -34b537a,e -34b537b,a0 -34b5390,6e -34b5391,70 -34b5392,7 -34b5393,e7 -34b5394,a -34b5395,d2 -34b5396,1d -34b5397,b0 -34b5398,2 -34b5399,da -34b539a,ad -34b539b,20 -34b539d,7e -34b539e,e7 -34b53a1,3e -34b53a2,e2 -34b53a5,bd -34b53a6,da -34b53a8,7 -34b53a9,e6 -34b53aa,7e -34b53ab,60 -34b53ac,3e -34b53ad,a0 -34b53ae,b -34b53af,d0 -34b53b0,bd -34b53b1,20 -34b53b2,4 -34b53b3,e9 -34b53c8,ae -34b53c9,20 -34b53ca,5 -34b53cb,e8 -34b53cc,2d -34b53cd,a0 -34b53ce,c -34b53cf,c0 -34b53d0,7 -34b53d1,e5 -34b53d2,7e -34b53d3,50 -34b53d5,cc -34b53d6,da -34b53d9,4e -34b53da,d2 -34b53dd,d -34b53de,b0 -34b53e1,d -34b53e2,b0 -34b53e5,d -34b53e6,b0 -34b53e9,d -34b53ea,b0 -34b5400,e -34b5401,ff -34b5402,ff -34b5403,f8 -34b5406,b -34b5407,d3 -34b540a,7e -34b540b,70 -34b540d,3 -34b540e,ea -34b5411,b -34b5412,d1 -34b5415,8e -34b5416,50 -34b5418,4 -34b5419,e9 -34b541c,c -34b541d,c0 -34b5420,1f -34b5421,ff -34b5422,ff -34b5423,fa -34b5431,4f -34b5432,fc -34b5435,4f -34b5436,50 -34b5439,4f -34b543a,50 -34b543d,4f -34b543e,50 -34b5441,4f -34b5442,50 -34b5445,4f -34b5446,50 -34b5449,4f -34b544a,50 -34b544d,4f -34b544e,50 -34b5451,4f -34b5452,50 -34b5455,4f -34b5456,50 -34b5459,4f -34b545a,50 -34b545d,4f -34b545e,fc -34b5470,6e -34b5471,50 -34b5474,c -34b5475,b0 -34b5478,7 -34b5479,e3 -34b547d,da -34b5481,9e -34b5482,20 -34b5485,1e -34b5486,90 -34b5489,a -34b548a,d0 -34b548d,3 -34b548e,e8 -34b5492,bc -34b5496,4e -34b5497,60 -34b549a,b -34b549b,c0 -34b54a1,df -34b54a2,e0 -34b54a5,8 -34b54a6,e0 -34b54a9,8 -34b54aa,e0 -34b54ad,8 -34b54ae,e0 -34b54b1,8 -34b54b2,e0 -34b54b5,8 -34b54b6,e0 -34b54b9,8 -34b54ba,e0 -34b54bd,8 -34b54be,e0 -34b54c1,8 -34b54c2,e0 -34b54c5,8 -34b54c6,e0 -34b54c9,8 -34b54ca,e0 -34b54cd,df -34b54ce,e0 -34b54e1,5e -34b54e2,d2 -34b54e5,dc -34b54e6,db -34b54e8,a -34b54e9,d2 -34b54ea,5e -34b54eb,80 -34b54ec,7e -34b54ed,50 -34b54ee,7 -34b54ef,e5 +34b532c,d +34b532d,90 +34b532e,8 +34b532f,e1 +34b5330,5e +34b5331,40 +34b5332,2 +34b5333,e7 +34b5334,ad +34b5337,cb +34b5338,ca +34b533b,9d +34b533c,e6 +34b533f,3e +34b5340,d0 +34b5356,e8 +34b5359,ad +34b535a,da +34b535d,cb +34b535e,cb +34b5361,da +34b5362,ac +34b5363,e +34b5364,c0 +34b5365,e8 +34b5366,8d +34b5367,6d +34b5368,e1 +34b5369,e5 +34b536a,6e +34b536b,9b +34b536c,d8 +34b536d,e0 +34b536e,1e +34b536f,c8 +34b5370,ac +34b5371,d0 +34b5372,d +34b5373,e3 +34b5374,7e +34b5375,c0 +34b5376,c +34b5377,d0 +34b5378,e +34b5379,a0 +34b538e,6e +34b538f,70 +34b5390,7 +34b5391,e7 +34b5392,a +34b5393,d2 +34b5394,1d +34b5395,b0 +34b5396,2 +34b5397,da +34b5398,ad +34b5399,20 +34b539b,7e +34b539c,e7 +34b539f,3e +34b53a0,e2 +34b53a3,bd +34b53a4,da +34b53a6,7 +34b53a7,e6 +34b53a8,7e +34b53a9,60 +34b53aa,3e +34b53ab,a0 +34b53ac,b +34b53ad,d0 +34b53ae,bd +34b53af,20 +34b53b0,4 +34b53b1,e9 +34b53c6,ae +34b53c7,20 +34b53c8,5 +34b53c9,e8 +34b53ca,2d +34b53cb,a0 +34b53cc,c +34b53cd,c0 +34b53ce,7 +34b53cf,e5 +34b53d0,7e +34b53d1,50 +34b53d3,cc +34b53d4,da +34b53d7,4e +34b53d8,d2 +34b53db,d +34b53dc,b0 +34b53df,d +34b53e0,b0 +34b53e3,d +34b53e4,b0 +34b53e7,d +34b53e8,b0 +34b53fe,e +34b53ff,ff +34b5400,ff +34b5401,f8 +34b5404,b +34b5405,d3 +34b5408,7e +34b5409,70 +34b540b,3 +34b540c,ea +34b540f,b +34b5410,d1 +34b5413,8e +34b5414,50 +34b5416,4 +34b5417,e9 +34b541a,c +34b541b,c0 +34b541e,1f +34b541f,ff +34b5420,ff +34b5421,fa +34b542f,4f +34b5430,fc +34b5433,4f +34b5434,50 +34b5437,4f +34b5438,50 +34b543b,4f +34b543c,50 +34b543f,4f +34b5440,50 +34b5443,4f +34b5444,50 +34b5447,4f +34b5448,50 +34b544b,4f +34b544c,50 +34b544f,4f +34b5450,50 +34b5453,4f +34b5454,50 +34b5457,4f +34b5458,50 +34b545b,4f +34b545c,fc +34b546e,6e +34b546f,50 +34b5472,c +34b5473,b0 +34b5476,7 +34b5477,e3 +34b547b,da +34b547f,9e +34b5480,20 +34b5483,1e +34b5484,90 +34b5487,a +34b5488,d0 +34b548b,3 +34b548c,e8 +34b5490,bc +34b5494,4e +34b5495,60 +34b5498,b +34b5499,c0 +34b549f,df +34b54a0,e0 +34b54a3,8 +34b54a4,e0 +34b54a7,8 +34b54a8,e0 +34b54ab,8 +34b54ac,e0 +34b54af,8 +34b54b0,e0 +34b54b3,8 +34b54b4,e0 +34b54b7,8 +34b54b8,e0 +34b54bb,8 +34b54bc,e0 +34b54bf,8 +34b54c0,e0 +34b54c3,8 +34b54c4,e0 +34b54c7,8 +34b54c8,e0 +34b54cb,df +34b54cc,e0 +34b54df,5e +34b54e0,d2 +34b54e3,dc +34b54e4,db +34b54e6,a +34b54e7,d2 +34b54e8,5e +34b54e9,80 +34b54ea,7e +34b54eb,50 +34b54ec,7 +34b54ed,e5 +34b5542,ff +34b5543,ff 34b5544,ff -34b5545,ff -34b5546,ff -34b5547,fd -34b554c,2 -34b554d,ca -34b5551,2c -34b5552,90 -34b5590,5 -34b5591,ce -34b5592,eb -34b5593,10 -34b5594,b -34b5595,93 -34b5596,6d -34b5597,a0 -34b559a,b -34b559b,c0 -34b559c,8 -34b559d,de -34b559e,ff -34b559f,c0 -34b55a0,3e -34b55a1,93 -34b55a2,b -34b55a3,d0 -34b55a4,4f -34b55a5,82 -34b55a6,7e -34b55a7,d0 -34b55a8,a -34b55a9,ee -34b55aa,db -34b55ab,d0 -34b55b8,d -34b55b9,90 -34b55bc,d -34b55bd,90 -34b55c0,d -34b55c1,90 -34b55c4,d -34b55c5,90 -34b55c8,d -34b55c9,bd -34b55ca,ec -34b55cb,40 -34b55cc,d -34b55cd,e6 -34b55ce,5d -34b55cf,c0 -34b55d0,d -34b55d1,b0 -34b55d2,8 -34b55d3,e0 -34b55d4,d -34b55d5,a0 -34b55d6,7 -34b55d7,f2 -34b55d8,d -34b55d9,b0 -34b55da,8 -34b55db,e0 -34b55dc,d -34b55dd,e6 -34b55de,4d -34b55df,b0 -34b55e0,d -34b55e1,bd -34b55e2,ec -34b55e3,40 -34b5601,8d -34b5602,ed -34b5603,70 -34b5604,7 -34b5605,e9 -34b5606,36 -34b5607,a0 -34b5608,c -34b5609,c0 -34b560c,d -34b560d,b0 -34b5610,c -34b5611,c0 -34b5614,7 -34b5615,e9 -34b5616,36 -34b5617,a0 -34b5619,8d -34b561a,ed -34b561b,70 -34b562a,b -34b562b,c0 -34b562e,b -34b562f,c0 -34b5632,b -34b5633,c0 -34b5636,b -34b5637,c0 -34b5638,5 -34b5639,de -34b563a,dc -34b563b,c0 -34b563c,d -34b563d,c4 -34b563e,8e -34b563f,c0 -34b5640,5f -34b5641,60 -34b5642,c -34b5643,c0 -34b5644,7f -34b5645,30 -34b5646,b -34b5647,c0 -34b5648,5f -34b5649,60 -34b564a,c -34b564b,c0 -34b564c,d -34b564d,c4 -34b564e,8e -34b564f,c0 -34b5650,5 -34b5651,de -34b5652,dc -34b5653,c0 -34b5670,3 -34b5671,be -34b5672,ec -34b5673,30 -34b5674,c -34b5675,d5 -34b5676,4c -34b5677,c0 -34b5678,4f -34b5679,60 -34b567a,7 -34b567b,e0 -34b567c,6f -34b567d,ff -34b567e,ff -34b567f,f3 -34b5680,4f -34b5681,50 -34b5684,c -34b5685,c5 -34b5686,38 -34b5687,c0 -34b5688,3 -34b5689,be -34b568a,ec -34b568b,60 -34b5699,5 -34b569a,de -34b569b,d0 -34b569d,c -34b569e,b2 -34b56a1,d -34b56a2,90 -34b56a5,e -34b56a6,80 -34b56a8,d -34b56a9,ff -34b56aa,ff -34b56ab,d0 -34b56ad,e -34b56ae,80 -34b56b1,e -34b56b2,80 -34b56b5,e -34b56b6,80 -34b56b9,e -34b56ba,80 -34b56bd,e -34b56be,80 -34b56c1,e -34b56c2,80 -34b56e0,5 -34b56e1,de -34b56e2,dc -34b56e3,c0 -34b56e4,d -34b56e5,c4 -34b56e6,8e -34b56e7,c0 -34b56e8,5f -34b56e9,60 -34b56ea,c -34b56eb,c0 -34b56ec,7f -34b56ed,30 -34b56ee,b -34b56ef,c0 -34b56f0,5f -34b56f1,60 -34b56f2,c -34b56f3,c0 -34b56f4,d -34b56f5,c4 -34b56f6,8e -34b56f7,c0 -34b56f8,5 -34b56f9,de -34b56fa,dc -34b56fb,b0 -34b56fe,c -34b56ff,a0 -34b5700,9 -34b5701,94 -34b5702,7e -34b5703,60 -34b5704,4 -34b5705,ce -34b5706,e9 -34b5708,d -34b5709,a0 -34b570c,d -34b570d,a0 -34b5710,d -34b5711,a0 -34b5714,d -34b5715,a0 -34b5718,d -34b5719,bd -34b571a,ed -34b571b,40 -34b571c,d -34b571d,e6 -34b571e,5d -34b571f,a0 -34b5720,d -34b5721,b0 -34b5722,b -34b5723,c0 -34b5724,d -34b5725,a0 -34b5726,b -34b5727,c0 -34b5728,d -34b5729,a0 -34b572a,b -34b572b,c0 -34b572c,d -34b572d,a0 -34b572e,b -34b572f,c0 -34b5730,d -34b5731,a0 -34b5732,b -34b5733,c0 -34b5741,b -34b5742,c0 -34b5750,9 -34b5751,ff -34b5752,c0 -34b5755,b -34b5756,c0 -34b5759,b -34b575a,c0 -34b575d,b -34b575e,c0 -34b5761,b -34b5762,c0 -34b5765,b -34b5766,c0 -34b5768,e -34b5769,ff -34b576a,ff -34b576b,e0 -34b5779,7 -34b577a,e0 -34b5788,7 -34b5789,ff -34b578a,e0 -34b578d,7 -34b578e,e0 -34b5791,7 -34b5792,e0 -34b5795,7 -34b5796,e0 -34b5799,7 -34b579a,e0 -34b579d,7 -34b579e,e0 -34b57a1,7 -34b57a2,e0 -34b57a5,7 -34b57a6,e0 -34b57a9,1b -34b57aa,d0 -34b57ac,d -34b57ad,fe -34b57ae,70 -34b57b0,b -34b57b1,c0 -34b57b4,b -34b57b5,c0 -34b57b8,b -34b57b9,c0 -34b57bc,b -34b57bd,c0 -34b57c0,b -34b57c1,c0 -34b57c2,3d -34b57c3,c2 -34b57c4,b -34b57c5,c3 -34b57c6,db -34b57c8,b -34b57c9,dd -34b57ca,c0 -34b57cc,b -34b57cd,fc -34b57ce,e5 -34b57d0,b -34b57d1,d0 -34b57d2,cd -34b57d3,10 -34b57d4,b -34b57d5,c0 -34b57d6,3d -34b57d7,b0 -34b57d8,b -34b57d9,c0 -34b57da,7 -34b57db,e8 -34b57e8,e -34b57e9,ff -34b57ea,40 -34b57ed,5f -34b57ee,40 -34b57f1,5f -34b57f2,40 -34b57f5,5f -34b57f6,40 -34b57f9,5f -34b57fa,40 -34b57fd,5f -34b57fe,40 -34b5801,5f -34b5802,40 -34b5805,5f -34b5806,40 -34b5809,4f -34b580a,50 -34b580d,e -34b580e,a0 -34b5811,8 -34b5812,ef -34b5813,b0 -34b5830,8d -34b5831,dd -34b5832,ae -34b5833,c0 -34b5834,8e -34b5835,4d -34b5836,c5 -34b5837,e4 -34b5838,8d -34b5839,c -34b583a,b0 -34b583b,e6 -34b583c,8d -34b583d,b -34b583e,a0 -34b583f,e7 -34b5840,8d -34b5841,b -34b5842,a0 -34b5843,e7 -34b5844,8d -34b5845,b -34b5846,a0 -34b5847,e7 -34b5848,8d -34b5849,b -34b584a,a0 -34b584b,e7 -34b5868,d -34b5869,bd -34b586a,ed -34b586b,40 -34b586c,d -34b586d,e6 -34b586e,5d -34b586f,a0 -34b5870,d -34b5871,b0 -34b5872,b -34b5873,c0 -34b5874,d -34b5875,a0 -34b5876,b -34b5877,c0 -34b5878,d -34b5879,a0 -34b587a,b -34b587b,c0 -34b587c,d -34b587d,a0 -34b587e,b -34b587f,c0 -34b5880,d -34b5881,a0 -34b5882,b -34b5883,c0 -34b58a0,4 -34b58a1,ce -34b58a2,eb -34b58a3,20 -34b58a4,c -34b58a5,d5 -34b58a6,6d -34b58a7,a0 -34b58a8,1e -34b58a9,70 -34b58aa,a -34b58ab,d0 -34b58ac,5f -34b58ad,60 -34b58ae,8 -34b58af,e0 -34b58b0,1e -34b58b1,70 -34b58b2,a -34b58b3,d0 -34b58b4,c -34b58b5,d4 -34b58b6,6d -34b58b7,b0 -34b58b8,4 -34b58b9,ce -34b58ba,eb -34b58bb,20 -34b58d8,d -34b58d9,bd -34b58da,ec -34b58db,30 -34b58dc,d -34b58dd,e6 -34b58de,5d +34b5545,fd +34b554a,2 +34b554b,ca +34b554f,2c +34b5550,90 +34b558e,5 +34b558f,ce +34b5590,eb +34b5591,10 +34b5592,b +34b5593,93 +34b5594,6d +34b5595,a0 +34b5598,b +34b5599,c0 +34b559a,8 +34b559b,de +34b559c,ff +34b559d,c0 +34b559e,3e +34b559f,93 +34b55a0,b +34b55a1,d0 +34b55a2,4f +34b55a3,82 +34b55a4,7e +34b55a5,d0 +34b55a6,a +34b55a7,ee +34b55a8,db +34b55a9,d0 +34b55b6,d +34b55b7,90 +34b55ba,d +34b55bb,90 +34b55be,d +34b55bf,90 +34b55c2,d +34b55c3,90 +34b55c6,d +34b55c7,bd +34b55c8,ec +34b55c9,40 +34b55ca,d +34b55cb,e6 +34b55cc,5d +34b55cd,c0 +34b55ce,d +34b55cf,b0 +34b55d0,8 +34b55d1,e0 +34b55d2,d +34b55d3,a0 +34b55d4,7 +34b55d5,f2 +34b55d6,d +34b55d7,b0 +34b55d8,8 +34b55d9,e0 +34b55da,d +34b55db,e6 +34b55dc,4d +34b55dd,b0 +34b55de,d +34b55df,bd +34b55e0,ec +34b55e1,40 +34b55ff,8d +34b5600,ed +34b5601,70 +34b5602,7 +34b5603,e9 +34b5604,36 +34b5605,a0 +34b5606,c +34b5607,c0 +34b560a,d +34b560b,b0 +34b560e,c +34b560f,c0 +34b5612,7 +34b5613,e9 +34b5614,36 +34b5615,a0 +34b5617,8d +34b5618,ed +34b5619,70 +34b5628,b +34b5629,c0 +34b562c,b +34b562d,c0 +34b5630,b +34b5631,c0 +34b5634,b +34b5635,c0 +34b5636,5 +34b5637,de +34b5638,dc +34b5639,c0 +34b563a,d +34b563b,c4 +34b563c,8e +34b563d,c0 +34b563e,5f +34b563f,60 +34b5640,c +34b5641,c0 +34b5642,7f +34b5643,30 +34b5644,b +34b5645,c0 +34b5646,5f +34b5647,60 +34b5648,c +34b5649,c0 +34b564a,d +34b564b,c4 +34b564c,8e +34b564d,c0 +34b564e,5 +34b564f,de +34b5650,dc +34b5651,c0 +34b566e,3 +34b566f,be +34b5670,ec +34b5671,30 +34b5672,c +34b5673,d5 +34b5674,4c +34b5675,c0 +34b5676,4f +34b5677,60 +34b5678,7 +34b5679,e0 +34b567a,6f +34b567b,ff +34b567c,ff +34b567d,f3 +34b567e,4f +34b567f,50 +34b5682,c +34b5683,c5 +34b5684,38 +34b5685,c0 +34b5686,3 +34b5687,be +34b5688,ec +34b5689,60 +34b5697,5 +34b5698,de +34b5699,d0 +34b569b,c +34b569c,b2 +34b569f,d +34b56a0,90 +34b56a3,e +34b56a4,80 +34b56a6,d +34b56a7,ff +34b56a8,ff +34b56a9,d0 +34b56ab,e +34b56ac,80 +34b56af,e +34b56b0,80 +34b56b3,e +34b56b4,80 +34b56b7,e +34b56b8,80 +34b56bb,e +34b56bc,80 +34b56bf,e +34b56c0,80 +34b56de,5 +34b56df,de +34b56e0,dc +34b56e1,c0 +34b56e2,d +34b56e3,c4 +34b56e4,8e +34b56e5,c0 +34b56e6,5f +34b56e7,60 +34b56e8,c +34b56e9,c0 +34b56ea,7f +34b56eb,30 +34b56ec,b +34b56ed,c0 +34b56ee,5f +34b56ef,60 +34b56f0,c +34b56f1,c0 +34b56f2,d +34b56f3,c4 +34b56f4,8e +34b56f5,c0 +34b56f6,5 +34b56f7,de +34b56f8,dc +34b56f9,b0 +34b56fc,c +34b56fd,a0 +34b56fe,9 +34b56ff,94 +34b5700,7e +34b5701,60 +34b5702,4 +34b5703,ce +34b5704,e9 +34b5706,d +34b5707,a0 +34b570a,d +34b570b,a0 +34b570e,d +34b570f,a0 +34b5712,d +34b5713,a0 +34b5716,d +34b5717,bd +34b5718,ed +34b5719,40 +34b571a,d +34b571b,e6 +34b571c,5d +34b571d,a0 +34b571e,d +34b571f,b0 +34b5720,b +34b5721,c0 +34b5722,d +34b5723,a0 +34b5724,b +34b5725,c0 +34b5726,d +34b5727,a0 +34b5728,b +34b5729,c0 +34b572a,d +34b572b,a0 +34b572c,b +34b572d,c0 +34b572e,d +34b572f,a0 +34b5730,b +34b5731,c0 +34b573f,b +34b5740,c0 +34b574e,9 +34b574f,ff +34b5750,c0 +34b5753,b +34b5754,c0 +34b5757,b +34b5758,c0 +34b575b,b +34b575c,c0 +34b575f,b +34b5760,c0 +34b5763,b +34b5764,c0 +34b5766,e +34b5767,ff +34b5768,ff +34b5769,e0 +34b5777,7 +34b5778,e0 +34b5786,7 +34b5787,ff +34b5788,e0 +34b578b,7 +34b578c,e0 +34b578f,7 +34b5790,e0 +34b5793,7 +34b5794,e0 +34b5797,7 +34b5798,e0 +34b579b,7 +34b579c,e0 +34b579f,7 +34b57a0,e0 +34b57a3,7 +34b57a4,e0 +34b57a7,1b +34b57a8,d0 +34b57aa,d +34b57ab,fe +34b57ac,70 +34b57ae,b +34b57af,c0 +34b57b2,b +34b57b3,c0 +34b57b6,b +34b57b7,c0 +34b57ba,b +34b57bb,c0 +34b57be,b +34b57bf,c0 +34b57c0,3d +34b57c1,c2 +34b57c2,b +34b57c3,c3 +34b57c4,db +34b57c6,b +34b57c7,dd +34b57c8,c0 +34b57ca,b +34b57cb,fc +34b57cc,e5 +34b57ce,b +34b57cf,d0 +34b57d0,cd +34b57d1,10 +34b57d2,b +34b57d3,c0 +34b57d4,3d +34b57d5,b0 +34b57d6,b +34b57d7,c0 +34b57d8,7 +34b57d9,e8 +34b57e6,e +34b57e7,ff +34b57e8,40 +34b57eb,5f +34b57ec,40 +34b57ef,5f +34b57f0,40 +34b57f3,5f +34b57f4,40 +34b57f7,5f +34b57f8,40 +34b57fb,5f +34b57fc,40 +34b57ff,5f +34b5800,40 +34b5803,5f +34b5804,40 +34b5807,4f +34b5808,50 +34b580b,e +34b580c,a0 +34b580f,8 +34b5810,ef +34b5811,b0 +34b582e,8d +34b582f,dd +34b5830,ae +34b5831,c0 +34b5832,8e +34b5833,4d +34b5834,c5 +34b5835,e4 +34b5836,8d +34b5837,c +34b5838,b0 +34b5839,e6 +34b583a,8d +34b583b,b +34b583c,a0 +34b583d,e7 +34b583e,8d +34b583f,b +34b5840,a0 +34b5841,e7 +34b5842,8d +34b5843,b +34b5844,a0 +34b5845,e7 +34b5846,8d +34b5847,b +34b5848,a0 +34b5849,e7 +34b5866,d +34b5867,bd +34b5868,ed +34b5869,40 +34b586a,d +34b586b,e6 +34b586c,5d +34b586d,a0 +34b586e,d +34b586f,b0 +34b5870,b +34b5871,c0 +34b5872,d +34b5873,a0 +34b5874,b +34b5875,c0 +34b5876,d +34b5877,a0 +34b5878,b +34b5879,c0 +34b587a,d +34b587b,a0 +34b587c,b +34b587d,c0 +34b587e,d +34b587f,a0 +34b5880,b +34b5881,c0 +34b589e,4 +34b589f,ce +34b58a0,eb +34b58a1,20 +34b58a2,c +34b58a3,d5 +34b58a4,6d +34b58a5,a0 +34b58a6,1e +34b58a7,70 +34b58a8,a +34b58a9,d0 +34b58aa,5f +34b58ab,60 +34b58ac,8 +34b58ad,e0 +34b58ae,1e +34b58af,70 +34b58b0,a +34b58b1,d0 +34b58b2,c +34b58b3,d4 +34b58b4,6d +34b58b5,b0 +34b58b6,4 +34b58b7,ce +34b58b8,eb +34b58b9,20 +34b58d6,d +34b58d7,bd +34b58d8,ec +34b58d9,30 +34b58da,d +34b58db,e6 +34b58dc,5d +34b58dd,b0 +34b58de,d 34b58df,b0 -34b58e0,d -34b58e1,b0 -34b58e2,9 -34b58e3,e0 -34b58e4,d -34b58e5,a0 -34b58e6,7 -34b58e7,e0 -34b58e8,d -34b58e9,b0 -34b58ea,8 -34b58eb,e0 -34b58ec,d -34b58ed,e6 -34b58ee,5d -34b58ef,b0 -34b58f0,d -34b58f1,be -34b58f2,ec -34b58f3,40 -34b58f4,d -34b58f5,90 -34b58f8,d -34b58f9,90 -34b58fc,d -34b58fd,90 -34b5910,4 -34b5911,ce -34b5912,dc -34b5913,c0 -34b5914,c -34b5915,c4 -34b5916,7e -34b5917,c0 -34b5918,1e -34b5919,70 -34b591a,c -34b591b,c0 -34b591c,5f -34b591d,60 -34b591e,b -34b591f,c0 -34b5920,2e -34b5921,70 +34b58e0,9 +34b58e1,e0 +34b58e2,d +34b58e3,a0 +34b58e4,7 +34b58e5,e0 +34b58e6,d +34b58e7,b0 +34b58e8,8 +34b58e9,e0 +34b58ea,d +34b58eb,e6 +34b58ec,5d +34b58ed,b0 +34b58ee,d +34b58ef,be +34b58f0,ec +34b58f1,40 +34b58f2,d +34b58f3,90 +34b58f6,d +34b58f7,90 +34b58fa,d +34b58fb,90 +34b590e,4 +34b590f,ce +34b5910,dc +34b5911,c0 +34b5912,c +34b5913,c4 +34b5914,7e +34b5915,c0 +34b5916,1e +34b5917,70 +34b5918,c +34b5919,c0 +34b591a,5f +34b591b,60 +34b591c,b +34b591d,c0 +34b591e,2e +34b591f,70 +34b5920,c +34b5921,c0 34b5922,c -34b5923,c0 -34b5924,c -34b5925,c4 -34b5926,7e -34b5927,c0 -34b5928,5 -34b5929,ce -34b592a,db -34b592b,c0 -34b592e,a -34b592f,c0 -34b5932,a -34b5933,c0 -34b5936,a -34b5937,c0 -34b5949,cc -34b594a,de -34b594b,f9 -34b594d,ce -34b594e,83 -34b5951,cb -34b5955,ca -34b5959,ca -34b595d,ca -34b5961,ca -34b5980,4 -34b5981,ce -34b5982,ea -34b5983,10 -34b5984,b -34b5985,d4 -34b5986,5b -34b5987,60 -34b5988,b -34b5989,d4 -34b598c,3 -34b598d,bd -34b598e,db -34b598f,20 -34b5992,4d -34b5993,a0 -34b5994,b -34b5995,94 -34b5996,5e -34b5997,a0 -34b5998,5 -34b5999,ce -34b599a,eb -34b599b,20 -34b59b1,8e -34b59b5,8e -34b59b8,6f -34b59b9,ff -34b59ba,ff -34b59bb,b0 -34b59bd,8e -34b59c1,8e -34b59c5,8e -34b59c9,8e -34b59cd,6e -34b59ce,70 -34b59d1,b -34b59d2,ef -34b59d3,b0 -34b59f0,d -34b59f1,a0 -34b59f2,b -34b59f3,c0 -34b59f4,d -34b59f5,a0 -34b59f6,b -34b59f7,c0 -34b59f8,d -34b59f9,a0 -34b59fa,b -34b59fb,c0 -34b59fc,d -34b59fd,a0 -34b59fe,b -34b59ff,c0 -34b5a00,d -34b5a01,a0 +34b5923,c4 +34b5924,7e +34b5925,c0 +34b5926,5 +34b5927,ce +34b5928,db +34b5929,c0 +34b592c,a +34b592d,c0 +34b5930,a +34b5931,c0 +34b5934,a +34b5935,c0 +34b5947,cc +34b5948,de +34b5949,f9 +34b594b,ce +34b594c,83 +34b594f,cb +34b5953,ca +34b5957,ca +34b595b,ca +34b595f,ca +34b597e,4 +34b597f,ce +34b5980,ea +34b5981,10 +34b5982,b +34b5983,d4 +34b5984,5b +34b5985,60 +34b5986,b +34b5987,d4 +34b598a,3 +34b598b,bd +34b598c,db +34b598d,20 +34b5990,4d +34b5991,a0 +34b5992,b +34b5993,94 +34b5994,5e +34b5995,a0 +34b5996,5 +34b5997,ce +34b5998,eb +34b5999,20 +34b59af,8e +34b59b3,8e +34b59b6,6f +34b59b7,ff +34b59b8,ff +34b59b9,b0 +34b59bb,8e +34b59bf,8e +34b59c3,8e +34b59c7,8e +34b59cb,6e +34b59cc,70 +34b59cf,b +34b59d0,ef +34b59d1,b0 +34b59ee,d +34b59ef,a0 +34b59f0,b +34b59f1,c0 +34b59f2,d +34b59f3,a0 +34b59f4,b +34b59f5,c0 +34b59f6,d +34b59f7,a0 +34b59f8,b +34b59f9,c0 +34b59fa,d +34b59fb,a0 +34b59fc,b +34b59fd,c0 +34b59fe,d +34b59ff,a0 +34b5a00,b +34b5a01,c0 34b5a02,b -34b5a03,c0 -34b5a04,b -34b5a05,d4 -34b5a06,7e -34b5a07,c0 -34b5a08,5 -34b5a09,de -34b5a0a,db -34b5a0b,c0 -34b5a28,6e -34b5a29,30 -34b5a2a,7 -34b5a2b,e3 -34b5a2c,d -34b5a2d,90 -34b5a2e,b -34b5a2f,c0 -34b5a30,a -34b5a31,d0 -34b5a32,1e -34b5a33,80 -34b5a34,5 -34b5a35,e4 -34b5a36,8e -34b5a37,20 -34b5a39,da -34b5a3a,cb -34b5a3d,9d -34b5a3e,e7 -34b5a41,3e -34b5a42,e0 -34b5a60,e8 -34b5a63,ac -34b5a64,ca -34b5a67,ca -34b5a68,ac -34b5a69,d -34b5a6a,b0 -34b5a6b,e7 -34b5a6c,6e -34b5a6d,3d -34b5a6e,d5 -34b5a6f,e2 -34b5a70,e -34b5a71,ab -34b5a72,ca -34b5a73,d0 -34b5a74,c -34b5a75,e7 -34b5a76,9e -34b5a77,b0 -34b5a78,a -34b5a79,e1 -34b5a7a,5f -34b5a7b,80 -34b5a98,3d -34b5a99,a0 -34b5a9a,b -34b5a9b,c0 -34b5a9c,6 -34b5a9d,e6 -34b5a9e,9e -34b5a9f,40 -34b5aa1,9e -34b5aa2,e7 -34b5aa5,2e -34b5aa6,d0 -34b5aa9,cc -34b5aaa,da -34b5aac,9 -34b5aad,e4 +34b5a03,d4 +34b5a04,7e +34b5a05,c0 +34b5a06,5 +34b5a07,de +34b5a08,db +34b5a09,c0 +34b5a26,6e +34b5a27,30 +34b5a28,7 +34b5a29,e3 +34b5a2a,d +34b5a2b,90 +34b5a2c,b +34b5a2d,c0 +34b5a2e,a +34b5a2f,d0 +34b5a30,1e +34b5a31,80 +34b5a32,5 +34b5a33,e4 +34b5a34,8e +34b5a35,20 +34b5a37,da +34b5a38,cb +34b5a3b,9d +34b5a3c,e7 +34b5a3f,3e +34b5a40,e0 +34b5a5e,e8 +34b5a61,ac +34b5a62,ca +34b5a65,ca +34b5a66,ac +34b5a67,d +34b5a68,b0 +34b5a69,e7 +34b5a6a,6e +34b5a6b,3d +34b5a6c,d5 +34b5a6d,e2 +34b5a6e,e +34b5a6f,ab +34b5a70,ca +34b5a71,d0 +34b5a72,c +34b5a73,e7 +34b5a74,9e +34b5a75,b0 +34b5a76,a +34b5a77,e1 +34b5a78,5f +34b5a79,80 +34b5a96,3d +34b5a97,a0 +34b5a98,b +34b5a99,c0 +34b5a9a,6 +34b5a9b,e6 +34b5a9c,9e +34b5a9d,40 +34b5a9f,9e +34b5aa0,e7 +34b5aa3,2e +34b5aa4,d0 +34b5aa7,cc +34b5aa8,da +34b5aaa,9 +34b5aab,e4 +34b5aac,6e +34b5aad,70 34b5aae,6e 34b5aaf,70 -34b5ab0,6e -34b5ab1,70 -34b5ab2,9 -34b5ab3,e4 -34b5ad0,6e -34b5ad1,50 -34b5ad2,5 -34b5ad3,e5 -34b5ad4,d -34b5ad5,a0 -34b5ad6,b -34b5ad7,d0 -34b5ad8,9 -34b5ad9,e0 -34b5ada,e -34b5adb,90 -34b5adc,3 -34b5add,e7 -34b5ade,8e -34b5adf,30 -34b5ae1,cc -34b5ae2,cc -34b5ae5,7e -34b5ae6,e7 -34b5ae9,d -34b5aea,e0 -34b5aed,d -34b5aee,a0 -34b5af1,8e -34b5af2,50 -34b5af4,d -34b5af5,ea -34b5b08,b -34b5b09,ff -34b5b0a,ff -34b5b0b,c0 -34b5b0e,5e -34b5b0f,70 -34b5b11,3 -34b5b12,d9 -34b5b15,c -34b5b16,b0 -34b5b19,bd -34b5b1a,20 -34b5b1c,9 -34b5b1d,e4 -34b5b20,d -34b5b21,ff -34b5b22,ff -34b5b23,c0 -34b5b31,6 -34b5b32,de -34b5b33,a0 -34b5b35,b -34b5b36,d3 -34b5b39,c -34b5b3a,b0 -34b5b3d,c -34b5b3e,b0 -34b5b41,5e -34b5b42,a0 -34b5b44,b -34b5b45,fd -34b5b46,20 -34b5b49,7e -34b5b4a,90 -34b5b4d,d -34b5b4e,b0 -34b5b51,c -34b5b52,b0 -34b5b55,c -34b5b56,b0 -34b5b59,b -34b5b5a,d4 -34b5b5d,5 -34b5b5e,de -34b5b5f,a0 -34b5b69,c -34b5b6a,a0 -34b5b6d,c -34b5b6e,a0 -34b5b71,c -34b5b72,a0 -34b5b75,c -34b5b76,a0 -34b5b79,c -34b5b7a,a0 -34b5b7d,c -34b5b7e,a0 -34b5b81,c -34b5b82,a0 -34b5b85,c -34b5b86,a0 -34b5b89,c -34b5b8a,a0 -34b5b8d,c -34b5b8e,a0 -34b5b91,c -34b5b92,a0 -34b5b95,c -34b5b96,a0 -34b5b99,c -34b5b9a,a0 -34b5ba0,b -34b5ba1,ed -34b5ba2,30 -34b5ba5,4e -34b5ba6,90 -34b5ba9,d -34b5baa,a0 -34b5bad,c -34b5bae,a0 -34b5bb1,b -34b5bb2,c4 -34b5bb5,5 -34b5bb6,ef -34b5bb7,a0 -34b5bb9,b -34b5bba,d5 -34b5bbd,c -34b5bbe,b0 -34b5bc1,d -34b5bc2,a0 -34b5bc5,d -34b5bc6,a0 -34b5bc9,5e -34b5bca,80 -34b5bcc,b -34b5bcd,ec -34b5bce,20 -34b5bf0,5d -34b5bf1,ed -34b5bf2,83 -34b5bf3,a7 -34b5bf4,98 -34b5bf5,38 -34b5bf6,de -34b5bf7,c3 +34b5ab0,9 +34b5ab1,e4 +34b5ace,6e +34b5acf,50 +34b5ad0,5 +34b5ad1,e5 +34b5ad2,d +34b5ad3,a0 +34b5ad4,b +34b5ad5,d0 +34b5ad6,9 +34b5ad7,e0 +34b5ad8,e +34b5ad9,90 +34b5ada,3 +34b5adb,e7 +34b5adc,8e +34b5add,30 +34b5adf,cc +34b5ae0,cc +34b5ae3,7e +34b5ae4,e7 +34b5ae7,d +34b5ae8,e0 +34b5aeb,d +34b5aec,a0 +34b5aef,8e +34b5af0,50 +34b5af2,d +34b5af3,ea +34b5b06,b +34b5b07,ff +34b5b08,ff +34b5b09,c0 +34b5b0c,5e +34b5b0d,70 +34b5b0f,3 +34b5b10,d9 +34b5b13,c +34b5b14,b0 +34b5b17,bd +34b5b18,20 +34b5b1a,9 +34b5b1b,e4 +34b5b1e,d +34b5b1f,ff +34b5b20,ff +34b5b21,c0 +34b5b2f,6 +34b5b30,de +34b5b31,a0 +34b5b33,b +34b5b34,d3 +34b5b37,c +34b5b38,b0 +34b5b3b,c +34b5b3c,b0 +34b5b3f,5e +34b5b40,a0 +34b5b42,b +34b5b43,fd +34b5b44,20 +34b5b47,7e +34b5b48,90 +34b5b4b,d +34b5b4c,b0 +34b5b4f,c +34b5b50,b0 +34b5b53,c +34b5b54,b0 +34b5b57,b +34b5b58,d4 +34b5b5b,5 +34b5b5c,de +34b5b5d,a0 +34b5b67,c +34b5b68,a0 +34b5b6b,c +34b5b6c,a0 +34b5b6f,c +34b5b70,a0 +34b5b73,c +34b5b74,a0 +34b5b77,c +34b5b78,a0 +34b5b7b,c +34b5b7c,a0 +34b5b7f,c +34b5b80,a0 +34b5b83,c +34b5b84,a0 +34b5b87,c +34b5b88,a0 +34b5b8b,c +34b5b8c,a0 +34b5b8f,c +34b5b90,a0 +34b5b93,c +34b5b94,a0 +34b5b97,c +34b5b98,a0 +34b5b9e,b +34b5b9f,ed +34b5ba0,30 +34b5ba3,4e +34b5ba4,90 +34b5ba7,d +34b5ba8,a0 +34b5bab,c +34b5bac,a0 +34b5baf,b +34b5bb0,c4 +34b5bb3,5 +34b5bb4,ef +34b5bb5,a0 +34b5bb7,b +34b5bb8,d5 +34b5bbb,c +34b5bbc,b0 +34b5bbf,d +34b5bc0,a0 +34b5bc3,d +34b5bc4,a0 +34b5bc7,5e +34b5bc8,80 +34b5bca,b +34b5bcb,ec +34b5bcc,20 +34b5bee,5d +34b5bef,ed +34b5bf0,83 +34b5bf1,a7 +34b5bf2,98 +34b5bf3,38 +34b5bf4,de +34b5bf5,c3 diff --git a/data/symbols.json b/data/symbols.json index 6727946a2..4a1eead93 100644 --- a/data/symbols.json +++ b/data/symbols.json @@ -5,7 +5,7 @@ "EXTENDED_ITEM_DATA": "03482008", "FAIRY_ITEMS": "03481D05", "FAIRY_OCARINA_ITEM": "03481D04", - "FONT_TEXTURE": "034B4748", + "FONT_TEXTURE": "034B4746", "INITIAL_SAVE_DATA": "03481800", "ITEM_OVERRIDES": "03481000", "ITEM_TABLE": "03482050", @@ -17,24 +17,24 @@ "PLAYER_NAME_ID": "03481C02", "PLAYER_OVERRIDE_DATA": "03482000", "TIME_TRAVEL_SAVED_EQUIPS": "0348201C", - "cfg_dungeon_info_enable": "034B46F8", + "cfg_dungeon_info_enable": "034B4700", "cfg_dungeon_info_mq_enable": "034B471C", "cfg_dungeon_info_mq_need_map": "034B4718", "cfg_dungeon_info_reward_need_altar": "034B4710", "cfg_dungeon_info_reward_need_compass": "034B4714", - "cfg_dungeon_is_mq": "034B4728", - "cfg_dungeon_rewards": "034B45A8", - "cfg_file_select_hash": "034B4724", - "dungeon_count": "034B46FC", - "dungeons": "034B45CC", - "font_sprite": "034B4668", - "hash_sprites": "034B4700", - "hash_symbols": "034B46B8", - "heap_next": "034B4720", - "items_sprite": "034B4688", - "medal_colors": "034B45B8", - "medals_sprite": "034B4698", - "quest_items_sprite": "034B4678", - "setup_db": "034B4738", - "stones_sprite": "034B46A8" + "cfg_dungeon_is_mq": "034B4738", + "cfg_dungeon_rewards": "034B4638", + "cfg_file_select_hash": "034B4708", + "dungeon_count": "034B4704", + "dungeons": "034B465C", + "font_sprite": "034B45E8", + "hash_sprites": "034B46F8", + "hash_symbols": "034B45A8", + "heap_next": "034B470C", + "items_sprite": "034B4608", + "medal_colors": "034B4648", + "medals_sprite": "034B4618", + "quest_items_sprite": "034B45F8", + "setup_db": "034B4728", + "stones_sprite": "034B4628" } \ No newline at end of file From a60db9ee42016b6e866aec3d4ee8260d3e4df816 Mon Sep 17 00:00:00 2001 From: AmazingAmpharos Date: Fri, 12 Oct 2018 05:22:48 -0500 Subject: [PATCH 689/755] Massive cleanup to hint system A lot of the new hints were, subjectively I suppose, quite poor. This replaces a lot of them with more clever hints. A lot of new "junk hints" were added, most of which contain information that may actually be useful for new players about a few little strategic points of play. It also fixes a ton of little issues/inconsistencies in the hint system that had accumulated over the revisions. --- HintList.py | 190 +++++++++++++++++++++++++++------------------------- Hints.py | 3 + Regions.py | 94 +++++++++++++------------- 3 files changed, 149 insertions(+), 138 deletions(-) diff --git a/HintList.py b/HintList.py index 47628aa83..c08cc0c40 100644 --- a/HintList.py +++ b/HintList.py @@ -47,77 +47,77 @@ def getHintGroup(group, world): # @ will print the player name # # sets color to white (currently only used for dungeon reward hints). hintTable = { - 'Magic Meter': (["sorcery training", "a stamina scroll", "pixie dust"], "Magic", 'item'), - 'Double Defense': (["a white outline", "sturdy hearts", "strengthened love"], "Double Defense", 'item'), + 'Magic Meter': (["mystic training", "a sorcery scroll", "pixie dust", "a green rectangle"], "a Magic Meter", 'item'), + 'Double Defense': (["a white outline", "damage decrease"], "Double Defense", 'item'), 'Slingshot': (["a seed shooter", "a rubberband", "a child's catapult"], "a Slingshot", 'item'), - 'Boomerang': (["a banana", "a faithful curved stick"], "the Boomerang", 'item'), + 'Boomerang': (["a banana", "a stun stick"], "the Boomerang", 'item'), 'Bow': (["an archery enabler", "a danger dart launcher"], "a Bow", 'item'), - 'Bomb Bag': (["an explosive container", "kaboom storage"], "a Bomb Bag", 'item'), - 'Progressive Hookshot': (["Dampe's keepsake", "an arm extension", "a great chain"], "a Hookshot", 'item'), - 'Progressive Strength Upgrade': (["power gloves", "arm day results", "the heavy lifty"], "a Strength Upgrade", 'item'), - 'Progressive Scale': (["vertical swim depth", "a dive enhancer"], "a Zora Scale", 'item'), - 'Hammer': (["the dragon smasher", "a metallic crusher", "the WHAM! weapon"], "the Hammer", 'item'), - 'Iron Boots': (["sink shoes", "watery footwear", "noisy boots"], "the Iron Boots", 'item'), - 'Hover Boots': (["butter boots", "slippery shoes", "spacewalkers"], "the Hover Boots", 'item'), - 'Kokiri Sword': (["a butter knife", "a tiny, sharp blade", "a child's blade"], "the Kokiri Sword", 'item'), - 'Biggoron Sword': (["an unwieldy knife", "a two-handed blade"], "the Biggoron Sword", 'item'), + 'Bomb Bag': (["an explosive container", "a blast bag"], "a Bomb Bag", 'item'), + 'Progressive Hookshot': (["Dampe's keepsake", "the Grapple Beam", "a Link lifter"], "a Hookshot", 'item'), + 'Progressive Strength Upgrade': (["power gloves", "metal mittens", "the heavy lifty"], "a Strength Upgrade", 'item'), + 'Progressive Scale': (["a deep dive", "a piece of Zora"], "a Zora Scale", 'item'), + 'Hammer': (["the dragon smasher", "a switch deruster", "the WHAM! weapon"], "the Megaton Hammer", 'item'), + 'Iron Boots': (["sink shoes", "help drowning", "clank cleats"], "the Iron Boots", 'item'), + 'Hover Boots': (["butter boots", "slip shoes", "spacewalkers"], "the Hover Boots", 'item'), + 'Kokiri Sword': (["a butter knife", "a starter slasher", "a child's cutter"], "the Kokiri Sword", 'item'), + 'Biggoron Sword': (["the biggest blade", "a colossal cleaver"], "the Biggoron Sword", 'item'), 'Master Sword': (["evil's bane"], "the Master Sword", 'item'), - 'Deku Shield': (["a wooden ward", "forest protection"], "a Deku Shield", 'item'), - 'Hylian Shield': (["a steel safeguard", "a Hylian relic", "metallic protection"], "a Hylian Shield", 'item'), + 'Deku Shield': (["a wooden ward", "a burnable barrier"], "a Deku Shield", 'item'), + 'Hylian Shield': (["a steel safeguard", "a kid's shell", "a Like Like's lunch crunch"], "a Hylian Shield", 'item'), 'Mirror Shield': (["the reflective rampart", "Medusa's weakness", "a silvered surface"], "the Mirror Shield", 'item'), - 'Farores Wind': (["teleportation", "relocation magic", "a warp spell", "green wind"], "Farore's Wind", 'item'), - 'Nayrus Love': (["a safe space", "an impregnable aura", "a blue barrier"], "Nayru's Love", 'item'), - 'Dins Fire': (["an inferno", "a great heat wave", "a blast of hot air"], "Din's Fire", 'item'), - 'Fire Arrows': (["the furnace firearm", "flame darts", "burning projectiles"], "the Fire Arrows", 'item'), - 'Ice Arrows': (["the refrigerator rocket", "frostbite bolts", "cold darts", "freezing projectiles"], "the Ice Arrows", 'item'), - 'Light Arrows': (["the shining shot", "glowing darts", "Ganondorf's bane"], "the Light Arrows", 'item'), - 'Lens of Truth': (["a lie detector", "true sight", "a detective's tool"], "the Lens of Truth", 'item'), - 'Ocarina': (["a flute", "a source of music"], "an Ocarina", 'item'), + 'Farores Wind': (["teleportation", "a relocation rune", "a green ball"], "Farore's Wind", 'item'), + 'Nayrus Love': (["a safe space", "an impregnable aura", "a blue barrier", "the Byrna barrier"], "Nayru's Love", 'item'), + 'Dins Fire': (["an inferno", "a heat wave", "a red ball"], "Din's Fire", 'item'), + 'Fire Arrows': (["the furnace firearm", "the flame flinger", "a magma missile"], "the Fire Arrows", 'item'), + 'Ice Arrows': (["the refrigerator rocket", "the frostbite flinger", "an iceberg maker"], "the Ice Arrows", 'item'), + 'Light Arrows': (["the shining shot", "the luminous launcher", "Ganondorf's bane"], "the Light Arrows", 'item'), + 'Lens of Truth': (["a lie detector", "a gambling cheat", "a ghost tracker"], "the Lens of Truth", 'item'), + 'Ocarina': (["a flute", "a music maker"], "an Ocarina", 'item'), 'Fairy Ocarina': (["a brown flute", "a forest instrument"], "the Fairy Ocarina", 'item'), 'Ocarina of Time': (["a blue flute", "a royal instrument"], "the Ocarina of Time", 'item'), - 'Goron Tunic': (["ruby robes", "fireproof garbs", "mountain clothing"], "a Goron Tunic", 'item'), - 'Zora Tunic': (["a sapphire suit", "a fishy outfit", "lake clothing"], "a Zora Tunic", 'item'), + 'Goron Tunic': (["ruby robes", "fireproof fabric", "cooking clothing"], "a Goron Tunic", 'item'), + 'Zora Tunic': (["a sapphire suit", "scuba gear", "a swimsuit"], "a Zora Tunic", 'item'), 'Epona': (["a horse", "a four legged friend"], "Epona", 'item'), 'Zeldas Lullaby': (["a song of royal slumber", "a triforce tune"], "Zelda's Lullaby", 'item'), - 'Eponas Song': (["an equestrian etude", "a ranch song"], "Epona's Song", 'item'), - 'Sarias Song': (["a song of dancing Gorons", "a green girl's tune", "child's forest melody"], "Sarias Song", 'item'), - 'Suns Song': (["Sunny Day", "a time advancer", "a day/night melody", "the gibdo's bane"], "the Sun's Song", 'item'), - 'Song of Time': (["a song 7 years long", "a tune to move blocks"], "the Song of Time", 'item'), - 'Song of Storms': (["Rain Dance", "a thunderstorm melody", "the tune of windmills"], "the Song of Storms", 'item'), - 'Minuet of Forest': (["the song of tall trees", "adult's forest melody", "a green warp song"], "the Minuet of Forest", 'item'), - 'Bolero of Fire': (["a song of lethal lava", "a red warp song", "a volcano tune", "a song of a red sea"], "the Bolero of Fire", 'item'), - 'Serenade of Water': (["a song of a damp ditch", "a blue warp song", "the lake's tune"], "the Serenade of Water", 'item'), - 'Requiem of Spirit': (["a song of sandy statues", "an orange warp song", "the tune of the desert"], "the Requiem of Spirit", 'item'), - 'Nocturne of Shadow': (["a song of spooky spirits", "a graveyard boogie", "a ghastly tune"], "the Nocturne of Shadow", 'item'), - 'Prelude of Light': (["a luminous prologue melody", "a yellow warp song", "the temple traveler"], "the Prelude of Light", 'item'), - 'Bottle': (["a glass container", "an empty jar", "something to be filled"], "a Bottle", 'item'), - 'Bottle with Letter': (["a call for help", "an SOS jar", "fishy stationery"], "Ruto's letter", 'item'), - 'Bottle with Milk': (["cow juice", "a white liquid"], "a Milk Bottle", 'item'), - 'Bottle with Red Potion': (["a vitality vial", "a red liquid"], "a Red Bottle", 'item'), - 'Bottle with Green Potion': (["a magic mixture", "a green liquid"], "a Green Bottle", 'item'), - 'Bottle with Blue Potion': (["an ailment antidote", "a blue liquid"], "a Blue Bottle", 'item'), - 'Bottle with Fairy': (["an imprisoned fairy", "an extra life"], "a Fairy Bottle", 'item'), - 'Bottle with Fish': (["an aquarium", "a contained sea beast"], "a Fish Bottle", 'item'), - 'Bottle with Blue Fire': (["a conflagration canteen", "an icemelt jar"], "a Fire Bottle", 'item'), - 'Bottle with Bugs': (["an insectarium", "skultula finders", "a Bug Bottle"], "bugs", 'item'), + 'Eponas Song': (["an equestrian etude", "a Malon melody"], "Epona's Song", 'item'), + 'Sarias Song': (["a song of dancing Gorons", "Saria's phone number"], "Saria's Song", 'item'), + 'Suns Song': (["Sunny Day", "a Skulltula summoning song", "the ReDead's bane"], "the Sun's Song", 'item'), + 'Song of Time': (["a song 7 years long", "the tune of Somaria"], "the Song of Time", 'item'), + 'Song of Storms': (["Rain Dance", "a thunderstorm tune", "windmill acceleration"], "the Song of Storms", 'item'), + 'Minuet of Forest': (["the song of tall trees", "an arboreal anthem", "a green spark trail"], "the Minuet of Forest", 'item'), + 'Bolero of Fire': (["a song of lethal lava", "a red spark trail", "a volcano verse"], "the Bolero of Fire", 'item'), + 'Serenade of Water': (["a song of a damp ditch", "a blue spark trail", "the lake's lyric"], "the Serenade of Water", 'item'), + 'Requiem of Spirit': (["a song of sandy statues", "an orange spark trail", "the desert ditty"], "the Requiem of Spirit", 'item'), + 'Nocturne of Shadow': (["a song of spooky spirits", "a graveyard boogie", "a haunted hymn", "a purple spark trail"], "the Nocturne of Shadow", 'item'), + 'Prelude of Light': (["a luminous prologue melody", "a yellow spark trail", "the temple traveler"], "the Prelude of Light", 'item'), + 'Bottle': (["a glass container", "an empty jar", "encased air"], "a Bottle", 'item'), + 'Bottle with Letter': (["a call for help", "the note that Mweeps", "an SOS call"], "Ruto's Letter", 'item'), + 'Bottle with Milk': (["cow juice", "a white liquid", "a baby's breakfast"], "a Milk Bottle", 'item'), + 'Bottle with Red Potion': (["a vitality vial", "a red liquid"], "a Red Potion Bottle", 'item'), + 'Bottle with Green Potion': (["a magic mixture", "a green liquid"], "a Green Potion Bottle", 'item'), + 'Bottle with Blue Potion': (["an ailment antidote", "a blue liquid"], "a Blue Potion Bottle", 'item'), + 'Bottle with Fairy': (["an imprisoned fairy", "an extra life", "Navi's cousin"], "a Fairy Bottle", 'item'), + 'Bottle with Fish': (["an aquarium", "a deity's snack"], "a Fish Bottle", 'item'), + 'Bottle with Blue Fire': (["a conflagration canteen", "an icemelt jar"], "a Blue Fire Bottle", 'item'), + 'Bottle with Bugs': (["an insectarium", "Skulltula finders"], "a Bug Bottle", 'item'), 'Bottle with Poe': (["a spooky ghost", "a face in the jar"], "a Poe Bottle", 'item'), 'Bottle with Big Poe': (["the spookiest ghost", "a sidequest spirit"], "a Big Poe Bottle", 'item'), - 'Stone of Agony': (["a vibrating rock", "a clue finder"], "the Stone of Agony", 'item'), - 'Gerudo Membership Card': (["a GT subscription", "a desert tribe's pass"], "the Gerudo Card", 'item'), - 'Progressive Wallet': (["a mo' money holder", "a gem purse", "financial capacity"], "a Wallet", 'item'), - 'Deku Stick Capacity': (["a lumber rack", "more flammable twigs"], "a Stick Capacity Upgrade", 'item'), - 'Deku Nut Capacity': (["more nuts", "flashbang storage"], "a Nut Capacity Upgrade", 'item'), + 'Stone of Agony': (["the shake stone", "the Rumble Pak (TM)"], "the Stone of Agony", 'item'), + 'Gerudo Membership Card': (["a girl club membership", "a woman license"], "the Gerudo Card", 'item'), + 'Progressive Wallet': (["a mo' money holder", "a gem purse", "a portable bank"], "a Wallet", 'item'), + 'Deku Stick Capacity': (["a lumber rack", "more flammable twigs"], "Deku Stick Capacity", 'item'), + 'Deku Nut Capacity': (["more nuts", "flashbang storage"], "Deku Nut capacity", 'item'), 'Heart Container': (["a lot of love", "a Valentine's gift", "a boss's organ"], "a Heart Container", 'item'), - 'Piece of Heart': (["love", "a partial Valentine"], "a Piece of Heart", 'item'), - 'Piece of Heart (Treasure Chest Game)': (["love", "a partial Valentine"], "a Piece of Heart", 'item'), - 'Recovery Heart': (["a free heal", "disappointing love"], "a Recovery Heart", 'item'), + 'Piece of Heart': (["a little love", "a broken heart"], "a Piece of Heart", 'item'), + 'Piece of Heart (Treasure Chest Game)': ("a victory valentine", "a Piece of Heart", 'item'), + 'Recovery Heart': (["a free heal", "short-term love", "a Band-Aid"], "a Recovery Heart", 'item'), 'Rupee (Treasure Chest Game)': ("the dollar of defeat", 'a Green Rupee', 'item'), 'Deku Stick (1)': ("a breakable branch", 'a Deku Stick', 'item'), - 'Rupee (1)': (["a unique coin", "a penny", "a tiny coin", "a green gem"], "a Green Rupee", 'item'), - 'Rupees (5)': (["a common coin", "a blue gem"], "a Blue Rupee", 'item'), + 'Rupee (1)': (["a unique coin", "a penny", "a green gem"], "a Green Rupee", 'item'), + 'Rupees (5)': (["a common coin", "a nickel", "a blue gem"], "a Blue Rupee", 'item'), 'Rupees (20)': (["couch cash", "a red gem"], "a Red Rupees", 'item'), 'Rupees (50)': (["big bucks", "a purple gem", "wealth"], "a Purple Rupee", 'item'), - 'Rupees (200)': (["a juicy jackpot", "a yellow gem", "great wealth"], "a Gold Rupee", 'item'), + 'Rupees (200)': (["a juicy jackpot", "a yellow gem", "great wealth"], "a Huge Rupee", 'item'), 'Weird Egg': (["a chicken dilemma"], "the Weird Egg", 'item'), 'Zeldas Letter': (["an autograph", "royal stationery", "royal snail mail"], "Zelda's Letter", 'item'), 'Pocket Egg': (["a Cucco container", "a Cucco, eventually", "a fowl youth"], "the Pocket Egg", 'item'), @@ -127,32 +127,32 @@ def getHintGroup(group, world): 'Odd Potion': (["Granny's goodies"], "an Odd Potion", 'item'), 'Poachers Saw': (["a tree killer"], "the Poacher's Saw", 'item'), 'Broken Sword': (["a shattered slicer"], "the Broken Sword", 'item'), - 'Prescription': (["a pill pamphlet", "a Doctor's slip"], "the Prescription", 'item'), + 'Prescription': (["a pill pamphlet", "a doctor's note"], "the Prescription", 'item'), 'Eyeball Frog': (["a perceiving polliwog"], "the Eyeball Frog", 'item'), 'Eyedrops': (["a vision vial"], "the Eyedrops", 'item'), 'Claim Check': (["a three day wait"], "the Claim Check", 'item'), 'Map': (["a dungeon atlas", "blueprints"], "a Map", 'item'), 'Compass': (["a treasure tracker", "a magnetic needle"], "a Compass", 'item'), - 'BossKey': (["a master of unlocking", "a dungeon's final pass"], "a Boss Key", 'item'), - 'SmallKey': (["a tool for unlocking", "a dungeon pass", "a lock remover", "a legal lockpick", "a portal opener"], "a Small Key", 'item'), + 'BossKey': (["a master of unlocking", "a dungeon's master pass"], "a Boss Key", 'item'), + 'SmallKey': (["a tool for unlocking", "a dungeon pass", "a lock remover", "a lockpick"], "a Small Key", 'item'), 'FortressSmallKey': (["a get out of jail free card"], "a Jail Key", 'item'), 'KeyError': (["something mysterious", "an unknown treasure"], "An Error (Please Report This)", 'item'), - 'Arrows (5)': (["a few danger darts", "a few piercing ammunition"], "Arrows", 'item'), - 'Arrows (10)': (["some danger darts", "some piercing ammunition"], "Arrows", 'item'), - 'Arrows (30)': (["plenty of danger darts", "plenty of piercing ammunition"], "Arrows", 'item'), - 'Bombs (5)': (["a few explosives", "a few sparky boom balls", "a few fireworks"], "Bombs", 'item'), - 'Bombs (10)': (["some explosives", "some sparky boom balls", "some fireworks"], "Bombs", 'item'), - 'Bombs (20)': (["lots-o-explosives", "plenty of sparky boom balls", "plenty of fireworks"], "Bombs", 'item'), - 'Ice Trap': (["a gift from Ganon", "a chilling discovery", "an icy blast", "an unwanted freeze", "a wintery surprise"], "an Ice Trap", 'item'), + 'Arrows (5)': (["a few danger darts", "a few sharp shafts"], "Arrows (5 pieces)", 'item'), + 'Arrows (10)': (["some danger darts", "some sharp shafts"], "Arrows (10 pieces)", 'item'), + 'Arrows (30)': (["plenty of danger darts", "plenty of sharp shafts"], "Arrows (30 pieces)", 'item'), + 'Bombs (5)': (["a few explosives", "a few blast balls", "a few black spheres"], "Bombs (5 pieces)", 'item'), + 'Bombs (10)': (["some explosives", "some blast balls", "some black spheres"], "Bombs (10 pieces)", 'item'), + 'Bombs (20)': (["lots-o-explosives", "plenty of blast balls", "plenty of black spheres"], "Bombs (20 pieces)", 'item'), + 'Ice Trap': (["a gift from Ganon", "a chilling discovery", "frosty fun"], "an Ice Trap", 'item'), 'Magic Bean': (["wizardly legumes"], "a Magic Bean", 'item'), - 'Bombchus': (["mice bombs", "remote mines", "proximity mice", "wall crawlers", "trail blazers"], "Bombchus", 'item'), - 'Bombchus (5)': (["a few mice bombs", "a few remote mines", "a few proximity mice", "a few wall crawlers", "a few trail blazers"], "Bombchus", 'item'), - 'Bombchus (10)': (["some mice bombs", "some remote mines", "some proximity mice", "some wall crawlers", "some trail blazers"], "Bombchus", 'item'), - 'Bombchus (20)': (["plenty of mice bombs", "plenty of remote mines", "plenty of proximity mice", "plenty of wall crawlers", "plenty of trail blazers"], "Bombchus", 'item'), - 'Deku Nuts (5)': (["some nuts", "some flashbangs", "some Sheik's ammo"], "some Deku Nuts", 'item'), - 'Deku Nuts (10)': (["lots-o-nuts", "plenty of flashbangs", "plenty of Sheik's ammo"], "plenty of Deku Nuts", 'item'), - 'Deku Seeds (30)': (["catapult ammo", "lots-o-seeds"], "plenty of Deku Seeds", 'item'), - 'Gold Skulltulla Token': (["proof of destruction", "an arachnid chip", "spider remains"], "a Golden Token", 'item'), + 'Bombchus': (["mice bombs", "proximity mice", "wall crawlers", "trail blazers"], "Bombchus", 'item'), + 'Bombchus (5)': (["a few mice bombs", "a few proximity mice", "a few wall crawlers", "a few trail blazers"], "Bombchus (5 pieces)", 'item'), + 'Bombchus (10)': (["some mice bombs", "some proximity mice", "some wall crawlers", "some trail blazers"], "Bombchus (10 pieces)", 'item'), + 'Bombchus (20)': (["plenty of mice bombs", "plenty of proximity mice", "plenty of wall crawlers", "plenty of trail blazers"], "Bombchus (20 pieces)", 'item'), + 'Deku Nuts (5)': (["some nuts", "some flashbangs", "some Deku vomit"], "Deku Nuts (5 pieces)", 'item'), + 'Deku Nuts (10)': (["lots-o-nuts", "plenty of flashbangs", "plenty of Deku vomit"], "Deku Nuts (10 pieces)", 'item'), + 'Deku Seeds (30)': (["catapult ammo", "lots-o-seeds"], "Deku Seeds (30 pieces)", 'item'), + 'Gold Skulltulla Token': (["proof of destruction", "an arachnid chip", "spider remains", "one percent of a curse"], "a Gold Skulltula Token", 'item'), '10 Big Poes': (["#Big Poes# leads to", "#ghost hunters# will be rewarded with"], None, 'alwaysLocation'), 'Deku Theater Mask of Truth': ("the #Mask of Truth# yields", None, 'alwaysLocation'), @@ -168,38 +168,38 @@ def getHintGroup(group, world): 'Treasure Chest Game': (["#gambling# grants", "there is a #1/32 chance# to win"], "the #treasure chest game# grants", 'location'), 'Darunias Joy': ("#Darunia's dance# leads to", None, 'location'), 'Frog Ocarina Game': (["The #Frogs of Zora River# hold", "the #musical amphibians# have found"], None, 'location'), - 'Horseback Archery 1500 Points': ("mastery of #horseback archery# grants", "1500 in #horseback archery# grants", 'location'), - 'Lake Hylia Sun': (["staring into #the sun# grants", "acts of #solar aggression# are punished with"], "shooting #the sun# grants", 'location'), - 'Heart Piece Grave Chest': ("in a grave playing #Sun's Song# spawns", None, 'location'), + 'Horseback Archery 1500 Points': ("mastery of #horseback archery# grants", "scoring 1500 in #horseback archery# grants", 'location'), + 'Lake Hylia Sun': ("staring into #the sun# grants", "shooting #the sun# grants", 'location'), + 'Heart Piece Grave Chest': ("playing #Sun's Song# in a grave spawns", None, 'location'), 'Goron City Leftmost Maze Chest': ("in #Goron City# the hammer unlocks", None, 'location'), 'GS Hyrule Castle Grotto': ("a #storm near the castle# reveals", None, 'location'), 'GS Hyrule Field Near Gerudo Valley': ("buried near #the valley# a spider holds", None, 'location'), 'GS Zora\'s Fountain Hidden Cave': ("a spider high above the #icy waters# holds", None, 'location'), 'Forest Temple Floormaster Chest': ("deep in #the forest#, shadows guard a chest containing", "a Floormaster in #Forest Temple# guards", 'location'), 'Fire Temple Scarecrow Chest': ("high in the #Fire Temple#, Pierre hid", None, 'location'), - 'Fire Temple Megaton Hammer Chest': ("high in the #Fire Temple#, Fire Dancers hid", None, 'location'), - 'Fire Temple MQ West Tower Top Chest': ("high in the #Fire Temple#, Fire Dancers hid", None, 'location'), + 'Fire Temple Megaton Hammer Chest': ("high in the #Fire Temple#, Flare Dancers hid", None, 'location'), + 'Fire Temple MQ West Tower Top Chest': ("high in the #Fire Temple#, Flare Dancers hid", None, 'location'), 'Water Temple River Chest': ("deep under #the lake#, beyond the currents, hides", "the #Water Temple River Chest# holds", 'location'), - 'Water Temple Boss Key Chest': ("deep under #the lake#, the gilded chest contains", "the #Water Temple Gold Chest# holds", 'location'), - 'Water Temple MQ Boss Key Chest': ("deep under #the lake#, the gilded chest contains", "the #Water Temple Gold Chest# holds", 'location'), + 'Water Temple Boss Key Chest': ("deep under #the lake#, the gilded chest contains", "the #Water Temple Boss Key Chest# holds", 'location'), + 'Water Temple MQ Boss Key Chest': ("deep under #the lake#, the gilded chest contains", "the #Water Temple Boss Key Chest# holds", 'location'), 'Water Temple MQ Freestanding Key': ("deep under #the lake#, the apparent key is really", None, 'location'), 'GS Water Temple MQ North Basement': ("deep under #the lake#, the locked spider holds", None, 'location'), 'Gerudo Training Grounds Underwater Silver Rupee Chest': ("those who seek #sunken silver rupees# will find", None, 'location'), 'Gerudo Training Grounds MQ Underwater Silver Rupee Chest': ("those who seek #sunken silver rupees# will find", None, 'location'), 'Gerudo Training Grounds Maze Path Final Chest': ("the final prize of #the thieves\' training# is", None, 'location'), 'Gerudo Training Grounds MQ Ice Arrows Chest': ("the final prize of #the thieves\' training# is", None, 'location'), - 'Bottom of the Well Defeat Boss': (["#Dead Hand# holds", "draining the water reveals #a monster# guarding"], None, 'location'), - 'Bottom of the Well MQ Compass Chest': (["#Dead Hand# holds", "draining the water reveals #a monster# guarding"], None, 'location'), - 'Silver Gauntlets Chest': ("upon the #Colossus's right hand# is", "upon the #Colossus's child hand# is", 'location'), - 'Mirror Shield Chest': ("upon the #Colossus's left hand# is", "upon the #Colossus's adult hand# is", 'location'), + 'Bottom of the Well Defeat Boss': ("#Dead Hand# holds", "#Dead Hand# in the well holds", 'location'), + 'Bottom of the Well MQ Compass Chest': ("#Dead Hand# holds", "#Dead Hand# in the well holds", 'location'), + 'Silver Gauntlets Chest': ("upon the #Colossus's right hand# is", None, 'location'), + 'Mirror Shield Chest': ("upon the #Colossus's left hand# is", None, 'location'), 'Spirit Temple MQ Child Center Chest': ("within #the Colossus# a temporal paradox yields", None, 'location'), 'Spirit Temple MQ Lower Adult Right Chest': ("within #the Colossus# a symphony yields", None, 'location'), - 'GS Spirit Temple MQ Lower Adult Right': ("within #the Colossus# a spider\'s symphony yields", None, 'location'), + 'GS Spirit Temple MQ Lower Adult Right': ("within #the Colossus# a spider's symphony yields", None, 'location'), 'Shadow Temple Hidden Floormaster Chest': (["shadows in an #invisible maze# guard", "after a free #boat ride# comes"], None, 'location'), 'Shadow Temple MQ Bomb Flower Chest': (["shadows in an #invisible maze# guard", "after a free #boat ride# comes"], None, 'location'), - 'Haunted Wasteland Structure Chest': (["deep in the #Wasteland# is", "beneath #the sands# lies"], None, 'location'), + 'Haunted Wasteland Structure Chest': (["deep in the #Wasteland# is", "beneath #the sands#, flame reveals"], None, 'location'), 'Composer Grave Chest': (["in the #Composers' Grave#, darkness hides", "the #Composer Brothers# hid"], None, 'location'), - 'Song from Composer Grave': (["in the #Composers' Grave#, Redead guard", "the #Composer Brothers# wrote"], None, 'location'), + 'Song from Composer Grave': (["in the #Composers' Grave#, ReDead guard", "the #Composer Brothers# wrote"], None, 'location'), 'Sheik Forest Song': ("deep in #the forest# Sheik teaches", None, 'location'), 'Sheik at Temple': ("Sheik waits at a #monument to time# to teach", None, 'location'), 'Sheik in Crater': ("the #crater's melody# is", None, 'location'), @@ -256,6 +256,17 @@ def getHintGroup(group, world): '1045': ("They say that Okami is the best Zelda game.", None, 'junkHint'), '1046': ("They say that quest guidance can be found at a talking rock.", None, 'junkHint'), '1047': ("They say that the final item you're looking for can be found somewhere in Hyrule", None, 'junkHint'), + '1048': ("Mweep.^Mweep.^Mweep.^Mweep.^Mweep.^Mweep.^Mweep.^Mweep.^Mweep.^Mweep.^Mweep.^Mweep.", None, 'junkHint'), + '1049': ("They say that Barinade fears Deku Nuts.", None, 'junkHint'), + '1050': ("They say that Flare Dancers do not fear Goron-crafted blades.", None, 'junkHint'), + '1051': ("They say that Morpha is easily trapped in a corner.", None, 'junkHint'), + '1052': ("They say that Bongo Bongo really hates the cold.", None, 'junkHint'), + '1053': ("They say that crouch stabs mimic the effects of your last attack.", None, 'junkHint'), + '1054': ("They say that bombing the hole Volvagia last flew into can be rewarding.", None, 'junkHint'), + '1055': ("They say that invisible ghosts can be exposed with Deku Nuts.", None, 'junkHint'), + '1056': ("They say that the real Phantom Ganon is bright and loud.", None, 'junkHint'), + '1057': ("They say that walking backwards is very fast.", None, 'junkHint'), + '1058': ("They say that leaping above the Castle Town entrance enriches most children.", None, 'junkHint'), #xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx handy marker for how long one line should be in a text box 'Deku Tree': ("an ancient tree", "Deku Tree", 'dungeon'), 'Dodongos Cavern': ("an immense cavern", "Dodongo's Cavern", 'dungeon'), @@ -296,9 +307,6 @@ def getHintGroup(group, world): '2009': ("Many tricks are up my sleeve,&to save yourself&you'd better leave!", None, 'ganonLine'), '2010': ("After what you did to&Koholint Island, how can&you call me the bad guy?", None, 'ganonLine'), '2011': ("Today, let's begin down&'The Hero is Defeated' timeline.", None, 'ganonLine'), - 'Claim Check': (["a three day wait"], "the Claim Check", 'item'), - - 'Bottle with Blue Potion': (["an all-cure antidote", "a blue liquid"], "a Blue Bottle", 'item'), } # This specifies which hints will never appear due to either having known or known useless contents or due to the locations not existing. diff --git a/Hints.py b/Hints.py index d608ebc9f..da8a7a0e7 100644 --- a/Hints.py +++ b/Hints.py @@ -307,6 +307,7 @@ def buildGanonText(world, messages): if location.item.name == 'Light Arrows': text = get_raw_text(getHint('Light Arrow Location', world.clearer_hints).text) location_hint = location.hint.replace('Ganon\'s Castle', 'my castle') + location_hint = location.hint.replace('Ganon\'s Tower', 'my tower') text += get_raw_text(location_hint) text += '!' break @@ -315,6 +316,8 @@ def buildGanonText(world, messages): for location in world.get_locations(): if location.name == 'Ganons Tower Boss Key Chest': text += get_raw_text(getHint(getItemGenericName(location.item), world.clearer_hints).text) + text += '!' + break update_message_by_id(messages, 0x70CC, text) diff --git a/Regions.py b/Regions.py index 278d92037..b7798ceae 100644 --- a/Regions.py +++ b/Regions.py @@ -1015,7 +1015,7 @@ def _create_region(name, type, locations=None, exits=None): 'Remote Southern Grotto Chest': (None, None, 0x02, 'Chest', 0x3E, 'Hyrule Field'), 'Field Near Lake Outside Fence Grotto Chest': (None, None, 0x03, 'Chest', 0x3E, 'Hyrule Field'), 'Kakariko Back Grotto Chest': (None, None, 0x08, 'Chest', 0x3E, 'Kakariko Village'), - 'Zora River Plateau Open Grotto Chest': (None, None, 0x09, 'Chest', 0x3E, 'Zora River'), + 'Zora River Plateau Open Grotto Chest': (None, None, 0x09, 'Chest', 0x3E, 'Zora\'s River'), 'Kokiri Forest Storms Grotto Chest': (None, None, 0x0C, 'Chest', 0x3E, 'Kokiri Forest'), 'Lost Woods Generic Grotto Chest': (None, None, 0x14, 'Chest', 0x3E, 'the Lost Woods'), 'Mountain Storms Grotto Chest': (None, None, 0x17, 'Chest', 0x3E, 'Death Mountain Trail'), @@ -1025,17 +1025,17 @@ def _create_region(name, type, locations=None, exits=None): 'Song from Composer Grave': (0x332A871, 0x332A871, 0x6A, 'Song', 0x41, 'the Graveyard'), 'Song from Saria': (0x20B1DB1, 0x20B1DB1, 0x69, 'Song', 0x56, 'Sacred Forest Meadow'), 'Song from Ocarina of Time': (0x252FC89, 0x252FC89, 0x6B, 'Song', 0x51, 'Hyrule Field'), - 'Song at Windmill': (0xE42C07, 0xE42B8B, 0x6C, 'Song', 0x48, 'Kakariko'), + 'Song at Windmill': (0xE42C07, 0xE42B8B, 0x6C, 'Song', 0x48, 'Kakariko Village'), 'Sheik Forest Song': (0x20B0809, 0x20B0809, 0x61, 'Song', 0x56, 'Sacred Forest Meadow'), 'Sheik at Temple': (0x2531329, 0x2531329, 0x66, 'Song', 0x43, 'Temple of Time'), 'Sheik in Crater': (0x224D7F1, 0x224D7F1, 0x62, 'Song', 0x61, 'Death Mountain Crater'), 'Sheik in Ice Cavern': (0x2BEC889, 0x2BEC889, 0x63, 'Song', 0x09, 'Ice Cavern'), - 'Sheik in Kakariko': (0x2000FE1, 0x2000FE1, 0x65, 'Song', 0x52, 'Kakariko'), + 'Sheik in Kakariko': (0x2000FE1, 0x2000FE1, 0x65, 'Song', 0x52, 'Kakariko Village'), 'Sheik at Colossus': (0x218C57D, 0x218C57D, 0x64, 'Song', 0x5C, 'Desert Colossus'), 'Gift from Saria': (None, None, 0x3B, 'NPC', 0x5B, 'the Lost Woods'), 'Malon Egg': (None, None, 0x47, 'NPC', 0x5F, 'Hyrule Castle'), 'Zeldas Letter': (None, None, None, 'NPC', None, 'Hyrule Castle'), - 'Zelda': (0x3481400, None, 0x5A, 'NPC', 0x43, 'the Temple of Time'), + 'Zelda': (0x3481400, None, 0x5A, 'NPC', 0x43, 'Temple of Time'), 'Zoras Fountain Fairy Reward': (0x3481401, None, 0x5D, 'NPC', 0x3D, 'Zora\'s Fountain'), 'Hyrule Castle Fairy Reward': (0x3481402, None, 0x5C, 'NPC', 0x3D, 'Hyrule Castle'), 'Desert Colossus Fairy Reward': (0x3481403, None, 0x5E, 'NPC', 0x3D, 'Desert Colossus'), @@ -1061,8 +1061,8 @@ def _create_region(name, type, locations=None, exits=None): '40 Gold Skulltulla Reward': (0xEA7179, None, 0x03, 'NPC', 0x50, 'Kakariko Village'), '50 Gold Skulltulla Reward': (0xEA717B, None, 0x3E, 'NPC', 0x50, 'Kakariko Village'), 'Man on Roof': (0xE587E3, None, 0x3E, 'NPC', 0x52, 'Kakariko Village'), - 'Frog Ocarina Game': (0xDB13D3, None, 0x76, 'NPC', 0x54, 'Zora River'), - 'Frogs in the Rain': (0xDB1387, None, 0x3E, 'NPC', 0x54, 'Zora River'), + 'Frog Ocarina Game': (0xDB13D3, None, 0x76, 'NPC', 0x54, 'Zora\'s River'), + 'Frogs in the Rain': (0xDB1387, None, 0x3E, 'NPC', 0x54, 'Zora\'s River'), 'Horseback Archery 1000 Points': (0xE12B6F, 0xE12AA3, 0x3E, 'NPC', 0x5D, 'Gerudo Fortress'), 'Horseback Archery 1500 Points': (0xE12BC3, 0xE12AFB, 0x30, 'NPC', 0x5D, 'Gerudo Fortress'), 'Child Shooting Gallery': (0xD35EF3, None, 0x60, 'NPC', 0x42, 'the Market'), @@ -1085,8 +1085,8 @@ def _create_region(name, type, locations=None, exits=None): 'Lon Lon Tower Freestanding PoH': (None, None, 0x01, 'Collectable', 0x4C, 'Lon Lon Ranch'), 'Graveyard Freestanding PoH': (None, None, 0x04, 'Collectable', 0x53, 'the Graveyard'), 'Gravedigging Tour': (None, None, 0x00, 'Collectable', 0x53, 'the Graveyard'), - 'Zora River Lower Freestanding PoH': (None, None, 0x04, 'Collectable', 0x54, 'Zora River'), - 'Zora River Upper Freestanding PoH': (None, None, 0x0B, 'Collectable', 0x54, 'Zora River'), + 'Zora River Lower Freestanding PoH': (None, None, 0x04, 'Collectable', 0x54, 'Zora\'s River'), + 'Zora River Upper Freestanding PoH': (None, None, 0x0B, 'Collectable', 0x54, 'Zora\'s River'), 'Lake Hylia Freestanding PoH': (None, None, 0x1E, 'Collectable', 0x57, 'Lake Hylia'), 'Zoras Fountain Iceberg Freestanding PoH': (None, None, 0x01, 'Collectable', 0x59, 'Zora\'s Fountain'), 'Zoras Fountain Bottom Freestanding PoH': (None, None, 0x14, 'Collectable', 0x59, 'Zora\'s Fountain'), @@ -1113,7 +1113,7 @@ def _create_region(name, type, locations=None, exits=None): 'Magic Bean Salesman': (None, None, None, 'Event', None, 'Zora\'s River'), 'King Zora Moves': (None, None, None, 'Event', None, 'Zora\'s Domain'), 'Ocarina of Time': (None, None, 0x0C, 'NPC', 0x51, 'Hyrule Field'), - 'Master Sword Pedestal': (None, None, None, 'Event', None, 'the Temple of Time'), + 'Master Sword Pedestal': (None, None, None, 'Event', None, 'Temple of Time'), 'Epona': (None, None, None, 'Event', None, 'Lon Lon Ranch'), 'Deku Baba Sticks': (None, None, None, 'Event', None, 'Kokiri Forest'), 'Deku Baba Nuts': (None, None, None, 'Event', None, 'Kokiri Forest'), @@ -1411,37 +1411,37 @@ def _create_region(name, type, locations=None, exits=None): 'Gerudo Training Grounds MQ Heavy Block Chest': (0, None, 0x7AA2, 'Chest', 0x0B, 'Gerudo Training Grounds'), # Ganon's Castle shared - 'Ganons Tower Boss Key Chest': (0x2F040EE, None, 0x27EB, 'Chest', 0x0A, 'my tower'), + 'Ganons Tower Boss Key Chest': (0x2F040EE, None, 0x27EB, 'Chest', 0x0A, 'Ganon\'s Tower'), # Ganon's Castle vanilla - 'Ganons Castle Forest Trial Chest': (0x31F106E, None, 0x7889, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Water Trial Left Chest': (0x31D7236, None, 0x5F87, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Water Trial Right Chest': (0x31D7226, None, 0x5906, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Shadow Trial First Chest': (0x32350CA, None, 0x5888, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Shadow Trial Second Chest': (0x32350BA, None, 0x36C5, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Spirit Trial First Chest': (0x3268132, None, 0x8D72, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Spirit Trial Second Chest': (0x3268142, None, 0x6954, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Light Trial First Left Chest': (0x321B11E, None, 0x588C, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Light Trial Second Left Chest': (0x321B10E, None, 0x5F8B, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Light Trial Third Left Chest': (0x321B12E, None, 0x590D, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Light Trial First Right Chest': (0x321B13E, None, 0x5F8E, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Light Trial Second Right Chest': (0x321B0FE, None, 0x596A, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Light Trial Third Right Chest': (0x321B14E, None, 0x5F8F, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Light Trail Invisible Enemies Chest': (0x321B15E, None, 0x7850, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle Light Trial Lullaby Chest': (0x321B17E, None, 0x8851, 'Chest', 0x0D, 'my castle'), + 'Ganons Castle Forest Trial Chest': (0x31F106E, None, 0x7889, 'Chest', 0x0D, 'Ganon\'s Castle'), + 'Ganons Castle Water Trial Left Chest': (0x31D7236, None, 0x5F87, 'Chest', 0x0D, 'Ganon\'s Castle'), + 'Ganons Castle Water Trial Right Chest': (0x31D7226, None, 0x5906, 'Chest', 0x0D, 'Ganon\'s Castle'), + 'Ganons Castle Shadow Trial First Chest': (0x32350CA, None, 0x5888, 'Chest', 0x0D, 'Ganon\'s Castle'), + 'Ganons Castle Shadow Trial Second Chest': (0x32350BA, None, 0x36C5, 'Chest', 0x0D, 'Ganon\'s Castle'), + 'Ganons Castle Spirit Trial First Chest': (0x3268132, None, 0x8D72, 'Chest', 0x0D, 'Ganon\'s Castle'), + 'Ganons Castle Spirit Trial Second Chest': (0x3268142, None, 0x6954, 'Chest', 0x0D, 'Ganon\'s Castle'), + 'Ganons Castle Light Trial First Left Chest': (0x321B11E, None, 0x588C, 'Chest', 0x0D, 'Ganon\'s Castle'), + 'Ganons Castle Light Trial Second Left Chest': (0x321B10E, None, 0x5F8B, 'Chest', 0x0D, 'Ganon\'s Castle'), + 'Ganons Castle Light Trial Third Left Chest': (0x321B12E, None, 0x590D, 'Chest', 0x0D, 'Ganon\'s Castle'), + 'Ganons Castle Light Trial First Right Chest': (0x321B13E, None, 0x5F8E, 'Chest', 0x0D, 'Ganon\'s Castle'), + 'Ganons Castle Light Trial Second Right Chest': (0x321B0FE, None, 0x596A, 'Chest', 0x0D, 'Ganon\'s Castle'), + 'Ganons Castle Light Trial Third Right Chest': (0x321B14E, None, 0x5F8F, 'Chest', 0x0D, 'Ganon\'s Castle'), + 'Ganons Castle Light Trail Invisible Enemies Chest': (0x321B15E, None, 0x7850, 'Chest', 0x0D, 'Ganon\'s Castle'), + 'Ganons Castle Light Trial Lullaby Chest': (0x321B17E, None, 0x8851, 'Chest', 0x0D, 'Ganon\'s Castle'), # Ganon's Castle MQ - 'Ganons Castle MQ Water Trial Chest': (0, None, 0x59C1, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle MQ Forest Trial First Chest': (0, None, 0x8942, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle MQ Forest Trial Second Chest': (0, None, 0x8023, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle MQ Light Trial Lullaby Chest': (0, None, 0x8904, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle MQ Shadow Trial First Chest': (0, None, 0x8940, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle MQ Shadow Trial Second Chest': (0, None, 0x8845, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle MQ Spirit Trial Golden Gauntlets Chest': (0, None, 0xB6C6, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle MQ Spirit Trial Sun Back Right Chest': (0, None, 0x8907, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle MQ Spirit Trial Sun Back Left Chest': (0, None, 0x8848, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle MQ Spirit Trial Sun Front Left Chest': (0, None, 0x8909, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle MQ Spirit Trial First Chest': (0, None, 0x506A, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle MQ Spirit Trial Second Chest': (0, None, 0x6954, 'Chest', 0x0D, 'my castle'), - 'Ganons Castle MQ Forest Trial Freestanding Key': (None, None, 0x01, 'Collectable', 0x0D, 'my castle'), + 'Ganons Castle MQ Water Trial Chest': (0, None, 0x59C1, 'Chest', 0x0D, 'Ganon\'s Castle'), + 'Ganons Castle MQ Forest Trial First Chest': (0, None, 0x8942, 'Chest', 0x0D, 'Ganon\'s Castle'), + 'Ganons Castle MQ Forest Trial Second Chest': (0, None, 0x8023, 'Chest', 0x0D, 'Ganon\'s Castle'), + 'Ganons Castle MQ Light Trial Lullaby Chest': (0, None, 0x8904, 'Chest', 0x0D, 'Ganon\'s Castle'), + 'Ganons Castle MQ Shadow Trial First Chest': (0, None, 0x8940, 'Chest', 0x0D, 'Ganon\'s Castle'), + 'Ganons Castle MQ Shadow Trial Second Chest': (0, None, 0x8845, 'Chest', 0x0D, 'Ganon\'s Castle'), + 'Ganons Castle MQ Spirit Trial Golden Gauntlets Chest': (0, None, 0xB6C6, 'Chest', 0x0D, 'Ganon\'s Castle'), + 'Ganons Castle MQ Spirit Trial Sun Back Right Chest': (0, None, 0x8907, 'Chest', 0x0D, 'Ganon\'s Castle'), + 'Ganons Castle MQ Spirit Trial Sun Back Left Chest': (0, None, 0x8848, 'Chest', 0x0D, 'Ganon\'s Castle'), + 'Ganons Castle MQ Spirit Trial Sun Front Left Chest': (0, None, 0x8909, 'Chest', 0x0D, 'Ganon\'s Castle'), + 'Ganons Castle MQ Spirit Trial First Chest': (0, None, 0x506A, 'Chest', 0x0D, 'Ganon\'s Castle'), + 'Ganons Castle MQ Spirit Trial Second Chest': (0, None, 0x6954, 'Chest', 0x0D, 'Ganon\'s Castle'), + 'Ganons Castle MQ Forest Trial Freestanding Key': (None, None, 0x01, 'Collectable', 0x0D, 'Ganon\'s Castle'), # I don't think the addresses matter for Link's Pocket anymore, but they can't be None for some reason 'Links Pocket': (0x34806FB, 0x34806FF, None, 'Boss', None, 'Link\'s Pocket'), @@ -1605,11 +1605,11 @@ def _create_region(name, type, locations=None, exits=None): 'GS Graveyard Wall': (None, None, 0x80, 'GS Token', 0x10, 'the Graveyard'), 'GS Graveyard Bean Patch': (None, None, 0x01, 'GS Token', 0x10, 'the Graveyard'), - 'GS Zora River Ladder': (None, None, 0x01, 'GS Token', 0x11, 'Zora River'), - 'GS Zora River Tree': (None, None, 0x02, 'GS Token', 0x11, 'Zora River'), + 'GS Zora River Ladder': (None, None, 0x01, 'GS Token', 0x11, 'Zora\'s River'), + 'GS Zora River Tree': (None, None, 0x02, 'GS Token', 0x11, 'Zora\'s River'), 'GS Zora\'s Fountain Above the Log': (None, None, 0x04, 'GS Token', 0x11, 'Zora\'s Fountain'), - 'GS Zora River Above Bridge': (None, None, 0x08, 'GS Token', 0x11, 'Zora River'), - 'GS Zora River Near Raised Grottos': (None, None, 0x10, 'GS Token', 0x11, 'Zora River'), + 'GS Zora River Above Bridge': (None, None, 0x08, 'GS Token', 0x11, 'Zora\'s River'), + 'GS Zora River Near Raised Grottos': (None, None, 0x10, 'GS Token', 0x11, 'Zora\'s River'), 'GS Zora\'s Fountain Hidden Cave': (None, None, 0x20, 'GS Token', 0x11, 'Zora\'s Fountain'), 'GS Zora\'s Domain Frozen Waterfall': (None, None, 0x40, 'GS Token', 0x11, 'Zora\'s Domain'), 'GS Zora\'s Fountain Tree': (None, None, 0x80, 'GS Token', 0x11, 'Zora\'s Fountain'), @@ -1728,11 +1728,11 @@ def _create_region(name, type, locations=None, exits=None): 'LH Grotto Deku Scrub Arrows': (None, None, 0x33, 'GrottoNPC', 0x04, 'Lake Hylia'), 'Valley Grotto Deku Scrub Red Potion': (None, None, 0x39, 'GrottoNPC', 0x05, 'Gerudo Valley'), 'Valley Grotto Deku Scrub Green Potion': (None, None, 0x3A, 'GrottoNPC', 0x05, 'Gerudo Valley'), - 'LW Deku Scrub Deku Nuts': (None, None, 0x30, 'NPC', 0x5B, 'Lost Woods'), - 'LW Deku Scrub Deku Sticks': (None, None, 0x31, 'NPC', 0x5B, 'Lost Woods'), - 'LW Deku Scrub Deku Stick Upgrade': (None, None, 0x77, 'NPC', 0x5B, 'Lost Woods'), - 'LW Grotto Deku Scrub Arrows': (None, None, 0x33, 'GrottoNPC', 0x06, 'Lost Woods'), - 'LW Grotto Deku Scrub Deku Nut Upgrade': (None, None, 0x79, 'GrottoNPC', 0x06, 'Lost Woods'), + 'LW Deku Scrub Deku Nuts': (None, None, 0x30, 'NPC', 0x5B, 'the Lost Woods'), + 'LW Deku Scrub Deku Sticks': (None, None, 0x31, 'NPC', 0x5B, 'the Lost Woods'), + 'LW Deku Scrub Deku Stick Upgrade': (None, None, 0x77, 'NPC', 0x5B, 'the Lost Woods'), + 'LW Grotto Deku Scrub Arrows': (None, None, 0x33, 'GrottoNPC', 0x06, 'the Lost Woods'), + 'LW Grotto Deku Scrub Deku Nut Upgrade': (None, None, 0x79, 'GrottoNPC', 0x06, 'the Lost Woods'), 'Desert Grotto Deku Scrub Red Potion': (None, None, 0x39, 'GrottoNPC', 0x07, 'Desert Colossus'), 'Desert Grotto Deku Scrub Green Potion': (None, None, 0x3A, 'GrottoNPC', 0x07, 'Desert Colossus'), 'DMC Deku Scrub Bombs': (None, None, 0x37, 'NPC', 0x61, 'Death Mountain Crater'), From c27e9538f6cd03b1f6a89280ae640ec53fba6f80 Mon Sep 17 00:00:00 2001 From: AmazingAmpharos Date: Fri, 12 Oct 2018 06:01:28 -0500 Subject: [PATCH 690/755] Minor hint tweaks Fixed a typo in which a letter wasn't capitalized. Changed one hint that I meant to change in the last update but accidentally left in. --- HintList.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/HintList.py b/HintList.py index c08cc0c40..abf7366d0 100644 --- a/HintList.py +++ b/HintList.py @@ -53,7 +53,7 @@ def getHintGroup(group, world): 'Boomerang': (["a banana", "a stun stick"], "the Boomerang", 'item'), 'Bow': (["an archery enabler", "a danger dart launcher"], "a Bow", 'item'), 'Bomb Bag': (["an explosive container", "a blast bag"], "a Bomb Bag", 'item'), - 'Progressive Hookshot': (["Dampe's keepsake", "the Grapple Beam", "a Link lifter"], "a Hookshot", 'item'), + 'Progressive Hookshot': (["Dampe's keepsake", "the Grapple Beam", "the BOING! chain"], "a Hookshot", 'item'), 'Progressive Strength Upgrade': (["power gloves", "metal mittens", "the heavy lifty"], "a Strength Upgrade", 'item'), 'Progressive Scale': (["a deep dive", "a piece of Zora"], "a Zora Scale", 'item'), 'Hammer': (["the dragon smasher", "a switch deruster", "the WHAM! weapon"], "the Megaton Hammer", 'item'), @@ -106,7 +106,7 @@ def getHintGroup(group, world): 'Gerudo Membership Card': (["a girl club membership", "a woman license"], "the Gerudo Card", 'item'), 'Progressive Wallet': (["a mo' money holder", "a gem purse", "a portable bank"], "a Wallet", 'item'), 'Deku Stick Capacity': (["a lumber rack", "more flammable twigs"], "Deku Stick Capacity", 'item'), - 'Deku Nut Capacity': (["more nuts", "flashbang storage"], "Deku Nut capacity", 'item'), + 'Deku Nut Capacity': (["more nuts", "flashbang storage"], "Deku Nut Capacity", 'item'), 'Heart Container': (["a lot of love", "a Valentine's gift", "a boss's organ"], "a Heart Container", 'item'), 'Piece of Heart': (["a little love", "a broken heart"], "a Piece of Heart", 'item'), 'Piece of Heart (Treasure Chest Game)': ("a victory valentine", "a Piece of Heart", 'item'), From 37eeaf891cdee7472f4749d0f03aced4645552de Mon Sep 17 00:00:00 2001 From: Raikaru13 <42095348+Raikaru13@users.noreply.github.com> Date: Fri, 12 Oct 2018 08:04:14 -0400 Subject: [PATCH 691/755] Update SFX to be easier to add to settings.py failed to update the list without manual adding. streamlined so only changes to patches.py is needed as well as splitting HP and Navi SFX as some SFX shouldn't be in both. --- Patches.py | 108 +++++++++++++++++++++++++++++++++++++++++----------- Settings.py | 52 ++----------------------- 2 files changed, 89 insertions(+), 71 deletions(-) diff --git a/Patches.py b/Patches.py index 47dfd1237..123791764 100644 --- a/Patches.py +++ b/Patches.py @@ -73,6 +73,76 @@ "Phantom Zelda": [0x97, 0x7A, 0x6C, 0xFF, 0x6F, 0x46, 0x67, 0x00], } +NaviSFX = { + 'Default' : 0x685F, + 'None' : 0x0000, + 'Cluck' : 0x2812, + 'Rupee' : 0x4803, + 'Softer Beep' : 0x4804, + 'Recovery Heart': 0x480B, + 'Timer' : 0x481A, + 'Low Health' : 0x481B, + 'Notification' : 0x4820, + 'Tamborine' : 0x4842, + 'Carrot Refill' : 0x4845, + 'Zelda - Gasp' : 0x6879, + 'Mweep!' : 0x687A, + 'Ice Break' : 0x0875, + 'Explosion' : 0x180E, + 'Crate' : 0x2839, + 'Great Fairy' : 0x6858, + 'Moo' : 0x28DF, + 'Bark' : 0x28D8, + 'Kero Kero' : 0x28B1, + 'Broken Pot' : 0x2887, + 'Cockadoodledoo': 0x2813, + 'Epona' : 0x2805, + 'Gold Skulltula': 0x39DA, + 'Redead' : 0x38E5, + 'Poe' : 0x38EC, + 'Ruto' : 0x4863, + 'Howl' : 0x28AE, + 'Business Scrub': 0x3882, + 'Guay' : 0x38B6, + 'H`lo!' : 0x4844 +} + +HealthSFX = { + 'Default' : 0x481B, + 'None' : 0x0000, + 'Cluck' : 0x2812, + 'Softer Beep' : 0x4804, + 'Recovery Heart': 0x480B, + 'Timer' : 0x481A, + 'Notification' : 0x4820, + 'Tamborine' : 0x4842, + 'Carrot Refill' : 0x4845, + 'Navi - Random' : 0x6843, + 'Navi - Hey!' : 0x685F, + 'Zelda - Gasp' : 0x6879, + 'Mweep!' : 0x687A, + 'Iron Boots' : 0x080D, + 'Hammer' : 0x180A, + 'Sword Bounce' : 0x181A, + 'Bow' : 0x1830, + 'Gallop' : 0x2804, + 'Drawbridge' : 0x280E, + 'Switch' : 0x2815, + 'Bomb Bounce' : 0x282F, + 'Bark' : 0x28D8, + 'Kero Kero' : 0x28B1, + 'Broken Pot' : 0x2887, + 'Business Scrub': 0x3882, + 'Guay' : 0x38B6, + 'Bongo Bongo' : 0x3950 +} + +def get_NaviSFX(): + return list(NaviSFX.keys()) + +def get_HealthSFX(): + return list(HealthSFX.keys()) + def get_tunic_colors(): return list(TunicColors.keys()) @@ -1521,36 +1591,28 @@ def write_save_table(rom): color = color + [0xFF] + color + [0x00] rom.write_bytes(Navi[i][j], color) - SFXTable = { - 'None' : 0x0000, - 'Cluck' : 0x2812, - 'Rupee' : 0x4803, - 'Softer Beep' : 0x4804, - 'Recovery Heart': 0x480B, - 'Timer' : 0x481A, - 'Low Health' : 0x481B, - 'Notification' : 0x4820, - 'Tamborine' : 0x4842, - 'Carrot Refill' : 0x4845, - 'Navi - Random' : 0x6843, - 'Navi - Hey!' : 0x685F, - 'Zelda - Gasp' : 0x6879, - 'Mweep!' : 0x687A } - - SFXList = list(SFXTable.keys()) - # Configurable Sound Effects - sound_addresses = [ + navi_addresses = [ (world.navisfxoverworld, [0xAE7EF2, 0xC26C7E]), # Navi Overworld Hint (0x685F) (world.navisfxenemytarget, [0xAE7EC6]), # Navi Enemy Target Hint (0x6843) - (world.healthSFX, [0xADBA1A])] # Low Health Beep (0x481B) + ] + health_addresses = [ + (world.healthSFX, [0xADBA1A]) # Low Health Beep (0x481B) + ] - for thisSFX, addresses in sound_addresses: + for thisSFX, addresses in navi_addresses: if thisSFX == 'Random Choice': - thisSFX = random.choice(SFXList) + thisSFX = random.choice(NaviSFX) if thisSFX != 'Default': for address in addresses: - rom.write_int16(address, SFXTable[thisSFX]) + rom.write_int16(address, NaviSFX[thisSFX]) + + for thatSFX, addresses in health_addresses: + if thatSFX == 'Random Choice': + thatSFX = random.choice(HealthSFX) + if thatSFX != 'Default': + for address in addresses: + rom.write_int16(address, HealthSFX[thatSFX]) return rom diff --git a/Settings.py b/Settings.py index f19fc401a..7b42eff8b 100644 --- a/Settings.py +++ b/Settings.py @@ -5,7 +5,7 @@ import random import hashlib -from Patches import get_tunic_color_options, get_navi_color_options +from Patches import get_tunic_color_options, get_navi_color_options, get_NaviSFX, get_HealthSFX from version import __version__ from Utils import random_choices @@ -2011,22 +2011,7 @@ def parse_custom_navi_color(s): 'group': 'navihint', 'widget': 'Combobox', 'default': 'Default', - 'options': [ - 'Random Choice', - 'Default', - 'Notification', - 'Rupee', - 'Timer', - 'Tamborine', - 'Recovery Heart', - 'Carrot Refill', - 'Navi - Hey!', - 'Navi - Random', - 'Zelda - Gasp', - 'Cluck', - 'Mweep!', - 'None', - ] + 'options': get_NaviSFX(), }), Setting_Info('navisfxenemytarget', str, 0, False, { @@ -2045,22 +2030,7 @@ def parse_custom_navi_color(s): 'group': 'navihint', 'widget': 'Combobox', 'default': 'Default', - 'options': [ - 'Random Choice', - 'Default', - 'Notification', - 'Rupee', - 'Timer', - 'Tamborine', - 'Recovery Heart', - 'Carrot Refill', - 'Navi - Hey!', - 'Navi - Random', - 'Zelda - Gasp', - 'Cluck', - 'Mweep!', - 'None', - ] + 'options': get_NaviSFX(), }), Setting_Info('healthSFX', str, 0, False, { @@ -2079,21 +2049,7 @@ def parse_custom_navi_color(s): 'group': 'lowhp', 'widget': 'Combobox', 'default': 'Default', - 'options': [ - 'Random Choice', - 'Default', - 'Softer Beep', - 'Rupee', - 'Timer', - 'Tamborine', - 'Recovery Heart', - 'Carrot Refill', - 'Navi - Hey!', - 'Zelda - Gasp', - 'Cluck', - 'Mweep!', - 'None', - ], + 'options': get_HealthSFX(), 'tooltip':'''\ 'Random Choice': Choose a random sound from this list. From d211aa245a384e4e4fda0bdac9fc3c9b4cfb4362 Mon Sep 17 00:00:00 2001 From: Raikaru13 <42095348+Raikaru13@users.noreply.github.com> Date: Fri, 12 Oct 2018 08:30:22 -0400 Subject: [PATCH 692/755] Update Patches.py --- Patches.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/Patches.py b/Patches.py index 123791764..a84db6fdd 100644 --- a/Patches.py +++ b/Patches.py @@ -73,8 +73,7 @@ "Phantom Zelda": [0x97, 0x7A, 0x6C, 0xFF, 0x6F, 0x46, 0x67, 0x00], } -NaviSFX = { - 'Default' : 0x685F, +NaviSFX = { 'None' : 0x0000, 'Cluck' : 0x2812, 'Rupee' : 0x4803, @@ -108,7 +107,6 @@ } HealthSFX = { - 'Default' : 0x481B, 'None' : 0x0000, 'Cluck' : 0x2812, 'Softer Beep' : 0x4804, @@ -138,10 +136,10 @@ } def get_NaviSFX(): - return list(NaviSFX.keys()) + return list("Random Choice", "Default", NaviSFX.keys()) def get_HealthSFX(): - return list(HealthSFX.keys()) + return list("Random Choice", "Default", HealthSFX.keys()) def get_tunic_colors(): return list(TunicColors.keys()) From d5793b31c0e7833b92b5e3afce329939471d6f06 Mon Sep 17 00:00:00 2001 From: Raikaru13 <42095348+Raikaru13@users.noreply.github.com> Date: Fri, 12 Oct 2018 08:44:26 -0400 Subject: [PATCH 693/755] Fixed SFX options to have random choice as well --- Patches.py | 10 ++++++++-- Settings.py | 8 ++++---- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/Patches.py b/Patches.py index a84db6fdd..c6846f311 100644 --- a/Patches.py +++ b/Patches.py @@ -136,10 +136,16 @@ } def get_NaviSFX(): - return list("Random Choice", "Default", NaviSFX.keys()) + return list(NaviSFX.keys()) + +def get_NaviSFX_options(): + return ["Default", "Random Choice"] + get_NaviSFX() def get_HealthSFX(): - return list("Random Choice", "Default", HealthSFX.keys()) + return list(HealthSFX.keys()) + +def get_HealthSFX_options(): + return ["Default", "Random Choice"] + get_HealthSFX() def get_tunic_colors(): return list(TunicColors.keys()) diff --git a/Settings.py b/Settings.py index 7b42eff8b..d2fae4ac0 100644 --- a/Settings.py +++ b/Settings.py @@ -5,7 +5,7 @@ import random import hashlib -from Patches import get_tunic_color_options, get_navi_color_options, get_NaviSFX, get_HealthSFX +from Patches import get_tunic_color_options, get_navi_color_options, get_NaviSFX_options, get_HealthSFX_options from version import __version__ from Utils import random_choices @@ -2011,7 +2011,7 @@ def parse_custom_navi_color(s): 'group': 'navihint', 'widget': 'Combobox', 'default': 'Default', - 'options': get_NaviSFX(), + 'options': get_NaviSFX_options(), }), Setting_Info('navisfxenemytarget', str, 0, False, { @@ -2030,7 +2030,7 @@ def parse_custom_navi_color(s): 'group': 'navihint', 'widget': 'Combobox', 'default': 'Default', - 'options': get_NaviSFX(), + 'options': get_NaviSFX_options(), }), Setting_Info('healthSFX', str, 0, False, { @@ -2049,7 +2049,7 @@ def parse_custom_navi_color(s): 'group': 'lowhp', 'widget': 'Combobox', 'default': 'Default', - 'options': get_HealthSFX(), + 'options': get_HealthSFX_options(), 'tooltip':'''\ 'Random Choice': Choose a random sound from this list. From 26b03ecd03e0303773a94813847073ff981f042a Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 12 Oct 2018 15:13:10 -0400 Subject: [PATCH 694/755] Combine the navi/health write code again --- Patches.py | 23 +++++++---------------- version.py | 2 +- 2 files changed, 8 insertions(+), 17 deletions(-) diff --git a/Patches.py b/Patches.py index c6846f311..45da25514 100644 --- a/Patches.py +++ b/Patches.py @@ -1596,28 +1596,19 @@ def write_save_table(rom): rom.write_bytes(Navi[i][j], color) # Configurable Sound Effects - navi_addresses = [ - (world.navisfxoverworld, [0xAE7EF2, 0xC26C7E]), # Navi Overworld Hint (0x685F) - (world.navisfxenemytarget, [0xAE7EC6]), # Navi Enemy Target Hint (0x6843) + sfx_addresses = [ + (world.navisfxoverworld, [0xAE7EF2, 0xC26C7E], NaviSFX), # Navi Overworld Hint (0x685F) + (world.navisfxenemytarget, [0xAE7EC6], NaviSFX), # Navi Enemy Target Hint (0x6843) + (world.healthSFX, [0xADBA1A], HealthSFX) # Low Health Beep (0x481B) ] - health_addresses = [ - (world.healthSFX, [0xADBA1A]) # Low Health Beep (0x481B) - ] - for thisSFX, addresses in navi_addresses: + for thisSFX, addresses, SFX_table in sfx_addresses: if thisSFX == 'Random Choice': - thisSFX = random.choice(NaviSFX) + thisSFX = random.choice(SFX_table) if thisSFX != 'Default': for address in addresses: - rom.write_int16(address, NaviSFX[thisSFX]) + rom.write_int16(address, SFX_table[thisSFX]) - for thatSFX, addresses in health_addresses: - if thatSFX == 'Random Choice': - thatSFX = random.choice(HealthSFX) - if thatSFX != 'Default': - for address in addresses: - rom.write_int16(address, HealthSFX[thatSFX]) - return rom def get_override_table(world): diff --git a/version.py b/version.py index 098e6adba..5a4921c8c 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.21.8 f.LUM' +__version__ = '2.21.9 f.LUM' From be6702daa27126e07b8311c1f1a5b4379267fb72 Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 12 Oct 2018 15:39:56 -0400 Subject: [PATCH 695/755] Combine tunic and navi color code to be more pythonic --- BaseClasses.py | 3 -- Patches.py | 100 +++++++++++++++++++++++-------------------------- version.py | 2 +- 3 files changed, 47 insertions(+), 58 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 05349ce31..9b2b69df4 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -29,9 +29,6 @@ def __init__(self, settings): # rename a few attributes... self.keysanity = self.shuffle_smallkeys != 'dungeon' self.check_beatable_only = not self.all_reachable - # group a few others - self.tunic_colors = [self.kokiricolor, self.goroncolor, self.zoracolor] - self.navi_colors = [self.navicolordefault, self.navicolorenemy, self.navicolornpc, self.navicolorprop] # trials that can be skipped will be decided later self.skipped_trials = { 'Forest': False, diff --git a/Patches.py b/Patches.py index 45da25514..f878a96c4 100644 --- a/Patches.py +++ b/Patches.py @@ -1536,64 +1536,56 @@ def write_save_table(rom): random.seed() # patch tunic colors - # Custom color tunic stuff - Tunics = [] - Tunics.append(0x00B6DA38) # Kokiri Tunic - Tunics.append(0x00B6DA3B) # Goron Tunic - Tunics.append(0x00B6DA3E) # Zora Tunic + Tunics = [ + (world.kokiricolor, 0x00B6DA38), # Kokiri Tunic + (world.goroncolor, 0x00B6DA3B), # Goron Tunic + (world.zoracolor, 0x00B6DA3E), # Zora Tunic + ] colorList = get_tunic_colors() - randomColors = random_choices(colorList, k=3) - - for i in range(len(Tunics)): - # get the color option - thisColor = world.tunic_colors[i] - # handle true random - randColor = [random.getrandbits(8), random.getrandbits(8), random.getrandbits(8)] - if thisColor == 'Completely Random': - color = randColor - else: - # handle random - if world.tunic_colors[i] == 'Random Choice': - color = TunicColors[randomColors[i]] - # grab the color from the list - elif thisColor in TunicColors: - color = TunicColors[thisColor] - # build color from hex code - else: - color = list(int(thisColor[i:i+2], 16) for i in (0, 2 ,4)) - rom.write_bytes(Tunics[i], color) + + for tunic_option, address in Tunics: + # handle random + if tunic_option == 'Random Choice': + tunic_option = random.choice(colorList) + # handle completely random + if tunic_option == 'Completely Random': + color = [random.getrandbits(8), random.getrandbits(8), random.getrandbits(8)] + # grab the color from the list + elif tunic_option in TunicColors: + color = TunicColors[tunic_option] + # build color from hex code + else: + color = list(int(tunic_option[i:i+2], 16) for i in (0, 2 ,4)) + rom.write_bytes(address, color) # patch navi colors - Navi = [] - Navi.append([0x00B5E184]) # Default - Navi.append([0x00B5E19C, 0x00B5E1BC]) # Enemy, Boss - Navi.append([0x00B5E194]) # NPC - Navi.append([0x00B5E174, 0x00B5E17C, 0x00B5E18C, 0x00B5E1A4, 0x00B5E1AC, 0x00B5E1B4, 0x00B5E1C4, 0x00B5E1CC, 0x00B5E1D4]) # Everything else + Navi = [ + (world.navicolordefault, [0x00B5E184]), # Default + (world.navicolorenemy, [0x00B5E19C, 0x00B5E1BC]), # Enemy, Boss + (world.navicolornpc, [0x00B5E194]), # NPC + (world.navicolorprop, [0x00B5E174, 0x00B5E17C, 0x00B5E18C, + 0x00B5E1A4, 0x00B5E1AC, 0x00B5E1B4, + 0x00B5E1C4, 0x00B5E1CC, 0x00B5E1D4]), # Everything else + ] naviList = get_navi_colors() - randomColors = random_choices(naviList, k=4) - - for i in range(len(Navi)): - # do everything in the inner loop so that "true random" changes even for subcategories - for j in range(len(Navi[i])): - # get the color option - thisColor = world.navi_colors[i] - # handle true random - randColor = [random.getrandbits(8), random.getrandbits(8), random.getrandbits(8), 0xFF, + + for navi_option, navi_addresses in Navi: + # choose a random choice for the whole group + if navi_option == 'Random Choice': + navi_option = random.choice(naviList) + for address in navi_addresses: + # completely random is random for every subgroup + if navi_option == 'Completely Random': + color = [random.getrandbits(8), random.getrandbits(8), random.getrandbits(8), 0xFF, random.getrandbits(8), random.getrandbits(8), random.getrandbits(8), 0x00] - if thisColor == 'Completely Random': - color = randColor - else: - # handle random - if world.navi_colors[i] == 'Random Choice': - color = NaviColors[randomColors[i]] - # grab the color from the list - elif thisColor in NaviColors: - color = NaviColors[thisColor] - # build color from hex code - else: - color = list(int(thisColor[i:i+2], 16) for i in (0, 2 ,4)) - color = color + [0xFF] + color + [0x00] - rom.write_bytes(Navi[i][j], color) + # grab the color from the list + elif navi_option in NaviColors: + color = NaviColors[navi_option] + # build color from hex code + else: + color = list(int(navi_option[i:i+2], 16) for i in (0, 2 ,4)) + color = color + [0xFF] + color + [0x00] + rom.write_bytes(address, color) # Configurable Sound Effects sfx_addresses = [ @@ -1604,7 +1596,7 @@ def write_save_table(rom): for thisSFX, addresses, SFX_table in sfx_addresses: if thisSFX == 'Random Choice': - thisSFX = random.choice(SFX_table) + thisSFX = random.choice(list(SFX_table.keys())) if thisSFX != 'Default': for address in addresses: rom.write_int16(address, SFX_table[thisSFX]) diff --git a/version.py b/version.py index 5a4921c8c..b6d24a52d 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.21.9 f.LUM' +__version__ = '2.21.10 f.LUM' From b638df27718c4a131d60d9e3893f2ead1abe6913 Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 12 Oct 2018 15:47:25 -0400 Subject: [PATCH 696/755] Fix typo in Skulltula --- HintList.py | 2 +- Hints.py | 6 +++--- ItemList.py | 8 ++++---- Items.py | 2 +- Rules.py | 10 +++++----- version.py | 2 +- 6 files changed, 15 insertions(+), 15 deletions(-) diff --git a/HintList.py b/HintList.py index abf7366d0..d8cf1129d 100644 --- a/HintList.py +++ b/HintList.py @@ -152,7 +152,7 @@ def getHintGroup(group, world): 'Deku Nuts (5)': (["some nuts", "some flashbangs", "some Deku vomit"], "Deku Nuts (5 pieces)", 'item'), 'Deku Nuts (10)': (["lots-o-nuts", "plenty of flashbangs", "plenty of Deku vomit"], "Deku Nuts (10 pieces)", 'item'), 'Deku Seeds (30)': (["catapult ammo", "lots-o-seeds"], "Deku Seeds (30 pieces)", 'item'), - 'Gold Skulltulla Token': (["proof of destruction", "an arachnid chip", "spider remains", "one percent of a curse"], "a Gold Skulltula Token", 'item'), + 'Gold Skulltula Token': (["proof of destruction", "an arachnid chip", "spider remains", "one percent of a curse"], "a Gold Skulltula Token", 'item'), '10 Big Poes': (["#Big Poes# leads to", "#ghost hunters# will be rewarded with"], None, 'alwaysLocation'), 'Deku Theater Mask of Truth': ("the #Mask of Truth# yields", None, 'alwaysLocation'), diff --git a/Hints.py b/Hints.py index da8a7a0e7..d631dd94b 100644 --- a/Hints.py +++ b/Hints.py @@ -168,7 +168,7 @@ def buildGossipHints(world): location.item.type != 'Shop' and \ not location.event and \ not isDungeonItem(location.item) and \ - (world.tokensanity != 'off' or location.item.name != 'Gold Skulltulla Token') and\ + (world.tokensanity != 'off' or location.item.type != 'Token') and\ location.item.type != 'Song'] if (len(dungeon_locations) == 0): continue @@ -187,7 +187,7 @@ def buildGossipHints(world): locationWorld.item.type != 'Event' and \ locationWorld.item.type != 'Shop' and \ not locationWorld.event and \ - (world.tokensanity == 'all' or locationWorld.item.name != 'Gold Skulltulla Token') and \ + (world.tokensanity == 'all' or locationWorld.item.type != 'Token') and \ not locationWorld.parent_region.dungeon] overworldSample = overworldlocations if len(overworldSample) >= 3: @@ -213,7 +213,7 @@ def buildGossipHints(world): locationWorld.item.type != 'Event' and \ locationWorld.item.type != 'Shop' and \ not locationWorld.event and \ - locationWorld.item.name != 'Gold Skulltulla Token' and \ + locationWorld.item.type != 'Token' and \ not locationWorld.item.key] gooditemSample = gooditemlocations if len(gooditemSample) >= 6: diff --git a/ItemList.py b/ItemList.py index fc810e162..96e4a8603 100644 --- a/ItemList.py +++ b/ItemList.py @@ -570,15 +570,15 @@ def get_pool_core(world): 'GS Ice Cavern Push Block Room']) if world.tokensanity == 'off': for location in skulltulla_locations_final: - placed_items[location] = 'Gold Skulltulla Token' + placed_items[location] = 'Gold Skulltula Token' elif world.tokensanity == 'dungeons': for location in skulltulla_locations_final: if world.get_location(location).scene >= 0x0A: - placed_items[location] = 'Gold Skulltulla Token' + placed_items[location] = 'Gold Skulltula Token' else: - pool.append('Gold Skulltulla Token') + pool.append('Gold Skulltula Token') else: - pool.extend(['Gold Skulltulla Token'] * 100) + pool.extend(['Gold Skulltula Token'] * 100) if world.bombchus_in_logic: pool.extend(['Bombchus'] * 4) diff --git a/Items.py b/Items.py index 5b0bc48f5..68ae1aaff 100644 --- a/Items.py +++ b/Items.py @@ -178,7 +178,7 @@ def __init__(self, model, gid, price): 'Serenade of Water': (True, False, 'Song', [0x04, 0x9], 0xC6, 0x00B6, 0x05), 'Nocturne of Shadow': (True, False, 'Song', [0x06, 0x7], 0xC8, 0x00B6, 0x07), 'Requiem of Spirit': (True, False, 'Song', [0x05, 0x8], 0xC7, 0x00B6, 0x08), - 'Gold Skulltulla Token': (True, False, 'Token', None, 0x5B, 0x015C, 0x63), + 'Gold Skulltula Token': (True, False, 'Token', None, 0x5B, 0x015C, 0x63), 'Epona': (True, False, 'Event', None, None, None, None), 'Deku Stick Drop': (True, False, 'Event', None, None, None, None), 'Deku Nut Drop': (True, False, 'Event', None, None, None, None), diff --git a/Rules.py b/Rules.py index 46c208ff2..d548002f2 100644 --- a/Rules.py +++ b/Rules.py @@ -176,19 +176,19 @@ def global_rules(world): set_rule(world.get_location('Man on Roof'), lambda state: world.logic_man_on_roof or state.can_use('Hookshot')) set_rule( world.get_location('10 Gold Skulltulla Reward'), - lambda state: (expected_skulltulas >= 10) and state.has('Gold Skulltulla Token', 10)) + lambda state: (expected_skulltulas >= 10) and state.has('Gold Skulltula Token', 10)) set_rule( world.get_location('20 Gold Skulltulla Reward'), - lambda state: (expected_skulltulas >= 20) and state.has('Gold Skulltulla Token', 20)) + lambda state: (expected_skulltulas >= 20) and state.has('Gold Skulltula Token', 20)) set_rule( world.get_location('30 Gold Skulltulla Reward'), - lambda state: (expected_skulltulas >= 30) and state.has('Gold Skulltulla Token', 30) and state.guarantee_hint()) + lambda state: (expected_skulltulas >= 30) and state.has('Gold Skulltula Token', 30) and state.guarantee_hint()) set_rule( world.get_location('40 Gold Skulltulla Reward'), - lambda state: (expected_skulltulas >= 40) and state.has('Gold Skulltulla Token', 40) and state.guarantee_hint()) + lambda state: (expected_skulltulas >= 40) and state.has('Gold Skulltula Token', 40) and state.guarantee_hint()) set_rule( world.get_location('50 Gold Skulltulla Reward'), - lambda state: (expected_skulltulas >= 50) and state.has('Gold Skulltulla Token', 50) and state.guarantee_hint()) + lambda state: (expected_skulltulas >= 50) and state.has('Gold Skulltula Token', 50) and state.guarantee_hint()) set_rule(world.get_location('Heart Piece Grave Chest'), lambda state: state.can_play('Suns Song')) set_rule(world.get_entrance('Composer Grave'), lambda state: state.can_play('Zeldas Lullaby')) set_rule( diff --git a/version.py b/version.py index b6d24a52d..ca7f45b9a 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.21.10 f.LUM' +__version__ = '2.21.11 f.LUM' From 61ed13b36e082bb8b81d5cf6a709e2bf8a97ca48 Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 12 Oct 2018 16:04:44 -0400 Subject: [PATCH 697/755] Make the gui readme option funcional --- Gui.py | 14 +- README.html | 429 ++++++++++++++++++++++++++++++++++++++++++++++++++++ version.py | 2 +- 3 files changed, 436 insertions(+), 9 deletions(-) create mode 100644 README.html diff --git a/Gui.py b/Gui.py index 92a151a83..505b5cb59 100755 --- a/Gui.py +++ b/Gui.py @@ -252,14 +252,6 @@ def output_dir_select(): outputDirLabel.pack(side=LEFT, padx=(3,0)) outputDirEntry.pack(side=LEFT, padx=3) outputDirButton.pack(side=LEFT) - outputDialogFrame.pack(side=TOP, anchor=W, padx=5, pady=(5,1)) - - if os.path.exists(local_path('README.html')): - def open_readme(): - open_file(local_path('README.html')) - openReadmeButton = Button(outputDialogFrame, text='Open Documentation', command=open_readme) - openReadmeButton.pack(side=LEFT, padx=5) - outputDialogFrame.pack(side=TOP, anchor=W, pady=3) countDialogFrame = Frame(frames['rom_tab']) @@ -267,6 +259,12 @@ def open_readme(): guivars['count'] = StringVar() countSpinbox = Spinbox(countDialogFrame, from_=1, to=100, textvariable=guivars['count'], width=3) + if os.path.exists(local_path('README.html')): + def open_readme(): + open_file(local_path('README.html')) + openReadmeButton = Button(countDialogFrame, text='Open Documentation', command=open_readme) + openReadmeButton.pack(side=RIGHT, padx=5) + countLabel.pack(side=LEFT) countSpinbox.pack(side=LEFT, padx=2) countDialogFrame.pack(side=TOP, anchor=W, padx=5, pady=(1,1)) diff --git a/README.html b/README.html new file mode 100644 index 000000000..9fae8af86 --- /dev/null +++ b/README.html @@ -0,0 +1,429 @@ +

OoTRandomizer

+

This is a randomizer for The Legend of Zelda: Ocarina of Time for the Nintendo 64.

+

Installation

+

It is strongly suggested users get the latest release from here: https://github.com/AmazingAmpharos/OoT-Randomizer/releases .
Simply download the .msi installer and run it if you have a Windows machine.

+

If you do not have Windows or you simply wish to run the script raw, clone this repository and either run '''Gui.py''' for a
graphical interface or '''OoTRandomizer.py''' for the command line version. Both require Python 3.5+.

+

This randomizer requires The Legend of Zelda: Ocarina of Time version 1.0 NTSC-US version. This randomizer includes an in-built decompressor, but if
the user wishes a pre-decompressed ROM may be supplied as input. Please be sure your input ROM filename is either a .n64 or .z64 file. For users
playing via any means other than on real N64 hardware, the use of the "Compress patched ROM" flag is strongly encouraged as uncompressed ROMs are
impossible to inject for the Virtual Console and have random crashing problems on all emulators.

+

For general use, the recommended emulator is RetroArch; it has been shown to work with minimal issues. Bizhawk and Mupen64plus are generally good choices
too. If you want to play on Project 64 for whatever reason, you can but you will need to set the rando to use 8 MB of RAM and will want to play with the
cheat code 8109C58A 0000 to partially fix Project 64's tragically poor handling of OoT's pause menu. Project 64 also has one particular crash that only
happens for some unknown settings configurations; we cannot support this. I cannot emphasize enough that it is a discouraged emulator to use.

+

General Description

+

This program takes The Legend of Zelda: Ocarina of Time and randomizes the locations of the items for a more dynamic play experience.
Proper logic is used to ensure every seed is possible to complete without the use of glitches and will be safe from the possibility of softlocks
with any possible usage of keys in dungeons.

+

The items that randomize currently are all items within chests including those in grottos, items given as rewards by NPCs including from minigames and
Deku Scrub Salesmen, the items given by freestanding Pieces of Heart, Heart Containers, and Keys, and the items obtained when getting the Bottle and the
Fire Arrows at Lake Hylia or the Ocarina of Time from the Castle Town moat. All dungeons will always have the same number of Maps, Compasses, Small Keys,
and Boss Keys they had in the original game, but which chests within those dungeons have those things is random. The item pool will contain a Biggoron Sword
that will not interfere with Medigoron's sale of the Giant's Knife (which is always vanilla), and a randomly selected adult trading quest item other than the
Odd Potion will be somewhere in the item pool.

+

Certain types of items are now "progressive", meaning that no matter what order the player encounters these items they will function as a series of upgrades.
The following item types will be progressive chains:

+

-Hookshot to Longshot
-Bomb Bag to Big Bomb Bag to Biggest Bomb Bag
-Goron Bracelet to Silver Gauntlets to Gold Gauntlets
-Slingshot to Big Bullet Bag to Biggest Bullet Bag
-Bow to Big Quiver to Biggest Quiver
-Silver Scale to Gold Scale
-Adult Wallet to Giant's Wallet
-Deku Stick Capacity Upgrades
-Deku Nut Capacity Upgrades
-Magic Meter to Double Magic

+

To be more clear about which NPC items are shuffled, it's only the one time permanent item rewards for the most part like NPCs who originally gave Pieces of Heart
or inventory items. The only exception is that even though in vanilla the reward for 40 Gold Skulltulla Tokens was just 10 Bombchus that is still a randomized reward
in randomizer (but the 200 rupees for all 100 Gold Skulltulla Tokens is not randomized so the most tokens that could be required to complete a seed is 50). As a mercy
to the player, the Ocarina Memory Game in the Lost Woods will start on the final round as that minigame was very long originally, the three day wait on the Claim Check
is removed, Bombchu Bowling will have a fixed sequence of prizes that is of maximum convenience to the player, Dampe's Gravedigging Tour will always be won on the first
dig, and the fishing minigame is made much simpler (8 lb fish for child now, 10 lb for adult). Additionally, any NPC who gives a trading quest item either for the child
or for the adult other than Anju's initial gift as an adult does not have a randomized reward.

+

A special note is needed for the six Great Fairy Fountains scattered across Hyrule. All six of these fountains now give random item rewards, and the magic and life
upgrades can now be found as normal items scattered around the world. Happy hunting!

+

The Ocarina songs are shuffled in a pool amongst themselves, and each learn spot will still have the original conditions it has always had. These conditions may not
have all been obvious, but here are some high points. Saria will teach her song after completing the events in the Castle Courtyard. The warp songs can mostly only
be learned by an adult, but the location for Requiem of Spirit is available for even a child if the Desert Colossus can be reached. The location for the Prelude of
Light requires the Forest Medallion, and the location for the Nocturne of Shadow requires the Forest Medallion, Fire Medallion, and Water Medallions. This can be
changed with a setting.

+

Speaking of Medallions, each boss in the eight main dungeons will drop a random Spiritual Stone or Medallion, and instead of the Light Medallion being granted by the
now removed "becoming an adult" cutscene, the player will start every seed with a random Spiritual Stone or Medallion. The pedestal in which the Spiritual Stones
rest in the Temple of Time has hint text pointing to the locations of the Spiritual Stones and Medallions. A child will be able to read hints for the Spiritual
Stones while an adult will be able to read hints for the Medallions. This information and some other relevant dungeon based info can be seen in the pause menu by
holding the "A" button on the c-item menu.

+

To be very clear on this point, while the rewards for up to 50 Gold Skulltulla Tokens are randomized, the tokens themselves are not.

+

As a service to the player in this very long game, many cutscenes have been greatly shortened or removed and text is as often as possible either omitted or sped up.
We have been as thorough as our exploration of the game and various technical limitations will allow to make the parts of the game where you're watching and reading
as short as possible to make as much of your time with this randomizer as possible actual gameplay. I'm sure someone somewhere will miss the owl's interjections; to
that person, I'm sorry I guess?

+

A few bugs or other undesirable behaviors in the original game have been fixed. Of note, obtaining the Poacher's Saw will no longer prevent the player from obtaining
the reward in the Deku Theater for showing the Mask of Truth, and becoming an adult will not automatically equip the child with the Kokiri Sword. Sheik will no longer
prevent the player from returning to childhood before obtaining the Forest Medallion. Princess Ruto will never disappear from Jabu Jabu's Belly, and the condition for
the Castle Courtyard being sealed off is now completing the events within as opposed to seeing the Ocarina of Time be thrown into the moat.

+

One small detail that is important to know is that the locked door in the Fire Temple leading to the section with the Boss Key Chest is removed. This was necessary
due to the original design of the Fire Temple assuming that the player could not possibly have the Hammer before unlocking the doors leading into the depths of the
dungeon. This is obviously not true in randomizer, and of all possible solutions to this problem, this seemed the least disruptive. A full clear of the Fire Temple will
simply result in the player having one extra Small Key. Certain settings configurations will disable this behavior.

+

To be clear about the logic rules of what can be where, the randomizer will ensure a glitchless path through the seed will exist, but the randomizer will not prevent
the use of glitches for those players who enjoy that sort of thing though we offer no guarantees that all glitches will have identical behavior to the original game.
Glitchless can still mean that clever or unintuitive strategies may be required involving the use of things like Hover Boots, the Hookshot, or Scarecrow's Song that
may not have been important options in the original game. The Lens of Truth is guaranteed available and useable before completion of the Treasure Chest Game is required
or before walking through any invisible objects or opening any invisible chests is required with the exception of the one invisible wall that is required to enter
the Bottom of the Well as the original game required passing that invisible wall to reach the Lens of Truth.

+

One last detail is that the menu is now more like the Majora's Mask menu in that the player can move the cursor through empty spaces. This fixes a major problem from
the original game in that certain combinations of items would create menu shapes that would be impossible to fully menu through. Unfortunately, as of this 3.0 release,
this functionality does not apply to the "equipment" screen which can rarely create some tricky situations. Usually these can be solved by purchasing a Deku Shield and
a Hylian Shield.

+

Quirks to Know

+

While all the details of gameplay can't be detailed here, I want to inform you of a few non-obvious game sequences that are likely to get you stuck and one little
glitch we can do nothing about.

+

-The condition to open the Door of Time is merely playing the Song of Time; the Spiritual Stones are not required. If you enter the Temple of Time via the Prelude
of Light, playing the Song of Time will create a glitchy cutscene and will not open the door (but you're safe to exit and re-enter and open it properly).
-The condition to spawn the Ocarina of Time and learn that song is the three Spiritual Stones. The condition to learn a song from Sheik in the Temple of Time is
possessing the Forest Medallion. The condition to learn a song from Sheik in Kakariko is possessing Forest, Fire, and Water Medallions.
-The running man in Hyrule Field only spawns if you have all three Spiritual Stones.
-Skull Kid will only buy the Skull Mask if you have played Saria's Song for him.
-The center of Death Mountain Crater as an adult can be reached from the summit as an adult by going around to the left with Hover Boots or by jumping down to the right
and using a combination of the Longshot and Scarecrow's Song. This allows access to Sheik and the Fire Temple without a Bomb Bag.
-A sword must be equipped to play the fishing minigame. A Slingshot is not required for child target shooting, but the adult does need the Bow.
-Other than those minigames, the child can do anything that would seem to require the sword with Deku Sticks. You can buy as many as you want in the Kokiri Forest shop.
-In the randomizer, possessing the Bomb Bag is the requirement to get bomb drops, buy bombs or Bombchus, or play Bombchu Bowling.
-Only the Hookshot, not the Longshot, is needed to do everything on the rooftops of Kakariko.
-Grottos can be opened with either Bombs or the Hammer.
-The boulder maze in Goron City can be solved with the Hammer or partially with Bombs as is obvious, but less obvious is that it can be fully solved with Silver Gauntlets.
-The large colored blocks only encountered by the adult require Goron Bracelet to push.
-In a few places, out of sight Song of Time blocks can be summoned. The lava room in Gerudo Training Grounds, the beginning of Ganon's Castle Shadow Trial, and the last
hallway with a caged Goron in Fire Temple are the main cases.
-Adult Link can fully clear Dodongo's Cavern. He can even skip the first section by virtue of being tall.
-In the Forest Temple, you can reach the room with the Floormaster (vanilla) or Redead (MQ) early by using Hover Boots in the block push room.
-In the Fire Temple, you can reach the Boss Key door from the beginning with Hover Boots.
-In the Water Temple, you can from the start with the water down jump to the middle platform level, very carefully aim the Hookshot to the target above, and pull yourself
to the highest level of the central platform. Then a very well spaced rolling jump can reach the water changing station to raise the water to the highest level. If you
make poor key choices in Water Temple, this may be what you need to do to untangle the situation.
-In the Water Temple, Hover Boots can be used to reach the vanilla Boss Key chest without going through the room that requires Bombs and block pushing. Hover Boots can
also be used in this temple to avoid the Longshot requirement for the middle level chest that requires the Bow.
-In the Shadow Temple, you can avoid the need for the Longshot in the room with the invisible spikes by backflipping onto the chest for extra height.
-In the Shadow Temple, you can Hookshot the ladder to avoid pushing the block to get on the boat.
-In the Shadow Temple, a combination of the scarecrow and the Longshot can be used to reach Bongo Bongo without needing the Bow.
-In the Spirit Temple, the child can obtain the vanilla Map chest with Deku Sticks. No fire magic is needed.
-In the Spirit Temple, you can collect the silver rupees without Hover Boots by jumping directly onto the rolling boulder or with a jump slash.
-In the Spirit Temple, you can use the Longshot to cross from the hand with the Mirror Shield in vanilla to the other hand.
-In Ganon's Castle Spirit Trial, the web can be burned with a precise shot through the torch by a normal arrow. Fire Arrows are not required.
-While we guarantee tunics for Fire Temple and Water Temple, you can possibly force yourself to do without if you seriously let a Like Like eat the tunic and
then do not recover the tunic. It is almost always possible to do without, but it can make things really difficult on you.
-Several Gold Skulltulla Tokens can be reached by clever/precise uses of jump slashes and spin attacks (possibly magic spin attacks).

+

Known issues

+

Sadly for this 3.0 release a few known issues exist. These will hopefully be addressed in future versions.

+

-The fishing minigame sometimes refuses to allow you to catch fish when playing specifically on Bizhawk. Save and quit (NOT savestate) and return to fix the issue.
-Draining the Bottom of the Well with Song of Storms sometimes crashes on specific configurations of Project 64. We aren't sure of the exact story, but this bug is
easily avoided by playing on a different emulator and probably also avoidable by changing your settings and maybe graphics plug-in.
-Executing the collection delay glitch on various NPCs may have unpredictable and undesirable consequences. In particular this can be devastating with Biggoron;
it is strongly suggested the player save before turning in the Claim Check.
-Saving and quitting on the very first frame after becomming an adult when you would trigger the Light Arrow cutscene can have undesired consequences. Just don't
do that.
-The equipment screen still cannot be easily navigated with all item configurations which can be especially problematic if the Biggoron Sword is found very early
or if shields cannot be easily purchased thanks to shopsanity. Getting the Master Sword and buying as many shields as you can is a good way to mitigate these issues.

+

Settings

+

The OoT Randomizer has many different settings users can choose to customize their play experience. Here's a fully detailed list!

+

ROM Options

+

Base Rom

+

Specify the input ROM that will be used by the randomizer. Please be sure it is OoT US v1.0.

+

Output Directory

+

Specify where the output ROM will be written on your computer.

+

Create Spoiler Log

+

Decide whether to output a text file detailing where every item can be found and the sequence of play that will lead to seed completion. Selecting this option will
create a different item configuration than using otherwise identical settings without printing a log; this is intended to prevent cheating in race environments.

+

Compress Rom

+

Decide the format of the output ROM. Compressed is generally recommended for most users; this is necessary for injection into a .wad for use on the Virtual Console,
and all known N64 emulators have significant crashing problems with uncompressed ROMs. Real N64 hardware doesn't care so generation time can be improved by using
the uncompressed option if you are playing on a real N64 with a flash cart. You can also choose not to output a ROM at all; this is useful if you just want to look
at spoiler logs.

+

Default Targeting Option

+

This option specifies whether Z-targeting will default to "Switch" or "Hold" style. Either way, this can still be changed in-game as per usual.

+

Multi-World Generation

+

This option allows for multiple worlds to be generated to be used in co-op play. Each player will get a different ROM designed to work in conjunction with another
to allow two players to work together to complete the game. Synchronization can be achieved on Bizhawk via the following script:

+

https://github.com/TestRunnerSRL/bizhawk-co-op

+

Player Count

+

Use this to specify how many players will be participating in this co-op playthrough.

+

Player ID

+

Use this to specify which player number you are in particular. Each participant in the co-op should choose a different number starting with 1.

+

Setting String

+

This is an 18 character string that specifies the totality of other gameplay relevant (non-cosmetic) settings used throughout the randomizer. This string can be shared
between players and then the "Import Settings String" button can be pressed to automatically change all settings to match another player.

+

Seed

+

This is a string representing the particular configuration of items that will occur in your seed; the purpose is to combine a seed string with an identical settings
string such that the randomizer will be able to generate the same game for multiple players. If this field is left blank, a random seed will be chosen.

+

Main Rules

+

Open Forest

+

Mido does not need to see a sword and shield to reach the Deku Tree and the Kokiri boy blocking the exit to the forest is gone. If this flag is not set, it is
guaranteed that the Deku Tree can be completed without leaving the forest. This means that within the forest or the Deku Tree itself it will be possible to find
the Kokiri Sword, Deku Shield for sale, and the Slingshot.

+

Open Kakariko Gate

+

The gate leading up Death Mountain from Kakariko Village is open from the beginning of the game. Normally this requires Zelda's Letter to open. This allows more
diverse routing early in the game and prevents very long walks in seeds with the Weird Egg shuffled. Two things are important to note. Showing Zelda's Letter to
the guard is still required to begin the Happy Mask sidequest and to receive a discount on purchasing Hylian Shields. The gate is simply gone for an adult no
matter what.

+

Open Door of Time

+

The Door of Time is open from the beginning of the game. The Song of Time is still potentially useful to move Song of Time blocks, play songs for the frogs on Zora
River, or for other such uses. If this flag is not used, the Door of Time must be opened to become an adult as in the original game, but all that is needed to open
the Door of Time is the Song of Time and any ocarina. The Ocarina of Time in particular and the Spiritual Stones have nothing to do with this.

+

Gerudo Fortress

+

Default Behavior

+

Gerudo Fortress will work the same way it did in the original game. All four carpenters must be rescued in order for the Gerudo woman who gives the Gerudo Card to
appear and for the Gerudo to stop being hostile. Rescuing a carpenter requires having a Gerudo Fortress Small Key and defeating the corresponding guard.

+

Rescue One Carpenter

+

Only the bottom left carpenter must be rescued to complete Gerudo Fortress. Only one Gerudo Fortress Small Key will exist because of this.

+

Start with Gerudo Card

+

The player will start with the Gerudo Card from the beginning of the game. The carpenters will be pre-rescued, and the bridge to Gerudo Fortress as an adult will
be repaired from the beginning. The Gerudo Card is the requirement in the randomizer to enter Gerudo Training Grounds so it will be an accessible area from the
moment adulthood is available.

+

Rainbow Bridge Requirement

+

This determines the condition under which the rainbow bridge to Ganon's Castle will spawn.

+

All Dungeons

+

The rainbow bridge spawn requires all medallions and spiritual stones to be in the player's possession.

+

All Medallions

+

All six of the medallions are required to open Ganon's Castle.

+

Vanilla

+

The rainbow bridge spawns under the same conditions it did in the original game, possession of the Light Arrows and having viewed the Zelda cutscene. This
cutscene in the Temple of Time is triggered by possessing the Shadow and Spirit Medallions.

+

Open

+

The rainbow bridge is always present.

+

Random Number of Ganon's Trials

+

A random number of trials within Ganon's Castle from 0 to 6 will be chosen, and individual trials will be randomly disabled as necessary to match this number.
Alternatively, a specific number of trials can be specified with the slider below. If a number of trials other than 0 or 6 is chosen and hints are enabled,
hints will be added to the hint pool informing the player which trials are present (if 1 to 3 trials) or which are missing (if 4 or 5 trials).

+

All Locations Reachable

+

This option will set the logic to try to ensure Link can reach every item location in the game with the exception of "key for key" item locations (a single
item spot behind a locked door containing the key to open the door). If this option is not used, the logic will allow some items to be in impossible locations
so long as the set of reachable items is sufficient to complete the game.

+

Bombchus are considered in logic

+

This option fundamentally changes how the Bombchu items found around the world function. With this option on, Bombchus are a progression item and operate as
a form of progressive item. The first Bombchu pack found will be worth 20 Bombchus and subsequent packs will be worth 10 or 5 Bombchus. Finding Bombchus will
be considered as logical progression, and having found any Bombchus will be the condition to play Bombchu Bowling or buy Bombchu items from shops. This flag
will also add Bombchu (5) buyable items to the shops in Kokiri Forest, Castle Town Bazaar, and Kakariko Bazaar. With this option off, randomly found Bombchu
items are not considered as logical progression, randomly found Bombchus will have specific denominations based on the values from the original game, and
finding a Bomb Bag is what enables playing Bombchu Bowling and buying Bombchus from shops which will not have their inventories edited.

+

Dungeons have one major item

+

This option places one "major item" and one only in each of the dungeons. For the purpose of the randomizer, the dungeons are defined as the eight dungeons that
contain either Medallions or Spiritual Stones as well as Bottom of the Well, Ice Cavern, Gerudo Training Grounds, and Ganon's Castle. The major items are any
item usable with a c-button that is not simply a form of ammo (Bombchus are major only if "Bombchus are considered in logic" is on), songs, Mirror Shield, swords,
tunics, boots, Double Defense, Magic Meter/Double Magic, Bullet Bags, Quivers, Bomb Bags, Strength Upgrades, Scales, Wallets, and the Stone of Agony. To be
clear, this means that rupees, ammo, Deku Stick and Deku Nut ammo expansions, Pieces of Heart, Heart Containers, Gold Skulltulla Tokens, Maps, Compasses,
Small Keys, Boss Keys, Deku Shields, Hylian Shields, and Ice Traps are not considered major items.

+

Dungeon Quest

+

This option specifies the form dungeons will take. The item pool will be updated to reflect the items originally found in the dungeons used.

+

Vanilla

+

Dungeons will have the same internal layout as they did in the original The Legend of Zelda: Ocarina of Time.

+

Master Quest

+

Dungeons will have the internal layouts found in The Legend of Zelda: Ocarina of Time Master Quest.

+

Mixed

+

Dungeons will each have a random internal layout chosen between the vanilla and Master Quest forms.

+

Shuffle Kokiri Sword

+

This flag adds the Kokiri Sword to the shuffle. With it off, the Kokiri Sword will always be found in its original chest in the Kokiri Forest.

+

Shuffle Weird Egg

+

This flag adds the Weird Egg given by child Malon to the shuffle. With this flag on, child Malon will give a random item and the Weird Egg must be located
to do the events at Hyrule Castle with Zelda and Impa. These events block interacting with Talon and Malon at Lon Lon Ranch as a child as well as Saria in
Sacred Forest Meadow.

+

Shuffle Ocarinas

+

This flag adds both the Fairy Ocarina and the Ocarina of Time to the shuffle. The ocarinas are a progressive item; the first found will always be the Fairy
Ocarina with the second being the Ocarina of Time even though the two are functionally identical. Without this flag on, leaving the Kokiri Forest to the
Lost Woods bridge as a child will always grant one Ocarina and the other is always available at the gate of Castle Town as a child when all three Spiritual
Stones are in the player's possession.

+

Shuffle Songs with Items

+

This flag adds the 12 standard ocarina songs to the shuffle as normal items. With this flag on, the spots that contained songs in the original game will
simply give Link a random item, and the songs can be found as items freely. Without this flag on, songs are still randomized but only between each other.
In either case, the Scarecrow's Song is not affected; it is still obtained by interacting with Bonooru at Lake Hylia first as a kid and then as an adult.

+

Shuffle Gerudo Card

+

This flag shuffles the Gerudo Card into the general item pool. In the randomizer, this is required to gain access to Gerudo Training Grounds, but it does
not have any impact on the hostility of the Gerudo in Gerudo Fortress who still check for the carpenter rescue events. Without this flag, the Gerudo
Card is always given by the Gerudo woman who spawns after the final carpenter is rescued. If Gerudo Fortress is cleared from the beginning of the game,
the player starts the game with the Gerudo Card and this setting is voided.

+

Shuffle Deku Salescrubs

+

This flag makes every Deku Scrub Salesman in the world sell a random item instead of only the three that sold permanent upgrades in the original game.
Using this flag adds the various low tier items the other scrubs sold to the item pool for the most part; the potion refills are replaced with Recovery
Hearts for Red Potions and blue rupees for Green Potions. For each Deku Scrub that sold arrows/seeds depending on age, there will be a 75% chance of
adding a 30 arrow item and a 25% chance of adding a 30 seed item to the pool. While the text will not update, if this flag is used the price of every
Deku Scrub Salesman's item will be reduced to 10 rupees, and once the purchase is made that particular Deku Scrub Salesman will disappear forever.

+

Shopsanity

+

This setting randomizes the items sold in shops. When it is used, all shop items are randomly re-arranged among all 8 of the original game's shops.
This setting causes the Bombchu Shop to be open from the very beginning of the game, and this setting considers the two shops in adult Kakariko
Village to be distinct shops from the two similar shops in child Castle Town; however, the shops in Kokiri Forest, Goron City, and Zora Domain are
the same shops as both ages. This setting overrides the "Bombchus considered in logic" editing of the shop item pool.

+

Off

+

This disables the Shopsanity feature.

+

Shuffled Shops (0 Items)

+

This causes all of the Shopsanity features described above.

+

Shuffled Shops (1-4 Items)

+

This not only causes all of the Shopsanity features described above, but it also adds 1-4 (depending on the exact setting) items from the general
item pool into shops to buy for randomly chosen amounts of money. Lower value shop items are removed to make room for this, and low value junk items
are added to the item pool to fill the extra empty chests this will implicitly create. Using this feature will also replace several of the rupee
items found throughout the seed with higher value rupees and will add a third Wallet upgrade, the "Tycoon's Wallet", to the item pool which can hold
up to 999 rupees. The items from the general item pool added to shops will always be on the far left of the shop inventories, and these items can
always be bought if the player has enough rupees even if they are explosives without an appropriate container or a tunic as a child.

+

Shuffled Shops (Random Items)

+

This is similar to the 1-4 items variant but gives each shop a random number of new items from 0-4. Each shop can have a different amount of unique
items with this setting.

+

Shuffle Dungeon Items

+

This setting allows the player to decide the natural distribution of dungeon items. Dungeon items can be found confined to their original dungeons,
spread freely throughout the world, or prevented from existing completely. Items that are prevented from existing completely will be replaced in the
item pool with an assortment of various low tier junk items. This feature can be specified for Maps/Compasses, Small Keys, and Boss Keys independently.
If Small Keys or Boss Keys are prevented from existing, this will also remove all locks those keys would be used for from existing as well. If Small Keys
are left in their original dungeons and the Fire Temple is not in the form of Master Quest, the locked door in the first room that leads to the normal
location of the Boss Key will be removed.

+

Maps and Compasses give information

+

This setting, only available if Maps and Compasses are spread across the world, disables the pedestal in the Temple of Time from giving information about
the location of the Medallions and Spiritual Stones. Instead, the Compass from each of the eight eligible dungeons will tell the player which dungeon has
which reward. If the dungeon quest is set to mixed, each of the ten Maps will tell the player whether any given dungeon is in the vanilla or Master Quest
form. The Compasses from Bottom of the Well and Ice Cavern do not give any information.

+

Remove Ganon's Door Boss locked

+

This setting removes the Boss Key lock from Ganon's Tower. This removes the need to locate the Ganon's Tower Boss Key to finish the game.

+

Tokensanity

+

This setting shuffles the Gold Skulltulla item drops into the general pool of locations. The player can choose only to include Gold Skulltullas
found in dungeons for a more mild version of this setting.

+

Detailed Logic

+

Maximum expected Skulltulla tokens

+

This setting can be used to reduce the number of Gold Skulltulla Tokens that may be required to finish the game.

+

No Nighttime Skulltullas without Sun's Song

+

This setting causes the logic to expect the player to have an ocarina and the Sun's Song to get Gold Skulltulla locations that are only found at
nighttime.

+

No Big Poes

+

This setting will guarantee that the Big Poe vendor will not have an important item.

+

No Child Fishing

+

This setting will guarantee that the reward from child fishing is not an important item. This is mostly recommended if the player simply must play
on Bizhawk.

+

No Adult Fishing

+

This setting will guarantee that the reward from adult fishing is not an important item. This is mostly recommended if the player simply must play
on Bizhawk.

+

No Skull Mask reward

+

This setting will guarantee that the item obtained from showing the Skull Mask in the Deku Theater is not an important item.

+

No Mask of Truth reward

+

This setting will guarantee that the item obtained from showing the Mask of Truth in the Deku Theater is not an important item.

+

No 1500 Horseback Archery

+

This setting will guarantee that the item obtained from scoring 1500 points at the horseback archery challenge at Gerudo Fortress is not an
important item.

+

No Lost Woods Memory Game

+

This setting will guarantee that the item obtained from winning the ocarina memory game in the Lost Woods is not an important item.

+

No Racing Dampe a second time

+

This setting will guarantee that the item obtained from finishing with a sub-minute time in the second Dampe race is not an important item.

+

No Biggoron reward

+

This setting will guarantee that the item obtained from showing the Claim Check to Biggoron is not an important item.

+

Adult Trade sequence

+

This pair of settings can be used to specify the earliest and latest items that can be allowed to randomly show up in the general item pool.
Only one item will be in the item pool regardless of this setting; this can merely be used to limit the range of possibilities.

+

Require minor tricks

+

This setting allows a huge number of minor tricks to be allowed by the logic. Here is a complete list:

+

-A precise jumpslash with either a Deku Stick or the Kokiri Sword can be used to reach a Gold Skulltulla on some vines in standad Deku Tree.
-The Bow can be used to knock down the stairs in Dodongo's Cavern with two well timed shots.
-The vines in Forest Temple leading to where the well drain switch is in the standard form can be barely reached with the standard Hookshot.
-The well in Forest Temple can be crossed with just Hookshot by shooting as low as possible on the vines from the far side and swimming under
the ceiling. This is possible in both versions but can only be required in Forest Temple MQ.
-A Bombchu from the ground level can be used to hit the switch to bypass the block pushing puzzle in Forest Temple MQ.
-A rusted switch under a Song of Time block in the standard Fire Temple can be hit by using Hammer into the block.
-The location with the Boss Key chest in Fire Temple MQ can be reached without the Bow with very particular use of Din's Fire.
-The upper levels of the old boulder maze in Fire Temple MQ can be reached without explosives by using the Hammer through a wall.
-In the standard Spirit Temple, the bridge on child side can be lowered with a carefully timed Bombchu.
-The frozen switch in Spirit Temple MQ can be hit without a fire source by using the Bow and Song of Time very cleverly.
-The chest in the basement of the standard Bottom of the Well can be reached with only a Strength Upgrade by using a jump slash with a lit
Deku Stick to access the bomb flowers in the basement.
-The silver rupees on the left side of Gerudo Training Grounds MQ can be collected with just Hookshot with a somewhat particular jump slash.
-The first room of the Spirit Trail in Ganon's Castle MQ can be cleared without the Bow by using a Hammer jump slash to hit the rusted switch
through the thrones.
-The Gold Skulltulla in adult Kokiri Forest can be reached without the Hookshot by using Hover Boots off one of the roots.
-The child can reach the chest on Death Mountain trail with just the Goron Bracelet by backwalking with the Bomb Flower intended to open
Dodongo's Cavern and throwing the Bomb Flower at the wall very quickly.
-Gerudo Fortress can be cleared without any items other than those needed for access. The logic normally guarantees one of the Bow, Hookshot, or
Hover Boots to help navigate the "kitchen".

+

Using this setting will also pre-set all of the lower logic flags to a reasonable configuration to match the trick level. These can then be
edited as the player desires if the given configuration isn't desired.

+

Man on Roof without Hookshot

+

This allows the logic to consider a trick in which the player does a sidehop off the tall tower in Kakariko Village to reach the man on the
rooftop with no items.

+

Child Deadhand without Kokiri Sword

+

This allows the logic to consider defeating the Deadhand in Bottom of the Well with Deku Sticks. This is not hard with use of the power crouch
stab glitch, but consistently landing actual jump slashes on his unusual hitbox is pretty difficult and using normal slashes consumes 9 Deku Sticks.

+

Dodongo's Cavern spike trap room jump without Hover Boots

+

This allows the logic to consider that the adult can make a particularly useful jump in Dodongo's Cavern to reach the area with the Bomb Bag chest early.
Due to the precision of the jump, normally the logic expects Hover Boots to complete this path.

+

Windmill PoH as adult with nothing

+

This allows the logic to consider a jump the adult can make in the windmill to reach the Piece of Heart within with no items. The jump requires leaping
from an object on which it is not obvious Link is allowed to stand and has counterintuitive timing so it is not in standard logic.

+

Crater's bean PoH with Hover Boots

+

This allows the logic to consider using Hover Boots to reach the Piece of Heart atop the volcano in Death Mountain Crater. The path involves walking up a
very steep slope that is not visibly walkable so it is not in normal logic.

+

Zora's Domain entry with Cucco

+

This allows the logic to consider using a Cucco on Zora River to enter Zora's Domain as a child without playing Zelda's Lullaby. It requires slipping behind
the waterfall trickily from the left side.

+

Zora's Domain entry with Hover Boots

+

This allows the logic to consider this similar trick to the above except as an adult with Hover Boots. This is actually a lot more difficult even though it can
be done from either side of the waterfall.

+

Fewer Tunic Requirements

+

This relaxes the tunic requirements by the logic somewhat. Normally the logic expects a Goron Tunic to enter Fire Temple or complete the Fire Trial in Ganon's Castle
and a Zora Tunic to enter Water Temple, collect the underwater silver rupees in Gerudo Training Grounds, or obtain the Piece of Heart at the bottom of the frozen Zora's
Fountain. With this flag set, the Goron Tunic will not be required to actually enter Fire Temple, only to fight Volvagia or to reach the upper floors. The Zora Tunic
requirements are removed completely except to reach the chest at the bottom of the central pillar in Water Temple.

+

Lens of Truth

+

This setting alters the expectations about interacting with invisible objects without the Lens of Truth.

+

Required everywhere

+

This setting requires the Lens of Truth to interact with any invisible object except for whatever was required in the original game to obtain the Lens of Truth.

+

Wasteland and Chest Minigame

+

This setting expects the Lens of Truth to be used only to cross the Haunted Wasteland and to win the Treasure Chest Minigame in Castle Town at night.

+

Only Chest Minigame

+

This setting expects the Lens of Truth to be used only to win the Treasure Chest Minigame in Castle Town at night.

+

Other

+

Skip Tower Collapse Sequence

+

This setting causes defeating Ganondorf to skip directly to the Ganon fight without the need to do the collapsing Ganon's Tower sequence.

+

Skip Interior Castle Guard Stealth Sequence

+

This setting causes entering the crawlspace at Hyrule Castle to deposit the player directly into the Castle Courtyard, bypassing the guard
evasion sequence.

+

Skip Epona Race

+

This setting causes Epona to be stolen from Ingo from the start of the game, only requiring Epona's Song and an ocarina as an adult to summon.

+

Fast Chest Cutscenes

+

This setting causes all chests to open with a quick animation. If this setting is off, certain important items will trigger the slow opening animation.

+

Random Big Poe Target Count

+

This setting causes the number of Big Poes that must be turned into the vendor to obtain his item to be random from 1-10. Alternatively, the number
of Big Poes requires can be selected manually with the slider below. Note that Big Poes can be found as pre-stocked Bottle contents, and the logic
can expect using them if the required number is sufficiently low.

+

Start with Scarecrow's Song

+

This flag causes Pierre the Scarecrow to be available to summon for the adult from the beginning of the game. The box below can be used to
specify the particular desired Scarecrow's Song. This song must be exactly eight notes long and must contain at least two different notes.

+

Randomize ocarina song notes

+

This flag randomizes the particular notes in the 12 standard ocarina songs. This can predictably be pretty obnoxious. In general, the patterns chosen
for the top row songs will be simpler than the patterns chosen for warp songs.

+

Chest size matches contents

+

This flag causes keys, Ice Traps, and items flagged as progression items to appear in large treasure chests while other items will be in small treasure chests.
This means that players can choose to skip small treasure chests since they will only contain handy, not essential, items.

+

Clearer hints

+

This flag changes the text of Gossip Stone hints to be overwhelmingly explicit. This is helpful for players who do not have English as their first language,
but the hints will be less "fun" and less like the sorts of things that would be said in the original game.

+

Gossip Stones

+

This flag changes the behavior of Gossip Stones to give hints to players. The hints will be distributed as such:

+

-If the required number of trials is 1-3, a hint will be added for each trial that must be done. If the required number of trials is 4 or 5, a hint will be added
for each trial that can be skipped.
-Hints will be added for every one of the "always" locations that is allowed to have a random possibly valuable item under the current settings. These hints
will tell the player what item is at each of these locations. These locations are the rewards for 30, 40, and 50 Gold Skulltulla Tokens, the item obtained from
Biggoron by showing the Claim Check, the item obtained from the Big Poe vendor, both the song and the item slots at the Ocarina of Time, and the item obtained
from showing the Mask of Truth at the Deku Theater.
-Some hints will be given for items at a randomly selected number of other locations that are generally somewhat inconvenient to check. The total number of these
hints will be either 11 or 12 minus the number of always hints placed.
-3 or 4 hints will be given naming a specific non-dungeon specific item that can be found in a randomly chosen dungeon.
-1 to 4 hints will be given naming a specific item found in a specific overworld region. Which part of this range is used is determined in part by how many
trial hints are given.
-4 to 6 hints will be given naming what region specific progression items other than Gold Skulltulla Tokens can be found.
-3 or 4 hints will be given naming specific regions that are "on the way of the hero" and thus contain at least one required progression item.
-All remaining hints (33 total unique Gossip Stones exist) will be filled with non-information junk hints.

+

This setting allows the player to specify which item is required to interact with the Gossip Stones. The Stone of Agony is the default option as it gives a
fairly purposeless vanilla item a use and allows both kid and adult to interact with the Gossip Stones. The default Mask of Truth can be used, but this has
the downside that the Mask of Truth can only be obtained with all Spiritual Stones which tends to make the hints not useful, and using the Mask of Truth
requires being a child which is another big downside. There is also an option for the information to just be free for those wanting an easier mode.

+

Text Shuffle

+

This setting allows all the text in the game to be shuffled. This is mostly for comedy and is not intended to be a serious gameplay option.

+

No text shuffled

+

Leave the text alone.

+

Shuffled except Hints and Keys

+

Shuffle all text other than the useful text giving the player information.

+

All text shuffled

+

Shuffle all text even to the player's mechanical disadvantage.

+

Difficulty

+

This setting allows the player to tweak the item pool to make a somewhat harder experience.

+

Normal

+

Leave the item pool alone.

+

Hard

+

Heart Containers, Double Defense, and the second Magic Upgrade are replaced with junk items.

+

Very Hard

+

In addition to the items from Hard, Pieces of Heart and Nayru's Love are also replaced with junk items.

+

OHKO

+

In addition to the item changes from Very Hard, Link dies in one hit. Ice Traps are replaced with Recovery Hearts.

+

Cosmetics

+

Background Music

+

Normal

+

Do not alter the background music.

+

No Music

+

Disable background music. Sound effects will still play. This may be desired by players who like to listen to their own music.

+

Random

+

Background music is shuffled so that different tracks may play in different areas. This may be silly.

+

Kokiri Tunic Color

+

This determines the color of Link's default Kokiri Tunic. This only affects the color when he's wearing it, not the color of the icon in the menu.

+

Most Colors

+

Simply get the particular color selected. Available colors are Kokiri Green, Goron Red, Zora Blue, Black, White, Purple, Yellow, Orange, Pink, Gray,
Brown, Gold, Silver, Beige, Teal, Royal Blue, Sonic Blue, Blood Red, Blood Orange, NES Green, Dark Green, and Lumen.

+

Random Choice

+

Choose a random color from the set of pre-made colors.

+

Completely Random

+

Generate a random color with numerically random RGB values.

+

Custom Color

+

A special interface will pop up that will allow the user to choose any color from a diverse color wheel or input a desired RGB value.

+

Goron Tunic Color

+

This determines the color of Link's Goron Tunic. This only affects the color when he's wearing it, not the color of the icon in the menu or when
holding it up after acquiring it. The options are identical to those for the Kokiri Tunic.

+

Zora Tunic Color

+

This determines the color of Link's Zora Tunic. This only affects the color when he's wearing it, not the color of the icon in the menu or when
holding it up after acquiring it. The options are identical to those for the Kokiri Tunic.

+

Low Health SFX

+

This determines which sound effect to play repeatedly when Link is very low on health. Several of these options are designed to be potentially
more pleasant to listen to while a few are designed to be more amusing.

+

Particular Sounds

+

Set this particular sound for the heart beep. Available choices are Default, Softer Beep, Rupee, Timer, Tamborine, Recovery Heart, Carrot Refill,
Navi - Hey!, Zelda - Gasp, Cluck, and Mweep!. The last of these is indeed the sound a king might make when moving... very slowly.

+

Random Choice

+

Play a random SFX from the list of choices.

+

None

+

Disable low health heart beeps altogether.

+ +

These options can be used to set Navi's color in a variety of contexts. The lists of pre-set colors here is different, but the same types of options
exist as for choosing tunic colors.

+ +

This option sets the SFX that will play when Navi is ready to give a hint. The options are very similar to the Low Health SFX.

+ +

This option sets the SFX that will play when Navi targets an enemy. The options are very similar to the Low Health SFX.

+

Command Line Options

+
-h, --help            
+

Show the help message and exit.

+
--check_version
+

Check for the latest version number online (default: False)

+
--checked_version CHECKED_VERSION
+

Check for the specified version number instead of a number from online.

+
--rom ROM
+

Path to a The Legend of Zelda: Ocarina of Time NTSC-US v1.0 ROM. (default: ZOOTDEC.z64)

+
--output_dir OUTPUT_DIR
+

Path to output directory for rom generation.

+
--seed SEED           
+

Define seed number to generate. (default: None)

+
--count COUNT         
+

Set the count option (default: None)

+
--world_count WORLD_COUNT       
+

Use to create a multi-world generation for co-op seeds. World count is the number of players.
Warning: Increasing the world count will drastically increase generation time. (default: 1)

+
--player_num PLAYER_NUM       
+

Use to select world to generate when there are multiple worlds. (default: 1)

+
--create_spoiler      
+

Output a Spoiler File (default: False)

+
--compress_rom [{True,False,None}]
+

Create a compressed version of the output rom file.
True: Compresses. Improves stability. Will take longer to generate
False: Uncompressed. Unstable on emulator. Faster generation
None: No ROM Output. Creates spoiler log only (default: True)

+
--open_forest
+

Set whether Kokiri children obstruct your path at the beginning of the game. (default: False)

+
--open_kakariko
+

The gate in Kakariko Village to Death Mountain Trail is always open, instead of needing Zelda's Letter. (default: False)

+
--open_door_of_time
+

Set whether the Door of Time is open from the beginning of the game. (default: False)

+
--gerudo_fortress [{normal,fast,open}]
+

Select how much of Gerudo Fortress is required. (default: normal)

+
--bridge [{medallions,vanilla,dungeons,open}]
+

Select the condition to spawn the Rainbow Bridge to Ganon's Castle. (default: medallions)

+
--all_reachable
+

Enables the "Only Ensure Seed Beatable" option (default: False)

+
--all_reachable
+

Enables the "Only Ensure Seed Beatable" option (default: False)

+
--bombchus_in_logic
+

Changes how the logic considers Bombchus and other Bombchu related mechanics (default: False)

+
--one_item_per_dungeon
+

Each dungeon will have exactly one major item. (default: False)

+
--trials_random
+

Sets the number of trials that must be cleared in Ganon's Castle to a random value (default: False)

+
--trials [{0,1,2,3,4,5,6}]
+

Sets the number of trials that must be cleared in Ganon's Castle (default: 6)

+
--no_escape_sequence
+

Removes the tower collapse sequence after defeating Ganondorf (default: False)

+
--no_guard_stealth
+

Removes the guard evasion sequence in Hyrule Castle (default: False)

+
--no_epona_race
+

Removes the need to race Ingo to acquire Epona (default: False)

+
--fast_chests
+

Causes all chests to open with a fast animation (default: False)

+
--big_poe_count_random
+

Sets the number of Big Poes that must be sold to the vendor for an item to a random value (default: False)

+
--big_poe_count [{1,2,3,4,5,6,7,8,9,10}]
+

Sets the number of Big Poes that must be sold to the vendor for an item (default: 10)

+
--free_scarecrow
+

Start the game with the Scarecrow's Song activated and Pierre possible for the adult to summon (default: False)

+
--scarecrow_song [SCARECROW_SONG]
+

Set Scarecrow's Song if --free_scarecrow is used. Valid notes: A, U, L, R, D (default: DAAAAAAA)

+
--shuffle_kokiri_sword
+

Include the Kokiri Sword as a randomized item (default: False)

+
--shuffle_weird_egg
+

Include the Weird Egg as a randomized item (default: False)

+
--shuffle_ocarinas
+

Include the two ocarinas as randomized items (default: False)

+
--shuffle_song_items
+

Treat the ocarina songs as normal items and shuffle them into the general item pool (default: False)

+
--shuffle_gerudo_card
+

Include the Gerudo Card to access Gerudo Training Grounds as a randomized item (default: False)

+
--shuffle_scrubs [{off,low,regular,random}]
+

Include all Deku Scrub Salesmen as randomized item and determine their prices (default: off)

+
--shopsanity [{off,0,1,2,3,4,random}]
+

Randomize shop items and add the chosen number of items from the general item pool to shop inventories (default: off)

+
--shuffle_mapcompass [{remove,dungeon,keysanity}]
+

Choose the locations Maps and Compasses can be found (default: dungeon)

+
--shuffle_smallkeys [{remove,dungeon,keysanity}]
+

Choose the locations Small Keys can be found (default: dungeon)

+
--shuffle_bosskeys [{remove,dungeon,keysanity}]
+

Choose the locations Boss Keys can be found (default: dungeon)

+
--enhance_map_compass
+

Change the functionality of the Map and Compass to give information about their dungeons. Requires --shuffle_mappcompass keysanity (default: False)

+
--unlocked_ganondorf
+

Remove the Boss Key door leading to Ganondorf (default: False)

+
--tokensanity [{off,dungeons,all}]
+

Include the chosen Gold Skulltulla Token locations in the item shuffle (default: off)

+
--quest [{vanilla,master,mixed}]
+

Choose the internal layout of the dungeons (default: vanilla)

+
--logic_skulltulas [{0,10,20,30,40,50}]
+

Choose the maximum number of Gold Skulltulla Tokens that could be required (default: 50)

+
--logic_no_night_tokens_without_suns_song
+

Change logic to expect Sun's Song to defeat nighttime Gold Skulltullas (default: False)

+
--logic_no_big_poes
+

Prevent the Big Poe vendor from having a required item (default: False)

+
--logic_no_child_fishing
+

Prevent the prize from fishing as a child from being a required item (default: False)

+
--logic_no_adult_fishing
+

Prevent the prize from fishing as an adult from being a required item (default: False)

+
--logic_no_trade_skull_mask
+

Prevent the item obtained by showing the Skull Mask at the Deku Theater from being a required item (default: False)

+
--logic_no_trade_mask_of_truth
+

Prevent the item obtained by showing the Mask of Truth at the Deku Theater from being a required item (default: False)

+
--logic_no_1500_archery
+

Prevent the item obtained by scoring 1500 points at horseback archery from being a required item (default: False)

+
--logic_no_memory_game
+

Prevent the item obtained by completing the ocarina memory game in the Lost Woods from being a required item (default: False)

+
--logic_no_second_dampe_race
+

Prevent the prize won by finishing the second Dampe race in under 1 minute from being a required item (default: False)

+
--logic_no_trade_biggoron
+

Prevent the item obtained by showing the Claim Check to Biggoron from being a required item (default: False)

+
--logic_earliest_adult_trade [{pocket_egg,pocket_cucco,cojiro,odd_mushroom,poachers_saw,broken_sword,prescription,eyeball_frog,eyedrops,claim_check}]
+

Set the earliest item in the adult trade sequence that can be found in the item pool (default: pocket_egg)

+
--logic_latest_adult_trade [{pocket_egg,pocket_cucco,cojiro,odd_mushroom,poachers_saw,broken_sword,prescription,eyeball_frog,eyedrops,claim_check}]
+

Set the latest item in the adult trade sequence that can be found in the item pool (default: claim_check)

+
--logic_tricks
+

Enable the logic to consider a large number of minor tricks (default: False)

+
--logic_man_on_roof
+

Enable the logic to consider the trick to reach the man on the roof in Kakariko Village with a sidehop from the tower (default: False)

+
--logic_child_deadhand
+

Enable the logic to consider the child defeating Deadhand with only Deku Sticks (default: False)

+
--logic_dc_jump
+

Enable the logic to consider the trick to bypass the second Lizalfos fight room in Dodongo's Cavern as an adult with a simple jump (default: False)

+
--logic_windmill_poh
+

Enable the logic to consider the trick to reach the Piece of Heart in the windmill as an adult with nothing (default: False)

+
--logic_crater_bean_poh_with_hovers
+

Enable the logic to consider the trick to reach the Piece of Heart on the volcano in Death Mountain Crater with Hover Boots (default: False)

+
--logic_zora_with_cucco
+

Enable the logic to consider the trick to enter Zora's Domain as a child using a Cucco instead of playing Zelda's Lullaby (default: False)

+
--logic_zora_with_hovers
+

Enable the logic to consider the trick to enter Zora's Domain as an adult using Hover Boots instead of playing Zelda's Lullaby (default: False)

+
--logic_fewer_tunic_requirements
+

Reduce the number of locations for which the logic expects a tunic upgrade (default: False)

+
--logic_lens [{chest,chest-wasteland,all}]
+

Set which hidden objects the logic expects the Lens of Truth to be used on (default: all)

+
--ocarina_songs
+

Randomize the particular notes that must be played for each of the 12 standard ocarina songs (default: False)

+
--correct_chest_sizes
+

Set chest sizes based on contents (default: False)

+
--clearer_hints
+

Reword hints to be incredibly direct (default: False)

+
--hints [{none,mask,agony,always}]
+

Enable hints from Gossip Stones and select the condition to read them (default: agony)

+
--text_shuffle [{none,except_hints,complete}]
+

Shuffle the chosen text randomly (default: none)

+
--difficulty [{normal,hard,very_hard,ohko}]
+

Alter the item pool to increase difficulty. The ohko option also causes Link to die in one hit. (default: normal)

+
--default_targeting [{hold,switch}]
+

Set the default Z-targeting setting. It can still be changed in the game's options menu. (default: hold)

+
--background_music [{normal,off,random}]
+

Choose whether the game's background music will be left alone, disabled, or shuffled randomly. (default: normal)

+
--kokiricolor [{'Random Choice', 'Completely Random', 'Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Purple', 'Yellow', 'Orange', 'Pink', 'Gray', 'Brown', 'Gold', 'Silver', 'Beige', 'Teal', 'Royal Blue', 'Sonic Blue', 'Blood Red', 'Blood Orange', 'NES Green', 'Dark Green', 'Lumen'}]
+

Select the color of Link's Kokiri Tunic. (default: Kokiri Green)

+
--goroncolor [{'Random Choice', 'Completely Random', 'Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Purple', 'Yellow', 'Orange', 'Pink', 'Gray', 'Brown', 'Gold', 'Silver', 'Beige', 'Teal', 'Royal Blue', 'Sonic Blue', 'Blood Red', 'Blood Orange', 'NES Green', 'Dark Green', 'Lumen'}]
+

Select the color of Link's Goron Tunic. (default: Goron Red)

+
--zoracolor [{'Random Choice', 'Completely Random', 'Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Purple', 'Yellow', 'Orange', 'Pink', 'Gray', 'Brown', 'Gold', 'Silver', 'Beige', 'Teal', 'Royal Blue', 'Sonic Blue', 'Blood Red', 'Blood Orange', 'NES Green', 'Dark Green', 'Lumen'}]
+

Select the color of Link's Zora Tunic. (default: Zora Blue)

+
--navicolordefault [{'Random Choice', 'Completely Random', 'Gold', 'White', 'Green', 'Light Blue', 'Yellow', 'Red', 'Magenta', 'Black', 'Tatl', 'Tael', 'Fi', 'Ciela', 'Epona', 'Ezlo', 'King of Red Lions', 'Linebeck', 'Loftwing', 'Midna', 'Phantom Zelda'}]
+

Select the color of Navi in idle. (default: White)

+
--navicolorenemy [{'Random Choice', 'Completely Random', 'Gold', 'White', 'Green', 'Light Blue', 'Yellow', 'Red', 'Magenta', 'Black', 'Tatl', 'Tael', 'Fi', 'Ciela', 'Epona', 'Ezlo', 'King of Red Lions', 'Linebeck', 'Loftwing', 'Midna', 'Phantom Zelda'}]
+

Select the color of Navi when she is targeting an enemy. (default: Yellow)

+
--navicolornpc [{'Random Choice', 'Completely Random', 'Gold', 'White', 'Green', 'Light Blue', 'Yellow', 'Red', 'Magenta', 'Black', 'Tatl', 'Tael', 'Fi', 'Ciela', 'Epona', 'Ezlo', 'King of Red Lions', 'Linebeck', 'Loftwing', 'Midna', 'Phantom Zelda'}]
+

Select the color of Navi when she is targeting an NPC. (default: Light Blue)

+
--navicolorprop [{'Random Choice', 'Completely Random', 'Gold', 'White', 'Green', 'Light Blue', 'Yellow', 'Red', 'Magenta', 'Black', 'Tatl', 'Tael', 'Fi', 'Ciela', 'Epona', 'Ezlo', 'King of Red Lions', 'Linebeck', 'Loftwing', 'Midna', 'Phantom Zelda'}]
+

Select the color of Navi when she is targeting a prop. (default: Green)

+
--navisfxoverworld [{Default,Notification,Rupee,Timer,Tamborine,Recovery Heart,Carrot Refill,Navi - Hey!,Navi - Random,Zelda - Gasp,Cluck,Mweep!,Random,None}]
+

Select the sound effect that plays when Navi wishes to speak with the player. (default: Default)

+
--navisfxenemytarget [{Default,Notification,Rupee,Timer,Tamborine,Recovery Heart,Carrot Refill,Navi - Hey!,Navi - Random,Zelda - Gasp,Cluck,Mweep!,Random,None}]
+

Select the sound effect that plays when Navi targets an enemy. (default: Default)

+
--healthSFX [{'Default', 'Softer Beep', 'Rupee', 'Timer', 'Tamborine', 'Recovery Heart', 'Carrot Refill', 'Navi - Hey!', 'Zelda - Gasp', 'Cluck', 'Mweep!', 'Random', 'None'}]
+

Select the sound effect that loops at low health. (default: Default)

+
--gui
+

Open the graphical user interface. Preloads selections with set command line parameters.

+
--loglevel [{error,info,warning,debug}]
+

Select level of logging for output. (default: info)

+
--settings_string SETTINGS_STRING
+

Enter a settings string that will encode and override most individual settings.

diff --git a/version.py b/version.py index ca7f45b9a..b73888214 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.21.11 f.LUM' +__version__ = '2.21.12 f.LUM' From b15781da64d64f24211e3f7771ce3a6be34501df Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 14 Oct 2018 00:19:42 -0400 Subject: [PATCH 698/755] Fix Internet issues not using logger correctly (Issue #223) --- Utils.py | 2 ++ version.py | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Utils.py b/Utils.py index 9c5543937..326665fb8 100644 --- a/Utils.py +++ b/Utils.py @@ -8,6 +8,7 @@ import random import itertools import bisect +import logging def is_bundled(): return getattr(sys, 'frozen', False) @@ -82,6 +83,7 @@ def check_version(checked_version): if compare_version(version, __version__) > 0 and compare_version(checked_version, __version__) < 0: raise VersionError("You do not seem to be on the latest version!\nYou are on version " + __version__ + ", and the latest is version " + version + ".") except (URLError, HTTPError) as e: + logger = logging.getLogger('') logger.warning("Could not fetch latest version: " + str(e)) # Shim for the sole purpose of maintaining compatibility with older versions of Python 3. diff --git a/version.py b/version.py index b73888214..03607ab97 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.21.12 f.LUM' +__version__ = '2.21.13 f.LUM' From 0e431df791da03d5e005e462e7dfe0ce171c2240 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 14 Oct 2018 02:15:39 -0400 Subject: [PATCH 699/755] Co-op spoiler contain information for every player (#221) --- BaseClasses.py | 54 +++++++++++++++++++++++++++------------------- EntranceShuffle.py | 2 -- Hints.py | 2 +- Main.py | 4 +++- version.py | 2 +- 5 files changed, 37 insertions(+), 27 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 9b2b69df4..59319d7d1 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -56,7 +56,6 @@ def __init__(self, settings): self.can_take_damage = True self.keys_placed = False - self.spoiler = Spoiler(self) def copy(self): @@ -635,8 +634,11 @@ def update_required_items(worlds): state_list[location.item.world.id].collect(location.item) # Filter the required location to only include location in the world + required_locations_dict = {} for world in worlds: - world.spoiler.required_locations = list(filter(lambda location: location.world.id == world.id, required_locations)) + required_locations_dict[world.id] = list(filter(lambda location: location.world.id == world.id, required_locations)) + for world in worlds: + world.spoiler.required_locations = required_locations_dict @unique @@ -873,8 +875,8 @@ def __unicode__(self): class Spoiler(object): - def __init__(self, world): - self.world = world + def __init__(self, worlds): + self.worlds = worlds self.playthrough = {} self.locations = {} self.metadata = {} @@ -882,15 +884,17 @@ def __init__(self, world): self.hints = {} def parse_data(self): - spoiler_locations = [location for location in self.world.get_locations() if not location.event] - sort_order = {"Song": 0, "Boss": -1} - spoiler_locations.sort(key=lambda item: sort_order.get(item.type, 1)) - if self.world.settings.world_count > 1: - self.locations = {'other locations': OrderedDict([(str(location), "%s [Player %d]" % (str(location.item), location.item.world.id + 1) if location.item is not None else 'Nothing') for location in spoiler_locations])} - else: - self.locations = {'other locations': OrderedDict([(str(location), str(location.item) if location.item is not None else 'Nothing') for location in spoiler_locations])} + self.locations = {} self.version = OoTRVersion - self.settings = self.world.settings + self.settings = self.worlds[0].settings + for world in self.worlds: + spoiler_locations = [location for location in world.get_locations() if not location.event] + sort_order = {"Song": 0, "Boss": -1} + spoiler_locations.sort(key=lambda item: sort_order.get(item.type, 1)) + if self.settings.world_count > 1: + self.locations[world.id] = OrderedDict([(str(location), "%s [Player %d]" % (str(location.item), location.item.world.id + 1) if location.item is not None else 'Nothing') for location in spoiler_locations]) + else: + self.locations[world.id] = OrderedDict([(str(location), str(location.item) if location.item is not None else 'Nothing') for location in spoiler_locations]) def to_file(self, filename): self.parse_data() @@ -898,11 +902,12 @@ def to_file(self, filename): outfile.write('OoT Randomizer Version %s - Seed: %s\n\n' % (self.version, self.settings.seed)) outfile.write('Settings (%s):\n%s' % (self.settings.get_settings_string(), self.settings.get_settings_display())) - if self.settings.world_count > 1: - outfile.write('\n\nLocations [World %d]:\n\n' % (self.settings.player_num)) - else: - outfile.write('\n\nLocations:\n\n') - outfile.write('\n'.join(['%s: %s' % (location, item) for (location, item) in self.locations['other locations'].items()])) + for world in self.worlds: + if self.settings.world_count > 1: + outfile.write('\n\nLocations [World %d]:\n\n' % (world.id + 1)) + else: + outfile.write('\n\nLocations:\n\n') + outfile.write('\n'.join(['%s: %s' % (location, item) for (location, item) in self.locations[world.id].items()])) outfile.write('\n\nPlaythrough:\n\n') if self.settings.world_count > 1: @@ -911,11 +916,16 @@ def to_file(self, filename): outfile.write('\n'.join(['%s: {\n%s\n}' % (sphere_nr, '\n'.join([' %s: %s' % (location.name, item.name) for (location, item) in sphere.items()])) for (sphere_nr, sphere) in self.playthrough.items()])) if len(self.hints) > 0: - outfile.write('\n\nAlways Required Locations:\n\n') + for world in self.worlds: + if self.settings.world_count > 1: + outfile.write('\n\nWay of the Hero [Player %d]:\n\n' % (world.id + 1)) + outfile.write('\n'.join(['%s: %s [Player %d]' % (location.name, location.item.name, location.item.world.id + 1) for location in self.required_locations[world.id]])) + else: + outfile.write('\n\nWay of the Hero:\n\n') + outfile.write('\n'.join(['%s: %s' % (location.name, location.item.name) for location in self.required_locations[world.id]])) + if self.settings.world_count > 1: - outfile.write('\n'.join(['%s: %s [Player %d]' % (location.name, location.item.name, location.item.world.id + 1) for location in self.required_locations])) + outfile.write('\n\nGossip Stone Hints [Player %d]:\n\n' % self.settings.player_num) else: - outfile.write('\n'.join(['%s: %s' % (location.name, location.item.name) for location in self.required_locations])) - - outfile.write('\n\nGossip Stone Hints:\n\n') + outfile.write('\n\nGossip Stone Hints:\n\n') outfile.write('\n'.join(self.hints.values())) diff --git a/EntranceShuffle.py b/EntranceShuffle.py index 49400e574..85d9dacb0 100644 --- a/EntranceShuffle.py +++ b/EntranceShuffle.py @@ -90,7 +90,6 @@ def connect_entrance(world, entrancename, exitname): addresses = door_addresses[entrance.name][0] entrance.connect(region, addresses, target) - world.spoiler.set_entrance(entrance.name, exit.name if exit is not None else region.name, 'entrance') def connect_exit(world, exitname, entrancename): @@ -102,7 +101,6 @@ def connect_exit(world, exitname, entrancename): exit.connected_region.entrances.remove(exit) exit.connect(entrance.parent_region, door_addresses[entrance.name][1], exit_ids[exit.name][1]) - world.spoiler.set_entrance(entrance.name, exit.name, 'exit') def connect_random(world, exitlist, targetlist, two_way=False): diff --git a/Hints.py b/Hints.py index d631dd94b..0a9f047cb 100644 --- a/Hints.py +++ b/Hints.py @@ -122,7 +122,7 @@ def buildGossipHints(world): add_hint(world, stoneIDs.pop(0), buildHintString("the " + colorText(trial + " Trial", 'Pink') + " protects Ganon's Tower.")) # add required items locations for hints (good hints) - requiredSample = world.spoiler.required_locations + requiredSample = world.spoiler.required_locations[world.id] if len(requiredSample) >= 5: requiredSample = random.sample(requiredSample, random.randint(3,4)) for location in requiredSample: diff --git a/Main.py b/Main.py index 1f43a8e6e..3f96e018f 100644 --- a/Main.py +++ b/Main.py @@ -9,7 +9,7 @@ import os import struct -from BaseClasses import World, CollectionState, Item +from BaseClasses import World, CollectionState, Item, Spoiler from EntranceShuffle import link_entrances from Rom import LocalRom from Patches import patch_rom @@ -67,6 +67,8 @@ def main(settings, window=dummy_window()): world.id = id logger.info('Generating World %d.' % id) + world.spoiler = Spoiler(worlds) + window.update_progress(0 + (((id + 1) / settings.world_count) * 1)) logger.info('Creating Overworld') if world.quest == 'master': diff --git a/version.py b/version.py index 03607ab97..6042fd9c6 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.21.13 f.LUM' +__version__ = '2.21.14 f.LUM' From 7f837ebc98378c0284d375f4ee14986eb47a101d Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 14 Oct 2018 14:08:16 -0400 Subject: [PATCH 700/755] Fix more skulltula typos --- EntranceShuffle.py | 2 +- HintList.py | 18 +++++++++--------- ItemList.py | 46 +++++++++++++++++++++++----------------------- README.md | 34 +++++++++++++++++----------------- Regions.py | 18 +++++++++--------- Rules.py | 10 +++++----- version.py | 2 +- 7 files changed, 65 insertions(+), 65 deletions(-) diff --git a/EntranceShuffle.py b/EntranceShuffle.py index 85d9dacb0..c117ba20b 100644 --- a/EntranceShuffle.py +++ b/EntranceShuffle.py @@ -404,7 +404,7 @@ def connect_doors(world, doors, targets): ('Castle Town Dog Lady', 'Castle Town Dog Lady'), ('Castle Town Man in Green House', 'Castle Town Man in Green House'), ('Carpenter Boss House', 'Carpenter Boss House'), - ('House of Skulltulla', 'House of Skulltulla'), + ('House of Skulltula', 'House of Skulltula'), ('Impas House', 'Impas House'), ('Impas House Back', 'Impas House Back'), ('Windmill', 'Windmill'), diff --git a/HintList.py b/HintList.py index d8cf1129d..33e6edd65 100644 --- a/HintList.py +++ b/HintList.py @@ -156,10 +156,10 @@ def getHintGroup(group, world): '10 Big Poes': (["#Big Poes# leads to", "#ghost hunters# will be rewarded with"], None, 'alwaysLocation'), 'Deku Theater Mask of Truth': ("the #Mask of Truth# yields", None, 'alwaysLocation'), - '20 Gold Skulltulla Reward': ("slaying #20 Gold Skulltulas# reveals", None, 'location'), - '30 Gold Skulltulla Reward': ("slaying #30 Gold Skulltulas# reveals", None, 'alwaysLocation'), - '40 Gold Skulltulla Reward': ("slaying #40 Gold Skulltulas# reveals", None, 'alwaysLocation'), - '50 Gold Skulltulla Reward': ("slaying #50 Gold Skulltulas# reveals", None, 'alwaysLocation'), + '20 Gold Skulltula Reward': ("slaying #20 Gold Skulltulas# reveals", None, 'location'), + '30 Gold Skulltula Reward': ("slaying #30 Gold Skulltulas# reveals", None, 'alwaysLocation'), + '40 Gold Skulltula Reward': ("slaying #40 Gold Skulltulas# reveals", None, 'alwaysLocation'), + '50 Gold Skulltula Reward': ("slaying #50 Gold Skulltulas# reveals", None, 'alwaysLocation'), 'Ocarina of Time': ("They say the #treasure thrown by Princess Zelda# is", None, 'alwaysLocation'), 'Song from Ocarina of Time': ("the #Ocarina of Time# teaches", None, 'alwaysLocation'), 'Biggoron': ("#Biggoron# crafts", None, 'alwaysLocation'), @@ -327,15 +327,15 @@ def hintExclusions(world): if world.logic_no_big_poes: exclusions.append('10 Big Poes') if expected_skulltulas < 50: - exclusions.append('50 Gold Skulltulla Reward') + exclusions.append('50 Gold Skulltula Reward') if expected_skulltulas < 40: - exclusions.append('40 Gold Skulltulla Reward') + exclusions.append('40 Gold Skulltula Reward') if expected_skulltulas < 30: - exclusions.append('30 Gold Skulltulla Reward') + exclusions.append('30 Gold Skulltula Reward') if expected_skulltulas < 20: - exclusions.append('20 Gold Skulltulla Reward') + exclusions.append('20 Gold Skulltula Reward') if expected_skulltulas < 10: - exclusions.append('10 Gold Skulltulla Reward') + exclusions.append('10 Gold Skulltula Reward') if not world.shuffle_ocarinas: exclusions.append('Ocarina of Time') if world.tokensanity != 'all': diff --git a/ItemList.py b/ItemList.py index 96e4a8603..7a6054775 100644 --- a/ItemList.py +++ b/ItemList.py @@ -279,7 +279,7 @@ 'Nocturne of Shadow', 'Requiem of Spirit'] -skulltulla_locations = ([ +skulltula_locations = ([ 'GS Kokiri Know It All House', 'GS Kokiri Bean Patch', 'GS Kokiri House of Twins', @@ -441,138 +441,138 @@ def get_pool_core(world): placed_items['Ocarina of Time'] = 'Ocarina' if world.dungeon_mq['DT']: - skulltulla_locations_final = skulltulla_locations + [ + skulltula_locations_final = skulltula_locations + [ 'GS Deku Tree MQ Lobby', 'GS Deku Tree MQ Compass Room', 'GS Deku Tree MQ Basement Ceiling', 'GS Deku Tree MQ Basement Back Room'] else: - skulltulla_locations_final = skulltulla_locations + [ + skulltula_locations_final = skulltula_locations + [ 'GS Deku Tree Compass Room', 'GS Deku Tree Basement Vines', 'GS Deku Tree Basement Gate', 'GS Deku Tree Basement Back Room'] if world.dungeon_mq['DC']: - skulltulla_locations_final.extend([ + skulltula_locations_final.extend([ 'GS Dodongo\'s Cavern MQ Scrub Room', 'GS Dodongo\'s Cavern MQ Song of Time Block Room', 'GS Dodongo\'s Cavern MQ Lizalfos Room', 'GS Dodongo\'s Cavern MQ Larva Room', 'GS Dodongo\'s Cavern MQ Back Area']) else: - skulltulla_locations_final.extend([ + skulltula_locations_final.extend([ 'GS Dodongo\'s Cavern East Side Room', 'GS Dodongo\'s Cavern Vines Above Stairs', 'GS Dodongo\'s Cavern Back Room', 'GS Dodongo\'s Cavern Alcove Above Stairs', 'GS Dodongo\'s Cavern Scarecrow']) if world.dungeon_mq['JB']: - skulltulla_locations_final.extend([ + skulltula_locations_final.extend([ 'GS Jabu Jabu MQ Tailpasaran Room', 'GS Jabu Jabu MQ Invisible Enemies Room', 'GS Jabu Jabu MQ Boomerang Room', 'GS Jabu Jabu MQ Near Boss']) else: - skulltulla_locations_final.extend([ + skulltula_locations_final.extend([ 'GS Jabu Jabu Water Switch Room', 'GS Jabu Jabu Lobby Basement Lower', 'GS Jabu Jabu Lobby Basement Upper', 'GS Jabu Jabu Near Boss']) if world.dungeon_mq['FoT']: - skulltulla_locations_final.extend([ + skulltula_locations_final.extend([ 'GS Forest Temple MQ First Hallway', 'GS Forest Temple MQ Block Push Room', 'GS Forest Temple MQ Outdoor East', 'GS Forest Temple MQ Outdoor West', 'GS Forest Temple MQ Well']) else: - skulltulla_locations_final.extend([ + skulltula_locations_final.extend([ 'GS Forest Temple First Room', 'GS Forest Temple Lobby', 'GS Forest Temple Outdoor East', 'GS Forest Temple Outdoor West', 'GS Forest Temple Basement']) if world.dungeon_mq['FiT']: - skulltulla_locations_final.extend([ + skulltula_locations_final.extend([ 'GS Fire Temple MQ Above Fire Wall Maze', 'GS Fire Temple MQ Fire Wall Maze Center', 'GS Fire Temple MQ Big Lava Room', 'GS Fire Temple MQ Fire Wall Maze Side Room', 'GS Fire Temple MQ East Tower Top']) else: - skulltulla_locations_final.extend([ + skulltula_locations_final.extend([ 'GS Fire Temple Song of Time Room', 'GS Fire Temple Unmarked Bomb Wall', 'GS Fire Temple East Tower Climb', 'GS Fire Temple East Tower Top', 'GS Fire Temple Basement']) if world.dungeon_mq['WT']: - skulltulla_locations_final.extend([ + skulltula_locations_final.extend([ 'GS Water Temple MQ Before Upper Water Switch', 'GS Water Temple MQ North Basement', 'GS Water Temple MQ Lizalfos Hallway', 'GS Water Temple MQ Serpent River', 'GS Water Temple MQ South Basement']) else: - skulltulla_locations_final.extend([ + skulltula_locations_final.extend([ 'GS Water Temple South Basement', 'GS Water Temple Serpent River', 'GS Water Temple Falling Platform Room', 'GS Water Temple Central Room', 'GS Water Temple Near Boss Key Chest']) if world.dungeon_mq['SpT']: - skulltulla_locations_final.extend([ + skulltula_locations_final.extend([ 'GS Spirit Temple MQ Lower Adult Right', 'GS Spirit Temple MQ Lower Adult Left', 'GS Spirit Temple MQ Iron Knuckle West', 'GS Spirit Temple MQ Iron Knuckle North', 'GS Spirit Temple MQ Sun Block Room']) else: - skulltulla_locations_final.extend([ + skulltula_locations_final.extend([ 'GS Spirit Temple Metal Fence', 'GS Spirit Temple Bomb for Light Room', 'GS Spirit Temple Hall to West Iron Knuckle', 'GS Spirit Temple Boulder Room', 'GS Spirit Temple Lobby']) if world.dungeon_mq['ShT']: - skulltulla_locations_final.extend([ + skulltula_locations_final.extend([ 'GS Shadow Temple MQ Crusher Room', 'GS Shadow Temple MQ Wind Hint Room', 'GS Shadow Temple MQ After Wind', 'GS Shadow Temple MQ After Ship', 'GS Shadow Temple MQ Near Boss']) else: - skulltulla_locations_final.extend([ + skulltula_locations_final.extend([ 'GS Shadow Temple Like Like Room', 'GS Shadow Temple Crusher Room', 'GS Shadow Temple Single Giant Pot', 'GS Shadow Temple Near Ship', 'GS Shadow Temple Tripple Giant Pot']) if world.dungeon_mq['BW']: - skulltulla_locations_final.extend([ + skulltula_locations_final.extend([ 'GS Well MQ Basement', 'GS Well MQ Coffin Room', 'GS Well MQ West Inner Room']) else: - skulltulla_locations_final.extend([ + skulltula_locations_final.extend([ 'GS Well West Inner Room', 'GS Well East Inner Room', 'GS Well Like Like Cage']) if world.dungeon_mq['IC']: - skulltulla_locations_final.extend([ + skulltula_locations_final.extend([ 'GS Ice Cavern MQ Scarecrow', 'GS Ice Cavern MQ Ice Block', 'GS Ice Cavern MQ Red Ice']) else: - skulltulla_locations_final.extend([ + skulltula_locations_final.extend([ 'GS Ice Cavern Spinning Scythe Room', 'GS Ice Cavern Heart Piece Room', 'GS Ice Cavern Push Block Room']) if world.tokensanity == 'off': - for location in skulltulla_locations_final: + for location in skulltula_locations_final: placed_items[location] = 'Gold Skulltula Token' elif world.tokensanity == 'dungeons': - for location in skulltulla_locations_final: + for location in skulltula_locations_final: if world.get_location(location).scene >= 0x0A: placed_items[location] = 'Gold Skulltula Token' else: diff --git a/README.md b/README.md index 19413134f..ec95d001d 100644 --- a/README.md +++ b/README.md @@ -48,8 +48,8 @@ The following item types will be progressive chains: -Magic Meter to Double Magic To be more clear about which NPC items are shuffled, it's only the one time permanent item rewards for the most part like NPCs who originally gave Pieces of Heart -or inventory items. The only exception is that even though in vanilla the reward for 40 Gold Skulltulla Tokens was just 10 Bombchus that is still a randomized reward -in randomizer (but the 200 rupees for all 100 Gold Skulltulla Tokens is not randomized so the most tokens that could be required to complete a seed is 50). As a mercy +or inventory items. The only exception is that even though in vanilla the reward for 40 Gold Skulltula Tokens was just 10 Bombchus that is still a randomized reward +in randomizer (but the 200 rupees for all 100 Gold Skulltula Tokens is not randomized so the most tokens that could be required to complete a seed is 50). As a mercy to the player, the Ocarina Memory Game in the Lost Woods will start on the final round as that minigame was very long originally, the three day wait on the Claim Check is removed, Bombchu Bowling will have a fixed sequence of prizes that is of maximum convenience to the player, Dampe's Gravedigging Tour will always be won on the first dig, and the fishing minigame is made much simpler (8 lb fish for child now, 10 lb for adult). Additionally, any NPC who gives a trading quest item either for the child @@ -70,7 +70,7 @@ rest in the Temple of Time has hint text pointing to the locations of the Spirit Stones while an adult will be able to read hints for the Medallions. This information and some other relevant dungeon based info can be seen in the pause menu by holding the "A" button on the c-item menu. -To be very clear on this point, while the rewards for up to 50 Gold Skulltulla Tokens are randomized, the tokens themselves are not. +To be very clear on this point, while the rewards for up to 50 Gold Skulltula Tokens are randomized, the tokens themselves are not. As a service to the player in this very long game, many cutscenes have been greatly shortened or removed and text is as often as possible either omitted or sped up. We have been as thorough as our exploration of the game and various technical limitations will allow to make the parts of the game where you're watching and reading @@ -138,7 +138,7 @@ also be used in this temple to avoid the Longshot requirement for the middle lev -In Ganon's Castle Spirit Trial, the web can be burned with a precise shot through the torch by a normal arrow. Fire Arrows are not required. -While we guarantee tunics for Fire Temple and Water Temple, you can possibly force yourself to do without if you seriously let a Like Like eat the tunic and then do not recover the tunic. It is almost always possible to do without, but it can make things really difficult on you. --Several Gold Skulltulla Tokens can be reached by clever/precise uses of jump slashes and spin attacks (possibly magic spin attacks). +-Several Gold Skulltula Tokens can be reached by clever/precise uses of jump slashes and spin attacks (possibly magic spin attacks). # Known issues @@ -295,7 +295,7 @@ This option places one "major item" and one only in each of the dungeons. For th contain either Medallions or Spiritual Stones as well as Bottom of the Well, Ice Cavern, Gerudo Training Grounds, and Ganon's Castle. The major items are any item usable with a c-button that is not simply a form of ammo (Bombchus are major only if "Bombchus are considered in logic" is on), songs, Mirror Shield, swords, tunics, boots, Double Defense, Magic Meter/Double Magic, Bullet Bags, Quivers, Bomb Bags, Strength Upgrades, Scales, Wallets, and the Stone of Agony. To be -clear, this means that rupees, ammo, Deku Stick and Deku Nut ammo expansions, Pieces of Heart, Heart Containers, Gold Skulltulla Tokens, Maps, Compasses, +clear, this means that rupees, ammo, Deku Stick and Deku Nut ammo expansions, Pieces of Heart, Heart Containers, Gold Skulltula Tokens, Maps, Compasses, Small Keys, Boss Keys, Deku Shields, Hylian Shields, and Ice Traps are not considered major items. ## Dungeon Quest @@ -403,18 +403,18 @@ This setting removes the Boss Key lock from Ganon's Tower. This removes the need ## Tokensanity -This setting shuffles the Gold Skulltulla item drops into the general pool of locations. The player can choose only to include Gold Skulltullas +This setting shuffles the Gold Skulltula item drops into the general pool of locations. The player can choose only to include Gold skulltulas found in dungeons for a more mild version of this setting. # Detailed Logic -## Maximum expected Skulltulla tokens +## Maximum expected Skulltula tokens -This setting can be used to reduce the number of Gold Skulltulla Tokens that may be required to finish the game. +This setting can be used to reduce the number of Gold Skulltula Tokens that may be required to finish the game. -## No Nighttime Skulltullas without Sun's Song +## No Nighttime Skulltulas without Sun's Song -This setting causes the logic to expect the player to have an ocarina and the Sun's Song to get Gold Skulltulla locations that are only found at +This setting causes the logic to expect the player to have an ocarina and the Sun's Song to get Gold Skulltula locations that are only found at nighttime. ## No Big Poes @@ -465,7 +465,7 @@ Only one item will be in the item pool regardless of this setting; this can mere This setting allows a huge number of minor tricks to be allowed by the logic. Here is a complete list: --A precise jumpslash with either a Deku Stick or the Kokiri Sword can be used to reach a Gold Skulltulla on some vines in standad Deku Tree. +-A precise jumpslash with either a Deku Stick or the Kokiri Sword can be used to reach a Gold Skulltula on some vines in standad Deku Tree. -The Bow can be used to knock down the stairs in Dodongo's Cavern with two well timed shots. -The vines in Forest Temple leading to where the well drain switch is in the standard form can be barely reached with the standard Hookshot. -The well in Forest Temple can be crossed with just Hookshot by shooting as low as possible on the vines from the far side and swimming under @@ -481,7 +481,7 @@ Deku Stick to access the bomb flowers in the basement. -The silver rupees on the left side of Gerudo Training Grounds MQ can be collected with just Hookshot with a somewhat particular jump slash. -The first room of the Spirit Trail in Ganon's Castle MQ can be cleared without the Bow by using a Hammer jump slash to hit the rusted switch through the thrones. --The Gold Skulltulla in adult Kokiri Forest can be reached without the Hookshot by using Hover Boots off one of the roots. +-The Gold Skulltula in adult Kokiri Forest can be reached without the Hookshot by using Hover Boots off one of the roots. -The child can reach the chest on Death Mountain trail with just the Goron Bracelet by backwalking with the Bomb Flower intended to open Dodongo's Cavern and throwing the Bomb Flower at the wall very quickly. -Gerudo Fortress can be cleared without any items other than those needed for access. The logic normally guarantees one of the Bow, Hookshot, or @@ -600,7 +600,7 @@ This flag changes the behavior of Gossip Stones to give hints to players. The hi -If the required number of trials is 1-3, a hint will be added for each trial that must be done. If the required number of trials is 4 or 5, a hint will be added for each trial that can be skipped. -Hints will be added for every one of the "always" locations that is allowed to have a random possibly valuable item under the current settings. These hints -will tell the player what item is at each of these locations. These locations are the rewards for 30, 40, and 50 Gold Skulltulla Tokens, the item obtained from +will tell the player what item is at each of these locations. These locations are the rewards for 30, 40, and 50 Gold Skulltula Tokens, the item obtained from Biggoron by showing the Claim Check, the item obtained from the Big Poe vendor, both the song and the item slots at the Ocarina of Time, and the item obtained from showing the Mask of Truth at the Deku Theater. -Some hints will be given for items at a randomly selected number of other locations that are generally somewhat inconvenient to check. The total number of these @@ -608,7 +608,7 @@ hints will be either 11 or 12 minus the number of always hints placed. -3 or 4 hints will be given naming a specific non-dungeon specific item that can be found in a randomly chosen dungeon. -1 to 4 hints will be given naming a specific item found in a specific overworld region. Which part of this range is used is determined in part by how many trial hints are given. --4 to 6 hints will be given naming what region specific progression items other than Gold Skulltulla Tokens can be found. +-4 to 6 hints will be given naming what region specific progression items other than Gold Skulltula Tokens can be found. -3 or 4 hints will be given naming specific regions that are "on the way of the hero" and thus contain at least one required progression item. -All remaining hints (33 total unique Gossip Stones exist) will be filled with non-information junk hints. @@ -993,7 +993,7 @@ Remove the Boss Key door leading to Ganondorf (default: False) --tokensanity [{off,dungeons,all}] ``` -Include the chosen Gold Skulltulla Token locations in the item shuffle (default: off) +Include the chosen Gold Skulltula Token locations in the item shuffle (default: off) ``` --quest [{vanilla,master,mixed}] @@ -1005,13 +1005,13 @@ Choose the internal layout of the dungeons (default: vanilla) --logic_skulltulas [{0,10,20,30,40,50}] ``` -Choose the maximum number of Gold Skulltulla Tokens that could be required (default: 50) +Choose the maximum number of Gold Skulltula Tokens that could be required (default: 50) ``` --logic_no_night_tokens_without_suns_song ``` -Change logic to expect Sun's Song to defeat nighttime Gold Skulltullas (default: False) +Change logic to expect Sun's Song to defeat nighttime Gold Skulltulas (default: False) ``` --logic_no_big_poes diff --git a/Regions.py b/Regions.py index b7798ceae..6982f8b02 100644 --- a/Regions.py +++ b/Regions.py @@ -153,15 +153,15 @@ def create_regions(world): ['Man on Roof', 'Anju as Adult', 'Anjus Chickens', 'Sheik in Kakariko', 'GS Kakariko House Under Construction', 'GS Kakariko Skulltula House', 'GS Kakariko Guard\'s House', 'GS Kakariko Tree', 'GS Kakariko Watchtower', 'GS Kakariko Above Impa\'s House'], - ['Kakariko Exit', 'Carpenter Boss House', 'House of Skulltulla', 'Impas House', 'Impas House Back', 'Windmill', + ['Kakariko Exit', 'Carpenter Boss House', 'House of Skulltula', 'Impas House', 'Impas House Back', 'Windmill', 'Kakariko Bazaar', 'Kakariko Shooting Gallery', 'Bottom of the Well', 'Kakariko Potion Shop Front', 'Kakariko Potion Shop Back', 'Odd Medicine Building', 'Kakariko Bombable Grotto', 'Kakariko Back Grotto', 'Graveyard Entrance', 'Death Mountain Entrance']), create_interior_region('Carpenter Boss House'), create_interior_region( - 'House of Skulltulla', - ['10 Gold Skulltulla Reward', '20 Gold Skulltulla Reward', '30 Gold Skulltulla Reward', - '40 Gold Skulltulla Reward', '50 Gold Skulltulla Reward']), + 'House of Skulltula', + ['10 Gold Skulltula Reward', '20 Gold Skulltula Reward', '30 Gold Skulltula Reward', + '40 Gold Skulltula Reward', '50 Gold Skulltula Reward']), create_interior_region('Impas House'), create_interior_region('Impas House Back', ['Impa House Freestanding PoH']), create_interior_region('Windmill', ['Windmill Freestanding PoH', 'Song at Windmill']), @@ -1055,11 +1055,11 @@ def _create_region(name, type, locations=None, exits=None): 'Dog Lady': (0xE65163, 0xE661BB, 0x3E, 'NPC', 0x35, 'the Market'), 'Skull Kid': (0xDF0F33, 0xDF0E9B, 0x3E, 'NPC', 0x5B, 'the Lost Woods'), 'Ocarina Memory Game': (0xDF264F, None, 0x76, 'NPC', 0x5B, 'the Lost Woods'), - '10 Gold Skulltulla Reward': (0xEA7173, None, 0x45, 'NPC', 0x50, 'Kakariko Village'), - '20 Gold Skulltulla Reward': (0xEA7175, None, 0x39, 'NPC', 0x50, 'Kakariko Village'), - '30 Gold Skulltulla Reward': (0xEA7177, None, 0x46, 'NPC', 0x50, 'Kakariko Village'), - '40 Gold Skulltulla Reward': (0xEA7179, None, 0x03, 'NPC', 0x50, 'Kakariko Village'), - '50 Gold Skulltulla Reward': (0xEA717B, None, 0x3E, 'NPC', 0x50, 'Kakariko Village'), + '10 Gold Skulltula Reward': (0xEA7173, None, 0x45, 'NPC', 0x50, 'Kakariko Village'), + '20 Gold Skulltula Reward': (0xEA7175, None, 0x39, 'NPC', 0x50, 'Kakariko Village'), + '30 Gold Skulltula Reward': (0xEA7177, None, 0x46, 'NPC', 0x50, 'Kakariko Village'), + '40 Gold Skulltula Reward': (0xEA7179, None, 0x03, 'NPC', 0x50, 'Kakariko Village'), + '50 Gold Skulltula Reward': (0xEA717B, None, 0x3E, 'NPC', 0x50, 'Kakariko Village'), 'Man on Roof': (0xE587E3, None, 0x3E, 'NPC', 0x52, 'Kakariko Village'), 'Frog Ocarina Game': (0xDB13D3, None, 0x76, 'NPC', 0x54, 'Zora\'s River'), 'Frogs in the Rain': (0xDB1387, None, 0x3E, 'NPC', 0x54, 'Zora\'s River'), diff --git a/Rules.py b/Rules.py index d548002f2..458adec9a 100644 --- a/Rules.py +++ b/Rules.py @@ -175,19 +175,19 @@ def global_rules(world): set_rule(world.get_location('Anju as Adult'), lambda state: state.is_adult()) set_rule(world.get_location('Man on Roof'), lambda state: world.logic_man_on_roof or state.can_use('Hookshot')) set_rule( - world.get_location('10 Gold Skulltulla Reward'), + world.get_location('10 Gold Skulltula Reward'), lambda state: (expected_skulltulas >= 10) and state.has('Gold Skulltula Token', 10)) set_rule( - world.get_location('20 Gold Skulltulla Reward'), + world.get_location('20 Gold Skulltula Reward'), lambda state: (expected_skulltulas >= 20) and state.has('Gold Skulltula Token', 20)) set_rule( - world.get_location('30 Gold Skulltulla Reward'), + world.get_location('30 Gold Skulltula Reward'), lambda state: (expected_skulltulas >= 30) and state.has('Gold Skulltula Token', 30) and state.guarantee_hint()) set_rule( - world.get_location('40 Gold Skulltulla Reward'), + world.get_location('40 Gold Skulltula Reward'), lambda state: (expected_skulltulas >= 40) and state.has('Gold Skulltula Token', 40) and state.guarantee_hint()) set_rule( - world.get_location('50 Gold Skulltulla Reward'), + world.get_location('50 Gold Skulltula Reward'), lambda state: (expected_skulltulas >= 50) and state.has('Gold Skulltula Token', 50) and state.guarantee_hint()) set_rule(world.get_location('Heart Piece Grave Chest'), lambda state: state.can_play('Suns Song')) set_rule(world.get_entrance('Composer Grave'), lambda state: state.can_play('Zeldas Lullaby')) diff --git a/version.py b/version.py index 6042fd9c6..81c3525c6 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.21.14 f.LUM' +__version__ = '2.21.15 f.LUM' From 7f0502c02ea668a2c7a81ea86d56ccca1a6e4d0d Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 14 Oct 2018 15:20:56 -0400 Subject: [PATCH 701/755] Rename `location.event` attribute to `locked` to be more accurate this attribute is true when an item is preplaced into that location and cannot be altered. Other locations will have random items placed. Most hints will not select from these locked locations, since it is assumed they they are already known to the player. --- BaseClasses.py | 8 ++++---- Hints.py | 6 +++--- ItemList.py | 4 ++-- version.py | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 59319d7d1..cc52b7960 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -87,7 +87,7 @@ def copy(self): item.world = location.item.world ret.get_location(location.name).item = item item.location = ret.get_location(location.name) - item.location.event = location.event + item.location.locked = location.locked # copy remaining itempool. No item in itempool should have an assigned location for item in self.itempool: @@ -603,7 +603,7 @@ def update_required_items(worlds): if location.item.advancement and location.item.type != 'Event' and location.item.type != 'Shop' - and not location.event + and not location.locked and (worlds[0].shuffle_smallkeys != 'dungeon' or not location.item.smallkey) and (worlds[0].shuffle_bosskeys != 'dungeon' or not location.item.bosskey)] @@ -784,7 +784,7 @@ def __init__(self, name='', address=None, address2=None, default=None, type='Che self.always_allow = lambda item, state: False self.access_rule = lambda state: True self.item_rule = lambda item: True - self.event = False + self.locked = False self.price = None def can_fill(self, state, item, check_access=True): @@ -888,7 +888,7 @@ def parse_data(self): self.version = OoTRVersion self.settings = self.worlds[0].settings for world in self.worlds: - spoiler_locations = [location for location in world.get_locations() if not location.event] + spoiler_locations = [location for location in world.get_locations() if not location.locked] sort_order = {"Song": 0, "Boss": -1} spoiler_locations.sort(key=lambda item: sort_order.get(item.type, 1)) if self.settings.world_count > 1: diff --git a/Hints.py b/Hints.py index 0a9f047cb..cdf2a2dac 100644 --- a/Hints.py +++ b/Hints.py @@ -166,7 +166,7 @@ def buildGossipHints(world): dungeon_locations = [location for region in dungeon.regions for location in region.locations if location.item.type != 'Event' and \ location.item.type != 'Shop' and \ - not location.event and \ + not location.locked and \ not isDungeonItem(location.item) and \ (world.tokensanity != 'off' or location.item.type != 'Token') and\ location.item.type != 'Song'] @@ -186,7 +186,7 @@ def buildGossipHints(world): not locationWorld.name in sometimesLocations and \ locationWorld.item.type != 'Event' and \ locationWorld.item.type != 'Shop' and \ - not locationWorld.event and \ + not locationWorld.locked and \ (world.tokensanity == 'all' or locationWorld.item.type != 'Token') and \ not locationWorld.parent_region.dungeon] overworldSample = overworldlocations @@ -212,7 +212,7 @@ def buildGossipHints(world): locationWorld.item.advancement and \ locationWorld.item.type != 'Event' and \ locationWorld.item.type != 'Shop' and \ - not locationWorld.event and \ + not locationWorld.locked and \ locationWorld.item.type != 'Token' and \ not locationWorld.item.key] gooditemSample = gooditemlocations diff --git a/ItemList.py b/ItemList.py index 7a6054775..04fbfc81f 100644 --- a/ItemList.py +++ b/ItemList.py @@ -405,14 +405,14 @@ def get_junk_item(count=1): def generate_itempool(world): for location, item in eventlocations.items(): world.push_item(location, ItemFactory(item, world)) - world.get_location(location).event = True + world.get_location(location).locked = True # set up item pool (pool, placed_items) = get_pool_core(world) world.itempool = ItemFactory(pool, world) for (location, item) in placed_items.items(): world.push_item(location, ItemFactory(item, world)) - world.get_location(location).event = True + world.get_location(location).locked = True choose_trials(world) fill_bosses(world) diff --git a/version.py b/version.py index 81c3525c6..5cd9557a0 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.21.15 f.LUM' +__version__ = '2.21.16 f.LUM' From af502582ae237f030b4296b739ebb7ebe36dac54 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 14 Oct 2018 17:33:33 -0400 Subject: [PATCH 702/755] Rewrote 'one major item per dungeon' algorithm Issue #222, #179 Instead of trying random configurations like is done for songs and shops, choose dungeons in a random order and place one item there. The main thing is that since there are more than 13 mostly useless major items, it should always be guaranteed to work in one pass. This might have some implications on bias that I don't fully understand yet, but this entire option has heavy impacts on bias anyways. For the issue with the spirit colossus hands, I moved the check from being in the "major items in the dungeon" to instead add a lock to every location relevant to prevent further major item placements. While I need to add it to more locations, it makes everything handling the spirit hands cleaner. Also it avoids ugliness involved with having 2 items in spirit, since it doesn't check the count, it just places the number required and assumes correctness. --- BaseClasses.py | 13 ++---- Dungeons.py | 2 +- Fill.py | 121 +++++++++++++++++++++++++++---------------------- version.py | 2 +- 4 files changed, 74 insertions(+), 64 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index cc52b7960..9e23e0d97 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -213,9 +213,6 @@ def push_item(self, location, item): location.item = item item.location = location - if item.majoritem and location.parent_region.dungeon: - location.parent_region.dungeon.major_items += 1 - logging.getLogger('').debug('Placed %s [World %d] at %s [World %d]', item, item.world.id if hasattr(item, 'world') else -1, location, location.world.id if hasattr(location, 'world') else -1) else: raise RuntimeError('Cannot assign item %s to location %s.' % (item, location)) @@ -675,9 +672,6 @@ def can_reach(self, state): return False def can_fill(self, item): - if item.majoritem and self.world.one_item_per_dungeon and self.dungeon: - return self.dungeon.major_items == 0 - is_dungeon_restricted = False if item.map or item.compass: is_dungeon_restricted = self.world.shuffle_mapcompass == 'dungeon' @@ -732,7 +726,7 @@ def __unicode__(self): class Dungeon(object): - def __init__(self, name, regions, boss_key, small_keys, dungeon_items): + def __init__(self, world, name, regions, boss_key, small_keys, dungeon_items): def to_array(obj): if obj == None: return [] @@ -741,12 +735,12 @@ def to_array(obj): else: return [obj] + self.world = world self.name = name self.regions = regions self.boss_key = to_array(boss_key) self.small_keys = to_array(small_keys) self.dungeon_items = to_array(dungeon_items) - self.major_items = 0 @property def keys(self): @@ -786,8 +780,11 @@ def __init__(self, name='', address=None, address2=None, default=None, type='Che self.item_rule = lambda item: True self.locked = False self.price = None + self.minor_only = False def can_fill(self, state, item, check_access=True): + if self.minor_only and item.majoritem: + return False return self.parent_region.can_fill(item) and (self.always_allow(item, state) or (self.item_rule(item) and (not check_access or state.can_reach(self)))) def can_fill_fast(self, item): return self.item_rule(item) diff --git a/Dungeons.py b/Dungeons.py index 605d93b0b..d687cc7d6 100644 --- a/Dungeons.py +++ b/Dungeons.py @@ -8,7 +8,7 @@ def create_dungeons(world): def make_dungeon(name, dungeon_regions_names, boss_key, small_keys, dungeon_items): dungeon_regions = [world.get_region(region) for region in dungeon_regions_names] - dungeon = Dungeon(name, dungeon_regions, boss_key, small_keys, dungeon_items) + dungeon = Dungeon(world, name, dungeon_regions, boss_key, small_keys, dungeon_items) for region in dungeon.regions: region.dungeon = dungeon return dungeon diff --git a/Fill.py b/Fill.py index e43d4d0ef..90dc0bd56 100644 --- a/Fill.py +++ b/Fill.py @@ -139,7 +139,7 @@ def fill_dungeons_restrictive(window, worlds, shuffled_locations, dungeon_items, # Places items into dungeon locations. This is used when there should be exactly # one progression item per dungeon. This should be ran before all the progression # items are places to ensure there is space to place them. -def fill_dungeon_unique_item(window, worlds, fill_locations, itempool, attempts=15): +def fill_dungeon_unique_item(window, worlds, fill_locations, itempool): # We should make sure that we don't count event items, shop items, # token items, or dungeon items as a major item. itempool at this # point should only be able to have tokens of those restrictions @@ -147,56 +147,40 @@ def fill_dungeon_unique_item(window, worlds, fill_locations, itempool, attempts= major_items = [item for item in itempool if item.majoritem] minor_items = [item for item in itempool if not item.majoritem] - while attempts: - attempts -= 1 - try: - # choose a random set of items and locations - dungeon_locations = [] - for world in worlds: - for dungeon in world.dungeons: - dungeon_all_location = [location for region in dungeon.regions for location in region.locations if location in fill_locations] - if dungeon.name == 'Spirit Temple': - if world.dungeon_mq['SpT']: - dungeon_all_location.extend([location for region in ['Mirror Shield Hand', 'Silver Gauntlets Hand'] for location in world.get_region(region).locations]) - else: - dungeon_all_location.extend([location for region in ['Spirit Temple Outdoor Hands'] for location in world.get_region(region).locations]) - - dungeon_locations.extend(random.sample(dungeon_all_location, 2)) - else: - dungeon_locations.append(random.choice(dungeon_all_location)) - dungeon_items = random.sample(major_items, len(dungeon_locations)) - - new_dungeon_locations = list(dungeon_locations) - new_dungeon_items = list(dungeon_items) - non_dungeon_items = [item for item in major_items if item not in dungeon_items] - all_other_item_state = CollectionState.get_states_with_items([world.state for world in worlds], minor_items + non_dungeon_items) - - # attempt to place the items into the locations - random.shuffle(new_dungeon_locations) - random.shuffle(new_dungeon_items) - fill_restrictive(window, worlds, all_other_item_state, new_dungeon_locations, new_dungeon_items) - if len(new_dungeon_locations) > 0: - raise FillError('Not all items were placed successfully') - - logging.getLogger('').info("Unique dungeon items placed") - - # remove the placed items from the fill_location and itempool - for location in dungeon_locations: - fill_locations.remove(location) - for item in dungeon_items: - itempool.remove(item) + dungeons = [dungeon for world in worlds for dungeon in world.dungeons] + random.shuffle(dungeons) + random.shuffle(itempool) - except FillError as e: - logging.getLogger('').info("Failed to place unique dungeon items. Will retry %s more times", attempts) - for location in dungeon_locations: - location.item = None - for dungeon in [dungeon for world in worlds for dungeon in world.dungeons]: - dungeon.major_items = 0 - logging.getLogger('').info('\t%s' % str(e)) - continue - break - else: - raise FillError('Unable to place unique dungeon items') + all_other_item_state = CollectionState.get_states_with_items([world.state for world in worlds], minor_items) + + # iterate of all the dungeons in a random order, placing the item there + for dungeon in dungeons: + dungeon_locations = [location for region in dungeon.regions for location in region.locations if location in fill_locations] + if dungeon.name == 'Spirit Temple': + # spirit temple is weird and includes a couple locations outside of the dungeon + dungeon_locations.extend([dungeon.world.get_location(location) for location in ['Mirror Shield Chest', 'Silver Gauntlets Chest']]) + + # spirit temple has 2 items in vanilla, and we maintain that still + random.shuffle(dungeon_locations) + fill_restrictive(window, worlds, all_other_item_state, dungeon_locations, major_items, 2) + else: + # all other dungeons place 1 item in the dungeon + random.shuffle(dungeon_locations) + fill_restrictive(window, worlds, all_other_item_state, dungeon_locations, major_items, 1) + + # flag locations to not place further major items. it's important we do it on the + # locations instead of the dungeon because some locations are not in the dungeon + for location in dungeon_locations: + location.minor_only = True + + # update the location and item pool, removing any placed items and filled locations + # the fact that you can remove items from a list you're iterating over is python magic + for item in itempool: + if item.location != None: + fill_locations.remove(item.location) + itempool.remove(item) + + logging.getLogger('').info("Unique dungeon items placed") # Places the shop items into the world at the Shop locations @@ -265,15 +249,28 @@ def fill_songs(window, worlds, locations, songpool, itempool, attempts=15): # This means we first assume we have every item in the item pool and # remove an item and try to place it somewhere that is still reachable # This method helps distribution of items locked behind many requirements -def fill_restrictive(window, worlds, base_state_list, locations, itempool): +# +# count is the number of items to place. If count is negative, then it will place +# every item. Raises an error if specified count of items are not placed. +# +# This function will modify the location and itempool arguments. placed items and +# filled locations will be removed. If this returns and error, then the state of +# those two lists cannot be guaranteed. +def fill_restrictive(window, worlds, base_state_list, locations, itempool, count=-1): + unplaced_items = [] + # loop until there are no items or locations while itempool and locations: + # if remaining count is 0, return. Negative means unbounded. + if count == 0: + break + # get and item and remove it from the itempool item_to_place = itempool.pop() # generate the max states that include every remaining item # this will allow us to place this item in a reachable location - maximum_exploration_state_list = CollectionState.get_states_with_items(base_state_list, itempool) + maximum_exploration_state_list = CollectionState.get_states_with_items(base_state_list, itempool + unplaced_items) # perform_access_check checks location reachability perform_access_check = True @@ -293,9 +290,16 @@ def fill_restrictive(window, worlds, base_state_list, locations, itempool): spot_to_fill = location break - # if we failed to find a suitable location, then stop placing items + # if we failed to find a suitable location if spot_to_fill is None: - raise FillError('Game unbeatable: No more spots to place %s [World %d]' % (item_to_place, item_to_place.world.id)) + # if we specify a count, then we only want to place a subset, so a miss might be ok + if count > 0: + # don't decrement count, we didn't place anything + unplaced_items.append(item_to_place) + continue + else: + # we expect all items to be placed + raise FillError('Game unbeatable: No more spots to place %s [World %d]' % (item_to_place, item_to_place.world.id)) # Place the item in the world and continue spot_to_fill.world.push_item(spot_to_fill, item_to_place) @@ -303,6 +307,15 @@ def fill_restrictive(window, worlds, base_state_list, locations, itempool): window.fillcount += 1 window.update_progress(5 + ((window.fillcount / window.locationcount) * 30)) + # decrement count + count -= 1 + + # assert that the specified number of items were placed + if count > 0: + raise FillError('Could not place the specified number of item. %d remaining to be placed.' % count) + # re-add unplaced items that were skipped + itempool.extend(unplaced_items) + # This places items in the itempool into the locations # It does not check for reachability, only that the item is diff --git a/version.py b/version.py index 5cd9557a0..51b538545 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.21.16 f.LUM' +__version__ = '2.21.17 f.LUM' From 60f9cb74980e50856867f8365711e377f8c1de8d Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 14 Oct 2018 18:59:11 -0400 Subject: [PATCH 703/755] Various changes to hintslist --- HintList.py | 64 ++++++++++++++++++++++++++--------------------------- version.py | 2 +- 2 files changed, 33 insertions(+), 33 deletions(-) diff --git a/HintList.py b/HintList.py index 33e6edd65..7d0a73078 100644 --- a/HintList.py +++ b/HintList.py @@ -47,51 +47,51 @@ def getHintGroup(group, world): # @ will print the player name # # sets color to white (currently only used for dungeon reward hints). hintTable = { - 'Magic Meter': (["mystic training", "a sorcery scroll", "pixie dust", "a green rectangle"], "a Magic Meter", 'item'), - 'Double Defense': (["a white outline", "damage decrease"], "Double Defense", 'item'), + 'Magic Meter': (["mystic training", "pixie dust", "a green rectangle"], "a Magic Meter", 'item'), + 'Double Defense': (["a white outline", "damage decrease", "strengthened love"], "Double Defense", 'item'), 'Slingshot': (["a seed shooter", "a rubberband", "a child's catapult"], "a Slingshot", 'item'), 'Boomerang': (["a banana", "a stun stick"], "the Boomerang", 'item'), 'Bow': (["an archery enabler", "a danger dart launcher"], "a Bow", 'item'), 'Bomb Bag': (["an explosive container", "a blast bag"], "a Bomb Bag", 'item'), 'Progressive Hookshot': (["Dampe's keepsake", "the Grapple Beam", "the BOING! chain"], "a Hookshot", 'item'), 'Progressive Strength Upgrade': (["power gloves", "metal mittens", "the heavy lifty"], "a Strength Upgrade", 'item'), - 'Progressive Scale': (["a deep dive", "a piece of Zora"], "a Zora Scale", 'item'), - 'Hammer': (["the dragon smasher", "a switch deruster", "the WHAM! weapon"], "the Megaton Hammer", 'item'), - 'Iron Boots': (["sink shoes", "help drowning", "clank cleats"], "the Iron Boots", 'item'), - 'Hover Boots': (["butter boots", "slip shoes", "spacewalkers"], "the Hover Boots", 'item'), - 'Kokiri Sword': (["a butter knife", "a starter slasher", "a child's cutter"], "the Kokiri Sword", 'item'), + 'Progressive Scale': (["a deeper dive", "a piece of Zora"], "a Zora Scale", 'item'), + 'Hammer': (["the dragon smasher", "the metal mallet", "the heavy hitter"], "the Megaton Hammer", 'item'), + 'Iron Boots': (["sink shoes", "clank cleats"], "the Iron Boots", 'item'), + 'Hover Boots': (["butter boots", "sacred slippers", "spacewalkers"], "the Hover Boots", 'item'), + 'Kokiri Sword': (["a butter knife", "a starter slasher", "a switchblade"], "the Kokiri Sword", 'item'), 'Biggoron Sword': (["the biggest blade", "a colossal cleaver"], "the Biggoron Sword", 'item'), 'Master Sword': (["evil's bane"], "the Master Sword", 'item'), 'Deku Shield': (["a wooden ward", "a burnable barrier"], "a Deku Shield", 'item'), - 'Hylian Shield': (["a steel safeguard", "a kid's shell", "a Like Like's lunch crunch"], "a Hylian Shield", 'item'), + 'Hylian Shield': (["a steel safeguard", "Like Like's metal meal"], "a Hylian Shield", 'item'), 'Mirror Shield': (["the reflective rampart", "Medusa's weakness", "a silvered surface"], "the Mirror Shield", 'item'), - 'Farores Wind': (["teleportation", "a relocation rune", "a green ball"], "Farore's Wind", 'item'), - 'Nayrus Love': (["a safe space", "an impregnable aura", "a blue barrier", "the Byrna barrier"], "Nayru's Love", 'item'), + 'Farores Wind': (["teleportation", "a relocation rune", "a green ball", "a green gust"], "Farore's Wind", 'item'), + 'Nayrus Love': (["a safe space", "an impregnable aura", "a blue barrier", "a blue crystal"], "Nayru's Love", 'item'), 'Dins Fire': (["an inferno", "a heat wave", "a red ball"], "Din's Fire", 'item'), - 'Fire Arrows': (["the furnace firearm", "the flame flinger", "a magma missile"], "the Fire Arrows", 'item'), - 'Ice Arrows': (["the refrigerator rocket", "the frostbite flinger", "an iceberg maker"], "the Ice Arrows", 'item'), - 'Light Arrows': (["the shining shot", "the luminous launcher", "Ganondorf's bane"], "the Light Arrows", 'item'), - 'Lens of Truth': (["a lie detector", "a gambling cheat", "a ghost tracker"], "the Lens of Truth", 'item'), + 'Fire Arrows': (["the furnace firearm", "the burning bolts", "a magma missile"], "the Fire Arrows", 'item'), + 'Ice Arrows': (["the refrigerator rocket", "the frostbite bolts", "an iceberg maker"], "the Ice Arrows", 'item'), + 'Light Arrows': (["the shining shot", "the luminous launcher", "Ganondorf's bane", "the lighting bolts"], "the Light Arrows", 'item'), + 'Lens of Truth': (["a lie detector", "a ghost tracker", "true sight", "a detective's tool"], "the Lens of Truth", 'item'), 'Ocarina': (["a flute", "a music maker"], "an Ocarina", 'item'), 'Fairy Ocarina': (["a brown flute", "a forest instrument"], "the Fairy Ocarina", 'item'), 'Ocarina of Time': (["a blue flute", "a royal instrument"], "the Ocarina of Time", 'item'), - 'Goron Tunic': (["ruby robes", "fireproof fabric", "cooking clothing"], "a Goron Tunic", 'item'), + 'Goron Tunic': (["ruby robes", "fireproof fabric", "cooking clothes"], "a Goron Tunic", 'item'), 'Zora Tunic': (["a sapphire suit", "scuba gear", "a swimsuit"], "a Zora Tunic", 'item'), 'Epona': (["a horse", "a four legged friend"], "Epona", 'item'), 'Zeldas Lullaby': (["a song of royal slumber", "a triforce tune"], "Zelda's Lullaby", 'item'), - 'Eponas Song': (["an equestrian etude", "a Malon melody"], "Epona's Song", 'item'), + 'Eponas Song': (["an equestrian etude", "Malon's melody", "a ranch song"], "Epona's Song", 'item'), 'Sarias Song': (["a song of dancing Gorons", "Saria's phone number"], "Saria's Song", 'item'), - 'Suns Song': (["Sunny Day", "a Skulltula summoning song", "the ReDead's bane"], "the Sun's Song", 'item'), - 'Song of Time': (["a song 7 years long", "the tune of Somaria"], "the Song of Time", 'item'), + 'Suns Song': (["Sunny Day", "the ReDead's bane", "the Gibdo's bane"], "the Sun's Song", 'item'), + 'Song of Time': (["a song 7 years long", "the tune of ages"], "the Song of Time", 'item'), 'Song of Storms': (["Rain Dance", "a thunderstorm tune", "windmill acceleration"], "the Song of Storms", 'item'), 'Minuet of Forest': (["the song of tall trees", "an arboreal anthem", "a green spark trail"], "the Minuet of Forest", 'item'), - 'Bolero of Fire': (["a song of lethal lava", "a red spark trail", "a volcano verse"], "the Bolero of Fire", 'item'), + 'Bolero of Fire': (["a song of lethal lava", "a red spark trail", "a volcanic verse"], "the Bolero of Fire", 'item'), 'Serenade of Water': (["a song of a damp ditch", "a blue spark trail", "the lake's lyric"], "the Serenade of Water", 'item'), 'Requiem of Spirit': (["a song of sandy statues", "an orange spark trail", "the desert ditty"], "the Requiem of Spirit", 'item'), 'Nocturne of Shadow': (["a song of spooky spirits", "a graveyard boogie", "a haunted hymn", "a purple spark trail"], "the Nocturne of Shadow", 'item'), 'Prelude of Light': (["a luminous prologue melody", "a yellow spark trail", "the temple traveler"], "the Prelude of Light", 'item'), 'Bottle': (["a glass container", "an empty jar", "encased air"], "a Bottle", 'item'), - 'Bottle with Letter': (["a call for help", "the note that Mweeps", "an SOS call"], "Ruto's Letter", 'item'), + 'Bottle with Letter': (["a call for help", "the note that Mweeps", "an SOS call", "a fishy stationery"], "Ruto's Letter", 'item'), 'Bottle with Milk': (["cow juice", "a white liquid", "a baby's breakfast"], "a Milk Bottle", 'item'), 'Bottle with Red Potion': (["a vitality vial", "a red liquid"], "a Red Potion Bottle", 'item'), 'Bottle with Green Potion': (["a magic mixture", "a green liquid"], "a Green Potion Bottle", 'item'), @@ -103,21 +103,21 @@ def getHintGroup(group, world): 'Bottle with Poe': (["a spooky ghost", "a face in the jar"], "a Poe Bottle", 'item'), 'Bottle with Big Poe': (["the spookiest ghost", "a sidequest spirit"], "a Big Poe Bottle", 'item'), 'Stone of Agony': (["the shake stone", "the Rumble Pak (TM)"], "the Stone of Agony", 'item'), - 'Gerudo Membership Card': (["a girl club membership", "a woman license"], "the Gerudo Card", 'item'), + 'Gerudo Membership Card': (["a girl club membership", "a desert tribe's pass"], "the Gerudo Card", 'item'), 'Progressive Wallet': (["a mo' money holder", "a gem purse", "a portable bank"], "a Wallet", 'item'), 'Deku Stick Capacity': (["a lumber rack", "more flammable twigs"], "Deku Stick Capacity", 'item'), 'Deku Nut Capacity': (["more nuts", "flashbang storage"], "Deku Nut Capacity", 'item'), 'Heart Container': (["a lot of love", "a Valentine's gift", "a boss's organ"], "a Heart Container", 'item'), 'Piece of Heart': (["a little love", "a broken heart"], "a Piece of Heart", 'item'), 'Piece of Heart (Treasure Chest Game)': ("a victory valentine", "a Piece of Heart", 'item'), - 'Recovery Heart': (["a free heal", "short-term love", "a Band-Aid"], "a Recovery Heart", 'item'), + 'Recovery Heart': (["a free heal", "a hearty meal", "a Band-Aid"], "a Recovery Heart", 'item'), 'Rupee (Treasure Chest Game)': ("the dollar of defeat", 'a Green Rupee', 'item'), 'Deku Stick (1)': ("a breakable branch", 'a Deku Stick', 'item'), 'Rupee (1)': (["a unique coin", "a penny", "a green gem"], "a Green Rupee", 'item'), - 'Rupees (5)': (["a common coin", "a nickel", "a blue gem"], "a Blue Rupee", 'item'), + 'Rupees (5)': (["a common coin", "a blue gem"], "a Blue Rupee", 'item'), 'Rupees (20)': (["couch cash", "a red gem"], "a Red Rupees", 'item'), 'Rupees (50)': (["big bucks", "a purple gem", "wealth"], "a Purple Rupee", 'item'), - 'Rupees (200)': (["a juicy jackpot", "a yellow gem", "great wealth"], "a Huge Rupee", 'item'), + 'Rupees (200)': (["a juicy jackpot", "a yellow gem", "a giant gem", "great wealth"], "a Huge Rupee", 'item'), 'Weird Egg': (["a chicken dilemma"], "the Weird Egg", 'item'), 'Zeldas Letter': (["an autograph", "royal stationery", "royal snail mail"], "Zelda's Letter", 'item'), 'Pocket Egg': (["a Cucco container", "a Cucco, eventually", "a fowl youth"], "the Pocket Egg", 'item'), @@ -140,17 +140,17 @@ def getHintGroup(group, world): 'Arrows (5)': (["a few danger darts", "a few sharp shafts"], "Arrows (5 pieces)", 'item'), 'Arrows (10)': (["some danger darts", "some sharp shafts"], "Arrows (10 pieces)", 'item'), 'Arrows (30)': (["plenty of danger darts", "plenty of sharp shafts"], "Arrows (30 pieces)", 'item'), - 'Bombs (5)': (["a few explosives", "a few blast balls", "a few black spheres"], "Bombs (5 pieces)", 'item'), - 'Bombs (10)': (["some explosives", "some blast balls", "some black spheres"], "Bombs (10 pieces)", 'item'), - 'Bombs (20)': (["lots-o-explosives", "plenty of blast balls", "plenty of black spheres"], "Bombs (20 pieces)", 'item'), + 'Bombs (5)': (["a few explosives", "a few blast balls"], "Bombs (5 pieces)", 'item'), + 'Bombs (10)': (["some explosives", "some blast balls"], "Bombs (10 pieces)", 'item'), + 'Bombs (20)': (["lots-o-explosives", "plenty of blast balls"], "Bombs (20 pieces)", 'item'), 'Ice Trap': (["a gift from Ganon", "a chilling discovery", "frosty fun"], "an Ice Trap", 'item'), 'Magic Bean': (["wizardly legumes"], "a Magic Bean", 'item'), 'Bombchus': (["mice bombs", "proximity mice", "wall crawlers", "trail blazers"], "Bombchus", 'item'), 'Bombchus (5)': (["a few mice bombs", "a few proximity mice", "a few wall crawlers", "a few trail blazers"], "Bombchus (5 pieces)", 'item'), 'Bombchus (10)': (["some mice bombs", "some proximity mice", "some wall crawlers", "some trail blazers"], "Bombchus (10 pieces)", 'item'), 'Bombchus (20)': (["plenty of mice bombs", "plenty of proximity mice", "plenty of wall crawlers", "plenty of trail blazers"], "Bombchus (20 pieces)", 'item'), - 'Deku Nuts (5)': (["some nuts", "some flashbangs", "some Deku vomit"], "Deku Nuts (5 pieces)", 'item'), - 'Deku Nuts (10)': (["lots-o-nuts", "plenty of flashbangs", "plenty of Deku vomit"], "Deku Nuts (10 pieces)", 'item'), + 'Deku Nuts (5)': (["some nuts", "some flashbangs", "some scrub spit"], "Deku Nuts (5 pieces)", 'item'), + 'Deku Nuts (10)': (["lots-o-nuts", "plenty of flashbangs", "plenty of scrub spit"], "Deku Nuts (10 pieces)", 'item'), 'Deku Seeds (30)': (["catapult ammo", "lots-o-seeds"], "Deku Seeds (30 pieces)", 'item'), 'Gold Skulltula Token': (["proof of destruction", "an arachnid chip", "spider remains", "one percent of a curse"], "a Gold Skulltula Token", 'item'), @@ -180,8 +180,8 @@ def getHintGroup(group, world): 'Fire Temple Megaton Hammer Chest': ("high in the #Fire Temple#, Flare Dancers hid", None, 'location'), 'Fire Temple MQ West Tower Top Chest': ("high in the #Fire Temple#, Flare Dancers hid", None, 'location'), 'Water Temple River Chest': ("deep under #the lake#, beyond the currents, hides", "the #Water Temple River Chest# holds", 'location'), - 'Water Temple Boss Key Chest': ("deep under #the lake#, the gilded chest contains", "the #Water Temple Boss Key Chest# holds", 'location'), - 'Water Temple MQ Boss Key Chest': ("deep under #the lake#, the gilded chest contains", "the #Water Temple Boss Key Chest# holds", 'location'), + 'Water Temple Boss Key Chest': ("deep under #the lake#, the gilded chest contains", "the #Water Temple Gilded Chest# holds", 'location'), + 'Water Temple MQ Boss Key Chest': ("deep under #the lake#, the gilded chest contains", "the #Water Temple Gilded Chest# holds", 'location'), 'Water Temple MQ Freestanding Key': ("deep under #the lake#, the apparent key is really", None, 'location'), 'GS Water Temple MQ North Basement': ("deep under #the lake#, the locked spider holds", None, 'location'), 'Gerudo Training Grounds Underwater Silver Rupee Chest': ("those who seek #sunken silver rupees# will find", None, 'location'), @@ -197,7 +197,7 @@ def getHintGroup(group, world): 'GS Spirit Temple MQ Lower Adult Right': ("within #the Colossus# a spider's symphony yields", None, 'location'), 'Shadow Temple Hidden Floormaster Chest': (["shadows in an #invisible maze# guard", "after a free #boat ride# comes"], None, 'location'), 'Shadow Temple MQ Bomb Flower Chest': (["shadows in an #invisible maze# guard", "after a free #boat ride# comes"], None, 'location'), - 'Haunted Wasteland Structure Chest': (["deep in the #Wasteland# is", "beneath #the sands#, flame reveals"], None, 'location'), + 'Haunted Wasteland Structure Chest': (["deep in the #Wasteland# is", "beneath #the sands#, flames reveal"], None, 'location'), 'Composer Grave Chest': (["in the #Composers' Grave#, darkness hides", "the #Composer Brothers# hid"], None, 'location'), 'Song from Composer Grave': (["in the #Composers' Grave#, ReDead guard", "the #Composer Brothers# wrote"], None, 'location'), 'Sheik Forest Song': ("deep in #the forest# Sheik teaches", None, 'location'), diff --git a/version.py b/version.py index 51b538545..27560d340 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.21.17 f.LUM' +__version__ = '2.22.1 f.LUM' From e40655150d60fa8986ebadd20b300e18e7142a7e Mon Sep 17 00:00:00 2001 From: Nick Langille Date: Sun, 14 Oct 2018 19:00:25 -0400 Subject: [PATCH 704/755] Add comment --- ASM/src/hacks.asm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ASM/src/hacks.asm b/ASM/src/hacks.asm index 2b8a7cc23..87340306a 100755 --- a/ASM/src/hacks.asm +++ b/ASM/src/hacks.asm @@ -171,6 +171,10 @@ jal after_game_state_update nop +;================================================================================================== +; File select hash +;================================================================================================== + ; Runs after the file select menu is rendered ; Replaces: code that draws the fade-out rectangle on file load .org 0xBAF738 ; In memory: 0x803B3538 From 974f8e7cb9bd2897dae9fb08fbcfd8cca973228e Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 14 Oct 2018 19:07:44 -0400 Subject: [PATCH 705/755] compressor/decompressor locations changed for release build --- Main.py | 20 +++++++++++++------- Rom.py | 14 ++++++++++---- version.py | 2 +- 3 files changed, 24 insertions(+), 12 deletions(-) diff --git a/Main.py b/Main.py index 3f96e018f..81212f7f8 100644 --- a/Main.py +++ b/Main.py @@ -19,7 +19,7 @@ from Fill import distribute_items_restrictive from ItemList import generate_itempool from Hints import buildGossipHints -from Utils import default_output_path +from Utils import default_output_path, is_bundled from version import __version__ from OcarinaSongs import verify_scarecrow_song_str @@ -140,20 +140,26 @@ def main(settings, window=dummy_window()): window.update_status('Compressing ROM') logger.info('Compressing ROM.') - compressor_path = "" + if is_bundled(): + compressor_path = "." + else: + compressor_path = "Compress" + if platform.system() == 'Windows': if 8 * struct.calcsize("P") == 64: - compressor_path = "Compress\\Compress.exe" + compressor_path += "\\Compress.exe" else: - compressor_path = "Compress\\Compress32.exe" + compressor_path += "\\Compress32.exe" elif platform.system() == 'Linux': - compressor_path = "Compress/Compress" + compressor_path += "/Compress" elif platform.system() == 'Darwin': - compressor_path = "Compress/Compress.out" + compressor_path += "/Compress.out" else: + compressor_path = "" logger.info('OS not supported for compression') - run_process(window, logger, [compressor_path, rom_path, os.path.join(output_dir, '%s-comp.z64' % outfilebase)]) + if compressor_path != "": + run_process(window, logger, [compressor_path, rom_path, os.path.join(output_dir, '%s-comp.z64' % outfilebase)]) os.remove(rom_path) window.update_progress(95) diff --git a/Rom.py b/Rom.py index 5c4fe441c..1df6a6344 100644 --- a/Rom.py +++ b/Rom.py @@ -7,6 +7,7 @@ import subprocess import random import copy +from Utils import is_bundled from Utils import local_path, default_output_path @@ -58,15 +59,20 @@ def decompress_rom_file(self, file, decomp_file): # If Input ROM is compressed, then Decompress it subcall = [] + if is_bundled(): + sub_dir = "." + else: + sub_dir = "Decompress" + if platform.system() == 'Windows': if 8 * struct.calcsize("P") == 64: - subcall = ["Decompress\\Decompress.exe", file, decomp_file] + subcall = [sub_dir + "\\Decompress.exe", file, decomp_file] else: - subcall = ["Decompress\\Decompress32.exe", file, decomp_file] + subcall = [sub_dir + "\\Decompress32.exe", file, decomp_file] elif platform.system() == 'Linux': - subcall = ["Decompress/Decompress", file, decomp_file] + subcall = [sub_dir + "/Decompress", file, decomp_file] elif platform.system() == 'Darwin': - subcall = ["Decompress/Decompress.out", file, decomp_file] + subcall = [sub_dir + "/Decompress.out", file, decomp_file] else: raise RuntimeError('Unsupported operating system for decompression. Please supply an already decompressed ROM.') diff --git a/version.py b/version.py index 27560d340..32b0da799 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.22.1 f.LUM' +__version__ = '2.22.2 f.LUM' From 1a26cf6022e63c9b44a50f71fdbc1ba1482fc101 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 14 Oct 2018 19:56:43 -0400 Subject: [PATCH 706/755] Spirit temple's unique dungeon items are not placed together This code is a bit slower, and I'm not sure this ordering actually has an impact on the bias because of subtle ways that the algorithm works. Also this function incurs so much bias already that I'm not sure that trying to reduce tiny amounts of proposed bias is meaningful in any way. However I was told to do this under duress, so here it is. --- Fill.py | 45 ++++++++++++++++++++++++++------------------- version.py | 2 +- 2 files changed, 27 insertions(+), 20 deletions(-) diff --git a/Fill.py b/Fill.py index 90dc0bd56..7f2564b7c 100644 --- a/Fill.py +++ b/Fill.py @@ -148,10 +148,18 @@ def fill_dungeon_unique_item(window, worlds, fill_locations, itempool): minor_items = [item for item in itempool if not item.majoritem] dungeons = [dungeon for world in worlds for dungeon in world.dungeons] + double_dungeons = [] + for dungeon in dungeons: + # we will count spirit temple twice so that it gets 2 items to match vanilla + if dungeon.name == 'Spirit Temple': + double_dungeons.append(dungeon) + dungeons.extend(double_dungeons) + random.shuffle(dungeons) random.shuffle(itempool) all_other_item_state = CollectionState.get_states_with_items([world.state for world in worlds], minor_items) + all_dungeon_locations = [] # iterate of all the dungeons in a random order, placing the item there for dungeon in dungeons: @@ -160,25 +168,24 @@ def fill_dungeon_unique_item(window, worlds, fill_locations, itempool): # spirit temple is weird and includes a couple locations outside of the dungeon dungeon_locations.extend([dungeon.world.get_location(location) for location in ['Mirror Shield Chest', 'Silver Gauntlets Chest']]) - # spirit temple has 2 items in vanilla, and we maintain that still - random.shuffle(dungeon_locations) - fill_restrictive(window, worlds, all_other_item_state, dungeon_locations, major_items, 2) - else: - # all other dungeons place 1 item in the dungeon - random.shuffle(dungeon_locations) - fill_restrictive(window, worlds, all_other_item_state, dungeon_locations, major_items, 1) - - # flag locations to not place further major items. it's important we do it on the - # locations instead of the dungeon because some locations are not in the dungeon - for location in dungeon_locations: - location.minor_only = True - - # update the location and item pool, removing any placed items and filled locations - # the fact that you can remove items from a list you're iterating over is python magic - for item in itempool: - if item.location != None: - fill_locations.remove(item.location) - itempool.remove(item) + # cache this list to flag afterwards + all_dungeon_locations.extend(dungeon_locations) + + # place 1 item into the dungeon + random.shuffle(dungeon_locations) + fill_restrictive(window, worlds, all_other_item_state, dungeon_locations, major_items, 1) + + # update the location and item pool, removing any placed items and filled locations + # the fact that you can remove items from a list you're iterating over is python magic + for item in itempool: + if item.location != None: + fill_locations.remove(item.location) + itempool.remove(item) + + # flag locations to not place further major items. it's important we do it on the + # locations instead of the dungeon because some locations are not in the dungeon + for location in all_dungeon_locations: + location.minor_only = True logging.getLogger('').info("Unique dungeon items placed") diff --git a/version.py b/version.py index 32b0da799..6f7642d9c 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.22.2 f.LUM' +__version__ = '2.22.3 f.LUM' From 76c072ecf4d9b48680a4c8396f318386a2104148 Mon Sep 17 00:00:00 2001 From: AmazingAmpharos Date: Sun, 14 Oct 2018 19:21:22 -0500 Subject: [PATCH 707/755] Consistent capitalization in GUI This also adds the 's to a few things (Scarecrow's Song, Poacher's Saw) and fixes the misspelling of Tambourine. --- Patches.py | 4 ++-- Settings.py | 64 ++++++++++++++++++++++++++--------------------------- 2 files changed, 34 insertions(+), 34 deletions(-) diff --git a/Patches.py b/Patches.py index f878a96c4..67d47da78 100644 --- a/Patches.py +++ b/Patches.py @@ -82,7 +82,7 @@ 'Timer' : 0x481A, 'Low Health' : 0x481B, 'Notification' : 0x4820, - 'Tamborine' : 0x4842, + 'Tambourine' : 0x4842, 'Carrot Refill' : 0x4845, 'Zelda - Gasp' : 0x6879, 'Mweep!' : 0x687A, @@ -113,7 +113,7 @@ 'Recovery Heart': 0x480B, 'Timer' : 0x481A, 'Notification' : 0x4820, - 'Tamborine' : 0x4842, + 'Tambourine' : 0x4842, 'Carrot Refill' : 0x4845, 'Navi - Random' : 0x6843, 'Navi - Hey!' : 0x685F, diff --git a/Settings.py b/Settings.py index d2fae4ac0..7ffef2d94 100644 --- a/Settings.py +++ b/Settings.py @@ -352,11 +352,11 @@ def parse_custom_navi_color(s): 'default': 'Default Behavior', 'options': { 'Default Behavior': 'normal', - 'Rescue one carpenter': 'fast', + 'Rescue One Carpenter': 'fast', 'Start with Gerudo Card': 'open', }, 'tooltip':'''\ - 'Rescue one carpenter': Only the bottom left + 'Rescue One Carpenter': Only the bottom left carpenter must be rescued. 'Start with Gerudo Card': The carpenters are rescued from @@ -383,20 +383,20 @@ def parse_custom_navi_color(s): 'widget': 'Combobox', 'default': 'All medallions', 'options': { - 'All dungeons': 'dungeons', - 'All medallions': 'medallions', - 'Vanilla requirements': 'vanilla', - 'Always open': 'open', + 'All Dungeons': 'dungeons', + 'All Medallions': 'medallions', + 'Vanilla Requirements': 'vanilla', + 'Always Open': 'open', }, 'tooltip':'''\ - 'All dungeons': All Medallions and Stones + 'All Dungeons': All Medallions and Stones - 'All medallions': All 6 Medallions only + 'All Medallions': All 6 Medallions only - 'Vanilla requirements': Spirit and Shadow + 'Vanilla Requirements': Spirit and Shadow Medallions and the Light Arrows - 'Always open': Rainbow Bridge is always present + 'Always Open': Rainbow Bridge is always present ''' }), Setting_Info('all_reachable', bool, 1, True, @@ -435,7 +435,7 @@ def parse_custom_navi_color(s): 'action': 'store_true' }, { - 'text': 'Bombchus are considered in logic', + 'text': 'Bombchus Are Considered in Logic', 'group': 'world', 'widget': 'Checkbutton', 'default': 'checked', @@ -465,7 +465,7 @@ def parse_custom_navi_color(s): 'action': 'store_true' }, { - 'text': 'Dungeons have one major item', + 'text': 'Dungeons Have One Major Item', 'group': 'world', 'widget': 'Checkbutton', 'default': 'unchecked', @@ -646,7 +646,7 @@ def parse_custom_navi_color(s): 'action': 'store_true' }, { - 'text': 'Start with Scarecrow Song', + 'text': 'Start with Scarecrow\'s Song', 'group': 'convenience', 'widget': 'Checkbutton', 'default': 'unchecked', @@ -1014,7 +1014,7 @@ def parse_custom_navi_color(s): 'action': 'store_true' }, { - 'text': 'Maps and Compasses give information', + 'text': 'Maps and Compasses Give Information', 'group': 'logic', 'widget': 'Checkbutton', 'default': 'checked', @@ -1221,7 +1221,7 @@ def parse_custom_navi_color(s): 'action': 'store_true' }, { - 'text': 'No Skull Mask reward', + 'text': 'No Skull Mask Reward', 'group': 'rewards', 'widget': 'Checkbutton', 'default': 'unchecked', @@ -1238,7 +1238,7 @@ def parse_custom_navi_color(s): 'action': 'store_true' }, { - 'text': 'No Mask of Truth reward', + 'text': 'No Mask of Truth Reward', 'group': 'rewards', 'widget': 'Checkbutton', 'default': 'unchecked', @@ -1289,7 +1289,7 @@ def parse_custom_navi_color(s): 'action': 'store_true' }, { - 'text': 'No Racing Dampe a second time', + 'text': 'No Racing Dampe a Second Time', 'group': 'rewards', 'widget': 'Checkbutton', 'default': 'unchecked', @@ -1306,7 +1306,7 @@ def parse_custom_navi_color(s): 'action': 'store_true' }, { - 'text': 'No Biggoron reward', + 'text': 'No Biggoron Reward', 'group': 'rewards', 'widget': 'Checkbutton', 'default': 'unchecked', @@ -1345,7 +1345,7 @@ def parse_custom_navi_color(s): 'Earliest: Pocket Cucco': 'pocket_cucco', 'Earliest: Cojiro': 'cojiro', 'Earliest: Odd Mushroom': 'odd_mushroom', - 'Earliest: Poachers Saw': 'poachers_saw', + 'Earliest: Poacher\'s Saw': 'poachers_saw', 'Earliest: Broken Sword': 'broken_sword', 'Earliest: Prescription': 'prescription', 'Earliest: Eyeball Frog': 'eyeball_frog', @@ -1384,7 +1384,7 @@ def parse_custom_navi_color(s): 'Latest: Pocket Cucco': 'pocket_cucco', 'Latest: Cojiro': 'cojiro', 'Latest: Odd Mushroom': 'odd_mushroom', - 'Latest: Poachers Saw': 'poachers_saw', + 'Latest: Poacher\'s Saw': 'poachers_saw', 'Latest: Broken Sword': 'broken_sword', 'Latest: Prescription': 'prescription', 'Latest: Eyeball Frog': 'eyeball_frog', @@ -1402,7 +1402,7 @@ def parse_custom_navi_color(s): 'action': 'store_true' }, { - 'text': 'Require minor tricks', + 'text': 'Require Minor Tricks', 'group': 'tricks', 'widget': 'SpecialCheckbutton', 'default': 'unchecked', @@ -1453,7 +1453,7 @@ def parse_custom_navi_color(s): 'action': 'store_true' }, { - 'text': 'Dodongo\'s Cavern spike trap room jump without Hover Boots', + 'text': 'Dodongo\'s Cavern Spike Trap Room Jump without Hover Boots', 'group': 'tricks', 'widget': 'Checkbutton', 'default': 'unchecked', @@ -1469,7 +1469,7 @@ def parse_custom_navi_color(s): 'action': 'store_true' }, { - 'text': 'Windmill PoH as adult with nothing', + 'text': 'Windmill PoH as Adult with Nothing', 'group': 'tricks', 'widget': 'Checkbutton', 'default': 'unchecked', @@ -1487,7 +1487,7 @@ def parse_custom_navi_color(s): 'action': 'store_true' }, { - 'text': "Crater's bean PoH with Hover Boots", + 'text': "Crater's Bean PoH with Hover Boots", 'group': 'tricks', 'widget': 'Checkbutton', 'default': 'unchecked', @@ -1505,7 +1505,7 @@ def parse_custom_navi_color(s): 'action': 'store_true' }, { - 'text': "Zora's Domain entry with Cucco", + 'text': "Zora's Domain Entry with Cucco", 'group': 'tricks', 'widget': 'Checkbutton', 'default': 'unchecked', @@ -1522,7 +1522,7 @@ def parse_custom_navi_color(s): 'action': 'store_true' }, { - 'text': "Zora's Domain entry with Hover Boots", + 'text': "Zora's Domain Entry with Hover Boots", 'group': 'tricks', 'widget': 'Checkbutton', 'default': 'unchecked', @@ -1578,7 +1578,7 @@ def parse_custom_navi_color(s): 'widget': 'Combobox', 'default': 'Required everywhere', 'options': { - 'Required everywhere': 'all', + 'Required Everywhere': 'all', 'Wasteland and Chest Minigame': 'chest-wasteland', 'Only Chest Minigame': 'chest', }, @@ -1601,7 +1601,7 @@ def parse_custom_navi_color(s): 'action': 'store_true' }, { - 'text': 'Randomize ocarina song notes', + 'text': 'Randomize Ocarina Song Notes', 'group': 'other', 'widget': 'Checkbutton', 'default': 'unchecked', @@ -1622,7 +1622,7 @@ def parse_custom_navi_color(s): 'action': 'store_true' }, { - 'text': 'Chest size matches contents', + 'text': 'Chest Size Matches Contents', 'group': 'other', 'widget': 'Checkbutton', 'default': 'unchecked', @@ -1643,7 +1643,7 @@ def parse_custom_navi_color(s): 'action': 'store_true' }, { - 'text': 'Clearer hints', + 'text': 'Clearer Hints', 'group': 'other', 'widget': 'Checkbutton', 'default': 'unchecked', @@ -1710,9 +1710,9 @@ def parse_custom_navi_color(s): 'widget': 'Combobox', 'default': 'No text shuffled', 'options': { - 'No text shuffled': 'none', + 'No Text Shuffled': 'none', 'Shuffled except Hints and Keys': 'except_hints', - 'All text shuffled': 'complete', + 'All Text Shuffled': 'complete', }, 'tooltip':'''\ Will make things confusing for comedic value. From 3447bc070544f6ac2f74632b4d584db52515774a Mon Sep 17 00:00:00 2001 From: AmazingAmpharos Date: Sun, 14 Oct 2018 19:26:41 -0500 Subject: [PATCH 708/755] Default capitalization fixes A few of the capitalization changes were defaults in dropdowns. The casing will now match. --- Settings.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Settings.py b/Settings.py index 7ffef2d94..a7c24602e 100644 --- a/Settings.py +++ b/Settings.py @@ -381,7 +381,7 @@ def parse_custom_navi_color(s): 'text': 'Rainbow Bridge Requirement', 'group': 'open', 'widget': 'Combobox', - 'default': 'All medallions', + 'default': 'All Medallions', 'options': { 'All Dungeons': 'dungeons', 'All Medallions': 'medallions', @@ -1576,7 +1576,7 @@ def parse_custom_navi_color(s): 'text': 'Lens of Truth', 'group': 'tricks', 'widget': 'Combobox', - 'default': 'Required everywhere', + 'default': 'Required Everywhere', 'options': { 'Required Everywhere': 'all', 'Wasteland and Chest Minigame': 'chest-wasteland', @@ -1708,7 +1708,7 @@ def parse_custom_navi_color(s): 'text': 'Text Shuffle', 'group': 'other', 'widget': 'Combobox', - 'default': 'No text shuffled', + 'default': 'No Text Shuffled', 'options': { 'No Text Shuffled': 'none', 'Shuffled except Hints and Keys': 'except_hints', From 5beeb8db0b47187e0b6a7dd129636ad9340f8b4d Mon Sep 17 00:00:00 2001 From: AmazingAmpharos Date: Sun, 14 Oct 2018 19:31:36 -0500 Subject: [PATCH 709/755] Last capitalization fix Oops, my bad again. I should be less sloppy. --- Settings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Settings.py b/Settings.py index a7c24602e..a96a333ea 100644 --- a/Settings.py +++ b/Settings.py @@ -1130,7 +1130,7 @@ def parse_custom_navi_color(s): 'type': int }, { - 'text': 'Maximum expected Skulltula tokens', + 'text': 'Maximum Expected Skulltula Tokens', 'group': 'rewards', 'widget': 'Scale', 'default': 50, From b68e1b5dd6efe2278c7f2b2a6138b012f20ee468 Mon Sep 17 00:00:00 2001 From: AmazingAmpharos Date: Sun, 14 Oct 2018 19:38:46 -0500 Subject: [PATCH 710/755] Change Kero Kero to Ribbit We should match the cultural understanding of frog noises for our audience. --- Patches.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Patches.py b/Patches.py index 67d47da78..e0cbe928f 100644 --- a/Patches.py +++ b/Patches.py @@ -82,7 +82,7 @@ 'Timer' : 0x481A, 'Low Health' : 0x481B, 'Notification' : 0x4820, - 'Tambourine' : 0x4842, + 'Tambourine' : 0x4842, 'Carrot Refill' : 0x4845, 'Zelda - Gasp' : 0x6879, 'Mweep!' : 0x687A, @@ -92,7 +92,7 @@ 'Great Fairy' : 0x6858, 'Moo' : 0x28DF, 'Bark' : 0x28D8, - 'Kero Kero' : 0x28B1, + 'Ribbit' : 0x28B1, 'Broken Pot' : 0x2887, 'Cockadoodledoo': 0x2813, 'Epona' : 0x2805, @@ -113,7 +113,7 @@ 'Recovery Heart': 0x480B, 'Timer' : 0x481A, 'Notification' : 0x4820, - 'Tambourine' : 0x4842, + 'Tambourine' : 0x4842, 'Carrot Refill' : 0x4845, 'Navi - Random' : 0x6843, 'Navi - Hey!' : 0x685F, @@ -128,7 +128,7 @@ 'Switch' : 0x2815, 'Bomb Bounce' : 0x282F, 'Bark' : 0x28D8, - 'Kero Kero' : 0x28B1, + 'Ribbit' : 0x28B1, 'Broken Pot' : 0x2887, 'Business Scrub': 0x3882, 'Guay' : 0x38B6, From 6d23f3cf196f4b7cea3ae429f7f81399ad174d94 Mon Sep 17 00:00:00 2001 From: AmazingAmpharos Date: Mon, 15 Oct 2018 00:19:09 -0500 Subject: [PATCH 711/755] GTG fix and another capitalization Vanilla GTG had an issue wherein the text box in the sunken silver rupees room would display as you dove because it wasn't moved low enough. This moves the text boxes to just the necessary depth to avoid this problem. I did confirm this causes no instability in Shadow Temple. I also noticed a label that wasn't capitalized with the rest of the style updates that was in Gui.py instead of in Settings.py. I took care of that here. --- Gui.py | 2 +- Patches.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Gui.py b/Gui.py index 505b5cb59..288be17bd 100755 --- a/Gui.py +++ b/Gui.py @@ -122,7 +122,7 @@ def guiMain(settings=None): # Logic tab frames['rewards'] = LabelFrame(frames['logic_tab'], text='Remove Specific Locations', labelanchor=NW) - frames['tricks'] = LabelFrame(frames['logic_tab'], text='Specific expected tricks', labelanchor=NW) + frames['tricks'] = LabelFrame(frames['logic_tab'], text='Specific Expected Tricks', labelanchor=NW) #Other Tab frames['convenience'] = LabelFrame(frames['other_tab'], text='Speed Ups', labelanchor=NW) diff --git a/Patches.py b/Patches.py index e0cbe928f..92b062f66 100644 --- a/Patches.py +++ b/Patches.py @@ -827,7 +827,7 @@ def patch_rom(world, rom): 0x27CE090, 0x2887070, 0x2887080, 0x2887090, 0x2897070, 0x28C7134, 0x28D91BC, 0x28A60F4, 0x28AE084, 0x28B9174, 0x28BF168, 0x28BF178, 0x28BF188, 0x28A1144, 0x28A6104, 0x28D0094] for address in Wonder_text: - rom.write_byte(address, 0xFE) + rom.write_byte(address, 0xFB) # Speed dig text for Dampe rom.write_bytes(0x9532F8, [0x08, 0x08, 0x08, 0x59]) From d8a8ab6b8c6ea3a9ea8ab84889b0e5f68293dbe8 Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 15 Oct 2018 02:46:17 -0400 Subject: [PATCH 712/755] Add different path handler for data path for release --- GuiUtils.py | 8 ++++---- Hints.py | 1 - MQ.py | 4 ++-- Patches.py | 6 +++--- Rom.py | 4 ++-- Utils.py | 15 +++++++++++++++ version.py | 2 +- 7 files changed, 27 insertions(+), 13 deletions(-) diff --git a/GuiUtils.py b/GuiUtils.py index 397ce0906..6377b075b 100644 --- a/GuiUtils.py +++ b/GuiUtils.py @@ -3,12 +3,12 @@ import tkinter as tk import traceback -from Utils import local_path +from Utils import data_path def set_icon(window): - er16 = tk.PhotoImage(file=local_path('data/ER16.gif')) - er32 = tk.PhotoImage(file=local_path('data/ER32.gif')) - er48 = tk.PhotoImage(file=local_path('data/ER32.gif')) + er16 = tk.PhotoImage(file=data_path('ER16.gif')) + er32 = tk.PhotoImage(file=data_path('ER32.gif')) + er48 = tk.PhotoImage(file=data_path('ER32.gif')) window.tk.call('wm', 'iconphoto', window._w, er16, er32, er48) # pylint: disable=protected-access diff --git a/Hints.py b/Hints.py index cdf2a2dac..48d9a6f0c 100644 --- a/Hints.py +++ b/Hints.py @@ -6,7 +6,6 @@ import random from HintList import getHint, getHintGroup, Hint -from Utils import local_path from ItemList import eventlocations from Messages import update_message_by_id from TextBox import lineWrap diff --git a/MQ.py b/MQ.py index cdfc28382..ffecbf415 100644 --- a/MQ.py +++ b/MQ.py @@ -43,7 +43,7 @@ # the floor map data is missing a vertex pointer that would point within kaleido_scope. # As such, if the file moves, the patch will break. -from Utils import local_path +from Utils import data_path from Rom import LocalRom import json from struct import pack, unpack @@ -421,7 +421,7 @@ def patch_files(rom:LocalRom, mq_scenes:list): def get_json(): - with open(local_path('data/mqu.json'), 'r') as stream: + with open(data_path('mqu.json'), 'r') as stream: data = json.load(stream) return data diff --git a/Patches.py b/Patches.py index e0cbe928f..5f7751d22 100644 --- a/Patches.py +++ b/Patches.py @@ -9,7 +9,7 @@ import copy from Hints import writeGossipStoneHintsHints, buildBossRewardHints, buildGanonText, getSimpleHintNoPrefix -from Utils import local_path, default_output_path, random_choices +from Utils import data_path, default_output_path, random_choices from Items import ItemFactory, item_data from Messages import * from OcarinaSongs import Song, str_to_song, replace_songs @@ -160,13 +160,13 @@ def get_navi_color_options(): return ["Random Choice", "Completely Random"] + get_navi_colors() def patch_rom(world, rom): - with open(local_path('data/rom_patch.txt'), 'r') as stream: + with open(data_path('rom_patch.txt'), 'r') as stream: for line in stream: address, value = [int(x, 16) for x in line.split(',')] rom.write_byte(address, value) # Write Randomizer title screen logo - with open(local_path('data/title.bin'), 'rb') as stream: + with open(data_path('title.bin'), 'rb') as stream: titleBytes = stream.read() rom.write_bytes(0x01795300, titleBytes) diff --git a/Rom.py b/Rom.py index 1df6a6344..5159a7db1 100644 --- a/Rom.py +++ b/Rom.py @@ -9,7 +9,7 @@ import copy from Utils import is_bundled -from Utils import local_path, default_output_path +from Utils import local_path, data_path, default_output_path DMADATA_START = 0x7430 @@ -22,7 +22,7 @@ def __init__(self, settings, patch=True): os.chdir(local_path()) - with open(local_path('data/symbols.json'), 'r') as stream: + with open(data_path('symbols.json'), 'r') as stream: symbols = json.load(stream) self.symbols = { name: int(addr, 16) for name, addr in symbols.items() } diff --git a/Utils.py b/Utils.py index 326665fb8..ced707c53 100644 --- a/Utils.py +++ b/Utils.py @@ -28,6 +28,21 @@ def local_path(path=''): local_path.cached_path = None + +def data_path(path=''): + if data_path.cached_path is not None: + return os.path.join(data_path.cached_path, path) + + # Even if it's bundled we use __file__ + # if it's not bundled, then we want to use the source.py dir + Data + # if it's bundled, then we want to use the extraction dir + Data + data_path.cached_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), "Data") + + return os.path.join(data_path.cached_path, path) + +data_path.cached_path = None + + def default_output_path(path): if path == '': path = local_path('Output') diff --git a/version.py b/version.py index 6f7642d9c..bdfd31dcd 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.22.3 f.LUM' +__version__ = '2.22.4 f.LUM' From 3afae1d0dce3406b03a74593d4da4583760ce4ba Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 15 Oct 2018 03:02:53 -0400 Subject: [PATCH 713/755] Fix bug with unique dungeon items overwriting colossus hands Missing a check if the location is to be filled when appending the colossus hands to the dungeon locations --- Fill.py | 2 +- version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Fill.py b/Fill.py index 7f2564b7c..0e412831d 100644 --- a/Fill.py +++ b/Fill.py @@ -166,7 +166,7 @@ def fill_dungeon_unique_item(window, worlds, fill_locations, itempool): dungeon_locations = [location for region in dungeon.regions for location in region.locations if location in fill_locations] if dungeon.name == 'Spirit Temple': # spirit temple is weird and includes a couple locations outside of the dungeon - dungeon_locations.extend([dungeon.world.get_location(location) for location in ['Mirror Shield Chest', 'Silver Gauntlets Chest']]) + dungeon_locations.extend([dungeon.world.get_location(location) for location in ['Mirror Shield Chest', 'Silver Gauntlets Chest'] if location in fill_locations]) # cache this list to flag afterwards all_dungeon_locations.extend(dungeon_locations) diff --git a/version.py b/version.py index bdfd31dcd..149783dd8 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.22.4 f.LUM' +__version__ = '2.22.5 f.LUM' From 564d102eee5957de4a32c801e2efcd2bed182254 Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 15 Oct 2018 03:31:50 -0400 Subject: [PATCH 714/755] fix colossus hand filter having filtering at the wrong point --- Fill.py | 2 +- version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Fill.py b/Fill.py index 0e412831d..434da6f43 100644 --- a/Fill.py +++ b/Fill.py @@ -166,7 +166,7 @@ def fill_dungeon_unique_item(window, worlds, fill_locations, itempool): dungeon_locations = [location for region in dungeon.regions for location in region.locations if location in fill_locations] if dungeon.name == 'Spirit Temple': # spirit temple is weird and includes a couple locations outside of the dungeon - dungeon_locations.extend([dungeon.world.get_location(location) for location in ['Mirror Shield Chest', 'Silver Gauntlets Chest'] if location in fill_locations]) + dungeon_locations.extend(filter(lambda location: location in fill_locations, [dungeon.world.get_location(location) for location in ['Mirror Shield Chest', 'Silver Gauntlets Chest']])) # cache this list to flag afterwards all_dungeon_locations.extend(dungeon_locations) diff --git a/version.py b/version.py index 149783dd8..d05125a80 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.22.5 f.LUM' +__version__ = '2.22.6 f.LUM' From 086af4b4f90fde7ea987b22ac0015d8c026c1d5c Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 15 Oct 2018 03:37:23 -0400 Subject: [PATCH 715/755] Seed is displayed in the GUI progressbar title Main use is for when there's an error during generation with no specified seed, you can still know the seed that caused it --- Gui.py | 6 +++--- version.py | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gui.py b/Gui.py index 288be17bd..9ee86c5d4 100755 --- a/Gui.py +++ b/Gui.py @@ -434,15 +434,15 @@ def multiple_run(settings, window): orig_seed = settings.seed for i in range(settings.count): settings.update_seed(orig_seed + '-' + str(i)) - window.update_title("Generating Seed...%d/%d" % (i+1, settings.count)) + window.update_title("Generating Seed %s...%d/%d" % (settings.seed, i+1, settings.count)) main(settings, window) def generateRom(): settings = guivars_to_settings(guivars) if settings.count is not None: - BackgroundTaskProgress(mainWindow, "Generating Seed...", multiple_run, settings) + BackgroundTaskProgress(mainWindow, "Generating Seed %s..." % settings.seed, multiple_run, settings) else: - BackgroundTaskProgress(mainWindow, "Generating Seed...", main, settings) + BackgroundTaskProgress(mainWindow, "Generating Seed %s..." % settings.seed, main, settings) generateSeedFrame = Frame(mainWindow) generateButton = Button(generateSeedFrame, text='Generate Patched ROM', command=generateRom) diff --git a/version.py b/version.py index d05125a80..67031e098 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.22.6 f.LUM' +__version__ = '2.22.7 f.LUM' From 5ad59ee3920e8953c312af609256cd4f471f4ce7 Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 15 Oct 2018 04:00:30 -0400 Subject: [PATCH 716/755] Assert world count is between 1 and 31 Before the max was unbounded, but the ASM code currently only allocates space for up to 31 players. --- Gui.py | 4 ++-- Main.py | 4 ++-- version.py | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Gui.py b/Gui.py index 9ee86c5d4..c0569e0c0 100755 --- a/Gui.py +++ b/Gui.py @@ -406,7 +406,7 @@ def open_readme(): worldCountFrame = Frame(multiworldFrame) countLabel = Label(worldCountFrame, text='Player Count') guivars['world_count'] = StringVar() - countSpinbox = Spinbox(worldCountFrame, from_=1, to=100, textvariable=guivars['world_count'], width=3) + countSpinbox = Spinbox(worldCountFrame, from_=1, to=31, textvariable=guivars['world_count'], width=3) countLabel.pack(side=LEFT) countSpinbox.pack(side=LEFT, padx=2) @@ -415,7 +415,7 @@ def open_readme(): playerNumFrame = Frame(multiworldFrame) countLabel = Label(playerNumFrame, text='Player ID') guivars['player_num'] = StringVar() - countSpinbox = Spinbox(playerNumFrame, from_=1, to=100, textvariable=guivars['player_num'], width=3) + countSpinbox = Spinbox(playerNumFrame, from_=1, to=31, textvariable=guivars['player_num'], width=3) countLabel.pack(side=LEFT) countSpinbox.pack(side=LEFT, padx=2) diff --git a/Main.py b/Main.py index 81212f7f8..50a9506bb 100644 --- a/Main.py +++ b/Main.py @@ -50,8 +50,8 @@ def main(settings, window=dummy_window()): if not settings.world_count: settings.world_count = 1 - if settings.world_count < 1: - raise Exception('World Count must be at least 1') + if settings.world_count < 1 or settings.world_count > 31: + raise Exception('World Count must be between 1 and 31') if settings.player_num > settings.world_count or settings.player_num < 1: raise Exception('Player Num must be between 1 and %d' % settings.world_count) diff --git a/version.py b/version.py index 67031e098..7db632a23 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.22.7 f.LUM' +__version__ = '2.22.8 f.LUM' From a5456023120e73bb8c2fe602533531e6703ffc4a Mon Sep 17 00:00:00 2001 From: AmazingAmpharos Date: Mon, 15 Oct 2018 03:09:10 -0500 Subject: [PATCH 717/755] High difficulty update and typo fix The location "GS Shadow Temple Triple Pot" erroneously had an extra "p" in it; that was fixed. More notably, I implemented some Hard/Very Hard/OHKO tweaks we discussed a while back but never actually did. Now, increasing the difficulty from normal will remove the three Bombchus from the item pool originally associated with the overworld, Hard will only have one ammo upgrade of each type (so two total Bow/Slingshot/Bomb Bag and one each of Deku Stick Capacity Upgrade and Deku Nut Capacity Upgrade), and Very Hard will have no ammo upgrades (so only one each of Bow/Slingshot/Bomb Bag and no Deku Stick or Deku Nut capacity upgrades). The tooltip and help options for difficulty have been updated accordingly. --- ItemList.py | 29 +++++++++++++++++------------ Regions.py | 4 ++-- Settings.py | 20 +++++++++++++++----- 3 files changed, 34 insertions(+), 19 deletions(-) diff --git a/ItemList.py b/ItemList.py index 04fbfc81f..64c7d8301 100644 --- a/ItemList.py +++ b/ItemList.py @@ -30,9 +30,9 @@ + ['Progressive Strength Upgrade'] * 3 + ['Progressive Scale'] * 2 + ['Recovery Heart'] * 6 - + ['Bow'] * 3 - + ['Slingshot'] * 3 - + ['Bomb Bag'] * 3 + + ['Bow'] + + ['Slingshot'] + + ['Bomb Bag'] + ['Bottle with Letter'] + ['Bombs (5)'] * 2 + ['Bombs (10)'] @@ -40,8 +40,6 @@ + ['Arrows (5)'] + ['Arrows (10)'] * 5 + ['Progressive Wallet'] * 2 - + ['Deku Stick Capacity'] * 2 - + ['Deku Nut Capacity'] * 2 + ['Magic Meter']) DT_vanilla = (['Recovery Heart'] * 2) @@ -547,7 +545,7 @@ def get_pool_core(world): 'GS Shadow Temple Crusher Room', 'GS Shadow Temple Single Giant Pot', 'GS Shadow Temple Near Ship', - 'GS Shadow Temple Tripple Giant Pot']) + 'GS Shadow Temple Triple Giant Pot']) if world.dungeon_mq['BW']: skulltula_locations_final.extend([ 'GS Well MQ Basement', @@ -581,7 +579,11 @@ def get_pool_core(world): pool.extend(['Gold Skulltula Token'] * 100) if world.bombchus_in_logic: - pool.extend(['Bombchus'] * 4) + pool.extend(['Bombchus']) + if world.difficulty == 'normal': + pool.extend(['Bombchus'] * 3) + else: + pool.extend(get_junk_item(3)) if world.dungeon_mq['JB']: pool.extend(['Bombchus']) if world.dungeon_mq['SpT']: @@ -591,7 +593,10 @@ def get_pool_core(world): if world.dungeon_mq['GTG']: pool.extend(['Bombchus']) else: - pool.extend(['Bombchus (5)'] + ['Bombchus (10)'] * 2) + if world.difficulty == 'normal': + pool.extend(['Bombchus (5)'] + ['Bombchus (10)'] * 2) + else: + pool.extend(get_junk_item(3)) if world.dungeon_mq['JB']: pool.extend(['Bombchus (10)']) if world.dungeon_mq['SpT']: @@ -619,14 +624,14 @@ def get_pool_core(world): pool.extend(['Ice Trap'] * 4) if world.difficulty == 'normal': - pool.extend(['Magic Meter', 'Double Defense'] + ['Heart Container'] * 8) + pool.extend(['Magic Meter', 'Double Defense', 'Deku Stick Capacity', 'Deku Nut Capacity', 'Bow', 'Slingshot', 'Bomb Bag'] + ['Heart Container'] * 8) else: - pool.extend(get_junk_item(10)) + pool.extend(get_junk_item(15)) if world.difficulty == 'very_hard' or world.difficulty == 'ohko': - pool.extend(get_junk_item(37)) + pool.extend(get_junk_item(42)) else: - pool.extend(['Nayrus Love', 'Piece of Heart (Treasure Chest Game)'] + ['Piece of Heart'] * 35) + pool.extend(['Nayrus Love', 'Piece of Heart (Treasure Chest Game)', 'Deku Stick Capacity', 'Deku Nut Capacity', 'Bow', 'Slingshot', 'Bomb Bag'] + ['Piece of Heart'] * 35) if world.gerudo_fortress == 'open': placed_items['Gerudo Fortress North F1 Carpenter'] = 'Recovery Heart' diff --git a/Regions.py b/Regions.py index 6982f8b02..89e5331cb 100644 --- a/Regions.py +++ b/Regions.py @@ -770,7 +770,7 @@ def create_regions(world): 'Shadow Temple Beyond Boat', ['Shadow Temple Spike Walls Left Chest', 'Shadow Temple Boss Key Chest', 'Shadow Temple Hidden Floormaster Chest', 'Bongo Bongo Heart', 'Bongo Bongo', - 'GS Shadow Temple Tripple Giant Pot']) + 'GS Shadow Temple Triple Giant Pot']) ]) if world.dungeon_mq['BW']: @@ -1539,7 +1539,7 @@ def _create_region(name, type, locations=None, exits=None): 'GS Shadow Temple Single Giant Pot': (None, None, 0x01, 'GS Token', 0x07, 'Shadow Temple'), 'GS Shadow Temple Crusher Room': (None, None, 0x02, 'GS Token', 0x07, 'Shadow Temple'), - 'GS Shadow Temple Tripple Giant Pot': (None, None, 0x04, 'GS Token', 0x07, 'Shadow Temple'), + 'GS Shadow Temple Triple Giant Pot': (None, None, 0x04, 'GS Token', 0x07, 'Shadow Temple'), 'GS Shadow Temple Like Like Room': (None, None, 0x08, 'GS Token', 0x07, 'Shadow Temple'), 'GS Shadow Temple Near Ship': (None, None, 0x10, 'GS Token', 0x07, 'Shadow Temple'), diff --git a/Settings.py b/Settings.py index a96a333ea..c2c66a364 100644 --- a/Settings.py +++ b/Settings.py @@ -1733,8 +1733,10 @@ def parse_custom_navi_color(s): 'help': '''\ Change the item pool for an added challenge. normal: Default items - hard: Double defense, double magic, and all 8 heart containers are removed - very_hard: Double defense, double magic, Nayru's Love, and all health upgrades are removed + hard: Double defense, double magic, and all 8 heart containers are removed. Ammo + for each type can only be expanded once. + very_hard: Double defense, double magic, Nayru's Love, and all health upgrades are removed. + No ammo expansions are available. ohko: Same as very hard, and Link will die in one hit. ''' }, @@ -1750,14 +1752,22 @@ def parse_custom_navi_color(s): 'OHKO': 'ohko' }, 'tooltip':'''\ - Makes health less available + Makes health less available, reduces + ammo expansions, and reduces Bombchus + in the item pool by three. 'Hard': Heart Containers, Double Magic, - and Double Defense are removed. + and Double Defense are removed. Only + one extra Quiver, Bullet Bag, Bomb Bag, + Deku Stick and Deku Nut Capacity Upgrades + will be available. 'Very Hard': Heart Containers, Pieces of Heart, Double Magic, Double Defense, - and Nayru's Love are removed. + and Nayru's Love are removed. No extra + Quivers, Bullet Bags, Bomb Bags, or + Deku Stick and Deku Nut Capacity Upgrades + will be available. 'OHKO': Link dies in one hit. ''' From 547b41db0e30baad25df18f6829b326ee03a1a3c Mon Sep 17 00:00:00 2001 From: AmazingAmpharos Date: Mon, 15 Oct 2018 03:44:27 -0500 Subject: [PATCH 718/755] High difficulty Bombchu balancing This re-arranges how Bombchu distribution is handled on higher difficulty settings to balance out the number found to lower but generally reasonable values. 3 are available in Hard; only 1 is available in Very Hard. This is invariant with any configuration of MQ dungeons. I also made sure that no matter how high your difficulty, you can at least still be a WINNER. --- ItemList.py | 66 +++++++++++++++++++++++++++++++++++++++-------------- Settings.py | 10 ++++---- 2 files changed, 55 insertions(+), 21 deletions(-) diff --git a/ItemList.py b/ItemList.py index 64c7d8301..19e753862 100644 --- a/ItemList.py +++ b/ItemList.py @@ -40,7 +40,8 @@ + ['Arrows (5)'] + ['Arrows (10)'] * 5 + ['Progressive Wallet'] * 2 - + ['Magic Meter']) + + ['Magic Meter'] + + ['Piece of Heart (Treasure Chest Game)']) DT_vanilla = (['Recovery Heart'] * 2) @@ -582,33 +583,64 @@ def get_pool_core(world): pool.extend(['Bombchus']) if world.difficulty == 'normal': pool.extend(['Bombchus'] * 3) + elif world.difficulty == 'hard': + pool.extend(['Bombchus'] * 2) + pool.extend(get_junk_item(1)) else: pool.extend(get_junk_item(3)) if world.dungeon_mq['JB']: - pool.extend(['Bombchus']) + if world.difficulty == 'normal': + pool.extend(['Bombchus']) + else: + pool.extend(get_junk_item(1)) if world.dungeon_mq['SpT']: - pool.extend(['Bombchus'] * 2) + if world.difficulty == 'normal': + pool.extend(['Bombchus'] * 2) + else: + pool.extend(get_junk_item(2)) if not world.dungeon_mq['BW']: - pool.extend(['Bombchus']) + if world.difficulty == 'normal': + pool.extend(['Bombchus']) + else: + pool.extend(get_junk_item(1)) if world.dungeon_mq['GTG']: - pool.extend(['Bombchus']) + if world.difficulty == 'normal': + pool.extend(['Bombchus']) + else: + pool.extend(get_junk_item(1)) else: - if world.difficulty == 'normal': - pool.extend(['Bombchus (5)'] + ['Bombchus (10)'] * 2) + pool.extend(['Bombchus (5)']) + if world.difficulty == 'very_hard' or world.difficulty == 'ohko': + pool.extend(get_junk_item(2)) else: - pool.extend(get_junk_item(3)) + pool.extend(['Bombchus (10)'] * 2) if world.dungeon_mq['JB']: - pool.extend(['Bombchus (10)']) + if world.difficulty == 'normal': + pool.extend(['Bombchus (10)']) + else: + pool.extend(get_junk_item(1)) if world.dungeon_mq['SpT']: - pool.extend(['Bombchus (10)'] * 2) + if world.difficulty == 'normal': + pool.extend(['Bombchus (10)'] * 2) + else: + pool.extend(get_junk_item(2)) if not world.dungeon_mq['BW']: - pool.extend(['Bombchus (10)']) + if world.difficulty == 'normal': + pool.extend(['Bombchus (10)']) + else: + pool.extend(get_junk_item(1)) if world.dungeon_mq['GTG']: - pool.extend(['Bombchus (10)']) - if world.dungeon_mq['GC']: - pool.extend(['Bombchus (10)']) + if world.difficulty == 'normal': + pool.extend(['Bombchus (10)']) + else: + pool.extend(get_junk_item(1)) + if world.difficulty == 'normal': + if world.dungeon_mq['GC']: + pool.extend(['Bombchus (10)']) + else: + pool.extend(['Bombchus (20)']) else: - pool.extend(['Bombchus (20)']) + pool.extend(get_junk_item(1)) if world.difficulty == 'ohko': pool.extend(['Recovery Heart']) @@ -629,9 +661,9 @@ def get_pool_core(world): pool.extend(get_junk_item(15)) if world.difficulty == 'very_hard' or world.difficulty == 'ohko': - pool.extend(get_junk_item(42)) + pool.extend(get_junk_item(41)) else: - pool.extend(['Nayrus Love', 'Piece of Heart (Treasure Chest Game)', 'Deku Stick Capacity', 'Deku Nut Capacity', 'Bow', 'Slingshot', 'Bomb Bag'] + ['Piece of Heart'] * 35) + pool.extend(['Nayrus Love', 'Deku Stick Capacity', 'Deku Nut Capacity', 'Bow', 'Slingshot', 'Bomb Bag'] + ['Piece of Heart'] * 35) if world.gerudo_fortress == 'open': placed_items['Gerudo Fortress North F1 Carpenter'] = 'Recovery Heart' diff --git a/Settings.py b/Settings.py index c2c66a364..15b49f937 100644 --- a/Settings.py +++ b/Settings.py @@ -1734,9 +1734,9 @@ def parse_custom_navi_color(s): Change the item pool for an added challenge. normal: Default items hard: Double defense, double magic, and all 8 heart containers are removed. Ammo - for each type can only be expanded once. + for each type can only be expanded once and you can only find three Bombchu packs. very_hard: Double defense, double magic, Nayru's Love, and all health upgrades are removed. - No ammo expansions are available. + No ammo expansions are available and you can only find one Bombchu pack. ohko: Same as very hard, and Link will die in one hit. ''' }, @@ -1760,14 +1760,16 @@ def parse_custom_navi_color(s): and Double Defense are removed. Only one extra Quiver, Bullet Bag, Bomb Bag, Deku Stick and Deku Nut Capacity Upgrades - will be available. + will be available. Only three Bombchu + packs are available. 'Very Hard': Heart Containers, Pieces of Heart, Double Magic, Double Defense, and Nayru's Love are removed. No extra Quivers, Bullet Bags, Bomb Bags, or Deku Stick and Deku Nut Capacity Upgrades - will be available. + will be available. Only one Bombchu + pack is available. 'OHKO': Link dies in one hit. ''' From 316b0b277a8488760b19454d66d1c4fad6230b72 Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 15 Oct 2018 05:08:32 -0400 Subject: [PATCH 719/755] Make the "select all" and "enable various tricks" to be separate options It was not clear that the select all option was doing anything else. --- Gui.py | 21 +++++++++++---------- Settings.py | 4 ++-- version.py | 2 +- 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/Gui.py b/Gui.py index c0569e0c0..14be8ef65 100755 --- a/Gui.py +++ b/Gui.py @@ -175,22 +175,26 @@ def show_settings(event=None): color = ((0,0,0),'#000000') guivars[info.name].set('Custom (' + color[1] + ')') - def show_settings_special(event=None): - if guivars['logic_tricks'].get(): + def update_logic_tricks(event=None): + if guivars['all_logic_tricks'].get(): + widgets['logic_tricks'].select() widgets['logic_man_on_roof'].select() widgets['logic_child_deadhand'].select() widgets['logic_dc_jump'].select() widgets['logic_windmill_poh'].select() widgets['logic_crater_bean_poh_with_hovers'].select() widgets['logic_zora_with_cucco'].select() + widgets['logic_zora_with_hovers'].select() widgets['logic_fewer_tunic_requirements'].select() else: + widgets['logic_tricks'].deselect() widgets['logic_man_on_roof'].deselect() widgets['logic_child_deadhand'].deselect() widgets['logic_dc_jump'].deselect() widgets['logic_windmill_poh'].deselect() widgets['logic_crater_bean_poh_with_hovers'].deselect() widgets['logic_zora_with_cucco'].deselect() + widgets['logic_zora_with_hovers'].deselect() widgets['logic_fewer_tunic_requirements'].deselect() settings = guivars_to_settings(guivars) settings_string_var.set( settings.get_settings_string() ) @@ -275,6 +279,11 @@ def open_readme(): widgets = {} + # Add special checkbox to toggle all logic tricks + guivars['all_logic_tricks'] = IntVar(value=0) + widgets['all_logic_tricks'] = Checkbutton(frames['tricks'], text="Enable All Tricks", variable=guivars['all_logic_tricks'], justify=LEFT, wraplength=190, command=update_logic_tricks) + widgets['all_logic_tricks'].pack(expand=False, anchor=W) + for info in setting_infos: if info.gui_params: if info.gui_params['widget'] == 'Checkbutton': @@ -285,14 +294,6 @@ def open_readme(): # create the checkbox widgets[info.name] = Checkbutton(frames[info.gui_params['group']], text=info.gui_params['text'], variable=guivars[info.name], justify=LEFT, wraplength=190, command=show_settings) widgets[info.name].pack(expand=False, anchor=W) - if info.gui_params['widget'] == 'SpecialCheckbutton': - # determine the initial value of the checkbox - default_value = 1 if info.gui_params['default'] == "checked" else 0 - # create a variable to access the box's state - guivars[info.name] = IntVar(value=default_value) - # create the checkbox - widgets[info.name] = Checkbutton(frames[info.gui_params['group']], text=info.gui_params['text'], variable=guivars[info.name], justify=LEFT, wraplength=190, command=show_settings_special) - widgets[info.name].pack(expand=False, anchor=W) elif info.gui_params['widget'] == 'Combobox': # create the variable to store the user's decision guivars[info.name] = StringVar(value=info.gui_params['default']) diff --git a/Settings.py b/Settings.py index a96a333ea..bf7d1d209 100644 --- a/Settings.py +++ b/Settings.py @@ -1402,9 +1402,9 @@ def parse_custom_navi_color(s): 'action': 'store_true' }, { - 'text': 'Require Minor Tricks', + 'text': 'Various Minor Tricks', 'group': 'tricks', - 'widget': 'SpecialCheckbutton', + 'widget': 'Checkbutton', 'default': 'unchecked', 'tooltip':'''\ Enables a large number of tricks. diff --git a/version.py b/version.py index 7db632a23..592ee83c0 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.22.8 f.LUM' +__version__ = '2.22.9 f.LUM' From de7873c735439cd17aa641df2e7ac6fe46b5e3b6 Mon Sep 17 00:00:00 2001 From: Raikaru13 <42095348+Raikaru13@users.noreply.github.com> Date: Mon, 15 Oct 2018 15:40:27 -0400 Subject: [PATCH 720/755] Fix Ruto and H'lo SFX typo --- Patches.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Patches.py b/Patches.py index c0b85a8f1..bf3cfd6cc 100644 --- a/Patches.py +++ b/Patches.py @@ -99,11 +99,11 @@ 'Gold Skulltula': 0x39DA, 'Redead' : 0x38E5, 'Poe' : 0x38EC, - 'Ruto' : 0x4863, + 'Ruto' : 0x6863, 'Howl' : 0x28AE, 'Business Scrub': 0x3882, 'Guay' : 0x38B6, - 'H`lo!' : 0x4844 + 'H`lo!' : 0x6844 } HealthSFX = { From 2db41cac98233396ce96919a2923486e3aa0d10e Mon Sep 17 00:00:00 2001 From: Unknown Date: Tue, 16 Oct 2018 12:29:05 -0600 Subject: [PATCH 721/755] rename "various minor tricks" to "various advanced tricks" --- Settings.py | 8 ++++---- version.py | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Settings.py b/Settings.py index 33f8f2c55..17f187d27 100644 --- a/Settings.py +++ b/Settings.py @@ -1397,18 +1397,18 @@ def parse_custom_navi_color(s): Setting_Info('logic_tricks', bool, 1, True, { 'help': '''\ - Enable various tricks. + Enable various advanced tricks that do not require glitches. ''', 'action': 'store_true' }, { - 'text': 'Various Minor Tricks', + 'text': 'Various Advanced Tricks', 'group': 'tricks', 'widget': 'Checkbutton', 'default': 'unchecked', 'tooltip':'''\ - Enables a large number of tricks. - Still does not require glitches. + Enables a large number of minor + tricks that do not require glitches. ''' }), Setting_Info('logic_man_on_roof', bool, 1, True, diff --git a/version.py b/version.py index 592ee83c0..16473eb77 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.22.9 f.LUM' +__version__ = '2.22.10 f.LUM' From 5f401c3aeb3b2b94d2590c31a976717cbd69a40e Mon Sep 17 00:00:00 2001 From: Unknown Date: Tue, 16 Oct 2018 12:31:28 -0600 Subject: [PATCH 722/755] fix casing of the 'data' folder --- Utils.py | 2 +- version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Utils.py b/Utils.py index ced707c53..12c7390be 100644 --- a/Utils.py +++ b/Utils.py @@ -36,7 +36,7 @@ def data_path(path=''): # Even if it's bundled we use __file__ # if it's not bundled, then we want to use the source.py dir + Data # if it's bundled, then we want to use the extraction dir + Data - data_path.cached_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), "Data") + data_path.cached_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), "data") return os.path.join(data_path.cached_path, path) diff --git a/version.py b/version.py index 16473eb77..d0629a555 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.22.10 f.LUM' +__version__ = '2.22.11 f.LUM' From 0bb66682e3e896e3d40f75d93a76d2969b7320ce Mon Sep 17 00:00:00 2001 From: Unknown Date: Tue, 16 Oct 2018 12:34:33 -0600 Subject: [PATCH 723/755] Update readme.html --- README.html | 28 ++++++++++++++-------------- version.py | 2 +- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/README.html b/README.html index 9fae8af86..ad46eb8ef 100644 --- a/README.html +++ b/README.html @@ -10,11 +10,11 @@

General Description

The items that randomize currently are all items within chests including those in grottos, items given as rewards by NPCs including from minigames and
Deku Scrub Salesmen, the items given by freestanding Pieces of Heart, Heart Containers, and Keys, and the items obtained when getting the Bottle and the
Fire Arrows at Lake Hylia or the Ocarina of Time from the Castle Town moat. All dungeons will always have the same number of Maps, Compasses, Small Keys,
and Boss Keys they had in the original game, but which chests within those dungeons have those things is random. The item pool will contain a Biggoron Sword
that will not interfere with Medigoron's sale of the Giant's Knife (which is always vanilla), and a randomly selected adult trading quest item other than the
Odd Potion will be somewhere in the item pool.

Certain types of items are now "progressive", meaning that no matter what order the player encounters these items they will function as a series of upgrades.
The following item types will be progressive chains:

-Hookshot to Longshot
-Bomb Bag to Big Bomb Bag to Biggest Bomb Bag
-Goron Bracelet to Silver Gauntlets to Gold Gauntlets
-Slingshot to Big Bullet Bag to Biggest Bullet Bag
-Bow to Big Quiver to Biggest Quiver
-Silver Scale to Gold Scale
-Adult Wallet to Giant's Wallet
-Deku Stick Capacity Upgrades
-Deku Nut Capacity Upgrades
-Magic Meter to Double Magic

-

To be more clear about which NPC items are shuffled, it's only the one time permanent item rewards for the most part like NPCs who originally gave Pieces of Heart
or inventory items. The only exception is that even though in vanilla the reward for 40 Gold Skulltulla Tokens was just 10 Bombchus that is still a randomized reward
in randomizer (but the 200 rupees for all 100 Gold Skulltulla Tokens is not randomized so the most tokens that could be required to complete a seed is 50). As a mercy
to the player, the Ocarina Memory Game in the Lost Woods will start on the final round as that minigame was very long originally, the three day wait on the Claim Check
is removed, Bombchu Bowling will have a fixed sequence of prizes that is of maximum convenience to the player, Dampe's Gravedigging Tour will always be won on the first
dig, and the fishing minigame is made much simpler (8 lb fish for child now, 10 lb for adult). Additionally, any NPC who gives a trading quest item either for the child
or for the adult other than Anju's initial gift as an adult does not have a randomized reward.

+

To be more clear about which NPC items are shuffled, it's only the one time permanent item rewards for the most part like NPCs who originally gave Pieces of Heart
or inventory items. The only exception is that even though in vanilla the reward for 40 Gold Skulltula Tokens was just 10 Bombchus that is still a randomized reward
in randomizer (but the 200 rupees for all 100 Gold Skulltula Tokens is not randomized so the most tokens that could be required to complete a seed is 50). As a mercy
to the player, the Ocarina Memory Game in the Lost Woods will start on the final round as that minigame was very long originally, the three day wait on the Claim Check
is removed, Bombchu Bowling will have a fixed sequence of prizes that is of maximum convenience to the player, Dampe's Gravedigging Tour will always be won on the first
dig, and the fishing minigame is made much simpler (8 lb fish for child now, 10 lb for adult). Additionally, any NPC who gives a trading quest item either for the child
or for the adult other than Anju's initial gift as an adult does not have a randomized reward.

A special note is needed for the six Great Fairy Fountains scattered across Hyrule. All six of these fountains now give random item rewards, and the magic and life
upgrades can now be found as normal items scattered around the world. Happy hunting!

The Ocarina songs are shuffled in a pool amongst themselves, and each learn spot will still have the original conditions it has always had. These conditions may not
have all been obvious, but here are some high points. Saria will teach her song after completing the events in the Castle Courtyard. The warp songs can mostly only
be learned by an adult, but the location for Requiem of Spirit is available for even a child if the Desert Colossus can be reached. The location for the Prelude of
Light requires the Forest Medallion, and the location for the Nocturne of Shadow requires the Forest Medallion, Fire Medallion, and Water Medallions. This can be
changed with a setting.

Speaking of Medallions, each boss in the eight main dungeons will drop a random Spiritual Stone or Medallion, and instead of the Light Medallion being granted by the
now removed "becoming an adult" cutscene, the player will start every seed with a random Spiritual Stone or Medallion. The pedestal in which the Spiritual Stones
rest in the Temple of Time has hint text pointing to the locations of the Spiritual Stones and Medallions. A child will be able to read hints for the Spiritual
Stones while an adult will be able to read hints for the Medallions. This information and some other relevant dungeon based info can be seen in the pause menu by
holding the "A" button on the c-item menu.

-

To be very clear on this point, while the rewards for up to 50 Gold Skulltulla Tokens are randomized, the tokens themselves are not.

+

To be very clear on this point, while the rewards for up to 50 Gold Skulltula Tokens are randomized, the tokens themselves are not.

As a service to the player in this very long game, many cutscenes have been greatly shortened or removed and text is as often as possible either omitted or sped up.
We have been as thorough as our exploration of the game and various technical limitations will allow to make the parts of the game where you're watching and reading
as short as possible to make as much of your time with this randomizer as possible actual gameplay. I'm sure someone somewhere will miss the owl's interjections; to
that person, I'm sorry I guess?

A few bugs or other undesirable behaviors in the original game have been fixed. Of note, obtaining the Poacher's Saw will no longer prevent the player from obtaining
the reward in the Deku Theater for showing the Mask of Truth, and becoming an adult will not automatically equip the child with the Kokiri Sword. Sheik will no longer
prevent the player from returning to childhood before obtaining the Forest Medallion. Princess Ruto will never disappear from Jabu Jabu's Belly, and the condition for
the Castle Courtyard being sealed off is now completing the events within as opposed to seeing the Ocarina of Time be thrown into the moat.

One small detail that is important to know is that the locked door in the Fire Temple leading to the section with the Boss Key Chest is removed. This was necessary
due to the original design of the Fire Temple assuming that the player could not possibly have the Hammer before unlocking the doors leading into the depths of the
dungeon. This is obviously not true in randomizer, and of all possible solutions to this problem, this seemed the least disruptive. A full clear of the Fire Temple will
simply result in the player having one extra Small Key. Certain settings configurations will disable this behavior.

@@ -22,7 +22,7 @@

General Description

One last detail is that the menu is now more like the Majora's Mask menu in that the player can move the cursor through empty spaces. This fixes a major problem from
the original game in that certain combinations of items would create menu shapes that would be impossible to fully menu through. Unfortunately, as of this 3.0 release,
this functionality does not apply to the "equipment" screen which can rarely create some tricky situations. Usually these can be solved by purchasing a Deku Shield and
a Hylian Shield.

Quirks to Know

While all the details of gameplay can't be detailed here, I want to inform you of a few non-obvious game sequences that are likely to get you stuck and one little
glitch we can do nothing about.

-

-The condition to open the Door of Time is merely playing the Song of Time; the Spiritual Stones are not required. If you enter the Temple of Time via the Prelude
of Light, playing the Song of Time will create a glitchy cutscene and will not open the door (but you're safe to exit and re-enter and open it properly).
-The condition to spawn the Ocarina of Time and learn that song is the three Spiritual Stones. The condition to learn a song from Sheik in the Temple of Time is
possessing the Forest Medallion. The condition to learn a song from Sheik in Kakariko is possessing Forest, Fire, and Water Medallions.
-The running man in Hyrule Field only spawns if you have all three Spiritual Stones.
-Skull Kid will only buy the Skull Mask if you have played Saria's Song for him.
-The center of Death Mountain Crater as an adult can be reached from the summit as an adult by going around to the left with Hover Boots or by jumping down to the right
and using a combination of the Longshot and Scarecrow's Song. This allows access to Sheik and the Fire Temple without a Bomb Bag.
-A sword must be equipped to play the fishing minigame. A Slingshot is not required for child target shooting, but the adult does need the Bow.
-Other than those minigames, the child can do anything that would seem to require the sword with Deku Sticks. You can buy as many as you want in the Kokiri Forest shop.
-In the randomizer, possessing the Bomb Bag is the requirement to get bomb drops, buy bombs or Bombchus, or play Bombchu Bowling.
-Only the Hookshot, not the Longshot, is needed to do everything on the rooftops of Kakariko.
-Grottos can be opened with either Bombs or the Hammer.
-The boulder maze in Goron City can be solved with the Hammer or partially with Bombs as is obvious, but less obvious is that it can be fully solved with Silver Gauntlets.
-The large colored blocks only encountered by the adult require Goron Bracelet to push.
-In a few places, out of sight Song of Time blocks can be summoned. The lava room in Gerudo Training Grounds, the beginning of Ganon's Castle Shadow Trial, and the last
hallway with a caged Goron in Fire Temple are the main cases.
-Adult Link can fully clear Dodongo's Cavern. He can even skip the first section by virtue of being tall.
-In the Forest Temple, you can reach the room with the Floormaster (vanilla) or Redead (MQ) early by using Hover Boots in the block push room.
-In the Fire Temple, you can reach the Boss Key door from the beginning with Hover Boots.
-In the Water Temple, you can from the start with the water down jump to the middle platform level, very carefully aim the Hookshot to the target above, and pull yourself
to the highest level of the central platform. Then a very well spaced rolling jump can reach the water changing station to raise the water to the highest level. If you
make poor key choices in Water Temple, this may be what you need to do to untangle the situation.
-In the Water Temple, Hover Boots can be used to reach the vanilla Boss Key chest without going through the room that requires Bombs and block pushing. Hover Boots can
also be used in this temple to avoid the Longshot requirement for the middle level chest that requires the Bow.
-In the Shadow Temple, you can avoid the need for the Longshot in the room with the invisible spikes by backflipping onto the chest for extra height.
-In the Shadow Temple, you can Hookshot the ladder to avoid pushing the block to get on the boat.
-In the Shadow Temple, a combination of the scarecrow and the Longshot can be used to reach Bongo Bongo without needing the Bow.
-In the Spirit Temple, the child can obtain the vanilla Map chest with Deku Sticks. No fire magic is needed.
-In the Spirit Temple, you can collect the silver rupees without Hover Boots by jumping directly onto the rolling boulder or with a jump slash.
-In the Spirit Temple, you can use the Longshot to cross from the hand with the Mirror Shield in vanilla to the other hand.
-In Ganon's Castle Spirit Trial, the web can be burned with a precise shot through the torch by a normal arrow. Fire Arrows are not required.
-While we guarantee tunics for Fire Temple and Water Temple, you can possibly force yourself to do without if you seriously let a Like Like eat the tunic and
then do not recover the tunic. It is almost always possible to do without, but it can make things really difficult on you.
-Several Gold Skulltulla Tokens can be reached by clever/precise uses of jump slashes and spin attacks (possibly magic spin attacks).

+

-The condition to open the Door of Time is merely playing the Song of Time; the Spiritual Stones are not required. If you enter the Temple of Time via the Prelude
of Light, playing the Song of Time will create a glitchy cutscene and will not open the door (but you're safe to exit and re-enter and open it properly).
-The condition to spawn the Ocarina of Time and learn that song is the three Spiritual Stones. The condition to learn a song from Sheik in the Temple of Time is
possessing the Forest Medallion. The condition to learn a song from Sheik in Kakariko is possessing Forest, Fire, and Water Medallions.
-The running man in Hyrule Field only spawns if you have all three Spiritual Stones.
-Skull Kid will only buy the Skull Mask if you have played Saria's Song for him.
-The center of Death Mountain Crater as an adult can be reached from the summit as an adult by going around to the left with Hover Boots or by jumping down to the right
and using a combination of the Longshot and Scarecrow's Song. This allows access to Sheik and the Fire Temple without a Bomb Bag.
-A sword must be equipped to play the fishing minigame. A Slingshot is not required for child target shooting, but the adult does need the Bow.
-Other than those minigames, the child can do anything that would seem to require the sword with Deku Sticks. You can buy as many as you want in the Kokiri Forest shop.
-In the randomizer, possessing the Bomb Bag is the requirement to get bomb drops, buy bombs or Bombchus, or play Bombchu Bowling.
-Only the Hookshot, not the Longshot, is needed to do everything on the rooftops of Kakariko.
-Grottos can be opened with either Bombs or the Hammer.
-The boulder maze in Goron City can be solved with the Hammer or partially with Bombs as is obvious, but less obvious is that it can be fully solved with Silver Gauntlets.
-The large colored blocks only encountered by the adult require Goron Bracelet to push.
-In a few places, out of sight Song of Time blocks can be summoned. The lava room in Gerudo Training Grounds, the beginning of Ganon's Castle Shadow Trial, and the last
hallway with a caged Goron in Fire Temple are the main cases.
-Adult Link can fully clear Dodongo's Cavern. He can even skip the first section by virtue of being tall.
-In the Forest Temple, you can reach the room with the Floormaster (vanilla) or Redead (MQ) early by using Hover Boots in the block push room.
-In the Fire Temple, you can reach the Boss Key door from the beginning with Hover Boots.
-In the Water Temple, you can from the start with the water down jump to the middle platform level, very carefully aim the Hookshot to the target above, and pull yourself
to the highest level of the central platform. Then a very well spaced rolling jump can reach the water changing station to raise the water to the highest level. If you
make poor key choices in Water Temple, this may be what you need to do to untangle the situation.
-In the Water Temple, Hover Boots can be used to reach the vanilla Boss Key chest without going through the room that requires Bombs and block pushing. Hover Boots can
also be used in this temple to avoid the Longshot requirement for the middle level chest that requires the Bow.
-In the Shadow Temple, you can avoid the need for the Longshot in the room with the invisible spikes by backflipping onto the chest for extra height.
-In the Shadow Temple, you can Hookshot the ladder to avoid pushing the block to get on the boat.
-In the Shadow Temple, a combination of the scarecrow and the Longshot can be used to reach Bongo Bongo without needing the Bow.
-In the Spirit Temple, the child can obtain the vanilla Map chest with Deku Sticks. No fire magic is needed.
-In the Spirit Temple, you can collect the silver rupees without Hover Boots by jumping directly onto the rolling boulder or with a jump slash.
-In the Spirit Temple, you can use the Longshot to cross from the hand with the Mirror Shield in vanilla to the other hand.
-In Ganon's Castle Spirit Trial, the web can be burned with a precise shot through the torch by a normal arrow. Fire Arrows are not required.
-While we guarantee tunics for Fire Temple and Water Temple, you can possibly force yourself to do without if you seriously let a Like Like eat the tunic and
then do not recover the tunic. It is almost always possible to do without, but it can make things really difficult on you.
-Several Gold Skulltula Tokens can be reached by clever/precise uses of jump slashes and spin attacks (possibly magic spin attacks).

Known issues

Sadly for this 3.0 release a few known issues exist. These will hopefully be addressed in future versions.

-The fishing minigame sometimes refuses to allow you to catch fish when playing specifically on Bizhawk. Save and quit (NOT savestate) and return to fix the issue.
-Draining the Bottom of the Well with Song of Storms sometimes crashes on specific configurations of Project 64. We aren't sure of the exact story, but this bug is
easily avoided by playing on a different emulator and probably also avoidable by changing your settings and maybe graphics plug-in.
-Executing the collection delay glitch on various NPCs may have unpredictable and undesirable consequences. In particular this can be devastating with Biggoron;
it is strongly suggested the player save before turning in the Claim Check.
-Saving and quitting on the very first frame after becomming an adult when you would trigger the Light Arrow cutscene can have undesired consequences. Just don't
do that.
-The equipment screen still cannot be easily navigated with all item configurations which can be especially problematic if the Biggoron Sword is found very early
or if shields cannot be easily purchased thanks to shopsanity. Getting the Master Sword and buying as many shields as you can is a good way to mitigate these issues.

@@ -81,7 +81,7 @@

All Locations Reachable

Bombchus are considered in logic

This option fundamentally changes how the Bombchu items found around the world function. With this option on, Bombchus are a progression item and operate as
a form of progressive item. The first Bombchu pack found will be worth 20 Bombchus and subsequent packs will be worth 10 or 5 Bombchus. Finding Bombchus will
be considered as logical progression, and having found any Bombchus will be the condition to play Bombchu Bowling or buy Bombchu items from shops. This flag
will also add Bombchu (5) buyable items to the shops in Kokiri Forest, Castle Town Bazaar, and Kakariko Bazaar. With this option off, randomly found Bombchu
items are not considered as logical progression, randomly found Bombchus will have specific denominations based on the values from the original game, and
finding a Bomb Bag is what enables playing Bombchu Bowling and buying Bombchus from shops which will not have their inventories edited.

Dungeons have one major item

-

This option places one "major item" and one only in each of the dungeons. For the purpose of the randomizer, the dungeons are defined as the eight dungeons that
contain either Medallions or Spiritual Stones as well as Bottom of the Well, Ice Cavern, Gerudo Training Grounds, and Ganon's Castle. The major items are any
item usable with a c-button that is not simply a form of ammo (Bombchus are major only if "Bombchus are considered in logic" is on), songs, Mirror Shield, swords,
tunics, boots, Double Defense, Magic Meter/Double Magic, Bullet Bags, Quivers, Bomb Bags, Strength Upgrades, Scales, Wallets, and the Stone of Agony. To be
clear, this means that rupees, ammo, Deku Stick and Deku Nut ammo expansions, Pieces of Heart, Heart Containers, Gold Skulltulla Tokens, Maps, Compasses,
Small Keys, Boss Keys, Deku Shields, Hylian Shields, and Ice Traps are not considered major items.

+

This option places one "major item" and one only in each of the dungeons. For the purpose of the randomizer, the dungeons are defined as the eight dungeons that
contain either Medallions or Spiritual Stones as well as Bottom of the Well, Ice Cavern, Gerudo Training Grounds, and Ganon's Castle. The major items are any
item usable with a c-button that is not simply a form of ammo (Bombchus are major only if "Bombchus are considered in logic" is on), songs, Mirror Shield, swords,
tunics, boots, Double Defense, Magic Meter/Double Magic, Bullet Bags, Quivers, Bomb Bags, Strength Upgrades, Scales, Wallets, and the Stone of Agony. To be
clear, this means that rupees, ammo, Deku Stick and Deku Nut ammo expansions, Pieces of Heart, Heart Containers, Gold Skulltula Tokens, Maps, Compasses,
Small Keys, Boss Keys, Deku Shields, Hylian Shields, and Ice Traps are not considered major items.

Dungeon Quest

This option specifies the form dungeons will take. The item pool will be updated to reflect the items originally found in the dungeons used.

Vanilla

@@ -119,12 +119,12 @@

Maps and Compasses give information

Remove Ganon's Door Boss locked

This setting removes the Boss Key lock from Ganon's Tower. This removes the need to locate the Ganon's Tower Boss Key to finish the game.

Tokensanity

-

This setting shuffles the Gold Skulltulla item drops into the general pool of locations. The player can choose only to include Gold Skulltullas
found in dungeons for a more mild version of this setting.

+

This setting shuffles the Gold Skulltula item drops into the general pool of locations. The player can choose only to include Gold skulltulas
found in dungeons for a more mild version of this setting.

Detailed Logic

-

Maximum expected Skulltulla tokens

-

This setting can be used to reduce the number of Gold Skulltulla Tokens that may be required to finish the game.

-

No Nighttime Skulltullas without Sun's Song

-

This setting causes the logic to expect the player to have an ocarina and the Sun's Song to get Gold Skulltulla locations that are only found at
nighttime.

+

Maximum expected Skulltula tokens

+

This setting can be used to reduce the number of Gold Skulltula Tokens that may be required to finish the game.

+

No Nighttime Skulltulas without Sun's Song

+

This setting causes the logic to expect the player to have an ocarina and the Sun's Song to get Gold Skulltula locations that are only found at
nighttime.

No Big Poes

This setting will guarantee that the Big Poe vendor will not have an important item.

No Child Fishing

@@ -147,7 +147,7 @@

Adult Trade sequence

This pair of settings can be used to specify the earliest and latest items that can be allowed to randomly show up in the general item pool.
Only one item will be in the item pool regardless of this setting; this can merely be used to limit the range of possibilities.

Require minor tricks

This setting allows a huge number of minor tricks to be allowed by the logic. Here is a complete list:

-

-A precise jumpslash with either a Deku Stick or the Kokiri Sword can be used to reach a Gold Skulltulla on some vines in standad Deku Tree.
-The Bow can be used to knock down the stairs in Dodongo's Cavern with two well timed shots.
-The vines in Forest Temple leading to where the well drain switch is in the standard form can be barely reached with the standard Hookshot.
-The well in Forest Temple can be crossed with just Hookshot by shooting as low as possible on the vines from the far side and swimming under
the ceiling. This is possible in both versions but can only be required in Forest Temple MQ.
-A Bombchu from the ground level can be used to hit the switch to bypass the block pushing puzzle in Forest Temple MQ.
-A rusted switch under a Song of Time block in the standard Fire Temple can be hit by using Hammer into the block.
-The location with the Boss Key chest in Fire Temple MQ can be reached without the Bow with very particular use of Din's Fire.
-The upper levels of the old boulder maze in Fire Temple MQ can be reached without explosives by using the Hammer through a wall.
-In the standard Spirit Temple, the bridge on child side can be lowered with a carefully timed Bombchu.
-The frozen switch in Spirit Temple MQ can be hit without a fire source by using the Bow and Song of Time very cleverly.
-The chest in the basement of the standard Bottom of the Well can be reached with only a Strength Upgrade by using a jump slash with a lit
Deku Stick to access the bomb flowers in the basement.
-The silver rupees on the left side of Gerudo Training Grounds MQ can be collected with just Hookshot with a somewhat particular jump slash.
-The first room of the Spirit Trail in Ganon's Castle MQ can be cleared without the Bow by using a Hammer jump slash to hit the rusted switch
through the thrones.
-The Gold Skulltulla in adult Kokiri Forest can be reached without the Hookshot by using Hover Boots off one of the roots.
-The child can reach the chest on Death Mountain trail with just the Goron Bracelet by backwalking with the Bomb Flower intended to open
Dodongo's Cavern and throwing the Bomb Flower at the wall very quickly.
-Gerudo Fortress can be cleared without any items other than those needed for access. The logic normally guarantees one of the Bow, Hookshot, or
Hover Boots to help navigate the "kitchen".

+

-A precise jumpslash with either a Deku Stick or the Kokiri Sword can be used to reach a Gold Skulltula on some vines in standad Deku Tree.
-The Bow can be used to knock down the stairs in Dodongo's Cavern with two well timed shots.
-The vines in Forest Temple leading to where the well drain switch is in the standard form can be barely reached with the standard Hookshot.
-The well in Forest Temple can be crossed with just Hookshot by shooting as low as possible on the vines from the far side and swimming under
the ceiling. This is possible in both versions but can only be required in Forest Temple MQ.
-A Bombchu from the ground level can be used to hit the switch to bypass the block pushing puzzle in Forest Temple MQ.
-A rusted switch under a Song of Time block in the standard Fire Temple can be hit by using Hammer into the block.
-The location with the Boss Key chest in Fire Temple MQ can be reached without the Bow with very particular use of Din's Fire.
-The upper levels of the old boulder maze in Fire Temple MQ can be reached without explosives by using the Hammer through a wall.
-In the standard Spirit Temple, the bridge on child side can be lowered with a carefully timed Bombchu.
-The frozen switch in Spirit Temple MQ can be hit without a fire source by using the Bow and Song of Time very cleverly.
-The chest in the basement of the standard Bottom of the Well can be reached with only a Strength Upgrade by using a jump slash with a lit
Deku Stick to access the bomb flowers in the basement.
-The silver rupees on the left side of Gerudo Training Grounds MQ can be collected with just Hookshot with a somewhat particular jump slash.
-The first room of the Spirit Trail in Ganon's Castle MQ can be cleared without the Bow by using a Hammer jump slash to hit the rusted switch
through the thrones.
-The Gold Skulltula in adult Kokiri Forest can be reached without the Hookshot by using Hover Boots off one of the roots.
-The child can reach the chest on Death Mountain trail with just the Goron Bracelet by backwalking with the Bomb Flower intended to open
Dodongo's Cavern and throwing the Bomb Flower at the wall very quickly.
-Gerudo Fortress can be cleared without any items other than those needed for access. The logic normally guarantees one of the Bow, Hookshot, or
Hover Boots to help navigate the "kitchen".

Using this setting will also pre-set all of the lower logic flags to a reasonable configuration to match the trick level. These can then be
edited as the player desires if the given configuration isn't desired.

Man on Roof without Hookshot

This allows the logic to consider a trick in which the player does a sidehop off the tall tower in Kakariko Village to reach the man on the
rooftop with no items.

@@ -194,7 +194,7 @@

Clearer hints

This flag changes the text of Gossip Stone hints to be overwhelmingly explicit. This is helpful for players who do not have English as their first language,
but the hints will be less "fun" and less like the sorts of things that would be said in the original game.

Gossip Stones

This flag changes the behavior of Gossip Stones to give hints to players. The hints will be distributed as such:

-

-If the required number of trials is 1-3, a hint will be added for each trial that must be done. If the required number of trials is 4 or 5, a hint will be added
for each trial that can be skipped.
-Hints will be added for every one of the "always" locations that is allowed to have a random possibly valuable item under the current settings. These hints
will tell the player what item is at each of these locations. These locations are the rewards for 30, 40, and 50 Gold Skulltulla Tokens, the item obtained from
Biggoron by showing the Claim Check, the item obtained from the Big Poe vendor, both the song and the item slots at the Ocarina of Time, and the item obtained
from showing the Mask of Truth at the Deku Theater.
-Some hints will be given for items at a randomly selected number of other locations that are generally somewhat inconvenient to check. The total number of these
hints will be either 11 or 12 minus the number of always hints placed.
-3 or 4 hints will be given naming a specific non-dungeon specific item that can be found in a randomly chosen dungeon.
-1 to 4 hints will be given naming a specific item found in a specific overworld region. Which part of this range is used is determined in part by how many
trial hints are given.
-4 to 6 hints will be given naming what region specific progression items other than Gold Skulltulla Tokens can be found.
-3 or 4 hints will be given naming specific regions that are "on the way of the hero" and thus contain at least one required progression item.
-All remaining hints (33 total unique Gossip Stones exist) will be filled with non-information junk hints.

+

-If the required number of trials is 1-3, a hint will be added for each trial that must be done. If the required number of trials is 4 or 5, a hint will be added
for each trial that can be skipped.
-Hints will be added for every one of the "always" locations that is allowed to have a random possibly valuable item under the current settings. These hints
will tell the player what item is at each of these locations. These locations are the rewards for 30, 40, and 50 Gold Skulltula Tokens, the item obtained from
Biggoron by showing the Claim Check, the item obtained from the Big Poe vendor, both the song and the item slots at the Ocarina of Time, and the item obtained
from showing the Mask of Truth at the Deku Theater.
-Some hints will be given for items at a randomly selected number of other locations that are generally somewhat inconvenient to check. The total number of these
hints will be either 11 or 12 minus the number of always hints placed.
-3 or 4 hints will be given naming a specific non-dungeon specific item that can be found in a randomly chosen dungeon.
-1 to 4 hints will be given naming a specific item found in a specific overworld region. Which part of this range is used is determined in part by how many
trial hints are given.
-4 to 6 hints will be given naming what region specific progression items other than Gold Skulltula Tokens can be found.
-3 or 4 hints will be given naming specific regions that are "on the way of the hero" and thus contain at least one required progression item.
-All remaining hints (33 total unique Gossip Stones exist) will be filled with non-information junk hints.

This setting allows the player to specify which item is required to interact with the Gossip Stones. The Stone of Agony is the default option as it gives a
fairly purposeless vanilla item a use and allows both kid and adult to interact with the Gossip Stones. The default Mask of Truth can be used, but this has
the downside that the Mask of Truth can only be obtained with all Spiritual Stones which tends to make the hints not useful, and using the Mask of Truth
requires being a child which is another big downside. There is also an option for the information to just be free for those wanting an easier mode.

Text Shuffle

This setting allows all the text in the game to be shuffled. This is mostly for comedy and is not intended to be a serious gameplay option.

@@ -336,13 +336,13 @@

Command Line Options

--unlocked_ganondorf

Remove the Boss Key door leading to Ganondorf (default: False)

--tokensanity [{off,dungeons,all}]
-

Include the chosen Gold Skulltulla Token locations in the item shuffle (default: off)

+

Include the chosen Gold Skulltula Token locations in the item shuffle (default: off)

--quest [{vanilla,master,mixed}]

Choose the internal layout of the dungeons (default: vanilla)

--logic_skulltulas [{0,10,20,30,40,50}]
-

Choose the maximum number of Gold Skulltulla Tokens that could be required (default: 50)

+

Choose the maximum number of Gold Skulltula Tokens that could be required (default: 50)

--logic_no_night_tokens_without_suns_song
-

Change logic to expect Sun's Song to defeat nighttime Gold Skulltullas (default: False)

+

Change logic to expect Sun's Song to defeat nighttime Gold Skulltulas (default: False)

--logic_no_big_poes

Prevent the Big Poe vendor from having a required item (default: False)

--logic_no_child_fishing
diff --git a/version.py b/version.py index d0629a555..4386705ef 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.22.11 f.LUM' +__version__ = '2.22.12 f.LUM' From dded47f5d5890572d07894d98746076910c68671 Mon Sep 17 00:00:00 2001 From: Unknown Date: Tue, 16 Oct 2018 14:48:43 -0600 Subject: [PATCH 724/755] fix support for custom colors in CLI --- Settings.py | 3 ++- version.py | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Settings.py b/Settings.py index 17f187d27..e6355fb18 100644 --- a/Settings.py +++ b/Settings.py @@ -54,7 +54,8 @@ def __init__(self, name, type, bitwidth=0, shared=False, args_params={}, gui_par self.gui_params = gui_params # parameters that the gui uses to build the widget components # create the choices parameters from the gui options if applicable - if gui_params and 'options' in gui_params and 'choices' not in args_params: + if gui_params and 'options' in gui_params and 'choices' not in args_params \ + and not ('type' in args_params and callable(args_params['type'])): if isinstance(gui_params['options'], list): self.args_params['choices'] = list(gui_params['options']) elif isinstance(gui_params['options'], dict): diff --git a/version.py b/version.py index 4386705ef..2071fd3bc 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.22.12 f.LUM' +__version__ = '2.22.13 f.LUM' From e4b2fb677823bcccd12a0a7163324db3d05fc180 Mon Sep 17 00:00:00 2001 From: Unknown Date: Tue, 16 Oct 2018 15:26:00 -0600 Subject: [PATCH 725/755] Version "don't show me again", will also stop showing network errors --- Utils.py | 21 +++++++++++---------- version.py | 2 +- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/Utils.py b/Utils.py index 12c7390be..af75e28cb 100644 --- a/Utils.py +++ b/Utils.py @@ -90,16 +90,17 @@ class VersionError(Exception): pass def check_version(checked_version): - try: - with urllib.request.urlopen('http://raw.githubusercontent.com/TestRunnerSRL/OoT-Randomizer/Dev/version.py') as versionurl: - version = versionurl.read() - version = re.search(".__version__ = '(.+)'", str(version)).group(1) - - if compare_version(version, __version__) > 0 and compare_version(checked_version, __version__) < 0: - raise VersionError("You do not seem to be on the latest version!\nYou are on version " + __version__ + ", and the latest is version " + version + ".") - except (URLError, HTTPError) as e: - logger = logging.getLogger('') - logger.warning("Could not fetch latest version: " + str(e)) + if compare_version(checked_version, __version__) < 0: + try: + with urllib.request.urlopen('http://raw.githubusercontent.com/TestRunnerSRL/OoT-Randomizer/Dev/version.py') as versionurl: + version = versionurl.read() + version = re.search(".__version__ = '(.+)'", str(version)).group(1) + + if compare_version(version, __version__) > 0: + raise VersionError("You do not seem to be on the latest version!\nYou are on version " + __version__ + ", and the latest is version " + version + ".") + except (URLError, HTTPError) as e: + logger = logging.getLogger('') + logger.warning("Could not fetch latest version: " + str(e)) # Shim for the sole purpose of maintaining compatibility with older versions of Python 3. def random_choices(population, weights=None, k=1): diff --git a/version.py b/version.py index 2071fd3bc..06154dfd9 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.22.13 f.LUM' +__version__ = '2.22.14 f.LUM' From 8ed3d0cdeb0bf17f4cfc62d42ad73cb57d8cb7e2 Mon Sep 17 00:00:00 2001 From: Unknown Date: Tue, 16 Oct 2018 15:27:14 -0600 Subject: [PATCH 726/755] fix GUI icon to use the 48px version when appropriate --- GuiUtils.py | 2 +- version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/GuiUtils.py b/GuiUtils.py index 6377b075b..5a4fe3b9d 100644 --- a/GuiUtils.py +++ b/GuiUtils.py @@ -8,7 +8,7 @@ def set_icon(window): er16 = tk.PhotoImage(file=data_path('ER16.gif')) er32 = tk.PhotoImage(file=data_path('ER32.gif')) - er48 = tk.PhotoImage(file=data_path('ER32.gif')) + er48 = tk.PhotoImage(file=data_path('ER48.gif')) window.tk.call('wm', 'iconphoto', window._w, er16, er32, er48) # pylint: disable=protected-access diff --git a/version.py b/version.py index 06154dfd9..a62c0002f 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.22.14 f.LUM' +__version__ = '2.22.15 f.LUM' From 310dcd451e1deff0478b2d86d4d1af17e4b6cd91 Mon Sep 17 00:00:00 2001 From: Unknown Date: Tue, 16 Oct 2018 15:27:47 -0600 Subject: [PATCH 727/755] Don't print stacktrace on gui error if bundled --- GuiUtils.py | 5 +++-- version.py | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/GuiUtils.py b/GuiUtils.py index 5a4fe3b9d..5b2782484 100644 --- a/GuiUtils.py +++ b/GuiUtils.py @@ -3,7 +3,7 @@ import tkinter as tk import traceback -from Utils import data_path +from Utils import data_path, is_bundled def set_icon(window): er16 = tk.PhotoImage(file=data_path('ER16.gif')) @@ -30,7 +30,8 @@ def try_run(self, code_to_run, *code_arg): code_to_run(*code_arg) except Exception as e: self.update_status('Error: ' + str(e)) - traceback.print_exc() + if not is_bundled(): + traceback.print_exc() self.queue_event(self.stop) def update_status(self, text): diff --git a/version.py b/version.py index a62c0002f..6d63fd6e4 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.22.15 f.LUM' +__version__ = '2.22.16 f.LUM' From a02575b767904546886fdd7513e73d18bdd11f21 Mon Sep 17 00:00:00 2001 From: AmazingAmpharos Date: Tue, 16 Oct 2018 16:34:39 -0500 Subject: [PATCH 728/755] Readme updates Various little fixes and updates to readme for 3.0. --- README.html | 244 ++++++++++++++++++++++++++-------------------------- README.md | 134 +++++++++++++++++------------ 2 files changed, 201 insertions(+), 177 deletions(-) diff --git a/README.html b/README.html index 9fae8af86..2b844403d 100644 --- a/README.html +++ b/README.html @@ -1,31 +1,31 @@

OoTRandomizer

This is a randomizer for The Legend of Zelda: Ocarina of Time for the Nintendo 64.

Installation

-

It is strongly suggested users get the latest release from here: https://github.com/AmazingAmpharos/OoT-Randomizer/releases .
Simply download the .msi installer and run it if you have a Windows machine.

-

If you do not have Windows or you simply wish to run the script raw, clone this repository and either run '''Gui.py''' for a
graphical interface or '''OoTRandomizer.py''' for the command line version. Both require Python 3.5+.

-

This randomizer requires The Legend of Zelda: Ocarina of Time version 1.0 NTSC-US version. This randomizer includes an in-built decompressor, but if
the user wishes a pre-decompressed ROM may be supplied as input. Please be sure your input ROM filename is either a .n64 or .z64 file. For users
playing via any means other than on real N64 hardware, the use of the "Compress patched ROM" flag is strongly encouraged as uncompressed ROMs are
impossible to inject for the Virtual Console and have random crashing problems on all emulators.

-

For general use, the recommended emulator is RetroArch; it has been shown to work with minimal issues. Bizhawk and Mupen64plus are generally good choices
too. If you want to play on Project 64 for whatever reason, you can but you will need to set the rando to use 8 MB of RAM and will want to play with the
cheat code 8109C58A 0000 to partially fix Project 64's tragically poor handling of OoT's pause menu. Project 64 also has one particular crash that only
happens for some unknown settings configurations; we cannot support this. I cannot emphasize enough that it is a discouraged emulator to use.

+

It is strongly suggested users get the latest release from here: https://github.com/AmazingAmpharos/OoT-Randomizer/releases . Simply download the .msi installer and run it. We support Windows, Mac, and Linux machines.

+

If you have an incompatible OS or you simply wish to run the script raw, clone this repository and either run '''Gui.py''' for a graphical interface or '''OoTRandomizer.py''' for the command line version. Both require Python 3.5+.

+

This randomizer requires The Legend of Zelda: Ocarina of Time version 1.0 NTSC-US version. This randomizer includes an in-built decompressor, but if the user wishes a pre-decompressed ROM may be supplied as input. Please be sure your input ROM filename is either a .n64 or .z64 file. For users playing via any means other than on real N64 hardware, the use of the "Compress patched ROM" flag is strongly encouraged as uncompressed ROMs are impossible to inject for the Virtual Console and have random crashing problems on all emulators.

+

For general use, the recommended emulator is RetroArch; it has been shown to work with minimal issues. Bizhawk and Mupen64plus are generally good choices too. If you want to play on Project 64 for whatever reason, you can but you will need to set the rando to use 8 MB of RAM and will want to play with the cheat code 8109C58A 0000 to partially fix Project 64's tragically poor handling of OoT's pause menu. Project 64 also has one particular crash that only happens for some unknown settings configurations; we cannot support this. I cannot emphasize enough that it is a discouraged emulator to use.

General Description

-

This program takes The Legend of Zelda: Ocarina of Time and randomizes the locations of the items for a more dynamic play experience.
Proper logic is used to ensure every seed is possible to complete without the use of glitches and will be safe from the possibility of softlocks
with any possible usage of keys in dungeons.

-

The items that randomize currently are all items within chests including those in grottos, items given as rewards by NPCs including from minigames and
Deku Scrub Salesmen, the items given by freestanding Pieces of Heart, Heart Containers, and Keys, and the items obtained when getting the Bottle and the
Fire Arrows at Lake Hylia or the Ocarina of Time from the Castle Town moat. All dungeons will always have the same number of Maps, Compasses, Small Keys,
and Boss Keys they had in the original game, but which chests within those dungeons have those things is random. The item pool will contain a Biggoron Sword
that will not interfere with Medigoron's sale of the Giant's Knife (which is always vanilla), and a randomly selected adult trading quest item other than the
Odd Potion will be somewhere in the item pool.

-

Certain types of items are now "progressive", meaning that no matter what order the player encounters these items they will function as a series of upgrades.
The following item types will be progressive chains:

-

-Hookshot to Longshot
-Bomb Bag to Big Bomb Bag to Biggest Bomb Bag
-Goron Bracelet to Silver Gauntlets to Gold Gauntlets
-Slingshot to Big Bullet Bag to Biggest Bullet Bag
-Bow to Big Quiver to Biggest Quiver
-Silver Scale to Gold Scale
-Adult Wallet to Giant's Wallet
-Deku Stick Capacity Upgrades
-Deku Nut Capacity Upgrades
-Magic Meter to Double Magic

-

To be more clear about which NPC items are shuffled, it's only the one time permanent item rewards for the most part like NPCs who originally gave Pieces of Heart
or inventory items. The only exception is that even though in vanilla the reward for 40 Gold Skulltulla Tokens was just 10 Bombchus that is still a randomized reward
in randomizer (but the 200 rupees for all 100 Gold Skulltulla Tokens is not randomized so the most tokens that could be required to complete a seed is 50). As a mercy
to the player, the Ocarina Memory Game in the Lost Woods will start on the final round as that minigame was very long originally, the three day wait on the Claim Check
is removed, Bombchu Bowling will have a fixed sequence of prizes that is of maximum convenience to the player, Dampe's Gravedigging Tour will always be won on the first
dig, and the fishing minigame is made much simpler (8 lb fish for child now, 10 lb for adult). Additionally, any NPC who gives a trading quest item either for the child
or for the adult other than Anju's initial gift as an adult does not have a randomized reward.

-

A special note is needed for the six Great Fairy Fountains scattered across Hyrule. All six of these fountains now give random item rewards, and the magic and life
upgrades can now be found as normal items scattered around the world. Happy hunting!

-

The Ocarina songs are shuffled in a pool amongst themselves, and each learn spot will still have the original conditions it has always had. These conditions may not
have all been obvious, but here are some high points. Saria will teach her song after completing the events in the Castle Courtyard. The warp songs can mostly only
be learned by an adult, but the location for Requiem of Spirit is available for even a child if the Desert Colossus can be reached. The location for the Prelude of
Light requires the Forest Medallion, and the location for the Nocturne of Shadow requires the Forest Medallion, Fire Medallion, and Water Medallions. This can be
changed with a setting.

-

Speaking of Medallions, each boss in the eight main dungeons will drop a random Spiritual Stone or Medallion, and instead of the Light Medallion being granted by the
now removed "becoming an adult" cutscene, the player will start every seed with a random Spiritual Stone or Medallion. The pedestal in which the Spiritual Stones
rest in the Temple of Time has hint text pointing to the locations of the Spiritual Stones and Medallions. A child will be able to read hints for the Spiritual
Stones while an adult will be able to read hints for the Medallions. This information and some other relevant dungeon based info can be seen in the pause menu by
holding the "A" button on the c-item menu.

-

To be very clear on this point, while the rewards for up to 50 Gold Skulltulla Tokens are randomized, the tokens themselves are not.

-

As a service to the player in this very long game, many cutscenes have been greatly shortened or removed and text is as often as possible either omitted or sped up.
We have been as thorough as our exploration of the game and various technical limitations will allow to make the parts of the game where you're watching and reading
as short as possible to make as much of your time with this randomizer as possible actual gameplay. I'm sure someone somewhere will miss the owl's interjections; to
that person, I'm sorry I guess?

-

A few bugs or other undesirable behaviors in the original game have been fixed. Of note, obtaining the Poacher's Saw will no longer prevent the player from obtaining
the reward in the Deku Theater for showing the Mask of Truth, and becoming an adult will not automatically equip the child with the Kokiri Sword. Sheik will no longer
prevent the player from returning to childhood before obtaining the Forest Medallion. Princess Ruto will never disappear from Jabu Jabu's Belly, and the condition for
the Castle Courtyard being sealed off is now completing the events within as opposed to seeing the Ocarina of Time be thrown into the moat.

-

One small detail that is important to know is that the locked door in the Fire Temple leading to the section with the Boss Key Chest is removed. This was necessary
due to the original design of the Fire Temple assuming that the player could not possibly have the Hammer before unlocking the doors leading into the depths of the
dungeon. This is obviously not true in randomizer, and of all possible solutions to this problem, this seemed the least disruptive. A full clear of the Fire Temple will
simply result in the player having one extra Small Key. Certain settings configurations will disable this behavior.

-

To be clear about the logic rules of what can be where, the randomizer will ensure a glitchless path through the seed will exist, but the randomizer will not prevent
the use of glitches for those players who enjoy that sort of thing though we offer no guarantees that all glitches will have identical behavior to the original game.
Glitchless can still mean that clever or unintuitive strategies may be required involving the use of things like Hover Boots, the Hookshot, or Scarecrow's Song that
may not have been important options in the original game. The Lens of Truth is guaranteed available and useable before completion of the Treasure Chest Game is required
or before walking through any invisible objects or opening any invisible chests is required with the exception of the one invisible wall that is required to enter
the Bottom of the Well as the original game required passing that invisible wall to reach the Lens of Truth.

-

One last detail is that the menu is now more like the Majora's Mask menu in that the player can move the cursor through empty spaces. This fixes a major problem from
the original game in that certain combinations of items would create menu shapes that would be impossible to fully menu through. Unfortunately, as of this 3.0 release,
this functionality does not apply to the "equipment" screen which can rarely create some tricky situations. Usually these can be solved by purchasing a Deku Shield and
a Hylian Shield.

+

This program takes The Legend of Zelda: Ocarina of Time and randomizes the locations of the items for a more dynamic play experience. Proper logic is used to ensure every seed is possible to complete without the use of glitches and will be safe from the possibility of softlocks with any possible usage of keys in dungeons.

+

The items that randomize currently are all items within chests including those in grottos, items given as rewards by NPCs including from minigames and Deku Scrub Salesmen, the items given by freestanding Pieces of Heart, Heart Containers, and Keys, and the items obtained when getting the Bottle and the Fire Arrows at Lake Hylia or the Ocarina of Time from the Castle Town moat. All dungeons will always have the same number of Maps, Compasses, Small Keys, and Boss Keys they had in the original game, but which chests within those dungeons have those things is random. The item pool will contain a Biggoron Sword that will not interfere with Medigoron's sale of the Giant's Knife (which is always vanilla), and a randomly selected adult trading quest item other than the Odd Potion will be somewhere in the item pool.

+

Certain types of items are now "progressive", meaning that no matter what order the player encounters these items they will function as a series of upgrades. The following item types will be progressive chains:

+

-Hookshot to Longshot -Bomb Bag to Big Bomb Bag to Biggest Bomb Bag -Goron Bracelet to Silver Gauntlets to Gold Gauntlets -Slingshot to Big Bullet Bag to Biggest Bullet Bag -Bow to Big Quiver to Biggest Quiver -Silver Scale to Gold Scale -Adult Wallet to Giant's Wallet -Deku Stick Capacity Upgrades -Deku Nut Capacity Upgrades -Magic Meter to Double Magic
-Fairy Ocarina to Ocarina of Time

+

To be more clear about which NPC items are shuffled, it's only the one time permanent item rewards for the most part like NPCs who originally gave Pieces of Heart or inventory items. The only exception is that even though in vanilla the reward for 40 Gold Skulltula Tokens was just 10 Bombchus that is still a randomized reward in randomizer (but the 200 rupees for all 100 Gold Skulltula Tokens is not randomized so the most tokens that could be required to complete a seed is 50). As a mercy to the player, the Ocarina Memory Game in the Lost Woods will start on the final round as that minigame was very long originally, the three day wait on the Claim Check is removed, Bombchu Bowling will have a fixed sequence of prizes that is of maximum convenience to the player, Dampe's Gravedigging Tour will always be won on the first dig, and the fishing minigame is made much simpler (8 lb fish for child now, 10 lb for adult). Additionally, any NPC who gives a trading quest item either for the child or for the adult other than Anju's initial gift as an adult does not have a randomized reward.

+

A special note is needed for the six Great Fairy Fountains scattered across Hyrule. All six of these fountains now give random item rewards, and the magic and life upgrades can now be found as normal items scattered around the world. Happy hunting!

+

The Ocarina songs are shuffled in a pool amongst themselves, and each learn spot will still have the original conditions it has always had. These conditions may not have all been obvious, but here are some high points. Saria will teach her song after completing the events in the Castle Courtyard. The warp songs can mostly only be learned by an adult, but the location for Requiem of Spirit is available for even a child if the Desert Colossus can be reached. The location for the Prelude of Light requires the Forest Medallion, and the location for the Nocturne of Shadow requires the Forest Medallion, Fire Medallion, and Water Medallions. A setting exists to shuffle all songs into the general item pool instead of limiting them to song specific slots.

+

Speaking of Medallions, each boss in the eight main dungeons will drop a random Spiritual Stone or Medallion, and instead of the Light Medallion being granted by the now removed "becoming an adult" cutscene, the player will start every seed with a random Spiritual Stone or Medallion. The pedestal in which the Spiritual Stones rest in the Temple of Time has hint text pointing to the locations of the Spiritual Stones and Medallions. A child will be able to read hints for the Spiritual Stones while an adult will be able to read hints for the Medallions. This information and some other relevant dungeon based info can be seen in the pause menu by holding the "A" button on the c-item menu.

+

To be very clear on this point, while the rewards for up to 50 Gold Skulltula Tokens are randomized, the tokens themselves are not.

+

As a service to the player in this very long game, many cutscenes have been greatly shortened or removed and text is as often as possible either omitted or sped up. We have been as thorough as our exploration of the game and various technical limitations will allow to make the parts of the game where you're watching and reading as short as possible to make as much of your time with this randomizer as possible actual gameplay. I'm sure someone somewhere will miss the owl's interjections; to that person, I'm sorry I guess?

+

A few bugs or other undesirable behaviors in the original game have been fixed. Of note, obtaining the Poacher's Saw will no longer prevent the player from obtaining the reward in the Deku Theater for showing the Mask of Truth, and becoming an adult will not automatically equip the child with the Kokiri Sword. Sheik will no longer prevent the player from returning to childhood before obtaining the Forest Medallion. Princess Ruto will never disappear from Jabu Jabu's Belly, and the condition for the Castle Courtyard being sealed off is now completing the events within as opposed to seeing the Ocarina of Time be thrown into the moat.

+

One small detail that is important to know is that the locked door in the Fire Temple leading to the section with the Boss Key Chest is removed. This was necessary due to the original design of the Fire Temple assuming that the player could not possibly have the Hammer before unlocking the doors leading into the depths of the dungeon. This is obviously not true in randomizer, and of all possible solutions to this problem, this seemed the least disruptive. A full clear of the Fire Temple will simply result in the player having one extra Small Key. Certain settings configurations will disable this behavior.

+

To be clear about the logic rules of what can be where, the randomizer will ensure a glitchless path through the seed will exist, but the randomizer will not prevent the use of glitches for those players who enjoy that sort of thing though we offer no guarantees that all glitches will have identical behavior to the original game. Glitchless can still mean that clever or unintuitive strategies may be required involving the use of things like Hover Boots, the Hookshot, or Scarecrow's Song that may not have been important options in the original game. The Lens of Truth is guaranteed available and useable before completion of the Treasure Chest Game is required or before walking through any invisible objects or opening any invisible chests is required with the exception of the one invisible wall that is required to enter the Bottom of the Well as the original game required passing that invisible wall to reach the Lens of Truth.

+

One last detail is that the menu is now more like the Majora's Mask menu in that the player can move the cursor through empty spaces. This fixes a major problem from the original game in that certain combinations of items would create menu shapes that would be impossible to fully menu through. Unfortunately, as of this 3.0 release, this functionality does not apply to the "equipment" screen which can rarely create some tricky situations. Usually these can be solved by purchasing a Deku Shield and a Hylian Shield.

Quirks to Know

-

While all the details of gameplay can't be detailed here, I want to inform you of a few non-obvious game sequences that are likely to get you stuck and one little
glitch we can do nothing about.

-

-The condition to open the Door of Time is merely playing the Song of Time; the Spiritual Stones are not required. If you enter the Temple of Time via the Prelude
of Light, playing the Song of Time will create a glitchy cutscene and will not open the door (but you're safe to exit and re-enter and open it properly).
-The condition to spawn the Ocarina of Time and learn that song is the three Spiritual Stones. The condition to learn a song from Sheik in the Temple of Time is
possessing the Forest Medallion. The condition to learn a song from Sheik in Kakariko is possessing Forest, Fire, and Water Medallions.
-The running man in Hyrule Field only spawns if you have all three Spiritual Stones.
-Skull Kid will only buy the Skull Mask if you have played Saria's Song for him.
-The center of Death Mountain Crater as an adult can be reached from the summit as an adult by going around to the left with Hover Boots or by jumping down to the right
and using a combination of the Longshot and Scarecrow's Song. This allows access to Sheik and the Fire Temple without a Bomb Bag.
-A sword must be equipped to play the fishing minigame. A Slingshot is not required for child target shooting, but the adult does need the Bow.
-Other than those minigames, the child can do anything that would seem to require the sword with Deku Sticks. You can buy as many as you want in the Kokiri Forest shop.
-In the randomizer, possessing the Bomb Bag is the requirement to get bomb drops, buy bombs or Bombchus, or play Bombchu Bowling.
-Only the Hookshot, not the Longshot, is needed to do everything on the rooftops of Kakariko.
-Grottos can be opened with either Bombs or the Hammer.
-The boulder maze in Goron City can be solved with the Hammer or partially with Bombs as is obvious, but less obvious is that it can be fully solved with Silver Gauntlets.
-The large colored blocks only encountered by the adult require Goron Bracelet to push.
-In a few places, out of sight Song of Time blocks can be summoned. The lava room in Gerudo Training Grounds, the beginning of Ganon's Castle Shadow Trial, and the last
hallway with a caged Goron in Fire Temple are the main cases.
-Adult Link can fully clear Dodongo's Cavern. He can even skip the first section by virtue of being tall.
-In the Forest Temple, you can reach the room with the Floormaster (vanilla) or Redead (MQ) early by using Hover Boots in the block push room.
-In the Fire Temple, you can reach the Boss Key door from the beginning with Hover Boots.
-In the Water Temple, you can from the start with the water down jump to the middle platform level, very carefully aim the Hookshot to the target above, and pull yourself
to the highest level of the central platform. Then a very well spaced rolling jump can reach the water changing station to raise the water to the highest level. If you
make poor key choices in Water Temple, this may be what you need to do to untangle the situation.
-In the Water Temple, Hover Boots can be used to reach the vanilla Boss Key chest without going through the room that requires Bombs and block pushing. Hover Boots can
also be used in this temple to avoid the Longshot requirement for the middle level chest that requires the Bow.
-In the Shadow Temple, you can avoid the need for the Longshot in the room with the invisible spikes by backflipping onto the chest for extra height.
-In the Shadow Temple, you can Hookshot the ladder to avoid pushing the block to get on the boat.
-In the Shadow Temple, a combination of the scarecrow and the Longshot can be used to reach Bongo Bongo without needing the Bow.
-In the Spirit Temple, the child can obtain the vanilla Map chest with Deku Sticks. No fire magic is needed.
-In the Spirit Temple, you can collect the silver rupees without Hover Boots by jumping directly onto the rolling boulder or with a jump slash.
-In the Spirit Temple, you can use the Longshot to cross from the hand with the Mirror Shield in vanilla to the other hand.
-In Ganon's Castle Spirit Trial, the web can be burned with a precise shot through the torch by a normal arrow. Fire Arrows are not required.
-While we guarantee tunics for Fire Temple and Water Temple, you can possibly force yourself to do without if you seriously let a Like Like eat the tunic and
then do not recover the tunic. It is almost always possible to do without, but it can make things really difficult on you.
-Several Gold Skulltulla Tokens can be reached by clever/precise uses of jump slashes and spin attacks (possibly magic spin attacks).

+

While all the details of gameplay can't be detailed here, I want to inform you of a few non-obvious game sequences that are likely to get you stuck and one little glitch we can do nothing about.

+

-The condition to open the Door of Time is merely playing the Song of Time; the Spiritual Stones are not required. If you enter the Temple of Time via the Prelude of Light, playing the Song of Time will create a glitchy cutscene and will not open the door (but you're safe to exit and re-enter and open it properly).
-The condition to spawn the Ocarina of Time and learn that song is the three Spiritual Stones. The condition to learn a song from Sheik in the Temple of Time is possessing the Forest Medallion. The condition to learn a song from Sheik in Kakariko is possessing Forest, Fire, and Water Medallions.
-The running man in Hyrule Field only spawns if you have all three Spiritual Stones.
-Skull Kid will only buy the Skull Mask if you have played Saria's Song for him.
-The center of Death Mountain Crater as an adult can be reached from the summit as an adult by going around to the left with Hover Boots or by jumping down to the right and using a combination of the Longshot and Scarecrow's Song. This allows access to Sheik and the Fire Temple without a Bomb Bag.
-A sword must be equipped to play the fishing minigame. A Slingshot is not required for child target shooting, but the adult does need the Bow to receive the true prize.
-Other than the fishing minigame, the child can do anything that would seem to require the sword with Deku Sticks. You can buy as many as you want in the Kokiri Forest shop.
-In the randomizer, possessing the Bomb Bag is the requirement to get bomb drops, buy bombs or Bombchus, or play Bombchu Bowling. If the setting "Bombchus Are Consider in Logic" is used, finding any pack of Bombchus allows purchasing Bombchus and playing Bombchu Bowling while possessing a Bomb Bag allows the purchase of bombs.
-Only the Hookshot, not the Longshot, is needed to do everything on the rooftops of Kakariko.
-Grottos can be opened with either Bombs or the Hammer.
-The boulder maze in Goron City can be solved with the Hammer or partially with Bombs as is obvious, but less obvious is that it can be fully solved with Silver Gauntlets.
-The large colored blocks only encountered by the adult require Goron Bracelet to push.
-In a few places, out of sight Song of Time blocks can be summoned. The lava room in Gerudo Training Grounds, the beginning of Ganon's Castle Shadow Trial, and the last hallway with a caged Goron in Fire Temple are the main cases. -Adult Link can fully clear Dodongo's Cavern. He can even skip the first section by virtue of being tall.
-In the Forest Temple, you can reach the room with the Floormaster (vanilla) or Redead (MQ) early by using Hover Boots in the block push room.
-In the Fire Temple, you can reach the Boss Key door from the beginning with Hover Boots.
-In the Water Temple, you can from the start with the water down jump to the middle platform level, very carefully aim the Hookshot to the target above, and pull yourself to the highest level of the central platform. Then a very well spaced rolling jump can reach the water changing station to raise the water to the highest level. If you make poor key choices in Water Temple, this may be what you need to do to untangle the situation.
-In the Water Temple, Hover Boots can be used to reach the vanilla Boss Key chest without going through the room that requires Bombs and block pushing. Hover Boots can also be used in this temple to avoid the Longshot requirement for the middle level chest that requires the Bow.
-In the Water Temple, Farore's Wind can be placed in the central pillar and then the water can be raised to the highest level in order to reach the Gold Skulltula without the Longshot.
-In the Shadow Temple, you can avoid the need for the Longshot in the room with the invisible spikes by backflipping onto the chest for extra height.
-In the Shadow Temple, you can Hookshot the ladder to avoid pushing the block to get on the boat.
-In the Shadow Temple, a combination of the scarecrow and the Longshot can be used to reach Bongo Bongo without needing the Bow.
-In the Spirit Temple, the child can obtain the vanilla Map chest with Deku Sticks. No fire magic is needed.
-In the Spirit Temple, you can collect the silver rupees without Hover Boots by jumping directly onto the rolling boulder or with a jump slash.
-In the Spirit Temple, you can use the Longshot to cross from the hand with the Mirror Shield in vanilla to the other hand.
-In Ganon's Castle Spirit Trial, the web can be burned with a precise shot through the torch by a normal arrow. Fire Arrows are not required.
-Like Likes now only eat shields and not tunics.
-Several Gold Skulltula Tokens can be reached by clever/precise uses of jump slashes and spin attacks (possibly magic spin attacks).
-This is not a randomizer exclusive mechanic, but getting the ability to summon Pierre the Scarecrow requires playing an eight note song for Bonooru the Scarecrow as a child first and then the exact same song for him again as an adult.

Known issues

Sadly for this 3.0 release a few known issues exist. These will hopefully be addressed in future versions.

-

-The fishing minigame sometimes refuses to allow you to catch fish when playing specifically on Bizhawk. Save and quit (NOT savestate) and return to fix the issue.
-Draining the Bottom of the Well with Song of Storms sometimes crashes on specific configurations of Project 64. We aren't sure of the exact story, but this bug is
easily avoided by playing on a different emulator and probably also avoidable by changing your settings and maybe graphics plug-in.
-Executing the collection delay glitch on various NPCs may have unpredictable and undesirable consequences. In particular this can be devastating with Biggoron;
it is strongly suggested the player save before turning in the Claim Check.
-Saving and quitting on the very first frame after becomming an adult when you would trigger the Light Arrow cutscene can have undesired consequences. Just don't
do that.
-The equipment screen still cannot be easily navigated with all item configurations which can be especially problematic if the Biggoron Sword is found very early
or if shields cannot be easily purchased thanks to shopsanity. Getting the Master Sword and buying as many shields as you can is a good way to mitigate these issues.

+

-The fishing minigame sometimes refuses to allow you to catch fish when playing specifically on Bizhawk. Save and quit (NOT savestate) and return to fix the issue.
-Draining the Bottom of the Well with Song of Storms sometimes crashes on specific configurations of Project 64. We aren't sure of the exact story, but this bug is easily avoided by playing on a different emulator and probably also avoidable by changing your settings and maybe graphics plug-in.
-Executing the collection delay glitch on various NPCs may have unpredictable and undesirable consequences. In particular this can be devastating with Biggoron; it is strongly suggested the player save before turning in the Claim Check.
-Saving and quitting on the very first frame after becomming an adult when you would trigger the Light Arrow cutscene can have undesired consequences. Just don't do that.
-The equipment screen still cannot be easily navigated with all item configurations which can be especially problematic if the Biggoron Sword is found very early or if shields cannot be easily purchased thanks to shopsanity. Getting the Master Sword and buying as many shields as you can is a good way to mitigate these issues.
-This randomizer is based on the 1.0 version of Ocarina of Time so some of its specific bugs remain. Some of these like "empty bomb" can be disadvantagous to the player.

Settings

The OoT Randomizer has many different settings users can choose to customize their play experience. Here's a fully detailed list!

ROM Options

@@ -34,36 +34,36 @@

Base Rom

Output Directory

Specify where the output ROM will be written on your computer.

Create Spoiler Log

-

Decide whether to output a text file detailing where every item can be found and the sequence of play that will lead to seed completion. Selecting this option will
create a different item configuration than using otherwise identical settings without printing a log; this is intended to prevent cheating in race environments.

+

Decide whether to output a text file detailing where every item can be found and the sequence of play that will lead to seed completion. Selecting this option will create a different item configuration than using otherwise identical settings without printing a log; this is intended to prevent cheating in race environments.

Compress Rom

-

Decide the format of the output ROM. Compressed is generally recommended for most users; this is necessary for injection into a .wad for use on the Virtual Console,
and all known N64 emulators have significant crashing problems with uncompressed ROMs. Real N64 hardware doesn't care so generation time can be improved by using
the uncompressed option if you are playing on a real N64 with a flash cart. You can also choose not to output a ROM at all; this is useful if you just want to look
at spoiler logs.

+

Decide the format of the output ROM. Compressed is generally recommended for most users; this is necessary for injection into a .wad for use on the Virtual Console, and all known N64 emulators have significant crashing problems with uncompressed ROMs. Real N64 hardware doesn't care so generation time can be improved by using the uncompressed option if you are playing on a real N64 with a flash cart. You can also choose not to output a ROM at all; this is useful if you just want to look at spoiler logs.

Default Targeting Option

This option specifies whether Z-targeting will default to "Switch" or "Hold" style. Either way, this can still be changed in-game as per usual.

Multi-World Generation

-

This option allows for multiple worlds to be generated to be used in co-op play. Each player will get a different ROM designed to work in conjunction with another
to allow two players to work together to complete the game. Synchronization can be achieved on Bizhawk via the following script:

-

https://github.com/TestRunnerSRL/bizhawk-co-op

+

This option allows for multiple worlds to be generated to be used in co-op play. Each player will get a different ROM designed to work in conjunction with another to allow two players to work together to complete the game. Synchronization can be achieved on Bizhawk via the following script:

+

https://github.com/TestRunnerSRL/bizhawk-co-op

Player Count

Use this to specify how many players will be participating in this co-op playthrough.

Player ID

Use this to specify which player number you are in particular. Each participant in the co-op should choose a different number starting with 1.

Setting String

-

This is an 18 character string that specifies the totality of other gameplay relevant (non-cosmetic) settings used throughout the randomizer. This string can be shared
between players and then the "Import Settings String" button can be pressed to automatically change all settings to match another player.

+

This is an 18 character string that specifies the totality of other gameplay relevant (non-cosmetic) settings used throughout the randomizer. This string can be shared between players and then the "Import Settings String" button can be pressed to automatically change all settings to match another player.

Seed

-

This is a string representing the particular configuration of items that will occur in your seed; the purpose is to combine a seed string with an identical settings
string such that the randomizer will be able to generate the same game for multiple players. If this field is left blank, a random seed will be chosen.

+

This is a string representing the particular configuration of items that will occur in your seed; the purpose is to combine a seed string with an identical settings string such that the randomizer will be able to generate the same game for multiple players. If this field is left blank, a random seed will be chosen.

Main Rules

Open Forest

-

Mido does not need to see a sword and shield to reach the Deku Tree and the Kokiri boy blocking the exit to the forest is gone. If this flag is not set, it is
guaranteed that the Deku Tree can be completed without leaving the forest. This means that within the forest or the Deku Tree itself it will be possible to find
the Kokiri Sword, Deku Shield for sale, and the Slingshot.

+

Mido does not need to see a sword and shield to reach the Deku Tree and the Kokiri boy blocking the exit to the forest is gone. If this flag is not set, it is guaranteed that the Deku Tree can be completed without leaving the forest. This means that within the forest or the Deku Tree itself it will be possible to find the Kokiri Sword, Deku Shield for sale, and the Slingshot.

Open Kakariko Gate

-

The gate leading up Death Mountain from Kakariko Village is open from the beginning of the game. Normally this requires Zelda's Letter to open. This allows more
diverse routing early in the game and prevents very long walks in seeds with the Weird Egg shuffled. Two things are important to note. Showing Zelda's Letter to
the guard is still required to begin the Happy Mask sidequest and to receive a discount on purchasing Hylian Shields. The gate is simply gone for an adult no
matter what.

+

The gate leading up Death Mountain from Kakariko Village is open from the beginning of the game. Normally this requires Zelda's Letter to open. This allows more diverse routing early in the game and prevents very long walks in seeds with the Weird Egg shuffled. Two things are important to note. Showing Zelda's Letter to the guard is still required to begin the Happy Mask sidequest and to receive a discount on purchasing Hylian Shields. The gate is simply gone for an adult no matter what.

Open Door of Time

-

The Door of Time is open from the beginning of the game. The Song of Time is still potentially useful to move Song of Time blocks, play songs for the frogs on Zora
River, or for other such uses. If this flag is not used, the Door of Time must be opened to become an adult as in the original game, but all that is needed to open
the Door of Time is the Song of Time and any ocarina. The Ocarina of Time in particular and the Spiritual Stones have nothing to do with this.

+

The Door of Time is open from the beginning of the game. The Song of Time is still potentially useful to move Song of Time blocks, play songs for the frogs on Zora River, or for other such uses. If this flag is not used, the Door of Time must be opened to become an adult as in the original game, but all that is needed to open the Door of Time is the Song of Time and any ocarina. The Ocarina of Time in particular and the Spiritual Stones have nothing to do with this.

Gerudo Fortress

Default Behavior

-

Gerudo Fortress will work the same way it did in the original game. All four carpenters must be rescued in order for the Gerudo woman who gives the Gerudo Card to
appear and for the Gerudo to stop being hostile. Rescuing a carpenter requires having a Gerudo Fortress Small Key and defeating the corresponding guard.

+

Gerudo Fortress will work the same way it did in the original game. All four carpenters must be rescued in order for the Gerudo woman who gives the Gerudo Card to appear and for the Gerudo to stop being hostile. Rescuing a carpenter requires having a Gerudo Fortress Small Key and defeating the corresponding guard.

Rescue One Carpenter

Only the bottom left carpenter must be rescued to complete Gerudo Fortress. Only one Gerudo Fortress Small Key will exist because of this.

Start with Gerudo Card

-

The player will start with the Gerudo Card from the beginning of the game. The carpenters will be pre-rescued, and the bridge to Gerudo Fortress as an adult will
be repaired from the beginning. The Gerudo Card is the requirement in the randomizer to enter Gerudo Training Grounds so it will be an accessible area from the
moment adulthood is available.

+

The player will start with the Gerudo Card from the beginning of the game. The carpenters will be pre-rescued, and the bridge to Gerudo Fortress as an adult will be repaired from the beginning. The Gerudo Card is the requirement in the randomizer to enter Gerudo Training Grounds so it will be an accessible area from the moment adulthood is available.

Rainbow Bridge Requirement

This determines the condition under which the rainbow bridge to Ganon's Castle will spawn.

All Dungeons

@@ -71,17 +71,17 @@

All Dungeons

All Medallions

All six of the medallions are required to open Ganon's Castle.

Vanilla

-

The rainbow bridge spawns under the same conditions it did in the original game, possession of the Light Arrows and having viewed the Zelda cutscene. This
cutscene in the Temple of Time is triggered by possessing the Shadow and Spirit Medallions.

+

The rainbow bridge spawns under the same conditions it did in the original game, possession of the Light Arrows and having viewed the Zelda cutscene. This cutscene in the Temple of Time is triggered by possessing the Shadow and Spirit Medallions.

Open

The rainbow bridge is always present.

Random Number of Ganon's Trials

-

A random number of trials within Ganon's Castle from 0 to 6 will be chosen, and individual trials will be randomly disabled as necessary to match this number.
Alternatively, a specific number of trials can be specified with the slider below. If a number of trials other than 0 or 6 is chosen and hints are enabled,
hints will be added to the hint pool informing the player which trials are present (if 1 to 3 trials) or which are missing (if 4 or 5 trials).

+

A random number of trials within Ganon's Castle from 0 to 6 will be chosen, and individual trials will be randomly disabled as necessary to match this number. Alternatively, a specific number of trials can be specified with the slider below. If a number of trials other than 0 or 6 is chosen and hints are enabled, hints will be added to the hint pool informing the player which trials are present (if 1 to 3 trials) or which are missing (if 4 or 5 trials).

All Locations Reachable

-

This option will set the logic to try to ensure Link can reach every item location in the game with the exception of "key for key" item locations (a single
item spot behind a locked door containing the key to open the door). If this option is not used, the logic will allow some items to be in impossible locations
so long as the set of reachable items is sufficient to complete the game.

-

Bombchus are considered in logic

-

This option fundamentally changes how the Bombchu items found around the world function. With this option on, Bombchus are a progression item and operate as
a form of progressive item. The first Bombchu pack found will be worth 20 Bombchus and subsequent packs will be worth 10 or 5 Bombchus. Finding Bombchus will
be considered as logical progression, and having found any Bombchus will be the condition to play Bombchu Bowling or buy Bombchu items from shops. This flag
will also add Bombchu (5) buyable items to the shops in Kokiri Forest, Castle Town Bazaar, and Kakariko Bazaar. With this option off, randomly found Bombchu
items are not considered as logical progression, randomly found Bombchus will have specific denominations based on the values from the original game, and
finding a Bomb Bag is what enables playing Bombchu Bowling and buying Bombchus from shops which will not have their inventories edited.

-

Dungeons have one major item

-

This option places one "major item" and one only in each of the dungeons. For the purpose of the randomizer, the dungeons are defined as the eight dungeons that
contain either Medallions or Spiritual Stones as well as Bottom of the Well, Ice Cavern, Gerudo Training Grounds, and Ganon's Castle. The major items are any
item usable with a c-button that is not simply a form of ammo (Bombchus are major only if "Bombchus are considered in logic" is on), songs, Mirror Shield, swords,
tunics, boots, Double Defense, Magic Meter/Double Magic, Bullet Bags, Quivers, Bomb Bags, Strength Upgrades, Scales, Wallets, and the Stone of Agony. To be
clear, this means that rupees, ammo, Deku Stick and Deku Nut ammo expansions, Pieces of Heart, Heart Containers, Gold Skulltulla Tokens, Maps, Compasses,
Small Keys, Boss Keys, Deku Shields, Hylian Shields, and Ice Traps are not considered major items.

+

This option will set the logic to try to ensure Link can reach every item location in the game with the exception of "key for key" item locations (a single item spot behind a locked door containing the key to open the door). If this option is not used, the logic will allow some items to be in impossible locations so long as the set of reachable items is sufficient to complete the game.

+

Bombchus Are Considered in Logic

+

This option fundamentally changes how the Bombchu items found around the world function. With this option on, Bombchus are a progression item and operate as a form of progressive item. The first Bombchu pack found will be worth 20 Bombchus and subsequent packs will be worth 10 or 5 Bombchus. Finding Bombchus will be considered as logical progression, and having found any Bombchus will be the condition to play Bombchu Bowling or buy Bombchu refills from shops. This flag will also add Bombchu (5) buyable items to the shops in Kokiri Forest, Castle Town Bazaar, and Kakariko Bazaar. With this option off, randomly found Bombchu items are not considered as logical progression, randomly found Bombchus will have specific denominations based on the values from the original game, and finding a Bomb Bag is what enables playing Bombchu Bowling and buying Bombchus from shops which will not have their inventories edited.

+

Dungeons Have One Major Item

+

This option places one "major item" and one only in each of the dungeons. For the purpose of the randomizer, the dungeons are defined as the eight dungeons that contain either Medallions or Spiritual Stones as well as Bottom of the Well, Ice Cavern, Gerudo Training Grounds, and Ganon's Castle. The major items are any item usable with a c-button that is not simply a form of ammo (Bombchus are major only if "Bombchus are considered in logic" is on), songs, Mirror Shield, swords, tunics, boots, Double Defense, Magic Meter/Double Magic, Bullet Bags, Quivers, Bomb Bags, Strength Upgrades, Scales, Wallets, and the Stone of Agony. To be clear, this means that rupees, ammo, Deku Stick and Deku Nut ammo expansions, Pieces of Heart, Heart Containers, Gold Skulltula Tokens, Maps, Compasses, Small Keys, Boss Keys, Deku Shields, Hylian Shields, and Ice Traps are not considered major items. However, Small Keys and Boss Keys are considered major items if the appropriate "keysanity" settings are used. Note that unlike with the distribution of dungeon specific items like keys, this flag does consider the hands of the Desert Colossus as Spirit Temple locations, and to mirror the original game, Spirit Temple will get two items instead of just one.

Dungeon Quest

This option specifies the form dungeons will take. The item pool will be updated to reflect the items originally found in the dungeons used.

Vanilla

@@ -93,81 +93,83 @@

Mixed

Shuffle Kokiri Sword

This flag adds the Kokiri Sword to the shuffle. With it off, the Kokiri Sword will always be found in its original chest in the Kokiri Forest.

Shuffle Weird Egg

-

This flag adds the Weird Egg given by child Malon to the shuffle. With this flag on, child Malon will give a random item and the Weird Egg must be located
to do the events at Hyrule Castle with Zelda and Impa. These events block interacting with Talon and Malon at Lon Lon Ranch as a child as well as Saria in
Sacred Forest Meadow.

+

This flag adds the Weird Egg given by child Malon to the shuffle. With this flag on, child Malon will give a random item and the Weird Egg must be located to do the events at Hyrule Castle with Zelda and Impa. These events block interacting with Talon and Malon at Lon Lon Ranch as a child as well as Saria in Sacred Forest Meadow and the Happy Mask sidequest.

Shuffle Ocarinas

-

This flag adds both the Fairy Ocarina and the Ocarina of Time to the shuffle. The ocarinas are a progressive item; the first found will always be the Fairy
Ocarina with the second being the Ocarina of Time even though the two are functionally identical. Without this flag on, leaving the Kokiri Forest to the
Lost Woods bridge as a child will always grant one Ocarina and the other is always available at the gate of Castle Town as a child when all three Spiritual
Stones are in the player's possession.

+

This flag adds both the Fairy Ocarina and the Ocarina of Time to the shuffle. The ocarinas are a progressive item; the first found will always be the Fairy Ocarina with the second being the Ocarina of Time even though the two are functionally identical. Without this flag on, leaving the Kokiri Forest to the Lost Woods bridge as a child will always grant one Ocarina and the other is always available at the gate of Castle Town as a child when all three Spiritual Stones are in the player's possession.

Shuffle Songs with Items

-

This flag adds the 12 standard ocarina songs to the shuffle as normal items. With this flag on, the spots that contained songs in the original game will
simply give Link a random item, and the songs can be found as items freely. Without this flag on, songs are still randomized but only between each other.
In either case, the Scarecrow's Song is not affected; it is still obtained by interacting with Bonooru at Lake Hylia first as a kid and then as an adult.

+

This flag adds the 12 standard ocarina songs to the shuffle as normal items. With this flag on, the spots that contained songs in the original game will simply give Link a random item, and the songs can be found as items freely. Without this flag on, songs are still randomized but only between each other. In either case, the Scarecrow's Song is not affected; it is still obtained by interacting with Bonooru at Lake Hylia first as a kid and then as an adult.

Shuffle Gerudo Card

-

This flag shuffles the Gerudo Card into the general item pool. In the randomizer, this is required to gain access to Gerudo Training Grounds, but it does
not have any impact on the hostility of the Gerudo in Gerudo Fortress who still check for the carpenter rescue events. Without this flag, the Gerudo
Card is always given by the Gerudo woman who spawns after the final carpenter is rescued. If Gerudo Fortress is cleared from the beginning of the game,
the player starts the game with the Gerudo Card and this setting is voided.

+

This flag shuffles the Gerudo Card into the general item pool. In the randomizer, this is required to gain access to Gerudo Training Grounds, but it does not have any impact on the hostility of the Gerudo in Gerudo Fortress who still check for the carpenter rescue events. Without this flag, the Gerudo Card is always given by the Gerudo woman who spawns after the final carpenter is rescued. If Gerudo Fortress is cleared from the beginning of the game, the player starts the game with the Gerudo Card and this setting is voided.

Shuffle Deku Salescrubs

-

This flag makes every Deku Scrub Salesman in the world sell a random item instead of only the three that sold permanent upgrades in the original game.
Using this flag adds the various low tier items the other scrubs sold to the item pool for the most part; the potion refills are replaced with Recovery
Hearts for Red Potions and blue rupees for Green Potions. For each Deku Scrub that sold arrows/seeds depending on age, there will be a 75% chance of
adding a 30 arrow item and a 25% chance of adding a 30 seed item to the pool. While the text will not update, if this flag is used the price of every
Deku Scrub Salesman's item will be reduced to 10 rupees, and once the purchase is made that particular Deku Scrub Salesman will disappear forever.

+

This flag makes every Deku Scrub Salesman in the world sell a random item instead of only the three that sold permanent upgrades in the original game. Using this flag adds the various low tier items the other scrubs sold to the item pool for the most part; the potion refills are replaced with Recovery Hearts for Red Potions and blue rupees for Green Potions. For each Deku Scrub that sold arrows/seeds depending on age, there will be a 75% chance of adding a 30 arrow item and a 25% chance of adding a 30 seed item to the pool. If this is set, once a Deku Scrub Salesman is used, it will disappear from the world forever. The individual settings in the dropdown can be used to set the price of each Deku Scrub Salesman to 10 rupees, leave the prices as what they were in the original game, or set each price to a random value from 0 to 99 rupees. In all cases, the text for the Deku Scrub Salesmen will not update.

Shopsanity

-

This setting randomizes the items sold in shops. When it is used, all shop items are randomly re-arranged among all 8 of the original game's shops.
This setting causes the Bombchu Shop to be open from the very beginning of the game, and this setting considers the two shops in adult Kakariko
Village to be distinct shops from the two similar shops in child Castle Town; however, the shops in Kokiri Forest, Goron City, and Zora Domain are
the same shops as both ages. This setting overrides the "Bombchus considered in logic" editing of the shop item pool.

+

This setting randomizes the items sold in shops. When it is used, all shop items are randomly re-arranged among all 8 of the original game's shops. This setting causes the Bombchu Shop to be open from the very beginning of the game, and this setting considers the two shops in adult Kakariko Village to be distinct shops from the two similar shops in child Castle Town; however, the shops in Kokiri Forest, Goron City, and Zora Domain are the same shops as both ages. This setting overrides the "Bombchus considered in logic" editing of the shop item pool.

Off

This disables the Shopsanity feature.

Shuffled Shops (0 Items)

This causes all of the Shopsanity features described above.

Shuffled Shops (1-4 Items)

-

This not only causes all of the Shopsanity features described above, but it also adds 1-4 (depending on the exact setting) items from the general
item pool into shops to buy for randomly chosen amounts of money. Lower value shop items are removed to make room for this, and low value junk items
are added to the item pool to fill the extra empty chests this will implicitly create. Using this feature will also replace several of the rupee
items found throughout the seed with higher value rupees and will add a third Wallet upgrade, the "Tycoon's Wallet", to the item pool which can hold
up to 999 rupees. The items from the general item pool added to shops will always be on the far left of the shop inventories, and these items can
always be bought if the player has enough rupees even if they are explosives without an appropriate container or a tunic as a child.

+

This not only causes all of the Shopsanity features described above, but it also adds 1-4 (depending on the exact setting) items from the general item pool into shops to buy for randomly chosen amounts of money. Lower value shop items are removed to make room for this, and low value junk items are added to the item pool to fill the extra empty chests this will implicitly create. Using this feature will also replace several of the rupee items found throughout the seed with higher value rupees and will add a third Wallet upgrade, the "Tycoon's Wallet", to the item pool which can hold up to 999 rupees. The items from the general item pool added to shops will always be on the far left of the shop inventories, and these items can always be bought if the player has enough rupees even if they are explosives without an appropriate container or a tunic as a child.

Shuffled Shops (Random Items)

-

This is similar to the 1-4 items variant but gives each shop a random number of new items from 0-4. Each shop can have a different amount of unique
items with this setting.

+

This is similar to the 1-4 items variant but gives each shop a random number of new items from 0-4. Each shop can have a different amount of unique items with this setting.

Shuffle Dungeon Items

-

This setting allows the player to decide the natural distribution of dungeon items. Dungeon items can be found confined to their original dungeons,
spread freely throughout the world, or prevented from existing completely. Items that are prevented from existing completely will be replaced in the
item pool with an assortment of various low tier junk items. This feature can be specified for Maps/Compasses, Small Keys, and Boss Keys independently.
If Small Keys or Boss Keys are prevented from existing, this will also remove all locks those keys would be used for from existing as well. If Small Keys
are left in their original dungeons and the Fire Temple is not in the form of Master Quest, the locked door in the first room that leads to the normal
location of the Boss Key will be removed.

-

Maps and Compasses give information

-

This setting, only available if Maps and Compasses are spread across the world, disables the pedestal in the Temple of Time from giving information about
the location of the Medallions and Spiritual Stones. Instead, the Compass from each of the eight eligible dungeons will tell the player which dungeon has
which reward. If the dungeon quest is set to mixed, each of the ten Maps will tell the player whether any given dungeon is in the vanilla or Master Quest
form. The Compasses from Bottom of the Well and Ice Cavern do not give any information.

-

Remove Ganon's Door Boss locked

+

This setting allows the player to decide the natural distribution of dungeon items. Dungeon items can be found confined to their original dungeons, spread freely throughout the world, or prevented from existing completely. Items that are prevented from existing completely will be replaced in the item pool with an assortment of various low tier junk items. This feature can be specified for Maps/Compasses, Small Keys, and Boss Keys independently. If Small Keys or Boss Keys are prevented from existing, this will also remove all locks those keys would be used for from existing as well. If Small Keys are left in their original dungeons and the Fire Temple is not in the form of Master Quest, the locked door in the first room that leads to the normal location of the Boss Key will be removed.

+

Maps and Compasses Give Information

+

This setting, only available if Maps and Compasses are spread across the world, disables the pedestal in the Temple of Time from giving information about the location of the Medallions and Spiritual Stones. Instead, the Compass from each of the eight eligible dungeons will tell the player which dungeon has which reward. If the dungeon quest is set to mixed, each of the ten Maps will tell the player whether any given dungeon is in the vanilla or Master Quest form. The Compasses from Bottom of the Well and Ice Cavern do not give any information.

+

Remove Ganon's Door Boss Lock

This setting removes the Boss Key lock from Ganon's Tower. This removes the need to locate the Ganon's Tower Boss Key to finish the game.

Tokensanity

-

This setting shuffles the Gold Skulltulla item drops into the general pool of locations. The player can choose only to include Gold Skulltullas
found in dungeons for a more mild version of this setting.

+

This setting shuffles the Gold Skulltula item drops into the general pool of locations. The player can choose only to include Gold skulltulas found in dungeons for a more mild version of this setting.

Detailed Logic

-

Maximum expected Skulltulla tokens

-

This setting can be used to reduce the number of Gold Skulltulla Tokens that may be required to finish the game.

-

No Nighttime Skulltullas without Sun's Song

-

This setting causes the logic to expect the player to have an ocarina and the Sun's Song to get Gold Skulltulla locations that are only found at
nighttime.

+

Maximum Expected Skulltula Tokens

+

This setting can be used to reduce the number of Gold Skulltula Tokens that may be required to finish the game.

+

No Nighttime Skulltulas without Sun's Song

+

This setting causes the logic to expect the player to have an ocarina and the Sun's Song to get Gold Skulltula locations that are only found at nighttime.

No Big Poes

This setting will guarantee that the Big Poe vendor will not have an important item.

No Child Fishing

-

This setting will guarantee that the reward from child fishing is not an important item. This is mostly recommended if the player simply must play
on Bizhawk.

+

This setting will guarantee that the reward from child fishing is not an important item. This is mostly recommended if the player simply must play on Bizhawk.

No Adult Fishing

-

This setting will guarantee that the reward from adult fishing is not an important item. This is mostly recommended if the player simply must play
on Bizhawk.

-

No Skull Mask reward

+

This setting will guarantee that the reward from adult fishing is not an important item. This is mostly recommended if the player simply must play on Bizhawk.

+

No Skull Mask Reward

This setting will guarantee that the item obtained from showing the Skull Mask in the Deku Theater is not an important item.

-

No Mask of Truth reward

+

No Mask of Truth Reward

This setting will guarantee that the item obtained from showing the Mask of Truth in the Deku Theater is not an important item.

No 1500 Horseback Archery

-

This setting will guarantee that the item obtained from scoring 1500 points at the horseback archery challenge at Gerudo Fortress is not an
important item.

+

This setting will guarantee that the item obtained from scoring 1500 points at the horseback archery challenge at Gerudo Fortress is not an important item.

No Lost Woods Memory Game

This setting will guarantee that the item obtained from winning the ocarina memory game in the Lost Woods is not an important item.

-

No Racing Dampe a second time

+

No Racing Dampe a Second Time

This setting will guarantee that the item obtained from finishing with a sub-minute time in the second Dampe race is not an important item.

-

No Biggoron reward

+

No Biggoron Reward

This setting will guarantee that the item obtained from showing the Claim Check to Biggoron is not an important item.

-

Adult Trade sequence

-

This pair of settings can be used to specify the earliest and latest items that can be allowed to randomly show up in the general item pool.
Only one item will be in the item pool regardless of this setting; this can merely be used to limit the range of possibilities.

-

Require minor tricks

+

Adult Trade Sequence

+

This pair of settings can be used to specify the earliest and latest items that can be allowed to randomly show up in the general item pool. Only one item will be in the item pool regardless of this setting; this can merely be used to limit the range of possibilities.

+

Enable All Tricks

+

This is a button to turn on all of the trick related flags.

+

Various Minor Tricks

This setting allows a huge number of minor tricks to be allowed by the logic. Here is a complete list:

-

-A precise jumpslash with either a Deku Stick or the Kokiri Sword can be used to reach a Gold Skulltulla on some vines in standad Deku Tree.
-The Bow can be used to knock down the stairs in Dodongo's Cavern with two well timed shots.
-The vines in Forest Temple leading to where the well drain switch is in the standard form can be barely reached with the standard Hookshot.
-The well in Forest Temple can be crossed with just Hookshot by shooting as low as possible on the vines from the far side and swimming under
the ceiling. This is possible in both versions but can only be required in Forest Temple MQ.
-A Bombchu from the ground level can be used to hit the switch to bypass the block pushing puzzle in Forest Temple MQ.
-A rusted switch under a Song of Time block in the standard Fire Temple can be hit by using Hammer into the block.
-The location with the Boss Key chest in Fire Temple MQ can be reached without the Bow with very particular use of Din's Fire.
-The upper levels of the old boulder maze in Fire Temple MQ can be reached without explosives by using the Hammer through a wall.
-In the standard Spirit Temple, the bridge on child side can be lowered with a carefully timed Bombchu.
-The frozen switch in Spirit Temple MQ can be hit without a fire source by using the Bow and Song of Time very cleverly.
-The chest in the basement of the standard Bottom of the Well can be reached with only a Strength Upgrade by using a jump slash with a lit
Deku Stick to access the bomb flowers in the basement.
-The silver rupees on the left side of Gerudo Training Grounds MQ can be collected with just Hookshot with a somewhat particular jump slash.
-The first room of the Spirit Trail in Ganon's Castle MQ can be cleared without the Bow by using a Hammer jump slash to hit the rusted switch
through the thrones.
-The Gold Skulltulla in adult Kokiri Forest can be reached without the Hookshot by using Hover Boots off one of the roots.
-The child can reach the chest on Death Mountain trail with just the Goron Bracelet by backwalking with the Bomb Flower intended to open
Dodongo's Cavern and throwing the Bomb Flower at the wall very quickly.
-Gerudo Fortress can be cleared without any items other than those needed for access. The logic normally guarantees one of the Bow, Hookshot, or
Hover Boots to help navigate the "kitchen".

-

Using this setting will also pre-set all of the lower logic flags to a reasonable configuration to match the trick level. These can then be
edited as the player desires if the given configuration isn't desired.

+

-A precise jumpslash with either a Deku Stick or the Kokiri Sword can be used to reach a Gold Skulltula on some vines in standad Deku Tree.
-The Bow can be used to knock down the stairs in Dodongo's Cavern with two well timed shots.
-The vines in Forest Temple leading to where the well drain switch is in the standard form can be barely reached with the standard Hookshot.
-The well in Forest Temple can be crossed with just Hookshot by shooting as low as possible on the vines from the far side and swimming under the ceiling. This is possible in both versions but can only be required in Forest Temple MQ.
-A Bombchu from the ground level can be used to hit the switch to bypass the block pushing puzzle in Forest Temple MQ.
-A rusted switch under a Song of Time block in the standard Fire Temple can be hit by using Hammer into the block.
-The location with the Boss Key chest in Fire Temple MQ can be reached without the Bow with very particular use of Din's Fire.
-The upper levels of the old boulder maze in Fire Temple MQ can be reached without explosives by using the Hammer through a wall.
-In the standard Spirit Temple, the bridge on child side can be lowered with a carefully timed Bombchu.
-The frozen switch in Spirit Temple MQ can be hit without a fire source by using the Bow and Song of Time very cleverly.
-The chest in the basement of the standard Bottom of the Well can be reached with only a Strength Upgrade by using a jump slash with a lit Deku Stick to access the bomb flowers in the basement.
-The silver rupees on the left side of Gerudo Training Grounds MQ can be collected with just Hookshot with a somewhat particular jump slash.
-The first room of the Spirit Trail in Ganon's Castle MQ can be cleared without the Bow by using a Hammer jump slash to hit the rusted switch through the thrones.
-The Gold Skulltula in adult Kokiri Forest can be reached without the Hookshot by using Hover Boots off one of the roots.
-The child can reach the chest on Death Mountain trail with just the Goron Bracelet by backwalking with the Bomb Flower intended to open Dodongo's Cavern and throwing the Bomb Flower at the wall very quickly.
-Gerudo Fortress can be cleared without any items other than those needed for access. The logic normally guarantees one of the Bow, Hookshot, or Hover Boots to help navigate the "kitchen".

+

Using this setting will also pre-set all of the lower logic flags to a reasonable configuration to match the trick level. These can then be edited as the player desires if the given configuration isn't desired.

Man on Roof without Hookshot

-

This allows the logic to consider a trick in which the player does a sidehop off the tall tower in Kakariko Village to reach the man on the
rooftop with no items.

+

This allows the logic to consider a trick in which the player does a sidehop off the tall tower in Kakariko Village to reach the man on the rooftop with no items.

Child Deadhand without Kokiri Sword

-

This allows the logic to consider defeating the Deadhand in Bottom of the Well with Deku Sticks. This is not hard with use of the power crouch
stab glitch, but consistently landing actual jump slashes on his unusual hitbox is pretty difficult and using normal slashes consumes 9 Deku Sticks.

-

Dodongo's Cavern spike trap room jump without Hover Boots

-

This allows the logic to consider that the adult can make a particularly useful jump in Dodongo's Cavern to reach the area with the Bomb Bag chest early.
Due to the precision of the jump, normally the logic expects Hover Boots to complete this path.

-

Windmill PoH as adult with nothing

-

This allows the logic to consider a jump the adult can make in the windmill to reach the Piece of Heart within with no items. The jump requires leaping
from an object on which it is not obvious Link is allowed to stand and has counterintuitive timing so it is not in standard logic.

-

Crater's bean PoH with Hover Boots

-

This allows the logic to consider using Hover Boots to reach the Piece of Heart atop the volcano in Death Mountain Crater. The path involves walking up a
very steep slope that is not visibly walkable so it is not in normal logic.

-

Zora's Domain entry with Cucco

-

This allows the logic to consider using a Cucco on Zora River to enter Zora's Domain as a child without playing Zelda's Lullaby. It requires slipping behind
the waterfall trickily from the left side.

-

Zora's Domain entry with Hover Boots

-

This allows the logic to consider this similar trick to the above except as an adult with Hover Boots. This is actually a lot more difficult even though it can
be done from either side of the waterfall.

+

This allows the logic to consider defeating the Deadhand in Bottom of the Well with Deku Sticks. This is not hard with use of the power crouch stab glitch, but consistently landing actual jump slashes on his unusual hitbox is pretty difficult and using normal slashes consumes 9 Deku Sticks.

+

Dodongo's Cavern Spike Trap Room Jump without Hover Boots

+

This allows the logic to consider that the adult can make a particularly useful jump in Dodongo's Cavern to reach the area with the Bomb Bag chest early. Due to the precision of the jump, normally the logic expects Hover Boots to complete this path.

+

Windmill PoH as Adult with Nothing

+

This allows the logic to consider a jump the adult can make in the windmill to reach the Piece of Heart within with no items. The jump requires leaping from an object on which it is not obvious Link is allowed to stand and has counterintuitive timing so it is not in standard logic.

+

Crater's Bean PoH with Hover Boots

+

This allows the logic to consider using Hover Boots to reach the Piece of Heart atop the volcano in Death Mountain Crater. The path involves walking up a very steep slope that is not visibly walkable so it is not in normal logic.

+

Zora's Domain Entry with Cucco

+

This allows the logic to consider using a Cucco on Zora River to enter Zora's Domain as a child without playing Zelda's Lullaby. It requires slipping behind the waterfall trickily from the left side.

+

Zora's Domain Entry with Hover Boots

+

This allows the logic to consider this similar trick to the above except as an adult with Hover Boots. This is actually a lot more difficult even though it can be done from either side of the waterfall.

Fewer Tunic Requirements

-

This relaxes the tunic requirements by the logic somewhat. Normally the logic expects a Goron Tunic to enter Fire Temple or complete the Fire Trial in Ganon's Castle
and a Zora Tunic to enter Water Temple, collect the underwater silver rupees in Gerudo Training Grounds, or obtain the Piece of Heart at the bottom of the frozen Zora's
Fountain. With this flag set, the Goron Tunic will not be required to actually enter Fire Temple, only to fight Volvagia or to reach the upper floors. The Zora Tunic
requirements are removed completely except to reach the chest at the bottom of the central pillar in Water Temple.

+

This relaxes the tunic requirements by the logic somewhat. Normally the logic expects a Goron Tunic to enter Fire Temple or complete the Fire Trial in Ganon's Castle and a Zora Tunic to enter Water Temple, collect the underwater silver rupees in Gerudo Training Grounds, or obtain the Piece of Heart at the bottom of the frozen Zora's Fountain. With this flag set, the Goron Tunic will not be required to actually enter Fire Temple, only to fight Volvagia or to reach the upper floors. The Zora Tunic requirements are removed completely except to reach the chest at the bottom of the central pillar in Water Temple.

Lens of Truth

This setting alters the expectations about interacting with invisible objects without the Lens of Truth.

-

Required everywhere

+

Required Everywhere

This setting requires the Lens of Truth to interact with any invisible object except for whatever was required in the original game to obtain the Lens of Truth.

Wasteland and Chest Minigame

This setting expects the Lens of Truth to be used only to cross the Haunted Wasteland and to win the Treasure Chest Minigame in Castle Town at night.

@@ -177,41 +179,41 @@

Other

Skip Tower Collapse Sequence

This setting causes defeating Ganondorf to skip directly to the Ganon fight without the need to do the collapsing Ganon's Tower sequence.

Skip Interior Castle Guard Stealth Sequence

-

This setting causes entering the crawlspace at Hyrule Castle to deposit the player directly into the Castle Courtyard, bypassing the guard
evasion sequence.

+

This setting causes entering the crawlspace at Hyrule Castle to deposit the player directly into the Castle Courtyard, bypassing the guard evasion sequence.

Skip Epona Race

This setting causes Epona to be stolen from Ingo from the start of the game, only requiring Epona's Song and an ocarina as an adult to summon.

Fast Chest Cutscenes

This setting causes all chests to open with a quick animation. If this setting is off, certain important items will trigger the slow opening animation.

Random Big Poe Target Count

-

This setting causes the number of Big Poes that must be turned into the vendor to obtain his item to be random from 1-10. Alternatively, the number
of Big Poes requires can be selected manually with the slider below. Note that Big Poes can be found as pre-stocked Bottle contents, and the logic
can expect using them if the required number is sufficiently low.

+

This setting causes the number of Big Poes that must be turned into the vendor to obtain his item to be random from 1-10. Alternatively, the number of Big Poes requires can be selected manually with the slider below. Note that Big Poes can be found as pre-stocked Bottle contents, and the logic can expect using them if the required number is sufficiently low.

Start with Scarecrow's Song

-

This flag causes Pierre the Scarecrow to be available to summon for the adult from the beginning of the game. The box below can be used to
specify the particular desired Scarecrow's Song. This song must be exactly eight notes long and must contain at least two different notes.

-

Randomize ocarina song notes

-

This flag randomizes the particular notes in the 12 standard ocarina songs. This can predictably be pretty obnoxious. In general, the patterns chosen
for the top row songs will be simpler than the patterns chosen for warp songs.

-

Chest size matches contents

-

This flag causes keys, Ice Traps, and items flagged as progression items to appear in large treasure chests while other items will be in small treasure chests.
This means that players can choose to skip small treasure chests since they will only contain handy, not essential, items.

-

Clearer hints

-

This flag changes the text of Gossip Stone hints to be overwhelmingly explicit. This is helpful for players who do not have English as their first language,
but the hints will be less "fun" and less like the sorts of things that would be said in the original game.

+

This flag causes Pierre the Scarecrow to be available to summon for the adult from the beginning of the game. The box below can be used to specify the particular desired Scarecrow's Song. This song must be exactly eight notes long and must contain at least two different notes.

+

Randomize Ocarina Song Notes

+

This flag randomizes the particular notes in the 12 standard ocarina songs. This can predictably be pretty obnoxious. In general, the patterns chosen for the top row songs will be simpler than the patterns chosen for warp songs.

+

Chest Size Matches Contents

+

This flag causes keys, Ice Traps, and items flagged as progression items to appear in large treasure chests while other items will be in small treasure chests. This means that players can choose to skip small treasure chests since they will only contain handy, not essential, items.

+

Clearer Hints

+

This flag changes the text of Gossip Stone hints to be overwhelmingly explicit. This is helpful for players who do not have English as their first language, but the hints will be less "fun" and less like the sorts of things that would be said in the original game.

Gossip Stones

This flag changes the behavior of Gossip Stones to give hints to players. The hints will be distributed as such:

-

-If the required number of trials is 1-3, a hint will be added for each trial that must be done. If the required number of trials is 4 or 5, a hint will be added
for each trial that can be skipped.
-Hints will be added for every one of the "always" locations that is allowed to have a random possibly valuable item under the current settings. These hints
will tell the player what item is at each of these locations. These locations are the rewards for 30, 40, and 50 Gold Skulltulla Tokens, the item obtained from
Biggoron by showing the Claim Check, the item obtained from the Big Poe vendor, both the song and the item slots at the Ocarina of Time, and the item obtained
from showing the Mask of Truth at the Deku Theater.
-Some hints will be given for items at a randomly selected number of other locations that are generally somewhat inconvenient to check. The total number of these
hints will be either 11 or 12 minus the number of always hints placed.
-3 or 4 hints will be given naming a specific non-dungeon specific item that can be found in a randomly chosen dungeon.
-1 to 4 hints will be given naming a specific item found in a specific overworld region. Which part of this range is used is determined in part by how many
trial hints are given.
-4 to 6 hints will be given naming what region specific progression items other than Gold Skulltulla Tokens can be found.
-3 or 4 hints will be given naming specific regions that are "on the way of the hero" and thus contain at least one required progression item.
-All remaining hints (33 total unique Gossip Stones exist) will be filled with non-information junk hints.

-

This setting allows the player to specify which item is required to interact with the Gossip Stones. The Stone of Agony is the default option as it gives a
fairly purposeless vanilla item a use and allows both kid and adult to interact with the Gossip Stones. The default Mask of Truth can be used, but this has
the downside that the Mask of Truth can only be obtained with all Spiritual Stones which tends to make the hints not useful, and using the Mask of Truth
requires being a child which is another big downside. There is also an option for the information to just be free for those wanting an easier mode.

+

-If the required number of trials is 1-3, a hint will be added for each trial that must be done. If the required number of trials is 4 or 5, a hint will be added for each trial that can be skipped.
-Hints will be added for every one of the "always" locations that is allowed to have a random possibly valuable item under the current settings. These hints will tell the player what item is at each of these locations. These locations are the rewards for 30, 40, and 50 Gold Skulltula Tokens, the item obtained from Biggoron by showing the Claim Check, the item obtained from the Big Poe vendor, both the song and the item slots at the Ocarina of Time, and the item obtained from showing the Mask of Truth at the Deku Theater.
-Some hints will be given for items at a randomly selected number of other locations that are generally somewhat inconvenient to check. The total number of these hints will be either 11 or 12 minus the number of always hints placed.
-3 or 4 hints will be given naming a specific non-dungeon specific item that can be found in a randomly chosen dungeon.
-1 to 4 hints will be given naming a specific item found in a specific overworld region. Which part of this range is used is determined in part by how many trial hints are given.
-4 to 6 hints will be given naming what region specific progression items other than Gold Skulltula Tokens can be found.
-3 or 4 hints will be given naming specific regions that are "on the way of the hero" and thus contain at least one required progression item.
-All remaining hints (33 total unique Gossip Stones exist) will be filled with non-information junk hints.

+

This setting allows the player to specify which item is required to interact with the Gossip Stones. The Stone of Agony is the default option as it gives a fairly purposeless vanilla item a use and allows both kid and adult to interact with the Gossip Stones. The default Mask of Truth can be used, but this has the downside that the Mask of Truth can only be obtained with all Spiritual Stones which tends to make the hints not useful, and using the Mask of Truth requires being a child which is another big downside. There is also an option for the information to just be free for those wanting an easier mode.

Text Shuffle

This setting allows all the text in the game to be shuffled. This is mostly for comedy and is not intended to be a serious gameplay option.

-

No text shuffled

+

No Text Shuffled

Leave the text alone.

Shuffled except Hints and Keys

Shuffle all text other than the useful text giving the player information.

-

All text shuffled

+

All Text Shuffled

Shuffle all text even to the player's mechanical disadvantage.

Difficulty

This setting allows the player to tweak the item pool to make a somewhat harder experience.

Normal

Leave the item pool alone.

Hard

-

Heart Containers, Double Defense, and the second Magic Upgrade are replaced with junk items.

+

Heart Containers, Double Defense, and the second Magic Upgrade are replaced with junk items. One each of the ammo expansions (Quiver, Bullet Bag, Bomb Bag Deku Stick Capacity, Deku Nut Capacity) will also be replaced with junk items, and all Bombchu pick-ups other than three will similarly be replaced with junk.

Very Hard

-

In addition to the items from Hard, Pieces of Heart and Nayru's Love are also replaced with junk items.

+

In addition to the items from Hard, Pieces of Heart and Nayru's Love are also replaced with junk items. One more of each ammo expansion is removed resulting in zero extra ammo capacity for those item types, and only one Bombchu pick-up can be found.

OHKO

In addition to the item changes from Very Hard, Link dies in one hit. Ice Traps are replaced with Recovery Hearts.

Cosmetics

@@ -225,7 +227,7 @@

Random

Kokiri Tunic Color

This determines the color of Link's default Kokiri Tunic. This only affects the color when he's wearing it, not the color of the icon in the menu.

Most Colors

-

Simply get the particular color selected. Available colors are Kokiri Green, Goron Red, Zora Blue, Black, White, Purple, Yellow, Orange, Pink, Gray,
Brown, Gold, Silver, Beige, Teal, Royal Blue, Sonic Blue, Blood Red, Blood Orange, NES Green, Dark Green, and Lumen.

+

Simply get the particular color selected. Available colors are Kokiri Green, Goron Red, Zora Blue, Black, White, Azure Blue, Vivid Cyan, Light Red, Fuchsia, Purple, MM Purple, Twitch Purple, Purple Heart, Persian Rose, Dirty Yellow, Blush Pink, Hot Pink, Rose Pink, Orange, Gray, Gold, Silver, Beige, Teal, Blood Red, Blood Orange, Royal Blue, Sonic Blue, NES Green, Dark Green, and Lumen.

Random Choice

Choose a random color from the set of pre-made colors.

Completely Random

@@ -233,19 +235,19 @@

Completely Random

Custom Color

A special interface will pop up that will allow the user to choose any color from a diverse color wheel or input a desired RGB value.

Goron Tunic Color

-

This determines the color of Link's Goron Tunic. This only affects the color when he's wearing it, not the color of the icon in the menu or when
holding it up after acquiring it. The options are identical to those for the Kokiri Tunic.

+

This determines the color of Link's Goron Tunic. This only affects the color when he's wearing it, not the color of the icon in the menu or when holding it up after acquiring it. The options are identical to those for the Kokiri Tunic.

Zora Tunic Color

-

This determines the color of Link's Zora Tunic. This only affects the color when he's wearing it, not the color of the icon in the menu or when
holding it up after acquiring it. The options are identical to those for the Kokiri Tunic.

+

This determines the color of Link's Zora Tunic. This only affects the color when he's wearing it, not the color of the icon in the menu or when holding it up after acquiring it. The options are identical to those for the Kokiri Tunic.

Low Health SFX

-

This determines which sound effect to play repeatedly when Link is very low on health. Several of these options are designed to be potentially
more pleasant to listen to while a few are designed to be more amusing.

+

This determines which sound effect to play repeatedly when Link is very low on health. Several of these options are designed to be potentially more pleasant to listen to while a few are designed to be more amusing.

Particular Sounds

-

Set this particular sound for the heart beep. Available choices are Default, Softer Beep, Rupee, Timer, Tamborine, Recovery Heart, Carrot Refill,
Navi - Hey!, Zelda - Gasp, Cluck, and Mweep!. The last of these is indeed the sound a king might make when moving... very slowly.

+

Set this particular sound for the heart beep. Available choices are Default, Softer Beep, Rupee, Timer, Tambourine, Recovery Heart, Carrot Refill, Navi - Hey!, Zelda - Gasp, Cluck, Mweep!, Iron Boots, Hammer, Sword Bounce, Bow, Gallop, Drawbridge, Switch, Bomb Bounce, Bark, Ribbit, Broken Pot, Business Scrub, Guay, and Bongo Bongo. Indeed, one of these is the sound a king might make when moving... very slowly.

Random Choice

Play a random SFX from the list of choices.

None

Disable low health heart beeps altogether.

-

These options can be used to set Navi's color in a variety of contexts. The lists of pre-set colors here is different, but the same types of options
exist as for choosing tunic colors.

+

These options can be used to set Navi's color in a variety of contexts. The lists of pre-set colors here is different, but the same types of options exist as for choosing tunic colors.

This option sets the SFX that will play when Navi is ready to give a hint. The options are very similar to the Low Health SFX.

@@ -266,13 +268,13 @@

Command Line Options

--count COUNT         

Set the count option (default: None)

--world_count WORLD_COUNT       
-

Use to create a multi-world generation for co-op seeds. World count is the number of players.
Warning: Increasing the world count will drastically increase generation time. (default: 1)

+

Use to create a multi-world generation for co-op seeds. World count is the number of players. Warning: Increasing the world count will drastically increase generation time. (default: 1)

--player_num PLAYER_NUM       

Use to select world to generate when there are multiple worlds. (default: 1)

--create_spoiler      

Output a Spoiler File (default: False)

--compress_rom [{True,False,None}]
-

Create a compressed version of the output rom file.
True: Compresses. Improves stability. Will take longer to generate
False: Uncompressed. Unstable on emulator. Faster generation
None: No ROM Output. Creates spoiler log only (default: True)

+

Create a compressed version of the output rom file. True: Compresses. Improves stability. Will take longer to generate False: Uncompressed. Unstable on emulator. Faster generation None: No ROM Output. Creates spoiler log only (default: True)

--open_forest

Set whether Kokiri children obstruct your path at the beginning of the game. (default: False)

--open_kakariko
@@ -336,13 +338,13 @@

Command Line Options

--unlocked_ganondorf

Remove the Boss Key door leading to Ganondorf (default: False)

--tokensanity [{off,dungeons,all}]
-

Include the chosen Gold Skulltulla Token locations in the item shuffle (default: off)

+

Include the chosen Gold Skulltula Token locations in the item shuffle (default: off)

--quest [{vanilla,master,mixed}]

Choose the internal layout of the dungeons (default: vanilla)

--logic_skulltulas [{0,10,20,30,40,50}]
-

Choose the maximum number of Gold Skulltulla Tokens that could be required (default: 50)

+

Choose the maximum number of Gold Skulltula Tokens that could be required (default: 50)

--logic_no_night_tokens_without_suns_song
-

Change logic to expect Sun's Song to defeat nighttime Gold Skulltullas (default: False)

+

Change logic to expect Sun's Song to defeat nighttime Gold Skulltulas (default: False)

--logic_no_big_poes

Prevent the Big Poe vendor from having a required item (default: False)

--logic_no_child_fishing
@@ -401,25 +403,25 @@

Command Line Options

Set the default Z-targeting setting. It can still be changed in the game's options menu. (default: hold)

--background_music [{normal,off,random}]

Choose whether the game's background music will be left alone, disabled, or shuffled randomly. (default: normal)

-
--kokiricolor [{'Random Choice', 'Completely Random', 'Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Purple', 'Yellow', 'Orange', 'Pink', 'Gray', 'Brown', 'Gold', 'Silver', 'Beige', 'Teal', 'Royal Blue', 'Sonic Blue', 'Blood Red', 'Blood Orange', 'NES Green', 'Dark Green', 'Lumen'}]
-

Select the color of Link's Kokiri Tunic. (default: Kokiri Green)

-
--goroncolor [{'Random Choice', 'Completely Random', 'Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Purple', 'Yellow', 'Orange', 'Pink', 'Gray', 'Brown', 'Gold', 'Silver', 'Beige', 'Teal', 'Royal Blue', 'Sonic Blue', 'Blood Red', 'Blood Orange', 'NES Green', 'Dark Green', 'Lumen'}]
-

Select the color of Link's Goron Tunic. (default: Goron Red)

-
--zoracolor [{'Random Choice', 'Completely Random', 'Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Purple', 'Yellow', 'Orange', 'Pink', 'Gray', 'Brown', 'Gold', 'Silver', 'Beige', 'Teal', 'Royal Blue', 'Sonic Blue', 'Blood Red', 'Blood Orange', 'NES Green', 'Dark Green', 'Lumen'}]
-

Select the color of Link's Zora Tunic. (default: Zora Blue)

+
--kokiricolor [{'Random Choice', 'Completely Random', 'Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Azure Blue', 'Vivid Cyan', 'Light Red', 'Fuchsia', 'Purple', 'MM Purple', 'Twitch Purple', 'Purple Heart', 'Persian Rose', 'Dirty Yellow', 'Blush Pink', 'Hot Pink', 'Rose Pink', 'Orange', 'Gray', 'Gold', 'Silver', 'Beige', 'Teal', 'Blood Red', 'Blood Orange', 'Royal Blue', 'Sonic Blue', 'NES Green', 'Dark Green', 'Lumen'}]
+

Select the color of Link's Kokiri Tunic. Can also set Custom (#RRGGBB) using hexadecimal RGB values to set a custom color. (default: Kokiri Green)

+
--goroncolor [{'Random Choice', 'Completely Random', 'Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Azure Blue', 'Vivid Cyan', 'Light Red', 'Fuchsia', 'Purple', 'MM Purple', 'Twitch Purple', 'Purple Heart', 'Persian Rose', 'Dirty Yellow', 'Blush Pink', 'Hot Pink', 'Rose Pink', 'Orange', 'Gray', 'Gold', 'Silver', 'Beige', 'Teal', 'Blood Red', 'Blood Orange', 'Royal Blue', 'Sonic Blue', 'NES Green', 'Dark Green', 'Lumen'}]
+

Select the color of Link's Goron Tunic. Can also set Custom (#RRGGBB) using hexadecimal RGB values to set a custom color. (default: Goron Red)

+
--zoracolor [{'Random Choice', 'Completely Random', 'Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Azure Blue', 'Vivid Cyan', 'Light Red', 'Fuchsia', 'Purple', 'MM Purple', 'Twitch Purple', 'Purple Heart', 'Persian Rose', 'Dirty Yellow', 'Blush Pink', 'Hot Pink', 'Rose Pink', 'Orange', 'Gray', 'Gold', 'Silver', 'Beige', 'Teal', 'Blood Red', 'Blood Orange', 'Royal Blue', 'Sonic Blue', 'NES Green', 'Dark Green', 'Lumen'}]
+

Select the color of Link's Zora Tunic. Can also set Custom (#RRGGBB) using hexadecimal RGB values to set a custom color. (default: Zora Blue)

--navicolordefault [{'Random Choice', 'Completely Random', 'Gold', 'White', 'Green', 'Light Blue', 'Yellow', 'Red', 'Magenta', 'Black', 'Tatl', 'Tael', 'Fi', 'Ciela', 'Epona', 'Ezlo', 'King of Red Lions', 'Linebeck', 'Loftwing', 'Midna', 'Phantom Zelda'}]
-

Select the color of Navi in idle. (default: White)

+

Select the color of Navi in idle. Can also set Custom (#RRGGBB) using hexadecimal RGB values to set a custom color. (default: White)

--navicolorenemy [{'Random Choice', 'Completely Random', 'Gold', 'White', 'Green', 'Light Blue', 'Yellow', 'Red', 'Magenta', 'Black', 'Tatl', 'Tael', 'Fi', 'Ciela', 'Epona', 'Ezlo', 'King of Red Lions', 'Linebeck', 'Loftwing', 'Midna', 'Phantom Zelda'}]
-

Select the color of Navi when she is targeting an enemy. (default: Yellow)

+

Select the color of Navi when she is targeting an enemy. Can also set Custom (#RRGGBB) using hexadecimal RGB values to set a custom color. (default: Yellow)

--navicolornpc [{'Random Choice', 'Completely Random', 'Gold', 'White', 'Green', 'Light Blue', 'Yellow', 'Red', 'Magenta', 'Black', 'Tatl', 'Tael', 'Fi', 'Ciela', 'Epona', 'Ezlo', 'King of Red Lions', 'Linebeck', 'Loftwing', 'Midna', 'Phantom Zelda'}]
-

Select the color of Navi when she is targeting an NPC. (default: Light Blue)

+

Select the color of Navi when she is targeting an NPC. Can also set Custom (#RRGGBB) using hexadecimal RGB values to set a custom color. (default: Light Blue)

--navicolorprop [{'Random Choice', 'Completely Random', 'Gold', 'White', 'Green', 'Light Blue', 'Yellow', 'Red', 'Magenta', 'Black', 'Tatl', 'Tael', 'Fi', 'Ciela', 'Epona', 'Ezlo', 'King of Red Lions', 'Linebeck', 'Loftwing', 'Midna', 'Phantom Zelda'}]
-

Select the color of Navi when she is targeting a prop. (default: Green)

-
--navisfxoverworld [{Default,Notification,Rupee,Timer,Tamborine,Recovery Heart,Carrot Refill,Navi - Hey!,Navi - Random,Zelda - Gasp,Cluck,Mweep!,Random,None}]
+

Select the color of Navi when she is targeting a prop. Can also set Custom (#RRGGBB) using hexadecimal RGB values to set a custom color. (default: Green)

+
--navisfxoverworld [{'Default', 'Random Choice', 'None', 'Cluck', 'Rupee', 'Softer Beep', 'Recovery Heart', 'Timer', 'Low Health', 'Notification', 'Tambourine', 'Carrot Refill', 'Zelda - Gasp', 'Mweep!', 'Ice Break', 'Explosion', 'Crate', 'Great Fairy', 'Moo', 'Bark', 'Ribbit', 'Broken Pot', 'Cockadoodledoo', 'Epona', 'Gold Skulltula', 'Redead', 'Poe', 'Ruto', 'Howl', 'Business Scrub', 'Guay', "H'lo!"}]

Select the sound effect that plays when Navi wishes to speak with the player. (default: Default)

-
--navisfxenemytarget [{Default,Notification,Rupee,Timer,Tamborine,Recovery Heart,Carrot Refill,Navi - Hey!,Navi - Random,Zelda - Gasp,Cluck,Mweep!,Random,None}]
+
--navisfxenemytarget [{'Default', 'Random Choice', 'None', 'Cluck', 'Rupee', 'Softer Beep', 'Recovery Heart', 'Timer', 'Low Health', 'Notification', 'Tambourine', 'Carrot Refill', 'Zelda - Gasp', 'Mweep!', 'Ice Break', 'Explosion', 'Crate', 'Great Fairy', 'Moo', 'Bark', 'Ribbit', 'Broken Pot', 'Cockadoodledoo', 'Epona', 'Gold Skulltula', 'Redead', 'Poe', 'Ruto', 'Howl', 'Business Scrub', 'Guay', "H'lo!"}]

Select the sound effect that plays when Navi targets an enemy. (default: Default)

-
--healthSFX [{'Default', 'Softer Beep', 'Rupee', 'Timer', 'Tamborine', 'Recovery Heart', 'Carrot Refill', 'Navi - Hey!', 'Zelda - Gasp', 'Cluck', 'Mweep!', 'Random', 'None'}]
+
--healthSFX [{'Default', 'Random Choice', 'None', 'Cluck', 'Softer Beep', 'Recovery Heart', 'Timer', 'Notification', 'Tambourine', 'Carrot Refill', 'Navi - Random', 'Navi - Hey!', 'Zelda - Gasp', 'Mweep!', 'Iron Boots', 'Hammer', 'Sword Bounce', 'Bow', 'Gallop', 'Drawbridge', 'Switch', 'Bomb Bounce', 'Bark', 'Ribbit', 'Broken Pot', 'Business Scrub', 'Guay', 'Bongo Bongo'}]

Select the sound effect that loops at low health. (default: Default)

--gui

Open the graphical user interface. Preloads selections with set command line parameters.

diff --git a/README.md b/README.md index ec95d001d..ecf2fa6a1 100644 --- a/README.md +++ b/README.md @@ -5,9 +5,9 @@ This is a randomizer for _The Legend of Zelda: Ocarina of Time_ for the Nintendo # Installation It is strongly suggested users get the latest release from here: https://github.com/AmazingAmpharos/OoT-Randomizer/releases . -Simply download the .msi installer and run it if you have a Windows machine. +Simply download the .msi installer and run it. We support Windows, Mac, and Linux machines. -If you do not have Windows or you simply wish to run the script raw, clone this repository and either run '''Gui.py''' for a +If you have an incompatible OS or you simply wish to run the script raw, clone this repository and either run '''Gui.py''' for a graphical interface or '''OoTRandomizer.py''' for the command line version. Both require Python 3.5+. This randomizer requires The Legend of Zelda: Ocarina of Time version 1.0 NTSC-US version. This randomizer includes an in-built decompressor, but if @@ -45,7 +45,8 @@ The following item types will be progressive chains: -Adult Wallet to Giant's Wallet -Deku Stick Capacity Upgrades -Deku Nut Capacity Upgrades --Magic Meter to Double Magic +-Magic Meter to Double Magic +-Fairy Ocarina to Ocarina of Time To be more clear about which NPC items are shuffled, it's only the one time permanent item rewards for the most part like NPCs who originally gave Pieces of Heart or inventory items. The only exception is that even though in vanilla the reward for 40 Gold Skulltula Tokens was just 10 Bombchus that is still a randomized reward @@ -61,8 +62,8 @@ upgrades can now be found as normal items scattered around the world. Happy hunt The Ocarina songs are shuffled in a pool amongst themselves, and each learn spot will still have the original conditions it has always had. These conditions may not have all been obvious, but here are some high points. Saria will teach her song after completing the events in the Castle Courtyard. The warp songs can mostly only be learned by an adult, but the location for Requiem of Spirit is available for even a child if the Desert Colossus can be reached. The location for the Prelude of -Light requires the Forest Medallion, and the location for the Nocturne of Shadow requires the Forest Medallion, Fire Medallion, and Water Medallions. This can be -changed with a setting. +Light requires the Forest Medallion, and the location for the Nocturne of Shadow requires the Forest Medallion, Fire Medallion, and Water Medallions. A setting +exists to shuffle all songs into the general item pool instead of limiting them to song specific slots. Speaking of Medallions, each boss in the eight main dungeons will drop a random Spiritual Stone or Medallion, and instead of the Light Medallion being granted by the now removed "becoming an adult" cutscene, the player will start every seed with a random Spiritual Stone or Medallion. The pedestal in which the Spiritual Stones @@ -112,9 +113,10 @@ possessing the Forest Medallion. The condition to learn a song from Sheik in Kak -Skull Kid will only buy the Skull Mask if you have played Saria's Song for him. -The center of Death Mountain Crater as an adult can be reached from the summit as an adult by going around to the left with Hover Boots or by jumping down to the right and using a combination of the Longshot and Scarecrow's Song. This allows access to Sheik and the Fire Temple without a Bomb Bag. --A sword must be equipped to play the fishing minigame. A Slingshot is not required for child target shooting, but the adult does need the Bow. --Other than those minigames, the child can do anything that would seem to require the sword with Deku Sticks. You can buy as many as you want in the Kokiri Forest shop. --In the randomizer, possessing the Bomb Bag is the requirement to get bomb drops, buy bombs or Bombchus, or play Bombchu Bowling. +-A sword must be equipped to play the fishing minigame. A Slingshot is not required for child target shooting, but the adult does need the Bow to receive the true prize. +-Other than the fishing minigame, the child can do anything that would seem to require the sword with Deku Sticks. You can buy as many as you want in the Kokiri Forest shop. +-In the randomizer, possessing the Bomb Bag is the requirement to get bomb drops, buy bombs or Bombchus, or play Bombchu Bowling. If the setting "Bombchus Are Consider in +Logic" is used, finding any pack of Bombchus allows purchasing Bombchus and playing Bombchu Bowling while possessing a Bomb Bag allows the purchase of bombs. -Only the Hookshot, not the Longshot, is needed to do everything on the rooftops of Kakariko. -Grottos can be opened with either Bombs or the Hammer. -The boulder maze in Goron City can be solved with the Hammer or partially with Bombs as is obvious, but less obvious is that it can be fully solved with Silver Gauntlets. @@ -129,6 +131,8 @@ to the highest level of the central platform. Then a very well spaced rolling ju make poor key choices in Water Temple, this may be what you need to do to untangle the situation. -In the Water Temple, Hover Boots can be used to reach the vanilla Boss Key chest without going through the room that requires Bombs and block pushing. Hover Boots can also be used in this temple to avoid the Longshot requirement for the middle level chest that requires the Bow. +-In the Water Temple, Farore's Wind can be placed in the central pillar and then the water can be raised to the highest level in order to reach the Gold Skulltula without +the Longshot. -In the Shadow Temple, you can avoid the need for the Longshot in the room with the invisible spikes by backflipping onto the chest for extra height. -In the Shadow Temple, you can Hookshot the ladder to avoid pushing the block to get on the boat. -In the Shadow Temple, a combination of the scarecrow and the Longshot can be used to reach Bongo Bongo without needing the Bow. @@ -136,9 +140,10 @@ also be used in this temple to avoid the Longshot requirement for the middle lev -In the Spirit Temple, you can collect the silver rupees without Hover Boots by jumping directly onto the rolling boulder or with a jump slash. -In the Spirit Temple, you can use the Longshot to cross from the hand with the Mirror Shield in vanilla to the other hand. -In Ganon's Castle Spirit Trial, the web can be burned with a precise shot through the torch by a normal arrow. Fire Arrows are not required. --While we guarantee tunics for Fire Temple and Water Temple, you can possibly force yourself to do without if you seriously let a Like Like eat the tunic and -then do not recover the tunic. It is almost always possible to do without, but it can make things really difficult on you. +-Like Likes now only eat shields and not tunics. -Several Gold Skulltula Tokens can be reached by clever/precise uses of jump slashes and spin attacks (possibly magic spin attacks). +-This is not a randomizer exclusive mechanic, but getting the ability to summon Pierre the Scarecrow requires playing an eight note song for +Bonooru the Scarecrow as a child first and then the exact same song for him again as an adult. # Known issues @@ -152,7 +157,9 @@ it is strongly suggested the player save before turning in the Claim Check. -Saving and quitting on the very first frame after becomming an adult when you would trigger the Light Arrow cutscene can have undesired consequences. Just don't do that. -The equipment screen still cannot be easily navigated with all item configurations which can be especially problematic if the Biggoron Sword is found very early -or if shields cannot be easily purchased thanks to shopsanity. Getting the Master Sword and buying as many shields as you can is a good way to mitigate these issues. +or if shields cannot be easily purchased thanks to shopsanity. Getting the Master Sword and buying as many shields as you can is a good way to mitigate these issues. +-This randomizer is based on the 1.0 version of Ocarina of Time so some of its specific bugs remain. Some of these like "empty bomb" can be disadvantagous to the +player. # Settings @@ -280,23 +287,25 @@ This option will set the logic to try to ensure Link can reach every item locati item spot behind a locked door containing the key to open the door). If this option is not used, the logic will allow some items to be in impossible locations so long as the set of reachable items is sufficient to complete the game. -## Bombchus are considered in logic +## Bombchus Are Considered in Logic This option fundamentally changes how the Bombchu items found around the world function. With this option on, Bombchus are a progression item and operate as a form of progressive item. The first Bombchu pack found will be worth 20 Bombchus and subsequent packs will be worth 10 or 5 Bombchus. Finding Bombchus will -be considered as logical progression, and having found any Bombchus will be the condition to play Bombchu Bowling or buy Bombchu items from shops. This flag +be considered as logical progression, and having found any Bombchus will be the condition to play Bombchu Bowling or buy Bombchu refills from shops. This flag will also add Bombchu (5) buyable items to the shops in Kokiri Forest, Castle Town Bazaar, and Kakariko Bazaar. With this option off, randomly found Bombchu items are not considered as logical progression, randomly found Bombchus will have specific denominations based on the values from the original game, and finding a Bomb Bag is what enables playing Bombchu Bowling and buying Bombchus from shops which will not have their inventories edited. -## Dungeons have one major item +## Dungeons Have One Major Item This option places one "major item" and one only in each of the dungeons. For the purpose of the randomizer, the dungeons are defined as the eight dungeons that contain either Medallions or Spiritual Stones as well as Bottom of the Well, Ice Cavern, Gerudo Training Grounds, and Ganon's Castle. The major items are any item usable with a c-button that is not simply a form of ammo (Bombchus are major only if "Bombchus are considered in logic" is on), songs, Mirror Shield, swords, tunics, boots, Double Defense, Magic Meter/Double Magic, Bullet Bags, Quivers, Bomb Bags, Strength Upgrades, Scales, Wallets, and the Stone of Agony. To be clear, this means that rupees, ammo, Deku Stick and Deku Nut ammo expansions, Pieces of Heart, Heart Containers, Gold Skulltula Tokens, Maps, Compasses, -Small Keys, Boss Keys, Deku Shields, Hylian Shields, and Ice Traps are not considered major items. +Small Keys, Boss Keys, Deku Shields, Hylian Shields, and Ice Traps are not considered major items. However, Small Keys and Boss Keys are considered major +items if the appropriate "keysanity" settings are used. Note that unlike with the distribution of dungeon specific items like keys, this flag does consider +the hands of the Desert Colossus as Spirit Temple locations, and to mirror the original game, Spirit Temple will get two items instead of just one. ## Dungeon Quest @@ -322,7 +331,7 @@ This flag adds the Kokiri Sword to the shuffle. With it off, the Kokiri Sword wi This flag adds the Weird Egg given by child Malon to the shuffle. With this flag on, child Malon will give a random item and the Weird Egg must be located to do the events at Hyrule Castle with Zelda and Impa. These events block interacting with Talon and Malon at Lon Lon Ranch as a child as well as Saria in -Sacred Forest Meadow. +Sacred Forest Meadow and the Happy Mask sidequest. ## Shuffle Ocarinas @@ -349,8 +358,10 @@ the player starts the game with the Gerudo Card and this setting is voided. This flag makes every Deku Scrub Salesman in the world sell a random item instead of only the three that sold permanent upgrades in the original game. Using this flag adds the various low tier items the other scrubs sold to the item pool for the most part; the potion refills are replaced with Recovery Hearts for Red Potions and blue rupees for Green Potions. For each Deku Scrub that sold arrows/seeds depending on age, there will be a 75% chance of -adding a 30 arrow item and a 25% chance of adding a 30 seed item to the pool. While the text will not update, if this flag is used the price of every -Deku Scrub Salesman's item will be reduced to 10 rupees, and once the purchase is made that particular Deku Scrub Salesman will disappear forever. +adding a 30 arrow item and a 25% chance of adding a 30 seed item to the pool. If this is set, once a Deku Scrub Salesman is used, it will disappear +from the world forever. The individual settings in the dropdown can be used to set the price of each Deku Scrub Salesman to 10 rupees, leave the prices +as what they were in the original game, or set each price to a random value from 0 to 99 rupees. In all cases, the text for the Deku Scrub Salesmen +will not update. ## Shopsanity @@ -390,14 +401,14 @@ If Small Keys or Boss Keys are prevented from existing, this will also remove al are left in their original dungeons and the Fire Temple is not in the form of Master Quest, the locked door in the first room that leads to the normal location of the Boss Key will be removed. -## Maps and Compasses give information +## Maps and Compasses Give Information This setting, only available if Maps and Compasses are spread across the world, disables the pedestal in the Temple of Time from giving information about the location of the Medallions and Spiritual Stones. Instead, the Compass from each of the eight eligible dungeons will tell the player which dungeon has which reward. If the dungeon quest is set to mixed, each of the ten Maps will tell the player whether any given dungeon is in the vanilla or Master Quest form. The Compasses from Bottom of the Well and Ice Cavern do not give any information. -## Remove Ganon's Door Boss locked +## Remove Ganon's Door Boss Lock This setting removes the Boss Key lock from Ganon's Tower. This removes the need to locate the Ganon's Tower Boss Key to finish the game. @@ -408,7 +419,7 @@ found in dungeons for a more mild version of this setting. # Detailed Logic -## Maximum expected Skulltula tokens +## Maximum Expected Skulltula Tokens This setting can be used to reduce the number of Gold Skulltula Tokens that may be required to finish the game. @@ -431,11 +442,11 @@ on Bizhawk. This setting will guarantee that the reward from adult fishing is not an important item. This is mostly recommended if the player simply must play on Bizhawk. -## No Skull Mask reward +## No Skull Mask Reward This setting will guarantee that the item obtained from showing the Skull Mask in the Deku Theater is not an important item. -## No Mask of Truth reward +## No Mask of Truth Reward This setting will guarantee that the item obtained from showing the Mask of Truth in the Deku Theater is not an important item. @@ -448,20 +459,24 @@ important item. This setting will guarantee that the item obtained from winning the ocarina memory game in the Lost Woods is not an important item. -## No Racing Dampe a second time +## No Racing Dampe a Second Time This setting will guarantee that the item obtained from finishing with a sub-minute time in the second Dampe race is not an important item. -## No Biggoron reward +## No Biggoron Reward This setting will guarantee that the item obtained from showing the Claim Check to Biggoron is not an important item. -## Adult Trade sequence +## Adult Trade Sequence This pair of settings can be used to specify the earliest and latest items that can be allowed to randomly show up in the general item pool. Only one item will be in the item pool regardless of this setting; this can merely be used to limit the range of possibilities. -## Require minor tricks +## Enable All Tricks + +This is a button to turn on all of the trick related flags. + +## Various Minor Tricks This setting allows a huge number of minor tricks to be allowed by the logic. Here is a complete list: @@ -500,27 +515,27 @@ rooftop with no items. This allows the logic to consider defeating the Deadhand in Bottom of the Well with Deku Sticks. This is not hard with use of the power crouch stab glitch, but consistently landing actual jump slashes on his unusual hitbox is pretty difficult and using normal slashes consumes 9 Deku Sticks. -## Dodongo's Cavern spike trap room jump without Hover Boots +## Dodongo's Cavern Spike Trap Room Jump without Hover Boots This allows the logic to consider that the adult can make a particularly useful jump in Dodongo's Cavern to reach the area with the Bomb Bag chest early. Due to the precision of the jump, normally the logic expects Hover Boots to complete this path. -## Windmill PoH as adult with nothing +## Windmill PoH as Adult with Nothing This allows the logic to consider a jump the adult can make in the windmill to reach the Piece of Heart within with no items. The jump requires leaping from an object on which it is not obvious Link is allowed to stand and has counterintuitive timing so it is not in standard logic. -## Crater's bean PoH with Hover Boots +## Crater's Bean PoH with Hover Boots This allows the logic to consider using Hover Boots to reach the Piece of Heart atop the volcano in Death Mountain Crater. The path involves walking up a very steep slope that is not visibly walkable so it is not in normal logic. -## Zora's Domain entry with Cucco +## Zora's Domain Entry with Cucco This allows the logic to consider using a Cucco on Zora River to enter Zora's Domain as a child without playing Zelda's Lullaby. It requires slipping behind the waterfall trickily from the left side. -## Zora's Domain entry with Hover Boots +## Zora's Domain Entry with Hover Boots This allows the logic to consider this similar trick to the above except as an adult with Hover Boots. This is actually a lot more difficult even though it can be done from either side of the waterfall. @@ -536,7 +551,7 @@ requirements are removed completely except to reach the chest at the bottom of t This setting alters the expectations about interacting with invisible objects without the Lens of Truth. -### Required everywhere +### Required Everywhere This setting requires the Lens of Truth to interact with any invisible object except for whatever was required in the original game to obtain the Lens of Truth. @@ -578,17 +593,17 @@ can expect using them if the required number is sufficiently low. This flag causes Pierre the Scarecrow to be available to summon for the adult from the beginning of the game. The box below can be used to specify the particular desired Scarecrow's Song. This song must be exactly eight notes long and must contain at least two different notes. -## Randomize ocarina song notes +## Randomize Ocarina Song Notes This flag randomizes the particular notes in the 12 standard ocarina songs. This can predictably be pretty obnoxious. In general, the patterns chosen for the top row songs will be simpler than the patterns chosen for warp songs. -## Chest size matches contents +## Chest Size Matches Contents This flag causes keys, Ice Traps, and items flagged as progression items to appear in large treasure chests while other items will be in small treasure chests. This means that players can choose to skip small treasure chests since they will only contain handy, not essential, items. -## Clearer hints +## Clearer Hints This flag changes the text of Gossip Stone hints to be overwhelmingly explicit. This is helpful for players who do not have English as their first language, but the hints will be less "fun" and less like the sorts of things that would be said in the original game. @@ -621,7 +636,7 @@ requires being a child which is another big downside. There is also an option fo This setting allows all the text in the game to be shuffled. This is mostly for comedy and is not intended to be a serious gameplay option. -### No text shuffled +### No Text Shuffled Leave the text alone. @@ -629,7 +644,7 @@ Leave the text alone. Shuffle all text other than the useful text giving the player information. -### All text shuffled +### All Text Shuffled Shuffle all text even to the player's mechanical disadvantage. @@ -643,11 +658,16 @@ Leave the item pool alone. ### Hard -Heart Containers, Double Defense, and the second Magic Upgrade are replaced with junk items. +Heart Containers, Double Defense, and the second Magic Upgrade are replaced with junk items. One each +of the ammo expansions (Quiver, Bullet Bag, Bomb Bag Deku Stick Capacity, Deku Nut Capacity) will also +be replaced with junk items, and all Bombchu pick-ups other than three will similarly be replaced with +junk. ### Very Hard In addition to the items from Hard, Pieces of Heart and Nayru's Love are also replaced with junk items. +One more of each ammo expansion is removed resulting in zero extra ammo capacity for those item types, +and only one Bombchu pick-up can be found. ### OHKO @@ -675,8 +695,9 @@ This determines the color of Link's default Kokiri Tunic. This only affects the ### Most Colors -Simply get the particular color selected. Available colors are Kokiri Green, Goron Red, Zora Blue, Black, White, Purple, Yellow, Orange, Pink, Gray, -Brown, Gold, Silver, Beige, Teal, Royal Blue, Sonic Blue, Blood Red, Blood Orange, NES Green, Dark Green, and Lumen. +Simply get the particular color selected. Available colors are Kokiri Green, Goron Red, Zora Blue, Black, White, Azure Blue, Vivid Cyan, Light Red, +Fuchsia, Purple, MM Purple, Twitch Purple, Purple Heart, Persian Rose, Dirty Yellow, Blush Pink, Hot Pink, Rose Pink, Orange, Gray, Gold, Silver, +Beige, Teal, Blood Red, Blood Orange, Royal Blue, Sonic Blue, NES Green, Dark Green, and Lumen. ### Random Choice @@ -707,8 +728,9 @@ more pleasant to listen to while a few are designed to be more amusing. ### Particular Sounds -Set this particular sound for the heart beep. Available choices are Default, Softer Beep, Rupee, Timer, Tamborine, Recovery Heart, Carrot Refill, -Navi - Hey!, Zelda - Gasp, Cluck, and Mweep!. The last of these is indeed the sound a king might make when moving... very slowly. +Set this particular sound for the heart beep. Available choices are Default, Softer Beep, Rupee, Timer, Tambourine, Recovery Heart, Carrot Refill, +Navi - Hey!, Zelda - Gasp, Cluck, Mweep!, Iron Boots, Hammer, Sword Bounce, Bow, Gallop, Drawbridge, Switch, Bomb Bounce, Bark, Ribbit, Broken Pot, +Business Scrub, Guay, and Bongo Bongo. Indeed, one of these is the sound a king might make when moving... very slowly. ### Random Choice @@ -1188,61 +1210,61 @@ Set the default Z-targeting setting. It can still be changed in the game's optio Choose whether the game's background music will be left alone, disabled, or shuffled randomly. (default: normal) ``` ---kokiricolor [{'Random Choice', 'Completely Random', 'Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Purple', 'Yellow', 'Orange', 'Pink', 'Gray', 'Brown', 'Gold', 'Silver', 'Beige', 'Teal', 'Royal Blue', 'Sonic Blue', 'Blood Red', 'Blood Orange', 'NES Green', 'Dark Green', 'Lumen'}] +--kokiricolor [{'Random Choice', 'Completely Random', 'Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Azure Blue', 'Vivid Cyan', 'Light Red', 'Fuchsia', 'Purple', 'MM Purple', 'Twitch Purple', 'Purple Heart', 'Persian Rose', 'Dirty Yellow', 'Blush Pink', 'Hot Pink', 'Rose Pink', 'Orange', 'Gray', 'Gold', 'Silver', 'Beige', 'Teal', 'Blood Red', 'Blood Orange', 'Royal Blue', 'Sonic Blue', 'NES Green', 'Dark Green', 'Lumen'}] ``` -Select the color of Link's Kokiri Tunic. (default: Kokiri Green) +Select the color of Link's Kokiri Tunic. Can also set Custom (#RRGGBB) using hexadecimal RGB values to set a custom color. (default: Kokiri Green) ``` ---goroncolor [{'Random Choice', 'Completely Random', 'Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Purple', 'Yellow', 'Orange', 'Pink', 'Gray', 'Brown', 'Gold', 'Silver', 'Beige', 'Teal', 'Royal Blue', 'Sonic Blue', 'Blood Red', 'Blood Orange', 'NES Green', 'Dark Green', 'Lumen'}] +--goroncolor [{'Random Choice', 'Completely Random', 'Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Azure Blue', 'Vivid Cyan', 'Light Red', 'Fuchsia', 'Purple', 'MM Purple', 'Twitch Purple', 'Purple Heart', 'Persian Rose', 'Dirty Yellow', 'Blush Pink', 'Hot Pink', 'Rose Pink', 'Orange', 'Gray', 'Gold', 'Silver', 'Beige', 'Teal', 'Blood Red', 'Blood Orange', 'Royal Blue', 'Sonic Blue', 'NES Green', 'Dark Green', 'Lumen'}] ``` -Select the color of Link's Goron Tunic. (default: Goron Red) +Select the color of Link's Goron Tunic. Can also set Custom (#RRGGBB) using hexadecimal RGB values to set a custom color. (default: Goron Red) ``` ---zoracolor [{'Random Choice', 'Completely Random', 'Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Purple', 'Yellow', 'Orange', 'Pink', 'Gray', 'Brown', 'Gold', 'Silver', 'Beige', 'Teal', 'Royal Blue', 'Sonic Blue', 'Blood Red', 'Blood Orange', 'NES Green', 'Dark Green', 'Lumen'}] +--zoracolor [{'Random Choice', 'Completely Random', 'Kokiri Green', 'Goron Red', 'Zora Blue', 'Black', 'White', 'Azure Blue', 'Vivid Cyan', 'Light Red', 'Fuchsia', 'Purple', 'MM Purple', 'Twitch Purple', 'Purple Heart', 'Persian Rose', 'Dirty Yellow', 'Blush Pink', 'Hot Pink', 'Rose Pink', 'Orange', 'Gray', 'Gold', 'Silver', 'Beige', 'Teal', 'Blood Red', 'Blood Orange', 'Royal Blue', 'Sonic Blue', 'NES Green', 'Dark Green', 'Lumen'}] ``` -Select the color of Link's Zora Tunic. (default: Zora Blue) +Select the color of Link's Zora Tunic. Can also set Custom (#RRGGBB) using hexadecimal RGB values to set a custom color. (default: Zora Blue) ``` --navicolordefault [{'Random Choice', 'Completely Random', 'Gold', 'White', 'Green', 'Light Blue', 'Yellow', 'Red', 'Magenta', 'Black', 'Tatl', 'Tael', 'Fi', 'Ciela', 'Epona', 'Ezlo', 'King of Red Lions', 'Linebeck', 'Loftwing', 'Midna', 'Phantom Zelda'}] ``` -Select the color of Navi in idle. (default: White) +Select the color of Navi in idle. Can also set Custom (#RRGGBB) using hexadecimal RGB values to set a custom color. (default: White) ``` --navicolorenemy [{'Random Choice', 'Completely Random', 'Gold', 'White', 'Green', 'Light Blue', 'Yellow', 'Red', 'Magenta', 'Black', 'Tatl', 'Tael', 'Fi', 'Ciela', 'Epona', 'Ezlo', 'King of Red Lions', 'Linebeck', 'Loftwing', 'Midna', 'Phantom Zelda'}] ``` -Select the color of Navi when she is targeting an enemy. (default: Yellow) +Select the color of Navi when she is targeting an enemy. Can also set Custom (#RRGGBB) using hexadecimal RGB values to set a custom color. (default: Yellow) ``` --navicolornpc [{'Random Choice', 'Completely Random', 'Gold', 'White', 'Green', 'Light Blue', 'Yellow', 'Red', 'Magenta', 'Black', 'Tatl', 'Tael', 'Fi', 'Ciela', 'Epona', 'Ezlo', 'King of Red Lions', 'Linebeck', 'Loftwing', 'Midna', 'Phantom Zelda'}] ``` -Select the color of Navi when she is targeting an NPC. (default: Light Blue) +Select the color of Navi when she is targeting an NPC. Can also set Custom (#RRGGBB) using hexadecimal RGB values to set a custom color. (default: Light Blue) ``` --navicolorprop [{'Random Choice', 'Completely Random', 'Gold', 'White', 'Green', 'Light Blue', 'Yellow', 'Red', 'Magenta', 'Black', 'Tatl', 'Tael', 'Fi', 'Ciela', 'Epona', 'Ezlo', 'King of Red Lions', 'Linebeck', 'Loftwing', 'Midna', 'Phantom Zelda'}] ``` -Select the color of Navi when she is targeting a prop. (default: Green) +Select the color of Navi when she is targeting a prop. Can also set Custom (#RRGGBB) using hexadecimal RGB values to set a custom color. (default: Green) ``` ---navisfxoverworld [{Default,Notification,Rupee,Timer,Tamborine,Recovery Heart,Carrot Refill,Navi - Hey!,Navi - Random,Zelda - Gasp,Cluck,Mweep!,Random,None}] +--navisfxoverworld [{'Default', 'Random Choice', 'None', 'Cluck', 'Rupee', 'Softer Beep', 'Recovery Heart', 'Timer', 'Low Health', 'Notification', 'Tambourine', 'Carrot Refill', 'Zelda - Gasp', 'Mweep!', 'Ice Break', 'Explosion', 'Crate', 'Great Fairy', 'Moo', 'Bark', 'Ribbit', 'Broken Pot', 'Cockadoodledoo', 'Epona', 'Gold Skulltula', 'Redead', 'Poe', 'Ruto', 'Howl', 'Business Scrub', 'Guay', "H'lo!"}] ``` Select the sound effect that plays when Navi wishes to speak with the player. (default: Default) ``` ---navisfxenemytarget [{Default,Notification,Rupee,Timer,Tamborine,Recovery Heart,Carrot Refill,Navi - Hey!,Navi - Random,Zelda - Gasp,Cluck,Mweep!,Random,None}] +--navisfxenemytarget [{'Default', 'Random Choice', 'None', 'Cluck', 'Rupee', 'Softer Beep', 'Recovery Heart', 'Timer', 'Low Health', 'Notification', 'Tambourine', 'Carrot Refill', 'Zelda - Gasp', 'Mweep!', 'Ice Break', 'Explosion', 'Crate', 'Great Fairy', 'Moo', 'Bark', 'Ribbit', 'Broken Pot', 'Cockadoodledoo', 'Epona', 'Gold Skulltula', 'Redead', 'Poe', 'Ruto', 'Howl', 'Business Scrub', 'Guay', "H'lo!"}] ``` Select the sound effect that plays when Navi targets an enemy. (default: Default) ``` ---healthSFX [{'Default', 'Softer Beep', 'Rupee', 'Timer', 'Tamborine', 'Recovery Heart', 'Carrot Refill', 'Navi - Hey!', 'Zelda - Gasp', 'Cluck', 'Mweep!', 'Random', 'None'}] +--healthSFX [{'Default', 'Random Choice', 'None', 'Cluck', 'Softer Beep', 'Recovery Heart', 'Timer', 'Notification', 'Tambourine', 'Carrot Refill', 'Navi - Random', 'Navi - Hey!', 'Zelda - Gasp', 'Mweep!', 'Iron Boots', 'Hammer', 'Sword Bounce', 'Bow', 'Gallop', 'Drawbridge', 'Switch', 'Bomb Bounce', 'Bark', 'Ribbit', 'Broken Pot', 'Business Scrub', 'Guay', 'Bongo Bongo'}] ``` Select the sound effect that loops at low health. (default: Default) From 446dccf761a2529d4383b5e68b84cf8ed496e51b Mon Sep 17 00:00:00 2001 From: AmazingAmpharos Date: Tue, 16 Oct 2018 16:39:43 -0500 Subject: [PATCH 729/755] Make Readme reflect renamed flag What is the difference between a minor trick and an advanced trick? --- README.html | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.html b/README.html index 2b844403d..85905f98d 100644 --- a/README.html +++ b/README.html @@ -147,7 +147,7 @@

Adult Trade Sequence

This pair of settings can be used to specify the earliest and latest items that can be allowed to randomly show up in the general item pool. Only one item will be in the item pool regardless of this setting; this can merely be used to limit the range of possibilities.

Enable All Tricks

This is a button to turn on all of the trick related flags.

-

Various Minor Tricks

+

Various Advanced Tricks

This setting allows a huge number of minor tricks to be allowed by the logic. Here is a complete list:

-A precise jumpslash with either a Deku Stick or the Kokiri Sword can be used to reach a Gold Skulltula on some vines in standad Deku Tree.
-The Bow can be used to knock down the stairs in Dodongo's Cavern with two well timed shots.
-The vines in Forest Temple leading to where the well drain switch is in the standard form can be barely reached with the standard Hookshot.
-The well in Forest Temple can be crossed with just Hookshot by shooting as low as possible on the vines from the far side and swimming under the ceiling. This is possible in both versions but can only be required in Forest Temple MQ.
-A Bombchu from the ground level can be used to hit the switch to bypass the block pushing puzzle in Forest Temple MQ.
-A rusted switch under a Song of Time block in the standard Fire Temple can be hit by using Hammer into the block.
-The location with the Boss Key chest in Fire Temple MQ can be reached without the Bow with very particular use of Din's Fire.
-The upper levels of the old boulder maze in Fire Temple MQ can be reached without explosives by using the Hammer through a wall.
-In the standard Spirit Temple, the bridge on child side can be lowered with a carefully timed Bombchu.
-The frozen switch in Spirit Temple MQ can be hit without a fire source by using the Bow and Song of Time very cleverly.
-The chest in the basement of the standard Bottom of the Well can be reached with only a Strength Upgrade by using a jump slash with a lit Deku Stick to access the bomb flowers in the basement.
-The silver rupees on the left side of Gerudo Training Grounds MQ can be collected with just Hookshot with a somewhat particular jump slash.
-The first room of the Spirit Trail in Ganon's Castle MQ can be cleared without the Bow by using a Hammer jump slash to hit the rusted switch through the thrones.
-The Gold Skulltula in adult Kokiri Forest can be reached without the Hookshot by using Hover Boots off one of the roots.
-The child can reach the chest on Death Mountain trail with just the Goron Bracelet by backwalking with the Bomb Flower intended to open Dodongo's Cavern and throwing the Bomb Flower at the wall very quickly.
-Gerudo Fortress can be cleared without any items other than those needed for access. The logic normally guarantees one of the Bow, Hookshot, or Hover Boots to help navigate the "kitchen".

Using this setting will also pre-set all of the lower logic flags to a reasonable configuration to match the trick level. These can then be edited as the player desires if the given configuration isn't desired.

diff --git a/README.md b/README.md index ecf2fa6a1..e2149c385 100644 --- a/README.md +++ b/README.md @@ -476,7 +476,7 @@ Only one item will be in the item pool regardless of this setting; this can mere This is a button to turn on all of the trick related flags. -## Various Minor Tricks +## Various Advanced Tricks This setting allows a huge number of minor tricks to be allowed by the logic. Here is a complete list: From a44912f1c3b22af3088aabd39649fbc7e59f20e0 Mon Sep 17 00:00:00 2001 From: AmazingAmpharos Date: Tue, 16 Oct 2018 16:49:52 -0500 Subject: [PATCH 730/755] Typo fix --- README.html | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.html b/README.html index 85905f98d..2bf13e7ca 100644 --- a/README.html +++ b/README.html @@ -22,7 +22,7 @@

General Description

One last detail is that the menu is now more like the Majora's Mask menu in that the player can move the cursor through empty spaces. This fixes a major problem from the original game in that certain combinations of items would create menu shapes that would be impossible to fully menu through. Unfortunately, as of this 3.0 release, this functionality does not apply to the "equipment" screen which can rarely create some tricky situations. Usually these can be solved by purchasing a Deku Shield and a Hylian Shield.

Quirks to Know

While all the details of gameplay can't be detailed here, I want to inform you of a few non-obvious game sequences that are likely to get you stuck and one little glitch we can do nothing about.

-

-The condition to open the Door of Time is merely playing the Song of Time; the Spiritual Stones are not required. If you enter the Temple of Time via the Prelude of Light, playing the Song of Time will create a glitchy cutscene and will not open the door (but you're safe to exit and re-enter and open it properly).
-The condition to spawn the Ocarina of Time and learn that song is the three Spiritual Stones. The condition to learn a song from Sheik in the Temple of Time is possessing the Forest Medallion. The condition to learn a song from Sheik in Kakariko is possessing Forest, Fire, and Water Medallions.
-The running man in Hyrule Field only spawns if you have all three Spiritual Stones.
-Skull Kid will only buy the Skull Mask if you have played Saria's Song for him.
-The center of Death Mountain Crater as an adult can be reached from the summit as an adult by going around to the left with Hover Boots or by jumping down to the right and using a combination of the Longshot and Scarecrow's Song. This allows access to Sheik and the Fire Temple without a Bomb Bag.
-A sword must be equipped to play the fishing minigame. A Slingshot is not required for child target shooting, but the adult does need the Bow to receive the true prize.
-Other than the fishing minigame, the child can do anything that would seem to require the sword with Deku Sticks. You can buy as many as you want in the Kokiri Forest shop.
-In the randomizer, possessing the Bomb Bag is the requirement to get bomb drops, buy bombs or Bombchus, or play Bombchu Bowling. If the setting "Bombchus Are Consider in Logic" is used, finding any pack of Bombchus allows purchasing Bombchus and playing Bombchu Bowling while possessing a Bomb Bag allows the purchase of bombs.
-Only the Hookshot, not the Longshot, is needed to do everything on the rooftops of Kakariko.
-Grottos can be opened with either Bombs or the Hammer.
-The boulder maze in Goron City can be solved with the Hammer or partially with Bombs as is obvious, but less obvious is that it can be fully solved with Silver Gauntlets.
-The large colored blocks only encountered by the adult require Goron Bracelet to push.
-In a few places, out of sight Song of Time blocks can be summoned. The lava room in Gerudo Training Grounds, the beginning of Ganon's Castle Shadow Trial, and the last hallway with a caged Goron in Fire Temple are the main cases. -Adult Link can fully clear Dodongo's Cavern. He can even skip the first section by virtue of being tall.
-In the Forest Temple, you can reach the room with the Floormaster (vanilla) or Redead (MQ) early by using Hover Boots in the block push room.
-In the Fire Temple, you can reach the Boss Key door from the beginning with Hover Boots.
-In the Water Temple, you can from the start with the water down jump to the middle platform level, very carefully aim the Hookshot to the target above, and pull yourself to the highest level of the central platform. Then a very well spaced rolling jump can reach the water changing station to raise the water to the highest level. If you make poor key choices in Water Temple, this may be what you need to do to untangle the situation.
-In the Water Temple, Hover Boots can be used to reach the vanilla Boss Key chest without going through the room that requires Bombs and block pushing. Hover Boots can also be used in this temple to avoid the Longshot requirement for the middle level chest that requires the Bow.
-In the Water Temple, Farore's Wind can be placed in the central pillar and then the water can be raised to the highest level in order to reach the Gold Skulltula without the Longshot.
-In the Shadow Temple, you can avoid the need for the Longshot in the room with the invisible spikes by backflipping onto the chest for extra height.
-In the Shadow Temple, you can Hookshot the ladder to avoid pushing the block to get on the boat.
-In the Shadow Temple, a combination of the scarecrow and the Longshot can be used to reach Bongo Bongo without needing the Bow.
-In the Spirit Temple, the child can obtain the vanilla Map chest with Deku Sticks. No fire magic is needed.
-In the Spirit Temple, you can collect the silver rupees without Hover Boots by jumping directly onto the rolling boulder or with a jump slash.
-In the Spirit Temple, you can use the Longshot to cross from the hand with the Mirror Shield in vanilla to the other hand.
-In Ganon's Castle Spirit Trial, the web can be burned with a precise shot through the torch by a normal arrow. Fire Arrows are not required.
-Like Likes now only eat shields and not tunics.
-Several Gold Skulltula Tokens can be reached by clever/precise uses of jump slashes and spin attacks (possibly magic spin attacks).
-This is not a randomizer exclusive mechanic, but getting the ability to summon Pierre the Scarecrow requires playing an eight note song for Bonooru the Scarecrow as a child first and then the exact same song for him again as an adult.

+

-The condition to open the Door of Time is merely playing the Song of Time; the Spiritual Stones are not required. If you enter the Temple of Time via the Prelude of Light, playing the Song of Time will create a glitchy cutscene and will not open the door (but you're safe to exit and re-enter and open it properly).
-The condition to spawn the Ocarina of Time and learn that song is the three Spiritual Stones. The condition to learn a song from Sheik in the Temple of Time is possessing the Forest Medallion. The condition to learn a song from Sheik in Kakariko is possessing Forest, Fire, and Water Medallions.
-The running man in Hyrule Field only spawns if you have all three Spiritual Stones.
-Skull Kid will only buy the Skull Mask if you have played Saria's Song for him.
-The center of Death Mountain Crater as an adult can be reached from the summit as an adult by going around to the left with Hover Boots or by jumping down to the right and using a combination of the Longshot and Scarecrow's Song. This allows access to Sheik and the Fire Temple without a Bomb Bag.
-A sword must be equipped to play the fishing minigame. A Slingshot is not required for child target shooting, but the adult does need the Bow to receive the true prize.
-Other than the fishing minigame, the child can do anything that would seem to require the sword with Deku Sticks. You can buy as many as you want in the Kokiri Forest shop.
-In the randomizer, possessing the Bomb Bag is the requirement to get bomb drops, buy bombs or Bombchus, or play Bombchu Bowling. If the setting "Bombchus Are Considered in Logic" is used, finding any pack of Bombchus allows purchasing Bombchus and playing Bombchu Bowling while possessing a Bomb Bag allows the purchase of bombs.
-Only the Hookshot, not the Longshot, is needed to do everything on the rooftops of Kakariko.
-Grottos can be opened with either Bombs or the Hammer.
-The boulder maze in Goron City can be solved with the Hammer or partially with Bombs as is obvious, but less obvious is that it can be fully solved with Silver Gauntlets.
-The large colored blocks only encountered by the adult require Goron Bracelet to push.
-In a few places, out of sight Song of Time blocks can be summoned. The lava room in Gerudo Training Grounds, the beginning of Ganon's Castle Shadow Trial, and the last hallway with a caged Goron in Fire Temple are the main cases. -Adult Link can fully clear Dodongo's Cavern. He can even skip the first section by virtue of being tall.
-In the Forest Temple, you can reach the room with the Floormaster (vanilla) or Redead (MQ) early by using Hover Boots in the block push room.
-In the Fire Temple, you can reach the Boss Key door from the beginning with Hover Boots.
-In the Water Temple, you can from the start with the water down jump to the middle platform level, very carefully aim the Hookshot to the target above, and pull yourself to the highest level of the central platform. Then a very well spaced rolling jump can reach the water changing station to raise the water to the highest level. If you make poor key choices in Water Temple, this may be what you need to do to untangle the situation.
-In the Water Temple, Hover Boots can be used to reach the vanilla Boss Key chest without going through the room that requires Bombs and block pushing. Hover Boots can also be used in this temple to avoid the Longshot requirement for the middle level chest that requires the Bow.
-In the Water Temple, Farore's Wind can be placed in the central pillar and then the water can be raised to the highest level in order to reach the Gold Skulltula without the Longshot.
-In the Shadow Temple, you can avoid the need for the Longshot in the room with the invisible spikes by backflipping onto the chest for extra height.
-In the Shadow Temple, you can Hookshot the ladder to avoid pushing the block to get on the boat.
-In the Shadow Temple, a combination of the scarecrow and the Longshot can be used to reach Bongo Bongo without needing the Bow.
-In the Spirit Temple, the child can obtain the vanilla Map chest with Deku Sticks. No fire magic is needed.
-In the Spirit Temple, you can collect the silver rupees without Hover Boots by jumping directly onto the rolling boulder or with a jump slash.
-In the Spirit Temple, you can use the Longshot to cross from the hand with the Mirror Shield in vanilla to the other hand.
-In Ganon's Castle Spirit Trial, the web can be burned with a precise shot through the torch by a normal arrow. Fire Arrows are not required.
-Like Likes now only eat shields and not tunics.
-Several Gold Skulltula Tokens can be reached by clever/precise uses of jump slashes and spin attacks (possibly magic spin attacks).
-This is not a randomizer exclusive mechanic, but getting the ability to summon Pierre the Scarecrow requires playing an eight note song for Bonooru the Scarecrow as a child first and then the exact same song for him again as an adult.

Known issues

Sadly for this 3.0 release a few known issues exist. These will hopefully be addressed in future versions.

-The fishing minigame sometimes refuses to allow you to catch fish when playing specifically on Bizhawk. Save and quit (NOT savestate) and return to fix the issue.
-Draining the Bottom of the Well with Song of Storms sometimes crashes on specific configurations of Project 64. We aren't sure of the exact story, but this bug is easily avoided by playing on a different emulator and probably also avoidable by changing your settings and maybe graphics plug-in.
-Executing the collection delay glitch on various NPCs may have unpredictable and undesirable consequences. In particular this can be devastating with Biggoron; it is strongly suggested the player save before turning in the Claim Check.
-Saving and quitting on the very first frame after becomming an adult when you would trigger the Light Arrow cutscene can have undesired consequences. Just don't do that.
-The equipment screen still cannot be easily navigated with all item configurations which can be especially problematic if the Biggoron Sword is found very early or if shields cannot be easily purchased thanks to shopsanity. Getting the Master Sword and buying as many shields as you can is a good way to mitigate these issues.
-This randomizer is based on the 1.0 version of Ocarina of Time so some of its specific bugs remain. Some of these like "empty bomb" can be disadvantagous to the player.

diff --git a/README.md b/README.md index e2149c385..687aa4940 100644 --- a/README.md +++ b/README.md @@ -115,7 +115,7 @@ possessing the Forest Medallion. The condition to learn a song from Sheik in Kak and using a combination of the Longshot and Scarecrow's Song. This allows access to Sheik and the Fire Temple without a Bomb Bag. -A sword must be equipped to play the fishing minigame. A Slingshot is not required for child target shooting, but the adult does need the Bow to receive the true prize. -Other than the fishing minigame, the child can do anything that would seem to require the sword with Deku Sticks. You can buy as many as you want in the Kokiri Forest shop. --In the randomizer, possessing the Bomb Bag is the requirement to get bomb drops, buy bombs or Bombchus, or play Bombchu Bowling. If the setting "Bombchus Are Consider in +-In the randomizer, possessing the Bomb Bag is the requirement to get bomb drops, buy bombs or Bombchus, or play Bombchu Bowling. If the setting "Bombchus Are Considered in Logic" is used, finding any pack of Bombchus allows purchasing Bombchus and playing Bombchu Bowling while possessing a Bomb Bag allows the purchase of bombs. -Only the Hookshot, not the Longshot, is needed to do everything on the rooftops of Kakariko. -Grottos can be opened with either Bombs or the Hammer. From 759730ef092a2b8081ce129cdae398d1d444473f Mon Sep 17 00:00:00 2001 From: AmazingAmpharos Date: Tue, 16 Oct 2018 18:07:13 -0500 Subject: [PATCH 731/755] Add another line to the readme --- README.html | 2 +- README.md | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/README.html b/README.html index 2bf13e7ca..012160305 100644 --- a/README.html +++ b/README.html @@ -2,7 +2,7 @@

OoTRandomizer

This is a randomizer for The Legend of Zelda: Ocarina of Time for the Nintendo 64.

Installation

It is strongly suggested users get the latest release from here: https://github.com/AmazingAmpharos/OoT-Randomizer/releases . Simply download the .msi installer and run it. We support Windows, Mac, and Linux machines.

-

If you have an incompatible OS or you simply wish to run the script raw, clone this repository and either run '''Gui.py''' for a graphical interface or '''OoTRandomizer.py''' for the command line version. Both require Python 3.5+.

+

If you have an incompatible OS or you simply wish to run the script raw, clone this repository and either run '''Gui.py''' for a graphical interface or '''OoTRandomizer.py''' for the command line version. Both require Python 3.5+. This will be fully featured, but the seeds you generate will have different random factors than the bundled release.

This randomizer requires The Legend of Zelda: Ocarina of Time version 1.0 NTSC-US version. This randomizer includes an in-built decompressor, but if the user wishes a pre-decompressed ROM may be supplied as input. Please be sure your input ROM filename is either a .n64 or .z64 file. For users playing via any means other than on real N64 hardware, the use of the "Compress patched ROM" flag is strongly encouraged as uncompressed ROMs are impossible to inject for the Virtual Console and have random crashing problems on all emulators.

For general use, the recommended emulator is RetroArch; it has been shown to work with minimal issues. Bizhawk and Mupen64plus are generally good choices too. If you want to play on Project 64 for whatever reason, you can but you will need to set the rando to use 8 MB of RAM and will want to play with the cheat code 8109C58A 0000 to partially fix Project 64's tragically poor handling of OoT's pause menu. Project 64 also has one particular crash that only happens for some unknown settings configurations; we cannot support this. I cannot emphasize enough that it is a discouraged emulator to use.

General Description

diff --git a/README.md b/README.md index 687aa4940..0f62d6396 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,8 @@ It is strongly suggested users get the latest release from here: https://github. Simply download the .msi installer and run it. We support Windows, Mac, and Linux machines. If you have an incompatible OS or you simply wish to run the script raw, clone this repository and either run '''Gui.py''' for a -graphical interface or '''OoTRandomizer.py''' for the command line version. Both require Python 3.5+. +graphical interface or '''OoTRandomizer.py''' for the command line version. Both require Python 3.5+. This will be fully featured, +but the seeds you generate will have different random factors than the bundled release. This randomizer requires The Legend of Zelda: Ocarina of Time version 1.0 NTSC-US version. This randomizer includes an in-built decompressor, but if the user wishes a pre-decompressed ROM may be supplied as input. Please be sure your input ROM filename is either a .n64 or .z64 file. For users From b5f6cc3422d3faf98195b1b3333c2b81147c747d Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Wed, 17 Oct 2018 06:44:12 -0300 Subject: [PATCH 732/755] Logic Fixes 1. Logic trick for skipping Song of Time in the Fire Temple actually still needs song of time unless you have either Hover Boots or explosives. 2. Added Hammer as a means of dealing with the walltula before climbing the Spirit Temple Wall of Death. 3. OHKO logic for the Spirit Temple GS Bomb for Light Room. Absurdly complicated logic for a rule that didn't required any back before shopsanity and ohko. I'm pretty sure this is the new longest rule in the file. --- Rules.py | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/Rules.py b/Rules.py index 458adec9a..77e6d7c4f 100644 --- a/Rules.py +++ b/Rules.py @@ -1164,7 +1164,9 @@ def dung_rules_fit0(world): set_rule(world.get_location('Fire Temple Compass Chest'), lambda state: state.has('Small Key (Fire Temple)', 7)) set_rule( world.get_location('Fire Temple Highest Goron Chest'), - lambda state: (state.can_play('Song of Time') or world.logic_tricks) and state.can_use('Hammer')) + lambda state: state.can_use('Hammer') and + (state.can_play('Song of Time') or + (world.logic_tricks and (state.can_use('Hover Boots') or state.has_explosives())))) set_rule(world.get_location('Fire Temple Megaton Hammer Chest'), lambda state: state.has_explosives()) # Boss @@ -1404,7 +1406,8 @@ def dung_rules_spt0(world): lambda state: state.has('Small Key (Spirit Temple)', 4) and state.can_use('Silver Gauntlets')) set_rule( world.get_entrance('Spirit Temple Final Locked Door'), - lambda state: state.has('Small Key (Spirit Temple)', 5) and state.has_projectile('adult')) + lambda state: state.has('Small Key (Spirit Temple)', 5) and + (state.has_projectile('adult') or state.can_use('Hammer'))) set_rule( world.get_location('Spirit Temple Child Left Chest'), lambda state: (state.has('Boomerang') or state.has_slingshot() or (state.has_bombchus() and world.logic_tricks)) and @@ -1558,9 +1561,18 @@ def dung_rules_spt0(world): (state.can_use('Longshot') or state.can_use('Scarecrow') or state.has('Hover Boots'))) set_rule( world.get_location('GS Spirit Temple Bomb for Light Room'), - lambda state: state.can_child_attack() or + lambda state: state.has_projectile('both') or + state.can_use('Dins Fire') or + ((world.difficulty != 'ohko' or state.has_bottle() or state.can_use('Nayrus Love')) and + ((state.has_sticks() or state.has('Kokiri Sword')) and state.is_adult())) or + (state.can_play('Requiem of Spirit') and + (state.has_projectile('child') or + ((world.difficulty != 'ohko' or state.has_bottle() or state.can_use('Nayrus Love')) and + (state.has_sticks() or state.has('Kokiri Sword'))))) or ((state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and world.bombchus_in_logic)) and - state.can_use('Silver Gauntlets'))) + state.can_use('Silver Gauntlets') and + (state.has_projectile('adult') or + world.difficulty != 'ohko' or state.has_bottle() or state.can_use('Nayrus Love')))) # Spirit Temple MQ def dung_rules_sptmq(world): From 4e2e7c476cd031e16be4e7bb085ffd37650ded4b Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Wed, 17 Oct 2018 07:18:36 -0300 Subject: [PATCH 733/755] Logic Fixes Forgot I needed keys. --- Rules.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Rules.py b/Rules.py index 77e6d7c4f..75891e8e1 100644 --- a/Rules.py +++ b/Rules.py @@ -1565,7 +1565,7 @@ def dung_rules_spt0(world): state.can_use('Dins Fire') or ((world.difficulty != 'ohko' or state.has_bottle() or state.can_use('Nayrus Love')) and ((state.has_sticks() or state.has('Kokiri Sword')) and state.is_adult())) or - (state.can_play('Requiem of Spirit') and + (state.can_play('Requiem of Spirit') and state.has('Small Key (Spirit Temple)', 5) and (state.has_projectile('child') or ((world.difficulty != 'ohko' or state.has_bottle() or state.can_use('Nayrus Love')) and (state.has_sticks() or state.has('Kokiri Sword'))))) or From 0a7219e8aed61163c75ba086cb0d65c4b63e4caa Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Wed, 17 Oct 2018 07:43:15 -0300 Subject: [PATCH 734/755] Logic Fixes Spirit Temple is hard. --- Rules.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Rules.py b/Rules.py index 75891e8e1..136fe34aa 100644 --- a/Rules.py +++ b/Rules.py @@ -1564,11 +1564,9 @@ def dung_rules_spt0(world): lambda state: state.has_projectile('both') or state.can_use('Dins Fire') or ((world.difficulty != 'ohko' or state.has_bottle() or state.can_use('Nayrus Love')) and - ((state.has_sticks() or state.has('Kokiri Sword')) and state.is_adult())) or + (state.has_sticks() or state.has('Kokiri Sword') or state.has_projectile('child'))) or (state.can_play('Requiem of Spirit') and state.has('Small Key (Spirit Temple)', 5) and - (state.has_projectile('child') or - ((world.difficulty != 'ohko' or state.has_bottle() or state.can_use('Nayrus Love')) and - (state.has_sticks() or state.has('Kokiri Sword'))))) or + state.has_projectile('child')) or ((state.has('Small Key (Spirit Temple)', 3) or (state.has('Small Key (Spirit Temple)', 2) and world.bombchus_in_logic)) and state.can_use('Silver Gauntlets') and (state.has_projectile('adult') or From e07e3fd0fa3df25840fa97c6c3bf89249519ee65 Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Wed, 17 Oct 2018 12:53:49 -0300 Subject: [PATCH 735/755] Logic Fixes Changed the spirit wall logic to be so that you would have an item to deal with both the beamos and the walltula. --- Rules.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Rules.py b/Rules.py index 136fe34aa..ac12eb167 100644 --- a/Rules.py +++ b/Rules.py @@ -1407,7 +1407,10 @@ def dung_rules_spt0(world): set_rule( world.get_entrance('Spirit Temple Final Locked Door'), lambda state: state.has('Small Key (Spirit Temple)', 5) and - (state.has_projectile('adult') or state.can_use('Hammer'))) + (state.can_use('Longshot') or + state.has_bombchus() or + ((state.has_bombs() or state.has_nuts() or state.can_use('Dins Fire')) and + (state.has_bow() or state.can_use('Hookshot') or state.has('Hammer'))))) set_rule( world.get_location('Spirit Temple Child Left Chest'), lambda state: (state.has('Boomerang') or state.has_slingshot() or (state.has_bombchus() and world.logic_tricks)) and From c35b02bdb4cbccb90d02df222db191b756c15dec Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 17 Oct 2018 18:02:28 -0600 Subject: [PATCH 736/755] Add option to not require the use of gold scale to beat morpha This option is mostly pointless, but people want it in, so I'm adding it against my best judgement. --- README.html | 2 ++ README.md | 6 ++++++ Rules.py | 2 +- Settings.py | 25 +++++++++++++++++++++++++ version.py | 2 +- 5 files changed, 35 insertions(+), 2 deletions(-) diff --git a/README.html b/README.html index 012160305..cd7746e40 100644 --- a/README.html +++ b/README.html @@ -385,6 +385,8 @@

Command Line Options

Enable the logic to consider the trick to enter Zora's Domain as an adult using Hover Boots instead of playing Zelda's Lullaby (default: False)

--logic_fewer_tunic_requirements

Reduce the number of locations for which the logic expects a tunic upgrade (default: False)

+
--logic_morpha_with_scale
+

Allows entering Water Temple and beating Morpha with Gold Scale instead of Iron Boots. The Longshot is still required to reach the boss, as well as the Boss Key. So this is applicable for keysanity and keysy since there is no location to obtain the Boss Key inside the dungeon.

--logic_lens [{chest,chest-wasteland,all}]

Set which hidden objects the logic expects the Lens of Truth to be used on (default: all)

--ocarina_songs
diff --git a/README.md b/README.md index 0f62d6396..2557582a6 100644 --- a/README.md +++ b/README.md @@ -1156,6 +1156,12 @@ Enable the logic to consider the trick to enter Zora's Domain as an adult using Reduce the number of locations for which the logic expects a tunic upgrade (default: False) +``` +--logic_morpha_with_scale +``` + +Allows entering Water Temple and beating Morpha with Gold Scale instead of Iron Boots. The Longshot is still required to reach the boss, as well as the Boss Key. So this is applicable for keysanity and keysy since there is no location to obtain the Boss Key inside the dungeon. + ``` --logic_lens [{chest,chest-wasteland,all}] ``` diff --git a/Rules.py b/Rules.py index ac12eb167..bbf87e0c8 100644 --- a/Rules.py +++ b/Rules.py @@ -432,7 +432,7 @@ def global_rules(world): lambda state: state.has('Iron Boots') and(world.logic_fewer_tunic_requirements or state.has_ZoraTunic())) set_rule( world.get_entrance('Water Temple Entrance'), - lambda state: (state.has('Iron Boots') or state.has('Progressive Scale', 2)) and + lambda state: (state.has('Iron Boots') or (world.logic_morpha_with_scale and state.has('Progressive Scale', 2))) and state.can_use('Hookshot') and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic())) set_rule( world.get_location('Sheik in Kakariko'), diff --git a/Settings.py b/Settings.py index e6355fb18..812e7d957 100644 --- a/Settings.py +++ b/Settings.py @@ -1561,6 +1561,31 @@ def parse_custom_navi_color(s): trips. ''' }), + Setting_Info('logic_morpha_with_scale', bool, 1, True, + { + 'help': '''\ + Allows entering Water Temple and beating + Morpha with Gold Scale instead of Iron Boots. + Only applicable for keysanity and keysy since + there is no location to obtain the Boss Key + inside the dungeon. + ''', + 'action': 'store_true' + }, + { + 'text': "Morpha With Gold Scale", + 'group': 'tricks', + 'widget': 'Checkbutton', + 'default': 'checked', + 'tooltip':'''\ + Allows entering Water Temple and beating + Morpha with Gold Scale instead of Iron Boots. + Only applicable for keysanity and keysy since + there is no location to obtain the Boss Key + inside the dungeon. + ''', + 'dependency': lambda guivar: guivar['shuffle_bosskeys'].get() != 'Boss Keys: Dungeon Only' + }), Setting_Info('logic_lens', str, 2, True, { 'default': 'all', diff --git a/version.py b/version.py index 726d275f1..004d71518 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.22.17 f.LUM' +__version__ = '2.22.18 f.LUM' From a908c3915981eeb00ff684f7545d711caf662d03 Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 17 Oct 2018 23:36:13 -0600 Subject: [PATCH 737/755] Load the rom earlier to catch errors faster --- Main.py | 6 +++++- version.py | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Main.py b/Main.py index 50a9506bb..7a1249b8c 100644 --- a/Main.py +++ b/Main.py @@ -62,6 +62,11 @@ def main(settings, window=dummy_window()): logger.info('OoT Randomizer Version %s - Seed: %s\n\n', __version__, worlds[0].seed) + # we load the rom before creating the seed so that error get caught early + if settings.compress_rom != 'None': + window.update_status('Loading ROM') + rom = LocalRom(settings) + window.update_status('Creating the Worlds') for id, world in enumerate(worlds): world.id = id @@ -128,7 +133,6 @@ def main(settings, window=dummy_window()): if settings.compress_rom != 'None': window.update_status('Patching ROM') - rom = LocalRom(settings) patch_rom(worlds[settings.player_num - 1], rom) window.update_progress(65) diff --git a/version.py b/version.py index 004d71518..6e6838dd1 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.22.18 f.LUM' +__version__ = '2.22.19 f.LUM' From e1af1508f2be15a00b5bfb92e347f2703c25895c Mon Sep 17 00:00:00 2001 From: r0bd0g <42326313+r0bd0g@users.noreply.github.com> Date: Thu, 18 Oct 2018 05:23:55 -0300 Subject: [PATCH 738/755] Logic Fix Removed Fire Arrows + Hover Boots combination to complete Shadow Trial. It actually would have needed either lens or longshot to work, which would make it redundant. I'm not sure why I thought that this worked. Couple of dumb minor changes to things I noticed while looking through. --- Rules.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Rules.py b/Rules.py index bbf87e0c8..6d381f349 100644 --- a/Rules.py +++ b/Rules.py @@ -429,7 +429,7 @@ def global_rules(world): set_rule(world.get_entrance('Zora Shop Adult Access'), lambda state: state.has_blue_fire()) set_rule( world.get_location('Zoras Fountain Bottom Freestanding PoH'), - lambda state: state.has('Iron Boots') and(world.logic_fewer_tunic_requirements or state.has_ZoraTunic())) + lambda state: state.has('Iron Boots') and (world.logic_fewer_tunic_requirements or state.has_ZoraTunic())) set_rule( world.get_entrance('Water Temple Entrance'), lambda state: (state.has('Iron Boots') or (world.logic_morpha_with_scale and state.has('Progressive Scale', 2))) and @@ -487,13 +487,13 @@ def global_rules(world): lambda state: state.can_use('Hover Boots') or state.can_use('Scarecrow') or state.can_use('Longshot')) set_rule( world.get_location('Horseback Archery 1000 Points'), - lambda state: state.has('Carpenter Rescue') and state.has('Epona') and state.can_use('Bow')) + lambda state: state.has('Carpenter Rescue') and state.has('Epona') and state.has('Bow') and state.is_adult()) set_rule( world.get_location('Horseback Archery 1500 Points'), lambda state: (not world.logic_no_1500_archery) and state.has('Carpenter Rescue') and state.has('Epona') and - state.can_use('Bow')) + state.has('Bow') and state.is_adult()) set_rule(world.get_location('Haunted Wasteland Structure Chest'), lambda state: state.has_fire_source()) set_rule( world.get_location('Zelda'), @@ -2073,7 +2073,7 @@ def dung_rules_gc0(world): world.get_location('Ganons Castle Shadow Trial Clear'), lambda state: state.can_use('Light Arrows') and state.has('Hammer') and - ((state.has('Fire Arrows') and (state.has('Hover Boots') or state.can_see_with_lens())) or + ((state.has('Fire Arrows') and state.can_see_with_lens()) or (state.can_use('Longshot') and (state.has('Hover Boots') or (state.has('Dins Fire') and state.can_see_with_lens()))))) set_rule( world.get_location('Ganons Castle Shadow Trial First Chest'), From fdd1afa104ac32c6710aea019e1042f125db1423 Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 18 Oct 2018 11:17:52 -0600 Subject: [PATCH 739/755] Change "select all trick options" to search for all trick options This is makes it so we don't have to enumerate every option. There some question on whether this should affect the lens option, but i'm not sure what 2 of 3 states it would toggle between. Logically it feels like it should be most/least restrictive, but the middle option is what people generally use. --- Gui.py | 29 +++++++++-------------------- version.py | 2 +- 2 files changed, 10 insertions(+), 21 deletions(-) diff --git a/Gui.py b/Gui.py index 14be8ef65..323f0e31e 100755 --- a/Gui.py +++ b/Gui.py @@ -176,26 +176,15 @@ def show_settings(event=None): guivars[info.name].set('Custom (' + color[1] + ')') def update_logic_tricks(event=None): - if guivars['all_logic_tricks'].get(): - widgets['logic_tricks'].select() - widgets['logic_man_on_roof'].select() - widgets['logic_child_deadhand'].select() - widgets['logic_dc_jump'].select() - widgets['logic_windmill_poh'].select() - widgets['logic_crater_bean_poh_with_hovers'].select() - widgets['logic_zora_with_cucco'].select() - widgets['logic_zora_with_hovers'].select() - widgets['logic_fewer_tunic_requirements'].select() - else: - widgets['logic_tricks'].deselect() - widgets['logic_man_on_roof'].deselect() - widgets['logic_child_deadhand'].deselect() - widgets['logic_dc_jump'].deselect() - widgets['logic_windmill_poh'].deselect() - widgets['logic_crater_bean_poh_with_hovers'].deselect() - widgets['logic_zora_with_cucco'].deselect() - widgets['logic_zora_with_hovers'].deselect() - widgets['logic_fewer_tunic_requirements'].deselect() + for info in setting_infos: + if info.gui_params \ + and info.gui_params['widget'] == 'Checkbutton' \ + and info.gui_params['group'] == 'tricks': + if guivars['all_logic_tricks'].get(): + widgets[info.name].select() + else: + widgets[info.name].deselect() + settings = guivars_to_settings(guivars) settings_string_var.set( settings.get_settings_string() ) diff --git a/version.py b/version.py index 6e6838dd1..a7ee67de6 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.22.19 f.LUM' +__version__ = '2.22.20 f.LUM' From c6c9aa067ea24d1ef03abf2c7f1e02481503cc28 Mon Sep 17 00:00:00 2001 From: Nick Langille Date: Fri, 19 Oct 2018 08:49:36 -0400 Subject: [PATCH 740/755] Refactor item menu code --- ASM/build/asm_symbols.txt | 171 ++- ASM/src/hacks.asm | 57 +- ASM/src/menu.asm | 41 +- data/rom_patch.txt | 2693 +++++++++++++++++++------------------ data/symbols.json | 4 +- 5 files changed, 1495 insertions(+), 1471 deletions(-) diff --git a/ASM/build/asm_symbols.txt b/ASM/build/asm_symbols.txt index 1a60ccbb7..a2b486ee9 100644 --- a/ASM/build/asm_symbols.txt +++ b/ASM/build/asm_symbols.txt @@ -5,7 +5,7 @@ 000005B4 Shop_Item_Save_Offset 0000D260 .dbl:0010 0000D270 .dbl:0010 -008A9C00 .byt:0400 +0089E800 .byt:0400 00B529A0 skip_GS_BGS_text 00BAF750 .byt:0048 00D74990 skip_steal_tunic @@ -939,92 +939,89 @@ 804032E0 @@loop 80403338 @@no_pending_item 8040334C after_game_state_update -80403370 item_menu_description_id_periodic -80403384 @@item_menu_description_id_return_00000000 -8040338C item_menu_description_id_immediate_1 -804033A0 @@item_menu_description_id_return_00000001 -804033A8 item_menu_description_id_immediate_2 -804033BC @@item_menu_description_id_return_00000002 -804033C4 item_menu_description_id_immediate_3 -804033D8 @@item_menu_description_id_return_00000003 -804033E0 give_master_sword -804033F8 before_time_travel -80403430 after_time_travel -8040346C @@going_back -80403474 @@done -804034A4 update_c_button -804034D0 @@return -804034D8 after_going_forward -80403514 @@no_init -80403524 after_going_back -80403554 @@not_swordless -8040355C initialize_adult -80403584 @@no_mirror_shield -804035C4 init_adult_button -804035F0 @@empty -804035F8 @@loop -80403650 @@set_empty -8040365C @@return -80403664 .byt:0001 -80403664 ADULT_INIT_ITEMS -80403665 .byt:0001 -80403666 .byt:0001 -80403667 .byt:0001 -80403668 .byt:0001 -80403669 .byt:0001 -8040366A .byt:0001 -8040366B .byt:0001 -8040366C .byt:0001 -80403670 .byt:0001 -80403670 ADULT_VALID_ITEMS -80403671 .byt:0001 -80403672 .byt:0001 -80403673 .byt:0001 -80403674 .byt:0001 -80403675 .byt:0001 -80403676 .byt:0001 -80403677 .byt:0001 -80403678 .byt:0001 -80403679 .byt:0001 -8040367A .byt:0001 -8040367B .byt:0001 -8040367C .byt:0001 -8040367D .byt:0001 -8040367E .byt:0001 -8040367F .byt:0001 -80403680 .byt:0001 -80403681 .byt:0001 -80403682 .byt:0001 -80403683 .byt:0001 -80403684 .byt:0001 -80403685 .byt:0001 -80403686 .byt:0001 -80403687 .byt:0001 -80403688 suns_song_fix_event -804036BC @@child -804036CC @@return -804036D4 suns_song_fix -804036E8 @@check_suns_status -80403704 @@disable_suns -8040370C @@return -80403714 warp_song_fix -80403740 @@child -80403750 @@return -80403758 Check_Has_Epona_Song -804037A4 @@return -804037AC save_scarecrow_song -804037F0 @@copy_song -804037F8 write_initial_save -80403804 @@save_data_loop -80403834 @@overwrite_type -8040383C @@return -80403844 get_name_char_1 -80403860 get_name_char_2 -8040387C get_name_char -804038A8 @@coop_player_name -804038C0 @@return -804038C8 reset_player_name_id -804038E8 .byt:0768 +80403370 item_menu_prevent_empty_equip_display +80403374 item_menu_prevent_empty_equip +80403384 @@return +8040338C item_menu_use_blank_description +8040339C @@not_blank +804033A8 give_master_sword +804033C0 before_time_travel +804033F8 after_time_travel +80403434 @@going_back +8040343C @@done +8040346C update_c_button +80403498 @@return +804034A0 after_going_forward +804034DC @@no_init +804034EC after_going_back +8040351C @@not_swordless +80403524 initialize_adult +8040354C @@no_mirror_shield +8040358C init_adult_button +804035B8 @@empty +804035C0 @@loop +80403618 @@set_empty +80403624 @@return +8040362C .byt:0001 +8040362C ADULT_INIT_ITEMS +8040362D .byt:0001 +8040362E .byt:0001 +8040362F .byt:0001 +80403630 .byt:0001 +80403631 .byt:0001 +80403632 .byt:0001 +80403633 .byt:0001 +80403634 .byt:0001 +80403638 .byt:0001 +80403638 ADULT_VALID_ITEMS +80403639 .byt:0001 +8040363A .byt:0001 +8040363B .byt:0001 +8040363C .byt:0001 +8040363D .byt:0001 +8040363E .byt:0001 +8040363F .byt:0001 +80403640 .byt:0001 +80403641 .byt:0001 +80403642 .byt:0001 +80403643 .byt:0001 +80403644 .byt:0001 +80403645 .byt:0001 +80403646 .byt:0001 +80403647 .byt:0001 +80403648 .byt:0001 +80403649 .byt:0001 +8040364A .byt:0001 +8040364B .byt:0001 +8040364C .byt:0001 +8040364D .byt:0001 +8040364E .byt:0001 +8040364F .byt:0001 +80403650 suns_song_fix_event +80403684 @@child +80403694 @@return +8040369C suns_song_fix +804036B0 @@check_suns_status +804036CC @@disable_suns +804036D4 @@return +804036DC warp_song_fix +80403708 @@child +80403718 @@return +80403720 Check_Has_Epona_Song +8040376C @@return +80403774 save_scarecrow_song +804037B8 @@copy_song +804037C0 write_initial_save +804037CC @@save_data_loop +804037FC @@overwrite_type +80403804 @@return +8040380C get_name_char_1 +80403828 get_name_char_2 +80403844 get_name_char +80403870 @@coop_player_name +80403888 @@return +80403890 reset_player_name_id +804038B0 .byt:07A0 80405000 draw_file_select_hash,00000234 80405234 disp_buf_init,00000018 8040524C sprite_bytes_per_tile,00000028 diff --git a/ASM/src/hacks.asm b/ASM/src/hacks.asm index 87340306a..52564f312 100755 --- a/ASM/src/hacks.asm +++ b/ASM/src/hacks.asm @@ -244,22 +244,13 @@ li t2, 1 ;================================================================================================== -; Menu hacks +; Item menu hacks ;================================================================================================== -; Make the "SOLD OUT" menu text blank -.org 0x8A9C00 +; Create a blank texture, overwriting a Japanese item description +.org 0x89E800 .fill 0x400, 0 -; Item Menu hooks: -; -; There are 4 removed checks for whether the cursor is allowed to move to an adjacent space, -; one for each cardinal direction. -; -; There are 4 hooks that override the item ID used to display the item description. -; One runs periodically (because the description flips between the item name and "< v > to Equip"). -; The other three run immediately when the cursor moves. - ; Left movement check ; Replaces: ; beq s4, t5, 0x8038F2B4 @@ -268,22 +259,12 @@ nop nop -; Right movement check AND an immediate description update +; Right movement check ; Replaces: -; lbu t4, 0x0074 (t9) ; beq s4, t4, 0x8038F2B4 ; nop -.org 0xBB7890 ; In memory: 0x8038F210 - jal item_menu_description_id_immediate_1 - nop +.org 0xBB7894 ; In memory: 0x8038F214 nop - -; Immediate description update -; Replaces: -; lbu t6, 0x0074 (t5) -; sh t6, 0x009A (sp) -.org 0xBB7950 ; In memory: 0x8038F2D0 - jal item_menu_description_id_immediate_2 nop ; Upward movement check @@ -302,20 +283,28 @@ nop nop -; Immediate description update +; Remove "to Equip" text if the cursor is on an empty slot +; Replaces: +; addu s1, t6, t7 +; lbu v0, 0x0000 (s1) +.org 0xBB7C88 ; In memory: 0x8038F608 + jal item_menu_prevent_empty_equip_display + nop + +; Prevent empty slots from being equipped ; Replaces: -; lbu t7, 0x0074 (t6) -; sh t7, 0x009A (sp) -.org 0xBB7C3C ; In memory: 0x8038F5BC - jal item_menu_description_id_immediate_3 +; lbu v0, 0x0000 (s1) +; addiu at, r0, 0x0009 +.org 0xBB7D10 ; In memory: 0x8038F690 + jal item_menu_prevent_empty_equip nop -; Periodic description update +; Use a blank item description texture if the cursor is on an empty slot ; Replaces: -; lbu t9, 0x0074 (t8) -; sh t9, 0x009A (sp) -.org 0xBB7C58 ; In memory: 0x8038F5D8 - jal item_menu_description_id_periodic +; sll t4, v1, 10 +; addu a1, t4, t5 +.org 0xBC088C ; In memory: 0x8039820C + jal item_menu_use_blank_description nop ;================================================================================================== diff --git a/ASM/src/menu.asm b/ASM/src/menu.asm index 26349b8b4..d3c8471d2 100755 --- a/ASM/src/menu.asm +++ b/ASM/src/menu.asm @@ -1,27 +1,26 @@ -.macro item_menu_description_id, dest_reg, base_reg - lbu dest_reg, 0x0074 (base_reg) ; Load the item ID at the selected menu slot - bne dest_reg, 0xFF, @@return ; If the slot is not empty, use default behavior - nop - li dest_reg, 0x2C ; 0x2C = "SOLD OUT" -@@return: -.endmacro +item_menu_prevent_empty_equip_display: + addu s1, t6, t7 ; s1 = entry in usability table + ; Fall through to item_menu_prevent_empty_equip + ; (the required checks and register usage happen to be identical) +item_menu_prevent_empty_equip: + ; t1 = item under cursor + bne t1, 0xFF, @@return + lbu v0, 0x00 (s1) ; Load from item usability table -item_menu_description_id_periodic: - item_menu_description_id t9, t8 - jr ra - sh t9, 0x009A (sp) + li v0, 0xFF ; Prevent equip -item_menu_description_id_immediate_1: - item_menu_description_id t4, t9 +@@return: jr ra - nop + li at, 9 ; Restore value expected by caller -item_menu_description_id_immediate_2: - item_menu_description_id t6, t5 - jr ra - sh t6, 0x009A (sp) +item_menu_use_blank_description: + ; 0x17A is an invalid texture index, used if item ID = 0xFF + bne v1, 0x17A, @@not_blank + nop + li v1, 0x7A ; 0x7A = index of texture that we made blank +@@not_blank: -item_menu_description_id_immediate_3: - item_menu_description_id t7, t6 + ; Displaced code + sll t4, v1, 10 jr ra - sh t7, 0x009A (sp) + addu a1, t4, t5 diff --git a/data/rom_patch.txt b/data/rom_patch.txt index 3123ba765..ab853745d 100644 --- a/data/rom_patch.txt +++ b/data/rom_patch.txt @@ -19,387 +19,458 @@ d276,e0 d277,0 d279,4b d27a,30 -8a9c51,0 -8a9c52,0 -8a9c53,0 -8a9c55,0 -8a9c56,0 -8a9c57,0 -8a9c58,0 -8a9c59,0 -8a9c5a,0 -8a9c5c,0 -8a9c5d,0 -8a9c5e,0 -8a9c5f,0 -8a9c64,0 -8a9c65,0 -8a9c66,0 -8a9c67,0 -8a9c68,0 -8a9c69,0 -8a9c6a,0 -8a9c6b,0 -8a9c6c,0 -8a9c6d,0 -8a9c6e,0 -8a9c6f,0 -8a9c90,0 -8a9c91,0 -8a9c92,0 -8a9c93,0 -8a9c94,0 -8a9c95,0 -8a9c96,0 -8a9c97,0 -8a9c98,0 -8a9c99,0 -8a9c9a,0 -8a9c9c,0 -8a9c9d,0 -8a9c9e,0 -8a9c9f,0 -8a9ca0,0 -8a9ca3,0 -8a9ca4,0 -8a9ca5,0 -8a9ca6,0 -8a9ca7,0 -8a9ca8,0 -8a9ca9,0 -8a9caa,0 -8a9cab,0 -8a9cac,0 -8a9cad,0 -8a9cae,0 -8a9caf,0 -8a9cb0,0 -8a9cd0,0 -8a9cd1,0 -8a9cd2,0 -8a9cd3,0 -8a9cd4,0 -8a9cd5,0 -8a9cd6,0 -8a9cd7,0 -8a9cd8,0 -8a9cd9,0 -8a9cda,0 -8a9cdc,0 -8a9cdd,0 -8a9cde,0 -8a9cdf,0 -8a9ce0,0 -8a9ce3,0 -8a9ce4,0 -8a9ce5,0 -8a9ce6,0 -8a9ce7,0 -8a9ce8,0 -8a9ce9,0 -8a9cea,0 -8a9ceb,0 -8a9cec,0 -8a9ced,0 -8a9cee,0 -8a9cef,0 -8a9cf0,0 -8a9d10,0 -8a9d11,0 -8a9d12,0 -8a9d13,0 -8a9d14,0 -8a9d15,0 -8a9d16,0 -8a9d17,0 -8a9d18,0 -8a9d19,0 -8a9d1a,0 -8a9d1c,0 -8a9d1d,0 -8a9d1e,0 -8a9d1f,0 -8a9d20,0 -8a9d21,0 -8a9d22,0 -8a9d23,0 -8a9d24,0 -8a9d25,0 -8a9d26,0 -8a9d27,0 -8a9d28,0 -8a9d29,0 -8a9d2a,0 -8a9d2b,0 -8a9d2c,0 -8a9d2d,0 -8a9d2e,0 -8a9d2f,0 -8a9d30,0 -8a9d50,0 -8a9d51,0 -8a9d52,0 -8a9d53,0 -8a9d54,0 -8a9d55,0 -8a9d56,0 -8a9d57,0 -8a9d58,0 -8a9d59,0 -8a9d5a,0 -8a9d5c,0 -8a9d5d,0 -8a9d5e,0 -8a9d5f,0 -8a9d60,0 -8a9d61,0 -8a9d62,0 -8a9d63,0 -8a9d64,0 -8a9d65,0 -8a9d66,0 -8a9d67,0 -8a9d68,0 -8a9d69,0 -8a9d6a,0 -8a9d6b,0 -8a9d6c,0 -8a9d6d,0 -8a9d6e,0 -8a9d6f,0 -8a9d90,0 -8a9d91,0 -8a9d92,0 -8a9d93,0 -8a9d94,0 -8a9d95,0 -8a9d96,0 -8a9d97,0 -8a9d98,0 -8a9d99,0 -8a9d9a,0 -8a9d9c,0 -8a9d9d,0 -8a9d9e,0 -8a9d9f,0 -8a9da0,0 -8a9da1,0 -8a9da2,0 -8a9da3,0 -8a9da4,0 -8a9da6,0 -8a9da7,0 -8a9da8,0 -8a9da9,0 -8a9daa,0 -8a9dab,0 -8a9dac,0 -8a9dad,0 -8a9dae,0 -8a9dd0,0 -8a9dd1,0 -8a9dd2,0 -8a9dd3,0 -8a9dd4,0 -8a9dd5,0 -8a9dd6,0 -8a9dd7,0 -8a9dd8,0 -8a9dd9,0 -8a9dda,0 -8a9ddc,0 -8a9ddd,0 -8a9dde,0 -8a9ddf,0 -8a9de0,0 -8a9de1,0 -8a9de2,0 -8a9de3,0 -8a9de4,0 -8a9de6,0 -8a9de7,0 -8a9de8,0 -8a9de9,0 -8a9dea,0 -8a9deb,0 -8a9dec,0 -8a9ded,0 -8a9dee,0 -8a9e10,0 -8a9e11,0 -8a9e12,0 -8a9e13,0 -8a9e14,0 -8a9e15,0 -8a9e16,0 -8a9e17,0 -8a9e18,0 -8a9e19,0 -8a9e1a,0 -8a9e1c,0 -8a9e1d,0 -8a9e1e,0 -8a9e1f,0 -8a9e20,0 -8a9e21,0 -8a9e22,0 -8a9e23,0 -8a9e24,0 -8a9e26,0 -8a9e27,0 -8a9e28,0 -8a9e29,0 -8a9e2a,0 -8a9e2b,0 -8a9e2c,0 -8a9e2d,0 -8a9e2e,0 -8a9e50,0 -8a9e51,0 -8a9e52,0 -8a9e53,0 -8a9e54,0 -8a9e55,0 -8a9e56,0 -8a9e57,0 -8a9e58,0 -8a9e59,0 -8a9e5a,0 -8a9e5b,0 -8a9e5c,0 -8a9e5d,0 -8a9e5e,0 -8a9e5f,0 -8a9e60,0 -8a9e61,0 -8a9e62,0 -8a9e63,0 -8a9e64,0 -8a9e65,0 -8a9e66,0 -8a9e67,0 -8a9e68,0 -8a9e69,0 -8a9e6a,0 -8a9e6b,0 -8a9e6c,0 -8a9e6d,0 -8a9e6e,0 -8a9e90,0 -8a9e91,0 -8a9e92,0 -8a9e93,0 -8a9e94,0 -8a9e95,0 -8a9e96,0 -8a9e97,0 -8a9e98,0 -8a9e99,0 -8a9e9a,0 -8a9e9b,0 -8a9e9c,0 -8a9e9d,0 -8a9e9e,0 -8a9e9f,0 -8a9ea0,0 -8a9ea1,0 -8a9ea2,0 -8a9ea3,0 -8a9ea4,0 -8a9ea5,0 -8a9ea6,0 -8a9ea7,0 -8a9ea8,0 -8a9ea9,0 -8a9eaa,0 -8a9eab,0 -8a9eac,0 -8a9ead,0 -8a9eae,0 -8a9ed0,0 -8a9ed1,0 -8a9ed2,0 -8a9ed3,0 -8a9ed4,0 -8a9ed5,0 -8a9ed6,0 -8a9ed7,0 -8a9ed8,0 -8a9ed9,0 -8a9eda,0 -8a9edb,0 -8a9edc,0 -8a9edd,0 -8a9ede,0 -8a9edf,0 -8a9ee0,0 -8a9ee3,0 -8a9ee4,0 -8a9ee5,0 -8a9ee6,0 -8a9ee7,0 -8a9ee8,0 -8a9ee9,0 -8a9eea,0 -8a9eeb,0 -8a9eec,0 -8a9eed,0 -8a9eee,0 -8a9f10,0 -8a9f11,0 -8a9f12,0 -8a9f13,0 -8a9f14,0 -8a9f15,0 -8a9f16,0 -8a9f17,0 -8a9f18,0 -8a9f19,0 -8a9f1a,0 -8a9f1b,0 -8a9f1c,0 -8a9f1d,0 -8a9f1e,0 -8a9f1f,0 -8a9f20,0 -8a9f23,0 -8a9f24,0 -8a9f25,0 -8a9f26,0 -8a9f27,0 -8a9f28,0 -8a9f29,0 -8a9f2a,0 -8a9f2b,0 -8a9f2c,0 -8a9f2d,0 -8a9f2e,0 -8a9f50,0 -8a9f51,0 -8a9f52,0 -8a9f53,0 -8a9f55,0 -8a9f56,0 -8a9f57,0 -8a9f58,0 -8a9f59,0 -8a9f5a,0 -8a9f5b,0 -8a9f5c,0 -8a9f5d,0 -8a9f5e,0 -8a9f5f,0 -8a9f64,0 -8a9f65,0 -8a9f66,0 -8a9f67,0 -8a9f68,0 -8a9f69,0 -8a9f6a,0 -8a9f6b,0 -8a9f6c,0 -8a9f6d,0 -8a9f6e,0 +89e813,0 +89e814,0 +89e81e,0 +89e81f,0 +89e850,0 +89e851,0 +89e852,0 +89e853,0 +89e854,0 +89e855,0 +89e858,0 +89e859,0 +89e85d,0 +89e85e,0 +89e85f,0 +89e86b,0 +89e86c,0 +89e86d,0 +89e86e,0 +89e86f,0 +89e870,0 +89e871,0 +89e890,0 +89e891,0 +89e892,0 +89e893,0 +89e894,0 +89e895,0 +89e897,0 +89e898,0 +89e899,0 +89e89a,0 +89e89d,0 +89e89e,0 +89e89f,0 +89e8a0,0 +89e8a5,0 +89e8a6,0 +89e8aa,0 +89e8ab,0 +89e8ac,0 +89e8ad,0 +89e8ae,0 +89e8af,0 +89e8b0,0 +89e8b1,0 +89e8d0,0 +89e8d1,0 +89e8d2,0 +89e8d3,0 +89e8d4,0 +89e8d5,0 +89e8d7,0 +89e8d8,0 +89e8d9,0 +89e8da,0 +89e8db,0 +89e8dc,0 +89e8dd,0 +89e8de,0 +89e8df,0 +89e8e0,0 +89e8e1,0 +89e8e2,0 +89e8e3,0 +89e8e4,0 +89e8e5,0 +89e8e6,0 +89e8e7,0 +89e8ea,0 +89e8eb,0 +89e8ec,0 +89e8ed,0 +89e8ee,0 +89e8ef,0 +89e8f0,0 +89e8f1,0 +89e90f,0 +89e910,0 +89e911,0 +89e912,0 +89e913,0 +89e914,0 +89e915,0 +89e916,0 +89e917,0 +89e918,0 +89e919,0 +89e91a,0 +89e91b,0 +89e91c,0 +89e91d,0 +89e91e,0 +89e91f,0 +89e920,0 +89e921,0 +89e922,0 +89e923,0 +89e924,0 +89e925,0 +89e926,0 +89e927,0 +89e928,0 +89e92a,0 +89e92b,0 +89e92c,0 +89e92d,0 +89e92e,0 +89e92f,0 +89e930,0 +89e931,0 +89e94f,0 +89e950,0 +89e951,0 +89e952,0 +89e953,0 +89e954,0 +89e955,0 +89e956,0 +89e957,0 +89e958,0 +89e959,0 +89e95a,0 +89e95b,0 +89e95c,0 +89e95d,0 +89e95e,0 +89e95f,0 +89e960,0 +89e961,0 +89e962,0 +89e963,0 +89e964,0 +89e965,0 +89e966,0 +89e967,0 +89e968,0 +89e969,0 +89e96a,0 +89e96b,0 +89e96c,0 +89e96d,0 +89e96e,0 +89e96f,0 +89e970,0 +89e971,0 +89e98e,0 +89e98f,0 +89e990,0 +89e991,0 +89e992,0 +89e993,0 +89e994,0 +89e995,0 +89e996,0 +89e997,0 +89e998,0 +89e999,0 +89e99a,0 +89e99b,0 +89e99c,0 +89e99d,0 +89e99e,0 +89e99f,0 +89e9a0,0 +89e9a1,0 +89e9a2,0 +89e9a3,0 +89e9a4,0 +89e9a5,0 +89e9a6,0 +89e9a7,0 +89e9a8,0 +89e9a9,0 +89e9aa,0 +89e9ab,0 +89e9ac,0 +89e9ad,0 +89e9ae,0 +89e9af,0 +89e9b0,0 +89e9b1,0 +89e9ce,0 +89e9cf,0 +89e9d0,0 +89e9d1,0 +89e9d2,0 +89e9d3,0 +89e9d4,0 +89e9d5,0 +89e9d6,0 +89e9d7,0 +89e9d8,0 +89e9dc,0 +89e9dd,0 +89e9de,0 +89e9df,0 +89e9e0,0 +89e9e1,0 +89e9e3,0 +89e9e4,0 +89e9e5,0 +89e9e6,0 +89e9e7,0 +89e9e8,0 +89e9e9,0 +89e9ea,0 +89e9eb,0 +89e9ec,0 +89e9ed,0 +89e9ee,0 +89e9ef,0 +89e9f0,0 +89e9f1,0 +89ea0e,0 +89ea0f,0 +89ea10,0 +89ea11,0 +89ea12,0 +89ea13,0 +89ea14,0 +89ea15,0 +89ea16,0 +89ea17,0 +89ea18,0 +89ea1c,0 +89ea1d,0 +89ea1e,0 +89ea1f,0 +89ea20,0 +89ea21,0 +89ea23,0 +89ea24,0 +89ea25,0 +89ea26,0 +89ea27,0 +89ea28,0 +89ea29,0 +89ea2a,0 +89ea2b,0 +89ea2c,0 +89ea2d,0 +89ea2e,0 +89ea2f,0 +89ea30,0 +89ea31,0 +89ea4e,0 +89ea4f,0 +89ea50,0 +89ea51,0 +89ea52,0 +89ea53,0 +89ea54,0 +89ea55,0 +89ea56,0 +89ea57,0 +89ea58,0 +89ea5c,0 +89ea5d,0 +89ea5e,0 +89ea5f,0 +89ea60,0 +89ea61,0 +89ea63,0 +89ea64,0 +89ea65,0 +89ea66,0 +89ea67,0 +89ea68,0 +89ea69,0 +89ea6a,0 +89ea6b,0 +89ea6c,0 +89ea6d,0 +89ea6e,0 +89ea6f,0 +89ea70,0 +89ea71,0 +89ea8f,0 +89ea90,0 +89ea91,0 +89ea92,0 +89ea93,0 +89ea94,0 +89ea95,0 +89ea96,0 +89ea97,0 +89ea98,0 +89ea99,0 +89ea9a,0 +89ea9b,0 +89ea9c,0 +89ea9d,0 +89ea9e,0 +89ea9f,0 +89eaa0,0 +89eaa1,0 +89eaa2,0 +89eaa3,0 +89eaa4,0 +89eaa5,0 +89eaa6,0 +89eaa7,0 +89eaa8,0 +89eaa9,0 +89eaaa,0 +89eaab,0 +89eaac,0 +89eaad,0 +89eaae,0 +89eaaf,0 +89eab0,0 +89eab1,0 +89eace,0 +89eacf,0 +89ead0,0 +89ead1,0 +89ead2,0 +89ead3,0 +89ead6,0 +89ead7,0 +89ead8,0 +89ead9,0 +89eada,0 +89eadb,0 +89eadc,0 +89eadd,0 +89eade,0 +89eadf,0 +89eae0,0 +89eae1,0 +89eae2,0 +89eae3,0 +89eae4,0 +89eae5,0 +89eae6,0 +89eae7,0 +89eae8,0 +89eae9,0 +89eaea,0 +89eaeb,0 +89eaec,0 +89eaed,0 +89eaee,0 +89eaef,0 +89eaf0,0 +89eaf1,0 +89eb0e,0 +89eb0f,0 +89eb10,0 +89eb11,0 +89eb12,0 +89eb13,0 +89eb16,0 +89eb17,0 +89eb18,0 +89eb19,0 +89eb1a,0 +89eb1b,0 +89eb1c,0 +89eb1d,0 +89eb1e,0 +89eb1f,0 +89eb20,0 +89eb21,0 +89eb22,0 +89eb23,0 +89eb24,0 +89eb25,0 +89eb26,0 +89eb27,0 +89eb28,0 +89eb29,0 +89eb2a,0 +89eb2b,0 +89eb2c,0 +89eb2d,0 +89eb2e,0 +89eb2f,0 +89eb30,0 +89eb31,0 +89eb4e,0 +89eb4f,0 +89eb50,0 +89eb51,0 +89eb52,0 +89eb56,0 +89eb57,0 +89eb58,0 +89eb59,0 +89eb5a,0 +89eb5b,0 +89eb5c,0 +89eb5d,0 +89eb5e,0 +89eb5f,0 +89eb60,0 +89eb61,0 +89eb62,0 +89eb63,0 +89eb64,0 +89eb65,0 +89eb66,0 +89eb67,0 +89eb68,0 +89eb69,0 +89eb6a,0 +89eb6b,0 +89eb6c,0 +89eb6d,0 +89eb6e,0 +89eb6f,0 +89eb70,0 +89eb71,0 +89eb8e,0 +89eb8f,0 +89eb90,0 +89eb91,0 +89eb96,0 +89eb97,0 +89eb98,0 +89eb9d,0 +89eb9e,0 +89eb9f,0 +89eba0,0 +89eba1,0 +89eba3,0 +89eba4,0 +89eba5,0 +89eba6,0 +89eba7,0 +89eba8,0 +89ebaa,0 +89ebab,0 +89ebac,0 +89ebad,0 +89ebae,0 +89ebaf,0 +89ebb0,0 +89ebb1,0 +89ebce,0 +89ebcf,0 +89ebd6,0 +89ebd7,0 +89ebd8,0 +89ebea,0 +89ebeb,0 +89ebec,0 +89ebed,0 +89ebee,0 +89ebef,0 +89ebf0,0 a98c30,c a98c31,10 a98c32,a @@ -407,7 +478,7 @@ a98c33,e0 a9e838,8 a9e839,10 a9e83a,d -a9e83b,d6 +a9e83b,c8 ac9abc,c ac9abd,10 ac9abe,b @@ -433,19 +504,19 @@ acce9b,0 ae5764,8 ae5765,10 ae5766,c -ae5767,fe +ae5767,f0 ae5768,0 ae5769,0 ae576a,0 ae576b,0 ae59e0,8 ae59e1,10 -ae59e2,d -ae59e3,c +ae59e2,c +ae59e3,fe ae5df0,c ae5df1,10 ae5df2,d -ae5df3,b5 +ae5df3,a7 ae5df8,c ae5df9,10 ae5dfa,b @@ -471,7 +542,7 @@ b0640f,2 b06c2c,c b06c2d,10 b06c2e,d -b06c2f,fe +b06c2f,f0 b06c31,28 b06c33,20 b16b50,c @@ -523,15 +594,15 @@ b17bd3,0 b51694,c b51695,10 b51696,e -b51697,11 +b51697,3 b516c4,c b516c5,10 b516c6,e -b516c7,18 +b516c7,a b52784,c b52785,10 b52786,e -b52787,32 +b52787,24 b52788,0 b52789,0 b5278b,0 @@ -543,14 +614,14 @@ b5293f,18 b54b38,c b54b39,10 b54b3a,d -b54b3b,c5 +b54b3b,b7 b54e5c,c b54e5d,10 b54e5e,d -b54e5f,a2 +b54e5f,94 b55a65,10 b55a66,d -b55a67,eb +b55a67,dd baed6c,0 baed6d,0 baed6f,0 @@ -638,40 +709,36 @@ baf797,0 bb77b4,0 bb77b5,0 bb77b7,0 -bb7890,c -bb7891,10 -bb7892,c -bb7893,e3 bb7894,0 bb7895,0 bb7897,0 -bb7950,c -bb7951,10 -bb7952,c -bb7953,ea -bb7954,0 -bb7955,0 -bb7957,0 bb7ba0,0 bb7ba1,0 bb7ba3,0 bb7bfc,0 bb7bfd,0 bb7bff,0 -bb7c3c,c -bb7c3d,10 -bb7c3e,c -bb7c3f,f1 -bb7c40,0 -bb7c41,0 -bb7c43,0 -bb7c58,c -bb7c59,10 -bb7c5a,c -bb7c5b,dc -bb7c5c,0 -bb7c5d,0 -bb7c5f,0 +bb7c88,c +bb7c89,10 +bb7c8a,c +bb7c8b,dc +bb7c8c,0 +bb7c8d,0 +bb7d10,c +bb7d11,10 +bb7d12,c +bb7d13,dd +bb7d14,0 +bb7d15,0 +bb7d17,0 +bc088c,c +bc088d,10 +bc088e,c +bc088f,e3 +bc0890,0 +bc0891,0 +bc0892,0 +bc0893,0 bcecbc,8 bcecbd,10 bcecbe,a @@ -764,7 +831,7 @@ c898ca,1d c898cb,2a cb6875,10 cb6876,c -cb6877,f8 +cb6877,ea d12f78,34 d12f79,f d12f7b,0 @@ -5148,950 +5215,922 @@ ec9ce7,7a 348336c,27 348336d,bd 348336f,18 -3483370,93 -3483371,19 -3483373,74 +3483370,1 +3483371,cf +3483372,88 +3483373,21 3483374,34 3483375,1 3483377,ff -3483378,17 +3483378,15 3483379,21 348337b,2 +348337c,92 +348337d,22 3483380,34 -3483381,19 -3483383,2c +3483381,2 +3483383,ff 3483384,3 3483385,e0 3483387,8 -3483388,a7 -3483389,b9 -348338b,9a -348338c,93 -348338d,2c -348338f,74 -3483390,34 -3483391,1 -3483393,ff -3483394,15 -3483395,81 -3483397,2 -348339c,34 -348339d,c -348339f,2c +3483388,34 +3483389,1 +348338b,9 +348338c,34 +348338d,1 +348338e,1 +348338f,7a +3483390,14 +3483391,61 +3483393,2 +3483398,34 +3483399,3 +348339b,7a +348339d,3 +348339e,62 +348339f,80 34833a0,3 34833a1,e0 34833a3,8 -34833a8,91 -34833a9,ae -34833ab,74 -34833ac,34 -34833ad,1 -34833af,ff -34833b0,15 -34833b1,c1 -34833b3,2 -34833b8,34 -34833b9,e -34833bb,2c -34833bc,3 -34833bd,e0 -34833bf,8 -34833c0,a7 -34833c1,ae -34833c3,9a -34833c4,91 -34833c5,cf -34833c7,74 -34833c8,34 -34833c9,1 -34833cb,ff -34833cc,15 -34833cd,e1 -34833cf,2 -34833d4,34 -34833d5,f -34833d7,2c -34833d8,3 -34833d9,e0 -34833db,8 -34833dc,a7 -34833dd,af -34833df,9a -34833e0,3c -34833e1,8 -34833e2,80 -34833e3,12 -34833e4,25 -34833e5,8 -34833e6,a5 -34833e7,d0 -34833e8,85 -34833e9,9 +34833a4,1 +34833a5,8d +34833a6,28 +34833a7,21 +34833a8,3c +34833a9,8 +34833aa,80 +34833ab,12 +34833ac,25 +34833ad,8 +34833ae,a5 +34833af,d0 +34833b0,85 +34833b1,9 +34833b3,9c +34833b4,35 +34833b5,2a +34833b7,2 +34833b8,3 +34833b9,e0 +34833bb,8 +34833bc,a5 +34833bd,a +34833bf,9c +34833c0,3c +34833c1,5 +34833c2,80 +34833c3,12 +34833c4,24 +34833c5,a5 +34833c6,a5 +34833c7,d0 +34833c8,3c +34833c9,8 +34833ca,80 +34833cb,40 +34833cc,25 +34833cd,8 +34833ce,20 +34833cf,1c +34833d0,8c +34833d1,a9 +34833d3,68 +34833d4,ad +34833d5,9 +34833d8,8c +34833d9,a9 +34833db,6c +34833dc,ad +34833dd,9 +34833df,4 +34833e0,94 +34833e1,a9 +34833e3,70 +34833e4,a5 +34833e5,9 +34833e7,8 +34833e8,94 +34833e9,a9 34833eb,9c -34833ec,35 -34833ed,2a -34833ef,2 -34833f0,3 -34833f1,e0 -34833f3,8 -34833f4,a5 -34833f5,a -34833f7,9c -34833f8,3c -34833f9,5 -34833fa,80 -34833fb,12 -34833fc,24 -34833fd,a5 -34833fe,a5 -34833ff,d0 -3483400,3c -3483401,8 -3483402,80 -3483403,40 -3483404,25 -3483405,8 -3483406,20 -3483407,1c -3483408,8c -3483409,a9 -348340b,68 -348340c,ad -348340d,9 -3483410,8c -3483411,a9 -3483413,6c -3483414,ad -3483415,9 -3483417,4 -3483418,94 -3483419,a9 -348341b,70 -348341c,a5 -348341d,9 -348341f,8 -3483420,94 -3483421,a9 -3483423,9c -3483424,a5 -3483425,9 -3483427,a -3483428,8 -3483429,1 -348342a,be -348342b,3 -3483430,27 -3483431,bd -3483432,ff -3483433,e0 -3483434,af -3483435,b0 -3483437,10 -3483438,af -3483439,b1 -348343b,14 -348343c,af -348343d,bf -348343f,18 -3483440,3c -3483441,10 -3483442,80 -3483443,12 -3483444,26 +34833ec,a5 +34833ed,9 +34833ef,a +34833f0,8 +34833f1,1 +34833f2,be +34833f3,3 +34833f8,27 +34833f9,bd +34833fa,ff +34833fb,e0 +34833fc,af +34833fd,b0 +34833ff,10 +3483400,af +3483401,b1 +3483403,14 +3483404,af +3483405,bf +3483407,18 +3483408,3c +3483409,10 +348340a,80 +348340b,12 +348340c,26 +348340d,10 +348340e,a5 +348340f,d0 +3483410,3c +3483411,11 +3483412,80 +3483413,40 +3483414,26 +3483415,31 +3483416,20 +3483417,1c +3483418,8e +3483419,8 +348341b,4 +348341c,11 +348341f,5 +3483424,c +3483425,10 +3483426,d +3483427,28 +348342c,10 +348342f,3 +3483434,c +3483435,10 +3483436,d +3483437,3b +348343c,c +348343d,10 +348343e,d +348343f,1b +3483440,34 +3483441,4 +3483444,c 3483445,10 -3483446,a5 -3483447,d0 -3483448,3c -3483449,11 -348344a,80 -348344b,40 -348344c,26 -348344d,31 -348344e,20 -348344f,1c -3483450,8e -3483451,8 -3483453,4 -3483454,11 -3483457,5 -348345c,c -348345d,10 -348345e,d -348345f,36 -3483464,10 -3483467,3 -348346c,c -348346d,10 -348346e,d -348346f,49 -3483474,c -3483475,10 -3483476,d -3483477,29 -3483478,34 -3483479,4 -348347c,c -348347d,10 -348347e,d -348347f,29 -3483480,34 -3483481,4 -3483483,1 -3483484,c -3483485,10 -3483486,d -3483487,29 +3483446,d +3483447,1b +3483448,34 +3483449,4 +348344b,1 +348344c,c +348344d,10 +348344e,d +348344f,1b +3483450,34 +3483451,4 +3483453,2 +3483454,8f +3483455,b0 +3483457,10 +3483458,8f +3483459,b1 +348345b,14 +348345c,8f +348345d,bf +348345f,18 +3483460,27 +3483461,bd +3483463,20 +3483464,3 +3483465,e0 +3483467,8 +348346c,2 +348346d,4 +348346e,40 +348346f,21 +3483470,91 +3483471,9 +3483473,6c +3483474,34 +3483475,1 +3483477,ff +3483478,11 +3483479,21 +348347b,7 +3483480,2 +3483481,9 +3483482,48 +3483483,21 +3483484,91 +3483485,29 +3483487,74 3483488,34 -3483489,4 -348348b,2 -348348c,8f -348348d,b0 -348348f,10 -3483490,8f -3483491,b1 -3483493,14 -3483494,8f -3483495,bf -3483497,18 -3483498,27 -3483499,bd -348349b,20 -348349c,3 -348349d,e0 -348349f,8 -34834a4,2 -34834a5,4 -34834a6,40 -34834a7,21 -34834a8,91 -34834a9,9 -34834ab,6c -34834ac,34 -34834ad,1 -34834af,ff -34834b0,11 -34834b1,21 -34834b3,7 -34834b8,2 -34834b9,9 -34834ba,48 -34834bb,21 -34834bc,91 -34834bd,29 -34834bf,74 -34834c0,34 -34834c1,1 -34834c3,2c -34834c4,11 -34834c5,21 -34834c7,2 -34834cc,a1 -34834cd,9 -34834cf,69 -34834d0,3 -34834d1,e0 -34834d3,8 -34834d8,27 -34834d9,bd -34834da,ff -34834db,e8 -34834dc,af +3483489,1 +348348b,2c +348348c,11 +348348d,21 +348348f,2 +3483494,a1 +3483495,9 +3483497,69 +3483498,3 +3483499,e0 +348349b,8 +34834a0,27 +34834a1,bd +34834a2,ff +34834a3,e8 +34834a4,af +34834a5,bf +34834a7,10 +34834a8,8e +34834a9,28 +34834ac,ae +34834ad,8 +34834af,40 +34834b0,8e +34834b1,28 +34834b3,4 +34834b4,ae +34834b5,8 +34834b7,44 +34834b8,96 +34834b9,28 +34834bb,8 +34834bc,a6 +34834bd,8 +34834bf,48 +34834c0,a2 +34834c2,f +34834c3,33 +34834c4,92 +34834c5,8 +34834c7,4a +34834c8,34 +34834c9,1 +34834cb,ff +34834cc,15 +34834cd,1 +34834cf,3 +34834d4,c +34834d5,10 +34834d6,d +34834d7,49 +34834dc,8f 34834dd,bf 34834df,10 -34834e0,8e -34834e1,28 -34834e4,ae -34834e5,8 -34834e7,40 -34834e8,8e -34834e9,28 -34834eb,4 -34834ec,ae +34834e0,27 +34834e1,bd +34834e3,18 +34834e4,3 +34834e5,e0 +34834e7,8 +34834ec,8e 34834ed,8 -34834ef,44 -34834f0,96 -34834f1,28 -34834f3,8 -34834f4,a6 +34834ef,40 +34834f0,ae +34834f1,8 +34834f3,68 +34834f4,8e 34834f5,8 -34834f7,48 -34834f8,a2 -34834fa,f -34834fb,33 -34834fc,92 +34834f7,44 +34834f8,ae +34834f9,8 +34834fb,6c +34834fc,96 34834fd,8 -34834ff,4a -3483500,34 -3483501,1 -3483503,ff -3483504,15 -3483505,1 -3483507,3 -348350c,c -348350d,10 -348350e,d -348350f,57 -3483514,8f -3483515,bf -3483517,10 -3483518,27 -3483519,bd -348351b,18 +34834ff,48 +3483500,a6 +3483501,8 +3483503,70 +3483504,92 +3483505,8 +3483507,68 +3483508,34 +3483509,1 +348350b,ff +348350c,15 +348350d,1 +348350f,3 +3483514,34 +3483515,8 +3483517,1 +3483518,a2 +3483519,8 +348351a,f +348351b,33 348351c,3 348351d,e0 348351f,8 -3483524,8e -3483525,8 -3483527,40 -3483528,ae -3483529,8 -348352b,68 -348352c,8e +3483524,27 +3483525,bd +3483526,ff +3483527,e8 +3483528,af +3483529,bf +348352b,10 +348352c,96 348352d,8 -348352f,44 -3483530,ae +348352f,9c +3483530,31 3483531,8 -3483533,6c -3483534,96 -3483535,8 -3483537,48 -3483538,a6 -3483539,8 -348353b,70 -348353c,92 +3483533,40 +3483534,11 +3483537,5 +348353c,96 348353d,8 -348353f,68 -3483540,34 -3483541,1 -3483543,ff -3483544,15 -3483545,1 -3483547,3 -348354c,34 -348354d,8 +348353f,70 +3483540,31 +3483541,8 +3483542,ff +3483543,f +3483544,35 +3483545,8 +3483547,30 +3483548,a6 +3483549,8 +348354b,70 +348354c,92 +348354d,28 348354f,1 3483550,a2 3483551,8 -3483552,f -3483553,33 -3483554,3 -3483555,e0 -3483557,8 -348355c,27 -348355d,bd -348355e,ff -348355f,e8 -3483560,af -3483561,bf -3483563,10 -3483564,96 -3483565,8 -3483567,9c -3483568,31 -3483569,8 -348356b,40 -348356c,11 -348356f,5 -3483574,96 -3483575,8 -3483577,70 -3483578,31 -3483579,8 -348357a,ff -348357b,f -348357c,35 -348357d,8 -348357f,30 -3483580,a6 -3483581,8 -3483583,70 -3483584,92 -3483585,28 -3483587,1 -3483588,a2 -3483589,8 -348358b,69 -348358c,96 -348358d,28 -348358f,2 -3483590,a6 -3483591,8 -3483593,6a -3483594,8e -3483595,28 -3483597,4 -3483598,ae -3483599,8 +3483553,69 +3483554,96 +3483555,28 +3483557,2 +3483558,a6 +3483559,8 +348355b,6a +348355c,8e +348355d,28 +348355f,4 +3483560,ae +3483561,8 +3483563,6c +3483564,c +3483565,10 +3483566,d +3483567,63 +3483568,34 +3483569,4 +348356c,c +348356d,10 +348356e,d +348356f,63 +3483570,34 +3483571,4 +3483573,1 +3483574,c +3483575,10 +3483576,d +3483577,63 +3483578,34 +3483579,4 +348357b,2 +348357c,8f +348357d,bf +348357f,10 +3483580,27 +3483581,bd +3483583,18 +3483584,3 +3483585,e0 +3483587,8 +348358c,2 +348358d,4 +348358e,40 +348358f,21 +3483590,3c +3483591,9 +3483592,80 +3483593,40 +3483594,25 +3483595,29 +3483596,36 +3483597,38 +3483598,91 +3483599,a 348359b,6c -348359c,c -348359d,10 -348359e,d -348359f,71 -34835a0,34 -34835a1,4 -34835a4,c -34835a5,10 -34835a6,d -34835a7,71 -34835a8,34 -34835a9,4 -34835ab,1 -34835ac,c -34835ad,10 -34835ae,d -34835af,71 -34835b0,34 -34835b1,4 -34835b3,2 -34835b4,8f -34835b5,bf -34835b7,10 -34835b8,27 -34835b9,bd -34835bb,18 -34835bc,3 -34835bd,e0 -34835bf,8 -34835c4,2 -34835c5,4 -34835c6,40 -34835c7,21 -34835c8,3c -34835c9,9 -34835ca,80 -34835cb,40 -34835cc,25 -34835cd,29 -34835ce,36 -34835cf,70 -34835d0,91 +348359c,34 +348359d,1 +348359f,ff +34835a0,11 +34835a1,41 +34835a3,5 +34835a8,1 +34835a9,2a +34835aa,48 +34835ab,21 +34835ac,91 +34835ad,29 +34835b0,15 +34835b1,20 +34835b3,1c +34835b8,3c +34835b9,9 +34835ba,80 +34835bb,40 +34835bc,25 +34835bd,29 +34835be,36 +34835bf,2b +34835c0,25 +34835c1,29 +34835c3,1 +34835c4,91 +34835c5,2a +34835c8,11 +34835c9,40 +34835cb,13 +34835d0,2 34835d1,a -34835d3,6c -34835d4,34 -34835d5,1 -34835d7,ff -34835d8,11 -34835d9,41 -34835db,5 -34835e0,1 -34835e1,2a -34835e2,48 -34835e3,21 -34835e4,91 -34835e5,29 -34835e8,15 -34835e9,20 -34835eb,1c -34835f0,3c -34835f1,9 -34835f2,80 -34835f3,40 -34835f4,25 -34835f5,29 -34835f6,36 -34835f7,63 -34835f8,25 -34835f9,29 -34835fb,1 -34835fc,91 -34835fd,2a +34835d2,58 +34835d3,21 +34835d4,91 +34835d5,6b +34835d7,74 +34835d8,34 +34835d9,1 +34835db,ff +34835dc,11 +34835dd,61 +34835de,ff +34835df,f8 +34835e4,92 +34835e5,c +34835e7,6c +34835e8,11 +34835e9,8a +34835ea,ff +34835eb,f5 +34835f0,92 +34835f1,c +34835f3,6d +34835f4,11 +34835f5,8a +34835f6,ff +34835f7,f2 +34835fc,92 +34835fd,c +34835ff,6e 3483600,11 -3483601,40 -3483603,13 -3483608,2 -3483609,a -348360a,58 -348360b,21 -348360c,91 -348360d,6b -348360f,74 -3483610,34 -3483611,1 -3483613,ff -3483614,11 -3483615,61 -3483616,ff -3483617,f8 -348361c,92 -348361d,c -348361f,6c -3483620,11 -3483621,8a -3483622,ff -3483623,f5 -3483628,92 -3483629,c -348362b,6d -348362c,11 -348362d,8a -348362e,ff -348362f,f2 -3483634,92 -3483635,c -3483637,6e -3483638,11 -3483639,8a -348363a,ff -348363b,ef -3483640,a1 -3483641,b -3483643,69 -3483644,a1 -3483645,a -3483647,6c -3483648,10 -348364b,4 -3483650,34 -3483651,9 -3483653,ff -3483654,a1 -3483655,9 -3483657,69 -3483658,a1 -3483659,9 -348365b,6c -348365c,3 -348365d,e0 -348365f,8 -3483664,7 -3483665,9 -3483666,f -3483667,2 -3483668,3 -3483669,1 -348366a,d -348366b,b -3483671,1 -3483672,1 -3483673,1 -3483674,1 -3483675,1 -3483677,1 -3483678,1 -3483679,1 -348367a,1 -348367b,1 -348367d,1 -348367f,1 -3483680,1 -3483681,1 -3483682,1 -3483683,1 -3483684,1 -3483685,1 -3483686,1 -3483689,33 -348368a,8 -348368b,21 -348368c,20 -348368d,f -348368f,47 -3483690,15 -3483691,ea -3483693,e -3483694,3c -3483695,2 -3483696,80 -3483697,12 -3483698,8c -3483699,42 -348369a,a5 -348369b,d4 -348369c,8e -348369d,6f -348369f,a4 -34836a1,f -34836a2,7a -34836a3,3 -34836a4,14 -34836a5,40 -34836a7,5 -34836a8,34 -34836a9,2 -34836aa,48 -34836ab,30 -34836ac,15 -34836ad,e2 -34836af,7 -34836b4,24 -34836b5,19 -34836b7,3 -34836b8,10 -34836bb,4 -34836bc,34 -34836bd,2 -34836be,63 -34836bf,11 -34836c0,15 -34836c1,e2 +3483601,8a +3483602,ff +3483603,ef +3483608,a1 +3483609,b +348360b,69 +348360c,a1 +348360d,a +348360f,6c +3483610,10 +3483613,4 +3483618,34 +3483619,9 +348361b,ff +348361c,a1 +348361d,9 +348361f,69 +3483620,a1 +3483621,9 +3483623,6c +3483624,3 +3483625,e0 +3483627,8 +348362c,7 +348362d,9 +348362e,f +348362f,2 +3483630,3 +3483631,1 +3483632,d +3483633,b +3483639,1 +348363a,1 +348363b,1 +348363c,1 +348363d,1 +348363f,1 +3483640,1 +3483641,1 +3483642,1 +3483643,1 +3483645,1 +3483647,1 +3483648,1 +3483649,1 +348364a,1 +348364b,1 +348364c,1 +348364d,1 +348364e,1 +3483651,33 +3483652,8 +3483653,21 +3483654,20 +3483655,f +3483657,47 +3483658,15 +3483659,ea +348365b,e +348365c,3c +348365d,2 +348365e,80 +348365f,12 +3483660,8c +3483661,42 +3483662,a5 +3483663,d4 +3483664,8e +3483665,6f +3483667,a4 +3483669,f +348366a,7a +348366b,3 +348366c,14 +348366d,40 +348366f,5 +3483670,34 +3483671,2 +3483672,48 +3483673,30 +3483674,15 +3483675,e2 +3483677,7 +348367c,24 +348367d,19 +348367f,3 +3483680,10 +3483683,4 +3483684,34 +3483685,2 +3483686,63 +3483687,11 +3483688,15 +3483689,e2 +348368b,2 +3483690,24 +3483691,19 +3483693,3 +3483694,3 +3483695,e0 +3483697,8 +348369c,8d +348369d,ad +348369e,8a +348369f,a0 +34836a0,34 +34836a1,2 +34836a2,80 +34836a4,10 +34836a5,4d +34836a7,2 +34836ac,10 +34836af,9 +34836b0,3c +34836b1,f +34836b2,80 +34836b3,1e +34836b4,25 +34836b5,ef +34836b6,84 +34836b7,a0 +34836b8,81 +34836b9,e2 +34836ba,1c +34836bb,bf +34836bc,30 +34836bd,42 +34836bf,1 +34836c0,10 +34836c1,40 34836c3,2 -34836c8,24 -34836c9,19 -34836cb,3 -34836cc,3 -34836cd,e0 -34836cf,8 -34836d4,8d -34836d5,ad -34836d6,8a -34836d7,a0 -34836d8,34 -34836d9,2 -34836da,80 -34836dc,10 -34836dd,4d -34836df,2 -34836e4,10 -34836e7,9 -34836e8,3c -34836e9,f -34836ea,80 -34836eb,1e -34836ec,25 -34836ed,ef -34836ee,84 -34836ef,a0 -34836f0,81 -34836f1,e2 -34836f2,1c -34836f3,bf -34836f4,30 -34836f5,42 -34836f7,1 -34836f8,10 -34836f9,40 -34836fb,2 -3483700,10 -3483703,2 -3483704,34 -3483705,2 -3483707,1 -3483708,a1 -3483709,e2 -348370a,1c -348370b,bf -348370c,3 -348370d,e0 -348370f,8 -3483715,33 -3483716,8 -3483717,21 -3483718,3c -3483719,2 -348371a,80 -348371b,12 -348371c,8c -348371d,42 -348371e,a5 -348371f,d4 -3483720,8e -3483721,6f -3483723,a4 -3483725,f -3483726,7a -3483727,3 -3483728,14 -3483729,40 -348372b,5 -348372c,34 -348372d,2 -348372e,48 -348372f,30 -3483730,15 -3483731,e2 -3483733,7 -3483738,24 -3483739,19 -348373b,3 -348373c,10 -348373f,4 -3483740,34 -3483741,2 -3483742,63 -3483743,11 -3483744,15 -3483745,e2 -3483747,2 -348374c,24 -348374d,19 -348374f,3 -3483750,3 -3483751,e0 -3483753,8 -3483758,34 -3483759,1 -348375b,18 -348375c,14 -348375d,81 -348375f,11 -3483764,14 -3483765,40 -3483767,f -348376c,3c -348376d,a -348376e,80 -348376f,12 -3483770,25 -3483771,4a -3483772,a5 -3483773,d0 -3483774,81 -3483775,48 -3483777,a6 -3483778,31 -3483779,8 -348377b,20 -348377c,11 -348377f,9 -3483780,34 -3483781,2 -3483784,34 -3483785,2 -3483787,1 -3483788,81 -3483789,48 -348378b,7b -348378c,34 -348378d,9 -348378f,7 -3483790,11 -3483791,9 -3483793,4 -3483794,34 -3483795,a -3483797,8 -3483798,11 -3483799,a -348379b,2 -34837a0,34 -34837a1,2 -34837a4,3 -34837a5,e0 -34837a7,8 -34837ac,80 -34837ad,a8 -34837b0,25 -34837b1,9 -34837b3,1 -34837b4,15 -34837b5,20 -34837b7,e -34837bc,27 -34837bd,bd -34837be,ff -34837bf,e8 -34837c0,af -34837c1,bf -34837c3,14 -34837c4,af -34837c5,a4 -34837c7,18 -34837c8,af -34837c9,a5 -34837cb,1c -34837cd,5 -34837ce,20 -34837cf,25 -34837d0,24 -34837d1,a5 -34837d3,8 -34837d4,c -34837d5,1 -34837d6,5c -34837d7,c -34837d8,24 -34837d9,c6 -34837da,ff -34837db,f8 -34837dc,8f -34837dd,a4 -34837df,18 -34837e0,8f -34837e1,a5 -34837e3,1c -34837e4,34 -34837e5,6 -34837e7,80 -34837e8,8f -34837e9,bf -34837eb,14 -34837ec,27 -34837ed,bd -34837ef,18 -34837f0,8 -34837f1,1 -34837f2,5c -34837f3,c -34837f8,a2 -34837f9,25 -34837fb,21 -34837fc,3c +34836c8,10 +34836cb,2 +34836cc,34 +34836cd,2 +34836cf,1 +34836d0,a1 +34836d1,e2 +34836d2,1c +34836d3,bf +34836d4,3 +34836d5,e0 +34836d7,8 +34836dd,33 +34836de,8 +34836df,21 +34836e0,3c +34836e1,2 +34836e2,80 +34836e3,12 +34836e4,8c +34836e5,42 +34836e6,a5 +34836e7,d4 +34836e8,8e +34836e9,6f +34836eb,a4 +34836ed,f +34836ee,7a +34836ef,3 +34836f0,14 +34836f1,40 +34836f3,5 +34836f4,34 +34836f5,2 +34836f6,48 +34836f7,30 +34836f8,15 +34836f9,e2 +34836fb,7 +3483700,24 +3483701,19 +3483703,3 +3483704,10 +3483707,4 +3483708,34 +3483709,2 +348370a,63 +348370b,11 +348370c,15 +348370d,e2 +348370f,2 +3483714,24 +3483715,19 +3483717,3 +3483718,3 +3483719,e0 +348371b,8 +3483720,34 +3483721,1 +3483723,18 +3483724,14 +3483725,81 +3483727,11 +348372c,14 +348372d,40 +348372f,f +3483734,3c +3483735,a +3483736,80 +3483737,12 +3483738,25 +3483739,4a +348373a,a5 +348373b,d0 +348373c,81 +348373d,48 +348373f,a6 +3483740,31 +3483741,8 +3483743,20 +3483744,11 +3483747,9 +3483748,34 +3483749,2 +348374c,34 +348374d,2 +348374f,1 +3483750,81 +3483751,48 +3483753,7b +3483754,34 +3483755,9 +3483757,7 +3483758,11 +3483759,9 +348375b,4 +348375c,34 +348375d,a +348375f,8 +3483760,11 +3483761,a +3483763,2 +3483768,34 +3483769,2 +348376c,3 +348376d,e0 +348376f,8 +3483774,80 +3483775,a8 +3483778,25 +3483779,9 +348377b,1 +348377c,15 +348377d,20 +348377f,e +3483784,27 +3483785,bd +3483786,ff +3483787,e8 +3483788,af +3483789,bf +348378b,14 +348378c,af +348378d,a4 +348378f,18 +3483790,af +3483791,a5 +3483793,1c +3483795,5 +3483796,20 +3483797,25 +3483798,24 +3483799,a5 +348379b,8 +348379c,c +348379d,1 +348379e,5c +348379f,c +34837a0,24 +34837a1,c6 +34837a2,ff +34837a3,f8 +34837a4,8f +34837a5,a4 +34837a7,18 +34837a8,8f +34837a9,a5 +34837ab,1c +34837ac,34 +34837ad,6 +34837af,80 +34837b0,8f +34837b1,bf +34837b3,14 +34837b4,27 +34837b5,bd +34837b7,18 +34837b8,8 +34837b9,1 +34837ba,5c +34837bb,c +34837c0,a2 +34837c1,25 +34837c3,21 +34837c4,3c +34837c5,10 +34837c6,80 +34837c7,40 +34837c8,26 +34837c9,10 +34837ca,17 +34837cb,fc +34837cc,26 +34837cd,10 +34837cf,4 +34837d0,8e +34837d1,a +34837d4,11 +34837d5,40 +34837d7,b +34837dd,a +34837de,7c +34837df,2 +34837e0,1 +34837e1,f1 +34837e2,78 +34837e3,20 +34837e4,31 +34837e5,58 +34837e6,ff +34837e9,18 +34837ea,c2 +34837eb,2 +34837ec,17 +34837ef,3 +34837f0,31 +34837f1,59 +34837f3,ff +34837f4,81 +34837f5,ea +34837f8,3 +34837f9,2a +34837fa,c8 +34837fb,25 +34837fc,8 34837fd,10 -34837fe,80 -34837ff,40 -3483800,26 -3483801,10 -3483802,17 -3483803,fc -3483804,26 -3483805,10 -3483807,4 -3483808,8e -3483809,a -348380c,11 -348380d,40 -348380f,b -3483815,a -3483816,7c -3483817,2 -3483818,1 -3483819,f1 -348381a,78 -348381b,20 -348381c,31 -348381d,58 -348381e,ff -3483821,18 -3483822,c2 -3483823,2 -3483824,17 -3483827,3 -3483828,31 -3483829,59 -348382b,ff -348382c,81 -348382d,ea -3483830,3 -3483831,2a -3483832,c8 -3483833,25 -3483834,8 -3483835,10 -3483836,e -3483837,1 -3483838,a1 -3483839,f9 -348383c,3 -348383d,e0 +34837fe,d +34837ff,f3 +3483800,a1 +3483801,f9 +3483804,3 +3483805,e0 +3483807,8 +348380c,27 +348380d,bd +348380e,ff +348380f,f0 +3483810,af +3483811,bf +3483813,8 +3483814,c +3483815,10 +3483816,e +3483817,11 +3483818,22 +3483819,64 +348381a,ff +348381b,ff +348381c,34 +348381d,4a +3483820,8f +3483821,bf +3483823,8 +3483824,27 +3483825,bd +3483827,10 +3483828,27 +3483829,bd +348382a,ff +348382b,f0 +348382c,af +348382d,bf +348382f,8 +3483830,c +3483831,10 +3483832,e +3483833,11 +3483834,36 +3483835,44 +3483838,34 +3483839,50 +348383c,8f +348383d,bf 348383f,8 -3483844,27 -3483845,bd -3483846,ff -3483847,f0 -3483848,af -3483849,bf -348384b,8 -348384c,c -348384d,10 -348384e,e -348384f,1f -3483850,22 -3483851,64 -3483852,ff -3483853,ff -3483854,34 -3483855,4a -3483858,8f -3483859,bf -348385b,8 -348385c,27 -348385d,bd -348385f,10 -3483860,27 -3483861,bd -3483862,ff -3483863,f0 -3483864,af -3483865,bf -3483867,8 -3483868,c -3483869,10 -348386a,e -348386b,1f -348386c,36 -348386d,44 -3483870,34 -3483871,50 -3483874,8f -3483875,bf -3483877,8 -3483878,27 -3483879,bd -348387b,10 -348387c,3c -348387d,8 -348387e,80 -348387f,40 -3483880,25 -3483881,8 -3483882,1c -3483883,2 +3483840,27 +3483841,bd +3483843,10 +3483844,3c +3483845,8 +3483846,80 +3483847,40 +3483848,25 +3483849,8 +348384a,1c +348384b,2 +348384c,91 +348384d,8 +3483850,15 +3483853,7 +3483858,3c +3483859,8 +348385a,80 +348385b,12 +348385c,25 +348385d,8 +348385e,a5 +348385f,d0 +3483860,1 +3483861,4 +3483862,40 +3483863,20 +3483864,91 +3483865,2 +3483867,24 +3483868,10 +348386b,7 +3483871,8 +3483872,40 +3483873,c0 +3483874,3c +3483875,2 +3483876,80 +3483877,40 +3483878,24 +3483879,42 +348387a,1c +348387b,3 +348387c,1 +348387d,2 +348387e,40 +348387f,20 +3483880,1 +3483881,4 +3483882,40 +3483883,20 3483884,91 -3483885,8 -3483888,15 -348388b,7 -3483890,3c -3483891,8 -3483892,80 -3483893,12 -3483894,25 -3483895,8 -3483896,a5 -3483897,d0 -3483898,1 -3483899,4 -348389a,40 -348389b,20 -348389c,91 -348389d,2 -348389f,24 -34838a0,10 -34838a3,7 -34838a9,8 -34838aa,40 -34838ab,c0 -34838ac,3c -34838ad,2 -34838ae,80 -34838af,40 -34838b0,24 -34838b1,42 -34838b2,1c -34838b3,3 -34838b4,1 -34838b5,2 -34838b6,40 -34838b7,20 -34838b8,1 -34838b9,4 -34838ba,40 -34838bb,20 -34838bc,91 -34838bd,2 -34838c0,3 -34838c1,e0 -34838c3,8 -34838c8,8f -34838c9,b6 -34838cb,30 -34838cc,8f -34838cd,b7 -34838cf,34 -34838d0,8f -34838d1,be -34838d3,38 -34838d4,3c -34838d5,8 -34838d6,80 -34838d7,40 -34838d8,25 -34838d9,8 -34838da,1c -34838db,2 -34838dc,a1 -34838e0,3 -34838e1,e0 -34838e3,8 +3483885,2 +3483888,3 +3483889,e0 +348388b,8 +3483890,8f +3483891,b6 +3483893,30 +3483894,8f +3483895,b7 +3483897,34 +3483898,8f +3483899,be +348389b,38 +348389c,3c +348389d,8 +348389e,80 +348389f,40 +34838a0,25 +34838a1,8 +34838a2,1c +34838a3,2 +34838a4,a1 +34838a8,3 +34838a9,e0 +34838ab,8 34b3000,27 34b3001,bd 34b3002,ff diff --git a/data/symbols.json b/data/symbols.json index 4a1eead93..de6508c37 100644 --- a/data/symbols.json +++ b/data/symbols.json @@ -1,6 +1,6 @@ { - "ADULT_INIT_ITEMS": "03483664", - "ADULT_VALID_ITEMS": "03483670", + "ADULT_INIT_ITEMS": "0348362C", + "ADULT_VALID_ITEMS": "03483638", "COOP_GET_ITEM": "03481C01", "EXTENDED_ITEM_DATA": "03482008", "FAIRY_ITEMS": "03481D05", From 226706a5920042ef5ec7a63fe34726ca353b08e7 Mon Sep 17 00:00:00 2001 From: phixtyseven <43648224+phixtyseven@users.noreply.github.com> Date: Fri, 19 Oct 2018 21:32:54 -0700 Subject: [PATCH 741/755] Change Ganon's Castle text to a readable color Replace black (47) with red (41) Black text is difficult to read in regular text boxes. I would imagine it was not intended for this purpose. Light blue seems a better option, being neutral in color theming while still highlighting the topic. Did I say light blue? I meant red. In-game text refers to Ganondorf in red, thus...red. --- Messages.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Messages.py b/Messages.py index 42856dc62..d05686ac0 100644 --- a/Messages.py +++ b/Messages.py @@ -205,7 +205,7 @@ 0x1d: '\x13\x74\x08You got the \x05\x41Boss Key\x05\x40\x01for the \x05\x43Water Temple\x05\x40!\x09', 0x1e: '\x13\x74\x08You got the \x05\x41Boss Key\x05\x40\x01for the \x05\x46Spirit Temple\x05\x40!\x09', 0x2a: '\x13\x74\x08You got the \x05\x41Boss Key\x05\x40\x01for the \x05\x45Shadow Temple\x05\x40!\x09', - 0x61: '\x13\x74\x08You got the \x05\x41Boss Key\x05\x40\x01for \x05\x47Ganon\'s Castle\x05\x40!\x09', + 0x61: '\x13\x74\x08You got the \x05\x41Boss Key\x05\x40\x01for \x05\x41Ganon\'s Castle\x05\x40!\x09', 0x62: '\x13\x75\x08You found the \x05\x41Compass\x05\x40\x01for the \x05\x42Deku Tree\x05\x40!\x09', 0x63: '\x13\x75\x08You found the \x05\x41Compass\x05\x40\x01for \x05\x41Dodongo\'s Cavern\x05\x40!\x09', 0x64: '\x13\x75\x08You found the \x05\x41Compass\x05\x40\x01for \x05\x43Jabu Jabu\'s Belly\x05\x40!\x09', @@ -234,7 +234,7 @@ 0x9b: '\x13\x77\x08You found a \x05\x41Small Key\x05\x40\x01for the \x05\x45Bottom of the Well\x05\x40!\x09', 0x9f: '\x13\x77\x08You found a \x05\x41Small Key\x05\x40\x01for the \x05\x46Gerudo Training\x01Grounds\x05\x40!\x09', 0xa0: '\x13\x77\x08You found a \x05\x41Small Key\x05\x40\x01for the \x05\x46Gerudo Fortress\x05\x40!\x09', - 0xa1: '\x13\x77\x08You found a \x05\x41Small Key\x05\x40\x01for \x05\x47Ganon\'s Castle\x05\x40!\x09', + 0xa1: '\x13\x77\x08You found a \x05\x41Small Key\x05\x40\x01for \x05\x41Ganon\'s Castle\x05\x40!\x09', } From 82c96dac54e50ada012943b18dcdd384158f2bd9 Mon Sep 17 00:00:00 2001 From: Cuphat Date: Sat, 20 Oct 2018 14:35:39 -0700 Subject: [PATCH 742/755] Added 'Auto' option to Shuffle Maps/Compasses This option works with Enhanced Maps/Compasses and gives the player all the maps and compasses from the start. --- ItemList.py | 2 +- Patches.py | 19 ++++++++++++++++--- README.html | 4 ++-- README.md | 4 ++-- Settings.py | 13 ++++++++++--- 5 files changed, 31 insertions(+), 11 deletions(-) diff --git a/ItemList.py b/ItemList.py index 19e753862..c3193c864 100644 --- a/ItemList.py +++ b/ItemList.py @@ -822,7 +822,7 @@ def get_pool_core(world): pool.extend(songlist) - if world.shuffle_mapcompass == 'remove': + if world.shuffle_mapcompass == 'remove' or world.shuffle_mapcompass == 'auto': for item in [item for dungeon in world.dungeons for item in dungeon.dungeon_items]: world.state.collect(item) pool.extend(get_junk_item()) diff --git a/Patches.py b/Patches.py index bf3cfd6cc..2fd5200c9 100644 --- a/Patches.py +++ b/Patches.py @@ -963,7 +963,7 @@ def write_save_table(rom): write_bits_to_save(0x0EEB, 0x02) # "Entered Lake Hylia" write_bits_to_save(0x0EEB, 0x01) # "Entered Dodongo's Cavern" write_bits_to_save(0x0F08, 0x08) # "Entered Hyrule Castle" - + # Make the Kakariko Gate not open with the MS if not world.open_kakariko: rom.write_int32(0xDD3538, 0x34190000) # li t9, 0 @@ -1039,6 +1039,19 @@ def write_save_table(rom): write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x04 + 0x3, 0xDC) # Thieves' Hideout switch flags (heard yells/unlocked doors) write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x0C + 0x2, 0xC4) # Thieves' Hideout collection flags (picked up keys, marks fights finished as well) + # auto maps/compasses + if world.shuffle_mapcompass == 'auto': + write_bits_to_save(0x00A8, 0x06) # "Deku Map/Compass" + write_bits_to_save(0x00A9, 0x06) # "Dodongo Map/Compass" + write_bits_to_save(0x00AA, 0x06) # "Jabu Map/Compass" + write_bits_to_save(0x00AB, 0x06) # "Forest Map/Compass" + write_bits_to_save(0x00AC, 0x06) # "Fire Map/Compass" + write_bits_to_save(0x00AD, 0x06) # "Water Map/Compass" + write_bits_to_save(0x00AF, 0x06) # "Shadow Map/Compass" + write_bits_to_save(0x00AE, 0x06) # "Spirit Map/Compass" + write_bits_to_save(0x00B0, 0x06) # "BotW Map/Compass" + write_bits_to_save(0x00B1, 0x06) # "Ice Map/Compass" + # Revert change that Skips the Epona Race if not world.no_epona_race: rom.write_int32(0xA9E838, 0x03E00008) @@ -1422,7 +1435,7 @@ def write_save_table(rom): # give dungeon items the correct messages message_patch_for_dungeon_items(messages, shop_items, world) - if world.shuffle_mapcompass == 'keysanity' and world.enhance_map_compass: + if (world.shuffle_mapcompass == 'keysanity' or world.shuffle_mapcompass == 'auto') and world.enhance_map_compass: reward_list = {'Kokiri Emerald': "\x05\x42Kokiri Emerald\x05\x40", 'Goron Ruby': "\x05\x41Goron Ruby\x05\x40", 'Zora Sapphire': "\x05\x43Zora Sapphire\x05\x40", @@ -1995,7 +2008,7 @@ def boss_reward_index(world, boss_name): def configure_dungeon_info(rom, world): mq_enable = world.quest == 'mixed' - mapcompass_keysanity = world.settings.shuffle_mapcompass == 'keysanity' and world.settings.enhance_map_compass + mapcompass_keysanity = (world.settings.shuffle_mapcompass == 'keysanity' or world.shuffle_mapcompass == 'auto') and world.settings.enhance_map_compass bosses = ['Queen Gohma', 'King Dodongo', 'Barinade', 'Phantom Ganon', 'Volvagia', 'Morpha', 'Twinrova', 'Bongo Bongo'] diff --git a/README.html b/README.html index cd7746e40..e6e050012 100644 --- a/README.html +++ b/README.html @@ -115,7 +115,7 @@

Shuffled Shops (Random Items)

Shuffle Dungeon Items

This setting allows the player to decide the natural distribution of dungeon items. Dungeon items can be found confined to their original dungeons, spread freely throughout the world, or prevented from existing completely. Items that are prevented from existing completely will be replaced in the item pool with an assortment of various low tier junk items. This feature can be specified for Maps/Compasses, Small Keys, and Boss Keys independently. If Small Keys or Boss Keys are prevented from existing, this will also remove all locks those keys would be used for from existing as well. If Small Keys are left in their original dungeons and the Fire Temple is not in the form of Master Quest, the locked door in the first room that leads to the normal location of the Boss Key will be removed.

Maps and Compasses Give Information

-

This setting, only available if Maps and Compasses are spread across the world, disables the pedestal in the Temple of Time from giving information about the location of the Medallions and Spiritual Stones. Instead, the Compass from each of the eight eligible dungeons will tell the player which dungeon has which reward. If the dungeon quest is set to mixed, each of the ten Maps will tell the player whether any given dungeon is in the vanilla or Master Quest form. The Compasses from Bottom of the Well and Ice Cavern do not give any information.

+

This setting, only available if Maps and Compasses are automatic or spread across the world, disables the pedestal in the Temple of Time from giving information about the location of the Medallions and Spiritual Stones. Instead, the Compass from each of the eight eligible dungeons will tell the player which dungeon has which reward. If the dungeon quest is set to mixed, each of the ten Maps will tell the player whether any given dungeon is in the vanilla or Master Quest form. The Compasses from Bottom of the Well and Ice Cavern do not give any information.

Remove Ganon's Door Boss Lock

This setting removes the Boss Key lock from Ganon's Tower. This removes the need to locate the Ganon's Tower Boss Key to finish the game.

Tokensanity

@@ -327,7 +327,7 @@

Command Line Options

Include all Deku Scrub Salesmen as randomized item and determine their prices (default: off)

--shopsanity [{off,0,1,2,3,4,random}]

Randomize shop items and add the chosen number of items from the general item pool to shop inventories (default: off)

-
--shuffle_mapcompass [{remove,dungeon,keysanity}]
+
--shuffle_mapcompass [{remove,auto,dungeon,keysanity}]

Choose the locations Maps and Compasses can be found (default: dungeon)

--shuffle_smallkeys [{remove,dungeon,keysanity}]

Choose the locations Small Keys can be found (default: dungeon)

diff --git a/README.md b/README.md index 2557582a6..bdef02a53 100644 --- a/README.md +++ b/README.md @@ -404,7 +404,7 @@ location of the Boss Key will be removed. ## Maps and Compasses Give Information -This setting, only available if Maps and Compasses are spread across the world, disables the pedestal in the Temple of Time from giving information about +This setting, only available if Maps and Compasses are automatic or spread across the world, disables the pedestal in the Temple of Time from giving information about the location of the Medallions and Spiritual Stones. Instead, the Compass from each of the eight eligible dungeons will tell the player which dungeon has which reward. If the dungeon quest is set to mixed, each of the ten Maps will tell the player whether any given dungeon is in the vanilla or Master Quest form. The Compasses from Bottom of the Well and Ice Cavern do not give any information. @@ -983,7 +983,7 @@ Include all Deku Scrub Salesmen as randomized item and determine their prices (d Randomize shop items and add the chosen number of items from the general item pool to shop inventories (default: off) ``` ---shuffle_mapcompass [{remove,dungeon,keysanity}] +--shuffle_mapcompass [{remove,auto,dungeon,keysanity}] ``` Choose the locations Maps and Compasses can be found (default: dungeon) diff --git a/Settings.py b/Settings.py index 812e7d957..02075e38a 100644 --- a/Settings.py +++ b/Settings.py @@ -892,6 +892,7 @@ def parse_custom_navi_color(s): 'help': '''\ Sets the Map and Compass placement rules remove: Maps and Compasses are removed from the world. + auto: Start with all Maps and Compasses. dungeon: Maps and Compasses are put in their dungeon. keysanity: Maps and Compasses can appear anywhere. ''' @@ -903,6 +904,7 @@ def parse_custom_navi_color(s): 'default': 'Maps/Compasses: Dungeon Only', 'options': { 'Maps/Compasses: Remove': 'remove', + 'Maps/Compasses: Auto': 'auto', 'Maps/Compasses: Dungeon Only': 'dungeon', 'Maps/Compasses: Anywhere': 'keysanity' }, @@ -910,6 +912,10 @@ def parse_custom_navi_color(s): 'Remove': Maps and Compasses are removed. This will add a small amount of money and refill items to the pool. + + 'Auto': Maps and Compasses are given to you + from the start. This will add a small amount + of money and refill items to the pool. 'Dungeon': Maps and Compasses can only appear in their respective dungeon. @@ -917,7 +923,7 @@ def parse_custom_navi_color(s): 'Anywhere': Maps and Compasses can appear anywhere in the world. - Setting 'Remove' or 'Anywhere' will add 2 + Setting 'Remove', 'Auto, or 'Anywhere' will add 2 more possible locations to each Dungeons. This makes dungeons more profitable, especially Ice Cavern, Water Temple, and Jabu Jabu's Belly. @@ -1024,9 +1030,10 @@ def parse_custom_navi_color(s): Map will tell if a dungeon is vanilla or Master Quest. Compass will tell what medallion or stone is within. This option is only available if shuffle 'Maps/Compasses' - is set to 'Anywhere' + is set to 'Anywhere' or 'Auto' ''', - 'dependency': lambda guivar: guivar['shuffle_mapcompass'].get() == 'Maps/Compasses: Anywhere', + 'dependency': lambda guivar: guivar['shuffle_mapcompass'].get() == 'Maps/Compasses: Anywhere' + or guivar['shuffle_mapcompass'].get() == 'Maps/Compasses: Auto', }), Setting_Info('unlocked_ganondorf', bool, 1, True, { From 21d7efbf33c7ac950b90868e2bd09baded3a1283 Mon Sep 17 00:00:00 2001 From: Nick Langille Date: Sat, 20 Oct 2018 22:58:41 -0400 Subject: [PATCH 743/755] Add free movement on equipment menu --- ASM/build/asm_symbols.txt | 170 ++-- ASM/notes/notes.txt | 10 + ASM/src/constants.asm | 9 +- ASM/src/hacks.asm | 78 +- ASM/src/menu.asm | 83 +- data/rom_patch.txt | 2035 ++++++++++++++++++++----------------- data/symbols.json | 4 +- 7 files changed, 1358 insertions(+), 1031 deletions(-) diff --git a/ASM/build/asm_symbols.txt b/ASM/build/asm_symbols.txt index a2b486ee9..161d68c58 100644 --- a/ASM/build/asm_symbols.txt +++ b/ASM/build/asm_symbols.txt @@ -31,6 +31,7 @@ 00EC9CE7 .byt:0001 8011A5D0 SAVE_CONTEXT 801C84A0 GLOBAL_CONTEXT +801D8C00 SUBSCREEN_CONTEXT 801DAA30 PLAYER_ACTOR 803A9E7E GET_ITEMTABLE 80400000 init @@ -939,89 +940,92 @@ 804032E0 @@loop 80403338 @@no_pending_item 8040334C after_game_state_update -80403370 item_menu_prevent_empty_equip_display -80403374 item_menu_prevent_empty_equip -80403384 @@return -8040338C item_menu_use_blank_description -8040339C @@not_blank -804033A8 give_master_sword -804033C0 before_time_travel -804033F8 after_time_travel -80403434 @@going_back -8040343C @@done -8040346C update_c_button -80403498 @@return -804034A0 after_going_forward -804034DC @@no_init -804034EC after_going_back -8040351C @@not_swordless -80403524 initialize_adult -8040354C @@no_mirror_shield -8040358C init_adult_button -804035B8 @@empty -804035C0 @@loop -80403618 @@set_empty -80403624 @@return -8040362C .byt:0001 -8040362C ADULT_INIT_ITEMS -8040362D .byt:0001 -8040362E .byt:0001 -8040362F .byt:0001 -80403630 .byt:0001 -80403631 .byt:0001 -80403632 .byt:0001 -80403633 .byt:0001 -80403634 .byt:0001 -80403638 .byt:0001 -80403638 ADULT_VALID_ITEMS -80403639 .byt:0001 -8040363A .byt:0001 -8040363B .byt:0001 -8040363C .byt:0001 -8040363D .byt:0001 -8040363E .byt:0001 -8040363F .byt:0001 -80403640 .byt:0001 -80403641 .byt:0001 -80403642 .byt:0001 -80403643 .byt:0001 -80403644 .byt:0001 -80403645 .byt:0001 -80403646 .byt:0001 -80403647 .byt:0001 -80403648 .byt:0001 -80403649 .byt:0001 -8040364A .byt:0001 -8040364B .byt:0001 -8040364C .byt:0001 -8040364D .byt:0001 -8040364E .byt:0001 -8040364F .byt:0001 -80403650 suns_song_fix_event -80403684 @@child -80403694 @@return -8040369C suns_song_fix -804036B0 @@check_suns_status -804036CC @@disable_suns -804036D4 @@return -804036DC warp_song_fix -80403708 @@child -80403718 @@return -80403720 Check_Has_Epona_Song -8040376C @@return -80403774 save_scarecrow_song -804037B8 @@copy_song -804037C0 write_initial_save -804037CC @@save_data_loop -804037FC @@overwrite_type -80403804 @@return -8040380C get_name_char_1 -80403828 get_name_char_2 -80403844 get_name_char -80403870 @@coop_player_name -80403888 @@return -80403890 reset_player_name_id -804038B0 .byt:07A0 +80403370 item_menu_prevent_empty_equip +80403380 @@return +80403388 equipment_menu_prevent_empty_equip +804033A8 @@return +804033BC menu_use_blank_description +804033F0 @@not_equip_menu +80403400 @@return +80403418 equipment_menu_slot_filled +80403468 give_master_sword +80403480 before_time_travel +804034B8 after_time_travel +804034F4 @@going_back +804034FC @@done +8040352C update_c_button +80403558 @@return +80403560 after_going_forward +8040359C @@no_init +804035AC after_going_back +804035DC @@not_swordless +804035E4 initialize_adult +8040360C @@no_mirror_shield +8040364C init_adult_button +80403678 @@empty +80403680 @@loop +804036D8 @@set_empty +804036E4 @@return +804036EC .byt:0001 +804036EC ADULT_INIT_ITEMS +804036ED .byt:0001 +804036EE .byt:0001 +804036EF .byt:0001 +804036F0 .byt:0001 +804036F1 .byt:0001 +804036F2 .byt:0001 +804036F3 .byt:0001 +804036F4 .byt:0001 +804036F8 .byt:0001 +804036F8 ADULT_VALID_ITEMS +804036F9 .byt:0001 +804036FA .byt:0001 +804036FB .byt:0001 +804036FC .byt:0001 +804036FD .byt:0001 +804036FE .byt:0001 +804036FF .byt:0001 +80403700 .byt:0001 +80403701 .byt:0001 +80403702 .byt:0001 +80403703 .byt:0001 +80403704 .byt:0001 +80403705 .byt:0001 +80403706 .byt:0001 +80403707 .byt:0001 +80403708 .byt:0001 +80403709 .byt:0001 +8040370A .byt:0001 +8040370B .byt:0001 +8040370C .byt:0001 +8040370D .byt:0001 +8040370E .byt:0001 +8040370F .byt:0001 +80403710 suns_song_fix_event +80403744 @@child +80403754 @@return +8040375C suns_song_fix +80403770 @@check_suns_status +8040378C @@disable_suns +80403794 @@return +8040379C warp_song_fix +804037C8 @@child +804037D8 @@return +804037E0 Check_Has_Epona_Song +8040382C @@return +80403834 save_scarecrow_song +80403878 @@copy_song +80403880 write_initial_save +8040388C @@save_data_loop +804038BC @@overwrite_type +804038C4 @@return +804038CC get_name_char_1 +804038E8 get_name_char_2 +80403904 get_name_char +80403930 @@coop_player_name +80403948 @@return +80403950 reset_player_name_id +80403970 .byt:06E0 80405000 draw_file_select_hash,00000234 80405234 disp_buf_init,00000018 8040524C sprite_bytes_per_tile,00000028 diff --git a/ASM/notes/notes.txt b/ASM/notes/notes.txt index efc28faef..38e1cb73c 100755 --- a/ASM/notes/notes.txt +++ b/ASM/notes/notes.txt @@ -38,3 +38,13 @@ Equipment (relative to save context): silver gauntlets warp: checks at 0x803A4BE0 (in player instance) T6: Destination (e.g. 0x00A0) T8: Cutscene index? (e.g. 0xFFF0) + +8039F114 item/equipment usability table + +801D8C00 subscreen context + +0x138 (801D8D38) pointer to item description texture + +0x1E8 (801D8DE8) pause screen + +0x21E (801D8E1E) equips cursor index + +0x228 (801D8E28) equips horizontal cursor + +0x232 (801D8E32) equips vertical cursor + +0x23C (801D8E3C) item under cursor \ No newline at end of file diff --git a/ASM/src/constants.asm b/ASM/src/constants.asm index ba8706a88..919b156dc 100755 --- a/ASM/src/constants.asm +++ b/ASM/src/constants.asm @@ -1,8 +1,9 @@ ; Pointers to game state -.definelabel SAVE_CONTEXT, 0x8011A5D0 -.definelabel GLOBAL_CONTEXT, 0x801C84A0 -.definelabel PLAYER_ACTOR, 0x801DAA30 -.definelabel GET_ITEMTABLE, 0x803A9E7E +.definelabel SAVE_CONTEXT, 0x8011A5D0 +.definelabel GLOBAL_CONTEXT, 0x801C84A0 +.definelabel SUBSCREEN_CONTEXT, 0x801D8C00 +.definelabel PLAYER_ACTOR, 0x801DAA30 +.definelabel GET_ITEMTABLE, 0x803A9E7E ; Extended memory map: ; Loaded code files 0x80400000 diff --git a/ASM/src/hacks.asm b/ASM/src/hacks.asm index 52564f312..82efeed07 100755 --- a/ASM/src/hacks.asm +++ b/ASM/src/hacks.asm @@ -244,13 +244,77 @@ li t2, 1 ;================================================================================================== -; Item menu hacks +; Pause menu ;================================================================================================== ; Create a blank texture, overwriting a Japanese item description .org 0x89E800 .fill 0x400, 0 +; Use a blank item description texture if the cursor is on an empty slot +; Replaces: +; sll t4, v1, 10 +; addu a1, t4, t5 +.org 0xBC088C ; In memory: 0x8039820C + jal menu_use_blank_description + nop + +;================================================================================================== +; Equipment menu +;================================================================================================== + +; Left movement check +; Replaces: +; beqz t3, 0x8038D9FC +; nop +.org 0xBB5EAC ; In memory: 0x8038D834 + nop + nop + +; Right movement check +; Replaces: +; beqz t3, 0x8038D9FC +; nop +.org 0xBB5FD4 ; In memory: 0x8038D95C +nop +nop + +; Upward movement check +; Replaces: +; beqz t6, 0x8038DB90 +; nop +.org 0xBB6134 ; In memory: 0x8038DABC +nop +nop + +; Downward movement check +; Replaces: +; beqz t9, 0x8038DB90 +; nop +.org 0xBB61E0 ; In memory: 0x8038DB68 +nop +nop + +; Remove "to Equip" text if the cursor is on an empty slot +; Replaces: +; lbu v1, 0x0000 (t4) +; addiu at, r0, 0x0009 +.org 0xBB6688 ; In memory: 0x8038E008 + jal equipment_menu_prevent_empty_equip + nop + +; Prevent empty slots from being equipped +; Replaces: +; addu t8, t4, v0 +; lbu v1, 0x0000 (t8) +.org 0xBB67C4 ; In memory: 0x8038E144 + jal equipment_menu_prevent_empty_equip + addu t4, t4, v0 + +;================================================================================================== +; Item menu +;================================================================================================== + ; Left movement check ; Replaces: ; beq s4, t5, 0x8038F2B4 @@ -288,8 +352,8 @@ ; addu s1, t6, t7 ; lbu v0, 0x0000 (s1) .org 0xBB7C88 ; In memory: 0x8038F608 - jal item_menu_prevent_empty_equip_display - nop + jal item_menu_prevent_empty_equip + addu s1, t6, t7 ; Prevent empty slots from being equipped ; Replaces: @@ -299,14 +363,6 @@ jal item_menu_prevent_empty_equip nop -; Use a blank item description texture if the cursor is on an empty slot -; Replaces: -; sll t4, v1, 10 -; addu a1, t4, t5 -.org 0xBC088C ; In memory: 0x8039820C - jal item_menu_use_blank_description - nop - ;================================================================================================== ; Song Fixes ;================================================================================================== diff --git a/ASM/src/menu.asm b/ASM/src/menu.asm index d3c8471d2..fb824f678 100755 --- a/ASM/src/menu.asm +++ b/ASM/src/menu.asm @@ -1,11 +1,7 @@ -item_menu_prevent_empty_equip_display: - addu s1, t6, t7 ; s1 = entry in usability table - ; Fall through to item_menu_prevent_empty_equip - ; (the required checks and register usage happen to be identical) item_menu_prevent_empty_equip: ; t1 = item under cursor bne t1, 0xFF, @@return - lbu v0, 0x00 (s1) ; Load from item usability table + lbu v0, 0x00 (s1) ; Load from usability table li v0, 0xFF ; Prevent equip @@ -13,14 +9,83 @@ item_menu_prevent_empty_equip: jr ra li at, 9 ; Restore value expected by caller -item_menu_use_blank_description: +;================================================================================================== + +equipment_menu_prevent_empty_equip: + addiu sp, sp, -0x18 + sw v0, 0x10 (sp) + sw ra, 0x14 (sp) + + jal equipment_menu_slot_filled + nop + + bnez v0, @@return + lbu v1, 0x00 (t4) ; Load from usability table + + li v1, 0xFF ; Prevent equip + +@@return: + lw v0, 0x10 (sp) + lw ra, 0x14 (sp) + addiu sp, sp, 0x18 + jr ra + li at, 9 ; Restore value expected by caller + +;================================================================================================== + +menu_use_blank_description: + addiu sp, sp, -0x18 + sw v0, 0x10 (sp) + sw ra, 0x14 (sp) + + lhu v0, 0x1E8 (s0) ; v0 = menu screen + bne v0, 3, @@not_equip_menu + nop + ; Check whether the equipment under the cursor has been obtained + jal equipment_menu_slot_filled + nop + bnez v0, @@return ; Use default behavior if the equipment is obtained + nop + b @@return + li v1, 0x7A ; 0x7A = index of texture that we made blank +@@not_equip_menu: + + ; Item menu: check whether the slot under the cursor is empty ; 0x17A is an invalid texture index, used if item ID = 0xFF - bne v1, 0x17A, @@not_blank + bne v1, 0x17A, @@return nop li v1, 0x7A ; 0x7A = index of texture that we made blank -@@not_blank: +@@return: ; Displaced code sll t4, v1, 10 - jr ra addu a1, t4, t5 + + lw v0, 0x10 (sp) + lw ra, 0x14 (sp) + jr ra + addiu sp, sp, 0x18 + +;================================================================================================== + +equipment_menu_slot_filled: + addiu sp, sp, -0x18 + sw s0, 0x10 (sp) + sw s1, 0x14 (sp) + + li v0, SAVE_CONTEXT + lhu v0, 0x9C (v0) ; v0 = obtained equipment + li s0, SUBSCREEN_CONTEXT + lhu s1, 0x232 (s0) ; s1 = cursor vertical position + sll s1, s1, 2 ; s1 = s1 * 4 + srlv v0, v0, s1 ; shift flags for this row to least significant 4 bits + lhu s1, 0x228 (s0) ; s1 = cursor horizontal position + addiu s1, s1, -1 + li s0, 1 + sllv s1, s0, s1 ; s1 = mask for this equipment column + and v0, v0, s1 + + lw s0, 0x10 (sp) + lw s1, 0x14 (sp) + jr ra + addiu sp, sp, 0x18 diff --git a/data/rom_patch.txt b/data/rom_patch.txt index ab853745d..4ed794911 100644 --- a/data/rom_patch.txt +++ b/data/rom_patch.txt @@ -478,7 +478,7 @@ a98c33,e0 a9e838,8 a9e839,10 a9e83a,d -a9e83b,c8 +a9e83b,f8 ac9abc,c ac9abd,10 ac9abe,b @@ -503,20 +503,20 @@ acce99,0 acce9b,0 ae5764,8 ae5765,10 -ae5766,c -ae5767,f0 +ae5766,d +ae5767,20 ae5768,0 ae5769,0 ae576a,0 ae576b,0 ae59e0,8 ae59e1,10 -ae59e2,c -ae59e3,fe +ae59e2,d +ae59e3,2e ae5df0,c ae5df1,10 ae5df2,d -ae5df3,a7 +ae5df3,d7 ae5df8,c ae5df9,10 ae5dfa,b @@ -541,8 +541,7 @@ b0640e,0 b0640f,2 b06c2c,c b06c2d,10 -b06c2e,d -b06c2f,f0 +b06c2e,e b06c31,28 b06c33,20 b16b50,c @@ -594,15 +593,15 @@ b17bd3,0 b51694,c b51695,10 b51696,e -b51697,3 +b51697,33 b516c4,c b516c5,10 b516c6,e -b516c7,a +b516c7,3a b52784,c b52785,10 b52786,e -b52787,24 +b52787,54 b52788,0 b52789,0 b5278b,0 @@ -614,14 +613,14 @@ b5293f,18 b54b38,c b54b39,10 b54b3a,d -b54b3b,b7 +b54b3b,e7 b54e5c,c b54e5d,10 b54e5e,d -b54e5f,94 +b54e5f,c4 b55a65,10 -b55a66,d -b55a67,dd +b55a66,e +b55a67,d baed6c,0 baed6d,0 baed6f,0 @@ -706,6 +705,53 @@ baf793,0 baf794,0 baf795,0 baf797,0 +bb5eac,0 +bb5ead,0 +bb5eae,0 +bb5eaf,0 +bb5eb0,0 +bb5eb1,0 +bb5eb2,0 +bb5eb3,0 +bb5fd4,0 +bb5fd5,0 +bb5fd6,0 +bb5fd7,0 +bb5fd8,0 +bb5fd9,0 +bb5fda,0 +bb5fdb,0 +bb6134,0 +bb6135,0 +bb6136,0 +bb6137,0 +bb6138,0 +bb6139,0 +bb613a,0 +bb613b,0 +bb61e0,0 +bb61e1,0 +bb61e2,0 +bb61e3,0 +bb61e4,0 +bb61e5,0 +bb61e6,0 +bb61e7,0 +bb6688,c +bb6689,10 +bb668a,c +bb668b,e2 +bb668c,0 +bb668d,0 +bb668f,0 +bb67c4,c +bb67c5,10 +bb67c6,c +bb67c7,e2 +bb67c8,1 +bb67c9,82 +bb67ca,60 +bb67cb,21 bb77b4,0 bb77b5,0 bb77b7,0 @@ -722,19 +768,21 @@ bb7c88,c bb7c89,10 bb7c8a,c bb7c8b,dc -bb7c8c,0 -bb7c8d,0 +bb7c8c,1 +bb7c8d,cf +bb7c8e,88 +bb7c8f,21 bb7d10,c bb7d11,10 bb7d12,c -bb7d13,dd +bb7d13,dc bb7d14,0 bb7d15,0 bb7d17,0 bc088c,c bc088d,10 bc088e,c -bc088f,e3 +bc088f,ef bc0890,0 bc0891,0 bc0892,0 @@ -830,8 +878,8 @@ c898c9,a c898ca,1d c898cb,2a cb6875,10 -cb6876,c -cb6877,ea +cb6876,d +cb6877,1a d12f78,34 d12f79,f d12f7b,0 @@ -5215,922 +5263,1065 @@ ec9ce7,7a 348336c,27 348336d,bd 348336f,18 -3483370,1 -3483371,cf -3483372,88 -3483373,21 -3483374,34 -3483375,1 -3483377,ff -3483378,15 -3483379,21 -348337b,2 -348337c,92 -348337d,22 -3483380,34 -3483381,2 -3483383,ff -3483384,3 -3483385,e0 -3483387,8 -3483388,34 -3483389,1 -348338b,9 -348338c,34 -348338d,1 -348338e,1 -348338f,7a -3483390,14 -3483391,61 -3483393,2 -3483398,34 -3483399,3 -348339b,7a -348339d,3 -348339e,62 -348339f,80 -34833a0,3 -34833a1,e0 -34833a3,8 -34833a4,1 -34833a5,8d -34833a6,28 -34833a7,21 -34833a8,3c -34833a9,8 -34833aa,80 -34833ab,12 -34833ac,25 -34833ad,8 -34833ae,a5 -34833af,d0 -34833b0,85 -34833b1,9 -34833b3,9c -34833b4,35 -34833b5,2a -34833b7,2 -34833b8,3 -34833b9,e0 -34833bb,8 -34833bc,a5 -34833bd,a -34833bf,9c -34833c0,3c -34833c1,5 -34833c2,80 -34833c3,12 -34833c4,24 -34833c5,a5 -34833c6,a5 -34833c7,d0 -34833c8,3c -34833c9,8 -34833ca,80 -34833cb,40 -34833cc,25 -34833cd,8 -34833ce,20 -34833cf,1c -34833d0,8c -34833d1,a9 -34833d3,68 -34833d4,ad -34833d5,9 -34833d8,8c -34833d9,a9 -34833db,6c -34833dc,ad -34833dd,9 -34833df,4 -34833e0,94 -34833e1,a9 -34833e3,70 -34833e4,a5 -34833e5,9 -34833e7,8 -34833e8,94 -34833e9,a9 -34833eb,9c -34833ec,a5 -34833ed,9 -34833ef,a -34833f0,8 +3483370,34 +3483371,1 +3483373,ff +3483374,15 +3483375,21 +3483377,2 +3483378,92 +3483379,22 +348337c,34 +348337d,2 +348337f,ff +3483380,3 +3483381,e0 +3483383,8 +3483384,34 +3483385,1 +3483387,9 +3483388,27 +3483389,bd +348338a,ff +348338b,e8 +348338c,af +348338d,a2 +348338f,10 +3483390,af +3483391,bf +3483393,14 +3483394,c +3483395,10 +3483396,d +3483397,6 +348339c,14 +348339d,40 +348339f,2 +34833a0,91 +34833a1,83 +34833a4,34 +34833a5,3 +34833a7,ff +34833a8,8f +34833a9,a2 +34833ab,10 +34833ac,8f +34833ad,bf +34833af,14 +34833b0,27 +34833b1,bd +34833b3,18 +34833b4,3 +34833b5,e0 +34833b7,8 +34833b8,34 +34833b9,1 +34833bb,9 +34833bc,27 +34833bd,bd +34833be,ff +34833bf,e8 +34833c0,af +34833c1,a2 +34833c3,10 +34833c4,af +34833c5,bf +34833c7,14 +34833c8,96 +34833c9,2 +34833ca,1 +34833cb,e8 +34833cc,34 +34833cd,1 +34833cf,3 +34833d0,14 +34833d1,41 +34833d3,7 +34833d8,c +34833d9,10 +34833da,d +34833db,6 +34833e0,14 +34833e1,40 +34833e3,7 +34833e8,10 +34833eb,5 +34833ec,34 +34833ed,3 +34833ef,7a +34833f0,34 34833f1,1 -34833f2,be -34833f3,3 -34833f8,27 -34833f9,bd -34833fa,ff -34833fb,e0 -34833fc,af -34833fd,b0 -34833ff,10 -3483400,af -3483401,b1 -3483403,14 -3483404,af -3483405,bf -3483407,18 -3483408,3c -3483409,10 -348340a,80 -348340b,12 -348340c,26 -348340d,10 -348340e,a5 -348340f,d0 -3483410,3c -3483411,11 -3483412,80 -3483413,40 -3483414,26 -3483415,31 -3483416,20 -3483417,1c -3483418,8e -3483419,8 -348341b,4 -348341c,11 -348341f,5 -3483424,c -3483425,10 -3483426,d -3483427,28 -348342c,10 -348342f,3 -3483434,c +34833f2,1 +34833f3,7a +34833f4,14 +34833f5,61 +34833f7,2 +34833fc,34 +34833fd,3 +34833ff,7a +3483401,3 +3483402,62 +3483403,80 +3483404,1 +3483405,8d +3483406,28 +3483407,21 +3483408,8f +3483409,a2 +348340b,10 +348340c,8f +348340d,bf +348340f,14 +3483410,3 +3483411,e0 +3483413,8 +3483414,27 +3483415,bd +3483417,18 +3483418,27 +3483419,bd +348341a,ff +348341b,e8 +348341c,af +348341d,b0 +348341f,10 +3483420,af +3483421,b1 +3483423,14 +3483424,3c +3483425,2 +3483426,80 +3483427,12 +3483428,24 +3483429,42 +348342a,a5 +348342b,d0 +348342c,94 +348342d,42 +348342f,9c +3483430,3c +3483431,10 +3483432,80 +3483433,1e +3483434,26 3483435,10 -3483436,d -3483437,3b -348343c,c -348343d,10 -348343e,d -348343f,1b -3483440,34 -3483441,4 -3483444,c -3483445,10 -3483446,d -3483447,1b -3483448,34 -3483449,4 -348344b,1 -348344c,c +3483436,8c +3483438,96 +3483439,11 +348343a,2 +348343b,32 +348343d,11 +348343e,88 +348343f,80 +3483440,2 +3483441,22 +3483442,10 +3483443,6 +3483444,96 +3483445,11 +3483446,2 +3483447,28 +3483448,26 +3483449,31 +348344a,ff +348344b,ff +348344c,34 348344d,10 -348344e,d -348344f,1b -3483450,34 -3483451,4 -3483453,2 -3483454,8f -3483455,b0 -3483457,10 +348344f,1 +3483450,2 +3483451,30 +3483452,88 +3483453,4 +3483455,51 +3483456,10 +3483457,24 3483458,8f -3483459,b1 -348345b,14 +3483459,b0 +348345b,10 348345c,8f -348345d,bf -348345f,18 -3483460,27 -3483461,bd -3483463,20 -3483464,3 -3483465,e0 -3483467,8 -348346c,2 -348346d,4 -348346e,40 -348346f,21 -3483470,91 +348345d,b1 +348345f,14 +3483460,3 +3483461,e0 +3483463,8 +3483464,27 +3483465,bd +3483467,18 +3483468,3c +3483469,8 +348346a,80 +348346b,12 +348346c,25 +348346d,8 +348346e,a5 +348346f,d0 +3483470,85 3483471,9 -3483473,6c -3483474,34 -3483475,1 -3483477,ff -3483478,11 -3483479,21 -348347b,7 -3483480,2 -3483481,9 -3483482,48 -3483483,21 -3483484,91 -3483485,29 -3483487,74 -3483488,34 -3483489,1 -348348b,2c -348348c,11 -348348d,21 -348348f,2 -3483494,a1 +3483473,9c +3483474,35 +3483475,2a +3483477,2 +3483478,3 +3483479,e0 +348347b,8 +348347c,a5 +348347d,a +348347f,9c +3483480,3c +3483481,5 +3483482,80 +3483483,12 +3483484,24 +3483485,a5 +3483486,a5 +3483487,d0 +3483488,3c +3483489,8 +348348a,80 +348348b,40 +348348c,25 +348348d,8 +348348e,20 +348348f,1c +3483490,8c +3483491,a9 +3483493,68 +3483494,ad 3483495,9 -3483497,69 -3483498,3 -3483499,e0 -348349b,8 -34834a0,27 -34834a1,bd -34834a2,ff -34834a3,e8 -34834a4,af -34834a5,bf -34834a7,10 -34834a8,8e -34834a9,28 -34834ac,ae -34834ad,8 -34834af,40 -34834b0,8e -34834b1,28 -34834b3,4 -34834b4,ae -34834b5,8 -34834b7,44 -34834b8,96 -34834b9,28 -34834bb,8 -34834bc,a6 -34834bd,8 -34834bf,48 -34834c0,a2 -34834c2,f -34834c3,33 -34834c4,92 -34834c5,8 -34834c7,4a -34834c8,34 -34834c9,1 -34834cb,ff -34834cc,15 -34834cd,1 -34834cf,3 -34834d4,c -34834d5,10 -34834d6,d -34834d7,49 -34834dc,8f -34834dd,bf -34834df,10 -34834e0,27 -34834e1,bd -34834e3,18 -34834e4,3 -34834e5,e0 -34834e7,8 -34834ec,8e -34834ed,8 -34834ef,40 -34834f0,ae -34834f1,8 -34834f3,68 -34834f4,8e -34834f5,8 -34834f7,44 -34834f8,ae -34834f9,8 -34834fb,6c -34834fc,96 -34834fd,8 -34834ff,48 -3483500,a6 -3483501,8 -3483503,70 -3483504,92 -3483505,8 -3483507,68 +3483498,8c +3483499,a9 +348349b,6c +348349c,ad +348349d,9 +348349f,4 +34834a0,94 +34834a1,a9 +34834a3,70 +34834a4,a5 +34834a5,9 +34834a7,8 +34834a8,94 +34834a9,a9 +34834ab,9c +34834ac,a5 +34834ad,9 +34834af,a +34834b0,8 +34834b1,1 +34834b2,be +34834b3,3 +34834b8,27 +34834b9,bd +34834ba,ff +34834bb,e0 +34834bc,af +34834bd,b0 +34834bf,10 +34834c0,af +34834c1,b1 +34834c3,14 +34834c4,af +34834c5,bf +34834c7,18 +34834c8,3c +34834c9,10 +34834ca,80 +34834cb,12 +34834cc,26 +34834cd,10 +34834ce,a5 +34834cf,d0 +34834d0,3c +34834d1,11 +34834d2,80 +34834d3,40 +34834d4,26 +34834d5,31 +34834d6,20 +34834d7,1c +34834d8,8e +34834d9,8 +34834db,4 +34834dc,11 +34834df,5 +34834e4,c +34834e5,10 +34834e6,d +34834e7,58 +34834ec,10 +34834ef,3 +34834f4,c +34834f5,10 +34834f6,d +34834f7,6b +34834fc,c +34834fd,10 +34834fe,d +34834ff,4b +3483500,34 +3483501,4 +3483504,c +3483505,10 +3483506,d +3483507,4b 3483508,34 -3483509,1 -348350b,ff -348350c,15 -348350d,1 -348350f,3 -3483514,34 -3483515,8 -3483517,1 -3483518,a2 -3483519,8 -348351a,f -348351b,33 -348351c,3 -348351d,e0 -348351f,8 -3483524,27 -3483525,bd -3483526,ff -3483527,e8 -3483528,af -3483529,bf -348352b,10 -348352c,96 -348352d,8 -348352f,9c -3483530,31 -3483531,8 -3483533,40 -3483534,11 -3483537,5 -348353c,96 -348353d,8 -348353f,70 -3483540,31 -3483541,8 -3483542,ff -3483543,f -3483544,35 -3483545,8 -3483547,30 -3483548,a6 -3483549,8 -348354b,70 -348354c,92 -348354d,28 -348354f,1 -3483550,a2 -3483551,8 -3483553,69 -3483554,96 -3483555,28 -3483557,2 -3483558,a6 -3483559,8 -348355b,6a -348355c,8e -348355d,28 -348355f,4 -3483560,ae -3483561,8 -3483563,6c -3483564,c -3483565,10 -3483566,d -3483567,63 -3483568,34 -3483569,4 -348356c,c -348356d,10 -348356e,d -348356f,63 -3483570,34 -3483571,4 -3483573,1 -3483574,c -3483575,10 -3483576,d -3483577,63 -3483578,34 -3483579,4 -348357b,2 -348357c,8f -348357d,bf -348357f,10 -3483580,27 -3483581,bd -3483583,18 -3483584,3 -3483585,e0 -3483587,8 -348358c,2 -348358d,4 -348358e,40 -348358f,21 -3483590,3c -3483591,9 -3483592,80 -3483593,40 -3483594,25 -3483595,29 -3483596,36 -3483597,38 -3483598,91 -3483599,a -348359b,6c -348359c,34 -348359d,1 -348359f,ff -34835a0,11 -34835a1,41 -34835a3,5 -34835a8,1 -34835a9,2a -34835aa,48 -34835ab,21 -34835ac,91 -34835ad,29 -34835b0,15 -34835b1,20 -34835b3,1c -34835b8,3c -34835b9,9 -34835ba,80 -34835bb,40 -34835bc,25 -34835bd,29 -34835be,36 -34835bf,2b -34835c0,25 -34835c1,29 -34835c3,1 -34835c4,91 -34835c5,2a -34835c8,11 -34835c9,40 -34835cb,13 -34835d0,2 -34835d1,a -34835d2,58 -34835d3,21 -34835d4,91 -34835d5,6b -34835d7,74 -34835d8,34 -34835d9,1 -34835db,ff -34835dc,11 -34835dd,61 -34835de,ff -34835df,f8 -34835e4,92 -34835e5,c -34835e7,6c -34835e8,11 -34835e9,8a -34835ea,ff -34835eb,f5 -34835f0,92 -34835f1,c -34835f3,6d +3483509,4 +348350b,1 +348350c,c +348350d,10 +348350e,d +348350f,4b +3483510,34 +3483511,4 +3483513,2 +3483514,8f +3483515,b0 +3483517,10 +3483518,8f +3483519,b1 +348351b,14 +348351c,8f +348351d,bf +348351f,18 +3483520,27 +3483521,bd +3483523,20 +3483524,3 +3483525,e0 +3483527,8 +348352c,2 +348352d,4 +348352e,40 +348352f,21 +3483530,91 +3483531,9 +3483533,6c +3483534,34 +3483535,1 +3483537,ff +3483538,11 +3483539,21 +348353b,7 +3483540,2 +3483541,9 +3483542,48 +3483543,21 +3483544,91 +3483545,29 +3483547,74 +3483548,34 +3483549,1 +348354b,2c +348354c,11 +348354d,21 +348354f,2 +3483554,a1 +3483555,9 +3483557,69 +3483558,3 +3483559,e0 +348355b,8 +3483560,27 +3483561,bd +3483562,ff +3483563,e8 +3483564,af +3483565,bf +3483567,10 +3483568,8e +3483569,28 +348356c,ae +348356d,8 +348356f,40 +3483570,8e +3483571,28 +3483573,4 +3483574,ae +3483575,8 +3483577,44 +3483578,96 +3483579,28 +348357b,8 +348357c,a6 +348357d,8 +348357f,48 +3483580,a2 +3483582,f +3483583,33 +3483584,92 +3483585,8 +3483587,4a +3483588,34 +3483589,1 +348358b,ff +348358c,15 +348358d,1 +348358f,3 +3483594,c +3483595,10 +3483596,d +3483597,79 +348359c,8f +348359d,bf +348359f,10 +34835a0,27 +34835a1,bd +34835a3,18 +34835a4,3 +34835a5,e0 +34835a7,8 +34835ac,8e +34835ad,8 +34835af,40 +34835b0,ae +34835b1,8 +34835b3,68 +34835b4,8e +34835b5,8 +34835b7,44 +34835b8,ae +34835b9,8 +34835bb,6c +34835bc,96 +34835bd,8 +34835bf,48 +34835c0,a6 +34835c1,8 +34835c3,70 +34835c4,92 +34835c5,8 +34835c7,68 +34835c8,34 +34835c9,1 +34835cb,ff +34835cc,15 +34835cd,1 +34835cf,3 +34835d4,34 +34835d5,8 +34835d7,1 +34835d8,a2 +34835d9,8 +34835da,f +34835db,33 +34835dc,3 +34835dd,e0 +34835df,8 +34835e4,27 +34835e5,bd +34835e6,ff +34835e7,e8 +34835e8,af +34835e9,bf +34835eb,10 +34835ec,96 +34835ed,8 +34835ef,9c +34835f0,31 +34835f1,8 +34835f3,40 34835f4,11 -34835f5,8a -34835f6,ff -34835f7,f2 -34835fc,92 -34835fd,c -34835ff,6e -3483600,11 -3483601,8a +34835f7,5 +34835fc,96 +34835fd,8 +34835ff,70 +3483600,31 +3483601,8 3483602,ff -3483603,ef -3483608,a1 -3483609,b -348360b,69 -348360c,a1 -348360d,a -348360f,6c -3483610,10 -3483613,4 -3483618,34 -3483619,9 -348361b,ff -348361c,a1 -348361d,9 -348361f,69 -3483620,a1 -3483621,9 +3483603,f +3483604,35 +3483605,8 +3483607,30 +3483608,a6 +3483609,8 +348360b,70 +348360c,92 +348360d,28 +348360f,1 +3483610,a2 +3483611,8 +3483613,69 +3483614,96 +3483615,28 +3483617,2 +3483618,a6 +3483619,8 +348361b,6a +348361c,8e +348361d,28 +348361f,4 +3483620,ae +3483621,8 3483623,6c -3483624,3 -3483625,e0 -3483627,8 -348362c,7 -348362d,9 -348362e,f -348362f,2 -3483630,3 -3483631,1 -3483632,d -3483633,b -3483639,1 -348363a,1 -348363b,1 -348363c,1 -348363d,1 -348363f,1 -3483640,1 -3483641,1 -3483642,1 -3483643,1 -3483645,1 -3483647,1 -3483648,1 -3483649,1 -348364a,1 -348364b,1 -348364c,1 -348364d,1 -348364e,1 -3483651,33 -3483652,8 -3483653,21 -3483654,20 -3483655,f -3483657,47 -3483658,15 -3483659,ea -348365b,e -348365c,3c -348365d,2 -348365e,80 -348365f,12 -3483660,8c -3483661,42 -3483662,a5 -3483663,d4 -3483664,8e -3483665,6f -3483667,a4 -3483669,f -348366a,7a -348366b,3 -348366c,14 -348366d,40 -348366f,5 -3483670,34 -3483671,2 -3483672,48 -3483673,30 -3483674,15 -3483675,e2 -3483677,7 -348367c,24 -348367d,19 -348367f,3 -3483680,10 -3483683,4 -3483684,34 -3483685,2 -3483686,63 -3483687,11 -3483688,15 -3483689,e2 -348368b,2 -3483690,24 -3483691,19 -3483693,3 -3483694,3 -3483695,e0 -3483697,8 -348369c,8d -348369d,ad -348369e,8a -348369f,a0 -34836a0,34 -34836a1,2 -34836a2,80 -34836a4,10 -34836a5,4d -34836a7,2 -34836ac,10 -34836af,9 -34836b0,3c -34836b1,f -34836b2,80 -34836b3,1e -34836b4,25 -34836b5,ef -34836b6,84 -34836b7,a0 -34836b8,81 -34836b9,e2 -34836ba,1c -34836bb,bf -34836bc,30 -34836bd,42 -34836bf,1 -34836c0,10 -34836c1,40 -34836c3,2 -34836c8,10 -34836cb,2 -34836cc,34 -34836cd,2 -34836cf,1 -34836d0,a1 -34836d1,e2 -34836d2,1c -34836d3,bf -34836d4,3 -34836d5,e0 -34836d7,8 -34836dd,33 -34836de,8 -34836df,21 -34836e0,3c -34836e1,2 -34836e2,80 -34836e3,12 -34836e4,8c -34836e5,42 -34836e6,a5 -34836e7,d4 -34836e8,8e -34836e9,6f -34836eb,a4 -34836ed,f -34836ee,7a -34836ef,3 -34836f0,14 -34836f1,40 -34836f3,5 -34836f4,34 -34836f5,2 -34836f6,48 -34836f7,30 -34836f8,15 -34836f9,e2 -34836fb,7 -3483700,24 -3483701,19 -3483703,3 -3483704,10 -3483707,4 -3483708,34 -3483709,2 -348370a,63 -348370b,11 -348370c,15 -348370d,e2 -348370f,2 -3483714,24 -3483715,19 -3483717,3 -3483718,3 -3483719,e0 -348371b,8 -3483720,34 -3483721,1 -3483723,18 -3483724,14 -3483725,81 -3483727,11 +3483624,c +3483625,10 +3483626,d +3483627,93 +3483628,34 +3483629,4 +348362c,c +348362d,10 +348362e,d +348362f,93 +3483630,34 +3483631,4 +3483633,1 +3483634,c +3483635,10 +3483636,d +3483637,93 +3483638,34 +3483639,4 +348363b,2 +348363c,8f +348363d,bf +348363f,10 +3483640,27 +3483641,bd +3483643,18 +3483644,3 +3483645,e0 +3483647,8 +348364c,2 +348364d,4 +348364e,40 +348364f,21 +3483650,3c +3483651,9 +3483652,80 +3483653,40 +3483654,25 +3483655,29 +3483656,36 +3483657,f8 +3483658,91 +3483659,a +348365b,6c +348365c,34 +348365d,1 +348365f,ff +3483660,11 +3483661,41 +3483663,5 +3483668,1 +3483669,2a +348366a,48 +348366b,21 +348366c,91 +348366d,29 +3483670,15 +3483671,20 +3483673,1c +3483678,3c +3483679,9 +348367a,80 +348367b,40 +348367c,25 +348367d,29 +348367e,36 +348367f,eb +3483680,25 +3483681,29 +3483683,1 +3483684,91 +3483685,2a +3483688,11 +3483689,40 +348368b,13 +3483690,2 +3483691,a +3483692,58 +3483693,21 +3483694,91 +3483695,6b +3483697,74 +3483698,34 +3483699,1 +348369b,ff +348369c,11 +348369d,61 +348369e,ff +348369f,f8 +34836a4,92 +34836a5,c +34836a7,6c +34836a8,11 +34836a9,8a +34836aa,ff +34836ab,f5 +34836b0,92 +34836b1,c +34836b3,6d +34836b4,11 +34836b5,8a +34836b6,ff +34836b7,f2 +34836bc,92 +34836bd,c +34836bf,6e +34836c0,11 +34836c1,8a +34836c2,ff +34836c3,ef +34836c8,a1 +34836c9,b +34836cb,69 +34836cc,a1 +34836cd,a +34836cf,6c +34836d0,10 +34836d3,4 +34836d8,34 +34836d9,9 +34836db,ff +34836dc,a1 +34836dd,9 +34836df,69 +34836e0,a1 +34836e1,9 +34836e3,6c +34836e4,3 +34836e5,e0 +34836e7,8 +34836ec,7 +34836ed,9 +34836ee,f +34836ef,2 +34836f0,3 +34836f1,1 +34836f2,d +34836f3,b +34836f9,1 +34836fa,1 +34836fb,1 +34836fc,1 +34836fd,1 +34836ff,1 +3483700,1 +3483701,1 +3483702,1 +3483703,1 +3483705,1 +3483707,1 +3483708,1 +3483709,1 +348370a,1 +348370b,1 +348370c,1 +348370d,1 +348370e,1 +3483711,33 +3483712,8 +3483713,21 +3483714,20 +3483715,f +3483717,47 +3483718,15 +3483719,ea +348371b,e +348371c,3c +348371d,2 +348371e,80 +348371f,12 +3483720,8c +3483721,42 +3483722,a5 +3483723,d4 +3483724,8e +3483725,6f +3483727,a4 +3483729,f +348372a,7a +348372b,3 348372c,14 348372d,40 -348372f,f -3483734,3c -3483735,a -3483736,80 -3483737,12 -3483738,25 -3483739,4a -348373a,a5 -348373b,d0 -348373c,81 -348373d,48 -348373f,a6 -3483740,31 -3483741,8 -3483743,20 -3483744,11 -3483747,9 -3483748,34 -3483749,2 -348374c,34 -348374d,2 -348374f,1 -3483750,81 -3483751,48 -3483753,7b -3483754,34 -3483755,9 -3483757,7 -3483758,11 -3483759,9 -348375b,4 -348375c,34 -348375d,a -348375f,8 -3483760,11 -3483761,a -3483763,2 -3483768,34 -3483769,2 -348376c,3 -348376d,e0 -348376f,8 -3483774,80 -3483775,a8 -3483778,25 -3483779,9 -348377b,1 -348377c,15 -348377d,20 -348377f,e -3483784,27 -3483785,bd -3483786,ff -3483787,e8 -3483788,af -3483789,bf -348378b,14 -348378c,af -348378d,a4 -348378f,18 -3483790,af -3483791,a5 -3483793,1c -3483795,5 -3483796,20 -3483797,25 -3483798,24 -3483799,a5 -348379b,8 -348379c,c -348379d,1 -348379e,5c -348379f,c -34837a0,24 -34837a1,c6 -34837a2,ff -34837a3,f8 -34837a4,8f -34837a5,a4 -34837a7,18 -34837a8,8f -34837a9,a5 -34837ab,1c -34837ac,34 -34837ad,6 -34837af,80 -34837b0,8f -34837b1,bf -34837b3,14 -34837b4,27 -34837b5,bd -34837b7,18 -34837b8,8 -34837b9,1 -34837ba,5c -34837bb,c -34837c0,a2 -34837c1,25 -34837c3,21 -34837c4,3c -34837c5,10 -34837c6,80 -34837c7,40 -34837c8,26 -34837c9,10 -34837ca,17 -34837cb,fc -34837cc,26 -34837cd,10 -34837cf,4 -34837d0,8e -34837d1,a -34837d4,11 -34837d5,40 -34837d7,b -34837dd,a -34837de,7c -34837df,2 -34837e0,1 -34837e1,f1 -34837e2,78 -34837e3,20 -34837e4,31 -34837e5,58 -34837e6,ff -34837e9,18 -34837ea,c2 -34837eb,2 -34837ec,17 -34837ef,3 -34837f0,31 -34837f1,59 -34837f3,ff -34837f4,81 -34837f5,ea -34837f8,3 -34837f9,2a -34837fa,c8 -34837fb,25 -34837fc,8 -34837fd,10 -34837fe,d -34837ff,f3 -3483800,a1 -3483801,f9 -3483804,3 -3483805,e0 -3483807,8 -348380c,27 -348380d,bd -348380e,ff -348380f,f0 -3483810,af -3483811,bf -3483813,8 -3483814,c -3483815,10 -3483816,e -3483817,11 -3483818,22 -3483819,64 -348381a,ff -348381b,ff +348372f,5 +3483730,34 +3483731,2 +3483732,48 +3483733,30 +3483734,15 +3483735,e2 +3483737,7 +348373c,24 +348373d,19 +348373f,3 +3483740,10 +3483743,4 +3483744,34 +3483745,2 +3483746,63 +3483747,11 +3483748,15 +3483749,e2 +348374b,2 +3483750,24 +3483751,19 +3483753,3 +3483754,3 +3483755,e0 +3483757,8 +348375c,8d +348375d,ad +348375e,8a +348375f,a0 +3483760,34 +3483761,2 +3483762,80 +3483764,10 +3483765,4d +3483767,2 +348376c,10 +348376f,9 +3483770,3c +3483771,f +3483772,80 +3483773,1e +3483774,25 +3483775,ef +3483776,84 +3483777,a0 +3483778,81 +3483779,e2 +348377a,1c +348377b,bf +348377c,30 +348377d,42 +348377f,1 +3483780,10 +3483781,40 +3483783,2 +3483788,10 +348378b,2 +348378c,34 +348378d,2 +348378f,1 +3483790,a1 +3483791,e2 +3483792,1c +3483793,bf +3483794,3 +3483795,e0 +3483797,8 +348379d,33 +348379e,8 +348379f,21 +34837a0,3c +34837a1,2 +34837a2,80 +34837a3,12 +34837a4,8c +34837a5,42 +34837a6,a5 +34837a7,d4 +34837a8,8e +34837a9,6f +34837ab,a4 +34837ad,f +34837ae,7a +34837af,3 +34837b0,14 +34837b1,40 +34837b3,5 +34837b4,34 +34837b5,2 +34837b6,48 +34837b7,30 +34837b8,15 +34837b9,e2 +34837bb,7 +34837c0,24 +34837c1,19 +34837c3,3 +34837c4,10 +34837c7,4 +34837c8,34 +34837c9,2 +34837ca,63 +34837cb,11 +34837cc,15 +34837cd,e2 +34837cf,2 +34837d4,24 +34837d5,19 +34837d7,3 +34837d8,3 +34837d9,e0 +34837db,8 +34837e0,34 +34837e1,1 +34837e3,18 +34837e4,14 +34837e5,81 +34837e7,11 +34837ec,14 +34837ed,40 +34837ef,f +34837f4,3c +34837f5,a +34837f6,80 +34837f7,12 +34837f8,25 +34837f9,4a +34837fa,a5 +34837fb,d0 +34837fc,81 +34837fd,48 +34837ff,a6 +3483800,31 +3483801,8 +3483803,20 +3483804,11 +3483807,9 +3483808,34 +3483809,2 +348380c,34 +348380d,2 +348380f,1 +3483810,81 +3483811,48 +3483813,7b +3483814,34 +3483815,9 +3483817,7 +3483818,11 +3483819,9 +348381b,4 348381c,34 -348381d,4a -3483820,8f -3483821,bf -3483823,8 -3483824,27 -3483825,bd -3483827,10 -3483828,27 -3483829,bd -348382a,ff -348382b,f0 -348382c,af -348382d,bf +348381d,a +348381f,8 +3483820,11 +3483821,a +3483823,2 +3483828,34 +3483829,2 +348382c,3 +348382d,e0 348382f,8 -3483830,c -3483831,10 -3483832,e -3483833,11 -3483834,36 -3483835,44 -3483838,34 -3483839,50 -348383c,8f -348383d,bf -348383f,8 -3483840,27 -3483841,bd -3483843,10 -3483844,3c -3483845,8 -3483846,80 -3483847,40 -3483848,25 -3483849,8 -348384a,1c -348384b,2 -348384c,91 -348384d,8 -3483850,15 -3483853,7 -3483858,3c -3483859,8 -348385a,80 -348385b,12 -348385c,25 -348385d,8 -348385e,a5 -348385f,d0 -3483860,1 -3483861,4 -3483862,40 -3483863,20 -3483864,91 -3483865,2 -3483867,24 -3483868,10 -348386b,7 -3483871,8 -3483872,40 -3483873,c0 -3483874,3c -3483875,2 -3483876,80 -3483877,40 -3483878,24 -3483879,42 -348387a,1c -348387b,3 -348387c,1 -348387d,2 -348387e,40 -348387f,20 -3483880,1 -3483881,4 -3483882,40 -3483883,20 -3483884,91 -3483885,2 -3483888,3 -3483889,e0 -348388b,8 -3483890,8f -3483891,b6 -3483893,30 -3483894,8f -3483895,b7 -3483897,34 -3483898,8f -3483899,be -348389b,38 -348389c,3c -348389d,8 -348389e,80 -348389f,40 -34838a0,25 -34838a1,8 -34838a2,1c -34838a3,2 -34838a4,a1 -34838a8,3 -34838a9,e0 -34838ab,8 +3483834,80 +3483835,a8 +3483838,25 +3483839,9 +348383b,1 +348383c,15 +348383d,20 +348383f,e +3483844,27 +3483845,bd +3483846,ff +3483847,e8 +3483848,af +3483849,bf +348384b,14 +348384c,af +348384d,a4 +348384f,18 +3483850,af +3483851,a5 +3483853,1c +3483855,5 +3483856,20 +3483857,25 +3483858,24 +3483859,a5 +348385b,8 +348385c,c +348385d,1 +348385e,5c +348385f,c +3483860,24 +3483861,c6 +3483862,ff +3483863,f8 +3483864,8f +3483865,a4 +3483867,18 +3483868,8f +3483869,a5 +348386b,1c +348386c,34 +348386d,6 +348386f,80 +3483870,8f +3483871,bf +3483873,14 +3483874,27 +3483875,bd +3483877,18 +3483878,8 +3483879,1 +348387a,5c +348387b,c +3483880,a2 +3483881,25 +3483883,21 +3483884,3c +3483885,10 +3483886,80 +3483887,40 +3483888,26 +3483889,10 +348388a,17 +348388b,fc +348388c,26 +348388d,10 +348388f,4 +3483890,8e +3483891,a +3483894,11 +3483895,40 +3483897,b +348389d,a +348389e,7c +348389f,2 +34838a0,1 +34838a1,f1 +34838a2,78 +34838a3,20 +34838a4,31 +34838a5,58 +34838a6,ff +34838a9,18 +34838aa,c2 +34838ab,2 +34838ac,17 +34838af,3 +34838b0,31 +34838b1,59 +34838b3,ff +34838b4,81 +34838b5,ea +34838b8,3 +34838b9,2a +34838ba,c8 +34838bb,25 +34838bc,8 +34838bd,10 +34838be,e +34838bf,23 +34838c0,a1 +34838c1,f9 +34838c4,3 +34838c5,e0 +34838c7,8 +34838cc,27 +34838cd,bd +34838ce,ff +34838cf,f0 +34838d0,af +34838d1,bf +34838d3,8 +34838d4,c +34838d5,10 +34838d6,e +34838d7,41 +34838d8,22 +34838d9,64 +34838da,ff +34838db,ff +34838dc,34 +34838dd,4a +34838e0,8f +34838e1,bf +34838e3,8 +34838e4,27 +34838e5,bd +34838e7,10 +34838e8,27 +34838e9,bd +34838ea,ff +34838eb,f0 +34838ec,af +34838ed,bf +34838ef,8 +34838f0,c +34838f1,10 +34838f2,e +34838f3,41 +34838f4,36 +34838f5,44 +34838f8,34 +34838f9,50 +34838fc,8f +34838fd,bf +34838ff,8 +3483900,27 +3483901,bd +3483903,10 +3483904,3c +3483905,8 +3483906,80 +3483907,40 +3483908,25 +3483909,8 +348390a,1c +348390b,2 +348390c,91 +348390d,8 +3483910,15 +3483913,7 +3483918,3c +3483919,8 +348391a,80 +348391b,12 +348391c,25 +348391d,8 +348391e,a5 +348391f,d0 +3483920,1 +3483921,4 +3483922,40 +3483923,20 +3483924,91 +3483925,2 +3483927,24 +3483928,10 +348392b,7 +3483931,8 +3483932,40 +3483933,c0 +3483934,3c +3483935,2 +3483936,80 +3483937,40 +3483938,24 +3483939,42 +348393a,1c +348393b,3 +348393c,1 +348393d,2 +348393e,40 +348393f,20 +3483940,1 +3483941,4 +3483942,40 +3483943,20 +3483944,91 +3483945,2 +3483948,3 +3483949,e0 +348394b,8 +3483950,8f +3483951,b6 +3483953,30 +3483954,8f +3483955,b7 +3483957,34 +3483958,8f +3483959,be +348395b,38 +348395c,3c +348395d,8 +348395e,80 +348395f,40 +3483960,25 +3483961,8 +3483962,1c +3483963,2 +3483964,a1 +3483968,3 +3483969,e0 +348396b,8 34b3000,27 34b3001,bd 34b3002,ff diff --git a/data/symbols.json b/data/symbols.json index de6508c37..6b72b5a6e 100644 --- a/data/symbols.json +++ b/data/symbols.json @@ -1,6 +1,6 @@ { - "ADULT_INIT_ITEMS": "0348362C", - "ADULT_VALID_ITEMS": "03483638", + "ADULT_INIT_ITEMS": "034836EC", + "ADULT_VALID_ITEMS": "034836F8", "COOP_GET_ITEM": "03481C01", "EXTENDED_ITEM_DATA": "03482008", "FAIRY_ITEMS": "03481D05", From 7c328624e1d7034a58084c13861df7c265ad1faa Mon Sep 17 00:00:00 2001 From: Cuphat Date: Sun, 21 Oct 2018 00:01:24 -0400 Subject: [PATCH 744/755] Rename Maps/Compasses: Auto to Maps/Compasses: Start With --- ItemList.py | 2 +- Patches.py | 8 ++++---- README.html | 4 ++-- README.md | 4 ++-- Settings.py | 16 ++++++++-------- 5 files changed, 17 insertions(+), 17 deletions(-) diff --git a/ItemList.py b/ItemList.py index c3193c864..bc043c4a6 100644 --- a/ItemList.py +++ b/ItemList.py @@ -822,7 +822,7 @@ def get_pool_core(world): pool.extend(songlist) - if world.shuffle_mapcompass == 'remove' or world.shuffle_mapcompass == 'auto': + if world.shuffle_mapcompass == 'remove' or world.shuffle_mapcompass == 'startwith': for item in [item for dungeon in world.dungeons for item in dungeon.dungeon_items]: world.state.collect(item) pool.extend(get_junk_item()) diff --git a/Patches.py b/Patches.py index 2fd5200c9..9f485e0e8 100644 --- a/Patches.py +++ b/Patches.py @@ -1039,8 +1039,8 @@ def write_save_table(rom): write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x04 + 0x3, 0xDC) # Thieves' Hideout switch flags (heard yells/unlocked doors) write_bits_to_save(0x00D4 + 0x0C * 0x1C + 0x0C + 0x2, 0xC4) # Thieves' Hideout collection flags (picked up keys, marks fights finished as well) - # auto maps/compasses - if world.shuffle_mapcompass == 'auto': + # start with maps/compasses + if world.shuffle_mapcompass == 'startwith': write_bits_to_save(0x00A8, 0x06) # "Deku Map/Compass" write_bits_to_save(0x00A9, 0x06) # "Dodongo Map/Compass" write_bits_to_save(0x00AA, 0x06) # "Jabu Map/Compass" @@ -1435,7 +1435,7 @@ def write_save_table(rom): # give dungeon items the correct messages message_patch_for_dungeon_items(messages, shop_items, world) - if (world.shuffle_mapcompass == 'keysanity' or world.shuffle_mapcompass == 'auto') and world.enhance_map_compass: + if world.shuffle_mapcompass == 'keysanity' and world.enhance_map_compass: reward_list = {'Kokiri Emerald': "\x05\x42Kokiri Emerald\x05\x40", 'Goron Ruby': "\x05\x41Goron Ruby\x05\x40", 'Zora Sapphire': "\x05\x43Zora Sapphire\x05\x40", @@ -2008,7 +2008,7 @@ def boss_reward_index(world, boss_name): def configure_dungeon_info(rom, world): mq_enable = world.quest == 'mixed' - mapcompass_keysanity = (world.settings.shuffle_mapcompass == 'keysanity' or world.shuffle_mapcompass == 'auto') and world.settings.enhance_map_compass + mapcompass_keysanity = (world.settings.shuffle_mapcompass == 'keysanity' or world.shuffle_mapcompass == 'startwith') and world.settings.enhance_map_compass bosses = ['Queen Gohma', 'King Dodongo', 'Barinade', 'Phantom Ganon', 'Volvagia', 'Morpha', 'Twinrova', 'Bongo Bongo'] diff --git a/README.html b/README.html index e6e050012..ea4895445 100644 --- a/README.html +++ b/README.html @@ -115,7 +115,7 @@

Shuffled Shops (Random Items)

Shuffle Dungeon Items

This setting allows the player to decide the natural distribution of dungeon items. Dungeon items can be found confined to their original dungeons, spread freely throughout the world, or prevented from existing completely. Items that are prevented from existing completely will be replaced in the item pool with an assortment of various low tier junk items. This feature can be specified for Maps/Compasses, Small Keys, and Boss Keys independently. If Small Keys or Boss Keys are prevented from existing, this will also remove all locks those keys would be used for from existing as well. If Small Keys are left in their original dungeons and the Fire Temple is not in the form of Master Quest, the locked door in the first room that leads to the normal location of the Boss Key will be removed.

Maps and Compasses Give Information

-

This setting, only available if Maps and Compasses are automatic or spread across the world, disables the pedestal in the Temple of Time from giving information about the location of the Medallions and Spiritual Stones. Instead, the Compass from each of the eight eligible dungeons will tell the player which dungeon has which reward. If the dungeon quest is set to mixed, each of the ten Maps will tell the player whether any given dungeon is in the vanilla or Master Quest form. The Compasses from Bottom of the Well and Ice Cavern do not give any information.

+

This setting, only available if you start with Maps and Compasses or they are spread across the world, disables the pedestal in the Temple of Time from giving information about the location of the Medallions and Spiritual Stones. Instead, the Compass from each of the eight eligible dungeons will tell the player which dungeon has which reward. If the dungeon quest is set to mixed, each of the ten Maps will tell the player whether any given dungeon is in the vanilla or Master Quest form. The Compasses from Bottom of the Well and Ice Cavern do not give any information.

Remove Ganon's Door Boss Lock

This setting removes the Boss Key lock from Ganon's Tower. This removes the need to locate the Ganon's Tower Boss Key to finish the game.

Tokensanity

@@ -327,7 +327,7 @@

Command Line Options

Include all Deku Scrub Salesmen as randomized item and determine their prices (default: off)

--shopsanity [{off,0,1,2,3,4,random}]

Randomize shop items and add the chosen number of items from the general item pool to shop inventories (default: off)

-
--shuffle_mapcompass [{remove,auto,dungeon,keysanity}]
+
--shuffle_mapcompass [{remove,startwith,dungeon,keysanity}]

Choose the locations Maps and Compasses can be found (default: dungeon)

--shuffle_smallkeys [{remove,dungeon,keysanity}]

Choose the locations Small Keys can be found (default: dungeon)

diff --git a/README.md b/README.md index bdef02a53..2c38964af 100644 --- a/README.md +++ b/README.md @@ -404,7 +404,7 @@ location of the Boss Key will be removed. ## Maps and Compasses Give Information -This setting, only available if Maps and Compasses are automatic or spread across the world, disables the pedestal in the Temple of Time from giving information about +This setting, only available if you start with Maps and Compasses or they are spread across the world, disables the pedestal in the Temple of Time from giving information about the location of the Medallions and Spiritual Stones. Instead, the Compass from each of the eight eligible dungeons will tell the player which dungeon has which reward. If the dungeon quest is set to mixed, each of the ten Maps will tell the player whether any given dungeon is in the vanilla or Master Quest form. The Compasses from Bottom of the Well and Ice Cavern do not give any information. @@ -983,7 +983,7 @@ Include all Deku Scrub Salesmen as randomized item and determine their prices (d Randomize shop items and add the chosen number of items from the general item pool to shop inventories (default: off) ``` ---shuffle_mapcompass [{remove,auto,dungeon,keysanity}] +--shuffle_mapcompass [{remove,startwith,dungeon,keysanity}] ``` Choose the locations Maps and Compasses can be found (default: dungeon) diff --git a/Settings.py b/Settings.py index 02075e38a..0fc7b6c83 100644 --- a/Settings.py +++ b/Settings.py @@ -892,7 +892,7 @@ def parse_custom_navi_color(s): 'help': '''\ Sets the Map and Compass placement rules remove: Maps and Compasses are removed from the world. - auto: Start with all Maps and Compasses. + startwith: Start with all Maps and Compasses. dungeon: Maps and Compasses are put in their dungeon. keysanity: Maps and Compasses can appear anywhere. ''' @@ -904,7 +904,7 @@ def parse_custom_navi_color(s): 'default': 'Maps/Compasses: Dungeon Only', 'options': { 'Maps/Compasses: Remove': 'remove', - 'Maps/Compasses: Auto': 'auto', + 'Maps/Compasses: Start With': 'startwith', 'Maps/Compasses: Dungeon Only': 'dungeon', 'Maps/Compasses: Anywhere': 'keysanity' }, @@ -913,9 +913,9 @@ def parse_custom_navi_color(s): This will add a small amount of money and refill items to the pool. - 'Auto': Maps and Compasses are given to you - from the start. This will add a small amount - of money and refill items to the pool. + 'Start With': Maps and Compasses are given to + you from the start. This will add a small + amount of money and refill items to the pool. 'Dungeon': Maps and Compasses can only appear in their respective dungeon. @@ -923,8 +923,8 @@ def parse_custom_navi_color(s): 'Anywhere': Maps and Compasses can appear anywhere in the world. - Setting 'Remove', 'Auto, or 'Anywhere' will add 2 - more possible locations to each Dungeons. + Setting 'Remove', 'Start With, or 'Anywhere' will + add 2 more possible locations to each Dungeons. This makes dungeons more profitable, especially Ice Cavern, Water Temple, and Jabu Jabu's Belly. ''' @@ -1033,7 +1033,7 @@ def parse_custom_navi_color(s): is set to 'Anywhere' or 'Auto' ''', 'dependency': lambda guivar: guivar['shuffle_mapcompass'].get() == 'Maps/Compasses: Anywhere' - or guivar['shuffle_mapcompass'].get() == 'Maps/Compasses: Auto', + or guivar['shuffle_mapcompass'].get() == 'Maps/Compasses: Start With', }), Setting_Info('unlocked_ganondorf', bool, 1, True, { From 801cf5f4821b9baedb2c89600de54f16f37d27fc Mon Sep 17 00:00:00 2001 From: Cuphat Date: Sun, 21 Oct 2018 00:08:09 -0400 Subject: [PATCH 745/755] Rename Maps/Compasses: Auto to Maps/Compasses: Start With Last commit missed a spot. --- Settings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Settings.py b/Settings.py index 0fc7b6c83..cda956676 100644 --- a/Settings.py +++ b/Settings.py @@ -1030,7 +1030,7 @@ def parse_custom_navi_color(s): Map will tell if a dungeon is vanilla or Master Quest. Compass will tell what medallion or stone is within. This option is only available if shuffle 'Maps/Compasses' - is set to 'Anywhere' or 'Auto' + is set to 'Anywhere' or 'Start With' ''', 'dependency': lambda guivar: guivar['shuffle_mapcompass'].get() == 'Maps/Compasses: Anywhere' or guivar['shuffle_mapcompass'].get() == 'Maps/Compasses: Start With', From 1c3575f72d5db6945b7e29b16a822fd4713d2487 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 21 Oct 2018 11:31:30 -0600 Subject: [PATCH 746/755] Add subprocess comptibility for bundled windows builds --- Main.py | 45 +++++++++++++++++++++++++++++++++++++++++++-- version.py | 2 +- 2 files changed, 44 insertions(+), 3 deletions(-) diff --git a/Main.py b/Main.py index 7a1249b8c..7ac38c967 100644 --- a/Main.py +++ b/Main.py @@ -6,7 +6,8 @@ import random import subprocess import time -import os +import os, os.path +import sys import struct from BaseClasses import World, CollectionState, Item, Spoiler @@ -179,8 +180,47 @@ def main(settings, window=dummy_window()): return worlds[settings.player_num - 1] + +# From the pyinstaller Wiki: https://github.com/pyinstaller/pyinstaller/wiki/Recipe-subprocess +# Create a set of arguments which make a ``subprocess.Popen`` (and +# variants) call work with or without Pyinstaller, ``--noconsole`` or +# not, on Windows and Linux. Typical use:: +# subprocess.call(['program_to_run', 'arg_1'], **subprocess_args()) +def subprocess_args(include_stdout=True): + # The following is true only on Windows. + if hasattr(subprocess, 'STARTUPINFO'): + # On Windows, subprocess calls will pop up a command window by default + # when run from Pyinstaller with the ``--noconsole`` option. Avoid this + # distraction. + si = subprocess.STARTUPINFO() + si.dwFlags |= subprocess.STARTF_USESHOWWINDOW + # Windows doesn't search the path by default. Pass it an environment so + # it will. + env = os.environ + else: + si = None + env = None + + # ``subprocess.check_output`` doesn't allow specifying ``stdout``:: + # So, add it only if it's needed. + if include_stdout: + ret = {'stdout': subprocess.PIPE} + else: + ret = {} + + # On Windows, running this from the binary produced by Pyinstaller + # with the ``--noconsole`` option requires redirecting everything + # (stdin, stdout, stderr) to avoid an OSError exception + # "[Error 6] the handle is invalid." + ret.update({'stdin': subprocess.PIPE, + 'stderr': subprocess.PIPE, + 'startupinfo': si, + 'env': env }) + return ret + + def run_process(window, logger, args): - process = subprocess.Popen(args, bufsize=1, stdout=subprocess.PIPE) + process = subprocess.Popen(args, **subprocess_args()) filecount = None while True: line = process.stdout.readline() @@ -195,6 +235,7 @@ def run_process(window, logger, args): else: break + def create_playthrough(worlds): if worlds[0].check_beatable_only and not CollectionState.can_beat_game([world.state for world in worlds]): raise RuntimeError('Uncopied is broken too.') diff --git a/version.py b/version.py index a7ee67de6..0ad59a6ca 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.22.20 f.LUM' +__version__ = '2.22.21 f.LUM' From a0a22cdb77e5cdc2989c590a580c0527780bd983 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 21 Oct 2018 11:56:07 -0600 Subject: [PATCH 747/755] Make the enhance map/compass option work with any option --- Patches.py | 2 +- Settings.py | 19 ++++++++++++------- version.py | 2 +- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/Patches.py b/Patches.py index 9f485e0e8..b86080a9e 100644 --- a/Patches.py +++ b/Patches.py @@ -2008,7 +2008,7 @@ def boss_reward_index(world, boss_name): def configure_dungeon_info(rom, world): mq_enable = world.quest == 'mixed' - mapcompass_keysanity = (world.settings.shuffle_mapcompass == 'keysanity' or world.shuffle_mapcompass == 'startwith') and world.settings.enhance_map_compass + mapcompass_keysanity = world.settings.enhance_map_compass bosses = ['Queen Gohma', 'King Dodongo', 'Barinade', 'Phantom Ganon', 'Volvagia', 'Morpha', 'Twinrova', 'Bongo Bongo'] diff --git a/Settings.py b/Settings.py index cda956676..213240e17 100644 --- a/Settings.py +++ b/Settings.py @@ -1015,8 +1015,9 @@ def parse_custom_navi_color(s): Gives the Map and Compass extra functionality. Map will tell if a dungeon is vanilla or Master Quest. Compass will tell what medallion or stone is within. - This setting will only activate these functions if the - other settings would make this useful information. + The Temple of Time Altar will no longer provide any + information. If the maps and compasses are removed then + the information will be unavailable. ''', 'action': 'store_true' }, @@ -1029,11 +1030,15 @@ def parse_custom_navi_color(s): Gives the Map and Compass extra functionality. Map will tell if a dungeon is vanilla or Master Quest. Compass will tell what medallion or stone is within. - This option is only available if shuffle 'Maps/Compasses' - is set to 'Anywhere' or 'Start With' - ''', - 'dependency': lambda guivar: guivar['shuffle_mapcompass'].get() == 'Maps/Compasses: Anywhere' - or guivar['shuffle_mapcompass'].get() == 'Maps/Compasses: Start With', + The Temple of Time Altar will no longer provide any + information. + + 'Maps/Compasses: Remove': The dungeon information is + not available anywhere in the game. + + 'Maps/Compasses: Start With': The dungeon information + is available immediately from the dungeon menu. + ''', }), Setting_Info('unlocked_ganondorf', bool, 1, True, { diff --git a/version.py b/version.py index 0ad59a6ca..30a88ead5 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.22.21 f.LUM' +__version__ = '2.23.1 f.LUM' From a6091bd14248813854dbeeb41aff040c0474991c Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 21 Oct 2018 12:06:35 -0600 Subject: [PATCH 748/755] Update README --- README.html | 2 +- README.md | 2 +- version.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.html b/README.html index ea4895445..81502881a 100644 --- a/README.html +++ b/README.html @@ -334,7 +334,7 @@

Command Line Options

--shuffle_bosskeys [{remove,dungeon,keysanity}]

Choose the locations Boss Keys can be found (default: dungeon)

--enhance_map_compass
-

Change the functionality of the Map and Compass to give information about their dungeons. Requires --shuffle_mappcompass keysanity (default: False)

+

Change the functionality of the Map and Compass to give information about their dungeons. The Temple of Time Altar will no longer provide any dungeon information. (default: False)

--unlocked_ganondorf

Remove the Boss Key door leading to Ganondorf (default: False)

--tokensanity [{off,dungeons,all}]
diff --git a/README.md b/README.md index 2c38964af..fb99f3b68 100644 --- a/README.md +++ b/README.md @@ -1004,7 +1004,7 @@ Choose the locations Boss Keys can be found (default: dungeon) --enhance_map_compass ``` -Change the functionality of the Map and Compass to give information about their dungeons. Requires --shuffle_mappcompass keysanity (default: False) +Change the functionality of the Map and Compass to give information about their dungeons. The Temple of Time Altar will no longer provide any dungeon information. (default: False) ``` --unlocked_ganondorf diff --git a/version.py b/version.py index 30a88ead5..dcbda2528 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.23.1 f.LUM' +__version__ = '2.23.2 f.LUM' From 92e8e604a5792da1ddd0f4ec465f67b731ad12c3 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 21 Oct 2018 15:31:01 -0600 Subject: [PATCH 749/755] decompressor uses same bundle compatibility at compressor --- Main.py | 42 ++---------------------------------------- Rom.py | 4 ++-- Utils.py | 40 +++++++++++++++++++++++++++++++++++++++- version.py | 2 +- 4 files changed, 44 insertions(+), 44 deletions(-) diff --git a/Main.py b/Main.py index 7ac38c967..decb396dc 100644 --- a/Main.py +++ b/Main.py @@ -20,7 +20,7 @@ from Fill import distribute_items_restrictive from ItemList import generate_itempool from Hints import buildGossipHints -from Utils import default_output_path, is_bundled +from Utils import default_output_path, is_bundled, subprocess_args from version import __version__ from OcarinaSongs import verify_scarecrow_song_str @@ -181,46 +181,8 @@ def main(settings, window=dummy_window()): return worlds[settings.player_num - 1] -# From the pyinstaller Wiki: https://github.com/pyinstaller/pyinstaller/wiki/Recipe-subprocess -# Create a set of arguments which make a ``subprocess.Popen`` (and -# variants) call work with or without Pyinstaller, ``--noconsole`` or -# not, on Windows and Linux. Typical use:: -# subprocess.call(['program_to_run', 'arg_1'], **subprocess_args()) -def subprocess_args(include_stdout=True): - # The following is true only on Windows. - if hasattr(subprocess, 'STARTUPINFO'): - # On Windows, subprocess calls will pop up a command window by default - # when run from Pyinstaller with the ``--noconsole`` option. Avoid this - # distraction. - si = subprocess.STARTUPINFO() - si.dwFlags |= subprocess.STARTF_USESHOWWINDOW - # Windows doesn't search the path by default. Pass it an environment so - # it will. - env = os.environ - else: - si = None - env = None - - # ``subprocess.check_output`` doesn't allow specifying ``stdout``:: - # So, add it only if it's needed. - if include_stdout: - ret = {'stdout': subprocess.PIPE} - else: - ret = {} - - # On Windows, running this from the binary produced by Pyinstaller - # with the ``--noconsole`` option requires redirecting everything - # (stdin, stdout, stderr) to avoid an OSError exception - # "[Error 6] the handle is invalid." - ret.update({'stdin': subprocess.PIPE, - 'stderr': subprocess.PIPE, - 'startupinfo': si, - 'env': env }) - return ret - - def run_process(window, logger, args): - process = subprocess.Popen(args, **subprocess_args()) + process = subprocess.Popen(args, **subprocess_args(True)) filecount = None while True: line = process.stdout.readline() diff --git a/Rom.py b/Rom.py index 5159a7db1..96d0805ff 100644 --- a/Rom.py +++ b/Rom.py @@ -7,7 +7,7 @@ import subprocess import random import copy -from Utils import is_bundled +from Utils import is_bundled, subprocess_args from Utils import local_path, data_path, default_output_path @@ -76,7 +76,7 @@ def decompress_rom_file(self, file, decomp_file): else: raise RuntimeError('Unsupported operating system for decompression. Please supply an already decompressed ROM.') - subprocess.call(subcall) + subprocess.call(subcall, **subprocess_args()) self.read_rom(decomp_file) else: # ROM file is a valid and already uncompressed diff --git a/Utils.py b/Utils.py index af75e28cb..45ad7224f 100644 --- a/Utils.py +++ b/Utils.py @@ -1,4 +1,4 @@ -import os +import os, os.path import subprocess import sys import urllib.request @@ -118,3 +118,41 @@ def random_choices(population, weights=None, k=1): result.append(population[bisect.bisect(CDF, x)]) return result + + +# From the pyinstaller Wiki: https://github.com/pyinstaller/pyinstaller/wiki/Recipe-subprocess +# Create a set of arguments which make a ``subprocess.Popen`` (and +# variants) call work with or without Pyinstaller, ``--noconsole`` or +# not, on Windows and Linux. Typical use:: +# subprocess.call(['program_to_run', 'arg_1'], **subprocess_args()) +def subprocess_args(include_stdout=True): + # The following is true only on Windows. + if hasattr(subprocess, 'STARTUPINFO'): + # On Windows, subprocess calls will pop up a command window by default + # when run from Pyinstaller with the ``--noconsole`` option. Avoid this + # distraction. + si = subprocess.STARTUPINFO() + si.dwFlags |= subprocess.STARTF_USESHOWWINDOW + # Windows doesn't search the path by default. Pass it an environment so + # it will. + env = os.environ + else: + si = None + env = None + + # ``subprocess.check_output`` doesn't allow specifying ``stdout``:: + # So, add it only if it's needed. + if include_stdout: + ret = {'stdout': subprocess.PIPE} + else: + ret = {} + + # On Windows, running this from the binary produced by Pyinstaller + # with the ``--noconsole`` option requires redirecting everything + # (stdin, stdout, stderr) to avoid an OSError exception + # "[Error 6] the handle is invalid." + ret.update({'stdin': subprocess.PIPE, + 'stderr': subprocess.PIPE, + 'startupinfo': si, + 'env': env }) + return ret diff --git a/version.py b/version.py index dcbda2528..14737f340 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.23.2 f.LUM' +__version__ = '2.23.3 f.LUM' From 76c33af8f49b22f3c9bb195c13c949033081a363 Mon Sep 17 00:00:00 2001 From: Nick Langille Date: Mon, 22 Oct 2018 22:14:04 -0400 Subject: [PATCH 750/755] Create extended items for deku/hylian shields --- ASM/build/asm_symbols.txt | 432 +-- ASM/src/extended_items.asm | 4 +- Items.py | 66 +- data/rom_patch.txt | 7138 ++++++++++++++++++------------------ data/symbols.json | 4 +- 5 files changed, 3847 insertions(+), 3797 deletions(-) diff --git a/ASM/build/asm_symbols.txt b/ASM/build/asm_symbols.txt index 161d68c58..d5b9f642d 100644 --- a/ASM/build/asm_symbols.txt +++ b/ASM/build/asm_symbols.txt @@ -815,217 +815,235 @@ 80402567 .byt:0001 80402568 .dbl:0004 8040256C .dbl:0004 -80402570 no_upgrade -80402578 hookshot_upgrade -8040258C @@return -80402594 strength_upgrade -804025B4 @@return -804025BC bomb_bag_upgrade -804025DC @@return -804025E4 bow_upgrade -80402604 @@return -8040260C slingshot_upgrade -8040262C @@return -80402634 wallet_upgrade -80402654 @@return -8040265C tycoon_wallet -80402670 scale_upgrade -80402684 @@return -8040268C nut_upgrade -804026A0 @@return -804026A8 stick_upgrade -804026BC @@return -804026C4 magic_upgrade -804026D4 @@return -804026DC arrows_to_rupee -804026F0 @@return -804026F8 bombs_to_rupee -8040270C @@return -80402714 seeds_to_rupee -80402728 @@return -80402730 no_effect -80402738 give_biggoron_sword -80402748 give_bottle -80402750 @@loop -8040277C @@return -80402784 give_dungeon_item -804027A0 give_small_key -804027B8 @not_negative -804027C8 give_defense -804027E8 give_magic -80402808 double_magic -80402830 bombchu_upgrade -80402854 @@return -8040285C ocarina_upgrade -80402870 @@return -80402878 give_fairy_ocarina -80402888 give_song -804028A4 inventory_check -80402910 @@return -80402918 override_skulltula_token -80402938 @@in_table -8040297C @@extended_effect -804029B0 @@not_extended -804029F8 @@item_effect -80402A04 @@return -80402A18 override_object_npc -80402A28 override_object_chest -80402A38 override_object -80402A50 @@return -80402A94 @@no_count_inc -80402A98 @@no_pending_clear -80402AA0 override_graphic -80402AB8 @@return -80402AD0 override_text -80402AEC @@return -80402AF4 override_action -80402B1C @@no_player_override -80402B78 @@return -80402B80 store_item_data_hook -80402BB4 store_item_data -80402C48 @@update_base_game -80402C78 @@not_chest -80402C88 @@not_negative -80402C8C @@return -80402C9C lookup_override -80402CC4 @@return -80402CD4 get_override_search_key -80402D14 @@not_skulltula -80402D4C @@valid_chest -80402D54 @@not_chest -80402D84 @@valid_collectable -80402D8C @@not_collectable -80402DB4 @@not_grotto_deku_scrub -80402DC4 @@return -80402DCC scan_override_table -80402E10 @@not_coop_item -80402E18 @@lookup_loop -80402E4C @@lookup_item_found -80402E80 @@return -80402E88 resolve_extended_item -80402E9C @@loop -80402EF0 @@not_extended -80402EF4 @@return -80402F0C override_great_fairy_cutscene -80402F64 @@item_fairy -80402F84 @@give_item -80402FB0 @@return -80402FB8 override_light_arrow_cutscene -80402FCC override_fairy_ocarina_cutscene -80402FE0 override_ocarina_songs -80402FF4 override_requiem_song -80403000 override_epona_song -80403020 override_suns_song -80403040 override_song_of_time -80403050 store_pending_special_item -80403060 @@find_duplicate_loop -8040307C @@find_empty_loop -80403094 @@return -8040309C override_saria_song_check -804030B8 @@get_item -804030C0 set_saria_song_flag -804030E0 set_dungeon_knowledge -8040310C @@set_flag -80403124 Shop_Check_Sold_Out -80403170 @@return -80403178 Shop_Set_Sold_Out -804031B0 @@return -804031B8 Shop_Keeper_Init_ID -804031D4 @@return -804031E4 Deku_Check_Sold_Out -80403208 @@continue -80403238 Deku_Set_Sold_Out -8040325C @@continue -80403290 before_game_state_update -804032E0 @@loop -80403338 @@no_pending_item -8040334C after_game_state_update -80403370 item_menu_prevent_empty_equip -80403380 @@return -80403388 equipment_menu_prevent_empty_equip -804033A8 @@return -804033BC menu_use_blank_description -804033F0 @@not_equip_menu -80403400 @@return -80403418 equipment_menu_slot_filled -80403468 give_master_sword -80403480 before_time_travel -804034B8 after_time_travel -804034F4 @@going_back -804034FC @@done -8040352C update_c_button -80403558 @@return -80403560 after_going_forward -8040359C @@no_init -804035AC after_going_back -804035DC @@not_swordless -804035E4 initialize_adult -8040360C @@no_mirror_shield -8040364C init_adult_button -80403678 @@empty -80403680 @@loop -804036D8 @@set_empty -804036E4 @@return -804036EC .byt:0001 -804036EC ADULT_INIT_ITEMS -804036ED .byt:0001 -804036EE .byt:0001 -804036EF .byt:0001 -804036F0 .byt:0001 -804036F1 .byt:0001 -804036F2 .byt:0001 -804036F3 .byt:0001 -804036F4 .byt:0001 -804036F8 .byt:0001 -804036F8 ADULT_VALID_ITEMS -804036F9 .byt:0001 -804036FA .byt:0001 -804036FB .byt:0001 -804036FC .byt:0001 -804036FD .byt:0001 -804036FE .byt:0001 -804036FF .byt:0001 -80403700 .byt:0001 -80403701 .byt:0001 -80403702 .byt:0001 -80403703 .byt:0001 -80403704 .byt:0001 -80403705 .byt:0001 -80403706 .byt:0001 -80403707 .byt:0001 -80403708 .byt:0001 -80403709 .byt:0001 -8040370A .byt:0001 -8040370B .byt:0001 +80402570 .byt:0001 +80402571 .byt:0001 +80402572 .byt:0001 +80402573 .byt:0001 +80402574 .wrd:0002 +80402576 .byt:0001 +80402577 .byt:0001 +80402578 .dbl:0004 +8040257C .dbl:0004 +80402580 .byt:0001 +80402581 .byt:0001 +80402582 .byt:0001 +80402583 .byt:0001 +80402584 .wrd:0002 +80402586 .byt:0001 +80402587 .byt:0001 +80402588 .dbl:0004 +8040258C .dbl:0004 +80402590 no_upgrade +80402598 hookshot_upgrade +804025AC @@return +804025B4 strength_upgrade +804025D4 @@return +804025DC bomb_bag_upgrade +804025FC @@return +80402604 bow_upgrade +80402624 @@return +8040262C slingshot_upgrade +8040264C @@return +80402654 wallet_upgrade +80402674 @@return +8040267C tycoon_wallet +80402690 scale_upgrade +804026A4 @@return +804026AC nut_upgrade +804026C0 @@return +804026C8 stick_upgrade +804026DC @@return +804026E4 magic_upgrade +804026F4 @@return +804026FC arrows_to_rupee +80402710 @@return +80402718 bombs_to_rupee +8040272C @@return +80402734 seeds_to_rupee +80402748 @@return +80402750 no_effect +80402758 give_biggoron_sword +80402768 give_bottle +80402770 @@loop +8040279C @@return +804027A4 give_dungeon_item +804027C0 give_small_key +804027D8 @not_negative +804027E8 give_defense +80402808 give_magic +80402828 double_magic +80402850 bombchu_upgrade +80402874 @@return +8040287C ocarina_upgrade +80402890 @@return +80402898 give_fairy_ocarina +804028A8 give_song +804028C4 inventory_check +80402930 @@return +80402938 override_skulltula_token +80402958 @@in_table +8040299C @@extended_effect +804029D0 @@not_extended +80402A18 @@item_effect +80402A24 @@return +80402A38 override_object_npc +80402A48 override_object_chest +80402A58 override_object +80402A70 @@return +80402AB4 @@no_count_inc +80402AB8 @@no_pending_clear +80402AC0 override_graphic +80402AD8 @@return +80402AF0 override_text +80402B0C @@return +80402B14 override_action +80402B3C @@no_player_override +80402B98 @@return +80402BA0 store_item_data_hook +80402BD4 store_item_data +80402C68 @@update_base_game +80402C98 @@not_chest +80402CA8 @@not_negative +80402CAC @@return +80402CBC lookup_override +80402CE4 @@return +80402CF4 get_override_search_key +80402D34 @@not_skulltula +80402D6C @@valid_chest +80402D74 @@not_chest +80402DA4 @@valid_collectable +80402DAC @@not_collectable +80402DD4 @@not_grotto_deku_scrub +80402DE4 @@return +80402DEC scan_override_table +80402E30 @@not_coop_item +80402E38 @@lookup_loop +80402E6C @@lookup_item_found +80402EA0 @@return +80402EA8 resolve_extended_item +80402EBC @@loop +80402F10 @@not_extended +80402F14 @@return +80402F2C override_great_fairy_cutscene +80402F84 @@item_fairy +80402FA4 @@give_item +80402FD0 @@return +80402FD8 override_light_arrow_cutscene +80402FEC override_fairy_ocarina_cutscene +80403000 override_ocarina_songs +80403014 override_requiem_song +80403020 override_epona_song +80403040 override_suns_song +80403060 override_song_of_time +80403070 store_pending_special_item +80403080 @@find_duplicate_loop +8040309C @@find_empty_loop +804030B4 @@return +804030BC override_saria_song_check +804030D8 @@get_item +804030E0 set_saria_song_flag +80403100 set_dungeon_knowledge +8040312C @@set_flag +80403144 Shop_Check_Sold_Out +80403190 @@return +80403198 Shop_Set_Sold_Out +804031D0 @@return +804031D8 Shop_Keeper_Init_ID +804031F4 @@return +80403204 Deku_Check_Sold_Out +80403228 @@continue +80403258 Deku_Set_Sold_Out +8040327C @@continue +804032B0 before_game_state_update +80403300 @@loop +80403358 @@no_pending_item +8040336C after_game_state_update +80403390 item_menu_prevent_empty_equip +804033A0 @@return +804033A8 equipment_menu_prevent_empty_equip +804033C8 @@return +804033DC menu_use_blank_description +80403410 @@not_equip_menu +80403420 @@return +80403438 equipment_menu_slot_filled +80403488 give_master_sword +804034A0 before_time_travel +804034D8 after_time_travel +80403514 @@going_back +8040351C @@done +8040354C update_c_button +80403578 @@return +80403580 after_going_forward +804035BC @@no_init +804035CC after_going_back +804035FC @@not_swordless +80403604 initialize_adult +8040362C @@no_mirror_shield +8040366C init_adult_button +80403698 @@empty +804036A0 @@loop +804036F8 @@set_empty +80403704 @@return 8040370C .byt:0001 +8040370C ADULT_INIT_ITEMS 8040370D .byt:0001 8040370E .byt:0001 8040370F .byt:0001 -80403710 suns_song_fix_event -80403744 @@child -80403754 @@return -8040375C suns_song_fix -80403770 @@check_suns_status -8040378C @@disable_suns -80403794 @@return -8040379C warp_song_fix -804037C8 @@child -804037D8 @@return -804037E0 Check_Has_Epona_Song -8040382C @@return -80403834 save_scarecrow_song -80403878 @@copy_song -80403880 write_initial_save -8040388C @@save_data_loop -804038BC @@overwrite_type -804038C4 @@return -804038CC get_name_char_1 -804038E8 get_name_char_2 -80403904 get_name_char -80403930 @@coop_player_name -80403948 @@return -80403950 reset_player_name_id -80403970 .byt:06E0 +80403710 .byt:0001 +80403711 .byt:0001 +80403712 .byt:0001 +80403713 .byt:0001 +80403714 .byt:0001 +80403718 .byt:0001 +80403718 ADULT_VALID_ITEMS +80403719 .byt:0001 +8040371A .byt:0001 +8040371B .byt:0001 +8040371C .byt:0001 +8040371D .byt:0001 +8040371E .byt:0001 +8040371F .byt:0001 +80403720 .byt:0001 +80403721 .byt:0001 +80403722 .byt:0001 +80403723 .byt:0001 +80403724 .byt:0001 +80403725 .byt:0001 +80403726 .byt:0001 +80403727 .byt:0001 +80403728 .byt:0001 +80403729 .byt:0001 +8040372A .byt:0001 +8040372B .byt:0001 +8040372C .byt:0001 +8040372D .byt:0001 +8040372E .byt:0001 +8040372F .byt:0001 +80403730 suns_song_fix_event +80403764 @@child +80403774 @@return +8040377C suns_song_fix +80403790 @@check_suns_status +804037AC @@disable_suns +804037B4 @@return +804037BC warp_song_fix +804037E8 @@child +804037F8 @@return +80403800 Check_Has_Epona_Song +8040384C @@return +80403854 save_scarecrow_song +80403898 @@copy_song +804038A0 write_initial_save +804038AC @@save_data_loop +804038DC @@overwrite_type +804038E4 @@return +804038EC get_name_char_1 +80403908 get_name_char_2 +80403924 get_name_char +80403950 @@coop_player_name +80403968 @@return +80403970 reset_player_name_id +80403990 .byt:06C0 80405000 draw_file_select_hash,00000234 80405234 disp_buf_init,00000018 8040524C sprite_bytes_per_tile,00000028 diff --git a/ASM/src/extended_items.asm b/ASM/src/extended_items.asm index dd24a88bf..6a29b7e47 100755 --- a/ASM/src/extended_items.asm +++ b/ASM/src/extended_items.asm @@ -144,6 +144,8 @@ Item_Row 0x53, 0x41, 0x07, 0xBD, 0x00B6, no_upgrade, give_song, 17, -1 ; 0xCF = Item_Row 0x4D, 0x00, 0xE5, 0x37, 0x00C7, no_upgrade, no_effect, -1, -1 ; 0xD0 = Deku Sticks (1) Item_Row 0x4D, 0x95, 0xB8, 0xDC, 0x0119, seeds_to_rupee, no_effect, -1, -1 ; 0xD1 = Deku Seeds (30) +Item_Row 0x77, 0x3E, 0xE3, 0x4C, 0x00CB, no_upgrade, no_effect, -1, -1 ; 0xD2 = Deku Shield +Item_Row 0x77, 0x3F, 0xD4, 0x4D, 0x00DC, no_upgrade, no_effect, -1, -1 ; 0xD3 = Hylian Shield ;================================================================================================== ; Item upgrade functions @@ -490,7 +492,7 @@ bombchu_upgrade: lbu t0, 0x94 (a0) ; Load bombchu count from inventory sltiu t0, t0, 0x06 - beqz t0, @@return ; if + beqz t0, @@return ; if li v0, 0x6A ; Bombchu 5 Pack li v0, 0x03 ; Bombchu 10 Pack diff --git a/Items.py b/Items.py index 68ae1aaff..3e8593d7d 100644 --- a/Items.py +++ b/Items.py @@ -76,8 +76,8 @@ def __init__(self, model, gid, price): 'Kokiri Sword': (True, False, None, 0x04E0, 0x27, 0x018D, 0x74), 'Master Sword': (True, False, None, None, None, None, None), 'Biggoron Sword': (True, False, None, None, 0xB5, 0x00F8, 0x43), - 'Deku Shield': (False, False, None, 0x0520, 0x29, 0x00CB, 0x1D), - 'Hylian Shield': (False, False, None, 0x0540, 0x2A, 0x00DC, 0x2C), + 'Deku Shield': (False, False, None, 0x0520, 0xD2, 0x00CB, 0x1D), + 'Hylian Shield': (False, False, None, 0x0540, 0xD3, 0x00DC, 0x2C), 'Mirror Shield': (True, False, None, 0x0560, 0x2B, 0x00EE, 0x3A), 'Goron Tunic': (True, False, None, 0x0580, 0x2C, 0x00F2, 0x3C), 'Zora Tunic': (True, False, None, 0x05A0, 0x2D, 0x00F2, 0x3D), @@ -200,37 +200,37 @@ def __init__(self, model, gid, price): 'Spirit Trial Clear': (True, False, 'Event', None, None, None, None), 'Light Trial Clear': (True, False, 'Event', None, None, None, None), 'Triforce': (True, False, 'Event', None, None, None, None), - 'Buy Deku Nut (5)': (True, False, 'Shop', None, 0x00, 0x00BB, 0x12), - 'Buy Arrows (30)': (False, True, 'Shop', None, 0x01, 0x00D8, 0x26), - 'Buy Arrows (50)': (False, True, 'Shop', None, 0x02, 0x00D8, 0x27), - 'Buy Bombs (5) [25]': (False, True, 'Shop', None, 0x03, 0x00CE, 0x20), - 'Buy Deku Nut (10)': (True, False, 'Shop', None, 0x04, 0x00BB, 0x12), - 'Buy Deku Stick (1)': (True, False, 'Shop', None, 0x05, 0x00C7, 0x1B), - 'Buy Bombs (10)': (False, True, 'Shop', None, 0x06, 0x00CE, 0x20), - 'Buy Fish': (False, True, 'Shop', None, 0x07, 0x00F4, 0x3F), - 'Buy Red Potion [30]': (False, True, 'Shop', None, 0x08, 0x00EB, 0x38), - 'Buy Green Potion': (False, True, 'Shop', None, 0x09, 0x00EB, 0x37), - 'Buy Blue Potion': (False, True, 'Shop', None, 0x0A, 0x00EB, 0x39), - 'Buy Hylian Shield': (False, True, 'Shop', None, 0x0C, 0x00DC, 0x2C), - 'Buy Deku Shield': (True, False, 'Shop', None, 0x0D, 0x00CB, 0x1D), - 'Buy Goron Tunic': (True, False, 'Shop', None, 0x0E, 0x00F2, 0x3C), - 'Buy Zora Tunic': (True, False, 'Shop', None, 0x0F, 0x00F2, 0x3D), - 'Buy Heart': (False, True, 'Shop', None, 0x10, 0x00B7, 0x09), - 'Buy Bombchu (10)': (True, False, 'Shop', None, 0x15, 0x00D9, 0x28), - 'Buy Bombchu (20)': (True, False, 'Shop', None, 0x16, 0x00D9, 0x28), - 'Buy Bombchu (5)': (True, False, 'Shop', None, 0x18, 0x00D9, 0x28), - 'Buy Deku Seeds (30)': (False, True, 'Shop', None, 0x1D, 0x0119, 0x48), - 'Sold Out': (False, True, 'Shop', None, 0x26, 0x0148, 0x59), - 'Buy Blue Fire': (True, False, 'Shop', None, 0x27, 0x0173, 0x67), - 'Buy Bottle Bug': (True, False, 'Shop', None, 0x28, 0x0174, 0x68), - 'Buy Poe': (False, True, 'Shop', None, 0x2A, 0x0176, 0x6A), - 'Buy Fairy\'s Spirit': (False, True, 'Shop', None, 0x2B, 0x0177, 0x6B), - 'Buy Arrows (10)': (False, True, 'Shop', None, 0x2C, 0x00D8, 0x25), - 'Buy Bombs (20)': (False, True, 'Shop', None, 0x2D, 0x00CE, 0x20), - 'Buy Bombs (30)': (False, True, 'Shop', None, 0x2E, 0x00CE, 0x20), - 'Buy Bombs (5) [35]': (False, True, 'Shop', None, 0x2F, 0x00CE, 0x20), - 'Buy Red Potion [40]': (False, True, 'Shop', None, 0x30, 0x00EB, 0x38), - 'Buy Red Potion [50]': (False, True, 'Shop', None, 0x31, 0x00EB, 0x38), + 'Buy Deku Nut (5)': (True, False, 'Shop', None, 0x00, 0x00BB, 0x12), + 'Buy Arrows (30)': (False, True, 'Shop', None, 0x01, 0x00D8, 0x26), + 'Buy Arrows (50)': (False, True, 'Shop', None, 0x02, 0x00D8, 0x27), + 'Buy Bombs (5) [25]': (False, True, 'Shop', None, 0x03, 0x00CE, 0x20), + 'Buy Deku Nut (10)': (True, False, 'Shop', None, 0x04, 0x00BB, 0x12), + 'Buy Deku Stick (1)': (True, False, 'Shop', None, 0x05, 0x00C7, 0x1B), + 'Buy Bombs (10)': (False, True, 'Shop', None, 0x06, 0x00CE, 0x20), + 'Buy Fish': (False, True, 'Shop', None, 0x07, 0x00F4, 0x3F), + 'Buy Red Potion [30]': (False, True, 'Shop', None, 0x08, 0x00EB, 0x38), + 'Buy Green Potion': (False, True, 'Shop', None, 0x09, 0x00EB, 0x37), + 'Buy Blue Potion': (False, True, 'Shop', None, 0x0A, 0x00EB, 0x39), + 'Buy Hylian Shield': (False, True, 'Shop', None, 0x0C, 0x00DC, 0x2C), + 'Buy Deku Shield': (True, False, 'Shop', None, 0x0D, 0x00CB, 0x1D), + 'Buy Goron Tunic': (True, False, 'Shop', None, 0x0E, 0x00F2, 0x3C), + 'Buy Zora Tunic': (True, False, 'Shop', None, 0x0F, 0x00F2, 0x3D), + 'Buy Heart': (False, True, 'Shop', None, 0x10, 0x00B7, 0x09), + 'Buy Bombchu (10)': (True, False, 'Shop', None, 0x15, 0x00D9, 0x28), + 'Buy Bombchu (20)': (True, False, 'Shop', None, 0x16, 0x00D9, 0x28), + 'Buy Bombchu (5)': (True, False, 'Shop', None, 0x18, 0x00D9, 0x28), + 'Buy Deku Seeds (30)': (False, True, 'Shop', None, 0x1D, 0x0119, 0x48), + 'Sold Out': (False, True, 'Shop', None, 0x26, 0x0148, 0x59), + 'Buy Blue Fire': (True, False, 'Shop', None, 0x27, 0x0173, 0x67), + 'Buy Bottle Bug': (True, False, 'Shop', None, 0x28, 0x0174, 0x68), + 'Buy Poe': (False, True, 'Shop', None, 0x2A, 0x0176, 0x6A), + 'Buy Fairy\'s Spirit': (False, True, 'Shop', None, 0x2B, 0x0177, 0x6B), + 'Buy Arrows (10)': (False, True, 'Shop', None, 0x2C, 0x00D8, 0x25), + 'Buy Bombs (20)': (False, True, 'Shop', None, 0x2D, 0x00CE, 0x20), + 'Buy Bombs (30)': (False, True, 'Shop', None, 0x2E, 0x00CE, 0x20), + 'Buy Bombs (5) [35]': (False, True, 'Shop', None, 0x2F, 0x00CE, 0x20), + 'Buy Red Potion [40]': (False, True, 'Shop', None, 0x30, 0x00EB, 0x38), + 'Buy Red Potion [50]': (False, True, 'Shop', None, 0x31, 0x00EB, 0x38), } item_data = { diff --git a/data/rom_patch.txt b/data/rom_patch.txt index 4ed794911..5240a51a4 100644 --- a/data/rom_patch.txt +++ b/data/rom_patch.txt @@ -474,22 +474,22 @@ d27a,30 a98c30,c a98c31,10 a98c32,a -a98c33,e0 +a98c33,e8 a9e838,8 a9e839,10 -a9e83a,d -a9e83b,f8 +a9e83a,e +a9e83b,0 ac9abc,c ac9abd,10 -ac9abe,b -ac9abf,fd +ac9abe,c +ac9abf,5 ac9ac1,0 ac9ac2,0 ac9ac3,0 acce88,c acce89,10 acce8a,b -acce8b,ee +acce8b,f6 acce8c,0 acce8d,0 acce8e,0 @@ -504,7 +504,7 @@ acce9b,0 ae5764,8 ae5765,10 ae5766,d -ae5767,20 +ae5767,28 ae5768,0 ae5769,0 ae576a,0 @@ -512,22 +512,22 @@ ae576b,0 ae59e0,8 ae59e1,10 ae59e2,d -ae59e3,2e +ae59e3,36 ae5df0,c ae5df1,10 ae5df2,d -ae5df3,d7 +ae5df3,df ae5df8,c ae5df9,10 -ae5dfa,b -ae5dfb,f8 +ae5dfa,c +ae5dfb,0 ae5e04,0 ae5e05,0 ae5e07,0 ae6e48,c ae6e49,10 ae6e4a,b -ae6e4b,f3 +ae6e4b,fb ae6e4c,1 ae6e4d,f ae6e4e,c0 @@ -542,19 +542,20 @@ b0640f,2 b06c2c,c b06c2d,10 b06c2e,e +b06c2f,28 b06c31,28 b06c33,20 b16b50,c b16b51,10 b16b52,c -b16b53,a4 +b16b53,ac b16b54,0 b16b56,0 b16b57,0 b16b60,c b16b61,10 b16b62,c -b16b63,d3 +b16b63,db b16b64,0 b16b65,0 b16b66,0 @@ -593,15 +594,15 @@ b17bd3,0 b51694,c b51695,10 b51696,e -b51697,33 +b51697,3b b516c4,c b516c5,10 b516c6,e -b516c7,3a +b516c7,42 b52784,c b52785,10 b52786,e -b52787,54 +b52787,5c b52788,0 b52789,0 b5278b,0 @@ -613,14 +614,14 @@ b5293f,18 b54b38,c b54b39,10 b54b3a,d -b54b3b,e7 +b54b3b,ef b54e5c,c b54e5d,10 b54e5e,d -b54e5f,c4 +b54e5f,cc b55a65,10 b55a66,e -b55a67,d +b55a67,15 baed6c,0 baed6d,0 baed6f,0 @@ -740,14 +741,14 @@ bb61e7,0 bb6688,c bb6689,10 bb668a,c -bb668b,e2 +bb668b,ea bb668c,0 bb668d,0 bb668f,0 bb67c4,c bb67c5,10 bb67c6,c -bb67c7,e2 +bb67c7,ea bb67c8,1 bb67c9,82 bb67ca,60 @@ -767,7 +768,7 @@ bb7bff,0 bb7c88,c bb7c89,10 bb7c8a,c -bb7c8b,dc +bb7c8b,e4 bb7c8c,1 bb7c8d,cf bb7c8e,88 @@ -775,14 +776,14 @@ bb7c8f,21 bb7d10,c bb7d11,10 bb7d12,c -bb7d13,dc +bb7d13,e4 bb7d14,0 bb7d15,0 bb7d17,0 bc088c,c bc088d,10 bc088e,c -bc088f,ef +bc088f,f7 bc0890,0 bc0891,0 bc0892,0 @@ -790,7 +791,7 @@ bc0893,0 bcecbc,8 bcecbd,10 bcecbe,a -bcecbf,a8 +bcecbf,b0 bcecc1,0 bcecc2,0 bcecc3,0 @@ -810,29 +811,29 @@ bcecd1,0 bcecd3,0 bda0a1,10 bda0a2,a -bda0a3,29 +bda0a3,31 bda0d8,c bda0d9,10 bda0da,a -bda0db,86 +bda0db,8e bda0e4,0 bda0e5,0 bda0e7,0 bda264,c bda265,10 bda266,a -bda267,8a +bda267,92 bda270,0 bda271,0 bda273,0 be9ac0,c be9ac1,10 be9ac2,a -be9ac3,b4 +be9ac3,bc be9ad8,c be9ad9,10 be9ada,a -be9adb,bd +be9adb,c5 be9ae4,0 be9ae5,0 be9bde,83 @@ -840,20 +841,20 @@ be9bdf,83 c004ec,8 c004ed,10 c004ee,c -c004ef,49 +c004ef,51 c0067f,64 c018a0,c c018a1,10 c018a2,c -c018a3,5e +c018a3,66 c6c7a8,c c6c7a9,10 c6c7aa,c -c6c7ab,6e +c6c7ab,76 c6c920,c c6c921,10 c6c922,c -c6c923,6e +c6c923,76 c892dc,34 c892dd,e c892de,0 @@ -864,7 +865,7 @@ c8931e,0 c8931f,1 c89745,10 c89746,b -c89747,c3 +c89747,cb c89868,92 c89869,e c8986a,1d @@ -879,7 +880,7 @@ c898ca,1d c898cb,2a cb6875,10 cb6876,d -cb6877,1a +cb6877,22 d12f78,34 d12f79,f d12f7b,0 @@ -1100,7 +1101,6 @@ d7e8e3,f d7ebbc,c d7ebbd,10 d7ebbe,c -d7ebbf,0 d7ec1c,0 d7ec1d,0 d7ec1f,0 @@ -1110,12 +1110,12 @@ db13d3,76 db532c,c db532d,10 db532e,c -db532f,10 +db532f,18 df264f,76 df7cb0,c df7cb1,10 df7cb2,c -df7cb3,8e +df7cb3,96 e09f68,80 e09f6a,e e09f6b,de @@ -1126,18 +1126,18 @@ e09f77,4 e09fb0,c e09fb1,10 e09fb2,c -e09fb3,8 +e09fb3,10 e29388,8 e29389,10 e2938a,c -e2938b,27 +e2938b,2f e2a044,c e2a045,10 e2a046,c -e2a047,30 +e2a047,38 e2b0b5,10 e2b0b6,c -e2b0b7,38 +e2b0b7,40 e2f093,34 e9e1d8,34 e9e1d9,9 @@ -1153,7 +1153,7 @@ e9e20d,a9 ebb85c,c ebb85d,10 ebb85e,c -ebb85f,79 +ebb85f,81 ebb865,40 ebb867,12 ebb86c,10 @@ -1175,7 +1175,7 @@ ec68c7,10 ec68c8,c ec68c9,10 ec68ca,a -ec68cb,46 +ec68cb,4e ec68cc,2 ec68cd,0 ec68ce,28 @@ -1210,7 +1210,7 @@ ec69b7,10 ec69b8,c ec69b9,10 ec69ba,a -ec69bb,46 +ec69bb,4e ec69bc,2 ec69bd,0 ec69be,28 @@ -1566,11 +1566,11 @@ ec9ce7,7a 3482058,80 3482059,40 348205a,27 -348205b,30 +348205b,50 348205c,80 348205d,40 348205e,25 -348205f,78 +348205f,98 3482060,ff 3482061,ff 3482062,ff @@ -1582,11 +1582,11 @@ ec9ce7,7a 3482068,80 3482069,40 348206a,27 -348206b,30 +348206b,50 348206c,80 348206d,40 348206e,25 -348206f,94 +348206f,b4 3482070,ff 3482071,ff 3482072,ff @@ -1598,11 +1598,11 @@ ec9ce7,7a 3482078,80 3482079,40 348207a,27 -348207b,30 +348207b,50 348207c,80 348207d,40 348207e,25 -348207f,bc +348207f,dc 3482080,ff 3482081,ff 3482082,ff @@ -1614,11 +1614,11 @@ ec9ce7,7a 3482088,80 3482089,40 348208a,27 -348208b,30 +348208b,50 348208c,80 348208d,40 -348208e,25 -348208f,e4 +348208e,26 +348208f,4 3482090,ff 3482091,ff 3482092,ff @@ -1630,11 +1630,11 @@ ec9ce7,7a 3482098,80 3482099,40 348209a,27 -348209b,30 +348209b,50 348209c,80 348209d,40 348209e,26 -348209f,c +348209f,2c 34820a0,53 34820a1,41 34820a2,23 @@ -1645,11 +1645,11 @@ ec9ce7,7a 34820a8,80 34820a9,40 34820aa,26 -34820ab,5c +34820ab,7c 34820ac,80 34820ad,40 34820ae,26 -34820af,34 +34820af,54 34820b0,ff 34820b1,ff 34820b2,ff @@ -1661,11 +1661,11 @@ ec9ce7,7a 34820b8,80 34820b9,40 34820ba,27 -34820bb,30 +34820bb,50 34820bc,80 34820bd,40 34820be,26 -34820bf,70 +34820bf,90 34820c0,ff 34820c1,ff 34820c2,ff @@ -1677,11 +1677,11 @@ ec9ce7,7a 34820c8,80 34820c9,40 34820ca,27 -34820cb,30 +34820cb,50 34820cc,80 34820cd,40 34820ce,26 -34820cf,8c +34820cf,ac 34820d0,ff 34820d1,ff 34820d2,ff @@ -1693,11 +1693,11 @@ ec9ce7,7a 34820d8,80 34820d9,40 34820da,27 -34820db,30 +34820db,50 34820dc,80 34820dd,40 34820de,26 -34820df,a8 +34820df,c8 34820e0,53 34820e1,41 34820e2,38 @@ -1708,11 +1708,11 @@ ec9ce7,7a 34820e8,80 34820e9,40 34820ea,27 -34820eb,48 +34820eb,68 34820ec,80 34820ed,40 34820ee,25 -34820ef,70 +34820ef,90 34820f0,53 34820f1,41 34820f2,37 @@ -1723,11 +1723,11 @@ ec9ce7,7a 34820f8,80 34820f9,40 34820fa,27 -34820fb,48 +34820fb,68 34820fc,80 34820fd,40 34820fe,25 -34820ff,70 +34820ff,90 3482100,53 3482101,41 3482102,39 @@ -1738,11 +1738,11 @@ ec9ce7,7a 3482108,80 3482109,40 348210a,27 -348210b,48 +348210b,68 348210c,80 348210d,40 348210e,25 -348210f,70 +348210f,90 3482110,53 3482111,41 3482112,6b @@ -1754,11 +1754,11 @@ ec9ce7,7a 3482118,80 3482119,40 348211a,27 -348211b,48 +348211b,68 348211c,80 348211d,40 348211e,25 -348211f,70 +348211f,90 3482120,53 3482121,41 3482122,3f @@ -1769,11 +1769,11 @@ ec9ce7,7a 3482128,80 3482129,40 348212a,27 -348212b,48 +348212b,68 348212c,80 348212d,40 348212e,25 -348212f,70 +348212f,90 3482130,53 3482131,41 3482132,67 @@ -1785,11 +1785,11 @@ ec9ce7,7a 3482138,80 3482139,40 348213a,27 -348213b,48 +348213b,68 348213c,80 348213d,40 348213e,25 -348213f,70 +348213f,90 3482140,53 3482141,41 3482142,68 @@ -1801,11 +1801,11 @@ ec9ce7,7a 3482148,80 3482149,40 348214a,27 -348214b,48 +348214b,68 348214c,80 348214d,40 348214e,25 -348214f,70 +348214f,90 3482150,53 3482151,41 3482152,70 @@ -1817,11 +1817,11 @@ ec9ce7,7a 3482158,80 3482159,40 348215a,27 -348215b,48 +348215b,68 348215c,80 348215d,40 348215e,25 -348215f,70 +348215f,90 3482160,53 3482161,41 3482162,6a @@ -1833,11 +1833,11 @@ ec9ce7,7a 3482168,80 3482169,40 348216a,27 -348216b,48 +348216b,68 348216c,80 348216d,40 348216e,25 -348216f,70 +348216f,90 3482170,53 3482171,41 3482172,a @@ -1848,11 +1848,11 @@ ec9ce7,7a 3482178,80 3482179,40 348217a,27 -348217b,84 +348217b,a4 348217c,80 348217d,40 348217e,25 -348217f,70 +348217f,90 3482180,53 3482181,41 3482182,a @@ -1863,11 +1863,11 @@ ec9ce7,7a 3482188,80 3482189,40 348218a,27 -348218b,84 +348218b,a4 348218c,80 348218d,40 348218e,25 -348218f,70 +348218f,90 3482190,53 3482191,41 3482192,a @@ -1878,11 +1878,11 @@ ec9ce7,7a 3482198,80 3482199,40 348219a,27 -348219b,84 +348219b,a4 348219c,80 348219d,40 348219e,25 -348219f,70 +348219f,90 34821a0,53 34821a1,41 34821a2,a @@ -1893,11 +1893,11 @@ ec9ce7,7a 34821a8,80 34821a9,40 34821aa,27 -34821ab,84 +34821ab,a4 34821ac,80 34821ad,40 34821ae,25 -34821af,70 +34821af,90 34821b0,53 34821b1,41 34821b2,a @@ -1908,11 +1908,11 @@ ec9ce7,7a 34821b8,80 34821b9,40 34821ba,27 -34821bb,84 +34821bb,a4 34821bc,80 34821bd,40 34821be,25 -34821bf,70 +34821bf,90 34821c0,53 34821c1,41 34821c2,a @@ -1923,11 +1923,11 @@ ec9ce7,7a 34821c8,80 34821c9,40 34821ca,27 -34821cb,84 +34821cb,a4 34821cc,80 34821cd,40 34821ce,25 -34821cf,70 +34821cf,90 34821d0,4d 34821d1,41 34821d2,f5 @@ -1937,11 +1937,11 @@ ec9ce7,7a 34821d8,80 34821d9,40 34821da,27 -34821db,84 +34821db,a4 34821dc,80 34821dd,40 34821de,25 -34821df,70 +34821df,90 34821e0,4d 34821e1,41 34821e2,f5 @@ -1952,11 +1952,11 @@ ec9ce7,7a 34821e8,80 34821e9,40 34821ea,27 -34821eb,84 +34821eb,a4 34821ec,80 34821ed,40 34821ee,25 -34821ef,70 +34821ef,90 34821f0,4d 34821f1,41 34821f2,f5 @@ -1967,11 +1967,11 @@ ec9ce7,7a 34821f8,80 34821f9,40 34821fa,27 -34821fb,84 +34821fb,a4 34821fc,80 34821fd,40 34821fe,25 -34821ff,70 +34821ff,90 3482200,4d 3482201,41 3482202,f5 @@ -1982,11 +1982,11 @@ ec9ce7,7a 3482208,80 3482209,40 348220a,27 -348220b,84 +348220b,a4 348220c,80 348220d,40 348220e,25 -348220f,70 +348220f,90 3482210,4d 3482211,41 3482212,f5 @@ -1997,11 +1997,11 @@ ec9ce7,7a 3482218,80 3482219,40 348221a,27 -348221b,84 +348221b,a4 348221c,80 348221d,40 348221e,25 -348221f,70 +348221f,90 3482220,4d 3482221,41 3482222,f5 @@ -2012,11 +2012,11 @@ ec9ce7,7a 3482228,80 3482229,40 348222a,27 -348222b,84 +348222b,a4 348222c,80 348222d,40 348222e,25 -348222f,70 +348222f,90 3482230,4d 3482231,41 3482232,f5 @@ -2027,11 +2027,11 @@ ec9ce7,7a 3482238,80 3482239,40 348223a,27 -348223b,84 +348223b,a4 348223c,80 348223d,40 348223e,25 -348223f,70 +348223f,90 3482240,4d 3482241,41 3482242,f5 @@ -2042,11 +2042,11 @@ ec9ce7,7a 3482248,80 3482249,40 348224a,27 -348224b,84 +348224b,a4 348224c,80 348224d,40 348224e,25 -348224f,70 +348224f,90 3482250,4d 3482251,41 3482252,f5 @@ -2057,11 +2057,11 @@ ec9ce7,7a 3482258,80 3482259,40 348225a,27 -348225b,84 +348225b,a4 348225c,80 348225d,40 348225e,25 -348225f,70 +348225f,90 3482260,4d 3482261,41 3482262,f5 @@ -2072,11 +2072,11 @@ ec9ce7,7a 3482268,80 3482269,40 348226a,27 -348226b,84 +348226b,a4 348226c,80 348226d,40 348226e,25 -348226f,70 +348226f,90 3482270,4d 3482271,41 3482272,e4 @@ -2086,11 +2086,11 @@ ec9ce7,7a 3482278,80 3482279,40 348227a,27 -348227b,84 +348227b,a4 348227c,80 348227d,40 348227e,25 -348227f,70 +348227f,90 3482280,4d 3482281,41 3482282,e4 @@ -2101,11 +2101,11 @@ ec9ce7,7a 3482288,80 3482289,40 348228a,27 -348228b,84 +348228b,a4 348228c,80 348228d,40 348228e,25 -348228f,70 +348228f,90 3482290,4d 3482291,41 3482292,e4 @@ -2116,11 +2116,11 @@ ec9ce7,7a 3482298,80 3482299,40 348229a,27 -348229b,84 +348229b,a4 348229c,80 348229d,40 348229e,25 -348229f,70 +348229f,90 34822a0,4d 34822a1,41 34822a2,e4 @@ -2131,11 +2131,11 @@ ec9ce7,7a 34822a8,80 34822a9,40 34822aa,27 -34822ab,84 +34822ab,a4 34822ac,80 34822ad,40 34822ae,25 -34822af,70 +34822af,90 34822b0,4d 34822b1,41 34822b2,e4 @@ -2146,11 +2146,11 @@ ec9ce7,7a 34822b8,80 34822b9,40 34822ba,27 -34822bb,84 +34822bb,a4 34822bc,80 34822bd,40 34822be,25 -34822bf,70 +34822bf,90 34822c0,4d 34822c1,41 34822c2,e4 @@ -2161,11 +2161,11 @@ ec9ce7,7a 34822c8,80 34822c9,40 34822ca,27 -34822cb,84 +34822cb,a4 34822cc,80 34822cd,40 34822ce,25 -34822cf,70 +34822cf,90 34822d0,4d 34822d1,41 34822d2,e4 @@ -2176,11 +2176,11 @@ ec9ce7,7a 34822d8,80 34822d9,40 34822da,27 -34822db,84 +34822db,a4 34822dc,80 34822dd,40 34822de,25 -34822df,70 +34822df,90 34822e0,4d 34822e1,41 34822e2,e4 @@ -2191,11 +2191,11 @@ ec9ce7,7a 34822e8,80 34822e9,40 34822ea,27 -34822eb,84 +34822eb,a4 34822ec,80 34822ed,40 34822ee,25 -34822ef,70 +34822ef,90 34822f0,4d 34822f1,41 34822f2,e4 @@ -2206,11 +2206,11 @@ ec9ce7,7a 34822f8,80 34822f9,40 34822fa,27 -34822fb,84 +34822fb,a4 34822fc,80 34822fd,40 34822fe,25 -34822ff,70 +34822ff,90 3482300,4d 3482301,41 3482302,e4 @@ -2221,11 +2221,11 @@ ec9ce7,7a 3482308,80 3482309,40 348230a,27 -348230b,84 +348230b,a4 348230c,80 348230d,40 348230e,25 -348230f,70 +348230f,90 3482310,53 3482311,41 3482312,2 @@ -2236,11 +2236,11 @@ ec9ce7,7a 3482318,80 3482319,40 348231a,27 -348231b,a0 +348231b,c0 348231c,80 348231d,40 348231e,25 -348231f,70 +348231f,90 3482320,53 3482321,41 3482322,2 @@ -2251,11 +2251,11 @@ ec9ce7,7a 3482328,80 3482329,40 348232a,27 -348232b,a0 +348232b,c0 348232c,80 348232d,40 348232e,25 -348232f,70 +348232f,90 3482330,53 3482331,41 3482332,2 @@ -2266,11 +2266,11 @@ ec9ce7,7a 3482338,80 3482339,40 348233a,27 -348233b,a0 +348233b,c0 348233c,80 348233d,40 348233e,25 -348233f,70 +348233f,90 3482340,53 3482341,41 3482342,2 @@ -2281,11 +2281,11 @@ ec9ce7,7a 3482348,80 3482349,40 348234a,27 -348234b,a0 +348234b,c0 348234c,80 348234d,40 348234e,25 -348234f,70 +348234f,90 3482350,53 3482351,41 3482352,2 @@ -2296,11 +2296,11 @@ ec9ce7,7a 3482358,80 3482359,40 348235a,27 -348235b,a0 +348235b,c0 348235c,80 348235d,40 348235e,25 -348235f,70 +348235f,90 3482360,53 3482361,41 3482362,2 @@ -2311,11 +2311,11 @@ ec9ce7,7a 3482368,80 3482369,40 348236a,27 -348236b,a0 +348236b,c0 348236c,80 348236d,40 348236e,25 -348236f,70 +348236f,90 3482370,53 3482371,41 3482372,2 @@ -2326,11 +2326,11 @@ ec9ce7,7a 3482378,80 3482379,40 348237a,27 -348237b,a0 +348237b,c0 348237c,80 348237d,40 348237e,25 -348237f,70 +348237f,90 3482380,53 3482381,41 3482382,2 @@ -2341,11 +2341,11 @@ ec9ce7,7a 3482388,80 3482389,40 348238a,27 -348238b,a0 +348238b,c0 348238c,80 348238d,40 348238e,25 -348238f,70 +348238f,90 3482390,53 3482391,41 3482392,2 @@ -2356,11 +2356,11 @@ ec9ce7,7a 3482398,80 3482399,40 348239a,27 -348239b,a0 +348239b,c0 348239c,80 348239d,40 348239e,25 -348239f,70 +348239f,90 34823a0,53 34823a1,3d 34823a2,43 @@ -2371,11 +2371,11 @@ ec9ce7,7a 34823a8,80 34823a9,40 34823aa,27 -34823ab,38 +34823ab,58 34823ac,80 34823ad,40 34823ae,25 -34823af,70 +34823af,90 34823b0,4d 34823b1,83 34823b2,f7 @@ -2386,11 +2386,11 @@ ec9ce7,7a 34823b8,80 34823b9,40 34823ba,27 -34823bb,30 +34823bb,50 34823bc,80 34823bd,40 34823be,25 -34823bf,70 +34823bf,90 34823c0,4d 34823c1,92 34823c2,db @@ -2401,11 +2401,11 @@ ec9ce7,7a 34823c8,80 34823c9,40 34823ca,27 -34823cb,30 +34823cb,50 34823cc,80 34823cd,40 34823ce,26 -34823cf,dc +34823cf,fc 34823d0,4d 34823d1,93 34823d2,da @@ -2416,11 +2416,11 @@ ec9ce7,7a 34823d8,80 34823d9,40 34823da,27 -34823db,30 +34823db,50 34823dc,80 34823dd,40 34823de,26 -34823df,dc +34823df,fc 34823e0,4d 34823e1,94 34823e2,d9 @@ -2431,11 +2431,11 @@ ec9ce7,7a 34823e8,80 34823e9,40 34823ea,27 -34823eb,30 +34823eb,50 34823ec,80 34823ed,40 34823ee,26 -34823ef,dc +34823ef,fc 34823f0,4d 34823f1,8e 34823f2,e0 @@ -2446,11 +2446,11 @@ ec9ce7,7a 34823f8,80 34823f9,40 34823fa,27 -34823fb,30 +34823fb,50 34823fc,80 34823fd,40 -34823fe,26 -34823ff,f8 +34823fe,27 +34823ff,18 3482400,4d 3482401,8f 3482402,e0 @@ -2461,11 +2461,11 @@ ec9ce7,7a 3482408,80 3482409,40 348240a,27 -348240b,30 +348240b,50 348240c,80 348240d,40 -348240e,26 -348240f,f8 +348240e,27 +348240f,18 3482410,4d 3482411,90 3482412,e0 @@ -2476,11 +2476,11 @@ ec9ce7,7a 3482418,80 3482419,40 348241a,27 -348241b,30 +348241b,50 348241c,80 348241d,40 -348241e,26 -348241f,f8 +348241e,27 +348241f,18 3482420,4d 3482421,8c 3482422,ee @@ -2491,11 +2491,11 @@ ec9ce7,7a 3482428,80 3482429,40 348242a,27 -348242b,30 +348242b,50 348242c,80 348242d,40 348242e,25 -348242f,70 +348242f,90 3482430,4d 3482431,8d 3482432,ee @@ -2506,11 +2506,11 @@ ec9ce7,7a 3482438,80 3482439,40 348243a,27 -348243b,30 +348243b,50 348243c,80 348243d,40 348243e,25 -348243f,70 +348243f,90 3482440,53 3482441,41 3482442,13 @@ -2521,11 +2521,11 @@ ec9ce7,7a 3482448,80 3482449,40 348244a,27 -348244b,c8 +348244b,e8 348244c,80 348244d,40 348244e,25 -348244f,70 +348244f,90 3482450,53 3482451,41 3482452,1e @@ -2535,12 +2535,12 @@ ec9ce7,7a 3482457,ff 3482458,80 3482459,40 -348245a,27 -348245b,e8 +348245a,28 +348245b,8 348245c,80 348245d,40 348245e,26 -348245f,c4 +348245f,e4 3482460,53 3482461,41 3482462,1f @@ -2551,11 +2551,11 @@ ec9ce7,7a 3482468,80 3482469,40 348246a,28 -348246b,8 +348246b,28 348246c,80 348246d,40 348246e,25 -348246f,70 +348246f,90 3482470,ff 3482471,ff 3482472,ff @@ -2567,11 +2567,11 @@ ec9ce7,7a 3482478,80 3482479,40 348247a,27 -348247b,30 +348247b,50 348247c,80 348247d,40 348247e,28 -348247f,30 +348247f,50 3482480,53 3482481,41 3482482,46 @@ -2583,11 +2583,11 @@ ec9ce7,7a 3482488,80 3482489,40 348248a,28 -348248b,78 +348248b,98 348248c,80 348248d,40 348248e,28 -348248f,5c +348248f,7c 3482490,53 3482491,41 3482492,3 @@ -2598,11 +2598,11 @@ ec9ce7,7a 3482498,80 3482499,40 348249a,28 -348249b,88 +348249b,a8 348249c,80 348249d,40 348249e,25 -348249f,70 +348249f,90 34824a0,53 34824a1,41 34824a2,4 @@ -2613,11 +2613,11 @@ ec9ce7,7a 34824a8,80 34824a9,40 34824aa,28 -34824ab,88 +34824ab,a8 34824ac,80 34824ad,40 34824ae,25 -34824af,70 +34824af,90 34824b0,53 34824b1,41 34824b2,5 @@ -2628,11 +2628,11 @@ ec9ce7,7a 34824b8,80 34824b9,40 34824ba,28 -34824bb,88 +34824bb,a8 34824bc,80 34824bd,40 34824be,25 -34824bf,70 +34824bf,90 34824c0,53 34824c1,41 34824c2,6 @@ -2643,11 +2643,11 @@ ec9ce7,7a 34824c8,80 34824c9,40 34824ca,28 -34824cb,88 +34824cb,a8 34824cc,80 34824cd,40 34824ce,25 -34824cf,70 +34824cf,90 34824d0,53 34824d1,41 34824d2,7 @@ -2658,11 +2658,11 @@ ec9ce7,7a 34824d8,80 34824d9,40 34824da,28 -34824db,88 +34824db,a8 34824dc,80 34824dd,40 34824de,25 -34824df,70 +34824df,90 34824e0,53 34824e1,41 34824e2,8 @@ -2673,11 +2673,11 @@ ec9ce7,7a 34824e8,80 34824e9,40 34824ea,28 -34824eb,88 +34824eb,a8 34824ec,80 34824ed,40 34824ee,25 -34824ef,70 +34824ef,90 34824f0,53 34824f1,41 34824f2,4 @@ -2688,11 +2688,11 @@ ec9ce7,7a 34824f8,80 34824f9,40 34824fa,28 -34824fb,88 +34824fb,a8 34824fc,80 34824fd,40 34824fe,25 -34824ff,70 +34824ff,90 3482500,53 3482501,41 3482502,6 @@ -2703,11 +2703,11 @@ ec9ce7,7a 3482508,80 3482509,40 348250a,28 -348250b,88 +348250b,a8 348250c,80 348250d,40 348250e,25 -348250f,70 +348250f,90 3482510,53 3482511,41 3482512,3 @@ -2718,11 +2718,11 @@ ec9ce7,7a 3482518,80 3482519,40 348251a,28 -348251b,88 +348251b,a8 348251c,80 348251d,40 348251e,25 -348251f,70 +348251f,90 3482520,53 3482521,41 3482522,8 @@ -2733,11 +2733,11 @@ ec9ce7,7a 3482528,80 3482529,40 348252a,28 -348252b,88 +348252b,a8 348252c,80 348252d,40 348252e,25 -348252f,70 +348252f,90 3482530,53 3482531,41 3482532,5 @@ -2748,11 +2748,11 @@ ec9ce7,7a 3482538,80 3482539,40 348253a,28 -348253b,88 +348253b,a8 348253c,80 348253d,40 348253e,25 -348253f,70 +348253f,90 3482540,53 3482541,41 3482542,7 @@ -2763,11 +2763,11 @@ ec9ce7,7a 3482548,80 3482549,40 348254a,28 -348254b,88 +348254b,a8 348254c,80 348254d,40 348254e,25 -348254f,70 +348254f,90 3482550,4d 3482552,e5 3482553,37 @@ -2777,11 +2777,11 @@ ec9ce7,7a 3482558,80 3482559,40 348255a,27 -348255b,30 +348255b,50 348255c,80 348255d,40 348255e,25 -348255f,70 +348255f,90 3482560,4d 3482561,95 3482562,b8 @@ -2793,397 +2793,404 @@ ec9ce7,7a 3482568,80 3482569,40 348256a,27 -348256b,30 +348256b,50 348256c,80 348256d,40 348256e,27 -348256f,14 -3482570,3 -3482571,e0 -3482573,8 -3482574,34 -3482575,a2 -3482578,90 -3482579,88 -348257b,7d -348257c,34 -348257d,1 -348257f,ff -3482580,11 -3482581,1 -3482583,2 -3482584,34 -3482585,2 -3482587,8 -3482588,34 -3482589,2 -348258b,9 -348258c,3 -348258d,e0 -348258f,8 -3482594,90 -3482595,88 -3482597,a3 -3482598,31 -3482599,8 -348259b,c0 -348259c,11 -348259f,5 -34825a0,34 -34825a1,2 -34825a3,54 +348256f,34 +3482570,77 +3482571,3e +3482572,e3 +3482573,4c +3482575,cb +3482576,ff +3482577,ff +3482578,80 +3482579,40 +348257a,27 +348257b,50 +348257c,80 +348257d,40 +348257e,25 +348257f,90 +3482580,77 +3482581,3f +3482582,d4 +3482583,4d +3482585,dc +3482586,ff +3482587,ff +3482588,80 +3482589,40 +348258a,27 +348258b,50 +348258c,80 +348258d,40 +348258e,25 +348258f,90 +3482590,3 +3482591,e0 +3482593,8 +3482594,34 +3482595,a2 +3482598,90 +3482599,88 +348259b,7d +348259c,34 +348259d,1 +348259f,ff +34825a0,11 +34825a1,1 +34825a3,2 34825a4,34 -34825a5,1 -34825a7,40 -34825a8,11 -34825a9,1 -34825ab,2 -34825ac,34 -34825ad,2 -34825af,35 -34825b0,34 -34825b1,2 -34825b3,36 -34825b4,3 -34825b5,e0 -34825b7,8 -34825bc,90 -34825bd,88 -34825bf,a3 -34825c0,31 -34825c1,8 -34825c3,18 -34825c4,11 -34825c7,5 -34825c8,34 -34825c9,2 -34825cb,32 +34825a5,2 +34825a7,8 +34825a8,34 +34825a9,2 +34825ab,9 +34825ac,3 +34825ad,e0 +34825af,8 +34825b4,90 +34825b5,88 +34825b7,a3 +34825b8,31 +34825b9,8 +34825bb,c0 +34825bc,11 +34825bf,5 +34825c0,34 +34825c1,2 +34825c3,54 +34825c4,34 +34825c5,1 +34825c7,40 +34825c8,11 +34825c9,1 +34825cb,2 34825cc,34 -34825cd,1 -34825cf,8 -34825d0,11 -34825d1,1 -34825d3,2 -34825d4,34 -34825d5,2 -34825d7,33 -34825d8,34 -34825d9,2 -34825db,34 -34825dc,3 -34825dd,e0 -34825df,8 -34825e4,90 -34825e5,88 -34825e7,a3 -34825e8,31 -34825e9,8 -34825eb,3 -34825ec,11 -34825ef,5 -34825f0,34 -34825f1,2 -34825f3,4 +34825cd,2 +34825cf,35 +34825d0,34 +34825d1,2 +34825d3,36 +34825d4,3 +34825d5,e0 +34825d7,8 +34825dc,90 +34825dd,88 +34825df,a3 +34825e0,31 +34825e1,8 +34825e3,18 +34825e4,11 +34825e7,5 +34825e8,34 +34825e9,2 +34825eb,32 +34825ec,34 +34825ed,1 +34825ef,8 +34825f0,11 +34825f1,1 +34825f3,2 34825f4,34 -34825f5,1 -34825f7,1 -34825f8,11 -34825f9,1 -34825fb,2 -34825fc,34 -34825fd,2 -34825ff,30 -3482600,34 -3482601,2 -3482603,31 -3482604,3 -3482605,e0 -3482607,8 -348260c,90 -348260d,88 -348260f,a2 -3482610,31 -3482611,8 -3482613,c0 -3482614,11 -3482617,5 -3482618,34 -3482619,2 -348261b,5 +34825f5,2 +34825f7,33 +34825f8,34 +34825f9,2 +34825fb,34 +34825fc,3 +34825fd,e0 +34825ff,8 +3482604,90 +3482605,88 +3482607,a3 +3482608,31 +3482609,8 +348260b,3 +348260c,11 +348260f,5 +3482610,34 +3482611,2 +3482613,4 +3482614,34 +3482615,1 +3482617,1 +3482618,11 +3482619,1 +348261b,2 348261c,34 -348261d,1 -348261f,40 -3482620,11 -3482621,1 -3482623,2 -3482624,34 -3482625,2 -3482627,60 -3482628,34 -3482629,2 -348262b,7b -348262c,3 -348262d,e0 -348262f,8 -3482634,90 -3482635,88 -3482637,a2 -3482638,31 -3482639,8 -348263b,30 -348263c,11 -348263f,5 -3482640,34 -3482641,2 -3482643,45 +348261d,2 +348261f,30 +3482620,34 +3482621,2 +3482623,31 +3482624,3 +3482625,e0 +3482627,8 +348262c,90 +348262d,88 +348262f,a2 +3482630,31 +3482631,8 +3482633,c0 +3482634,11 +3482637,5 +3482638,34 +3482639,2 +348263b,5 +348263c,34 +348263d,1 +348263f,40 +3482640,11 +3482641,1 +3482643,2 3482644,34 -3482645,9 -3482647,10 -3482648,11 -3482649,9 -348264b,2 -348264c,34 -348264d,2 -348264f,46 -3482650,34 -3482651,a2 -3482654,3 -3482655,e0 -3482657,8 -348265c,90 -348265d,88 -348265f,a2 -3482660,35 -3482661,8 -3482663,30 -3482664,a0 -3482665,88 -3482667,a2 -3482668,3 -3482669,e0 -348266b,8 -3482670,90 -3482671,88 -3482673,a2 -3482674,31 -3482675,8 -3482677,6 -3482678,11 -348267b,2 -348267c,34 -348267d,2 -348267f,37 -3482680,34 -3482681,2 -3482683,38 -3482684,3 -3482685,e0 -3482687,8 -348268c,90 -348268d,88 -348268f,a1 -3482690,31 -3482691,8 -3482693,20 -3482694,11 -3482697,2 -3482698,34 -3482699,2 -348269b,79 +3482645,2 +3482647,60 +3482648,34 +3482649,2 +348264b,7b +348264c,3 +348264d,e0 +348264f,8 +3482654,90 +3482655,88 +3482657,a2 +3482658,31 +3482659,8 +348265b,30 +348265c,11 +348265f,5 +3482660,34 +3482661,2 +3482663,45 +3482664,34 +3482665,9 +3482667,10 +3482668,11 +3482669,9 +348266b,2 +348266c,34 +348266d,2 +348266f,46 +3482670,34 +3482671,a2 +3482674,3 +3482675,e0 +3482677,8 +348267c,90 +348267d,88 +348267f,a2 +3482680,35 +3482681,8 +3482683,30 +3482684,a0 +3482685,88 +3482687,a2 +3482688,3 +3482689,e0 +348268b,8 +3482690,90 +3482691,88 +3482693,a2 +3482694,31 +3482695,8 +3482697,6 +3482698,11 +348269b,2 348269c,34 348269d,2 -348269f,7a -34826a0,3 -34826a1,e0 -34826a3,8 -34826a8,90 -34826a9,88 -34826ab,a1 -34826ac,31 -34826ad,8 -34826af,4 -34826b0,11 -34826b3,2 -34826b4,34 -34826b5,2 -34826b7,77 +348269f,37 +34826a0,34 +34826a1,2 +34826a3,38 +34826a4,3 +34826a5,e0 +34826a7,8 +34826ac,90 +34826ad,88 +34826af,a1 +34826b0,31 +34826b1,8 +34826b3,20 +34826b4,11 +34826b7,2 34826b8,34 34826b9,2 -34826bb,78 -34826bc,3 -34826bd,e0 -34826bf,8 -34826c4,90 -34826c5,88 -34826c7,32 -34826c8,11 -34826cb,2 -34826cc,34 -34826cd,2 -34826cf,c0 -34826d0,34 -34826d1,2 -34826d3,c1 -34826d4,3 -34826d5,e0 -34826d7,8 -34826dc,90 -34826dd,88 -34826df,a3 -34826e0,31 -34826e1,8 -34826e3,3 -34826e4,11 -34826e7,2 -34826e8,34 -34826e9,2 -34826eb,4d +34826bb,79 +34826bc,34 +34826bd,2 +34826bf,7a +34826c0,3 +34826c1,e0 +34826c3,8 +34826c8,90 +34826c9,88 +34826cb,a1 +34826cc,31 +34826cd,8 +34826cf,4 +34826d0,11 +34826d3,2 +34826d4,34 +34826d5,2 +34826d7,77 +34826d8,34 +34826d9,2 +34826db,78 +34826dc,3 +34826dd,e0 +34826df,8 +34826e4,90 +34826e5,88 +34826e7,32 +34826e8,11 +34826eb,2 34826ec,34 -34826ed,a2 -34826f0,3 -34826f1,e0 -34826f3,8 -34826f8,90 -34826f9,88 -34826fb,a3 -34826fc,31 -34826fd,8 -34826ff,18 -3482700,11 -3482703,2 -3482704,34 -3482705,2 -3482707,4d +34826ed,2 +34826ef,c0 +34826f0,34 +34826f1,2 +34826f3,c1 +34826f4,3 +34826f5,e0 +34826f7,8 +34826fc,90 +34826fd,88 +34826ff,a3 +3482700,31 +3482701,8 +3482703,3 +3482704,11 +3482707,2 3482708,34 -3482709,a2 -348270c,3 -348270d,e0 -348270f,8 -3482714,90 -3482715,88 -3482717,a2 -3482718,31 -3482719,8 -348271b,c0 -348271c,11 -348271f,2 -3482720,34 -3482721,2 -3482723,4d +3482709,2 +348270b,4d +348270c,34 +348270d,a2 +3482710,3 +3482711,e0 +3482713,8 +3482718,90 +3482719,88 +348271b,a3 +348271c,31 +348271d,8 +348271f,18 +3482720,11 +3482723,2 3482724,34 -3482725,a2 -3482728,3 -3482729,e0 -348272b,8 -3482730,3 -3482731,e0 -3482733,8 -3482738,34 +3482725,2 +3482727,4d +3482728,34 +3482729,a2 +348272c,3 +348272d,e0 +348272f,8 +3482734,90 +3482735,88 +3482737,a2 +3482738,31 3482739,8 -348273b,1 -348273c,a0 -348273d,88 -348273f,3e -3482740,3 -3482741,e0 -3482743,8 -3482748,24 -3482749,88 -348274b,86 -348274c,24 -348274d,9 -348274e,ff -348274f,ff -3482750,25 -3482751,29 -3482753,1 -3482754,34 -3482755,1 -3482757,3 -3482759,29 -348275a,8 -348275b,2a -348275c,14 -348275d,20 -348275f,7 -3482764,1 -3482765,9 -3482766,50 -3482767,21 -3482768,91 -3482769,4b -348276c,34 -348276d,1 +348273b,c0 +348273c,11 +348273f,2 +3482740,34 +3482741,2 +3482743,4d +3482744,34 +3482745,a2 +3482748,3 +3482749,e0 +348274b,8 +3482750,3 +3482751,e0 +3482753,8 +3482758,34 +3482759,8 +348275b,1 +348275c,a0 +348275d,88 +348275f,3e +3482760,3 +3482761,e0 +3482763,8 +3482768,24 +3482769,88 +348276b,86 +348276c,24 +348276d,9 +348276e,ff 348276f,ff -3482770,15 -3482771,61 -3482772,ff -3482773,f7 -3482778,a1 -3482779,45 -348277c,3 -348277d,e0 -348277f,8 -3482784,24 -3482785,88 -3482787,a8 -3482788,1 -3482789,6 -348278a,40 -348278b,21 -348278c,91 -348278d,9 -3482790,1 -3482791,25 -3482792,48 -3482793,25 -3482794,a1 -3482795,9 -3482798,3 -3482799,e0 -348279b,8 -34827a0,24 -34827a1,88 -34827a3,bc -34827a4,1 -34827a5,5 -34827a6,40 -34827a7,21 -34827a8,81 -34827a9,9 -34827ac,5 -34827ad,21 -34827af,2 -34827b4,34 +3482770,25 +3482771,29 +3482773,1 +3482774,34 +3482775,1 +3482777,3 +3482779,29 +348277a,8 +348277b,2a +348277c,14 +348277d,20 +348277f,7 +3482784,1 +3482785,9 +3482786,50 +3482787,21 +3482788,91 +3482789,4b +348278c,34 +348278d,1 +348278f,ff +3482790,15 +3482791,61 +3482792,ff +3482793,f7 +3482798,a1 +3482799,45 +348279c,3 +348279d,e0 +348279f,8 +34827a4,24 +34827a5,88 +34827a7,a8 +34827a8,1 +34827a9,6 +34827aa,40 +34827ab,21 +34827ac,91 +34827ad,9 +34827b0,1 +34827b1,25 +34827b2,48 +34827b3,25 +34827b4,a1 34827b5,9 -34827b8,25 -34827b9,29 -34827bb,1 -34827bc,a1 -34827bd,9 -34827c0,3 -34827c1,e0 -34827c3,8 -34827c8,34 -34827c9,8 -34827cb,1 -34827cc,a0 -34827cd,88 -34827cf,3d -34827d0,34 -34827d1,8 -34827d3,14 -34827d4,a0 -34827d5,88 -34827d7,cf -34827d8,34 -34827d9,8 -34827da,1 -34827db,40 -34827dc,a4 -34827dd,88 -34827de,14 -34827df,24 +34827b8,3 +34827b9,e0 +34827bb,8 +34827c0,24 +34827c1,88 +34827c3,bc +34827c4,1 +34827c5,5 +34827c6,40 +34827c7,21 +34827c8,81 +34827c9,9 +34827cc,5 +34827cd,21 +34827cf,2 +34827d4,34 +34827d5,9 +34827d8,25 +34827d9,29 +34827db,1 +34827dc,a1 +34827dd,9 34827e0,3 34827e1,e0 34827e3,8 @@ -3192,572 +3199,572 @@ ec9ce7,7a 34827eb,1 34827ec,a0 34827ed,88 -34827ef,32 -34827f0,a0 -34827f1,88 -34827f3,3a -34827f4,34 -34827f5,8 -34827f7,30 -34827f8,a4 -34827f9,88 -34827fa,13 -34827fb,f4 -34827fc,a0 +34827ef,3d +34827f0,34 +34827f1,8 +34827f3,14 +34827f4,a0 +34827f5,88 +34827f7,cf +34827f8,34 +34827f9,8 +34827fa,1 +34827fb,40 +34827fc,a4 34827fd,88 -34827ff,33 +34827fe,14 +34827ff,24 3482800,3 3482801,e0 3482803,8 3482808,34 3482809,8 -348280b,2 +348280b,1 348280c,a0 348280d,88 348280f,32 -3482810,34 -3482811,8 -3482813,1 -3482814,a0 -3482815,88 -3482817,3a -3482818,a0 +3482810,a0 +3482811,88 +3482813,3a +3482814,34 +3482815,8 +3482817,30 +3482818,a4 3482819,88 -348281b,3c -348281c,34 -348281d,8 -348281f,60 -3482820,a4 -3482821,88 -3482822,13 -3482823,f4 -3482824,a0 -3482825,88 -3482827,33 -3482828,3 -3482829,e0 -348282b,8 -3482830,90 -3482831,88 -3482833,7c -3482834,34 -3482835,1 -3482837,ff -3482838,11 -3482839,1 -348283b,6 +348281a,13 +348281b,f4 +348281c,a0 +348281d,88 +348281f,33 +3482820,3 +3482821,e0 +3482823,8 +3482828,34 +3482829,8 +348282b,2 +348282c,a0 +348282d,88 +348282f,32 +3482830,34 +3482831,8 +3482833,1 +3482834,a0 +3482835,88 +3482837,3a +3482838,a0 +3482839,88 +348283b,3c 348283c,34 -348283d,2 -348283f,6b -3482840,90 +348283d,8 +348283f,60 +3482840,a4 3482841,88 -3482843,94 -3482844,2d -3482845,8 -3482847,6 -3482848,11 -348284b,2 -348284c,34 -348284d,2 -348284f,6a -3482850,34 -3482851,2 -3482853,3 -3482854,3 -3482855,e0 -3482857,8 -348285c,90 -348285d,88 -348285f,7b -3482860,34 -3482861,1 -3482863,ff -3482864,11 -3482865,1 -3482867,2 -3482868,34 -3482869,a2 +3482842,13 +3482843,f4 +3482844,a0 +3482845,88 +3482847,33 +3482848,3 +3482849,e0 +348284b,8 +3482850,90 +3482851,88 +3482853,7c +3482854,34 +3482855,1 +3482857,ff +3482858,11 +3482859,1 +348285b,6 +348285c,34 +348285d,2 +348285f,6b +3482860,90 +3482861,88 +3482863,94 +3482864,2d +3482865,8 +3482867,6 +3482868,11 +348286b,2 348286c,34 348286d,2 -348286f,c -3482870,3 -3482871,e0 -3482873,8 -3482878,34 -3482879,8 -348287b,7 -348287c,a0 +348286f,6a +3482870,34 +3482871,2 +3482873,3 +3482874,3 +3482875,e0 +3482877,8 +348287c,90 348287d,88 348287f,7b -3482880,3 -3482881,e0 -3482883,8 +3482880,34 +3482881,1 +3482883,ff +3482884,11 +3482885,1 +3482887,2 3482888,34 -3482889,8 -348288b,1 -348288d,a8 -348288e,40 -348288f,4 -3482890,8c -3482891,89 -3482893,a4 -3482894,1 -3482895,28 -3482896,48 -3482897,25 -3482898,ac -3482899,89 -348289b,a4 -348289c,3 -348289d,e0 -348289f,8 -34828a4,30 -34828a5,84 -34828a7,ff -34828a8,3c +3482889,a2 +348288c,34 +348288d,2 +348288f,c +3482890,3 +3482891,e0 +3482893,8 +3482898,34 +3482899,8 +348289b,7 +348289c,a0 +348289d,88 +348289f,7b +34828a0,3 +34828a1,e0 +34828a3,8 +34828a8,34 34828a9,8 -34828aa,80 -34828ab,12 -34828ac,25 -34828ad,8 -34828ae,a5 -34828af,d0 -34828b0,34 -34828b1,1 -34828b3,8c -34828b4,10 -34828b5,81 -34828b7,16 -34828b8,91 -34828b9,2 -34828bb,75 -34828bc,34 -34828bd,1 -34828bf,8d -34828c0,10 -34828c1,81 -34828c3,13 -34828c4,91 -34828c5,2 -34828c7,75 -34828c8,10 -34828c9,80 -34828cb,11 -34828cc,91 -34828cd,2 -34828cf,74 +34828ab,1 +34828ad,a8 +34828ae,40 +34828af,4 +34828b0,8c +34828b1,89 +34828b3,a4 +34828b4,1 +34828b5,28 +34828b6,48 +34828b7,25 +34828b8,ac +34828b9,89 +34828bb,a4 +34828bc,3 +34828bd,e0 +34828bf,8 +34828c4,30 +34828c5,84 +34828c7,ff +34828c8,3c +34828c9,8 +34828ca,80 +34828cb,12 +34828cc,25 +34828cd,8 +34828ce,a5 +34828cf,d0 34828d0,34 34828d1,1 -34828d3,8a +34828d3,8c 34828d4,10 34828d5,81 -34828d7,e +34828d7,16 34828d8,91 34828d9,2 -34828db,74 +34828db,75 34828dc,34 34828dd,1 -34828df,8b +34828df,8d 34828e0,10 34828e1,81 -34828e3,b +34828e3,13 34828e4,91 34828e5,2 -34828e7,74 -34828e8,34 -34828e9,1 -34828eb,58 -34828ec,10 -34828ed,81 -34828ef,8 +34828e7,75 +34828e8,10 +34828e9,80 +34828eb,11 +34828ec,91 +34828ed,2 +34828ef,74 34828f0,34 -34828f1,2 -34828f4,34 -34828f5,1 -34828f7,78 -34828f8,10 -34828f9,81 -34828fb,5 +34828f1,1 +34828f3,8a +34828f4,10 +34828f5,81 +34828f7,e +34828f8,91 +34828f9,2 +34828fb,74 34828fc,34 -34828fd,2 -3482900,34 -3482901,1 -3482903,79 -3482904,10 -3482905,81 -3482907,2 +34828fd,1 +34828ff,8b +3482900,10 +3482901,81 +3482903,b +3482904,91 +3482905,2 +3482907,74 3482908,34 -3482909,2 -348290c,34 -348290d,2 -348290f,ff -3482910,3 -3482911,e0 -3482913,8 -3482918,27 -3482919,bd -348291a,ff -348291b,e0 -348291c,af -348291d,bf -348291f,10 -3482920,af -3482921,b0 -3482923,14 -3482924,c -3482925,10 -3482926,b -3482927,27 -348292c,4 -348292d,41 -348292f,2 -3482934,34 -3482935,2 -3482937,5b -3482939,40 -348293a,20 -348293b,21 -348293c,c -348293d,10 -348293e,b -348293f,a2 -3482944,10 -3482945,60 -3482947,1a -3482948,af -3482949,a3 -348294b,1c -348294c,90 -348294d,65 -348294f,3 -3482950,2 -3482951,20 -3482952,20 -3482953,21 -3482954,c -3482955,3 -3482956,73 -3482957,85 -348295a,30 +3482909,1 +348290b,58 +348290c,10 +348290d,81 +348290f,8 +3482910,34 +3482911,2 +3482914,34 +3482915,1 +3482917,78 +3482918,10 +3482919,81 +348291b,5 +348291c,34 +348291d,2 +3482920,34 +3482921,1 +3482923,79 +3482924,10 +3482925,81 +3482927,2 +3482928,34 +3482929,2 +348292c,34 +348292d,2 +348292f,ff +3482930,3 +3482931,e0 +3482933,8 +3482938,27 +3482939,bd +348293a,ff +348293b,e0 +348293c,af +348293d,bf +348293f,10 +3482940,af +3482941,b0 +3482943,14 +3482944,c +3482945,10 +3482946,b +3482947,2f +348294c,4 +348294d,41 +348294f,2 +3482954,34 +3482955,2 +3482957,5b +3482959,40 +348295a,20 348295b,21 -348295c,8f -348295d,a3 -348295f,1c -3482960,3c -3482961,8 -3482962,80 -3482963,40 -3482964,25 -3482965,8 -3482966,20 -3482968,85 -3482969,9 -348296b,2 -348296c,11 -348296d,20 +348295c,c +348295d,10 +348295e,b +348295f,aa +3482964,10 +3482965,60 +3482967,1a +3482968,af +3482969,a3 +348296b,1c +348296c,90 +348296d,65 348296f,3 -3482970,34 -3482971,a -3482973,1 -3482974,10 -3482977,23 -3482978,a5 -3482979,a -348297c,3c -348297d,4 -348297e,80 -348297f,12 -3482980,24 -3482981,84 -3482982,a5 -3482983,d0 -3482984,90 -3482985,65 -3482987,6 -3482988,90 -3482989,66 -348298b,7 -348298c,8c -348298d,69 -348298f,8 -3482990,1 -3482991,20 -3482992,f8 -3482993,9 -3482998,8f -3482999,a3 -348299b,1c -348299c,90 -348299d,65 -348299f,1 -34829a0,c -34829a1,1 -34829a2,bf -34829a3,73 -34829a4,2 -34829a5,20 -34829a6,20 -34829a7,21 -34829a8,10 -34829ab,16 -34829b0,3c -34829b1,9 -34829b2,80 -34829b3,3b -34829b4,25 -34829b5,29 -34829b6,9e -34829b7,7e -34829b8,34 -34829b9,a -34829bb,6 -34829bd,4a -34829bf,18 -34829c2,50 -34829c3,12 -34829c4,1 -34829c5,2a -34829c6,80 +3482970,2 +3482971,20 +3482972,20 +3482973,21 +3482974,c +3482975,3 +3482976,73 +3482977,85 +348297a,30 +348297b,21 +348297c,8f +348297d,a3 +348297f,1c +3482980,3c +3482981,8 +3482982,80 +3482983,40 +3482984,25 +3482985,8 +3482986,20 +3482988,85 +3482989,9 +348298b,2 +348298c,11 +348298d,20 +348298f,3 +3482990,34 +3482991,a +3482993,1 +3482994,10 +3482997,23 +3482998,a5 +3482999,a +348299c,3c +348299d,4 +348299e,80 +348299f,12 +34829a0,24 +34829a1,84 +34829a2,a5 +34829a3,d0 +34829a4,90 +34829a5,65 +34829a7,6 +34829a8,90 +34829a9,66 +34829ab,7 +34829ac,8c +34829ad,69 +34829af,8 +34829b0,1 +34829b1,20 +34829b2,f8 +34829b3,9 +34829b8,8f +34829b9,a3 +34829bb,1c +34829bc,90 +34829bd,65 +34829bf,1 +34829c0,c +34829c1,1 +34829c2,bf +34829c3,73 +34829c4,2 +34829c5,20 +34829c6,20 34829c7,21 -34829c8,2 -34829c9,20 -34829ca,20 -34829cb,21 -34829cc,92 -34829cd,5 -34829cf,3 -34829d0,c -34829d1,3 -34829d2,73 -34829d3,85 -34829d6,30 -34829d7,21 -34829d8,82 -34829d9,5 -34829dc,3c -34829dd,8 -34829de,80 -34829df,40 -34829e0,25 -34829e1,8 -34829e2,20 -34829e4,85 -34829e5,9 -34829e7,2 -34829e8,11 +34829c8,10 +34829cb,16 +34829d0,3c +34829d1,9 +34829d2,80 +34829d3,3b +34829d4,25 +34829d5,29 +34829d6,9e +34829d7,7e +34829d8,34 +34829d9,a +34829db,6 +34829dd,4a +34829df,18 +34829e2,50 +34829e3,12 +34829e4,1 +34829e5,2a +34829e6,80 +34829e7,21 +34829e8,2 34829e9,20 -34829eb,3 -34829ec,34 -34829ed,a -34829ef,1 -34829f0,a5 -34829f1,a -34829f4,34 -34829f5,5 -34829f7,41 -34829f8,c -34829f9,1 -34829fa,bf -34829fb,73 -34829fc,2 -34829fd,20 -34829fe,20 -34829ff,21 -3482a00,92 -3482a01,5 -3482a03,3 -3482a04,8f -3482a05,bf -3482a07,10 -3482a08,8f -3482a09,b0 -3482a0b,14 -3482a0c,27 -3482a0d,bd -3482a0f,20 -3482a10,3 -3482a11,e0 -3482a13,8 -3482a18,8f -3482a19,a6 -3482a1b,30 -3482a1c,84 -3482a1d,c5 -3482a1f,4 -3482a20,8 -3482a21,10 -3482a22,a -3482a23,8e +34829ea,20 +34829eb,21 +34829ec,92 +34829ed,5 +34829ef,3 +34829f0,c +34829f1,3 +34829f2,73 +34829f3,85 +34829f6,30 +34829f7,21 +34829f8,82 +34829f9,5 +34829fc,3c +34829fd,8 +34829fe,80 +34829ff,40 +3482a00,25 +3482a01,8 +3482a02,20 +3482a04,85 +3482a05,9 +3482a07,2 +3482a08,11 +3482a09,20 +3482a0b,3 +3482a0c,34 +3482a0d,a +3482a0f,1 +3482a10,a5 +3482a11,a +3482a14,34 +3482a15,5 +3482a17,41 +3482a18,c +3482a19,1 +3482a1a,bf +3482a1b,73 +3482a1c,2 +3482a1d,20 +3482a1e,20 +3482a1f,21 +3482a20,92 +3482a21,5 +3482a23,3 +3482a24,8f +3482a25,bf +3482a27,10 3482a28,8f -3482a29,b9 -3482a2b,2c -3482a2c,87 -3482a2d,25 -3482a2f,4 -3482a30,8 -3482a31,10 -3482a32,a -3482a33,8e -3482a38,3c -3482a39,a -3482a3a,80 -3482a3b,40 -3482a3c,25 -3482a3d,4a -3482a3e,20 -3482a3f,8 -3482a40,8d -3482a41,4b -3482a43,c -3482a44,11 -3482a45,60 -3482a47,2 -3482a4c,95 -3482a4d,45 +3482a29,b0 +3482a2b,14 +3482a2c,27 +3482a2d,bd +3482a2f,20 +3482a30,3 +3482a31,e0 +3482a33,8 +3482a38,8f +3482a39,a6 +3482a3b,30 +3482a3c,84 +3482a3d,c5 +3482a3f,4 +3482a40,8 +3482a41,10 +3482a42,a +3482a43,96 +3482a48,8f +3482a49,b9 +3482a4b,2c +3482a4c,87 +3482a4d,25 3482a4f,4 -3482a50,3c -3482a51,a -3482a52,80 -3482a53,1e -3482a54,25 -3482a55,4a -3482a56,89 -3482a57,84 -3482a58,a5 -3482a59,40 -3482a5c,3c -3482a5d,9 -3482a5e,80 -3482a5f,40 -3482a60,25 -3482a61,29 -3482a62,20 -3482a63,18 -3482a64,81 -3482a65,2a -3482a67,3 -3482a68,5 -3482a69,40 -3482a6b,b -3482a6c,1 -3482a6d,2a -3482a6e,48 -3482a6f,20 -3482a70,81 -3482a71,28 -3482a74,34 -3482a75,a -3482a77,7f -3482a78,15 -3482a79,a -3482a7b,6 -3482a80,3c -3482a81,a -3482a82,80 -3482a83,12 -3482a84,25 -3482a85,4a -3482a86,a5 -3482a87,d0 -3482a88,85 -3482a89,48 -3482a8b,90 -3482a8c,21 -3482a8d,8 -3482a8f,1 -3482a90,a5 -3482a91,48 -3482a93,90 -3482a94,a1 -3482a95,20 -3482a98,3 -3482a99,e0 -3482a9b,8 +3482a50,8 +3482a51,10 +3482a52,a +3482a53,96 +3482a58,3c +3482a59,a +3482a5a,80 +3482a5b,40 +3482a5c,25 +3482a5d,4a +3482a5e,20 +3482a5f,8 +3482a60,8d +3482a61,4b +3482a63,c +3482a64,11 +3482a65,60 +3482a67,2 +3482a6c,95 +3482a6d,45 +3482a6f,4 +3482a70,3c +3482a71,a +3482a72,80 +3482a73,1e +3482a74,25 +3482a75,4a +3482a76,89 +3482a77,84 +3482a78,a5 +3482a79,40 +3482a7c,3c +3482a7d,9 +3482a7e,80 +3482a7f,40 +3482a80,25 +3482a81,29 +3482a82,20 +3482a83,18 +3482a84,81 +3482a85,2a +3482a87,3 +3482a88,5 +3482a89,40 +3482a8b,b +3482a8c,1 +3482a8d,2a +3482a8e,48 +3482a8f,20 +3482a90,81 +3482a91,28 +3482a94,34 +3482a95,a +3482a97,7f +3482a98,15 +3482a99,a +3482a9b,6 3482aa0,3c -3482aa1,8 +3482aa1,a 3482aa2,80 -3482aa3,40 +3482aa3,12 3482aa4,25 -3482aa5,8 -3482aa6,20 -3482aa7,8 -3482aa8,8d -3482aa9,9 -3482aab,c -3482aac,11 -3482aad,20 -3482aaf,2 -3482ab4,81 -3482ab5,3 -3482ab7,2 -3482ab9,3 -3482aba,f -3482abb,c3 -3482abd,61 -3482abe,40 -3482abf,26 -3482ac0,1 -3482ac1,1 -3482ac2,40 -3482ac3,23 -3482ac4,a0 -3482ac5,88 -3482ac6,8 -3482ac7,52 -3482ac8,3 -3482ac9,e0 -3482acb,8 -3482ad0,90 -3482ad1,45 -3482ad3,3 -3482ad4,3c -3482ad5,8 -3482ad6,80 -3482ad7,40 -3482ad8,25 -3482ad9,8 -3482ada,20 -3482adb,8 -3482adc,8d -3482add,9 -3482adf,c -3482ae0,11 -3482ae1,20 -3482ae3,2 -3482ae8,91 -3482ae9,5 -3482aeb,3 -3482aec,3 -3482aed,e0 -3482aef,8 -3482af4,8f -3482af5,a2 -3482af7,24 -3482af8,90 -3482af9,45 -3482afc,3c -3482afd,8 -3482afe,80 -3482aff,40 -3482b00,25 -3482b01,8 -3482b02,20 -3482b04,85 -3482b05,9 -3482b07,2 -3482b08,11 -3482b09,20 -3482b0b,4 -3482b0c,34 -3482b0d,a -3482b0f,1 -3482b10,a5 -3482b11,a -3482b14,10 -3482b17,18 -3482b18,34 -3482b19,5 -3482b1b,41 +3482aa5,4a +3482aa6,a5 +3482aa7,d0 +3482aa8,85 +3482aa9,48 +3482aab,90 +3482aac,21 +3482aad,8 +3482aaf,1 +3482ab0,a5 +3482ab1,48 +3482ab3,90 +3482ab4,a1 +3482ab5,20 +3482ab8,3 +3482ab9,e0 +3482abb,8 +3482ac0,3c +3482ac1,8 +3482ac2,80 +3482ac3,40 +3482ac4,25 +3482ac5,8 +3482ac6,20 +3482ac7,8 +3482ac8,8d +3482ac9,9 +3482acb,c +3482acc,11 +3482acd,20 +3482acf,2 +3482ad4,81 +3482ad5,3 +3482ad7,2 +3482ad9,3 +3482ada,f +3482adb,c3 +3482add,61 +3482ade,40 +3482adf,26 +3482ae0,1 +3482ae1,1 +3482ae2,40 +3482ae3,23 +3482ae4,a0 +3482ae5,88 +3482ae6,8 +3482ae7,52 +3482ae8,3 +3482ae9,e0 +3482aeb,8 +3482af0,90 +3482af1,45 +3482af3,3 +3482af4,3c +3482af5,8 +3482af6,80 +3482af7,40 +3482af8,25 +3482af9,8 +3482afa,20 +3482afb,8 +3482afc,8d +3482afd,9 +3482aff,c +3482b00,11 +3482b01,20 +3482b03,2 +3482b08,91 +3482b09,5 +3482b0b,3 +3482b0c,3 +3482b0d,e0 +3482b0f,8 +3482b14,8f +3482b15,a2 +3482b17,24 +3482b18,90 +3482b19,45 3482b1c,3c 3482b1d,8 3482b1e,80 @@ -3765,857 +3772,856 @@ ec9ce7,7a 3482b20,25 3482b21,8 3482b22,20 -3482b23,8 -3482b24,8d +3482b24,85 3482b25,9 -3482b27,c +3482b27,2 3482b28,11 3482b29,20 -3482b2b,13 -3482b30,91 -3482b31,5 -3482b33,1 -3482b34,af -3482b35,a4 -3482b38,af -3482b39,a5 -3482b3b,4 -3482b3c,af -3482b3d,a6 -3482b3f,8 -3482b40,27 -3482b41,bd -3482b42,ff -3482b43,e8 -3482b44,af -3482b45,bf -3482b47,10 -3482b48,3c -3482b49,4 -3482b4a,80 -3482b4b,12 -3482b4c,24 -3482b4d,84 -3482b4e,a5 -3482b4f,d0 +3482b2b,4 +3482b2c,34 +3482b2d,a +3482b2f,1 +3482b30,a5 +3482b31,a +3482b34,10 +3482b37,18 +3482b38,34 +3482b39,5 +3482b3b,41 +3482b3c,3c +3482b3d,8 +3482b3e,80 +3482b3f,40 +3482b40,25 +3482b41,8 +3482b42,20 +3482b43,8 +3482b44,8d +3482b45,9 +3482b47,c +3482b48,11 +3482b49,20 +3482b4b,13 3482b50,91 3482b51,5 -3482b53,6 -3482b54,91 -3482b55,6 -3482b57,7 -3482b58,8d -3482b59,9 -3482b5b,8 -3482b5c,1 -3482b5d,20 -3482b5e,f8 -3482b5f,9 -3482b64,8f +3482b53,1 +3482b54,af +3482b55,a4 +3482b58,af +3482b59,a5 +3482b5b,4 +3482b5c,af +3482b5d,a6 +3482b5f,8 +3482b60,27 +3482b61,bd +3482b62,ff +3482b63,e8 +3482b64,af 3482b65,bf 3482b67,10 -3482b68,27 -3482b69,bd -3482b6b,18 -3482b6c,8f -3482b6d,a4 -3482b70,8f -3482b71,a5 -3482b73,4 -3482b74,8f -3482b75,a6 -3482b77,8 -3482b78,3 -3482b79,e0 +3482b68,3c +3482b69,4 +3482b6a,80 +3482b6b,12 +3482b6c,24 +3482b6d,84 +3482b6e,a5 +3482b6f,d0 +3482b70,91 +3482b71,5 +3482b73,6 +3482b74,91 +3482b75,6 +3482b77,7 +3482b78,8d +3482b79,9 3482b7b,8 -3482b80,a0 -3482b81,e6 -3482b82,4 -3482b83,24 -3482b84,27 -3482b85,bd -3482b86,ff -3482b87,e0 -3482b88,af -3482b89,a2 -3482b8b,10 -3482b8c,af -3482b8d,a3 -3482b8f,14 -3482b90,af -3482b91,bf -3482b93,18 -3482b94,c -3482b95,10 -3482b96,a -3482b97,ed -3482b9c,8f -3482b9d,a2 -3482b9f,10 -3482ba0,8f -3482ba1,a3 -3482ba3,14 -3482ba4,8f -3482ba5,bf -3482ba7,18 -3482ba8,27 -3482ba9,bd -3482bab,20 -3482bac,3 -3482bad,e0 -3482baf,8 -3482bb4,27 -3482bb5,bd -3482bb6,ff -3482bb7,e8 -3482bb8,af -3482bb9,bf -3482bbb,10 -3482bbc,3c -3482bbd,8 -3482bbe,80 -3482bbf,40 -3482bc0,25 -3482bc1,8 -3482bc2,20 -3482bc3,8 -3482bc4,ad -3482bc8,ad -3482bcb,4 -3482bcc,ad +3482b7c,1 +3482b7d,20 +3482b7e,f8 +3482b7f,9 +3482b84,8f +3482b85,bf +3482b87,10 +3482b88,27 +3482b89,bd +3482b8b,18 +3482b8c,8f +3482b8d,a4 +3482b90,8f +3482b91,a5 +3482b93,4 +3482b94,8f +3482b95,a6 +3482b97,8 +3482b98,3 +3482b99,e0 +3482b9b,8 +3482ba0,a0 +3482ba1,e6 +3482ba2,4 +3482ba3,24 +3482ba4,27 +3482ba5,bd +3482ba6,ff +3482ba7,e0 +3482ba8,af +3482ba9,a2 +3482bab,10 +3482bac,af +3482bad,a3 +3482baf,14 +3482bb0,af +3482bb1,bf +3482bb3,18 +3482bb4,c +3482bb5,10 +3482bb6,a +3482bb7,f5 +3482bbc,8f +3482bbd,a2 +3482bbf,10 +3482bc0,8f +3482bc1,a3 +3482bc3,14 +3482bc4,8f +3482bc5,bf +3482bc7,18 +3482bc8,27 +3482bc9,bd +3482bcb,20 +3482bcc,3 +3482bcd,e0 3482bcf,8 -3482bd0,ad -3482bd3,c -3482bd4,3c -3482bd5,8 -3482bd6,80 -3482bd7,1e -3482bd8,25 -3482bd9,8 -3482bda,aa -3482bdb,30 -3482bdc,81 -3482bdd,9 -3482bde,4 -3482bdf,24 -3482be0,11 -3482be1,20 -3482be3,2a -3482be9,9 -3482bea,f -3482beb,c3 -3482bec,1 -3482bed,21 -3482bee,20 -3482bef,26 -3482bf1,81 -3482bf2,20 -3482bf3,23 -3482bf4,8d -3482bf5,5 -3482bf6,4 -3482bf7,28 -3482bf8,c -3482bf9,10 -3482bfa,b -3482bfb,27 -3482c00,4 -3482c01,40 -3482c03,22 -3482c08,34 -3482c09,44 -3482c0c,c -3482c0d,10 -3482c0e,b -3482c0f,a2 -3482c14,10 -3482c15,60 -3482c17,c -3482c1c,3c -3482c1d,8 -3482c1e,80 -3482c1f,40 -3482c20,25 -3482c21,8 -3482c22,20 -3482c23,8 -3482c24,8c -3482c25,69 -3482c28,ad -3482c29,9 -3482c2c,8c -3482c2d,69 -3482c2f,4 -3482c30,ad -3482c31,9 -3482c33,4 -3482c34,8c -3482c35,69 -3482c37,8 -3482c38,ad -3482c39,9 -3482c3b,8 -3482c3c,34 -3482c3d,9 -3482c3f,1 -3482c40,ad -3482c41,9 -3482c43,c -3482c44,90 -3482c45,62 -3482c48,3c -3482c49,8 -3482c4a,80 -3482c4b,1e -3482c4c,25 -3482c4d,8 -3482c4e,aa -3482c4f,30 -3482c50,8d +3482bd4,27 +3482bd5,bd +3482bd6,ff +3482bd7,e8 +3482bd8,af +3482bd9,bf +3482bdb,10 +3482bdc,3c +3482bdd,8 +3482bde,80 +3482bdf,40 +3482be0,25 +3482be1,8 +3482be2,20 +3482be3,8 +3482be4,ad +3482be8,ad +3482beb,4 +3482bec,ad +3482bef,8 +3482bf0,ad +3482bf3,c +3482bf4,3c +3482bf5,8 +3482bf6,80 +3482bf7,1e +3482bf8,25 +3482bf9,8 +3482bfa,aa +3482bfb,30 +3482bfc,81 +3482bfd,9 +3482bfe,4 +3482bff,24 +3482c00,11 +3482c01,20 +3482c03,2a +3482c09,9 +3482c0a,f +3482c0b,c3 +3482c0c,1 +3482c0d,21 +3482c0e,20 +3482c0f,26 +3482c11,81 +3482c12,20 +3482c13,23 +3482c14,8d +3482c15,5 +3482c16,4 +3482c17,28 +3482c18,c +3482c19,10 +3482c1a,b +3482c1b,2f +3482c20,4 +3482c21,40 +3482c23,22 +3482c28,34 +3482c29,44 +3482c2c,c +3482c2d,10 +3482c2e,b +3482c2f,aa +3482c34,10 +3482c35,60 +3482c37,c +3482c3c,3c +3482c3d,8 +3482c3e,80 +3482c3f,40 +3482c40,25 +3482c41,8 +3482c42,20 +3482c43,8 +3482c44,8c +3482c45,69 +3482c48,ad +3482c49,9 +3482c4c,8c +3482c4d,69 +3482c4f,4 +3482c50,ad 3482c51,9 -3482c52,4 -3482c53,28 -3482c54,95 -3482c55,2a -3482c58,34 -3482c59,1 -3482c5b,a -3482c5c,15 -3482c5d,41 -3482c5f,6 -3482c64,95 -3482c65,2a -3482c67,1c -3482c68,31 -3482c69,4a -3482c6a,f0 -3482c6b,1f -3482c6d,2 -3482c6e,59 -3482c6f,40 -3482c70,1 -3482c71,4b -3482c72,50 -3482c73,25 -3482c74,a5 +3482c53,4 +3482c54,8c +3482c55,69 +3482c57,8 +3482c58,ad +3482c59,9 +3482c5b,8 +3482c5c,34 +3482c5d,9 +3482c5f,1 +3482c60,ad +3482c61,9 +3482c63,c +3482c64,90 +3482c65,62 +3482c68,3c +3482c69,8 +3482c6a,80 +3482c6b,1e +3482c6c,25 +3482c6d,8 +3482c6e,aa +3482c6f,30 +3482c70,8d +3482c71,9 +3482c72,4 +3482c73,28 +3482c74,95 3482c75,2a -3482c77,1c -3482c78,81 -3482c79,9 -3482c7a,4 -3482c7b,24 -3482c7c,5 -3482c7d,21 -3482c7f,2 -3482c85,2 -3482c86,10 -3482c87,23 -3482c88,a1 -3482c89,2 -3482c8a,4 -3482c8b,24 -3482c8c,8f -3482c8d,bf -3482c8f,10 -3482c90,27 -3482c91,bd -3482c93,18 -3482c94,3 -3482c95,e0 -3482c97,8 -3482c9c,27 -3482c9d,bd -3482c9e,ff -3482c9f,e8 -3482ca0,af -3482ca1,bf -3482ca3,10 -3482ca4,c -3482ca5,10 -3482ca6,b -3482ca7,35 -3482cac,24 -3482cad,1 -3482cae,ff -3482caf,ff -3482cb0,10 -3482cb1,41 -3482cb3,4 -3482cb8,34 -3482cb9,44 -3482cbc,c -3482cbd,10 -3482cbe,b -3482cbf,73 -3482cc4,8f -3482cc5,bf -3482cc7,10 -3482cc8,27 -3482cc9,bd -3482ccb,18 -3482ccc,3 -3482ccd,e0 -3482ccf,8 -3482cd4,3c -3482cd5,2 -3482cd6,80 -3482cd7,1d -3482cd8,24 -3482cd9,42 -3482cda,84 -3482cdb,a0 -3482cdc,94 -3482cdd,42 -3482cdf,a4 -3482ce0,34 -3482ce1,8 -3482ce4,34 -3482ce5,89 -3482ce8,94 -3482ce9,aa -3482cec,34 -3482ced,1 -3482cee,1 -3482cef,9c -3482cf0,15 -3482cf1,41 -3482cf3,8 -3482cf8,34 -3482cf9,8 -3482cfb,3 +3482c78,34 +3482c79,1 +3482c7b,a +3482c7c,15 +3482c7d,41 +3482c7f,6 +3482c84,95 +3482c85,2a +3482c87,1c +3482c88,31 +3482c89,4a +3482c8a,f0 +3482c8b,1f +3482c8d,2 +3482c8e,59 +3482c8f,40 +3482c90,1 +3482c91,4b +3482c92,50 +3482c93,25 +3482c94,a5 +3482c95,2a +3482c97,1c +3482c98,81 +3482c99,9 +3482c9a,4 +3482c9b,24 +3482c9c,5 +3482c9d,21 +3482c9f,2 +3482ca5,2 +3482ca6,10 +3482ca7,23 +3482ca8,a1 +3482ca9,2 +3482caa,4 +3482cab,24 +3482cac,8f +3482cad,bf +3482caf,10 +3482cb0,27 +3482cb1,bd +3482cb3,18 +3482cb4,3 +3482cb5,e0 +3482cb7,8 +3482cbc,27 +3482cbd,bd +3482cbe,ff +3482cbf,e8 +3482cc0,af +3482cc1,bf +3482cc3,10 +3482cc4,c +3482cc5,10 +3482cc6,b +3482cc7,3d +3482ccc,24 +3482ccd,1 +3482cce,ff +3482ccf,ff +3482cd0,10 +3482cd1,41 +3482cd3,4 +3482cd8,34 +3482cd9,44 +3482cdc,c +3482cdd,10 +3482cde,b +3482cdf,7b +3482ce4,8f +3482ce5,bf +3482ce7,10 +3482ce8,27 +3482ce9,bd +3482ceb,18 +3482cec,3 +3482ced,e0 +3482cef,8 +3482cf4,3c +3482cf5,2 +3482cf6,80 +3482cf7,1d +3482cf8,24 +3482cf9,42 +3482cfa,84 +3482cfb,a0 3482cfc,94 -3482cfd,ab -3482cff,1c -3482d00,31 -3482d01,69 -3482d03,ff -3482d04,31 -3482d05,62 -3482d06,1f -3482d09,2 -3482d0a,12 -3482d0b,2 -3482d0c,10 -3482d0f,1f -3482d14,34 -3482d15,1 -3482d17,a -3482d18,15 -3482d19,41 -3482d1b,e -3482d20,94 -3482d21,ab -3482d23,1c -3482d24,34 -3482d25,1 -3482d27,10 -3482d28,14 -3482d29,41 -3482d2b,8 -3482d30,31 -3482d31,6c -3482d32,f -3482d33,e0 +3482cfd,42 +3482cff,a4 +3482d00,34 +3482d01,8 +3482d04,34 +3482d05,89 +3482d08,94 +3482d09,aa +3482d0c,34 +3482d0d,1 +3482d0e,1 +3482d0f,9c +3482d10,15 +3482d11,41 +3482d13,8 +3482d18,34 +3482d19,8 +3482d1b,3 +3482d1c,94 +3482d1d,ab +3482d1f,1c +3482d20,31 +3482d21,69 +3482d23,ff +3482d24,31 +3482d25,62 +3482d26,1f +3482d29,2 +3482d2a,12 +3482d2b,2 +3482d2c,10 +3482d2f,1f 3482d34,34 3482d35,1 -3482d36,e -3482d37,a0 +3482d37,a 3482d38,15 -3482d39,81 -3482d3b,4 -3482d40,24 -3482d41,2 -3482d42,ff -3482d43,ff -3482d44,10 -3482d47,1f -3482d4c,34 -3482d4d,8 -3482d4f,1 +3482d39,41 +3482d3b,e +3482d40,94 +3482d41,ab +3482d43,1c +3482d44,34 +3482d45,1 +3482d47,10 +3482d48,14 +3482d49,41 +3482d4b,8 3482d50,31 -3482d51,69 -3482d53,1f +3482d51,6c +3482d52,f +3482d53,e0 3482d54,34 3482d55,1 -3482d57,15 +3482d56,e +3482d57,a0 3482d58,15 -3482d59,41 -3482d5b,c -3482d60,34 -3482d61,1 -3482d63,3e +3482d59,81 +3482d5b,4 +3482d60,24 +3482d61,2 +3482d62,ff +3482d63,ff 3482d64,10 -3482d65,81 -3482d67,7 +3482d67,1f 3482d6c,34 -3482d6d,1 -3482d6f,42 -3482d70,10 -3482d71,81 -3482d73,4 -3482d78,24 -3482d79,2 -3482d7a,ff -3482d7b,ff -3482d7c,10 -3482d7f,11 -3482d84,34 -3482d85,8 -3482d87,2 -3482d88,90 -3482d89,a9 -3482d8a,1 -3482d8b,41 +3482d6d,8 +3482d6f,1 +3482d70,31 +3482d71,69 +3482d73,1f +3482d74,34 +3482d75,1 +3482d77,15 +3482d78,15 +3482d79,41 +3482d7b,c +3482d80,34 +3482d81,1 +3482d83,3e +3482d84,10 +3482d85,81 +3482d87,7 3482d8c,34 3482d8d,1 -3482d8e,1 -3482d8f,1a -3482d90,15 -3482d91,41 -3482d93,8 -3482d98,34 -3482d99,1 -3482d9b,3e -3482d9c,14 -3482d9d,41 -3482d9f,5 +3482d8f,42 +3482d90,10 +3482d91,81 +3482d93,4 +3482d98,24 +3482d99,2 +3482d9a,ff +3482d9b,ff +3482d9c,10 +3482d9f,11 3482da4,34 3482da5,8 -3482da7,4 -3482da8,3c -3482da9,b -3482daa,80 -3482dab,12 -3482dac,25 -3482dad,6b -3482dae,a5 -3482daf,d0 -3482db0,81 -3482db1,62 -3482db2,13 -3482db3,97 -3482db5,2 -3482db6,12 -3482db9,48 -3482dba,10 -3482dbb,25 -3482dbd,2 -3482dbe,12 -3482dc1,49 -3482dc2,10 -3482dc3,25 -3482dc4,3 -3482dc5,e0 -3482dc7,8 -3482dcc,24 -3482dcd,2 -3482dce,ff -3482dcf,ff -3482dd0,3c -3482dd1,8 -3482dd2,80 -3482dd3,40 -3482dd4,25 -3482dd5,8 -3482dd6,1c -3482dd8,91 -3482dd9,9 -3482ddc,3c -3482ddd,8 -3482dde,80 -3482ddf,40 -3482de0,25 -3482de1,8 -3482de2,1c -3482de3,2 -3482de4,a1 -3482de5,9 -3482de8,30 -3482de9,89 -3482deb,ff -3482dec,34 -3482ded,1 -3482def,7f -3482df0,15 -3482df1,21 -3482df3,7 -3482df8,3c -3482df9,8 -3482dfa,80 -3482dfb,40 -3482dfc,25 +3482da7,2 +3482da8,90 +3482da9,a9 +3482daa,1 +3482dab,41 +3482dac,34 +3482dad,1 +3482dae,1 +3482daf,1a +3482db0,15 +3482db1,41 +3482db3,8 +3482db8,34 +3482db9,1 +3482dbb,3e +3482dbc,14 +3482dbd,41 +3482dbf,5 +3482dc4,34 +3482dc5,8 +3482dc7,4 +3482dc8,3c +3482dc9,b +3482dca,80 +3482dcb,12 +3482dcc,25 +3482dcd,6b +3482dce,a5 +3482dcf,d0 +3482dd0,81 +3482dd1,62 +3482dd2,13 +3482dd3,97 +3482dd5,2 +3482dd6,12 +3482dd9,48 +3482dda,10 +3482ddb,25 +3482ddd,2 +3482dde,12 +3482de1,49 +3482de2,10 +3482de3,25 +3482de4,3 +3482de5,e0 +3482de7,8 +3482dec,24 +3482ded,2 +3482dee,ff +3482def,ff +3482df0,3c +3482df1,8 +3482df2,80 +3482df3,40 +3482df4,25 +3482df5,8 +3482df6,1c +3482df8,91 +3482df9,9 +3482dfc,3c 3482dfd,8 -3482dfe,1c -3482e00,91 -3482e01,b -3482e04,91 -3482e05,2 -3482e07,1 -3482e08,10 -3482e0b,10 -3482e10,3c -3482e11,8 -3482e12,80 -3482e13,40 -3482e14,25 -3482e15,8 -3482e16,f -3482e17,fc -3482e18,25 +3482dfe,80 +3482dff,40 +3482e00,25 +3482e01,8 +3482e02,1c +3482e03,2 +3482e04,a1 +3482e05,9 +3482e08,30 +3482e09,89 +3482e0b,ff +3482e0c,34 +3482e0d,1 +3482e0f,7f +3482e10,15 +3482e11,21 +3482e13,7 +3482e18,3c 3482e19,8 -3482e1b,4 -3482e1c,8d -3482e1d,9 -3482e20,11 -3482e21,20 -3482e23,17 -3482e29,9 -3482e2a,52 -3482e2b,2 -3482e2c,31 -3482e2d,4b -3482e2e,f8 -3482e31,b -3482e32,5a -3482e33,c2 -3482e34,3c -3482e35,c -3482e36,ff -3482e37,ff -3482e38,35 -3482e39,8c -3482e3a,7 -3482e3b,ff -3482e3c,1 -3482e3d,4c -3482e3e,50 -3482e3f,24 -3482e40,15 -3482e41,44 -3482e42,ff -3482e43,f5 -3482e48,31 -3482e49,22 -3482e4b,ff -3482e4c,3c -3482e4d,8 -3482e4e,80 -3482e4f,40 -3482e50,25 -3482e51,8 -3482e52,1c -3482e53,2 -3482e54,a1 -3482e55,b -3482e58,3c -3482e59,9 -3482e5a,80 -3482e5b,40 -3482e5c,25 -3482e5d,29 -3482e5e,20 -3482e60,3c -3482e61,c -3482e62,80 -3482e63,40 -3482e64,25 -3482e65,8c -3482e66,1c -3482e68,91 -3482e69,8c -3482e6c,11 -3482e6d,6c -3482e6f,4 -3482e70,a5 -3482e71,20 +3482e1a,80 +3482e1b,40 +3482e1c,25 +3482e1d,8 +3482e1e,1c +3482e20,91 +3482e21,b +3482e24,91 +3482e25,2 +3482e27,1 +3482e28,10 +3482e2b,10 +3482e30,3c +3482e31,8 +3482e32,80 +3482e33,40 +3482e34,25 +3482e35,8 +3482e36,f +3482e37,fc +3482e38,25 +3482e39,8 +3482e3b,4 +3482e3c,8d +3482e3d,9 +3482e40,11 +3482e41,20 +3482e43,17 +3482e49,9 +3482e4a,52 +3482e4b,2 +3482e4c,31 +3482e4d,4b +3482e4e,f8 +3482e51,b +3482e52,5a +3482e53,c2 +3482e54,3c +3482e55,c +3482e56,ff +3482e57,ff +3482e58,35 +3482e59,8c +3482e5a,7 +3482e5b,ff +3482e5c,1 +3482e5d,4c +3482e5e,50 +3482e5f,24 +3482e60,15 +3482e61,44 +3482e62,ff +3482e63,f5 +3482e68,31 +3482e69,22 +3482e6b,ff +3482e6c,3c +3482e6d,8 +3482e6e,80 +3482e6f,40 +3482e70,25 +3482e71,8 +3482e72,1c 3482e73,2 3482e74,a1 -3482e75,2b -3482e77,2 -3482e78,a1 -3482e79,22 -3482e7b,3 -3482e7c,ad -3482e7d,24 -3482e7f,4 -3482e80,3 -3482e81,e0 -3482e83,8 -3482e88,27 -3482e89,bd -3482e8a,ff -3482e8b,e0 -3482e8c,af -3482e8d,b0 -3482e8f,10 -3482e90,af -3482e91,b1 -3482e93,14 -3482e94,af -3482e95,bf -3482e97,18 -3482e98,34 -3482e99,82 -3482e9c,34 -3482e9d,50 -3482ea0,26 -3482ea1,8 -3482ea2,ff -3482ea3,80 -3482ea4,5 -3482ea7,12 -3482eac,3c -3482ead,11 -3482eae,80 -3482eaf,40 -3482eb0,26 -3482eb1,31 -3482eb2,20 -3482eb3,50 -3482eb4,34 -3482eb5,9 -3482eb7,10 -3482eb8,1 -3482eb9,9 -3482ebb,18 -3482ebe,40 -3482ebf,12 -3482ec0,2 -3482ec1,28 -3482ec2,88 -3482ec3,21 -3482ec4,3c -3482ec5,4 -3482ec6,80 +3482e75,b +3482e78,3c +3482e79,9 +3482e7a,80 +3482e7b,40 +3482e7c,25 +3482e7d,29 +3482e7e,20 +3482e80,3c +3482e81,c +3482e82,80 +3482e83,40 +3482e84,25 +3482e85,8c +3482e86,1c +3482e88,91 +3482e89,8c +3482e8c,11 +3482e8d,6c +3482e8f,4 +3482e90,a5 +3482e91,20 +3482e93,2 +3482e94,a1 +3482e95,2b +3482e97,2 +3482e98,a1 +3482e99,22 +3482e9b,3 +3482e9c,ad +3482e9d,24 +3482e9f,4 +3482ea0,3 +3482ea1,e0 +3482ea3,8 +3482ea8,27 +3482ea9,bd +3482eaa,ff +3482eab,e0 +3482eac,af +3482ead,b0 +3482eaf,10 +3482eb0,af +3482eb1,b1 +3482eb3,14 +3482eb4,af +3482eb5,bf +3482eb7,18 +3482eb8,34 +3482eb9,82 +3482ebc,34 +3482ebd,50 +3482ec0,26 +3482ec1,8 +3482ec2,ff +3482ec3,80 +3482ec4,5 3482ec7,12 -3482ec8,24 -3482ec9,84 -3482eca,a5 -3482ecb,d0 -3482ecc,36 -3482ecd,5 -3482ed0,8e -3482ed1,28 -3482ed3,c -3482ed4,1 -3482ed6,f8 -3482ed7,9 -3482edc,14 -3482edd,50 -3482ede,ff -3482edf,ef -3482ee4,36 -3482ee5,23 -3482ee8,10 -3482eeb,2 -3482ef0,34 -3482ef1,3 -3482ef4,8f -3482ef5,b0 -3482ef7,10 -3482ef8,8f -3482ef9,b1 -3482efb,14 -3482efc,8f -3482efd,bf -3482eff,18 -3482f00,27 -3482f01,bd -3482f03,20 -3482f04,3 -3482f05,e0 -3482f07,8 -3482f0c,8c -3482f0d,88 -3482f0e,1d -3482f0f,2c +3482ecc,3c +3482ecd,11 +3482ece,80 +3482ecf,40 +3482ed0,26 +3482ed1,31 +3482ed2,20 +3482ed3,50 +3482ed4,34 +3482ed5,9 +3482ed7,10 +3482ed8,1 +3482ed9,9 +3482edb,18 +3482ede,40 +3482edf,12 +3482ee0,2 +3482ee1,28 +3482ee2,88 +3482ee3,21 +3482ee4,3c +3482ee5,4 +3482ee6,80 +3482ee7,12 +3482ee8,24 +3482ee9,84 +3482eea,a5 +3482eeb,d0 +3482eec,36 +3482eed,5 +3482ef0,8e +3482ef1,28 +3482ef3,c +3482ef4,1 +3482ef6,f8 +3482ef7,9 +3482efc,14 +3482efd,50 +3482efe,ff +3482eff,ef +3482f04,36 +3482f05,23 +3482f08,10 +3482f0b,2 3482f10,34 -3482f11,9 -3482f13,1 -3482f15,9 -3482f16,4e -3482f18,1 -3482f19,9 -3482f1a,10 -3482f1b,24 -3482f1c,10 -3482f1d,40 -3482f1f,24 -3482f24,94 -3482f25,ca -3482f26,2 -3482f27,dc -3482f28,3c -3482f29,b -3482f2a,80 -3482f2b,12 -3482f2c,25 -3482f2d,6b -3482f2e,a5 -3482f2f,d0 -3482f30,94 -3482f31,8c -3482f33,a4 -3482f34,34 -3482f35,1 -3482f37,3d -3482f38,11 -3482f39,81 -3482f3b,a -3482f41,8a -3482f42,60 -3482f43,21 -3482f44,91 -3482f45,8d -3482f46,1d -3482f47,28 -3482f48,15 -3482f49,a0 -3482f4b,19 -3482f50,34 -3482f51,d -3482f53,1 -3482f54,a1 -3482f55,8d -3482f56,1d -3482f57,28 -3482f58,25 -3482f59,4a -3482f5b,3 -3482f5c,10 -3482f5f,9 -3482f64,34 -3482f65,c -3482f67,1 -3482f68,1 -3482f69,4c -3482f6a,60 -3482f6b,4 -3482f6c,91 -3482f6d,6d -3482f6e,e -3482f6f,f2 -3482f70,1 -3482f71,ac -3482f72,70 -3482f73,24 -3482f74,15 -3482f75,c0 -3482f77,e -3482f7c,1 -3482f7d,ac -3482f7e,70 -3482f7f,25 -3482f80,a1 -3482f81,6e -3482f82,e -3482f83,f2 -3482f84,1 -3482f85,29 -3482f86,48 -3482f87,27 +3482f11,3 +3482f14,8f +3482f15,b0 +3482f17,10 +3482f18,8f +3482f19,b1 +3482f1b,14 +3482f1c,8f +3482f1d,bf +3482f1f,18 +3482f20,27 +3482f21,bd +3482f23,20 +3482f24,3 +3482f25,e0 +3482f27,8 +3482f2c,8c +3482f2d,88 +3482f2e,1d +3482f2f,2c +3482f30,34 +3482f31,9 +3482f33,1 +3482f35,9 +3482f36,4e +3482f38,1 +3482f39,9 +3482f3a,10 +3482f3b,24 +3482f3c,10 +3482f3d,40 +3482f3f,24 +3482f44,94 +3482f45,ca +3482f46,2 +3482f47,dc +3482f48,3c +3482f49,b +3482f4a,80 +3482f4b,12 +3482f4c,25 +3482f4d,6b +3482f4e,a5 +3482f4f,d0 +3482f50,94 +3482f51,8c +3482f53,a4 +3482f54,34 +3482f55,1 +3482f57,3d +3482f58,11 +3482f59,81 +3482f5b,a +3482f61,8a +3482f62,60 +3482f63,21 +3482f64,91 +3482f65,8d +3482f66,1d +3482f67,28 +3482f68,15 +3482f69,a0 +3482f6b,19 +3482f70,34 +3482f71,d +3482f73,1 +3482f74,a1 +3482f75,8d +3482f76,1d +3482f77,28 +3482f78,25 +3482f79,4a +3482f7b,3 +3482f7c,10 +3482f7f,9 +3482f84,34 +3482f85,c +3482f87,1 3482f88,1 -3482f89,9 -3482f8a,40 -3482f8b,24 -3482f8c,ac -3482f8d,88 -3482f8e,1d -3482f8f,2c -3482f90,3c -3482f91,8 -3482f92,80 -3482f93,40 -3482f94,25 -3482f95,8 -3482f96,1d -3482f97,5 -3482f98,1 -3482f99,a -3482f9a,40 -3482f9b,21 -3482f9c,81 -3482f9d,8 -3482fa0,3c -3482fa1,9 -3482fa2,80 -3482fa3,40 -3482fa4,25 +3482f89,4c +3482f8a,60 +3482f8b,4 +3482f8c,91 +3482f8d,6d +3482f8e,e +3482f8f,f2 +3482f90,1 +3482f91,ac +3482f92,70 +3482f93,24 +3482f94,15 +3482f95,c0 +3482f97,e +3482f9c,1 +3482f9d,ac +3482f9e,70 +3482f9f,25 +3482fa0,a1 +3482fa1,6e +3482fa2,e +3482fa3,f2 +3482fa4,1 3482fa5,29 -3482fa6,20 -3482fa7,18 -3482fa8,a1 -3482fa9,28 -3482fac,34 -3482fad,2 -3482fb0,3 -3482fb1,e0 -3482fb3,8 -3482fb8,3c -3482fb9,8 -3482fba,80 -3482fbb,40 -3482fbc,25 +3482fa6,48 +3482fa7,27 +3482fa8,1 +3482fa9,9 +3482faa,40 +3482fab,24 +3482fac,ac +3482fad,88 +3482fae,1d +3482faf,2c +3482fb0,3c +3482fb1,8 +3482fb2,80 +3482fb3,40 +3482fb4,25 +3482fb5,8 +3482fb6,1d +3482fb7,5 +3482fb8,1 +3482fb9,a +3482fba,40 +3482fbb,21 +3482fbc,81 3482fbd,8 -3482fbe,1d -3482fbf,3 -3482fc0,81 -3482fc1,8 -3482fc4,10 -3482fc7,22 -3482fcc,3c -3482fcd,8 -3482fce,80 -3482fcf,40 -3482fd0,25 -3482fd1,8 -3482fd2,1d -3482fd3,4 -3482fd4,81 -3482fd5,8 -3482fd8,10 -3482fdb,1d -3482fe0,34 -3482fe1,2 -3482fe3,ff -3482fe4,20 -3482fe5,e8 -3482fe6,ff -3482fe7,a6 -3482fe8,21 -3482fe9,8 -3482feb,61 -3482fec,10 -3482fef,18 -3482ff4,34 +3482fc0,3c +3482fc1,9 +3482fc2,80 +3482fc3,40 +3482fc4,25 +3482fc5,29 +3482fc6,20 +3482fc7,18 +3482fc8,a1 +3482fc9,28 +3482fcc,34 +3482fcd,2 +3482fd0,3 +3482fd1,e0 +3482fd3,8 +3482fd8,3c +3482fd9,8 +3482fda,80 +3482fdb,40 +3482fdc,25 +3482fdd,8 +3482fde,1d +3482fdf,3 +3482fe0,81 +3482fe1,8 +3482fe4,10 +3482fe7,22 +3482fec,3c +3482fed,8 +3482fee,80 +3482fef,40 +3482ff0,25 +3482ff1,8 +3482ff2,1d +3482ff3,4 +3482ff4,81 3482ff5,8 -3482ff7,64 3482ff8,10 -3482ffb,15 -3483000,3c -3483001,1 -3483002,80 -3483003,12 -3483004,24 -3483005,21 -3483006,a5 -3483007,d0 -3483008,80 -3483009,28 -348300a,e -348300b,de -348300c,35 -348300d,8 -348300f,1 -3483010,a0 -3483011,28 -3483012,e -3483013,de +3482ffb,1d +3483000,34 +3483001,2 +3483003,ff +3483004,20 +3483005,e8 +3483006,ff +3483007,a6 +3483008,21 +3483009,8 +348300b,61 +348300c,10 +348300f,18 3483014,34 3483015,8 -3483017,68 +3483017,64 3483018,10 -348301b,d +348301b,15 3483020,3c 3483021,1 3483022,80 @@ -4630,1698 +4636,1722 @@ ec9ce7,7a 348302b,de 348302c,35 348302d,8 -348302f,4 +348302f,1 3483030,a0 3483031,28 3483032,e 3483033,de 3483034,34 3483035,8 -3483037,6a +3483037,68 3483038,10 -348303b,5 -3483040,34 -3483041,5 -3483043,3 -3483044,34 -3483045,8 -3483047,6b -3483048,10 -348304b,1 -3483050,3c -3483051,9 -3483052,80 -3483053,40 -3483054,25 -3483055,29 -3483056,20 -3483057,18 -3483058,3c -3483059,a -348305a,80 -348305b,40 -348305c,25 -348305d,4a -348305e,20 -348305f,1b -3483060,81 -3483061,2c -3483064,11 -3483065,88 -3483067,b -3483068,21 -3483069,29 +348303b,d +3483040,3c +3483041,1 +3483042,80 +3483043,12 +3483044,24 +3483045,21 +3483046,a5 +3483047,d0 +3483048,80 +3483049,28 +348304a,e +348304b,de +348304c,35 +348304d,8 +348304f,4 +3483050,a0 +3483051,28 +3483052,e +3483053,de +3483054,34 +3483055,8 +3483057,6a +3483058,10 +348305b,5 +3483060,34 +3483061,5 +3483063,3 +3483064,34 +3483065,8 +3483067,6b +3483068,10 348306b,1 -348306c,15 -348306d,2a -348306e,ff -348306f,fc -3483074,3c -3483075,9 -3483076,80 -3483077,40 -3483078,25 -3483079,29 -348307a,20 -348307b,17 -348307c,21 -348307d,29 -348307f,1 -3483080,11 -3483081,2a -3483083,4 -3483084,81 -3483085,2c -3483088,15 -3483089,80 -348308a,ff -348308b,fc -3483090,a1 -3483091,28 -3483094,3 -3483095,e0 -3483097,8 -348309d,60 -348309e,78 -348309f,21 -34830a0,81 -34830a1,ec -34830a2,e -34830a3,df -34830a4,31 -34830a5,8e -34830a7,80 -34830a8,11 -34830a9,c0 -34830ab,3 -34830ac,34 -34830ad,3 -34830af,5 -34830b0,3 -34830b1,e0 -34830b3,8 -34830b4,34 -34830b5,2 -34830b7,2 -34830b8,3 -34830b9,e0 -34830bb,8 +3483070,3c +3483071,9 +3483072,80 +3483073,40 +3483074,25 +3483075,29 +3483076,20 +3483077,18 +3483078,3c +3483079,a +348307a,80 +348307b,40 +348307c,25 +348307d,4a +348307e,20 +348307f,1b +3483080,81 +3483081,2c +3483084,11 +3483085,88 +3483087,b +3483088,21 +3483089,29 +348308b,1 +348308c,15 +348308d,2a +348308e,ff +348308f,fc +3483094,3c +3483095,9 +3483096,80 +3483097,40 +3483098,25 +3483099,29 +348309a,20 +348309b,17 +348309c,21 +348309d,29 +348309f,1 +34830a0,11 +34830a1,2a +34830a3,4 +34830a4,81 +34830a5,2c +34830a8,15 +34830a9,80 +34830aa,ff +34830ab,fc +34830b0,a1 +34830b1,28 +34830b4,3 +34830b5,e0 +34830b7,8 34830bd,60 -34830be,10 +34830be,78 34830bf,21 -34830c0,85 -34830c1,c2 -34830c3,a4 -34830c4,3c -34830c5,8 -34830c6,80 -34830c7,12 -34830c8,25 -34830c9,8 -34830ca,a5 -34830cb,d0 -34830cc,81 -34830cd,9 -34830ce,e -34830cf,df -34830d0,35 -34830d1,29 -34830d3,80 -34830d4,a1 -34830d5,9 -34830d6,e -34830d7,df +34830c0,81 +34830c1,ec +34830c2,e +34830c3,df +34830c4,31 +34830c5,8e +34830c7,80 +34830c8,11 +34830c9,c0 +34830cb,3 +34830cc,34 +34830cd,3 +34830cf,5 +34830d0,3 +34830d1,e0 +34830d3,8 +34830d4,34 +34830d5,2 +34830d7,2 34830d8,3 34830d9,e0 34830db,8 -34830e0,27 -34830e1,bd -34830e2,ff -34830e3,f0 -34830e4,af -34830e5,bf -34830e7,4 -34830e8,c -34830e9,3 -34830ea,58 -34830eb,86 -34830f0,3c -34830f1,c -34830f2,80 -34830f3,12 -34830f4,25 -34830f5,8c -34830f6,a5 -34830f7,d0 -34830f8,85 -34830f9,8d -34830fa,f -34830fb,2e -34830fc,8d -34830fd,98 -34830ff,4 -3483100,13 -3483103,2 -3483104,34 -3483105,e -3483107,1 -3483108,34 -3483109,e -348310b,2 -348310c,1 -348310d,ae -348310e,68 -348310f,25 -3483110,a5 -3483111,8d -3483112,f -3483113,2e -3483114,8f -3483115,bf -3483117,4 -3483118,27 -3483119,bd -348311b,10 -348311c,3 -348311d,e0 -348311f,8 -3483124,84 -3483125,8e -3483127,1c -3483128,21 -3483129,cd -348312a,ff -348312b,ce -348312c,5 -348312d,a0 -348312f,10 -3483130,34 -3483131,2 -3483134,31 -3483135,a9 -3483137,7 -3483138,34 -3483139,a -348313b,1 -348313c,1 -348313d,2a -348313e,50 -348313f,4 -3483141,d -3483142,48 -3483143,c2 -3483144,3c -3483145,c -3483146,80 -3483147,12 -3483148,25 -3483149,8c -348314a,a5 -348314b,d0 -348314c,1 -348314d,89 -348314e,60 -348314f,20 -3483150,81 -3483151,8b -3483152,5 -3483153,b4 -3483154,1 -3483155,6a -3483156,58 -3483157,24 +34830dd,60 +34830de,10 +34830df,21 +34830e0,85 +34830e1,c2 +34830e3,a4 +34830e4,3c +34830e5,8 +34830e6,80 +34830e7,12 +34830e8,25 +34830e9,8 +34830ea,a5 +34830eb,d0 +34830ec,81 +34830ed,9 +34830ee,e +34830ef,df +34830f0,35 +34830f1,29 +34830f3,80 +34830f4,a1 +34830f5,9 +34830f6,e +34830f7,df +34830f8,3 +34830f9,e0 +34830fb,8 +3483100,27 +3483101,bd +3483102,ff +3483103,f0 +3483104,af +3483105,bf +3483107,4 +3483108,c +3483109,3 +348310a,58 +348310b,86 +3483110,3c +3483111,c +3483112,80 +3483113,12 +3483114,25 +3483115,8c +3483116,a5 +3483117,d0 +3483118,85 +3483119,8d +348311a,f +348311b,2e +348311c,8d +348311d,98 +348311f,4 +3483120,13 +3483123,2 +3483124,34 +3483125,e +3483127,1 +3483128,34 +3483129,e +348312b,2 +348312c,1 +348312d,ae +348312e,68 +348312f,25 +3483130,a5 +3483131,8d +3483132,f +3483133,2e +3483134,8f +3483135,bf +3483137,4 +3483138,27 +3483139,bd +348313b,10 +348313c,3 +348313d,e0 +348313f,8 +3483144,84 +3483145,8e +3483147,1c +3483148,21 +3483149,cd +348314a,ff +348314b,ce +348314c,5 +348314d,a0 +348314f,10 +3483150,34 +3483151,2 +3483154,31 +3483155,a9 +3483157,7 3483158,34 -3483159,2 -348315c,11 -348315d,60 +3483159,a +348315b,1 +348315c,1 +348315d,2a +348315e,50 348315f,4 -3483164,34 -3483165,d -3483167,26 -3483168,a4 -3483169,8d -348316b,1c -348316c,34 -348316d,2 -348316f,1 -3483170,3 -3483171,e0 -3483173,8 -3483178,84 -3483179,ae -348317b,1c -348317c,21 -348317d,cd -348317e,ff -348317f,ce -3483180,5 -3483181,a0 -3483183,b +3483161,d +3483162,48 +3483163,c2 +3483164,3c +3483165,c +3483166,80 +3483167,12 +3483168,25 +3483169,8c +348316a,a5 +348316b,d0 +348316c,1 +348316d,89 +348316e,60 +348316f,20 +3483170,81 +3483171,8b +3483172,5 +3483173,b4 +3483174,1 +3483175,6a +3483176,58 +3483177,24 +3483178,34 +3483179,2 +348317c,11 +348317d,60 +348317f,4 3483184,34 -3483185,2 -3483188,31 -3483189,a9 -348318b,7 +3483185,d +3483187,26 +3483188,a4 +3483189,8d +348318b,1c 348318c,34 -348318d,a +348318d,2 348318f,1 -3483190,1 -3483191,2a -3483192,50 -3483193,4 -3483195,d -3483196,48 -3483197,c2 -3483198,3c -3483199,c -348319a,80 -348319b,12 -348319c,25 -348319d,8c -348319e,a5 -348319f,d0 -34831a0,1 -34831a1,89 -34831a2,60 -34831a3,20 -34831a4,81 -34831a5,8b -34831a6,5 -34831a7,b4 -34831a8,1 -34831a9,6a -34831aa,58 -34831ab,25 -34831ac,a1 -34831ad,8b -34831ae,5 -34831af,b4 -34831b0,3 -34831b1,e0 -34831b3,8 -34831b8,27 -34831b9,bd -34831ba,ff -34831bb,f0 -34831bc,af -34831bd,bf -34831bf,8 -34831c0,28 -34831c1,81 -34831c3,32 -34831c4,10 -34831c5,20 -34831c7,3 -34831c9,80 -34831ca,10 -34831cb,21 -34831cc,3 -34831cd,20 -34831ce,f8 -34831cf,9 -34831d4,8f -34831d5,bf -34831d7,8 +3483190,3 +3483191,e0 +3483193,8 +3483198,84 +3483199,ae +348319b,1c +348319c,21 +348319d,cd +348319e,ff +348319f,ce +34831a0,5 +34831a1,a0 +34831a3,b +34831a4,34 +34831a5,2 +34831a8,31 +34831a9,a9 +34831ab,7 +34831ac,34 +34831ad,a +34831af,1 +34831b0,1 +34831b1,2a +34831b2,50 +34831b3,4 +34831b5,d +34831b6,48 +34831b7,c2 +34831b8,3c +34831b9,c +34831ba,80 +34831bb,12 +34831bc,25 +34831bd,8c +34831be,a5 +34831bf,d0 +34831c0,1 +34831c1,89 +34831c2,60 +34831c3,20 +34831c4,81 +34831c5,8b +34831c6,5 +34831c7,b4 +34831c8,1 +34831c9,6a +34831ca,58 +34831cb,25 +34831cc,a1 +34831cd,8b +34831ce,5 +34831cf,b4 +34831d0,3 +34831d1,e0 +34831d3,8 34831d8,27 34831d9,bd -34831db,10 -34831dc,3 -34831dd,e0 +34831da,ff +34831db,f0 +34831dc,af +34831dd,bf 34831df,8 -34831e4,3c -34831e5,8 -34831e6,80 -34831e7,1d -34831e8,25 -34831e9,8 -34831ea,84 -34831eb,a0 -34831ec,3c -34831ed,9 -34831ee,80 -34831ef,12 -34831f0,25 -34831f1,29 -34831f2,a5 -34831f3,d0 -34831f4,85 -34831f5,a -34831f7,a4 -34831f8,34 -34831f9,1 -34831fb,3e -34831fc,15 -34831fd,41 -34831ff,2 -3483200,81 -3483201,2b -3483202,13 -3483203,97 -3483204,21 -3483205,6a -3483207,2d -3483208,86 -3483209,b -348320b,1c -348320c,21 -348320d,6b -348320f,1 -3483210,34 -3483211,c -3483213,1 -3483214,1 -3483215,6c -3483216,60 -3483217,4 +34831e0,28 +34831e1,81 +34831e3,32 +34831e4,10 +34831e5,20 +34831e7,3 +34831e9,80 +34831ea,10 +34831eb,21 +34831ec,3 +34831ed,20 +34831ee,f8 +34831ef,9 +34831f4,8f +34831f5,bf +34831f7,8 +34831f8,27 +34831f9,bd +34831fb,10 +34831fc,3 +34831fd,e0 +34831ff,8 +3483204,3c +3483205,8 +3483206,80 +3483207,1d +3483208,25 +3483209,8 +348320a,84 +348320b,a0 +348320c,3c +348320d,9 +348320e,80 +348320f,12 +3483210,25 +3483211,29 +3483212,a5 +3483213,d0 +3483214,85 +3483215,a +3483217,a4 3483218,34 3483219,1 -348321b,1c -348321c,1 +348321b,3e +348321c,15 348321d,41 -348321f,18 -3483222,68 -3483223,12 -3483224,1 -3483225,2d -3483226,70 -3483227,20 -3483228,8d -3483229,cf -348322b,e4 -348322c,1 -348322d,8f -348322e,10 -348322f,24 -3483230,3 -3483231,e0 -3483233,8 -3483238,3c -3483239,8 -348323a,80 -348323b,1d -348323c,25 -348323d,8 -348323e,84 -348323f,a0 -3483240,3c -3483241,9 -3483242,80 +348321f,2 +3483220,81 +3483221,2b +3483222,13 +3483223,97 +3483224,21 +3483225,6a +3483227,2d +3483228,86 +3483229,b +348322b,1c +348322c,21 +348322d,6b +348322f,1 +3483230,34 +3483231,c +3483233,1 +3483234,1 +3483235,6c +3483236,60 +3483237,4 +3483238,34 +3483239,1 +348323b,1c +348323c,1 +348323d,41 +348323f,18 +3483242,68 3483243,12 -3483244,25 -3483245,29 -3483246,a5 -3483247,d0 -3483248,85 -3483249,a -348324b,a4 -348324c,34 -348324d,1 -348324f,3e -3483250,15 -3483251,41 -3483253,2 -3483254,81 -3483255,2b -3483256,13 -3483257,97 -3483258,21 -3483259,6a -348325b,2d -348325c,84 -348325d,8b -348325f,1c -3483260,21 -3483261,6b -3483263,1 -3483264,34 -3483265,c -3483267,1 -3483268,1 -3483269,6c -348326a,60 -348326b,4 +3483244,1 +3483245,2d +3483246,70 +3483247,20 +3483248,8d +3483249,cf +348324b,e4 +348324c,1 +348324d,8f +348324e,10 +348324f,24 +3483250,3 +3483251,e0 +3483253,8 +3483258,3c +3483259,8 +348325a,80 +348325b,1d +348325c,25 +348325d,8 +348325e,84 +348325f,a0 +3483260,3c +3483261,9 +3483262,80 +3483263,12 +3483264,25 +3483265,29 +3483266,a5 +3483267,d0 +3483268,85 +3483269,a +348326b,a4 348326c,34 348326d,1 -348326f,1c -3483270,1 +348326f,3e +3483270,15 3483271,41 -3483273,18 -3483276,68 -3483277,12 -3483278,1 -3483279,2d -348327a,70 -348327b,20 -348327c,8d -348327d,cf -348327f,e4 -3483280,1 -3483281,8f -3483282,78 -3483283,25 -3483284,ad -3483285,cf -3483287,e4 -3483288,3 -3483289,e0 -348328b,8 -3483290,27 -3483291,bd -3483292,ff -3483293,e8 -3483294,af -3483295,bf -3483297,10 -3483298,3c -3483299,a -348329a,80 -348329b,1e -348329c,25 -348329d,4a -348329e,aa -348329f,30 -34832a0,81 -34832a1,48 -34832a2,6 -34832a3,6c -34832a4,31 -34832a5,8 -34832a7,20 -34832a8,15 -34832ab,23 -34832b0,3c -34832b1,a -34832b2,80 -34832b3,1d -34832b4,25 -34832b5,4a -34832b6,84 -34832b7,a0 -34832b8,8d -34832b9,48 -34832ba,7 -34832bb,94 -34832bc,15 -34832bf,1e -34832c0,3c -34832c1,9 -34832c2,80 -34832c3,40 -34832c4,25 -34832c5,29 -34832c6,20 -34832c7,1b -34832c8,34 -34832c9,a -34832cb,ff -34832cc,a1 -34832cd,2a +3483273,2 +3483274,81 +3483275,2b +3483276,13 +3483277,97 +3483278,21 +3483279,6a +348327b,2d +348327c,84 +348327d,8b +348327f,1c +3483280,21 +3483281,6b +3483283,1 +3483284,34 +3483285,c +3483287,1 +3483288,1 +3483289,6c +348328a,60 +348328b,4 +348328c,34 +348328d,1 +348328f,1c +3483290,1 +3483291,41 +3483293,18 +3483296,68 +3483297,12 +3483298,1 +3483299,2d +348329a,70 +348329b,20 +348329c,8d +348329d,cf +348329f,e4 +34832a0,1 +34832a1,8f +34832a2,78 +34832a3,25 +34832a4,ad +34832a5,cf +34832a7,e4 +34832a8,3 +34832a9,e0 +34832ab,8 +34832b0,27 +34832b1,bd +34832b2,ff +34832b3,e8 +34832b4,af +34832b5,bf +34832b7,10 +34832b8,3c +34832b9,a +34832ba,80 +34832bb,1e +34832bc,25 +34832bd,4a +34832be,aa +34832bf,30 +34832c0,81 +34832c1,48 +34832c2,6 +34832c3,6c +34832c4,31 +34832c5,8 +34832c7,20 +34832c8,15 +34832cb,23 34832d0,3c -34832d1,9 +34832d1,a 34832d2,80 -34832d3,40 +34832d3,1d 34832d4,25 -34832d5,29 -34832d6,20 -34832d7,18 -34832d8,24 -34832d9,a -34832da,ff -34832db,ff -34832dc,34 -34832dd,c -34832df,3 -34832e0,21 -34832e1,4a -34832e3,1 -34832e4,11 -34832e5,4c -34832e7,14 -34832e8,1 -34832e9,2a -34832ea,58 -34832eb,20 -34832ec,81 -34832ed,68 -34832f0,11 -34832f2,ff -34832f3,fb -34832f8,3c -34832f9,9 -34832fa,80 -34832fb,40 -34832fc,25 -34832fd,29 -34832fe,20 -34832ff,1b -3483300,a1 -3483301,2a -3483304,3c -3483305,9 -3483306,80 -3483307,1e -3483308,25 -3483309,29 -348330a,89 -348330b,84 -348330c,34 -348330d,a -348330f,1 -3483310,a5 -3483311,2a -3483314,3c -3483315,9 -3483316,80 -3483317,48 -3483318,34 -3483319,a -348331b,1 -348331c,ad -348331d,2a -348331e,1 -348331f,30 -3483320,3c -3483321,a -3483322,80 -3483323,1e -3483324,25 -3483325,4a -3483326,aa -3483327,30 -3483328,a1 -3483329,48 -348332a,4 -348332b,24 -348332c,ad -348332d,49 -348332e,4 -348332f,28 -3483330,c -3483331,10 -3483332,a -3483333,ed -3483338,8e -3483339,19 -348333b,4 -348333c,2 -348333e,20 -348333f,25 -3483340,8f -3483341,bf -3483343,10 -3483344,3 -3483345,e0 -3483347,8 -3483348,27 -3483349,bd -348334b,18 -348334c,27 -348334d,bd -348334e,ff -348334f,e8 -3483350,af -3483351,bf -3483353,10 -3483354,c -3483355,10 -3483356,16 -3483357,50 -348335c,3c -348335d,e -348335e,80 -348335f,12 -3483360,91 -3483361,ce -3483362,12 -3483363,12 -3483364,8f -3483365,bf -3483367,10 -3483368,3 -3483369,e0 -348336b,8 +34832d5,4a +34832d6,84 +34832d7,a0 +34832d8,8d +34832d9,48 +34832da,7 +34832db,94 +34832dc,15 +34832df,1e +34832e0,3c +34832e1,9 +34832e2,80 +34832e3,40 +34832e4,25 +34832e5,29 +34832e6,20 +34832e7,1b +34832e8,34 +34832e9,a +34832eb,ff +34832ec,a1 +34832ed,2a +34832f0,3c +34832f1,9 +34832f2,80 +34832f3,40 +34832f4,25 +34832f5,29 +34832f6,20 +34832f7,18 +34832f8,24 +34832f9,a +34832fa,ff +34832fb,ff +34832fc,34 +34832fd,c +34832ff,3 +3483300,21 +3483301,4a +3483303,1 +3483304,11 +3483305,4c +3483307,14 +3483308,1 +3483309,2a +348330a,58 +348330b,20 +348330c,81 +348330d,68 +3483310,11 +3483312,ff +3483313,fb +3483318,3c +3483319,9 +348331a,80 +348331b,40 +348331c,25 +348331d,29 +348331e,20 +348331f,1b +3483320,a1 +3483321,2a +3483324,3c +3483325,9 +3483326,80 +3483327,1e +3483328,25 +3483329,29 +348332a,89 +348332b,84 +348332c,34 +348332d,a +348332f,1 +3483330,a5 +3483331,2a +3483334,3c +3483335,9 +3483336,80 +3483337,48 +3483338,34 +3483339,a +348333b,1 +348333c,ad +348333d,2a +348333e,1 +348333f,30 +3483340,3c +3483341,a +3483342,80 +3483343,1e +3483344,25 +3483345,4a +3483346,aa +3483347,30 +3483348,a1 +3483349,48 +348334a,4 +348334b,24 +348334c,ad +348334d,49 +348334e,4 +348334f,28 +3483350,c +3483351,10 +3483352,a +3483353,f5 +3483358,8e +3483359,19 +348335b,4 +348335c,2 +348335e,20 +348335f,25 +3483360,8f +3483361,bf +3483363,10 +3483364,3 +3483365,e0 +3483367,8 +3483368,27 +3483369,bd +348336b,18 348336c,27 348336d,bd -348336f,18 -3483370,34 -3483371,1 -3483373,ff -3483374,15 -3483375,21 -3483377,2 -3483378,92 -3483379,22 -348337c,34 -348337d,2 -348337f,ff -3483380,3 -3483381,e0 -3483383,8 -3483384,34 -3483385,1 -3483387,9 -3483388,27 -3483389,bd -348338a,ff -348338b,e8 -348338c,af -348338d,a2 -348338f,10 -3483390,af -3483391,bf -3483393,14 -3483394,c -3483395,10 -3483396,d -3483397,6 -348339c,14 -348339d,40 -348339f,2 -34833a0,91 -34833a1,83 +348336e,ff +348336f,e8 +3483370,af +3483371,bf +3483373,10 +3483374,c +3483375,10 +3483376,16 +3483377,50 +348337c,3c +348337d,e +348337e,80 +348337f,12 +3483380,91 +3483381,ce +3483382,12 +3483383,12 +3483384,8f +3483385,bf +3483387,10 +3483388,3 +3483389,e0 +348338b,8 +348338c,27 +348338d,bd +348338f,18 +3483390,34 +3483391,1 +3483393,ff +3483394,15 +3483395,21 +3483397,2 +3483398,92 +3483399,22 +348339c,34 +348339d,2 +348339f,ff +34833a0,3 +34833a1,e0 +34833a3,8 34833a4,34 -34833a5,3 -34833a7,ff -34833a8,8f -34833a9,a2 -34833ab,10 -34833ac,8f -34833ad,bf -34833af,14 -34833b0,27 -34833b1,bd -34833b3,18 -34833b4,3 -34833b5,e0 -34833b7,8 -34833b8,34 -34833b9,1 -34833bb,9 -34833bc,27 -34833bd,bd -34833be,ff -34833bf,e8 -34833c0,af -34833c1,a2 -34833c3,10 -34833c4,af -34833c5,bf -34833c7,14 -34833c8,96 -34833c9,2 -34833ca,1 -34833cb,e8 -34833cc,34 -34833cd,1 -34833cf,3 -34833d0,14 -34833d1,41 -34833d3,7 -34833d8,c -34833d9,10 -34833da,d -34833db,6 -34833e0,14 -34833e1,40 -34833e3,7 -34833e8,10 -34833eb,5 +34833a5,1 +34833a7,9 +34833a8,27 +34833a9,bd +34833aa,ff +34833ab,e8 +34833ac,af +34833ad,a2 +34833af,10 +34833b0,af +34833b1,bf +34833b3,14 +34833b4,c +34833b5,10 +34833b6,d +34833b7,e +34833bc,14 +34833bd,40 +34833bf,2 +34833c0,91 +34833c1,83 +34833c4,34 +34833c5,3 +34833c7,ff +34833c8,8f +34833c9,a2 +34833cb,10 +34833cc,8f +34833cd,bf +34833cf,14 +34833d0,27 +34833d1,bd +34833d3,18 +34833d4,3 +34833d5,e0 +34833d7,8 +34833d8,34 +34833d9,1 +34833db,9 +34833dc,27 +34833dd,bd +34833de,ff +34833df,e8 +34833e0,af +34833e1,a2 +34833e3,10 +34833e4,af +34833e5,bf +34833e7,14 +34833e8,96 +34833e9,2 +34833ea,1 +34833eb,e8 34833ec,34 -34833ed,3 -34833ef,7a -34833f0,34 -34833f1,1 -34833f2,1 -34833f3,7a -34833f4,14 -34833f5,61 -34833f7,2 -34833fc,34 -34833fd,3 -34833ff,7a -3483401,3 -3483402,62 -3483403,80 -3483404,1 -3483405,8d -3483406,28 -3483407,21 -3483408,8f -3483409,a2 -348340b,10 -348340c,8f -348340d,bf -348340f,14 -3483410,3 -3483411,e0 -3483413,8 -3483414,27 -3483415,bd -3483417,18 -3483418,27 -3483419,bd -348341a,ff -348341b,e8 -348341c,af -348341d,b0 -348341f,10 -3483420,af -3483421,b1 -3483423,14 -3483424,3c -3483425,2 -3483426,80 -3483427,12 -3483428,24 -3483429,42 -348342a,a5 -348342b,d0 -348342c,94 -348342d,42 -348342f,9c -3483430,3c -3483431,10 -3483432,80 -3483433,1e -3483434,26 -3483435,10 -3483436,8c -3483438,96 -3483439,11 -348343a,2 -348343b,32 -348343d,11 -348343e,88 -348343f,80 -3483440,2 -3483441,22 -3483442,10 -3483443,6 -3483444,96 -3483445,11 -3483446,2 -3483447,28 -3483448,26 -3483449,31 -348344a,ff -348344b,ff -348344c,34 -348344d,10 -348344f,1 -3483450,2 -3483451,30 -3483452,88 -3483453,4 -3483455,51 -3483456,10 -3483457,24 -3483458,8f -3483459,b0 -348345b,10 -348345c,8f -348345d,b1 -348345f,14 -3483460,3 -3483461,e0 -3483463,8 -3483464,27 -3483465,bd -3483467,18 -3483468,3c -3483469,8 -348346a,80 -348346b,12 -348346c,25 -348346d,8 -348346e,a5 -348346f,d0 -3483470,85 -3483471,9 -3483473,9c -3483474,35 -3483475,2a -3483477,2 -3483478,3 -3483479,e0 -348347b,8 -348347c,a5 -348347d,a -348347f,9c -3483480,3c -3483481,5 -3483482,80 -3483483,12 -3483484,24 -3483485,a5 -3483486,a5 -3483487,d0 +34833ed,1 +34833ef,3 +34833f0,14 +34833f1,41 +34833f3,7 +34833f8,c +34833f9,10 +34833fa,d +34833fb,e +3483400,14 +3483401,40 +3483403,7 +3483408,10 +348340b,5 +348340c,34 +348340d,3 +348340f,7a +3483410,34 +3483411,1 +3483412,1 +3483413,7a +3483414,14 +3483415,61 +3483417,2 +348341c,34 +348341d,3 +348341f,7a +3483421,3 +3483422,62 +3483423,80 +3483424,1 +3483425,8d +3483426,28 +3483427,21 +3483428,8f +3483429,a2 +348342b,10 +348342c,8f +348342d,bf +348342f,14 +3483430,3 +3483431,e0 +3483433,8 +3483434,27 +3483435,bd +3483437,18 +3483438,27 +3483439,bd +348343a,ff +348343b,e8 +348343c,af +348343d,b0 +348343f,10 +3483440,af +3483441,b1 +3483443,14 +3483444,3c +3483445,2 +3483446,80 +3483447,12 +3483448,24 +3483449,42 +348344a,a5 +348344b,d0 +348344c,94 +348344d,42 +348344f,9c +3483450,3c +3483451,10 +3483452,80 +3483453,1e +3483454,26 +3483455,10 +3483456,8c +3483458,96 +3483459,11 +348345a,2 +348345b,32 +348345d,11 +348345e,88 +348345f,80 +3483460,2 +3483461,22 +3483462,10 +3483463,6 +3483464,96 +3483465,11 +3483466,2 +3483467,28 +3483468,26 +3483469,31 +348346a,ff +348346b,ff +348346c,34 +348346d,10 +348346f,1 +3483470,2 +3483471,30 +3483472,88 +3483473,4 +3483475,51 +3483476,10 +3483477,24 +3483478,8f +3483479,b0 +348347b,10 +348347c,8f +348347d,b1 +348347f,14 +3483480,3 +3483481,e0 +3483483,8 +3483484,27 +3483485,bd +3483487,18 3483488,3c 3483489,8 348348a,80 -348348b,40 +348348b,12 348348c,25 348348d,8 -348348e,20 -348348f,1c -3483490,8c -3483491,a9 -3483493,68 -3483494,ad -3483495,9 -3483498,8c -3483499,a9 -348349b,6c -348349c,ad -348349d,9 -348349f,4 -34834a0,94 -34834a1,a9 -34834a3,70 -34834a4,a5 -34834a5,9 -34834a7,8 -34834a8,94 -34834a9,a9 -34834ab,9c -34834ac,a5 -34834ad,9 -34834af,a -34834b0,8 -34834b1,1 -34834b2,be -34834b3,3 -34834b8,27 -34834b9,bd -34834ba,ff -34834bb,e0 -34834bc,af -34834bd,b0 -34834bf,10 -34834c0,af -34834c1,b1 -34834c3,14 -34834c4,af -34834c5,bf -34834c7,18 -34834c8,3c -34834c9,10 -34834ca,80 -34834cb,12 -34834cc,26 -34834cd,10 -34834ce,a5 -34834cf,d0 -34834d0,3c -34834d1,11 -34834d2,80 -34834d3,40 -34834d4,26 -34834d5,31 -34834d6,20 -34834d7,1c -34834d8,8e -34834d9,8 -34834db,4 -34834dc,11 -34834df,5 -34834e4,c -34834e5,10 -34834e6,d -34834e7,58 -34834ec,10 -34834ef,3 -34834f4,c -34834f5,10 -34834f6,d -34834f7,6b -34834fc,c -34834fd,10 -34834fe,d -34834ff,4b -3483500,34 -3483501,4 +348348e,a5 +348348f,d0 +3483490,85 +3483491,9 +3483493,9c +3483494,35 +3483495,2a +3483497,2 +3483498,3 +3483499,e0 +348349b,8 +348349c,a5 +348349d,a +348349f,9c +34834a0,3c +34834a1,5 +34834a2,80 +34834a3,12 +34834a4,24 +34834a5,a5 +34834a6,a5 +34834a7,d0 +34834a8,3c +34834a9,8 +34834aa,80 +34834ab,40 +34834ac,25 +34834ad,8 +34834ae,20 +34834af,1c +34834b0,8c +34834b1,a9 +34834b3,68 +34834b4,ad +34834b5,9 +34834b8,8c +34834b9,a9 +34834bb,6c +34834bc,ad +34834bd,9 +34834bf,4 +34834c0,94 +34834c1,a9 +34834c3,70 +34834c4,a5 +34834c5,9 +34834c7,8 +34834c8,94 +34834c9,a9 +34834cb,9c +34834cc,a5 +34834cd,9 +34834cf,a +34834d0,8 +34834d1,1 +34834d2,be +34834d3,3 +34834d8,27 +34834d9,bd +34834da,ff +34834db,e0 +34834dc,af +34834dd,b0 +34834df,10 +34834e0,af +34834e1,b1 +34834e3,14 +34834e4,af +34834e5,bf +34834e7,18 +34834e8,3c +34834e9,10 +34834ea,80 +34834eb,12 +34834ec,26 +34834ed,10 +34834ee,a5 +34834ef,d0 +34834f0,3c +34834f1,11 +34834f2,80 +34834f3,40 +34834f4,26 +34834f5,31 +34834f6,20 +34834f7,1c +34834f8,8e +34834f9,8 +34834fb,4 +34834fc,11 +34834ff,5 3483504,c 3483505,10 3483506,d -3483507,4b -3483508,34 -3483509,4 -348350b,1 -348350c,c -348350d,10 -348350e,d -348350f,4b -3483510,34 -3483511,4 -3483513,2 -3483514,8f -3483515,b0 -3483517,10 -3483518,8f -3483519,b1 -348351b,14 -348351c,8f -348351d,bf -348351f,18 -3483520,27 -3483521,bd -3483523,20 -3483524,3 -3483525,e0 -3483527,8 -348352c,2 -348352d,4 -348352e,40 -348352f,21 -3483530,91 -3483531,9 -3483533,6c -3483534,34 -3483535,1 -3483537,ff -3483538,11 -3483539,21 -348353b,7 -3483540,2 -3483541,9 -3483542,48 -3483543,21 -3483544,91 -3483545,29 -3483547,74 -3483548,34 -3483549,1 -348354b,2c -348354c,11 -348354d,21 -348354f,2 -3483554,a1 -3483555,9 -3483557,69 -3483558,3 -3483559,e0 -348355b,8 -3483560,27 -3483561,bd -3483562,ff -3483563,e8 -3483564,af -3483565,bf -3483567,10 -3483568,8e -3483569,28 -348356c,ae -348356d,8 -348356f,40 -3483570,8e -3483571,28 -3483573,4 -3483574,ae -3483575,8 -3483577,44 -3483578,96 -3483579,28 +3483507,60 +348350c,10 +348350f,3 +3483514,c +3483515,10 +3483516,d +3483517,73 +348351c,c +348351d,10 +348351e,d +348351f,53 +3483520,34 +3483521,4 +3483524,c +3483525,10 +3483526,d +3483527,53 +3483528,34 +3483529,4 +348352b,1 +348352c,c +348352d,10 +348352e,d +348352f,53 +3483530,34 +3483531,4 +3483533,2 +3483534,8f +3483535,b0 +3483537,10 +3483538,8f +3483539,b1 +348353b,14 +348353c,8f +348353d,bf +348353f,18 +3483540,27 +3483541,bd +3483543,20 +3483544,3 +3483545,e0 +3483547,8 +348354c,2 +348354d,4 +348354e,40 +348354f,21 +3483550,91 +3483551,9 +3483553,6c +3483554,34 +3483555,1 +3483557,ff +3483558,11 +3483559,21 +348355b,7 +3483560,2 +3483561,9 +3483562,48 +3483563,21 +3483564,91 +3483565,29 +3483567,74 +3483568,34 +3483569,1 +348356b,2c +348356c,11 +348356d,21 +348356f,2 +3483574,a1 +3483575,9 +3483577,69 +3483578,3 +3483579,e0 348357b,8 -348357c,a6 -348357d,8 -348357f,48 -3483580,a2 -3483582,f -3483583,33 -3483584,92 -3483585,8 -3483587,4a -3483588,34 -3483589,1 -348358b,ff -348358c,15 -348358d,1 -348358f,3 -3483594,c -3483595,10 -3483596,d -3483597,79 -348359c,8f -348359d,bf -348359f,10 -34835a0,27 -34835a1,bd -34835a3,18 -34835a4,3 -34835a5,e0 -34835a7,8 -34835ac,8e -34835ad,8 -34835af,40 -34835b0,ae -34835b1,8 -34835b3,68 -34835b4,8e -34835b5,8 -34835b7,44 -34835b8,ae -34835b9,8 -34835bb,6c -34835bc,96 -34835bd,8 -34835bf,48 -34835c0,a6 -34835c1,8 -34835c3,70 -34835c4,92 -34835c5,8 -34835c7,68 -34835c8,34 -34835c9,1 -34835cb,ff -34835cc,15 -34835cd,1 -34835cf,3 -34835d4,34 +3483580,27 +3483581,bd +3483582,ff +3483583,e8 +3483584,af +3483585,bf +3483587,10 +3483588,8e +3483589,28 +348358c,ae +348358d,8 +348358f,40 +3483590,8e +3483591,28 +3483593,4 +3483594,ae +3483595,8 +3483597,44 +3483598,96 +3483599,28 +348359b,8 +348359c,a6 +348359d,8 +348359f,48 +34835a0,a2 +34835a2,f +34835a3,33 +34835a4,92 +34835a5,8 +34835a7,4a +34835a8,34 +34835a9,1 +34835ab,ff +34835ac,15 +34835ad,1 +34835af,3 +34835b4,c +34835b5,10 +34835b6,d +34835b7,81 +34835bc,8f +34835bd,bf +34835bf,10 +34835c0,27 +34835c1,bd +34835c3,18 +34835c4,3 +34835c5,e0 +34835c7,8 +34835cc,8e +34835cd,8 +34835cf,40 +34835d0,ae +34835d1,8 +34835d3,68 +34835d4,8e 34835d5,8 -34835d7,1 -34835d8,a2 +34835d7,44 +34835d8,ae 34835d9,8 -34835da,f -34835db,33 -34835dc,3 -34835dd,e0 -34835df,8 -34835e4,27 -34835e5,bd -34835e6,ff -34835e7,e8 -34835e8,af -34835e9,bf -34835eb,10 -34835ec,96 -34835ed,8 -34835ef,9c -34835f0,31 -34835f1,8 -34835f3,40 -34835f4,11 -34835f7,5 -34835fc,96 -34835fd,8 -34835ff,70 -3483600,31 -3483601,8 -3483602,ff -3483603,f -3483604,35 -3483605,8 -3483607,30 -3483608,a6 -3483609,8 -348360b,70 -348360c,92 -348360d,28 -348360f,1 -3483610,a2 +34835db,6c +34835dc,96 +34835dd,8 +34835df,48 +34835e0,a6 +34835e1,8 +34835e3,70 +34835e4,92 +34835e5,8 +34835e7,68 +34835e8,34 +34835e9,1 +34835eb,ff +34835ec,15 +34835ed,1 +34835ef,3 +34835f4,34 +34835f5,8 +34835f7,1 +34835f8,a2 +34835f9,8 +34835fa,f +34835fb,33 +34835fc,3 +34835fd,e0 +34835ff,8 +3483604,27 +3483605,bd +3483606,ff +3483607,e8 +3483608,af +3483609,bf +348360b,10 +348360c,96 +348360d,8 +348360f,9c +3483610,31 3483611,8 -3483613,69 -3483614,96 -3483615,28 -3483617,2 -3483618,a6 -3483619,8 -348361b,6a -348361c,8e -348361d,28 -348361f,4 -3483620,ae +3483613,40 +3483614,11 +3483617,5 +348361c,96 +348361d,8 +348361f,70 +3483620,31 3483621,8 -3483623,6c -3483624,c -3483625,10 -3483626,d -3483627,93 -3483628,34 -3483629,4 -348362c,c -348362d,10 -348362e,d -348362f,93 -3483630,34 -3483631,4 -3483633,1 -3483634,c -3483635,10 -3483636,d -3483637,93 -3483638,34 -3483639,4 -348363b,2 -348363c,8f -348363d,bf -348363f,10 -3483640,27 -3483641,bd -3483643,18 -3483644,3 -3483645,e0 -3483647,8 -348364c,2 -348364d,4 -348364e,40 -348364f,21 -3483650,3c -3483651,9 -3483652,80 -3483653,40 -3483654,25 -3483655,29 -3483656,36 -3483657,f8 -3483658,91 -3483659,a -348365b,6c -348365c,34 -348365d,1 -348365f,ff -3483660,11 -3483661,41 -3483663,5 -3483668,1 -3483669,2a -348366a,48 -348366b,21 -348366c,91 -348366d,29 -3483670,15 -3483671,20 -3483673,1c -3483678,3c -3483679,9 -348367a,80 -348367b,40 -348367c,25 -348367d,29 -348367e,36 -348367f,eb -3483680,25 -3483681,29 -3483683,1 -3483684,91 -3483685,2a -3483688,11 -3483689,40 -348368b,13 -3483690,2 -3483691,a -3483692,58 -3483693,21 -3483694,91 -3483695,6b -3483697,74 -3483698,34 -3483699,1 -348369b,ff -348369c,11 -348369d,61 -348369e,ff -348369f,f8 -34836a4,92 -34836a5,c -34836a7,6c +3483622,ff +3483623,f +3483624,35 +3483625,8 +3483627,30 +3483628,a6 +3483629,8 +348362b,70 +348362c,92 +348362d,28 +348362f,1 +3483630,a2 +3483631,8 +3483633,69 +3483634,96 +3483635,28 +3483637,2 +3483638,a6 +3483639,8 +348363b,6a +348363c,8e +348363d,28 +348363f,4 +3483640,ae +3483641,8 +3483643,6c +3483644,c +3483645,10 +3483646,d +3483647,9b +3483648,34 +3483649,4 +348364c,c +348364d,10 +348364e,d +348364f,9b +3483650,34 +3483651,4 +3483653,1 +3483654,c +3483655,10 +3483656,d +3483657,9b +3483658,34 +3483659,4 +348365b,2 +348365c,8f +348365d,bf +348365f,10 +3483660,27 +3483661,bd +3483663,18 +3483664,3 +3483665,e0 +3483667,8 +348366c,2 +348366d,4 +348366e,40 +348366f,21 +3483670,3c +3483671,9 +3483672,80 +3483673,40 +3483674,25 +3483675,29 +3483676,37 +3483677,18 +3483678,91 +3483679,a +348367b,6c +348367c,34 +348367d,1 +348367f,ff +3483680,11 +3483681,41 +3483683,5 +3483688,1 +3483689,2a +348368a,48 +348368b,21 +348368c,91 +348368d,29 +3483690,15 +3483691,20 +3483693,1c +3483698,3c +3483699,9 +348369a,80 +348369b,40 +348369c,25 +348369d,29 +348369e,37 +348369f,b +34836a0,25 +34836a1,29 +34836a3,1 +34836a4,91 +34836a5,2a 34836a8,11 -34836a9,8a -34836aa,ff -34836ab,f5 -34836b0,92 -34836b1,c -34836b3,6d -34836b4,11 -34836b5,8a -34836b6,ff -34836b7,f2 -34836bc,92 -34836bd,c -34836bf,6e -34836c0,11 -34836c1,8a -34836c2,ff -34836c3,ef -34836c8,a1 -34836c9,b -34836cb,69 -34836cc,a1 -34836cd,a -34836cf,6c -34836d0,10 -34836d3,4 -34836d8,34 -34836d9,9 -34836db,ff -34836dc,a1 -34836dd,9 -34836df,69 -34836e0,a1 -34836e1,9 -34836e3,6c -34836e4,3 -34836e5,e0 -34836e7,8 -34836ec,7 -34836ed,9 -34836ee,f -34836ef,2 -34836f0,3 -34836f1,1 -34836f2,d -34836f3,b -34836f9,1 -34836fa,1 -34836fb,1 -34836fc,1 -34836fd,1 -34836ff,1 -3483700,1 -3483701,1 -3483702,1 -3483703,1 -3483705,1 -3483707,1 -3483708,1 -3483709,1 -348370a,1 -348370b,1 -348370c,1 -348370d,1 -348370e,1 -3483711,33 -3483712,8 -3483713,21 -3483714,20 -3483715,f -3483717,47 -3483718,15 -3483719,ea -348371b,e -348371c,3c -348371d,2 -348371e,80 -348371f,12 -3483720,8c -3483721,42 -3483722,a5 -3483723,d4 -3483724,8e -3483725,6f -3483727,a4 -3483729,f -348372a,7a -348372b,3 -348372c,14 -348372d,40 -348372f,5 -3483730,34 -3483731,2 -3483732,48 -3483733,30 -3483734,15 -3483735,e2 -3483737,7 -348373c,24 -348373d,19 -348373f,3 -3483740,10 -3483743,4 -3483744,34 -3483745,2 -3483746,63 -3483747,11 -3483748,15 -3483749,e2 -348374b,2 -3483750,24 -3483751,19 -3483753,3 -3483754,3 -3483755,e0 -3483757,8 -348375c,8d -348375d,ad -348375e,8a -348375f,a0 -3483760,34 -3483761,2 -3483762,80 -3483764,10 -3483765,4d -3483767,2 -348376c,10 -348376f,9 -3483770,3c -3483771,f -3483772,80 -3483773,1e -3483774,25 -3483775,ef -3483776,84 -3483777,a0 -3483778,81 -3483779,e2 -348377a,1c -348377b,bf -348377c,30 -348377d,42 -348377f,1 -3483780,10 -3483781,40 -3483783,2 -3483788,10 -348378b,2 -348378c,34 -348378d,2 -348378f,1 -3483790,a1 -3483791,e2 -3483792,1c -3483793,bf -3483794,3 -3483795,e0 -3483797,8 -348379d,33 -348379e,8 -348379f,21 -34837a0,3c -34837a1,2 -34837a2,80 -34837a3,12 -34837a4,8c -34837a5,42 -34837a6,a5 -34837a7,d4 -34837a8,8e -34837a9,6f -34837ab,a4 -34837ad,f -34837ae,7a -34837af,3 -34837b0,14 -34837b1,40 -34837b3,5 -34837b4,34 -34837b5,2 -34837b6,48 -34837b7,30 -34837b8,15 -34837b9,e2 -34837bb,7 -34837c0,24 -34837c1,19 -34837c3,3 -34837c4,10 -34837c7,4 -34837c8,34 -34837c9,2 -34837ca,63 -34837cb,11 -34837cc,15 -34837cd,e2 -34837cf,2 -34837d4,24 -34837d5,19 -34837d7,3 -34837d8,3 -34837d9,e0 -34837db,8 -34837e0,34 -34837e1,1 -34837e3,18 -34837e4,14 -34837e5,81 -34837e7,11 -34837ec,14 -34837ed,40 -34837ef,f -34837f4,3c -34837f5,a -34837f6,80 -34837f7,12 -34837f8,25 -34837f9,4a -34837fa,a5 -34837fb,d0 -34837fc,81 -34837fd,48 -34837ff,a6 -3483800,31 -3483801,8 -3483803,20 -3483804,11 -3483807,9 -3483808,34 -3483809,2 -348380c,34 -348380d,2 -348380f,1 -3483810,81 -3483811,48 -3483813,7b -3483814,34 -3483815,9 -3483817,7 -3483818,11 -3483819,9 -348381b,4 -348381c,34 -348381d,a -348381f,8 -3483820,11 -3483821,a -3483823,2 +34836a9,40 +34836ab,13 +34836b0,2 +34836b1,a +34836b2,58 +34836b3,21 +34836b4,91 +34836b5,6b +34836b7,74 +34836b8,34 +34836b9,1 +34836bb,ff +34836bc,11 +34836bd,61 +34836be,ff +34836bf,f8 +34836c4,92 +34836c5,c +34836c7,6c +34836c8,11 +34836c9,8a +34836ca,ff +34836cb,f5 +34836d0,92 +34836d1,c +34836d3,6d +34836d4,11 +34836d5,8a +34836d6,ff +34836d7,f2 +34836dc,92 +34836dd,c +34836df,6e +34836e0,11 +34836e1,8a +34836e2,ff +34836e3,ef +34836e8,a1 +34836e9,b +34836eb,69 +34836ec,a1 +34836ed,a +34836ef,6c +34836f0,10 +34836f3,4 +34836f8,34 +34836f9,9 +34836fb,ff +34836fc,a1 +34836fd,9 +34836ff,69 +3483700,a1 +3483701,9 +3483703,6c +3483704,3 +3483705,e0 +3483707,8 +348370c,7 +348370d,9 +348370e,f +348370f,2 +3483710,3 +3483711,1 +3483712,d +3483713,b +3483719,1 +348371a,1 +348371b,1 +348371c,1 +348371d,1 +348371f,1 +3483720,1 +3483721,1 +3483722,1 +3483723,1 +3483725,1 +3483727,1 +3483728,1 +3483729,1 +348372a,1 +348372b,1 +348372c,1 +348372d,1 +348372e,1 +3483731,33 +3483732,8 +3483733,21 +3483734,20 +3483735,f +3483737,47 +3483738,15 +3483739,ea +348373b,e +348373c,3c +348373d,2 +348373e,80 +348373f,12 +3483740,8c +3483741,42 +3483742,a5 +3483743,d4 +3483744,8e +3483745,6f +3483747,a4 +3483749,f +348374a,7a +348374b,3 +348374c,14 +348374d,40 +348374f,5 +3483750,34 +3483751,2 +3483752,48 +3483753,30 +3483754,15 +3483755,e2 +3483757,7 +348375c,24 +348375d,19 +348375f,3 +3483760,10 +3483763,4 +3483764,34 +3483765,2 +3483766,63 +3483767,11 +3483768,15 +3483769,e2 +348376b,2 +3483770,24 +3483771,19 +3483773,3 +3483774,3 +3483775,e0 +3483777,8 +348377c,8d +348377d,ad +348377e,8a +348377f,a0 +3483780,34 +3483781,2 +3483782,80 +3483784,10 +3483785,4d +3483787,2 +348378c,10 +348378f,9 +3483790,3c +3483791,f +3483792,80 +3483793,1e +3483794,25 +3483795,ef +3483796,84 +3483797,a0 +3483798,81 +3483799,e2 +348379a,1c +348379b,bf +348379c,30 +348379d,42 +348379f,1 +34837a0,10 +34837a1,40 +34837a3,2 +34837a8,10 +34837ab,2 +34837ac,34 +34837ad,2 +34837af,1 +34837b0,a1 +34837b1,e2 +34837b2,1c +34837b3,bf +34837b4,3 +34837b5,e0 +34837b7,8 +34837bd,33 +34837be,8 +34837bf,21 +34837c0,3c +34837c1,2 +34837c2,80 +34837c3,12 +34837c4,8c +34837c5,42 +34837c6,a5 +34837c7,d4 +34837c8,8e +34837c9,6f +34837cb,a4 +34837cd,f +34837ce,7a +34837cf,3 +34837d0,14 +34837d1,40 +34837d3,5 +34837d4,34 +34837d5,2 +34837d6,48 +34837d7,30 +34837d8,15 +34837d9,e2 +34837db,7 +34837e0,24 +34837e1,19 +34837e3,3 +34837e4,10 +34837e7,4 +34837e8,34 +34837e9,2 +34837ea,63 +34837eb,11 +34837ec,15 +34837ed,e2 +34837ef,2 +34837f4,24 +34837f5,19 +34837f7,3 +34837f8,3 +34837f9,e0 +34837fb,8 +3483800,34 +3483801,1 +3483803,18 +3483804,14 +3483805,81 +3483807,11 +348380c,14 +348380d,40 +348380f,f +3483814,3c +3483815,a +3483816,80 +3483817,12 +3483818,25 +3483819,4a +348381a,a5 +348381b,d0 +348381c,81 +348381d,48 +348381f,a6 +3483820,31 +3483821,8 +3483823,20 +3483824,11 +3483827,9 3483828,34 3483829,2 -348382c,3 -348382d,e0 -348382f,8 -3483834,80 -3483835,a8 -3483838,25 +348382c,34 +348382d,2 +348382f,1 +3483830,81 +3483831,48 +3483833,7b +3483834,34 +3483835,9 +3483837,7 +3483838,11 3483839,9 -348383b,1 -348383c,15 -348383d,20 -348383f,e -3483844,27 -3483845,bd -3483846,ff -3483847,e8 -3483848,af -3483849,bf -348384b,14 -348384c,af -348384d,a4 -348384f,18 -3483850,af -3483851,a5 -3483853,1c -3483855,5 -3483856,20 -3483857,25 -3483858,24 -3483859,a5 -348385b,8 -348385c,c -348385d,1 -348385e,5c -348385f,c -3483860,24 -3483861,c6 -3483862,ff -3483863,f8 -3483864,8f -3483865,a4 -3483867,18 -3483868,8f -3483869,a5 -348386b,1c -348386c,34 -348386d,6 -348386f,80 -3483870,8f -3483871,bf -3483873,14 -3483874,27 -3483875,bd -3483877,18 -3483878,8 -3483879,1 -348387a,5c -348387b,c -3483880,a2 -3483881,25 -3483883,21 -3483884,3c -3483885,10 -3483886,80 -3483887,40 -3483888,26 -3483889,10 -348388a,17 -348388b,fc -348388c,26 -348388d,10 -348388f,4 -3483890,8e -3483891,a -3483894,11 -3483895,40 -3483897,b -348389d,a -348389e,7c -348389f,2 -34838a0,1 -34838a1,f1 -34838a2,78 -34838a3,20 -34838a4,31 -34838a5,58 -34838a6,ff -34838a9,18 -34838aa,c2 -34838ab,2 -34838ac,17 -34838af,3 -34838b0,31 -34838b1,59 -34838b3,ff -34838b4,81 -34838b5,ea -34838b8,3 -34838b9,2a -34838ba,c8 -34838bb,25 -34838bc,8 -34838bd,10 -34838be,e -34838bf,23 -34838c0,a1 -34838c1,f9 -34838c4,3 -34838c5,e0 -34838c7,8 -34838cc,27 -34838cd,bd -34838ce,ff -34838cf,f0 -34838d0,af -34838d1,bf -34838d3,8 -34838d4,c -34838d5,10 -34838d6,e -34838d7,41 -34838d8,22 -34838d9,64 -34838da,ff -34838db,ff -34838dc,34 -34838dd,4a -34838e0,8f -34838e1,bf -34838e3,8 -34838e4,27 -34838e5,bd -34838e7,10 -34838e8,27 -34838e9,bd -34838ea,ff -34838eb,f0 -34838ec,af -34838ed,bf -34838ef,8 -34838f0,c -34838f1,10 -34838f2,e -34838f3,41 -34838f4,36 -34838f5,44 -34838f8,34 -34838f9,50 -34838fc,8f -34838fd,bf -34838ff,8 -3483900,27 -3483901,bd -3483903,10 -3483904,3c -3483905,8 -3483906,80 -3483907,40 -3483908,25 -3483909,8 -348390a,1c -348390b,2 -348390c,91 -348390d,8 -3483910,15 -3483913,7 -3483918,3c -3483919,8 -348391a,80 -348391b,12 -348391c,25 -348391d,8 -348391e,a5 -348391f,d0 -3483920,1 -3483921,4 -3483922,40 -3483923,20 -3483924,91 -3483925,2 -3483927,24 -3483928,10 -348392b,7 -3483931,8 -3483932,40 -3483933,c0 -3483934,3c -3483935,2 -3483936,80 -3483937,40 -3483938,24 -3483939,42 -348393a,1c -348393b,3 -348393c,1 -348393d,2 -348393e,40 -348393f,20 +348383b,4 +348383c,34 +348383d,a +348383f,8 +3483840,11 +3483841,a +3483843,2 +3483848,34 +3483849,2 +348384c,3 +348384d,e0 +348384f,8 +3483854,80 +3483855,a8 +3483858,25 +3483859,9 +348385b,1 +348385c,15 +348385d,20 +348385f,e +3483864,27 +3483865,bd +3483866,ff +3483867,e8 +3483868,af +3483869,bf +348386b,14 +348386c,af +348386d,a4 +348386f,18 +3483870,af +3483871,a5 +3483873,1c +3483875,5 +3483876,20 +3483877,25 +3483878,24 +3483879,a5 +348387b,8 +348387c,c +348387d,1 +348387e,5c +348387f,c +3483880,24 +3483881,c6 +3483882,ff +3483883,f8 +3483884,8f +3483885,a4 +3483887,18 +3483888,8f +3483889,a5 +348388b,1c +348388c,34 +348388d,6 +348388f,80 +3483890,8f +3483891,bf +3483893,14 +3483894,27 +3483895,bd +3483897,18 +3483898,8 +3483899,1 +348389a,5c +348389b,c +34838a0,a2 +34838a1,25 +34838a3,21 +34838a4,3c +34838a5,10 +34838a6,80 +34838a7,40 +34838a8,26 +34838a9,10 +34838aa,17 +34838ab,fc +34838ac,26 +34838ad,10 +34838af,4 +34838b0,8e +34838b1,a +34838b4,11 +34838b5,40 +34838b7,b +34838bd,a +34838be,7c +34838bf,2 +34838c0,1 +34838c1,f1 +34838c2,78 +34838c3,20 +34838c4,31 +34838c5,58 +34838c6,ff +34838c9,18 +34838ca,c2 +34838cb,2 +34838cc,17 +34838cf,3 +34838d0,31 +34838d1,59 +34838d3,ff +34838d4,81 +34838d5,ea +34838d8,3 +34838d9,2a +34838da,c8 +34838db,25 +34838dc,8 +34838dd,10 +34838de,e +34838df,2b +34838e0,a1 +34838e1,f9 +34838e4,3 +34838e5,e0 +34838e7,8 +34838ec,27 +34838ed,bd +34838ee,ff +34838ef,f0 +34838f0,af +34838f1,bf +34838f3,8 +34838f4,c +34838f5,10 +34838f6,e +34838f7,49 +34838f8,22 +34838f9,64 +34838fa,ff +34838fb,ff +34838fc,34 +34838fd,4a +3483900,8f +3483901,bf +3483903,8 +3483904,27 +3483905,bd +3483907,10 +3483908,27 +3483909,bd +348390a,ff +348390b,f0 +348390c,af +348390d,bf +348390f,8 +3483910,c +3483911,10 +3483912,e +3483913,49 +3483914,36 +3483915,44 +3483918,34 +3483919,50 +348391c,8f +348391d,bf +348391f,8 +3483920,27 +3483921,bd +3483923,10 +3483924,3c +3483925,8 +3483926,80 +3483927,40 +3483928,25 +3483929,8 +348392a,1c +348392b,2 +348392c,91 +348392d,8 +3483930,15 +3483933,7 +3483938,3c +3483939,8 +348393a,80 +348393b,12 +348393c,25 +348393d,8 +348393e,a5 +348393f,d0 3483940,1 3483941,4 3483942,40 3483943,20 3483944,91 3483945,2 -3483948,3 -3483949,e0 -348394b,8 -3483950,8f -3483951,b6 -3483953,30 -3483954,8f -3483955,b7 -3483957,34 -3483958,8f -3483959,be -348395b,38 -348395c,3c -348395d,8 -348395e,80 -348395f,40 -3483960,25 -3483961,8 -3483962,1c -3483963,2 -3483964,a1 +3483947,24 +3483948,10 +348394b,7 +3483951,8 +3483952,40 +3483953,c0 +3483954,3c +3483955,2 +3483956,80 +3483957,40 +3483958,24 +3483959,42 +348395a,1c +348395b,3 +348395c,1 +348395d,2 +348395e,40 +348395f,20 +3483960,1 +3483961,4 +3483962,40 +3483963,20 +3483964,91 +3483965,2 3483968,3 3483969,e0 348396b,8 +3483970,8f +3483971,b6 +3483973,30 +3483974,8f +3483975,b7 +3483977,34 +3483978,8f +3483979,be +348397b,38 +348397c,3c +348397d,8 +348397e,80 +348397f,40 +3483980,25 +3483981,8 +3483982,1c +3483983,2 +3483984,a1 +3483988,3 +3483989,e0 +348398b,8 34b3000,27 34b3001,bd 34b3002,ff diff --git a/data/symbols.json b/data/symbols.json index 6b72b5a6e..dc2748cae 100644 --- a/data/symbols.json +++ b/data/symbols.json @@ -1,6 +1,6 @@ { - "ADULT_INIT_ITEMS": "034836EC", - "ADULT_VALID_ITEMS": "034836F8", + "ADULT_INIT_ITEMS": "0348370C", + "ADULT_VALID_ITEMS": "03483718", "COOP_GET_ITEM": "03481C01", "EXTENDED_ITEM_DATA": "03482008", "FAIRY_ITEMS": "03481D05", From 90ffd55299ca5b0bea9fd7e744c2fb587eff9e23 Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 22 Oct 2018 22:50:13 -0600 Subject: [PATCH 751/755] Update patch files --- ASM/build/asm_symbols.txt | 2216 +++--- ASM/build/bundle.o | Bin 11068 -> 11068 bytes ASM/build/c_symbols.txt | 134 +- data/rom_patch.txt | 13264 ++++++++++++++++++------------------ data/symbols.json | 34 +- version.py | 2 +- 6 files changed, 7824 insertions(+), 7826 deletions(-) diff --git a/ASM/build/asm_symbols.txt b/ASM/build/asm_symbols.txt index d5b9f642d..6701a0219 100644 --- a/ASM/build/asm_symbols.txt +++ b/ASM/build/asm_symbols.txt @@ -1,1109 +1,1109 @@ -00000000 0 -00000000 .byt:4000000 -00000010 .dbl:0008 -00000010 ITEM_TABLE_ROW_SIZE -000005B4 Shop_Item_Save_Offset -0000D260 .dbl:0010 -0000D270 .dbl:0010 -0089E800 .byt:0400 -00B529A0 skip_GS_BGS_text -00BAF750 .byt:0048 -00D74990 skip_steal_tunic -00D7E178 @@not_in_ranch -00D7E18C @@return -00D7E18C return_from_the_other_function -00D7E3AC @@hyrule_check -00D7E3CC @@lon_lon_check -00D7E3F4 @@return_false -00D7E7A4 @@set_ev0 -00D7E7B8 set_ev1 -00D7E8A8 @@unsafe -00D7E8C0 @@safe -00D7E8D4 @@not_hyrule -00D7E920 ev0_return -00DB13D3 .byt:0001 -00DF264F .byt:0001 -00E2F093 .byt:0001 -00EBB8B0 @Deku_Check_True -00EBB8C0 @Deku_Check_False -00EC68D0 .byt:0014 -00EC69C0 .byt:0014 -00EC9CE7 .byt:0001 -8011A5D0 SAVE_CONTEXT -801C84A0 GLOBAL_CONTEXT -801D8C00 SUBSCREEN_CONTEXT -801DAA30 PLAYER_ACTOR -803A9E7E GET_ITEMTABLE -80400000 init -80400050 DebugOutput -80401000 .byt:0800 -80401000 ITEM_OVERRIDES -80401800 .byt:0400 -80401800 INITIAL_SAVE_DATA -80401C00 .byt:0001 -80401C00 PLAYER_ID -80401C01 .byt:0001 -80401C01 COOP_GET_ITEM -80401C02 .byt:0001 -80401C02 PLAYER_NAME_ID -80401C03 .byt:0100 -80401C03 PLAYER_NAMES -80401D03 .byt:0001 -80401D03 LIGHT_ARROW_ITEM -80401D04 .byt:0001 -80401D04 FAIRY_OCARINA_ITEM -80401D05 .byt:0001 -80401D05 FAIRY_ITEMS -80401D06 .byt:0001 -80401D07 .byt:0001 -80401D08 .byt:0001 -80401D09 .byt:0001 -80401D0A .byt:0001 -80401D0C .byt:02F4 -80402000 .dbl:0008 -80402000 PLAYER_OVERRIDE_DATA -80402008 .dbl:0010 -80402008 EXTENDED_ITEM_DATA -80402018 .byt:0001 -80402018 PENDING_SPECIAL_ITEM -80402019 .byt:0001 -8040201A .byt:0001 -8040201B .byt:0001 -8040201B PENDING_SPECIAL_ITEM_END -8040201C .dbl:0004 -8040201C TIME_TRAVEL_SAVED_EQUIPS -80402020 .dbl:0004 -80402024 .wrd:0002 -80402026 .wrd:0002 -80402028 .byt:0028 -80402050 .byt:0001 -80402050 ITEM_TABLE -80402051 .byt:0001 -80402052 .byt:0001 -80402053 .byt:0001 -80402054 .wrd:0002 -80402056 .byt:0001 -80402057 .byt:0001 -80402058 .dbl:0004 -8040205C .dbl:0004 -80402060 .byt:0001 -80402061 .byt:0001 -80402062 .byt:0001 -80402063 .byt:0001 -80402064 .wrd:0002 -80402066 .byt:0001 -80402067 .byt:0001 -80402068 .dbl:0004 -8040206C .dbl:0004 -80402070 .byt:0001 -80402071 .byt:0001 -80402072 .byt:0001 -80402073 .byt:0001 -80402074 .wrd:0002 -80402076 .byt:0001 -80402077 .byt:0001 -80402078 .dbl:0004 -8040207C .dbl:0004 -80402080 .byt:0001 -80402081 .byt:0001 -80402082 .byt:0001 -80402083 .byt:0001 -80402084 .wrd:0002 -80402086 .byt:0001 -80402087 .byt:0001 -80402088 .dbl:0004 -8040208C .dbl:0004 -80402090 .byt:0001 -80402091 .byt:0001 -80402092 .byt:0001 -80402093 .byt:0001 -80402094 .wrd:0002 -80402096 .byt:0001 -80402097 .byt:0001 -80402098 .dbl:0004 -8040209C .dbl:0004 -804020A0 .byt:0001 -804020A1 .byt:0001 -804020A2 .byt:0001 -804020A3 .byt:0001 -804020A4 .wrd:0002 -804020A6 .byt:0001 -804020A7 .byt:0001 -804020A8 .dbl:0004 -804020AC .dbl:0004 -804020B0 .byt:0001 -804020B1 .byt:0001 -804020B2 .byt:0001 -804020B3 .byt:0001 -804020B4 .wrd:0002 -804020B6 .byt:0001 -804020B7 .byt:0001 -804020B8 .dbl:0004 -804020BC .dbl:0004 -804020C0 .byt:0001 -804020C1 .byt:0001 -804020C2 .byt:0001 -804020C3 .byt:0001 -804020C4 .wrd:0002 -804020C6 .byt:0001 -804020C7 .byt:0001 -804020C8 .dbl:0004 -804020CC .dbl:0004 -804020D0 .byt:0001 -804020D1 .byt:0001 -804020D2 .byt:0001 -804020D3 .byt:0001 -804020D4 .wrd:0002 -804020D6 .byt:0001 -804020D7 .byt:0001 -804020D8 .dbl:0004 -804020DC .dbl:0004 -804020E0 .byt:0001 -804020E1 .byt:0001 -804020E2 .byt:0001 -804020E3 .byt:0001 -804020E4 .wrd:0002 -804020E6 .byt:0001 -804020E7 .byt:0001 -804020E8 .dbl:0004 -804020EC .dbl:0004 -804020F0 .byt:0001 -804020F1 .byt:0001 -804020F2 .byt:0001 -804020F3 .byt:0001 -804020F4 .wrd:0002 -804020F6 .byt:0001 -804020F7 .byt:0001 -804020F8 .dbl:0004 -804020FC .dbl:0004 -80402100 .byt:0001 -80402101 .byt:0001 -80402102 .byt:0001 -80402103 .byt:0001 -80402104 .wrd:0002 -80402106 .byt:0001 -80402107 .byt:0001 -80402108 .dbl:0004 -8040210C .dbl:0004 -80402110 .byt:0001 -80402111 .byt:0001 -80402112 .byt:0001 -80402113 .byt:0001 -80402114 .wrd:0002 -80402116 .byt:0001 -80402117 .byt:0001 -80402118 .dbl:0004 -8040211C .dbl:0004 -80402120 .byt:0001 -80402121 .byt:0001 -80402122 .byt:0001 -80402123 .byt:0001 -80402124 .wrd:0002 -80402126 .byt:0001 -80402127 .byt:0001 -80402128 .dbl:0004 -8040212C .dbl:0004 -80402130 .byt:0001 -80402131 .byt:0001 -80402132 .byt:0001 -80402133 .byt:0001 -80402134 .wrd:0002 -80402136 .byt:0001 -80402137 .byt:0001 -80402138 .dbl:0004 -8040213C .dbl:0004 -80402140 .byt:0001 -80402141 .byt:0001 -80402142 .byt:0001 -80402143 .byt:0001 -80402144 .wrd:0002 -80402146 .byt:0001 -80402147 .byt:0001 -80402148 .dbl:0004 -8040214C .dbl:0004 -80402150 .byt:0001 -80402151 .byt:0001 -80402152 .byt:0001 -80402153 .byt:0001 -80402154 .wrd:0002 -80402156 .byt:0001 -80402157 .byt:0001 -80402158 .dbl:0004 -8040215C .dbl:0004 -80402160 .byt:0001 -80402161 .byt:0001 -80402162 .byt:0001 -80402163 .byt:0001 -80402164 .wrd:0002 -80402166 .byt:0001 -80402167 .byt:0001 -80402168 .dbl:0004 -8040216C .dbl:0004 -80402170 .byt:0001 -80402171 .byt:0001 -80402172 .byt:0001 -80402173 .byt:0001 -80402174 .wrd:0002 -80402176 .byt:0001 -80402177 .byt:0001 -80402178 .dbl:0004 -8040217C .dbl:0004 -80402180 .byt:0001 -80402181 .byt:0001 -80402182 .byt:0001 -80402183 .byt:0001 -80402184 .wrd:0002 -80402186 .byt:0001 -80402187 .byt:0001 -80402188 .dbl:0004 -8040218C .dbl:0004 -80402190 .byt:0001 -80402191 .byt:0001 -80402192 .byt:0001 -80402193 .byt:0001 -80402194 .wrd:0002 -80402196 .byt:0001 -80402197 .byt:0001 -80402198 .dbl:0004 -8040219C .dbl:0004 -804021A0 .byt:0001 -804021A1 .byt:0001 -804021A2 .byt:0001 -804021A3 .byt:0001 -804021A4 .wrd:0002 -804021A6 .byt:0001 -804021A7 .byt:0001 -804021A8 .dbl:0004 -804021AC .dbl:0004 -804021B0 .byt:0001 -804021B1 .byt:0001 -804021B2 .byt:0001 -804021B3 .byt:0001 -804021B4 .wrd:0002 -804021B6 .byt:0001 -804021B7 .byt:0001 -804021B8 .dbl:0004 -804021BC .dbl:0004 -804021C0 .byt:0001 -804021C1 .byt:0001 -804021C2 .byt:0001 -804021C3 .byt:0001 -804021C4 .wrd:0002 -804021C6 .byt:0001 -804021C7 .byt:0001 -804021C8 .dbl:0004 -804021CC .dbl:0004 -804021D0 .byt:0001 -804021D1 .byt:0001 -804021D2 .byt:0001 -804021D3 .byt:0001 -804021D4 .wrd:0002 -804021D6 .byt:0001 -804021D7 .byt:0001 -804021D8 .dbl:0004 -804021DC .dbl:0004 -804021E0 .byt:0001 -804021E1 .byt:0001 -804021E2 .byt:0001 -804021E3 .byt:0001 -804021E4 .wrd:0002 -804021E6 .byt:0001 -804021E7 .byt:0001 -804021E8 .dbl:0004 -804021EC .dbl:0004 -804021F0 .byt:0001 -804021F1 .byt:0001 -804021F2 .byt:0001 -804021F3 .byt:0001 -804021F4 .wrd:0002 -804021F6 .byt:0001 -804021F7 .byt:0001 -804021F8 .dbl:0004 -804021FC .dbl:0004 -80402200 .byt:0001 -80402201 .byt:0001 -80402202 .byt:0001 -80402203 .byt:0001 -80402204 .wrd:0002 -80402206 .byt:0001 -80402207 .byt:0001 -80402208 .dbl:0004 -8040220C .dbl:0004 -80402210 .byt:0001 -80402211 .byt:0001 -80402212 .byt:0001 -80402213 .byt:0001 -80402214 .wrd:0002 -80402216 .byt:0001 -80402217 .byt:0001 -80402218 .dbl:0004 -8040221C .dbl:0004 -80402220 .byt:0001 -80402221 .byt:0001 -80402222 .byt:0001 -80402223 .byt:0001 -80402224 .wrd:0002 -80402226 .byt:0001 -80402227 .byt:0001 -80402228 .dbl:0004 -8040222C .dbl:0004 -80402230 .byt:0001 -80402231 .byt:0001 -80402232 .byt:0001 -80402233 .byt:0001 -80402234 .wrd:0002 -80402236 .byt:0001 -80402237 .byt:0001 -80402238 .dbl:0004 -8040223C .dbl:0004 -80402240 .byt:0001 -80402241 .byt:0001 -80402242 .byt:0001 -80402243 .byt:0001 -80402244 .wrd:0002 -80402246 .byt:0001 -80402247 .byt:0001 -80402248 .dbl:0004 -8040224C .dbl:0004 -80402250 .byt:0001 -80402251 .byt:0001 -80402252 .byt:0001 -80402253 .byt:0001 -80402254 .wrd:0002 -80402256 .byt:0001 -80402257 .byt:0001 -80402258 .dbl:0004 -8040225C .dbl:0004 -80402260 .byt:0001 -80402261 .byt:0001 -80402262 .byt:0001 -80402263 .byt:0001 -80402264 .wrd:0002 -80402266 .byt:0001 -80402267 .byt:0001 -80402268 .dbl:0004 -8040226C .dbl:0004 -80402270 .byt:0001 -80402271 .byt:0001 -80402272 .byt:0001 -80402273 .byt:0001 -80402274 .wrd:0002 -80402276 .byt:0001 -80402277 .byt:0001 -80402278 .dbl:0004 -8040227C .dbl:0004 -80402280 .byt:0001 -80402281 .byt:0001 -80402282 .byt:0001 -80402283 .byt:0001 -80402284 .wrd:0002 -80402286 .byt:0001 -80402287 .byt:0001 -80402288 .dbl:0004 -8040228C .dbl:0004 -80402290 .byt:0001 -80402291 .byt:0001 -80402292 .byt:0001 -80402293 .byt:0001 -80402294 .wrd:0002 -80402296 .byt:0001 -80402297 .byt:0001 -80402298 .dbl:0004 -8040229C .dbl:0004 -804022A0 .byt:0001 -804022A1 .byt:0001 -804022A2 .byt:0001 -804022A3 .byt:0001 -804022A4 .wrd:0002 -804022A6 .byt:0001 -804022A7 .byt:0001 -804022A8 .dbl:0004 -804022AC .dbl:0004 -804022B0 .byt:0001 -804022B1 .byt:0001 -804022B2 .byt:0001 -804022B3 .byt:0001 -804022B4 .wrd:0002 -804022B6 .byt:0001 -804022B7 .byt:0001 -804022B8 .dbl:0004 -804022BC .dbl:0004 -804022C0 .byt:0001 -804022C1 .byt:0001 -804022C2 .byt:0001 -804022C3 .byt:0001 -804022C4 .wrd:0002 -804022C6 .byt:0001 -804022C7 .byt:0001 -804022C8 .dbl:0004 -804022CC .dbl:0004 -804022D0 .byt:0001 -804022D1 .byt:0001 -804022D2 .byt:0001 -804022D3 .byt:0001 -804022D4 .wrd:0002 -804022D6 .byt:0001 -804022D7 .byt:0001 -804022D8 .dbl:0004 -804022DC .dbl:0004 -804022E0 .byt:0001 -804022E1 .byt:0001 -804022E2 .byt:0001 -804022E3 .byt:0001 -804022E4 .wrd:0002 -804022E6 .byt:0001 -804022E7 .byt:0001 -804022E8 .dbl:0004 -804022EC .dbl:0004 -804022F0 .byt:0001 -804022F1 .byt:0001 -804022F2 .byt:0001 -804022F3 .byt:0001 -804022F4 .wrd:0002 -804022F6 .byt:0001 -804022F7 .byt:0001 -804022F8 .dbl:0004 -804022FC .dbl:0004 -80402300 .byt:0001 -80402301 .byt:0001 -80402302 .byt:0001 -80402303 .byt:0001 -80402304 .wrd:0002 -80402306 .byt:0001 -80402307 .byt:0001 -80402308 .dbl:0004 -8040230C .dbl:0004 -80402310 .byt:0001 -80402311 .byt:0001 -80402312 .byt:0001 -80402313 .byt:0001 -80402314 .wrd:0002 -80402316 .byt:0001 -80402317 .byt:0001 -80402318 .dbl:0004 -8040231C .dbl:0004 -80402320 .byt:0001 -80402321 .byt:0001 -80402322 .byt:0001 -80402323 .byt:0001 -80402324 .wrd:0002 -80402326 .byt:0001 -80402327 .byt:0001 -80402328 .dbl:0004 -8040232C .dbl:0004 -80402330 .byt:0001 -80402331 .byt:0001 -80402332 .byt:0001 -80402333 .byt:0001 -80402334 .wrd:0002 -80402336 .byt:0001 -80402337 .byt:0001 -80402338 .dbl:0004 -8040233C .dbl:0004 -80402340 .byt:0001 -80402341 .byt:0001 -80402342 .byt:0001 -80402343 .byt:0001 -80402344 .wrd:0002 -80402346 .byt:0001 -80402347 .byt:0001 -80402348 .dbl:0004 -8040234C .dbl:0004 -80402350 .byt:0001 -80402351 .byt:0001 -80402352 .byt:0001 -80402353 .byt:0001 -80402354 .wrd:0002 -80402356 .byt:0001 -80402357 .byt:0001 -80402358 .dbl:0004 -8040235C .dbl:0004 -80402360 .byt:0001 -80402361 .byt:0001 -80402362 .byt:0001 -80402363 .byt:0001 -80402364 .wrd:0002 -80402366 .byt:0001 -80402367 .byt:0001 -80402368 .dbl:0004 -8040236C .dbl:0004 -80402370 .byt:0001 -80402371 .byt:0001 -80402372 .byt:0001 -80402373 .byt:0001 -80402374 .wrd:0002 -80402376 .byt:0001 -80402377 .byt:0001 -80402378 .dbl:0004 -8040237C .dbl:0004 -80402380 .byt:0001 -80402381 .byt:0001 -80402382 .byt:0001 -80402383 .byt:0001 -80402384 .wrd:0002 -80402386 .byt:0001 -80402387 .byt:0001 -80402388 .dbl:0004 -8040238C .dbl:0004 -80402390 .byt:0001 -80402391 .byt:0001 -80402392 .byt:0001 -80402393 .byt:0001 -80402394 .wrd:0002 -80402396 .byt:0001 -80402397 .byt:0001 -80402398 .dbl:0004 -8040239C .dbl:0004 -804023A0 .byt:0001 -804023A1 .byt:0001 -804023A2 .byt:0001 -804023A3 .byt:0001 -804023A4 .wrd:0002 -804023A6 .byt:0001 -804023A7 .byt:0001 -804023A8 .dbl:0004 -804023AC .dbl:0004 -804023B0 .byt:0001 -804023B1 .byt:0001 -804023B2 .byt:0001 -804023B3 .byt:0001 -804023B4 .wrd:0002 -804023B6 .byt:0001 -804023B7 .byt:0001 -804023B8 .dbl:0004 -804023BC .dbl:0004 -804023C0 .byt:0001 -804023C1 .byt:0001 -804023C2 .byt:0001 -804023C3 .byt:0001 -804023C4 .wrd:0002 -804023C6 .byt:0001 -804023C7 .byt:0001 -804023C8 .dbl:0004 -804023CC .dbl:0004 -804023D0 .byt:0001 -804023D1 .byt:0001 -804023D2 .byt:0001 -804023D3 .byt:0001 -804023D4 .wrd:0002 -804023D6 .byt:0001 -804023D7 .byt:0001 -804023D8 .dbl:0004 -804023DC .dbl:0004 -804023E0 .byt:0001 -804023E1 .byt:0001 -804023E2 .byt:0001 -804023E3 .byt:0001 -804023E4 .wrd:0002 -804023E6 .byt:0001 -804023E7 .byt:0001 -804023E8 .dbl:0004 -804023EC .dbl:0004 -804023F0 .byt:0001 -804023F1 .byt:0001 -804023F2 .byt:0001 -804023F3 .byt:0001 -804023F4 .wrd:0002 -804023F6 .byt:0001 -804023F7 .byt:0001 -804023F8 .dbl:0004 -804023FC .dbl:0004 -80402400 .byt:0001 -80402401 .byt:0001 -80402402 .byt:0001 -80402403 .byt:0001 -80402404 .wrd:0002 -80402406 .byt:0001 -80402407 .byt:0001 -80402408 .dbl:0004 -8040240C .dbl:0004 -80402410 .byt:0001 -80402411 .byt:0001 -80402412 .byt:0001 -80402413 .byt:0001 -80402414 .wrd:0002 -80402416 .byt:0001 -80402417 .byt:0001 -80402418 .dbl:0004 -8040241C .dbl:0004 -80402420 .byt:0001 -80402421 .byt:0001 -80402422 .byt:0001 -80402423 .byt:0001 -80402424 .wrd:0002 -80402426 .byt:0001 -80402427 .byt:0001 -80402428 .dbl:0004 -8040242C .dbl:0004 -80402430 .byt:0001 -80402431 .byt:0001 -80402432 .byt:0001 -80402433 .byt:0001 -80402434 .wrd:0002 -80402436 .byt:0001 -80402437 .byt:0001 -80402438 .dbl:0004 -8040243C .dbl:0004 -80402440 .byt:0001 -80402441 .byt:0001 -80402442 .byt:0001 -80402443 .byt:0001 -80402444 .wrd:0002 -80402446 .byt:0001 -80402447 .byt:0001 -80402448 .dbl:0004 -8040244C .dbl:0004 -80402450 .byt:0001 -80402451 .byt:0001 -80402452 .byt:0001 -80402453 .byt:0001 -80402454 .wrd:0002 -80402456 .byt:0001 -80402457 .byt:0001 -80402458 .dbl:0004 -8040245C .dbl:0004 -80402460 .byt:0001 -80402461 .byt:0001 -80402462 .byt:0001 -80402463 .byt:0001 -80402464 .wrd:0002 -80402466 .byt:0001 -80402467 .byt:0001 -80402468 .dbl:0004 -8040246C .dbl:0004 -80402470 .byt:0001 -80402471 .byt:0001 -80402472 .byt:0001 -80402473 .byt:0001 -80402474 .wrd:0002 -80402476 .byt:0001 -80402477 .byt:0001 -80402478 .dbl:0004 -8040247C .dbl:0004 -80402480 .byt:0001 -80402481 .byt:0001 -80402482 .byt:0001 -80402483 .byt:0001 -80402484 .wrd:0002 -80402486 .byt:0001 -80402487 .byt:0001 -80402488 .dbl:0004 -8040248C .dbl:0004 -80402490 .byt:0001 -80402491 .byt:0001 -80402492 .byt:0001 -80402493 .byt:0001 -80402494 .wrd:0002 -80402496 .byt:0001 -80402497 .byt:0001 -80402498 .dbl:0004 -8040249C .dbl:0004 -804024A0 .byt:0001 -804024A1 .byt:0001 -804024A2 .byt:0001 -804024A3 .byt:0001 -804024A4 .wrd:0002 -804024A6 .byt:0001 -804024A7 .byt:0001 -804024A8 .dbl:0004 -804024AC .dbl:0004 -804024B0 .byt:0001 -804024B1 .byt:0001 -804024B2 .byt:0001 -804024B3 .byt:0001 -804024B4 .wrd:0002 -804024B6 .byt:0001 -804024B7 .byt:0001 -804024B8 .dbl:0004 -804024BC .dbl:0004 -804024C0 .byt:0001 -804024C1 .byt:0001 -804024C2 .byt:0001 -804024C3 .byt:0001 -804024C4 .wrd:0002 -804024C6 .byt:0001 -804024C7 .byt:0001 -804024C8 .dbl:0004 -804024CC .dbl:0004 -804024D0 .byt:0001 -804024D1 .byt:0001 -804024D2 .byt:0001 -804024D3 .byt:0001 -804024D4 .wrd:0002 -804024D6 .byt:0001 -804024D7 .byt:0001 -804024D8 .dbl:0004 -804024DC .dbl:0004 -804024E0 .byt:0001 -804024E1 .byt:0001 -804024E2 .byt:0001 -804024E3 .byt:0001 -804024E4 .wrd:0002 -804024E6 .byt:0001 -804024E7 .byt:0001 -804024E8 .dbl:0004 -804024EC .dbl:0004 -804024F0 .byt:0001 -804024F1 .byt:0001 -804024F2 .byt:0001 -804024F3 .byt:0001 -804024F4 .wrd:0002 -804024F6 .byt:0001 -804024F7 .byt:0001 -804024F8 .dbl:0004 -804024FC .dbl:0004 -80402500 .byt:0001 -80402501 .byt:0001 -80402502 .byt:0001 -80402503 .byt:0001 -80402504 .wrd:0002 -80402506 .byt:0001 -80402507 .byt:0001 -80402508 .dbl:0004 -8040250C .dbl:0004 -80402510 .byt:0001 -80402511 .byt:0001 -80402512 .byt:0001 -80402513 .byt:0001 -80402514 .wrd:0002 -80402516 .byt:0001 -80402517 .byt:0001 -80402518 .dbl:0004 -8040251C .dbl:0004 -80402520 .byt:0001 -80402521 .byt:0001 -80402522 .byt:0001 -80402523 .byt:0001 -80402524 .wrd:0002 -80402526 .byt:0001 -80402527 .byt:0001 -80402528 .dbl:0004 -8040252C .dbl:0004 -80402530 .byt:0001 -80402531 .byt:0001 -80402532 .byt:0001 -80402533 .byt:0001 -80402534 .wrd:0002 -80402536 .byt:0001 -80402537 .byt:0001 -80402538 .dbl:0004 -8040253C .dbl:0004 -80402540 .byt:0001 -80402541 .byt:0001 -80402542 .byt:0001 -80402543 .byt:0001 -80402544 .wrd:0002 -80402546 .byt:0001 -80402547 .byt:0001 -80402548 .dbl:0004 -8040254C .dbl:0004 -80402550 .byt:0001 -80402551 .byt:0001 -80402552 .byt:0001 -80402553 .byt:0001 -80402554 .wrd:0002 -80402556 .byt:0001 -80402557 .byt:0001 -80402558 .dbl:0004 -8040255C .dbl:0004 -80402560 .byt:0001 -80402561 .byt:0001 -80402562 .byt:0001 -80402563 .byt:0001 -80402564 .wrd:0002 -80402566 .byt:0001 -80402567 .byt:0001 -80402568 .dbl:0004 -8040256C .dbl:0004 -80402570 .byt:0001 -80402571 .byt:0001 -80402572 .byt:0001 -80402573 .byt:0001 -80402574 .wrd:0002 -80402576 .byt:0001 -80402577 .byt:0001 -80402578 .dbl:0004 -8040257C .dbl:0004 -80402580 .byt:0001 -80402581 .byt:0001 -80402582 .byt:0001 -80402583 .byt:0001 -80402584 .wrd:0002 -80402586 .byt:0001 -80402587 .byt:0001 -80402588 .dbl:0004 -8040258C .dbl:0004 -80402590 no_upgrade -80402598 hookshot_upgrade -804025AC @@return -804025B4 strength_upgrade -804025D4 @@return -804025DC bomb_bag_upgrade -804025FC @@return -80402604 bow_upgrade -80402624 @@return -8040262C slingshot_upgrade -8040264C @@return -80402654 wallet_upgrade -80402674 @@return -8040267C tycoon_wallet -80402690 scale_upgrade -804026A4 @@return -804026AC nut_upgrade -804026C0 @@return -804026C8 stick_upgrade -804026DC @@return -804026E4 magic_upgrade -804026F4 @@return -804026FC arrows_to_rupee -80402710 @@return -80402718 bombs_to_rupee -8040272C @@return -80402734 seeds_to_rupee -80402748 @@return -80402750 no_effect -80402758 give_biggoron_sword -80402768 give_bottle -80402770 @@loop -8040279C @@return -804027A4 give_dungeon_item -804027C0 give_small_key -804027D8 @not_negative -804027E8 give_defense -80402808 give_magic -80402828 double_magic -80402850 bombchu_upgrade -80402874 @@return -8040287C ocarina_upgrade -80402890 @@return -80402898 give_fairy_ocarina -804028A8 give_song -804028C4 inventory_check -80402930 @@return -80402938 override_skulltula_token -80402958 @@in_table -8040299C @@extended_effect -804029D0 @@not_extended -80402A18 @@item_effect -80402A24 @@return -80402A38 override_object_npc -80402A48 override_object_chest -80402A58 override_object -80402A70 @@return -80402AB4 @@no_count_inc -80402AB8 @@no_pending_clear -80402AC0 override_graphic -80402AD8 @@return -80402AF0 override_text -80402B0C @@return -80402B14 override_action -80402B3C @@no_player_override -80402B98 @@return -80402BA0 store_item_data_hook -80402BD4 store_item_data -80402C68 @@update_base_game -80402C98 @@not_chest -80402CA8 @@not_negative -80402CAC @@return -80402CBC lookup_override -80402CE4 @@return -80402CF4 get_override_search_key -80402D34 @@not_skulltula -80402D6C @@valid_chest -80402D74 @@not_chest -80402DA4 @@valid_collectable -80402DAC @@not_collectable -80402DD4 @@not_grotto_deku_scrub -80402DE4 @@return -80402DEC scan_override_table -80402E30 @@not_coop_item -80402E38 @@lookup_loop -80402E6C @@lookup_item_found -80402EA0 @@return -80402EA8 resolve_extended_item -80402EBC @@loop -80402F10 @@not_extended -80402F14 @@return -80402F2C override_great_fairy_cutscene -80402F84 @@item_fairy -80402FA4 @@give_item -80402FD0 @@return -80402FD8 override_light_arrow_cutscene -80402FEC override_fairy_ocarina_cutscene -80403000 override_ocarina_songs -80403014 override_requiem_song -80403020 override_epona_song -80403040 override_suns_song -80403060 override_song_of_time -80403070 store_pending_special_item -80403080 @@find_duplicate_loop -8040309C @@find_empty_loop -804030B4 @@return -804030BC override_saria_song_check -804030D8 @@get_item -804030E0 set_saria_song_flag -80403100 set_dungeon_knowledge -8040312C @@set_flag -80403144 Shop_Check_Sold_Out -80403190 @@return -80403198 Shop_Set_Sold_Out -804031D0 @@return -804031D8 Shop_Keeper_Init_ID -804031F4 @@return -80403204 Deku_Check_Sold_Out -80403228 @@continue -80403258 Deku_Set_Sold_Out -8040327C @@continue -804032B0 before_game_state_update -80403300 @@loop -80403358 @@no_pending_item -8040336C after_game_state_update -80403390 item_menu_prevent_empty_equip -804033A0 @@return -804033A8 equipment_menu_prevent_empty_equip -804033C8 @@return -804033DC menu_use_blank_description -80403410 @@not_equip_menu -80403420 @@return -80403438 equipment_menu_slot_filled -80403488 give_master_sword -804034A0 before_time_travel -804034D8 after_time_travel -80403514 @@going_back -8040351C @@done -8040354C update_c_button -80403578 @@return -80403580 after_going_forward -804035BC @@no_init -804035CC after_going_back -804035FC @@not_swordless -80403604 initialize_adult -8040362C @@no_mirror_shield -8040366C init_adult_button -80403698 @@empty -804036A0 @@loop -804036F8 @@set_empty -80403704 @@return -8040370C .byt:0001 -8040370C ADULT_INIT_ITEMS -8040370D .byt:0001 -8040370E .byt:0001 -8040370F .byt:0001 -80403710 .byt:0001 -80403711 .byt:0001 -80403712 .byt:0001 -80403713 .byt:0001 -80403714 .byt:0001 -80403718 .byt:0001 -80403718 ADULT_VALID_ITEMS -80403719 .byt:0001 -8040371A .byt:0001 -8040371B .byt:0001 -8040371C .byt:0001 -8040371D .byt:0001 -8040371E .byt:0001 -8040371F .byt:0001 -80403720 .byt:0001 -80403721 .byt:0001 -80403722 .byt:0001 -80403723 .byt:0001 -80403724 .byt:0001 -80403725 .byt:0001 -80403726 .byt:0001 -80403727 .byt:0001 -80403728 .byt:0001 -80403729 .byt:0001 -8040372A .byt:0001 -8040372B .byt:0001 -8040372C .byt:0001 -8040372D .byt:0001 -8040372E .byt:0001 -8040372F .byt:0001 -80403730 suns_song_fix_event -80403764 @@child -80403774 @@return -8040377C suns_song_fix -80403790 @@check_suns_status -804037AC @@disable_suns -804037B4 @@return -804037BC warp_song_fix -804037E8 @@child -804037F8 @@return -80403800 Check_Has_Epona_Song -8040384C @@return -80403854 save_scarecrow_song -80403898 @@copy_song -804038A0 write_initial_save -804038AC @@save_data_loop -804038DC @@overwrite_type -804038E4 @@return -804038EC get_name_char_1 -80403908 get_name_char_2 -80403924 get_name_char -80403950 @@coop_player_name -80403968 @@return -80403970 reset_player_name_id -80403990 .byt:06C0 -80405000 draw_file_select_hash,00000234 -80405234 disp_buf_init,00000018 -8040524C sprite_bytes_per_tile,00000028 -80405274 sprite_bytes,00000030 -804052A4 sprite_load,000001A0 -80405444 sprite_draw,000000F0 -80405534 draw_setup,000001DC -80405710 gfx_init,00000178 -80405888 heap_init,00000014 -8040589C heap_alloc,00000034 -804058D0 file_init,00000044 -80405914 c_init,0000002C -80405940 c_after_game_state_update,00000088 -804059C8 draw_dungeon_info,000009B8 -80406380 text_init,0000002C -804063AC text_print,000000A8 -80406454 text_flush,00000148 -804065A8 .byt:0040 -804065A8 hash_symbols -804065E8 .byt:0010 -804065E8 font_sprite -804065F8 .byt:0010 -804065F8 quest_items_sprite -80406608 .byt:0010 -80406608 items_sprite -80406618 .byt:0010 -80406618 medals_sprite -80406628 .byt:0010 -80406628 stones_sprite -80406638 .byt:000E -80406638 cfg_dungeon_rewards -80406648 .byt:0012 -80406648 medal_colors -8040665C .byt:009C -8040665C dungeons -804066F8 .byt:0008 -804066F8 hash_sprites -80406700 .byt:0004 -80406700 cfg_dungeon_info_enable -80406704 .byt:0004 -80406704 dungeon_count -80406708 .byt:0004 -80406708 cfg_file_select_hash -8040670C .byt:0004 -8040670C heap_next -80406710 .byt:0004 -80406710 cfg_dungeon_info_reward_need_altar -80406714 .byt:0004 -80406714 cfg_dungeon_info_reward_need_compass -80406718 .byt:0004 -80406718 cfg_dungeon_info_mq_need_map -8040671C .byt:0004 -8040671C cfg_dungeon_info_mq_enable -80406728 .byt:0010 -80406728 setup_db -80406738 .byt:000E -80406738 cfg_dungeon_is_mq -80406746 .byt:14C8 -80406746 FONT_TEXTURE -80407C0E .byt:83F2 -80480000 DUMMY_ACTOR -80500000 C_HEAP +00000000 0 +00000000 .byt:4000000 +00000010 .dbl:0008 +00000010 ITEM_TABLE_ROW_SIZE +000005B4 Shop_Item_Save_Offset +0000D260 .dbl:0010 +0000D270 .dbl:0010 +0089E800 .byt:0400 +00B529A0 skip_GS_BGS_text +00BAF750 .byt:0048 +00D74990 skip_steal_tunic +00D7E178 @@not_in_ranch +00D7E18C @@return +00D7E18C return_from_the_other_function +00D7E3AC @@hyrule_check +00D7E3CC @@lon_lon_check +00D7E3F4 @@return_false +00D7E7A4 @@set_ev0 +00D7E7B8 set_ev1 +00D7E8A8 @@unsafe +00D7E8C0 @@safe +00D7E8D4 @@not_hyrule +00D7E920 ev0_return +00DB13D3 .byt:0001 +00DF264F .byt:0001 +00E2F093 .byt:0001 +00EBB8B0 @Deku_Check_True +00EBB8C0 @Deku_Check_False +00EC68D0 .byt:0014 +00EC69C0 .byt:0014 +00EC9CE7 .byt:0001 +8011A5D0 SAVE_CONTEXT +801C84A0 GLOBAL_CONTEXT +801D8C00 SUBSCREEN_CONTEXT +801DAA30 PLAYER_ACTOR +803A9E7E GET_ITEMTABLE +80400000 init +80400050 DebugOutput +80401000 .byt:0800 +80401000 ITEM_OVERRIDES +80401800 .byt:0400 +80401800 INITIAL_SAVE_DATA +80401C00 .byt:0001 +80401C00 PLAYER_ID +80401C01 .byt:0001 +80401C01 COOP_GET_ITEM +80401C02 .byt:0001 +80401C02 PLAYER_NAME_ID +80401C03 .byt:0100 +80401C03 PLAYER_NAMES +80401D03 .byt:0001 +80401D03 LIGHT_ARROW_ITEM +80401D04 .byt:0001 +80401D04 FAIRY_OCARINA_ITEM +80401D05 .byt:0001 +80401D05 FAIRY_ITEMS +80401D06 .byt:0001 +80401D07 .byt:0001 +80401D08 .byt:0001 +80401D09 .byt:0001 +80401D0A .byt:0001 +80401D0C .byt:02F4 +80402000 .dbl:0008 +80402000 PLAYER_OVERRIDE_DATA +80402008 .dbl:0010 +80402008 EXTENDED_ITEM_DATA +80402018 .byt:0001 +80402018 PENDING_SPECIAL_ITEM +80402019 .byt:0001 +8040201A .byt:0001 +8040201B .byt:0001 +8040201B PENDING_SPECIAL_ITEM_END +8040201C .dbl:0004 +8040201C TIME_TRAVEL_SAVED_EQUIPS +80402020 .dbl:0004 +80402024 .wrd:0002 +80402026 .wrd:0002 +80402028 .byt:0028 +80402050 .byt:0001 +80402050 ITEM_TABLE +80402051 .byt:0001 +80402052 .byt:0001 +80402053 .byt:0001 +80402054 .wrd:0002 +80402056 .byt:0001 +80402057 .byt:0001 +80402058 .dbl:0004 +8040205C .dbl:0004 +80402060 .byt:0001 +80402061 .byt:0001 +80402062 .byt:0001 +80402063 .byt:0001 +80402064 .wrd:0002 +80402066 .byt:0001 +80402067 .byt:0001 +80402068 .dbl:0004 +8040206C .dbl:0004 +80402070 .byt:0001 +80402071 .byt:0001 +80402072 .byt:0001 +80402073 .byt:0001 +80402074 .wrd:0002 +80402076 .byt:0001 +80402077 .byt:0001 +80402078 .dbl:0004 +8040207C .dbl:0004 +80402080 .byt:0001 +80402081 .byt:0001 +80402082 .byt:0001 +80402083 .byt:0001 +80402084 .wrd:0002 +80402086 .byt:0001 +80402087 .byt:0001 +80402088 .dbl:0004 +8040208C .dbl:0004 +80402090 .byt:0001 +80402091 .byt:0001 +80402092 .byt:0001 +80402093 .byt:0001 +80402094 .wrd:0002 +80402096 .byt:0001 +80402097 .byt:0001 +80402098 .dbl:0004 +8040209C .dbl:0004 +804020A0 .byt:0001 +804020A1 .byt:0001 +804020A2 .byt:0001 +804020A3 .byt:0001 +804020A4 .wrd:0002 +804020A6 .byt:0001 +804020A7 .byt:0001 +804020A8 .dbl:0004 +804020AC .dbl:0004 +804020B0 .byt:0001 +804020B1 .byt:0001 +804020B2 .byt:0001 +804020B3 .byt:0001 +804020B4 .wrd:0002 +804020B6 .byt:0001 +804020B7 .byt:0001 +804020B8 .dbl:0004 +804020BC .dbl:0004 +804020C0 .byt:0001 +804020C1 .byt:0001 +804020C2 .byt:0001 +804020C3 .byt:0001 +804020C4 .wrd:0002 +804020C6 .byt:0001 +804020C7 .byt:0001 +804020C8 .dbl:0004 +804020CC .dbl:0004 +804020D0 .byt:0001 +804020D1 .byt:0001 +804020D2 .byt:0001 +804020D3 .byt:0001 +804020D4 .wrd:0002 +804020D6 .byt:0001 +804020D7 .byt:0001 +804020D8 .dbl:0004 +804020DC .dbl:0004 +804020E0 .byt:0001 +804020E1 .byt:0001 +804020E2 .byt:0001 +804020E3 .byt:0001 +804020E4 .wrd:0002 +804020E6 .byt:0001 +804020E7 .byt:0001 +804020E8 .dbl:0004 +804020EC .dbl:0004 +804020F0 .byt:0001 +804020F1 .byt:0001 +804020F2 .byt:0001 +804020F3 .byt:0001 +804020F4 .wrd:0002 +804020F6 .byt:0001 +804020F7 .byt:0001 +804020F8 .dbl:0004 +804020FC .dbl:0004 +80402100 .byt:0001 +80402101 .byt:0001 +80402102 .byt:0001 +80402103 .byt:0001 +80402104 .wrd:0002 +80402106 .byt:0001 +80402107 .byt:0001 +80402108 .dbl:0004 +8040210C .dbl:0004 +80402110 .byt:0001 +80402111 .byt:0001 +80402112 .byt:0001 +80402113 .byt:0001 +80402114 .wrd:0002 +80402116 .byt:0001 +80402117 .byt:0001 +80402118 .dbl:0004 +8040211C .dbl:0004 +80402120 .byt:0001 +80402121 .byt:0001 +80402122 .byt:0001 +80402123 .byt:0001 +80402124 .wrd:0002 +80402126 .byt:0001 +80402127 .byt:0001 +80402128 .dbl:0004 +8040212C .dbl:0004 +80402130 .byt:0001 +80402131 .byt:0001 +80402132 .byt:0001 +80402133 .byt:0001 +80402134 .wrd:0002 +80402136 .byt:0001 +80402137 .byt:0001 +80402138 .dbl:0004 +8040213C .dbl:0004 +80402140 .byt:0001 +80402141 .byt:0001 +80402142 .byt:0001 +80402143 .byt:0001 +80402144 .wrd:0002 +80402146 .byt:0001 +80402147 .byt:0001 +80402148 .dbl:0004 +8040214C .dbl:0004 +80402150 .byt:0001 +80402151 .byt:0001 +80402152 .byt:0001 +80402153 .byt:0001 +80402154 .wrd:0002 +80402156 .byt:0001 +80402157 .byt:0001 +80402158 .dbl:0004 +8040215C .dbl:0004 +80402160 .byt:0001 +80402161 .byt:0001 +80402162 .byt:0001 +80402163 .byt:0001 +80402164 .wrd:0002 +80402166 .byt:0001 +80402167 .byt:0001 +80402168 .dbl:0004 +8040216C .dbl:0004 +80402170 .byt:0001 +80402171 .byt:0001 +80402172 .byt:0001 +80402173 .byt:0001 +80402174 .wrd:0002 +80402176 .byt:0001 +80402177 .byt:0001 +80402178 .dbl:0004 +8040217C .dbl:0004 +80402180 .byt:0001 +80402181 .byt:0001 +80402182 .byt:0001 +80402183 .byt:0001 +80402184 .wrd:0002 +80402186 .byt:0001 +80402187 .byt:0001 +80402188 .dbl:0004 +8040218C .dbl:0004 +80402190 .byt:0001 +80402191 .byt:0001 +80402192 .byt:0001 +80402193 .byt:0001 +80402194 .wrd:0002 +80402196 .byt:0001 +80402197 .byt:0001 +80402198 .dbl:0004 +8040219C .dbl:0004 +804021A0 .byt:0001 +804021A1 .byt:0001 +804021A2 .byt:0001 +804021A3 .byt:0001 +804021A4 .wrd:0002 +804021A6 .byt:0001 +804021A7 .byt:0001 +804021A8 .dbl:0004 +804021AC .dbl:0004 +804021B0 .byt:0001 +804021B1 .byt:0001 +804021B2 .byt:0001 +804021B3 .byt:0001 +804021B4 .wrd:0002 +804021B6 .byt:0001 +804021B7 .byt:0001 +804021B8 .dbl:0004 +804021BC .dbl:0004 +804021C0 .byt:0001 +804021C1 .byt:0001 +804021C2 .byt:0001 +804021C3 .byt:0001 +804021C4 .wrd:0002 +804021C6 .byt:0001 +804021C7 .byt:0001 +804021C8 .dbl:0004 +804021CC .dbl:0004 +804021D0 .byt:0001 +804021D1 .byt:0001 +804021D2 .byt:0001 +804021D3 .byt:0001 +804021D4 .wrd:0002 +804021D6 .byt:0001 +804021D7 .byt:0001 +804021D8 .dbl:0004 +804021DC .dbl:0004 +804021E0 .byt:0001 +804021E1 .byt:0001 +804021E2 .byt:0001 +804021E3 .byt:0001 +804021E4 .wrd:0002 +804021E6 .byt:0001 +804021E7 .byt:0001 +804021E8 .dbl:0004 +804021EC .dbl:0004 +804021F0 .byt:0001 +804021F1 .byt:0001 +804021F2 .byt:0001 +804021F3 .byt:0001 +804021F4 .wrd:0002 +804021F6 .byt:0001 +804021F7 .byt:0001 +804021F8 .dbl:0004 +804021FC .dbl:0004 +80402200 .byt:0001 +80402201 .byt:0001 +80402202 .byt:0001 +80402203 .byt:0001 +80402204 .wrd:0002 +80402206 .byt:0001 +80402207 .byt:0001 +80402208 .dbl:0004 +8040220C .dbl:0004 +80402210 .byt:0001 +80402211 .byt:0001 +80402212 .byt:0001 +80402213 .byt:0001 +80402214 .wrd:0002 +80402216 .byt:0001 +80402217 .byt:0001 +80402218 .dbl:0004 +8040221C .dbl:0004 +80402220 .byt:0001 +80402221 .byt:0001 +80402222 .byt:0001 +80402223 .byt:0001 +80402224 .wrd:0002 +80402226 .byt:0001 +80402227 .byt:0001 +80402228 .dbl:0004 +8040222C .dbl:0004 +80402230 .byt:0001 +80402231 .byt:0001 +80402232 .byt:0001 +80402233 .byt:0001 +80402234 .wrd:0002 +80402236 .byt:0001 +80402237 .byt:0001 +80402238 .dbl:0004 +8040223C .dbl:0004 +80402240 .byt:0001 +80402241 .byt:0001 +80402242 .byt:0001 +80402243 .byt:0001 +80402244 .wrd:0002 +80402246 .byt:0001 +80402247 .byt:0001 +80402248 .dbl:0004 +8040224C .dbl:0004 +80402250 .byt:0001 +80402251 .byt:0001 +80402252 .byt:0001 +80402253 .byt:0001 +80402254 .wrd:0002 +80402256 .byt:0001 +80402257 .byt:0001 +80402258 .dbl:0004 +8040225C .dbl:0004 +80402260 .byt:0001 +80402261 .byt:0001 +80402262 .byt:0001 +80402263 .byt:0001 +80402264 .wrd:0002 +80402266 .byt:0001 +80402267 .byt:0001 +80402268 .dbl:0004 +8040226C .dbl:0004 +80402270 .byt:0001 +80402271 .byt:0001 +80402272 .byt:0001 +80402273 .byt:0001 +80402274 .wrd:0002 +80402276 .byt:0001 +80402277 .byt:0001 +80402278 .dbl:0004 +8040227C .dbl:0004 +80402280 .byt:0001 +80402281 .byt:0001 +80402282 .byt:0001 +80402283 .byt:0001 +80402284 .wrd:0002 +80402286 .byt:0001 +80402287 .byt:0001 +80402288 .dbl:0004 +8040228C .dbl:0004 +80402290 .byt:0001 +80402291 .byt:0001 +80402292 .byt:0001 +80402293 .byt:0001 +80402294 .wrd:0002 +80402296 .byt:0001 +80402297 .byt:0001 +80402298 .dbl:0004 +8040229C .dbl:0004 +804022A0 .byt:0001 +804022A1 .byt:0001 +804022A2 .byt:0001 +804022A3 .byt:0001 +804022A4 .wrd:0002 +804022A6 .byt:0001 +804022A7 .byt:0001 +804022A8 .dbl:0004 +804022AC .dbl:0004 +804022B0 .byt:0001 +804022B1 .byt:0001 +804022B2 .byt:0001 +804022B3 .byt:0001 +804022B4 .wrd:0002 +804022B6 .byt:0001 +804022B7 .byt:0001 +804022B8 .dbl:0004 +804022BC .dbl:0004 +804022C0 .byt:0001 +804022C1 .byt:0001 +804022C2 .byt:0001 +804022C3 .byt:0001 +804022C4 .wrd:0002 +804022C6 .byt:0001 +804022C7 .byt:0001 +804022C8 .dbl:0004 +804022CC .dbl:0004 +804022D0 .byt:0001 +804022D1 .byt:0001 +804022D2 .byt:0001 +804022D3 .byt:0001 +804022D4 .wrd:0002 +804022D6 .byt:0001 +804022D7 .byt:0001 +804022D8 .dbl:0004 +804022DC .dbl:0004 +804022E0 .byt:0001 +804022E1 .byt:0001 +804022E2 .byt:0001 +804022E3 .byt:0001 +804022E4 .wrd:0002 +804022E6 .byt:0001 +804022E7 .byt:0001 +804022E8 .dbl:0004 +804022EC .dbl:0004 +804022F0 .byt:0001 +804022F1 .byt:0001 +804022F2 .byt:0001 +804022F3 .byt:0001 +804022F4 .wrd:0002 +804022F6 .byt:0001 +804022F7 .byt:0001 +804022F8 .dbl:0004 +804022FC .dbl:0004 +80402300 .byt:0001 +80402301 .byt:0001 +80402302 .byt:0001 +80402303 .byt:0001 +80402304 .wrd:0002 +80402306 .byt:0001 +80402307 .byt:0001 +80402308 .dbl:0004 +8040230C .dbl:0004 +80402310 .byt:0001 +80402311 .byt:0001 +80402312 .byt:0001 +80402313 .byt:0001 +80402314 .wrd:0002 +80402316 .byt:0001 +80402317 .byt:0001 +80402318 .dbl:0004 +8040231C .dbl:0004 +80402320 .byt:0001 +80402321 .byt:0001 +80402322 .byt:0001 +80402323 .byt:0001 +80402324 .wrd:0002 +80402326 .byt:0001 +80402327 .byt:0001 +80402328 .dbl:0004 +8040232C .dbl:0004 +80402330 .byt:0001 +80402331 .byt:0001 +80402332 .byt:0001 +80402333 .byt:0001 +80402334 .wrd:0002 +80402336 .byt:0001 +80402337 .byt:0001 +80402338 .dbl:0004 +8040233C .dbl:0004 +80402340 .byt:0001 +80402341 .byt:0001 +80402342 .byt:0001 +80402343 .byt:0001 +80402344 .wrd:0002 +80402346 .byt:0001 +80402347 .byt:0001 +80402348 .dbl:0004 +8040234C .dbl:0004 +80402350 .byt:0001 +80402351 .byt:0001 +80402352 .byt:0001 +80402353 .byt:0001 +80402354 .wrd:0002 +80402356 .byt:0001 +80402357 .byt:0001 +80402358 .dbl:0004 +8040235C .dbl:0004 +80402360 .byt:0001 +80402361 .byt:0001 +80402362 .byt:0001 +80402363 .byt:0001 +80402364 .wrd:0002 +80402366 .byt:0001 +80402367 .byt:0001 +80402368 .dbl:0004 +8040236C .dbl:0004 +80402370 .byt:0001 +80402371 .byt:0001 +80402372 .byt:0001 +80402373 .byt:0001 +80402374 .wrd:0002 +80402376 .byt:0001 +80402377 .byt:0001 +80402378 .dbl:0004 +8040237C .dbl:0004 +80402380 .byt:0001 +80402381 .byt:0001 +80402382 .byt:0001 +80402383 .byt:0001 +80402384 .wrd:0002 +80402386 .byt:0001 +80402387 .byt:0001 +80402388 .dbl:0004 +8040238C .dbl:0004 +80402390 .byt:0001 +80402391 .byt:0001 +80402392 .byt:0001 +80402393 .byt:0001 +80402394 .wrd:0002 +80402396 .byt:0001 +80402397 .byt:0001 +80402398 .dbl:0004 +8040239C .dbl:0004 +804023A0 .byt:0001 +804023A1 .byt:0001 +804023A2 .byt:0001 +804023A3 .byt:0001 +804023A4 .wrd:0002 +804023A6 .byt:0001 +804023A7 .byt:0001 +804023A8 .dbl:0004 +804023AC .dbl:0004 +804023B0 .byt:0001 +804023B1 .byt:0001 +804023B2 .byt:0001 +804023B3 .byt:0001 +804023B4 .wrd:0002 +804023B6 .byt:0001 +804023B7 .byt:0001 +804023B8 .dbl:0004 +804023BC .dbl:0004 +804023C0 .byt:0001 +804023C1 .byt:0001 +804023C2 .byt:0001 +804023C3 .byt:0001 +804023C4 .wrd:0002 +804023C6 .byt:0001 +804023C7 .byt:0001 +804023C8 .dbl:0004 +804023CC .dbl:0004 +804023D0 .byt:0001 +804023D1 .byt:0001 +804023D2 .byt:0001 +804023D3 .byt:0001 +804023D4 .wrd:0002 +804023D6 .byt:0001 +804023D7 .byt:0001 +804023D8 .dbl:0004 +804023DC .dbl:0004 +804023E0 .byt:0001 +804023E1 .byt:0001 +804023E2 .byt:0001 +804023E3 .byt:0001 +804023E4 .wrd:0002 +804023E6 .byt:0001 +804023E7 .byt:0001 +804023E8 .dbl:0004 +804023EC .dbl:0004 +804023F0 .byt:0001 +804023F1 .byt:0001 +804023F2 .byt:0001 +804023F3 .byt:0001 +804023F4 .wrd:0002 +804023F6 .byt:0001 +804023F7 .byt:0001 +804023F8 .dbl:0004 +804023FC .dbl:0004 +80402400 .byt:0001 +80402401 .byt:0001 +80402402 .byt:0001 +80402403 .byt:0001 +80402404 .wrd:0002 +80402406 .byt:0001 +80402407 .byt:0001 +80402408 .dbl:0004 +8040240C .dbl:0004 +80402410 .byt:0001 +80402411 .byt:0001 +80402412 .byt:0001 +80402413 .byt:0001 +80402414 .wrd:0002 +80402416 .byt:0001 +80402417 .byt:0001 +80402418 .dbl:0004 +8040241C .dbl:0004 +80402420 .byt:0001 +80402421 .byt:0001 +80402422 .byt:0001 +80402423 .byt:0001 +80402424 .wrd:0002 +80402426 .byt:0001 +80402427 .byt:0001 +80402428 .dbl:0004 +8040242C .dbl:0004 +80402430 .byt:0001 +80402431 .byt:0001 +80402432 .byt:0001 +80402433 .byt:0001 +80402434 .wrd:0002 +80402436 .byt:0001 +80402437 .byt:0001 +80402438 .dbl:0004 +8040243C .dbl:0004 +80402440 .byt:0001 +80402441 .byt:0001 +80402442 .byt:0001 +80402443 .byt:0001 +80402444 .wrd:0002 +80402446 .byt:0001 +80402447 .byt:0001 +80402448 .dbl:0004 +8040244C .dbl:0004 +80402450 .byt:0001 +80402451 .byt:0001 +80402452 .byt:0001 +80402453 .byt:0001 +80402454 .wrd:0002 +80402456 .byt:0001 +80402457 .byt:0001 +80402458 .dbl:0004 +8040245C .dbl:0004 +80402460 .byt:0001 +80402461 .byt:0001 +80402462 .byt:0001 +80402463 .byt:0001 +80402464 .wrd:0002 +80402466 .byt:0001 +80402467 .byt:0001 +80402468 .dbl:0004 +8040246C .dbl:0004 +80402470 .byt:0001 +80402471 .byt:0001 +80402472 .byt:0001 +80402473 .byt:0001 +80402474 .wrd:0002 +80402476 .byt:0001 +80402477 .byt:0001 +80402478 .dbl:0004 +8040247C .dbl:0004 +80402480 .byt:0001 +80402481 .byt:0001 +80402482 .byt:0001 +80402483 .byt:0001 +80402484 .wrd:0002 +80402486 .byt:0001 +80402487 .byt:0001 +80402488 .dbl:0004 +8040248C .dbl:0004 +80402490 .byt:0001 +80402491 .byt:0001 +80402492 .byt:0001 +80402493 .byt:0001 +80402494 .wrd:0002 +80402496 .byt:0001 +80402497 .byt:0001 +80402498 .dbl:0004 +8040249C .dbl:0004 +804024A0 .byt:0001 +804024A1 .byt:0001 +804024A2 .byt:0001 +804024A3 .byt:0001 +804024A4 .wrd:0002 +804024A6 .byt:0001 +804024A7 .byt:0001 +804024A8 .dbl:0004 +804024AC .dbl:0004 +804024B0 .byt:0001 +804024B1 .byt:0001 +804024B2 .byt:0001 +804024B3 .byt:0001 +804024B4 .wrd:0002 +804024B6 .byt:0001 +804024B7 .byt:0001 +804024B8 .dbl:0004 +804024BC .dbl:0004 +804024C0 .byt:0001 +804024C1 .byt:0001 +804024C2 .byt:0001 +804024C3 .byt:0001 +804024C4 .wrd:0002 +804024C6 .byt:0001 +804024C7 .byt:0001 +804024C8 .dbl:0004 +804024CC .dbl:0004 +804024D0 .byt:0001 +804024D1 .byt:0001 +804024D2 .byt:0001 +804024D3 .byt:0001 +804024D4 .wrd:0002 +804024D6 .byt:0001 +804024D7 .byt:0001 +804024D8 .dbl:0004 +804024DC .dbl:0004 +804024E0 .byt:0001 +804024E1 .byt:0001 +804024E2 .byt:0001 +804024E3 .byt:0001 +804024E4 .wrd:0002 +804024E6 .byt:0001 +804024E7 .byt:0001 +804024E8 .dbl:0004 +804024EC .dbl:0004 +804024F0 .byt:0001 +804024F1 .byt:0001 +804024F2 .byt:0001 +804024F3 .byt:0001 +804024F4 .wrd:0002 +804024F6 .byt:0001 +804024F7 .byt:0001 +804024F8 .dbl:0004 +804024FC .dbl:0004 +80402500 .byt:0001 +80402501 .byt:0001 +80402502 .byt:0001 +80402503 .byt:0001 +80402504 .wrd:0002 +80402506 .byt:0001 +80402507 .byt:0001 +80402508 .dbl:0004 +8040250C .dbl:0004 +80402510 .byt:0001 +80402511 .byt:0001 +80402512 .byt:0001 +80402513 .byt:0001 +80402514 .wrd:0002 +80402516 .byt:0001 +80402517 .byt:0001 +80402518 .dbl:0004 +8040251C .dbl:0004 +80402520 .byt:0001 +80402521 .byt:0001 +80402522 .byt:0001 +80402523 .byt:0001 +80402524 .wrd:0002 +80402526 .byt:0001 +80402527 .byt:0001 +80402528 .dbl:0004 +8040252C .dbl:0004 +80402530 .byt:0001 +80402531 .byt:0001 +80402532 .byt:0001 +80402533 .byt:0001 +80402534 .wrd:0002 +80402536 .byt:0001 +80402537 .byt:0001 +80402538 .dbl:0004 +8040253C .dbl:0004 +80402540 .byt:0001 +80402541 .byt:0001 +80402542 .byt:0001 +80402543 .byt:0001 +80402544 .wrd:0002 +80402546 .byt:0001 +80402547 .byt:0001 +80402548 .dbl:0004 +8040254C .dbl:0004 +80402550 .byt:0001 +80402551 .byt:0001 +80402552 .byt:0001 +80402553 .byt:0001 +80402554 .wrd:0002 +80402556 .byt:0001 +80402557 .byt:0001 +80402558 .dbl:0004 +8040255C .dbl:0004 +80402560 .byt:0001 +80402561 .byt:0001 +80402562 .byt:0001 +80402563 .byt:0001 +80402564 .wrd:0002 +80402566 .byt:0001 +80402567 .byt:0001 +80402568 .dbl:0004 +8040256C .dbl:0004 +80402570 .byt:0001 +80402571 .byt:0001 +80402572 .byt:0001 +80402573 .byt:0001 +80402574 .wrd:0002 +80402576 .byt:0001 +80402577 .byt:0001 +80402578 .dbl:0004 +8040257C .dbl:0004 +80402580 .byt:0001 +80402581 .byt:0001 +80402582 .byt:0001 +80402583 .byt:0001 +80402584 .wrd:0002 +80402586 .byt:0001 +80402587 .byt:0001 +80402588 .dbl:0004 +8040258C .dbl:0004 +80402590 no_upgrade +80402598 hookshot_upgrade +804025AC @@return +804025B4 strength_upgrade +804025D4 @@return +804025DC bomb_bag_upgrade +804025FC @@return +80402604 bow_upgrade +80402624 @@return +8040262C slingshot_upgrade +8040264C @@return +80402654 wallet_upgrade +80402674 @@return +8040267C tycoon_wallet +80402690 scale_upgrade +804026A4 @@return +804026AC nut_upgrade +804026C0 @@return +804026C8 stick_upgrade +804026DC @@return +804026E4 magic_upgrade +804026F4 @@return +804026FC arrows_to_rupee +80402710 @@return +80402718 bombs_to_rupee +8040272C @@return +80402734 seeds_to_rupee +80402748 @@return +80402750 no_effect +80402758 give_biggoron_sword +80402768 give_bottle +80402770 @@loop +8040279C @@return +804027A4 give_dungeon_item +804027C0 give_small_key +804027D8 @not_negative +804027E8 give_defense +80402808 give_magic +80402828 double_magic +80402850 bombchu_upgrade +80402874 @@return +8040287C ocarina_upgrade +80402890 @@return +80402898 give_fairy_ocarina +804028A8 give_song +804028C4 inventory_check +80402930 @@return +80402938 override_skulltula_token +80402958 @@in_table +8040299C @@extended_effect +804029D0 @@not_extended +80402A18 @@item_effect +80402A24 @@return +80402A38 override_object_npc +80402A48 override_object_chest +80402A58 override_object +80402A70 @@return +80402AB4 @@no_count_inc +80402AB8 @@no_pending_clear +80402AC0 override_graphic +80402AD8 @@return +80402AF0 override_text +80402B0C @@return +80402B14 override_action +80402B3C @@no_player_override +80402B98 @@return +80402BA0 store_item_data_hook +80402BD4 store_item_data +80402C68 @@update_base_game +80402C98 @@not_chest +80402CA8 @@not_negative +80402CAC @@return +80402CBC lookup_override +80402CE4 @@return +80402CF4 get_override_search_key +80402D34 @@not_skulltula +80402D6C @@valid_chest +80402D74 @@not_chest +80402DA4 @@valid_collectable +80402DAC @@not_collectable +80402DD4 @@not_grotto_deku_scrub +80402DE4 @@return +80402DEC scan_override_table +80402E30 @@not_coop_item +80402E38 @@lookup_loop +80402E6C @@lookup_item_found +80402EA0 @@return +80402EA8 resolve_extended_item +80402EBC @@loop +80402F10 @@not_extended +80402F14 @@return +80402F2C override_great_fairy_cutscene +80402F84 @@item_fairy +80402FA4 @@give_item +80402FD0 @@return +80402FD8 override_light_arrow_cutscene +80402FEC override_fairy_ocarina_cutscene +80403000 override_ocarina_songs +80403014 override_requiem_song +80403020 override_epona_song +80403040 override_suns_song +80403060 override_song_of_time +80403070 store_pending_special_item +80403080 @@find_duplicate_loop +8040309C @@find_empty_loop +804030B4 @@return +804030BC override_saria_song_check +804030D8 @@get_item +804030E0 set_saria_song_flag +80403100 set_dungeon_knowledge +8040312C @@set_flag +80403144 Shop_Check_Sold_Out +80403190 @@return +80403198 Shop_Set_Sold_Out +804031D0 @@return +804031D8 Shop_Keeper_Init_ID +804031F4 @@return +80403204 Deku_Check_Sold_Out +80403228 @@continue +80403258 Deku_Set_Sold_Out +8040327C @@continue +804032B0 before_game_state_update +80403300 @@loop +80403358 @@no_pending_item +8040336C after_game_state_update +80403390 item_menu_prevent_empty_equip +804033A0 @@return +804033A8 equipment_menu_prevent_empty_equip +804033C8 @@return +804033DC menu_use_blank_description +80403410 @@not_equip_menu +80403420 @@return +80403438 equipment_menu_slot_filled +80403488 give_master_sword +804034A0 before_time_travel +804034D8 after_time_travel +80403514 @@going_back +8040351C @@done +8040354C update_c_button +80403578 @@return +80403580 after_going_forward +804035BC @@no_init +804035CC after_going_back +804035FC @@not_swordless +80403604 initialize_adult +8040362C @@no_mirror_shield +8040366C init_adult_button +80403698 @@empty +804036A0 @@loop +804036F8 @@set_empty +80403704 @@return +8040370C .byt:0001 +8040370C ADULT_INIT_ITEMS +8040370D .byt:0001 +8040370E .byt:0001 +8040370F .byt:0001 +80403710 .byt:0001 +80403711 .byt:0001 +80403712 .byt:0001 +80403713 .byt:0001 +80403714 .byt:0001 +80403718 .byt:0001 +80403718 ADULT_VALID_ITEMS +80403719 .byt:0001 +8040371A .byt:0001 +8040371B .byt:0001 +8040371C .byt:0001 +8040371D .byt:0001 +8040371E .byt:0001 +8040371F .byt:0001 +80403720 .byt:0001 +80403721 .byt:0001 +80403722 .byt:0001 +80403723 .byt:0001 +80403724 .byt:0001 +80403725 .byt:0001 +80403726 .byt:0001 +80403727 .byt:0001 +80403728 .byt:0001 +80403729 .byt:0001 +8040372A .byt:0001 +8040372B .byt:0001 +8040372C .byt:0001 +8040372D .byt:0001 +8040372E .byt:0001 +8040372F .byt:0001 +80403730 suns_song_fix_event +80403764 @@child +80403774 @@return +8040377C suns_song_fix +80403790 @@check_suns_status +804037AC @@disable_suns +804037B4 @@return +804037BC warp_song_fix +804037E8 @@child +804037F8 @@return +80403800 Check_Has_Epona_Song +8040384C @@return +80403854 save_scarecrow_song +80403898 @@copy_song +804038A0 write_initial_save +804038AC @@save_data_loop +804038DC @@overwrite_type +804038E4 @@return +804038EC get_name_char_1 +80403908 get_name_char_2 +80403924 get_name_char +80403950 @@coop_player_name +80403968 @@return +80403970 reset_player_name_id +80403990 .byt:06C0 +80405000 text_init,0000002C +8040502C text_print,000000A8 +804050D4 text_flush,00000148 +8040521C draw_dungeon_info,000009B8 +80405BD4 c_init,0000002C +80405C00 c_after_game_state_update,00000088 +80405C88 heap_init,00000014 +80405C9C heap_alloc,00000034 +80405CD0 file_init,00000044 +80405D14 disp_buf_init,00000018 +80405D2C sprite_bytes_per_tile,00000028 +80405D54 sprite_bytes,00000030 +80405D84 sprite_load,000001A0 +80405F24 sprite_draw,000000F0 +80406014 draw_setup,000001DC +804061F0 gfx_init,00000178 +80406368 draw_file_select_hash,00000234 +804065A8 .byt:000E +804065A8 cfg_dungeon_rewards +804065B8 .byt:0012 +804065B8 medal_colors +804065CC .byt:009C +804065CC dungeons +80406668 .byt:0010 +80406668 font_sprite +80406678 .byt:0010 +80406678 quest_items_sprite +80406688 .byt:0010 +80406688 items_sprite +80406698 .byt:0010 +80406698 medals_sprite +804066A8 .byt:0010 +804066A8 stones_sprite +804066B8 .byt:0040 +804066B8 hash_symbols +804066F8 .byt:0004 +804066F8 cfg_dungeon_info_enable +804066FC .byt:0004 +804066FC dungeon_count +80406700 .byt:0008 +80406700 hash_sprites +80406710 .byt:0004 +80406710 cfg_dungeon_info_reward_need_altar +80406714 .byt:0004 +80406714 cfg_dungeon_info_reward_need_compass +80406718 .byt:0004 +80406718 cfg_dungeon_info_mq_need_map +8040671C .byt:0004 +8040671C cfg_dungeon_info_mq_enable +80406720 .byt:0004 +80406720 heap_next +80406724 .byt:0004 +80406724 cfg_file_select_hash +80406728 .byt:000E +80406728 cfg_dungeon_is_mq +80406738 .byt:0010 +80406738 setup_db +80406748 .byt:14C8 +80406748 FONT_TEXTURE +80407C10 .byt:83F0 +80480000 DUMMY_ACTOR +80500000 C_HEAP  \ No newline at end of file diff --git a/ASM/build/bundle.o b/ASM/build/bundle.o index 55cef123ced6ede707ac9599d7291bfc7eadfdcc..9dec7528b1ffe68144cdb0497bb14222425b45c5 100644 GIT binary patch delta 2837 zcmZWrO-x)>82#S!&CGi9c8y6(d7Ldm2PgYPZ>k?yo4xST$Y-+SpxmJ>A9e1v(WX0PYuZTKID)pAX4E*HP=1(V(v!DIL1xoNvM z`prm(9e?X>krS7$TsTtIKi~{t513Xa}qh zaEj}&8`J$!*dv}~lz)ghuWjf+i3x9kQ1LVtnBX(a8PHdL2lIA}iU#;rB(cmjCv zap)ZU<_eAdHXnxFyf+{&#+w;ki$NcY3ps9skRMT=SKg((TlpZ0pnnla|LeLxq5Joh zKQP=vcW7T?SLk5n_&xzr05&Wp|<#faK#M`G}Onp1_0)Ga^T5Pyv$PGYai_BhY@Re93TVk_Oo09ViX3cTf=va8ST5 zu0!xHt~cS0K@I`?$vg1IAV+}*qj(q`D13zc}AD#T42Keyf3xeyTAb(jP$1t6YVP`i^RzT0c!yL~u+CUBuBbbMeExP$7r ztd8qy_eAafG70$hX95r1VF6y!B=D+D0xxU)ye8x4p>uqiJO~c`N;B%XsD}5|5JK2; zZ%GYRh_|8%RyBbN^Hf-TL=$Wnzxb$$AD>i?PEu(6mWfk}LlGZ~ctzwzR1%*BlHbKE zo%|k$`n@&zC{gzqDV(0$|(&ZCQ~u*4B_FC@B6;zW;0oahsI7KJ5H$YBTPpLitl z0vG-esRbsBB3a^;$g2pLya_~tB!nIyLeK%OqhldQWg&m490K@8tr`$H3fv|J{RWXv za6hkz{Z0qx@1sS0Zv8RyxcTGe`S&Nx^Y0@;hWikbfdC(^<2~a~o1^k)@GlAjSIpDn zqjMDCKTy6TvWND|K>DxgdKp;42ENYWD>&6^98)>-s!XAUd{w5PIK&>276eYs>OK;2 zJ>4Wyk2q=g*OSBl5P1iX9C7N%5vPtEh4S7?-^TOLyOE!`4E_(~C$o`=tCpC>84?RP zGvWZ2h~pwJ6U+FQg}8{bB(9uu delta 2830 zcmZWrO=whC6h7}cIy0Gh^B*(OF~%Bev^E`Ww6>0PBq@ZFN?M}0kQ!^E2_2K55wZwO z+EU0Oi`ZvDiiIq)2yG~VL?3!+`<;7! zzI*PSH(5Ntcz)ueow6zad&(PgtLbKUZp7={;crC8{X+Eq+?Vc8;Y>pyAcburGoMJ# zFnfD!ua`Rz(uMIWlD$2D%E{i|XmPTBvoql2{3+)P%p2YP;atH*aEoO9PB&lm!G|Je z2X0)yT=MH`-t&LmdDc(vT#l$72jKaGHG}?oZO$L5t??7tfL~Mli+`@M2Kc^zIs2|( z%oe}O7W~cHKg;p0eFWs6KQOO;iRWJ8`(NV6wm5J*##t)45cOpmq~isLACdbWc(Wz=8F^PQ7K}f_TIES7{I1|``TvdFt*~vVzXOr( z6a-BgPh)Kqqaq0PoqZsDXs7}|j7~NK*DT;T){3@{4mf9!a0ona>u0%!VI6Qj#m2y$ zVOxi1I!<=gLsi6}fhG7@xO>`bvQ7m;3qw-M9L$^$hf1>g&Hc0NT*rlIO=! z8R{8k%utX2*Pg`OnYxeNG7j)nUf(t#6biPui+l-4jtg;|`~i?0I%~-v0>K^hzX2_A z@*?|z?x@H+z-{%4!Gg#s@Zd#5tXKFQkpsw64&KECiGq{(y1)>e0+LVT9LZ;a}5bEb$uNj#!Th z5bM!Jy&I8DtrNvYStt4&=g&(J#RBhuhn?~=c?os&GV18nt01pI1$lWD#4d+Sy_g()PC z!WF*;O&D*~gmHAL5(fbk5}((d$4y9l$>JWFUl}{CIIdd(3Sfb!=7^)=UBHP{?m~is z$RUVvi6JeJfCJ+aqZ*gEXMU6BH>LR#Gv+s|e&xi16(?KuCGDN8-pyO4Tjg`aETG+MqJ zJ4<6He8Z(D@K!^j^c^4)rSBTY&MJJt_@eP;<15BdhnF|~6j)}0O?Aj1ITK`Bjkg(x zKn7$`n6KK*thPEs0kpFq?A3YgWX1$l7tDT9{i@NKieI Date: Mon, 22 Oct 2018 23:16:38 -0600 Subject: [PATCH 752/755] Update icons to be transparent --- data/ER16.gif | Bin 1051 -> 986 bytes data/ER32.gif | Bin 1544 -> 1493 bytes data/ER48.gif | Bin 2391 -> 2299 bytes version.py | 2 +- 4 files changed, 1 insertion(+), 1 deletion(-) diff --git a/data/ER16.gif b/data/ER16.gif index ceb4a8588b37ac76b1e87b09cc19414bb6c7abf6..f4a954cb5fdc83463a8ccbdc190b3656ba939dd2 100644 GIT binary patch delta 623 zcmV-#0+9Wi2-*jKM@dFFIbje05CHc8000009UmSiEh;K7FDx-EEi*AOH8U_aGcYzZ zG&(moJUKT#IyXK#JU%=*Kt4Z3K|V!7KSn`6Mn*wKKS4=DLP|zONk~UcNJmacNKZ^l zQcg})P)}G@RasJ0SyfeBS5;eBRa;qCU0GOLRasqITVPy&Tw`BfW?x`sU}kG%W^QU} zZene9YixIJb9Hobc6D=jc6NPpcYk$vd3bh!cy@z%d4zmwJej*W(qfrylfjG2&;n~Rj4j+UQ~la!N?nvjs3kdvN~ zke`y1pOcq=oS2xLnUtZFm7$rJq?($el$oWLoTQeRq@A6onwqGbovN9hs+ymxoS&_q zovWarshpy&pQW;=rn9N2v7)H5qN%i|thJ@8x2deOuB*7It+=SJxvH+aue80ZvADIc zy|T5uvbMjlxxKlx!n3)>w7bT%yTiM|%eTPExWUU4yT#DI%GAQs+{@J2&)D7A^AOeAZA^8LW00930EC2ui01yBW000QL0RIUbIPea^g9n)y8G{hvj~Y(Ah-o+w z2oou2=xAy4=b)cHUBc|CqejXXI8)LL1jGjkmo<9WY-thXNf9b<1m+clmHJbY!DFw2E~6a8hAiKLdRo)P*9ZEae3en JB@_b!06Q_x4mtn; delta 801 zcmV++1K#}F2b&0gM@dFFIbje05CHc803;?QEHN-HGchhSGBP+cH99vmJ2*8wI5j*u zH#|8vJUTc)K0ZS|JVQS|L_t19L_$SEK}khINkl|RMny|UModUaP)$x#OiWWwOHoiz zS5i?|Qc_t|Q(0G3T2@tBR$E_JRa{tBTv%3JSy)_JSz%s(Twq;ZV_simU1DfoWolnx zW?^M*Xlie2Y<6vKc5G~RZgYBYaeH%ie|C9%dwhO=c7b|%fq8j_dw+<1eu#jAhJ}WS zh=+=ai;a$lkb{VmgNBldiIIqjm5Yp*i;kCzkC2azmX45{kCva0kDZW@oRX50larj2 zmYSE7pO%$>p^=rKla`^Em7+9?6?d|XJ?eOvN@bU5S@$vBT@bdEV^Yiog`1twx`T6?!`uh3%`}_R-{Qdp? z{{H?3{{R2~|Npa*0Sf_tA^8LV00000A^!_WZDD6+O<`wgV`~j(VQp<;JuogbH8eFf z04x9i000mG5C8xO+W<`o94K&+A58=k4pby%2^>cX2a+Nr1c#C^ZW@(J_{ox>BS^HU zsYAw2B2WWIF)9Q`%pX2)sFb0zCC?>Oq#^~f0!0oWG-F)om@?#l$sJRY`T)s+WzHHR zG6-0(5#)=ZM{It);1b776c`2qJYdlTk*PK*VkAkErOS*00uU@HF-YK~79jRiDRQI1 z00$8==-DXn&;=D|u24820Rsmbod}A;!vMtw1rnv|aB6CFZEtjHZg+2Qd2MZVaBqBYadvKTdT)4sZgF#S zb9ixbeRgzwaCLrlc7J$zeSC9(c6EStb%1$yg?W2}b9sSwe1LX(gMNF2czT6>eS>;^ zhkbj4fPI01eTjj8je&rOdw_|2f{cEJg@%EOfP#vIfsBHIjD&=XfQ5^NhmV4Uj)jDZ zii4Adgpq@Ul7@$qh=-Gngp`Phl7)zrg^QAkiIs_pmW+&)iiwzwik*&)nTd>N> zpQN&$pr)dste~W?p`x;)qOhl>u%V{0q^Gu~rn9J~w5h4FqpGr{tGA%3wWO}LrKz&2 zskN!9wymwTsjRlHtGcGDxT>qTtgX4It+=nPysNIfuCBVUvAn0Sx~j3htFphWw7##h zw6n0gu&}?gv%j^qy0o>vwz#~twZN{pz^}5wwYS2vw!*cx#kIJ@vAM#uyTq}&#kIZ0 zwz!@Rx6xxLA{zRSPD$+yGHxx&f5!p*qC&b`FSyT;4D#Ld0N(7DFazsl3U zz{JDC&%n#i!^qIV%GJWn)xyov%Ffov&)Le+*~rt}%hcD>)7aG3-_YRc+2rln<>=+= z?dAXg00000A^8LW00930EC2ui03ZM$000R80RIUbNU-3*W(E@~T$w{9t2c3ZGivgy9;t3noDRdqC0;OCG3}PA38XsBjF$9f6OD%`I07WUGWTTBAy0l`69fEuSfddYx0KyM(UJ;TTeiZsCk5r!PHPAJ$+;>s*WjKF{d5KPcP z2N{&`Llp(#0}TlefRRTa@q}Yb9%t;~iX|>aAi)G0Y@k60CDf46Hem>00w(07qsbXk zs1b-7DNF!?1Q(Pb0tRf-u+S|m1aJgA#K0lSA%-9lLj@L8puq(xxG;hSEJTD$3IjMX zN*=YK^GgdFR4{>)A*|2>4JBx@v_%90a1jkU@$j$#1{Hh|LkTOmKm!dfq>)iFUNkU( z8@l-L!3Gy#(83Ka$UwslH?Z)8M%@5WfB`9R5JIXaq)-D3EMU7s2r!|N0s#h$Fm4GX zq!2?4E9`)S3O@Zah6Vy?@IeSMq;SIyG{itdr~Up@!vhF#Py!1(_;AAvI?T}UKs}If v!VNw2a6=6sZ%j}kOau{f4K?&&azRk|aBU4jylhYvJ>;;h%{LqCQ$PSaldH2I literal 1544 zcmZ?wbhEHbRA5kG_|Cu}A}TB)B_=H^Evu-gsHCKl zeKUI}&FSr%HnDg1gvpa9PntV<#@snm7fzYIWZJyd)2A((IeXdcxhrQcTs>{!+Br)% z&R?-{-n`Wd7O!2jbnS|zn-;IyvUKgvrOUUhT)AcC+Fffl?OD5i{f2ehH>}&aaqISN zoAzzmxo`XS{X2H-+p+oJ`fUd{?>@3+-^nf85AEE2bl2{ayAGV*e&p=#qZjt=J#^sU zk;BJMA3lEa)R}W`pS{>H;$jZbmH>uGncPkzIyZW^_w?t-MM||$>ne&t5!z`R4hv7cXADdG+qYyU$-ffB*6A$B*y-|Nmzg1#}4k#h)x-dldh3d*&vl zr}`$QXC`O!rYGj+CfXY4nV6cGnlk8slz=h}1IIrGeoh&W4GSC`6aPuXoG4ISXyAI` zN2W*N!UZO-MJ_upwFMmQuUqnCfupk5bj3iMx|9{^Cnw67RPZDgJw7qhL7Vs4&54WH zJmrH<#O%DZ)O-FM=EnzGJd;ldY9+TB?JROjbag6cI9R#yFsG=N-My~Hy z#6+w(H_JAq$$-;Jop+{Tz*G^%TdG}?w3{T(C0=enJ6XYF4UbuI>Y2&X=2Ln+i(OCh z%Ll57v81H;&r!E`3u^+En;IDfQzkSCn2QLu3d|Dy)Fv9l^01N1*MqT5%+*1$Rmkp+ zKqC{oMt~!W(vuH|8@I?VdQfXyQsBgE84}nkcGvXaeO4}=1P5k8mjXs^dy&9LiU}+q z9r?AVEN~L=UBlQa=2bYwESA#g-0)q&B4-_|DZ z2rGxjPKG{ymw-mja*>o1(#8x9jsjV0F1qj;-vw>V}1` z{EiLmN7%SiZXIBj%rH2}tZ?9BfI>uqzyU5_7RIAep*ar@FrDI*k$S);9df|cwfxKk z1_rH$jcrn@77rMhg;EL}*`x~|II_8fq;!bus|YmkhE8EBZ)_A zq*YlQ7}x|n402c{3N|>h-LG13uvlJDiIt5(K%sG$a6p3NcBz&FjvRRksvUgX3=NN2 zq*6XK9+1j0U|Q@UyQrO$?S*$En`{q*6T9q%$d3+{8y@5zmn%Qu$Zg+O(;@G+#NiOT sT=oSfc|GwX?0hOE42Rf^HcU5mEPr6&#BRZ2w#BjVz=V>cjEoG{07@+L>Nk%w1VK4wN0QUd@000061_cHO2nGoS2?qxW3NNrQ&CS?QBhP+QB_n^T2)nCSXfw7SzTLK zU{_aQSX*LUUuj%jV_{!vVqjxlV{2YwW@2GwXk%()Wo&C`Zf0t3Z)$CFW^!q2b7g9A zXlZe5YjtR9b!=^LY;JXHZFOyGd2eiYaBX>VadvHTdTx1tZ*p~VcXxYpdvkPpd3ke0qg>d4zp@f_i<1d3=U`dx?E}hJk&Hf`Ep5fr)*B zhJ%5Mf`E&KfsKKIjfI4ZgN2QNg^q=Uj);kmgo%xdg^`4Xl8J|zjfs+kij<0qn2n2_ zj*Xd#jhT##mXV5>k&B#>j+&8=oRE;0jggv;lAVr}or;v5jF6I)l9`i`o0gHCk&&L2 zm7S55o|KlFn3$cBn4FrDppKECl9HyCm7$WAp_P@QnU|rQmZX`Mrk$Cjl$)fQovD?X zsG6Cmot>$fovECktec*!ou8+povEOmtf8N-rK6>vp{kdntec~-ovF2%qNJmtsiLB- zp`xy&q^qE%uA!!{q^GN^uCKA6vY?}|rlql>rLm=^wVmRZ%goKj(80&j$;#8h z%hJow*~8A;$te-$BTX8%Nu{j8_E_y( zw|my$XnvIn7rSoW(p6(O=-9eoY}nxc8U}0DG-jq?@vRtcUAuVw?n#o==vJz3?$Wv2 zElt*NKC?Jti6_)-GYlShc;Uq<>^Nl2E%D%^4>NO|k%%OjNE6RG-duyrEx<^_3maD` zI14u2NK=U;gVd4WChstm&pP_lmJ_A_g3Sq%eU56ErXZ2qkb31I=Jm!b}-s7_^Tr zw@7l!7cZoc!yaOQamzPgbmPk#xBNm$8*E^bf&@520Ko+zaBu+#IQ&q>B$HTSG%-j} zGV%&5P(g(jO{9{_I$E&*V~jC8vT*|(H%Jh{1rj^}0S6p>z&Hz46ha6T2l+t<29i)h z#SJg?0K^+ntkaDuy7^E;*2wX!3H3FaKr8jNpsB*0ZgFA8*C&}%!Z+a zLIoj1oG}S3rrdCI1Qp;fK?SpCaKQ&45CIMvatl5jfB+sige0J`j%$qK4Nsr~5a2)t zIBeks7NCFwEHHrz*zN-s$leD8=n#7Nf(QmEzzPOd4{pro7EOSI7}8UN4RFu`704k6 zNMM55F)jo)s7N#a-jD(T7yu6OP(~=gpanii0uyiG!woi2fecRI0vX7_x~lbov&Fz8 zW?_K=4xof;hyo06;KeoEk%}IetpXFEz~MN+Jrtziju}8fN|@0H3lu;BRCq%uqH!vC zTww!dvp@znKmrbUfCP6`!5vGG5_Bv92@e=R0uIrQQ^n&A9oRq?u}Fdym;jP@T)_)i z5Q7jHA|=+iK@T1ffCcEG8_Yn1BR4QR3GlFKB~XD1UO>zjsGtO4P{}fW(F6tzzyV*# zf(JU_fhM0syS020q|{5uTs~DJTI8I2QvByfQ6L_(25>uz-SQF$5?8fj4Im zgA{~-1u1CgI4Pq84=^AA74U!uIB>@h5Qdm4KmiM0kO9gNBm@~?zyUI_fe(}*1S+_} z4QddB62zbe8n9_WSRereR3HQ&eL)Rwu!3r_zy={uszG${0u-EpFf*9yDpgPe5NOpP z^gx6erdorxHjM==;J{fAA`db2K&ZrQD+{tZSKj5|1}T6mNcGrPg|Na2O9(4m3(JsI V2;l}Sr~zXe0*)Op!KMKL06Pq``bz)+ literal 2391 zcmd^;>sOKq0*7DV1p!e3*_>wT>{!z|xwEb9&i)(w`}}-)&Ut>3QR2`rg+JgA zd;$P88pPnxc!G_stu4`kZZyKvHUoJmZi&^HB03MM|3DtIYJ& zjMVh3bk#S9RaseC1xjUZc6LF|*T;?&9M8$jKAMxCf224szo;PpWI^$F1w}>23r`l8 ze0QP{E-Ho#iZsO~_&rlz#~Om$UFb>-=@@;Yr*eR+9( zW!1Ur3Pa85<{EwDnYxzKXItxP&)3zp)*CK0G+Zz=wOlxN`CRjra~HeMH?%ijxN@Pj zr{(gs)~>;e-Gi+cJKI}(jUAnx?fvcT{oQ^2y;la?dxko$-M-Q_)ZKfd=i2Sw!TZ*k?5mZ1le*KdyAx@WobVCs%} z`o_q__oI*QO<3^Qaxo6Mk7Zw+uE&TL+>G8tLC(Cc1zk0i{{Q7UNR$jh-v+~QkpWnWFySn<@ zKYn}v`^S%KYo9)STKn?l3-JFs)<41jsk6S=M&&4!8M_tA%(N^!r6MOsvBQ6JP;gLi zFyQ+q^5^g7&$CQ|iW=%IfXWOKyO;FM6s_%A-emYuBx9z_?*ICuXZ-~oa;;iIW zzo2c|PphXW5zH?^n9F%9@?bu`75Nett8@I@IGi9#?SBa67I; zQs;Z{0XTO9SZFE)$4LvRntyA`QNYr zd-g(D{x9|`D=WC#2SKXj%t7}W=NL2eOrO<3ClO* z;d%?t&6DgVc;kFc@AfY|HMB6~RU2wz_l8E={;=ryseM;tQgtK@Q$-Jq;?#p5Cge%- z0ShC&Z&?i0EDczwyMqQW9uD2JI+sQ@xym&qxviX@_BmjRQ$^=5YGx?g2|^b{;m2M2?wHE+fqzq$!dWBIm3ivrd9J z$G+@Y-J&R?7K6tu8|x%5br8&ni=-olYO7IC)-~Al~m7X~HS>bDPdh zIb_w+BE3jrx<`=l9SB{8P>DY#ERQn;YF;O|n|XN>%KO}AvE_iI3g!vpz?gHz7|H0o z`%SIT(Tlq@j3mh9d|coyceGR1VyuPs1)q*HE9Y}pvEn(sm{IXrfu*F(TQN*UI4NbE zC@}#bWEe)+CddOs&d0*d=ps~Qs!d0xuN8^kn#?M9%H@#9p#m8x(nTrF7108?#v3U6 zc0cw_6iw>OY4J0wpxxJr&=88DGQk*T z-%*ejFNC-HH0f9(?17fHGF#t86N(Z;7?dz_33Xa};Y_Z@&ReoHj3S4xa?y=RMxHgo zpCt0eyk=>cp1Y)_zls;3@%CzFo|vJO#EM<=k`;XP-57`mQj`06=+ROD<=DYY$FoZ3 z04^9U<&{&5;y?W19FsmUO3qLToDcaU{vHLX$OZtjSq|fm0-!r_#EUUfxx*U*Hcs-Z zdJ==(=m@ODh@@Ve(bx)&2%81~!<~U~vLh&mcRWwm*~)Em!vG56F{rVX0_;`7x>$y! zOv|-2xf)3#URn!*G^A|c*am>-K%HfYg)j(0YBCj}>+xf8l{0)=wi?DtX0ZbSq&89@06VfJ1VOc}$wb$(L(TXVgFX^!!`NZf$PP#+5RQ=JR{@N#96`~j z(HuGgCp99SOiKn9Fd7rTT)~`MLI5hj@6#&ikPhe_YXNLcrDk6b7wxCw5#ps9uVD`5 zq)uSJc@1!30GND3!mz{XtWbmV9P?Uo#~S^Cy3Ac+{U0u9z@^xCZoUX=E+ m9fT$q1mQ4O^YjLleVjN#h=a@v5gba12`0Yida4G1?f(I3(_M!E diff --git a/version.py b/version.py index e99aefb5d..e3b876512 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.23.4 f.LUM' +__version__ = '2.23.5 f.LUM' From f48af5dca25a25a3c9a4369d0884102aae573179 Mon Sep 17 00:00:00 2001 From: AmazingAmpharos Date: Tue, 23 Oct 2018 00:23:38 -0500 Subject: [PATCH 753/755] Minor text tweaks for release Clean up some text with the last minute Gold Scale option and add a little MQ clarification text to the readme. --- README.html | 9 ++++++--- README.md | 21 +++++++++++++++------ Settings.py | 13 ++++++------- 3 files changed, 27 insertions(+), 16 deletions(-) diff --git a/README.html b/README.html index 81502881a..cb0241ae0 100644 --- a/README.html +++ b/README.html @@ -18,14 +18,15 @@

General Description

As a service to the player in this very long game, many cutscenes have been greatly shortened or removed and text is as often as possible either omitted or sped up. We have been as thorough as our exploration of the game and various technical limitations will allow to make the parts of the game where you're watching and reading as short as possible to make as much of your time with this randomizer as possible actual gameplay. I'm sure someone somewhere will miss the owl's interjections; to that person, I'm sorry I guess?

A few bugs or other undesirable behaviors in the original game have been fixed. Of note, obtaining the Poacher's Saw will no longer prevent the player from obtaining the reward in the Deku Theater for showing the Mask of Truth, and becoming an adult will not automatically equip the child with the Kokiri Sword. Sheik will no longer prevent the player from returning to childhood before obtaining the Forest Medallion. Princess Ruto will never disappear from Jabu Jabu's Belly, and the condition for the Castle Courtyard being sealed off is now completing the events within as opposed to seeing the Ocarina of Time be thrown into the moat.

One small detail that is important to know is that the locked door in the Fire Temple leading to the section with the Boss Key Chest is removed. This was necessary due to the original design of the Fire Temple assuming that the player could not possibly have the Hammer before unlocking the doors leading into the depths of the dungeon. This is obviously not true in randomizer, and of all possible solutions to this problem, this seemed the least disruptive. A full clear of the Fire Temple will simply result in the player having one extra Small Key. Certain settings configurations will disable this behavior.

+

Two similar small details apply to the Master Quest versions of dungeons. In Water Temple MQ, a locked door leading to a Gold Skulltula in the northern basement was glitched such that it would not appear in the Gamecube release of Master Quest but was fixed in OoT3D's version of Master Quest. In the randomizer, the locked door works like an ordinary locked door similar to OoT3D. In Spirit Temple MQ, there is a particular chest that requires hitting a switch in a hole that the adult will later push a silver block into. The randomizer does some wizardry under the hood to ensure that the block will never be in the way for the child.

To be clear about the logic rules of what can be where, the randomizer will ensure a glitchless path through the seed will exist, but the randomizer will not prevent the use of glitches for those players who enjoy that sort of thing though we offer no guarantees that all glitches will have identical behavior to the original game. Glitchless can still mean that clever or unintuitive strategies may be required involving the use of things like Hover Boots, the Hookshot, or Scarecrow's Song that may not have been important options in the original game. The Lens of Truth is guaranteed available and useable before completion of the Treasure Chest Game is required or before walking through any invisible objects or opening any invisible chests is required with the exception of the one invisible wall that is required to enter the Bottom of the Well as the original game required passing that invisible wall to reach the Lens of Truth.

-

One last detail is that the menu is now more like the Majora's Mask menu in that the player can move the cursor through empty spaces. This fixes a major problem from the original game in that certain combinations of items would create menu shapes that would be impossible to fully menu through. Unfortunately, as of this 3.0 release, this functionality does not apply to the "equipment" screen which can rarely create some tricky situations. Usually these can be solved by purchasing a Deku Shield and a Hylian Shield.

+

One last detail is that the menu is now more like the Majora's Mask menu in that the player can move the cursor through empty spaces. This fixes a major problem from the original game in that certain combinations of items would create menu shapes that would be impossible to fully menu through. As of version 3.0, this fix extends to the "equipment" subscreen as well.

Quirks to Know

While all the details of gameplay can't be detailed here, I want to inform you of a few non-obvious game sequences that are likely to get you stuck and one little glitch we can do nothing about.

-The condition to open the Door of Time is merely playing the Song of Time; the Spiritual Stones are not required. If you enter the Temple of Time via the Prelude of Light, playing the Song of Time will create a glitchy cutscene and will not open the door (but you're safe to exit and re-enter and open it properly).
-The condition to spawn the Ocarina of Time and learn that song is the three Spiritual Stones. The condition to learn a song from Sheik in the Temple of Time is possessing the Forest Medallion. The condition to learn a song from Sheik in Kakariko is possessing Forest, Fire, and Water Medallions.
-The running man in Hyrule Field only spawns if you have all three Spiritual Stones.
-Skull Kid will only buy the Skull Mask if you have played Saria's Song for him.
-The center of Death Mountain Crater as an adult can be reached from the summit as an adult by going around to the left with Hover Boots or by jumping down to the right and using a combination of the Longshot and Scarecrow's Song. This allows access to Sheik and the Fire Temple without a Bomb Bag.
-A sword must be equipped to play the fishing minigame. A Slingshot is not required for child target shooting, but the adult does need the Bow to receive the true prize.
-Other than the fishing minigame, the child can do anything that would seem to require the sword with Deku Sticks. You can buy as many as you want in the Kokiri Forest shop.
-In the randomizer, possessing the Bomb Bag is the requirement to get bomb drops, buy bombs or Bombchus, or play Bombchu Bowling. If the setting "Bombchus Are Considered in Logic" is used, finding any pack of Bombchus allows purchasing Bombchus and playing Bombchu Bowling while possessing a Bomb Bag allows the purchase of bombs.
-Only the Hookshot, not the Longshot, is needed to do everything on the rooftops of Kakariko.
-Grottos can be opened with either Bombs or the Hammer.
-The boulder maze in Goron City can be solved with the Hammer or partially with Bombs as is obvious, but less obvious is that it can be fully solved with Silver Gauntlets.
-The large colored blocks only encountered by the adult require Goron Bracelet to push.
-In a few places, out of sight Song of Time blocks can be summoned. The lava room in Gerudo Training Grounds, the beginning of Ganon's Castle Shadow Trial, and the last hallway with a caged Goron in Fire Temple are the main cases. -Adult Link can fully clear Dodongo's Cavern. He can even skip the first section by virtue of being tall.
-In the Forest Temple, you can reach the room with the Floormaster (vanilla) or Redead (MQ) early by using Hover Boots in the block push room.
-In the Fire Temple, you can reach the Boss Key door from the beginning with Hover Boots.
-In the Water Temple, you can from the start with the water down jump to the middle platform level, very carefully aim the Hookshot to the target above, and pull yourself to the highest level of the central platform. Then a very well spaced rolling jump can reach the water changing station to raise the water to the highest level. If you make poor key choices in Water Temple, this may be what you need to do to untangle the situation.
-In the Water Temple, Hover Boots can be used to reach the vanilla Boss Key chest without going through the room that requires Bombs and block pushing. Hover Boots can also be used in this temple to avoid the Longshot requirement for the middle level chest that requires the Bow.
-In the Water Temple, Farore's Wind can be placed in the central pillar and then the water can be raised to the highest level in order to reach the Gold Skulltula without the Longshot.
-In the Shadow Temple, you can avoid the need for the Longshot in the room with the invisible spikes by backflipping onto the chest for extra height.
-In the Shadow Temple, you can Hookshot the ladder to avoid pushing the block to get on the boat.
-In the Shadow Temple, a combination of the scarecrow and the Longshot can be used to reach Bongo Bongo without needing the Bow.
-In the Spirit Temple, the child can obtain the vanilla Map chest with Deku Sticks. No fire magic is needed.
-In the Spirit Temple, you can collect the silver rupees without Hover Boots by jumping directly onto the rolling boulder or with a jump slash.
-In the Spirit Temple, you can use the Longshot to cross from the hand with the Mirror Shield in vanilla to the other hand.
-In Ganon's Castle Spirit Trial, the web can be burned with a precise shot through the torch by a normal arrow. Fire Arrows are not required.
-Like Likes now only eat shields and not tunics.
-Several Gold Skulltula Tokens can be reached by clever/precise uses of jump slashes and spin attacks (possibly magic spin attacks).
-This is not a randomizer exclusive mechanic, but getting the ability to summon Pierre the Scarecrow requires playing an eight note song for Bonooru the Scarecrow as a child first and then the exact same song for him again as an adult.

Known issues

Sadly for this 3.0 release a few known issues exist. These will hopefully be addressed in future versions.

-

-The fishing minigame sometimes refuses to allow you to catch fish when playing specifically on Bizhawk. Save and quit (NOT savestate) and return to fix the issue.
-Draining the Bottom of the Well with Song of Storms sometimes crashes on specific configurations of Project 64. We aren't sure of the exact story, but this bug is easily avoided by playing on a different emulator and probably also avoidable by changing your settings and maybe graphics plug-in.
-Executing the collection delay glitch on various NPCs may have unpredictable and undesirable consequences. In particular this can be devastating with Biggoron; it is strongly suggested the player save before turning in the Claim Check.
-Saving and quitting on the very first frame after becomming an adult when you would trigger the Light Arrow cutscene can have undesired consequences. Just don't do that.
-The equipment screen still cannot be easily navigated with all item configurations which can be especially problematic if the Biggoron Sword is found very early or if shields cannot be easily purchased thanks to shopsanity. Getting the Master Sword and buying as many shields as you can is a good way to mitigate these issues.
-This randomizer is based on the 1.0 version of Ocarina of Time so some of its specific bugs remain. Some of these like "empty bomb" can be disadvantagous to the player.

+

-The fishing minigame sometimes refuses to allow you to catch fish when playing specifically on Bizhawk. Save and quit (NOT savestate) and return to fix the issue.
-Draining the Bottom of the Well with Song of Storms sometimes crashes on specific configurations of Project 64. We aren't sure of the exact story, but this bug is easily avoided by playing on a different emulator and probably also avoidable by changing your settings and maybe graphics plug-in.
-Executing the collection delay glitch on various NPCs may have unpredictable and undesirable consequences. In particular this can be devastating with Biggoron; it is strongly suggested the player save before turning in the Claim Check.
-Saving and quitting on the very first frame after becomming an adult when you would trigger the Light Arrow cutscene can have undesired consequences. Just don't do that.
-This randomizer is based on the 1.0 version of Ocarina of Time so some of its specific bugs remain. Some of these like "empty bomb" can be disadvantagous to the player.

Settings

The OoT Randomizer has many different settings users can choose to customize their play experience. Here's a fully detailed list!

ROM Options

@@ -167,6 +168,8 @@

Zora's Domain Entry with Hover Boot

This allows the logic to consider this similar trick to the above except as an adult with Hover Boots. This is actually a lot more difficult even though it can be done from either side of the waterfall.

Fewer Tunic Requirements

This relaxes the tunic requirements by the logic somewhat. Normally the logic expects a Goron Tunic to enter Fire Temple or complete the Fire Trial in Ganon's Castle and a Zora Tunic to enter Water Temple, collect the underwater silver rupees in Gerudo Training Grounds, or obtain the Piece of Heart at the bottom of the frozen Zora's Fountain. With this flag set, the Goron Tunic will not be required to actually enter Fire Temple, only to fight Volvagia or to reach the upper floors. The Zora Tunic requirements are removed completely except to reach the chest at the bottom of the central pillar in Water Temple.

+

Morpha with Gold Scale

+

This setting allows entry to the Water Temple with the Gold Scale to be considered. Since you cannot backtrack into Water Temple without Iron Boots, only the Spiritual Stone or Medallion obtained from defeating Morpha can be considered by logic either way; since you need the Water Temple Boss Key and Longshot to access Morpha normally, this means that this setting is only relevant in either keysanity or keysy relative to the locations of Boss Keys.

Lens of Truth

This setting alters the expectations about interacting with invisible objects without the Lens of Truth.

Required Everywhere

@@ -386,7 +389,7 @@

Command Line Options

--logic_fewer_tunic_requirements

Reduce the number of locations for which the logic expects a tunic upgrade (default: False)

--logic_morpha_with_scale
-

Allows entering Water Temple and beating Morpha with Gold Scale instead of Iron Boots. The Longshot is still required to reach the boss, as well as the Boss Key. So this is applicable for keysanity and keysy since there is no location to obtain the Boss Key inside the dungeon.

+

Allows entering Water Temple and beating Morpha with Gold Scale instead of Iron Boots. The Longshot and Boss Key are still required to reach the boss. This means that this option is only relevant in keysanity or keysy. (default: False)

--logic_lens [{chest,chest-wasteland,all}]

Set which hidden objects the logic expects the Lens of Truth to be used on (default: all)

--ocarina_songs
diff --git a/README.md b/README.md index fb99f3b68..59b0f933b 100644 --- a/README.md +++ b/README.md @@ -89,6 +89,11 @@ due to the original design of the Fire Temple assuming that the player could not dungeon. This is obviously not true in randomizer, and of all possible solutions to this problem, this seemed the least disruptive. A full clear of the Fire Temple will simply result in the player having one extra Small Key. Certain settings configurations will disable this behavior. +Two similar small details apply to the Master Quest versions of dungeons. In Water Temple MQ, a locked door leading to a Gold Skulltula in the northern basement was +glitched such that it would not appear in the Gamecube release of Master Quest but was fixed in OoT3D's version of Master Quest. In the randomizer, the locked door +works like an ordinary locked door similar to OoT3D. In Spirit Temple MQ, there is a particular chest that requires hitting a switch in a hole that the adult will +later push a silver block into. The randomizer does some wizardry under the hood to ensure that the block will never be in the way for the child. + To be clear about the logic rules of what can be where, the randomizer will ensure a glitchless path through the seed will exist, but the randomizer will not prevent the use of glitches for those players who enjoy that sort of thing though we offer no guarantees that all glitches will have identical behavior to the original game. Glitchless can still mean that clever or unintuitive strategies may be required involving the use of things like Hover Boots, the Hookshot, or Scarecrow's Song that @@ -97,9 +102,8 @@ or before walking through any invisible objects or opening any invisible chests the Bottom of the Well as the original game required passing that invisible wall to reach the Lens of Truth. One last detail is that the menu is now more like the Majora's Mask menu in that the player can move the cursor through empty spaces. This fixes a major problem from -the original game in that certain combinations of items would create menu shapes that would be impossible to fully menu through. Unfortunately, as of this 3.0 release, -this functionality does not apply to the "equipment" screen which can rarely create some tricky situations. Usually these can be solved by purchasing a Deku Shield and -a Hylian Shield. +the original game in that certain combinations of items would create menu shapes that would be impossible to fully menu through. As of version 3.0, this fix extends +to the "equipment" subscreen as well. # Quirks to Know @@ -157,8 +161,6 @@ easily avoided by playing on a different emulator and probably also avoidable by it is strongly suggested the player save before turning in the Claim Check. -Saving and quitting on the very first frame after becomming an adult when you would trigger the Light Arrow cutscene can have undesired consequences. Just don't do that. --The equipment screen still cannot be easily navigated with all item configurations which can be especially problematic if the Biggoron Sword is found very early -or if shields cannot be easily purchased thanks to shopsanity. Getting the Master Sword and buying as many shields as you can is a good way to mitigate these issues. -This randomizer is based on the 1.0 version of Ocarina of Time so some of its specific bugs remain. Some of these like "empty bomb" can be disadvantagous to the player. @@ -548,6 +550,12 @@ and a Zora Tunic to enter Water Temple, collect the underwater silver rupees in Fountain. With this flag set, the Goron Tunic will not be required to actually enter Fire Temple, only to fight Volvagia or to reach the upper floors. The Zora Tunic requirements are removed completely except to reach the chest at the bottom of the central pillar in Water Temple. +## Morpha with Gold Scale + +This setting allows entry to the Water Temple with the Gold Scale to be considered. Since you cannot backtrack into Water Temple without Iron Boots, only the Spiritual +Stone or Medallion obtained from defeating Morpha can be considered by logic either way; since you need the Water Temple Boss Key and Longshot to access Morpha normally, +this means that this setting is only relevant in either keysanity or keysy relative to the locations of Boss Keys. + ## Lens of Truth This setting alters the expectations about interacting with invisible objects without the Lens of Truth. @@ -1160,7 +1168,8 @@ Reduce the number of locations for which the logic expects a tunic upgrade (defa --logic_morpha_with_scale ``` -Allows entering Water Temple and beating Morpha with Gold Scale instead of Iron Boots. The Longshot is still required to reach the boss, as well as the Boss Key. So this is applicable for keysanity and keysy since there is no location to obtain the Boss Key inside the dungeon. +Allows entering Water Temple and beating Morpha with Gold Scale instead of Iron Boots. The Longshot and Boss Key are still required to reach the boss. +This means that this option is only relevant in keysanity or keysy. (default: False) ``` --logic_lens [{chest,chest-wasteland,all}] diff --git a/Settings.py b/Settings.py index 213240e17..ed7490f3d 100644 --- a/Settings.py +++ b/Settings.py @@ -1578,23 +1578,22 @@ def parse_custom_navi_color(s): 'help': '''\ Allows entering Water Temple and beating Morpha with Gold Scale instead of Iron Boots. - Only applicable for keysanity and keysy since - there is no location to obtain the Boss Key - inside the dungeon. + Only applicable for keysanity and keysy. ''', 'action': 'store_true' }, { - 'text': "Morpha With Gold Scale", + 'text': "Morpha with Gold Scale", 'group': 'tricks', 'widget': 'Checkbutton', 'default': 'checked', 'tooltip':'''\ Allows entering Water Temple and beating Morpha with Gold Scale instead of Iron Boots. - Only applicable for keysanity and keysy since - there is no location to obtain the Boss Key - inside the dungeon. + Only applicable for keysanity and keysy due + to the logic always seeing every chest in + Water Temple that could contain Boss Key as + requiring Iron Boots. ''', 'dependency': lambda guivar: guivar['shuffle_bosskeys'].get() != 'Boss Keys: Dungeon Only' }), From 4ed414b61920bbd28671047aa36d393bc3fc84ff Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 22 Oct 2018 23:25:43 -0600 Subject: [PATCH 754/755] Fix closing console window in bundle --- Utils.py | 4 ++-- version.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Utils.py b/Utils.py index 45ad7224f..201503325 100644 --- a/Utils.py +++ b/Utils.py @@ -62,9 +62,9 @@ def open_file(filename): def close_console(): if sys.platform == 'win32': #windows - import ctypes.wintypes + import win32gui, win32con try: - ctypes.windll.kernel32.FreeConsole() + win32gui.ShowWindow(win32gui.GetForegroundWindow(), win32con.SW_HIDE) except Exception: pass diff --git a/version.py b/version.py index e3b876512..e27481bf7 100644 --- a/version.py +++ b/version.py @@ -1 +1 @@ -__version__ = '2.23.5 f.LUM' +__version__ = '2.23.6 f.LUM' From 78852fb5942bb11409f2a023c5ac8cc9fcdafa8d Mon Sep 17 00:00:00 2001 From: AmazingAmpharos Date: Tue, 23 Oct 2018 00:39:30 -0500 Subject: [PATCH 755/755] The word the is the word the --- Settings.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Settings.py b/Settings.py index ed7490f3d..54490ea1c 100644 --- a/Settings.py +++ b/Settings.py @@ -1592,8 +1592,8 @@ def parse_custom_navi_color(s): Morpha with Gold Scale instead of Iron Boots. Only applicable for keysanity and keysy due to the logic always seeing every chest in - Water Temple that could contain Boss Key as - requiring Iron Boots. + Water Temple that could contain the Boss Key + as requiring Iron Boots. ''', 'dependency': lambda guivar: guivar['shuffle_bosskeys'].get() != 'Boss Keys: Dungeon Only' }),